From 89cb05f837c76b001208770cb62c7ad840449c0a Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期四, 08 十二月 2022 15:31:41 +0800
Subject: [PATCH] 修改编译发布方式

---
 server/kriging/district_boundary.js       |    0 
 server/routes/base.js                     |   13 
 server/kriging/kriging_default_params.js  |    0 
 server/utils/office_day.js                |    0 
 server/kriging/caculate_cover.js          |    0 
 server/grid/readme.txt                    |    0 
 server/utils/mysql_db.js                  |    0 
 server/app.js                             |   21 
 server/views/layout.pug                   |    0 
 server/grid/shanghai.json                 |    0 
 server/package.json                       |   57 
 server/Tests/jpush_test.js                |    0 
 server/utils/crypto.js                    |    0 
 server/config.js                          |   46 
 server/models/apiSDK.js                   |    0 
 server/kriging/shshape.js                 |    0 
 server/utils/upload.js                    |    0 
 server/models/.DS_Store                   |    0 
 server/models/base.js                     |    0 
 server/utils/httpcall.js                  |    0 
 server/Tests/mysql_test.js                |    0 
 server/models/taskSchedule.js             |   66 
 server/utils/MsgPush.js                   |    0 
 server/package-lock.json                  |  202 ++
 server/utils/checkToken.js                |    0 
 server/models/dataapi.js                  |    0 
 server/models/NewsOptionNoToken.js        |    0 
 server/kriging/kriging.js                 |    0 
 server/utils/office_month.js              |    0 
 server/routes/apicloud.js                 |    0 
 server/utils/stringUtil.js                |    0 
 server/views/error.pug                    |    0 
 server/routes/user.js                     |    3 
 server/utils/EmailPush.js                 |    0 
 server/utils/recordAnalysis.js            |    0 
 server/bin/www                            |    0 
 server/routes/apiSDK.js                   |    4 
 server/routes/dataapi.js                  |    0 
 server/utils/dbtool.js                    |    0 
 server/views/index.pug                    |    0 
 server/routes/.DS_Store                   |    0 
 server/routes/NewsOptionNoToken.js        |    0 
 server/utils/jpush.js                     |    0 
 server/models/user.js                     |    0 
 server/utils/office_week.js               |    0 
 /dev/null                                 | 3161 ----------------------------------------------------
 server/mapStyle/GIS.json                  |    0 
 server/kriging/district_extent.js         |    0 
 server/utils/handle_db.js                 |   26 
 server/models/NewsOptionNoToken_forest.js |    0 
 50 files changed, 306 insertions(+), 3,293 deletions(-)

diff --git a/server/README.md b/server/README.md
deleted file mode 100644
index e69de29..0000000
--- a/server/README.md
+++ /dev/null
diff --git a/server/Tests/jpush_test.js b/server/Tests/jpush_test.js
old mode 100644
new mode 100755
diff --git a/server/Tests/mysql_test.js b/server/Tests/mysql_test.js
old mode 100644
new mode 100755
diff --git a/server/app.js b/server/app.js
old mode 100644
new mode 100755
index 7bdb505..a4ed27e
--- a/server/app.js
+++ b/server/app.js
@@ -1,4 +1,4 @@
-const Koa = require("koa");
+锘縞onst Koa = require("koa");
 const app = new Koa();
 const views = require("koa-views");
 const router = require('koa-router');
@@ -136,14 +136,20 @@
 	cors({
 		origin: function(ctx) {
 			const whiteList = [
-				"http://192.168.119.100:8080",
-				"http://192.168.119.100",
+				"http://192.168.0.8:8080",
+				"http://192.168.0.8",
 				"http://localhost:8080",
 				"http://localhost",
 				"http://localhost:9380",				
 				"http://127.0.0.1",
 				"http://127.0.0.1:8080",
 				"http://resgis.sh.cn",
+				"http://223.167.111.168:7001",
+				"http://223.167.111.168:7002",
+				"http://223.167.111.168:8004",
+				"http://223.167.111.168:7001/",
+				"http://223.167.111.168:7002/",
+				"http://223.167.111.168:8004/",
 			];
 			if (ctx.url === "/user/") {
 				return "*"; //聽鍏佽鏉ヨ嚜鎵�鏈夊煙鍚嶈姹�
@@ -161,7 +167,7 @@
 );
 
 // logger
-const logsUtil = require("./utils/logs.js");
+//const logsUtil = require("./utils/logs.js");
 app.use(async (ctx, next) => {
 	console.log("------------------------------");
 	console.log(ctx);
@@ -171,13 +177,13 @@
 	try {
 		await next();
 		intervals = new Date() - start;
-		logsUtil.logResponse(ctx, intervals); //璁板綍鍝嶅簲鏃ュ織
+		//logsUtil.logResponse(ctx, intervals); //璁板綍鍝嶅簲鏃ュ織
 	} catch (error) {
 		intervals = new Date() - start;
-		logsUtil.logError(ctx, error, intervals); //璁板綍寮傚父鏃ュ織
+		//logsUtil.logError(ctx, error, intervals); //璁板綍寮傚父鏃ュ織
 	}
 });
-
+/*
 const server = require("http").Server(app.callback());
 const io = require("socket.io")(server);
 io.on("connection", (socket) => {
@@ -197,6 +203,7 @@
 }, 3000000);
 
 server.listen(3030);
+*/
 
 const schedule_ = require("./models/taskSchedule.js");
 schedule_.job_();
diff --git a/server/bin/www b/server/bin/www
old mode 100644
new mode 100755
diff --git a/server/config.js b/server/config.js
old mode 100644
new mode 100755
index 1eeab53..3bb0ae4
--- a/server/config.js
+++ b/server/config.js
@@ -1,25 +1,47 @@
 module.exports = {
   mysql_config: {
-    host: '58.246.27.194',
+    host: '192.168.0.8',
     database: 'sxyd',
-    port: '6002',
-    user: 'genpang',
-    password: 'genpang@123'
+    port: '3306',
+    user: 'root',
+    password: 'SX64955008HB'
   },
   db_remote: {
-    host: '58.246.27.194',
+    host: '192.168.0.8',
     database: 'sxyd',
-    port: '6002',
-    user: 'genpang',
-    password: 'genpang@123'
+    port: '3306',
+    user: 'root',
+    password: 'SX64955008HB'
   },
   db_remote_server: {
-    host: '58.246.27.194',
+    host: '192.168.0.8',
     database: 'sxyd',
-    port: '6002',
-    user: 'genpang',
-    password: 'genpang@123'
+    port: '3306',
+    user: 'root',
+    password: 'SX64955008HB'
   }
+  // mysql_config: {
+  //   host: '127.0.0.1',
+  //   database: 'sxyd',
+  //   port: '20210',
+  //   user: 'root',
+  //   password: 'qwer%1234'
+  // },
+  // db_remote: {
+  //   host: '127.0.0.1',
+  //   database: 'sxyd',
+  //   port: '20210',
+  //   user: 'root',
+  //   password: 'qwer%1234'
+  // },
+  // db_remote_server: {
+  //   host: '127.0.0.1',
+  //   database: 'sxyd',
+  //   port: '20210',
+  //   user: 'root',
+  //   password: 'qwer%1234'
+  // },
   //223.167.111.168  10026   root   SX64955008HB
   //58.246.27.194  6002 sxyd   genpang@123
 }
+
diff --git a/server/config/logs.js b/server/config/logs.js
deleted file mode 100644
index a66409d..0000000
--- a/server/config/logs.js
+++ /dev/null
@@ -1,68 +0,0 @@
-var path = require('path')
-
-//鏃ュ織鏍圭洰褰�
-var baseLogPath = path.resolve(__dirname, '../logs')
-
-/*鎶ラ敊杈撳嚭鏃ュ織*/
-//閿欒鏃ュ織鐩綍銆佹枃浠跺悕銆佽緭鍑哄畬鏁磋矾寰�
-var errorPath = '/error'
-var errorFileName = 'error'
-var errorLogPath = baseLogPath + errorPath + '/' + errorFileName
-
-/*璇锋眰鏁版嵁寰楀埌鍝嶅簲鏃惰緭鍑哄搷搴旀棩蹇�*/
-//鍝嶅簲鏃ュ織鐩綍銆佹枃浠跺悕銆佽緭鍑哄畬鏁磋矾寰�
-var responsePath = '/response'
-var responseFileName = 'response'
-var responseLogPath = baseLogPath + responsePath + '/' + responseFileName
-
-/*鎿嶄綔鏁版嵁搴撹繘琛屽鍒犳敼绛夋晱鎰熸搷浣滆褰曟棩蹇�*/
-//鎿嶄綔鏃ュ織鐩綍銆佹枃浠跺悕銆佽緭鍑哄畬鏁磋矾寰�
-var handlePath = '/handle'
-var handleFileName = 'handle'
-var handleLogPath = baseLogPath + handlePath + '/' + handleFileName
-
-module.exports = {
-  //鏃ュ織鏍煎紡绛夎缃�
-  appenders: {
-    'rule-console': { type: 'console' },
-    errorLogger: {
-      type: 'dateFile',
-      filename: errorLogPath,
-      pattern: '-yyyy-MM-dd-hh.log',
-      alwaysIncludePattern: true,
-      encoding: 'utf-8',
-      maxLogSize: 1000,
-      numBackups: 3,
-      path: errorPath
-    },
-    resLogger: {
-      type: 'dateFile',
-      filename: responseLogPath,
-      pattern: '-yyyy-MM-dd-hh.log',
-      alwaysIncludePattern: true,
-      encoding: 'utf-8',
-      maxLogSize: 1000,
-      numBackups: 3,
-      path: responsePath
-    },
-    handleLogger: {
-      type: 'dateFile',
-      filename: handleLogPath,
-      pattern: '-yyyy-MM-dd-hh.log',
-      alwaysIncludePattern: true,
-      encoding: 'utf-8',
-      maxLogSize: 1000,
-      numBackups: 3,
-      path: responsePath
-    }
-  },
-  //渚涘閮ㄨ皟鐢ㄧ殑鍚嶇О鍜屽搴旇缃畾涔�
-  categories: {
-    default: { appenders: ['rule-console'], level: 'all' },
-    resLogger: { appenders: ['resLogger'], level: 'info' },
-    errorLogger: { appenders: ['errorLogger'], level: 'error' },
-    handleLogger: { appenders: ['handleLogger'], level: 'all' },
-    http: { appenders: ['resLogger'], level: 'info' }
-  },
-  baseLogPath: baseLogPath
-}
diff --git a/server/grid/readme.txt b/server/grid/readme.txt
old mode 100644
new mode 100755
diff --git a/server/grid/shanghai.json b/server/grid/shanghai.json
old mode 100644
new mode 100755
diff --git a/server/kriging/caculate_cover.js b/server/kriging/caculate_cover.js
old mode 100644
new mode 100755
diff --git a/server/kriging/district_boundary.js b/server/kriging/district_boundary.js
old mode 100644
new mode 100755
diff --git a/server/kriging/district_extent.js b/server/kriging/district_extent.js
old mode 100644
new mode 100755
diff --git a/server/kriging/kriging.js b/server/kriging/kriging.js
old mode 100644
new mode 100755
diff --git a/server/kriging/kriging_default_params.js b/server/kriging/kriging_default_params.js
old mode 100644
new mode 100755
diff --git a/server/kriging/shshape.js b/server/kriging/shshape.js
old mode 100644
new mode 100755
diff --git a/server/mapStyle/GIS.json b/server/mapStyle/GIS.json
old mode 100644
new mode 100755
diff --git a/server/models/.DS_Store b/server/models/.DS_Store
old mode 100644
new mode 100755
Binary files differ
diff --git a/server/models/NewsOptionNoToken.js b/server/models/NewsOptionNoToken.js
old mode 100644
new mode 100755
diff --git a/server/models/NewsOptionNoToken_forest.js b/server/models/NewsOptionNoToken_forest.js
old mode 100644
new mode 100755
diff --git a/server/models/apiSDK.js b/server/models/apiSDK.js
old mode 100644
new mode 100755
diff --git a/server/models/base.js b/server/models/base.js
old mode 100644
new mode 100755
diff --git a/server/models/dataapi.js b/server/models/dataapi.js
old mode 100644
new mode 100755
diff --git a/server/models/taskSchedule.js b/server/models/taskSchedule.js
old mode 100644
new mode 100755
index a19722a..fffb3c5
--- a/server/models/taskSchedule.js
+++ b/server/models/taskSchedule.js
@@ -6,7 +6,7 @@
 var jsonData = '';//瀛樺偍澶╂皵淇℃伅
 // 瀹氫箟瑙勫垯
 let rule = new schedule.RecurrenceRule();
-rule.minute = [15,30,45,55]
+rule.minute = [1,6,11,16,21,26,31,36,41,46,51,56]
 //rule.second = [30, 60]; // 姣忛殧 10 绉掓墽琛屼竴娆�
 
 
@@ -22,32 +22,25 @@
 
 schedule.scheduleJob(rule, async () => {//姣忓皬鏃跺畾鏃跺彇澶╂皵鏁版嵁
     //https://devapi.heweather.net/v7/weather/now?location=101021700&key=495b433d21c84986a99c4ac52d42fd3b
-    let urlstr = "https://devapi.heweather.net/v7/weather/now?location=location_code&key=fca708c817034474b6969579ab61a380";
+    // 1. 妫�娴嬪綋鍓嶆槸鍚﹀凡鏈夊ぉ姘旀暟鎹�
+    let sqlstr = `select count(1) as counter from t_d_weather_hour where TO_DAYS(now())=TO_DAYS(posttime) and HOUR(now())=hour(posttime) and posttime> date_sub(now(), interval 1 hour)`;
+    let lastdata_times = await mysql.query_data(sqlstr, 'master', null);
+    if( lastdata_times[0].counter > 0 ) { return ;}
+    // 2.鑻ュ綋鍓嶆棤澶╂皵鏁版嵁锛岄噸鏂版姄鍙�
+    let urlstr = "https://devapi.heweather.net/v7/weather/now?location=location_code&key=495b433d21c84986a99c4ac52d42fd3b";
     sqlstr = `select * from t_s_weather_city order by code`;
     let data_rets = await mysql.query_data(sqlstr, 'master', null)
     for (let index = 0; index < data_rets.length; index++) {
         let element = data_rets[index];
-        // 妫�娴嬪綋鍓嶆槸鍚﹀凡鏈夊ぉ姘旀暟鎹�
-        let sqlstr = `select count(1) as counter from t_d_weather_hour where citycode='`+element.code+`' and TO_DAYS(now())=TO_DAYS(posttime) and HOUR(now())=hour(posttime) `;
-        let lastdata_times = await mysql.query_data(sqlstr, 'master', null);
-        console.log(lastdata_times[0].counter);
-        console.log(lastdata_times[0].counter > 0)
-        if( lastdata_times[0].counter > 0 ) { continue ;}
-        // 鑻ュ綋鍓嶆棤澶╂皵鏁版嵁锛岄噸鏂版姄鍙�  
         axios.get(urlstr.replace('location_code', element.code)).then(response => {
-            console.log(response.data)
             if(response.data.now) {
                 let w = response.data.now;
                 let posttime_ = w.obsTime.replace('T',' ').substr(0,13)+ ':00:00';
-                let currHours = (new Date()).getHours();
-                let postHours = (new Date(posttime_)).getHours();
-                if(postHours == currHours) {
-                    let sql_ = `insert into t_d_weather_hour (type,citycode,cityname,posttime,temp,feelsLike,icon,text,wind360,windDir,windScale,windSpeed,humidity,precip,pressure,vis,cloud,dew,responsedata) 
-                        values ('${element.type}','${element.code}','${element.name}','${posttime_}','${w.temp}','${w.feelsLike}','${w.icon}','${w.text}','${w.wind360}',
-                        '${w.windDir}','${w.windScale}','${w.windSpeed}','${w.humidity}','${w.precip}','${w.pressure}','${w.vis}','${w.cloud}','${w.dew}','${JSON.stringify(response.data)}'
-                    )`;
-                    mysql.query_data(sql_, 'master', null)
-                }
+                let sql_ = `insert into t_d_weather_hour (type,citycode,cityname,posttime,temp,feelsLike,icon,text,wind360,windDir,windScale,windSpeed,humidity,precip,pressure,vis,cloud,dew,responsedata) 
+                    values ('${element.type}','${element.code}','${element.name}','${posttime_}','${w.temp}','${w.feelsLike}','${w.icon}','${w.text}','${w.wind360}',
+                    '${w.windDir}','${w.windScale}','${w.windSpeed}','${w.humidity}','${w.precip}','${w.pressure}','${w.vis}','${w.cloud}','${w.dew}','${JSON.stringify(response.data)}'
+                )`;
+                mysql.query_data(sql_, 'master', null)
             }
         }).catch(error => {
             console.log(error);
@@ -59,34 +52,29 @@
 
 schedule.scheduleJob(rule, async () => {//姣忓ぉ瀹氭椂鏇存柊澶╂皵鏁版嵁
     //https://devapi.qweather.com/v7/weather/3d?location=101021700&key=495b433d21c84986a99c4ac52d42fd3b
-    
-    let urlstr = "https://devapi.qweather.com/v7/weather/3d?location=location_code&key=fca708c817034474b6969579ab61a380";
+    // 1. 妫�娴嬪綋鍓嶆槸鍚﹀凡鏈夊ぉ姘旀暟鎹�
+    let sqlstr = `select count(1) as counter from t_d_weather_day where TO_DAYS(now())=TO_DAYS(posttime)`;
+    let lastdata_times = await mysql.query_data(sqlstr, 'master', null);
+    if( lastdata_times[0].counter > 0 ) { return ;}
+    // 2.鑻ュ綋鍓嶆棤澶╂皵鏁版嵁锛岄噸鏂版姄鍙�
+    let urlstr = "https://devapi.qweather.com/v7/weather/3d?location=location_code&key=495b433d21c84986a99c4ac52d42fd3b";
     sqlstr = `select * from t_s_weather_city order by code`;
     let data_rets = await mysql.query_data(sqlstr, 'master', null)
     for (let index = 0; index < data_rets.length; index++) {
         let element = data_rets[index];
-        // 妫�娴嬪綋鍓嶆槸鍚﹀凡鏈夊ぉ姘旀暟鎹�
-        let sqlstr = `select count(1) as counter from t_d_weather_day where citycode='`+element.code+`' and TO_DAYS(now())=TO_DAYS(posttime)`;
-        let lastdata_times = await mysql.query_data(sqlstr, 'master', null);
-        if( lastdata_times[0].counter > 0 ) { continue ;}       
-        // 鑻ュ綋鍓嶆棤澶╂皵鏁版嵁锛岄噸鏂版姄鍙�
         axios.get(urlstr.replace('location_code', element.code)).then(response => {
             if(response.data.daily) {
                 let w = response.data.daily[0];
                 let posttime_ = w.fxDate+ ' 00:00:00';
-                let currdate = (new Date()).getDate();
-                let postdate = (new Date(posttime_)).getDate();
-                if (currdate == postdate) { 
-                    let sql_ = `insert into t_d_weather_day (type,citycode,cityname,posttime,iconNight,iconDay,humidity,precip,pressure,vis,cloud,
-                        moonPhase,moonPhaseIcon,moonrise,moonset,sunrise,sunset,tempMax,tempMin,textDay,textNight,uvIndex,
-                        wind360Day,windDirDay,wind360Night,windDirNight,windScaleDay,windScaleNight,windSpeedDay,windSpeedNight,responsedata) 
-                        values ('${element.type}','${element.code}','${element.name}','${posttime_}','${w.iconNight}','${w.iconDay}','${w.humidity}','${w.precip}','${w.pressure}','${w.vis}',
-                        '${w.cloud}','${w.moonPhase}','${w.moonPhaseIcon}','${w.moonrise}','${w.moonset}','${w.sunrise}','${w.sunset}','${w.tempMax}','${w.tempMin}','${w.textDay}','${w.textNight}','${w.uvIndex}',
-                        '${w.wind360Day}','${w.windDirDay}','${w.wind360Night}','${w.windDirNight}','${w.windScaleDay}','${w.windScaleNight}','${w.windSpeedDay}','${w.windSpeedNight}',
-                        '${JSON.stringify(response.data)}'
-                    )`;
-                    mysql.query_data(sql_, 'master', null)
-                }
+                let sql_ = `insert into t_d_weather_day (type,citycode,cityname,posttime,iconNight,iconDay,humidity,precip,pressure,vis,cloud,
+                    moonPhase,moonPhaseIcon,moonrise,moonset,sunrise,sunset,tempMax,tempMin,textDay,textNight,uvIndex,
+                    wind360Day,windDirDay,wind360Night,windDirNight,windScaleDay,windScaleNight,windSpeedDay,windSpeedNight,responsedata) 
+                    values ('${element.type}','${element.code}','${element.name}','${posttime_}','${w.iconNight}','${w.iconDay}','${w.humidity}','${w.precip}','${w.pressure}','${w.vis}',
+                    '${w.cloud}','${w.moonPhase}','${w.moonPhaseIcon}','${w.moonrise}','${w.moonset}','${w.sunrise}','${w.sunset}','${w.tempMax}','${w.tempMin}','${w.textDay}','${w.textNight}','${w.uvIndex}',
+                    '${w.wind360Day}','${w.windDirDay}','${w.wind360Night}','${w.windDirNight}','${w.windScaleDay}','${w.windScaleNight}','${w.windSpeedDay}','${w.windSpeedNight}',
+                    '${JSON.stringify(response.data)}'
+                )`;
+                mysql.query_data(sql_, 'master', null)
             }
         }).catch(error => {
             console.log(error);
diff --git a/server/models/user.js b/server/models/user.js
old mode 100644
new mode 100755
diff --git a/server/package-lock.json b/server/package-lock.json
old mode 100644
new mode 100755
index de4392a..738b03a
--- a/server/package-lock.json
+++ b/server/package-lock.json
@@ -1440,8 +1440,7 @@
     "deep-extend": {
       "version": "0.6.0",
       "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
-      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
-      "dev": true
+      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
     },
     "deep-is": {
       "version": "0.1.4",
@@ -2381,6 +2380,14 @@
       "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
       "dev": true
     },
+    "ignore-walk": {
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz",
+      "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==",
+      "requires": {
+        "minimatch": "^3.0.4"
+      }
+    },
     "immediate": {
       "version": "3.0.6",
       "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
@@ -2434,8 +2441,7 @@
     "ini": {
       "version": "1.3.7",
       "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
-      "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==",
-      "dev": true
+      "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
     },
     "ip": {
       "version": "1.1.5",
@@ -3377,33 +3383,6 @@
       "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
       "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg="
     },
-    "log4js": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.4.0.tgz",
-      "integrity": "sha512-xwRvmxFsq8Hb7YeS+XKfvCrsH114bXex6mIwJ2+KmYVi23pB3+hlzyGq1JPycSFTJWNLhD/7PCtM0RfPy6/2yg==",
-      "requires": {
-        "date-format": "^2.0.0",
-        "debug": "^4.1.1",
-        "flatted": "^2.0.0",
-        "rfdc": "^1.1.4",
-        "streamroller": "^1.0.5"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "4.1.1",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-          "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-          "requires": {
-            "ms": "^2.1.1"
-          }
-        },
-        "ms": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
-        }
-      }
-    },
     "long-timeout": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz",
@@ -3695,6 +3674,31 @@
       "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.6.0.tgz",
       "integrity": "sha1-34zgIeJiviG1L+s9Plz6qxJJHw0="
     },
+    "needle": {
+      "version": "2.9.1",
+      "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz",
+      "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==",
+      "requires": {
+        "debug": "^3.2.6",
+        "iconv-lite": "^0.4.4",
+        "sax": "^1.2.4"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.7",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+          "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        },
+        "ms": {
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+          "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+        }
+      }
+    },
     "negotiator": {
       "version": "0.6.1",
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
@@ -3786,6 +3790,96 @@
           "version": "4.0.0",
           "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
           "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+        }
+      }
+    },
+    "node-pre-gyp": {
+      "version": "0.17.0",
+      "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.17.0.tgz",
+      "integrity": "sha512-abzZt1hmOjkZez29ppg+5gGqdPLUuJeAEwVPtHYEJgx0qzttCbcKFpxrCQn2HYbwCv2c+7JwH4BgEzFkUGpn4A==",
+      "requires": {
+        "detect-libc": "^1.0.3",
+        "mkdirp": "^0.5.5",
+        "needle": "^2.5.2",
+        "nopt": "^4.0.3",
+        "npm-packlist": "^1.4.8",
+        "npmlog": "^4.1.2",
+        "rc": "^1.2.8",
+        "rimraf": "^2.7.1",
+        "semver": "^5.7.1",
+        "tar": "^4.4.13"
+      },
+      "dependencies": {
+        "chownr": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+          "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+        },
+        "fs-minipass": {
+          "version": "1.2.7",
+          "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+          "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+          "requires": {
+            "minipass": "^2.6.0"
+          }
+        },
+        "minipass": {
+          "version": "2.9.0",
+          "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
+          "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
+          "requires": {
+            "safe-buffer": "^5.1.2",
+            "yallist": "^3.0.0"
+          }
+        },
+        "minizlib": {
+          "version": "1.3.3",
+          "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
+          "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
+          "requires": {
+            "minipass": "^2.9.0"
+          }
+        },
+        "nopt": {
+          "version": "4.0.3",
+          "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
+          "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
+          "requires": {
+            "abbrev": "1",
+            "osenv": "^0.1.4"
+          }
+        },
+        "rimraf": {
+          "version": "2.7.1",
+          "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+          "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+        },
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+        },
+        "tar": {
+          "version": "4.4.19",
+          "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
+          "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
+          "requires": {
+            "chownr": "^1.1.4",
+            "fs-minipass": "^1.2.7",
+            "minipass": "^2.9.0",
+            "minizlib": "^1.3.3",
+            "mkdirp": "^0.5.5",
+            "safe-buffer": "^5.2.1",
+            "yallist": "^3.1.1"
+          }
         }
       }
     },
@@ -3883,6 +3977,29 @@
       "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
       "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
       "dev": true
+    },
+    "npm-bundled": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
+      "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==",
+      "requires": {
+        "npm-normalize-package-bin": "^1.0.1"
+      }
+    },
+    "npm-normalize-package-bin": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+      "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="
+    },
+    "npm-packlist": {
+      "version": "1.4.8",
+      "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz",
+      "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
+      "requires": {
+        "ignore-walk": "^3.0.1",
+        "npm-bundled": "^1.0.1",
+        "npm-normalize-package-bin": "^1.0.1"
+      }
     },
     "npmlog": {
       "version": "4.1.2",
@@ -4010,6 +4127,11 @@
       "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
       "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="
     },
+    "os-homedir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+      "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ=="
+    },
     "os-name": {
       "version": "1.0.3",
       "resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
@@ -4017,6 +4139,20 @@
       "requires": {
         "osx-release": "^1.0.0",
         "win-release": "^1.0.0"
+      }
+    },
+    "os-tmpdir": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="
+    },
+    "osenv": {
+      "version": "0.1.5",
+      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+      "requires": {
+        "os-homedir": "^1.0.0",
+        "os-tmpdir": "^1.0.0"
       }
     },
     "osx-release": {
@@ -4474,7 +4610,6 @@
       "version": "1.2.8",
       "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
       "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
-      "dev": true,
       "requires": {
         "deep-extend": "^0.6.0",
         "ini": "~1.3.0",
@@ -5057,8 +5192,7 @@
     "strip-json-comments": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
-      "dev": true
+      "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
     },
     "supports-color": {
       "version": "2.0.0",
diff --git a/server/package.json b/server/package.json
old mode 100644
new mode 100755
index beab7bb..1cc6bf1
--- a/server/package.json
+++ b/server/package.json
@@ -2,22 +2,27 @@
   "name": "am_server",
   "version": "0.1.0",
   "private": true,
+  "bin": "./bin/www",
   "scripts": {
     "start": "nodemon ./bin/www",
+    "test": "npm run nodemon --ignore ./package.json --exec electron .",
     "dev": "./node_modules/.bin/nodemon bin/www",
     "prd": "pm2 start bin/www",
-    "test": "echo \"Error: no test specified\" && exit 1"
+    "build": "electron-builder --win --x64",
+    "pkg": "pkg . --out-path=./dist/",
+    "package": "electron-builder build --win --x64"
   },
   "dependencies": {
     "@alicloud/pop-core": "^1.7.10",
     "@alicloud/sms-sdk": "^1.1.6",
-    "async": "^3.1.0",
+    "async": "^3.2.4",
     "await-busboy": "^1.0.3",
     "axios": "^0.21.4",
     "baidu-aip-sdk": "^2.0.2",
     "bcrypt": "^5.0.1",
     "crypto-js": "^4.0.0",
     "debug": "^2.6.3",
+    "express": "^4.18.2",
     "formidable": "^1.2.2",
     "jpush-async": "^4.0.2",
     "jsonwebtoken": "^8.5.0",
@@ -37,19 +42,57 @@
     "koa-static": "^3.0.0",
     "koa-views": "^5.2.1",
     "koa2-cors": "^2.0.6",
-    "log4js": "^4.4.0",
+    "log4js": "^6.4.4",
     "node-gyp": "^8.2.0",
     "node-schedule": "^1.3.2",
     "node-uuid": "^1.4.8",
-    "nodemailer": "^6.6.0",
-    "officegen": "^0.6.3",
+    "nodemailer": "^6.7.3",
+    "officegen": "^0.6.5",
+    "protobufjs": "^6.11.3",
     "pug": "^3.0.2",
     "request": "^2.88.2",
-    "socket.io": "^4.1.2",
+    "socket.io": "^4.4.1",
     "solarlunar": "^2.0.7",
     "ueditor": "^1.2.3"
   },
   "devDependencies": {
-    "nodemon": "^2.0.7"
+    "electron": "^8.2.0",
+    "electron-builder": "^22.4.1",
+    "nodemon": "^2.0.20",
+    "webpack": "^5.74.0",
+    "webpack-cli": "^4.10.0"
+  },
+  "build": {
+    "electronDownload": {
+      "mirror": "https://npm.taobao.org/mirrors/electron"
+    },
+    "productName": "搴旂敤鏈嶅姟鍚庡彴",
+    "appID": "com.sn.appnet",
+    "copyright": "copyright @2021 wr",
+    "extends": null,
+    "directories": {
+      "output": "release"
+    },
+    "mac": {
+      "category": "public.app-category.developer-tools",
+      "target": "default",
+      "icon": "./public/icon.icns"
+    },
+    "win": {
+      "icon": "./public/icon.ico",
+      "target": [
+        {
+          "icon": "./public/icon.ico",
+          "target": [
+            {
+              "target": "nsis",
+              "arch": [
+                "x64"
+              ]
+            }
+          ]
+        }
+      ]
+    }
   }
 }
diff --git a/server/public/.DS_Store b/server/public/.DS_Store
deleted file mode 100644
index b45c67d..0000000
--- a/server/public/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/server/public/index.html b/server/public/index.html
deleted file mode 100644
index 64a9786..0000000
--- a/server/public/index.html
+++ /dev/null
@@ -1 +0,0 @@
-<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel=stylesheet href=//at.alicdn.com/t/font_731649_7s08n4r48zr.css><title>闈炴硶璋冮鐩戞祴绯荤粺</title><link href=/static/css/app.90babcb5ec80f62d1df4f3a83e5d4328.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.2ae2e69a05c33dfc65f8.js></script><script type=text/javascript src=/static/js/vendor.99a6983ff19cf979eed3.js></script><script type=text/javascript src=/static/js/app.97d0c0aef1626f1cac3b.js></script></body></html>
\ No newline at end of file
diff --git a/server/public/static/css/app.90babcb5ec80f62d1df4f3a83e5d4328.css b/server/public/static/css/app.90babcb5ec80f62d1df4f3a83e5d4328.css
deleted file mode 100644
index 035bf6f..0000000
--- a/server/public/static/css/app.90babcb5ec80f62d1df4f3a83e5d4328.css
+++ /dev/null
@@ -1,2 +0,0 @@
-#app,body,html{font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,\\5FAE\8F6F\96C5\9ED1,Arial,sans-serif;height:100%;padding:0;margin:0}span[data-v-0e1be330]{font:20px Extra large}.back[data-v-0e1be330]{background:url(/static/img/back.874cfd1.jpg);background-size:100% 100%;background-repeat:no-repeat;width:100%;height:100%}.card[data-v-0e1be330]{position:relative;background:url(/static/img/back.9c3fd35.png);left:40%;top:25%;width:20%;padding:30px 40px 20px}header[data-v-66b543e6]{background-color:#7abbec}main[data-v-66b543e6]{padding:15px 15px 0;height:calc(100% - 60px - 20px)}footer[data-v-66b543e6],main[data-v-66b543e6]{background-color:#fcfdf8}.head[data-v-275cb8e8]{width:40px;height:40px;border-radius:40px}.logo[data-v-275cb8e8]{width:200px}.el-row[data-v-275cb8e8]{margin-top:10px}.foottxt[data-v-c21b5442]{text-align:right;font:12px Extra Extra Small}.week-time table[data-v-7a694dae]{height:400px}.el-pagination[data-v-216599a9]{text-align:center}.el-row[data-v-5b7649e9]{margin-bottom:20px}.map_device{width:100%;height:100%}.map_device .anchorBL{display:none}.el-form-item[data-v-55b0e7f4]{margin-right:0;margin-bottom:0;height:28px}.el-tag .el-button[data-v-55b0e7f4]{margin:0 0 0 5px;padding:0 5px;height:100%}.el-button[data-v-55b0e7f4]{color:#6495ed;background-color:#ddd}.el-dialog .el-dialog__header[data-v-55b0e7f4]{padding:5px!important}.el-form-item[data-v-a1b2b80c]{margin:0}.custom-column[data-v-4b25040c]{padding:2px 0!important;color:#aaa}.allWhitelstTable[data-v-2ec03582]{height:30px;padding-bottom:0;margin-bottom:10px}.el-form-item[data-v-2ec03582]{padding-bottom:0;margin-bottom:5px!important}.el-pagination[data-v-18db5703]{text-align:center}.el-row[data-v-19394728]{margin-bottom:20px}.el-card[data-v-097e7964]{margin-bottom:15px}video[data-v-c33d1918]{height:38px;width:170px}.el-pagination[data-v-2c39f46a],.el-pagination[data-v-6b046832]{margin-top:10px;text-align:center}.el-form-item[data-v-12198d98]{margin:0}.map[data-v-709258f6]{width:100%;height:800px}.map_ddensity{width:100%;height:100%}.map_ddensity .anchorBL{display:none}.el-row[data-v-44a20464]{height:50%}.el-col[data-v-44a20464],.el-tab-pane[data-v-44a20464],.el-tabs[data-v-44a20464]{height:100%}.el-col[data-v-44a20464]{border-radius:4px}.bg-purple-dark[data-v-44a20464]{background:#99a9bf}.bg-purple[data-v-44a20464]{background:#d3dce6}.bg-purple-light[data-v-44a20464]{background:#e5e9f2}.grid-content[data-v-44a20464]{border-radius:4px;min-height:36px}.row-bg[data-v-44a20464]{padding:10px 0;background-color:#f9fafc}.map_rdensity{width:100%;height:100%}.map_rdensity .anchorBL{display:none}.map_confirm{width:100%;height:100%}.map_confirm .el-form-item{margin:0}.map_confirm .el-form-item .el-button{margin-top:5px;padding:4px 6px;margin-left:0}.map_confirm .anchorBL{display:none}.map{width:100%;height:100%}.anchorBL{display:none}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-pagination--small .arrow.disabled,.el-table--hidden,.el-table .hidden-columns,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}@font-face{font-family:element-icons;src:url(data:application/font-woff;base64,d09GRgABAAAAABgUAAsAAAAAKyAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAAQwAAAFZW7kg4Y21hcAAAAYAAAAHbAAAFVNSkwZBnbHlmAAADXAAAEE0AABxcANDF92hlYWQAABOsAAAALwAAADYPh4nBaGhlYQAAE9wAAAAgAAAAJAfgA8hobXR4AAAT/AAAABUAAAEgH+kAAGxvY2EAABQUAAAAkgAAAJLyMupubWF4cAAAFKgAAAAfAAAAIAFaAHFuYW1lAAAUyAAAAVsAAAKprAB5inBvc3QAABYkAAAB7QAAAzwZuNu3eJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkYWCcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGBwYKp65MTf8b2CIYW5gaAAKM4LkANhrC7sAeJzF1EdWG0EYxPH/ICGSyDmDTM7gHHGEjY/hQ3A6H6cWXvkGuHqqNz4Bo/eTRvOkUT911QcMAx07sy40f2koxx9fbdrrHcbb611++/2oH0N+fdBAd4+P7Rnaa8/K0bSf+FnPxvzdCfpMMsU0M8wyxzwLvsMiSyyzwiprrLPBJltss8MuA56xxz4HHHLEMSecehXnXHDJFddeT9ervqHHCM95wUte8Zo3vOUd7/nARz5xy2e+8JVvfOcHd9x7OT2e7Gie7qf/P/rlqfOrvvO/wkPlJYrwvqEmvINoKEoO1AnvKupGuauGwzuNeuE9RyPh3Uej4RygsXAi0Hg4G2ginBLUD+cFTUbJnqbCGULT4TShmXCu0Gw4YWgunDU0H04dWgjnDy2Gk4iWwplEy+F0opVwTtFqOLFoLZxdtB5OMdoI5xlthpONtsIZR9vhtKOdcO7RbrgBaBDugpsWbgXaD/cDHUTpsQ7DnUFH4fag43CP0Em4Ueg03C10FmUm6DzKXNBFlHmhy3AH0VVQ9vw6KHt+E24oqtxVVLm1qHJ/UeUmo8qdRpXbjSr3HFVuPKrcfVR5CqDK8wBVngyo8oxAlacFqjw3UOUJgirPElR5qqDK8wVV3P8D3lS0GgB4nI1ZD3AU13l/33v3Ryed7nS3ultJh6TbW90tIN0JdP8CwtIaJDz8baAGbDkG2WBqDHgodSFua1i3zVjC5k9JaibTjH0TXCeYxCWJGbspJls8CXGNJwkdHKCDOeLW4zRD4mCapC736Pd276Q7ilJ0u9/uvn37vfe+7/f9eyJOQm5eYSdYC5HIdDKbDJHPEgKuboj5aDsoWiZFuyGkOENys49pqqa41ViK3QVyzNUc7stlErLL7fKDDzogrfTltBTVIJsZoP3QF24HaI20/WEwPi3IDkB9i9bxBb6YfhVCneo0/0CSL+oZbO6LSnU7vcFgazD4XJ3L6ayj1OH3wVY57HF66l38Jae/LXSicwbtBG+r1rb0/sZoJPjQWObx9rjsATAMkCJR39cGA20BPP6iLSwFW91NjXUtbY1qVzPs/PeGFsnbnviA4B/gWm86gBGSIERJD0A+BZqaReIDd0hF0gFyOqvGEoOQ6+uEMIqB5s5tGmds3+Y6un/z5n2sDk82vuk/Rpob6p9zS+699V5pxLVv05b9+Go/Y/s317H9Wzbtc30j3PReff17TWFCKI5rOAgzSAPKmDgTRMuRfJjILsISMT9oCRRmJ7iFRAdBDg/QXsjnMpRc5JedTlAuXgTF6eSX6/yaf++4LzHNN7bP1y7u/fEINI7v8xlVvS7iV/SMz7dvzDctgT39Wrtv33gjROL+8b1+jdTOJ1Q7HwmFoLkhF8z/n9HXHnx31t8Ngzd+euzW4Zjy0NsDu+fyDx6GWc8Qwqr4h0l37QhxCzVqDFcriQsO6Ao1y+FOSOdQ7LjqC/yyywXKhQuguFz8Mr8uL5iZjLZPCz3X2uUKRlVGmbs50edraK83qvpdwO/eknv0ZFvzXXSxxGgk4qnzTUs9crR7/t8umW/rH8lR+ivSild3qNnlVlOQDWRy+XQHhAJ5S+nN8NV/CTR2NgaQeIPjnlZPuA6cb3sbAwCBRlqwr6Wr4x5P2NNKKnzZF+gngm8c4ZMNuF2xXkhkBiE7AMIU5IAP2MaoV3q2Hvl5PO8ii6jFyRdspC17LF6eMw2NwWBjaaQxaPOkBRQlWqiH5j1Ad/A9sGMm/w4sY4Qb3OiGVbCKlPVpMpPpKG8Zp6OG0qF0FoGcVSUEN+Icce0DKBaLOh7RkyWns3TSolAQLcWSXmlAaulvkp+KHLPIMKSGkGEWqjhqtglZhgMW7yKQKu4nD19wOC4ctigU7NF5tGqo/spbpBU5GlS31+z2AFvFj/Kj3WAAtoqVzxQymJA5LdryAewqAzw2E5bx78yEHYx0l7+7hSegz0Bkl2XXjTz32N9YvuEjXHMLqSNEshkqoW/Dhh5+D/xjD/8K88Eofz0Fh+BQir+u307ulkzclnwkzS275byc1/IarRHJC6kXX0y9YFFWLXW+vdKMlIhZlHn7SYR0ohY0tKReksbZBZSA0IUi9BFSQqAI9WAj6pwJNeEp3XI1GDF0buh4LZlg6OYNw9R1A//MCYJyIRRbsV0Hous3cHSdl5/K5DbYqF51FR6kPAoAfQkKIE+nAsXhqaRx4/tVyIAjNaKp2AY1hQY8lBa4wIfJ8VfWt04t7UgeMEEHXWh8Ags6YkF8Bwo2m1QAy6hgj9g8AQ3TYlkyQCcT35m4ZhuXAkaITolf5VeTIFkEpCS/ChLO46p1W/3Gmg3y+KyFV+QiONh83EATM8vQpjsqd5MIBuMWLL9KvyawHNfwew0O/WcSZBpOvvnzJP85lZOii7Oso7txJD/GdRkRRCQEDEIGQRNQAH0DUwKKFEhbv8IoRFFO0dESatk0TaqXzAJqmyJgDL2kM6KXCDU4AUMIUsjrlvV4qIazsQ64CDvKZvXexF2Vx+qu8V32XA3Ek4d4y7MlEs5T4DmgoJbyoTTgxON4irFRYzgZsKah7+ezLdSidsQMEdsMe7y+E1GrI5JJZZ5RJu4sD4CsgRKIlnCVHP0HN/ELK2YhMa15+HAWBCpTCMRlcCOY86DZgBEjvTHGP38k1u+dA0uTQjqIE462pY/xJ2OvROd4YWmqMjZKD63Za+s8LyNLJy6FFpP8E/5J0tR5gRrwXXyCxqRJXaVPPxUTF3Z2mRVwPl6M0YrwwbbXDaUlRUordtbiB9QjKzsDxPmWlSu30AJarnDEsCiXWwT6xjT9dnqjfpPodDS8ejul21eHSwY1wv3LAZb3rxbiQ+sv+7Oj7BzrxhFjtmVjiJTDPsxHfKDaJt43AJkJn3/upfOOVPJsHQRb6s9mdg/bFrvm4Bo8xl5zOF5j3fg8vDtztr4lCHVnkynH+ZcOXygNrXr+yKF7wfHa2Nhxe61/yTjbhZKXSd4eOdwkUgMrcQCRMYh8U8rkNGzVEnkpl7CW3yznB7C3m7nC8gDq9dmPFg4PL/zo2Qv8CuYQnRDvSCT6E4luCvPqJVcDXe+KdmlrVYD+eqnBSdfXRbU5y9kueGbnk/z6kzufAfwIE4pO/q46T8WDb3TL9cP1Xur0Qn9nygF3zw56PcP1DQ7MTU+3J90wOIkdQhyo6UbbQ3tAEJpVDAv7OjNumAK1CJ4gT8FZ/sub+CE+PcR/CcF1FVs4wY6wVfjCRepJE2kmJC9LGpPzEoYSDzhhtltY8elTxVO/U/5m46k5p/ijyHU2N34H94B5eRv89TaufylF1257eFvpJP3ysdIfLRd4ohN2ZscqFxGytSDlrqgTJciMFn6sRZyW5z1D1y9Zsp5aFMwf8h/X1cGsH9parrQjJdXxihF3ld/pxLHSARVRr6JFCQeUFZEBDcEdwPAA4iyKmAPFmyinm2Rr8ngS/Ejw4L9GwnT7Rbmbq9JOX67cCdk5atanYqS0UFRZplxZIMYnd1XEqm6nBBdWtfyx48xzft268x52fAzNyjYupGhUtmnBIqZjv0mxzMOeuz4eGvp419jxpyb6r9wyUOmP1J6ryEkYmZCVhRjha6B8RX+CB/o5cRFBjFsn1yt3k3lnAQoCgRIKd5Sh6cOoTkg5Tgv/EUYdxG1pBNIhxV45pgwBXHQ2LQVs7QecagfaGY0+VWCjvGhPmBdHWeEpvcgObN16gOFcaFemi3L/t3ZxU7cXhBPa9S3/fAwcOnbBjvimTVUtfSAnNlpeo0Ay6j6OTpUJn+qDWCKT6wsXRawRJ4ZX/mOITI/gYRQK6KxuGMy8oR9oFi0ROzxP+mjbJ0766Cl0CpgTYE5zA8lUKrS8Nzp2vJlaZWiP1thQtNYSJTNIlgwQq16qwlWzS6zqlsnYdfJtG4/NGgQYnGVTe6Gw4TZt827TVpxomDU4WBbc3XfYZtfCZ9mrLIXaIRIDTCcgf3EMy+y73jzEf72EpfhbpStjJ5aA/9CkfQnZuxGvsrBryf5IY2V7ZllcoogS5asumJ0Z4R8n35m3YlMKVjzw6MnHESRCzJjnoenAZRzinSQ0jZzhZ08++gD/h9SmFTSjI4xWbjmlW7kiqfavDL0iFtSWxjG5RmuR+1DqVnDK5Cwfaz5xBtCtFtt62vCYkcsJJ2uYT1zn79L0aFuyL9UKuZW5sr+t4ttE2sW+QBVvUQorDCZGqNZc9ViwMfnky/Rfr/KPOzIdeFSrqXr00ge5z/89TANHR7Y/01GrEKGPItpr1MoORf6DE8liog9FkXLpVrqD1Vr5oSbHm/C0efSz6GLR12KSY1cECggu+NOwSCgWClQvFITBjZbIKCZABIRPwXPUxETYMEqmCVabGAZXRkQWBdZY/4S6F1pXAljb5DV3QLEushKwLvmAYl2+C6qe3Ls3qVeu/FLNFauoi+UOifI1Pmh3sNvtWHWNPc18JCg8F/oKDYWfFklBLq/iOlTAE6+ojzLkEi7mWHPpscf+HL3l1rVr3xx+6pzOm5CsubT5sT8rNz6yvCs568QTjxTiXT2L9XN0WD+3sqrJ8pmvWhhvInPJAtRDXwcNiQ2KLi1B8+X6hrqsPQuRb+TT2UQunwvLYWsLrB2EC70LkcgwSUoIqFAycnj3EP3i7qf5/6wfzaRz778fWsDoigdH1NYwZZFQsMUB0Dq9tdvX5GjJyEFom97aNL9N7UqrKtOHdh8e2XMpn86MrgenYXyRDzb0DwyuaJbikc9MD0UBmps8HbPrHd7GQFZSfaq8NNDSEpjpi/BfQSzdBbFM7JY6FWONs3pPAH1yTXXG51NSXYjBv1lptIWB/2bjzIO+T8SSAUjhimWnoB00l3e67DaXO57T6Ne71i7zZ+8fSfj42Y5lixN16T9Y3AItzvzoSlW574F2/hGro6riGPzcvZEZq2edmNagDq+YF4rENvUtlXseXJMKT98UaauMa7Lzls8ncaekxSPgdEuYiV/K/wKGDx6E4V/k7/8yDH3YCxq/0PshP2H5qjes9XaSpeQ+skHk3tbeXkB1iaLUJcpSsfcXSOewPJVznSB24fDEt6hKLJkRWJ0gKvjwIIgqPjcoiibEYS/kaxKIqnv6x+93h7u8q1e3pLrf7164EImsTj4u8IaTc+cmY48r7Ylm/9CCpvppze3K47HaRk+H1K78dt1uSnevs+nQCKUjQxZlurGkbUC5SRbklhhLGhuRRO5SoPLobdbqGhrq+vX+WPIz3UZ3+6yWGD5U2lJ5bIuk5Vj/sgnm63YPVJgjrcVKoLa6Z24ZC84atDSkjsGaJP9p7U7GAz1vwJoU/2k5Zt/8Hvs+u4dMx5wsZ3FEhnigASMKUQV9sp2C5PohoKYQSxY4nXZkjeM7zFTYaF+68Z58aPxzhjHwcCirN/l9L27f/qLP36TrCzaos+c4fvD88z8ovWTHbKyorPD9YfuGP1kTHNlKdRieiwX9tgOUHthG0Ykue/pPY8+fZuz0CbungSfmmIsqczbZPpRBG2aSPSKDlVVtYsuFoXeW0uVyzF3ZPhaZrFXdUbMQ1pusgmtjGu7no3rBziv0ckpRTH7zm8lRTHCKBbHtwjHvMCqFWbkoC/O5Vidw8U8r86nsuURqLbh6D07MbMq9lgdFpaxPsfkGX5moEWxbwwo4Lmv5XjQMLH2r7O5t7fCVDRuuHNberrbAlzddfkF55x3lhcvTam2xdu7tU+8XMRlk0KacfeKvYEaSHzn2e3aJDo7BjBQ/8kbVnsJkLSLiliKybKfYAyn/xG6YkD4GRGsXwT4xicZvxTaoqRtiz8uWy+tML+/dpAOQBwncCFeMknw8BR4Tdqb4b3XxKexM8t/QD/l4EjylSt5685/Z9/B7UVenpqqsB+hkYV3ebE1jkAMTV9jbI4rs1vqfZHfVFtnHGTsOj5q6aepWMTK8K/uT+lZRa/f0WmIpDcG9h76OxTbWJmPH4UHR0zTvXC8S4jqQnlIvb31p+jf036OUzTv69kBvueZxEFqsqs+s/wfYJf6d1WfXwEspv37tGr9OKXivvfKzGTN+9opNp/CYtBjmZ8LWCRlxzmz40cKFP2qwaHZKN3jr3o0Hc0GsYt0aE3s3RGzV6GYyTUVx/0nSLH1KXWaSN9qxslbfiTvQt+D6/+v5PjDvSMftul7JmeE3lX1aqUqq8Snuq8sRMKZ8+C+86x2kdLDXbr3dPY7+v5auzdAAAAB4nGNgZGBgAOJDAQ2b4vltvjJwszCAwDXjRY8Q9P8GFkbmBiCXg4EJJAoAQlkLIAB4nGNgZGBgbvjfwBDDwsDA8P8/CyMDUAQFeAAAcjYEsHicY2FgYGB+ycDAwjCKsWEApeYCCQAAAAAAAAAAdgCyAPoBKgF2AaIBzAHiAgoCRgJcAnAChAKeAswDGANaA2gDdgOEA5IDtAPWA+oEHARABHAEhASuBMwFBgVCBaIFxgX0BiQGZAa6Bt4G7AcsB1YHlAf8CBQIUgh+CMQI3AkSCUoJhgnyChQKUApqCwgLMAuKC9IMBgwwDGoMkgyyDPwNNA2MDaoN7A4uAAB4nGNgZGBg8GBIZeBgAAEmIOYCQgaG/2A+AwAadwHMAHicfY9LTsMwEIZ/94VIBQsQLLrBYoEEqOlDgkW3ldodSF10wypNnTZVEkeOW6kX4A4cgJNwDrgAl2CSDkipVBKN883n8XgC4AxfENg9FxQ7FjihbMcVHOGauUr+lrlG/MhcRxND5gb5J2YH93hhbuIcr9RB1I4pu8Mbs0ALH8wVnOKTuUr+m7mGlqgz13Eprpgb5B+YHUzFM3MTN+LdGRrlWTWXs60MfZ0EOrGOilSsEtvORTZRi3XkmZIrJVNlslAnsud2S36sEmV+e2ebRd/aQAZGx3JEl6go0jI1eqV86y6tTQedTsDe9XVMow5hoODB0jqHxAxbWkP40EgQFKulOoWIIqbI8/ZfRYYJuQXWtO8VvQ7VHd6ZkjP0DYtcogcX3X/qx4XLz+zPnWFDs/TJWppdUhg6ExON+E/yrhGxRFrsrcj45F0si1MpBujQG+zVu8Xt8Q+LZH1gAHicbVJZe9MwEPQUOXISpy003Fe5T3OU+yxQjvIzHHkT64stGUlO+Pj1+EhMHtCDPd7d2Z0dy9vy2jPw/n+OsYUTYPDRA0eAPgYYIsQI29jBLk7iFPYwxmmcwVmcw3lcwEVcwmVcwVXs4xqu4wZu4hZu4w7u4h7u4wEeIsIjPMYTPMUBnuE5XuAlXuE13uAt3uE9PuAjDvEJn/EFR/iKb/iOHzjGTw+/e2WR6TjxyRhtuC2FIGv5MjZKqlnfauOiRC8Vb1BZDOKqbhllNHVDIY3IKCqy0u5t4EiXLpOKVqU1e9hCI2epC1pcFmwSi3m4IopMW2JJ7Gi8Gel6idiQa8aGLZxo53Tebz+cLoYtakb4DTdMon9ifZGSmPcSysjRaJ1pBSValDkpx5OoaRJSIt16clDrbxyaaZ3YnqXYiJRJNdU8r6yKZ8Tq+iDTInZSK14XV97trgPrTqyaUfq5VKVlE8qyMNcTWXuW6iqpaGmriOlW9pv4qHmuY7yQwpWGdlbvrnXtOy+MVI4MM7Gac0NTQzYNfpVkaxU9Q7lekG/TakVuXWyiSqsl5yqt3V+oTaqCZiEFBVZnST1hu6V2jrTk6XS8yeokOinm5CyrLwz/o3UeScWczIktJC15e90OgiZTcVi9s+f9BXuB96oAAAA=) format("woff"),url(/static/fonts/element-icons.6f0a763.ttf) format("truetype");font-weight:400;font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-info:before{content:"\E61A"}.el-icon-error:before{content:"\E62C"}.el-icon-success:before{content:"\E62D"}.el-icon-warning:before{content:"\E62E"}.el-icon-question:before{content:"\E634"}.el-icon-back:before{content:"\E606"}.el-icon-arrow-left:before{content:"\E600"}.el-icon-arrow-down:before{content:"\E603"}.el-icon-arrow-right:before{content:"\E604"}.el-icon-arrow-up:before{content:"\E605"}.el-icon-caret-left:before{content:"\E60A"}.el-icon-caret-bottom:before{content:"\E60B"}.el-icon-caret-top:before{content:"\E60C"}.el-icon-caret-right:before{content:"\E60E"}.el-icon-d-arrow-left:before{content:"\E610"}.el-icon-d-arrow-right:before{content:"\E613"}.el-icon-minus:before{content:"\E621"}.el-icon-plus:before{content:"\E62B"}.el-icon-remove:before{content:"\E635"}.el-icon-circle-plus:before{content:"\E601"}.el-icon-remove-outline:before{content:"\E63C"}.el-icon-circle-plus-outline:before{content:"\E602"}.el-icon-close:before{content:"\E60F"}.el-icon-check:before{content:"\E611"}.el-icon-circle-close:before{content:"\E607"}.el-icon-circle-check:before{content:"\E639"}.el-icon-circle-close-outline:before{content:"\E609"}.el-icon-circle-check-outline:before{content:"\E63E"}.el-icon-zoom-out:before{content:"\E645"}.el-icon-zoom-in:before{content:"\E641"}.el-icon-d-caret:before{content:"\E615"}.el-icon-sort:before{content:"\E640"}.el-icon-sort-down:before{content:"\E630"}.el-icon-sort-up:before{content:"\E631"}.el-icon-tickets:before{content:"\E63F"}.el-icon-document:before{content:"\E614"}.el-icon-goods:before{content:"\E618"}.el-icon-sold-out:before{content:"\E63B"}.el-icon-news:before{content:"\E625"}.el-icon-message:before{content:"\E61B"}.el-icon-date:before{content:"\E608"}.el-icon-printer:before{content:"\E62F"}.el-icon-time:before{content:"\E642"}.el-icon-bell:before{content:"\E622"}.el-icon-mobile-phone:before{content:"\E624"}.el-icon-service:before{content:"\E63A"}.el-icon-view:before{content:"\E643"}.el-icon-menu:before{content:"\E620"}.el-icon-more:before{content:"\E646"}.el-icon-more-outline:before{content:"\E626"}.el-icon-star-on:before{content:"\E637"}.el-icon-star-off:before{content:"\E63D"}.el-icon-location:before{content:"\E61D"}.el-icon-location-outline:before{content:"\E61F"}.el-icon-phone:before{content:"\E627"}.el-icon-phone-outline:before{content:"\E628"}.el-icon-picture:before{content:"\E629"}.el-icon-picture-outline:before{content:"\E62A"}.el-icon-delete:before{content:"\E612"}.el-icon-search:before{content:"\E619"}.el-icon-edit:before{content:"\E61C"}.el-icon-edit-outline:before{content:"\E616"}.el-icon-rank:before{content:"\E632"}.el-icon-refresh:before{content:"\E633"}.el-icon-share:before{content:"\E636"}.el-icon-setting:before{content:"\E638"}.el-icon-upload:before{content:"\E60D"}.el-icon-upload2:before{content:"\E644"}.el-icon-download:before{content:"\E617"}.el-icon-loading:before{content:"\E61E"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;box-sizing:border-box}.el-pager li,.el-pagination__editor{-webkit-box-sizing:border-box;text-align:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;margin:0 2px;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-pager,.el-radio,.el-table th{-webkit-user-select:none}.el-date-table,.el-radio,.el-table th{-moz-user-select:none;-ms-user-select:none}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;font-size:13px;min-width:35.5px;height:28px;line-height:28px;box-sizing:border-box}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-dialog,.el-dialog__footer{-webkit-box-sizing:border-box}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.3);box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px}.el-dialog__footer{padding:10px 20px 20px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{animation:dialog-fade-in .3s}.dialog-fade-leave-active{animation:dialog-fade-out .3s}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes dialog-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px}.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{z-index:10;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box;overflow:auto;background-color:#fff;border:1px solid #e4e7ed;border-radius:4px}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button:hover:before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown-menu{position:absolute;top:0;left:0;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item--divided:before,.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px}.el-menu:after,.el-menu:before,.el-radio__inner:after,.el-switch__core:after{content:""}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu:after,.el-menu:before{display:table}.el-menu:after{clear:both}.el-menu--horizontal{border-right:none;border-bottom:1px solid #e6e6e6}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu__title.is-active{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;position:relative;-webkit-box-sizing:border-box;white-space:nowrap;list-style:none}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;transition:transform .3s;font-size:12px}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{transition:.2s;opacity:0}.el-radio{color:#606266;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;outline:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio+.el-radio{margin-left:30px}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;box-sizing:border-box}.el-radio-button__inner,.el-switch__core{-webkit-box-sizing:border-box;vertical-align:middle}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative;outline:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.el-radio-button__inner{line-height:1;white-space:nowrap;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;margin:0;cursor:pointer;transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-popover,.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){box-shadow:0 0 2px 2px #409eff}.el-switch{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus~.el-switch__core{outline:1px solid #409eff}.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;box-sizing:border-box;background:#dcdfe6;transition:border-color .3s,background-color .3s}.el-switch__core:after{position:absolute;top:1px;left:1px;border-radius:100%;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E611";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;transition:transform .3s;transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;transform:rotate(180deg);border-radius:100%;color:#c0c4cc;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;transform:translateY(-50%);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-tag__close.el-icon-close:before{display:block;transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;transition:transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative}.el-table th>.cell,.el-table th div{-webkit-box-sizing:border-box;display:inline-block}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-left,.el-table th.is-left{text-align:left}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table .cell,.el-table th div{padding-right:10px;overflow:hidden;text-overflow:ellipsis}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell,.el-table .cell,.el-table th div{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{white-space:nowrap;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:left}.el-table th div{line-height:40px;box-sizing:border-box;white-space:nowrap}.el-table th>.cell{position:relative;word-wrap:normal;text-overflow:ellipsis;vertical-align:middle;width:100%;box-sizing:border-box}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{box-sizing:border-box;white-space:normal;word-break:break-all;line-height:23px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{box-shadow:none}.el-picker-panel,.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td,.el-table__body tr.current-row>td,.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div,.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.el-date-table,.el-slider__button-wrapper,.el-time-panel{-moz-user-select:none;-ms-user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius:50%}.el-month-table td .cell,.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{color:#606266;margin:0 auto}.el-month-table td .cell:hover,.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content.is-right .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input,.el-date-editor .el-range-separator{height:100%;margin:0;text-align:center;display:inline-block;font-size:14px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;padding:0;width:39%;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder,.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{padding:0 5px;line-height:32px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#409eff}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder,.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-popover,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.v-modal-enter{animation:v-modal-in .2s ease}.v-modal-leave{animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{position:relative;padding:10px 15px;color:#606266;font-size:14px}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{animation:msgbox-fade-out .3s}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-out{0%{transform:translateZ(0);opacity:1}to{transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item__content .el-input-group,.el-form-item__label,.el-tag .el-icon-close{vertical-align:middle}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label{text-align:right;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required .el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item.is-success .el-input__inner,.el-form-item.is-success .el-input__inner:focus,.el-form-item.is-success .el-textarea__inner,.el-form-item.is-success .el-textarea__inner:focus{border-color:#67c23a}.el-form-item.is-success .el-input-group__append .el-input__inner,.el-form-item.is-success .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-success .el-input__validateIcon{color:#67c23a}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;transition:transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;transition:all .15s}.el-tabs__new-tab .el-icon-plus{transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-alert,.el-tag{-webkit-box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin:-1px -1px 0;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card .el-tabs__item:last-child,.el-tabs--top.el-tabs--card .el-tabs__item:last-child,.el-tabs--top .el-tabs--left .el-tabs__item:last-child,.el-tabs--top .el-tabs--right .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tag,.slideInLeft-transition,.slideInRight-transition{display:inline-block}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInRight-enter{animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave .3s}.slideInLeft-enter{animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave .3s}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}to{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tag{background-color:rgba(64,158,255,.1);padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#409eff;border-radius:4px;box-sizing:border-box;border:1px solid rgba(64,158,255,.2);white-space:nowrap}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;top:-1px;right:-5px;color:#409eff}.el-tag .el-icon-close:before{display:block}.el-tag .el-icon-close:hover{background-color:#409eff;color:#fff}.el-tag--info,.el-tag--info .el-tag__close{color:#909399}.el-tag--info{background-color:hsla(220,4%,58%,.1);border-color:hsla(220,4%,58%,.2)}.el-tag--info.is-hit{border-color:#909399}.el-tag--info .el-tag__close:hover{background-color:#909399;color:#fff}.el-tag--success{background-color:rgba(103,194,58,.1);border-color:rgba(103,194,58,.2);color:#67c23a}.el-tag--success.is-hit{border-color:#67c23a}.el-tag--success .el-tag__close{color:#67c23a}.el-tag--success .el-tag__close:hover{background-color:#67c23a;color:#fff}.el-tag--warning{background-color:rgba(230,162,60,.1);border-color:rgba(230,162,60,.2);color:#e6a23c}.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--warning .el-tag__close:hover{background-color:#e6a23c;color:#fff}.el-tag--danger{background-color:hsla(0,87%,69%,.1);border-color:hsla(0,87%,69%,.2);color:#f56c6c}.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--danger .el-tag__close:hover{background-color:#f56c6c;color:#fff}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;transform:scale(.7)}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#6f7180}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;transform:rotate(0);transition:transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;transition:opacity .2s}.el-alert.is-center{-ms-flex-pack:center;justify-content:center}.el-alert--success{background-color:#f0f9eb;color:#67c23a}.el-alert--success .el-alert__description{color:#67c23a}.el-alert--info{background-color:#f4f4f5;color:#909399}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning .el-alert__description{color:#e6a23c}.el-alert--error{background-color:#fef0f0;color:#f56c6c}.el-alert--error .el-alert__description{color:#f56c6c}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;color:#c0c4cc;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;transform:translateX(100%)}.el-notification-fade-enter.left{left:0;transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-progress-bar__inner:after,.el-row:after,.el-row:before,.el-slider:after,.el-slider:before,.el-slider__button-wrapper:after,.el-upload-cover:after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{vertical-align:middle;display:inline-block}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{transform:scale(1);cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;position:absolute;z-index:1001;top:-15px;transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;user-select:none;line-height:normal}.el-slider__button,.el-slider__button-wrapper,.el-step__icon-inner{-moz-user-select:none;-ms-user-select:none}.el-slider__button-wrapper:after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;transition:.2s;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-button,.el-checkbox,.el-slider__button,.el-step__icon-inner{-webkit-user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:6px;width:6px;border-radius:100%;background-color:#fff;transform:translateX(-50%)}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;box-sizing:border-box;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{box-sizing:border-box}.el-row:after,.el-row:before{display:table}.el-row:after{clear:both}.el-row--flex{display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;box-sizing:border-box}.el-upload--picture-card,.el-upload-dragger{-webkit-box-sizing:border-box;cursor:pointer}.el-col-0{width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:768px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;box-sizing:border-box;width:360px;height:180px;text-align:center;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;transform:rotate(45deg);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle{display:inline-block}.el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner:after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap}.el-card,.el-message{border-radius:4px;overflow:hidden}.el-progress-bar__inner:after{height:100%}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s;padding:15px 15px 15px 20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-message.is-center{-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-card{border:1px solid #ebeef5;background-color:#fff;color:#303133;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:#fff;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-button,.el-checkbox,.el-step__icon-inner{-moz-user-select:none;-ms-user-select:none}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-ms-flex-positive:1;flex-grow:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{overflow-x:hidden;position:relative}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;bottom:0;left:50%;transform:translateX(-50%);margin:0;padding:0;z-index:2}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{display:inline-block;background-color:transparent;padding:12px 4px;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:hsla(220,4%,58%,.3);transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:hsla(220,4%,58%,.5)}.el-carousel__mask,.el-cascader-menu,.el-cascader-menu__item.is-disabled:hover,.el-collapse-item__header,.el-collapse-item__wrap{background-color:#fff}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-carousel__item,.el-carousel__mask{height:100%;top:0;left:0;position:absolute}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;opacity:.24;transition:.2s}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item__header{height:48px;line-height:48px;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin-right:8px;transition:transform .3s;float:right;line-height:48px;font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader .el-input,.el-cascader .el-input__inner{cursor:pointer}.el-cascader .el-input__icon{transition:none}.el-cascader .el-icon-arrow-down{transition:transform .3s;font-size:14px}.el-cascader .el-icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-icon-circle-close{z-index:2;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-cascader .el-icon-circle-close:hover{color:#909399}.el-cascader__clearIcon{z-index:2;position:relative}.el-cascader__label{position:absolute;left:0;top:0;height:100%;padding:0 25px 0 15px;color:#606266;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;box-sizing:border-box;cursor:pointer;text-align:left;font-size:inherit}.el-cascader__label span{color:#000}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader-menus{white-space:nowrap;background:#fff;position:absolute;margin:5px 0;z-index:2;border:1px solid #e4e7ed;border-radius:2px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader-menu{display:inline-block;vertical-align:top;height:204px;overflow:auto;border-right:1px solid #e4e7ed;box-sizing:border-box;margin:0;padding:6px 0;min-width:160px}.el-cascader-menu:last-child{border-right:0}.el-cascader-menu__item{font-size:14px;padding:8px 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:1.5;box-sizing:border-box;cursor:pointer;outline:0}.el-cascader-menu__item--extensible:after{font-family:element-icons;content:"\E604";font-size:14px;color:#bfcbd9;position:absolute;right:15px}.el-cascader-menu__item.is-disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-cascader-menu__item.is-active{color:#409eff}.el-cascader-menu__item:focus:not(:active),.el-cascader-menu__item:hover{background-color:#f5f7fa}.el-cascader-menu__item.selected{color:#fff;background-color:#f5f7fa}.el-cascader-menu__item__keyword{font-weight:700}.el-cascader-menu--flexible{height:auto;max-height:180px;overflow:auto}.el-cascader-menu--flexible .el-cascader-menu__item{overflow:visible}.el-color-predefine{display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty,.el-color-picker__icon{top:50%;left:50%;font-size:12px;position:absolute}.el-color-picker__empty{color:#999;transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;transform:translate3d(-50%,-50%,0);color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder,.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder,.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;line-height:16px;cursor:pointer;transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#c0c4cc;text-align:center}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder,.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;transition:all .3s;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder,.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-button-group:after{clear:both}.el-button-group .el-button{float:left;position:relative}.el-button-group .el-button+.el-button{margin-left:0}.el-button-group .el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group .el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group .el-button:first-child:last-child{border-radius:4px}.el-button-group .el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group .el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group .el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group .el-button:not(:last-child){margin-right:-1px}.el-button-group .el-button.is-active,.el-button-group .el-button:active,.el-button-group .el-button:focus,.el-button-group .el-button:hover{z-index:1}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in .05s;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox+.el-checkbox{margin-left:30px}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#409eff;font-size:0}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;box-sizing:border-box;color:#000}.el-container,.el-header{-webkit-box-sizing:border-box}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside,.el-main{overflow:auto;-webkit-box-sizing:border-box}.el-aside{-ms-flex-negative:0;flex-shrink:0}.el-aside,.el-main{box-sizing:border-box}.el-main{display:block;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;padding:20px}.el-footer{padding:0 20px;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}@font-face{font-family:iconfont;src:url(data:application/vnd.ms-fontobject;base64,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);src:url(data:application/vnd.ms-fontobject;base64,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#iefix) format("embedded-opentype"),url("data:application/x-font-woff;charset=utf-8;base64,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") format("woff"),url(data:application/x-font-ttf;base64,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) format("truetype"),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiA+DQo8IS0tDQoyMDEzLTktMzA6IENyZWF0ZWQuDQotLT4NCjxzdmc+DQo8bWV0YWRhdGE+DQpDcmVhdGVkIGJ5IGljb25mb250DQo8L21ldGFkYXRhPg0KPGRlZnM+DQoNCjxmb250IGlkPSJpY29uZm9udCIgaG9yaXotYWR2LXg9IjEwMjQiID4NCiAgPGZvbnQtZmFjZQ0KICAgIGZvbnQtZmFtaWx5PSJpY29uZm9udCINCiAgICBmb250LXdlaWdodD0iNTAwIg0KICAgIGZvbnQtc3RyZXRjaD0ibm9ybWFsIg0KICAgIHVuaXRzLXBlci1lbT0iMTAyNCINCiAgICBhc2NlbnQ9Ijg5NiINCiAgICBkZXNjZW50PSItMTI4Ig0KICAvPg0KICAgIDxtaXNzaW5nLWdseXBoIC8+DQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IngiIHVuaWNvZGU9IngiIGhvcml6LWFkdi14PSIxMDAxIg0KZD0iTTI4MSA1NDNxLTI3IC0xIC01MyAtMWgtODNxLTE4IDAgLTM2LjUgLTZ0LTMyLjUgLTE4LjV0LTIzIC0zMnQtOSAtNDUuNXYtNzZoOTEydjQxcTAgMTYgLTAuNSAzMHQtMC41IDE4cTAgMTMgLTUgMjl0LTE3IDI5LjV0LTMxLjUgMjIuNXQtNDkuNSA5aC0xMzN2LTk3aC00Mzh2OTd6TTk1NSAzMTB2LTUycTAgLTIzIDAuNSAtNTJ0MC41IC01OHQtMTAuNSAtNDcuNXQtMjYgLTMwdC0zMyAtMTZ0LTMxLjUgLTQuNXEtMTQgLTEgLTI5LjUgLTAuNQ0KdC0yOS41IDAuNWgtMzJsLTQ1IDEyOGgtNDM5bC00NCAtMTI4aC0yOWgtMzRxLTIwIDAgLTQ1IDFxLTI1IDAgLTQxIDkuNXQtMjUuNSAyM3QtMTMuNSAyOS41dC00IDMwdjE2N2g5MTF6TTE2MyAyNDdxLTEyIDAgLTIxIC04LjV0LTkgLTIxLjV0OSAtMjEuNXQyMSAtOC41cTEzIDAgMjIgOC41dDkgMjEuNXQtOSAyMS41dC0yMiA4LjV6TTMxNiAxMjNxLTggLTI2IC0xNCAtNDhxLTUgLTE5IC0xMC41IC0zN3QtNy41IC0yNXQtMyAtMTV0MSAtMTQuNQ0KdDkuNSAtMTAuNXQyMS41IC00aDM3aDY3aDgxaDgwaDY0aDM2cTIzIDAgMzQgMTJ0MiAzOHEtNSAxMyAtOS41IDMwLjV0LTkuNSAzNC41cS01IDE5IC0xMSAzOWgtMzY4ek0zMzYgNDk4djIyOHEwIDExIDIuNSAyM3QxMCAyMS41dDIwLjUgMTUuNXQzNCA2aDE4OHEzMSAwIDUxLjUgLTE0LjV0MjAuNSAtNTIuNXYtMjI3aC0zMjd6IiAvPg0KICAgIA0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InhpbmdiaWVudiIgdW5pY29kZT0iJiM1ODg4NTsiIGQ9Ik01MTAuODg3NjY2IDM4NG0tNDQ2LjcwODk3MSAwYTQ0Ni43MDg5NzEgNDQ2LjcwODk3MSAwIDEgMSA4OTMuNDE3OTQyIDAgNDQ2LjcwODk3MSA0NDYuNzA4OTcxIDAgMSAxLTg5My40MTc5NDIgMFpNNTEwLjg3OTQ4IDMxNy4wOTcyNjRjLTEyMy42NzM3MTcgMC0yMjQuMjgyMTEzIDEwMC42MDczNzItMjI0LjI4MjExMyAyMjQuMjgyMTEzczEwMC42MDczNzIgMjI0LjI4MjExMyAyMjQuMjgyMTEzIDIyNC4yODIxMTMgMjI0LjI4MjExMy0xMDAuNjA3MzcyIDIyNC4yODIxMTItMjI0LjI4MjExMy0xMDAuNjA4Mzk2LTIyNC4yODIxMTMtMjI0LjI4MjExMi0yMjQuMjgyMTEzeiBtMCAzNjQuODA1NTljLTc3LjQ4Njc5MiAwLTE0MC41MjM0NzctNjMuMDM2Njg1LTE0MC41MjM0NzctMTQwLjUyMzQ3N3M2My4wMzY2ODUtMTQwLjUyMzQ3NyAxNDAuNTIzNDc3LTE0MC41MjM0NzcgMTQwLjUyMzQ3NyA2My4wMzY2ODUgMTQwLjUyMzQ3NyAxNDAuNTIzNDc3LTYzLjAzNjY4NSAxNDAuNTIzNDc3LTE0MC41MjM0NzcgMTQwLjUyMzQ3N3pNNTEwLjg3OTQ4LTAuNjM1MjE3Yy0yMy4xMjA1OCAwLTQxLjg3ODgwNiAxOC43NDQ5MjMtNDEuODc4ODA2IDQxLjg3ODgwNlYzNTguOTc2MDdjMCAyMy4xMzM4ODMgMTguNzU4MjI2IDQxLjg3ODgwNiA0MS44Nzg4MDYgNDEuODc4ODA2czQxLjg3ODgwNi0xOC43NDQ5MjMgNDEuODc4ODA2LTQxLjg3ODgwNnYtMzE3LjczMjQ4MWMwLTIzLjEzMzg4My0xOC43NTgyMjYtNDEuODc4ODA2LTQxLjg3ODgwNi00MS44Nzg4MDZ6TTY2OS43NTI4ODQgMTU4LjIzNzE2M0gzNTIuMDMzNzA1Yy0yMy4xMjA1OCAwLTQxLjg3ODgwNiAxOC43NDQ5MjMtNDEuODc4ODA2IDQxLjg3ODgwNnMxOC43NTgyMjYgNDEuODc4ODA2IDQxLjg3ODgwNiA0MS44Nzg4MDdoMzE3LjcxOTE3OWMyMy4xMjA1OCAwIDQxLjg3ODgwNi0xOC43NDQ5MjMgNDEuODc4ODA2LTQxLjg3ODgwN3MtMTguNzU4MjI2LTQxLjg3ODgwNi00MS44Nzg4MDYtNDEuODc4ODA2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InhpbmdiaWVuYW4iIHVuaWNvZGU9IiYjNTg4ODY7IiBkPSJNNTExLjg0MzQzNCAzODRtLTQ0Ni43MDg5NzEgMGE0NDYuNzA4OTcxIDQ0Ni43MDg5NzEgMCAxIDEgODkzLjQxNzk0MiAwIDQ0Ni43MDg5NzEgNDQ2LjcwODk3MSAwIDEgMS04OTMuNDE3OTQyIDBaTTQyNC4xMTEzMDEgNzcuMTc0OTM5Yy01OS4zMjgyMjMgMC0xMTUuMTQwMzY3IDIzLjEwNzI3Ny0xNTcuMTAxMDM4IDY1LjA4MTI1MS04Ni42MjA4MjMgODYuNjIwODIzLTg2LjYyMDgyMyAyMjcuNTgxMjUyIDAgMzE0LjIxNTM3OCA0MS45NjA2NzEgNDEuOTczOTc0IDk3Ljc3MTc5MSA2NS4wODEyNTEgMTU3LjEwMTAzOCA2NS4wODEyNTEgNTkuMzU1ODUzIDAgMTE1LjE0MDM2Ny0yMy4xMjA1OCAxNTcuMTAxMDM3LTY1LjA4MTI1MSA0MS45NjA2NzEtNDEuOTczOTc0IDY1LjA4MTI1MS05Ny43NzE3OTEgNjUuMDgxMjUxLTE1Ny4xMTQzNHMtMjMuMTIwNTgtMTE1LjE0MDM2Ny02NS4wODEyNTEtMTU3LjEwMTAzOC05Ny43NDUxODUtNjUuMDgxMjUxLTE1Ny4xMDEwMzctNjUuMDgxMjUxeiBtMCAzNjAuNjIwMjY4Yy0zNi45NzEwMyAwLTcxLjczMzc2NS0xNC40MDkxNzUtOTcuODgxMjg1LTQwLjU0MzM5Mi01My45NTc5MTMtNTMuOTg0NTE4LTUzLjk1NzkxMy0xNDEuODA0NjU2IDAtMTk1Ljc3NTg3MiAyNi4xNDc1Mi0yNi4xNDc1MiA2MC45MTAyNTUtNDAuNTQzMzkyIDk3Ljg4MTI4NS00MC41NDMzOTFzNzEuNzMzNzY1IDE0LjM5NTg3MiA5Ny44ODEyODQgNDAuNTQzMzkxYzI2LjE0NzUyIDI2LjE0NzUyIDQwLjU0MzM5MiA2MC45MTAyNTUgNDAuNTQzMzkyIDk3Ljg4MTI4NXMtMTQuMzk1ODcyIDcxLjczMzc2NS00MC41NDMzOTIgOTcuODk0NTg3Yy0yNi4xNDY0OTcgMjYuMTQ3NTItNjAuOTA5MjMyIDQwLjU0MzM5Mi05Ny44ODEyODQgNDAuNTQzMzkyek01NTEuNjAyOTczIDM4NC45ODMzOTdjLTEwLjcxNTAzOSAwLTIxLjQzMDA3OCA0LjA5MDE1NS0yOS42MDkzNjUgMTIuMjY5NDQyLTE2LjM1ODU3MyAxNi4zNTg1NzMtMTYuMzU4NTczIDQyLjg3NDQ4MyAwIDU5LjIxOTc1M0w2NzIuNTc3MjA5IDYwNy4wNTYxOTJoLTQyLjgzMzU1MWMtMjMuMTIwNTggMC00MS44Nzg4MDYgMTguNzQ0OTIzLTQxLjg3ODgwNiA0MS44Nzg4MDZzMTguNzU4MjI2IDQxLjg3ODgwNiA0MS44Nzg4MDYgNDEuODc4ODA2aDE0My45NTg3MTZjMTYuOTMxNjI0IDAgMzIuMjAwMzc2LTEwLjIxMDU0OSAzOC42ODkxNjEtMjUuODQ3NjkxIDYuNDg4Nzg1LTE1LjY1MDQ0NSAyLjg4OTgxNy0zMy42NzE4OS05LjA3ODc3My00NS42NDE1MDNMNTgxLjIxMjMzOCAzOTcuMjUyODM5Yy04LjE3OTI4Ni04LjE3OTI4Ni0xOC44OTQzMjYtMTIuMjY5NDQxLTI5LjYwOTM2NS0xMi4yNjk0NDJ6TTc3My43MDMzOTcgNjA3LjA1NjE5MmgtMTQzLjk1ODcxNmMtMjMuMTIwNTggMC00MS44Nzg4MDYgMTguNzQ0OTIzLTQxLjg3ODgwNiA0MS44Nzg4MDZzMTguNzU4MjI2IDQxLjg3ODgwNiA0MS44Nzg4MDYgNDEuODc4ODA2aDE0My45NTg3MTZjMjMuMTIwNTggMCA0MS44Nzg4MDYtMTguNzQ0OTIzIDQxLjg3ODgwNi00MS44Nzg4MDZzLTE4Ljc1ODIyNi00MS44Nzg4MDYtNDEuODc4ODA2LTQxLjg3ODgwNnpNNzc5Ljg2NDcyNCA0NTYuOTQ5NDUyYy0yMy4xMjA1OCAwLTQxLjg3ODgwNiAxOC43NDQ5MjMtNDEuODc4ODA2IDQxLjg3ODgwNlY2NDIuNzczNjcxYzAgMjMuMTMzODgzIDE4Ljc1ODIyNiA0MS44Nzg4MDYgNDEuODc4ODA2IDQxLjg3ODgwN3M0MS44Nzg4MDYtMTguNzQ0OTIzIDQxLjg3ODgwNi00MS44Nzg4MDd2LTE0My45NDU0MTNjMC0yMy4xMzM4ODMtMTguNzU4MjI2LTQxLjg3ODgwNi00MS44Nzg4MDYtNDEuODc4ODA2ek03NzkuODY0NzI0IDQ1Ni45NDk0NTJjLTIzLjEyMDU4IDAtNDEuODc4ODA2IDE4Ljc0NDkyMy00MS44Nzg4MDYgNDEuODc4ODA2VjY0Mi43NzM2NzFjMCAyMy4xMzM4ODMgMTguNzU4MjI2IDQxLjg3ODgwNiA0MS44Nzg4MDYgNDEuODc4ODA3czQxLjg3ODgwNi0xOC43NDQ5MjMgNDEuODc4ODA2LTQxLjg3ODgwN3YtMTQzLjk0NTQxM2MwLTIzLjEzMzg4My0xOC43NTgyMjYtNDEuODc4ODA2LTQxLjg3ODgwNi00MS44Nzg4MDZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZ29uZ2hhbyIgdW5pY29kZT0iJiM1ODk1NzsiIGQ9Ik0xNTMuNiA1NTYuOEExOS4yIDE5LjIgMCAwIDEgMTM0LjQgNTM3LjZ2LTQ2MC44YzAtMTAuNTk4NCA4LjYwMTYtMTkuMiAxOS4yLTE5LjJoNzE2LjhhMTkuMiAxOS4yIDAgMCAxIDE5LjIgMTkuMlY1MzcuNkExOS4yIDE5LjIgMCAwIDEgODcwLjQgNTU2LjhIMTUzLjZ6IG0wIDY0aDcxNi44YzQ1LjkyNjQgMCA4My4yLTM3LjI3MzYgODMuMi04My4ydi00NjAuOGMwLTQ1LjkyNjQtMzcuMjczNi04My4yLTgzLjItODMuMkgxNTMuNkE4My4yIDgzLjIgMCAwIDAgNzAuNCA3Ni44VjUzNy42YzAgNDUuOTI2NCAzNy4yNzM2IDgzLjIgODMuMiA4My4yek0zMDIuNzk2OCA0MTkuMTIzMmgzMy43OTJsMTEyLjEyOC0xNjMuMTIzMmgxLjIyODhWNDE5LjEyMzJoMzMuNDg0OHYtMjE5LjM0MDhoLTMyLjU2MzJsLTExMy4zNTY4IDE2NC45NjY0aC0xLjIyODh2LTE2NC45NjY0aC0zMy40ODQ4VjQxOS4xMjMyeiBtMzIxLjAyNCA0LjMwMDhjMzMuMTc3NiAwIDU5LjU5NjgtMTAuNzUyIDc4Ljk1MDQtMzIuNTYzMiAxOC40MzItMjAuNTgyNCAyNy42NDgtNDcuOTIzMiAyNy42NDgtODEuNzE1MiAwLTMzLjQ4NDgtOS4yMTYtNjAuNTE4NC0yNy42NDgtODEuNDA4LTE5LjM1MzYtMjEuNTA0LTQ1Ljc3MjgtMzIuMjU2LTc4Ljk1MDQtMzIuMjU2LTMzLjQ4NDggMC01OS45MDQgMTEuMDU5Mi03OC45NTA0IDMyLjU2MzItMTguNDMyIDIwLjg4OTYtMjcuMzQwOCA0Ny45MjMyLTI3LjM0MDggODEuMTAwOCAwIDMzLjQ4NDggOC45MDg4IDYwLjUxODQgMjcuMzQwOCA4MS40MDggMTkuMDQ2NCAyMi4xMTg0IDQ1LjQ2NTYgMzIuODcwNCA3OC45NTA0IDMyLjg3MDR6IG0wLTI5LjQ5MTJjLTIzLjM0NzIgMC00MS40NzItNy42OC01NC4zNzQ0LTIzLjY1NDQtMTIuMjg4LTE1LjA1MjgtMTguNDMyLTM1LjMyOC0xOC40MzItNjEuMTMyOCAwLTI1LjQ5NzYgNi4xNDQtNDUuNzcyOCAxOC40MzItNjAuODI1NiAxMi45MDI0LTE1LjM2IDMxLjAyNzItMjMuMzQ3MiA1NC4zNzQ0LTIzLjM0NzIgMjMuMzQ3MiAwIDQxLjQ3MiA3LjY4IDU0LjA2NzIgMjIuNzMyOCAxMi4yODggMTQuNzQ1NiAxOC43MzkyIDM1LjMyOCAxOC43MzkyIDYxLjQ0IDAgMjYuNDE5Mi02LjQ1MTIgNDcuMDAxNi0xOC43MzkyIDYyLjA1NDQtMTIuNTk1MiAxNS4zNi0zMC43MiAyMi43MzI4LTU0LjA2NzIgMjIuNzMyOHpNNDc0LjIxNDQgNjg0LjhsMTIuOC02NGg0OS45NzEybDEyLjggNjRINDc0LjIxNDR6IG0xMjEuMTkwNC05OC4xNTA0YTM3LjEyIDM3LjEyIDAgMCAwLTM2LjQwMzItMjkuODQ5Nkg0NjQuOTk4NGEzNy4xMiAzNy4xMiAwIDAgMC0zNi4zNTIgMjkuODQ5NmwtMjMuNTUyIDExNy43NmEzNy4xMiAzNy4xMiAwIDAgMCAyOS4wODE2IDQzLjY3MzZjMy41ODQgMC42MTQ0IDMuNTg0IDAuNjE0NCA3LjI3MDQgMC43MTY4aDE0MS4xMDcyYzIwLjQ4IDAgMzcuMTItMTYuNjQgMzcuMTItMzcuMTItMC4xMDI0LTMuNjg2NC0wLjEwMjQtMy42ODY0LTAuNzE2OC03LjI3MDRsLTIzLjU1Mi0xMTcuNzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCg0KDQogIDwvZm9udD4NCjwvZGVmcz48L3N2Zz4NCg==#iconfont) format("svg")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-unie604:before{content:"\E6D2"}.icon-xingbienv:before{content:"\E605"}.icon-xingbienan:before{content:"\E606"}.icon-gonghao:before{content:"\E64D"}.echarts{width:600px;height:400px}
-/*# sourceMappingURL=app.90babcb5ec80f62d1df4f3a83e5d4328.css.map */
\ No newline at end of file
diff --git a/server/public/static/css/app.90babcb5ec80f62d1df4f3a83e5d4328.css.map b/server/public/static/css/app.90babcb5ec80f62d1df4f3a83e5d4328.css.map
deleted file mode 100644
index eb976cb..0000000
--- a/server/public/static/css/app.90babcb5ec80f62d1df4f3a83e5d4328.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["app.90babcb5ec80f62d1df4f3a83e5d4328.css"],"names":[],"mappings":"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","file":"app.90babcb5ec80f62d1df4f3a83e5d4328.css","sourcesContent":["\nhtml,body,#app {\r\n  font-family: \"Helvetica Neue\",Helvetica,\"PingFang SC\",\"Hiragino Sans GB\",\"Microsoft YaHei\",\"\\5FAE\\8F6F\\96C5\\9ED1\",Arial,sans-serif;\r\n  height: 100%;\r\n  padding: 0px;\r\n  margin: 0px;\n}\r\n\nspan[data-v-0e1be330] {\r\n  font: 20px Extra large;\n}\n.back[data-v-0e1be330] {\r\n  background: url(/static/img/back.874cfd1.jpg);\r\n  background-size: 100% 100%;\r\n  background-repeat: no-repeat;\r\n  width: 100%;\r\n  height: 100%;\n}\n.card[data-v-0e1be330] {\r\n  position: relative;\r\n  background: url(/static/img/back.9c3fd35.png);\r\n  left: 40%;\r\n  top: 25%;\r\n  width: 20%;\r\n  padding: 30px 40px 20px 40px;\n}\r\n\nheader[data-v-66b543e6] {\n  background-color: #7abbec;\n}\nmain[data-v-66b543e6] {\n  background-color: #fcfdf8;\n  padding: 15px 15px 0 15px;\n  height: calc(100% - 60px - 20px);\n}\nfooter[data-v-66b543e6] {\n  background-color: #fcfdf8;\n}\n\n\n.head[data-v-275cb8e8] {\r\n  width: 40px;\r\n  height: 40px;\r\n  border-radius: 40px;\n}\n.logo[data-v-275cb8e8]{\r\n    width: 200px;\n}\n.el-row[data-v-275cb8e8]{\r\n    margin-top: 10px;\n}\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.foottxt[data-v-c21b5442] {\n  text-align: right;\n  font: 12px Extra Extra Small;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.week-time table[data-v-7a694dae] {\n  height: 400px;\n}\n\n\n.el-pagination[data-v-216599a9] {\n  text-align: center;\n}\n\n\n.el-row[data-v-5b7649e9] {\n  margin-bottom: 20px;\n}\n\n\n.map_device {\n  width: 100%;\n  height: 100%;\n}\n.map_device .anchorBL {\n  display: none;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.el-form-item[data-v-55b0e7f4] {\n  margin-right: 0;\n  margin-bottom: 0;\n  height: 28px;\n}\n.el-tag .el-button[data-v-55b0e7f4] {\n  margin: 0 0 0 5px;\n  padding: 0 5px 0 5px;\n  height: 100%;\n}\n.el-button[data-v-55b0e7f4] {\n  color: cornflowerblue;\n  background-color: #ddd;\n}\n.el-dialog .el-dialog__header[data-v-55b0e7f4] {\n  padding: 5px !important;\n}\n\n\n.el-form-item[data-v-a1b2b80c] {\n  margin: 0;\n}\n\n\n.custom-column[data-v-4b25040c] {\n  padding: 2px 0 !important;\n  color: #aaaaaa;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.allWhitelstTable[data-v-2ec03582] {\n  height: 30px;\n  padding-bottom: 0px;\n  margin-bottom: 10px;\n}\n.el-form-item[data-v-2ec03582] {\n  padding-bottom: 0px;\n  margin-bottom: 5px !important;\n}\n\n\n.el-pagination[data-v-18db5703] {\n  text-align: center;\n}\n\n\n.el-row[data-v-19394728] {\n  margin-bottom: 20px;\n}\n\n\n.el-card[data-v-097e7964] {\n  margin-bottom: 15px;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvideo[data-v-c33d1918] {\n  height: 38px;\n  width: 170px;\n}\n\n\n.el-pagination[data-v-6b046832] {\n  margin-top: 10px;\n  text-align: center;\n}\n\n\n.el-pagination[data-v-2c39f46a] {\n  margin-top: 10px;\n  text-align: center;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.el-form-item[data-v-12198d98] {\n  margin: 0;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.map[data-v-709258f6] {\n  width: 100%;\n  height: 800px;\n}\n\n\n.map_ddensity {\n  width: 100%;\n  height: 100%;\n}\n.map_ddensity .anchorBL {\n  display: none;\n}\n\n\n.el-row[data-v-44a20464] {\n  height: 50%;\n}\n.el-col[data-v-44a20464],\n.el-tabs[data-v-44a20464],\n.el-tab-pane[data-v-44a20464] {\n  height: 100%;\n}\n.el-col[data-v-44a20464] {\n  border-radius: 4px;\n}\n.bg-purple-dark[data-v-44a20464] {\n  background: #99a9bf;\n}\n.bg-purple[data-v-44a20464] {\n  background: #d3dce6;\n}\n.bg-purple-light[data-v-44a20464] {\n  background: #e5e9f2;\n}\n.grid-content[data-v-44a20464] {\n  border-radius: 4px;\n  min-height: 36px;\n}\n.row-bg[data-v-44a20464] {\n  padding: 10px 0;\n  background-color: #f9fafc;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.map_rdensity {\n  width: 100%;\n  height: 100%;\n}\n.map_rdensity .anchorBL {\n  display: none;\n}\n\n\n.map_confirm {\n  width: 100%;\n  height: 100%;\n}\n.map_confirm .el-form-item {\n  margin: 0;\n}\n.map_confirm .el-form-item .el-button {\n  margin-top: 5px;\n  padding: 4px 6px;\n  margin-left: 0;\n}\n.map_confirm .anchorBL {\n  display: none;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.map {\n  width: 100%;\n  height: 100%;\n}\n.anchorBL {\n  display: none;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n@charset \"UTF-8\";.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-pagination--small .arrow.disabled,.el-table .hidden-columns,.el-table td.is-hidden>*,.el-table th.is-hidden>*,.el-table--hidden{visibility:hidden}@font-face{font-family:element-icons;src:url(data:application/font-woff;base64,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) format(\"woff\"),url(/static/fonts/element-icons.6f0a763.ttf) format(\"truetype\");font-weight:400;font-style:normal}[class*=\" el-icon-\"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-info:before{content:\"\\E61A\"}.el-icon-error:before{content:\"\\E62C\"}.el-icon-success:before{content:\"\\E62D\"}.el-icon-warning:before{content:\"\\E62E\"}.el-icon-question:before{content:\"\\E634\"}.el-icon-back:before{content:\"\\E606\"}.el-icon-arrow-left:before{content:\"\\E600\"}.el-icon-arrow-down:before{content:\"\\E603\"}.el-icon-arrow-right:before{content:\"\\E604\"}.el-icon-arrow-up:before{content:\"\\E605\"}.el-icon-caret-left:before{content:\"\\E60A\"}.el-icon-caret-bottom:before{content:\"\\E60B\"}.el-icon-caret-top:before{content:\"\\E60C\"}.el-icon-caret-right:before{content:\"\\E60E\"}.el-icon-d-arrow-left:before{content:\"\\E610\"}.el-icon-d-arrow-right:before{content:\"\\E613\"}.el-icon-minus:before{content:\"\\E621\"}.el-icon-plus:before{content:\"\\E62B\"}.el-icon-remove:before{content:\"\\E635\"}.el-icon-circle-plus:before{content:\"\\E601\"}.el-icon-remove-outline:before{content:\"\\E63C\"}.el-icon-circle-plus-outline:before{content:\"\\E602\"}.el-icon-close:before{content:\"\\E60F\"}.el-icon-check:before{content:\"\\E611\"}.el-icon-circle-close:before{content:\"\\E607\"}.el-icon-circle-check:before{content:\"\\E639\"}.el-icon-circle-close-outline:before{content:\"\\E609\"}.el-icon-circle-check-outline:before{content:\"\\E63E\"}.el-icon-zoom-out:before{content:\"\\E645\"}.el-icon-zoom-in:before{content:\"\\E641\"}.el-icon-d-caret:before{content:\"\\E615\"}.el-icon-sort:before{content:\"\\E640\"}.el-icon-sort-down:before{content:\"\\E630\"}.el-icon-sort-up:before{content:\"\\E631\"}.el-icon-tickets:before{content:\"\\E63F\"}.el-icon-document:before{content:\"\\E614\"}.el-icon-goods:before{content:\"\\E618\"}.el-icon-sold-out:before{content:\"\\E63B\"}.el-icon-news:before{content:\"\\E625\"}.el-icon-message:before{content:\"\\E61B\"}.el-icon-date:before{content:\"\\E608\"}.el-icon-printer:before{content:\"\\E62F\"}.el-icon-time:before{content:\"\\E642\"}.el-icon-bell:before{content:\"\\E622\"}.el-icon-mobile-phone:before{content:\"\\E624\"}.el-icon-service:before{content:\"\\E63A\"}.el-icon-view:before{content:\"\\E643\"}.el-icon-menu:before{content:\"\\E620\"}.el-icon-more:before{content:\"\\E646\"}.el-icon-more-outline:before{content:\"\\E626\"}.el-icon-star-on:before{content:\"\\E637\"}.el-icon-star-off:before{content:\"\\E63D\"}.el-icon-location:before{content:\"\\E61D\"}.el-icon-location-outline:before{content:\"\\E61F\"}.el-icon-phone:before{content:\"\\E627\"}.el-icon-phone-outline:before{content:\"\\E628\"}.el-icon-picture:before{content:\"\\E629\"}.el-icon-picture-outline:before{content:\"\\E62A\"}.el-icon-delete:before{content:\"\\E612\"}.el-icon-search:before{content:\"\\E619\"}.el-icon-edit:before{content:\"\\E61C\"}.el-icon-edit-outline:before{content:\"\\E616\"}.el-icon-rank:before{content:\"\\E632\"}.el-icon-refresh:before{content:\"\\E633\"}.el-icon-share:before{content:\"\\E636\"}.el-icon-setting:before{content:\"\\E638\"}.el-icon-upload:before{content:\"\\E60D\"}.el-icon-upload2:before{content:\"\\E644\"}.el-icon-download:before{content:\"\\E617\"}.el-icon-loading:before{content:\"\\E61E\"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}@keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination::after,.el-pagination::before{display:table;content:\"\"}.el-pagination::after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pager li,.el-pagination__editor{-webkit-box-sizing:border-box;text-align:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409EFF}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:center center no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .more::before,.el-pagination--small li.more::before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409EFF}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409EFF}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409EFF;color:#fff}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-radio,.el-table th{-webkit-user-select:none}.el-date-table,.el-radio,.el-table th{-moz-user-select:none;-ms-user-select:none}.el-pager .more::before{line-height:30px}.el-pager li{padding:0 4px;background:#fff;font-size:13px;min-width:35.5px;height:28px;line-height:28px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-dialog,.el-dialog__footer{-webkit-box-sizing:border-box}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409EFF}.el-pager li.active{color:#409EFF;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;background:#fff;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409EFF}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px}.el-dialog__footer{padding:10px 20px 20px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px}.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{z-index:10;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;background-color:#fff;border:1px solid #e4e7ed;border-radius:4px}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:\"\";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button::before{content:'';position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:rgba(255,255,255,.5)}.el-dropdown .el-dropdown__caret-button:hover::before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing){outline-width:0}.el-dropdown-menu{position:absolute;top:0;left:0;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item--divided:before,.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:'';height:6px;display:block;margin:0 -20px}.el-menu::after,.el-menu::before,.el-radio__inner::after,.el-switch__core:after{content:\"\"}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:solid 1px #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu::after,.el-menu::before{display:table}.el-menu::after{clear:both}.el-menu--horizontal{border-right:none;border-bottom:solid 1px #e6e6e6}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409EFF;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu__title.is-active{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409EFF;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;position:relative;-webkit-box-sizing:border-box;white-space:nowrap;list-style:none}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409EFF}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409EFF}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio{color:#606266;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;outline:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409EFF}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio+.el-radio{margin-left:30px}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner::after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner::after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409EFF;background:#409EFF}.el-radio__input.is-checked .el-radio__inner::after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409EFF}.el-radio__input.is-focus .el-radio__inner{border-color:#409EFF}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio-button__inner,.el-switch__core{-webkit-box-sizing:border-box;vertical-align:middle}.el-radio__inner:hover{border-color:#409EFF}.el-radio__inner::after{width:4px;height:4px;border-radius:100%;background-color:#fff;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in, -webkit-transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative;outline:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409EFF;box-shadow:0 0 2px 2px #409EFF}.el-radio__label{font-size:14px;padding-left:10px}.el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0}.el-radio-button__inner{line-height:1;white-space:nowrap;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409EFF}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409EFF;border-color:#409EFF;-webkit-box-shadow:-1px 0 0 0 #409EFF;box-shadow:-1px 0 0 0 #409EFF}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-popover,.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #409EFF;box-shadow:0 0 2px 2px #409EFF}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409EFF}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus~.el-switch__core{outline:#409EFF solid 1px}.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s}.el-switch__core:after{position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409EFF;background-color:#409EFF}.el-switch.is-checked .el-switch__core::after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409EFF;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{position:absolute;right:20px;font-family:element-icons;content:\"\\E611\";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409EFF;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:'';position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409EFF}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotateZ(0);transform:rotateZ(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#409EFF}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-tag__close.el-icon-close::before{display:block;-webkit-transform:translate(0,.5px);transform:translate(0,.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out, -webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative}.el-table th div,.el-table th>.cell{-webkit-box-sizing:border-box;display:inline-block}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-left,.el-table th.is-left{text-align:left}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table .cell,.el-table th div{padding-right:10px;overflow:hidden;text-overflow:ellipsis}.el-table .cell,.el-table th div,.el-table--border td:first-child .cell,.el-table--border th:first-child .cell{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{white-space:nowrap;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:left}.el-table th div{line-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-table th>.cell{position:relative;word-wrap:normal;text-overflow:ellipsis;vertical-align:middle;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-table th>.cell.highlight{color:#409EFF}.el-table th.required>div::before{display:inline-block;content:\"\";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;white-space:normal;word-break:break-all;line-height:23px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border::after,.el-table--group::after,.el-table::before{content:'';position:absolute;background-color:#ebeef5;z-index:1}.el-table--border::after,.el-table--group::after{top:0;right:0;width:1px;height:100%}.el-table::before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right::before,.el-table__fixed::before{content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-picker-panel,.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409EFF}.el-table .descending .sort-caret.descending{border-top-color:#409EFF}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#FAFAFA}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td,.el-table__body tr.current-row>td,.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409EFF;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table td.in-range div,.el-date-table td.in-range div:hover,.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409EFF}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button-wrapper,.el-time-panel{-moz-user-select:none;-ms-user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;height:30px;padding:4px 0;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td div{height:30px;padding:3px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-month-table td .cell,.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409EFF;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409EFF}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409EFF}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409EFF}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409EFF;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:solid 1px #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{color:#606266;margin:0 auto}.el-month-table td .cell:hover,.el-month-table td.current:not(.disabled) .cell{color:#409EFF}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409EFF}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content.is-right .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409EFF}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409EFF;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input,.el-date-editor .el-range-separator{height:100%;margin:0;text-align:center;display:inline-block;font-size:14px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;padding:0;width:39%;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{padding:0 5px;line-height:32px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#409EFF}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #e4e7ed;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-popover,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper::after,.el-picker-panel__body::after{content:\"\";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409EFF}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409EFF}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409EFF}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409EFF}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list::after,.el-time-spinner__list::before{content:'';display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content::after,.el-time-panel__content::before{content:\"\";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds::after{left:calc(100% / 3 * 2)}.el-time-panel__content.has-seconds::before{padding-left:calc(100% / 3)}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409EFF}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper::after{content:\"\";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409EFF}.el-message-box__content{position:relative;padding:10px 15px;color:#606266;font-size:14px}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}100%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:\"\"}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#409EFF;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form-item__content .el-input-group,.el-form-item__label,.el-tag .el-icon-close{vertical-align:middle}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item::after,.el-form-item::before{display:table;content:\"\"}.el-form-item::after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label{text-align:right;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content::after,.el-form-item__content::before{display:table;content:\"\"}.el-form-item__content::after{clear:both}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required .el-form-item__label:before{content:'*';color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item.is-success .el-input__inner,.el-form-item.is-success .el-input__inner:focus,.el-form-item.is-success .el-textarea__inner,.el-form-item.is-success .el-textarea__inner:focus{border-color:#67c23a}.el-form-item.is-success .el-input-group__append .el-input__inner,.el-form-item.is-success .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-success .el-input__validateIcon{color:#67c23a}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409EFF;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1), -webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8,.8);transform:scale(.8,.8)}.el-tabs__new-tab:hover{color:#409EFF}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:\"\";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap::after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap::after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #409eff inset;box-shadow:0 0 2px 2px #409eff inset;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409EFF}.el-tabs__item:hover{color:#409EFF;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-alert,.el-tag{-webkit-box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin:-1px -1px 0;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409EFF;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409EFF}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom .el-tabs--left .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card .el-tabs__item:last-child,.el-tabs--top .el-tabs--left .el-tabs__item:last-child,.el-tabs--top .el-tabs--right .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card .el-tabs__item:last-child,.el-tabs--top.el-tabs--card .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotateZ(90deg);transform:rotateZ(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left::after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left::after,.el-tabs--left .el-tabs__nav-wrap.is-right::after,.el-tabs--right .el-tabs__nav-wrap.is-left::after,.el-tabs--right .el-tabs__nav-wrap.is-right::after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right::after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tag,.slideInLeft-transition,.slideInRight-transition{display:inline-block}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}100%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tag{background-color:rgba(64,158,255,.1);padding:0 10px;height:32px;line-height:30px;font-size:12px;color:#409EFF;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid rgba(64,158,255,.2);white-space:nowrap}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;top:-1px;right:-5px;color:#409EFF}.el-tag .el-icon-close::before{display:block}.el-tag .el-icon-close:hover{background-color:#409EFF;color:#fff}.el-tag--info,.el-tag--info .el-tag__close{color:#909399}.el-tag--info{background-color:rgba(144,147,153,.1);border-color:rgba(144,147,153,.2)}.el-tag--info.is-hit{border-color:#909399}.el-tag--info .el-tag__close:hover{background-color:#909399;color:#fff}.el-tag--success{background-color:rgba(103,194,58,.1);border-color:rgba(103,194,58,.2);color:#67c23a}.el-tag--success.is-hit{border-color:#67c23a}.el-tag--success .el-tag__close{color:#67c23a}.el-tag--success .el-tag__close:hover{background-color:#67c23a;color:#fff}.el-tag--warning{background-color:rgba(230,162,60,.1);border-color:rgba(230,162,60,.2);color:#e6a23c}.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--warning .el-tag__close:hover{background-color:#e6a23c;color:#fff}.el-tag--danger{background-color:rgba(245,108,108,.1);border-color:rgba(245,108,108,.2);color:#f56c6c}.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--danger .el-tag__close:hover{background-color:#f56c6c;color:#fff}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#6f7180}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409EFF}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409EFF;color:#fff}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out, -webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success{background-color:#f0f9eb;color:#67c23a}.el-alert--success .el-alert__description{color:#67c23a}.el-alert--info{background-color:#f4f4f5;color:#909399}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning .el-alert__description{color:#e6a23c}.el-alert--error{background-color:#fef0f0;color:#f56c6c}.el-alert--error .el-alert__description{color:#f56c6c}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;color:#c0c4cc;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409EFF}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409EFF}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow::after{content:\" \";border-width:5px}.el-progress-bar__inner::after,.el-row::after,.el-row::before,.el-slider::after,.el-slider::before,.el-slider__button-wrapper::after,.el-upload-cover::after{content:\"\"}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow::after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after{border-right-color:#fff}.el-slider::after,.el-slider::before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper::after{vertical-align:middle;display:inline-block}.el-slider::after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1);cursor:not-allowed}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409EFF;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;position:absolute;z-index:1001;top:-15px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button,.el-step__icon-inner{-moz-user-select:none;-ms-user-select:none}.el-slider__button-wrapper::after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409EFF;background-color:#fff;border-radius:50%;-webkit-transition:.2s;transition:.2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-button,.el-checkbox,.el-step__icon-inner{-webkit-user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;height:6px;width:6px;border-radius:100%;background-color:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409EFF}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-2,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-push-0,.el-col-push-1,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-2,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#409EFF;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409EFF;stroke-linecap:round}.el-loading-spinner i{color:#409EFF}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{-webkit-box-sizing:border-box;box-sizing:border-box}.el-row::after,.el-row::before{display:table}.el-row::after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-upload--picture-card,.el-upload-dragger{-webkit-box-sizing:border-box;cursor:pointer}.el-col-0{width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:768px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409EFF;color:#409EFF}.el-upload:focus .el-upload-dragger{border-color:#409EFF}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409EFF;font-style:normal}.el-upload-dragger:hover{border-color:#409EFF}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409EFF}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409EFF}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409EFF;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409EFF}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions::after{display:inline-block;content:\"\";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover::after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle{display:inline-block}.el-progress--circle .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.el-progress--circle .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner::after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409EFF;text-align:right;border-radius:100px;line-height:1;white-space:nowrap}.el-card,.el-message{border-radius:4px;overflow:hidden}.el-progress-bar__inner::after{height:100%}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,-webkit-transform .4s;transition:opacity .3s,transform .4s;transition:opacity .3s,transform .4s,-webkit-transform .4s;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-card{border:1px solid #ebeef5;background-color:#fff;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-webkit-box;display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409EFF;border-color:#409EFF}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-button,.el-checkbox{-moz-user-select:none;-ms-user-select:none}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409EFF}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409EFF}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-webkit-box;display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before{content:'';display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow::before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow::after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{overflow-x:hidden;position:relative}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);margin:0;padding:0;z-index:2}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{display:inline-block;background-color:transparent;padding:12px 4px;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-carousel__mask,.el-cascader-menu,.el-cascader-menu__item.is-disabled:hover,.el-collapse-item__header,.el-collapse-item__wrap{background-color:#fff}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-carousel__item,.el-carousel__mask{height:100%;top:0;left:0;position:absolute}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out, -webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out, -webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;opacity:.24;-webkit-transition:.2s;transition:.2s}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item__header{height:48px;line-height:48px;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin-right:8px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s;transition:transform .3s,-webkit-transform .3s;float:right;line-height:48px;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409EFF}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow::after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03));filter:drop-shadow(0 2px 12px rgba(0, 0, 0, .03))}.el-popper .popper__arrow::after{content:\" \";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow::after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow::after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow::after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow::after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader .el-input,.el-cascader .el-input__inner{cursor:pointer}.el-cascader .el-input__icon{-webkit-transition:none;transition:none}.el-cascader .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s, -webkit-transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-icon-arrow-down.is-reverse{-webkit-transform:rotateZ(180deg);transform:rotateZ(180deg)}.el-cascader .el-icon-circle-close{z-index:2;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-cascader .el-icon-circle-close:hover{color:#909399}.el-cascader__clearIcon{z-index:2;position:relative}.el-cascader__label{position:absolute;left:0;top:0;height:100%;padding:0 25px 0 15px;color:#606266;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;text-align:left;font-size:inherit}.el-cascader__label span{color:#000}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader-menus{white-space:nowrap;background:#fff;position:absolute;margin:5px 0;z-index:2;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader-menu{display:inline-block;vertical-align:top;height:204px;overflow:auto;border-right:solid 1px #e4e7ed;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:6px 0;min-width:160px}.el-cascader-menu:last-child{border-right:0}.el-cascader-menu__item{font-size:14px;padding:8px 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;outline:0}.el-cascader-menu__item--extensible:after{font-family:element-icons;content:\"\\E604\";font-size:14px;color:#bfcbd9;position:absolute;right:15px}.el-cascader-menu__item.is-disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-cascader-menu__item.is-active{color:#409EFF}.el-cascader-menu__item:focus:not(:active),.el-cascader-menu__item:hover{background-color:#f5f7fa}.el-cascader-menu__item.selected{color:#fff;background-color:#f5f7fa}.el-cascader-menu__item__keyword{font-weight:700}.el-cascader-menu--flexible{height:auto;max-height:180px;overflow:auto}.el-cascader-menu--flexible .el-cascader-menu__item{overflow:visible}.el-color-predefine{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #409EFF;box-shadow:0 0 3px 2px #409EFF}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top, right top,color-stop(0, red),color-stop(17%, #ff0),color-stop(33%, #0f0),color-stop(50%, #0ff),color-stop(67%, #00f),color-stop(83%, #f0f),to(red));background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top, left bottom,color-stop(0, red),color-stop(17%, #ff0),color-stop(33%, #0f0),color-stop(50%, #0ff),color-stop(67%, #00f),color-stop(83%, #f0f),to(red));background:linear-gradient(to bottom,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top, right top,from(#fff),to(rgba(255,255,255,0)));background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom, left top,from(#000),to(transparent));background:linear-gradient(to top,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top, right top,color-stop(0, rgba(255,255,255,0)),to(#fff));background:linear-gradient(to right,rgba(255,255,255,0) 0,#fff 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top, left bottom,color-stop(0, rgba(255,255,255,0)),to(#fff));background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{content:\"\";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409EFF;border-color:#409EFF}.el-color-dropdown__link-btn{cursor:pointer;color:#409EFF;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409EFF,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.el-color-picker__trigger{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty,.el-color-picker__icon{top:50%;left:50%;font-size:12px;position:absolute}.el-color-picker__empty{color:#999;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409EFF}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner{background:#fff}.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;line-height:16px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#c0c4cc;text-align:center}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409EFF;outline:0}.el-input__suffix{right:5px;-webkit-transition:all .3s;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px;-webkit-transition:all .3s;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;-webkit-transition:all .3s;transition:all .3s;line-height:40px}.el-input__icon:after{content:'';height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409EFF;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409EFF;color:#409EFF}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:rgba(255,255,255,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409EFF;border-color:#409EFF}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409EFF;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409EFF;border-color:#409EFF;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409EFF;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table;content:\"\"}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-button-group::after{clear:both}.el-button-group .el-button{float:left;position:relative}.el-button-group .el-button+.el-button{margin-left:0}.el-button-group .el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group .el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group .el-button:first-child:last-child{border-radius:4px}.el-button-group .el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group .el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group .el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group .el-button:not(:last-child){margin-right:-1px}.el-button-group .el-button.is-active,.el-button-group .el-button:active,.el-button-group .el-button:focus,.el-button-group .el-button:hover{z-index:1}.el-button-group .el-button--primary:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:first-child{border-right-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:last-child{border-left-color:rgba(255,255,255,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:rgba(255,255,255,.5);border-right-color:rgba(255,255,255,.5)}.el-checkbox{color:#606266;font-weight:500;font-size:14px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409EFF}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner::after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409EFF;border-color:#409EFF}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner::after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409EFF}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409EFF}.el-checkbox__input.is-indeterminate .el-checkbox__inner::before{content:'';position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409EFF}.el-checkbox__inner::after{-webkit-box-sizing:content-box;box-sizing:content-box;content:\"\";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s, -webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{position:relative;display:inline-block}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox+.el-checkbox{margin-left:30px}.el-checkbox-button__inner{line-height:1;font-weight:500;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409EFF}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409EFF;border-color:#409EFF;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409EFF}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409EFF}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#409EFF;font-size:0}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409EFF}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-container,.el-header{-webkit-box-sizing:border-box}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;content:\"\";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.el-header{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside,.el-main{overflow:auto;-webkit-box-sizing:border-box}.el-aside{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px}.el-footer{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}\r\n@font-face {font-family: \"iconfont\";\r\n  src: url(data:application/vnd.ms-fontobject;base64,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); /* IE9*/\r\n  src: url(data:application/vnd.ms-fontobject;base64,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#iefix) format('embedded-opentype'), \r\n  url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'),\r\n  url(data:application/x-font-ttf;base64,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) format('truetype'), \r\n  url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiA+DQo8IS0tDQoyMDEzLTktMzA6IENyZWF0ZWQuDQotLT4NCjxzdmc+DQo8bWV0YWRhdGE+DQpDcmVhdGVkIGJ5IGljb25mb250DQo8L21ldGFkYXRhPg0KPGRlZnM+DQoNCjxmb250IGlkPSJpY29uZm9udCIgaG9yaXotYWR2LXg9IjEwMjQiID4NCiAgPGZvbnQtZmFjZQ0KICAgIGZvbnQtZmFtaWx5PSJpY29uZm9udCINCiAgICBmb250LXdlaWdodD0iNTAwIg0KICAgIGZvbnQtc3RyZXRjaD0ibm9ybWFsIg0KICAgIHVuaXRzLXBlci1lbT0iMTAyNCINCiAgICBhc2NlbnQ9Ijg5NiINCiAgICBkZXNjZW50PSItMTI4Ig0KICAvPg0KICAgIDxtaXNzaW5nLWdseXBoIC8+DQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IngiIHVuaWNvZGU9IngiIGhvcml6LWFkdi14PSIxMDAxIg0KZD0iTTI4MSA1NDNxLTI3IC0xIC01MyAtMWgtODNxLTE4IDAgLTM2LjUgLTZ0LTMyLjUgLTE4LjV0LTIzIC0zMnQtOSAtNDUuNXYtNzZoOTEydjQxcTAgMTYgLTAuNSAzMHQtMC41IDE4cTAgMTMgLTUgMjl0LTE3IDI5LjV0LTMxLjUgMjIuNXQtNDkuNSA5aC0xMzN2LTk3aC00Mzh2OTd6TTk1NSAzMTB2LTUycTAgLTIzIDAuNSAtNTJ0MC41IC01OHQtMTAuNSAtNDcuNXQtMjYgLTMwdC0zMyAtMTZ0LTMxLjUgLTQuNXEtMTQgLTEgLTI5LjUgLTAuNQ0KdC0yOS41IDAuNWgtMzJsLTQ1IDEyOGgtNDM5bC00NCAtMTI4aC0yOWgtMzRxLTIwIDAgLTQ1IDFxLTI1IDAgLTQxIDkuNXQtMjUuNSAyM3QtMTMuNSAyOS41dC00IDMwdjE2N2g5MTF6TTE2MyAyNDdxLTEyIDAgLTIxIC04LjV0LTkgLTIxLjV0OSAtMjEuNXQyMSAtOC41cTEzIDAgMjIgOC41dDkgMjEuNXQtOSAyMS41dC0yMiA4LjV6TTMxNiAxMjNxLTggLTI2IC0xNCAtNDhxLTUgLTE5IC0xMC41IC0zN3QtNy41IC0yNXQtMyAtMTV0MSAtMTQuNQ0KdDkuNSAtMTAuNXQyMS41IC00aDM3aDY3aDgxaDgwaDY0aDM2cTIzIDAgMzQgMTJ0MiAzOHEtNSAxMyAtOS41IDMwLjV0LTkuNSAzNC41cS01IDE5IC0xMSAzOWgtMzY4ek0zMzYgNDk4djIyOHEwIDExIDIuNSAyM3QxMCAyMS41dDIwLjUgMTUuNXQzNCA2aDE4OHEzMSAwIDUxLjUgLTE0LjV0MjAuNSAtNTIuNXYtMjI3aC0zMjd6IiAvPg0KICAgIA0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InhpbmdiaWVudiIgdW5pY29kZT0iJiM1ODg4NTsiIGQ9Ik01MTAuODg3NjY2IDM4NG0tNDQ2LjcwODk3MSAwYTQ0Ni43MDg5NzEgNDQ2LjcwODk3MSAwIDEgMSA4OTMuNDE3OTQyIDAgNDQ2LjcwODk3MSA0NDYuNzA4OTcxIDAgMSAxLTg5My40MTc5NDIgMFpNNTEwLjg3OTQ4IDMxNy4wOTcyNjRjLTEyMy42NzM3MTcgMC0yMjQuMjgyMTEzIDEwMC42MDczNzItMjI0LjI4MjExMyAyMjQuMjgyMTEzczEwMC42MDczNzIgMjI0LjI4MjExMyAyMjQuMjgyMTEzIDIyNC4yODIxMTMgMjI0LjI4MjExMy0xMDAuNjA3MzcyIDIyNC4yODIxMTItMjI0LjI4MjExMy0xMDAuNjA4Mzk2LTIyNC4yODIxMTMtMjI0LjI4MjExMi0yMjQuMjgyMTEzeiBtMCAzNjQuODA1NTljLTc3LjQ4Njc5MiAwLTE0MC41MjM0NzctNjMuMDM2Njg1LTE0MC41MjM0NzctMTQwLjUyMzQ3N3M2My4wMzY2ODUtMTQwLjUyMzQ3NyAxNDAuNTIzNDc3LTE0MC41MjM0NzcgMTQwLjUyMzQ3NyA2My4wMzY2ODUgMTQwLjUyMzQ3NyAxNDAuNTIzNDc3LTYzLjAzNjY4NSAxNDAuNTIzNDc3LTE0MC41MjM0NzcgMTQwLjUyMzQ3N3pNNTEwLjg3OTQ4LTAuNjM1MjE3Yy0yMy4xMjA1OCAwLTQxLjg3ODgwNiAxOC43NDQ5MjMtNDEuODc4ODA2IDQxLjg3ODgwNlYzNTguOTc2MDdjMCAyMy4xMzM4ODMgMTguNzU4MjI2IDQxLjg3ODgwNiA0MS44Nzg4MDYgNDEuODc4ODA2czQxLjg3ODgwNi0xOC43NDQ5MjMgNDEuODc4ODA2LTQxLjg3ODgwNnYtMzE3LjczMjQ4MWMwLTIzLjEzMzg4My0xOC43NTgyMjYtNDEuODc4ODA2LTQxLjg3ODgwNi00MS44Nzg4MDZ6TTY2OS43NTI4ODQgMTU4LjIzNzE2M0gzNTIuMDMzNzA1Yy0yMy4xMjA1OCAwLTQxLjg3ODgwNiAxOC43NDQ5MjMtNDEuODc4ODA2IDQxLjg3ODgwNnMxOC43NTgyMjYgNDEuODc4ODA2IDQxLjg3ODgwNiA0MS44Nzg4MDdoMzE3LjcxOTE3OWMyMy4xMjA1OCAwIDQxLjg3ODgwNi0xOC43NDQ5MjMgNDEuODc4ODA2LTQxLjg3ODgwN3MtMTguNzU4MjI2LTQxLjg3ODgwNi00MS44Nzg4MDYtNDEuODc4ODA2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InhpbmdiaWVuYW4iIHVuaWNvZGU9IiYjNTg4ODY7IiBkPSJNNTExLjg0MzQzNCAzODRtLTQ0Ni43MDg5NzEgMGE0NDYuNzA4OTcxIDQ0Ni43MDg5NzEgMCAxIDEgODkzLjQxNzk0MiAwIDQ0Ni43MDg5NzEgNDQ2LjcwODk3MSAwIDEgMS04OTMuNDE3OTQyIDBaTTQyNC4xMTEzMDEgNzcuMTc0OTM5Yy01OS4zMjgyMjMgMC0xMTUuMTQwMzY3IDIzLjEwNzI3Ny0xNTcuMTAxMDM4IDY1LjA4MTI1MS04Ni42MjA4MjMgODYuNjIwODIzLTg2LjYyMDgyMyAyMjcuNTgxMjUyIDAgMzE0LjIxNTM3OCA0MS45NjA2NzEgNDEuOTczOTc0IDk3Ljc3MTc5MSA2NS4wODEyNTEgMTU3LjEwMTAzOCA2NS4wODEyNTEgNTkuMzU1ODUzIDAgMTE1LjE0MDM2Ny0yMy4xMjA1OCAxNTcuMTAxMDM3LTY1LjA4MTI1MSA0MS45NjA2NzEtNDEuOTczOTc0IDY1LjA4MTI1MS05Ny43NzE3OTEgNjUuMDgxMjUxLTE1Ny4xMTQzNHMtMjMuMTIwNTgtMTE1LjE0MDM2Ny02NS4wODEyNTEtMTU3LjEwMTAzOC05Ny43NDUxODUtNjUuMDgxMjUxLTE1Ny4xMDEwMzctNjUuMDgxMjUxeiBtMCAzNjAuNjIwMjY4Yy0zNi45NzEwMyAwLTcxLjczMzc2NS0xNC40MDkxNzUtOTcuODgxMjg1LTQwLjU0MzM5Mi01My45NTc5MTMtNTMuOTg0NTE4LTUzLjk1NzkxMy0xNDEuODA0NjU2IDAtMTk1Ljc3NTg3MiAyNi4xNDc1Mi0yNi4xNDc1MiA2MC45MTAyNTUtNDAuNTQzMzkyIDk3Ljg4MTI4NS00MC41NDMzOTFzNzEuNzMzNzY1IDE0LjM5NTg3MiA5Ny44ODEyODQgNDAuNTQzMzkxYzI2LjE0NzUyIDI2LjE0NzUyIDQwLjU0MzM5MiA2MC45MTAyNTUgNDAuNTQzMzkyIDk3Ljg4MTI4NXMtMTQuMzk1ODcyIDcxLjczMzc2NS00MC41NDMzOTIgOTcuODk0NTg3Yy0yNi4xNDY0OTcgMjYuMTQ3NTItNjAuOTA5MjMyIDQwLjU0MzM5Mi05Ny44ODEyODQgNDAuNTQzMzkyek01NTEuNjAyOTczIDM4NC45ODMzOTdjLTEwLjcxNTAzOSAwLTIxLjQzMDA3OCA0LjA5MDE1NS0yOS42MDkzNjUgMTIuMjY5NDQyLTE2LjM1ODU3MyAxNi4zNTg1NzMtMTYuMzU4NTczIDQyLjg3NDQ4MyAwIDU5LjIxOTc1M0w2NzIuNTc3MjA5IDYwNy4wNTYxOTJoLTQyLjgzMzU1MWMtMjMuMTIwNTggMC00MS44Nzg4MDYgMTguNzQ0OTIzLTQxLjg3ODgwNiA0MS44Nzg4MDZzMTguNzU4MjI2IDQxLjg3ODgwNiA0MS44Nzg4MDYgNDEuODc4ODA2aDE0My45NTg3MTZjMTYuOTMxNjI0IDAgMzIuMjAwMzc2LTEwLjIxMDU0OSAzOC42ODkxNjEtMjUuODQ3NjkxIDYuNDg4Nzg1LTE1LjY1MDQ0NSAyLjg4OTgxNy0zMy42NzE4OS05LjA3ODc3My00NS42NDE1MDNMNTgxLjIxMjMzOCAzOTcuMjUyODM5Yy04LjE3OTI4Ni04LjE3OTI4Ni0xOC44OTQzMjYtMTIuMjY5NDQxLTI5LjYwOTM2NS0xMi4yNjk0NDJ6TTc3My43MDMzOTcgNjA3LjA1NjE5MmgtMTQzLjk1ODcxNmMtMjMuMTIwNTggMC00MS44Nzg4MDYgMTguNzQ0OTIzLTQxLjg3ODgwNiA0MS44Nzg4MDZzMTguNzU4MjI2IDQxLjg3ODgwNiA0MS44Nzg4MDYgNDEuODc4ODA2aDE0My45NTg3MTZjMjMuMTIwNTggMCA0MS44Nzg4MDYtMTguNzQ0OTIzIDQxLjg3ODgwNi00MS44Nzg4MDZzLTE4Ljc1ODIyNi00MS44Nzg4MDYtNDEuODc4ODA2LTQxLjg3ODgwNnpNNzc5Ljg2NDcyNCA0NTYuOTQ5NDUyYy0yMy4xMjA1OCAwLTQxLjg3ODgwNiAxOC43NDQ5MjMtNDEuODc4ODA2IDQxLjg3ODgwNlY2NDIuNzczNjcxYzAgMjMuMTMzODgzIDE4Ljc1ODIyNiA0MS44Nzg4MDYgNDEuODc4ODA2IDQxLjg3ODgwN3M0MS44Nzg4MDYtMTguNzQ0OTIzIDQxLjg3ODgwNi00MS44Nzg4MDd2LTE0My45NDU0MTNjMC0yMy4xMzM4ODMtMTguNzU4MjI2LTQxLjg3ODgwNi00MS44Nzg4MDYtNDEuODc4ODA2ek03NzkuODY0NzI0IDQ1Ni45NDk0NTJjLTIzLjEyMDU4IDAtNDEuODc4ODA2IDE4Ljc0NDkyMy00MS44Nzg4MDYgNDEuODc4ODA2VjY0Mi43NzM2NzFjMCAyMy4xMzM4ODMgMTguNzU4MjI2IDQxLjg3ODgwNiA0MS44Nzg4MDYgNDEuODc4ODA3czQxLjg3ODgwNi0xOC43NDQ5MjMgNDEuODc4ODA2LTQxLjg3ODgwN3YtMTQzLjk0NTQxM2MwLTIzLjEzMzg4My0xOC43NTgyMjYtNDEuODc4ODA2LTQxLjg3ODgwNi00MS44Nzg4MDZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZ29uZ2hhbyIgdW5pY29kZT0iJiM1ODk1NzsiIGQ9Ik0xNTMuNiA1NTYuOEExOS4yIDE5LjIgMCAwIDEgMTM0LjQgNTM3LjZ2LTQ2MC44YzAtMTAuNTk4NCA4LjYwMTYtMTkuMiAxOS4yLTE5LjJoNzE2LjhhMTkuMiAxOS4yIDAgMCAxIDE5LjIgMTkuMlY1MzcuNkExOS4yIDE5LjIgMCAwIDEgODcwLjQgNTU2LjhIMTUzLjZ6IG0wIDY0aDcxNi44YzQ1LjkyNjQgMCA4My4yLTM3LjI3MzYgODMuMi04My4ydi00NjAuOGMwLTQ1LjkyNjQtMzcuMjczNi04My4yLTgzLjItODMuMkgxNTMuNkE4My4yIDgzLjIgMCAwIDAgNzAuNCA3Ni44VjUzNy42YzAgNDUuOTI2NCAzNy4yNzM2IDgzLjIgODMuMiA4My4yek0zMDIuNzk2OCA0MTkuMTIzMmgzMy43OTJsMTEyLjEyOC0xNjMuMTIzMmgxLjIyODhWNDE5LjEyMzJoMzMuNDg0OHYtMjE5LjM0MDhoLTMyLjU2MzJsLTExMy4zNTY4IDE2NC45NjY0aC0xLjIyODh2LTE2NC45NjY0aC0zMy40ODQ4VjQxOS4xMjMyeiBtMzIxLjAyNCA0LjMwMDhjMzMuMTc3NiAwIDU5LjU5NjgtMTAuNzUyIDc4Ljk1MDQtMzIuNTYzMiAxOC40MzItMjAuNTgyNCAyNy42NDgtNDcuOTIzMiAyNy42NDgtODEuNzE1MiAwLTMzLjQ4NDgtOS4yMTYtNjAuNTE4NC0yNy42NDgtODEuNDA4LTE5LjM1MzYtMjEuNTA0LTQ1Ljc3MjgtMzIuMjU2LTc4Ljk1MDQtMzIuMjU2LTMzLjQ4NDggMC01OS45MDQgMTEuMDU5Mi03OC45NTA0IDMyLjU2MzItMTguNDMyIDIwLjg4OTYtMjcuMzQwOCA0Ny45MjMyLTI3LjM0MDggODEuMTAwOCAwIDMzLjQ4NDggOC45MDg4IDYwLjUxODQgMjcuMzQwOCA4MS40MDggMTkuMDQ2NCAyMi4xMTg0IDQ1LjQ2NTYgMzIuODcwNCA3OC45NTA0IDMyLjg3MDR6IG0wLTI5LjQ5MTJjLTIzLjM0NzIgMC00MS40NzItNy42OC01NC4zNzQ0LTIzLjY1NDQtMTIuMjg4LTE1LjA1MjgtMTguNDMyLTM1LjMyOC0xOC40MzItNjEuMTMyOCAwLTI1LjQ5NzYgNi4xNDQtNDUuNzcyOCAxOC40MzItNjAuODI1NiAxMi45MDI0LTE1LjM2IDMxLjAyNzItMjMuMzQ3MiA1NC4zNzQ0LTIzLjM0NzIgMjMuMzQ3MiAwIDQxLjQ3MiA3LjY4IDU0LjA2NzIgMjIuNzMyOCAxMi4yODggMTQuNzQ1NiAxOC43MzkyIDM1LjMyOCAxOC43MzkyIDYxLjQ0IDAgMjYuNDE5Mi02LjQ1MTIgNDcuMDAxNi0xOC43MzkyIDYyLjA1NDQtMTIuNTk1MiAxNS4zNi0zMC43MiAyMi43MzI4LTU0LjA2NzIgMjIuNzMyOHpNNDc0LjIxNDQgNjg0LjhsMTIuOC02NGg0OS45NzEybDEyLjggNjRINDc0LjIxNDR6IG0xMjEuMTkwNC05OC4xNTA0YTM3LjEyIDM3LjEyIDAgMCAwLTM2LjQwMzItMjkuODQ5Nkg0NjQuOTk4NGEzNy4xMiAzNy4xMiAwIDAgMC0zNi4zNTIgMjkuODQ5NmwtMjMuNTUyIDExNy43NmEzNy4xMiAzNy4xMiAwIDAgMCAyOS4wODE2IDQzLjY3MzZjMy41ODQgMC42MTQ0IDMuNTg0IDAuNjE0NCA3LjI3MDQgMC43MTY4aDE0MS4xMDcyYzIwLjQ4IDAgMzcuMTItMTYuNjQgMzcuMTItMzcuMTItMC4xMDI0LTMuNjg2NC0wLjEwMjQtMy42ODY0LTAuNzE2OC03LjI3MDRsLTIzLjU1Mi0xMTcuNzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCg0KDQogIDwvZm9udD4NCjwvZGVmcz48L3N2Zz4NCg==#iconfont) format('svg'); /* iOS 4.1- */\r\n}\r\n\r\n.iconfont {\r\n  font-family:\"iconfont\" !important;\r\n  font-size:16px;\r\n  font-style:normal;\r\n  -webkit-font-smoothing: antialiased;\r\n  -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\n.icon-unie604:before { content: \"\\E6D2\"; }\r\n\r\n.icon-xingbienv:before { content: \"\\E605\"; }\r\n\r\n.icon-xingbienan:before { content: \"\\E606\"; }\r\n\r\n.icon-gonghao:before { content: \"\\E64D\"; }\r\n\n.echarts {\n  width: 600px;\n  height: 400px;\n}\n"]}
\ No newline at end of file
diff --git a/server/public/static/fonts/element-icons.6f0a763.ttf b/server/public/static/fonts/element-icons.6f0a763.ttf
deleted file mode 100644
index 73bc90f..0000000
--- a/server/public/static/fonts/element-icons.6f0a763.ttf
+++ /dev/null
Binary files differ
diff --git a/server/public/static/img/back.874cfd1.jpg b/server/public/static/img/back.874cfd1.jpg
deleted file mode 100644
index 19d56e0..0000000
--- a/server/public/static/img/back.874cfd1.jpg
+++ /dev/null
Binary files differ
diff --git a/server/public/static/img/back.9c3fd35.png b/server/public/static/img/back.9c3fd35.png
deleted file mode 100644
index 0a387fa..0000000
--- a/server/public/static/img/back.9c3fd35.png
+++ /dev/null
Binary files differ
diff --git a/server/public/static/img/logo.5d3c3c7.png b/server/public/static/img/logo.5d3c3c7.png
deleted file mode 100644
index f56fec8..0000000
--- a/server/public/static/img/logo.5d3c3c7.png
+++ /dev/null
Binary files differ
diff --git a/server/public/static/js/app.97d0c0aef1626f1cac3b.js b/server/public/static/js/app.97d0c0aef1626f1cac3b.js
deleted file mode 100644
index a655ae7..0000000
--- a/server/public/static/js/app.97d0c0aef1626f1cac3b.js
+++ /dev/null
@@ -1,2 +0,0 @@
-webpackJsonp([1],{"+cB3":function(t,e){},"/9h5":function(t,e){},"/Ct8":function(t,e){},"/HI8":function(t,e){},"/Hv2":function(t,e){},"/pEO":function(t,e){},"2YTL":function(t,e){},"2sgy":function(t,e){},"5v20":function(t,e){},"7Otq":function(t,e,a){t.exports=a.p+"static/img/logo.5d3c3c7.png"},"9qgR":function(t,e){},Be1S:function(t,e){},FsCN:function(t,e){},GtI9:function(t,e){},HRBR:function(t,e){},JvBR:function(t,e){},M2gc:function(t,e){},MOnc:function(t,e){},NHnr:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a("rVsN"),n=a.n(i),r=a("3cXf"),s=a.n(r),o=a("hRKE"),l=a.n(o),c=a("IvJb"),d={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[e("router-view")],1)},staticRenderFns:[]};var h=a("C7Lr")({name:"App"},d,!1,function(t){a("XTFl")},null,null).exports,u=a("zO6J"),p={name:"Login",data:function(){return{form:{username:"",password:""}}},methods:{onSubmit:function(){var t=this,e=this.$loading({background:"rgba(0, 0, 0, 0.8)",spinner:"el-icon-loading"});this.$ajax.get("/admin/login",{params:{name:this.form.username,password:this.form.password}}).then(function(a){e.close(),a.data.success?(localStorage.setItem("userInfo",s()(a.data.userInfo)),t.$router.push({name:"Main"})):t.$message.error(a.data.msg)}).catch(function(t){console.log(t)})}}},f={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"back"},[a("el-card",{staticClass:"card"},[a("div",{staticStyle:{"text-align":"center"},attrs:{slot:"header"},slot:"header"},[a("span",{staticStyle:{color:"#ffffff"}},[t._v("闈炴硶璋冮鐩戞祴绯荤粺")])]),t._v(" "),a("el-form",{ref:"form",attrs:{model:t.form}},[a("el-form-item",[a("el-input",{attrs:{placeholder:"鐢ㄦ埛鍚�"},model:{value:t.form.username,callback:function(e){t.$set(t.form,"username",e)},expression:"form.username"}},[a("i",{staticClass:"el-input__icon iconfont icon-gonghao",attrs:{slot:"prefix"},slot:"prefix"})])],1),t._v(" "),a("el-form-item",[a("el-input",{attrs:{type:"password",placeholder:"瀵嗙爜"},model:{value:t.form.password,callback:function(e){t.$set(t.form,"password",e)},expression:"form.password"}},[a("i",{staticClass:"el-input__icon iconfont icon-unie604",attrs:{slot:"prefix"},slot:"prefix"})])],1),t._v(" "),a("el-form-item",[a("el-button",{staticStyle:{width:"100%"},attrs:{type:"primary"},on:{click:t.onSubmit}},[t._v("鐧诲綍")])],1)],1)],1)],1)},staticRenderFns:[]};var g=a("C7Lr")(p,f,!1,function(t){a("wwvT")},"data-v-0e1be330",null).exports,m={name:"LayoutHeader",created:function(){localStorage.getItem("userInfo")?this.userInfo=JSON.parse(localStorage.getItem("userInfo")):this.$router.push({name:"Login"})},data:function(){return{userInfo:{name:"",img:""}}},methods:{handleSelect:function(){}}},v={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"header"},[i("el-row",[i("el-col",{attrs:{span:8}},[i("img",{staticClass:"logo",attrs:{src:a("7Otq")}})]),t._v(" "),i("el-col",{attrs:{span:2,offset:14}},[i("el-dropdown",[i("span",{staticClass:"el-dropdown-link"},[i("img",{staticClass:"head",attrs:{src:t.userInfo.img,align:"absmiddle"}}),t._v("聽 "),i("strong",[t._v(t._s(t.userInfo.name))])]),t._v(" "),i("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[i("el-dropdown-item",[t._v("淇敼瀵嗙爜")]),t._v(" "),i("el-dropdown-item",[t._v("閫�鍑虹櫥褰�")])],1)],1)],1)],1)],1)},staticRenderFns:[]};var _=a("C7Lr")(m,v,!1,function(t){a("gtvx")},"data-v-275cb8e8",null).exports,y=a("lC5x"),w=a.n(y),b=a("J0Oq"),k=a.n(b),x={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.children&&t.children.length>0?a("el-submenu",{attrs:{index:t.url}},[a("template",{slot:"title"},[a("i",{class:t.icon}),t._v(" "),a("span",[t._v(t._s(t.name))])]),t._v(" "),t._l(t.children,function(t,e){return a("menu-item",{key:e,attrs:{url:t.url,icon:t.icon,name:t.name,children:t.children}})})],2):a("el-menu-item",{attrs:{index:t.url}},[a("i",{class:t.icon}),t._v(" "),a("span",{attrs:{slot:"title"},slot:"title"},[t._v(t._s(t.name))])])],1)},staticRenderFns:[]};var S={name:"LayoutAside",components:{MenuItem:a("C7Lr")({name:"MenuItem",data:function(){return{}},props:["url","icon","name","children"]},x,!1,function(t){a("TiBx")},"data-v-3f8bef46",null).exports},data:function(){return{menus:[]}},created:function(){this.getMenu()},methods:{getMenu:function(){var t=this;return k()(w.a.mark(function e(){var a;return w.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return JSON.parse(localStorage.getItem("userInfo")),e.next=3,t.$getJSON("/admin/menu");case 3:a=e.sent,t.menus=a.data;case 5:case"end":return e.stop()}},e,t)}))()},jump:function(t){"Index"!=t?this.$router.push({path:t}):this.$router.push({name:t})}}},$={render:function(){var t=this.$createElement,e=this._self._c||t;return e("el-menu",{staticStyle:{height:"100%"},attrs:{"background-color":"#ebeef5"},on:{select:this.jump}},this._l(this.menus,function(t,a){return e("menu-item",{key:a,attrs:{url:t.url,icon:t.icon,name:t.name,children:t.children}})}))},staticRenderFns:[]};var C={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"foottxt"},[e("b",[this._v("涓婃捣鑹插畞")]),e("a",{attrs:{href:"http://www.shsening.com/",target:"_blank"}},[e("i",[this._v(" www.shsening.com")])])])}]};var z={name:"Main",components:{LayoutHeader:_,LayoutAside:a("C7Lr")(S,$,!1,function(t){a("XCdz")},"data-v-616c4525",null).exports,LayoutFooter:a("C7Lr")({name:"LayoutFooter",data:function(){return{}},methods:{}},C,!1,function(t){a("W0xC")},"data-v-c21b5442",null).exports},data:function(){return{}},mounted:function(){this.$router.push({component:"Chart"})}},T={render:function(){var t=this.$createElement,e=this._self._c||t;return e("el-container",{staticStyle:{height:"100%"}},[e("el-header",[e("LayoutHeader")],1),this._v(" "),e("el-container",[e("el-aside",{attrs:{width:"200px"}},[e("LayoutAside")],1),this._v(" "),e("el-container",[e("el-main",[e("router-view")],1),this._v(" "),e("el-footer",{attrs:{height:"20px"}},[e("LayoutFooter")],1)],1)],1)],1)},staticRenderFns:[]};var R=a("C7Lr")(z,T,!1,function(t){a("rqaq")},"data-v-66b543e6",null).exports,P=a("Flr9"),O={props:["data"],watch:{data:function(t){this.form=JSON.parse(s()(t))}},components:{"week-time":a.n(P).a},methods:{weekTimeChange:function(t,e){this.form.runtime=t},save:function(){var t=this;this.visible=!1,this.form.id?(this.$emit("save",JSON.parse(s()(this.form))),this.$getJSON("/radio/u_whitelst",this.form).then(function(e){t.$message({type:"success",message:"淇濆瓨鎴愬姛"})})):this.$getJSON("/radio/i_whitelst",this.form).then(function(e){t.$emit("save",JSON.parse(s()(t.form)),e.data[0].new_id),t.$message({type:"success",message:"淇濆瓨鎴愬姛"})})},show:function(){this.visible=!0},addTime:function(t){t.timespan.push({value:[new Date,new Date]})},addDay:function(){this.form.runtime.push({weekday:"鍛ㄤ竴",timespan:[{value:[new Date,new Date]}]})}},data:function(){return{title:"淇敼鐧藉悕鍗�",areas:["鍏ㄥ競","闂佃","鍢夊畾","娴︿笢","鏉炬睙","濂夎搐","瀹濆北","閲戝北","闈掓郸","宕囨槑"],visible:!1,form:{}}}},D={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-dialog",{attrs:{title:t.title,visible:t.visible,"close-on-click-modal":!1,width:"800px"},on:{"update:visible":function(e){t.visible=e}}},[a("el-form",{attrs:{"label-position":"right","label-width":"80px"}},[a("el-form-item",{attrs:{label:"鐢靛彴"}},[a("el-input",{attrs:{"auto-complete":"off"},model:{value:t.form.name,callback:function(e){t.$set(t.form,"name",e)},expression:"form.name"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"棰戠巼"}},[a("el-slider",{attrs:{"show-input":"",min:87,max:108,step:.1},model:{value:t.form.frequency,callback:function(e){t.$set(t.form,"frequency",e)},expression:"form.frequency"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"鍦板尯"}},[a("el-select",{attrs:{filterable:"",placeholder:"璇烽�夋嫨"},model:{value:t.form.area,callback:function(e){t.$set(t.form,"area",e)},expression:"form.area"}},t._l(t.areas,function(t,e){return a("el-option",{key:e,attrs:{label:t,value:t}})}))],1),t._v(" "),a("el-form-item",{attrs:{label:"鏃堕棿娈�"}},[a("week-time",{attrs:{weekTimes:t.form.runtime},on:{change:t.weekTimeChange}})],1)],1),t._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(e){t.visible=!1}}},[t._v("鍙� 娑�")]),t._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("淇濆瓨")])],1)],1)},staticRenderFns:[]};var N=a("C7Lr")(O,D,!1,function(t){a("fg5y")},"data-v-7a694dae",null).exports,I={render:function(){var t=this.$createElement;return(this._self._c||t)("el-pagination",{attrs:{"current-page":this.page,"page-sizes":this.size_list,"page-size":this.size,layout:"total, sizes, prev, pager, next, jumper",total:this.total},on:{"size-change":this.handleSizeChange,"current-change":this.handleCurrentChange}})},staticRenderFns:[]};var L={components:{Edit:N},props:["deletelist"],methods:{deleteData:function(){var t=this;this.deletelist&&this.deletelist.length>0&&this.$getJSON("/radio/d_whitelst",{id_list:s()(this.deletelist)}).then(function(e){t.search(),t.$message({type:"success",message:"鍒犻櫎鎴愬姛"})})},search:function(){this.$emit("search",this.value)},add:function(){this.$refs.edit.show()},save:function(t,e){t.id=e,this.$emit("add",t)}},data:function(){return{value:"",data:{}}}},M={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-form",{attrs:{inline:""}},[a("el-form-item",[a("el-button-group",[a("el-button",{attrs:{type:"primary",icon:"el-icon-plus"},on:{click:t.add}}),t._v(" "),a("el-button",{attrs:{type:"primary",icon:"el-icon-delete"},on:{click:t.deleteData}})],1)],1),t._v(" "),a("el-form-item",[a("el-input",{staticStyle:{"margin-left":"150px"},attrs:{placeholder:"璇疯緭鍏ュ叧閿瓧"},model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},[a("el-button",{attrs:{slot:"append",icon:"el-icon-search"},on:{click:t.search},slot:"append"})],1)],1)],1),t._v(" "),a("edit",{ref:"edit",attrs:{data:t.data},on:{save:t.save}})],1)},staticRenderFns:[]};var F={mounted:function(){this.SearchForDatas()},components:{Edit:N,PageNation:a("C7Lr")({created:function(){this.getTotalsize()},methods:{getTotalsize:function(t){var e=this;t||(t=""),this.$getJSON("/radio/cnt_whitelst",{keywords:t}).then(function(t){e.total=t.data[0].count})},handleSizeChange:function(t){this.size=t,this.$emit("change",{page:this.page,size:this.size})},handleCurrentChange:function(t){this.page=t,this.$emit("change",{page:this.page,size:this.size})}},data:function(){return{page:1,size_list:[10,20,30,40],size:10,total:400}}},I,!1,function(t){a("rTpP")},"data-v-216599a9",null).exports,ToolBar:a("C7Lr")(L,M,!1,function(t){a("oueq")},"data-v-5b7649e9",null).exports},methods:{handleSelectionChange:function(t){for(var e=[],a=0;a<t.length;a++){var i=t[a];e.push(i.id)}this.selectdList=e},add:function(t){this.data.unshift(t)},filterTag:function(t,e,a,i){return e.area==t},pageChange:function(t){this.SearchForDatas(this.keywords)},search:function(t){this.keywords=t,this.$refs.pageNation.getTotalsize(t),this.SearchForDatas(t)},SearchForDatas:function(t){var e=this;t||(t=""),this.$getJSON("/radio/s_whitelst",{rows_per_page:this.$refs.pageNation.size,current_page:this.$refs.pageNation.page,keywords:t}).then(function(t){for(var a={},i=0;i<t.data.length;i++){var n=t.data[i];a[n.area]={text:n.area,value:n.area}}var r=[];for(var s in a)r.push(a[s]);e.areas=r,e.data=t.data})},updata:function(t){for(var e in t)this.data[this.selectd_index][e]=t[e]},PraseWeekday:function(t){switch(1*t){case 1:return"鍛ㄤ竴";case 2:return"鍛ㄤ簩";case 3:return"鍛ㄤ笁";case 4:return"鍛ㄥ洓";case 5:return"鍛ㄤ簲";case 6:return"鍛ㄥ叚";case 7:return"鍛ㄦ棩"}},PraseHour:function(t){for(var e="",a=0;a<t.length;a++){var i=t[a];0==a?e+=i:a==t.length-1?e+="~"+i:i+1<t[a+1]&&(e+="~"+i+" "+i)}return e},edit:function(t){this.selectd_index=t,this.$refs.edit.show()}},data:function(){return{selectd_index:"",areas:[],data:[],selectdList:[]}}},E={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-row",{staticStyle:{height:"55px"}},[a("tool-bar",{attrs:{deletelist:t.selectdList},on:{add:t.add,search:t.search}})],1),t._v(" "),a("el-row",{staticStyle:{height:"calc(100% - 55px - 42px)"}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:700,height:"100%"},on:{"selection-change":t.handleSelectionChange}},[a("el-table-column",{attrs:{type:"selection",width:"55"}}),t._v(" "),a("el-table-column",{attrs:{fixed:"",prop:"name",label:"鐢靛彴",width:"330"}}),t._v(" "),a("el-table-column",{attrs:{prop:"frequency",label:"棰戠巼",width:"100"}}),t._v(" "),a("el-table-column",{attrs:{prop:"area",label:"鍦板尯",width:"150",filters:t.areas,"filter-method":t.filterTag}}),t._v(" "),a("el-table-column",{attrs:{label:"杩愯鏃舵"},scopedSlots:t._u([{key:"default",fn:function(e){return t._l(e.row.runtime,function(e,i){return e.length>0?a("el-tag",{key:i},[t._v("\n            "+t._s(t.PraseWeekday(i))+"\n            "),a("el-tag",{attrs:{type:"warning",size:"small"}},[t._v(t._s(t.PraseHour(e)))])],1):t._e()})}}])}),t._v(" "),a("el-table-column",{attrs:{fixed:"right",label:"鎿嶄綔",width:"150"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.edit(e.$index)}}},[t._v("缂栬緫")])]}}])})],1)],1),t._v(" "),a("el-row",{staticStyle:{height:"42px","padding-top":"10px"}},[a("PageNation",{ref:"pageNation",on:{change:t.pageChange}})],1),t._v(" "),a("edit",{ref:"edit",attrs:{data:t.data[t.selectd_index]},on:{save:t.updata}})],1)},staticRenderFns:[]};var q={components:{ComTable:a("C7Lr")(F,E,!1,function(t){a("Be1S")},"data-v-9475d796",null).exports},data:function(){return{}}},A={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticStyle:{height:"100%"}},[e("com-table")],1)},staticRenderFns:[]};var B=a("C7Lr")(q,A,!1,function(t){a("2YTL")},"data-v-5e0dcba0",null).exports,J={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-select",{staticStyle:{width:"120px"},attrs:{placeholder:"璁惧鐘舵��",multiple:""},on:{change:t.change},model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},t._l(t.options,function(e,i){return a("el-option",t._b({key:i},"el-option",e,!1))}))},staticRenderFns:[]};var V=a("C7Lr")({methods:{change:function(){this.$emit("change",this.value)}},data:function(){return{options:[{value:0,label:"绂荤嚎"},{value:1,label:"绌洪棽"},{value:2,label:"姝e湪鎵彴"},{value:3,label:"姝e湪褰曢煶"}],value:""}}},J,!1,function(t){a("WA1K")},"data-v-319775c0",null).exports,W={created:function(){this.getTotalsize()},props:["totalCountOrURL","params"],watch:{totalCountOrURL:function(){this.getTotalsize()},params:function(){this.getTotalsize()}},methods:{getTotalsize:function(){var t=this;if("number"==typeof this.totalCountOrURL)this.total=this.totalCountOrURL;else{for(var e in this.params)if(!this.params[e])return;this.$getJSON(this.totalCountOrURL,this.params).then(function(e){t.total=e.data[0].count,t.page=1})}},handleSizeChange:function(t){this.size=t,this.page>Math.ceil(this.total/this.size)&&(this.page=Math.ceil(this.total/this.size)),this.$emit("change",{page:this.page,size:this.size})},handleCurrentChange:function(t){this.page=t,this.$emit("change",{page:this.page,size:this.size})}},data:function(){return{size_list:[10,20,30,40],total:400,page:1,size:10}}},G={render:function(){var t=this.$createElement;return(this._self._c||t)("el-pagination",{staticStyle:{"text-align":"center"},attrs:{"current-page":this.page,"page-sizes":this.size_list,"page-size":this.size,layout:"total, sizes, prev, pager, next, jumper",total:this.total},on:{"size-change":this.handleSizeChange,"current-change":this.handleCurrentChange}})},staticRenderFns:[]};var H=a("C7Lr")(W,G,!1,function(t){a("NmR4")},"data-v-0e53599c",null).exports,j={props:["whiteListIds"],components:{Pagination:H},mounted:function(){this.getData()},watch:{whiteListIds:function(){this.getData()}},data:function(){return{data:[],subdata:[],page:1,size:10}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.subdata=this.data.slice(this.size*(this.page-1),this.size*this.page)},getData:function(){var t=this;if(this.whiteListIds){var e=[];for(var a in this.whiteListIds)e.push(a);this.$getJSON("/task/s_allWhitelst",{options:[{type:"6",name:"id",value:e}]}).then(function(e){for(var a=e.data,i=0;i<a.length;i++)a[i].is_recording=t.whiteListIds[a[i].id];t.data=a,t.subdata=t.data.slice(t.size*(t.page-1),t.size*t.page)})}else this.data=[],this.subdata=[]}}},U={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-table",{staticStyle:{width:"100%","margin-bottom":"10px"},attrs:{data:t.subdata,border:""}},[a("el-table-column",{attrs:{prop:"frequency",label:"棰戠巼",width:75,sortable:"","class-name":"custom-column"}}),t._v(" "),a("el-table-column",{attrs:{prop:"name",label:"鍚嶇О",sortable:"","class-name":"custom-column"}}),t._v(" "),a("el-table-column",{attrs:{prop:"area",label:"鍦板尯",width:80,align:"center","class-name":"custom-column"}}),t._v(" "),a("el-table-column",{attrs:{label:"褰曢煶",width:50,align:"center","class-name":"custom-column"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-switch",{ref:e.row.id,attrs:{"active-value":1,"inactive-value":0,width:35,disabled:""},model:{value:e.row.is_recording,callback:function(a){t.$set(e.row,"is_recording",a)},expression:"scope.row.is_recording"}})]}}])})],1),t._v(" "),a("Pagination",{ref:"pagination",attrs:{totalCountOrURL:t.data.length,params:{}},on:{change:t.handlePageChange}})],1)},staticRenderFns:[]};var Z=a("C7Lr")(j,U,!1,function(t){a("xCt/")},"data-v-4b25040c",null).exports,K={props:["periodTaskId"],components:{WhiteListOfTask:Z},watch:{periodTaskId:function(){this.getData()}},mounted:function(){this.getData()},data:function(){return{taskVisible:!1,data:{},tagStyle:"background-color:#fff;color:#999;height:22px;line-height:20px;"}},methods:{getData:function(){var t=this;this.$getJSON("/task/s_period_tasklst",{options:[{type:"1",name:"id",value:this.periodTaskId}]}).then(function(e){t.data=e.data[0]})},parseFreqRange:function(t){return 1==t.length?""+t[0]:t[0]+"-"+t[1]}}},X={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-form",{attrs:{"label-position":"right","label-width":"80px",size:"mini"}},[a("el-row",{staticStyle:{margin:"0"}},[a("el-col",{attrs:{span:6}},[a("el-form-item",{attrs:{label:"浠诲姟鍛ㄦ湡"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.period?t.data.period+"鍒�":"鏃犳暟鎹�"))])],1)],1),t._v(" "),a("el-col",{attrs:{span:6}},[a("el-form-item",{attrs:{label:"褰曢煶鏃堕暱"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.recording_length?t.data.recording_length+"绉�":"鏃犳暟鎹�"))])],1)],1),t._v(" "),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"鍒涘缓鏃堕棿"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.create_time?t.data.create_time:"鏃犳暟鎹�")+"\n        ")])],1)],1)],1),t._v(" "),a("el-form-item",{attrs:{label:"浠诲姟璇存槑"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.detail?t.data.detail:"鏃犺鏄�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"鎵弿棰戠巼"}},[t.data.freq_range&&t.data.freq_range.length>0?a("div",t._l(t.data.freq_range,function(e,i){return a("el-tag",{key:i,staticStyle:{"margin-right":"1%"},attrs:{type:"success",size:"mini"}},[t._v("\n        "+t._s(t.parseFreqRange(e))+"\n      ")])})):a("el-tag",{style:t.tagStyle},[t._v("鏃犳暟鎹�")])],1),t._v(" "),a("el-form-item",{attrs:{label:"鐧� 鍚� 鍗�","label-width":"75px"}}),t._v(" "),a("el-form-item",{attrs:{"label-width":"0px"}},[t.data.whitelist&&"{}"!=JSON.stringify(t.data.whitelist)?a("div",[a("WhiteListOfTask",{attrs:{"white-list-ids":t.data.whitelist}})],1):a("el-tag",{style:t.tagStyle},[t._v("鏃犳暟鎹�")])],1)],1)},staticRenderFns:[]};var Y=a("C7Lr")(K,X,!1,function(t){a("/9h5")},"data-v-a1b2b80c",null).exports,Q={props:["lgid"],components:{PeriodTaskDetail:Y},watch:{lgid:function(){this.getData()}},mounted:function(){this.getData()},data:function(){return{taskVisible:!1,data:{},tagStyle:"background-color:#fff;color:#999;height:22px;line-height:20px;"}},methods:{getData:function(){var t=this;this.lgid&&this.$getJSON("/terminal/s_deviceDetail",{device_lgid:this.lgid}).then(function(e){t.data=e.data[0]})},handleClickViewTask:function(t){this.taskVisible=!0,this.$refs.periodTaskDetail&&this.$refs.periodTaskDetail.getData()},getBatteryStatusColor:function(t){t||(t=0);var e=[255,0,0],a=[0,255,0],i=void 0,n=void 0;return i=parseInt(e[0]+(a[0]-e[0])*t/100),n=parseInt(e[1]+(a[1]-e[1])*t/100),"rgb("+(i=(i=i<0?0:i)>255?255:i)+","+(n=(n=n<0?0:n)>255?255:n)+",0)"},getTagType:function(t){switch(t){case"绌洪棽":return"success";case"绂荤嚎":return"info";default:return"warning"}}}},tt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-form",{staticClass:"table-expand",attrs:{"label-position":"right","label-width":"80px",inline:""}},[a("el-form-item",{attrs:{label:"閫昏緫缂栧彿"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.log_id?t.data.log_id:"鏃犳暟鎹�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"鐗╃悊缂栧彿"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.phy_id?t.data.phy_id:"鏃犳暟鎹�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"璁惧绫诲瀷"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.dtype_source||t.data.dtype_move?(t.data.dtype_source?t.data.dtype_source:"")+" "+(t.data.dtype_move?t.data.dtype_move:""):"鏃犳暟鎹�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"缃戠粶绫诲瀷"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.dtype_net?t.data.dtype_net:"鏃犳暟鎹�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"璁惧鐘舵��"}},[t.data.status_name?a("el-tag",{attrs:{size:"mini",type:t.getTagType(t.data.status_name)}},[t._v(t._s(t.data.status_name))]):a("el-tag",{style:t.tagStyle},[t._v("鏃犳暟鎹�")])],1),t._v(" "),a("el-form-item",{attrs:{label:"璁惧鐢甸噺"}},[t.data.battery?a("div",[a("el-progress",{staticStyle:{bottom:"-8px"},attrs:{type:"circle","show-text":!1,"stroke-width":6,width:25,percentage:t.data.battery,color:t.getBatteryStatusColor(t.data.battery)}}),t._v(" "),a("span",{style:t.tagStyle},[t._v(t._s(t.data.battery+"%"))])],1):a("el-tag",{style:t.tagStyle},[t._v("鏃犳暟鎹�")])],1),t._v(" "),a("el-form-item",{attrs:{label:"蹇冭烦闂撮殧"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.heartbeat?t.data.heartbeat+"鍒�":"鏃犳暟鎹�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"涓婃蹇冭烦"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.last_heartbeat_time?t.data.last_heartbeat_time:"鏃犺褰�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"璁惧鍦板潃"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.province||t.data.city||t.data.county||t.data.district||t.data.street||t.data.address?" "+(t.data.province?t.data.province:"")+"\n        "+(t.data.city?t.data.city:"")+" "+(t.data.county?t.data.county:"")+" "+(t.data.district?t.data.district:"")+" "+(t.data.street?t.data.street:"")+"\n        "+(t.data.address?t.data.address:""):"鏃犳暟鎹�")+"\n      ")])],1),t._v(" "),a("el-form-item",{attrs:{label:"缁忕含鍧愭爣"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.lon&&t.data.lat?t.data.lon+"E,"+t.data.lat+"N":"鏃犳暟鎹�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"鎿嶄綔绯荤粺"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.dtype_os||t.data.os_version?(t.data.dtype_os?t.data.dtype_os:"")+" "+(t.data.os_version?t.data.os_version:""):"鏃犳暟鎹�")+"\n      ")])],1),t._v(" "),a("el-form-item",{attrs:{label:"绯荤粺鏇存柊"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.update_time?t.data.update_time:"鏃犳暟鎹�")+"\n      ")])],1),t._v(" "),a("el-form-item",{attrs:{label:"涓婄嚎鏃堕棿"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.create_time?t.data.create_time:"鏃犳暟鎹�"))])],1),t._v(" "),a("el-form-item",{attrs:{label:"浠诲姟缁勫埆"}},[t.data.task_id?a("div",[a("el-tag",{style:t.tagStyle+"padding-top:0;padding-bottom:0;padding-right:0;"},[t._v(t._s(t.data.task_id)+"\n          "),a("el-button",{on:{click:function(e){t.handleClickViewTask(t.data.task_id)}}},[t._v("鏌ョ湅")])],1)],1):a("el-tag",{style:t.tagStyle},[t._v("鏈厤缃�")])],1)],1),t._v(" "),a("el-dialog",{staticStyle:{padding:"0"},attrs:{title:"鍛ㄦ湡浠诲姟璇︽儏",visible:t.taskVisible,"close-on-click-modal":!1,"append-to-body":!0,width:"570px"},on:{"update:visible":function(e){t.taskVisible=e}}},[a("PeriodTaskDetail",{ref:"periodTaskDetail",attrs:{"period-task-id":t.data.task_id}})],1)],1)},staticRenderFns:[]};var et=a("C7Lr")(Q,tt,!1,function(t){a("9qgR")},"data-v-55b0e7f4",null).exports,at={components:{SelectDeviceStatus:V,DeviceDetail:et},watch:{},data:function(){return{map:{mapInterface:null,mapInstance:null,mapCursorDefault:null,scrollWheelZoom:!0,dragging:!0,dbClickZoom:!1,mapStyle:{styleJson:[{featureType:"highway",elementType:"all",stylers:{weight:"0.1",visibility:"on"}}]}},pointer:{position:{},show:!1,icon:{url:"/image/pointer_down.png",size:{width:32,height:32},opts:{anchor:{width:16,height:32}}},timeoutHandle:null},drawing:{isStartPoint:!0,isFinished:!0,drawingType:"",circlePath:{center:{lng:NaN,lat:NaN},radius:0},polygonPath:[],polygonPointCnt:0,styleOptions:{strokeColor:"#87CEEB",fillColor:"#87CEEB",strokeWeight:3,strokeOpacity:.6,fillOpacity:.4,strokeStyle:"solid"},editing:!1},icons:{"-1":{url:"/image/error.png",size:{width:23,height:23},opts:{anchor:{width:11,height:23}}},0:{url:"/image/offline.png",size:{width:23,height:23},opts:{anchor:{width:11,height:23}}},1:{url:"/image/online.png",size:{width:23,height:23},opts:{anchor:{width:11,height:23}}},2:{url:"/image/online.png",size:{width:23,height:23},opts:{anchor:{width:11,height:23}}},3:{url:"/image/online.png",size:{width:23,height:23},opts:{anchor:{width:11,height:23}}}},infowindow:{show:!1,position:{lng:116.404,lat:39.915},device_lgid:""},selectedTable:{show:!1},devices:[],markers:[],selected:[],idsOfDevices:[],districtList:["鍏ㄩ儴","榛勬郸鍖�","寰愭眹鍖�","闀垮畞鍖�","闈欏畨鍖�","鏅檧鍖�","铏瑰彛鍖�","鏉ㄦ郸鍖�","闂佃鍖�","瀹濆北鍖�","鍢夊畾鍖�","娴︿笢鏂板尯","閲戝北鍖�","鏉炬睙鍖�","闈掓郸鍖�","濂夎搐鍖�","宕囨槑鍖�","鍏跺畠"],district:null}},created:function(){this.searchDevices()},mounted:function(){},methods:{handleDistricChange:function(){if(this.district){if(this.selected=[],"鍏ㄩ儴"==this.district)this.selected=this.markers;else if("鍏跺畠"==this.district){this.selected=[];for(var t=0;t<this.markers.length;t++)this.districtList.in_array(this.markers[t].district)||this.selected.push(this.markers[t])}else for(var e=0;e<this.markers.length;e++)this.markers[e].district&&this.markers[e].district.trim()==this.district&&this.selected.push(this.markers[e]);this.selected.length>0&&(this.selectedTable.show=!0)}},ready:function(t){this.map.mapInterface=t.BMap,this.map.mapInstance=t.map,this.map.mapCursorDefault=t.map.getDefaultCursor()},handleSelectionChange:function(t){var e=this;this.idsOfDevices=[],t.map(function(t){return e.idsOfDevices.push(t.log_id)})},locateDvice:function(t){var e=this;clearTimeout(this.pointer.timeoutHandle),this.pointer.position=t,this.pointer.show=!0,this.pointer.timeoutHandle=setTimeout(function(){e.pointer.show=!1},1200)},getTagType:function(t){switch(t){case"绌洪棽":return"success";case"绂荤嚎":return"info";default:return"warning"}},mapClick:function(t){var e=this.drawing.drawingType;""!=e&&(this.drawing.isStartPoint?("circle"==e?(this.drawing.circlePath.center=t.point,this.drawing.circlePath.radius=0):"rectangle"==e?this.drawing.polygonPath=[t.point]:"polygon"==e&&(this.drawing.polygonPath=[t.point],this.drawing.polygonPointCnt=1),this.drawing.isStartPoint=!1,this.drawing.isFinished=!1):"polygon"==e&&(this.drawing.polygonPointCnt==this.drawing.polygonPath.length&&this.drawing.polygonPath.push(t.point),this.drawing.polygonPointCnt++))},mapMouseMove:function(t){if(!this.drawing.isFinished)if("circle"==this.drawing.drawingType)this.drawing.circlePath.radius=t.target.getDistance(this.drawing.circlePath.center,t.point);else if("rectangle"==this.drawing.drawingType){var e=this.drawing.polygonPath[0],a=t.point;this.drawing.polygonPath=[e,{lng:a.lng,lat:e.lat},a,{lng:e.lng,lat:a.lat}]}else"polygon"==this.drawing.drawingType&&(this.drawing.polygonPointCnt==this.drawing.polygonPath.length?this.drawing.polygonPath.push(t.point):this.$set(this.drawing.polygonPath,this.drawing.polygonPath.length-1,t.point))},mapRightClick:function(t){if(!this.drawing.isFinished)if("circle"==this.drawing.drawingType)this.drawing.circlePath.radius=t.target.getDistance(this.drawing.circlePath.center,t.point),this.drawing.isStartPoint=!0,this.drawing.isFinished=!0,this.selectByGeometry();else if("rectangle"==this.drawing.drawingType){var e=this.drawing.polygonPath[0],a=t.point;this.drawing.polygonPath=[e,{lng:a.lng,lat:e.lat},a,{lng:e.lng,lat:a.lat}],this.drawing.isStartPoint=!0,this.drawing.isFinished=!0,this.selectByGeometry()}else"polygon"==this.drawing.drawingType&&(this.drawing.isStartPoint=!0,this.drawing.isFinished=!0,this.selectByGeometry())},drawGeometry:function(t){this.drawing.drawingType!=t&&(this.map.mapInstance.setDefaultCursor("crosshair"),this.drawing.drawingType=t,"circle"==t?(this.drawing.circlePath.center={lng:NaN,lat:NaN},this.drawing.radius=0):"rectangle"==t?this.drawing.polygonPath=[]:"polygon"==t&&(this.drawing.polygonPath=[],this.drawing.polygonPointCnt=0),this.drawing.isStartPoint=!0,this.drawing.isFinished=!0)},hander:function(){""!=this.drawing.drawingType&&(this.map.mapInstance.setDefaultCursor(this.map.mapCursorDefault),this.drawing.drawingType="")},selectByGeometry:function(){this.selected=[];for(var t=0;t<this.markers.length;t++){var e=this.markers[t],a={lng:e.lon,lat:e.lat},i=void 0;switch(this.drawing.drawingType){case"circle":i=this.isPointInCircle(a,this.drawing.circlePath);break;case"rectangle":i=this.isPointInRect(a,this.drawing.polygonPath);break;default:i=this.isPointInPolygon(a,this.drawing.polygonPath)}i&&this.selected.push(e)}this.selected.length>0?this.selectedTable.show=!0:this.$message({message:"鏈�変腑浠讳綍璁惧",type:"warning"})},showInfoWindow:function(t){this.infowindow.show=!0,this.infowindow.position={lng:t.lon,lat:t.lat},this.infowindow.device_lgid=t.log_id},changeDeviceStatus:function(t){if(0==t.length)this.markers=this.devices;else{for(var e=[],a=0;a<this.devices.length;a++){var i=this.devices[a];t.in_array(1*i.status)&&e.push(i)}this.markers=e}},searchDevices:function(){var t=this;this.$getJSON("/terminal/s_devicelst_all",{}).then(function(e){t.devices=e.data,t.markers=t.devices})},getDistance:function(t,e){var a=this.degreeToRad(t.lng),i=this.degreeToRad(t.lat),n=this.degreeToRad(e.lng),r=this.degreeToRad(e.lat);return 6370996.81*Math.acos(Math.sin(i)*Math.sin(r)+Math.cos(i)*Math.cos(r)*Math.cos(n-a))},degreeToRad:function(t){return Math.PI*t/180},radToDegree:function(t){return 180*t/Math.PI},isPointInCircle:function(t,e){return this.getDistance(t,e.center)<=e.radius},isPointInRect:function(t,e){var a=e[0],i=2==e.length?e[1]:e[2];return(t.lng-a.lng)*(t.lng-i.lng)<=0&&(t.lat-a.lat)*(t.lat-i.lat)<=0},getBounds:function(t){var e=t.map(function(t,e,a){return t.lng}),a=t.map(function(t,e,a){return t.lat});return[{lng:e.min(),lat:a.max()},{lng:e.max(),lat:a.min()}]},isPointInPolygon:function(t,e){if(!this.isPointInRect(t,this.getBounds(e)))return!1;var a=e.length,i=0,n=void 0,r=void 0;n=e[0];for(var s=1;s<=a;++s){if(t.lng==n.lng&&t.lat==n.lat)return!0;if(r=e[s%a],t.lat<Math.min(n.lat,r.lat)||t.lat>Math.max(n.lat,r.lat))n=r;else{if(t.lat>Math.min(n.lat,r.lat)&&t.lat<Math.max(n.lat,r.lat)){if(t.lng<=Math.max(n.lng,r.lng)){if(n.lat==r.lat&&t.lng>=Math.min(n.lng,r.lng))return!0;if(n.lng==r.lng){if(n.lng==t.lng)return!0;++i}else{var o=(t.lat-n.lat)*(r.lng-n.lng)/(r.lat-n.lat)+n.lng;if(Math.abs(t.lng-o)<2e-10)return!0;t.lng<o&&++i}}}else if(t.lat==r.lat&&t.lng<=r.lng){var l=e[(s+1)%a];t.lat>=Math.min(n.lat,l.lat)&&t.lat<=Math.max(n.lat,l.lat)?++i:i+=2}n=r}}return i%2!=0},setTask:function(t){var e=this;return k()(w.a.mark(function a(){var i,n,r,s;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(0!=t.length){a.next=3;break}return e.$message({message:"璇烽�夋嫨璁惧",type:"warning"}),a.abrupt("return");case 3:return a.next=5,e.$prompt("璇疯緭鍏ュ懆鏈熶换鍔″彿","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",inputPattern:/^[1-9]\d*$/,inputErrorMessage:"浠诲姟鍙锋牸寮忎笉姝g‘"}).catch(function(){});case 5:if(void 0!==(i=a.sent)){a.next=8;break}return a.abrupt("return");case 8:return n=i.value,r=e.getDeviceOfNoTask(t),s="璁惧 "+t.join(",")+" 鐨勫懆鏈熶换鍔″皢琚厤缃负"+n,r.length>0&&(s=s+"锛屽叾涓� "+r.join(",")+" 鍦ㄨ缃垚鍔熷悗灏嗚閲嶅惎浠ヤ娇鐢ㄦ柊鐨勯厤缃�"),s+="锛屾槸鍚︾户缁紵",a.next=15,e.$confirm(s,"鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).catch(function(){});case 15:if(void 0!==a.sent){a.next=18;break}return a.abrupt("return");case 18:e.$getJSON("/terminal/set_periodTask",{task_id:n,device_list:t}).then(function(t){t.success?e.$message({message:t.message,type:"success"}):e.$message.error(t.message)}).catch(function(){});case 19:case"end":return a.stop()}},a,e)}))()},getDeviceOfNoTask:function(t){for(var e=[],a=0;a<t.length;a++)for(var i=0;i<this.selected.length;i++)if(this.selected[i].log_id==t[a]){null==this.selected[i].task_id&&e.push(t[a]);break}return e},scan:function(t){var e=this;return k()(w.a.mark(function a(){var i;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(0!=t.length){a.next=3;break}return e.$message({message:"璇烽�夋嫨璁惧",type:"warning"}),a.abrupt("return");case 3:return i="姝ゆ搷浣滃皢瀵硅澶� "+t.join(",")+" 涓嬪彂鎵彴浠诲姟锛屾槸鍚︾户缁紵",a.next=6,e.$confirm(i,"鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).catch(function(){});case 6:if(void 0!==a.sent){a.next=9;break}return a.abrupt("return");case 9:e.$getJSON("/apicloud/jpush",{devices:t,command:"scan"}).then(function(t){e.$message({message:"浠诲姟涓嬪彂鎴愬姛锛屽嵆鏃朵换鍔″彿涓� "+t.task_id,type:"success"})});case 10:case"end":return a.stop()}},a,e)}))()},record:function(t){var e=this;return k()(w.a.mark(function a(){var i,n,r;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(0!=t.length){a.next=3;break}return e.$message({message:"璇烽�夋嫨璁惧",type:"warning"}),a.abrupt("return");case 3:return a.next=5,e.$prompt("璇疯緭鍏ラ鐜囷紙鑼冨洿锛�87-108锛�","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",inputValidator:function(t){var e=Number(t);return isNaN(e)?"璇疯緭鍏ユ暟鍊�":null===t.match(/^[0-9]+([.]{1}[0-9]{1})?$/)?"棰戠巼涓烘暣鏁版垨鑰呮渶澶氫竴浣嶅皬鏁�":e<87||e>108?"鏈夋晥棰戠巼鑼冨洿涓�87-108":void 0},inputErrorMessage:"棰戠巼鏍煎紡涓嶆纭�"}).catch(function(){});case 5:if(void 0!==a.sent){a.next=8;break}return a.abrupt("return");case 8:return a.next=10,e.$prompt("璇疯緭鍏ュ綍闊虫椂闀匡紙绉掞級","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",inputPattern:/^[1-9]\d*$/,inputErrorMessage:"褰曢煶鏃堕暱搴斾负姝f暣鏁�"}).catch(function(){});case 10:if(void 0!==(i=a.sent)){a.next=13;break}return a.abrupt("return");case 13:return n=i.value,r="姝ゆ搷浣滃皢瀵硅澶� "+t.join(",")+" 涓嬪彂褰曢煶浠诲姟锛堥鐜囷細"+freq+"銆佸綍闊虫椂闀匡細"+n+"锛夛紝鏄惁缁х画锛�",a.next=17,e.$confirm(r,"鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).catch(function(){});case 17:if(void 0!==a.sent){a.next=20;break}return a.abrupt("return");case 20:e.$getJSON("/apicloud/jpush",{devices:t,command:"record",extra:{freq:freq,length:n}}).then(function(t){e.$message({message:"浠诲姟涓嬪彂鎴愬姛锛屽嵆鏃朵换鍔″彿涓� "+t.task_id,type:"success"})});case 21:case"end":return a.stop()}},a,e)}))()},reboot:function(t){var e=this;return k()(w.a.mark(function a(){var i;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(0!=t.length){a.next=3;break}return e.$message({message:"璇烽�夋嫨璁惧",type:"warning"}),a.abrupt("return");case 3:return i="姝ゆ搷浣滃皢浣胯澶� "+t.join(",")+" 閲嶅惎锛屾槸鍚︾户缁紵",a.next=6,e.$confirm(i,"鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).catch(function(){});case 6:if(void 0!==a.sent){a.next=9;break}return a.abrupt("return");case 9:e.$getJSON("/apicloud/jpush",{devices:t,command:"reboot"}).then(function(t){e.$message({message:"閲嶅惎鍛戒护涓嬪彂鎴愬姛",type:"success"})});case 10:case"end":return a.stop()}},a,e)}))()}}},it={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("baidu-map",{ref:"mapContainer",staticClass:"map_device",attrs:{id:"mapContainer",center:"涓婃捣","scroll-wheel-zoom":t.map.scrollWheelZoom,dragging:t.map.dragging,"double-click-zoom":t.map.dbClickZoom,mapStyle:t.map.mapStyle},on:{click:t.mapClick,mousemove:t.mapMouseMove,rightclick:t.mapRightClick,ready:t.ready}},[a("bm-navigation",{attrs:{anchor:"BMAP_ANCHOR_TOP_RIGHT"}}),t._v(" "),a("bm-control",{attrs:{offset:{width:10,height:10}}},[a("select-device-status",{on:{change:t.changeDeviceStatus}})],1),t._v(" "),a("bm-control",{attrs:{offset:{width:140,height:10}}},[a("el-button-group",[a("el-button",{attrs:{title:"鐢诲渾",icon:"iconfont icon-xuanzeyuanquanxuanzhong"},on:{click:function(e){t.drawGeometry("circle")}}}),t._v(" "),a("el-button",{attrs:{title:"鐢荤煩褰�",icon:"iconfont icon-kuangxuan"},on:{click:function(e){t.drawGeometry("rectangle")}}}),t._v(" "),a("el-button",{attrs:{title:"鐢诲杈瑰舰",icon:"iconfont icon-duobianxing"},on:{click:function(e){t.drawGeometry("polygon")}}}),t._v(" "),a("el-button",{attrs:{title:"鎷栧姩鍦板浘",icon:"iconfont icon-shou"},on:{click:t.hander}})],1)],1),t._v(" "),a("bm-control",{attrs:{offset:{width:380,height:10}}},[a("el-select",{attrs:{placeholder:"鎸夎鏀垮尯閫夋嫨"},on:{change:t.handleDistricChange},model:{value:t.district,callback:function(e){t.district=e},expression:"district"}},t._l(t.districtList,function(t){return a("el-option",{key:t,attrs:{label:t,value:t}})}))],1),t._v(" "),a("bm-control",{directives:[{name:"show",rawName:"v-show",value:t.selectedTable.show,expression:"selectedTable.show"}],attrs:{offset:{width:140,height:60}}},[a("el-card",[a("div",{on:{mouseover:function(e){t.map.scrollWheelZoom=!1},mouseout:function(e){t.map.scrollWheelZoom=!0}}},[a("el-table",{staticStyle:{width:"570px","margin-bottom":"15px"},attrs:{data:t.selected,height:"250px",border:"",size:"mini"},on:{"selection-change":t.handleSelectionChange}},[a("el-table-column",{attrs:{type:"selection",width:"35"}}),t._v(" "),a("el-table-column",{attrs:{prop:"log_id",label:"缂栧彿",width:"130"}}),t._v(" "),a("el-table-column",{attrs:{label:"鍦板潃"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v(t._s(e.row.province||e.row.city||e.row.county||e.row.district||e.row.street||e.row.address?"\n              "+(e.row.province?e.row.province:"")+" "+(e.row.city?e.row.city:"")+"\n              "+(e.row.county?e.row.county:"")+" "+(e.row.district?e.row.district:"")+"\n              "+(e.row.street?e.row.street:"")+" "+(e.row.address?e.row.address:""):"鏃犳暟鎹�")+"\n            ")]}}])}),t._v(" "),a("el-table-column",{attrs:{label:"鍛ㄦ湡浠诲姟",width:"70"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n              "+t._s(e.row.task_id?e.row.task_id:"鏈厤缃�")+"\n            ")]}}])}),t._v(" "),a("el-table-column",{attrs:{fixed:"right",label:"鎿嶄綔",width:"50"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.locateDvice({lng:e.row.lon,lat:e.row.lat})}}},[t._v("浣嶇疆")])]}}])})],1),t._v(" "),a("el-button-group",[a("el-button",{attrs:{type:"primary",plain:"",size:"small"},on:{click:function(e){t.scan(t.idsOfDevices)}}},[t._v("鎵彴")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:"",size:"small"},on:{click:function(e){t.record(t.idsOfDevices)}}},[t._v("褰曢煶")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:"",size:"small"},on:{click:function(e){t.reboot(t.idsOfDevices)}}},[t._v("閲嶅惎")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:"",size:"small"},on:{click:function(e){t.setTask(t.idsOfDevices)}}},[t._v("閰嶇疆浠诲姟")])],1),t._v(" "),a("el-button",{staticStyle:{float:"right"},attrs:{type:"info",plain:"",size:"small"},on:{click:function(e){t.selectedTable.show=!1}}},[t._v("鍏抽棴")])],1)])],1),t._v(" "),t._l(t.markers,function(e){return a("bm-marker",{key:e.phy_id,attrs:{icon:t.icons[e.status],title:e.log_id,position:{lng:e.lon,lat:e.lat}},on:{click:function(a){t.showInfoWindow(e)}}})}),t._v(" "),t.pointer.show?a("bm-marker",{attrs:{animation:"BMAP_ANIMATION_BOUNCE",position:t.pointer.position,icon:t.pointer.icon}}):t._e(),t._v(" "),a("bm-info-window",{attrs:{title:"璁惧淇℃伅",show:t.infowindow.show,position:t.infowindow.position,width:430},on:{open:function(e){t.infowindow.show=!0},close:function(e){t.infowindow.show=!1}}},[a("device-detail",{attrs:{lgid:t.infowindow.device_lgid}}),t._v(" "),a("el-button-group",{staticStyle:{"margin-top":"15px","margin-left":"10px"}},[a("el-button",{attrs:{type:"info",plain:"",size:"small"},on:{click:function(e){t.scan([t.infowindow.device_lgid])}}},[t._v("鎵彴")]),t._v(" "),a("el-button",{attrs:{type:"info",plain:"",size:"small"},on:{click:function(e){t.record([t.infowindow.device_lgid])}}},[t._v("褰曢煶")]),t._v(" "),a("el-button",{attrs:{type:"info",plain:"",size:"small"},on:{click:function(e){t.reboot([t.infowindow.device_lgid])}}},[t._v("閲嶅惎")]),t._v(" "),a("el-button",{attrs:{type:"info",plain:"",size:"small"},on:{click:function(e){t.setTask([t.infowindow.device_lgid])}}},[t._v("閰嶇疆浠诲姟")])],1)],1),t._v(" "),"circle"==t.drawing.drawingType?a("bm-circle",{attrs:{center:t.drawing.circlePath.center,radius:t.drawing.circlePath.radius,"stroke-color":t.drawing.styleOptions.strokeColor,"fill-color":t.drawing.styleOptions.fillColor,"stroke-opacity":t.drawing.styleOptions.strokeOpacity,"fill-opacity":t.drawing.styleOptions.fillOpacity,"stroke-weight":t.drawing.styleOptions.strokeWeight,"stroke-style":t.drawing.styleOptions.strokeStyle,editing:t.drawing.editing}}):"polygon"==t.drawing.drawingType||"rectangle"==t.drawing.drawingType?a("bm-polygon",{attrs:{path:t.drawing.polygonPath,"stroke-color":t.drawing.styleOptions.strokeColor,"fill-color":t.drawing.styleOptions.fillColor,"stroke-opacity":t.drawing.styleOptions.strokeOpacity,"fill-opacity":t.drawing.styleOptions.fillOpacity,"stroke-weight":t.drawing.styleOptions.strokeWeight,"stroke-style":t.drawing.styleOptions.strokeStyle,editing:t.drawing.editing}}):t._e()],2)},staticRenderFns:[]};var nt=a("C7Lr")(at,it,!1,function(t){a("kMlG")},null,null).exports,rt={props:["data"],watch:{visible:function(t){t&&(this.form=JSON.parse(s()(this.data)),void 0===this.form.id&&(this.form.period=240,this.form.freq_range=[],this.form.whitelist={},this.form.recording_length=15,this.form.detail=""),this.searchAllWhitelst({}),this.hideFreqInput())}},components:{},computed:{},methods:{show:function(){this.visible=!0},renderSelect:function(t){var e=this;return[t("el-checkbox",{model:{checked:this.checkAll,callback:function(t){return e.checkAll=t}},attrs:{indeterminate:this.indeterminate},on:{change:this.handleSelectAllChange}}),t("el-badge",{attrs:{class:"el-badge mark",value:this.selectedNum,style:"padding:0;margin:0;line-height:23px;"}})]},handleSelectAllChange:function(t){this.indeterminate=!1;for(var e=0;e<this.allWhitelst.length;e++)this.allWhitelst[e].checked=t;this.selectedNum=t?this.allWhitelst.length:0},handleCheckChange:function(t){t?this.selectedNum++:this.selectedNum--,this.checkAll=this.selectedNum===this.allWhitelst.length,this.indeterminate=this.selectedNum>0&&this.selectedNum<this.allWhitelst.length},initSelection:function(){this.selectedNum=0;for(var t=0;t<this.allWhitelst.length;t++){var e=this.allWhitelst[t],a=String(e.id);this.form.whitelist.hasOwnProperty(a)&&(this.allWhitelst[t].is_recording=this.form.whitelist[a],this.allWhitelst[t].checked=!0,this.selectedNum++)}this.checkAll=this.selectedNum===this.allWhitelst.length,this.indeterminate=this.selectedNum>0&&this.selectedNum<this.allWhitelst.length},parseFreqRange:function(t){return 1==t.length?""+t[0]:t[0]+"-"+t[1]},handleTagClose:function(t){this.form.freq_range.splice(t,1)},addFreq:function(){var t=void 0;this.freqStart==this.freqEnd?t=[this.freqStart]:this.freqStart<this.freqEnd?t=[this.freqStart,this.freqEnd]:this.$message({duration:2e3,showClose:!0,message:"璧峰棰戠巼搴斿皬浜庣瓑浜庣粨鏉熼鐜�",type:"error"}),t&&(this.checkFreq(t)?(this.form.freq_range.push(t),this.freqInputVisible=!1,this.freqStart=-1,this.freqEnd=-1):this.$message({duration:2e3,showClose:!0,message:"娣诲姞澶辫触锛氫笌宸叉湁棰戠巼鑼冨洿閲嶅",type:"error"}))},checkFreq:function(t){1==(t=JSON.parse(s()(t))).length&&t.push(t[0]);for(var e=0;e<this.form.freq_range.length;e++){var a=JSON.parse(s()(this.form.freq_range[e]));if(1==a.length&&a.push(a[0]),a[0]<=t[1]&&a[0]>=t[0]||a[1]<=t[1]&&a[1]>=t[0])return!1}return!0},hideFreqInput:function(){this.freqInputVisible=!1,this.freqStart=0,this.freqEnd=0},save:function(){for(var t=this,e={},a=0;a<this.allWhitelst.length;a++)this.allWhitelst[a].checked&&(e[this.allWhitelst[a].id]=this.allWhitelst[a].is_recording);this.form.whitelist=e,this.form.create_time=(new Date).format("yyyy-MM-dd hh:mm:ss"),this.visible=!1,this.form.id?this.$getJSON("/task/u_period_tasklst",this.form).then(function(e){t.$emit("refreshAfterUpdate"),t.$message({type:"success",message:"淇敼鎴愬姛"})}):this.$getJSON("/task/i_period_tasklst",this.form).then(function(e){t.$emit("refreshTable"),t.$message({type:"success",message:"娣诲姞鎴愬姛"})})},updateForm:function(){for(var t={},e=0;e<this.allWhitelst.length;e++)this.allWhitelst[e].checked&&(t[this.allWhitelst[e].id]=this.allWhitelst[e].is_recording);this.form.whitelist=t,this.form.create_time=(new Date).format("yyyy-MM-dd hh:mm:ss")},searchAllWhitelst:function(t){var e=this;this.$getJSON("/task/s_allWhitelst",{rows_per_page:t.size,current_page:t.page,orderby:{name:"ASC"}}).then(function(t){e.allWhitelst=t.data,e.initSelection()})}},data:function(){return{title:"缂栬緫鍛ㄦ湡浠诲姟",visible:!1,form:{},freqInputVisible:!1,freqStart:87,freqEnd:108,allWhitelst:[],size:10,page:1,selectedNum:0,indeterminate:!1,checkAll:!1}}},st={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-dialog",{attrs:{title:t.title,visible:t.visible,"close-on-click-modal":!1,width:"700px"},on:{"update:visible":function(e){t.visible=e}}},[a("el-form",{attrs:{"label-position":"left","label-width":"68px",size:"mini"}},[a("el-row",{staticStyle:{"margin-bottom":"0"}},[a("el-col",{staticStyle:{width:"50%"}},[a("el-form-item",{staticStyle:{"padding-right":"10px"},attrs:{label:"鍛�  鏈�"}},[a("el-input",{attrs:{"auto-complete":"off"},model:{value:t.form.period,callback:function(e){t.$set(t.form,"period",e)},expression:"form.period"}},[a("template",{slot:"append"},[t._v("鍒�")])],2)],1)],1),t._v(" "),a("el-col",{staticStyle:{width:"50%"}},[a("el-form-item",{staticStyle:{"padding-left":"10px"},attrs:{label:"褰曢煶鏃堕暱"}},[a("el-input",{attrs:{"auto-complete":"off"},model:{value:t.form.recording_length,callback:function(e){t.$set(t.form,"recording_length",e)},expression:"form.recording_length"}},[a("template",{slot:"append"},[t._v("绉�")])],2)],1)],1)],1),t._v(" "),a("el-form-item",{attrs:{label:"浠诲姟璇存槑"}},[a("el-input",{attrs:{rows:1,placeholder:"璇疯緭鍏ュ唴瀹�","auto-complete":"off"},model:{value:t.form.detail,callback:function(e){t.$set(t.form,"detail",e)},expression:"form.detail"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"鎵弿棰戠巼"}},[[t._l(t.form.freq_range,function(e,i){return a("el-tag",{key:i,staticStyle:{"margin-right":"1%"},attrs:{closable:"",type:"success",size:"medium"},on:{close:function(e){t.handleTagClose(i)}}},[t._v("\n          "+t._s(t.parseFreqRange(e))+"\n        ")])}),t._v(" "),t.freqInputVisible?a("div",{staticStyle:{margin:"5px 0 0 0",padding:"0"},attrs:{display:"inline"}},[a("el-input-number",{ref:"saveTagInput",staticClass:"input-new-tag",staticStyle:{width:"120px"},attrs:{size:"mini","controls-position":"right",min:87,max:108,precision:1,step:.1},model:{value:t.freqStart,callback:function(e){t.freqStart=e},expression:"freqStart"}}),t._v("\n          -\n          "),a("el-input-number",{ref:"saveTagInput",staticClass:"input-new-tag",staticStyle:{width:"120px"},attrs:{size:"mini","controls-position":"right",min:87,max:108,precision:1,step:.1},model:{value:t.freqEnd,callback:function(e){t.freqEnd=e},expression:"freqEnd"}}),t._v(" "),a("el-button",{staticStyle:{"margin-left":"20px"},attrs:{type:"primary",size:"mini"},on:{click:t.hideFreqInput}},[t._v("鍙栨秷")]),t._v(" "),a("el-button",{attrs:{type:"primary",size:"mini"},on:{click:t.addFreq}},[t._v("纭畾")])],1):a("el-button",{staticStyle:{"margin-left":"20px"},attrs:{type:"primary",size:"mini",round:""},on:{click:function(e){t.freqInputVisible=!0}}},[t._v("娣诲姞棰戠巼")])]],2),t._v(" "),a("el-form-item",{attrs:{label:"鐧藉悕鍗�"}},[a("el-table",{staticStyle:{width:"100%","margin-bottom":"10px"},attrs:{data:t.allWhitelst,border:"",height:350,"row-class-name":"allWhitelstTable","header-row-class-name":"allWhitelstTable",size:"mini"}},[a("el-table-column",{staticStyle:{padding:"0"},attrs:{width:"70",align:"center","render-header":t.renderSelect,prop:"checked"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-checkbox",{on:{change:t.handleCheckChange},model:{value:e.row.checked,callback:function(a){t.$set(e.row,"checked",a)},expression:"scope.row.checked"}})]}}])}),t._v(" "),a("el-table-column",{attrs:{prop:"frequency",label:"棰戠巼",width:"60"}}),t._v(" "),a("el-table-column",{attrs:{prop:"name",label:"鍚嶇О",sortable:""}}),t._v(" "),a("el-table-column",{attrs:{prop:"area",label:"鍦板尯",width:"80",align:"center"}}),t._v(" "),a("el-table-column",{attrs:{label:"褰曢煶",width:"80px",align:"center"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-switch",{ref:e.row.id,attrs:{"active-value":1,"inactive-value":0,width:50},model:{value:e.row.is_recording,callback:function(a){t.$set(e.row,"is_recording",a)},expression:"scope.row.is_recording"}})]}}])})],1)],1),t._v(" "),a("el-form-item",{staticStyle:{float:"right"}},[a("el-button",{on:{click:function(e){t.visible=!1}}},[t._v("鍙� 娑�")]),t._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("淇濆瓨")])],1)],1),t._v(" "),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"})],1)},staticRenderFns:[]};var ot=a("C7Lr")(rt,st,!1,function(t){a("iRlw")},"data-v-2ec03582",null).exports,lt={created:function(){this.getTotalsize()},methods:{getTotalsize:function(t){var e=this;return k()(w.a.mark(function a(){var i,n;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return i={},t&&(i.options=[{type:"8",name:"detail",value:t}],""==t||isNaN(t)||(i.options.push({type:"1",name:"id",value:t}),i.operator=" OR ")),a.next=4,e.$getJSON("/task/cnt_period_tasklst",i);case 4:n=a.sent,e.total=n.data[0].count,e.page>Math.ceil(e.total/e.size)&&(e.page=Math.ceil(e.total/e.size));case 7:case"end":return a.stop()}},a,e)}))()},handleSizeChange:function(t){this.size=t,this.page>Math.ceil(this.total/this.size)&&(this.page=Math.ceil(this.total/this.size)),this.$emit("change",{page:this.page,size:this.size})},handleCurrentChange:function(t){this.page=t,this.$emit("change",{page:this.page,size:this.size})}},data:function(){return{page:1,size_list:[10,20,30,40],size:10,total:400}}},ct={render:function(){var t=this.$createElement;return(this._self._c||t)("el-pagination",{attrs:{"current-page":this.page,"page-sizes":this.size_list,"page-size":this.size,layout:"total, sizes, prev, pager, next, jumper",total:this.total},on:{"size-change":this.handleSizeChange,"current-change":this.handleCurrentChange}})},staticRenderFns:[]};var dt={components:{Edit:ot},props:["deletelist"],methods:{deleteData:function(){var t=this;this.deletelist&&this.deletelist.length>0&&this.$confirm(this.deletelist.length+"鏉″懆鏈熶换鍔″皢琚垹闄�,鎵ц杩�"+(1==this.deletelist.length?"涓�":"浜�")+"鍛ㄦ湡浠诲姟鐨勮澶囩殑浠诲姟灏嗚缃┖锛屾槸鍚︾户缁�?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).then(function(){t.$getJSON("/task/d_period_tasklst",{id_list:s()(t.deletelist)}).then(function(e){t.refreshTable(),t.$message({type:"success",message:"鍒犻櫎鎴愬姛"})})}).catch(function(){t.$message({type:"info",message:"宸插彇娑堝垹闄�"})})},search:function(){this.$emit("search")},add:function(){this.$refs.edit.show()},refreshTable:function(){this.$emit("refreshTable")}},data:function(){return{searchValue:"",data:{}}}},ht={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-form",{attrs:{inline:""}},[a("el-form-item",[a("el-button-group",[a("el-button",{attrs:{type:"primary",icon:"el-icon-plus"},on:{click:t.add}}),t._v(" "),a("el-button",{attrs:{type:"primary",icon:"el-icon-delete"},on:{click:t.deleteData}})],1)],1),t._v(" "),a("el-form-item",[a("el-input",{staticStyle:{"margin-left":"150px"},attrs:{placeholder:"杈撳叆浠诲姟鍙锋垨鑰呬换鍔¤鏄庡叧閿瓧"},model:{value:t.searchValue,callback:function(e){t.searchValue=e},expression:"searchValue"}},[a("el-button",{attrs:{slot:"append",icon:"el-icon-search"},on:{click:t.search},slot:"append"})],1)],1)],1),t._v(" "),a("edit",{ref:"edit",attrs:{data:t.data},on:{refreshTable:t.refreshTable}})],1)},staticRenderFns:[]};var ut={mounted:function(){this.SearchForDatas()},components:{Edit:ot,PageNation:a("C7Lr")(lt,ct,!1,function(t){a("aj8w")},"data-v-18db5703",null).exports,ToolBar:a("C7Lr")(dt,ht,!1,function(t){a("RPXr")},"data-v-19394728",null).exports,WhiteListOfTask:Z},data:function(){return{selectd_index:"",areas:[],data:[],selectdList:[],whiteListVisible:!1}},methods:{parseFreqRange:function(t){return 1==t.length?""+t[0]:t[0]+"-"+t[1]},handleSelectionChange:function(t){for(var e=[],a=0;a<t.length;a++){var i=t[a];e.push(i.id)}this.selectdList=e},refreshTable:function(){this.$refs.pageNation.getTotalsize(),this.SearchForDatas()},pageChange:function(){var t=this.$refs.toolbar.searchValue;t=t&&""!=t.replace(/(^\s*)|(\s*$)/g,"")?t.replace(/(^\s*)|(\s*$)/g,""):void 0,this.SearchForDatas(t)},search:function(){var t=this,e=this.$refs.toolbar.searchValue;e=e&&""!=e.replace(/(^\s*)|(\s*$)/g,"")?e.replace(/(^\s*)|(\s*$)/g,""):void 0,this.$refs.pageNation.getTotalsize(e).then(function(){t.SearchForDatas(e)})},SearchForDatas:function(t){var e=this,a={rows_per_page:this.$refs.pageNation.size,current_page:this.$refs.pageNation.page};t&&(a.options=[{type:"8",name:"detail",value:t}],""==t||isNaN(t)||(a.options.push({type:"1",name:"id",value:t}),a.operator=" OR ")),this.$getJSON("/task/s_period_tasklst",a).then(function(t){e.data=t.data})},edit:function(t){this.selectd_index=t,this.$refs.edit.show()},showWhiteList:function(t){this.selectd_index=t,this.whiteListVisible=!0}}},pt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-row",{staticStyle:{height:"55px","padding-bottom":"15px"}},[a("tool-bar",{ref:"toolbar",attrs:{deletelist:t.selectdList},on:{refreshTable:t.refreshTable,search:t.search}})],1),t._v(" "),a("el-row",{staticStyle:{height:"calc(100% - 55px - 42px)"}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"},on:{"selection-change":t.handleSelectionChange}},[a("el-table-column",{attrs:{type:"selection",width:"35"}}),t._v(" "),a("el-table-column",{attrs:{prop:"id",label:"浠诲姟鍙�",width:"105",align:"center"}}),t._v(" "),a("el-table-column",{attrs:{prop:"period",label:"鍛ㄦ湡(鍒�)",width:"105"}}),t._v(" "),a("el-table-column",{attrs:{prop:"recording_length",label:"褰曢煶鏃堕暱(绉�)",width:"105"}}),t._v(" "),a("el-table-column",{attrs:{prop:"detail",label:"浠诲姟璇存槑"}}),t._v(" "),a("el-table-column",{attrs:{prop:"create_time",label:"鍒涘缓鏃堕棿",width:"170"}}),t._v(" "),a("el-table-column",{attrs:{label:"鎵弿棰戠巼"},scopedSlots:t._u([{key:"default",fn:function(e){return t._l(e.row.freq_range,function(e,i){return a("el-tag",{key:i,staticStyle:{"margin-left":"1%"},attrs:{type:"success",size:"small"}},[t._v("\n            "+t._s(t.parseFreqRange(e))+"\n          ")])})}}])}),t._v(" "),a("el-table-column",{attrs:{fixed:"right",label:"鎿嶄綔",width:"130"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.showWhiteList(e.$index)}}},[t._v("鐧藉悕鍗�")]),t._v(" "),a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.edit(e.$index)}}},[t._v("缂栬緫")])]}}])})],1)],1),t._v(" "),a("el-row",{staticStyle:{height:"42px","padding-top":"10px"}},[a("PageNation",{ref:"pageNation",on:{change:t.pageChange}})],1),t._v(" "),a("edit",{ref:"edit",attrs:{data:t.data[t.selectd_index]},on:{refreshAfterUpdate:t.refreshTable}}),t._v(" "),a("el-dialog",{attrs:{visible:t.whiteListVisible,"close-on-click-modal":!1,width:"700px"},on:{"update:visible":function(e){t.whiteListVisible=e}}},[a("WhiteListOfTask",{ref:"whiteList",attrs:{"white-list-ids":t.data&&t.data[t.selectd_index]?t.data[t.selectd_index].whitelist:{}}})],1)],1)},staticRenderFns:[]};var ft={components:{ComTable:a("C7Lr")(ut,pt,!1,function(t){a("eWTf")},"data-v-8e10bc58",null).exports},data:function(){return{}}},gt={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticStyle:{height:"100%"}},[e("com-table")],1)},staticRenderFns:[]};var mt=a("C7Lr")(ft,gt,!1,function(t){a("UVNa")},"data-v-1f47ef48",null).exports,vt={props:["periodTaskId","deviceId"],components:{Pagination:H},mounted:function(){this.getData()},watch:{periodTaskId:function(){this.getData()},deviceId:function(){this.getData()}},data:function(){return{data:[],page:1,size:10}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.getData()},getData:function(){var t=this;this.periodTaskId&&this.deviceId&&this.$getJSON("/terminal/s_periodTaskExcuteRd",{device_lgid:this.deviceId,task_id:this.periodTaskId,page:this.page,size:this.size}).then(function(e){t.data=e.data})}}},_t={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("el-table",{staticStyle:{width:"100%"},attrs:{data:this.data,border:"",height:"100%"}},[e("el-table-column",{attrs:{prop:"task_id",label:"浠诲姟鍙�",width:"80"}}),this._v(" "),e("el-table-column",{attrs:{prop:"start_time",label:"鎵ц鏃堕棿"}})],1),this._v(" "),e("Pagination",{attrs:{totalCountOrURL:"/terminal/cnt_periodTaskExcuteRd",params:{device_lgid:this.deviceId,task_id:this.periodTaskId}},on:{change:this.handlePageChange}})],1)},staticRenderFns:[]};var yt={props:["lgid"],components:{WhiteListOfTask:Z,Pagination:H,PeriodTaskExcutionHistory:a("C7Lr")(vt,_t,!1,function(t){a("/HI8")},"data-v-60eaddda",null).exports},mounted:function(){this.getData()},watch:{lgid:function(){this.getData()}},data:function(){return{selected_idx:"",whiteListVisible:!1,whiteListIds:null,taskHistoryVisible:!1,periodTaskId:null,deviceId:null,data:[],page:1,size:10}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.getData()},showWhiteList:function(t){this.whiteListVisible=!0,this.whiteListIds=this.data[t].whitelist},showTaskHistory:function(t){this.taskHistoryVisible=!0,this.periodTaskId=this.data[t].id,this.deviceId=this.lgid},parseFreqRange:function(t){return 1==t.length?""+t[0]:t[0]+"-"+t[1]},getData:function(){var t=this;this.lgid&&this.$getJSON("/terminal/s_periodTaskRd",{device_lgid:this.lgid,page:this.page,size:this.size}).then(function(e){t.data=e.data})}}},wt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"}},[a("el-table-column",{attrs:{prop:"id",label:"浠诲姟鍙�",width:"80"}}),t._v(" "),a("el-table-column",{attrs:{prop:"period",label:"鍛ㄦ湡(鍒�)",width:"80"}}),t._v(" "),a("el-table-column",{attrs:{prop:"recording_length",label:"褰曢煶鏃堕暱(绉�)",width:"110"}}),t._v(" "),a("el-table-column",{attrs:{prop:"detail",label:"浠诲姟璇存槑"}}),t._v(" "),a("el-table-column",{attrs:{prop:"last_execution",label:"鏈�杩戞墽琛�",width:"160"}}),t._v(" "),a("el-table-column",{attrs:{label:"鎵弿棰戠巼"},scopedSlots:t._u([{key:"default",fn:function(e){return t._l(e.row.freq_range,function(e,i){return a("el-tag",{key:i,staticStyle:{"margin-left":"1%"},attrs:{type:"success",size:"small"}},[t._v("\n          "+t._s(t.parseFreqRange(e))+"\n        ")])})}}])}),t._v(" "),a("el-table-column",{attrs:{fixed:"right",label:"鎿嶄綔",width:"150"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.showWhiteList(e.$index)}}},[t._v("鐧藉悕鍗�")]),t._v(" "),a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.showTaskHistory(e.$index)}}},[t._v("鎵ц鍘嗗彶")])]}}])})],1),t._v(" "),a("Pagination",{attrs:{totalCountOrURL:"/terminal/cnt_periodTaskRd",params:{device_lgid:t.lgid}},on:{change:t.handlePageChange}}),t._v(" "),a("el-dialog",{attrs:{visible:t.whiteListVisible,"close-on-click-modal":!1},on:{"update:visible":function(e){t.whiteListVisible=e}}},[a("WhiteListOfTask",{ref:"whiteListOfTask",attrs:{whiteListIds:t.whiteListIds}})],1),t._v(" "),a("el-dialog",{attrs:{visible:t.taskHistoryVisible,"close-on-click-modal":!1},on:{"update:visible":function(e){t.taskHistoryVisible=e}}},[a("PeriodTaskExcutionHistory",{ref:"periodTaskExcutionHistory",attrs:{periodTaskId:t.periodTaskId,deviceId:t.deviceId}})],1)],1)},staticRenderFns:[]};var bt={props:["lgid"],components:{Pagination:H},mounted:function(){this.getData()},watch:{lgid:function(){this.getData()}},data:function(){return{selected_idx:"",whiteListVisible:!1,data:[],page:1,size:10}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.getData()},getData:function(){var t=this;this.lgid&&this.$getJSON("/terminal/s_realtimeTaskRd",{device_lgid:this.lgid,page:this.page,size:this.size}).then(function(e){t.data=e.data})}}},kt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"}},[a("el-table-column",{attrs:{prop:"id",label:"浠诲姟鍙�",width:"80"}}),t._v(" "),a("el-table-column",{attrs:{prop:"command",label:"鎿嶄綔",width:"80"}}),t._v(" "),a("el-table-column",{attrs:{prop:"recording_length",label:"褰曢煶鏃堕暱(绉�)",width:"110"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n        "+t._s(e.row.recording_length?e.row.recording_length:"-")+"\n      ")]}}])}),t._v(" "),a("el-table-column",{attrs:{label:"鎵弿棰戠巼",width:"110"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n        "+t._s(e.row.freq_range?e.row.freq_range:"-")+"\n      ")]}}])}),t._v(" "),a("el-table-column",{attrs:{prop:"detail",label:"浠诲姟璇存槑"}}),t._v(" "),a("el-table-column",{attrs:{prop:"start_time",label:"寮�濮嬫椂闂�",width:"160"}}),t._v(" "),a("el-table-column",{attrs:{prop:"finish_time",label:"瀹屾垚鏃堕棿",width:"160"}})],1),t._v(" "),a("Pagination",{attrs:{totalCountOrURL:"/terminal/cnt_realtimeTaskRd",params:{device_lgid:t.lgid}},on:{change:t.handlePageChange}})],1)},staticRenderFns:[]};var xt={props:["lgid"],components:{Pagination:H},mounted:function(){this.getData()},watch:{lgid:function(){this.getData()}},data:function(){return{data:[],page:1,size:10}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.getData()},getData:function(){var t=this;this.lgid&&this.$getJSON("/terminal/s_blacklistRd",{device_lgid:this.lgid,page:this.page,size:this.size}).then(function(e){t.data=e.data})}}},St={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"}},[a("el-table-column",{attrs:{prop:"frequency",label:"棰戠巼",width:70}}),t._v(" "),a("el-table-column",{attrs:{prop:"last_scan",label:"鏈�杩戞壂鎻�",width:160}}),t._v(" "),a("el-table-column",{attrs:{label:"褰曢煶鏂囦欢",width:100},scopedSlots:t._u([{key:"default",fn:function(e){return[e.row.radio_file_path?a("el-button",{attrs:{type:"text"},on:{click:function(a){t.$playAudio(e.row.radio_file_path,e.row.frequency,e.row.last_scan)}}},[t._v("鐐瑰嚮鎾斁")]):[t._v("鏃犳枃浠�")]]}}])}),t._v(" "),a("el-table-column",{attrs:{prop:"recognition",label:"闊抽璇嗗埆"}}),t._v(" "),a("el-table-column",{attrs:{prop:"result_type",label:"鍒ゅ埆缁撴灉",width:85}})],1),t._v(" "),a("Pagination",{attrs:{totalCountOrURL:"/terminal/cnt_blacklistRd",params:{device_lgid:t.lgid}},on:{change:t.handlePageChange}})],1)},staticRenderFns:[]};var $t={props:["lgid"],components:{Pagination:H},mounted:function(){this.getData()},watch:{lgid:function(){this.getData()}},data:function(){return{data:[],page:1,size:10}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.getData()},getData:function(){var t=this;this.lgid&&this.$getJSON("/terminal/s_audioRd",{device_lgid:this.lgid,page:this.page,size:this.size}).then(function(e){t.data=e.data})}}},Ct={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"}},[a("el-table-column",{attrs:{prop:"frequency",label:"棰戠巼",width:70}}),t._v(" "),a("el-table-column",{attrs:{prop:"upload_time",label:"涓婁紶鏃堕棿",width:160}}),t._v(" "),a("el-table-column",{attrs:{label:"褰曢煶鏂囦欢",width:100},scopedSlots:t._u([{key:"default",fn:function(e){return[e.row.radio_file_path?a("el-button",{attrs:{type:"text"},on:{click:function(a){t.$playAudio(e.row.radio_file_path,e.row.frequency,e.row.upload_time)}}},[t._v("鐐瑰嚮鎾斁")]):[t._v("鏃犳枃浠�")]]}}])}),t._v(" "),a("el-table-column",{attrs:{prop:"recognition",label:"闊抽璇嗗埆"}}),t._v(" "),a("el-table-column",{attrs:{prop:"result_type",label:"鍒ゅ埆缁撴灉",width:85}})],1),t._v(" "),a("Pagination",{attrs:{totalCountOrURL:"/terminal/cnt_audioRd",params:{device_lgid:t.lgid}},on:{change:t.handlePageChange}})],1)},staticRenderFns:[]};var zt={props:["lgid"],components:{Pagination:H},mounted:function(){this.getData()},watch:{lgid:function(){this.getData()}},data:function(){return{data:[],page:1,size:10}},methods:{getBatteryStatusColor:function(t){t||(t=0);var e=[255,0,0],a=[0,255,0],i=void 0,n=void 0;return i=parseInt(e[0]+(a[0]-e[0])*t/100),n=parseInt(e[1]+(a[1]-e[1])*t/100),"rgb("+(i=(i=i<0?0:i)>255?255:i)+","+(n=(n=n<0?0:n)>255?255:n)+",0)"},handlePageChange:function(t){this.page=t.page,this.size=t.size,this.getData()},getData:function(){var t=this;this.lgid&&this.$getJSON("/terminal/s_heartbeatRd",{device_lgid:this.lgid,page:this.page,size:this.size}).then(function(e){t.data=e.data})}}},Tt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"}},[a("el-table-column",{attrs:{prop:"upload_time",label:"涓婁紶鏃堕棿"}}),t._v(" "),a("el-table-column",{attrs:{label:"缁忓害"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n        "+t._s(e.row.lon?e.row.lon+" E":"鏃犳暟鎹�")+"\n      ")]}}])}),t._v(" "),a("el-table-column",{attrs:{label:"绾害"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n        "+t._s(e.row.lat?e.row.lat+" N":"鏃犳暟鎹�")+"\n      ")]}}])}),t._v(" "),a("el-table-column",{attrs:{label:"鍓╀綑鐢甸噺",width:"150"},scopedSlots:t._u([{key:"default",fn:function(e){return[e.row.battery?a("el-progress",{attrs:{"text-inside":!0,"stroke-width":18,percentage:e.row.battery,color:t.getBatteryStatusColor(e.row.battery)}}):a("div",[t._v("鏃犳暟鎹�")])]}}])})],1),t._v(" "),a("Pagination",{attrs:{totalCountOrURL:"/terminal/cnt_heartbeatRd",params:{device_lgid:t.lgid}},on:{change:t.handlePageChange}})],1)},staticRenderFns:[]};var Rt={props:["lgid"],components:{Pagination:H},mounted:function(){this.getData()},watch:{lgid:function(){this.getData()}},data:function(){return{data:[],page:1,size:10,editShow:!1,form:{staff:"",m_time:"",detail:""}}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.getData()},getData:function(){var t=this;this.lgid&&this.$getJSON("/terminal/s_deviceMaintainRd",{device_lgid:this.lgid,page:this.page,size:this.size}).then(function(e){t.data=e.data})},addMaintainRd:function(){this.form={},this.form.device_lgid=this.lgid,this.editShow=!0},save:function(){var t=this;this.form.staff&&""!==(this.form.staff=this.form.staff.trim())?this.form.m_time&&""!==(this.form.m_time=this.form.m_time.trim())?this.form.detail&&""!==(this.form.detail=this.form.detail.trim())?this.$confirm("纭娣诲姞缁存姢璁板綍?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).then(function(){t.editShow=!1,t.$getJSON("/terminal/i_deviceMaintainRd",t.form).then(function(e){t.$message.success("娣诲姞鎴愬姛"),t.getData()})}).catch(function(){}):this.$message.error("璇存槑涓嶈兘涓虹┖"):this.$message.error("鏃堕棿涓嶈兘涓虹┖"):this.$message.error("缁存姢浜哄憳涓嶈兘涓虹┖")}}},Pt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"}},[a("el-table-column",{attrs:{prop:"staff",label:"缁存姢浜哄憳",width:180}}),t._v(" "),a("el-table-column",{attrs:{prop:"m_time",label:"缁存姢鏃堕棿",width:180}}),t._v(" "),a("el-table-column",{attrs:{prop:"detail",label:"缁存姢璇存槑"}})],1),t._v(" "),a("div",[a("el-button",{attrs:{type:"text",icon:"el-icon-circle-plus"},on:{click:t.addMaintainRd}},[t._v("娣诲姞缁存姢璁板綍")]),t._v(" "),a("Pagination",{staticStyle:{"margin-top":"-30px"},attrs:{totalCountOrURL:"/terminal/cnt_deviceMaintainRd",params:{device_lgid:t.lgid}},on:{change:t.handlePageChange}})],1),t._v(" "),a("el-dialog",{attrs:{visible:t.editShow,width:"520px",title:"娣诲姞缁存姢璁板綍"},on:{"update:visible":function(e){t.editShow=e}}},[a("el-form",{attrs:{"label-width":"80px"}},[a("el-row",[a("el-col",{attrs:{span:10}},[a("el-form-item",{attrs:{label:"缁存姢浜哄憳"}},[a("el-input",{model:{value:t.form.staff,callback:function(e){t.$set(t.form,"staff",e)},expression:"form.staff"}})],1)],1),t._v(" "),a("el-col",{attrs:{span:14}},[a("el-form-item",{attrs:{label:"缁存姢鏃堕棿"}},[a("el-date-picker",{staticStyle:{width:"100%"},attrs:{type:"datetime",placeholder:"閫夋嫨鏃ユ湡鏃堕棿",format:"yyyy-MM-dd HH:mm:ss","value-format":"yyyy-MM-dd HH:mm:ss"},model:{value:t.form.m_time,callback:function(e){t.$set(t.form,"m_time",e)},expression:"form.m_time"}})],1)],1)],1),t._v(" "),a("el-form-item",{attrs:{label:"缁存姢璇存槑"}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"闂绫诲瀷銆佺幇鍦烘儏鍐点�佺淮鎶ょ粨鏋滅瓑"},model:{value:t.form.detail,callback:function(e){t.$set(t.form,"detail",e)},expression:"form.detail"}})],1),t._v(" "),a("el-form-item",{staticStyle:{"margin-bottom":"0"}},[a("i",{staticStyle:{float:"left","margin-left":"-80px"}},[t._v(t._s("锛堣澶囷細"+t.lgid+"锛�"))]),t._v(" "),a("el-button",{staticStyle:{float:"right"},attrs:{type:"primary"},on:{click:t.save}},[t._v("淇� 瀛�")]),t._v(" "),a("el-button",{staticStyle:{float:"right","margin-right":"5px"},on:{click:function(e){t.editShow=!1}}},[t._v("鍙� 娑�")])],1)],1)],1)],1)},staticRenderFns:[]};var Ot={props:[],mounted:function(){this.dealurl(this.$route.params)},methods:{dealurl:function(t){this.lgid=t.lgid}},components:{DeviceDetail:et,PeriodTaskRd:a("C7Lr")(yt,wt,!1,function(t){a("/pEO")},"data-v-37dcf9cc",null).exports,RealtimeTaskRd:a("C7Lr")(bt,kt,!1,function(t){a("UUKd")},"data-v-43d5463a",null).exports,BlacklistRd:a("C7Lr")(xt,St,!1,function(t){a("S8/c")},"data-v-284011dc",null).exports,AudioRd:a("C7Lr")($t,Ct,!1,function(t){a("FsCN")},"data-v-aada4cb4",null).exports,HeartbeatRd:a("C7Lr")(zt,Tt,!1,function(t){a("zCqr")},"data-v-9367923c",null).exports,DeviceMaintainRd:a("C7Lr")(Rt,Pt,!1,function(t){a("laSh")},"data-v-715b38e0",null).exports},data:function(){return{lgid:null}}},Dt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-card",{staticClass:"box-card"},[a("DeviceDetail",{ref:"deviceDetail",attrs:{lgid:t.lgid}})],1),t._v(" "),a("el-tabs",{attrs:{type:"border-card",tabPosition:"top"}},[a("el-tab-pane",{attrs:{label:"鍛ㄦ湡浠诲姟璁板綍"}},[a("PeriodTaskRd",{ref:"periodTaskRd",attrs:{lgid:t.lgid}})],1),t._v(" "),a("el-tab-pane",{attrs:{label:"鍗虫椂浠诲姟璁板綍"}},[a("RealtimeTaskRd",{ref:"realtimeTaskRd",attrs:{lgid:t.lgid}})],1),t._v(" "),a("el-tab-pane",{attrs:{label:"榛戠數鍙拌褰�"}},[a("BlacklistRd",{ref:"blacklistRd",attrs:{lgid:t.lgid}})],1),t._v(" "),a("el-tab-pane",{attrs:{label:"鐢靛彴褰曢煶璁板綍"}},[a("AudioRd",{ref:"audioRd",attrs:{lgid:t.lgid}})],1),t._v(" "),a("el-tab-pane",{attrs:{label:"鐜板満缁存姢璁板綍"}},[a("DeviceMaintainRd",{ref:"deviceMaintainRd",attrs:{lgid:t.lgid}})],1),t._v(" "),a("el-tab-pane",{attrs:{label:"蹇冭烦璁板綍"}},[a("HeartbeatRd",{ref:"heartbeatRd",attrs:{lgid:t.lgid}})],1)],1)],1)},staticRenderFns:[]};var Nt=a("C7Lr")(Ot,Dt,!1,function(t){a("xuGQ")},"data-v-097e7964",null).exports,It=a("a3Yh"),Lt=a.n(It),Mt=new c.default,Ft={components:{},data:function(){return{dialog:{title:"涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�",visible:!1},conditions:{},data:[]}},mounted:function(){var t=this;Mt.$on("addCondition",function(e){var a=!1;if("device"==e.target){for(var i in e.condition)t.conditions[i]!=e.condition[i]&&(t.conditions[i]=e.condition[i],a=!0);a&&t.getDatas()}})},methods:{getTagType:function(t){switch(t){case"绌洪棽":return"success";case"绂荤嚎":return"info"}},edit:function(t){Mt.$emit("editDevice",{lgid:t})},detail:function(t){this.$router.push({path:"/DeviceInfo/"+t.id})},scan:function(t){var e=this;return k()(w.a.mark(function a(){var i;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return i="姝ゆ搷浣滃皢瀵硅澶� "+t.join(",")+" 涓嬪彂鎵彴浠诲姟锛屾槸鍚︾户缁紵",a.next=3,e.$confirm(i,"鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).catch(function(){});case 3:if(void 0!==a.sent){a.next=6;break}return a.abrupt("return");case 6:e.$getJSON("/apicloud/jpush",{devices:t,command:"scan"}).then(function(t){e.$message.success("浠诲姟涓嬪彂鎴愬姛锛屽嵆鏃朵换鍔″彿涓� "+t.task_id)});case 7:case"end":return a.stop()}},a,e)}))()},record:function(t){var e=this;return k()(w.a.mark(function a(){var i,n,r;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,e.$prompt("璇疯緭鍏ラ鐜囷紙鑼冨洿锛�87-108锛�","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",inputValidator:function(t){var e=Number(t);return isNaN(e)?"璇疯緭鍏ユ暟鍊�":null===t.match(/^[0-9]+([.]{1}[0-9]{1})?$/)?"棰戠巼涓烘暣鏁版垨鑰呮渶澶氫竴浣嶅皬鏁�":e<87||e>108?"鏈夋晥棰戠巼鑼冨洿涓�87-108":void 0},inputErrorMessage:"棰戠巼鏍煎紡涓嶆纭�"}).catch(function(){});case 2:if(void 0!==a.sent){a.next=5;break}return a.abrupt("return");case 5:return a.next=7,e.$prompt("璇疯緭鍏ュ綍闊虫椂闀匡紙绉掞級","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",inputPattern:/^[1-9]\d*$/,inputErrorMessage:"褰曢煶鏃堕暱搴斾负姝f暣鏁�"}).catch(function(){});case 7:if(void 0!==(i=a.sent)){a.next=10;break}return a.abrupt("return");case 10:return n=i.value,r="姝ゆ搷浣滃皢瀵硅澶� "+t.join(",")+" 涓嬪彂褰曢煶浠诲姟锛堥鐜囷細"+freq+"銆佸綍闊虫椂闀匡細"+n+"锛夛紝鏄惁缁х画锛�",a.next=14,e.$confirm(r,"鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).catch(function(){});case 14:if(void 0!==a.sent){a.next=17;break}return a.abrupt("return");case 17:e.$getJSON("/apicloud/jpush",{devices:t,command:"record",extra:{freq:freq,length:n}}).then(function(t){e.$message.success("浠诲姟涓嬪彂鎴愬姛锛屽嵆鏃朵换鍔″彿涓� "+t.task_id)});case 18:case"end":return a.stop()}},a,e)}))()},reboot:function(t){var e=this;return k()(w.a.mark(function a(){var i;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return i="姝ゆ搷浣滃皢浣胯澶� "+t.join(",")+" 閲嶅惎锛屾槸鍚︾户缁紵",a.next=3,e.$confirm(i,"鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).catch(function(){});case 3:if(void 0!==a.sent){a.next=6;break}return a.abrupt("return");case 6:e.$getJSON("/apicloud/jpush",{devices:t,command:"reboot"}).then(function(t){e.$message({message:"閲嶅惎鍛戒护涓嬪彂鎴愬姛",type:"success"})});case 7:case"end":return a.stop()}},a,e)}))()},getDatas:function(){var t=this;this.$getJSON("/terminal/s_devicelst",this.conditions).then(function(e){t.data=e.data,Mt.$emit("data_loaded",{origin:"device",total:e.total})})},getProgressStatus:function(t){return t>=50?"success":t<10?"exception":""}}},Et={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,height:"100%"}},[a("el-table-column",{attrs:{prop:"id",label:"缂栧彿",width:"150"}}),t._v(" "),a("el-table-column",{attrs:{prop:"address",label:"鍦板潃"}}),t._v(" "),a("el-table-column",{attrs:{label:"鐘舵��",width:"80"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-tag",{attrs:{type:t.getTagType(e.row.status),size:"small"}},[t._v(t._s(e.row.status))])]}}])}),t._v(" "),a("el-table-column",{attrs:{prop:"task",label:"浠诲姟鎻忚堪"}}),t._v(" "),a("el-table-column",{attrs:{label:"鍓╀綑鐢甸噺",width:"180"},scopedSlots:t._u([{key:"default",fn:function(e){return[e.row.battery?a("el-progress",{staticStyle:{"margin-right":"30px"},attrs:{"text-inside":!0,"stroke-width":18,percentage:e.row.battery,status:t.getProgressStatus(e.row.battery)}}):a("div",[t._v("鏃犳暟鎹�")])]}}])}),t._v(" "),a("el-table-column",{attrs:{fixed:"right",label:"鎿嶄綔",width:"220"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.detail(e.row)}}},[t._v("璇︾粏")]),t._v(" "),a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.edit(e.row.id)}}},[t._v("缂栬緫")]),t._v(" "),a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.scan([e.row.id])}}},[t._v("鎵彴")]),t._v(" "),a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.record([e.row.id])}}},[t._v("褰曢煶")]),t._v(" "),a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.reboot([e.row.id])}}},[t._v("閲嶅惎")])]}}])})],1)],1)},staticRenderFns:[]};var qt=a("C7Lr")(Ft,Et,!1,function(t){a("GtI9")},"data-v-c33d1918",null).exports,At={data:function(){return{size:10,page:1,total:0}},mounted:function(){var t=this;Mt.$on("data_loaded",function(e){e.origin==t.target&&(t.total=e.total)}),this.onchange()},props:["target"],methods:{handleSizeChange:function(t){this.size=t,this.onchange()},handleCurrentChange:function(t){this.page=t,this.onchange()},onchange:function(){this.target&&Mt.$emit("addCondition",{target:this.target,condition:{page:this.page,size:this.size}})}}},Bt={render:function(){var t=this.$createElement;return(this._self._c||t)("el-pagination",{attrs:{"current-page":this.page,"page-sizes":[10,20,50,100],"page-size":this.size,layout:"total, sizes, prev, pager, next, jumper",total:this.total},on:{"size-change":this.handleSizeChange,"current-change":this.handleCurrentChange}})},staticRenderFns:[]};var Jt=a("C7Lr")(At,Bt,!1,function(t){a("ZmpA")},"data-v-6b046832",null).exports,Vt={data:function(){return{value:""}},mounted:function(){var t=this;Mt.$on("data_loaded",function(e){e.origin==t.target&&(t.total=e.total)})},props:["target"],methods:{onchange:function(){this.target&&Mt.$emit("addCondition",{target:this.target,condition:{keywords:this.value}})}}},Wt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-input",{attrs:{placeholder:"璇疯緭鍏ュ叧閿瓧"},model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},[a("el-button",{attrs:{slot:"append",icon:"el-icon-search"},on:{click:t.onchange},slot:"append"})],1)},staticRenderFns:[]};var Gt=a("C7Lr")(Vt,Wt,!1,function(t){a("HRBR")},"data-v-2c39f46a",null).exports,Ht={beforeDestroy:function(){Mt.$off("editDevice"),Mt.$off("addDevice")},mounted:function(){var t=this;Mt.$on("editDevice",function(e){t.$getJSON("/terminal/s_deviceDetail",{device_lgid:e.lgid}).then(function(e){for(var a in t.data=JSON.parse(s()(t.data_ini)),t.data)e.data[0][a]&&(t.data[a]=e.data[0][a]);t.type="edit",t.title="缂栬緫璁惧",t.allPropEditable=!1,t.visible=!0})}),Mt.$on("addDevice",function(){t.type="add",t.data=JSON.parse(s()(t.data_ini)),t.allPropEditable=!0,t.visible=!0})},data:function(){return{type:"",visible:!1,title:"娣诲姞璁惧",allPropEditable:!0,data:{},data_ini:{log_id:"",phy_id:"",province:"",city:"",county:"",district:"",street:"",address:"",lon:"",lat:"",dtype_source:"瀹ゅ鏃犳簮",dtype_move:"鍥哄畾",dtype_net:"4G",dtype_os:"Android",os_version:"",heartbeat:""},rules:{log_id:[{required:!0,message:"璇疯緭鍏ラ�昏緫缂栧彿",trigger:"blur"}],phy_id:[{required:!0,message:"璇疯緭鍏ョ墿鐞嗙紪鍙�",trigger:"blur"}],lon:[{required:!0,message:"璇疯緭鍏ョ粡搴�",trigger:"blur"},{validator:function(t,e,a){if(e){if(!/^[-]?\d+(\.\d+)?$/.test(e))return a(new Error("鍙兘涓烘暟鍊�"));if(Math.abs(Number(e))>180)return a(new Error("缁忓害鑼冨洿涓�-180鍒�180搴�"));a()}else a()},trigger:"blur"}],lat:[{required:!0,message:"璇疯緭鍏ョ含搴�",trigger:"blur"},{validator:function(t,e,a){if(e){if(!/^[-]?\d+(\.\d+)?$/.test(e))return a(new Error("鍙兘涓烘暟鍊�"));if(Math.abs(Number(e))>90)return a(new Error("缁忓害鑼冨洿涓�-90鍒�90搴�"));a()}else a()},trigger:"blur"}],os_version:[{required:!0,message:"璇疯緭鍏ョ増鏈彿",trigger:"blur"}],heartbeat:[{required:!0,message:"璇疯緭鍏ュ績璺抽棿闅�",trigger:"blur"},{validator:function(t,e,a){if(e){if(!/^[1-9]\d*$/.test(e))return a(new Error("鍙兘涓烘鏁存暟"));a()}else a()},trigger:"blur"}]}}},methods:{save:function(){var t=this;this.$refs.dataForm.validate(function(e){e&&t.$confirm("鏄惁缁х画?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).then(function(){"edit"==t.type?t.$getJSON("/terminal/u_device",t.data).then(function(e){e.success?t.$message.success("淇敼鎴愬姛"):t.$message.error("淇敼澶辫触")}):"add"==t.type&&t.$getJSON("/terminal/i_device",t.data).then(function(e){e.success?t.$message.success("娣诲姞鎴愬姛"):t.$message.error("娣诲姞澶辫触")}),t.visible=!1}).catch(function(){})})}}},jt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-dialog",{attrs:{visible:t.visible,title:t.title,width:"450px"},on:{"update:visible":function(e){t.visible=e}}},[a("el-form",{ref:"dataForm",attrs:{model:t.data,rules:t.rules,"label-position":"right","label-width":"80px",size:"mini"}},[a("el-row",[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"log_id",label:"閫昏緫缂栧彿"}},[a("el-input",{attrs:{disabled:!t.allPropEditable},model:{value:t.data.log_id,callback:function(e){t.$set(t.data,"log_id",e)},expression:"data.log_id"}})],1)],1),t._v(" "),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{prop:"phy_id",label:"鐗╃悊缂栧彿"}},[a("el-input",{attrs:{disabled:!t.allPropEditable},model:{value:t.data.phy_id,callback:function(e){t.$set(t.data,"phy_id",e)},expression:"data.phy_id"}})],1)],1)],1),t._v(" "),a("el-row",[a("el-col",{attrs:{span:10}},[a("el-form-item",{attrs:{prop:"province",label:"璁惧鍦板潃"}},[a("el-input",{attrs:{placeholder:"鐪�"},model:{value:t.data.province,callback:function(e){t.$set(t.data,"province",e)},expression:"data.province"}})],1)],1),t._v(" "),a("el-col",{staticStyle:{"text-align":"center"},attrs:{span:1}},[t._v("-")]),t._v(" "),a("el-col",{attrs:{span:6}},[a("el-form-item",{attrs:{prop:"city","label-width":"0"}},[a("el-input",{attrs:{placeholder:"甯�"},model:{value:t.data.city,callback:function(e){t.$set(t.data,"city",e)},expression:"data.city"}})],1)],1),t._v(" "),a("el-col",{staticStyle:{"text-align":"center"},attrs:{span:1}},[t._v("-")]),t._v(" "),a("el-col",{attrs:{span:6}},[a("el-form-item",{attrs:{prop:"county","label-width":"0"}},[a("el-input",{attrs:{placeholder:"鍘�"},model:{value:t.data.county,callback:function(e){t.$set(t.data,"county",e)},expression:"data.county"}})],1)],1)],1),t._v(" "),a("el-row",[a("el-col",{attrs:{span:10}},[a("el-form-item",{attrs:{prop:"district"}},[a("el-input",{attrs:{placeholder:"鍖�"},model:{value:t.data.district,callback:function(e){t.$set(t.data,"district",e)},expression:"data.district"}})],1)],1),t._v(" "),a("el-col",{staticStyle:{"text-align":"center"},attrs:{span:1}},[t._v("-")]),t._v(" "),a("el-col",{attrs:{span:6}},[a("el-form-item",{attrs:{prop:"street","label-width":"0"}},[a("el-input",{attrs:{placeholder:"琛楅亾"},model:{value:t.data.street,callback:function(e){t.$set(t.data,"street",e)},expression:"data.street"}})],1)],1),t._v(" "),a("el-col",{staticStyle:{"text-align":"center"},attrs:{span:1}},[t._v("-")]),t._v(" "),a("el-col",{attrs:{span:6}},[a("el-form-item",{attrs:{prop:"address","label-width":"0"}},[a("el-input",{attrs:{placeholder:"璇︾粏"},model:{value:t.data.address,callback:function(e){t.$set(t.data,"address",e)},expression:"data.address"}})],1)],1)],1),t._v(" "),a("el-row",[a("el-col",{attrs:{span:13}},[a("el-form-item",{attrs:{prop:"lon",label:"缁忕含鍧愭爣"}},[a("el-input",{attrs:{placeholder:"缁忓害"},model:{value:t.data.lon,callback:function(e){t.$set(t.data,"lon",e)},expression:"data.lon"}})],1)],1),t._v(" "),a("el-col",{staticStyle:{"text-align":"center"},attrs:{span:1}},[t._v("-")]),t._v(" "),a("el-col",{attrs:{span:10}},[a("el-form-item",{attrs:{prop:"lat","label-width":"0"}},[a("el-input",{attrs:{placeholder:"绾害"},model:{value:t.data.lat,callback:function(e){t.$set(t.data,"lat",e)},expression:"data.lat"}})],1)],1)],1),t._v(" "),a("el-row",[a("el-col",{attrs:{span:13}},[a("el-form-item",{attrs:{prop:"dtype_source",label:"璁惧绫诲瀷"}},[a("el-select",{model:{value:t.data.dtype_source,callback:function(e){t.$set(t.data,"dtype_source",e)},expression:"data.dtype_source"}},[a("el-option",{attrs:{value:"瀹ゅ鏃犳簮"}}),t._v(" "),a("el-option",{attrs:{value:"瀹ゅ唴鏈夋簮"}})],1)],1)],1),t._v(" "),a("el-col",{staticStyle:{"text-align":"center"},attrs:{span:1}},[t._v("-")]),t._v(" "),a("el-col",{attrs:{span:10}},[a("el-form-item",{attrs:{prop:"dtype_move","label-width":"0"}},[a("el-select",{staticStyle:{width:"100%"},model:{value:t.data.dtype_move,callback:function(e){t.$set(t.data,"dtype_move",e)},expression:"data.dtype_move"}},[a("el-option",{attrs:{value:"绉诲姩"}}),t._v(" "),a("el-option",{attrs:{value:"鍥哄畾"}})],1)],1)],1)],1),t._v(" "),a("el-row",[a("el-col",{attrs:{span:13}},[a("el-form-item",{attrs:{prop:"dtype_os",label:"鎿嶄綔绯荤粺"}},[a("el-select",{model:{value:t.data.dtype_os,callback:function(e){t.$set(t.data,"dtype_os",e)},expression:"data.dtype_os"}},[a("el-option",{attrs:{value:"Android"}}),t._v(" "),a("el-option",{attrs:{value:"iOS"}})],1)],1)],1),t._v(" "),a("el-col",{staticStyle:{"text-align":"center"},attrs:{span:1}},[t._v("-")]),t._v(" "),a("el-col",{attrs:{span:10}},[a("el-form-item",{attrs:{prop:"os_version","label-width":"0"}},[a("el-input",{attrs:{placeholder:"鐗堟湰鍙�"},model:{value:t.data.os_version,callback:function(e){t.$set(t.data,"os_version","string"==typeof e?e.trim():e)},expression:"data.os_version"}})],1)],1)],1),t._v(" "),a("el-row",[a("el-col",{attrs:{span:12}},[t.allPropEditable?a("el-form-item",{attrs:{prop:"dtype_net",label:"缃戠粶绫诲瀷"}},[a("el-select",{staticStyle:{width:"100%"},model:{value:t.data.dtype_net,callback:function(e){t.$set(t.data,"dtype_net",e)},expression:"data.dtype_net"}},[a("el-option",{attrs:{value:"4G"}}),t._v(" "),a("el-option",{attrs:{value:"WiFi"}})],1)],1):t._e()],1),t._v(" "),a("el-col",{attrs:{span:12}},[t.allPropEditable?a("el-form-item",{attrs:{prop:"heartbeat",label:"蹇冭烦闂撮殧"}},[a("el-input",{model:{value:t.data.heartbeat,callback:function(e){t.$set(t.data,"heartbeat",e)},expression:"data.heartbeat"}},[a("template",{slot:"append"},[t._v("鍒�")])],2)],1):t._e()],1)],1),t._v(" "),a("el-form-item",[a("el-button",{staticStyle:{float:"right"},attrs:{type:"primary"},on:{click:t.save}},[t._v("淇濆瓨")]),t._v(" "),a("el-button",{staticStyle:{float:"right","margin-right":"5px"},on:{click:function(e){t.visible=!1}}},[t._v("鍙� 娑�")])],1)],1)],1)},staticRenderFns:[]};var Ut=a("C7Lr")(Ht,jt,!1,function(t){a("+cB3")},"data-v-0f118dd4",null).exports,Zt=Lt()({components:{Devices:qt,Pagination:Jt,Searcher:Gt,DeviceEdit:Ut},methods:{},data:function(){return{}},mounted:function(){}},"methods",{add:function(){Mt.$emit("addDevice")}}),Kt={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticStyle:{padding:"0",margin:"0",height:"100%"}},[e("el-row",{staticStyle:{height:"55px","padding-bottom":"15px"}},[e("el-col",{attrs:{span:3}},[e("el-button",{attrs:{type:"primary",icon:"el-icon-plus"},on:{click:this.add}},[this._v("娣诲姞璁惧")])],1),this._v(" "),e("el-col",{attrs:{span:6}},[e("searcher",{attrs:{target:"device"}})],1)],1),this._v(" "),e("el-row",{staticStyle:{height:"calc(100% - 55px - 42px)"}},[e("devices")],1),this._v(" "),e("el-row",{staticStyle:{height:"42px"}},[e("pagination",{attrs:{target:"device"}})],1),this._v(" "),e("DeviceEdit")],1)},staticRenderFns:[]};var Xt=a("C7Lr")(Zt,Kt,!1,function(t){a("c+9t")},"data-v-60fd41a0",null).exports,Yt={data:function(){return{returnValue:{}}},mounted:function(){},watch:{},props:["filter"],methods:{handleClear:function(){for(var t in this.returnValue)this.returnValue[t]=null;this.$emit("handleSearch",this.returnValue)},handleSearch:function(){var t=[];for(var e in this.returnValue){var a=this.returnValue[e],i=this.filter[e].type;if(a){if("int"!=i&&"real"!=i&&"string"!=i||(a=a.trim(),this.returnValue[e]=a),""==a)continue;if("int"==i){var n=Number(this.returnValue[e]);isNaN(n)?(this.returnValue[e]=null,t.push(this.filter[e].text)):this.returnValue[e]=parseInt(n).toString()}else if("real"==i){var r=Number(this.returnValue[e]);isNaN(r)&&(this.returnValue[e]=null,t.push(this.filter[e].text))}}}t.length>0?this.$message({duration:2e3,showClose:!0,message:t.join("銆�")+" 鐨勬牸寮忎笉姝g‘",type:"error"}):this.$emit("handleSearch",this.returnValue)}}},Qt={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-form",{attrs:{inline:!0}},[t._l(t.filter,function(e,i){return a("el-form-item",{key:i,attrs:{label:e.text}},["string"==e.type||"int"==e.type||"real"==e.type?a("el-input",{style:"width:"+e.width+";",attrs:{placeholder:e.placeholder},model:{value:t.returnValue[i],callback:function(e){t.$set(t.returnValue,i,e)},expression:"returnValue[key]"}}):"datetimerange"==e.type?a("el-date-picker",{style:"width:"+e.width+";",attrs:{type:"datetimerange","range-separator":"-","start-placeholder":"璧峰鏃ユ湡","end-placeholder":"缁撴潫鏃ユ湡",format:"yyyy-MM-dd HH:mm:ss","value-format":"yyyy-MM-dd HH:mm:ss"},model:{value:t.returnValue[i],callback:function(e){t.$set(t.returnValue,i,e)},expression:"returnValue[key]"}}):"select"==e.type?a("el-select",{style:"width:"+e.width+";",attrs:{filterable:"",clearable:"",placeholder:e.placeholder},model:{value:t.returnValue[i],callback:function(e){t.$set(t.returnValue,i,e)},expression:"returnValue[key]"}},t._l(e.options,function(t,e){return a("el-option",{key:e,attrs:{label:t,value:t}})})):"select2"==e.type?a("el-select",{style:"width:"+e.width+";",attrs:{filterable:"",clearable:"",placeholder:e.placeholder},model:{value:t.returnValue[i],callback:function(e){t.$set(t.returnValue,i,e)},expression:"returnValue[key]"}},t._l(e.options,function(e,i){return a("el-option-group",{key:i,attrs:{label:i}},t._l(e,function(t,e){return a("el-option",{key:e,attrs:{label:t,value:t}})}))})):t._e()],1)}),t._v(" "),a("el-form-item",{staticStyle:{"margin-left":"80px"}},[a("el-button-group",[a("el-button",{staticStyle:{"padding-left":"5px","padding-right":"10px"},attrs:{type:"primary",icon:"el-icon-delete"},on:{click:t.handleClear}},[t._v("娓呯┖")]),t._v(" "),a("el-button",{staticStyle:{"padding-left":"5px","padding-right":"10px"},attrs:{type:"primary",icon:"el-icon-search"},on:{click:t.handleSearch}},[t._v("鎼滅储")])],1)],1)],2)},staticRenderFns:[]};var te=a("C7Lr")(Yt,Qt,!1,function(t){a("RcCq")},"data-v-3356f0a8",null).exports,ee={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-form",{attrs:{"label-position":"right","label-width":"80px",size:"mini"}},[a("el-row",{staticStyle:{margin:"0"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"璁惧鍒楄〃"}},[a("el-select",{attrs:{placeholder:"涓嬫媺鏌ョ湅"},model:{value:t.selectValue,callback:function(e){t.selectValue=e},expression:"selectValue"}},t._l(t.data.device_list,function(t,e){return a("el-option",{key:e,attrs:{label:t,value:t}})}))],1)],1),t._v(" "),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"鎵ц鎿嶄綔"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.command?t.data.command:"鏃犳暟鎹�"))])],1)],1)],1),t._v(" "),"褰曢煶"==t.data.command?a("el-row",{staticStyle:{margin:"0"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"褰曢煶棰戠巼"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.freq_range?t.data.freq_range:"鏃犳暟鎹�"))])],1)],1),t._v(" "),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"褰曢煶鏃堕暱"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.recording_length?t.data.recording_length+"绉�":"鏃犳暟鎹�"))])],1)],1)],1):t._e(),t._v(" "),a("el-row",{staticStyle:{margin:"0"}},[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"鍒涘缓鏃堕棿"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.create_time?t.data.create_time:"鏃犳暟鎹�"))])],1)],1),t._v(" "),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"瀹屾垚鏃堕棿"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.finish_time?t.data.finish_time:"鏃犳暟鎹�"))])],1)],1)],1),t._v(" "),a("el-row",{staticStyle:{margin:"0"}},[a("el-form-item",{attrs:{label:"浠诲姟璇存槑"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.data.detail?t.data.detail:"鏃犺鏄�"))])],1)],1)],1)},staticRenderFns:[]};var ae={props:["task_record_id"],components:{Pagination:H},mounted:function(){this.getData()},watch:{task_record_id:function(){this.getData()}},data:function(){return{data:[],subdata:[],page:1,size:10}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.subdata=this.data.slice(this.size*(this.page-1),this.size*this.page)},getData:function(){var t=this;this.task_record_id&&(console.log(this.task_record_id),this.$getJSON("/task/s_taskResult",{task_record_id:this.task_record_id}).then(function(e){t.data=e.data,t.subdata=t.data.slice(t.size*(t.page-1),t.size*t.page)}))}}},ie={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",size:"mini"}},[a("el-table-column",{attrs:{prop:"frequency",label:"棰戠巼",width:70}}),t._v(" "),a("el-table-column",{attrs:{prop:"signal_strength",label:"淇″彿寮哄害",width:80}}),t._v(" "),a("el-table-column",{attrs:{prop:"upload_time",label:"涓婁紶鏃堕棿",width:160}}),t._v(" "),a("el-table-column",{attrs:{label:"褰曢煶鏂囦欢",width:100},scopedSlots:t._u([{key:"default",fn:function(e){return[e.row.radio_file_path?a("el-button",{attrs:{type:"text"},on:{click:function(a){t.$playAudio(e.row.radio_file_path,e.row.frequency,e.row.upload_time)}}},[t._v("鐐瑰嚮鎾斁")]):[t._v("鏃犳枃浠�")]]}}])}),t._v(" "),a("el-table-column",{attrs:{prop:"recognition",label:"闊抽璇嗗埆"}}),t._v(" "),a("el-table-column",{attrs:{prop:"result_type_name",label:"鍒ゅ埆缁撴灉",width:85}})],1),t._v(" "),a("Pagination",{attrs:{totalCountOrURL:t.data.length,params:null},on:{change:t.handlePageChange}})],1)},staticRenderFns:[]};var ne={components:{Pagination:H,SearchFilter:te,PeriodTaskDetail:Y,RealtimeTaskDetail:a("C7Lr")({props:["realtimeTaskId"],components:{},watch:{realtimeTaskId:function(){this.getData()}},mounted:function(){this.getData()},data:function(){return{selectValue:null,taskVisible:!1,data:{},tagStyle:"background-color:#fff;color:#999;height:22px;line-height:20px;"}},methods:{getData:function(){var t=this;this.realtimeTaskId&&this.$getJSON("/task/s_realtime_tasklst",{options:[{type:"1",name:"id",value:this.realtimeTaskId}]}).then(function(e){t.data=e.data[0]})},parseFreqRange:function(t){return 1==t.length?""+t[0]:t[0]+"-"+t[1]}}},ee,!1,function(t){a("TEeh")},"data-v-12198d98",null).exports,TaskResult:a("C7Lr")(ae,ie,!1,function(t){a("mvJe")},"data-v-39b12d2e",null).exports},mounted:function(){this.getData()},data:function(){return{data:[],queryParams:{orderby:{start_time:"DESC"},page:1,size:10},filterOptions:{task_type:{type:"select",text:"浠诲姟绫诲瀷",width:"120px",placeholder:"璇烽�夋嫨",options:["鍛ㄦ湡浠诲姟","鍗虫椂浠诲姟"]},task_id:{type:"int",text:"浠诲姟鍙�",width:"120px",placeholder:"璇疯緭鍏ヤ换鍔″彿"},start_time:{type:"datetimerange",text:"鎵ц鏃堕棿",width:"400px"}},taskVisible:!1,task_type:"",task_id:0,taskResultVisible:!1,task_record_id:0,task_result_type:"record",scan_result:null}},methods:{SearchWithFilter:function(t){var e=[];t.task_type&&""!=t.task_type&&e.push({type:"1",name:"task_type",value:"'"+t.task_type+"'"}),t.task_id&&""!=t.task_id&&e.push({type:"1",name:"task_id",value:t.task_id}),t.start_time&&t.start_time.length>0&&e.push({type:"4",name:"start_time",value:["'"+t.start_time[0]+"'","'"+t.start_time[1]+"'"]}),this.queryParams.options=e,this.queryParams.operator=" AND ",this.queryParams.page=1,this.$refs.taskPagination.getTotalsize(),this.getData()},showTaskDetail:function(t){this.taskVisible=!0,this.task_type=this.data[t].task_type,this.task_id=this.data[t].task_id},showTaskResult:function(t){var e=this;console.log(t),this.taskResultVisible=!0,"鍗虫椂浠诲姟"==this.data[t].task_type?this.$getJSON("/task/s_PeriodTaskType",{task_id:this.data[t].task_id}).then(function(a){"鎵彴"==a.data[0].command?(e.task_result_type="scan",e.scan_result=e.data[t].scan_result):(e.task_result_type="record",e.task_record_id=e.data[t].id)}):this.task_record_id=this.data[t].id},handlePageChange:function(t){this.queryParams.page=t.page,this.queryParams.size=t.size,this.getData()},getData:function(){var t=this;this.$getJSON("/task/s_taskRdAll",this.queryParams).then(function(e){t.data=e.data})}}},re={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-row",{staticStyle:{height:"55px"}},[a("SearchFilter",{attrs:{filter:t.filterOptions},on:{handleSearch:t.SearchWithFilter}})],1),t._v(" "),a("el-row",{staticStyle:{height:"calc(100% - 55px - 42px)"}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"}},[a("el-table-column",{attrs:{prop:"task_type",label:"浠诲姟绫诲瀷",width:120}}),t._v(" "),a("el-table-column",{attrs:{prop:"task_id",label:"浠诲姟鍙�",width:120}}),t._v(" "),a("el-table-column",{attrs:{prop:"device_lgid",label:"鎵ц璁惧"}}),t._v(" "),a("el-table-column",{attrs:{prop:"start_time",label:"鎵ц鏃堕棿"}}),t._v(" "),a("el-table-column",{attrs:{prop:"finish_time",label:"瀹屾垚鏃堕棿"}}),t._v(" "),a("el-table-column",{attrs:{fixed:"right",label:"鎿嶄綔",width:"160"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.showTaskDetail(e.$index)}}},[t._v("浠诲姟璇︽儏")]),t._v(" "),a("el-button",{attrs:{type:"text",size:"small"},on:{click:function(a){t.showTaskResult(e.$index)}}},[t._v("鎵ц缁撴灉")])]}}])})],1)],1),t._v(" "),a("el-row",{staticStyle:{height:"42px","padding-top":"10px"}},[a("Pagination",{ref:"taskPagination",attrs:{totalCountOrURL:"/task/cnt_taskRdAll",params:t.queryParams},on:{change:t.handlePageChange}})],1),t._v(" "),a("el-dialog",{staticStyle:{padding:"0"},attrs:{title:"浠诲姟璇︽儏",visible:t.taskVisible,"close-on-click-modal":!1,width:"570px"},on:{"update:visible":function(e){t.taskVisible=e}}},["鍛ㄦ湡浠诲姟"==t.task_type?a("PeriodTaskDetail",{ref:"periodTaskDetail",attrs:{"period-task-id":t.task_id}}):t._e(),t._v(" "),"鍗虫椂浠诲姟"==t.task_type?a("RealtimeTaskDetail",{ref:"realtimeTaskDetail",attrs:{realtimeTaskId:t.task_id}}):t._e()],1),t._v(" "),a("el-dialog",{staticStyle:{padding:"0"},attrs:{title:"鎵ц缁撴灉",visible:t.taskResultVisible,"close-on-click-modal":!1,width:"1000px"},on:{"update:visible":function(e){t.taskResultVisible=e}}},["record"==t.task_result_type?a("TaskResult",{ref:"taskResult",attrs:{task_record_id:t.task_record_id}}):"scan"==t.task_result_type?a("el-form",[a("el-form-item",{attrs:{label:"鎵彴棰戠巼"}},[t.scan_result&&t.scan_result.length>0?a("div",t._l(t.scan_result,function(e,i){return a("el-tag",{key:i,staticStyle:{"margin-right":"5px"},attrs:{type:"success"}},[t._v("\n            "+t._s(e)+"\n          ")])})):a("el-tag",[t._v("鏃犳暟鎹�")])],1)],1):t._e()],1)],1)},staticRenderFns:[]};var se=a("C7Lr")(ne,re,!1,function(t){a("/Ct8")},"data-v-10840949",null).exports,oe={components:{Pagination:H,SearchFilter:te},mounted:function(){var t=this;this.$getJSON("/admin/dictionary",{table:"fm_d_result_type"}).then(function(e){var a=[];e.data.forEach(function(t){a.push(t.name)}),t.filterOptions.result_name.options=a,t.$getJSON("/admin/devicesByDistrict",{}).then(function(e){var a={};e.data.forEach(function(t){a[t.district?t.district:"鍏跺畠"]=t.devices.split(",")}),t.filterOptions.log_id.options=a,t.getData()})})},data:function(){return{data:[],queryParams:{page:1,size:10},filterOptions:{result_name:{type:"select",text:"鐢靛彴绫诲瀷",width:"120px",placeholder:"璇烽�夋嫨",options:null},frequency:{type:"real",text:"棰戠巼",width:"110px",placeholder:"璇疯緭鍏ラ鐜�"},log_id:{type:"select2",text:"鎵弿缁堢",width:"160px",placeholder:"璇烽�夋嫨",options:null},upload_time:{type:"datetimerange",text:"涓婁紶鏃堕棿",width:"360px"}}}},methods:{SearchWithFilter:function(t){var e=[];t.result_name&&""!=t.result_name&&e.push({type:"1",name:"result_name",value:"'"+t.result_name+"'"}),t.frequency&&""!=t.frequency&&e.push({type:"1",name:"frequency",value:t.frequency}),t.log_id&&""!=t.log_id&&e.push({type:"1",name:"log_id",value:"'"+t.log_id+"'"}),t.upload_time&&t.upload_time.length>0&&e.push({type:"4",name:"upload_time",value:["'"+t.upload_time[0]+"'","'"+t.upload_time[1]+"'"]}),this.queryParams.options=e,this.queryParams.operator=" AND ",this.queryParams.page=1,this.$refs.srPagination.getTotalsize(),this.getData()},handlePageChange:function(t){this.queryParams.page=t.page,this.queryParams.size=t.size,this.getData()},getData:function(){var t=this;this.$getJSON("/radio/s_scanRecordAll",this.queryParams).then(function(e){t.data=e.data})}}},le={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-row",{staticStyle:{height:"55px"}},[a("SearchFilter",{attrs:{filter:t.filterOptions},on:{handleSearch:t.SearchWithFilter}})],1),t._v(" "),a("el-row",{staticStyle:{height:"calc(100% - 55px - 42px)"}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"}},[a("el-table-column",{attrs:{prop:"result_name",label:"鐢靛彴绫诲瀷",width:100}}),t._v(" "),a("el-table-column",{attrs:{prop:"frequency",label:"棰戠巼",width:60}}),t._v(" "),a("el-table-column",{attrs:{prop:"upload_time",label:"涓婁紶鏃堕棿",width:160}}),t._v(" "),a("el-table-column",{attrs:{prop:"log_id",label:"鎵弿缁堢",width:160}}),t._v(" "),a("el-table-column",{attrs:{prop:"recognition",label:"璇煶璇嗗埆"}}),t._v(" "),a("el-table-column",{attrs:{label:"褰曢煶鏂囦欢",width:100},scopedSlots:t._u([{key:"default",fn:function(e){return[e.row.radio_file_path?a("el-button",{attrs:{type:"text"},on:{click:function(a){t.$playAudio(e.row.radio_file_path,e.row.frequency,e.row.upload_time)}}},[t._v("鐐瑰嚮鎾斁")]):[t._v("鏃犳枃浠�")]]}}])})],1)],1),t._v(" "),a("el-row",{staticStyle:{height:"42px","padding-top":"10px"}},[a("Pagination",{ref:"srPagination",attrs:{totalCountOrURL:"/radio/cnt_scanRecordAll",params:t.queryParams},on:{change:t.handlePageChange}})],1)],1)},staticRenderFns:[]};var ce=a("C7Lr")(oe,le,!1,function(t){a("djKW")},"data-v-e07942c0",null).exports,de=a("zgOS"),he=a.n(de),ue={components:{SelectDeviceStatus:V,BmlHeatmap:de.BmlHeatmap},watch:{},data:function(){return{map:{mapInterface:null,mapInstance:null,scrollWheelZoom:!0,dragging:!0,dbClickZoom:!1,mapStyle:{styleJson:[{featureType:"highway",elementType:"all",stylers:{visibility:"off"}},{featureType:"subway",elementType:"all",stylers:{visibility:"off"}}]}},devices:[],heatmap:{data:[],max:100,radius:30,gradient:{0:"rgb(102, 255, 0)",.995:"rgb(255, 170, 0)",1:"rgb(255, 0, 0)"}}}},created:function(){this.searchDevices()},mounted:function(){},methods:{ready:function(t){this.map.mapInterface=t.BMap,this.map.mapInstance=t.map},changeDeviceStatus:function(t){var e=this;if(this.heatmap.data=[],0==t.length)this.devices.map(function(t){return e.heatmap.data.push({lng:t.lon,lat:t.lat,count:100})});else for(var a=0;a<this.devices.length;a++){var i=this.devices[a];t.in_array(1*i.status)&&this.heatmap.data.push({lng:i.lon,lat:i.lat,count:100})}},searchDevices:function(){var t=this;this.$getJSON("/terminal/s_devicelst_all",{}).then(function(e){t.devices=e.data,t.heatmap.data=[],t.devices.map(function(e){return t.heatmap.data.push({lng:e.lon,lat:e.lat,count:100})})})}}},pe={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("baidu-map",{ref:"mapContainer",staticClass:"map",attrs:{id:"mapContainer",center:"涓婃捣","scroll-wheel-zoom":t.map.scrollWheelZoom,dragging:t.map.dragging,"double-click-zoom":t.map.dbClickZoom,mapStyle:t.map.mapStyle},on:{ready:t.ready}},[a("bm-navigation",{attrs:{anchor:"BMAP_ANCHOR_TOP_RIGHT"}}),t._v(" "),a("bm-control",{attrs:{offset:{width:10,height:10}}},[a("select-device-status",{on:{change:t.changeDeviceStatus}})],1),t._v(" "),a("bml-heatmap",{attrs:{data:t.heatmap.data,max:t.heatmap.max,radius:t.heatmap.radius,gradient:t.heatmap.gradient}})],1)},staticRenderFns:[]};var fe=a("C7Lr")(ue,pe,!1,function(t){a("2sgy")},"data-v-709258f6",null).exports,ge={components:{},watch:{},data:function(){return{map:{mapInterface:null,mapInstance:null,scrollWheelZoom:!0,dragging:!0,dbClickZoom:!1,mapStyle:{}},devices:[],grid:{allGrid:{},currentGrid:{},allSize:{"3 km":.02965769,"5 km":.049429483,"10 km":.098858965},currentLevel:"5 km",currentSize:.049429483,styleOptions:{strokeColor:"#f4f3ef",strokeWeight:1,strokeOpacity:.3,strokeStyle:"solid",fillOpacity:.5}}}},created:function(){var t=this;this.$getJSON("/admin/readFile",{path:"mapStyle/GIS.json",encoding:"utf8"}).then(function(e){return t.map.mapStyle=JSON.parse(e.data)})},mounted:function(){},methods:{ready:function(t){var e=this;return k()(w.a.mark(function a(){return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return e.map.mapInterface=t.BMap,e.map.mapInstance=t.map,a.next=4,e.getGridFromFile("grid/shanghai.json");case 4:e.grid.allGrid=a.sent,e.grid.currentGrid=JSON.parse(s()(e.grid.allGrid["5 km"])),e.drawBoundary("涓婃捣甯�"),e.searchAndDraw();case 8:case"end":return a.stop()}},a,e)}))()},handleSizeChange:function(){this.grid.currentSize=this.grid.allSize[this.grid.currentLevel],this.grid.currentGrid=JSON.parse(s()(this.grid.allGrid[this.grid.currentLevel])),this.setGridDensity(),this.drawGrid()},drawBoundary:function(t){var e=this.map.mapInterface,a=this.map.mapInstance;(new e.Boundary).get(t,function(t){if(0!==t.boundaries.length){var i=[],n=new e.Polygon(t.boundaries[0],{strokeWeight:2,strokeColor:"#ff0000",fillOpacity:.1,enableMassClear:!1});a.addOverlay(n),i=i.concat(n.getPath()),a.setViewport(i)}})},createAndSaveGrid:function(t,e,a,i){var n=this,r={};(new t.Boundary).get(e,function(e){var o=new t.Polygon(e.boundaries[0]).getPath();for(var l in i)r[l]={size:i[l],gridIdx:n.createGridByDistrictPath(o,i[l])};n.$getJSON("/admin/saveFile",{path:a,data:s()(r),encoding:"utf8"})})},createGridByDistrictPath:function(t,e){for(var a=[],i=[],n=t.length,r=0;r<n;r++){var s={};s.row=Math.ceil(t[r].lat/e),s.col=Math.ceil(t[r].lng/e),i.push([s.row,s.col]);var o=(r+1)%n,l={};l.row=Math.ceil(t[o].lat/e),l.col=Math.ceil(t[o].lng/e);var c=l.row-s.row,d=l.col-s.col,h=Math.abs(c),u=Math.abs(d);if(!(h<=1&&u<=1)){for(var p=Math.max(h,u),f=Math.min(h,u),g=[],m=[],v=1;v<p;v++)g.push(v),m.push(Math.floor(v/(p/f)));for(var _=h>=u?[g,m]:[m,g],y=c>0?1:-1,w=d>0?1:-1,b=0;b<_[0].length;b++)i.push([s.row+_[0][b]*y,s.col+_[1][b]*w])}}for(var k=i.map(function(t){return t[0]}),x=k.max(),S=function(t){var e=[];i.map(function(a){a[0]==t&&e.push(a[1])});var n=e.max(),r=e.min();a.push([t,r,n])},$=k.min();$<=x;$++)S($);return a},addGrid:function(t,e,a,i,n){var r="idx_"+e+"_"+a;t[r]?t[r].value+=i:t[r]={value:i,path:[{lng:(a-1)*n,lat:e*n},{lng:a*n,lat:e*n},{lng:a*n,lat:(e-1)*n},{lng:(a-1)*n,lat:(e-1)*n}]}},getGridFromFile:function(t){var e=this;return k()(w.a.mark(function a(){var i,n,r,s,o,l,c,d,h,u;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return i={},a.next=3,e.$getJSON("/admin/readFile",{path:t,encoding:"utf8"});case 3:for(s in n=a.sent,r=JSON.parse(n.data),e.grid.allSize){for(o={},l=r[s].size,c=r[s].gridIdx,d=0;d<c.length;d++)for(h=c[d],u=h[1];u<=h[2];u++)e.addGrid(o,h[0],u,0,l);i[s]=o}return a.abrupt("return",i);case 7:case"end":return a.stop()}},a,e)}))()},searchAndDraw:function(){var t=this;this.$getJSON("/terminal/s_devicelst_all",{}).then(function(e){t.devices=e.data,t.setGridDensity(),t.drawGrid()})},setGridDensity:function(){for(var t=this.grid.currentSize,e=0;e<this.devices.length;e++){var a=this.devices[e],i=Math.ceil(a.lat/t),n=Math.ceil(a.lon/t);this.addGrid(this.grid.currentGrid,i,n,1,t)}},drawGrid:function(){var t=this.map.mapInterface,e=this.map.mapInstance;for(var a in e.clearOverlays(),this.grid.currentGrid){var i=this.grid.currentGrid[a],n=this.grid.styleOptions;n.fillColor="#"+Math.floor((9301*i.value+49297)%233280/233280*16777215).toString(16);var r=new t.Polygon(i.path.map(function(e){return new t.Point(e.lng,e.lat)}),n);if(e.addOverlay(r),0!=i.value){var s={offset:new t.Size(-9,-10),position:new t.Point((i.path[0].lng+i.path[1].lng)/2,(i.path[1].lat+i.path[2].lat)/2)},o=new t.Label(""+i.value,s);o.setStyle({border:0,backgroundColor:"rgba(0,0,0,0)",color:"white",fontSize:"12px",height:"20px",lineHeight:"20px",fontFamily:"寰蒋闆呴粦",textAlign:"center",width:"18px",padding:"0"}),e.addOverlay(o)}}}}},me={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("baidu-map",{ref:"mapContainer",staticClass:"map_ddensity",attrs:{id:"mapContainer",center:"涓婃捣","scroll-wheel-zoom":t.map.scrollWheelZoom,dragging:t.map.dragging,"double-click-zoom":t.map.dbClickZoom,mapStyle:t.map.mapStyle},on:{ready:t.ready}},[a("bm-navigation",{attrs:{anchor:"BMAP_ANCHOR_TOP_RIGHT"}}),t._v(" "),a("bm-control",{attrs:{offset:{width:5,height:5}}},[a("el-tooltip",{attrs:{effect:"dark",content:"璁剧疆缃戞牸澶у皬",placement:"bottom"}},[a("el-select",{staticStyle:{width:"120px"},attrs:{placeholder:"璇烽�夋嫨"},on:{change:t.handleSizeChange},model:{value:t.grid.currentLevel,callback:function(e){t.$set(t.grid,"currentLevel",e)},expression:"grid.currentLevel"}},t._l(t.grid.allSize,function(t,e){return a("el-option",{key:t,attrs:{label:e,value:e}})}))],1)],1)],1)},staticRenderFns:[]};var ve=a("C7Lr")(ge,me,!1,function(t){a("UeIW")},null,null).exports,_e={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"chartTarget",staticStyle:{height:"100%",width:"100%"}},[e(this.is,{tag:"component",attrs:{data:this.chartData,grid:this.grid,toolbox:this.toolbox,settings:this.chartSettings}})],1)},staticRenderFns:[]};var ye=a("C7Lr")({props:["ChartId","chartType"],mounted:function(){var t=this;switch(this.chartType){case"histogram":this.is="ve-map",this.chartSettings={position:"province/shanghai",label:{show:!0,formatter:"{c}",position:"inner"},roam:!0,itemStyle:{normal:{borderColor:"#000"}},zoom:1.2},this.chartData={columns:["琛屾斂鍖�","鏁伴噺"],rows:[{"琛屾斂鍖�":"榛勬郸鍖�","鏁伴噺":18},{"琛屾斂鍖�":"寰愭眹鍖�","鏁伴噺":12},{"琛屾斂鍖�":"闀垮畞鍖�","鏁伴噺":5},{"琛屾斂鍖�":"闈欏畨鍖�","鏁伴噺":2},{"琛屾斂鍖�":"鏅檧鍖�","鏁伴噺":16},{"琛屾斂鍖�":"铏瑰彛鍖�","鏁伴噺":11},{"琛屾斂鍖�":"鏉ㄦ郸鍖�","鏁伴噺":19},{"琛屾斂鍖�":"闂佃鍖�","鏁伴噺":22},{"琛屾斂鍖�":"瀹濆北鍖�","鏁伴噺":14},{"琛屾斂鍖�":"鍢夊畾鍖�","鏁伴噺":5},{"琛屾斂鍖�":"娴︿笢鏂板尯","鏁伴噺":6},{"琛屾斂鍖�":"閲戝北鍖�","鏁伴噺":7},{"琛屾斂鍖�":"鏉炬睙鍖�","鏁伴噺":5},{"琛屾斂鍖�":"闈掓郸鍖�","鏁伴噺":4},{"琛屾斂鍖�":"濂夎搐鍖�","鏁伴噺":13},{"琛屾斂鍖�":"宕囨槑鍖�","鏁伴噺":12}]};break;case"pie":this.is="ve-pie",this.chartSettings={label:{formatter:"{b} : {c}"}},this.chartData={columns:["绫诲瀷","鏁伴噺"],rows:[{"绫诲瀷":"绂荤嚎","鏁伴噺":18},{"绫诲瀷":"浠诲姟鎵ц","鏁伴噺":12},{"绫诲瀷":"绌洪棽","鏁伴噺":5},{"绫诲瀷":"鏁呴殰","鏁伴噺":2}]};break;case"pie_b":this.is="ve-pie",this.chartSettings={label:{formatter:"{b} : {c}"}},this.chartData={columns:["绫诲瀷","鏁伴噺"],rows:[{"绫诲瀷":"棰戠巼90.1","鏁伴噺":8},{"绫诲瀷":"棰戠巼96.5","鏁伴噺":9},{"绫诲瀷":"棰戠巼101.2","鏁伴噺":5},{"绫诲瀷":"棰戠巼105.3","鏁伴噺":6}]};break;case"pie_d":this.is="ve-pie",this.chartSettings={label:{formatter:"{b} : {c}"}},this.chartData={columns:["绫诲瀷","鏁伴噺"],rows:[{"绫诲瀷":"鍏朵粬","鏁伴噺":26},{"绫诲瀷":"闈炴硶鐢靛彴","鏁伴噺":9}]};break;case"pie_c":this.is="ve-pie",this.chartSettings={label:{formatter:"{b} : {c}"}},this.chartData={columns:["绫诲瀷","鏁伴噺"],rows:[{"绫诲瀷":"棰戠巼90.1","鏁伴噺":18},{"绫诲瀷":"棰戠巼96.5","鏁伴噺":9},{"绫诲瀷":"棰戠巼101.2","鏁伴噺":10},{"绫诲瀷":"棰戠巼105.3","鏁伴噺":6}]};break;case"line":this.is="ve-line",this.chartSettings={label:{show:!0,formatter:"{@[1]}"}},this.chartData={columns:["鏃ユ湡","鏁伴噺"],rows:[{"鏃ユ湡":"1","鏁伴噺":10},{"鏃ユ湡":"2","鏁伴噺":9},{"鏃ユ湡":"3","鏁伴噺":13},{"鏃ユ湡":"4","鏁伴噺":10},{"鏃ユ湡":"5","鏁伴噺":15},{"鏃ユ湡":"6","鏁伴噺":11},{"鏃ユ湡":"7","鏁伴噺":19},{"鏃ユ湡":"8","鏁伴噺":13},{"鏃ユ湡":"9","鏁伴噺":12},{"鏃ユ湡":"10","鏁伴噺":16},{"鏃ユ湡":"11","鏁伴噺":5},{"鏃ユ湡":"12","鏁伴噺":9},{"鏃ユ湡":"13","鏁伴噺":6},{"鏃ユ湡":"14","鏁伴噺":3},{"鏃ユ湡":"15","鏁伴噺":8},{"鏃ユ湡":"16","鏁伴噺":13},{"鏃ユ湡":"17","鏁伴噺":11},{"鏃ユ湡":"18","鏁伴噺":13},{"鏃ユ湡":"19","鏁伴噺":9},{"鏃ユ湡":"20","鏁伴噺":9},{"鏃ユ湡":"21","鏁伴噺":13},{"鏃ユ湡":"22","鏁伴噺":4},{"鏃ユ湡":"23","鏁伴噺":14},{"鏃ユ湡":"24","鏁伴噺":3},{"鏃ユ湡":"25","鏁伴噺":16},{"鏃ユ湡":"26","鏁伴噺":13},{"鏃ユ湡":"27","鏁伴噺":19},{"鏃ユ湡":"28","鏁伴噺":13},{"鏃ユ湡":"29","鏁伴噺":12},{"鏃ユ湡":"30","鏁伴噺":16}]};break;case"line_b":this.is="ve-line",this.chartSettings={label:{show:!0,formatter:"{@[1]}"}},this.chartData={columns:["鏃ユ湡","鏁伴噺"],rows:[{"鏃ユ湡":"1","鏁伴噺":10},{"鏃ユ湡":"2","鏁伴噺":5},{"鏃ユ湡":"3","鏁伴噺":13},{"鏃ユ湡":"4","鏁伴噺":8},{"鏃ユ湡":"5","鏁伴噺":15},{"鏃ユ湡":"6","鏁伴噺":9},{"鏃ユ湡":"7","鏁伴噺":14},{"鏃ユ湡":"8","鏁伴噺":15},{"鏃ユ湡":"9","鏁伴噺":10},{"鏃ユ湡":"10","鏁伴噺":6},{"鏃ユ湡":"11","鏁伴噺":9},{"鏃ユ湡":"12","鏁伴噺":10},{"鏃ユ湡":"13","鏁伴噺":6},{"鏃ユ湡":"14","鏁伴噺":3},{"鏃ユ湡":"15","鏁伴噺":0},{"鏃ユ湡":"16","鏁伴噺":0},{"鏃ユ湡":"17","鏁伴噺":11},{"鏃ユ湡":"18","鏁伴噺":11},{"鏃ユ湡":"19","鏁伴噺":10},{"鏃ユ湡":"20","鏁伴噺":7},{"鏃ユ湡":"21","鏁伴噺":11},{"鏃ユ湡":"22","鏁伴噺":6},{"鏃ユ湡":"23","鏁伴噺":12},{"鏃ユ湡":"24","鏁伴噺":5},{"鏃ユ湡":"25","鏁伴噺":13},{"鏃ユ湡":"26","鏁伴噺":11},{"鏃ユ湡":"27","鏁伴噺":14},{"鏃ユ湡":"28","鏁伴噺":13},{"鏃ユ湡":"29","鏁伴噺":16},{"鏃ユ湡":"30","鏁伴噺":14}]};break;default:this.is="ve-line",this.chartData={columns:[],rows:[]}}this.$getJSON("/dbapi/s_s_s",{table:"fm_t_whitelist",fields:"name,frequency"}).then(function(e){t.rows=e})},data:function(){return this.chartSettings={},this.grid={top:10,left:0,right:0,bottom:0},this.toolbox={feature:{saveAsImage:{}}},{is:"ve-line",chartData:{columns:[],rows:[]}}}},_e,!1,function(t){a("z/1m")},"data-v-6f55feaa",null).exports,we=Lt()({components:{Chart:ye},methods:{},data:function(){return{activeName:"first",activeName2:"first",activeName3:"first",activeName4:"first"}}},"methods",{handleClick:function(t,e){console.log(t,e)}}),be={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-row",{attrs:{gutter:20}},[a("el-col",{attrs:{span:12}},[a("el-tabs",{model:{value:t.activeName,callback:function(e){t.activeName=e},expression:"activeName"}},[a("el-tab-pane",{attrs:{label:"璁惧鐘舵�佺粺璁�",name:"first"}},["first"===t.activeName?a("Chart",{attrs:{target:"Chart",ChartId:"b",chartType:"pie"}}):t._e()],1),t._v(" "),a("el-tab-pane",{attrs:{label:"鍚勫尯鍘胯寖鍥村唴璁惧鏁�",name:"second"}},["second"===t.activeName?a("Chart",{attrs:{target:"Chart",ChartId:"a",chartType:"histogram"}}):t._e()],1)],1)],1),t._v(" "),a("el-col",{attrs:{span:12}},[a("el-tabs",{model:{value:t.activeName2,callback:function(e){t.activeName2=e},expression:"activeName2"}},[a("el-tab-pane",{attrs:{label:"鎵�鏈夌數鍙伴鐜囨暟閲�",name:"first"}},["first"===t.activeName2?a("Chart",{attrs:{target:"Chart",ChartId:"c",chartType:"line"}}):t._e()],1),t._v(" "),a("el-tab-pane",{attrs:{label:"闈炴硶鐢靛彴鏁伴噺",name:"second"}},["second"===t.activeName2?a("Chart",{attrs:{target:"Chart",ChartId:"c1",chartType:"line_b"}}):t._e()],1)],1)],1)],1),t._v(" "),a("el-row",{attrs:{gutter:20}},[a("el-col",{attrs:{span:12}},[a("el-tabs",{model:{value:t.activeName3,callback:function(e){t.activeName3=e},expression:"activeName3"}},[a("el-tab-pane",{attrs:{label:"鎵弿鍒伴潪娉曠數鍙伴鐜囩殑璁惧缁熻",name:"first"}},["first"===t.activeName3?a("Chart",{attrs:{target:"Chart",ChartId:"c",chartType:"pie_b"}}):t._e()],1),t._v(" "),a("el-tab-pane",{attrs:{label:"闈炴硶鐢靛彴棰戠巼琚壂鎻忓埌鐨勬鏁扮粺璁�",name:"second"}},["second"===t.activeName3?a("Chart",{attrs:{target:"Chart",ChartId:"c1",chartType:"pie_c"}}):t._e()],1)],1)],1),t._v(" "),a("el-col",{attrs:{span:12}},[a("el-tabs",{model:{value:t.activeName4,callback:function(e){t.activeName4=e},expression:"activeName4"}},[a("el-tab-pane",{attrs:{label:"鏈懆浠诲姟鎵ц鏁伴噺缁熻",name:"first"}},["first"===t.activeName4?a("Chart",{attrs:{target:"Chart",ChartId:"e",chartType:"pie_d"}}):t._e()],1)],1)],1)],1)],1)},staticRenderFns:[]};var ke=a("C7Lr")(we,be,!1,function(t){a("5v20")},"data-v-44a20464",null).exports,xe={components:{},watch:{},data:function(){return{map:{mapInterface:null,mapInstance:null,scrollWheelZoom:!0,dragging:!0,dbClickZoom:!1,mapStyle:{}},radios:[],grid:{allGrid:{},currentGrid:{},allSize:{"3 km":.02965769,"5 km":.049429483,"10 km":.098858965},currentLevel:"5 km",currentSize:.049429483,styleOptions:{strokeColor:"#f4f3ef",strokeWeight:1,strokeOpacity:.3,strokeStyle:"solid",fillOpacity:.5}}}},created:function(){var t=this;this.$getJSON("/admin/readFile",{path:"mapStyle/GIS.json",encoding:"utf8"}).then(function(e){return t.map.mapStyle=JSON.parse(e.data)})},mounted:function(){},methods:{handleClick:function(){var t=this;this.$confirm("璁$畻鍙兘浼氶渶瑕佸嚑鍒嗛挓, 鏄惁缁х画?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"info"}).then(function(){t.$getJSON("/radio/computeRadioLocation",{}).then(function(e){t.$message(e.message)})}).catch(function(){})},ready:function(t){var e=this;return k()(w.a.mark(function a(){return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return e.map.mapInterface=t.BMap,e.map.mapInstance=t.map,a.next=4,e.getGridFromFile("grid/shanghai.json");case 4:e.grid.allGrid=a.sent,e.grid.currentGrid=JSON.parse(s()(e.grid.allGrid["5 km"])),e.drawBoundary("涓婃捣甯�"),e.searchAndDraw();case 8:case"end":return a.stop()}},a,e)}))()},handleSizeChange:function(){this.grid.currentSize=this.grid.allSize[this.grid.currentLevel],this.grid.currentGrid=JSON.parse(s()(this.grid.allGrid[this.grid.currentLevel])),this.setGridDensity(),this.drawGrid()},drawBoundary:function(t){var e=this.map.mapInterface,a=this.map.mapInstance;(new e.Boundary).get(t,function(t){if(0!==t.boundaries.length){var i=[],n=new e.Polygon(t.boundaries[0],{strokeWeight:2,strokeColor:"#ff0000",fillOpacity:.1,enableMassClear:!1});a.addOverlay(n),i=i.concat(n.getPath()),a.setViewport(i)}})},addGrid:function(t,e,a,i,n){var r="idx_"+e+"_"+a;t[r]?t[r].value+=i:t[r]={value:i,path:[{lng:(a-1)*n,lat:e*n},{lng:a*n,lat:e*n},{lng:a*n,lat:(e-1)*n},{lng:(a-1)*n,lat:(e-1)*n}]}},getGridFromFile:function(t){var e=this;return k()(w.a.mark(function a(){var i,n,r,s,o,l,c,d,h,u;return w.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return i={},a.next=3,e.$getJSON("/admin/readFile",{path:t,encoding:"utf8"});case 3:for(s in n=a.sent,r=JSON.parse(n.data),e.grid.allSize){for(o={},l=r[s].size,c=r[s].gridIdx,d=0;d<c.length;d++)for(h=c[d],u=h[1];u<=h[2];u++)e.addGrid(o,h[0],u,0,l);i[s]=o}return a.abrupt("return",i);case 7:case"end":return a.stop()}},a,e)}))()},searchAndDraw:function(){var t=this;this.$getJSON("/radio/s_illegalRadio",{}).then(function(e){t.radios=e.data,t.setGridDensity(),t.drawGrid()})},setGridDensity:function(){for(var t=this.grid.currentSize,e=0;e<this.radios.length;e++){var a=this.radios[e],i=Math.ceil(a.lat/t),n=Math.ceil(a.lon/t);this.addGrid(this.grid.currentGrid,i,n,1,t)}},drawGrid:function(){var t=this.map.mapInterface,e=this.map.mapInstance;for(var a in e.clearOverlays(),this.grid.currentGrid){var i=this.grid.currentGrid[a],n=this.grid.styleOptions;n.fillColor="#"+Math.floor((9301*i.value+49297)%233280/233280*16777215).toString(16);var r=new t.Polygon(i.path.map(function(e){return new t.Point(e.lng,e.lat)}),n);if(e.addOverlay(r),0!=i.value){var s={offset:new t.Size(-9,-10),position:new t.Point((i.path[0].lng+i.path[1].lng)/2,(i.path[1].lat+i.path[2].lat)/2)},o=new t.Label(""+i.value,s);o.setStyle({border:0,backgroundColor:"rgba(0,0,0,0)",color:"white",fontSize:"12px",height:"20px",lineHeight:"20px",fontFamily:"寰蒋闆呴粦",textAlign:"center",width:"18px",padding:"0"}),e.addOverlay(o)}}}}},Se={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("baidu-map",{ref:"mapContainer",staticClass:"map_rdensity",attrs:{id:"mapContainer",center:"涓婃捣","scroll-wheel-zoom":t.map.scrollWheelZoom,dragging:t.map.dragging,"double-click-zoom":t.map.dbClickZoom,mapStyle:t.map.mapStyle},on:{ready:t.ready}},[a("bm-navigation",{attrs:{anchor:"BMAP_ANCHOR_TOP_RIGHT"}}),t._v(" "),a("bm-control",{attrs:{offset:{width:5,height:5}}},[a("el-tooltip",{attrs:{effect:"dark",content:"璁剧疆缃戞牸澶у皬",placement:"bottom"}},[a("el-select",{staticStyle:{width:"120px"},attrs:{placeholder:"璇烽�夋嫨"},on:{change:t.handleSizeChange},model:{value:t.grid.currentLevel,callback:function(e){t.$set(t.grid,"currentLevel",e)},expression:"grid.currentLevel"}},t._l(t.grid.allSize,function(t,e){return a("el-option",{key:t,attrs:{label:e,value:e}})}))],1)],1),t._v(" "),a("bm-control",{attrs:{offset:{width:130,height:5}}},[a("el-button",{on:{click:t.handleClick}},[t._v("璁$畻闈炴硶鐢靛彴浣嶇疆")])],1)],1)},staticRenderFns:[]};var $e=a("C7Lr")(xe,Se,!1,function(t){a("l1n5")},null,null).exports,Ce=a("wdUn"),ze=a.n(Ce),Te={components:{DeviceDetail:et},watch:{getPointShow:function(t){t?this.map.mapInstance.setDefaultCursor("crosshair"):this.map.mapInstance.setDefaultCursor(this.map.mapCursorDefault)}},data:function(){return{tagStyle:"background-color:#fff;color:#999;height:22px;line-height:20px;",map:{mapInterface:null,mapInstance:null,scrollWheelZoom:!0,dragging:!0,dbClickZoom:!1,mapStyle:null,mapCursorDefault:null},icons:{"宸茬‘璁�":{url:"/image/radio_confirmed.png",size:{width:32,height:32}},"寰呯‘璁�":{url:"/image/radio_unconfirmed.png",size:{width:32,height:32}},"宸查�夋嫨":{url:"/image/radio_wave.gif",size:{width:100,height:100}}},radios:[],selectedRadioIdx:"",infowindow_radio:{show:!1,position:{},data:{}},infowindow_device:{show:!1,position:{},device_lgid:null},devices:[],labels:[],getPointShow:!1,getPointLocation:null,isAddingRadioShow:!1,newRadio:{freq:"",location:"",detail:""}}},computed:{selectedRadioPos:function(){return this.radios[this.selectedRadioIdx]?{lng:this.radios[this.selectedRadioIdx].lon,lat:this.radios[this.selectedRadioIdx].lat}:{}}},created:function(){var t=this;this.$getJSON("/admin/readFile",{path:"mapStyle/GIS.json",encoding:"utf8"}).then(function(e){return t.map.mapStyle=JSON.parse(e.data)})},mounted:function(){},methods:{ready:function(t){this.map.mapInterface=t.BMap,this.map.mapInstance=t.map,this.map.mapCursorDefault=t.map.getDefaultCursor(),this.getData()},mapClick:function(t){this.getPointShow&&(this.getPointLocation=t.point.lng+" , "+t.point.lat),this.isAddingRadio&&(this.isAddingRadioShow=!0)},copyLcation:function(){var t=this;this.getPointLocation?this.$copyText(this.getPointLocation).then(function(e){t.$message({message:"鍧愭爣宸插鍒跺埌绮樿创鏉�",type:"success"})},function(e){t.$message({message:"澶嶅埗鍧愭爣鏃跺嚭閿�",type:"error"})}):this.$message({message:"鍧愭爣涓虹┖",type:"info"})},getData:function(){var t=this;this.$getJSON("/radio/s_illegalRadio",{}).then(function(e){t.radios=e.data})},showinfowindow_radio:function(t){this.infowindow_radio.position.lng=t.lon,this.infowindow_radio.position.lat=t.lat,this.infowindow_radio.data=JSON.parse(s()(t)),this.infowindow_radio.show=!0},showinfowindow_device:function(t){this.infowindow_device.position=t.position,this.infowindow_device.device_lgid=t.lgid,this.infowindow_device.show=!0},handleSelectChange:function(t){this.selectedRadioIdx=t,this.center(this.radios[this.selectedRadioIdx])},center:function(t){var e=this.map.mapInterface,a=this.map.mapInstance,i=new e.Point(t.lon,t.lat);a.panTo(i,{noAnimation:!1})},checkSelect:function(){return""!==this.selectedRadioIdx||(this.$message({message:"璇峰湪涓嬫媺妗嗕腑閫夋嫨闈炴硶鐢靛彴",type:"warning"}),!1)},radioInfo:function(){this.checkSelect()&&(this.center(this.radios[this.selectedRadioIdx]),this.showinfowindow_radio(this.radios[this.selectedRadioIdx]))},scanDevice:function(){var t=this;if(this.checkSelect()){var e=this.map.mapInterface,a=this.map.mapInstance;this.devices=[],this.labels=[],this.$getJSON("/radio/radioScanDevices",{freq:this.radios[this.selectedRadioIdx].frequency}).then(function(i){var n=[],r={lng:t.radios[t.selectedRadioIdx].lon,lat:t.radios[t.selectedRadioIdx].lat},s=new e.Point(r.lng,r.lat);n.push(s);for(var o=0;o<i.data.length;o++){var l={};l.lgid=i.data[o].device_lgid;var c={lng:i.data[o].lon,lat:i.data[o].lat};l.position=c;var d=new e.Point(c.lng,c.lat);n.push(d),l.path=[r,c],t.devices.push(l);var h=a.getDistance(s,d),u={};u.content=Math.round(h/100)/10+"KM",u.position={lng:(r.lng+c.lng)/2,lat:(r.lat+c.lat)/2},t.labels.push(u)}a.setViewport(n)})}},changeLocation:function(){var t=this;this.$prompt("璇疯緭鍏ュ潗鏍囷紙鏍煎紡锛氱粡搴�,绾害锛�","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",inputValidator:function(t){var e=(t=t.trim()).split(",");if(2!=e.length)return"鍧愭爣鍊间笉鍚堟硶";if(""==e[0]||""==e[1])return"鍧愭爣鍊间笉鍚堟硶";var a=(e=e.map(function(t){return Number(t)}))[0],i=e[1];return ze()(a)||ze()(i)?"鍧愭爣鍊间笉鍚堟硶":!(a<-180||a>180||i<-90||i>90)||"鍧愭爣鍊间笉鍚堟硶"}}).then(function(e){var a=e.value.split(",").map(function(t){return Number(t)});t.infowindow_radio.data.lon=a[0],t.infowindow_radio.data.lat=a[1]}).catch(function(){})},changeDetail:function(){var t=this;this.$prompt("璇疯緭鍏ユ弿杩�","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷"}).then(function(e){t.infowindow_radio.data.detail=e.value}).catch(function(){})},confirmAndSave:function(){var t=this;this.$confirm("纭骞朵繚瀛樻榛戠數鍙颁俊鎭�, 鏄惁缁х画?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).then(function(){t.$getJSON("/radio/u_illegalRadio",t.infowindow_radio.data).then(function(e){t.$message.success("纭鎴愬姛,璇峰埛鏂伴〉闈互鏇存柊淇℃伅")})}).catch(function(){})},addRadio:function(){var t=this;""!=this.newRadio.freq?""!=this.newRadio.location?2==this.newRadio.location.split(",").length?(this.newRadio.lon=this.newRadio.location.split(",")[0],this.newRadio.lat=this.newRadio.location.split(",")[1],this.$confirm("纭骞朵繚瀛樻榛戠數鍙颁俊鎭�, 鏄惁缁х画?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).then(function(){t.$getJSON("/radio/i_illegalRadio",t.newRadio).then(function(e){t.$message.success("纭鎴愬姛,璇峰埛鏂伴〉闈互鏇存柊淇℃伅"),t.isAddingRadioShow=!1})}).catch(function(){})):this.$message.error("鍧愭爣鏍煎紡涓嶆纭�"):this.$message.error("鍧愭爣涓嶈兘涓虹┖"):this.$message.error("棰戠巼涓嶈兘涓虹┖")}}},Re={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("baidu-map",{ref:"mapContainer",staticClass:"map_confirm",attrs:{id:"mapContainer",center:"涓婃捣","scroll-wheel-zoom":t.map.scrollWheelZoom,dragging:t.map.dragging,"double-click-zoom":t.map.dbClickZoom,mapStyle:t.map.mapStyle},on:{ready:t.ready,click:t.mapClick}},[a("bm-navigation",{attrs:{anchor:"BMAP_ANCHOR_TOP_RIGHT"}}),t._v(" "),a("bm-control",{staticStyle:{display:"inline"},attrs:{offset:{width:5,height:5}}},[a("tr",{attrs:{valign:"top"}},[a("td",{staticStyle:{width:"120px"}},[a("el-select",{attrs:{placeholder:"閫夋嫨棰戠巼",size:"small"},on:{change:t.handleSelectChange},model:{value:t.selectedRadioIdx,callback:function(e){t.selectedRadioIdx=e},expression:"selectedRadioIdx"}},t._l(t.radios,function(t,e){return a("el-option",{key:t.id,attrs:{label:t.frequency+" "+t.confirm,value:e}})}))],1),t._v(" "),a("td",{staticStyle:{width:"350px","padding-left":"7px"}},[a("el-button-group",[a("el-tooltip",{attrs:{effect:"light",content:"鏄剧ず褰撳墠鎵�閫夐潪娉曠數鍙扮殑璇︾粏淇℃伅","hide-after":2e3}},[a("el-button",{attrs:{size:"small",type:"info"},on:{click:function(e){t.radioInfo()}}},[t._v("鐢靛彴淇℃伅")])],1),t._v(" "),a("el-tooltip",{attrs:{effect:"light",content:"鏄剧ず鎵弿鍒版墍閫夌數鍙伴鐜囩殑缁堢璁惧","hide-after":2e3}},[a("el-button",{attrs:{size:"small",type:"primary"},on:{click:function(e){t.scanDevice()}}},[t._v("鎵弿缁堢")])],1),t._v(" "),a("el-tooltip",{attrs:{effect:"light",content:"鎵嬪姩娣诲姞绯荤粺鏈洃娴嬪埌锛屼絾缁忚繃澶栭儴纭鐨勯潪娉曠數鍙�","hide-after":2e3}},[a("el-button",{attrs:{size:"small",type:"success"},on:{click:function(e){t.isAddingRadioShow=!0}}},[t._v("鎵嬪姩娣诲姞")])],1),t._v(" "),a("el-button",{attrs:{size:"small",type:"warning"},on:{click:function(e){t.getPointShow=!0}}},[t._v("鍧愭爣鎷惧彇")])],1)],1),t._v(" "),a("td",{staticStyle:{width:"380px"}},[a("el-input",{directives:[{name:"show",rawName:"v-show",value:t.getPointShow,expression:"getPointShow"}],attrs:{size:"small",placeholder:"鐐瑰嚮鍦板浘鑾峰彇鍧愭爣"},model:{value:t.getPointLocation,callback:function(e){t.getPointLocation=e},expression:"getPointLocation"}},[a("template",{staticStyle:{padding:"0"},slot:"prepend"},[t._v("褰撳墠鍧愭爣锛�")]),t._v(" "),a("template",{slot:"append"},[a("el-button",{staticStyle:{padding:"0 8px"},attrs:{size:"small",type:"primary"},on:{click:function(e){t.copyLcation()}}},[t._v("澶嶅埗")]),t._v(" "),a("el-button",{staticStyle:{padding:"0 8px"},attrs:{size:"small",type:"primary"},on:{click:function(e){t.getPointShow=!1}}},[t._v("鍏抽棴")])],1)],2)],1)])]),t._v(" "),t._l(t.radios,function(e){return a("bm-marker",{key:e.id,attrs:{icon:t.icons[e.confirm],title:String(e.frequency),position:{lng:e.lon,lat:e.lat}},on:{click:function(a){t.showinfowindow_radio(e)}}})}),t._v(" "),a("bm-info-window",{attrs:{title:"鐢靛彴淇℃伅",show:t.infowindow_radio.show,position:t.infowindow_radio.position,width:380},on:{open:function(e){t.infowindow_radio.show=!0},close:function(e){t.infowindow_radio.show=!1}}},[a("el-form",{attrs:{size:"medium"}},[a("el-row",[a("el-col",{attrs:{span:6}},[a("el-form-item",{attrs:{label:"棰戠巼"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.infowindow_radio.data.frequency))])],1)],1),t._v(" "),a("el-col",{attrs:{span:7}},[a("el-form-item",{attrs:{label:"鐘舵��"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.infowindow_radio.data.confirm))])],1)],1),t._v(" "),a("el-col",{attrs:{span:11}},[a("el-tooltip",{attrs:{effect:"light",content:"鐢靛彴浣嶇疆璁$畻鎴栫‘璁ゆ椂闂�",placement:"bottom","hide-after":2e3}},[a("el-form-item",{attrs:{label:"鏃堕棿"}},[a("el-tag",{style:t.tagStyle},[t._v(t._s(t.infowindow_radio.data.time))])],1)],1)],1)],1),t._v(" "),a("el-row",[a("el-form-item",{attrs:{label:"鍧愭爣"}},[a("el-tag",{style:t.tagStyle+"width:338px;"},[t._v(t._s(t.infowindow_radio.data.lon+" , "+t.infowindow_radio.data.lat))])],1)],1),t._v(" "),a("el-row",[a("el-form-item",{attrs:{label:"鎻忚堪"}},[a("el-tag",{style:t.tagStyle+"width:338px;"},[t._v(t._s(t.infowindow_radio.data.detail))])],1)],1),t._v(" "),a("el-form-item",[a("el-button",{attrs:{plain:"",size:"mini",type:"primary"},on:{click:function(e){t.changeLocation()}}},[t._v("淇敼鍧愭爣")]),t._v(" "),a("el-button",{attrs:{plain:"",size:"mini",type:"primary"},on:{click:function(e){t.changeDetail()}}},[t._v("淇敼鎻忚堪")]),t._v(" "),a("el-button",{attrs:{plain:"",size:"mini",type:"primary"},on:{click:function(e){t.confirmAndSave()}}},[t._v("纭骞朵繚瀛�")])],1)],1)],1),t._v(" "),a("el-dialog",{attrs:{title:"鎵嬪姩娣诲姞闈炴硶鐢靛彴",visible:t.isAddingRadioShow,width:"500px","close-on-click-modal":!1},on:{"update:visible":function(e){t.isAddingRadioShow=e}}},[a("el-form",{attrs:{size:"medium","label-width":"50px"}},[a("el-row",[a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"棰戠巼"}},[a("el-input",{attrs:{size:"small"},model:{value:t.newRadio.freq,callback:function(e){t.$set(t.newRadio,"freq",e)},expression:"newRadio.freq"}})],1)],1),t._v(" "),a("el-col",{attrs:{span:12}},[a("el-form-item",{attrs:{label:"鍧愭爣"}},[a("el-input",{attrs:{size:"small",placeholder:"缁忕含搴﹀潗鏍囷紝閫楀彿鍒嗛殧"},model:{value:t.newRadio.location,callback:function(e){t.$set(t.newRadio,"location",e)},expression:"newRadio.location"}})],1)],1)],1),t._v(" "),a("el-form-item",{attrs:{label:"鎻忚堪"}},[a("el-input",{attrs:{size:"small"},model:{value:t.newRadio.detail,callback:function(e){t.$set(t.newRadio,"detail",e)},expression:"newRadio.detail"}})],1),t._v(" "),a("el-form-item",{staticStyle:{"padding-top":"10px"}},[a("el-button",{attrs:{plain:"",size:"medium",type:"primary"},on:{click:function(e){t.addRadio()}}},[t._v("纭")]),t._v(" "),a("el-button",{attrs:{plain:"",size:"medium",type:"primary"},on:{click:function(e){t.isAddingRadioShow=!1}}},[t._v("鍙栨秷")])],1)],1)],1),t._v(" "),a("bm-info-window",{attrs:{title:"璁惧淇℃伅",show:t.infowindow_device.show,position:t.infowindow_device.position,width:430},on:{open:function(e){t.infowindow_device.show=!0},close:function(e){t.infowindow_device.show=!1}}},[a("device-detail",{attrs:{lgid:t.infowindow_device.device_lgid}})],1),t._v(" "),a("bm-marker",{attrs:{position:t.selectedRadioPos,icon:t.icons["宸查�夋嫨"],zIndex:0}}),t._v(" "),t._l(t.devices,function(e){return a("bm-marker",{key:"m"+e.lgid,attrs:{position:e.position,title:e.lgid},on:{click:function(a){t.showinfowindow_device(e)}}})}),t._v(" "),t._l(t.devices,function(t){return a("bm-polyline",{key:"p"+t.lgid,attrs:{path:t.path,"stroke-color":"red","stroke-opacity":.5,"stroke-weight":2}})}),t._v(" "),t._l(t.labels,function(t,e){return a("bm-label",{key:"l"+e,attrs:{content:t.content,position:t.position,labelStyle:{color:"red",fontSize:"20px",fontWeight:"bold",backgroundColor:"rgba(0,0,0,0)",border:0},offset:{width:-27,height:-12}}})})],2)},staticRenderFns:[]};var Pe=a("C7Lr")(Te,Re,!1,function(t){a("bo19")},null,null).exports,Oe={components:{Pagination:H},mounted:function(){this.getData()},data:function(){return{data:[],keywords:null,page:1,size:10,selectd:[],form:{},showEdit:!1,dialogTitle:"",isEditNew:!1}},methods:{handlePageChange:function(t){this.page=t.page,this.size=t.size,this.getData()},getData:function(){var t=this,e={page:this.page,size:this.size};this.keywords&&(e.keywords=this.keywords.trim()),this.$getJSON("/radio/s_keywords",e).then(function(e){t.data=e.data})},handleSelectionChange:function(t){this.selectd=t},addKeyword:function(){this.isEditNew=!0,this.form={code:"",name:"",english:""},this.showEdit=!0,this.dialogTitle="娣诲姞鍏抽敭璇�"},deleteKeyword:function(){var t=this;0!=this.selectd.length?this.$confirm("纭鍒犻櫎"+this.selectd.length+"鏉″叧閿瘝?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).then(function(){var e=[];t.selectd.map(function(t){return e.push(t.id)}),t.$getJSON("/radio/d_keywords",{ids:e}).then(function(e){t.$message.success("鍒犻櫎鎴愬姛"),t.getData()})}).catch(function(){}):this.$message("鏈�夋嫨浠讳綍鍏抽敭璇�")},edit:function(t){this.isEditNew=!1,this.form=JSON.parse(s()(this.data[t])),this.showEdit=!0,this.dialogTitle="缂栬緫鍏抽敭璇�"},save:function(){var t=this;this.form.name&&""!==(this.form.name=this.form.name.trim())?this.isEditNew?this.$confirm("纭娣诲姞鍏抽敭璇�?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).then(function(){t.showEdit=!1,t.$getJSON("/radio/i_keywords",t.form).then(function(e){t.$message.success("娣诲姞鎴愬姛"),t.page=1,t.getData()})}).catch(function(){}):this.$confirm("纭淇敼鍏抽敭璇�?","鎻愮ず",{confirmButtonText:"纭畾",cancelButtonText:"鍙栨秷",type:"warning"}).then(function(){t.showEdit=!1,t.$getJSON("/radio/u_keywords",t.form).then(function(e){t.showEdit=!1,t.$message.success("淇敼鎴愬姛"),t.page=1,t.getData()})}).catch(function(){}):this.$message("鍏抽敭璇嶄笉鑳戒负绌�")},search:function(){this.getData()}}},De={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-row",{staticStyle:{height:"55px"}},[a("el-form",{attrs:{inline:""}},[a("el-form-item",[a("el-button-group",[a("el-button",{attrs:{type:"primary",icon:"el-icon-plus"},on:{click:t.addKeyword}}),t._v(" "),a("el-button",{attrs:{type:"primary",icon:"el-icon-delete"},on:{click:t.deleteKeyword}})],1)],1),t._v(" "),a("el-form-item",[a("el-input",{staticStyle:{"margin-left":"150px"},attrs:{placeholder:"杈撳叆瑕佹煡璇㈢殑鍏抽敭瀛�"},model:{value:t.keywords,callback:function(e){t.keywords=e},expression:"keywords"}},[a("el-button",{attrs:{slot:"append",icon:"el-icon-search"},on:{click:t.search},slot:"append"})],1)],1)],1)],1),t._v(" "),a("el-row",{staticStyle:{height:"calc(100% - 55px - 42px)"}},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.data,border:"",height:"100%"},on:{"selection-change":t.handleSelectionChange}},[a("el-table-column",{attrs:{type:"selection",width:"35"}}),t._v(" "),a("el-table-column",{attrs:{prop:"code",label:"缂栫爜"}}),t._v(" "),a("el-table-column",{attrs:{prop:"name",label:"鍏抽敭璇�"}}),t._v(" "),a("el-table-column",{attrs:{prop:"english",label:"鑻辨枃"}}),t._v(" "),a("el-table-column",{attrs:{fixed:"right",label:"鎿嶄綔",width:"130"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text"},on:{click:function(a){t.edit(e.$index)}}},[t._v("缂栬緫")])]}}])})],1)],1),t._v(" "),a("el-row",{staticStyle:{height:"42px","padding-top":"10px"}},[a("Pagination",{ref:"srPagination",attrs:{totalCountOrURL:"/radio/s_keywords",params:this.keywords?{keywords:this.keywords.trim()}:{}},on:{change:t.handlePageChange}})],1),t._v(" "),a("el-dialog",{attrs:{visible:t.showEdit,width:"520px",title:t.dialogTitle},on:{"update:visible":function(e){t.showEdit=e}}},[a("el-form",{attrs:{"label-width":"60px","label-position":"left"}},[a("el-form-item",{attrs:{label:"缂栫爜"}},[a("el-input",{model:{value:t.form.code,callback:function(e){t.$set(t.form,"code",e)},expression:"form.code"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"鍏抽敭璇�"}},[a("el-input",{model:{value:t.form.name,callback:function(e){t.$set(t.form,"name",e)},expression:"form.name"}})],1),t._v(" "),a("el-form-item",{attrs:{label:"鑻辨枃"}},[a("el-input",{model:{value:t.form.english,callback:function(e){t.$set(t.form,"english",e)},expression:"form.english"}})],1),t._v(" "),a("el-form-item",{staticStyle:{"padding-left":"250px","margin-bottom":"0"}},[a("el-button",{on:{click:function(e){t.showEdit=!1}}},[t._v("鍙� 娑�")]),t._v(" "),a("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("淇� 瀛�")])],1)],1)],1)],1)},staticRenderFns:[]};var Ne=a("C7Lr")(Oe,De,!1,function(t){a("vJMz")},"data-v-4d4cd6c3",null).exports,Ie={components:{},watch:{},data:function(){return{BMap:null,map:null,mapStyle:{styleJson:[{featureType:"highway",elementType:"all",stylers:{weight:"0.1",visibility:"on"}}]},dataType:"",data:[]}},created:function(){},mounted:function(){},methods:{ready:function(t){this.BMap=t.BMap,this.map=t.map,this.dealURLParams(),this.setViewport()},dealURLParams:function(){var t=this,e=this.$route.query;this.data=[],this.dataType=e.type,"point"==this.dataType&&(this.data=this.parsePnts(e.data)),"polyline"!=this.dataType&&"polygon"!=this.dataType||(this.data=e.data.split(";").map(function(e){return t.parsePnts(e)})),console.log(this.data)},parsePnts:function(t){for(var e=[],a=t.split(","),i=0;i<a.length;i++){var n=a[i].split("-");e.push({lng:Number(n[0]),lat:Number(n[1])})}return e},setViewport:function(){for(var t=[],e=0;e<this.data.length;e++)if(Array.isArray(this.data[e]))for(var a=0;a<this.data[e].length;a++)t.push(new this.BMap.Point(this.data[e][a].lng,this.data[e][a].lat));else t.push(new this.BMap.Point(this.data[e].lng,this.data[e].lat));this.map.setViewport(t)}}},Le={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("baidu-map",{ref:"mapContainer",staticClass:"map",attrs:{id:"mapContainer",center:"涓婃捣","scroll-wheel-zoom":!0,mapStyle:t.mapStyle},on:{ready:t.ready}},[a("bm-navigation",{attrs:{anchor:"BMAP_ANCHOR_TOP_RIGHT"}}),t._v(" "),a("bm-scale",{attrs:{anchor:"BMAP_ANCHOR_BOTTOM_LEFT"}}),t._v(" "),a("bm-map-type",{attrs:{"map-types":["BMAP_NORMAL_MAP","BMAP_SATELLITE_MAP"],anchor:"BMAP_ANCHOR_BOTTOM_RIGHT"}}),t._v(" "),t._l(t.data,function(e,i){return"point"==t.dataType?a("bm-marker",{key:i,attrs:{position:e}}):"polyline"==t.dataType?t._l(t.data,function(t,e){return a("bm-polyline",{key:e,attrs:{path:t}})}):"polygon"==t.dataType?t._l(t.data,function(t,e){return a("bm-polygon",{key:e,attrs:{path:t}})}):t._e()})],2)},staticRenderFns:[]};var Me=a("C7Lr")(Ie,Le,!1,function(t){a("P7Xu")},null,null).exports,Fe={components:{},watch:{month:function(){this.getTaskStat(),this.c_task.title.text="妫�娴嬩换鍔$粺璁★紙"+this.month.split("-")[0]+"骞�"+this.month.split("-")[1]+"鏈堬級"}},data:function(){return{c_device:{title:{text:"缁堢鏁伴噺缁熻"},grid:{x:40},tooltip:{trigger:"axis",axisPointer:{type:"shadow",crossStyle:{color:"#999"}}},toolbox:{feature:{dataView:{show:!0,readOnly:!1},saveAsImage:{show:!0}}},legend:{},xAxis:[{type:"category",data:["璁惧鐘舵��"],axisPointer:{type:"shadow"}}],yAxis:[{type:"value",name:"鍙版暟",minInterval:1}],series:[]},c_task:{title:{text:"妫�娴嬩换鍔$粺璁�"},grid:{x:40,y2:30},tooltip:{trigger:"axis",axisPointer:{type:"shadow",crossStyle:{color:"#999"}}},toolbox:{feature:{dataView:{show:!0,readOnly:!1},saveAsImage:{show:!0}}},legend:{},xAxis:[{name:"鏃�",type:"category",data:[],axisPointer:{type:"shadow"}}],yAxis:[{type:"value",name:"涓暟",minInterval:1}],series:[{name:"鍛ㄦ湡浠诲姟",type:"bar",data:[],label:{show:!0,formatter:function(t){return t.value>0?t.value:""},position:"top"}},{name:"鍗虫椂浠诲姟",type:"bar",data:[],label:{show:!0,formatter:function(t){return t.value>0?t.value:""},position:"top"}}]},month:"0000-00"}},mounted:function(){var t=this;this.$getJSON("/stat/device_status",{}).then(function(e){for(var a=0;a<e.data.length;a++)t.c_device.series.push({name:e.data[a].name,type:"bar",data:[e.data[a].cnt],label:{show:!0,formatter:"{c}",position:"top"}})});var e=new Date;this.month=e.getFullYear()+"-"+(e.getMonth()+1)},methods:{getTaskStat:function(){for(var t=this,e=this.month.split("-").map(function(t){return Number(t)}),a=new Date(e[0],e[1],0).getDate(),i=[],n=[],r=[],s=0;s<a;s++)i[s]=s+1,n[s]=0,r[s]=0;this.$getJSON("/stat/task",{yearMonth:this.month}).then(function(e){for(var a=0;a<e.data.length;a++){var s=e.data[a];"鍛ㄦ湡浠诲姟"==s.task_type?n[s.day-1]=s.num:r[s.day-1]=s.num}t.c_task.xAxis[0].data=i,t.c_task.series[0].data=n,t.c_task.series[1].data=r})}}},Ee={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-row",{staticStyle:{height:"50%"}},[a("el-col",{staticStyle:{height:"100%","text-align":"center"},attrs:{span:10}},[a("chart",{staticStyle:{width:"100%",height:"100%"},attrs:{"auto-resize":!0,options:t.c_device}})],1)],1),t._v(" "),a("el-row",{staticStyle:{height:"50%",position:"relative"}},[a("el-col",{staticStyle:{height:"100%"},attrs:{span:24}},[a("chart",{staticStyle:{width:"100%",height:"calc(100% - 30px)"},attrs:{"auto-resize":!0,options:t.c_task}}),t._v(" "),a("div",{staticStyle:{height:"30px","padding-left":"30px"}},[t._v("\n        閫夋嫨缁熻鏃堕棿娈碉紙鎸夋湀锛夛細\n        "),a("el-date-picker",{staticStyle:{width:"110px"},attrs:{type:"month",format:"yyyy-MM","value-format":"yyyy-MM",placeholder:"閫夋嫨鏈�",size:"mini",clearable:!1},model:{value:t.month,callback:function(e){t.month=e},expression:"month"}})],1)],1)],1)],1)},staticRenderFns:[]};var qe=a("C7Lr")(Fe,Ee,!1,function(t){a("JvBR")},"data-v-45d98372",null).exports,Ae={components:{},watch:{month:function(){this.getTaskStat()}},data:function(){return{options_dis:{title:{text:"闈炴硶鐢靛彴缁熻"},grid:{x:40,y2:30},tooltip:{trigger:"axis",axisPointer:{type:"shadow",crossStyle:{color:"#999"}}},toolbox:{feature:{dataView:{show:!0,readOnly:!1},saveAsImage:{show:!0}}},xAxis:[{name:"鏃�",type:"category",data:[],axisPointer:{type:"shadow"}}],yAxis:[{type:"value",name:"涓暟",minInterval:1}],series:[{name:"闈炴硶鐢靛彴",type:"bar",data:[],label:{show:!0,formatter:function(t){return t.value>0?t.value:""},position:"top"},itemStyle:{normal:{color:function(t){return"#"+Math.floor((9301*t.value+49297)%233280/233280*16777215).toString(16)}}}}]},options_all:{title:{text:"闈炴硶鐢靛彴鐩戞祴涓婃姤娆℃暟缁熻"},grid:{x:40,y2:30},tooltip:{trigger:"axis",axisPointer:{type:"shadow",crossStyle:{color:"#999"}}},toolbox:{feature:{dataView:{show:!0,readOnly:!1},saveAsImage:{show:!0}}},xAxis:[{name:"鏃�",type:"category",data:[],axisPointer:{type:"shadow"}}],yAxis:[{type:"value",name:"娆℃暟",minInterval:1}],series:[{name:"闈炴硶鐢靛彴涓婃姤娆℃暟",type:"bar",data:[],label:{show:!0,formatter:function(t){return t.value>0?t.value:""},position:"top"},itemStyle:{normal:{color:function(t){return"#"+Math.floor((9301*t.value+49297)%233280/233280*16777215).toString(16)}}}}]},month:"0000-00"}},mounted:function(){var t=new Date;this.month=t.getFullYear()+"-"+(t.getMonth()+1),this.getTaskStat()},methods:{getTaskStat:function(){for(var t=this,e=this.month.split("-").map(function(t){return Number(t)}),a=new Date(e[0],e[1],0).getDate(),i=[],n=[],r=[],s=0;s<a;s++)i[s]=s+1,n[s]=0,r[s]=0;this.options_dis.xAxis[0].data=i,this.options_all.xAxis[0].data=i,this.$getJSON("/stat/illegal_radio_distinct",{yearMonth:this.month}).then(function(e){for(var a=0;a<e.data.length;a++){var i=e.data[a];n[i.day-1]=i.num}t.options_dis.series[0].data=n,t.options_dis.title.text="闈炴硶鐢靛彴缁熻锛�"+t.month.split("-")[0]+"骞�"+t.month.split("-")[1]+"鏈堬級"}),this.$getJSON("/stat/illegal_radio_all",{yearMonth:this.month}).then(function(e){for(var a=0;a<e.data.length;a++){var i=e.data[a];r[i.day-1]=i.num}t.options_all.series[0].data=r,t.options_all.title.text="闈炴硶鐢靛彴鐩戞祴涓婃姤娆℃暟缁熻锛�"+t.month.split("-")[0]+"骞�"+t.month.split("-")[1]+"鏈堬級"})}}},Be={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticStyle:{height:"100%"}},[a("el-row",{staticStyle:{height:"50%"}},[a("el-col",{staticStyle:{height:"100%","text-align":"center"},attrs:{span:24}},[a("chart",{staticStyle:{width:"100%",height:"100%"},attrs:{"auto-resize":!0,options:t.options_dis}})],1)],1),t._v(" "),a("el-row",{staticStyle:{height:"50%",position:"relative"}},[a("el-col",{staticStyle:{height:"100%"},attrs:{span:24}},[a("chart",{staticStyle:{width:"100%",height:"calc(100% - 30px)"},attrs:{"auto-resize":!0,options:t.options_all}}),t._v(" "),a("div",{staticStyle:{height:"30px","padding-left":"30px"}},[t._v("\n        閫夋嫨缁熻鏃堕棿娈碉紙鎸夋湀锛夛細\n        "),a("el-date-picker",{staticStyle:{width:"110px"},attrs:{type:"month",format:"yyyy-MM","value-format":"yyyy-MM",placeholder:"閫夋嫨鏈�",size:"mini",clearable:!1},model:{value:t.month,callback:function(e){t.month=e},expression:"month"}})],1)],1)],1)],1)},staticRenderFns:[]};var Je=a("C7Lr")(Ae,Be,!1,function(t){a("jZLI")},"data-v-7e340f4f",null).exports,Ve={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticStyle:{height:"100%"}})},staticRenderFns:[]};var We=a("C7Lr")({components:{},data:function(){return{}}},Ve,!1,function(t){a("M2gc")},"data-v-3e604209",null).exports,Ge={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticStyle:{height:"100%"}})},staticRenderFns:[]};var He=a("C7Lr")({components:{},data:function(){return{}}},Ge,!1,function(t){a("wc9D")},"data-v-10a1c18f",null).exports,je={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticStyle:{height:"100%"}})},staticRenderFns:[]};var Ue=a("C7Lr")({components:{},data:function(){return{}}},je,!1,function(t){a("vk+F")},"data-v-7daa3554",null).exports,Ze={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticStyle:{height:"100%"}})},staticRenderFns:[]};var Ke=a("C7Lr")({components:{},data:function(){return{}}},Ze,!1,function(t){a("WCPt")},"data-v-0d7fd088",null).exports,Xe={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticStyle:{height:"100%"}})},staticRenderFns:[]};var Ye=a("C7Lr")({components:{},data:function(){return{}}},Xe,!1,function(t){a("MOnc")},"data-v-57dbe7ca",null).exports;c.default.use(u.a);var Qe=new u.a({routes:[{path:"/",name:"Login",component:g},{path:"/MapAPI",name:"MapAPI",component:Me},{path:"/main",name:"Main",component:R,children:[{path:"/",component:ke},{path:"/WhiteList",component:B},{path:"/Map",component:nt},{path:"/PeriodTask",component:mt},{path:"/Device",component:Xt},{path:"/DeviceInfo/:lgid",component:Nt},{path:"/TaskRdAll",component:se},{path:"/ScanRdAll",component:ce},{path:"/DeviceHeatmap",component:fe},{path:"/DeviceGridDensity",component:ve},{path:"/IllegalRadioGridDensity",component:$e},{path:"/IllegalRadioConfirm",component:Pe},{path:"/Keywords",component:Ne},{path:"/TaskStat",component:qe},{path:"/RadioStat",component:Je},{path:"/RunningStat",component:We},{path:"/OuterWarning",component:He},{path:"/InnerWarning",component:Ue},{path:"/ReportTemplate",component:Ke},{path:"/ReportDownload",component:Ye}]}]}),ta=a("t+b9"),ea=a.n(ta),aa=(a("/Hv2"),a("Uy1T"),a("aozt")),ia=a.n(aa),na=a("+BxT"),ra=a.n(na),sa=a("dBt9"),oa=a.n(sa),la=a("KPKd"),ca=a.n(la),da=a("8zml"),ha=a.n(da),ua=a("IHPB"),pa=a.n(ua),fa=a("/MtV"),ga=a.n(fa),ma=a("yRAu"),va=a.n(ma),_a=a("uF+G"),ya=["legendselectchanged","legendselected","legendunselected","legendunscroll","datazoom","datarangeselected","timelinechanged","timelineplaychanged","restore","dataviewchanged","magictypechanged","geoselectchanged","geoselected","geounselected","pieselectchanged","pieselected","pieunselected","mapselectchanged","mapselected","mapunselected","axisareaselected","focusnodeadjacency","unfocusnodeadjacency","brush","brushselected","rendered","finished","click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"],wa={props:{options:Object,theme:[String,Object],initOptions:Object,group:String,autoResize:Boolean,watchShallow:Boolean,manualUpdate:Boolean},data:function(){return{lastArea:0}},watch:{group:function(t){this.chart.group=t}},methods:{mergeOptions:function(t,e,a){this.manualUpdate&&(this.manualOptions=t),this.chart?this.delegateMethod("setOption",t,e,a):this.init()},appendData:function(t){this.delegateMethod("appendData",t)},resize:function(t){this.delegateMethod("resize",t)},dispatchAction:function(t){this.delegateMethod("dispatchAction",t)},convertToPixel:function(t,e){return this.delegateMethod("convertToPixel",t,e)},convertFromPixel:function(t,e){return this.delegateMethod("convertFromPixel",t,e)},containPixel:function(t,e){return this.delegateMethod("containPixel",t,e)},showLoading:function(t,e){this.delegateMethod("showLoading",t,e)},hideLoading:function(){this.delegateMethod("hideLoading")},getDataURL:function(t){return this.delegateMethod("getDataURL",t)},getConnectedDataURL:function(t){return this.delegateMethod("getConnectedDataURL",t)},clear:function(){this.delegateMethod("clear")},dispose:function(){this.delegateMethod("dispose")},delegateMethod:function(t){var e;this.chart||this.init();for(var a=arguments.length,i=Array(a>1?a-1:0),n=1;n<a;n++)i[n-1]=arguments[n];return(e=this.chart)[t].apply(e,pa()(i))},delegateGet:function(t,e){return this.chart||this.init(),this.chart[e]()},getArea:function(){return this.$el.offsetWidth*this.$el.offsetHeight},init:function(){var t=this;if(!this.chart){var e=ga.a.init(this.$el,this.theme,this.initOptions);this.group&&(e.group=this.group),e.setOption(this.manualOptions||this.options||{},!0),ya.forEach(function(a){e.on(a,function(e){t.$emit(a,e)})}),this.autoResize&&(this.lastArea=this.getArea(),this.__resizeHandler=va()(function(){0===t.lastArea?(t.mergeOptions({},!0),t.resize(),t.mergeOptions(t.options||t.manualOptions||{},!0)):t.resize(),t.lastArea=t.getArea()},100,{leading:!0}),Object(_a.a)(this.$el,this.__resizeHandler)),ha()(this,{width:{configurable:!0,get:function(){return t.delegateGet("width","getWidth")}},height:{configurable:!0,get:function(){return t.delegateGet("height","getHeight")}},isDisposed:{configurable:!0,get:function(){return!!t.delegateGet("isDisposed","isDisposed")}},computedOptions:{configurable:!0,get:function(){return t.delegateGet("computedOptions","getOption")}}}),this.chart=e}},destroy:function(){this.autoResize&&Object(_a.b)(this.$el,this.__resizeHandler),this.dispose(),this.chart=null},refresh:function(){this.chart&&(this.destroy(),this.init())}},created:function(){var t=this;this.manualUpdate||this.$watch("options",function(e,a){!t.chart&&e?t.init():t.chart.setOption(e,e!==a)},{deep:!this.watchShallow});["theme","initOptions","autoResize","manualUpdate","watchShallow"].forEach(function(e){t.$watch(e,function(){t.refresh()},{deep:!0})})},mounted:function(){this.options&&this.init()},activated:function(){this.autoResize&&this.chart&&this.chart.resize()},beforeDestroy:function(){this.chart&&this.destroy()},connect:function(t){"string"!=typeof t&&(t=t.map(function(t){return t.chart})),ga.a.connect(t)},disconnect:function(t){ga.a.disConnect(t)},registerMap:function(t,e,a){ga.a.registerMap(t,e,a)},registerTheme:function(t,e){ga.a.registerTheme(t,e)},graphic:ga.a.graphic},ba={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"echarts"})},staticRenderFns:[]};var ka=a("C7Lr")(wa,ba,!1,function(t){a("TkP1")},null,null).exports;c.default.use(ca.a),oa.a.disableVersionBadge=!0,c.default.component("Aplayer",oa.a),c.default.use(he.a,{ak:"z9NzOPtvca64SmTiLu2vlmlhHfFCd5Z2"}),c.default.component("chart",ka),c.default.use(ra.a),c.default.use(ea.a),c.default.config.productionTip=!1,c.default.prototype.$ajax=ia.a,c.default.prototype.$getJSON=function(t,e){for(var a in e)switch(l()(e[a])){case"object":e[a]=s()(e[a])}return new n.a(function(a,i){ia.a.get(t,{params:e}).then(function(t){a(t.data)}).catch(function(t){console.log(t)})})},c.default.prototype.$playAudio=function(t,e,a){var i=(0,this.$createElement)("Aplayer",{attrs:{music:{src:t,title:e,artist:a},autoplay:!0,style:"width:290px;left:-12px;"}},[]);this.$notify.closeAll(),this.$notify({title:"褰曢煶鎾斁",message:i,duration:0})},Date.prototype.format=function(t){var e={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};for(var a in/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length))),e)new RegExp("("+a+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[a]:("00"+e[a]).substr((""+e[a]).length)));return t},Array.prototype.in_array=function(t){for(var e=0;e<this.length;e++)if(this[e]==t)return!0;return!1},Array.prototype.min=function(){for(var t=this[0],e=this.length,a=1;a<e;a++)this[a]<t&&(t=this[a]);return t},Array.prototype.max=function(){for(var t=this[0],e=this.length,a=1;a<e;a++)this[a]>t&&(t=this[a]);return t},new c.default({el:"#app",router:Qe,components:{App:h},template:"<App/>"})},NmR4:function(t,e){},P7Xu:function(t,e){},RPXr:function(t,e){},RcCq:function(t,e){},"S8/c":function(t,e){},TEeh:function(t,e){},TiBx:function(t,e){},TkP1:function(t,e){},UUKd:function(t,e){},UVNa:function(t,e){},UeIW:function(t,e){},Uy1T:function(t,e){},W0xC:function(t,e){},WA1K:function(t,e){},WCPt:function(t,e){},XCdz:function(t,e){},XTFl:function(t,e){},ZmpA:function(t,e){},aj8w:function(t,e){},bo19:function(t,e){},"c+9t":function(t,e){},djKW:function(t,e){},eWTf:function(t,e){},fg5y:function(t,e){},gtvx:function(t,e){},iRlw:function(t,e){},jZLI:function(t,e){},kMlG:function(t,e){},l1n5:function(t,e){},laSh:function(t,e){},mvJe:function(t,e){},oueq:function(t,e){},rTpP:function(t,e){},rqaq:function(t,e){},vJMz:function(t,e){},"vk+F":function(t,e){},wc9D:function(t,e){},wwvT:function(t,e){},"xCt/":function(t,e){},xuGQ:function(t,e){},"z/1m":function(t,e){},zCqr:function(t,e){}},["NHnr"]);
-//# sourceMappingURL=app.97d0c0aef1626f1cac3b.js.map
\ No newline at end of file
diff --git a/server/public/static/js/app.97d0c0aef1626f1cac3b.js.map b/server/public/static/js/app.97d0c0aef1626f1cac3b.js.map
deleted file mode 100644
index f9da5b0..0000000
--- a/server/public/static/js/app.97d0c0aef1626f1cac3b.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///./src/assets/logo.png","webpack:///./src/App.vue?09a9","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///src/pages/Login.vue","webpack:///./src/pages/Login.vue?27c4","webpack:///./src/pages/Login.vue","webpack:///src/components/Main/LayoutHeader.vue","webpack:///./src/components/Main/LayoutHeader.vue?57a3","webpack:///./src/components/Main/LayoutHeader.vue","webpack:///./src/components/Menu/MenuItem.vue?10ae","webpack:///./src/components/Menu/MenuItem.vue","webpack:///src/components/Main/LayoutAside.vue","webpack:///src/components/Menu/MenuItem.vue","webpack:///./src/components/Main/LayoutAside.vue?e65d","webpack:///./src/components/Main/LayoutAside.vue","webpack:///./src/components/Main/LayoutFooter.vue?ecc0","webpack:///./src/components/Main/LayoutFooter.vue","webpack:///src/pages/Main.vue","webpack:///src/components/Main/LayoutFooter.vue","webpack:///./src/pages/Main.vue?0c77","webpack:///./src/pages/Main.vue","webpack:///src/components/WhiteList/Edit.vue","webpack:///./src/components/WhiteList/Edit.vue?26f1","webpack:///./src/components/WhiteList/Edit.vue","webpack:///./src/components/WhiteList/PageNation.vue?640e","webpack:///./src/components/WhiteList/PageNation.vue","webpack:///src/components/WhiteList/ToolBar.vue","webpack:///./src/components/WhiteList/ToolBar.vue?6e4f","webpack:///./src/components/WhiteList/ToolBar.vue","webpack:///src/components/WhiteList/Table.vue","webpack:///src/components/WhiteList/PageNation.vue","webpack:///./src/components/WhiteList/Table.vue?674a","webpack:///./src/components/WhiteList/Table.vue","webpack:///src/pages/WhiteList.vue","webpack:///./src/pages/WhiteList.vue?3a79","webpack:///./src/pages/WhiteList.vue","webpack:///./src/components/Selectors/DeviceStatus.vue?b078","webpack:///./src/components/Selectors/DeviceStatus.vue","webpack:///src/components/Selectors/DeviceStatus.vue","webpack:///src/components/PageNations/Pagination.vue","webpack:///./src/components/PageNations/Pagination.vue?4292","webpack:///./src/components/PageNations/Pagination.vue","webpack:///src/components/Tables/WhiteListOfTask.vue","webpack:///./src/components/Tables/WhiteListOfTask.vue?f778","webpack:///./src/components/Tables/WhiteListOfTask.vue","webpack:///src/components/Form/PeriodTaskDetail.vue","webpack:///./src/components/Form/PeriodTaskDetail.vue?9c30","webpack:///./src/components/Form/PeriodTaskDetail.vue","webpack:///src/components/Form/DeviceDetail.vue","webpack:///./src/components/Form/DeviceDetail.vue?22db","webpack:///./src/components/Form/DeviceDetail.vue","webpack:///src/pages/Map.vue","webpack:///./src/pages/Map.vue?a062","webpack:///./src/pages/Map.vue","webpack:///src/components/PeriodTask/Edit.vue","webpack:///./src/components/PeriodTask/Edit.vue?ab1d","webpack:///./src/components/PeriodTask/Edit.vue","webpack:///src/components/PeriodTask/PageNation.vue","webpack:///./src/components/PeriodTask/PageNation.vue?330e","webpack:///./src/components/PeriodTask/PageNation.vue","webpack:///src/components/PeriodTask/ToolBar.vue","webpack:///./src/components/PeriodTask/ToolBar.vue?b62f","webpack:///./src/components/PeriodTask/ToolBar.vue","webpack:///src/components/PeriodTask/Table.vue","webpack:///./src/components/PeriodTask/Table.vue?816c","webpack:///./src/components/PeriodTask/Table.vue","webpack:///src/pages/PeriodTask.vue","webpack:///./src/pages/PeriodTask.vue?9787","webpack:///./src/pages/PeriodTask.vue","webpack:///src/components/Tables/PeriodTaskExcutionHistory.vue","webpack:///./src/components/Tables/PeriodTaskExcutionHistory.vue?d050","webpack:///./src/components/Tables/PeriodTaskExcutionHistory.vue","webpack:///src/components/Tables/PeriodTaskRd.vue","webpack:///./src/components/Tables/PeriodTaskRd.vue?ec43","webpack:///./src/components/Tables/PeriodTaskRd.vue","webpack:///src/components/Tables/RealtimeTaskRd.vue","webpack:///./src/components/Tables/RealtimeTaskRd.vue?989d","webpack:///./src/components/Tables/RealtimeTaskRd.vue","webpack:///src/components/Tables/BlacklistRd.vue","webpack:///./src/components/Tables/BlacklistRd.vue?63f1","webpack:///./src/components/Tables/BlacklistRd.vue","webpack:///src/components/Tables/AudioRd.vue","webpack:///./src/components/Tables/AudioRd.vue?10c7","webpack:///./src/components/Tables/AudioRd.vue","webpack:///src/components/Tables/HeartbeatRd.vue","webpack:///./src/components/Tables/HeartbeatRd.vue?cc83","webpack:///./src/components/Tables/HeartbeatRd.vue","webpack:///src/components/Tables/DeviceMaintainRd.vue","webpack:///./src/components/Tables/DeviceMaintainRd.vue?6c81","webpack:///./src/components/Tables/DeviceMaintainRd.vue","webpack:///src/pages/DeviceInfo.vue","webpack:///./src/pages/DeviceInfo.vue?920f","webpack:///./src/pages/DeviceInfo.vue","webpack:///./src/models/VueEvent.js","webpack:///src/components/tables/Device.vue","webpack:///./src/components/tables/Device.vue?704e","webpack:///./src/components/tables/Device.vue","webpack:///src/components/PageNations/Complete.vue","webpack:///./src/components/PageNations/Complete.vue?d97f","webpack:///./src/components/PageNations/Complete.vue","webpack:///src/components/input/Search.vue","webpack:///./src/components/input/Search.vue?859f","webpack:///./src/components/input/Search.vue","webpack:///src/components/Form/DeviceEdit.vue","webpack:///./src/components/Form/DeviceEdit.vue?8a04","webpack:///./src/components/Form/DeviceEdit.vue","webpack:///src/pages/Device.vue","webpack:///./src/pages/Device.vue?2661","webpack:///./src/pages/Device.vue","webpack:///src/components/Input/SearchFilter.vue","webpack:///./src/components/Input/SearchFilter.vue?756b","webpack:///./src/components/Input/SearchFilter.vue","webpack:///./src/components/Form/RealtimeTaskDetail.vue?f068","webpack:///./src/components/Form/RealtimeTaskDetail.vue","webpack:///src/components/Tables/TaskResult.vue","webpack:///./src/components/Tables/TaskResult.vue?0a98","webpack:///./src/components/Tables/TaskResult.vue","webpack:///src/pages/TaskRdAll.vue","webpack:///src/components/Form/RealtimeTaskDetail.vue","webpack:///./src/pages/TaskRdAll.vue?7158","webpack:///./src/pages/TaskRdAll.vue","webpack:///src/pages/ScanRdAll.vue","webpack:///./src/pages/ScanRdAll.vue?24d7","webpack:///./src/pages/ScanRdAll.vue","webpack:///src/pages/DeviceHeatmap.vue","webpack:///./src/pages/DeviceHeatmap.vue?9358","webpack:///./src/pages/DeviceHeatmap.vue","webpack:///src/pages/DeviceGridDensity.vue","webpack:///./src/pages/DeviceGridDensity.vue?ae43","webpack:///./src/pages/DeviceGridDensity.vue","webpack:///./src/components/Charts/Chart_.vue?c257","webpack:///./src/components/Charts/Chart_.vue","webpack:///src/components/Charts/Chart_.vue","webpack:///src/pages/Chart.vue","webpack:///./src/pages/Chart.vue?116f","webpack:///./src/pages/Chart.vue","webpack:///src/pages/IllegalRadioGridDensity.vue","webpack:///./src/pages/IllegalRadioGridDensity.vue?78de","webpack:///./src/pages/IllegalRadioGridDensity.vue","webpack:///src/pages/IllegalRadioConfirm.vue","webpack:///./src/pages/IllegalRadioConfirm.vue?5b33","webpack:///./src/pages/IllegalRadioConfirm.vue","webpack:///src/pages/Keywords.vue","webpack:///./src/pages/Keywords.vue?8cff","webpack:///./src/pages/Keywords.vue","webpack:///src/pages/MapAPI.vue","webpack:///./src/pages/MapAPI.vue?a184","webpack:///./src/pages/MapAPI.vue","webpack:///src/pages/TaskStat.vue","webpack:///./src/pages/TaskStat.vue?0978","webpack:///./src/pages/TaskStat.vue","webpack:///src/pages/RadioStat.vue","webpack:///./src/pages/RadioStat.vue?4273","webpack:///./src/pages/RadioStat.vue","webpack:///./src/pages/RunningStat.vue?45b5","webpack:///./src/pages/RunningStat.vue","webpack:///src/pages/RunningStat.vue","webpack:///./src/pages/OuterWarning.vue?2f99","webpack:///./src/pages/OuterWarning.vue","webpack:///src/pages/OuterWarning.vue","webpack:///./src/pages/InnerWarning.vue?95bc","webpack:///./src/pages/InnerWarning.vue","webpack:///src/pages/InnerWarning.vue","webpack:///./src/pages/ReportTemplate.vue?2da8","webpack:///./src/pages/ReportTemplate.vue","webpack:///src/pages/ReportTemplate.vue","webpack:///./src/pages/ReportDownload.vue?aebd","webpack:///./src/pages/ReportDownload.vue","webpack:///src/pages/ReportDownload.vue","webpack:///./src/router/index.js","webpack:///node_modules/_vue-echarts@3.1.3@vue-echarts/components/ECharts.vue","webpack:///./node_modules/_vue-echarts@3.1.3@vue-echarts/components/ECharts.vue?e9e1","webpack:///./node_modules/_vue-echarts@3.1.3@vue-echarts/components/ECharts.vue","webpack:///./src/main.js"],"names":["module","exports","__webpack_require__","p","selectortype_template_index_0_src_App","render","_h","this","$createElement","_c","_self","attrs","id","staticRenderFns","src_App","normalizeComponent","name","ssrContext","Login","data","form","username","password","methods","onSubmit","_this","loading","$loading","background","spinner","$ajax","get","params","then","response","close","success","localStorage","setItem","stringify_default","userInfo","$router","push","$message","error","msg","catch","console","log","pages_Login","_vm","staticClass","staticStyle","text-align","slot","color","_v","ref","model","placeholder","value","callback","$$v","$set","expression","type","width","on","click","src_pages_Login","Login_normalizeComponent","LayoutHeader","created","getItem","JSON","parse","img","handleSelect","Main_LayoutHeader","span","src","offset","align","_s","components_Main_LayoutHeader","LayoutHeader_normalizeComponent","Menu_MenuItem","children","length","index","url","class","icon","_l","menu","key","LayoutAside","components","MenuItem","MenuItem_normalizeComponent","props","menus","getMenu","asyncToGenerator_default","regenerator_default","a","mark","_callee","wrap","_context","prev","next","$getJSON","sent","stop","jump","e","path","Main_LayoutAside","height","background-color","select","Main_LayoutFooter","_m","href","target","Main","LayoutAside_normalizeComponent","LayoutFooter","LayoutFooter_normalizeComponent","mounted","component","pages_Main","src_pages_Main","Main_normalizeComponent","Edit","watch","val","week-time","weekTimeChange","weekTime","weekTimeStr","runtime","save","visible","$emit","res","message","new_id","show","addTime","day","timespan","Date","addDay","weekday","title","areas","WhiteList_Edit","close-on-click-modal","update:visible","$event","label-position","label-width","label","auto-complete","show-input","min","max","step","filterable","item","i","weekTimes","change","components_WhiteList_Edit","Edit_normalizeComponent","WhiteList_PageNation","current-page","page","page-sizes","size_list","page-size","size","layout","total","size-change","handleSizeChange","current-change","handleCurrentChange","ToolBar","deleteData","deletelist","id_list","search","add","$refs","WhiteList_ToolBar","inline","margin-left","Table","SearchForDatas","PageNation","PageNation_normalizeComponent","getTotalsize","keywords","count","ToolBar_normalizeComponent","handleSelectionChange","ids","element","selectdList","unshift","filterTag","b","c","d","area","pageChange","rows_per_page","current_page","areas_map","text","updata","selectd_index","PraseWeekday","PraseHour","array","result","edit","WhiteList_Table","border","selection-change","fixed","prop","filters","filter-method","scopedSlots","_u","fn","scope","row","time","_e","$index","padding-top","WhiteList","ComTable","Table_normalizeComponent","pages_WhiteList","src_pages_WhiteList","WhiteList_normalizeComponent","Selectors_DeviceStatus","multiple","_b","components_Selectors_DeviceStatus","DeviceStatus_normalizeComponent","options","Pagination","totalCountOrURL","Math","ceil","PageNations_Pagination","components_PageNations_Pagination","Pagination_normalizeComponent","WhiteListOfTask","getData","whiteListIds","subdata","handlePageChange","slice","is_recording","Tables_WhiteListOfTask","margin-bottom","sortable","class-name","active-value","inactive-value","disabled","components_Tables_WhiteListOfTask","WhiteListOfTask_normalizeComponent","PeriodTaskDetail","periodTaskId","taskVisible","tagStyle","parseFreqRange","range","Form_PeriodTaskDetail","margin","style","period","recording_length","create_time","detail","freq_range","margin-right","whitelist","stringify","white-list-ids","components_Form_PeriodTaskDetail","PeriodTaskDetail_normalizeComponent","DeviceDetail","lgid","device_lgid","handleClickViewTask","getBatteryStatusColor","percentage","cStart","cEnd","r","g","parseInt","getTagType","Form_DeviceDetail","log_id","phy_id","dtype_source","dtype_move","dtype_net","status_name","bottom","show-text","stroke-width","battery","heartbeat","last_heartbeat_time","province","city","county","district","street","address","lon","lat","dtype_os","os_version","update_time","task_id","padding","append-to-body","period-task-id","components_Form_DeviceDetail","DeviceDetail_normalizeComponent","Map","SelectDeviceStatus","map","mapInterface","mapInstance","mapCursorDefault","scrollWheelZoom","dragging","dbClickZoom","mapStyle","styleJson","featureType","elementType","stylers","weight","visibility","pointer","position","opts","anchor","timeoutHandle","drawing","isStartPoint","isFinished","drawingType","circlePath","center","lng","NaN","radius","polygonPath","polygonPointCnt","styleOptions","strokeColor","fillColor","strokeWeight","strokeOpacity","fillOpacity","strokeStyle","editing","icons","-1","0","1","2","3","infowindow","selectedTable","devices","markers","selected","idsOfDevices","districtList","searchDevices","handleDistricChange","in_array","_i","trim","ready","BMap","getDefaultCursor","selection","locateDvice","_this2","clearTimeout","setTimeout","mapClick","drawType","point","mapMouseMove","getDistance","TL","BR","mapRightClick","selectByGeometry","drawGeometry","setDefaultCursor","hander","pnt","flag","isPointInCircle","isPointInRect","isPointInPolygon","showInfoWindow","device","changeDeviceStatus","status","_this3","p1","p2","p1x","degreeToRad","p1y","p2x","p2y","acos","sin","cos","degree","PI","radToDegree","radian","rectPath","getBounds","arr_x","arr","arr_y","len","cnt","pStart","pEnd","abs","pNext","setTask","deviceIdList","_this4","taskInfo","noTask","abrupt","$prompt","confirmButtonText","cancelButtonText","inputPattern","inputErrorMessage","undefined","getDeviceOfNoTask","join","$confirm","device_list","rst","j","scan","_this5","_callee2","_context2","command","record","_this6","_callee3","recordLengthInfo","recordLength","_context3","inputValidator","f","Number","isNaN","match","freq","extra","reboot","_this7","_callee4","_context4","pages_Map","scroll-wheel-zoom","double-click-zoom","mousemove","rightclick","directives","rawName","mouseover","mouseout","plain","float","animation","open","margin-top","stroke-color","fill-color","stroke-opacity","fill-opacity","stroke-weight","stroke-style","src_pages_Map","Map_normalizeComponent","PeriodTask_Edit","searchAllWhitelst","hideFreqInput","computed","renderSelect","h","checked","checkAll","newVal","indeterminate","handleSelectAllChange","selectedNum","check","allWhitelst","handleCheckChange","initSelection","idstr","String","hasOwnProperty","handleTagClose","splice","addFreq","newRange","freqStart","freqEnd","duration","showClose","checkFreq","freqInputVisible","whiteLst","format","updateForm","pagesize","orderby","components_PeriodTask_Edit","padding-right","padding-left","rows","closable","display","controls-position","precision","round","row-class-name","header-row-class-name","render-header","src_components_PeriodTask_Edit","PeriodTask_Edit_normalizeComponent","PeriodTask_PageNation","keyword","operator","components_PeriodTask_PageNation","PeriodTask_ToolBar","refreshTable","searchValue","components_PeriodTask_ToolBar","PeriodTask_Table","PeriodTask_PageNation_normalizeComponent","PeriodTask_ToolBar_normalizeComponent","whiteListVisible","replace","showWhiteList","components_PeriodTask_Table","padding-bottom","refreshAfterUpdate","PeriodTask","PeriodTask_Table_normalizeComponent","pages_PeriodTask","src_pages_PeriodTask","PeriodTask_normalizeComponent","PeriodTaskExcutionHistory","deviceId","Tables_PeriodTaskExcutionHistory","PeriodTaskRd","PeriodTaskExcutionHistory_normalizeComponent","selected_idx","taskHistoryVisible","showTaskHistory","Tables_PeriodTaskRd","RealtimeTaskRd","Tables_RealtimeTaskRd","BlacklistRd","Tables_BlacklistRd","$playAudio","radio_file_path","frequency","last_scan","AudioRd","Tables_AudioRd","upload_time","HeartbeatRd","Tables_HeartbeatRd","text-inside","DeviceMaintainRd","editShow","staff","m_time","addMaintainRd","Tables_DeviceMaintainRd","value-format","DeviceInfo","dealurl","$route","PeriodTaskRd_normalizeComponent","RealtimeTaskRd_normalizeComponent","BlacklistRd_normalizeComponent","AudioRd_normalizeComponent","HeartbeatRd_normalizeComponent","DeviceMaintainRd_normalizeComponent","pages_DeviceInfo","tabPosition","src_pages_DeviceInfo","DeviceInfo_normalizeComponent","models_VueEvent","vue_esm","Device","dialog","conditions","$on","needUpdata","cond","condition","getDatas","origin","getProgressStatus","tables_Device","components_tables_Device","Device_normalizeComponent","Complete","onchange","PageNations_Complete","components_PageNations_Complete","Complete_normalizeComponent","Search","input_Search","components_input_Search","Search_normalizeComponent","DeviceEdit","beforeDestroy","$off","data_ini","allPropEditable","rules","required","trigger","validator","rule","test","Error","validate","valid","Form_DeviceEdit","components_Form_DeviceEdit","DeviceEdit_normalizeComponent","pages_Device","defineProperty_default","Devices","Searcher","selectortype_template_index_0_src_pages_Device","src_pages_Device","pages_Device_normalizeComponent","SearchFilter","returnValue","handleClear","handleSearch","invalidFields","filter","temp","toString","_temp","Input_SearchFilter","filterInfo","range-separator","start-placeholder","end-placeholder","clearable","option","idx","components_Input_SearchFilter","SearchFilter_normalizeComponent","Form_RealtimeTaskDetail","selectValue","finish_time","TaskResult","task_record_id","Tables_TaskResult","TaskRdAll","RealtimeTaskDetail","RealtimeTaskDetail_normalizeComponent","realtimeTaskId","TaskResult_normalizeComponent","queryParams","start_time","filterOptions","task_type","taskResultVisible","task_result_type","scan_result","SearchWithFilter","showTaskDetail","dataIndex","showTaskResult","pages_TaskRdAll","src_pages_TaskRdAll","TaskRdAll_normalizeComponent","ScanRdAll","table","result_type","forEach","result_name","split","pages_ScanRdAll","src_pages_ScanRdAll","ScanRdAll_normalizeComponent","DeviceHeatmap","BmlHeatmap","_vue_baidu_map_0_21_11_vue_baidu_map","heatmap","gradient","0.995","pages_DeviceHeatmap","src_pages_DeviceHeatmap","DeviceHeatmap_normalizeComponent","DeviceGridDensity","grid","allGrid","currentGrid","allSize","3 km","5 km","10 km","currentLevel","currentSize","encoding","getGridFromFile","drawBoundary","searchAndDraw","setGridDensity","drawGrid","Boundary","rs","boundaries","pointArray","ply","Polygon","enableMassClear","addOverlay","concat","getPath","setViewport","createAndSaveGrid","savePath","sizes","gridIdx","createGridByDistrictPath","boundaryGrids","start","col","end","deltaRow","deltaCol","absDRow","absDCol","absMax","absMin","deltaListMax","deltaListMin","floor","deltaList","intervalRow","intervalCol","_j","rowMax","_loop","cols","colMax","colMin","addGrid","obj","gridInfo","sizeLevel","clearOverlays","cell","polygonOptions","polygon","Point","labelOptions","Size","Label","setStyle","backgroundColor","fontSize","lineHeight","fontFamily","textAlign","pages_DeviceGridDensity","effect","content","placement","src_pages_DeviceGridDensity","DeviceGridDensity_normalizeComponent","Charts_Chart_","is","tag","chartData","toolbox","settings","chartSettings","components_Charts_Chart_","Chart__normalizeComponent","chartType","formatter","roam","itemStyle","normal","borderColor","zoom","columns","琛屾斂鍖�","鏁伴噺","绫诲瀷","鏃ユ湡","fields","top","left","right","feature","saveAsImage","Chart","activeName","activeName2","activeName3","activeName4","handleClick","tab","event","pages_Chart","gutter","ChartId","src_pages_Chart","Chart_normalizeComponent","IllegalRadioGridDensity","radios","radio","pages_IllegalRadioGridDensity","src_pages_IllegalRadioGridDensity","IllegalRadioGridDensity_normalizeComponent","IllegalRadioConfirm","getPointShow","宸茬‘璁�","寰呯‘璁�","宸查�夋嫨","selectedRadioIdx","infowindow_radio","infowindow_device","labels","getPointLocation","isAddingRadioShow","newRadio","location","selectedRadioPos","isAddingRadio","copyLcation","$copyText","err","showinfowindow_radio","showinfowindow_device","handleSelectChange","panTo","noAnimation","checkSelect","radioInfo","scanDevice","pntAll","radioLca","radioPnt","deviceLca","devicePnt","dis","changeLocation","s","is_nan_default","changeDetail","confirmAndSave","addRadio","_this8","pages_IllegalRadioConfirm","valign","hide-after","confirm","zIndex","labelStyle","fontWeight","src_pages_IllegalRadioConfirm","IllegalRadioConfirm_normalizeComponent","Keywords","selectd","showEdit","dialogTitle","isEditNew","addKeyword","code","english","deleteKeyword","pages_Keywords","src_pages_Keywords","Keywords_normalizeComponent","MapAPI","dataType","dealURLParams","query","parsePnts","pntsStr","pnts","xy","Array","isArray","pages_MapAPI","map-types","src_pages_MapAPI","MapAPI_normalizeComponent","TaskStat","month","getTaskStat","c_task","c_device","x","tooltip","axisPointer","crossStyle","dataView","readOnly","legend","xAxis","yAxis","minInterval","series","y2","t","getFullYear","getMonth","yearMonth","maxDay","getDate","xAxisData","periodTask","realtimeTask","pages_TaskStat","auto-resize","src_pages_TaskStat","TaskStat_normalizeComponent","RadioStat","options_dis","options_all","radio_dis","radio_all","_i2","pages_RadioStat","src_pages_RadioStat","RadioStat_normalizeComponent","pages_RunningStat","src_pages_RunningStat","RunningStat_normalizeComponent","pages_OuterWarning","src_pages_OuterWarning","OuterWarning_normalizeComponent","pages_InnerWarning","src_pages_InnerWarning","InnerWarning_normalizeComponent","pages_ReportTemplate","src_pages_ReportTemplate","ReportTemplate_normalizeComponent","pages_ReportDownload","src_pages_ReportDownload","ReportDownload_normalizeComponent","use","vue_router_esm","router","routes","EVENTS","ECharts","Object","theme","initOptions","group","autoResize","Boolean","watchShallow","manualUpdate","lastArea","_group","chart","mergeOptions","notMerge","lazyUpdate","manualOptions","delegateMethod","init","appendData","resize","dispatchAction","payload","convertToPixel","finder","convertFromPixel","containPixel","showLoading","hideLoading","getDataURL","getConnectedDataURL","clear","dispose","_chart","_len","arguments","args","_key","apply","toConsumableArray_default","delegateGet","method","getArea","$el","offsetWidth","offsetHeight","echarts_default","setOption","__resizeHandler","debounce_default","leading","esm","define_properties_default","configurable","isDisposed","computedOptions","destroy","refresh","$watch","oldVal","deep","activated","connect","disconnect","disConnect","registerMap","mapName","geoJSON","specialAreas","registerTheme","graphic","components_ECharts","_vue_echarts_3_1_3_vue_echarts_components_ECharts","ECharts_normalizeComponent","vue_clipboard_default","vue_aplayer_min_default","disableVersionBadge","_vue_baidu_map_0_21_11_vue_baidu_map_default","ak","lib_default","element_ui_common_default","config","productionTip","prototype","_axios_0_18_0_axios_default","param","typeof_default","promise_default","resolve","rejects","radioFile","music","artist","autoplay","$notify","closeAll","fmt","o","M+","d+","h+","getHours","m+","getMinutes","s+","getSeconds","q+","S","getMilliseconds","k","RegExp","$1","substr","el","App","template"],"mappings":"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","file":"static/js/app.97d0c0aef1626f1cac3b.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/img/logo.5d3c3c7.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/assets/logo.png\n// module id = 7Otq\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-5d07004a\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5d07004a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5d07004a\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div id=\"app\">\r\n    <router-view/>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"App\"\r\n};\r\n</script>\r\n\r\n<style>\r\nhtml,body,#app {\r\n  font-family: \"Helvetica Neue\",Helvetica,\"PingFang SC\",\"Hiragino Sans GB\",\"Microsoft YaHei\",\"寰蒋闆呴粦\",Arial,sans-serif;\r\n  height: 100%;\r\n  padding: 0px;\r\n  margin: 0px;\r\n}\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","<template>\r\n    <div class=\"back\">\r\n        <el-card class=\"card\">\r\n            <div slot=\"header\" style=\"text-align: center;\">\r\n                <span style=\"color:#ffffff;\">闈炴硶璋冮鐩戞祴绯荤粺</span>\r\n            </div>\r\n            <el-form ref=\"form\" :model=\"form\">\r\n                <el-form-item>\r\n                    <el-input placeholder=\"鐢ㄦ埛鍚峔" v-model=\"form.username\">\r\n                        <i slot=\"prefix\" class=\"el-input__icon iconfont icon-gonghao\"></i>\r\n                    </el-input>\r\n                </el-form-item>\r\n                <el-form-item>\r\n                    <el-input type=\"password\" placeholder=\"瀵嗙爜\" v-model=\"form.password\">\r\n                        <i slot=\"prefix\" class=\"el-input__icon iconfont icon-unie604\"></i>\r\n                    </el-input>\r\n                </el-form-item>\r\n                <el-form-item>\r\n                    <el-button type=\"primary\" @click=\"onSubmit\" style=\"width:100%;\">鐧诲綍</el-button>\r\n                </el-form-item>\r\n            </el-form>\r\n        </el-card>\r\n    </div>\r\n\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"Login\",\r\n  data() {\r\n    return {\r\n      form: {\r\n        username: \"\",\r\n        password: \"\"\r\n      }\r\n    };\r\n  },\r\n  methods: {\r\n    onSubmit() {\r\n      let loading= this.$loading({\r\n          background:\"rgba(0, 0, 0, 0.8)\",\r\n          spinner:\"el-icon-loading\"\r\n      })\r\n      this.$ajax.get(\"/admin/login\", {\r\n          params: {\r\n            name: this.form.username,\r\n            password: this.form.password\r\n          }\r\n        })\r\n        .then((response)=> {\r\n          loading.close();\r\n          if(response.data.success){\r\n            localStorage.setItem('userInfo',JSON.stringify(response.data.userInfo));\r\n            this.$router.push({ name: \"Main\" });\r\n          }else{\r\n            \r\n             this.$message.error(response.data.msg);\r\n          }\r\n        })\r\n        .catch((error)=> {\r\n          console.log(error);\r\n        });\r\n    }\r\n  }\r\n};\r\n</script>\r\n\r\n<style scoped>\r\nspan {\r\n  font: 20px Extra large;\r\n}\r\n.back {\r\n  background: url(../assets/back.jpg);\r\n  background-size: 100% 100%;\r\n  background-repeat: no-repeat;\r\n  width: 100%;\r\n  height: 100%;\r\n}\r\n.card {\r\n  position: relative;\r\n  background: url(../assets/back.png);\r\n  left: 40%;\r\n  top: 25%;\r\n  width: 20%;\r\n  padding: 30px 40px 20px 40px;\r\n}\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/Login.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"back\"},[_c('el-card',{staticClass:\"card\"},[_c('div',{staticStyle:{\"text-align\":\"center\"},attrs:{\"slot\":\"header\"},slot:\"header\"},[_c('span',{staticStyle:{\"color\":\"#ffffff\"}},[_vm._v(\"闈炴硶璋冮鐩戞祴绯荤粺\")])]),_vm._v(\" \"),_c('el-form',{ref:\"form\",attrs:{\"model\":_vm.form}},[_c('el-form-item',[_c('el-input',{attrs:{\"placeholder\":\"鐢ㄦ埛鍚峔"},model:{value:(_vm.form.username),callback:function ($$v) {_vm.$set(_vm.form, \"username\", $$v)},expression:\"form.username\"}},[_c('i',{staticClass:\"el-input__icon iconfont icon-gonghao\",attrs:{\"slot\":\"prefix\"},slot:\"prefix\"})])],1),_vm._v(\" \"),_c('el-form-item',[_c('el-input',{attrs:{\"type\":\"password\",\"placeholder\":\"瀵嗙爜\"},model:{value:(_vm.form.password),callback:function ($$v) {_vm.$set(_vm.form, \"password\", $$v)},expression:\"form.password\"}},[_c('i',{staticClass:\"el-input__icon iconfont icon-unie604\",attrs:{\"slot\":\"prefix\"},slot:\"prefix\"})])],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{staticStyle:{\"width\":\"100%\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(\"鐧诲綍\")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-0e1be330\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/Login.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0e1be330\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Login.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Login.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Login.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0e1be330\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Login.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0e1be330\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/Login.vue\n// module id = null\n// module chunks = ","<template>\r\n    <div class=\"header\">\r\n        <el-row>\r\n            <el-col :span=\"8\">\r\n                <img class=\"logo\" src=\"../../assets/logo.png\">\r\n            </el-col>\r\n            <el-col :span=\"2\" :offset=\"14\">\r\n                <el-dropdown>\r\n                    <span class=\"el-dropdown-link\">\r\n                        <img class=\"head\" :src=\"userInfo.img\" align=\"absmiddle\" >&nbsp; <strong>{{userInfo.name}}</strong>\r\n                    </span>\r\n                    <el-dropdown-menu slot=\"dropdown\">\r\n                        <el-dropdown-item>淇敼瀵嗙爜</el-dropdown-item>\r\n                        <el-dropdown-item>閫�鍑虹櫥褰�</el-dropdown-item>\r\n                    </el-dropdown-menu>\r\n                </el-dropdown>\r\n\r\n            </el-col>\r\n        </el-row>\r\n\r\n    </div>\r\n\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: \"LayoutHeader\",\r\n  created:function(){\r\n      if(localStorage.getItem('userInfo')){\r\n        this.userInfo=JSON.parse(localStorage.getItem('userInfo'));\r\n      }else{\r\n          this.$router.push({ name: \"Login\" });\r\n      }\r\n  },\r\n  data() {\r\n    return {\r\n        userInfo:{\r\n            name:'',\r\n            img:'',\r\n        }\r\n    };\r\n  },\r\n  methods: {\r\n    handleSelect() {}\r\n  }\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n.head {\r\n  width: 40px;\r\n  height: 40px;\r\n  border-radius: 40px;\r\n}\r\n.logo{\r\n    width: 200px;\r\n}\r\n.el-row{\r\n    margin-top: 10px;\r\n}\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Main/LayoutHeader.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\"},[_c('el-row',[_c('el-col',{attrs:{\"span\":8}},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../../assets/logo.png\")}})]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":2,\"offset\":14}},[_c('el-dropdown',[_c('span',{staticClass:\"el-dropdown-link\"},[_c('img',{staticClass:\"head\",attrs:{\"src\":_vm.userInfo.img,\"align\":\"absmiddle\"}}),_vm._v(\"聽 \"),_c('strong',[_vm._v(_vm._s(_vm.userInfo.name))])]),_vm._v(\" \"),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',[_vm._v(\"淇敼瀵嗙爜\")]),_vm._v(\" \"),_c('el-dropdown-item',[_vm._v(\"閫�鍑虹櫥褰昞")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-275cb8e8\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Main/LayoutHeader.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-275cb8e8\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./LayoutHeader.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./LayoutHeader.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./LayoutHeader.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-275cb8e8\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./LayoutHeader.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-275cb8e8\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Main/LayoutHeader.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.children&&_vm.children.length>0)?_c('el-submenu',{attrs:{\"index\":_vm.url}},[_c('template',{slot:\"title\"},[_c('i',{class:_vm.icon}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.name))])]),_vm._v(\" \"),_vm._l((_vm.children),function(menu,key){return _c('menu-item',{key:key,attrs:{\"url\":menu.url,\"icon\":menu.icon,\"name\":menu.name,\"children\":menu.children}})})],2):_c('el-menu-item',{attrs:{\"index\":_vm.url}},[_c('i',{class:_vm.icon}),_vm._v(\" \"),_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.name))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-3f8bef46\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Menu/MenuItem.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3f8bef46\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./MenuItem.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./MenuItem.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./MenuItem.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3f8bef46\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./MenuItem.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3f8bef46\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Menu/MenuItem.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-menu style=\"height:100%;\" @select=\"jump\" background-color=\"#ebeef5\">\r\n    <menu-item v-for=\"(menu,key) in menus\" :key=\"key\" :url=\"menu.url\" :icon=\"menu.icon\" :name=\"menu.name\" :children=\"menu.children\"></menu-item>\r\n  </el-menu>\r\n</template>\r\n\r\n<script>\r\n  import MenuItem from '@/components/Menu/MenuItem'\r\n  export default {\r\n    name: \"LayoutAside\",\r\n    components: {\r\n      MenuItem\r\n    },\r\n    data() {\r\n      return {\r\n        menus: []\r\n      };\r\n    },\r\n    created() {\r\n      this.getMenu();\r\n    },\r\n    methods: {\r\n      async getMenu() {\r\n        let userInfo = JSON.parse(localStorage.getItem(\"userInfo\"));\r\n        let response = await this.$getJSON(\"/admin/menu\");\r\n        this.menus = response.data;\r\n      },\r\n      jump(e) {\r\n        if (e != \"Index\") {\r\n          this.$router.push({\r\n            path: e\r\n          });\r\n        } else {\r\n          this.$router.push({\r\n            name: e\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Main/LayoutAside.vue","<template>\r\n  <div>\r\n    <el-submenu v-if=\"children&&children.length>0\" :index=\"url\">\r\n      <template slot=\"title\">\r\n        <i :class=\"icon\"></i>\r\n        <span>{{name}}</span>\r\n      </template>\r\n      <menu-item v-for=\"(menu,key) in children\" :key=\"key\" :url=\"menu.url\" :icon=\"menu.icon\" :name=\"menu.name\"\r\n        :children=\"menu.children\">\r\n      </menu-item>\r\n    </el-submenu>\r\n    <el-menu-item v-else :index=\"url\">\r\n      <i :class=\"icon\"></i>\r\n      <span slot=\"title\">{{name}}</span>\r\n    </el-menu-item>\r\n  </div>\r\n</template>\r\n<script>\r\n  export default {\r\n    name: \"MenuItem\",\r\n    data() {\r\n      return {};\r\n    },\r\n    props: [\"url\", \"icon\", \"name\", \"children\"]\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Menu/MenuItem.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-menu',{staticStyle:{\"height\":\"100%\"},attrs:{\"background-color\":\"#ebeef5\"},on:{\"select\":_vm.jump}},_vm._l((_vm.menus),function(menu,key){return _c('menu-item',{key:key,attrs:{\"url\":menu.url,\"icon\":menu.icon,\"name\":menu.name,\"children\":menu.children}})}))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-616c4525\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Main/LayoutAside.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-616c4525\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./LayoutAside.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./LayoutAside.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./LayoutAside.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-616c4525\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./LayoutAside.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-616c4525\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Main/LayoutAside.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"foottxt\"},[_c('b',[_vm._v(\"涓婃捣鑹插畞\")]),_c('a',{attrs:{\"href\":\"http://www.shsening.com/\",\"target\":\"_blank\"}},[_c('i',[_vm._v(\" www.shsening.com\")])])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-c21b5442\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Main/LayoutFooter.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-c21b5442\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./LayoutFooter.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./LayoutFooter.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./LayoutFooter.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c21b5442\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./LayoutFooter.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-c21b5442\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Main/LayoutFooter.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-container style=\"height:100%\">\r\n    <el-header>\r\n      <LayoutHeader></LayoutHeader>\r\n    </el-header>\r\n    <el-container>\r\n      <el-aside width=\"200px\">\r\n        <LayoutAside></LayoutAside>\r\n      </el-aside>\r\n      <el-container>\r\n        <el-main>\r\n          <router-view />\r\n        </el-main>\r\n        <el-footer height=\"20px\">\r\n          <LayoutFooter></LayoutFooter>\r\n        </el-footer>\r\n      </el-container>\r\n    </el-container>\r\n  </el-container>\r\n\r\n</template>\r\n\r\n<script>\r\n  import LayoutHeader from \"@/components/Main/LayoutHeader\";\r\n  import LayoutAside from \"@/components/Main/LayoutAside\";\r\n  import LayoutFooter from \"@/components/Main/LayoutFooter\";\r\n  export default {\r\n    name: \"Main\",\r\n    components: {\r\n      LayoutHeader,\r\n      LayoutAside,\r\n      LayoutFooter\r\n    },\r\n    data() {\r\n      return {\r\n\r\n      }\r\n    },\r\n    mounted() {\r\n      this.$router.push({\r\n        component: \"Chart\"\r\n      });\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  header {\r\n    background-color: #7abbec;\r\n  }\r\n\r\n  main {\r\n    background-color: #fcfdf8;\r\n    padding: 15px 15px 0 15px;\r\n    height: calc(100% - 60px - 20px);\r\n  }\r\n\r\n  footer {\r\n    background-color: #fcfdf8;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/Main.vue","<template>\r\n  <div class=\"foottxt\">\r\n    <b>涓婃捣鑹插畞</b><a href=\"http://www.shsening.com/\" target=\"_blank\"><i> www.shsening.com</i></a>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    name: \"LayoutFooter\",\r\n    data() {\r\n      return {};\r\n    },\r\n    methods: {\r\n\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .foottxt {\r\n    text-align: right;\r\n    font: 12px Extra Extra Small;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Main/LayoutFooter.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-container',{staticStyle:{\"height\":\"100%\"}},[_c('el-header',[_c('LayoutHeader')],1),_vm._v(\" \"),_c('el-container',[_c('el-aside',{attrs:{\"width\":\"200px\"}},[_c('LayoutAside')],1),_vm._v(\" \"),_c('el-container',[_c('el-main',[_c('router-view')],1),_vm._v(\" \"),_c('el-footer',{attrs:{\"height\":\"20px\"}},[_c('LayoutFooter')],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-66b543e6\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/Main.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-66b543e6\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Main.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Main.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Main.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-66b543e6\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Main.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-66b543e6\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/Main.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-dialog :title=\"title\" :visible.sync=\"visible\" :close-on-click-modal='false' width='800px'>\r\n    <el-form label-position=\"right\" label-width=\"80px\">\r\n      <el-form-item label=\"鐢靛彴\">\r\n        <el-input v-model=\"form.name\" auto-complete=\"off\"></el-input>\r\n      </el-form-item>\r\n      <el-form-item label=\"棰戠巼\">\r\n        <el-slider v-model=\"form.frequency\" show-input :min=\"87\" :max=\"108\" :step='0.1'> </el-slider>\r\n      </el-form-item>\r\n      <el-form-item label=\"鍦板尯\">\r\n        <el-select v-model=\"form.area\" filterable placeholder=\"璇烽�夋嫨\">\r\n          <el-option v-for=\"(item,i) in areas\" :key=\"i\" :label=\"item\" :value=\"item\">\r\n          </el-option>\r\n        </el-select>\r\n      </el-form-item>\r\n      <el-form-item label=\"鏃堕棿娈礬">\r\n        <week-time :weekTimes='form.runtime' @change='weekTimeChange'></week-time>\r\n      </el-form-item>\r\n    </el-form>\r\n    <div slot=\"footer\" class=\"dialog-footer\">\r\n      <el-button @click=\"visible = false\">鍙� 娑�</el-button>\r\n      <el-button type=\"primary\" @click=\"save\">淇濆瓨</el-button>\r\n    </div>\r\n  </el-dialog>\r\n</template>\r\n\r\n<script>\r\n  import WeekTime from \"vue-week-time\";\r\n  export default {\r\n    props: [\"data\"],\r\n    watch: {\r\n      data(val) {\r\n        this.form = JSON.parse(JSON.stringify(val));\r\n      }\r\n    },\r\n    components: {\r\n      \"week-time\": WeekTime\r\n    },\r\n    methods: {\r\n      weekTimeChange(weekTime, weekTimeStr) {\r\n        this.form.runtime = weekTime;\r\n      },\r\n      save() {\r\n        this.visible = false;\r\n        if (this.form.id) {\r\n          this.$emit(\"save\", JSON.parse(JSON.stringify(this.form)));\r\n          this.$getJSON(\"/radio/u_whitelst\", this.form).then(res => {\r\n            this.$message({\r\n              type: \"success\",\r\n              message: \"淇濆瓨鎴愬姛\"\r\n            });\r\n          });\r\n        } else {\r\n          this.$getJSON(\"/radio/i_whitelst\", this.form).then(res => {\r\n            this.$emit(\"save\", JSON.parse(JSON.stringify(this.form)), res.data[0].new_id);\r\n            this.$message({\r\n              type: \"success\",\r\n              message: \"淇濆瓨鎴愬姛\"\r\n            });\r\n          });\r\n        }\r\n      },\r\n      show() {\r\n        this.visible = true;\r\n      },\r\n      addTime(day) {\r\n        day.timespan.push({\r\n          value: [new Date(), new Date()]\r\n        });\r\n      },\r\n      addDay() {\r\n        this.form.runtime.push({\r\n          weekday: \"鍛ㄤ竴\",\r\n          timespan: [{\r\n            value: [new Date(), new Date()]\r\n          }]\r\n        });\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        title: \"淇敼鐧藉悕鍗昞",\r\n        areas: [\r\n          \"鍏ㄥ競\",\r\n          \"闂佃\",\r\n          \"鍢夊畾\",\r\n          \"娴︿笢\",\r\n          \"鏉炬睙\",\r\n          \"濂夎搐\",\r\n          \"瀹濆北\",\r\n          \"閲戝北\",\r\n          \"闈掓郸\",\r\n          \"宕囨槑\"\r\n        ],\r\n        visible: false,\r\n        form: {}\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n  .week-time table {\r\n    height: 400px;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/WhiteList/Edit.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"title\":_vm.title,\"visible\":_vm.visible,\"close-on-click-modal\":false,\"width\":\"800px\"},on:{\"update:visible\":function($event){_vm.visible=$event}}},[_c('el-form',{attrs:{\"label-position\":\"right\",\"label-width\":\"80px\"}},[_c('el-form-item',{attrs:{\"label\":\"鐢靛彴\"}},[_c('el-input',{attrs:{\"auto-complete\":\"off\"},model:{value:(_vm.form.name),callback:function ($$v) {_vm.$set(_vm.form, \"name\", $$v)},expression:\"form.name\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"棰戠巼\"}},[_c('el-slider',{attrs:{\"show-input\":\"\",\"min\":87,\"max\":108,\"step\":0.1},model:{value:(_vm.form.frequency),callback:function ($$v) {_vm.$set(_vm.form, \"frequency\", $$v)},expression:\"form.frequency\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鍦板尯\"}},[_c('el-select',{attrs:{\"filterable\":\"\",\"placeholder\":\"璇烽�夋嫨\"},model:{value:(_vm.form.area),callback:function ($$v) {_vm.$set(_vm.form, \"area\", $$v)},expression:\"form.area\"}},_vm._l((_vm.areas),function(item,i){return _c('el-option',{key:i,attrs:{\"label\":item,\"value\":item}})}))],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鏃堕棿娈礬"}},[_c('week-time',{attrs:{\"weekTimes\":_vm.form.runtime},on:{\"change\":_vm.weekTimeChange}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.visible = false}}},[_vm._v(\"鍙� 娑圽")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"淇濆瓨\")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-7a694dae\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/WhiteList/Edit.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7a694dae\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Edit.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Edit.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Edit.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7a694dae\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Edit.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-7a694dae\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/WhiteList/Edit.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-pagination',{attrs:{\"current-page\":_vm.page,\"page-sizes\":_vm.size_list,\"page-size\":_vm.size,\"layout\":\"total, sizes, prev, pager, next, jumper\",\"total\":_vm.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-216599a9\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/WhiteList/PageNation.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-216599a9\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./PageNation.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PageNation.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PageNation.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-216599a9\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./PageNation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-216599a9\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/WhiteList/PageNation.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <!-- <el-row :gutter=\"20\">\r\n      <el-col :span=\"6\">\r\n        <el-button-group>\r\n          <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"add\"></el-button>\r\n          <el-button type=\"primary\" icon=\"el-icon-delete\" @click=\"deleteData\"></el-button>\r\n        </el-button-group>\r\n      </el-col>\r\n      <el-col :span=\"6\">\r\n        <el-input placeholder=\"璇疯緭鍏ュ叧閿瓧\" v-model=\"value\">\r\n          <el-button slot=\"append\" icon=\"el-icon-search\" @click=\"search\"></el-button>\r\n        </el-input>\r\n      </el-col>\r\n    </el-row> -->\r\n    <el-form inline>\r\n      <el-form-item>\r\n        <el-button-group>\r\n          <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"add\"></el-button>\r\n          <el-button type=\"primary\" icon=\"el-icon-delete\" @click=\"deleteData\"></el-button>\r\n        </el-button-group>\r\n      </el-form-item>\r\n      <el-form-item>\r\n        <el-input placeholder=\"璇疯緭鍏ュ叧閿瓧\" v-model=\"value\" style=\"margin-left:150px;\">\r\n          <el-button slot=\"append\" icon=\"el-icon-search\" @click=\"search\"></el-button>\r\n        </el-input>\r\n      </el-form-item>\r\n    </el-form>\r\n    <edit ref='edit' :data='data' @save=\"save\"></edit>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Edit from \"@/components/WhiteList/Edit\";\r\n  export default {\r\n    components: {\r\n      Edit\r\n    },\r\n    props: [\"deletelist\"],\r\n    methods: {\r\n      deleteData() {\r\n        if (this.deletelist && this.deletelist.length > 0) {\r\n          this.$getJSON(\"/radio/d_whitelst\", {\r\n            id_list: JSON.stringify(this.deletelist)\r\n          }).then(res => {\r\n            this.search();\r\n            this.$message({\r\n              type: \"success\",\r\n              message: \"鍒犻櫎鎴愬姛\"\r\n            });\r\n          });\r\n        }\r\n      },\r\n      search() {\r\n        this.$emit(\"search\", this.value);\r\n      },\r\n      add() {\r\n        this.$refs[\"edit\"].show();\r\n      },\r\n      save(data, id) {\r\n        data.id = id;\r\n        this.$emit(\"add\", data);\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        value: \"\",\r\n        data: {}\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-row {\r\n    margin-bottom: 20px;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/WhiteList/ToolBar.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',[_c('el-button-group',[_c('el-button',{attrs:{\"type\":\"primary\",\"icon\":\"el-icon-plus\"},on:{\"click\":_vm.add}}),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"icon\":\"el-icon-delete\"},on:{\"click\":_vm.deleteData}})],1)],1),_vm._v(\" \"),_c('el-form-item',[_c('el-input',{staticStyle:{\"margin-left\":\"150px\"},attrs:{\"placeholder\":\"璇疯緭鍏ュ叧閿瓧\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('el-button',{attrs:{\"slot\":\"append\",\"icon\":\"el-icon-search\"},on:{\"click\":_vm.search},slot:\"append\"})],1)],1)],1),_vm._v(\" \"),_c('edit',{ref:\"edit\",attrs:{\"data\":_vm.data},on:{\"save\":_vm.save}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-5b7649e9\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/WhiteList/ToolBar.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5b7649e9\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./ToolBar.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ToolBar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ToolBar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5b7649e9\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./ToolBar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5b7649e9\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/WhiteList/ToolBar.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <el-row style=\"height:55px;\">\r\n      <tool-bar @add=\"add\" @search=\"search\" :deletelist=\"selectdList\"></tool-bar>\r\n    </el-row>\r\n    <el-row style=\"height:calc(100% - 55px - 42px);\">\r\n      <el-table :data=\"data\" border :height=\"700\" style=\"width: 100%\" height=\"100%\" @selection-change=\"handleSelectionChange\">\r\n        <el-table-column type=\"selection\" width=\"55\">\r\n        </el-table-column>\r\n        <el-table-column fixed prop=\"name\" label=\"鐢靛彴\" width=\"330\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"frequency\" label=\"棰戠巼\" width=\"100\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"area\" label=\"鍦板尯\" width=\"150\" :filters=\"areas\" :filter-method=\"filterTag\">\r\n        </el-table-column>\r\n        <el-table-column label=\"杩愯鏃舵\">\r\n          <template slot-scope=\"scope\">\r\n            <el-tag v-for=\"(time,i) in scope.row.runtime\" :key=\"i\" v-if=\"time.length>0\">\r\n              {{PraseWeekday(i)}}\r\n              <el-tag type=\"warning\" size=\"small\">{{PraseHour(time)}}</el-tag>\r\n            </el-tag>\r\n          </template>\r\n        </el-table-column>\r\n        <el-table-column fixed=\"right\" label=\"鎿嶄綔\" width=\"150\">\r\n          <template slot-scope=\"scope\">\r\n            <el-button type=\"text\" size=\"small\" @click=\"edit(scope.$index)\">缂栬緫</el-button>\r\n          </template>\r\n        </el-table-column>\r\n      </el-table>\r\n    </el-row>\r\n    <el-row style=\"height:42px;padding-top:10px;\">\r\n      <PageNation ref='pageNation' @change=\"pageChange\"></PageNation>\r\n    </el-row>\r\n\r\n    <edit ref='edit' :data='data[selectd_index]' @save=\"updata\"></edit>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Edit from \"@/components/WhiteList/Edit\";\r\n  import PageNation from \"@/components/WhiteList/PageNation\";\r\n  import ToolBar from \"@/components/WhiteList/ToolBar\";\r\n  export default {\r\n    mounted() {\r\n      this.SearchForDatas();\r\n    },\r\n    components: {\r\n      Edit,\r\n      PageNation,\r\n      ToolBar\r\n    },\r\n    methods: {\r\n      handleSelectionChange(a) {\r\n        let ids = [];\r\n        for (let i = 0; i < a.length; i++) {\r\n          const element = a[i];\r\n          ids.push(element.id);\r\n        }\r\n        this.selectdList = ids\r\n      },\r\n      add(data) {\r\n        this.data.unshift(data);\r\n      },\r\n      filterTag(a, b, c, d) {\r\n        if (b.area == a) {\r\n          return true;\r\n        } else {\r\n          return false;\r\n        }\r\n      },\r\n      pageChange(e) {\r\n        this.SearchForDatas(this.keywords);\r\n      },\r\n      search(keywords) {\r\n        this.keywords = keywords;\r\n        this.$refs[\"pageNation\"].getTotalsize(keywords);\r\n        this.SearchForDatas(keywords);\r\n      },\r\n      SearchForDatas(keywords) {\r\n        if (!keywords) keywords = \"\";\r\n        this.$getJSON(\"/radio/s_whitelst\", {\r\n          rows_per_page: this.$refs[\"pageNation\"].size,\r\n          current_page: this.$refs[\"pageNation\"].page,\r\n          keywords: keywords\r\n        }).then(res => {\r\n          let areas_map = {};\r\n          for (let i = 0; i < res.data.length; i++) {\r\n            const element = res.data[i];\r\n            areas_map[element.area] = {\r\n              text: element.area,\r\n              value: element.area\r\n            };\r\n          }\r\n          let areas = [];\r\n          for (let area in areas_map) {\r\n            areas.push(areas_map[area]);\r\n          }\r\n          this.areas = areas;\r\n          this.data = res.data;\r\n        });\r\n      },\r\n      updata(data) {\r\n        for (var key in data) {\r\n          this.data[this.selectd_index][key] = data[key];\r\n        }\r\n      },\r\n      PraseWeekday(i) {\r\n        switch (i * 1) {\r\n          case 1:\r\n            return \"鍛ㄤ竴\";\r\n          case 2:\r\n            return \"鍛ㄤ簩\";\r\n          case 3:\r\n            return \"鍛ㄤ笁\";\r\n          case 4:\r\n            return \"鍛ㄥ洓\";\r\n          case 5:\r\n            return \"鍛ㄤ簲\";\r\n          case 6:\r\n            return \"鍛ㄥ叚\";\r\n          case 7:\r\n            return \"鍛ㄦ棩\";\r\n        }\r\n      },\r\n      PraseHour(array) {\r\n        let result = \"\";\r\n        for (let i = 0; i < array.length; i++) {\r\n          const element = array[i];\r\n          if (i == 0) {\r\n            result += element;\r\n          } else if (i == array.length - 1) {\r\n            result += `~${element}`;\r\n          } else if (element + 1 < array[i + 1]) {\r\n            result += `~${element} ${element}`;\r\n          }\r\n        }\r\n        return result;\r\n      },\r\n      edit(index) {\r\n        this.selectd_index = index;\r\n        this.$refs[\"edit\"].show();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        selectd_index: \"\",\r\n        areas: [],\r\n        data: [],\r\n        selectdList: []\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/WhiteList/Table.vue","<template>\r\n  <el-pagination @size-change=\"handleSizeChange\" @current-change=\"handleCurrentChange\" :current-page=\"page\" :page-sizes=\"size_list\"\r\n    :page-size=\"size\" layout=\"total, sizes, prev, pager, next, jumper\" :total=\"total\">\r\n  </el-pagination>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    created() {\r\n      this.getTotalsize();\r\n    },\r\n    methods: {\r\n      getTotalsize(keywords) {\r\n        if (!keywords) keywords = '';\r\n        this.$getJSON(\"/radio/cnt_whitelst\", {\r\n          keywords\r\n        }).then(res => {\r\n          this.total = res.data[0].count;\r\n        });\r\n      },\r\n      handleSizeChange(a) {\r\n        this.size = a;\r\n        this.$emit(\"change\", {\r\n          page: this.page,\r\n          size: this.size\r\n        });\r\n      },\r\n      handleCurrentChange(a) {\r\n        this.page = a;\r\n        this.$emit(\"change\", {\r\n          page: this.page,\r\n          size: this.size\r\n        });\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        page: 1,\r\n        size_list: [10, 20, 30, 40],\r\n        size: 10,\r\n        total: 400\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-pagination {\r\n    text-align: center;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/WhiteList/PageNation.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-row',{staticStyle:{\"height\":\"55px\"}},[_c('tool-bar',{attrs:{\"deletelist\":_vm.selectdList},on:{\"add\":_vm.add,\"search\":_vm.search}})],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"calc(100% - 55px - 42px)\"}},[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":700,\"height\":\"100%\"},on:{\"selection-change\":_vm.handleSelectionChange}},[_c('el-table-column',{attrs:{\"type\":\"selection\",\"width\":\"55\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"fixed\":\"\",\"prop\":\"name\",\"label\":\"鐢靛彴\",\"width\":\"330\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"frequency\",\"label\":\"棰戠巼\",\"width\":\"100\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"area\",\"label\":\"鍦板尯\",\"width\":\"150\",\"filters\":_vm.areas,\"filter-method\":_vm.filterTag}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"杩愯鏃舵\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return _vm._l((scope.row.runtime),function(time,i){return (time.length>0)?_c('el-tag',{key:i},[_vm._v(\"\\n            \"+_vm._s(_vm.PraseWeekday(i))+\"\\n            \"),_c('el-tag',{attrs:{\"type\":\"warning\",\"size\":\"small\"}},[_vm._v(_vm._s(_vm.PraseHour(time)))])],1):_vm._e()})}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"fixed\":\"right\",\"label\":\"鎿嶄綔\",\"width\":\"150\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.edit(scope.$index)}}},[_vm._v(\"缂栬緫\")])]}}])})],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"42px\",\"padding-top\":\"10px\"}},[_c('PageNation',{ref:\"pageNation\",on:{\"change\":_vm.pageChange}})],1),_vm._v(\" \"),_c('edit',{ref:\"edit\",attrs:{\"data\":_vm.data[_vm.selectd_index]},on:{\"save\":_vm.updata}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-9475d796\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/WhiteList/Table.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-9475d796\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Table.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Table.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Table.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9475d796\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Table.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-9475d796\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/WhiteList/Table.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <com-table></com-table>\r\n  </div>\r\n</template>\r\n<script>\r\n  import ComTable from \"@/components/WhiteList/Table\";\r\n  export default {\r\n    components: {\r\n      ComTable\r\n    },\r\n    data() {\r\n      return {};\r\n    },\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/WhiteList.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('com-table')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-5e0dcba0\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/WhiteList.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5e0dcba0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./WhiteList.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./WhiteList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./WhiteList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5e0dcba0\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./WhiteList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5e0dcba0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/WhiteList.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-select',{staticStyle:{\"width\":\"120px\"},attrs:{\"placeholder\":\"璁惧鐘舵�乗",\"multiple\":\"\"},on:{\"change\":_vm.change},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},_vm._l((_vm.options),function(item,i){return _c('el-option',_vm._b({key:i},'el-option',item,false))}))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-319775c0\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Selectors/DeviceStatus.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-319775c0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./DeviceStatus.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceStatus.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceStatus.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-319775c0\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./DeviceStatus.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-319775c0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Selectors/DeviceStatus.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-select v-model=\"value\" placeholder=\"璁惧鐘舵�乗" multiple style=\"width:120px;\" @change=\"change\">\r\n    <el-option v-for=\"(item,i) in options\" :key=\"i\" v-bind=\"item\">\r\n    </el-option>\r\n  </el-select>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    methods: {\r\n      change() {\r\n        this.$emit(\"change\", this.value);\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        options: [\r\n          //   {\r\n          //   value: -1,\r\n          //   label: '鏁呴殰'\r\n          // }, \r\n          {\r\n            value: 0,\r\n            label: '绂荤嚎'\r\n          }, {\r\n            value: 1,\r\n            label: '绌洪棽'\r\n          }, {\r\n            value: 2,\r\n            label: '姝e湪鎵彴'\r\n          }, {\r\n            value: 3,\r\n            label: '姝e湪褰曢煶'\r\n          }\r\n        ],\r\n        value: \"\"\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Selectors/DeviceStatus.vue","<template>\r\n  <el-pagination style=\"text-align:center;\" @size-change=\"handleSizeChange\" @current-change=\"handleCurrentChange\"\r\n    :current-page=\"page\" :page-sizes=\"size_list\" :page-size=\"size\" layout=\"total, sizes, prev, pager, next, jumper\"\r\n    :total=\"total\">\r\n  </el-pagination>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    created() {\r\n      this.getTotalsize();\r\n    },\r\n    props: [\"totalCountOrURL\", \"params\"],\r\n    watch: {\r\n      totalCountOrURL() {\r\n        this.getTotalsize();\r\n      },\r\n      params() {\r\n        this.getTotalsize();\r\n      }\r\n    },\r\n    methods: {\r\n      getTotalsize() {\r\n        if (typeof (this.totalCountOrURL) == \"number\") {\r\n          // 涓簄umber琛ㄧず鍓嶅彴鍒嗛〉 鍊煎嵆涓烘�绘暟  涓嶉渶瑕佷粠鍚庡彴鏌ヨ\r\n          this.total = this.totalCountOrURL;\r\n        } else {\r\n          // 鍙傛暟鑻ユ病鏈夊垵濮嬪寲 鍒欎笉鍚戝悗鍙板彂閫佽姹� (搴旈伩鍏嶅弬鏁版湰韬氨涓簄ull鐨勬儏鍐�)\r\n          for (let p in this.params) {\r\n            if (!this.params[p]) {\r\n              return;\r\n            }\r\n          }\r\n          this.$getJSON(this.totalCountOrURL, this.params).then(res => {\r\n            this.total = res.data[0].count;\r\n            // 鎬绘暟鍙樺寲鍚庯紝椤电爜鍒濆鍖栦负1\r\n            this.page = 1;\r\n          });\r\n        }\r\n\r\n      },\r\n      handleSizeChange(a) {\r\n        this.size = a;\r\n        if (this.page > Math.ceil(this.total / this.size)) {\r\n          this.page = Math.ceil(this.total / this.size);\r\n        }\r\n        this.$emit(\"change\", {\r\n          page: this.page,\r\n          size: this.size\r\n        });\r\n      },\r\n      handleCurrentChange(a) {\r\n        this.page = a;\r\n        this.$emit(\"change\", {\r\n          page: this.page,\r\n          size: this.size\r\n        });\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        size_list: [10, 20, 30, 40],\r\n        total: 400,\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/PageNations/Pagination.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-pagination',{staticStyle:{\"text-align\":\"center\"},attrs:{\"current-page\":_vm.page,\"page-sizes\":_vm.size_list,\"page-size\":_vm.size,\"layout\":\"total, sizes, prev, pager, next, jumper\",\"total\":_vm.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-0e53599c\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/PageNations/Pagination.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0e53599c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Pagination.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Pagination.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Pagination.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0e53599c\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Pagination.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0e53599c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/PageNations/Pagination.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"subdata\" style=\"width:100%;margin-bottom:10px;\" border>\r\n      <el-table-column prop=\"frequency\" label=\"棰戠巼\" :width=\"75\" sortable class-name=\"custom-column\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"name\" label=\"鍚嶇О\" sortable class-name=\"custom-column\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"area\" label=\"鍦板尯\" :width=\"80\" align=\"center\" class-name=\"custom-column\">\r\n      </el-table-column>\r\n      <el-table-column label=\"褰曢煶\" :width=\"50\" align=\"center\" class-name=\"custom-column\">\r\n        <template slot-scope=\"scope\">\r\n          <el-switch v-model=\"scope.row.is_recording\" :active-value=\"1\" :inactive-value=\"0\" :width=\"35\" :ref=\"scope.row.id\"\r\n            disabled>\r\n          </el-switch>\r\n        </template>\r\n      </el-table-column>\r\n    </el-table>\r\n    <Pagination ref=\"pagination\" :totalCountOrURL=\"data.length\" :params=\"{}\" @change=\"handlePageChange\"></Pagination>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\"\r\n  export default {\r\n    props: [\"whiteListIds\"],\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      // 缁勪欢鍙傛暟鍙樺寲鏃讹紝鍒锋柊鏁版嵁\r\n      whiteListIds() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        subdata: [],\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.subdata = this.data.slice(this.size * (this.page - 1), this.size * this.page);\r\n      },\r\n      getData() {\r\n        if (this.whiteListIds) {\r\n          let ids = [];\r\n          for (let key in this.whiteListIds) {\r\n            ids.push(key);\r\n          }\r\n          this.$getJSON(\"/task/s_allWhitelst\", {\r\n            options: [{\r\n              type: \"6\",\r\n              name: \"id\",\r\n              value: ids\r\n            }]\r\n          }).then(res => {\r\n            let data = res.data;\r\n            for (let i = 0; i < data.length; i++) {\r\n              data[i].is_recording = this.whiteListIds[data[i].id];\r\n            }\r\n            this.data = data;\r\n            this.subdata = this.data.slice(this.size * (this.page - 1), this.size * this.page);\r\n          });\r\n        } else {\r\n          this.data = [];\r\n          this.subdata = [];\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .custom-column {\r\n    padding: 2px 0 !important;\r\n    color: #aaaaaa;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/WhiteListOfTask.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\",\"margin-bottom\":\"10px\"},attrs:{\"data\":_vm.subdata,\"border\":\"\"}},[_c('el-table-column',{attrs:{\"prop\":\"frequency\",\"label\":\"棰戠巼\",\"width\":75,\"sortable\":\"\",\"class-name\":\"custom-column\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"name\",\"label\":\"鍚嶇О\",\"sortable\":\"\",\"class-name\":\"custom-column\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"area\",\"label\":\"鍦板尯\",\"width\":80,\"align\":\"center\",\"class-name\":\"custom-column\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"褰曢煶\",\"width\":50,\"align\":\"center\",\"class-name\":\"custom-column\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-switch',{ref:scope.row.id,attrs:{\"active-value\":1,\"inactive-value\":0,\"width\":35,\"disabled\":\"\"},model:{value:(scope.row.is_recording),callback:function ($$v) {_vm.$set(scope.row, \"is_recording\", $$v)},expression:\"scope.row.is_recording\"}})]}}])})],1),_vm._v(\" \"),_c('Pagination',{ref:\"pagination\",attrs:{\"totalCountOrURL\":_vm.data.length,\"params\":{}},on:{\"change\":_vm.handlePageChange}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-4b25040c\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/WhiteListOfTask.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4b25040c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./WhiteListOfTask.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./WhiteListOfTask.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./WhiteListOfTask.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4b25040c\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./WhiteListOfTask.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-4b25040c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/WhiteListOfTask.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-form label-position=\"right\" label-width=\"80px\" size=\"mini\">\r\n    <el-row style=\"margin:0;\">\r\n      <el-col :span=\"6\">\r\n        <el-form-item label=\"浠诲姟鍛ㄦ湡\">\r\n          <el-tag :style=\"tagStyle\">{{ data.period?`${data.period}鍒哷:\"鏃犳暟鎹甛" }}</el-tag>\r\n        </el-form-item>\r\n      </el-col>\r\n      <el-col :span=\"6\">\r\n        <el-form-item label=\"褰曢煶鏃堕暱\">\r\n          <el-tag :style=\"tagStyle\">{{ data.recording_length?`${data.recording_length}绉抈:\"鏃犳暟鎹甛" }}</el-tag>\r\n        </el-form-item>\r\n      </el-col>\r\n      <el-col :span=\"12\">\r\n        <el-form-item label=\"鍒涘缓鏃堕棿\">\r\n          <el-tag :style=\"tagStyle\">{{data.create_time?data.create_time:\"鏃犳暟鎹甛"}}\r\n          </el-tag>\r\n        </el-form-item>\r\n      </el-col>\r\n    </el-row>\r\n    <el-form-item label=\"浠诲姟璇存槑\">\r\n      <el-tag :style=\"tagStyle\">{{ data.detail?data.detail:\"鏃犺鏄嶾" }}</el-tag>\r\n    </el-form-item>\r\n    <el-form-item label=\"鎵弿棰戠巼\">\r\n      <div v-if=\"data.freq_range && data.freq_range.length>0\">\r\n        <el-tag style=\"margin-right:1%\" v-for=\"(value,key) in data.freq_range\" :key=\"key\" type=\"success\" size=\"mini\">\r\n          {{parseFreqRange(value)}}\r\n        </el-tag>\r\n      </div>\r\n      <el-tag v-else :style=\"tagStyle\">鏃犳暟鎹�</el-tag>\r\n    </el-form-item>\r\n    <el-form-item label=\"鐧� 鍚� 鍗昞" label-width=\"75px\">\r\n    </el-form-item>\r\n    <el-form-item label-width=\"0px\">\r\n      <div v-if='data.whitelist && JSON.stringify(data.whitelist) != \"{}\"'>\r\n        <WhiteListOfTask :white-list-ids=\"data.whitelist\"></WhiteListOfTask>\r\n      </div>\r\n      <el-tag v-else :style=\"tagStyle\">鏃犳暟鎹�</el-tag>\r\n    </el-form-item>\r\n  </el-form>\r\n</template>\r\n\r\n<script>\r\n  import WhiteListOfTask from \"@/components/Tables/WhiteListOfTask\";\r\n  export default {\r\n    props: [\"periodTaskId\"],\r\n    components: {\r\n      WhiteListOfTask\r\n    },\r\n    watch: {\r\n      periodTaskId() {\r\n        this.getData();\r\n      }\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    data() {\r\n      return {\r\n        taskVisible: false,\r\n        data: {},\r\n        tagStyle: \"background-color:#fff;color:#999;height:22px;line-height:20px;\"\r\n      };\r\n    },\r\n    methods: {\r\n      getData() {\r\n        this.$getJSON(\"/task/s_period_tasklst\", {\r\n          options: [{\r\n            type: \"1\",\r\n            name: \"id\",\r\n            value: this.periodTaskId\r\n          }]\r\n        }).then(res => {\r\n          this.data = res.data[0];\r\n        });\r\n      },\r\n      parseFreqRange(range) {\r\n        if (range.length == 1) {\r\n          return `${range[0]}`;\r\n        } else {\r\n          return `${range[0]}-${range[1]}`;\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-form-item {\r\n    margin: 0;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Form/PeriodTaskDetail.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-form',{attrs:{\"label-position\":\"right\",\"label-width\":\"80px\",\"size\":\"mini\"}},[_c('el-row',{staticStyle:{\"margin\":\"0\"}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"浠诲姟鍛ㄦ湡\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.period?((_vm.data.period) + \"鍒哱"):\"鏃犳暟鎹甛"))])],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"褰曢煶鏃堕暱\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.recording_length?((_vm.data.recording_length) + \"绉抃"):\"鏃犳暟鎹甛"))])],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"鍒涘缓鏃堕棿\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.create_time?_vm.data.create_time:\"鏃犳暟鎹甛")+\"\\n        \")])],1)],1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"浠诲姟璇存槑\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.detail?_vm.data.detail:\"鏃犺鏄嶾"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鎵弿棰戠巼\"}},[(_vm.data.freq_range && _vm.data.freq_range.length>0)?_c('div',_vm._l((_vm.data.freq_range),function(value,key){return _c('el-tag',{key:key,staticStyle:{\"margin-right\":\"1%\"},attrs:{\"type\":\"success\",\"size\":\"mini\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.parseFreqRange(value))+\"\\n      \")])})):_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(\"鏃犳暟鎹甛")])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鐧� 鍚� 鍗昞",\"label-width\":\"75px\"}}),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label-width\":\"0px\"}},[(_vm.data.whitelist && JSON.stringify(_vm.data.whitelist) != \"{}\")?_c('div',[_c('WhiteListOfTask',{attrs:{\"white-list-ids\":_vm.data.whitelist}})],1):_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(\"鏃犳暟鎹甛")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-a1b2b80c\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Form/PeriodTaskDetail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-a1b2b80c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./PeriodTaskDetail.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PeriodTaskDetail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PeriodTaskDetail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-a1b2b80c\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./PeriodTaskDetail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-a1b2b80c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Form/PeriodTaskDetail.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-form label-position=\"right\" label-width=\"80px\" inline class=\"table-expand\">\r\n      <el-form-item label=\"閫昏緫缂栧彿\">\r\n        <el-tag :style=\"tagStyle\">{{ data.log_id?data.log_id:\"鏃犳暟鎹甛" }}</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"鐗╃悊缂栧彿\">\r\n        <el-tag :style=\"tagStyle\">{{ data.phy_id?data.phy_id:\"鏃犳暟鎹甛" }}</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"璁惧绫诲瀷\">\r\n        <el-tag :style=\"tagStyle\">{{data.dtype_source || data.dtype_move?`${data.dtype_source?data.dtype_source:\"\"} ${data.dtype_move?data.dtype_move:\"\"}`:\"鏃犳暟鎹甛"}}</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"缃戠粶绫诲瀷\">\r\n        <el-tag :style=\"tagStyle\">{{data.dtype_net?data.dtype_net:\"鏃犳暟鎹甛"}}</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"璁惧鐘舵�乗">\r\n        <el-tag v-if=\"data.status_name\" size=\"mini\" :type=\"getTagType(data.status_name)\">{{data.status_name}}</el-tag>\r\n        <el-tag v-else :style=\"tagStyle\">鏃犳暟鎹�</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"璁惧鐢甸噺\">\r\n        <div v-if=\"data.battery\">\r\n          <el-progress type=\"circle\" style=\"bottom:-8px;\" :show-text=\"false\" :stroke-width=\"6\" :width=\"25\" :percentage=\"data.battery\"\r\n            :color=\"getBatteryStatusColor(data.battery)\"></el-progress>\r\n          <span :style=\"tagStyle\">{{`${data.battery}%`}}</span>\r\n        </div>\r\n        <el-tag v-else :style=\"tagStyle\">鏃犳暟鎹�</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"蹇冭烦闂撮殧\">\r\n        <el-tag :style=\"tagStyle\">{{data.heartbeat?`${data.heartbeat}鍒哷:\"鏃犳暟鎹甛"}}</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"涓婃蹇冭烦\">\r\n        <el-tag :style=\"tagStyle\">{{data.last_heartbeat_time?data.last_heartbeat_time:\"鏃犺褰昞"}}</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"璁惧鍦板潃\">\r\n        <el-tag :style=\"tagStyle\">{{data.province || data.city || data.county || data.district || data.street || data.address? ` ${data.province?data.province:\"\"}\r\n          ${data.city?data.city:\"\"} ${data.county?data.county:\"\"} ${data.district?data.district:\"\"} ${data.street?data.street:\"\"}\r\n          ${data.address?data.address:\"\"}`:\"鏃犳暟鎹甛"}}\r\n        </el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"缁忕含鍧愭爣\">\r\n        <el-tag :style=\"tagStyle\">{{ data.lon && data.lat?`${data.lon}E,${data.lat}N`:\"鏃犳暟鎹甛" }}</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"鎿嶄綔绯荤粺\">\r\n        <el-tag :style=\"tagStyle\">{{data.dtype_os || data.os_version?`${data.dtype_os?data.dtype_os:\"\"} ${data.os_version?data.os_version:\"\"}`:\"鏃犳暟鎹甛"}}\r\n        </el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"绯荤粺鏇存柊\">\r\n        <el-tag :style=\"tagStyle\">{{data.update_time?data.update_time:\"鏃犳暟鎹甛"}}\r\n        </el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"涓婄嚎鏃堕棿\">\r\n        <el-tag :style=\"tagStyle\">{{ data.create_time?data.create_time:\"鏃犳暟鎹甛" }}</el-tag>\r\n      </el-form-item>\r\n      <el-form-item label=\"浠诲姟缁勫埆\">\r\n        <div v-if=\"data.task_id\">\r\n          <el-tag :style=\"`${tagStyle}padding-top:0;padding-bottom:0;padding-right:0;`\">{{data.task_id}}\r\n            <el-button @click=\"handleClickViewTask(data.task_id)\">鏌ョ湅</el-button>\r\n          </el-tag>\r\n        </div>\r\n        <el-tag v-else :style=\"tagStyle\">鏈厤缃�</el-tag>\r\n      </el-form-item>\r\n    </el-form>\r\n    <el-dialog style=\"padding:0;\" title=\"鍛ㄦ湡浠诲姟璇︽儏\" :visible.sync=\"taskVisible\" :close-on-click-modal='false' :append-to-body=\"true\"\r\n      width=\"570px\">\r\n      <PeriodTaskDetail ref=\"periodTaskDetail\" :period-task-id=\"data.task_id\"></PeriodTaskDetail>\r\n    </el-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import PeriodTaskDetail from \"@/components/Form/PeriodTaskDetail\";\r\n  export default {\r\n    props: [\"lgid\"],\r\n    components: {\r\n      PeriodTaskDetail\r\n    },\r\n    watch: {\r\n      lgid() {\r\n        this.getData();\r\n      }\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    data() {\r\n      return {\r\n        taskVisible: false,\r\n        data: {},\r\n        tagStyle: \"background-color:#fff;color:#999;height:22px;line-height:20px;\"\r\n      };\r\n    },\r\n    methods: {\r\n      getData() {\r\n        if (this.lgid) {\r\n          this.$getJSON(\"/terminal/s_deviceDetail\", {\r\n            device_lgid: this.lgid\r\n          }).then(res => {\r\n            this.data = res.data[0];\r\n          });\r\n        }\r\n      },\r\n      handleClickViewTask(id) {\r\n        this.taskVisible = true;\r\n        if (this.$refs[\"periodTaskDetail\"]) {\r\n          this.$refs[\"periodTaskDetail\"].getData();\r\n        }\r\n      },\r\n      getBatteryStatusColor(percentage) {\r\n        if (!percentage) {\r\n          percentage = 0;\r\n        }\r\n        let cStart = [255, 0, 0];\r\n        let cEnd = [0, 255, 0];\r\n        let r, g, b;\r\n        r = parseInt(cStart[0] + (cEnd[0] - cStart[0]) * percentage / 100);\r\n        g = parseInt(cStart[1] + (cEnd[1] - cStart[1]) * percentage / 100);\r\n        r = r < 0 ? 0 : r;\r\n        r = r > 255 ? 255 : r;\r\n        g = g < 0 ? 0 : g;\r\n        g = g > 255 ? 255 : g;\r\n        return `rgb(${r},${g},0)`\r\n      },\r\n      getTagType(text) {\r\n        switch (text) {\r\n          case \"绌洪棽\":\r\n            return \"success\";\r\n          case \"绂荤嚎\":\r\n            return \"info\";\r\n          default:\r\n            return \"warning\";\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-form-item {\r\n    margin-right: 0;\r\n    margin-bottom: 0;\r\n    height: 28px;\r\n  }\r\n\r\n  .el-tag .el-button {\r\n    margin: 0 0 0 5px;\r\n    padding: 0 5px 0 5px;\r\n    height: 100%;\r\n  }\r\n\r\n  .el-button {\r\n    color: cornflowerblue;\r\n    background-color: #ddd;\r\n  }\r\n\r\n  .el-dialog .el-dialog__header {\r\n    padding: 5px !important;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Form/DeviceDetail.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-form',{staticClass:\"table-expand\",attrs:{\"label-position\":\"right\",\"label-width\":\"80px\",\"inline\":\"\"}},[_c('el-form-item',{attrs:{\"label\":\"閫昏緫缂栧彿\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.log_id?_vm.data.log_id:\"鏃犳暟鎹甛"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鐗╃悊缂栧彿\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.phy_id?_vm.data.phy_id:\"鏃犳暟鎹甛"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"璁惧绫诲瀷\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.dtype_source || _vm.data.dtype_move?((_vm.data.dtype_source?_vm.data.dtype_source:\"\") + \" \" + (_vm.data.dtype_move?_vm.data.dtype_move:\"\")):\"鏃犳暟鎹甛"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"缃戠粶绫诲瀷\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.dtype_net?_vm.data.dtype_net:\"鏃犳暟鎹甛"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"璁惧鐘舵�乗"}},[(_vm.data.status_name)?_c('el-tag',{attrs:{\"size\":\"mini\",\"type\":_vm.getTagType(_vm.data.status_name)}},[_vm._v(_vm._s(_vm.data.status_name))]):_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(\"鏃犳暟鎹甛")])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"璁惧鐢甸噺\"}},[(_vm.data.battery)?_c('div',[_c('el-progress',{staticStyle:{\"bottom\":\"-8px\"},attrs:{\"type\":\"circle\",\"show-text\":false,\"stroke-width\":6,\"width\":25,\"percentage\":_vm.data.battery,\"color\":_vm.getBatteryStatusColor(_vm.data.battery)}}),_vm._v(\" \"),_c('span',{style:(_vm.tagStyle)},[_vm._v(_vm._s(((_vm.data.battery) + \"%\")))])],1):_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(\"鏃犳暟鎹甛")])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"蹇冭烦闂撮殧\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.heartbeat?((_vm.data.heartbeat) + \"鍒哱"):\"鏃犳暟鎹甛"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"涓婃蹇冭烦\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.last_heartbeat_time?_vm.data.last_heartbeat_time:\"鏃犺褰昞"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"璁惧鍦板潃\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.province || _vm.data.city || _vm.data.county || _vm.data.district || _vm.data.street || _vm.data.address? (\" \" + (_vm.data.province?_vm.data.province:\"\") + \"\\n        \" + (_vm.data.city?_vm.data.city:\"\") + \" \" + (_vm.data.county?_vm.data.county:\"\") + \" \" + (_vm.data.district?_vm.data.district:\"\") + \" \" + (_vm.data.street?_vm.data.street:\"\") + \"\\n        \" + (_vm.data.address?_vm.data.address:\"\")):\"鏃犳暟鎹甛")+\"\\n      \")])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"缁忕含鍧愭爣\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.lon && _vm.data.lat?((_vm.data.lon) + \"E,\" + (_vm.data.lat) + \"N\"):\"鏃犳暟鎹甛"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鎿嶄綔绯荤粺\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.dtype_os || _vm.data.os_version?((_vm.data.dtype_os?_vm.data.dtype_os:\"\") + \" \" + (_vm.data.os_version?_vm.data.os_version:\"\")):\"鏃犳暟鎹甛")+\"\\n      \")])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"绯荤粺鏇存柊\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.update_time?_vm.data.update_time:\"鏃犳暟鎹甛")+\"\\n      \")])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"涓婄嚎鏃堕棿\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.create_time?_vm.data.create_time:\"鏃犳暟鎹甛"))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"浠诲姟缁勫埆\"}},[(_vm.data.task_id)?_c('div',[_c('el-tag',{style:((_vm.tagStyle + \"padding-top:0;padding-bottom:0;padding-right:0;\"))},[_vm._v(_vm._s(_vm.data.task_id)+\"\\n          \"),_c('el-button',{on:{\"click\":function($event){_vm.handleClickViewTask(_vm.data.task_id)}}},[_vm._v(\"鏌ョ湅\")])],1)],1):_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(\"鏈厤缃甛")])],1)],1),_vm._v(\" \"),_c('el-dialog',{staticStyle:{\"padding\":\"0\"},attrs:{\"title\":\"鍛ㄦ湡浠诲姟璇︽儏\",\"visible\":_vm.taskVisible,\"close-on-click-modal\":false,\"append-to-body\":true,\"width\":\"570px\"},on:{\"update:visible\":function($event){_vm.taskVisible=$event}}},[_c('PeriodTaskDetail',{ref:\"periodTaskDetail\",attrs:{\"period-task-id\":_vm.data.task_id}})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-55b0e7f4\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Form/DeviceDetail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-55b0e7f4\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./DeviceDetail.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceDetail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceDetail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-55b0e7f4\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./DeviceDetail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-55b0e7f4\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Form/DeviceDetail.vue\n// module id = null\n// module chunks = ","<template>\r\n  <baidu-map id=\"mapContainer\" ref=\"mapContainer\" class=\"map_device\" center=\"涓婃捣\" :scroll-wheel-zoom=\"map.scrollWheelZoom\"\r\n    :dragging=\"map.dragging\" :double-click-zoom=\"map.dbClickZoom\" @click=\"mapClick\" @mousemove=\"mapMouseMove\"\r\n    @rightclick=\"mapRightClick\" :mapStyle=\"map.mapStyle\" @ready=\"ready\">\r\n    <bm-navigation anchor=\"BMAP_ANCHOR_TOP_RIGHT\"></bm-navigation>\r\n    <bm-control :offset=\"{width:10,height:10}\">\r\n      <select-device-status @change=\"changeDeviceStatus\"></select-device-status>\r\n    </bm-control>\r\n    <bm-control :offset=\"{width:140,height:10}\">\r\n      <el-button-group>\r\n        <el-button title=\"鐢诲渾\" icon=\"iconfont icon-xuanzeyuanquanxuanzhong\" @click=\"drawGeometry('circle')\"></el-button>\r\n        <el-button title=\"鐢荤煩褰" icon=\"iconfont icon-kuangxuan\" @click=\"drawGeometry('rectangle')\"></el-button>\r\n        <el-button title=\"鐢诲杈瑰舰\" icon=\"iconfont icon-duobianxing\" @click=\"drawGeometry('polygon')\"></el-button>\r\n        <el-button title=\"鎷栧姩鍦板浘\" icon=\"iconfont icon-shou\" @click=\"hander\"></el-button>\r\n      </el-button-group>\r\n    </bm-control>\r\n    <bm-control :offset=\"{width:380,height:10}\">\r\n      <el-select v-model=\"district\" placeholder=\"鎸夎鏀垮尯閫夋嫨\" @change=\"handleDistricChange\">\r\n        <el-option v-for=\"item in districtList\" :key=\"item\" :label=\"item\" :value=\"item\">\r\n        </el-option>\r\n      </el-select>\r\n    </bm-control>\r\n    <bm-control v-show=\"selectedTable.show\" :offset=\"{width:140,height:60}\">\r\n      <el-card>\r\n        <div @mouseover=\"map.scrollWheelZoom=false;\" @mouseout=\"map.scrollWheelZoom=true;\">\r\n          <el-table :data=\"selected\" style=\"width:570px;margin-bottom:15px;\" height=\"250px\" border size=\"mini\"\r\n            @selection-change=\"handleSelectionChange\">\r\n            <el-table-column type=\"selection\" width=\"35\"></el-table-column>\r\n            <el-table-column prop=\"log_id\" label=\"缂栧彿\" width=\"130\">\r\n            </el-table-column>\r\n            <el-table-column label=\"鍦板潃\">\r\n              <template slot-scope=\"scope\">{{scope.row.province || scope.row.city || scope.row.county ||\r\n                scope.row.district || scope.row.street || scope.row.address ? `\r\n                ${scope.row.province?scope.row.province:\"\"} ${scope.row.city?scope.row.city:\"\"}\r\n                ${scope.row.county?scope.row.county:\"\"} ${scope.row.district?scope.row.district:\"\"}\r\n                ${scope.row.street?scope.row.street:\"\"} ${scope.row.address?scope.row.address:\"\"}`:\"鏃犳暟鎹甛"}}\r\n              </template>\r\n            </el-table-column>\r\n            <el-table-column label=\"鍛ㄦ湡浠诲姟\" width=\"70\">\r\n              <template slot-scope=\"scope\">\r\n                {{scope.row.task_id?scope.row.task_id:\"鏈厤缃甛"}}\r\n              </template>\r\n            </el-table-column>\r\n            <el-table-column fixed=\"right\" label=\"鎿嶄綔\" width=\"50\">\r\n              <template slot-scope=\"scope\">\r\n                <el-button type=\"text\" size=\"small\" @click=\"locateDvice({lng: scope.row.lon, lat: scope.row.lat})\">浣嶇疆</el-button>\r\n              </template>\r\n            </el-table-column>\r\n          </el-table>\r\n          <el-button-group>\r\n            <el-button type=\"primary\" plain size=\"small\" @click=\"scan(idsOfDevices)\">鎵彴</el-button>\r\n            <el-button type=\"primary\" plain size=\"small\" @click=\"record(idsOfDevices)\">褰曢煶</el-button>\r\n            <el-button type=\"primary\" plain size=\"small\" @click=\"reboot(idsOfDevices)\">閲嶅惎</el-button>\r\n            <el-button type=\"primary\" plain size=\"small\" @click=\"setTask(idsOfDevices)\">閰嶇疆浠诲姟</el-button>\r\n          </el-button-group>\r\n          <el-button style=\"float:right;\" @click=\"selectedTable.show=false;\" type=\"info\" plain size=\"small\">鍏抽棴</el-button>\r\n        </div>\r\n      </el-card>\r\n    </bm-control>\r\n    <bm-marker v-for=\"device in markers\" @click=\"showInfoWindow(device)\" :icon=\"icons[device.status]\" :key=\"device.phy_id\"\r\n      :title=\"device.log_id\" :position=\"{lng: device.lon, lat: device.lat}\">\r\n    </bm-marker>\r\n    <bm-marker v-if=\"pointer.show\" animation=\"BMAP_ANIMATION_BOUNCE\" :position=\"pointer.position\" :icon=\"pointer.icon\"></bm-marker>\r\n    <bm-info-window title=\"璁惧淇℃伅\" :show=\"infowindow.show\" :position=\"infowindow.position\" :width=\"430\" @open=\"infowindow.show=true;\"\r\n      @close=\"infowindow.show=false;\">\r\n      <device-detail :lgid=\"infowindow.device_lgid\"></device-detail>\r\n      <el-button-group style=\"margin-top:15px;margin-left:10px;\">\r\n        <el-button type=\"info\" plain size=\"small\" @click=\"scan([infowindow.device_lgid])\">鎵彴</el-button>\r\n        <el-button type=\"info\" plain size=\"small\" @click=\"record([infowindow.device_lgid])\">褰曢煶</el-button>\r\n        <el-button type=\"info\" plain size=\"small\" @click=\"reboot([infowindow.device_lgid])\">閲嶅惎</el-button>\r\n        <el-button type=\"info\" plain size=\"small\" @click=\"setTask([infowindow.device_lgid])\">閰嶇疆浠诲姟</el-button>\r\n      </el-button-group>\r\n    </bm-info-window>\r\n    <bm-circle v-if=\"drawing.drawingType=='circle'\" :center=\"drawing.circlePath.center\" :radius=\"drawing.circlePath.radius\"\r\n      :stroke-color=\"drawing.styleOptions.strokeColor\" :fill-color=\"drawing.styleOptions.fillColor\" :stroke-opacity=\"drawing.styleOptions.strokeOpacity\"\r\n      :fill-opacity=\"drawing.styleOptions.fillOpacity\" :stroke-weight=\"drawing.styleOptions.strokeWeight\" :stroke-style=\"drawing.styleOptions.strokeStyle\"\r\n      :editing=\"drawing.editing\"></bm-circle>\r\n    <bm-polygon v-else-if=\"drawing.drawingType=='polygon' || drawing.drawingType=='rectangle'\" :path=\"drawing.polygonPath\"\r\n      :stroke-color=\"drawing.styleOptions.strokeColor\" :fill-color=\"drawing.styleOptions.fillColor\" :stroke-opacity=\"drawing.styleOptions.strokeOpacity\"\r\n      :fill-opacity=\"drawing.styleOptions.fillOpacity\" :stroke-weight=\"drawing.styleOptions.strokeWeight\" :stroke-style=\"drawing.styleOptions.strokeStyle\"\r\n      :editing=\"drawing.editing\"></bm-polygon>\r\n  </baidu-map>\r\n</template>\r\n<script>\r\n  import SelectDeviceStatus from \"@/components/Selectors/DeviceStatus\";\r\n  import DeviceDetail from \"@/components/Form/DeviceDetail\";\r\n  const ER = 6370996.81; // earth radius\r\n  const PI = 3.1415926;\r\n  export default {\r\n    components: {\r\n      SelectDeviceStatus,\r\n      DeviceDetail\r\n    },\r\n    watch: {},\r\n    data() {\r\n      return {\r\n        // 鍦板浘瀹瑰櫒鍙傛暟\r\n        map: {\r\n          mapInterface: null, //BMap绫籠r\n          mapInstance: null, //map瀹炰緥\r\n          mapCursorDefault: null,\r\n          scrollWheelZoom: true,\r\n          dragging: true,\r\n          dbClickZoom: false,\r\n          mapStyle: {\r\n            styleJson: [{\r\n              featureType: \"highway\",\r\n              elementType: \"all\",\r\n              stylers: {\r\n                weight: \"0.1\",\r\n                visibility: \"on\"\r\n              }\r\n            }]\r\n          }\r\n        },\r\n        // 鍦ㄨ澶囪〃涓偣鍑诲悗锛屽湪鍦板浘涓樉绀鸿澶囦綅缃殑 鎸囩ず鏍囧織 鍙傛暟\r\n        pointer: {\r\n          position: {},\r\n          show: false,\r\n          icon: {\r\n            url: \"/image/pointer_down.png\",\r\n            size: {\r\n              width: 32,\r\n              height: 32\r\n            },\r\n            opts: {\r\n              anchor: {\r\n                width: 16,\r\n                height: 32\r\n              }\r\n            }\r\n          },\r\n          timeoutHandle: null\r\n        },\r\n        // 妗嗛�夌瓑鐨勭粯鍒跺弬鏁癨r\n        drawing: {\r\n          isStartPoint: true, // 鏍囪瘑涓嬩竴涓偣鏄捣鐐硅繕鏄腑闂寸偣\r\n          isFinished: true, // 鏍囪瘑缁樺浘鐘舵�侊紝鐢ㄤ簬纭畾mousemove鏄惁鍝嶅簲\r\n          drawingType: \"\", //榛樿鎵嬪舰锛屼笉鍋氬浘\r\n          circlePath: {\r\n            center: {\r\n              lng: NaN,\r\n              lat: NaN\r\n            },\r\n            radius: 0\r\n          },\r\n          polygonPath: [],\r\n          polygonPointCnt: 0,\r\n          styleOptions: {\r\n            strokeColor: \"#87CEEB\", //杈圭嚎棰滆壊銆俓r\n            fillColor: \"#87CEEB\", //濉厖棰滆壊銆傚綋鍙傛暟涓虹┖鏃讹紝鍦嗗舰灏嗘病鏈夊~鍏呮晥鏋溿�俓r\n            strokeWeight: 3, //杈圭嚎鐨勫搴︼紝浠ュ儚绱犱负鍗曚綅銆俓r\n            strokeOpacity: 0.6, //杈圭嚎閫忔槑搴︼紝鍙栧�艰寖鍥�0 - 1銆俓r\n            fillOpacity: 0.4, //濉厖鐨勯�忔槑搴︼紝鍙栧�艰寖鍥�0 - 1銆俓r\n            strokeStyle: \"solid\" //杈圭嚎鐨勬牱寮忥紝solid鎴杁ashed銆俓r\n          },\r\n          editing: false\r\n        },\r\n        icons: {\r\n          \"-1\": {\r\n            url: \"/image/error.png\",\r\n            size: {\r\n              width: 23,\r\n              height: 23\r\n            },\r\n            opts: {\r\n              anchor: {\r\n                width: 11,\r\n                height: 23\r\n              }\r\n            }\r\n          },\r\n          \"0\": {\r\n            url: \"/image/offline.png\",\r\n            size: {\r\n              width: 23,\r\n              height: 23\r\n            },\r\n            opts: {\r\n              anchor: {\r\n                width: 11,\r\n                height: 23\r\n              }\r\n            }\r\n          },\r\n          \"1\": {\r\n            url: \"/image/online.png\",\r\n            size: {\r\n              width: 23,\r\n              height: 23\r\n            },\r\n            opts: {\r\n              anchor: {\r\n                width: 11,\r\n                height: 23\r\n              }\r\n            }\r\n          },\r\n          \"2\": {\r\n            url: \"/image/online.png\",\r\n            size: {\r\n              width: 23,\r\n              height: 23\r\n            },\r\n            opts: {\r\n              anchor: {\r\n                width: 11,\r\n                height: 23\r\n              }\r\n            }\r\n          },\r\n          \"3\": {\r\n            url: \"/image/online.png\",\r\n            size: {\r\n              width: 23,\r\n              height: 23\r\n            },\r\n            opts: {\r\n              anchor: {\r\n                width: 11,\r\n                height: 23\r\n              }\r\n            }\r\n          }\r\n        },\r\n        // 鍦板浘绐椾綋 鐢ㄤ簬鏄剧ず璁惧淇℃伅\r\n        infowindow: {\r\n          show: false,\r\n          position: {\r\n            lng: 116.404,\r\n            lat: 39.915\r\n          },\r\n          device_lgid: \"\"\r\n        },\r\n        selectedTable: {\r\n          show: false\r\n        },\r\n        devices: [], //鎵�鏈夌殑璁惧\r\n        markers: [], //鍦板浘涓婂浘鏍囨樉绀虹殑璁惧\r\n        selected: [], //閫氳繃鍥惧舰鎴栬�呰鏀垮尯閫夋嫨鍑虹殑璁惧(閫氳繃table鏄剧ず)\r\n        idsOfDevices: [], //闇�瑕佷笅鍙戞寚浠ょ殑璁惧id鍒楄〃\r\n        districtList: [\r\n          \"鍏ㄩ儴\",\r\n          \"榛勬郸鍖篭",\r\n          \"寰愭眹鍖篭",\r\n          \"闀垮畞鍖篭",\r\n          \"闈欏畨鍖篭",\r\n          \"鏅檧鍖篭",\r\n          \"铏瑰彛鍖篭",\r\n          \"鏉ㄦ郸鍖篭",\r\n          \"闂佃鍖篭",\r\n          \"瀹濆北鍖篭",\r\n          \"鍢夊畾鍖篭",\r\n          \"娴︿笢鏂板尯\",\r\n          \"閲戝北鍖篭",\r\n          \"鏉炬睙鍖篭",\r\n          \"闈掓郸鍖篭",\r\n          \"濂夎搐鍖篭",\r\n          \"宕囨槑鍖篭",\r\n          \"鍏跺畠\"\r\n        ],\r\n        district: null\r\n      };\r\n    },\r\n    created() {\r\n      this.searchDevices();\r\n    },\r\n    mounted() {},\r\n    methods: {\r\n      handleDistricChange() {\r\n        if (this.district) {\r\n          this.selected = [];\r\n          if (this.district == \"鍏ㄩ儴\") {\r\n            this.selected = this.markers;\r\n          } else if (this.district == \"鍏跺畠\") {\r\n            this.selected = [];\r\n            for (let i = 0; i < this.markers.length; i++) {\r\n              if (!this.districtList.in_array(this.markers[i].district)) {\r\n                this.selected.push(this.markers[i]);\r\n              }\r\n            }\r\n          } else {\r\n            for (let i = 0; i < this.markers.length; i++) {\r\n              if (\r\n                this.markers[i].district &&\r\n                this.markers[i].district.trim() == this.district\r\n              ) {\r\n                this.selected.push(this.markers[i]);\r\n              }\r\n            }\r\n          }\r\n          if (this.selected.length > 0) {\r\n            this.selectedTable.show = true;\r\n          }\r\n        }\r\n      },\r\n      ready(params) {\r\n        this.map.mapInterface = params.BMap;\r\n        this.map.mapInstance = params.map;\r\n        this.map.mapCursorDefault = params.map.getDefaultCursor();\r\n      },\r\n      handleSelectionChange(selection) {\r\n        this.idsOfDevices = [];\r\n        selection.map(item => this.idsOfDevices.push(item.log_id));\r\n      },\r\n      // 鍦ㄥ湴鍥句笂鎸囩ず璁惧浣嶇疆\r\n      locateDvice(position) {\r\n        clearTimeout(this.pointer.timeoutHandle);\r\n        this.pointer.position = position;\r\n        this.pointer.show = true;\r\n        this.pointer.timeoutHandle = setTimeout(() => {\r\n          this.pointer.show = false;\r\n        }, 1200);\r\n      },\r\n      getTagType(text) {\r\n        switch (text) {\r\n          case \"绌洪棽\":\r\n            return \"success\";\r\n          case \"绂荤嚎\":\r\n            return \"info\";\r\n          default:\r\n            return \"warning\";\r\n        }\r\n      },\r\n      // 鐐瑰嚮鍦板浘 鎺у埗缁樺浘\r\n      mapClick(e) {\r\n        const drawType = this.drawing.drawingType;\r\n        if (drawType == \"\") {\r\n          return;\r\n        }\r\n        if (this.drawing.isStartPoint) {\r\n          if (drawType == \"circle\") {\r\n            this.drawing.circlePath.center = e.point;\r\n            this.drawing.circlePath.radius = 0;\r\n          } else if (drawType == \"rectangle\") {\r\n            this.drawing.polygonPath = [e.point];\r\n          } else if (drawType == \"polygon\") {\r\n            this.drawing.polygonPath = [e.point];\r\n            this.drawing.polygonPointCnt = 1;\r\n          }\r\n          this.drawing.isStartPoint = false;\r\n          this.drawing.isFinished = false;\r\n        } else {\r\n          if (drawType == \"polygon\") {\r\n            if (this.drawing.polygonPointCnt == this.drawing.polygonPath.length) {\r\n              this.drawing.polygonPath.push(e.point);\r\n            }\r\n            this.drawing.polygonPointCnt++;\r\n          }\r\n        }\r\n      },\r\n      // 瀹炵幇鍔ㄦ�佺粯鍥炬晥鏋淺r\n      mapMouseMove(e) {\r\n        if (this.drawing.isFinished) {\r\n          return;\r\n        }\r\n        if (this.drawing.drawingType == \"circle\") {\r\n          this.drawing.circlePath.radius = e.target.getDistance(\r\n            this.drawing.circlePath.center,\r\n            e.point\r\n          );\r\n        } else if (this.drawing.drawingType == \"rectangle\") {\r\n          const TL = this.drawing.polygonPath[0]; // top left\r\n          const BR = e.point; // bottom right\r\n          this.drawing.polygonPath = [\r\n            TL,\r\n            {\r\n              lng: BR.lng,\r\n              lat: TL.lat\r\n            },\r\n            BR,\r\n            {\r\n              lng: TL.lng,\r\n              lat: BR.lat\r\n            }\r\n          ];\r\n        } else if (this.drawing.drawingType == \"polygon\") {\r\n          if (this.drawing.polygonPointCnt == this.drawing.polygonPath.length) {\r\n            this.drawing.polygonPath.push(e.point);\r\n          } else {\r\n            this.$set(\r\n              this.drawing.polygonPath,\r\n              this.drawing.polygonPath.length - 1,\r\n              e.point\r\n            );\r\n          }\r\n        }\r\n      },\r\n      // 鍙抽敭鍦板浘 鎺у埗缁樺浘\r\n      mapRightClick(e) {\r\n        if (this.drawing.isFinished) {\r\n          return;\r\n        }\r\n        if (this.drawing.drawingType == \"circle\") {\r\n          this.drawing.circlePath.radius = e.target.getDistance(\r\n            this.drawing.circlePath.center,\r\n            e.point\r\n          );\r\n          this.drawing.isStartPoint = true;\r\n          this.drawing.isFinished = true;\r\n          this.selectByGeometry();\r\n        } else if (this.drawing.drawingType == \"rectangle\") {\r\n          const TL = this.drawing.polygonPath[0]; // top left\r\n          const BR = e.point; // bottom right\r\n          this.drawing.polygonPath = [\r\n            TL,\r\n            {\r\n              lng: BR.lng,\r\n              lat: TL.lat\r\n            },\r\n            BR,\r\n            {\r\n              lng: TL.lng,\r\n              lat: BR.lat\r\n            }\r\n          ];\r\n          this.drawing.isStartPoint = true;\r\n          this.drawing.isFinished = true;\r\n          this.selectByGeometry();\r\n        } else if (this.drawing.drawingType == \"polygon\") {\r\n          this.drawing.isStartPoint = true;\r\n          this.drawing.isFinished = true;\r\n          this.selectByGeometry();\r\n        }\r\n      },\r\n      // 璁剧疆缁樺浘绫诲瀷 骞跺垵濮嬪寲鍙傛暟\r\n      drawGeometry(drawType) {\r\n        if (this.drawing.drawingType == drawType) {\r\n          return;\r\n        }\r\n        //璁剧疆鍦板浘鎸囬拡鏍峰紡\r\n        this.map.mapInstance.setDefaultCursor(\"crosshair\");\r\n        this.drawing.drawingType = drawType;\r\n        // 鎸夌被鍨嬪垵濮嬪寲\r\n        if (drawType == \"circle\") {\r\n          this.drawing.circlePath.center = {\r\n            lng: NaN,\r\n            lat: NaN\r\n          };\r\n          this.drawing.radius = 0;\r\n        } else if (drawType == \"rectangle\") {\r\n          this.drawing.polygonPath = [];\r\n        } else if (drawType == \"polygon\") {\r\n          this.drawing.polygonPath = [];\r\n          this.drawing.polygonPointCnt = 0;\r\n        }\r\n        this.drawing.isStartPoint = true; //涓嬩竴涓偣涓虹粯鍥惧紑濮嬬殑绗竴涓偣\r\n        this.drawing.isFinished = true; // 鍒濆涓簍rue锛岃繖鏍烽伩鍏嶅湪 click 涔嬪墠鍝嶅簲MouseMove鍜宒bclick浜嬩欢\r\n      },\r\n      hander() {\r\n        if (this.drawing.drawingType == \"\") {\r\n          return;\r\n        }\r\n        //璁剧疆鍦板浘鎸囬拡鏍峰紡\r\n        this.map.mapInstance.setDefaultCursor(this.map.mapCursorDefault);\r\n        this.drawing.drawingType = \"\";\r\n      },\r\n      // 閫夊尯缁樺埗瀹屾垚鍚庯紝閫夋嫨鍑洪�夊尯鍐呯殑璁惧鐐筡r\n      selectByGeometry() {\r\n        this.selected = [];\r\n        for (let index = 0; index < this.markers.length; index++) {\r\n          const element = this.markers[index];\r\n          const pnt = {\r\n            lng: element.lon,\r\n            lat: element.lat\r\n          };\r\n          let flag;\r\n          switch (this.drawing.drawingType) {\r\n            case \"circle\":\r\n              flag = this.isPointInCircle(pnt, this.drawing.circlePath);\r\n              break;\r\n            case \"rectangle\":\r\n              flag = this.isPointInRect(pnt, this.drawing.polygonPath);\r\n              break;\r\n            default:\r\n              flag = this.isPointInPolygon(pnt, this.drawing.polygonPath);\r\n              break;\r\n          }\r\n          if (flag) {\r\n            this.selected.push(element);\r\n          }\r\n        }\r\n        if (this.selected.length > 0) {\r\n          this.selectedTable.show = true;\r\n        } else {\r\n          this.$message({\r\n            message: \"鏈�変腑浠讳綍璁惧\",\r\n            type: \"warning\"\r\n          });\r\n        }\r\n      },\r\n      // 鏄剧ず璁惧淇℃伅\r\n      showInfoWindow(device) {\r\n        this.infowindow.show = true;\r\n        this.infowindow.position = {\r\n          lng: device.lon,\r\n          lat: device.lat\r\n        };\r\n        this.infowindow.device_lgid = device.log_id;\r\n      },\r\n      changeDeviceStatus(value) {\r\n        if (value.length == 0) {\r\n          this.markers = this.devices;\r\n        } else {\r\n          let markers = [];\r\n          for (var i = 0; i < this.devices.length; i++) {\r\n            var device = this.devices[i];\r\n            if (value.in_array(device.status * 1)) markers.push(device);\r\n          }\r\n          this.markers = markers;\r\n        }\r\n      },\r\n      searchDevices() {\r\n        this.$getJSON(\"/terminal/s_devicelst_all\", {}).then(res => {\r\n          this.devices = res.data;\r\n          this.markers = this.devices;\r\n        });\r\n      },\r\n      // 鎸夌悆闈㈠叕寮忚绠楄窛绂籠r\n      getDistance(p1, p2) {\r\n        let p1x = this.degreeToRad(p1.lng),\r\n          p1y = this.degreeToRad(p1.lat),\r\n          p2x = this.degreeToRad(p2.lng),\r\n          p2y = this.degreeToRad(p2.lat);\r\n        return (\r\n          ER *\r\n          Math.acos(\r\n            Math.sin(p1y) * Math.sin(p2y) +\r\n            Math.cos(p1y) * Math.cos(p2y) * Math.cos(p2x - p1x)\r\n          )\r\n        );\r\n      },\r\n      degreeToRad(degree) {\r\n        return Math.PI * degree / 180;\r\n      },\r\n      radToDegree(radian) {\r\n        return 180 * radian / Math.PI;\r\n      },\r\n      isPointInCircle(pnt, circlePath) {\r\n        let distance = this.getDistance(pnt, circlePath.center);\r\n        return distance <= circlePath.radius;\r\n      },\r\n      isPointInRect(pnt, rectPath) {\r\n        let TL = rectPath[0], // topleft corner\r\n          BR = rectPath.length == 2 ? rectPath[1] : rectPath[2]; // bottomright corner\r\n        return (\r\n          (pnt.lng - TL.lng) * (pnt.lng - BR.lng) <= 0 &&\r\n          (pnt.lat - TL.lat) * (pnt.lat - BR.lat) <= 0\r\n        );\r\n      },\r\n      // 鑾峰彇骞抽潰鍑犱綍鍥惧舰鐨勫妗嗭紙宸︿笂銆佸彸涓嬮《鐐癸級\r\n      getBounds(path) {\r\n        let arr_x = path.map(function (value, index, arr) {\r\n          return value.lng;\r\n        });\r\n        let arr_y = path.map(function (value, index, arr) {\r\n          return value.lat;\r\n        });\r\n        return [{\r\n            lng: arr_x.min(),\r\n            lat: arr_y.max()\r\n          },\r\n          {\r\n            lng: arr_x.max(),\r\n            lat: arr_y.min()\r\n          }\r\n        ];\r\n      },\r\n      // 鍒ゆ柇鐐规槸鍚﹀湪澶氳竟褰㈠唴\r\n      isPointInPolygon(pnt, polygonPath) {\r\n        if (!this.isPointInRect(pnt, this.getBounds(polygonPath))) {\r\n          return false;\r\n        }\r\n        let len = polygonPath.length;\r\n        let cnt = 0;\r\n        let tolerance = 2e-10;\r\n        let pStart, pEnd; // 澶氳竟褰㈣竟鐨勮捣鐐广�佺粓鐐筡r\n        pStart = polygonPath[0];\r\n        for (let i = 1; i <= len; ++i) {\r\n          if (pnt.lng == pStart.lng && pnt.lat == pStart.lat) {\r\n            return true; // 涓庤捣鐐归噸鍚堬紝璇存槑鍦ㄥ杈瑰舰涓奬r\n          }\r\n          pEnd = polygonPath[i % len]; //澶氳竟褰㈡渶鍚庝竴鏉¤竟鐨勭粓鐐瑰嵆绗竴鏉¤竟鐨勮捣鐐筡r\n          if (\r\n            pnt.lat < Math.min(pStart.lat, pEnd.lat) ||\r\n            pnt.lat > Math.max(pStart.lat, pEnd.lat)\r\n          ) {\r\n            pStart = pEnd;\r\n            continue; // 姘村钩灏勭嚎涓庤竟涓嶇浉浜わ紝鍒欑洿鎺ヨ烦鍒颁笅涓�鏉¤竟\r\n          }\r\n          if (\r\n            pnt.lat > Math.min(pStart.lat, pEnd.lat) &&\r\n            pnt.lat < Math.max(pStart.lat, pEnd.lat)\r\n          ) {\r\n            if (pnt.lng <= Math.max(pStart.lng, pEnd.lng)) {\r\n              // 杈规按骞砛r\n              if (\r\n                pStart.lat == pEnd.lat &&\r\n                pnt.lng >= Math.min(pStart.lng, pEnd.lng)\r\n              ) {\r\n                return true;\r\n              }\r\n              // 杈瑰瀭鐩碶r\n              if (pStart.lng == pEnd.lng) {\r\n                if (pStart.lng == pnt.lng) {\r\n                  return true;\r\n                } else {\r\n                  ++cnt;\r\n                }\r\n              } else {\r\n                let r =\r\n                  (pnt.lat - pStart.lat) *\r\n                  (pEnd.lng - pStart.lng) /\r\n                  (pEnd.lat - pStart.lat) +\r\n                  pStart.lng;\r\n                if (Math.abs(pnt.lng - r) < tolerance) {\r\n                  return true;\r\n                }\r\n                if (pnt.lng < r) {\r\n                  ++cnt;\r\n                }\r\n              }\r\n            }\r\n          } else {\r\n            // 灏勭嚎缁忚繃杈圭殑缁堢偣\r\n            if (pnt.lat == pEnd.lat && pnt.lng <= pEnd.lng) {\r\n              let pNext = polygonPath[(i + 1) % len];\r\n              if (\r\n                pnt.lat >= Math.min(pStart.lat, pNext.lat) &&\r\n                pnt.lat <= Math.max(pStart.lat, pNext.lat)\r\n              ) {\r\n                ++cnt; // 褰撳墠杈逛笌涓嬩竴鏉¤竟鍦ㄥ皠绾跨殑寮備晶\r\n              } else {\r\n                cnt += 2; // 褰撳墠杈逛笌涓嬩竴鏉¤竟鍦ㄥ皠绾跨殑鍚屼晶\r\n              }\r\n            }\r\n          }\r\n          pStart = pEnd;\r\n        }\r\n        if (cnt % 2 == 0) {\r\n          return false;\r\n        } else {\r\n          return true;\r\n        }\r\n      },\r\n      async setTask(deviceIdList) {\r\n        if (deviceIdList.length == 0) {\r\n          this.$message({\r\n            message: \"璇烽�夋嫨璁惧\",\r\n            type: \"warning\"\r\n          });\r\n          return;\r\n        }\r\n\r\n        let taskInfo = await this.$prompt(\"璇疯緭鍏ュ懆鏈熶换鍔″彿\", \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          inputPattern: /^[1-9]\\d*$/,\r\n          inputErrorMessage: \"浠诲姟鍙锋牸寮忎笉姝g‘\"\r\n        }).catch(() => {});\r\n        if (taskInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        let task_id = taskInfo.value;\r\n        let noTask = this.getDeviceOfNoTask(deviceIdList);\r\n        let msg = `璁惧 ${deviceIdList.join(\",\")} 鐨勫懆鏈熶换鍔″皢琚厤缃负${task_id}`;\r\n        if (noTask.length > 0) {\r\n          msg = `${msg}锛屽叾涓� ${noTask.join(\r\n          \",\"\r\n        )} 鍦ㄨ缃垚鍔熷悗灏嗚閲嶅惎浠ヤ娇鐢ㄦ柊鐨勯厤缃甡;\r\n        }\r\n        msg = `${msg}锛屾槸鍚︾户缁紵`;\r\n        let confirmInfo = await this.$confirm(msg, \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          type: \"warning\"\r\n        }).catch(() => {});\r\n        if (confirmInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        this.$getJSON(\"/terminal/set_periodTask\", {\r\n            task_id: task_id,\r\n            device_list: deviceIdList\r\n          })\r\n          .then(res => {\r\n            if (res.success) {\r\n              this.$message({\r\n                message: res.message,\r\n                type: \"success\"\r\n              });\r\n            } else {\r\n              this.$message.error(res.message);\r\n            }\r\n          })\r\n          .catch(() => {});\r\n      },\r\n      getDeviceOfNoTask(deviceIdList) {\r\n        let rst = [];\r\n        for (let i = 0; i < deviceIdList.length; i++) {\r\n          for (let j = 0; j < this.selected.length; j++) {\r\n            if (this.selected[j].log_id == deviceIdList[i]) {\r\n              if (this.selected[j].task_id == null) {\r\n                rst.push(deviceIdList[i]);\r\n              }\r\n              break;\r\n            }\r\n          }\r\n        }\r\n        return rst;\r\n      },\r\n      async scan(deviceIdList) {\r\n        if (deviceIdList.length == 0) {\r\n          this.$message({\r\n            message: \"璇烽�夋嫨璁惧\",\r\n            type: \"warning\"\r\n          });\r\n          return;\r\n        }\r\n\r\n        let msg = `姝ゆ搷浣滃皢瀵硅澶� ${deviceIdList.join(\r\n        \",\"\r\n      )} 涓嬪彂鎵彴浠诲姟锛屾槸鍚︾户缁紵`;\r\n        let confirmInfo = await this.$confirm(msg, \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          type: \"warning\"\r\n        }).catch(() => {});\r\n        if (confirmInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        this.$getJSON(\"/apicloud/jpush\", {\r\n          devices: deviceIdList,\r\n          command: \"scan\"\r\n        }).then(res => {\r\n          this.$message({\r\n            message: `浠诲姟涓嬪彂鎴愬姛锛屽嵆鏃朵换鍔″彿涓� ${res.task_id}`,\r\n            type: \"success\"\r\n          });\r\n        });\r\n      },\r\n      async record(deviceIdList) {\r\n        if (deviceIdList.length == 0) {\r\n          this.$message({\r\n            message: \"璇烽�夋嫨璁惧\",\r\n            type: \"warning\"\r\n          });\r\n          return;\r\n        }\r\n\r\n        let freqInfo = await this.$prompt(\"璇疯緭鍏ラ鐜囷紙鑼冨洿锛�87-108锛塡", \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          inputValidator: function (value) {\r\n            let f = Number(value);\r\n            if (isNaN(f)) {\r\n              return \"璇疯緭鍏ユ暟鍊糪";\r\n            }\r\n            if (value.match(/^[0-9]+([.]{1}[0-9]{1})?$/) === null) {\r\n              return \"棰戠巼涓烘暣鏁版垨鑰呮渶澶氫竴浣嶅皬鏁癨";\r\n            }\r\n            if (f < 87 || f > 108) {\r\n              return \"鏈夋晥棰戠巼鑼冨洿涓�87-108\";\r\n            }\r\n          },\r\n          inputErrorMessage: \"棰戠巼鏍煎紡涓嶆纭甛"\r\n        }).catch(() => {});\r\n        if (freqInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        let recordLengthInfo = await this.$prompt(\r\n          \"璇疯緭鍏ュ綍闊虫椂闀匡紙绉掞級\",\r\n          \"鎻愮ず\", {\r\n            confirmButtonText: \"纭畾\",\r\n            cancelButtonText: \"鍙栨秷\",\r\n            inputPattern: /^[1-9]\\d*$/,\r\n            inputErrorMessage: \"褰曢煶鏃堕暱搴斾负姝f暣鏁癨"\r\n          }\r\n        ).catch(() => {});\r\n        if (recordLengthInfo === undefined) {\r\n          return;\r\n        }\r\n        let recordLength = recordLengthInfo.value;\r\n\r\n        let msg = `姝ゆ搷浣滃皢瀵硅澶� ${deviceIdList.join(\r\n        \",\"\r\n      )} 涓嬪彂褰曢煶浠诲姟锛堥鐜囷細${freq}銆佸綍闊虫椂闀匡細${recordLength}锛夛紝鏄惁缁х画锛焋;\r\n        let confirmInfo = await this.$confirm(msg, \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          type: \"warning\"\r\n        }).catch(() => {});\r\n        if (confirmInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        this.$getJSON(\"/apicloud/jpush\", {\r\n          devices: deviceIdList,\r\n          command: \"record\",\r\n          extra: {\r\n            freq: freq,\r\n            length: recordLength\r\n          }\r\n        }).then(res => {\r\n          this.$message({\r\n            message: `浠诲姟涓嬪彂鎴愬姛锛屽嵆鏃朵换鍔″彿涓� ${res.task_id}`,\r\n            type: \"success\"\r\n          });\r\n        });\r\n      },\r\n      async reboot(deviceIdList) {\r\n        if (deviceIdList.length == 0) {\r\n          this.$message({\r\n            message: \"璇烽�夋嫨璁惧\",\r\n            type: \"warning\"\r\n          });\r\n          return;\r\n        }\r\n\r\n        let msg = `姝ゆ搷浣滃皢浣胯澶� ${deviceIdList.join(\",\")} 閲嶅惎锛屾槸鍚︾户缁紵`;\r\n        let confirmInfo = await this.$confirm(msg, \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          type: \"warning\"\r\n        }).catch(() => {});\r\n        if (confirmInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        this.$getJSON(\"/apicloud/jpush\", {\r\n          devices: deviceIdList,\r\n          command: \"reboot\"\r\n        }).then(res => {\r\n          this.$message({\r\n            message: `閲嶅惎鍛戒护涓嬪彂鎴愬姛`,\r\n            type: \"success\"\r\n          });\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style>\r\n  .map_device {\r\n    width: 100%;\r\n    height: 100%;\r\n  }\r\n\r\n  .map_device .anchorBL {\r\n    display: none;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/Map.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baidu-map',{ref:\"mapContainer\",staticClass:\"map_device\",attrs:{\"id\":\"mapContainer\",\"center\":\"涓婃捣\",\"scroll-wheel-zoom\":_vm.map.scrollWheelZoom,\"dragging\":_vm.map.dragging,\"double-click-zoom\":_vm.map.dbClickZoom,\"mapStyle\":_vm.map.mapStyle},on:{\"click\":_vm.mapClick,\"mousemove\":_vm.mapMouseMove,\"rightclick\":_vm.mapRightClick,\"ready\":_vm.ready}},[_c('bm-navigation',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}}),_vm._v(\" \"),_c('bm-control',{attrs:{\"offset\":{width:10,height:10}}},[_c('select-device-status',{on:{\"change\":_vm.changeDeviceStatus}})],1),_vm._v(\" \"),_c('bm-control',{attrs:{\"offset\":{width:140,height:10}}},[_c('el-button-group',[_c('el-button',{attrs:{\"title\":\"鐢诲渾\",\"icon\":\"iconfont icon-xuanzeyuanquanxuanzhong\"},on:{\"click\":function($event){_vm.drawGeometry('circle')}}}),_vm._v(\" \"),_c('el-button',{attrs:{\"title\":\"鐢荤煩褰",\"icon\":\"iconfont icon-kuangxuan\"},on:{\"click\":function($event){_vm.drawGeometry('rectangle')}}}),_vm._v(\" \"),_c('el-button',{attrs:{\"title\":\"鐢诲杈瑰舰\",\"icon\":\"iconfont icon-duobianxing\"},on:{\"click\":function($event){_vm.drawGeometry('polygon')}}}),_vm._v(\" \"),_c('el-button',{attrs:{\"title\":\"鎷栧姩鍦板浘\",\"icon\":\"iconfont icon-shou\"},on:{\"click\":_vm.hander}})],1)],1),_vm._v(\" \"),_c('bm-control',{attrs:{\"offset\":{width:380,height:10}}},[_c('el-select',{attrs:{\"placeholder\":\"鎸夎鏀垮尯閫夋嫨\"},on:{\"change\":_vm.handleDistricChange},model:{value:(_vm.district),callback:function ($$v) {_vm.district=$$v},expression:\"district\"}},_vm._l((_vm.districtList),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}))],1),_vm._v(\" \"),_c('bm-control',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectedTable.show),expression:\"selectedTable.show\"}],attrs:{\"offset\":{width:140,height:60}}},[_c('el-card',[_c('div',{on:{\"mouseover\":function($event){_vm.map.scrollWheelZoom=false;},\"mouseout\":function($event){_vm.map.scrollWheelZoom=true;}}},[_c('el-table',{staticStyle:{\"width\":\"570px\",\"margin-bottom\":\"15px\"},attrs:{\"data\":_vm.selected,\"height\":\"250px\",\"border\":\"\",\"size\":\"mini\"},on:{\"selection-change\":_vm.handleSelectionChange}},[_c('el-table-column',{attrs:{\"type\":\"selection\",\"width\":\"35\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"log_id\",\"label\":\"缂栧彿\",\"width\":\"130\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"鍦板潃\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(_vm._s(scope.row.province || scope.row.city || scope.row.county ||\n              scope.row.district || scope.row.street || scope.row.address ? (\"\\n              \" + (scope.row.province?scope.row.province:\"\") + \" \" + (scope.row.city?scope.row.city:\"\") + \"\\n              \" + (scope.row.county?scope.row.county:\"\") + \" \" + (scope.row.district?scope.row.district:\"\") + \"\\n              \" + (scope.row.street?scope.row.street:\"\") + \" \" + (scope.row.address?scope.row.address:\"\")):\"鏃犳暟鎹甛")+\"\\n            \")]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"鍛ㄦ湡浠诲姟\",\"width\":\"70\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n              \"+_vm._s(scope.row.task_id?scope.row.task_id:\"鏈厤缃甛")+\"\\n            \")]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"fixed\":\"right\",\"label\":\"鎿嶄綔\",\"width\":\"50\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.locateDvice({lng: scope.row.lon, lat: scope.row.lat})}}},[_vm._v(\"浣嶇疆\")])]}}])})],1),_vm._v(\" \"),_c('el-button-group',[_c('el-button',{attrs:{\"type\":\"primary\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.scan(_vm.idsOfDevices)}}},[_vm._v(\"鎵彴\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.record(_vm.idsOfDevices)}}},[_vm._v(\"褰曢煶\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.reboot(_vm.idsOfDevices)}}},[_vm._v(\"閲嶅惎\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.setTask(_vm.idsOfDevices)}}},[_vm._v(\"閰嶇疆浠诲姟\")])],1),_vm._v(\" \"),_c('el-button',{staticStyle:{\"float\":\"right\"},attrs:{\"type\":\"info\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.selectedTable.show=false;}}},[_vm._v(\"鍏抽棴\")])],1)])],1),_vm._v(\" \"),_vm._l((_vm.markers),function(device){return _c('bm-marker',{key:device.phy_id,attrs:{\"icon\":_vm.icons[device.status],\"title\":device.log_id,\"position\":{lng: device.lon, lat: device.lat}},on:{\"click\":function($event){_vm.showInfoWindow(device)}}})}),_vm._v(\" \"),(_vm.pointer.show)?_c('bm-marker',{attrs:{\"animation\":\"BMAP_ANIMATION_BOUNCE\",\"position\":_vm.pointer.position,\"icon\":_vm.pointer.icon}}):_vm._e(),_vm._v(\" \"),_c('bm-info-window',{attrs:{\"title\":\"璁惧淇℃伅\",\"show\":_vm.infowindow.show,\"position\":_vm.infowindow.position,\"width\":430},on:{\"open\":function($event){_vm.infowindow.show=true;},\"close\":function($event){_vm.infowindow.show=false;}}},[_c('device-detail',{attrs:{\"lgid\":_vm.infowindow.device_lgid}}),_vm._v(\" \"),_c('el-button-group',{staticStyle:{\"margin-top\":\"15px\",\"margin-left\":\"10px\"}},[_c('el-button',{attrs:{\"type\":\"info\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.scan([_vm.infowindow.device_lgid])}}},[_vm._v(\"鎵彴\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"info\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.record([_vm.infowindow.device_lgid])}}},[_vm._v(\"褰曢煶\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"info\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.reboot([_vm.infowindow.device_lgid])}}},[_vm._v(\"閲嶅惎\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"info\",\"plain\":\"\",\"size\":\"small\"},on:{\"click\":function($event){_vm.setTask([_vm.infowindow.device_lgid])}}},[_vm._v(\"閰嶇疆浠诲姟\")])],1)],1),_vm._v(\" \"),(_vm.drawing.drawingType=='circle')?_c('bm-circle',{attrs:{\"center\":_vm.drawing.circlePath.center,\"radius\":_vm.drawing.circlePath.radius,\"stroke-color\":_vm.drawing.styleOptions.strokeColor,\"fill-color\":_vm.drawing.styleOptions.fillColor,\"stroke-opacity\":_vm.drawing.styleOptions.strokeOpacity,\"fill-opacity\":_vm.drawing.styleOptions.fillOpacity,\"stroke-weight\":_vm.drawing.styleOptions.strokeWeight,\"stroke-style\":_vm.drawing.styleOptions.strokeStyle,\"editing\":_vm.drawing.editing}}):(_vm.drawing.drawingType=='polygon' || _vm.drawing.drawingType=='rectangle')?_c('bm-polygon',{attrs:{\"path\":_vm.drawing.polygonPath,\"stroke-color\":_vm.drawing.styleOptions.strokeColor,\"fill-color\":_vm.drawing.styleOptions.fillColor,\"stroke-opacity\":_vm.drawing.styleOptions.strokeOpacity,\"fill-opacity\":_vm.drawing.styleOptions.fillOpacity,\"stroke-weight\":_vm.drawing.styleOptions.strokeWeight,\"stroke-style\":_vm.drawing.styleOptions.strokeStyle,\"editing\":_vm.drawing.editing}}):_vm._e()],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-73076cc8\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/Map.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-73076cc8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Map.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Map.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Map.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-73076cc8\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Map.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/Map.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-dialog :title=\"title\" :visible.sync=\"visible\" :close-on-click-modal='false' width=\"700px\">\r\n    <el-form label-position=\"left\" label-width=\"68px\" size=\"mini\">\r\n      <el-row style=\"margin-bottom:0;\">\r\n        <el-col style=\"width:50%;\">\r\n          <el-form-item label=\"鍛�  鏈焅" style=\"padding-right:10px;\">\r\n            <el-input v-model=\"form.period\" auto-complete=\"off\">\r\n              <template slot=\"append\">鍒�</template>\r\n            </el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col style=\"width:50%;\">\r\n          <el-form-item label=\"褰曢煶鏃堕暱\" style=\"padding-left:10px;\">\r\n            <el-input v-model=\"form.recording_length\" auto-complete=\"off\">\r\n              <template slot=\"append\">绉�</template>\r\n            </el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n      </el-row>\r\n      <el-form-item label=\"浠诲姟璇存槑\">\r\n        <el-input :rows=\"1\" placeholder=\"璇疯緭鍏ュ唴瀹筡" v-model=\"form.detail\" auto-complete=\"off\"></el-input>\r\n      </el-form-item>\r\n      <el-form-item label=\"鎵弿棰戠巼\">\r\n        <template>\r\n          <el-tag style=\"margin-right:1%\" v-for=\"(value,key) in form.freq_range\" :key=\"key\" closable type=\"success\" size=\"medium\" @close=\"handleTagClose(key)\">\r\n            {{parseFreqRange(value)}}\r\n          </el-tag>\r\n          <div v-if=\"freqInputVisible\" display=\"inline\" style=\"margin:5px 0 0 0;padding:0;\">\r\n            <el-input-number style=\"width:120px\" class=\"input-new-tag\" ref=\"saveTagInput\" size=\"mini\" v-model=\"freqStart\" controls-position=\"right\"\r\n              :min=\"87\" :max=\"108\" :precision=\"1\" :step=\"0.1\"></el-input-number>\r\n            -\r\n            <el-input-number style=\"width:120px\" class=\"input-new-tag\" ref=\"saveTagInput\" size=\"mini\" v-model=\"freqEnd\" controls-position=\"right\"\r\n              :min=\"87\" :max=\"108\" :precision=\"1\" :step=\"0.1\"></el-input-number>\r\n            <el-button style=\"margin-left:20px\" type=\"primary\" size=\"mini\" @click=\"hideFreqInput\">鍙栨秷</el-button>\r\n            <el-button type=\"primary\" size=\"mini\" @click=\"addFreq\">纭畾</el-button>\r\n          </div>\r\n          <el-button v-else style=\"margin-left:20px\" type=\"primary\" size=\"mini\" @click=\"freqInputVisible = true\" round>娣诲姞棰戠巼</el-button>\r\n        </template>\r\n      </el-form-item>\r\n      <el-form-item label=\"鐧藉悕鍗昞">\r\n        <el-table :data=\"allWhitelst\" border :height=\"350\" style=\"width:100%;margin-bottom:10px;\" row-class-name=\"allWhitelstTable\"\r\n          header-row-class-name=\"allWhitelstTable\" size=\"mini\">\r\n          <el-table-column width=\"70\" align=\"center\" :render-header=\"renderSelect\" prop=\"checked\" style=\"padding:0;\">\r\n            <template slot-scope=\"scope\">\r\n              <el-checkbox v-model=\"scope.row.checked\" @change=\"handleCheckChange\"></el-checkbox>\r\n            </template>\r\n          </el-table-column>\r\n          <el-table-column prop=\"frequency\" label=\"棰戠巼\" width=\"60\">\r\n          </el-table-column>\r\n          <el-table-column prop=\"name\" label=\"鍚嶇О\" sortable>\r\n          </el-table-column>\r\n          <el-table-column prop=\"area\" label=\"鍦板尯\" width=\"80\" align=\"center\">\r\n          </el-table-column>\r\n          <el-table-column label=\"褰曢煶\" width=\"80px\" align=\"center\">\r\n            <template slot-scope=\"scope\">\r\n              <el-switch v-model=\"scope.row.is_recording\" :active-value=\"1\" :inactive-value=\"0\" :width=\"50\" :ref=\"scope.row.id\">\r\n              </el-switch>\r\n            </template>\r\n          </el-table-column>\r\n        </el-table>\r\n      </el-form-item>\r\n      <el-form-item style=\"float:right\">\r\n        <el-button @click=\"visible = false\">鍙� 娑�</el-button>\r\n        <el-button type=\"primary\" @click=\"save\">淇濆瓨</el-button>\r\n      </el-form-item>\r\n    </el-form>\r\n    <div slot=\"footer\" class=\"dialog-footer\">\r\n\r\n    </div>\r\n  </el-dialog>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    props: [\"data\"],\r\n    watch: {\r\n      visible(val) {\r\n        if (val) {\r\n          this.form = JSON.parse(JSON.stringify(this.data));\r\n          // 鏂板鏃讹紝鏁版嵁涓簎ndefined锛岄渶瑕佸垵濮嬪寲\r\n          if (this.form.id === undefined) {\r\n            this.form.period = 240;\r\n            this.form.freq_range = [];\r\n            this.form.whitelist = {};\r\n            this.form.recording_length = 15;\r\n            this.form.detail = \"\";\r\n          }\r\n          // 鑾峰彇鎵�鏈夌殑鐧藉悕鍗昞r\n          this.searchAllWhitelst({});\r\n          // 闅愯棌棰戠巼缂栬緫\r\n          this.hideFreqInput();\r\n        }\r\n      }\r\n    },\r\n    components: {},\r\n    computed: {},\r\n    methods: {\r\n      show() {\r\n        this.visible = true;\r\n      },\r\n\r\n      renderSelect(h) {\r\n        return [\r\n          h(\"el-checkbox\", {\r\n            model: {\r\n              checked: this.checkAll,\r\n              callback: newVal => (this.checkAll = newVal)\r\n            },\r\n            attrs: {\r\n              indeterminate: this.indeterminate\r\n            },\r\n            on: {\r\n              change: this.handleSelectAllChange\r\n            }\r\n          }),\r\n          h(\"el-badge\", {\r\n            attrs: {\r\n              class: \"el-badge mark\",\r\n              value: this.selectedNum,\r\n              style: \"padding:0;margin:0;line-height:23px;\"\r\n            }\r\n          })\r\n        ];\r\n      },\r\n\r\n      handleSelectAllChange(check) {\r\n        this.indeterminate = false;\r\n        for (let i = 0; i < this.allWhitelst.length; i++) {\r\n          this.allWhitelst[i].checked = check;\r\n        }\r\n        this.selectedNum = check ? this.allWhitelst.length : 0;\r\n      },\r\n\r\n      handleCheckChange(check) {\r\n        if (check) {\r\n          this.selectedNum++;\r\n        } else {\r\n          this.selectedNum--;\r\n        }\r\n        this.checkAll = this.selectedNum === this.allWhitelst.length;\r\n        this.indeterminate =\r\n          this.selectedNum > 0 && this.selectedNum < this.allWhitelst.length;\r\n      },\r\n\r\n      initSelection() {\r\n        this.selectedNum = 0;\r\n        for (let i = 0; i < this.allWhitelst.length; i++) {\r\n          let row = this.allWhitelst[i];\r\n          let idstr = String(row[\"id\"]);\r\n          if (this.form.whitelist.hasOwnProperty(idstr)) {\r\n            this.allWhitelst[i].is_recording = this.form.whitelist[idstr];\r\n            this.allWhitelst[i].checked = true;\r\n            this.selectedNum++;\r\n          }\r\n        }\r\n        this.checkAll = this.selectedNum === this.allWhitelst.length;\r\n        this.indeterminate =\r\n          this.selectedNum > 0 && this.selectedNum < this.allWhitelst.length;\r\n      },\r\n\r\n      parseFreqRange(range) {\r\n        if (range.length == 1) {\r\n          return `${range[0]}`;\r\n        } else {\r\n          return `${range[0]}-${range[1]}`;\r\n        }\r\n      },\r\n\r\n      handleTagClose(key) {\r\n        this.form.freq_range.splice(key, 1);\r\n      },\r\n\r\n      addFreq() {\r\n        let newRange;\r\n        if (this.freqStart == this.freqEnd) {\r\n          newRange = [this.freqStart];\r\n        } else if (this.freqStart < this.freqEnd) {\r\n          newRange = [this.freqStart, this.freqEnd];\r\n        } else {\r\n          this.$message({\r\n            duration: 2000,\r\n            showClose: true,\r\n            message: \"璧峰棰戠巼搴斿皬浜庣瓑浜庣粨鏉熼鐜嘰",\r\n            type: \"error\"\r\n          });\r\n        }\r\n        if (newRange) {\r\n          if (this.checkFreq(newRange)) {\r\n            this.form.freq_range.push(newRange);\r\n            this.freqInputVisible = false;\r\n            this.freqStart = -1;\r\n            this.freqEnd = -1;\r\n          } else {\r\n            this.$message({\r\n              duration: 2000,\r\n              showClose: true,\r\n              message: \"娣诲姞澶辫触锛氫笌宸叉湁棰戠巼鑼冨洿閲嶅\",\r\n              type: \"error\"\r\n            });\r\n          }\r\n        }\r\n      },\r\n\r\n      checkFreq(newRange) {\r\n        newRange = JSON.parse(JSON.stringify(newRange));\r\n        if (newRange.length == 1) {\r\n          newRange.push(newRange[0]);\r\n        }\r\n        for (let i = 0; i < this.form.freq_range.length; i++) {\r\n          let range = JSON.parse(JSON.stringify(this.form.freq_range[i]));\r\n          if (range.length == 1) {\r\n            range.push(range[0]);\r\n          }\r\n          if (\r\n            (range[0] <= newRange[1] && range[0] >= newRange[0]) ||\r\n            (range[1] <= newRange[1] && range[1] >= newRange[0])\r\n          ) {\r\n            return false;\r\n          }\r\n        }\r\n        return true;\r\n      },\r\n\r\n      hideFreqInput() {\r\n        this.freqInputVisible = false;\r\n        this.freqStart = 0;\r\n        this.freqEnd = 0;\r\n      },\r\n\r\n      save() {\r\n        let whiteLst = {};\r\n        for (let i = 0; i < this.allWhitelst.length; i++) {\r\n          if (this.allWhitelst[i].checked) {\r\n            whiteLst[this.allWhitelst[i].id] = this.allWhitelst[i].is_recording;\r\n          }\r\n        }\r\n        this.form.whitelist = whiteLst;\r\n        this.form.create_time = new Date().format(\"yyyy-MM-dd hh:mm:ss\");\r\n\r\n        this.visible = false;\r\n        if (this.form.id) {\r\n          this.$getJSON(\"/task/u_period_tasklst\", this.form).then(res => {\r\n            this.$emit(\"refreshAfterUpdate\");\r\n            this.$message({\r\n              type: \"success\",\r\n              message: \"淇敼鎴愬姛\"\r\n            });\r\n          });\r\n        } else {\r\n          this.$getJSON(\"/task/i_period_tasklst\", this.form).then(res => {\r\n            this.$emit(\"refreshTable\");\r\n            this.$message({\r\n              type: \"success\",\r\n              message: \"娣诲姞鎴愬姛\"\r\n            });\r\n          });\r\n        }\r\n      },\r\n\r\n      updateForm() {\r\n        let whiteLst = {};\r\n        for (let i = 0; i < this.allWhitelst.length; i++) {\r\n          if (this.allWhitelst[i].checked) {\r\n            whiteLst[this.allWhitelst[i].id] = this.allWhitelst[i].is_recording;\r\n          }\r\n        }\r\n        this.form.whitelist = whiteLst;\r\n        this.form.create_time = new Date().format(\"yyyy-MM-dd hh:mm:ss\");\r\n      },\r\n\r\n      searchAllWhitelst(pagesize) {\r\n        this.$getJSON(\"/task/s_allWhitelst\", {\r\n          rows_per_page: pagesize.size,\r\n          current_page: pagesize.page,\r\n          orderby: {\r\n            name: \"ASC\"\r\n          }\r\n        }).then(res => {\r\n          this.allWhitelst = res.data;\r\n          this.initSelection();\r\n        });\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        title: \"缂栬緫鍛ㄦ湡浠诲姟\",\r\n        visible: false,\r\n        form: {},\r\n        freqInputVisible: false,\r\n        freqStart: 87,\r\n        freqEnd: 108,\r\n        allWhitelst: [],\r\n        size: 10,\r\n        page: 1,\r\n        selectedNum: 0,\r\n        indeterminate: false,\r\n        checkAll: false\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n  .allWhitelstTable {\r\n    height: 30px;\r\n    padding-bottom: 0px;\r\n    margin-bottom: 10px;\r\n  }\r\n\r\n  .el-form-item {\r\n    padding-bottom: 0px;\r\n    margin-bottom: 5px !important;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/PeriodTask/Edit.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"title\":_vm.title,\"visible\":_vm.visible,\"close-on-click-modal\":false,\"width\":\"700px\"},on:{\"update:visible\":function($event){_vm.visible=$event}}},[_c('el-form',{attrs:{\"label-position\":\"left\",\"label-width\":\"68px\",\"size\":\"mini\"}},[_c('el-row',{staticStyle:{\"margin-bottom\":\"0\"}},[_c('el-col',{staticStyle:{\"width\":\"50%\"}},[_c('el-form-item',{staticStyle:{\"padding-right\":\"10px\"},attrs:{\"label\":\"鍛�  鏈焅"}},[_c('el-input',{attrs:{\"auto-complete\":\"off\"},model:{value:(_vm.form.period),callback:function ($$v) {_vm.$set(_vm.form, \"period\", $$v)},expression:\"form.period\"}},[_c('template',{slot:\"append\"},[_vm._v(\"鍒哱")])],2)],1)],1),_vm._v(\" \"),_c('el-col',{staticStyle:{\"width\":\"50%\"}},[_c('el-form-item',{staticStyle:{\"padding-left\":\"10px\"},attrs:{\"label\":\"褰曢煶鏃堕暱\"}},[_c('el-input',{attrs:{\"auto-complete\":\"off\"},model:{value:(_vm.form.recording_length),callback:function ($$v) {_vm.$set(_vm.form, \"recording_length\", $$v)},expression:\"form.recording_length\"}},[_c('template',{slot:\"append\"},[_vm._v(\"绉抃")])],2)],1)],1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"浠诲姟璇存槑\"}},[_c('el-input',{attrs:{\"rows\":1,\"placeholder\":\"璇疯緭鍏ュ唴瀹筡",\"auto-complete\":\"off\"},model:{value:(_vm.form.detail),callback:function ($$v) {_vm.$set(_vm.form, \"detail\", $$v)},expression:\"form.detail\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鎵弿棰戠巼\"}},[[_vm._l((_vm.form.freq_range),function(value,key){return _c('el-tag',{key:key,staticStyle:{\"margin-right\":\"1%\"},attrs:{\"closable\":\"\",\"type\":\"success\",\"size\":\"medium\"},on:{\"close\":function($event){_vm.handleTagClose(key)}}},[_vm._v(\"\\n          \"+_vm._s(_vm.parseFreqRange(value))+\"\\n        \")])}),_vm._v(\" \"),(_vm.freqInputVisible)?_c('div',{staticStyle:{\"margin\":\"5px 0 0 0\",\"padding\":\"0\"},attrs:{\"display\":\"inline\"}},[_c('el-input-number',{ref:\"saveTagInput\",staticClass:\"input-new-tag\",staticStyle:{\"width\":\"120px\"},attrs:{\"size\":\"mini\",\"controls-position\":\"right\",\"min\":87,\"max\":108,\"precision\":1,\"step\":0.1},model:{value:(_vm.freqStart),callback:function ($$v) {_vm.freqStart=$$v},expression:\"freqStart\"}}),_vm._v(\"\\n          -\\n          \"),_c('el-input-number',{ref:\"saveTagInput\",staticClass:\"input-new-tag\",staticStyle:{\"width\":\"120px\"},attrs:{\"size\":\"mini\",\"controls-position\":\"right\",\"min\":87,\"max\":108,\"precision\":1,\"step\":0.1},model:{value:(_vm.freqEnd),callback:function ($$v) {_vm.freqEnd=$$v},expression:\"freqEnd\"}}),_vm._v(\" \"),_c('el-button',{staticStyle:{\"margin-left\":\"20px\"},attrs:{\"type\":\"primary\",\"size\":\"mini\"},on:{\"click\":_vm.hideFreqInput}},[_vm._v(\"鍙栨秷\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"size\":\"mini\"},on:{\"click\":_vm.addFreq}},[_vm._v(\"纭畾\")])],1):_c('el-button',{staticStyle:{\"margin-left\":\"20px\"},attrs:{\"type\":\"primary\",\"size\":\"mini\",\"round\":\"\"},on:{\"click\":function($event){_vm.freqInputVisible = true}}},[_vm._v(\"娣诲姞棰戠巼\")])]],2),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鐧藉悕鍗昞"}},[_c('el-table',{staticStyle:{\"width\":\"100%\",\"margin-bottom\":\"10px\"},attrs:{\"data\":_vm.allWhitelst,\"border\":\"\",\"height\":350,\"row-class-name\":\"allWhitelstTable\",\"header-row-class-name\":\"allWhitelstTable\",\"size\":\"mini\"}},[_c('el-table-column',{staticStyle:{\"padding\":\"0\"},attrs:{\"width\":\"70\",\"align\":\"center\",\"render-header\":_vm.renderSelect,\"prop\":\"checked\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-checkbox',{on:{\"change\":_vm.handleCheckChange},model:{value:(scope.row.checked),callback:function ($$v) {_vm.$set(scope.row, \"checked\", $$v)},expression:\"scope.row.checked\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"frequency\",\"label\":\"棰戠巼\",\"width\":\"60\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"name\",\"label\":\"鍚嶇О\",\"sortable\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"area\",\"label\":\"鍦板尯\",\"width\":\"80\",\"align\":\"center\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"褰曢煶\",\"width\":\"80px\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-switch',{ref:scope.row.id,attrs:{\"active-value\":1,\"inactive-value\":0,\"width\":50},model:{value:(scope.row.is_recording),callback:function ($$v) {_vm.$set(scope.row, \"is_recording\", $$v)},expression:\"scope.row.is_recording\"}})]}}])})],1)],1),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"float\":\"right\"}},[_c('el-button',{on:{\"click\":function($event){_vm.visible = false}}},[_vm._v(\"鍙� 娑圽")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"淇濆瓨\")])],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-2ec03582\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/PeriodTask/Edit.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2ec03582\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Edit.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Edit.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Edit.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2ec03582\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Edit.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-2ec03582\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/PeriodTask/Edit.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-pagination @size-change=\"handleSizeChange\" @current-change=\"handleCurrentChange\" :current-page=\"page\" :page-sizes=\"size_list\"\r\n    :page-size=\"size\" layout=\"total, sizes, prev, pager, next, jumper\" :total=\"total\">\r\n  </el-pagination>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    created() {\r\n      this.getTotalsize();\r\n    },\r\n    methods: {\r\n      async getTotalsize(keyword) {\r\n        let params = {};\r\n        if (keyword) {\r\n          params.options = [{\r\n            \"type\": \"8\",\r\n            \"name\": \"detail\",\r\n            \"value\": keyword\r\n          }];\r\n          if (keyword != \"\" && !isNaN(keyword)) {\r\n            params.options.push({\r\n              \"type\": \"1\",\r\n              \"name\": \"id\",\r\n              \"value\": keyword\r\n            });\r\n            params.operator = \" OR \";\r\n          }\r\n        }\r\n        // this.$getJSON(\"/task/cnt_period_tasklst\", params).then(res => {\r\n        //   this.total = res.data[0].count;\r\n        //   if (this.page > Math.ceil(this.total / this.size)) {\r\n        //     this.page = Math.ceil(this.total / this.size);\r\n        //   }\r\n        // });\r\n        let res = await this.$getJSON(\"/task/cnt_period_tasklst\", params);\r\n        this.total = res.data[0].count;\r\n        if (this.page > Math.ceil(this.total / this.size)) {\r\n          this.page = Math.ceil(this.total / this.size);\r\n        }\r\n      },\r\n      handleSizeChange(a) {\r\n        this.size = a;\r\n        if (this.page > Math.ceil(this.total / this.size)) {\r\n          this.page = Math.ceil(this.total / this.size);\r\n        }\r\n        this.$emit(\"change\", {\r\n          page: this.page,\r\n          size: this.size\r\n        });\r\n      },\r\n      handleCurrentChange(a) {\r\n        this.page = a;\r\n        this.$emit(\"change\", {\r\n          page: this.page,\r\n          size: this.size\r\n        });\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        page: 1,\r\n        size_list: [10, 20, 30, 40],\r\n        size: 10,\r\n        total: 400\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-pagination {\r\n    text-align: center;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/PeriodTask/PageNation.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-pagination',{attrs:{\"current-page\":_vm.page,\"page-sizes\":_vm.size_list,\"page-size\":_vm.size,\"layout\":\"total, sizes, prev, pager, next, jumper\",\"total\":_vm.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-18db5703\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/PeriodTask/PageNation.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-18db5703\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./PageNation.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PageNation.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PageNation.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-18db5703\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./PageNation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-18db5703\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/PeriodTask/PageNation.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-form inline>\r\n      <el-form-item>\r\n        <el-button-group>\r\n          <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"add\"></el-button>\r\n          <el-button type=\"primary\" icon=\"el-icon-delete\" @click=\"deleteData\"></el-button>\r\n        </el-button-group>\r\n      </el-form-item>\r\n      <el-form-item>\r\n        <el-input placeholder=\"杈撳叆浠诲姟鍙锋垨鑰呬换鍔¤鏄庡叧閿瓧\" v-model=\"searchValue\" style=\"margin-left:150px;\">\r\n          <el-button slot=\"append\" icon=\"el-icon-search\" @click=\"search\"></el-button>\r\n        </el-input>\r\n      </el-form-item>\r\n    </el-form>\r\n    <edit ref='edit' :data=\"data\" @refreshTable=\"refreshTable\"></edit>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Edit from \"@/components/PeriodTask/Edit\";\r\n  export default {\r\n    components: {\r\n      Edit\r\n    },\r\n    props: [\"deletelist\"],\r\n    methods: {\r\n      deleteData() {\r\n        if (this.deletelist && this.deletelist.length > 0) {\r\n          this.$confirm(\r\n            `${this.deletelist.length}鏉″懆鏈熶换鍔″皢琚垹闄�,鎵ц杩�${this.deletelist.length==1?'涓�':'浜�'}鍛ㄦ湡浠诲姟鐨勮澶囩殑浠诲姟灏嗚缃┖锛屾槸鍚︾户缁�?`, '鎻愮ず', {\r\n              confirmButtonText: '纭畾',\r\n              cancelButtonText: '鍙栨秷',\r\n              type: 'warning'\r\n            }).then(() => {\r\n            this.$getJSON(\"/task/d_period_tasklst\", {\r\n              id_list: JSON.stringify(this.deletelist)\r\n            }).then(res => {\r\n              this.refreshTable();\r\n              this.$message({\r\n                type: \"success\",\r\n                message: \"鍒犻櫎鎴愬姛\"\r\n              });\r\n            });\r\n          }).catch(() => {\r\n            this.$message({\r\n              type: 'info',\r\n              message: '宸插彇娑堝垹闄�'\r\n            });\r\n          });\r\n        }\r\n      },\r\n\r\n      search() {\r\n        this.$emit(\"search\");\r\n      },\r\n\r\n      add() {\r\n        this.$refs[\"edit\"].show();\r\n      },\r\n\r\n      refreshTable() {\r\n        this.$emit(\"refreshTable\");\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        searchValue: \"\",\r\n        data: {}\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-row {\r\n    margin-bottom: 20px;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/PeriodTask/ToolBar.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',[_c('el-button-group',[_c('el-button',{attrs:{\"type\":\"primary\",\"icon\":\"el-icon-plus\"},on:{\"click\":_vm.add}}),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"icon\":\"el-icon-delete\"},on:{\"click\":_vm.deleteData}})],1)],1),_vm._v(\" \"),_c('el-form-item',[_c('el-input',{staticStyle:{\"margin-left\":\"150px\"},attrs:{\"placeholder\":\"杈撳叆浠诲姟鍙锋垨鑰呬换鍔¤鏄庡叧閿瓧\"},model:{value:(_vm.searchValue),callback:function ($$v) {_vm.searchValue=$$v},expression:\"searchValue\"}},[_c('el-button',{attrs:{\"slot\":\"append\",\"icon\":\"el-icon-search\"},on:{\"click\":_vm.search},slot:\"append\"})],1)],1)],1),_vm._v(\" \"),_c('edit',{ref:\"edit\",attrs:{\"data\":_vm.data},on:{\"refreshTable\":_vm.refreshTable}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-19394728\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/PeriodTask/ToolBar.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-19394728\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./ToolBar.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ToolBar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ToolBar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-19394728\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./ToolBar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-19394728\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/PeriodTask/ToolBar.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <el-row style=\"height:55px;padding-bottom:15px;\">\r\n      <tool-bar ref=\"toolbar\" @refreshTable=\"refreshTable\" @search=\"search\" :deletelist=\"selectdList\"></tool-bar>\r\n    </el-row>\r\n    <el-row style=\"height:calc(100% - 55px - 42px)\">\r\n      <el-table :data=\"data\" border style=\"width: 100%\" height=\"100%\" @selection-change=\"handleSelectionChange\">\r\n        <el-table-column type=\"selection\" width=\"35\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"id\" label=\"浠诲姟鍙穃" width=\"105\" align=\"center\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"period\" label=\"鍛ㄦ湡(鍒�)\" width=\"105\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"recording_length\" label=\"褰曢煶鏃堕暱(绉�)\" width=\"105\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"detail\" label=\"浠诲姟璇存槑\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"create_time\" label=\"鍒涘缓鏃堕棿\" width=\"170\">\r\n        </el-table-column>\r\n        <el-table-column label=\"鎵弿棰戠巼\">\r\n          <template slot-scope=\"scope\">\r\n            <el-tag style=\"margin-left:1%\" v-for=\"(value,key) in scope.row.freq_range\" :key=\"key\" type=\"success\" size=\"small\">\r\n              {{parseFreqRange(value)}}\r\n            </el-tag>\r\n          </template>\r\n        </el-table-column>\r\n        <el-table-column fixed=\"right\" label=\"鎿嶄綔\" width=\"130\">\r\n          <template slot-scope=\"scope\">\r\n            <el-button type=\"text\" size=\"small\" @click=\"showWhiteList(scope.$index)\">鐧藉悕鍗�</el-button>\r\n            <el-button type=\"text\" size=\"small\" @click=\"edit(scope.$index)\">缂栬緫</el-button>\r\n          </template>\r\n        </el-table-column>\r\n      </el-table>\r\n    </el-row>\r\n    <el-row style=\"height:42px;padding-top:10px;\">\r\n      <PageNation ref='pageNation' @change=\"pageChange\"></PageNation>\r\n    </el-row>\r\n\r\n    <edit ref='edit' :data='data[selectd_index]' @refreshAfterUpdate=\"refreshTable\"></edit>\r\n    <el-dialog :visible.sync=\"whiteListVisible\" :close-on-click-modal='false' width=\"700px\">\r\n      <WhiteListOfTask ref=\"whiteList\" :white-list-ids=\"data && data[selectd_index] ? data[selectd_index].whitelist:{}\"></WhiteListOfTask>\r\n    </el-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Edit from \"@/components/PeriodTask/Edit\";\r\n  import PageNation from \"@/components/PeriodTask/PageNation\";\r\n  import ToolBar from \"@/components/PeriodTask/ToolBar\";\r\n  import WhiteListOfTask from \"@/components/Tables/WhiteListOfTask\";\r\n  export default {\r\n    mounted() {\r\n      this.SearchForDatas();\r\n    },\r\n    components: {\r\n      Edit,\r\n      PageNation,\r\n      ToolBar,\r\n      WhiteListOfTask\r\n    },\r\n    data() {\r\n      return {\r\n        selectd_index: \"\",\r\n        areas: [],\r\n        data: [],\r\n        selectdList: [],\r\n        whiteListVisible: false\r\n      };\r\n    },\r\n    methods: {\r\n      parseFreqRange(range) {\r\n        if (range.length == 1) {\r\n          return `${range[0]}`;\r\n        } else {\r\n          return `${range[0]}-${range[1]}`;\r\n        }\r\n      },\r\n\r\n      handleSelectionChange(a) {\r\n        let ids = [];\r\n        for (let i = 0; i < a.length; i++) {\r\n          const element = a[i];\r\n          ids.push(element.id);\r\n        }\r\n        this.selectdList = ids\r\n      },\r\n\r\n      refreshTable() {\r\n        this.$refs[\"pageNation\"].getTotalsize();\r\n        this.SearchForDatas();\r\n      },\r\n\r\n      pageChange() {\r\n        let keyword = this.$refs[\"toolbar\"].searchValue;\r\n        if (keyword && keyword.replace(/(^\\s*)|(\\s*$)/g, \"\") != \"\") {\r\n          keyword =\r\n            keyword.replace(/(^\\s*)|(\\s*$)/g, \"\")\r\n        } else {\r\n          keyword = undefined;\r\n        }\r\n        this.SearchForDatas(keyword);\r\n      },\r\n\r\n      search() {\r\n        let keyword = this.$refs[\"toolbar\"].searchValue;\r\n        if (keyword && keyword.replace(/(^\\s*)|(\\s*$)/g, \"\") != \"\") {\r\n          keyword = keyword.replace(/(^\\s*)|(\\s*$)/g, \"\")\r\n        } else {\r\n          keyword = undefined;\r\n        }\r\n        this.$refs[\"pageNation\"].getTotalsize(keyword).then(() => {\r\n          this.SearchForDatas(keyword);\r\n        });\r\n      },\r\n\r\n      SearchForDatas(keyword) {\r\n        let params = {\r\n          rows_per_page: this.$refs[\"pageNation\"].size,\r\n          current_page: this.$refs[\"pageNation\"].page\r\n        };\r\n        if (keyword) {\r\n          params.options = [{\r\n            \"type\": \"8\",\r\n            \"name\": \"detail\",\r\n            \"value\": keyword\r\n          }];\r\n          if (keyword != \"\" && !isNaN(keyword)) {\r\n            params.options.push({\r\n              \"type\": \"1\",\r\n              \"name\": \"id\",\r\n              \"value\": keyword\r\n            });\r\n            params.operator = \" OR \";\r\n          }\r\n        }\r\n        this.$getJSON('/task/s_period_tasklst', params).then(res => {\r\n          this.data = res.data;\r\n        });\r\n      },\r\n\r\n      edit(index) {\r\n        this.selectd_index = index;\r\n        this.$refs[\"edit\"].show();\r\n      },\r\n      showWhiteList(index) {\r\n        this.selectd_index = index;\r\n        this.whiteListVisible = true;\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/PeriodTask/Table.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-row',{staticStyle:{\"height\":\"55px\",\"padding-bottom\":\"15px\"}},[_c('tool-bar',{ref:\"toolbar\",attrs:{\"deletelist\":_vm.selectdList},on:{\"refreshTable\":_vm.refreshTable,\"search\":_vm.search}})],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"calc(100% - 55px - 42px)\"}},[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"},on:{\"selection-change\":_vm.handleSelectionChange}},[_c('el-table-column',{attrs:{\"type\":\"selection\",\"width\":\"35\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"id\",\"label\":\"浠诲姟鍙穃",\"width\":\"105\",\"align\":\"center\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"period\",\"label\":\"鍛ㄦ湡(鍒�)\",\"width\":\"105\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"recording_length\",\"label\":\"褰曢煶鏃堕暱(绉�)\",\"width\":\"105\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"detail\",\"label\":\"浠诲姟璇存槑\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"create_time\",\"label\":\"鍒涘缓鏃堕棿\",\"width\":\"170\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"鎵弿棰戠巼\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return _vm._l((scope.row.freq_range),function(value,key){return _c('el-tag',{key:key,staticStyle:{\"margin-left\":\"1%\"},attrs:{\"type\":\"success\",\"size\":\"small\"}},[_vm._v(\"\\n            \"+_vm._s(_vm.parseFreqRange(value))+\"\\n          \")])})}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"fixed\":\"right\",\"label\":\"鎿嶄綔\",\"width\":\"130\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.showWhiteList(scope.$index)}}},[_vm._v(\"鐧藉悕鍗昞")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.edit(scope.$index)}}},[_vm._v(\"缂栬緫\")])]}}])})],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"42px\",\"padding-top\":\"10px\"}},[_c('PageNation',{ref:\"pageNation\",on:{\"change\":_vm.pageChange}})],1),_vm._v(\" \"),_c('edit',{ref:\"edit\",attrs:{\"data\":_vm.data[_vm.selectd_index]},on:{\"refreshAfterUpdate\":_vm.refreshTable}}),_vm._v(\" \"),_c('el-dialog',{attrs:{\"visible\":_vm.whiteListVisible,\"close-on-click-modal\":false,\"width\":\"700px\"},on:{\"update:visible\":function($event){_vm.whiteListVisible=$event}}},[_c('WhiteListOfTask',{ref:\"whiteList\",attrs:{\"white-list-ids\":_vm.data && _vm.data[_vm.selectd_index] ? _vm.data[_vm.selectd_index].whitelist:{}}})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-8e10bc58\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/PeriodTask/Table.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-8e10bc58\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Table.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Table.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Table.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8e10bc58\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Table.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-8e10bc58\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/PeriodTask/Table.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <com-table></com-table>\r\n  </div>\r\n</template>\r\n<script>\r\n  import ComTable from \"@/components/PeriodTask/Table\";\r\n  export default {\r\n    components: {\r\n      ComTable\r\n    },\r\n    data() {\r\n      return {};\r\n    },\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/PeriodTask.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('com-table')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-1f47ef48\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/PeriodTask.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1f47ef48\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./PeriodTask.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PeriodTask.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PeriodTask.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1f47ef48\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./PeriodTask.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1f47ef48\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/PeriodTask.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"data\" border height=\"100%\" style=\"width: 100%\">\r\n      <el-table-column prop=\"task_id\" label=\"浠诲姟鍙穃" width=\"80\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"start_time\" label=\"鎵ц鏃堕棿\">\r\n      </el-table-column>\r\n    </el-table>\r\n    <Pagination totalCountOrURL=\"/terminal/cnt_periodTaskExcuteRd\" :params=\"{device_lgid:deviceId,task_id:periodTaskId}\"\r\n      @change=\"handlePageChange\"></Pagination>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  export default {\r\n    props: [\"periodTaskId\", \"deviceId\"],\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      periodTaskId() {\r\n        this.getData();\r\n      },\r\n      deviceId() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        if (this.periodTaskId && this.deviceId) {\r\n          this.$getJSON(\"/terminal/s_periodTaskExcuteRd\", {\r\n            device_lgid: this.deviceId,\r\n            task_id: this.periodTaskId,\r\n            page: this.page,\r\n            size: this.size\r\n          }).then(res => {\r\n            this.data = res.data;\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/PeriodTaskExcutionHistory.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"task_id\",\"label\":\"浠诲姟鍙穃",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"start_time\",\"label\":\"鎵ц鏃堕棿\"}})],1),_vm._v(\" \"),_c('Pagination',{attrs:{\"totalCountOrURL\":\"/terminal/cnt_periodTaskExcuteRd\",\"params\":{device_lgid:_vm.deviceId,task_id:_vm.periodTaskId}},on:{\"change\":_vm.handlePageChange}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-60eaddda\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/PeriodTaskExcutionHistory.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-60eaddda\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./PeriodTaskExcutionHistory.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PeriodTaskExcutionHistory.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PeriodTaskExcutionHistory.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-60eaddda\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./PeriodTaskExcutionHistory.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-60eaddda\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/PeriodTaskExcutionHistory.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"data\" border height=\"100%\" style=\"width: 100%\">\r\n      <el-table-column prop=\"id\" label=\"浠诲姟鍙穃" width=\"80\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"period\" label=\"鍛ㄦ湡(鍒�)\" width=\"80\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"recording_length\" label=\"褰曢煶鏃堕暱(绉�)\" width=\"110\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"detail\" label=\"浠诲姟璇存槑\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"last_execution\" label=\"鏈�杩戞墽琛孿" width=\"160\">\r\n      </el-table-column>\r\n      <el-table-column label=\"鎵弿棰戠巼\">\r\n        <template slot-scope=\"scope\">\r\n          <el-tag style=\"margin-left:1%\" v-for=\"(value,key) in scope.row.freq_range\" :key=\"key\" type=\"success\" size=\"small\">\r\n            {{parseFreqRange(value)}}\r\n          </el-tag>\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column fixed=\"right\" label=\"鎿嶄綔\" width=\"150\">\r\n        <template slot-scope=\"scope\">\r\n          <el-button type=\"text\" size=\"small\" @click=\"showWhiteList(scope.$index)\">鐧藉悕鍗�</el-button>\r\n          <el-button type=\"text\" size=\"small\" @click=\"showTaskHistory(scope.$index)\">鎵ц鍘嗗彶</el-button>\r\n        </template>\r\n      </el-table-column>\r\n    </el-table>\r\n    <Pagination totalCountOrURL=\"/terminal/cnt_periodTaskRd\" :params=\"{device_lgid:lgid}\" @change=\"handlePageChange\"></Pagination>\r\n    <el-dialog :visible.sync=\"whiteListVisible\" :close-on-click-modal='false'>\r\n      <WhiteListOfTask ref=\"whiteListOfTask\" :whiteListIds=\"whiteListIds\"></WhiteListOfTask>\r\n    </el-dialog>\r\n    <el-dialog :visible.sync=\"taskHistoryVisible\" :close-on-click-modal='false'>\r\n      <PeriodTaskExcutionHistory ref=\"periodTaskExcutionHistory\" :periodTaskId=\"periodTaskId\" :deviceId=\"deviceId\"></PeriodTaskExcutionHistory>\r\n    </el-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import WhiteListOfTask from \"@/components/Tables/WhiteListOfTask\";\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  import PeriodTaskExcutionHistory from \"@/components/Tables/PeriodTaskExcutionHistory\";\r\n  export default {\r\n    props: [\"lgid\"],\r\n    components: {\r\n      WhiteListOfTask,\r\n      Pagination,\r\n      PeriodTaskExcutionHistory\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      lgid() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        selected_idx: \"\",\r\n        whiteListVisible: false,\r\n        whiteListIds: null,\r\n        taskHistoryVisible: false,\r\n        periodTaskId: null,\r\n        deviceId: null,\r\n        data: [],\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.getData();\r\n      },\r\n      showWhiteList(index) {\r\n        this.whiteListVisible = true;\r\n        this.whiteListIds = this.data[index].whitelist;\r\n      },\r\n      showTaskHistory(index) {\r\n        this.taskHistoryVisible = true;\r\n        this.periodTaskId = this.data[index].id;\r\n        this.deviceId = this.lgid;\r\n      },\r\n      parseFreqRange(range) {\r\n        if (range.length == 1) {\r\n          return `${range[0]}`;\r\n        } else {\r\n          return `${range[0]}-${range[1]}`;\r\n        }\r\n      },\r\n      getData() {\r\n        if (this.lgid) {\r\n          this.$getJSON(\"/terminal/s_periodTaskRd\", {\r\n            device_lgid: this.lgid,\r\n            page: this.page,\r\n            size: this.size\r\n          }).then(res => {\r\n            this.data = res.data;\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/PeriodTaskRd.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"id\",\"label\":\"浠诲姟鍙穃",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"period\",\"label\":\"鍛ㄦ湡(鍒�)\",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"recording_length\",\"label\":\"褰曢煶鏃堕暱(绉�)\",\"width\":\"110\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"detail\",\"label\":\"浠诲姟璇存槑\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"last_execution\",\"label\":\"鏈�杩戞墽琛孿",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"鎵弿棰戠巼\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return _vm._l((scope.row.freq_range),function(value,key){return _c('el-tag',{key:key,staticStyle:{\"margin-left\":\"1%\"},attrs:{\"type\":\"success\",\"size\":\"small\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.parseFreqRange(value))+\"\\n        \")])})}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"fixed\":\"right\",\"label\":\"鎿嶄綔\",\"width\":\"150\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.showWhiteList(scope.$index)}}},[_vm._v(\"鐧藉悕鍗昞")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.showTaskHistory(scope.$index)}}},[_vm._v(\"鎵ц鍘嗗彶\")])]}}])})],1),_vm._v(\" \"),_c('Pagination',{attrs:{\"totalCountOrURL\":\"/terminal/cnt_periodTaskRd\",\"params\":{device_lgid:_vm.lgid}},on:{\"change\":_vm.handlePageChange}}),_vm._v(\" \"),_c('el-dialog',{attrs:{\"visible\":_vm.whiteListVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.whiteListVisible=$event}}},[_c('WhiteListOfTask',{ref:\"whiteListOfTask\",attrs:{\"whiteListIds\":_vm.whiteListIds}})],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"visible\":_vm.taskHistoryVisible,\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.taskHistoryVisible=$event}}},[_c('PeriodTaskExcutionHistory',{ref:\"periodTaskExcutionHistory\",attrs:{\"periodTaskId\":_vm.periodTaskId,\"deviceId\":_vm.deviceId}})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-37dcf9cc\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/PeriodTaskRd.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-37dcf9cc\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./PeriodTaskRd.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PeriodTaskRd.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./PeriodTaskRd.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-37dcf9cc\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./PeriodTaskRd.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-37dcf9cc\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/PeriodTaskRd.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"data\" border height=\"100%\" style=\"width: 100%\">\r\n      <el-table-column prop=\"id\" label=\"浠诲姟鍙穃" width=\"80\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"command\" label=\"鎿嶄綔\" width=\"80\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"recording_length\" label=\"褰曢煶鏃堕暱(绉�)\" width=\"110\">\r\n        <template slot-scope=\"scope\">\r\n          {{scope.row.recording_length?scope.row.recording_length:\"-\"}}\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column label=\"鎵弿棰戠巼\" width=\"110\">\r\n        <template slot-scope=\"scope\">\r\n          {{scope.row.freq_range?scope.row.freq_range:\"-\"}}\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column prop=\"detail\" label=\"浠诲姟璇存槑\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"start_time\" label=\"寮�濮嬫椂闂碶" width=\"160\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"finish_time\" label=\"瀹屾垚鏃堕棿\" width=\"160\">\r\n      </el-table-column>\r\n    </el-table>\r\n    <Pagination totalCountOrURL=\"/terminal/cnt_realtimeTaskRd\" :params=\"{device_lgid:lgid}\" @change=\"handlePageChange\"></Pagination>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  export default {\r\n    props: [\"lgid\"],\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      lgid() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        selected_idx: \"\",\r\n        whiteListVisible: false,\r\n        data: [],\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        if (this.lgid) {\r\n          this.$getJSON(\"/terminal/s_realtimeTaskRd\", {\r\n            device_lgid: this.lgid,\r\n            page: this.page,\r\n            size: this.size\r\n          }).then(res => {\r\n            this.data = res.data;\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/RealtimeTaskRd.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"id\",\"label\":\"浠诲姟鍙穃",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"command\",\"label\":\"鎿嶄綔\",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"recording_length\",\"label\":\"褰曢煶鏃堕暱(绉�)\",\"width\":\"110\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n        \"+_vm._s(scope.row.recording_length?scope.row.recording_length:\"-\")+\"\\n      \")]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"鎵弿棰戠巼\",\"width\":\"110\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n        \"+_vm._s(scope.row.freq_range?scope.row.freq_range:\"-\")+\"\\n      \")]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"detail\",\"label\":\"浠诲姟璇存槑\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"start_time\",\"label\":\"寮�濮嬫椂闂碶",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"finish_time\",\"label\":\"瀹屾垚鏃堕棿\",\"width\":\"160\"}})],1),_vm._v(\" \"),_c('Pagination',{attrs:{\"totalCountOrURL\":\"/terminal/cnt_realtimeTaskRd\",\"params\":{device_lgid:_vm.lgid}},on:{\"change\":_vm.handlePageChange}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-43d5463a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/RealtimeTaskRd.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-43d5463a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./RealtimeTaskRd.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./RealtimeTaskRd.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./RealtimeTaskRd.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-43d5463a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./RealtimeTaskRd.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-43d5463a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/RealtimeTaskRd.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"data\" border height=\"100%\" style=\"width: 100%\">\r\n      <el-table-column prop=\"frequency\" label=\"棰戠巼\" :width=\"70\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"last_scan\" label=\"鏈�杩戞壂鎻廫" :width=\"160\">\r\n      </el-table-column>\r\n      <el-table-column label=\"褰曢煶鏂囦欢\" :width=\"100\">\r\n        <template slot-scope=\"scope\">\r\n          <el-button v-if=\"scope.row.radio_file_path\" type=\"text\" @click=\"$playAudio(scope.row.radio_file_path,scope.row.frequency,scope.row.last_scan)\">鐐瑰嚮鎾斁</el-button>\r\n          <template v-else>鏃犳枃浠�</template>\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column prop=\"recognition\" label=\"闊抽璇嗗埆\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"result_type\" label=\"鍒ゅ埆缁撴灉\" :width=\"85\">\r\n      </el-table-column>\r\n    </el-table>\r\n    <Pagination totalCountOrURL=\"/terminal/cnt_blacklistRd\" :params=\"{device_lgid:lgid}\" @change=\"handlePageChange\"></Pagination>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  export default {\r\n    props: [\"lgid\"],\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      lgid() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        if (this.lgid) {\r\n          this.$getJSON(\"/terminal/s_blacklistRd\", {\r\n            device_lgid: this.lgid,\r\n            page: this.page,\r\n            size: this.size\r\n          }).then(res => {\r\n            this.data = res.data;\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/BlacklistRd.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"frequency\",\"label\":\"棰戠巼\",\"width\":70}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"last_scan\",\"label\":\"鏈�杩戞壂鎻廫",\"width\":160}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"褰曢煶鏂囦欢\",\"width\":100},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.radio_file_path)?_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){_vm.$playAudio(scope.row.radio_file_path,scope.row.frequency,scope.row.last_scan)}}},[_vm._v(\"鐐瑰嚮鎾斁\")]):[_vm._v(\"鏃犳枃浠禱")]]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"recognition\",\"label\":\"闊抽璇嗗埆\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"result_type\",\"label\":\"鍒ゅ埆缁撴灉\",\"width\":85}})],1),_vm._v(\" \"),_c('Pagination',{attrs:{\"totalCountOrURL\":\"/terminal/cnt_blacklistRd\",\"params\":{device_lgid:_vm.lgid}},on:{\"change\":_vm.handlePageChange}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-284011dc\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/BlacklistRd.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-284011dc\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./BlacklistRd.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./BlacklistRd.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./BlacklistRd.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-284011dc\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./BlacklistRd.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-284011dc\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/BlacklistRd.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"data\" border height=\"100%\" style=\"width: 100%\">\r\n      <el-table-column prop=\"frequency\" label=\"棰戠巼\" :width=\"70\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"upload_time\" label=\"涓婁紶鏃堕棿\" :width=\"160\">\r\n      </el-table-column>\r\n      <el-table-column label=\"褰曢煶鏂囦欢\" :width=\"100\">\r\n        <template slot-scope=\"scope\">\r\n          <el-button v-if=\"scope.row.radio_file_path\" type=\"text\" @click=\"$playAudio(scope.row.radio_file_path,scope.row.frequency,scope.row.upload_time)\">鐐瑰嚮鎾斁</el-button>\r\n          <template v-else>鏃犳枃浠�</template>\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column prop=\"recognition\" label=\"闊抽璇嗗埆\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"result_type\" label=\"鍒ゅ埆缁撴灉\" :width=\"85\">\r\n      </el-table-column>\r\n    </el-table>\r\n    <Pagination totalCountOrURL=\"/terminal/cnt_audioRd\" :params=\"{device_lgid:lgid}\" @change=\"handlePageChange\"></Pagination>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  export default {\r\n    props: [\"lgid\"],\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      lgid() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        if (this.lgid) {\r\n          this.$getJSON(\"/terminal/s_audioRd\", {\r\n            device_lgid: this.lgid,\r\n            page: this.page,\r\n            size: this.size\r\n          }).then(res => {\r\n            this.data = res.data;\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/AudioRd.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"frequency\",\"label\":\"棰戠巼\",\"width\":70}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"upload_time\",\"label\":\"涓婁紶鏃堕棿\",\"width\":160}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"褰曢煶鏂囦欢\",\"width\":100},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.radio_file_path)?_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){_vm.$playAudio(scope.row.radio_file_path,scope.row.frequency,scope.row.upload_time)}}},[_vm._v(\"鐐瑰嚮鎾斁\")]):[_vm._v(\"鏃犳枃浠禱")]]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"recognition\",\"label\":\"闊抽璇嗗埆\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"result_type\",\"label\":\"鍒ゅ埆缁撴灉\",\"width\":85}})],1),_vm._v(\" \"),_c('Pagination',{attrs:{\"totalCountOrURL\":\"/terminal/cnt_audioRd\",\"params\":{device_lgid:_vm.lgid}},on:{\"change\":_vm.handlePageChange}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-aada4cb4\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/AudioRd.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-aada4cb4\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./AudioRd.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./AudioRd.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./AudioRd.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-aada4cb4\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./AudioRd.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-aada4cb4\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/AudioRd.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"data\" border height=\"100%\" style=\"width: 100%\">\r\n      <el-table-column prop=\"upload_time\" label=\"涓婁紶鏃堕棿\">\r\n      </el-table-column>\r\n      <el-table-column label=\"缁忓害\">\r\n        <template slot-scope=\"scope\">\r\n          {{ scope.row.lon?`${scope.row.lon} E`:\"鏃犳暟鎹甛" }}\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column label=\"绾害\">\r\n        <template slot-scope=\"scope\">\r\n          {{ scope.row.lat?`${scope.row.lat} N`:\"鏃犳暟鎹甛" }}\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column label=\"鍓╀綑鐢甸噺\" width=\"150\">\r\n        <template slot-scope=\"scope\">\r\n          <el-progress v-if=\"scope.row.battery\" :text-inside=\"true\" :stroke-width=\"18\" :percentage=\"scope.row.battery\"\r\n            :color=\"getBatteryStatusColor(scope.row.battery)\"></el-progress>\r\n          <div v-else>鏃犳暟鎹�</div>\r\n        </template>\r\n      </el-table-column>\r\n    </el-table>\r\n    <Pagination totalCountOrURL=\"/terminal/cnt_heartbeatRd\" :params=\"{device_lgid:lgid}\" @change=\"handlePageChange\"></Pagination>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  export default {\r\n    props: [\"lgid\"],\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      lgid() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    },\r\n    methods: {\r\n      getBatteryStatusColor(percentage) {\r\n        if (!percentage) {\r\n          percentage = 0;\r\n        }\r\n        let cStart = [255, 0, 0];\r\n        let cEnd = [0, 255, 0];\r\n        let r, g, b;\r\n        r = parseInt(cStart[0] + (cEnd[0] - cStart[0]) * percentage / 100);\r\n        g = parseInt(cStart[1] + (cEnd[1] -\r\n          cStart[1]) * percentage / 100);\r\n        r = r <\r\n          0 ? 0 : r;\r\n        r = r > 255 ? 255 : r;\r\n        g = g <\r\n          0 ? 0 : g;\r\n        g = g > 255 ? 255 : g;\r\n        return `rgb(${r},${g},0)`\r\n      },\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        if (this.lgid) {\r\n          this.$getJSON(\"/terminal/s_heartbeatRd\", {\r\n            device_lgid: this.lgid,\r\n            page: this.page,\r\n            size: this.size\r\n          }).then(res => {\r\n            this.data = res.data;\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/HeartbeatRd.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"upload_time\",\"label\":\"涓婁紶鏃堕棿\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"缁忓害\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n        \"+_vm._s(scope.row.lon?((scope.row.lon) + \" E\"):\"鏃犳暟鎹甛")+\"\\n      \")]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"绾害\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_vm._v(\"\\n        \"+_vm._s(scope.row.lat?((scope.row.lat) + \" N\"):\"鏃犳暟鎹甛")+\"\\n      \")]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"鍓╀綑鐢甸噺\",\"width\":\"150\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.battery)?_c('el-progress',{attrs:{\"text-inside\":true,\"stroke-width\":18,\"percentage\":scope.row.battery,\"color\":_vm.getBatteryStatusColor(scope.row.battery)}}):_c('div',[_vm._v(\"鏃犳暟鎹甛")])]}}])})],1),_vm._v(\" \"),_c('Pagination',{attrs:{\"totalCountOrURL\":\"/terminal/cnt_heartbeatRd\",\"params\":{device_lgid:_vm.lgid}},on:{\"change\":_vm.handlePageChange}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-9367923c\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/HeartbeatRd.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-9367923c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./HeartbeatRd.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./HeartbeatRd.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./HeartbeatRd.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9367923c\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./HeartbeatRd.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-9367923c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/HeartbeatRd.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"data\" border height=\"100%\" style=\"width: 100%\">\r\n      <el-table-column prop=\"staff\" label=\"缁存姢浜哄憳\" :width=\"180\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"m_time\" label=\"缁存姢鏃堕棿\" :width=\"180\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"detail\" label=\"缁存姢璇存槑\">\r\n      </el-table-column>\r\n    </el-table>\r\n    <div>\r\n      <el-button type=\"text\" icon=\"el-icon-circle-plus\" @click=\"addMaintainRd\">娣诲姞缁存姢璁板綍</el-button>\r\n      <Pagination style=\"margin-top:-30px;\" totalCountOrURL=\"/terminal/cnt_deviceMaintainRd\" :params=\"{device_lgid:lgid}\"\r\n        @change=\"handlePageChange\">\r\n      </Pagination>\r\n    </div>\r\n    <el-dialog :visible.sync=\"editShow\" width=\"520px\" title=\"娣诲姞缁存姢璁板綍\">\r\n      <el-form label-width=\"80px\">\r\n        <el-row>\r\n          <el-col :span=\"10\">\r\n            <el-form-item label=\"缁存姢浜哄憳\">\r\n              <el-input v-model=\"form.staff\"></el-input>\r\n            </el-form-item>\r\n          </el-col>\r\n          <el-col :span=\"14\">\r\n            <el-form-item label=\"缁存姢鏃堕棿\">\r\n              <el-date-picker v-model=\"form.m_time\" type=\"datetime\" placeholder=\"閫夋嫨鏃ユ湡鏃堕棿\" style=\"width:100%;\" format=\"yyyy-MM-dd HH:mm:ss\"\r\n                value-format=\"yyyy-MM-dd HH:mm:ss\">\r\n              </el-date-picker>\r\n            </el-form-item>\r\n          </el-col>\r\n        </el-row>\r\n        <el-form-item label=\"缁存姢璇存槑\">\r\n          <el-input type=\"textarea\" :rows=\"2\" v-model=\"form.detail\" placeholder=\"闂绫诲瀷銆佺幇鍦烘儏鍐点�佺淮鎶ょ粨鏋滅瓑\"></el-input>\r\n        </el-form-item>\r\n        <el-form-item style=\"margin-bottom:0;\">\r\n          <i style=\"float:left;margin-left:-80px;\">{{`锛堣澶囷細${lgid}锛塦}}</i>\r\n          <el-button style=\"float:right;\" type=\"primary\" @click=\"save\">淇� 瀛�</el-button>\r\n          <el-button style=\"float:right;margin-right:5px;\" @click=\"editShow = false\">鍙� 娑�</el-button>\r\n        </el-form-item>\r\n      </el-form>\r\n    </el-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  export default {\r\n    props: [\"lgid\"],\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      lgid() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        page: 1,\r\n        size: 10,\r\n        editShow: false,\r\n        form: {\r\n          staff: \"\",\r\n          m_time: \"\",\r\n          detail: \"\"\r\n        }\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        if (this.lgid) {\r\n          this.$getJSON(\"/terminal/s_deviceMaintainRd\", {\r\n            device_lgid: this.lgid,\r\n            page: this.page,\r\n            size: this.size\r\n          }).then(res => {\r\n            this.data = res.data;\r\n          });\r\n        }\r\n      },\r\n      addMaintainRd() {\r\n        this.form = {};\r\n        this.form.device_lgid = this.lgid;\r\n        this.editShow = true;\r\n      },\r\n      save() {\r\n        if (!this.form.staff || (this.form.staff = this.form.staff.trim()) === \"\") {\r\n          this.$message.error(\"缁存姢浜哄憳涓嶈兘涓虹┖\");\r\n          return;\r\n        }\r\n        if (!this.form.m_time || (this.form.m_time = this.form.m_time.trim()) === \"\") {\r\n          this.$message.error(\"鏃堕棿涓嶈兘涓虹┖\");\r\n          return;\r\n        }\r\n        if (!this.form.detail || (this.form.detail = this.form.detail.trim()) === \"\") {\r\n          this.$message.error(\"璇存槑涓嶈兘涓虹┖\");\r\n          return;\r\n        }\r\n        this.$confirm(\"纭娣诲姞缁存姢璁板綍?\", \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          type: \"warning\"\r\n        }).then(() => {\r\n          this.editShow = false;\r\n          this.$getJSON(\"/terminal/i_deviceMaintainRd\", this.form).then(res => {\r\n            this.$message.success(\"娣诲姞鎴愬姛\");\r\n            this.getData();\r\n          });\r\n        }).catch(() => {});\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/DeviceMaintainRd.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"staff\",\"label\":\"缁存姢浜哄憳\",\"width\":180}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"m_time\",\"label\":\"缁存姢鏃堕棿\",\"width\":180}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"detail\",\"label\":\"缁存姢璇存槑\"}})],1),_vm._v(\" \"),_c('div',[_c('el-button',{attrs:{\"type\":\"text\",\"icon\":\"el-icon-circle-plus\"},on:{\"click\":_vm.addMaintainRd}},[_vm._v(\"娣诲姞缁存姢璁板綍\")]),_vm._v(\" \"),_c('Pagination',{staticStyle:{\"margin-top\":\"-30px\"},attrs:{\"totalCountOrURL\":\"/terminal/cnt_deviceMaintainRd\",\"params\":{device_lgid:_vm.lgid}},on:{\"change\":_vm.handlePageChange}})],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"visible\":_vm.editShow,\"width\":\"520px\",\"title\":\"娣诲姞缁存姢璁板綍\"},on:{\"update:visible\":function($event){_vm.editShow=$event}}},[_c('el-form',{attrs:{\"label-width\":\"80px\"}},[_c('el-row',[_c('el-col',{attrs:{\"span\":10}},[_c('el-form-item',{attrs:{\"label\":\"缁存姢浜哄憳\"}},[_c('el-input',{model:{value:(_vm.form.staff),callback:function ($$v) {_vm.$set(_vm.form, \"staff\", $$v)},expression:\"form.staff\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":14}},[_c('el-form-item',{attrs:{\"label\":\"缁存姢鏃堕棿\"}},[_c('el-date-picker',{staticStyle:{\"width\":\"100%\"},attrs:{\"type\":\"datetime\",\"placeholder\":\"閫夋嫨鏃ユ湡鏃堕棿\",\"format\":\"yyyy-MM-dd HH:mm:ss\",\"value-format\":\"yyyy-MM-dd HH:mm:ss\"},model:{value:(_vm.form.m_time),callback:function ($$v) {_vm.$set(_vm.form, \"m_time\", $$v)},expression:\"form.m_time\"}})],1)],1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"缁存姢璇存槑\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"闂绫诲瀷銆佺幇鍦烘儏鍐点�佺淮鎶ょ粨鏋滅瓑\"},model:{value:(_vm.form.detail),callback:function ($$v) {_vm.$set(_vm.form, \"detail\", $$v)},expression:\"form.detail\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"margin-bottom\":\"0\"}},[_c('i',{staticStyle:{\"float\":\"left\",\"margin-left\":\"-80px\"}},[_vm._v(_vm._s((\"锛堣澶囷細\" + _vm.lgid + \"锛塡")))]),_vm._v(\" \"),_c('el-button',{staticStyle:{\"float\":\"right\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"淇� 瀛榎")]),_vm._v(\" \"),_c('el-button',{staticStyle:{\"float\":\"right\",\"margin-right\":\"5px\"},on:{\"click\":function($event){_vm.editShow = false}}},[_vm._v(\"鍙� 娑圽")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-715b38e0\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/DeviceMaintainRd.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-715b38e0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./DeviceMaintainRd.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceMaintainRd.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceMaintainRd.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-715b38e0\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./DeviceMaintainRd.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-715b38e0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/DeviceMaintainRd.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-card class=\"box-card\">\r\n      <DeviceDetail ref=\"deviceDetail\" :lgid=\"lgid\"></DeviceDetail>\r\n    </el-card>\r\n    <el-tabs type=\"border-card\" tabPosition=\"top\">\r\n      <el-tab-pane label=\"鍛ㄦ湡浠诲姟璁板綍\">\r\n        <PeriodTaskRd ref=\"periodTaskRd\" :lgid=\"lgid\"></PeriodTaskRd>\r\n      </el-tab-pane>\r\n      <el-tab-pane label=\"鍗虫椂浠诲姟璁板綍\">\r\n        <RealtimeTaskRd ref=\"realtimeTaskRd\" :lgid=\"lgid\"></RealtimeTaskRd>\r\n      </el-tab-pane>\r\n      <el-tab-pane label=\"榛戠數鍙拌褰昞">\r\n        <BlacklistRd ref=\"blacklistRd\" :lgid=\"lgid\"></BlacklistRd>\r\n      </el-tab-pane>\r\n      <el-tab-pane label=\"鐢靛彴褰曢煶璁板綍\">\r\n        <AudioRd ref=\"audioRd\" :lgid=\"lgid\"></AudioRd>\r\n      </el-tab-pane>\r\n      <el-tab-pane label=\"鐜板満缁存姢璁板綍\">\r\n        <DeviceMaintainRd ref=\"deviceMaintainRd\" :lgid=\"lgid\"></DeviceMaintainRd>\r\n      </el-tab-pane>\r\n      <el-tab-pane label=\"蹇冭烦璁板綍\">\r\n        <HeartbeatRd ref=\"heartbeatRd\" :lgid=\"lgid\"></HeartbeatRd>\r\n      </el-tab-pane>\r\n    </el-tabs>\r\n  </div>\r\n</template>\r\n<script>\r\n  import DeviceDetail from \"@/components/Form/DeviceDetail\";\r\n  import PeriodTaskRd from \"@/components/Tables/PeriodTaskRd\";\r\n  import RealtimeTaskRd from \"@/components/Tables/RealtimeTaskRd\";\r\n  import BlacklistRd from \"@/components/Tables/BlacklistRd\";\r\n  import AudioRd from \"@/components/Tables/AudioRd\";\r\n  import HeartbeatRd from \"@/components/Tables/HeartbeatRd\";\r\n  import DeviceMaintainRd from \"@/components/Tables/DeviceMaintainRd\";\r\n  export default {\r\n    props: [],\r\n    mounted() {\r\n      this.dealurl(this.$route.params);\r\n      // // 鍒锋柊缁勪欢鏁版嵁 \r\n      // // 浣嗘槸鍦╲ue鐨刴ounted閽╁瓙涓洿鎺ョ敤 $ref 璁块棶瀛愮粍浠跺緱鍒扮殑缁撴灉鏄痷ndefined\r\n      // // 鍥犳浣跨敤setTimeout锛屽欢鍚庡埌mounted涔嬪悗鍙垚鍔熸墽琛孿r\n      // setTimeout(() => {\r\n      //   if (this.$refs[\"deviceDetail\"]) {\r\n      //     this.$refs[\"deviceDetail\"].getData();\r\n      //   }\r\n      //   if (this.$refs[\"periodTaskRd\"]) {\r\n      //     this.$refs[\"periodTaskRd\"].getData();\r\n      //   }\r\n      // }, 0);\r\n    },\r\n    methods: {\r\n      dealurl(params) {\r\n        this.lgid = params.lgid;\r\n      }\r\n    },\r\n    components: {\r\n      DeviceDetail,\r\n      PeriodTaskRd,\r\n      RealtimeTaskRd,\r\n      BlacklistRd,\r\n      AudioRd,\r\n      HeartbeatRd,\r\n      DeviceMaintainRd\r\n    },\r\n    data() {\r\n      return {\r\n        lgid: null\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n  .el-card {\r\n    margin-bottom: 15px;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/DeviceInfo.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-card',{staticClass:\"box-card\"},[_c('DeviceDetail',{ref:\"deviceDetail\",attrs:{\"lgid\":_vm.lgid}})],1),_vm._v(\" \"),_c('el-tabs',{attrs:{\"type\":\"border-card\",\"tabPosition\":\"top\"}},[_c('el-tab-pane',{attrs:{\"label\":\"鍛ㄦ湡浠诲姟璁板綍\"}},[_c('PeriodTaskRd',{ref:\"periodTaskRd\",attrs:{\"lgid\":_vm.lgid}})],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"鍗虫椂浠诲姟璁板綍\"}},[_c('RealtimeTaskRd',{ref:\"realtimeTaskRd\",attrs:{\"lgid\":_vm.lgid}})],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"榛戠數鍙拌褰昞"}},[_c('BlacklistRd',{ref:\"blacklistRd\",attrs:{\"lgid\":_vm.lgid}})],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"鐢靛彴褰曢煶璁板綍\"}},[_c('AudioRd',{ref:\"audioRd\",attrs:{\"lgid\":_vm.lgid}})],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"鐜板満缁存姢璁板綍\"}},[_c('DeviceMaintainRd',{ref:\"deviceMaintainRd\",attrs:{\"lgid\":_vm.lgid}})],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"蹇冭烦璁板綍\"}},[_c('HeartbeatRd',{ref:\"heartbeatRd\",attrs:{\"lgid\":_vm.lgid}})],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-097e7964\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/DeviceInfo.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-097e7964\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./DeviceInfo.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceInfo.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceInfo.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-097e7964\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./DeviceInfo.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-097e7964\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/DeviceInfo.vue\n// module id = null\n// module chunks = ","import Vue from 'vue'\r\nlet VueEvent=new Vue();\r\nexport default VueEvent;\n\n\n// WEBPACK FOOTER //\n// ./src/models/VueEvent.js","<template>\r\n  <div style=\"height:100%\">\r\n    <el-table :data=\"data\" style=\"width: 100%;\" height=\"100%\">\r\n      <el-table-column prop=\"id\" label=\"缂栧彿\" width=\"150\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"address\" label=\"鍦板潃\">\r\n      </el-table-column>\r\n      <el-table-column label=\"鐘舵�乗" width=\"80\">\r\n        <template slot-scope=\"scope\">\r\n          <el-tag :type=\"getTagType(scope.row.status)\" size=\"small\">{{scope.row.status}}</el-tag>\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column prop=\"task\" label=\"浠诲姟鎻忚堪\">\r\n      </el-table-column>\r\n      <el-table-column label=\"鍓╀綑鐢甸噺\" width=\"180\">\r\n        <template slot-scope=\"scope\">\r\n          <el-progress v-if=\"scope.row.battery\" :text-inside=\"true\" :stroke-width=\"18\" :percentage=\"scope.row.battery\"\r\n            :status=\"getProgressStatus(scope.row.battery)\" style=\"margin-right:30px;\"></el-progress>\r\n          <div v-else>鏃犳暟鎹�</div>\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column fixed=\"right\" label=\"鎿嶄綔\" width=\"220\">\r\n        <template slot-scope=\"scope\">\r\n          <el-button type=\"text\" size=\"small\" @click=\"detail(scope.row)\">璇︾粏</el-button>\r\n          <el-button type=\"text\" size=\"small\" @click=\"edit(scope.row.id)\">缂栬緫</el-button>\r\n          <el-button type=\"text\" size=\"small\" @click=\"scan([scope.row.id])\">鎵彴</el-button>\r\n          <el-button type=\"text\" size=\"small\" @click=\"record([scope.row.id])\">褰曢煶</el-button>\r\n          <el-button type=\"text\" size=\"small\" @click=\"reboot([scope.row.id])\">閲嶅惎</el-button>\r\n        </template>\r\n      </el-table-column>\r\n    </el-table>\r\n  </div>\r\n</template>\r\n<script>\r\n  import VueEvent from \"@/models/VueEvent.js\";\r\n  export default {\r\n    components: {},\r\n    data() {\r\n      return {\r\n        dialog: {\r\n          title: \"涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮刓",\r\n          visible: false\r\n        },\r\n        conditions: {},\r\n        data: []\r\n      };\r\n    },\r\n    mounted() {\r\n      VueEvent.$on(\"addCondition\", params => {\r\n        let needUpdata = false;\r\n        if (params.target == \"device\") {\r\n          for (let cond in params.condition) {\r\n            if (this.conditions[cond] != params.condition[cond]) {\r\n              this.conditions[cond] = params.condition[cond]\r\n              needUpdata = true;\r\n            }\r\n\r\n          }\r\n          if (needUpdata) {\r\n            this.getDatas();\r\n          }\r\n\r\n        }\r\n      });\r\n    },\r\n    methods: {\r\n      getTagType(text) {\r\n        switch (text) {\r\n          case \"绌洪棽\":\r\n            return \"success\";\r\n          case \"绂荤嚎\":\r\n            return \"info\";\r\n        }\r\n      },\r\n      edit(id) {\r\n        VueEvent.$emit(\"editDevice\", {\r\n          lgid: id\r\n        });\r\n      },\r\n      detail(row) {\r\n        //TODO 璺宠浆鍒拌澶囪鎯呴〉闈r\n        this.$router.push({\r\n          path: `/DeviceInfo/${row.id}`\r\n        });\r\n      },\r\n      async scan(deviceIdList) {\r\n        let msg = `姝ゆ搷浣滃皢瀵硅澶� ${deviceIdList.join(\",\")} 涓嬪彂鎵彴浠诲姟锛屾槸鍚︾户缁紵`;\r\n        let confirmInfo = await this.$confirm(msg, \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          type: \"warning\"\r\n        }).catch(() => {});\r\n        if (confirmInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        this.$getJSON(\"/apicloud/jpush\", {\r\n          devices: deviceIdList,\r\n          command: \"scan\"\r\n        }).then(res => {\r\n          this.$message.success(`浠诲姟涓嬪彂鎴愬姛锛屽嵆鏃朵换鍔″彿涓� ${res.task_id}`);\r\n        });\r\n      },\r\n      async record(deviceIdList) {\r\n        let freqInfo = await this.$prompt(\"璇疯緭鍏ラ鐜囷紙鑼冨洿锛�87-108锛塡", \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          inputValidator: function (value) {\r\n            let f = Number(value);\r\n            if (isNaN(f)) {\r\n              return \"璇疯緭鍏ユ暟鍊糪";\r\n            }\r\n            if (value.match(/^[0-9]+([.]{1}[0-9]{1})?$/) === null) {\r\n              return \"棰戠巼涓烘暣鏁版垨鑰呮渶澶氫竴浣嶅皬鏁癨";\r\n            }\r\n            if (f < 87 || f > 108) {\r\n              return \"鏈夋晥棰戠巼鑼冨洿涓�87-108\";\r\n            }\r\n          },\r\n          inputErrorMessage: \"棰戠巼鏍煎紡涓嶆纭甛"\r\n        }).catch(() => {});\r\n        if (freqInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        let recordLengthInfo = await this.$prompt(\r\n          \"璇疯緭鍏ュ綍闊虫椂闀匡紙绉掞級\",\r\n          \"鎻愮ず\", {\r\n            confirmButtonText: \"纭畾\",\r\n            cancelButtonText: \"鍙栨秷\",\r\n            inputPattern: /^[1-9]\\d*$/,\r\n            inputErrorMessage: \"褰曢煶鏃堕暱搴斾负姝f暣鏁癨"\r\n          }\r\n        ).catch(() => {});\r\n        if (recordLengthInfo === undefined) {\r\n          return;\r\n        }\r\n        let recordLength = recordLengthInfo.value;\r\n\r\n        let msg = `姝ゆ搷浣滃皢瀵硅澶� ${deviceIdList.join(\r\n        \",\"\r\n      )} 涓嬪彂褰曢煶浠诲姟锛堥鐜囷細${freq}銆佸綍闊虫椂闀匡細${recordLength}锛夛紝鏄惁缁х画锛焋;\r\n        let confirmInfo = await this.$confirm(msg, \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          type: \"warning\"\r\n        }).catch(() => {});\r\n        if (confirmInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        this.$getJSON(\"/apicloud/jpush\", {\r\n          devices: deviceIdList,\r\n          command: \"record\",\r\n          extra: {\r\n            freq: freq,\r\n            length: recordLength\r\n          }\r\n        }).then(res => {\r\n          this.$message.success(`浠诲姟涓嬪彂鎴愬姛锛屽嵆鏃朵换鍔″彿涓� ${res.task_id}`);\r\n        });\r\n      },\r\n      async reboot(deviceIdList) {\r\n        let msg = `姝ゆ搷浣滃皢浣胯澶� ${deviceIdList.join(\",\")} 閲嶅惎锛屾槸鍚︾户缁紵`;\r\n        let confirmInfo = await this.$confirm(msg, \"鎻愮ず\", {\r\n          confirmButtonText: \"纭畾\",\r\n          cancelButtonText: \"鍙栨秷\",\r\n          type: \"warning\"\r\n        }).catch(() => {});\r\n        if (confirmInfo === undefined) {\r\n          return;\r\n        }\r\n\r\n        this.$getJSON(\"/apicloud/jpush\", {\r\n          devices: deviceIdList,\r\n          command: \"reboot\"\r\n        }).then(res => {\r\n          this.$message({\r\n            message: `閲嶅惎鍛戒护涓嬪彂鎴愬姛`,\r\n            type: \"success\"\r\n          });\r\n        });\r\n      },\r\n      getDatas() {\r\n        //浠庡悗鍙版煡璇㈡暟鎹甛r\n        this.$getJSON(\"/terminal/s_devicelst\", this.conditions).then(res => {\r\n          this.data = res.data;\r\n          VueEvent.$emit(\"data_loaded\", {\r\n            origin: \"device\",\r\n            total: res.total\r\n          });\r\n        });\r\n      },\r\n      getProgressStatus(value) {\r\n        if (value >= 50) return \"success\";\r\n        else if (value < 10) return \"exception\";\r\n        else return \"\";\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n  video {\r\n    height: 38px;\r\n    width: 170px;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/tables/Device.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"id\",\"label\":\"缂栧彿\",\"width\":\"150\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"address\",\"label\":\"鍦板潃\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"鐘舵�乗",\"width\":\"80\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-tag',{attrs:{\"type\":_vm.getTagType(scope.row.status),\"size\":\"small\"}},[_vm._v(_vm._s(scope.row.status))])]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"task\",\"label\":\"浠诲姟鎻忚堪\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"鍓╀綑鐢甸噺\",\"width\":\"180\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.battery)?_c('el-progress',{staticStyle:{\"margin-right\":\"30px\"},attrs:{\"text-inside\":true,\"stroke-width\":18,\"percentage\":scope.row.battery,\"status\":_vm.getProgressStatus(scope.row.battery)}}):_c('div',[_vm._v(\"鏃犳暟鎹甛")])]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"fixed\":\"right\",\"label\":\"鎿嶄綔\",\"width\":\"220\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.detail(scope.row)}}},[_vm._v(\"璇︾粏\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.edit(scope.row.id)}}},[_vm._v(\"缂栬緫\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.scan([scope.row.id])}}},[_vm._v(\"鎵彴\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.record([scope.row.id])}}},[_vm._v(\"褰曢煶\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.reboot([scope.row.id])}}},[_vm._v(\"閲嶅惎\")])]}}])})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-c33d1918\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/tables/Device.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-c33d1918\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Device.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Device.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Device.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c33d1918\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Device.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-c33d1918\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/tables/Device.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-pagination @size-change=\"handleSizeChange\" @current-change=\"handleCurrentChange\" :current-page=\"page\" :page-sizes=\"[10, 20, 50, 100]\"\r\n    :page-size=\"size\" layout=\"total, sizes, prev, pager, next, jumper\" :total=\"total\">\r\n  </el-pagination>\r\n</template>\r\n\r\n<script>\r\n  import VueEvent from \"@/models/VueEvent.js\";\r\n  export default {\r\n    data() {\r\n      return {\r\n        size: 10,\r\n        page: 1,\r\n        total: 0\r\n      };\r\n    },\r\n    mounted() {\r\n      VueEvent.$on(\"data_loaded\", params => {\r\n        if (params.origin == this.target) {\r\n          this.total = params.total;\r\n        }\r\n      });\r\n      this.onchange();\r\n    },\r\n    props: [\"target\"],\r\n    methods: {\r\n      handleSizeChange(a) {\r\n        this.size = a;\r\n        this.onchange();\r\n      },\r\n      handleCurrentChange(a) {\r\n        this.page = a;\r\n        this.onchange();\r\n      },\r\n      onchange() {\r\n        if (this.target) {\r\n          VueEvent.$emit(\"addCondition\", {\r\n            target: this.target,\r\n            condition: {\r\n              page: this.page,\r\n              size: this.size\r\n            }\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-pagination {\r\n    margin-top: 10px;\r\n    text-align: center;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/PageNations/Complete.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-pagination',{attrs:{\"current-page\":_vm.page,\"page-sizes\":[10, 20, 50, 100],\"page-size\":_vm.size,\"layout\":\"total, sizes, prev, pager, next, jumper\",\"total\":_vm.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-6b046832\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/PageNations/Complete.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6b046832\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Complete.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Complete.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Complete.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6b046832\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Complete.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-6b046832\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/PageNations/Complete.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-input placeholder=\"璇疯緭鍏ュ叧閿瓧\" v-model=\"value\">\r\n    <el-button slot=\"append\" icon=\"el-icon-search\" @click=\"onchange\"></el-button>\r\n  </el-input>\r\n</template>\r\n\r\n<script>\r\n  import VueEvent from \"@/models/VueEvent.js\";\r\n  export default {\r\n    data() {\r\n      return {\r\n        value: ''\r\n      };\r\n    },\r\n    mounted() {\r\n      VueEvent.$on(\"data_loaded\", params => {\r\n        if (params.origin == this.target) {\r\n          this.total = params.total;\r\n        }\r\n      });\r\n    },\r\n    props: [\"target\"],\r\n    methods: {\r\n      onchange() {\r\n        if (this.target) {\r\n          VueEvent.$emit(\"addCondition\", {\r\n            target: this.target,\r\n            condition: {\r\n              keywords: this.value\r\n            }\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-pagination {\r\n    margin-top: 10px;\r\n    text-align: center;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/input/Search.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-input',{attrs:{\"placeholder\":\"璇疯緭鍏ュ叧閿瓧\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('el-button',{attrs:{\"slot\":\"append\",\"icon\":\"el-icon-search\"},on:{\"click\":_vm.onchange},slot:\"append\"})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-2c39f46a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/input/Search.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2c39f46a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Search.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Search.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Search.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2c39f46a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Search.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-2c39f46a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/input/Search.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-dialog :visible.sync=\"visible\" :title=\"title\" width=\"450px\">\r\n    <el-form ref=\"dataForm\" :model=\"data\" :rules=\"rules\" label-position=\"right\" label-width=\"80px\" size=\"mini\">\r\n\r\n      <el-row>\r\n        <el-col :span=\"12\">\r\n          <el-form-item prop=\"log_id\" label=\"閫昏緫缂栧彿\">\r\n            <el-input v-model=\"data.log_id\" :disabled=\"!allPropEditable\"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"12\">\r\n          <el-form-item prop=\"phy_id\" label=\"鐗╃悊缂栧彿\">\r\n            <el-input v-model=\"data.phy_id\" :disabled=\"!allPropEditable\"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n      </el-row>\r\n\r\n      <el-row>\r\n        <el-col :span=\"10\">\r\n          <el-form-item prop=\"province\" label=\"璁惧鍦板潃\">\r\n            <el-input v-model=\"data.province\" placeholder=\"鐪乗"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"1\" style=\"text-align:center;\">-</el-col>\r\n        <el-col :span=\"6\">\r\n          <el-form-item prop=\"city\" label-width=\"0\">\r\n            <el-input v-model=\"data.city\" placeholder=\"甯俓"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"1\" style=\"text-align:center;\">-</el-col>\r\n        <el-col :span=\"6\">\r\n          <el-form-item prop=\"county\" label-width=\"0\">\r\n            <el-input v-model=\"data.county\" placeholder=\"鍘縗"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n      </el-row>\r\n\r\n      <el-row>\r\n        <el-col :span=\"10\">\r\n          <el-form-item prop=\"district\">\r\n            <el-input v-model=\"data.district\" placeholder=\"鍖篭"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"1\" style=\"text-align:center;\">-</el-col>\r\n        <el-col :span=\"6\">\r\n          <el-form-item prop=\"street\" label-width=\"0\">\r\n            <el-input v-model=\"data.street\" placeholder=\"琛楅亾\"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"1\" style=\"text-align:center;\">-</el-col>\r\n        <el-col :span=\"6\">\r\n          <el-form-item prop=\"address\" label-width=\"0\">\r\n            <el-input v-model=\"data.address\" placeholder=\"璇︾粏\"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n      </el-row>\r\n\r\n      <el-row>\r\n        <el-col :span=\"13\">\r\n          <el-form-item prop=\"lon\" label=\"缁忕含鍧愭爣\">\r\n            <el-input v-model=\"data.lon\" placeholder=\"缁忓害\"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"1\" style=\"text-align:center;\">-</el-col>\r\n        <el-col :span=\"10\">\r\n          <el-form-item prop=\"lat\" label-width=\"0\">\r\n            <el-input v-model=\"data.lat\" placeholder=\"绾害\"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n      </el-row>\r\n\r\n      <el-row>\r\n        <el-col :span=\"13\">\r\n          <el-form-item prop=\"dtype_source\" label=\"璁惧绫诲瀷\">\r\n            <el-select v-model=\"data.dtype_source\">\r\n              <el-option value=\"瀹ゅ鏃犳簮\"></el-option>\r\n              <el-option value=\"瀹ゅ唴鏈夋簮\"></el-option>\r\n            </el-select>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"1\" style=\"text-align:center;\">-</el-col>\r\n        <el-col :span=\"10\">\r\n          <el-form-item prop=\"dtype_move\" label-width=\"0\">\r\n            <el-select v-model=\"data.dtype_move\" style=\"width:100%;\">\r\n              <el-option value=\"绉诲姩\"></el-option>\r\n              <el-option value=\"鍥哄畾\"></el-option>\r\n            </el-select>\r\n          </el-form-item>\r\n        </el-col>\r\n      </el-row>\r\n\r\n      <el-row>\r\n        <el-col :span=\"13\">\r\n          <el-form-item prop=\"dtype_os\" label=\"鎿嶄綔绯荤粺\">\r\n            <el-select v-model=\"data.dtype_os\">\r\n              <el-option value=\"Android\"></el-option>\r\n              <el-option value=\"iOS\"></el-option>\r\n            </el-select>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"1\" style=\"text-align:center;\">-</el-col>\r\n        <el-col :span=\"10\">\r\n          <el-form-item prop=\"os_version\" label-width=\"0\">\r\n            <el-input v-model.trim=\"data.os_version\" placeholder=\"鐗堟湰鍙穃"></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n      </el-row>\r\n\r\n      <el-row>\r\n        <el-col :span=\"12\">\r\n          <el-form-item prop=\"dtype_net\" label=\"缃戠粶绫诲瀷\" v-if=\"allPropEditable\">\r\n            <el-select v-model=\"data.dtype_net\" style=\"width:100%;\">\r\n              <el-option value=\"4G\"></el-option>\r\n              <el-option value=\"WiFi\"></el-option>\r\n            </el-select>\r\n          </el-form-item>\r\n        </el-col>\r\n        <el-col :span=\"12\">\r\n          <el-form-item prop=\"heartbeat\" label=\"蹇冭烦闂撮殧\" v-if=\"allPropEditable\">\r\n            <el-input v-model=\"data.heartbeat\"><template slot=\"append\">鍒�</template></el-input>\r\n          </el-form-item>\r\n        </el-col>\r\n      </el-row>\r\n\r\n      <el-form-item>\r\n        <el-button style=\"float:right;\" type=\"primary\" @click=\"save\">淇濆瓨</el-button>\r\n        <el-button style=\"float:right;margin-right:5px;\" @click=\"visible = false\">鍙� 娑�</el-button>\r\n      </el-form-item>\r\n\r\n    </el-form>\r\n  </el-dialog>\r\n</template>\r\n\r\n<script>\r\n  import VueEvent from \"@/models/VueEvent.js\";\r\n  export default {\r\n    beforeDestroy() {\r\n      VueEvent.$off(\"editDevice\");\r\n      VueEvent.$off(\"addDevice\");\r\n    },\r\n    mounted() {\r\n      VueEvent.$on(\"editDevice\", params => {\r\n        this.$getJSON(\"/terminal/s_deviceDetail\", {\r\n          device_lgid: params.lgid\r\n        }).then(res => {\r\n          this.data = JSON.parse(JSON.stringify(this.data_ini));\r\n          for (let key in this.data)\r\n            if (res.data[0][key]) this.data[key] = res.data[0][key];\r\n          this.type = \"edit\";\r\n          this.title = \"缂栬緫璁惧\";\r\n          this.allPropEditable = false; //璁惧鍙枫�佹搷浣滅郴缁熺瓑淇℃伅绂佹鐢ㄦ埛缂栬緫淇敼\r\n          this.visible = true;\r\n        });\r\n      });\r\n      VueEvent.$on(\"addDevice\", () => {\r\n        this.type = \"add\";\r\n        this.data = JSON.parse(JSON.stringify(this.data_ini));\r\n        this.allPropEditable = true;\r\n        this.visible = true;\r\n      });\r\n    },\r\n    data() {\r\n      return {\r\n        type: \"\",\r\n        visible: false,\r\n        title: \"娣诲姞璁惧\",\r\n        allPropEditable: true,\r\n        data: {},\r\n        data_ini: {\r\n          log_id: \"\",\r\n          phy_id: \"\",\r\n          province: \"\",\r\n          city: \"\",\r\n          county: \"\",\r\n          district: \"\",\r\n          street: \"\",\r\n          address: \"\",\r\n          lon: \"\",\r\n          lat: \"\",\r\n          dtype_source: \"瀹ゅ鏃犳簮\",\r\n          dtype_move: \"鍥哄畾\",\r\n          dtype_net: \"4G\",\r\n          dtype_os: \"Android\",\r\n          os_version: \"\",\r\n          heartbeat: \"\"\r\n        },\r\n        rules: {\r\n          log_id: [{\r\n            required: true,\r\n            message: \"璇疯緭鍏ラ�昏緫缂栧彿\",\r\n            trigger: \"blur\"\r\n          }],\r\n          phy_id: [{\r\n            required: true,\r\n            message: \"璇疯緭鍏ョ墿鐞嗙紪鍙穃",\r\n            trigger: \"blur\"\r\n          }],\r\n          lon: [{\r\n              required: true,\r\n              message: \"璇疯緭鍏ョ粡搴",\r\n              trigger: \"blur\"\r\n            },\r\n            {\r\n              validator: function (rule, value, callback) {\r\n                if (value) {\r\n                  if (!/^[-]?\\d+(\\.\\d+)?$/.test(value)) return callback(new Error(\"鍙兘涓烘暟鍊糪"));\r\n                  else if (Math.abs(Number(value)) > 180) return callback(new Error(\"缁忓害鑼冨洿涓�-180鍒�180搴"));\r\n                  else callback();\r\n                } else {\r\n                  callback();\r\n                }\r\n              },\r\n              trigger: \"blur\"\r\n            }\r\n          ],\r\n          lat: [{\r\n              required: true,\r\n              message: \"璇疯緭鍏ョ含搴",\r\n              trigger: \"blur\"\r\n            },\r\n            {\r\n              validator: function (rule, value, callback) {\r\n                if (value) {\r\n                  if (!/^[-]?\\d+(\\.\\d+)?$/.test(value)) return callback(new Error(\"鍙兘涓烘暟鍊糪"));\r\n                  else if (Math.abs(Number(value)) > 90) return callback(new Error(\"缁忓害鑼冨洿涓�-90鍒�90搴"));\r\n                  else callback();\r\n                } else {\r\n                  callback();\r\n                }\r\n              },\r\n              trigger: \"blur\"\r\n            }\r\n          ],\r\n          os_version: [{\r\n            required: true,\r\n            message: \"璇疯緭鍏ョ増鏈彿\",\r\n            trigger: \"blur\"\r\n          }],\r\n          heartbeat: [{\r\n            required: true,\r\n            message: \"璇疯緭鍏ュ績璺抽棿闅擻",\r\n            trigger: \"blur\"\r\n          }, {\r\n            validator: function (rule, value, callback) {\r\n              if (value) {\r\n                if (!/^[1-9]\\d*$/.test(value)) return callback(new Error(\"鍙兘涓烘鏁存暟\"));\r\n                else callback();\r\n              } else {\r\n                callback();\r\n              }\r\n            },\r\n            trigger: \"blur\"\r\n          }]\r\n        }\r\n      };\r\n    },\r\n    methods: {\r\n      save() {\r\n        this.$refs[\"dataForm\"].validate(valid => {\r\n          if (valid) {\r\n            this.$confirm('鏄惁缁х画?', '鎻愮ず', {\r\n              confirmButtonText: '纭畾',\r\n              cancelButtonText: '鍙栨秷',\r\n              type: 'warning'\r\n            }).then(() => {\r\n              if (this.type == \"edit\")\r\n                this.$getJSON(\"/terminal/u_device\", this.data).then(res => {\r\n                  if (res.success) this.$message.success(\"淇敼鎴愬姛\");\r\n                  else this.$message.error(\"淇敼澶辫触\");\r\n                });\r\n              else if (this.type == \"add\")\r\n                this.$getJSON(\"/terminal/i_device\", this.data).then(res => {\r\n                  if (res.success) this.$message.success(\"娣诲姞鎴愬姛\");\r\n                  else this.$message.error(\"娣诲姞澶辫触\");\r\n                });\r\n              this.visible = false;\r\n            }).catch(() => {});\r\n          }\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Form/DeviceEdit.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"visible\":_vm.visible,\"title\":_vm.title,\"width\":\"450px\"},on:{\"update:visible\":function($event){_vm.visible=$event}}},[_c('el-form',{ref:\"dataForm\",attrs:{\"model\":_vm.data,\"rules\":_vm.rules,\"label-position\":\"right\",\"label-width\":\"80px\",\"size\":\"mini\"}},[_c('el-row',[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"prop\":\"log_id\",\"label\":\"閫昏緫缂栧彿\"}},[_c('el-input',{attrs:{\"disabled\":!_vm.allPropEditable},model:{value:(_vm.data.log_id),callback:function ($$v) {_vm.$set(_vm.data, \"log_id\", $$v)},expression:\"data.log_id\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"prop\":\"phy_id\",\"label\":\"鐗╃悊缂栧彿\"}},[_c('el-input',{attrs:{\"disabled\":!_vm.allPropEditable},model:{value:(_vm.data.phy_id),callback:function ($$v) {_vm.$set(_vm.data, \"phy_id\", $$v)},expression:\"data.phy_id\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":10}},[_c('el-form-item',{attrs:{\"prop\":\"province\",\"label\":\"璁惧鍦板潃\"}},[_c('el-input',{attrs:{\"placeholder\":\"鐪乗"},model:{value:(_vm.data.province),callback:function ($$v) {_vm.$set(_vm.data, \"province\", $$v)},expression:\"data.province\"}})],1)],1),_vm._v(\" \"),_c('el-col',{staticStyle:{\"text-align\":\"center\"},attrs:{\"span\":1}},[_vm._v(\"-\")]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":\"city\",\"label-width\":\"0\"}},[_c('el-input',{attrs:{\"placeholder\":\"甯俓"},model:{value:(_vm.data.city),callback:function ($$v) {_vm.$set(_vm.data, \"city\", $$v)},expression:\"data.city\"}})],1)],1),_vm._v(\" \"),_c('el-col',{staticStyle:{\"text-align\":\"center\"},attrs:{\"span\":1}},[_vm._v(\"-\")]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":\"county\",\"label-width\":\"0\"}},[_c('el-input',{attrs:{\"placeholder\":\"鍘縗"},model:{value:(_vm.data.county),callback:function ($$v) {_vm.$set(_vm.data, \"county\", $$v)},expression:\"data.county\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":10}},[_c('el-form-item',{attrs:{\"prop\":\"district\"}},[_c('el-input',{attrs:{\"placeholder\":\"鍖篭"},model:{value:(_vm.data.district),callback:function ($$v) {_vm.$set(_vm.data, \"district\", $$v)},expression:\"data.district\"}})],1)],1),_vm._v(\" \"),_c('el-col',{staticStyle:{\"text-align\":\"center\"},attrs:{\"span\":1}},[_vm._v(\"-\")]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":\"street\",\"label-width\":\"0\"}},[_c('el-input',{attrs:{\"placeholder\":\"琛楅亾\"},model:{value:(_vm.data.street),callback:function ($$v) {_vm.$set(_vm.data, \"street\", $$v)},expression:\"data.street\"}})],1)],1),_vm._v(\" \"),_c('el-col',{staticStyle:{\"text-align\":\"center\"},attrs:{\"span\":1}},[_vm._v(\"-\")]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":\"address\",\"label-width\":\"0\"}},[_c('el-input',{attrs:{\"placeholder\":\"璇︾粏\"},model:{value:(_vm.data.address),callback:function ($$v) {_vm.$set(_vm.data, \"address\", $$v)},expression:\"data.address\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":13}},[_c('el-form-item',{attrs:{\"prop\":\"lon\",\"label\":\"缁忕含鍧愭爣\"}},[_c('el-input',{attrs:{\"placeholder\":\"缁忓害\"},model:{value:(_vm.data.lon),callback:function ($$v) {_vm.$set(_vm.data, \"lon\", $$v)},expression:\"data.lon\"}})],1)],1),_vm._v(\" \"),_c('el-col',{staticStyle:{\"text-align\":\"center\"},attrs:{\"span\":1}},[_vm._v(\"-\")]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":10}},[_c('el-form-item',{attrs:{\"prop\":\"lat\",\"label-width\":\"0\"}},[_c('el-input',{attrs:{\"placeholder\":\"绾害\"},model:{value:(_vm.data.lat),callback:function ($$v) {_vm.$set(_vm.data, \"lat\", $$v)},expression:\"data.lat\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":13}},[_c('el-form-item',{attrs:{\"prop\":\"dtype_source\",\"label\":\"璁惧绫诲瀷\"}},[_c('el-select',{model:{value:(_vm.data.dtype_source),callback:function ($$v) {_vm.$set(_vm.data, \"dtype_source\", $$v)},expression:\"data.dtype_source\"}},[_c('el-option',{attrs:{\"value\":\"瀹ゅ鏃犳簮\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"瀹ゅ唴鏈夋簮\"}})],1)],1)],1),_vm._v(\" \"),_c('el-col',{staticStyle:{\"text-align\":\"center\"},attrs:{\"span\":1}},[_vm._v(\"-\")]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":10}},[_c('el-form-item',{attrs:{\"prop\":\"dtype_move\",\"label-width\":\"0\"}},[_c('el-select',{staticStyle:{\"width\":\"100%\"},model:{value:(_vm.data.dtype_move),callback:function ($$v) {_vm.$set(_vm.data, \"dtype_move\", $$v)},expression:\"data.dtype_move\"}},[_c('el-option',{attrs:{\"value\":\"绉诲姩\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"鍥哄畾\"}})],1)],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":13}},[_c('el-form-item',{attrs:{\"prop\":\"dtype_os\",\"label\":\"鎿嶄綔绯荤粺\"}},[_c('el-select',{model:{value:(_vm.data.dtype_os),callback:function ($$v) {_vm.$set(_vm.data, \"dtype_os\", $$v)},expression:\"data.dtype_os\"}},[_c('el-option',{attrs:{\"value\":\"Android\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"iOS\"}})],1)],1)],1),_vm._v(\" \"),_c('el-col',{staticStyle:{\"text-align\":\"center\"},attrs:{\"span\":1}},[_vm._v(\"-\")]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":10}},[_c('el-form-item',{attrs:{\"prop\":\"os_version\",\"label-width\":\"0\"}},[_c('el-input',{attrs:{\"placeholder\":\"鐗堟湰鍙穃"},model:{value:(_vm.data.os_version),callback:function ($$v) {_vm.$set(_vm.data, \"os_version\", (typeof $$v === 'string'? $$v.trim(): $$v))},expression:\"data.os_version\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":12}},[(_vm.allPropEditable)?_c('el-form-item',{attrs:{\"prop\":\"dtype_net\",\"label\":\"缃戠粶绫诲瀷\"}},[_c('el-select',{staticStyle:{\"width\":\"100%\"},model:{value:(_vm.data.dtype_net),callback:function ($$v) {_vm.$set(_vm.data, \"dtype_net\", $$v)},expression:\"data.dtype_net\"}},[_c('el-option',{attrs:{\"value\":\"4G\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"WiFi\"}})],1)],1):_vm._e()],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[(_vm.allPropEditable)?_c('el-form-item',{attrs:{\"prop\":\"heartbeat\",\"label\":\"蹇冭烦闂撮殧\"}},[_c('el-input',{model:{value:(_vm.data.heartbeat),callback:function ($$v) {_vm.$set(_vm.data, \"heartbeat\", $$v)},expression:\"data.heartbeat\"}},[_c('template',{slot:\"append\"},[_vm._v(\"鍒哱")])],2)],1):_vm._e()],1)],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{staticStyle:{\"float\":\"right\"},attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"淇濆瓨\")]),_vm._v(\" \"),_c('el-button',{staticStyle:{\"float\":\"right\",\"margin-right\":\"5px\"},on:{\"click\":function($event){_vm.visible = false}}},[_vm._v(\"鍙� 娑圽")])],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-0f118dd4\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Form/DeviceEdit.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0f118dd4\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./DeviceEdit.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceEdit.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceEdit.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0f118dd4\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./DeviceEdit.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0f118dd4\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Form/DeviceEdit.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"padding:0;margin:0;height:100%;\">\r\n    <el-row style=\"height:55px;padding-bottom:15px;\">\r\n      <el-col :span=\"3\">\r\n        <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"add\">娣诲姞璁惧</el-button>\r\n      </el-col>\r\n      <el-col :span=\"6\">\r\n        <searcher target=\"device\"></searcher>\r\n      </el-col>\r\n    </el-row>\r\n    <el-row style=\"height:calc(100% - 55px - 42px);\">\r\n      <devices></devices>\r\n    </el-row>\r\n    <el-row style=\"height:42px;\">\r\n      <pagination target=\"device\"></pagination>\r\n    </el-row>\r\n\r\n    <DeviceEdit></DeviceEdit>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Devices from \"@/components/tables/Device.vue\";\r\n  import Pagination from \"@/components/PageNations/Complete.vue\";\r\n  import Searcher from \"@/components/input/Search.vue\";\r\n  import DeviceEdit from '@/components/Form/DeviceEdit.vue';\r\n  import VueEvent from \"@/models/VueEvent.js\";\r\n  export default {\r\n    components: {\r\n      Devices,\r\n      Pagination,\r\n      Searcher,\r\n      DeviceEdit\r\n    },\r\n    methods: {},\r\n    data() {\r\n      return {\r\n\r\n      };\r\n    },\r\n    mounted() {},\r\n    methods: {\r\n      add() {\r\n        VueEvent.$emit(\"addDevice\");\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/Device.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"0\",\"margin\":\"0\",\"height\":\"100%\"}},[_c('el-row',{staticStyle:{\"height\":\"55px\",\"padding-bottom\":\"15px\"}},[_c('el-col',{attrs:{\"span\":3}},[_c('el-button',{attrs:{\"type\":\"primary\",\"icon\":\"el-icon-plus\"},on:{\"click\":_vm.add}},[_vm._v(\"娣诲姞璁惧\")])],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('searcher',{attrs:{\"target\":\"device\"}})],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"calc(100% - 55px - 42px)\"}},[_c('devices')],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"42px\"}},[_c('pagination',{attrs:{\"target\":\"device\"}})],1),_vm._v(\" \"),_c('DeviceEdit')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-60fd41a0\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/Device.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-60fd41a0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Device.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Device.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Device.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-60fd41a0\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Device.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-60fd41a0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/Device.vue\n// module id = null\n// module chunks = ","<template>\r\n  <el-form :inline=\"true\">\r\n    <el-form-item v-for=\"(filterInfo,key) in filter\" :key=\"key\" :label=\"filterInfo.text\">\r\n      <el-input v-if=\"filterInfo.type=='string' || filterInfo.type=='int' ||filterInfo.type=='real'\" v-model=\"returnValue[key]\"\r\n        :placeholder=\"filterInfo.placeholder\" :style=\"`width:${filterInfo.width};`\"></el-input>\r\n      <el-date-picker v-else-if=\"filterInfo.type=='datetimerange'\" v-model=\"returnValue[key]\" type=\"datetimerange\"\r\n        range-separator=\"-\" start-placeholder=\"璧峰鏃ユ湡\" end-placeholder=\"缁撴潫鏃ユ湡\" format=\"yyyy-MM-dd HH:mm:ss\" value-format=\"yyyy-MM-dd HH:mm:ss\"\r\n        :style=\"`width:${filterInfo.width};`\">\r\n      </el-date-picker>\r\n      <el-select v-else-if=\"filterInfo.type=='select'\" v-model=\"returnValue[key]\" filterable clearable :placeholder=\"filterInfo.placeholder\"\r\n        :style=\"`width:${filterInfo.width};`\">\r\n        <el-option v-for=\"(option,idx) in filterInfo.options\" :key=\"idx\" :label=\"option\" :value=\"option\">\r\n        </el-option>\r\n      </el-select>\r\n      <el-select v-else-if=\"filterInfo.type=='select2'\" v-model=\"returnValue[key]\" filterable clearable :placeholder=\"filterInfo.placeholder\"\r\n        :style=\"`width:${filterInfo.width};`\">\r\n        <el-option-group v-for=\"(devices,district) in filterInfo.options\" :key=\"district\" :label=\"district\">\r\n          <el-option v-for=\"(item,idx) in devices\" :key=\"idx\" :label=\"item\" :value=\"item\">\r\n          </el-option>\r\n        </el-option-group>\r\n      </el-select>\r\n    </el-form-item>\r\n    <el-form-item style=\"margin-left:80px;\">\r\n      <el-button-group>\r\n        <el-button type=\"primary\" icon=\"el-icon-delete\" @click=\"handleClear\" style=\"padding-left:5px;padding-right:10px;\">娓呯┖</el-button>\r\n        <el-button type=\"primary\" icon=\"el-icon-search\" @click=\"handleSearch\" style=\"padding-left:5px;padding-right:10px;\">鎼滅储</el-button>\r\n      </el-button-group>\r\n    </el-form-item>\r\n  </el-form>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    data() {\r\n      return {\r\n        returnValue: {}\r\n      };\r\n    },\r\n    mounted() {},\r\n    watch: {},\r\n    props: [\"filter\"],\r\n    methods: {\r\n      handleClear() {\r\n        for (let key in this.returnValue) {\r\n          this.returnValue[key] = null;\r\n        }\r\n        this.$emit(\"handleSearch\", this.returnValue);\r\n      },\r\n      handleSearch() {\r\n        // value妫�楠孿r\n        let invalidFields = [];\r\n        for (let key in this.returnValue) {\r\n          let value = this.returnValue[key];\r\n          let type = this.filter[key].type;\r\n          if (value) {\r\n            if (type == \"int\" || type == \"real\" || type == \"string\") {\r\n              value = value.trim();\r\n              this.returnValue[key] = value\r\n            }\r\n            if (value == \"\") continue;\r\n            // 涓昏妫�楠屾暣鏁板拰瀹炴暟\r\n            if (type == \"int\") {\r\n              const temp = Number(this.returnValue[key]);\r\n              if (isNaN(temp)) {\r\n                this.returnValue[key] = null;\r\n                invalidFields.push(this.filter[key].text);\r\n              } else {\r\n                this.returnValue[key] = parseInt(temp).toString();\r\n              }\r\n            } else if (type == \"real\") {\r\n              const temp = Number(this.returnValue[key]);\r\n              if (isNaN(temp)) {\r\n                this.returnValue[key] = null;\r\n                invalidFields.push(this.filter[key].text);\r\n              }\r\n            }\r\n          }\r\n        }\r\n        if (invalidFields.length > 0) {\r\n          this.$message({\r\n            duration: 2000,\r\n            showClose: true,\r\n            message: `${invalidFields.join('銆�')} 鐨勬牸寮忎笉姝g‘`,\r\n            type: \"error\"\r\n          });\r\n        } else {\r\n          this.$emit(\"handleSearch\", this.returnValue);\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Input/SearchFilter.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-form',{attrs:{\"inline\":true}},[_vm._l((_vm.filter),function(filterInfo,key){return _c('el-form-item',{key:key,attrs:{\"label\":filterInfo.text}},[(filterInfo.type=='string' || filterInfo.type=='int' ||filterInfo.type=='real')?_c('el-input',{style:((\"width:\" + (filterInfo.width) + \";\")),attrs:{\"placeholder\":filterInfo.placeholder},model:{value:(_vm.returnValue[key]),callback:function ($$v) {_vm.$set(_vm.returnValue, key, $$v)},expression:\"returnValue[key]\"}}):(filterInfo.type=='datetimerange')?_c('el-date-picker',{style:((\"width:\" + (filterInfo.width) + \";\")),attrs:{\"type\":\"datetimerange\",\"range-separator\":\"-\",\"start-placeholder\":\"璧峰鏃ユ湡\",\"end-placeholder\":\"缁撴潫鏃ユ湡\",\"format\":\"yyyy-MM-dd HH:mm:ss\",\"value-format\":\"yyyy-MM-dd HH:mm:ss\"},model:{value:(_vm.returnValue[key]),callback:function ($$v) {_vm.$set(_vm.returnValue, key, $$v)},expression:\"returnValue[key]\"}}):(filterInfo.type=='select')?_c('el-select',{style:((\"width:\" + (filterInfo.width) + \";\")),attrs:{\"filterable\":\"\",\"clearable\":\"\",\"placeholder\":filterInfo.placeholder},model:{value:(_vm.returnValue[key]),callback:function ($$v) {_vm.$set(_vm.returnValue, key, $$v)},expression:\"returnValue[key]\"}},_vm._l((filterInfo.options),function(option,idx){return _c('el-option',{key:idx,attrs:{\"label\":option,\"value\":option}})})):(filterInfo.type=='select2')?_c('el-select',{style:((\"width:\" + (filterInfo.width) + \";\")),attrs:{\"filterable\":\"\",\"clearable\":\"\",\"placeholder\":filterInfo.placeholder},model:{value:(_vm.returnValue[key]),callback:function ($$v) {_vm.$set(_vm.returnValue, key, $$v)},expression:\"returnValue[key]\"}},_vm._l((filterInfo.options),function(devices,district){return _c('el-option-group',{key:district,attrs:{\"label\":district}},_vm._l((devices),function(item,idx){return _c('el-option',{key:idx,attrs:{\"label\":item,\"value\":item}})}))})):_vm._e()],1)}),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"margin-left\":\"80px\"}},[_c('el-button-group',[_c('el-button',{staticStyle:{\"padding-left\":\"5px\",\"padding-right\":\"10px\"},attrs:{\"type\":\"primary\",\"icon\":\"el-icon-delete\"},on:{\"click\":_vm.handleClear}},[_vm._v(\"娓呯┖\")]),_vm._v(\" \"),_c('el-button',{staticStyle:{\"padding-left\":\"5px\",\"padding-right\":\"10px\"},attrs:{\"type\":\"primary\",\"icon\":\"el-icon-search\"},on:{\"click\":_vm.handleSearch}},[_vm._v(\"鎼滅储\")])],1)],1)],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-3356f0a8\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Input/SearchFilter.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3356f0a8\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./SearchFilter.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./SearchFilter.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./SearchFilter.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3356f0a8\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./SearchFilter.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3356f0a8\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Input/SearchFilter.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-form',{attrs:{\"label-position\":\"right\",\"label-width\":\"80px\",\"size\":\"mini\"}},[_c('el-row',{staticStyle:{\"margin\":\"0\"}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"璁惧鍒楄〃\"}},[_c('el-select',{attrs:{\"placeholder\":\"涓嬫媺鏌ョ湅\"},model:{value:(_vm.selectValue),callback:function ($$v) {_vm.selectValue=$$v},expression:\"selectValue\"}},_vm._l((_vm.data.device_list),function(item,idx){return _c('el-option',{key:idx,attrs:{\"label\":item,\"value\":item}})}))],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"鎵ц鎿嶄綔\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.command?_vm.data.command:\"鏃犳暟鎹甛"))])],1)],1)],1),_vm._v(\" \"),(_vm.data.command=='褰曢煶')?_c('el-row',{staticStyle:{\"margin\":\"0\"}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"褰曢煶棰戠巼\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.freq_range?_vm.data.freq_range:\"鏃犳暟鎹甛"))])],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"褰曢煶鏃堕暱\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.recording_length?((_vm.data.recording_length) + \"绉抃"):\"鏃犳暟鎹甛"))])],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('el-row',{staticStyle:{\"margin\":\"0\"}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"鍒涘缓鏃堕棿\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.create_time?_vm.data.create_time:\"鏃犳暟鎹甛"))])],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"瀹屾垚鏃堕棿\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.finish_time?_vm.data.finish_time:\"鏃犳暟鎹甛"))])],1)],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"margin\":\"0\"}},[_c('el-form-item',{attrs:{\"label\":\"浠诲姟璇存槑\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.data.detail?_vm.data.detail:\"鏃犺鏄嶾"))])],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-12198d98\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Form/RealtimeTaskDetail.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-12198d98\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./RealtimeTaskDetail.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./RealtimeTaskDetail.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./RealtimeTaskDetail.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-12198d98\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./RealtimeTaskDetail.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-12198d98\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Form/RealtimeTaskDetail.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div>\r\n    <el-table :data=\"data\" border style=\"width: 100%\" size=\"mini\">\r\n      <el-table-column prop=\"frequency\" label=\"棰戠巼\" :width=\"70\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"signal_strength\" label=\"淇″彿寮哄害\" :width=\"80\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"upload_time\" label=\"涓婁紶鏃堕棿\" :width=\"160\">\r\n      </el-table-column>\r\n      <el-table-column label=\"褰曢煶鏂囦欢\" :width=\"100\">\r\n        <template slot-scope=\"scope\">\r\n          <el-button v-if=\"scope.row.radio_file_path\" type=\"text\" @click=\"$playAudio(scope.row.radio_file_path,scope.row.frequency,scope.row.upload_time)\">鐐瑰嚮鎾斁</el-button>\r\n          <template v-else>鏃犳枃浠�</template>\r\n        </template>\r\n      </el-table-column>\r\n      <el-table-column prop=\"recognition\" label=\"闊抽璇嗗埆\">\r\n      </el-table-column>\r\n      <el-table-column prop=\"result_type_name\" label=\"鍒ゅ埆缁撴灉\" :width=\"85\">\r\n      </el-table-column>\r\n    </el-table>\r\n    <Pagination :totalCountOrURL=\"data.length\" :params=\"null\" @change=\"handlePageChange\"></Pagination>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  export default {\r\n    props: [\"task_record_id\"],\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    watch: {\r\n      task_record_id() {\r\n        this.getData();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        subdata: [],\r\n        page: 1,\r\n        size: 10\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.subdata = this.data.slice(this.size * (this.page - 1), this.size * this.page);\r\n      },\r\n      getData() {\r\n        if (this.task_record_id) {\r\n          console.log(this.task_record_id)\r\n          this.$getJSON(\"/task/s_taskResult\", {\r\n            task_record_id: this.task_record_id\r\n          }).then(res => {\r\n            this.data = res.data;\r\n            this.subdata = this.data.slice(this.size * (this.page - 1), this.size * this.page);\r\n          });\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Tables/TaskResult.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"size\":\"mini\"}},[_c('el-table-column',{attrs:{\"prop\":\"frequency\",\"label\":\"棰戠巼\",\"width\":70}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"signal_strength\",\"label\":\"淇″彿寮哄害\",\"width\":80}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"upload_time\",\"label\":\"涓婁紶鏃堕棿\",\"width\":160}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"褰曢煶鏂囦欢\",\"width\":100},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.radio_file_path)?_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){_vm.$playAudio(scope.row.radio_file_path,scope.row.frequency,scope.row.upload_time)}}},[_vm._v(\"鐐瑰嚮鎾斁\")]):[_vm._v(\"鏃犳枃浠禱")]]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"recognition\",\"label\":\"闊抽璇嗗埆\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"result_type_name\",\"label\":\"鍒ゅ埆缁撴灉\",\"width\":85}})],1),_vm._v(\" \"),_c('Pagination',{attrs:{\"totalCountOrURL\":_vm.data.length,\"params\":null},on:{\"change\":_vm.handlePageChange}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-39b12d2e\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Tables/TaskResult.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-39b12d2e\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./TaskResult.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./TaskResult.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./TaskResult.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-39b12d2e\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./TaskResult.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-39b12d2e\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Tables/TaskResult.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <el-row style=\"height:55px;\">\r\n      <SearchFilter :filter=\"filterOptions\" @handleSearch=\"SearchWithFilter\"></SearchFilter>\r\n    </el-row>\r\n    <el-row style=\"height:calc(100% - 55px - 42px);\">\r\n      <el-table :data=\"data\" border style=\"width: 100%\" height=\"100%\">\r\n        <!-- <el-table-column prop=\"id\" label=\"id\" :width=\"120\">\r\n      </el-table-column> -->\r\n        <el-table-column prop=\"task_type\" label=\"浠诲姟绫诲瀷\" :width=\"120\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"task_id\" label=\"浠诲姟鍙穃" :width=\"120\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"device_lgid\" label=\"鎵ц璁惧\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"start_time\" label=\"鎵ц鏃堕棿\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"finish_time\" label=\"瀹屾垚鏃堕棿\">\r\n        </el-table-column>\r\n        <el-table-column fixed=\"right\" label=\"鎿嶄綔\" width=\"160\">\r\n          <template slot-scope=\"scope\">\r\n            <el-button type=\"text\" size=\"small\" @click=\"showTaskDetail(scope.$index)\">浠诲姟璇︽儏</el-button>\r\n            <el-button type=\"text\" size=\"small\" @click=\"showTaskResult(scope.$index)\">鎵ц缁撴灉</el-button>\r\n          </template>\r\n        </el-table-column>\r\n      </el-table>\r\n    </el-row>\r\n    <el-row style=\"height:42px;padding-top:10px;\">\r\n      <Pagination ref=\"taskPagination\" totalCountOrURL=\"/task/cnt_taskRdAll\" :params=\"queryParams\" @change=\"handlePageChange\"></Pagination>\r\n    </el-row>\r\n\r\n    <el-dialog style=\"padding:0;\" title=\"浠诲姟璇︽儏\" :visible.sync=\"taskVisible\" :close-on-click-modal='false' width=\"570px\">\r\n      <PeriodTaskDetail ref=\"periodTaskDetail\" v-if=\"task_type=='鍛ㄦ湡浠诲姟'\" :period-task-id=\"task_id\"></PeriodTaskDetail>\r\n      <RealtimeTaskDetail ref=\"realtimeTaskDetail\" v-if=\"task_type=='鍗虫椂浠诲姟'\" :realtimeTaskId=\"task_id\"></RealtimeTaskDetail>\r\n    </el-dialog>\r\n    <el-dialog style=\"padding:0;\" title=\"鎵ц缁撴灉\" :visible.sync=\"taskResultVisible\" :close-on-click-modal='false' width=\"1000px\">\r\n      <TaskResult v-if=\"task_result_type=='record'\" ref=\"taskResult\" :task_record_id=\"task_record_id\"></TaskResult>\r\n      <el-form v-else-if=\"task_result_type=='scan'\">\r\n        <el-form-item label=\"鎵彴棰戠巼\">\r\n          <div v-if=\"scan_result && scan_result.length>0\">\r\n            <el-tag style=\"margin-right:5px;\" v-for=\"(value,key) in scan_result\" :key=\"key\" type=\"success\">\r\n              {{value}}\r\n            </el-tag>\r\n          </div>\r\n          <el-tag v-else>鏃犳暟鎹�</el-tag>\r\n        </el-form-item>\r\n      </el-form>\r\n    </el-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  import SearchFilter from \"@/components/Input/SearchFilter\";\r\n  import PeriodTaskDetail from \"@/components/Form/PeriodTaskDetail\";\r\n  import RealtimeTaskDetail from \"@/components/Form/RealtimeTaskDetail\";\r\n  import TaskResult from \"@/components/Tables/TaskResult\";\r\n  export default {\r\n    components: {\r\n      Pagination,\r\n      SearchFilter,\r\n      PeriodTaskDetail,\r\n      RealtimeTaskDetail,\r\n      TaskResult\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        queryParams: {\r\n          orderby: {\r\n            start_time: \"DESC\"\r\n          },\r\n          page: 1,\r\n          size: 10\r\n        },\r\n        filterOptions: {\r\n          task_type: {\r\n            type: \"select\",\r\n            text: \"浠诲姟绫诲瀷\",\r\n            width: \"120px\",\r\n            placeholder: \"璇烽�夋嫨\",\r\n            options: [\"鍛ㄦ湡浠诲姟\", \"鍗虫椂浠诲姟\"]\r\n          },\r\n          task_id: {\r\n            type: \"int\",\r\n            text: \"浠诲姟鍙穃",\r\n            width: \"120px\",\r\n            placeholder: \"璇疯緭鍏ヤ换鍔″彿\",\r\n          },\r\n          start_time: {\r\n            type: \"datetimerange\",\r\n            text: \"鎵ц鏃堕棿\",\r\n            width: \"400px\"\r\n          }\r\n        },\r\n        taskVisible: false,\r\n        task_type: \"\",\r\n        task_id: 0,\r\n        taskResultVisible: false,\r\n        task_record_id: 0,\r\n        task_result_type: 'record',\r\n        scan_result: null\r\n      };\r\n    },\r\n    methods: {\r\n      SearchWithFilter(filter) {\r\n        let options = [];\r\n        if (filter.task_type && filter.task_type != \"\") {\r\n          options.push({\r\n            type: \"1\",\r\n            name: \"task_type\",\r\n            value: `'${filter.task_type}'`\r\n          });\r\n        }\r\n        if (filter.task_id && filter.task_id != \"\") {\r\n          options.push({\r\n            type: \"1\",\r\n            name: \"task_id\",\r\n            value: filter.task_id\r\n          });\r\n        }\r\n        if (filter.start_time && filter.start_time.length > 0) {\r\n          options.push({\r\n            type: \"4\",\r\n            name: \"start_time\",\r\n            value: [`'${filter.start_time[0]}'`, `'${filter.start_time[1]}'`]\r\n          });\r\n        }\r\n        this.queryParams.options = options;\r\n        this.queryParams.operator = \" AND \";\r\n        // 鍒濆鍖栭〉鐮乗r\n        this.queryParams.page = 1;\r\n        // 鏇存柊瀵艰埅鏉″弬鏁癨r\n        this.$refs[\"taskPagination\"].getTotalsize();\r\n        this.getData();\r\n      },\r\n      showTaskDetail(dataIndex) {\r\n        this.taskVisible = true;\r\n        this.task_type = this.data[dataIndex].task_type;\r\n        this.task_id = this.data[dataIndex].task_id;\r\n      },\r\n      showTaskResult(dataIndex) {\r\n        console.log(dataIndex)\r\n        this.taskResultVisible = true;\r\n        if (this.data[dataIndex].task_type == '鍗虫椂浠诲姟') {\r\n          this.$getJSON(\"/task/s_PeriodTaskType\", {\r\n            task_id: this.data[dataIndex].task_id\r\n          }).then(res => {\r\n            if (res.data[0].command == '鎵彴') {\r\n              this.task_result_type = \"scan\";\r\n              this.scan_result = this.data[dataIndex].scan_result;\r\n            } else {\r\n              this.task_result_type = \"record\";\r\n              this.task_record_id = this.data[dataIndex].id;\r\n            }\r\n          });\r\n        } else {\r\n          this.task_record_id = this.data[dataIndex].id;\r\n        }\r\n      },\r\n      handlePageChange(params) {\r\n        this.queryParams.page = params.page;\r\n        this.queryParams.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        this.$getJSON(\"/task/s_taskRdAll\", this.queryParams).then(res => {\r\n          this.data = res.data;\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/TaskRdAll.vue","<template>\r\n  <el-form label-position=\"right\" label-width=\"80px\" size=\"mini\">\r\n    <el-row style=\"margin:0;\">\r\n      <el-col :span=\"12\">\r\n        <el-form-item label=\"璁惧鍒楄〃\">\r\n          <el-select placeholder=\"涓嬫媺鏌ョ湅\" v-model=\"selectValue\">\r\n            <el-option v-for=\"(item,idx) in data.device_list\" :key=\"idx\" :label=\"item\" :value=\"item\">\r\n            </el-option>\r\n          </el-select>\r\n        </el-form-item>\r\n      </el-col>\r\n      <el-col :span=\"12\">\r\n        <el-form-item label=\"鎵ц鎿嶄綔\">\r\n          <el-tag :style=\"tagStyle\">{{data.command?data.command:\"鏃犳暟鎹甛"}}</el-tag>\r\n        </el-form-item>\r\n      </el-col>\r\n    </el-row>\r\n    <el-row v-if=\"data.command=='褰曢煶'\" style=\"margin:0;\">\r\n      <el-col :span=\"12\">\r\n        <el-form-item label=\"褰曢煶棰戠巼\">\r\n          <el-tag :style=\"tagStyle\">{{data.freq_range?data.freq_range:\"鏃犳暟鎹甛"}}</el-tag>\r\n        </el-form-item>\r\n      </el-col>\r\n      <el-col :span=\"12\">\r\n        <el-form-item label=\"褰曢煶鏃堕暱\">\r\n          <el-tag :style=\"tagStyle\">{{ data.recording_length?`${data.recording_length}绉抈:\"鏃犳暟鎹甛" }}</el-tag>\r\n        </el-form-item>\r\n      </el-col>\r\n    </el-row>\r\n    <el-row style=\"margin:0;\">\r\n      <el-col :span=\"12\">\r\n        <el-form-item label=\"鍒涘缓鏃堕棿\">\r\n          <el-tag :style=\"tagStyle\">{{data.create_time?data.create_time:\"鏃犳暟鎹甛"}}</el-tag>\r\n        </el-form-item>\r\n      </el-col>\r\n      <el-col :span=\"12\">\r\n        <el-form-item label=\"瀹屾垚鏃堕棿\">\r\n          <el-tag :style=\"tagStyle\">{{data.finish_time?data.finish_time:\"鏃犳暟鎹甛"}}</el-tag>\r\n        </el-form-item>\r\n      </el-col>\r\n    </el-row>\r\n    <el-row style=\"margin:0;\">\r\n      <el-form-item label=\"浠诲姟璇存槑\">\r\n        <el-tag :style=\"tagStyle\">{{ data.detail?data.detail:\"鏃犺鏄嶾" }}</el-tag>\r\n      </el-form-item>\r\n    </el-row>\r\n  </el-form>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    props: [\"realtimeTaskId\"],\r\n    components: {},\r\n    watch: {\r\n      realtimeTaskId() {\r\n        this.getData();\r\n      }\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    data() {\r\n      return {\r\n        selectValue: null,\r\n        taskVisible: false,\r\n        data: {},\r\n        tagStyle: \"background-color:#fff;color:#999;height:22px;line-height:20px;\"\r\n      };\r\n    },\r\n    methods: {\r\n      getData() {\r\n        if (this.realtimeTaskId) {\r\n          this.$getJSON(\"/task/s_realtime_tasklst\", {\r\n            options: [{\r\n              type: \"1\",\r\n              name: \"id\",\r\n              value: this.realtimeTaskId\r\n            }]\r\n          }).then(res => {\r\n            this.data = res.data[0];\r\n          });\r\n        }\r\n      },\r\n      parseFreqRange(range) {\r\n        if (range.length == 1) {\r\n          return `${range[0]}`;\r\n        } else {\r\n          return `${range[0]}-${range[1]}`;\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n  .el-form-item {\r\n    margin: 0;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Form/RealtimeTaskDetail.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-row',{staticStyle:{\"height\":\"55px\"}},[_c('SearchFilter',{attrs:{\"filter\":_vm.filterOptions},on:{\"handleSearch\":_vm.SearchWithFilter}})],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"calc(100% - 55px - 42px)\"}},[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"task_type\",\"label\":\"浠诲姟绫诲瀷\",\"width\":120}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"task_id\",\"label\":\"浠诲姟鍙穃",\"width\":120}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"device_lgid\",\"label\":\"鎵ц璁惧\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"start_time\",\"label\":\"鎵ц鏃堕棿\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"finish_time\",\"label\":\"瀹屾垚鏃堕棿\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"fixed\":\"right\",\"label\":\"鎿嶄綔\",\"width\":\"160\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.showTaskDetail(scope.$index)}}},[_vm._v(\"浠诲姟璇︽儏\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){_vm.showTaskResult(scope.$index)}}},[_vm._v(\"鎵ц缁撴灉\")])]}}])})],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"42px\",\"padding-top\":\"10px\"}},[_c('Pagination',{ref:\"taskPagination\",attrs:{\"totalCountOrURL\":\"/task/cnt_taskRdAll\",\"params\":_vm.queryParams},on:{\"change\":_vm.handlePageChange}})],1),_vm._v(\" \"),_c('el-dialog',{staticStyle:{\"padding\":\"0\"},attrs:{\"title\":\"浠诲姟璇︽儏\",\"visible\":_vm.taskVisible,\"close-on-click-modal\":false,\"width\":\"570px\"},on:{\"update:visible\":function($event){_vm.taskVisible=$event}}},[(_vm.task_type=='鍛ㄦ湡浠诲姟')?_c('PeriodTaskDetail',{ref:\"periodTaskDetail\",attrs:{\"period-task-id\":_vm.task_id}}):_vm._e(),_vm._v(\" \"),(_vm.task_type=='鍗虫椂浠诲姟')?_c('RealtimeTaskDetail',{ref:\"realtimeTaskDetail\",attrs:{\"realtimeTaskId\":_vm.task_id}}):_vm._e()],1),_vm._v(\" \"),_c('el-dialog',{staticStyle:{\"padding\":\"0\"},attrs:{\"title\":\"鎵ц缁撴灉\",\"visible\":_vm.taskResultVisible,\"close-on-click-modal\":false,\"width\":\"1000px\"},on:{\"update:visible\":function($event){_vm.taskResultVisible=$event}}},[(_vm.task_result_type=='record')?_c('TaskResult',{ref:\"taskResult\",attrs:{\"task_record_id\":_vm.task_record_id}}):(_vm.task_result_type=='scan')?_c('el-form',[_c('el-form-item',{attrs:{\"label\":\"鎵彴棰戠巼\"}},[(_vm.scan_result && _vm.scan_result.length>0)?_c('div',_vm._l((_vm.scan_result),function(value,key){return _c('el-tag',{key:key,staticStyle:{\"margin-right\":\"5px\"},attrs:{\"type\":\"success\"}},[_vm._v(\"\\n            \"+_vm._s(value)+\"\\n          \")])})):_c('el-tag',[_vm._v(\"鏃犳暟鎹甛")])],1)],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-10840949\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/TaskRdAll.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-10840949\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./TaskRdAll.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./TaskRdAll.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./TaskRdAll.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-10840949\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./TaskRdAll.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-10840949\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/TaskRdAll.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <el-row style=\"height:55px;\">\r\n      <SearchFilter :filter=\"filterOptions\" @handleSearch=\"SearchWithFilter\"></SearchFilter>\r\n    </el-row>\r\n    <el-row style=\"height:calc(100% - 55px - 42px);\">\r\n      <el-table :data=\"data\" border style=\"width: 100%\" height=\"100%\">\r\n        <el-table-column prop=\"result_name\" label=\"鐢靛彴绫诲瀷\" :width=\"100\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"frequency\" label=\"棰戠巼\" :width=\"60\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"upload_time\" label=\"涓婁紶鏃堕棿\" :width=\"160\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"log_id\" label=\"鎵弿缁堢\" :width=\"160\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"recognition\" label=\"璇煶璇嗗埆\">\r\n        </el-table-column>\r\n        <el-table-column label=\"褰曢煶鏂囦欢\" :width=\"100\">\r\n          <template slot-scope=\"scope\">\r\n            <el-button v-if=\"scope.row.radio_file_path\" type=\"text\" @click=\"$playAudio(scope.row.radio_file_path,scope.row.frequency,scope.row.upload_time)\">鐐瑰嚮鎾斁</el-button>\r\n            <template v-else>鏃犳枃浠�</template>\r\n          </template>\r\n        </el-table-column>\r\n      </el-table>\r\n    </el-row>\r\n    <el-row style=\"height:42px;padding-top:10px;\">\r\n      <Pagination ref=\"srPagination\" totalCountOrURL=\"/radio/cnt_scanRecordAll\" :params=\"queryParams\" @change=\"handlePageChange\"></Pagination>\r\n    </el-row>\r\n\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  import SearchFilter from \"@/components/Input/SearchFilter\";\r\n  export default {\r\n    components: {\r\n      Pagination,\r\n      SearchFilter\r\n    },\r\n    mounted() {\r\n      // 鍒濆鍖栫數鍙扮被鍨� 鍜� 璁惧鍙� 閫夋嫨椤筡r\n      this.$getJSON(\"/admin/dictionary\", {\r\n        table: \"fm_d_result_type\"\r\n      }).then(res => {\r\n\r\n        let result_type = [];\r\n        res.data.forEach(element => {\r\n          result_type.push(element.name);\r\n        });\r\n        this.filterOptions.result_name.options = result_type;\r\n\r\n        this.$getJSON(\"/admin/devicesByDistrict\", {}).then(res => {\r\n          let devices = {};\r\n          res.data.forEach(element => {\r\n            devices[element.district ? element.district : \"鍏跺畠\"] = element.devices.split(\",\");\r\n          });\r\n          this.filterOptions.log_id.options = devices;\r\n\r\n          this.getData();\r\n        });\r\n      });\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        queryParams: {\r\n          page: 1,\r\n          size: 10\r\n        },\r\n        filterOptions: {\r\n          result_name: {\r\n            type: \"select\",\r\n            text: \"鐢靛彴绫诲瀷\",\r\n            width: \"120px\",\r\n            placeholder: \"璇烽�夋嫨\",\r\n            options: null\r\n          },\r\n          frequency: {\r\n            type: \"real\",\r\n            text: \"棰戠巼\",\r\n            width: \"110px\",\r\n            placeholder: \"璇疯緭鍏ラ鐜嘰",\r\n          },\r\n          log_id: {\r\n            type: \"select2\",\r\n            text: \"鎵弿缁堢\",\r\n            width: \"160px\",\r\n            placeholder: \"璇烽�夋嫨\",\r\n            options: null\r\n          },\r\n          upload_time: {\r\n            type: \"datetimerange\",\r\n            text: \"涓婁紶鏃堕棿\",\r\n            width: \"360px\"\r\n          }\r\n        }\r\n      };\r\n    },\r\n    methods: {\r\n      SearchWithFilter(filter) {\r\n        let options = [];\r\n        if (filter.result_name && filter.result_name != \"\") {\r\n          options.push({\r\n            type: \"1\",\r\n            name: \"result_name\",\r\n            value: `'${filter.result_name}'`\r\n          });\r\n        }\r\n        if (filter.frequency && filter.frequency != \"\") {\r\n          options.push({\r\n            type: \"1\",\r\n            name: \"frequency\",\r\n            value: filter.frequency\r\n          });\r\n        }\r\n        if (filter.log_id && filter.log_id != \"\") {\r\n          options.push({\r\n            type: \"1\",\r\n            name: \"log_id\",\r\n            value: `'${filter.log_id}'`\r\n          });\r\n        }\r\n        if (filter.upload_time && filter.upload_time.length > 0) {\r\n          options.push({\r\n            type: \"4\",\r\n            name: \"upload_time\",\r\n            value: [`'${filter.upload_time[0]}'`, `'${filter.upload_time[1]}'`]\r\n          });\r\n        }\r\n        this.queryParams.options = options;\r\n        this.queryParams.operator = \" AND \";\r\n        // 鍒濆鍖栭〉鐮乗r\n        this.queryParams.page = 1;\r\n        // 鏇存柊瀵艰埅鏉″弬鏁癨r\n        this.$refs[\"srPagination\"].getTotalsize();\r\n        this.getData();\r\n      },\r\n      handlePageChange(params) {\r\n        this.queryParams.page = params.page;\r\n        this.queryParams.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        this.$getJSON(\"/radio/s_scanRecordAll\", this.queryParams).then(res => {\r\n          this.data = res.data;\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/ScanRdAll.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-row',{staticStyle:{\"height\":\"55px\"}},[_c('SearchFilter',{attrs:{\"filter\":_vm.filterOptions},on:{\"handleSearch\":_vm.SearchWithFilter}})],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"calc(100% - 55px - 42px)\"}},[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"}},[_c('el-table-column',{attrs:{\"prop\":\"result_name\",\"label\":\"鐢靛彴绫诲瀷\",\"width\":100}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"frequency\",\"label\":\"棰戠巼\",\"width\":60}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"upload_time\",\"label\":\"涓婁紶鏃堕棿\",\"width\":160}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"log_id\",\"label\":\"鎵弿缁堢\",\"width\":160}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"recognition\",\"label\":\"璇煶璇嗗埆\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"褰曢煶鏂囦欢\",\"width\":100},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.radio_file_path)?_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){_vm.$playAudio(scope.row.radio_file_path,scope.row.frequency,scope.row.upload_time)}}},[_vm._v(\"鐐瑰嚮鎾斁\")]):[_vm._v(\"鏃犳枃浠禱")]]}}])})],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"42px\",\"padding-top\":\"10px\"}},[_c('Pagination',{ref:\"srPagination\",attrs:{\"totalCountOrURL\":\"/radio/cnt_scanRecordAll\",\"params\":_vm.queryParams},on:{\"change\":_vm.handlePageChange}})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-e07942c0\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/ScanRdAll.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-e07942c0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./ScanRdAll.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ScanRdAll.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ScanRdAll.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e07942c0\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./ScanRdAll.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-e07942c0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/ScanRdAll.vue\n// module id = null\n// module chunks = ","<template>\r\n  <baidu-map id=\"mapContainer\" ref=\"mapContainer\" class=\"map\" center=\"涓婃捣\" :scroll-wheel-zoom=\"map.scrollWheelZoom\"\r\n    :dragging=\"map.dragging\" :double-click-zoom=\"map.dbClickZoom\" :mapStyle=\"map.mapStyle\" @ready=\"ready\">\r\n    <bm-navigation anchor=\"BMAP_ANCHOR_TOP_RIGHT\"></bm-navigation>\r\n    <bm-control :offset=\"{width:10,height:10}\">\r\n      <select-device-status @change=\"changeDeviceStatus\"></select-device-status>\r\n    </bm-control>\r\n    <bml-heatmap :data=\"heatmap.data\" :max=\"heatmap.max\" :radius=\"heatmap.radius\" :gradient=\"heatmap.gradient\">\r\n    </bml-heatmap>\r\n  </baidu-map>\r\n</template>\r\n<script>\r\n  import SelectDeviceStatus from \"@/components/Selectors/DeviceStatus\";\r\n  import {\r\n    BmlHeatmap\r\n  } from 'vue-baidu-map'\r\n  export default {\r\n    components: {\r\n      SelectDeviceStatus,\r\n      BmlHeatmap\r\n    },\r\n    watch: {},\r\n    data() {\r\n      return {\r\n        // 鍦板浘瀹瑰櫒鍙傛暟\r\n        map: {\r\n          mapInterface: null, //BMap绫籠r\n          mapInstance: null, //map瀹炰緥\r\n          scrollWheelZoom: true,\r\n          dragging: true,\r\n          dbClickZoom: false,\r\n          mapStyle: {\r\n            styleJson: [{\r\n                featureType: \"highway\",\r\n                elementType: \"all\",\r\n                stylers: {\r\n                  visibility: \"off\"\r\n                }\r\n              },\r\n              {\r\n                featureType: \"subway\",\r\n                elementType: \"all\",\r\n                stylers: {\r\n                  visibility: \"off\"\r\n                }\r\n              }\r\n            ]\r\n          }\r\n        },\r\n        devices: [], //鎵�鏈夌殑璁惧\r\n        heatmap: {\r\n          data: [],\r\n          max: 100,\r\n          radius: 30,\r\n          gradient: {\r\n            0: 'rgb(102, 255, 0)',\r\n            .995: 'rgb(255, 170, 0)',\r\n            1: 'rgb(255, 0, 0)'\r\n          }\r\n        }\r\n      };\r\n    },\r\n    created() {\r\n      this.searchDevices();\r\n    },\r\n    mounted() {},\r\n    methods: {\r\n      ready(params) {\r\n        this.map.mapInterface = params.BMap;\r\n        this.map.mapInstance = params.map;\r\n      },\r\n      changeDeviceStatus(value) {\r\n        this.heatmap.data = [];\r\n        if (value.length == 0) {\r\n          this.devices.map(device => this.heatmap.data.push({\r\n            lng: device.lon,\r\n            lat: device.lat,\r\n            count: 100\r\n          }));\r\n        } else {\r\n          for (let i = 0; i < this.devices.length; i++) {\r\n            const device = this.devices[i];\r\n            if (value.in_array(device.status * 1)) {\r\n              this.heatmap.data.push({\r\n                lng: device.lon,\r\n                lat: device.lat,\r\n                count: 100\r\n              });\r\n            }\r\n          }\r\n        }\r\n      },\r\n      searchDevices() {\r\n        this.$getJSON(\"/terminal/s_devicelst_all\", {}).then(res => {\r\n          this.devices = res.data;\r\n          this.heatmap.data = [];\r\n          this.devices.map(device => this.heatmap.data.push({\r\n            lng: device.lon,\r\n            lat: device.lat,\r\n            count: 100\r\n          }));\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n  .map {\r\n    width: 100%;\r\n    height: 800px;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/DeviceHeatmap.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baidu-map',{ref:\"mapContainer\",staticClass:\"map\",attrs:{\"id\":\"mapContainer\",\"center\":\"涓婃捣\",\"scroll-wheel-zoom\":_vm.map.scrollWheelZoom,\"dragging\":_vm.map.dragging,\"double-click-zoom\":_vm.map.dbClickZoom,\"mapStyle\":_vm.map.mapStyle},on:{\"ready\":_vm.ready}},[_c('bm-navigation',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}}),_vm._v(\" \"),_c('bm-control',{attrs:{\"offset\":{width:10,height:10}}},[_c('select-device-status',{on:{\"change\":_vm.changeDeviceStatus}})],1),_vm._v(\" \"),_c('bml-heatmap',{attrs:{\"data\":_vm.heatmap.data,\"max\":_vm.heatmap.max,\"radius\":_vm.heatmap.radius,\"gradient\":_vm.heatmap.gradient}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-709258f6\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/DeviceHeatmap.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-709258f6\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./DeviceHeatmap.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceHeatmap.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceHeatmap.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-709258f6\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./DeviceHeatmap.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-709258f6\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/DeviceHeatmap.vue\n// module id = null\n// module chunks = ","<template>\r\n  <baidu-map id=\"mapContainer\" ref=\"mapContainer\" class=\"map_ddensity\" center=\"涓婃捣\" :scroll-wheel-zoom=\"map.scrollWheelZoom\"\r\n    :dragging=\"map.dragging\" :double-click-zoom=\"map.dbClickZoom\" :mapStyle=\"map.mapStyle\" @ready=\"ready\">\r\n    <bm-navigation anchor=\"BMAP_ANCHOR_TOP_RIGHT\">\r\n    </bm-navigation>\r\n    <bm-control :offset=\"{width:5,height:5}\">\r\n      <el-tooltip effect=\"dark\" content=\"璁剧疆缃戞牸澶у皬\" placement=\"bottom\">\r\n        <el-select v-model=\"grid.currentLevel\" placeholder=\"璇烽�夋嫨\" @change=\"handleSizeChange\" style=\"width:120px;\">\r\n          <el-option v-for=\"(size, sizeLevel) in grid.allSize\" :key=\"size\" :label=\"sizeLevel\" :value=\"sizeLevel\">\r\n          </el-option>\r\n        </el-select>\r\n      </el-tooltip>\r\n    </bm-control>\r\n  </baidu-map>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    watch: {},\r\n    data() {\r\n      return {\r\n        // 鍦板浘瀹瑰櫒鍙傛暟\r\n        map: {\r\n          mapInterface: null, //BMap绫籠r\n          mapInstance: null, //map瀹炰緥\r\n          scrollWheelZoom: true,\r\n          dragging: true,\r\n          dbClickZoom: false,\r\n          mapStyle: {}\r\n        },\r\n        devices: [], //鎵�鏈夌殑璁惧\r\n        grid: {\r\n          allGrid: {},\r\n          currentGrid: {}, //key->{value:Int,path:[]} path 渚濇涓� 宸︿笂瑙� 鍙充笂瑙� 鍙充笅瑙� 宸︿笅瑙抃r\n          allSize: {\r\n            \"3 km\": 0.02965769,\r\n            \"5 km\": 0.049429483,\r\n            \"10 km\": 0.098858965\r\n          }, //缃戞牸绾у埆 鑻ユ鍙傛暟鍙戠敓鏀瑰彉 鍒欏繀椤昏皟鐢╰his.createAndSaveGrid閲嶆柊鐢熸垚缃戞牸鏂囦欢\r\n          currentLevel: \"5 km\",\r\n          currentSize: 0.049429483, //瀵嗗害缃戞牸澶у皬 鍗曚綅 搴� 1km绾︾瓑浜�0.01   榛樿5km\r\n          styleOptions: {\r\n            strokeColor: \"#f4f3ef\", //缃戞牸杈圭嚎棰滆壊銆俓r\n            strokeWeight: 1, //缃戞牸杈圭嚎鐨勫搴︼紝浠ュ儚绱犱负鍗曚綅銆俓r\n            strokeOpacity: 0.3, //缃戞牸杈圭嚎閫忔槑搴︼紝鍙栧�艰寖鍥�0 - 1銆俓r\n            strokeStyle: \"solid\", //缃戞牸杈圭嚎鐨勬牱寮忥紝solid鎴杁ashed銆俓r\n            fillOpacity: 0.5 //缃戞牸濉厖鐨勯�忔槑搴︼紝鍙栧�艰寖鍥�0 - 1銆俓r\n          }\r\n        }\r\n      };\r\n    },\r\n    created() {\r\n      this.$getJSON(\"/admin/readFile\", {\r\n        path: \"mapStyle/GIS.json\",\r\n        encoding: \"utf8\"\r\n      }).then(res => this.map.mapStyle = JSON.parse(res.data));\r\n    },\r\n    mounted() {},\r\n    methods: {\r\n      async ready(params) {\r\n        //鑾峰彇鐧惧害鍦板浘鐨勫疄渚� 寰呯敤\r\n        this.map.mapInterface = params.BMap;\r\n        this.map.mapInstance = params.map;\r\n\r\n        // // 鐢熸垚琛屾斂鍖哄唴鐨勭綉鏍煎苟淇濆瓨鍒版枃鏈紙杩愯涓�娆″嵆鍙� 涓斾笉瑕佷笌鍚庨潰鐨勫嚱鏁板悓鏃惰繍琛岋級\r\n        // this.createAndSaveGrid(\r\n        //   this.map.mapInterface,\r\n        //   \"涓婃捣甯俓",\r\n        //   \"grid/shanghai.json\",\r\n        //   this.grid.allSize\r\n        // );\r\n\r\n        //浠庢枃浠惰鍙栫綉鏍糪r\n        this.grid.allGrid = await this.getGridFromFile(\"grid/shanghai.json\");\r\n\r\n        //璁剧疆褰撳墠缃戞牸绾у埆 榛樿 5 km\r\n        this.grid.currentGrid = JSON.parse(\r\n          JSON.stringify(this.grid.allGrid[\"5 km\"])\r\n        );\r\n\r\n        //缁樺埗涓婃捣甯傝鏀垮尯杈圭晫\r\n        this.drawBoundary(\"涓婃捣甯俓");\r\n\r\n        //璁$畻骞剁粯鍒剁綉鏍煎瘑搴r\n        this.searchAndDraw();\r\n      },\r\n\r\n      handleSizeChange() {\r\n        this.grid.currentSize = this.grid.allSize[this.grid.currentLevel];\r\n        this.grid.currentGrid = JSON.parse(\r\n          JSON.stringify(this.grid.allGrid[this.grid.currentLevel])\r\n        );\r\n        this.setGridDensity();\r\n        this.drawGrid();\r\n      },\r\n\r\n      //缁樺埗琛屾斂鍖鸿竟鐣孿r\n      drawBoundary(district) {\r\n        let BMap = this.map.mapInterface;\r\n        let map = this.map.mapInstance;\r\n        let bdary = new BMap.Boundary();\r\n        bdary.get(district, rs => {\r\n          //鑾峰彇琛屾斂鍖哄煙\r\n          let count = rs.boundaries.length; //琛屾斂鍖哄煙鐨刾olygon涓暟锛屽浜庢湁鍒嗙閮ㄥ垎鐨勮鏀垮尯 鍙兘鏈夊涓猏r\n          if (count === 0) {\r\n            return;\r\n          }\r\n          let pointArray = [];\r\n          let ply = new BMap.Polygon(rs.boundaries[0], {\r\n            strokeWeight: 2,\r\n            strokeColor: \"#ff0000\",\r\n            fillOpacity: 0.1,\r\n            enableMassClear: false\r\n          }); //寤虹珛琛屾斂鍖鸿竟鐣屽杈瑰舰瑕嗙洊鐗� 骞惰祴浜堟牱寮廫r\n          map.addOverlay(ply); //娣诲姞瑕嗙洊鐗‐r\n          pointArray = pointArray.concat(ply.getPath());\r\n          map.setViewport(pointArray); //璋冩暣瑙嗛噹\r\n        });\r\n      },\r\n\r\n      //鍒涘缓缃戞牸骞朵繚瀛樺埌鏂囦欢\r\n      //district 缃戞牸鍖哄煙鐨勮鏀垮尯鍚嶅瓧  杩欓噷涓衡�滀笂娴峰競鈥漒r\n      //savePath 鏂囦欢淇濆瓨鍦板潃锛堟湇鍔″櫒璺緞锛塡r\n      //sizeList 缃戞牸灏哄锛岀敤浠ョ敓鎴愪笉鍚岀骇鍒殑缃戞牸\r\n      createAndSaveGrid(BMap, district, savePath, sizes) {\r\n        let grid = {};\r\n        let bdary = new BMap.Boundary();\r\n        bdary.get(district, rs => {\r\n          let path = new BMap.Polygon(rs.boundaries[0]).getPath();\r\n          for (let size in sizes) {\r\n            grid[size] = {\r\n              size: sizes[size],\r\n              gridIdx: this.createGridByDistrictPath(path, sizes[size])\r\n            };\r\n          }\r\n          this.$getJSON(\"/admin/saveFile\", {\r\n            path: savePath,\r\n            data: JSON.stringify(grid),\r\n            encoding: \"utf8\"\r\n          });\r\n        });\r\n      },\r\n\r\n      //鏍规嵁琛屾斂鍖鸿竟鐣岀敓鎴愭墍鏈夋樉绀鸿寖鍥村唴鐨勭綉鏍糪r\n      createGridByDistrictPath(path, size) {\r\n        let gridIdx = [];\r\n        let boundaryGrids = [];\r\n        const cnt = path.length;\r\n        //棣栧厛鐢熸垚杈圭晫绾夸笂鐨勭綉鏍糪r\n        for (let i = 0; i < cnt; i++) {\r\n          let start = {};\r\n          start.row = Math.ceil(path[i].lat / size);\r\n          start.col = Math.ceil(path[i].lng / size);\r\n          boundaryGrids.push([start.row, start.col]); //姣忔潯杈圭殑璧风偣鎵�鍦ㄧ綉鏍肩洿鎺ヤ繚瀛榎r\n          //璁$畻姣忔潯杈归櫎浜嗚捣鐐瑰拰缁堢偣澶栵紝涓棿鏄惁杩樻湁缁忚繃鐨勭綉鏍糪r\n          let next = (i + 1) % cnt;\r\n          let end = {};\r\n          end.row = Math.ceil(path[next].lat / size);\r\n          end.col = Math.ceil(path[next].lng / size);\r\n          let deltaRow = end.row - start.row;\r\n          let deltaCol = end.col - start.col;\r\n          let absDRow = Math.abs(deltaRow);\r\n          let absDCol = Math.abs(deltaCol);\r\n          if (absDRow <= 1 && absDCol <= 1) continue;\r\n          let absMax = Math.max(absDRow, absDCol);\r\n          let absMin = Math.min(absDRow, absDCol);\r\n          let deltaListMax = []; //淇濆瓨杈圭粡杩囩殑缃戞牸鐨勪笅鏍囧閲廫r\n          let deltaListMin = [];\r\n          for (let j = 1; j < absMax; j++) {\r\n            //宸�艰緝澶х殑涓�缁� 缃戞牸涓嬫爣閫掑\r\n            //宸�艰緝灏忕殑涓�缁� 缃戞牸涓嬫爣鎸夋瘮渚嬪鍔燶r\n            deltaListMax.push(j);\r\n            deltaListMin.push(Math.floor(j / (absMax / absMin)));\r\n          }\r\n          let deltaList =\r\n            absDRow >= absDCol ? [deltaListMax, deltaListMin] : [deltaListMin, deltaListMax];\r\n          let intervalRow = deltaRow > 0 ? 1 : -1;\r\n          let intervalCol = deltaCol > 0 ? 1 : -1;\r\n          for (let j = 0; j < deltaList[0].length; j++) {\r\n            boundaryGrids.push([\r\n              start.row + deltaList[0][j] * intervalRow,\r\n              start.col + deltaList[1][j] * intervalCol\r\n            ]);\r\n          }\r\n        }\r\n        //濉厖杈圭嚎鍐呴儴鐨勭綉鏍糪r\n        //鐩存帴鎸夎鎵弿  涓嶈�冭檻鍑瑰杈瑰舰鐨勭壒娈婃儏鍐礬r\n        let rows = boundaryGrids.map(item => item[0]);\r\n        let rowMax = rows.max();\r\n        let rowMin = rows.min();\r\n        for (let row = rowMin; row <= rowMax; row++) {\r\n          let cols = [];\r\n          boundaryGrids.map(item => {\r\n            if (item[0] == row) {\r\n              cols.push(item[1]);\r\n            }\r\n          });\r\n          let colMax = cols.max();\r\n          let colMin = cols.min();\r\n          gridIdx.push([row, colMin, colMax]);\r\n        }\r\n        return gridIdx;\r\n      },\r\n\r\n      //娣诲姞锛堝鏋滀笉瀛樺湪锛夌綉鏍煎埌obj锛屽苟璁剧疆缃戞牸鍊糪r\n      addGrid(obj, row, col, value, size) {\r\n        let key = `idx_${row}_${col}`; //鐢ㄨ鍒楀彿浣滀负key 浠庤�岀敓鎴愪竴涓槧灏勮〃\r\n        if (obj[key]) {\r\n          obj[key].value += value;\r\n        } else {\r\n          obj[key] = {\r\n            value: value,\r\n            path: [{\r\n                lng: (col - 1) * size,\r\n                lat: row * size\r\n              },\r\n              {\r\n                lng: col * size,\r\n                lat: row * size\r\n              },\r\n              {\r\n                lng: col * size,\r\n                lat: (row - 1) * size\r\n              },\r\n              {\r\n                lng: (col - 1) * size,\r\n                lat: (row - 1) * size\r\n              }\r\n            ]\r\n          };\r\n        }\r\n      },\r\n\r\n      //浠庢枃浠惰鍙栫綉鏍糪r\n      async getGridFromFile(path) {\r\n        let allGrid = {};\r\n        let res = await this.$getJSON(\"/admin/readFile\", {\r\n          path: path,\r\n          encoding: \"utf8\"\r\n        });\r\n        let gridInfo = JSON.parse(res.data);\r\n        for (let sizeLevel in this.grid.allSize) {\r\n          let grid = {};\r\n          let size = gridInfo[sizeLevel].size;\r\n          let gridIdx = gridInfo[sizeLevel].gridIdx;\r\n          for (let i = 0; i < gridIdx.length; i++) {\r\n            const element = gridIdx[i];\r\n            for (let col = element[1]; col <= element[2]; col++) {\r\n              this.addGrid(grid, element[0], col, 0, size);\r\n            }\r\n          }\r\n          allGrid[sizeLevel] = grid;\r\n        }\r\n        return allGrid;\r\n      },\r\n\r\n      //鑾峰彇璁惧淇℃伅 浠ヨ缃瘑搴︿俊鎭� 骞跺皢鏈�缁堝瘑搴︾綉鏍兼坊鍔犲埌鍦板浘\r\n      searchAndDraw() {\r\n        this.$getJSON(\"/terminal/s_devicelst_all\", {}).then(res => {\r\n          this.devices = res.data;\r\n          //鍒涘缓骞剁粯鍒舵牸缃慭r\n          this.setGridDensity();\r\n          this.drawGrid();\r\n        });\r\n      },\r\n\r\n      //璁剧疆姣忎釜缃戞牸鐨勫瘑搴︿俊鎭痋r\n      setGridDensity() {\r\n        let size = this.grid.currentSize; //缃戞牸澶у皬 鍗曚綅 搴r\n        for (let i = 0; i < this.devices.length; i++) {\r\n          const device = this.devices[i];\r\n          //鑾峰彇璁惧鎵�鍦ㄧ綉鏍肩殑琛屽垪鍙穃r\n          let row = Math.ceil(device.lat / size);\r\n          let col = Math.ceil(device.lon / size);\r\n          this.addGrid(this.grid.currentGrid, row, col, 1, size);\r\n        }\r\n      },\r\n\r\n      //灏嗙綉鏍兼坊鍔犲埌鍦板浘  姝ゅ浣跨敤鐨勬槸鐧惧害鍦板浘鐨勫疄渚�  璋冪敤鍏禔PI瀹炵幇\r\n      //鏈娇鐢˙mPolygon缁勪欢鐨勫師鍥犳槸 鍏舵覆鏌撴湁鏃朵細涓嶆垚鍔� 鍘熷洜鏈煡\r\n      drawGrid() {\r\n        let BMap = this.map.mapInterface;\r\n        let map = this.map.mapInstance;\r\n        map.clearOverlays();\r\n        for (let key in this.grid.currentGrid) {\r\n          let cell = this.grid.currentGrid[key];\r\n          let polygonOptions = this.grid.styleOptions;\r\n          polygonOptions.fillColor =\r\n            \"#\" +\r\n            Math.floor(\r\n              ((cell.value * 9301 + 49297) % 233280) / 233280.0 * 0xffffff\r\n            ).toString(16);\r\n          let polygon = new BMap.Polygon(\r\n            cell.path.map(pnt => new BMap.Point(pnt.lng, pnt.lat)),\r\n            polygonOptions\r\n          );\r\n          map.addOverlay(polygon);\r\n          if (cell.value == 0) continue; //瀵嗗害涓�0鏃� 涓嶈缃爣绛綷r\n          let labelOptions = {\r\n            offset: new BMap.Size(-9, -10),\r\n            position: new BMap.Point(\r\n              (cell.path[0].lng + cell.path[1].lng) / 2,\r\n              (cell.path[1].lat + cell.path[2].lat) / 2\r\n            )\r\n          };\r\n          let label = new BMap.Label(`${cell.value}`, labelOptions); //鏍囩 鐢ㄤ簬鏄剧ず缃戞牸瀵嗗害鍊糪r\n          label.setStyle({\r\n            border: 0,\r\n            backgroundColor: \"rgba(0,0,0,0)\",\r\n            color: \"white\",\r\n            fontSize: \"12px\",\r\n            height: \"20px\",\r\n            lineHeight: \"20px\",\r\n            fontFamily: \"寰蒋闆呴粦\",\r\n            textAlign: \"center\",\r\n            width: \"18px\",\r\n            padding: \"0\"\r\n          });\r\n          map.addOverlay(label);\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style>\r\n  .map_ddensity {\r\n    width: 100%;\r\n    height: 100%;\r\n  }\r\n\r\n  .map_ddensity .anchorBL {\r\n    display: none;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/DeviceGridDensity.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baidu-map',{ref:\"mapContainer\",staticClass:\"map_ddensity\",attrs:{\"id\":\"mapContainer\",\"center\":\"涓婃捣\",\"scroll-wheel-zoom\":_vm.map.scrollWheelZoom,\"dragging\":_vm.map.dragging,\"double-click-zoom\":_vm.map.dbClickZoom,\"mapStyle\":_vm.map.mapStyle},on:{\"ready\":_vm.ready}},[_c('bm-navigation',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}}),_vm._v(\" \"),_c('bm-control',{attrs:{\"offset\":{width:5,height:5}}},[_c('el-tooltip',{attrs:{\"effect\":\"dark\",\"content\":\"璁剧疆缃戞牸澶у皬\",\"placement\":\"bottom\"}},[_c('el-select',{staticStyle:{\"width\":\"120px\"},attrs:{\"placeholder\":\"璇烽�夋嫨\"},on:{\"change\":_vm.handleSizeChange},model:{value:(_vm.grid.currentLevel),callback:function ($$v) {_vm.$set(_vm.grid, \"currentLevel\", $$v)},expression:\"grid.currentLevel\"}},_vm._l((_vm.grid.allSize),function(size,sizeLevel){return _c('el-option',{key:size,attrs:{\"label\":sizeLevel,\"value\":sizeLevel}})}))],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-409632ce\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/DeviceGridDensity.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-409632ce\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./DeviceGridDensity.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceGridDensity.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./DeviceGridDensity.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-409632ce\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./DeviceGridDensity.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/DeviceGridDensity.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chartTarget\",staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},[_c(_vm.is,{tag:\"component\",attrs:{\"data\":_vm.chartData,\"grid\":_vm.grid,\"toolbox\":_vm.toolbox,\"settings\":_vm.chartSettings}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-6f55feaa\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/components/Charts/Chart_.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6f55feaa\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Chart_.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Chart_.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Chart_.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6f55feaa\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Chart_.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-6f55feaa\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Charts/Chart_.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div class=\"chartTarget\" style=\"height:100%;width:100%;\">\r\n    <!-- <p v-text=\"getTitle(this.ChartId)\" v-if=\"getSeen(this.ChartId)\"></p> -->\r\n    <component :is=\"is\" :data=\"chartData\" :grid=\"grid\" :toolbox=\"toolbox\" :settings=\"chartSettings\"></component>\r\n    <!--:legend-visible=\"false\"  :colors=\"colors\"-->\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  export default {\r\n    props: [\"ChartId\", \"chartType\"],\r\n    // methods : {\r\n    //   getTitle(id) {\r\n    //     switch (id) {\r\n    //       case \"e\":\r\n    //         return \"鏈懆浠诲姟鎵ц鏁伴噺缁熻\";\r\n    //       break;\r\n    //       default:\r\n    //         return \"鍥捐〃\";\r\n    //     }\r\n    //   },\r\n    //   getSeen(id) {\r\n    //     switch (id) {\r\n    //       case \"e\":\r\n    //         return true;\r\n    //       break;\r\n    //       default:\r\n    //         return false;\r\n    //     }\r\n    //   }\r\n    // },\r\n    mounted() {\r\n      switch (this.chartType) {\r\n        case \"histogram\":\r\n          this.is = \"ve-map\";\r\n          this.chartSettings = {\r\n            position: 'province/shanghai',\r\n            label: {\r\n              show: true,\r\n              formatter: '{c}',\r\n              position: 'inner'\r\n            },\r\n            roam: true,\r\n            itemStyle: {\r\n              normal: {\r\n                borderColor: '#000'\r\n              }\r\n            },\r\n            zoom: 1.2\r\n          }\r\n          this.chartData = {\r\n            columns: [\"琛屾斂鍖篭", \"鏁伴噺\"],\r\n            rows: [{\r\n                \"琛屾斂鍖篭": '榛勬郸鍖�',\r\n                \"鏁伴噺\": 18\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": '寰愭眹鍖�',\r\n                \"鏁伴噺\": 12\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": '闀垮畞鍖�',\r\n                \"鏁伴噺\": 5\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": '闈欏畨鍖�',\r\n                \"鏁伴噺\": 2\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": '鏅檧鍖�',\r\n                \"鏁伴噺\": 16\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": '铏瑰彛鍖�',\r\n                \"鏁伴噺\": 11\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"鏉ㄦ郸鍖篭",\r\n                \"鏁伴噺\": 19\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"闂佃鍖篭",\r\n                \"鏁伴噺\": 22\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"瀹濆北鍖篭",\r\n                \"鏁伴噺\": 14\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"鍢夊畾鍖篭",\r\n                \"鏁伴噺\": 5\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"娴︿笢鏂板尯\",\r\n                \"鏁伴噺\": 6\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"閲戝北鍖篭",\r\n                \"鏁伴噺\": 7\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"鏉炬睙鍖篭",\r\n                \"鏁伴噺\": 5\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"闈掓郸鍖篭",\r\n                \"鏁伴噺\": 4\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"濂夎搐鍖篭",\r\n                \"鏁伴噺\": 13\r\n              },\r\n              {\r\n                \"琛屾斂鍖篭": \"宕囨槑鍖篭",\r\n                \"鏁伴噺\": 12\r\n              }\r\n            ]\r\n          }\r\n          break;\r\n        case \"pie\":\r\n          this.is = \"ve-pie\";\r\n          this.chartSettings = {\r\n            label: {\r\n              formatter: '{b} : {c}'\r\n            }\r\n          };\r\n          this.chartData = {\r\n            columns: [\"绫诲瀷\", \"鏁伴噺\"],\r\n            rows: [{\r\n                \"绫诲瀷\": \"绂荤嚎\",\r\n                \"鏁伴噺\": 18\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"浠诲姟鎵ц\",\r\n                \"鏁伴噺\": 12\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"绌洪棽\",\r\n                \"鏁伴噺\": 5\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"鏁呴殰\",\r\n                \"鏁伴噺\": 2\r\n              }\r\n            ]\r\n          }\r\n          break;\r\n        case \"pie_b\":\r\n          this.is = \"ve-pie\";\r\n          this.chartSettings = {\r\n            label: {\r\n              formatter: '{b} : {c}'\r\n            }\r\n          };\r\n          this.chartData = {\r\n            columns: [\"绫诲瀷\", \"鏁伴噺\"],\r\n            rows: [{\r\n                \"绫诲瀷\": \"棰戠巼90.1\",\r\n                \"鏁伴噺\": 8\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"棰戠巼96.5\",\r\n                \"鏁伴噺\": 9\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"棰戠巼101.2\",\r\n                \"鏁伴噺\": 5\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"棰戠巼105.3\",\r\n                \"鏁伴噺\": 6\r\n              }\r\n            ]\r\n          }\r\n          break;\r\n        case \"pie_d\":\r\n          this.is = \"ve-pie\";\r\n          this.chartSettings = {\r\n            label: {\r\n              formatter: '{b} : {c}'\r\n            }\r\n          };\r\n          this.chartData = {\r\n            columns: [\"绫诲瀷\", \"鏁伴噺\"],\r\n            rows: [{\r\n                \"绫诲瀷\": \"鍏朵粬\",\r\n                \"鏁伴噺\": 26\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"闈炴硶鐢靛彴\",\r\n                \"鏁伴噺\": 9\r\n              },\r\n            ]\r\n          }\r\n          break;\r\n        case \"pie_c\":\r\n          this.is = \"ve-pie\";\r\n          this.chartSettings = {\r\n            label: {\r\n              formatter: '{b} : {c}'\r\n            }\r\n          };\r\n          this.chartData = {\r\n            columns: [\"绫诲瀷\", \"鏁伴噺\"],\r\n            rows: [{\r\n                \"绫诲瀷\": \"棰戠巼90.1\",\r\n                \"鏁伴噺\": 18\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"棰戠巼96.5\",\r\n                \"鏁伴噺\": 9\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"棰戠巼101.2\",\r\n                \"鏁伴噺\": 10\r\n              },\r\n              {\r\n                \"绫诲瀷\": \"棰戠巼105.3\",\r\n                \"鏁伴噺\": 6\r\n              }\r\n            ]\r\n          }\r\n          break;\r\n        case \"line\":\r\n          this.is = \"ve-line\";\r\n          this.chartSettings = {\r\n            label: {\r\n              show: true,\r\n              formatter: '{@[1]}'\r\n            }\r\n          };\r\n          this.chartData = {\r\n            columns: ['鏃ユ湡', '鏁伴噺'],\r\n            rows: [{\r\n                '鏃ユ湡': '1',\r\n                '鏁伴噺': 10\r\n              }, {\r\n                '鏃ユ湡': '2',\r\n                '鏁伴噺': 9\r\n              },\r\n              {\r\n                '鏃ユ湡': '3',\r\n                '鏁伴噺': 13\r\n              }, {\r\n                '鏃ユ湡': '4',\r\n                '鏁伴噺': 10\r\n              },\r\n              {\r\n                '鏃ユ湡': '5',\r\n                '鏁伴噺': 15\r\n              }, {\r\n                '鏃ユ湡': '6',\r\n                '鏁伴噺': 11\r\n              },\r\n              {\r\n                '鏃ユ湡': '7',\r\n                '鏁伴噺': 19\r\n              }, {\r\n                '鏃ユ湡': '8',\r\n                '鏁伴噺': 13\r\n              },\r\n              {\r\n                '鏃ユ湡': '9',\r\n                '鏁伴噺': 12\r\n              }, {\r\n                '鏃ユ湡': '10',\r\n                '鏁伴噺': 16\r\n              },\r\n              {\r\n                '鏃ユ湡': '11',\r\n                '鏁伴噺': 5\r\n              }, {\r\n                '鏃ユ湡': '12',\r\n                '鏁伴噺': 9\r\n              },\r\n              {\r\n                '鏃ユ湡': '13',\r\n                '鏁伴噺': 6\r\n              }, {\r\n                '鏃ユ湡': '14',\r\n                '鏁伴噺': 3\r\n              },\r\n              {\r\n                '鏃ユ湡': '15',\r\n                '鏁伴噺': 8\r\n              }, {\r\n                '鏃ユ湡': '16',\r\n                '鏁伴噺': 13\r\n              },\r\n              {\r\n                '鏃ユ湡': '17',\r\n                '鏁伴噺': 11\r\n              }, {\r\n                '鏃ユ湡': '18',\r\n                '鏁伴噺': 13\r\n              },\r\n              {\r\n                '鏃ユ湡': '19',\r\n                '鏁伴噺': 9\r\n              }, {\r\n                '鏃ユ湡': '20',\r\n                '鏁伴噺': 9\r\n              },\r\n              {\r\n                '鏃ユ湡': '21',\r\n                '鏁伴噺': 13\r\n              }, {\r\n                '鏃ユ湡': '22',\r\n                '鏁伴噺': 4\r\n              },\r\n              {\r\n                '鏃ユ湡': '23',\r\n                '鏁伴噺': 14\r\n              }, {\r\n                '鏃ユ湡': '24',\r\n                '鏁伴噺': 3\r\n              },\r\n              {\r\n                '鏃ユ湡': '25',\r\n                '鏁伴噺': 16\r\n              }, {\r\n                '鏃ユ湡': '26',\r\n                '鏁伴噺': 13\r\n              },\r\n              {\r\n                '鏃ユ湡': '27',\r\n                '鏁伴噺': 19\r\n              }, {\r\n                '鏃ユ湡': '28',\r\n                '鏁伴噺': 13\r\n              },\r\n              {\r\n                '鏃ユ湡': '29',\r\n                '鏁伴噺': 12\r\n              }, {\r\n                '鏃ユ湡': '30',\r\n                '鏁伴噺': 16\r\n              }\r\n            ]\r\n          }\r\n          break;\r\n        case \"line_b\":\r\n          this.is = \"ve-line\";\r\n          this.chartSettings = {\r\n            label: {\r\n              show: true,\r\n              formatter: '{@[1]}'\r\n            }\r\n          };\r\n          this.chartData = {\r\n            columns: ['鏃ユ湡', '鏁伴噺'],\r\n            rows: [{\r\n                '鏃ユ湡': '1',\r\n                '鏁伴噺': 10\r\n              }, {\r\n                '鏃ユ湡': '2',\r\n                '鏁伴噺': 5\r\n              },\r\n              {\r\n                '鏃ユ湡': '3',\r\n                '鏁伴噺': 13\r\n              }, {\r\n                '鏃ユ湡': '4',\r\n                '鏁伴噺': 8\r\n              },\r\n              {\r\n                '鏃ユ湡': '5',\r\n                '鏁伴噺': 15\r\n              }, {\r\n                '鏃ユ湡': '6',\r\n                '鏁伴噺': 9\r\n              },\r\n              {\r\n                '鏃ユ湡': '7',\r\n                '鏁伴噺': 14\r\n              }, {\r\n                '鏃ユ湡': '8',\r\n                '鏁伴噺': 15\r\n              },\r\n              {\r\n                '鏃ユ湡': '9',\r\n                '鏁伴噺': 10\r\n              }, {\r\n                '鏃ユ湡': '10',\r\n                '鏁伴噺': 6\r\n              },\r\n              {\r\n                '鏃ユ湡': '11',\r\n                '鏁伴噺': 9\r\n              }, {\r\n                '鏃ユ湡': '12',\r\n                '鏁伴噺': 10\r\n              },\r\n              {\r\n                '鏃ユ湡': '13',\r\n                '鏁伴噺': 6\r\n              }, {\r\n                '鏃ユ湡': '14',\r\n                '鏁伴噺': 3\r\n              },\r\n              {\r\n                '鏃ユ湡': '15',\r\n                '鏁伴噺': 0\r\n              }, {\r\n                '鏃ユ湡': '16',\r\n                '鏁伴噺': 0\r\n              },\r\n              {\r\n                '鏃ユ湡': '17',\r\n                '鏁伴噺': 11\r\n              }, {\r\n                '鏃ユ湡': '18',\r\n                '鏁伴噺': 11\r\n              },\r\n              {\r\n                '鏃ユ湡': '19',\r\n                '鏁伴噺': 10\r\n              }, {\r\n                '鏃ユ湡': '20',\r\n                '鏁伴噺': 7\r\n              },\r\n              {\r\n                '鏃ユ湡': '21',\r\n                '鏁伴噺': 11\r\n              }, {\r\n                '鏃ユ湡': '22',\r\n                '鏁伴噺': 6\r\n              },\r\n              {\r\n                '鏃ユ湡': '23',\r\n                '鏁伴噺': 12\r\n              }, {\r\n                '鏃ユ湡': '24',\r\n                '鏁伴噺': 5\r\n              },\r\n              {\r\n                '鏃ユ湡': '25',\r\n                '鏁伴噺': 13\r\n              }, {\r\n                '鏃ユ湡': '26',\r\n                '鏁伴噺': 11\r\n              },\r\n              {\r\n                '鏃ユ湡': '27',\r\n                '鏁伴噺': 14\r\n              }, {\r\n                '鏃ユ湡': '28',\r\n                '鏁伴噺': 13\r\n              },\r\n              {\r\n                '鏃ユ湡': '29',\r\n                '鏁伴噺': 16\r\n              }, {\r\n                '鏃ユ湡': '30',\r\n                '鏁伴噺': 14\r\n              }\r\n            ]\r\n          }\r\n          break;\r\n        default:\r\n          this.is = \"ve-line\";\r\n          this.chartData = {\r\n            columns: [],\r\n            rows: []\r\n          }\r\n          break;\r\n      }\r\n      this.$getJSON('/dbapi/s_s_s', {\r\n        table: 'fm_t_whitelist',\r\n        fields: 'name,frequency'\r\n      }).then(\r\n        res => {\r\n          // console.log(JSON.stringify(res) );\r\n          this.rows = res;\r\n        }\r\n      )\r\n    },\r\n    data() {\r\n      this.chartSettings = {};\r\n      this.grid = {\r\n        top: 10,\r\n        left: 0,\r\n        right: 0,\r\n        bottom: 0\r\n      };\r\n      this.toolbox = {\r\n        feature: {\r\n          saveAsImage: {}\r\n        }\r\n      };\r\n      //this.colors = ['#2C363B','#d48265', '#91c7ae','#749f83','#ca8622', '#bda29a','#6e7074','#546570', '#c4ccd3']\r\n      return {\r\n        is: \"ve-line\",\r\n        chartData: {\r\n          columns: [],\r\n          rows: []\r\n        }\r\n      };\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/Charts/Chart_.vue","<template>\r\n  <div style=\"height:100%;\">\r\n    <el-row :gutter=\"20\">\r\n      <el-col :span=\"12\">\r\n        <el-tabs v-model=\"activeName\">\r\n          <el-tab-pane label=\"璁惧鐘舵�佺粺璁" name=\"first\">\r\n            <Chart target=\"Chart\" ChartId=\"b\" chartType=\"pie\" v-if=\"'first' === activeName\"></Chart>\r\n          </el-tab-pane>\r\n          <el-tab-pane label=\"鍚勫尯鍘胯寖鍥村唴璁惧鏁癨" name=\"second\">\r\n            <Chart target=\"Chart\" ChartId=\"a\" chartType=\"histogram\" v-if=\"'second' === activeName\"></Chart>\r\n          </el-tab-pane>\r\n        </el-tabs>\r\n      </el-col>\r\n      <el-col :span=\"12\">\r\n        <el-tabs v-model=\"activeName2\">\r\n          <el-tab-pane label=\"鎵�鏈夌數鍙伴鐜囨暟閲廫" name=\"first\">\r\n            <Chart target=\"Chart\" ChartId=\"c\" chartType=\"line\" v-if=\"'first' === activeName2\"></Chart>\r\n          </el-tab-pane>\r\n          <el-tab-pane label=\"闈炴硶鐢靛彴鏁伴噺\" name=\"second\">\r\n            <Chart target=\"Chart\" ChartId=\"c1\" chartType=\"line_b\" v-if=\"'second' === activeName2\"></Chart>\r\n          </el-tab-pane>\r\n        </el-tabs>\r\n      </el-col>\r\n    </el-row>\r\n    <el-row :gutter=\"20\">\r\n      <el-col :span=\"12\">\r\n        <el-tabs v-model=\"activeName3\">\r\n          <el-tab-pane label=\"鎵弿鍒伴潪娉曠數鍙伴鐜囩殑璁惧缁熻\" name=\"first\">\r\n            <Chart target=\"Chart\" ChartId=\"c\" chartType=\"pie_b\" v-if=\"'first' === activeName3\"></Chart>\r\n          </el-tab-pane>\r\n          <el-tab-pane label=\"闈炴硶鐢靛彴棰戠巼琚壂鎻忓埌鐨勬鏁扮粺璁" name=\"second\">\r\n            <Chart target=\"Chart\" ChartId=\"c1\" chartType=\"pie_c\" v-if=\"'second' === activeName3\"></Chart>\r\n          </el-tab-pane>\r\n        </el-tabs>\r\n      </el-col>\r\n      <el-col :span=\"12\">\r\n        <el-tabs v-model=\"activeName4\">\r\n          <el-tab-pane label=\"鏈懆浠诲姟鎵ц鏁伴噺缁熻\" name=\"first\">\r\n            <Chart target=\"Chart\" ChartId=\"e\" chartType=\"pie_d\" v-if=\"'first' === activeName4\"></Chart>\r\n          </el-tab-pane>\r\n        </el-tabs>\r\n      </el-col>\r\n    </el-row>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Chart from \"@/components/Charts/Chart_.vue\";\r\n  export default {\r\n    components: {\r\n      Chart\r\n    },\r\n    methods: {\r\n\r\n    },\r\n    data() {\r\n      return {\r\n        activeName: 'first',\r\n        activeName2: 'first',\r\n        activeName3: \"first\",\r\n        activeName4: \"first\"\r\n      };\r\n    },\r\n    methods: {\r\n      handleClick(tab, event) {\r\n        console.log(tab, event);\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n  .el-row {\r\n    height: 50%;\r\n  }\r\n\r\n  .el-col,\r\n  .el-tabs,\r\n  .el-tab-pane {\r\n    height: 100%;\r\n  }\r\n\r\n  .el-col {\r\n    border-radius: 4px;\r\n  }\r\n\r\n  .bg-purple-dark {\r\n    background: #99a9bf;\r\n  }\r\n\r\n  .bg-purple {\r\n    background: #d3dce6;\r\n  }\r\n\r\n  .bg-purple-light {\r\n    background: #e5e9f2;\r\n  }\r\n\r\n  .grid-content {\r\n    border-radius: 4px;\r\n    min-height: 36px;\r\n  }\r\n\r\n  .row-bg {\r\n    padding: 10px 0;\r\n    background-color: #f9fafc;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/Chart.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-tabs',{model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"璁惧鐘舵�佺粺璁",\"name\":\"first\"}},[('first' === _vm.activeName)?_c('Chart',{attrs:{\"target\":\"Chart\",\"ChartId\":\"b\",\"chartType\":\"pie\"}}):_vm._e()],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"鍚勫尯鍘胯寖鍥村唴璁惧鏁癨",\"name\":\"second\"}},[('second' === _vm.activeName)?_c('Chart',{attrs:{\"target\":\"Chart\",\"ChartId\":\"a\",\"chartType\":\"histogram\"}}):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-tabs',{model:{value:(_vm.activeName2),callback:function ($$v) {_vm.activeName2=$$v},expression:\"activeName2\"}},[_c('el-tab-pane',{attrs:{\"label\":\"鎵�鏈夌數鍙伴鐜囨暟閲廫",\"name\":\"first\"}},[('first' === _vm.activeName2)?_c('Chart',{attrs:{\"target\":\"Chart\",\"ChartId\":\"c\",\"chartType\":\"line\"}}):_vm._e()],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"闈炴硶鐢靛彴鏁伴噺\",\"name\":\"second\"}},[('second' === _vm.activeName2)?_c('Chart',{attrs:{\"target\":\"Chart\",\"ChartId\":\"c1\",\"chartType\":\"line_b\"}}):_vm._e()],1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-tabs',{model:{value:(_vm.activeName3),callback:function ($$v) {_vm.activeName3=$$v},expression:\"activeName3\"}},[_c('el-tab-pane',{attrs:{\"label\":\"鎵弿鍒伴潪娉曠數鍙伴鐜囩殑璁惧缁熻\",\"name\":\"first\"}},[('first' === _vm.activeName3)?_c('Chart',{attrs:{\"target\":\"Chart\",\"ChartId\":\"c\",\"chartType\":\"pie_b\"}}):_vm._e()],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"闈炴硶鐢靛彴棰戠巼琚壂鎻忓埌鐨勬鏁扮粺璁",\"name\":\"second\"}},[('second' === _vm.activeName3)?_c('Chart',{attrs:{\"target\":\"Chart\",\"ChartId\":\"c1\",\"chartType\":\"pie_c\"}}):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-tabs',{model:{value:(_vm.activeName4),callback:function ($$v) {_vm.activeName4=$$v},expression:\"activeName4\"}},[_c('el-tab-pane',{attrs:{\"label\":\"鏈懆浠诲姟鎵ц鏁伴噺缁熻\",\"name\":\"first\"}},[('first' === _vm.activeName4)?_c('Chart',{attrs:{\"target\":\"Chart\",\"ChartId\":\"e\",\"chartType\":\"pie_d\"}}):_vm._e()],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-44a20464\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/Chart.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-44a20464\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Chart.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Chart.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Chart.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-44a20464\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Chart.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-44a20464\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/Chart.vue\n// module id = null\n// module chunks = ","<template>\r\n  <baidu-map id=\"mapContainer\" ref=\"mapContainer\" class=\"map_rdensity\" center=\"涓婃捣\" :scroll-wheel-zoom=\"map.scrollWheelZoom\"\r\n    :dragging=\"map.dragging\" :double-click-zoom=\"map.dbClickZoom\" :mapStyle=\"map.mapStyle\" @ready=\"ready\">\r\n    <bm-navigation anchor=\"BMAP_ANCHOR_TOP_RIGHT\">\r\n    </bm-navigation>\r\n    <bm-control :offset=\"{width:5,height:5}\">\r\n      <el-tooltip effect=\"dark\" content=\"璁剧疆缃戞牸澶у皬\" placement=\"bottom\">\r\n        <el-select v-model=\"grid.currentLevel\" placeholder=\"璇烽�夋嫨\" @change=\"handleSizeChange\" style=\"width:120px;\">\r\n          <el-option v-for=\"(size, sizeLevel) in grid.allSize\" :key=\"size\" :label=\"sizeLevel\" :value=\"sizeLevel\">\r\n          </el-option>\r\n        </el-select>\r\n      </el-tooltip>\r\n    </bm-control>\r\n    <bm-control :offset=\"{width:130,height:5}\">\r\n      <el-button @click=\"handleClick\">璁$畻闈炴硶鐢靛彴浣嶇疆</el-button>\r\n    </bm-control>\r\n  </baidu-map>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    watch: {},\r\n    data() {\r\n      return {\r\n        // 鍦板浘瀹瑰櫒鍙傛暟\r\n        map: {\r\n          mapInterface: null, //BMap绫籠r\n          mapInstance: null, //map瀹炰緥\r\n          scrollWheelZoom: true,\r\n          dragging: true,\r\n          dbClickZoom: false,\r\n          mapStyle: {}\r\n        },\r\n        radios: [], //鎵�鏈夌殑璁惧\r\n        grid: {\r\n          allGrid: {},\r\n          currentGrid: {}, //key->{value:Int,path:[]} path 渚濇涓� 宸︿笂瑙� 鍙充笂瑙� 鍙充笅瑙� 宸︿笅瑙抃r\n          allSize: {\r\n            \"3 km\": 0.02965769,\r\n            \"5 km\": 0.049429483,\r\n            \"10 km\": 0.098858965\r\n          }, //缃戞牸绾у埆 锛侊紒锛佸嬁鏀瑰姩锛侊紒锛� 姝ゅ弬鏁扮敱/pages/DeviceGridDensity.vue 涓敓鎴愮綉鏍兼椂鐨勮缃喅瀹歕r\n          currentLevel: \"5 km\",\r\n          currentSize: 0.049429483, //瀵嗗害缃戞牸澶у皬 鍗曚綅 搴� 1km绾︾瓑浜�0.01   榛樿5km\r\n          styleOptions: {\r\n            strokeColor: \"#f4f3ef\", //缃戞牸杈圭嚎棰滆壊銆俓r\n            strokeWeight: 1, //缃戞牸杈圭嚎鐨勫搴︼紝浠ュ儚绱犱负鍗曚綅銆俓r\n            strokeOpacity: 0.3, //缃戞牸杈圭嚎閫忔槑搴︼紝鍙栧�艰寖鍥�0 - 1銆俓r\n            strokeStyle: \"solid\", //缃戞牸杈圭嚎鐨勬牱寮忥紝solid鎴杁ashed銆俓r\n            fillOpacity: 0.5 //缃戞牸濉厖鐨勯�忔槑搴︼紝鍙栧�艰寖鍥�0 - 1銆俓r\n          }\r\n        }\r\n      };\r\n    },\r\n    created() {\r\n      this.$getJSON(\"/admin/readFile\", {\r\n        path: \"mapStyle/GIS.json\",\r\n        encoding: \"utf8\"\r\n      }).then(res => this.map.mapStyle = JSON.parse(res.data));\r\n    },\r\n    mounted() {},\r\n    methods: {\r\n      handleClick() {\r\n        this.$confirm('璁$畻鍙兘浼氶渶瑕佸嚑鍒嗛挓, 鏄惁缁х画?', '鎻愮ず', {\r\n          confirmButtonText: '纭畾',\r\n          cancelButtonText: '鍙栨秷',\r\n          type: 'info'\r\n        }).then(() => {\r\n          this.$getJSON(\"/radio/computeRadioLocation\", {}).then(res => {\r\n            this.$message(res.message);\r\n          });\r\n        }).catch(() => {});\r\n      },\r\n      async ready(params) {\r\n        //鑾峰彇鐧惧害鍦板浘鐨勫疄渚� 寰呯敤\r\n        this.map.mapInterface = params.BMap;\r\n        this.map.mapInstance = params.map;\r\n\r\n        //浠庢枃浠惰鍙栫綉鏍糪r\n        this.grid.allGrid = await this.getGridFromFile(\"grid/shanghai.json\");\r\n\r\n        //璁剧疆褰撳墠缃戞牸绾у埆 榛樿 5 km\r\n        this.grid.currentGrid = JSON.parse(\r\n          JSON.stringify(this.grid.allGrid[\"5 km\"])\r\n        );\r\n\r\n        //缁樺埗涓婃捣甯傝鏀垮尯杈圭晫\r\n        this.drawBoundary(\"涓婃捣甯俓");\r\n\r\n        //璁$畻骞剁粯鍒剁綉鏍煎瘑搴r\n        this.searchAndDraw();\r\n      },\r\n\r\n      handleSizeChange() {\r\n        this.grid.currentSize = this.grid.allSize[this.grid.currentLevel];\r\n        this.grid.currentGrid = JSON.parse(\r\n          JSON.stringify(this.grid.allGrid[this.grid.currentLevel])\r\n        );\r\n        this.setGridDensity();\r\n        this.drawGrid();\r\n      },\r\n\r\n      //缁樺埗琛屾斂鍖鸿竟鐣孿r\n      drawBoundary(district) {\r\n        let BMap = this.map.mapInterface;\r\n        let map = this.map.mapInstance;\r\n        let bdary = new BMap.Boundary();\r\n        bdary.get(district, rs => {\r\n          //鑾峰彇琛屾斂鍖哄煙\r\n          let count = rs.boundaries.length; //琛屾斂鍖哄煙鐨刾olygon涓暟锛屽浜庢湁鍒嗙閮ㄥ垎鐨勮鏀垮尯 鍙兘鏈夊涓猏r\n          if (count === 0) {\r\n            return;\r\n          }\r\n          let pointArray = [];\r\n          let ply = new BMap.Polygon(rs.boundaries[0], {\r\n            strokeWeight: 2,\r\n            strokeColor: \"#ff0000\",\r\n            fillOpacity: 0.1,\r\n            enableMassClear: false\r\n          }); //寤虹珛琛屾斂鍖鸿竟鐣屽杈瑰舰瑕嗙洊鐗� 骞惰祴浜堟牱寮廫r\n          map.addOverlay(ply); //娣诲姞瑕嗙洊鐗‐r\n          pointArray = pointArray.concat(ply.getPath());\r\n          map.setViewport(pointArray); //璋冩暣瑙嗛噹\r\n        });\r\n      },\r\n\r\n      //娣诲姞锛堝鏋滀笉瀛樺湪锛夌綉鏍煎埌obj锛屽苟璁剧疆缃戞牸鍊糪r\n      addGrid(obj, row, col, value, size) {\r\n        let key = `idx_${row}_${col}`; //鐢ㄨ鍒楀彿浣滀负key 浠庤�岀敓鎴愪竴涓槧灏勮〃\r\n        if (obj[key]) {\r\n          obj[key].value += value;\r\n        } else {\r\n          obj[key] = {\r\n            value: value,\r\n            path: [{\r\n                lng: (col - 1) * size,\r\n                lat: row * size\r\n              },\r\n              {\r\n                lng: col * size,\r\n                lat: row * size\r\n              },\r\n              {\r\n                lng: col * size,\r\n                lat: (row - 1) * size\r\n              },\r\n              {\r\n                lng: (col - 1) * size,\r\n                lat: (row - 1) * size\r\n              }\r\n            ]\r\n          };\r\n        }\r\n      },\r\n\r\n      //浠庢枃浠惰鍙栫綉鏍糪r\n      async getGridFromFile(path) {\r\n        let allGrid = {};\r\n        let res = await this.$getJSON(\"/admin/readFile\", {\r\n          path: path,\r\n          encoding: \"utf8\"\r\n        });\r\n        let gridInfo = JSON.parse(res.data);\r\n        for (let sizeLevel in this.grid.allSize) {\r\n          let grid = {};\r\n          let size = gridInfo[sizeLevel].size;\r\n          let gridIdx = gridInfo[sizeLevel].gridIdx;\r\n          for (let i = 0; i < gridIdx.length; i++) {\r\n            const element = gridIdx[i];\r\n            for (let col = element[1]; col <= element[2]; col++) {\r\n              this.addGrid(grid, element[0], col, 0, size);\r\n            }\r\n          }\r\n          allGrid[sizeLevel] = grid;\r\n        }\r\n        return allGrid;\r\n      },\r\n\r\n      //鑾峰彇璁惧淇℃伅 浠ヨ缃瘑搴︿俊鎭� 骞跺皢鏈�缁堝瘑搴︾綉鏍兼坊鍔犲埌鍦板浘\r\n      searchAndDraw() {\r\n        this.$getJSON(\"/radio/s_illegalRadio\", {}).then(res => {\r\n          this.radios = res.data;\r\n          //鍒涘缓骞剁粯鍒舵牸缃慭r\n          this.setGridDensity();\r\n          this.drawGrid();\r\n        });\r\n      },\r\n\r\n      //璁剧疆姣忎釜缃戞牸鐨勫瘑搴︿俊鎭痋r\n      setGridDensity() {\r\n        let size = this.grid.currentSize; //缃戞牸澶у皬 鍗曚綅 搴r\n        for (let i = 0; i < this.radios.length; i++) {\r\n          const radio = this.radios[i];\r\n          //鑾峰彇璁惧鎵�鍦ㄧ綉鏍肩殑琛屽垪鍙穃r\n          let row = Math.ceil(radio.lat / size);\r\n          let col = Math.ceil(radio.lon / size);\r\n          this.addGrid(this.grid.currentGrid, row, col, 1, size);\r\n        }\r\n      },\r\n\r\n      //灏嗙綉鏍兼坊鍔犲埌鍦板浘  姝ゅ浣跨敤鐨勬槸鐧惧害鍦板浘鐨勫疄渚�  璋冪敤鍏禔PI瀹炵幇\r\n      //鏈娇鐢˙mPolygon缁勪欢鐨勫師鍥犳槸 鍏舵覆鏌撴湁鏃朵細涓嶆垚鍔� 鍘熷洜鏈煡\r\n      drawGrid() {\r\n        let BMap = this.map.mapInterface;\r\n        let map = this.map.mapInstance;\r\n        map.clearOverlays();\r\n        for (let key in this.grid.currentGrid) {\r\n          let cell = this.grid.currentGrid[key];\r\n          let polygonOptions = this.grid.styleOptions;\r\n          polygonOptions.fillColor =\r\n            \"#\" +\r\n            Math.floor(\r\n              ((cell.value * 9301 + 49297) % 233280) / 233280.0 * 0xffffff\r\n            ).toString(16);\r\n          let polygon = new BMap.Polygon(\r\n            cell.path.map(pnt => new BMap.Point(pnt.lng, pnt.lat)),\r\n            polygonOptions\r\n          );\r\n          map.addOverlay(polygon);\r\n          if (cell.value == 0) continue; //瀵嗗害涓�0鏃� 涓嶈缃爣绛綷r\n          let labelOptions = {\r\n            offset: new BMap.Size(-9, -10),\r\n            position: new BMap.Point(\r\n              (cell.path[0].lng + cell.path[1].lng) / 2,\r\n              (cell.path[1].lat + cell.path[2].lat) / 2\r\n            )\r\n          };\r\n          let label = new BMap.Label(`${cell.value}`, labelOptions); //鏍囩 鐢ㄤ簬鏄剧ず缃戞牸瀵嗗害鍊糪r\n          label.setStyle({\r\n            border: 0,\r\n            backgroundColor: \"rgba(0,0,0,0)\",\r\n            color: \"white\",\r\n            fontSize: \"12px\",\r\n            height: \"20px\",\r\n            lineHeight: \"20px\",\r\n            fontFamily: \"寰蒋闆呴粦\",\r\n            textAlign: \"center\",\r\n            width: \"18px\",\r\n            padding: \"0\"\r\n          });\r\n          map.addOverlay(label);\r\n        }\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style>\r\n  .map_rdensity {\r\n    width: 100%;\r\n    height: 100%;\r\n  }\r\n\r\n  .map_rdensity .anchorBL {\r\n    display: none;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/IllegalRadioGridDensity.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baidu-map',{ref:\"mapContainer\",staticClass:\"map_rdensity\",attrs:{\"id\":\"mapContainer\",\"center\":\"涓婃捣\",\"scroll-wheel-zoom\":_vm.map.scrollWheelZoom,\"dragging\":_vm.map.dragging,\"double-click-zoom\":_vm.map.dbClickZoom,\"mapStyle\":_vm.map.mapStyle},on:{\"ready\":_vm.ready}},[_c('bm-navigation',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}}),_vm._v(\" \"),_c('bm-control',{attrs:{\"offset\":{width:5,height:5}}},[_c('el-tooltip',{attrs:{\"effect\":\"dark\",\"content\":\"璁剧疆缃戞牸澶у皬\",\"placement\":\"bottom\"}},[_c('el-select',{staticStyle:{\"width\":\"120px\"},attrs:{\"placeholder\":\"璇烽�夋嫨\"},on:{\"change\":_vm.handleSizeChange},model:{value:(_vm.grid.currentLevel),callback:function ($$v) {_vm.$set(_vm.grid, \"currentLevel\", $$v)},expression:\"grid.currentLevel\"}},_vm._l((_vm.grid.allSize),function(size,sizeLevel){return _c('el-option',{key:size,attrs:{\"label\":sizeLevel,\"value\":sizeLevel}})}))],1)],1),_vm._v(\" \"),_c('bm-control',{attrs:{\"offset\":{width:130,height:5}}},[_c('el-button',{on:{\"click\":_vm.handleClick}},[_vm._v(\"璁$畻闈炴硶鐢靛彴浣嶇疆\")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-03d087fc\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/IllegalRadioGridDensity.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-03d087fc\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./IllegalRadioGridDensity.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./IllegalRadioGridDensity.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./IllegalRadioGridDensity.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-03d087fc\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./IllegalRadioGridDensity.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/IllegalRadioGridDensity.vue\n// module id = null\n// module chunks = ","<template>\r\n  <baidu-map id=\"mapContainer\" ref=\"mapContainer\" class=\"map_confirm\" center=\"涓婃捣\" :scroll-wheel-zoom=\"map.scrollWheelZoom\"\r\n    :dragging=\"map.dragging\" :double-click-zoom=\"map.dbClickZoom\" :mapStyle=\"map.mapStyle\" @ready=\"ready\" @click=\"mapClick\">\r\n\r\n    <bm-navigation anchor=\"BMAP_ANCHOR_TOP_RIGHT\"></bm-navigation>\r\n\r\n    <bm-control :offset=\"{width:5,height:5}\" style=\"display:inline;\">\r\n      <tr valign=\"top\">\r\n        <td style=\"width:120px\">\r\n          <el-select v-model=\"selectedRadioIdx\" placeholder=\"閫夋嫨棰戠巼\" @change=\"handleSelectChange\" size=\"small\">\r\n            <el-option v-for=\"(radio,idx) in radios\" :key=\"radio.id\" :label=\"`${radio.frequency} ${radio.confirm}`\"\r\n              :value=\"idx\">\r\n            </el-option>\r\n          </el-select>\r\n        </td>\r\n        <td style=\"width:350px;padding-left:7px;\">\r\n          <el-button-group>\r\n            <el-tooltip effect=\"light\" content=\"鏄剧ず褰撳墠鎵�閫夐潪娉曠數鍙扮殑璇︾粏淇℃伅\" :hide-after=\"2000\">\r\n              <el-button size=\"small\" type=\"info\" @click=\"radioInfo()\">鐢靛彴淇℃伅</el-button>\r\n            </el-tooltip>\r\n            <el-tooltip effect=\"light\" content=\"鏄剧ず鎵弿鍒版墍閫夌數鍙伴鐜囩殑缁堢璁惧\" :hide-after=\"2000\">\r\n              <el-button size=\"small\" type=\"primary\" @click=\"scanDevice()\">鎵弿缁堢</el-button>\r\n            </el-tooltip>\r\n            <el-tooltip effect=\"light\" content=\"鎵嬪姩娣诲姞绯荤粺鏈洃娴嬪埌锛屼絾缁忚繃澶栭儴纭鐨勯潪娉曠數鍙癨" :hide-after=\"2000\">\r\n              <el-button size=\"small\" type=\"success\" @click=\"isAddingRadioShow=true;\">鎵嬪姩娣诲姞</el-button>\r\n            </el-tooltip>\r\n            <el-button size=\"small\" type=\"warning\" @click=\"getPointShow=true;\">鍧愭爣鎷惧彇</el-button>\r\n          </el-button-group>\r\n        </td>\r\n        <td style=\"width:380px;\">\r\n          <el-input v-show=\"getPointShow\" size=\"small\" placeholder=\"鐐瑰嚮鍦板浘鑾峰彇鍧愭爣\" v-model=\"getPointLocation\">\r\n            <template slot=\"prepend\" style=\"padding:0;\">褰撳墠鍧愭爣锛�</template>\r\n            <template slot=\"append\">\r\n              <el-button style=\"padding:0 8px;\" size=\"small\" type=\"primary\" @click=\"copyLcation()\">澶嶅埗</el-button>\r\n              <el-button style=\"padding:0 8px;\" size=\"small\" type=\"primary\" @click=\"getPointShow=false;\">鍏抽棴</el-button>\r\n            </template>\r\n          </el-input>\r\n        </td>\r\n      </tr>\r\n    </bm-control>\r\n\r\n    <bm-marker v-for=\"radio in radios\" @click=\"showinfowindow_radio(radio)\" :icon=\"icons[radio.confirm]\" :key=\"radio.id\"\r\n      :title=\"String(radio.frequency)\" :position=\"{lng: radio.lon, lat: radio.lat}\">\r\n    </bm-marker>\r\n\r\n    <bm-info-window title=\"鐢靛彴淇℃伅\" :show=\"infowindow_radio.show\" :position=\"infowindow_radio.position\" :width=\"380\" @open=\"infowindow_radio.show=true;\"\r\n      @close=\"infowindow_radio.show=false;\">\r\n      <el-form size=\"medium\">\r\n        <el-row>\r\n          <el-col :span=\"6\">\r\n            <el-form-item label=\"棰戠巼\">\r\n              <el-tag :style=\"tagStyle\">{{infowindow_radio.data.frequency}}</el-tag>\r\n            </el-form-item>\r\n          </el-col>\r\n          <el-col :span=\"7\">\r\n            <el-form-item label=\"鐘舵�乗">\r\n              <el-tag :style=\"tagStyle\">{{infowindow_radio.data.confirm}}</el-tag>\r\n            </el-form-item>\r\n          </el-col>\r\n          <el-col :span=\"11\">\r\n            <el-tooltip effect=\"light\" content=\"鐢靛彴浣嶇疆璁$畻鎴栫‘璁ゆ椂闂碶" placement=\"bottom\" :hide-after=\"2000\">\r\n              <el-form-item label=\"鏃堕棿\">\r\n                <el-tag :style=\"tagStyle\">{{infowindow_radio.data.time}}</el-tag>\r\n              </el-form-item>\r\n            </el-tooltip>\r\n          </el-col>\r\n        </el-row>\r\n        <el-row>\r\n          <el-form-item label=\"鍧愭爣\">\r\n            <el-tag :style=\"tagStyle+'width:338px;'\">{{`${infowindow_radio.data.lon} , ${infowindow_radio.data.lat}`}}</el-tag>\r\n          </el-form-item>\r\n        </el-row>\r\n        <el-row>\r\n          <el-form-item label=\"鎻忚堪\">\r\n            <el-tag :style=\"tagStyle+'width:338px;'\">{{infowindow_radio.data.detail}}</el-tag>\r\n          </el-form-item>\r\n        </el-row>\r\n        <el-form-item>\r\n          <el-button plain size=\"mini\" type=\"primary\" @click=\"changeLocation()\">淇敼鍧愭爣</el-button>\r\n          <el-button plain size=\"mini\" type=\"primary\" @click=\"changeDetail()\">淇敼鎻忚堪</el-button>\r\n          <el-button plain size=\"mini\" type=\"primary\" @click=\"confirmAndSave()\">纭骞朵繚瀛�</el-button>\r\n        </el-form-item>\r\n      </el-form>\r\n    </bm-info-window>\r\n\r\n    <el-dialog title=\"鎵嬪姩娣诲姞闈炴硶鐢靛彴\" :visible.sync=\"isAddingRadioShow\" width=\"500px\" :close-on-click-modal=\"false\">\r\n      <el-form size=\"medium\" label-width=\"50px\">\r\n        <el-row>\r\n          <el-col :span=\"12\">\r\n            <el-form-item label=\"棰戠巼\">\r\n              <el-input size=\"small\" v-model=\"newRadio.freq\"></el-input>\r\n            </el-form-item>\r\n          </el-col>\r\n          <el-col :span=\"12\">\r\n            <el-form-item label=\"鍧愭爣\">\r\n              <el-input size=\"small\" v-model=\"newRadio.location\" placeholder=\"缁忕含搴﹀潗鏍囷紝閫楀彿鍒嗛殧\"></el-input>\r\n            </el-form-item>\r\n          </el-col>\r\n        </el-row>\r\n        <el-form-item label=\"鎻忚堪\">\r\n          <el-input size=\"small\" v-model=\"newRadio.detail\"></el-input>\r\n        </el-form-item>\r\n        <el-form-item style=\"padding-top:10px;\">\r\n          <el-button plain size=\"medium\" type=\"primary\" @click=\"addRadio()\">纭</el-button>\r\n          <el-button plain size=\"medium\" type=\"primary\" @click=\"isAddingRadioShow=false;\">鍙栨秷</el-button>\r\n        </el-form-item>\r\n      </el-form>\r\n    </el-dialog>\r\n\r\n    <bm-info-window title=\"璁惧淇℃伅\" :show=\"infowindow_device.show\" :position=\"infowindow_device.position\" :width=\"430\"\r\n      @open=\"infowindow_device.show=true;\" @close=\"infowindow_device.show=false;\">\r\n      <device-detail :lgid=\"infowindow_device.device_lgid\"></device-detail>\r\n    </bm-info-window>\r\n\r\n    <bm-marker :position=\"selectedRadioPos\" :icon=\"icons['宸查�夋嫨']\" :zIndex=\"0\"></bm-marker>\r\n\r\n    <bm-marker v-for=\"device in devices\" :key=\"'m'+device.lgid\" :position=\"device.position\" :title=\"device.lgid\" @click=\"showinfowindow_device(device)\"></bm-marker>\r\n\r\n    <bm-polyline v-for=\"device in devices\" :key=\"'p'+device.lgid\" :path=\"device.path\" stroke-color=\"red\"\r\n      :stroke-opacity=\"0.5\" :stroke-weight=\"2\"></bm-polyline>\r\n    <bm-label v-for=\"(label,index) in labels\" :key=\"'l'+index\" :content=\"label.content\" :position=\"label.position\"\r\n      :labelStyle=\"{color: 'red', fontSize : '20px',fontWeight:'bold',backgroundColor:'rgba(0,0,0,0)',border:0}\"\r\n      :offset=\"{width:-27,height:-12}\" />\r\n\r\n  </baidu-map>\r\n</template>\r\n<script>\r\n  import DeviceDetail from \"@/components/Form/DeviceDetail\";\r\n  export default {\r\n    components: {\r\n      DeviceDetail\r\n    },\r\n    watch: {\r\n      getPointShow(value) {\r\n        if (value) {\r\n          this.map.mapInstance.setDefaultCursor(\"crosshair\");\r\n        } else {\r\n          this.map.mapInstance.setDefaultCursor(this.map.mapCursorDefault);\r\n        }\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        tagStyle: \"background-color:#fff;color:#999;height:22px;line-height:20px;\",\r\n        // 鍦板浘瀹瑰櫒鍙傛暟\r\n        map: {\r\n          mapInterface: null, //BMap绫籠r\n          mapInstance: null, //map瀹炰緥\r\n          scrollWheelZoom: true,\r\n          dragging: true,\r\n          dbClickZoom: false,\r\n          mapStyle: null,\r\n          mapCursorDefault: null\r\n        },\r\n        icons: {\r\n          宸茬‘璁�: {\r\n            url: \"/image/radio_confirmed.png\",\r\n            size: {\r\n              width: 32,\r\n              height: 32\r\n            }\r\n          },\r\n          寰呯‘璁�: {\r\n            url: \"/image/radio_unconfirmed.png\",\r\n            size: {\r\n              width: 32,\r\n              height: 32\r\n            }\r\n          },\r\n          宸查�夋嫨: {\r\n            url: \"/image/radio_wave.gif\",\r\n            size: {\r\n              width: 100,\r\n              height: 100\r\n            }\r\n          }\r\n        },\r\n        radios: [], //鎵�鏈夌殑璁惧\r\n        selectedRadioIdx: \"\",\r\n        infowindow_radio: {\r\n          show: false,\r\n          position: {},\r\n          data: {}\r\n        },\r\n        infowindow_device: {\r\n          show: false,\r\n          position: {},\r\n          device_lgid: null\r\n        },\r\n        devices: [],\r\n        labels: [],\r\n        getPointShow: false,\r\n        getPointLocation: null,\r\n        isAddingRadioShow: false, // 娣诲姞鐢靛彴鐨勫脊绐楁樉绀篭r\n        newRadio: {\r\n          freq: '',\r\n          location: '',\r\n          detail: ''\r\n        }\r\n      };\r\n    },\r\n    computed: {\r\n      selectedRadioPos: function () {\r\n        if (this.radios[this.selectedRadioIdx]) {\r\n          return {\r\n            lng: this.radios[this.selectedRadioIdx].lon,\r\n            lat: this.radios[this.selectedRadioIdx].lat\r\n          };\r\n        } else {\r\n          return {};\r\n        }\r\n      }\r\n    },\r\n    created() {\r\n      this.$getJSON(\"/admin/readFile\", {\r\n        path: \"mapStyle/GIS.json\",\r\n        encoding: \"utf8\"\r\n      }).then(res => (this.map.mapStyle = JSON.parse(res.data)));\r\n    },\r\n    mounted() {},\r\n    methods: {\r\n      ready(params) {\r\n        //鑾峰彇鐧惧害鍦板浘鐨勫疄渚� 寰呯敤\r\n        this.map.mapInterface = params.BMap;\r\n        this.map.mapInstance = params.map;\r\n\r\n        this.map.mapCursorDefault = params.map.getDefaultCursor(); //鍦板浘鐨勯紶鏍囨寚閽堟牱寮廫r\n\r\n        //璁$畻骞剁粯鍒剁綉鏍煎瘑搴r\n        this.getData();\r\n      },\r\n\r\n      mapClick(e) {\r\n        // 鐐瑰嚮鍦板浘鑾峰彇鍧愭爣\r\n        if (this.getPointShow) {\r\n          this.getPointLocation = `${e.point.lng} , ${e.point.lat}`;\r\n        }\r\n        // 鐐瑰嚮鍦板浘鎵嬪姩娣诲姞鐢靛彴\r\n        if (this.isAddingRadio) {\r\n          this.isAddingRadioShow = true;\r\n        }\r\n      },\r\n\r\n      copyLcation() {\r\n        if (!this.getPointLocation) {\r\n          this.$message({\r\n            message: \"鍧愭爣涓虹┖\",\r\n            type: \"info\"\r\n          });\r\n          return;\r\n        }\r\n        this.$copyText(this.getPointLocation).then(\r\n          res => {\r\n            this.$message({\r\n              message: \"鍧愭爣宸插鍒跺埌绮樿创鏉縗",\r\n              type: \"success\"\r\n            });\r\n          },\r\n          err => {\r\n            this.$message({\r\n              message: \"澶嶅埗鍧愭爣鏃跺嚭閿橽",\r\n              type: \"error\"\r\n            });\r\n          }\r\n        );\r\n      },\r\n\r\n      //鑾峰彇璁惧淇℃伅 浠ヨ缃瘑搴︿俊鎭� 骞跺皢鏈�缁堝瘑搴︾綉鏍兼坊鍔犲埌鍦板浘\r\n      getData() {\r\n        this.$getJSON(\"/radio/s_illegalRadio\", {}).then(res => {\r\n          this.radios = res.data;\r\n        });\r\n      },\r\n\r\n      showinfowindow_radio(radio) {\r\n        //鍦ㄥ湴鍥句笂鏄剧ず闈炴硶鐢靛彴鐨勮缁嗕俊鎭痋r\n        this.infowindow_radio.position.lng = radio.lon;\r\n        this.infowindow_radio.position.lat = radio.lat;\r\n        this.infowindow_radio.data = JSON.parse(JSON.stringify(radio));\r\n        this.infowindow_radio.show = true;\r\n      },\r\n\r\n      showinfowindow_device(device) {\r\n        this.infowindow_device.position = device.position;\r\n        this.infowindow_device.device_lgid = device.lgid;\r\n        this.infowindow_device.show = true;\r\n      },\r\n\r\n      handleSelectChange(value) {\r\n        this.selectedRadioIdx = value;\r\n        //鍦ㄤ笅鎷夋閫夋嫨鐢靛彴鍚� 鍦板浘涓績瀹氫綅鍒扮數鍙扮殑浣嶇疆\r\n        this.center(this.radios[this.selectedRadioIdx]);\r\n      },\r\n\r\n      center(radio) {\r\n        let BMap = this.map.mapInterface;\r\n        let map = this.map.mapInstance;\r\n        let pnt = new BMap.Point(radio.lon, radio.lat);\r\n        map.panTo(pnt, {\r\n          noAnimation: false\r\n        });\r\n      },\r\n\r\n      checkSelect() {\r\n        //妫�鏌ヤ笅鎷夋鏄惁鏈夐�夋嫨鍊�   鏈夊垯杩斿洖true 鍙嶄箣false\r\n        if (this.selectedRadioIdx === \"\") {\r\n          this.$message({\r\n            message: \"璇峰湪涓嬫媺妗嗕腑閫夋嫨闈炴硶鐢靛彴\",\r\n            type: \"warning\"\r\n          });\r\n          return false;\r\n        }\r\n        return true;\r\n      },\r\n\r\n      radioInfo() {\r\n        //瀹氫綅骞舵樉绀虹數鍙颁俊鎭痋r\n        if (this.checkSelect()) {\r\n          this.center(this.radios[this.selectedRadioIdx]);\r\n          this.showinfowindow_radio(this.radios[this.selectedRadioIdx]);\r\n        }\r\n      },\r\n\r\n      scanDevice() {\r\n        //鑾峰彇鎵弿鍒版墍閫夌數鍙扮殑缁堢璁惧 骞跺湪鍦板浘涓婃爣绀哄嚭鏉r\n        if (!this.checkSelect()) return;\r\n        let BMap = this.map.mapInterface;\r\n        let map = this.map.mapInstance;\r\n        this.devices = [];\r\n        this.labels = [];\r\n        this.$getJSON(\"/radio/radioScanDevices\", {\r\n          freq: this.radios[this.selectedRadioIdx].frequency\r\n        }).then(res => {\r\n          let pntAll = []; //淇濆瓨鐢靛彴浠ュ強缁堢鐨勪綅缃� 鐢ㄤ互璁剧疆鏈�鍚庣殑鍦板浘鍙鑼冨洿\r\n          let radioLca = {\r\n            lng: this.radios[this.selectedRadioIdx].lon,\r\n            lat: this.radios[this.selectedRadioIdx].lat\r\n          }; //鐢靛彴鐨勪綅缃甛r\n          let radioPnt = new BMap.Point(radioLca.lng, radioLca.lat);\r\n          pntAll.push(radioPnt);\r\n\r\n          for (let i = 0; i < res.data.length; i++) {\r\n            let device = {};\r\n            device.lgid = res.data[i].device_lgid;\r\n            let deviceLca = {\r\n              lng: res.data[i].lon,\r\n              lat: res.data[i].lat\r\n            }; //缁堢浣嶇疆\r\n            device.position = deviceLca;\r\n            let devicePnt = new BMap.Point(deviceLca.lng, deviceLca.lat);\r\n            pntAll.push(devicePnt);\r\n            device.path = [radioLca, deviceLca]; //鐢靛彴涓庣粓绔殑杩炵嚎 鐢ㄤ互鍦ㄥ湴鍥句笂鐢荤嚎\r\n            this.devices.push(device);\r\n\r\n            let dis = map.getDistance(radioPnt, devicePnt); //鐢靛彴涓庣粓绔殑璺濈 浠ユ爣娉ㄥ舰寮忔樉绀哄湪鍦板浘涓奬r\n            let label = {};\r\n            label.content = `${Math.round(dis / 100) / 10}KM`;\r\n            label.position = {\r\n              lng: (radioLca.lng + deviceLca.lng) / 2,\r\n              lat: (radioLca.lat + deviceLca.lat) / 2\r\n            }; //鏍囨敞鐨勪綅缃甛r\n            this.labels.push(label);\r\n          }\r\n          map.setViewport(pntAll);\r\n        });\r\n      },\r\n\r\n      changeLocation() {\r\n        this.$prompt(\"璇疯緭鍏ュ潗鏍囷紙鏍煎紡锛氱粡搴�,绾害锛塡", \"鎻愮ず\", {\r\n            confirmButtonText: \"纭畾\",\r\n            cancelButtonText: \"鍙栨秷\",\r\n            inputValidator: function (value) {\r\n              value = value.trim();\r\n              let errMsg = \"鍧愭爣鍊间笉鍚堟硶\";\r\n              let location = value.split(\",\");\r\n              if (location.length != 2) return errMsg;\r\n              if (location[0] == \"\" || location[1] == \"\") return errMsg;\r\n              location = location.map(s => Number(s));\r\n              let lon = location[0];\r\n              let lat = location[1];\r\n              if (Number.isNaN(lon) || Number.isNaN(lat)) return errMsg;\r\n              if (lon < -180 || lon > 180 || lat < -90 || lat > 90) return errMsg;\r\n              return true;\r\n            }\r\n          })\r\n          .then(value => {\r\n            let location = value.value.split(\",\").map(s => Number(s));\r\n            this.infowindow_radio.data.lon = location[0];\r\n            this.infowindow_radio.data.lat = location[1];\r\n          })\r\n          .catch(() => {});\r\n      },\r\n\r\n      changeDetail() {\r\n        this.$prompt(\"璇疯緭鍏ユ弿杩癨", \"鎻愮ず\", {\r\n            confirmButtonText: \"纭畾\",\r\n            cancelButtonText: \"鍙栨秷\"\r\n          })\r\n          .then(value => {\r\n            this.infowindow_radio.data.detail = value.value;\r\n          })\r\n          .catch(() => {});\r\n      },\r\n\r\n      confirmAndSave() {\r\n        // if (this.infowindow_radio.data.confirm == \"宸茬‘璁") {\r\n        //   this.$message({\r\n        //     message: \"鐢靛彴宸茬粡杩囩‘璁",\r\n        //     type: \"warning\"\r\n        //   });\r\n        //   return;\r\n        // }\r\n        this.$confirm(\"纭骞朵繚瀛樻榛戠數鍙颁俊鎭�, 鏄惁缁х画?\", \"鎻愮ず\", {\r\n            confirmButtonText: \"纭畾\",\r\n            cancelButtonText: \"鍙栨秷\",\r\n            type: \"warning\"\r\n          })\r\n          .then(() => {\r\n            this.$getJSON(\"/radio/u_illegalRadio\", this.infowindow_radio.data).then(\r\n              res => {\r\n                this.$message.success(\"纭鎴愬姛,璇峰埛鏂伴〉闈互鏇存柊淇℃伅\");\r\n              }\r\n            );\r\n          })\r\n          .catch(() => {});\r\n      },\r\n\r\n      // 鎵嬪姩娣诲姞闈炴硶鐢靛彴\r\n      addRadio() {\r\n        if (this.newRadio.freq == '') {\r\n          this.$message.error(\"棰戠巼涓嶈兘涓虹┖\");\r\n          return;\r\n        }\r\n        if (this.newRadio.location == '') {\r\n          this.$message.error(\"鍧愭爣涓嶈兘涓虹┖\");\r\n          return;\r\n        }\r\n        if (this.newRadio.location.split(',').length != 2) {\r\n          this.$message.error(\"鍧愭爣鏍煎紡涓嶆纭甛");\r\n          return;\r\n        }\r\n        this.newRadio.lon = this.newRadio.location.split(',')[0];\r\n        this.newRadio.lat = this.newRadio.location.split(',')[1];\r\n        this.$confirm(\"纭骞朵繚瀛樻榛戠數鍙颁俊鎭�, 鏄惁缁х画?\", \"鎻愮ず\", {\r\n            confirmButtonText: \"纭畾\",\r\n            cancelButtonText: \"鍙栨秷\",\r\n            type: \"warning\"\r\n          })\r\n          .then(() => {\r\n            this.$getJSON(\"/radio/i_illegalRadio\", this.newRadio).then(\r\n              res => {\r\n                this.$message.success(\"纭鎴愬姛,璇峰埛鏂伴〉闈互鏇存柊淇℃伅\");\r\n                this.isAddingRadioShow = false;\r\n              }\r\n            );\r\n          })\r\n          .catch(() => {});\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style>\r\n  .map_confirm {\r\n    width: 100%;\r\n    height: 100%;\r\n  }\r\n\r\n  .map_confirm .el-form-item {\r\n    margin: 0;\r\n  }\r\n\r\n  .map_confirm .el-form-item .el-button {\r\n    margin-top: 5px;\r\n    padding: 4px 6px;\r\n    margin-left: 0;\r\n  }\r\n\r\n  .map_confirm .anchorBL {\r\n    display: none;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/IllegalRadioConfirm.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baidu-map',{ref:\"mapContainer\",staticClass:\"map_confirm\",attrs:{\"id\":\"mapContainer\",\"center\":\"涓婃捣\",\"scroll-wheel-zoom\":_vm.map.scrollWheelZoom,\"dragging\":_vm.map.dragging,\"double-click-zoom\":_vm.map.dbClickZoom,\"mapStyle\":_vm.map.mapStyle},on:{\"ready\":_vm.ready,\"click\":_vm.mapClick}},[_c('bm-navigation',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}}),_vm._v(\" \"),_c('bm-control',{staticStyle:{\"display\":\"inline\"},attrs:{\"offset\":{width:5,height:5}}},[_c('tr',{attrs:{\"valign\":\"top\"}},[_c('td',{staticStyle:{\"width\":\"120px\"}},[_c('el-select',{attrs:{\"placeholder\":\"閫夋嫨棰戠巼\",\"size\":\"small\"},on:{\"change\":_vm.handleSelectChange},model:{value:(_vm.selectedRadioIdx),callback:function ($$v) {_vm.selectedRadioIdx=$$v},expression:\"selectedRadioIdx\"}},_vm._l((_vm.radios),function(radio,idx){return _c('el-option',{key:radio.id,attrs:{\"label\":((radio.frequency) + \" \" + (radio.confirm)),\"value\":idx}})}))],1),_vm._v(\" \"),_c('td',{staticStyle:{\"width\":\"350px\",\"padding-left\":\"7px\"}},[_c('el-button-group',[_c('el-tooltip',{attrs:{\"effect\":\"light\",\"content\":\"鏄剧ず褰撳墠鎵�閫夐潪娉曠數鍙扮殑璇︾粏淇℃伅\",\"hide-after\":2000}},[_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"info\"},on:{\"click\":function($event){_vm.radioInfo()}}},[_vm._v(\"鐢靛彴淇℃伅\")])],1),_vm._v(\" \"),_c('el-tooltip',{attrs:{\"effect\":\"light\",\"content\":\"鏄剧ず鎵弿鍒版墍閫夌數鍙伴鐜囩殑缁堢璁惧\",\"hide-after\":2000}},[_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.scanDevice()}}},[_vm._v(\"鎵弿缁堢\")])],1),_vm._v(\" \"),_c('el-tooltip',{attrs:{\"effect\":\"light\",\"content\":\"鎵嬪姩娣诲姞绯荤粺鏈洃娴嬪埌锛屼絾缁忚繃澶栭儴纭鐨勯潪娉曠數鍙癨",\"hide-after\":2000}},[_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"success\"},on:{\"click\":function($event){_vm.isAddingRadioShow=true;}}},[_vm._v(\"鎵嬪姩娣诲姞\")])],1),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"warning\"},on:{\"click\":function($event){_vm.getPointShow=true;}}},[_vm._v(\"鍧愭爣鎷惧彇\")])],1)],1),_vm._v(\" \"),_c('td',{staticStyle:{\"width\":\"380px\"}},[_c('el-input',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.getPointShow),expression:\"getPointShow\"}],attrs:{\"size\":\"small\",\"placeholder\":\"鐐瑰嚮鍦板浘鑾峰彇鍧愭爣\"},model:{value:(_vm.getPointLocation),callback:function ($$v) {_vm.getPointLocation=$$v},expression:\"getPointLocation\"}},[_c('template',{staticStyle:{\"padding\":\"0\"},slot:\"prepend\"},[_vm._v(\"褰撳墠鍧愭爣锛歕")]),_vm._v(\" \"),_c('template',{slot:\"append\"},[_c('el-button',{staticStyle:{\"padding\":\"0 8px\"},attrs:{\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.copyLcation()}}},[_vm._v(\"澶嶅埗\")]),_vm._v(\" \"),_c('el-button',{staticStyle:{\"padding\":\"0 8px\"},attrs:{\"size\":\"small\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.getPointShow=false;}}},[_vm._v(\"鍏抽棴\")])],1)],2)],1)])]),_vm._v(\" \"),_vm._l((_vm.radios),function(radio){return _c('bm-marker',{key:radio.id,attrs:{\"icon\":_vm.icons[radio.confirm],\"title\":String(radio.frequency),\"position\":{lng: radio.lon, lat: radio.lat}},on:{\"click\":function($event){_vm.showinfowindow_radio(radio)}}})}),_vm._v(\" \"),_c('bm-info-window',{attrs:{\"title\":\"鐢靛彴淇℃伅\",\"show\":_vm.infowindow_radio.show,\"position\":_vm.infowindow_radio.position,\"width\":380},on:{\"open\":function($event){_vm.infowindow_radio.show=true;},\"close\":function($event){_vm.infowindow_radio.show=false;}}},[_c('el-form',{attrs:{\"size\":\"medium\"}},[_c('el-row',[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"棰戠巼\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.infowindow_radio.data.frequency))])],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":7}},[_c('el-form-item',{attrs:{\"label\":\"鐘舵�乗"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.infowindow_radio.data.confirm))])],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":11}},[_c('el-tooltip',{attrs:{\"effect\":\"light\",\"content\":\"鐢靛彴浣嶇疆璁$畻鎴栫‘璁ゆ椂闂碶",\"placement\":\"bottom\",\"hide-after\":2000}},[_c('el-form-item',{attrs:{\"label\":\"鏃堕棿\"}},[_c('el-tag',{style:(_vm.tagStyle)},[_vm._v(_vm._s(_vm.infowindow_radio.data.time))])],1)],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-form-item',{attrs:{\"label\":\"鍧愭爣\"}},[_c('el-tag',{style:(_vm.tagStyle+'width:338px;')},[_vm._v(_vm._s(((_vm.infowindow_radio.data.lon) + \" , \" + (_vm.infowindow_radio.data.lat))))])],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-form-item',{attrs:{\"label\":\"鎻忚堪\"}},[_c('el-tag',{style:(_vm.tagStyle+'width:338px;')},[_vm._v(_vm._s(_vm.infowindow_radio.data.detail))])],1)],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"plain\":\"\",\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.changeLocation()}}},[_vm._v(\"淇敼鍧愭爣\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"plain\":\"\",\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.changeDetail()}}},[_vm._v(\"淇敼鎻忚堪\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"plain\":\"\",\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.confirmAndSave()}}},[_vm._v(\"纭骞朵繚瀛榎")])],1)],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"鎵嬪姩娣诲姞闈炴硶鐢靛彴\",\"visible\":_vm.isAddingRadioShow,\"width\":\"500px\",\"close-on-click-modal\":false},on:{\"update:visible\":function($event){_vm.isAddingRadioShow=$event}}},[_c('el-form',{attrs:{\"size\":\"medium\",\"label-width\":\"50px\"}},[_c('el-row',[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"棰戠巼\"}},[_c('el-input',{attrs:{\"size\":\"small\"},model:{value:(_vm.newRadio.freq),callback:function ($$v) {_vm.$set(_vm.newRadio, \"freq\", $$v)},expression:\"newRadio.freq\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"鍧愭爣\"}},[_c('el-input',{attrs:{\"size\":\"small\",\"placeholder\":\"缁忕含搴﹀潗鏍囷紝閫楀彿鍒嗛殧\"},model:{value:(_vm.newRadio.location),callback:function ($$v) {_vm.$set(_vm.newRadio, \"location\", $$v)},expression:\"newRadio.location\"}})],1)],1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鎻忚堪\"}},[_c('el-input',{attrs:{\"size\":\"small\"},model:{value:(_vm.newRadio.detail),callback:function ($$v) {_vm.$set(_vm.newRadio, \"detail\", $$v)},expression:\"newRadio.detail\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"padding-top\":\"10px\"}},[_c('el-button',{attrs:{\"plain\":\"\",\"size\":\"medium\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.addRadio()}}},[_vm._v(\"纭\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"plain\":\"\",\"size\":\"medium\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.isAddingRadioShow=false;}}},[_vm._v(\"鍙栨秷\")])],1)],1)],1),_vm._v(\" \"),_c('bm-info-window',{attrs:{\"title\":\"璁惧淇℃伅\",\"show\":_vm.infowindow_device.show,\"position\":_vm.infowindow_device.position,\"width\":430},on:{\"open\":function($event){_vm.infowindow_device.show=true;},\"close\":function($event){_vm.infowindow_device.show=false;}}},[_c('device-detail',{attrs:{\"lgid\":_vm.infowindow_device.device_lgid}})],1),_vm._v(\" \"),_c('bm-marker',{attrs:{\"position\":_vm.selectedRadioPos,\"icon\":_vm.icons['宸查�夋嫨'],\"zIndex\":0}}),_vm._v(\" \"),_vm._l((_vm.devices),function(device){return _c('bm-marker',{key:'m'+device.lgid,attrs:{\"position\":device.position,\"title\":device.lgid},on:{\"click\":function($event){_vm.showinfowindow_device(device)}}})}),_vm._v(\" \"),_vm._l((_vm.devices),function(device){return _c('bm-polyline',{key:'p'+device.lgid,attrs:{\"path\":device.path,\"stroke-color\":\"red\",\"stroke-opacity\":0.5,\"stroke-weight\":2}})}),_vm._v(\" \"),_vm._l((_vm.labels),function(label,index){return _c('bm-label',{key:'l'+index,attrs:{\"content\":label.content,\"position\":label.position,\"labelStyle\":{color: 'red', fontSize : '20px',fontWeight:'bold',backgroundColor:'rgba(0,0,0,0)',border:0},\"offset\":{width:-27,height:-12}}})})],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-f0be9a52\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/IllegalRadioConfirm.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-f0be9a52\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./IllegalRadioConfirm.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./IllegalRadioConfirm.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./IllegalRadioConfirm.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f0be9a52\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./IllegalRadioConfirm.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/IllegalRadioConfirm.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <el-row style=\"height:55px;\">\r\n      <el-form inline>\r\n        <el-form-item>\r\n          <el-button-group>\r\n            <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"addKeyword\"></el-button>\r\n            <el-button type=\"primary\" icon=\"el-icon-delete\" @click=\"deleteKeyword\"></el-button>\r\n          </el-button-group>\r\n        </el-form-item>\r\n        <el-form-item>\r\n          <el-input placeholder=\"杈撳叆瑕佹煡璇㈢殑鍏抽敭瀛梊" v-model=\"keywords\" style=\"margin-left:150px;\">\r\n            <el-button slot=\"append\" icon=\"el-icon-search\" @click=\"search\"></el-button>\r\n          </el-input>\r\n        </el-form-item>\r\n      </el-form>\r\n    </el-row>\r\n    <el-row style=\"height:calc(100% - 55px - 42px);\">\r\n      <el-table :data=\"data\" border style=\"width: 100%\" height=\"100%\" @selection-change=\"handleSelectionChange\">\r\n        <el-table-column type=\"selection\" width=\"35\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"code\" label=\"缂栫爜\">\r\n        </el-table-column>\r\n        <el-table-column prop=\"name\" label=\"鍏抽敭璇峔">\r\n        </el-table-column>\r\n        <el-table-column prop=\"english\" label=\"鑻辨枃\">\r\n        </el-table-column>\r\n        <el-table-column fixed=\"right\" label=\"鎿嶄綔\" width=\"130\">\r\n          <template slot-scope=\"scope\">\r\n            <el-button type=\"text\" @click=\"edit(scope.$index)\">缂栬緫</el-button>\r\n          </template>\r\n        </el-table-column>\r\n      </el-table>\r\n    </el-row>\r\n    <el-row style=\"height:42px;padding-top:10px;\">\r\n      <Pagination ref=\"srPagination\" totalCountOrURL=\"/radio/s_keywords\" :params=\"this.keywords?{keywords: this.keywords.trim()}:{}\"\r\n        @change=\"handlePageChange\"></Pagination>\r\n    </el-row>\r\n\r\n    <el-dialog :visible.sync=\"showEdit\" width=\"520px\" :title=\"dialogTitle\">\r\n      <el-form label-width=\"60px\" label-position=\"left\">\r\n        <el-form-item label=\"缂栫爜\">\r\n          <el-input v-model=\"form.code\"></el-input>\r\n        </el-form-item>\r\n        <el-form-item label=\"鍏抽敭璇峔">\r\n          <el-input v-model=\"form.name\"></el-input>\r\n        </el-form-item>\r\n        <el-form-item label=\"鑻辨枃\">\r\n          <el-input v-model=\"form.english\"></el-input>\r\n        </el-form-item>\r\n        <el-form-item style=\"padding-left:250px;margin-bottom:0;\">\r\n          <el-button @click=\"showEdit = false\">鍙� 娑�</el-button>\r\n          <el-button type=\"primary\" @click=\"save\">淇� 瀛�</el-button>\r\n        </el-form-item>\r\n      </el-form>\r\n    </el-dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n  import Pagination from \"@/components/PageNations/Pagination\";\r\n  export default {\r\n    components: {\r\n      Pagination\r\n    },\r\n    mounted() {\r\n      this.getData();\r\n    },\r\n    data() {\r\n      return {\r\n        data: [],\r\n        keywords: null,\r\n        page: 1,\r\n        size: 10,\r\n        selectd: [],\r\n        form: {},\r\n        showEdit: false,\r\n        dialogTitle: \"\",\r\n        isEditNew: false\r\n      };\r\n    },\r\n    methods: {\r\n      handlePageChange(params) {\r\n        this.page = params.page;\r\n        this.size = params.size;\r\n        this.getData();\r\n      },\r\n      getData() {\r\n        let params = {\r\n          page: this.page,\r\n          size: this.size\r\n        };\r\n        if (this.keywords) {\r\n          params.keywords = this.keywords.trim();\r\n        }\r\n        this.$getJSON(\"/radio/s_keywords\", params).then(res => {\r\n          this.data = res.data;\r\n        });\r\n      },\r\n      handleSelectionChange(a) {\r\n        this.selectd = a;\r\n      },\r\n      addKeyword() {\r\n        this.isEditNew = true;\r\n        this.form = {\r\n          code: \"\",\r\n          name: \"\",\r\n          english: \"\"\r\n        };\r\n        this.showEdit = true;\r\n        this.dialogTitle = \"娣诲姞鍏抽敭璇峔";\r\n      },\r\n      deleteKeyword() {\r\n        if (this.selectd.length == 0) {\r\n          this.$message(\"鏈�夋嫨浠讳綍鍏抽敭璇峔");\r\n          return;\r\n        }\r\n        this.$confirm(`纭鍒犻櫎${this.selectd.length}鏉″叧閿瘝?`, \"鎻愮ず\", {\r\n            confirmButtonText: \"纭畾\",\r\n            cancelButtonText: \"鍙栨秷\",\r\n            type: \"warning\"\r\n          })\r\n          .then(() => {\r\n            let ids = [];\r\n            this.selectd.map(item => ids.push(item.id));\r\n            this.$getJSON(\"/radio/d_keywords\", {\r\n              ids: ids\r\n            }).then(res => {\r\n              this.$message.success(\"鍒犻櫎鎴愬姛\");\r\n              this.getData();\r\n            });\r\n          })\r\n          .catch(() => {});\r\n      },\r\n      edit(idx) {\r\n        this.isEditNew = false;\r\n        this.form = JSON.parse(JSON.stringify(this.data[idx]));\r\n        this.showEdit = true;\r\n        this.dialogTitle = \"缂栬緫鍏抽敭璇峔";\r\n      },\r\n      save() {\r\n        if (!this.form.name || (this.form.name = this.form.name.trim()) === \"\") {\r\n          this.$message(\"鍏抽敭璇嶄笉鑳戒负绌篭");\r\n          return;\r\n        }\r\n        if (this.isEditNew) {\r\n          this.$confirm(\"纭娣诲姞鍏抽敭璇�?\", \"鎻愮ず\", {\r\n              confirmButtonText: \"纭畾\",\r\n              cancelButtonText: \"鍙栨秷\",\r\n              type: \"warning\"\r\n            })\r\n            .then(() => {\r\n              this.showEdit = false;\r\n              this.$getJSON(\"/radio/i_keywords\", this.form).then(res => {\r\n                this.$message.success(\"娣诲姞鎴愬姛\");\r\n                this.page = 1;\r\n                this.getData();\r\n              });\r\n            })\r\n            .catch(() => {});\r\n        } else {\r\n          this.$confirm(\"纭淇敼鍏抽敭璇�?\", \"鎻愮ず\", {\r\n              confirmButtonText: \"纭畾\",\r\n              cancelButtonText: \"鍙栨秷\",\r\n              type: \"warning\"\r\n            })\r\n            .then(() => {\r\n              this.showEdit = false;\r\n              this.$getJSON(\"/radio/u_keywords\", this.form).then(res => {\r\n                this.showEdit = false;\r\n                this.$message.success(\"淇敼鎴愬姛\");\r\n                this.page = 1;\r\n                this.getData();\r\n              });\r\n            })\r\n            .catch(() => {});\r\n        }\r\n      },\r\n      search() {\r\n        this.getData();\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/Keywords.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-row',{staticStyle:{\"height\":\"55px\"}},[_c('el-form',{attrs:{\"inline\":\"\"}},[_c('el-form-item',[_c('el-button-group',[_c('el-button',{attrs:{\"type\":\"primary\",\"icon\":\"el-icon-plus\"},on:{\"click\":_vm.addKeyword}}),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\",\"icon\":\"el-icon-delete\"},on:{\"click\":_vm.deleteKeyword}})],1)],1),_vm._v(\" \"),_c('el-form-item',[_c('el-input',{staticStyle:{\"margin-left\":\"150px\"},attrs:{\"placeholder\":\"杈撳叆瑕佹煡璇㈢殑鍏抽敭瀛梊"},model:{value:(_vm.keywords),callback:function ($$v) {_vm.keywords=$$v},expression:\"keywords\"}},[_c('el-button',{attrs:{\"slot\":\"append\",\"icon\":\"el-icon-search\"},on:{\"click\":_vm.search},slot:\"append\"})],1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"calc(100% - 55px - 42px)\"}},[_c('el-table',{staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.data,\"border\":\"\",\"height\":\"100%\"},on:{\"selection-change\":_vm.handleSelectionChange}},[_c('el-table-column',{attrs:{\"type\":\"selection\",\"width\":\"35\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"code\",\"label\":\"缂栫爜\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"name\",\"label\":\"鍏抽敭璇峔"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"prop\":\"english\",\"label\":\"鑻辨枃\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"fixed\":\"right\",\"label\":\"鎿嶄綔\",\"width\":\"130\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\"},on:{\"click\":function($event){_vm.edit(scope.$index)}}},[_vm._v(\"缂栬緫\")])]}}])})],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"42px\",\"padding-top\":\"10px\"}},[_c('Pagination',{ref:\"srPagination\",attrs:{\"totalCountOrURL\":\"/radio/s_keywords\",\"params\":this.keywords?{keywords: this.keywords.trim()}:{}},on:{\"change\":_vm.handlePageChange}})],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"visible\":_vm.showEdit,\"width\":\"520px\",\"title\":_vm.dialogTitle},on:{\"update:visible\":function($event){_vm.showEdit=$event}}},[_c('el-form',{attrs:{\"label-width\":\"60px\",\"label-position\":\"left\"}},[_c('el-form-item',{attrs:{\"label\":\"缂栫爜\"}},[_c('el-input',{model:{value:(_vm.form.code),callback:function ($$v) {_vm.$set(_vm.form, \"code\", $$v)},expression:\"form.code\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鍏抽敭璇峔"}},[_c('el-input',{model:{value:(_vm.form.name),callback:function ($$v) {_vm.$set(_vm.form, \"name\", $$v)},expression:\"form.name\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"鑻辨枃\"}},[_c('el-input',{model:{value:(_vm.form.english),callback:function ($$v) {_vm.$set(_vm.form, \"english\", $$v)},expression:\"form.english\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticStyle:{\"padding-left\":\"250px\",\"margin-bottom\":\"0\"}},[_c('el-button',{on:{\"click\":function($event){_vm.showEdit = false}}},[_vm._v(\"鍙� 娑圽")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"淇� 瀛榎")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-4d4cd6c3\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/Keywords.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4d4cd6c3\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./Keywords.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Keywords.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./Keywords.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4d4cd6c3\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./Keywords.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-4d4cd6c3\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/Keywords.vue\n// module id = null\n// module chunks = ","<template>\r\n  <baidu-map id=\"mapContainer\" ref=\"mapContainer\" class=\"map\" center=\"涓婃捣\" :scroll-wheel-zoom=\"true\" :mapStyle=\"mapStyle\"\r\n    @ready=\"ready\">\r\n\r\n    <bm-navigation anchor=\"BMAP_ANCHOR_TOP_RIGHT\"></bm-navigation>\r\n\r\n    <bm-scale anchor=\"BMAP_ANCHOR_BOTTOM_LEFT\"></bm-scale>\r\n\r\n    <bm-map-type :map-types=\"['BMAP_NORMAL_MAP','BMAP_SATELLITE_MAP']\" anchor=\"BMAP_ANCHOR_BOTTOM_RIGHT\"></bm-map-type>\r\n\r\n    <bm-marker v-if=\"dataType=='point'\" v-for=\"(pnt,idx) in data\" :key=\"idx\" :position=\"pnt\"></bm-marker>\r\n\r\n    <bm-polyline v-else-if=\"dataType=='polyline'\" v-for=\"(path,idx) in data\" :key=\"idx\" :path=\"path\"></bm-polyline>\r\n\r\n    <bm-polygon v-else-if=\"dataType=='polygon'\" v-for=\"(path,idx) in data\" :key=\"idx\" :path=\"path\"></bm-polygon>\r\n  </baidu-map>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    watch: {},\r\n    data() {\r\n      return {\r\n        BMap: null, //BMap绫籠r\n        map: null, //map瀹炰緥\r\n        mapStyle: {\r\n          styleJson: [{\r\n            featureType: \"highway\",\r\n            elementType: \"all\",\r\n            stylers: {\r\n              weight: \"0.1\",\r\n              visibility: \"on\"\r\n            }\r\n          }]\r\n        },\r\n        dataType: \"\",\r\n        data: []\r\n      };\r\n    },\r\n    created() {},\r\n    mounted() {},\r\n    methods: {\r\n      ready(params) {\r\n        this.BMap = params.BMap;\r\n        this.map = params.map;\r\n        // 灏嗘暟鎹В鏋愮瓑鎿嶄綔鏀惧湪杩欓噷锛屾槸鍥犱负闇�瑕佺敤鍒扮櫨搴﹀湴鍥剧殑瀹炰緥锛岃�寁ue-baidu缁勪欢鐨勫湴鍥惧疄渚嬪湪ready浜嬩欢涓幏鍙朶r\n        this.dealURLParams(); //瑙f瀽鏁版嵁\r\n        this.setViewport(); //璁剧疆瑙嗗尯涓烘暟鎹寖鍥碶r\n      },\r\n      dealURLParams() {\r\n        /**\r\n         * 浠ET褰㈠紡浼犻�掑弬鏁帮紝URL涓殑鍙傛暟鏈� \r\n         * dataType锛堝彇鍊间负point銆乸olyline銆乸olygon锛塡r\n         * data锛堟暟鎹紝xy鍧愭爣涔嬮棿鐢ㄢ��,鈥濆垎鍓诧紝涓嶅悓鐐逛箣闂寸敤鈥�-鈥濆垎鍓诧紝涓嶅悓绾挎垨鑰呬笉鍚岄潰涔嬮棿鐢ㄢ��;鈥濆垎鍓诧級\r\n         */\r\n        let params = this.$route.query;\r\n        this.data = [];\r\n        this.dataType = params.type;\r\n        //鐐筡r\n        if (this.dataType == \"point\") {\r\n          this.data = this.parsePnts(params.data);\r\n        }\r\n        //鎶樼嚎銆侀潰\r\n        if (this.dataType == \"polyline\" || this.dataType == \"polygon\") {\r\n          //澶氭潯鎶樼嚎鎴栬�呭涓潰涔嬮棿鐢ㄢ��;鈥濆垎鍓瞈r\n          this.data = params.data.split(\";\").map(pntsStr => {\r\n            return this.parsePnts(pntsStr);\r\n          })\r\n        }\r\n        console.log(this.data);\r\n      },\r\n      parsePnts(pntsStr) {\r\n        //瑙f瀽瀛楃涓诧紝杩斿洖point绫诲瀷锛堝嵆瀵硅薄{lng:x,lat:y}锛夋暟缁刓r\n        //鐐逛负涓�缁存暟缁勶紝绾挎垨鑰呴潰涓轰簩缁存暟缁刓r\n        let rst = [];\r\n        let pnts = pntsStr.split(\",\"); //鐐逛箣闂寸敤鈥�,鈥濆垎鍓瞈r\n        for (let i = 0; i < pnts.length; i++) {\r\n          let xy = pnts[i].split(\"-\"); //x y鍧愭爣涔嬮棿鈥�-鈥濆垎鍓瞈r\n          rst.push({\r\n            lng: Number(xy[0]),\r\n            lat: Number(xy[1])\r\n          })\r\n        }\r\n        return rst;\r\n      },\r\n      // 灏嗗湴鍥惧綋鍓嶆樉绀鸿寖鍥磋缃负鏁版嵁鐨勫垎甯冭寖鍥碶r\n      setViewport() {\r\n        let pnts = []; // 鏁版嵁鐨勭偣闆嗭紝濡傛灉涓虹嚎鎴栬�呴潰锛屽垯琛ㄧず鎶樼偣\r\n        for (let i = 0; i < this.data.length; i++) {\r\n          if (Array.isArray(this.data[i])) {\r\n            for (let j = 0; j < this.data[i].length; j++) {\r\n              pnts.push(new this.BMap.Point(this.data[i][j].lng, this.data[i][j].lat));\r\n            }\r\n          } else {\r\n            pnts.push(new this.BMap.Point(this.data[i].lng, this.data[i].lat));\r\n          }\r\n        }\r\n        this.map.setViewport(pnts); // 璋冪敤鐧惧害鍦板浘瀹炰緥鐨勬柟娉曪紝鍙傛暟涓烘墍鏈夋暟鎹偣鐨勪竴涓暟缁刓r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style>\r\n  .map {\r\n    width: 100%;\r\n    height: 100%;\r\n  }\r\n\r\n  .anchorBL {\r\n    display: none;\r\n  }\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/MapAPI.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('baidu-map',{ref:\"mapContainer\",staticClass:\"map\",attrs:{\"id\":\"mapContainer\",\"center\":\"涓婃捣\",\"scroll-wheel-zoom\":true,\"mapStyle\":_vm.mapStyle},on:{\"ready\":_vm.ready}},[_c('bm-navigation',{attrs:{\"anchor\":\"BMAP_ANCHOR_TOP_RIGHT\"}}),_vm._v(\" \"),_c('bm-scale',{attrs:{\"anchor\":\"BMAP_ANCHOR_BOTTOM_LEFT\"}}),_vm._v(\" \"),_c('bm-map-type',{attrs:{\"map-types\":['BMAP_NORMAL_MAP','BMAP_SATELLITE_MAP'],\"anchor\":\"BMAP_ANCHOR_BOTTOM_RIGHT\"}}),_vm._v(\" \"),_vm._l((_vm.data),function(pnt,idx){return (_vm.dataType=='point')?_c('bm-marker',{key:idx,attrs:{\"position\":pnt}}):(_vm.dataType=='polyline')?_vm._l((_vm.data),function(path,idx){return _c('bm-polyline',{key:idx,attrs:{\"path\":path}})}):(_vm.dataType=='polygon')?_vm._l((_vm.data),function(path,idx){return _c('bm-polygon',{key:idx,attrs:{\"path\":path}})}):_vm._e()})],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-1b1cada7\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/MapAPI.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1b1cada7\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./MapAPI.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./MapAPI.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./MapAPI.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1b1cada7\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./MapAPI.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/MapAPI.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <el-row style=\"height:50%;\">\r\n      <el-col :span=\"10\" style=\"height:100%;text-align:center;\">\r\n        <chart style=\"width:100%;height:100%;\" :auto-resize=\"true\" :options=\"c_device\"></chart>\r\n      </el-col>\r\n    </el-row>\r\n    <el-row style=\"height:50%;position:relative;\">\r\n      <el-col :span=\"24\" style=\"height:100%;\">\r\n        <chart style=\"width:100%;height:calc(100% - 30px);\" :auto-resize=\"true\" :options=\"c_task\"></chart>\r\n        <div style=\"height:30px;padding-left:30px;\">\r\n          閫夋嫨缁熻鏃堕棿娈碉紙鎸夋湀锛夛細\r\n          <el-date-picker v-model=\"month\" type=\"month\" format=\"yyyy-MM\" value-format=\"yyyy-MM\" placeholder=\"閫夋嫨鏈圽" size=\"mini\"\r\n            style=\"width:110px;\" :clearable=\"false\"></el-date-picker>\r\n        </div>\r\n      </el-col>\r\n    </el-row>\r\n  </div>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    watch: {\r\n      month() {\r\n        // 缁熻鏃堕棿娈垫敼鍙樺悗 閲嶆柊鑾峰彇缁熻鏁版嵁\r\n        this.getTaskStat();\r\n\r\n        // 鏇存敼鏍囬涓殑鏃堕棿\r\n        this.c_task.title.text =\r\n          \"妫�娴嬩换鍔$粺璁★紙\" +\r\n          this.month.split(\"-\")[0] +\r\n          \"骞碶" +\r\n          this.month.split(\"-\")[1] +\r\n          \"鏈堬級\";\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        c_device: {\r\n          title: {\r\n            text: \"缁堢鏁伴噺缁熻\"\r\n          },\r\n          grid: {\r\n            x: 40\r\n          },\r\n          tooltip: {\r\n            trigger: \"axis\",\r\n            axisPointer: {\r\n              type: \"shadow\",\r\n              crossStyle: {\r\n                color: \"#999\"\r\n              }\r\n            }\r\n          },\r\n          toolbox: {\r\n            feature: {\r\n              dataView: {\r\n                show: true,\r\n                readOnly: false\r\n              },\r\n              saveAsImage: {\r\n                show: true\r\n              }\r\n            }\r\n          },\r\n          legend: {},\r\n          xAxis: [{\r\n            type: \"category\",\r\n            data: [\"璁惧鐘舵�乗"],\r\n            axisPointer: {\r\n              type: \"shadow\"\r\n            }\r\n          }],\r\n          yAxis: [{\r\n            type: \"value\",\r\n            name: \"鍙版暟\",\r\n            minInterval: 1\r\n          }],\r\n          series: []\r\n        },\r\n\r\n        c_task: {\r\n          title: {\r\n            text: \"妫�娴嬩换鍔$粺璁"\r\n          },\r\n          grid: {\r\n            x: 40,\r\n            y2: 30\r\n          },\r\n          tooltip: {\r\n            trigger: \"axis\",\r\n            axisPointer: {\r\n              type: \"shadow\",\r\n              crossStyle: {\r\n                color: \"#999\"\r\n              }\r\n            }\r\n          },\r\n          toolbox: {\r\n            feature: {\r\n              dataView: {\r\n                show: true,\r\n                readOnly: false\r\n              },\r\n              saveAsImage: {\r\n                show: true\r\n              }\r\n            }\r\n          },\r\n          legend: {},\r\n          xAxis: [{\r\n            name: \"鏃",\r\n            type: \"category\",\r\n            data: [],\r\n            axisPointer: {\r\n              type: \"shadow\"\r\n            }\r\n          }],\r\n          yAxis: [{\r\n            type: \"value\",\r\n            name: \"涓暟\",\r\n            minInterval: 1\r\n          }],\r\n          series: [{\r\n              name: \"鍛ㄦ湡浠诲姟\",\r\n              type: \"bar\",\r\n              data: [],\r\n              label: {\r\n                show: true,\r\n                formatter: function (params) {\r\n                  if (params.value > 0) {\r\n                    return params.value;\r\n                  } else {\r\n                    return \"\";\r\n                  }\r\n                },\r\n                position: \"top\"\r\n              }\r\n            },\r\n            {\r\n              name: \"鍗虫椂浠诲姟\",\r\n              type: \"bar\",\r\n              data: [],\r\n              label: {\r\n                show: true,\r\n                formatter: function (params) {\r\n                  if (params.value > 0) {\r\n                    return params.value;\r\n                  } else {\r\n                    return \"\";\r\n                  }\r\n                },\r\n                position: \"top\"\r\n              }\r\n            }\r\n          ]\r\n        },\r\n        // 鏈堜唤锛堟樉绀鸿鏈堢殑浠诲姟缁熻锛屾牸寮廦YYY-MM锛塡r\n        month: \"0000-00\"\r\n      };\r\n    },\r\n    mounted() {\r\n      // 鑾峰彇璁惧缁熻鏁版嵁\r\n      this.$getJSON(\"/stat/device_status\", {}).then(res => {\r\n        for (let i = 0; i < res.data.length; i++) {\r\n          // 姣忎釜鐘舵�佷负涓�涓崟鐙殑绯诲垪 杩欐牱灏卞彲浠ヨ嚜鍔ㄥ垎閰嶄笉鍚岀殑棰滆壊\r\n          this.c_device.series.push({\r\n            name: res.data[i][\"name\"],\r\n            type: \"bar\",\r\n            data: [res.data[i][\"cnt\"]],\r\n            label: {\r\n              show: true,\r\n              formatter: \"{c}\",\r\n              position: \"top\"\r\n            }\r\n          });\r\n        }\r\n      });\r\n\r\n      // 璁剧疆浠诲姟鏄剧ず鏈堜唤涓哄綋鍓嶆湀\r\n      let t = new Date();\r\n      this.month = `${t.getFullYear()}-${t.getMonth() + 1}`;\r\n\r\n      // 鑾峰彇浠诲姟缁熻鏁版嵁\r\n      // this.getTaskStat();\r\n    },\r\n    methods: {\r\n      getTaskStat() {\r\n        // 鍒濆鍖栨暟鎹紝闀垮害涓鸿瀹氭湀浠界殑澶╂暟\r\n        let yearMonth = this.month.split(\"-\").map(x => Number(x));\r\n        let t = new Date(yearMonth[0], yearMonth[1], 0);\r\n        let maxDay = t.getDate();\r\n        let xAxisData = [];\r\n        let periodTask = [];\r\n        let realtimeTask = [];\r\n        for (let i = 0; i < maxDay; i++) {\r\n          xAxisData[i] = i + 1;\r\n          periodTask[i] = 0;\r\n          realtimeTask[i] = 0;\r\n        }\r\n        // 鑾峰彇鏁版嵁\r\n        this.$getJSON(\"/stat/task\", {\r\n          yearMonth: this.month\r\n        }).then(res => {\r\n          for (let i = 0; i < res.data.length; i++) {\r\n            let row = res.data[i];\r\n            if (row[\"task_type\"] == \"鍛ㄦ湡浠诲姟\") {\r\n              periodTask[row[\"day\"] - 1] = row[\"num\"];\r\n            } else {\r\n              realtimeTask[row[\"day\"] - 1] = row[\"num\"];\r\n            }\r\n          }\r\n          // 灏嗘暟鎹缃埌鍥捐〃\r\n          this.c_task.xAxis[0].data = xAxisData;\r\n          this.c_task.series[0].data = periodTask;\r\n          this.c_task.series[1].data = realtimeTask;\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/TaskStat.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-row',{staticStyle:{\"height\":\"50%\"}},[_c('el-col',{staticStyle:{\"height\":\"100%\",\"text-align\":\"center\"},attrs:{\"span\":10}},[_c('chart',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"auto-resize\":true,\"options\":_vm.c_device}})],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"50%\",\"position\":\"relative\"}},[_c('el-col',{staticStyle:{\"height\":\"100%\"},attrs:{\"span\":24}},[_c('chart',{staticStyle:{\"width\":\"100%\",\"height\":\"calc(100% - 30px)\"},attrs:{\"auto-resize\":true,\"options\":_vm.c_task}}),_vm._v(\" \"),_c('div',{staticStyle:{\"height\":\"30px\",\"padding-left\":\"30px\"}},[_vm._v(\"\\n        閫夋嫨缁熻鏃堕棿娈碉紙鎸夋湀锛夛細\\n        \"),_c('el-date-picker',{staticStyle:{\"width\":\"110px\"},attrs:{\"type\":\"month\",\"format\":\"yyyy-MM\",\"value-format\":\"yyyy-MM\",\"placeholder\":\"閫夋嫨鏈圽",\"size\":\"mini\",\"clearable\":false},model:{value:(_vm.month),callback:function ($$v) {_vm.month=$$v},expression:\"month\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-45d98372\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/TaskStat.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-45d98372\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./TaskStat.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./TaskStat.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./TaskStat.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-45d98372\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./TaskStat.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-45d98372\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/TaskStat.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n    <el-row style=\"height:50%;\">\r\n      <el-col :span=\"24\" style=\"height:100%;text-align:center;\">\r\n        <chart style=\"width:100%;height:100%;\" :auto-resize=\"true\" :options=\"options_dis\"></chart>\r\n      </el-col>\r\n    </el-row>\r\n    <el-row style=\"height:50%;position:relative;\">\r\n      <el-col :span=\"24\" style=\"height:100%;\">\r\n        <chart style=\"width:100%;height:calc(100% - 30px);\" :auto-resize=\"true\" :options=\"options_all\"></chart>\r\n        <div style=\"height:30px;padding-left:30px;\">\r\n          閫夋嫨缁熻鏃堕棿娈碉紙鎸夋湀锛夛細\r\n          <el-date-picker v-model=\"month\" type=\"month\" format=\"yyyy-MM\" value-format=\"yyyy-MM\" placeholder=\"閫夋嫨鏈圽" size=\"mini\"\r\n            style=\"width:110px;\" :clearable=\"false\"></el-date-picker>\r\n        </div>\r\n      </el-col>\r\n    </el-row>\r\n  </div>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    watch: {\r\n      month() {\r\n        // 缁熻鏃堕棿娈垫敼鍙樺悗 閲嶆柊鑾峰彇缁熻鏁版嵁\r\n        this.getTaskStat();\r\n      }\r\n    },\r\n    data() {\r\n      return {\r\n        options_dis: {\r\n          title: {\r\n            text: \"闈炴硶鐢靛彴缁熻\"\r\n          },\r\n          grid: {\r\n            x: 40,\r\n            y2: 30\r\n          },\r\n          tooltip: {\r\n            trigger: \"axis\",\r\n            axisPointer: {\r\n              type: \"shadow\",\r\n              crossStyle: {\r\n                color: \"#999\"\r\n              }\r\n            }\r\n          },\r\n          toolbox: {\r\n            feature: {\r\n              dataView: {\r\n                show: true,\r\n                readOnly: false\r\n              },\r\n              saveAsImage: {\r\n                show: true\r\n              }\r\n            }\r\n          },\r\n          xAxis: [{\r\n            name: \"鏃",\r\n            type: \"category\",\r\n            data: [],\r\n            axisPointer: {\r\n              type: \"shadow\"\r\n            }\r\n          }],\r\n          yAxis: [{\r\n            type: \"value\",\r\n            name: \"涓暟\",\r\n            minInterval: 1\r\n          }],\r\n          series: [{\r\n            name: \"闈炴硶鐢靛彴\",\r\n            type: \"bar\",\r\n            data: [],\r\n            label: {\r\n              show: true,\r\n              formatter: function (params) {\r\n                if (params.value > 0) {\r\n                  return params.value;\r\n                } else {\r\n                  return \"\";\r\n                }\r\n              },\r\n              position: \"top\"\r\n            },\r\n            itemStyle: {\r\n              normal: {\r\n                // 闅忔満鏄剧ず\r\n                color: function (params) {\r\n                  return \"#\" + Math.floor(((params.value * 9301 + 49297) % 233280) / 233280.0 * 0xffffff).toString(\r\n                    16);\r\n                }\r\n              }\r\n            }\r\n          }]\r\n        },\r\n        options_all: {\r\n          title: {\r\n            text: \"闈炴硶鐢靛彴鐩戞祴涓婃姤娆℃暟缁熻\"\r\n          },\r\n          grid: {\r\n            x: 40,\r\n            y2: 30\r\n          },\r\n          tooltip: {\r\n            trigger: \"axis\",\r\n            axisPointer: {\r\n              type: \"shadow\",\r\n              crossStyle: {\r\n                color: \"#999\"\r\n              }\r\n            }\r\n          },\r\n          toolbox: {\r\n            feature: {\r\n              dataView: {\r\n                show: true,\r\n                readOnly: false\r\n              },\r\n              saveAsImage: {\r\n                show: true\r\n              }\r\n            }\r\n          },\r\n          xAxis: [{\r\n            name: \"鏃",\r\n            type: \"category\",\r\n            data: [],\r\n            axisPointer: {\r\n              type: \"shadow\"\r\n            }\r\n          }],\r\n          yAxis: [{\r\n            type: \"value\",\r\n            name: \"娆℃暟\",\r\n            minInterval: 1\r\n          }],\r\n          series: [{\r\n            name: \"闈炴硶鐢靛彴涓婃姤娆℃暟\",\r\n            type: \"bar\",\r\n            data: [],\r\n            label: {\r\n              show: true,\r\n              formatter: function (params) {\r\n                if (params.value > 0) {\r\n                  return params.value;\r\n                } else {\r\n                  return \"\";\r\n                }\r\n              },\r\n              position: \"top\"\r\n            },\r\n            itemStyle: {\r\n              normal: {\r\n                // 闅忔満鏄剧ず\r\n                color: function (params) {\r\n                  return \"#\" + Math.floor(((params.value * 9301 + 49297) % 233280) / 233280.0 * 0xffffff).toString(\r\n                    16);\r\n                }\r\n              }\r\n            }\r\n          }]\r\n        },\r\n        // 鏈堜唤锛堟樉绀鸿鏈堢殑浠诲姟缁熻锛屾牸寮廦YYY-MM锛塡r\n        month: \"0000-00\"\r\n      };\r\n    },\r\n    mounted() {\r\n      // 璁剧疆浠诲姟鏄剧ず鏈堜唤涓哄綋鍓嶆湀\r\n      let t = new Date();\r\n      this.month = `${t.getFullYear()}-${t.getMonth() + 1}`;\r\n\r\n      // 鑾峰彇浠诲姟缁熻鏁版嵁\r\n      this.getTaskStat();\r\n    },\r\n    methods: {\r\n      getTaskStat() {\r\n        // 鍒濆鍖栨暟鎹紝闀垮害涓鸿瀹氭湀浠界殑澶╂暟\r\n        let yearMonth = this.month.split(\"-\").map(x => Number(x));\r\n        let t = new Date(yearMonth[0], yearMonth[1], 0);\r\n        let maxDay = t.getDate(); // 璇ユ湀鐨勬�诲ぉ鏁癨r\n        let xAxisData = []; // 澶╂暟妯潗鏍嘰r\n        let radio_dis = []; // 闈炴硶鐢靛彴缁熻\r\n        let radio_all = []; // 闈炴硶鐢靛彴涓婃姤娆℃暟缁熻\r\n        for (let i = 0; i < maxDay; i++) {\r\n          xAxisData[i] = i + 1;\r\n          radio_dis[i] = 0;\r\n          radio_all[i] = 0;\r\n        }\r\n        this.options_dis.xAxis[0].data = xAxisData;\r\n        this.options_all.xAxis[0].data = xAxisData;\r\n\r\n        // 鑾峰彇闈炴硶鐢靛彴缁熻鏁版嵁\r\n        this.$getJSON(\"/stat/illegal_radio_distinct\", {\r\n          yearMonth: this.month\r\n        }).then(res => {\r\n          for (let i = 0; i < res.data.length; i++) {\r\n            let row = res.data[i];\r\n            radio_dis[row[\"day\"] - 1] = row[\"num\"];\r\n          }\r\n          // 灏嗘暟鎹缃埌鍥捐〃\r\n          this.options_dis.series[0].data = radio_dis;\r\n\r\n          // 鏇存敼鏍囬涓殑鏃堕棿\r\n          this.options_dis.title.text =\r\n            \"闈炴硶鐢靛彴缁熻锛圽" +\r\n            this.month.split(\"-\")[0] +\r\n            \"骞碶" +\r\n            this.month.split(\"-\")[1] +\r\n            \"鏈堬級\";\r\n        });\r\n\r\n        // 鑾峰彇闈炴硶鐢靛彴涓婃姤娆℃暟缁熻鏁版嵁\r\n        this.$getJSON(\"/stat/illegal_radio_all\", {\r\n          yearMonth: this.month\r\n        }).then(res => {\r\n          for (let i = 0; i < res.data.length; i++) {\r\n            let row = res.data[i];\r\n            radio_all[row[\"day\"] - 1] = row[\"num\"];\r\n          }\r\n          // 灏嗘暟鎹缃埌鍥捐〃\r\n          this.options_all.series[0].data = radio_all;\r\n\r\n          // 鏇存敼鏍囬涓殑鏃堕棿\r\n          this.options_all.title.text =\r\n            \"闈炴硶鐢靛彴鐩戞祴涓婃姤娆℃暟缁熻锛圽" +\r\n            this.month.split(\"-\")[0] +\r\n            \"骞碶" +\r\n            this.month.split(\"-\")[1] +\r\n            \"鏈堬級\";\r\n        });\r\n      }\r\n    }\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/RadioStat.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('el-row',{staticStyle:{\"height\":\"50%\"}},[_c('el-col',{staticStyle:{\"height\":\"100%\",\"text-align\":\"center\"},attrs:{\"span\":24}},[_c('chart',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\"},attrs:{\"auto-resize\":true,\"options\":_vm.options_dis}})],1)],1),_vm._v(\" \"),_c('el-row',{staticStyle:{\"height\":\"50%\",\"position\":\"relative\"}},[_c('el-col',{staticStyle:{\"height\":\"100%\"},attrs:{\"span\":24}},[_c('chart',{staticStyle:{\"width\":\"100%\",\"height\":\"calc(100% - 30px)\"},attrs:{\"auto-resize\":true,\"options\":_vm.options_all}}),_vm._v(\" \"),_c('div',{staticStyle:{\"height\":\"30px\",\"padding-left\":\"30px\"}},[_vm._v(\"\\n        閫夋嫨缁熻鏃堕棿娈碉紙鎸夋湀锛夛細\\n        \"),_c('el-date-picker',{staticStyle:{\"width\":\"110px\"},attrs:{\"type\":\"month\",\"format\":\"yyyy-MM\",\"value-format\":\"yyyy-MM\",\"placeholder\":\"閫夋嫨鏈圽",\"size\":\"mini\",\"clearable\":false},model:{value:(_vm.month),callback:function ($$v) {_vm.month=$$v},expression:\"month\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-7e340f4f\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/RadioStat.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7e340f4f\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./RadioStat.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./RadioStat.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./RadioStat.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7e340f4f\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./RadioStat.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-7e340f4f\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/RadioStat.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-3e604209\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/RunningStat.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3e604209\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./RunningStat.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./RunningStat.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./RunningStat.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3e604209\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./RunningStat.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3e604209\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/RunningStat.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n  </div>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    data() {\r\n      return {};\r\n    },\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/RunningStat.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-10a1c18f\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/OuterWarning.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-10a1c18f\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./OuterWarning.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./OuterWarning.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./OuterWarning.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-10a1c18f\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./OuterWarning.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-10a1c18f\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/OuterWarning.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n  </div>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    data() {\r\n      return {};\r\n    },\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/OuterWarning.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-7daa3554\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/InnerWarning.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7daa3554\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./InnerWarning.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./InnerWarning.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./InnerWarning.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7daa3554\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./InnerWarning.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-7daa3554\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/InnerWarning.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n  </div>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    data() {\r\n      return {};\r\n    },\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/InnerWarning.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-0d7fd088\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/ReportTemplate.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0d7fd088\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./ReportTemplate.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ReportTemplate.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ReportTemplate.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0d7fd088\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./ReportTemplate.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-0d7fd088\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/ReportTemplate.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n  </div>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    data() {\r\n      return {};\r\n    },\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/ReportTemplate.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-57dbe7ca\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./src/pages/ReportDownload.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-57dbe7ca\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./ReportDownload.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ReportDownload.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ReportDownload.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-57dbe7ca\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./ReportDownload.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-57dbe7ca\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/pages/ReportDownload.vue\n// module id = null\n// module chunks = ","<template>\r\n  <div style=\"height:100%;\">\r\n  </div>\r\n</template>\r\n<script>\r\n  export default {\r\n    components: {},\r\n    data() {\r\n      return {};\r\n    },\r\n  };\r\n\r\n</script>\r\n<style scoped>\r\n\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/pages/ReportDownload.vue","import Vue from 'vue'\r\nimport Router from 'vue-router'\r\nimport Login from '@/pages/Login'\r\nimport Main from '@/pages/Main'\r\nimport WhiteList from '@/pages/WhiteList'\r\nimport Map from '@/pages/Map'\r\nimport PeriodTask from '@/pages/PeriodTask'\r\nimport DeviceInfo from '@/pages/DeviceInfo'\r\nimport Device from '@/pages/Device'\r\nimport TaskRdAll from '@/pages/TaskRdAll'\r\nimport ScanRdAll from '@/pages/ScanRdAll'\r\nimport DeviceHeatmap from '@/pages/DeviceHeatmap'\r\nimport DeviceGridDensity from '@/pages/DeviceGridDensity'\r\nimport Chart from '@/pages/Chart'\r\nimport IllegalRadioGridDensity from '@/pages/IllegalRadioGridDensity'\r\nimport IllegalRadioConfirm from '@/pages/IllegalRadioConfirm'\r\nimport Keywords from '@/pages/Keywords'\r\nimport MapAPI from '@/pages/MapAPI'\r\nimport TaskStat from '@/pages/TaskStat'\r\nimport RadioStat from '@/pages/RadioStat'\r\nimport RunningStat from '@/pages/RunningStat'\r\nimport OuterWarning from '@/pages/OuterWarning'\r\nimport InnerWarning from '@/pages/InnerWarning'\r\nimport ReportTemplate from '@/pages/ReportTemplate'\r\nimport ReportDownload from '@/pages/ReportDownload'\r\n\r\n\r\n\r\nVue.use(Router)\r\n\r\nexport default new Router({\r\n  routes: [{\r\n      path: '/',\r\n      name: 'Login',\r\n      component: Login\r\n    },\r\n    {\r\n      path: '/MapAPI',\r\n      name: 'MapAPI',\r\n      component: MapAPI\r\n    },\r\n    {\r\n      path: '/main',\r\n      name: 'Main',\r\n      component: Main,\r\n      children: [{\r\n          path: '/',\r\n          component: Chart\r\n        },\r\n        {\r\n          path: '/WhiteList',\r\n          component: WhiteList\r\n        },\r\n        {\r\n          path: '/Map',\r\n          component: Map\r\n        },\r\n        {\r\n          path: '/PeriodTask',\r\n          component: PeriodTask\r\n        },\r\n        {\r\n          path: '/Device',\r\n          component: Device\r\n        },\r\n        {\r\n          path: '/DeviceInfo/:lgid',\r\n          component: DeviceInfo\r\n        },\r\n        {\r\n          path: '/TaskRdAll',\r\n          component: TaskRdAll\r\n        },\r\n        {\r\n          path: '/ScanRdAll',\r\n          component: ScanRdAll\r\n        },\r\n        {\r\n          path: '/DeviceHeatmap',\r\n          component: DeviceHeatmap\r\n        },\r\n        {\r\n          path: '/DeviceGridDensity',\r\n          component: DeviceGridDensity\r\n        },\r\n        {\r\n          path: '/IllegalRadioGridDensity',\r\n          component: IllegalRadioGridDensity\r\n        },\r\n        {\r\n          path: '/IllegalRadioConfirm',\r\n          component: IllegalRadioConfirm\r\n        },\r\n        {\r\n          path: '/Keywords',\r\n          component: Keywords\r\n        },\r\n        {\r\n          path: '/TaskStat',\r\n          component: TaskStat\r\n        },\r\n        {\r\n          path: '/RadioStat',\r\n          component: RadioStat\r\n        },\r\n        {\r\n          path: '/RunningStat',\r\n          component: RunningStat\r\n        },\r\n        {\r\n          path: '/OuterWarning',\r\n          component: OuterWarning\r\n        },\r\n        {\r\n          path: '/InnerWarning',\r\n          component: InnerWarning\r\n        },\r\n        {\r\n          path: '/ReportTemplate',\r\n          component: ReportTemplate\r\n        },\r\n        {\r\n          path: '/ReportDownload',\r\n          component: ReportDownload\r\n        }\r\n      ]\r\n    }\r\n  ]\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","<template>\n<div class=\"echarts\"/>\n</template>\n\n<style>\n.echarts {\n  width: 600px;\n  height: 400px;\n}\n</style>\n\n<script>\nimport echarts from 'echarts/lib/echarts'\nimport debounce from 'lodash/debounce'\nimport { addListener, removeListener } from 'resize-detector'\n\n// enumerating ECharts events for now\nconst EVENTS = [\n  'legendselectchanged',\n  'legendselected',\n  'legendunselected',\n  'legendunscroll',\n  'datazoom',\n  'datarangeselected',\n  'timelinechanged',\n  'timelineplaychanged',\n  'restore',\n  'dataviewchanged',\n  'magictypechanged',\n  'geoselectchanged',\n  'geoselected',\n  'geounselected',\n  'pieselectchanged',\n  'pieselected',\n  'pieunselected',\n  'mapselectchanged',\n  'mapselected',\n  'mapunselected',\n  'axisareaselected',\n  'focusnodeadjacency',\n  'unfocusnodeadjacency',\n  'brush',\n  'brushselected',\n  'rendered',\n  'finished',\n  'click',\n  'dblclick',\n  'mouseover',\n  'mouseout',\n  'mousemove',\n  'mousedown',\n  'mouseup',\n  'globalout',\n  'contextmenu'\n]\n\nexport default {\n  props: {\n    options: Object,\n    theme: [String, Object],\n    initOptions: Object,\n    group: String,\n    autoResize: Boolean,\n    watchShallow: Boolean,\n    manualUpdate: Boolean\n  },\n  data () {\n    return {\n      lastArea: 0\n    }\n  },\n  watch: {\n    group (group) {\n      this.chart.group = group\n    }\n  },\n  methods: {\n    // provide a explicit merge option method\n    mergeOptions (options, notMerge, lazyUpdate) {\n      if (this.manualUpdate) {\n        this.manualOptions = options\n      }\n\n      if (!this.chart) {\n        this.init()\n      } else {\n        this.delegateMethod('setOption', options, notMerge, lazyUpdate)\n      }\n    },\n    // just delegates ECharts methods to Vue component\n    // use explicit params to reduce transpiled size for now\n    appendData (params) {\n      this.delegateMethod('appendData', params)\n    },\n    resize (options) {\n      this.delegateMethod('resize', options)\n    },\n    dispatchAction (payload) {\n      this.delegateMethod('dispatchAction', payload)\n    },\n    convertToPixel (finder, value) {\n      return this.delegateMethod('convertToPixel', finder, value)\n    },\n    convertFromPixel (finder, value) {\n      return this.delegateMethod('convertFromPixel', finder, value)\n    },\n    containPixel (finder, value) {\n      return this.delegateMethod('containPixel', finder, value)\n    },\n    showLoading (type, options) {\n      this.delegateMethod('showLoading', type, options)\n    },\n    hideLoading () {\n      this.delegateMethod('hideLoading')\n    },\n    getDataURL (options) {\n      return this.delegateMethod('getDataURL', options)\n    },\n    getConnectedDataURL (options) {\n      return this.delegateMethod('getConnectedDataURL', options)\n    },\n    clear () {\n      this.delegateMethod('clear')\n    },\n    dispose () {\n      this.delegateMethod('dispose')\n    },\n    delegateMethod (name, ...args) {\n      if (!this.chart) {\n        this.init()\n      }\n      return this.chart[name](...args)\n    },\n    delegateGet (name, method) {\n      if (!this.chart) {\n        this.init()\n      }\n      return this.chart[method]()\n    },\n    getArea () {\n      return this.$el.offsetWidth * this.$el.offsetHeight\n    },\n    init () {\n      if (this.chart) {\n        return\n      }\n\n      let chart = echarts.init(this.$el, this.theme, this.initOptions)\n\n      if (this.group) {\n        chart.group = this.group\n      }\n\n      chart.setOption(this.manualOptions || this.options || {}, true)\n\n      // expose ECharts events as custom events\n      EVENTS.forEach(event => {\n        chart.on(event, params => {\n          this.$emit(event, params)\n        })\n      })\n\n      if (this.autoResize) {\n        this.lastArea = this.getArea()\n        this.__resizeHandler = debounce(() => {\n          if (this.lastArea === 0) {\n            // emulate initial render for initially hidden charts\n            this.mergeOptions({}, true)\n            this.resize()\n            this.mergeOptions(this.options || this.manualOptions || {}, true)\n          } else {\n            this.resize()\n          }\n          this.lastArea = this.getArea()\n        }, 100, { leading: true })\n        addListener(this.$el, this.__resizeHandler)\n      }\n\n      Object.defineProperties(this, {\n        // Only recalculated when accessed from JavaScript.\n        // Won't update DOM on value change because getters\n        // don't depend on reactive values\n        width: {\n          configurable: true,\n          get: () => {\n            return this.delegateGet('width', 'getWidth')\n          }\n        },\n        height: {\n          configurable: true,\n          get: () => {\n            return this.delegateGet('height', 'getHeight')\n          }\n        },\n        isDisposed: {\n          configurable: true,\n          get: () => {\n            return !!this.delegateGet('isDisposed', 'isDisposed')\n          }\n        },\n        computedOptions: {\n          configurable: true,\n          get: () => {\n            return this.delegateGet('computedOptions', 'getOption')\n          }\n        }\n      })\n\n      this.chart = chart\n    },\n    destroy () {\n      if (this.autoResize) {\n        removeListener(this.$el, this.__resizeHandler)\n      }\n      this.dispose()\n      this.chart = null\n    },\n    refresh () {\n      if (this.chart) {\n        this.destroy()\n        this.init()\n      }\n    }\n  },\n  created () {\n    if (!this.manualUpdate) {\n      this.$watch('options', (val, oldVal) => {\n        if (!this.chart && val) {\n          this.init()\n        } else {\n          // mutating `options` will lead to merging\n          // replacing it with new reference will lead to not merging\n          // eg.\n          // `this.options = Object.assign({}, this.options, { ... })`\n          // will trigger `this.chart.setOption(val, true)\n          // `this.options.title.text = 'Trends'`\n          // will trigger `this.chart.setOption(val, false)`\n          this.chart.setOption(val, val !== oldVal)\n        }\n      }, { deep: !this.watchShallow })\n    }\n\n    let watched = ['theme', 'initOptions', 'autoResize', 'manualUpdate', 'watchShallow']\n    watched.forEach(prop => {\n      this.$watch(prop, () => {\n        this.refresh()\n      }, { deep: true })\n    })\n  },\n  mounted () {\n    // auto init if `options` is already provided\n    if (this.options) {\n      this.init()\n    }\n  },\n  activated () {\n    if (this.autoResize) {\n      this.chart && this.chart.resize()\n    }\n  },\n  beforeDestroy () {\n    if (!this.chart) {\n      return\n    }\n    this.destroy()\n  },\n  connect (group) {\n    if (typeof group !== 'string') {\n      group = group.map(chart => chart.chart)\n    }\n    echarts.connect(group)\n  },\n  disconnect (group) {\n    echarts.disConnect(group)\n  },\n  registerMap (mapName, geoJSON, specialAreas) {\n    echarts.registerMap(mapName, geoJSON, specialAreas)\n  },\n  registerTheme (name, theme) {\n    echarts.registerTheme(name, theme)\n  },\n  graphic: echarts.graphic\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// node_modules/_vue-echarts@3.1.3@vue-echarts/components/ECharts.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"echarts\"})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/template-compiler?{\"id\":\"data-v-187c643b\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.3@vue-loader/lib/selector.js?type=template&index=0!./node_modules/_vue-echarts@3.1.3@vue-echarts/components/ECharts.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n  require(\"!!../../_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../_vue-loader@13.7.3@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-187c643b\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../_vue-loader@13.7.3@vue-loader/lib/selector?type=styles&index=0!./ECharts.vue\")\n}\nvar normalizeComponent = require(\"!../../_vue-loader@13.7.3@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ECharts.vue\"\nimport __vue_script__ from \"!!babel-loader!../../_vue-loader@13.7.3@vue-loader/lib/selector?type=script&index=0!./ECharts.vue\"\n/* template */\nimport __vue_template__ from \"!!../../_vue-loader@13.7.3@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-187c643b\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../_vue-loader@13.7.3@vue-loader/lib/selector?type=template&index=0!./ECharts.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __vue_script__,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-echarts@3.1.3@vue-echarts/components/ECharts.vue\n// module id = null\n// module chunks = ","// The Vue build version to load with the `import` command\r\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\r\nimport Vue from 'vue';\r\nimport App from './App';\r\nimport router from './router';\r\nimport ElementUI from 'element-ui';\r\nimport 'element-ui/lib/theme-chalk/index.css';\r\nimport './assets/Iconfont/iconfont.css';\r\nimport axios from \"axios\";\r\nimport BaiduMap from 'vue-baidu-map';\r\nimport VCharts from 'v-charts';\r\nimport Aplayer from 'vue-aplayer';\r\nimport VueClipboard from 'vue-clipboard2';\r\nimport ECharts from 'vue-echarts/components/ECharts';\r\n\r\n/*********************************************缁勪欢浣跨敤***********************************************/\r\n//\r\n//鍓创鏉跨粍浠禱r\nVue.use(VueClipboard);\r\n\r\n//闊抽鎾斁缁勪欢\r\nAplayer.disableVersionBadge = true;\r\nVue.component(\"Aplayer\", Aplayer);\r\n\r\n//鐧惧害鍦板浘缁勪欢\r\nVue.use(BaiduMap, {\r\n  ak: 'z9NzOPtvca64SmTiLu2vlmlhHfFCd5Z2'\r\n});\r\n\r\n//echarts鐨勫畼鏂箆ue鎺ㄨ崘缁勪欢\r\nVue.component(\"chart\", ECharts);\r\n\r\n//echarts鐨剉ue缁勪欢\r\nVue.use(VCharts);\r\n\r\n//element缁勪欢\r\nVue.use(ElementUI);\r\n\r\n/*********************************************鍏ㄥ眬鏂规硶***********************************************/\r\nVue.config.productionTip = false;\r\n\r\nVue.prototype.$ajax = axios;\r\n\r\nVue.prototype.$getJSON = function (url, params) {\r\n  for (let param in params) {\r\n    switch (typeof params[param]) {\r\n      case 'object':\r\n        params[param] = JSON.stringify(params[param]);\r\n    }\r\n  }\r\n  return new Promise((resolve, rejects) => {\r\n    axios\r\n      .get(url, {\r\n        params: params\r\n      })\r\n      .then(response => {\r\n        resolve(response.data)\r\n      })\r\n      .catch(error => {\r\n        console.log(error);\r\n      });\r\n  })\r\n};\r\n\r\n//鍏ㄥ眬鏂规硶 鎾斁褰曢煶鏂囦欢 frequency鍜宼ime鐢ㄦ潵褰撳仛鏍囬鏄剧ず\r\n//鎾斁浣跨敤绗笁鏂规彃浠� 浠lement 鐨� notification褰㈠紡鏄剧ず\r\nVue.prototype.$playAudio = function (radioFile, frequency, time) {\r\n  const h = this.$createElement;\r\n  let message = h('Aplayer', {\r\n    attrs: {\r\n      music: {\r\n        src: radioFile,\r\n        title: frequency,\r\n        artist: time\r\n      },\r\n      autoplay: true,\r\n      style: \"width:290px;left:-12px;\"\r\n    }\r\n  }, []);\r\n  this.$notify.closeAll(); //鍏抽棴鎵�鏈夌殑notification瀹炰緥\r\n  this.$notify({\r\n    title: \"褰曢煶鎾斁\",\r\n    message: message,\r\n    duration: 0\r\n  });\r\n};\r\n\r\nDate.prototype.format = function (fmt) {\r\n  var o = {\r\n    \"M+\": this.getMonth() + 1, //鏈堜唤 \r\n    \"d+\": this.getDate(), //鏃� \r\n    \"h+\": this.getHours(), //灏忔椂 \r\n    \"m+\": this.getMinutes(), //鍒� \r\n    \"s+\": this.getSeconds(), //绉� \r\n    \"q+\": Math.floor((this.getMonth() + 3) / 3), //瀛e害 \r\n    \"S\": this.getMilliseconds() //姣 \r\n  };\r\n  if (/(y+)/.test(fmt)) {\r\n    fmt = fmt.replace(RegExp.$1, (this.getFullYear() + \"\").substr(4 - RegExp.$1.length));\r\n  }\r\n  for (var k in o) {\r\n    if (new RegExp(\"(\" + k + \")\").test(fmt)) {\r\n      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((\"00\" + o[k]).substr((\"\" + o[k]).length)));\r\n    }\r\n  }\r\n  return fmt;\r\n\r\n}\r\n\r\n//鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦ㄦ煇鍏冪礌\r\nArray.prototype.in_array = function (element) {\r\n  for (var i = 0; i < this.length; i++) {\r\n    if (this[i] == element) {\r\n      return true;\r\n    }\r\n  }\r\n  return false;\r\n}\r\n\r\n//鏈�灏忓�糪r\nArray.prototype.min = function () {\r\n  var min = this[0];\r\n  var len = this.length;\r\n  for (var i = 1; i < len; i++) {\r\n    if (this[i] < min) {\r\n      min = this[i];\r\n    }\r\n  }\r\n  return min;\r\n}\r\n//鏈�澶у�糪r\nArray.prototype.max = function () {\r\n  var max = this[0];\r\n  var len = this.length;\r\n  for (var i = 1; i < len; i++) {\r\n    if (this[i] > max) {\r\n      max = this[i];\r\n    }\r\n  }\r\n  return max;\r\n}\r\n\r\n\r\n/* eslint-disable no-new */\r\nnew Vue({\r\n  el: '#app',\r\n  router,\r\n  components: {\r\n    App\r\n  },\r\n  template: '<App/>'\r\n})\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""}
\ No newline at end of file
diff --git a/server/public/static/js/manifest.2ae2e69a05c33dfc65f8.js b/server/public/static/js/manifest.2ae2e69a05c33dfc65f8.js
deleted file mode 100644
index bc39e8e..0000000
--- a/server/public/static/js/manifest.2ae2e69a05c33dfc65f8.js
+++ /dev/null
@@ -1,2 +0,0 @@
-!function(r){var n=window.webpackJsonp;window.webpackJsonp=function(e,u,c){for(var f,i,p,a=0,l=[];a<e.length;a++)i=e[a],o[i]&&l.push(o[i][0]),o[i]=0;for(f in u)Object.prototype.hasOwnProperty.call(u,f)&&(r[f]=u[f]);for(n&&n(e,u,c);l.length;)l.shift()();if(c)for(a=0;a<c.length;a++)p=t(t.s=c[a]);return p};var e={},o={2:0};function t(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return r[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=r,t.c=e,t.d=function(r,n,e){t.o(r,n)||Object.defineProperty(r,n,{configurable:!1,enumerable:!0,get:e})},t.n=function(r){var n=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(n,"a",n),n},t.o=function(r,n){return Object.prototype.hasOwnProperty.call(r,n)},t.p="/",t.oe=function(r){throw console.error(r),r}}([]);
-//# sourceMappingURL=manifest.2ae2e69a05c33dfc65f8.js.map
\ No newline at end of file
diff --git a/server/public/static/js/manifest.2ae2e69a05c33dfc65f8.js.map b/server/public/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
deleted file mode 100644
index 8a695b9..0000000
--- a/server/public/static/js/manifest.2ae2e69a05c33dfc65f8.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap 35cbbcdcb2db9793557c"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","2","exports","module","l","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAAT,EAGAE,EAAAQ,EAAAN,EAGAF,EAAAS,EAAA,SAAAL,EAAAM,EAAAC,GACAX,EAAAY,EAAAR,EAAAM,IACAhB,OAAAmB,eAAAT,EAAAM,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMAX,EAAAiB,EAAA,SAAAZ,GACA,IAAAM,EAAAN,KAAAa,WACA,WAA2B,OAAAb,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAAS,EAAAE,EAAA,IAAAA,GACAA,GAIAX,EAAAY,EAAA,SAAAO,EAAAC,GAAsD,OAAA1B,OAAAC,UAAAC,eAAAC,KAAAsB,EAAAC,IAGtDpB,EAAAqB,EAAA,IAGArB,EAAAsB,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.2ae2e69a05c33dfc65f8.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 35cbbcdcb2db9793557c"],"sourceRoot":""}
\ No newline at end of file
diff --git a/server/public/static/js/vendor.99a6983ff19cf979eed3.js b/server/public/static/js/vendor.99a6983ff19cf979eed3.js
deleted file mode 100644
index b175fa9..0000000
--- a/server/public/static/js/vendor.99a6983ff19cf979eed3.js
+++ /dev/null
@@ -1,36 +0,0 @@
-webpackJsonp([0],{"+17g":function(e,t,n){var i=n("Ln8f"),r=n("L3JW"),a=n("GKMz"),o=a.isString,s=a.isFunction,l=a.isObject,u=a.isArrayLike,c=a.indexOf,d=function(){this.animators=[]};d.prototype={constructor:d,animate:function(e,t){var n,a=!1,o=this,s=this.__zr;if(e){var l=e.split("."),u=o;a="shape"===l[0];for(var d=0,h=l.length;d<h;d++)u&&(u=u[l[d]]);u&&(n=u)}else n=o;if(n){var f=o.animators,p=new i(n,t);return p.during(function(e){o.dirty(a)}).done(function(){f.splice(c(f,p),1)}),f.push(p),s&&s.animation.addAnimator(p),p}r('Property "'+e+'" is not existed in element '+o.id)},stopAnimation:function(e){for(var t=this.animators,n=t.length,i=0;i<n;i++)t[i].stop(e);return t.length=0,this},animateTo:function(e,t,n,i,r,a){o(n)?(r=i,i=n,n=0):s(i)?(r=i,i="linear",n=0):s(n)?(r=n,n=0):s(t)?(r=t,t=500):t||(t=500),this.stopAnimation(),this._animateToShallow("",this,e,t,n);var l=this.animators.slice(),u=l.length;function c(){--u||r&&r()}u||r&&r();for(var d=0;d<l.length;d++)l[d].done(c).start(i,a)},_animateToShallow:function(e,t,n,i,r){var a={},o=0;for(var s in n)if(n.hasOwnProperty(s))if(null!=t[s])l(n[s])&&!u(n[s])?this._animateToShallow(e?e+"."+s:s,t[s],n[s],i,r):(a[s]=n[s],o++);else if(null!=n[s])if(e){var c={};c[e]={},c[e][s]=n[s],this.attr(c)}else this.attr(s,n[s]);return o>0&&this.animate(e,!1).when(null==i?500:i,a).delay(r||0),this}};var h=d;e.exports=h},"+BVR":function(e,t,n){var i=n("/MtV"),r=n("WqZQ"),a=i.extendComponentView({type:"axisPointer",render:function(e,t,n){var i=t.getComponent("tooltip"),a=e.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";r.register("axisPointer",n,function(e,t,n){"none"!==a&&("leave"===e||a.indexOf(e)>=0)&&n({type:"updateAxisPointer",currTrigger:e,x:t&&t.offsetX,y:t&&t.offsetY})})},remove:function(e,t){r.unregister(t.getZr(),"axisPointer"),a.superApply(this._model,"remove",arguments)},dispose:function(e,t){r.unregister("axisPointer",t),a.superApply(this._model,"dispose",arguments)}}),o=a;e.exports=o},"+BxT":function(e,t,n){var i;i=function(e){"use strict";e=e&&e.hasOwnProperty("default")?e.default:e;var t={categoryAxis:{axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},valueAxis:{axisLine:{show:!1}},line:{smooth:!0},grid:{containLabel:!0,left:10,right:10}},n=["#19d4ae","#5ab1ef","#fa6e86","#ffb980","#0067a6","#c4b4e4","#d87a80","#9cbbff","#d9d0c7","#87a997","#d49ea2","#5b4947","#7ba3a8"],i=["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"],r=["blue","blue","green","yellow","red"],a=function(e){return['<span style="',"background-color:"+e+";","display: inline-block;","width: 10px;","height: 10px;","border-radius: 50%;","margin-right:2px;",'"></span>'].join("")},o=["initOptions","loading","dataEmpty","judgeWidth","widthChangeDelay"],s=["grid","dataZoom","visualMap","toolbox","title","legend","xAxis","yAxis","radar","tooltip","axisPointer","brush","geo","timeline","graphic","series","backgroundColor","textStyle"],l={th:3,mi:6,bi:9,tr:12},u={zeroFormat:null,nullFormat:null,defaultFormat:"0,0",scalePercentBy100:!0,abbrLabel:{th:"k",mi:"m",bi:"b",tr:"t"}},c=1e12,d=1e9,h=1e6,f=1e3;function p(e,t,n,i){var r=e.toString().split("."),a=t-(i||0),o=2===r.length?Math.min(Math.max(r[1].length,a),t):a,s=Math.pow(10,o),l=(n(e+"e+"+o)/s).toFixed(o);if(i>t-o){var u=new RegExp("\\.?0{1,"+(i-(t-o))+"}$");l=l.replace(u,"")}return l}function m(e,t,n,i){var r=Math.abs(t),a=!1,o=!1,s="",u="",m=!1,g=void 0,v=void 0;n=n||"",t=t||0,~n.indexOf("(")?(a=!0,n=n.replace(/[(|)]/g,"")):(~n.indexOf("+")||~n.indexOf("-"))&&(v=~n.indexOf("+")?n.indexOf("+"):t<0?n.indexOf("-"):-1,n=n.replace(/[+|-]/g,"")),~n.indexOf("a")&&(g=!!(g=n.match(/a(k|m|b|t)?/))&&g[1],~n.indexOf(" a")&&(s=" "),n=n.replace(new RegExp(s+"a[kmbt]?"),""),r>=c&&!g||"t"===g?(s+=e.abbrLabel.tr,t/=c):r<c&&r>=d&&!g||"b"===g?(s+=e.abbrLabel.bi,t/=d):r<d&&r>=h&&!g||"m"===g?(s+=e.abbrLabel.mi,t/=h):(r<h&&r>=f&&!g||"k"===g)&&(s+=e.abbrLabel.th,t/=f)),~n.indexOf("[.]")&&(o=!0,n=n.replace("[.]","."));var y=t.toString().split(".")[0],b=n.split(".")[1],_=n.indexOf(","),x=(n.split(".")[0].split(",")[0].match(/0/g)||[]).length;if(b?(y=(u=~b.indexOf("[")?p(t,(b=(b=b.replace("]","")).split("["))[0].length+b[1].length,i,b[1].length):p(t,b.length,i)).split(".")[0],u=~u.indexOf(".")?"."+u.split(".")[1]:"",o&&0==+u.slice(1)&&(u="")):y=p(t,0,i),s&&!g&&+y>=1e3&&s!==l.trillion&&(y=""+ +y/1e3,s=l.million),~y.indexOf("-")&&(y=y.slice(1),m=!0),y.length<x)for(var w=x-y.length;w>0;w--)y="0"+y;_>-1&&(y=y.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")),n.indexOf(".")||(y="");var S=y+u+(s||"");return a?S=(a&&m?"(":"")+S+(a&&m?")":""):v>=0?S=0===v?(m?"-":"+")+S:S+(m?"-":"+"):m&&(S="-"+S),S}function g(e,t){Object.keys(t).forEach(function(n){e[n]=t[n]})}var v={},y={};function b(e,t,n){return function(e,t,n){t=t||v.defaultFormat,n=n||Math.round;var i=void 0,r=void 0;if(0===e&&null!==v.zeroFormat)i=v.zeroFormat;else if(null===e&&null!==v.nullFormat)i=v.nullFormat;else{for(var a in y)if(y[a]&&t.match(y[a].regexp)){r=y[a].format;break}i=(r=r||m.bind(null,v))(e,t,n,b)}return i}(0===e||void 0===e?0:null===e||function(e){return"number"==typeof e&&isNaN(e)}(e)?null:"string"==typeof e?v.zeroFormat&&e===v.zeroFormat?0:v.nullFormat&&e===v.nullFormat||!e.replace(/[^0-9]+/g,"").length?null:+e:+e||null,t,n)}g(v,u),b.options=v,b._numberToFormat=m.bind(null,v),b.register=function(e,t){y[e]=t},b.unregister=function(e){y[e]=null},b.setOptions=function(e){g(v,e)},b.reset=function(){g(v,u)},b.register("percentage",{regexp:/%/,format:function(e,t,n,i){var r=~t.indexOf(" %")?" ":"",a=void 0;return i.options.scalePercentBy100&&(e*=100),t=t.replace(/\s?%/,""),~(a=i._numberToFormat(e,t,n)).indexOf(")")?((a=a.split("")).splice(-1,0,r+"%"),a=a.join("")):a=a+r+"%",a}});var _="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},w=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},S=function(e){return Array.isArray(e)?e:Array.from(e)};function C(e,t){var n=null;return function(){var i=this,r=arguments;clearTimeout(n),n=setTimeout(function(){e.apply(i,r)},t)}}function M(e,t,n){if(t){var i=e,r=t.split(".");r.forEach(function(e,t){t===r.length-1?i[e]=n:(i[e]||(i[e]={}),i=i[e])})}}var k="function"==typeof Symbol&&"symbol"===_(Symbol.iterator)?function(e){return void 0===e?"undefined":_(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":_(e)};function T(e){return Object.prototype.toString.call(e)}function A(e){return void 0===e?"undefined":k(e)}function I(e){return"[object Object]"===T(e)}function E(e){return"[object Array]"===T(e)}function D(e){return JSON.parse(JSON.stringify(e))}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"-";if(isNaN(e))return i;if(!t)return e;if("[object Function]"===T(t))return t(e,b);n=isNaN(n)?0:++n;var r=".["+new Array(n).join(0)+"]",a=t;switch(t){case"KMB":a=n?"0,0"+r+"a":"0,0a";break;case"normal":a=n?"0,0"+r:"0,0";break;case"percent":a=n?"0,0"+r+"%":"0,0.[00]%"}return b(e,a)},L=function(e){var t={};return Object.keys(e).forEach(function(n){e[n].forEach(function(e){t[e]=n})}),t},R={},N=function(e){var t,n=e.position,i=e.positionJsonLink,r=e.beforeRegisterMapOnce,a=e.mapURLProfix,o=i||""+a+n+".json";return R[o]||(R[o]=(t=o,new Promise(function(e,n){var i=new XMLHttpRequest;i.open("GET",t),i.send(null),i.onload=function(){e(JSON.parse(i.responseText))},i.onerror=function(){n(JSON.parse(i.responseText))}})).then(function(e){return r&&(e=r(e)),e})),R[o]},B=null,F=null,z=function(e,t){return B||(B=new Promise(function(n,i){var r="bmap"+Date.now();window[r]=n;var a=document.createElement("script");a.src=["https://api.map.baidu.com/api?v="+(t||"2.0"),"ak="+e,"callback="+r].join("&"),document.body.appendChild(a)})),B},V=function(e,t){return F||(F=new Promise(function(n,i){var r="amap"+Date.now();window[r]=n;var a=document.createElement("script");a.src=["https://webapi.amap.com/maps?v="+(t||"1.4.3"),"key="+e,"callback="+r].join("&"),document.body.appendChild(a)})),F},$=.5;function G(e){var t=e.innerRows,n=e.dimAxisName,i=e.dimension,r=e.axisVisible,a=e.dimAxisType,o=e.dims;return i.map(function(e){return{type:"category",name:n,nameLocation:"middle",nameGap:22,data:"value"===a?function(e){for(var t=Math.max.apply(null,e),n=[],i=Math.min.apply(null,e);i<=t;i++)n.push(i);return n}(o):t.map(function(t){return t[e]}),axisLabel:{formatter:function(e){return String(e)}},show:r}})}function j(e){for(var t=e.meaAxisName,n=e.meaAxisType,i=e.axisVisible,r=e.digit,a=e.scale,o=e.min,s=e.max,l={type:"value",axisTick:{show:!1},show:i},u=[],c=function(e){n[e]?u[e]=w({},l,{axisLabel:{formatter:function(t){return P(t,n[e],r)}}}):u[e]=w({},l),u[e].name=t[e]||"",u[e].scale=a[e]||!1,u[e].min=o[e]||null,u[e].max=s[e]||null},d=0;d<2;d++)c(d);return u}function H(e){var t=e.axisSite,n=e.isHistogram,i=e.meaAxisType,r=e.digit,o=e.labelMap,s=n?t.right||[]:t.top||[];return o&&(s=s.map(function(e){return void 0===o[e]?e:o[e]})),{trigger:"axis",formatter:function(e){var t=[];return t.push(e[0].name+"<br>"),e.forEach(function(e){var n=e.seriesName,o=~s.indexOf(n)?i[1]:i[0];t.push(a(e.color)),t.push(n+": "),t.push(P(e.value,o,r)),t.push("<br>")}),t.join("")}}}function W(e){var t,n=e.innerRows,i=e.metrics,r=e.stack,a=e.axisSite,o=e.isHistogram,s=e.labelMap,l=e.itemStyle,u=e.label,c=e.showLine,d=void 0===c?[]:c,h=e.dimAxisType,f=e.barGap,p=e.opacity,m=e.dims,g={},v=o?a.right||[]:a.top||[],y=o?"yAxisIndex":"xAxisIndex",b=r&&L(r);return i.forEach(function(e){g[e]=[]}),n.forEach(function(e){i.forEach(function(t){g[t].push(e[t])})}),!!(t=Object.keys(g).map(function(e,t){var n="value"===h?function(e,t){for(var n=Math.max.apply(null,t),i=[],r=Math.min.apply(null,t);r<=n;r++){var a=t.indexOf(r);~a?i.push(e[a]):i.push(null)}return i}(g[e],m):g[e],i=x({name:null!=s[e]?s[e]:e,type:~d.indexOf(e)?"line":"bar",data:n},y,~v.indexOf(e)?"1":"0");r&&b[e]&&(i.stack=b[e]),u&&(i.label=u),l&&(i.itemStyle=l);var a=p||function(e,t,n){if(!t)return e;var i=e;return t.split(".").some(function(e,t){if(void 0===i[e])return i=n,!0;i=i[e]}),i}(i,"itemStyle.normal.opacity");return"value"===h&&(i.barGap=f,i.barCategoryGap="1%",null==a&&(a=$)),null!=a&&M(i,"itemStyle.normal.opacity",a),i})).length&&t}function U(e){var t=e.metrics,n=e.labelMap,i=e.legendName;return i||n?{data:n?t.map(function(e){return null==n[e]?e:n[e]}):t,formatter:function(e){return null!=i[e]?i[e]:e}}:{data:t}}function K(e,t){return e.map(function(e){return e[t[0]]})}var q=function(e,t,n,i){var r=D(t),a=n.axisSite,o=void 0===a?{}:a,s=n.dimension,l=void 0===s?[e[0]]:s,u=n.stack,c=void 0===u?{}:u,d=n.axisVisible,h=void 0===d||d,f=n.digit,p=void 0===f?2:f,m=n.dataOrder,g=void 0!==m&&m,v=n.scale,y=void 0===v?[!1,!1]:v,b=n.min,_=void 0===b?[null,null]:b,x=n.max,w=void 0===x?[null,null]:x,S=n.legendName,C=void 0===S?{}:S,M=n.labelMap,k=void 0===M?{}:M,T=n.label,A=n.itemStyle,I=n.showLine,E=n.barGap,O=void 0===E?"-100%":E,P=n.opacity,L=i.tooltipVisible,R=i.legendVisible,N=e.slice();o.top&&o.bottom?N=o.top.concat(o.bottom):o.bottom&&!o.right?N=o.bottom:n.metrics?N=n.metrics:N.splice(e.indexOf(l[0]),1);var B=n.xAxisType||["normal","normal"],F=n.yAxisType||"category",z=n.xAxisName||[],V=n.yAxisName||"";if(g){var $=g.label,q=g.order;$&&q?r.sort(function(e,t){return"desc"===q?e[$]-t[$]:t[$]-e[$]}):console.warn("Need to provide name and order parameters")}var Y=K(r,l),Z=R&&U({metrics:N,labelMap:k,legendName:C}),X=G({innerRows:r,dimAxisName:V,dimension:l,axisVisible:h,dimAxisType:F,dims:Y}),J=j({meaAxisName:z,meaAxisType:B,axisVisible:h,digit:p,scale:y,min:_,max:w});return{legend:Z,yAxis:X,series:W({innerRows:r,metrics:N,stack:c,axisSite:o,isHistogram:!1,labelMap:k,itemStyle:A,label:T,showLine:I,dimAxisType:F,dimension:l,barGap:O,opacity:P,dims:Y}),xAxis:J,tooltip:L&&H({axisSite:o,isHistogram:!1,meaAxisType:B,digit:p,labelMap:k})}},Y=function(e,t,n,i){var r=D(t),a=n.axisSite,o=void 0===a?{}:a,s=n.dimension,l=void 0===s?[e[0]]:s,u=n.stack,c=void 0===u?{}:u,d=n.axisVisible,h=void 0===d||d,f=n.digit,p=void 0===f?2:f,m=n.dataOrder,g=void 0!==m&&m,v=n.scale,y=void 0===v?[!1,!1]:v,b=n.min,_=void 0===b?[null,null]:b,x=n.max,w=void 0===x?[null,null]:x,S=n.labelMap,C=void 0===S?{}:S,M=n.legendName,k=void 0===M?{}:M,T=n.label,A=n.itemStyle,I=n.showLine,E=n.barGap,O=void 0===E?"-100%":E,P=n.opacity;if(g){var L=g.label,R=g.order;L&&R?r.sort(function(e,t){return"desc"===R?e[L]-t[L]:t[L]-e[L]}):console.warn("Need to provide name and order parameters")}var N=i.tooltipVisible,B=i.legendVisible,F=e.slice();o.left&&o.right?F=o.left.concat(o.right):o.left&&!o.right?F=o.left:n.metrics?F=n.metrics:F.splice(e.indexOf(l[0]),1);var z=n.yAxisType||["normal","normal"],V=n.xAxisType||"category",$=n.yAxisName||[],q=n.xAxisName||"",Y=K(r,l),Z=B&&U({metrics:F,labelMap:C,legendName:k}),X=G({innerRows:r,dimAxisName:q,dimension:l,axisVisible:h,dimAxisType:V,dims:Y});return{legend:Z,yAxis:j({meaAxisName:$,meaAxisType:z,axisVisible:h,digit:p,scale:y,min:_,max:w}),series:W({innerRows:r,metrics:F,stack:c,axisSite:o,isHistogram:!0,labelMap:C,itemStyle:A,label:T,showLine:I,dimAxisType:V,dimension:l,barGap:O,opacity:P,dims:Y}),xAxis:X,tooltip:N&&H({axisSite:o,isHistogram:!0,meaAxisType:z,digit:p,labelMap:C})}},Z={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"v-charts-component-loading"},[t("div",{staticClass:"loader"},[t("div",{staticClass:"loading-spinner"},[t("svg",{staticClass:"circular",attrs:{viewBox:"25 25 50 50"}},[t("circle",{staticClass:"path",attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})])])])])},staticRenderFns:[]},X={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"v-charts-data-empty"},[this._v(" 鏆傛棤鏁版嵁 ")])},staticRenderFns:[]};function J(e,t){Object.keys(t).forEach(function(n){t[n]&&(e[n]=t[n])})}var Q={render:function(e){return e("div",{class:[(t=this.$options.name||this.$options._componentTag,t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase())],style:this.canvasStyle},[e("div",{style:this.canvasStyle,class:{"v-charts-mask-status":this.dataEmpty||this.loading},ref:"canvas"}),e(X,{style:{display:this.dataEmpty?"":"none"}}),e(Z,{style:{display:this.loading?"":"none"}}),this.$slots.default]);var t},props:{data:{type:[Object,Array],default:function(){return{}}},settings:{type:Object,default:function(){return{}}},width:{type:String,default:"auto"},height:{type:String,default:"400px"},beforeConfig:{type:Function},afterConfig:{type:Function},afterSetOption:{type:Function},afterSetOptionOnce:{type:Function},events:{type:Object},grid:{type:[Object,Array]},colors:{type:Array},tooltipVisible:{type:Boolean,default:!0},legendVisible:{type:Boolean,default:!0},legendPosition:{type:String},markLine:{type:Object},markArea:{type:Object},markPoint:{type:Object},visualMap:{type:[Object,Array]},dataZoom:{type:[Object,Array]},toolbox:{type:[Object,Array]},initOptions:{type:Object,default:function(){return{}}},title:[Object,Array],legend:[Object,Array],xAxis:[Object,Array],yAxis:[Object,Array],radar:Object,tooltip:Object,axisPointer:[Object,Array],brush:[Object,Array],geo:[Object,Array],timeline:[Object,Array],graphic:[Object,Array],series:[Object,Array],backgroundColor:[Object,String],textStyle:[Object,Array],animation:Object,theme:Object,themeName:String,loading:Boolean,dataEmpty:Boolean,extend:Object,judgeWidth:{type:Boolean,default:!1},widthChangeDelay:{type:Number,default:300},tooltipFormatter:{type:Function},resizeable:{type:Boolean,default:!0},resizeDelay:{type:Number,default:200},changeDelay:{type:Number,default:0},setOptionOpts:{type:[Boolean,Object],default:!0},cancelResizeCheck:Boolean,notSetUnchange:Array},watch:{data:{deep:!0,handler:function(e){e&&this.changeHandler()}},settings:{deep:!0,handler:function(e){e.type&&this.chartLib&&(this.chartHandler=this.chartLib[e.type]),this.changeHandler()}},width:"nextTickResize",height:"nextTickResize",events:{deep:!0,handler:"createEventProxy"},theme:{deep:!0,handler:"themeChange"},themeName:"themeChange",resizeable:"resizeableHandler"},computed:{canvasStyle:function(){return{width:this.width,height:this.height,position:"relative"}},chartColor:function(){return this.colors||this.theme&&this.theme.color||n}},methods:{dataHandler:function(){if(this.chartHandler){var e=this.data,t=e,n=t.columns,i=void 0===n?[]:n,r=t.rows,a=void 0===r?[]:r,o={tooltipVisible:this.tooltipVisible,legendVisible:this.legendVisible,echarts:this.echarts,color:this.chartColor,tooltipFormatter:this.tooltipFormatter,_once:this._once};this.beforeConfig&&(e=this.beforeConfig(e));var s=this.chartHandler(i,a,this.settings,o);s&&("function"==typeof s.then?s.then(this.optionsHandler):this.optionsHandler(s))}},nextTickResize:function(){this.$nextTick(this.resize)},resize:function(){this.cancelResizeCheck?this.echartsResize():this.$el&&this.$el.clientWidth&&this.$el.clientHeight&&this.echartsResize()},echartsResize:function(){this.echarts&&this.echarts.resize()},optionsHandler:function(t){var n=this;if(this.legendPosition&&t.legend&&(t.legend[this.legendPosition]=10,~["left","right"].indexOf(this.legendPosition)&&(t.legend.top="middle",t.legend.orient="vertical")),t.color=this.chartColor,s.forEach(function(e){n[e]&&(t[e]=n[e])}),this.animation&&function(e,t){Object.keys(t).forEach(function(n){e[n]=t[n]})}(t,this.animation),this.markArea||this.markLine||this.markPoint){var i={markArea:this.markArea,markLine:this.markLine,markPoint:this.markPoint},r=t.series;E(r)?r.forEach(function(e){J(e,i)}):I(r)&&J(r,i)}this.extend&&function(e,t){Object.keys(t).forEach(function(n){var i=t[n];~n.indexOf(".")?M(e,n,i):"function"==typeof i?e[n]=i(e[n]):E(e[n])&&I(e[n][0])?e[n].forEach(function(t,r){e[n][r]=w({},t,i)}):I(e[n])?e[n]=w({},e[n],i):e[n]=i})}(t,this.extend),this.afterConfig&&(t=this.afterConfig(t));var a=this.setOptionOpts;!this.settings.bmap&&!this.settings.amap||I(a)||(a=!1),this.notSetUnchange&&this.notSetUnchange.length&&(this.notSetUnchange.forEach(function(e){var i=t[e];i&&(!function e(t,n){if(t===n)return!0;if(null===t||null===n||"object"!==A(t)||"object"!==A(n))return t===n;for(var i in t)if(O(t,i)){var r=t[i],a=n[i],o=A(r);if("undefined"===A(a))return!1;if("object"===o){if(!e(r,a))return!1}else if(r!==a)return!1}for(var s in n)if(O(n,s)&&"undefined"===A(t)[s])return!1;return!0}(i,n._store[e])?n._store[e]=D(i):t[e]=void 0)}),I(a)?a.notMerge=!1:a=!1),this._isDestroyed||(this.echarts.setOption(t,a),this.$emit("ready",this.echarts,t,e),this._once["ready-once"]||(this._once["ready-once"]=!0,this.$emit("ready-once",this.echarts,t,e)),this.judgeWidth&&this.judgeWidthHandler(t),this.afterSetOption&&this.afterSetOption(this.echarts,t,e),this.afterSetOptionOnce&&!this._once.afterSetOptionOnce&&(this._once.afterSetOptionOnce=!0,this.afterSetOptionOnce(this.echarts,t,e)))},judgeWidthHandler:function(e){var t=this,n=this.widthChangeDelay,i=this.resize;this.$el.clientWidth||this.$el.clientHeight?i():this.$nextTick(function(e){t.$el.clientWidth||t.$el.clientHeight?i():setTimeout(function(e){i(),t.$el.clientWidth&&t.$el.clientHeight||console.warn(" Can't get dom width or height ")},n)})},resizeableHandler:function(e){e&&!this._once.onresize&&this.addResizeListener(),!e&&this._once.onresize&&this.removeResizeListener()},init:function(){if(!this.echarts){var n=this.themeName||this.theme||t;this.echarts=e.init(this.$refs.canvas,n,this.initOptions),this.data&&this.changeHandler(),this.createEventProxy(),this.resizeable&&this.addResizeListener()}},addResizeListener:function(){window.addEventListener("resize",this.resizeHandler),this._once.onresize=!0},removeResizeListener:function(){window.removeEventListener("resize",this.resizeHandler),this._once.onresize=!1},addWatchToProps:function(){var e=this,t=this._watchers.map(function(e){return e.expression});Object.keys(this.$props).forEach(function(n){if(!~t.indexOf(n)&&!~o.indexOf(n)){var i={};~["[object Object]","[object Array]"].indexOf(T(e.$props[n]))&&(i.deep=!0),e.$watch(n,function(){e.changeHandler()},i)}})},createEventProxy:function(){var e=this,t=this,n=Object.keys(this.events||{});n.length&&n.forEach(function(n){-1===e.registeredEvents.indexOf(n)&&(e.registeredEvents.push(n),e.echarts.on(n,function(e){return function(){if(e in t.events){for(var n=arguments.length,i=Array(n),r=0;r<n;r++)i[r]=arguments[r];t.events[e].apply(null,i)}}}(n)))})},themeChange:function(e){this.clean(),this.echarts=null,this.init()},clean:function(){this.resizeable&&this.removeResizeListener(),this.echarts.dispose()}},created:function(){this.echarts=null,this.registeredEvents=[],this._once={},this._store={},this.resizeHandler=C(this.resize,this.resizeDelay),this.changeHandler=C(this.dataHandler,this.changeDelay),this.addWatchToProps()},mounted:function(){this.init()},beforeDestroy:function(){this.clean()},_numerify:b},ee=w({},Q,{name:"VeBar",data:function(){return this.chartHandler=q,{}}}),te=w({},Q,{name:"VeHistogram",data:function(){return this.chartHandler=Y,{}}});var ne=function(e,t,n,i){t=E(t)?t:[],e=E(e)?e:[];var r=n.axisSite,a=void 0===r?{}:r,o=n.yAxisType,s=void 0===o?["normal","normal"]:o,l=n.xAxisType,u=void 0===l?"category":l,c=n.yAxisName,d=void 0===c?[]:c,h=n.dimension,f=void 0===h?[e[0]]:h,p=n.xAxisName,m=void 0===p?[]:p,g=n.axisVisible,v=void 0===g||g,y=n.area,b=n.stack,_=n.scale,x=void 0===_?[!1,!1]:_,S=n.min,C=void 0===S?[null,null]:S,M=n.max,k=void 0===M?[null,null]:M,T=n.nullAddZero,A=void 0!==T&&T,I=n.digit,D=void 0===I?2:I,O=n.legendName,R=void 0===O?{}:O,N=n.labelMap,B=void 0===N?{}:N,F=n.label,z=n.itemStyle,V=n.lineStyle,$=n.areaStyle,G=i.tooltipVisible,j=i.legendVisible,H=i.tooltipFormatter,W=e.slice();a.left&&a.right?W=a.left.concat(a.right):a.left&&!a.right?W=a.left:n.metrics?W=n.metrics:W.splice(e.indexOf(f[0]),1);var U=j&&function(e){var t=e.metrics,n=e.legendName,i=e.labelMap;return n||i?{data:i?t.map(function(e){return null==i[e]?e:i[e]}):t,formatter:function(e){return null!=n[e]?n[e]:e}}:{data:t}}({metrics:W,legendName:R,labelMap:B}),K=G&&function(e){var t=e.axisSite,n=e.yAxisType,i=e.digit,r=e.labelMap,a=e.tooltipFormatter,o=t.right||[],s=r?o.map(function(e){return void 0===r[e]?e:r[e]}):o;return{trigger:"axis",formatter:function(e){if(a)return a.apply(null,arguments);var t=[],r=e[0],o=r.name,l=r.axisValueLabel,u=o||l;return t.push(u+"<br>"),e.forEach(function(e){var r,a=e.seriesName,o=e.data,l=e.marker,u=~s.indexOf(a)?n[1]:n[0],c=E(o)?o[1]:o;r=P(c,u,i),t.push(l),t.push(a+": "+r),t.push("<br>")}),t.join("")}}}({axisSite:a,yAxisType:s,digit:D,labelMap:B,xAxisType:u,tooltipFormatter:H}),q=function(e){var t=e.dimension,n=e.rows,i=e.xAxisName,r=e.axisVisible,a=e.xAxisType;return t.map(function(e,t){return{type:a,nameLocation:"middle",nameGap:22,name:i[t]||"",axisTick:{show:!0,lineStyle:{color:"#eee"}},data:n.map(function(t){return t[e]}),show:r}})}({dimension:f,rows:t,xAxisName:m,axisVisible:v,xAxisType:u}),Y=function(e){for(var t=e.yAxisName,n=e.yAxisType,i=e.axisVisible,r=e.scale,a=e.min,o=e.max,s=e.digit,l={type:"value",axisTick:{show:!1},show:i},u=[],c=function(e){n[e]?u[e]=w({},l,{axisLabel:{formatter:function(t){return P(t,n[e],s)}}}):u[e]=w({},l),u[e].name=t[e]||"",u[e].scale=r[e]||!1,u[e].min=a[e]||null,u[e].max=o[e]||null},d=0;d<2;d++)c(d);return u}({yAxisName:d,yAxisType:s,axisVisible:v,scale:x,min:C,max:k,digit:D});return{legend:U,xAxis:q,series:function(e){var t=e.rows,n=e.axisSite,i=e.metrics,r=e.area,a=e.stack,o=e.nullAddZero,s=e.labelMap,l=e.label,u=e.itemStyle,c=e.lineStyle,d=e.areaStyle,h=e.dimension,f=[],p={},m=a&&L(a);return i.forEach(function(e){p[e]=[]}),t.forEach(function(e){i.forEach(function(t){var n=null;null!=e[t]?n=e[t]:o&&(n=0),p[t].push([e[h[0]],n])})}),i.forEach(function(e){var t={name:null!=s[e]?s[e]:e,type:"line",data:p[e]};r&&(t.areaStyle={normal:{}}),n.right&&(t.yAxisIndex=~n.right.indexOf(e)?1:0),a&&m[e]&&(t.stack=m[e]),l&&(t.label=l),u&&(t.itemStyle=u),c&&(t.lineStyle=c),d&&(t.areaStyle=d),f.push(t)}),f}({rows:t,axisSite:a,metrics:W,area:y,stack:b,nullAddZero:A,labelMap:B,label:F,itemStyle:z,lineStyle:V,areaStyle:$,xAxisType:u,dimension:f}),yAxis:Y,tooltip:K}},ie=w({},Q,{name:"VeLine",data:function(){return this.chartHandler=ne,{}}}),re=[80,100],ae=[20,100];var oe=function(e,t,n,i,r){var o=D(t),s=n.dataType,l=void 0===s?"normal":s,u=n.percentShow,c=n.dimension,d=void 0===c?e[0]:c,h=n.metrics,f=void 0===h?e[1]:h,p=n.roseType,m=void 0!==p&&p,g=n.radius,v=void 0===g?r?m?ae:re:100:g,y=n.offsetY,b=void 0===y?200:y,_=n.legendLimit,x=void 0===_?30:_,S=n.selectedMode,C=void 0!==S&&S,M=n.hoverAnimation,k=void 0===M||M,T=n.digit,A=void 0===T?2:T,I=n.legendName,E=void 0===I?{}:I,O=n.label,L=void 0!==O&&O,R=n.level,N=void 0!==R&&R,B=n.limitShowNum,F=void 0===B?0:B,z=n.labelLine,V=n.itemStyle,$=i.tooltipVisible,G=i.legendVisible;return F&&o.sort(function(e,t){return t[f]-e[f]}),{series:function(e){var t=e.innerRows,n=e.dataType,i=e.percentShow,r=e.dimension,a=e.metrics,o=e.radius,s=e.offsetY,l=e.selectedMode,u=e.hoverAnimation,c=e.digit,d=e.roseType,h=e.label,f=e.level,p=e.limitShowNum,m=e.isRing,g=e.labelLine,v=e.itemStyle,y=[],b={},_=[];f?(f.forEach(function(e,t){e.forEach(function(e){b[e]=t})}),t.forEach(function(e){var t=b[e[r]];void 0!==t&&(_[t]?_[t].push(e):_[t]=[e])})):_.push(t);var x={type:"pie",selectedMode:l,hoverAnimation:u,roseType:d,center:["50%",s]},S=_.length;if(_.forEach(function(e,t){var s=w({data:[]},x),l=o/S;if(t){var u=l+o/(2*S)*(2*t-1),d=u+o/(2*S);s.radius=[u,d]}else s.radius=m?o:l;S>1&&0===t&&(s.label={normal:{position:"inner"}}),h&&(s.label=h),g&&(s.labelLine=g),v&&(s.itemStyle=v),i&&(s.label={normal:{show:!0,position:S>1&&0===t?"inner":"outside",formatter:function(e){var t=[];return t.push(e.name+":"),t.push(P(e.value,n,c)),t.push("("+e.percent+"%)"),t.join(" ")}}}),s.data=e.map(function(e){return{name:e[r],value:e[a]}}),y.push(s)}),p&&p<y[0].data.length){var C=y[0].data,M=0;C.slice(p,C.length).forEach(function(e){M+=e.value}),y[0].data=C.slice(0,p),y[0].data.push({name:"鍏朵粬",value:M})}return y}({innerRows:o,dataType:l,percentShow:u,dimension:d,metrics:f,radius:v,offsetY:b,selectedMode:C,hoverAnimation:k,digit:A,roseType:m,label:L,level:N,legendName:E,limitShowNum:F,isRing:r,labelLine:z,itemStyle:V}),legend:G&&function(e){var t=e.innerRows,n=e.dimension,i=e.legendLimit,r=e.legendName,a=e.level,o=e.limitShowNum,s=[],l=[];if(a)a.forEach(function(e){e.forEach(function(e){l.push(e)})}),s=l;else if(o&&o<t.length){for(var u=0;u<o;u++)s.push(t[u][n]);s.push("鍏朵粬")}else s=t.map(function(e){return e[n]});return!!s.length&&{data:s,show:s.length<i,formatter:function(e){return null!=r[e]?r[e]:e}}}({innerRows:o,dimension:d,legendLimit:x,legendName:E,level:N,limitShowNum:F}),tooltip:$&&function(e){var t=e.dataType,n=e.innerRows,i=e.limitShowNum,r=e.digit,o=e.metrics,s=e.dimension,l=0,u=n.map(function(e){return l+=e[o],{name:e[s],value:e[o]}}).slice(i,n.length);return{formatter:function(e){var n=[];return n.push(a(e.color)),i&&"鍏朵粬"===e.name?(n.push("鍏朵粬:"),u.forEach(function(e){var i=e.name,a=e.value,o=P(a/l,"percent");n.push("<br>"+i+":"),n.push(P(a,t,r)),n.push("("+o+")")})):(n.push(e.name+":"),n.push(P(e.value,t,r)),n.push("("+e.percent+"%)")),n.join(" ")}}}({dataType:l,innerRows:o,limitShowNum:F,digit:A,metrics:f,dimension:d})}},se=function(e,t,n,i){return oe(e,t,n,i,!0)},le=w({},Q,{name:"VePie",data:function(){return this.chartHandler=oe,{}}}),ue=w({},Q,{name:"VeRing",data:function(){return this.chartHandler=se,{}}});var ce=function(e,t,n,i){var r=n.dataType,a=void 0===r?"normal":r,o=n.dimension,s=void 0===o?e[0]:o,l=n.totalName,u=void 0===l?"鎬昏":l,c=n.totalNum,d=n.remainName,h=void 0===d?"鍏朵粬":d,f=n.xAxisName,p=void 0===f?s:f,m=n.labelMap,g=void 0===m?{}:m,v=n.axisVisible,y=void 0===v||v,b=n.digit,_=void 0===b?2:b,x=i.tooltipVisible,S=e.slice();S.splice(S.indexOf(s),1);var C=S[0],M=C,k=x&&function(e,t){return{trigger:"axis",axisPointer:{type:"shadow"},formatter:function(n){var i=n[1];return[i.name+"<br/>"+i.seriesName+" :",""+P(i.value,e,t)].join("")}}}(a,_),T=parseFloat(t.reduce(function(e,t){return e+Number(t[C])},0).toFixed(_)),A=function(e,t){return t?t>e?"have-remain":"none-remain":"not-total"}(T,c);return{tooltip:k,xAxis:function(e){var t=e.dimension,n=e.rows,i=e.remainStatus,r=e.totalName,a=e.remainName,o=e.labelMap,s=e.xAxisName,l=e.axisVisible,u=[r].concat(n.map(function(e){return e[t]}));return"have-remain"===i&&(u=u.concat([a])),{type:"category",name:o&&o[s]||s,splitLine:{show:!1},data:u,show:l}}({dimension:s,rows:t,remainStatus:A,totalName:u,remainName:h,xAxisName:p,labelMap:g,axisVisible:y}),yAxis:function(e){var t=e.dataType,n=e.yAxisName,i=e.axisVisible,r=e.digit,a=e.labelMap;return{type:"value",name:null!=a[n]?a[n]:n,axisTick:{show:!1},axisLabel:{formatter:function(e){return P(e,t,r)}},show:i}}({dataType:a,yAxisName:M,axisVisible:y,digit:_,labelMap:g}),series:function(e){var t=e.dataType,n=e.rows,i=e.metrics,r=e.totalNum,a=e.remainStatus,o=e.dataSum,s=e.digit,l={type:"bar",stack:"鎬婚噺"},u=o,c=r,d=void 0,h=void 0,f=n.map(function(e){return e[i]});"have-remain"===a?(d=[0].concat(n.map(function(e){return c-=e[i]})).concat([0]),h=[r].concat(f).concat([r-o])):(d=[0].concat(n.map(function(e){return u-=e[i]})),h=[o].concat(f));var p=[];return p.push(w({name:"杈呭姪",itemStyle:{normal:{opacity:0},emphasis:{opacity:0}},data:d},l)),p.push(w({name:"鏁板��",label:{normal:{show:!0,position:"top",formatter:function(e){return P(e.value,t,s)}}},data:h},l)),p}({dataType:a,rows:t,dimension:s,metrics:C,totalNum:c,remainStatus:A,dataSum:T,digit:_})}},de=w({},Q,{name:"VeWaterfall",data:function(){return this.chartHandler=ce,{}}});var he=function(e,t,n,i){var r=e.slice(),o=t.slice(),s=n.dataType,l=void 0===s?"normal":s,u=n.dimension,c=void 0===u?r[0]:u,d=n.sequence,h=void 0===d?o.map(function(e){return e[c]}):d,f=n.digit,p=void 0===f?2:f,m=n.ascending,g=n.label,v=n.labelLine,y=n.legendName,b=void 0===y?{}:y,_=n.itemStyle,x=n.filterZero,w=n.useDefaultOrder,S=i.tooltipVisible,C=i.legendVisible,M=void 0;if(n.metrics)M=n.metrics;else{var k=r.slice();k.splice(r.indexOf(c),1),M=k[0]}return{tooltip:S&&function(e,t){return{trigger:"item",formatter:function(n){var i=[];return i.push(a(n.color)),i.push(n.name+": "+P(n.data.realValue,e,t)),i.join("")}}}(l,p),legend:C&&function(e){var t=e.data,n=e.legendName;return{data:t,formatter:function(e){return null!=n[e]?n[e]:e}}}({data:h,legendName:b}),series:function(e){var t=e.dimension,n=e.metrics,i=e.rows,r=e.sequence,a=e.ascending,o=e.label,s=e.labelLine,l=e.itemStyle,u=e.filterZero,c=e.useDefaultOrder,d={type:"funnel"},h=i.sort(function(e,n){return r.indexOf(e[t])-r.indexOf(n[t])});u&&(h=h.filter(function(e){return e[n]}));var f=!1;h.some(function(e,t){if(t&&e[n]>h[t-1][n])return f=!0,!0});var p=100/h.length;return d.data=f&&!c?h.slice().reverse().map(function(e,i){return{name:e[t],value:(i+1)*p,realValue:e[n]}}):h.map(function(e){return{name:e[t],value:e[n],realValue:e[n]}}),a&&(d.sort="ascending"),o&&(d.label=o),s&&(d.labelLine=s),l&&(d.itemStyle=l),d}({dimension:c,metrics:M,rows:o,sequence:h,ascending:m,label:g,labelLine:v,itemStyle:_,filterZero:x,useDefaultOrder:w})}},fe=w({},Q,{name:"VeFunnel",data:function(){return this.chartHandler=he,{}}});var pe=function(e,t,n,i){var r=n.dataType,o=void 0===r?{}:r,s=n.legendName,l=void 0===s?{}:s,u=n.labelMap,c=void 0===u?{}:u,d=n.dimension,h=void 0===d?e[0]:d,f=n.digit,p=void 0===f?2:f,m=n.label,g=n.itemStyle,v=n.lineStyle,y=n.areaStyle,b=i.tooltipVisible,_=i.legendVisible,x=e.slice();n.metrics?x=n.metrics:x.splice(e.indexOf(h),1);var w=_&&function(e,t,n){return{data:e.map(function(e){return e[t]}),formatter:function(e){return null!=n[e]?n[e]:e}}}(t,h,l),S=function(e,t,n){var i={indicator:[],shape:"circle",splitNumber:5},r={};return e.forEach(function(e){t.forEach(function(t){var i=null!=n[t]?n[t]:t;r[i]?r[i].push(e[t]):r[i]=[e[t]]})}),i.indicator=Object.keys(r).map(function(e){return{name:e,max:Math.max.apply(null,r[e])}}),i}(t,x,c);return{legend:w,tooltip:b&&function(e,t,n){var i=[],r=[];return t.indicator.map(function(t,n){i[n]=e[t.name],r[n]=t.name}),{formatter:function(e){var t=[];return t.push(a(e.color)),t.push(e.name+"<br />"),e.data.value.forEach(function(e,a){t.push(r[a]+": "),t.push(P(e,i[a],n)+"<br />")}),t.join("")}}}(o,S,p),radar:S,series:function(e){var t=e.rows,n=e.dimension,i=e.metrics,r=e.radar,a=e.label,o=e.itemStyle,s=e.lineStyle,l=e.labelMap,u=e.areaStyle,c={};r.indicator.forEach(function(e,t){var n=e.name;c[n]=t});var d=t.map(function(e){var t={value:[],name:e[n]};return Object.keys(e).forEach(function(n){if(~i.indexOf(n)){var r=null!=l[n]?c[l[n]]:c[n];t.value[r]=e[n]}}),t}),h={name:n,type:"radar",data:d};return a&&(h.label=a),o&&(h.itemStyle=o),s&&(h.lineStyle=s),u&&(h.areaStyle=u),[h]}({rows:t,dimension:h,metrics:x,radar:S,label:m,itemStyle:g,lineStyle:v,labelMap:c,areaStyle:y})}},me=w({},Q,{name:"VeRadar",data:function(){return this.chartHandler=pe,{}}}),ge=w({},Q,{name:"VeChart",data:function(){return this.chartLib={bar:q,histogram:Y,line:ne,pie:oe,ring:se,funnel:he,radar:pe,waterfall:ce},this.chartHandler=this.chartLib[this.settings.type],{}}});function ve(e,t,n){"object"===(void 0===e?"undefined":_(e))?t[n]=e:e&&(t[n]={normal:{show:!0},emphasis:{show:!0}})}function ye(t,n){var i=t._once,r=t.registerSign,a=t.beforeRegisterMap,o=t.beforeRegisterMapOnce,s=t.registerSignOnce,l=t.position,u=t.specialAreas;i[r]||(a&&(n=a(n)),o&&!i[s]&&(i[s]=!0,n=o(n)),i[r]=!0,e.registerMap(l,n,u))}var be=function(e,t,n,i){var r=n.position,o=void 0===r?"china":r,s=n.selectData,l=void 0!==s&&s,u=n.selectedMode,c=n.label,d=void 0===c||c,h=n.dataType,f=void 0===h?{}:h,p=n.digit,m=void 0===p?2:p,g=n.dimension,v=void 0===g?e[0]:g,y=n.roam,b=n.center,_=n.aspectScale,x=n.boundingCoords,S=n.zoom,C=n.scaleLimit,M=n.legendName,k=void 0===M?{}:M,T=n.labelMap,A=void 0===T?{}:T,I=n.mapGrid,E=n.itemStyle,D=n.positionJsonLink,O=n.beforeRegisterMap,L=n.beforeRegisterMapOnce,R=n.mapURLProfix,B=void 0===R?"https://unpkg.com/echarts@3.6.2/map/json/":R,F=n.specialAreas,z=void 0===F?{}:F,V=n.mapOrigin,$=e.slice();n.metrics?$=n.metrics:$.splice(e.indexOf(v),1);var G=i.tooltipVisible,j=i.legendVisible,H=i.color,W=i._once,U={};t.forEach(function(e){U[e[v]]=e});var K=G&&function(e,t,n,i,r,o){return{formatter:function(s){var l=[];return s.name?(l.push(s.name+"<br>"),i.forEach(function(i,u){var c=null!=o[i]?o[i]:i;l.push(a(r[u])+" "+c+" : "),n[s.name]?l.push(P(n[s.name][i],e[i],t)):l.push("-"),l.push("<br>")}),l.join(" ")):""}}}(f,m,U,$,H,A),q=j&&function(e){var t=e.metrics,n=e.legendName,i=e.labelMap;return n||i?{data:i?t.map(function(e){return null==i[e]?e:i[e]}):t,formatter:function(e){return null!=n[e]?n[e]:e}}:{data:t}}({metrics:$,legendName:k,labelMap:A}),Y=function(e){var t=e.position,n=e.selectData,i=e.dimension,r=e.metrics,a=e.rows,o=e.label,s=e.itemStyle,l=e.selectedMode,u=e.roam,c=e.center,d=e.aspectScale,h=e.boundingCoords,f=e.zoom,p=e.labelMap,m=e.scaleLimit,g=e.mapGrid,v=[],y={type:"map",mapType:t};return r.forEach(function(e){var t=w({name:null!=p[e]?p[e]:e,data:[],selectedMode:l,roam:u,center:c,aspectScale:d,boundingCoords:h,zoom:f,scaleLimit:m},y);g&&Object.keys(g).forEach(function(e){t[e]=g[e]}),ve(s,t,"itemStyle"),ve(o,t,"label"),a.forEach(function(r){t.data.push({name:r[i],value:r[e],selected:n})}),v.push(t)}),v}({position:o,selectData:l,label:d,itemStyle:E,dimension:v,metrics:$,rows:t,selectedMode:u,roam:y,center:b,aspectScale:_,boundingCoords:x,zoom:S,labelMap:A,scaleLimit:C,mapGrid:I}),Z={_once:W,beforeRegisterMap:O,beforeRegisterMapOnce:L,registerSign:"MAP_REGISTER_"+o,registerSignOnce:"ONCE_MAP_REGISTER_"+o,position:o,specialAreas:z};return V?(ye(Z,V),{series:Y,tooltip:K,legend:q}):N({position:o,positionJsonLink:D,beforeRegisterMapOnce:L,mapURLProfix:B}).then(function(e){return ye(Z,e),{series:Y,tooltip:K,legend:q}})},_e=w({},Q,{name:"VeMap",data:function(){return this.chartHandler=be,{}}}),xe=function(e,t,n,i){var r=n.key,a=n.v,o=n.bmap,s=n.useOuterMap,l=i._once;return r||s||console.warn("settings.key must be a string."),l.bmap_register?{}:(l.bmap_register=!0,s?{bmap:o}:z(r,a).then(function(e){return{bmap:o}}))},we=w({},Q,{name:"VeBmap",data:function(){return this.chartHandler=xe,{}}}),Se=function(e,t,n,i){var r=n.key,a=n.v,o=n.amap,s=n.useOuterMap,l=i._once;return r||s||console.warn("settings.key must be a string."),l.amap_register?{}:(l.amap_register=!0,s?{amap:o}:V(r,a).then(function(e){return{amap:o}}))},Ce=w({},Q,{name:"VeAmap",data:function(){return this.chartHandler=Se,{}}});var Me=function(e,t,n,i){var r=n.links,o=n.dimension,s=void 0===o?e[0]:o,l=n.metrics,u=void 0===l?e[1]:l,c=n.dataType,d=void 0===c?["normal","normal"]:c,h=n.digit,f=void 0===h?2:h,p=n.valueFull,m=void 0!==p&&p,g=n.useDataValue,v=void 0!==g&&g,y=n.label,b=n.itemStyle,_=n.lineStyle;if(r)return{tooltip:function(e){var t=e.itemDataType,n=e.linksDataType,i=e.digit;return{trigger:"item",formatter:function(e){var r=[],o=e.name,s=e.data,l=e.value,u=e.color;return r.push(a(u)),r.push(o+" : "),s&&s.source?r.push(P(l,n,i)+"<br />"):r.push(P(l,t,i)+"<br />"),r.join("")}}}({itemDataType:d[0],linksDataType:d[1],digit:f}),series:function(e){var t=e.rows,n=e.dimension,i=e.metrics,r=e.links,a=e.valueFull,o=e.useDataValue,s=e.label,l=e.itemStyle,u=e.lineStyle,c={},d={type:"sankey",data:t.map(function(e){return c[e[n]]=e[i],{name:e[n],value:e[i]}}),links:o?r.map(function(e){return w({},e,{value:c[e.target]})}):a?r:r.map(function(e){return null==e.value?w({},e,{value:c[e.target]}):e})};return s&&(d.label=s),l&&(d.itemStyle=l),u&&(d.lineStyle=u),[d]}({rows:t,dimension:s,metrics:u,links:r,valueFull:m,useDataValue:v,label:y,itemStyle:b,lineStyle:_})};console.warn("links is needed in settings!")},ke=w({},Q,{name:"VeSankey",data:function(){return this.chartHandler=Me,{}}});function Te(e,t){var n=[];return e.forEach(function(e){~n.indexOf(e[t])||n.push(e[t])}),n}function Ae(e){var t=e.rows,n=e.innerXAxisList,i=e.innerYAxisList,r=e.xDim,a=e.yDim,o=e.metrics,s=e.type,l=e.extraMetrics;return"cartesian"===s?t.map(function(e){var t=n.indexOf(e[r]),s=i.indexOf(e[a]),u=o?e[o]:1,c=l.map(function(t){return e[t]||"-"});return{value:[t,s,u].concat(c)}}):t.map(function(e){var t=o?e[o]:1;return{value:[e[r],e[a],t]}})}function Ie(e,t){return{type:"category",data:e,name:t,nameLocation:"end",splitArea:{show:!0}}}var Ee=function(t,n,o,s){var l=o.type,u=void 0===l?"cartesian":l,c=o.xAxisList,d=o.yAxisList,h=o.dimension,f=void 0===h?[t[0],t[1]]:h,p=o.metrics,m=void 0===p?t[2]:p,g=o.dataType,v=void 0===g?"normal":g,y=o.min,b=o.max,_=o.digit,x=o.bmap,C=o.amap,M=o.geo,k=o.key,T=o.v,A=void 0===T?"2.0":T,I=o.position,E=o.positionJsonLink,D=o.beforeRegisterMap,O=o.pointSize,L=void 0===O?10:O,R=o.blurSize,B=void 0===R?5:R,F=o.heatColor,$=o.yAxisName,G=o.xAxisName,j=o.beforeRegisterMapOnce,H=o.mapURLProfix,W=void 0===H?"https://unpkg.com/echarts@3.6.2/map/json/":H,U=o.specialAreas,K=void 0===U?{}:U,q=s.tooltipVisible,Y=c,Z=d,X=[],J=[],Q=f.concat([m]);t.forEach(function(e){~Q.indexOf(e)||J.push(e)}),"cartesian"===u?(Y&&Y.length||(Y=Te(n,f[0])),Z&&Z.length||(Z=Te(n,f[1])),X=Ae({rows:n,innerXAxisList:Y,innerYAxisList:Z,xDim:f[0],yDim:f[1],metrics:m,type:u,extraMetrics:J})):X=Ae({rows:n,xDim:f[0],yDim:f[1],metrics:m,type:u,extraMetrics:J});var ee=m?n.map(function(e){return e[m]}):[0,5];ee.length||(ee=[0]);var te=y||Math.min.apply(null,ee),ne=b||Math.max.apply(null,ee),ie=Ie(Y,G),re=Ie(Z,$),ae=[{type:"heatmap",data:{chartData:X}.chartData}],oe=function(e){var t=e.innerMin,n=e.innerMax,a=e.type,o=e.heatColor,s=e.series,l={min:t,max:n,calculable:!0},u=null;return"map"===a?(u={orient:"vertical",left:0,bottom:0,inRange:{color:o||i}},s[0].data.length||(u.show=!1)):u="bmap"===a||"amap"===a?{show:!1,orient:"vertical",left:0,bottom:0,inRange:{color:o||r}}:{orient:"horizontal",left:"center",bottom:10,dimension:2,inRange:o&&{color:o}},w(l,u)}({innerMin:te,innerMax:ne,type:u,heatColor:F,series:ae}),se=q&&function(e){var t=e.dataType,n=e.innerXAxisList,i=e.innerYAxisList,r=e.digit,o=e.extraMetrics,s=e.metrics;return{trigger:"item",formatter:function(e){var l=e.color,u=S(e.data.value),c=u[0],d=u[1],h=u[2],f=u.slice(3),p=[];return p.push(n[c]+" ~ "+i[d]+"<br>"),o.forEach(function(e,t){p.push(e+": "+f[t]+"<br>")}),p.push(a(l)+" "+s+": "+P(h,t,r)+"<br>"),p.join("")}}}({dataType:v,innerXAxisList:Y,innerYAxisList:Z,digit:_,extraMetrics:J,metrics:m}),le={visualMap:oe,series:ae};return"bmap"===u?(w(le.series[0],{coordinateSystem:"bmap",pointSize:L,blurSize:B}),z(k,A).then(function(e){return w({bmap:x},le)})):"map"===u?(le.series[0].coordinateSystem="geo",N({position:I,positionJsonLink:E,beforeRegisterMapOnce:j,mapURLProfix:W}).then(function(t){var n=w({map:I},M);return D&&(t=D(t)),e.registerMap(I,t,K),w({geo:n},le)})):"amap"===u?(w(le.series[0],{coordinateSystem:"amap",pointSize:L,blurSize:B}),V(k,A).then(function(e){return w({amap:C},le)})):w({xAxis:ie,yAxis:re,tooltip:se},le)},De=w({},Q,{name:"VeHeatmap",data:function(){return this.chartHandler=Ee,{}}});function Oe(e,t){var n=t.labelMap,i=t.columns,r=t.dataType,o=t.digit,s=[],l=e.color,u=e.seriesName,c=e.data.value;return s.push(a(l)+" "+u+"<br>"),c.forEach(function(e,t){var a=n[i[t]]||i[t],l=isNaN(e)?e:P(e,r[i[t]],o);s.push(a+": "+l+"<br>")}),s.join("")}var Pe=function(e,t,n,i){var r=n.dimension,a=void 0===r?e[0]:r,o=n.metrics,s=void 0===o?[e[1],e[2]]:o,l=n.dataType,u=void 0===l?{}:l,c=n.xAxisType,d=void 0===c?"category":c,h=n.xAxisName,f=n.yAxisName,p=n.digit,m=void 0===p?2:p,g=n.legendName,v=void 0===g?{}:g,y=n.labelMap,b=void 0===y?{}:y,_=n.tooltipTrigger,x=void 0===_?"item":_,S=n.axisVisible,C=void 0===S||S,M=n.symbolSizeMax,k=void 0===M?50:M,T=n.symbol,A=n.symbolSize,I=n.symbolRotate,D=n.symbolOffset,O=n.cursor,L=n.min,R=n.max,N=n.scale,B=n.label,F=n.itemStyle;if(E(t)){var z=w({},n,{xAxisName:h?[h]:void 0,yAxisName:f?[f]:void 0,scale:N?[N]:void 0,min:L?[L]:void 0,max:R?[R]:void 0,dimension:a?[a]:void 0}),V=ne(e,t,z,i);return V&&V.series?(V.series.forEach(function(e){w(e,{type:"scatter",symbol:T,symbolSize:A||10,symbolRotate:I,symbolOffset:D,cursor:O,label:B,itemStyle:F})}),V):{}}var $,G=i.tooltipVisible,j=i.legendVisible,H=Object.keys(t);return{legend:j&&function(e,t){return{data:e,formatter:function(e){return null!=t[e]?t[e]:e}}}(H,v),tooltip:G&&{trigger:($={tooltipTrigger:x,labelMap:b,columns:e,dataType:u,digit:m}).tooltipTrigger,formatter:function(e){return E(e)?e.map(function(e){return Oe(e,$)}).join(""):Oe(e,$)}},xAxis:function(e){var t=e.xAxisName,n=e.axisVisible,i=e.xAxisType,r=e.rows,a=e.dataLabels,o=e.dimension,s=[];return a.forEach(function(e){r[e].forEach(function(e){var t=e[o];t&&!~s.indexOf(t)&&s.push(t)})}),[{type:i,show:n,name:t,data:s}]}({xAxisName:h,axisVisible:C,xAxisType:d,dataLabels:H,dimension:a,rows:t}),yAxis:function(e){var t=e.min,n=e.max,i=e.scale,r=e.yAxisName,a=e.dataType,o=e.metrics,s=e.digit;return{type:"value",show:e.axisVisible,scale:i,min:t,max:n,axisTick:{show:!1},name:r,axisLabel:{formatter:function(e){return P(e,a[o[0]],s)}}}}({min:L,max:R,scale:N,yAxisName:f,dataType:u,metrics:s,digit:m,axisVisible:C}),series:function(e){var t=e.rows,n=e.dataLabels,i=e.columns,r=e.metrics,a=e.dimension,o=e.label,s=e.itemStyle,l=e.symbol,u=e.symbolSizeMax,c=e.symbolSize,d=e.symbolRotate,h=e.symbolOffset,f=e.cursor,p=i.filter(function(e){return!~r.indexOf(e)&&e!==a}),m=[];n.forEach(function(e){t[e].forEach(function(e){m.push(e[r[1]])})});var g=Math.max.apply(null,m),v=[];return n.forEach(function(e){var n=[];t[e].forEach(function(e){var t={value:[]};t.value.push(e[a],e[r[0]],e[r[1]]),p.forEach(function(n){t.value.push(e[n])}),t.symbolSize=c||e[r[1]]/g*u,n.push(t)}),v.push({type:"scatter",data:n,name:e,label:o,itemStyle:s,symbol:l,symbolRotate:d,symbolOffset:h,cursor:f})}),v}({rows:t,dataLabels:H,columns:e,metrics:s,dimension:a,label:B,itemStyle:F,symbol:T,symbolSizeMax:k,symbolSize:A,symbolRotate:I,symbolOffset:D,cursor:O})}},Le=w({},Q,{name:"VeScatter",data:function(){return this.chartHandler=Pe,{}}}),Re=[5,10,20,30],Ne="鏃",Be={show:!1};var Fe=function(e,t,n,i){var r=n.dimension,o=void 0===r?e[0]:r,s=n.metrics,l=void 0===s?e.slice(1,6):s,u=n.digit,c=void 0===u?2:u,d=n.itemStyle,h=n.labelMap,f=void 0===h?{}:h,p=n.legendName,m=void 0===p?{}:p,g=n.MA,v=void 0===g?Re:g,y=n.showMA,b=void 0!==y&&y,_=n.showVol,x=void 0!==_&&_,w=n.showDataZoom,S=void 0!==w&&w,C=n.downColor,M=void 0===C?"#ec0000":C,k=n.upColor,T=void 0===k?"#00da3c":k,A=n.start,I=void 0===A?50:A,D=n.end,O=void 0===D?100:D,L=n.dataType,R=i.tooltipVisible,N=i.legendVisible,B=E(t[0]),F=[],z=[],V=[],$=l.slice(0,4),G=l[4];B?t.forEach(function(t){var n=[];F.push(t[e.indexOf(o)]),$.forEach(function(i){n.push(t[e.indexOf(i)])}),z.push(n),G&&V.push(t[e.indexOf(G)])}):t.forEach(function(e,t){var n=[];if(F.push(e[o]),$.forEach(function(t){n.push(e[t])}),z.push(n),G){var i=e[l[0]]>e[l[1]]?1:-1;V.push([t,e[G],i])}});var j=N&&function(e){var t=e.showMA,n=e.MA,i=e.legendName,r=e.labelMap,a=[Ne];return t&&(a=a.concat(n.map(function(e){return"MA"+e}))),r&&(a=a.map(function(e){return null==r[e]?e:r[e]})),{data:a,formatter:function(e){return null!=i[e]?i[e]:e}}}({showMA:b,MA:v,legendName:m,labelMap:f}),H=R&&function(e){var t=e.metrics,n=e.dataType,i=e.digit,r=e.labelMap;return{trigger:"axis",axisPointer:{type:"cross"},position:function(e,t,n,i,r){var a={top:10};return a[e[0]<r.viewSize[0]/2?"right":"left"]=60,a},formatter:function(e){var o=[];return o.push(e[0].axisValue+"<br>"),e.forEach(function(e){var s=e.data,l=e.seriesName,u=e.componentSubType,c=e.color,d=null==r[l]?l:r[l];if(o.push(a(c)+" "+d+": "),"candlestick"===u)o.push("<br>"),t.slice(0,4).forEach(function(e,t){var a=null!=r[e]?r[e]:e,l=P(s[t+1],n,i);o.push("- "+a+": "+l+"<br>")});else if("line"===u){var h=P(s,n,i);o.push(h+"<br>")}else if("bar"===u){var f=P(s[1],n,i);o.push(f+"<br>")}}),o.join("")}}}({metrics:l,dataType:L,digit:c,labelMap:f}),W=x&&function(e){var t=e.downColor,n=e.upColor,i=e.MA;return{show:!1,seriesIndex:e.showMA?1+i.length:1,dimension:2,pieces:[{value:1,color:t},{value:-1,color:n}]}}({downColor:M,upColor:T,MA:v,showMA:b}),U=S&&function(e){var t=e.start,n=e.end;return[{type:"inside",xAxisIndex:[0,1],start:t,end:n},{show:!0,xAxisIndex:[0,1],type:"slider",top:"85%",start:t,end:n}]}({start:I,end:O});return{legend:j,tooltip:H,visualMap:W,grid:[{left:"10%",right:"8%",top:"10%",height:{showVol:x}.showVol?"50%":"65%",containLabel:!1},{left:"10%",right:"8%",top:"65%",height:"16%",containLabel:!1}],xAxis:function(e){var t=e.dims,n={onZero:!1};return[{type:"category",data:t,scale:!0,boundaryGap:!1,axisLine:n,splitLine:Be,min:"dataMin",max:"dataMax"},{type:"category",gridIndex:1,data:t,scale:!0,boundaryGap:!1,axisLine:n,axisTick:Be,splitLine:Be,axisLabel:Be,min:"dataMin",max:"dataMax"}]}({dims:F}),yAxis:function(e){var t=e.dataType,n=e.digit;return[{scale:!0,axisTick:Be,axisLabel:{formatter:function(e){return P(e,t,n)}}},{scale:!0,gridIndex:1,splitNumber:2,axisLine:Be,axisTick:Be,splitLine:Be,axisLabel:Be}]}({dataType:L,digit:c}),dataZoom:U,series:function(e){var t=e.values,n=e.volumes,i=e.upColor,r=e.downColor,a=e.showMA,o=e.MA,s=e.showVol,l=e.labelMap,u=e.digit,c=e.itemStyle||{normal:{color:i,color0:r,borderColor:null,borderColor0:null}},d={normal:{opacity:.5}},h=[{name:null==l[Ne]?Ne:l[Ne],type:"candlestick",data:t,itemStyle:c}];return a&&o.forEach(function(e){var n="MA"+e;h.push({name:null==l[n]?n:l[n],data:function(e,t,n){var i=[];return t.forEach(function(r,a){if(a<e)i.push("-");else{for(var o=0,s=0;s<e;s++)o+=t[a-s][1];i.push(+(o/e).toFixed(n))}}),i}(e,t,u),type:"line",lineStyle:d,smooth:!0})}),s&&h.push({name:"Volume",type:"bar",xAxisIndex:1,yAxisIndex:1,data:n}),h}({values:z,volumes:V,upColor:T,downColor:M,showMA:b,MA:v,showVol:x,labelMap:f,digit:c,itemStyle:d}),axisPointer:{link:{xAxisIndex:"all"}}}},ze=w({},Q,{name:"VeCandle",data:function(){return this.chartHandler=Fe,{}}});var Ve=function(e,t,n,i){var r=n.dimension,a=void 0===r?e[0]:r,o=n.metrics,s=void 0===o?e[1]:o,l=n.digit,u=void 0===l?2:l,c=n.dataType,d=void 0===c?{}:c,h=n.labelMap,f=void 0===h?{}:h,p=n.seriesMap,m=void 0===p?{}:p,g=n.dataName,v=void 0===g?{}:g,y=i.tooltipFormatter;return{tooltip:i.tooltipVisible&&function(e){var t=e.tooltipFormatter,n=e.dataType,i=e.digit;return{formatter:function(e){var r=e.seriesName,a=e.data,o=a.value,s=a.name;if(t)return t.apply(null,arguments);var l=[];return l.push(r+": "),l.push(P(o,n[r],i)+" "+s),l.join("")}}}({tooltipFormatter:y,dataType:d}),series:function(e){var t=e.rows,n=e.dimension,i=e.metrics,r=e.digit,a=e.dataType,o=e.labelMap,s=e.seriesMap,l=e.dataName;return t.map(function(e){var t=e[n],u=s[t],c={type:"gauge",name:null!=o[t]?o[t]:t,data:[{name:l[t]||"",value:e[i]}],detail:{formatter:function(e){return P(e,a[t],r)}},axisLabel:{formatter:function(e){return P(e,a[t],r)}}};return u&&Object.keys(u).forEach(function(e){I(c[e])?w(c[e],u[e]):c[e]=u[e]}),c})}({rows:t,dimension:a,metrics:s,digit:u,dataType:d,labelMap:f,seriesMap:m,dataName:v})}},$e=w({},Q,{name:"VeGauge",data:function(){return this.chartHandler=Ve,{}}});var Ge=function(e,t,n,i){var r=n.dimension,a=void 0===r?e[0]:r,o=n.metrics,s=void 0===o?e[1]:o,l=n.seriesMap,u=void 0===l?{}:l,c=i.legendVisible,d=i.tooltipFormatter,h=i.tooltipVisible;return{series:function(e){var t=e.dimension,n=e.metrics,i=e.rows,r=e.seriesMap,a=[];return i.forEach(function(e){var i=e[t],o=r[i],s={type:"tree",name:e[t],data:e[n]};r[e[t]]&&Object.keys(o).forEach(function(e){I(s[e])?w(s[e],o[e]):s[e]=o[e]}),a.push(s)}),a}({dimension:a,metrics:s,rows:t,seriesMap:u}),legend:c&&t.length>1&&function(e){var t=e.dimension;return{data:e.rows.map(function(e){return e[t]})}}({dimension:a,rows:t}),tooltip:h&&{trigger:"item",triggerOn:"mousemove",formatter:{tooltipFormatter:d}.tooltipFormatter}}},je=w({},Q,{name:"VeTree",data:function(){return this.chartHandler=Ge,{}}}),He=[ee,te,ie,le,ue,de,fe,me,ge,_e,we,Ce,ke,De,Le,ze,$e,je];function We(e,t){He.forEach(function(t){e.component(t.name,t)})}return"undefined"!=typeof window&&window.Vue&&We(window.Vue),{VeBar:ee,VeHistogram:te,VeRing:ue,VeLine:ie,VePie:le,VeWaterfall:de,VeFunnel:fe,VeRadar:me,VeChart:ge,VeMap:_e,VeBmap:we,VeAmap:Ce,VeSankey:ke,VeScatter:Le,VeCandle:ze,VeGauge:$e,VeTree:je,install:We}},e.exports=i(n("/MtV"),n("vfE7"),n("B6j4"),n("cfw3"),n("aO2o"),n("B6iy"),n("B7oI"),n("Ydvc"),n("mQB+"),n("dK5h"),n("Nl+K"),n("Bcbt"),n("sHh7"),n("ol5q"),n("BWe9"),n("XHuq"),n("+pnm"),n("w4GH"),n("O0k8"))},"+HCW":function(e,t,n){var i=n("/MtV").extendComponentModel({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:8,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#fff",fontSize:14}}});e.exports=i},"+Th3":function(e,t,n){var i=n("aVg8"),r=n("UPaQ"),a=n("dRQw"),o=n("bP4h"),s=n("MiuX"),l=r.extend({makeElOption:function(e,t,n,i,r){var s=n.axis,l=s.grid,d=i.get("type"),h=u(l,s).getOtherAxis(s).getGlobalExtent(),f=s.toGlobalCoord(s.dataToCoord(t,!0));if(d&&"none"!==d){var p=a.buildElStyle(i),m=c[d](s,f,h,p);m.style=p,e.graphicKey=m.type,e.pointer=m}var g=o.layout(l.model,n);a.buildCartesianSingleLabelElOption(t,e,g,n,i,r)},getHandleTransform:function(e,t,n){var i=o.layout(t.axis.grid.model,t,{labelInside:!1});return i.labelMargin=n.get("handle.margin"),{position:a.getTransformedPosition(t.axis,e,i),rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(e,t,n,i){var r=n.axis,a=r.grid,o=r.getGlobalExtent(!0),s=u(a,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,c=e.position;c[l]+=t[l],c[l]=Math.min(o[1],c[l]),c[l]=Math.max(o[0],c[l]);var d=(s[1]+s[0])/2,h=[d,d];h[l]=c[l];return{position:c,rotation:e.rotation,cursorPoint:h,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}}});function u(e,t){var n={};return n[t.dim+"AxisIndex"]=t.index,e.getCartesian(n)}var c={line:function(e,t,n,r){var o=a.makeLineShape([t,n[0]],[t,n[1]],d(e));return i.subPixelOptimizeLine({shape:o,style:r}),{type:"Line",shape:o}},shadow:function(e,t,n,i){var r=Math.max(1,e.getBandWidth()),o=n[1]-n[0];return{type:"Rect",shape:a.makeRectShape([t-r/2,n[0]],[r,o],d(e))}}};function d(e){return"x"===e.dim?0:1}s.registerAxisPointerClass("CartesianAxisPointer",l);var h=l;e.exports=h},"+ds/":function(e,t,n){n("5zae"),n("+Th3"),n("hEXF")},"+hCq":function(e,t,n){n("jMVH"),n("jPW0")},"+hWa":function(e,t,n){var i=n("BMQd").extend({type:"series.bar",dependencies:["grid","polar"],brushSelector:"rect",getProgressive:function(){return!!this.get("large")&&this.get("progressive")},getProgressiveThreshold:function(){var e=this.get("progressiveThreshold"),t=this.get("largeThreshold");return t>e&&(e=t),e}});e.exports=i},"+jdH":function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("3LBH"),a=n("d2Vn"),o=n("BrYk"),s=n("aVg8"),l=n("vqvJ"),u=n("Er0q"),c=u.Polyline,d=u.Polygon,h=n("Qmdc"),f=n("abCA").round,p=n("NHLq"),m=p.prepareDataCoordInfo,g=p.getStackedOnPoint;function v(e,t){if(e.length===t.length){for(var n=0;n<e.length;n++){var i=e[n],r=t[n];if(i[0]!==r[0]||i[1]!==r[1])return}return!0}}function y(e){return"number"==typeof e?e:e?.5:0}function b(e){var t=e.getGlobalExtent();if(e.onBand){var n=e.getBandWidth()/2-1,i=t[1]>t[0]?1:-1;t[0]+=i*n,t[1]-=i*n}return t}function _(e,t,n,i){return"polar"===e.type?function(e,t,n,i){var r=e.getAngleAxis(),a=e.getRadiusAxis().getExtent().slice();a[0]>a[1]&&a.reverse();var o=r.getExtent(),l=Math.PI/180;n&&(a[0]-=.5,a[1]+=.5);var u=new s.Sector({shape:{cx:f(e.cx,1),cy:f(e.cy,1),r0:f(a[0],1),r:f(a[1],1),startAngle:-o[0]*l,endAngle:-o[1]*l,clockwise:r.inverse}});return t&&(u.shape.endAngle=-o[0]*l,s.initProps(u,{shape:{endAngle:-o[1]*l}},i)),u}(e,t,n,i):function(e,t,n,i){var r=b(e.getAxis("x")),a=b(e.getAxis("y")),o=e.getBaseAxis().isHorizontal(),l=Math.min(r[0],r[1]),u=Math.min(a[0],a[1]),c=Math.max(r[0],r[1])-l,d=Math.max(a[0],a[1])-u;if(n)l-=.5,c+=.5,u-=.5,d+=.5;else{var h=i.get("lineStyle.width")||2,f=i.get("clipOverflow")?h/2:Math.max(c,d);o?(u-=f,d+=2*f):(l-=f,c+=2*f)}var p=new s.Rect({shape:{x:l,y:u,width:c,height:d}});return t&&(p.shape[o?"width":"height"]=0,s.initProps(p,{shape:{width:c,height:d}},i)),p}(e,t,n,i)}function x(e,t,n){for(var i=t.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,a=[],o=0;o<e.length-1;o++){var s=e[o+1],l=e[o];a.push(l);var u=[];switch(n){case"end":u[r]=s[r],u[1-r]=l[1-r],a.push(u);break;case"middle":var c=(l[r]+s[r])/2,d=[];u[r]=d[r]=c,u[1-r]=l[1-r],d[1-r]=s[1-r],a.push(u),a.push(d);break;default:u[r]=l[r],u[1-r]=s[1-r],a.push(u)}}return e[o]&&a.push(e[o]),a}function w(e,t,n){var r=e.get("showAllSymbol"),o="auto"===r;if(!r||o){var s=n.getAxesByScale("ordinal")[0];if(s&&(!o||!function(e,t){var n=e.getExtent(),i=Math.abs(n[1]-n[0])/e.scale.count();isNaN(i)&&(i=0);for(var r=t.count(),o=Math.max(1,Math.round(r/5)),s=0;s<r;s+=o)if(1.5*a.getSymbolSize(t,s)[e.isHorizontal()?1:0]>i)return!1;return!0}(s,t))){var l=t.mapDimension(s.dim),u={};return i.each(s.getViewLabels(),function(e){u[e.tickValue]=1}),function(e){return!u.hasOwnProperty(t.get(l,e))}}}}var S=h.extend({type:"line",init:function(){var e=new s.Group,t=new r;this.group.add(t.group),this._symbolDraw=t,this._lineGroup=e},render:function(e,t,n){var r=e.coordinateSystem,a=this.group,o=e.getData(),l=e.getModel("lineStyle"),u=e.getModel("areaStyle"),c=o.mapArray(o.getItemLayout),d="polar"===r.type,h=this._coordSys,f=this._symbolDraw,p=this._polyline,b=this._polygon,S=this._lineGroup,C=e.get("animation"),M=!u.isEmpty(),k=u.get("origin"),T=function(e,t,n){if(!n.valueDim)return[];for(var i=[],r=0,a=t.count();r<a;r++)i.push(g(n,e,t,r));return i}(r,o,m(r,o,k)),A=e.get("showSymbol"),I=A&&!d&&w(e,o,r),E=this._data;E&&E.eachItemGraphicEl(function(e,t){e.__temp&&(a.remove(e),E.setItemGraphicEl(t,null))}),A||f.remove(),a.add(S);var D=!d&&e.get("step");p&&h.type===r.type&&D===this._step?(M&&!b?b=this._newPolygon(c,T,r,C):b&&!M&&(S.remove(b),b=this._polygon=null),S.setClipPath(_(r,!1,!1,e)),A&&f.updateData(o,{isIgnore:I,clipShape:_(r,!1,!0,e)}),o.eachItemGraphicEl(function(e){e.stopAnimation(!0)}),v(this._stackedOnPoints,T)&&v(this._points,c)||(C?this._updateAnimation(o,T,r,n,D,k):(D&&(c=x(c,r,D),T=x(T,r,D)),p.setShape({points:c}),b&&b.setShape({points:c,stackedOnPoints:T})))):(A&&f.updateData(o,{isIgnore:I,clipShape:_(r,!1,!0,e)}),D&&(c=x(c,r,D),T=x(T,r,D)),p=this._newPolyline(c,r,C),M&&(b=this._newPolygon(c,T,r,C)),S.setClipPath(_(r,!0,!1,e)));var O=function(e,t){var n=e.getVisual("visualMeta");if(n&&n.length&&e.count()&&"cartesian2d"===t.type){for(var r,a,o=n.length-1;o>=0;o--){var l=n[o].dimension,u=e.dimensions[l],c=e.getDimensionInfo(u);if("x"===(r=c&&c.coordDim)||"y"===r){a=n[o];break}}if(a){var d=t.getAxis(r),h=i.map(a.stops,function(e){return{coord:d.toGlobalCoord(d.dataToCoord(e.value)),color:e.color}}),f=h.length,p=a.outerColors.slice();f&&h[0].coord>h[f-1].coord&&(h.reverse(),p.reverse());var m=h[0].coord-10,g=h[f-1].coord+10,v=g-m;if(v<.001)return"transparent";i.each(h,function(e){e.offset=(e.coord-m)/v}),h.push({offset:f?h[f-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:f?h[0].offset:.5,color:p[0]||"transparent"});var y=new s.LinearGradient(0,0,0,0,h,!0);return y[r]=m,y[r+"2"]=g,y}}}(o,r)||o.getVisual("color");p.useStyle(i.defaults(l.getLineStyle(),{fill:"none",stroke:O,lineJoin:"bevel"}));var P=e.get("smooth");if(P=y(e.get("smooth")),p.setShape({smooth:P,smoothMonotone:e.get("smoothMonotone"),connectNulls:e.get("connectNulls")}),b){var L=o.getCalculationInfo("stackedOnSeries"),R=0;b.useStyle(i.defaults(u.getAreaStyle(),{fill:O,opacity:.7,lineJoin:"bevel"})),L&&(R=y(L.get("smooth"))),b.setShape({smooth:P,stackedOnSmooth:R,smoothMonotone:e.get("smoothMonotone"),connectNulls:e.get("connectNulls")})}this._data=o,this._coordSys=r,this._stackedOnPoints=T,this._points=c,this._step=D,this._valueOrigin=k},dispose:function(){},highlight:function(e,t,n,i){var r=e.getData(),o=l.queryDataIndex(r,i);if(!(o instanceof Array)&&null!=o&&o>=0){var s=r.getItemGraphicEl(o);if(!s){var u=r.getItemLayout(o);if(!u)return;(s=new a(r,o)).position=u,s.setZ(e.get("zlevel"),e.get("z")),s.ignore=isNaN(u[0])||isNaN(u[1]),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else h.prototype.highlight.call(this,e,t,n,i)},downplay:function(e,t,n,i){var r=e.getData(),a=l.queryDataIndex(r,i);if(null!=a&&a>=0){var o=r.getItemGraphicEl(a);o&&(o.__temp?(r.setItemGraphicEl(a,null),this.group.remove(o)):o.downplay())}else h.prototype.downplay.call(this,e,t,n,i)},_newPolyline:function(e){var t=this._polyline;return t&&this._lineGroup.remove(t),t=new c({shape:{points:e},silent:!0,z2:10}),this._lineGroup.add(t),this._polyline=t,t},_newPolygon:function(e,t){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new d({shape:{points:e,stackedOnPoints:t},silent:!0}),this._lineGroup.add(n),this._polygon=n,n},_updateAnimation:function(e,t,n,i,r,a){var l=this._polyline,u=this._polygon,c=e.hostModel,d=o(this._data,e,this._stackedOnPoints,t,this._coordSys,n,this._valueOrigin,a),h=d.current,f=d.stackedOnCurrent,p=d.next,m=d.stackedOnNext;r&&(h=x(d.current,n,r),f=x(d.stackedOnCurrent,n,r),p=x(d.next,n,r),m=x(d.stackedOnNext,n,r)),l.shape.__points=d.current,l.shape.points=h,s.updateProps(l,{shape:{points:p}},c),u&&(u.setShape({points:h,stackedOnPoints:f}),s.updateProps(u,{shape:{points:p,stackedOnPoints:m}},c));for(var g=[],v=d.status,y=0;y<v.length;y++){if("="===v[y].cmd){var b=e.getItemGraphicEl(v[y].idx1);b&&g.push({el:b,ptIdx:y})}}l.animators&&l.animators.length&&l.animators[0].during(function(){for(var e=0;e<g.length;e++){g[e].el.attr("position",l.shape.__points[g[e].ptIdx])}})},remove:function(e){var t=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl(function(e,i){e.__temp&&(t.remove(e),n.setItemGraphicEl(i,null))}),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._data=null}});e.exports=S},"+kxT":function(e,t){var n={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1};e.exports=function(e,t,i){return n.hasOwnProperty(t)?i*e.dpr:i}},"+lh6":function(e,t,n){"use strict";var i,r=n("cDxT");r.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""))
-/**
- * Checks if an event is supported in the current execution environment.
- *
- * NOTE: This will not work correctly for non-generic events such as `change`,
- * `reset`, `load`, `error`, and `select`.
- *
- * Borrows from Modernizr.
- *
- * @param {string} eventNameSuffix Event name, e.g. "click".
- * @param {?boolean} capture Check if the capture phase is supported.
- * @return {boolean} True if the event is supported.
- * @internal
- * @license Modernizr 3.0.0pre (Custom Build) | MIT
- */,e.exports=function(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,a=n in document;if(!a){var o=document.createElement("div");o.setAttribute(n,"return;"),a="function"==typeof o[n]}return!a&&i&&"wheel"===e&&(a=document.implementation.hasFeature("Events.wheel","3.0")),a}},"+pnm":function(e,t,n){n("V9mB"),n("z1q5"),n("9PUD"),n("pH91"),n("Luoa"),n("WBXz"),n("DqbA"),n("c7bb"),n("gzF7")},"+sAc":function(e,t,n){var i=n("GKMz"),r=n("luYz"),a=n("g0yf"),o=n("OGtO"),s=n("CH74"),l=r.applyTransform;function u(){s.call(this)}function c(e){this.name=e,this.zoomLimit,s.call(this),this._roamTransformable=new u,this._rawTransformable=new u,this._center,this._zoom}function d(e,t,n,i){var r=n.seriesModel,a=r?r.coordinateSystem:null;return a===this?a[e](i):null}i.mixin(u,s),c.prototype={constructor:c,type:"view",dimensions:["x","y"],setBoundingRect:function(e,t,n,i){return this._rect=new o(e,t,n,i),this._rect},getBoundingRect:function(){return this._rect},setViewRect:function(e,t,n,i){this.transformTo(e,t,n,i),this._viewRect=new o(e,t,n,i)},transformTo:function(e,t,n,i){var r=this.getBoundingRect(),a=this._rawTransformable;a.transform=r.calculateTransform(new o(e,t,n,i)),a.decomposeTransform(),this._updateTransform()},setCenter:function(e){e&&(this._center=e,this._updateCenterAndZoom())},setZoom:function(e){e=e||1;var t=this.zoomLimit;t&&(null!=t.max&&(e=Math.min(t.max,e)),null!=t.min&&(e=Math.max(t.min,e))),this._zoom=e,this._updateCenterAndZoom()},getDefaultCenter:function(){var e=this.getBoundingRect();return[e.x+e.width/2,e.y+e.height/2]},getCenter:function(){return this._center||this.getDefaultCenter()},getZoom:function(){return this._zoom||1},getRoamTransform:function(){return this._roamTransformable.getLocalTransform()},_updateCenterAndZoom:function(){var e=this._rawTransformable.getLocalTransform(),t=this._roamTransformable,n=this.getDefaultCenter(),i=this.getCenter(),a=this.getZoom();i=r.applyTransform([],i,e),n=r.applyTransform([],n,e),t.origin=i,t.position=[n[0]-i[0],n[1]-i[1]],t.scale=[a,a],this._updateTransform()},_updateTransform:function(){var e=this._roamTransformable,t=this._rawTransformable;t.parent=e,e.updateTransform(),t.updateTransform(),a.copy(this.transform||(this.transform=[]),t.transform||a.create()),this._rawTransform=t.getLocalTransform(),this.invTransform=this.invTransform||[],a.invert(this.invTransform,this.transform),this.decomposeTransform()},getViewRect:function(){return this._viewRect},getViewRectAfterRoam:function(){var e=this.getBoundingRect().clone();return e.applyTransform(this.transform),e},dataToPoint:function(e,t,n){var i=t?this._rawTransform:this.transform;return n=n||[],i?l(n,e,i):r.copy(n,e)},pointToData:function(e){var t=this.invTransform;return t?l([],e,t):[e[0],e[1]]},convertToPixel:i.curry(d,"dataToPoint"),convertFromPixel:i.curry(d,"pointToData"),containPoint:function(e){return this.getViewRectAfterRoam().contain(e[0],e[1])}},i.mixin(c,s);var h=c;e.exports=h},"+upV":function(e,t,n){var i=n("KSHG"),r=n("luYz").applyTransform,a=n("OGtO"),o=n("Zjj5"),s=n("gxMf"),l=n("MPog"),u=n("RBTo"),c=n("ofeI"),d=n("ihWO"),h=n("gt1/"),f=n("Q9e6"),p=n("yX3w"),m=n("l8Rx"),g=n("eHVV"),v=p.CMD,y=Math.round,b=Math.sqrt,_=Math.abs,x=Math.cos,w=Math.sin,S=Math.max;if(!i.canvasSupported){var C=21600,M=C/2,k=function(e){e.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",e.coordsize=C+","+C,e.coordorigin="0,0"},T=function(e,t,n){return"rgb("+[e,t,n].join(",")+")"},A=function(e,t){t&&e&&t.parentNode!==e&&e.appendChild(t)},I=function(e,t){t&&e&&t.parentNode===e&&e.removeChild(t)},E=function(e,t,n){return 1e5*(parseFloat(e)||0)+1e3*(parseFloat(t)||0)+n},D=function(e,t){return"string"==typeof e?e.lastIndexOf("%")>=0?parseFloat(e)/100*t:parseFloat(e):e},O=function(e,t,n){var i=o.parse(t);n=+n,isNaN(n)&&(n=1),i&&(e.color=T(i[0],i[1],i[2]),e.opacity=n*i[3])},P=function(e,t,n,i){var a="fill"==t,s=e.getElementsByTagName(t)[0];null!=n[t]&&"none"!==n[t]&&(a||!a&&n.lineWidth)?(e[a?"filled":"stroked"]="true",n[t]instanceof m&&I(e,s),s||(s=g.createNode(t)),a?function(e,t,n){var i,a,s=t.fill;if(null!=s)if(s instanceof m){var l,u=0,c=[0,0],d=0,h=1,f=n.getBoundingRect(),p=f.width,g=f.height;if("linear"===s.type){l="gradient";var v=n.transform,y=[s.x*p,s.y*g],b=[s.x2*p,s.y2*g];v&&(r(y,y,v),r(b,b,v));var _=b[0]-y[0],x=b[1]-y[1];(u=180*Math.atan2(_,x)/Math.PI)<0&&(u+=360),u<1e-6&&(u=0)}else{l="gradientradial",y=[s.x*p,s.y*g],v=n.transform;var w=n.scale,M=p,k=g;c=[(y[0]-f.x)/M,(y[1]-f.y)/k],v&&r(y,y,v),M/=w[0]*C,k/=w[1]*C;var A=S(M,k);d=0/A,h=2*s.r/A-d}var I=s.colorStops.slice();I.sort(function(e,t){return e.offset-t.offset});for(var E=I.length,D=[],P=[],L=0;L<E;L++){var R=I[L],N=(i=R.color,a=o.parse(i),[T(a[0],a[1],a[2]),a[3]]);P.push(R.offset*h+d+" "+N[0]),0!==L&&L!==E-1||D.push(N)}if(E>=2){var B=D[0][0],F=D[1][0],z=D[0][1]*t.opacity,V=D[1][1]*t.opacity;e.type=l,e.method="none",e.focus="100%",e.angle=u,e.color=B,e.color2=F,e.colors=P.join(","),e.opacity=V,e.opacity2=z}"radial"===l&&(e.focusposition=c.join(","))}else O(e,s,t.opacity)}(s,n,i):function(e,t){null!=t.lineDash&&(e.dashstyle=t.lineDash.join(" ")),null==t.stroke||t.stroke instanceof m||O(e,t.stroke,t.opacity)}(s,n),A(e,s)):(e[a?"filled":"stroked"]="false",I(e,s))},L=[[],[],[]];f.prototype.brushVML=function(e){var t=this.style,n=this._vmlEl;n||(n=g.createNode("shape"),k(n),this._vmlEl=n),P(n,"fill",t,this),P(n,"stroke",t,this);var i=this.transform,a=null!=i,o=n.getElementsByTagName("stroke")[0];if(o){var s=t.lineWidth;if(a&&!t.strokeNoScale){var l=i[0]*i[3]-i[1]*i[2];s*=b(_(l))}o.weight=s+"px"}var u=this.path||(this.path=new p);this.__dirtyPath&&(u.beginPath(),this.buildPath(u,this.shape),u.toStatic(),this.__dirtyPath=!1),n.path=function(e,t){var n,i,a,o,s,l,u=v.M,c=v.C,d=v.L,h=v.A,f=v.Q,p=[],m=e.data,g=e.len();for(o=0;o<g;){switch(i="",n=0,a=m[o++]){case u:i=" m ",n=1,s=m[o++],l=m[o++],L[0][0]=s,L[0][1]=l;break;case d:i=" l ",n=1,s=m[o++],l=m[o++],L[0][0]=s,L[0][1]=l;break;case f:case c:i=" c ",n=3;var _,S,k=m[o++],T=m[o++],A=m[o++],I=m[o++];a===f?(_=A,S=I,A=(A+2*k)/3,I=(I+2*T)/3,k=(s+2*k)/3,T=(l+2*T)/3):(_=m[o++],S=m[o++]),L[0][0]=k,L[0][1]=T,L[1][0]=A,L[1][1]=I,L[2][0]=_,L[2][1]=S,s=_,l=S;break;case h:var E=0,D=0,O=1,P=1,R=0;t&&(E=t[4],D=t[5],O=b(t[0]*t[0]+t[1]*t[1]),P=b(t[2]*t[2]+t[3]*t[3]),R=Math.atan2(-t[1]/P,t[0]/O));var N=m[o++],B=m[o++],F=m[o++],z=m[o++],V=m[o++]+R,$=m[o++]+V+R;o++;var G=m[o++],j=N+x(V)*F,H=B+w(V)*z,W=(k=N+x($)*F,T=B+w($)*z,G?" wa ":" at ");Math.abs(j-k)<1e-4&&(Math.abs($-V)>.01?G&&(j+=.0125):Math.abs(H-B)<1e-4?G&&j<N||!G&&j>N?T-=.0125:T+=.0125:G&&H<B||!G&&H>B?k+=.0125:k-=.0125),p.push(W,y(((N-F)*O+E)*C-M),",",y(((B-z)*P+D)*C-M),",",y(((N+F)*O+E)*C-M),",",y(((B+z)*P+D)*C-M),",",y((j*O+E)*C-M),",",y((H*P+D)*C-M),",",y((k*O+E)*C-M),",",y((T*P+D)*C-M)),s=k,l=T;break;case v.R:var U=L[0],K=L[1];U[0]=m[o++],U[1]=m[o++],K[0]=U[0]+m[o++],K[1]=U[1]+m[o++],t&&(r(U,U,t),r(K,K,t)),U[0]=y(U[0]*C-M),K[0]=y(K[0]*C-M),U[1]=y(U[1]*C-M),K[1]=y(K[1]*C-M),p.push(" m ",U[0],",",U[1]," l ",K[0],",",U[1]," l ",K[0],",",K[1]," l ",U[0],",",K[1]);break;case v.Z:p.push(" x ")}if(n>0){p.push(i);for(var q=0;q<n;q++){var Y=L[q];t&&r(Y,Y,t),p.push(y(Y[0]*C-M),",",y(Y[1]*C-M),q<n-1?",":"")}}}return p.join("")}(u,this.transform),n.style.zIndex=E(this.zlevel,this.z,this.z2),A(e,n),null!=t.text?this.drawRectText(e,this.getBoundingRect()):this.removeRectText(e)},f.prototype.onRemove=function(e){I(e,this._vmlEl),this.removeRectText(e)},f.prototype.onAdd=function(e){A(e,this._vmlEl),this.appendRectText(e)};d.prototype.brushVML=function(e){var t,n,i,a=this.style,o=a.image;if("object"==typeof(i=o)&&i.tagName&&"IMG"===i.tagName.toUpperCase()){var s=o.src;if(s===this._imageSrc)t=this._imageWidth,n=this._imageHeight;else{var l=o.runtimeStyle,u=l.width,c=l.height;l.width="auto",l.height="auto",t=o.width,n=o.height,l.width=u,l.height=c,this._imageSrc=s,this._imageWidth=t,this._imageHeight=n}o=s}else o===this._imageSrc&&(t=this._imageWidth,n=this._imageHeight);if(o){var d=a.x||0,h=a.y||0,f=a.width,p=a.height,m=a.sWidth,v=a.sHeight,_=a.sx||0,x=a.sy||0,w=m&&v,C=this._vmlEl;C||(C=g.doc.createElement("div"),k(C),this._vmlEl=C);var M,T=C.style,I=!1,D=1,O=1;if(this.transform&&(M=this.transform,D=b(M[0]*M[0]+M[1]*M[1]),O=b(M[2]*M[2]+M[3]*M[3]),I=M[1]||M[2]),I){var P=[d,h],L=[d+f,h],R=[d,h+p],N=[d+f,h+p];r(P,P,M),r(L,L,M),r(R,R,M),r(N,N,M);var B=S(P[0],L[0],R[0],N[0]),F=S(P[1],L[1],R[1],N[1]),z=[];z.push("M11=",M[0]/D,",","M12=",M[2]/O,",","M21=",M[1]/D,",","M22=",M[3]/O,",","Dx=",y(d*D+M[4]),",","Dy=",y(h*O+M[5])),T.padding="0 "+y(B)+"px "+y(F)+"px 0",T.filter="progid:DXImageTransform.Microsoft.Matrix("+z.join("")+", SizingMethod=clip)"}else M&&(d=d*D+M[4],h=h*O+M[5]),T.filter="",T.left=y(d)+"px",T.top=y(h)+"px";var V=this._imageEl,$=this._cropEl;V||(V=g.doc.createElement("div"),this._imageEl=V);var G=V.style;if(w){if(t&&n)G.width=y(D*t*f/m)+"px",G.height=y(O*n*p/v)+"px";else{var j=new Image,H=this;j.onload=function(){j.onload=null,t=j.width,n=j.height,G.width=y(D*t*f/m)+"px",G.height=y(O*n*p/v)+"px",H._imageWidth=t,H._imageHeight=n,H._imageSrc=o},j.src=o}$||(($=g.doc.createElement("div")).style.overflow="hidden",this._cropEl=$);var W=$.style;W.width=y((f+_*f/m)*D),W.height=y((p+x*p/v)*O),W.filter="progid:DXImageTransform.Microsoft.Matrix(Dx="+-_*f/m*D+",Dy="+-x*p/v*O+")",$.parentNode||C.appendChild($),V.parentNode!=$&&$.appendChild(V)}else G.width=y(D*f)+"px",G.height=y(O*p)+"px",C.appendChild(V),$&&$.parentNode&&(C.removeChild($),this._cropEl=null);var U="",K=a.opacity;K<1&&(U+=".Alpha(opacity="+y(100*K)+") "),U+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+o+", SizingMethod=scale)",G.filter=U,C.style.zIndex=E(this.zlevel,this.z,this.z2),A(e,C),null!=a.text&&this.drawRectText(e,this.getBoundingRect())}},d.prototype.onRemove=function(e){I(e,this._vmlEl),this._vmlEl=null,this._cropEl=null,this._imageEl=null,this.removeRectText(e)},d.prototype.onAdd=function(e){A(e,this._vmlEl),this.appendRectText(e)};var R,N={},B=0,F=document.createElement("div");s.$override("measureText",function(e,t){var n=g.doc;R||((R=n.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",g.doc.body.appendChild(R));try{R.style.font=t}catch(e){}return R.innerHTML="",R.appendChild(n.createTextNode(e)),{width:R.offsetWidth}});for(var z=new a,V=function(e,t,n,i){var a=this.style;this.__dirty&&l.normalizeTextStyle(a,!0);var o=a.text;if(null!=o&&(o+=""),o){if(a.rich){var u=s.parseRichText(o,a);o=[];for(var c=0;c<u.lines.length;c++){for(var d=u.lines[c].tokens,h=[],f=0;f<d.length;f++)h.push(d[f].text);o.push(h.join(""))}o=o.join("\n")}var p,m,v=a.textAlign,b=a.textVerticalAlign,_=function(e){var t=N[e];if(!t){B>100&&(B=0,N={});var n,i=F.style;try{i.font=e,n=i.fontFamily.split(",")[0]}catch(e){}t={style:i.fontStyle||"normal",variant:i.fontVariant||"normal",weight:i.fontWeight||"normal",size:0|parseFloat(i.fontSize||12),family:n||"Microsoft YaHei"},N[e]=t,B++}return t}(a.font),x=_.style+" "+_.variant+" "+_.weight+" "+_.size+'px "'+_.family+'"';n=n||s.getBoundingRect(o,x,v,b);var w=this.transform;if(w&&!i&&(z.copy(t),z.applyTransform(w),t=z),i)p=t.x,m=t.y;else{var S=a.textPosition,C=a.textDistance;if(S instanceof Array)p=t.x+D(S[0],t.width),m=t.y+D(S[1],t.height),v=v||"left";else{var M=s.adjustTextPositionOnRect(S,t,C);p=M.x,m=M.y,v=v||M.textAlign,b=b||M.textVerticalAlign}}p=s.adjustTextX(p,n.width,v),m=s.adjustTextY(m,n.height,b),m+=n.height/2;var T,I,O,L=g.createNode,R=this._textVmlEl;R?I=(T=(O=R.firstChild).nextSibling).nextSibling:(R=L("line"),T=L("path"),I=L("textpath"),O=L("skew"),I.style["v-text-align"]="left",k(R),T.textpathok=!0,I.on=!0,R.from="0 0",R.to="1000 0.05",A(R,O),A(R,T),A(R,I),this._textVmlEl=R);var V=[p,m],$=R.style;w&&i?(r(V,V,w),O.on=!0,O.matrix=w[0].toFixed(3)+","+w[2].toFixed(3)+","+w[1].toFixed(3)+","+w[3].toFixed(3)+",0,0",O.offset=(y(V[0])||0)+","+(y(V[1])||0),O.origin="0 0",$.left="0px",$.top="0px"):(O.on=!1,$.left=y(p)+"px",$.top=y(m)+"px"),I.string=String(o).replace(/&/g,"&amp;").replace(/"/g,"&quot;");try{I.style.font=x}catch(e){}P(R,"fill",{fill:a.textFill,opacity:a.opacity},this),P(R,"stroke",{stroke:a.textStroke,opacity:a.opacity,lineDash:a.lineDash},this),R.style.zIndex=E(this.zlevel,this.z,this.z2),A(e,R)}},$=function(e){I(e,this._textVmlEl),this._textVmlEl=null},G=function(e){A(e,this._textVmlEl)},j=[u,c,d,f,h],H=0;H<j.length;H++){var W=j[H].prototype;W.drawRectText=V,W.removeRectText=$,W.appendRectText=G}h.prototype.brushVML=function(e){var t=this.style;null!=t.text?this.drawRectText(e,{x:t.x||0,y:t.y||0,width:0,height:0},this.getBoundingRect(),!0):this.removeRectText(e)},h.prototype.onRemove=function(e){this.removeRectText(e)},h.prototype.onAdd=function(e){this.appendRectText(e)}}},"/3Wz":function(e,t,n){var i=n("GKMz"),r=n("yIEC"),a=n("abCA"),o=n("F93s"),s=r.prototype,l=o.prototype,u=a.getPrecisionSafe,c=a.round,d=Math.floor,h=Math.ceil,f=Math.pow,p=Math.log,m=r.extend({type:"log",base:10,$constructor:function(){r.apply(this,arguments),this._originalScale=new o},getTicks:function(){var e=this._originalScale,t=this._extent,n=e.getExtent();return i.map(l.getTicks.call(this),function(i){var r=a.round(f(this.base,i));return r=i===t[0]&&e.__fixMin?g(r,n[0]):r,r=i===t[1]&&e.__fixMax?g(r,n[1]):r},this)},getLabel:l.getLabel,scale:function(e){return e=s.scale.call(this,e),f(this.base,e)},setExtent:function(e,t){var n=this.base;e=p(e)/p(n),t=p(t)/p(n),l.setExtent.call(this,e,t)},getExtent:function(){var e=this.base,t=s.getExtent.call(this);t[0]=f(e,t[0]),t[1]=f(e,t[1]);var n=this._originalScale,i=n.getExtent();return n.__fixMin&&(t[0]=g(t[0],i[0])),n.__fixMax&&(t[1]=g(t[1],i[1])),t},unionExtent:function(e){this._originalScale.unionExtent(e);var t=this.base;e[0]=p(e[0])/p(t),e[1]=p(e[1])/p(t),s.unionExtent.call(this,e)},unionExtentFromData:function(e,t){this.unionExtent(e.getApproximateExtent(t))},niceTicks:function(e){e=e||10;var t=this._extent,n=t[1]-t[0];if(!(n===1/0||n<=0)){var i=a.quantity(n);for(e/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[a.round(h(t[0]/i)*i),a.round(d(t[1]/i)*i)];this._interval=i,this._niceExtent=r}},niceExtent:function(e){l.niceExtent.call(this,e);var t=this._originalScale;t.__fixMin=e.fixMin,t.__fixMax=e.fixMax}});function g(e,t){return c(e,u(t))}i.each(["contain","normalize"],function(e){m.prototype[e]=function(t){return t=p(t)/p(this.base),s[e].call(this,t)}}),m.create=function(){return new m};var v=m;e.exports=v},"/4Ay":function(e,t,n){var i=n("GKMz");function r(e,t){return i.map(["Radius","Angle"],function(n,i){var r=this["get"+n+"Axis"](),a=t[i],o=e[i]/2,s="dataTo"+n,l="category"===r.type?r.getBandWidth():Math.abs(r[s](a-o)-r[s](a+o));return"Angle"===n&&(l=l*Math.PI/180),l},this)}e.exports=function(e){var t=e.getRadiusAxis(),n=e.getAngleAxis(),a=t.getExtent();return a[0]>a[1]&&a.reverse(),{coordSys:{type:"polar",cx:e.cx,cy:e.cy,r:a[1],r0:a[0]},api:{coord:i.bind(function(i){var r=t.dataToRadius(i[0]),a=n.dataToAngle(i[1]),o=e.coordToPoint([r,a]);return o.push(r,a*Math.PI/180),o}),size:i.bind(r,e)}}}},"/CiU":function(e,t,n){"use strict";var i,r;"function"==typeof Symbol&&Symbol.iterator;void 0===(r="function"==typeof(i=function(){var e=window,t={placement:"bottom",gpuAcceleration:!0,offset:0,boundariesElement:"viewport",boundariesPadding:5,preventOverflowOrder:["left","right","top","bottom"],flipBehavior:"flip",arrowElement:"[x-arrow]",arrowOffset:0,modifiers:["shift","offset","preventOverflow","keepTogether","arrow","flip","applyStyle"],modifiersIgnored:[],forceAbsolute:!1};function n(e,n,i){this._reference=e.jquery?e[0]:e,this.state={};var r=void 0===n||null===n,a=n&&"[object Object]"===Object.prototype.toString.call(n);return this._popper=r||a?this.parse(a?n:{}):n.jquery?n[0]:n,this._options=Object.assign({},t,i),this._options.modifiers=this._options.modifiers.map(function(e){if(-1===this._options.modifiersIgnored.indexOf(e))return"applyStyle"===e&&this._popper.setAttribute("x-placement",this._options.placement),this.modifiers[e]||e}.bind(this)),this.state.position=this._getPosition(this._popper,this._reference),c(this._popper,{position:this.state.position,top:0}),this.update(),this._setupEventListeners(),this}function i(t){var n=t.style.display,i=t.style.visibility;t.style.display="block",t.style.visibility="hidden";t.offsetWidth;var r=e.getComputedStyle(t),a=parseFloat(r.marginTop)+parseFloat(r.marginBottom),o=parseFloat(r.marginLeft)+parseFloat(r.marginRight),s={width:t.offsetWidth+o,height:t.offsetHeight+a};return t.style.display=n,t.style.visibility=i,s}function r(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function a(e){var t=Object.assign({},e);return t.right=t.left+t.width,t.bottom=t.top+t.height,t}function o(e,t){var n,i=0;for(n in e){if(e[n]===t)return i;i++}return null}function s(t,n){return e.getComputedStyle(t,null)[n]}function l(t){var n=t.offsetParent;return n!==e.document.body&&n?n:e.document.documentElement}function u(t){var n=t.parentNode;return n?n===e.document?e.document.body.scrollTop||e.document.body.scrollLeft?e.document.body:e.document.documentElement:-1!==["scroll","auto"].indexOf(s(n,"overflow"))||-1!==["scroll","auto"].indexOf(s(n,"overflow-x"))||-1!==["scroll","auto"].indexOf(s(n,"overflow-y"))?n:u(t.parentNode):t}function c(e,t){Object.keys(t).forEach(function(n){var i,r="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&(""!==(i=t[n])&&!isNaN(parseFloat(i))&&isFinite(i))&&(r="px"),e.style[n]=t[n]+r})}function d(e){var t={width:e.offsetWidth,height:e.offsetHeight,left:e.offsetLeft,top:e.offsetTop};return t.right=t.left+t.width,t.bottom=t.top+t.height,t}function h(e){var t=e.getBoundingClientRect(),n=-1!=navigator.userAgent.indexOf("MSIE")&&"HTML"===e.tagName?-e.scrollTop:t.top;return{left:t.left,top:n,right:t.right,bottom:t.bottom,width:t.right-t.left,height:t.bottom-n}}function f(t){for(var n=["","ms","webkit","moz","o"],i=0;i<n.length;i++){var r=n[i]?n[i]+t.charAt(0).toUpperCase()+t.slice(1):t;if(void 0!==e.document.body.style[r])return r}return null}return n.prototype.destroy=function(){return this._popper.removeAttribute("x-placement"),this._popper.style.left="",this._popper.style.position="",this._popper.style.top="",this._popper.style[f("transform")]="",this._removeEventListeners(),this._options.removeOnDestroy&&this._popper.remove(),this},n.prototype.update=function(){var e={instance:this,styles:{}};e.placement=this._options.placement,e._originalPlacement=this._options.placement,e.offsets=this._getOffsets(this._popper,this._reference,e.placement),e.boundaries=this._getBoundaries(e,this._options.boundariesPadding,this._options.boundariesElement),e=this.runModifiers(e,this._options.modifiers),"function"==typeof this.state.updateCallback&&this.state.updateCallback(e)},n.prototype.onCreate=function(e){return e(this),this},n.prototype.onUpdate=function(e){return this.state.updateCallback=e,this},n.prototype.parse=function(t){var n={tagName:"div",classNames:["popper"],attributes:[],parent:e.document.body,content:"",contentType:"text",arrowTagName:"div",arrowClassNames:["popper__arrow"],arrowAttributes:["x-arrow"]};t=Object.assign({},n,t);var i=e.document,r=i.createElement(t.tagName);if(s(r,t.classNames),l(r,t.attributes),"node"===t.contentType?r.appendChild(t.content.jquery?t.content[0]:t.content):"html"===t.contentType?r.innerHTML=t.content:r.textContent=t.content,t.arrowTagName){var a=i.createElement(t.arrowTagName);s(a,t.arrowClassNames),l(a,t.arrowAttributes),r.appendChild(a)}var o=t.parent.jquery?t.parent[0]:t.parent;if("string"==typeof o){if((o=i.querySelectorAll(t.parent)).length>1&&console.warn("WARNING: the given `parent` query("+t.parent+") matched more than one element, the first one will be used"),0===o.length)throw"ERROR: the given `parent` doesn't exists!";o=o[0]}return o.length>1&&o instanceof Element==!1&&(console.warn("WARNING: you have passed as parent a list of elements, the first one will be used"),o=o[0]),o.appendChild(r),r;function s(e,t){t.forEach(function(t){e.classList.add(t)})}function l(e,t){t.forEach(function(t){e.setAttribute(t.split(":")[0],t.split(":")[1]||"")})}},n.prototype._getPosition=function(t,n){l(n);return this._options.forceAbsolute?"absolute":function t(n){if(n===e.document.body)return!1;if("fixed"===s(n,"position"))return!0;return n.parentNode?t(n.parentNode):n}(n)?"fixed":"absolute"},n.prototype._getOffsets=function(e,t,n){n=n.split("-")[0];var r={};r.position=this.state.position;var a="fixed"===r.position,o=function(e,t,n){var i=h(e),r=h(t);if(n){var a=u(t);r.top+=a.scrollTop,r.bottom+=a.scrollTop,r.left+=a.scrollLeft,r.right+=a.scrollLeft}return{top:i.top-r.top,left:i.left-r.left,bottom:i.top-r.top+i.height,right:i.left-r.left+i.width,width:i.width,height:i.height}}(t,l(e),a),s=i(e);return-1!==["right","left"].indexOf(n)?(r.top=o.top+o.height/2-s.height/2,r.left="left"===n?o.left-s.width:o.right):(r.left=o.left+o.width/2-s.width/2,r.top="top"===n?o.top-s.height:o.bottom),r.width=s.width,r.height=s.height,{popper:r,reference:o}},n.prototype._setupEventListeners=function(){if(this.state.updateBound=this.update.bind(this),e.addEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement){var t=u(this._reference);t!==e.document.body&&t!==e.document.documentElement||(t=e),t.addEventListener("scroll",this.state.updateBound),this.state.scrollTarget=t}},n.prototype._removeEventListeners=function(){e.removeEventListener("resize",this.state.updateBound),"window"!==this._options.boundariesElement&&this.state.scrollTarget&&(this.state.scrollTarget.removeEventListener("scroll",this.state.updateBound),this.state.scrollTarget=null),this.state.updateBound=null},n.prototype._getBoundaries=function(t,n,i){var r,a,o={};if("window"===i){var s=e.document.body,c=e.document.documentElement;r=Math.max(s.scrollHeight,s.offsetHeight,c.clientHeight,c.scrollHeight,c.offsetHeight),o={top:0,right:Math.max(s.scrollWidth,s.offsetWidth,c.clientWidth,c.scrollWidth,c.offsetWidth),bottom:r,left:0}}else if("viewport"===i){var h=l(this._popper),f=u(this._popper),p=d(h),m="fixed"===t.offsets.popper.position?0:(a=f)==document.body?Math.max(document.documentElement.scrollTop,document.body.scrollTop):a.scrollTop,g="fixed"===t.offsets.popper.position?0:function(e){return e==document.body?Math.max(document.documentElement.scrollLeft,document.body.scrollLeft):e.scrollLeft}(f);o={top:0-(p.top-m),right:e.document.documentElement.clientWidth-(p.left-g),bottom:e.document.documentElement.clientHeight-(p.top-m),left:0-(p.left-g)}}else o=l(this._popper)===i?{top:0,left:0,right:i.clientWidth,bottom:i.clientHeight}:d(i);return o.left+=n,o.right-=n,o.top=o.top+n,o.bottom=o.bottom-n,o},n.prototype.runModifiers=function(e,t,n){var i=t.slice();return void 0!==n&&(i=this._options.modifiers.slice(0,o(this._options.modifiers,n))),i.forEach(function(t){var n;(n=t)&&"[object Function]"==={}.toString.call(n)&&(e=t.call(this,e))}.bind(this)),e},n.prototype.isModifierRequired=function(e,t){var n=o(this._options.modifiers,e);return!!this._options.modifiers.slice(0,n).filter(function(e){return e===t}).length},n.prototype.modifiers={},n.prototype.modifiers.applyStyle=function(e){var t,n={position:e.offsets.popper.position},i=Math.round(e.offsets.popper.left),r=Math.round(e.offsets.popper.top);return this._options.gpuAcceleration&&(t=f("transform"))?(n[t]="translate3d("+i+"px, "+r+"px, 0)",n.top=0,n.left=0):(n.left=i,n.top=r),Object.assign(n,e.styles),c(this._popper,n),this._popper.setAttribute("x-placement",e.placement),this.isModifierRequired(this.modifiers.applyStyle,this.modifiers.arrow)&&e.offsets.arrow&&c(e.arrowElement,e.offsets.arrow),e},n.prototype.modifiers.shift=function(e){var t=e.placement,n=t.split("-")[0],i=t.split("-")[1];if(i){var r=e.offsets.reference,o=a(e.offsets.popper),s={y:{start:{top:r.top},end:{top:r.top+r.height-o.height}},x:{start:{left:r.left},end:{left:r.left+r.width-o.width}}},l=-1!==["bottom","top"].indexOf(n)?"x":"y";e.offsets.popper=Object.assign(o,s[l][i])}return e},n.prototype.modifiers.preventOverflow=function(e){var t=this._options.preventOverflowOrder,n=a(e.offsets.popper),i={left:function(){var t=n.left;return n.left<e.boundaries.left&&(t=Math.max(n.left,e.boundaries.left)),{left:t}},right:function(){var t=n.left;return n.right>e.boundaries.right&&(t=Math.min(n.left,e.boundaries.right-n.width)),{left:t}},top:function(){var t=n.top;return n.top<e.boundaries.top&&(t=Math.max(n.top,e.boundaries.top)),{top:t}},bottom:function(){var t=n.top;return n.bottom>e.boundaries.bottom&&(t=Math.min(n.top,e.boundaries.bottom-n.height)),{top:t}}};return t.forEach(function(t){e.offsets.popper=Object.assign(n,i[t]())}),e},n.prototype.modifiers.keepTogether=function(e){var t=a(e.offsets.popper),n=e.offsets.reference,i=Math.floor;return t.right<i(n.left)&&(e.offsets.popper.left=i(n.left)-t.width),t.left>i(n.right)&&(e.offsets.popper.left=i(n.right)),t.bottom<i(n.top)&&(e.offsets.popper.top=i(n.top)-t.height),t.top>i(n.bottom)&&(e.offsets.popper.top=i(n.bottom)),e},n.prototype.modifiers.flip=function(e){if(!this.isModifierRequired(this.modifiers.flip,this.modifiers.preventOverflow))return console.warn("WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!"),e;if(e.flipped&&e.placement===e._originalPlacement)return e;var t=e.placement.split("-")[0],n=r(t),i=e.placement.split("-")[1]||"",o=[];return(o="flip"===this._options.flipBehavior?[t,n]:this._options.flipBehavior).forEach(function(s,l){if(t===s&&o.length!==l+1){t=e.placement.split("-")[0],n=r(t);var u=a(e.offsets.popper),c=-1!==["right","bottom"].indexOf(t);(c&&Math.floor(e.offsets.reference[t])>Math.floor(u[n])||!c&&Math.floor(e.offsets.reference[t])<Math.floor(u[n]))&&(e.flipped=!0,e.placement=o[l+1],i&&(e.placement+="-"+i),e.offsets.popper=this._getOffsets(this._popper,this._reference,e.placement).popper,e=this.runModifiers(e,this._options.modifiers,this._flip))}}.bind(this)),e},n.prototype.modifiers.offset=function(e){var t=this._options.offset,n=e.offsets.popper;return-1!==e.placement.indexOf("left")?n.top-=t:-1!==e.placement.indexOf("right")?n.top+=t:-1!==e.placement.indexOf("top")?n.left-=t:-1!==e.placement.indexOf("bottom")&&(n.left+=t),e},n.prototype.modifiers.arrow=function(e){var t=this._options.arrowElement,n=this._options.arrowOffset;if("string"==typeof t&&(t=this._popper.querySelector(t)),!t)return e;if(!this._popper.contains(t))return console.warn("WARNING: `arrowElement` must be child of its popper element!"),e;if(!this.isModifierRequired(this.modifiers.arrow,this.modifiers.keepTogether))return console.warn("WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!"),e;var r={},o=e.placement.split("-")[0],s=a(e.offsets.popper),l=e.offsets.reference,u=-1!==["left","right"].indexOf(o),c=u?"height":"width",d=u?"top":"left",h=u?"left":"top",f=u?"bottom":"right",p=i(t)[c];l[f]-p<s[d]&&(e.offsets.popper[d]-=s[d]-(l[f]-p)),l[d]+p>s[f]&&(e.offsets.popper[d]+=l[d]+p-s[f]);var m=l[d]+(n||l[c]/2-p/2)-s[d];return m=Math.max(Math.min(s[c]-p-8,m),8),r[d]=m,r[h]="",e.offsets.arrow=r,e.arrowElement=t,e},Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:function(e){if(void 0===e||null===e)throw new TypeError("Cannot convert first argument to object");for(var t=Object(e),n=1;n<arguments.length;n++){var i=arguments[n];if(void 0!==i&&null!==i){i=Object(i);for(var r=Object.keys(i),a=0,o=r.length;a<o;a++){var s=r[a],l=Object.getOwnPropertyDescriptor(i,s);void 0!==l&&l.enumerable&&(t[s]=i[s])}}}return t}}),n})?i.call(t,n,t,e):i)||(e.exports=r)},"/ItL":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some(function(e,i){return e[0]===t&&(n=i,!0)}),n}return function(){function t(){this.__entries__=[]}var n={size:{configurable:!0}};return n.size.get=function(){return this.__entries__.length},t.prototype.get=function(t){var n=e(this.__entries__,t),i=this.__entries__[n];return i&&i[1]},t.prototype.set=function(t,n){var i=e(this.__entries__,t);~i?this.__entries__[i][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,i=e(n,t);~i&&n.splice(i,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,i=this.__entries__;n<i.length;n+=1){var r=i[n];e.call(t,r[1],r[0])}},Object.defineProperties(t.prototype,n),t}()}(),i="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,r=void 0!==e&&e.Math===Math?e:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),a="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(r):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},o=2,s=["top","right","bottom","left","width","height","size","weight"],l="undefined"!=typeof MutationObserver,u=function(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,i=!1,r=0;function s(){n&&(n=!1,e()),i&&u()}function l(){a(s)}function u(){var e=Date.now();if(n){if(e-r<o)return;i=!0}else n=!0,i=!1,setTimeout(l,t);r=e}return u}(this.refresh.bind(this),20)};u.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},u.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},u.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},u.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),e.length>0},u.prototype.connect_=function(){i&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),l?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},u.prototype.disconnect_=function(){i&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},u.prototype.onTransitionEnd_=function(e){var t=e.propertyName;void 0===t&&(t=""),s.some(function(e){return!!~t.indexOf(e)})&&this.refresh()},u.getInstance=function(){return this.instance_||(this.instance_=new u),this.instance_},u.instance_=null;var c=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n+=1){var r=i[n];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},d=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||r},h=y(0,0,0,0);function f(e){return parseFloat(e)||0}function p(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];return t.reduce(function(t,n){return t+f(e["border-"+n+"-width"])},0)}function m(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return h;var i=d(e).getComputedStyle(e),r=function(e){for(var t={},n=0,i=["top","right","bottom","left"];n<i.length;n+=1){var r=i[n],a=e["padding-"+r];t[r]=f(a)}return t}(i),a=r.left+r.right,o=r.top+r.bottom,s=f(i.width),l=f(i.height);if("border-box"===i.boxSizing&&(Math.round(s+a)!==t&&(s-=p(i,"left","right")+a),Math.round(l+o)!==n&&(l-=p(i,"top","bottom")+o)),!function(e){return e===d(e).document.documentElement}(e)){var u=Math.round(s+a)-t,c=Math.round(l+o)-n;1!==Math.abs(u)&&(s-=u),1!==Math.abs(c)&&(l-=c)}return y(r.left,r.top,s,l)}var g="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof d(e).SVGGraphicsElement}:function(e){return e instanceof d(e).SVGElement&&"function"==typeof e.getBBox};function v(e){return i?g(e)?function(e){var t=e.getBBox();return y(0,0,t.width,t.height)}(e):m(e):h}function y(e,t,n,i){return{x:e,y:t,width:n,height:i}}var b=function(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=y(0,0,0,0),this.target=e};b.prototype.isActive=function(){var e=v(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},b.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e};var _=function(e,t){var n,i,r,a,o,s,l,u=(i=(n=t).x,r=n.y,a=n.width,o=n.height,s="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,l=Object.create(s.prototype),c(l,{x:i,y:r,width:a,height:o,top:r,right:i+a,bottom:o+r,left:i}),l);c(this,{target:e,contentRect:u})},x=function(e,t,i){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=i};x.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof d(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new b(e)),this.controller_.addObserver(this),this.controller_.refresh())}},x.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof d(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},x.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},x.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(t){t.isActive()&&e.activeObservations_.push(t)})},x.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map(function(e){return new _(e.target,e.broadcastRect())});this.callback_.call(e,t,e),this.clearActive()}},x.prototype.clearActive=function(){this.activeObservations_.splice(0)},x.prototype.hasActive=function(){return this.activeObservations_.length>0};var w="undefined"!=typeof WeakMap?new WeakMap:new n,S=function(e){if(!(this instanceof S))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var t=u.getInstance(),n=new x(e,t,this);w.set(this,n)};["observe","unobserve","disconnect"].forEach(function(e){S.prototype[e]=function(){return(t=w.get(this))[e].apply(t,arguments);var t}});var C=void 0!==r.ResizeObserver?r.ResizeObserver:S;t.default=C}.call(t,n("9AUj"))},"/KmJ":function(e,t,n){var i=n("GKMz"),r=n("fAuK"),a=function(e,t,n,i){r.call(this,e,t,n),this.type=i||"value",this.model=null};a.prototype={constructor:a,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},i.inherits(a,r);var o=a;e.exports=o},"/MtV":function(e,t,n){n("KJ1c").__DEV__;var i=n("qpbZ"),r=n("GKMz"),a=n("Zjj5"),o=n("KSHG"),s=n("Mt3s"),l=n("erEb"),u=n("ZZvz"),c=n("2pJC"),d=n("i+pt"),h=n("dewq"),f=n("JAl0"),p=n("pfwu"),m=n("6/6c"),g=n("YR6M"),v=n("mhmp"),y=n("Qmdc"),b=n("aVg8"),_=n("vqvJ"),x=n("242d").throttle,w=n("ZlXf"),S=n("HYE2"),C=n("KWg/"),M=n("Gs2l"),k=n("0wlW"),T=n("30rx");n("EaZP");var A=r.assert,I=r.each,E=r.isFunction,D=r.isObject,O=m.parseClassType,P=1e3,L=1e3,R=3e3,N={PROCESSOR:{FILTER:P,STATISTIC:5e3},VISUAL:{LAYOUT:L,GLOBAL:2e3,CHART:R,COMPONENT:4e3,BRUSH:5e3}},B="__flagInMainProcess",F="__optionUpdated",z=/^[a-zA-Z0-9_]+$/;function V(e){return function(t,n,i){t=t&&t.toLowerCase(),l.prototype[e].call(this,t,n,i)}}function $(){l.call(this)}function G(e,t,n){n=n||{},"string"==typeof t&&(t=de[t]),this.id,this.group,this._dom=e;var a=this._zr=i.init(e,{renderer:n.renderer||"canvas",devicePixelRatio:n.devicePixelRatio,width:n.width,height:n.height});this._throttledZrFlush=x(r.bind(a.flush,a),17),(t=r.clone(t))&&f(t,!0),this._theme=t,this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._coordSysMgr=new d;var o,u,h=this._api=(u=(o=this)._coordSysMgr,r.extend(new c(o),{getCoordinateSystems:r.bind(u.getCoordinateSystems,u),getComponentByElement:function(e){for(;e;){var t=e.__ecComponentInfo;if(null!=t)return o._model.getComponent(t.mainType,t.index);e=e.parent}}}));function p(e,t){return e.__prio-t.__prio}s(ce,p),s(se,p),this._scheduler=new M(this,h,se,ce),l.call(this),this._messageCenter=new $,this._initEvents(),this.resize=r.bind(this.resize,this),this._pendingActions=[],a.animation.on("frame",this._onframe,this),function(e,t){e.on("rendered",function(){t.trigger("rendered"),!e.animation.isFinished()||t[F]||t._scheduler.unfinished||t._pendingActions.length||t.trigger("finished")})}(a,this),r.setAsPrimitive(this)}$.prototype.on=V("on"),$.prototype.off=V("off"),$.prototype.one=V("one"),r.mixin($,l);var j=G.prototype;function H(e,t,n){var i,r=this._model,a=this._coordSysMgr.getCoordinateSystems();t=_.parseFinder(r,t);for(var o=0;o<a.length;o++){var s=a[o];if(s[e]&&null!=(i=s[e](r,t,n)))return i}}j._onframe=function(){if(!this._disposed){var e=this._scheduler;if(this[F]){var t=this[F].silent;this[B]=!0,U(this),W.update.call(this),this[B]=!1,this[F]=!1,Z.call(this,t),X.call(this,t)}else if(e.unfinished){var n=1,i=this._model,r=this._api;e.unfinished=!1;do{var a=+new Date;e.performSeriesTasks(i),e.performDataProcessorTasks(i),q(this,i),e.performVisualTasks(i),te(this,this._model,r,"remain"),n-=+new Date-a}while(n>0&&e.unfinished);e.unfinished||this._zr.flush()}}},j.getDom=function(){return this._dom},j.getZr=function(){return this._zr},j.setOption=function(e,t,n){var i;if(D(t)&&(n=t.lazyUpdate,i=t.silent,t=t.notMerge),this[B]=!0,!this._model||t){var r=new h(this._api),a=this._theme,o=this._model=new u(null,null,a,r);o.scheduler=this._scheduler,o.init(null,null,a,r)}this._model.setOption(e,le),n?(this[F]={silent:i},this[B]=!1):(U(this),W.update.call(this),this._zr.flush(),this[F]=!1,this[B]=!1,Z.call(this,i),X.call(this,i))},j.setTheme=function(){console.log("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},j.getModel=function(){return this._model},j.getOption=function(){return this._model&&this._model.getOption()},j.getWidth=function(){return this._zr.getWidth()},j.getHeight=function(){return this._zr.getHeight()},j.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},j.getRenderedCanvas=function(e){if(o.canvasSupported)return(e=e||{}).pixelRatio=e.pixelRatio||1,e.backgroundColor=e.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(e)},j.getSvgDataUrl=function(){if(o.svgSupported){var e=this._zr,t=e.storage.getDisplayList();return r.each(t,function(e){e.stopAnimation(!0)}),e.painter.pathToDataUrl()}},j.getDataURL=function(e){var t=(e=e||{}).excludeComponents,n=this._model,i=[],r=this;I(t,function(e){n.eachComponent({mainType:e},function(e){var t=r._componentsMap[e.__viewId];t.group.ignore||(i.push(t),t.group.ignore=!0)})});var a="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(e).toDataURL("image/"+(e&&e.type||"png"));return I(i,function(e){e.group.ignore=!1}),a},j.getConnectedDataURL=function(e){if(o.canvasSupported){var t=this.group,n=Math.min,a=Math.max;if(pe[t]){var s=1/0,l=1/0,u=-1/0,c=-1/0,d=[],h=e&&e.pixelRatio||1;r.each(fe,function(i,o){if(i.group===t){var h=i.getRenderedCanvas(r.clone(e)),f=i.getDom().getBoundingClientRect();s=n(f.left,s),l=n(f.top,l),u=a(f.right,u),c=a(f.bottom,c),d.push({dom:h,left:f.left,top:f.top})}});var f=(u*=h)-(s*=h),p=(c*=h)-(l*=h),m=r.createCanvas();m.width=f,m.height=p;var g=i.init(m);return I(d,function(e){var t=new b.Image({style:{x:e.left*h-s,y:e.top*h-l,image:e.dom}});g.add(t)}),g.refreshImmediately(),m.toDataURL("image/"+(e&&e.type||"png"))}return this.getDataURL(e)}},j.convertToPixel=r.curry(H,"convertToPixel"),j.convertFromPixel=r.curry(H,"convertFromPixel"),j.containPixel=function(e,t){var n,i=this._model;return e=_.parseFinder(i,e),r.each(e,function(e,i){i.indexOf("Models")>=0&&r.each(e,function(e){var r=e.coordinateSystem;if(r&&r.containPoint)n|=!!r.containPoint(t);else if("seriesModels"===i){var a=this._chartsMap[e.__viewId];a&&a.containPoint&&(n|=a.containPoint(t,e))}},this)},this),!!n},j.getVisual=function(e,t){var n=this._model,i=(e=_.parseFinder(n,e,{defaultMainType:"series"})).seriesModel.getData(),r=e.hasOwnProperty("dataIndexInside")?e.dataIndexInside:e.hasOwnProperty("dataIndex")?i.indexOfRawIndex(e.dataIndex):null;return null!=r?i.getItemVisual(r,t):i.getVisual(t)},j.getViewOfComponentModel=function(e){return this._componentsMap[e.__viewId]},j.getViewOfSeriesModel=function(e){return this._chartsMap[e.__viewId]};var W={prepareAndUpdate:function(e){U(this),W.update.call(this,e)},update:function(e){var t=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,s=this._scheduler;if(t){s.restoreData(t,e),s.performSeriesTasks(t),r.create(t,n),s.performDataProcessorTasks(t,e),q(this,t),r.update(t,n),Q(t),s.performVisualTasks(t,e),ee(this,t,n,e);var l=t.get("backgroundColor")||"transparent";if(o.canvasSupported)i.setBackgroundColor(l);else{var u=a.parse(l);l=a.stringify(u,"rgb"),0===u[3]&&(l="transparent")}ne(t,n)}},updateTransform:function(e){var t=this._model,n=this,i=this._api;if(t){var a=[];t.eachComponent(function(r,o){var s=n.getViewOfComponentModel(o);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(o,t,i,e);l&&l.update&&a.push(s)}else a.push(s)});var o=r.createHashMap();t.eachSeries(function(r){var a=n._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,t,i,e);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)}),Q(t),this._scheduler.performVisualTasks(t,e,{setDirty:!0,dirtyMap:o}),te(n,t,i,e,o),ne(t,this._api)}},updateView:function(e){var t=this._model;t&&(y.markUpdateMethod(e,"updateView"),Q(t),this._scheduler.performVisualTasks(t,e,{setDirty:!0}),ee(this,this._model,this._api,e),ne(t,this._api))},updateVisual:function(e){W.update.call(this,e)},updateLayout:function(e){W.update.call(this,e)}};function U(e){var t=e._model,n=e._scheduler;n.restorePipelines(t),n.prepareStageTasks(),J(e,"component",t,n),J(e,"chart",t,n),n.plan()}function K(e,t,n,i,a){var o=e._model;if(i){var s={};s[i+"Id"]=n[i+"Id"],s[i+"Index"]=n[i+"Index"],s[i+"Name"]=n[i+"Name"];var l={mainType:i,query:s};a&&(l.subType=a);var u=n.excludeSeriesId;null!=u&&(u=r.createHashMap(_.normalizeToArray(u))),o&&o.eachComponent(l,function(t){u&&null!=u.get(t.id)||c(e["series"===i?"_chartsMap":"_componentsMap"][t.__viewId])},e)}else I(e._componentsViews.concat(e._chartsViews),c);function c(i){i&&i.__alive&&i[t]&&i[t](i.__model,o,e._api,n)}}function q(e,t){var n=e._chartsMap,i=e._scheduler;t.eachSeries(function(e){i.updateStreamModes(e,n[e.__viewId])})}function Y(e,t){var n=e.type,i=e.escapeConnect,a=ae[n],o=a.actionInfo,s=(o.update||"update").split(":"),l=s.pop();s=null!=s[0]&&O(s[0]),this[B]=!0;var u=[e],c=!1;e.batch&&(c=!0,u=r.map(e.batch,function(t){return(t=r.defaults(r.extend({},t),e)).batch=null,t}));var d,h=[],f="highlight"===n||"downplay"===n;I(u,function(e){(d=(d=a.action(e,this._model,this._api))||r.extend({},e)).type=o.event||d.type,h.push(d),f?K(this,l,e,"series"):s&&K(this,l,e,s.main,s.sub)},this),"none"===l||f||s||(this[F]?(U(this),W.update.call(this,e),this[F]=!1):W[l].call(this,e)),d=c?{type:o.event||n,escapeConnect:i,batch:h}:h[0],this[B]=!1,!t&&this._messageCenter.trigger(d.type,d)}function Z(e){for(var t=this._pendingActions;t.length;){var n=t.shift();Y.call(this,n,e)}}function X(e){!e&&this.trigger("updated")}function J(e,t,n,i){for(var r="component"===t,a=r?e._componentsViews:e._chartsViews,o=r?e._componentsMap:e._chartsMap,s=e._zr,l=e._api,u=0;u<a.length;u++)a[u].__alive=!1;function c(e){var t="_ec_"+e.id+"_"+e.type,u=o[t];if(!u){var c=O(e.type);(u=new(r?v.getClass(c.main,c.sub):y.getClass(c.sub))).init(n,l),o[t]=u,a.push(u),s.add(u.group)}e.__viewId=u.__id=t,u.__alive=!0,u.__model=e,u.group.__ecComponentInfo={mainType:e.mainType,index:e.componentIndex},!r&&i.prepareView(u,e,n,l)}r?n.eachComponent(function(e,t){"series"!==e&&c(t)}):n.eachSeries(c);for(u=0;u<a.length;){var d=a[u];d.__alive?u++:(!r&&d.renderTask.dispose(),s.remove(d.group),d.dispose(n,l),a.splice(u,1),delete o[d.__id],d.__id=d.group.__ecComponentInfo=null)}}function Q(e){e.clearColorPalette(),e.eachSeries(function(e){e.clearColorPalette()})}function ee(e,t,n,i){!function(e,t,n,i,r){I(r||e._componentsViews,function(e){var r=e.__model;e.render(r,t,n,i),re(r,e)})}(e,t,n,i),I(e._chartsViews,function(e){e.__alive=!1}),te(e,t,n,i),I(e._chartsViews,function(e){e.__alive||e.remove(t,n)})}function te(e,t,n,i,r){var a,s=e._scheduler;t.eachSeries(function(t){var n=e._chartsMap[t.__viewId];n.__alive=!0;var o=n.renderTask;s.updatePayload(o,i),r&&r.get(t.uid)&&o.dirty(),a|=o.perform(s.getPerformArgs(o)),n.group.silent=!!t.get("silent"),re(t,n),function(e,t){var n=e.get("blendMode")||null;t.group.traverse(function(e){e.isGroup||e.style.blend!==n&&e.setStyle("blend",n),e.eachPendingDisplayable&&e.eachPendingDisplayable(function(e){e.setStyle("blend",n)})})}(t,n)}),s.unfinished|=a,function(e,t){var n=e.storage,i=0;n.traverse(function(e){e.isGroup||i++}),i>t.get("hoverLayerThreshold")&&!o.node&&n.traverse(function(e){e.isGroup||(e.useHoverLayer=!0)})}(e._zr,t),S(e._zr.dom,t)}function ne(e,t){I(ue,function(n){n(e,t)})}j.resize=function(e){this._zr.resize(e);var t=this._model;if(this._loadingFX&&this._loadingFX.resize(),t){var n=t.resetOption("media"),i=e&&e.silent;this[B]=!0,n&&U(this),W.update.call(this),this[B]=!1,Z.call(this,i),X.call(this,i)}},j.showLoading=function(e,t){if(D(e)&&(t=e,e=""),e=e||"default",this.hideLoading(),he[e]){var n=he[e](this._api,t),i=this._zr;this._loadingFX=n,i.add(n)}},j.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},j.makeActionFromEvent=function(e){var t=r.extend({},e);return t.type=oe[e.type],t},j.dispatchAction=function(e,t){D(t)||(t={silent:!!t}),ae[e.type]&&this._model&&(this[B]?this._pendingActions.push(e):(Y.call(this,e,t.silent),t.flush?this._zr.flush(!0):!1!==t.flush&&o.browser.weChat&&this._throttledZrFlush(),Z.call(this,t.silent),X.call(this,t.silent)))},j.appendData=function(e){var t=e.seriesIndex;this.getModel().getSeriesByIndex(t).appendData(e),this._scheduler.unfinished=!0},j.on=V("on"),j.off=V("off"),j.one=V("one");var ie=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function re(e,t){var n=e.get("z"),i=e.get("zlevel");t.group.traverse(function(e){"group"!==e.type&&(null!=n&&(e.z=n),null!=i&&(e.zlevel=i))})}j._initEvents=function(){I(ie,function(e){this._zr.on(e,function(t){var n,i=this.getModel(),a=t.target;if("globalout"===e)n={};else if(a&&null!=a.dataIndex){var o=a.dataModel||i.getSeriesByIndex(a.seriesIndex);n=o&&o.getDataParams(a.dataIndex,a.dataType)||{}}else a&&a.eventData&&(n=r.extend({},a.eventData));n&&(n.event=t,n.type=e,this.trigger(e,n))},this)},this),I(oe,function(e,t){this._messageCenter.on(t,function(e){this.trigger(t,e)},this)},this)},j.isDisposed=function(){return this._disposed},j.clear=function(){this.setOption({series:[]},!0)},j.dispose=function(){if(!this._disposed){this._disposed=!0,_.setAttribute(this.getDom(),ve,"");var e=this._api,t=this._model;I(this._componentsViews,function(n){n.dispose(t,e)}),I(this._chartsViews,function(n){n.dispose(t,e)}),this._zr.dispose(),delete fe[this.id]}},r.mixin(G,l);var ae={},oe={},se=[],le=[],ue=[],ce=[],de={},he={},fe={},pe={},me=new Date-0,ge=new Date-0,ve="_echarts_instance_",ye={};function be(e){pe[e]=!1}var _e=be;function xe(e){return fe[_.getAttribute(e,ve)]}function we(e,t){de[e]=t}function Se(e){le.push(e)}function Ce(e,t){Te(se,e,t,P)}function Me(e,t,n){"function"==typeof t&&(n=t,t="");var i=D(e)?e.type:[e,e={event:t}][0];e.event=(e.event||i).toLowerCase(),t=e.event,A(z.test(i)&&z.test(t)),ae[i]||(ae[i]={action:n,actionInfo:e}),oe[t]=i}function ke(e,t){Te(ce,e,t,R,"visual")}function Te(e,t,n,i,r){(E(t)||D(t))&&(n=t,t=i);var a=M.wrapStageHandler(n,r);return a.__prio=t,a.__raw=n,e.push(a),a}function Ae(e,t){he[e]=t}ke(2e3,w),Se(f),Ce(5e3,p),Ae("default",C),Me({type:"highlight",event:"highlight",update:"highlight"},r.noop),Me({type:"downplay",event:"downplay",update:"downplay"},r.noop),we("light",k),we("dark",T);t.version="4.1.0",t.dependencies={zrender:"4.0.4"},t.PRIORITY=N,t.init=function(e,t,n){var i=xe(e);if(i)return i;var r=new G(e,t,n);return r.id="ec_"+me++,fe[r.id]=r,_.setAttribute(e,ve,r.id),function(e){var t="__connectUpdateStatus";function n(e,n){for(var i=0;i<e.length;i++)e[i][t]=n}I(oe,function(i,r){e._messageCenter.on(r,function(i){if(pe[e.group]&&0!==e[t]){if(i&&i.escapeConnect)return;var r=e.makeActionFromEvent(i),a=[];I(fe,function(t){t!==e&&t.group===e.group&&a.push(t)}),n(a,0),I(a,function(e){1!==e[t]&&e.dispatchAction(r)}),n(a,2)}})})}(r),r},t.connect=function(e){if(r.isArray(e)){var t=e;e=null,I(t,function(t){null!=t.group&&(e=t.group)}),e=e||"g_"+ge++,I(t,function(t){t.group=e})}return pe[e]=!0,e},t.disConnect=be,t.disconnect=_e,t.dispose=function(e){"string"==typeof e?e=fe[e]:e instanceof G||(e=xe(e)),e instanceof G&&!e.isDisposed()&&e.dispose()},t.getInstanceByDom=xe,t.getInstanceById=function(e){return fe[e]},t.registerTheme=we,t.registerPreprocessor=Se,t.registerProcessor=Ce,t.registerPostUpdate=function(e){ue.push(e)},t.registerAction=Me,t.registerCoordinateSystem=function(e,t){d.register(e,t)},t.getCoordinateSystemDimensions=function(e){var t=d.get(e);if(t)return t.getDimensionsInfo?t.getDimensionsInfo():t.dimensions.slice()},t.registerLayout=function(e,t){Te(ce,e,t,L,"layout")},t.registerVisual=ke,t.registerLoading=Ae,t.extendComponentModel=function(e){return m.extend(e)},t.extendComponentView=function(e){return v.extend(e)},t.extendSeriesModel=function(e){return g.extend(e)},t.extendChartView=function(e){return y.extend(e)},t.setCanvasCreator=function(e){r.$override("createCanvas",e)},t.registerMap=function(e,t,n){t.geoJson&&!t.features&&(n=t.specialAreas,t=t.geoJson),"string"==typeof t&&(t="undefined"!=typeof JSON&&JSON.parse?JSON.parse(t):new Function("return ("+t+");")()),ye[e]={geoJson:t,specialAreas:n}},t.getMap=function(e){return ye[e]},t.dataTool={};var Ie=n("9aCb");!function(){for(var e in Ie)Ie.hasOwnProperty(e)&&(t[e]=Ie[e])}()},"/Wj5":function(e,t,n){e.exports=n("IiIs")},"/ZBN":function(e,t,n){"use strict";var i=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)};var r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function a(e,t){var n;return t&&!0===t.clone&&i(e)?s((n=e,Array.isArray(n)?[]:{}),e,t):e}function o(e,t,n){var r=e.slice();return t.forEach(function(t,o){void 0===r[o]?r[o]=a(t,n):i(t)?r[o]=s(e[o],t,n):-1===e.indexOf(t)&&r.push(a(t,n))}),r}function s(e,t,n){var r=Array.isArray(t);return r===Array.isArray(e)?r?((n||{arrayMerge:o}).arrayMerge||o)(e,t,n):function(e,t,n){var r={};return i(e)&&Object.keys(e).forEach(function(t){r[t]=a(e[t],n)}),Object.keys(t).forEach(function(o){i(t[o])&&e[o]?r[o]=s(e[o],t[o],n):r[o]=a(t[o],n)}),r}(e,t,n):a(t,n)}s.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce(function(e,n){return s(e,n,t)})};var l=s;e.exports=l},"/eGH":function(e,t,n){n("MXDK"),n("VMxf"),n("kOfd"),n("wks9"),n("aZnC"),n("DKbI"),n("dewo")},"/egZ":function(e,t,n){"use strict";var i=n("fEpO");function r(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new i(e),t(n.reason))})}r.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},r.source=function(){var e;return{token:new r(function(t){e=t}),cancel:e}},e.exports=r},"/gXo":function(e,t,n){var i=n("Mcur"),r=n("OXaN"),a=n("VjRt")("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=r(e),i(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},"/qLD":function(e,t,n){n("ROrh"),e.exports=n("AKd3").Number.isNaN},"/r4/":function(e,t,n){var i=n("mEMm"),r=n("r2gs");e.exports=function(e){return i(r(e))}},"01Ub":function(e,t,n){var i=n("GKMz"),r=n("7Rvj"),a=i.each;function o(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!0}t.createVisualMappings=function(e,t,n){var o={};return a(t,function(t){var s,l=o[t]=((s=function(){}).prototype.__hidden=s.prototype,new s);a(e[t],function(e,a){if(r.isValidType(a)){var o={type:a,visual:e};n&&n(o,t),l[a]=new r(o),"opacity"===a&&((o=i.clone(o)).type="colorAlpha",l.__hidden.__alphaForOpacity=new r(o))}})}),o},t.replaceVisualOption=function(e,t,n){var r;i.each(n,function(e){t.hasOwnProperty(e)&&o(t[e])&&(r=!0)}),r&&i.each(n,function(n){t.hasOwnProperty(n)&&o(t[n])?e[n]=i.clone(t[n]):delete e[n]})},t.applyVisual=function(e,t,n,a,o,s){var l,u={};function c(e){return n.getItemVisual(l,e)}function d(e,t){n.setItemVisual(l,e,t)}function h(e,i){l=null==s?e:i;var r=n.getRawDataItem(l);if(!r||!1!==r.visualMap)for(var h=a.call(o,e),f=t[h],p=u[h],m=0,g=p.length;m<g;m++){var v=p[m];f[v]&&f[v].applyVisual(e,c,d)}}i.each(e,function(e){var n=r.prepareVisualTypes(t[e]);u[e]=n}),null==s?n.each(h):n.each([s],h)},t.incrementalApplyVisual=function(e,t,n,a){var o={};return i.each(e,function(e){var n=r.prepareVisualTypes(t[e]);o[e]=n}),{progress:function(e,i){function r(e){return i.getItemVisual(l,e)}function s(e,t){i.setItemVisual(l,e,t)}var l;for(null!=a&&(a=i.getDimension(a));null!=(l=e.next());){var u=i.getRawDataItem(l);if(u&&!1===u.visualMap)return;for(var c=null!=a?i.get(a,l,!0):l,d=n(c),h=t[d],f=o[d],p=0,m=f.length;p<m;p++){var g=f[p];h[g]&&h[g].applyVisual(c,r,s)}}}}}},"035p":function(e,t,n){var i=n("Qb3P"),r=n("3m5Y"),a=n("Q/cl").getLayoutRect,o=n("GKMz").each;function s(e,t,n){this.dimension="single",this.dimensions=["single"],this._axis=null,this._rect,this._init(e,t,n),this.model=e}s.prototype={type:"singleAxis",axisPointerEnabled:!0,constructor:s,_init:function(e,t,n){var a=this.dimension,o=new i(a,r.createScaleByModel(e),[0,0],e.get("type"),e.get("position")),s="category"===o.type;o.onBand=s&&e.get("boundaryGap"),o.inverse=e.get("inverse"),o.orient=e.get("orient"),e.axis=o,o.model=e,o.coordinateSystem=this,this._axis=o},update:function(e,t){e.eachSeries(function(e){if(e.coordinateSystem===this){var t=e.getData();o(t.mapDimension(this.dimension,!0),function(e){this._axis.scale.unionExtentFromData(t,e)},this),r.niceScaleExtent(this._axis.scale,this._axis.model)}},this)},resize:function(e,t){this._rect=a({left:e.get("left"),top:e.get("top"),right:e.get("right"),bottom:e.get("bottom"),width:e.get("width"),height:e.get("height")},{width:t.getWidth(),height:t.getHeight()}),this._adjustAxis()},getRect:function(){return this._rect},_adjustAxis:function(){var e=this._rect,t=this._axis,n=t.isHorizontal(),i=n?[0,e.width]:[0,e.height],r=t.reverse?1:0;t.setExtent(i[r],i[1-r]),this._updateAxisTransform(t,n?e.x:e.y)},_updateAxisTransform:function(e,t){var n=e.getExtent(),i=n[0]+n[1],r=e.isHorizontal();e.toGlobalCoord=r?function(e){return e+t}:function(e){return i-e+t},e.toLocalCoord=r?function(e){return e-t}:function(e){return i-e+t}},getAxis:function(){return this._axis},getBaseAxis:function(){return this._axis},getAxes:function(){return[this._axis]},getTooltipAxes:function(){return{baseAxes:[this.getAxis()]}},containPoint:function(e){var t=this.getRect(),n=this.getAxis();return"horizontal"===n.orient?n.contain(n.toLocalCoord(e[0]))&&e[1]>=t.y&&e[1]<=t.y+t.height:n.contain(n.toLocalCoord(e[1]))&&e[0]>=t.y&&e[0]<=t.y+t.height},pointToData:function(e){var t=this.getAxis();return[t.coordToData(t.toLocalCoord(e["horizontal"===t.orient?0:1]))]},dataToPoint:function(e){var t=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===t.orient?0:1;return e instanceof Array&&(e=e[0]),i[r]=t.toGlobalCoord(t.dataToCoord(+e)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i}};var l=s;e.exports=l},"0CF4":function(e,t,n){var i=n("/MtV");n("nxtP"),n("0kSX");var r=n("E3SK"),a=n("19g+");i.registerLayout(r),i.registerVisual(a)},"0F8Y":function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=n("Qmdc");function o(e,t,n,i){var r=t.getData(),a=this.dataIndex,o=r.getName(a),l=t.get("selectedOffset");i.dispatchAction({type:"pieToggleSelect",from:e,name:o,seriesId:t.id}),r.each(function(e){s(r.getItemGraphicEl(e),r.getItemLayout(e),t.isSelected(r.getName(e)),l,n)})}function s(e,t,n,i,r){var a=(t.startAngle+t.endAngle)/2,o=Math.cos(a),s=Math.sin(a),l=n?i:0,u=[o*l,s*l];r?e.animate().when(200,{position:u}).start("bounceOut"):e.attr("position",u)}function l(e,t){r.Group.call(this);var n=new r.Sector({z2:2}),i=new r.Polyline,a=new r.Text;function o(){i.ignore=i.hoverIgnore,a.ignore=a.hoverIgnore}function s(){i.ignore=i.normalIgnore,a.ignore=a.normalIgnore}this.add(n),this.add(i),this.add(a),this.updateData(e,t,!0),this.on("emphasis",o).on("normal",s).on("mouseover",o).on("mouseout",s)}var u=l.prototype;u.updateData=function(e,t,n){var a=this.childAt(0),o=e.hostModel,l=e.getItemModel(t),u=e.getItemLayout(t),c=i.extend({},u);(c.label=null,n)?(a.setShape(c),"scale"===o.getShallow("animationType")?(a.shape.r=u.r0,r.initProps(a,{shape:{r:u.r}},o,t)):(a.shape.endAngle=u.startAngle,r.updateProps(a,{shape:{endAngle:u.endAngle}},o,t))):r.updateProps(a,{shape:c},o,t);var d=e.getItemVisual(t,"color");a.useStyle(i.defaults({lineJoin:"bevel",fill:d},l.getModel("itemStyle").getItemStyle())),a.hoverStyle=l.getModel("emphasis.itemStyle").getItemStyle();var h=l.getShallow("cursor");function f(){a.stopAnimation(!0),a.animateTo({shape:{r:u.r+o.get("hoverOffset")}},300,"elasticOut")}function p(){a.stopAnimation(!0),a.animateTo({shape:{r:u.r}},300,"elasticOut")}h&&a.attr("cursor",h),s(this,e.getItemLayout(t),o.isSelected(null,t),o.get("selectedOffset"),o.get("animation")),a.off("mouseover").off("mouseout").off("emphasis").off("normal"),l.get("hoverAnimation")&&o.isAnimationEnabled()&&a.on("mouseover",f).on("mouseout",p).on("emphasis",f).on("normal",p),this._updateLabel(e,t),r.setHoverStyle(this)},u._updateLabel=function(e,t){var n=this.childAt(1),i=this.childAt(2),a=e.hostModel,o=e.getItemModel(t),s=e.getItemLayout(t).label,l=e.getItemVisual(t,"color");r.updateProps(n,{shape:{points:s.linePoints||[[s.x,s.y],[s.x,s.y],[s.x,s.y]]}},a,t),r.updateProps(i,{style:{x:s.x,y:s.y}},a,t),i.attr({rotation:s.rotation,origin:[s.x,s.y],z2:10});var u=o.getModel("label"),c=o.getModel("emphasis.label"),d=o.getModel("labelLine"),h=o.getModel("emphasis.labelLine");l=e.getItemVisual(t,"color");r.setLabelStyle(i.style,i.hoverStyle={},u,c,{labelFetcher:e.hostModel,labelDataIndex:t,defaultText:e.getName(t),autoColor:l,useInsideStyle:!!s.inside},{textAlign:s.textAlign,textVerticalAlign:s.verticalAlign,opacity:e.getItemVisual(t,"opacity")}),i.ignore=i.normalIgnore=!u.get("show"),i.hoverIgnore=!c.get("show"),n.ignore=n.normalIgnore=!d.get("show"),n.hoverIgnore=!h.get("show"),n.setStyle({stroke:l,opacity:e.getItemVisual(t,"opacity")}),n.setStyle(d.getModel("lineStyle").getLineStyle()),n.hoverStyle=h.getModel("lineStyle").getLineStyle();var f=d.get("smooth");f&&!0===f&&(f=.4),n.setShape({smooth:f})},i.inherits(l,r.Group);var c=a.extend({type:"pie",init:function(){var e=new r.Group;this._sectorGroup=e},render:function(e,t,n,r){if(!r||r.from!==this.uid){var a=e.getData(),s=this._data,u=this.group,c=t.get("animation"),d=!s,h=e.get("animationType"),f=i.curry(o,this.uid,e,c,n),p=e.get("selectedMode");if(a.diff(s).add(function(e){var t=new l(a,e);d&&"scale"!==h&&t.eachChild(function(e){e.stopAnimation(!0)}),p&&t.on("click",f),a.setItemGraphicEl(e,t),u.add(t)}).update(function(e,t){var n=s.getItemGraphicEl(t);n.updateData(a,e),n.off("click"),p&&n.on("click",f),u.add(n),a.setItemGraphicEl(e,n)}).remove(function(e){var t=s.getItemGraphicEl(e);u.remove(t)}).execute(),c&&d&&a.count()>0&&"scale"!==h){var m=a.getItemLayout(0),g=Math.max(n.getWidth(),n.getHeight())/2,v=i.bind(u.removeClipPath,u);u.setClipPath(this._createClipPath(m.cx,m.cy,g,m.startAngle,m.clockwise,v,e))}this._data=a}},dispose:function(){},_createClipPath:function(e,t,n,i,a,o,s){var l=new r.Sector({shape:{cx:e,cy:t,r0:0,r:n,startAngle:i,endAngle:i,clockwise:a}});return r.initProps(l,{shape:{endAngle:i+(a?1:-1)*Math.PI*2}},s,o),l},containPoint:function(e,t){var n=t.getData().getItemLayout(0);if(n){var i=e[0]-n.cx,r=e[1]-n.cy,a=Math.sqrt(i*i+r*r);return a<=n.r&&a>=n.r0}}});e.exports=c},"0OTd":function(e,t,n){var i=n("/MtV");n("4cCs"),n("nTfm"),n("xUwI");var r=n("at5h"),a=n("kuK2"),o=n("XnpR"),s=n("Kq3v"),l=n("duoa"),u=n("XPmC"),c=n("DY6x"),d=n("8LEe");i.registerProcessor(r),i.registerVisual(a("graph","circle",null)),i.registerVisual(o),i.registerVisual(s),i.registerLayout(l),i.registerLayout(u),i.registerLayout(c),i.registerCoordinateSystem("graphView",{create:d})},"0jPB":function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=i.isObject,a=i.each,o=i.map,s=i.indexOf,l=(i.retrieve,n("Q/cl").getLayoutRect),u=n("3m5Y"),c=u.createScaleByModel,d=u.ifAxisCrossZero,h=u.niceScaleExtent,f=u.estimateLabelUnionRect,p=n("gTJY"),m=n("A2Qw"),g=n("i+pt"),v=n("cfvC").getStackedDimension;function y(e,t,n){return e.getCoordSysModel()===t}function b(e,t,n){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(e,t,n),this.model=e}n("LTKM");var _=b.prototype;function x(e,t,n){n.getAxesOnZeroOf=function(){return i?[i]:[]};var i,r=e[t],a=n.model,o=a.get("axisLine.onZero"),s=a.get("axisLine.onZeroAxisIndex");if(o)if(null==s){for(var l in r)if(r.hasOwnProperty(l)&&w(r[l])){i=r[l];break}}else w(r[s])&&(i=r[s])}function w(e){return e&&"category"!==e.type&&"time"!==e.type&&d(e)}_.type="grid",_.axisPointerEnabled=!0,_.getRect=function(){return this._rect},_.update=function(e,t){var n=this._axesMap;this._updateScale(e,this.model),a(n.x,function(e){h(e.scale,e.model)}),a(n.y,function(e){h(e.scale,e.model)}),a(n.x,function(e){x(n,"y",e)}),a(n.y,function(e){x(n,"x",e)}),this.resize(this.model,t)},_.resize=function(e,t,n){var i=l(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()});this._rect=i;var r=this._axesList;function o(){a(r,function(e){var t=e.isHorizontal(),n=t?[0,i.width]:[0,i.height],r=e.inverse?1:0;e.setExtent(n[r],n[1-r]),function(e,t){var n=e.getExtent(),i=n[0]+n[1];e.toGlobalCoord="x"===e.dim?function(e){return e+t}:function(e){return i-e+t},e.toLocalCoord="x"===e.dim?function(e){return e-t}:function(e){return i-e+t}}(e,t?i.x:i.y)})}o(),!n&&e.get("containLabel")&&(a(r,function(e){if(!e.model.get("axisLabel.inside")){var t=f(e);if(t){var n=e.isHorizontal()?"height":"width",r=e.model.get("axisLabel.margin");i[n]-=t[n]+r,"top"===e.position?i.y+=t.height+r:"left"===e.position&&(i.x+=t.width+r)}}}),o())},_.getAxis=function(e,t){var n=this._axesMap[e];if(null!=n){if(null==t)for(var i in n)if(n.hasOwnProperty(i))return n[i];return n[t]}},_.getAxes=function(){return this._axesList.slice()},_.getCartesian=function(e,t){if(null!=e&&null!=t){var n="x"+e+"y"+t;return this._coordsMap[n]}r(e)&&(t=e.yAxisIndex,e=e.xAxisIndex);for(var i=0,a=this._coordsList;i<a.length;i++)if(a[i].getAxis("x").index===e||a[i].getAxis("y").index===t)return a[i]},_.getCartesians=function(){return this._coordsList.slice()},_.convertToPixel=function(e,t,n){var i=this._findConvertTarget(e,t);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},_.convertFromPixel=function(e,t,n){var i=this._findConvertTarget(e,t);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},_._findConvertTarget=function(e,t){var n,i,r=t.seriesModel,a=t.xAxisModel||r&&r.getReferringComponents("xAxis")[0],o=t.yAxisModel||r&&r.getReferringComponents("yAxis")[0],l=t.gridModel,u=this._coordsList;if(r)n=r.coordinateSystem,s(u,n)<0&&(n=null);else if(a&&o)n=this.getCartesian(a.componentIndex,o.componentIndex);else if(a)i=this.getAxis("x",a.componentIndex);else if(o)i=this.getAxis("y",o.componentIndex);else if(l){l.coordinateSystem===this&&(n=this._coordsList[0])}return{cartesian:n,axis:i}},_.containPoint=function(e){var t=this._coordsList[0];if(t)return t.containPoint(e)},_._initCartesian=function(e,t,n){var i={left:!1,right:!1,top:!1,bottom:!1},r={x:{},y:{}},o={x:0,y:0};if(t.eachComponent("xAxis",s("x"),this),t.eachComponent("yAxis",s("y"),this),!o.x||!o.y)return this._axesMap={},void(this._axesList=[]);function s(t){return function(n,a){if(y(n,e)){var s=n.get("position");"x"===t?"top"!==s&&"bottom"!==s&&i[s="bottom"]&&(s="top"===s?"bottom":"top"):"left"!==s&&"right"!==s&&i[s="left"]&&(s="left"===s?"right":"left"),i[s]=!0;var l=new m(t,c(n),[0,0],n.get("type"),s),u="category"===l.type;l.onBand=u&&n.get("boundaryGap"),l.inverse=n.get("inverse"),n.axis=l,l.model=n,l.grid=this,l.index=a,this._axesList.push(l),r[t][a]=l,o[t]++}}}this._axesMap=r,a(r.x,function(t,n){a(r.y,function(i,r){var a="x"+n+"y"+r,o=new p(a);o.grid=this,o.model=e,this._coordsMap[a]=o,this._coordsList.push(o),o.addAxis(t),o.addAxis(i)},this)},this)},_._updateScale=function(e,t){function n(e,t,n){a(e.mapDimension(t.dim,!0),function(n){t.scale.unionExtentFromData(e,v(e,n))})}a(this._axesList,function(e){e.scale.setExtent(1/0,-1/0)}),e.eachSeries(function(i){if(M(i)){var r=C(i,e),a=r[0],o=r[1];if(!y(a,t)||!y(o,t))return;var s=this.getCartesian(a.componentIndex,o.componentIndex),l=i.getData(),u=s.getAxis("x"),c=s.getAxis("y");"list"===l.type&&(n(l,u,i),n(l,c,i))}},this)},_.getTooltipAxes=function(e){var t=[],n=[];return a(this.getCartesians(),function(i){var r=null!=e&&"auto"!==e?i.getAxis(e):i.getBaseAxis(),a=i.getOtherAxis(r);s(t,r)<0&&t.push(r),s(n,a)<0&&n.push(a)}),{baseAxes:t,otherAxes:n}};var S=["xAxis","yAxis"];function C(e,t){return o(S,function(t){return e.getReferringComponents(t)[0]})}function M(e){return"cartesian2d"===e.get("coordinateSystem")}b.create=function(e,t){var n=[];return e.eachComponent("grid",function(i,r){var a=new b(i,e,t);a.name="grid_"+r,a.resize(i,t,!0),i.coordinateSystem=a,n.push(a)}),e.eachSeries(function(e){if(M(e)){var t=C(e),n=t[0],i=t[1],r=n.getCoordSysModel().coordinateSystem;e.coordinateSystem=r.getCartesian(n.componentIndex,i.componentIndex)}}),n},b.dimensions=b.prototype.dimensions=p.prototype.dimensions,g.register("cartesian2d",b);var k=b;e.exports=k},"0jiU":function(e,t){function n(e){return e}function i(e,t,i,r,a){this._old=e,this._new=t,this._oldKeyGetter=i||n,this._newKeyGetter=r||n,this.context=a}function r(e,t,n,i,r){for(var a=0;a<e.length;a++){var o="_ec_"+r[i](e[a],a),s=t[o];null==s?(n.push(o),t[o]=a):(s.length||(t[o]=s=[s]),s.push(a))}}i.prototype={constructor:i,add:function(e){return this._add=e,this},update:function(e){return this._update=e,this},remove:function(e){return this._remove=e,this},execute:function(){var e=this._old,t=this._new,n={},i=[],a=[];for(r(e,{},i,"_oldKeyGetter",this),r(t,n,a,"_newKeyGetter",this),o=0;o<e.length;o++){if(null!=(l=n[s=i[o]]))(c=l.length)?(1===c&&(n[s]=null),l=l.unshift()):n[s]=null,this._update&&this._update(l,o);else this._remove&&this._remove(o)}for(var o=0;o<a.length;o++){var s=a[o];if(n.hasOwnProperty(s)){var l;if(null==(l=n[s]))continue;if(l.length)for(var u=0,c=l.length;u<c;u++)this._add&&this._add(l[u]);else this._add&&this._add(l)}}}};var a=i;e.exports=a},"0kSX":function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("BDGf"),a=n("5zoN"),o=n("AKeZ"),s=n("BAmx"),l=n("mBiu"),u=n("e7W4"),c=n("E3SK"),d=i.extendChartView({type:"lines",init:function(){},render:function(e,t,n){var i=e.getData(),r=this._updateLineDraw(i,e),a=e.get("zlevel"),o=e.get("effect.trailLength"),s=n.getZr(),l="svg"===s.painter.getType();l||s.painter.getLayer(a).clear(!0),null==this._lastZlevel||l||s.configLayer(this._lastZlevel,{motionBlur:!1}),this._showEffect(e)&&o&&(l||s.configLayer(a,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(o/10+.9,1),0)})),r.updateData(i),this._lastZlevel=a,this._finished=!0},incrementalPrepareRender:function(e,t,n){var i=e.getData();this._updateLineDraw(i,e).incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},incrementalRender:function(e,t,n){this._lineDraw.incrementalUpdate(e,t.getData()),this._finished=e.end===t.getData().count()},updateTransform:function(e,t,n){var i=e.getData(),r=e.pipelineContext;if(!this._finished||r.large||r.progressiveRender)return{update:!0};var a=c.reset(e);a.progress&&a.progress({start:0,end:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},_updateLineDraw:function(e,t){var n=this._lineDraw,i=this._showEffect(t),c=!!t.get("polyline"),d=t.pipelineContext.large;return n&&i===this._hasEffet&&c===this._isPolyline&&d===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=d?new u:new r(c?i?l:s:i?a:o),this._hasEffet=i,this._isPolyline=c,this._isLargeDraw=d,this.group.removeAll()),this.group.add(n.group),n},_showEffect:function(e){return!!e.get("effect.show")},_clearLayer:function(e){var t=e.getZr();"svg"===t.painter.getType()||null==this._lastZlevel||t.painter.getLayer(this._lastZlevel).clear(!0)},remove:function(e,t){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(t)},dispose:function(){}});e.exports=d},"0mJF":function(e,t){t.updateCenterAndZoom=function(e,t,n){var i=e.getZoom(),r=e.getCenter(),a=t.zoom,o=e.dataToPoint(r);null!=t.dx&&null!=t.dy&&(o[0]-=t.dx,o[1]-=t.dy,r=e.pointToData(o),e.setCenter(r));if(null!=a){if(n){var s=n.min||0,l=n.max||1/0;a=Math.max(Math.min(i*a,l),s)/i}e.scale[0]*=a,e.scale[1]*=a;var u=e.position,c=(t.originX-u[0])*(a-1),d=(t.originY-u[1])*(a-1);u[0]-=c,u[1]-=d,e.updateTransform(),r=e.pointToData(o),e.setCenter(r),e.setZoom(a*i)}return{center:e.getCenter(),zoom:e.getZoom()}}},"0wlW":function(e,t){var n=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],i={color:n,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],n]};e.exports=i},"115t":function(e,t,n){var i=n("RkrU").normalizeRadian,r=2*Math.PI;t.containStroke=function(e,t,n,a,o,s,l,u,c){if(0===l)return!1;var d=l;u-=e,c-=t;var h=Math.sqrt(u*u+c*c);if(h-d>n||h+d<n)return!1;if(Math.abs(a-o)%r<1e-4)return!0;if(s){var f=a;a=i(o),o=i(f)}else a=i(a),o=i(o);a>o&&(o+=r);var p=Math.atan2(c,u);return p<0&&(p+=r),p>=a&&p<=o||p+r>=a&&p+r<=o}},"19g+":function(e,t){function n(e){return e instanceof Array||(e=[e,e]),e}var i="lineStyle.opacity".split("."),r={seriesType:"lines",reset:function(e,t,r){var a=n(e.get("symbol")),o=n(e.get("symbolSize")),s=e.getData();return s.setVisual("fromSymbol",a&&a[0]),s.setVisual("toSymbol",a&&a[1]),s.setVisual("fromSymbolSize",o&&o[0]),s.setVisual("toSymbolSize",o&&o[1]),s.setVisual("opacity",e.get(i)),{dataEach:s.hasItemOption?function(e,t){var r=e.getItemModel(t),a=n(r.getShallow("symbol",!0)),o=n(r.getShallow("symbolSize",!0)),s=r.get(i);a[0]&&e.setItemVisual(t,"fromSymbol",a[0]),a[1]&&e.setItemVisual(t,"toSymbol",a[1]),o[0]&&e.setItemVisual(t,"fromSymbolSize",o[0]),o[1]&&e.setItemVisual(t,"toSymbolSize",o[1]),e.setItemVisual(t,"opacity",s)}:null}}};e.exports=r},"1BB8":function(e,t,n){var i=n("GKMz"),r=n("6/6c"),a=n("qIgY"),o=n("WtQt"),s=n("abCA"),l=n("8jLM"),u=r.extend({type:"baseParallelAxis",axis:null,activeIntervals:[],getAreaSelectStyle:function(){return a([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},setActiveIntervals:function(e){var t=this.activeIntervals=i.clone(e);if(t)for(var n=t.length-1;n>=0;n--)s.asc(t[n])},getActiveState:function(e){var t=this.activeIntervals;if(!t.length)return"normal";if(null==e||isNaN(e))return"inactive";if(1===t.length){var n=t[0];if(n[0]<=e&&e<=n[1])return"active"}else for(var i=0,r=t.length;i<r;i++)if(t[i][0]<=e&&e<=t[i][1])return"active";return"inactive"}});i.merge(u.prototype,l),o("parallel",u,function(e,t){return t.type||(t.data?"category":"value")},{type:"value",dim:null,areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10});var c=u;e.exports=c},"1HfM":function(e,t){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=151)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},151:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(152),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},152:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(153),r=n.n(i),a=n(154),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},153:function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElButton",inject:{elForm:{default:""},elFormItem:{default:""}},props:{type:{type:String,default:"default"},size:String,icon:{type:String,default:""},nativeType:{type:String,default:"button"},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},buttonSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},buttonDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},methods:{handleClick:function(e){this.$emit("click",e)}}}},154:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("button",{staticClass:"el-button",class:[e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],attrs:{disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType},on:{click:e.handleClick}},[e.loading?n("i",{staticClass:"el-icon-loading"}):e._e(),e.icon&&!e.loading?n("i",{class:e.icon}):e._e(),e.$slots.default?n("span",[e._t("default")],2):e._e()])},staticRenderFns:[]};t.a=i}})},"1Rfl":function(e,t,n){"use strict";var i=n("8r5Y");e.exports=function(e,t,n){return i.forEach(n,function(n){e=n(e,t)}),e}},"1Vji":function(e,t){function n(){}function i(e,t,n,i){for(var r=0,a=t.length,o=0,s=0;r<a;r++){var l=t[r];if(l.removed){for(u=[],c=s;c<s+l.count;c++)u.push(c);l.indices=u,s+=l.count}else{for(var u=[],c=o;c<o+l.count;c++)u.push(c);l.indices=u,o+=l.count,l.added||(s+=l.count)}}return t}n.prototype={diff:function(e,t,n){n||(n=function(e,t){return e===t}),this.equals=n;var r=this;e=e.slice();var a=(t=t.slice()).length,o=e.length,s=1,l=a+o,u=[{newPos:-1,components:[]}],c=this.extractCommon(u[0],t,e,0);if(u[0].newPos+1>=a&&c+1>=o){for(var d=[],h=0;h<t.length;h++)d.push(h);return[{indices:d,count:t.length}]}function f(){for(var n=-1*s;n<=s;n+=2){var l,c=u[n-1],d=u[n+1],h=(d?d.newPos:0)-n;c&&(u[n-1]=void 0);var f=c&&c.newPos+1<a,p=d&&0<=h&&h<o;if(f||p){if(!f||p&&c.newPos<d.newPos?(l={newPos:(m=d).newPos,components:m.components.slice(0)},r.pushComponent(l.components,void 0,!0)):((l=c).newPos++,r.pushComponent(l.components,!0,void 0)),h=r.extractCommon(l,t,e,n),l.newPos+1>=a&&h+1>=o)return i(r,l.components,t,e);u[n]=l}else u[n]=void 0}var m;s++}for(;s<=l;){var p=f();if(p)return p}},pushComponent:function(e,t,n){var i=e[e.length-1];i&&i.added===t&&i.removed===n?e[e.length-1]={count:i.count+1,added:t,removed:n}:e.push({count:1,added:t,removed:n})},extractCommon:function(e,t,n,i){for(var r=t.length,a=n.length,o=e.newPos,s=o-i,l=0;o+1<r&&s+1<a&&this.equals(t[o+1],n[s+1]);)o++,s++,l++;return l&&e.components.push({count:l}),e.newPos=o,s},tokenize:function(e){return e.slice()},join:function(e){return e.slice()}};var r=new n;e.exports=function(e,t,n){return r.diff(e,t,n)}},"1h8B":function(e,t,n){"use strict";t.__esModule=!0,t.PopupManager=void 0;var i=l(n("IvJb")),r=l(n("QxRo")),a=l(n("wGXc")),o=l(n("6SiW")),s=n("iOou");function l(e){return e&&e.__esModule?e:{default:e}}var u=1,c=void 0;t.default={props:{visible:{type:Boolean,default:!1},openDelay:{},closeDelay:{},zIndex:{},modal:{type:Boolean,default:!1},modalFade:{type:Boolean,default:!0},modalClass:{},modalAppendToBody:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!1},closeOnClickModal:{type:Boolean,default:!1}},beforeMount:function(){this._popupId="popup-"+u++,a.default.register(this._popupId,this)},beforeDestroy:function(){a.default.deregister(this._popupId),a.default.closeModal(this._popupId),this.restoreBodyStyle()},data:function(){return{opened:!1,bodyPaddingRight:null,computedBodyPaddingRight:0,withoutHiddenClass:!0,rendered:!1}},watch:{visible:function(e){var t=this;if(e){if(this._opening)return;this.rendered?this.open():(this.rendered=!0,i.default.nextTick(function(){t.open()}))}else this.close()}},methods:{open:function(e){var t=this;this.rendered||(this.rendered=!0);var n=(0,r.default)({},this.$props||this,e);this._closeTimer&&(clearTimeout(this._closeTimer),this._closeTimer=null),clearTimeout(this._openTimer);var i=Number(n.openDelay);i>0?this._openTimer=setTimeout(function(){t._openTimer=null,t.doOpen(n)},i):this.doOpen(n)},doOpen:function(e){if(!this.$isServer&&(!this.willOpen||this.willOpen())&&!this.opened){this._opening=!0;var t=function e(t){return 3===t.nodeType&&e(t=t.nextElementSibling||t.nextSibling),t}(this.$el),n=e.modal,i=e.zIndex;if(i&&(a.default.zIndex=i),n&&(this._closing&&(a.default.closeModal(this._popupId),this._closing=!1),a.default.openModal(this._popupId,a.default.nextZIndex(),this.modalAppendToBody?void 0:t,e.modalClass,e.modalFade),e.lockScroll)){this.withoutHiddenClass=!(0,s.hasClass)(document.body,"el-popup-parent--hidden"),this.withoutHiddenClass&&(this.bodyPaddingRight=document.body.style.paddingRight,this.computedBodyPaddingRight=parseInt((0,s.getStyle)(document.body,"paddingRight"),10)),c=(0,o.default)();var r=document.documentElement.clientHeight<document.body.scrollHeight,l=(0,s.getStyle)(document.body,"overflowY");c>0&&(r||"scroll"===l)&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.computedBodyPaddingRight+c+"px"),(0,s.addClass)(document.body,"el-popup-parent--hidden")}"static"===getComputedStyle(t).position&&(t.style.position="absolute"),t.style.zIndex=a.default.nextZIndex(),this.opened=!0,this.onOpen&&this.onOpen(),this.doAfterOpen()}},doAfterOpen:function(){this._opening=!1},close:function(){var e=this;if(!this.willClose||this.willClose()){null!==this._openTimer&&(clearTimeout(this._openTimer),this._openTimer=null),clearTimeout(this._closeTimer);var t=Number(this.closeDelay);t>0?this._closeTimer=setTimeout(function(){e._closeTimer=null,e.doClose()},t):this.doClose()}},doClose:function(){this._closing=!0,this.onClose&&this.onClose(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose()},doAfterClose:function(){a.default.closeModal(this._popupId),this._closing=!1},restoreBodyStyle:function(){this.modal&&this.withoutHiddenClass&&(document.body.style.paddingRight=this.bodyPaddingRight,(0,s.removeClass)(document.body,"el-popup-parent--hidden")),this.withoutHiddenClass=!0}}},t.PopupManager=a.default},"1m0t":function(e,t,n){var i;"undefined"!=typeof window&&(i=function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=11)}([function(e,t,n){"use strict";n.d(t,"a",function(){return c}),n.d(t,"b",function(){return d});var i=n(4),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function a(){}var o={trace:a,debug:a,log:a,warn:a,info:a,error:a},s=o;var l=Object(i.a)();function u(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];n.forEach(function(t){s[t]=e[t]?e[t].bind(e):function(e){var t=l.console[e];return t?function(){for(var n=arguments.length,i=Array(n),r=0;r<n;r++)i[r]=arguments[r];i[0]&&(i[0]=function(e,t){return t="["+e+"] > "+t}(e,i[0])),t.apply(l.console,i)}:a}(t)})}var c=function(e){if(!0===e||"object"===(void 0===e?"undefined":r(e))){u(e,"debug","log","info","warn","error");try{s.log()}catch(e){s=o}}else s=o},d=s},function(e,t,n){"use strict";t.a={MEDIA_ATTACHING:"hlsMediaAttaching",MEDIA_ATTACHED:"hlsMediaAttached",MEDIA_DETACHING:"hlsMediaDetaching",MEDIA_DETACHED:"hlsMediaDetached",BUFFER_RESET:"hlsBufferReset",BUFFER_CODECS:"hlsBufferCodecs",BUFFER_CREATED:"hlsBufferCreated",BUFFER_APPENDING:"hlsBufferAppending",BUFFER_APPENDED:"hlsBufferAppended",BUFFER_EOS:"hlsBufferEos",BUFFER_FLUSHING:"hlsBufferFlushing",BUFFER_FLUSHED:"hlsBufferFlushed",MANIFEST_LOADING:"hlsManifestLoading",MANIFEST_LOADED:"hlsManifestLoaded",MANIFEST_PARSED:"hlsManifestParsed",LEVEL_SWITCHING:"hlsLevelSwitching",LEVEL_SWITCHED:"hlsLevelSwitched",LEVEL_LOADING:"hlsLevelLoading",LEVEL_LOADED:"hlsLevelLoaded",LEVEL_UPDATED:"hlsLevelUpdated",LEVEL_PTS_UPDATED:"hlsLevelPtsUpdated",AUDIO_TRACKS_UPDATED:"hlsAudioTracksUpdated",AUDIO_TRACK_SWITCHING:"hlsAudioTrackSwitching",AUDIO_TRACK_SWITCHED:"hlsAudioTrackSwitched",AUDIO_TRACK_LOADING:"hlsAudioTrackLoading",AUDIO_TRACK_LOADED:"hlsAudioTrackLoaded",SUBTITLE_TRACKS_UPDATED:"hlsSubtitleTracksUpdated",SUBTITLE_TRACK_SWITCH:"hlsSubtitleTrackSwitch",SUBTITLE_TRACK_LOADING:"hlsSubtitleTrackLoading",SUBTITLE_TRACK_LOADED:"hlsSubtitleTrackLoaded",SUBTITLE_FRAG_PROCESSED:"hlsSubtitleFragProcessed",INIT_PTS_FOUND:"hlsInitPtsFound",FRAG_LOADING:"hlsFragLoading",FRAG_LOAD_PROGRESS:"hlsFragLoadProgress",FRAG_LOAD_EMERGENCY_ABORTED:"hlsFragLoadEmergencyAborted",FRAG_LOADED:"hlsFragLoaded",FRAG_DECRYPTED:"hlsFragDecrypted",FRAG_PARSING_INIT_SEGMENT:"hlsFragParsingInitSegment",FRAG_PARSING_USERDATA:"hlsFragParsingUserdata",FRAG_PARSING_METADATA:"hlsFragParsingMetadata",FRAG_PARSING_DATA:"hlsFragParsingData",FRAG_PARSED:"hlsFragParsed",FRAG_BUFFERED:"hlsFragBuffered",FRAG_CHANGED:"hlsFragChanged",FPS_DROP:"hlsFpsDrop",FPS_DROP_LEVEL_CAPPING:"hlsFpsDropLevelCapping",ERROR:"hlsError",DESTROYING:"hlsDestroying",KEY_LOADING:"hlsKeyLoading",KEY_LOADED:"hlsKeyLoaded",STREAM_STATE_TRANSITION:"hlsStreamStateTransition"}},function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"a",function(){return r});var i={NETWORK_ERROR:"networkError",MEDIA_ERROR:"mediaError",KEY_SYSTEM_ERROR:"keySystemError",MUX_ERROR:"muxError",OTHER_ERROR:"otherError"},r={KEY_SYSTEM_NO_KEYS:"keySystemNoKeys",KEY_SYSTEM_NO_ACCESS:"keySystemNoAccess",KEY_SYSTEM_NO_SESSION:"keySystemNoSession",KEY_SYSTEM_LICENSE_REQUEST_FAILED:"keySystemLicenseRequestFailed",MANIFEST_LOAD_ERROR:"manifestLoadError",MANIFEST_LOAD_TIMEOUT:"manifestLoadTimeOut",MANIFEST_PARSING_ERROR:"manifestParsingError",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"manifestIncompatibleCodecsError",LEVEL_LOAD_ERROR:"levelLoadError",LEVEL_LOAD_TIMEOUT:"levelLoadTimeOut",LEVEL_SWITCH_ERROR:"levelSwitchError",AUDIO_TRACK_LOAD_ERROR:"audioTrackLoadError",AUDIO_TRACK_LOAD_TIMEOUT:"audioTrackLoadTimeOut",FRAG_LOAD_ERROR:"fragLoadError",FRAG_LOAD_TIMEOUT:"fragLoadTimeOut",FRAG_DECRYPT_ERROR:"fragDecryptError",FRAG_PARSING_ERROR:"fragParsingError",REMUX_ALLOC_ERROR:"remuxAllocError",KEY_LOAD_ERROR:"keyLoadError",KEY_LOAD_TIMEOUT:"keyLoadTimeOut",BUFFER_ADD_CODEC_ERROR:"bufferAddCodecError",BUFFER_APPEND_ERROR:"bufferAppendError",BUFFER_APPENDING_ERROR:"bufferAppendingError",BUFFER_STALLED_ERROR:"bufferStalledError",BUFFER_FULL_ERROR:"bufferFullError",BUFFER_SEEK_OVER_HOLE:"bufferSeekOverHole",BUFFER_NUDGE_ON_STALL:"bufferNudgeOnStall",INTERNAL_EXCEPTION:"internalException"}},function(e,t,n){"use strict";n.d(t,"a",function(){return i});var i=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)}},function(e,t,n){"use strict";t.a=function(){return"undefined"==typeof window?self:window}},function(e,t,n){var i,r,a,o,s;i=/^((?:[a-zA-Z0-9+\-.]+:)?)(\/\/[^\/\;?#]*)?(.*?)??(;.*?)?(\?.*?)?(#.*?)?$/,r=/^([^\/;?#]*)(.*)$/,a=/(?:\/|^)\.(?=\/)/g,o=/(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,s={buildAbsoluteURL:function(e,t,n){if(n=n||{},e=e.trim(),!(t=t.trim())){if(!n.alwaysNormalize)return e;var i=this.parseURL(e);if(!o)throw new Error("Error trying to parse base URL.");return i.path=s.normalizePath(i.path),s.buildURLFromParts(i)}var a=this.parseURL(t);if(!a)throw new Error("Error trying to parse relative URL.");if(a.scheme)return n.alwaysNormalize?(a.path=s.normalizePath(a.path),s.buildURLFromParts(a)):t;var o=this.parseURL(e);if(!o)throw new Error("Error trying to parse base URL.");if(!o.netLoc&&o.path&&"/"!==o.path[0]){var l=r.exec(o.path);o.netLoc=l[1],o.path=l[2]}o.netLoc&&!o.path&&(o.path="/");var u={scheme:o.scheme,netLoc:a.netLoc,path:null,params:a.params,query:a.query,fragment:a.fragment};if(!a.netLoc&&(u.netLoc=o.netLoc,"/"!==a.path[0]))if(a.path){var c=o.path,d=c.substring(0,c.lastIndexOf("/")+1)+a.path;u.path=s.normalizePath(d)}else u.path=o.path,a.params||(u.params=o.params,a.query||(u.query=o.query));return null===u.path&&(u.path=n.alwaysNormalize?s.normalizePath(a.path):a.path),s.buildURLFromParts(u)},parseURL:function(e){var t=i.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(a,"");e.length!==(e=e.replace(o,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}},e.exports=s},function(e,t,n){"use strict";n.d(t,"b",function(){return r});var i=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.isHeader=function(e,t){return t+10<=e.length&&73===e[t]&&68===e[t+1]&&51===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},e.isFooter=function(e,t){return t+10<=e.length&&51===e[t]&&68===e[t+1]&&73===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},e.getID3Data=function(t,n){for(var i=n,r=0;e.isHeader(t,n);){r+=10,r+=e._readSize(t,n+6),e.isFooter(t,n+10)&&(r+=10),n+=r}if(r>0)return t.subarray(i,i+r)},e._readSize=function(e,t){var n=0;return n=(127&e[t])<<21,n|=(127&e[t+1])<<14,n|=(127&e[t+2])<<7,n|=127&e[t+3]},e.getTimeStamp=function(t){for(var n=e.getID3Frames(t),i=0;i<n.length;i++){var r=n[i];if(e.isTimeStampFrame(r))return e._readTimeStamp(r)}},e.isTimeStampFrame=function(e){return e&&"PRIV"===e.key&&"com.apple.streaming.transportStreamTimestamp"===e.info},e._getFrameData=function(t){var n=String.fromCharCode(t[0],t[1],t[2],t[3]),i=e._readSize(t,4);return{type:n,size:i,data:t.subarray(10,10+i)}},e.getID3Frames=function(t){for(var n=0,i=[];e.isHeader(t,n);){for(var r=e._readSize(t,n+6),a=(n+=10)+r;n+8<a;){var o=e._getFrameData(t.subarray(n)),s=e._decodeFrame(o);s&&i.push(s),n+=o.size+10}e.isFooter(t,n)&&(n+=10)}return i},e._decodeFrame=function(t){return"PRIV"===t.type?e._decodePrivFrame(t):"T"===t.type[0]?e._decodeTextFrame(t):"W"===t.type[0]?e._decodeURLFrame(t):void 0},e._readTimeStamp=function(e){if(8===e.data.byteLength){var t=new Uint8Array(e.data),n=1&t[3],i=(t[4]<<23)+(t[5]<<15)+(t[6]<<7)+t[7];return i/=45,n&&(i+=47721858.84),Math.round(i)}},e._decodePrivFrame=function(t){if(!(t.size<2)){var n=e._utf8ArrayToStr(t.data,!0),i=new Uint8Array(t.data.subarray(n.length+1));return{key:t.type,info:n,data:i.buffer}}},e._decodeTextFrame=function(t){if(!(t.size<2)){if("TXXX"===t.type){var n=1,i=e._utf8ArrayToStr(t.data.subarray(n));n+=i.length+1;var r=e._utf8ArrayToStr(t.data.subarray(n));return{key:t.type,info:i,data:r}}var a=e._utf8ArrayToStr(t.data.subarray(1));return{key:t.type,data:a}}},e._decodeURLFrame=function(t){if("WXXX"===t.type){if(t.size<2)return;var n=1,i=e._utf8ArrayToStr(t.data.subarray(n));n+=i.length+1;var r=e._utf8ArrayToStr(t.data.subarray(n));return{key:t.type,info:i,data:r}}var a=e._utf8ArrayToStr(t.data);return{key:t.type,data:a}},e._utf8ArrayToStr=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e.length,i=void 0,r=void 0,a=void 0,o="",s=0;s<n;){if(0===(i=e[s++])&&t)return o;if(0!==i&&3!==i)switch(i>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(i);break;case 12:case 13:r=e[s++],o+=String.fromCharCode((31&i)<<6|63&r);break;case 14:r=e[s++],a=e[s++],o+=String.fromCharCode((15&i)<<12|(63&r)<<6|(63&a)<<0)}}return o},e}(),r=i._utf8ArrayToStr;t.a=i},function(e,t){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function r(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}e.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,n,o,s,l,u;if(this._events||(this._events={}),"error"===e&&(!this._events.error||r(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(a(n=this._events[e]))return!1;if(i(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),n.apply(this,s)}else if(r(n))for(s=Array.prototype.slice.call(arguments,1),o=(u=n.slice()).length,l=0;l<o;l++)u[l].apply(this,s);return!0},n.prototype.addListener=function(e,t){var o;if(!i(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?r(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,r(this._events[e])&&!this._events[e].warned&&(o=a(this._maxListeners)?n.defaultMaxListeners:this._maxListeners)&&o>0&&this._events[e].length>o&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){if(!i(t))throw TypeError("listener must be a function");var n=!1;function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}return r.listener=t,this.on(e,r),this},n.prototype.removeListener=function(e,t){var n,a,o,s;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(o=(n=this._events[e]).length,a=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(r(n)){for(s=o;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){a=s;break}if(a<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(i(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";var i=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.subtle=t,this.aesIV=n}return e.prototype.decrypt=function(e,t){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e)},e}();var r=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.subtle=t,this.key=n}return e.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])},e}();var a=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.initTable()}return e.prototype.uint8ArrayToUint32Array_=function(e){for(var t=new DataView(e),n=new Uint32Array(4),i=0;i<4;i++)n[i]=t.getUint32(4*i);return n},e.prototype.initTable=function(){var e=this.sBox,t=this.invSBox,n=this.subMix,i=n[0],r=n[1],a=n[2],o=n[3],s=this.invSubMix,l=s[0],u=s[1],c=s[2],d=s[3],h=new Uint32Array(256),f=0,p=0,m=0;for(m=0;m<256;m++)h[m]=m<128?m<<1:m<<1^283;for(m=0;m<256;m++){var g=p^p<<1^p<<2^p<<3^p<<4;g=g>>>8^255&g^99,e[f]=g,t[g]=f;var v=h[f],y=h[v],b=h[y],_=257*h[g]^16843008*g;i[f]=_<<24|_>>>8,r[f]=_<<16|_>>>16,a[f]=_<<8|_>>>24,o[f]=_,_=16843009*b^65537*y^257*v^16843008*f,l[g]=_<<24|_>>>8,u[g]=_<<16|_>>>16,c[g]=_<<8|_>>>24,d[g]=_,f?(f=v^h[h[h[b^v]]],p^=h[h[p]]):f=p=1}},e.prototype.expandKey=function(e){for(var t=this.uint8ArrayToUint32Array_(e),n=!0,i=0;i<t.length&&n;)n=t[i]===this.key[i],i++;if(!n){this.key=t;var r=this.keySize=t.length;if(4!==r&&6!==r&&8!==r)throw new Error("Invalid aes key size="+r);var a=this.ksRows=4*(r+6+1),o=void 0,s=void 0,l=this.keySchedule=new Uint32Array(a),u=this.invKeySchedule=new Uint32Array(a),c=this.sBox,d=this.rcon,h=this.invSubMix,f=h[0],p=h[1],m=h[2],g=h[3],v=void 0,y=void 0;for(o=0;o<a;o++)o<r?v=l[o]=t[o]:(y=v,o%r==0?(y=c[(y=y<<8|y>>>24)>>>24]<<24|c[y>>>16&255]<<16|c[y>>>8&255]<<8|c[255&y],y^=d[o/r|0]<<24):r>6&&o%r==4&&(y=c[y>>>24]<<24|c[y>>>16&255]<<16|c[y>>>8&255]<<8|c[255&y]),l[o]=v=(l[o-r]^y)>>>0);for(s=0;s<a;s++)o=a-s,y=3&s?l[o]:l[o-4],u[s]=s<4||o<=4?y:f[c[y>>>24]]^p[c[y>>>16&255]]^m[c[y>>>8&255]]^g[c[255&y]],u[s]=u[s]>>>0}},e.prototype.networkToHostOrderSwap=function(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24},e.prototype.decrypt=function(e,t,n,i){for(var r,a,o,s=this.keySize+6,l=this.invKeySchedule,u=this.invSBox,c=this.invSubMix,d=c[0],h=c[1],f=c[2],p=c[3],m=this.uint8ArrayToUint32Array_(n),g=m[0],v=m[1],y=m[2],b=m[3],_=new Int32Array(e),x=new Int32Array(_.length),w=void 0,S=void 0,C=void 0,M=void 0,k=void 0,T=void 0,A=void 0,I=void 0,E=void 0,D=void 0,O=void 0,P=void 0,L=void 0,R=void 0,N=this.networkToHostOrderSwap;t<_.length;){for(E=N(_[t]),D=N(_[t+1]),O=N(_[t+2]),P=N(_[t+3]),k=E^l[0],T=P^l[1],A=O^l[2],I=D^l[3],L=4,R=1;R<s;R++)w=d[k>>>24]^h[T>>16&255]^f[A>>8&255]^p[255&I]^l[L],S=d[T>>>24]^h[A>>16&255]^f[I>>8&255]^p[255&k]^l[L+1],C=d[A>>>24]^h[I>>16&255]^f[k>>8&255]^p[255&T]^l[L+2],M=d[I>>>24]^h[k>>16&255]^f[T>>8&255]^p[255&A]^l[L+3],k=w,T=S,A=C,I=M,L+=4;w=u[k>>>24]<<24^u[T>>16&255]<<16^u[A>>8&255]<<8^u[255&I]^l[L],S=u[T>>>24]<<24^u[A>>16&255]<<16^u[I>>8&255]<<8^u[255&k]^l[L+1],C=u[A>>>24]<<24^u[I>>16&255]<<16^u[k>>8&255]<<8^u[255&T]^l[L+2],M=u[I>>>24]<<24^u[k>>16&255]<<16^u[T>>8&255]<<8^u[255&A]^l[L+3],L+=3,x[t]=N(w^g),x[t+1]=N(M^v),x[t+2]=N(C^y),x[t+3]=N(S^b),g=E,v=D,y=O,b=P,t+=4}return i?(r=x.buffer,a=r.byteLength,(o=a&&new DataView(r).getUint8(a-1))?r.slice(0,a-o):r):x.buffer},e.prototype.destroy=function(){this.key=void 0,this.keySize=void 0,this.ksRows=void 0,this.sBox=void 0,this.invSBox=void 0,this.subMix=void 0,this.invSubMix=void 0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.rcon=void 0},e}(),o=n(2),s=n(0),l=n(1),u=n(4);var c=Object(u.a)(),d=function(){function e(t,n){var i=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).removePKCS7Padding,r=void 0===i||i;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.logEnabled=!0,this.observer=t,this.config=n,this.removePKCS7Padding=r,r)try{var a=c.crypto;a&&(this.subtle=a.subtle||a.webkitSubtle)}catch(e){}this.disableWebCrypto=!this.subtle}return e.prototype.isSync=function(){return this.disableWebCrypto&&this.config.enableSoftwareAES},e.prototype.decrypt=function(e,t,n,o){var l=this;if(this.disableWebCrypto&&this.config.enableSoftwareAES){this.logEnabled&&(s.b.log("JS AES decrypt"),this.logEnabled=!1);var u=this.decryptor;u||(this.decryptor=u=new a),u.expandKey(t),o(u.decrypt(e,0,n,this.removePKCS7Padding))}else{this.logEnabled&&(s.b.log("WebCrypto AES decrypt"),this.logEnabled=!1);var c=this.subtle;this.key!==t&&(this.key=t,this.fastAesKey=new r(c,t)),this.fastAesKey.expandKey().then(function(r){new i(c,n).decrypt(e,r).catch(function(i){l.onWebCryptoError(i,e,t,n,o)}).then(function(e){o(e)})}).catch(function(i){l.onWebCryptoError(i,e,t,n,o)})}},e.prototype.onWebCryptoError=function(e,t,n,i,r){this.config.enableSoftwareAES?(s.b.log("WebCrypto Error, disable WebCrypto API"),this.disableWebCrypto=!0,this.logEnabled=!0,this.decrypt(t,n,i,r)):(s.b.error("decrypting error : "+e.message),this.observer.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.FRAG_DECRYPT_ERROR,fatal:!0,reason:e.message}))},e.prototype.destroy=function(){var e=this.decryptor;e&&(e.destroy(),this.decryptor=void 0)},e}();t.a=d},function(e,t,n){"use strict";var i=n(0),r=n(1);var a=Math.pow(2,32)-1,o=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observer=t,this.remuxer=n}return e.prototype.resetTimeStamp=function(e){this.initPTS=e},e.prototype.resetInitSegment=function(t,n,i,a){if(t&&t.byteLength){var o=this.initData=e.parseInitSegment(t);null==n&&(n="mp4a.40.5"),null==i&&(i="avc1.42e01e");var s={};o.audio&&o.video?s.audiovideo={container:"video/mp4",codec:n+","+i,initSegment:a?t:null}:(o.audio&&(s.audio={container:"audio/mp4",codec:n,initSegment:a?t:null}),o.video&&(s.video={container:"video/mp4",codec:i,initSegment:a?t:null})),this.observer.trigger(r.a.FRAG_PARSING_INIT_SEGMENT,{tracks:s})}else n&&(this.audioCodec=n),i&&(this.videoCodec=i)},e.probe=function(t){return e.findBox({data:t,start:0,end:Math.min(t.length,16384)},["moof"]).length>0},e.bin2str=function(e){return String.fromCharCode.apply(null,e)},e.readUint16=function(e,t){e.data&&(t+=e.start,e=e.data);var n=e[t]<<8|e[t+1];return n<0?65536+n:n},e.readUint32=function(e,t){e.data&&(t+=e.start,e=e.data);var n=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];return n<0?4294967296+n:n},e.writeUint32=function(e,t,n){e.data&&(t+=e.start,e=e.data),e[t]=n>>24,e[t+1]=n>>16&255,e[t+2]=n>>8&255,e[t+3]=255&n},e.findBox=function(t,n){var i=[],r=void 0,a=void 0,o=void 0,s=void 0,l=void 0,u=void 0,c=void 0;if(t.data?(u=t.start,s=t.end,t=t.data):(u=0,s=t.byteLength),!n.length)return null;for(r=u;r<s;)a=e.readUint32(t,r),o=e.bin2str(t.subarray(r+4,r+8)),c=a>1?r+a:s,o===n[0]&&(1===n.length?i.push({data:t,start:r+8,end:c}):(l=e.findBox({data:t,start:r+8,end:c},n.slice(1))).length&&(i=i.concat(l))),r=c;return i},e.parseSegmentIndex=function(t){var n=e.findBox(t,["moov"])[0],i=n?n.end:null,r=0,a=e.findBox(t,["sidx"]),o=void 0;if(!a||!a[0])return null;o=[];var s=(a=a[0]).data[0];r=0===s?8:16;var l=e.readUint32(a,r);r+=4;r+=0===s?8:16,r+=2;var u=a.end+0,c=e.readUint16(a,r);r+=2;for(var d=0;d<c;d++){var h=r,f=e.readUint32(a,h);h+=4;var p=2147483647&f;if(1===(2147483648&f)>>>31)return void console.warn("SIDX has hierarchical references (not supported)");var m=e.readUint32(a,h);h+=4,o.push({referenceSize:p,subsegmentDuration:m,info:{duration:m/l,start:u,end:u+p-1}}),u+=p,r=h+=4}return{earliestPresentationTime:0,timescale:l,version:s,referencesCount:c,references:o,moovEndOffset:i}},e.parseInitSegment=function(t){var n=[];return e.findBox(t,["moov","trak"]).forEach(function(t){var r=e.findBox(t,["tkhd"])[0];if(r){var a=r.data[r.start],o=0===a?12:20,s=e.readUint32(r,o),l=e.findBox(t,["mdia","mdhd"])[0];if(l){o=0===(a=l.data[l.start])?12:20;var u=e.readUint32(l,o),c=e.findBox(t,["mdia","hdlr"])[0];if(c){var d={soun:"audio",vide:"video"}[e.bin2str(c.data.subarray(c.start+8,c.start+12))];if(d){var h=e.findBox(t,["mdia","minf","stbl","stsd"]);if(h.length){h=h[0];var f=e.bin2str(h.data.subarray(h.start+12,h.start+16));i.b.log("MP4Demuxer:"+d+":"+f+" found")}n[s]={timescale:u,type:d},n[d]={timescale:u,id:s}}}}}}),n},e.getStartDTS=function(t,n){var i,r,a=void 0;return a=e.findBox(n,["moof","traf"]),i=[].concat.apply([],a.map(function(n){return e.findBox(n,["tfhd"]).map(function(i){var r,a;return r=e.readUint32(i,4),a=t[r].timescale||9e4,e.findBox(n,["tfdt"]).map(function(t){var n,i=void 0;return n=t.data[t.start],i=e.readUint32(t,4),1===n&&(i*=Math.pow(2,32),i+=e.readUint32(t,8)),i})[0]/a})})),r=Math.min.apply(null,i),isFinite(r)?r:0},e.offsetStartDTS=function(t,n,i){e.findBox(n,["moof","traf"]).map(function(n){return e.findBox(n,["tfhd"]).map(function(r){var o=e.readUint32(r,4),s=t[o].timescale||9e4;e.findBox(n,["tfdt"]).map(function(t){var n=t.data[t.start],r=e.readUint32(t,4);if(0===n)e.writeUint32(t,4,r-i*s);else{r*=Math.pow(2,32),r+=e.readUint32(t,8),r-=i*s,r=Math.max(r,0);var o=Math.floor(r/(a+1)),l=Math.floor(r%(a+1));e.writeUint32(t,4,o),e.writeUint32(t,8,l)}})})})},e.prototype.append=function(t,n,i,a){var o=this.initData;o||(this.resetInitSegment(t,this.audioCodec,this.videoCodec,!1),o=this.initData);var s,l=this.initPTS;if(void 0===l){var u=e.getStartDTS(o,t);this.initPTS=l=u-n,this.observer.trigger(r.a.INIT_PTS_FOUND,{initPTS:l})}e.offsetStartDTS(o,t,l),s=e.getStartDTS(o,t),this.remuxer.remux(o.audio,o.video,null,null,s,i,a,t)},e.prototype.destroy=function(){},e}();t.a=o},function(e,t,n){"use strict";var i=n(1),r=n(2),a=n(8),o=n(3),s=n(0),l=n(4);function u(e,t){return 255===e[t]&&240==(246&e[t+1])}function c(e,t){return 1&e[t+1]?7:9}function d(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function h(e,t){return!!(t+1<e.length&&u(e,t))}function f(e,t){if(t+1<e.length&&u(e,t)){var n=c(e,t);t+5<e.length&&(n=d(e,t));var i=t+n;if(i===e.length||i+1<e.length&&u(e,i))return!0}return!1}function p(e,t,n,a,o){if(!e.samplerate){var l=function(e,t,n,a){var o,l=void 0,u=void 0,c=void 0,d=void 0,h=navigator.userAgent.toLowerCase(),f=a,p=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];if(l=1+((192&t[n+2])>>>6),!((o=(60&t[n+2])>>>2)>p.length-1))return c=(1&t[n+2])<<2,c|=(192&t[n+3])>>>6,s.b.log("manifest codec:"+a+",ADTS data:type:"+l+",sampleingIndex:"+o+"["+p[o]+"Hz],channelConfig:"+c),/firefox/i.test(h)?o>=6?(l=5,d=new Array(4),u=o-3):(l=2,d=new Array(2),u=o):-1!==h.indexOf("android")?(l=2,d=new Array(2),u=o):(l=5,d=new Array(4),a&&(-1!==a.indexOf("mp4a.40.29")||-1!==a.indexOf("mp4a.40.5"))||!a&&o>=6?u=o-3:((a&&-1!==a.indexOf("mp4a.40.2")&&(o>=6&&1===c||/vivaldi/i.test(h))||!a&&1===c)&&(l=2,d=new Array(2)),u=o)),d[0]=l<<3,d[0]|=(14&o)>>1,d[1]|=(1&o)<<7,d[1]|=c<<3,5===l&&(d[1]|=(14&u)>>1,d[2]=(1&u)<<7,d[2]|=8,d[3]=0),{config:d,samplerate:p[o],channelCount:c,codec:"mp4a.40."+l,manifestCodec:f};e.trigger(i.a.ERROR,{type:r.b.MEDIA_ERROR,details:r.a.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+o})}(t,n,a,o);e.config=l.config,e.samplerate=l.samplerate,e.channelCount=l.channelCount,e.codec=l.codec,e.manifestCodec=l.manifestCodec,s.b.log("parsed codec:"+e.codec+",rate:"+l.samplerate+",nb channel:"+l.channelCount)}}function m(e){return 9216e4/e}function g(e,t,n,i,r){var a=function(e,t,n,i,r){var a,o=void 0,s=e.length;if(a=c(e,t),o=d(e,t),(o-=a)>0&&t+a+o<=s)return{headerLength:a,frameLength:o,stamp:n+i*r}}(t,n,i,r,m(e.samplerate));if(a){var o=a.stamp,s=a.headerLength,l=a.frameLength,u={unit:t.subarray(n+s,n+s+l),pts:o,dts:o};return e.samples.push(u),e.len+=l,{sample:u,length:l+s}}}var v=n(6);var y=function(){function e(t,n,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observer=t,this.config=i,this.remuxer=n}return e.prototype.resetInitSegment=function(e,t,n,i){this._audioTrack={container:"audio/adts",type:"audio",id:0,sequenceNumber:0,isAAC:!0,samples:[],len:0,manifestCodec:t,duration:i,inputTimeScale:9e4}},e.prototype.resetTimeStamp=function(){},e.probe=function(e){if(!e)return!1;for(var t=(v.a.getID3Data(e,0)||[]).length,n=e.length;t<n;t++)if(f(e,t))return s.b.log("ADTS sync word found !"),!0;return!1},e.prototype.append=function(e,t,n,i){for(var r=this._audioTrack,a=v.a.getID3Data(e,0)||[],l=v.a.getTimeStamp(a),u=Object(o.a)(l)?90*l:9e4*t,c=0,d=u,f=e.length,m=a.length,y=[{pts:d,dts:d,data:a}];m<f-1;)if(h(e,m)&&m+5<f){p(r,this.observer,e,m,r.manifestCodec);var b=g(r,e,m,u,c);if(!b){s.b.log("Unable to parse AAC frame");break}m+=b.length,d=b.sample.pts,c++}else v.a.isHeader(e,m)?(a=v.a.getID3Data(e,m),y.push({pts:d,dts:d,data:a}),m+=a.length):m++;this.remuxer.remux(r,{samples:[]},{samples:y,inputTimeScale:9e4},{samples:[]},t,n,i)},e.prototype.destroy=function(){},e}(),b=n(9),_={BitratesMap:[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],SamplingRateMap:[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],SamplesCoefficients:[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],BytesInSlot:[0,1,1,4],appendFrame:function(e,t,n,i,r){if(!(n+24>t.length)){var a=this.parseHeader(t,n);if(a&&n+a.frameLength<=t.length){var o=i+r*(9e4*a.samplesPerFrame/a.sampleRate),s={unit:t.subarray(n,n+a.frameLength),pts:o,dts:o};return e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(s),e.len+=a.frameLength,{sample:s,length:a.frameLength}}}},parseHeader:function(e,t){var n=e[t+1]>>3&3,i=e[t+1]>>1&3,r=e[t+2]>>4&15,a=e[t+2]>>2&3,o=e[t+2]>>1&1;if(1!==n&&0!==r&&15!==r&&3!==a){var s=3===n?3-i:3===i?3:4,l=1e3*_.BitratesMap[14*s+r-1],u=3===n?0:2===n?1:2,c=_.SamplingRateMap[3*u+a],d=e[t+3]>>6==3?1:2,h=_.SamplesCoefficients[n][i],f=_.BytesInSlot[i],p=8*h*f;return{sampleRate:c,channelCount:d,frameLength:parseInt(h*l/c+o,10)*f,samplesPerFrame:p}}},isHeaderPattern:function(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])},isHeader:function(e,t){return!!(t+1<e.length&&this.isHeaderPattern(e,t))},probe:function(e,t){if(t+1<e.length&&this.isHeaderPattern(e,t)){var n=this.parseHeader(e,t),i=4;n&&n.frameLength&&(i=n.frameLength);var r=t+i;if(r===e.length||r+1<e.length&&this.isHeaderPattern(e,r))return!0}return!1}},x=_;var w=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data=t,this.bytesAvailable=t.byteLength,this.word=0,this.bitsAvailable=0}return e.prototype.loadWord=function(){var e=this.data,t=this.bytesAvailable,n=e.byteLength-t,i=new Uint8Array(4),r=Math.min(4,t);if(0===r)throw new Error("no bytes available");i.set(e.subarray(n,n+r)),this.word=new DataView(i.buffer).getUint32(0),this.bitsAvailable=8*r,this.bytesAvailable-=r},e.prototype.skipBits=function(e){var t=void 0;this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,e-=(t=e>>3)>>3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)},e.prototype.readBits=function(e){var t=Math.min(this.bitsAvailable,e),n=this.word>>>32-t;return e>32&&s.b.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0?this.word<<=t:this.bytesAvailable>0&&this.loadWord(),(t=e-t)>0&&this.bitsAvailable?n<<t|this.readBits(t):n},e.prototype.skipLZ=function(){var e=void 0;for(e=0;e<this.bitsAvailable;++e)if(0!=(this.word&2147483648>>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},e.prototype.skipUEG=function(){this.skipBits(1+this.skipLZ())},e.prototype.skipEG=function(){this.skipBits(1+this.skipLZ())},e.prototype.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},e.prototype.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},e.prototype.readBoolean=function(){return 1===this.readBits(1)},e.prototype.readUByte=function(){return this.readBits(8)},e.prototype.readUShort=function(){return this.readBits(16)},e.prototype.readUInt=function(){return this.readBits(32)},e.prototype.skipScalingList=function(e){var t=8,n=8,i=void 0;for(i=0;i<e;i++)0!==n&&(n=(t+this.readEG()+256)%256),t=0===n?t:n},e.prototype.readSPS=function(){var e,t,n,i,r=0,a=0,o=0,s=0,l=void 0,u=void 0,c=void 0,d=this.readUByte.bind(this),h=this.readBits.bind(this),f=this.readUEG.bind(this),p=this.readBoolean.bind(this),m=this.skipBits.bind(this),g=this.skipEG.bind(this),v=this.skipUEG.bind(this),y=this.skipScalingList.bind(this);if(d(),e=d(),h(5),m(3),d(),v(),100===e||110===e||122===e||244===e||44===e||83===e||86===e||118===e||128===e){var b=f();if(3===b&&m(1),v(),v(),m(1),p())for(u=3!==b?8:12,c=0;c<u;c++)p()&&y(c<6?16:64)}v();var _=f();if(0===_)f();else if(1===_)for(m(1),g(),g(),l=f(),c=0;c<l;c++)g();v(),m(1),t=f(),n=f(),0===(i=h(1))&&m(1),m(1),p()&&(r=f(),a=f(),o=f(),s=f());var x=[1,1];if(p()&&p())switch(d()){case 1:x=[1,1];break;case 2:x=[12,11];break;case 3:x=[10,11];break;case 4:x=[16,11];break;case 5:x=[40,33];break;case 6:x=[24,11];break;case 7:x=[20,11];break;case 8:x=[32,11];break;case 9:x=[80,33];break;case 10:x=[18,11];break;case 11:x=[15,11];break;case 12:x=[64,33];break;case 13:x=[160,99];break;case 14:x=[4,3];break;case 15:x=[3,2];break;case 16:x=[2,1];break;case 255:x=[d()<<8|d(),d()<<8|d()]}return{width:Math.ceil(16*(t+1)-2*r-2*a),height:(2-i)*(n+1)*16-(i?2:4)*(o+s),pixelRatio:x}},e.prototype.readSliceType=function(){return this.readUByte(),this.readUEG(),this.readUEG()},e}();var S=function(){function e(t,n,i,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.decryptdata=i,this.discardEPB=r,this.decrypter=new a.a(t,n,{removePKCS7Padding:!1})}return e.prototype.decryptBuffer=function(e,t){this.decrypter.decrypt(e,this.decryptdata.key.buffer,this.decryptdata.iv.buffer,t)},e.prototype.decryptAacSample=function(e,t,n,i){var r=e[t].unit,a=r.subarray(16,r.length-r.length%16),o=a.buffer.slice(a.byteOffset,a.byteOffset+a.length),s=this;this.decryptBuffer(o,function(a){a=new Uint8Array(a),r.set(a,16),i||s.decryptAacSamples(e,t+1,n)})},e.prototype.decryptAacSamples=function(e,t,n){for(;;t++){if(t>=e.length)return void n();if(!(e[t].unit.length<32)){var i=this.decrypter.isSync();if(this.decryptAacSample(e,t,n,i),!i)return}}},e.prototype.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,n=new Int8Array(t),i=0,r=32;r<=e.length-16;r+=160,i+=16)n.set(e.subarray(r,r+16),i);return n},e.prototype.getAvcDecryptedUnit=function(e,t){t=new Uint8Array(t);for(var n=0,i=32;i<=e.length-16;i+=160,n+=16)e.set(t.subarray(n,n+16),i);return e},e.prototype.decryptAvcSample=function(e,t,n,i,r,a){var o=this.discardEPB(r.data),s=this.getAvcEncryptedData(o),l=this;this.decryptBuffer(s.buffer,function(s){r.data=l.getAvcDecryptedUnit(o,s),a||l.decryptAvcSamples(e,t,n+1,i)})},e.prototype.decryptAvcSamples=function(e,t,n,i){for(;;t++,n=0){if(t>=e.length)return void i();for(var r=e[t].units;!(n>=r.length);n++){var a=r[n];if(!(a.length<=48||1!==a.type&&5!==a.type)){var o=this.decrypter.isSync();if(this.decryptAvcSample(e,t,n,i,a,o),!o)return}}}},e}();var C={video:1,audio:2,id3:3,text:4},M=function(){function e(t,n,i,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observer=t,this.config=i,this.typeSupported=r,this.remuxer=n,this.sampleAes=null}return e.prototype.setDecryptData=function(e){null!=e&&null!=e.key&&"SAMPLE-AES"===e.method?this.sampleAes=new S(this.observer,this.config,e,this.discardEPB):this.sampleAes=null},e.probe=function(t){var n=e._syncOffset(t);return!(n<0)&&(n&&s.b.warn("MPEG2-TS detected but first sync word found @ offset "+n+", junk ahead ?"),!0)},e._syncOffset=function(e){for(var t=Math.min(1e3,e.length-564),n=0;n<t;){if(71===e[n]&&71===e[n+188]&&71===e[n+376])return n;n++}return-1},e.createTrack=function(e,t){return{container:"video"===e||"audio"===e?"video/mp2t":void 0,type:e,id:C[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],len:0,dropped:"video"===e?0:void 0,isAAC:"audio"===e||void 0,duration:"audio"===e?t:void 0}},e.prototype.resetInitSegment=function(t,n,i,r){this.pmtParsed=!1,this._pmtId=-1,this._avcTrack=e.createTrack("video",r),this._audioTrack=e.createTrack("audio",r),this._id3Track=e.createTrack("id3",r),this._txtTrack=e.createTrack("text",r),this.aacOverFlow=null,this.aacLastPTS=null,this.avcSample=null,this.audioCodec=n,this.videoCodec=i,this._duration=r},e.prototype.resetTimeStamp=function(){},e.prototype.append=function(t,n,a,o){var l=void 0,u=t.length,c=void 0,d=void 0,h=void 0,f=void 0,p=!1;this.contiguous=a;var m=this.pmtParsed,g=this._avcTrack,v=this._audioTrack,y=this._id3Track,b=g.pid,_=v.pid,x=y.pid,w=this._pmtId,S=g.pesData,C=v.pesData,M=y.pesData,k=this._parsePAT,T=this._parsePMT,A=this._parsePES,I=this._parseAVCPES.bind(this),E=this._parseAACPES.bind(this),D=this._parseMPEGPES.bind(this),O=this._parseID3PES.bind(this),P=e._syncOffset(t);for(u-=(u+P)%188,l=P;l<u;l+=188)if(71===t[l]){if(c=!!(64&t[l+1]),d=((31&t[l+1])<<8)+t[l+2],(48&t[l+3])>>4>1){if((h=l+5+t[l+4])===l+188)continue}else h=l+4;switch(d){case b:c&&(S&&(f=A(S))&&void 0!==f.pts&&I(f,!1),S={data:[],size:0}),S&&(S.data.push(t.subarray(h,l+188)),S.size+=l+188-h);break;case _:c&&(C&&(f=A(C))&&void 0!==f.pts&&(v.isAAC?E(f):D(f)),C={data:[],size:0}),C&&(C.data.push(t.subarray(h,l+188)),C.size+=l+188-h);break;case x:c&&(M&&(f=A(M))&&void 0!==f.pts&&O(f),M={data:[],size:0}),M&&(M.data.push(t.subarray(h,l+188)),M.size+=l+188-h);break;case 0:c&&(h+=t[h]+1),w=this._pmtId=k(t,h);break;case w:c&&(h+=t[h]+1);var L=T(t,h,!0===this.typeSupported.mpeg||!0===this.typeSupported.mp3,null!=this.sampleAes);(b=L.avc)>0&&(g.pid=b),(_=L.audio)>0&&(v.pid=_,v.isAAC=L.isAAC),(x=L.id3)>0&&(y.pid=x),p&&!m&&(s.b.log("reparse from beginning"),p=!1,l=P-188),m=this.pmtParsed=!0;break;case 17:case 8191:break;default:p=!0}}else this.observer.trigger(i.a.ERROR,{type:r.b.MEDIA_ERROR,details:r.a.FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});S&&(f=A(S))&&void 0!==f.pts?(I(f,!0),g.pesData=null):g.pesData=S,C&&(f=A(C))&&void 0!==f.pts?(v.isAAC?E(f):D(f),v.pesData=null):(C&&C.size&&s.b.log("last AAC PES packet truncated,might overlap between fragments"),v.pesData=C),M&&(f=A(M))&&void 0!==f.pts?(O(f),y.pesData=null):y.pesData=M,null==this.sampleAes?this.remuxer.remux(v,g,y,this._txtTrack,n,a,o):this.decryptAndRemux(v,g,y,this._txtTrack,n,a,o)},e.prototype.decryptAndRemux=function(e,t,n,i,r,a,o){if(e.samples&&e.isAAC){var s=this;this.sampleAes.decryptAacSamples(e.samples,0,function(){s.decryptAndRemuxAvc(e,t,n,i,r,a,o)})}else this.decryptAndRemuxAvc(e,t,n,i,r,a,o)},e.prototype.decryptAndRemuxAvc=function(e,t,n,i,r,a,o){if(t.samples){var s=this;this.sampleAes.decryptAvcSamples(t.samples,0,0,function(){s.remuxer.remux(e,t,n,i,r,a,o)})}else this.remuxer.remux(e,t,n,i,r,a,o)},e.prototype.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0},e.prototype._parsePAT=function(e,t){return(31&e[t+10])<<8|e[t+11]},e.prototype._parsePMT=function(e,t,n,i){var r,a=void 0,o={audio:-1,avc:-1,id3:-1,isAAC:!0};for(r=t+3+((15&e[t+1])<<8|e[t+2])-4,t+=12+((15&e[t+10])<<8|e[t+11]);t<r;){switch(a=(31&e[t+1])<<8|e[t+2],e[t]){case 207:if(!i){s.b.log("unkown stream type:"+e[t]);break}case 15:-1===o.audio&&(o.audio=a);break;case 21:-1===o.id3&&(o.id3=a);break;case 219:if(!i){s.b.log("unkown stream type:"+e[t]);break}case 27:-1===o.avc&&(o.avc=a);break;case 3:case 4:n?-1===o.audio&&(o.audio=a,o.isAAC=!1):s.b.log("MPEG audio found, not supported in this browser for now");break;case 36:s.b.warn("HEVC stream type found, not supported for now");break;default:s.b.log("unkown stream type:"+e[t])}t+=5+((15&e[t+3])<<8|e[t+4])}return o},e.prototype._parsePES=function(e){var t=0,n=void 0,i=void 0,r=void 0,a=void 0,o=void 0,l=void 0,u=void 0,c=void 0,d=e.data;if(!e||0===e.size)return null;for(;d[0].length<19&&d.length>1;){var h=new Uint8Array(d[0].length+d[1].length);h.set(d[0]),h.set(d[1],d[0].length),d[0]=h,d.splice(1,1)}if(1===((n=d[0])[0]<<16)+(n[1]<<8)+n[2]){if((r=(n[4]<<8)+n[5])&&r>e.size-6)return null;192&(i=n[7])&&((l=536870912*(14&n[9])+4194304*(255&n[10])+16384*(254&n[11])+128*(255&n[12])+(254&n[13])/2)>4294967295&&(l-=8589934592),64&i?((u=536870912*(14&n[14])+4194304*(255&n[15])+16384*(254&n[16])+128*(255&n[17])+(254&n[18])/2)>4294967295&&(u-=8589934592),l-u>54e5&&(s.b.warn(Math.round((l-u)/9e4)+"s delta between PTS and DTS, align them"),l=u)):u=l),c=(a=n[8])+9,e.size-=c,o=new Uint8Array(e.size);for(var f=0,p=d.length;f<p;f++){var m=(n=d[f]).byteLength;if(c){if(c>m){c-=m;continue}n=n.subarray(c),m-=c,c=0}o.set(n,t),t+=m}return r&&(r-=a+3),{data:o,pts:l,dts:u,len:r}}return null},e.prototype.pushAccesUnit=function(e,t){if(e.units.length&&e.frame){var n=t.samples,i=n.length;!this.config.forceKeyFrameOnDiscontinuity||!0===e.key||t.sps&&(i||this.contiguous)?(e.id=i,n.push(e)):t.dropped++}e.debug.length&&s.b.log(e.pts+"/"+e.dts+":"+e.debug)},e.prototype._parseAVCPES=function(e,t){var n=this,i=this._avcTrack,r=this._parseAVCNALu(e.data),a=void 0,o=this.avcSample,s=void 0,l=!1,u=void 0,c=this.pushAccesUnit.bind(this),d=function(e,t,n,i){return{key:e,pts:t,dts:n,units:[],debug:i}};e.data=null,o&&r.length&&!i.audFound&&(c(o,i),o=this.avcSample=d(!1,e.pts,e.dts,"")),r.forEach(function(t){switch(t.type){case 1:s=!0,o||(o=n.avcSample=d(!0,e.pts,e.dts,"")),o.frame=!0;var r=t.data;if(l&&r.length>4){var h=new w(r).readSliceType();2!==h&&4!==h&&7!==h&&9!==h||(o.key=!0)}break;case 5:s=!0,o||(o=n.avcSample=d(!0,e.pts,e.dts,"")),o.key=!0,o.frame=!0;break;case 6:s=!0,(a=new w(n.discardEPB(t.data))).readUByte();for(var f=0,p=0,m=!1,g=0;!m&&a.bytesAvailable>1;){f=0;do{f+=g=a.readUByte()}while(255===g);p=0;do{p+=g=a.readUByte()}while(255===g);if(4===f&&0!==a.bytesAvailable){if(m=!0,181===a.readUByte())if(49===a.readUShort())if(1195456820===a.readUInt())if(3===a.readUByte()){var v=a.readUByte(),y=31&v,b=[v,a.readUByte()];for(u=0;u<y;u++)b.push(a.readUByte()),b.push(a.readUByte()),b.push(a.readUByte());n._insertSampleInOrder(n._txtTrack.samples,{type:3,pts:e.pts,bytes:b})}}else if(p<a.bytesAvailable)for(u=0;u<p;u++)a.readUByte()}break;case 7:if(s=!0,l=!0,!i.sps){var _=(a=new w(t.data)).readSPS();i.width=_.width,i.height=_.height,i.pixelRatio=_.pixelRatio,i.sps=[t.data],i.duration=n._duration;var x=t.data.subarray(1,4),S="avc1.";for(u=0;u<3;u++){var C=x[u].toString(16);C.length<2&&(C="0"+C),S+=C}i.codec=S}break;case 8:s=!0,i.pps||(i.pps=[t.data]);break;case 9:s=!1,i.audFound=!0,o&&c(o,i),o=n.avcSample=d(!1,e.pts,e.dts,"");break;case 12:s=!1;break;default:s=!1,o&&(o.debug+="unknown NAL "+t.type+" ")}o&&s&&o.units.push(t)}),t&&o&&(c(o,i),this.avcSample=null)},e.prototype._insertSampleInOrder=function(e,t){var n=e.length;if(n>0){if(t.pts>=e[n-1].pts)e.push(t);else for(var i=n-1;i>=0;i--)if(t.pts<e[i].pts){e.splice(i,0,t);break}}else e.push(t)},e.prototype._getLastNalUnit=function(){var e=this.avcSample,t=void 0;if(!e||0===e.units.length){var n=this._avcTrack.samples;e=n[n.length-1]}if(e){var i=e.units;t=i[i.length-1]}return t},e.prototype._parseAVCNALu=function(e){var t=0,n=e.byteLength,i=void 0,r=void 0,a=this._avcTrack,o=a.naluState||0,s=o,l=[],u=void 0,c=-1,d=void 0;for(-1===o&&(c=0,d=31&e[0],o=0,t=1);t<n;)if(i=e[t++],o)if(1!==o)if(i)if(1===i){if(c>=0)u={data:e.subarray(c,t-o-1),type:d},l.push(u);else{var h=this._getLastNalUnit();if(h&&(s&&t<=4-s&&h.state&&(h.data=h.data.subarray(0,h.data.byteLength-s)),(r=t-o-1)>0)){var f=new Uint8Array(h.data.byteLength+r);f.set(h.data,0),f.set(e.subarray(0,r),h.data.byteLength),h.data=f}}t<n?(c=t,d=31&e[t],o=0):o=-1}else o=0;else o=3;else o=i?0:2;else o=i?0:1;if(c>=0&&o>=0&&(u={data:e.subarray(c,n),type:d,state:o},l.push(u)),0===l.length){var p=this._getLastNalUnit();if(p){var m=new Uint8Array(p.data.byteLength+e.byteLength);m.set(p.data,0),m.set(e,p.data.byteLength),p.data=m}}return a.naluState=o,l},e.prototype.discardEPB=function(e){for(var t,n=e.byteLength,i=[],r=1,a=void 0;r<n-2;)0===e[r]&&0===e[r+1]&&3===e[r+2]?(i.push(r+2),r+=2):r++;if(0===i.length)return e;t=n-i.length,a=new Uint8Array(t);var o=0;for(r=0;r<t;o++,r++)o===i[0]&&(o++,i.shift()),a[r]=e[o];return a},e.prototype._parseAACPES=function(e){var t,n,a=this._audioTrack,o=e.data,l=e.pts,u=this.aacOverFlow,c=this.aacLastPTS,d=void 0,f=void 0,v=void 0;if(u){var y=new Uint8Array(u.byteLength+o.byteLength);y.set(u,0),y.set(o,u.byteLength),o=y}for(f=0,n=o.length;f<n-1&&!h(o,f);f++);if(f){var b=void 0,_=void 0;if(f<n-1?(b="AAC PES did not start with ADTS header,offset:"+f,_=!1):(b="no ADTS header found in AAC PES",_=!0),s.b.warn("parsing error:"+b),this.observer.trigger(i.a.ERROR,{type:r.b.MEDIA_ERROR,details:r.a.FRAG_PARSING_ERROR,fatal:_,reason:b}),_)return}if(p(a,this.observer,o,f,this.audioCodec),d=0,t=m(a.samplerate),u&&c){var x=c+t;Math.abs(x-l)>1&&(s.b.log("AAC: align PTS for overlapping frames by "+Math.round((x-l)/90)),l=x)}for(;f<n;)if(h(o,f)&&f+5<n){var w=g(a,o,f,l,d);if(!w)break;f+=w.length,v=w.sample.pts,d++}else f++;u=f<n?o.subarray(f,n):null,this.aacOverFlow=u,this.aacLastPTS=v},e.prototype._parseMPEGPES=function(e){for(var t=e.data,n=t.length,i=0,r=0,a=e.pts;r<n;)if(x.isHeader(t,r)){var o=x.appendFrame(this._audioTrack,t,r,a,i);if(!o)break;r+=o.length,i++}else r++},e.prototype._parseID3PES=function(e){this._id3Track.samples.push(e)},e}();var k=function(){function e(t,n,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observer=t,this.config=i,this.remuxer=n}return e.prototype.resetInitSegment=function(e,t,n,i){this._audioTrack={container:"audio/mpeg",type:"audio",id:-1,sequenceNumber:0,isAAC:!1,samples:[],len:0,manifestCodec:t,duration:i,inputTimeScale:9e4}},e.prototype.resetTimeStamp=function(){},e.probe=function(e){var t=void 0,n=void 0,i=v.a.getID3Data(e,0);if(i&&void 0!==v.a.getTimeStamp(i))for(t=i.length,n=Math.min(e.length-1,t+100);t<n;t++)if(x.probe(e,t))return s.b.log("MPEG Audio sync word found !"),!0;return!1},e.prototype.append=function(e,t,n,i){for(var r=v.a.getID3Data(e,0),a=v.a.getTimeStamp(r),o=a?90*a:9e4*t,s=r.length,l=e.length,u=0,c=0,d=this._audioTrack,h=[{pts:o,dts:o,data:r}];s<l;)if(x.isHeader(e,s)){var f=x.appendFrame(d,e,s,o,u);if(!f)break;s+=f.length,c=f.sample.pts,u++}else v.a.isHeader(e,s)?(r=v.a.getID3Data(e,s),h.push({pts:c,dts:c,data:r}),s+=r.length):s++;this.remuxer.remux(d,{samples:[]},{samples:h,inputTimeScale:9e4},{samples:[]},t,n,i)},e.prototype.destroy=function(){},e}();var T=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.getSilentFrame=function(e,t){switch(e){case"mp4a.40.2":if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(1===t)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===t)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}return null},e}();var A=Math.pow(2,32)-1,I=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.init=function(){e.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};var t=void 0;for(t in e.types)e.types.hasOwnProperty(t)&&(e.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);var n=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);e.HDLR_TYPES={video:n,audio:i};var r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),a=new Uint8Array([0,0,0,0,0,0,0,0]);e.STTS=e.STSC=e.STCO=a,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);var o=new Uint8Array([105,115,111,109]),s=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);e.FTYP=e.box(e.types.ftyp,o,l,o,s),e.DINF=e.box(e.types.dinf,e.box(e.types.dref,r))},e.box=function(e){for(var t=Array.prototype.slice.call(arguments,1),n=8,i=t.length,r=i,a=void 0;i--;)n+=t[i].byteLength;for((a=new Uint8Array(n))[0]=n>>24&255,a[1]=n>>16&255,a[2]=n>>8&255,a[3]=255&n,a.set(e,4),i=0,n=8;i<r;i++)a.set(t[i],n),n+=t[i].byteLength;return a},e.hdlr=function(t){return e.box(e.types.hdlr,e.HDLR_TYPES[t])},e.mdat=function(t){return e.box(e.types.mdat,t)},e.mdhd=function(t,n){n*=t;var i=Math.floor(n/(A+1)),r=Math.floor(n%(A+1));return e.box(e.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t.timescale,t.duration),e.hdlr(t.type),e.minf(t))},e.mfhd=function(t){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))},e.minf=function(t){return"audio"===t.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(t)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(t))},e.moof=function(t,n,i){return e.box(e.types.moof,e.mfhd(t),e.traf(i,n))},e.moov=function(t){for(var n=t.length,i=[];n--;)i[n]=e.trak(t[n]);return e.box.apply(null,[e.types.moov,e.mvhd(t[0].timescale,t[0].duration)].concat(i).concat(e.mvex(t)))},e.mvex=function(t){for(var n=t.length,i=[];n--;)i[n]=e.trex(t[n]);return e.box.apply(null,[e.types.mvex].concat(i))},e.mvhd=function(t,n){n*=t;var i=Math.floor(n/(A+1)),r=Math.floor(n%(A+1)),a=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,r>>24,r>>16&255,r>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.box(e.types.mvhd,a)},e.sdtp=function(t){var n=t.samples||[],i=new Uint8Array(4+n.length),r=void 0,a=void 0;for(a=0;a<n.length;a++)r=n[a].flags,i[a+4]=r.dependsOn<<4|r.isDependedOn<<2|r.hasRedundancy;return e.box(e.types.sdtp,i)},e.stbl=function(t){return e.box(e.types.stbl,e.stsd(t),e.box(e.types.stts,e.STTS),e.box(e.types.stsc,e.STSC),e.box(e.types.stsz,e.STSZ),e.box(e.types.stco,e.STCO))},e.avc1=function(t){var n=[],i=[],r=void 0,a=void 0,o=void 0;for(r=0;r<t.sps.length;r++)o=(a=t.sps[r]).byteLength,n.push(o>>>8&255),n.push(255&o),n=n.concat(Array.prototype.slice.call(a));for(r=0;r<t.pps.length;r++)o=(a=t.pps[r]).byteLength,i.push(o>>>8&255),i.push(255&o),i=i.concat(Array.prototype.slice.call(a));var s=e.box(e.types.avcC,new Uint8Array([1,n[3],n[4],n[5],255,224|t.sps.length].concat(n).concat([t.pps.length]).concat(i))),l=t.width,u=t.height,c=t.pixelRatio[0],d=t.pixelRatio[1];return e.box(e.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),s,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([c>>24,c>>16&255,c>>8&255,255&c,d>>24,d>>16&255,d>>8&255,255&d])))},e.esds=function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))},e.mp4a=function(t){var n=t.samplerate;return e.box(e.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,n>>8&255,255&n,0,0]),e.box(e.types.esds,e.esds(t)))},e.mp3=function(t){var n=t.samplerate;return e.box(e.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,n>>8&255,255&n,0,0]))},e.stsd=function(t){return"audio"===t.type?t.isAAC||"mp3"!==t.codec?e.box(e.types.stsd,e.STSD,e.mp4a(t)):e.box(e.types.stsd,e.STSD,e.mp3(t)):e.box(e.types.stsd,e.STSD,e.avc1(t))},e.tkhd=function(t){var n=t.id,i=t.duration*t.timescale,r=t.width,a=t.height,o=Math.floor(i/(A+1)),s=Math.floor(i%(A+1));return e.box(e.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,n>>24&255,n>>16&255,n>>8&255,255&n,0,0,0,0,o>>24,o>>16&255,o>>8&255,255&o,s>>24,s>>16&255,s>>8&255,255&s,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,a>>8&255,255&a,0,0]))},e.traf=function(t,n){var i=e.sdtp(t),r=t.id,a=Math.floor(n/(A+1)),o=Math.floor(n%(A+1));return e.box(e.types.traf,e.box(e.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),e.box(e.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,o>>24,o>>16&255,o>>8&255,255&o])),e.trun(t,i.length+16+20+8+16+8+8),i)},e.trak=function(t){return t.duration=t.duration||4294967295,e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.trex=function(t){var n=t.id;return e.box(e.types.trex,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},e.trun=function(t,n){var i=t.samples||[],r=i.length,a=12+16*r,o=new Uint8Array(a),s=void 0,l=void 0,u=void 0,c=void 0,d=void 0,h=void 0;for(n+=8+a,o.set([0,0,15,1,r>>>24&255,r>>>16&255,r>>>8&255,255&r,n>>>24&255,n>>>16&255,n>>>8&255,255&n],0),s=0;s<r;s++)u=(l=i[s]).duration,c=l.size,d=l.flags,h=l.cts,o.set([u>>>24&255,u>>>16&255,u>>>8&255,255&u,c>>>24&255,c>>>16&255,c>>>8&255,255&c,d.isLeading<<2|d.dependsOn,d.isDependedOn<<6|d.hasRedundancy<<4|d.paddingValue<<1|d.isNonSync,61440&d.degradPrio,15&d.degradPrio,h>>>24&255,h>>>16&255,h>>>8&255,255&h],12+16*s);return e.box(e.types.trun,o)},e.initSegment=function(t){e.types||e.init();var n=e.moov(t),i=void 0;return(i=new Uint8Array(e.FTYP.byteLength+n.byteLength)).set(e.FTYP),i.set(n,e.FTYP.byteLength),i},e}();var E=function(){function e(t,n,i,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observer=t,this.config=n,this.typeSupported=i;var a=navigator.userAgent;this.isSafari=r&&r.indexOf("Apple")>-1&&a&&!a.match("CriOS"),this.ISGenerated=!1}return e.prototype.destroy=function(){},e.prototype.resetTimeStamp=function(e){this._initPTS=this._initDTS=e},e.prototype.resetInitSegment=function(){this.ISGenerated=!1},e.prototype.remux=function(e,t,n,r,a,o,l){if(this.ISGenerated||this.generateIS(e,t,a),this.ISGenerated){var u=e.samples.length,c=t.samples.length,d=a,h=a;if(u&&c){var f=(e.samples[0].dts-t.samples[0].dts)/t.inputTimeScale;d+=Math.max(0,f),h+=Math.max(0,-f)}if(u){e.timescale||(s.b.warn("regenerate InitSegment as audio detected"),this.generateIS(e,t,a));var p=this.remuxAudio(e,d,o,l);if(c){var m=void 0;p&&(m=p.endPTS-p.startPTS),t.timescale||(s.b.warn("regenerate InitSegment as video detected"),this.generateIS(e,t,a)),this.remuxVideo(t,h,o,m,l)}}else if(c){var g=this.remuxVideo(t,h,o,0,l);g&&e.codec&&this.remuxEmptyAudio(e,d,o,g)}}n.samples.length&&this.remuxID3(n,a),r.samples.length&&this.remuxText(r,a),this.observer.trigger(i.a.FRAG_PARSED)},e.prototype.generateIS=function(e,t,n){var a=this.observer,o=e.samples,l=t.samples,u=this.typeSupported,c="audio/mp4",d={},h={tracks:d},f=void 0===this._initPTS,p=void 0,m=void 0;if(f&&(p=m=1/0),e.config&&o.length&&(e.timescale=e.samplerate,s.b.log("audio sampling rate : "+e.samplerate),e.isAAC||(u.mpeg?(c="audio/mpeg",e.codec=""):u.mp3&&(e.codec="mp3")),d.audio={container:c,codec:e.codec,initSegment:!e.isAAC&&u.mpeg?new Uint8Array:I.initSegment([e]),metadata:{channelCount:e.channelCount}},f&&(p=m=o[0].pts-e.inputTimeScale*n)),t.sps&&t.pps&&l.length){var g=t.inputTimeScale;t.timescale=g,d.video={container:"video/mp4",codec:t.codec,initSegment:I.initSegment([t]),metadata:{width:t.width,height:t.height}},f&&(p=Math.min(p,l[0].pts-g*n),m=Math.min(m,l[0].dts-g*n),this.observer.trigger(i.a.INIT_PTS_FOUND,{initPTS:p}))}Object.keys(d).length?(a.trigger(i.a.FRAG_PARSING_INIT_SEGMENT,h),this.ISGenerated=!0,f&&(this._initPTS=p,this._initDTS=m)):a.trigger(i.a.ERROR,{type:r.b.MEDIA_ERROR,details:r.a.FRAG_PARSING_ERROR,fatal:!1,reason:"no audio/video samples found"})},e.prototype.remuxVideo=function(e,t,n,a,o){var l,u,c,d=8,h=e.timescale,f=void 0,p=void 0,m=void 0,g=void 0,v=e.samples,y=[],b=v.length,_=this._PTSNormalize,x=this._initDTS,w=this.nextAvcDts,S=this.isSafari;if(0!==b){S&&(n|=v.length&&w&&(o&&Math.abs(t-w/h)<.1||Math.abs(v[0].pts-w-x)<h/5)),n||(w=t*h),v.forEach(function(e){e.pts=_(e.pts-x,w),e.dts=_(e.dts-x,w)}),v.sort(function(e,t){var n=e.dts-t.dts,i=e.pts-t.pts;return n||i||e.id-t.id});var C=v.reduce(function(e,t){return Math.max(Math.min(e,t.pts-t.dts),-18e3)},0);if(C<0){s.b.warn("PTS < DTS detected in video samples, shifting DTS by "+Math.round(C/90)+" ms to overcome this issue");for(var M=0;M<v.length;M++)v[M].dts+=C}var k=v[0];g=Math.max(k.dts,0),m=Math.max(k.pts,0);var T=Math.round((g-w)/90);n&&T&&(T>1?s.b.log("AVC:"+T+" ms hole between fragments detected,filling it"):T<-1&&s.b.log("AVC:"+-T+" ms overlapping between fragments detected"),g=w,v[0].dts=g,m=Math.max(m-T,w),v[0].pts=m,s.b.log("Video/PTS/DTS adjusted: "+Math.round(m/90)+"/"+Math.round(g/90)+",delta:"+T+" ms")),g,k=v[v.length-1],c=Math.max(k.dts,0),u=Math.max(k.pts,0,c),S&&(f=Math.round((c-g)/(v.length-1)));for(var A=0,E=0,D=0;D<b;D++){for(var O=v[D],P=O.units,L=P.length,R=0,N=0;N<L;N++)R+=P[N].data.length;E+=R,A+=L,O.length=R,O.dts=S?g+D*f:Math.max(O.dts,g),O.pts=Math.max(O.pts,O.dts)}var B=E+4*A+8;try{p=new Uint8Array(B)}catch(e){return void this.observer.trigger(i.a.ERROR,{type:r.b.MUX_ERROR,details:r.a.REMUX_ALLOC_ERROR,fatal:!1,bytes:B,reason:"fail allocating video mdat "+B})}var F=new DataView(p.buffer);F.setUint32(0,B),p.set(I.types.mdat,4);for(var z=0;z<b;z++){for(var V=v[z],$=V.units,G=0,j=void 0,H=0,W=$.length;H<W;H++){var U=$[H],K=U.data,q=U.data.byteLength;F.setUint32(d,q),d+=4,p.set(K,d),d+=q,G+=4+q}if(S)j=Math.max(0,f*Math.round((V.pts-V.dts)/f));else{if(z<b-1)f=v[z+1].dts-V.dts;else{var Y=this.config,Z=V.dts-v[z>0?z-1:z].dts;if(Y.stretchShortVideoTrack){var X=Y.maxBufferHole,J=Math.floor(X*h),Q=(a?m+a*h:this.nextAudioPts)-V.pts;Q>J?((f=Q-Z)<0&&(f=Z),s.b.log("It is approximately "+Q/90+" ms to the next segment; using duration "+f/90+" ms for the last video frame.")):f=Z}else f=Z}j=Math.round(V.pts-V.dts)}y.push({size:G,duration:f,cts:j,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:V.key?2:1,isNonSync:V.key?0:1}})}this.nextAvcDts=c+f;var ee=e.dropped;if(e.len=0,e.nbNalu=0,e.dropped=0,y.length&&navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var te=y[0].flags;te.dependsOn=2,te.isNonSync=0}e.samples=y,l=I.moof(e.sequenceNumber++,g,e),e.samples=[];var ne={data1:l,data2:p,startPTS:m/h,endPTS:(u+f)/h,startDTS:g/h,endDTS:this.nextAvcDts/h,type:"video",hasAudio:!1,hasVideo:!0,nb:y.length,dropped:ee};return this.observer.trigger(i.a.FRAG_PARSING_DATA,ne),ne}},e.prototype.remuxAudio=function(e,t,n,a){var o=e.inputTimeScale,l=e.timescale,u=o/l,c=(e.isAAC?1024:1152)*u,d=this._PTSNormalize,h=this._initDTS,f=!e.isAAC&&this.typeSupported.mpeg,p=void 0,m=void 0,g=void 0,v=void 0,y=void 0,b=void 0,_=void 0,x=e.samples,w=[],S=this.nextAudioPts;if(n|=x.length&&S&&(a&&Math.abs(t-S/o)<.1||Math.abs(x[0].pts-S-h)<20*c),x.forEach(function(e){e.pts=e.dts=d(e.pts-h,t*o)}),0!==(x=x.filter(function(e){return e.pts>=0})).length){if(n||(S=a?t*o:x[0].pts),e.isAAC)for(var C=this.config.maxAudioFramesDrift,M=0,k=S;M<x.length;){var A,E=x[M];A=E.pts-k;var D=Math.abs(1e3*A/o);if(A<=-C*c)s.b.warn("Dropping 1 audio frame @ "+(k/o).toFixed(3)+"s due to "+Math.round(D)+" ms overlap."),x.splice(M,1),e.len-=E.unit.length;else if(A>=C*c&&D<1e4&&k){var O=Math.round(A/c);s.b.warn("Injecting "+O+" audio frame @ "+(k/o).toFixed(3)+"s due to "+Math.round(1e3*A/o)+" ms gap.");for(var P=0;P<O;P++){var L=Math.max(k,0);(g=T.getSilentFrame(e.manifestCodec||e.codec,e.channelCount))||(s.b.log("Unable to get silent frame for given audio codec; duplicating last frame instead."),g=E.unit.subarray()),x.splice(M,0,{unit:g,pts:L,dts:L}),e.len+=g.length,k+=c,M++}E.pts=E.dts=k,k+=c,M++}else Math.abs(A),E.pts=E.dts=k,k+=c,M++}for(var R=0,N=x.length;R<N;R++){var B=x[R],F=B.unit,z=B.pts;if(void 0!==_)m.duration=Math.round((z-_)/u);else{var V=Math.round(1e3*(z-S)/o),$=0;if(n&&e.isAAC&&V){if(V>0&&V<1e4)$=Math.round((z-S)/c),s.b.log(V+" ms hole between AAC samples detected,filling it"),$>0&&((g=T.getSilentFrame(e.manifestCodec||e.codec,e.channelCount))||(g=F.subarray()),e.len+=$*g.length);else if(V<-12){s.b.log("drop overlapping AAC sample, expected/parsed/delta:"+(S/o).toFixed(3)+"s/"+(z/o).toFixed(3)+"s/"+-V+"ms"),e.len-=F.byteLength;continue}z=S}if(b=z,!(e.len>0))return;var G=f?e.len:e.len+8;p=f?0:8;try{v=new Uint8Array(G)}catch(e){return void this.observer.trigger(i.a.ERROR,{type:r.b.MUX_ERROR,details:r.a.REMUX_ALLOC_ERROR,fatal:!1,bytes:G,reason:"fail allocating audio mdat "+G})}f||(new DataView(v.buffer).setUint32(0,G),v.set(I.types.mdat,4));for(var j=0;j<$;j++)(g=T.getSilentFrame(e.manifestCodec||e.codec,e.channelCount))||(s.b.log("Unable to get silent frame for given audio codec; duplicating this frame instead."),g=F.subarray()),v.set(g,p),p+=g.byteLength,m={size:g.byteLength,cts:0,duration:1024,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:1}},w.push(m)}v.set(F,p);var H=F.byteLength;p+=H,m={size:H,cts:0,duration:0,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:1}},w.push(m),_=z}var W=0,U=w.length;if(U>=2&&(W=w[U-2].duration,m.duration=W),U){this.nextAudioPts=S=_+u*W,e.len=0,e.samples=w,y=f?new Uint8Array:I.moof(e.sequenceNumber++,b/u,e),e.samples=[];var K=b/o,q=S/o,Y={data1:y,data2:v,startPTS:K,endPTS:q,startDTS:K,endDTS:q,type:"audio",hasAudio:!0,hasVideo:!1,nb:U};return this.observer.trigger(i.a.FRAG_PARSING_DATA,Y),Y}return null}},e.prototype.remuxEmptyAudio=function(e,t,n,i){var r=e.inputTimeScale,a=r/(e.samplerate?e.samplerate:r),o=this.nextAudioPts,l=(void 0!==o?o:i.startDTS*r)+this._initDTS,u=i.endDTS*r+this._initDTS,c=1024*a,d=Math.ceil((u-l)/c),h=T.getSilentFrame(e.manifestCodec||e.codec,e.channelCount);if(s.b.warn("remux empty Audio"),h){for(var f=[],p=0;p<d;p++){var m=l+p*c;f.push({unit:h,pts:m,dts:m}),e.len+=h.length}e.samples=f,this.remuxAudio(e,t,n)}else s.b.trace("Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!")},e.prototype.remuxID3=function(e,t){var n=e.samples.length,r=void 0,a=e.inputTimeScale,o=this._initPTS,s=this._initDTS;if(n){for(var l=0;l<n;l++)(r=e.samples[l]).pts=(r.pts-o)/a,r.dts=(r.dts-s)/a;this.observer.trigger(i.a.FRAG_PARSING_METADATA,{samples:e.samples})}e.samples=[],t=t},e.prototype.remuxText=function(e,t){e.samples.sort(function(e,t){return e.pts-t.pts});var n=e.samples.length,r=void 0,a=e.inputTimeScale,o=this._initPTS;if(n){for(var s=0;s<n;s++)(r=e.samples[s]).pts=(r.pts-o)/a;this.observer.trigger(i.a.FRAG_PARSING_USERDATA,{samples:e.samples})}e.samples=[],t=t},e.prototype._PTSNormalize=function(e,t){var n=void 0;if(void 0===t)return e;for(n=t<e?-8589934592:8589934592;Math.abs(e-t)>4294967296;)e+=n;return e},e}();var D=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observer=t}return e.prototype.destroy=function(){},e.prototype.resetTimeStamp=function(){},e.prototype.resetInitSegment=function(){},e.prototype.remux=function(e,t,n,r,a,o,s,l){var u=this.observer,c="";e&&(c+="audio"),t&&(c+="video"),u.trigger(i.a.FRAG_PARSING_DATA,{data1:l,startPTS:a,startDTS:a,type:c,hasAudio:!!e,hasVideo:!!t,nb:1,dropped:0}),u.trigger(i.a.FRAG_PARSED)},e}();var O=Object(l.a)().performance,P=function(){function e(t,n,i,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observer=t,this.typeSupported=n,this.config=i,this.vendor=r}return e.prototype.destroy=function(){var e=this.demuxer;e&&e.destroy()},e.prototype.push=function(e,t,n,r,o,s,l,u,c,d,h,f){if(e.byteLength>0&&null!=t&&null!=t.key&&"AES-128"===t.method){var p=this.decrypter;null==p&&(p=this.decrypter=new a.a(this.observer,this.config));var m=this,g=void 0;try{g=O.now()}catch(e){g=Date.now()}p.decrypt(e,t.key.buffer,t.iv.buffer,function(e){var a=void 0;try{a=O.now()}catch(e){a=Date.now()}m.observer.trigger(i.a.FRAG_DECRYPTED,{stats:{tstart:g,tdecrypt:a}}),m.pushDecrypted(new Uint8Array(e),t,new Uint8Array(n),r,o,s,l,u,c,d,h,f)})}else this.pushDecrypted(new Uint8Array(e),t,new Uint8Array(n),r,o,s,l,u,c,d,h,f)},e.prototype.pushDecrypted=function(e,t,n,a,o,s,l,u,c,d,h,f){var p=this.demuxer;if(!p||(l||u)&&!this.probe(e)){for(var m=this.observer,g=this.typeSupported,v=this.config,_=[{demux:M,remux:E},{demux:b.a,remux:D},{demux:y,remux:E},{demux:k,remux:E}],x=0,w=_.length;x<w;x++){var S=_[x],C=S.demux.probe;if(C(e)){var T=this.remuxer=new S.remux(m,v,g,this.vendor);p=new S.demux(m,T,v,g),this.probe=C;break}}if(!p)return void m.trigger(i.a.ERROR,{type:r.b.MEDIA_ERROR,details:r.a.FRAG_PARSING_ERROR,fatal:!0,reason:"no demux matching with content found"});this.demuxer=p}var A=this.remuxer;(l||u)&&(p.resetInitSegment(n,a,o,d),A.resetInitSegment()),l&&(p.resetTimeStamp(f),A.resetTimeStamp(f)),"function"==typeof p.setDecryptData&&p.setDecryptData(t),p.append(e,s,c,h)},e}();t.a=P},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i={};n.d(i,"newCue",function(){return tt});var r=n(5),a=n.n(r),o=n(2),s=n(3),l=n(1),u=n(0),c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var d=new Set(["hlsEventGeneric","hlsHandlerDestroying","hlsHandlerDestroyed"]),h=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.hls=t,this.onEvent=this.onEvent.bind(this);for(var n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];this.handledEvents=i,this.useGenericHandler=!0,this.registerListeners()}return e.prototype.destroy=function(){this.onHandlerDestroying(),this.unregisterListeners(),this.onHandlerDestroyed()},e.prototype.onHandlerDestroying=function(){},e.prototype.onHandlerDestroyed=function(){},e.prototype.isEventHandler=function(){return"object"===c(this.handledEvents)&&this.handledEvents.length&&"function"==typeof this.onEvent},e.prototype.registerListeners=function(){this.isEventHandler()&&this.handledEvents.forEach(function(e){if(d.has(e))throw new Error("Forbidden event-name: "+e);this.hls.on(e,this.onEvent)},this)},e.prototype.unregisterListeners=function(){this.isEventHandler()&&this.handledEvents.forEach(function(e){this.hls.off(e,this.onEvent)},this)},e.prototype.onEvent=function(e,t){this.onEventGeneric(e,t)},e.prototype.onEventGeneric=function(e,t){try{(function(e,t){var n="on"+e.replace("hls","");if("function"!=typeof this[n])throw new Error("Event "+e+" has no generic handler in this "+this.constructor.name+" class (tried "+n+")");return this[n].bind(this,t)}).call(this,e,t).call()}catch(t){u.b.error("An internal error happened while handling event "+e+'. Error message: "'+t.message+'". Here is a stacktrace:',t),this.hls.trigger(l.a.ERROR,{type:o.b.OTHER_ERROR,details:o.a.INTERNAL_EXCEPTION,fatal:!1,event:e,err:t})}},e}(),f=n(9),p=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var m=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.method=null,this.key=null,this.iv=null,this._uri=null}return p(e,[{key:"uri",get:function(){return!this._uri&&this.reluri&&(this._uri=a.a.buildAbsoluteURL(this.baseuri,this.reluri,{alwaysNormalize:!0})),this._uri}}]),e}(),g=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var v=function(){function e(){var t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._url=null,this._byteRange=null,this._decryptdata=null,this.tagList=[],this.programDateTime=null,this.rawProgramDateTime=null,this._elementaryStreams=((t={})[e.ElementaryStreamTypes.AUDIO]=!1,t[e.ElementaryStreamTypes.VIDEO]=!1,t)}return e.prototype.addElementaryStream=function(e){this._elementaryStreams[e]=!0},e.prototype.hasElementaryStream=function(e){return!0===this._elementaryStreams[e]},e.prototype.createInitializationVector=function(e){for(var t=new Uint8Array(16),n=12;n<16;n++)t[n]=e>>8*(15-n)&255;return t},e.prototype.fragmentDecryptdataFromLevelkey=function(e,t){var n=e;return e&&e.method&&e.uri&&!e.iv&&((n=new m).method=e.method,n.baseuri=e.baseuri,n.reluri=e.reluri,n.iv=this.createInitializationVector(t)),n},g(e,[{key:"url",get:function(){return!this._url&&this.relurl&&(this._url=a.a.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url},set:function(e){this._url=e}},{key:"byteRange",get:function(){if(!this._byteRange&&!this.rawByteRange)return[];if(this._byteRange)return this._byteRange;var e=[];if(this.rawByteRange){var t=this.rawByteRange.split("@",2);if(1===t.length){var n=this.lastByteRangeEndOffset;e[0]=n||0}else e[0]=parseInt(t[1]);e[1]=parseInt(t[0])+e[0],this._byteRange=e}return e}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"decryptdata",get:function(){return this._decryptdata||(this._decryptdata=this.fragmentDecryptdataFromLevelkey(this.levelkey,this.sn)),this._decryptdata}},{key:"endProgramDateTime",get:function(){if(!Object(s.a)(this.programDateTime))return null;var e=Object(s.a)(this.duration)?this.duration:0;return this.programDateTime+1e3*e}},{key:"encrypted",get:function(){return!(!this.decryptdata||null===this.decryptdata.uri||null!==this.decryptdata.key)}}],[{key:"ElementaryStreamTypes",get:function(){return{AUDIO:"audio",VIDEO:"video"}}}]),e}(),y=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var b=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.endCC=0,this.endSN=0,this.fragments=[],this.initSegment=null,this.live=!0,this.needSidxRanges=!1,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=t,this.version=null}return y(e,[{key:"hasProgramDateTime",get:function(){return!(!this.fragments[0]||!Object(s.a)(this.fragments[0].programDateTime))}}]),e}();var _=/^(\d+)x(\d+)$/,x=/\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g,w=function(){function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),"string"==typeof t&&(t=e.parseAttrList(t)),t)t.hasOwnProperty(n)&&(this[n]=t[n])}return e.prototype.decimalInteger=function(e){var t=parseInt(this[e],10);return t>Number.MAX_SAFE_INTEGER?1/0:t},e.prototype.hexadecimalInteger=function(e){if(this[e]){var t=(this[e]||"0x").slice(2);t=(1&t.length?"0":"")+t;for(var n=new Uint8Array(t.length/2),i=0;i<t.length/2;i++)n[i]=parseInt(t.slice(2*i,2*i+2),16);return n}return null},e.prototype.hexadecimalIntegerAsNumber=function(e){var t=parseInt(this[e],16);return t>Number.MAX_SAFE_INTEGER?1/0:t},e.prototype.decimalFloatingPoint=function(e){return parseFloat(this[e])},e.prototype.enumeratedString=function(e){return this[e]},e.prototype.decimalResolution=function(e){var t=_.exec(this[e]);if(null!==t)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}},e.parseAttrList=function(e){var t=void 0,n={};for(x.lastIndex=0;null!==(t=x.exec(e));){var i=t[2];0===i.indexOf('"')&&i.lastIndexOf('"')===i.length-1&&(i=i.slice(1,-1)),n[t[1]]=i}return n},e}(),S={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,drac:!0,dvav:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0}};function C(e,t){return window.MediaSource.isTypeSupported((t||"video")+'/mp4;codecs="'+e+'"')}var M=/#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g,k=/#EXT-X-MEDIA:(.*)/g,T=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/|(?!#)(\S+)/.source,/|#EXT-X-BYTERANGE:*(.+)/.source,/|#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/|#.*/.source].join(""),"g"),A=/(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-(MEDIA-SEQUENCE): *(\d+))|(?:#EXT-X-(TARGETDURATION): *(\d+))|(?:#EXT-X-(KEY):(.+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-SEQ)UENCE:(\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\d+))|(?:#EXT-X-(MAP):(.+))|(?:(#)([^:]*):(.*))|(?:(#)(.*))(?:.*)\r?\n?/,I=/\.(mp4|m4s|m4v|m4a)$/i,E=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.findGroup=function(e,t){if(!e)return null;for(var n=null,i=0;i<e.length;i++){var r=e[i];r.id===t&&(n=r)}return n},e.convertAVC1ToAVCOTI=function(e){var t=void 0,n=e.split(".");return n.length>2?(t=n.shift()+".",t+=parseInt(n.shift()).toString(16),t+=("000"+parseInt(n.shift()).toString(16)).substr(-4)):t=e,t},e.resolve=function(e,t){return a.a.buildAbsoluteURL(t,e,{alwaysNormalize:!0})},e.parseMasterPlaylist=function(t,n){var i=[],r=void 0;function a(e,t){["video","audio"].forEach(function(n){var i=e.filter(function(e){return function(e,t){var n=S[t];return!!n&&!0===n[e.slice(0,4)]}(e,n)});if(i.length){var r=i.filter(function(e){return 0===e.lastIndexOf("avc1",0)||0===e.lastIndexOf("mp4a",0)});t[n+"Codec"]=r.length>0?r[0]:i[0],e=e.filter(function(e){return-1===i.indexOf(e)})}}),t.unknownCodecs=e}for(M.lastIndex=0;null!=(r=M.exec(t));){var o={},s=o.attrs=new w(r[1]);o.url=e.resolve(r[2],n);var l=s.decimalResolution("RESOLUTION");l&&(o.width=l.width,o.height=l.height),o.bitrate=s.decimalInteger("AVERAGE-BANDWIDTH")||s.decimalInteger("BANDWIDTH"),o.name=s.NAME,a([].concat((s.CODECS||"").split(/[ ,]+/)),o),o.videoCodec&&-1!==o.videoCodec.indexOf("avc1")&&(o.videoCodec=e.convertAVC1ToAVCOTI(o.videoCodec)),i.push(o)}return i},e.parseMasterPlaylistMedia=function(t,n,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=void 0,o=[],s=0;for(k.lastIndex=0;null!==(a=k.exec(t));){var l={},u=new w(a[1]);if(u.TYPE===i){if(l.groupId=u["GROUP-ID"],l.name=u.NAME,l.type=i,l.default="YES"===u.DEFAULT,l.autoselect="YES"===u.AUTOSELECT,l.forced="YES"===u.FORCED,u.URI&&(l.url=e.resolve(u.URI,n)),l.lang=u.LANGUAGE,l.name||(l.name=l.lang),r.length){var c=e.findGroup(r,l.groupId);l.audioCodec=c?c.codec:r[0].codec}l.id=s++,o.push(l)}}return o},e.parseLevelPlaylist=function(e,t,n,i,r){var a=0,o=0,l=new b(t),c=new m,d=0,h=null,f=new v,p=void 0,g=void 0,y=null;for(T.lastIndex=0;null!==(p=T.exec(e));){var _=p[1];if(_){f.duration=parseFloat(_);var x=(" "+p[2]).slice(1);f.title=x||null,f.tagList.push(x?["INF",_,x]:["INF",_])}else if(p[3]){if(Object(s.a)(f.duration)){var S=a++;f.type=i,f.start=o,f.levelkey=c,f.sn=S,f.level=n,f.cc=d,f.urlId=r,f.baseurl=t,f.relurl=(" "+p[3]).slice(1),D(f,h),l.fragments.push(f),h=f,o+=f.duration,f=new v}}else if(p[4]){if(f.rawByteRange=(" "+p[4]).slice(1),h){var C=h.byteRangeEndOffset;C&&(f.lastByteRangeEndOffset=C)}}else if(p[5])f.rawProgramDateTime=(" "+p[5]).slice(1),f.tagList.push(["PROGRAM-DATE-TIME",f.rawProgramDateTime]),null===y&&(y=l.fragments.length);else{for(p=p[0].match(A),g=1;g<p.length&&void 0===p[g];g++);var M=(" "+p[g+1]).slice(1),k=(" "+p[g+2]).slice(1);switch(p[g]){case"#":f.tagList.push(k?[M,k]:[M]);break;case"PLAYLIST-TYPE":l.type=M.toUpperCase();break;case"MEDIA-SEQUENCE":a=l.startSN=parseInt(M);break;case"TARGETDURATION":l.targetduration=parseFloat(M);break;case"VERSION":l.version=parseInt(M);break;case"EXTM3U":break;case"ENDLIST":l.live=!1;break;case"DIS":d++,f.tagList.push(["DIS"]);break;case"DISCONTINUITY-SEQ":d=parseInt(M);break;case"KEY":var E=new w(M),O=E.enumeratedString("METHOD"),P=E.URI,L=E.hexadecimalInteger("IV");O&&(c=new m,P&&["AES-128","SAMPLE-AES","SAMPLE-AES-CENC"].indexOf(O)>=0&&(c.method=O,c.baseuri=t,c.reluri=P,c.key=null,c.iv=L));break;case"START":var R=new w(M).decimalFloatingPoint("TIME-OFFSET");Object(s.a)(R)&&(l.startTimeOffset=R);break;case"MAP":var N=new w(M);f.relurl=N.URI,f.rawByteRange=N.BYTERANGE,f.baseurl=t,f.level=n,f.type=i,f.sn="initSegment",l.initSegment=f,(f=new v).rawProgramDateTime=l.initSegment.rawProgramDateTime;break;default:u.b.warn("line parsed but not handled: "+p)}}}return(f=h)&&!f.relurl&&(l.fragments.pop(),o-=f.duration),l.totalduration=o,l.averagetargetduration=o/l.fragments.length,l.endSN=a-1,l.startCC=l.fragments[0]?l.fragments[0].cc:0,l.endCC=d,!l.initSegment&&l.fragments.length&&l.fragments.every(function(e){return I.test(e.relurl)})&&(u.b.warn("MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX"),(f=new v).relurl=l.fragments[0].relurl,f.baseurl=t,f.level=n,f.type=i,f.sn="initSegment",l.initSegment=f,l.needSidxRanges=!0),y&&function(e,t){for(var n=e[t],i=t-1;i>=0;i--){var r=e[i];r.programDateTime=n.programDateTime-1e3*r.duration,n=r}}(l.fragments,y),l},e}();function D(e,t){e.rawProgramDateTime?e.programDateTime=Date.parse(e.rawProgramDateTime):t&&t.programDateTime&&(e.programDateTime=t.endProgramDateTime),Object(s.a)(e.programDateTime)||(e.programDateTime=null,e.rawProgramDateTime=null)}var O=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var P=window.performance,L={MANIFEST:"manifest",LEVEL:"level",AUDIO_TRACK:"audioTrack",SUBTITLE_TRACK:"subtitleTrack"},R={MAIN:"main",AUDIO:"audio",SUBTITLE:"subtitle"},N=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MANIFEST_LOADING,l.a.LEVEL_LOADING,l.a.AUDIO_TRACK_LOADING,l.a.SUBTITLE_TRACK_LOADING));return i.loaders={},i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.canHaveQualityLevels=function(e){return e!==L.AUDIO_TRACK&&e!==L.SUBTITLE_TRACK},t.mapContextToLevelType=function(e){switch(e.type){case L.AUDIO_TRACK:return R.AUDIO;case L.SUBTITLE_TRACK:return R.SUBTITLE;default:return R.MAIN}},t.getResponseUrl=function(e,t){var n=e.url;return void 0!==n&&0!==n.indexOf("data:")||(n=t.url),n},t.prototype.createInternalLoader=function(e){var t=this.hls.config,n=t.pLoader,i=t.loader,r=new(n||i)(t);return e.loader=r,this.loaders[e.type]=r,r},t.prototype.getInternalLoader=function(e){return this.loaders[e.type]},t.prototype.resetInternalLoader=function(e){this.loaders[e]&&delete this.loaders[e]},t.prototype.destroyInternalLoaders=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}},t.prototype.destroy=function(){this.destroyInternalLoaders(),e.prototype.destroy.call(this)},t.prototype.onManifestLoading=function(e){this.load(e.url,{type:L.MANIFEST,level:0,id:null})},t.prototype.onLevelLoading=function(e){this.load(e.url,{type:L.LEVEL,level:e.level,id:e.id})},t.prototype.onAudioTrackLoading=function(e){this.load(e.url,{type:L.AUDIO_TRACK,level:null,id:e.id})},t.prototype.onSubtitleTrackLoading=function(e){this.load(e.url,{type:L.SUBTITLE_TRACK,level:null,id:e.id})},t.prototype.load=function(e,t){var n=this.hls.config;u.b.debug("Loading playlist of type "+t.type+", level: "+t.level+", id: "+t.id);var i=this.getInternalLoader(t);if(i){var r=i.context;if(r&&r.url===e)return u.b.trace("playlist request ongoing"),!1;u.b.warn("aborting previous loader for type: "+t.type),i.abort()}var a=void 0,o=void 0,s=void 0,l=void 0;switch(t.type){case L.MANIFEST:a=n.manifestLoadingMaxRetry,o=n.manifestLoadingTimeOut,s=n.manifestLoadingRetryDelay,l=n.manifestLoadingMaxRetryTimeout;break;case L.LEVEL:a=0,o=n.levelLoadingTimeOut;break;default:a=n.levelLoadingMaxRetry,o=n.levelLoadingTimeOut,s=n.levelLoadingRetryDelay,l=n.levelLoadingMaxRetryTimeout}i=this.createInternalLoader(t),t.url=e,t.responseType=t.responseType||"";var c={timeout:o,maxRetry:a,retryDelay:s,maxRetryDelay:l},d={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};return u.b.debug("Calling internal loader delegate for URL: "+e),i.load(t,c,d),!0},t.prototype.loadsuccess=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(n.isSidxRequest)return this._handleSidxRequest(e,n),void this._handlePlaylistLoaded(e,t,n,i);this.resetInternalLoader(n.type);var r=e.data;t.tload=P.now(),0===r.indexOf("#EXTM3U")?r.indexOf("#EXTINF:")>0||r.indexOf("#EXT-X-TARGETDURATION:")>0?this._handleTrackOrLevelPlaylist(e,t,n,i):this._handleMasterPlaylist(e,t,n,i):this._handleManifestParsingError(e,n,"no EXTM3U delimiter",i)},t.prototype.loaderror=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._handleNetworkError(t,n)},t.prototype.loadtimeout=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._handleNetworkError(t,n,!0)},t.prototype._handleMasterPlaylist=function(e,n,i,r){var a=this.hls,o=e.data,s=t.getResponseUrl(e,i),c=E.parseMasterPlaylist(o,s);if(c.length){var d=c.map(function(e){return{id:e.attrs.AUDIO,codec:e.audioCodec}}),h=E.parseMasterPlaylistMedia(o,s,"AUDIO",d),f=E.parseMasterPlaylistMedia(o,s,"SUBTITLES");if(h.length){var p=!1;h.forEach(function(e){e.url||(p=!0)}),!1===p&&c[0].audioCodec&&!c[0].attrs.AUDIO&&(u.b.log("audio codec signaled in quality level, but no embedded audio track signaled, create one"),h.unshift({type:"main",name:"main"}))}a.trigger(l.a.MANIFEST_LOADED,{levels:c,audioTracks:h,subtitles:f,url:s,stats:n,networkDetails:r})}else this._handleManifestParsingError(e,i,"no level found in manifest",r)},t.prototype._handleTrackOrLevelPlaylist=function(e,n,i,r){var a=this.hls,o=i.id,u=i.level,c=i.type,d=t.getResponseUrl(e,i),h=Object(s.a)(o)?o:0,f=Object(s.a)(u)?u:h,p=t.mapContextToLevelType(i),m=E.parseLevelPlaylist(e.data,d,f,p,h);if(m.tload=n.tload,c===L.MANIFEST){var g={url:d,details:m};a.trigger(l.a.MANIFEST_LOADED,{levels:[g],audioTracks:[],url:d,stats:n,networkDetails:r})}if(n.tparsed=P.now(),m.needSidxRanges){var v=m.initSegment.url;this.load(v,{isSidxRequest:!0,type:c,level:u,levelDetails:m,id:o,rangeStart:0,rangeEnd:2048,responseType:"arraybuffer"})}else i.levelDetails=m,this._handlePlaylistLoaded(e,n,i,r)},t.prototype._handleSidxRequest=function(e,t){var n=f.a.parseSegmentIndex(new Uint8Array(e.data));n.references.forEach(function(e,n){var i=e.info,r=t.levelDetails.fragments[n];0===r.byteRange.length&&(r.rawByteRange=String(1+i.end-i.start)+"@"+String(i.start))}),t.levelDetails.initSegment.rawByteRange=String(n.moovEndOffset)+"@0"},t.prototype._handleManifestParsingError=function(e,t,n,i){this.hls.trigger(l.a.ERROR,{type:o.b.NETWORK_ERROR,details:o.a.MANIFEST_PARSING_ERROR,fatal:!0,url:e.url,reason:n,networkDetails:i})},t.prototype._handleNetworkError=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];u.b.info("A network error occured while loading a "+e.type+"-type playlist");var i=void 0,r=void 0,a=this.getInternalLoader(e);switch(e.type){case L.MANIFEST:i=n?o.a.MANIFEST_LOAD_TIMEOUT:o.a.MANIFEST_LOAD_ERROR,r=!0;break;case L.LEVEL:i=n?o.a.LEVEL_LOAD_TIMEOUT:o.a.LEVEL_LOAD_ERROR,r=!1;break;case L.AUDIO_TRACK:i=n?o.a.AUDIO_TRACK_LOAD_TIMEOUT:o.a.AUDIO_TRACK_LOAD_ERROR,r=!1;break;default:r=!1}a&&(a.abort(),this.resetInternalLoader(e.type)),this.hls.trigger(l.a.ERROR,{type:o.b.NETWORK_ERROR,details:i,fatal:r,url:a.url,loader:a,context:e,networkDetails:t})},t.prototype._handlePlaylistLoaded=function(e,n,i,r){var a=i.type,o=i.level,s=i.id,u=i.levelDetails;if(u.targetduration)if(t.canHaveQualityLevels(i.type))this.hls.trigger(l.a.LEVEL_LOADED,{details:u,level:o||0,id:s||0,stats:n,networkDetails:r});else switch(a){case L.AUDIO_TRACK:this.hls.trigger(l.a.AUDIO_TRACK_LOADED,{details:u,id:s,stats:n,networkDetails:r});break;case L.SUBTITLE_TRACK:this.hls.trigger(l.a.SUBTITLE_TRACK_LOADED,{details:u,id:s,stats:n,networkDetails:r})}else this._handleManifestParsingError(e,i,"invalid target duration",r)},O(t,null,[{key:"ContextType",get:function(){return L}},{key:"LevelType",get:function(){return R}}]),t}(h);var B=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.FRAG_LOADING));return i.loaders={},i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.destroy=function(){var t=this.loaders;for(var n in t){var i=t[n];i&&i.destroy()}this.loaders={},e.prototype.destroy.call(this)},t.prototype.onFragLoading=function(e){var t=e.frag,n=t.type,i=this.loaders,r=this.hls.config,a=r.fLoader,o=r.loader;t.loaded=0;var l=i[n];l&&(u.b.warn("abort previous fragment loader for type: "+n),l.abort()),l=i[n]=t.loader=r.fLoader?new a(r):new o(r);var c,d,h=void 0;h={url:t.url,frag:t,responseType:"arraybuffer",progressData:!1};var f=t.byteRangeStartOffset,p=t.byteRangeEndOffset;Object(s.a)(f)&&Object(s.a)(p)&&(h.rangeStart=f,h.rangeEnd=p),c={timeout:r.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:r.fragLoadingMaxRetryTimeout},d={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this),onProgress:this.loadprogress.bind(this)},l.load(h,c,d)},t.prototype.loadsuccess=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=e.data,a=n.frag;a.loader=void 0,this.loaders[a.type]=void 0,this.hls.trigger(l.a.FRAG_LOADED,{payload:r,frag:a,stats:t,networkDetails:i})},t.prototype.loaderror=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=t.frag,r=i.loader;r&&r.abort(),this.loaders[i.type]=void 0,this.hls.trigger(l.a.ERROR,{type:o.b.NETWORK_ERROR,details:o.a.FRAG_LOAD_ERROR,fatal:!1,frag:t.frag,response:e,networkDetails:n})},t.prototype.loadtimeout=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=t.frag,r=i.loader;r&&r.abort(),this.loaders[i.type]=void 0,this.hls.trigger(l.a.ERROR,{type:o.b.NETWORK_ERROR,details:o.a.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t.frag,networkDetails:n})},t.prototype.loadprogress=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=t.frag;r.loaded=e.loaded,this.hls.trigger(l.a.FRAG_LOAD_PROGRESS,{frag:r,stats:e,networkDetails:i})},t}(h);var F=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.KEY_LOADING));return i.loaders={},i.decryptkey=null,i.decrypturl=null,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.destroy=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy()}this.loaders={},h.prototype.destroy.call(this)},t.prototype.onKeyLoading=function(e){var t=e.frag,n=t.type,i=this.loaders[n],r=t.decryptdata,a=r.uri;if(a!==this.decrypturl||null===this.decryptkey){var o=this.hls.config;i&&(u.b.warn("abort previous key loader for type:"+n),i.abort()),t.loader=this.loaders[n]=new o.loader(o),this.decrypturl=a,this.decryptkey=null;var s,c,d;s={url:a,frag:t,responseType:"arraybuffer"},c={timeout:o.fragLoadingTimeOut,maxRetry:o.fragLoadingMaxRetry,retryDelay:o.fragLoadingRetryDelay,maxRetryDelay:o.fragLoadingMaxRetryTimeout},d={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},t.loader.load(s,c,d)}else this.decryptkey&&(r.key=this.decryptkey,this.hls.trigger(l.a.KEY_LOADED,{frag:t}))},t.prototype.loadsuccess=function(e,t,n){var i=n.frag;this.decryptkey=i.decryptdata.key=new Uint8Array(e.data),i.loader=void 0,this.loaders[i.type]=void 0,this.hls.trigger(l.a.KEY_LOADED,{frag:i})},t.prototype.loaderror=function(e,t){var n=t.frag,i=n.loader;i&&i.abort(),this.loaders[t.type]=void 0,this.hls.trigger(l.a.ERROR,{type:o.b.NETWORK_ERROR,details:o.a.KEY_LOAD_ERROR,fatal:!1,frag:n,response:e})},t.prototype.loadtimeout=function(e,t){var n=t.frag,i=n.loader;i&&i.abort(),this.loaders[t.type]=void 0,this.hls.trigger(l.a.ERROR,{type:o.b.NETWORK_ERROR,details:o.a.KEY_LOAD_TIMEOUT,fatal:!1,frag:n})},t}(h);var z="NOT_LOADED",V="APPENDING",$="PARTIAL",G="OK",j=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.BUFFER_APPENDED,l.a.FRAG_BUFFERED,l.a.FRAG_LOADED));return i.bufferPadding=.2,i.fragments=Object.create(null),i.timeRanges=Object.create(null),i.config=n.config,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.destroy=function(){this.fragments=null,this.timeRanges=null,this.config=null,h.prototype.destroy.call(this),e.prototype.destroy.call(this)},t.prototype.getBufferedFrag=function(e,t){var n=this.fragments,i=Object.keys(n).filter(function(i){var r=n[i];if(r.body.type!==t)return!1;if(!r.buffered)return!1;var a=r.body;return a.startPTS<=e&&e<=a.endPTS});if(0===i.length)return null;var r=i.pop();return n[r].body},t.prototype.detectEvictedFragments=function(e,t){var n=this,i=void 0,r=void 0;Object.keys(this.fragments).forEach(function(a){var o=n.fragments[a];if(!0===o.buffered){var s=o.range[e];if(s){i=s.time;for(var l=0;l<i.length;l++)if(r=i[l],!1===n.isTimeBuffered(r.startPTS,r.endPTS,t)){n.removeFragment(o.body);break}}}})},t.prototype.detectPartialFragments=function(e){var t=this,n=this.getFragmentKey(e),i=this.fragments[n];i&&(i.buffered=!0,Object.keys(this.timeRanges).forEach(function(n){if(e.hasElementaryStream(n)){var r=t.timeRanges[n];i.range[n]=t.getBufferedTimes(e.startPTS,e.endPTS,r)}}))},t.prototype.getBufferedTimes=function(e,t,n){for(var i=[],r=void 0,a=void 0,o=!1,s=0;s<n.length;s++){if(r=n.start(s)-this.bufferPadding,a=n.end(s)+this.bufferPadding,e>=r&&t<=a){i.push({startPTS:Math.max(e,n.start(s)),endPTS:Math.min(t,n.end(s))});break}if(e<a&&t>r)i.push({startPTS:Math.max(e,n.start(s)),endPTS:Math.min(t,n.end(s))}),o=!0;else if(t<=r)break}return{time:i,partial:o}},t.prototype.getFragmentKey=function(e){return e.type+"_"+e.level+"_"+e.urlId+"_"+e.sn},t.prototype.getPartialFragment=function(e){var t=this,n=void 0,i=void 0,r=void 0,a=null,o=0;return Object.keys(this.fragments).forEach(function(s){var l=t.fragments[s];t.isPartial(l)&&(i=l.body.startPTS-t.bufferPadding,r=l.body.endPTS+t.bufferPadding,e>=i&&e<=r&&(n=Math.min(e-i,r-e),o<=n&&(a=l.body,o=n)))}),a},t.prototype.getState=function(e){var t=this.getFragmentKey(e),n=this.fragments[t],i=z;return void 0!==n&&(i=n.buffered?!0===this.isPartial(n)?$:G:V),i},t.prototype.isPartial=function(e){return!0===e.buffered&&(void 0!==e.range.video&&!0===e.range.video.partial||void 0!==e.range.audio&&!0===e.range.audio.partial)},t.prototype.isTimeBuffered=function(e,t,n){for(var i=void 0,r=void 0,a=0;a<n.length;a++){if(i=n.start(a)-this.bufferPadding,r=n.end(a)+this.bufferPadding,e>=i&&t<=r)return!0;if(t<=i)return!1}return!1},t.prototype.onFragLoaded=function(e){var t=e.frag;Object(s.a)(t.sn)&&!t.bitrateTest&&(this.fragments[this.getFragmentKey(t)]={body:t,range:Object.create(null),buffered:!1})},t.prototype.onBufferAppended=function(e){var t=this;this.timeRanges=e.timeRanges,Object.keys(this.timeRanges).forEach(function(e){var n=t.timeRanges[e];t.detectEvictedFragments(e,n)})},t.prototype.onFragBuffered=function(e){this.detectPartialFragments(e.frag)},t.prototype.hasFragment=function(e){var t=this.getFragmentKey(e);return void 0!==this.fragments[t]},t.prototype.removeFragment=function(e){var t=this.getFragmentKey(e);delete this.fragments[t]},t.prototype.removeAllFragments=function(){this.fragments=Object.create(null)},t}(h),H={search:function(e,t){for(var n=0,i=e.length-1,r=null,a=null;n<=i;){var o=t(a=e[r=(n+i)/2|0]);if(o>0)n=r+1;else{if(!(o<0))return a;i=r-1}}return null}};var W=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.isBuffered=function(e,t){try{if(e)for(var n=e.buffered,i=0;i<n.length;i++)if(t>=n.start(i)&&t<=n.end(i))return!0}catch(e){}return!1},e.bufferInfo=function(e,t,n){try{if(e){var i=e.buffered,r=[],a=void 0;for(a=0;a<i.length;a++)r.push({start:i.start(a),end:i.end(a)});return this.bufferedInfo(r,t,n)}}catch(e){}return{len:0,start:t,end:t,nextStart:void 0}},e.bufferedInfo=function(e,t,n){var i=[],r=void 0,a=void 0,o=void 0,s=void 0,l=void 0;for(e.sort(function(e,t){var n=e.start-t.start;return n||t.end-e.end}),l=0;l<e.length;l++){var u=i.length;if(u){var c=i[u-1].end;e[l].start-c<n?e[l].end>c&&(i[u-1].end=e[l].end):i.push(e[l])}else i.push(e[l])}for(l=0,r=0,a=o=t;l<i.length;l++){var d=i[l].start,h=i[l].end;if(t+n>=d&&t<h)a=d,r=(o=h)-t;else if(t+n<d){s=d;break}}return{len:r,start:a,end:o,nextStart:s}},e}(),U=n(7),K=n.n(U),q=n(12),Y=n.n(q),Z=n(10);function X(){if("undefined"!=typeof window)return window.MediaSource||window.WebKitMediaSource}var J=n(4);var Q=Object(J.a)(),ee=X(),te=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.hls=t,this.id=n;var i=this.observer=new K.a,r=t.config;i.trigger=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];i.emit.apply(i,[e,e].concat(n))},i.off=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];i.removeListener.apply(i,[e].concat(n))};var a=function(e,n){(n=n||{}).frag=this.frag,n.id=this.id,t.trigger(e,n)}.bind(this);i.on(l.a.FRAG_DECRYPTED,a),i.on(l.a.FRAG_PARSING_INIT_SEGMENT,a),i.on(l.a.FRAG_PARSING_DATA,a),i.on(l.a.FRAG_PARSED,a),i.on(l.a.ERROR,a),i.on(l.a.FRAG_PARSING_METADATA,a),i.on(l.a.FRAG_PARSING_USERDATA,a),i.on(l.a.INIT_PTS_FOUND,a);var s={mp4:ee.isTypeSupported("video/mp4"),mpeg:ee.isTypeSupported("audio/mpeg"),mp3:ee.isTypeSupported('audio/mp4; codecs="mp3"')},c=navigator.vendor;if(r.enableWorker&&"undefined"!=typeof Worker){u.b.log("demuxing in webworker");var d=void 0;try{d=this.w=Y()(13),this.onwmsg=this.onWorkerMessage.bind(this),d.addEventListener("message",this.onwmsg),d.onerror=function(e){t.trigger(l.a.ERROR,{type:o.b.OTHER_ERROR,details:o.a.INTERNAL_EXCEPTION,fatal:!0,event:"demuxerWorker",err:{message:e.message+" ("+e.filename+":"+e.lineno+")"}})},d.postMessage({cmd:"init",typeSupported:s,vendor:c,id:n,config:JSON.stringify(r)})}catch(e){u.b.error("error while initializing DemuxerWorker, fallback on DemuxerInline"),d&&Q.URL.revokeObjectURL(d.objectURL),this.demuxer=new Z.a(i,s,r,c),this.w=void 0}}else this.demuxer=new Z.a(i,s,r,c)}return e.prototype.destroy=function(){var e=this.w;if(e)e.removeEventListener("message",this.onwmsg),e.terminate(),this.w=null;else{var t=this.demuxer;t&&(t.destroy(),this.demuxer=null)}var n=this.observer;n&&(n.removeAllListeners(),this.observer=null)},e.prototype.push=function(e,t,n,i,r,a,o,l){var c=this.w,d=Object(s.a)(r.startDTS)?r.startDTS:r.start,h=r.decryptdata,f=this.frag,p=!(f&&r.cc===f.cc),m=!(f&&r.level===f.level),g=f&&r.sn===f.sn+1,v=!m&&g;if(p&&u.b.log(this.id+":discontinuity detected"),m&&u.b.log(this.id+":switch detected"),this.frag=r,c)c.postMessage({cmd:"demux",data:e,decryptdata:h,initSegment:t,audioCodec:n,videoCodec:i,timeOffset:d,discontinuity:p,trackSwitch:m,contiguous:v,duration:a,accurateTimeOffset:o,defaultInitPTS:l},e instanceof ArrayBuffer?[e]:[]);else{var y=this.demuxer;y&&y.push(e,h,t,n,i,d,p,m,v,a,o,l)}},e.prototype.onWorkerMessage=function(e){var t=e.data,n=this.hls;switch(t.event){case"init":Q.URL.revokeObjectURL(this.w.objectURL);break;case l.a.FRAG_PARSING_DATA:t.data.data1=new Uint8Array(t.data1),t.data2&&(t.data.data2=new Uint8Array(t.data2));default:t.data=t.data||{},t.data.frag=this.frag,t.data.id=this.id,n.trigger(t.event,t.data)}},e}();function ne(e,t,n){switch(t){case"audio":e.audioGroupIds||(e.audioGroupIds=[]),e.audioGroupIds.push(n);break;case"text":e.textGroupIds||(e.textGroupIds=[]),e.textGroupIds.push(n)}}function ie(e,t,n){var i=e[t],r=e[n],a=r.startPTS;Object(s.a)(a)?n>t?(i.duration=a-i.start,i.duration<0&&u.b.warn("negative duration computed for frag "+i.sn+",level "+i.level+", there should be some duration drift between playlist and fragment!")):(r.duration=i.start-a,r.duration<0&&u.b.warn("negative duration computed for frag "+r.sn+",level "+r.level+", there should be some duration drift between playlist and fragment!")):r.start=n>t?i.start+i.duration:Math.max(i.start-r.duration,0)}function re(e,t,n,i,r,a){var o=n;if(Object(s.a)(t.startPTS)){var l=Math.abs(t.startPTS-n);Object(s.a)(t.deltaPTS)?t.deltaPTS=Math.max(l,t.deltaPTS):t.deltaPTS=l,o=Math.max(n,t.startPTS),n=Math.min(n,t.startPTS),i=Math.max(i,t.endPTS),r=Math.min(r,t.startDTS),a=Math.max(a,t.endDTS)}var u=n-t.start;t.start=t.startPTS=n,t.maxStartPTS=o,t.endPTS=i,t.startDTS=r,t.endDTS=a,t.duration=i-n;var c=t.sn;if(!e||c<e.startSN||c>e.endSN)return 0;var d,h=void 0,f=void 0;for(d=c-e.startSN,(h=e.fragments)[d]=t,f=d;f>0;f--)ie(h,f,f-1);for(f=d;f<h.length-1;f++)ie(h,f,f+1);return e.PTSKnown=!0,u}function ae(e,t){var n=Math.max(e.startSN,t.startSN)-t.startSN,i=Math.min(e.endSN,t.endSN)-t.startSN,r=t.startSN-e.startSN,a=e.fragments,o=t.fragments,l=0,c=void 0;if(t.initSegment&&e.initSegment&&(t.initSegment=e.initSegment),i<n)t.PTSKnown=!1;else{for(var d=n;d<=i;d++){var h=a[r+d],f=o[d];f&&h&&(l=h.cc-f.cc,Object(s.a)(h.startPTS)&&(f.start=f.startPTS=h.startPTS,f.endPTS=h.endPTS,f.duration=h.duration,f.backtracked=h.backtracked,f.dropped=h.dropped,c=f))}if(l)for(u.b.log("discontinuity sliding from playlist, take drift into account"),d=0;d<o.length;d++)o[d].cc+=l;if(c)re(t,c,c.startPTS,c.endPTS,c.startDTS,c.endDTS);else if(r>=0&&r<a.length){var p=a[r].start;for(d=0;d<o.length;d++)o[d].start+=p}t.PTSKnown=e.PTSKnown}}var oe={toString:function(e){for(var t="",n=e.length,i=0;i<n;i++)t+="["+e.start(i).toFixed(3)+","+e.end(i).toFixed(3)+"]";return t}};function se(e,t){t.fragments.forEach(function(t){if(t){var n=t.start+e;t.start=t.startPTS=n,t.endPTS=n+t.duration}}),t.PTSKnown=!0}function le(e,t,n){!function(e,t,n){if(function(e,t,n){var i=!1;return t&&t.details&&n&&(n.endCC>n.startCC||e&&e.cc<n.startCC)&&(i=!0),i}(e,n,t)){var i=function(e,t){var n=e.fragments,i=t.fragments;if(i.length&&n.length){var r=function(e,t){for(var n=null,i=0;i<e.length;i+=1){var r=e[i];if(r&&r.cc===t){n=r;break}}return n}(n,i[0].cc);if(r&&(!r||r.startPTS))return r;u.b.log("No frag in previous level to align on")}else u.b.log("No fragments to align")}(n.details,t);i&&(u.b.log("Adjusting PTS using last level due to CC increase within current level"),se(i.start,t))}}(e,n,t),!n.PTSKnown&&t&&function(e,t){if(t&&t.fragments.length){if(!e.hasProgramDateTime||!t.hasProgramDateTime)return;var n=t.fragments[0].programDateTime,i=e.fragments[0].programDateTime,r=(i-n)/1e3+t.fragments[0].start;Object(s.a)(r)&&(u.b.log("adjusting PTS using programDateTime delta, sliding:"+r.toFixed(3)),se(r,e))}}(n,t.details)}var ue=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var i=arguments.length,r=Array(i>1?i-1:0),a=1;a<i;a++)r[a-1]=arguments[a];var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call.apply(e,[this,n].concat(r)));return o._tickInterval=null,o._tickTimer=null,o._tickCallCount=0,o._boundTick=o.tick.bind(o),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.onHandlerDestroying=function(){this.clearNextTick(),this.clearInterval()},t.prototype.hasInterval=function(){return!!this._tickInterval},t.prototype.hasNextTick=function(){return!!this._tickTimer},t.prototype.setInterval=function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(e){return!this._tickInterval&&(this._tickInterval=setInterval(this._boundTick,e),!0)}),t.prototype.clearInterval=function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(){return!!this._tickInterval&&(clearInterval(this._tickInterval),this._tickInterval=null,!0)}),t.prototype.clearNextTick=function(){return!!this._tickTimer&&(clearTimeout(this._tickTimer),this._tickTimer=null,!0)},t.prototype.tick=function(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),this._tickCallCount>1&&(this.clearNextTick(),this._tickTimer=setTimeout(this._boundTick,0)),this._tickCallCount=0)},t.prototype.doTick=function(){},t}(h);function ce(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments[2],i=Math.min(t,n.duration+(n.deltaPTS?n.deltaPTS:0));return n.start+n.duration-i<=e?1:n.start-i>e&&n.start?-1:0}function de(e,t,n){var i=1e3*Math.min(t,n.duration+(n.deltaPTS?n.deltaPTS:0));return n.endProgramDateTime-i>e}var he=function(){function e(t,n,i,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.config=t,this.media=n,this.fragmentTracker=i,this.hls=r,this.stallReported=!1}return e.prototype.poll=function(e,t){var n=this.config,i=this.media,r=i.currentTime,a=window.performance.now();if(r!==e)return this.stallReported&&(u.b.warn("playback not stuck anymore @"+r+", after "+Math.round(a-this.stalled)+"ms"),this.stallReported=!1),this.stalled=null,void(this.nudgeRetry=0);if(!(i.ended||!i.buffered.length||i.readyState>2||i.seeking&&W.isBuffered(i,r))){var o=a-this.stalled,s=W.bufferInfo(i,r,n.maxBufferHole);this.stalled?(o>=1e3&&this._reportStall(s.len),this._tryFixBufferStall(s,o)):this.stalled=a}},e.prototype._tryFixBufferStall=function(e,t){var n=this.config,i=this.fragmentTracker,r=this.media.currentTime,a=i.getPartialFragment(r);a&&this._trySkipBufferHole(a),e.len>.5&&t>1e3*n.highBufferWatchdogPeriod&&(this.stalled=null,this._tryNudgeBuffer())},e.prototype._reportStall=function(e){var t=this.hls,n=this.media;this.stallReported||(this.stallReported=!0,u.b.warn("Playback stalling at @"+n.currentTime+" due to low buffer"),t.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.BUFFER_STALLED_ERROR,fatal:!1,buffer:e}))},e.prototype._trySkipBufferHole=function(e){for(var t=this.hls,n=this.media,i=n.currentTime,r=0,a=0;a<n.buffered.length;a++){var s=n.buffered.start(a);if(i>=r&&i<s)return n.currentTime=Math.max(s,n.currentTime+.1),u.b.warn("skipping hole, adjusting currentTime from "+i+" to "+n.currentTime),this.stalled=null,void t.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.BUFFER_SEEK_OVER_HOLE,fatal:!1,reason:"fragment loaded with buffer holes, seeking from "+i+" to "+n.currentTime,frag:e});r=n.buffered.end(a)}},e.prototype._tryNudgeBuffer=function(){var e=this.config,t=this.hls,n=this.media,i=n.currentTime,r=(this.nudgeRetry||0)+1;if(this.nudgeRetry=r,r<e.nudgeMaxRetry){var a=i+r*e.nudgeOffset;u.b.log("adjust currentTime from "+i+" to "+a),n.currentTime=a,t.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.BUFFER_NUDGE_ON_STALL,fatal:!1})}else u.b.error("still stuck in high buffer @"+i+" after "+e.nudgeMaxRetry+", raise fatal error"),t.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.BUFFER_STALLED_ERROR,fatal:!0})},e}(),fe=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var pe={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_LEVEL:"WAITING_LEVEL",PARSING:"PARSING",PARSED:"PARSED",BUFFER_FLUSHING:"BUFFER_FLUSHING",ENDED:"ENDED",ERROR:"ERROR"},me=function(e){function t(n,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHED,l.a.MEDIA_DETACHING,l.a.MANIFEST_LOADING,l.a.MANIFEST_PARSED,l.a.LEVEL_LOADED,l.a.KEY_LOADED,l.a.FRAG_LOADED,l.a.FRAG_LOAD_EMERGENCY_ABORTED,l.a.FRAG_PARSING_INIT_SEGMENT,l.a.FRAG_PARSING_DATA,l.a.FRAG_PARSED,l.a.ERROR,l.a.AUDIO_TRACK_SWITCHING,l.a.AUDIO_TRACK_SWITCHED,l.a.BUFFER_CREATED,l.a.BUFFER_APPENDED,l.a.BUFFER_FLUSHED));return r.fragmentTracker=i,r.config=n.config,r.audioCodecSwap=!1,r._state=pe.STOPPED,r.stallReported=!1,r.gapController=null,r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.onHandlerDestroying=function(){this.stopLoad(),e.prototype.onHandlerDestroying.call(this)},t.prototype.onHandlerDestroyed=function(){this.state=pe.STOPPED,this.fragmentTracker=null,e.prototype.onHandlerDestroyed.call(this)},t.prototype.startLoad=function(e){if(this.levels){var t=this.lastCurrentTime,n=this.hls;if(this.stopLoad(),this.setInterval(100),this.level=-1,this.fragLoadError=0,!this.startFragRequested){var i=n.startLevel;-1===i&&(i=0,this.bitrateTest=!0),this.level=n.nextLoadLevel=i,this.loadedmetadata=!1}t>0&&-1===e&&(u.b.log("override startPosition with lastCurrentTime @"+t.toFixed(3)),e=t),this.state=pe.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else this.forceStartLoad=!0,this.state=pe.STOPPED},t.prototype.stopLoad=function(){var e=this.fragCurrent;e&&(e.loader&&e.loader.abort(),this.fragmentTracker.removeFragment(e),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.clearInterval(),this.state=pe.STOPPED,this.forceStartLoad=!1},t.prototype.doTick=function(){switch(this.state){case pe.BUFFER_FLUSHING:this.fragLoadError=0;break;case pe.IDLE:this._doTickIdle();break;case pe.WAITING_LEVEL:var e=this.levels[this.level];e&&e.details&&(this.state=pe.IDLE);break;case pe.FRAG_LOADING_WAITING_RETRY:var t=window.performance.now(),n=this.retryDate;(!n||t>=n||this.media&&this.media.seeking)&&(u.b.log("mediaController: retryDate reached, switch back to IDLE state"),this.state=pe.IDLE);break;case pe.ERROR:case pe.STOPPED:case pe.FRAG_LOADING:case pe.PARSING:case pe.PARSED:case pe.ENDED:}this._checkBuffer(),this._checkFragmentChanged()},t.prototype._doTickIdle=function(){var e=this.hls,t=e.config,n=this.media;if(void 0!==this.levelLastLoaded&&(n||!this.startFragRequested&&t.startFragPrefetch)){var i=void 0;i=this.loadedmetadata?n.currentTime:this.nextLoadPosition;var r=e.nextLoadLevel,a=this.levels[r];if(a){var o=a.bitrate,s=void 0;s=o?Math.max(8*t.maxBufferSize/o,t.maxBufferLength):t.maxBufferLength,s=Math.min(s,t.maxMaxBufferLength);var c=W.bufferInfo(this.mediaBuffer?this.mediaBuffer:n,i,t.maxBufferHole),d=c.len;if(!(d>=s)){u.b.trace("buffer length of "+d.toFixed(3)+" is below max of "+s.toFixed(3)+". checking for more payload ..."),this.level=e.nextLoadLevel=r;var h=a.details;if(!h||h.live&&this.levelLastLoaded!==r)this.state=pe.WAITING_LEVEL;else{var f=this.fragPrevious;if(!h.live&&f&&!f.backtracked&&f.sn===h.endSN&&!c.nextStart)if(Math.min(n.duration,f.start+f.duration)-Math.max(c.end,f.start)<=Math.max(.2,f.duration)){var p={};return this.altAudio&&(p.type="video"),this.hls.trigger(l.a.BUFFER_EOS,p),void(this.state=pe.ENDED)}this._fetchPayloadOrEos(i,c,h)}}}}},t.prototype._fetchPayloadOrEos=function(e,t,n){var i=this.fragPrevious,r=this.level,a=n.fragments,o=a.length;if(0!==o){var s=a[0].start,l=a[o-1].start+a[o-1].duration,c=t.end,d=void 0;if(n.initSegment&&!n.initSegment.data)d=n.initSegment;else if(n.live){var h=this.config.initialLiveManifestSize;if(o<h)return void u.b.warn("Can not start playback of a level, reason: not enough fragments "+o+" < "+h);if(null===(d=this._ensureFragmentAtLivePoint(n,c,s,l,i,a,o)))return}else c<s&&(d=a[0]);d||(d=this._findFragment(s,i,o,a,c,l,n)),d&&(d.encrypted?(u.b.log("Loading key for "+d.sn+" of ["+n.startSN+" ,"+n.endSN+"],level "+r),this._loadKey(d)):(u.b.log("Loading "+d.sn+" of ["+n.startSN+" ,"+n.endSN+"],level "+r+", currentTime:"+e.toFixed(3)+",bufferEnd:"+c.toFixed(3)),this._loadFragment(d)))}},t.prototype._ensureFragmentAtLivePoint=function(e,t,n,i,r,a,o){var l=this.hls.config,c=this.media,d=void 0,h=void 0!==l.liveMaxLatencyDuration?l.liveMaxLatencyDuration:l.liveMaxLatencyDurationCount*e.targetduration;if(t<Math.max(n-l.maxFragLookUpTolerance,i-h)){var f=this.liveSyncPosition=this.computeLivePosition(n,e);u.b.log("buffer end: "+t.toFixed(3)+" is located too far from the end of live sliding playlist, reset currentTime to : "+f.toFixed(3)),t=f,c&&c.readyState&&c.duration>f&&(c.currentTime=f),this.nextLoadPosition=f}if(e.PTSKnown&&t>i&&c&&c.readyState)return null;if(this.startFragRequested&&!e.PTSKnown){if(r)if(e.hasProgramDateTime)u.b.log("live playlist, switching playlist, load frag with same PDT: "+r.programDateTime),d=function(e,t,n){if(!Array.isArray(e)||!e.length||!Object(s.a)(t))return null;if(t<e[0].programDateTime)return null;if(t>=e[e.length-1].endProgramDateTime)return null;n=n||0;for(var i=0;i<e.length;++i){var r=e[i];if(de(t,n,r))return r}return null}(a,r.endProgramDateTime,l.maxFragLookUpTolerance);else{var p=r.sn+1;if(p>=e.startSN&&p<=e.endSN){var m=a[p-e.startSN];r.cc===m.cc&&(d=m,u.b.log("live playlist, switching playlist, load frag with next SN: "+d.sn))}d||(d=H.search(a,function(e){return r.cc-e.cc}))&&u.b.log("live playlist, switching playlist, load frag with same CC: "+d.sn)}d||(d=a[Math.min(o-1,Math.round(o/2))],u.b.log("live playlist, switching playlist, unknown, load middle frag : "+d.sn))}return d},t.prototype._findFragment=function(e,t,n,i,r,a,o){var s=this.hls.config,l=void 0;r<a?l=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=e?t[e.sn-t[0].sn+1]:null;return r&&!ce(n,i,r)?r:H.search(t,ce.bind(null,n,i))}(t,i,r,r>a-s.maxFragLookUpTolerance?0:s.maxFragLookUpTolerance):l=i[n-1];if(l){var c=l.sn-o.startSN,d=t&&l.level===t.level,h=i[c-1],f=i[c+1];if(t&&l.sn===t.sn)if(d&&!l.backtracked)if(l.sn<o.endSN){var p=t.deltaPTS;p&&p>s.maxBufferHole&&t.dropped&&c?(l=h,u.b.warn("SN just loaded, with large PTS gap between audio and video, maybe frag is not starting with a keyframe ? load previous one to try to overcome this")):(l=f,u.b.log("SN just loaded, load next one: "+l.sn,l))}else l=null;else l.backtracked&&(f&&f.backtracked?(u.b.warn("Already backtracked from fragment "+f.sn+", will not backtrack to fragment "+l.sn+". Loading fragment "+f.sn),l=f):(u.b.warn("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"),l.dropped=0,h?(l=h).backtracked=!0:c&&(l=null)))}return l},t.prototype._loadKey=function(e){this.state=pe.KEY_LOADING,this.hls.trigger(l.a.KEY_LOADING,{frag:e})},t.prototype._loadFragment=function(e){var t=this.fragmentTracker.getState(e);this.fragCurrent=e,this.startFragRequested=!0,Object(s.a)(e.sn)&&!e.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),e.backtracked||t===z||t===$?(e.autoLevel=this.hls.autoLevelEnabled,e.bitrateTest=this.bitrateTest,this.hls.trigger(l.a.FRAG_LOADING,{frag:e}),this.demuxer||(this.demuxer=new te(this.hls,"main")),this.state=pe.FRAG_LOADING):t===V&&this._reduceMaxBufferLength(e.duration)&&this.fragmentTracker.removeFragment(e)},t.prototype.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,N.LevelType.MAIN)},t.prototype.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.endPTS+.5):null},t.prototype._checkFragmentChanged=function(){var e=void 0,t=void 0,n=this.media;if(n&&n.readyState&&!1===n.seeking&&((t=n.currentTime)>this.lastCurrentTime&&(this.lastCurrentTime=t),W.isBuffered(n,t)?e=this.getBufferedFrag(t):W.isBuffered(n,t+.1)&&(e=this.getBufferedFrag(t+.1)),e)){var i=e;if(i!==this.fragPlaying){this.hls.trigger(l.a.FRAG_CHANGED,{frag:i});var r=i.level;this.fragPlaying&&this.fragPlaying.level===r||this.hls.trigger(l.a.LEVEL_SWITCHED,{level:r}),this.fragPlaying=i}}},t.prototype.immediateLevelSwitch=function(){if(u.b.log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var e=this.media,t=void 0;e?(t=e.paused,e.pause()):t=!0,this.previouslyPaused=t}var n=this.fragCurrent;n&&n.loader&&n.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},t.prototype.immediateLevelSwitchEnd=function(){var e=this.media;e&&e.buffered.length&&(this.immediateSwitch=!1,W.isBuffered(e,e.currentTime)&&(e.currentTime-=1e-4),this.previouslyPaused||e.play())},t.prototype.nextLevelSwitch=function(){var e=this.media;if(e&&e.readyState){var t,n=void 0,i=void 0;if((t=this.getBufferedFrag(e.currentTime))&&t.startPTS>1&&this.flushMainBuffer(0,t.startPTS-1),e.paused)n=0;else{var r=this.hls.nextLoadLevel,a=this.levels[r],o=this.fragLastKbps;n=o&&this.fragCurrent?this.fragCurrent.duration*a.bitrate/(1e3*o)+1:0}if((i=this.getBufferedFrag(e.currentTime+n))&&(i=this.followingBufferedFrag(i))){var s=this.fragCurrent;s&&s.loader&&s.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(i.maxStartPTS,Number.POSITIVE_INFINITY)}}},t.prototype.flushMainBuffer=function(e,t){this.state=pe.BUFFER_FLUSHING;var n={startOffset:e,endOffset:t};this.altAudio&&(n.type="video"),this.hls.trigger(l.a.BUFFER_FLUSHING,n)},t.prototype.onMediaAttached=function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("seeked",this.onvseeked),t.addEventListener("ended",this.onvended);var n=this.config;this.levels&&n.autoStartLoad&&this.hls.startLoad(n.startPosition),this.gapController=new he(n,t,this.fragmentTracker,this.hls)},t.prototype.onMediaDetaching=function(){var e=this.media;e&&e.ended&&(u.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var t=this.levels;t&&t.forEach(function(e){e.details&&e.details.fragments.forEach(function(e){e.backtracked=void 0})}),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("seeked",this.onvseeked),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()},t.prototype.onMediaSeeking=function(){var e=this.media,t=e?e.currentTime:void 0,n=this.config;Object(s.a)(t)&&u.b.log("media seeking to "+t.toFixed(3));var i=this.mediaBuffer?this.mediaBuffer:e,r=W.bufferInfo(i,t,this.config.maxBufferHole);if(this.state===pe.FRAG_LOADING){var a=this.fragCurrent;if(0===r.len&&a){var o=n.maxFragLookUpTolerance,l=a.start-o,c=a.start+a.duration+o;t<l||t>c?(a.loader&&(u.b.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),a.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=pe.IDLE):u.b.log("seeking outside of buffer but within currently loaded fragment range")}}else this.state===pe.ENDED&&(0===r.len&&(this.fragPrevious=0),this.state=pe.IDLE);e&&(this.lastCurrentTime=t),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=t),this.tick()},t.prototype.onMediaSeeked=function(){var e=this.media,t=e?e.currentTime:void 0;Object(s.a)(t)&&u.b.log("media seeked to "+t.toFixed(3)),this.tick()},t.prototype.onMediaEnded=function(){u.b.log("media ended"),this.startPosition=this.lastCurrentTime=0},t.prototype.onManifestLoading=function(){u.b.log("trigger BUFFER_RESET"),this.hls.trigger(l.a.BUFFER_RESET),this.fragmentTracker.removeAllFragments(),this.stalled=!1,this.startPosition=this.lastCurrentTime=0},t.prototype.onManifestParsed=function(e){var t=!1,n=!1,i=void 0;e.levels.forEach(function(e){(i=e.audioCodec)&&(-1!==i.indexOf("mp4a.40.2")&&(t=!0),-1!==i.indexOf("mp4a.40.5")&&(n=!0))}),this.audioCodecSwitch=t&&n,this.audioCodecSwitch&&u.b.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startFragRequested=!1;var r=this.config;(r.autoStartLoad||this.forceStartLoad)&&this.hls.startLoad(r.startPosition)},t.prototype.onLevelLoaded=function(e){var t=e.details,n=e.level,i=this.levels[this.levelLastLoaded],r=this.levels[n],a=t.totalduration,o=0;if(u.b.log("level "+n+" loaded ["+t.startSN+","+t.endSN+"],duration:"+a),t.live){var c=r.details;c&&t.fragments.length>0?(ae(c,t),o=t.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(o,c),t.PTSKnown&&Object(s.a)(o)?u.b.log("live playlist sliding:"+o.toFixed(3)):(u.b.log("live playlist - outdated PTS, unknown sliding"),le(this.fragPrevious,i,t))):(u.b.log("live playlist - first load, unknown sliding"),t.PTSKnown=!1,le(this.fragPrevious,i,t))}else t.PTSKnown=!1;if(r.details=t,this.levelLastLoaded=n,this.hls.trigger(l.a.LEVEL_UPDATED,{details:t,level:n}),!1===this.startFragRequested){if(-1===this.startPosition||-1===this.lastCurrentTime){var d=t.startTimeOffset;Object(s.a)(d)?(d<0&&(u.b.log("negative start time offset "+d+", count from end of last fragment"),d=o+a+d),u.b.log("start time offset found in playlist, adjust startPosition to "+d),this.startPosition=d):t.live?(this.startPosition=this.computeLivePosition(o,t),u.b.log("configure startPosition to "+this.startPosition)):this.startPosition=0,this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===pe.WAITING_LEVEL&&(this.state=pe.IDLE),this.tick()},t.prototype.onKeyLoaded=function(){this.state===pe.KEY_LOADING&&(this.state=pe.IDLE,this.tick())},t.prototype.onFragLoaded=function(e){var t=this.fragCurrent,n=this.hls,i=this.levels,r=this.media,a=e.frag;if(this.state===pe.FRAG_LOADING&&t&&"main"===a.type&&a.level===t.level&&a.sn===t.sn){var o=e.stats,s=i[t.level],c=s.details;if(this.bitrateTest=!1,this.stats=o,u.b.log("Loaded "+t.sn+" of ["+c.startSN+" ,"+c.endSN+"],level "+t.level),a.bitrateTest&&n.nextLoadLevel)this.state=pe.IDLE,this.startFragRequested=!1,o.tparsed=o.tbuffered=window.performance.now(),n.trigger(l.a.FRAG_BUFFERED,{stats:o,frag:t,id:"main"}),this.tick();else if("initSegment"===a.sn)this.state=pe.IDLE,o.tparsed=o.tbuffered=window.performance.now(),c.initSegment.data=e.payload,n.trigger(l.a.FRAG_BUFFERED,{stats:o,frag:t,id:"main"}),this.tick();else{u.b.log("Parsing "+t.sn+" of ["+c.startSN+" ,"+c.endSN+"],level "+t.level+", cc "+t.cc),this.state=pe.PARSING,this.pendingBuffering=!0,this.appended=!1,a.bitrateTest&&(a.bitrateTest=!1,this.fragmentTracker.onFragLoaded({frag:a}));var d=!(r&&r.seeking)&&(c.PTSKnown||!c.live),h=c.initSegment?c.initSegment.data:[],f=this._getAudioCodec(s);(this.demuxer=this.demuxer||new te(this.hls,"main")).push(e.payload,h,f,s.videoCodec,t,c.totalduration,d)}}this.fragLoadError=0},t.prototype.onFragParsingInitSegment=function(e){var t=this.fragCurrent,n=e.frag;if(t&&"main"===e.id&&n.sn===t.sn&&n.level===t.level&&this.state===pe.PARSING){var i=e.tracks,r=void 0,a=void 0;if(i.audio&&this.altAudio&&delete i.audio,a=i.audio){var o=this.levels[this.level].audioCodec,s=navigator.userAgent.toLowerCase();o&&this.audioCodecSwap&&(u.b.log("swapping playlist audio codec"),o=-1!==o.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==a.metadata.channelCount&&-1===s.indexOf("firefox")&&(o="mp4a.40.5"),-1!==s.indexOf("android")&&"audio/mpeg"!==a.container&&(o="mp4a.40.2",u.b.log("Android: force audio codec to "+o)),a.levelCodec=o,a.id=e.id}for(r in(a=i.video)&&(a.levelCodec=this.levels[this.level].videoCodec,a.id=e.id),this.hls.trigger(l.a.BUFFER_CODECS,i),i){a=i[r],u.b.log("main track:"+r+",container:"+a.container+",codecs[level/parsed]=["+a.levelCodec+"/"+a.codec+"]");var c=a.initSegment;c&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(l.a.BUFFER_APPENDING,{type:r,data:c,parent:"main",content:"initSegment"}))}this.tick()}},t.prototype.onFragParsingData=function(e){var t=this,n=this.fragCurrent,i=e.frag;if(n&&"main"===e.id&&i.sn===n.sn&&i.level===n.level&&("audio"!==e.type||!this.altAudio)&&this.state===pe.PARSING){var r=this.levels[this.level],a=n;if(Object(s.a)(e.endPTS)||(e.endPTS=e.startPTS+n.duration,e.endDTS=e.startDTS+n.duration),!0===e.hasAudio&&a.addElementaryStream(v.ElementaryStreamTypes.AUDIO),!0===e.hasVideo&&a.addElementaryStream(v.ElementaryStreamTypes.VIDEO),u.b.log("Parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb+",dropped:"+(e.dropped||0)),"video"===e.type)if(a.dropped=e.dropped,a.dropped)if(a.backtracked)u.b.warn("Already backtracked on this fragment, appending with the gap",a.sn);else{var o=r.details;if(!o||a.sn!==o.startSN)return u.b.warn("missing video frame(s), backtracking fragment",a.sn),this.fragmentTracker.removeFragment(a),a.backtracked=!0,this.nextLoadPosition=e.startPTS,this.state=pe.IDLE,this.fragPrevious=a,void this.tick();u.b.warn("missing video frame(s) on first frag, appending with gap",a.sn)}else a.backtracked=!1;var c=re(r.details,a,e.startPTS,e.endPTS,e.startDTS,e.endDTS),d=this.hls;d.trigger(l.a.LEVEL_PTS_UPDATED,{details:r.details,level:this.level,drift:c,type:e.type,start:e.startPTS,end:e.endPTS}),[e.data1,e.data2].forEach(function(n){n&&n.length&&t.state===pe.PARSING&&(t.appended=!0,t.pendingBuffering=!0,d.trigger(l.a.BUFFER_APPENDING,{type:e.type,data:n,parent:"main",content:"data"}))}),this.tick()}},t.prototype.onFragParsed=function(e){var t=this.fragCurrent,n=e.frag;t&&"main"===e.id&&n.sn===t.sn&&n.level===t.level&&this.state===pe.PARSING&&(this.stats.tparsed=window.performance.now(),this.state=pe.PARSED,this._checkAppendedParsed())},t.prototype.onAudioTrackSwitching=function(e){var t=!!e.url,n=e.id;if(!t){if(this.mediaBuffer!==this.media){u.b.log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var i=this.fragCurrent;i.loader&&(u.b.log("switching to main audio track, cancel main fragment load"),i.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=pe.IDLE}var r=this.hls;r.trigger(l.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),r.trigger(l.a.AUDIO_TRACK_SWITCHED,{id:n}),this.altAudio=!1}},t.prototype.onAudioTrackSwitched=function(e){var t=e.id,n=!!this.hls.audioTracks[t].url;if(n){var i=this.videoBuffer;i&&this.mediaBuffer!==i&&(u.b.log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=i)}this.altAudio=n,this.tick()},t.prototype.onBufferCreated=function(e){var t=e.tracks,n=void 0,i=void 0,r=!1;for(var a in t){var o=t[a];"main"===o.id?(i=a,n=o,"video"===a&&(this.videoBuffer=t[a].buffer)):r=!0}r&&n?(u.b.log("alternate track found, use "+i+".buffered to schedule main fragment loading"),this.mediaBuffer=n.buffer):this.mediaBuffer=this.media},t.prototype.onBufferAppended=function(e){if("main"===e.parent){var t=this.state;t!==pe.PARSING&&t!==pe.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}},t.prototype._checkAppendedParsed=function(){if(!(this.state!==pe.PARSED||this.appended&&this.pendingBuffering)){var e=this.fragCurrent;if(e){var t=this.mediaBuffer?this.mediaBuffer:this.media;u.b.log("main buffered : "+oe.toString(t.buffered)),this.fragPrevious=e;var n=this.stats;n.tbuffered=window.performance.now(),this.fragLastKbps=Math.round(8*n.total/(n.tbuffered-n.tfirst)),this.hls.trigger(l.a.FRAG_BUFFERED,{stats:n,frag:e,id:"main"}),this.state=pe.IDLE}this.tick()}},t.prototype.onError=function(e){var t=e.frag||this.fragCurrent;if(!t||"main"===t.type){var n=!!this.media&&W.isBuffered(this.media,this.media.currentTime)&&W.isBuffered(this.media,this.media.currentTime+.5);switch(e.details){case o.a.FRAG_LOAD_ERROR:case o.a.FRAG_LOAD_TIMEOUT:case o.a.KEY_LOAD_ERROR:case o.a.KEY_LOAD_TIMEOUT:if(!e.fatal)if(this.fragLoadError+1<=this.config.fragLoadingMaxRetry){var i=Math.min(Math.pow(2,this.fragLoadError)*this.config.fragLoadingRetryDelay,this.config.fragLoadingMaxRetryTimeout);u.b.warn("mediaController: frag loading failed, retry in "+i+" ms"),this.retryDate=window.performance.now()+i,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.fragLoadError++,this.state=pe.FRAG_LOADING_WAITING_RETRY}else u.b.error("mediaController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.state=pe.ERROR;break;case o.a.LEVEL_LOAD_ERROR:case o.a.LEVEL_LOAD_TIMEOUT:this.state!==pe.ERROR&&(e.fatal?(this.state=pe.ERROR,u.b.warn("streamController: "+e.details+",switch to "+this.state+" state ...")):e.levelRetry||this.state!==pe.WAITING_LEVEL||(this.state=pe.IDLE));break;case o.a.BUFFER_FULL_ERROR:"main"!==e.parent||this.state!==pe.PARSING&&this.state!==pe.PARSED||(n?(this._reduceMaxBufferLength(this.config.maxBufferLength),this.state=pe.IDLE):(u.b.warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)))}}},t.prototype._reduceMaxBufferLength=function(e){var t=this.config;return t.maxMaxBufferLength>=e&&(t.maxMaxBufferLength/=2,u.b.warn("main:reduce max buffer length to "+t.maxMaxBufferLength+"s"),!0)},t.prototype._checkBuffer=function(){var e=this.media;if(e&&0!==e.readyState){var t=(this.mediaBuffer?this.mediaBuffer:e).buffered;!this.loadedmetadata&&t.length?(this.loadedmetadata=!0,this._seekToStartPos()):this.immediateSwitch?this.immediateLevelSwitchEnd():this.gapController.poll(this.lastCurrentTime,t)}},t.prototype.onFragLoadEmergencyAborted=function(){this.state=pe.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tick()},t.prototype.onBufferFlushed=function(){var e=this.mediaBuffer?this.mediaBuffer:this.media;e&&this.fragmentTracker.detectEvictedFragments(v.ElementaryStreamTypes.VIDEO,e.buffered),this.state=pe.IDLE,this.fragPrevious=null},t.prototype.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},t.prototype.computeLivePosition=function(e,t){var n=void 0!==this.config.liveSyncDuration?this.config.liveSyncDuration:this.config.liveSyncDurationCount*t.targetduration;return e+Math.max(0,t.totalduration-n)},t.prototype._seekToStartPos=function(){var e=this.media,t=e.currentTime,n=e.seeking?t:this.startPosition;t!==n&&(u.b.log("target start position not buffered, seek to buffered.start(0) "+n+" from current time "+t+" "),e.currentTime=n)},t.prototype._getAudioCodec=function(e){var t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&(u.b.log("swapping playlist audio codec"),t&&(t=-1!==t.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5")),t},fe(t,[{key:"state",set:function(e){if(this.state!==e){var t=this.state;this._state=e,u.b.log("main stream:"+t+"->"+e),this.hls.trigger(l.a.STREAM_STATE_TRANSITION,{previousState:t,nextState:e})}},get:function(){return this._state}},{key:"currentLevel",get:function(){var e=this.media;if(e){var t=this.getBufferedFrag(e.currentTime);if(t)return t.level}return-1}},{key:"nextBufferedFrag",get:function(){var e=this.media;return e?this.followingBufferedFrag(this.getBufferedFrag(e.currentTime)):null}},{key:"nextLevel",get:function(){var e=this.nextBufferedFrag;return e?e.level:-1}},{key:"liveSyncPosition",get:function(){return this._liveSyncPosition},set:function(e){this._liveSyncPosition=e}}]),t}(ue),ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ve=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var ye=window.performance,be=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MANIFEST_LOADED,l.a.LEVEL_LOADED,l.a.AUDIO_TRACK_SWITCHED,l.a.FRAG_LOADED,l.a.ERROR));return i.canload=!1,i.currentLevelIndex=null,i.manualLevelIndex=-1,i.timer=null,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.onHandlerDestroying=function(){this.clearTimer(),this.manualLevelIndex=-1},t.prototype.clearTimer=function(){null!==this.timer&&(clearTimeout(this.timer),this.timer=null)},t.prototype.startLoad=function(){var e=this._levels;this.canload=!0,this.levelRetryCount=0,e&&e.forEach(function(e){e.loadError=0;var t=e.details;t&&t.live&&(e.details=void 0)}),null!==this.timer&&this.loadLevel()},t.prototype.stopLoad=function(){this.canload=!1},t.prototype.onManifestLoaded=function(e){var t=[],n=void 0,i={},r=null,a=!1,s=!1,c=/chrome|firefox/.test(navigator.userAgent.toLowerCase()),d=[];if(e.levels.forEach(function(e){e.loadError=0,e.fragmentError=!1,a=a||!!e.videoCodec,s=s||!!e.audioCodec||!(!e.attrs||!e.attrs.AUDIO),c&&e.audioCodec&&-1!==e.audioCodec.indexOf("mp4a.40.34")&&(e.audioCodec=void 0),(r=i[e.bitrate])?r.url.push(e.url):(e.url=[e.url],e.urlId=0,i[e.bitrate]=e,t.push(e)),e.attrs&&e.attrs.AUDIO&&ne(r||e,"audio",e.attrs.AUDIO),e.attrs&&e.attrs.SUBTITLES&&ne(r||e,"text",e.attrs.SUBTITLES)}),a&&s&&(t=t.filter(function(e){return!!e.videoCodec})),t=t.filter(function(e){var t=e.audioCodec,n=e.videoCodec;return(!t||C(t))&&(!n||C(n))}),e.audioTracks&&(d=e.audioTracks.filter(function(e){return!e.audioCodec||C(e.audioCodec,"audio")})).forEach(function(e,t){e.id=t}),t.length>0){n=t[0].bitrate,t.sort(function(e,t){return e.bitrate-t.bitrate}),this._levels=t;for(var h=0;h<t.length;h++)if(t[h].bitrate===n){this._firstLevel=h,u.b.log("manifest loaded,"+t.length+" level(s) found, first bitrate:"+n);break}this.hls.trigger(l.a.MANIFEST_PARSED,{levels:t,audioTracks:d,firstLevel:this._firstLevel,stats:e.stats,audio:s,video:a,altAudio:d.length>0&&a})}else this.hls.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:this.hls.url,reason:"no level with compatible codecs found in manifest"})},t.prototype.setLevelInternal=function(e){var t=this._levels,n=this.hls;if(e>=0&&e<t.length){if(this.clearTimer(),this.currentLevelIndex!==e){u.b.log("switching to level "+e),this.currentLevelIndex=e;var i=t[e];i.level=e,n.trigger(l.a.LEVEL_SWITCHING,i)}var r=t[e],a=r.details;if(!a||a.live){var s=r.urlId;n.trigger(l.a.LEVEL_LOADING,{url:r.url[s],level:e,id:s})}}else n.trigger(l.a.ERROR,{type:o.b.OTHER_ERROR,details:o.a.LEVEL_SWITCH_ERROR,level:e,fatal:!1,reason:"invalid level idx"})},t.prototype.onError=function(e){if(e.fatal)e.type===o.b.NETWORK_ERROR&&this.clearTimer();else{var t=!1,n=!1,i=void 0;switch(e.details){case o.a.FRAG_LOAD_ERROR:case o.a.FRAG_LOAD_TIMEOUT:case o.a.KEY_LOAD_ERROR:case o.a.KEY_LOAD_TIMEOUT:i=e.frag.level,n=!0;break;case o.a.LEVEL_LOAD_ERROR:case o.a.LEVEL_LOAD_TIMEOUT:i=e.context.level,t=!0;break;case o.a.REMUX_ALLOC_ERROR:i=e.level,t=!0}void 0!==i&&this.recoverLevel(e,i,t,n)}},t.prototype.recoverLevel=function(e,t,n,i){var r=this,a=this.hls.config,o=e.details,s=this._levels[t],l=void 0,c=void 0,d=void 0;if(s.loadError++,s.fragmentError=i,n){if(!(this.levelRetryCount+1<=a.levelLoadingMaxRetry))return u.b.error("level controller, cannot recover from "+o+" error"),this.currentLevelIndex=null,this.clearTimer(),void(e.fatal=!0);c=Math.min(Math.pow(2,this.levelRetryCount)*a.levelLoadingRetryDelay,a.levelLoadingMaxRetryTimeout),this.timer=setTimeout(function(){return r.loadLevel()},c),e.levelRetry=!0,this.levelRetryCount++,u.b.warn("level controller, "+o+", retry in "+c+" ms, current retry count is "+this.levelRetryCount)}(n||i)&&((l=s.url.length)>1&&s.loadError<l?(s.urlId=(s.urlId+1)%l,s.details=void 0,u.b.warn("level controller, "+o+" for level "+t+": switching to redundant URL-id "+s.urlId)):-1===this.manualLevelIndex?(d=0===t?this._levels.length-1:t-1,u.b.warn("level controller, "+o+": switch to "+d),this.hls.nextAutoLevel=this.currentLevelIndex=d):i&&(u.b.warn("level controller, "+o+": reload a fragment"),this.currentLevelIndex=null))},t.prototype.onFragLoaded=function(e){var t=e.frag;if(void 0!==t&&"main"===t.type){var n=this._levels[t.level];void 0!==n&&(n.fragmentError=!1,n.loadError=0,this.levelRetryCount=0)}},t.prototype.onLevelLoaded=function(e){var t=this,n=e.level;if(n===this.currentLevelIndex){var i=this._levels[n];i.fragmentError||(i.loadError=0,this.levelRetryCount=0);var r=e.details;if(r.live){var a=1e3*(r.averagetargetduration?r.averagetargetduration:r.targetduration),o=a,s=i.details;s&&r.endSN===s.endSN&&(o/=2,u.b.log("same live playlist, reload twice faster")),o-=ye.now()-e.stats.trequest,o=Math.max(a/2,Math.round(o)),u.b.log("live playlist, reload in "+Math.round(o)+" ms"),this.timer=setTimeout(function(){return t.loadLevel()},o)}else this.clearTimer()}},t.prototype.onAudioTrackSwitched=function(e){var t=this.hls.audioTracks[e.id].groupId,n=this.hls.levels[this.currentLevelIndex];if(n&&n.audioGroupIds){var i=n.audioGroupIds.findIndex(function(e){return e===t});i!==n.urlId&&(n.urlId=i,this.startLoad())}},t.prototype.loadLevel=function(){if(u.b.debug("call to loadLevel"),null!==this.currentLevelIndex&&this.canload){var e=this._levels[this.currentLevelIndex];if("object"===(void 0===e?"undefined":ge(e))&&e.url.length>0){var t=this.currentLevelIndex,n=e.urlId,i=e.url[n];u.b.log("Attempt loading level index "+t+" with URL-id "+n),this.hls.trigger(l.a.LEVEL_LOADING,{url:i,level:t,id:n})}}},ve(t,[{key:"levels",get:function(){return this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(e){var t=this._levels;t&&(e=Math.min(e,t.length-1),this.currentLevelIndex===e&&t[e].details||this.setLevelInternal(e))}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var e=this.hls.config.startLevel;return void 0!==e?e:this._firstLevel}return this._startLevel},set:function(e){this._startLevel=e}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}]),t}(h),_e=n(6);function xe(e,t){var n=null;try{n=new window.Event("addtrack")}catch(e){(n=document.createEvent("Event")).initEvent("addtrack",!1,!1)}n.track=e,t.dispatchEvent(n)}function we(e){if(e&&e.cues)for(;e.cues.length>0;)e.removeCue(e.cues[0])}var Se=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHED,l.a.MEDIA_DETACHING,l.a.FRAG_PARSING_METADATA));return i.id3Track=void 0,i.media=void 0,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.destroy=function(){h.prototype.destroy.call(this)},t.prototype.onMediaAttached=function(e){this.media=e.media,this.media},t.prototype.onMediaDetaching=function(){we(this.id3Track),this.id3Track=void 0,this.media=void 0},t.prototype.getID3Track=function(e){for(var t=0;t<e.length;t++){var n=e[t];if("metadata"===n.kind&&"id3"===n.label)return xe(n,this.media),n}return this.media.addTextTrack("metadata","id3")},t.prototype.onFragParsingMetadata=function(e){var t=e.frag,n=e.samples;this.id3Track||(this.id3Track=this.getID3Track(this.media.textTracks),this.id3Track.mode="hidden");for(var i=window.WebKitDataCue||window.VTTCue||window.TextTrackCue,r=0;r<n.length;r++){var a=_e.a.getID3Frames(n[r].data);if(a){var o=n[r].pts,s=r<n.length-1?n[r+1].pts:t.endPTS;o===s&&(s+=1e-4);for(var l=0;l<a.length;l++){var u=a[l];if(!_e.a.isTimeStampFrame(u)){var c=new i(o,s,"");c.value=u,this.id3Track.addCue(c)}}}}},t}(h);var Ce=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.alpha_=t?Math.exp(Math.log(.5)/t):0,this.estimate_=0,this.totalWeight_=0}return e.prototype.sample=function(e,t){var n=Math.pow(this.alpha_,e);this.estimate_=t*(1-n)+n*this.estimate_,this.totalWeight_+=e},e.prototype.getTotalWeight=function(){return this.totalWeight_},e.prototype.getEstimate=function(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);return this.estimate_/e}return this.estimate_},e}();var Me=function(){function e(t,n,i,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.hls=t,this.defaultEstimate_=r,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new Ce(n),this.fast_=new Ce(i)}return e.prototype.sample=function(e,t){var n=8e3*t/(e=Math.max(e,this.minDelayMs_)),i=e/1e3;this.fast_.sample(i,n),this.slow_.sample(i,n)},e.prototype.canEstimate=function(){var e=this.fast_;return e&&e.getTotalWeight()>=this.minWeight_},e.prototype.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},e.prototype.destroy=function(){},e}(),ke=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var Te=window.performance,Ae=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.FRAG_LOADING,l.a.FRAG_LOADED,l.a.FRAG_BUFFERED,l.a.ERROR));return i.lastLoadedFragLevel=0,i._nextAutoLevel=-1,i.hls=n,i.timer=null,i._bwEstimator=null,i.onCheck=i._abandonRulesCheck.bind(i),i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.destroy=function(){this.clearTimer(),h.prototype.destroy.call(this)},t.prototype.onFragLoading=function(e){var t=e.frag;if("main"===t.type&&(this.timer||(this.fragCurrent=t,this.timer=setInterval(this.onCheck,100)),!this._bwEstimator)){var n=this.hls,i=n.config,r=t.level,a=void 0,o=void 0;n.levels[r].details.live?(a=i.abrEwmaFastLive,o=i.abrEwmaSlowLive):(a=i.abrEwmaFastVoD,o=i.abrEwmaSlowVoD),this._bwEstimator=new Me(n,o,a,i.abrEwmaDefaultEstimate)}},t.prototype._abandonRulesCheck=function(){var e=this.hls,t=e.media,n=this.fragCurrent;if(n){var i=n.loader,r=e.minAutoLevel;if(!i||i.stats&&i.stats.aborted)return u.b.warn("frag loader destroy or aborted, disarm abandonRules"),this.clearTimer(),void(this._nextAutoLevel=-1);var a=i.stats;if(t&&a&&(!t.paused&&0!==t.playbackRate||!t.readyState)&&n.autoLevel&&n.level){var o=Te.now()-a.trequest,s=Math.abs(t.playbackRate);if(o>500*n.duration/s){var c=e.levels,d=Math.max(1,a.bw?a.bw/8:1e3*a.loaded/o),h=c[n.level],f=h.realBitrate?Math.max(h.realBitrate,h.bitrate):h.bitrate,p=a.total?a.total:Math.max(a.loaded,Math.round(n.duration*f/8)),m=t.currentTime,g=(p-a.loaded)/d,v=(W.bufferInfo(t,m,e.config.maxBufferHole).end-m)/s;if(v<2*n.duration/s&&g>v){var y=void 0,b=void 0;for(b=n.level-1;b>r;b--){var _=c[b].realBitrate?Math.max(c[b].realBitrate,c[b].bitrate):c[b].bitrate;if((y=n.duration*_/(6.4*d))<v)break}y<g&&(u.b.warn("loading too slow, abort fragment loading and switch to level "+b+":fragLoadedDelay["+b+"]<fragLoadedDelay["+(n.level-1)+"];bufferStarvationDelay:"+y.toFixed(1)+"<"+g.toFixed(1)+":"+v.toFixed(1)),e.nextLoadLevel=b,this._bwEstimator.sample(o,a.loaded),i.abort(),this.clearTimer(),e.trigger(l.a.FRAG_LOAD_EMERGENCY_ABORTED,{frag:n,stats:a}))}}}}},t.prototype.onFragLoaded=function(e){var t=e.frag;if("main"===t.type&&Object(s.a)(t.sn)){if(this.clearTimer(),this.lastLoadedFragLevel=t.level,this._nextAutoLevel=-1,this.hls.config.abrMaxWithRealBitrate){var n=this.hls.levels[t.level],i=(n.loaded?n.loaded.bytes:0)+e.stats.loaded,r=(n.loaded?n.loaded.duration:0)+e.frag.duration;n.loaded={bytes:i,duration:r},n.realBitrate=Math.round(8*i/r)}if(e.frag.bitrateTest){var a=e.stats;a.tparsed=a.tbuffered=a.tload,this.onFragBuffered(e)}}},t.prototype.onFragBuffered=function(e){var t=e.stats,n=e.frag;if(!0!==t.aborted&&"main"===n.type&&Object(s.a)(n.sn)&&(!n.bitrateTest||t.tload===t.tbuffered)){var i=t.tparsed-t.trequest;u.b.log("latency/loading/parsing/append/kbps:"+Math.round(t.tfirst-t.trequest)+"/"+Math.round(t.tload-t.tfirst)+"/"+Math.round(t.tparsed-t.tload)+"/"+Math.round(t.tbuffered-t.tparsed)+"/"+Math.round(8*t.loaded/(t.tbuffered-t.trequest))),this._bwEstimator.sample(i,t.loaded),t.bwEstimate=this._bwEstimator.getEstimate(),n.bitrateTest?this.bitrateTestDelay=i/1e3:this.bitrateTestDelay=0}},t.prototype.onError=function(e){switch(e.details){case o.a.FRAG_LOAD_ERROR:case o.a.FRAG_LOAD_TIMEOUT:this.clearTimer()}},t.prototype.clearTimer=function(){clearInterval(this.timer),this.timer=null},t.prototype._findBestLevel=function(e,t,n,i,r,a,o,s,l){for(var c=r;c>=i;c--){var d=l[c];if(d){var h=d.details,f=h?h.totalduration/h.fragments.length:t,p=!!h&&h.live,m=void 0;m=c<=e?o*n:s*n;var g=l[c].realBitrate?Math.max(l[c].realBitrate,l[c].bitrate):l[c].bitrate,v=g*f/m;if(u.b.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+c+"/"+Math.round(m)+"/"+g+"/"+f+"/"+a+"/"+v),m>g&&(!v||p&&!this.bitrateTestDelay||v<a))return c}}return-1},ke(t,[{key:"nextAutoLevel",get:function(){var e=this._nextAutoLevel,t=this._bwEstimator;if(!(-1===e||t&&t.canEstimate()))return e;var n=this._nextABRAutoLevel;return-1!==e&&(n=Math.min(e,n)),n},set:function(e){this._nextAutoLevel=e}},{key:"_nextABRAutoLevel",get:function(){var e=this.hls,t=e.maxAutoLevel,n=e.levels,i=e.config,r=e.minAutoLevel,a=e.media,o=this.lastLoadedFragLevel,s=this.fragCurrent?this.fragCurrent.duration:0,l=a?a.currentTime:0,c=a&&0!==a.playbackRate?Math.abs(a.playbackRate):1,d=this._bwEstimator?this._bwEstimator.getEstimate():i.abrEwmaDefaultEstimate,h=(W.bufferInfo(a,l,i.maxBufferHole).end-l)/c,f=this._findBestLevel(o,s,d,r,t,h,i.abrBandWidthFactor,i.abrBandWidthUpFactor,n);if(f>=0)return f;u.b.trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");var p=s?Math.min(s,i.maxStarvationDelay):i.maxStarvationDelay,m=i.abrBandWidthFactor,g=i.abrBandWidthUpFactor;if(0===h){var v=this.bitrateTestDelay;if(v)p=(s?Math.min(s,i.maxLoadingDelay):i.maxLoadingDelay)-v,u.b.trace("bitrate test took "+Math.round(1e3*v)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*p)+" ms"),m=g=1}return f=this._findBestLevel(o,s,d,r,t,h+p,m,g,n),Math.max(f,0)}}]),t}(h);var Ie=X(),Ee=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHING,l.a.MEDIA_DETACHING,l.a.MANIFEST_PARSED,l.a.BUFFER_RESET,l.a.BUFFER_APPENDING,l.a.BUFFER_CODECS,l.a.BUFFER_EOS,l.a.BUFFER_FLUSHING,l.a.LEVEL_PTS_UPDATED,l.a.LEVEL_UPDATED));return i._msDuration=null,i._levelDuration=null,i._live=null,i._objectUrl=null,i.onsbue=i.onSBUpdateEnd.bind(i),i.onsbe=i.onSBUpdateError.bind(i),i.pendingTracks={},i.tracks={},i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.destroy=function(){h.prototype.destroy.call(this)},t.prototype.onLevelPtsUpdated=function(e){var t=e.type,n=this.tracks.audio;if("audio"===t&&n&&"audio/mpeg"===n.container){var i=this.sourceBuffer.audio;if(Math.abs(i.timestampOffset-e.start)>.1){var r=i.updating;try{i.abort()}catch(e){r=!0,u.b.warn("can not abort audio buffer: "+e)}r?this.audioTimestampOffset=e.start:(u.b.warn("change mpeg audio timestamp offset from "+i.timestampOffset+" to "+e.start),i.timestampOffset=e.start)}}},t.prototype.onManifestParsed=function(e){var t=e.audio,n=e.video||e.levels.length&&e.altAudio,i=0;e.altAudio&&(t||n)&&(i=(t?1:0)+(n?1:0),u.b.log(i+" sourceBuffer(s) expected")),this.sourceBufferNb=i},t.prototype.onMediaAttaching=function(e){var t=this.media=e.media;if(t){var n=this.mediaSource=new Ie;this.onmso=this.onMediaSourceOpen.bind(this),this.onmse=this.onMediaSourceEnded.bind(this),this.onmsc=this.onMediaSourceClose.bind(this),n.addEventListener("sourceopen",this.onmso),n.addEventListener("sourceended",this.onmse),n.addEventListener("sourceclose",this.onmsc),t.src=window.URL.createObjectURL(n),this._objectUrl=t.src}},t.prototype.onMediaDetaching=function(){u.b.log("media source detaching");var e=this.mediaSource;if(e){if("open"===e.readyState)try{e.endOfStream()}catch(e){u.b.warn("onMediaDetaching:"+e.message+" while calling endOfStream")}e.removeEventListener("sourceopen",this.onmso),e.removeEventListener("sourceended",this.onmse),e.removeEventListener("sourceclose",this.onmsc),this.media&&(window.URL.revokeObjectURL(this._objectUrl),this.media.src===this._objectUrl?(this.media.removeAttribute("src"),this.media.load()):u.b.warn("media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.pendingTracks={},this.tracks={},this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}this.onmso=this.onmse=this.onmsc=null,this.hls.trigger(l.a.MEDIA_DETACHED)},t.prototype.onMediaSourceOpen=function(){u.b.log("media source opened"),this.hls.trigger(l.a.MEDIA_ATTACHED,{media:this.media});var e=this.mediaSource;e&&e.removeEventListener("sourceopen",this.onmso),this.checkPendingTracks()},t.prototype.checkPendingTracks=function(){var e=this.pendingTracks,t=Object.keys(e).length;t&&(this.sourceBufferNb<=t||0===this.sourceBufferNb)&&(this.createSourceBuffers(e),this.pendingTracks={},this.doAppending())},t.prototype.onMediaSourceClose=function(){u.b.log("media source closed")},t.prototype.onMediaSourceEnded=function(){u.b.log("media source ended")},t.prototype.onSBUpdateEnd=function(){if(this.audioTimestampOffset){var e=this.sourceBuffer.audio;u.b.warn("change mpeg audio timestamp offset from "+e.timestampOffset+" to "+this.audioTimestampOffset),e.timestampOffset=this.audioTimestampOffset,delete this.audioTimestampOffset}this._needsFlush&&this.doFlush(),this._needsEos&&this.checkEos(),this.appending=!1;var t=this.parent,n=this.segments.reduce(function(e,n){return n.parent===t?e+1:e},0),i={},r=this.sourceBuffer;for(var a in r)i[a]=r[a].buffered;this.hls.trigger(l.a.BUFFER_APPENDED,{parent:t,pending:n,timeRanges:i}),this._needsFlush||this.doAppending(),this.updateMediaElementDuration()},t.prototype.onSBUpdateError=function(e){u.b.error("sourceBuffer error:",e),this.hls.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.BUFFER_APPENDING_ERROR,fatal:!1})},t.prototype.onBufferReset=function(){var e=this.sourceBuffer;for(var t in e){var n=e[t];try{this.mediaSource.removeSourceBuffer(n),n.removeEventListener("updateend",this.onsbue),n.removeEventListener("error",this.onsbe)}catch(e){}}this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0},t.prototype.onBufferCodecs=function(e){if(0===Object.keys(this.sourceBuffer).length){for(var t in e)this.pendingTracks[t]=e[t];var n=this.mediaSource;n&&"open"===n.readyState&&this.checkPendingTracks()}},t.prototype.createSourceBuffers=function(e){var t=this.sourceBuffer,n=this.mediaSource;for(var i in e)if(!t[i]){var r=e[i],a=r.levelCodec||r.codec,s=r.container+";codecs="+a;u.b.log("creating sourceBuffer("+s+")");try{var c=t[i]=n.addSourceBuffer(s);c.addEventListener("updateend",this.onsbue),c.addEventListener("error",this.onsbe),this.tracks[i]={codec:a,container:r.container},r.buffer=c}catch(e){u.b.error("error while trying to add sourceBuffer:"+e.message),this.hls.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.BUFFER_ADD_CODEC_ERROR,fatal:!1,err:e,mimeType:s})}}this.hls.trigger(l.a.BUFFER_CREATED,{tracks:e})},t.prototype.onBufferAppending=function(e){this._needsFlush||(this.segments?this.segments.push(e):this.segments=[e],this.doAppending())},t.prototype.onBufferAppendFail=function(e){u.b.error("sourceBuffer error:",e.event),this.hls.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.BUFFER_APPENDING_ERROR,fatal:!1})},t.prototype.onBufferEos=function(e){var t=this.sourceBuffer,n=e.type;for(var i in t)n&&i!==n||t[i].ended||(t[i].ended=!0,u.b.log(i+" sourceBuffer now EOS"));this.checkEos()},t.prototype.checkEos=function(){var e=this.sourceBuffer,t=this.mediaSource;if(t&&"open"===t.readyState){for(var n in e){var i=e[n];if(!i.ended)return;if(i.updating)return void(this._needsEos=!0)}u.b.log("all media data available, signal endOfStream() to MediaSource and stop loading fragment");try{t.endOfStream()}catch(e){u.b.warn("exception while calling mediaSource.endOfStream()")}this._needsEos=!1}else this._needsEos=!1},t.prototype.onBufferFlushing=function(e){this.flushRange.push({start:e.startOffset,end:e.endOffset,type:e.type}),this.flushBufferCounter=0,this.doFlush()},t.prototype.onLevelUpdated=function(e){var t=e.details;t.fragments.length>0&&(this._levelDuration=t.totalduration+t.fragments[0].start,this._live=t.live,this.updateMediaElementDuration())},t.prototype.updateMediaElementDuration=function(){var e,t=this.hls.config;if(null!==this._levelDuration&&this.media&&this.mediaSource&&this.sourceBuffer&&0!==this.media.readyState&&"open"===this.mediaSource.readyState){for(var n in this.sourceBuffer)if(!0===this.sourceBuffer[n].updating)return;e=this.media.duration,null===this._msDuration&&(this._msDuration=this.mediaSource.duration),!0===this._live&&!0===t.liveDurationInfinity?(u.b.log("Media Source duration is set to Infinity"),this._msDuration=this.mediaSource.duration=1/0):(this._levelDuration>this._msDuration&&this._levelDuration>e||!Object(s.a)(e))&&(u.b.log("Updating Media Source duration to "+this._levelDuration.toFixed(3)),this._msDuration=this.mediaSource.duration=this._levelDuration)}},t.prototype.doFlush=function(){for(;this.flushRange.length;){var e=this.flushRange[0];if(!this.flushBuffer(e.start,e.end,e.type))return void(this._needsFlush=!0);this.flushRange.shift(),this.flushBufferCounter=0}if(0===this.flushRange.length){this._needsFlush=!1;var t=0,n=this.sourceBuffer;try{for(var i in n)t+=n[i].buffered.length}catch(e){u.b.error("error while accessing sourceBuffer.buffered")}this.appended=t,this.hls.trigger(l.a.BUFFER_FLUSHED)}},t.prototype.doAppending=function(){var e=this.hls,t=this.sourceBuffer,n=this.segments;if(Object.keys(t).length){if(this.media.error)return this.segments=[],void u.b.error("trying to append although a media error occured, flush segment and abort");if(this.appending)return;if(n&&n.length){var i=n.shift();try{var r=t[i.type];r?r.updating?n.unshift(i):(r.ended=!1,this.parent=i.parent,r.appendBuffer(i.data),this.appendError=0,this.appended++,this.appending=!0):this.onSBUpdateEnd()}catch(t){u.b.error("error while trying to append buffer:"+t.message),n.unshift(i);var a={type:o.b.MEDIA_ERROR,parent:i.parent};22!==t.code?(this.appendError?this.appendError++:this.appendError=1,a.details=o.a.BUFFER_APPEND_ERROR,this.appendError>e.config.appendErrorMaxRetry?(u.b.log("fail "+e.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),n=[],a.fatal=!0,e.trigger(l.a.ERROR,a)):(a.fatal=!1,e.trigger(l.a.ERROR,a))):(this.segments=[],a.details=o.a.BUFFER_FULL_ERROR,a.fatal=!1,e.trigger(l.a.ERROR,a))}}}},t.prototype.flushBuffer=function(e,t,n){var i=void 0,r=void 0,a=void 0,o=void 0,s=void 0,l=void 0,c=this.sourceBuffer;if(Object.keys(c).length){if(u.b.log("flushBuffer,pos/start/end: "+this.media.currentTime.toFixed(3)+"/"+e+"/"+t),this.flushBufferCounter<this.appended){for(var d in c)if(!n||d===n){if((i=c[d]).ended=!1,i.updating)return u.b.warn("cannot flush, sb updating in progress"),!1;try{for(r=0;r<i.buffered.length;r++)if(a=i.buffered.start(r),o=i.buffered.end(r),-1!==navigator.userAgent.toLowerCase().indexOf("firefox")&&t===Number.POSITIVE_INFINITY?(s=e,l=t):(s=Math.max(a,e),l=Math.min(o,t)),Math.min(l,o)-s>.5)return this.flushBufferCounter++,u.b.log("flush "+d+" ["+s+","+l+"], of ["+a+","+o+"], pos:"+this.media.currentTime),i.remove(s,l),!1}catch(e){u.b.warn("exception while accessing sourcebuffer, it might have been removed from MediaSource")}}}else u.b.warn("abort flushing too many retries");u.b.log("buffer flushed")}return!0},t}(h),De=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var Oe=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.FPS_DROP_LEVEL_CAPPING,l.a.MEDIA_ATTACHING,l.a.MANIFEST_PARSED,l.a.BUFFER_CODECS,l.a.MEDIA_DETACHING));return i.autoLevelCapping=Number.POSITIVE_INFINITY,i.firstLevel=null,i.levels=[],i.media=null,i.restrictedLevels=[],i.timer=null,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.destroy=function(){this.hls.config.capLevelToPlayerSize&&(this.media=null,this._stopCapping())},t.prototype.onFpsDropLevelCapping=function(e){t.isLevelAllowed(e.droppedLevel,this.restrictedLevels)&&this.restrictedLevels.push(e.droppedLevel)},t.prototype.onMediaAttaching=function(e){this.media=e.media instanceof window.HTMLVideoElement?e.media:null},t.prototype.onManifestParsed=function(e){var t=this.hls;this.restrictedLevels=[],this.levels=e.levels,this.firstLevel=e.firstLevel,t.config.capLevelToPlayerSize&&(e.video||e.levels.length&&e.altAudio)&&this._startCapping()},t.prototype.onBufferCodecs=function(e){this.hls.config.capLevelToPlayerSize&&e.video&&this._startCapping()},t.prototype.onLevelsUpdated=function(e){this.levels=e.levels},t.prototype.onMediaDetaching=function(){this._stopCapping()},t.prototype.detectPlayerSize=function(){if(this.media){var e=this.levels?this.levels.length:0;if(e){var t=this.hls;t.autoLevelCapping=this.getMaxLevel(e-1),t.autoLevelCapping>this.autoLevelCapping&&t.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping}}},t.prototype.getMaxLevel=function(e){var n=this;if(!this.levels)return-1;var i=this.levels.filter(function(i,r){return t.isLevelAllowed(r,n.restrictedLevels)&&r<=e});return t.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)},t.prototype._startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),clearInterval(this.timer),this.timer=setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},t.prototype._stopCapping=function(){this.restrictedLevels=[],this.firstLevel=null,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(this.timer=clearInterval(this.timer),this.timer=null)},t.isLevelAllowed=function(e){return-1===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).indexOf(e)},t.getMaxLevelByMediaSize=function(e,t,n){if(!e||e&&!e.length)return-1;for(var i,r,a=e.length-1,o=0;o<e.length;o+=1){var s=e[o];if((s.width>=t||s.height>=n)&&(i=s,!(r=e[o+1])||i.width!==r.width||i.height!==r.height)){a=o;break}}return a},De(t,[{key:"mediaWidth",get:function(){var e=void 0,n=this.media;return n&&(e=n.width||n.clientWidth||n.offsetWidth,e*=t.contentScaleFactor),e}},{key:"mediaHeight",get:function(){var e=void 0,n=this.media;return n&&(e=n.height||n.clientHeight||n.offsetHeight,e*=t.contentScaleFactor),e}}],[{key:"contentScaleFactor",get:function(){var e=1;try{e=window.devicePixelRatio}catch(e){}return e}}]),t}(h);var Pe=window.performance,Le=function(e){function t(n){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHING))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.destroy=function(){this.timer&&clearInterval(this.timer),this.isVideoPlaybackQualityAvailable=!1},t.prototype.onMediaAttaching=function(e){var t=this.hls.config;t.capLevelOnFPSDrop&&("function"==typeof(this.video=e.media instanceof window.HTMLVideoElement?e.media:null).getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),clearInterval(this.timer),this.timer=setInterval(this.checkFPSInterval.bind(this),t.fpsDroppedMonitoringPeriod))},t.prototype.checkFPS=function(e,t,n){var i=Pe.now();if(t){if(this.lastTime){var r=i-this.lastTime,a=n-this.lastDroppedFrames,o=t-this.lastDecodedFrames,s=1e3*a/r,c=this.hls;if(c.trigger(l.a.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:n}),s>0&&a>c.config.fpsDroppedMonitoringThreshold*o){var d=c.currentLevel;u.b.warn("drop FPS ratio greater than max allowed value for currentLevel: "+d),d>0&&(-1===c.autoLevelCapping||c.autoLevelCapping>=d)&&(d-=1,c.trigger(l.a.FPS_DROP_LEVEL_CAPPING,{level:d,droppedLevel:c.currentLevel}),c.autoLevelCapping=d,c.streamController.nextLevelSwitch())}}this.lastTime=i,this.lastDroppedFrames=n,this.lastDecodedFrames=t}},t.prototype.checkFPSInterval=function(){var e=this.video;if(e)if(this.isVideoPlaybackQualityAvailable){var t=e.getVideoPlaybackQuality();this.checkFPS(e,t.totalVideoFrames,t.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)},t}(h);var Re=window,Ne=Re.performance,Be=Re.XMLHttpRequest,Fe=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),t&&t.xhrSetup&&(this.xhrSetup=t.xhrSetup)}return e.prototype.destroy=function(){this.abort(),this.loader=null},e.prototype.abort=function(){var e=this.loader;e&&4!==e.readyState&&(this.stats.aborted=!0,e.abort()),window.clearTimeout(this.requestTimeout),this.requestTimeout=null,window.clearTimeout(this.retryTimeout),this.retryTimeout=null},e.prototype.load=function(e,t,n){this.context=e,this.config=t,this.callbacks=n,this.stats={trequest:Ne.now(),retry:0},this.retryDelay=t.retryDelay,this.loadInternal()},e.prototype.loadInternal=function(){var e=void 0,t=this.context;e=this.loader=new Be;var n=this.stats;n.tfirst=0,n.loaded=0;var i=this.xhrSetup;try{if(i)try{i(e,t.url)}catch(n){e.open("GET",t.url,!0),i(e,t.url)}e.readyState||e.open("GET",t.url,!0)}catch(n){return void this.callbacks.onError({code:e.status,text:n.message},t,e)}t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),this.config.timeout),e.send()},e.prototype.readystatechange=function(e){var t=e.currentTarget,n=t.readyState,i=this.stats,r=this.context,a=this.config;if(!i.aborted&&n>=2)if(window.clearTimeout(this.requestTimeout),0===i.tfirst&&(i.tfirst=Math.max(Ne.now(),i.trequest)),4===n){var o=t.status;if(o>=200&&o<300){i.tload=Math.max(i.tfirst,Ne.now());var s=void 0,l=void 0;l="arraybuffer"===r.responseType?(s=t.response).byteLength:(s=t.responseText).length,i.loaded=i.total=l;var c={url:t.responseURL,data:s};this.callbacks.onSuccess(c,i,r,t)}else i.retry>=a.maxRetry||o>=400&&o<499?(u.b.error(o+" while loading "+r.url),this.callbacks.onError({code:o,text:t.statusText},r,t)):(u.b.warn(o+" while loading "+r.url+", retrying in "+this.retryDelay+"..."),this.destroy(),this.retryTimeout=window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,a.maxRetryDelay),i.retry++)}else this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),a.timeout)},e.prototype.loadtimeout=function(){u.b.warn("timeout while loading "+this.context.url),this.callbacks.onTimeout(this.stats,this.context,null)},e.prototype.loadprogress=function(e){var t=e.currentTarget,n=this.stats;n.loaded=e.loaded,e.lengthComputable&&(n.total=e.total);var i=this.callbacks.onProgress;i&&i(n,this.context,null,t)},e}(),ze=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var Ve=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MANIFEST_LOADING,l.a.MANIFEST_PARSED,l.a.AUDIO_TRACK_LOADED,l.a.AUDIO_TRACK_SWITCHED,l.a.LEVEL_LOADED,l.a.ERROR));return i._trackId=-1,i._selectDefaultTrack=!0,i.tracks=[],i.trackIdBlacklist=Object.create(null),i.audioGroupId=null,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.onManifestLoading=function(){this.tracks=[],this._trackId=-1,this._selectDefaultTrack=!0},t.prototype.onManifestParsed=function(e){var t=this.tracks=e.audioTracks||[];this.hls.trigger(l.a.AUDIO_TRACKS_UPDATED,{audioTracks:t})},t.prototype.onAudioTrackLoaded=function(e){if(e.id>=this.tracks.length)u.b.warn("Invalid audio track id:",e.id);else{if(u.b.log("audioTrack "+e.id+" loaded"),this.tracks[e.id].details=e.details,e.details.live&&!this.hasInterval()){var t=1e3*e.details.targetduration;this.setInterval(t)}!e.details.live&&this.hasInterval()&&this.clearInterval()}},t.prototype.onAudioTrackSwitched=function(e){var t=this.tracks[e.id].groupId;t&&this.audioGroupId!==t&&(this.audioGroupId=t)},t.prototype.onLevelLoaded=function(e){var t=this.hls.levels[e.level];if(t.audioGroupIds){var n=t.audioGroupIds[t.urlId];this.audioGroupId!==n&&(this.audioGroupId=n,this._selectInitialAudioTrack())}},t.prototype.onError=function(e){e.type===o.b.NETWORK_ERROR&&(e.fatal&&this.clearInterval(),e.details===o.a.AUDIO_TRACK_LOAD_ERROR&&(u.b.warn("Network failure on audio-track id:",e.context.id),this._handleLoadError()))},t.prototype._setAudioTrack=function(e){if(this._trackId===e&&this.tracks[this._trackId].details)u.b.debug("Same id as current audio-track passed, and track details available -> no-op");else if(e<0||e>=this.tracks.length)u.b.warn("Invalid id passed to audio-track controller");else{var t=this.tracks[e];u.b.log("Now switching to audio-track index "+e),this.clearInterval(),this._trackId=e;var n=t.url,i=t.type,r=t.id;this.hls.trigger(l.a.AUDIO_TRACK_SWITCHING,{id:r,type:i,url:n}),this._loadTrackDetailsIfNeeded(t)}},t.prototype.doTick=function(){this._updateTrack(this._trackId)},t.prototype._selectInitialAudioTrack=function(){var e=this,t=this.tracks;if(t.length){var n=this.tracks[this._trackId],i=null;if(n&&(i=n.name),this._selectDefaultTrack){var r=t.filter(function(e){return e.default});r.length?t=r:u.b.warn("No default audio tracks defined")}var a=!1,s=function(){t.forEach(function(t){a||e.audioGroupId&&t.groupId!==e.audioGroupId||i&&i!==t.name||(e._setAudioTrack(t.id),a=!0)})};s(),a||(i=null,s()),a||(u.b.error("No track found for running audio group-ID: "+this.audioGroupId),this.hls.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:o.a.AUDIO_TRACK_LOAD_ERROR,fatal:!0}))}},t.prototype._needsTrackLoading=function(e){var t=e.details;return!t||(!!t.live||void 0)},t.prototype._loadTrackDetailsIfNeeded=function(e){if(this._needsTrackLoading(e)){var t=e.url,n=e.id;u.b.log("loading audio-track playlist for id: "+n),this.hls.trigger(l.a.AUDIO_TRACK_LOADING,{url:t,id:n})}},t.prototype._updateTrack=function(e){if(!(e<0||e>=this.tracks.length)){this.clearInterval(),this._trackId=e,u.b.log("trying to update audio-track "+e);var t=this.tracks[e];this._loadTrackDetailsIfNeeded(t)}},t.prototype._handleLoadError=function(){this.trackIdBlacklist[this._trackId]=!0;var e=this._trackId,t=this.tracks[e],n=t.name,i=t.language,r=t.groupId;u.b.warn("Loading failed on audio track id: "+e+", group-id: "+r+', name/language: "'+n+'" / "'+i+'"');for(var a=e,o=0;o<this.tracks.length;o++){if(!this.trackIdBlacklist[o])if(this.tracks[o].name===n){a=o;break}}a!==e?(u.b.log("Attempting audio-track fallback id:",a,"group-id:",this.tracks[a].groupId),this._setAudioTrack(a)):u.b.warn('No fallback audio-track found for name/language: "'+n+'" / "'+i+'"')},ze(t,[{key:"audioTracks",get:function(){return this.tracks}},{key:"audioTrack",get:function(){return this._trackId},set:function(e){this._setAudioTrack(e),this._selectDefaultTrack=!1}}]),t}(ue),$e=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var Ge=window.performance,je={STOPPED:"STOPPED",STARTING:"STARTING",IDLE:"IDLE",PAUSED:"PAUSED",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",BUFFER_FLUSHING:"BUFFER_FLUSHING",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS"},He=function(e){function t(n,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHED,l.a.MEDIA_DETACHING,l.a.AUDIO_TRACKS_UPDATED,l.a.AUDIO_TRACK_SWITCHING,l.a.AUDIO_TRACK_LOADED,l.a.KEY_LOADED,l.a.FRAG_LOADED,l.a.FRAG_PARSING_INIT_SEGMENT,l.a.FRAG_PARSING_DATA,l.a.FRAG_PARSED,l.a.ERROR,l.a.BUFFER_RESET,l.a.BUFFER_CREATED,l.a.BUFFER_APPENDED,l.a.BUFFER_FLUSHED,l.a.INIT_PTS_FOUND));return r.fragmentTracker=i,r.config=n.config,r.audioCodecSwap=!1,r._state=je.STOPPED,r.initPTS=[],r.waitingFragment=null,r.videoTrackCC=null,r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.onHandlerDestroying=function(){this.stopLoad(),e.prototype.onHandlerDestroying.call(this)},t.prototype.onHandlerDestroyed=function(){this.state=je.STOPPED,this.fragmentTracker=null,e.prototype.onHandlerDestroyed.call(this)},t.prototype.onInitPtsFound=function(e){var t=e.id,n=e.frag.cc,i=e.initPTS;"main"===t&&(this.initPTS[n]=i,this.videoTrackCC=n,u.b.log("InitPTS for cc: "+n+" found from video track: "+i),this.state===je.WAITING_INIT_PTS&&this.tick())},t.prototype.startLoad=function(e){if(this.tracks){var t=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),this.fragLoadError=0,t>0&&-1===e?(u.b.log("audio:override startPosition with lastCurrentTime @"+t.toFixed(3)),this.state=je.IDLE):(this.lastCurrentTime=this.startPosition?this.startPosition:e,this.state=je.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else this.startPosition=e,this.state=je.STOPPED},t.prototype.stopLoad=function(){var e=this.fragCurrent;e&&(e.loader&&e.loader.abort(),this.fragmentTracker.removeFragment(e),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=je.STOPPED},t.prototype.doTick=function(){var e=void 0,t=void 0,n=void 0,i=this.hls,r=i.config;switch(this.state){case je.ERROR:case je.PAUSED:case je.BUFFER_FLUSHING:break;case je.STARTING:this.state=je.WAITING_TRACK,this.loadedmetadata=!1;break;case je.IDLE:var a=this.tracks;if(!a)break;if(!this.media&&(this.startFragRequested||!r.startFragPrefetch))break;if(this.loadedmetadata)e=this.media.currentTime;else if(void 0===(e=this.nextLoadPosition))break;var o=this.mediaBuffer?this.mediaBuffer:this.media,c=this.videoBuffer?this.videoBuffer:this.media,d=W.bufferInfo(o,e,r.maxBufferHole),h=W.bufferInfo(c,e,r.maxBufferHole),f=d.len,p=d.end,m=this.fragPrevious,g=Math.min(r.maxBufferLength,r.maxMaxBufferLength),v=Math.max(g,h.len),y=this.audioSwitch,b=this.trackId;if((f<v||y)&&b<a.length){if(void 0===(n=a[b].details)){this.state=je.WAITING_TRACK;break}if(!y&&!n.live&&m&&m.sn===n.endSN&&!d.nextStart&&(!this.media.seeking||this.media.duration-p<m.duration/2)){this.hls.trigger(l.a.BUFFER_EOS,{type:"audio"}),this.state=je.ENDED;break}var _=n.fragments,x=_.length,w=_[0].start,S=_[x-1].start+_[x-1].duration,C=void 0;if(y)if(n.live&&!n.PTSKnown)u.b.log("switching audiotrack, live stream, unknown PTS,load first fragment"),p=0;else if(p=e,n.PTSKnown&&e<w){if(!(d.end>w||d.nextStart))return;u.b.log("alt audio track ahead of main track, seek to start of alt audio track"),this.media.currentTime=w+.05}if(n.initSegment&&!n.initSegment.data)C=n.initSegment;else if(p<=w){if(C=_[0],null!==this.videoTrackCC&&C.cc!==this.videoTrackCC&&(C=function(e,t){return H.search(e,function(e){return e.cc<t?1:e.cc>t?-1:0})}(_,this.videoTrackCC)),n.live&&C.loadIdx&&C.loadIdx===this.fragLoadIdx){var M=d.nextStart?d.nextStart:w;return u.b.log("no alt audio available @currentTime:"+this.media.currentTime+", seeking @"+(M+.05)),void(this.media.currentTime=M+.05)}}else{var k=void 0,T=r.maxFragLookUpTolerance,A=m?_[m.sn-_[0].sn+1]:void 0,I=function(e){var t=Math.min(T,e.duration);return e.start+e.duration-t<=p?1:e.start-t>p&&e.start?-1:0};p<S?(p>S-T&&(T=0),k=A&&!I(A)?A:H.search(_,I)):k=_[x-1],k&&(C=k,w=k.start,m&&C.level===m.level&&C.sn===m.sn&&(C.sn<n.endSN?(C=_[C.sn+1-n.startSN],u.b.log("SN just loaded, load next one: "+C.sn)):C=null))}C&&(C.encrypted?(u.b.log("Loading key for "+C.sn+" of ["+n.startSN+" ,"+n.endSN+"],track "+b),this.state=je.KEY_LOADING,i.trigger(l.a.KEY_LOADING,{frag:C})):(u.b.log("Loading "+C.sn+", cc: "+C.cc+" of ["+n.startSN+" ,"+n.endSN+"],track "+b+", currentTime:"+e+",bufferEnd:"+p.toFixed(3)),(y||this.fragmentTracker.getState(C)===z)&&(this.fragCurrent=C,this.startFragRequested=!0,Object(s.a)(C.sn)&&(this.nextLoadPosition=C.start+C.duration),i.trigger(l.a.FRAG_LOADING,{frag:C}),this.state=je.FRAG_LOADING)))}break;case je.WAITING_TRACK:(t=this.tracks[this.trackId])&&t.details&&(this.state=je.IDLE);break;case je.FRAG_LOADING_WAITING_RETRY:var E=Ge.now(),D=this.retryDate,O=(o=this.media)&&o.seeking;(!D||E>=D||O)&&(u.b.log("audioStreamController: retryDate reached, switch back to IDLE state"),this.state=je.IDLE);break;case je.WAITING_INIT_PTS:var P=this.videoTrackCC;if(void 0===this.initPTS[P])break;var L=this.waitingFragment;if(L){var R=L.frag.cc;P!==R?(t=this.tracks[this.trackId]).details&&t.details.live&&(u.b.warn("Waiting fragment CC ("+R+") does not match video track CC ("+P+")"),this.waitingFragment=null,this.state=je.IDLE):(this.state=je.FRAG_LOADING,this.onFragLoaded(this.waitingFragment),this.waitingFragment=null)}else this.state=je.IDLE;break;case je.STOPPED:case je.FRAG_LOADING:case je.PARSING:case je.PARSED:case je.ENDED:}},t.prototype.onMediaAttached=function(e){var t=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("ended",this.onvended);var n=this.config;this.tracks&&n.autoStartLoad&&this.startLoad(n.startPosition)},t.prototype.onMediaDetaching=function(){var e=this.media;e&&e.ended&&(u.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1,this.stopLoad()},t.prototype.onMediaSeeking=function(){this.state===je.ENDED&&(this.state=je.IDLE),this.media&&(this.lastCurrentTime=this.media.currentTime),this.tick()},t.prototype.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},t.prototype.onAudioTracksUpdated=function(e){u.b.log("audio tracks updated"),this.tracks=e.audioTracks},t.prototype.onAudioTrackSwitching=function(e){var t=!!e.url;this.trackId=e.id,this.fragCurrent=null,this.state=je.PAUSED,this.waitingFragment=null,t?this.setInterval(100):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),t&&(this.audioSwitch=!0,this.state=je.IDLE),this.tick()},t.prototype.onAudioTrackLoaded=function(e){var t=e.details,n=e.id,i=this.tracks[n],r=t.totalduration,a=0;if(u.b.log("track "+n+" loaded ["+t.startSN+","+t.endSN+"],duration:"+r),t.live){var o=i.details;o&&t.fragments.length>0?(ae(o,t),a=t.fragments[0].start,t.PTSKnown?u.b.log("live audio playlist sliding:"+a.toFixed(3)):u.b.log("live audio playlist - outdated PTS, unknown sliding")):(t.PTSKnown=!1,u.b.log("live audio playlist - first load, unknown sliding"))}else t.PTSKnown=!1;if(i.details=t,!this.startFragRequested){if(-1===this.startPosition){var l=t.startTimeOffset;Object(s.a)(l)?(u.b.log("start time offset found in playlist, adjust startPosition to "+l),this.startPosition=l):this.startPosition=0}this.nextLoadPosition=this.startPosition}this.state===je.WAITING_TRACK&&(this.state=je.IDLE),this.tick()},t.prototype.onKeyLoaded=function(){this.state===je.KEY_LOADING&&(this.state=je.IDLE,this.tick())},t.prototype.onFragLoaded=function(e){var t=this.fragCurrent,n=e.frag;if(this.state===je.FRAG_LOADING&&t&&"audio"===n.type&&n.level===t.level&&n.sn===t.sn){var i=this.tracks[this.trackId],r=i.details,a=r.totalduration,o=t.level,s=t.sn,c=t.cc,d=this.config.defaultAudioCodec||i.audioCodec||"mp4a.40.2",h=this.stats=e.stats;if("initSegment"===s)this.state=je.IDLE,h.tparsed=h.tbuffered=Ge.now(),r.initSegment.data=e.payload,this.hls.trigger(l.a.FRAG_BUFFERED,{stats:h,frag:t,id:"audio"}),this.tick();else{this.state=je.PARSING,this.appended=!1,this.demuxer||(this.demuxer=new te(this.hls,"audio"));var f=this.initPTS[c],p=r.initSegment?r.initSegment.data:[];if(r.initSegment||void 0!==f){this.pendingBuffering=!0,u.b.log("Demuxing "+s+" of ["+r.startSN+" ,"+r.endSN+"],track "+o);this.demuxer.push(e.payload,p,d,null,t,a,!1,f)}else u.b.log("unknown video PTS for continuity counter "+c+", waiting for video PTS before demuxing audio frag "+s+" of ["+r.startSN+" ,"+r.endSN+"],track "+o),this.waitingFragment=e,this.state=je.WAITING_INIT_PTS}}this.fragLoadError=0},t.prototype.onFragParsingInitSegment=function(e){var t=this.fragCurrent,n=e.frag;if(t&&"audio"===e.id&&n.sn===t.sn&&n.level===t.level&&this.state===je.PARSING){var i=e.tracks,r=void 0;if(i.video&&delete i.video,r=i.audio){r.levelCodec=r.codec,r.id=e.id,this.hls.trigger(l.a.BUFFER_CODECS,i),u.b.log("audio track:audio,container:"+r.container+",codecs[level/parsed]=["+r.levelCodec+"/"+r.codec+"]");var a=r.initSegment;if(a){var o={type:"audio",data:a,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[o]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(l.a.BUFFER_APPENDING,o))}this.tick()}}},t.prototype.onFragParsingData=function(e){var t=this,n=this.fragCurrent,i=e.frag;if(n&&"audio"===e.id&&"audio"===e.type&&i.sn===n.sn&&i.level===n.level&&this.state===je.PARSING){var r=this.trackId,a=this.tracks[r],c=this.hls;Object(s.a)(e.endPTS)||(e.endPTS=e.startPTS+n.duration,e.endDTS=e.startDTS+n.duration),n.addElementaryStream(v.ElementaryStreamTypes.AUDIO),u.b.log("parsed "+e.type+",PTS:["+e.startPTS.toFixed(3)+","+e.endPTS.toFixed(3)+"],DTS:["+e.startDTS.toFixed(3)+"/"+e.endDTS.toFixed(3)+"],nb:"+e.nb),re(a.details,n,e.startPTS,e.endPTS);var d=this.audioSwitch,h=this.media,f=!1;if(d&&h)if(h.readyState){var p=h.currentTime;u.b.log("switching audio track : currentTime:"+p),p>=e.startPTS&&(u.b.log("switching audio track : flushing all audio"),this.state=je.BUFFER_FLUSHING,c.trigger(l.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),f=!0,this.audioSwitch=!1,c.trigger(l.a.AUDIO_TRACK_SWITCHED,{id:r}))}else this.audioSwitch=!1,c.trigger(l.a.AUDIO_TRACK_SWITCHED,{id:r});var m=this.pendingData;if(!m)return u.b.warn("Apparently attempt to enqueue media payload without codec initialization data upfront"),void c.trigger(l.a.ERROR,{type:o.b.MEDIA_ERROR,details:null,fatal:!0});this.audioSwitch||([e.data1,e.data2].forEach(function(t){t&&t.length&&m.push({type:e.type,data:t,parent:"audio",content:"data"})}),!f&&m.length&&(m.forEach(function(e){t.state===je.PARSING&&(t.pendingBuffering=!0,t.hls.trigger(l.a.BUFFER_APPENDING,e))}),this.pendingData=[],this.appended=!0)),this.tick()}},t.prototype.onFragParsed=function(e){var t=this.fragCurrent,n=e.frag;t&&"audio"===e.id&&n.sn===t.sn&&n.level===t.level&&this.state===je.PARSING&&(this.stats.tparsed=Ge.now(),this.state=je.PARSED,this._checkAppendedParsed())},t.prototype.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},t.prototype.onBufferCreated=function(e){var t=e.tracks.audio;t&&(this.mediaBuffer=t.buffer,this.loadedmetadata=!0),e.tracks.video&&(this.videoBuffer=e.tracks.video.buffer)},t.prototype.onBufferAppended=function(e){if("audio"===e.parent){var t=this.state;t!==je.PARSING&&t!==je.PARSED||(this.pendingBuffering=e.pending>0,this._checkAppendedParsed())}},t.prototype._checkAppendedParsed=function(){if(!(this.state!==je.PARSED||this.appended&&this.pendingBuffering)){var e=this.fragCurrent,t=this.stats,n=this.hls;if(e){this.fragPrevious=e,t.tbuffered=Ge.now(),n.trigger(l.a.FRAG_BUFFERED,{stats:t,frag:e,id:"audio"});var i=this.mediaBuffer?this.mediaBuffer:this.media;u.b.log("audio buffered : "+oe.toString(i.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,n.trigger(l.a.AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=je.IDLE}this.tick()}},t.prototype.onError=function(e){var t=e.frag;if(!t||"audio"===t.type)switch(e.details){case o.a.FRAG_LOAD_ERROR:case o.a.FRAG_LOAD_TIMEOUT:var n=e.frag;if(n&&"audio"!==n.type)break;if(!e.fatal){var i=this.fragLoadError;i?i++:i=1;var r=this.config;if(i<=r.fragLoadingMaxRetry){this.fragLoadError=i;var a=Math.min(Math.pow(2,i-1)*r.fragLoadingRetryDelay,r.fragLoadingMaxRetryTimeout);u.b.warn("AudioStreamController: frag loading failed, retry in "+a+" ms"),this.retryDate=Ge.now()+a,this.state=je.FRAG_LOADING_WAITING_RETRY}else u.b.error("AudioStreamController: "+e.details+" reaches max retry, redispatch as fatal ..."),e.fatal=!0,this.state=je.ERROR}break;case o.a.AUDIO_TRACK_LOAD_ERROR:case o.a.AUDIO_TRACK_LOAD_TIMEOUT:case o.a.KEY_LOAD_ERROR:case o.a.KEY_LOAD_TIMEOUT:this.state!==je.ERROR&&(this.state=e.fatal?je.ERROR:je.IDLE,u.b.warn("AudioStreamController: "+e.details+" while loading frag, now switching to "+this.state+" state ..."));break;case o.a.BUFFER_FULL_ERROR:if("audio"===e.parent&&(this.state===je.PARSING||this.state===je.PARSED)){var s=this.mediaBuffer,c=this.media.currentTime;if(s&&W.isBuffered(s,c)&&W.isBuffered(s,c+.5)){var d=this.config;d.maxMaxBufferLength>=d.maxBufferLength&&(d.maxMaxBufferLength/=2,u.b.warn("AudioStreamController: reduce max buffer length to "+d.maxMaxBufferLength+"s")),this.state=je.IDLE}else u.b.warn("AudioStreamController: buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,this.state=je.BUFFER_FLUSHING,this.hls.trigger(l.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"})}}},t.prototype.onBufferFlushed=function(){var e=this,t=this.pendingData;t&&t.length?(u.b.log("AudioStreamController: appending pending audio data after buffer flushed"),t.forEach(function(t){e.hls.trigger(l.a.BUFFER_APPENDING,t)}),this.appended=!0,this.pendingData=[],this.state=je.PARSED):(this.state=je.IDLE,this.fragPrevious=null,this.tick())},$e(t,[{key:"state",set:function(e){if(this.state!==e){var t=this.state;this._state=e,u.b.log("audio stream:"+t+"->"+e)}},get:function(){return this._state}}]),t}(ue),We=function(){if("undefined"!=typeof window&&window.VTTCue)return window.VTTCue;var e="auto",t={"":!0,lr:!0,rl:!0},n={start:!0,middle:!0,end:!0,left:!0,right:!0};function i(e){return"string"==typeof e&&(!!n[e.toLowerCase()]&&e.toLowerCase())}function r(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)e[i]=n[i]}return e}function a(n,a,o){var s=this,l=function(){if("undefined"!=typeof navigator)return/MSIE\s8\.0/.test(navigator.userAgent)}(),u={};l?s=document.createElement("custom"):u.enumerable=!0,s.hasBeenReset=!1;var c="",d=!1,h=n,f=a,p=o,m=null,g="",v=!0,y="auto",b="start",_=50,x="middle",w=50,S="middle";if(Object.defineProperty(s,"id",r({},u,{get:function(){return c},set:function(e){c=""+e}})),Object.defineProperty(s,"pauseOnExit",r({},u,{get:function(){return d},set:function(e){d=!!e}})),Object.defineProperty(s,"startTime",r({},u,{get:function(){return h},set:function(e){if("number"!=typeof e)throw new TypeError("Start time must be set to a number.");h=e,this.hasBeenReset=!0}})),Object.defineProperty(s,"endTime",r({},u,{get:function(){return f},set:function(e){if("number"!=typeof e)throw new TypeError("End time must be set to a number.");f=e,this.hasBeenReset=!0}})),Object.defineProperty(s,"text",r({},u,{get:function(){return p},set:function(e){p=""+e,this.hasBeenReset=!0}})),Object.defineProperty(s,"region",r({},u,{get:function(){return m},set:function(e){m=e,this.hasBeenReset=!0}})),Object.defineProperty(s,"vertical",r({},u,{get:function(){return g},set:function(e){var n=function(e){return"string"==typeof e&&!!t[e.toLowerCase()]&&e.toLowerCase()}(e);if(!1===n)throw new SyntaxError("An invalid or illegal string was specified.");g=n,this.hasBeenReset=!0}})),Object.defineProperty(s,"snapToLines",r({},u,{get:function(){return v},set:function(e){v=!!e,this.hasBeenReset=!0}})),Object.defineProperty(s,"line",r({},u,{get:function(){return y},set:function(t){if("number"!=typeof t&&t!==e)throw new SyntaxError("An invalid number or illegal string was specified.");y=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"lineAlign",r({},u,{get:function(){return b},set:function(e){var t=i(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");b=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"position",r({},u,{get:function(){return _},set:function(e){if(e<0||e>100)throw new Error("Position must be between 0 and 100.");_=e,this.hasBeenReset=!0}})),Object.defineProperty(s,"positionAlign",r({},u,{get:function(){return x},set:function(e){var t=i(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");x=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"size",r({},u,{get:function(){return w},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");w=e,this.hasBeenReset=!0}})),Object.defineProperty(s,"align",r({},u,{get:function(){return S},set:function(e){var t=i(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");S=t,this.hasBeenReset=!0}})),s.displayState=void 0,l)return s}return a.prototype.getCueAsHTML=function(){return window.WebVTT.convertCueToDOMTree(window,this.text)},a}(),Ue=function(){return{decode:function(e){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}};function Ke(){this.window=window,this.state="INITIAL",this.buffer="",this.decoder=new Ue,this.regionList=[]}function qe(){this.values=Object.create(null)}function Ye(e,t,n,i){var r=i?e.split(i):[e];for(var a in r)if("string"==typeof r[a]){var o=r[a].split(n);if(2===o.length)t(o[0],o[1])}}qe.prototype={set:function(e,t){this.get(e)||""===t||(this.values[e]=t)},get:function(e,t,n){return n?this.has(e)?this.values[e]:t[n]:this.has(e)?this.values[e]:t},has:function(e){return e in this.values},alt:function(e,t,n){for(var i=0;i<n.length;++i)if(t===n[i]){this.set(e,t);break}},integer:function(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))},percent:function(e,t){return!!(t.match(/^([\d]{1,3})(\.[\d]*)?%$/)&&(t=parseFloat(t))>=0&&t<=100)&&(this.set(e,t),!0)}};var Ze=new We(0,0,0),Xe="middle"===Ze.align?"middle":"center";function Je(e,t,n){var i=e;function r(){var t=function(e){function t(e,t,n,i){return 3600*(0|e)+60*(0|t)+(0|n)+(0|i)/1e3}var n=e.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return n?n[3]?t(n[1],n[2],n[3].replace(":",""),n[4]):n[1]>59?t(n[1],n[2],0,n[4]):t(0,n[1],n[2],n[4]):null}(e);if(null===t)throw new Error("Malformed timestamp: "+i);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function a(){e=e.replace(/^\s+/,"")}if(a(),t.startTime=r(),a(),"--\x3e"!==e.substr(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+i);e=e.substr(3),a(),t.endTime=r(),a(),function(e,t){var i=new qe;Ye(e,function(e,t){switch(e){case"region":for(var r=n.length-1;r>=0;r--)if(n[r].id===t){i.set(e,n[r].region);break}break;case"vertical":i.alt(e,t,["rl","lr"]);break;case"line":var a=t.split(","),o=a[0];i.integer(e,o),i.percent(e,o)&&i.set("snapToLines",!1),i.alt(e,o,["auto"]),2===a.length&&i.alt("lineAlign",a[1],["start",Xe,"end"]);break;case"position":a=t.split(","),i.percent(e,a[0]),2===a.length&&i.alt("positionAlign",a[1],["start",Xe,"end","line-left","line-right","auto"]);break;case"size":i.percent(e,t);break;case"align":i.alt(e,t,["start",Xe,"end","left","right"])}},/:/,/\s/),t.region=i.get("region",null),t.vertical=i.get("vertical","");var r=i.get("line","auto");"auto"===r&&-1===Ze.line&&(r=-1),t.line=r,t.lineAlign=i.get("lineAlign","start"),t.snapToLines=i.get("snapToLines",!0),t.size=i.get("size",100),t.align=i.get("align",Xe);var a=i.get("position","auto");"auto"===a&&50===Ze.position&&(a="start"===t.align||"left"===t.align?0:"end"===t.align||"right"===t.align?100:50),t.position=a}(e,t)}function Qe(e){return e.replace(/<br(?: \/)?>/gi,"\n")}Ke.prototype={parse:function(e){var t=this;function n(){var e=t.buffer,n=0;for(e=Qe(e);n<e.length&&"\r"!==e[n]&&"\n"!==e[n];)++n;var i=e.substr(0,n);return"\r"===e[n]&&++n,"\n"===e[n]&&++n,t.buffer=e.substr(n),i}e&&(t.buffer+=t.decoder.decode(e,{stream:!0}));try{var i=void 0;if("INITIAL"===t.state){if(!/\r\n|\n/.test(t.buffer))return this;var r=(i=n()).match(/^(茂禄驴)?WEBVTT([ \t].*)?$/);if(!r||!r[0])throw new Error("Malformed WebVTT signature.");t.state="HEADER"}for(var a=!1;t.buffer;){if(!/\r\n|\n/.test(t.buffer))return this;switch(a?a=!1:i=n(),t.state){case"HEADER":/:/.test(i)?Ye(i,function(e,t){},/:/):i||(t.state="ID");continue;case"NOTE":i||(t.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(i)){t.state="NOTE";break}if(!i)continue;if(t.cue=new We(0,0,""),t.state="CUE",-1===i.indexOf("--\x3e")){t.cue.id=i;continue}case"CUE":try{Je(i,t.cue,t.regionList)}catch(e){t.cue=null,t.state="BADCUE";continue}t.state="CUETEXT";continue;case"CUETEXT":var o=-1!==i.indexOf("--\x3e");if(!i||o&&(a=!0)){t.oncue&&t.oncue(t.cue),t.cue=null,t.state="ID";continue}t.cue.text&&(t.cue.text+="\n"),t.cue.text+=i;continue;case"BADCUE":i||(t.state="ID");continue}}}catch(e){"CUETEXT"===t.state&&t.cue&&t.oncue&&t.oncue(t.cue),t.cue=null,t.state="INITIAL"===t.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){try{if(this.buffer+=this.decoder.decode(),(this.cue||"HEADER"===this.state)&&(this.buffer+="\n\n",this.parse()),"INITIAL"===this.state)throw new Error("Malformed WebVTT signature.")}catch(e){throw e}return this.onflush&&this.onflush(),this}};var et=Ke;function tt(e,t,n,i){for(var r=void 0,a=void 0,o=void 0,s=void 0,l=void 0,u=window.VTTCue||window.TextTrackCue,c=0;c<i.rows.length;c++)if(o=!0,s=0,l="",!(r=i.rows[c]).isEmpty()){for(var d=0;d<r.chars.length;d++)r.chars[d].uchar.match(/\s/)&&o?s++:(l+=r.chars[d].uchar,o=!1);r.cueStartTime=t,t===n&&(n+=1e-4),a=new u(t,n,Qe(l.trim())),s>=16?s--:s++,navigator.userAgent.match(/Firefox\//)?a.line=c+1:a.line=c>7?c-2:c+1,a.align="left",a.position=Math.max(0,Math.min(100,s/32*100+(navigator.userAgent.match(/Firefox\//)?50:0))),e.addCue(a)}}function nt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var it={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},rt=function(e){var t=e;return it.hasOwnProperty(e)&&(t=it[e]),String.fromCharCode(t)},at=15,ot=100,st={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},lt={17:2,18:4,21:6,22:8,23:10,19:13,20:15},ut={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},ct={25:2,26:4,29:6,30:8,31:10,27:13,28:15},dt=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],ht={verboseFilter:{DATA:3,DEBUG:3,INFO:2,WARNING:2,TEXT:1,ERROR:0},time:null,verboseLevel:0,setTime:function(e){this.time=e},log:function(e,t){this.verboseFilter[e];this.verboseLevel}},ft=function(e){for(var t=[],n=0;n<e.length;n++)t.push(e[n].toString(16));return t},pt=function(){function e(t,n,i,r,a){nt(this,e),this.foreground=t||"white",this.underline=n||!1,this.italics=i||!1,this.background=r||"black",this.flash=a||!1}return e.prototype.reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},e.prototype.setStyles=function(e){for(var t=["foreground","underline","italics","background","flash"],n=0;n<t.length;n++){var i=t[n];e.hasOwnProperty(i)&&(this[i]=e[i])}},e.prototype.isDefault=function(){return"white"===this.foreground&&!this.underline&&!this.italics&&"black"===this.background&&!this.flash},e.prototype.equals=function(e){return this.foreground===e.foreground&&this.underline===e.underline&&this.italics===e.italics&&this.background===e.background&&this.flash===e.flash},e.prototype.copy=function(e){this.foreground=e.foreground,this.underline=e.underline,this.italics=e.italics,this.background=e.background,this.flash=e.flash},e.prototype.toString=function(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash},e}(),mt=function(){function e(t,n,i,r,a,o){nt(this,e),this.uchar=t||" ",this.penState=new pt(n,i,r,a,o)}return e.prototype.reset=function(){this.uchar=" ",this.penState.reset()},e.prototype.setChar=function(e,t){this.uchar=e,this.penState.copy(t)},e.prototype.setPenState=function(e){this.penState.copy(e)},e.prototype.equals=function(e){return this.uchar===e.uchar&&this.penState.equals(e.penState)},e.prototype.copy=function(e){this.uchar=e.uchar,this.penState.copy(e.penState)},e.prototype.isEmpty=function(){return" "===this.uchar&&this.penState.isDefault()},e}(),gt=function(){function e(){nt(this,e),this.chars=[];for(var t=0;t<ot;t++)this.chars.push(new mt);this.pos=0,this.currPenState=new pt}return e.prototype.equals=function(e){for(var t=!0,n=0;n<ot;n++)if(!this.chars[n].equals(e.chars[n])){t=!1;break}return t},e.prototype.copy=function(e){for(var t=0;t<ot;t++)this.chars[t].copy(e.chars[t])},e.prototype.isEmpty=function(){for(var e=!0,t=0;t<ot;t++)if(!this.chars[t].isEmpty()){e=!1;break}return e},e.prototype.setCursor=function(e){this.pos!==e&&(this.pos=e),this.pos<0?(ht.log("ERROR","Negative cursor position "+this.pos),this.pos=0):this.pos>ot&&(ht.log("ERROR","Too large cursor position "+this.pos),this.pos=ot)},e.prototype.moveCursor=function(e){var t=this.pos+e;if(e>1)for(var n=this.pos+1;n<t+1;n++)this.chars[n].setPenState(this.currPenState);this.setCursor(t)},e.prototype.backSpace=function(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)},e.prototype.insertChar=function(e){e>=144&&this.backSpace();var t=rt(e);this.pos>=ot?ht.log("ERROR","Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))},e.prototype.clearFromPos=function(e){var t=void 0;for(t=e;t<ot;t++)this.chars[t].reset()},e.prototype.clear=function(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()},e.prototype.clearToEndOfRow=function(){this.clearFromPos(this.pos)},e.prototype.getTextString=function(){for(var e=[],t=!0,n=0;n<ot;n++){var i=this.chars[n].uchar;" "!==i&&(t=!1),e.push(i)}return t?"":e.join("")},e.prototype.setPenStyles=function(e){this.currPenState.setStyles(e),this.chars[this.pos].setPenState(this.currPenState)},e}(),vt=function(){function e(){nt(this,e),this.rows=[];for(var t=0;t<at;t++)this.rows.push(new gt);this.currRow=at-1,this.nrRollUpRows=null,this.reset()}return e.prototype.reset=function(){for(var e=0;e<at;e++)this.rows[e].clear();this.currRow=at-1},e.prototype.equals=function(e){for(var t=!0,n=0;n<at;n++)if(!this.rows[n].equals(e.rows[n])){t=!1;break}return t},e.prototype.copy=function(e){for(var t=0;t<at;t++)this.rows[t].copy(e.rows[t])},e.prototype.isEmpty=function(){for(var e=!0,t=0;t<at;t++)if(!this.rows[t].isEmpty()){e=!1;break}return e},e.prototype.backSpace=function(){this.rows[this.currRow].backSpace()},e.prototype.clearToEndOfRow=function(){this.rows[this.currRow].clearToEndOfRow()},e.prototype.insertChar=function(e){this.rows[this.currRow].insertChar(e)},e.prototype.setPen=function(e){this.rows[this.currRow].setPenStyles(e)},e.prototype.moveCursor=function(e){this.rows[this.currRow].moveCursor(e)},e.prototype.setCursor=function(e){ht.log("INFO","setCursor: "+e),this.rows[this.currRow].setCursor(e)},e.prototype.setPAC=function(e){ht.log("INFO","pacData = "+JSON.stringify(e));var t=e.row-1;if(this.nrRollUpRows&&t<this.nrRollUpRows-1&&(t=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==t){for(var n=0;n<at;n++)this.rows[n].clear();var i=this.currRow+1-this.nrRollUpRows,r=this.lastOutputScreen;if(r){var a=r.rows[i].cueStartTime;if(a&&a<ht.time)for(var o=0;o<this.nrRollUpRows;o++)this.rows[t-this.nrRollUpRows+o+1].copy(r.rows[i+o])}}this.currRow=t;var s=this.rows[this.currRow];if(null!==e.indent){var l=e.indent,u=Math.max(l-1,0);s.setCursor(e.indent),e.color=s.chars[u].penState.foreground}var c={foreground:e.color,underline:e.underline,italics:e.italics,background:"black",flash:!1};this.setPen(c)},e.prototype.setBkgData=function(e){ht.log("INFO","bkgData = "+JSON.stringify(e)),this.backSpace(),this.setPen(e),this.insertChar(32)},e.prototype.setRollUpRows=function(e){this.nrRollUpRows=e},e.prototype.rollUp=function(){if(null!==this.nrRollUpRows){ht.log("TEXT",this.getDisplayText());var e=this.currRow+1-this.nrRollUpRows,t=this.rows.splice(e,1)[0];t.clear(),this.rows.splice(this.currRow,0,t),ht.log("INFO","Rolling up")}else ht.log("DEBUG","roll_up but nrRollUpRows not set yet")},e.prototype.getDisplayText=function(e){e=e||!1;for(var t=[],n="",i=-1,r=0;r<at;r++){var a=this.rows[r].getTextString();a&&(i=r+1,e?t.push("Row "+i+": '"+a+"'"):t.push(a.trim()))}return t.length>0&&(n=e?"["+t.join(" | ")+"]":t.join("\n")),n},e.prototype.getTextAndFormat=function(){return this.rows},e}(),yt=function(){function e(t,n){nt(this,e),this.chNr=t,this.outputFilter=n,this.mode=null,this.verbose=0,this.displayedMemory=new vt,this.nonDisplayedMemory=new vt,this.lastOutputScreen=new vt,this.currRollUpRow=this.displayedMemory.rows[at-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}return e.prototype.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[at-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null},e.prototype.getHandler=function(){return this.outputFilter},e.prototype.setHandler=function(e){this.outputFilter=e},e.prototype.setPAC=function(e){this.writeScreen.setPAC(e)},e.prototype.setBkgData=function(e){this.writeScreen.setBkgData(e)},e.prototype.setMode=function(e){e!==this.mode&&(this.mode=e,ht.log("INFO","MODE="+e),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)},e.prototype.insertChars=function(e){for(var t=0;t<e.length;t++)this.writeScreen.insertChar(e[t]);var n=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";ht.log("INFO",n+": "+this.writeScreen.getDisplayText(!0)),"MODE_PAINT-ON"!==this.mode&&"MODE_ROLL-UP"!==this.mode||(ht.log("TEXT","DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())},e.prototype.ccRCL=function(){ht.log("INFO","RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")},e.prototype.ccBS=function(){ht.log("INFO","BS - BackSpace"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())},e.prototype.ccAOF=function(){},e.prototype.ccAON=function(){},e.prototype.ccDER=function(){ht.log("INFO","DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()},e.prototype.ccRU=function(e){ht.log("INFO","RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e)},e.prototype.ccFON=function(){ht.log("INFO","FON - Flash On"),this.writeScreen.setPen({flash:!0})},e.prototype.ccRDC=function(){ht.log("INFO","RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")},e.prototype.ccTR=function(){ht.log("INFO","TR"),this.setMode("MODE_TEXT")},e.prototype.ccRTD=function(){ht.log("INFO","RTD"),this.setMode("MODE_TEXT")},e.prototype.ccEDM=function(){ht.log("INFO","EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)},e.prototype.ccCR=function(){ht.log("CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)},e.prototype.ccENM=function(){ht.log("INFO","ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()},e.prototype.ccEOC=function(){if(ht.log("INFO","EOC - End Of Caption"),"MODE_POP-ON"===this.mode){var e=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=e,this.writeScreen=this.nonDisplayedMemory,ht.log("TEXT","DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)},e.prototype.ccTO=function(e){ht.log("INFO","TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e)},e.prototype.ccMIDROW=function(e){var t={flash:!1};if(t.underline=e%2==1,t.italics=e>=46,t.italics)t.foreground="white";else{var n=Math.floor(e/2)-16;t.foreground=["white","green","blue","cyan","red","yellow","magenta"][n]}ht.log("INFO","MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)},e.prototype.outputDataUpdate=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=ht.time;null!==t&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),!0===e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue()),this.cueStartTime=this.displayedMemory.isEmpty()?null:t):this.cueStartTime=t,this.lastOutputScreen.copy(this.displayedMemory))},e.prototype.cueSplitAtTime=function(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))},e}(),bt=function(){function e(t,n,i){nt(this,e),this.field=t||1,this.outputs=[n,i],this.channels=[new yt(1,n),new yt(2,i)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}}return e.prototype.getHandler=function(e){return this.channels[e].getHandler()},e.prototype.setHandler=function(e,t){this.channels[e].setHandler(t)},e.prototype.addData=function(e,t){var n=void 0,i=void 0,r=void 0,a=!1;this.lastTime=e,ht.setTime(e);for(var o=0;o<t.length;o+=2)if(i=127&t[o],r=127&t[o+1],0!==i||0!==r){if(ht.log("DATA","["+ft([t[o],t[o+1]])+"] -> ("+ft([i,r])+")"),(n=this.parseCmd(i,r))||(n=this.parseMidrow(i,r)),n||(n=this.parsePAC(i,r)),n||(n=this.parseBackgroundAttributes(i,r)),!n)if(a=this.parseChars(i,r))if(this.currChNr&&this.currChNr>=0)this.channels[this.currChNr-1].insertChars(a);else ht.log("WARNING","No channel found yet. TEXT-MODE?");n?this.dataCounters.cmd+=2:a?this.dataCounters.char+=2:(this.dataCounters.other+=2,ht.log("WARNING","Couldn't parse cleaned data "+ft([i,r])+" orig: "+ft([t[o],t[o+1]])))}else this.dataCounters.padding+=2},e.prototype.parseCmd=function(e,t){var n=null;if(!((20===e||28===e)&&t>=32&&t<=47)&&!((23===e||31===e)&&t>=33&&t<=35))return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,ht.log("DEBUG","Repeated command ("+ft([e,t])+") is dropped"),!0;n=20===e||23===e?1:2;var i=this.channels[n-1];return 20===e||28===e?32===t?i.ccRCL():33===t?i.ccBS():34===t?i.ccAOF():35===t?i.ccAON():36===t?i.ccDER():37===t?i.ccRU(2):38===t?i.ccRU(3):39===t?i.ccRU(4):40===t?i.ccFON():41===t?i.ccRDC():42===t?i.ccTR():43===t?i.ccRTD():44===t?i.ccEDM():45===t?i.ccCR():46===t?i.ccENM():47===t&&i.ccEOC():i.ccTO(t-32),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=n,!0},e.prototype.parseMidrow=function(e,t){var n=null;return(17===e||25===e)&&t>=32&&t<=47&&((n=17===e?1:2)!==this.currChNr?(ht.log("ERROR","Mismatch channel in midrow parsing"),!1):(this.channels[n-1].ccMIDROW(t),ht.log("DEBUG","MIDROW ("+ft([e,t])+")"),!0))},e.prototype.parsePAC=function(e,t){var n,i=null;if(!((e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127)&&!((16===e||24===e)&&t>=64&&t<=95))return!1;if(e===this.lastCmdA&&t===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;n=e<=23?1:2,i=t>=64&&t<=95?1===n?st[e]:ut[e]:1===n?lt[e]:ct[e];var r=this.interpretPAC(i,t);return this.channels[n-1].setPAC(r),this.lastCmdA=e,this.lastCmdB=t,this.currChNr=n,!0},e.prototype.interpretPAC=function(e,t){var n=t,i={color:null,italics:!1,indent:null,underline:!1,row:e};return n=t>95?t-96:t-64,i.underline=1==(1&n),n<=13?i.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(n/2)]:n<=15?(i.italics=!0,i.color="white"):i.indent=4*Math.floor((n-16)/2),i},e.prototype.parseChars=function(e,t){var n=null,i=null,r=null;if(e>=25?(n=2,r=e-8):(n=1,r=e),r>=17&&r<=19){var a=t;a=17===r?t+80:18===r?t+112:t+144,ht.log("INFO","Special char '"+rt(a)+"' in channel "+n),i=[a]}else e>=32&&e<=127&&(i=0===t?[e]:[e,t]);if(i){var o=ft(i);ht.log("DEBUG","Char codes =  "+o.join(",")),this.lastCmdA=null,this.lastCmdB=null}return i},e.prototype.parseBackgroundAttributes=function(e,t){var n,i=void 0,r=void 0;return((16===e||24===e)&&t>=32&&t<=47||(23===e||31===e)&&t>=45&&t<=47)&&(i={},16===e||24===e?(r=Math.floor((t-32)/2),i.background=dt[r],t%2==1&&(i.background=i.background+"_semi")):45===t?i.background="transparent":(i.foreground="black",47===t&&(i.underline=!0)),n=e<24?1:2,this.channels[n-1].setBkgData(i),this.lastCmdA=null,this.lastCmdB=null,!0)},e.prototype.reset=function(){for(var e=0;e<this.channels.length;e++)this.channels[e]&&this.channels[e].reset();this.lastCmdA=null,this.lastCmdB=null},e.prototype.cueSplitAtTime=function(e){for(var t=0;t<this.channels.length;t++)this.channels[t]&&this.channels[t].cueSplitAtTime(e)},e}();var _t=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.timelineController=t,this.trackName=n,this.startTime=null,this.endTime=null,this.screen=null}return e.prototype.dispatchCue=function(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen),this.startTime=null)},e.prototype.newCue=function(e,t,n){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=n,this.timelineController.createCaptionsTrack(this.trackName)},e}(),xt=function(e,t,n){return e.substr(n||0,t.length)===t},wt=function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return(t>>>0).toString()},St={parse:function(e,t,n,i,r,a){var o=Object(_e.b)(new Uint8Array(e)).trim().replace(/\r\n|\n\r|\n|\r/g,"\n").split("\n"),l="00:00.000",u=0,c=0,d=0,h=[],f=void 0,p=!0,m=new et;m.oncue=function(e){var t=n[i],r=n.ccOffset;t&&t.new&&(void 0!==c?r=n.ccOffset=t.start:function(e,t,n){var i=e[t],r=e[i.prevCC];if(!r||!r.new&&i.new)return e.ccOffset=e.presentationOffset=i.start,void(i.new=!1);for(;r&&r.new;)e.ccOffset+=i.start-r.start,i.new=!1,r=e[(i=r).prevCC];e.presentationOffset=n}(n,i,d)),d&&(r=d+n.ccOffset-n.presentationOffset),e.startTime+=r-c,e.endTime+=r-c,e.id=wt(e.startTime.toString())+wt(e.endTime.toString())+wt(e.text),e.text=decodeURIComponent(encodeURIComponent(e.text)),e.endTime>0&&h.push(e)},m.onparsingerror=function(e){f=e},m.onflush=function(){f&&a?a(f):r(h)},o.forEach(function(e){if(p){if(xt(e,"X-TIMESTAMP-MAP=")){p=!1,e.substr(16).split(",").forEach(function(e){xt(e,"LOCAL:")?l=e.substr(6):xt(e,"MPEGTS:")&&(u=parseInt(e.substr(7)))});try{u-=t=t<0?t+8589934592:t,n=l,i=parseInt(n.substr(-3)),r=parseInt(n.substr(-6,2)),a=parseInt(n.substr(-9,2)),o=n.length>9?parseInt(n.substr(0,n.indexOf(":"))):0,c=(Object(s.a)(i)&&Object(s.a)(r)&&Object(s.a)(a)&&Object(s.a)(o)?(i+=1e3*r,i+=6e4*a,i+=36e5*o):-1)/1e3,d=u/9e4,-1===c&&(f=new Error("Malformed X-TIMESTAMP-MAP: "+e))}catch(t){f=new Error("Malformed X-TIMESTAMP-MAP: "+e)}return}""===e&&(p=!1)}var n,i,r,a,o;m.parse(e+"\n")}),m.flush()}};var Ct=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHING,l.a.MEDIA_DETACHING,l.a.FRAG_PARSING_USERDATA,l.a.FRAG_DECRYPTED,l.a.MANIFEST_LOADING,l.a.MANIFEST_LOADED,l.a.FRAG_LOADED,l.a.LEVEL_SWITCHING,l.a.INIT_PTS_FOUND));if(i.hls=n,i.config=n.config,i.enabled=!0,i.Cues=n.config.cueHandler,i.textTracks=[],i.tracks=[],i.unparsedVttFrags=[],i.initPTS=void 0,i.cueRanges=[],i.captionsTracks={},i.captionsProperties={textTrack1:{label:i.config.captionsTextTrack1Label,languageCode:i.config.captionsTextTrack1LanguageCode},textTrack2:{label:i.config.captionsTextTrack2Label,languageCode:i.config.captionsTextTrack2LanguageCode}},i.config.enableCEA708Captions){var r=new _t(i,"textTrack1"),a=new _t(i,"textTrack2");i.cea608Parser=new bt(0,r,a)}return i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.addCues=function(e,t,n,i){for(var r,a,o,s,l=this.cueRanges,u=!1,c=l.length;c--;){var d=l[c],h=(r=d[0],a=d[1],o=t,s=n,Math.min(a,s)-Math.max(r,o));if(h>=0&&(d[0]=Math.min(d[0],t),d[1]=Math.max(d[1],n),u=!0,h/(n-t)>.5))return}u||l.push([t,n]),this.Cues.newCue(this.captionsTracks[e],t,n,i)},t.prototype.onInitPtsFound=function(e){var t=this;void 0===this.initPTS&&(this.initPTS=e.initPTS),this.unparsedVttFrags.length&&(this.unparsedVttFrags.forEach(function(e){t.onFragLoaded(e)}),this.unparsedVttFrags=[])},t.prototype.getExistingTrack=function(e){var t=this.media;if(t)for(var n=0;n<t.textTracks.length;n++){var i=t.textTracks[n];if(i[e])return i}return null},t.prototype.createCaptionsTrack=function(e){var t=this.captionsProperties[e],n=t.label,i=t.languageCode,r=this.captionsTracks;if(!r[e]){var a=this.getExistingTrack(e);if(a)r[e]=a,we(r[e]),xe(r[e],this.media);else{var o=this.createTextTrack("captions",n,i);o&&(o[e]=!0,r[e]=o)}}},t.prototype.createTextTrack=function(e,t,n){var i=this.media;if(i)return i.addTextTrack(e,t,n)},t.prototype.destroy=function(){h.prototype.destroy.call(this)},t.prototype.onMediaAttaching=function(e){this.media=e.media,this._cleanTracks()},t.prototype.onMediaDetaching=function(){var e=this.captionsTracks;Object.keys(e).forEach(function(t){we(e[t]),delete e[t]})},t.prototype.onManifestLoading=function(){this.lastSn=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0},this._cleanTracks()},t.prototype._cleanTracks=function(){var e=this.media;if(e){var t=e.textTracks;if(t)for(var n=0;n<t.length;n++)we(t[n])}},t.prototype.onManifestLoaded=function(e){var t=this;if(this.textTracks=[],this.unparsedVttFrags=this.unparsedVttFrags||[],this.initPTS=void 0,this.cueRanges=[],this.config.enableWebVTT){this.tracks=e.subtitles||[];var n=this.media?this.media.textTracks:[];this.tracks.forEach(function(e,i){var r=void 0;if(i<n.length){var a=n[i];(function(e,t){return e&&e.label===t.name&&!(e.textTrack1||e.textTrack2)})(a,e)&&(r=a)}r||(r=t.createTextTrack("subtitles",e.name,e.lang)),e.default?r.mode=t.hls.subtitleDisplay?"showing":"hidden":r.mode="disabled",t.textTracks.push(r)})}},t.prototype.onLevelSwitching=function(){this.enabled="NONE"!==this.hls.currentLevel.closedCaptions},t.prototype.onFragLoaded=function(e){var t=e.frag,n=e.payload;if("main"===t.type){var i=t.sn;if(i!==this.lastSn+1){var r=this.cea608Parser;r&&r.reset()}this.lastSn=i}else if("subtitle"===t.type)if(n.byteLength){if(void 0===this.initPTS)return void this.unparsedVttFrags.push(e);var a=t.decryptdata;null!=a&&null!=a.key&&"AES-128"===a.method||this._parseVTTs(t,n)}else this.hls.trigger(l.a.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:t})},t.prototype._parseVTTs=function(e,t){var n=this.vttCCs;n[e.cc]||(n[e.cc]={start:e.start,prevCC:this.prevCC,new:!0},this.prevCC=e.cc);var i=this.textTracks,r=this.hls;St.parse(t,this.initPTS,n,e.cc,function(t){var n=i[e.trackId];"disabled"!==n.mode?(t.forEach(function(e){if(!n.cues.getCueById(e.id))try{n.addCue(e)}catch(i){var t=new window.TextTrackCue(e.startTime,e.endTime,e.text);t.id=e.id,n.addCue(t)}}),r.trigger(l.a.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})):r.trigger(l.a.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e})},function(t){u.b.log("Failed to parse VTT cue: "+t),r.trigger(l.a.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e})})},t.prototype.onFragDecrypted=function(e){var t=e.payload,n=e.frag;if("subtitle"===n.type){if(void 0===this.initPTS)return void this.unparsedVttFrags.push(e);this._parseVTTs(n,t)}},t.prototype.onFragParsingUserdata=function(e){if(this.enabled&&this.config.enableCEA708Captions)for(var t=0;t<e.samples.length;t++){var n=this.extractCea608Data(e.samples[t].bytes);this.cea608Parser.addData(e.samples[t].pts,n)}},t.prototype.extractCea608Data=function(e){for(var t=31&e[0],n=2,i=void 0,r=void 0,a=void 0,o=[],s=0;s<t;s++)i=e[n++],r=127&e[n++],a=127&e[n++],0===r&&0===a||0!=(4&i)&&0===(3&i)&&(o.push(r),o.push(a));return o},t}(h),Mt=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();function kt(e){for(var t=[],n=0;n<e.length;n++)"subtitles"===e[n].kind&&t.push(e[n]);return t}var Tt=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHED,l.a.MEDIA_DETACHING,l.a.MANIFEST_LOADING,l.a.MANIFEST_LOADED,l.a.SUBTITLE_TRACK_LOADED));return i.tracks=[],i.trackId=-1,i.media=null,i.subtitleDisplay=!0,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype._onTextTracksChanged=function(){if(this.media){for(var e=-1,t=kt(this.media.textTracks),n=0;n<t.length;n++)if("hidden"===t[n].mode)e=n;else if("showing"===t[n].mode){e=n;break}this.subtitleTrack=e}},t.prototype.destroy=function(){h.prototype.destroy.call(this)},t.prototype.onMediaAttached=function(e){var t=this;this.media=e.media,this.media&&(this.queuedDefaultTrack&&(this.subtitleTrack=this.queuedDefaultTrack,delete this.queuedDefaultTrack),this.trackChangeListener=this._onTextTracksChanged.bind(this),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.subtitlePollingInterval=setInterval(function(){t.trackChangeListener()},500):this.media.textTracks.addEventListener("change",this.trackChangeListener))},t.prototype.onMediaDetaching=function(){this.media&&(this.useTextTrackPolling?clearInterval(this.subtitlePollingInterval):this.media.textTracks.removeEventListener("change",this.trackChangeListener),this.media=null)},t.prototype.onManifestLoading=function(){this.tracks=[],this.trackId=-1},t.prototype.onManifestLoaded=function(e){var t=this,n=e.subtitles||[];this.tracks=n,this.trackId=-1,this.hls.trigger(l.a.SUBTITLE_TRACKS_UPDATED,{subtitleTracks:n}),n.forEach(function(e){e.default&&(t.media?t.subtitleTrack=e.id:t.queuedDefaultTrack=e.id)})},t.prototype.onTick=function(){var e=this.trackId,t=this.tracks[e];if(t){var n=t.details;n&&!n.live||(u.b.log("(re)loading playlist for subtitle track "+e),this.hls.trigger(l.a.SUBTITLE_TRACK_LOADING,{url:t.url,id:e}))}},t.prototype.onSubtitleTrackLoaded=function(e){var t=this;e.id<this.tracks.length&&(u.b.log("subtitle track "+e.id+" loaded"),this.tracks[e.id].details=e.details,e.details.live&&!this.timer&&(this.timer=setInterval(function(){t.onTick()},1e3*e.details.targetduration,this)),!e.details.live&&this.timer&&this._stopTimer())},t.prototype.setSubtitleTrackInternal=function(e){var t=this.hls,n=this.tracks;if(!("number"!=typeof e||e<-1||e>=n.length)&&(this._stopTimer(),this.trackId=e,u.b.log("switching to subtitle track "+e),t.trigger(l.a.SUBTITLE_TRACK_SWITCH,{id:e}),-1!==e)){var i=n[e],r=i.details;r&&!r.live||(u.b.log("(re)loading playlist for subtitle track "+e),t.trigger(l.a.SUBTITLE_TRACK_LOADING,{url:i.url,id:e}))}},t.prototype._stopTimer=function(){this.timer&&(clearInterval(this.timer),this.timer=null)},t.prototype._toggleTrackModes=function(e){var t=this.media,n=this.subtitleDisplay,i=this.trackId;if(t){var r=kt(t.textTracks);if(-1===e)[].slice.call(r).forEach(function(e){e.mode="disabled"});else{var a=r[i];a&&(a.mode="disabled")}var o=r[e];o&&(o.mode=n?"showing":"hidden")}},Mt(t,[{key:"subtitleTracks",get:function(){return this.tracks}},{key:"subtitleTrack",get:function(){return this.trackId},set:function(e){this.trackId!==e&&(this._toggleTrackModes(e),this.setSubtitleTrackInternal(e))}}]),t}(h),At=n(8);var It=window.performance,Et={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING"},Dt=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHED,l.a.ERROR,l.a.KEY_LOADED,l.a.FRAG_LOADED,l.a.SUBTITLE_TRACKS_UPDATED,l.a.SUBTITLE_TRACK_SWITCH,l.a.SUBTITLE_TRACK_LOADED,l.a.SUBTITLE_FRAG_PROCESSED));return i.config=n.config,i.vttFragSNsProcessed={},i.vttFragQueues=void 0,i.currentlyProcessing=null,i.state=Et.STOPPED,i.currentTrackId=-1,i.decrypter=new At.a(n.observer,n.config),i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.onHandlerDestroyed=function(){this.state=Et.STOPPED},t.prototype.clearVttFragQueues=function(){var e=this;this.vttFragQueues={},this.tracks.forEach(function(t){e.vttFragQueues[t.id]=[]})},t.prototype.nextFrag=function(){if(null===this.currentlyProcessing&&this.currentTrackId>-1&&this.vttFragQueues[this.currentTrackId].length){var e=this.currentlyProcessing=this.vttFragQueues[this.currentTrackId].shift();this.fragCurrent=e,this.hls.trigger(l.a.FRAG_LOADING,{frag:e}),this.state=Et.FRAG_LOADING}},t.prototype.onSubtitleFragProcessed=function(e){e.success&&this.vttFragSNsProcessed[e.frag.trackId].push(e.frag.sn),this.currentlyProcessing=null,this.state=Et.IDLE,this.nextFrag()},t.prototype.onMediaAttached=function(){this.state=Et.IDLE},t.prototype.onError=function(e){var t=e.frag;t&&"subtitle"!==t.type||this.currentlyProcessing&&(this.currentlyProcessing=null,this.nextFrag())},t.prototype.doTick=function(){var e=this;switch(this.state){case Et.IDLE:var t,n=this.tracks,i=this.currentTrackId,r=this.vttFragSNsProcessed[i],a=this.vttFragQueues[i],o=this.currentlyProcessing?this.currentlyProcessing.sn:-1;if(!n)break;if(i<n.length&&(t=n[i].details),void 0===t)break;t.fragments.forEach(function(t){(function(e){return r.indexOf(e.sn)>-1})(t)||t.sn===o||function(e){return a.some(function(t){return t.sn===e.sn})}(t)||(t.encrypted?(u.b.log("Loading key for "+t.sn),e.state=Et.KEY_LOADING,e.hls.trigger(l.a.KEY_LOADING,{frag:t})):(t.trackId=i,a.push(t),e.nextFrag()))})}},t.prototype.onSubtitleTracksUpdated=function(e){var t=this;u.b.log("subtitle tracks updated"),this.tracks=e.subtitleTracks,this.clearVttFragQueues(),this.vttFragSNsProcessed={},this.tracks.forEach(function(e){t.vttFragSNsProcessed[e.id]=[]})},t.prototype.onSubtitleTrackSwitch=function(e){if(this.currentTrackId=e.id,this.tracks&&-1!==this.currentTrackId){var t=this.tracks[this.currentTrackId];t&&t.details&&this.tick()}},t.prototype.onSubtitleTrackLoaded=function(){this.tick()},t.prototype.onKeyLoaded=function(){this.state===Et.KEY_LOADING&&(this.state=Et.IDLE,this.tick())},t.prototype.onFragLoaded=function(e){var t=this.fragCurrent,n=e.frag.decryptdata,i=e.frag,r=this.hls;if(this.state===Et.FRAG_LOADING&&t&&"subtitle"===e.frag.type&&t.sn===e.frag.sn&&e.payload.byteLength>0&&null!=n&&null!=n.key&&"AES-128"===n.method){var a=void 0;try{a=It.now()}catch(e){a=Date.now()}this.decrypter.decrypt(e.payload,n.key.buffer,n.iv.buffer,function(e){var t=void 0;try{t=It.now()}catch(e){t=Date.now()}r.trigger(l.a.FRAG_DECRYPTED,{frag:i,payload:e,stats:{tstart:a,tdecrypt:t}})})}},t}(ue),Ot=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();var Pt=window.XMLHttpRequest,Lt="com.widevine.alpha",Rt="com.microsoft.playready",Nt=function(e){function t(n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,l.a.MEDIA_ATTACHED,l.a.MANIFEST_PARSED));return i._widevineLicenseUrl=n.config.widevineLicenseUrl,i._licenseXhrSetup=n.config.licenseXhrSetup,i._emeEnabled=n.config.emeEnabled,i._requestMediaKeySystemAccess=n.config.requestMediaKeySystemAccessFunc,i._mediaKeysList=[],i._media=null,i._hasSetMediaKeys=!1,i._isMediaEncrypted=!1,i._requestLicenseFailureCount=0,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getLicenseServerUrl=function(e){var t=void 0;switch(e){case Lt:t=this._widevineLicenseUrl;break;default:t=null}return t||(u.b.error('No license server URL configured for key-system "'+e+'"'),this.hls.trigger(l.a.ERROR,{type:o.b.KEY_SYSTEM_ERROR,details:o.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})),t},t.prototype._attemptKeySystemAccess=function(e,t,n){var i=this,r=function(e,t,n){switch(e){case Lt:return function(e,t,n){var i={videoCapabilities:[]};return t.forEach(function(e){i.videoCapabilities.push({contentType:'video/mp4; codecs="'+e+'"'})}),[i]}(0,n);default:throw Error("Unknown key-system: "+e)}}(e,0,n);r?(u.b.log("Requesting encrypted media key-system access"),this.requestMediaKeySystemAccess(e,r).then(function(t){i._onMediaKeySystemAccessObtained(e,t)}).catch(function(t){u.b.error('Failed to obtain key-system "'+e+'" access:',t)})):u.b.warn("Can not create config for key-system (maybe because platform is not supported):",e)},t.prototype._onMediaKeySystemAccessObtained=function(e,t){var n=this;u.b.log('Access for key-system "'+e+'" obtained');var i={mediaKeys:null,mediaKeysSession:null,mediaKeysSessionInitialized:!1,mediaKeySystemAccess:t,mediaKeySystemDomain:e};this._mediaKeysList.push(i),t.createMediaKeys().then(function(t){i.mediaKeys=t,u.b.log('Media-keys created for key-system "'+e+'"'),n._onMediaKeysCreated()}).catch(function(e){u.b.error("Failed to create media-keys:",e)})},t.prototype._onMediaKeysCreated=function(){var e=this;this._mediaKeysList.forEach(function(t){t.mediaKeysSession||(t.mediaKeysSession=t.mediaKeys.createSession(),e._onNewMediaKeySession(t.mediaKeysSession))})},t.prototype._onNewMediaKeySession=function(e){var t=this;u.b.log("New key-system session "+e.sessionId),e.addEventListener("message",function(n){t._onKeySessionMessage(e,n.message)},!1)},t.prototype._onKeySessionMessage=function(e,t){u.b.log("Got EME message event, creating license request"),this._requestLicense(t,function(t){u.b.log("Received license data, updating key-session"),e.update(t)})},t.prototype._onMediaEncrypted=function(e,t){u.b.log('Media is encrypted using "'+e+'" init data type'),this._isMediaEncrypted=!0,this._mediaEncryptionInitDataType=e,this._mediaEncryptionInitData=t,this._attemptSetMediaKeys(),this._generateRequestWithPreferredKeySession()},t.prototype._attemptSetMediaKeys=function(){if(!this._hasSetMediaKeys){var e=this._mediaKeysList[0];if(!e||!e.mediaKeys)return u.b.error("Fatal: Media is encrypted but no CDM access or no keys have been obtained yet"),void this.hls.trigger(l.a.ERROR,{type:o.b.KEY_SYSTEM_ERROR,details:o.a.KEY_SYSTEM_NO_KEYS,fatal:!0});u.b.log("Setting keys for encrypted media"),this._media.setMediaKeys(e.mediaKeys),this._hasSetMediaKeys=!0}},t.prototype._generateRequestWithPreferredKeySession=function(){var e=this,t=this._mediaKeysList[0];if(!t)return u.b.error("Fatal: Media is encrypted but not any key-system access has been obtained yet"),void this.hls.trigger(l.a.ERROR,{type:o.b.KEY_SYSTEM_ERROR,details:o.a.KEY_SYSTEM_NO_ACCESS,fatal:!0});if(t.mediaKeysSessionInitialized)u.b.warn("Key-Session already initialized but requested again");else{var n=t.mediaKeysSession;n||(u.b.error("Fatal: Media is encrypted but no key-session existing"),this.hls.trigger(l.a.ERROR,{type:o.b.KEY_SYSTEM_ERROR,details:o.a.KEY_SYSTEM_NO_SESSION,fatal:!0}));var i=this._mediaEncryptionInitDataType,r=this._mediaEncryptionInitData;u.b.log('Generating key-session request for "'+i+'" init data type'),t.mediaKeysSessionInitialized=!0,n.generateRequest(i,r).then(function(){u.b.debug("Key-session generation succeeded")}).catch(function(t){u.b.error("Error generating key-session request:",t),e.hls.trigger(l.a.ERROR,{type:o.b.KEY_SYSTEM_ERROR,details:o.a.KEY_SYSTEM_NO_SESSION,fatal:!1})})}},t.prototype._createLicenseXhr=function(e,t,n){var i=new Pt,r=this._licenseXhrSetup;try{if(r)try{r(i,e)}catch(t){i.open("POST",e,!0),r(i,e)}i.readyState||i.open("POST",e,!0)}catch(e){return u.b.error("Error setting up key-system license XHR",e),void this.hls.trigger(l.a.ERROR,{type:o.b.KEY_SYSTEM_ERROR,details:o.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})}return i.responseType="arraybuffer",i.onreadystatechange=this._onLicenseRequestReadyStageChange.bind(this,i,e,t,n),i},t.prototype._onLicenseRequestReadyStageChange=function(e,t,n,i){switch(e.readyState){case 4:if(200===e.status)this._requestLicenseFailureCount=0,u.b.log("License request succeeded"),i(e.response);else{if(u.b.error("License Request XHR failed ("+t+"). Status: "+e.status+" ("+e.statusText+")"),this._requestLicenseFailureCount++,this._requestLicenseFailureCount<=3){var r=3-this._requestLicenseFailureCount+1;return u.b.warn("Retrying license request, "+r+" attempts left"),void this._requestLicense(n,i)}this.hls.trigger(l.a.ERROR,{type:o.b.KEY_SYSTEM_ERROR,details:o.a.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0})}}},t.prototype._generateLicenseRequestChallenge=function(e,t){var n=void 0;return e.mediaKeySystemDomain===Rt?u.b.error("PlayReady is not supported (yet)"):e.mediaKeySystemDomain===Lt?n=t:u.b.error("Unsupported key-system:",e.mediaKeySystemDomain),n},t.prototype._requestLicense=function(e,t){u.b.log("Requesting content license for key-system");var n=this._mediaKeysList[0];if(!n)return u.b.error("Fatal error: Media is encrypted but no key-system access has been obtained yet"),void this.hls.trigger(l.a.ERROR,{type:o.b.KEY_SYSTEM_ERROR,details:o.a.KEY_SYSTEM_NO_ACCESS,fatal:!0});var i=this.getLicenseServerUrl(n.mediaKeySystemDomain),r=this._createLicenseXhr(i,e,t);u.b.log("Sending license request to URL: "+i),r.send(this._generateLicenseRequestChallenge(n,e))},t.prototype.onMediaAttached=function(e){var t=this;if(this._emeEnabled){var n=e.media;this._media=n,n.addEventListener("encrypted",function(e){t._onMediaEncrypted(e.initDataType,e.initData)})}},t.prototype.onManifestParsed=function(e){if(this._emeEnabled){var t=e.levels.map(function(e){return e.audioCodec}),n=e.levels.map(function(e){return e.videoCodec});this._attemptKeySystemAccess(Lt,t,n)}},Ot(t,[{key:"requestMediaKeySystemAccess",get:function(){if(!this._requestMediaKeySystemAccess)throw new Error("No requestMediaKeySystemAccess function configured");return this._requestMediaKeySystemAccess}}]),t}(h),Bt={autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,initialLiveManifestSize:1,maxBufferLength:30,maxBufferSize:6e7,maxBufferHole:.5,lowBufferWatchdogPeriod:.5,highBufferWatchdogPeriod:3,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,liveDurationInfinity:!1,maxMaxBufferLength:600,enableWorker:!0,enableSoftwareAES:!0,manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,startLevel:void 0,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:Fe,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,abrController:Ae,bufferController:Ee,capLevelController:Oe,fpsController:Le,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,requestMediaKeySystemAccessFunc:"undefined"!=typeof window&&window.navigator&&window.navigator.requestMediaKeySystemAccess?window.navigator.requestMediaKeySystemAccess.bind(window.navigator):null};Bt.subtitleStreamController=Dt,Bt.subtitleTrackController=Tt,Bt.timelineController=Ct,Bt.cueHandler=i,Bt.enableCEA708Captions=!0,Bt.enableWebVTT=!0,Bt.captionsTextTrack1Label="English",Bt.captionsTextTrack1LanguageCode="en",Bt.captionsTextTrack2Label="Spanish",Bt.captionsTextTrack2LanguageCode="es",Bt.audioStreamController=He,Bt.audioTrackController=Ve,Bt.emeController=Nt;var Ft=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();n(14);var zt=function(){function e(){var t=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e);var i=e.DefaultConfig;if((n.liveSyncDurationCount||n.liveMaxLatencyDurationCount)&&(n.liveSyncDuration||n.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");for(var r in i)r in n||(n[r]=i[r]);if(void 0!==n.liveMaxLatencyDurationCount&&n.liveMaxLatencyDurationCount<=n.liveSyncDurationCount)throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');if(void 0!==n.liveMaxLatencyDuration&&(n.liveMaxLatencyDuration<=n.liveSyncDuration||void 0===n.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be gt "liveSyncDuration"');Object(u.a)(n.debug),this.config=n,this._autoLevelCapping=-1;var a=this.observer=new K.a;a.trigger=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];a.emit.apply(a,[e,e].concat(n))},a.off=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];a.removeListener.apply(a,[e].concat(n))},this.on=a.on.bind(a),this.off=a.off.bind(a),this.once=a.once.bind(a),this.trigger=a.trigger.bind(a);var o=this.abrController=new n.abrController(this),s=new n.bufferController(this),l=new n.capLevelController(this),c=new n.fpsController(this),d=new N(this),h=new B(this),f=new F(this),p=new Se(this),m=this.levelController=new be(this),g=new j(this),v=[m,this.streamController=new me(this,g)],y=n.audioStreamController;y&&v.push(new y(this,g)),this.networkControllers=v;var b=[d,h,f,o,s,l,c,p,g];if(y=n.audioTrackController){var _=new y(this);this.audioTrackController=_,b.push(_)}if(y=n.subtitleTrackController){var x=new y(this);this.subtitleTrackController=x,b.push(x)}if(y=n.emeController){var w=new y(this);this.emeController=w,b.push(w)}[n.subtitleStreamController,n.timelineController].forEach(function(e){e&&b.push(new e(t))}),this.coreComponents=b}return e.isSupported=function(){return e=X(),t=window.SourceBuffer||window.WebKitSourceBuffer,n=e&&"function"==typeof e.isTypeSupported&&e.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),i=!t||t.prototype&&"function"==typeof t.prototype.appendBuffer&&"function"==typeof t.prototype.remove,!!n&&!!i;var e,t,n,i},Ft(e,null,[{key:"version",get:function(){return"0.11.0"}},{key:"Events",get:function(){return l.a}},{key:"ErrorTypes",get:function(){return o.b}},{key:"ErrorDetails",get:function(){return o.a}},{key:"DefaultConfig",get:function(){return e.defaultConfig?e.defaultConfig:Bt},set:function(t){e.defaultConfig=t}}]),e.prototype.destroy=function(){u.b.log("destroy"),this.trigger(l.a.DESTROYING),this.detachMedia(),this.coreComponents.concat(this.networkControllers).forEach(function(e){e.destroy()}),this.url=null,this.observer.removeAllListeners(),this._autoLevelCapping=-1},e.prototype.attachMedia=function(e){u.b.log("attachMedia"),this.media=e,this.trigger(l.a.MEDIA_ATTACHING,{media:e})},e.prototype.detachMedia=function(){u.b.log("detachMedia"),this.trigger(l.a.MEDIA_DETACHING),this.media=null},e.prototype.loadSource=function(e){e=a.a.buildAbsoluteURL(window.location.href,e,{alwaysNormalize:!0}),u.b.log("loadSource:"+e),this.url=e,this.trigger(l.a.MANIFEST_LOADING,{url:e})},e.prototype.startLoad=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;u.b.log("startLoad("+e+")"),this.networkControllers.forEach(function(t){t.startLoad(e)})},e.prototype.stopLoad=function(){u.b.log("stopLoad"),this.networkControllers.forEach(function(e){e.stopLoad()})},e.prototype.swapAudioCodec=function(){u.b.log("swapAudioCodec"),this.streamController.swapAudioCodec()},e.prototype.recoverMediaError=function(){u.b.log("recoverMediaError");var e=this.media;this.detachMedia(),this.attachMedia(e)},Ft(e,[{key:"levels",get:function(){return this.levelController.levels}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(e){u.b.log("set currentLevel:"+e),this.loadLevel=e,this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(e){u.b.log("set nextLevel:"+e),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(e){u.b.log("set loadLevel:"+e),this.levelController.manualLevel=e}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(e){this.levelController.nextLoadLevel=e}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)},set:function(e){u.b.log("set firstLevel:"+e),this.levelController.firstLevel=e}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(e){u.b.log("set startLevel:"+e);-1!==e&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(e){u.b.log("set autoLevelCapping:"+e),this._autoLevelCapping=e}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"minAutoLevel",get:function(){for(var e=this.levels,t=this.config.minAutoBitrate,n=e?e.length:0,i=0;i<n;i++){if((e[i].realBitrate?Math.max(e[i].realBitrate,e[i].bitrate):e[i].bitrate)>t)return i}return 0}},{key:"maxAutoLevel",get:function(){var e=this.levels,t=this.autoLevelCapping;return-1===t&&e&&e.length?e.length-1:t}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"liveSyncPosition",get:function(){return this.streamController.liveSyncPosition}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}}]),e}();t.default=zt},function(e,t,n){function i(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n.oe=function(e){throw console.error(e),e};var i=n(n.s=ENTRY_MODULE);return i.default||i}var r="[\\.|\\-|\\+|\\w|/|@]+",a="\\((/\\*.*?\\*/)?s?.*?("+r+").*?\\)";function o(e){return(e+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function s(e,t,i){var s={};s[i]=[];var l=t.toString(),u=l.match(/^function\s?\(\w+,\s*\w+,\s*(\w+)\)/);if(!u)return s;for(var c,d=u[1],h=new RegExp("(\\\\n|\\W)"+o(d)+a,"g");c=h.exec(l);)"dll-reference"!==c[3]&&s[i].push(c[3]);for(h=new RegExp("\\("+o(d)+'\\("(dll-reference\\s('+r+'))"\\)\\)'+a,"g");c=h.exec(l);)e[c[2]]||(s[i].push(c[1]),e[c[2]]=n(c[1]).m),s[c[2]]=s[c[2]]||[],s[c[2]].push(c[4]);return s}function l(e){return Object.keys(e).reduce(function(t,n){return t||e[n].length>0},!1)}e.exports=function(e,t){t=t||{};var r={main:n.m},a=t.all?{main:Object.keys(r)}:function(e,t){for(var n={main:[t]},i={main:[]},r={main:{}};l(n);)for(var a=Object.keys(n),o=0;o<a.length;o++){var u=a[o],c=n[u].pop();if(r[u]=r[u]||{},!r[u][c]&&e[u][c]){r[u][c]=!0,i[u]=i[u]||[],i[u].push(c);for(var d=s(e,e[u][c],u),h=Object.keys(d),f=0;f<h.length;f++)n[h[f]]=n[h[f]]||[],n[h[f]]=n[h[f]].concat(d[h[f]])}}return i}(r,e),o="";Object.keys(a).filter(function(e){return"main"!==e}).forEach(function(e){for(var t=0;a[e][t];)t++;a[e].push(t),r[e][t]="(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })",o=o+"var "+e+" = ("+i.toString().replace("ENTRY_MODULE",JSON.stringify(t))+")({"+a[e].map(function(t){return JSON.stringify(t)+": "+r[e][t].toString()}).join(",")+"});\n"}),o=o+"("+i.toString().replace("ENTRY_MODULE",JSON.stringify(e))+")({"+a.main.map(function(e){return JSON.stringify(e)+": "+r.main[e].toString()}).join(",")+"})(self);";var u=new window.Blob([o],{type:"text/javascript"});if(t.bare)return u;var c=(window.URL||window.webkitURL||window.mozURL||window.msURL).createObjectURL(u),d=new window.Worker(c);return d.objectURL=c,d}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(10),r=n(1),a=n(0),o=n(7),s=n.n(o);t.default=function(e){var t=new s.a;t.trigger=function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];t.emit.apply(t,[e,e].concat(i))},t.off=function(e){for(var n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];t.removeListener.apply(t,[e].concat(i))};var n=function(t,n){e.postMessage({event:t,data:n})};e.addEventListener("message",function(r){var o=r.data;switch(o.cmd){case"init":var s=JSON.parse(o.config);e.demuxer=new i.a(t,o.typeSupported,s,o.vendor);try{Object(a.a)(!0===s.debug)}catch(e){console.warn("demuxerWorker: unable to enable logs")}n("init",null);break;case"demux":e.demuxer.push(o.data,o.decryptdata,o.initSegment,o.audioCodec,o.videoCodec,o.timeOffset,o.discontinuity,o.trackSwitch,o.contiguous,o.duration,o.accurateTimeOffset,o.defaultInitPTS)}}),t.on(r.a.FRAG_DECRYPTED,n),t.on(r.a.FRAG_PARSING_INIT_SEGMENT,n),t.on(r.a.FRAG_PARSED,n),t.on(r.a.ERROR,n),t.on(r.a.FRAG_PARSING_METADATA,n),t.on(r.a.FRAG_PARSING_USERDATA,n),t.on(r.a.INIT_PTS_FOUND,n),t.on(r.a.FRAG_PARSING_DATA,function(t,n){var i=[],r={event:t,data:n};n.data1&&(r.data1=n.data1.buffer,i.push(n.data1.buffer),delete n.data1),n.data2&&(r.data2=n.data2.buffer,i.push(n.data2.buffer),delete n.data2),e.postMessage(r,i)})}},function(e,t){
-/*! http://mths.be/endswith v0.2.0 by @mathias */
-String.prototype.endsWith||function(){"use strict";var e=function(){try{var e={},t=Object.defineProperty,n=t(e,e,e)&&t}catch(e){}return n}(),t={}.toString,n=function(e){if(null==this)throw TypeError();var n=String(this);if(e&&"[object RegExp]"==t.call(e))throw TypeError();var i=n.length,r=String(e),a=r.length,o=i;if(arguments.length>1){var s=arguments[1];void 0!==s&&(o=s?Number(s):0)!=o&&(o=0)}var l=Math.min(Math.max(o,0),i)-a;if(l<0)return!1;for(var u=-1;++u<a;)if(n.charCodeAt(l+u)!=r.charCodeAt(u))return!1;return!0};e?e(String.prototype,"endsWith",{value:n,configurable:!0,writable:!0}):String.prototype.endsWith=n}()}]).default},e.exports=i())},"1oKu":function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("Vus3"),o=n("eZJ0"),s=n("A1Wz"),l=n("aVg8"),u=["axisLine","axisTickLabel","axisName"],c=i.extendComponentView({type:"parallelAxis",init:function(e,t){c.superApply(this,"init",arguments),(this._brushController=new o(t.getZr())).on("brush",r.bind(this._onBrush,this))},render:function(e,t,n,i){if(!function(e,t,n){return n&&"axisAreaSelect"===n.type&&t.findComponents({mainType:"parallelAxis",query:n})[0]===e}(e,t,i)){this.axisModel=e,this.api=n,this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new l.Group,this.group.add(this._axisGroup),e.get("show")){var s=function(e,t){return t.getComponent("parallel",e.get("parallelIndex"))}(e,t),c=s.coordinateSystem,d=e.getAreaSelectStyle(),h=d.width,f=e.axis.dim,p=c.getAxisLayout(f),m=r.extend({strokeContainThreshold:h},p),g=new a(e,m);r.each(u,g.add,g),this._axisGroup.add(g.getGroup()),this._refreshBrushController(m,d,e,s,h,n);var v=i&&!1===i.animation?null:e;l.groupTransition(o,this._axisGroup,v)}}},_refreshBrushController:function(e,t,n,i,a,o){var u=n.axis.getExtent(),c=u[1]-u[0],d=Math.min(30,.1*Math.abs(c)),h=l.BoundingRect.create({x:u[0],y:-a/2,width:c,height:a});h.x-=d,h.width+=2*d,this._brushController.mount({enableGlobalPan:!0,rotation:e.rotation,position:e.position}).setPanels([{panelId:"pl",clipPath:s.makeRectPanelClipPath(h),isTargetByCursor:s.makeRectIsTargetByCursor(h,o,i),getLinearBrushOtherExtent:s.makeLinearBrushOtherExtent(h,0)}]).enableBrush({brushType:"lineX",brushStyle:t,removeOnClick:!0}).updateCovers(function(e){var t=e.axis;return r.map(e.activeIntervals,function(e){return{brushType:"lineX",panelId:"pl",range:[t.dataToCoord(e[0],!0),t.dataToCoord(e[1],!0)]}})}(n))},_onBrush:function(e,t){var n=this.axisModel,i=n.axis,a=r.map(e,function(e){return[i.coordToData(e.range[0],!0),i.coordToData(e.range[1],!0)]});(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:a})},dispose:function(){this._brushController.dispose()}});var d=c;e.exports=d},"1y9Q":function(e,t,n){var i=n("GKMz"),r=n("5ON6"),a=n("5gvs"),o=n("O7BF"),s=n("aVg8"),l=n("abCA"),u=n("MP34"),c=n("wOHm"),d=n("vqvJ"),h=l.linearMap,f=i.each,p=Math.min,m=Math.max,g=12,v=6,y=o.extend({type:"visualMap.continuous",init:function(){y.superApply(this,"init",arguments),this._shapes={},this._dataInterval=[],this._handleEnds=[],this._orient,this._useHandle,this._hoverLinkDataIndices=[],this._dragging,this._hovering},doRender:function(e,t,n,i){i&&"selectDataRange"===i.type&&i.from===this.uid||this._buildView()},_buildView:function(){this.group.removeAll();var e=this.visualMapModel,t=this.group;this._orient=e.get("orient"),this._useHandle=e.get("calculable"),this._resetInterval(),this._renderBar(t);var n=e.get("text");this._renderEndsText(t,n,0),this._renderEndsText(t,n,1),this._updateView(!0),this.renderBackground(t),this._updateView(),this._enableHoverLinkToSeries(),this._enableHoverLinkFromSeries(),this.positionGroup(t)},_renderEndsText:function(e,t,n){if(t){var i=t[1-n];i=null!=i?i+"":"";var r=this.visualMapModel,a=r.get("textGap"),o=r.itemSize,l=this._shapes.barGroup,u=this._applyTransform([o[0]/2,0===n?-a:o[1]+a],l),c=this._applyTransform(0===n?"bottom":"top",l),d=this._orient,h=this.visualMapModel.textStyleModel;this.group.add(new s.Text({style:{x:u[0],y:u[1],textVerticalAlign:"horizontal"===d?"middle":c,textAlign:"horizontal"===d?c:"center",text:i,textFont:h.getFont(),textFill:h.getTextColor()}}))}},_renderBar:function(e){var t=this.visualMapModel,n=this._shapes,r=t.itemSize,a=this._orient,o=this._useHandle,s=c.getItemAlign(t,this.api,r),l=n.barGroup=this._createBarGroup(s);l.add(n.outOfRange=b()),l.add(n.inRange=b(null,o?x(this._orient):null,i.bind(this._dragHandle,this,"all",!1),i.bind(this._dragHandle,this,"all",!0)));var u=t.textStyleModel.getTextRect("鍥�"),d=m(u.width,u.height);o&&(n.handleThumbs=[],n.handleLabels=[],n.handleLabelPoints=[],this._createHandle(l,0,r,d,a,s),this._createHandle(l,1,r,d,a,s)),this._createIndicator(l,r,d,a),e.add(l)},_createHandle:function(e,t,n,r,o){var l=i.bind(this._dragHandle,this,t,!1),u=i.bind(this._dragHandle,this,t,!0),c=b(function(e,t){return 0===e?[[0,0],[t,0],[t,-t]]:[[0,0],[t,0],[t,t]]}(t,r),x(this._orient),l,u);c.position[0]=n[0],e.add(c);var d=this.visualMapModel.textStyleModel,h=new s.Text({draggable:!0,drift:l,onmousemove:function(e){a.stop(e.event)},ondragend:u,style:{x:0,y:0,text:"",textFont:d.getFont(),textFill:d.getTextColor()}});this.group.add(h);var f=["horizontal"===o?r/2:1.5*r,"horizontal"===o?0===t?-1.5*r:1.5*r:0===t?-r/2:r/2],p=this._shapes;p.handleThumbs[t]=c,p.handleLabelPoints[t]=f,p.handleLabels[t]=h},_createIndicator:function(e,t,n,i){var r=b([[0,0]],"move");r.position[0]=t[0],r.attr({invisible:!0,silent:!0}),e.add(r);var a=this.visualMapModel.textStyleModel,o=new s.Text({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textFont:a.getFont(),textFill:a.getTextColor()}});this.group.add(o);var l=["horizontal"===i?n/2:v+3,0],u=this._shapes;u.indicator=r,u.indicatorLabel=o,u.indicatorLabelPoint=l},_dragHandle:function(e,t,n,i){if(this._useHandle){if(this._dragging=!t,!t){var r=this._applyTransform([n,i],this._shapes.barGroup,!0);this._updateInterval(e,r[1]),this._updateView()}t===!this.visualMapModel.get("realtime")&&this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:this._dataInterval.slice()}),t?!this._hovering&&this._clearHoverLinkToSeries():_(this.visualMapModel)&&this._doHoverLinkToSeries(this._handleEnds[e],!1)}},_resetInterval:function(){var e=this.visualMapModel,t=this._dataInterval=e.getSelected(),n=e.getExtent(),i=[0,e.itemSize[1]];this._handleEnds=[h(t[0],n,i,!0),h(t[1],n,i,!0)]},_updateInterval:function(e,t){t=t||0;var n=this.visualMapModel,i=this._handleEnds,r=[0,n.itemSize[1]];u(t,i,r,e,0);var a=n.getExtent();this._dataInterval=[h(i[0],r,a,!0),h(i[1],r,a,!0)]},_updateView:function(e){var t=this.visualMapModel,n=t.getExtent(),i=this._shapes,r=[0,t.itemSize[1]],a=e?r:this._handleEnds,o=this._createBarVisual(this._dataInterval,n,a,"inRange"),s=this._createBarVisual(n,n,r,"outOfRange");i.inRange.setStyle({fill:o.barColor,opacity:o.opacity}).setShape("points",o.barPoints),i.outOfRange.setStyle({fill:s.barColor,opacity:s.opacity}).setShape("points",s.barPoints),this._updateHandle(a,o)},_createBarVisual:function(e,t,n,i){var a={forceState:i,convertOpacityToAlpha:!0},o=this._makeColorGradient(e,a),s=[this.getControllerVisual(e[0],"symbolSize",a),this.getControllerVisual(e[1],"symbolSize",a)],l=this._createBarPoints(n,s);return{barColor:new r(0,0,0,1,o),barPoints:l,handlesColor:[o[0].color,o[o.length-1].color]}},_makeColorGradient:function(e,t){var n=[],i=(e[1]-e[0])/100;n.push({color:this.getControllerVisual(e[0],"color",t),offset:0});for(var r=1;r<100;r++){var a=e[0]+i*r;if(a>e[1])break;n.push({color:this.getControllerVisual(a,"color",t),offset:r/100})}return n.push({color:this.getControllerVisual(e[1],"color",t),offset:1}),n},_createBarPoints:function(e,t){var n=this.visualMapModel.itemSize;return[[n[0]-t[0],e[0]],[n[0],e[0]],[n[0],e[1]],[n[0]-t[1],e[1]]]},_createBarGroup:function(e){var t=this._orient,n=this.visualMapModel.get("inverse");return new s.Group("horizontal"!==t||n?"horizontal"===t&&n?{scale:"bottom"===e?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==t||n?{scale:"left"===e?[1,1]:[-1,1]}:{scale:"left"===e?[1,-1]:[-1,-1]}:{scale:"bottom"===e?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(e,t){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,a=n.handleLabels;f([0,1],function(o){var l=r[o];l.setStyle("fill",t.handlesColor[o]),l.position[1]=e[o];var u=s.applyTransform(n.handleLabelPoints[o],s.getTransform(l,this.group));a[o].setStyle({x:u[0],y:u[1],text:i.formatValueText(this._dataInterval[o]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===o?"bottom":"top":"left",n.barGroup)})},this)}},_showIndicator:function(e,t,n,i){var r=this.visualMapModel,a=r.getExtent(),o=r.itemSize,l=[0,o[1]],u=h(e,a,l,!0),c=this._shapes,d=c.indicator;if(d){d.position[1]=u,d.attr("invisible",!1),d.setShape("points",function(e,t,n,i){return e?[[0,-p(t,m(n,0))],[v,0],[0,p(t,m(i-n,0))]]:[[0,0],[5,-5],[5,5]]}(!!n,i,u,o[1]));var f=this.getControllerVisual(e,"color",{convertOpacityToAlpha:!0});d.setStyle("fill",f);var g=s.applyTransform(c.indicatorLabelPoint,s.getTransform(d,this.group)),y=c.indicatorLabel;y.attr("invisible",!1);var b=this._applyTransform("left",c.barGroup),_=this._orient;y.setStyle({text:(n||"")+r.formatValueText(t),textVerticalAlign:"horizontal"===_?b:"middle",textAlign:"horizontal"===_?"center":b,x:g[0],y:g[1]})}},_enableHoverLinkToSeries:function(){var e=this;this._shapes.barGroup.on("mousemove",function(t){if(e._hovering=!0,!e._dragging){var n=e.visualMapModel.itemSize,i=e._applyTransform([t.offsetX,t.offsetY],e._shapes.barGroup,!0,!0);i[1]=p(m(0,i[1]),n[1]),e._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=n[0])}}).on("mouseout",function(){e._hovering=!1,!e._dragging&&e._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var e=this.api.getZr();this.visualMapModel.option.hoverLink?(e.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),e.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(e,t){var n=this.visualMapModel,i=n.itemSize;if(n.option.hoverLink){var r=[0,i[1]],a=n.getExtent();e=p(m(r[0],e),r[1]);var o=function(e,t,n){var i=g/2,r=e.get("hoverLinkDataSize");r&&(i=h(r,t,n,!0)/2);return i}(n,a,r),s=[e-o,e+o],l=h(e,r,a,!0),u=[h(s[0],r,a,!0),h(s[1],r,a,!0)];s[0]<r[0]&&(u[0]=-1/0),s[1]>r[1]&&(u[1]=1/0),t&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",o):u[1]===1/0?this._showIndicator(l,u[0],"> ",o):this._showIndicator(l,l,"鈮� ",o));var f=this._hoverLinkDataIndices,v=[];(t||_(n))&&(v=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var y=d.compressBatches(f,v);this._dispatchHighDown("downplay",c.convertDataIndex(y[0])),this._dispatchHighDown("highlight",c.convertDataIndex(y[1]))}},_hoverLinkFromSeriesMouseOver:function(e){var t=e.target,n=this.visualMapModel;if(t&&null!=t.dataIndex){var i=this.ecModel.getSeriesByIndex(t.seriesIndex);if(n.isTargetSeries(i)){var r=i.getData(t.dataType),a=r.get(n.getDataDimension(r),t.dataIndex,!0);isNaN(a)||this._showIndicator(a,a)}}},_hideIndicator:function(){var e=this._shapes;e.indicator&&e.indicator.attr("invisible",!0),e.indicatorLabel&&e.indicatorLabel.attr("invisible",!0)},_clearHoverLinkToSeries:function(){this._hideIndicator();var e=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",c.convertDataIndex(e)),e.length=0},_clearHoverLinkFromSeries:function(){this._hideIndicator();var e=this.api.getZr();e.off("mouseover",this._hoverLinkFromSeriesMouseOver),e.off("mouseout",this._hideIndicator)},_applyTransform:function(e,t,n,r){var a=s.getTransform(t,r?null:this.group);return s[i.isArray(e)?"applyTransform":"transformDirection"](e,a,n)},_dispatchHighDown:function(e,t){t&&t.length&&this.api.dispatchAction({type:e,batch:t})},dispose:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},remove:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()}});function b(e,t,n,i){return new s.Polygon({shape:{points:e},draggable:!!n,cursor:t,drift:n,onmousemove:function(e){a.stop(e.event)},ondragend:i})}function _(e){var t=e.get("hoverLinkOnHandle");return!!(null==t?e.get("realtime"):t)}function x(e){return"vertical"===e?"ns-resize":"ew-resize"}var w=y;e.exports=w},"21V2":function(e,t,n){var i=n("GKMz"),r=n("erEb"),a=n("5gvs"),o=n("83dT");function s(e){this.pointerChecker,this._zr=e,this._opt={};var t=i.bind,n=t(l,this),a=t(u,this),o=t(c,this),s=t(d,this),f=t(h,this);r.call(this),this.setPointerChecker=function(e){this.pointerChecker=e},this.enable=function(t,r){this.disable(),this._opt=i.defaults(i.clone(r)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(e.on("mousedown",n),e.on("mousemove",a),e.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(e.on("mousewheel",s),e.on("pinch",f))},this.disable=function(){e.off("mousedown",n),e.off("mousemove",a),e.off("mouseup",o),e.off("mousewheel",s),e.off("pinch",f)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function l(e){if(!(a.notLeftMouse(e)||e.target&&e.target.draggable)){var t=e.offsetX,n=e.offsetY;this.pointerChecker&&this.pointerChecker(e,t,n)&&(this._x=t,this._y=n,this._dragging=!0)}}function u(e){if(!a.notLeftMouse(e)&&p(this,"moveOnMouseMove",e)&&this._dragging&&"pinch"!==e.gestureEvent&&!o.isTaken(this._zr,"globalPan")){var t=e.offsetX,n=e.offsetY,i=this._x,r=this._y,s=t-i,l=n-r;this._x=t,this._y=n,this._opt.preventDefaultMouseMove&&a.stop(e.event),this.trigger("pan",s,l,i,r,t,n)}}function c(e){a.notLeftMouse(e)||(this._dragging=!1)}function d(e){if(p(this,"zoomOnMouseWheel",e)&&0!==e.wheelDelta){var t=e.wheelDelta>0?1.1:1/1.1;f.call(this,e,t,e.offsetX,e.offsetY)}}function h(e){if(!o.isTaken(this._zr,"globalPan")){var t=e.pinchScale>1?1.1:1/1.1;f.call(this,e,t,e.pinchX,e.pinchY)}}function f(e,t,n,i){this.pointerChecker&&this.pointerChecker(e,n,i)&&(a.stop(e.event),this.trigger("zoom",t,n,i))}function p(e,t,n){var r=e._opt[t];return r&&(!i.isString(r)||n.event[r+"Key"])}i.mixin(s,r);var m=s;e.exports=m},"21Wg":function(e,t,n){"use strict";var i;!function(r){var a={},o=/d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,s=/\d\d?/,l=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,u=function(){};function c(e,t){for(var n=[],i=0,r=e.length;i<r;i++)n.push(e[i].substr(0,t));return n}function d(e){return function(t,n,i){var r=i[e].indexOf(n.charAt(0).toUpperCase()+n.substr(1).toLowerCase());~r&&(t.month=r)}}function h(e,t){for(e=String(e),t=t||2;e.length<t;)e="0"+e;return e}var f=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],p=["January","February","March","April","May","June","July","August","September","October","November","December"],m=c(p,3),g=c(f,3);a.i18n={dayNamesShort:g,dayNames:f,monthNamesShort:m,monthNames:p,amPm:["am","pm"],DoFn:function(e){return e+["th","st","nd","rd"][e%10>3?0:(e-e%10!=10)*e%10]}};var v={D:function(e){return e.getDay()},DD:function(e){return h(e.getDay())},Do:function(e,t){return t.DoFn(e.getDate())},d:function(e){return e.getDate()},dd:function(e){return h(e.getDate())},ddd:function(e,t){return t.dayNamesShort[e.getDay()]},dddd:function(e,t){return t.dayNames[e.getDay()]},M:function(e){return e.getMonth()+1},MM:function(e){return h(e.getMonth()+1)},MMM:function(e,t){return t.monthNamesShort[e.getMonth()]},MMMM:function(e,t){return t.monthNames[e.getMonth()]},yy:function(e){return String(e.getFullYear()).substr(2)},yyyy:function(e){return e.getFullYear()},h:function(e){return e.getHours()%12||12},hh:function(e){return h(e.getHours()%12||12)},H:function(e){return e.getHours()},HH:function(e){return h(e.getHours())},m:function(e){return e.getMinutes()},mm:function(e){return h(e.getMinutes())},s:function(e){return e.getSeconds()},ss:function(e){return h(e.getSeconds())},S:function(e){return Math.round(e.getMilliseconds()/100)},SS:function(e){return h(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return h(e.getMilliseconds(),3)},a:function(e,t){return e.getHours()<12?t.amPm[0]:t.amPm[1]},A:function(e,t){return e.getHours()<12?t.amPm[0].toUpperCase():t.amPm[1].toUpperCase()},ZZ:function(e){var t=e.getTimezoneOffset();return(t>0?"-":"+")+h(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4)}},y={d:[s,function(e,t){e.day=t}],M:[s,function(e,t){e.month=t-1}],yy:[s,function(e,t){var n=+(""+(new Date).getFullYear()).substr(0,2);e.year=""+(t>68?n-1:n)+t}],h:[s,function(e,t){e.hour=t}],m:[s,function(e,t){e.minute=t}],s:[s,function(e,t){e.second=t}],yyyy:[/\d{4}/,function(e,t){e.year=t}],S:[/\d/,function(e,t){e.millisecond=100*t}],SS:[/\d{2}/,function(e,t){e.millisecond=10*t}],SSS:[/\d{3}/,function(e,t){e.millisecond=t}],D:[s,u],ddd:[l,u],MMM:[l,d("monthNamesShort")],MMMM:[l,d("monthNames")],a:[l,function(e,t,n){var i=t.toLowerCase();i===n.amPm[0]?e.isPm=!1:i===n.amPm[1]&&(e.isPm=!0)}],ZZ:[/[\+\-]\d\d:?\d\d/,function(e,t){var n,i=(t+"").match(/([\+\-]|\d\d)/gi);i&&(n=60*i[1]+parseInt(i[2],10),e.timezoneOffset="+"===i[0]?n:-n)}]};y.DD=y.D,y.dddd=y.ddd,y.Do=y.dd=y.d,y.mm=y.m,y.hh=y.H=y.HH=y.h,y.MM=y.M,y.ss=y.s,y.A=y.a,a.masks={default:"ddd MMM dd yyyy HH:mm:ss",shortDate:"M/D/yy",mediumDate:"MMM d, yyyy",longDate:"MMMM d, yyyy",fullDate:"dddd, MMMM d, yyyy",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},a.format=function(e,t,n){var i=n||a.i18n;if("number"==typeof e&&(e=new Date(e)),"[object Date]"!==Object.prototype.toString.call(e)||isNaN(e.getTime()))throw new Error("Invalid Date in fecha.format");return(t=a.masks[t]||t||a.masks.default).replace(o,function(t){return t in v?v[t](e,i):t.slice(1,t.length-1)})},a.parse=function(e,t,n){var i=n||a.i18n;if("string"!=typeof t)throw new Error("Invalid format in fecha.parse");if(t=a.masks[t]||t,e.length>1e3)return!1;var r=!0,s={};if(t.replace(o,function(t){if(y[t]){var n=y[t],a=e.search(n[0]);~a?e.replace(n[0],function(t){return n[1](s,t,i),e=e.substr(a+t.length),t}):r=!1}return y[t]?"":t.slice(1,t.length-1)}),!r)return!1;var l,u=new Date;return!0===s.isPm&&null!=s.hour&&12!=+s.hour?s.hour=+s.hour+12:!1===s.isPm&&12==+s.hour&&(s.hour=0),null!=s.timezoneOffset?(s.minute=+(s.minute||0)-+s.timezoneOffset,l=new Date(Date.UTC(s.year||u.getFullYear(),s.month||0,s.day||1,s.hour||0,s.minute||0,s.second||0,s.millisecond||0))):l=new Date(s.year||u.getFullYear(),s.month||0,s.day||1,s.hour||0,s.minute||0,s.second||0,s.millisecond||0),l},void 0!==e&&e.exports?e.exports=a:void 0===(i=function(){return a}.call(t,n,t,e))||(e.exports=i)}()},"221d":function(e,t){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=299)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},299:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(300),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},300:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(301),r=n.n(i),a=n(302),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},301:function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElProgress",props:{type:{type:String,default:"line",validator:function(e){return["line","circle"].indexOf(e)>-1}},percentage:{type:Number,default:0,required:!0,validator:function(e){return e>=0&&e<=100}},status:{type:String},strokeWidth:{type:Number,default:6},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:String,default:""}},computed:{barStyle:function(){var e={};return e.width=this.percentage+"%",e.backgroundColor=this.color,e},relativeStrokeWidth:function(){return(this.strokeWidth/this.width*100).toFixed(1)},trackPath:function(){var e=parseInt(50-parseFloat(this.relativeStrokeWidth)/2,10);return"M 50 50 m 0 -"+e+" a "+e+" "+e+" 0 1 1 0 "+2*e+" a "+e+" "+e+" 0 1 1 0 -"+2*e},perimeter:function(){var e=50-parseFloat(this.relativeStrokeWidth)/2;return 2*Math.PI*e},circlePathStyle:function(){var e=this.perimeter;return{strokeDasharray:e+"px,"+e+"px",strokeDashoffset:(1-this.percentage/100)*e+"px",transition:"stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease"}},stroke:function(){var e=void 0;if(this.color)e=this.color;else switch(this.status){case"success":e="#13ce66";break;case"exception":e="#ff4949";break;default:e="#20a0ff"}return e},iconClass:function(){return"line"===this.type?"success"===this.status?"el-icon-circle-check":"el-icon-circle-close":"success"===this.status?"el-icon-check":"el-icon-close"},progressTextSize:function(){return"line"===this.type?12+.4*this.strokeWidth:.111111*this.width+2}}}},302:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-progress",class:["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}],attrs:{role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"}},["line"===e.type?n("div",{staticClass:"el-progress-bar"},[n("div",{staticClass:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[n("div",{staticClass:"el-progress-bar__inner",style:e.barStyle},[e.showText&&e.textInside?n("div",{staticClass:"el-progress-bar__innerText"},[e._v(e._s(e.percentage)+"%")]):e._e()])])]):n("div",{staticClass:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[n("svg",{attrs:{viewBox:"0 0 100 100"}},[n("path",{staticClass:"el-progress-circle__track",attrs:{d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none"}}),n("path",{staticClass:"el-progress-circle__path",style:e.circlePathStyle,attrs:{d:e.trackPath,"stroke-linecap":"round",stroke:e.stroke,"stroke-width":e.relativeStrokeWidth,fill:"none"}})])]),e.showText&&!e.textInside?n("div",{staticClass:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[e.status?n("i",{class:e.iconClass}):[e._v(e._s(e.percentage)+"%")]],2):e._e()])},staticRenderFns:[]};t.a=i}})},"242d":function(e,t){var n="\0__throttleOriginMethod",i="\0__throttleRate",r="\0__throttleType";function a(e,t,n){var i,r,a,o,s,l=0,u=0,c=null;function d(){u=(new Date).getTime(),c=null,e.apply(a,o||[])}t=t||0;var h=function(){i=(new Date).getTime(),a=this,o=arguments;var e=s||t,h=s||n;s=null,r=i-(h?l:u)-e,clearTimeout(c),h?c=setTimeout(d,e):r>=0?d():c=setTimeout(d,-r),l=i};return h.clear=function(){c&&(clearTimeout(c),c=null)},h.debounceNextCall=function(e){s=e},h}t.throttle=a,t.createOrUpdate=function(e,t,o,s){var l=e[t];if(l){var u=l[n]||l,c=l[r];if(l[i]!==o||c!==s){if(null==o||!s)return e[t]=u;(l=e[t]=a(u,o,"debounce"===s))[n]=u,l[r]=s,l[i]=o}return l}},t.clear=function(e,t){var i=e[t];i&&i[n]&&(e[t]=i[n])}},2605:function(e,t,n){var i=n("GKMz");e.exports=function(e){e&&i.isArray(e.series)&&i.each(e.series,function(e){i.isObject(e)&&"k"===e.type&&(e.type="candlestick")})}},"276n":function(e,t,n){var i=n("w2U8");function r(e){this._target=e.target,this._life=e.life||1e3,this._delay=e.delay||0,this._initialized=!1,this.loop=null!=e.loop&&e.loop,this.gap=e.gap||0,this.easing=e.easing||"Linear",this.onframe=e.onframe,this.ondestroy=e.ondestroy,this.onrestart=e.onrestart,this._pausedTime=0,this._paused=!1}r.prototype={constructor:r,step:function(e,t){if(this._initialized||(this._startTime=e+this._delay,this._initialized=!0),this._paused)this._pausedTime+=t;else{var n=(e-this._startTime-this._pausedTime)/this._life;if(!(n<0)){n=Math.min(n,1);var r=this.easing,a="string"==typeof r?i[r]:r,o="function"==typeof a?a(n):n;return this.fire("frame",o),1==n?this.loop?(this.restart(e),"restart"):(this._needsRemove=!0,"destroy"):null}}},restart:function(e){var t=(e-this._startTime-this._pausedTime)%this._life;this._startTime=e-t+this.gap,this._pausedTime=0,this._needsRemove=!1},fire:function(e,t){this[e="on"+e]&&this[e](this._target,t)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var a=r;e.exports=a},"2L83":function(e,t,n){var i=n("Q9e6").extend({type:"echartsGaugePointer",shape:{angle:0,width:10,r:10,x:0,y:0},buildPath:function(e,t){var n=Math.cos,i=Math.sin,r=t.r,a=t.width,o=t.angle,s=t.x-n(o)*a*(a>=r/3?1:2),l=t.y-i(o)*a*(a>=r/3?1:2);o=t.angle-Math.PI/2,e.moveTo(s,l),e.lineTo(t.x+n(o)*a,t.y+i(o)*a),e.lineTo(t.x+n(t.angle)*r,t.y+i(t.angle)*r),e.lineTo(t.x-n(o)*a,t.y-i(o)*a),e.lineTo(s,l)}});e.exports=i},"2LoE":function(e,t,n){e.exports={default:n("S1jn"),__esModule:!0}},"2Qgk":function(e,t,n){var i=n("Q9e6").extend({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(e,t){var n=t.cx,i=t.cy,r=Math.max(t.r,0),a=t.startAngle,o=t.endAngle,s=t.clockwise,l=Math.cos(a),u=Math.sin(a);e.moveTo(l*r+n,u*r+i),e.arc(n,i,r,a,o,!s)}});e.exports=i},"2SsR":function(e,t,n){"use strict";var i=n("c1o2"),r=n("go9Q"),a=n("XAI7"),o={};n("bHZz")(o,n("biYF")("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=i(o,{next:r(1,n)}),a(e,t+" Iterator")}},"2WZl":function(e,t,n){"use strict";var i=n("8r5Y");e.exports=i.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function r(e){var i=e;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=r(window.location.href),function(t){var n=i.isString(t)?r(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},"2dmG":function(e,t,n){var i=n("GKMz");t.layout=function(e,t){t=t||{};var n=e.coordinateSystem,r=e.axis,a={},o=r.position,s=r.orient,l=n.getRect(),u=[l.x,l.x+l.width,l.y,l.y+l.height],c={horizontal:{top:u[2],bottom:u[3]},vertical:{left:u[0],right:u[1]}};a.position=["vertical"===s?c.vertical[o]:u[0],"horizontal"===s?c.horizontal[o]:u[3]],a.rotation=Math.PI/2*{horizontal:0,vertical:1}[s],a.labelDirection=a.tickDirection=a.nameDirection={top:-1,bottom:1,right:1,left:-1}[o],e.get("axisTick.inside")&&(a.tickDirection=-a.tickDirection),i.retrieve(t.labelInside,e.get("axisLabel.inside"))&&(a.labelDirection=-a.labelDirection);var d=t.rotate;return null==d&&(d=e.get("axisLabel.rotate")),a.labelRotation="top"===o?-d:d,a.z2=1,a}},"2fJA":function(e,t,n){var i=n("GKMz"),r=i.each,a=i.createHashMap,o=n("YR6M"),s=n("bmdq"),l=o.extend({type:"series.parallel",dependencies:["parallel"],visualColorAccessPath:"lineStyle.color",getInitialData:function(e,t){var n=this.getSource();return function(e,t){if(e.encodeDefine)return;var n=t.ecModel.getComponent("parallel",t.get("parallelIndex"));if(!n)return;var i=e.encodeDefine=a();r(n.dimensions,function(e){var t=+e.replace("dim","");i.set(e,t)})}(n,this),s(n,this)},getRawIndicesByActiveState:function(e){var t=this.coordinateSystem,n=this.getData(),i=[];return t.eachActiveState(n,function(t,r){e===t&&i.push(n.getRawIndex(r))}),i},defaultOption:{zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:"solid"},emphasis:{label:{show:!1}},progressive:500,smooth:!1,animationEasing:"linear"}});e.exports=l},"2pJC":function(e,t,n){var i=n("GKMz"),r=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"];var a=function(e){i.each(r,function(t){this[t]=i.bind(e[t],e)},this)};e.exports=a},"2vAB":function(e,t,n){var i=n("5YEj").extendComponentView({type:"bmap",render:function(e,t,n){var i=!0,r=e.getBMap(),a=n.getZr().painter.getViewportRoot(),o=e.coordinateSystem,s=function(t,r){if(!i){var s=a.parentNode.parentNode.parentNode,l=[-parseInt(s.style.left,10)||0,-parseInt(s.style.top,10)||0];a.style.left=l[0]+"px",a.style.top=l[1]+"px",o.setMapOffset(l),e.__mapOffset=l,n.dispatchAction({type:"bmapRoam"})}};function l(){i||n.dispatchAction({type:"bmapRoam"})}r.removeEventListener("moving",this._oldMoveHandler),r.removeEventListener("zoomend",this._oldZoomEndHandler),r.addEventListener("moving",s),r.addEventListener("zoomend",l),this._oldMoveHandler=s,this._oldZoomEndHandler=l;var u=e.get("roam");u&&"scale"!==u?r.enableDragging():r.disableDragging(),u&&"move"!==u?(r.enableScrollWheelZoom(),r.enableDoubleClickZoom(),r.enablePinchToZoom()):(r.disableScrollWheelZoom(),r.disableDoubleClickZoom(),r.disablePinchToZoom());var c=e.__mapStyle,d=e.get("mapStyle")||{},h=JSON.stringify(d);JSON.stringify(c)!==h&&(Object.keys(d).length&&r.setMapStyle(d),e.__mapStyle=JSON.parse(h)),i=!1}});e.exports=i},"2xPE":function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=(i.isTypedArray,i.extend),a=(i.assert,i.each),o=i.isObject,s=n("vqvJ"),l=s.getDataItemValue,u=s.isDataItemOption,c=n("abCA").parseDate,d=n("YYsL"),h=n("REEr"),f=h.SOURCE_FORMAT_TYPED_ARRAY,p=h.SOURCE_FORMAT_ARRAY_ROWS,m=h.SOURCE_FORMAT_ORIGINAL,g=h.SOURCE_FORMAT_OBJECT_ROWS;function v(e,t){d.isInstance(e)||(e=d.seriesDataToSource(e)),this._source=e;var n=this._data=e.data,i=e.sourceFormat;i===f&&(this._offset=0,this._dimSize=t,this._data=n);var a=b[i===p?i+"_"+e.seriesLayoutBy:i];r(this,a)}var y=v.prototype;y.pure=!1,y.persistent=!0,y.getSource=function(){return this._source};var b={arrayRows_column:{pure:!0,count:function(){return Math.max(0,this._data.length-this._source.startIndex)},getItem:function(e){return this._data[e+this._source.startIndex]},appendData:w},arrayRows_row:{pure:!0,count:function(){var e=this._data[0];return e?Math.max(0,e.length-this._source.startIndex):0},getItem:function(e){e+=this._source.startIndex;for(var t=[],n=this._data,i=0;i<n.length;i++){var r=n[i];t.push(r?r[e]:null)}return t},appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},objectRows:{pure:!0,count:_,getItem:x,appendData:w},keyedColumns:{pure:!0,count:function(){var e=this._source.dimensionsDefine[0].name,t=this._data[e];return t?t.length:0},getItem:function(e){for(var t=[],n=this._source.dimensionsDefine,i=0;i<n.length;i++){var r=this._data[n[i].name];t.push(r?r[e]:null)}return t},appendData:function(e){var t=this._data;a(e,function(e,n){for(var i=t[n]||(t[n]=[]),r=0;r<(e||[]).length;r++)i.push(e[r])})}},original:{count:_,getItem:x,appendData:w},typedArray:{persistent:!1,pure:!0,count:function(){return this._data?this._data.length/this._dimSize:0},getItem:function(e,t){e-=this._offset,t=t||[];for(var n=this._dimSize*e,i=0;i<this._dimSize;i++)t[i]=this._data[n+i];return t},appendData:function(e){this._data=e},clean:function(){this._offset+=this.count(),this._data=null}}};function _(){return this._data.length}function x(e){return this._data[e]}function w(e){for(var t=0;t<e.length;t++)this._data.push(e[t])}var S={arrayRows:C,objectRows:function(e,t,n,i){return null!=n?e[i]:e},keyedColumns:C,original:function(e,t,n,i){var r=l(e);return null!=n&&r instanceof Array?r[n]:r},typedArray:C};function C(e,t,n,i){return null!=n?e[n]:e}var M={arrayRows:k,objectRows:function(e,t,n,i){return T(e[t],this._dimensionInfos[t])},keyedColumns:k,original:function(e,t,n,i){var r=e&&(null==e.value?e:e.value);return!this._rawData.pure&&u(e)&&(this.hasItemOption=!0),T(r instanceof Array?r[i]:r,this._dimensionInfos[t])},typedArray:function(e,t,n,i){return e[i]}};function k(e,t,n,i){return T(e[i],this._dimensionInfos[t])}function T(e,t){var n=t&&t.type;if("ordinal"===n){var i=t&&t.ordinalMeta;return i?i.parseAndCollect(e):e}return"time"===n&&"number"!=typeof e&&null!=e&&"-"!==e&&(e=+c(e)),null==e||""===e?NaN:+e}t.DefaultDataProvider=v,t.defaultDimValueGetters=M,t.retrieveRawValue=function(e,t,n){if(e){var i=e.getRawDataItem(t);if(null!=i){var r,a,o=e.getProvider().getSource().sourceFormat,s=e.getDimensionInfo(n);return s&&(r=s.name,a=s.index),S[o](i,t,a,r)}}},t.retrieveRawAttr=function(e,t,n){if(e){var i=e.getProvider().getSource().sourceFormat;if(i===m||i===g){var r=e.getRawDataItem(t);return i!==m||o(r)||(r=null),r?r[n]:void 0}}}},"30rx":function(e,t){var n=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],i={color:n,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:"#eee"},crossStyle:{color:"#eee"}}},legend:{textStyle:{color:"#eee"}},textStyle:{color:"#eee"},title:{textStyle:{color:"#eee"}},toolbox:{iconStyle:{normal:{borderColor:"#eee"}}},dataZoom:{textStyle:{color:"#eee"}},visualMap:{textStyle:{color:"#eee"}},timeline:{lineStyle:{color:"#eee"},itemStyle:{normal:{color:n[1]}},label:{normal:{textStyle:{color:"#eee"}}},controlStyle:{normal:{color:"#eee",borderColor:"#eee"}}},timeAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},logAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},valueAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},categoryAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},line:{symbol:"circle"},graph:{color:n},gauge:{title:{textStyle:{color:"#eee"}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};i.categoryAxis.splitLine.show=!1;var r=i;e.exports=r},"3LBH":function(e,t,n){var i=n("aVg8"),r=n("d2Vn"),a=n("GKMz").isObject;function o(e){this.group=new i.Group,this._symbolCtor=e||r}var s=o.prototype;function l(e,t,n,i){return t&&!isNaN(t[0])&&!isNaN(t[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(t[0],t[1]))&&"none"!==e.getItemVisual(n,"symbol")}function u(e){return null==e||a(e)||(e={isIgnore:e}),e||{}}function c(e){var t=e.hostModel;return{itemStyle:t.getModel("itemStyle").getItemStyle(["color"]),hoverItemStyle:t.getModel("emphasis.itemStyle").getItemStyle(),symbolRotate:t.get("symbolRotate"),symbolOffset:t.get("symbolOffset"),hoverAnimation:t.get("hoverAnimation"),labelModel:t.getModel("label"),hoverLabelModel:t.getModel("emphasis.label"),cursorStyle:t.get("cursor")}}s.updateData=function(e,t){t=u(t);var n=this.group,r=e.hostModel,a=this._data,o=this._symbolCtor,s=c(e);a||n.removeAll(),e.diff(a).add(function(i){var r=e.getItemLayout(i);if(l(e,r,i,t)){var a=new o(e,i,s);a.attr("position",r),e.setItemGraphicEl(i,a),n.add(a)}}).update(function(u,c){var d=a.getItemGraphicEl(c),h=e.getItemLayout(u);l(e,h,u,t)?(d?(d.updateData(e,u,s),i.updateProps(d,{position:h},r)):(d=new o(e,u)).attr("position",h),n.add(d),e.setItemGraphicEl(u,d)):n.remove(d)}).remove(function(e){var t=a.getItemGraphicEl(e);t&&t.fadeOut(function(){n.remove(t)})}).execute(),this._data=e},s.isPersistent=function(){return!0},s.updateLayout=function(){var e=this._data;e&&e.eachItemGraphicEl(function(t,n){var i=e.getItemLayout(n);t.attr("position",i)})},s.incrementalPrepareUpdate=function(e){this._seriesScope=c(e),this._data=null,this.group.removeAll()},s.incrementalUpdate=function(e,t,n){function i(e){e.isGroup||(e.incremental=e.useHoverLayer=!0)}n=u(n);for(var r=e.start;r<e.end;r++){var a=t.getItemLayout(r);if(l(t,a,r,n)){var o=new this._symbolCtor(t,r,this._seriesScope);o.traverse(i),o.attr("position",a),this.group.add(o),t.setItemGraphicEl(r,o)}}},s.remove=function(e){var t=this.group,n=this._data;n&&e?n.eachItemGraphicEl(function(e){e.fadeOut(function(){t.remove(e)})}):t.removeAll()};var d=o;e.exports=d},"3cXf":function(e,t,n){e.exports={default:n("RJ+u"),__esModule:!0}},"3m5Y":function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("8iEm"),a=n("F93s"),o=n("yIEC"),s=n("abCA"),l=n("h+Y5"),u=l.prepareLayoutBarSeries,c=l.makeColumnLayout,d=l.retrieveColumnLayout,h=n("OGtO");function f(e,t){var n,r,a,o=e.type,l=t.getMin(),h=t.getMax(),f=null!=l,p=null!=h,m=e.getExtent();"ordinal"===o?n=t.getCategories().length:(r=t.get("boundaryGap"),i.isArray(r)||(r=[r||0,r||0]),"boolean"==typeof r[0]&&(r=[0,0]),r[0]=s.parsePercent(r[0],1),r[1]=s.parsePercent(r[1],1),a=m[1]-m[0]||Math.abs(m[0])),null==l&&(l="ordinal"===o?n?0:NaN:m[0]-r[0]*a),null==h&&(h="ordinal"===o?n?n-1:NaN:m[1]+r[1]*a),"dataMin"===l?l=m[0]:"function"==typeof l&&(l=l({min:m[0],max:m[1]})),"dataMax"===h?h=m[1]:"function"==typeof h&&(h=h({min:m[0],max:m[1]})),(null==l||!isFinite(l))&&(l=NaN),(null==h||!isFinite(h))&&(h=NaN),e.setBlank(i.eqNaN(l)||i.eqNaN(h)||"ordinal"===o&&!e.getOrdinalMeta().categories.length),t.getNeedCrossZero()&&(l>0&&h>0&&!f&&(l=0),l<0&&h<0&&!p&&(h=0));var g=t.ecModel;if(g&&"time"===o){var v,y=u("bar",g);if(i.each(y,function(e){v|=e.getBaseAxis()===t.axis}),v){var b=c(y),_=function(e,t,n,r){var a=n.axis.getExtent(),o=a[1]-a[0],s=d(r,n.axis);if(void 0===s)return{min:e,max:t};var l=1/0;i.each(s,function(e){l=Math.min(e.offset,l)});var u=-1/0;i.each(s,function(e){u=Math.max(e.offset+e.width,u)}),l=Math.abs(l),u=Math.abs(u);var c=l+u,h=t-e,f=h/(1-(l+u)/o)-h;return{min:e-=f*(l/c),max:t+=f*(u/c)}}(l,h,t,b);l=_.min,h=_.max}}return[l,h]}function p(e){var t,n=e.getLabelModel().get("formatter"),i="category"===e.type?e.scale.getExtent()[0]:null;return"string"==typeof n?(t=n,n=function(e){return t.replace("{value}",null!=e?e:"")}):"function"==typeof n?function(t,r){return null!=i&&(r=t-i),n(m(e,t),r)}:function(t){return e.scale.getLabel(t)}}function m(e,t){return"category"===e.type?e.scale.getLabel(t):t}n("9ZBU"),n("/3Wz"),t.getScaleExtent=f,t.niceScaleExtent=function(e,t){var n=f(e,t),i=null!=t.getMin(),r=null!=t.getMax(),a=t.get("splitNumber");"log"===e.type&&(e.base=t.get("logBase"));var o=e.type;e.setExtent(n[0],n[1]),e.niceExtent({splitNumber:a,fixMin:i,fixMax:r,minInterval:"interval"===o||"time"===o?t.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?t.get("maxInterval"):null});var s=t.get("interval");null!=s&&e.setInterval&&e.setInterval(s)},t.createScaleByModel=function(e,t){if(t=t||e.get("type"))switch(t){case"category":return new r(e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),[1/0,-1/0]);case"value":return new a;default:return(o.getClass(t)||a).create(e)}},t.ifAxisCrossZero=function(e){var t=e.scale.getExtent(),n=t[0],i=t[1];return!(n>0&&i>0||n<0&&i<0)},t.makeLabelFormatter=p,t.getAxisRawValue=m,t.estimateLabelUnionRect=function(e){var t=e.model,n=e.scale;if(t.get("axisLabel.show")&&!n.isBlank()){var i,r,a="category"===e.type,o=n.getExtent();r=a?n.count():(i=n.getTicks()).length;var s,l,u,c,d,f,m,g,v,y=e.getLabelModel(),b=p(e),_=1;r>40&&(_=Math.ceil(r/40));for(var x=0;x<r;x+=_){var w=b(i?i[x]:o[0]+x),S=y.getTextRect(w),C=(l=S,u=y.get("rotate")||0,c=u*Math.PI/180,d=l.plain(),f=d.width,m=d.height,g=f*Math.cos(c)+m*Math.sin(c),v=f*Math.sin(c)+m*Math.cos(c),new h(d.x,d.y,g,v));s?s.union(C):s=C}return s}}},"3mhU":function(e,t,n){var i=n("T2AC").devicePixelRatio,r=n("GKMz"),a=n("L3JW"),o=n("OGtO"),s=n("Mt3s"),l=n("VHmC"),u=n("dntg"),c=n("ihWO"),d=n("KSHG");function h(e){return parseInt(e,10)}var f=new o(0,0,0,0),p=new o(0,0,0,0);var m=function(e,t,n){this.type="canvas";var a=!e.nodeName||"CANVAS"===e.nodeName.toUpperCase();this._opts=n=r.extend({},n||{}),this.dpr=n.devicePixelRatio||i,this._singleCanvas=a,this.root=e;var o=e.style;o&&(o["-webkit-tap-highlight-color"]="transparent",o["-webkit-user-select"]=o["user-select"]=o["-webkit-touch-callout"]="none",e.innerHTML=""),this.storage=t;var s=this._zlevelList=[],u=this._layers={};if(this._layerConfig={},this._needsManuallyCompositing=!1,a){var c=e.width,d=e.height;null!=n.width&&(c=n.width),null!=n.height&&(d=n.height),this.dpr=n.devicePixelRatio||1,e.width=c*this.dpr,e.height=d*this.dpr,this._width=c,this._height=d;var h=new l(e,this,this.dpr);h.__builtin__=!0,h.initContext(),u[314159]=h,h.zlevel=314159,s.push(314159),this._domRoot=e}else{this._width=this._getSize(0),this._height=this._getSize(1);var f=this._domRoot=function(e,t){var n=document.createElement("div");return n.style.cssText=["position:relative","overflow:hidden","width:"+e+"px","height:"+t+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);e.appendChild(f)}this._hoverlayer=null,this._hoverElements=[]};m.prototype={constructor:m,getType:function(){return"canvas"},isSingleCanvas:function(){return this._singleCanvas},getViewportRoot:function(){return this._domRoot},getViewportRootOffset:function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},refresh:function(e){var t=this.storage.getDisplayList(!0),n=this._zlevelList;this._redrawId=Math.random(),this._paintList(t,e,this._redrawId);for(var i=0;i<n.length;i++){var r=n[i],a=this._layers[r];if(!a.__builtin__&&a.refresh){var o=0===i?this._backgroundColor:null;a.refresh(o)}}return this.refreshHover(),this},addHover:function(e,t){if(!e.__hoverMir){var n=new e.constructor({style:e.style,shape:e.shape});n.__from=e,e.__hoverMir=n,n.setStyle(t),this._hoverElements.push(n)}},removeHover:function(e){var t=e.__hoverMir,n=this._hoverElements,i=r.indexOf(n,t);i>=0&&n.splice(i,1),e.__hoverMir=null},clearHover:function(e){for(var t=this._hoverElements,n=0;n<t.length;n++){var i=t[n].__from;i&&(i.__hoverMir=null)}t.length=0},refreshHover:function(){var e=this._hoverElements,t=e.length,n=this._hoverlayer;if(n&&n.clear(),t){s(e,this.storage.displayableSortFunc),n||(n=this._hoverlayer=this.getLayer(1e5));var i={};n.ctx.save();for(var r=0;r<t;){var a=e[r],o=a.__from;o&&o.__zr?(r++,o.invisible||(a.transform=o.transform,a.invTransform=o.invTransform,a.__clipPaths=o.__clipPaths,this._doPaintEl(a,n,!0,i))):(e.splice(r,1),o.__hoverMir=null,t--)}n.ctx.restore()}},getHoverLayer:function(){return this.getLayer(1e5)},_paintList:function(e,t,n){if(this._redrawId===n){t=t||!1,this._updateLayerStatus(e);var i=this._doPaintList(e,t);if(this._needsManuallyCompositing&&this._compositeManually(),!i){var r=this;u(function(){r._paintList(e,t,n)})}}},_compositeManually:function(){var e=this.getLayer(314159).ctx,t=this._domRoot.width,n=this._domRoot.height;e.clearRect(0,0,t,n),this.eachBuiltinLayer(function(i){i.virtual&&e.drawImage(i.dom,0,0,t,n)})},_doPaintList:function(e,t){for(var n=[],i=0;i<this._zlevelList.length;i++){var a=this._zlevelList[i];(l=this._layers[a]).__builtin__&&l!==this._hoverlayer&&(l.__dirty||t)&&n.push(l)}for(var o=!0,s=0;s<n.length;s++){var l,u=(l=n[s]).ctx,c={};u.save();var h=t?l.__startIndex:l.__drawIndex,f=!t&&l.incremental&&Date.now,p=f&&Date.now(),m=l.zlevel===this._zlevelList[0]?this._backgroundColor:null;if(l.__startIndex===l.__endIndex)l.clear(!1,m);else if(h===l.__startIndex){var g=e[h];g.incremental&&g.notClear&&!t||l.clear(!1,m)}-1===h&&(console.error("For some unknown reason. drawIndex is -1"),h=l.__startIndex);for(var v=h;v<l.__endIndex;v++){var y=e[v];if(this._doPaintEl(y,l,t,c),y.__dirty=!1,f)if(Date.now()-p>15)break}l.__drawIndex=v,l.__drawIndex<l.__endIndex&&(o=!1),c.prevElClipPaths&&u.restore(),u.restore()}return d.wxa&&r.each(this._layers,function(e){e&&e.ctx&&e.ctx.draw&&e.ctx.draw()}),o},_doPaintEl:function(e,t,n,i){var r=t.ctx,a=e.transform;if((t.__dirty||n)&&!e.invisible&&0!==e.style.opacity&&(!a||a[0]||a[3])&&(!e.culling||!function(e,t,n){return f.copy(e.getBoundingRect()),e.transform&&f.applyTransform(e.transform),p.width=t,p.height=n,!f.intersect(p)}(e,this._width,this._height))){var o=e.__clipPaths;i.prevElClipPaths&&!function(e,t){if(e==t)return!1;if(!e||!t||e.length!==t.length)return!0;for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!0}(o,i.prevElClipPaths)||(i.prevElClipPaths&&(t.ctx.restore(),i.prevElClipPaths=null,i.prevEl=null),o&&(r.save(),function(e,t){for(var n=0;n<e.length;n++){var i=e[n];i.setTransform(t),t.beginPath(),i.buildPath(t,i.shape),t.clip(),i.restoreTransform(t)}}(o,r),i.prevElClipPaths=o)),e.beforeBrush&&e.beforeBrush(r),e.brush(r,i.prevEl||null),i.prevEl=e,e.afterBrush&&e.afterBrush(r)}},getLayer:function(e,t){this._singleCanvas&&!this._needsManuallyCompositing&&(e=314159);var n=this._layers[e];return n||((n=new l("zr_"+e,this,this.dpr)).zlevel=e,n.__builtin__=!0,this._layerConfig[e]&&r.merge(n,this._layerConfig[e],!0),t&&(n.virtual=t),this.insertLayer(e,n),n.initContext()),n},insertLayer:function(e,t){var n=this._layers,i=this._zlevelList,r=i.length,o=null,s=-1,l=this._domRoot;if(n[e])a("ZLevel "+e+" has been used already");else if(function(e){return!!e&&(!!e.__builtin__||"function"==typeof e.resize&&"function"==typeof e.refresh)}(t)){if(r>0&&e>i[0]){for(s=0;s<r-1&&!(i[s]<e&&i[s+1]>e);s++);o=n[i[s]]}if(i.splice(s+1,0,e),n[e]=t,!t.virtual)if(o){var u=o.dom;u.nextSibling?l.insertBefore(t.dom,u.nextSibling):l.appendChild(t.dom)}else l.firstChild?l.insertBefore(t.dom,l.firstChild):l.appendChild(t.dom)}else a("Layer of zlevel "+e+" is not valid")},eachLayer:function(e,t){var n,i,r=this._zlevelList;for(i=0;i<r.length;i++)n=r[i],e.call(t,this._layers[n],n)},eachBuiltinLayer:function(e,t){var n,i,r,a=this._zlevelList;for(r=0;r<a.length;r++)i=a[r],(n=this._layers[i]).__builtin__&&e.call(t,n,i)},eachOtherLayer:function(e,t){var n,i,r,a=this._zlevelList;for(r=0;r<a.length;r++)i=a[r],(n=this._layers[i]).__builtin__||e.call(t,n,i)},getLayers:function(){return this._layers},_updateLayerStatus:function(e){function t(e){i&&(i.__endIndex!==e&&(i.__dirty=!0),i.__endIndex=e)}if(this.eachBuiltinLayer(function(e,t){e.__dirty=e.__used=!1}),this._singleCanvas)for(var n=1;n<e.length;n++){if((o=e[n]).zlevel!==e[n-1].zlevel||o.incremental){this._needsManuallyCompositing=!0;break}}var i=null,r=0;for(n=0;n<e.length;n++){var o,s,l=(o=e[n]).zlevel;o.incremental?((s=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,r=1):s=this.getLayer(l+(r>0?.01:0),this._needsManuallyCompositing),s.__builtin__||a("ZLevel "+l+" has been used by unkown layer "+s.id),s!==i&&(s.__used=!0,s.__startIndex!==n&&(s.__dirty=!0),s.__startIndex=n,s.incremental?s.__drawIndex=-1:s.__drawIndex=n,t(n),i=s),o.__dirty&&(s.__dirty=!0,s.incremental&&s.__drawIndex<0&&(s.__drawIndex=n))}t(n),this.eachBuiltinLayer(function(e,t){!e.__used&&e.getElementCount()>0&&(e.__dirty=!0,e.__startIndex=e.__endIndex=e.__drawIndex=0),e.__dirty&&e.__drawIndex<0&&(e.__drawIndex=e.__startIndex)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(e){e.clear()},setBackgroundColor:function(e){this._backgroundColor=e},configLayer:function(e,t){if(t){var n=this._layerConfig;n[e]?r.merge(n[e],t,!0):n[e]=t;for(var i=0;i<this._zlevelList.length;i++){var a=this._zlevelList[i];if(a===e||a===e+.01){var o=this._layers[a];r.merge(o,n[e],!0)}}}},delLayer:function(e){var t=this._layers,n=this._zlevelList,i=t[e];i&&(i.dom.parentNode.removeChild(i.dom),delete t[e],n.splice(r.indexOf(n,e),1))},resize:function(e,t){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=e&&(i.width=e),null!=t&&(i.height=t),e=this._getSize(0),t=this._getSize(1),n.style.display="",this._width!=e||t!=this._height){for(var a in n.style.width=e+"px",n.style.height=t+"px",this._layers)this._layers.hasOwnProperty(a)&&this._layers[a].resize(e,t);r.each(this._progressiveLayers,function(n){n.resize(e,t)}),this.refresh(!0)}this._width=e,this._height=t}else{if(null==e||null==t)return;this._width=e,this._height=t,this.getLayer(314159).resize(e,t)}return this},clearLayer:function(e){var t=this._layers[e];t&&t.clear()},dispose:function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},getRenderedCanvas:function(e){if(e=e||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var t=new l("image",this,e.pixelRatio||this.dpr);if(t.initContext(),t.clear(!1,e.backgroundColor||this._backgroundColor),e.pixelRatio<=this.dpr){this.refresh();var n=t.dom.width,i=t.dom.height,r=t.ctx;this.eachLayer(function(e){e.__builtin__?r.drawImage(e.dom,0,0,n,i):e.renderToCanvas&&(t.ctx.save(),e.renderToCanvas(t.ctx),t.ctx.restore())})}else for(var a={},o=this.storage.getDisplayList(!0),s=0;s<o.length;s++){var u=o[s];this._doPaintEl(u,t,!0,a)}return t.dom},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(e){var t=this._opts,n=["width","height"][e],i=["clientWidth","clientHeight"][e],r=["paddingLeft","paddingTop"][e],a=["paddingRight","paddingBottom"][e];if(null!=t[n]&&"auto"!==t[n])return parseFloat(t[n]);var o=this.root,s=document.defaultView.getComputedStyle(o);return(o[i]||h(s[n])||h(o.style[n]))-(h(s[r])||0)-(h(s[a])||0)|0},pathToImage:function(e,t){t=t||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=e.getBoundingRect(),a=e.style,o=a.shadowBlur*t,s=a.shadowOffsetX*t,l=a.shadowOffsetY*t,u=a.hasStroke()?a.lineWidth:0,d=Math.max(u/2,-s+o),h=Math.max(u/2,s+o),f=Math.max(u/2,-l+o),p=Math.max(u/2,l+o),m=r.width+d+h,g=r.height+f+p;n.width=m*t,n.height=g*t,i.scale(t,t),i.clearRect(0,0,m,g),i.dpr=t;var v={position:e.position,rotation:e.rotation,scale:e.scale};e.position=[d-r.x,f-r.y],e.rotation=0,e.scale=[1,1],e.updateTransform(),e&&e.brush(i);var y=new c({style:{x:0,y:0,image:n}});return null!=v.position&&(y.position=e.position=v.position),null!=v.rotation&&(y.rotation=e.rotation=v.rotation),null!=v.scale&&(y.scale=e.scale=v.scale),y}};var g=m;e.exports=g},"3qm9":function(e,t,n){var i=n("/r4/"),r=n("CFGK"),a=n("Kjxy");e.exports=function(e){return function(t,n,o){var s,l=i(t),u=r(l.length),c=a(o,u);if(e&&n!=n){for(;u>c;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((e||c in l)&&l[c]===n)return e||c||0;return!e&&-1}}},"3sZc":function(e,t){var n=function(){this.head=null,this.tail=null,this._len=0},i=n.prototype;i.insert=function(e){var t=new r(e);return this.insertEntry(t),t},i.insertEntry=function(e){this.head?(this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e):this.head=this.tail=e,this._len++},i.remove=function(e){var t=e.prev,n=e.next;t?t.next=n:this.head=n,n?n.prev=t:this.tail=t,e.next=e.prev=null,this._len--},i.len=function(){return this._len},i.clear=function(){this.head=this.tail=null,this._len=0};var r=function(e){this.value=e,this.next,this.prev},a=function(e){this._list=new n,this._map={},this._maxSize=e||10,this._lastRemovedEntry=null},o=a.prototype;o.put=function(e,t){var n=this._list,i=this._map,a=null;if(null==i[e]){var o=n.len(),s=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var l=n.head;n.remove(l),delete i[l.key],a=l.value,this._lastRemovedEntry=l}s?s.value=t:s=new r(t),s.key=e,n.insertEntry(s),i[e]=s}return a},o.get=function(e){var t=this._map[e],n=this._list;if(null!=t)return t!==n.tail&&(n.remove(t),n.insertEntry(t)),t.value},o.clear=function(){this._list.clear(),this._map={}};var s=a;e.exports=s},"3t39":function(e,t){var n={average:function(e){for(var t=0,n=0,i=0;i<e.length;i++)isNaN(e[i])||(t+=e[i],n++);return 0===n?NaN:t/n},sum:function(e){for(var t=0,n=0;n<e.length;n++)t+=e[n]||0;return t},max:function(e){for(var t=-1/0,n=0;n<e.length;n++)e[n]>t&&(t=e[n]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,n=0;n<e.length;n++)e[n]<t&&(t=e[n]);return isFinite(t)?t:NaN},nearest:function(e){return e[0]}},i=function(e,t){return Math.round(e.length/2)};e.exports=function(e){return{seriesType:e,modifyOutputEnd:!0,reset:function(e,t,r){var a=e.getData(),o=e.get("sampling"),s=e.coordinateSystem;if("cartesian2d"===s.type&&o){var l,u=s.getBaseAxis(),c=s.getOtherAxis(u),d=u.getExtent(),h=d[1]-d[0],f=Math.round(a.count()/h);f>1&&("string"==typeof o?l=n[o]:"function"==typeof o&&(l=o),l&&e.setData(a.downSample(a.mapDimension(c.dim),1/f,l,i)))}}}}},"3uP3":function(e,t,n){var i=n("GKMz"),r=n("Qmdc"),a=n("aVg8"),o=n("Q9e6"),s=["itemStyle"],l=["emphasis","itemStyle"],u=r.extend({type:"boxplot",render:function(e,t,n){var i=e.getData(),r=this.group,a=this._data;this._data||r.removeAll();var o="horizontal"===e.get("layout")?1:0;i.diff(a).add(function(e){if(i.hasValue(e)){var t=d(i.getItemLayout(e),i,e,o,!0);i.setItemGraphicEl(e,t),r.add(t)}}).update(function(e,t){var n=a.getItemGraphicEl(t);if(i.hasValue(e)){var s=i.getItemLayout(e);n?h(s,n,i,e):n=d(s,i,e,o),r.add(n),i.setItemGraphicEl(e,n)}else r.remove(n)}).remove(function(e){var t=a.getItemGraphicEl(e);t&&r.remove(t)}).execute(),this._data=i},remove:function(e){var t=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl(function(e){e&&t.remove(e)})},dispose:i.noop}),c=o.extend({type:"boxplotBoxPath",shape:{},buildPath:function(e,t){var n=t.points,i=0;for(e.moveTo(n[i][0],n[i][1]),i++;i<4;i++)e.lineTo(n[i][0],n[i][1]);for(e.closePath();i<n.length;i++)e.moveTo(n[i][0],n[i][1]),i++,e.lineTo(n[i][0],n[i][1])}});function d(e,t,n,r,a){var o=e.ends,s=new c({shape:{points:a?function(e,t,n){return i.map(e,function(e){return(e=e.slice())[t]=n.initBaseline,e})}(o,r,e):o}});return h(e,s,t,n,a),s}function h(e,t,n,i,r){var o=n.hostModel;(0,a[r?"initProps":"updateProps"])(t,{shape:{points:e.ends}},o,i);var u=n.getItemModel(i),c=u.getModel(s),d=n.getItemVisual(i,"color"),h=c.getItemStyle(["borderColor"]);h.stroke=d,h.strokeNoScale=!0,t.useStyle(h),t.z2=100;var f=u.getModel(l).getItemStyle();a.setHoverStyle(t,f)}var f=u;e.exports=f},"3x1Z":function(e,t,n){var i=n("/MtV");n("3yI+"),n("3uP3");var r=n("gOjO"),a=n("G+Sm");i.registerVisual(r),i.registerLayout(a)},"3yI+":function(e,t,n){var i=n("GKMz"),r=n("YR6M"),a=n("oHK+").seriesModelMixin,o=r.extend({type:"series.boxplot",dependencies:["xAxis","yAxis","grid"],defaultValueDimensions:[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],dimensions:null,defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:2,shadowOffsetY:2,shadowColor:"rgba(0,0,0,0.4)"}},animationEasing:"elasticOut",animationDuration:800}});i.mixin(o,a,!0);var s=o;e.exports=s},"4A9Y":function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];return e.apply(t,n)}}},"4BSa":function(e,t,n){var i=n("GKMz"),r=n("21V2"),a=n("242d"),o=i.curry,s="\0_ec_dataZoom_roams";function l(e){var t=e.getZr();return t[s]||(t[s]={})}function u(e){i.each(e,function(t,n){t.count||(t.controller.dispose(),delete e[n])})}function c(e,t,n,i,r,a,o){h(e,function(s){return s.panGetRange(e.controller,t,n,i,r,a,o)})}function d(e,t,n,i){h(e,function(r){return r.zoomGetRange(e.controller,t,n,i)})}function h(e,t){var n=[];i.each(e.dataZoomInfos,function(e){var i=t(e);!e.disabled&&i&&n.push({dataZoomId:e.dataZoomId,start:i[0],end:i[1]})}),n.length&&e.dispatchAction(n)}function f(e,t){e.dispatchAction({type:"dataZoom",batch:t})}t.register=function(e,t){var n=l(e),s=t.dataZoomId,h=t.coordId;i.each(n,function(e,n){var r=e.dataZoomInfos;r[s]&&i.indexOf(t.allCoordIds,h)<0&&(delete r[s],e.count--)}),u(n);var p=n[h];p||((p=n[h]={coordId:h,dataZoomInfos:{},count:0}).controller=function(e,t){var n=new r(e.getZr());return n.on("pan",o(c,t)),n.on("zoom",o(d,t)),n}(e,p),p.dispatchAction=i.curry(f,e)),!p.dataZoomInfos[s]&&p.count++,p.dataZoomInfos[s]=t;var m,g,v,y,b=(m=p.dataZoomInfos,v={},y={type_true:2,type_move:1,type_false:0,type_undefined:-1},i.each(m,function(e){var t=!e.disabled&&(!e.zoomLock||"move");y["type_"+t]>y["type_"+g]&&(g=t),i.extend(v,e.roamControllerOpt)}),{controlType:g,opt:v});p.controller.enable(b.controlType,b.opt),p.controller.setPointerChecker(t.containsPoint),a.createOrUpdate(p,"dispatchAction",t.throttleRate,"fixRate")},t.unregister=function(e,t){var n=l(e);i.each(n,function(e){e.controller.dispose();var n=e.dataZoomInfos;n[t]&&(delete n[t],e.count--)}),u(n)},t.generateCoordId=function(e){return e.type+"\0_"+e.id}},"4BpY":function(e,t,n){"use strict";var i=n("C02x"),r=n("AKd3"),a=n("lIiZ"),o=n("sjnA"),s=n("biYF")("species");e.exports=function(e){var t="function"==typeof r[e]?r[e]:i[e];o&&t&&!t[s]&&a.f(t,s,{configurable:!0,get:function(){return this}})}},"4KIe":function(e,t,n){var i=n("/MtV").extendComponentModel({type:"axisPointer",coordSysAxesInfo:null,defaultOption:{show:"auto",triggerOn:null,zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#aaa",width:1,type:"solid"},shadowStyle:{color:"rgba(150,150,150,0.3)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,shadowBlur:3,shadowColor:"#aaa"},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}}});e.exports=i},"4YfN":function(e,t,n){"use strict";t.__esModule=!0;var i,r=n("aA9S"),a=(i=r)&&i.__esModule?i:{default:i};t.default=a.default||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}},"4c0H":function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=146)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},1:function(e,t){e.exports=n("PEt4")},146:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(35),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},3:function(e,t){e.exports=n("I1sU")},35:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(36),r=n.n(i),a=n(37),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},36:function(e,t,n){"use strict";t.__esModule=!0;var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n(1),o=(i=a)&&i.__esModule?i:{default:i},s=n(3);t.default={mixins:[o.default],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var n=this.select,i=n.remote,a=n.valueKey;if(!this.created&&!i){if(a&&"object"===(void 0===e?"undefined":r(e))&&"object"===(void 0===t?"undefined":r(t))&&e[a]===t[a])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var n=this.select.valueKey;return(0,s.getValueByPath)(e,n)===(0,s.getValueByPath)(t,n)}return e===t},contains:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];if(!this.isObject)return t.indexOf(n)>-1;var i,a=(i=e.select.valueKey,{v:t.some(function(e){return(0,s.getValueByPath)(e,i)===(0,s.getValueByPath)(n,i)})});return"object"===(void 0===a?"undefined":r(a))?a.v:void 0},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp((0,s.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){this.select.onOptionDestroy(this.select.options.indexOf(this))}}},37:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[n("span",[e._v(e._s(e.currentLabel))])])],2)},staticRenderFns:[]};t.a=i}})},"4cCs":function(e,t,n){var i=n("/MtV"),r=n("M7eM"),a=n("GKMz"),o=n("vqvJ").defaultEmphasis,s=n("xWTI"),l=n("uxQp").encodeHTML,u=n("rcR3"),c=i.extendSeriesModel({type:"series.graph",init:function(e){c.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},mergeOption:function(e){c.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(e){c.superApply(this,"mergeDefaultAndTheme",arguments),o(e,["edgeLabel"],["show"])},getInitialData:function(e,t){var n=e.edges||e.links||[],i=e.data||e.nodes||[],r=this;if(i&&n)return u(i,n,this,!0,function(e,n){e.wrapMethod("getItemModel",function(e){var t=r._categoriesModels,n=e.getShallow("category"),i=t[n];return i&&(i.parentModel=e.parentModel,e.parentModel=i),e});var i=r.getModel("edgeLabel"),a=new s({label:i.option},i.parentModel,t),o=r.getModel("emphasis.edgeLabel"),l=new s({emphasis:{label:o.option}},o.parentModel,t);function u(e){return(e=this.parsePath(e))&&"label"===e[0]?a:e&&"emphasis"===e[0]&&"label"===e[1]?l:this.parentModel}n.wrapMethod("getItemModel",function(e){return e.customizeGetParent(u),e})}).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(e,t,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(e,n),a=i.graph.getEdgeByIndex(e),o=i.getName(a.node1.dataIndex),s=i.getName(a.node2.dataIndex),u=[];return null!=o&&u.push(o),null!=s&&u.push(s),u=l(u.join(" > ")),r.value&&(u+=" : "+l(r.value)),u}return c.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var e=a.map(this.option.categories||[],function(e){return null!=e.value?e:a.extend({value:0},e)}),t=new r(["value"],this);t.initData(e),this._categoriesData=t,this._categoriesModels=t.mapArray(function(e){return t.getItemModel(e,!0)})},setZoom:function(e){this.option.zoom=e},setCenter:function(e){this.option.center=e},isAnimationEnabled:function(){return c.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle"},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{label:{show:!0}}}}),d=c;e.exports=d},"4f7s":function(e,t,n){var i=n("GKMz"),r=n("xWTI"),a=n("jqmT"),o=n("M7eM"),s=n("Qieq"),l=function(e,t){this.name=e||"",this.depth=0,this.height=0,this.parentNode=null,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.hostTree=t};function u(e,t,n){this.root,this.data,this._nodes=[],this.hostModel=e,this.levelModels=i.map(t||[],function(t){return new r(t,e,e.ecModel)}),this.leavesModel=new r(n||{},e,e.ecModel)}l.prototype={constructor:l,isRemoved:function(){return this.dataIndex<0},eachNode:function(e,t,n){"function"==typeof e&&(n=t,t=e,e=null),e=e||{},i.isString(e)&&(e={order:e});var r,a=e.order||"preorder",o=this[e.attr||"children"];"preorder"===a&&(r=t.call(n,this));for(var s=0;!r&&s<o.length;s++)o[s].eachNode(e,t,n);"postorder"===a&&t.call(n,this)},updateDepthAndHeight:function(e){var t=0;this.depth=e;for(var n=0;n<this.children.length;n++){var i=this.children[n];i.updateDepthAndHeight(e+1),i.height>t&&(t=i.height)}this.height=t+1},getNodeById:function(e){if(this.getId()===e)return this;for(var t=0,n=this.children,i=n.length;t<i;t++){var r=n[t].getNodeById(e);if(r)return r}},contains:function(e){if(e===this)return!0;for(var t=0,n=this.children,i=n.length;t<i;t++){var r=n[t].contains(e);if(r)return r}},getAncestors:function(e){for(var t=[],n=e?this:this.parentNode;n;)t.push(n),n=n.parentNode;return t.reverse(),t},getValue:function(e){var t=this.hostTree.data;return t.get(t.getDimension(e||"value"),this.dataIndex)},setLayout:function(e,t){this.dataIndex>=0&&this.hostTree.data.setItemLayout(this.dataIndex,e,t)},getLayout:function(){return this.hostTree.data.getItemLayout(this.dataIndex)},getModel:function(e){if(!(this.dataIndex<0)){var t,n=this.hostTree,i=n.data.getItemModel(this.dataIndex),r=this.getLevelModel();return r||0!==this.children.length&&(0===this.children.length||!1!==this.isExpand)||(t=this.getLeavesModel()),i.getModel(e,(r||t||n.hostModel).getModel(e))}},getLevelModel:function(){return(this.hostTree.levelModels||[])[this.depth]},getLeavesModel:function(){return this.hostTree.leavesModel},setVisual:function(e,t){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,e,t)},getVisual:function(e,t){return this.hostTree.data.getItemVisual(this.dataIndex,e,t)},getRawIndex:function(){return this.hostTree.data.getRawIndex(this.dataIndex)},getId:function(){return this.hostTree.data.getId(this.dataIndex)},isAncestorOf:function(e){for(var t=e.parentNode;t;){if(t===this)return!0;t=t.parentNode}return!1},isDescendantOf:function(e){return e!==this&&e.isAncestorOf(this)}},u.prototype={constructor:u,type:"tree",eachNode:function(e,t,n){this.root.eachNode(e,t,n)},getNodeByDataIndex:function(e){var t=this.data.getRawIndex(e);return this._nodes[t]},getNodeByName:function(e){return this.root.getNodeByName(e)},update:function(){for(var e=this.data,t=this._nodes,n=0,i=t.length;n<i;n++)t[n].dataIndex=-1;for(n=0,i=e.count();n<i;n++)t[e.getRawIndex(n)].dataIndex=n},clearLayouts:function(){this.data.clearItemLayouts()}},u.createTree=function(e,t,n){var r=new u(t,n.levels,n.leaves),c=[],d=1;!function e(t,n){var a=t.value;d=Math.max(d,i.isArray(a)?a.length:1);c.push(t);var o=new l(t.name,r);n?function(e,t){var n=t.children;if(e.parentNode===t)return;n.push(e),e.parentNode=t}(o,n):r.root=o;r._nodes.push(o);var s=t.children;if(s)for(var u=0;u<s.length;u++)e(s[u],o)}(e),r.root.updateDepthAndHeight(0);var h=s(c,{coordDimensions:["value"],dimensionsCount:d}),f=new o(h,t);return f.initData(c),a({mainData:f,struct:r,structAttr:"tree"}),r.update(),r};var c=u;e.exports=c},"4iki":function(e,t,n){var i=n("/MtV");i.registerAction({type:"axisAreaSelect",event:"axisAreaSelected"},function(e,t){t.eachComponent({mainType:"parallelAxis",query:e},function(t){t.axis.model.setActiveIntervals(e.intervals)})}),i.registerAction("parallelAxisExpand",function(e,t){t.eachComponent({mainType:"parallel",query:e},function(t){t.setAxisExpand(e)})})},"4pJO":function(e,t,n){"use strict";var i=n("8r5Y");e.exports=function(e,t){i.forEach(e,function(n,i){i!==t&&i.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[i])})}},"4uX9":function(e,t,n){for(var i=n("GKMz"),r=n("Cs+Z"),a=[126,25],o=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],s=0;s<o.length;s++)for(var l=0;l<o[s].length;l++)o[s][l][0]/=10.5,o[s][l][1]/=-14,o[s][l][0]+=a[0],o[s][l][1]+=a[1];e.exports=function(e){"china"===e.map&&e.regions.push(new r("鍗楁捣璇稿矝",i.map(o,function(e){return{type:"polygon",exterior:e}}),a))}},"4uwL":function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(t,n("9AUj"))},"4xJx":function(e,t,n){var i=n("/MtV"),r=n("Mf6k"),a=n("GKMz"),o=n("vqvJ"),s=n("abCA").getPercentWithPrecision,l=n("A4ij"),u=n("2xPE").retrieveRawAttr,c=i.extendSeriesModel({type:"series.pie",init:function(e){c.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this.updateSelectedMap(this._createSelectableList()),this._defaultLabelLine(e)},mergeOption:function(e){c.superCall(this,"mergeOption",e),this.updateSelectedMap(this._createSelectableList())},getInitialData:function(e,t){return r(this,["value"])},_createSelectableList:function(){for(var e=this.getRawData(),t=e.mapDimension("value"),n=[],i=0,r=e.count();i<r;i++)n.push({name:e.getName(i),value:e.get(t,i),selected:u(e,i,"selected")});return n},getDataParams:function(e){var t=this.getData(),n=c.superCall(this,"getDataParams",e),i=[];return t.each(t.mapDimension("value"),function(e){i.push(e)}),n.percent=s(i,e,t.hostModel.get("percentPrecision")),n.$vars.push("percent"),n},_defaultLabelLine:function(e){o.defaultEmphasis(e,"labelLine",["show"]);var t=e.labelLine,n=e.emphasis.labelLine;t.show=t.show&&e.label.show,n.show=n.show&&e.emphasis.label.show},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,selectedOffset:10,hoverOffset:10,avoidLabelOverlap:!0,percentPrecision:2,stillShowZeroSum:!0,label:{rotate:!1,show:!0,position:"outer"},labelLine:{show:!0,length:15,length2:15,smooth:!1,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},animationType:"expansion",animationEasing:"cubicOut"}});a.mixin(c,l);var d=c;e.exports=d},"5B9r":function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("0mJF").updateCenterAndZoom;i.registerAction({type:"geoRoam",event:"geoRoam",update:"updateTransform"},function(e,t){var n=e.componentType||"series";t.eachComponent({mainType:n,query:e},function(t){var i=t.coordinateSystem;if("geo"===i.type){var o=a(i,e,t.get("scaleLimit"));t.setCenter&&t.setCenter(o.center),t.setZoom&&t.setZoom(o.zoom),"series"===n&&r.each(t.seriesGroup,function(e){e.setCenter(o.center),e.setZoom(o.zoom)})}})})},"5ErN":function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("242d"),o=n("o4vF");n("HYVc"),n("g6LA"),n("7zqV");i.extendComponentView({type:"parallel",render:function(e,t,n){this._model=e,this._api=n,this._handlers||(this._handlers={},r.each(s,function(e,t){n.getZr().on(t,this._handlers[t]=r.bind(e,this))},this)),a.createOrUpdate(this,"_throttledDispatchExpand",e.get("axisExpandRate"),"fixRate")},dispose:function(e,t){r.each(this._handlers,function(e,n){t.getZr().off(n,e)}),this._handlers=null},_throttledDispatchExpand:function(e){this._dispatchExpand(e)},_dispatchExpand:function(e){e&&this._api.dispatchAction(r.extend({type:"parallelAxisExpand"},e))}});var s={mousedown:function(e){l(this,"click")&&(this._mouseDownPoint=[e.offsetX,e.offsetY])},mouseup:function(e){var t=this._mouseDownPoint;if(l(this,"click")&&t){var n=[e.offsetX,e.offsetY];if(Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2)>5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(e){if(!this._mouseDownPoint&&l(this,"mousemove")){var t=this._model,n=t.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(t.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i&&null})}}};function l(e,t){var n=e._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===t}i.registerPreprocessor(o)},"5FyJ":function(e,t,n){var i=n("C02x"),r=n("AKd3"),a=n("bgFz"),o=n("CVJP"),s=n("lIiZ").f;e.exports=function(e){var t=r.Symbol||(r.Symbol=a?{}:i.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:o.f(e)})}},"5MFU":function(e,t,n){var i=n("GKMz"),r=n("vqvJ"),a=i.each,o=i.isObject,s=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function l(e){var t=e&&e.itemStyle;if(t)for(var n=0,r=s.length;n<r;n++){var a=s[n],o=t.normal,l=t.emphasis;o&&o[a]&&(e[a]=e[a]||{},e[a].normal?i.merge(e[a].normal,o[a]):e[a].normal=o[a],o[a]=null),l&&l[a]&&(e[a]=e[a]||{},e[a].emphasis?i.merge(e[a].emphasis,l[a]):e[a].emphasis=l[a],l[a]=null)}}function u(e,t,n){if(e&&e[t]&&(e[t].normal||e[t].emphasis)){var r=e[t].normal,a=e[t].emphasis;r&&(n?(e[t].normal=e[t].emphasis=null,i.defaults(e[t],r)):e[t]=r),a&&(e.emphasis=e.emphasis||{},e.emphasis[t]=a)}}function c(e){u(e,"itemStyle"),u(e,"lineStyle"),u(e,"areaStyle"),u(e,"label"),u(e,"labelLine"),u(e,"upperLabel"),u(e,"edgeLabel")}function d(e,t){var n=o(e)&&e[t],i=o(n)&&n.textStyle;if(i)for(var a=0,s=r.TEXT_STYLE_OPTIONS.length;a<s;a++){t=r.TEXT_STYLE_OPTIONS[a];i.hasOwnProperty(t)&&(n[t]=i[t])}}function h(e){e&&(c(e),d(e,"label"),e.emphasis&&d(e.emphasis,"label"))}function f(e){return i.isArray(e)?e:e?[e]:[]}function p(e){return(i.isArray(e)?e[0]:e)||{}}e.exports=function(e,t){a(f(e.series),function(e){o(e)&&function(e){if(o(e)){l(e),c(e),d(e,"label"),d(e,"upperLabel"),d(e,"edgeLabel"),e.emphasis&&(d(e.emphasis,"label"),d(e.emphasis,"upperLabel"),d(e.emphasis,"edgeLabel")),(n=e.markPoint)&&(l(n),h(n)),(r=e.markLine)&&(l(r),h(r));var t=e.markArea;t&&h(t);var n,r,a=e.data;if("graph"===e.type){a=a||e.nodes;var s=e.links||e.edges;if(s&&!i.isTypedArray(s))for(var f=0;f<s.length;f++)h(s[f]);i.each(e.categories,function(e){c(e)})}if(a&&!i.isTypedArray(a))for(f=0;f<a.length;f++)h(a[f]);if((n=e.markPoint)&&n.data){var p=n.data;for(f=0;f<p.length;f++)h(p[f])}if((r=e.markLine)&&r.data){var m=r.data;for(f=0;f<m.length;f++)i.isArray(m[f])?(h(m[f][0]),h(m[f][1])):h(m[f])}"gauge"===e.type?(d(e,"axisLabel"),d(e,"title"),d(e,"detail")):"treemap"===e.type?(u(e.breadcrumb,"itemStyle"),i.each(e.levels,function(e){c(e)})):"tree"===e.type&&c(e.leaves)}}(e)});var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];t&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),a(n,function(t){a(f(e[t]),function(e){e&&(d(e,"axisLabel"),d(e.axisPointer,"label"))})}),a(f(e.parallel),function(e){var t=e&&e.parallelAxisDefault;d(t,"axisLabel"),d(t&&t.axisPointer,"label")}),a(f(e.calendar),function(e){u(e,"itemStyle"),d(e,"dayLabel"),d(e,"monthLabel"),d(e,"yearLabel")}),a(f(e.radar),function(e){d(e,"name")}),a(f(e.geo),function(e){o(e)&&(h(e),a(f(e.regions),function(e){h(e)}))}),a(f(e.timeline),function(e){h(e),u(e,"label"),u(e,"itemStyle"),u(e,"controlStyle",!0);var t=e.data;i.isArray(t)&&i.each(t,function(e){i.isObject(e)&&(u(e,"label"),u(e,"itemStyle"))})}),a(f(e.toolbox),function(e){u(e,"iconStyle"),a(e.feature,function(e){u(e,"iconStyle")})}),d(p(e.axisPointer),"label"),d(p(e.tooltip).axisPointer,"label")}},"5ON6":function(e,t,n){var i=n("GKMz"),r=n("l8Rx"),a=function(e,t,n,i,a,o){this.x=null==e?0:e,this.y=null==t?0:t,this.x2=null==n?1:n,this.y2=null==i?0:i,this.type="linear",this.global=o||!1,r.call(this,a)};a.prototype={constructor:a},i.inherits(a,r);var o=a;e.exports=o},"5SCX":function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}
-/*!
- * Determine if an object is a Buffer
- *
- * @author   Feross Aboukhadijeh <https://feross.org>
- * @license  MIT
- */
-e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},"5YEj":function(e,t,n){var i=n("/MtV");!function(){for(var e in i){if(null==i||!i.hasOwnProperty(e)||"default"===e||"__esModule"===e)return;t[e]=i[e]}}();var r=n("9aCb");!function(){for(var e in r){if(null==r||!r.hasOwnProperty(e)||"default"===e||"__esModule"===e)return;t[e]=r[e]}}(),n("EaZP"),n("aO2o"),n("cfw3"),n("B6iy"),n("BWe9"),n("Ydvc"),n("mQB+"),n("O0k8"),n("jHJB"),n("0OTd"),n("w4GH"),n("B7oI"),n("M0mq"),n("Bcbt"),n("3x1Z"),n("XHuq"),n("jNkx"),n("0CF4"),n("sHh7"),n("auEo"),n("wxPZ"),n("yEol"),n("m02s"),n("FSq9"),n("+ds/"),n("ehSZ"),n("vfE7"),n("hEXF"),n("PEyf"),n("RaWr"),n("5ErN"),n("iHmX"),n("sO1v"),n("Qfnc"),n("qYjU"),n("+pnm"),n("ol5q"),n("yMl8"),n("x1f2"),n("XwwO"),n("dGkK"),n("/eGH"),n("YLpA"),n("iw8e")},"5gvs":function(e,t,n){var i=n("erEb");t.Dispatcher=i;var r=n("KSHG"),a="undefined"!=typeof window&&!!window.addEventListener,o=/^(?:mouse|pointer|contextmenu|drag|drop)|click/;function s(e,t,n,i){return n=n||{},i||!r.canvasSupported?l(e,t,n):r.browser.firefox&&null!=t.layerX&&t.layerX!==t.offsetX?(n.zrX=t.layerX,n.zrY=t.layerY):null!=t.offsetX?(n.zrX=t.offsetX,n.zrY=t.offsetY):l(e,t,n),n}function l(e,t,n){var i=function(e){return e.getBoundingClientRect?e.getBoundingClientRect():{left:0,top:0}}(e);n.zrX=t.clientX-i.left,n.zrY=t.clientY-i.top}var u=a?function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0}:function(e){e.returnValue=!1,e.cancelBubble=!0};t.clientToLocal=s,t.normalizeEvent=function(e,t,n){if(null!=(t=t||window.event).zrX)return t;var i=t.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!=i?t.targetTouches[0]:t.changedTouches[0];r&&s(e,r,t,n)}else s(e,t,t,n),t.zrDelta=t.wheelDelta?t.wheelDelta/120:-(t.detail||0)/3;var a=t.button;return null==t.which&&void 0!==a&&o.test(t.type)&&(t.which=1&a?1:2&a?3:4&a?2:0),t},t.addEventListener=function(e,t,n){a?e.addEventListener(t,n):e.attachEvent("on"+t,n)},t.removeEventListener=function(e,t,n){a?e.removeEventListener(t,n):e.detachEvent("on"+t,n)},t.stop=u,t.notLeftMouse=function(e){return e.which>1}},"5pnV":function(e,t,n){var i=n("eqTP"),r=n("zDlt");e.exports=Object.keys||function(e){return i(e,r)}},"5zae":function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("aVg8");n("0jPB"),n("aZqG"),i.extendComponentView({type:"grid",render:function(e,t){this.group.removeAll(),e.get("show")&&this.group.add(new a.Rect({shape:e.coordinateSystem.getRect(),style:r.defaults({fill:e.get("backgroundColor")},e.getItemStyle()),silent:!0,z2:-1}))}}),i.registerPreprocessor(function(e){e.xAxis&&e.yAxis&&!e.grid&&(e.grid={})})},"5zoN":function(e,t,n){var i=n("aVg8"),r=n("AKeZ"),a=n("GKMz"),o=n("ktMJ").createSymbol,s=n("luYz"),l=n("YepE");function u(e,t,n){i.Group.call(this),this.add(this.createLine(e,t,n)),this._updateEffectSymbol(e,t)}var c=u.prototype;c.createLine=function(e,t,n){return new r(e,t,n)},c._updateEffectSymbol=function(e,t){var n=e.getItemModel(t).getModel("effect"),i=n.get("symbolSize"),r=n.get("symbol");a.isArray(i)||(i=[i,i]);var s=n.get("color")||e.getItemVisual(t,"color"),l=this.childAt(1);this._symbolType!==r&&(this.remove(l),(l=o(r,-.5,-.5,1,1,s)).z2=100,l.culling=!0,this.add(l)),l&&(l.setStyle("shadowColor",s),l.setStyle(n.getItemStyle(["color"])),l.attr("scale",i),l.setColor(s),l.attr("scale",i),this._symbolType=r,this._updateEffectAnimation(e,n,t))},c._updateEffectAnimation=function(e,t,n){var i=this.childAt(1);if(i){var r=this,o=e.getItemLayout(n),s=1e3*t.get("period"),l=t.get("loop"),u=t.get("constantSpeed"),c=a.retrieve(t.get("delay"),function(t){return t/e.count()*s/3}),d="function"==typeof c;if(i.ignore=!0,this.updateAnimationPoints(i,o),u>0&&(s=this.getLineLength(i)/u*1e3),s!==this._period||l!==this._loop){i.stopAnimation();var h=c;d&&(h=c(n)),i.__t>0&&(h=-s*i.__t),i.__t=0;var f=i.animate("",l).when(s,{__t:1}).delay(h).during(function(){r.updateSymbolPosition(i)});l||f.done(function(){r.remove(i)}),f.start()}this._period=s,this._loop=l}},c.getLineLength=function(e){return s.dist(e.__p1,e.__cp1)+s.dist(e.__cp1,e.__p2)},c.updateAnimationPoints=function(e,t){e.__p1=t[0],e.__p2=t[1],e.__cp1=t[2]||[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]},c.updateData=function(e,t,n){this.childAt(0).updateData(e,t,n),this._updateEffectSymbol(e,t)},c.updateSymbolPosition=function(e){var t=e.__p1,n=e.__p2,i=e.__cp1,r=e.__t,a=e.position,o=l.quadraticAt,s=l.quadraticDerivativeAt;a[0]=o(t[0],i[0],n[0],r),a[1]=o(t[1],i[1],n[1],r);var u=s(t[0],i[0],n[0],r),c=s(t[1],i[1],n[1],r);e.rotation=-Math.atan2(c,u)-Math.PI/2,e.ignore=!1},c.updateLayout=function(e,t){this.childAt(0).updateLayout(e,t);var n=e.getItemModel(t).getModel("effect");this._updateEffectAnimation(e,n,t)},a.inherits(u,i.Group);var d=u;e.exports=d},"6/6c":function(e,t,n){var i=n("GKMz"),r=n("xWTI"),a=n("Bd51"),o=n("wNlq"),s=o.enableClassManagement,l=o.parseClassType,u=n("vqvJ").makeInner,c=n("Q/cl"),d=n("Gqah"),h=u(),f=r.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(e,t,n,i){r.call(this,e,t,n,i),this.uid=a.getUID("ec_cpt_model")},init:function(e,t,n,i){this.mergeDefaultAndTheme(e,n)},mergeDefaultAndTheme:function(e,t){var n=this.layoutMode,r=n?c.getLayoutParams(e):{},a=t.getTheme();i.merge(e,a.get(this.mainType)),i.merge(e,this.getDefaultOption()),n&&c.mergeLayoutParam(e,r,n)},mergeOption:function(e,t){i.merge(this.option,e,!0);var n=this.layoutMode;n&&c.mergeLayoutParam(this.option,e,n)},optionUpdated:function(e,t){},getDefaultOption:function(){var e=h(this);if(!e.defaultOption){for(var t=[],n=this.constructor;n;){var r=n.prototype.defaultOption;r&&t.push(r),n=n.superClass}for(var a={},o=t.length-1;o>=0;o--)a=i.merge(a,t[o],!0);e.defaultOption=a}return e.defaultOption},getReferringComponents:function(e){return this.ecModel.queryComponents({mainType:e,index:this.get(e+"Index",!0),id:this.get(e+"Id",!0)})}});s(f,{registerWhenExtend:!0}),a.enableSubTypeDefaulter(f),a.enableTopologicalTravel(f,function(e){var t=[];i.each(f.getClassesByMainType(e),function(e){t=t.concat(e.prototype.dependencies||[])}),t=i.map(t,function(e){return l(e).main}),"dataset"!==e&&i.indexOf(t,"dataset")<=0&&t.unshift("dataset");return t}),i.mixin(f,d);var p=f;e.exports=p},"60fM":function(e,t,n){var i=n("/MtV");i.registerAction({type:"brush",event:"brush"},function(e,t){t.eachComponent({mainType:"brush",query:e},function(t){t.setAreas(e.areas)})}),i.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},function(){})},"63n7":function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("eZJ0"),o=i.extendComponentView({type:"brush",init:function(e,t){this.ecModel=e,this.api=t,this.model,(this._brushController=new a(t.getZr())).on("brush",r.bind(this._onBrush,this)).mount()},render:function(e){return this.model=e,s.apply(this,arguments)},updateTransform:s,updateView:s,dispose:function(){this._brushController.dispose()},_onBrush:function(e,t){var n=this.model.id;this.model.brushTargetManager.setOutputRanges(e,this.ecModel),(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:n,areas:r.clone(e),$from:n})}});function s(e,t,n,i){(!i||i.$from!==e.id)&&this._brushController.setPanels(e.brushTargetManager.makePanelOpts(n)).enableBrush(e.brushOption).updateCovers(e.areas.slice())}e.exports=o},"6DwN":function(e,t,n){var i=n("GKMz"),r=n("KSHG"),a=n("gIPg"),o=n("Mt3s");function s(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var l=function(){this._roots=[],this._displayList=[],this._displayListLen=0};l.prototype={constructor:l,traverse:function(e,t){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(e,t)},getDisplayList:function(e,t){return t=t||!1,e&&this.updateDisplayList(t),this._displayList},updateDisplayList:function(e){this._displayListLen=0;for(var t=this._roots,n=this._displayList,i=0,a=t.length;i<a;i++)this._updateAndAddDisplayable(t[i],null,e);n.length=this._displayListLen,r.canvasSupported&&o(n,s)},_updateAndAddDisplayable:function(e,t,n){if(!e.ignore||n){e.beforeUpdate(),e.__dirty&&e.update(),e.afterUpdate();var i=e.clipPath;if(i){t=t?t.slice():[];for(var r=i,a=e;r;)r.parent=a,r.updateTransform(),t.push(r),a=r,r=r.clipPath}if(e.isGroup){for(var o=e._children,s=0;s<o.length;s++){var l=o[s];e.__dirty&&(l.__dirty=!0),this._updateAndAddDisplayable(l,t,n)}e.__dirty=!1}else e.__clipPaths=t,this._displayList[this._displayListLen++]=e}},addRoot:function(e){e.__storage!==this&&(e instanceof a&&e.addChildrenToStorage(this),this.addToStorage(e),this._roots.push(e))},delRoot:function(e){if(null==e){for(var t=0;t<this._roots.length;t++){var n=this._roots[t];n instanceof a&&n.delChildrenFromStorage(this)}return this._roots=[],this._displayList=[],void(this._displayListLen=0)}if(e instanceof Array){t=0;for(var r=e.length;t<r;t++)this.delRoot(e[t])}else{var o=i.indexOf(this._roots,e);o>=0&&(this.delFromStorage(e),this._roots.splice(o,1),e instanceof a&&e.delChildrenFromStorage(this))}},addToStorage:function(e){return e&&(e.__storage=this,e.dirty(!1)),this},delFromStorage:function(e){return e&&(e.__storage=null),this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:s};var u=l;e.exports=u},"6OxN":function(e,t){e.exports=function(){}},"6SiW":function(e,t,n){"use strict";t.__esModule=!0,t.default=function(){if(a.default.prototype.$isServer)return 0;if(void 0!==o)return o;var e=document.createElement("div");e.className="el-scrollbar__wrap",e.style.visibility="hidden",e.style.width="100px",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);var t=e.offsetWidth;e.style.overflow="scroll";var n=document.createElement("div");n.style.width="100%",e.appendChild(n);var i=n.offsetWidth;return e.parentNode.removeChild(e),o=t-i};var i,r=n("IvJb"),a=(i=r)&&i.__esModule?i:{default:i};var o=void 0},"6dNT":function(e,t,n){var i=n("GKMz"),r=n("M7eM"),a=n("abCA"),o=n("S/ih"),s=n("BDGf"),l=function(e,t,n,r){var a=e.getData(),s=r.type;if(!i.isArray(r)&&("min"===s||"max"===s||"average"===s||"median"===s||null!=r.xAxis||null!=r.yAxis)){var l,u;if(null!=r.yAxis||null!=r.xAxis)l=null!=r.yAxis?"y":"x",t.getAxis(l),u=i.retrieve(r.yAxis,r.xAxis);else{var c=o.getAxisInfo(r,a,t,e);l=c.valueDataDim,c.valueAxis,u=o.numCalculate(a,l,s)}var d="x"===l?0:1,h=1-d,f=i.clone(r),p={};f.type=null,f.coord=[],p.coord=[],f.coord[h]=-1/0,p.coord[h]=1/0;var m=n.get("precision");m>=0&&"number"==typeof u&&(u=+u.toFixed(Math.min(m,20))),f.coord[d]=p.coord[d]=u,r=[f,p,{type:s,valueIndex:r.valueIndex,value:u}]}return(r=[o.dataTransform(e,r[0]),o.dataTransform(e,r[1]),i.extend({},r[2])])[2].type=r[2].type||"",i.merge(r[2],r[0]),i.merge(r[2],r[1]),r};function u(e){return!isNaN(e)&&!isFinite(e)}function c(e,t,n,i){var r=1-e,a=i.dimensions[e];return u(t[r])&&u(n[r])&&t[e]===n[e]&&i.getAxis(a).containData(t[e])}function d(e,t){if("cartesian2d"===e.type){var n=t[0].coord,i=t[1].coord;if(n&&i&&(c(1,n,i,e)||c(0,n,i,e)))return!0}return o.dataFilter(e,t[0])&&o.dataFilter(e,t[1])}function h(e,t,n,i,r){var o,s=i.coordinateSystem,l=e.getItemModel(t),c=a.parsePercent(l.get("x"),r.getWidth()),d=a.parsePercent(l.get("y"),r.getHeight());if(isNaN(c)||isNaN(d)){if(i.getMarkerPosition)o=i.getMarkerPosition(e.getValues(e.dimensions,t));else{var h=s.dimensions,f=e.get(h[0],t),p=e.get(h[1],t);o=s.dataToPoint([f,p])}if("cartesian2d"===s.type){var m=s.getAxis("x"),g=s.getAxis("y");h=s.dimensions;u(e.get(h[0],t))?o[0]=m.toGlobalCoord(m.getExtent()[n?0:1]):u(e.get(h[1],t))&&(o[1]=g.toGlobalCoord(g.getExtent()[n?0:1]))}isNaN(c)||(o[0]=c),isNaN(d)||(o[1]=d)}else o=[c,d];e.setItemLayout(t,o)}var f=n("eGS6").extend({type:"markLine",updateTransform:function(e,t,n){t.eachSeries(function(e){var t=e.markLineModel;if(t){var i=t.getData(),r=t.__from,a=t.__to;r.each(function(t){h(r,t,!0,e,n),h(a,t,!1,e,n)}),i.each(function(e){i.setItemLayout(e,[r.getItemLayout(e),a.getItemLayout(e)])}),this.markerGroupMap.get(e.id).updateLayout()}},this)},renderSeries:function(e,t,n,a){var u=e.coordinateSystem,c=e.id,f=e.getData(),p=this.markerGroupMap,m=p.get(c)||p.set(c,new s);this.group.add(m.group);var g=function(e,t,n){var a;a=e?i.map(e&&e.dimensions,function(e){var n=t.getData().getDimensionInfo(t.getData().mapDimension(e))||{};return i.defaults({name:e},n)}):[{name:"value",type:"float"}];var s=new r(a,n),u=new r(a,n),c=new r([],n),h=i.map(n.get("data"),i.curry(l,t,e,n));e&&(h=i.filter(h,i.curry(d,e)));var f=e?o.dimValueGetter:function(e){return e.value};return s.initData(i.map(h,function(e){return e[0]}),null,f),u.initData(i.map(h,function(e){return e[1]}),null,f),c.initData(i.map(h,function(e){return e[2]})),c.hasItemOption=!0,{from:s,to:u,line:c}}(u,e,t),v=g.from,y=g.to,b=g.line;t.__from=v,t.__to=y,t.setData(b);var _=t.get("symbol"),x=t.get("symbolSize");function w(t,n,i){var r=t.getItemModel(n);h(t,n,i,e,a),t.setItemVisual(n,{symbolSize:r.get("symbolSize")||x[i?0:1],symbol:r.get("symbol",!0)||_[i?0:1],color:r.get("itemStyle.color")||f.getVisual("color")})}i.isArray(_)||(_=[_,_]),"number"==typeof x&&(x=[x,x]),g.from.each(function(e){w(v,e,!0),w(y,e,!1)}),b.each(function(e){var t=b.getItemModel(e).get("lineStyle.color");b.setItemVisual(e,{color:t||v.getItemVisual(e,"color")}),b.setItemLayout(e,[v.getItemLayout(e),y.getItemLayout(e)]),b.setItemVisual(e,{fromSymbolSize:v.getItemVisual(e,"symbolSize"),fromSymbol:v.getItemVisual(e,"symbol"),toSymbolSize:y.getItemVisual(e,"symbolSize"),toSymbol:y.getItemVisual(e,"symbol")})}),m.updateData(b),g.line.eachItemGraphicEl(function(e,n){e.traverse(function(e){e.dataModel=t})}),m.__keep=!0,m.group.silent=t.get("silent")||e.get("silent")}});e.exports=f},"6xI6":function(e,t,n){var i=n("/MtV"),r=n("GKMz");function a(e,t,n){var i,a={},o="toggleSelected"===e;return n.eachComponent("legend",function(n){o&&null!=i?n[i?"select":"unSelect"](t.name):(n[e](t.name),i=n.isSelected(t.name));var s=n.getData();r.each(s,function(e){var t=e.get("name");if("\n"!==t&&""!==t){var i=n.isSelected(t);a.hasOwnProperty(t)?a[t]=a[t]&&i:a[t]=i}})}),{name:t.name,selected:a}}i.registerAction("legendToggleSelect","legendselectchanged",r.curry(a,"toggleSelected")),i.registerAction("legendSelect","legendselected",r.curry(a,"select")),i.registerAction("legendUnSelect","legendunselected",r.curry(a,"unSelect"))},"75+0":function(e,t,n){var i=n("biYF")("iterator"),r=!1;try{var a=[7][i]();a.return=function(){r=!0},Array.from(a,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!r)return!1;var n=!1;try{var a=[7],o=a[i]();o.next=function(){return{done:n=!0}},a[i]=function(){return o},e(a)}catch(e){}return n}},"7J6k":function(e,t,n){var i=n("/r4/"),r=n("9akD").f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?function(e){try{return r(e)}catch(e){return o.slice()}}(e):r(i(e))}},"7KCQ":function(e,t,n){var i=n("qIgY")([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),r={getAreaStyle:function(e,t){return i(this,e,t)}};e.exports=r},"7MGq":function(e,t,n){var i=n("aVg8"),r=n("lYM0").getDefaultLabel;function a(e,t){"outside"===e.textPosition&&(e.textPosition=t)}t.setLabel=function(e,t,n,o,s,l,u){var c=n.getModel("label"),d=n.getModel("emphasis.label");i.setLabelStyle(e,t,c,d,{labelFetcher:s,labelDataIndex:l,defaultText:r(s.getData(),l),isRectText:!0,autoColor:o}),a(e),a(t)}},"7Rvj":function(e,t,n){var i=n("GKMz"),r=n("Zjj5"),a=n("abCA").linearMap,o=i.each,s=i.isObject,l=-1,u=function(e){var t=e.mappingMethod,n=e.type,r=this.option=i.clone(e);this.type=n,this.mappingMethod=t,this._normalizeData=_[t];var a=c[n];this.applyVisual=a.applyVisual,this.getColorMapper=a.getColorMapper,this._doMap=a._doMap[t],"piecewise"===t?(d(r),function(e){var t=e.pieceList;e.hasSpecialVisual=!1,i.each(t,function(t,n){t.originIndex=n,null!=t.visual&&(e.hasSpecialVisual=!0)})}(r)):"category"===t?r.categories?function(e){var t=e.categories,n=e.visual,r=e.categoryMap={};if(o(t,function(e,t){r[e]=t}),!i.isArray(n)){var a=[];i.isObject(n)?o(n,function(e,t){var n=r[t];a[null!=n?n:l]=e}):a[l]=n,n=b(e,a)}for(var s=t.length-1;s>=0;s--)null==n[s]&&(delete r[t[s]],t.pop())}(r):d(r,!0):(i.assert("linear"!==t||r.dataExtent),d(r))};u.prototype={constructor:u,mapValueToVisual:function(e){var t=this._normalizeData(e);return this._doMap(t,e)},getNormalizer:function(){return i.bind(this._normalizeData,this)}};var c=u.visualHandlers={color:{applyVisual:p("color"),getColorMapper:function(){var e=this.option;return i.bind("category"===e.mappingMethod?function(e,t){return!t&&(e=this._normalizeData(e)),m.call(this,e)}:function(t,n,i){var a=!!i;return!n&&(t=this._normalizeData(t)),i=r.fastLerp(t,e.parsedVisual,i),a?i:r.stringify(i,"rgba")},this)},_doMap:{linear:function(e){return r.stringify(r.fastLerp(e,this.option.parsedVisual),"rgba")},category:m,piecewise:function(e,t){var n=y.call(this,t);return null==n&&(n=r.stringify(r.fastLerp(e,this.option.parsedVisual),"rgba")),n},fixed:g}},colorHue:h(function(e,t){return r.modifyHSL(e,t)}),colorSaturation:h(function(e,t){return r.modifyHSL(e,null,t)}),colorLightness:h(function(e,t){return r.modifyHSL(e,null,null,t)}),colorAlpha:h(function(e,t){return r.modifyAlpha(e,t)}),opacity:{applyVisual:p("opacity"),_doMap:v([0,1])},liftZ:{applyVisual:p("liftZ"),_doMap:{linear:g,category:g,piecewise:g,fixed:g}},symbol:{applyVisual:function(e,t,n){var r=this.mapValueToVisual(e);if(i.isString(r))n("symbol",r);else if(s(r))for(var a in r)r.hasOwnProperty(a)&&n(a,r[a])},_doMap:{linear:f,category:m,piecewise:function(e,t){var n=y.call(this,t);return null==n&&(n=f.call(this,e)),n},fixed:g}},symbolSize:{applyVisual:p("symbolSize"),_doMap:v([0,1])}};function d(e,t){var n=e.visual,r=[];i.isObject(n)?o(n,function(e){r.push(e)}):null!=n&&r.push(n);t||1!==r.length||{color:1,symbol:1}.hasOwnProperty(e.type)||(r[1]=r[0]),b(e,r)}function h(e){return{applyVisual:function(t,n,i){t=this.mapValueToVisual(t),i("color",e(n("color"),t))},_doMap:v([0,1])}}function f(e){var t=this.option.visual;return t[Math.round(a(e,[0,1],[0,t.length-1],!0))]||{}}function p(e){return function(t,n,i){i(e,this.mapValueToVisual(t))}}function m(e){var t=this.option.visual;return t[this.option.loop&&e!==l?e%t.length:e]}function g(){return this.option.visual[0]}function v(e){return{linear:function(t){return a(t,e,this.option.visual,!0)},category:m,piecewise:function(t,n){var i=y.call(this,n);return null==i&&(i=a(t,e,this.option.visual,!0)),i},fixed:g}}function y(e){var t=this.option,n=t.pieceList;if(t.hasSpecialVisual){var i=n[u.findPieceIndex(e,n)];if(i&&i.visual)return i.visual[this.type]}}function b(e,t){return e.visual=t,"color"===e.type&&(e.parsedVisual=i.map(t,function(e){return r.parse(e)})),t}var _={linear:function(e){return a(e,this.option.dataExtent,[0,1],!0)},piecewise:function(e){var t=this.option.pieceList,n=u.findPieceIndex(e,t,!0);if(null!=n)return a(n,[0,t.length-1],[0,1],!0)},category:function(e){var t=this.option.categories?this.option.categoryMap[e]:e;return null==t?l:t},fixed:i.noop};function x(e,t,n){return e?t<=n:t<n}u.listVisualTypes=function(){var e=[];return i.each(c,function(t,n){e.push(n)}),e},u.addVisualHandler=function(e,t){c[e]=t},u.isValidType=function(e){return c.hasOwnProperty(e)},u.eachVisual=function(e,t,n){i.isObject(e)?i.each(e,t,n):t.call(n,e)},u.mapVisual=function(e,t,n){var r,a=i.isArray(e)?[]:i.isObject(e)?{}:(r=!0,null);return u.eachVisual(e,function(e,i){var o=t.call(n,e,i);r?a=o:a[i]=o}),a},u.retrieveVisuals=function(e){var t,n={};return e&&o(c,function(i,r){e.hasOwnProperty(r)&&(n[r]=e[r],t=!0)}),t?n:null},u.prepareVisualTypes=function(e){if(s(e)){var t=[];o(e,function(e,n){t.push(n)}),e=t}else{if(!i.isArray(e))return[];e=e.slice()}return e.sort(function(e,t){return"color"===t&&"color"!==e&&0===e.indexOf("color")?1:-1}),e},u.dependsOn=function(e,t){return"color"===t?!(!e||0!==e.indexOf(t)):e===t},u.findPieceIndex=function(e,t,n){for(var i,r=1/0,a=0,o=t.length;a<o;a++){var s=t[a].value;if(null!=s){if(s===e||"string"==typeof s&&s===e+"")return a;n&&d(s,a)}}for(a=0,o=t.length;a<o;a++){var l=t[a],u=l.interval,c=l.close;if(u){if(u[0]===-1/0){if(x(c[1],e,u[1]))return a}else if(u[1]===1/0){if(x(c[0],u[0],e))return a}else if(x(c[0],u[0],e)&&x(c[1],e,u[1]))return a;n&&d(u[0],a),n&&d(u[1],a)}}if(n)return e===1/0?t.length-1:e===-1/0?0:i;function d(t,n){var a=Math.abs(t-e);a<r&&(r=a,i=n)}};var w=u;e.exports=w},"7T7k":function(e,t,n){var i=n("vqvJ"),r=i.makeInner,a=i.normalizeToArray,o=r();var s={clearColorPalette:function(){o(this).colorIdx=0,o(this).colorNameMap={}},getColorFromPalette:function(e,t,n){var i=o(t=t||this),r=i.colorIdx||0,s=i.colorNameMap=i.colorNameMap||{};if(s.hasOwnProperty(e))return s[e];var l=a(this.get("color",!0)),u=this.get("colorLayer",!0),c=null!=n&&u?function(e,t){for(var n=e.length,i=0;i<n;i++)if(e[i].length>t)return e[i];return e[n-1]}(u,n):l;if((c=c||l)&&c.length){var d=c[r];return e&&(s[e]=d),i.colorIdx=(r+1)%c.length,d}}};e.exports=s},"7aKb":function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("V4EM"),o=n("xWTI"),s=n("8jLM"),l=a.valueAxis;function u(e,t){return r.defaults({show:t},e)}var c=i.extendComponentModel({type:"radar",optionUpdated:function(){var e=this.get("boundaryGap"),t=this.get("splitNumber"),n=this.get("scale"),i=this.get("axisLine"),a=this.get("axisTick"),l=this.get("axisLabel"),u=this.get("name"),c=this.get("name.show"),d=this.get("name.formatter"),h=this.get("nameGap"),f=this.get("triggerEvent"),p=r.map(this.get("indicator")||[],function(p){null!=p.max&&p.max>0&&!p.min?p.min=0:null!=p.min&&p.min<0&&!p.max&&(p.max=0);var m=u;if(null!=p.color&&(m=r.defaults({color:p.color},u)),p=r.merge(r.clone(p),{boundaryGap:e,splitNumber:t,scale:n,axisLine:i,axisTick:a,axisLabel:l,name:p.text,nameLocation:"end",nameGap:h,nameTextStyle:m,triggerEvent:f},!1),c||(p.name=""),"string"==typeof d){var g=p.name;p.name=d.replace("{value}",null!=g?g:"")}else"function"==typeof d&&(p.name=d(p.name,p));var v=r.extend(new o(p,null,this.ecModel),s);return v.mainType="radar",v.componentIndex=this.componentIndex,v},this);this.getIndicatorModels=function(){return p}},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,name:{show:!0},boundaryGap:[0,0],splitNumber:5,nameGap:15,scale:!1,shape:"polygon",axisLine:r.merge({lineStyle:{color:"#bbb"}},l.axisLine),axisLabel:u(l.axisLabel,!1),axisTick:u(l.axisTick,!1),splitLine:u(l.splitLine,!0),splitArea:u(l.splitArea,!0),indicator:[]}});e.exports=c},"7eLB":function(e,t){var n={};t.register=function(e,t){n[e]=t},t.get=function(e){return n[e]}},"7jCV":function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=n("d2Vn"),o=n("I22d").radialCoordinate,s=n("/MtV").extendChartView({type:"tree",init:function(e,t){this._oldTree,this._mainGroup=new r.Group,this.group.add(this._mainGroup)},render:function(e,t,n,i){var r=e.getData(),a=e.layoutInfo,o=this._mainGroup,s=e.get("layout");"radial"===s?o.attr("position",[a.x+a.width/2,a.y+a.height/2]):o.attr("position",[a.x,a.y]);var u=this._data,h={expandAndCollapse:e.get("expandAndCollapse"),layout:s,orient:e.getOrient(),curvature:e.get("lineStyle.curveness"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverAnimation:e.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};r.diff(u).add(function(t){l(r,t)&&c(r,t,null,o,e,h)}).update(function(t,n){var i=u.getItemGraphicEl(n);l(r,t)?c(r,t,i,o,e,h):i&&d(u,n,i,o,e,h)}).remove(function(t){var n=u.getItemGraphicEl(t);n&&d(u,t,n,o,e,h)}).execute(),!0===h.expandAndCollapse&&r.eachItemGraphicEl(function(t,i){t.off("click").on("click",function(){n.dispatchAction({type:"treeExpandAndCollapse",seriesId:e.id,dataIndex:i})})}),this._data=r},dispose:function(){},remove:function(){this._mainGroup.removeAll(),this._data=null}});function l(e,t){var n=e.getItemLayout(t);return n&&!isNaN(n.x)&&!isNaN(n.y)&&"none"!==e.getItemVisual(t,"symbol")}function u(e,t,n){return n.itemModel=t,n.itemStyle=t.getModel("itemStyle").getItemStyle(),n.hoverItemStyle=t.getModel("emphasis.itemStyle").getItemStyle(),n.lineStyle=t.getModel("lineStyle").getLineStyle(),n.labelModel=t.getModel("label"),n.hoverLabelModel=t.getModel("emphasis.label"),!1===e.isExpand&&0!==e.children.length?n.symbolInnerColor=n.itemStyle.fill:n.symbolInnerColor="#fff",n}function c(e,t,n,o,s,l){var c=!n,d=e.tree.getNodeByDataIndex(t),f=(l=u(d,d.getModel(),l),e.tree.root),p=d.parentNode===f?d:d.parentNode||d,m=e.getItemGraphicEl(p.dataIndex),g=p.getLayout(),v=m?{x:m.position[0],y:m.position[1],rawX:m.__radialOldRawX,rawY:m.__radialOldRawY}:g,y=d.getLayout();c?(n=new a(e,t,l)).attr("position",[v.x,v.y]):n.updateData(e,t,l),n.__radialOldRawX=n.__radialRawX,n.__radialOldRawY=n.__radialRawY,n.__radialRawX=y.rawX,n.__radialRawY=y.rawY,o.add(n),e.setItemGraphicEl(t,n),r.updateProps(n,{position:[y.x,y.y]},s);var b=n.getSymbolPath();if("radial"===l.layout){var _,x,w=f.children[0],S=w.getLayout(),C=w.children.length;if(y.x===S.x&&!0===d.isExpand){var M={};M.x=(w.children[0].getLayout().x+w.children[C-1].getLayout().x)/2,M.y=(w.children[0].getLayout().y+w.children[C-1].getLayout().y)/2,(_=Math.atan2(M.y-S.y,M.x-S.x))<0&&(_=2*Math.PI+_),(x=M.x<S.x)&&(_-=Math.PI)}else(_=Math.atan2(y.y-S.y,y.x-S.x))<0&&(_=2*Math.PI+_),0===d.children.length||0!==d.children.length&&!1===d.isExpand?(x=y.x<S.x)&&(_-=Math.PI):(x=y.x>S.x)||(_-=Math.PI);var k=x?"left":"right";b.setStyle({textPosition:k,textRotation:-_,textOrigin:"center",verticalAlign:"middle"})}if(d.parentNode&&d.parentNode!==f){var T=n.__edge;T||(T=n.__edge=new r.BezierCurve({shape:h(l,v,v),style:i.defaults({opacity:0},l.lineStyle)})),r.updateProps(T,{shape:h(l,g,y),style:{opacity:1}},s),o.add(T)}}function d(e,t,n,i,a,o){for(var s,l=e.tree.getNodeByDataIndex(t),c=e.tree.root,d=(o=u(l,l.getModel(),o),l.parentNode===c?l:l.parentNode||l);null==(s=d.getLayout());)d=d.parentNode===c?d:d.parentNode||d;r.updateProps(n,{position:[s.x+1,s.y+1]},a,function(){i.remove(n),e.setItemGraphicEl(t,null)}),n.fadeOut(null,{keepLabel:!0});var f=n.__edge;f&&r.updateProps(f,{shape:h(o,s,s),style:{opacity:0}},a,function(){i.remove(f)})}function h(e,t,n){var i,r,a,s,l=e.orient;if("radial"===e.layout){var u=t.rawX,c=t.rawY,d=n.rawX,h=n.rawY,f=o(u,c),p=o(u,c+(h-c)*e.curvature),m=o(d,h+(c-h)*e.curvature),g=o(d,h);return{x1:f.x,y1:f.y,x2:g.x,y2:g.y,cpx1:p.x,cpy1:p.y,cpx2:m.x,cpy2:m.y}}u=t.x,c=t.y,d=n.x,h=n.y;return"LR"!==l&&"RL"!==l||(i=u+(d-u)*e.curvature,r=c,a=d+(u-d)*e.curvature,s=h),"TB"!==l&&"BT"!==l||(i=u,r=c+(h-c)*e.curvature,a=d,s=h+(c-h)*e.curvature),{x1:u,y1:c,x2:d,y2:h,cpx1:i,cpy1:r,cpx2:a,cpy2:s}}e.exports=s},"7k5d":function(e,t,n){var i=n("GKMz"),r={Russia:[100,60],"United States":[-99,38],"United States of America":[-99,38]};e.exports=function(e){i.each(e.regions,function(e){var t=r[e.name];if(t){var n=e.center;n[0]=t[0],n[1]=t[1]}})}},"7n9C":function(e,t,n){var i=n("qIgY")([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),r={getLineStyle:function(e){var t=i(this,e),n=this.getLineDash(t.lineWidth);return n&&(t.lineDash=n),t},getLineDash:function(e){null==e&&(e=1);var t=this.get("type"),n=Math.max(e,2),i=4*e;return"solid"===t||null==t?null:"dashed"===t?[i,i]:[n,n]}};e.exports=r},"7p3N":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},"7zqV":function(e,t,n){n("HYVc"),n("4iki"),n("1oKu")},"802A":function(e,t,n){var i=n("GKMz"),r=n("fAuK");function a(e,t){t=t||[0,360],r.call(this,"angle",e,t),this.type="category"}a.prototype={constructor:a,pointToData:function(e,t){return this.polar.pointToData(e,t)["radius"===this.dim?0:1]},dataToAngle:r.prototype.dataToCoord,angleToData:r.prototype.coordToData},i.inherits(a,r);var o=a;e.exports=o},"83dT":function(e,t,n){var i="\0_ec_interaction_mutex";function r(e){return e[i]||(e[i]={})}n("/MtV").registerAction({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),t.take=function(e,t,n){r(e)[t]=n},t.release=function(e,t,n){var i=r(e);i[t]===n&&(i[t]=null)},t.isTaken=function(e,t){return!!r(e)[t]}},"87Aa":function(e,t,n){var i=n("GKMz"),r=n("JBj0"),a=n("abCA"),o=[20,140],s=r.extend({type:"visualMap.continuous",defaultOption:{align:"auto",calculable:!1,range:null,realtime:!0,itemHeight:null,itemWidth:null,hoverLink:!0,hoverLinkDataSize:null,hoverLinkOnHandle:null},optionUpdated:function(e,t){s.superApply(this,"optionUpdated",arguments),this.resetExtent(),this.resetVisual(function(e){e.mappingMethod="linear",e.dataExtent=this.getExtent()}),this._resetRange()},resetItemSize:function(){s.superApply(this,"resetItemSize",arguments);var e=this.itemSize;"horizontal"===this._orient&&e.reverse(),(null==e[0]||isNaN(e[0]))&&(e[0]=o[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=o[1])},_resetRange:function(){var e=this.getExtent(),t=this.option.range;!t||t.auto?(e.auto=1,this.option.range=e):i.isArray(t)&&(t[0]>t[1]&&t.reverse(),t[0]=Math.max(t[0],e[0]),t[1]=Math.min(t[1],e[1]))},completeVisualOption:function(){r.prototype.completeVisualOption.apply(this,arguments),i.each(this.stateList,function(e){var t=this.option.controller[e].symbolSize;t&&t[0]!==t[1]&&(t[0]=0)},this)},setSelected:function(e){this.option.range=e.slice(),this._resetRange()},getSelected:function(){var e=this.getExtent(),t=a.asc((this.get("range")||[]).slice());return t[0]>e[1]&&(t[0]=e[1]),t[1]>e[1]&&(t[1]=e[1]),t[0]<e[0]&&(t[0]=e[0]),t[1]<e[0]&&(t[1]=e[0]),t},getValueState:function(e){var t=this.option.range,n=this.getExtent();return(t[0]<=n[0]||t[0]<=e)&&(t[1]>=n[1]||e<=t[1])?"inRange":"outOfRange"},findTargetDataIndices:function(e){var t=[];return this.eachTargetSeries(function(n){var i=[],r=n.getData();r.each(this.getDataDimension(r),function(t,n){e[0]<=t&&t<=e[1]&&i.push(n)},this),t.push({seriesId:n.id,dataIndex:i})},this),t},getVisualMeta:function(e){var t=l(this,"outOfRange",this.getExtent()),n=l(this,"inRange",this.option.range.slice()),i=[];function r(t,n){i.push({value:t,color:e(t,n)})}for(var a=0,o=0,s=n.length,u=t.length;o<u&&(!n.length||t[o]<=n[0]);o++)t[o]<n[a]&&r(t[o],"outOfRange");for(var c=1;a<s;a++,c=0)c&&i.length&&r(n[a],"outOfRange"),r(n[a],"inRange");for(c=1;o<u;o++)(!n.length||n[n.length-1]<t[o])&&(c&&(i.length&&r(i[i.length-1].value,"outOfRange"),c=0),r(t[o],"outOfRange"));var d=i.length;return{stops:i,outerColors:[d?i[0].color:"transparent",d?i[d-1].color:"transparent"]}}});function l(e,t,n){if(n[0]===n[1])return n.slice();for(var i=(n[1]-n[0])/200,r=n[0],a=[],o=0;o<=200&&r<n[1];o++)a.push(r),r+=i;return a.push(n[1]),a}var u=s;e.exports=u},"8BlH":function(e,t){e.exports=function(e){e.eachSeriesByType("map",function(e){var t=e.get("color"),n=e.getModel("itemStyle"),i=n.get("areaColor"),r=n.get("color")||t[e.seriesIndex%t.length];e.getData().setVisual({areaColor:i,color:r})})}},"8FSe":function(e,t,n){var i=n("aVg8"),r=n("UPaQ"),a=n("dRQw"),o=n("2dmG"),s=n("MiuX"),l=["x","y"],u=["width","height"],c=r.extend({makeElOption:function(e,t,n,i,r){var s=n.axis,l=s.coordinateSystem,u=f(l,1-h(s)),c=l.dataToPoint(t)[0],p=i.get("type");if(p&&"none"!==p){var m=a.buildElStyle(i),g=d[p](s,c,u,m);g.style=m,e.graphicKey=g.type,e.pointer=g}var v=o.layout(n);a.buildCartesianSingleLabelElOption(t,e,v,n,i,r)},getHandleTransform:function(e,t,n){var i=o.layout(t,{labelInside:!1});return i.labelMargin=n.get("handle.margin"),{position:a.getTransformedPosition(t.axis,e,i),rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(e,t,n,i){var r=n.axis,a=r.coordinateSystem,o=h(r),s=f(a,o),l=e.position;l[o]+=t[o],l[o]=Math.min(s[1],l[o]),l[o]=Math.max(s[0],l[o]);var u=f(a,1-o),c=(u[1]+u[0])/2,d=[c,c];return d[o]=l[o],{position:l,rotation:e.rotation,cursorPoint:d,tooltipOption:{verticalAlign:"middle"}}}}),d={line:function(e,t,n,r){var o=a.makeLineShape([t,n[0]],[t,n[1]],h(e));return i.subPixelOptimizeLine({shape:o,style:r}),{type:"Line",shape:o}},shadow:function(e,t,n,i){var r=e.getBandWidth(),o=n[1]-n[0];return{type:"Rect",shape:a.makeRectShape([t-r/2,n[0]],[r,o],h(e))}}};function h(e){return e.isHorizontal()?0:1}function f(e,t){var n=e.getRect();return[n[l[t]],n[l[t]]+n[u[t]]]}s.registerAxisPointerClass("SingleAxisPointer",c);var p=c;e.exports=p},"8JGq":function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},"8LEe":function(e,t,n){var i=n("+sAc"),r=n("Q/cl").getLayoutRect,a=n("BwzW");e.exports=function(e,t){var n=[];return e.eachSeriesByType("graph",function(e){var o=e.get("coordinateSystem");if(!o||"view"===o){var s=e.getData(),l=s.mapArray(function(e){var t=s.getItemModel(e);return[+t.get("x"),+t.get("y")]}),u=[],c=[];a.fromPoints(l,u,c),c[0]-u[0]==0&&(c[0]+=1,u[0]-=1),c[1]-u[1]==0&&(c[1]+=1,u[1]-=1);var d=(c[0]-u[0])/(c[1]-u[1]),h=function(e,t,n){var i=e.getBoxLayoutParams();return i.aspect=n,r(i,{width:t.getWidth(),height:t.getHeight()})}(e,t,d);isNaN(d)&&(u=[h.x,h.y],c=[h.x+h.width,h.y+h.height]);var f=c[0]-u[0],p=c[1]-u[1],m=h.width,g=h.height,v=e.coordinateSystem=new i;v.zoomLimit=e.get("scaleLimit"),v.setBoundingRect(u[0],u[1],f,p),v.setViewRect(h.x,h.y,m,g),v.setCenter(e.get("center")),v.setZoom(e.get("zoom")),n.push(v)}}),n}},"8Nvm":function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},"8PsL":function(e,t,n){var i=n("Q/cl"),r=n("SULL"),a=n("GKMz");n("KJ1c").__DEV__;function o(e,t,n){a.each(e,function(e){var i,r,a,o=0,s=e.length;for(e.sort(m),a=0;a<s;a++){if((r=o-(i=e[a]).getLayout().y)>0){var l=i.getLayout().y+r;i.setLayout({y:l},!0)}o=i.getLayout().y+i.getLayout().dy+t}if((r=o-t-n)>0){l=i.getLayout().y-r;for(i.setLayout({y:l},!0),o=i.getLayout().y,a=s-2;a>=0;--a)(r=(i=e[a]).getLayout().y+i.getLayout().dy+t-o)>0&&(l=i.getLayout().y-r,i.setLayout({y:l},!0)),o=i.getLayout().y}})}function s(e,t){a.each(e.slice().reverse(),function(e){a.each(e,function(e){if(e.outEdges.length){var n=f(e.outEdges,l)/f(e.outEdges,v),i=e.getLayout().y+(n-p(e))*t;e.setLayout({y:i},!0)}})})}function l(e){return p(e.node2)*e.getValue()}function u(e,t){a.each(e,function(e){a.each(e,function(e){if(e.inEdges.length){var n=f(e.inEdges,c)/f(e.inEdges,v),i=e.getLayout().y+(n-p(e))*t;e.setLayout({y:i},!0)}})})}function c(e){return p(e.node1)*e.getValue()}function d(e,t){return e.node2.getLayout().y-t.node2.getLayout().y}function h(e,t){return e.node1.getLayout().y-t.node1.getLayout().y}function f(e,t){for(var n=0,i=e.length,r=-1;++r<i;){var a=+t.call(e,e[r],r);isNaN(a)||(n+=a)}return n}function p(e){return e.getLayout().y+e.getLayout().dy/2}function m(e,t){return e.getLayout().y-t.getLayout().y}function g(e,t){return e-t}function v(e){return e.getValue()}e.exports=function(e,t,n){e.eachSeriesByType("sankey",function(e){var n=e.get("nodeWidth"),l=e.get("nodeGap"),c=function(e,t){return i.getLayoutRect(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}(e,t);e.layoutInfo=c;var p=c.width,m=c.height,y=e.getGraph(),b=y.nodes,_=y.edges;!function(e){a.each(e,function(e){var t=f(e.outEdges,v),n=f(e.inEdges,v),i=Math.max(t,n);e.setLayout({value:i},!0)})}(b),function(e,t,n,i,l,c,f){(function(e,t,n,i){for(var r=[],o=[],s=[],l=[],u=0,c=0;c<t.length;c++)r[c]=1;for(var c=0;c<e.length;c++)o[c]=e[c].inEdges.length,0===o[c]&&s.push(e[c]);for(;s.length;)a.each(s,function(i){i.setLayout({x:u},!0),i.setLayout({dx:n},!0),a.each(i.outEdges,function(n){var i=t.indexOf(n);r[i]=0;var a=n.node2,s=e.indexOf(a);0==--o[s]&&l.push(a)})}),++u,s=l,l=[];for(var c=0;c<r.length;c++);(function(e,t){a.each(e,function(e){e.outEdges.length||e.setLayout({x:t-1},!0)})})(e,u),function(e,t){a.each(e,function(e){var n=e.getLayout().x*t;e.setLayout({x:n},!0)})}(e,(i-n)/(u-1))})(e,t,n,l),function(e,t,n,i,l){var c=r().key(function(e){return e.getLayout().x}).sortKeys(g).entries(e).map(function(e){return e.values});(function(e,t,n,i,r){var o=[];a.each(t,function(e){var t=e.length,n=0;a.each(e,function(e){n+=e.getLayout().value});var s=(i-(t-1)*r)/n;o.push(s)}),o.sort(function(e,t){return e-t});var s=o[0];a.each(t,function(e){a.each(e,function(e,t){e.setLayout({y:t},!0);var n=e.getLayout().value*s;e.setLayout({dy:n},!0)})}),a.each(n,function(e){var t=+e.getValue()*s;e.setLayout({dy:t},!0)})})(0,c,t,n,i),o(c,i,n);for(var d=1;l>0;l--)s(c,d*=.99),o(c,i,n),u(c,d),o(c,i,n)}(e,t,c,i,f),function(e){a.each(e,function(e){e.outEdges.sort(d),e.inEdges.sort(h)}),a.each(e,function(e){var t=0,n=0;a.each(e.outEdges,function(e){e.setLayout({sy:t},!0),t+=e.getLayout().dy}),a.each(e.inEdges,function(e){e.setLayout({ty:n},!0),n+=e.getLayout().dy})})}(e)}(b,_,n,l,p,m,0!==a.filter(b,function(e){return 0===e.getLayout().value}).length?0:e.get("layoutIterations"))})}},"8Uut":function(e,t,n){var i=n("Q/cl"),r=i.getLayoutRect,a=i.box,o=i.positionElement,s=n("uxQp"),l=n("aVg8");t.layout=function(e,t,n){var i=t.getBoxLayoutParams(),s=t.get("padding"),l={width:n.getWidth(),height:n.getHeight()},u=r(i,l,s);a(t.get("orient"),e,t.get("itemGap"),u.width,u.height),o(e,i,l,s)},t.makeBackground=function(e,t){var n=s.normalizeCssArray(t.get("padding")),i=t.getItemStyle(["color","opacity"]);return i.fill=t.get("backgroundColor"),e=new l.Rect({shape:{x:e.x-n[3],y:e.y-n[0],width:e.width+n[1]+n[3],height:e.height+n[0]+n[2],r:t.get("borderRadius")},style:i,silent:!0,z2:-1})}},"8cjF":function(e,t,n){var i=n("diMn"),r=n("erEb"),a=n("CH74"),o=n("+17g"),s=n("GKMz"),l=function(e){a.call(this,e),r.call(this,e),o.call(this,e),this.id=e.id||i()};l.prototype={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,isGroup:!1,drift:function(e,t){switch(this.draggable){case"horizontal":t=0;break;case"vertical":e=0}var n=this.transform;n||(n=this.transform=[1,0,0,1,0,0]),n[4]+=e,n[5]+=t,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(e,t){},attrKV:function(e,t){if("position"===e||"scale"===e||"origin"===e){if(t){var n=this[e];n||(n=this[e]=[]),n[0]=t[0],n[1]=t[1]}}else this[e]=t},hide:function(){this.ignore=!0,this.__zr&&this.__zr.refresh()},show:function(){this.ignore=!1,this.__zr&&this.__zr.refresh()},attr:function(e,t){if("string"==typeof e)this.attrKV(e,t);else if(s.isObject(e))for(var n in e)e.hasOwnProperty(n)&&this.attrKV(n,e[n]);return this.dirty(!1),this},setClipPath:function(e){var t=this.__zr;t&&e.addSelfToZr(t),this.clipPath&&this.clipPath!==e&&this.removeClipPath(),this.clipPath=e,e.__zr=t,e.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var e=this.clipPath;e&&(e.__zr&&e.removeSelfFromZr(e.__zr),e.__zr=null,e.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(e){this.__zr=e;var t=this.animators;if(t)for(var n=0;n<t.length;n++)e.animation.addAnimator(t[n]);this.clipPath&&this.clipPath.addSelfToZr(e)},removeSelfFromZr:function(e){this.__zr=null;var t=this.animators;if(t)for(var n=0;n<t.length;n++)e.animation.removeAnimator(t[n]);this.clipPath&&this.clipPath.removeSelfFromZr(e)}},s.mixin(l,o),s.mixin(l,a),s.mixin(l,r);var u=l;e.exports=u},"8iEm":function(e,t,n){var i=n("GKMz"),r=n("yIEC"),a=n("b0oC"),o=r.prototype,s=r.extend({type:"ordinal",init:function(e,t){e&&!i.isArray(e)||(e=new a({categories:e})),this._ordinalMeta=e,this._extent=t||[0,e.categories.length-1]},parse:function(e){return"string"==typeof e?this._ordinalMeta.getOrdinal(e):Math.round(e)},contain:function(e){return e=this.parse(e),o.contain.call(this,e)&&null!=this._ordinalMeta.categories[e]},normalize:function(e){return o.normalize.call(this,this.parse(e))},scale:function(e){return Math.round(o.scale.call(this,e))},getTicks:function(){for(var e=[],t=this._extent,n=t[0];n<=t[1];)e.push(n),n++;return e},getLabel:function(e){if(!this.isBlank())return this._ordinalMeta.categories[e]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(e,t){this.unionExtent(e.getApproximateExtent(t))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:i.noop,niceExtent:i.noop});s.create=function(){return new s};var l=s;e.exports=l},"8jLM":function(e,t,n){var i=n("GKMz"),r=(n("3m5Y"),{getMin:function(e){var t=this.option,n=e||null==t.rangeStart?t.min:t.rangeStart;return this.axis&&null!=n&&"dataMin"!==n&&"function"!=typeof n&&!i.eqNaN(n)&&(n=this.axis.scale.parse(n)),n},getMax:function(e){var t=this.option,n=e||null==t.rangeEnd?t.max:t.rangeEnd;return this.axis&&null!=n&&"dataMax"!==n&&"function"!=typeof n&&!i.eqNaN(n)&&(n=this.axis.scale.parse(n)),n},getNeedCrossZero:function(){var e=this.option;return null==e.rangeStart&&null==e.rangeEnd&&!e.scale},getCoordSysModel:i.noop,setRange:function(e,t){this.option.rangeStart=e,this.option.rangeEnd=t},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}});e.exports=r},"8r5Y":function(e,t,n){"use strict";var i=n("4A9Y"),r=n("5SCX"),a=Object.prototype.toString;function o(e){return"[object Array]"===a.call(e)}function s(e){return null!==e&&"object"==typeof e}function l(e){return"[object Function]"===a.call(e)}function u(e,t){if(null!==e&&void 0!==e)if("object"!=typeof e&&(e=[e]),o(e))for(var n=0,i=e.length;n<i;n++)t.call(null,e[n],n,e);else for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.call(null,e[r],r,e)}e.exports={isArray:o,isArrayBuffer:function(e){return"[object ArrayBuffer]"===a.call(e)},isBuffer:r,isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isUndefined:function(e){return void 0===e},isDate:function(e){return"[object Date]"===a.call(e)},isFile:function(e){return"[object File]"===a.call(e)},isBlob:function(e){return"[object Blob]"===a.call(e)},isFunction:l,isStream:function(e){return s(e)&&l(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:u,merge:function e(){var t={};function n(n,i){"object"==typeof t[i]&&"object"==typeof n?t[i]=e(t[i],n):t[i]=n}for(var i=0,r=arguments.length;i<r;i++)u(arguments[i],n);return t},extend:function(e,t,n){return u(t,function(t,r){e[r]=n&&"function"==typeof t?i(t,n):t}),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},"8ueq":function(e,t,n){var i;i=function(e){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(t,n){t.exports=e},function(e,t,n){function i(e,t){this._amap=e,this.dimensions=["lng","lat"],this._mapOffset=[0,0],this._api=t}var r=n(0);i.prototype.dimensions=["lng","lat"],i.prototype.setZoom=function(e){this._zoom=e},i.prototype.setCenter=function(e){this._center=this._amap.lnglatToPixel(e)},i.prototype.setMapOffset=function(e){this._mapOffset=e},i.prototype.getAMap=function(){return this._amap},i.prototype.dataToPoint=function(e){var t=new AMap.LngLat(e[0],e[1]),n=this._amap.lngLatToContainer(t),i=this._mapOffset;return[n.x-i[0],n.y-i[1]]},i.prototype.pointToData=function(e){var t=this._mapOffset;return[(e=this._amap.containerToLngLat({x:e[0]+t[0],y:e[1]+t[1]})).lng,e.lat]},i.prototype.getViewRect=function(){var e=this._api;return new r.graphic.BoundingRect(0,0,e.getWidth(),e.getHeight())},i.prototype.getRoamTransform=function(){return r.matrix.create()},i.dimensions=i.prototype.dimensions,i.create=function(e,t){var n,a=t.getDom();e.eachComponent("amap",function(e){var o=t.getZr().painter.getViewportRoot();if("undefined"==typeof AMap)throw new Error("AMap api is not loaded");if(n)throw new Error("Only one amap component can exist");if(!e.__amap){var s=a.querySelector(".ec-extension-amap");s&&(o.style.left="0px",o.style.top="0px",a.removeChild(s)),(s=document.createElement("div")).style.cssText="width:100%;height:100%",s.classList.add("ec-extension-amap"),a.appendChild(s);var l=e.get()||{};l=e.__options=r.util.clone(l);var u=e.__amap=new AMap.Map(s,l);(c=e.__layer=new AMap.CustomLayer(o)).setMap(u)}var c;u=e.getAMap();(c=e.getLayer()).hide();var d=u.getZoom(),h=u.getCenter();(n=new i(u,t)).setMapOffset(e.__mapOffset||[0,0]),n.setZoom(d),n.setCenter([h.lng,h.lat]),e.coordinateSystem=n,c.show()}),e.eachSeries(function(e){"amap"===e.get("coordinateSystem")&&(e.coordinateSystem=n)})},e.exports=i},function(e,t,n){e.exports=n(0).extendComponentModel({type:"amap",getAMap:function(){return this.__amap},getLayer:function(){return this.__layer},getMapOptions:function(){return this.__options},setCenterAndZoom:function(e,t){this.option.center=e,this.option.zoom=t},centerOrZoomChanged:function(e,t){var n=this.option;return!(function(e,t){return e&&t&&e[0]===t[0]&&e[1]===t[1]}(e,n.center)&&t===n.zoom)},defaultOption:{center:[116.397475,39.908695],zoom:4}})},function(e,t,n){var i=n(0);e.exports=n(0).extendComponentView({type:"amap",render:function(e,t,n){function r(){a||n.dispatchAction({type:"amapRoam"})}var a=!0,o=e.getAMap(),s=n.getZr().painter.getViewportRoot(),l=e.coordinateSystem,u=function(t){if(!a){var i=s.parentNode.parentNode.parentNode,r=[-parseInt(i.style.left,10)||0,-parseInt(i.style.top,10)||0];s.style.left=r[0]+"px",s.style.top=r[1]+"px",l.setMapOffset(r),e.__mapOffset=r,n.dispatchAction({type:"amapRoam"})}},c=function(e,t,n){var i,r,a,o;return o=function(){i=!1,r&&(a.apply(n,r),r=!1)},a=function(){i?r=arguments:(e.apply(n,arguments),setTimeout(o,t),i=!0)}}(function(e){i.getInstanceByDom(n.getDom()).resize(),u.call(this,e)},300,o);o.off("movestart",this._oldMoveHandler),o.off("zoomend",this._oldZoomEndHandler),o.off("moveend",this._oldZoomEndHandler),o.off("complete",this._oldZoomEndHandler),e.get("resizeEnable")&&o.off("resize",this._oldResizeHandler),o.on("movestart",u),o.on("zoomend",r),o.on("moveend",r),o.on("complete",r),e.get("resizeEnable")&&o.on("resize",c),this._oldMoveHandler=u,this._oldZoomEndHandler=r,this._oldResizeHandler=c,a=!1}})},function(e,t,n){n(0).registerCoordinateSystem("amap",n(1)),n(2),n(3),n(0).registerAction({type:"amapRoam",event:"amapRoam",update:"updateLayout"},function(e,t){t.eachComponent("amap",function(e){var t=e.getAMap(),n=t.getCenter();e.setCenterAndZoom([n.lng,n.lat],t.getZoom())})}),e.exports={version:"1.0.0-rc.6"}}])},e.exports=i(n("5YEj"))},"8zml":function(e,t,n){e.exports={default:n("kSVM"),__esModule:!0}},"93K8":function(e,t,n){var i=n("8Nvm");e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},"93zO":function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("ME4A"),o=n("Q/cl"),s=n("abCA");function l(e,t){var n=e.get("boundingCoords");if(null!=n){var i=n[0],r=n[1];isNaN(i[0])||isNaN(i[1])||isNaN(r[0])||isNaN(r[1])||this.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1])}var a,l=this.getBoundingRect(),u=e.get("layoutCenter"),c=e.get("layoutSize"),d=t.getWidth(),h=t.getHeight(),f=e.get("aspectScale")||.75,p=l.width/l.height*f,m=!1;if(u&&c&&(u=[s.parsePercent(u[0],d),s.parsePercent(u[1],h)],c=s.parsePercent(c,Math.min(d,h)),isNaN(u[0])||isNaN(u[1])||isNaN(c)||(m=!0)),m){var g={};p>1?(g.width=c,g.height=c/p):(g.height=c,g.width=c*p),g.y=u[1]-g.height/2,g.x=u[0]-g.width/2}else(a=e.getBoxLayoutParams()).aspect=p,g=o.getLayoutRect(a,{width:d,height:h});this.setViewRect(g.x,g.y,g.width,g.height),this.setCenter(e.get("center")),this.setZoom(e.get("zoom"))}function u(e,t){r.each(t.get("geoCoord"),function(t,n){e.addGeoCoord(n,t)})}var c={dimensions:a.prototype.dimensions,create:function(e,t){var n=[];e.eachComponent("geo",function(e,r){var o=e.get("map"),s=i.getMap(o),c=new a(o+r,o,s&&s.geoJson,s&&s.specialAreas,e.get("nameMap"));c.zoomLimit=e.get("scaleLimit"),n.push(c),u(c,e),e.coordinateSystem=c,c.model=e,c.resize=l,c.resize(e,t)}),e.eachSeries(function(e){if("geo"===e.get("coordinateSystem")){var t=e.get("geoIndex")||0;e.coordinateSystem=n[t]}});var o={};return e.eachSeriesByType("map",function(e){if(!e.getHostGeoModel()){var t=e.getMapType();o[t]=o[t]||[],o[t].push(e)}}),r.each(o,function(e,o){var s=i.getMap(o),c=r.map(e,function(e){return e.get("nameMap")}),d=new a(o,o,s&&s.geoJson,s&&s.specialAreas,r.mergeAll(c));d.zoomLimit=r.retrieve.apply(null,r.map(e,function(e){return e.get("scaleLimit")})),n.push(d),d.resize=l,d.resize(e[0],t),r.each(e,function(e){e.coordinateSystem=d,u(d,e)})}),n},getFilledRegions:function(e,t,n){var a=(e||[]).slice();n=n||{};var o=i.getMap(t),s=o&&o.geoJson;if(!s)return e;for(var l=r.createHashMap(),u=s.features,c=0;c<a.length;c++)l.set(a[c].name,a[c]);for(c=0;c<u.length;c++){var d=u[c].properties.name;l.get(d)||(n.hasOwnProperty(d)&&(d=n[d]),a.push({name:d}))}return a}};i.registerCoordinateSystem("geo",c);var d=c;e.exports=d},"99es":function(e,t,n){var i=n("GKMz"),r=n("Vus3"),a=n("aVg8"),o=n("2dmG"),s=["axisLine","axisTickLabel","axisName"],l=n("MiuX").extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(e,t,n,a){var u=this.group;u.removeAll();var c=o.layout(e),d=new r(e,c);i.each(s,d.add,d),u.add(d.getGroup()),e.get("splitLine.show")&&this._splitLine(e),l.superCall(this,"render",e,t,n,a)},_splitLine:function(e){var t=e.axis;if(!t.scale.isBlank()){var n=e.getModel("splitLine"),i=n.getModel("lineStyle"),r=i.get("width"),o=i.get("color");o=o instanceof Array?o:[o];for(var s=e.coordinateSystem.getRect(),l=t.isHorizontal(),u=[],c=0,d=t.getTicksCoords({tickModel:n}),h=[],f=[],p=0;p<d.length;++p){var m=t.toGlobalCoord(d[p].coord);l?(h[0]=m,h[1]=s.y,f[0]=m,f[1]=s.y+s.height):(h[0]=s.x,h[1]=m,f[0]=s.x+s.width,f[1]=m);var g=c++%o.length;u[g]=u[g]||[],u[g].push(new a.Line(a.subPixelOptimizeLine({shape:{x1:h[0],y1:h[1],x2:f[0],y2:f[1]},style:{lineWidth:r},silent:!0})))}for(p=0;p<u.length;++p)this.group.add(a.mergePath(u[p],{style:{stroke:o[p%o.length],lineDash:i.getLineDash(r),lineWidth:r},silent:!0}))}}}),u=l;e.exports=u},"9AUj":function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},"9Fp8":function(e,t,n){var i=n("/MtV"),r=n("Mf6k"),a=n("vqvJ").defaultEmphasis,o=i.extendSeriesModel({type:"series.funnel",init:function(e){o.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this._defaultLabelLine(e)},getInitialData:function(e,t){return r(this,["value"])},_defaultLabelLine:function(e){a(e,"labelLine",["show"]);var t=e.labelLine,n=e.emphasis.labelLine;t.show=t.show&&e.label.show,n.show=n.show&&e.emphasis.label.show},getDataParams:function(e){var t=this.getData(),n=o.superCall(this,"getDataParams",e),i=t.mapDimension("value"),r=t.getSum(i);return n.percent=r?+(t.get(i,e)/r*100).toFixed(2):0,n.$vars.push("percent"),n},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1,type:"solid"}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}}}}),s=o;e.exports=s},"9JTW":function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},"9PUD":function(e,t,n){var i=n("mhmp").extend({type:"dataZoom",render:function(e,t,n,i){this.dataZoomModel=e,this.ecModel=t,this.api=n},getTargetCoordInfo:function(){var e=this.dataZoomModel,t=this.ecModel,n={};return e.eachTargetAxis(function(e,i){var r=t.getComponent(e.axis,i);if(r){var a=r.getCoordSysModel();a&&function(e,t,n,i){for(var r,a=0;a<n.length;a++)if(n[a].model===e){r=n[a];break}r||n.push(r={model:e,axisModels:[],coordIndex:i});r.axisModels.push(t)}(a,r,n[a.mainType]||(n[a.mainType]=[]),a.componentIndex)}},this),n}});e.exports=i},"9ZBU":function(e,t,n){var i=n("GKMz"),r=n("abCA"),a=n("uxQp"),o=n("yA/l"),s=n("F93s"),l=s.prototype,u=Math.ceil,c=Math.floor,d=s.extend({type:"time",getLabel:function(e){var t=this._stepLvl,n=new Date(e);return a.formatTime(t[0],n,this.getSetting("useUTC"))},niceExtent:function(e){var t=this._extent;if(t[0]===t[1]&&(t[0]-=864e5,t[1]+=864e5),t[1]===-1/0&&t[0]===1/0){var n=new Date;t[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),t[0]=t[1]-864e5}this.niceTicks(e.splitNumber,e.minInterval,e.maxInterval);var i=this._interval;e.fixMin||(t[0]=r.round(c(t[0]/i)*i)),e.fixMax||(t[1]=r.round(u(t[1]/i)*i))},niceTicks:function(e,t,n){e=e||10;var i=this._extent,a=i[1]-i[0],s=a/e;null!=t&&s<t&&(s=t),null!=n&&s>n&&(s=n);var l=h.length,d=function(e,t,n,i){for(;n<i;){var r=n+i>>>1;e[r][1]<t?n=r+1:i=r}return n}(h,s,0,l),f=h[Math.min(d,l-1)],p=f[1];if("year"===f[0]){var m=a/p;p*=r.nice(m/e,!0)}var g=this.getSetting("useUTC")?0:60*new Date(+i[0]||+i[1]).getTimezoneOffset()*1e3,v=[Math.round(u((i[0]-g)/p)*p+g),Math.round(c((i[1]-g)/p)*p+g)];o.fixExtent(v,i),this._stepLvl=f,this._interval=p,this._niceExtent=v},parse:function(e){return+r.parseDate(e)}});i.each(["contain","normalize"],function(e){d.prototype[e]=function(t){return l[e].call(this,this.parse(t))}});var h=[["hh:mm:ss",1e3],["hh:mm:ss",5e3],["hh:mm:ss",1e4],["hh:mm:ss",15e3],["hh:mm:ss",3e4],["hh:mm\nMM-dd",6e4],["hh:mm\nMM-dd",3e5],["hh:mm\nMM-dd",6e5],["hh:mm\nMM-dd",9e5],["hh:mm\nMM-dd",18e5],["hh:mm\nMM-dd",36e5],["hh:mm\nMM-dd",72e5],["hh:mm\nMM-dd",216e5],["hh:mm\nMM-dd",432e5],["MM-dd\nyyyy",864e5],["MM-dd\nyyyy",1728e5],["MM-dd\nyyyy",2592e5],["MM-dd\nyyyy",3456e5],["MM-dd\nyyyy",432e6],["MM-dd\nyyyy",5184e5],["week",6048e5],["MM-dd\nyyyy",864e6],["week",12096e5],["week",18144e5],["month",26784e5],["week",36288e5],["month",53568e5],["week",36288e5],["quarter",8208e6],["month",107136e5],["month",13392e6],["half-year",16416e6],["month",214272e5],["month",26784e6],["year",32832e6]];d.create=function(e){return new d({useUTC:e.ecModel.get("useUTC")})};var f=d;e.exports=f},"9aCb":function(e,t,n){var i=n("qpbZ");t.zrender=i;var r=n("g0yf");t.matrix=r;var a=n("luYz");t.vector=a;var o=n("GKMz"),s=n("Zjj5");t.color=s;var l=n("aVg8");t.graphic=l;var u=n("abCA");t.number=u;var c=n("uxQp");t.format=c;var d=n("242d");d.throttle;t.throttle=d.throttle;var h=n("9sm9");t.helper=h;var f=n("Dn9c");t.parseGeoJSON=f;var p=n("M7eM");t.List=p;var m=n("xWTI");t.Model=m;var g=n("fAuK");t.Axis=g;var v=n("KSHG");t.env=v;var y=f,b={};o.each(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(e){b[e]=o[e]}),t.parseGeoJson=y,t.util=b},"9akD":function(e,t,n){var i=n("eqTP"),r=n("zDlt").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return i(e,r)}},"9mPB":function(e,t,n){"use strict";t.__esModule=!0;var i,r=n("IvJb"),a=(i=r)&&i.__esModule?i:{default:i},o=n("1h8B");var s=a.default.prototype.$isServer?function(){}:n("/CiU"),l=function(e){return e.stopPropagation()};t.default={props:{transformOrigin:{type:[Boolean,String],default:!0},placement:{type:String,default:"bottom"},boundariesPadding:{type:Number,default:5},reference:{},popper:{},offset:{default:0},value:Boolean,visibleArrow:Boolean,arrowOffset:{type:Number,default:35},appendToBody:{type:Boolean,default:!0},popperOptions:{type:Object,default:function(){return{gpuAcceleration:!1}}}},data:function(){return{showPopper:!1,currentPlacement:""}},watch:{value:{immediate:!0,handler:function(e){this.showPopper=e,this.$emit("input",e)}},showPopper:function(e){this.disabled||(e?this.updatePopper():this.destroyPopper(),this.$emit("input",e))}},methods:{createPopper:function(){var e=this;if(!this.$isServer&&(this.currentPlacement=this.currentPlacement||this.placement,/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement))){var t=this.popperOptions,n=this.popperElm=this.popperElm||this.popper||this.$refs.popper,i=this.referenceElm=this.referenceElm||this.reference||this.$refs.reference;!i&&this.$slots.reference&&this.$slots.reference[0]&&(i=this.referenceElm=this.$slots.reference[0].elm),n&&i&&(this.visibleArrow&&this.appendArrow(n),this.appendToBody&&document.body.appendChild(this.popperElm),this.popperJS&&this.popperJS.destroy&&this.popperJS.destroy(),t.placement=this.currentPlacement,t.offset=this.offset,t.arrowOffset=this.arrowOffset,this.popperJS=new s(i,n,t),this.popperJS.onCreate(function(t){e.$emit("created",e),e.resetTransformOrigin(),e.$nextTick(e.updatePopper)}),"function"==typeof t.onUpdate&&this.popperJS.onUpdate(t.onUpdate),this.popperJS._popper.style.zIndex=o.PopupManager.nextZIndex(),this.popperElm.addEventListener("click",l))}},updatePopper:function(){var e=this.popperJS;e?(e.update(),e._popper&&(e._popper.style.zIndex=o.PopupManager.nextZIndex())):this.createPopper()},doDestroy:function(e){!this.popperJS||this.showPopper&&!e||(this.popperJS.destroy(),this.popperJS=null)},destroyPopper:function(){this.popperJS&&this.resetTransformOrigin()},resetTransformOrigin:function(){if(this.transformOrigin){var e=this.popperJS._popper.getAttribute("x-placement").split("-")[0],t={top:"bottom",bottom:"top",left:"right",right:"left"}[e];this.popperJS._popper.style.transformOrigin="string"==typeof this.transformOrigin?this.transformOrigin:["top","bottom"].indexOf(e)>-1?"center "+t:t+" center"}},appendArrow:function(e){var t=void 0;if(!this.appended){for(var n in this.appended=!0,e.attributes)if(/^_v-/.test(e.attributes[n].name)){t=e.attributes[n].name;break}var i=document.createElement("div");t&&i.setAttribute(t,""),i.setAttribute("x-arrow",""),i.className="popper__arrow",e.appendChild(i)}}},beforeDestroy:function(){this.doDestroy(!0),this.popperElm&&this.popperElm.parentNode===document.body&&(this.popperElm.removeEventListener("click",l),document.body.removeChild(this.popperElm))},deactivated:function(){this.$options.beforeDestroy[0].call(this)}}},"9sm9":function(e,t,n){var i=n("GKMz"),r=n("bmdq"),a=n("3m5Y"),o=n("8jLM"),s=n("xWTI"),l=n("Q/cl");l.getLayoutRect;t.getLayoutRect=l.getLayoutRect;var u=n("cfvC"),c=u.enableDataStack,d=u.isDimensionStacked,h=u.getStackedDimension,f=n("XCYH");t.completeDimensions=f;var p=n("Qieq");t.createDimensions=p;var m=n("ktMJ");t.createSymbol=m.createSymbol;var g={isDimensionStacked:d,enableDataStack:c,getStackedDimension:h};t.createList=function(e){return r(e.getSource(),e)},t.dataStack=g,t.createScale=function(e,t){var n=t;s.isInstance(t)||(n=new s(t),i.mixin(n,o));var r=a.createScaleByModel(n);return r.setExtent(e[0],e[1]),a.niceScaleExtent(r,n),r},t.mixinAxisModelCommonMethods=function(e){i.mixin(e,o)}},A1Wz:function(e,t,n){var i=n("OGtO"),r=n("Uur3").onIrrelevantElement,a=n("aVg8");function o(e){return i.create(e)}t.makeRectPanelClipPath=function(e){return e=o(e),function(t,n){return a.clipPointsByRect(t,e)}},t.makeLinearBrushOtherExtent=function(e,t){return e=o(e),function(n){var i=null!=t?t:n,r=i?e.width:e.height,a=i?e.x:e.y;return[a,a+(r||0)]}},t.makeRectIsTargetByCursor=function(e,t,n){return e=o(e),function(i,a,o){return e.contain(a[0],a[1])&&!r(i,t,n)}}},A1pn:function(e,t,n){n("zAnu");for(var i=n("C02x"),r=n("bHZz"),a=n("ZVlJ"),o=n("biYF")("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l<s.length;l++){var u=s[l],c=i[u],d=c&&c.prototype;d&&!d[o]&&r(d,o,u),a[u]=a.Array}},A2Qw:function(e,t,n){var i=n("GKMz"),r=n("fAuK"),a=function(e,t,n,i,a){r.call(this,e,t,n),this.type=i||"value",this.position=a||"bottom"};a.prototype={constructor:a,index:0,getAxesOnZeroOf:null,model:null,isHorizontal:function(){var e=this.position;return"top"===e||"bottom"===e},getGlobalExtent:function(e){var t=this.getExtent();return t[0]=this.toGlobalCoord(t[0]),t[1]=this.toGlobalCoord(t[1]),e&&t[0]>t[1]&&t.reverse(),t},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(e,t){return this.coordToData(this.toLocalCoord(e["x"===this.dim?0:1]),t)},toLocalCoord:null,toGlobalCoord:null},i.inherits(a,r);var o=a;e.exports=o},A4ij:function(e,t,n){var i=n("GKMz"),r={updateSelectedMap:function(e){this._targetList=i.isArray(e)?e.slice():[],this._selectTargetMap=i.reduce(e||[],function(e,t){return e.set(t.name,t),e},i.createHashMap())},select:function(e,t){var n=null!=t?this._targetList[t]:this._selectTargetMap.get(e);"single"===this.get("selectedMode")&&this._selectTargetMap.each(function(e){e.selected=!1}),n&&(n.selected=!0)},unSelect:function(e,t){var n=null!=t?this._targetList[t]:this._selectTargetMap.get(e);n&&(n.selected=!1)},toggleSelected:function(e,t){var n=null!=t?this._targetList[t]:this._selectTargetMap.get(e);if(null!=n)return this[n.selected?"unSelect":"select"](e,t),n.selected},isSelected:function(e,t){var n=null!=t?this._targetList[t]:this._selectTargetMap.get(e);return n&&n.selected}};e.exports=r},AAaq:function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=n("Vus3"),o=n("MiuX"),s=n("bP4h"),l=["axisLine","axisTickLabel","axisName"],u=["splitArea","splitLine"],c=o.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(e,t,n,o){this.group.removeAll();var d=this._axisGroup;if(this._axisGroup=new r.Group,this.group.add(this._axisGroup),e.get("show")){var h=e.getCoordSysModel(),f=s.layout(h,e),p=new a(e,f);i.each(l,p.add,p),this._axisGroup.add(p.getGroup()),i.each(u,function(t){e.get(t+".show")&&this["_"+t](e,h)},this),r.groupTransition(d,this._axisGroup,e),c.superCall(this,"render",e,t,n,o)}},remove:function(){this._splitAreaColors=null},_splitLine:function(e,t){var n=e.axis;if(!n.scale.isBlank()){var a=e.getModel("splitLine"),o=a.getModel("lineStyle"),s=o.get("color");s=i.isArray(s)?s:[s];for(var l=t.coordinateSystem.getRect(),u=n.isHorizontal(),c=0,d=n.getTicksCoords({tickModel:a}),h=[],f=[],p=o.getLineStyle(),m=0;m<d.length;m++){var g=n.toGlobalCoord(d[m].coord);u?(h[0]=g,h[1]=l.y,f[0]=g,f[1]=l.y+l.height):(h[0]=l.x,h[1]=g,f[0]=l.x+l.width,f[1]=g);var v=c++%s.length,y=d[m].tickValue;this._axisGroup.add(new r.Line(r.subPixelOptimizeLine({anid:null!=y?"line_"+d[m].tickValue:null,shape:{x1:h[0],y1:h[1],x2:f[0],y2:f[1]},style:i.defaults({stroke:s[v]},p),silent:!0})))}}},_splitArea:function(e,t){var n=e.axis;if(!n.scale.isBlank()){var a=e.getModel("splitArea"),o=a.getModel("areaStyle"),s=o.get("color"),l=t.coordinateSystem.getRect(),u=n.getTicksCoords({tickModel:a,clamp:!0});if(u.length){var c=s.length,d=this._splitAreaColors,h=i.createHashMap(),f=0;if(d)for(var p=0;p<u.length;p++){var m=d.get(u[p].tickValue);if(null!=m){f=(m+(c-1)*p)%c;break}}var g=n.toGlobalCoord(u[0].coord),v=o.getAreaStyle();s=i.isArray(s)?s:[s];for(p=1;p<u.length;p++){var y,b,_,x,w=n.toGlobalCoord(u[p].coord);n.isHorizontal()?(y=g,b=l.y,_=w-y,x=l.height,g=y+_):(y=l.x,b=g,_=l.width,g=b+(x=w-b));var S=u[p-1].tickValue;null!=S&&h.set(S,f),this._axisGroup.add(new r.Rect({anid:null!=S?"area_"+S:null,shape:{x:y,y:b,width:_,height:x},style:i.defaults({fill:s[f]},v),silent:!0})),f=(f+1)%c}this._splitAreaColors=h}}}});c.extend({type:"xAxis"}),c.extend({type:"yAxis"})},AKd3:function(e,t){var n=e.exports={version:"2.5.7"};"number"==typeof __e&&(__e=n)},AKeZ:function(e,t,n){var i=n("GKMz"),r=n("luYz"),a=n("ktMJ"),o=n("psuP"),s=n("aVg8"),l=n("abCA").round,u=["fromSymbol","toSymbol"];function c(e){return"_"+e+"Type"}function d(e,t,n){var r=t.getItemVisual(n,"color"),o=t.getItemVisual(n,e),s=t.getItemVisual(n,e+"Size");if(o&&"none"!==o){i.isArray(s)||(s=[s,s]);var l=a.createSymbol(o,-s[0]/2,-s[1]/2,s[0],s[1],r);return l.name=e,l}}function h(e,t){var n=t[0],i=t[1],r=t[2];e.x1=n[0],e.y1=n[1],e.x2=i[0],e.y2=i[1],e.percent=1,r?(e.cpx1=r[0],e.cpy1=r[1]):(e.cpx1=NaN,e.cpy1=NaN)}function f(e,t,n){s.Group.call(this),this._createLine(e,t,n)}var p=f.prototype;p.beforeUpdate=function(){var e=this.childOfName("fromSymbol"),t=this.childOfName("toSymbol"),n=this.childOfName("label");if(e||t||!n.ignore){for(var i=1,a=this.parent;a;)a.scale&&(i/=a.scale[0]),a=a.parent;var o=this.childOfName("line");if(this.__dirty||o.__dirty){var s=o.shape.percent,l=o.pointAt(0),u=o.pointAt(s),c=r.sub([],u,l);if(r.normalize(c,c),e){e.attr("position",l);var d=o.tangentAt(0);e.attr("rotation",Math.PI/2-Math.atan2(d[1],d[0])),e.attr("scale",[i*s,i*s])}if(t&&(t.attr("position",u),d=o.tangentAt(1),t.attr("rotation",-Math.PI/2-Math.atan2(d[1],d[0])),t.attr("scale",[i*s,i*s])),!n.ignore){var h,f,p;n.attr("position",u);var m=5*i;if("end"===n.__position)h=[c[0]*m+u[0],c[1]*m+u[1]],f=c[0]>.8?"left":c[0]<-.8?"right":"center",p=c[1]>.8?"top":c[1]<-.8?"bottom":"middle";else if("middle"===n.__position){var g=s/2,v=[(d=o.tangentAt(g))[1],-d[0]],y=o.pointAt(g);v[1]>0&&(v[0]=-v[0],v[1]=-v[1]),h=[y[0]+v[0]*m,y[1]+v[1]*m],f="center",p="bottom";var b=-Math.atan2(d[1],d[0]);u[0]<l[0]&&(b=Math.PI+b),n.attr("rotation",b)}else h=[-c[0]*m+l[0],-c[1]*m+l[1]],f=c[0]>.8?"right":c[0]<-.8?"left":"center",p=c[1]>.8?"bottom":c[1]<-.8?"top":"middle";n.attr({style:{textVerticalAlign:n.__verticalAlign||p,textAlign:n.__textAlign||f},position:h,scale:[i,i]})}}}},p._createLine=function(e,t,n){var r=e.hostModel,a=function(e){var t=new o({name:"line"});return h(t.shape,e),t}(e.getItemLayout(t));a.shape.percent=0,s.initProps(a,{shape:{percent:1}},r,t),this.add(a);var l=new s.Text({name:"label"});this.add(l),i.each(u,function(n){var i=d(n,e,t);this.add(i),this[c(n)]=e.getItemVisual(t,n)},this),this._updateCommonStl(e,t,n)},p.updateData=function(e,t,n){var r=e.hostModel,a=this.childOfName("line"),o=e.getItemLayout(t),l={shape:{}};h(l.shape,o),s.updateProps(a,l,r,t),i.each(u,function(n){var i=e.getItemVisual(t,n),r=c(n);if(this[r]!==i){this.remove(this.childOfName(n));var a=d(n,e,t);this.add(a)}this[r]=i},this),this._updateCommonStl(e,t,n)},p._updateCommonStl=function(e,t,n){var r=e.hostModel,a=this.childOfName("line"),o=n&&n.lineStyle,c=n&&n.hoverLineStyle,d=n&&n.labelModel,h=n&&n.hoverLabelModel;if(!n||e.hasItemOption){var f=e.getItemModel(t);o=f.getModel("lineStyle").getLineStyle(),c=f.getModel("emphasis.lineStyle").getLineStyle(),d=f.getModel("label"),h=f.getModel("emphasis.label")}var p=e.getItemVisual(t,"color"),m=i.retrieve3(e.getItemVisual(t,"opacity"),o.opacity,1);a.useStyle(i.defaults({strokeNoScale:!0,fill:"none",stroke:p,opacity:m},o)),a.hoverStyle=c,i.each(u,function(e){var t=this.childOfName(e);t&&(t.setColor(p),t.setStyle({opacity:m}))},this);var g,v,y=d.getShallow("show"),b=h.getShallow("show"),_=this.childOfName("label");if((y||b)&&(g=p||"#000",null==(v=r.getFormattedLabel(t,"normal",e.dataType)))){var x=r.getRawValue(t);v=null==x?e.getName(t):isFinite(x)?l(x):x}var w=y?v:null,S=b?i.retrieve2(r.getFormattedLabel(t,"emphasis",e.dataType),v):null,C=_.style;null==w&&null==S||(s.setTextStyle(_.style,d,{text:w},{autoColor:g}),_.__textAlign=C.textAlign,_.__verticalAlign=C.textVerticalAlign,_.__position=d.get("position")||"middle"),_.hoverStyle=null!=S?{text:S,textFill:h.getTextColor(!0),fontStyle:h.getShallow("fontStyle"),fontWeight:h.getShallow("fontWeight"),fontSize:h.getShallow("fontSize"),fontFamily:h.getShallow("fontFamily")}:{text:null},_.ignore=!y&&!b,s.setHoverStyle(this)},p.highlight=function(){this.trigger("emphasis")},p.downplay=function(){this.trigger("normal")},p.updateLayout=function(e,t){this.setLinePoints(e.getItemLayout(t))},p.setLinePoints=function(e){var t=this.childOfName("line");h(t.shape,e),t.dirty()},i.inherits(f,s.Group);var m=f;e.exports=m},"Af6+":function(e,t){var n=function(e,t){this.image=e,this.repeat=t,this.type="pattern"};n.prototype.getCanvasPattern=function(e){return e.createPattern(this.image,this.repeat||"repeat")};var i=n;e.exports=i},B6iy:function(e,t,n){var i=n("/MtV"),r=n("GKMz");n("4xJx"),n("0F8Y");var a=n("nmRA"),o=n("UUpo"),s=n("kczp"),l=n("Jkhp");a("pie",[{type:"pieToggleSelect",event:"pieselectchanged",method:"toggleSelected"},{type:"pieSelect",event:"pieselected",method:"select"},{type:"pieUnSelect",event:"pieunselected",method:"unSelect"}]),i.registerVisual(o("pie")),i.registerLayout(r.curry(s,"pie")),i.registerProcessor(l("pie"))},B6j4:function(e,t,n){var i=n("/MtV");n("LH4M"),n("6xI6"),n("XoXQ");var r=n("faZ2"),a=n("6/6c");i.registerProcessor(r),a.registerSubTypeDefaulter("legend",function(){return"plain"})},B7oI:function(e,t,n){var i=n("/MtV");n("9Fp8"),n("Dh2g");var r=n("UUpo"),a=n("M3ql"),o=n("Jkhp");i.registerVisual(r("funnel")),i.registerLayout(a),i.registerProcessor(o("funnel"))},BAmx:function(e,t,n){var i=n("aVg8"),r=n("GKMz");function a(e,t,n){i.Group.call(this),this._createPolyline(e,t,n)}var o=a.prototype;o._createPolyline=function(e,t,n){var r=e.getItemLayout(t),a=new i.Polyline({shape:{points:r}});this.add(a),this._updateCommonStl(e,t,n)},o.updateData=function(e,t,n){var r=e.hostModel,a=this.childAt(0),o={shape:{points:e.getItemLayout(t)}};i.updateProps(a,o,r,t),this._updateCommonStl(e,t,n)},o._updateCommonStl=function(e,t,n){var a=this.childAt(0),o=e.getItemModel(t),s=e.getItemVisual(t,"color"),l=n&&n.lineStyle,u=n&&n.hoverLineStyle;n&&!e.hasItemOption||(l=o.getModel("lineStyle").getLineStyle(),u=o.getModel("emphasis.lineStyle").getLineStyle()),a.useStyle(r.defaults({strokeNoScale:!0,fill:"none",stroke:s},l)),a.hoverStyle=u,i.setHoverStyle(this)},o.updateLayout=function(e,t){this.childAt(0).setShape("points",e.getItemLayout(t))},r.inherits(a,i.Group);var s=a;e.exports=s},BDGf:function(e,t,n){var i=n("aVg8"),r=n("AKeZ");function a(e){this._ctor=e||r,this.group=new i.Group}var o=a.prototype;function s(e){var t=e.hostModel;return{lineStyle:t.getModel("lineStyle").getLineStyle(),hoverLineStyle:t.getModel("emphasis.lineStyle").getLineStyle(),labelModel:t.getModel("label"),hoverLabelModel:t.getModel("emphasis.label")}}function l(e){return isNaN(e[0])||isNaN(e[1])}function u(e){return!l(e[0])&&!l(e[1])}o.isPersistent=function(){return!0},o.updateData=function(e){var t=this,n=t.group,i=t._lineData;t._lineData=e,i||n.removeAll();var r=s(e);e.diff(i).add(function(n){!function(e,t,n,i){if(!u(t.getItemLayout(n)))return;var r=new e._ctor(t,n,i);t.setItemGraphicEl(n,r),e.group.add(r)}(t,e,n,r)}).update(function(n,a){!function(e,t,n,i,r,a){var o=t.getItemGraphicEl(i);if(!u(n.getItemLayout(r)))return void e.group.remove(o);o?o.updateData(n,r,a):o=new e._ctor(n,r,a);n.setItemGraphicEl(r,o),e.group.add(o)}(t,i,e,a,n,r)}).remove(function(e){n.remove(i.getItemGraphicEl(e))}).execute()},o.updateLayout=function(){var e=this._lineData;e&&e.eachItemGraphicEl(function(t,n){t.updateLayout(e,n)},this)},o.incrementalPrepareUpdate=function(e){this._seriesScope=s(e),this._lineData=null,this.group.removeAll()},o.incrementalUpdate=function(e,t){function n(e){e.isGroup||(e.incremental=e.useHoverLayer=!0)}for(var i=e.start;i<e.end;i++){if(u(t.getItemLayout(i))){var r=new this._ctor(t,i,this._seriesScope);r.traverse(n),this.group.add(r),t.setItemGraphicEl(i,r)}}},o.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},o._clearIncremental=function(){var e=this._incremental;e&&e.clearDisplaybles()};var c=a;e.exports=c},BLUl:function(e,t,n){var i=n("GKMz"),r=n("YR6M"),a=n("oHK+").seriesModelMixin,o=r.extend({type:"series.candlestick",dependencies:["xAxis","yAxis","grid"],defaultValueDimensions:[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],dimensions:null,defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,layout:null,itemStyle:{color:"#c23531",color0:"#314656",borderWidth:1,borderColor:"#c23531",borderColor0:"#314656"},emphasis:{itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:5e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationUpdate:!1,animationEasing:"linear",animationDuration:300},getShadowDim:function(){return"open"},brushSelector:function(e,t,n){var i=t.getItemLayout(e);return i&&n.rect(i.brushRect)}});i.mixin(o,a,!0);var s=o;e.exports=s},BMQd:function(e,t,n){var i=n("YR6M"),r=n("bmdq"),a=i.extend({type:"series.__base_bar__",getInitialData:function(e,t){return r(this.getSource(),this)},getMarkerPosition:function(e){var t=this.coordinateSystem;if(t){var n=t.dataToPoint(t.clampData(e)),i=this.getData(),r=i.getLayout("offset"),a=i.getLayout("size");return n[t.getBaseAxis().isHorizontal()?0:1]+=r+a/2,n}return[NaN,NaN]},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:5e3,progressiveChunkMode:"mod",itemStyle:{},emphasis:{}}});e.exports=a},BRDz:function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},BSR4:function(e,t,n){n("/MtV").registerAction("legendScroll","legendscroll",function(e,t){var n=e.scrollDataIndex;null!=n&&t.eachComponent({mainType:"legend",subType:"scroll",query:e},function(e){e.setScrollDataIndex(n)})})},BUW8:function(e,t,n){var i=n("GKMz"),r=n("Q/cl"),a=n("abCA"),o=n("i+pt");function s(e,t,n){this._model=e}function l(e,t,n,i){var r=n.calendarModel,a=n.seriesModel,o=r?r.coordinateSystem:a?a.coordinateSystem:null;return o===this?o[e](i):null}s.prototype={constructor:s,type:"calendar",dimensions:["time","value"],getDimensionsInfo:function(){return[{name:"time",type:"time"},"value"]},getRangeInfo:function(){return this._rangeInfo},getModel:function(){return this._model},getRect:function(){return this._rect},getCellWidth:function(){return this._sw},getCellHeight:function(){return this._sh},getOrient:function(){return this._orient},getFirstDayOfWeek:function(){return this._firstDayOfWeek},getDateInfo:function(e){var t=(e=a.parseDate(e)).getFullYear(),n=e.getMonth()+1;n=n<10?"0"+n:n;var i=e.getDate();i=i<10?"0"+i:i;var r=e.getDay();return{y:t,m:n,d:i,day:r=Math.abs((r+7-this.getFirstDayOfWeek())%7),time:e.getTime(),formatedDate:t+"-"+n+"-"+i,date:e}},getNextNDay:function(e,t){return 0===(t=t||0)?this.getDateInfo(e):((e=new Date(this.getDateInfo(e).time)).setDate(e.getDate()+t),this.getDateInfo(e))},update:function(e,t){this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,a=["width","height"],o=this._model.get("cellSize").slice(),s=this._model.getBoxLayoutParams(),l="horizontal"===this._orient?[n,7]:[7,n];i.each([0,1],function(e){d(o,e)&&(s[a[e]]=o[e]*l[e])});var u={width:t.getWidth(),height:t.getHeight()},c=this._rect=r.getLayoutRect(s,u);function d(e,t){return null!=e[t]&&"auto"!==e[t]}i.each([0,1],function(e){d(o,e)||(o[e]=c[a[e]]/l[e])}),this._sw=o[0],this._sh=o[1]},dataToPoint:function(e,t){i.isArray(e)&&(e=e[0]),null==t&&(t=!0);var n=this.getDateInfo(e),r=this._rangeInfo,a=n.formatedDate;if(t&&!(n.time>=r.start.time&&n.time<r.end.time+864e5))return[NaN,NaN];var o=n.day,s=this._getRangeInfo([r.start.time,a]).nthWeek;return"vertical"===this._orient?[this._rect.x+o*this._sw+this._sw/2,this._rect.y+s*this._sh+this._sh/2]:[this._rect.x+s*this._sw+this._sw/2,this._rect.y+o*this._sh+this._sh/2]},pointToData:function(e){var t=this.pointToDate(e);return t&&t.time},dataToRect:function(e,t){var n=this.dataToPoint(e,t);return{contentShape:{x:n[0]-(this._sw-this._lineWidth)/2,y:n[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:n,tl:[n[0]-this._sw/2,n[1]-this._sh/2],tr:[n[0]+this._sw/2,n[1]-this._sh/2],br:[n[0]+this._sw/2,n[1]+this._sh/2],bl:[n[0]-this._sw/2,n[1]+this._sh/2]}},pointToDate:function(e){var t=Math.floor((e[0]-this._rect.x)/this._sw)+1,n=Math.floor((e[1]-this._rect.y)/this._sh)+1,i=this._rangeInfo.range;return"vertical"===this._orient?this._getDateByWeeksAndDay(n,t-1,i):this._getDateByWeeksAndDay(t,n-1,i)},convertToPixel:i.curry(l,"dataToPoint"),convertFromPixel:i.curry(l,"pointToData"),_initRangeOption:function(){var e=this._model.get("range"),t=e;if(i.isArray(t)&&1===t.length&&(t=t[0]),/^\d{4}$/.test(t)&&(e=[t+"-01-01",t+"-12-31"]),/^\d{4}[\/|-]\d{1,2}$/.test(t)){var n=this.getDateInfo(t),r=n.date;r.setMonth(r.getMonth()+1);var a=this.getNextNDay(r,-1);e=[n.formatedDate,a.formatedDate]}/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(t)&&(e=[t,t]);var o=this._getRangeInfo(e);return o.start.time>o.end.time&&e.reverse(),e},_getRangeInfo:function(e){var t;(e=[this.getDateInfo(e[0]),this.getDateInfo(e[1])])[0].time>e[1].time&&(t=!0,e.reverse());var n=Math.floor(e[1].time/864e5)-Math.floor(e[0].time/864e5)+1,i=new Date(e[0].time),r=i.getDate(),a=e[1].date.getDate();if(i.setDate(r+n-1),i.getDate()!==a)for(var o=i.getTime()-e[1].time>0?1:-1;i.getDate()!==a&&(i.getTime()-e[1].time)*o>0;)n-=o,i.setDate(r+n-1);var s=Math.floor((n+e[0].day+6)/7),l=t?1-s:s-1;return t&&e.reverse(),{range:[e[0].formatedDate,e[1].formatedDate],start:e[0],end:e[1],allDay:n,weeks:s,nthWeek:l,fweek:e[0].day,lweek:e[1].day}},_getDateByWeeksAndDay:function(e,t,n){var i=this._getRangeInfo(n);if(e>i.weeks||0===e&&t<i.fweek||e===i.weeks&&t>i.lweek)return!1;var r=7*(e-1)-i.fweek+t,a=new Date(i.start.time);return a.setDate(i.start.d+r),this.getDateInfo(a)}},s.dimensions=s.prototype.dimensions,s.getDimensionsInfo=s.prototype.getDimensionsInfo,s.create=function(e,t){var n=[];return e.eachComponent("calendar",function(i){var r=new s(i,e,t);n.push(r),i.coordinateSystem=r}),e.eachSeries(function(e){"calendar"===e.get("coordinateSystem")&&(e.coordinateSystem=n[e.get("calendarIndex")||0])}),n},o.register("calendar",s);var u=s;e.exports=u},BWe9:function(e,t,n){var i=n("/MtV");n("sB3v"),n("WPVr");var r=n("kuK2"),a=n("VErb");n("5zae"),i.registerVisual(r("scatter","circle")),i.registerLayout(a("scatter"))},Bcbt:function(e,t,n){var i=n("/MtV");n("SAqN"),n("Glhy"),n("owiR");var r=n("8PsL"),a=n("liel");i.registerLayout(r),i.registerVisual(a)},Bd51:function(e,t,n){var i=n("GKMz"),r=n("wNlq").parseClassType,a=0;t.getUID=function(e){return[e||"",a++,Math.random().toFixed(5)].join("_")},t.enableSubTypeDefaulter=function(e){var t={};return e.registerSubTypeDefaulter=function(e,n){e=r(e),t[e.main]=n},e.determineSubType=function(n,i){var a=i.type;if(!a){var o=r(n).main;e.hasSubTypes(n)&&t[o]&&(a=t[o](i))}return a},e},t.enableTopologicalTravel=function(e,t){function n(e,t){return e[t]||(e[t]={predecessor:[],successor:[]}),e[t]}e.topologicalTravel=function(e,r,a,o){if(e.length){var s=function(e){var r={},a=[];return i.each(e,function(o){var s=n(r,o),l=function(e,t){var n=[];return i.each(e,function(e){i.indexOf(t,e)>=0&&n.push(e)}),n}(s.originalDeps=t(o),e);s.entryCount=l.length,0===s.entryCount&&a.push(o),i.each(l,function(e){i.indexOf(s.predecessor,e)<0&&s.predecessor.push(e);var t=n(r,e);i.indexOf(t.successor,e)<0&&t.successor.push(o)})}),{graph:r,noEntryList:a}}(r),l=s.graph,u=s.noEntryList,c={};for(i.each(e,function(e){c[e]=!0});u.length;){var d=u.pop(),h=l[d],f=!!c[d];f&&(a.call(o,d,h.originalDeps.slice()),delete c[d]),i.each(h.successor,f?m:p)}i.each(c,function(){throw new Error("Circle dependency may exists")})}function p(e){l[e].entryCount--,0===l[e].entryCount&&u.push(e)}function m(e){c[e]=!0,p(e)}}}},BiZM:function(e,t,n){var i=n("GKMz").createHashMap;e.exports=function(e){e.eachSeriesByType("themeRiver",function(e){var t=e.getData(),n=e.getRawData(),r=e.get("color"),a=i();t.each(function(e){a.set(t.getRawIndex(e),e)}),n.each(function(i){var o=n.getName(i),s=r[(e.nameMap.get(o)-1)%r.length];n.setItemVisual(i,"color",s);var l=a.get(i);null!=l&&t.setItemVisual(l,"color",s)})})}},BplH:function(e,t,n){var i=n("8Nvm"),r=n("C02x").document,a=i(r)&&i(r.createElement);e.exports=function(e){return a?r.createElement(e):{}}},BrYk:function(e,t,n){var i=n("NHLq"),r=i.prepareDataCoordInfo,a=i.getStackedOnPoint;e.exports=function(e,t,n,i,o,s,l,u){for(var c=function(e,t){var n=[];return t.diff(e).add(function(e){n.push({cmd:"+",idx:e})}).update(function(e,t){n.push({cmd:"=",idx:t,idx1:e})}).remove(function(e){n.push({cmd:"-",idx:e})}).execute(),n}(e,t),d=[],h=[],f=[],p=[],m=[],g=[],v=[],y=r(o,t,l),b=r(s,e,u),_=0;_<c.length;_++){var x=c[_],w=!0;switch(x.cmd){case"=":var S=e.getItemLayout(x.idx),C=t.getItemLayout(x.idx1);(isNaN(S[0])||isNaN(S[1]))&&(S=C.slice()),d.push(S),h.push(C),f.push(n[x.idx]),p.push(i[x.idx1]),v.push(t.getRawIndex(x.idx1));break;case"+":var M=x.idx;d.push(o.dataToPoint([t.get(y.dataDimsForPoint[0],M),t.get(y.dataDimsForPoint[1],M)])),h.push(t.getItemLayout(M).slice()),f.push(a(y,o,t,M)),p.push(i[M]),v.push(t.getRawIndex(M));break;case"-":M=x.idx;var k=e.getRawIndex(M);k!==M?(d.push(e.getItemLayout(M)),h.push(s.dataToPoint([e.get(b.dataDimsForPoint[0],M),e.get(b.dataDimsForPoint[1],M)])),f.push(n[M]),p.push(a(b,s,e,M)),v.push(k)):w=!1}w&&(m.push(x),g.push(g.length))}g.sort(function(e,t){return v[e]-v[t]});var T=[],A=[],I=[],E=[],D=[];for(_=0;_<g.length;_++)M=g[_],T[_]=d[M],A[_]=h[M],I[_]=f[M],E[_]=p[M],D[_]=m[M];return{current:T,next:A,stackedOnCurrent:I,stackedOnNext:E,status:D}}},BwzW:function(e,t,n){var i=n("luYz"),r=n("YepE"),a=Math.min,o=Math.max,s=Math.sin,l=Math.cos,u=2*Math.PI,c=i.create(),d=i.create(),h=i.create();var f=[],p=[];t.fromPoints=function(e,t,n){if(0!==e.length){var i,r=e[0],s=r[0],l=r[0],u=r[1],c=r[1];for(i=1;i<e.length;i++)r=e[i],s=a(s,r[0]),l=o(l,r[0]),u=a(u,r[1]),c=o(c,r[1]);t[0]=s,t[1]=u,n[0]=l,n[1]=c}},t.fromLine=function(e,t,n,i,r,s){r[0]=a(e,n),r[1]=a(t,i),s[0]=o(e,n),s[1]=o(t,i)},t.fromCubic=function(e,t,n,i,s,l,u,c,d,h){var m,g=r.cubicExtrema,v=r.cubicAt,y=g(e,n,s,u,f);for(d[0]=1/0,d[1]=1/0,h[0]=-1/0,h[1]=-1/0,m=0;m<y;m++){var b=v(e,n,s,u,f[m]);d[0]=a(b,d[0]),h[0]=o(b,h[0])}for(y=g(t,i,l,c,p),m=0;m<y;m++){var _=v(t,i,l,c,p[m]);d[1]=a(_,d[1]),h[1]=o(_,h[1])}d[0]=a(e,d[0]),h[0]=o(e,h[0]),d[0]=a(u,d[0]),h[0]=o(u,h[0]),d[1]=a(t,d[1]),h[1]=o(t,h[1]),d[1]=a(c,d[1]),h[1]=o(c,h[1])},t.fromQuadratic=function(e,t,n,i,s,l,u,c){var d=r.quadraticExtremum,h=r.quadraticAt,f=o(a(d(e,n,s),1),0),p=o(a(d(t,i,l),1),0),m=h(e,n,s,f),g=h(t,i,l,p);u[0]=a(e,s,m),u[1]=a(t,l,g),c[0]=o(e,s,m),c[1]=o(t,l,g)},t.fromArc=function(e,t,n,r,a,o,f,p,m){var g=i.min,v=i.max,y=Math.abs(a-o);if(y%u<1e-4&&y>1e-4)return p[0]=e-n,p[1]=t-r,m[0]=e+n,void(m[1]=t+r);if(c[0]=l(a)*n+e,c[1]=s(a)*r+t,d[0]=l(o)*n+e,d[1]=s(o)*r+t,g(p,c,d),v(m,c,d),(a%=u)<0&&(a+=u),(o%=u)<0&&(o+=u),a>o&&!f?o+=u:a<o&&f&&(a+=u),f){var b=o;o=a,a=b}for(var _=0;_<o;_+=Math.PI/2)_>a&&(h[0]=l(_)*n+e,h[1]=s(_)*r+t,g(p,h,p),v(m,h,m))}},C02x:function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},C7Lr:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},CFGK:function(e,t,n){var i=n("TPu0"),r=Math.min;e.exports=function(e){return e>0?r(i(e),9007199254740991):0}},CH74:function(e,t,n){var i=n("g0yf"),r=n("luYz"),a=i.identity,o=5e-5;function s(e){return e>o||e<-o}var l=function(e){(e=e||{}).position||(this.position=[0,0]),null==e.rotation&&(this.rotation=0),e.scale||(this.scale=[1,1]),this.origin=this.origin||null},u=l.prototype;u.transform=null,u.needLocalTransform=function(){return s(this.rotation)||s(this.position[0])||s(this.position[1])||s(this.scale[0]-1)||s(this.scale[1]-1)},u.updateTransform=function(){var e=this.parent,t=e&&e.transform,n=this.needLocalTransform(),r=this.transform;n||t?(r=r||i.create(),n?this.getLocalTransform(r):a(r),t&&(n?i.mul(r,e.transform,r):i.copy(r,e.transform)),this.transform=r,this.invTransform=this.invTransform||i.create(),i.invert(this.invTransform,r)):r&&a(r)},u.getLocalTransform=function(e){return l.getLocalTransform(this,e)},u.setTransform=function(e){var t=this.transform,n=e.dpr||1;t?e.setTransform(n*t[0],n*t[1],n*t[2],n*t[3],n*t[4],n*t[5]):e.setTransform(n,0,0,n,0,0)},u.restoreTransform=function(e){var t=e.dpr||1;e.setTransform(t,0,0,t,0,0)};var c=[];u.decomposeTransform=function(){if(this.transform){var e=this.parent,t=this.transform;e&&e.transform&&(i.mul(c,e.invTransform,t),t=c);var n=t[0]*t[0]+t[1]*t[1],r=t[2]*t[2]+t[3]*t[3],a=this.position,o=this.scale;s(n-1)&&(n=Math.sqrt(n)),s(r-1)&&(r=Math.sqrt(r)),t[0]<0&&(n=-n),t[3]<0&&(r=-r),a[0]=t[4],a[1]=t[5],o[0]=n,o[1]=r,this.rotation=Math.atan2(-t[1]/r,t[0]/n)}},u.getGlobalScale=function(){var e=this.transform;if(!e)return[1,1];var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]),n=Math.sqrt(e[2]*e[2]+e[3]*e[3]);return e[0]<0&&(t=-t),e[3]<0&&(n=-n),[t,n]},u.transformCoordToLocal=function(e,t){var n=[e,t],i=this.invTransform;return i&&r.applyTransform(n,n,i),n},u.transformCoordToGlobal=function(e,t){var n=[e,t],i=this.transform;return i&&r.applyTransform(n,n,i),n},l.getLocalTransform=function(e,t){a(t=t||[]);var n=e.origin,r=e.scale||[1,1],o=e.rotation||0,s=e.position||[0,0];return n&&(t[4]-=n[0],t[5]-=n[1]),i.scale(t,t,r),o&&i.rotate(t,t,o),n&&(t[4]+=n[0],t[5]+=n[1]),t[4]+=s[0],t[5]+=s[1],t};var d=l;e.exports=d},CPY7:function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=207)}({14:function(e,t){e.exports=n("pQJX")},2:function(e,t){e.exports=n("iOou")},20:function(e,t){e.exports=n("L9EA")},207:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(208),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},208:function(e,t,n){"use strict";t.__esModule=!0;var i=u(n(7)),r=u(n(14)),a=n(2),o=n(20),s=n(3),l=u(n(4));function u(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElTooltip",mixins:[i.default],props:{openDelay:{type:Number,default:0},disabled:Boolean,manual:Boolean,effect:{type:String,default:"dark"},arrowOffset:{type:Number,default:0},popperClass:String,content:String,visibleArrow:{default:!0},transition:{type:String,default:"el-fade-in-linear"},popperOptions:{default:function(){return{boundariesPadding:10,gpuAcceleration:!1}}},enterable:{type:Boolean,default:!0},hideAfter:{type:Number,default:0}},data:function(){return{timeoutPending:null,focusing:!1}},computed:{tooltipId:function(){return"el-tooltip-"+(0,s.generateId)()}},beforeCreate:function(){var e=this;this.$isServer||(this.popperVM=new l.default({data:{node:""},render:function(e){return this.node}}).$mount(),this.debounceClose=(0,r.default)(200,function(){return e.handleClosePopper()}))},render:function(e){var t=this;if(this.popperVM&&(this.popperVM.node=e("transition",{attrs:{name:this.transition},on:{afterLeave:this.doDestroy}},[e("div",{on:{mouseleave:function(){t.setExpectedState(!1),t.debounceClose()},mouseenter:function(){t.setExpectedState(!0)}},ref:"popper",attrs:{role:"tooltip",id:this.tooltipId,"aria-hidden":this.disabled||!this.showPopper?"true":"false"},directives:[{name:"show",value:!this.disabled&&this.showPopper}],class:["el-tooltip__popper","is-"+this.effect,this.popperClass]},[this.$slots.content||this.content])])),!this.$slots.default||!this.$slots.default.length)return this.$slots.default;var n=(0,o.getFirstComponentChild)(this.$slots.default);if(!n)return n;var i=n.data=n.data||{};return i.staticClass=this.concatClass(i.staticClass,"el-tooltip"),n},mounted:function(){var e=this;this.referenceElm=this.$el,1===this.$el.nodeType&&(this.$el.setAttribute("aria-describedby",this.tooltipId),this.$el.setAttribute("tabindex",0),(0,a.on)(this.referenceElm,"mouseenter",this.show),(0,a.on)(this.referenceElm,"mouseleave",this.hide),(0,a.on)(this.referenceElm,"focus",function(){if(e.$slots.default&&e.$slots.default.length){var t=e.$slots.default[0].componentInstance;t&&t.focus?t.focus():e.handleFocus()}else e.handleFocus()}),(0,a.on)(this.referenceElm,"blur",this.handleBlur),(0,a.on)(this.referenceElm,"click",this.removeFocusing))},watch:{focusing:function(e){e?(0,a.addClass)(this.referenceElm,"focusing"):(0,a.removeClass)(this.referenceElm,"focusing")}},methods:{show:function(){this.setExpectedState(!0),this.handleShowPopper()},hide:function(){this.setExpectedState(!1),this.debounceClose()},handleFocus:function(){this.focusing=!0,this.show()},handleBlur:function(){this.focusing=!1,this.hide()},removeFocusing:function(){this.focusing=!1},concatClass:function(e,t){return e&&e.indexOf(t)>-1?e:e?t?e+" "+t:e:t||""},handleShowPopper:function(){var e=this;this.expectedState&&!this.manual&&(clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.showPopper=!0},this.openDelay),this.hideAfter>0&&(this.timeoutPending=setTimeout(function(){e.showPopper=!1},this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e}},destroyed:function(){var e=this.referenceElm;(0,a.off)(e,"mouseenter",this.show),(0,a.off)(e,"mouseleave",this.hide),(0,a.off)(e,"focus",this.handleFocus),(0,a.off)(e,"blur",this.handleBlur),(0,a.off)(e,"click",this.removeFocusing)}}},3:function(e,t){e.exports=n("I1sU")},4:function(e,t){e.exports=n("IvJb")},7:function(e,t){e.exports=n("9mPB")}})},CVJP:function(e,t,n){t.f=n("biYF")},CeJ6:function(e,t,n){var i=n("GKMz");function r(e){var t=e.itemStyle||(e.itemStyle={}),n=t.emphasis||(t.emphasis={}),r=e.label||e.label||{},o=r.normal||(r.normal={}),s={normal:1,emphasis:1};i.each(r,function(e,t){s[t]||a(o,t)||(o[t]=e)}),n.label&&!a(r,"emphasis")&&(r.emphasis=n.label,delete n.label)}function a(e,t){return e.hasOwnProperty(t)}e.exports=function(e){var t=e&&e.timeline;i.isArray(t)||(t=t?[t]:[]),i.each(t,function(e){e&&function(e){var t=e.type,n={number:"value",time:"time"};if(n[t]&&(e.axisType=n[t],delete e.type),r(e),a(e,"controlPosition")){var o=e.controlStyle||(e.controlStyle={});a(o,"position")||(o.position=e.controlPosition),"none"!==o.position||a(o,"show")||(o.show=!1,delete o.position),delete e.controlPosition}i.each(e.data||[],function(e){i.isObject(e)&&!i.isArray(e)&&(!a(e,"value")&&a(e,"name")&&(e.value=e.name),r(e))})}(e)})}},"Cs+Z":function(e,t,n){var i=n("OGtO"),r=n("BwzW"),a=n("luYz"),o=n("oDHT");function s(e,t,n){if(this.name=e,this.geometries=t,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}s.prototype={constructor:s,properties:null,getBoundingRect:function(){var e=this._rect;if(e)return e;for(var t=Number.MAX_VALUE,n=[t,t],o=[-t,-t],s=[],l=[],u=this.geometries,c=0;c<u.length;c++)if("polygon"===u[c].type){var d=u[c].exterior;r.fromPoints(d,s,l),a.min(n,n,s),a.max(o,o,l)}return 0===c&&(n[0]=n[1]=o[0]=o[1]=0),this._rect=new i(n[0],n[1],o[0]-n[0],o[1]-n[1])},contain:function(e){var t=this.getBoundingRect(),n=this.geometries;if(!t.contain(e[0],e[1]))return!1;e:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var a=n[i].exterior,s=n[i].interiors;if(o.contain(a,e[0],e[1])){for(var l=0;l<(s?s.length:0);l++)if(o.contain(s[l]))continue e;return!0}}return!1},transformTo:function(e,t,n,r){var o=this.getBoundingRect(),s=o.width/o.height;n?r||(r=n/s):n=s*r;for(var l=new i(e,t,n,r),u=o.calculateTransform(l),c=this.geometries,d=0;d<c.length;d++)if("polygon"===c[d].type){for(var h=c[d].exterior,f=c[d].interiors,p=0;p<h.length;p++)a.applyTransform(h[p],h[p],u);for(var m=0;m<(f?f.length:0);m++)for(p=0;p<f[m].length;p++)a.applyTransform(f[m][p],f[m][p],u)}(o=this._rect).copy(l),this.center=[o.x+o.width/2,o.y+o.height/2]}};var l=s;e.exports=l},CtWo:function(e,t,n){var i=n("035p");n("i+pt").register("single",{create:function(e,t){var n=[];return e.eachComponent("singleAxis",function(r,a){var o=new i(r,e,t);o.name="single_"+a,o.resize(r,t),r.coordinateSystem=o,n.push(o)}),e.eachSeries(function(t){if("singleAxis"===t.get("coordinateSystem")){var n=e.queryComponents({mainType:"singleAxis",index:t.get("singleAxisIndex"),id:t.get("singleAxisId")})[0];t.coordinateSystem=n&&n.coordinateSystem}}),n},dimensions:i.prototype.dimensions})},CwES:function(e,t,n){var i=n("qIgY")([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["textPosition"],["textAlign"]]),r={getItemStyle:function(e,t){var n=i(this,e,t),r=this.getBorderLineDash();return r&&(n.lineDash=r),n},getBorderLineDash:function(){var e=this.get("borderType");return"solid"===e||null==e?null:"dashed"===e?[5,5]:[1,1]}};e.exports=r},Cwac:function(e,t,n){var i=n("GKMz"),r=n("Zjj5"),a=n("5gvs"),o=n("KSHG"),s=n("uxQp"),l=i.each,u=s.toCamelCase,c=["","-webkit-","-moz-","-o-"];function d(e){var t,n,a=[],d=e.get("transitionDuration"),h=e.get("backgroundColor"),f=e.getModel("textStyle"),p=e.get("padding");return d&&a.push((n="left "+(t=d)+"s cubic-bezier(0.23, 1, 0.32, 1),top "+t+"s cubic-bezier(0.23, 1, 0.32, 1)",i.map(c,function(e){return e+"transition:"+n}).join(";"))),h&&(o.canvasSupported?a.push("background-Color:"+h):(a.push("background-Color:#"+r.toHex(h)),a.push("filter:alpha(opacity=70)"))),l(["width","color","radius"],function(t){var n="border-"+t,i=u(n),r=e.get(i);null!=r&&a.push(n+":"+r+("color"===t?"":"px"))}),a.push(function(e){var t=[],n=e.get("fontSize"),i=e.getTextColor();return i&&t.push("color:"+i),t.push("font:"+e.getFont()),n&&t.push("line-height:"+Math.round(3*n/2)+"px"),l(["decoration","align"],function(n){var i=e.get(n);i&&t.push("text-"+n+":"+i)}),t.join(";")}(f)),null!=p&&a.push("padding:"+s.normalizeCssArray(p).join("px ")+"px"),a.join(";")+";"}function h(e,t){if(o.wxa)return null;var n=document.createElement("div"),i=this._zr=t.getZr();this.el=n,this._x=t.getWidth()/2,this._y=t.getHeight()/2,e.appendChild(n),this._container=e,this._show=!1,this._hideTimeout;var r=this;n.onmouseenter=function(){r._enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},n.onmousemove=function(t){if(t=t||window.event,!r._enterable){var n=i.handler;a.normalizeEvent(e,t,!0),n.dispatch("mousemove",t)}},n.onmouseleave=function(){r._enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1}}h.prototype={constructor:h,_enterable:!0,update:function(){var e=this._container,t=e.currentStyle||document.defaultView.getComputedStyle(e),n=e.style;"absolute"!==n.position&&"absolute"!==t.position&&(n.position="relative")},show:function(e){clearTimeout(this._hideTimeout);var t=this.el;t.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+d(e)+";left:"+this._x+"px;top:"+this._y+"px;"+(e.get("extraCssText")||""),t.style.display=t.innerHTML?"block":"none",this._show=!0},setContent:function(e){this.el.innerHTML=null==e?"":e},setEnterable:function(e){this._enterable=e},getSize:function(){var e=this.el;return[e.clientWidth,e.clientHeight]},moveTo:function(e,t){var n,i=this._zr;i&&i.painter&&(n=i.painter.getViewportRootOffset())&&(e+=n.offsetLeft,t+=n.offsetTop);var r=this.el.style;r.left=e+"px",r.top=t+"px",this._x=e,this._y=t},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(e){!this._show||this._inContent&&this._enterable||(e?(this._hideDelay=e,this._show=!1,this._hideTimeout=setTimeout(i.bind(this.hide,this),e)):this.hide())},isShow:function(){return this._show}};var f=h;e.exports=f},D7MG:function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=337)}({18:function(e,t){e.exports=n("ZCDV")},2:function(e,t){e.exports=n("iOou")},3:function(e,t){e.exports=n("I1sU")},337:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(338),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},338:function(e,t,n){"use strict";t.__esModule=!0;var i=n(18),r=s(n(38)),a=n(3),o=s(n(339));function s(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElScrollbar",components:{Bar:o.default},props:{native:Boolean,wrapStyle:{},wrapClass:{},viewClass:{},viewStyle:{},noresize:Boolean,tag:{type:String,default:"div"}},data:function(){return{sizeWidth:"0",sizeHeight:"0",moveX:0,moveY:0}},computed:{wrap:function(){return this.$refs.wrap}},render:function(e){var t=(0,r.default)(),n=this.wrapStyle;if(t){var i="-"+t+"px",s="margin-bottom: "+i+"; margin-right: "+i+";";Array.isArray(this.wrapStyle)?(n=(0,a.toObject)(this.wrapStyle)).marginRight=n.marginBottom=i:"string"==typeof this.wrapStyle?n+=s:n=s}var l=e(this.tag,{class:["el-scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default),u=e("div",{ref:"wrap",style:n,on:{scroll:this.handleScroll},class:[this.wrapClass,"el-scrollbar__wrap",t?"":"el-scrollbar__wrap--hidden-default"]},[[l]]);return e("div",{class:"el-scrollbar"},this.native?[e("div",{ref:"wrap",class:[this.wrapClass,"el-scrollbar__wrap"],style:n},[[l]])]:[u,e(o.default,{attrs:{move:this.moveX,size:this.sizeWidth}},[]),e(o.default,{attrs:{vertical:!0,move:this.moveY,size:this.sizeHeight}},[])])},methods:{handleScroll:function(){var e=this.wrap;this.moveY=100*e.scrollTop/e.clientHeight,this.moveX=100*e.scrollLeft/e.clientWidth},update:function(){var e,t,n=this.wrap;n&&(e=100*n.clientHeight/n.scrollHeight,t=100*n.clientWidth/n.scrollWidth,this.sizeHeight=e<100?e+"%":"",this.sizeWidth=t<100?t+"%":"")}},mounted:function(){this.native||(this.$nextTick(this.update),!this.noresize&&(0,i.addResizeListener)(this.$refs.resize,this.update))},beforeDestroy:function(){this.native||!this.noresize&&(0,i.removeResizeListener)(this.$refs.resize,this.update)}}},339:function(e,t,n){"use strict";t.__esModule=!0;var i=n(2),r=n(340);t.default={name:"Bar",props:{vertical:Boolean,size:String,move:Number},computed:{bar:function(){return r.BAR_MAP[this.vertical?"vertical":"horizontal"]},wrap:function(){return this.$parent.wrap}},render:function(e){var t=this.size,n=this.move,i=this.bar;return e("div",{class:["el-scrollbar__bar","is-"+i.key],on:{mousedown:this.clickTrackHandler}},[e("div",{ref:"thumb",class:"el-scrollbar__thumb",on:{mousedown:this.clickThumbHandler},style:(0,r.renderThumbStyle)({size:t,move:n,bar:i})},[])])},methods:{clickThumbHandler:function(e){this.startDrag(e),this[this.bar.axis]=e.currentTarget[this.bar.offset]-(e[this.bar.client]-e.currentTarget.getBoundingClientRect()[this.bar.direction])},clickTrackHandler:function(e){var t=100*(Math.abs(e.target.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-this.$refs.thumb[this.bar.offset]/2)/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=t*this.wrap[this.bar.scrollSize]/100},startDrag:function(e){e.stopImmediatePropagation(),this.cursorDown=!0,(0,i.on)(document,"mousemove",this.mouseMoveDocumentHandler),(0,i.on)(document,"mouseup",this.mouseUpDocumentHandler),document.onselectstart=function(){return!1}},mouseMoveDocumentHandler:function(e){if(!1!==this.cursorDown){var t=this[this.bar.axis];if(t){var n=100*(-1*(this.$el.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-(this.$refs.thumb[this.bar.offset]-t))/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=n*this.wrap[this.bar.scrollSize]/100}}},mouseUpDocumentHandler:function(e){this.cursorDown=!1,this[this.bar.axis]=0,(0,i.off)(document,"mousemove",this.mouseMoveDocumentHandler),document.onselectstart=null}},destroyed:function(){(0,i.off)(document,"mouseup",this.mouseUpDocumentHandler)}}},340:function(e,t,n){"use strict";t.__esModule=!0,t.renderThumbStyle=function(e){var t=e.move,n=e.size,i=e.bar,r={},a="translate"+i.axis+"("+t+"%)";return r[i.size]=n,r.transform=a,r.msTransform=a,r.webkitTransform=a,r};t.BAR_MAP={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}}},38:function(e,t){e.exports=n("6SiW")}})},DKbI:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("eZJ0"),o=n("niVK"),s=n("QmbI"),l=n("MP34"),u=n("Nrx1"),c=n("7eLB");n("P3t+");var d=u.toolbox.dataZoom,h=r.each,f="\0_ec_\0toolbox-dataZoom_";function p(e,t,n){(this._brushController=new a(n.getZr())).on("brush",r.bind(this._onBrush,this)).mount(),this._isZoomActive}p.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:r.clone(d.title)};var m=p.prototype;m.render=function(e,t,n,i){this.model=e,this.ecModel=t,this.api=n,function(e,t,n,i,r){var a=n._isZoomActive;i&&"takeGlobalCursor"===i.type&&(a="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n._isZoomActive=a,e.setIconStatus("zoom",a?"emphasis":"normal");var s=new o(v(e.option),t,{include:["grid"]});n._brushController.setPanels(s.makePanelOpts(r,function(e){return e.xAxisDeclared&&!e.yAxisDeclared?"lineX":!e.xAxisDeclared&&e.yAxisDeclared?"lineY":"rect"})).enableBrush(!!a&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}(e,t,this,i,n),function(e,t){e.setIconStatus("back",s.count(t)>1?"emphasis":"normal")}(e,t)},m.onclick=function(e,t,n){g[n].call(this)},m.remove=function(e,t){this._brushController.unmount()},m.dispose=function(e,t){this._brushController.dispose()};var g={zoom:function(){var e=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:e})},back:function(){this._dispatchZoomAction(s.pop(this.ecModel))}};function v(e){var t={};return r.each(["xAxisIndex","yAxisIndex"],function(n){t[n]=e[n],null==t[n]&&(t[n]="all"),(!1===t[n]||"none"===t[n])&&(t[n]=[])}),t}m._onBrush=function(e,t){if(t.isEnd&&e.length){var n={},i=this.ecModel;this._brushController.updateCovers([]),new o(v(this.model.option),i,{include:["grid"]}).matchOutputRanges(e,i,function(e,t,n){if("cartesian2d"===n.type){var i=e.brushType;"rect"===i?(r("x",n,t[0]),r("y",n,t[1])):r({lineX:"x",lineY:"y"}[i],n,t)}}),s.push(i,n),this._dispatchZoomAction(n)}function r(e,t,r){var a=t.getAxis(e),o=a.model,s=function(e,t,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},function(n){n.getAxisModel(e,t.componentIndex)&&(i=n)}),i}(e,o,i),u=s.findRepresentativeAxisProxy(o).getMinMaxSpan();null==u.minValueSpan&&null==u.maxValueSpan||(r=l(0,r.slice(),a.scale.getExtent(),0,u.minValueSpan,u.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},m._dispatchZoomAction=function(e){var t=[];h(e,function(e,n){t.push(r.clone(e))}),t.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:t})},c.register("dataZoom",p),i.registerPreprocessor(function(e){if(e){var t=e.dataZoom||(e.dataZoom=[]);r.isArray(t)||(e.dataZoom=t=[t]);var n=e.toolbox;if(n&&(r.isArray(n)&&(n=n[0]),n&&n.feature)){var i=n.feature.dataZoom;a("xAxis",i),a("yAxis",i)}}function a(n,i){if(i){var a=n+"Index",o=i[a];null==o||"all"==o||r.isArray(o)||(o=!1===o||"none"===o?[]:[o]),function(t,n){var i=e[t];r.isArray(i)||(i=i?[i]:[]);h(i,n)}(n,function(e,i){if(null==o||"all"==o||-1!==r.indexOf(o,i)){var s={type:"select",$fromToolbox:!0,id:f+n+i};s[a]=i,t.push(s)}})}}});var y=p;e.exports=y},DVkV:function(e,t,n){var i=n("pplb")("meta"),r=n("8Nvm"),a=n("Mcur"),o=n("lIiZ").f,s=0,l=Object.isExtensible||function(){return!0},u=!n("BRDz")(function(){return l(Object.preventExtensions({}))}),c=function(e){o(e,i,{value:{i:"O"+ ++s,w:{}}})},d=e.exports={KEY:i,NEED:!1,fastKey:function(e,t){if(!r(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,i)){if(!l(e))return"F";if(!t)return"E";c(e)}return e[i].i},getWeak:function(e,t){if(!a(e,i)){if(!l(e))return!0;if(!t)return!1;c(e)}return e[i].w},onFreeze:function(e){return u&&d.NEED&&l(e)&&!a(e,i)&&c(e),e}}},DY6x:function(e,t,n){var i=n("Hy6W").forceLayout,r=n("R+dN").simpleLayout,a=n("ehjs").circularLayout,o=n("abCA").linearMap,s=n("luYz"),l=n("GKMz");e.exports=function(e){e.eachSeriesByType("graph",function(e){if(!(v=e.coordinateSystem)||"view"===v.type)if("force"===e.get("layout")){var t=e.preservedPoints||{},n=e.getGraph(),u=n.data,c=n.edgeData,d=e.getModel("force"),h=d.get("initLayout");e.preservedPoints?u.each(function(e){var n=u.getId(e);u.setItemLayout(e,t[n]||[NaN,NaN])}):h&&"none"!==h?"circular"===h&&a(e):r(e);var f=u.getDataExtent("value"),p=c.getDataExtent("value"),m=d.get("repulsion"),g=d.get("edgeLength");l.isArray(m)||(m=[m,m]),l.isArray(g)||(g=[g,g]),g=[g[1],g[0]];var v,y=u.mapArray("value",function(e,t){var n=u.getItemLayout(t),i=o(e,f,m);return isNaN(i)&&(i=(m[0]+m[1])/2),{w:i,rep:i,fixed:u.getItemModel(t).get("fixed"),p:!n||isNaN(n[0])||isNaN(n[1])?null:n}}),b=c.mapArray("value",function(e,t){var i=n.getEdgeByIndex(t),r=o(e,p,g);return isNaN(r)&&(r=(g[0]+g[1])/2),{n1:y[i.node1.dataIndex],n2:y[i.node2.dataIndex],d:r,curveness:i.getModel().get("lineStyle.curveness")||0}}),_=(v=e.coordinateSystem).getBoundingRect(),x=i(y,b,{rect:_,gravity:d.get("gravity")}),w=x.step;x.step=function(e){for(var i=0,r=y.length;i<r;i++)y[i].fixed&&s.copy(y[i].p,n.getNodeByIndex(i).getLayout());w(function(i,r,a){for(var o=0,l=i.length;o<l;o++)i[o].fixed||n.getNodeByIndex(o).setLayout(i[o].p),t[u.getId(o)]=i[o].p;for(o=0,l=r.length;o<l;o++){var c=r[o],d=n.getEdgeByIndex(o),h=c.n1.p,f=c.n2.p,p=d.getLayout();(p=p?p.slice():[])[0]=p[0]||[],p[1]=p[1]||[],s.copy(p[0],h),s.copy(p[1],f),+c.curveness&&(p[2]=[(h[0]+f[0])/2-(h[1]-f[1])*c.curveness,(h[1]+f[1])/2-(f[0]-h[0])*c.curveness]),d.setLayout(p)}e&&e(a)})},e.forceLayout=x,e.preservedPoints=t,x.step()}else e.forceLayout=null})}},Dh2g:function(e,t,n){var i=n("aVg8"),r=n("GKMz"),a=n("Qmdc");function o(e,t){i.Group.call(this);var n=new i.Polygon,r=new i.Polyline,a=new i.Text;function o(){r.ignore=r.hoverIgnore,a.ignore=a.hoverIgnore}function s(){r.ignore=r.normalIgnore,a.ignore=a.normalIgnore}this.add(n),this.add(r),this.add(a),this.updateData(e,t,!0),this.on("emphasis",o).on("normal",s).on("mouseover",o).on("mouseout",s)}var s=o.prototype,l=["itemStyle","opacity"];s.updateData=function(e,t,n){var a=this.childAt(0),o=e.hostModel,s=e.getItemModel(t),u=e.getItemLayout(t),c=e.getItemModel(t).get(l);c=null==c?1:c,a.useStyle({}),n?(a.setShape({points:u.points}),a.setStyle({opacity:0}),i.initProps(a,{style:{opacity:c}},o,t)):i.updateProps(a,{style:{opacity:c},shape:{points:u.points}},o,t);var d=s.getModel("itemStyle"),h=e.getItemVisual(t,"color");a.setStyle(r.defaults({lineJoin:"round",fill:h},d.getItemStyle(["opacity"]))),a.hoverStyle=d.getModel("emphasis").getItemStyle(),this._updateLabel(e,t),i.setHoverStyle(this)},s._updateLabel=function(e,t){var n=this.childAt(1),r=this.childAt(2),a=e.hostModel,o=e.getItemModel(t),s=e.getItemLayout(t).label,l=e.getItemVisual(t,"color");i.updateProps(n,{shape:{points:s.linePoints||s.linePoints}},a,t),i.updateProps(r,{style:{x:s.x,y:s.y}},a,t),r.attr({rotation:s.rotation,origin:[s.x,s.y],z2:10});var u=o.getModel("label"),c=o.getModel("emphasis.label"),d=o.getModel("labelLine"),h=o.getModel("emphasis.labelLine");l=e.getItemVisual(t,"color");i.setLabelStyle(r.style,r.hoverStyle={},u,c,{labelFetcher:e.hostModel,labelDataIndex:t,defaultText:e.getName(t),autoColor:l,useInsideStyle:!!s.inside},{textAlign:s.textAlign,textVerticalAlign:s.verticalAlign}),r.ignore=r.normalIgnore=!u.get("show"),r.hoverIgnore=!c.get("show"),n.ignore=n.normalIgnore=!d.get("show"),n.hoverIgnore=!h.get("show"),n.setStyle({stroke:l}),n.setStyle(d.getModel("lineStyle").getLineStyle()),n.hoverStyle=h.getModel("lineStyle").getLineStyle()},r.inherits(o,i.Group);var u=a.extend({type:"funnel",render:function(e,t,n){var i=e.getData(),r=this._data,a=this.group;i.diff(r).add(function(e){var t=new o(i,e);i.setItemGraphicEl(e,t),a.add(t)}).update(function(e,t){var n=r.getItemGraphicEl(t);n.updateData(i,e),a.add(n),i.setItemGraphicEl(e,n)}).remove(function(e){var t=r.getItemGraphicEl(e);a.remove(t)}).execute(),this._data=i},remove:function(){this.group.removeAll(),this._data=null},dispose:function(){}});e.exports=u},Dn9c:function(e,t,n){var i=n("GKMz"),r=n("Cs+Z");function a(e,t,n){for(var i=[],r=t[0],a=t[1],o=0;o<e.length;o+=2){var s=e.charCodeAt(o)-64,l=e.charCodeAt(o+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,a=l+=a,i.push([s/n,l/n])}return i}e.exports=function(e){return function(e){if(!e.UTF8Encoding)return e;var t=e.UTF8Scale;null==t&&(t=1024);for(var n=e.features,i=0;i<n.length;i++)for(var r=n[i].geometry,o=r.coordinates,s=r.encodeOffsets,l=0;l<o.length;l++){var u=o[l];if("Polygon"===r.type)o[l]=a(u,s[l],t);else if("MultiPolygon"===r.type)for(var c=0;c<u.length;c++){var d=u[c];u[c]=a(d,s[l][c],t)}}e.UTF8Encoding=!1}(e),i.map(i.filter(e.features,function(e){return e.geometry&&e.properties&&e.geometry.coordinates.length>0}),function(e){var t=e.properties,n=e.geometry,a=n.coordinates,o=[];"Polygon"===n.type&&o.push({type:"polygon",exterior:a[0],interiors:a.slice(1)}),"MultiPolygon"===n.type&&i.each(a,function(e){e[0]&&o.push({type:"polygon",exterior:e[0],interiors:e.slice(1)})});var s=new r(t.name,o,t.cp);return s.properties=t,s})}},DoZ5:function(e,t,n){var i=n("YepE");t.containStroke=function(e,t,n,r,a,o,s,l,u,c,d){if(0===u)return!1;var h=u;return!(d>t+h&&d>r+h&&d>o+h&&d>l+h||d<t-h&&d<r-h&&d<o-h&&d<l-h||c>e+h&&c>n+h&&c>a+h&&c>s+h||c<e-h&&c<n-h&&c<a-h&&c<s-h)&&i.cubicProjectPoint(e,t,n,r,a,o,s,l,c,d,null)<=h/2}},DqbA:function(e,t,n){var i=n("GKMz"),r=n("9PUD"),a=n("MP34"),o=n("4BSa"),s=i.bind,l=r.extend({type:"dataZoom.inside",init:function(e,t){this._range},render:function(e,t,n,r){l.superApply(this,"render",arguments),this._range=e.getPercentRange(),i.each(this.getTargetCoordInfo(),function(t,r){var a=i.map(t,function(e){return o.generateCoordId(e.model)});i.each(t,function(t){var i=t.model,l=e.option;o.register(n,{coordId:o.generateCoordId(i),allCoordIds:a,containsPoint:function(e,t,n){return i.coordinateSystem.containPoint([t,n])},dataZoomId:e.id,throttleRate:e.get("throttle",!0),panGetRange:s(this._onPan,this,t,r),zoomGetRange:s(this._onZoom,this,t,r),zoomLock:l.zoomLock,disabled:l.disabled,roamControllerOpt:{zoomOnMouseWheel:l.zoomOnMouseWheel,moveOnMouseMove:l.moveOnMouseMove,preventDefaultMouseMove:l.preventDefaultMouseMove}})},this)},this)},dispose:function(){o.unregister(this.api,this.dataZoomModel.id),l.superApply(this,"dispose",arguments),this._range=null},_onPan:function(e,t,n,i,r,o,s,l,c){var d=this._range,h=d.slice(),f=e.axisModels[0];if(f){var p=u[t]([o,s],[l,c],f,n,e),m=p.signal*(h[1]-h[0])*p.pixel/p.pixelLength;return a(m,h,[0,100],"all"),this._range=h,d[0]!==h[0]||d[1]!==h[1]?h:void 0}},_onZoom:function(e,t,n,i,r,o){var s=this._range,l=s.slice(),c=e.axisModels[0];if(c){var d=u[t](null,[r,o],c,n,e),h=(d.signal>0?d.pixelStart+d.pixelLength-d.pixel:d.pixel-d.pixelStart)/d.pixelLength*(l[1]-l[0])+l[0];i=Math.max(1/i,0),l[0]=(l[0]-h)*i+h,l[1]=(l[1]-h)*i+h;var f=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return a(0,l,[0,100],0,f.minSpan,f.maxSpan),this._range=l,s[0]!==l[0]||s[1]!==l[1]?l:void 0}}}),u={grid:function(e,t,n,i,r){var a=n.axis,o={},s=r.model.coordinateSystem.getRect();return e=e||[0,0],"x"===a.dim?(o.pixel=t[0]-e[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=a.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=a.inverse?-1:1),o},polar:function(e,t,n,i,r){var a=n.axis,o={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return e=e?s.pointToCoord(e):[0,0],t=s.pointToCoord(t),"radiusAxis"===n.mainType?(o.pixel=t[0]-e[0],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=a.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=u[1]-u[0],o.pixelStart=u[0],o.signal=a.inverse?-1:1),o},singleAxis:function(e,t,n,i,r){var a=n.axis,o=r.model.coordinateSystem.getRect(),s={};return e=e||[0,0],"horizontal"===a.orient?(s.pixel=t[0]-e[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=a.inverse?1:-1):(s.pixel=t[1]-e[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=a.inverse?-1:1),s}},c=l;e.exports=c},E3SK:function(e,t,n){var i={seriesType:"lines",plan:n("gbpp")(),reset:function(e){var t=e.coordinateSystem,n=e.get("polyline"),i=e.pipelineContext.large;return{progress:function(r,a){var o=[];if(i){var s,l=r.end-r.start;if(n){for(var u=0,c=r.start;c<r.end;c++)u+=e.getLineCoordsCount(c);s=new Float32Array(l+2*u)}else s=new Float32Array(4*l);var d=0,h=[];for(c=r.start;c<r.end;c++){var f=e.getLineCoords(c,o);n&&(s[d++]=f);for(var p=0;p<f;p++)h=t.dataToPoint(o[p],!1,h),s[d++]=h[0],s[d++]=h[1]}a.setLayout("linesPoints",s)}else for(c=r.start;c<r.end;c++){var m=a.getItemModel(c),g=(f=e.getLineCoords(c,o),[]);if(n)for(var v=0;v<f;v++)g.push(t.dataToPoint(o[v]));else{g[0]=t.dataToPoint(o[0]),g[1]=t.dataToPoint(o[1]);var y=m.get("lineStyle.curveness");+y&&(g[2]=[(g[0][0]+g[1][0])/2-(g[0][1]-g[1][1])*y,(g[0][1]+g[1][1])/2-(g[1][0]-g[0][0])*y])}a.setItemLayout(c,g)}}}}};e.exports=i},EJmT:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(!e||!t)throw new Error("instance & callback is required");var r=!1,a=function(){r||(r=!0,t&&t.apply(null,arguments))};i?e.$once("after-leave",a):e.$on("after-leave",a),setTimeout(function(){a()},n+100)}},EaZP:function(e,t,n){var i=n("6/6c"),r=n("mhmp"),a=n("InbI").detectSourceFormat,o=n("REEr").SERIES_LAYOUT_BY_COLUMN;i.extend({type:"dataset",defaultOption:{seriesLayoutBy:o,sourceHeader:null,dimensions:null,source:null},optionUpdated:function(){a(this)}}),r.extend({type:"dataset"})},Er0q:function(e,t,n){var i=n("Q9e6"),r=n("luYz"),a=n("rpne"),o=r.min,s=r.max,l=r.scaleAndAdd,u=r.copy,c=[],d=[],h=[];function f(e){return isNaN(e[0])||isNaN(e[1])}function p(e,t,n,i,a,p,m,g,v,y,b){return"none"!==y&&y?function(e,t,n,i,r,a,o,s,l,c,p){for(var m=0,g=n,v=0;v<i;v++){var y=t[g];if(g>=r||g<0)break;if(f(y)){if(p){g+=a;continue}break}if(g===n)e[a>0?"moveTo":"lineTo"](y[0],y[1]);else if(l>0){var b=t[m],_="y"===c?1:0,x=(y[_]-b[_])*l;u(d,b),d[_]=b[_]+x,u(h,y),h[_]=y[_]-x,e.bezierCurveTo(d[0],d[1],h[0],h[1],y[0],y[1])}else e.lineTo(y[0],y[1]);m=g,g+=a}return v}.apply(this,arguments):function(e,t,n,i,a,p,m,g,v,y,b){for(var _=0,x=n,w=0;w<i;w++){var S=t[x];if(x>=a||x<0)break;if(f(S)){if(b){x+=p;continue}break}if(x===n)e[p>0?"moveTo":"lineTo"](S[0],S[1]),u(d,S);else if(v>0){var C=x+p,M=t[C];if(b)for(;M&&f(t[C]);)M=t[C+=p];var k=.5,T=t[_],M=t[C];if(!M||f(M))u(h,S);else{var A,I;if(f(M)&&!b&&(M=S),r.sub(c,M,T),"x"===y||"y"===y){var E="x"===y?0:1;A=Math.abs(S[E]-T[E]),I=Math.abs(S[E]-M[E])}else A=r.dist(S,T),I=r.dist(S,M);l(h,S,c,-v*(1-(k=I/(I+A))))}o(d,d,g),s(d,d,m),o(h,h,g),s(h,h,m),e.bezierCurveTo(d[0],d[1],h[0],h[1],S[0],S[1]),l(d,S,c,v*k)}else e.lineTo(S[0],S[1]);_=x,x+=p}return w}.apply(this,arguments)}function m(e,t){var n=[1/0,1/0],i=[-1/0,-1/0];if(t)for(var r=0;r<e.length;r++){var a=e[r];a[0]<n[0]&&(n[0]=a[0]),a[1]<n[1]&&(n[1]=a[1]),a[0]>i[0]&&(i[0]=a[0]),a[1]>i[1]&&(i[1]=a[1])}return{min:t?n:i,max:t?i:n}}var g=i.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},brush:a(i.prototype.brush),buildPath:function(e,t){var n=t.points,i=0,r=n.length,a=m(n,t.smoothConstraint);if(t.connectNulls){for(;r>0&&f(n[r-1]);r--);for(;i<r&&f(n[i]);i++);}for(;i<r;)i+=p(e,n,i,r,r,1,a.min,a.max,t.smooth,t.smoothMonotone,t.connectNulls)+1}}),v=i.extend({type:"ec-polygon",shape:{points:[],stackedOnPoints:[],smooth:0,stackedOnSmooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},brush:a(i.prototype.brush),buildPath:function(e,t){var n=t.points,i=t.stackedOnPoints,r=0,a=n.length,o=t.smoothMonotone,s=m(n,t.smoothConstraint),l=m(i,t.smoothConstraint);if(t.connectNulls){for(;a>0&&f(n[a-1]);a--);for(;r<a&&f(n[r]);r++);}for(;r<a;){var u=p(e,n,r,a,a,1,s.min,s.max,t.smooth,o,t.connectNulls);p(e,i,r+u-1,u,a,-1,l.min,l.max,t.stackedOnSmooth,o,t.connectNulls),r+=u+1,e.closePath()}}});t.Polyline=g,t.Polygon=v},EvF4:function(e,t){t.containStroke=function(e,t,n,i,r,a,o){if(0===r)return!1;var s=r,l=0;if(o>t+s&&o>i+s||o<t-s&&o<i-s||a>e+s&&a>n+s||a<e-s&&a<n-s)return!1;if(e===n)return Math.abs(a-e)<=s/2;var u=(l=(t-i)/(e-n))*a-o+(e*i-n*t)/(e-n);return u*u/(l*l+1)<=s/2*s/2}},EyUJ:function(e,t,n){e.exports=n("bHZz")},F93s:function(e,t,n){var i=n("abCA"),r=n("uxQp"),a=n("yIEC"),o=n("yA/l"),s=i.round,l=a.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(e,t){var n=this._extent;isNaN(e)||(n[0]=parseFloat(e)),isNaN(t)||(n[1]=parseFloat(t))},unionExtent:function(e){var t=this._extent;e[0]<t[0]&&(t[0]=e[0]),e[1]>t[1]&&(t[1]=e[1]),l.prototype.setExtent.call(this,t[0],t[1])},getInterval:function(){return this._interval},setInterval:function(e){this._interval=e,this._niceExtent=this._extent.slice(),this._intervalPrecision=o.getIntervalPrecision(e)},getTicks:function(){return o.intervalScaleGetTicks(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(e,t){if(null==e)return"";var n=t&&t.precision;return null==n?n=i.getPrecisionSafe(e)||0:"auto"===n&&(n=this._intervalPrecision),e=s(e,n,!0),r.addCommas(e)},niceTicks:function(e,t,n){e=e||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var a=o.intervalScaleNiceTicks(i,e,t,n);this._intervalPrecision=a.intervalPrecision,this._interval=a.interval,this._niceExtent=a.niceTickExtent}},niceExtent:function(e){var t=this._extent;if(t[0]===t[1])if(0!==t[0]){var n=t[0];e.fixMax?t[0]-=n/2:(t[1]+=n/2,t[0]-=n/2)}else t[1]=1;var i=t[1]-t[0];isFinite(i)||(t[0]=0,t[1]=1),this.niceTicks(e.splitNumber,e.minInterval,e.maxInterval);var r=this._interval;e.fixMin||(t[0]=s(Math.floor(t[0]/r)*r)),e.fixMax||(t[1]=s(Math.ceil(t[1]/r)*r))}});l.create=function(){return new l};var u=l;e.exports=u},FITv:function(e,t,n){var i=n("C02x"),r=n("AKd3"),a=n("WwGG"),o=n("bHZz"),s=n("Mcur"),l=function(e,t,n){var u,c,d,h=e&l.F,f=e&l.G,p=e&l.S,m=e&l.P,g=e&l.B,v=e&l.W,y=f?r:r[t]||(r[t]={}),b=y.prototype,_=f?i:p?i[t]:(i[t]||{}).prototype;for(u in f&&(n=t),n)(c=!h&&_&&void 0!==_[u])&&s(y,u)||(d=c?_[u]:n[u],y[u]=f&&"function"!=typeof _[u]?n[u]:g&&c?a(d,i):v&&_[u]==d?function(e){var t=function(t,n,i){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,i)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(d):m&&"function"==typeof d?a(Function.call,d):d,m&&((y.virtual||(y.virtual={}))[u]=d,e&l.R&&b&&!b[u]&&o(b,u,d)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},FKEm:function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},FSq9:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("vqvJ"),o=n("aVg8"),s=n("Q/cl");i.registerPreprocessor(function(e){var t=e.graphic;r.isArray(t)?t[0]&&t[0].elements?e.graphic=[e.graphic[0]]:e.graphic=[{elements:t}]:t&&!t.elements&&(e.graphic=[{elements:[t]}])});var l=i.extendComponentModel({type:"graphic",defaultOption:{elements:[],parentId:null},_elOptionsToUpdate:null,mergeOption:function(e){var t=this.option.elements;this.option.elements=null,l.superApply(this,"mergeOption",arguments),this.option.elements=t},optionUpdated:function(e,t){var n=this.option,i=(t?n:e).elements,o=n.elements=t?[]:n.elements,l=[];this._flatten(i,l);var u=a.mappingToExists(o,l);a.makeIdAndName(u);var c=this._elOptionsToUpdate=[];r.each(u,function(e,t){var n=e.option;n&&(c.push(n),function(e,t){var n=e.exist;if(t.id=e.keyInfo.id,!t.type&&n&&(t.type=n.type),null==t.parentId){var i=t.parentOption;i?t.parentId=i.id:n&&(t.parentId=n.parentId)}t.parentOption=null}(e,n),function(e,t,n){var i=r.extend({},n),a=e[t],o=n.$action||"merge";"merge"===o?a?(r.merge(a,i,!0),s.mergeLayoutParam(a,i,{ignoreSize:!0}),s.copyLayoutParams(n,a)):e[t]=i:"replace"===o?e[t]=i:"remove"===o&&a&&(e[t]=null)}(o,t,n),function(e,t){if(!e)return;e.hv=t.hv=[d(t,["left","right"]),d(t,["top","bottom"])],"group"===e.type&&(null==e.width&&(e.width=t.width=0),null==e.height&&(e.height=t.height=0))}(o[t],n))},this);for(var h=o.length-1;h>=0;h--)null==o[h]?o.splice(h,1):delete o[h].$action},_flatten:function(e,t,n){r.each(e,function(e){if(e){n&&(e.parentOption=n),t.push(e);var i=e.children;"group"===e.type&&i&&this._flatten(i,t,e),delete e.children}},this)},useElOptionsToUpdate:function(){var e=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,e}});function u(e,t,n,i){var r=n.type,a=new(0,o[r.charAt(0).toUpperCase()+r.slice(1)])(n);t.add(a),i.set(e,a),a.__ecGraphicId=e}function c(e,t){var n=e&&e.parent;n&&("group"===e.type&&e.traverse(function(e){c(e,t)}),t.removeKey(e.__ecGraphicId),n.remove(e))}function d(e,t){var n;return r.each(t,function(t){null!=e[t]&&"auto"!==e[t]&&(n=!0)}),n}i.extendComponentView({type:"graphic",init:function(e,t){this._elMap=r.createHashMap(),this._lastGraphicModel},render:function(e,t,n){e!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=e,this._updateElements(e,n),this._relocate(e,n)},_updateElements:function(e,t){var n=e.useElOptionsToUpdate();if(n){var i=this._elMap,a=this.group;r.each(n,function(e){var t=e.$action,n=e.id,o=i.get(n),l=e.parentId,d=null!=l?i.get(l):a;if("text"===e.type){var h=e.style;e.hv&&e.hv[1]&&(h.textVerticalAlign=h.textBaseline=null),!h.hasOwnProperty("textFill")&&h.fill&&(h.textFill=h.fill),!h.hasOwnProperty("textStroke")&&h.stroke&&(h.textStroke=h.stroke)}var f=function(e){return e=r.extend({},e),r.each(["id","parentId","$action","hv","bounding"].concat(s.LOCATION_PARAMS),function(t){delete e[t]}),e}(e);t&&"merge"!==t?"replace"===t?(c(o,i),u(n,d,f,i)):"remove"===t&&c(o,i):o?o.attr(f):u(n,d,f,i);var p=i.get(n);p&&(p.__ecGraphicWidth=e.width,p.__ecGraphicHeight=e.height)})}},_relocate:function(e,t){for(var n=e.option.elements,i=this.group,r=this._elMap,a=n.length-1;a>=0;a--){var o=n[a],l=r.get(o.id);if(l){var u=l.parent,c=u===i?{width:t.getWidth(),height:t.getHeight()}:{width:u.__ecGraphicWidth||0,height:u.__ecGraphicHeight||0};s.positionElement(l,o,c,null,{hv:o.hv,boundingMode:o.bounding})}}},_clear:function(){var e=this._elMap;e.each(function(t){c(t,e)}),this._elMap=r.createHashMap()},dispose:function(){this._clear()}})},FWQk:function(e,t,n){var i,r,a,o=n("WwGG"),s=n("bC1X"),l=n("cihN"),u=n("BplH"),c=n("C02x"),d=c.process,h=c.setImmediate,f=c.clearImmediate,p=c.MessageChannel,m=c.Dispatch,g=0,v={},y=function(){var e=+this;if(v.hasOwnProperty(e)){var t=v[e];delete v[e],t()}},b=function(e){y.call(e.data)};h&&f||(h=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return v[++g]=function(){s("function"==typeof e?e:Function(e),t)},i(g),g},f=function(e){delete v[e]},"process"==n("T9r1")(d)?i=function(e){d.nextTick(o(y,e,1))}:m&&m.now?i=function(e){m.now(o(y,e,1))}:p?(a=(r=new p).port2,r.port1.onmessage=b,i=o(a.postMessage,a,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(i=function(e){c.postMessage(e+"","*")},c.addEventListener("message",b,!1)):i="onreadystatechange"in u("script")?function(e){l.appendChild(u("script")).onreadystatechange=function(){l.removeChild(this),y.call(e)}}:function(e){setTimeout(o(y,e,1),0)}),e.exports={set:h,clear:f}},FkVt:function(e,t,n){var i=n("h+0C"),r=n("vXc2");t.buildPath=function(e,t,n){var a=t.points,o=t.smooth;if(a&&a.length>=2){if(o&&"spline"!==o){var s=r(a,o,n,t.smoothConstraint);e.moveTo(a[0][0],a[0][1]);for(var l=a.length,u=0;u<(n?l:l-1);u++){var c=s[2*u],d=s[2*u+1],h=a[(u+1)%l];e.bezierCurveTo(c[0],c[1],d[0],d[1],h[0],h[1])}}else{"spline"===o&&(a=i(a,n)),e.moveTo(a[0][0],a[0][1]),u=1;for(var f=a.length;u<f;u++)e.lineTo(a[u][0],a[u][1])}n&&e.closePath()}}},Flr9:function(e,t,n){var i;"undefined"!=typeof self&&self,i=function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=1)}([function(e,t,n){"use strict";var i=n(9);t.a={name:"weekTime",props:{weekTimes:{type:Object,default:function(){}}},data:function(){return{weekdays:["涓�","浜�","涓�","鍥�","浜�","鍏�","鏃�"],drawing:!1,selecting:!0,startX:-1,startY:-1,preX:-1,preY:-1,currentX:-1,currentY:-1,selected:{1:[],2:[],3:[],4:[],5:[],6:[],7:[]},selectedText:""}},watch:{weekTimes:function(){this.initData()}},created:function(){this.initData()},mounted:function(){this.emitWeekTimes()},methods:{initData:function(){if(this.weekTimes&&this.weekTimes instanceof Object)for(var e=1;e<=7;e++){var t=Array.isArray(this.weekTimes[e]);this.selected[e]=t?[].concat(this.weekTimes[e]):[]}},selectWeekday:function(e){if(24!==this.selected[e].length){for(var t=[],n=0;n<24;n++)t.push(n);this.selected[e]=t}else this.selected[e].splice(0,this.selected[e].length);this.emitWeekTimes()},selectDayPeriod:function(e,t){if(t){for(var n=!0,i=e;i<=t;i++)if(!this.isSelectedDayPeriod(i)){n=!1;break}if(n)for(var r=1;r<=7;r++)for(var a=e;a<=t;a++)this.deleteHour(r,a);else for(var o=1;o<=7;o++)for(var s=e;s<=t;s++)this.selectHour(o,s)}else if(this.isSelectedDayPeriod(e))for(var l=1;l<=7;l++)this.deleteHour(l,e);else for(var u=1;u<=7;u++)this.selectHour(u,e);this.emitWeekTimes()},isSelectedDayPeriod:function(e){for(var t=1;t<=7;t++)if(!this.isSelected(t,e))return!1;return!0},isSelected:function(e,t){return this.selected[e].indexOf(t)>-1},selectByMousedown:function(e,t,n){0===n.button&&(this.selecting=!this.isSelected(e,t),this.drawing=!0,this.startX=e,this.startY=t,this.preX=e,this.preY=t)},selectByMouseOver:function(e,t){if(this.drawing){for(var n=e>this.startX?this.startX:e,i=t>this.startY?this.startY:t,r=e>this.startX?e:this.startX,a=t>this.startY?t:this.startY,o=n;o<=r;o++)for(var s=i;s<=a;s++)this.selecting?this.selectHour(o,s):this.deleteHour(o,s);this.checkSelectedValid(e,t)}},checkSelectedValid:function(e,t){for(var n=this,i=[],r=[],a=e>this.startX?this.startX:e,o=t>this.startY?this.startY:t,s=e>this.startX?e:this.startX,l=t>this.startY?t:this.startY,u=a;u<=s;u++)for(var c=o;c<=l;c++)i.push(u+","+c);for(var d=this.preX>this.startX?this.startX:this.preX,h=this.preY>this.startY?this.startY:this.preY,f=this.preX>this.startX?this.preX:this.startX,p=this.preY>this.startY?this.preY:this.startY,m=d;m<=f;m++)for(var g=h;g<=p;g++)r.push(m+","+g);r.forEach(function(e){if(-1===i.indexOf(e)){var t=e.split(",");n.selecting?n.deleteHour(+t[0],+t[1]):n.selectHour(+t[0],+t[1])}})},selectByMouseout:function(e,t){this.preX=e,this.preY=t},selectByMouseup:function(e,t){this.drawing&&(this.selecting?this.selectHour(e,t):this.deleteHour(e,t),this.drawing=!1,this.emitWeekTimes())},mouseLeave:function(){this.drawing&&this.emitWeekTimes(),this.drawing=!1},selectHour:function(e,t){this.isSelected(e,t)||this.selected[e].push(t)},deleteHour:function(e,t){var n=this.selected[e].indexOf(t);n>-1&&this.selected[e].splice(n,1)},selectAll:function(){for(var e=[],t=0;t<=23;t++)e.push(t);for(var n=1;n<=7;n++)this.selected[n]=[].concat(e);this.emitWeekTimes()},clear:function(){for(var e=1;e<8;e++)this.selected[e]=[];this.emitWeekTimes()},emitWeekTimes:function(){for(var e=1;e<=7;e++)this.selected[e].sort(function(e,t){return e-t});this.selectedText=this.getWeekTimeString(this.selected),this.$emit("change",this.selected,this.selectedText)},getWeekTimeString:function(e){var t=Object.keys(e),n=t.every(function(t){return 24===e[t].length}),i=t.every(function(t){return 0===e[t].length});if(n)return"鍏ㄥぉ渚�";if(i)return"鍏ㄤ笉閫�";var r=this.hoursPretreatment(e);return this.weekdayPretreatment(r)},hoursPretreatment:function(e){var t=[];return Object.keys(e).forEach(function(n){var r=[];i.a.numberArrayGroup(e[n]).forEach(function(e){if(e.length>1){var t=e[0]+"~"+e[e.length-1]+"鏃�";r.push(t)}else r.push(e.join("")+"鏃�")}),t.push(r.join(","))}),t},weekdayPretreatment:function(e){var t=[],n=["鍛ㄤ竴","鍛ㄤ簩","鍛ㄤ笁","鍛ㄥ洓","鍛ㄤ簲","鍛ㄥ叚","鍛ㄦ棩"];return i.a.getEqualValueIndex(e).forEach(function(r){var a=[];i.a.numberArrayGroup(r).forEach(function(e){if(e.length>1){var t=n[e[0]]+"~"+n[e[e.length-1]];a.push(t)}else a.push(n[e[0]])}),e[r[0]].length>0&&t.push(a.join(",")+": "+e[r[0]])}),t.join("; ")}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2);t.default=i.a,"undefined"!=typeof window&&window.Vue&&window.Vue.component("vue-loading",i.a)},function(e,t,n){"use strict";var i=n(0),r=n(10),a=function(e){n(3)},o=n(8)(i.a,r.a,!1,a,null,null);t.a=o.exports},function(e,t,n){var i=n(4);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),n(6)("501fbf90",i,!0,{})},function(e,t,n){(e.exports=n(5)(!1)).push([e.i,".week-time{display:flex;font-size:13px}.week-time table{border-collapse:collapse}.week-time table td,.week-time table th{border:1px solid #ccc;word-break:keep-all;text-align:center}.week-time table tbody tr{height:36px}.week-time table th{font-weight:400}.week-time table.left{width:56px;flex-grow:0;flex-shrink:0;cursor:pointer}.week-time table.left thead tr{height:28px}.week-time table.left td,.week-time table.left th{border-right:none;min-width:45px}.week-time table.left td:hover,.week-time table.left th:hover{background-color:#f2f2f2}.week-time table.right thead tr{height:28px;cursor:pointer}.week-time table.right thead tr.hour th{width:22px;min-width:19px;white-space:nowrap}.week-time table.right thead tr td:hover,.week-time table.right thead tr th:hover{background-color:#f2f2f2}.week-time .selected{background-color:#3482cb}",""])},function(e,t){function n(e,t){var n=e[1]||"",i=e[3];if(!i)return n;if(t&&"function"==typeof btoa){var r=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(i);return[n].concat(i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"})).concat([r]).join("\n")}return[n].join("\n")}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i=n(t,e);return t[2]?"@media "+t[2]+"{"+i+"}":i}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r<this.length;r++){var a=this[r][0];"number"==typeof a&&(i[a]=!0)}for(r=0;r<e.length;r++){var o=e[r];"number"==typeof o[0]&&i[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),t.push(o))}},t}},function(e,t,n){function i(e){for(var t=0;t<e.length;t++){var n=e[t],i=u[n.id];if(i){i.refs++;for(var r=0;r<i.parts.length;r++)i.parts[r](n.parts[r]);for(;r<n.parts.length;r++)i.parts.push(a(n.parts[r]));i.parts.length>n.parts.length&&(i.parts.length=n.parts.length)}else{var o=[];for(r=0;r<n.parts.length;r++)o.push(a(n.parts[r]));u[n.id]={id:n.id,refs:1,parts:o}}}}function r(){var e=document.createElement("style");return e.type="text/css",c.appendChild(e),e}function a(e){var t,n,i=document.querySelector("style["+g+'~="'+e.id+'"]');if(i){if(f)return p;i.parentNode.removeChild(i)}if(v){var a=h++;i=d||(d=r()),t=o.bind(null,i,a,!1),n=o.bind(null,i,a,!0)}else i=r(),t=function(e,t){var n=t.css,i=t.media,r=t.sourceMap;if(i&&e.setAttribute("media",i),m.ssrId&&e.setAttribute(g,t.id),r&&(n+="\n/*# sourceURL="+r.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */"),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,i),n=function(){i.parentNode.removeChild(i)};return t(e),function(i){if(i){if(i.css===e.css&&i.media===e.media&&i.sourceMap===e.sourceMap)return;t(e=i)}else n()}}function o(e,t,n,i){var r=n?"":i.css;if(e.styleSheet)e.styleSheet.cssText=y(t,r);else{var a=document.createTextNode(r),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}var s="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!s)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var l=n(7),u={},c=s&&(document.head||document.getElementsByTagName("head")[0]),d=null,h=0,f=!1,p=function(){},m=null,g="data-vue-ssr-id",v="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,n,r){f=n,m=r||{};var a=l(e,t);return i(a),function(t){for(var n=[],r=0;r<a.length;r++){var o=a[r];(s=u[o.id]).refs--,n.push(s)}t?i(a=l(e,t)):a=[];for(r=0;r<n.length;r++){var s;if(0===(s=n[r]).refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete u[s.id]}}}};var y=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t){e.exports=function(e,t){for(var n=[],i={},r=0;r<t.length;r++){var a=t[r],o=a[0],s={id:e+":"+r,css:a[1],media:a[2],sourceMap:a[3]};i[o]?i[o].parts.push(s):n.push(i[o]={id:o,parts:[s]})}return n}},function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},function(e,t,n){"use strict";t.a={numberArrayGroup:function(e){var t=[],n=void 0,i=void 0;return e.forEach(function(e){if(n===e)return i.push(n),void n++;i=[e],n=e+1,t.push(i)}),t},getEqualValueIndex:function(e){for(var t=[],n=new Array(e.length),i=e.length,r=0;r<i;r++){for(var a=[],o=r;o<i;o++)e[r]!==e[o]||n[o]||(a.push(o),n[o]=!0);a.length>0&&t.push(a)}return t}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"week-time"},[n("table",{staticClass:"left"},[n("thead",[n("tr",[n("th",{on:{click:e.selectAll}},[e._v("鍏ㄩ��")])]),e._v(" "),n("tr",[n("th",{on:{click:e.clear}},[e._v("娓呯┖")])])]),e._v(" "),n("tbody",e._l(e.weekdays,function(t,i){return n("tr",[n("td",{on:{click:function(t){e.selectWeekday(i+1)}}},[e._v(e._s("鏄熸湡"+t))])])}))]),e._v(" "),n("table",{staticClass:"right"},[n("thead",[n("tr",[n("th",{attrs:{colspan:"7"},on:{click:function(t){e.selectDayPeriod(0,6)}}},[e._v("鍑屾櫒鏃舵")]),e._v(" "),n("th",{attrs:{colspan:"4"},on:{click:function(t){e.selectDayPeriod(7,10)}}},[e._v("涓婂崍鏃舵")]),e._v(" "),n("th",{attrs:{colspan:"4"},on:{click:function(t){e.selectDayPeriod(11,14)}}},[e._v("涓崍鏃舵")]),e._v(" "),n("th",{attrs:{colspan:"4"},on:{click:function(t){e.selectDayPeriod(15,18)}}},[e._v("涓嬪崍鏃舵")]),e._v(" "),n("th",{attrs:{colspan:"5"},on:{click:function(t){e.selectDayPeriod(19,23)}}},[e._v("澶滄櫄鏃舵")])]),e._v(" "),n("tr",{staticClass:"hour"},e._l(24,function(t){return n("th",{on:{click:function(n){e.selectDayPeriod(t-1)}}},[e._v(e._s(t-1))])}))]),e._v(" "),n("tbody",{on:{mouseleave:e.mouseLeave}},e._l(7,function(t){return n("tr",{key:t},e._l(24,function(i){return n("td",{key:i,class:{selected:e.selected[t].indexOf(i-1)>-1},on:{dragstart:function(e){e.stopPropagation(),e.preventDefault()},mousedown:function(n){n.stopPropagation(),e.selectByMousedown(t,i-1,n)},mouseover:function(n){n.stopPropagation(),e.selectByMouseOver(t,i-1)},mouseout:function(n){n.stopPropagation(),e.selectByMouseout(t,i-1)},mouseup:function(n){n.stopPropagation(),e.selectByMouseup(t,i-1)}}})}))}))])])},staticRenderFns:[]};t.a=i}])},e.exports=i()},FsJA:function(e,t,n){var i=n("/MtV");n("P9df");var r=i.extendComponentModel({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(e){var t;return this.ecModel.eachComponent(e,function(e){e.getCoordSysModel()===this&&(t=e)},this),t},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}});e.exports=r},FzZd:function(e,t,n){"use strict";var i=n("5pnV"),r=n("j6Iq"),a=n("XvZ9"),o=n("OXaN"),s=n("mEMm"),l=Object.assign;e.exports=!l||n("BRDz")(function(){var e={},t={},n=Symbol(),i="abcdefghijklmnopqrst";return e[n]=7,i.split("").forEach(function(e){t[e]=e}),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=i})?function(e,t){for(var n=o(e),l=arguments.length,u=1,c=r.f,d=a.f;l>u;)for(var h,f=s(arguments[u++]),p=c?i(f).concat(c(f)):i(f),m=p.length,g=0;m>g;)d.call(f,h=p[g++])&&(n[h]=f[h]);return n}:l},"G+Sm":function(e,t,n){var i=n("GKMz"),r=n("abCA").parsePercent,a=i.each;e.exports=function(e){var t=function(e){var t=[],n=[];return e.eachSeriesByType("boxplot",function(e){var r=e.getBaseAxis(),a=i.indexOf(n,r);a<0&&(a=n.length,n[a]=r,t[a]={axis:r,seriesModels:[]}),t[a].seriesModels.push(e)}),t}(e);a(t,function(e){var t=e.seriesModels;t.length&&(function(e){var t,n,o=e.axis,s=e.seriesModels,l=s.length,u=e.boxWidthList=[],c=e.boxOffsetList=[],d=[];if("category"===o.type)n=o.getBandWidth();else{var h=0;a(s,function(e){h=Math.max(h,e.getData().count())}),t=o.getExtent(),Math.abs(t[1]-t[0])}a(s,function(e){var t=e.get("boxWidth");i.isArray(t)||(t=[t,t]),d.push([r(t[0],n)||0,r(t[1],n)||0])});var f=.8*n-2,p=f/l*.3,m=(f-p*(l-1))/l,g=m/2-f/2;a(s,function(e,t){c.push(g),g+=p+m,u.push(Math.min(Math.max(m,d[t][0]),d[t][1]))})}(e),a(t,function(t,n){!function(e,t,n){var i=e.coordinateSystem,r=e.getData(),a=n/2,o="horizontal"===e.get("layout")?0:1,s=1-o,l=["x","y"],u=r.mapDimension(l[o]),c=r.mapDimension(l[s],!0);if(!(null==u||c.length<5))for(var d=0;d<r.count();d++){var h=r.get(u,d),f=b(h,c[2],d),p=b(h,c[0],d),m=b(h,c[1],d),g=b(h,c[3],d),v=b(h,c[4],d),y=[];_(y,m,0),_(y,g,1),y.push(p,m,v,g),x(y,p),x(y,v),x(y,f),r.setItemLayout(d,{initBaseline:f[s],ends:y})}function b(e,n,a){var l,u=r.get(n,a),c=[];return c[o]=e,c[s]=u,isNaN(e)||isNaN(u)?l=[NaN,NaN]:(l=i.dataToPoint(c))[o]+=t,l}function _(e,t,n){var i=t.slice(),r=t.slice();i[o]+=a,r[o]-=a,n?e.push(i,r):e.push(r,i)}function x(e,t){var n=t.slice(),i=t.slice();n[o]-=a,i[o]+=a,e.push(n,i)}}(t,e.boxOffsetList[n],e.boxWidthList[n])}))})}},G7OI:function(e,t,n){var i=n("4uwL"),r="object"==typeof self&&self&&self.Object===Object&&self,a=i||r||Function("return this")();e.exports=a},G8IQ:function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=101)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},1:function(e,t){e.exports=n("PEt4")},101:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(102),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},102:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(103),r=n.n(i),a=n(105),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},103:function(e,t,n){"use strict";t.__esModule=!0;var i=l(n(1)),r=l(n(8)),a=l(n(104)),o=l(n(9)),s=n(23);function l(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElInput",componentName:"ElInput",mixins:[i.default,r.default],inheritAttrs:!1,inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{currentValue:void 0===this.value||null===this.value?"":this.value,textareaCalcStyle:{},hovering:!1,focused:!1,isOnComposition:!1,valueBeforeComposition:null}},props:{value:[String,Number],size:String,resize:String,form:String,disabled:Boolean,readonly:Boolean,type:{type:String,default:"text"},autosize:{type:[Boolean,Object],default:!1},autoComplete:{type:String,default:"off"},validateEvent:{type:Boolean,default:!0},suffixIcon:String,prefixIcon:String,label:String,clearable:{type:Boolean,default:!1},tabindex:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},validateState:function(){return this.elFormItem?this.elFormItem.validateState:""},needStatusIcon:function(){return!!this.elForm&&this.elForm.statusIcon},validateIcon:function(){return{validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}[this.validateState]},textareaStyle:function(){return(0,o.default)({},this.textareaCalcStyle,{resize:this.resize})},inputSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputDisabled:function(){return this.disabled||(this.elForm||{}).disabled},showClear:function(){return this.clearable&&!this.disabled&&!this.readonly&&""!==this.currentValue&&(this.focused||this.hovering)}},watch:{value:function(e,t){this.setCurrentValue(e)}},methods:{focus:function(){(this.$refs.input||this.$refs.textarea).focus()},blur:function(){(this.$refs.input||this.$refs.textarea).blur()},getMigratingConfig:function(){return{props:{icon:"icon is removed, use suffix-icon / prefix-icon instead.","on-icon-click":"on-icon-click is removed."},events:{click:"click is removed."}}},handleBlur:function(e){this.focused=!1,this.$emit("blur",e),this.validateEvent&&this.dispatch("ElFormItem","el.form.blur",[this.currentValue])},select:function(){(this.$refs.input||this.$refs.textarea).select()},resizeTextarea:function(){if(!this.$isServer){var e=this.autosize;if("textarea"===this.type)if(e){var t=e.minRows,n=e.maxRows;this.textareaCalcStyle=(0,a.default)(this.$refs.textarea,t,n)}else this.textareaCalcStyle={minHeight:(0,a.default)(this.$refs.textarea).minHeight}}},handleFocus:function(e){this.focused=!0,this.$emit("focus",e)},handleComposition:function(e){if("compositionend"===e.type)this.isOnComposition=!1,this.currentValue=this.valueBeforeComposition,this.valueBeforeComposition=null,this.handleInput(e);else{var t=e.target.value,n=t[t.length-1]||"";this.isOnComposition=!(0,s.isKorean)(n),this.isOnComposition&&"compositionstart"===e.type&&(this.valueBeforeComposition=t)}},handleInput:function(e){var t=e.target.value;this.setCurrentValue(t),this.isOnComposition||this.$emit("input",t)},handleChange:function(e){this.$emit("change",e.target.value)},setCurrentValue:function(e){this.isOnComposition&&e===this.valueBeforeComposition||(this.currentValue=e,this.isOnComposition||(this.$nextTick(this.resizeTextarea),this.validateEvent&&this.currentValue===this.value&&this.dispatch("ElFormItem","el.form.change",[e])))},calcIconOffset:function(e){var t=[].slice.call(this.$el.querySelectorAll(".el-input__"+e)||[]);if(t.length){for(var n=null,i=0;i<t.length;i++)if(t[i].parentNode===this.$el){n=t[i];break}if(n){var r={suffix:"append",prefix:"prepend"}[e];this.$slots[r]?n.style.transform="translateX("+("suffix"===e?"-":"")+this.$el.querySelector(".el-input-group__"+r).offsetWidth+"px)":n.removeAttribute("style")}}},updateIconOffset:function(){this.calcIconOffset("prefix"),this.calcIconOffset("suffix")},clear:function(){this.$emit("input",""),this.$emit("change",""),this.$emit("clear"),this.setCurrentValue(""),this.focus()}},created:function(){this.$on("inputSelect",this.select)},mounted:function(){this.resizeTextarea(),this.updateIconOffset()},updated:function(){this.$nextTick(this.updateIconOffset)}}},104:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;i||(i=document.createElement("textarea"),document.body.appendChild(i));var o=function(e){var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),i=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),r=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:a.map(function(e){return e+":"+t.getPropertyValue(e)}).join(";"),paddingSize:i,borderSize:r,boxSizing:n}}(e),s=o.paddingSize,l=o.borderSize,u=o.boxSizing,c=o.contextStyle;i.setAttribute("style",c+";"+r),i.value=e.value||e.placeholder||"";var d=i.scrollHeight,h={};"border-box"===u?d+=l:"content-box"===u&&(d-=s);i.value="";var f=i.scrollHeight-s;if(null!==t){var p=f*t;"border-box"===u&&(p=p+s+l),d=Math.max(p,d),h.minHeight=p+"px"}if(null!==n){var m=f*n;"border-box"===u&&(m=m+s+l),d=Math.min(m,d)}return h.height=d+"px",i.parentNode&&i.parentNode.removeChild(i),i=null,h};var i=void 0,r="\n  height:0 !important;\n  visibility:hidden !important;\n  overflow:hidden !important;\n  position:absolute !important;\n  z-index:-1000 !important;\n  top:0 !important;\n  right:0 !important\n",a=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"]},105:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable}],on:{mouseenter:function(t){e.hovering=!0},mouseleave:function(t){e.hovering=!1}}},["textarea"!==e.type?[e.$slots.prepend?n("div",{staticClass:"el-input-group__prepend"},[e._t("prepend")],2):e._e(),"textarea"!==e.type?n("input",e._b({ref:"input",staticClass:"el-input__inner",attrs:{tabindex:e.tabindex,type:e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete,"aria-label":e.label},domProps:{value:e.currentValue},on:{compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"input",e.$attrs,!1)):e._e(),e.$slots.prefix||e.prefixIcon?n("span",{staticClass:"el-input__prefix"},[e._t("prefix"),e.prefixIcon?n("i",{staticClass:"el-input__icon",class:e.prefixIcon}):e._e()],2):e._e(),e.$slots.suffix||e.suffixIcon||e.showClear||e.validateState&&e.needStatusIcon?n("span",{staticClass:"el-input__suffix"},[n("span",{staticClass:"el-input__suffix-inner"},[e.showClear?n("i",{staticClass:"el-input__icon el-icon-circle-close el-input__clear",on:{click:e.clear}}):[e._t("suffix"),e.suffixIcon?n("i",{staticClass:"el-input__icon",class:e.suffixIcon}):e._e()]],2),e.validateState?n("i",{staticClass:"el-input__icon",class:["el-input__validateIcon",e.validateIcon]}):e._e()]):e._e(),e.$slots.append?n("div",{staticClass:"el-input-group__append"},[e._t("append")],2):e._e()]:n("textarea",e._b({ref:"textarea",staticClass:"el-textarea__inner",style:e.textareaStyle,attrs:{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,"aria-label":e.label},domProps:{value:e.currentValue},on:{compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"textarea",e.$attrs,!1))],2)},staticRenderFns:[]};t.a=i},23:function(e,t){e.exports=n("xHIt")},8:function(e,t){e.exports=n("S7dV")},9:function(e,t){e.exports=n("QxRo")}})},GCbS:function(e,t,n){var i=n("aVg8"),r=(n("GKMz"),.3);function a(e,t,n,i){for(var r,a=[],o=0;o<n.length;o++){var s=n[o],l=e.get(e.mapDimension(s),t);r=l,("category"===i.getAxis(s).type?null==r:null==r||isNaN(r))||a.push(i.dataToPoint(l,s))}return a}function o(e,t,n,r,o){var s=a(e,n,r,o),l=new i.Polyline({shape:{points:s},silent:!0,z2:10});return t.add(l),e.setItemGraphicEl(n,l),l}function s(e){var t=e.get("smooth",!0);return!0===t&&(t=r),{lineStyle:e.getModel("lineStyle").getLineStyle(),smooth:null!=t?t:r}}function l(e,t,n,i){var r=i.lineStyle;t.hasItemOption&&(r=t.getItemModel(n).getModel("lineStyle").getLineStyle());e.useStyle(r);var a=e.style;a.fill=null,a.stroke=t.getItemVisual(n,"color"),a.opacity=t.getItemVisual(n,"opacity"),i.smooth&&(e.shape.smooth=i.smooth)}var u=n("Qmdc").extend({type:"parallel",init:function(){this._dataGroup=new i.Group,this.group.add(this._dataGroup),this._data,this._initialized},render:function(e,t,n,r){var u=this._dataGroup,c=e.getData(),d=this._data,h=e.coordinateSystem,f=h.dimensions,p=s(e);if(c.diff(d).add(function(e){l(o(c,u,e,f,h),c,e,p)}).update(function(t,n){var o=d.getItemGraphicEl(n),s=a(c,t,f,h);c.setItemGraphicEl(t,o);var u=r&&!1===r.animation?null:e;i.updateProps(o,{shape:{points:s}},u,t),l(o,c,t,p)}).remove(function(e){var t=d.getItemGraphicEl(e);u.remove(t)}).execute(),!this._initialized){this._initialized=!0;var m=function(e,t,n){var r=e.model,a=e.getRect(),o=new i.Rect({shape:{x:a.x,y:a.y,width:a.width,height:a.height}}),s="horizontal"===r.get("layout")?"width":"height";return o.setShape(s,0),i.initProps(o,{shape:{width:a.width,height:a.height}},t,n),o}(h,e,function(){setTimeout(function(){u.removeClipPath()})});u.setClipPath(m)}this._data=c},incrementalPrepareRender:function(e,t,n){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},incrementalRender:function(e,t,n){for(var i=t.getData(),r=t.coordinateSystem,a=r.dimensions,u=s(t),c=e.start;c<e.end;c++){var d=o(i,this._dataGroup,c,a,r);d.incremental=!0,l(d,i,c,u)}},dispose:function(){},remove:function(){this._dataGroup&&this._dataGroup.removeAll(),this._data=null}});e.exports=u},GKMz:function(e,t){var n={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},i={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},r=Object.prototype.toString,a=Array.prototype,o=a.forEach,s=a.filter,l=a.slice,u=a.map,c=a.reduce,d={};function h(e){if(null==e||"object"!=typeof e)return e;var t=e,a=r.call(e);if("[object Array]"===a){if(!C(e)){t=[];for(var o=0,s=e.length;o<s;o++)t[o]=h(e[o])}}else if(i[a]){if(!C(e)){var l=e.constructor;if(e.constructor.from)t=l.from(e);else{t=new l(e.length);for(o=0,s=e.length;o<s;o++)t[o]=h(e[o])}}}else if(!n[a]&&!C(e)&&!w(e))for(var u in t={},e)e.hasOwnProperty(u)&&(t[u]=h(e[u]));return t}function f(e,t,n){if(!_(t)||!_(e))return n?h(t):e;for(var i in t)if(t.hasOwnProperty(i)){var r=e[i],a=t[i];!_(a)||!_(r)||b(a)||b(r)||w(a)||w(r)||x(a)||x(r)||C(a)||C(r)?!n&&i in e||(e[i]=h(t[i])):f(r,a,n)}return e}function p(e,t,n){for(var i in t)t.hasOwnProperty(i)&&(n?null!=t[i]:null==e[i])&&(e[i]=t[i]);return e}var m,g=function(){return d.createCanvas()};function v(e,t,n){if(e&&t)if(e.forEach&&e.forEach===o)e.forEach(t,n);else if(e.length===+e.length)for(var i=0,r=e.length;i<r;i++)t.call(n,e[i],i,e);else for(var a in e)e.hasOwnProperty(a)&&t.call(n,e[a],a,e)}function y(e,t){var n=l.call(arguments,2);return function(){return e.apply(t,n.concat(l.call(arguments)))}}function b(e){return"[object Array]"===r.call(e)}function _(e){var t=typeof e;return"function"===t||!!e&&"object"==t}function x(e){return!!n[r.call(e)]}function w(e){return"object"==typeof e&&"number"==typeof e.nodeType&&"object"==typeof e.ownerDocument}d.createCanvas=function(){return document.createElement("canvas")};var S="__ec_primitive__";function C(e){return e[S]}function M(e){var t=b(e),n=this;function i(e,i){t?n.set(e,i):n.set(i,e)}e instanceof M?e.each(i):e&&v(e,i)}M.prototype={constructor:M,get:function(e){return this.hasOwnProperty(e)?this[e]:null},set:function(e,t){return this[e]=t},each:function(e,t){for(var n in void 0!==t&&(e=y(e,t)),this)this.hasOwnProperty(n)&&e(this[n],n)},removeKey:function(e){delete this[e]}},t.$override=function(e,t){"createCanvas"===e&&(m=null),d[e]=t},t.clone=h,t.merge=f,t.mergeAll=function(e,t){for(var n=e[0],i=1,r=e.length;i<r;i++)n=f(n,e[i],t);return n},t.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},t.defaults=p,t.createCanvas=g,t.getContext=function(){return m||(m=g().getContext("2d")),m},t.indexOf=function(e,t){if(e){if(e.indexOf)return e.indexOf(t);for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n}return-1},t.inherits=function(e,t){var n=e.prototype;function i(){}for(var r in i.prototype=t.prototype,e.prototype=new i,n)e.prototype[r]=n[r];e.prototype.constructor=e,e.superClass=t},t.mixin=function(e,t,n){p(e="prototype"in e?e.prototype:e,t="prototype"in t?t.prototype:t,n)},t.isArrayLike=function(e){if(e)return"string"!=typeof e&&"number"==typeof e.length},t.each=v,t.map=function(e,t,n){if(e&&t){if(e.map&&e.map===u)return e.map(t,n);for(var i=[],r=0,a=e.length;r<a;r++)i.push(t.call(n,e[r],r,e));return i}},t.reduce=function(e,t,n,i){if(e&&t){if(e.reduce&&e.reduce===c)return e.reduce(t,n,i);for(var r=0,a=e.length;r<a;r++)n=t.call(i,n,e[r],r,e);return n}},t.filter=function(e,t,n){if(e&&t){if(e.filter&&e.filter===s)return e.filter(t,n);for(var i=[],r=0,a=e.length;r<a;r++)t.call(n,e[r],r,e)&&i.push(e[r]);return i}},t.find=function(e,t,n){if(e&&t)for(var i=0,r=e.length;i<r;i++)if(t.call(n,e[i],i,e))return e[i]},t.bind=y,t.curry=function(e){var t=l.call(arguments,1);return function(){return e.apply(this,t.concat(l.call(arguments)))}},t.isArray=b,t.isFunction=function(e){return"function"==typeof e},t.isString=function(e){return"[object String]"===r.call(e)},t.isObject=_,t.isBuiltInObject=x,t.isTypedArray=function(e){return!!i[r.call(e)]},t.isDom=w,t.eqNaN=function(e){return e!=e},t.retrieve=function(e){for(var t=0,n=arguments.length;t<n;t++)if(null!=arguments[t])return arguments[t]},t.retrieve2=function(e,t){return null!=e?e:t},t.retrieve3=function(e,t,n){return null!=e?e:null!=t?t:n},t.slice=function(){return Function.call.apply(l,arguments)},t.normalizeCssArray=function(e){if("number"==typeof e)return[e,e,e,e];var t=e.length;return 2===t?[e[0],e[1],e[0],e[1]]:3===t?[e[0],e[1],e[2],e[1]]:e},t.assert=function(e,t){if(!e)throw new Error(t)},t.trim=function(e){return null==e?null:"function"==typeof e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},t.setAsPrimitive=function(e){e[S]=!0},t.isPrimitive=C,t.createHashMap=function(e){return new M(e)},t.concatArray=function(e,t){for(var n=new e.constructor(e.length+t.length),i=0;i<e.length;i++)n[i]=e[i];var r=e.length;for(i=0;i<t.length;i++)n[i+r]=t[i];return n},t.noop=function(){}},GQ8k:function(e,t,n){var i=n("Q9e6"),r=n("yX3w"),a=n("jkQI"),o=["m","M","l","L","v","V","h","H","z","Z","c","C","q","Q","t","T","s","S","a","A"],s=Math.sqrt,l=Math.sin,u=Math.cos,c=Math.PI,d=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},h=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(d(e)*d(t))},f=function(e,t){return(e[0]*t[1]<e[1]*t[0]?-1:1)*Math.acos(h(e,t))};function p(e,t,n,i,r,a,o,d,p,m,g){var v=p*(c/180),y=u(v)*(e-n)/2+l(v)*(t-i)/2,b=-1*l(v)*(e-n)/2+u(v)*(t-i)/2,_=y*y/(o*o)+b*b/(d*d);_>1&&(o*=s(_),d*=s(_));var x=(r===a?-1:1)*s((o*o*(d*d)-o*o*(b*b)-d*d*(y*y))/(o*o*(b*b)+d*d*(y*y)))||0,w=x*o*b/d,S=x*-d*y/o,C=(e+n)/2+u(v)*w-l(v)*S,M=(t+i)/2+l(v)*w+u(v)*S,k=f([1,0],[(y-w)/o,(b-S)/d]),T=[(y-w)/o,(b-S)/d],A=[(-1*y-w)/o,(-1*b-S)/d],I=f(T,A);h(T,A)<=-1&&(I=c),h(T,A)>=1&&(I=0),0===a&&I>0&&(I-=2*c),1===a&&I<0&&(I+=2*c),g.addData(m,C,M,o,d,k,I,v,a)}function m(e,t){var n=function(e){if(!e)return[];var t,n=e.replace(/-/g," -").replace(/  /g," ").replace(/ /g,",").replace(/,,/g,",");for(t=0;t<o.length;t++)n=n.replace(new RegExp(o[t],"g"),"|"+o[t]);var i,a=n.split("|"),s=0,l=0,u=new r,c=r.CMD;for(t=1;t<a.length;t++){var d,h=a[t],f=h.charAt(0),m=0,g=h.slice(1).replace(/e,-/g,"e-").split(",");g.length>0&&""===g[0]&&g.shift();for(var v=0;v<g.length;v++)g[v]=parseFloat(g[v]);for(;m<g.length&&!isNaN(g[m])&&!isNaN(g[0]);){var y,b,_,x,w,S,C,M=s,k=l;switch(f){case"l":s+=g[m++],l+=g[m++],d=c.L,u.addData(d,s,l);break;case"L":s=g[m++],l=g[m++],d=c.L,u.addData(d,s,l);break;case"m":s+=g[m++],l+=g[m++],d=c.M,u.addData(d,s,l),f="l";break;case"M":s=g[m++],l=g[m++],d=c.M,u.addData(d,s,l),f="L";break;case"h":s+=g[m++],d=c.L,u.addData(d,s,l);break;case"H":s=g[m++],d=c.L,u.addData(d,s,l);break;case"v":l+=g[m++],d=c.L,u.addData(d,s,l);break;case"V":l=g[m++],d=c.L,u.addData(d,s,l);break;case"C":d=c.C,u.addData(d,g[m++],g[m++],g[m++],g[m++],g[m++],g[m++]),s=g[m-2],l=g[m-1];break;case"c":d=c.C,u.addData(d,g[m++]+s,g[m++]+l,g[m++]+s,g[m++]+l,g[m++]+s,g[m++]+l),s+=g[m-2],l+=g[m-1];break;case"S":y=s,b=l;var T=u.len(),A=u.data;i===c.C&&(y+=s-A[T-4],b+=l-A[T-3]),d=c.C,M=g[m++],k=g[m++],s=g[m++],l=g[m++],u.addData(d,y,b,M,k,s,l);break;case"s":y=s,b=l,T=u.len(),A=u.data,i===c.C&&(y+=s-A[T-4],b+=l-A[T-3]),d=c.C,M=s+g[m++],k=l+g[m++],s+=g[m++],l+=g[m++],u.addData(d,y,b,M,k,s,l);break;case"Q":M=g[m++],k=g[m++],s=g[m++],l=g[m++],d=c.Q,u.addData(d,M,k,s,l);break;case"q":M=g[m++]+s,k=g[m++]+l,s+=g[m++],l+=g[m++],d=c.Q,u.addData(d,M,k,s,l);break;case"T":y=s,b=l,T=u.len(),A=u.data,i===c.Q&&(y+=s-A[T-4],b+=l-A[T-3]),s=g[m++],l=g[m++],d=c.Q,u.addData(d,y,b,s,l);break;case"t":y=s,b=l,T=u.len(),A=u.data,i===c.Q&&(y+=s-A[T-4],b+=l-A[T-3]),s+=g[m++],l+=g[m++],d=c.Q,u.addData(d,y,b,s,l);break;case"A":_=g[m++],x=g[m++],w=g[m++],S=g[m++],C=g[m++],p(M=s,k=l,s=g[m++],l=g[m++],S,C,_,x,w,d=c.A,u);break;case"a":_=g[m++],x=g[m++],w=g[m++],S=g[m++],C=g[m++],p(M=s,k=l,s+=g[m++],l+=g[m++],S,C,_,x,w,d=c.A,u)}}"z"!==f&&"Z"!==f||(d=c.Z,u.addData(d)),i=d}return u.toStatic(),u}(e);return(t=t||{}).buildPath=function(e){if(e.setData){e.setData(n.data),(t=e.getContext())&&e.rebuildPath(t)}else{var t=e;n.rebuildPath(t)}},t.applyTransform=function(e){a(n,e),this.dirty(!0)},t}t.createFromString=function(e,t){return new i(m(e,t))},t.extendFromString=function(e,t){return i.extend(m(e,t))},t.mergePath=function(e,t){for(var n=[],r=e.length,a=0;a<r;a++){var o=e[a];o.path||o.createPathProxy(),o.__dirtyPath&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var s=new i(t);return s.createPathProxy(),s.buildPath=function(e){e.appendPath(n);var t=e.getContext();t&&e.rebuildPath(t)},s}},Gf6R:function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},Glhy:function(e,t,n){var i=n("aVg8"),r=n("/MtV"),a=i.extendShape({shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,cpx2:0,cpy2:0,extent:0},buildPath:function(e,t){var n=t.extent/2;e.moveTo(t.x1,t.y1-n),e.bezierCurveTo(t.cpx1,t.cpy1-n,t.cpx2,t.cpy2-n,t.x2,t.y2-n),e.lineTo(t.x2,t.y2+n),e.bezierCurveTo(t.cpx2,t.cpy2+n,t.cpx1,t.cpy1+n,t.x1,t.y1+n),e.closePath()}}),o=r.extendChartView({type:"sankey",_model:null,render:function(e,t,n){var r=e.getGraph(),o=this.group,s=e.layoutInfo,l=s.width,u=s.height,c=e.getData(),d=e.getData("edge");this._model=e,o.removeAll(),o.attr("position",[s.x,s.y]),r.eachEdge(function(t){var n=new a;n.dataIndex=t.dataIndex,n.seriesIndex=e.seriesIndex,n.dataType="edge";var r=t.getModel("lineStyle"),s=r.get("curveness"),c=t.node1.getLayout(),h=t.node1.getModel(),f=h.get("localX"),p=h.get("localY"),m=t.node2.getLayout(),g=t.node2.getModel(),v=g.get("localX"),y=g.get("localY"),b=t.getLayout();n.shape.extent=Math.max(1,b.dy);var _=(null!=f?f*l:c.x)+c.dx,x=(null!=p?p*u:c.y)+b.sy+b.dy/2,w=null!=v?v*l:m.x,S=(null!=y?y*u:m.y)+b.ty+b.dy/2,C=_*(1-s)+w*s,M=x,k=_*s+w*(1-s),T=S;switch(n.setShape({x1:_,y1:x,x2:w,y2:S,cpx1:C,cpy1:M,cpx2:k,cpy2:T}),n.setStyle(r.getItemStyle()),n.style.fill){case"source":n.style.fill=t.node1.getVisual("color");break;case"target":n.style.fill=t.node2.getVisual("color")}i.setHoverStyle(n,t.getModel("emphasis.lineStyle").getItemStyle()),o.add(n),d.setItemGraphicEl(t.dataIndex,n)}),r.eachNode(function(t){var n=t.getLayout(),r=t.getModel(),a=r.get("localX"),s=r.get("localY"),d=r.getModel("label"),h=r.getModel("emphasis.label"),f=new i.Rect({shape:{x:null!=a?a*l:n.x,y:null!=s?s*u:n.y,width:n.dx,height:n.dy},style:r.getModel("itemStyle").getItemStyle()}),p=t.getModel("emphasis.itemStyle").getItemStyle();i.setLabelStyle(f.style,p,d,h,{labelFetcher:e,labelDataIndex:t.dataIndex,defaultText:t.id,isRectText:!0}),f.setStyle("fill",t.getVisual("color")),i.setHoverStyle(f,p),o.add(f),c.setItemGraphicEl(t.dataIndex,f),f.dataType="node"}),e.get("draggable")&&c.eachItemGraphicEl(function(t,i){t.drift=function(t,r){this.shape.x+=t,this.shape.y+=r,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:e.id,dataIndex:c.getRawIndex(i),localX:this.shape.x/l,localY:this.shape.y/u})},t.draggable=!0,t.cursor="move"}),!this._data&&e.get("animation")&&o.setClipPath(function(e,t,n){var r=new i.Rect({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}});return i.initProps(r,{shape:{width:e.width+20,height:e.height+20}},t,n),r}(o.getBoundingRect(),e,function(){o.removeClipPath()})),this._data=e.getData()},dispose:function(){}});e.exports=o},Gqah:function(e,t){e.exports={getBoxLayoutParams:function(){return{left:this.get("left"),top:this.get("top"),right:this.get("right"),bottom:this.get("bottom"),width:this.get("width"),height:this.get("height")}}}},Gquc:function(e,t){},Gs2l:function(e,t,n){var i=n("GKMz"),r=i.each,a=i.map,o=(i.isArray,i.isFunction),s=i.createHashMap,l=i.noop,u=n("ZgaJ").createTask,c=n("Bd51").getUID,d=n("ZZvz"),h=n("2pJC"),f=n("vqvJ").normalizeToArray;function p(e,t,n,i){this.ecInstance=e,this.api=t,this.unfinished;n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice();this._allHandlers=n.concat(i),this._stageTaskMap=s()}var m=p.prototype;function g(e,t,n,i,a){var o;function s(e,t){return e.setDirty&&(!e.dirtyMap||e.dirtyMap.get(t.__pipeline.id))}a=a||{},r(t,function(t,r){if(!a.visualType||a.visualType===t.visualType){var l=e._stageTaskMap.get(t.uid),u=l.seriesTaskMap,c=l.overallTask;if(c){var d,h=c.agentStubMap;h.each(function(e){s(a,e)&&(e.dirty(),d=!0)}),d&&c.dirty(),v(c,i);var f=e.getPerformArgs(c,a.block);h.each(function(e){e.perform(f)}),o|=c.perform(f)}else u&&u.each(function(r,l){s(a,r)&&r.dirty();var u=e.getPerformArgs(r,a.block);u.skip=!t.performRawSeries&&n.isSeriesFiltered(r.context.model),v(r,i),o|=r.perform(u)})}}),e.unfinished|=o}m.restoreData=function(e,t){e.restoreData(t),this._stageTaskMap.each(function(e){var t=e.overallTask;t&&t.dirty()})},m.getPerformArgs=function(e,t){if(e.__pipeline){var n=this._pipelineMap.get(e.__pipeline.id),i=n.context,r=!t&&n.progressiveEnabled&&(!i||i.progressiveRender)&&e.__idxInPipeline>n.blockIndex?n.step:null,a=i&&i.modDataCount;return{step:r,modBy:null!=a?Math.ceil(a/r):null,modDataCount:a}}},m.getPipeline=function(e){return this._pipelineMap.get(e)},m.updateStreamModes=function(e,t){var n=this._pipelineMap.get(e.uid),i=e.getData().count(),r=n.progressiveEnabled&&t.incrementalPrepareRender&&i>=n.threshold,a=e.get("large")&&i>=e.get("largeThreshold"),o="mod"===e.get("progressiveChunkMode")?i:null;e.pipelineContext=n.context={progressiveRender:r,modDataCount:o,large:a}},m.restorePipelines=function(e){var t=this,n=t._pipelineMap=s();e.eachSeries(function(e){var i=e.getProgressive(),r=e.uid;n.set(r,{id:r,head:null,tail:null,threshold:e.getProgressiveThreshold(),progressiveEnabled:i&&!(e.preventIncremental&&e.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),T(t,e,e.dataTask)})},m.prepareStageTasks=function(){var e=this._stageTaskMap,t=this.ecInstance.getModel(),n=this.api;r(this._allHandlers,function(i){var a=e.get(i.uid)||e.set(i.uid,[]);i.reset&&function(e,t,n,i,r){var a=n.seriesTaskMap||(n.seriesTaskMap=s()),o=t.seriesType,l=t.getTargetSeries;t.createOnAllSeries?i.eachRawSeries(c):o?i.eachRawSeriesByType(o,c):l&&l(i,r).each(c);function c(n){var o=n.uid,s=a.get(o)||a.set(o,u({plan:w,reset:S,count:k}));s.context={model:n,ecModel:i,api:r,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:e},T(e,n,s)}var d=e._pipelineMap;a.each(function(e,t){d.get(t)||(e.dispose(),a.removeKey(t))})}(this,i,a,t,n),i.overallReset&&function(e,t,n,i,a){var o=n.overallTask=n.overallTask||u({reset:y});o.context={ecModel:i,api:a,overallReset:t.overallReset,scheduler:e};var l=o.agentStubMap=o.agentStubMap||s(),c=t.seriesType,d=t.getTargetSeries,h=!0,f=t.modifyOutputEnd;c?i.eachRawSeriesByType(c,p):d?d(i,a).each(p):(h=!1,r(i.getSeries(),p));function p(t){var n=t.uid,i=l.get(n);i||(i=l.set(n,u({reset:b,onDirty:x})),o.dirty()),i.context={model:t,overallProgress:h,modifyOutputEnd:f},i.agent=o,i.__block=h,T(e,t,i)}var m=e._pipelineMap;l.each(function(e,t){m.get(t)||(e.dispose(),o.dirty(),l.removeKey(t))})}(this,i,a,t,n)},this)},m.prepareView=function(e,t,n,i){var r=e.renderTask,a=r.context;a.model=t,a.ecModel=n,a.api=i,r.__block=!e.incrementalPrepareRender,T(this,t,r)},m.performDataProcessorTasks=function(e,t){g(this,this._dataProcessorHandlers,e,t,{block:!0})},m.performVisualTasks=function(e,t,n){g(this,this._visualHandlers,e,t,n)},m.performSeriesTasks=function(e){var t;e.eachSeries(function(e){t|=e.dataTask.perform()}),this.unfinished|=t},m.plan=function(){this._pipelineMap.each(function(e){var t=e.tail;do{if(t.__block){e.blockIndex=t.__idxInPipeline;break}t=t.getUpstream()}while(t)})};var v=m.updatePayload=function(e,t){"remain"!==t&&(e.context.payload=t)};function y(e){e.overallReset(e.ecModel,e.api,e.payload)}function b(e,t){return e.overallProgress&&_}function _(){this.agent.dirty(),this.getDownstream().dirty()}function x(){this.agent&&this.agent.dirty()}function w(e){return e.plan&&e.plan(e.model,e.ecModel,e.api,e.payload)}function S(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=f(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?a(t,function(e,t){return M(t)}):C}var C=M(0);function M(e){return function(t,n){var i=n.data,r=n.resetDefines[e];if(r&&r.dataEach)for(var a=t.start;a<t.end;a++)r.dataEach(i,a);else r&&r.progress&&r.progress(t,i)}}function k(e){return e.data.count()}function T(e,t,n){var i=t.uid,r=e._pipelineMap.get(i);!r.head&&(r.head=n),r.tail&&r.tail.pipe(n),r.tail=n,n.__idxInPipeline=r.count++,n.__pipeline=r}p.wrapStageHandler=function(e,t){return o(e)&&(e={overallReset:e,seriesType:function(e){A=null;try{e(I,E)}catch(e){}return A}(e)}),e.uid=c("stageHandler"),t&&(e.visualType=t),e};var A,I={},E={};function D(e,t){for(var n in t.prototype)e[n]=l}D(I,d),D(E,h),I.eachSeriesByType=I.eachRawSeriesByType=function(e){A=e},I.eachComponent=function(e){"series"===e.mainType&&e.subType&&(A=e.subType)};var O=p;e.exports=O},GsKu:function(e,t,n){n("6/6c").registerSubTypeDefaulter("timeline",function(){return"slider"})},"HT+0":function(e,t,n){var i=n("GKMz");function r(e){for(var t=[];e;)(e=e.parentNode)&&t.push(e);return t.reverse()}t.retrieveTargetInfo=function(e,t,n){if(e&&i.indexOf(t,e.type)>=0){var r=n.getData().tree.root,a=e.targetNode;if(a&&r.contains(a))return{node:a};var o=e.targetNodeId;if(null!=o&&(a=r.getNodeById(o)))return{node:a}}},t.getPathToRoot=r,t.aboveViewRoot=function(e,t){var n=r(e);return i.indexOf(n,t)>=0},t.wrapTreePathInfo=function(e,t){for(var n=[];e;){var i=e.dataIndex;n.push({name:e.name,dataIndex:i,value:t.getRawValue(i)}),e=e.parentNode}return n.reverse(),n}},HYE2:function(e,t,n){var i=n("GKMz"),r=n("Nrx1"),a=n("2xPE").retrieveRawValue;e.exports=function(e,t){var n=t.getModel("aria");if(n.get("show"))if(n.get("description"))e.setAttribute("aria-label",n.get("description"));else{var o=0;t.eachSeries(function(e,t){++o},this);var s,l=n.get("data.maxCount")||10,u=n.get("series.maxCount")||10,c=Math.min(o,u);if(!(o<1)){var d=function(){var e=t.getModel("title").option;return e&&e.length&&(e=e[0]),e&&e.text}();s=d?f(p("general.withTitle"),{title:d}):p("general.withoutTitle");var h=[];s+=f(p(o>1?"series.multiple.prefix":"series.single.prefix"),{seriesCount:o}),t.eachSeries(function(e,t){if(t<c){var n,i=e.get("name"),s="series."+(o>1?"multiple":"single")+".";n=f(n=p(i?s+"withName":s+"withoutName"),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(y=e.subType,r.series.typeNames[y]||"鑷畾涔夊浘")});var u=e.getData();window.data=u,u.count()>l?n+=f(p("data.partialData"),{displayCnt:l}):n+=p("data.allData");for(var d=[],m=0;m<u.count();m++)if(m<l){var g=u.getName(m),v=a(u,m);d.push(f(p(g?"data.withName":"data.withoutName"),{name:g,value:v}))}n+=d.join(p("data.separator.middle"))+p("data.separator.end"),h.push(n)}var y}),s+=h.join(p("series.multiple.separator.middle"))+p("series.multiple.separator.end"),e.setAttribute("aria-label",s)}}function f(e,t){if("string"!=typeof e)return e;var n=e;return i.each(t,function(e,t){n=n.replace(new RegExp("\\{\\s*"+t+"\\s*\\}","g"),e)}),n}function p(e){var t=n.get(e);if(null==t){for(var i=e.split("."),a=r.aria,o=0;o<i.length;++o)a=a[i[o]];return a}return t}}},HYVc:function(e,t,n){var i=n("NBoJ");n("i+pt").register("parallel",{create:function(e,t){var n=[];return e.eachComponent("parallel",function(r,a){var o=new i(r,e,t);o.name="parallel_"+a,o.resize(r,t),r.coordinateSystem=o,o.model=r,n.push(o)}),e.eachSeries(function(t){if("parallel"===t.get("coordinateSystem")){var n=e.queryComponents({mainType:"parallel",index:t.get("parallelIndex"),id:t.get("parallelId")})[0];t.coordinateSystem=n.coordinateSystem}}),n}})},Hf1X:function(e,t,n){var i=n("z1q5").extend({type:"dataZoom.select"});e.exports=i},Hi0C:function(e,t,n){var i=n("GKMz");function r(e,t){var n=this.getAxis(),i=t instanceof Array?t[0]:t,r=(e instanceof Array?e[0]:e)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}e.exports=function(e){var t=e.getRect();return{coordSys:{type:"singleAxis",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(t){return e.dataToPoint(t)},size:i.bind(r,e)}}}},Hy6W:function(e,t,n){var i=n("luYz"),r=i.scaleAndAdd;t.forceLayout=function(e,t,n){for(var a=n.rect,o=a.width,s=a.height,l=[a.x+o/2,a.y+s/2],u=null==n.gravity?.1:n.gravity,c=0;c<e.length;c++){var d=e[c];d.p||(d.p=i.create(o*(Math.random()-.5)+l[0],s*(Math.random()-.5)+l[1])),d.pp=i.clone(d.p),d.edges=null}var h=.6;return{warmUp:function(){h=.5},setFixed:function(t){e[t].fixed=!0},setUnfixed:function(t){e[t].fixed=!1},step:function(n){for(var a=[],o=e.length,s=0;s<t.length;s++){var c=t[s],d=c.n1,f=c.n2;i.sub(a,f.p,d.p);var p=i.len(a)-c.d,m=f.w/(d.w+f.w);isNaN(m)&&(m=0),i.normalize(a,a),!d.fixed&&r(d.p,d.p,a,m*p*h),!f.fixed&&r(f.p,f.p,a,-(1-m)*p*h)}for(s=0;s<o;s++)(b=e[s]).fixed||(i.sub(a,l,b.p),r(b.p,b.p,a,u*h));for(s=0;s<o;s++){d=e[s];for(var g=s+1;g<o;g++){f=e[g],i.sub(a,f.p,d.p),0===(p=i.len(a))&&(i.set(a,Math.random()-.5,Math.random()-.5),p=1);var v=(d.rep+f.rep)/p/p;!d.fixed&&r(d.pp,d.pp,a,v),!f.fixed&&r(f.pp,f.pp,a,-v)}}var y=[];for(s=0;s<o;s++){var b;(b=e[s]).fixed||(i.sub(y,b.p,b.pp),r(b.p,b.p,y,h),i.copy(b.pp,b.p))}h*=.992,n&&n(e,t,h<.01)}}}},I1sU:function(e,t,n){"use strict";t.__esModule=!0,t.noop=function(){},t.hasOwn=function(e,t){return i.call(e,t)},t.toObject=function(e){for(var t={},n=0;n<e.length;n++)e[n]&&r(t,e[n]);return t},t.getPropByPath=function(e,t,n){for(var i=e,r=(t=(t=t.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split("."),a=0,o=r.length;a<o-1&&(i||n);++a){var s=r[a];if(!(s in i)){if(n)throw new Error("please transfer a valid prop path to form item!");break}i=i[s]}return{o:i,k:r[a],v:i?i[r[a]]:null}};var i=Object.prototype.hasOwnProperty;function r(e,t){for(var n in t)e[n]=t[n];return e}t.getValueByPath=function(e,t){for(var n=(t=t||"").split("."),i=e,r=null,a=0,o=n.length;a<o;a++){var s=n[a];if(!i)break;if(a===o-1){r=i[s];break}i=i[s]}return r};t.generateId=function(){return Math.floor(1e4*Math.random())},t.valueEquals=function(e,t){if(e===t)return!0;if(!(e instanceof Array))return!1;if(!(t instanceof Array))return!1;if(e.length!==t.length)return!1;for(var n=0;n!==e.length;++n)if(e[n]!==t[n])return!1;return!0},t.escapeRegexpString=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return String(e).replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}},I22d:function(e,t,n){var i=n("Q/cl");function r(e){var t=e.children;return t.length&&e.isExpand?t[t.length-1]:e.hierNode.thread}function a(e){var t=e.children;return t.length&&e.isExpand?t[0]:e.hierNode.thread}function o(e,t,n){return e.hierNode.ancestor.parentNode===t.parentNode?e.hierNode.ancestor:n}function s(e,t,n){var i=n/(t.hierNode.i-e.hierNode.i);t.hierNode.change-=i,t.hierNode.shift+=n,t.hierNode.modifier+=n,t.hierNode.prelim+=n,e.hierNode.change+=i}function l(e,t){return e.parentNode===t.parentNode?1:2}t.init=function(e){e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var t,n,i=[e];t=i.pop();)if(n=t.children,t.isExpand&&n.length)for(var r=n.length-1;r>=0;r--){var a=n[r];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:r,thread:null},i.push(a)}},t.firstWalk=function(e,t){var n=e.isExpand?e.children:[],i=e.parentNode.children,l=e.hierNode.i?i[e.hierNode.i-1]:null;if(n.length){!function(e){for(var t=e.children,n=t.length,i=0,r=0;--n>=0;){var a=t[n];a.hierNode.prelim+=i,a.hierNode.modifier+=i,r+=a.hierNode.change,i+=a.hierNode.shift+r}}(e);var u=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;l?(e.hierNode.prelim=l.hierNode.prelim+t(e,l),e.hierNode.modifier=e.hierNode.prelim-u):e.hierNode.prelim=u}else l&&(e.hierNode.prelim=l.hierNode.prelim+t(e,l));e.parentNode.hierNode.defaultAncestor=function(e,t,n,i){if(t){for(var l=e,u=e,c=u.parentNode.children[0],d=t,h=l.hierNode.modifier,f=u.hierNode.modifier,p=c.hierNode.modifier,m=d.hierNode.modifier;d=r(d),u=a(u),d&&u;){l=r(l),c=a(c),l.hierNode.ancestor=e;var g=d.hierNode.prelim+m-u.hierNode.prelim-f+i(d,u);g>0&&(s(o(d,e,n),e,g),f+=g,h+=g),m+=d.hierNode.modifier,f+=u.hierNode.modifier,h+=l.hierNode.modifier,p+=c.hierNode.modifier}d&&!r(l)&&(l.hierNode.thread=d,l.hierNode.modifier+=m-h),u&&!a(c)&&(c.hierNode.thread=u,c.hierNode.modifier+=f-p,n=e)}return n}(e,l,e.parentNode.hierNode.defaultAncestor||i[0],t)},t.secondWalk=function(e){var t=e.hierNode.prelim+e.parentNode.hierNode.modifier;e.setLayout({x:t},!0),e.hierNode.modifier+=e.parentNode.hierNode.modifier},t.separation=function(e){return arguments.length?e:l},t.radialCoordinate=function(e,t){var n={};return e-=Math.PI/2,n.x=t*Math.cos(e),n.y=t*Math.sin(e),n},t.getViewRect=function(e,t){return i.getLayoutRect(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}},IHPB:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n("kfHR"),a=(i=r)&&i.__esModule?i:{default:i};t.default=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return(0,a.default)(e)}},IW5F:function(e,t,n){var i=n("GKMz"),r=n("Zjj5"),a=n("M7eM"),o=n("abCA"),s=n("aVg8"),l=n("S/ih"),u=function(e,t,n,r){var a=l.dataTransform(e,r[0]),o=l.dataTransform(e,r[1]),s=i.retrieve,u=a.coord,c=o.coord;u[0]=s(u[0],-1/0),u[1]=s(u[1],-1/0),c[0]=s(c[0],1/0),c[1]=s(c[1],1/0);var d=i.mergeAll([{},a,o]);return d.coord=[a.coord,o.coord],d.x0=a.x,d.y0=a.y,d.x1=o.x,d.y1=o.y,d};function c(e){return!isNaN(e)&&!isFinite(e)}function d(e,t,n,i){var r=1-e;return c(t[r])&&c(n[r])}function h(e,t){var n=t.coord[0],i=t.coord[1];return!("cartesian2d"!==e.type||!n||!i||!d(1,n,i)&&!d(0,n,i))||(l.dataFilter(e,{coord:n,x:t.x0,y:t.y0})||l.dataFilter(e,{coord:i,x:t.x1,y:t.y1}))}function f(e,t,n,i,r){var a,s=i.coordinateSystem,l=e.getItemModel(t),u=o.parsePercent(l.get(n[0]),r.getWidth()),d=o.parsePercent(l.get(n[1]),r.getHeight());if(isNaN(u)||isNaN(d)){if(i.getMarkerPosition)a=i.getMarkerPosition(e.getValues(n,t));else{var h=[m=e.get(n[0],t),g=e.get(n[1],t)];s.clampData&&s.clampData(h,h),a=s.dataToPoint(h,!0)}if("cartesian2d"===s.type){var f=s.getAxis("x"),p=s.getAxis("y"),m=e.get(n[0],t),g=e.get(n[1],t);c(m)?a[0]=f.toGlobalCoord(f.getExtent()["x0"===n[0]?0:1]):c(g)&&(a[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(u)||(a[0]=u),isNaN(d)||(a[1]=d)}else a=[u,d];return a}var p=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];n("eGS6").extend({type:"markArea",updateTransform:function(e,t,n){t.eachSeries(function(e){var t=e.markAreaModel;if(t){var r=t.getData();r.each(function(t){var a=i.map(p,function(i){return f(r,t,i,e,n)});r.setItemLayout(t,a),r.getItemGraphicEl(t).setShape("points",a)})}},this)},renderSeries:function(e,t,n,o){var l=e.coordinateSystem,c=e.id,d=e.getData(),m=this.markerGroupMap,g=m.get(c)||m.set(c,{group:new s.Group});this.group.add(g.group),g.__keep=!0;var v=function(e,t,n){var r,o;e?(r=i.map(e&&e.dimensions,function(e){var n=t.getData(),r=n.getDimensionInfo(n.mapDimension(e))||{};return i.defaults({name:e},r)}),o=new a(i.map(["x0","y0","x1","y1"],function(e,t){return{name:e,type:r[t%2].type}}),n)):o=new a(r=[{name:"value",type:"float"}],n);var s=i.map(n.get("data"),i.curry(u,t,e,n));e&&(s=i.filter(s,i.curry(h,e)));var l=e?function(e,t,n,i){return e.coord[Math.floor(i/2)][i%2]}:function(e){return e.value};return o.initData(s,null,l),o.hasItemOption=!0,o}(l,e,t);t.setData(v),v.each(function(t){v.setItemLayout(t,i.map(p,function(n){return f(v,t,n,e,o)})),v.setItemVisual(t,{color:d.getVisual("color")})}),v.diff(g.__data).add(function(e){var t=new s.Polygon({shape:{points:v.getItemLayout(e)}});v.setItemGraphicEl(e,t),g.group.add(t)}).update(function(e,n){var i=g.__data.getItemGraphicEl(n);s.updateProps(i,{shape:{points:v.getItemLayout(e)}},t,e),g.group.add(i),v.setItemGraphicEl(e,i)}).remove(function(e){var t=g.__data.getItemGraphicEl(e);g.group.remove(t)}).execute(),v.eachItemGraphicEl(function(e,n){var a=v.getItemModel(n),o=a.getModel("label"),l=a.getModel("emphasis.label"),u=v.getItemVisual(n,"color");e.useStyle(i.defaults(a.getModel("itemStyle").getItemStyle(),{fill:r.modifyAlpha(u,.4),stroke:u})),e.hoverStyle=a.getModel("emphasis.itemStyle").getItemStyle(),s.setLabelStyle(e.style,e.hoverStyle,o,l,{labelFetcher:t,labelDataIndex:n,defaultText:v.getName(n)||"",isRectText:!0,autoColor:u}),s.setHoverStyle(e,{}),e.dataModel=t}),g.__data=v,g.group.silent=t.get("silent")||e.get("silent")}})},IWqO:function(e,t,n){var i=n("Mf6k"),r=n("YR6M"),a=n("GKMz"),o=r.extend({type:"series.gauge",getInitialData:function(e,t){var n=e.data||[];return a.isArray(n)||(n=[n]),e.data=n,i(this,["value"])},defaultOption:{zlevel:0,z:2,center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,lineStyle:{color:[[.2,"#91c7ae"],[.8,"#63869e"],[1,"#c23531"]],width:30}},splitLine:{show:!0,length:30,lineStyle:{color:"#eee",width:2,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:8,lineStyle:{color:"#eee",width:1,type:"solid"}},axisLabel:{show:!0,distance:5,color:"auto"},pointer:{show:!0,length:"80%",width:8},itemStyle:{color:"auto"},title:{show:!0,offsetCenter:[0,"-40%"],color:"#333",fontSize:15},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"auto",fontSize:30}}});e.exports=o},IiIs:function(e,t,n){"use strict";var i=n("Vkqu"),r=n("+lh6"),a=10,o=40,s=800;function l(e){var t=0,n=0,i=0,r=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),i=t*a,r=n*a,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(i=e.deltaX),(i||r)&&e.deltaMode&&(1==e.deltaMode?(i*=o,r*=o):(i*=s,r*=s)),i&&!t&&(t=i<1?-1:1),r&&!n&&(n=r<1?-1:1),{spinX:t,spinY:n,pixelX:i,pixelY:r}}l.getEventType=function(){return i.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=l},InbI:function(e,t,n){n("KJ1c").__DEV__;var i=n("vqvJ"),r=i.makeInner,a=i.getDataItemValue,o=n("koKQ").getCoordSysDefineBySeries,s=n("GKMz"),l=s.createHashMap,u=s.each,c=s.map,d=s.isArray,h=s.isString,f=s.isObject,p=s.isTypedArray,m=s.isArrayLike,g=s.extend,v=(s.assert,n("YYsL")),y=n("REEr"),b=y.SOURCE_FORMAT_ORIGINAL,_=y.SOURCE_FORMAT_ARRAY_ROWS,x=y.SOURCE_FORMAT_OBJECT_ROWS,w=y.SOURCE_FORMAT_KEYED_COLUMNS,S=y.SOURCE_FORMAT_UNKNOWN,C=y.SOURCE_FORMAT_TYPED_ARRAY,M=y.SERIES_LAYOUT_BY_ROW,k=r();function T(e){if(e){var t=l();return c(e,function(e,n){if(null==(e=g({},f(e)?e:{name:e})).name)return e;e.name+="",null==e.displayName&&(e.displayName=e.name);var i=t.get(e.name);return i?e.name+="-"+i.count++:t.set(e.name,{count:1}),e})}}function A(e,t,n,i){if(null==i&&(i=1/0),t===M)for(var r=0;r<n.length&&r<i;r++)e(n[r]?n[r][0]:null,r);else{var a=n[0]||[];for(r=0;r<a.length&&r<i;r++)e(a[r],r)}}function I(e,t,n,i,r,o){var s,l;if(p(e))return!1;if(i&&(l=i[o],l=f(l)?l.name:l),t===_)if(n===M){for(var u=e[o],c=0;c<(u||[]).length&&c<5;c++)if(null!=(s=y(u[r+c])))return s}else for(c=0;c<e.length&&c<5;c++){var m=e[r+c];if(m&&null!=(s=y(m[o])))return s}else if(t===x){if(!l)return;for(c=0;c<e.length&&c<5;c++){if((g=e[c])&&null!=(s=y(g[l])))return s}}else if(t===w){if(!l)return;if(!(u=e[l])||p(u))return!1;for(c=0;c<u.length&&c<5;c++)if(null!=(s=y(u[c])))return s}else if(t===b)for(c=0;c<e.length&&c<5;c++){var g=e[c],v=a(g);if(!d(v))return!1;if(null!=(s=y(v[o])))return s}function y(e){return(null==e||!isFinite(e)||""===e)&&(!(!h(e)||"-"===e)||void 0)}return!1}t.detectSourceFormat=function(e){var t=e.option.source,n=S;if(p(t))n=C;else if(d(t))for(var i=0,r=t.length;i<r;i++){var a=t[i];if(null!=a){if(d(a)){n=_;break}if(f(a)){n=x;break}}}else if(f(t)){for(var o in t)if(t.hasOwnProperty(o)&&m(t[o])){n=w;break}}else if(null!=t)throw new Error("Invalid data");k(e).sourceFormat=n},t.getSource=function(e){return k(e).source},t.resetSourceDefaulter=function(e){k(e).datasetMap=l()},t.prepareSource=function(e){var t=e.option,n=t.data,i=p(n)?C:b,r=!1,s=t.seriesLayoutBy,c=t.sourceHeader,m=t.dimensions,g=function(e){var t=e.option;if(!t.data)return e.ecModel.getComponent("dataset",t.datasetIndex||0)}(e);if(g){var y=g.option;n=y.source,i=k(g).sourceFormat,r=!0,s=s||y.seriesLayoutBy,null==c&&(c=y.sourceHeader),m=m||y.dimensions}var S=function(e,t,n,i,r){if(!e)return{dimensionsDefine:T(r)};var o,s,l,c;if(t===_)"auto"===i||null==i?A(function(e){null!=e&&"-"!==e&&(h(e)?null==s&&(s=1):s=0)},n,e,10):s=i?1:0,r||1!==s||(r=[],A(function(e,t){r[t]=null!=e?e:""},n,e)),o=r?r.length:n===M?e.length:e[0]?e[0].length:null;else if(t===x)r||(r=function(e){for(var t,n=0;n<e.length&&!(t=e[n++]););if(t){var i=[];return u(t,function(e,t){i.push(t)}),i}}(e),l=!0);else if(t===w)r||(r=[],l=!0,u(e,function(e,t){r.push(t)}));else if(t===b){var p=a(e[0]);o=d(p)&&p.length||1}return l&&u(r,function(e,t){"name"===(f(e)?e.name:e)&&(c=t)}),{startIndex:s,dimensionsDefine:T(r),dimensionsDetectCount:o,potentialNameDimIndex:c}}(n,i,s,c,m),E=t.encode;!E&&g&&(E=function(e,t,n,i,r,a){var s=o(e),c={},d=[],h=[],f=e.subType,p=l(["pie","map","funnel"]),m=l(["line","bar","pictorialBar","scatter","effectScatter","candlestick","boxplot"]);if(s&&null!=m.get(f)){var g=e.ecModel,v=k(g).datasetMap,y=t.uid+"_"+r,b=v.get(y)||v.set(y,{categoryWayDim:1,valueWayDim:0});u(s.coordSysDims,function(e){if(null==s.firstCategoryDimIndex){var t=b.valueWayDim++;c[e]=t,h.push(t)}else if(s.categoryAxisMap.get(e))c[e]=0,d.push(0);else{var t=b.categoryWayDim++;c[e]=t,h.push(t)}})}else if(null!=p.get(f)){for(var _,x=0;x<5&&null==_;x++)I(n,i,r,a.dimensionsDefine,a.startIndex,x)||(_=x);if(null!=_){c.value=_;var w=a.potentialNameDimIndex||Math.max(_-1,0);h.push(w),d.push(w)}}return d.length&&(c.itemName=d),h.length&&(c.seriesName=h),c}(e,g,n,i,s,S)),k(e).source=new v({data:n,fromDataset:r,seriesLayoutBy:s,sourceFormat:i,dimensionsDefine:S.dimensionsDefine,startIndex:S.startIndex,dimensionsDetectCount:S.dimensionsDetectCount,encodeDefine:E})},t.guessOrdinal=function(e,t){return I(e.data,e.sourceFormat,e.seriesLayoutBy,e.dimensionsDefine,e.startIndex,t)}},IsPG:function(e,t,n){"use strict";var i=n("l9Iv")(!0);n("uH+j")(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=i(t,n),this._i+=e.length,{value:e,done:!1})})},IvJb:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){
-/*!
- * Vue.js v2.5.17
- * (c) 2014-2018 Evan You
- * Released under the MIT License.
- */
-var n=Object.freeze({});function i(e){return void 0===e||null===e}function r(e){return void 0!==e&&null!==e}function a(e){return!0===e}function o(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function s(e){return null!==e&&"object"==typeof e}var l=Object.prototype.toString;function u(e){return"[object Object]"===l.call(e)}function c(e){return"[object RegExp]"===l.call(e)}function d(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function h(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function f(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),i=e.split(","),r=0;r<i.length;r++)n[i[r]]=!0;return t?function(e){return n[e.toLowerCase()]}:function(e){return n[e]}}var m=p("slot,component",!0),g=p("key,ref,slot,slot-scope,is");function v(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}var y=Object.prototype.hasOwnProperty;function b(e,t){return y.call(e,t)}function _(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var x=/-(\w)/g,w=_(function(e){return e.replace(x,function(e,t){return t?t.toUpperCase():""})}),S=_(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),C=/\B([A-Z])/g,M=_(function(e){return e.replace(C,"-$1").toLowerCase()});var k=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var i=arguments.length;return i?i>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function T(e,t){t=t||0;for(var n=e.length-t,i=new Array(n);n--;)i[n]=e[n+t];return i}function A(e,t){for(var n in t)e[n]=t[n];return e}function I(e){for(var t={},n=0;n<e.length;n++)e[n]&&A(t,e[n]);return t}function E(e,t,n){}var D=function(e,t,n){return!1},O=function(e){return e};function P(e,t){if(e===t)return!0;var n=s(e),i=s(t);if(!n||!i)return!n&&!i&&String(e)===String(t);try{var r=Array.isArray(e),a=Array.isArray(t);if(r&&a)return e.length===t.length&&e.every(function(e,n){return P(e,t[n])});if(r||a)return!1;var o=Object.keys(e),l=Object.keys(t);return o.length===l.length&&o.every(function(n){return P(e[n],t[n])})}catch(e){return!1}}function L(e,t){for(var n=0;n<e.length;n++)if(P(e[n],t))return n;return-1}function R(e){var t=!1;return function(){t||(t=!0,e.apply(this,arguments))}}var N="data-server-rendered",B=["component","directive","filter"],F=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured"],z={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:D,isReservedAttr:D,isUnknownElement:D,getTagNamespace:E,parsePlatformTagName:O,mustUseProp:D,_lifecycleHooks:F};function V(e){var t=(e+"").charCodeAt(0);return 36===t||95===t}function $(e,t,n,i){Object.defineProperty(e,t,{value:n,enumerable:!!i,writable:!0,configurable:!0})}var G=/[^\w.$]/;var j,H="__proto__"in{},W="undefined"!=typeof window,U="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,K=U&&WXEnvironment.platform.toLowerCase(),q=W&&window.navigator.userAgent.toLowerCase(),Y=q&&/msie|trident/.test(q),Z=q&&q.indexOf("msie 9.0")>0,X=q&&q.indexOf("edge/")>0,J=(q&&q.indexOf("android"),q&&/iphone|ipad|ipod|ios/.test(q)||"ios"===K),Q=(q&&/chrome\/\d+/.test(q),{}.watch),ee=!1;if(W)try{var te={};Object.defineProperty(te,"passive",{get:function(){ee=!0}}),window.addEventListener("test-passive",null,te)}catch(e){}var ne=function(){return void 0===j&&(j=!W&&!U&&void 0!==e&&"server"===e.process.env.VUE_ENV),j},ie=W&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return"function"==typeof e&&/native code/.test(e.toString())}var ae,oe="undefined"!=typeof Symbol&&re(Symbol)&&"undefined"!=typeof Reflect&&re(Reflect.ownKeys);ae="undefined"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var se=E,le=0,ue=function(){this.id=le++,this.subs=[]};ue.prototype.addSub=function(e){this.subs.push(e)},ue.prototype.removeSub=function(e){v(this.subs,e)},ue.prototype.depend=function(){ue.target&&ue.target.addDep(this)},ue.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t<n;t++)e[t].update()},ue.target=null;var ce=[];function de(e){ue.target&&ce.push(ue.target),ue.target=e}function he(){ue.target=ce.pop()}var fe=function(e,t,n,i,r,a,o,s){this.tag=e,this.data=t,this.children=n,this.text=i,this.elm=r,this.ns=void 0,this.context=a,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=t&&t.key,this.componentOptions=o,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},pe={child:{configurable:!0}};pe.child.get=function(){return this.componentInstance},Object.defineProperties(fe.prototype,pe);var me=function(e){void 0===e&&(e="");var t=new fe;return t.text=e,t.isComment=!0,t};function ge(e){return new fe(void 0,void 0,void 0,String(e))}function ve(e){var t=new fe(e.tag,e.data,e.children,e.text,e.elm,e.context,e.componentOptions,e.asyncFactory);return t.ns=e.ns,t.isStatic=e.isStatic,t.key=e.key,t.isComment=e.isComment,t.fnContext=e.fnContext,t.fnOptions=e.fnOptions,t.fnScopeId=e.fnScopeId,t.isCloned=!0,t}var ye=Array.prototype,be=Object.create(ye);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(e){var t=ye[e];$(be,e,function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];var r,a=t.apply(this,n),o=this.__ob__;switch(e){case"push":case"unshift":r=n;break;case"splice":r=n.slice(2)}return r&&o.observeArray(r),o.dep.notify(),a})});var _e=Object.getOwnPropertyNames(be),xe=!0;function we(e){xe=e}var Se=function(e){(this.value=e,this.dep=new ue,this.vmCount=0,$(e,"__ob__",this),Array.isArray(e))?((H?Ce:Me)(e,be,_e),this.observeArray(e)):this.walk(e)};function Ce(e,t,n){e.__proto__=t}function Me(e,t,n){for(var i=0,r=n.length;i<r;i++){var a=n[i];$(e,a,t[a])}}function ke(e,t){var n;if(s(e)&&!(e instanceof fe))return b(e,"__ob__")&&e.__ob__ instanceof Se?n=e.__ob__:xe&&!ne()&&(Array.isArray(e)||u(e))&&Object.isExtensible(e)&&!e._isVue&&(n=new Se(e)),t&&n&&n.vmCount++,n}function Te(e,t,n,i,r){var a=new ue,o=Object.getOwnPropertyDescriptor(e,t);if(!o||!1!==o.configurable){var s=o&&o.get;s||2!==arguments.length||(n=e[t]);var l=o&&o.set,u=!r&&ke(n);Object.defineProperty(e,t,{enumerable:!0,configurable:!0,get:function(){var t=s?s.call(e):n;return ue.target&&(a.depend(),u&&(u.dep.depend(),Array.isArray(t)&&function e(t){for(var n=void 0,i=0,r=t.length;i<r;i++)(n=t[i])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&e(n)}(t))),t},set:function(t){var i=s?s.call(e):n;t===i||t!=t&&i!=i||(l?l.call(e,t):n=t,u=!r&&ke(t),a.notify())}})}}function Ae(e,t,n){if(Array.isArray(e)&&d(t))return e.length=Math.max(e.length,t),e.splice(t,1,n),n;if(t in e&&!(t in Object.prototype))return e[t]=n,n;var i=e.__ob__;return e._isVue||i&&i.vmCount?n:i?(Te(i.value,t,n),i.dep.notify(),n):(e[t]=n,n)}function Ie(e,t){if(Array.isArray(e)&&d(t))e.splice(t,1);else{var n=e.__ob__;e._isVue||n&&n.vmCount||b(e,t)&&(delete e[t],n&&n.dep.notify())}}Se.prototype.walk=function(e){for(var t=Object.keys(e),n=0;n<t.length;n++)Te(e,t[n])},Se.prototype.observeArray=function(e){for(var t=0,n=e.length;t<n;t++)ke(e[t])};var Ee=z.optionMergeStrategies;function De(e,t){if(!t)return e;for(var n,i,r,a=Object.keys(t),o=0;o<a.length;o++)i=e[n=a[o]],r=t[n],b(e,n)?u(i)&&u(r)&&De(i,r):Ae(e,n,r);return e}function Oe(e,t,n){return n?function(){var i="function"==typeof t?t.call(n,n):t,r="function"==typeof e?e.call(n,n):e;return i?De(i,r):r}:t?e?function(){return De("function"==typeof t?t.call(this,this):t,"function"==typeof e?e.call(this,this):e)}:t:e}function Pe(e,t){return t?e?e.concat(t):Array.isArray(t)?t:[t]:e}function Le(e,t,n,i){var r=Object.create(e||null);return t?A(r,t):r}Ee.data=function(e,t,n){return n?Oe(e,t,n):t&&"function"!=typeof t?e:Oe(e,t)},F.forEach(function(e){Ee[e]=Pe}),B.forEach(function(e){Ee[e+"s"]=Le}),Ee.watch=function(e,t,n,i){if(e===Q&&(e=void 0),t===Q&&(t=void 0),!t)return Object.create(e||null);if(!e)return t;var r={};for(var a in A(r,e),t){var o=r[a],s=t[a];o&&!Array.isArray(o)&&(o=[o]),r[a]=o?o.concat(s):Array.isArray(s)?s:[s]}return r},Ee.props=Ee.methods=Ee.inject=Ee.computed=function(e,t,n,i){if(!e)return t;var r=Object.create(null);return A(r,e),t&&A(r,t),r},Ee.provide=Oe;var Re=function(e,t){return void 0===t?e:t};function Ne(e,t,n){"function"==typeof t&&(t=t.options),function(e,t){var n=e.props;if(n){var i,r,a={};if(Array.isArray(n))for(i=n.length;i--;)"string"==typeof(r=n[i])&&(a[w(r)]={type:null});else if(u(n))for(var o in n)r=n[o],a[w(o)]=u(r)?r:{type:r};e.props=a}}(t),function(e,t){var n=e.inject;if(n){var i=e.inject={};if(Array.isArray(n))for(var r=0;r<n.length;r++)i[n[r]]={from:n[r]};else if(u(n))for(var a in n){var o=n[a];i[a]=u(o)?A({from:a},o):{from:o}}}}(t),function(e){var t=e.directives;if(t)for(var n in t){var i=t[n];"function"==typeof i&&(t[n]={bind:i,update:i})}}(t);var i=t.extends;if(i&&(e=Ne(e,i,n)),t.mixins)for(var r=0,a=t.mixins.length;r<a;r++)e=Ne(e,t.mixins[r],n);var o,s={};for(o in e)l(o);for(o in t)b(e,o)||l(o);function l(i){var r=Ee[i]||Re;s[i]=r(e[i],t[i],n,i)}return s}function Be(e,t,n,i){if("string"==typeof n){var r=e[t];if(b(r,n))return r[n];var a=w(n);if(b(r,a))return r[a];var o=S(a);return b(r,o)?r[o]:r[n]||r[a]||r[o]}}function Fe(e,t,n,i){var r=t[e],a=!b(n,e),o=n[e],s=$e(Boolean,r.type);if(s>-1)if(a&&!b(r,"default"))o=!1;else if(""===o||o===M(e)){var l=$e(String,r.type);(l<0||s<l)&&(o=!0)}if(void 0===o){o=function(e,t,n){if(!b(t,"default"))return;var i=t.default;0;if(e&&e.$options.propsData&&void 0===e.$options.propsData[n]&&void 0!==e._props[n])return e._props[n];return"function"==typeof i&&"Function"!==ze(t.type)?i.call(e):i}(i,r,e);var u=xe;we(!0),ke(o),we(u)}return o}function ze(e){var t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:""}function Ve(e,t){return ze(e)===ze(t)}function $e(e,t){if(!Array.isArray(t))return Ve(t,e)?0:-1;for(var n=0,i=t.length;n<i;n++)if(Ve(t[n],e))return n;return-1}function Ge(e,t,n){if(t)for(var i=t;i=i.$parent;){var r=i.$options.errorCaptured;if(r)for(var a=0;a<r.length;a++)try{if(!1===r[a].call(i,e,t,n))return}catch(e){je(e,i,"errorCaptured hook")}}je(e,t,n)}function je(e,t,n){if(z.errorHandler)try{return z.errorHandler.call(null,e,t,n)}catch(e){He(e,null,"config.errorHandler")}He(e,t,n)}function He(e,t,n){if(!W&&!U||"undefined"==typeof console)throw e;console.error(e)}var We,Ue,Ke=[],qe=!1;function Ye(){qe=!1;var e=Ke.slice(0);Ke.length=0;for(var t=0;t<e.length;t++)e[t]()}var Ze=!1;if("undefined"!=typeof setImmediate&&re(setImmediate))Ue=function(){setImmediate(Ye)};else if("undefined"==typeof MessageChannel||!re(MessageChannel)&&"[object MessageChannelConstructor]"!==MessageChannel.toString())Ue=function(){setTimeout(Ye,0)};else{var Xe=new MessageChannel,Je=Xe.port2;Xe.port1.onmessage=Ye,Ue=function(){Je.postMessage(1)}}if("undefined"!=typeof Promise&&re(Promise)){var Qe=Promise.resolve();We=function(){Qe.then(Ye),J&&setTimeout(E)}}else We=Ue;function et(e,t){var n;if(Ke.push(function(){if(e)try{e.call(t)}catch(e){Ge(e,t,"nextTick")}else n&&n(t)}),qe||(qe=!0,Ze?Ue():We()),!e&&"undefined"!=typeof Promise)return new Promise(function(e){n=e})}var tt=new ae;function nt(e){!function e(t,n){var i,r;var a=Array.isArray(t);if(!a&&!s(t)||Object.isFrozen(t)||t instanceof fe)return;if(t.__ob__){var o=t.__ob__.dep.id;if(n.has(o))return;n.add(o)}if(a)for(i=t.length;i--;)e(t[i],n);else for(r=Object.keys(t),i=r.length;i--;)e(t[r[i]],n)}(e,tt),tt.clear()}var it,rt=_(function(e){var t="&"===e.charAt(0),n="~"===(e=t?e.slice(1):e).charAt(0),i="!"===(e=n?e.slice(1):e).charAt(0);return{name:e=i?e.slice(1):e,once:n,capture:i,passive:t}});function at(e){function t(){var e=arguments,n=t.fns;if(!Array.isArray(n))return n.apply(null,arguments);for(var i=n.slice(),r=0;r<i.length;r++)i[r].apply(null,e)}return t.fns=e,t}function ot(e,t,n,r,a){var o,s,l,u;for(o in e)s=e[o],l=t[o],u=rt(o),i(s)||(i(l)?(i(s.fns)&&(s=e[o]=at(s)),n(u.name,s,u.once,u.capture,u.passive,u.params)):s!==l&&(l.fns=s,e[o]=l));for(o in t)i(e[o])&&r((u=rt(o)).name,t[o],u.capture)}function st(e,t,n){var o;e instanceof fe&&(e=e.data.hook||(e.data.hook={}));var s=e[t];function l(){n.apply(this,arguments),v(o.fns,l)}i(s)?o=at([l]):r(s.fns)&&a(s.merged)?(o=s).fns.push(l):o=at([s,l]),o.merged=!0,e[t]=o}function lt(e,t,n,i,a){if(r(t)){if(b(t,n))return e[n]=t[n],a||delete t[n],!0;if(b(t,i))return e[n]=t[i],a||delete t[i],!0}return!1}function ut(e){return o(e)?[ge(e)]:Array.isArray(e)?function e(t,n){var s=[];var l,u,c,d;for(l=0;l<t.length;l++)i(u=t[l])||"boolean"==typeof u||(c=s.length-1,d=s[c],Array.isArray(u)?u.length>0&&(ct((u=e(u,(n||"")+"_"+l))[0])&&ct(d)&&(s[c]=ge(d.text+u[0].text),u.shift()),s.push.apply(s,u)):o(u)?ct(d)?s[c]=ge(d.text+u):""!==u&&s.push(ge(u)):ct(u)&&ct(d)?s[c]=ge(d.text+u.text):(a(t._isVList)&&r(u.tag)&&i(u.key)&&r(n)&&(u.key="__vlist"+n+"_"+l+"__"),s.push(u)));return s}(e):void 0}function ct(e){return r(e)&&r(e.text)&&!1===e.isComment}function dt(e,t){return(e.__esModule||oe&&"Module"===e[Symbol.toStringTag])&&(e=e.default),s(e)?t.extend(e):e}function ht(e){return e.isComment&&e.asyncFactory}function ft(e){if(Array.isArray(e))for(var t=0;t<e.length;t++){var n=e[t];if(r(n)&&(r(n.componentOptions)||ht(n)))return n}}function pt(e,t,n){n?it.$once(e,t):it.$on(e,t)}function mt(e,t){it.$off(e,t)}function gt(e,t,n){it=e,ot(t,n||{},pt,mt),it=void 0}function vt(e,t){var n={};if(!e)return n;for(var i=0,r=e.length;i<r;i++){var a=e[i],o=a.data;if(o&&o.attrs&&o.attrs.slot&&delete o.attrs.slot,a.context!==t&&a.fnContext!==t||!o||null==o.slot)(n.default||(n.default=[])).push(a);else{var s=o.slot,l=n[s]||(n[s]=[]);"template"===a.tag?l.push.apply(l,a.children||[]):l.push(a)}}for(var u in n)n[u].every(yt)&&delete n[u];return n}function yt(e){return e.isComment&&!e.asyncFactory||" "===e.text}function bt(e,t){t=t||{};for(var n=0;n<e.length;n++)Array.isArray(e[n])?bt(e[n],t):t[e[n].key]=e[n].fn;return t}var _t=null;function xt(e){for(;e&&(e=e.$parent);)if(e._inactive)return!0;return!1}function wt(e,t){if(t){if(e._directInactive=!1,xt(e))return}else if(e._directInactive)return;if(e._inactive||null===e._inactive){e._inactive=!1;for(var n=0;n<e.$children.length;n++)wt(e.$children[n]);St(e,"activated")}}function St(e,t){de();var n=e.$options[t];if(n)for(var i=0,r=n.length;i<r;i++)try{n[i].call(e)}catch(n){Ge(n,e,t+" hook")}e._hasHookEvent&&e.$emit("hook:"+t),he()}var Ct=[],Mt=[],kt={},Tt=!1,At=!1,It=0;function Et(){var e,t;for(At=!0,Ct.sort(function(e,t){return e.id-t.id}),It=0;It<Ct.length;It++)t=(e=Ct[It]).id,kt[t]=null,e.run();var n=Mt.slice(),i=Ct.slice();It=Ct.length=Mt.length=0,kt={},Tt=At=!1,function(e){for(var t=0;t<e.length;t++)e[t]._inactive=!0,wt(e[t],!0)}(n),function(e){var t=e.length;for(;t--;){var n=e[t],i=n.vm;i._watcher===n&&i._isMounted&&St(i,"updated")}}(i),ie&&z.devtools&&ie.emit("flush")}var Dt=0,Ot=function(e,t,n,i,r){this.vm=e,r&&(e._watcher=this),e._watchers.push(this),i?(this.deep=!!i.deep,this.user=!!i.user,this.lazy=!!i.lazy,this.sync=!!i.sync):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++Dt,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new ae,this.newDepIds=new ae,this.expression="","function"==typeof t?this.getter=t:(this.getter=function(e){if(!G.test(e)){var t=e.split(".");return function(e){for(var n=0;n<t.length;n++){if(!e)return;e=e[t[n]]}return e}}}(t),this.getter||(this.getter=function(){})),this.value=this.lazy?void 0:this.get()};Ot.prototype.get=function(){var e;de(this);var t=this.vm;try{e=this.getter.call(t,t)}catch(e){if(!this.user)throw e;Ge(e,t,'getter for watcher "'+this.expression+'"')}finally{this.deep&&nt(e),he(),this.cleanupDeps()}return e},Ot.prototype.addDep=function(e){var t=e.id;this.newDepIds.has(t)||(this.newDepIds.add(t),this.newDeps.push(e),this.depIds.has(t)||e.addSub(this))},Ot.prototype.cleanupDeps=function(){for(var e=this.deps.length;e--;){var t=this.deps[e];this.newDepIds.has(t.id)||t.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},Ot.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(e){var t=e.id;if(null==kt[t]){if(kt[t]=!0,At){for(var n=Ct.length-1;n>It&&Ct[n].id>e.id;)n--;Ct.splice(n+1,0,e)}else Ct.push(e);Tt||(Tt=!0,et(Et))}}(this)},Ot.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||s(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Ge(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},Ot.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Ot.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},Ot.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||v(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var Pt={enumerable:!0,configurable:!0,get:E,set:E};function Lt(e,t,n){Pt.get=function(){return this[t][n]},Pt.set=function(e){this[t][n]=e},Object.defineProperty(e,n,Pt)}function Rt(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},i=e._props={},r=e.$options._propKeys=[];e.$parent&&we(!1);var a=function(a){r.push(a);var o=Fe(a,t,n,e);Te(i,a,o),a in e||Lt(e,"_props",a)};for(var o in t)a(o);we(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=null==t[n]?E:k(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;u(t=e._data="function"==typeof t?function(e,t){de();try{return e.call(t,t)}catch(e){return Ge(e,t,"data()"),{}}finally{he()}}(t,e):t||{})||(t={});var n=Object.keys(t),i=e.$options.props,r=(e.$options.methods,n.length);for(;r--;){var a=n[r];0,i&&b(i,a)||V(a)||Lt(e,"_data",a)}ke(t,!0)}(e):ke(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),i=ne();for(var r in t){var a=t[r],o="function"==typeof a?a:a.get;0,i||(n[r]=new Ot(e,o||E,E,Nt)),r in e||Bt(e,r,a)}}(e,t.computed),t.watch&&t.watch!==Q&&function(e,t){for(var n in t){var i=t[n];if(Array.isArray(i))for(var r=0;r<i.length;r++)zt(e,n,i[r]);else zt(e,n,i)}}(e,t.watch)}var Nt={lazy:!0};function Bt(e,t,n){var i=!ne();"function"==typeof n?(Pt.get=i?Ft(t):n,Pt.set=E):(Pt.get=n.get?i&&!1!==n.cache?Ft(t):n.get:E,Pt.set=n.set?n.set:E),Object.defineProperty(e,t,Pt)}function Ft(e){return function(){var t=this._computedWatchers&&this._computedWatchers[e];if(t)return t.dirty&&t.evaluate(),ue.target&&t.depend(),t.value}}function zt(e,t,n,i){return u(n)&&(i=n,n=n.handler),"string"==typeof n&&(n=e[n]),e.$watch(t,n,i)}function Vt(e,t){if(e){for(var n=Object.create(null),i=oe?Reflect.ownKeys(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}):Object.keys(e),r=0;r<i.length;r++){for(var a=i[r],o=e[a].from,s=t;s;){if(s._provided&&b(s._provided,o)){n[a]=s._provided[o];break}s=s.$parent}if(!s)if("default"in e[a]){var l=e[a].default;n[a]="function"==typeof l?l.call(t):l}else 0}return n}}function $t(e,t){var n,i,a,o,l;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),i=0,a=e.length;i<a;i++)n[i]=t(e[i],i);else if("number"==typeof e)for(n=new Array(e),i=0;i<e;i++)n[i]=t(i+1,i);else if(s(e))for(o=Object.keys(e),n=new Array(o.length),i=0,a=o.length;i<a;i++)l=o[i],n[i]=t(e[l],l,i);return r(n)&&(n._isVList=!0),n}function Gt(e,t,n,i){var r,a=this.$scopedSlots[e];if(a)n=n||{},i&&(n=A(A({},i),n)),r=a(n)||t;else{var o=this.$slots[e];o&&(o._rendered=!0),r=o||t}var s=n&&n.slot;return s?this.$createElement("template",{slot:s},r):r}function jt(e){return Be(this.$options,"filters",e)||O}function Ht(e,t){return Array.isArray(e)?-1===e.indexOf(t):e!==t}function Wt(e,t,n,i,r){var a=z.keyCodes[t]||n;return r&&i&&!z.keyCodes[t]?Ht(r,i):a?Ht(a,e):i?M(i)!==t:void 0}function Ut(e,t,n,i,r){if(n)if(s(n)){var a;Array.isArray(n)&&(n=I(n));var o=function(o){if("class"===o||"style"===o||g(o))a=e;else{var s=e.attrs&&e.attrs.type;a=i||z.mustUseProp(t,s,o)?e.domProps||(e.domProps={}):e.attrs||(e.attrs={})}o in a||(a[o]=n[o],r&&((e.on||(e.on={}))["update:"+o]=function(e){n[o]=e}))};for(var l in n)o(l)}else;return e}function Kt(e,t){var n=this._staticTrees||(this._staticTrees=[]),i=n[e];return i&&!t?i:(Yt(i=n[e]=this.$options.staticRenderFns[e].call(this._renderProxy,null,this),"__static__"+e,!1),i)}function qt(e,t,n){return Yt(e,"__once__"+t+(n?"_"+n:""),!0),e}function Yt(e,t,n){if(Array.isArray(e))for(var i=0;i<e.length;i++)e[i]&&"string"!=typeof e[i]&&Zt(e[i],t+"_"+i,n);else Zt(e,t,n)}function Zt(e,t,n){e.isStatic=!0,e.key=t,e.isOnce=n}function Xt(e,t){if(t)if(u(t)){var n=e.on=e.on?A({},e.on):{};for(var i in t){var r=n[i],a=t[i];n[i]=r?[].concat(r,a):a}}else;return e}function Jt(e){e._o=qt,e._n=f,e._s=h,e._l=$t,e._t=Gt,e._q=P,e._i=L,e._m=Kt,e._f=jt,e._k=Wt,e._b=Ut,e._v=ge,e._e=me,e._u=bt,e._g=Xt}function Qt(e,t,i,r,o){var s,l=o.options;b(r,"_uid")?(s=Object.create(r))._original=r:(s=r,r=r._original);var u=a(l._compiled),c=!u;this.data=e,this.props=t,this.children=i,this.parent=r,this.listeners=e.on||n,this.injections=Vt(l.inject,r),this.slots=function(){return vt(i,r)},u&&(this.$options=l,this.$slots=this.slots(),this.$scopedSlots=e.scopedSlots||n),l._scopeId?this._c=function(e,t,n,i){var a=ln(s,e,t,n,i,c);return a&&!Array.isArray(a)&&(a.fnScopeId=l._scopeId,a.fnContext=r),a}:this._c=function(e,t,n,i){return ln(s,e,t,n,i,c)}}function en(e,t,n,i){var r=ve(e);return r.fnContext=n,r.fnOptions=i,t.slot&&((r.data||(r.data={})).slot=t.slot),r}function tn(e,t){for(var n in t)e[w(n)]=t[n]}Jt(Qt.prototype);var nn={init:function(e,t,n,i){if(e.componentInstance&&!e.componentInstance._isDestroyed&&e.data.keepAlive){var a=e;nn.prepatch(a,a)}else{(e.componentInstance=function(e,t,n,i){var a={_isComponent:!0,parent:t,_parentVnode:e,_parentElm:n||null,_refElm:i||null},o=e.data.inlineTemplate;r(o)&&(a.render=o.render,a.staticRenderFns=o.staticRenderFns);return new e.componentOptions.Ctor(a)}(e,_t,n,i)).$mount(t?e.elm:void 0,t)}},prepatch:function(e,t){var i=t.componentOptions;!function(e,t,i,r,a){var o=!!(a||e.$options._renderChildren||r.data.scopedSlots||e.$scopedSlots!==n);if(e.$options._parentVnode=r,e.$vnode=r,e._vnode&&(e._vnode.parent=r),e.$options._renderChildren=a,e.$attrs=r.data.attrs||n,e.$listeners=i||n,t&&e.$options.props){we(!1);for(var s=e._props,l=e.$options._propKeys||[],u=0;u<l.length;u++){var c=l[u],d=e.$options.props;s[c]=Fe(c,d,t,e)}we(!0),e.$options.propsData=t}i=i||n;var h=e.$options._parentListeners;e.$options._parentListeners=i,gt(e,i,h),o&&(e.$slots=vt(a,r.context),e.$forceUpdate())}(t.componentInstance=e.componentInstance,i.propsData,i.listeners,t,i.children)},insert:function(e){var t,n=e.context,i=e.componentInstance;i._isMounted||(i._isMounted=!0,St(i,"mounted")),e.data.keepAlive&&(n._isMounted?((t=i)._inactive=!1,Mt.push(t)):wt(i,!0))},destroy:function(e){var t=e.componentInstance;t._isDestroyed||(e.data.keepAlive?function e(t,n){if(!(n&&(t._directInactive=!0,xt(t))||t._inactive)){t._inactive=!0;for(var i=0;i<t.$children.length;i++)e(t.$children[i]);St(t,"deactivated")}}(t,!0):t.$destroy())}},rn=Object.keys(nn);function an(e,t,o,l,u){if(!i(e)){var c=o.$options._base;if(s(e)&&(e=c.extend(e)),"function"==typeof e){var d;if(i(e.cid)&&void 0===(e=function(e,t,n){if(a(e.error)&&r(e.errorComp))return e.errorComp;if(r(e.resolved))return e.resolved;if(a(e.loading)&&r(e.loadingComp))return e.loadingComp;if(!r(e.contexts)){var o=e.contexts=[n],l=!0,u=function(){for(var e=0,t=o.length;e<t;e++)o[e].$forceUpdate()},c=R(function(n){e.resolved=dt(n,t),l||u()}),d=R(function(t){r(e.errorComp)&&(e.error=!0,u())}),h=e(c,d);return s(h)&&("function"==typeof h.then?i(e.resolved)&&h.then(c,d):r(h.component)&&"function"==typeof h.component.then&&(h.component.then(c,d),r(h.error)&&(e.errorComp=dt(h.error,t)),r(h.loading)&&(e.loadingComp=dt(h.loading,t),0===h.delay?e.loading=!0:setTimeout(function(){i(e.resolved)&&i(e.error)&&(e.loading=!0,u())},h.delay||200)),r(h.timeout)&&setTimeout(function(){i(e.resolved)&&d(null)},h.timeout))),l=!1,e.loading?e.loadingComp:e.resolved}e.contexts.push(n)}(d=e,c,o)))return function(e,t,n,i,r){var a=me();return a.asyncFactory=e,a.asyncMeta={data:t,context:n,children:i,tag:r},a}(d,t,o,l,u);t=t||{},cn(e),r(t.model)&&function(e,t){var n=e.model&&e.model.prop||"value",i=e.model&&e.model.event||"input";(t.props||(t.props={}))[n]=t.model.value;var a=t.on||(t.on={});r(a[i])?a[i]=[t.model.callback].concat(a[i]):a[i]=t.model.callback}(e.options,t);var h=function(e,t,n){var a=t.options.props;if(!i(a)){var o={},s=e.attrs,l=e.props;if(r(s)||r(l))for(var u in a){var c=M(u);lt(o,l,u,c,!0)||lt(o,s,u,c,!1)}return o}}(t,e);if(a(e.options.functional))return function(e,t,i,a,o){var s=e.options,l={},u=s.props;if(r(u))for(var c in u)l[c]=Fe(c,u,t||n);else r(i.attrs)&&tn(l,i.attrs),r(i.props)&&tn(l,i.props);var d=new Qt(i,l,o,a,e),h=s.render.call(null,d._c,d);if(h instanceof fe)return en(h,i,d.parent,s);if(Array.isArray(h)){for(var f=ut(h)||[],p=new Array(f.length),m=0;m<f.length;m++)p[m]=en(f[m],i,d.parent,s);return p}}(e,h,t,o,l);var f=t.on;if(t.on=t.nativeOn,a(e.options.abstract)){var p=t.slot;t={},p&&(t.slot=p)}!function(e){for(var t=e.hook||(e.hook={}),n=0;n<rn.length;n++){var i=rn[n];t[i]=nn[i]}}(t);var m=e.options.name||u;return new fe("vue-component-"+e.cid+(m?"-"+m:""),t,void 0,void 0,void 0,o,{Ctor:e,propsData:h,listeners:f,tag:u,children:l},d)}}}var on=1,sn=2;function ln(e,t,n,l,u,c){return(Array.isArray(n)||o(n))&&(u=l,l=n,n=void 0),a(c)&&(u=sn),function(e,t,n,o,l){if(r(n)&&r(n.__ob__))return me();r(n)&&r(n.is)&&(t=n.is);if(!t)return me();0;Array.isArray(o)&&"function"==typeof o[0]&&((n=n||{}).scopedSlots={default:o[0]},o.length=0);l===sn?o=ut(o):l===on&&(o=function(e){for(var t=0;t<e.length;t++)if(Array.isArray(e[t]))return Array.prototype.concat.apply([],e);return e}(o));var u,c;if("string"==typeof t){var d;c=e.$vnode&&e.$vnode.ns||z.getTagNamespace(t),u=z.isReservedTag(t)?new fe(z.parsePlatformTagName(t),n,o,void 0,void 0,e):r(d=Be(e.$options,"components",t))?an(d,n,e,o,t):new fe(t,n,o,void 0,void 0,e)}else u=an(t,n,e,o);return Array.isArray(u)?u:r(u)?(r(c)&&function e(t,n,o){t.ns=n;"foreignObject"===t.tag&&(n=void 0,o=!0);if(r(t.children))for(var s=0,l=t.children.length;s<l;s++){var u=t.children[s];r(u.tag)&&(i(u.ns)||a(o)&&"svg"!==u.tag)&&e(u,n,o)}}(u,c),r(n)&&function(e){s(e.style)&&nt(e.style);s(e.class)&&nt(e.class)}(n),u):me()}(e,t,n,l,u)}var un=0;function cn(e){var t=e.options;if(e.super){var n=cn(e.super);if(n!==e.superOptions){e.superOptions=n;var i=function(e){var t,n=e.options,i=e.extendOptions,r=e.sealedOptions;for(var a in n)n[a]!==r[a]&&(t||(t={}),t[a]=dn(n[a],i[a],r[a]));return t}(e);i&&A(e.extendOptions,i),(t=e.options=Ne(n,e.extendOptions)).name&&(t.components[t.name]=e)}}return t}function dn(e,t,n){if(Array.isArray(e)){var i=[];n=Array.isArray(n)?n:[n],t=Array.isArray(t)?t:[t];for(var r=0;r<e.length;r++)(t.indexOf(e[r])>=0||n.indexOf(e[r])<0)&&i.push(e[r]);return i}return e}function hn(e){this._init(e)}function fn(e){e.cid=0;var t=1;e.extend=function(e){e=e||{};var n=this,i=n.cid,r=e._Ctor||(e._Ctor={});if(r[i])return r[i];var a=e.name||n.options.name;var o=function(e){this._init(e)};return(o.prototype=Object.create(n.prototype)).constructor=o,o.cid=t++,o.options=Ne(n.options,e),o.super=n,o.options.props&&function(e){var t=e.options.props;for(var n in t)Lt(e.prototype,"_props",n)}(o),o.options.computed&&function(e){var t=e.options.computed;for(var n in t)Bt(e.prototype,n,t[n])}(o),o.extend=n.extend,o.mixin=n.mixin,o.use=n.use,B.forEach(function(e){o[e]=n[e]}),a&&(o.options.components[a]=o),o.superOptions=n.options,o.extendOptions=e,o.sealedOptions=A({},o.options),r[i]=o,o}}function pn(e){return e&&(e.Ctor.options.name||e.tag)}function mn(e,t){return Array.isArray(e)?e.indexOf(t)>-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!c(e)&&e.test(t)}function gn(e,t){var n=e.cache,i=e.keys,r=e._vnode;for(var a in n){var o=n[a];if(o){var s=pn(o.componentOptions);s&&!t(s)&&vn(n,a,i,r)}}}function vn(e,t,n,i){var r=e[t];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),e[t]=null,v(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=un++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),i=t._parentVnode;n.parent=t.parent,n._parentVnode=i,n._parentElm=t._parentElm,n._refElm=t._refElm;var r=i.componentOptions;n.propsData=r.propsData,n._parentListeners=r.listeners,n._renderChildren=r.children,n._componentTag=r.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=Ne(cn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&gt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,i=e.$vnode=t._parentVnode,r=i&&i.context;e.$slots=vt(t._renderChildren,r),e.$scopedSlots=n,e._c=function(t,n,i,r){return ln(e,t,n,i,r,!1)},e.$createElement=function(t,n,i,r){return ln(e,t,n,i,r,!0)};var a=i&&i.data;Te(e,"$attrs",a&&a.attrs||n,null,!0),Te(e,"$listeners",t._parentListeners||n,null,!0)}(t),St(t,"beforeCreate"),function(e){var t=Vt(e.$options.inject,e);t&&(we(!1),Object.keys(t).forEach(function(n){Te(e,n,t[n])}),we(!0))}(t),Rt(t),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(t),St(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(hn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=Ae,e.prototype.$delete=Ie,e.prototype.$watch=function(e,t,n){if(u(t))return zt(this,e,t,n);(n=n||{}).user=!0;var i=new Ot(this,e,t,n);return n.immediate&&t.call(this,i.value),function(){i.teardown()}}}(hn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){if(Array.isArray(e))for(var i=0,r=e.length;i<r;i++)this.$on(e[i],n);else(this._events[e]||(this._events[e]=[])).push(n),t.test(e)&&(this._hasHookEvent=!0);return this},e.prototype.$once=function(e,t){var n=this;function i(){n.$off(e,i),t.apply(n,arguments)}return i.fn=t,n.$on(e,i),n},e.prototype.$off=function(e,t){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(e)){for(var i=0,r=e.length;i<r;i++)this.$off(e[i],t);return n}var a=n._events[e];if(!a)return n;if(!t)return n._events[e]=null,n;if(t)for(var o,s=a.length;s--;)if((o=a[s])===t||o.fn===t){a.splice(s,1);break}return n},e.prototype.$emit=function(e){var t=this,n=t._events[e];if(n){n=n.length>1?T(n):n;for(var i=T(arguments,1),r=0,a=n.length;r<a;r++)try{n[r].apply(t,i)}catch(n){Ge(n,t,'event handler for "'+e+'"')}}return t}}(hn),function(e){e.prototype._update=function(e,t){var n=this;n._isMounted&&St(n,"beforeUpdate");var i=n.$el,r=n._vnode,a=_t;_t=n,n._vnode=e,r?n.$el=n.__patch__(r,e):(n.$el=n.__patch__(n.$el,e,t,!1,n.$options._parentElm,n.$options._refElm),n.$options._parentElm=n.$options._refElm=null),_t=a,i&&(i.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},e.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},e.prototype.$destroy=function(){var e=this;if(!e._isBeingDestroyed){St(e,"beforeDestroy"),e._isBeingDestroyed=!0;var t=e.$parent;!t||t._isBeingDestroyed||e.$options.abstract||v(t.$children,e),e._watcher&&e._watcher.teardown();for(var n=e._watchers.length;n--;)e._watchers[n].teardown();e._data.__ob__&&e._data.__ob__.vmCount--,e._isDestroyed=!0,e.__patch__(e._vnode,null),St(e,"destroyed"),e.$off(),e.$el&&(e.$el.__vue__=null),e.$vnode&&(e.$vnode.parent=null)}}}(hn),function(e){Jt(e.prototype),e.prototype.$nextTick=function(e){return et(e,this)},e.prototype._render=function(){var e,t=this,i=t.$options,r=i.render,a=i._parentVnode;a&&(t.$scopedSlots=a.data.scopedSlots||n),t.$vnode=a;try{e=r.call(t._renderProxy,t.$createElement)}catch(n){Ge(n,t,"render"),e=t._vnode}return e instanceof fe||(e=me()),e.parent=a,e}}(hn);var yn=[String,RegExp,Array],bn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:yn,exclude:yn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)vn(this.cache,e,this.keys)},mounted:function(){var e=this;this.$watch("include",function(t){gn(e,function(e){return mn(t,e)})}),this.$watch("exclude",function(t){gn(e,function(e){return!mn(t,e)})})},render:function(){var e=this.$slots.default,t=ft(e),n=t&&t.componentOptions;if(n){var i=pn(n),r=this.include,a=this.exclude;if(r&&(!i||!mn(r,i))||a&&i&&mn(a,i))return t;var o=this.cache,s=this.keys,l=null==t.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):t.key;o[l]?(t.componentInstance=o[l].componentInstance,v(s,l),s.push(l)):(o[l]=t,s.push(l),this.max&&s.length>parseInt(this.max)&&vn(o,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return z}};Object.defineProperty(e,"config",t),e.util={warn:se,extend:A,mergeOptions:Ne,defineReactive:Te},e.set=Ae,e.delete=Ie,e.nextTick=et,e.options=Object.create(null),B.forEach(function(t){e.options[t+"s"]=Object.create(null)}),e.options._base=e,A(e.options.components,bn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=T(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Ne(this.options,e),this}}(e),fn(e),function(e){B.forEach(function(t){e[t]=function(e,n){return n?("component"===t&&u(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(e)}(hn),Object.defineProperty(hn.prototype,"$isServer",{get:ne}),Object.defineProperty(hn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(hn,"FunctionalRenderContext",{value:Qt}),hn.version="2.5.17";var _n=p("style,class"),xn=p("input,textarea,option,select,progress"),wn=function(e,t,n){return"value"===n&&xn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Sn=p("contenteditable,draggable,spellcheck"),Cn=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Mn="http://www.w3.org/1999/xlink",kn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Tn=function(e){return kn(e)?e.slice(6,e.length):""},An=function(e){return null==e||!1===e};function In(e){for(var t=e.data,n=e,i=e;r(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=En(i.data,t));for(;r(n=n.parent);)n&&n.data&&(t=En(t,n.data));return function(e,t){if(r(e)||r(t))return Dn(e,On(t));return""}(t.staticClass,t.class)}function En(e,t){return{staticClass:Dn(e.staticClass,t.staticClass),class:r(e.class)?[e.class,t.class]:t.class}}function Dn(e,t){return e?t?e+" "+t:e:t||""}function On(e){return Array.isArray(e)?function(e){for(var t,n="",i=0,a=e.length;i<a;i++)r(t=On(e[i]))&&""!==t&&(n&&(n+=" "),n+=t);return n}(e):s(e)?function(e){var t="";for(var n in e)e[n]&&(t&&(t+=" "),t+=n);return t}(e):"string"==typeof e?e:""}var Pn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Ln=p("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Rn=p("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Nn=function(e){return Ln(e)||Rn(e)};function Bn(e){return Rn(e)?"svg":"math"===e?"math":void 0}var Fn=Object.create(null);var zn=p("text,number,password,search,email,tel,url");function Vn(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}var $n=Object.freeze({createElement:function(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&void 0!==t.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(e,t){return document.createElementNS(Pn[e],t)},createTextNode:function(e){return document.createTextNode(e)},createComment:function(e){return document.createComment(e)},insertBefore:function(e,t,n){e.insertBefore(t,n)},removeChild:function(e,t){e.removeChild(t)},appendChild:function(e,t){e.appendChild(t)},parentNode:function(e){return e.parentNode},nextSibling:function(e){return e.nextSibling},tagName:function(e){return e.tagName},setTextContent:function(e,t){e.textContent=t},setStyleScope:function(e,t){e.setAttribute(t,"")}}),Gn={create:function(e,t){jn(t)},update:function(e,t){e.data.ref!==t.data.ref&&(jn(e,!0),jn(t))},destroy:function(e){jn(e,!0)}};function jn(e,t){var n=e.data.ref;if(r(n)){var i=e.context,a=e.componentInstance||e.elm,o=i.$refs;t?Array.isArray(o[n])?v(o[n],a):o[n]===a&&(o[n]=void 0):e.data.refInFor?Array.isArray(o[n])?o[n].indexOf(a)<0&&o[n].push(a):o[n]=[a]:o[n]=a}}var Hn=new fe("",{},[]),Wn=["create","activate","update","remove","destroy"];function Un(e,t){return e.key===t.key&&(e.tag===t.tag&&e.isComment===t.isComment&&r(e.data)===r(t.data)&&function(e,t){if("input"!==e.tag)return!0;var n,i=r(n=e.data)&&r(n=n.attrs)&&n.type,a=r(n=t.data)&&r(n=n.attrs)&&n.type;return i===a||zn(i)&&zn(a)}(e,t)||a(e.isAsyncPlaceholder)&&e.asyncFactory===t.asyncFactory&&i(t.asyncFactory.error))}function Kn(e,t,n){var i,a,o={};for(i=t;i<=n;++i)r(a=e[i].key)&&(o[a]=i);return o}var qn={create:Yn,update:Yn,destroy:function(e){Yn(e,Hn)}};function Yn(e,t){(e.data.directives||t.data.directives)&&function(e,t){var n,i,r,a=e===Hn,o=t===Hn,s=Xn(e.data.directives,e.context),l=Xn(t.data.directives,t.context),u=[],c=[];for(n in l)i=s[n],r=l[n],i?(r.oldValue=i.value,Qn(r,"update",t,e),r.def&&r.def.componentUpdated&&c.push(r)):(Qn(r,"bind",t,e),r.def&&r.def.inserted&&u.push(r));if(u.length){var d=function(){for(var n=0;n<u.length;n++)Qn(u[n],"inserted",t,e)};a?st(t,"insert",d):d()}c.length&&st(t,"postpatch",function(){for(var n=0;n<c.length;n++)Qn(c[n],"componentUpdated",t,e)});if(!a)for(n in s)l[n]||Qn(s[n],"unbind",e,e,o)}(e,t)}var Zn=Object.create(null);function Xn(e,t){var n,i,r=Object.create(null);if(!e)return r;for(n=0;n<e.length;n++)(i=e[n]).modifiers||(i.modifiers=Zn),r[Jn(i)]=i,i.def=Be(t.$options,"directives",i.name);return r}function Jn(e){return e.rawName||e.name+"."+Object.keys(e.modifiers||{}).join(".")}function Qn(e,t,n,i,r){var a=e.def&&e.def[t];if(a)try{a(n.elm,e,n,i,r)}catch(i){Ge(i,n.context,"directive "+e.name+" "+t+" hook")}}var ei=[Gn,qn];function ti(e,t){var n=t.componentOptions;if(!(r(n)&&!1===n.Ctor.options.inheritAttrs||i(e.data.attrs)&&i(t.data.attrs))){var a,o,s=t.elm,l=e.data.attrs||{},u=t.data.attrs||{};for(a in r(u.__ob__)&&(u=t.data.attrs=A({},u)),u)o=u[a],l[a]!==o&&ni(s,a,o);for(a in(Y||X)&&u.value!==l.value&&ni(s,"value",u.value),l)i(u[a])&&(kn(a)?s.removeAttributeNS(Mn,Tn(a)):Sn(a)||s.removeAttribute(a))}}function ni(e,t,n){e.tagName.indexOf("-")>-1?ii(e,t,n):Cn(t)?An(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Sn(t)?e.setAttribute(t,An(n)||"false"===n?"false":"true"):kn(t)?An(n)?e.removeAttributeNS(Mn,Tn(t)):e.setAttributeNS(Mn,t,n):ii(e,t,n)}function ii(e,t,n){if(An(n))e.removeAttribute(t);else{if(Y&&!Z&&"TEXTAREA"===e.tagName&&"placeholder"===t&&!e.__ieph){var i=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",i)};e.addEventListener("input",i),e.__ieph=!0}e.setAttribute(t,n)}}var ri={create:ti,update:ti};function ai(e,t){var n=t.elm,a=t.data,o=e.data;if(!(i(a.staticClass)&&i(a.class)&&(i(o)||i(o.staticClass)&&i(o.class)))){var s=In(t),l=n._transitionClasses;r(l)&&(s=Dn(s,On(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var oi,si,li,ui,ci,di,hi={create:ai,update:ai},fi=/[\w).+\-_$\]]/;function pi(e){var t,n,i,r,a,o=!1,s=!1,l=!1,u=!1,c=0,d=0,h=0,f=0;for(i=0;i<e.length;i++)if(n=t,t=e.charCodeAt(i),o)39===t&&92!==n&&(o=!1);else if(s)34===t&&92!==n&&(s=!1);else if(l)96===t&&92!==n&&(l=!1);else if(u)47===t&&92!==n&&(u=!1);else if(124!==t||124===e.charCodeAt(i+1)||124===e.charCodeAt(i-1)||c||d||h){switch(t){case 34:s=!0;break;case 39:o=!0;break;case 96:l=!0;break;case 40:h++;break;case 41:h--;break;case 91:d++;break;case 93:d--;break;case 123:c++;break;case 125:c--}if(47===t){for(var p=i-1,m=void 0;p>=0&&" "===(m=e.charAt(p));p--);m&&fi.test(m)||(u=!0)}}else void 0===r?(f=i+1,r=e.slice(0,i).trim()):g();function g(){(a||(a=[])).push(e.slice(f,i).trim()),f=i+1}if(void 0===r?r=e.slice(0,i).trim():0!==f&&g(),a)for(i=0;i<a.length;i++)r=mi(r,a[i]);return r}function mi(e,t){var n=t.indexOf("(");if(n<0)return'_f("'+t+'")('+e+")";var i=t.slice(0,n),r=t.slice(n+1);return'_f("'+i+'")('+e+(")"!==r?","+r:r)}function gi(e){console.error("[Vue compiler]: "+e)}function vi(e,t){return e?e.map(function(e){return e[t]}).filter(function(e){return e}):[]}function yi(e,t,n){(e.props||(e.props=[])).push({name:t,value:n}),e.plain=!1}function bi(e,t,n){(e.attrs||(e.attrs=[])).push({name:t,value:n}),e.plain=!1}function _i(e,t,n){e.attrsMap[t]=n,e.attrsList.push({name:t,value:n})}function xi(e,t,n,i,r,a){(e.directives||(e.directives=[])).push({name:t,rawName:n,value:i,arg:r,modifiers:a}),e.plain=!1}function wi(e,t,i,r,a,o){var s;(r=r||n).capture&&(delete r.capture,t="!"+t),r.once&&(delete r.once,t="~"+t),r.passive&&(delete r.passive,t="&"+t),"click"===t&&(r.right?(t="contextmenu",delete r.right):r.middle&&(t="mouseup")),r.native?(delete r.native,s=e.nativeEvents||(e.nativeEvents={})):s=e.events||(e.events={});var l={value:i.trim()};r!==n&&(l.modifiers=r);var u=s[t];Array.isArray(u)?a?u.unshift(l):u.push(l):s[t]=u?a?[l,u]:[u,l]:l,e.plain=!1}function Si(e,t,n){var i=Ci(e,":"+t)||Ci(e,"v-bind:"+t);if(null!=i)return pi(i);if(!1!==n){var r=Ci(e,t);if(null!=r)return JSON.stringify(r)}}function Ci(e,t,n){var i;if(null!=(i=e.attrsMap[t]))for(var r=e.attrsList,a=0,o=r.length;a<o;a++)if(r[a].name===t){r.splice(a,1);break}return n&&delete e.attrsMap[t],i}function Mi(e,t,n){var i=n||{},r=i.number,a="$$v";i.trim&&(a="(typeof $$v === 'string'? $$v.trim(): $$v)"),r&&(a="_n("+a+")");var o=ki(t,a);e.model={value:"("+t+")",expression:'"'+t+'"',callback:"function ($$v) {"+o+"}"}}function ki(e,t){var n=function(e){if(e=e.trim(),oi=e.length,e.indexOf("[")<0||e.lastIndexOf("]")<oi-1)return(ui=e.lastIndexOf("."))>-1?{exp:e.slice(0,ui),key:'"'+e.slice(ui+1)+'"'}:{exp:e,key:null};si=e,ui=ci=di=0;for(;!Ai();)Ii(li=Ti())?Di(li):91===li&&Ei(li);return{exp:e.slice(0,ci),key:e.slice(ci+1,di)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function Ti(){return si.charCodeAt(++ui)}function Ai(){return ui>=oi}function Ii(e){return 34===e||39===e}function Ei(e){var t=1;for(ci=ui;!Ai();)if(Ii(e=Ti()))Di(e);else if(91===e&&t++,93===e&&t--,0===t){di=ui;break}}function Di(e){for(var t=e;!Ai()&&(e=Ti())!==t;);}var Oi,Pi="__r",Li="__c";function Ri(e,t,n,i,r){var a;t=(a=t)._withTask||(a._withTask=function(){Ze=!0;var e=a.apply(null,arguments);return Ze=!1,e}),n&&(t=function(e,t,n){var i=Oi;return function r(){null!==e.apply(null,arguments)&&Ni(t,r,n,i)}}(t,e,i)),Oi.addEventListener(e,t,ee?{capture:i,passive:r}:i)}function Ni(e,t,n,i){(i||Oi).removeEventListener(e,t._withTask||t,n)}function Bi(e,t){if(!i(e.data.on)||!i(t.data.on)){var n=t.data.on||{},a=e.data.on||{};Oi=t.elm,function(e){if(r(e[Pi])){var t=Y?"change":"input";e[t]=[].concat(e[Pi],e[t]||[]),delete e[Pi]}r(e[Li])&&(e.change=[].concat(e[Li],e.change||[]),delete e[Li])}(n),ot(n,a,Ri,Ni,t.context),Oi=void 0}}var Fi={create:Bi,update:Bi};function zi(e,t){if(!i(e.data.domProps)||!i(t.data.domProps)){var n,a,o=t.elm,s=e.data.domProps||{},l=t.data.domProps||{};for(n in r(l.__ob__)&&(l=t.data.domProps=A({},l)),s)i(l[n])&&(o[n]="");for(n in l){if(a=l[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),a===s[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n){o._value=a;var u=i(a)?"":String(a);Vi(o,u)&&(o.value=u)}else o[n]=a}}}function Vi(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,i=e._vModifiers;if(r(i)){if(i.lazy)return!1;if(i.number)return f(n)!==f(t);if(i.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var $i={create:zi,update:zi},Gi=_(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach(function(e){if(e){var i=e.split(n);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t});function ji(e){var t=Hi(e.style);return e.staticStyle?A(e.staticStyle,t):t}function Hi(e){return Array.isArray(e)?I(e):"string"==typeof e?Gi(e):e}var Wi,Ui=/^--/,Ki=/\s*!important$/,qi=function(e,t,n){if(Ui.test(t))e.style.setProperty(t,n);else if(Ki.test(n))e.style.setProperty(t,n.replace(Ki,""),"important");else{var i=Zi(t);if(Array.isArray(n))for(var r=0,a=n.length;r<a;r++)e.style[i]=n[r];else e.style[i]=n}},Yi=["Webkit","Moz","ms"],Zi=_(function(e){if(Wi=Wi||document.createElement("div").style,"filter"!==(e=w(e))&&e in Wi)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<Yi.length;n++){var i=Yi[n]+t;if(i in Wi)return i}});function Xi(e,t){var n=t.data,a=e.data;if(!(i(n.staticStyle)&&i(n.style)&&i(a.staticStyle)&&i(a.style))){var o,s,l=t.elm,u=a.staticStyle,c=a.normalizedStyle||a.style||{},d=u||c,h=Hi(t.data.style)||{};t.data.normalizedStyle=r(h.__ob__)?A({},h):h;var f=function(e,t){var n,i={};if(t)for(var r=e;r.componentInstance;)(r=r.componentInstance._vnode)&&r.data&&(n=ji(r.data))&&A(i,n);(n=ji(e.data))&&A(i,n);for(var a=e;a=a.parent;)a.data&&(n=ji(a.data))&&A(i,n);return i}(t,!0);for(s in d)i(f[s])&&qi(l,s,"");for(s in f)(o=f[s])!==d[s]&&qi(l,s,null==o?"":o)}}var Ji={create:Xi,update:Xi};function Qi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function er(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",i=" "+t+" ";n.indexOf(i)>=0;)n=n.replace(i," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function tr(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&A(t,nr(e.name||"v")),A(t,e),t}return"string"==typeof e?nr(e):void 0}}var nr=_(function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}}),ir=W&&!Z,rr="transition",ar="animation",or="transition",sr="transitionend",lr="animation",ur="animationend";ir&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(or="WebkitTransition",sr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(lr="WebkitAnimation",ur="webkitAnimationEnd"));var cr=W?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function dr(e){cr(function(){cr(e)})}function hr(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Qi(e,t))}function fr(e,t){e._transitionClasses&&v(e._transitionClasses,t),er(e,t)}function pr(e,t,n){var i=gr(e,t),r=i.type,a=i.timeout,o=i.propCount;if(!r)return n();var s=r===rr?sr:ur,l=0,u=function(){e.removeEventListener(s,c),n()},c=function(t){t.target===e&&++l>=o&&u()};setTimeout(function(){l<o&&u()},a+1),e.addEventListener(s,c)}var mr=/\b(transform|all)(,|$)/;function gr(e,t){var n,i=window.getComputedStyle(e),r=i[or+"Delay"].split(", "),a=i[or+"Duration"].split(", "),o=vr(r,a),s=i[lr+"Delay"].split(", "),l=i[lr+"Duration"].split(", "),u=vr(s,l),c=0,d=0;return t===rr?o>0&&(n=rr,c=o,d=a.length):t===ar?u>0&&(n=ar,c=u,d=l.length):d=(n=(c=Math.max(o,u))>0?o>u?rr:ar:null)?n===rr?a.length:l.length:0,{type:n,timeout:c,propCount:d,hasTransform:n===rr&&mr.test(i[or+"Property"])}}function vr(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max.apply(null,t.map(function(t,n){return yr(t)+yr(e[n])}))}function yr(e){return 1e3*Number(e.slice(0,-1))}function br(e,t){var n=e.elm;r(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var a=tr(e.data.transition);if(!i(a)&&!r(n._enterCb)&&1===n.nodeType){for(var o=a.css,l=a.type,u=a.enterClass,c=a.enterToClass,d=a.enterActiveClass,h=a.appearClass,p=a.appearToClass,m=a.appearActiveClass,g=a.beforeEnter,v=a.enter,y=a.afterEnter,b=a.enterCancelled,_=a.beforeAppear,x=a.appear,w=a.afterAppear,S=a.appearCancelled,C=a.duration,M=_t,k=_t.$vnode;k&&k.parent;)M=(k=k.parent).context;var T=!M._isMounted||!e.isRootInsert;if(!T||x||""===x){var A=T&&h?h:u,I=T&&m?m:d,E=T&&p?p:c,D=T&&_||g,O=T&&"function"==typeof x?x:v,P=T&&w||y,L=T&&S||b,N=f(s(C)?C.enter:C);0;var B=!1!==o&&!Z,F=wr(O),z=n._enterCb=R(function(){B&&(fr(n,E),fr(n,I)),z.cancelled?(B&&fr(n,A),L&&L(n)):P&&P(n),n._enterCb=null});e.data.show||st(e,"insert",function(){var t=n.parentNode,i=t&&t._pending&&t._pending[e.key];i&&i.tag===e.tag&&i.elm._leaveCb&&i.elm._leaveCb(),O&&O(n,z)}),D&&D(n),B&&(hr(n,A),hr(n,I),dr(function(){fr(n,A),z.cancelled||(hr(n,E),F||(xr(N)?setTimeout(z,N):pr(n,l,z)))})),e.data.show&&(t&&t(),O&&O(n,z)),B||F||z()}}}function _r(e,t){var n=e.elm;r(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var a=tr(e.data.transition);if(i(a)||1!==n.nodeType)return t();if(!r(n._leaveCb)){var o=a.css,l=a.type,u=a.leaveClass,c=a.leaveToClass,d=a.leaveActiveClass,h=a.beforeLeave,p=a.leave,m=a.afterLeave,g=a.leaveCancelled,v=a.delayLeave,y=a.duration,b=!1!==o&&!Z,_=wr(p),x=f(s(y)?y.leave:y);0;var w=n._leaveCb=R(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[e.key]=null),b&&(fr(n,c),fr(n,d)),w.cancelled?(b&&fr(n,u),g&&g(n)):(t(),m&&m(n)),n._leaveCb=null});v?v(S):S()}function S(){w.cancelled||(e.data.show||((n.parentNode._pending||(n.parentNode._pending={}))[e.key]=e),h&&h(n),b&&(hr(n,u),hr(n,d),dr(function(){fr(n,u),w.cancelled||(hr(n,c),_||(xr(x)?setTimeout(w,x):pr(n,l,w)))})),p&&p(n,w),b||_||w())}}function xr(e){return"number"==typeof e&&!isNaN(e)}function wr(e){if(i(e))return!1;var t=e.fns;return r(t)?wr(Array.isArray(t)?t[0]:t):(e._length||e.length)>1}function Sr(e,t){!0!==t.data.show&&br(t)}var Cr=function(e){var t,n,s={},l=e.modules,u=e.nodeOps;for(t=0;t<Wn.length;++t)for(s[Wn[t]]=[],n=0;n<l.length;++n)r(l[n][Wn[t]])&&s[Wn[t]].push(l[n][Wn[t]]);function c(e){var t=u.parentNode(e);r(t)&&u.removeChild(t,e)}function d(e,t,n,i,o,l,c){if(r(e.elm)&&r(l)&&(e=l[c]=ve(e)),e.isRootInsert=!o,!function(e,t,n,i){var o=e.data;if(r(o)){var l=r(e.componentInstance)&&o.keepAlive;if(r(o=o.hook)&&r(o=o.init)&&o(e,!1,n,i),r(e.componentInstance))return h(e,t),a(l)&&function(e,t,n,i){for(var a,o=e;o.componentInstance;)if(o=o.componentInstance._vnode,r(a=o.data)&&r(a=a.transition)){for(a=0;a<s.activate.length;++a)s.activate[a](Hn,o);t.push(o);break}f(n,e.elm,i)}(e,t,n,i),!0}}(e,t,n,i)){var d=e.data,p=e.children,g=e.tag;r(g)?(e.elm=e.ns?u.createElementNS(e.ns,g):u.createElement(g,e),y(e),m(e,p,t),r(d)&&v(e,t),f(n,e.elm,i)):a(e.isComment)?(e.elm=u.createComment(e.text),f(n,e.elm,i)):(e.elm=u.createTextNode(e.text),f(n,e.elm,i))}}function h(e,t){r(e.data.pendingInsert)&&(t.push.apply(t,e.data.pendingInsert),e.data.pendingInsert=null),e.elm=e.componentInstance.$el,g(e)?(v(e,t),y(e)):(jn(e),t.push(e))}function f(e,t,n){r(e)&&(r(n)?n.parentNode===e&&u.insertBefore(e,t,n):u.appendChild(e,t))}function m(e,t,n){if(Array.isArray(t))for(var i=0;i<t.length;++i)d(t[i],n,e.elm,null,!0,t,i);else o(e.text)&&u.appendChild(e.elm,u.createTextNode(String(e.text)))}function g(e){for(;e.componentInstance;)e=e.componentInstance._vnode;return r(e.tag)}function v(e,n){for(var i=0;i<s.create.length;++i)s.create[i](Hn,e);r(t=e.data.hook)&&(r(t.create)&&t.create(Hn,e),r(t.insert)&&n.push(e))}function y(e){var t;if(r(t=e.fnScopeId))u.setStyleScope(e.elm,t);else for(var n=e;n;)r(t=n.context)&&r(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t),n=n.parent;r(t=_t)&&t!==e.context&&t!==e.fnContext&&r(t=t.$options._scopeId)&&u.setStyleScope(e.elm,t)}function b(e,t,n,i,r,a){for(;i<=r;++i)d(n[i],a,e,t,!1,n,i)}function _(e){var t,n,i=e.data;if(r(i))for(r(t=i.hook)&&r(t=t.destroy)&&t(e),t=0;t<s.destroy.length;++t)s.destroy[t](e);if(r(t=e.children))for(n=0;n<e.children.length;++n)_(e.children[n])}function x(e,t,n,i){for(;n<=i;++n){var a=t[n];r(a)&&(r(a.tag)?(w(a),_(a)):c(a.elm))}}function w(e,t){if(r(t)||r(e.data)){var n,i=s.remove.length+1;for(r(t)?t.listeners+=i:t=function(e,t){function n(){0==--n.listeners&&c(e)}return n.listeners=t,n}(e.elm,i),r(n=e.componentInstance)&&r(n=n._vnode)&&r(n.data)&&w(n,t),n=0;n<s.remove.length;++n)s.remove[n](e,t);r(n=e.data.hook)&&r(n=n.remove)?n(e,t):t()}else c(e.elm)}function S(e,t,n,i){for(var a=n;a<i;a++){var o=t[a];if(r(o)&&Un(e,o))return a}}function C(e,t,n,o){if(e!==t){var l=t.elm=e.elm;if(a(e.isAsyncPlaceholder))r(t.asyncFactory.resolved)?T(e.elm,t,n):t.isAsyncPlaceholder=!0;else if(a(t.isStatic)&&a(e.isStatic)&&t.key===e.key&&(a(t.isCloned)||a(t.isOnce)))t.componentInstance=e.componentInstance;else{var c,h=t.data;r(h)&&r(c=h.hook)&&r(c=c.prepatch)&&c(e,t);var f=e.children,p=t.children;if(r(h)&&g(t)){for(c=0;c<s.update.length;++c)s.update[c](e,t);r(c=h.hook)&&r(c=c.update)&&c(e,t)}i(t.text)?r(f)&&r(p)?f!==p&&function(e,t,n,a,o){for(var s,l,c,h=0,f=0,p=t.length-1,m=t[0],g=t[p],v=n.length-1,y=n[0],_=n[v],w=!o;h<=p&&f<=v;)i(m)?m=t[++h]:i(g)?g=t[--p]:Un(m,y)?(C(m,y,a),m=t[++h],y=n[++f]):Un(g,_)?(C(g,_,a),g=t[--p],_=n[--v]):Un(m,_)?(C(m,_,a),w&&u.insertBefore(e,m.elm,u.nextSibling(g.elm)),m=t[++h],_=n[--v]):Un(g,y)?(C(g,y,a),w&&u.insertBefore(e,g.elm,m.elm),g=t[--p],y=n[++f]):(i(s)&&(s=Kn(t,h,p)),i(l=r(y.key)?s[y.key]:S(y,t,h,p))?d(y,a,e,m.elm,!1,n,f):Un(c=t[l],y)?(C(c,y,a),t[l]=void 0,w&&u.insertBefore(e,c.elm,m.elm)):d(y,a,e,m.elm,!1,n,f),y=n[++f]);h>p?b(e,i(n[v+1])?null:n[v+1].elm,n,f,v,a):f>v&&x(0,t,h,p)}(l,f,p,n,o):r(p)?(r(e.text)&&u.setTextContent(l,""),b(l,null,p,0,p.length-1,n)):r(f)?x(0,f,0,f.length-1):r(e.text)&&u.setTextContent(l,""):e.text!==t.text&&u.setTextContent(l,t.text),r(h)&&r(c=h.hook)&&r(c=c.postpatch)&&c(e,t)}}}function M(e,t,n){if(a(n)&&r(e.parent))e.parent.data.pendingInsert=t;else for(var i=0;i<t.length;++i)t[i].data.hook.insert(t[i])}var k=p("attrs,class,staticClass,staticStyle,key");function T(e,t,n,i){var o,s=t.tag,l=t.data,u=t.children;if(i=i||l&&l.pre,t.elm=e,a(t.isComment)&&r(t.asyncFactory))return t.isAsyncPlaceholder=!0,!0;if(r(l)&&(r(o=l.hook)&&r(o=o.init)&&o(t,!0),r(o=t.componentInstance)))return h(t,n),!0;if(r(s)){if(r(u))if(e.hasChildNodes())if(r(o=l)&&r(o=o.domProps)&&r(o=o.innerHTML)){if(o!==e.innerHTML)return!1}else{for(var c=!0,d=e.firstChild,f=0;f<u.length;f++){if(!d||!T(d,u[f],n,i)){c=!1;break}d=d.nextSibling}if(!c||d)return!1}else m(t,u,n);if(r(l)){var p=!1;for(var g in l)if(!k(g)){p=!0,v(t,n);break}!p&&l.class&&nt(l.class)}}else e.data!==t.text&&(e.data=t.text);return!0}return function(e,t,n,o,l,c){if(!i(t)){var h,f=!1,p=[];if(i(e))f=!0,d(t,p,l,c);else{var m=r(e.nodeType);if(!m&&Un(e,t))C(e,t,p,o);else{if(m){if(1===e.nodeType&&e.hasAttribute(N)&&(e.removeAttribute(N),n=!0),a(n)&&T(e,t,p))return M(t,p,!0),e;h=e,e=new fe(u.tagName(h).toLowerCase(),{},[],void 0,h)}var v=e.elm,y=u.parentNode(v);if(d(t,p,v._leaveCb?null:y,u.nextSibling(v)),r(t.parent))for(var b=t.parent,w=g(t);b;){for(var S=0;S<s.destroy.length;++S)s.destroy[S](b);if(b.elm=t.elm,w){for(var k=0;k<s.create.length;++k)s.create[k](Hn,b);var A=b.data.hook.insert;if(A.merged)for(var I=1;I<A.fns.length;I++)A.fns[I]()}else jn(b);b=b.parent}r(y)?x(0,[e],0,0):r(e.tag)&&_(e)}}return M(t,p,f),t.elm}r(e)&&_(e)}}({nodeOps:$n,modules:[ri,hi,Fi,$i,Ji,W?{create:Sr,activate:Sr,remove:function(e,t){!0!==e.data.show?_r(e,t):t()}}:{}].concat(ei)});Z&&document.addEventListener("selectionchange",function(){var e=document.activeElement;e&&e.vmodel&&Or(e,"input")});var Mr={inserted:function(e,t,n,i){"select"===n.tag?(i.elm&&!i.elm._vOptions?st(n,"postpatch",function(){Mr.componentUpdated(e,t,n)}):kr(e,t,n.context),e._vOptions=[].map.call(e.options,Ir)):("textarea"===n.tag||zn(e.type))&&(e._vModifiers=t.modifiers,t.modifiers.lazy||(e.addEventListener("compositionstart",Er),e.addEventListener("compositionend",Dr),e.addEventListener("change",Dr),Z&&(e.vmodel=!0)))},componentUpdated:function(e,t,n){if("select"===n.tag){kr(e,t,n.context);var i=e._vOptions,r=e._vOptions=[].map.call(e.options,Ir);if(r.some(function(e,t){return!P(e,i[t])}))(e.multiple?t.value.some(function(e){return Ar(e,r)}):t.value!==t.oldValue&&Ar(t.value,r))&&Or(e,"change")}}};function kr(e,t,n){Tr(e,t,n),(Y||X)&&setTimeout(function(){Tr(e,t,n)},0)}function Tr(e,t,n){var i=t.value,r=e.multiple;if(!r||Array.isArray(i)){for(var a,o,s=0,l=e.options.length;s<l;s++)if(o=e.options[s],r)a=L(i,Ir(o))>-1,o.selected!==a&&(o.selected=a);else if(P(Ir(o),i))return void(e.selectedIndex!==s&&(e.selectedIndex=s));r||(e.selectedIndex=-1)}}function Ar(e,t){return t.every(function(t){return!P(t,e)})}function Ir(e){return"_value"in e?e._value:e.value}function Er(e){e.target.composing=!0}function Dr(e){e.target.composing&&(e.target.composing=!1,Or(e.target,"input"))}function Or(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Pr(e){return!e.componentInstance||e.data&&e.data.transition?e:Pr(e.componentInstance._vnode)}var Lr={model:Mr,show:{bind:function(e,t,n){var i=t.value,r=(n=Pr(n)).data&&n.data.transition,a=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;i&&r?(n.data.show=!0,br(n,function(){e.style.display=a})):e.style.display=i?a:"none"},update:function(e,t,n){var i=t.value;!i!=!t.oldValue&&((n=Pr(n)).data&&n.data.transition?(n.data.show=!0,i?br(n,function(){e.style.display=e.__vOriginalDisplay}):_r(n,function(){e.style.display="none"})):e.style.display=i?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,i,r){r||(e.style.display=e.__vOriginalDisplay)}}},Rr={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Nr(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Nr(ft(t.children)):e}function Br(e){var t={},n=e.$options;for(var i in n.propsData)t[i]=e[i];var r=n._parentListeners;for(var a in r)t[w(a)]=r[a];return t}function Fr(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var zr={name:"transition",props:Rr,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(function(e){return e.tag||ht(e)})).length){0;var i=this.mode;0;var r=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return r;var a=Nr(r);if(!a)return r;if(this._leaving)return Fr(e,r);var s="__transition-"+this._uid+"-";a.key=null==a.key?a.isComment?s+"comment":s+a.tag:o(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var l=(a.data||(a.data={})).transition=Br(this),u=this._vnode,c=Nr(u);if(a.data.directives&&a.data.directives.some(function(e){return"show"===e.name})&&(a.data.show=!0),c&&c.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(a,c)&&!ht(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var d=c.data.transition=A({},l);if("out-in"===i)return this._leaving=!0,st(d,"afterLeave",function(){t._leaving=!1,t.$forceUpdate()}),Fr(e,r);if("in-out"===i){if(ht(a))return u;var h,f=function(){h()};st(l,"afterEnter",f),st(l,"enterCancelled",f),st(d,"delayLeave",function(e){h=e})}}return r}}},Vr=A({tag:String,moveClass:String},Rr);function $r(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function Gr(e){e.data.newPos=e.elm.getBoundingClientRect()}function jr(e){var t=e.data.pos,n=e.data.newPos,i=t.left-n.left,r=t.top-n.top;if(i||r){e.data.moved=!0;var a=e.elm.style;a.transform=a.WebkitTransform="translate("+i+"px,"+r+"px)",a.transitionDuration="0s"}}delete Vr.mode;var Hr={Transition:zr,TransitionGroup:{props:Vr,render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),i=this.prevChildren=this.children,r=this.$slots.default||[],a=this.children=[],o=Br(this),s=0;s<r.length;s++){var l=r[s];if(l.tag)if(null!=l.key&&0!==String(l.key).indexOf("__vlist"))a.push(l),n[l.key]=l,(l.data||(l.data={})).transition=o;else;}if(i){for(var u=[],c=[],d=0;d<i.length;d++){var h=i[d];h.data.transition=o,h.data.pos=h.elm.getBoundingClientRect(),n[h.key]?u.push(h):c.push(h)}this.kept=e(t,null,u),this.removed=c}return e(t,null,a)},beforeUpdate:function(){this.__patch__(this._vnode,this.kept,!1,!0),this._vnode=this.kept},updated:function(){var e=this.prevChildren,t=this.moveClass||(this.name||"v")+"-move";e.length&&this.hasMove(e[0].elm,t)&&(e.forEach($r),e.forEach(Gr),e.forEach(jr),this._reflow=document.body.offsetHeight,e.forEach(function(e){if(e.data.moved){var n=e.elm,i=n.style;hr(n,t),i.transform=i.WebkitTransform=i.transitionDuration="",n.addEventListener(sr,n._moveCb=function e(i){i&&!/transform$/.test(i.propertyName)||(n.removeEventListener(sr,e),n._moveCb=null,fr(n,t))})}}))},methods:{hasMove:function(e,t){if(!ir)return!1;if(this._hasMove)return this._hasMove;var n=e.cloneNode();e._transitionClasses&&e._transitionClasses.forEach(function(e){er(n,e)}),Qi(n,t),n.style.display="none",this.$el.appendChild(n);var i=gr(n);return this.$el.removeChild(n),this._hasMove=i.hasTransform}}}};hn.config.mustUseProp=wn,hn.config.isReservedTag=Nn,hn.config.isReservedAttr=_n,hn.config.getTagNamespace=Bn,hn.config.isUnknownElement=function(e){if(!W)return!0;if(Nn(e))return!1;if(e=e.toLowerCase(),null!=Fn[e])return Fn[e];var t=document.createElement(e);return e.indexOf("-")>-1?Fn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Fn[e]=/HTMLUnknownElement/.test(t.toString())},A(hn.options.directives,Lr),A(hn.options.components,Hr),hn.prototype.__patch__=W?Cr:E,hn.prototype.$mount=function(e,t){return function(e,t,n){return e.$el=t,e.$options.render||(e.$options.render=me),St(e,"beforeMount"),new Ot(e,function(){e._update(e._render(),n)},E,null,!0),n=!1,null==e.$vnode&&(e._isMounted=!0,St(e,"mounted")),e}(this,e=e&&W?Vn(e):void 0,t)},W&&setTimeout(function(){z.devtools&&ie&&ie.emit("init",hn)},0);var Wr=/\{\{((?:.|\n)+?)\}\}/g,Ur=/[-.*+?^${}()|[\]\/\\]/g,Kr=_(function(e){var t=e[0].replace(Ur,"\\$&"),n=e[1].replace(Ur,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")});function qr(e,t){var n=t?Kr(t):Wr;if(n.test(e)){for(var i,r,a,o=[],s=[],l=n.lastIndex=0;i=n.exec(e);){(r=i.index)>l&&(s.push(a=e.slice(l,r)),o.push(JSON.stringify(a)));var u=pi(i[1].trim());o.push("_s("+u+")"),s.push({"@binding":u}),l=r+i[0].length}return l<e.length&&(s.push(a=e.slice(l)),o.push(JSON.stringify(a))),{expression:o.join("+"),tokens:s}}}var Yr={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Ci(e,"class");n&&(e.staticClass=JSON.stringify(n));var i=Si(e,"class",!1);i&&(e.classBinding=i)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var Zr,Xr={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Ci(e,"style");n&&(e.staticStyle=JSON.stringify(Gi(n)));var i=Si(e,"style",!1);i&&(e.styleBinding=i)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},Jr=function(e){return(Zr=Zr||document.createElement("div")).innerHTML=e,Zr.textContent},Qr=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),ea=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),ta=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),na=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,ia="[a-zA-Z_][\\w\\-\\.]*",ra="((?:"+ia+"\\:)?"+ia+")",aa=new RegExp("^<"+ra),oa=/^\s*(\/?)>/,sa=new RegExp("^<\\/"+ra+"[^>]*>"),la=/^<!DOCTYPE [^>]+>/i,ua=/^<!\--/,ca=/^<!\[/,da=!1;"x".replace(/x(.)?/g,function(e,t){da=""===t});var ha=p("script,style,textarea",!0),fa={},pa={"&lt;":"<","&gt;":">","&quot;":'"',"&amp;":"&","&#10;":"\n","&#9;":"\t"},ma=/&(?:lt|gt|quot|amp);/g,ga=/&(?:lt|gt|quot|amp|#10|#9);/g,va=p("pre,textarea",!0),ya=function(e,t){return e&&va(e)&&"\n"===t[0]};function ba(e,t){var n=t?ga:ma;return e.replace(n,function(e){return pa[e]})}var _a,xa,wa,Sa,Ca,Ma,ka,Ta,Aa=/^@|^v-on:/,Ia=/^v-|^@|^:/,Ea=/([^]*?)\s+(?:in|of)\s+([^]*)/,Da=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Oa=/^\(|\)$/g,Pa=/:(.*)$/,La=/^:|^v-bind:/,Ra=/\.[^.]+/g,Na=_(Jr);function Ba(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:function(e){for(var t={},n=0,i=e.length;n<i;n++)t[e[n].name]=e[n].value;return t}(t),parent:n,children:[]}}function Fa(e,t){_a=t.warn||gi,Ma=t.isPreTag||D,ka=t.mustUseProp||D,Ta=t.getTagNamespace||D,wa=vi(t.modules,"transformNode"),Sa=vi(t.modules,"preTransformNode"),Ca=vi(t.modules,"postTransformNode"),xa=t.delimiters;var n,i,r=[],a=!1!==t.preserveWhitespace,o=!1,s=!1;function l(e){e.pre&&(o=!1),Ma(e.tag)&&(s=!1);for(var n=0;n<Ca.length;n++)Ca[n](e,t)}return function(e,t){for(var n,i,r=[],a=t.expectHTML,o=t.isUnaryTag||D,s=t.canBeLeftOpenTag||D,l=0;e;){if(n=e,i&&ha(i)){var u=0,c=i.toLowerCase(),d=fa[c]||(fa[c]=new RegExp("([\\s\\S]*?)(</"+c+"[^>]*>)","i")),h=e.replace(d,function(e,n,i){return u=i.length,ha(c)||"noscript"===c||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),ya(c,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""});l+=e.length-h.length,e=h,k(c,l-u,l)}else{var f=e.indexOf("<");if(0===f){if(ua.test(e)){var p=e.indexOf("--\x3e");if(p>=0){t.shouldKeepComment&&t.comment(e.substring(4,p)),S(p+3);continue}}if(ca.test(e)){var m=e.indexOf("]>");if(m>=0){S(m+2);continue}}var g=e.match(la);if(g){S(g[0].length);continue}var v=e.match(sa);if(v){var y=l;S(v[0].length),k(v[1],y,l);continue}var b=C();if(b){M(b),ya(i,e)&&S(1);continue}}var _=void 0,x=void 0,w=void 0;if(f>=0){for(x=e.slice(f);!(sa.test(x)||aa.test(x)||ua.test(x)||ca.test(x)||(w=x.indexOf("<",1))<0);)f+=w,x=e.slice(f);_=e.substring(0,f),S(f)}f<0&&(_=e,e=""),t.chars&&_&&t.chars(_)}if(e===n){t.chars&&t.chars(e);break}}function S(t){l+=t,e=e.substring(t)}function C(){var t=e.match(aa);if(t){var n,i,r={tagName:t[1],attrs:[],start:l};for(S(t[0].length);!(n=e.match(oa))&&(i=e.match(na));)S(i[0].length),r.attrs.push(i);if(n)return r.unarySlash=n[1],S(n[0].length),r.end=l,r}}function M(e){var n=e.tagName,l=e.unarySlash;a&&("p"===i&&ta(n)&&k(i),s(n)&&i===n&&k(n));for(var u=o(n)||!!l,c=e.attrs.length,d=new Array(c),h=0;h<c;h++){var f=e.attrs[h];da&&-1===f[0].indexOf('""')&&(""===f[3]&&delete f[3],""===f[4]&&delete f[4],""===f[5]&&delete f[5]);var p=f[3]||f[4]||f[5]||"",m="a"===n&&"href"===f[1]?t.shouldDecodeNewlinesForHref:t.shouldDecodeNewlines;d[h]={name:f[1],value:ba(p,m)}}u||(r.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:d}),i=n),t.start&&t.start(n,d,u,e.start,e.end)}function k(e,n,a){var o,s;if(null==n&&(n=l),null==a&&(a=l),e&&(s=e.toLowerCase()),e)for(o=r.length-1;o>=0&&r[o].lowerCasedTag!==s;o--);else o=0;if(o>=0){for(var u=r.length-1;u>=o;u--)t.end&&t.end(r[u].tag,n,a);r.length=o,i=o&&r[o-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,a):"p"===s&&(t.start&&t.start(e,[],!1,n,a),t.end&&t.end(e,n,a))}k()}(e,{warn:_a,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,start:function(e,a,u){var c=i&&i.ns||Ta(e);Y&&"svg"===c&&(a=function(e){for(var t=[],n=0;n<e.length;n++){var i=e[n];ja.test(i.name)||(i.name=i.name.replace(Ha,""),t.push(i))}return t}(a));var d,h=Ba(e,a,i);c&&(h.ns=c),"style"!==(d=h).tag&&("script"!==d.tag||d.attrsMap.type&&"text/javascript"!==d.attrsMap.type)||ne()||(h.forbidden=!0);for(var f=0;f<Sa.length;f++)h=Sa[f](h,t)||h;function p(e){0}if(o||(!function(e){null!=Ci(e,"v-pre")&&(e.pre=!0)}(h),h.pre&&(o=!0)),Ma(h.tag)&&(s=!0),o?function(e){var t=e.attrsList.length;if(t)for(var n=e.attrs=new Array(t),i=0;i<t;i++)n[i]={name:e.attrsList[i].name,value:JSON.stringify(e.attrsList[i].value)};else e.pre||(e.plain=!0)}(h):h.processed||(Va(h),function(e){var t=Ci(e,"v-if");if(t)e.if=t,$a(e,{exp:t,block:e});else{null!=Ci(e,"v-else")&&(e.else=!0);var n=Ci(e,"v-else-if");n&&(e.elseif=n)}}(h),function(e){null!=Ci(e,"v-once")&&(e.once=!0)}(h),za(h,t)),n?r.length||n.if&&(h.elseif||h.else)&&(p(),$a(n,{exp:h.elseif,block:h})):(n=h,p()),i&&!h.forbidden)if(h.elseif||h.else)!function(e,t){var n=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(t.children);n&&n.if&&$a(n,{exp:e.elseif,block:e})}(h,i);else if(h.slotScope){i.plain=!1;var m=h.slotTarget||'"default"';(i.scopedSlots||(i.scopedSlots={}))[m]=h}else i.children.push(h),h.parent=i;u?l(h):(i=h,r.push(h))},end:function(){var e=r[r.length-1],t=e.children[e.children.length-1];t&&3===t.type&&" "===t.text&&!s&&e.children.pop(),r.length-=1,i=r[r.length-1],l(e)},chars:function(e){if(i&&(!Y||"textarea"!==i.tag||i.attrsMap.placeholder!==e)){var t,n,r=i.children;if(e=s||e.trim()?"script"===(t=i).tag||"style"===t.tag?e:Na(e):a&&r.length?" ":"")!o&&" "!==e&&(n=qr(e,xa))?r.push({type:2,expression:n.expression,tokens:n.tokens,text:e}):" "===e&&r.length&&" "===r[r.length-1].text||r.push({type:3,text:e})}},comment:function(e){i.children.push({type:3,text:e,isComment:!0})}}),n}function za(e,t){var n,i;(i=Si(n=e,"key"))&&(n.key=i),e.plain=!e.key&&!e.attrsList.length,function(e){var t=Si(e,"ref");t&&(e.ref=t,e.refInFor=function(e){var t=e;for(;t;){if(void 0!==t.for)return!0;t=t.parent}return!1}(e))}(e),function(e){if("slot"===e.tag)e.slotName=Si(e,"name");else{var t;"template"===e.tag?(t=Ci(e,"scope"),e.slotScope=t||Ci(e,"slot-scope")):(t=Ci(e,"slot-scope"))&&(e.slotScope=t);var n=Si(e,"slot");n&&(e.slotTarget='""'===n?'"default"':n,"template"===e.tag||e.slotScope||bi(e,"slot",n))}}(e),function(e){var t;(t=Si(e,"is"))&&(e.component=t);null!=Ci(e,"inline-template")&&(e.inlineTemplate=!0)}(e);for(var r=0;r<wa.length;r++)e=wa[r](e,t)||e;!function(e){var t,n,i,r,a,o,s,l=e.attrsList;for(t=0,n=l.length;t<n;t++){if(i=r=l[t].name,a=l[t].value,Ia.test(i))if(e.hasBindings=!0,(o=Ga(i))&&(i=i.replace(Ra,"")),La.test(i))i=i.replace(La,""),a=pi(a),s=!1,o&&(o.prop&&(s=!0,"innerHtml"===(i=w(i))&&(i="innerHTML")),o.camel&&(i=w(i)),o.sync&&wi(e,"update:"+w(i),ki(a,"$event"))),s||!e.component&&ka(e.tag,e.attrsMap.type,i)?yi(e,i,a):bi(e,i,a);else if(Aa.test(i))i=i.replace(Aa,""),wi(e,i,a,o,!1);else{var u=(i=i.replace(Ia,"")).match(Pa),c=u&&u[1];c&&(i=i.slice(0,-(c.length+1))),xi(e,i,r,a,c,o)}else bi(e,i,JSON.stringify(a)),!e.component&&"muted"===i&&ka(e.tag,e.attrsMap.type,i)&&yi(e,i,"true")}}(e)}function Va(e){var t;if(t=Ci(e,"v-for")){var n=function(e){var t=e.match(Ea);if(!t)return;var n={};n.for=t[2].trim();var i=t[1].trim().replace(Oa,""),r=i.match(Da);r?(n.alias=i.replace(Da,""),n.iterator1=r[1].trim(),r[2]&&(n.iterator2=r[2].trim())):n.alias=i;return n}(t);n&&A(e,n)}}function $a(e,t){e.ifConditions||(e.ifConditions=[]),e.ifConditions.push(t)}function Ga(e){var t=e.match(Ra);if(t){var n={};return t.forEach(function(e){n[e.slice(1)]=!0}),n}}var ja=/^xmlns:NS\d+/,Ha=/^NS\d+:/;function Wa(e){return Ba(e.tag,e.attrsList.slice(),e.parent)}var Ua=[Yr,Xr,{preTransformNode:function(e,t){if("input"===e.tag){var n,i=e.attrsMap;if(!i["v-model"])return;if((i[":type"]||i["v-bind:type"])&&(n=Si(e,"type")),i.type||n||!i["v-bind"]||(n="("+i["v-bind"]+").type"),n){var r=Ci(e,"v-if",!0),a=r?"&&("+r+")":"",o=null!=Ci(e,"v-else",!0),s=Ci(e,"v-else-if",!0),l=Wa(e);Va(l),_i(l,"type","checkbox"),za(l,t),l.processed=!0,l.if="("+n+")==='checkbox'"+a,$a(l,{exp:l.if,block:l});var u=Wa(e);Ci(u,"v-for",!0),_i(u,"type","radio"),za(u,t),$a(l,{exp:"("+n+")==='radio'"+a,block:u});var c=Wa(e);return Ci(c,"v-for",!0),_i(c,":type",n),za(c,t),$a(l,{exp:r,block:c}),o?l.else=!0:s&&(l.elseif=s),l}}}}];var Ka,qa,Ya={expectHTML:!0,modules:Ua,directives:{model:function(e,t,n){n;var i=t.value,r=t.modifiers,a=e.tag,o=e.attrsMap.type;if(e.component)return Mi(e,i,r),!1;if("select"===a)!function(e,t,n){var i='var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(n&&n.number?"_n(val)":"val")+"});";i=i+" "+ki(t,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),wi(e,"change",i,null,!0)}(e,i,r);else if("input"===a&&"checkbox"===o)!function(e,t,n){var i=n&&n.number,r=Si(e,"value")||"null",a=Si(e,"true-value")||"true",o=Si(e,"false-value")||"false";yi(e,"checked","Array.isArray("+t+")?_i("+t+","+r+")>-1"+("true"===a?":("+t+")":":_q("+t+","+a+")")),wi(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+a+"):("+o+");if(Array.isArray($$a)){var $$v="+(i?"_n("+r+")":r)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+ki(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+ki(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+ki(t,"$$c")+"}",null,!0)}(e,i,r);else if("input"===a&&"radio"===o)!function(e,t,n){var i=n&&n.number,r=Si(e,"value")||"null";yi(e,"checked","_q("+t+","+(r=i?"_n("+r+")":r)+")"),wi(e,"change",ki(t,r),null,!0)}(e,i,r);else if("input"===a||"textarea"===a)!function(e,t,n){var i=e.attrsMap.type,r=n||{},a=r.lazy,o=r.number,s=r.trim,l=!a&&"range"!==i,u=a?"change":"range"===i?Pi:"input",c="$event.target.value";s&&(c="$event.target.value.trim()"),o&&(c="_n("+c+")");var d=ki(t,c);l&&(d="if($event.target.composing)return;"+d),yi(e,"value","("+t+")"),wi(e,u,d,null,!0),(s||o)&&wi(e,"blur","$forceUpdate()")}(e,i,r);else if(!z.isReservedTag(a))return Mi(e,i,r),!1;return!0},text:function(e,t){t.value&&yi(e,"textContent","_s("+t.value+")")},html:function(e,t){t.value&&yi(e,"innerHTML","_s("+t.value+")")}},isPreTag:function(e){return"pre"===e},isUnaryTag:Qr,mustUseProp:wn,canBeLeftOpenTag:ea,isReservedTag:Nn,getTagNamespace:Bn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(",")}(Ua)},Za=_(function(e){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(e?","+e:""))});function Xa(e,t){e&&(Ka=Za(t.staticKeys||""),qa=t.isReservedTag||D,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||m(e.tag)||!qa(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(Ka)))}(t);if(1===t.type){if(!qa(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,i=t.children.length;n<i;n++){var r=t.children[n];e(r),r.static||(t.static=!1)}if(t.ifConditions)for(var a=1,o=t.ifConditions.length;a<o;a++){var s=t.ifConditions[a].block;e(s),s.static||(t.static=!1)}}}(e),function e(t,n){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=n),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var i=0,r=t.children.length;i<r;i++)e(t.children[i],n||!!t.for);if(t.ifConditions)for(var a=1,o=t.ifConditions.length;a<o;a++)e(t.ifConditions[a].block,n)}}(e,!1))}var Ja=/^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/,Qa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,eo={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},to={esc:"Escape",tab:"Tab",enter:"Enter",space:" ",up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete"]},no=function(e){return"if("+e+")return null;"},io={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:no("$event.target !== $event.currentTarget"),ctrl:no("!$event.ctrlKey"),shift:no("!$event.shiftKey"),alt:no("!$event.altKey"),meta:no("!$event.metaKey"),left:no("'button' in $event && $event.button !== 0"),middle:no("'button' in $event && $event.button !== 1"),right:no("'button' in $event && $event.button !== 2")};function ro(e,t,n){var i=t?"nativeOn:{":"on:{";for(var r in e)i+='"'+r+'":'+ao(r,e[r])+",";return i.slice(0,-1)+"}"}function ao(e,t){if(!t)return"function(){}";if(Array.isArray(t))return"["+t.map(function(t){return ao(e,t)}).join(",")+"]";var n=Qa.test(t.value),i=Ja.test(t.value);if(t.modifiers){var r="",a="",o=[];for(var s in t.modifiers)if(io[s])a+=io[s],eo[s]&&o.push(s);else if("exact"===s){var l=t.modifiers;a+=no(["ctrl","shift","alt","meta"].filter(function(e){return!l[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else o.push(s);return o.length&&(r+=function(e){return"if(!('button' in $event)&&"+e.map(oo).join("&&")+")return null;"}(o)),a&&(r+=a),"function($event){"+r+(n?"return "+t.value+"($event)":i?"return ("+t.value+")($event)":t.value)+"}"}return n||i?t.value:"function($event){"+t.value+"}"}function oo(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=eo[e],i=to[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(i)+")"}var so={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:E},lo=function(e){this.options=e,this.warn=e.warn||gi,this.transforms=vi(e.modules,"transformCode"),this.dataGenFns=vi(e.modules,"genData"),this.directives=A(A({},so),e.directives);var t=e.isReservedTag||D;this.maybeComponent=function(e){return!t(e.tag)},this.onceId=0,this.staticRenderFns=[]};function uo(e,t){var n=new lo(t);return{render:"with(this){return "+(e?co(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function co(e,t){if(e.staticRoot&&!e.staticProcessed)return ho(e,t);if(e.once&&!e.onceProcessed)return fo(e,t);if(e.for&&!e.forProcessed)return function(e,t,n,i){var r=e.for,a=e.alias,o=e.iterator1?","+e.iterator1:"",s=e.iterator2?","+e.iterator2:"";0;return e.forProcessed=!0,(i||"_l")+"(("+r+"),function("+a+o+s+"){return "+(n||co)(e,t)+"})"}(e,t);if(e.if&&!e.ifProcessed)return po(e,t);if("template"!==e.tag||e.slotTarget){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',i=vo(e,t),r="_t("+n+(i?","+i:""),a=e.attrs&&"{"+e.attrs.map(function(e){return w(e.name)+":"+e.value}).join(",")+"}",o=e.attrsMap["v-bind"];!a&&!o||i||(r+=",null");a&&(r+=","+a);o&&(r+=(a?"":",null")+","+o);return r+")"}(e,t);var n;if(e.component)n=function(e,t,n){var i=t.inlineTemplate?null:vo(t,n,!0);return"_c("+e+","+mo(t,n)+(i?","+i:"")+")"}(e.component,e,t);else{var i=e.plain?void 0:mo(e,t),r=e.inlineTemplate?null:vo(e,t,!0);n="_c('"+e.tag+"'"+(i?","+i:"")+(r?","+r:"")+")"}for(var a=0;a<t.transforms.length;a++)n=t.transforms[a](e,n);return n}return vo(e,t)||"void 0"}function ho(e,t){return e.staticProcessed=!0,t.staticRenderFns.push("with(this){return "+co(e,t)+"}"),"_m("+(t.staticRenderFns.length-1)+(e.staticInFor?",true":"")+")"}function fo(e,t){if(e.onceProcessed=!0,e.if&&!e.ifProcessed)return po(e,t);if(e.staticInFor){for(var n="",i=e.parent;i;){if(i.for){n=i.key;break}i=i.parent}return n?"_o("+co(e,t)+","+t.onceId+++","+n+")":co(e,t)}return ho(e,t)}function po(e,t,n,i){return e.ifProcessed=!0,function e(t,n,i,r){if(!t.length)return r||"_e()";var a=t.shift();return a.exp?"("+a.exp+")?"+o(a.block)+":"+e(t,n,i,r):""+o(a.block);function o(e){return i?i(e,n):e.once?fo(e,n):co(e,n)}}(e.ifConditions.slice(),t,n,i)}function mo(e,t){var n="{",i=function(e,t){var n=e.directives;if(!n)return;var i,r,a,o,s="directives:[",l=!1;for(i=0,r=n.length;i<r;i++){a=n[i],o=!0;var u=t.directives[a.name];u&&(o=!!u(e,a,t.warn)),o&&(l=!0,s+='{name:"'+a.name+'",rawName:"'+a.rawName+'"'+(a.value?",value:("+a.value+"),expression:"+JSON.stringify(a.value):"")+(a.arg?',arg:"'+a.arg+'"':"")+(a.modifiers?",modifiers:"+JSON.stringify(a.modifiers):"")+"},")}if(l)return s.slice(0,-1)+"]"}(e,t);i&&(n+=i+","),e.key&&(n+="key:"+e.key+","),e.ref&&(n+="ref:"+e.ref+","),e.refInFor&&(n+="refInFor:true,"),e.pre&&(n+="pre:true,"),e.component&&(n+='tag:"'+e.tag+'",');for(var r=0;r<t.dataGenFns.length;r++)n+=t.dataGenFns[r](e);if(e.attrs&&(n+="attrs:{"+_o(e.attrs)+"},"),e.props&&(n+="domProps:{"+_o(e.props)+"},"),e.events&&(n+=ro(e.events,!1,t.warn)+","),e.nativeEvents&&(n+=ro(e.nativeEvents,!0,t.warn)+","),e.slotTarget&&!e.slotScope&&(n+="slot:"+e.slotTarget+","),e.scopedSlots&&(n+=function(e,t){return"scopedSlots:_u(["+Object.keys(e).map(function(n){return go(n,e[n],t)}).join(",")+"])"}(e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var a=function(e,t){var n=e.children[0];0;if(1===n.type){var i=uo(n,t.options);return"inlineTemplate:{render:function(){"+i.render+"},staticRenderFns:["+i.staticRenderFns.map(function(e){return"function(){"+e+"}"}).join(",")+"]}"}}(e,t);a&&(n+=a+",")}return n=n.replace(/,$/,"")+"}",e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function go(e,t,n){return t.for&&!t.forProcessed?function(e,t,n){var i=t.for,r=t.alias,a=t.iterator1?","+t.iterator1:"",o=t.iterator2?","+t.iterator2:"";return t.forProcessed=!0,"_l(("+i+"),function("+r+a+o+"){return "+go(e,t,n)+"})"}(e,t,n):"{key:"+e+",fn:"+("function("+String(t.slotScope)+"){return "+("template"===t.tag?t.if?t.if+"?"+(vo(t,n)||"undefined")+":undefined":vo(t,n)||"undefined":co(t,n))+"}")+"}"}function vo(e,t,n,i,r){var a=e.children;if(a.length){var o=a[0];if(1===a.length&&o.for&&"template"!==o.tag&&"slot"!==o.tag)return(i||co)(o,t);var s=n?function(e,t){for(var n=0,i=0;i<e.length;i++){var r=e[i];if(1===r.type){if(yo(r)||r.ifConditions&&r.ifConditions.some(function(e){return yo(e.block)})){n=2;break}(t(r)||r.ifConditions&&r.ifConditions.some(function(e){return t(e.block)}))&&(n=1)}}return n}(a,t.maybeComponent):0,l=r||bo;return"["+a.map(function(e){return l(e,t)}).join(",")+"]"+(s?","+s:"")}}function yo(e){return void 0!==e.for||"template"===e.tag||"slot"===e.tag}function bo(e,t){return 1===e.type?co(e,t):3===e.type&&e.isComment?(i=e,"_e("+JSON.stringify(i.text)+")"):"_v("+(2===(n=e).type?n.expression:xo(JSON.stringify(n.text)))+")";var n,i}function _o(e){for(var t="",n=0;n<e.length;n++){var i=e[n];t+='"'+i.name+'":'+xo(i.value)+","}return t.slice(0,-1)}function xo(e){return e.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)");function wo(e,t){try{return new Function(e)}catch(n){return t.push({err:n,code:e}),E}}var So,Co,Mo=(So=function(e,t){var n=Fa(e.trim(),t);!1!==t.optimize&&Xa(n,t);var i=uo(n,t);return{ast:n,render:i.render,staticRenderFns:i.staticRenderFns}},function(e){function t(t,n){var i=Object.create(e),r=[],a=[];if(i.warn=function(e,t){(t?a:r).push(e)},n)for(var o in n.modules&&(i.modules=(e.modules||[]).concat(n.modules)),n.directives&&(i.directives=A(Object.create(e.directives||null),n.directives)),n)"modules"!==o&&"directives"!==o&&(i[o]=n[o]);var s=So(t,i);return s.errors=r,s.tips=a,s}return{compile:t,compileToFunctions:function(e){var t=Object.create(null);return function(n,i,r){(i=A({},i)).warn,delete i.warn;var a=i.delimiters?String(i.delimiters)+n:n;if(t[a])return t[a];var o=e(n,i),s={},l=[];return s.render=wo(o.render,l),s.staticRenderFns=o.staticRenderFns.map(function(e){return wo(e,l)}),t[a]=s}}(t)}})(Ya).compileToFunctions;function ko(e){return(Co=Co||document.createElement("div")).innerHTML=e?'<a href="\n"/>':'<div a="\n"/>',Co.innerHTML.indexOf("&#10;")>0}var To=!!W&&ko(!1),Ao=!!W&&ko(!0),Io=_(function(e){var t=Vn(e);return t&&t.innerHTML}),Eo=hn.prototype.$mount;hn.prototype.$mount=function(e,t){if((e=e&&Vn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var i=n.template;if(i)if("string"==typeof i)"#"===i.charAt(0)&&(i=Io(i));else{if(!i.nodeType)return this;i=i.innerHTML}else e&&(i=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(i){0;var r=Mo(i,{shouldDecodeNewlines:To,shouldDecodeNewlinesForHref:Ao,delimiters:n.delimiters,comments:n.comments},this),a=r.render,o=r.staticRenderFns;n.render=a,n.staticRenderFns=o}}return Eo.call(this,e,t)},hn.compile=Mo,t.default=hn}.call(t,n("9AUj"))},J0Oq:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n("rVsN"),a=(i=r)&&i.__esModule?i:{default:i};t.default=function(e){return function(){var t=e.apply(this,arguments);return new a.default(function(e,n){return function i(r,o){try{var s=t[r](o),l=s.value}catch(e){return void n(e)}if(!s.done)return a.default.resolve(l).then(function(e){i("next",e)},function(e){i("throw",e)});e(l)}("next")})}}},J35F:function(e,t,n){var i=n("8Nvm");e.exports=function(e,t){if(!i(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!i(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!i(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},J3mc:function(e,t,n){"use strict";t.__esModule=!0;var i=i||{};i.Utils=i.Utils||{},i.Utils.focusFirstDescendant=function(e){for(var t=0;t<e.childNodes.length;t++){var n=e.childNodes[t];if(i.Utils.attemptFocus(n)||i.Utils.focusFirstDescendant(n))return!0}return!1},i.Utils.focusLastDescendant=function(e){for(var t=e.childNodes.length-1;t>=0;t--){var n=e.childNodes[t];if(i.Utils.attemptFocus(n)||i.Utils.focusLastDescendant(n))return!0}return!1},i.Utils.attemptFocus=function(e){if(!i.Utils.isFocusable(e))return!1;i.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return i.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},i.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},i.Utils.triggerEvent=function(e,t){var n=void 0;n=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var i=document.createEvent(n),r=arguments.length,a=Array(r>2?r-2:0),o=2;o<r;o++)a[o-2]=arguments[o];return i.initEvent.apply(i,[t].concat(a)),e.dispatchEvent?e.dispatchEvent(i):e.fireEvent("on"+t,i),e},i.Utils.keys={tab:9,enter:13,space:32,left:37,up:38,right:39,down:40},t.default=i.Utils},JAl0:function(e,t,n){var i=n("GKMz"),r=i.each,a=i.isArray,o=i.isObject,s=n("5MFU"),l=n("vqvJ").normalizeToArray;function u(e){r(c,function(t){t[0]in e&&!(t[1]in e)&&(e[t[1]]=e[t[0]])})}var c=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],d=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"];e.exports=function(e,t){s(e,t),e.series=l(e.series),r(e.series,function(e){if(o(e)){var t=e.type;if("pie"!==t&&"gauge"!==t||null!=e.clockWise&&(e.clockwise=e.clockWise),"gauge"===t){var n=function(e,t){t=t.split(",");for(var n=e,i=0;i<t.length&&null!=(n=n&&n[t[i]]);i++);return n}(e,"pointer.color");null!=n&&function(e,t,n,i){t=t.split(",");for(var r,a=e,o=0;o<t.length-1;o++)null==a[r=t[o]]&&(a[r]={}),a=a[r];(i||null==a[t[o]])&&(a[t[o]]=n)}(e,"itemStyle.normal.color",n)}u(e)}}),e.dataRange&&(e.visualMap=e.dataRange),r(d,function(t){var n=e[t];n&&(a(n)||(n=[n]),r(n,function(e){u(e)}))})}},JBI7:function(e,t,n){var i=n("T9r1");e.exports=Array.isArray||function(e){return"Array"==i(e)}},JBj0:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("KSHG"),o=n("k7IZ"),s=n("7Rvj"),l=n("01Ub"),u=n("vqvJ"),c=n("abCA"),d=s.mapVisual,h=s.eachVisual,f=r.isArray,p=r.each,m=c.asc,g=c.linearMap,v=r.noop,y=i.extendComponentModel({type:"visualMap",dependencies:["series"],stateList:["inRange","outOfRange"],replacableOptionKeys:["inRange","outOfRange","target","controller","color"],dataBound:[-1/0,1/0],layoutMode:{type:"box",ignoreSize:!0},defaultOption:{show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,dimension:null,inRange:null,outOfRange:null,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,color:null,formatter:null,text:null,textStyle:{color:"#333"}},init:function(e,t,n){this._dataExtent,this.targetVisuals={},this.controllerVisuals={},this.textStyleModel,this.itemSize,this.mergeDefaultAndTheme(e,n)},optionUpdated:function(e,t){var n=this.option;a.canvasSupported||(n.realtime=!1),!t&&l.replaceVisualOption(n,e,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},resetVisual:function(e){var t=this.stateList;e=r.bind(e,this),this.controllerVisuals=l.createVisualMappings(this.option.controller,t,e),this.targetVisuals=l.createVisualMappings(this.option.target,t,e)},getTargetSeriesIndices:function(){var e=this.option.seriesIndex,t=[];return null==e||"all"===e?this.ecModel.eachSeries(function(e,n){t.push(n)}):t=u.normalizeToArray(e),t},eachTargetSeries:function(e,t){r.each(this.getTargetSeriesIndices(),function(n){e.call(t,this.ecModel.getSeriesByIndex(n))},this)},isTargetSeries:function(e){var t=!1;return this.eachTargetSeries(function(n){n===e&&(t=!0)}),t},formatValueText:function(e,t,n){var i,a,o=this.option,s=o.precision,l=this.dataBound,u=o.formatter;return n=n||["<",">"],r.isArray(e)&&(e=e.slice(),i=!0),a=t?e:i?[c(e[0]),c(e[1])]:c(e),r.isString(u)?u.replace("{value}",i?a[0]:a).replace("{value2}",i?a[1]:a):r.isFunction(u)?i?u(e[0],e[1]):u(e):i?e[0]===l[0]?n[0]+" "+a[1]:e[1]===l[1]?n[1]+" "+a[0]:a[0]+" - "+a[1]:a;function c(e){return e===l[0]?"min":e===l[1]?"max":(+e).toFixed(Math.min(s,20))}},resetExtent:function(){var e=this.option,t=m([e.min,e.max]);this._dataExtent=t},getDataDimension:function(e){var t=this.option.dimension,n=e.dimensions;if(null!=t||n.length){if(null!=t)return e.getDimension(t);for(var i=e.dimensions,r=i.length-1;r>=0;r--){var a=i[r];if(!e.getDimensionInfo(a).isCalculationCoord)return a}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){var e=this.ecModel,t=this.option,n={inRange:t.inRange,outOfRange:t.outOfRange},i=t.target||(t.target={}),a=t.controller||(t.controller={});r.merge(i,n),r.merge(a,n);var l=this.isCategory();function u(n){f(t.color)&&!n.inRange&&(n.inRange={color:t.color.slice().reverse()}),n.inRange=n.inRange||{color:e.get("gradientColor")},p(this.stateList,function(e){var t=n[e];if(r.isString(t)){var i=o.get(t,"active",l);i?(n[e]={},n[e][t]=i):delete n[e]}},this)}u.call(this,i),u.call(this,a),function(e,t,n){var i=e[t],r=e[n];i&&!r&&(r=e[n]={},p(i,function(e,t){if(s.isValidType(t)){var n=o.get(t,"inactive",l);null!=n&&(r[t]=n,"color"!==t||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}}))}.call(this,i,"inRange","outOfRange"),function(e){var t=(e.inRange||{}).symbol||(e.outOfRange||{}).symbol,n=(e.inRange||{}).symbolSize||(e.outOfRange||{}).symbolSize,i=this.get("inactiveColor");p(this.stateList,function(a){var o=this.itemSize,s=e[a];s||(s=e[a]={color:l?i:[i]}),null==s.symbol&&(s.symbol=t&&r.clone(t)||(l?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=n&&r.clone(n)||(l?o[0]:[o[0],o[0]])),s.symbol=d(s.symbol,function(e){return"none"===e||"square"===e?"roundRect":e});var u=s.symbolSize;if(null!=u){var c=-1/0;h(u,function(e){e>c&&(c=e)}),s.symbolSize=d(u,function(e){return g(e,[0,c],[0,o[0]],!0)})}},this)}.call(this,a)},resetItemSize:function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},isCategory:function(){return!!this.option.categories},setSelected:v,getValueState:v,getVisualMeta:v});e.exports=y},JhHb:function(e,t,n){n("SAFe");var i=n("AKd3").Object;e.exports=function(e,t,n){return i.defineProperty(e,t,n)}},JiCB:function(e,t,n){var i=n("BMQd").extend({type:"series.pictorialBar",dependencies:["grid"],defaultOption:{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,hoverAnimation:!1},getInitialData:function(e){return e.stack=null,i.superApply(this,"getInitialData",arguments)}}),r=i;e.exports=r},Jkhp:function(e,t){e.exports=function(e){return{seriesType:e,reset:function(e,t){var n=t.findComponents({mainType:"legend"});if(n&&n.length){var i=e.getData();i.filterSelf(function(e){for(var t=i.getName(e),r=0;r<n.length;r++)if(!n[r].isSelected(t))return!1;return!0})}}}}},Jlbz:function(e,t,n){"use strict";t.__esModule=!0;var i=n("iOou");var r=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.beforeEnter=function(e){(0,i.addClass)(e,"collapse-transition"),e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height="0",e.style.paddingTop=0,e.style.paddingBottom=0},e.prototype.enter=function(e){e.dataset.oldOverflow=e.style.overflow,0!==e.scrollHeight?(e.style.height=e.scrollHeight+"px",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom):(e.style.height="",e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom),e.style.overflow="hidden"},e.prototype.afterEnter=function(e){(0,i.removeClass)(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow},e.prototype.beforeLeave=function(e){e.dataset||(e.dataset={}),e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.height=e.scrollHeight+"px",e.style.overflow="hidden"},e.prototype.leave=function(e){0!==e.scrollHeight&&((0,i.addClass)(e,"collapse-transition"),e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0)},e.prototype.afterLeave=function(e){(0,i.removeClass)(e,"collapse-transition"),e.style.height="",e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},e}();t.default={name:"ElCollapseTransition",functional:!0,render:function(e,t){var n=t.children;return e("transition",{on:new r},n)}}},Jo3n:function(e,t,n){"use strict";var i=n("h3QQ");e.exports=function(e,t,n){var r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(i("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},JotW:function(e,t,n){"use strict";var i=n("hN2N"),r=n("8r5Y"),a=n("Lv47"),o=n("OtkV");function s(e){this.defaults=e,this.interceptors={request:new a,response:new a}}s.prototype.request=function(e){"string"==typeof e&&(e=r.merge({url:arguments[0]},arguments[1])),(e=r.merge(i,{method:"get"},this.defaults,e)).method=e.method.toLowerCase();var t=[o,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},r.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(t,n){return this.request(r.merge(n||{},{method:e,url:t}))}}),r.forEach(["post","put","patch"],function(e){s.prototype[e]=function(t,n,i){return this.request(r.merge(i||{},{method:e,url:t,data:n}))}}),e.exports=s},K3AH:function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},KGKV:function(e,t,n){n("5FyJ")("observable")},KJ1c:function(e,t,n){(function(e){var n;"undefined"!=typeof window?n=window.__DEV__:void 0!==e&&(n=e.__DEV__),void 0===n&&(n=!0);var i=n;t.__DEV__=i}).call(t,n("9AUj"))},KPKd:function(e,t,n){var i=n("PEJM"),r={autoSetContainer:!1},a={install:function(e){e.prototype.$clipboardConfig=r,e.prototype.$copyText=function(e,t){return new Promise(function(n,r){var a=document.createElement("button"),o=new i(a,{text:function(){return e},action:function(){return"copy"},container:"object"==typeof t?t:document.body});o.on("success",function(e){o.destroy(),n(e)}),o.on("error",function(e){o.destroy(),r(e)}),a.click()})},e.directive("clipboard",{bind:function(e,t,n){if("success"===t.arg)e._v_clipboard_success=t.value;else if("error"===t.arg)e._v_clipboard_error=t.value;else{var a=new i(e,{text:function(){return t.value},action:function(){return"cut"===t.arg?"cut":"copy"},container:r.autoSetContainer?e:void 0});a.on("success",function(t){var n=e._v_clipboard_success;n&&n(t)}),a.on("error",function(t){var n=e._v_clipboard_error;n&&n(t)}),e._v_clipboard=a}},update:function(e,t){"success"===t.arg?e._v_clipboard_success=t.value:"error"===t.arg?e._v_clipboard_error=t.value:(e._v_clipboard.text=function(){return t.value},e._v_clipboard.action=function(){return"cut"===t.arg?"cut":"copy"})},unbind:function(e,t){"success"===t.arg?delete e._v_clipboard_success:"error"===t.arg?delete e._v_clipboard_error:(e._v_clipboard.destroy(),delete e._v_clipboard)}})},config:r};e.exports=a},KSHG:function(e,t){var n="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0}:function(e){var t={},n=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),r=e.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(e);n&&(t.firefox=!0,t.version=n[1]);i&&(t.ie=!0,t.version=i[1]);r&&(t.edge=!0,t.version=r[1]);a&&(t.weChat=!0);return{browser:t,os:{},node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!t.ie&&!t.edge,pointerEventsSupported:"onpointerdown"in window&&(t.edge||t.ie&&t.version>=11)}}(navigator.userAgent);e.exports=n},KV1y:function(e,t,n){var i=n("AKd3"),r=n("C02x"),a=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:i.version,mode:n("bgFz")?"pure":"global",copyright:"漏 2018 Denis Pushkarev (zloirock.ru)"})},"KWg/":function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=Math.PI;e.exports=function(e,t){t=t||{},i.defaults(t,{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var n=new r.Rect({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4}),o=new r.Arc({shape:{startAngle:-a/2,endAngle:-a/2+.1,r:10},style:{stroke:t.color,lineCap:"round",lineWidth:5},zlevel:t.zlevel,z:10001}),s=new r.Rect({style:{fill:"none",text:t.text,textPosition:"right",textDistance:10,textFill:t.textColor},zlevel:t.zlevel,z:10001});o.animateShape(!0).when(1e3,{endAngle:3*a/2}).start("circularInOut"),o.animateShape(!0).when(1e3,{startAngle:3*a/2}).delay(300).start("circularInOut");var l=new r.Group;return l.add(o),l.add(s),l.add(n),l.resize=function(){var t=e.getWidth()/2,i=e.getHeight()/2;o.setShape({cx:t,cy:i});var r=o.shape.r;s.setShape({x:t-r,y:i-r,width:2*r,height:2*r}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},l.resize(),l}},KdYD:function(e,t,n){var i=n("GKMz"),r=n("vqvJ").makeInner,a=n("jP6M"),o=n("wsbZ"),s=i.each,l=i.curry,u=r();function c(e,t,n,r,a){var o=e.axis;if(!o.scale.isBlank()&&o.containData(t))if(e.involveSeries){var l=function(e,t){var n=t.axis,i=n.dim,r=e,a=[],o=Number.MAX_VALUE,l=-1;return s(t.seriesModels,function(t,u){var c,d,h=t.getData().mapDimension(i,!0);if(t.getAxisTooltipData){var f=t.getAxisTooltipData(h,e,n);d=f.dataIndices,c=f.nestestValue}else{if(!(d=t.getData().indicesOfNearest(h[0],e,"category"===n.type?.5:null)).length)return;c=t.getData().get(h[0],d[0])}if(null!=c&&isFinite(c)){var p=e-c,m=Math.abs(p);m<=o&&((m<o||p>=0&&l<0)&&(o=m,l=p,r=c,a.length=0),s(d,function(e){a.push({seriesIndex:t.seriesIndex,dataIndexInside:e,dataIndex:t.getData().getRawIndex(e)})}))}}),{payloadBatch:a,snapToValue:r}}(t,e),u=l.payloadBatch,c=l.snapToValue;u[0]&&null==a.seriesIndex&&i.extend(a,u[0]),!r&&e.snap&&o.containData(c)&&null!=c&&(t=c),n.showPointer(e,t,u,a),n.showTooltip(e,l,c)}else n.showPointer(e,t)}function d(e,t,n,i){e[t.key]={value:n,payloadBatch:i}}function h(e,t,n,i){var r=n.payloadBatch,o=t.axis,s=o.model,l=t.axisPointerModel;if(t.triggerTooltip&&r.length){var u=t.coordSys.model,c=a.makeKey(u),d=e.map[c];d||(d=e.map[c]={coordSysId:u.id,coordSysIndex:u.componentIndex,coordSysType:u.type,coordSysMainType:u.mainType,dataByAxis:[]},e.list.push(d)),d.dataByAxis.push({axisDim:o.dim,axisIndex:s.componentIndex,axisType:s.type,axisId:s.id,value:i,valueLabelOpt:{precision:l.get("label.precision"),formatter:l.get("label.formatter")},seriesDataIndices:r.slice()})}}function f(e){var t=e.axis.model,n={},i=n.axisDim=e.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=t.componentIndex,n.axisName=n[i+"AxisName"]=t.name,n.axisId=n[i+"AxisId"]=t.id,n}function p(e){return!e||null==e[0]||isNaN(e[0])||null==e[1]||isNaN(e[1])}e.exports=function(e,t,n){var r=e.currTrigger,a=[e.x,e.y],m=e,g=e.dispatchAction||i.bind(n.dispatchAction,n),v=t.getComponent("axisPointer").coordSysAxesInfo;if(v){p(a)&&(a=o({seriesIndex:m.seriesIndex,dataIndex:m.dataIndex},t).point);var y=p(a),b=m.axesInfo,_=v.axesInfo,x="leave"===r||p(a),w={},S={},C={list:[],map:{}},M={showPointer:l(d,S),showTooltip:l(h,C)};s(v.coordSysMap,function(e,t){var n=y||e.containPoint(a);s(v.coordSysAxesInfo[t],function(e,t){var i=e.axis,r=function(e,t){for(var n=0;n<(e||[]).length;n++){var i=e[n];if(t.axis.dim===i.axisDim&&t.axis.model.componentIndex===i.axisIndex)return i}}(b,e);if(!x&&n&&(!b||r)){var o=r&&r.value;null!=o||y||(o=i.pointToData(a)),null!=o&&c(e,o,M,!1,w)}})});var k={};return s(_,function(e,t){var n=e.linkGroup;n&&!S[t]&&s(n.axesInfo,function(t,i){var r=S[i];if(t!==e&&r){var a=r.value;n.mapper&&(a=e.axis.scale.parse(n.mapper(a,f(t),f(e)))),k[e.key]=a}})}),s(k,function(e,t){c(_[t],e,M,!0,w)}),function(e,t,n){var i=n.axesInfo=[];s(t,function(t,n){var r=t.axisPointerModel.option,a=e[n];a?(!t.useHandle&&(r.status="show"),r.value=a.value,r.seriesDataIndices=(a.payloadBatch||[]).slice()):!t.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:t.axis.dim,axisIndex:t.axis.model.componentIndex,value:r.value})})}(S,_,w),function(e,t,n,i){if(!p(t)&&e.list.length){var r=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:e.list})}else i({type:"hideTip"})}(C,a,e,g),function(e,t,n){var r=n.getZr(),a=u(r).axisPointerLastHighlights||{},o=u(r).axisPointerLastHighlights={};s(e,function(e,t){var n=e.axisPointerModel.option;"show"===n.status&&s(n.seriesDataIndices,function(e){var t=e.seriesIndex+" | "+e.dataIndex;o[t]=e})});var l=[],c=[];i.each(a,function(e,t){!o[t]&&c.push(e)}),i.each(o,function(e,t){!a[t]&&l.push(e)}),c.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,batch:c}),l.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,batch:l})}(_,0,n),w}}},Kjxy:function(e,t,n){var i=n("TPu0"),r=Math.max,a=Math.min;e.exports=function(e,t){return(e=i(e))<0?r(e+t,0):a(e,t)}},Kndc:function(e,t,n){var i=n("GKMz"),r=n("YR6M"),a=n("4f7s"),o=n("xWTI"),s=n("uxQp"),l=s.encodeHTML,u=s.addCommas,c=n("HT+0").wrapTreePathInfo,d=r.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],_viewRoot:null,defaultOption:{progressive:0,hoverLayerThreshold:1/0,left:"center",top:"middle",right:null,bottom:null,width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"鈻�",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",borderColor:"rgba(255,255,255,0.7)",borderWidth:1,shadowColor:"rgba(150,150,150,1)",shadowBlur:3,shadowOffsetX:0,shadowOffsetY:0,textStyle:{color:"#fff"}},emphasis:{textStyle:{}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",ellipsis:!0},upperLabel:{show:!1,position:[0,"50%"],height:20,color:"#fff",ellipsis:!0,verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],color:"#fff",ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},getInitialData:function(e,t){var n={name:e.name,children:e.data};!function e(t){var n=0;i.each(t.children,function(t){e(t);var r=t.value;i.isArray(r)&&(r=r[0]),n+=r});var r=t.value;i.isArray(r)&&(r=r[0]);(null==r||isNaN(r))&&(r=n);r<0&&(r=0);i.isArray(t.value)?t.value[0]=r:t.value=r}(n);var r=e.levels||[];r=e.levels=function(e,t){var n,r=t.get("color");if(!r)return;if(e=e||[],i.each(e,function(e){var t=new o(e),i=t.get("color");(t.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),!n){var a=e[0]||(e[0]={});a.color=r.slice()}return e}(r,t);var s={};return s.levels=r,a.createTree(n,this,s).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(e){var t=this.getData(),n=this.getRawValue(e),r=i.isArray(n)?u(n[0]):u(n),a=t.getName(e);return l(a+": "+r)},getDataParams:function(e){var t=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(e);return t.treePathInfo=c(n,this),t},setLayoutInfo:function(e){this.layoutInfo=this.layoutInfo||{},i.extend(this.layoutInfo,e)},mapIdToIndex:function(e){var t=this._idIndexMap;t||(t=this._idIndexMap=i.createHashMap(),this._idIndexMapCount=0);var n=t.get(e);return null==n&&t.set(e,n=this._idIndexMapCount++),n},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(e){e?this._viewRoot=e:e=this._viewRoot;var t=this.getRawData().tree.root;e&&(e===t||t.contains(e))||(this._viewRoot=t)}});e.exports=d},Kq3v:function(e,t){function n(e){return e instanceof Array||(e=[e,e]),e}e.exports=function(e){e.eachSeriesByType("graph",function(e){var t=e.getGraph(),i=e.getEdgeData(),r=n(e.get("edgeSymbol")),a=n(e.get("edgeSymbolSize")),o="lineStyle.color".split("."),s="lineStyle.opacity".split(".");i.setVisual("fromSymbol",r&&r[0]),i.setVisual("toSymbol",r&&r[1]),i.setVisual("fromSymbolSize",a&&a[0]),i.setVisual("toSymbolSize",a&&a[1]),i.setVisual("color",e.get(o)),i.setVisual("opacity",e.get(s)),i.each(function(e){var r=i.getItemModel(e),a=t.getEdgeByIndex(e),l=n(r.getShallow("symbol",!0)),u=n(r.getShallow("symbolSize",!0)),c=r.get(o),d=r.get(s);switch(c){case"source":c=a.node1.getVisual("color");break;case"target":c=a.node2.getVisual("color")}l[0]&&a.setVisual("fromSymbol",l[0]),l[1]&&a.setVisual("toSymbol",l[1]),u[0]&&a.setVisual("fromSymbolSize",u[0]),u[1]&&a.setVisual("toSymbolSize",u[1]),a.setVisual("color",c),a.setVisual("opacity",d)})})}},L3JW:function(e,t,n){var i=n("T2AC").debugMode,r=function(){};1===i?r=function(){for(var e in arguments)throw new Error(arguments[e])}:i>1&&(r=function(){for(var e in arguments)console.log(arguments[e])});var a=r;e.exports=a},L9EA:function(e,t,n){"use strict";t.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.isVNode=function(e){return null!==e&&"object"===(void 0===e?"undefined":i(e))&&(0,r.hasOwn)(e,"componentOptions")},t.getFirstComponentChild=function(e){return e&&e.filter(function(e){return e&&e.tag})[0]};var r=n("I1sU")},LGHW:function(e,t,n){var i=n("YepE"),r=n("luYz"),a=[],o=[],s=[],l=i.quadraticAt,u=r.distSquare,c=Math.abs;function d(e,t,n){for(var i,r=e[0],d=e[1],h=e[2],f=1/0,p=n*n,m=.1,g=.1;g<=.9;g+=.1){a[0]=l(r[0],d[0],h[0],g),a[1]=l(r[1],d[1],h[1],g),(b=c(u(a,t)-p))<f&&(f=b,i=g)}for(var v=0;v<32;v++){var y=i+m;o[0]=l(r[0],d[0],h[0],i),o[1]=l(r[1],d[1],h[1],i),s[0]=l(r[0],d[0],h[0],y),s[1]=l(r[1],d[1],h[1],y);var b=u(o,t)-p;if(c(b)<.01)break;var _=u(s,t)-p;m/=2,b<0?_>=0?i+=m:i-=m:_>=0?i-=m:i+=m}return i}e.exports=function(e,t){var n=[],a=i.quadraticSubdivide,o=[[],[],[]],s=[[],[]],l=[];function u(e){var t=e.getVisual("symbolSize");return t instanceof Array&&(t=(t[0]+t[1])/2),t}t/=2,e.eachEdge(function(e,i){var c=e.getLayout(),h=e.getVisual("fromSymbol"),f=e.getVisual("toSymbol");c.__original||(c.__original=[r.clone(c[0]),r.clone(c[1])],c[2]&&c.__original.push(r.clone(c[2])));var p=c.__original;if(null!=c[2]){if(r.copy(o[0],p[0]),r.copy(o[1],p[2]),r.copy(o[2],p[1]),h&&"none"!=h){var m=u(e.node1),g=d(o,p[0],m*t);a(o[0][0],o[1][0],o[2][0],g,n),o[0][0]=n[3],o[1][0]=n[4],a(o[0][1],o[1][1],o[2][1],g,n),o[0][1]=n[3],o[1][1]=n[4]}f&&"none"!=f&&(m=u(e.node2),g=d(o,p[1],m*t),a(o[0][0],o[1][0],o[2][0],g,n),o[1][0]=n[1],o[2][0]=n[2],a(o[0][1],o[1][1],o[2][1],g,n),o[1][1]=n[1],o[2][1]=n[2]),r.copy(c[0],o[0]),r.copy(c[1],o[2]),r.copy(c[2],o[1])}else r.copy(s[0],p[0]),r.copy(s[1],p[1]),r.sub(l,s[1],s[0]),r.normalize(l,l),h&&"none"!=h&&(m=u(e.node1),r.scaleAndAdd(s[0],s[0],l,m*t)),f&&"none"!=f&&(m=u(e.node2),r.scaleAndAdd(s[1],s[1],l,-m*t)),r.copy(c[0],s[0]),r.copy(c[1],s[1])})}},LH4M:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("xWTI"),o=n("vqvJ").isNameSpecified,s=i.extendComponentModel({type:"legend.plain",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(e,t,n){this.mergeDefaultAndTheme(e,n),e.selected=e.selected||{}},mergeOption:function(e){s.superCall(this,"mergeOption",e)},optionUpdated:function(){this._updateData(this.ecModel);var e=this._data;if(e[0]&&"single"===this.get("selectedMode")){for(var t=!1,n=0;n<e.length;n++){var i=e[n].get("name");if(this.isSelected(i)){this.select(i),t=!0;break}}!t&&this.select(e[0].get("name"))}},_updateData:function(e){var t=[],n=[];e.eachRawSeries(function(i){var r,a=i.name;if(n.push(a),i.legendDataProvider){var s=i.legendDataProvider(),l=s.mapArray(s.getName);e.isSeriesFiltered(i)||(n=n.concat(l)),l.length?t=t.concat(l):r=!0}else r=!0;r&&o(i)&&t.push(i.name)}),this._availableNames=n;var i=this.get("data")||t,s=r.map(i,function(e){return"string"!=typeof e&&"number"!=typeof e||(e={name:e}),new a(e,this,this.ecModel)},this);this._data=s},getData:function(){return this._data},select:function(e){var t=this.option.selected;if("single"===this.get("selectedMode")){var n=this._data;r.each(n,function(e){t[e.get("name")]=!1})}t[e]=!0},unSelect:function(e){"single"!==this.get("selectedMode")&&(this.option.selected[e]=!1)},toggleSelected:function(e){var t=this.option.selected;t.hasOwnProperty(e)||(t[e]=!0),this[t[e]?"unSelect":"select"](e)},isSelected:function(e){var t=this.option.selected;return!(t.hasOwnProperty(e)&&!t[e])&&r.indexOf(this._availableNames,e)>=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}}),l=s;e.exports=l},LPZm:function(e,t,n){"use strict";var i=n("FITv"),r=n("aqA6"),a=n("Gf6R");i(i.S,"Promise",{try:function(e){var t=r.f(this),n=a(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},LTKM:function(e,t,n){n("oRvx");var i=n("6/6c").extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});e.exports=i},Ln8f:function(e,t,n){var i=n("276n"),r=n("Zjj5"),a=n("GKMz").isArrayLike,o=Array.prototype.slice;function s(e,t){return e[t]}function l(e,t,n){e[t]=n}function u(e,t,n){return(t-e)*n+e}function c(e,t,n){return n>.5?t:e}function d(e,t,n,i,r){var a=e.length;if(1==r)for(var o=0;o<a;o++)i[o]=u(e[o],t[o],n);else{var s=a&&e[0].length;for(o=0;o<a;o++)for(var l=0;l<s;l++)i[o][l]=u(e[o][l],t[o][l],n)}}function h(e,t,n){var i=e.length,r=t.length;if(i!==r)if(i>r)e.length=r;else for(var a=i;a<r;a++)e.push(1===n?t[a]:o.call(t[a]));var s=e[0]&&e[0].length;for(a=0;a<e.length;a++)if(1===n)isNaN(e[a])&&(e[a]=t[a]);else for(var l=0;l<s;l++)isNaN(e[a][l])&&(e[a][l]=t[a][l])}function f(e,t,n){if(e===t)return!0;var i=e.length;if(i!==t.length)return!1;if(1===n){for(var r=0;r<i;r++)if(e[r]!==t[r])return!1}else{var a=e[0].length;for(r=0;r<i;r++)for(var o=0;o<a;o++)if(e[r][o]!==t[r][o])return!1}return!0}function p(e,t,n,i,r,a,o,s,l){var u=e.length;if(1==l)for(var c=0;c<u;c++)s[c]=m(e[c],t[c],n[c],i[c],r,a,o);else{var d=e[0].length;for(c=0;c<u;c++)for(var h=0;h<d;h++)s[c][h]=m(e[c][h],t[c][h],n[c][h],i[c][h],r,a,o)}}function m(e,t,n,i,r,a,o){var s=.5*(n-e),l=.5*(i-t);return(2*(t-n)+s+l)*o+(-3*(t-n)-2*s-l)*a+s*r+t}function g(e){if(a(e)){var t=e.length;if(a(e[0])){for(var n=[],i=0;i<t;i++)n.push(o.call(e[i]));return n}return o.call(e)}return e}function v(e){return e[0]=Math.floor(e[0]),e[1]=Math.floor(e[1]),e[2]=Math.floor(e[2]),"rgba("+e.join(",")+")"}function y(e,t,n,o,s,l){var g=e._getter,y=e._setter,b="spline"===t,_=o.length;if(_){var x,w=o[0].value,S=a(w),C=!1,M=!1,k=S?function(e){var t=e[e.length-1].value;return a(t&&t[0])?2:1}(o):0;o.sort(function(e,t){return e.time-t.time}),x=o[_-1].time;for(var T=[],A=[],I=o[0].value,E=!0,D=0;D<_;D++){T.push(o[D].time/x);var O=o[D].value;if(S&&f(O,I,k)||!S&&O===I||(E=!1),I=O,"string"==typeof O){var P=r.parse(O);P?(O=P,C=!0):M=!0}A.push(O)}if(l||!E){var L=A[_-1];for(D=0;D<_-1;D++)S?h(A[D],L,k):!isNaN(A[D])||isNaN(L)||M||C||(A[D]=L);S&&h(g(e._target,s),L,k);var R,N,B,F,z,V=0,$=0;if(C)var G=[0,0,0,0];var j=new i({target:e._target,life:x,loop:e._loop,delay:e._delay,onframe:function(e,t){var n;if(t<0)n=0;else if(t<$){for(n=Math.min(V+1,_-1);n>=0&&!(T[n]<=t);n--);n=Math.min(n,_-2)}else{for(n=V;n<_&&!(T[n]>t);n++);n=Math.min(n-1,_-2)}V=n,$=t;var i=T[n+1]-T[n];if(0!==i)if(R=(t-T[n])/i,b)if(B=A[n],N=A[0===n?n:n-1],F=A[n>_-2?_-1:n+1],z=A[n>_-3?_-1:n+2],S)p(N,B,F,z,R,R*R,R*R*R,g(e,s),k);else{if(C)r=p(N,B,F,z,R,R*R,R*R*R,G,1),r=v(G);else{if(M)return c(B,F,R);r=m(N,B,F,z,R,R*R,R*R*R)}y(e,s,r)}else if(S)d(A[n],A[n+1],R,g(e,s),k);else{var r;if(C)d(A[n],A[n+1],R,G,1),r=v(G);else{if(M)return c(A[n],A[n+1],R);r=u(A[n],A[n+1],R)}y(e,s,r)}},ondestroy:n});return t&&"spline"!==t&&(j.easing=t),j}}}var b=function(e,t,n,i){this._tracks={},this._target=e,this._loop=t||!1,this._getter=n||s,this._setter=i||l,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};b.prototype={when:function(e,t){var n=this._tracks;for(var i in t)if(t.hasOwnProperty(i)){if(!n[i]){n[i]=[];var r=this._getter(this._target,i);if(null==r)continue;0!==e&&n[i].push({time:0,value:g(r)})}n[i].push({time:e,value:t[i]})}return this},during:function(e){return this._onframeList.push(e),this},pause:function(){for(var e=0;e<this._clipList.length;e++)this._clipList[e].pause();this._paused=!0},resume:function(){for(var e=0;e<this._clipList.length;e++)this._clipList[e].resume();this._paused=!1},isPaused:function(){return!!this._paused},_doneCallback:function(){this._tracks={},this._clipList.length=0;for(var e=this._doneList,t=e.length,n=0;n<t;n++)e[n].call(this)},start:function(e,t){var n,i=this,r=0,a=function(){--r||i._doneCallback()};for(var o in this._tracks)if(this._tracks.hasOwnProperty(o)){var s=y(this,e,a,this._tracks[o],o,t);s&&(this._clipList.push(s),r++,this.animation&&this.animation.addClip(s),n=s)}if(n){var l=n.onframe;n.onframe=function(e,t){l(e,t);for(var n=0;n<i._onframeList.length;n++)i._onframeList[n](e,t)}}return r||this._doneCallback(),this},stop:function(e){for(var t=this._clipList,n=this.animation,i=0;i<t.length;i++){var r=t[i];e&&r.onframe(this._target,1),n&&n.removeClip(r)}t.length=0},delay:function(e){return this._delay=e,this},done:function(e){return e&&this._doneList.push(e),this},getClips:function(){return this._clipList}};var _=b;e.exports=_},Luoa:function(e,t,n){var i=n("GKMz"),r=n("5gvs"),a=n("aVg8"),o=n("242d"),s=n("9PUD"),l=n("abCA"),u=n("Q/cl"),c=n("MP34"),d=a.Rect,h=l.linearMap,f=l.asc,p=i.bind,m=i.each,g="horizontal",v=5,y=["line","bar","candlestick","scatter"],b=s.extend({type:"dataZoom.slider",init:function(e,t){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=t},render:function(e,t,n,i){b.superApply(this,"render",arguments),o.createOrUpdate(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=e.get("orient"),!1!==this.dataZoomModel.get("show")?(i&&"dataZoom"===i.type&&i.from===this.uid||this._buildView(),this._updateView()):this.group.removeAll()},remove:function(){b.superApply(this,"remove",arguments),o.clear(this,"_dispatchZoomAction")},dispose:function(){b.superApply(this,"dispose",arguments),o.clear(this,"_dispatchZoomAction")},_buildView:function(){var e=this.group;e.removeAll(),this._resetLocation(),this._resetInterval();var t=this._displayables.barGroup=new a.Group;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),e.add(t),this._positionGroup()},_resetLocation:function(){var e=this.dataZoomModel,t=this.api,n=this._findCoordRect(),r={width:t.getWidth(),height:t.getHeight()},a=this._orient===g?{right:r.width-n.x-n.width,top:r.height-30-7,width:n.width,height:30}:{right:7,top:n.y,width:30,height:n.height},o=u.getLayoutParams(e.option);i.each(["right","top","width","height"],function(e){"ph"===o[e]&&(o[e]=a[e])});var s=u.getLayoutRect(o,r,e.padding);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],"vertical"===this._orient&&this._size.reverse()},_positionGroup:function(){var e=this.group,t=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),a=this._displayables.barGroup,o=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(n!==g||r?n===g&&r?{scale:o?[-1,1]:[-1,-1]}:"vertical"!==n||r?{scale:o?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:o?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:o?[1,1]:[1,-1]});var s=e.getBoundingRect([a]);e.attr("position",[t.x-s.x,t.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var e=this.dataZoomModel,t=this._size,n=this._displayables.barGroup;n.add(new d({silent:!0,shape:{x:0,y:0,width:t[0],height:t[1]},style:{fill:e.get("backgroundColor")},z2:-40})),n.add(new d({shape:{x:0,y:0,width:t[0],height:t[1]},style:{fill:"transparent"},z2:0,onclick:i.bind(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var e=this._dataShadowInfo=this._prepareDataShadowInfo();if(e){var t=this._size,n=e.series,r=n.getRawData(),o=n.getShadowDim?n.getShadowDim():e.otherDim;if(null!=o){var s=r.getDataExtent(o),l=.3*(s[1]-s[0]);s=[s[0]-l,s[1]+l];var u,c=[0,t[1]],d=[0,t[0]],f=[[t[0],0],[0,0]],p=[],m=d[1]/(r.count()-1),g=0,v=Math.round(r.count()/t[0]);r.each([o],function(e,t){if(v>0&&t%v)g+=m;else{var n=null==e||isNaN(e)||""===e,i=n?0:h(e,s,c,!0);n&&!u&&t?(f.push([f[f.length-1][0],0]),p.push([p[p.length-1][0],0])):!n&&u&&(f.push([g,0]),p.push([g,0])),f.push([g,i]),p.push([g,i]),g+=m,u=n}});var y=this.dataZoomModel;this._displayables.barGroup.add(new a.Polygon({shape:{points:f},style:i.defaults({fill:y.get("dataBackgroundColor")},y.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new a.Polyline({shape:{points:p},style:y.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var e=this.dataZoomModel,t=e.get("showDataShadow");if(!1!==t){var n,r=this.ecModel;return e.eachTargetAxis(function(a,o){var s=e.getAxisProxy(a.name,o).getTargetSeriesModels();i.each(s,function(e){if(!(n||!0!==t&&i.indexOf(y,e.get("type"))<0)){var s,l=r.getComponent(a.axis,o).axis,u={x:"y",y:"x",radius:"angle",angle:"radius"}[a.name],c=e.coordinateSystem;null!=u&&c.getOtherAxis&&(s=c.getOtherAxis(l).inverse),u=e.getData().mapDimension(u),n={thisAxis:l,series:e,thisDim:a.name,otherDim:u,otherAxisInverse:s}}},this)},this),n}},_renderHandle:function(){var e=this._displayables,t=e.handles=[],n=e.handleLabels=[],i=this._displayables.barGroup,o=this._size,s=this.dataZoomModel;i.add(e.filler=new d({draggable:!0,cursor:_(this._orient),drift:p(this._onDragMove,this,"all"),onmousemove:function(e){r.stop(e.event)},ondragstart:p(this._showDataInfo,this,!0),ondragend:p(this._onDragEnd,this),onmouseover:p(this._showDataInfo,this,!0),onmouseout:p(this._showDataInfo,this,!1),style:{fill:s.get("fillerColor"),textPosition:"inside"}})),i.add(new d(a.subPixelOptimizeRect({silent:!0,shape:{x:0,y:0,width:o[0],height:o[1]},style:{stroke:s.get("dataBackgroundColor")||s.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}}))),m([0,1],function(e){var o=a.createIcon(s.get("handleIcon"),{cursor:_(this._orient),draggable:!0,drift:p(this._onDragMove,this,e),onmousemove:function(e){r.stop(e.event)},ondragend:p(this._onDragEnd,this),onmouseover:p(this._showDataInfo,this,!0),onmouseout:p(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),u=o.getBoundingRect();this._handleHeight=l.parsePercent(s.get("handleSize"),this._size[1]),this._handleWidth=u.width/u.height*this._handleHeight,o.setStyle(s.getModel("handleStyle").getItemStyle());var c=s.get("handleColor");null!=c&&(o.style.fill=c),i.add(t[e]=o);var d=s.textStyleModel;this.group.add(n[e]=new a.Text({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",textFill:d.getTextColor(),textFont:d.getFont()},z2:10}))},this)},_resetInterval:function(){var e=this._range=this.dataZoomModel.getPercentRange(),t=this._getViewExtent();this._handleEnds=[h(e[0],[0,100],t,!0),h(e[1],[0,100],t,!0)]},_updateInterval:function(e,t){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),a=n.findRepresentativeAxisProxy().getMinMaxSpan(),o=[0,100];c(t,i,r,n.get("zoomLock")?"all":e,null!=a.minSpan?h(a.minSpan,o,r,!0):null,null!=a.maxSpan?h(a.maxSpan,o,r,!0):null);var s=this._range,l=this._range=f([h(i[0],r,o,!0),h(i[1],r,o,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},_updateView:function(e){var t=this._displayables,n=this._handleEnds,i=f(n.slice()),r=this._size;m([0,1],function(e){var i=t.handles[e],a=this._handleHeight;i.attr({scale:[a/2,a/2],position:[n[e],r[1]/2-a/2]})},this),t.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]}),this._updateDataInfo(e)},_updateDataInfo:function(e){var t=this.dataZoomModel,n=this._displayables,i=n.handleLabels,r=this._orient,o=["",""];if(t.get("showDetail")){var s=t.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,u=this._range,c=e?s.calculateDataWindow({start:u[0],end:u[1]}).valueWindow:s.getDataValueWindow();o=[this._formatLabel(c[0],l),this._formatLabel(c[1],l)]}}var d=f(this._handleEnds.slice());function h(e){var t=a.getTransform(n.handles[e].parent,this.group),s=a.transformDirection(0===e?"right":"left",t),l=this._handleWidth/2+v,u=a.applyTransform([d[e]+(0===e?-l:l),this._size[1]/2],t);i[e].setStyle({x:u[0],y:u[1],textVerticalAlign:r===g?"middle":s,textAlign:r===g?s:"center",text:o[e]})}h.call(this,0),h.call(this,1)},_formatLabel:function(e,t){var n=this.dataZoomModel,r=n.get("labelFormatter"),a=n.get("labelPrecision");null!=a&&"auto"!==a||(a=t.getPixelPrecision());var o=null==e||isNaN(e)?"":"category"===t.type||"time"===t.type?t.scale.getLabel(Math.round(e)):e.toFixed(Math.min(a,20));return i.isFunction(r)?r(e,o):i.isString(r)?r.replace("{value}",o):o},_showDataInfo:function(e){e=this._dragging||e;var t=this._displayables.handleLabels;t[0].attr("invisible",!e),t[1].attr("invisible",!e)},_onDragMove:function(e,t,n){this._dragging=!0;var i=this._displayables.barGroup.getLocalTransform(),r=a.applyTransform([t,n],i,!0),o=this._updateInterval(e,r[0]),s=this.dataZoomModel.get("realtime");this._updateView(!s),o&&s&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction()},_onClickPanelClick:function(e){var t=this._size,n=this._displayables.barGroup.transformCoordToLocal(e.offsetX,e.offsetY);if(!(n[0]<0||n[0]>t[0]||n[1]<0||n[1]>t[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,a=this._updateInterval("all",n[0]-r);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:e[0],end:e[1]})},_findCoordRect:function(){var e;if(m(this.getTargetCoordInfo(),function(t){if(!e&&t.length){var n=t[0].model.coordinateSystem;e=n.getRect&&n.getRect()}}),!e){var t=this.api.getWidth(),n=this.api.getHeight();e={x:.2*t,y:.2*n,width:.6*t,height:.6*n}}return e}});function _(e){return"vertical"===e?"ns-resize":"ew-resize"}var x=b;e.exports=x},Lv47:function(e,t,n){"use strict";var i=n("8r5Y");function r(){this.handlers=[]}r.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},r.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},r.prototype.forEach=function(e){i.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=r},M0mq:function(e,t,n){var i=n("/MtV");n("5ErN"),n("2fJA"),n("GCbS");var r=n("vKtP");i.registerVisual(r)},M34w:function(e,t,n){var i=n("YR6M"),r=n("bmdq"),a=n("i+pt"),o=i.extend({type:"series.heatmap",getInitialData:function(e,t){return r(this.getSource(),this,{generateCoord:"value"})},preventIncremental:function(){var e=a.get(this.get("coordinateSystem"));if(e&&e.dimensions)return"lng"===e.dimensions[0]&&"lat"===e.dimensions[1]},defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0}});e.exports=o},M3ql:function(e,t,n){var i=n("Q/cl"),r=n("abCA"),a=r.parsePercent,o=r.linearMap;e.exports=function(e,t,n){e.eachSeriesByType("funnel",function(e){var n=e.getData(),r=n.mapDimension("value"),s=e.get("sort"),l=function(e,t){return i.getLayoutRect(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}(e,t),u=function(e,t){for(var n=e.mapDimension("value"),i=e.mapArray(n,function(e){return e}),r=[],a="ascending"===t,o=0,s=e.count();o<s;o++)r[o]=o;return"function"==typeof t?r.sort(t):"none"!==t&&r.sort(function(e,t){return a?i[e]-i[t]:i[t]-i[e]}),r}(n,s),c=[a(e.get("minSize"),l.width),a(e.get("maxSize"),l.width)],d=n.getDataExtent(r),h=e.get("min"),f=e.get("max");null==h&&(h=Math.min(d[0],0)),null==f&&(f=d[1]);var p=e.get("funnelAlign"),m=e.get("gap"),g=(l.height-m*(n.count()-1))/n.count(),v=l.y,y=function(e,t){var i,a=n.get(r,e)||0,s=o(a,[h,f],c,!0);switch(p){case"left":i=l.x;break;case"center":i=l.x+(l.width-s)/2;break;case"right":i=l.x+l.width-s}return[[i,t],[i+s,t]]};"ascending"===s&&(g=-g,m=-m,v+=l.height,u=u.reverse());for(var b=0;b<u.length;b++){var _=u[b],x=u[b+1],w=n.getItemModel(_).get("itemStyle.height");null==w?w=g:(w=a(w,l.height),"ascending"===s&&(w=-w));var S=y(_,v),C=y(x,v+w);v+=w+m,n.setItemLayout(_,{points:S.concat(C.slice().reverse())})}!function(e){e.each(function(t){var n,i,r,a,o=e.getItemModel(t),s=o.getModel("label").get("position"),l=o.getModel("labelLine"),u=e.getItemLayout(t),c=u.points,d="inner"===s||"inside"===s||"center"===s;if(d)n="center",a=[[i=(c[0][0]+c[1][0]+c[2][0]+c[3][0])/4,r=(c[0][1]+c[1][1]+c[2][1]+c[3][1])/4],[i,r]];else{var h,f,p,m=l.get("length");"left"===s?(h=(c[3][0]+c[0][0])/2,f=(c[3][1]+c[0][1])/2,i=(p=h-m)-5,n="right"):(h=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,i=(p=h+m)+5,n="left"),a=[[h,f],[p,f]],r=f}u.label={linePoints:a,x:i,y:r,verticalAlign:"middle",textAlign:n,inside:d}})}(n)})}},M7eM:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("xWTI"),a=n("0jiU"),o=n("YYsL"),s=n("2xPE"),l=s.defaultDimValueGetters,u=s.DefaultDataProvider,c=n("aSSy").summarizeDimensions,d=i.isObject,h="e\0\0",f={float:"undefined"==typeof Float64Array?Array:Float64Array,int:"undefined"==typeof Int32Array?Array:Int32Array,ordinal:Array,number:Array,time:Array},p="undefined"==typeof Uint32Array?Array:Uint32Array,m="undefined"==typeof Uint16Array?Array:Uint16Array;function g(e){return e._rawCount>65535?p:m}var v=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_chunkSize","_chunkCount","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx"],y=["_extent","_approximateExtent","_rawExtent"];function b(e,t){i.each(v.concat(t.__wrappedMethods||[]),function(n){t.hasOwnProperty(n)&&(e[n]=t[n])}),e.__wrappedMethods=t.__wrappedMethods,i.each(y,function(n){e[n]=i.clone(t[n])}),e._calculationInfo=i.extend(t._calculationInfo)}var _=function(e,t){e=e||["x","y"];for(var n={},r=[],a={},o=0;o<e.length;o++){var s=e[o];i.isString(s)&&(s={name:s});var l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0),s.otherDims=s.otherDims||{},r.push(l),n[l]=s,s.index=o,s.createInvertedIndices&&(a[l]=[])}this.dimensions=r,this._dimensionInfos=n,this.hostModel=t,this.dataType,this._indices=null,this._count=0,this._rawCount=0,this._storage={},this._nameList=[],this._idList=[],this._optionModels=[],this._visual={},this._layout={},this._itemVisuals=[],this.hasItemVisual={},this._itemLayouts=[],this._graphicEls=[],this._chunkSize=1e5,this._chunkCount=0,this._rawData,this._rawExtent={},this._extent={},this._approximateExtent={},this._dimensionsSummary=c(this),this._invertedIndicesMap=a,this._calculationInfo={}},x=_.prototype;function w(e,t,n){var i;if(null!=t){var r=e._chunkSize,a=Math.floor(n/r),o=n%r,s=e.dimensions[t],l=e._storage[s][a];if(l){i=l[o];var u=e._dimensionInfos[s].ordinalMeta;u&&u.categories.length&&(i=u.categories[i])}}return i}function S(e){return e}function C(e){return e<this._count&&e>=0?this._indices[e]:-1}function M(e,t){var n=e._idList[t];return null==n&&(n=w(e,e._idDimIdx,t)),null==n&&(n=h+t),n}function k(e){return i.isArray(e)||(e=[e]),e}function T(e,t){var n=e.dimensions,r=new _(i.map(n,e.getDimensionInfo,e),e.hostModel);b(r,e);for(var a=r._storage={},o=e._storage,s=0;s<n.length;s++){var l=n[s];o[l]&&(i.indexOf(t,l)>=0?(a[l]=A(o[l]),r._rawExtent[l]=I(),r._extent[l]=null):a[l]=o[l])}return r}function A(e){for(var t,n,i=new Array(e.length),r=0;r<e.length;r++)i[r]=(t=e[r],n=void 0,(n=t.constructor)===Array?t.slice():new n(t));return i}function I(){return[1/0,-1/0]}x.type="list",x.hasItemOption=!0,x.getDimension=function(e){return isNaN(e)||(e=this.dimensions[e]||e),e},x.getDimensionInfo=function(e){return this._dimensionInfos[this.getDimension(e)]},x.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},x.mapDimension=function(e,t){var n=this._dimensionsSummary;if(null==t)return n.encodeFirstDimNotExtra[e];var i=n.encode[e];return!0===t?(i||[]).slice():i&&i[t]},x.initData=function(e,t,n){(o.isInstance(e)||i.isArrayLike(e))&&(e=new u(e,this.dimensions.length)),this._rawData=e,this._storage={},this._indices=null,this._nameList=t||[],this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=l[this._rawData.getSource().sourceFormat],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._rawExtent={},this._initDataFromProvider(0,e.count()),e.pure&&(this.hasItemOption=!1)},x.getProvider=function(){return this._rawData},x.appendData=function(e){var t=this._rawData,n=this.count();t.appendData(e);var i=t.count();t.persistent||(i+=n),this._initDataFromProvider(n,i)},x._initDataFromProvider=function(e,t){if(!(e>=t)){for(var n,r=this._chunkSize,a=this._rawData,o=this._storage,s=this.dimensions,l=s.length,u=this._dimensionInfos,c=this._nameList,d=this._idList,h=this._rawExtent,m=this._nameRepeatCount={},g=this._chunkCount,v=g-1,y=0;y<l;y++){h[O=s[y]]||(h[O]=I());var b=u[O];0===b.otherDims.itemName&&(n=this._nameDimIdx=y),0===b.otherDims.itemId&&(this._idDimIdx=y);var _=f[b.type];o[O]||(o[O]=[]);var x=o[O][v];if(x&&x.length<r){for(var w=new _(Math.min(t-v*r,r)),S=0;S<x.length;S++)w[S]=x[S];o[O][v]=w}for(var C=g*r;C<t;C+=r)o[O].push(new _(Math.min(t-C,r)));this._chunkCount=o[O].length}for(var M,k,T=new Array(l),A=e;A<t;A++){T=a.getItem(A,T);var E=Math.floor(A/r),D=A%r;for(C=0;C<l;C++){var O,P=o[O=s[C]][E],L=this._dimValueGetter(T,O,A,C);P[D]=L;var R=h[O];L<R[0]&&(R[0]=L),L>R[1]&&(R[1]=L)}if(!a.pure){var N=c[A];if(T&&null==N)if(null!=T.name)c[A]=N=T.name;else if(null!=n){var B=s[n],F=o[B][E];if(F){N=F[D];var z=u[B].ordinalMeta;z&&z.categories.length&&(N=z.categories[N])}}var V=null==T?null:T.id;null==V&&null!=N&&(m[N]=m[N]||0,V=N,m[N]>0&&(V+="__ec__"+m[N]),m[N]++),null!=V&&(d[A]=V)}}!a.persistent&&a.clean&&a.clean(),this._rawCount=this._count=t,this._extent={},k=(M=this)._invertedIndicesMap,i.each(k,function(e,t){var n=M._dimensionInfos[t],i=n.ordinalMeta;if(i){e=k[t]=new p(i.categories.length);for(var r=0;r<e.length;r++)e[r]=NaN;for(var r=0;r<M._count;r++)e[M.get(t,r)]=r}})}},x.count=function(){return this._count},x.getIndices=function(){var e=this._indices;if(e){var t=e.constructor,n=this._count;if(t===Array){r=new t(n);for(var i=0;i<n;i++)r[i]=e[i]}else r=new t(e.buffer,0,n)}else{var r=new(t=g(this))(this.count());for(i=0;i<r.length;i++)r[i]=i}return r},x.get=function(e,t){if(!(t>=0&&t<this._count))return NaN;var n=this._storage;if(!n[e])return NaN;t=this.getRawIndex(t);var i=Math.floor(t/this._chunkSize),r=t%this._chunkSize;return n[e][i][r]},x.getByRawIndex=function(e,t){if(!(t>=0&&t<this._rawCount))return NaN;var n=this._storage[e];if(!n)return NaN;var i=Math.floor(t/this._chunkSize),r=t%this._chunkSize;return n[i][r]},x._getFast=function(e,t){var n=Math.floor(t/this._chunkSize),i=t%this._chunkSize;return this._storage[e][n][i]},x.getValues=function(e,t){var n=[];i.isArray(e)||(t=e,e=this.dimensions);for(var r=0,a=e.length;r<a;r++)n.push(this.get(e[r],t));return n},x.hasValue=function(e){for(var t=this._dimensionsSummary.dataDimsOnCoord,n=this._dimensionInfos,i=0,r=t.length;i<r;i++)if("ordinal"!==n[t[i]].type&&isNaN(this.get(t[i],e)))return!1;return!0},x.getDataExtent=function(e){e=this.getDimension(e);var t=this._storage[e],n=I();if(!t)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[e].slice();if(i=this._extent[e])return i.slice();for(var a=(i=n)[0],o=i[1],s=0;s<r;s++){var l=this._getFast(e,this.getRawIndex(s));l<a&&(a=l),l>o&&(o=l)}return i=[a,o],this._extent[e]=i,i},x.getApproximateExtent=function(e){return e=this.getDimension(e),this._approximateExtent[e]||this.getDataExtent(e)},x.setApproximateExtent=function(e,t){t=this.getDimension(t),this._approximateExtent[t]=e.slice()},x.getCalculationInfo=function(e){return this._calculationInfo[e]},x.setCalculationInfo=function(e,t){d(e)?i.extend(this._calculationInfo,e):this._calculationInfo[e]=t},x.getSum=function(e){var t=0;if(this._storage[e])for(var n=0,i=this.count();n<i;n++){var r=this.get(e,n);isNaN(r)||(t+=r)}return t},x.getMedian=function(e){var t=[];this.each(e,function(e,n){isNaN(e)||t.push(e)});var n=[].concat(t).sort(function(e,t){return e-t}),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},x.rawIndexOf=function(e,t){var n=(e&&this._invertedIndicesMap[e])[t];return null==n||isNaN(n)?-1:n},x.indexOfName=function(e){for(var t=0,n=this.count();t<n;t++)if(this.getName(t)===e)return t;return-1},x.indexOfRawIndex=function(e){if(!this._indices)return e;if(e>=this._rawCount||e<0)return-1;var t=this._indices,n=t[e];if(null!=n&&n<this._count&&n===e)return e;for(var i=0,r=this._count-1;i<=r;){var a=(i+r)/2|0;if(t[a]<e)i=a+1;else{if(!(t[a]>e))return a;r=a-1}}return-1},x.indicesOfNearest=function(e,t,n){var i=[];if(!this._storage[e])return i;null==n&&(n=1/0);for(var r=Number.MAX_VALUE,a=-1,o=0,s=this.count();o<s;o++){var l=t-this.get(e,o),u=Math.abs(l);l<=n&&u<=r&&((u<r||l>=0&&a<0)&&(r=u,a=l,i.length=0),i.push(o))}return i},x.getRawIndex=S,x.getRawDataItem=function(e){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(e));for(var t=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];t.push(this.get(i,e))}return t},x.getName=function(e){var t=this.getRawIndex(e);return this._nameList[t]||w(this,this._nameDimIdx,t)||""},x.getId=function(e){return M(this,this.getRawIndex(e))},x.each=function(e,t,n,r){"use strict";if(this._count){"function"==typeof e&&(r=n,n=t,t=e,e=[]),n=n||r||this;for(var a=(e=i.map(k(e),this.getDimension,this)).length,o=0;o<this.count();o++)switch(a){case 0:t.call(n,o);break;case 1:t.call(n,this.get(e[0],o),o);break;case 2:t.call(n,this.get(e[0],o),this.get(e[1],o),o);break;default:for(var s=0,l=[];s<a;s++)l[s]=this.get(e[s],o);l[s]=o,t.apply(n,l)}}},x.filterSelf=function(e,t,n,r){"use strict";if(this._count){"function"==typeof e&&(r=n,n=t,t=e,e=[]),n=n||r||this,e=i.map(k(e),this.getDimension,this);for(var a=this.count(),o=new(g(this))(a),s=[],l=e.length,u=0,c=e[0],d=0;d<a;d++){var h,f=this.getRawIndex(d);if(0===l)h=t.call(n,d);else if(1===l){var p=this._getFast(c,f);h=t.call(n,p,d)}else{for(var m=0;m<l;m++)s[m]=this._getFast(c,f);s[m]=d,h=t.apply(n,s)}h&&(o[u++]=f)}return u<a&&(this._indices=o),this._count=u,this._extent={},this.getRawIndex=this._indices?C:S,this}},x.selectRange=function(e){"use strict";if(this._count){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);var i=t.length;if(i){var r=this.count(),a=new(g(this))(r),o=0,s=t[0],l=e[s][0],u=e[s][1],c=!1;if(!this._indices){var d=0;if(1===i){for(var h=this._storage[t[0]],f=0;f<this._chunkCount;f++)for(var p=h[f],m=Math.min(this._count-f*this._chunkSize,this._chunkSize),v=0;v<m;v++){((w=p[v])>=l&&w<=u||isNaN(w))&&(a[o++]=d),d++}c=!0}else if(2===i){h=this._storage[s];var y=this._storage[t[1]],b=e[t[1]][0],_=e[t[1]][1];for(f=0;f<this._chunkCount;f++){p=h[f];var x=y[f];for(m=Math.min(this._count-f*this._chunkSize,this._chunkSize),v=0;v<m;v++){var w=p[v],M=x[v];(w>=l&&w<=u||isNaN(w))&&(M>=b&&M<=_||isNaN(M))&&(a[o++]=d),d++}}c=!0}}if(!c)if(1===i)for(v=0;v<r;v++){var k=this.getRawIndex(v);((w=this._getFast(s,k))>=l&&w<=u||isNaN(w))&&(a[o++]=k)}else for(v=0;v<r;v++){var T=!0;for(k=this.getRawIndex(v),f=0;f<i;f++){var A=t[f];((w=this._getFast(n,k))<e[A][0]||w>e[A][1])&&(T=!1)}T&&(a[o++]=this.getRawIndex(v))}return o<r&&(this._indices=a),this._count=o,this._extent={},this.getRawIndex=this._indices?C:S,this}}},x.mapArray=function(e,t,n,i){"use strict";"function"==typeof e&&(i=n,n=t,t=e,e=[]),n=n||i||this;var r=[];return this.each(e,function(){r.push(t&&t.apply(this,arguments))},n),r},x.map=function(e,t,n,r){"use strict";n=n||r||this;var a=T(this,e=i.map(k(e),this.getDimension,this));a._indices=this._indices,a.getRawIndex=a._indices?C:S;for(var o=a._storage,s=[],l=this._chunkSize,u=e.length,c=this.count(),d=[],h=a._rawExtent,f=0;f<c;f++){for(var p=0;p<u;p++)d[p]=this.get(e[p],f);d[u]=f;var m=t&&t.apply(n,d);if(null!=m){"object"!=typeof m&&(s[0]=m,m=s);for(var g=this.getRawIndex(f),v=Math.floor(g/l),y=g%l,b=0;b<m.length;b++){var _=e[b],x=m[b],w=h[_],M=o[_];M&&(M[v][y]=x),x<w[0]&&(w[0]=x),x>w[1]&&(w[1]=x)}}}return a},x.downSample=function(e,t,n,i){for(var r=T(this,[e]),a=r._storage,o=[],s=Math.floor(1/t),l=a[e],u=this.count(),c=this._chunkSize,d=r._rawExtent[e],h=new(g(this))(u),f=0,p=0;p<u;p+=s){s>u-p&&(s=u-p,o.length=s);for(var m=0;m<s;m++){var v=this.getRawIndex(p+m),y=Math.floor(v/c),b=v%c;o[m]=l[y][b]}var _=n(o),x=this.getRawIndex(Math.min(p+i(o,_)||0,u-1)),w=x%c;l[Math.floor(x/c)][w]=_,_<d[0]&&(d[0]=_),_>d[1]&&(d[1]=_),h[f++]=x}return r._count=f,r._indices=h,r.getRawIndex=C,r},x.getItemModel=function(e){var t=this.hostModel;return new r(this.getRawDataItem(e),t,t&&t.ecModel)},x.diff=function(e){var t=this;return new a(e?e.getIndices():[],this.getIndices(),function(t){return M(e,t)},function(e){return M(t,e)})},x.getVisual=function(e){var t=this._visual;return t&&t[e]},x.setVisual=function(e,t){if(d(e))for(var n in e)e.hasOwnProperty(n)&&this.setVisual(n,e[n]);else this._visual=this._visual||{},this._visual[e]=t},x.setLayout=function(e,t){if(d(e))for(var n in e)e.hasOwnProperty(n)&&this.setLayout(n,e[n]);else this._layout[e]=t},x.getLayout=function(e){return this._layout[e]},x.getItemLayout=function(e){return this._itemLayouts[e]},x.setItemLayout=function(e,t,n){this._itemLayouts[e]=n?i.extend(this._itemLayouts[e]||{},t):t},x.clearItemLayouts=function(){this._itemLayouts.length=0},x.getItemVisual=function(e,t,n){var i=this._itemVisuals[e],r=i&&i[t];return null!=r||n?r:this.getVisual(t)},x.setItemVisual=function(e,t,n){var i=this._itemVisuals[e]||{},r=this.hasItemVisual;if(this._itemVisuals[e]=i,d(t))for(var a in t)t.hasOwnProperty(a)&&(i[a]=t[a],r[a]=!0);else i[t]=n,r[t]=!0},x.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var E=function(e){e.seriesIndex=this.seriesIndex,e.dataIndex=this.dataIndex,e.dataType=this.dataType};x.setItemGraphicEl=function(e,t){var n=this.hostModel;t&&(t.dataIndex=e,t.dataType=this.dataType,t.seriesIndex=n&&n.seriesIndex,"group"===t.type&&t.traverse(E,t)),this._graphicEls[e]=t},x.getItemGraphicEl=function(e){return this._graphicEls[e]},x.eachItemGraphicEl=function(e,t){i.each(this._graphicEls,function(n,i){n&&e&&e.call(t,n,i)})},x.cloneShallow=function(e){if(!e){var t=i.map(this.dimensions,this.getDimensionInfo,this);e=new _(t,this.hostModel)}if(e._storage=this._storage,b(e,this),this._indices){var n=this._indices.constructor;e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?C:S,e},x.wrapMethod=function(e,t){var n=this[e];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(e),this[e]=function(){var e=n.apply(this,arguments);return t.apply(this,[e].concat(i.slice(arguments)))})},x.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],x.CHANGABLE_METHODS=["filterSelf","selectRange"];var D=_;e.exports=D},M9Ps:function(e,t){t.eachAfter=function(e,t,n){for(var i,r=[e],a=[];i=r.pop();)if(a.push(i),i.isExpand){var o=i.children;if(o.length)for(var s=0;s<o.length;s++)r.push(o[s])}for(;i=a.pop();)t(i,n)},t.eachBefore=function(e,t){for(var n,i=[e];n=i.pop();)if(t(n),n.isExpand){var r=n.children;if(r.length)for(var a=r.length-1;a>=0;a--)i.push(r[a])}}},ME4A:function(e,t,n){var i=n("GKMz"),r=n("OGtO"),a=n("Dn9c"),o=n("+sAc"),s=[n("4uX9"),n("Mayl"),n("7k5d"),n("gSu5")];function l(e,t,n,r,a){o.call(this,e),this.map=t,this._nameCoordMap=i.createHashMap(),this.loadGeoJson(n,r,a)}function u(e,t,n,i){var r=n.geoModel,a=n.seriesModel,o=r?r.coordinateSystem:a?a.coordinateSystem||(a.getReferringComponents("geo")[0]||{}).coordinateSystem:null;return o===this?o[e](i):null}l.prototype={constructor:l,type:"geo",dimensions:["lng","lat"],containCoord:function(e){for(var t=this.regions,n=0;n<t.length;n++)if(t[n].contain(e))return!0;return!1},loadGeoJson:function(e,t,n){try{this.regions=e?a(e):[]}catch(e){throw"Invalid geoJson format\n"+e.message}t=t||{},n=n||{};for(var r=this.regions,o=i.createHashMap(),l=0;l<r.length;l++){var u=r[l].name;u=n.hasOwnProperty(u)?n[u]:u,r[l].name=u,o.set(u,r[l]),this.addGeoCoord(u,r[l].center);var c=t[u];c&&r[l].transformTo(c.left,c.top,c.width,c.height)}this._regionsMap=o,this._rect=null,i.each(s,function(e){e(this)},this)},transformTo:function(e,t,n,i){var a=this.getBoundingRect();(a=a.clone()).y=-a.y-a.height;var o=this._rawTransformable;o.transform=a.calculateTransform(new r(e,t,n,i)),o.decomposeTransform();var s=o.scale;s[1]=-s[1],o.updateTransform(),this._updateTransform()},getRegion:function(e){return this._regionsMap.get(e)},getRegionByCoord:function(e){for(var t=this.regions,n=0;n<t.length;n++)if(t[n].contain(e))return t[n]},addGeoCoord:function(e,t){this._nameCoordMap.set(e,t)},getGeoCoord:function(e){return this._nameCoordMap.get(e)},getBoundingRect:function(){if(this._rect)return this._rect;for(var e,t=this.regions,n=0;n<t.length;n++){var i=t[n].getBoundingRect();(e=e||i.clone()).union(i)}return this._rect=e||new r(0,0,0,0)},dataToPoint:function(e,t,n){if("string"==typeof e&&(e=this.getGeoCoord(e)),e)return o.prototype.dataToPoint.call(this,e,t,n)},convertToPixel:i.curry(u,"dataToPoint"),convertFromPixel:i.curry(u,"pointToData")},i.mixin(l,o);var c=l;e.exports=c},MP34:function(e,t){function n(e,t){var n=e[t]-e[1-t];return{span:Math.abs(n),sign:n>0?-1:n<0?1:t?-1:1}}function i(e,t){return Math.min(t[1],Math.max(t[0],e))}e.exports=function(e,t,r,a,o,s){t[0]=i(t[0],r),t[1]=i(t[1],r),e=e||0;var l=r[1]-r[0];null!=o&&(o=i(o,[0,l])),null!=s&&(s=Math.max(s,null!=o?o:0)),"all"===a&&(o=s=Math.abs(t[1]-t[0]),a=0);var u=n(t,a);t[a]+=e;var c=o||0,d=r.slice();u.sign<0?d[0]+=c:d[1]-=c,t[a]=i(t[a],d);var h=n(t,a);return null!=o&&(h.sign!==u.sign||h.span<o)&&(t[1-a]=t[a]+u.sign*o),h=n(t,a),null!=s&&h.span>s&&(t[1-a]=t[a]+h.sign*s),t}},MPog:function(e,t,n){var i=n("GKMz"),r=i.retrieve2,a=i.retrieve3,o=i.each,s=i.normalizeCssArray,l=i.isString,u=i.isObject,c=n("gxMf"),d=n("vO1E"),h=n("Pp7o"),f=n("+kxT"),p={left:1,right:1,center:1},m={top:1,bottom:1,middle:1};function g(e){if(e){e.font=c.makeFont(e);var t=e.textAlign;"middle"===t&&(t="center"),e.textAlign=null==t||p[t]?t:"left";var n=e.textVerticalAlign||e.textBaseline;"center"===n&&(n="middle"),e.textVerticalAlign=null==n||m[n]?n:"top",e.textPadding&&(e.textPadding=s(e.textPadding))}}function v(e,t,n,i,r){if(n&&t.textRotation){var a=t.textOrigin;"center"===a?(i=n.width/2+n.x,r=n.height/2+n.y):a&&(i=a[0]+n.x,r=a[1]+n.y),e.translate(i,r),e.rotate(-t.textRotation),e.translate(-i,-r)}}function y(e,t,n,i,o,s,l,u){var d=i.rich[n.styleName]||{},h=n.textVerticalAlign,f=s+o/2;"top"===h?f=s+n.height/2:"bottom"===h&&(f=s+o-n.height/2),!n.isLineHolder&&b(d)&&_(e,t,d,"right"===u?l-n.width:"center"===u?l-n.width/2:l,f-n.height/2,n.width,n.height);var p=n.textPadding;p&&(l=T(l,u,p),f-=n.height/2-p[2]-n.textHeight/2),S(t,"shadowBlur",a(d.textShadowBlur,i.textShadowBlur,0)),S(t,"shadowColor",d.textShadowColor||i.textShadowColor||"transparent"),S(t,"shadowOffsetX",a(d.textShadowOffsetX,i.textShadowOffsetX,0)),S(t,"shadowOffsetY",a(d.textShadowOffsetY,i.textShadowOffsetY,0)),S(t,"textAlign",u),S(t,"textBaseline","middle"),S(t,"font",n.font||c.DEFAULT_FONT);var m=C(d.textStroke||i.textStroke,v),g=M(d.textFill||i.textFill),v=r(d.textStrokeWidth,i.textStrokeWidth);m&&(S(t,"lineWidth",v),S(t,"strokeStyle",m),t.strokeText(n.text,l,f)),g&&(S(t,"fillStyle",g),t.fillText(n.text,l,f))}function b(e){return e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor}function _(e,t,n,i,r,a,o){var s=n.textBackgroundColor,c=n.textBorderWidth,f=n.textBorderColor,p=l(s);if(S(t,"shadowBlur",n.textBoxShadowBlur||0),S(t,"shadowColor",n.textBoxShadowColor||"transparent"),S(t,"shadowOffsetX",n.textBoxShadowOffsetX||0),S(t,"shadowOffsetY",n.textBoxShadowOffsetY||0),p||c&&f){t.beginPath();var m=n.textBorderRadius;m?d.buildPath(t,{x:i,y:r,width:a,height:o,r:m}):t.rect(i,r,a,o),t.closePath()}if(p)S(t,"fillStyle",s),t.fill();else if(u(s)){var g=s.image;(g=h.createOrUpdateImage(g,null,e,x,s))&&h.isImageReady(g)&&t.drawImage(g,i,r,a,o)}c&&f&&(S(t,"lineWidth",c),S(t,"strokeStyle",f),t.stroke())}function x(e,t){t.image=e}function w(e,t,n){var i=t.x||0,r=t.y||0,a=t.textAlign,o=t.textVerticalAlign;if(n){var s=t.textPosition;if(s instanceof Array)i=n.x+k(s[0],n.width),r=n.y+k(s[1],n.height);else{var l=c.adjustTextPositionOnRect(s,n,t.textDistance);i=l.x,r=l.y,a=a||l.textAlign,o=o||l.textVerticalAlign}var u=t.textOffset;u&&(i+=u[0],r+=u[1])}return{baseX:i,baseY:r,textAlign:a,textVerticalAlign:o}}function S(e,t,n){return e[t]=f(e,t,n),e[t]}function C(e,t){return null==e||t<=0||"transparent"===e||"none"===e?null:e.image||e.colorStops?"#000":e}function M(e){return null==e||"none"===e?null:e.image||e.colorStops?"#000":e}function k(e,t){return"string"==typeof e?e.lastIndexOf("%")>=0?parseFloat(e)/100*t:parseFloat(e):e}function T(e,t,n){return"right"===t?e-n[1]:"center"===t?e+n[3]/2-n[1]/2:e+n[3]}t.normalizeTextStyle=function(e){return g(e),o(e.rich,g),e},t.renderText=function(e,t,n,i,r){i.rich?function(e,t,n,i,r){var a=e.__textCotentBlock;a&&!e.__dirty||(a=e.__textCotentBlock=c.parseRichText(n,i)),function(e,t,n,i,r){var a=n.width,o=n.outerWidth,s=n.outerHeight,l=i.textPadding,u=w(0,i,r),d=u.baseX,h=u.baseY,f=u.textAlign,p=u.textVerticalAlign;v(t,i,r,d,h);var m=c.adjustTextX(d,o,f),g=c.adjustTextY(h,s,p),x=m,S=g;l&&(x+=l[3],S+=l[0]);var C=x+a;b(i)&&_(e,t,i,m,g,o,s);for(var M=0;M<n.lines.length;M++){for(var k,T=n.lines[M],A=T.tokens,I=A.length,E=T.lineHeight,D=T.width,O=0,P=x,L=C,R=I-1;O<I&&(!(k=A[O]).textAlign||"left"===k.textAlign);)y(e,t,k,i,E,S,P,"left"),D-=k.width,P+=k.width,O++;for(;R>=0&&"right"===(k=A[R]).textAlign;)y(e,t,k,i,E,S,L,"right"),D-=k.width,L-=k.width,R--;for(P+=(a-(P-x)-(C-L)-D)/2;O<=R;)k=A[O],y(e,t,k,i,E,S,P+k.width/2,"center"),P+=k.width,O++;S+=E}}(e,t,a,i,r)}(e,t,n,i,r):function(e,t,n,i,r){var a=S(t,"font",i.font||c.DEFAULT_FONT),o=i.textPadding,s=e.__textCotentBlock;s&&!e.__dirty||(s=e.__textCotentBlock=c.parsePlainText(n,a,o,i.truncate));var l=s.outerHeight,u=s.lines,d=s.lineHeight,h=w(0,i,r),f=h.baseX,p=h.baseY,m=h.textAlign,g=h.textVerticalAlign;v(t,i,r,f,p);var y=c.adjustTextY(p,l,g),x=f,k=y,A=b(i);if(A||o){var I=c.getWidth(n,a),E=I;o&&(E+=o[1]+o[3]);var D=c.adjustTextX(f,E,m);A&&_(e,t,i,D,y,E,l),o&&(x=T(f,m,o),k+=o[0])}S(t,"textAlign",m||"left"),S(t,"textBaseline","middle"),S(t,"shadowBlur",i.textShadowBlur||0),S(t,"shadowColor",i.textShadowColor||"transparent"),S(t,"shadowOffsetX",i.textShadowOffsetX||0),S(t,"shadowOffsetY",i.textShadowOffsetY||0),k+=d/2;var O=i.textStrokeWidth,P=C(i.textStroke,O),L=M(i.textFill);P&&(S(t,"lineWidth",O),S(t,"strokeStyle",P)),L&&S(t,"fillStyle",L);for(var R=0;R<u.length;R++)P&&t.strokeText(u[R],x,k),L&&t.fillText(u[R],x,k),k+=d}(e,t,n,i,r)},t.getStroke=C,t.getFill=M,t.needDrawText=function(e,t){return null!=e&&(e||t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor||t.textPadding)}},MXDK:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("7eLB"),o=i.extendComponentModel({type:"toolbox",layoutMode:{type:"box",ignoreSize:!0},optionUpdated:function(){o.superApply(this,"optionUpdated",arguments),r.each(this.option.feature,function(e,t){var n=a.get(t);n&&r.merge(e,n.defaultOption)})},defaultOption:{show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}}}}),s=o;e.exports=s},Mayl:function(e,t,n){var i=n("GKMz"),r={"鍗楁捣璇稿矝":[32,80],"骞夸笢":[0,-10],"棣欐腐":[10,5],"婢抽棬":[-10,10],"澶╂触":[5,5]};e.exports=function(e){i.each(e.regions,function(e){var t=r[e.name];if(t){var n=e.center;n[0]+=t[0]/10.5,n[1]+=-t[1]/14}})}},Mc0f:function(e,t,n){var i=n("zBeA").extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}}});e.exports=i},Mcur:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},"MdZ+":function(e,t,n){n("XKuZ"),n("7aKb"),n("wK34")},Mf6k:function(e,t,n){var i=n("Qieq"),r=n("M7eM"),a=n("GKMz"),o=a.extend,s=a.isArray;e.exports=function(e,t,n){t=s(t)&&{coordDimensions:t}||o({},t);var a=e.getSource(),l=i(a,t),u=new r(l,e);return u.initData(a,n),u}},MiuX:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("jP6M"),a=i.extendComponentView({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(e,t,n,i){this.axisPointerClass&&r.fixValue(e),a.superApply(this,"render",arguments),o(this,e,t,n,i,!0)},updateAxisPointer:function(e,t,n,i,r){o(this,e,t,n,i,!1)},remove:function(e,t){var n=this._axisPointer;n&&n.remove(t),a.superApply(this,"remove",arguments)},dispose:function(e,t){s(this,t),a.superApply(this,"dispose",arguments)}});function o(e,t,n,i,o,l){var u=a.getAxisPointerClass(e.axisPointerClass);if(u){var c=r.getAxisPointerModel(t);c?(e._axisPointer||(e._axisPointer=new u)).render(t,c,i,l):s(e,i)}}function s(e,t,n){var i=e._axisPointer;i&&i.dispose(t,n),e._axisPointer=null}var l=[];a.registerAxisPointerClass=function(e,t){l[e]=t},a.getAxisPointerClass=function(e){return e&&l[e]};var u=a;e.exports=u},Mp8l:function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=n("xWTI"),o=["axisLine","axisLabel","axisTick","splitLine","splitArea"];function s(e,t,n){t[1]>t[0]&&(t=t.slice().reverse());var i=e.coordToPoint([t[0],n]),r=e.coordToPoint([t[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function l(e){return e.getRadiusAxis().inverse?0:1}function u(e){var t=e[0],n=e[e.length-1];t&&n&&Math.abs(Math.abs(t.coord-n.coord)-360)<1e-4&&e.pop()}var c=n("MiuX").extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(e,t){if(this.group.removeAll(),e.get("show")){var n=e.axis,r=n.polar,a=r.getRadiusAxis().getExtent(),s=n.getTicksCoords(),l=i.map(n.getViewLabels(),function(e){return(e=i.clone(e)).coord=n.dataToCoord(e.tickValue),e});u(l),u(s),i.each(o,function(t){!e.get(t+".show")||n.scale.isBlank()&&"axisLine"!==t||this["_"+t](e,r,s,a,l)},this)}},_axisLine:function(e,t,n,i){var a=e.getModel("axisLine.lineStyle"),o=new r.Circle({shape:{cx:t.cx,cy:t.cy,r:i[l(t)]},style:a.getLineStyle(),z2:1,silent:!0});o.style.fill=null,this.group.add(o)},_axisTick:function(e,t,n,a){var o=e.getModel("axisTick"),u=(o.get("inside")?-1:1)*o.get("length"),c=a[l(t)],d=i.map(n,function(e){return new r.Line({shape:s(t,[c,c+u],e.coord)})});this.group.add(r.mergePath(d,{style:i.defaults(o.getModel("lineStyle").getLineStyle(),{stroke:e.get("axisLine.lineStyle.color")})}))},_axisLabel:function(e,t,n,o,s){var u=e.getCategories(!0),c=e.getModel("axisLabel"),d=c.get("margin");i.each(s,function(n,i){var s=c,h=n.tickValue,f=o[l(t)],p=t.coordToPoint([f+d,n.coord]),m=t.cx,g=t.cy,v=Math.abs(p[0]-m)/f<.3?"center":p[0]>m?"left":"right",y=Math.abs(p[1]-g)/f<.3?"middle":p[1]>g?"top":"bottom";u&&u[h]&&u[h].textStyle&&(s=new a(u[h].textStyle,c,c.ecModel));var b=new r.Text({silent:!0});this.group.add(b),r.setTextStyle(b.style,s,{x:p[0],y:p[1],textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),text:n.formattedLabel,textAlign:v,textVerticalAlign:y})},this)},_splitLine:function(e,t,n,a){var o=e.getModel("splitLine").getModel("lineStyle"),l=o.get("color"),u=0;l=l instanceof Array?l:[l];for(var c=[],d=0;d<n.length;d++){var h=u++%l.length;c[h]=c[h]||[],c[h].push(new r.Line({shape:s(t,a,n[d].coord)}))}for(d=0;d<c.length;d++)this.group.add(r.mergePath(c[d],{style:i.defaults({stroke:l[d%l.length]},o.getLineStyle()),silent:!0,z:e.get("z")}))},_splitArea:function(e,t,n,a){if(n.length){var o=e.getModel("splitArea").getModel("areaStyle"),s=o.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],c=Math.PI/180,d=-n[0].coord*c,h=Math.min(a[0],a[1]),f=Math.max(a[0],a[1]),p=e.get("clockwise"),m=1;m<n.length;m++){var g=l++%s.length;u[g]=u[g]||[],u[g].push(new r.Sector({shape:{cx:t.cx,cy:t.cy,r0:h,r:f,startAngle:d,endAngle:-n[m].coord*c,clockwise:p},silent:!0})),d=-n[m].coord*c}for(m=0;m<u.length;m++)this.group.add(r.mergePath(u[m],{style:i.defaults({fill:s[m%s.length]},o.getAreaStyle()),silent:!0}))}}});e.exports=c},"MqD/":function(e,t,n){var i=n("XvZ9"),r=n("go9Q"),a=n("/r4/"),o=n("J35F"),s=n("Mcur"),l=n("SS50"),u=Object.getOwnPropertyDescriptor;t.f=n("sjnA")?u:function(e,t){if(e=a(e),t=o(t,!0),l)try{return u(e,t)}catch(e){}if(s(e,t))return r(!i.f.call(e,t),e[t])}},Mt3s:function(e,t){var n=32,i=7;function r(e,t,n,i){var r=t+1;if(r===n)return 1;if(i(e[r++],e[t])<0){for(;r<n&&i(e[r],e[r-1])<0;)r++;!function(e,t,n){n--;for(;t<n;){var i=e[t];e[t++]=e[n],e[n--]=i}}(e,t,r)}else for(;r<n&&i(e[r],e[r-1])>=0;)r++;return r-t}function a(e,t,n,i,r){for(i===t&&i++;i<n;i++){for(var a,o=e[i],s=t,l=i;s<l;)r(o,e[a=s+l>>>1])<0?l=a:s=a+1;var u=i-s;switch(u){case 3:e[s+3]=e[s+2];case 2:e[s+2]=e[s+1];case 1:e[s+1]=e[s];break;default:for(;u>0;)e[s+u]=e[s+u-1],u--}e[s]=o}}function o(e,t,n,i,r,a){var o=0,s=0,l=1;if(a(e,t[n+r])>0){for(s=i-r;l<s&&a(e,t[n+r+l])>0;)o=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),o+=r,l+=r}else{for(s=r+1;l<s&&a(e,t[n+r-l])<=0;)o=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=o;o=r-l,l=r-u}for(o++;o<l;){var c=o+(l-o>>>1);a(e,t[n+c])>0?o=c+1:l=c}return l}function s(e,t,n,i,r,a){var o=0,s=0,l=1;if(a(e,t[n+r])<0){for(s=r+1;l<s&&a(e,t[n+r-l])<0;)o=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=o;o=r-l,l=r-u}else{for(s=i-r;l<s&&a(e,t[n+r+l])>=0;)o=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),o+=r,l+=r}for(o++;o<l;){var c=o+(l-o>>>1);a(e,t[n+c])<0?l=c:o=c+1}return l}function l(e,t){var n,r,a,l=i,u=0;n=e.length;var c=[];function d(n){var d=r[n],h=a[n],f=r[n+1],p=a[n+1];a[n]=h+p,n===u-3&&(r[n+1]=r[n+2],a[n+1]=a[n+2]),u--;var m=s(e[f],e,d,h,0,t);d+=m,0!==(h-=m)&&0!==(p=o(e[d+h-1],e,f,p,p-1,t))&&(h<=p?function(n,r,a,u){var d=0;for(d=0;d<r;d++)c[d]=e[n+d];var h=0,f=a,p=n;if(e[p++]=e[f++],0==--u){for(d=0;d<r;d++)e[p+d]=c[h+d];return}if(1===r){for(d=0;d<u;d++)e[p+d]=e[f+d];return void(e[p+u]=c[h])}var m,g,v,y=l;for(;;){m=0,g=0,v=!1;do{if(t(e[f],c[h])<0){if(e[p++]=e[f++],g++,m=0,0==--u){v=!0;break}}else if(e[p++]=c[h++],m++,g=0,1==--r){v=!0;break}}while((m|g)<y);if(v)break;do{if(0!==(m=s(e[f],c,h,r,0,t))){for(d=0;d<m;d++)e[p+d]=c[h+d];if(p+=m,h+=m,(r-=m)<=1){v=!0;break}}if(e[p++]=e[f++],0==--u){v=!0;break}if(0!==(g=o(c[h],e,f,u,0,t))){for(d=0;d<g;d++)e[p+d]=e[f+d];if(p+=g,f+=g,0===(u-=g)){v=!0;break}}if(e[p++]=c[h++],1==--r){v=!0;break}y--}while(m>=i||g>=i);if(v)break;y<0&&(y=0),y+=2}if((l=y)<1&&(l=1),1===r){for(d=0;d<u;d++)e[p+d]=e[f+d];e[p+u]=c[h]}else{if(0===r)throw new Error;for(d=0;d<r;d++)e[p+d]=c[h+d]}}(d,h,f,p):function(n,r,a,u){var d=0;for(d=0;d<u;d++)c[d]=e[a+d];var h=n+r-1,f=u-1,p=a+u-1,m=0,g=0;if(e[p--]=e[h--],0==--r){for(m=p-(u-1),d=0;d<u;d++)e[m+d]=c[d];return}if(1===u){for(g=(p-=r)+1,m=(h-=r)+1,d=r-1;d>=0;d--)e[g+d]=e[m+d];return void(e[p]=c[f])}var v=l;for(;;){var y=0,b=0,_=!1;do{if(t(c[f],e[h])<0){if(e[p--]=e[h--],y++,b=0,0==--r){_=!0;break}}else if(e[p--]=c[f--],b++,y=0,1==--u){_=!0;break}}while((y|b)<v);if(_)break;do{if(0!==(y=r-s(c[f],e,n,r,r-1,t))){for(r-=y,g=(p-=y)+1,m=(h-=y)+1,d=y-1;d>=0;d--)e[g+d]=e[m+d];if(0===r){_=!0;break}}if(e[p--]=c[f--],1==--u){_=!0;break}if(0!==(b=u-o(e[h],c,0,u,u-1,t))){for(u-=b,g=(p-=b)+1,m=(f-=b)+1,d=0;d<b;d++)e[g+d]=c[m+d];if(u<=1){_=!0;break}}if(e[p--]=e[h--],0==--r){_=!0;break}v--}while(y>=i||b>=i);if(_)break;v<0&&(v=0),v+=2}(l=v)<1&&(l=1);if(1===u){for(g=(p-=r)+1,m=(h-=r)+1,d=r-1;d>=0;d--)e[g+d]=e[m+d];e[p]=c[f]}else{if(0===u)throw new Error;for(m=p-(u-1),d=0;d<u;d++)e[m+d]=c[d]}}(d,h,f,p))}r=[],a=[],this.mergeRuns=function(){for(;u>1;){var e=u-2;if(e>=1&&a[e-1]<=a[e]+a[e+1]||e>=2&&a[e-2]<=a[e]+a[e-1])a[e-1]<a[e+1]&&e--;else if(a[e]>a[e+1])break;d(e)}},this.forceMergeRuns=function(){for(;u>1;){var e=u-2;e>0&&a[e-1]<a[e+1]&&e--,d(e)}},this.pushRun=function(e,t){r[u]=e,a[u]=t,u+=1}}e.exports=function(e,t,i,o){i||(i=0),o||(o=e.length);var s=o-i;if(!(s<2)){var u=0;if(s<n)a(e,i,o,i+(u=r(e,i,o,t)),t);else{var c=new l(e,t),d=function(e){for(var t=0;e>=n;)t|=1&e,e>>=1;return e+t}(s);do{if((u=r(e,i,o,t))<d){var h=s;h>d&&(h=d),a(e,i,i+h,i+u,t),u=h}c.pushRun(i,u),c.mergeRuns(),s-=u,i+=u}while(0!==s);c.forceMergeRuns()}}}},N69x:function(e,t,n){var i=n("C02x"),r=n("FWQk").set,a=i.MutationObserver||i.WebKitMutationObserver,o=i.process,s=i.Promise,l="process"==n("T9r1")(o);e.exports=function(){var e,t,n,u=function(){var i,r;for(l&&(i=o.domain)&&i.exit();e;){r=e.fn,e=e.next;try{r()}catch(i){throw e?n():t=void 0,i}}t=void 0,i&&i.enter()};if(l)n=function(){o.nextTick(u)};else if(!a||i.navigator&&i.navigator.standalone)if(s&&s.resolve){var c=s.resolve(void 0);n=function(){c.then(u)}}else n=function(){r.call(i,u)};else{var d=!0,h=document.createTextNode("");new a(u).observe(h,{characterData:!0}),n=function(){h.data=d=!d}}return function(i){var r={fn:i,next:void 0};t&&(t.next=r),e||(e=r,n()),t=r}}},NBoJ:function(e,t,n){var i=n("GKMz"),r=n("g0yf"),a=n("Q/cl"),o=n("3m5Y"),s=n("RiVb"),l=n("aVg8"),u=n("abCA"),c=n("MP34"),d=i.each,h=Math.min,f=Math.max,p=Math.floor,m=Math.ceil,g=u.round,v=Math.PI;function y(e,t,n){this._axesMap=i.createHashMap(),this._axesLayout={},this.dimensions=e.dimensions,this._rect,this._model=e,this._init(e,t,n)}function b(e,t){return h(f(e,t[0]),t[1])}y.prototype={type:"parallel",constructor:y,_init:function(e,t,n){var i=e.dimensions,r=e.parallelAxisIndex;d(i,function(e,n){var i=r[n],a=t.getComponent("parallelAxis",i),l=this._axesMap.set(e,new s(e,o.createScaleByModel(a),[0,0],a.get("type"),i)),u="category"===l.type;l.onBand=u&&a.get("boundaryGap"),l.inverse=a.get("inverse"),a.axis=l,l.model=a,l.coordinateSystem=a.coordinateSystem=this},this)},update:function(e,t){this._updateAxesFromSeries(this._model,e)},containPoint:function(e){var t=this._makeLayoutInfo(),n=t.axisBase,i=t.layoutBase,r=t.pixelDimIndex,a=e[1-r],o=e[r];return a>=n&&a<=n+t.axisLength&&o>=i&&o<=i+t.layoutLength},getModel:function(){return this._model},_updateAxesFromSeries:function(e,t){t.eachSeries(function(n){if(e.contains(n,t)){var i=n.getData();d(this.dimensions,function(e){var t=this._axesMap.get(e);t.scale.unionExtentFromData(i,i.mapDimension(e)),o.niceScaleExtent(t.scale,t.model)},this)}},this)},resize:function(e,t){this._rect=a.getLayoutRect(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()}),this._layoutAxes()},getRect:function(){return this._rect},_makeLayoutInfo:function(){var e,t=this._model,n=this._rect,i=["x","y"],r=["width","height"],a=t.get("layout"),o="horizontal"===a?0:1,s=n[r[o]],l=[0,s],u=this.dimensions.length,c=b(t.get("axisExpandWidth"),l),d=b(t.get("axisExpandCount")||0,[0,u]),h=t.get("axisExpandable")&&u>3&&u>d&&d>1&&c>0&&s>0,f=t.get("axisExpandWindow");f?(e=b(f[1]-f[0],l),f[1]=f[0]+e):(e=b(c*(d-1),l),(f=[c*(t.get("axisExpandCenter")||p(u/2))-e/2])[1]=f[0]+e);var v=(s-e)/(u-d);v<3&&(v=0);var y=[p(g(f[0]/c,1))+1,m(g(f[1]/c,1))-1],_=v/c*f[0];return{layout:a,pixelDimIndex:o,layoutBase:n[i[o]],layoutLength:s,axisBase:n[i[1-o]],axisLength:n[r[1-o]],axisExpandable:h,axisExpandWidth:c,axisCollapseWidth:v,axisExpandWindow:f,axisCount:u,winInnerIndices:y,axisExpandWindow0Pos:_}},_layoutAxes:function(){var e=this._rect,t=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),a=i.layout;t.each(function(e){var t=[0,i.axisLength],n=e.inverse?1:0;e.setExtent(t[n],t[1-n])}),d(n,function(t,n){var o=(i.axisExpandable?function(e,t){var n,i,r=t.layoutLength,a=t.axisExpandWidth,o=t.axisCount,s=t.axisCollapseWidth,l=t.winInnerIndices,u=s,c=!1;e<l[0]?(n=e*s,i=s):e<=l[1]?(n=t.axisExpandWindow0Pos+e*a-t.axisExpandWindow[0],u=a,c=!0):(n=r-(o-1-e)*s,i=s);return{position:n,axisNameAvailableWidth:u,axisLabelShow:c,nameTruncateMaxWidth:i}}:function(e,t){var n=t.layoutLength/(t.axisCount-1);return{position:n*e,axisNameAvailableWidth:n,axisLabelShow:!0}})(n,i),s={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},l={horizontal:v/2,vertical:0},u=[s[a].x+e.x,s[a].y+e.y],c=l[a],d=r.create();r.rotate(d,d,c),r.translate(d,d,u),this._axesLayout[t]={position:u,rotation:c,transform:d,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},getAxis:function(e){return this._axesMap.get(e)},dataToPoint:function(e,t){return this.axisCoordToPoint(this._axesMap.get(t).dataToCoord(e),t)},eachActiveState:function(e,t,n,r){null==n&&(n=0),null==r&&(r=e.count());var a=this._axesMap,o=this.dimensions,s=[],l=[];i.each(o,function(t){s.push(e.mapDimension(t)),l.push(a.get(t).model)});for(var u=this.hasAxisBrushed(),c=n;c<r;c++){var d;if(u){d="active";for(var h=e.getValues(s,c),f=0,p=o.length;f<p;f++){if("inactive"===l[f].getActiveState(h[f])){d="inactive";break}}}else d="normal";t(d,c)}},hasAxisBrushed:function(){for(var e=this.dimensions,t=this._axesMap,n=!1,i=0,r=e.length;i<r;i++)"normal"!==t.get(e[i]).model.getActiveState()&&(n=!0);return n},axisCoordToPoint:function(e,t){var n=this._axesLayout[t];return l.applyTransform([e,0],n.transform)},getAxisLayout:function(e){return i.clone(this._axesLayout[e])},getSlidedAxisExpandWindow:function(e){var t=this._makeLayoutInfo(),n=t.pixelDimIndex,i=t.axisExpandWindow.slice(),r=i[1]-i[0],a=[0,t.axisExpandWidth*(t.axisCount-1)];if(!this.containPoint(e))return{behavior:"none",axisExpandWindow:i};var o,s=e[n]-t.layoutBase-t.axisExpandWindow0Pos,l="slide",u=t.axisCollapseWidth,d=this._model.get("axisExpandSlideTriggerArea"),p=null!=d[0];if(u)p&&u&&s<r*d[0]?(l="jump",o=s-r*d[2]):p&&u&&s>r*(1-d[0])?(l="jump",o=s-r*(1-d[2])):(o=s-r*d[1])>=0&&(o=s-r*(1-d[1]))<=0&&(o=0),(o*=t.axisExpandWidth/u)?c(o,i,a,"all"):l="none";else{r=i[1]-i[0];(i=[f(0,a[1]*s/r-r/2)])[1]=h(a[1],i[0]+r),i[0]=i[1]-r}return{axisExpandWindow:i,behavior:l}}};var _=y;e.exports=_},NHLq:function(e,t,n){var i=n("cfvC").isDimensionStacked,r=n("GKMz").map;t.prepareDataCoordInfo=function(e,t,n){var a,o=e.getBaseAxis(),s=e.getOtherAxis(o),l=function(e,t){var n=0,i=e.scale.getExtent();return"start"===t?n=i[0]:"end"===t?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]),n}(s,n),u=o.dim,c=s.dim,d=t.mapDimension(c),h=t.mapDimension(u),f="x"===c||"radius"===c?1:0,p=r(e.dimensions,function(e){return t.mapDimension(e)}),m=t.getCalculationInfo("stackResultDimension");return(a|=i(t,p[0]))&&(p[0]=m),(a|=i(t,p[1]))&&(p[1]=m),{dataDimsForPoint:p,valueStart:l,valueAxisDim:c,baseAxisDim:u,stacked:!!a,valueDim:d,baseDim:h,baseDataOffset:f,stackedOverDimension:t.getCalculationInfo("stackedOverDimension")}},t.getStackedOnPoint=function(e,t,n,i){var r=NaN;e.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=e.valueStart);var a=e.baseDataOffset,o=[];return o[a]=n.get(e.baseDim,i),o[1-a]=r,t.dataToPoint(o)}},NQ2r:function(e,t,n){var i=n("aVg8"),r=n("Q/cl"),a=n("GKMz"),o=n("HT+0").wrapTreePathInfo,s=5;function l(e){this.group=new i.Group,e.add(this.group)}function u(e,t,n,i,r,a){var o=[[r?e:e-s,t],[e+n,t],[e+n,t+i],[r?e:e-s,t+i]];return!a&&o.splice(2,0,[e+n+s,t+i/2]),!r&&o.push([e,t+i/2]),o}function c(e,t,n){e.eventData={componentType:"series",componentSubType:"treemap",seriesIndex:t.componentIndex,seriesName:t.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&o(n,t)}}l.prototype={constructor:l,render:function(e,t,n,i){var a=e.getModel("breadcrumb"),o=this.group;if(o.removeAll(),a.get("show")&&n){var s=a.getModel("itemStyle"),l=s.getModel("textStyle"),u={pos:{left:a.get("left"),right:a.get("right"),top:a.get("top"),bottom:a.get("bottom")},box:{width:t.getWidth(),height:t.getHeight()},emptyItemWidth:a.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,u,l),this._renderContent(e,u,s,l,i),r.positionElement(o,u.pos,u.box)}},_prepare:function(e,t,n){for(var i=e;i;i=i.parentNode){var r=i.getModel().get("name"),a=n.getTextRect(r),o=Math.max(a.width+16,t.emptyItemWidth);t.totalWidth+=o+8,t.renderList.push({node:i,text:r,width:o})}},_renderContent:function(e,t,n,o,s){for(var l=0,d=t.emptyItemWidth,h=e.get("breadcrumb.height"),f=r.getAvailableSize(t.pos,t.box),p=t.totalWidth,m=t.renderList,g=m.length-1;g>=0;g--){var v=m[g],y=v.node,b=v.width,_=v.text;p>f.width&&(p-=b-d,b=d,_=null);var x=new i.Polygon({shape:{points:u(l,0,b,h,g===m.length-1,0===g)},style:a.defaults(n.getItemStyle(),{lineJoin:"bevel",text:_,textFill:o.getTextColor(),textFont:o.getFont()}),z:10,onclick:a.curry(s,y)});this.group.add(x),c(x,e,y),l+=b+8}},remove:function(){this.group.removeAll()}};var d=l;e.exports=d},NWDs:function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=106)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},106:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(107),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},107:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(108),r=n.n(i),a=n(109),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},108:function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(6)),r=o(n(19)),a=o(n(24));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElInputNumber",mixins:[(0,r.default)("input")],inject:{elForm:{default:""},elFormItem:{default:""}},directives:{repeatClick:a.default},components:{ElInput:i.default},props:{step:{type:Number,default:1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},value:{},disabled:Boolean,size:String,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:""},name:String,label:String,precision:{type:Number,validator:function(e){return e>=0&&e===parseInt(e,10)}}},data:function(){return{currentValue:0}},watch:{value:{immediate:!0,handler:function(e){var t=void 0===e?e:Number(e);if(void 0!==t){if(isNaN(t))return;void 0!==this.precision&&(t=this.toPrecision(t,this.precision))}t>=this.max&&(t=this.max),t<=this.min&&(t=this.min),this.currentValue=t,this.$emit("input",t)}}},computed:{minDisabled:function(){return this._decrease(this.value,this.step)<this.min},maxDisabled:function(){return this._increase(this.value,this.step)>this.max},numPrecision:function(){var e=this.value,t=this.step,n=this.getPrecision,i=this.precision,r=n(t);return void 0!==i?(r>i&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),i):Math.max(n(e),r)},controlsAtRight:function(){return"right"===this.controlsPosition},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},inputNumberSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputNumberDisabled:function(){return this.disabled||(this.elForm||{}).disabled},currentInputValue:function(){var e=this.currentValue;return"number"==typeof e&&void 0!==this.precision?e.toFixed(this.precision):e}},methods:{toPrecision:function(e,t){return void 0===t&&(t=this.numPrecision),parseFloat(parseFloat(Number(e).toFixed(t)))},getPrecision:function(e){if(void 0===e)return 0;var t=e.toString(),n=t.indexOf("."),i=0;return-1!==n&&(i=t.length-n-1),i},_increase:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var n=Math.pow(10,this.numPrecision);return this.toPrecision((n*e+n*t)/n)},_decrease:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var n=Math.pow(10,this.numPrecision);return this.toPrecision((n*e-n*t)/n)},increase:function(){if(!this.inputNumberDisabled&&!this.maxDisabled){var e=this.value||0,t=this._increase(e,this.step);this.setCurrentValue(t)}},decrease:function(){if(!this.inputNumberDisabled&&!this.minDisabled){var e=this.value||0,t=this._decrease(e,this.step);this.setCurrentValue(t)}},handleBlur:function(e){this.$emit("blur",e),this.$refs.input.setCurrentValue(this.currentInputValue)},handleFocus:function(e){this.$emit("focus",e)},setCurrentValue:function(e){var t=this.currentValue;"number"==typeof e&&void 0!==this.precision&&(e=this.toPrecision(e,this.precision)),e>=this.max&&(e=this.max),e<=this.min&&(e=this.min),t!==e?(this.$emit("input",e),this.$emit("change",e,t),this.currentValue=e):this.$refs.input.setCurrentValue(this.currentInputValue)},handleInputChange:function(e){var t=""===e?void 0:Number(e);isNaN(t)&&""!==e||this.setCurrentValue(t)}},mounted:function(){var e=this.$refs.input.$refs.input;e.setAttribute("role","spinbutton"),e.setAttribute("aria-valuemax",this.max),e.setAttribute("aria-valuemin",this.min),e.setAttribute("aria-valuenow",this.currentValue),e.setAttribute("aria-disabled",this.inputNumberDisabled)},updated:function(){this.$refs&&this.$refs.input&&this.$refs.input.$refs.input.setAttribute("aria-valuenow",this.currentValue)}}},109:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["el-input-number",e.inputNumberSize?"el-input-number--"+e.inputNumberSize:"",{"is-disabled":e.inputNumberDisabled},{"is-without-controls":!e.controls},{"is-controls-right":e.controlsAtRight}],on:{dragstart:function(e){e.preventDefault()}}},[e.controls?n("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-input-number__decrease",class:{"is-disabled":e.minDisabled},attrs:{role:"button"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.decrease(t)}}},[n("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-down":"minus")})]):e._e(),e.controls?n("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-input-number__increase",class:{"is-disabled":e.maxDisabled},attrs:{role:"button"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.increase(t)}}},[n("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-up":"plus")})]):e._e(),n("el-input",{ref:"input",attrs:{value:e.currentInputValue,disabled:e.inputNumberDisabled,size:e.inputNumberSize,max:e.max,min:e.min,name:e.name,label:e.label},on:{blur:e.handleBlur,focus:e.handleFocus,change:e.handleInputChange},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key))return null;t.preventDefault(),e.increase(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key))return null;t.preventDefault(),e.decrease(t)}]}})],1)},staticRenderFns:[]};t.a=i},19:function(e,t){e.exports=n("tHS6")},2:function(e,t){e.exports=n("iOou")},24:function(e,t,n){"use strict";t.__esModule=!0;var i=n(2);t.default={bind:function(e,t,n){var r=null,a=void 0,o=function(){return n.context[t.expression].apply()},s=function(){new Date-a<100&&o(),clearInterval(r),r=null};(0,i.on)(e,"mousedown",function(e){0===e.button&&(a=new Date,(0,i.once)(document,"mouseup",s),clearInterval(r),r=setInterval(o,100))})}}},6:function(e,t){e.exports=n("G8IQ")}})},NhDZ:function(e,t){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=244)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},244:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(245),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},245:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(246),r=n.n(i),a=n(247),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},246:function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElTag",props:{text:String,closable:Boolean,type:String,hit:Boolean,disableTransitions:Boolean,color:String,size:String},methods:{handleClose:function(e){this.$emit("close",e)}},computed:{tagSize:function(){return this.size||(this.$ELEMENT||{}).size}}}},247:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:e.disableTransitions?"":"el-zoom-in-center"}},[n("span",{staticClass:"el-tag",class:[e.type?"el-tag--"+e.type:"",e.tagSize&&"el-tag--"+e.tagSize,{"is-hit":e.hit}],style:{backgroundColor:e.color}},[e._t("default"),e.closable?n("i",{staticClass:"el-tag__close el-icon-close",on:{click:function(t){t.stopPropagation(),e.handleClose(t)}}}):e._e()],2)])},staticRenderFns:[]};t.a=i}})},"Nl+K":function(e,t,n){e.exports=n("8ueq")},Nrx1:function(e,t){e.exports={toolbox:{brush:{title:{rect:"鐭╁舰閫夋嫨",polygon:"鍦堥��",lineX:"妯悜閫夋嫨",lineY:"绾靛悜閫夋嫨",keep:"淇濇寔閫夋嫨",clear:"娓呴櫎閫夋嫨"}},dataView:{title:"鏁版嵁瑙嗗浘",lang:["鏁版嵁瑙嗗浘","鍏抽棴","鍒锋柊"]},dataZoom:{title:{zoom:"鍖哄煙缂╂斁",back:"鍖哄煙缂╂斁杩樺師"}},magicType:{title:{line:"鍒囨崲涓烘姌绾垮浘",bar:"鍒囨崲涓烘煴鐘跺浘",stack:"鍒囨崲涓哄爢鍙�",tiled:"鍒囨崲涓哄钩閾�"}},restore:{title:"杩樺師"},saveAsImage:{title:"淇濆瓨涓哄浘鐗�",lang:["鍙抽敭鍙﹀瓨涓哄浘鐗�"]}},series:{typeNames:{pie:"楗煎浘",bar:"鏌辩姸鍥�",line:"鎶樼嚎鍥�",scatter:"鏁g偣鍥�",effectScatter:"娑熸吉鏁g偣鍥�",radar:"闆疯揪鍥�",tree:"鏍戝浘",treemap:"鐭╁舰鏍戝浘",boxplot:"绠卞瀷鍥�",candlestick:"K绾垮浘",k:"K绾垮浘",heatmap:"鐑姏鍥�",map:"鍦板浘",parallel:"骞宠鍧愭爣鍥�",lines:"绾垮浘",graph:"鍏崇郴鍥�",sankey:"妗戝熀鍥�",funnel:"婕忔枟鍥�",gauge:"浠〃鐩樺浘",pictorialBar:"璞″舰鏌卞浘",themeRiver:"涓婚娌虫祦鍥�",sunburst:"鏃棩鍥�"}},aria:{general:{withTitle:"杩欐槸涓�涓叧浜庘�渰title}鈥濈殑鍥捐〃銆�",withoutTitle:"杩欐槸涓�涓浘琛紝"},series:{single:{prefix:"",withName:"鍥捐〃绫诲瀷鏄瘂seriesType}锛岃〃绀簕seriesName}銆�",withoutName:"鍥捐〃绫诲瀷鏄瘂seriesType}銆�"},multiple:{prefix:"瀹冪敱{seriesCount}涓浘琛ㄧ郴鍒楃粍鎴愩��",withName:"绗瑊seriesId}涓郴鍒楁槸涓�涓〃绀簕seriesName}鐨剓seriesType}锛�",withoutName:"绗瑊seriesId}涓郴鍒楁槸涓�涓獅seriesType}锛�",separator:{middle:"锛�",end:"銆�"}}},data:{allData:"鍏舵暟鎹槸鈥斺��",partialData:"鍏朵腑锛屽墠{displayCnt}椤规槸鈥斺��",withName:"{name}鐨勬暟鎹槸{value}",withoutName:"{value}",separator:{middle:"锛�",end:""}}}}},O0k8:function(e,t,n){var i=n("/MtV");n("luaR"),n("7jCV"),n("YDWW");var r=n("kuK2"),a=n("gk9k");i.registerVisual(r("tree","circle")),i.registerLayout(a)},O7BF:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("aVg8"),o=n("uxQp"),s=n("Q/cl"),l=n("7Rvj"),u=i.extendComponentView({type:"visualMap",autoPositionValues:{left:1,right:1,top:1,bottom:1},init:function(e,t){this.ecModel=e,this.api=t,this.visualMapModel},render:function(e,t,n,i){this.visualMapModel=e,!1!==e.get("show")?this.doRender.apply(this,arguments):this.group.removeAll()},renderBackground:function(e){var t=this.visualMapModel,n=o.normalizeCssArray(t.get("padding")||0),i=e.getBoundingRect();e.add(new a.Rect({z2:-1,silent:!0,shape:{x:i.x-n[3],y:i.y-n[0],width:i.width+n[3]+n[1],height:i.height+n[0]+n[2]},style:{fill:t.get("backgroundColor"),stroke:t.get("borderColor"),lineWidth:t.get("borderWidth")}}))},getControllerVisual:function(e,t,n){var i=(n=n||{}).forceState,a=this.visualMapModel,o={};if("symbol"===t&&(o.symbol=a.get("itemSymbol")),"color"===t){var s=a.get("contentColor");o.color=s}function u(e){return o[e]}function c(e,t){o[e]=t}var d=a.controllerVisuals[i||a.getValueState(e)],h=l.prepareVisualTypes(d);return r.each(h,function(i){var r=d[i];n.convertOpacityToAlpha&&"opacity"===i&&(i="colorAlpha",r=d.__alphaForOpacity),l.dependsOn(i,t)&&r&&r.applyVisual(e,u,c)}),o[t]},positionGroup:function(e){var t=this.visualMapModel,n=this.api;s.positionElement(e,t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()})},doRender:r.noop});e.exports=u},OACL:function(e,t,n){var i,r=n("5YEj"),a=r.util,o=r.graphic,s=r.matrix;function l(e,t){this._bmap=e,this.dimensions=["lng","lat"],this._mapOffset=[0,0],this._api=t,this._projection=new BMap.MercatorProjection}function u(e,t){return t=t||[0,0],a.map([0,1],function(n){var i=t[n],r=e[n]/2,a=[],o=[];return a[n]=i-r,o[n]=i+r,a[1-n]=o[1-n]=t[1-n],Math.abs(this.dataToPoint(a)[n]-this.dataToPoint(o)[n])},this)}l.prototype.dimensions=["lng","lat"],l.prototype.setZoom=function(e){this._zoom=e},l.prototype.setCenter=function(e){this._center=this._projection.lngLatToPoint(new BMap.Point(e[0],e[1]))},l.prototype.setMapOffset=function(e){this._mapOffset=e},l.prototype.getBMap=function(){return this._bmap},l.prototype.dataToPoint=function(e){var t=new BMap.Point(e[0],e[1]),n=this._bmap.pointToOverlayPixel(t),i=this._mapOffset;return[n.x-i[0],n.y-i[1]]},l.prototype.pointToData=function(e){var t=this._mapOffset;return[(e=this._bmap.overlayPixelToPoint({x:e[0]+t[0],y:e[1]+t[1]})).lng,e.lat]},l.prototype.getViewRect=function(){var e=this._api;return new o.BoundingRect(0,0,e.getWidth(),e.getHeight())},l.prototype.getRoamTransform=function(){return s.create()},l.prototype.prepareCustoms=function(e){var t=this.getViewRect();return{coordSys:{type:"bmap",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:a.bind(this.dataToPoint,this),size:a.bind(u,this)}}},l.dimensions=l.prototype.dimensions,l.create=function(e,t){var n,r=t.getDom();e.eachComponent("bmap",function(e){var a=t.getZr().painter,o=a.getViewportRoot();if("undefined"==typeof BMap)throw new Error("BMap api is not loaded");if(i=i||function(){function e(e){this._root=e}return e.prototype=new BMap.Overlay,e.prototype.initialize=function(e){return e.getPanes().labelPane.appendChild(this._root),this._root},e.prototype.draw=function(){},e}(),n)throw new Error("Only one bmap component can exist");if(!e.__bmap){var s=r.querySelector(".ec-extension-bmap");s&&(o.style.left="0px",o.style.top="0px",r.removeChild(s)),(s=document.createElement("div")).style.cssText="width:100%;height:100%",s.classList.add("ec-extension-bmap"),r.appendChild(s);var u=e.__bmap=new BMap.Map(s),c=new i(o);u.addOverlay(c),a.getViewportRootOffset=function(){return{offsetLeft:0,offsetTop:0}}}u=e.__bmap;var d=e.get("center"),h=e.get("zoom");if(d&&h){var f=new BMap.Point(d[0],d[1]);u.centerAndZoom(f,h)}(n=new l(u,t)).setMapOffset(e.__mapOffset||[0,0]),n.setZoom(h),n.setCenter(d),e.coordinateSystem=n}),e.eachSeries(function(e){"bmap"===e.get("coordinateSystem")&&(e.coordinateSystem=n)})};var c=l;e.exports=c},OBmE:function(e,t){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=155)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},155:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(156),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},156:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(157),r=n.n(i),a=n(158),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},157:function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElButtonGroup"}},158:function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-button-group"},[this._t("default")],2)},staticRenderFns:[]};t.a=i}})},OGtO:function(e,t,n){var i,r,a,o,s=n("luYz"),l=n("g0yf"),u=s.applyTransform,c=Math.min,d=Math.max;function h(e,t,n,i){n<0&&(e+=n,n=-n),i<0&&(t+=i,i=-i),this.x=e,this.y=t,this.width=n,this.height=i}h.prototype={constructor:h,union:function(e){var t=c(e.x,this.x),n=c(e.y,this.y);this.width=d(e.x+e.width,this.x+this.width)-t,this.height=d(e.y+e.height,this.y+this.height)-n,this.x=t,this.y=n},applyTransform:(i=[],r=[],a=[],o=[],function(e){if(e){i[0]=a[0]=this.x,i[1]=o[1]=this.y,r[0]=o[0]=this.x+this.width,r[1]=a[1]=this.y+this.height,u(i,i,e),u(r,r,e),u(a,a,e),u(o,o,e),this.x=c(i[0],r[0],a[0],o[0]),this.y=c(i[1],r[1],a[1],o[1]);var t=d(i[0],r[0],a[0],o[0]),n=d(i[1],r[1],a[1],o[1]);this.width=t-this.x,this.height=n-this.y}}),calculateTransform:function(e){var t=this,n=e.width/t.width,i=e.height/t.height,r=l.create();return l.translate(r,r,[-t.x,-t.y]),l.scale(r,r,[n,i]),l.translate(r,r,[e.x,e.y]),r},intersect:function(e){if(!e)return!1;e instanceof h||(e=h.create(e));var t=this,n=t.x,i=t.x+t.width,r=t.y,a=t.y+t.height,o=e.x,s=e.x+e.width,l=e.y,u=e.y+e.height;return!(i<o||s<n||a<l||u<r)},contain:function(e,t){return e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height},clone:function(){return new h(this.x,this.y,this.width,this.height)},copy:function(e){this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},h.create=function(e){return new h(e.x,e.y,e.width,e.height)};var f=h;e.exports=f},OXaN:function(e,t,n){var i=n("r2gs");e.exports=function(e){return Object(i(e))}},Oa1u:function(e,t,n){"use strict";e.exports=function(e,t,n,i,r){return e.config=t,n&&(e.code=n),e.request=i,e.response=r,e}},Oc2Y:function(e,t,n){"use strict";var i=n("C02x"),r=n("Mcur"),a=n("sjnA"),o=n("FITv"),s=n("EyUJ"),l=n("DVkV").KEY,u=n("BRDz"),c=n("KV1y"),d=n("XAI7"),h=n("pplb"),f=n("biYF"),p=n("CVJP"),m=n("5FyJ"),g=n("kCDZ"),v=n("JBI7"),y=n("93K8"),b=n("8Nvm"),_=n("/r4/"),x=n("J35F"),w=n("go9Q"),S=n("c1o2"),C=n("7J6k"),M=n("MqD/"),k=n("lIiZ"),T=n("5pnV"),A=M.f,I=k.f,E=C.f,D=i.Symbol,O=i.JSON,P=O&&O.stringify,L=f("_hidden"),R=f("toPrimitive"),N={}.propertyIsEnumerable,B=c("symbol-registry"),F=c("symbols"),z=c("op-symbols"),V=Object.prototype,$="function"==typeof D,G=i.QObject,j=!G||!G.prototype||!G.prototype.findChild,H=a&&u(function(){return 7!=S(I({},"a",{get:function(){return I(this,"a",{value:7}).a}})).a})?function(e,t,n){var i=A(V,t);i&&delete V[t],I(e,t,n),i&&e!==V&&I(V,t,i)}:I,W=function(e){var t=F[e]=S(D.prototype);return t._k=e,t},U=$&&"symbol"==typeof D.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof D},K=function(e,t,n){return e===V&&K(z,t,n),y(e),t=x(t,!0),y(n),r(F,t)?(n.enumerable?(r(e,L)&&e[L][t]&&(e[L][t]=!1),n=S(n,{enumerable:w(0,!1)})):(r(e,L)||I(e,L,w(1,{})),e[L][t]=!0),H(e,t,n)):I(e,t,n)},q=function(e,t){y(e);for(var n,i=g(t=_(t)),r=0,a=i.length;a>r;)K(e,n=i[r++],t[n]);return e},Y=function(e){var t=N.call(this,e=x(e,!0));return!(this===V&&r(F,e)&&!r(z,e))&&(!(t||!r(this,e)||!r(F,e)||r(this,L)&&this[L][e])||t)},Z=function(e,t){if(e=_(e),t=x(t,!0),e!==V||!r(F,t)||r(z,t)){var n=A(e,t);return!n||!r(F,t)||r(e,L)&&e[L][t]||(n.enumerable=!0),n}},X=function(e){for(var t,n=E(_(e)),i=[],a=0;n.length>a;)r(F,t=n[a++])||t==L||t==l||i.push(t);return i},J=function(e){for(var t,n=e===V,i=E(n?z:_(e)),a=[],o=0;i.length>o;)!r(F,t=i[o++])||n&&!r(V,t)||a.push(F[t]);return a};$||(s((D=function(){if(this instanceof D)throw TypeError("Symbol is not a constructor!");var e=h(arguments.length>0?arguments[0]:void 0),t=function(n){this===V&&t.call(z,n),r(this,L)&&r(this[L],e)&&(this[L][e]=!1),H(this,e,w(1,n))};return a&&j&&H(V,e,{configurable:!0,set:t}),W(e)}).prototype,"toString",function(){return this._k}),M.f=Z,k.f=K,n("9akD").f=C.f=X,n("XvZ9").f=Y,n("j6Iq").f=J,a&&!n("bgFz")&&s(V,"propertyIsEnumerable",Y,!0),p.f=function(e){return W(f(e))}),o(o.G+o.W+o.F*!$,{Symbol:D});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)f(Q[ee++]);for(var te=T(f.store),ne=0;te.length>ne;)m(te[ne++]);o(o.S+o.F*!$,"Symbol",{for:function(e){return r(B,e+="")?B[e]:B[e]=D(e)},keyFor:function(e){if(!U(e))throw TypeError(e+" is not a symbol!");for(var t in B)if(B[t]===e)return t},useSetter:function(){j=!0},useSimple:function(){j=!1}}),o(o.S+o.F*!$,"Object",{create:function(e,t){return void 0===t?S(e):q(S(e),t)},defineProperty:K,defineProperties:q,getOwnPropertyDescriptor:Z,getOwnPropertyNames:X,getOwnPropertySymbols:J}),O&&o(o.S+o.F*(!$||u(function(){var e=D();return"[null]"!=P([e])||"{}"!=P({a:e})||"{}"!=P(Object(e))})),"JSON",{stringify:function(e){for(var t,n,i=[e],r=1;arguments.length>r;)i.push(arguments[r++]);if(n=t=i[1],(b(t)||void 0!==e)&&!U(e))return v(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!U(t))return t}),i[1]=t,P.apply(O,i)}}),D.prototype[R]||n("bHZz")(D.prototype,R,D.prototype.valueOf),d(D,"Symbol"),d(Math,"Math",!0),d(i.JSON,"JSON",!0)},OtkV:function(e,t,n){"use strict";var i=n("8r5Y"),r=n("1Rfl"),a=n("K3AH"),o=n("hN2N"),s=n("jzYM"),l=n("YDtG");function u(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return u(e),e.baseURL&&!s(e.url)&&(e.url=l(e.baseURL,e.url)),e.headers=e.headers||{},e.data=r(e.data,e.headers,e.transformRequest),e.headers=i.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),i.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||o.adapter)(e).then(function(t){return u(e),t.data=r(t.data,t.headers,e.transformResponse),t},function(t){return a(t)||(u(e),t&&t.response&&(t.response.data=r(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},"P3t+":function(e,t,n){n("V9mB"),n("z1q5"),n("9PUD"),n("Hf1X"),n("Piua"),n("c7bb"),n("gzF7")},P54J:function(e,t,n){n("6/6c").registerSubTypeDefaulter("visualMap",function(e){return e.categories||(e.pieces?e.pieces.length>0:e.splitNumber>0)&&!e.calculable?"piecewise":"continuous"})},P9df:function(e,t,n){var i=n("GKMz"),r=n("6/6c"),a=n("WtQt"),o=n("8jLM"),s=r.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});i.merge(s.prototype,o);var l={splitNumber:5};function u(e,t){return t.type||(t.data?"category":"value")}a("angle",s,u,{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}}),a("radius",s,u,l)},PEJM:function(e,t,n){var i;i=function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=3)}([function(e,t,n){var i,r,a;r=[e,n(7)],void 0!==(a="function"==typeof(i=function(e,t){"use strict";var n=function(e){return e&&e.__esModule?e:{default:e}}(t),i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a=function(){function e(t){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this.resolveOptions(t),this.initSelection()}return r(e,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var e=this,t="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px";var i=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=i+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,n.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,n.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":i(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function(){return this._target}}]),e}();e.exports=a})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i=n(6),r=n(5);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!i.string(t))throw new TypeError("Second argument must be a String");if(!i.fn(n))throw new TypeError("Third argument must be a Function");if(i.node(e))return function(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}(e,t,n);if(i.nodeList(e))return function(e,t,n){return Array.prototype.forEach.call(e,function(e){e.addEventListener(t,n)}),{destroy:function(){Array.prototype.forEach.call(e,function(e){e.removeEventListener(t,n)})}}}(e,t,n);if(i.string(e))return function(e,t,n){return r(document.body,e,t,n)}(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},function(e,t){function n(){}n.prototype={on:function(e,t,n){var i=this.e||(this.e={});return(i[e]||(i[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){function i(){r.off(e,i),t.apply(n,arguments)}var r=this;return i._=t,this.on(e,i,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),i=0,r=n.length;i<r;i++)n[i].fn.apply(n[i].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),i=n[e],r=[];if(i&&t)for(var a=0,o=i.length;a<o;a++)i[a].fn!==t&&i[a].fn._!==t&&r.push(i[a]);return r.length?n[e]=r:delete n[e],this}},e.exports=n},function(e,t,n){var i,r,a;r=[e,n(0),n(2),n(1)],void 0!==(a="function"==typeof(i=function(e,t,n,i){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}var o=r(t),s=r(n),l=r(i),u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),d=function(e){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var i=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return i.resolveOptions(n),i.listenClick(e),i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),c(t,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===u(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=(0,l.default)(e,"click",function(e){return t.onClick(e)})}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new o.default({action:this.action(t),target:this.target(t),text:this.text(t),container:this.container,trigger:t,emitter:this})}},{key:"defaultAction",value:function(e){return a("action",e)}},{key:"defaultTarget",value:function(e){var t=a("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return a("text",e)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach(function(e){n=n&&!!document.queryCommandSupported(e)}),n}}]),t}(s.default);e.exports=d})?i.apply(t,r):i)&&(e.exports=a)},function(e,t){var n=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}e.exports=function(e,t){for(;e&&e.nodeType!==n;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},function(e,t,n){function i(e,t,n,i,a){var o=r.apply(this,arguments);return e.addEventListener(n,o,a),{destroy:function(){e.removeEventListener(n,o,a)}}}function r(e,t,n,i){return function(n){n.delegateTarget=a(n.target,t),n.delegateTarget&&i.call(e,n)}}var a=n(4);e.exports=function(e,t,n,r,a){return"function"==typeof e.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,function(e){return i(e,t,n,r,a)}))}},function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},function(e,t){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var i=window.getSelection(),r=document.createRange();r.selectNodeContents(e),i.removeAllRanges(),i.addRange(r),t=i.toString()}return t}}])},e.exports=i()},PEt4:function(e,t,n){"use strict";t.__esModule=!0,t.default={methods:{dispatch:function(e,t,n){for(var i=this.$parent||this.$root,r=i.$options.componentName;i&&(!r||r!==e);)(i=i.$parent)&&(r=i.$options.componentName);i&&i.$emit.apply(i,[t].concat(n))},broadcast:function(e,t,n){(function e(t,n,i){this.$children.forEach(function(r){r.$options.componentName===t?r.$emit.apply(r,[n].concat(i)):e.apply(r,[t,n].concat([i]))})}).call(this,e,t,n)}}}},PEyf:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("f4MR");n("jMVH"),n("Pq3W"),n("+hCq"),n("hEXF"),n("rlNm"),i.registerLayout(r.curry(a,"bar")),i.extendComponentView({type:"polar"})},PiGl:function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=138)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},1:function(e,t){e.exports=n("PEt4")},10:function(e,t){e.exports=n("W/HH")},12:function(e,t){e.exports=n("tjix")},138:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(139),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},139:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(140),r=n.n(i),a=n(145),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},14:function(e,t){e.exports=n("pQJX")},140:function(e,t,n){"use strict";t.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=x(n(1)),a=x(n(19)),o=x(n(5)),s=x(n(6)),l=x(n(141)),u=x(n(35)),c=x(n(25)),d=x(n(17)),h=x(n(14)),f=x(n(10)),p=n(2),m=n(18),g=n(12),v=x(n(26)),y=n(3),b=x(n(144)),_=n(23);function x(e){return e&&e.__esModule?e:{default:e}}var w={medium:36,small:32,mini:28};t.default={mixins:[r.default,o.default,(0,a.default)("reference"),b.default],name:"ElSelect",componentName:"ElSelect",inject:{elForm:{default:""},elFormItem:{default:""}},provide:function(){return{select:this}},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},readonly:function(){var e=!this.$isServer&&!isNaN(Number(document.documentMode));return!this.filterable||this.multiple||!e&&!this.visible},iconClass:function(){return this.clearable&&!this.selectDisabled&&this.inputHovering&&!this.multiple&&void 0!==this.value&&null!==this.value&&""!==this.value?"circle-close is-show-close":this.remote&&this.filterable?"":"arrow-up"},debounce:function(){return this.remote?300:0},emptyText:function(){return this.loading?this.loadingText||this.t("el.select.loading"):(!this.remote||""!==this.query||0!==this.options.length)&&(this.filterable&&this.query&&this.options.length>0&&0===this.filteredOptionsCount?this.noMatchText||this.t("el.select.noMatch"):0===this.options.length?this.noDataText||this.t("el.select.noData"):null)},showNewOption:function(){var e=this,t=this.options.filter(function(e){return!e.created}).some(function(t){return t.currentLabel===e.query});return this.filterable&&this.allowCreate&&""!==this.query&&!t},selectSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},selectDisabled:function(){return this.disabled||(this.elForm||{}).disabled},collapseTagSize:function(){return["small","mini"].indexOf(this.selectSize)>-1?"mini":"small"}},components:{ElInput:s.default,ElSelectMenu:l.default,ElOption:u.default,ElTag:c.default,ElScrollbar:d.default},directives:{Clickoutside:f.default},props:{name:String,id:String,value:{required:!0},autoComplete:{type:String,default:"off"},automaticDropdown:Boolean,size:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:String,remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String,default:function(){return(0,g.t)("el.select.placeholder")}},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0}},data:function(){return{options:[],cachedOptions:[],createdLabel:null,createdSelected:!1,selected:this.multiple?[]:{},inputLength:20,inputWidth:0,cachedPlaceHolder:"",optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,currentPlaceholder:"",menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1}},watch:{selectDisabled:function(){var e=this;this.$nextTick(function(){e.resetInputHeight()})},placeholder:function(e){this.cachedPlaceHolder=this.currentPlaceholder=e},value:function(e,t){this.multiple&&(this.resetInputHeight(),e.length>0||this.$refs.input&&""!==this.query?this.currentPlaceholder="":this.currentPlaceholder=this.cachedPlaceHolder,this.filterable&&!this.reserveKeyword&&(this.query="",this.handleQueryChange(this.query))),this.setSelected(),this.filterable&&!this.multiple&&(this.inputLength=20),(0,y.valueEquals)(e,t)||this.dispatch("ElFormItem","el.form.change",e)},visible:function(e){var t=this;e?(this.handleIconShow(),this.broadcast("ElSelectDropdown","updatePopper"),this.filterable&&(this.query=this.remote?"":this.selectedLabel,this.handleQueryChange(this.query),this.multiple?this.$refs.input.focus():(this.remote||(this.broadcast("ElOption","queryChange",""),this.broadcast("ElOptionGroup","queryChange")),this.broadcast("ElInput","inputSelect")))):(this.handleIconHide(),this.broadcast("ElSelectDropdown","destroyPopper"),this.$refs.input&&this.$refs.input.blur(),this.query="",this.previousQuery=null,this.selectedLabel="",this.inputLength=20,this.resetHoverIndex(),this.$nextTick(function(){t.$refs.input&&""===t.$refs.input.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)}),this.multiple||this.selected&&(this.filterable&&this.allowCreate&&this.createdSelected&&this.createdLabel?this.selectedLabel=this.createdLabel:this.selectedLabel=this.selected.currentLabel,this.filterable&&(this.query=this.selectedLabel))),this.$emit("visible-change",e)},options:function(){var e=this;if(!this.$isServer){this.$nextTick(function(){e.broadcast("ElSelectDropdown","updatePopper")}),this.multiple&&this.resetInputHeight();var t=this.$el.querySelectorAll("input");-1===[].indexOf.call(t,document.activeElement)&&this.setSelected(),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}}},methods:{handleComposition:function(e){var t=e.target.value;if("compositionend"===e.type)this.isOnComposition=!1,this.handleQueryChange(t);else{var n=t[t.length-1]||"";this.isOnComposition=!(0,_.isKorean)(n)}},handleQueryChange:function(e){var t=this;if(this.previousQuery!==e&&!this.isOnComposition)if(null!==this.previousQuery||"function"!=typeof this.filterMethod&&"function"!=typeof this.remoteMethod){if(this.previousQuery=e,this.$nextTick(function(){t.visible&&t.broadcast("ElSelectDropdown","updatePopper")}),this.hoverIndex=-1,this.multiple&&this.filterable){var n=15*this.$refs.input.value.length+20;this.inputLength=this.collapseTags?Math.min(50,n):n,this.managePlaceholder(),this.resetInputHeight()}this.remote&&"function"==typeof this.remoteMethod?(this.hoverIndex=-1,this.remoteMethod(e)):"function"==typeof this.filterMethod?(this.filterMethod(e),this.broadcast("ElOptionGroup","queryChange")):(this.filteredOptionsCount=this.optionsCount,this.broadcast("ElOption","queryChange",e),this.broadcast("ElOptionGroup","queryChange")),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}else this.previousQuery=e},handleIconHide:function(){var e=this.$el.querySelector(".el-input__icon");e&&(0,p.removeClass)(e,"is-reverse")},handleIconShow:function(){var e=this.$el.querySelector(".el-input__icon");e&&!(0,p.hasClass)(e,"el-icon-circle-close")&&(0,p.addClass)(e,"is-reverse")},scrollToOption:function(e){var t=Array.isArray(e)&&e[0]?e[0].$el:e.$el;if(this.$refs.popper&&t){var n=this.$refs.popper.$el.querySelector(".el-select-dropdown__wrap");(0,v.default)(n,t)}this.$refs.scrollbar&&this.$refs.scrollbar.handleScroll()},handleMenuEnter:function(){var e=this;this.$nextTick(function(){return e.scrollToOption(e.selected)})},emitChange:function(e){(0,y.valueEquals)(this.value,e)||this.$emit("change",e)},getOption:function(e){for(var t=void 0,n="[object object]"===Object.prototype.toString.call(e).toLowerCase(),i="[object null]"===Object.prototype.toString.call(e).toLowerCase(),r=this.cachedOptions.length-1;r>=0;r--){var a=this.cachedOptions[r];if(n?(0,y.getValueByPath)(a.value,this.valueKey)===(0,y.getValueByPath)(e,this.valueKey):a.value===e){t=a;break}}if(t)return t;var o={value:e,currentLabel:n||i?"":e};return this.multiple&&(o.hitState=!1),o},setSelected:function(){var e=this;if(!this.multiple){var t=this.getOption(this.value);return t.created?(this.createdLabel=t.currentLabel,this.createdSelected=!0):this.createdSelected=!1,this.selectedLabel=t.currentLabel,this.selected=t,void(this.filterable&&(this.query=this.selectedLabel))}var n=[];Array.isArray(this.value)&&this.value.forEach(function(t){n.push(e.getOption(t))}),this.selected=n,this.$nextTick(function(){e.resetInputHeight()})},handleFocus:function(e){this.softFocus?this.softFocus=!1:((this.automaticDropdown||this.filterable)&&(this.visible=!0,this.menuVisibleOnFocus=!0),this.$emit("focus",e))},blur:function(){this.visible=!1,this.$refs.reference.blur()},handleBlur:function(e){var t=this;setTimeout(function(){t.isSilentBlur?t.isSilentBlur=!1:t.$emit("blur",e)},50),this.softFocus=!1},handleIconClick:function(e){this.iconClass.indexOf("circle-close")>-1&&this.deleteSelected(e)},doDestroy:function(){this.$refs.popper&&this.$refs.popper.doDestroy()},handleClose:function(){this.visible=!1},toggleLastOptionHitState:function(e){if(Array.isArray(this.selected)){var t=this.selected[this.selected.length-1];if(t)return!0===e||!1===e?(t.hitState=e,e):(t.hitState=!t.hitState,t.hitState)}},deletePrevTag:function(e){if(e.target.value.length<=0&&!this.toggleLastOptionHitState()){var t=this.value.slice();t.pop(),this.$emit("input",t),this.emitChange(t)}},managePlaceholder:function(){""!==this.currentPlaceholder&&(this.currentPlaceholder=this.$refs.input.value?"":this.cachedPlaceHolder)},resetInputState:function(e){8!==e.keyCode&&this.toggleLastOptionHitState(!1),this.inputLength=15*this.$refs.input.value.length+20,this.resetInputHeight()},resetInputHeight:function(){var e=this;this.collapseTags&&!this.filterable||this.$nextTick(function(){if(e.$refs.reference){var t=e.$refs.reference.$el.childNodes,n=[].filter.call(t,function(e){return"INPUT"===e.tagName})[0],i=e.$refs.tags,r=w[e.selectSize]||40;n.style.height=0===e.selected.length?r+"px":Math.max(i?i.clientHeight+(i.clientHeight>r?6:0):0,r)+"px",e.visible&&!1!==e.emptyText&&e.broadcast("ElSelectDropdown","updatePopper")}})},resetHoverIndex:function(){var e=this;setTimeout(function(){e.multiple?e.selected.length>0?e.hoverIndex=Math.min.apply(null,e.selected.map(function(t){return e.options.indexOf(t)})):e.hoverIndex=-1:e.hoverIndex=e.options.indexOf(e.selected)},300)},handleOptionSelect:function(e,t){var n=this;if(this.multiple){var i=this.value.slice(),r=this.getValueIndex(i,e.value);r>-1?i.splice(r,1):(this.multipleLimit<=0||i.length<this.multipleLimit)&&i.push(e.value),this.$emit("input",i),this.emitChange(i),e.created&&(this.query="",this.handleQueryChange(""),this.inputLength=20),this.filterable&&this.$refs.input.focus()}else this.$emit("input",e.value),this.emitChange(e.value),this.visible=!1;this.isSilentBlur=t,this.setSoftFocus(),this.visible||this.$nextTick(function(){n.scrollToOption(e)})},setSoftFocus:function(){this.softFocus=!0;var e=this.$refs.input||this.$refs.reference;e&&e.focus()},getValueIndex:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];if(!("[object object]"===Object.prototype.toString.call(n).toLowerCase()))return t.indexOf(n);var r,a,o=(r=e.valueKey,a=-1,t.some(function(e,t){return(0,y.getValueByPath)(e,r)===(0,y.getValueByPath)(n,r)&&(a=t,!0)}),{v:a});return"object"===(void 0===o?"undefined":i(o))?o.v:void 0},toggleMenu:function(){this.selectDisabled||(this.menuVisibleOnFocus?this.menuVisibleOnFocus=!1:this.visible=!this.visible,this.visible&&(this.$refs.input||this.$refs.reference).focus())},selectOption:function(){this.visible?this.options[this.hoverIndex]&&this.handleOptionSelect(this.options[this.hoverIndex]):this.toggleMenu()},deleteSelected:function(e){e.stopPropagation(),this.$emit("input",""),this.emitChange(""),this.visible=!1,this.$emit("clear")},deleteTag:function(e,t){var n=this.selected.indexOf(t);if(n>-1&&!this.selectDisabled){var i=this.value.slice();i.splice(n,1),this.$emit("input",i),this.emitChange(i),this.$emit("remove-tag",t.value)}e.stopPropagation()},onInputChange:function(){this.filterable&&this.query!==this.selectedLabel&&(this.query=this.selectedLabel,this.handleQueryChange(this.query))},onOptionDestroy:function(e){e>-1&&(this.optionsCount--,this.filteredOptionsCount--,this.options.splice(e,1))},resetInputWidth:function(){this.inputWidth=this.$refs.reference.$el.getBoundingClientRect().width},handleResize:function(){this.resetInputWidth(),this.multiple&&this.resetInputHeight()},checkDefaultFirstOption:function(){this.hoverIndex=-1;for(var e=!1,t=this.options.length-1;t>=0;t--)if(this.options[t].created){e=!0,this.hoverIndex=t;break}if(!e)for(var n=0;n!==this.options.length;++n){var i=this.options[n];if(this.query){if(!i.disabled&&!i.groupDisabled&&i.visible){this.hoverIndex=n;break}}else if(i.itemSelected){this.hoverIndex=n;break}}},getValueKey:function(e){return"[object object]"!==Object.prototype.toString.call(e.value).toLowerCase()?e.value:(0,y.getValueByPath)(e.value,this.valueKey)}},created:function(){var e=this;this.cachedPlaceHolder=this.currentPlaceholder=this.placeholder,this.multiple&&!Array.isArray(this.value)&&this.$emit("input",[]),!this.multiple&&Array.isArray(this.value)&&this.$emit("input",""),this.debouncedOnInputChange=(0,h.default)(this.debounce,function(){e.onInputChange()}),this.debouncedQueryChange=(0,h.default)(this.debounce,function(t){e.handleQueryChange(t.target.value)}),this.$on("handleOptionClick",this.handleOptionSelect),this.$on("setSelected",this.setSelected)},mounted:function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.value.length>0&&(this.currentPlaceholder=""),(0,m.addResizeListener)(this.$el,this.handleResize),this.remote&&this.multiple&&this.resetInputHeight(),this.$nextTick(function(){e.$refs.reference&&e.$refs.reference.$el&&(e.inputWidth=e.$refs.reference.$el.getBoundingClientRect().width)}),this.setSelected()},beforeDestroy:function(){this.$el&&this.handleResize&&(0,m.removeResizeListener)(this.$el,this.handleResize)}}},141:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(142),r=n.n(i),a=n(143),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},142:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(7),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElSelectDropdown",componentName:"ElSelectDropdown",mixins:[a.default],props:{placement:{default:"bottom-start"},boundariesPadding:{default:0},popperOptions:{default:function(){return{gpuAcceleration:!1}}},visibleArrow:{default:!0},appendToBody:{type:Boolean,default:!0}},data:function(){return{minWidth:""}},computed:{popperClass:function(){return this.$parent.popperClass}},watch:{"$parent.inputWidth":function(){this.minWidth=this.$parent.$el.getBoundingClientRect().width+"px"}},mounted:function(){var e=this;this.referenceElm=this.$parent.$refs.reference.$el,this.$parent.popperElm=this.popperElm=this.$el,this.$on("updatePopper",function(){e.$parent.visible&&e.updatePopper()}),this.$on("destroyPopper",this.destroyPopper)}}},143:function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-select-dropdown el-popper",class:[{"is-multiple":this.$parent.multiple},this.popperClass],style:{minWidth:this.minWidth}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},144:function(e,t,n){"use strict";t.__esModule=!0,t.default={data:function(){return{hoverOption:-1}},computed:{optionsAllDisabled:function(){return this.options.filter(function(e){return e.visible}).every(function(e){return e.disabled})}},watch:{hoverIndex:function(e){var t=this;"number"==typeof e&&e>-1&&(this.hoverOption=this.options[e]||{}),this.options.forEach(function(e){e.hover=t.hoverOption===e})}},methods:{navigateOptions:function(e){var t=this;if(this.visible){if(0!==this.options.length&&0!==this.filteredOptionsCount&&!this.optionsAllDisabled){"next"===e?(this.hoverIndex++,this.hoverIndex===this.options.length&&(this.hoverIndex=0)):"prev"===e&&(this.hoverIndex--,this.hoverIndex<0&&(this.hoverIndex=this.options.length-1));var n=this.options[this.hoverIndex];!0!==n.disabled&&!0!==n.groupDisabled&&n.visible||this.navigateOptions(e),this.$nextTick(function(){return t.scrollToOption(t.hoverOption)})}}else this.visible=!0}}}},145:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],staticClass:"el-select",class:[e.selectSize?"el-select--"+e.selectSize:""],on:{click:function(t){t.stopPropagation(),e.toggleMenu(t)}}},[e.multiple?n("div",{ref:"tags",staticClass:"el-select__tags",style:{"max-width":e.inputWidth-32+"px"}},[e.collapseTags&&e.selected.length?n("span",[n("el-tag",{attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":""},on:{close:function(t){e.deleteTag(t,e.selected[0])}}},[n("span",{staticClass:"el-select__tags-text"},[e._v(e._s(e.selected[0].currentLabel))])]),e.selected.length>1?n("el-tag",{attrs:{closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""}},[n("span",{staticClass:"el-select__tags-text"},[e._v("+ "+e._s(e.selected.length-1))])]):e._e()],1):e._e(),e.collapseTags?e._e():n("transition-group",{on:{"after-leave":e.resetInputHeight}},e._l(e.selected,function(t){return n("el-tag",{key:e.getValueKey(t),attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":""},on:{close:function(n){e.deleteTag(n,t)}}},[n("span",{staticClass:"el-select__tags-text"},[e._v(e._s(t.currentLabel))])])})),e.filterable?n("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"input",staticClass:"el-select__input",class:[e.selectSize?"is-"+e.selectSize:""],style:{width:e.inputLength+"px","max-width":e.inputWidth-42+"px"},attrs:{type:"text",disabled:e.selectDisabled,autocomplete:e.autoComplete},domProps:{value:e.query},on:{focus:e.handleFocus,blur:function(t){e.softFocus=!1},click:function(e){e.stopPropagation()},keyup:e.managePlaceholder,keydown:[e.resetInputState,function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key))return null;t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key))return null;t.preventDefault(),e.navigateOptions("prev")},function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;t.preventDefault(),e.selectOption(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key))return null;e.deletePrevTag(t)}],compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:[function(t){t.target.composing||(e.query=t.target.value)},e.debouncedQueryChange]}}):e._e()],1):e._e(),n("el-input",{ref:"reference",class:{"is-focus":e.visible},attrs:{type:"text",placeholder:e.currentPlaceholder,name:e.name,id:e.id,"auto-complete":e.autoComplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1},on:{focus:e.handleFocus,blur:e.handleBlur},nativeOn:{keyup:function(t){e.debouncedOnInputChange(t)},keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("prev")},function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;t.preventDefault(),e.selectOption(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key))return null;e.visible=!1}],paste:function(t){e.debouncedOnInputChange(t)},mouseenter:function(t){e.inputHovering=!0},mouseleave:function(t){e.inputHovering=!1}},model:{value:e.selectedLabel,callback:function(t){e.selectedLabel=t},expression:"selectedLabel"}},[e.$slots.prefix?n("template",{attrs:{slot:"prefix"},slot:"prefix"},[e._t("prefix")],2):e._e(),n("i",{class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass],attrs:{slot:"suffix"},on:{click:e.handleIconClick},slot:"suffix"})],2),n("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":e.doDestroy}},[n("el-select-menu",{directives:[{name:"show",rawName:"v-show",value:e.visible&&!1!==e.emptyText,expression:"visible && emptyText !== false"}],ref:"popper",attrs:{"append-to-body":e.popperAppendToBody}},[n("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.options.length>0&&!e.loading,expression:"options.length > 0 && !loading"}],ref:"scrollbar",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount},attrs:{tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[e.showNewOption?n("el-option",{attrs:{value:e.query,created:""}}):e._e(),e._t("default")],2),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.length)?n("p",{staticClass:"el-select-dropdown__empty"},[e._v("\n        "+e._s(e.emptyText)+"\n      ")]):e._e()],1)],1)],1)},staticRenderFns:[]};t.a=i},17:function(e,t){e.exports=n("D7MG")},18:function(e,t){e.exports=n("ZCDV")},19:function(e,t){e.exports=n("tHS6")},2:function(e,t){e.exports=n("iOou")},23:function(e,t){e.exports=n("xHIt")},25:function(e,t){e.exports=n("NhDZ")},26:function(e,t){e.exports=n("zdX1")},3:function(e,t){e.exports=n("I1sU")},35:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(36),r=n.n(i),a=n(37),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},36:function(e,t,n){"use strict";t.__esModule=!0;var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n(1),o=(i=a)&&i.__esModule?i:{default:i},s=n(3);t.default={mixins:[o.default],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var n=this.select,i=n.remote,a=n.valueKey;if(!this.created&&!i){if(a&&"object"===(void 0===e?"undefined":r(e))&&"object"===(void 0===t?"undefined":r(t))&&e[a]===t[a])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var n=this.select.valueKey;return(0,s.getValueByPath)(e,n)===(0,s.getValueByPath)(t,n)}return e===t},contains:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];if(!this.isObject)return t.indexOf(n)>-1;var i,a=(i=e.select.valueKey,{v:t.some(function(e){return(0,s.getValueByPath)(e,i)===(0,s.getValueByPath)(n,i)})});return"object"===(void 0===a?"undefined":r(a))?a.v:void 0},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp((0,s.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){this.select.onOptionDestroy(this.select.options.indexOf(this))}}},37:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[n("span",[e._v(e._s(e.currentLabel))])])],2)},staticRenderFns:[]};t.a=i},5:function(e,t){e.exports=n("WN98")},6:function(e,t){e.exports=n("G8IQ")},7:function(e,t){e.exports=n("9mPB")}})},Piua:function(e,t,n){var i=n("9PUD").extend({type:"dataZoom.select"});e.exports=i},Pp7o:function(e,t,n){var i=new(n("3sZc"))(50);function r(){var e=this.__cachedImgObj;this.onload=this.__cachedImgObj=null;for(var t=0;t<e.pending.length;t++){var n=e.pending[t],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}e.pending.length=0}function a(e){return e&&e.width&&e.height}t.findExistImage=function(e){if("string"==typeof e){var t=i.get(e);return t&&t.image}return e},t.createOrUpdateImage=function(e,t,n,o,s){if(e){if("string"==typeof e){if(t&&t.__zrImageSrc===e||!n)return t;var l=i.get(e),u={hostEl:n,cb:o,cbPayload:s};return l?!a(t=l.image)&&l.pending.push(u):(!t&&(t=new Image),t.onload=r,i.put(e,t.__cachedImgObj={image:t,pending:[u]}),t.src=t.__zrImageSrc=e),t}return e}return t},t.isImageReady=a},Pq3W:function(e,t,n){n("jMVH"),n("Mp8l")},Ptym:function(e,t,n){var i=n("LH4M"),r=n("Q/cl"),a=r.mergeLayoutParam,o=r.getLayoutParams,s=i.extend({type:"legend.scroll",setScrollDataIndex:function(e){this.option.scrollDataIndex=e},defaultOption:{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800},init:function(e,t,n,i){var r=o(e);s.superCall(this,"init",e,t,n,i),l(this,e,r)},mergeOption:function(e,t){s.superCall(this,"mergeOption",e,t),l(this,this.option,e)},getOrient:function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}}});function l(e,t,n){var i=[1,1];i[e.getOrient().index]=0,a(t,n,{type:"box",ignoreSize:i})}var u=s;e.exports=u},PvHr:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("01Ub"),o=n("7Rvj"),s=i.PRIORITY.VISUAL.COMPONENT;function l(e,t,n,i){for(var r=t.targetVisuals[i],a=o.prepareVisualTypes(r),s={color:e.getData().getVisual("color")},l=0,u=a.length;l<u;l++){var c=a[l],d=r["opacity"===c?"__alphaForOpacity":c];d&&d.applyVisual(n,h,f)}return s.color;function h(e){return s[e]}function f(e,t){s[e]=t}}i.registerVisual(s,{createOnAllSeries:!0,reset:function(e,t){var n=[];return t.eachComponent("visualMap",function(t){var i=e.pipelineContext;!t.isTargetSeries(e)||i&&i.large||n.push(a.incrementalApplyVisual(t.stateList,t.targetVisuals,r.bind(t.getValueState,t),t.getDataDimension(e.getData())))}),n}}),i.registerVisual(s,{createOnAllSeries:!0,reset:function(e,t){var n=e.getData(),i=[];t.eachComponent("visualMap",function(t){if(t.isTargetSeries(e)){var a=t.getVisualMeta(r.bind(l,null,e,t))||{stops:[],outerColors:[]},o=t.getDataDimension(n),s=n.getDimensionInfo(o);null!=s&&(a.dimension=s.index,i.push(a))}}),e.getData().setVisual("visualMeta",i)}})},"Q+zo":function(e,t,n){var i=n("GKMz"),r=n("fAuK");function a(e,t,n){r.call(this,e,t,n),this.type="value",this.angle=0,this.name="",this.model}i.inherits(a,r);var o=a;e.exports=o},"Q/cl":function(e,t,n){var i=n("GKMz"),r=n("OGtO"),a=n("abCA").parsePercent,o=n("uxQp"),s=i.each,l=["left","right","top","bottom","width","height"],u=[["width","left","right"],["height","top","bottom"]];function c(e,t,n,i,r){var a=0,o=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;t.eachChild(function(l,u){var c,d,h=l.position,f=l.getBoundingRect(),p=t.childAt(u+1),m=p&&p.getBoundingRect();if("horizontal"===e){var g=f.width+(m?-m.x+f.x:0);(c=a+g)>i||l.newline?(a=0,c=g,o+=s+n,s=f.height):s=Math.max(s,f.height)}else{var v=f.height+(m?-m.y+f.y:0);(d=o+v)>r||l.newline?(a+=s+n,o=0,d=v,s=f.width):s=Math.max(s,f.width)}l.newline||(h[0]=a,h[1]=o,"horizontal"===e?a=c+n:o=d+n)})}var d=c,h=i.curry(c,"vertical"),f=i.curry(c,"horizontal");function p(e,t,n){n=o.normalizeCssArray(n||0);var i=t.width,s=t.height,l=a(e.left,i),u=a(e.top,s),c=a(e.right,i),d=a(e.bottom,s),h=a(e.width,i),f=a(e.height,s),p=n[2]+n[0],m=n[1]+n[3],g=e.aspect;switch(isNaN(h)&&(h=i-c-m-l),isNaN(f)&&(f=s-d-p-u),null!=g&&(isNaN(h)&&isNaN(f)&&(g>i/s?h=.8*i:f=.8*s),isNaN(h)&&(h=g*f),isNaN(f)&&(f=h/g)),isNaN(l)&&(l=i-c-h-m),isNaN(u)&&(u=s-d-f-p),e.left||e.right){case"center":l=i/2-h/2-n[3];break;case"right":l=i-h-m}switch(e.top||e.bottom){case"middle":case"center":u=s/2-f/2-n[0];break;case"bottom":u=s-f-p}l=l||0,u=u||0,isNaN(h)&&(h=i-m-l-(c||0)),isNaN(f)&&(f=s-p-u-(d||0));var v=new r(l+n[3],u+n[0],h,f);return v.margin=n,v}function m(e,t){return t&&e&&s(l,function(n){t.hasOwnProperty(n)&&(e[n]=t[n])}),e}t.LOCATION_PARAMS=l,t.HV_NAMES=u,t.box=d,t.vbox=h,t.hbox=f,t.getAvailableSize=function(e,t,n){var i=t.width,r=t.height,s=a(e.x,i),l=a(e.y,r),u=a(e.x2,i),c=a(e.y2,r);return(isNaN(s)||isNaN(parseFloat(e.x)))&&(s=0),(isNaN(u)||isNaN(parseFloat(e.x2)))&&(u=i),(isNaN(l)||isNaN(parseFloat(e.y)))&&(l=0),(isNaN(c)||isNaN(parseFloat(e.y2)))&&(c=r),n=o.normalizeCssArray(n||0),{width:Math.max(u-s-n[1]-n[3],0),height:Math.max(c-l-n[0]-n[2],0)}},t.getLayoutRect=p,t.positionElement=function(e,t,n,a,o){var s=!o||!o.hv||o.hv[0],l=!o||!o.hv||o.hv[1],u=o&&o.boundingMode||"all";if(s||l){var c;if("raw"===u)c="group"===e.type?new r(0,0,+t.width||0,+t.height||0):e.getBoundingRect();else if(c=e.getBoundingRect(),e.needLocalTransform()){var d=e.getLocalTransform();(c=c.clone()).applyTransform(d)}t=p(i.defaults({width:c.width,height:c.height},t),n,a);var h=e.position,f=s?t.x-c.x:0,m=l?t.y-c.y:0;e.attr("position","raw"===u?[f,m]:[h[0]+f,h[1]+m])}},t.sizeCalculable=function(e,t){return null!=e[u[t][0]]||null!=e[u[t][1]]&&null!=e[u[t][2]]},t.mergeLayoutParam=function(e,t,n){!i.isObject(n)&&(n={});var r=n.ignoreSize;!i.isArray(r)&&(r=[r,r]);var a=l(u[0],0),o=l(u[1],1);function l(n,i){var a={},o=0,l={},u=0;if(s(n,function(t){l[t]=e[t]}),s(n,function(e){c(t,e)&&(a[e]=l[e]=t[e]),d(a,e)&&o++,d(l,e)&&u++}),r[i])return d(t,n[1])?l[n[2]]=null:d(t,n[2])&&(l[n[1]]=null),l;if(2!==u&&o){if(o>=2)return a;for(var h=0;h<n.length;h++){var f=n[h];if(!c(a,f)&&c(e,f)){a[f]=e[f];break}}return a}return l}function c(e,t){return e.hasOwnProperty(t)}function d(e,t){return null!=e[t]&&"auto"!==e[t]}function h(e,t,n){s(e,function(e){t[e]=n[e]})}h(u[0],e,a),h(u[1],e,o)},t.getLayoutParams=function(e){return m({},e)},t.copyLayoutParams=m},Q6RJ:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("KSHG"),o=n("Cwac"),s=n("uxQp"),l=n("abCA"),u=n("aVg8"),c=n("wsbZ"),d=n("Q/cl"),h=n("xWTI"),f=n("WqZQ"),p=n("3m5Y"),m=n("dRQw"),g=r.bind,v=r.each,y=l.parsePercent,b=new u.Rect({shape:{x:-1,y:-1,width:2,height:2}}),_=i.extendComponentView({type:"tooltip",init:function(e,t){if(!a.node){var n=new o(t.getDom(),t);this._tooltipContent=n}},render:function(e,t,n){if(!a.node&&!a.wxa){this.group.removeAll(),this._tooltipModel=e,this._ecModel=t,this._api=n,this._lastDataByCoordSys=null,this._alwaysShowContent=e.get("alwaysShowContent");var i=this._tooltipContent;i.update(),i.setEnterable(e.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var e=this._tooltipModel.get("triggerOn");f.register("itemTooltip",this._api,g(function(t,n,i){"none"!==e&&(e.indexOf(t)>=0?this._tryShow(n,i):"leave"===t&&this._hide(i))},this))},_keepShow:function(){var e=this._tooltipModel,t=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==e.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){i.manuallyShowTip(e,t,n,{x:i._lastX,y:i._lastY})})}},manuallyShowTip:function(e,t,n,i){if(i.from!==this.uid&&!a.node){var r=w(i,n);this._ticket="";var o=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var s=b;s.position=[i.x,i.y],s.update(),s.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:s},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,event:{},dataByCoordSys:i.dataByCoordSys,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(e,t,n,i))return;var l=c(i,t),u=l.point[0],d=l.point[1];null!=u&&null!=d&&this._tryShow({offsetX:u,offsetY:d,position:i.position,target:l.el,event:{}},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target,event:{}},r))}},manuallyHideTip:function(e,t,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,i.from!==this.uid&&this._hide(w(i,n))},_manuallyAxisShowTip:function(e,t,n,i){var r=i.seriesIndex,a=i.dataIndex,o=t.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=a&&null!=o){var s=t.getSeriesByIndex(r);if(s)if("axis"===(e=x([s.getData().getItemModel(a),s,(s.coordinateSystem||{}).model,e])).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:a,position:i.position}),!0}},_tryShow:function(e,t){var n=e.target;if(this._tooltipModel){this._lastX=e.offsetX,this._lastY=e.offsetY;var i=e.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,e):n&&null!=n.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(e,n,t)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(e,n,t)):(this._lastDataByCoordSys=null,this._hide(t))}},_showOrMove:function(e,t){var n=e.get("showDelay");t=r.bind(t,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(t,n):t()},_showAxisTooltip:function(e,t){var n=this._ecModel,i=this._tooltipModel,a=[t.offsetX,t.offsetY],o=[],l=[],u=x([t.tooltipOption,i]);v(e,function(e){v(e.dataByAxis,function(e){var t=n.getComponent(e.axisDim+"Axis",e.axisIndex),i=e.value,a=[];if(t&&null!=i){var u=m.getValueLabel(i,t.axis,n,e.seriesDataIndices,e.valueLabelOpt);r.each(e.seriesDataIndices,function(r){var o=n.getSeriesByIndex(r.seriesIndex),s=r.dataIndexInside,c=o&&o.getDataParams(s);c.axisDim=e.axisDim,c.axisIndex=e.axisIndex,c.axisType=e.axisType,c.axisId=e.axisId,c.axisValue=p.getAxisRawValue(t.axis,i),c.axisValueLabel=u,c&&(l.push(c),a.push(o.formatTooltip(s,!0)))});var c=u;o.push((c?s.encodeHTML(c)+"<br />":"")+a.join("<br />"))}})},this),o.reverse(),o=o.join("<br /><br />");var c=t.position;this._showOrMove(u,function(){this._updateContentNotChangedOnAxis(e)?this._updatePosition(u,c,a[0],a[1],this._tooltipContent,l):this._showTooltipContent(u,o,l,Math.random(),a[0],a[1],c)})},_showSeriesItemTooltip:function(e,t,n){var i=this._ecModel,r=t.seriesIndex,a=i.getSeriesByIndex(r),o=t.dataModel||a,s=t.dataIndex,l=t.dataType,u=o.getData(),c=x([u.getItemModel(s),o,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),d=c.get("trigger");if(null==d||"item"===d){var h=o.getDataParams(s,l),f=o.formatTooltip(s,!1,l),p="item_"+o.name+"_"+s;this._showOrMove(c,function(){this._showTooltipContent(c,f,h,p,e.offsetX,e.offsetY,e.position,e.target)}),n({type:"showTip",dataIndexInside:s,dataIndex:u.getRawIndex(s),seriesIndex:r,from:this.uid})}},_showComponentItemTooltip:function(e,t,n){var i=t.tooltip;if("string"==typeof i){i={content:i,formatter:i}}var r=new h(i,this._tooltipModel,this._ecModel),a=r.get("content"),o=Math.random();this._showOrMove(r,function(){this._showTooltipContent(r,a,r.get("formatterParams")||{},o,e.offsetX,e.offsetY,e.position,t)}),n({type:"showTip",from:this.uid})},_showTooltipContent:function(e,t,n,i,r,a,o,l){if(this._ticket="",e.get("showContent")&&e.get("show")){var u=this._tooltipContent,c=e.get("formatter");o=o||e.get("position");var d=t;if(c&&"string"==typeof c)d=s.formatTpl(c,n,!0);else if("function"==typeof c){var h=g(function(t,i){t===this._ticket&&(u.setContent(i),this._updatePosition(e,o,r,a,u,n,l))},this);this._ticket=i,d=c(n,i,h)}u.setContent(d),u.show(e),this._updatePosition(e,o,r,a,u,n,l)}},_updatePosition:function(e,t,n,i,a,o,s){var l=this._api.getWidth(),u=this._api.getHeight();t=t||e.get("position");var c=a.getSize(),h=e.get("align"),f=e.get("verticalAlign"),p=s&&s.getBoundingRect().clone();if(s&&p.applyTransform(s.transform),"function"==typeof t&&(t=t([n,i],o,a.el,p,{viewSize:[l,u],contentSize:c.slice()})),r.isArray(t))n=y(t[0],l),i=y(t[1],u);else if(r.isObject(t)){t.width=c[0],t.height=c[1];var m=d.getLayoutRect(t,{width:l,height:u});n=m.x,i=m.y,h=null,f=null}else if("string"==typeof t&&s){var g=function(e,t,n){var i=n[0],r=n[1],a=0,o=0,s=t.width,l=t.height;switch(e){case"inside":a=t.x+s/2-i/2,o=t.y+l/2-r/2;break;case"top":a=t.x+s/2-i/2,o=t.y-r-5;break;case"bottom":a=t.x+s/2-i/2,o=t.y+l+5;break;case"left":a=t.x-i-5,o=t.y+l/2-r/2;break;case"right":a=t.x+s+5,o=t.y+l/2-r/2}return[a,o]}(t,p,c);n=g[0],i=g[1]}else{g=function(e,t,n,i,r,a,o){var s=S(n),l=s.width,u=s.height;null!=a&&(e+l+a>i?e-=l+a:e+=a);null!=o&&(t+u+o>r?t-=u+o:t+=o);return[e,t]}(n,i,a.el,l,u,h?null:20,f?null:20);n=g[0],i=g[1]}if(h&&(n-=C(h)?c[0]/2:"right"===h?c[0]:0),f&&(i-=C(f)?c[1]/2:"bottom"===f?c[1]:0),e.get("confine")){g=function(e,t,n,i,r){var a=S(n),o=a.width,s=a.height;return e=Math.min(e+o,i)-o,t=Math.min(t+s,r)-s,e=Math.max(e,0),t=Math.max(t,0),[e,t]}(n,i,a.el,l,u);n=g[0],i=g[1]}a.moveTo(n,i)},_updateContentNotChangedOnAxis:function(e){var t=this._lastDataByCoordSys,n=!!t&&t.length===e.length;return n&&v(t,function(t,i){var r=t.dataByAxis||{},a=(e[i]||{}).dataByAxis||[];(n&=r.length===a.length)&&v(r,function(e,t){var i=a[t]||{},r=e.seriesDataIndices||[],o=i.seriesDataIndices||[];(n&=e.value===i.value&&e.axisType===i.axisType&&e.axisId===i.axisId&&r.length===o.length)&&v(r,function(e,t){var i=o[t];n&=e.seriesIndex===i.seriesIndex&&e.dataIndex===i.dataIndex})})}),this._lastDataByCoordSys=e,!!n},_hide:function(e){this._lastDataByCoordSys=null,e({type:"hideTip",from:this.uid})},dispose:function(e,t){a.node||a.wxa||(this._tooltipContent.hide(),f.unregister("itemTooltip",t))}});function x(e){for(var t=e.pop();e.length;){var n=e.pop();n&&(h.isInstance(n)&&(n=n.get("tooltip",!0)),"string"==typeof n&&(n={formatter:n}),t=new h(n,t,t.ecModel))}return t}function w(e,t){return e.dispatchAction||r.bind(t.dispatchAction,t)}function S(e){var t=e.clientWidth,n=e.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var i=document.defaultView.getComputedStyle(e);i&&(t+=parseInt(i.paddingLeft,10)+parseInt(i.paddingRight,10)+parseInt(i.borderLeftWidth,10)+parseInt(i.borderRightWidth,10),n+=parseInt(i.paddingTop,10)+parseInt(i.paddingBottom,10)+parseInt(i.borderTopWidth,10)+parseInt(i.borderBottomWidth,10))}return{width:t,height:n}}function C(e){return"center"===e||"middle"===e}e.exports=_},Q9e6:function(e,t,n){var i=n("ofeI"),r=n("GKMz"),a=n("yX3w"),o=n("hTgT"),s=n("Af6+").prototype.getCanvasPattern,l=Math.abs,u=new a(!0);function c(e){i.call(this,e),this.path=null}c.prototype={constructor:c,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(e,t){var n,i=this.style,r=this.path||u,a=i.hasStroke(),o=i.hasFill(),l=i.fill,c=i.stroke,d=o&&!!l.colorStops,h=a&&!!c.colorStops,f=o&&!!l.image,p=a&&!!c.image;(i.bind(e,this,t),this.setTransform(e),this.__dirty)&&(d&&(n=n||this.getBoundingRect(),this._fillGradient=i.getGradient(e,l,n)),h&&(n=n||this.getBoundingRect(),this._strokeGradient=i.getGradient(e,c,n)));d?e.fillStyle=this._fillGradient:f&&(e.fillStyle=s.call(l,e)),h?e.strokeStyle=this._strokeGradient:p&&(e.strokeStyle=s.call(c,e));var m=i.lineDash,g=i.lineDashOffset,v=!!e.setLineDash,y=this.getGlobalScale();r.setScale(y[0],y[1]),this.__dirtyPath||m&&!v&&a?(r.beginPath(e),m&&!v&&(r.setLineDash(m),r.setLineDashOffset(g)),this.buildPath(r,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(e.beginPath(),this.path.rebuildPath(e)),o&&r.fill(e),m&&v&&(e.setLineDash(m),e.lineDashOffset=g),a&&r.stroke(e),m&&v&&e.setLineDash([]),null!=i.text&&(this.restoreTransform(e),this.drawRectText(e,this.getBoundingRect()))},buildPath:function(e,t,n){},createPathProxy:function(){this.path=new a},getBoundingRect:function(){var e=this._rect,t=this.style,n=!e;if(n){var i=this.path;i||(i=this.path=new a),this.__dirtyPath&&(i.beginPath(),this.buildPath(i,this.shape,!1)),e=i.getBoundingRect()}if(this._rect=e,t.hasStroke()){var r=this._rectWithStroke||(this._rectWithStroke=e.clone());if(this.__dirty||n){r.copy(e);var o=t.lineWidth,s=t.strokeNoScale?this.getLineScale():1;t.hasFill()||(o=Math.max(o,this.strokeContainThreshold||4)),s>1e-10&&(r.width+=o/s,r.height+=o/s,r.x-=o/s/2,r.y-=o/s/2)}return r}return e},contain:function(e,t){var n=this.transformCoordToLocal(e,t),i=this.getBoundingRect(),r=this.style;if(e=n[0],t=n[1],i.contain(e,t)){var a=this.path.data;if(r.hasStroke()){var s=r.lineWidth,l=r.strokeNoScale?this.getLineScale():1;if(l>1e-10&&(r.hasFill()||(s=Math.max(s,this.strokeContainThreshold)),o.containStroke(a,s/l,e,t)))return!0}if(r.hasFill())return o.contain(a,e,t)}return!1},dirty:function(e){null==e&&(e=!0),e&&(this.__dirtyPath=e,this._rect=null),this.__dirty=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(e){return this.animate("shape",e)},attrKV:function(e,t){"shape"===e?(this.setShape(t),this.__dirtyPath=!0,this._rect=null):i.prototype.attrKV.call(this,e,t)},setShape:function(e,t){var n=this.shape;if(n){if(r.isObject(e))for(var i in e)e.hasOwnProperty(i)&&(n[i]=e[i]);else n[e]=t;this.dirty(!0)}return this},getLineScale:function(){var e=this.transform;return e&&l(e[0]-1)>1e-10&&l(e[3]-1)>1e-10?Math.sqrt(l(e[0]*e[3]-e[2]*e[1])):1}},c.extend=function(e){var t=function(t){c.call(this,t),e.style&&this.style.extendFrom(e.style,!1);var n=e.shape;if(n){this.shape=this.shape||{};var i=this.shape;for(var r in n)!i.hasOwnProperty(r)&&n.hasOwnProperty(r)&&(i[r]=n[r])}e.init&&e.init.call(this,t)};for(var n in r.inherits(t,c),e)"style"!==n&&"shape"!==n&&(t.prototype[n]=e[n]);return t},r.inherits(c,i);var d=c;e.exports=d},QPg4:function(e,t,n){var i=n("/MtV"),r=n("W9LT");n("P54J"),n("PvHr"),n("hqCH"),n("Yw6K"),n("aEMU"),i.registerPreprocessor(r)},QR1y:function(e,t,n){var i=n("GKMz"),r=n("YR6M"),a=n("4f7s"),o=n("HT+0").wrapTreePathInfo,s=r.extend({type:"series.sunburst",_viewRoot:null,getInitialData:function(e,t){var n={name:e.name,children:e.data};!function e(t){var n=0;i.each(t.children,function(t){e(t);var r=t.value;i.isArray(r)&&(r=r[0]),n+=r});var r=t.value;i.isArray(r)&&(r=r[0]);(null==r||isNaN(r))&&(r=n);r<0&&(r=0);i.isArray(t.value)?t.value[0]=r:t.value=r}(n);var r=e.levels||[],o={};return o.levels=r,a.createTree(n,this,o).data},optionUpdated:function(){this.resetViewRoot()},getDataParams:function(e){var t=r.prototype.getDataParams.apply(this,arguments),n=this.getData().tree.getNodeByDataIndex(e);return t.treePathInfo=o(n,this),t},defaultOption:{zlevel:0,z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,percentPrecision:2,stillShowZeroSum:!0,highlightPolicy:"descendant",nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0,emphasis:{}},itemStyle:{borderWidth:1,borderColor:"white",opacity:1,emphasis:{},highlight:{opacity:1},downplay:{opacity:.9}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicOut",data:[],levels:[],sort:"desc"},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(e){e?this._viewRoot=e:e=this._viewRoot;var t=this.getRawData().tree.root;e&&(e===t||t.contains(e))||(this._viewRoot=t)}});e.exports=s},Qb3P:function(e,t,n){var i=n("GKMz"),r=n("fAuK"),a=function(e,t,n,i,a){r.call(this,e,t,n),this.type=i||"value",this.position=a||"bottom",this.orient=null};a.prototype={constructor:a,model:null,isHorizontal:function(){var e=this.position;return"top"===e||"bottom"===e},pointToData:function(e,t){return this.coordinateSystem.pointToData(e,t)[0]},toGlobalCoord:null,toLocalCoord:null},i.inherits(a,r);var o=a;e.exports=o},Qfnc:function(e,t,n){n("BUW8"),n("efir"),n("VIFr")},Qieq:function(e,t,n){var i=n("XCYH");e.exports=function(e,t){return i((t=t||{}).coordDimensions||[],e,{dimsDef:t.dimensionsDefine||e.dimensionsDefine,encodeDef:t.encodeDefine||e.encodeDefine,dimCount:t.dimensionsCount,generateCoord:t.generateCoord,generateCoordCount:t.generateCoordCount})}},QmbI:function(e,t,n){var i=n("GKMz").each,r="\0_ec_hist_store";function a(e){var t=e[r];return t||(t=e[r]=[{}]),t}t.push=function(e,t){var n=a(e);i(t,function(t,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var a=e.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(a){var o=a.getPercentRange();n[0][i]={dataZoomId:i,start:o[0],end:o[1]}}}}),n.push(t)},t.pop=function(e){var t=a(e),n=t[t.length-1];t.length>1&&t.pop();var r={};return i(n,function(e,n){for(var i=t.length-1;i>=0;i--)if(e=t[i][n]){r[n]=e;break}}),r},t.clear=function(e){e[r]=null},t.count=function(e){return a(e).length}},Qmdc:function(e,t,n){var i=n("GKMz").each,r=n("gIPg"),a=n("Bd51"),o=n("wNlq"),s=n("vqvJ"),l=n("ZgaJ").createTask,u=n("gbpp"),c=s.makeInner(),d=u();function h(){this.group=new r,this.uid=a.getUID("viewChart"),this.renderTask=l({plan:g,reset:v}),this.renderTask.context={view:this}}h.prototype={type:"chart",init:function(e,t){},render:function(e,t,n,i){},highlight:function(e,t,n,i){m(e.getData(),i,"emphasis")},downplay:function(e,t,n,i){m(e.getData(),i,"normal")},remove:function(e,t){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null};var f=h.prototype;function p(e,t){if(e&&(e.trigger(t),"group"===e.type))for(var n=0;n<e.childCount();n++)p(e.childAt(n),t)}function m(e,t,n){var r=s.queryDataIndex(e,t);null!=r?i(s.normalizeToArray(r),function(t){p(e.getItemGraphicEl(t),n)}):e.eachItemGraphicEl(function(e){p(e,n)})}function g(e){return d(e.model)}function v(e){var t=e.model,n=e.ecModel,i=e.api,r=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=r&&c(r).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return"render"!==l&&o[l](t,n,i,r),y[l]}f.updateView=f.updateLayout=f.updateVisual=function(e,t,n,i){this.render(e,t,n,i)},o.enableClassExtend(h,["dispose"]),o.enableClassManagement(h,{registerWhenExtend:!0}),h.markUpdateMethod=function(e,t){c(e).updateMethod=t};var y={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}},b=h;e.exports=b},QuUA:function(e,t,n){var i=n("qIgY")([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),r={getBarItemStyle:function(e){var t=i(this,e);if(this.getBorderLineDash){var n=this.getBorderLineDash();n&&(t.lineDash=n)}return t}};e.exports=r},QxRo:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){for(var t=1,n=arguments.length;t<n;t++){var i=arguments[t]||{};for(var r in i)if(i.hasOwnProperty(r)){var a=i[r];void 0!==a&&(e[r]=a)}}return e}},"R+dN":function(e,t,n){var i=n("luYz");function r(e){e.eachEdge(function(e){var t=e.getModel().get("lineStyle.curveness")||0,n=i.clone(e.node1.getLayout()),r=i.clone(e.node2.getLayout()),a=[n,r];+t&&a.push([(n[0]+r[0])/2-(n[1]-r[1])*t,(n[1]+r[1])/2-(r[0]-n[0])*t]),e.setLayout(a)})}t.simpleLayout=function(e){var t=e.coordinateSystem;if(!t||"view"===t.type){var n=e.getGraph();n.eachNode(function(e){var t=e.getModel();e.setLayout([+t.get("x"),+t.get("y")])}),r(n)}},t.simpleLayoutEdge=r},RBTo:function(e,t,n){var i=n("MPog"),r=new(n("OGtO")),a=function(){};a.prototype={constructor:a,drawRectText:function(e,t){var n=this.style;t=n.textRect||t,this.__dirty&&i.normalizeTextStyle(n,!0);var a=n.text;if(null!=a&&(a+=""),i.needDrawText(a,n)){e.save();var o=this.transform;n.transformText?this.setTransform(e):o&&(r.copy(t),r.applyTransform(o),t=r),i.renderText(this,e,a,n,t),e.restore()}}};var o=a;e.exports=o},REEr:function(e,t){t.SOURCE_FORMAT_ORIGINAL="original",t.SOURCE_FORMAT_ARRAY_ROWS="arrayRows",t.SOURCE_FORMAT_OBJECT_ROWS="objectRows",t.SOURCE_FORMAT_KEYED_COLUMNS="keyedColumns",t.SOURCE_FORMAT_UNKNOWN="unknown",t.SOURCE_FORMAT_TYPED_ARRAY="typedArray",t.SERIES_LAYOUT_BY_COLUMN="column",t.SERIES_LAYOUT_BY_ROW="row"},"RJ+u":function(e,t,n){var i=n("AKd3"),r=i.JSON||(i.JSON={stringify:JSON.stringify});e.exports=function(e){return r.stringify.apply(r,arguments)}},ROrh:function(e,t,n){var i=n("FITv");i(i.S,"Number",{isNaN:function(e){return e!=e}})},RaST:function(e,t){e.exports=function(e,t,n,i,r,a){if(a>t&&a>i||a<t&&a<i)return 0;if(i===t)return 0;var o=i<t?1:-1,s=(a-t)/(i-t);1!==s&&0!==s||(o=i<t?.5:-.5);var l=s*(n-e)+e;return l===r?1/0:l>r?o:0}},RaWr:function(e,t,n){var i=n("/MtV"),r=n("GKMz");function a(e,t){t.update="updateView",i.registerAction(t,function(t,n){var i={};return n.eachComponent({mainType:"geo",query:t},function(n){n[e](t.name);var a=n.coordinateSystem;r.each(a.regions,function(e){i[e.name]=n.isSelected(e.name)||!1})}),{selected:i,name:t.name}})}n("fUzA"),n("93zO"),n("S4hZ"),n("5B9r"),a("toggleSelected",{type:"geoToggleSelect",event:"geoselectchanged"}),a("select",{type:"geoSelect",event:"geoselected"}),a("unSelect",{type:"geoUnSelect",event:"geounselected"})},RiVb:function(e,t,n){var i=n("GKMz"),r=n("fAuK"),a=function(e,t,n,i,a){r.call(this,e,t,n),this.type=i||"value",this.axisIndex=a};a.prototype={constructor:a,model:null,isHorizontal:function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")}},i.inherits(a,r);var o=a;e.exports=o},RkrU:function(e,t){var n=2*Math.PI;t.normalizeRadian=function(e){return(e%=n)<0&&(e+=n),e}},RrcE:function(e,t,n){var i=n("krKi"),r=n("GKMz"),a=n("g0yf");function o(e,t){i.call(this,e,t,"clipPath","__clippath_in_use__")}r.inherits(o,i),o.prototype.update=function(e){var t=this.getSvgElement(e);t&&this.updateDom(t,e.__clipPaths,!1);var n=this.getTextSvgElement(e);n&&this.updateDom(n,e.__clipPaths,!0),this.markUsed(e)},o.prototype.updateDom=function(e,t,n){if(t&&t.length>0){var i,r,o=this.getDefs(!0),s=t[0],l=n?"_textDom":"_dom";s[l]?(r=s[l].getAttribute("id"),i=s[l],o.contains(i)||o.appendChild(i)):(r="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(i=this.createElement("clipPath")).setAttribute("id",r),o.appendChild(i),s[l]=i);var u=this.getSvgProxy(s);if(s.transform&&s.parent.invTransform&&!n){var c=Array.prototype.slice.call(s.transform);a.mul(s.transform,s.parent.invTransform,s.transform),u.brush(s),s.transform=c}else u.brush(s);var d=this.getSvgElement(s);i.innerHTML="",i.appendChild(d.cloneNode()),e.setAttribute("clip-path","url(#"+r+")"),t.length>1&&this.updateDom(i,t.slice(1),n)}else e&&e.setAttribute("clip-path","none")},o.prototype.markUsed=function(e){var t=this;e.__clipPaths&&e.__clipPaths.length>0&&r.each(e.__clipPaths,function(e){e._dom&&i.prototype.markUsed.call(t,e._dom),e._textDom&&i.prototype.markUsed.call(t,e._textDom)})};var s=o;e.exports=s},"S/Ei":function(e,t,n){var i=n("GKMz");function r(){var e=i.createCanvas();this.canvas=e,this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={}}r.prototype={update:function(e,t,n,i,r,a){var o=this._getBrush(),s=this._getGradient(e,r,"inRange"),l=this._getGradient(e,r,"outOfRange"),u=this.pointSize+this.blurSize,c=this.canvas,d=c.getContext("2d"),h=e.length;c.width=t,c.height=n;for(var f=0;f<h;++f){var p=e[f],m=p[0],g=p[1],v=i(p[2]);d.globalAlpha=v,d.drawImage(o,m-u,g-u)}if(!c.width||!c.height)return c;for(var y=d.getImageData(0,0,c.width,c.height),b=y.data,_=0,x=b.length,w=this.minOpacity,S=this.maxOpacity-w;_<x;){v=b[_+3]/256;var C=4*Math.floor(255*v);if(v>0){var M=a(v)?s:l;v>0&&(v=v*S+w),b[_++]=M[C],b[_++]=M[C+1],b[_++]=M[C+2],b[_++]=M[C+3]*v*256}else _+=4}return d.putImageData(y,0,0),c},_getBrush:function(){var e=this._brushCanvas||(this._brushCanvas=i.createCanvas()),t=this.pointSize+this.blurSize,n=2*t;e.width=n,e.height=n;var r=e.getContext("2d");return r.clearRect(0,0,n,n),r.shadowOffsetX=n,r.shadowBlur=this.blurSize,r.shadowColor="#000",r.beginPath(),r.arc(-t,t,this.pointSize,0,2*Math.PI,!0),r.closePath(),r.fill(),e},_getGradient:function(e,t,n){for(var i=this._gradientPixels,r=i[n]||(i[n]=new Uint8ClampedArray(1024)),a=[0,0,0,0],o=0,s=0;s<256;s++)t[n](s/255,!0,a),r[o++]=a[0],r[o++]=a[1],r[o++]=a[2],r[o++]=a[3];return r}};var a=r;e.exports=a},"S/ih":function(e,t,n){var i=n("GKMz"),r=n("abCA"),a=n("cfvC").isDimensionStacked,o=i.indexOf;function s(e,t,n,i,o,s){var l=[],u=a(t,i)?t.getCalculationInfo("stackResultDimension"):i,c=d(t,u,e),h=t.indicesOfNearest(u,c)[0];l[o]=t.get(n,h),l[s]=t.get(i,h);var f=r.getPrecision(t.get(i,h));return(f=Math.min(f,20))>=0&&(l[s]=+l[s].toFixed(f)),l}var l=i.curry,u={min:l(s,"min"),max:l(s,"max"),average:l(s,"average")};function c(e,t,n,i){var r={};return null!=e.valueIndex||null!=e.valueDim?(r.valueDataDim=null!=e.valueIndex?t.getDimension(e.valueIndex):e.valueDim,r.valueAxis=n.getAxis(function(e,t){var n=e.getData(),i=n.dimensions;t=n.getDimension(t);for(var r=0;r<i.length;r++){var a=n.getDimensionInfo(i[r]);if(a.name===t)return a.coordDim}}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=t.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=t.mapDimension(r.baseAxis.dim),r.valueDataDim=t.mapDimension(r.valueAxis.dim)),r}function d(e,t,n){if("average"===n){var i=0,r=0;return e.each(t,function(e,t){isNaN(e)||(i+=e,r++)}),i/r}return"median"===n?e.getMedian(t):e.getDataExtent(t,!0)["max"===n?1:0]}t.dataTransform=function(e,t){var n=e.getData(),r=e.coordinateSystem;if(t&&!function(e){return!isNaN(parseFloat(e.x))&&!isNaN(parseFloat(e.y))}(t)&&!i.isArray(t.coord)&&r){var a=r.dimensions,s=c(t,n,r,e);if((t=i.clone(t)).type&&u[t.type]&&s.baseAxis&&s.valueAxis){var l=o(a,s.baseAxis.dim),h=o(a,s.valueAxis.dim);t.coord=u[t.type](n,s.baseDataDim,s.valueDataDim,l,h),t.value=t.coord[h]}else{for(var f=[null!=t.xAxis?t.xAxis:t.radiusAxis,null!=t.yAxis?t.yAxis:t.angleAxis],p=0;p<2;p++)u[f[p]]&&(f[p]=d(n,n.mapDimension(a[p]),f[p]));t.coord=f}}return t},t.getAxisInfo=c,t.dataFilter=function(e,t){return!(e&&e.containData&&t.coord&&!function(e){return!(isNaN(parseFloat(e.x))&&isNaN(parseFloat(e.y)))}(t))||e.containData(t.coord)},t.dimValueGetter=function(e,t,n,i){return i<2?e.coord&&e.coord[i]:e.value},t.numCalculate=d},S1jn:function(e,t,n){n("IsPG"),n("A1pn"),e.exports=n("CVJP").f("iterator")},S2lX:function(e,t,n){var i=n("GKMz");e.exports=function(e){var t=e.polar;if(t){i.isArray(t)||(t=[t]);var n=[];i.each(t,function(t,r){t.indicator?(t.type&&!t.shape&&(t.shape=t.type),e.radar=e.radar||[],i.isArray(e.radar)||(e.radar=[e.radar]),e.radar.push(t)):n.push(t)}),e.polar=n}i.each(e.series,function(e){e&&"radar"===e.type&&e.polarIndex&&(e.radarIndex=e.polarIndex)})}},S4hZ:function(e,t,n){var i=n("unHI"),r=n("/MtV").extendComponentView({type:"geo",init:function(e,t){var n=new i(t,!0);this._mapDraw=n,this.group.add(n.group)},render:function(e,t,n,i){if(!i||"geoToggleSelect"!==i.type||i.from!==this.uid){var r=this._mapDraw;e.get("show")?r.draw(e,t,n,this,i):this._mapDraw.group.removeAll(),this.group.silent=e.get("silent")}},dispose:function(){this._mapDraw&&this._mapDraw.remove()}});e.exports=r},S7dV:function(e,t,n){"use strict";t.__esModule=!0,t.default={mounted:function(){},methods:{getMigratingConfig:function(){return{props:{},events:{}}}}}},SAFe:function(e,t,n){var i=n("FITv");i(i.S+i.F*!n("sjnA"),"Object",{defineProperty:n("lIiZ").f})},SAqN:function(e,t,n){var i=n("YR6M"),r=n("rcR3"),a=n("uxQp").encodeHTML,o=i.extend({type:"series.sankey",layoutInfo:null,getInitialData:function(e){var t=e.edges||e.links,n=e.data||e.nodes;if(n&&t)return r(n,t,this,!0).data},setNodePosition:function(e,t){var n=this.option.data[e];n.localX=t[0],n.localY=t[1]},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},formatTooltip:function(e,t,n){if("edge"===n){var i=this.getDataParams(e,n),r=i.data,s=r.source+" -- "+r.target;return i.value&&(s+=" : "+i.value),a(s)}return o.superCall(this,"formatTooltip",e,t)},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",layout:null,left:"5%",top:"5%",right:"20%",bottom:"5%",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:"right",color:"#000",fontSize:12},itemStyle:{borderWidth:1,borderColor:"#333"},lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.6}},animationEasing:"linear",animationDuration:1e3}}),s=o;e.exports=s},SS50:function(e,t,n){e.exports=!n("sjnA")&&!n("BRDz")(function(){return 7!=Object.defineProperty(n("BplH")("div"),"a",{get:function(){return 7}}).a})},SULL:function(e,t,n){var i=n("GKMz");e.exports=function(){var e=[],t=[];return{key:function(t){return e.push(t),this},sortKeys:function(n){return t[e.length-1]=n,this},entries:function(n){return function n(r,a){if(a>=e.length)return r;var o=[],s=t[a++];return i.each(r,function(e,t){o.push({key:t,values:n(e,a)})}),s?o.sort(function(e,t){return s(e.key,t.key)}):o}(function t(n,r){if(r>=e.length)return n;for(var a=-1,o=n.length,s=e[r++],l={},u={};++a<o;){var c=s(n[a]),d=u[c];d?d.push(n[a]):u[c]=[n[a]]}return i.each(u,function(e,n){l[n]=t(e,r)}),l}(n,0),0)}}}},Scoi:function(e,t,n){var i=n("krKi"),r=n("GKMz"),a=n("L3JW");function o(e,t){i.call(this,e,t,["linearGradient","radialGradient"],"__gradient_in_use__")}r.inherits(o,i),o.prototype.addWithoutUpdate=function(e,t){if(t&&t.style){var n=this;r.each(["fill","stroke"],function(i){if(t.style[i]&&("linear"===t.style[i].type||"radial"===t.style[i].type)){var r,a=t.style[i],o=n.getDefs(!0);a._dom?(r=a._dom,o.contains(a._dom)||n.addDom(r)):r=n.add(a),n.markUsed(t);var s=r.getAttribute("id");e.setAttribute(i,"url(#"+s+")")}})}},o.prototype.add=function(e){var t;if("linear"===e.type)t=this.createElement("linearGradient");else{if("radial"!==e.type)return a("Illegal gradient type."),null;t=this.createElement("radialGradient")}return e.id=e.id||this.nextId++,t.setAttribute("id","zr"+this._zrId+"-gradient-"+e.id),this.updateDom(e,t),this.addDom(t),t},o.prototype.update=function(e){var t=this;i.prototype.update.call(this,e,function(){var n=e.type,i=e._dom.tagName;"linear"===n&&"linearGradient"===i||"radial"===n&&"radialGradient"===i?t.updateDom(e,e._dom):(t.removeDom(e),t.add(e))})},o.prototype.updateDom=function(e,t){if("linear"===e.type)t.setAttribute("x1",e.x),t.setAttribute("y1",e.y),t.setAttribute("x2",e.x2),t.setAttribute("y2",e.y2);else{if("radial"!==e.type)return void a("Illegal gradient type.");t.setAttribute("cx",e.x),t.setAttribute("cy",e.y),t.setAttribute("r",e.r)}e.global?t.setAttribute("gradientUnits","userSpaceOnUse"):t.setAttribute("gradientUnits","objectBoundingBox"),t.innerHTML="";for(var n=e.colorStops,i=0,r=n.length;i<r;++i){var o=this.createElement("stop");o.setAttribute("offset",100*n[i].offset+"%"),o.setAttribute("stop-color",n[i].color),t.appendChild(o)}e._dom=t},o.prototype.markUsed=function(e){if(e.style){var t=e.style.fill;t&&t._dom&&i.prototype.markUsed.call(this,t._dom),(t=e.style.stroke)&&t._dom&&i.prototype.markUsed.call(this,t._dom)}};var s=o;e.exports=s},Scpa:function(e,t){e.exports=function(e,t,n,i){var r,a=0;return"boolean"!=typeof t&&(i=n,n=t,t=void 0),function(){var o=this,s=Number(new Date)-a,l=arguments;function u(){a=Number(new Date),n.apply(o,l)}i&&!r&&u(),r&&clearTimeout(r),void 0===i&&s>e?u():!0!==t&&(r=setTimeout(i?function(){r=void 0}:u,void 0===i?e-s:e))}}},Snek:function(e,t,n){var i=n("/MtV"),r=n("3LBH"),a=n("g+XA"),o=n("g0yf"),s=n("VErb"),l=i.extendChartView({type:"effectScatter",init:function(){this._symbolDraw=new r(a)},render:function(e,t,n){var i=e.getData(),r=this._symbolDraw;r.updateData(i),this.group.add(r.group)},updateTransform:function(e,t,n){var i=e.getData();this.group.dirty();var r=s().reset(e);r.progress&&r.progress({start:0,end:i.count()},i),this._symbolDraw.updateLayout(i)},_updateGroupTransform:function(e){var t=e.coordinateSystem;t&&t.getRoamTransform&&(this.group.transform=o.clone(t.getRoamTransform()),this.group.decomposeTransform())},remove:function(e,t){this._symbolDraw&&this._symbolDraw.remove(t)},dispose:function(){}});e.exports=l},"T+0u":function(e,t,n){var i=n("+kxT"),r=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],a=function(e,t){this.extendFrom(e,!1),this.host=t};function o(e,t,n){var i=null==t.x?0:t.x,r=null==t.x2?1:t.x2,a=null==t.y?0:t.y,o=null==t.y2?0:t.y2;return t.global||(i=i*n.width+n.x,r=r*n.width+n.x,a=a*n.height+n.y,o=o*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,a=isNaN(a)?0:a,o=isNaN(o)?0:o,e.createLinearGradient(i,a,r,o)}function s(e,t,n){var i=n.width,r=n.height,a=Math.min(i,r),o=null==t.x?.5:t.x,s=null==t.y?.5:t.y,l=null==t.r?.5:t.r;return t.global||(o=o*i+n.x,s=s*r+n.y,l*=a),e.createRadialGradient(o,s,0,o,s,l)}for(var l=a.prototype={constructor:a,host:null,fill:"#000",stroke:null,opacity:1,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:!1,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(e,t,n){for(var a=n&&n.style,o=!a,s=0;s<r.length;s++){var l=r[s],u=l[0];(o||this[u]!==a[u])&&(e[u]=i(e,u,this[u]||l[1]))}if((o||this.fill!==a.fill)&&(e.fillStyle=this.fill),(o||this.stroke!==a.stroke)&&(e.strokeStyle=this.stroke),(o||this.opacity!==a.opacity)&&(e.globalAlpha=null==this.opacity?1:this.opacity),(o||this.blend!==a.blend)&&(e.globalCompositeOperation=this.blend||"source-over"),this.hasStroke()){var c=this.lineWidth;e.lineWidth=c/(this.strokeNoScale&&t&&t.getLineScale?t.getLineScale():1)}},hasFill:function(){var e=this.fill;return null!=e&&"none"!==e},hasStroke:function(){var e=this.stroke;return null!=e&&"none"!==e&&this.lineWidth>0},extendFrom:function(e,t){if(e)for(var n in e)!e.hasOwnProperty(n)||!0!==t&&(!1===t?this.hasOwnProperty(n):null==e[n])||(this[n]=e[n])},set:function(e,t){"string"==typeof e?this[e]=t:this.extendFrom(e,!0)},clone:function(){var e=new this.constructor;return e.extendFrom(this,!0),e},getGradient:function(e,t,n){for(var i=("radial"===t.type?s:o)(e,t,n),r=t.colorStops,a=0;a<r.length;a++)i.addColorStop(r[a].offset,r[a].color);return i}},u=0;u<r.length;u++){var c=r[u];c[0]in l||(l[c[0]]=c[1])}a.getGradient=l.getGradient;var d=a;e.exports=d},T2AC:function(e,t){var n=1;"undefined"!=typeof window&&(n=Math.max(window.devicePixelRatio||1,1));var i=n;t.debugMode=0,t.devicePixelRatio=i},T9r1:function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},TPUF:function(e,t,n){var i=n("Q9e6").extend({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(e,t){var n=t.x1,i=t.y1,r=t.x2,a=t.y2,o=t.percent;0!==o&&(e.moveTo(n,i),o<1&&(r=n*(1-o)+r*o,a=i*(1-o)+a*o),e.lineTo(r,a))},pointAt:function(e){var t=this.shape;return[t.x1*(1-e)+t.x2*e,t.y1*(1-e)+t.y2*e]}});e.exports=i},TPu0:function(e,t){var n=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},TU1D:function(e,t,n){var i=n("/MtV"),r=n("Er0q").Polygon,a=n("aVg8"),o=n("GKMz"),s=o.bind,l=o.extend,u=n("0jiU"),c=i.extendChartView({type:"themeRiver",init:function(){this._layers=[]},render:function(e,t,n){var i=e.getData(),o=this.group,c=e.getLayerSeries(),d=i.getLayout("layoutInfo"),h=d.rect,f=d.boundaryGap;function p(e){return e.name}o.attr("position",[0,h.y+f[0]]);var m={};function g(t,n,s){var u=this._layers;if("remove"!==t){for(var d,h,f,p=[],g=[],v=c[n].indices,y=0;y<v.length;y++){var b=i.getItemLayout(v[y]),_=b.x,x=b.y0,w=b.y;p.push([_,x]),g.push([_,x+w]),d=i.getItemVisual(v[y],"color")}var S=i.getItemLayout(v[0]),C=i.getItemModel(v[y-1]),M=C.getModel("label"),k=M.get("margin");if("add"===t){var T=m[n]=new a.Group;h=new r({shape:{points:p,stackedOnPoints:g,smooth:.4,stackedOnSmooth:.4,smoothConstraint:!1},z2:0}),f=new a.Text({style:{x:S.x-k,y:S.y0+S.y/2}}),T.add(h),T.add(f),o.add(T),h.setClipPath(function(e,t,n){var i=new a.Rect({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}});return a.initProps(i,{shape:{width:e.width+20,height:e.height+20}},t,n),i}(h.getBoundingRect(),e,function(){h.removeClipPath()}))}else{T=u[s];h=T.childAt(0),f=T.childAt(1),o.add(T),m[n]=T,a.updateProps(h,{shape:{points:p,stackedOnPoints:g}},e),a.updateProps(f,{style:{x:S.x-k,y:S.y0+S.y/2}},e)}var A=C.getModel("emphasis.itemStyle"),I=C.getModel("itemStyle");a.setTextStyle(f.style,M,{text:M.get("show")?e.getFormattedLabel(v[y-1],"normal")||i.getName(v[y-1]):null,textVerticalAlign:"middle"}),h.setStyle(l({fill:d},I.getItemStyle(["color"]))),a.setHoverStyle(h,A.getItemStyle())}else o.remove(u[n])}new u(this._layersSeries||[],c,p,p).add(s(g,this,"add")).update(s(g,this,"update")).remove(s(g,this,"remove")).execute(),this._layersSeries=c,this._layers=m},dispose:function(){}});e.exports=c},UD01:function(e,t,n){var i=n("tAnk").createElement,r=n("yX3w"),a=n("OGtO"),o=n("g0yf"),s=n("gxMf"),l=n("MPog"),u=n("gt1/"),c=r.CMD,d=Array.prototype.join,h="none",f=Math.round,p=Math.sin,m=Math.cos,g=Math.PI,v=2*Math.PI,y=180/g,b=1e-4;function _(e){return f(1e4*e)/1e4}function x(e){return e<b&&e>-b}function w(e,t){t&&S(e,"transform","matrix("+d.call(t,",")+")")}function S(e,t,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&("string"==typeof n&&n.indexOf("NaN")>-1&&console.log(n),e.setAttribute(t,n))}function C(e,t,n){if(function(e,t){var n=t?e.textFill:e.fill;return null!=n&&n!==h}(t,n)){var i=n?t.textFill:t.fill;i="transparent"===i?h:i,"none"!==e.getAttribute("clip-path")&&i===h&&(i="rgba(0, 0, 0, 0.002)"),S(e,"fill",i),S(e,"fill-opacity",t.opacity)}else S(e,"fill",h);if(function(e,t){var n=t?e.textStroke:e.stroke;return null!=n&&n!==h}(t,n)){var r=n?t.textStroke:t.stroke;S(e,"stroke",r="transparent"===r?h:r),S(e,"stroke-width",(n?t.textStrokeWidth:t.lineWidth)/(!n&&t.strokeNoScale?t.host.getLineScale():1)),S(e,"paint-order",n?"stroke":"fill"),S(e,"stroke-opacity",t.opacity),t.lineDash?(S(e,"stroke-dasharray",t.lineDash.join(",")),S(e,"stroke-dashoffset",f(t.lineDashOffset||0))):S(e,"stroke-dasharray",""),t.lineCap&&S(e,"stroke-linecap",t.lineCap),t.lineJoin&&S(e,"stroke-linejoin",t.lineJoin),t.miterLimit&&S(e,"stroke-miterlimit",t.miterLimit)}else S(e,"stroke",h)}var M={};M.brush=function(e){var t=e.style,n=e.__svgEl;n||(n=i("path"),e.__svgEl=n),e.path||e.createPathProxy();var r=e.path;if(e.__dirtyPath){r.beginPath(),e.buildPath(r,e.shape),e.__dirtyPath=!1;var a=function(e){for(var t=[],n=e.data,i=e.len(),r=0;r<i;){var a="",o=0;switch(n[r++]){case c.M:a="M",o=2;break;case c.L:a="L",o=2;break;case c.Q:a="Q",o=4;break;case c.C:a="C",o=6;break;case c.A:var s=n[r++],l=n[r++],u=n[r++],d=n[r++],h=n[r++],b=n[r++],w=n[r++],S=n[r++],C=Math.abs(b),M=x(C-v)&&!x(C),k=!1;k=C>=v||!x(C)&&(b>-g&&b<0||b>g)==!!S;var T=_(s+u*m(h)),A=_(l+d*p(h));M&&(b=S?v-1e-4:1e-4-v,k=!0,9===r&&t.push("M",T,A));var I=_(s+u*m(h+b)),E=_(l+d*p(h+b));t.push("A",_(u),_(d),f(w*y),+k,+S,I,E);break;case c.Z:a="Z";break;case c.R:I=_(n[r++]),E=_(n[r++]);var D=_(n[r++]),O=_(n[r++]);t.push("M",I,E,"L",I+D,E,"L",I+D,E+O,"L",I,E+O,"L",I,E)}a&&t.push(a);for(var P=0;P<o;P++)t.push(_(n[r++]))}return t.join(" ")}(r);a.indexOf("NaN")<0&&S(n,"d",a)}C(n,t),w(n,e.transform),null!=t.text&&I(e,e.getBoundingRect())};var k={brush:function(e){var t=e.style,n=t.image;n instanceof HTMLImageElement&&(n=n.src);if(n){var r=t.x||0,a=t.y||0,o=t.width,s=t.height,l=e.__svgEl;l||(l=i("image"),e.__svgEl=l),n!==e.__imageSrc&&(!function(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}(l,"href",n),e.__imageSrc=n),S(l,"width",o),S(l,"height",s),S(l,"x",r),S(l,"y",a),w(l,e.transform),null!=t.text&&I(e,e.getBoundingRect())}}},T={},A=new a,I=function(e,t,n){var r=e.style;e.__dirty&&l.normalizeTextStyle(r,!0);var a=r.text;if(null!=a){a+="";var c,d,h=e.__textSvgEl;h||(h=i("text"),e.__textSvgEl=h);var f=r.textPosition,p=r.textDistance,m=r.textAlign||"left";"number"==typeof r.fontSize&&(r.fontSize+="px");var g=r.font||[r.fontStyle||"",r.fontWeight||"",r.fontSize||"",r.fontFamily||""].join(" ")||s.DEFAULT_FONT,v=E(r.textVerticalAlign),y=(n=s.getBoundingRect(a,g,m,v)).lineHeight;if(f instanceof Array)c=t.x+f[0],d=t.y+f[1];else{var b=s.adjustTextPositionOnRect(f,t,p);c=b.x,d=b.y,v=E(b.textVerticalAlign),m=b.textAlign}S(h,"alignment-baseline",v),g&&(h.style.font=g);var _=r.textPadding;if(S(h,"x",c),S(h,"y",d),C(h,r,!0),e instanceof u||e.style.transformText)w(h,e.transform);else{if(e.transform)A.copy(t),A.applyTransform(e.transform),t=A;else{var x=e.transformCoordToGlobal(t.x,t.y);t.x=x[0],t.y=x[1]}var M=r.textOrigin;"center"===M?(c=n.width/2+c,d=n.height/2+d):M&&(c=M[0]+c,d=M[1]+d);var k=-r.textRotation||0,T=o.create();o.rotate(T,e.transform,k),w(h,T)}var I=a.split("\n"),D=I.length,O=m;"left"===O?(O="start",_&&(c+=_[3])):"right"===O?(O="end",_&&(c-=_[1])):"center"===O&&(O="middle",_&&(c+=(_[3]-_[1])/2));var P=0;if("baseline"===v?(P=-n.height+y,_&&(P-=_[2])):"middle"===v?(P=(-n.height+y)/2,_&&(d+=(_[0]-_[2])/2)):_&&(P+=_[0]),e.__text!==a||e.__textFont!==g){var L=e.__tspanList||[];e.__tspanList=L;for(var R=0;R<D;R++){(B=L[R])?B.innerHTML="":(B=L[R]=i("tspan"),h.appendChild(B),S(B,"alignment-baseline",v),S(B,"text-anchor",O)),S(B,"x",c),S(B,"y",d+R*y+P),B.appendChild(document.createTextNode(I[R]))}for(;R<L.length;R++)h.removeChild(L[R]);L.length=D,e.__text=a,e.__textFont=g}else if(e.__tspanList.length){var N=e.__tspanList.length;for(R=0;R<N;++R){var B;(B=e.__tspanList[R])&&(S(B,"x",c),S(B,"y",d+R*y+P))}}}};function E(e){return"middle"===e?"middle":"bottom"===e?"baseline":"hanging"}T.drawRectText=I,T.brush=function(e){var t=e.style;null!=t.text&&(t.textPosition=[0,0],I(e,{x:t.x||0,y:t.y||0,width:0,height:0},e.getBoundingRect()))},t.path=M,t.image=k,t.text=T},UHfE:function(e,t,n){var i=n("bmdq"),r=n("YR6M").extend({type:"series.effectScatter",dependencies:["grid","polar"],getInitialData:function(e,t){return i(this.getSource(),this)},brushSelector:"point",defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10}});e.exports=r},UPaQ:function(e,t,n){var i=n("GKMz"),r=n("wNlq"),a=n("aVg8"),o=n("jP6M"),s=n("5gvs"),l=n("242d"),u=(0,n("vqvJ").makeInner)(),c=i.clone,d=i.bind;function h(){}function f(e,t,n,r){(function e(t,n){if(i.isObject(t)&&i.isObject(n)){var r=!0;return i.each(n,function(n,i){r=r&&e(t[i],n)}),!!r}return t===n})(u(n).lastProp,r)||(u(n).lastProp=r,t?a.updateProps(n,r,e):(n.stopAnimation(),n.attr(r)))}function p(e,t){e[t.get("label.show")?"show":"hide"]()}function m(e){return{position:e.position.slice(),rotation:e.rotation||0}}function g(e,t,n){var i=t.get("z"),r=t.get("zlevel");e&&e.traverse(function(e){"group"!==e.type&&(null!=i&&(e.z=i),null!=r&&(e.zlevel=r),e.silent=n)})}h.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(e,t,n,r){var o=t.get("value"),s=t.get("status");if(this._axisModel=e,this._axisPointerModel=t,this._api=n,r||this._lastValue!==o||this._lastStatus!==s){this._lastValue=o,this._lastStatus=s;var l=this._group,u=this._handle;if(!s||"hide"===s)return l&&l.hide(),void(u&&u.hide());l&&l.show(),u&&u.show();var c={};this.makeElOption(c,o,e,t,n);var d=c.graphicKey;d!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=d;var h=this._moveAnimation=this.determineAnimation(e,t);if(l){var p=i.curry(f,t,h);this.updatePointerEl(l,c,p,t),this.updateLabelEl(l,c,p,t)}else l=this._group=new a.Group,this.createPointerEl(l,c,e,t),this.createLabelEl(l,c,e,t),n.getZr().add(l);g(l,t,!0),this._renderHandle(o)}},remove:function(e){this.clear(e)},dispose:function(e){this.clear(e)},determineAnimation:function(e,t){var n=t.get("animation"),i=e.axis,r="category"===i.type,a=t.get("snap");if(!a&&!r)return!1;if("auto"===n||null==n){var s=this.animationThreshold;if(r&&i.getBandWidth()>s)return!0;if(a){var l=o.getAxisInfo(e).seriesDataCount,u=i.getExtent();return Math.abs(u[0]-u[1])/l>s}return!1}return!0===n},makeElOption:function(e,t,n,i,r){},createPointerEl:function(e,t,n,i){var r=t.pointer;if(r){var o=u(e).pointerEl=new a[r.type](c(t.pointer));e.add(o)}},createLabelEl:function(e,t,n,i){if(t.label){var r=u(e).labelEl=new a.Rect(c(t.label));e.add(r),p(r,i)}},updatePointerEl:function(e,t,n){var i=u(e).pointerEl;i&&(i.setStyle(t.pointer.style),n(i,{shape:t.pointer.shape}))},updateLabelEl:function(e,t,n,i){var r=u(e).labelEl;r&&(r.setStyle(t.label.style),n(r,{shape:t.label.shape,position:t.label.position}),p(r,i))},_renderHandle:function(e){if(!this._dragging&&this.updateHandleTransform){var t,n=this._axisPointerModel,r=this._api.getZr(),o=this._handle,u=n.getModel("handle"),c=n.get("status");if(!u.get("show")||!c||"hide"===c)return o&&r.remove(o),void(this._handle=null);this._handle||(t=!0,o=this._handle=a.createIcon(u.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(e){s.stop(e.event)},onmousedown:d(this._onHandleDragMove,this,0,0),drift:d(this._onHandleDragMove,this),ondragend:d(this._onHandleDragEnd,this)}),r.add(o)),g(o,n,!1);o.setStyle(u.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var h=u.get("size");i.isArray(h)||(h=[h,h]),o.attr("scale",[h[0]/2,h[1]/2]),l.createOrUpdate(this,"_doDispatchAxisPointer",u.get("throttle")||0,"fixRate"),this._moveHandleToValue(e,t)}},_moveHandleToValue:function(e,t){f(this._axisPointerModel,!t&&this._moveAnimation,this._handle,m(this.getHandleTransform(e,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(e,t){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(m(n),[e,t],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(m(i)),u(n).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var e=this._payloadInfo,t=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:e.cursorPoint[0],y:e.cursorPoint[1],tooltipOption:e.tooltipOption,axesInfo:[{axisDim:t.axis.dim,axisIndex:t.componentIndex}]})}},_onHandleDragEnd:function(e){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(e){this._lastValue=null,this._lastStatus=null;var t=e.getZr(),n=this._group,i=this._handle;t&&n&&(this._lastGraphicKey=null,n&&t.remove(n),i&&t.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(e,t,n){return{x:e[n=n||0],y:e[1-n],width:t[n],height:t[1-n]}}},h.prototype.constructor=h,r.enableClassExtend(h);var v=h;e.exports=v},UUpo:function(e,t,n){var i=n("GKMz").createHashMap;e.exports=function(e){return{getTargetSeries:function(t){var n={},r=i();return t.eachSeriesByType(e,function(e){e.__paletteScope=n,r.set(e.uid,e)}),r},reset:function(e,t){var n=e.getRawData(),i={},r=e.getData();r.each(function(e){var t=r.getRawIndex(e);i[t]=e}),n.each(function(t){var a=i[t],o=null!=a&&r.getItemVisual(a,"color",!0);if(o)n.setItemVisual(t,"color",o);else{var s=n.getItemModel(t).get("itemStyle.color")||e.getColorFromPalette(n.getName(t)||t+"",e.__paletteScope,n.count());n.setItemVisual(t,"color",s),null!=a&&r.setItemVisual(a,"color",s)}})}}}},Unbz:function(e,t,n){var i=n("G7OI");e.exports=function(){return i.Date.now()}},Uur3:function(e,t){var n={axisPointer:1,tooltip:1,brush:1};t.onIrrelevantElement=function(e,t,i){var r=t.getComponentByElement(e.topTarget),a=r&&r.coordinateSystem;return r&&r!==i&&!n[r.mainType]&&a&&a.model!==i}},Uyw1:function(e,t,n){var i=n("8JGq"),r=n("cC8b"),a=NaN,o=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(r(e))return a;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var n=l.test(e);return n||u.test(e)?c(e.slice(2),n?2:8):s.test(e)?a:+e}},V0EG:function(e,t){var n,i,r=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{i="function"==typeof clearTimeout?clearTimeout:o}catch(e){i=o}}();var l,u=[],c=!1,d=-1;function h(){c&&l&&(c=!1,l.length?u=l.concat(u):d=-1,u.length&&f())}function f(){if(!c){var e=s(h);c=!0;for(var t=u.length;t;){for(l=u,u=[];++d<t;)l&&l[d].run();d=-1,t=u.length}l=null,c=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===o||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function m(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new p(e,t)),1!==u.length||c||s(f)},p.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=m,r.addListener=m,r.once=m,r.off=m,r.removeListener=m,r.removeAllListeners=m,r.emit=m,r.prependListener=m,r.prependOnceListener=m,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},V2W7:function(e,t,n){var i=n("ZVlJ"),r=n("biYF")("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(i.Array===e||a[r]===e)}},V4EM:function(e,t,n){var i=n("GKMz"),r={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},a={};a.categoryAxis=i.merge({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},r),a.valueAxis=i.merge({boundaryGap:[0,0],splitNumber:5},r),a.timeAxis=i.defaults({scale:!0,min:"dataMin",max:"dataMax"},a.valueAxis),a.logAxis=i.defaults({scale:!0,logBase:10},a.valueAxis);var o=a;e.exports=o},V9mB:function(e,t,n){n("6/6c").registerSubTypeDefaulter("dataZoom",function(){return"slider"})},VErb:function(e,t,n){var i=n("GKMz").map,r=n("gbpp"),a=n("cfvC").isDimensionStacked;e.exports=function(e){return{seriesType:e,plan:r(),reset:function(e){var t=e.getData(),n=e.coordinateSystem,r=e.pipelineContext.large;if(n){var o=i(n.dimensions,function(e){return t.mapDimension(e)}).slice(0,2),s=o.length,l=t.getCalculationInfo("stackResultDimension");return a(t,o[0])&&(o[0]=l),a(t,o[1])&&(o[1]=l),s&&{progress:function(e,t){for(var i=e.end-e.start,a=r&&new Float32Array(i*s),l=e.start,u=0,c=[],d=[];l<e.end;l++){var h;if(1===s){var f=t.get(o[0],l);h=!isNaN(f)&&n.dataToPoint(f,null,d)}else{f=c[0]=t.get(o[0],l);var p=c[1]=t.get(o[1],l);h=!isNaN(f)&&!isNaN(p)&&n.dataToPoint(c,null,d)}r?(a[u++]=h?h[0]:NaN,a[u++]=h?h[1]:NaN):t.setItemLayout(l,h&&h.slice()||[NaN,NaN])}r&&t.setLayout("symbolPoints",a)}}}}}}},VFhg:function(e,t,n){var i=n("GKMz"),r=n("luYz"),a=n("rsvB"),o=n("erEb"),s="silent";function l(){}l.prototype.dispose=function(){};var u=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],c=function(e,t,n,i){o.call(this),this.storage=e,this.painter=t,this.painterRoot=i,n=n||new l,this.proxy=null,this._hovered={},this._lastTouchMoment,this._lastX,this._lastY,a.call(this),this.setHandlerProxy(n)};function d(e,t,n){if(e[e.rectHover?"rectContain":"contain"](t,n)){for(var i,r=e;r;){if(r.clipPath&&!r.clipPath.contain(t,n))return!1;r.silent&&(i=!0),r=r.parent}return!i||s}return!1}c.prototype={constructor:c,setHandlerProxy:function(e){this.proxy&&this.proxy.dispose(),e&&(i.each(u,function(t){e.on&&e.on(t,this[t],this)},this),e.handler=this),this.proxy=e},mousemove:function(e){var t=e.zrX,n=e.zrY,i=this._hovered,r=i.target;r&&!r.__zr&&(r=(i=this.findHover(i.x,i.y)).target);var a=this._hovered=this.findHover(t,n),o=a.target,s=this.proxy;s.setCursor&&s.setCursor(o?o.cursor:"default"),r&&o!==r&&this.dispatchToElement(i,"mouseout",e),this.dispatchToElement(a,"mousemove",e),o&&o!==r&&this.dispatchToElement(a,"mouseover",e)},mouseout:function(e){this.dispatchToElement(this._hovered,"mouseout",e);var t,n=e.toElement||e.relatedTarget;do{n=n&&n.parentNode}while(n&&9!=n.nodeType&&!(t=n===this.painterRoot));!t&&this.trigger("globalout",{event:e})},resize:function(e){this._hovered={}},dispatch:function(e,t){var n=this[e];n&&n.call(this,t)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(e){var t=this.proxy;t.setCursor&&t.setCursor(e)},dispatchToElement:function(e,t,n){var i=(e=e||{}).target;if(!i||!i.silent){for(var r="on"+t,a=function(e,t,n){return{type:e,event:n,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which}}(t,e,n);i&&(i[r]&&(a.cancelBubble=i[r].call(i,a)),i.trigger(t,a),i=i.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(t,a),this.painter&&this.painter.eachOtherLayer(function(e){"function"==typeof e[r]&&e[r].call(e,a),e.trigger&&e.trigger(t,a)}))}},findHover:function(e,t,n){for(var i=this.storage.getDisplayList(),r={x:e,y:t},a=i.length-1;a>=0;a--){var o;if(i[a]!==n&&!i[a].ignore&&(o=d(i[a],e,t))&&(!r.topTarget&&(r.topTarget=i[a]),o!==s)){r.target=i[a];break}}return r}},i.each(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(e){c.prototype[e]=function(t){var n=this.findHover(t.zrX,t.zrY),i=n.target;if("mousedown"===e)this._downEl=i,this._downPoint=[t.zrX,t.zrY],this._upEl=i;else if("mouseup"===e)this._upEl=i;else if("click"===e){if(this._downEl!==this._upEl||!this._downPoint||r.dist(this._downPoint,[t.zrX,t.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,e,t)}}),i.mixin(c,o),i.mixin(c,a);var h=c;e.exports=h},VHmC:function(e,t,n){var i=n("GKMz"),r=n("T2AC").devicePixelRatio,a=n("T+0u"),o=n("Af6+");function s(){return!1}function l(e,t,n){var r=i.createCanvas(),a=t.getWidth(),o=t.getHeight(),s=r.style;return s&&(s.position="absolute",s.left=0,s.top=0,s.width=a+"px",s.height=o+"px",r.setAttribute("data-zr-dom-id",e)),r.width=a*n,r.height=o*n,r}var u=function(e,t,n){var a;n=n||r,"string"==typeof e?a=l(e,t,n):i.isObject(e)&&(e=(a=e).id),this.id=e,this.dom=a;var o=a.style;o&&(a.onselectstart=s,o["-webkit-user-select"]="none",o["user-select"]="none",o["-webkit-touch-callout"]="none",o["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",o.padding=0,o.margin=0,o["border-width"]=0),this.domBack=null,this.ctxBack=null,this.painter=t,this.config=null,this.clearColor=0,this.motionBlur=!1,this.lastFrameAlpha=.7,this.dpr=n};u.prototype={constructor:u,__dirty:!0,__used:!1,__drawIndex:0,__startIndex:0,__endIndex:0,incremental:!1,getElementCount:function(){return this.__endIndex-this.__startIndex},initContext:function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},createBackBuffer:function(){var e=this.dpr;this.domBack=l("back-"+this.id,this.painter,e),this.ctxBack=this.domBack.getContext("2d"),1!=e&&this.ctxBack.scale(e,e)},resize:function(e,t){var n=this.dpr,i=this.dom,r=i.style,a=this.domBack;r&&(r.width=e+"px",r.height=t+"px"),i.width=e*n,i.height=t*n,a&&(a.width=e*n,a.height=t*n,1!=n&&this.ctxBack.scale(n,n))},clear:function(e,t){var n,i=this.dom,r=this.ctx,s=i.width,l=i.height,u=(t=t||this.clearColor,this.motionBlur&&!e),c=this.lastFrameAlpha,d=this.dpr;(u&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,s/d,l/d)),r.clearRect(0,0,s,l),t&&"transparent"!==t)&&(t.colorStops?(n=t.__canvasGradient||a.getGradient(r,t,{x:0,y:0,width:s,height:l}),t.__canvasGradient=n):t.image&&(n=o.prototype.getCanvasPattern.call(t,r)),r.save(),r.fillStyle=n||t,r.fillRect(0,0,s,l),r.restore());if(u){var h=this.domBack;r.save(),r.globalAlpha=c,r.drawImage(h,0,0,s,l),r.restore()}}};var c=u;e.exports=c},VIFr:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("aVg8"),o=n("uxQp"),s=n("abCA"),l={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["涓�鏈�","浜屾湀","涓夋湀","鍥涙湀","浜旀湀","鍏湀","涓冩湀","鍏湀","涔濇湀","鍗佹湀","鍗佷竴鏈�","鍗佷簩鏈�"]},u={EN:["S","M","T","W","T","F","S"],CN:["鏃�","涓�","浜�","涓�","鍥�","浜�","鍏�"]},c=i.extendComponentView({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(e,t,n){var i=this.group;i.removeAll();var r=e.coordinateSystem,a=r.getRangeInfo(),o=r.getOrient();this._renderDayRect(e,a,i),this._renderLines(e,a,o,i),this._renderYearText(e,a,o,i),this._renderMonthText(e,o,i),this._renderWeekText(e,a,o,i)},_renderDayRect:function(e,t,n){for(var i=e.coordinateSystem,r=e.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),s=i.getCellHeight(),l=t.start.time;l<=t.end.time;l=i.getNextNDay(l,1).time){var u=i.dataToRect([l],!1).tl,c=new a.Rect({shape:{x:u[0],y:u[1],width:o,height:s},cursor:"default",style:r});n.add(c)}},_renderLines:function(e,t,n,i){var r=this,a=e.coordinateSystem,o=e.getModel("splitLine.lineStyle").getLineStyle(),s=e.get("splitLine.show"),l=o.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=t.start,c=0;u.time<=t.end.time;c++){h(u.formatedDate),0===c&&(u=a.getDateInfo(t.start.y+"-"+t.start.m));var d=u.date;d.setMonth(d.getMonth()+1),u=a.getDateInfo(d)}function h(t){r._firstDayOfMonth.push(a.getDateInfo(t)),r._firstDayPoints.push(a.dataToRect([t],!1).tl);var l=r._getLinePointsOfOneWeek(e,t,n);r._tlpoints.push(l[0]),r._blpoints.push(l[l.length-1]),s&&r._drawSplitline(l,o,i)}h(a.getNextNDay(t.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,l,n),o,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,l,n),o,i)},_getEdgesPoints:function(e,t,n){var i=[e[0].slice(),e[e.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-t/2,i[1][r]=i[1][r]+t/2,i},_drawSplitline:function(e,t,n){var i=new a.Polyline({z2:20,shape:{points:e},style:t});n.add(i)},_getLinePointsOfOneWeek:function(e,t,n){var i=e.coordinateSystem;t=i.getDateInfo(t);for(var r=[],a=0;a<7;a++){var o=i.getNextNDay(t.time,a),s=i.dataToRect([o.time],!1);r[2*o.day]=s.tl,r[2*o.day+1]=s["horizontal"===n?"bl":"tr"]}return r},_formatterLabel:function(e,t){return"string"==typeof e&&e?o.formatTplSimple(e,t):"function"==typeof e?e(t):t.nameMap},_yearTextPositionControl:function(e,t,n,i,r){t=t.slice();var a=["center","bottom"];"bottom"===i?(t[1]+=r,a=["center","top"]):"left"===i?t[0]-=r:"right"===i?(t[0]+=r,a=["center","top"]):t[1]-=r;var o=0;return"left"!==i&&"right"!==i||(o=Math.PI/2),{rotation:o,position:t,style:{textAlign:a[0],textVerticalAlign:a[1]}}},_renderYearText:function(e,t,n,i){var r=e.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),s=r.get("position");s||(s="horizontal"!==n?"top":"left");var l=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],u=(l[0][0]+l[1][0])/2,c=(l[0][1]+l[1][1])/2,d="horizontal"===n?0:1,h={top:[u,l[d][1]],bottom:[u,l[1-d][1]],left:[l[1-d][0],c],right:[l[d][0],c]},f=t.start.y;+t.end.y>+t.start.y&&(f=f+"-"+t.end.y);var p=r.get("formatter"),m={start:t.start.y,end:t.end.y,nameMap:f},g=this._formatterLabel(p,m),v=new a.Text({z2:30});a.setTextStyle(v.style,r,{text:g}),v.attr(this._yearTextPositionControl(v,h[s],n,s,o)),i.add(v)}},_monthTextPositionControl:function(e,t,n,i,r){var a="left",o="top",s=e[0],l=e[1];return"horizontal"===n?(l+=r,t&&(a="center"),"start"===i&&(o="bottom")):(s+=r,t&&(o="middle"),"start"===i&&(a="right")),{x:s,y:l,textAlign:a,textVerticalAlign:o}},_renderMonthText:function(e,t,n){var i=e.getModel("monthLabel");if(i.get("show")){var o=i.get("nameMap"),s=i.get("margin"),u=i.get("position"),c=i.get("align"),d=[this._tlpoints,this._blpoints];r.isString(o)&&(o=l[o.toUpperCase()]||[]);var h="start"===u?0:1,f="horizontal"===t?0:1;s="start"===u?-s:s;for(var p="center"===c,m=0;m<d[h].length-1;m++){var g=d[h][m].slice(),v=this._firstDayOfMonth[m];if(p){var y=this._firstDayPoints[m];g[f]=(y[f]+d[0][m+1][f])/2}var b=i.get("formatter"),_=o[+v.m-1],x={yyyy:v.y,yy:(v.y+"").slice(2),MM:v.m,M:+v.m,nameMap:_},w=this._formatterLabel(b,x),S=new a.Text({z2:30});r.extend(a.setTextStyle(S.style,i,{text:w}),this._monthTextPositionControl(g,p,t,u,s)),n.add(S)}}},_weekTextPositionControl:function(e,t,n,i,r){var a="center",o="middle",s=e[0],l=e[1],u="start"===n;return"horizontal"===t?(s=s+i+(u?1:-1)*r[0]/2,a=u?"right":"left"):(l=l+i+(u?1:-1)*r[1]/2,o=u?"bottom":"top"),{x:s,y:l,textAlign:a,textVerticalAlign:o}},_renderWeekText:function(e,t,n,i){var o=e.getModel("dayLabel");if(o.get("show")){var l=e.coordinateSystem,c=o.get("position"),d=o.get("nameMap"),h=o.get("margin"),f=l.getFirstDayOfWeek();r.isString(d)&&(d=u[d.toUpperCase()]||[]);var p=l.getNextNDay(t.end.time,7-t.lweek).time,m=[l.getCellWidth(),l.getCellHeight()];h=s.parsePercent(h,m["horizontal"===n?0:1]),"start"===c&&(p=l.getNextNDay(t.start.time,-(7+t.fweek)).time,h=-h);for(var g=0;g<7;g++){var v,y=l.getNextNDay(p,g),b=l.dataToRect([y.time],!1).center;v=Math.abs((g+f)%7);var _=new a.Text({z2:30});r.extend(a.setTextStyle(_.style,o,{text:d[v]}),this._weekTextPositionControl(b,n,c,h,m)),i.add(_)}}}});e.exports=c},VKUG:function(e,t,n){var i=n("GKMz");function r(e,t){return t=t||[0,0],i.map([0,1],function(n){var i=t[n],r=e[n]/2,a=[],o=[];return a[n]=i-r,o[n]=i+r,a[1-n]=o[1-n]=t[1-n],Math.abs(this.dataToPoint(a)[n]-this.dataToPoint(o)[n])},this)}e.exports=function(e){var t=e.getBoundingRect();return{coordSys:{type:"geo",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(t){return e.dataToPoint(t)},size:i.bind(r,e)}}}},VMxf:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("gxMf"),o=n("7eLB"),s=n("aVg8"),l=n("xWTI"),u=n("0jiU"),c=n("8Uut"),d=i.extendComponentView({type:"toolbox",render:function(e,t,n,i){var d=this.group;if(d.removeAll(),e.get("show")){var h=+e.get("itemSize"),f=e.get("feature")||{},p=this._features||(this._features={}),m=[];r.each(f,function(e,t){m.push(t)}),new u(this._featureNames||[],m).add(g).update(g).remove(r.curry(g,null)).execute(),this._featureNames=m,c.layout(d,e,n),d.add(c.makeBackground(d.getBoundingRect(),e)),d.eachChild(function(e){var t=e.__title,i=e.hoverStyle;if(i&&t){var r=a.getBoundingRect(t,a.makeFont(i)),o=e.position[0]+d.position[0],s=!1;e.position[1]+d.position[1]+h+r.height>n.getHeight()&&(i.textPosition="top",s=!0);var l=s?-5-r.height:h+8;o+r.width/2>n.getWidth()?(i.textPosition=["100%",l],i.textAlign="right"):o-r.width/2<0&&(i.textPosition=[0,l],i.textAlign="left")}})}function g(a,u){var c,g=m[a],v=m[u],y=f[g],b=new l(y,e,e.ecModel);if(g&&!v){if(function(e){return 0===e.indexOf("my")}(g))c={model:b,onclick:b.option.onclick,featureName:g};else{var _=o.get(g);if(!_)return;c=new _(b,t,n)}p[g]=c}else{if(!(c=p[v]))return;c.model=b,c.ecModel=t,c.api=n}g||!v?b.get("show")&&!c.unusable?(!function(i,a,o){var l=i.getModel("iconStyle"),u=i.getModel("emphasis.iconStyle"),c=a.getIcons?a.getIcons():i.get("icon"),f=i.get("title")||{};if("string"==typeof c){var p=c,m=f;f={},(c={})[o]=p,f[o]=m}var g=i.iconPaths={};r.each(c,function(o,c){var p=s.createIcon(o,{},{x:-h/2,y:-h/2,width:h,height:h});p.setStyle(l.getItemStyle()),p.hoverStyle=u.getItemStyle(),s.setHoverStyle(p),e.get("showTitle")&&(p.__title=f[c],p.on("mouseover",function(){var e=u.getItemStyle();p.setStyle({text:f[c],textPosition:e.textPosition||"bottom",textFill:e.fill||e.stroke||"#000",textAlign:e.textAlign||"center"})}).on("mouseout",function(){p.setStyle({textFill:null})})),p.trigger(i.get("iconStatus."+c)||"normal"),d.add(p),p.on("click",r.bind(a.onclick,a,t,n,c)),g[c]=p})}(b,c,g),b.setIconStatus=function(e,t){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[e]=t,i[e]&&i[e].trigger(t)},c.render&&c.render(b,t,n,i)):c.remove&&c.remove(t,n):c.dispose&&c.dispose(t,n)}},updateView:function(e,t,n,i){r.each(this._features,function(e){e.updateView&&e.updateView(e.model,t,n,i)})},remove:function(e,t){r.each(this._features,function(n){n.remove&&n.remove(e,t)}),this.group.removeAll()},dispose:function(e,t){r.each(this._features,function(n){n.dispose&&n.dispose(e,t)})}});e.exports=d},Ve6w:function(e,t,n){var i=n("/MtV"),r=n("W9LT");n("P54J"),n("PvHr"),n("87Aa"),n("1y9Q"),n("aEMU"),i.registerPreprocessor(r)},VjRt:function(e,t,n){var i=n("KV1y")("keys"),r=n("pplb");e.exports=function(e){return i[e]||(i[e]=r(e))}},VkYz:function(e,t,n){var i=n("GKMz");e.exports=function(e){var t=[];i.each(e.series,function(e){e&&"map"===e.type&&(t.push(e),e.map=e.map||e.mapType,i.defaults(e,e.mapLocation))})}},Vkqu:function(e,t){var n,i,r,a,o,s,l,u,c,d,h,f,p,m,g,v=!1;function y(){if(!v){v=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),y=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(f=/\b(iPhone|iP[ao]d)/.exec(e),p=/\b(iP[ao]d)/.exec(e),d=/Android/i.exec(e),m=/FBAN\/\w+;/i.exec(e),g=/Mobile/i.exec(e),h=!!/Win64/.exec(e),t){(n=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN)&&document&&document.documentMode&&(n=document.documentMode);var b=/(?:Trident\/(\d+.\d+))/.exec(e);s=b?parseFloat(b[1])+4:n,i=t[2]?parseFloat(t[2]):NaN,r=t[3]?parseFloat(t[3]):NaN,(a=t[4]?parseFloat(t[4]):NaN)?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),o=t&&t[1]?parseFloat(t[1]):NaN):o=NaN}else n=i=r=o=a=NaN;if(y){if(y[1]){var _=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);l=!_||parseFloat(_[1].replace("_","."))}else l=!1;u=!!y[2],c=!!y[3]}else l=u=c=!1}}var b={ie:function(){return y()||n},ieCompatibilityMode:function(){return y()||s>n},ie64:function(){return b.ie()&&h},firefox:function(){return y()||i},opera:function(){return y()||r},webkit:function(){return y()||a},safari:function(){return b.webkit()},chrome:function(){return y()||o},windows:function(){return y()||u},osx:function(){return y()||l},linux:function(){return y()||c},iphone:function(){return y()||f},mobile:function(){return y()||f||p||d||g},nativeApp:function(){return y()||m},android:function(){return y()||d},ipad:function(){return y()||p}};e.exports=b},Vmnj:function(e,t,n){var i=n("GKMz"),r=n("6/6c"),a=n("WtQt"),o=n("8jLM"),s=r.extend({type:"singleAxis",layoutMode:"box",axis:null,coordinateSystem:null,getCoordSysModel:function(){return this}});i.merge(s.prototype,o),a("single",s,function(e,t){return t.type||(t.data?"category":"value")},{left:"5%",top:"5%",right:"5%",bottom:"5%",type:"value",position:"bottom",orient:"horizontal",axisLine:{show:!0,lineStyle:{width:2,type:"solid"}},tooltip:{show:!0},axisTick:{show:!0,length:6,lineStyle:{width:2}},axisLabel:{show:!0,interval:"auto"},splitLine:{show:!0,lineStyle:{type:"dashed",opacity:.2}}});var l=s;e.exports=l},Vus3:function(e,t,n){var i=n("GKMz"),r=i.retrieve,a=i.defaults,o=i.extend,s=i.each,l=n("uxQp"),u=n("aVg8"),c=n("xWTI"),d=n("abCA"),h=d.isRadianAroundZero,f=d.remRadian,p=n("ktMJ").createSymbol,m=n("g0yf"),g=n("luYz").applyTransform,v=Math.PI;function y(e){var t={componentType:e.mainType};return t[e.mainType+"Index"]=e.componentIndex,t}var b=function(e,t){this.opt=t,this.axisModel=e,a(t,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0}),this.group=new u.Group;var n=new u.Group({position:t.position.slice(),rotation:t.rotation});n.updateTransform(),this._transform=n.transform,this._dumbGroup=n};b.prototype={constructor:b,hasBuilder:function(e){return!!_[e]},add:function(e){_[e].call(this)},getGroup:function(){return this.group}};var _={axisLine:function(){var e=this.opt,t=this.axisModel;if(t.get("axisLine.show")){var n=this.axisModel.axis.getExtent(),i=this._transform,r=[n[0],0],a=[n[1],0];i&&(g(r,r,i),g(a,a,i));var l=o({lineCap:"round"},t.getModel("axisLine.lineStyle").getLineStyle());this.group.add(new u.Line(u.subPixelOptimizeLine({anid:"line",shape:{x1:r[0],y1:r[1],x2:a[0],y2:a[1]},style:l,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1})));var c=t.get("axisLine.symbol"),d=t.get("axisLine.symbolSize"),h=t.get("axisLine.symbolOffset")||0;if("number"==typeof h&&(h=[h,h]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof d&&"number"!=typeof d||(d=[d,d]);var f=d[0],m=d[1];s([{rotate:e.rotation+Math.PI/2,offset:h[0],r:0},{rotate:e.rotation-Math.PI/2,offset:h[1],r:Math.sqrt((r[0]-a[0])*(r[0]-a[0])+(r[1]-a[1])*(r[1]-a[1]))}],function(t,n){if("none"!==c[n]&&null!=c[n]){var i=p(c[n],-f/2,-m/2,f,m,l.stroke,!0),a=t.r+t.offset,o=[r[0]+a*Math.cos(e.rotation),r[1]-a*Math.sin(e.rotation)];i.attr({rotation:t.rotate,position:o,silent:!0}),this.group.add(i)}},this)}}},axisTickLabel:function(){var e=this.axisModel,t=this.opt,n=function(e,t,n){var i=t.axis;if(!t.get("axisTick.show")||i.scale.isBlank())return;for(var r=t.getModel("axisTick"),o=r.getModel("lineStyle"),s=r.get("length"),l=i.getTicksCoords(),c=[],d=[],h=e._transform,f=[],p=0;p<l.length;p++){var m=l[p].coord;c[0]=m,c[1]=0,d[0]=m,d[1]=n.tickDirection*s,h&&(g(c,c,h),g(d,d,h));var v=new u.Line(u.subPixelOptimizeLine({anid:"tick_"+l[p].tickValue,shape:{x1:c[0],y1:c[1],x2:d[0],y2:d[1]},style:a(o.getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")}),z2:2,silent:!0}));e.group.add(v),f.push(v)}return f}(this,e,t);!function(e,t,n){var i=e.get("axisLabel.showMinLabel"),r=e.get("axisLabel.showMaxLabel");t=t||[],n=n||[];var a=t[0],o=t[1],s=t[t.length-1],l=t[t.length-2],u=n[0],c=n[1],d=n[n.length-1],h=n[n.length-2];!1===i?(S(a),S(u)):C(a,o)&&(i?(S(o),S(c)):(S(a),S(u)));!1===r?(S(s),S(d)):C(l,s)&&(r?(S(l),S(h)):(S(s),S(d)))}(e,function(e,t,n){var i=t.axis;if(!r(n.axisLabelShow,t.get("axisLabel.show"))||i.scale.isBlank())return;var a=t.getModel("axisLabel"),o=a.get("margin"),l=i.getViewLabels(),d=(r(n.labelRotate,a.get("rotate"))||0)*v/180,h=x(n.rotation,d,n.labelDirection),f=t.getCategories(!0),p=[],m=w(t),g=t.get("triggerEvent");return s(l,function(r,s){var l=r.tickValue,d=r.formattedLabel,v=r.rawLabel,b=a;f&&f[l]&&f[l].textStyle&&(b=new c(f[l].textStyle,a,t.ecModel));var _=b.getTextColor()||t.get("axisLine.lineStyle.color"),x=[i.dataToCoord(l),n.labelOffset+n.labelDirection*o],w=new u.Text({anid:"label_"+l,position:x,rotation:h.rotation,silent:m,z2:10});u.setTextStyle(w.style,b,{text:d,textAlign:b.getShallow("align",!0)||h.textAlign,textVerticalAlign:b.getShallow("verticalAlign",!0)||b.getShallow("baseline",!0)||h.textVerticalAlign,textFill:"function"==typeof _?_("category"===i.type?v:"value"===i.type?l+"":l,s):_}),g&&(w.eventData=y(t),w.eventData.targetType="axisLabel",w.eventData.value=v),e._dumbGroup.add(w),w.updateTransform(),p.push(w),e.group.add(w),w.decomposeTransform()}),p}(this,e,t),n)},axisName:function(){var e=this.opt,t=this.axisModel,n=r(e.axisName,t.get("name"));if(n){var i,a,s=t.get("nameLocation"),c=e.nameDirection,d=t.getModel("nameTextStyle"),p=t.get("nameGap")||0,m=this.axisModel.axis.getExtent(),g=m[0]>m[1]?-1:1,b=["start"===s?m[0]-g*p:"end"===s?m[1]+g*p:(m[0]+m[1])/2,M(s)?e.labelOffset+c*p:0],_=t.get("nameRotate");null!=_&&(_=_*v/180),M(s)?i=x(e.rotation,null!=_?_:e.rotation,c):(i=function(e,t,n,i){var r,a,o=f(n-e.rotation),s=i[0]>i[1],l="start"===t&&!s||"start"!==t&&s;h(o-v/2)?(a=l?"bottom":"top",r="center"):h(o-1.5*v)?(a=l?"top":"bottom",r="center"):(a="middle",r=o<1.5*v&&o>v/2?l?"left":"right":l?"right":"left");return{rotation:o,textAlign:r,textVerticalAlign:a}}(e,s,_||0,m),null!=(a=e.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(i.rotation)),!isFinite(a)&&(a=null)));var S=d.getFont(),C=t.get("nameTruncate",!0)||{},k=C.ellipsis,T=r(e.nameTruncateMaxWidth,C.maxWidth,a),A=null!=k&&null!=T?l.truncateText(n,T,S,k,{minChar:2,placeholder:C.placeholder}):n,I=t.get("tooltip",!0),E=t.mainType,D={componentType:E,name:n,$vars:["name"]};D[E+"Index"]=t.componentIndex;var O=new u.Text({anid:"name",__fullText:n,__truncatedText:A,position:b,rotation:i.rotation,silent:w(t),z2:1,tooltip:I&&I.show?o({content:n,formatter:function(){return n},formatterParams:D},I):null});u.setTextStyle(O.style,d,{text:A,textFont:S,textFill:d.getTextColor()||t.get("axisLine.lineStyle.color"),textAlign:i.textAlign,textVerticalAlign:i.textVerticalAlign}),t.get("triggerEvent")&&(O.eventData=y(t),O.eventData.targetType="axisName",O.eventData.name=n),this._dumbGroup.add(O),O.updateTransform(),this.group.add(O),O.decomposeTransform()}}},x=b.innerTextLayout=function(e,t,n){var i,r,a=f(t-e);return h(a)?(r=n>0?"top":"bottom",i="center"):h(a-v)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=a>0&&a<v?n>0?"right":"left":n>0?"left":"right"),{rotation:a,textAlign:i,textVerticalAlign:r}};function w(e){var t=e.get("tooltip");return e.get("silent")||!(e.get("triggerEvent")||t&&t.show)}function S(e){e&&(e.ignore=!0)}function C(e,t,n){var i=e&&e.getBoundingRect().clone(),r=t&&t.getBoundingRect().clone();if(i&&r){var a=m.identity([]);return m.rotate(a,a,-e.rotation),i.applyTransform(m.mul([],a,e.getLocalTransform())),r.applyTransform(m.mul([],a,t.getLocalTransform())),i.intersect(r)}}function M(e){return"middle"===e||"center"===e}var k=b;e.exports=k},"W/HH":function(e,t,n){"use strict";t.__esModule=!0;var i,r=n("IvJb"),a=(i=r)&&i.__esModule?i:{default:i},o=n("iOou");var s=[],l="@@clickoutsideContext",u=void 0,c=0;function d(e,t,n){return function(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!(n&&n.context&&i.target&&r.target)||e.contains(i.target)||e.contains(r.target)||e===i.target||n.context.popperElm&&(n.context.popperElm.contains(i.target)||n.context.popperElm.contains(r.target))||(t.expression&&e[l].methodName&&n.context[e[l].methodName]?n.context[e[l].methodName]():e[l].bindingFn&&e[l].bindingFn())}}!a.default.prototype.$isServer&&(0,o.on)(document,"mousedown",function(e){return u=e}),!a.default.prototype.$isServer&&(0,o.on)(document,"mouseup",function(e){s.forEach(function(t){return t[l].documentHandler(e,u)})}),t.default={bind:function(e,t,n){s.push(e);var i=c++;e[l]={id:i,documentHandler:d(e,t,n),methodName:t.expression,bindingFn:t.value}},update:function(e,t,n){e[l].documentHandler=d(e,t,n),e[l].methodName=t.expression,e[l].bindingFn=t.value},unbind:function(e){for(var t=s.length,n=0;n<t;n++)if(s[n][l].id===e[l].id){s.splice(n,1);break}delete e[l]}}},W9LT:function(e,t,n){var i=n("GKMz"),r=i.each;function a(e,t){return e&&e.hasOwnProperty&&e.hasOwnProperty(t)}e.exports=function(e){var t=e&&e.visualMap;i.isArray(t)||(t=t?[t]:[]),r(t,function(e){if(e){a(e,"splitList")&&!a(e,"pieces")&&(e.pieces=e.splitList,delete e.splitList);var t=e.pieces;t&&i.isArray(t)&&r(t,function(e){i.isObject(e)&&(a(e,"start")&&!a(e,"min")&&(e.min=e.start),a(e,"end")&&!a(e,"max")&&(e.max=e.end))})}})}},WAQe:function(e,t,n){n("5FyJ")("asyncIterator")},WAmt:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("aVg8"),o=n("ktMJ").createSymbol,s=n("abCA"),l=s.parsePercent,u=s.isNumeric,c=n("7MGq").setLabel,d=["itemStyle","borderWidth"],h=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],f=new a.Circle;function p(e,t,n,i){var a=e.getItemLayout(t),o=n.get("symbolRepeat"),s=n.get("symbolClip"),c=n.get("symbolPosition")||"start",h=(n.get("symbolRotate")||0)*Math.PI/180||0,p=n.get("symbolPatternSize")||2,g=n.isAnimationEnabled(),v={dataIndex:t,layout:a,itemModel:n,symbolType:e.getItemVisual(t,"symbol")||"circle",color:e.getItemVisual(t,"color"),symbolClip:s,symbolRepeat:o,symbolRepeatDirection:n.get("symbolRepeatDirection"),symbolPatternSize:p,rotation:h,animationModel:g?n:null,hoverAnimation:g&&n.get("hoverAnimation"),z2:n.getShallow("z",!0)||0};!function(e,t,n,i,a){var o,s=i.valueDim,l=e.get("symbolBoundingData"),u=i.coordSys.getOtherAxis(i.coordSys.getBaseAxis()),c=u.toGlobalCoord(u.dataToCoord(0)),d=1-+(n[s.wh]<=0);if(r.isArray(l)){var h=[m(u,l[0])-c,m(u,l[1])-c];h[1]<h[0]&&h.reverse(),o=h[d]}else o=null!=l?m(u,l)-c:t?i.coordSysExtent[s.index][d]-c:n[s.wh];a.boundingLength=o,t&&(a.repeatCutLength=n[s.wh]);a.pxSign=o>0?1:o<0?-1:0}(n,o,a,i,v),function(e,t,n,i,a,o,s,u,c,d){var h=c.valueDim,f=c.categoryDim,p=Math.abs(n[f.wh]),m=e.getItemVisual(t,"symbolSize");r.isArray(m)?m=m.slice():(null==m&&(m="100%"),m=[m,m]);m[f.index]=l(m[f.index],p),m[h.index]=l(m[h.index],i?p:Math.abs(o)),d.symbolSize=m,(d.symbolScale=[m[0]/u,m[1]/u])[h.index]*=(c.isHorizontal?-1:1)*s}(e,t,a,o,0,v.boundingLength,v.pxSign,p,i,v),function(e,t,n,i,r){var a=e.get(d)||0;a&&(f.attr({scale:t.slice(),rotation:n}),f.updateTransform(),a/=f.getLineScale(),a*=t[i.valueDim.index]);r.valueLineWidth=a}(n,v.symbolScale,h,i,v);var y=v.symbolSize,b=n.get("symbolOffset");return r.isArray(b)&&(b=[l(b[0],y[0]),l(b[1],y[1])]),function(e,t,n,i,a,o,s,c,d,h,f,p){var m=f.categoryDim,g=f.valueDim,v=p.pxSign,y=Math.max(t[g.index]+c,0),b=y;if(i){var _=Math.abs(d),x=r.retrieve(e.get("symbolMargin"),"15%")+"",w=!1;x.lastIndexOf("!")===x.length-1&&(w=!0,x=x.slice(0,x.length-1)),x=l(x,t[g.index]);var S=Math.max(y+2*x,0),C=w?0:2*x,M=u(i),k=M?i:D((_+C)/S),T=_-k*y;S=y+2*(x=T/2/(w?k:k-1)),C=w?0:2*x,M||"fixed"===i||(k=h?D((Math.abs(h)+C)/S):0),b=k*S-C,p.repeatTimes=k,p.symbolMargin=x}var A=v*(b/2),I=p.pathPosition=[];I[m.index]=n[m.wh]/2,I[g.index]="start"===s?A:"end"===s?d-A:d/2,o&&(I[0]+=o[0],I[1]+=o[1]);var E=p.bundlePosition=[];E[m.index]=n[m.xy],E[g.index]=n[g.xy];var O=p.barRectShape=r.extend({},n);O[g.wh]=v*Math.max(Math.abs(n[g.wh]),Math.abs(I[g.index]+A)),O[m.wh]=n[m.wh];var P=p.clipShape={};P[m.xy]=-n[m.xy],P[m.wh]=f.ecSize[m.wh],P[g.xy]=0,P[g.wh]=n[g.wh]}(n,y,a,o,0,b,c,v.valueLineWidth,v.boundingLength,v.repeatCutLength,i,v),v}function m(e,t){return e.toGlobalCoord(e.dataToCoord(e.scale.parse(t)))}function g(e){var t=e.symbolPatternSize,n=o(e.symbolType,-t/2,-t/2,t,t,e.color);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function v(e,t,n,i){var r=e.__pictorialBundle,a=n.symbolSize,o=n.valueLineWidth,s=n.pathPosition,l=t.valueDim,u=n.repeatTimes||0,c=0,d=a[t.valueDim.index]+o+2*n.symbolMargin;for(A(e,function(e){e.__pictorialAnimationIndex=c,e.__pictorialRepeatTimes=u,c<u?I(e,null,p(c),n,i):I(e,null,{scale:[0,0]},n,i,function(){r.remove(e)}),C(e,n),c++});c<u;c++){var h=g(n);h.__pictorialAnimationIndex=c,h.__pictorialRepeatTimes=u,r.add(h);var f=p(c);I(h,{position:f.position,scale:[0,0]},{scale:f.scale,rotation:f.rotation},n,i),h.on("mouseover",m).on("mouseout",v),C(h,n)}function p(e){var t=s.slice(),i=n.pxSign,r=e;return("start"===n.symbolRepeatDirection?i>0:i<0)&&(r=u-1-e),t[l.index]=d*(r-u/2+.5)+s[l.index],{position:t,scale:n.symbolScale.slice(),rotation:n.rotation}}function m(){A(e,function(e){e.trigger("emphasis")})}function v(){A(e,function(e){e.trigger("normal")})}}function y(e,t,n,i){var r=e.__pictorialBundle,a=e.__pictorialMainPath;a?I(a,null,{position:n.pathPosition.slice(),scale:n.symbolScale.slice(),rotation:n.rotation},n,i):(a=e.__pictorialMainPath=g(n),r.add(a),I(a,{position:n.pathPosition.slice(),scale:[0,0],rotation:n.rotation},{scale:n.symbolScale.slice()},n,i),a.on("mouseover",function(){this.trigger("emphasis")}).on("mouseout",function(){this.trigger("normal")})),C(a,n)}function b(e,t,n){var i=r.extend({},t.barRectShape),o=e.__pictorialBarRect;o?I(o,null,{shape:i},t,n):(o=e.__pictorialBarRect=new a.Rect({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),e.add(o))}function _(e,t,n,i){if(n.symbolClip){var o=e.__pictorialClipPath,s=r.extend({},n.clipShape),l=t.valueDim,u=n.animationModel,c=n.dataIndex;if(o)a.updateProps(o,{shape:s},u,c);else{s[l.wh]=0,o=new a.Rect({shape:s}),e.__pictorialBundle.setClipPath(o),e.__pictorialClipPath=o;var d={};d[l.wh]=n.clipShape[l.wh],a[i?"updateProps":"initProps"](o,{shape:d},u,c)}}}function x(e,t){var n=e.getItemModel(t);return n.getAnimationDelayParams=w,n.isAnimationEnabled=S,n}function w(e){return{index:e.__pictorialAnimationIndex,count:e.__pictorialRepeatTimes}}function S(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function C(e,t){e.off("emphasis").off("normal");var n=t.symbolScale.slice();t.hoverAnimation&&e.on("emphasis",function(){this.animateTo({scale:[1.1*n[0],1.1*n[1]]},400,"elasticOut")}).on("normal",function(){this.animateTo({scale:n.slice()},400,"elasticOut")})}function M(e,t,n,i){var r=new a.Group,o=new a.Group;return r.add(o),r.__pictorialBundle=o,o.attr("position",n.bundlePosition.slice()),n.symbolRepeat?v(r,t,n):y(r,0,n),b(r,n,i),_(r,t,n,i),r.__pictorialShapeStr=T(e,n),r.__pictorialSymbolMeta=n,r}function k(e,t,n,i){var o=i.__pictorialBarRect;o&&(o.style.text=null);var s=[];A(i,function(e){s.push(e)}),i.__pictorialMainPath&&s.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),r.each(s,function(e){a.updateProps(e,{scale:[0,0]},n,t,function(){i.parent&&i.parent.remove(i)})}),e.setItemGraphicEl(t,null)}function T(e,t){return[e.getItemVisual(t.dataIndex,"symbol")||"none",!!t.symbolRepeat,!!t.symbolClip].join(":")}function A(e,t,n){r.each(e.__pictorialBundle.children(),function(i){i!==e.__pictorialBarRect&&t.call(n,i)})}function I(e,t,n,i,r,o){t&&e.attr(t),i.symbolClip&&!r?n&&e.attr(n):n&&a[r?"updateProps":"initProps"](e,n,i.animationModel,i.dataIndex,o)}function E(e,t,n){var i=n.color,o=n.dataIndex,s=n.itemModel,l=s.getModel("itemStyle").getItemStyle(["color"]),u=s.getModel("emphasis.itemStyle").getItemStyle(),d=s.getShallow("cursor");A(e,function(e){e.setColor(i),e.setStyle(r.defaults({fill:i,opacity:n.opacity},l)),a.setHoverStyle(e,u),d&&(e.cursor=d),e.z2=n.z2});var h={},f=t.valueDim.posDesc[+(n.boundingLength>0)],p=e.__pictorialBarRect;c(p.style,h,s,i,t.seriesModel,o,f),a.setHoverStyle(p,h)}function D(e){var t=Math.round(e);return Math.abs(e-t)<1e-4?t:Math.ceil(e)}var O=i.extendChartView({type:"pictorialBar",render:function(e,t,n){var i=this.group,r=e.getData(),o=this._data,s=e.coordinateSystem,l=!!s.getBaseAxis().isHorizontal(),u=s.grid.getRect(),c={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:e,coordSys:s,coordSysExtent:[[u.x,u.x+u.width],[u.y,u.y+u.height]],isHorizontal:l,valueDim:h[+l],categoryDim:h[1-l]};return r.diff(o).add(function(e){if(r.hasValue(e)){var t=x(r,e),n=p(r,e,t,c),a=M(r,c,n);r.setItemGraphicEl(e,a),i.add(a),E(a,c,n)}}).update(function(e,t){var n=o.getItemGraphicEl(t);if(r.hasValue(e)){var s=x(r,e),l=p(r,e,s,c),u=T(r,l);n&&u!==n.__pictorialShapeStr&&(i.remove(n),r.setItemGraphicEl(e,null),n=null),n?function(e,t,n){var i=n.animationModel,r=n.dataIndex,o=e.__pictorialBundle;a.updateProps(o,{position:n.bundlePosition.slice()},i,r),n.symbolRepeat?v(e,t,n,!0):y(e,t,n,!0);b(e,n,!0),_(e,t,n,!0)}(n,c,l):n=M(r,c,l,!0),r.setItemGraphicEl(e,n),n.__pictorialSymbolMeta=l,i.add(n),E(n,c,l)}else i.remove(n)}).remove(function(e){var t=o.getItemGraphicEl(e);t&&k(o,e,t.__pictorialSymbolMeta.animationModel,t)}).execute(),this._data=r,this.group},dispose:r.noop,remove:function(e,t){var n=this.group,i=this._data;e.get("animation")?i&&i.eachItemGraphicEl(function(t){k(i,t.dataIndex,e,t)}):n.removeAll()}});e.exports=O},WBXz:function(e,t,n){var i=n("z1q5").extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}});e.exports=i},WN98:function(e,t,n){"use strict";t.__esModule=!0;var i=n("tjix");t.default={methods:{t:function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return i.t.apply(this,t)}}}},WPVr:function(e,t,n){var i=n("/MtV"),r=n("3LBH"),a=n("is1E"),o=n("VErb");i.extendChartView({type:"scatter",render:function(e,t,n){var i=e.getData();this._updateSymbolDraw(i,e).updateData(i),this._finished=!0},incrementalPrepareRender:function(e,t,n){var i=e.getData();this._updateSymbolDraw(i,e).incrementalPrepareUpdate(i),this._finished=!1},incrementalRender:function(e,t,n){this._symbolDraw.incrementalUpdate(e,t.getData()),this._finished=e.end===t.getData().count()},updateTransform:function(e,t,n){var i=e.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=o().reset(e);r.progress&&r.progress({start:0,end:i.count()},i),this._symbolDraw.updateLayout(i)},_updateSymbolDraw:function(e,t){var n=this._symbolDraw,i=t.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new a:new r,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},remove:function(e,t){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},dispose:function(){}})},WiQi:function(e,t,n){var i=n("2L83"),r=n("aVg8"),a=n("Qmdc"),o=n("abCA"),s=o.parsePercent,l=o.round,u=o.linearMap;function c(e,t){return t&&("string"==typeof t?e=t.replace("{value}",null!=e?e:""):"function"==typeof t&&(e=t(e))),e}var d=2*Math.PI,h=a.extend({type:"gauge",render:function(e,t,n){this.group.removeAll();var i=e.get("axisLine.lineStyle.color"),r=function(e,t){var n=e.get("center"),i=t.getWidth(),r=t.getHeight(),a=Math.min(i,r);return{cx:s(n[0],t.getWidth()),cy:s(n[1],t.getHeight()),r:s(e.get("radius"),a/2)}}(e,n);this._renderMain(e,t,n,i,r)},dispose:function(){},_renderMain:function(e,t,n,i,a){for(var o=this.group,s=e.getModel("axisLine").getModel("lineStyle"),l=e.get("clockwise"),u=-e.get("startAngle")/180*Math.PI,c=((m=-e.get("endAngle")/180*Math.PI)-u)%d,h=u,f=s.get("width"),p=0;p<i.length;p++){var m=u+c*Math.min(Math.max(i[p][0],0),1),g=new r.Sector({shape:{startAngle:h,endAngle:m,cx:a.cx,cy:a.cy,clockwise:l,r0:a.r-f,r:a.r},silent:!0});g.setStyle({fill:i[p][1]}),g.setStyle(s.getLineStyle(["color","borderWidth","borderColor"])),o.add(g),h=m}var v=function(e){if(e<=0)return i[0][1];for(var t=0;t<i.length;t++)if(i[t][0]>=e&&(0===t?0:i[t-1][0])<e)return i[t][1];return i[t-1][1]};if(!l){var y=u;u=m,m=y}this._renderTicks(e,t,n,v,a,u,m,l),this._renderPointer(e,t,n,v,a,u,m,l),this._renderTitle(e,t,n,v,a),this._renderDetail(e,t,n,v,a)},_renderTicks:function(e,t,n,i,a,o,u,d){for(var h=this.group,f=a.cx,p=a.cy,m=a.r,g=+e.get("min"),v=+e.get("max"),y=e.getModel("splitLine"),b=e.getModel("axisTick"),_=e.getModel("axisLabel"),x=e.get("splitNumber"),w=b.get("splitNumber"),S=s(y.get("length"),m),C=s(b.get("length"),m),M=o,k=(u-o)/x,T=k/w,A=y.getModel("lineStyle").getLineStyle(),I=b.getModel("lineStyle").getLineStyle(),E=0;E<=x;E++){var D=Math.cos(M),O=Math.sin(M);if(y.get("show")){var P=new r.Line({shape:{x1:D*m+f,y1:O*m+p,x2:D*(m-S)+f,y2:O*(m-S)+p},style:A,silent:!0});"auto"===A.stroke&&P.setStyle({stroke:i(E/x)}),h.add(P)}if(_.get("show")){var L=c(l(E/x*(v-g)+g),_.get("formatter")),R=_.get("distance"),N=i(E/x);h.add(new r.Text({style:r.setTextStyle({},_,{text:L,x:D*(m-S-R)+f,y:O*(m-S-R)+p,textVerticalAlign:O<-.4?"top":O>.4?"bottom":"middle",textAlign:D<-.4?"left":D>.4?"right":"center"},{autoColor:N}),silent:!0}))}if(b.get("show")&&E!==x){for(var B=0;B<=w;B++){D=Math.cos(M),O=Math.sin(M);var F=new r.Line({shape:{x1:D*m+f,y1:O*m+p,x2:D*(m-C)+f,y2:O*(m-C)+p},silent:!0,style:I});"auto"===I.stroke&&F.setStyle({stroke:i((E+B/w)/x)}),h.add(F),M+=T}M-=T}else M+=k}},_renderPointer:function(e,t,n,a,o,l,c,d){var h=this.group,f=this._data;if(e.get("pointer.show")){var p=[+e.get("min"),+e.get("max")],m=[l,c],g=e.getData(),v=g.mapDimension("value");g.diff(f).add(function(t){var n=new i({shape:{angle:l}});r.initProps(n,{shape:{angle:u(g.get(v,t),p,m,!0)}},e),h.add(n),g.setItemGraphicEl(t,n)}).update(function(t,n){var i=f.getItemGraphicEl(n);r.updateProps(i,{shape:{angle:u(g.get(v,t),p,m,!0)}},e),h.add(i),g.setItemGraphicEl(t,i)}).remove(function(e){var t=f.getItemGraphicEl(e);h.remove(t)}).execute(),g.eachItemGraphicEl(function(e,t){var n=g.getItemModel(t),i=n.getModel("pointer");e.setShape({x:o.cx,y:o.cy,width:s(i.get("width"),o.r),r:s(i.get("length"),o.r)}),e.useStyle(n.getModel("itemStyle").getItemStyle()),"auto"===e.style.fill&&e.setStyle("fill",a(u(g.get(v,t),p,[0,1],!0))),r.setHoverStyle(e,n.getModel("emphasis.itemStyle").getItemStyle())}),this._data=g}else f&&f.eachItemGraphicEl(function(e){h.remove(e)})},_renderTitle:function(e,t,n,i,a){var o=e.getData(),l=o.mapDimension("value"),c=e.getModel("title");if(c.get("show")){var d=c.get("offsetCenter"),h=a.cx+s(d[0],a.r),f=a.cy+s(d[1],a.r),p=+e.get("min"),m=+e.get("max"),g=e.getData().get(l,0),v=i(u(g,[p,m],[0,1],!0));this.group.add(new r.Text({silent:!0,style:r.setTextStyle({},c,{x:h,y:f,text:o.getName(0),textAlign:"center",textVerticalAlign:"middle"},{autoColor:v,forceRich:!0})}))}},_renderDetail:function(e,t,n,i,a){var o=e.getModel("detail"),l=+e.get("min"),d=+e.get("max");if(o.get("show")){var h=o.get("offsetCenter"),f=a.cx+s(h[0],a.r),p=a.cy+s(h[1],a.r),m=s(o.get("width"),a.r),g=s(o.get("height"),a.r),v=e.getData(),y=v.get(v.mapDimension("value"),0),b=i(u(y,[l,d],[0,1],!0));this.group.add(new r.Text({silent:!0,style:r.setTextStyle({},o,{x:f,y:p,text:c(y,o.get("formatter")),textWidth:isNaN(m)?null:m,textHeight:isNaN(g)?null:g,textAlign:"center",textVerticalAlign:"middle"},{autoColor:b,forceRich:!0})}))}}});e.exports=h},WqZQ:function(e,t,n){var i=n("GKMz"),r=n("KSHG"),a=(0,n("vqvJ").makeInner)(),o=i.each;function s(e,t,n){e.handler("leave",null,n)}function l(e,t,n,i){t.handler(e,n,i)}t.register=function(e,t,n){if(!r.node){var u=t.getZr();a(u).records||(a(u).records={}),function(e,t){function n(n,i){e.on(n,function(n){var r=function(e){var t={showTip:[],hideTip:[]},n=function(i){var r=t[i.type];r?r.push(i):(i.dispatchAction=n,e.dispatchAction(i))};return{dispatchAction:n,pendings:t}}(t);o(a(e).records,function(e){e&&i(e,n,r.dispatchAction)}),function(e,t){var n,i=e.showTip.length,r=e.hideTip.length;i?n=e.showTip[i-1]:r&&(n=e.hideTip[r-1]),n&&(n.dispatchAction=null,t.dispatchAction(n))}(r.pendings,t)})}a(e).initialized||(a(e).initialized=!0,n("click",i.curry(l,"click")),n("mousemove",i.curry(l,"mousemove")),n("globalout",s))}(u,t),(a(u).records[e]||(a(u).records[e]={})).handler=n}},t.unregister=function(e,t){if(!r.node){var n=t.getZr();(a(n).records||{})[e]&&(a(n).records[e]=null)}}},WtQt:function(e,t,n){var i=n("GKMz"),r=n("V4EM"),a=n("6/6c"),o=n("Q/cl"),s=o.getLayoutParams,l=o.mergeLayoutParam,u=n("b0oC"),c=["value","category","time","log"];e.exports=function(e,t,n,o){i.each(c,function(a){t.extend({type:e+"Axis."+a,mergeDefaultAndTheme:function(t,r){var o=this.layoutMode,u=o?s(t):{},c=r.getTheme();i.merge(t,c.get(a+"Axis")),i.merge(t,this.getDefaultOption()),t.type=n(e,t),o&&l(t,u,o)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=u.createByAxisModel(this))},getCategories:function(e){var t=this.option;if("category"===t.type)return e?t.data:this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:i.mergeAll([{},r[a+"Axis"],o],!0)})}),a.registerSubTypeDefaulter(e+"Axis",i.curry(n,e))}},WwGG:function(e,t,n){var i=n("7p3N");e.exports=function(e,t,n){if(i(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,i){return e.call(t,n,i)};case 3:return function(n,i,r){return e.call(t,n,i,r)}}return function(){return e.apply(t,arguments)}}},XAI7:function(e,t,n){var i=n("lIiZ").f,r=n("Mcur"),a=n("biYF")("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,a)&&i(e,a,{configurable:!0,value:t})}},XCYH:function(e,t,n){var i=n("GKMz"),r=i.createHashMap,a=i.each,o=i.isString,s=i.defaults,l=i.extend,u=i.isObject,c=i.clone,d=n("vqvJ").normalizeToArray,h=n("InbI").guessOrdinal,f=n("YYsL"),p=n("aSSy").OTHER_DIMENSIONS;function m(e,t,n){if(n||null!=t.get(e)){for(var i=0;null!=t.get(e+i);)i++;e+=i}return t.set(e,!0),e}var g=function(e,t,n){f.isInstance(t)||(t=f.seriesDataToSource(t)),n=n||{},e=(e||[]).slice();for(var i=(n.dimsDef||[]).slice(),g=r(n.encodeDef),v=r(),y=r(),b=[],_=function(e,t,n,i){var r=Math.max(e.dimensionsDetectCount||1,t.length,n.length,i||0);return a(t,function(e){var t=e.dimsDef;t&&(r=Math.max(r,t.length))}),r}(t,e,i,n.dimCount),x=0;x<_;x++){var w=i[x]=l({},u(i[x])?i[x]:{name:i[x]}),S=w.name,C=b[x]={otherDims:{}};null!=S&&null==v.get(S)&&(C.name=C.displayName=S,v.set(S,x)),null!=w.type&&(C.type=w.type),null!=w.displayName&&(C.displayName=w.displayName)}g.each(function(e,t){e=d(e).slice();var n=g.set(t,[]);a(e,function(e,i){o(e)&&(e=v.get(e)),null!=e&&e<_&&(n[i]=e,k(b[e],t,i))})});var M=0;function k(e,t,n){null!=p.get(t)?e.otherDims[t]=n:(e.coordDim=t,e.coordDimIndex=n,y.set(t,!0))}a(e,function(e,t){var n,i,r;if(o(e))n=e,e={};else{n=e.name;var l=e.ordinalMeta;e.ordinalMeta=null,(e=c(e)).ordinalMeta=l,i=e.dimsDef,r=e.otherDims,e.name=e.coordDim=e.coordDimIndex=e.dimsDef=e.otherDims=null}var h=d(g.get(n));if(!h.length)for(var f=0;f<(i&&i.length||1);f++){for(;M<b.length&&null!=b[M].coordDim;)M++;M<b.length&&h.push(M++)}a(h,function(t,a){var o=b[t];if(k(s(o,e),n,a),null==o.name&&i){var l=i[a];!u(l)&&(l={name:l}),o.name=o.displayName=l.name,o.defaultTooltip=l.defaultTooltip}r&&s(o.otherDims,r)})});var T=n.generateCoord,A=n.generateCoordCount,I=null!=A;A=T?A||1:0;for(var E=T||"value",D=0;D<_;D++)null==(C=b[D]=b[D]||{}).coordDim&&(C.coordDim=m(E,y,I),C.coordDimIndex=0,(!T||A<=0)&&(C.isExtraCoord=!0),A--),null==C.name&&(C.name=m(C.coordDim,v)),null==C.type&&h(t,D,C.name)&&(C.type="ordinal");return b};e.exports=g},XHuq:function(e,t,n){var i=n("/MtV");n("BLUl"),n("kRcM");var r=n("2605"),a=n("sBnI"),o=n("dvI7");i.registerPreprocessor(r),i.registerVisual(a),i.registerLayout(o)},XKuZ:function(e,t,n){var i=n("GKMz"),r=n("Q+zo"),a=n("F93s"),o=n("abCA"),s=n("3m5Y"),l=s.getScaleExtent,u=s.niceScaleExtent,c=n("i+pt");function d(e,t,n){this._model=e,this.dimensions=[],this._indicatorAxes=i.map(e.getIndicatorModels(),function(e,t){var n="indicator_"+t,i=new r(n,new a);return i.name=e.get("name"),i.model=e,e.axis=i,this.dimensions.push(n),i},this),this.resize(e,n),this.cx,this.cy,this.r,this.startAngle}d.prototype.getIndicatorAxes=function(){return this._indicatorAxes},d.prototype.dataToPoint=function(e,t){var n=this._indicatorAxes[t];return this.coordToPoint(n.dataToCoord(e),t)},d.prototype.coordToPoint=function(e,t){var n=this._indicatorAxes[t].angle;return[this.cx+e*Math.cos(n),this.cy-e*Math.sin(n)]},d.prototype.pointToData=function(e){var t=e[0]-this.cx,n=e[1]-this.cy,i=Math.sqrt(t*t+n*n);t/=i,n/=i;for(var r,a=Math.atan2(-n,t),o=1/0,s=-1,l=0;l<this._indicatorAxes.length;l++){var u=this._indicatorAxes[l],c=Math.abs(a-u.angle);c<o&&(r=u,s=l,o=c)}return[s,+(r&&r.coodToData(i))]},d.prototype.resize=function(e,t){var n=e.get("center"),r=t.getWidth(),a=t.getHeight(),s=Math.min(r,a)/2;this.cx=o.parsePercent(n[0],r),this.cy=o.parsePercent(n[1],a),this.startAngle=e.get("startAngle")*Math.PI/180,this.r=o.parsePercent(e.get("radius"),s),i.each(this._indicatorAxes,function(e,t){e.setExtent(0,this.r);var n=this.startAngle+t*Math.PI*2/this._indicatorAxes.length;n=Math.atan2(Math.sin(n),Math.cos(n)),e.angle=n},this)},d.prototype.update=function(e,t){var n=this._indicatorAxes,r=this._model;i.each(n,function(e){e.scale.setExtent(1/0,-1/0)}),e.eachSeriesByType("radar",function(t,a){if("radar"===t.get("coordinateSystem")&&e.getComponent("radar",t.get("radarIndex"))===r){var o=t.getData();i.each(n,function(e){e.scale.unionExtentFromData(o,o.mapDimension(e.dim))})}},this);var a=r.get("splitNumber");function s(e){var t=Math.pow(10,Math.floor(Math.log(e)/Math.LN10)),n=e/t;return 2===n?n=5:n*=2,n*t}i.each(n,function(e,t){var n=l(e.scale,e.model);u(e.scale,e.model);var i=e.model,r=e.scale,c=i.getMin(),d=i.getMax(),h=r.getInterval();if(null!=c&&null!=d)r.setExtent(+c,+d),r.setInterval((d-c)/a);else if(null!=c){var f;do{f=c+h*a,r.setExtent(+c,f),r.setInterval(h),h=s(h)}while(f<n[1]&&isFinite(f)&&isFinite(n[1]))}else if(null!=d){var p;do{p=d-h*a,r.setExtent(p,+d),r.setInterval(h),h=s(h)}while(p>n[0]&&isFinite(p)&&isFinite(n[0]))}else{r.getTicks().length-1>a&&(h=s(h));var m=Math.round((n[0]+n[1])/2/h)*h,g=Math.round(a/2);r.setExtent(o.round(m-g*h),o.round(m+(a-g)*h)),r.setInterval(h)}})},d.dimensions=[],d.create=function(e,t){var n=[];return e.eachComponent("radar",function(i){var r=new d(i,e,t);n.push(r),i.coordinateSystem=r}),e.eachSeriesByType("radar",function(e){"radar"===e.get("coordinateSystem")&&(e.coordinateSystem=n[e.get("radarIndex")||0])}),n},c.register("radar",d);var h=d;e.exports=h},XPmC:function(e,t,n){var i=n("ehjs").circularLayout;e.exports=function(e){e.eachSeriesByType("graph",function(e){"circular"===e.get("layout")&&i(e)})}},XnpR:function(e,t){e.exports=function(e){var t={};e.eachSeriesByType("graph",function(e){var n=e.getCategoriesData(),i=e.getData(),r={};n.each(function(i){var a=n.getName(i);r["ec-"+a]=i;var o=n.getItemModel(i).get("itemStyle.color")||e.getColorFromPalette(a,t);n.setItemVisual(i,"color",o)}),n.count()&&i.each(function(e){var t=i.getItemModel(e).getShallow("category");null!=t&&("string"==typeof t&&(t=r["ec-"+t]),i.getItemVisual(e,"color",!0)||i.setItemVisual(e,"color",n.getItemVisual(t,"color")))})})}},XoXQ:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("ktMJ").createSymbol,o=n("aVg8"),s=n("8Uut").makeBackground,l=n("Q/cl"),u=r.curry,c=r.each,d=o.Group,h=i.extendComponentView({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new d),this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(e,t,n){if(this.resetInner(),e.get("show",!0)){var i=e.get("align");i&&"auto"!==i||(i="right"===e.get("left")&&"vertical"===e.get("orient")?"right":"left"),this.renderInner(i,e,t,n);var a=e.getBoxLayoutParams(),o={width:n.getWidth(),height:n.getHeight()},u=e.get("padding"),c=l.getLayoutRect(a,o,u),d=this.layoutInner(e,i,c),h=l.getLayoutRect(r.defaults({width:d.width,height:d.height},a),o,u);this.group.attr("position",[h.x-d.x,h.y-d.y]),this.group.add(this._backgroundEl=s(d,e))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(e,t,n,i){var a=this.getContentGroup(),o=r.createHashMap(),s=t.get("selectedMode"),l=[];n.eachRawSeries(function(e){!e.get("legendHoverLink")&&l.push(e.id)}),c(t.getData(),function(r,c){var h=r.get("name");if(this.newlineDisabled||""!==h&&"\n"!==h){var g=n.getSeriesByName(h)[0];if(!o.get(h))if(g){var v=g.getData(),y=v.getVisual("color");"function"==typeof y&&(y=y(g.getDataParams(0)));var b=v.getVisual("legendSymbol")||"roundRect",_=v.getVisual("symbol");this._createItem(h,c,r,t,b,_,e,y,s).on("click",u(f,h,i)).on("mouseover",u(p,g,null,i,l)).on("mouseout",u(m,g,null,i,l)),o.set(h,!0)}else n.eachRawSeries(function(n){if(!o.get(h)&&n.legendDataProvider){var a=n.legendDataProvider(),d=a.indexOfName(h);if(d<0)return;var g=a.getItemVisual(d,"color");this._createItem(h,c,r,t,"roundRect",null,e,g,s).on("click",u(f,h,i)).on("mouseover",u(p,n,h,i,l)).on("mouseout",u(m,n,h,i,l)),o.set(h,!0)}},this)}else a.add(new d({newline:!0}))},this)},_createItem:function(e,t,n,i,s,l,u,c,h){var f=i.get("itemWidth"),p=i.get("itemHeight"),m=i.get("inactiveColor"),g=i.get("symbolKeepAspect"),v=i.isSelected(e),y=new d,b=n.getModel("textStyle"),_=n.get("icon"),x=n.getModel("tooltip"),w=x.parentModel;if(s=_||s,y.add(a(s,0,0,f,p,v?c:m,null==g||g)),!_&&l&&(l!==s||"none"==l)){var S=.8*p;"none"===l&&(l="circle"),y.add(a(l,(f-S)/2,(p-S)/2,S,S,v?c:m,null==g||g))}var C="left"===u?f+5:-5,M=u,k=i.get("formatter"),T=e;"string"==typeof k&&k?T=k.replace("{name}",null!=e?e:""):"function"==typeof k&&(T=k(e)),y.add(new o.Text({style:o.setTextStyle({},b,{text:T,x:C,y:p/2,textFill:v?b.getTextColor():m,textAlign:M,textVerticalAlign:"middle"})}));var A=new o.Rect({shape:y.getBoundingRect(),invisible:!0,tooltip:x.get("show")?r.extend({content:e,formatter:w.get("formatter",!0)||function(){return e},formatterParams:{componentType:"legend",legendIndex:i.componentIndex,name:e,$vars:["name"]}},x.option):null});return y.add(A),y.eachChild(function(e){e.silent=!0}),A.silent=!h,this.getContentGroup().add(y),o.setHoverStyle(y),y.__legendDataIndex=t,y},layoutInner:function(e,t,n){var i=this.getContentGroup();l.box(e.get("orient"),i,e.get("itemGap"),n.width,n.height);var r=i.getBoundingRect();return i.attr("position",[-r.x,-r.y]),this.group.getBoundingRect()}});function f(e,t){t.dispatchAction({type:"legendToggleSelect",name:e})}function p(e,t,n,i){var r=n.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||n.dispatchAction({type:"highlight",seriesName:e.name,name:t,excludeSeriesId:i})}function m(e,t,n,i){var r=n.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||n.dispatchAction({type:"downplay",seriesName:e.name,name:t,excludeSeriesId:i})}e.exports=h},XqSp:function(e,t,n){var i=function(){return this}()||Function("return this")(),r=i.regeneratorRuntime&&Object.getOwnPropertyNames(i).indexOf("regeneratorRuntime")>=0,a=r&&i.regeneratorRuntime;if(i.regeneratorRuntime=void 0,e.exports=n("k9rz"),r)i.regeneratorRuntime=a;else try{delete i.regeneratorRuntime}catch(e){i.regeneratorRuntime=void 0}},XvZ9:function(e,t){t.f={}.propertyIsEnumerable},Xvt7:function(e,t,n){var i=n("eX1V"),r=Object.prototype,a=r.hasOwnProperty,o=r.toString,s=i?i.toStringTag:void 0;e.exports=function(e){var t=a.call(e,s),n=e[s];try{e[s]=void 0;var i=!0}catch(e){}var r=o.call(e);return i&&(t?e[s]=n:delete e[s]),r}},XwwO:function(e,t,n){var i=n("/MtV");n("Mc0f"),n("IW5F"),i.registerPreprocessor(function(e){e.markArea=e.markArea||{}})},YDWW:function(e,t,n){n("/MtV").registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(e,t){t.eachComponent({mainType:"series",subType:"tree",query:e},function(t){var n=e.dataIndex,i=t.getData().tree.getNodeByDataIndex(n);i.isExpand=!i.isExpand})})},YDtG:function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},YLpA:function(e,t,n){n("+upV"),(0,n("qpbZ").registerPainter)("vml",n("xvXB"))},YR6M:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("KSHG"),a=n("uxQp"),o=a.formatTime,s=a.encodeHTML,l=a.addCommas,u=a.getTooltipMarker,c=n("vqvJ"),d=n("6/6c"),h=n("7T7k"),f=n("xPAV"),p=n("Q/cl"),m=p.getLayoutParams,g=p.mergeLayoutParam,v=n("ZgaJ").createTask,y=n("InbI"),b=y.prepareSource,_=y.getSource,x=n("2xPE").retrieveRawValue,w=c.makeInner(),S=d.extend({type:"series.__base__",seriesIndex:0,coordinateSystem:null,defaultOption:null,legendDataProvider:null,visualColorAccessPath:"itemStyle.color",layoutMode:null,init:function(e,t,n,i){this.seriesIndex=this.componentIndex,this.dataTask=v({count:M,reset:k}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(e,n),b(this);var r=this.getInitialData(e,n);A(r,this),this.dataTask.context.data=r,w(this).dataBeforeProcessed=r,C(this)},mergeDefaultAndTheme:function(e,t){var n=this.layoutMode,r=n?m(e):{},a=this.subType;d.hasClass(a)&&(a+="Series"),i.merge(e,t.getTheme().get(this.subType)),i.merge(e,this.getDefaultOption()),c.defaultEmphasis(e,"label",["show"]),this.fillDataTextStyle(e.data),n&&g(e,r,n)},mergeOption:function(e,t){e=i.merge(this.option,e,!0),this.fillDataTextStyle(e.data);var n=this.layoutMode;n&&g(this.option,e,n),b(this);var r=this.getInitialData(e,t);A(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,w(this).dataBeforeProcessed=r,C(this)},fillDataTextStyle:function(e){if(e&&!i.isTypedArray(e))for(var t=["show"],n=0;n<e.length;n++)e[n]&&e[n].label&&c.defaultEmphasis(e[n],"label",t)},getInitialData:function(){},appendData:function(e){this.getRawData().appendData(e.data)},getData:function(e){var t=E(this);if(t){var n=t.context.data;return null==e?n:n.getLinkedData(e)}return w(this).data},setData:function(e){var t=E(this);if(t){var n=t.context;n.data!==e&&t.modifyOutputEnd&&t.setOutputEnd(e.count()),n.outputData=e,t!==this.dataTask&&(n.data=e)}w(this).data=e},getSource:function(){return _(this)},getRawData:function(){return w(this).dataBeforeProcessed},getBaseAxis:function(){var e=this.coordinateSystem;return e&&e.getBaseAxis&&e.getBaseAxis()},formatTooltip:function(e,t,n){function r(e){return s(l(e))}var a=this.getData(),d=a.mapDimension("defaultedTooltip",!0),h=d.length,f=this.getRawValue(e),p=i.isArray(f),m=a.getItemVisual(e,"color");i.isObject(m)&&m.colorStops&&(m=(m.colorStops[0]||{}).color),m=m||"transparent";var g=h>1||p&&!h?function(n){var r=i.reduce(n,function(e,t,n){var i=a.getDimensionInfo(n);return e|(i&&!1!==i.tooltip&&null!=i.displayName)},0),c=[];function h(e,n){var i=a.getDimensionInfo(n);if(i&&!1!==i.otherDims.tooltip){var d=i.type,h=u({color:m,type:"subItem"}),f=(r?h+s(i.displayName||"-")+": ":"")+s("ordinal"===d?e+"":"time"===d?t?"":o("yyyy/MM/dd hh:mm:ss",e):l(e));f&&c.push(f)}}return d.length?i.each(d,function(t){h(x(a,e,t),t)}):i.each(n,h),(r?"<br/>":"")+c.join(r?"<br/>":", ")}(f):r(h?x(a,e,d[0]):p?f[0]:f),v=u(m),y=a.getName(e),b=this.name;return c.isNameSpecified(this)||(b=""),b=b?s(b)+(t?": ":"<br/>"):"",t?v+b+g:b+v+(y?s(y)+": "+g:g)},isAnimationEnabled:function(){if(r.node)return!1;var e=this.getShallow("animation");return e&&this.getData().count()>this.getShallow("animationThreshold")&&(e=!1),e},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(e,t,n){var i=this.ecModel,r=h.getColorFromPalette.call(this,e,t,n);return r||(r=i.getColorFromPalette(e,t,n)),r},coordDimToDataDim:function(e){return this.getRawData().mapDimension(e,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});function C(e){var t=e.name;c.isNameSpecified(e)||(e.name=function(e){var t=e.getRawData(),n=t.mapDimension("seriesName",!0),r=[];return i.each(n,function(e){var n=t.getDimensionInfo(e);n.displayName&&r.push(n.displayName)}),r.join(" ")}(e)||t)}function M(e){return e.model.getRawData().count()}function k(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),T}function T(e,t){e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function A(e,t){i.each(e.CHANGABLE_METHODS,function(n){e.wrapMethod(n,i.curry(I,t))})}function I(e){var t=E(e);t&&t.setOutputEnd(this.count())}function E(e){var t=(e.ecModel||{}).scheduler,n=t&&t.getPipeline(e.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(e.uid))}return i}}i.mixin(S,f),i.mixin(S,h);var D=S;e.exports=D},YW8S:function(e,t,n){var i=n("adiS"),r=n("biYF")("iterator"),a=n("ZVlJ");e.exports=n("AKd3").getIteratorMethod=function(e){if(void 0!=e)return e[r]||e["@@iterator"]||a[i(e)]}},YYsL:function(e,t,n){var i=n("GKMz"),r=i.createHashMap,a=i.isTypedArray,o=n("wNlq").enableClassCheck,s=n("REEr"),l=s.SOURCE_FORMAT_ORIGINAL,u=s.SERIES_LAYOUT_BY_COLUMN,c=s.SOURCE_FORMAT_UNKNOWN,d=s.SOURCE_FORMAT_TYPED_ARRAY,h=s.SOURCE_FORMAT_KEYED_COLUMNS;function f(e){this.fromDataset=e.fromDataset,this.data=e.data||(e.sourceFormat===h?{}:[]),this.sourceFormat=e.sourceFormat||c,this.seriesLayoutBy=e.seriesLayoutBy||u,this.dimensionsDefine=e.dimensionsDefine,this.encodeDefine=e.encodeDefine&&r(e.encodeDefine),this.startIndex=e.startIndex||0,this.dimensionsDetectCount=e.dimensionsDetectCount}f.seriesDataToSource=function(e){return new f({data:e,sourceFormat:a(e)?d:l,fromDataset:!1})},o(f);var p=f;e.exports=p},Ydvc:function(e,t,n){var i=n("/MtV");n("MdZ+"),n("nwvr"),n("h917");var r=n("UUpo"),a=n("kuK2"),o=n("q1lg"),s=n("Jkhp"),l=n("S2lX");i.registerVisual(r("radar")),i.registerVisual(a("radar","circle")),i.registerLayout(o),i.registerProcessor(s("radar")),i.registerPreprocessor(l)},YepE:function(e,t,n){var i=n("luYz"),r=i.create,a=i.distSquare,o=Math.pow,s=Math.sqrt,l=1e-8,u=1e-4,c=s(3),d=1/3,h=r(),f=r(),p=r();function m(e){return e>-l&&e<l}function g(e){return e>l||e<-l}function v(e,t,n,i,r){var a=1-r;return a*a*(a*e+3*r*t)+r*r*(r*i+3*a*n)}function y(e,t,n,i){var r=1-i;return r*(r*e+2*i*t)+i*i*n}t.cubicAt=v,t.cubicDerivativeAt=function(e,t,n,i,r){var a=1-r;return 3*(((t-e)*a+2*(n-t)*r)*a+(i-n)*r*r)},t.cubicRootAt=function(e,t,n,i,r,a){var l=i+3*(t-n)-e,u=3*(n-2*t+e),h=3*(t-e),f=e-r,p=u*u-3*l*h,g=u*h-9*l*f,v=h*h-3*u*f,y=0;if(m(p)&&m(g))m(u)?a[0]=0:(I=-h/u)>=0&&I<=1&&(a[y++]=I);else{var b=g*g-4*p*v;if(m(b)){var _=g/p,x=-_/2;(I=-u/l+_)>=0&&I<=1&&(a[y++]=I),x>=0&&x<=1&&(a[y++]=x)}else if(b>0){var w=s(b),S=p*u+1.5*l*(-g+w),C=p*u+1.5*l*(-g-w);(I=(-u-((S=S<0?-o(-S,d):o(S,d))+(C=C<0?-o(-C,d):o(C,d))))/(3*l))>=0&&I<=1&&(a[y++]=I)}else{var M=(2*p*u-3*l*g)/(2*s(p*p*p)),k=Math.acos(M)/3,T=s(p),A=Math.cos(k),I=(-u-2*T*A)/(3*l),E=(x=(-u+T*(A+c*Math.sin(k)))/(3*l),(-u+T*(A-c*Math.sin(k)))/(3*l));I>=0&&I<=1&&(a[y++]=I),x>=0&&x<=1&&(a[y++]=x),E>=0&&E<=1&&(a[y++]=E)}}return y},t.cubicExtrema=function(e,t,n,i,r){var a=6*n-12*t+6*e,o=9*t+3*i-3*e-9*n,l=3*t-3*e,u=0;if(m(o))g(a)&&(d=-l/a)>=0&&d<=1&&(r[u++]=d);else{var c=a*a-4*o*l;if(m(c))r[0]=-a/(2*o);else if(c>0){var d,h=s(c),f=(-a-h)/(2*o);(d=(-a+h)/(2*o))>=0&&d<=1&&(r[u++]=d),f>=0&&f<=1&&(r[u++]=f)}}return u},t.cubicSubdivide=function(e,t,n,i,r,a){var o=(t-e)*r+e,s=(n-t)*r+t,l=(i-n)*r+n,u=(s-o)*r+o,c=(l-s)*r+s,d=(c-u)*r+u;a[0]=e,a[1]=o,a[2]=u,a[3]=d,a[4]=d,a[5]=c,a[6]=l,a[7]=i},t.cubicProjectPoint=function(e,t,n,i,r,o,l,c,d,m,g){var y,b,_,x,w,S=.005,C=1/0;h[0]=d,h[1]=m;for(var M=0;M<1;M+=.05)f[0]=v(e,n,r,l,M),f[1]=v(t,i,o,c,M),(x=a(h,f))<C&&(y=M,C=x);C=1/0;for(var k=0;k<32&&!(S<u);k++)b=y-S,_=y+S,f[0]=v(e,n,r,l,b),f[1]=v(t,i,o,c,b),x=a(f,h),b>=0&&x<C?(y=b,C=x):(p[0]=v(e,n,r,l,_),p[1]=v(t,i,o,c,_),w=a(p,h),_<=1&&w<C?(y=_,C=w):S*=.5);return g&&(g[0]=v(e,n,r,l,y),g[1]=v(t,i,o,c,y)),s(C)},t.quadraticAt=y,t.quadraticDerivativeAt=function(e,t,n,i){return 2*((1-i)*(t-e)+i*(n-t))},t.quadraticRootAt=function(e,t,n,i,r){var a=e-2*t+n,o=2*(t-e),l=e-i,u=0;if(m(a))g(o)&&(d=-l/o)>=0&&d<=1&&(r[u++]=d);else{var c=o*o-4*a*l;if(m(c))(d=-o/(2*a))>=0&&d<=1&&(r[u++]=d);else if(c>0){var d,h=s(c),f=(-o-h)/(2*a);(d=(-o+h)/(2*a))>=0&&d<=1&&(r[u++]=d),f>=0&&f<=1&&(r[u++]=f)}}return u},t.quadraticExtremum=function(e,t,n){var i=e+n-2*t;return 0===i?.5:(e-t)/i},t.quadraticSubdivide=function(e,t,n,i,r){var a=(t-e)*i+e,o=(n-t)*i+t,s=(o-a)*i+a;r[0]=e,r[1]=a,r[2]=s,r[3]=s,r[4]=o,r[5]=n},t.quadraticProjectPoint=function(e,t,n,i,r,o,l,c,d){var m,g=.005,v=1/0;h[0]=l,h[1]=c;for(var b=0;b<1;b+=.05)f[0]=y(e,n,r,b),f[1]=y(t,i,o,b),(S=a(h,f))<v&&(m=b,v=S);v=1/0;for(var _=0;_<32&&!(g<u);_++){var x=m-g,w=m+g;f[0]=y(e,n,r,x),f[1]=y(t,i,o,x);var S=a(f,h);if(x>=0&&S<v)m=x,v=S;else{p[0]=y(e,n,r,w),p[1]=y(t,i,o,w);var C=a(p,h);w<=1&&C<v?(m=w,v=C):g*=.5}}return d&&(d[0]=y(e,n,r,m),d[1]=y(t,i,o,m)),s(v)}},YvCK:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("wNlq").enableClassCheck;function a(e){return"_EC_"+e}var o=function(e){this._directed=e||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this.data,this.edgeData},s=o.prototype;function l(e,t){this.id=null==e?"":e,this.inEdges=[],this.outEdges=[],this.edges=[],this.hostGraph,this.dataIndex=null==t?-1:t}function u(e,t,n){this.node1=e,this.node2=t,this.dataIndex=null==n?-1:n}s.type="graph",s.isDirected=function(){return this._directed},s.addNode=function(e,t){e=e||""+t;var n=this._nodesMap;if(!n[a(e)]){var i=new l(e,t);return i.hostGraph=this,this.nodes.push(i),n[a(e)]=i,i}},s.getNodeByIndex=function(e){var t=this.data.getRawIndex(e);return this.nodes[t]},s.getNodeById=function(e){return this._nodesMap[a(e)]},s.addEdge=function(e,t,n){var i=this._nodesMap,r=this._edgesMap;if("number"==typeof e&&(e=this.nodes[e]),"number"==typeof t&&(t=this.nodes[t]),l.isInstance(e)||(e=i[a(e)]),l.isInstance(t)||(t=i[a(t)]),e&&t){var o=e.id+"-"+t.id;if(!r[o]){var s=new u(e,t,n);return s.hostGraph=this,this._directed&&(e.outEdges.push(s),t.inEdges.push(s)),e.edges.push(s),e!==t&&t.edges.push(s),this.edges.push(s),r[o]=s,s}}},s.getEdgeByIndex=function(e){var t=this.edgeData.getRawIndex(e);return this.edges[t]},s.getEdge=function(e,t){l.isInstance(e)&&(e=e.id),l.isInstance(t)&&(t=t.id);var n=this._edgesMap;return this._directed?n[e+"-"+t]:n[e+"-"+t]||n[t+"-"+e]},s.eachNode=function(e,t){for(var n=this.nodes,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&e.call(t,n[r],r)},s.eachEdge=function(e,t){for(var n=this.edges,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&e.call(t,n[r],r)},s.breadthFirstTraverse=function(e,t,n,i){if(l.isInstance(t)||(t=this._nodesMap[a(t)]),t){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o<this.nodes.length;o++)this.nodes[o].__visited=!1;if(!e.call(i,t,null))for(var s=[t];s.length;){var u=s.shift(),c=u[r];for(o=0;o<c.length;o++){var d=c[o],h=d.node1===u?d.node2:d.node1;if(!h.__visited){if(e.call(i,h,u))return;s.push(h),h.__visited=!0}}}}},s.update=function(){for(var e=this.data,t=this.edgeData,n=this.nodes,i=this.edges,r=0,a=n.length;r<a;r++)n[r].dataIndex=-1;for(r=0,a=e.count();r<a;r++)n[e.getRawIndex(r)].dataIndex=r;t.filterSelf(function(e){var n=i[t.getRawIndex(e)];return n.node1.dataIndex>=0&&n.node2.dataIndex>=0});for(r=0,a=i.length;r<a;r++)i[r].dataIndex=-1;for(r=0,a=t.count();r<a;r++)i[t.getRawIndex(r)].dataIndex=r},s.clone=function(){for(var e=new o(this._directed),t=this.nodes,n=this.edges,i=0;i<t.length;i++)e.addNode(t[i].id,t[i].dataIndex);for(i=0;i<n.length;i++){var r=n[i];e.addEdge(r.node1.id,r.node2.id,r.dataIndex)}return e},l.prototype={constructor:l,degree:function(){return this.edges.length},inDegree:function(){return this.inEdges.length},outDegree:function(){return this.outEdges.length},getModel:function(e){if(!(this.dataIndex<0))return this.hostGraph.data.getItemModel(this.dataIndex).getModel(e)}},u.prototype.getModel=function(e){if(!(this.dataIndex<0))return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(e)};var c=function(e,t){return{getValue:function(n){var i=this[e][t];return i.get(i.getDimension(n||"value"),this.dataIndex)},setVisual:function(n,i){this.dataIndex>=0&&this[e][t].setItemVisual(this.dataIndex,n,i)},getVisual:function(n,i){return this[e][t].getItemVisual(this.dataIndex,n,i)},setLayout:function(n,i){this.dataIndex>=0&&this[e][t].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[e][t].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[e][t].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[e][t].getRawIndex(this.dataIndex)}}};i.mixin(l,c("hostGraph","data")),i.mixin(u,c("hostGraph","edgeData")),o.Node=l,o.Edge=u,r(l),r(u);var d=o;e.exports=d},Yw6K:function(e,t,n){var i=n("GKMz"),r=n("O7BF"),a=n("aVg8"),o=n("ktMJ").createSymbol,s=n("Q/cl"),l=n("wOHm"),u=r.extend({type:"visualMap.piecewise",doRender:function(){var e=this.group;e.removeAll();var t=this.visualMapModel,n=t.get("textGap"),r=t.textStyleModel,o=r.getFont(),l=r.getTextColor(),u=this._getItemAlign(),c=t.itemSize,d=this._getViewData(),h=d.endsText,f=i.retrieve(t.get("showLabel",!0),!h);h&&this._renderEndsText(e,h[0],c,f,u),i.each(d.viewPieceList,function(r){var s=r.piece,d=new a.Group;d.onclick=i.bind(this._onItemClick,this,s),this._enableHoverLink(d,r.indexInModelPieceList);var h=t.getRepresentValue(s);if(this._createItemSymbol(d,h,[0,0,c[0],c[1]]),f){var p=this.visualMapModel.getValueState(h);d.add(new a.Text({style:{x:"right"===u?-n:c[0]+n,y:c[1]/2,text:s.text,textVerticalAlign:"middle",textAlign:u,textFont:o,textFill:l,opacity:"outOfRange"===p?.5:1}}))}e.add(d)},this),h&&this._renderEndsText(e,h[1],c,f,u),s.box(t.get("orient"),e,t.get("itemGap")),this.renderBackground(e),this.positionGroup(e)},_enableHoverLink:function(e,t){function n(e){var n=this.visualMapModel;n.option.hoverLink&&this.api.dispatchAction({type:e,batch:l.convertDataIndex(n.findTargetDataIndices(t))})}e.on("mouseover",i.bind(n,this,"highlight")).on("mouseout",i.bind(n,this,"downplay"))},_getItemAlign:function(){var e=this.visualMapModel,t=e.option;if("vertical"===t.orient)return l.getItemAlign(e,this.api,e.itemSize);var n=t.align;return n&&"auto"!==n||(n="left"),n},_renderEndsText:function(e,t,n,i,r){if(t){var o=new a.Group,s=this.visualMapModel.textStyleModel;o.add(new a.Text({style:{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,textVerticalAlign:"middle",textAlign:i?r:"center",text:t,textFont:s.getFont(),textFill:s.getTextColor()}})),e.add(o)}},_getViewData:function(){var e=this.visualMapModel,t=i.map(e.getPieceList(),function(e,t){return{piece:e,indexInModelPieceList:t}}),n=e.get("text"),r=e.get("orient"),a=e.get("inverse");return("horizontal"===r?a:!a)?t.reverse():n&&(n=n.slice().reverse()),{viewPieceList:t,endsText:n}},_createItemSymbol:function(e,t,n){e.add(o(this.getControllerVisual(t,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(t,"color")))},_onItemClick:function(e){var t=this.visualMapModel,n=t.option,r=i.clone(n.selected),a=t.getSelectedMapKey(e);"single"===n.selectedMode?(r[a]=!0,i.each(r,function(e,t){r[t]=t===a})):r[a]=!r[a],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:r})}});e.exports=u},Yyxk:function(e,t,n){e.exports={default:n("sDqF"),__esModule:!0}},Z5sy:function(e,t,n){var i=n("YR6M"),r=n("Qieq"),a=n("aSSy").getDimensionTypeByAxis,o=n("M7eM"),s=n("GKMz"),l=n("uxQp").encodeHTML,u=n("SULL"),c=i.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(e){c.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(e){for(var t=e.length,n=u().key(function(e){return e[2]}).entries(e),i=s.map(n,function(e){return{name:e.key,dataList:e.values}}),r=i.length,a=-1,o=-1,l=0;l<r;++l){var c=i[l].dataList.length;c>a&&(a=c,o=l)}for(var d=0;d<r;++d)if(d!==o)for(var h=i[d].name,f=0;f<a;++f){for(var p=i[o].dataList[f][0],m=i[d].dataList.length,g=-1,v=0;v<m;++v){if(i[d].dataList[v][0]===p){g=v;break}}-1===g&&(e[t]=[],e[t][0]=p,e[t][1]=0,e[t][2]=h,t++)}return e},getInitialData:function(e,t){for(var n=t.queryComponents({mainType:"singleAxis",index:this.get("singleAxisIndex"),id:this.get("singleAxisId")})[0].get("type"),i=s.filter(e.data,function(e){return void 0!==e[2]}),l=this.fixData(i||[]),u=[],c=this.nameMap=s.createHashMap(),d=0,h=0;h<l.length;++h)u.push(l[h][2]),c.get(l[h][2])||(c.set(l[h][2],d),d++);var f=r(l,{coordDimensions:["single"],dimensionsDefine:[{name:"time",type:a(n)},{name:"value",type:"float"},{name:"name",type:"ordinal"}],encodeDefine:{single:0,value:1,itemName:2}}),p=new o(f,this);return p.initData(l),p},getLayerSeries:function(){for(var e=this.getData(),t=e.count(),n=[],i=0;i<t;++i)n[i]=i;for(var r=u().key(function(t){return e.get("name",t)}).entries(n),a=s.map(r,function(e){return{name:e.key,indices:e.values}}),o=e.mapDimension("single"),l=0;l<a.length;++l)a[l].indices.sort(c);function c(t,n){return e.get(o,t)-e.get(o,n)}return a},getAxisTooltipData:function(e,t,n){s.isArray(e)||(e=e?[e]:[]);for(var i,r=this.getData(),a=this.getLayerSeries(),o=[],l=a.length,u=0;u<l;++u){for(var c=Number.MAX_VALUE,d=-1,h=a[u].indices.length,f=0;f<h;++f){var p=r.get(e[0],a[u].indices[f]),m=Math.abs(p-t);m<=c&&(i=p,c=m,d=a[u].indices[f])}o.push(d)}return{dataIndices:o,nestestValue:i}},formatTooltip:function(e){var t=this.getData(),n=t.getName(e),i=t.get(t.mapDimension("value"),e);return(isNaN(i)||null==i)&&(i="-"),l(n+" : "+i)},defaultOption:{zlevel:0,z:2,coordinateSystem:"singleAxis",boundaryGap:["10%","10%"],singleAxisIndex:0,animationEasing:"linear",label:{margin:4,show:!0,position:"left",color:"#000",fontSize:11},emphasis:{label:{show:!0}}}}),d=c;e.exports=d},ZCDV:function(e,t,n){"use strict";t.__esModule=!0,t.removeResizeListener=t.addResizeListener=void 0;var i,r=n("/ItL"),a=(i=r)&&i.__esModule?i:{default:i};var o="undefined"==typeof window,s=function(e){var t=e,n=Array.isArray(t),i=0;for(t=n?t:t[Symbol.iterator]();;){var r;if(n){if(i>=t.length)break;r=t[i++]}else{if((i=t.next()).done)break;r=i.value}var a=r.target.__resizeListeners__||[];a.length&&a.forEach(function(e){e()})}};t.addResizeListener=function(e,t){o||(e.__resizeListeners__||(e.__resizeListeners__=[],e.__ro__=new a.default(s),e.__ro__.observe(e)),e.__resizeListeners__.push(t))},t.removeResizeListener=function(e,t){e&&e.__resizeListeners__&&(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||e.__ro__.disconnect())}},ZVlJ:function(e,t){e.exports={}},ZZvz:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=i.each,a=i.filter,o=i.map,s=i.isArray,l=i.indexOf,u=i.isObject,c=i.isString,d=i.createHashMap,h=i.assert,f=i.clone,p=i.merge,m=i.extend,g=i.mixin,v=n("vqvJ"),y=n("xWTI"),b=n("6/6c"),_=n("gQJx"),x=n("7T7k"),w=n("InbI").resetSourceDefaulter,S="\0_ec_inner",C=y.extend({init:function(e,t,n,i){n=n||{},this.option=null,this._theme=new y(n),this._optionManager=i},setOption:function(e,t){h(!(S in e),"please use chart.getOption()"),this._optionManager.setOption(e,t),this.resetOption(null)},resetOption:function(e){var t=!1,n=this._optionManager;if(!e||"recreate"===e){var i=n.mountOption("recreate"===e);this.option&&"recreate"!==e?(this.restoreData(),this.mergeOption(i)):function(e){e=e,this.option={},this.option[S]=1,this._componentsMap=d({series:[]}),this._seriesIndices,this._seriesIndicesMap,t=e,n=this._theme.option,i=t.color&&!t.colorLayer,r(n,function(e,n){"colorLayer"===n&&i||b.hasClass(n)||("object"==typeof e?t[n]=t[n]?p(t[n],e,!1):f(e):null==t[n]&&(t[n]=e))}),p(e,_,!1),this.mergeOption(e);var t,n,i}.call(this,i),t=!0}if("timeline"!==e&&"media"!==e||this.restoreData(),!e||"recreate"===e||"timeline"===e){var a=n.getTimelineOption(this);a&&(this.mergeOption(a),t=!0)}if(!e||"recreate"===e||"media"===e){var o=n.getMediaOption(this,this._api);o.length&&r(o,function(e){this.mergeOption(e,t=!0)},this)}return t},mergeOption:function(e){var t=this.option,n=this._componentsMap,i=[];w(this),r(e,function(e,n){null!=e&&(b.hasClass(n)?n&&i.push(n):t[n]=null==t[n]?f(e):p(t[n],e,!0))}),b.topologicalTravel(i,b.getAllClassMainTypes(),function(i,a){var o=v.normalizeToArray(e[i]),l=v.mappingToExists(n.get(i),o);v.makeIdAndName(l),r(l,function(e,t){var n=e.option;u(n)&&(e.keyInfo.mainType=i,e.keyInfo.subType=function(e,t,n){return t.type?t.type:n?n.subType:b.determineSubType(e,t)}(i,n,e.exist))});var c=function(e,t){s(t)||(t=t?[t]:[]);var n={};return r(t,function(t){n[t]=(e.get(t)||[]).slice()}),n}(n,a);t[i]=[],n.set(i,[]),r(l,function(e,r){var a=e.exist,o=e.option;if(h(u(o)||a,"Empty component definition"),o){var s=b.getClass(i,e.keyInfo.subType,!0);if(a&&a instanceof s)a.name=e.keyInfo.name,a.mergeOption(o,this),a.optionUpdated(o,!1);else{var l=m({dependentModels:c,componentIndex:r},e.keyInfo);a=new s(o,this,this,l),m(a,l),a.init(o,this,this,l),a.optionUpdated(null,!0)}}else a.mergeOption({},this),a.optionUpdated({},!1);n.get(i)[r]=a,t[i][r]=a.option},this),"series"===i&&M(this,n.get("series"))},this),this._seriesIndicesMap=d(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var e=f(this.option);return r(e,function(t,n){if(b.hasClass(n)){for(var i=(t=v.normalizeToArray(t)).length-1;i>=0;i--)v.isIdInner(t[i])&&t.splice(i,1);e[n]=t}}),delete e[S],e},getTheme:function(){return this._theme},getComponent:function(e,t){var n=this._componentsMap.get(e);if(n)return n[t||0]},queryComponents:function(e){var t=e.mainType;if(!t)return[];var n,i=e.index,r=e.id,u=e.name,c=this._componentsMap.get(t);if(!c||!c.length)return[];if(null!=i)s(i)||(i=[i]),n=a(o(i,function(e){return c[e]}),function(e){return!!e});else if(null!=r){var d=s(r);n=a(c,function(e){return d&&l(r,e.id)>=0||!d&&e.id===r})}else if(null!=u){var h=s(u);n=a(c,function(e){return h&&l(u,e.name)>=0||!h&&e.name===u})}else n=c.slice();return k(n,e)},findComponents:function(e){var t,n,i,r,o,s=e.query,l=e.mainType,u=(n=l+"Index",i=l+"Id",r=l+"Name",!(t=s)||null==t[n]&&null==t[i]&&null==t[r]?null:{mainType:l,index:t[n],id:t[i],name:t[r]}),c=u?this.queryComponents(u):this._componentsMap.get(l);return o=k(c,e),e.filter?a(o,e.filter):o},eachComponent:function(e,t,n){var i=this._componentsMap;if("function"==typeof e)n=t,t=e,i.each(function(e,i){r(e,function(e,r){t.call(n,i,e,r)})});else if(c(e))r(i.get(e),t,n);else if(u(e)){var a=this.findComponents(e);r(a,t,n)}},getSeriesByName:function(e){var t=this._componentsMap.get("series");return a(t,function(t){return t.name===e})},getSeriesByIndex:function(e){return this._componentsMap.get("series")[e]},getSeriesByType:function(e){var t=this._componentsMap.get("series");return a(t,function(t){return t.subType===e})},getSeries:function(){return this._componentsMap.get("series").slice()},getSeriesCount:function(){return this._componentsMap.get("series").length},eachSeries:function(e,t){r(this._seriesIndices,function(n){var i=this._componentsMap.get("series")[n];e.call(t,i,n)},this)},eachRawSeries:function(e,t){r(this._componentsMap.get("series"),e,t)},eachSeriesByType:function(e,t,n){r(this._seriesIndices,function(i){var r=this._componentsMap.get("series")[i];r.subType===e&&t.call(n,r,i)},this)},eachRawSeriesByType:function(e,t,n){return r(this.getSeriesByType(e),t,n)},isSeriesFiltered:function(e){return null==this._seriesIndicesMap.get(e.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(e,t){M(this,a(this._componentsMap.get("series"),e,t))},restoreData:function(e){var t=this._componentsMap;M(this,t.get("series"));var n=[];t.each(function(e,t){n.push(t)}),b.topologicalTravel(n,b.getAllClassMainTypes(),function(n,i){r(t.get(n),function(t){("series"!==n||!function(e,t){if(t){var n=t.seiresIndex,i=t.seriesId,r=t.seriesName;return null!=n&&e.componentIndex!==n||null!=i&&e.id!==i||null!=r&&e.name!==r}}(t,e))&&t.restoreData()})})}});function M(e,t){e._seriesIndicesMap=d(e._seriesIndices=o(t,function(e){return e.componentIndex})||[])}function k(e,t){return t.hasOwnProperty("subType")?a(e,function(e){return e.subType===t.subType}):e}g(C,x);var T=C;e.exports=T},ZgaJ:function(e,t,n){var i=n("GKMz"),r=(i.assert,i.isArray);n("KJ1c").__DEV__;function a(e){e=e||{},this._reset=e.reset,this._plan=e.plan,this._count=e.count,this._onDirty=e.onDirty,this._dirty=!0,this.context}var o=a.prototype;o.perform=function(e){var t,n=this._upstream,i=e&&e.skip;if(this._dirty&&n){var a=this.context;a.data=a.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(t=this._plan(this.context));var o,s=h(this._modBy),u=this._modDataCount||0,c=h(e&&e.modBy),d=e&&e.modDataCount||0;function h(e){return!(e>=1)&&(e=1),e}s===c&&u===d||(t="reset"),(this._dirty||"reset"===t)&&(this._dirty=!1,o=function(e,t){var n,i;e._dueIndex=e._outputDueEnd=e._dueEnd=0,e._settedOutputEnd=null,!t&&e._reset&&((n=e._reset(e.context))&&n.progress&&(i=n.forceFirstProgress,n=n.progress),r(n)&&!n.length&&(n=null));e._progress=n,e._modBy=e._modDataCount=null;var a=e._downstream;return a&&a.dirty(),i}(this,i)),this._modBy=c,this._modDataCount=d;var f=e&&e.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,m=Math.min(null!=f?this._dueIndex+f:1/0,this._dueEnd);if(!i&&(o||p<m)){var g=this._progress;if(r(g))for(var v=0;v<g.length;v++)l(this,g[v],p,m,c,d);else l(this,g,p,m,c,d)}this._dueIndex=m;var y=null!=this._settedOutputEnd?this._settedOutputEnd:m;this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()};var s=function(){var e,t,n,i,r,a={reset:function(l,u,c,d){t=l,e=u,n=c,i=d,r=Math.ceil(i/n),a.next=n>1&&i>0?s:o}};return a;function o(){return t<e?t++:null}function s(){var a=t%r*n+Math.ceil(t/r),o=t>=e?null:a<i?a:t;return t++,o}}();function l(e,t,n,i,r,a){s.reset(n,i,r,a),e._callingProgress=t,e._callingProgress({start:n,end:i,count:i-n,next:s.next},e.context)}o.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},o.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},o.pipe=function(e){(this._downstream!==e||this._dirty)&&(this._downstream=e,e._upstream=this,e.dirty())},o.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},o.getUpstream=function(){return this._upstream},o.getDownstream=function(){return this._downstream},o.setOutputEnd=function(e){this._outputDueEnd=this._settedOutputEnd=e},t.createTask=function(e){return new a(e)}},Zjj5:function(e,t,n){var i={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function r(e){return(e=Math.round(e))<0?0:e>255?255:e}function a(e){return e<0?0:e>1?1:e}function o(e){return e.length&&"%"===e.charAt(e.length-1)?r(parseFloat(e)/100*255):r(parseInt(e,10))}function s(e){return e.length&&"%"===e.charAt(e.length-1)?a(parseFloat(e)/100):a(parseFloat(e))}function l(e,t,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}function u(e,t,n){return e+(t-e)*n}function c(e,t,n,i,r){return e[0]=t,e[1]=n,e[2]=i,e[3]=r,e}function d(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var h=new(n("3sZc"))(20),f=null;function p(e,t){f&&d(f,t),f=h.put(e,f||t.slice())}function m(e,t){if(e){t=t||[];var n=h.get(e);if(n)return d(t,n);var r,a=(e+="").replace(/ /g,"").toLowerCase();if(a in i)return d(t,i[a]),p(e,t),t;if("#"===a.charAt(0))return 4===a.length?(r=parseInt(a.substr(1),16))>=0&&r<=4095?(c(t,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,1),p(e,t),t):void c(t,0,0,0,1):7===a.length?(r=parseInt(a.substr(1),16))>=0&&r<=16777215?(c(t,(16711680&r)>>16,(65280&r)>>8,255&r,1),p(e,t),t):void c(t,0,0,0,1):void 0;var l=a.indexOf("("),u=a.indexOf(")");if(-1!==l&&u+1===a.length){var f=a.substr(0,l),m=a.substr(l+1,u-(l+1)).split(","),v=1;switch(f){case"rgba":if(4!==m.length)return void c(t,0,0,0,1);v=s(m.pop());case"rgb":return 3!==m.length?void c(t,0,0,0,1):(c(t,o(m[0]),o(m[1]),o(m[2]),v),p(e,t),t);case"hsla":return 4!==m.length?void c(t,0,0,0,1):(m[3]=s(m[3]),g(m,t),p(e,t),t);case"hsl":return 3!==m.length?void c(t,0,0,0,1):(g(m,t),p(e,t),t);default:return}}c(t,0,0,0,1)}}function g(e,t){var n=(parseFloat(e[0])%360+360)%360/360,i=s(e[1]),a=s(e[2]),o=a<=.5?a*(i+1):a+i-a*i,u=2*a-o;return c(t=t||[],r(255*l(u,o,n+1/3)),r(255*l(u,o,n)),r(255*l(u,o,n-1/3)),1),4===e.length&&(t[3]=e[3]),t}function v(e,t,n){if(t&&t.length&&e>=0&&e<=1){n=n||[];var i=e*(t.length-1),o=Math.floor(i),s=Math.ceil(i),l=t[o],c=t[s],d=i-o;return n[0]=r(u(l[0],c[0],d)),n[1]=r(u(l[1],c[1],d)),n[2]=r(u(l[2],c[2],d)),n[3]=a(u(l[3],c[3],d)),n}}var y=v;function b(e,t,n){if(t&&t.length&&e>=0&&e<=1){var i=e*(t.length-1),o=Math.floor(i),s=Math.ceil(i),l=m(t[o]),c=m(t[s]),d=i-o,h=x([r(u(l[0],c[0],d)),r(u(l[1],c[1],d)),r(u(l[2],c[2],d)),a(u(l[3],c[3],d))],"rgba");return n?{color:h,leftIndex:o,rightIndex:s,value:i}:h}}var _=b;function x(e,t){if(e&&e.length){var n=e[0]+","+e[1]+","+e[2];return"rgba"!==t&&"hsva"!==t&&"hsla"!==t||(n+=","+e[3]),t+"("+n+")"}}t.parse=m,t.lift=function(e,t){var n=m(e);if(n){for(var i=0;i<3;i++)n[i]=t<0?n[i]*(1-t)|0:(255-n[i])*t+n[i]|0,n[i]>255?n[i]=255:e[i]<0&&(n[i]=0);return x(n,4===n.length?"rgba":"rgb")}},t.toHex=function(e){var t=m(e);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)},t.fastLerp=v,t.fastMapToColor=y,t.lerp=b,t.mapToColor=_,t.modifyHSL=function(e,t,n,i){if(e=m(e))return e=function(e){if(e){var t,n,i=e[0]/255,r=e[1]/255,a=e[2]/255,o=Math.min(i,r,a),s=Math.max(i,r,a),l=s-o,u=(s+o)/2;if(0===l)t=0,n=0;else{n=u<.5?l/(s+o):l/(2-s-o);var c=((s-i)/6+l/2)/l,d=((s-r)/6+l/2)/l,h=((s-a)/6+l/2)/l;i===s?t=h-d:r===s?t=1/3+c-h:a===s&&(t=2/3+d-c),t<0&&(t+=1),t>1&&(t-=1)}var f=[360*t,n,u];return null!=e[3]&&f.push(e[3]),f}}(e),null!=t&&(e[0]=(r=t,(r=Math.round(r))<0?0:r>360?360:r)),null!=n&&(e[1]=s(n)),null!=i&&(e[2]=s(i)),x(g(e),"rgba");var r},t.modifyAlpha=function(e,t){if((e=m(e))&&null!=t)return e[3]=a(t),x(e,"rgba")},t.stringify=x},ZlXf:function(e,t,n){var i=n("l8Rx"),r={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var n=e.getData(),r=(e.visualColorAccessPath||"itemStyle.color").split("."),a=e.get(r)||e.getColorFromPalette(e.name,null,t.getSeriesCount());if(n.setVisual("color",a),!t.isSeriesFiltered(e)){"function"!=typeof a||a instanceof i||n.each(function(t){n.setItemVisual(t,"color",a(e.getDataParams(t)))});return{dataEach:n.hasItemOption?function(e,t){var n=e.getItemModel(t).get(r,!0);null!=n&&e.setItemVisual(t,"color",n)}:null}}}};e.exports=r},a16e:function(e,t,n){var i=n("GKMz"),r=n("gFO1"),a=n("xPAV"),o=r.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}});i.mixin(o,a);var s=o;e.exports=s},a3Yh:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n("liLe"),a=(i=r)&&i.__esModule?i:{default:i};t.default=function(e,t,n){return t in e?(0,a.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},aA9S:function(e,t,n){e.exports={default:n("vWcR"),__esModule:!0}},aEMU:function(e,t,n){n("/MtV").registerAction({type:"selectDataRange",event:"dataRangeSelected",update:"update"},function(e,t){t.eachComponent({mainType:"visualMap",query:e},function(t){t.setSelected(e.selected)})})},aO2o:function(e,t,n){var i=n("/MtV");n("dP6I"),n("+jdH");var r=n("kuK2"),a=n("VErb"),o=n("3t39");n("5zae"),i.registerVisual(r("line","circle","line")),i.registerLayout(a("line")),i.registerProcessor(i.PRIORITY.PROCESSOR.STATISTIC,o("line"))},aSSy:function(e,t,n){var i=n("GKMz"),r=i.each,a=i.createHashMap,o=(i.assert,n("KJ1c").__DEV__,a(["tooltip","label","itemName","itemId","seriesName"]));t.OTHER_DIMENSIONS=o,t.summarizeDimensions=function(e){var t={},n=t.encode={},i=a(),s=[],l=[];r(e.dimensions,function(t){var r,a=e.getDimensionInfo(t),u=a.coordDim;if(u){var c=n[u];n.hasOwnProperty(u)||(c=n[u]=[]),c[a.coordDimIndex]=t,a.isExtraCoord||(i.set(u,1),"ordinal"!==(r=a.type)&&"time"!==r&&(s[0]=t)),a.defaultTooltip&&l.push(t)}o.each(function(e,t){var i=n[t];n.hasOwnProperty(t)||(i=n[t]=[]);var r=a.otherDims[t];null!=r&&!1!==r&&(i[r]=a.name)})});var u=[],c={};i.each(function(e,t){var i=n[t];c[t]=i[0],u=u.concat(i)}),t.dataDimsOnCoord=u,t.encodeFirstDimNotExtra=c;var d=n.label;d&&d.length&&(s=d.slice());var h=n.tooltip;return h&&h.length?l=h.slice():l.length||(l=s.slice()),n.defaultedLabel=s,n.defaultedTooltip=l,t},t.getDimensionTypeByAxis=function(e){return"category"===e?"ordinal":"time"===e?"time":"float"}},aVg8:function(e,t,n){var i=n("GKMz"),r=n("GQ8k"),a=n("Zjj5"),o=n("g0yf"),s=n("luYz"),l=n("Q9e6"),u=n("CH74"),c=n("ihWO");t.Image=c;var d=n("gIPg");t.Group=d;var h=n("gt1/");t.Text=h;var f=n("yayn");t.Circle=f;var p=n("qZuq");t.Sector=p;var m=n("wO6C");t.Ring=m;var g=n("sv6O");t.Polygon=g;var v=n("r4mD");t.Polyline=v;var y=n("yXz6");t.Rect=y;var b=n("TPUF");t.Line=b;var _=n("fGNZ");t.BezierCurve=_;var x=n("2Qgk");t.Arc=x;var w=n("yEOq");t.CompoundPath=w;var S=n("5ON6");t.LinearGradient=S;var C=n("ostD");t.RadialGradient=C;var M=n("OGtO");t.BoundingRect=M;var k=n("pgBU");t.IncrementalDisplayable=k;var T=Math.round,A=Math.max,I=Math.min,E={};function D(e,t,n,i){var a=r.createFromString(e,t),o=a.getBoundingRect();return n&&("center"===i&&(n=O(n,o)),L(a,n)),a}function O(e,t){var n,i=t.width/t.height,r=e.height*i;return n=r<=e.width?e.height:(r=e.width)/i,{x:e.x+e.width/2-r/2,y:e.y+e.height/2-n/2,width:r,height:n}}var P=r.mergePath;function L(e,t){if(e.applyTransform){var n=e.getBoundingRect().calculateTransform(t);e.applyTransform(n)}}function R(e,t,n){var i=T(2*e);return(i+T(t))%2==0?i/2:(i+(n?1:-1))/2}function N(e){return null!=e&&"none"!=e}function B(e){return"string"==typeof e?a.lift(e,-.1):e}function F(e){if(e.__hoverStlDirty){var t=e.style.stroke,n=e.style.fill,i=e.__hoverStl;i.fill=i.fill||(N(n)?B(n):null),i.stroke=i.stroke||(N(t)?B(t):null);var r={};for(var a in i)null!=i[a]&&(r[a]=e.style[a]);e.__normalStl=r,e.__hoverStlDirty=!1}}function z(e){if(!e.__isHover){if(F(e),e.useHoverLayer)e.__zr&&e.__zr.addHover(e,e.__hoverStl);else{var t=e.style,n=t.insideRollbackOpt;n&&function(e){var t=e.insideRollback;t&&(e.textFill=t.textFill,e.textStroke=t.textStroke,e.textStrokeWidth=t.textStrokeWidth)}(t),t.extendFrom(e.__hoverStl),n&&(J(t,t.insideOriginalTextPosition,n),null==t.textFill&&(t.textFill=n.autoColor)),e.dirty(!1),e.z2+=1}e.__isHover=!0}}function V(e){if(e.__isHover){var t=e.__normalStl;e.useHoverLayer?e.__zr&&e.__zr.removeHover(e):(t&&e.setStyle(t),e.z2-=1),e.__isHover=!1}}function $(e){"group"===e.type?e.traverse(function(e){"group"!==e.type&&z(e)}):z(e)}function G(e){"group"===e.type?e.traverse(function(e){"group"!==e.type&&V(e)}):V(e)}function j(e,t){e.__hoverStl=e.hoverStyle||t||{},e.__hoverStlDirty=!0,e.__isHover&&F(e)}function H(e){this.__hoverSilentOnTouch&&e.zrByTouch||!this.__isEmphasis&&$(this)}function W(e){this.__hoverSilentOnTouch&&e.zrByTouch||!this.__isEmphasis&&G(this)}function U(){this.__isEmphasis=!0,$(this)}function K(){this.__isEmphasis=!1,G(this)}function q(e,t,n,r,a){return Y(e,t,r,a),n&&i.extend(e,n),e.host&&e.host.dirty&&e.host.dirty(!1),e}function Y(e,t,n,r){if((n=n||E).isRectText){var a=t.getShallow("position")||(r?null:"inside");"outside"===a&&(a="top"),e.textPosition=a,e.textOffset=t.getShallow("offset");var o=t.getShallow("rotate");null!=o&&(o*=Math.PI/180),e.textRotation=o,e.textDistance=i.retrieve2(t.getShallow("distance"),r?null:5)}var s,l=t.ecModel,u=l&&l.option.textStyle,c=function(e){var t;for(;e&&e!==e.ecModel;){var n=(e.option||E).rich;if(n)for(var i in t=t||{},n)n.hasOwnProperty(i)&&(t[i]=1);e=e.parentModel}return t}(t);if(c)for(var d in s={},c)if(c.hasOwnProperty(d)){var h=t.getModel(["rich",d]);Z(s[d]={},h,u,n,r)}return e.rich=s,Z(e,t,u,n,r,!0),n.forceRich&&!n.textStyle&&(n.textStyle={}),e}function Z(e,t,n,r,a,o){if(n=!a&&n||E,e.textFill=X(t.getShallow("color"),r)||n.color,e.textStroke=X(t.getShallow("textBorderColor"),r)||n.textBorderColor,e.textStrokeWidth=i.retrieve2(t.getShallow("textBorderWidth"),n.textBorderWidth),!a){if(o){var s=e.textPosition;e.insideRollback=J(e,s,r),e.insideOriginalTextPosition=s,e.insideRollbackOpt=r}null==e.textFill&&(e.textFill=r.autoColor)}e.fontStyle=t.getShallow("fontStyle")||n.fontStyle,e.fontWeight=t.getShallow("fontWeight")||n.fontWeight,e.fontSize=t.getShallow("fontSize")||n.fontSize,e.fontFamily=t.getShallow("fontFamily")||n.fontFamily,e.textAlign=t.getShallow("align"),e.textVerticalAlign=t.getShallow("verticalAlign")||t.getShallow("baseline"),e.textLineHeight=t.getShallow("lineHeight"),e.textWidth=t.getShallow("width"),e.textHeight=t.getShallow("height"),e.textTag=t.getShallow("tag"),o&&r.disableBox||(e.textBackgroundColor=X(t.getShallow("backgroundColor"),r),e.textPadding=t.getShallow("padding"),e.textBorderColor=X(t.getShallow("borderColor"),r),e.textBorderWidth=t.getShallow("borderWidth"),e.textBorderRadius=t.getShallow("borderRadius"),e.textBoxShadowColor=t.getShallow("shadowColor"),e.textBoxShadowBlur=t.getShallow("shadowBlur"),e.textBoxShadowOffsetX=t.getShallow("shadowOffsetX"),e.textBoxShadowOffsetY=t.getShallow("shadowOffsetY")),e.textShadowColor=t.getShallow("textShadowColor")||n.textShadowColor,e.textShadowBlur=t.getShallow("textShadowBlur")||n.textShadowBlur,e.textShadowOffsetX=t.getShallow("textShadowOffsetX")||n.textShadowOffsetX,e.textShadowOffsetY=t.getShallow("textShadowOffsetY")||n.textShadowOffsetY}function X(e,t){return"auto"!==e?e:t&&t.autoColor?t.autoColor:null}function J(e,t,n){var i,r=n.useInsideStyle;return null==e.textFill&&!1!==r&&(!0===r||n.isRectText&&t&&"string"==typeof t&&t.indexOf("inside")>=0)&&(i={textFill:null,textStroke:e.textStroke,textStrokeWidth:e.textStrokeWidth},e.textFill="#fff",null==e.textStroke&&(e.textStroke=n.autoColor,null==e.textStrokeWidth&&(e.textStrokeWidth=2))),i}function Q(e,t,n,i,r,a){if("function"==typeof r&&(a=r,r=null),i&&i.isAnimationEnabled()){var o=e?"Update":"",s=i.getShallow("animationDuration"+o),l=i.getShallow("animationEasing"+o),u=i.getShallow("animationDelay"+o);"function"==typeof u&&(u=u(r,i.getAnimationDelayParams?i.getAnimationDelayParams(t,r):null)),"function"==typeof s&&(s=s(r)),s>0?t.animateTo(n,s,u||0,l,a,!!a):(t.stopAnimation(),t.attr(n),a&&a())}else t.stopAnimation(),t.attr(n),a&&a()}function ee(e,t,n,i,r){Q(!0,e,t,n,i,r)}function te(e,t,n){return t&&!i.isArrayLike(t)&&(t=u.getLocalTransform(t)),n&&(t=o.invert([],t)),s.applyTransform([],e,t)}t.extendShape=function(e){return l.extend(e)},t.extendPath=function(e,t){return r.extendFromString(e,t)},t.makePath=D,t.makeImage=function(e,t,n){var i=new c({style:{image:e,x:t.x,y:t.y,width:t.width,height:t.height},onload:function(e){if("center"===n){var r={width:e.width,height:e.height};i.setStyle(O(t,r))}}});return i},t.mergePath=P,t.resizePath=L,t.subPixelOptimizeLine=function(e){var t=e.shape,n=e.style.lineWidth;return T(2*t.x1)===T(2*t.x2)&&(t.x1=t.x2=R(t.x1,n,!0)),T(2*t.y1)===T(2*t.y2)&&(t.y1=t.y2=R(t.y1,n,!0)),e},t.subPixelOptimizeRect=function(e){var t=e.shape,n=e.style.lineWidth,i=t.x,r=t.y,a=t.width,o=t.height;return t.x=R(t.x,n,!0),t.y=R(t.y,n,!0),t.width=Math.max(R(i+a,n,!1)-t.x,0===a?0:1),t.height=Math.max(R(r+o,n,!1)-t.y,0===o?0:1),e},t.subPixelOptimize=R,t.setHoverStyle=function(e,t,n){e.__hoverSilentOnTouch=n&&n.hoverSilentOnTouch,"group"===e.type?e.traverse(function(e){"group"!==e.type&&j(e,t)}):j(e,t),e.on("mouseover",H).on("mouseout",W),e.on("emphasis",U).on("normal",K)},t.setLabelStyle=function(e,t,n,r,a,o,s){var l,u=(a=a||E).labelFetcher,c=a.labelDataIndex,d=a.labelDimIndex,h=n.getShallow("show"),f=r.getShallow("show");(h||f)&&(u&&(l=u.getFormattedLabel(c,"normal",null,d)),null==l&&(l=i.isFunction(a.defaultText)?a.defaultText(c,a):a.defaultText));var p=h?l:null,m=f?i.retrieve2(u?u.getFormattedLabel(c,"emphasis",null,d):null,l):null;null==p&&null==m||(q(e,n,o,a),q(t,r,s,a,!0)),e.text=p,t.text=m},t.setTextStyle=q,t.setText=function(e,t,n){var i,r={isRectText:!0};!1===n?i=!0:r.autoColor=n,Y(e,t,r,i),e.host&&e.host.dirty&&e.host.dirty(!1)},t.getFont=function(e,t){var n=t||t.getModel("textStyle");return i.trim([e.fontStyle||n&&n.getShallow("fontStyle")||"",e.fontWeight||n&&n.getShallow("fontWeight")||"",(e.fontSize||n&&n.getShallow("fontSize")||12)+"px",e.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "))},t.updateProps=ee,t.initProps=function(e,t,n,i,r){Q(!1,e,t,n,i,r)},t.getTransform=function(e,t){for(var n=o.identity([]);e&&e!==t;)o.mul(n,e.getLocalTransform(),n),e=e.parent;return n},t.applyTransform=te,t.transformDirection=function(e,t,n){var i=0===t[4]||0===t[5]||0===t[0]?1:Math.abs(2*t[4]/t[0]),r=0===t[4]||0===t[5]||0===t[2]?1:Math.abs(2*t[4]/t[2]),a=["left"===e?-i:"right"===e?i:0,"top"===e?-r:"bottom"===e?r:0];return a=te(a,t,n),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"},t.groupTransition=function(e,t,n,r){if(e&&t){var a,o=(a={},e.traverse(function(e){!e.isGroup&&e.anid&&(a[e.anid]=e)}),a);t.traverse(function(e){if(!e.isGroup&&e.anid){var t=o[e.anid];if(t){var i=l(e);e.attr(l(t)),ee(e,i,n,e.dataIndex)}}})}function l(e){var t={position:s.clone(e.position),rotation:e.rotation};return e.shape&&(t.shape=i.extend({},e.shape)),t}},t.clipPointsByRect=function(e,t){return i.map(e,function(e){var n=e[0];n=A(n,t.x),n=I(n,t.x+t.width);var i=e[1];return i=A(i,t.y),[n,i=I(i,t.y+t.height)]})},t.clipRectByRect=function(e,t){var n=A(e.x,t.x),i=I(e.x+e.width,t.x+t.width),r=A(e.y,t.y),a=I(e.y+e.height,t.y+t.height);if(i>=n&&a>=r)return{x:n,y:r,width:i-n,height:a-r}},t.createIcon=function(e,t,n){var r=(t=i.extend({rectHover:!0},t)).style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},e)return 0===e.indexOf("image://")?(r.image=e.slice(8),i.defaults(r,n),new c(t)):D(e.replace("path://",""),t,n,"center")}},aZnC:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("5gvs"),o=n("Nrx1"),s=n("7eLB"),l=o.toolbox.dataView,u=new Array(60).join("-"),c="\t";function d(e){var t,n,i=function(e){var t={},n=[],i=[];return e.eachRawSeries(function(e){var r=e.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(e);else{var a=r.getBaseAxis();if("category"===a.type){var o=a.dim+"_"+a.index;t[o]||(t[o]={categoryAxis:a,valueAxis:r.getOtherAxis(a),series:[]},i.push({axisDim:a.dim,axisIndex:a.index})),t[o].series.push(e)}else n.push(e)}}),{seriesGroupByCategoryAxis:t,other:n,meta:i}}(e);return{value:r.filter([(t=i.seriesGroupByCategoryAxis,n=[],r.each(t,function(e,t){var i=e.categoryAxis,a=e.valueAxis.dim,o=[" "].concat(r.map(e.series,function(e){return e.name})),s=[i.model.getCategories()];r.each(e.series,function(e){s.push(e.getRawData().mapArray(a,function(e){return e}))});for(var l=[o.join(c)],u=0;u<s[0].length;u++){for(var d=[],h=0;h<s.length;h++)d.push(s[h][u]);l.push(d.join(c))}n.push(l.join("\n"))}),n.join("\n\n"+u+"\n\n")),function(e){return r.map(e,function(e){var t=e.getRawData(),n=[e.name],i=[];return t.each(t.dimensions,function(){for(var e=arguments.length,r=arguments[e-1],a=t.getName(r),o=0;o<e-1;o++)i[o]=arguments[o];n.push((a?a+c:"")+i.join(c))}),n.join("\n")}).join("\n\n"+u+"\n\n")}(i.other)],function(e){return e.replace(/[\n\t\s]/g,"")}).join("\n\n"+u+"\n\n"),meta:i.meta}}function h(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var f=new RegExp("["+c+"]+","g");function p(e,t){var n=e.split(new RegExp("\n*"+u+"\n*","g")),i={series:[]};return r.each(n,function(e,n){if(function(e){if(e.slice(0,e.indexOf("\n")).indexOf(c)>=0)return!0}(e)){var a=function(e){for(var t=e.split(/\n+/g),n=h(t.shift()).split(f),i=[],a=r.map(n,function(e){return{name:e,data:[]}}),o=0;o<t.length;o++){var s=h(t[o]).split(f);i.push(s.shift());for(var l=0;l<s.length;l++)a[l]&&(a[l].data[o]=s[l])}return{series:a,categories:i}}(e),o=t[n],s=o.axisDim+"Axis";o&&(i[s]=i[s]||[],i[s][o.axisIndex]={data:a.categories},i.series=i.series.concat(a.series))}else{a=function(e){for(var t=e.split(/\n+/g),n=h(t.shift()),i=[],r=0;r<t.length;r++){var a,o=h(t[r]).split(f),s="",l=!1;isNaN(o[0])?(l=!0,s=o[0],o=o.slice(1),i[r]={name:s,value:[]},a=i[r].value):a=i[r]=[];for(var u=0;u<o.length;u++)a.push(+o[u]);1===a.length&&(l?i[r].value=a[0]:i[r]=a[0])}return{name:n,data:i}}(e);i.series.push(a)}}),i}function m(e){this._dom=null,this.model=e}m.defaultOption={show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:r.clone(l.title),lang:r.clone(l.lang),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"},m.prototype.onclick=function(e,t){var n=t.getDom(),i=this.model;this._dom&&n.removeChild(this._dom);var o=document.createElement("div");o.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",o.style.backgroundColor=i.get("backgroundColor")||"#fff";var s=document.createElement("h4"),l=i.get("lang")||[];s.innerHTML=l[0]||i.get("title"),s.style.cssText="margin: 10px 20px;",s.style.color=i.get("textColor");var u=document.createElement("div"),h=document.createElement("textarea");u.style.cssText="display:block;width:100%;overflow:auto;";var f=i.get("optionToContent"),m=i.get("contentToOption"),g=d(e);if("function"==typeof f){var v=f(t.getOption());"string"==typeof v?u.innerHTML=v:r.isDom(v)&&u.appendChild(v)}else u.appendChild(h),h.readOnly=i.get("readOnly"),h.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",h.style.color=i.get("textColor"),h.style.borderColor=i.get("textareaBorderColor"),h.style.backgroundColor=i.get("textareaColor"),h.value=g.value;var y=g.meta,b=document.createElement("div");b.style.cssText="position:absolute;bottom:0;left:0;right:0;";var _="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",x=document.createElement("div"),w=document.createElement("div");_+=";background-color:"+i.get("buttonColor"),_+=";color:"+i.get("buttonTextColor");var S=this;function C(){n.removeChild(o),S._dom=null}a.addEventListener(x,"click",C),a.addEventListener(w,"click",function(){var e;try{e="function"==typeof m?m(u,t.getOption()):p(h.value,y)}catch(e){throw C(),new Error("Data view format error "+e)}e&&t.dispatchAction({type:"changeDataView",newOption:e}),C()}),x.innerHTML=l[1],w.innerHTML=l[2],w.style.cssText=_,x.style.cssText=_,!i.get("readOnly")&&b.appendChild(w),b.appendChild(x),a.addEventListener(h,"keydown",function(e){if(9===(e.keyCode||e.which)){var t=this.value,n=this.selectionStart,i=this.selectionEnd;this.value=t.substring(0,n)+c+t.substring(i),this.selectionStart=this.selectionEnd=n+1,a.stop(e)}}),o.appendChild(s),o.appendChild(u),o.appendChild(b),u.style.height=n.clientHeight-80+"px",n.appendChild(o),this._dom=o},m.prototype.remove=function(e,t){this._dom&&t.getDom().removeChild(this._dom)},m.prototype.dispose=function(e,t){this.remove(e,t)},s.register("dataView",m),i.registerAction({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},function(e,t){var n=[];r.each(e.newOption.series,function(e){var i=t.getSeriesByName(e.name)[0];if(i){var a=i.get("data");n.push({name:e.name,data:function(e,t){return r.map(e,function(e,n){var i=t&&t[n];return r.isObject(i)&&!r.isArray(i)?(r.isObject(e)&&!r.isArray(e)&&(e=e.value),r.defaults({value:e},i)):e})}(e.data,a)})}else n.push(r.extend({type:"scatter"},e))}),t.mergeOption(r.defaults({series:n},e.newOption))});var g=m;e.exports=g},aZqG:function(e,t,n){n("oRvx"),n("AAaq")},abCA:function(e,t,n){var i=n("GKMz"),r=1e-4;var a=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function o(e){return Math.floor(Math.log(e)/Math.LN10)}t.linearMap=function(e,t,n,i){var r=t[1]-t[0],a=n[1]-n[0];if(0===r)return 0===a?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(e<=t[0])return n[0];if(e>=t[1])return n[1]}else{if(e>=t[0])return n[0];if(e<=t[1])return n[1]}else{if(e===t[0])return n[0];if(e===t[1])return n[1]}return(e-t[0])/r*a+n[0]},t.parsePercent=function(e,t){switch(e){case"center":case"middle":e="50%";break;case"left":case"top":e="0%";break;case"right":case"bottom":e="100%"}return"string"==typeof e?(n=e,n.replace(/^\s+/,"").replace(/\s+$/,"")).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):null==e?NaN:+e;var n},t.round=function(e,t,n){return null==t&&(t=10),t=Math.min(Math.max(0,t),20),e=(+e).toFixed(t),n?e:+e},t.asc=function(e){return e.sort(function(e,t){return e-t}),e},t.getPrecision=function(e){if(e=+e,isNaN(e))return 0;for(var t=1,n=0;Math.round(e*t)/t!==e;)t*=10,n++;return n},t.getPrecisionSafe=function(e){var t=e.toString(),n=t.indexOf("e");if(n>0){var i=+t.slice(n+1);return i<0?-i:0}var r=t.indexOf(".");return r<0?0:t.length-1-r},t.getPixelPrecision=function(e,t){var n=Math.log,i=Math.LN10,r=Math.floor(n(e[1]-e[0])/i),a=Math.round(n(Math.abs(t[1]-t[0]))/i),o=Math.min(Math.max(-r+a,0),20);return isFinite(o)?o:20},t.getPercentWithPrecision=function(e,t,n){if(!e[t])return 0;var r=i.reduce(e,function(e,t){return e+(isNaN(t)?0:t)},0);if(0===r)return 0;for(var a=Math.pow(10,n),o=i.map(e,function(e){return(isNaN(e)?0:e)/r*a*100}),s=100*a,l=i.map(o,function(e){return Math.floor(e)}),u=i.reduce(l,function(e,t){return e+t},0),c=i.map(o,function(e,t){return e-l[t]});u<s;){for(var d=Number.NEGATIVE_INFINITY,h=null,f=0,p=c.length;f<p;++f)c[f]>d&&(d=c[f],h=f);++l[h],c[h]=0,++u}return l[t]/a},t.MAX_SAFE_INTEGER=9007199254740991,t.remRadian=function(e){var t=2*Math.PI;return(e%t+t)%t},t.isRadianAroundZero=function(e){return e>-r&&e<r},t.parseDate=function(e){if(e instanceof Date)return e;if("string"==typeof e){var t=a.exec(e);if(!t)return new Date(NaN);if(t[8]){var n=+t[4]||0;return"Z"!==t[8].toUpperCase()&&(n-=t[8].slice(0,3)),new Date(Date.UTC(+t[1],+(t[2]||1)-1,+t[3]||1,n,+(t[5]||0),+t[6]||0,+t[7]||0))}return new Date(+t[1],+(t[2]||1)-1,+t[3]||1,+t[4]||0,+(t[5]||0),+t[6]||0,+t[7]||0)}return null==e?new Date(NaN):new Date(Math.round(e))},t.quantity=function(e){return Math.pow(10,o(e))},t.nice=function(e,t){var n=o(e),i=Math.pow(10,n),r=e/i;return e=(t?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+e.toFixed(n<0?-n:0):e},t.reformIntervals=function(e){e.sort(function(e,t){return function e(t,n,i){return t.interval[i]<n.interval[i]||t.interval[i]===n.interval[i]&&(t.close[i]-n.close[i]==(i?-1:1)||!i&&e(t,n,1))}(e,t,0)?-1:1});for(var t=-1/0,n=1,i=0;i<e.length;){for(var r=e[i].interval,a=e[i].close,o=0;o<2;o++)r[o]<=t&&(r[o]=t,a[o]=o?1:1-n),t=r[o],n=a[o];r[0]===r[1]&&a[0]*a[1]!=1?e.splice(i,1):i++}return e},t.isNumeric=function(e){return e-parseFloat(e)>=0}},adiS:function(e,t,n){var i=n("T9r1"),r=n("biYF")("toStringTag"),a="Arguments"==i(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),r))?n:a?i(t):"Object"==(o=i(t))&&"function"==typeof t.callee?"Arguments":o}},aiSe:function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a={NONE:"none",DESCENDANT:"descendant",ANCESTOR:"ancestor",SELF:"self"},o=2,s=4;function l(e,t,n){r.Group.call(this);var i=new r.Sector({z2:o});i.seriesIndex=t.seriesIndex;var a=new r.Text({z2:s,silent:e.getModel("label").get("silent")});function l(){a.ignore=a.hoverIgnore}function u(){a.ignore=a.normalIgnore}this.add(i),this.add(a),this.updateData(!0,e,"normal",t,n),this.on("emphasis",l).on("normal",u).on("mouseover",l).on("mouseout",u)}var u=l.prototype;u.updateData=function(e,t,n,a,o){this.node=t,t.piece=this,a=a||this._seriesModel,o=o||this._ecModel;var s=this.childAt(0);s.dataIndex=t.dataIndex;var l=t.getModel(),u=t.getLayout();u||console.log(t.getLayout());var c=i.extend({},u);c.label=null;var d,h=function(e,t,n){var r=e.getVisual("color"),a=e.getVisual("visualMeta");a&&0!==a.length||(r=null);var o=e.getModel("itemStyle").get("color");if(o)return o;if(r)return r;if(0===e.depth)return n.option.color[0];var s=n.option.color.length;o=n.option.color[function(e){var t=e;for(;t.depth>1;)t=t.parentNode;var n=e.getAncestors()[0];return i.indexOf(n.children,t)}(e)%s];return o}(t,0,o),f=l.getModel("itemStyle").getItemStyle();if("normal"===n)d=f;else{var p=l.getModel(n+".itemStyle").getItemStyle();d=i.merge(p,f)}d=i.defaults({lineJoin:"bevel",fill:d.fill||h},d),e?(s.setShape(c),s.shape.r=u.r0,r.updateProps(s,{shape:{r:u.r}},a,t.dataIndex),s.useStyle(d)):"object"==typeof d.fill&&d.fill.type||"object"==typeof s.style.fill&&s.style.fill.type?(r.updateProps(s,{shape:c},a),s.useStyle(d)):r.updateProps(s,{shape:c,style:d},a),this._updateLabel(a,h,n);var m=l.getShallow("cursor");if(m&&s.attr("cursor",m),e){var g=a.getShallow("highlightPolicy");this._initEvents(s,t,a,g)}this._seriesModel=a||this._seriesModel,this._ecModel=o||this._ecModel},u.onEmphasis=function(e){var t=this;this.node.hostTree.root.eachNode(function(n){var i,r,o;n.piece&&(t.node===n?n.piece.updateData(!1,n,"emphasis"):(i=n,r=t.node,(o=e)!==a.NONE&&(o===a.SELF?i===r:o===a.ANCESTOR?i===r||i.isAncestorOf(r):i===r||i.isDescendantOf(r))?n.piece.childAt(0).trigger("highlight"):e!==a.NONE&&n.piece.childAt(0).trigger("downplay")))})},u.onNormal=function(){this.node.hostTree.root.eachNode(function(e){e.piece&&e.piece.updateData(!1,e,"normal")})},u.onHighlight=function(){this.updateData(!1,this.node,"highlight")},u.onDownplay=function(){this.updateData(!1,this.node,"downplay")},u._updateLabel=function(e,t,n){var a=this.node.getModel(),o=a.getModel("label"),s="normal"===n||"emphasis"===n?o:a.getModel(n+".label"),l=a.getModel("emphasis.label"),u=i.retrieve(e.getFormattedLabel(this.node.dataIndex,"normal",null,null,"label"),this.node.name);!1===M("show")&&(u="");var c=this.node.getLayout(),d=s.get("minAngle");null==d&&(d=o.get("minAngle")),d=d/180*Math.PI;var h=c.endAngle-c.startAngle;null!=d&&Math.abs(h)<d&&(u="");var f=this.childAt(1);r.setLabelStyle(f.style,f.hoverStyle||{},o,l,{defaultText:s.getShallow("show")?u:null,autoColor:t,useInsideStyle:!0});var p,m=(c.startAngle+c.endAngle)/2,g=Math.cos(m),v=Math.sin(m),y=M("position"),b=M("distance")||0,_=M("align");"outside"===y?(p=c.r+b,_=m>Math.PI/2?"right":"left"):_&&"center"!==_?"left"===_?(p=c.r0+b,m>Math.PI/2&&(_="right")):"right"===_&&(p=c.r-b,m>Math.PI/2&&(_="left")):(p=(c.r+c.r0)/2,_="center"),f.attr("style",{text:u,textAlign:_,textVerticalAlign:M("verticalAlign")||"middle",opacity:M("opacity")});var x=p*g+c.cx,w=p*v+c.cy;f.attr("position",[x,w]);var S=M("rotate"),C=0;function M(e){var t=s.get(e);return null==t?o.get(e):t}"radial"===S?(C=-m)<-Math.PI/2&&(C+=Math.PI):"tangential"===S?(C=Math.PI/2-m)>Math.PI/2?C-=Math.PI:C<-Math.PI/2&&(C+=Math.PI):"number"==typeof S&&(C=S*Math.PI/180),f.attr("rotation",C)},u._initEvents=function(e,t,n,i){e.off("mouseover").off("mouseout").off("emphasis").off("normal");var r=this,a=function(){r.onEmphasis(i)},o=function(){r.onNormal()};n.isAnimationEnabled()&&e.on("mouseover",a).on("mouseout",o).on("emphasis",a).on("normal",o).on("downplay",function(){r.onDownplay()}).on("highlight",function(){r.onHighlight()})},i.inherits(l,r.Group);var c=l;e.exports=c},aozt:function(e,t,n){e.exports=n("z1hY")},aqA6:function(e,t,n){"use strict";var i=n("7p3N");e.exports.f=function(e){return new function(e){var t,n;this.promise=new e(function(e,i){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=i}),this.resolve=i(t),this.reject=i(n)}(e)}},at5h:function(e,t){e.exports=function(e){var t=e.findComponents({mainType:"legend"});t&&t.length&&e.eachSeriesByType("graph",function(e){var n=e.getCategoriesData(),i=e.getGraph().data,r=n.mapArray(n.getName);i.filterSelf(function(e){var n=i.getItemModel(e).getShallow("category");if(null!=n){"number"==typeof n&&(n=r[n]);for(var a=0;a<t.length;a++)if(!t[a].isSelected(n))return!1}return!0})},this)}},auEo:function(e,t,n){var i=n("/MtV"),r=n("GKMz");n("0jPB"),n("JiCB"),n("WAmt");var a=n("h+Y5").layout,o=n("kuK2");n("5zae"),i.registerLayout(r.curry(a,"pictorialBar")),i.registerVisual(o("pictorialBar","roundRect"))},"b+Qj":function(e,t,n){var i=n("5YEj").extendComponentModel({type:"bmap",getBMap:function(){return this.__bmap},setCenterAndZoom:function(e,t){this.option.center=e,this.option.zoom=t},centerOrZoomChanged:function(e,t){var n,i,r=this.option;return n=e,i=r.center,!(n&&i&&n[0]===i[0]&&n[1]===i[1]&&t===r.zoom)},defaultOption:{center:[104.114129,37.550339],zoom:5,mapStyle:{},roam:!1}});e.exports=i},b0oC:function(e,t,n){var i=n("GKMz"),r=i.createHashMap,a=i.isObject,o=i.map;function s(e){this.categories=e.categories||[],this._needCollect=e.needCollect,this._deduplication=e.deduplication,this._map}s.createByAxisModel=function(e){var t=e.option,n=t.data,i=n&&o(n,c);return new s({categories:i,needCollect:!i,deduplication:!1!==t.dedplication})};var l=s.prototype;function u(e){return e._map||(e._map=r(e.categories))}function c(e){return a(e)&&null!=e.value?e.value:e+""}l.getOrdinal=function(e){return u(this).get(e)},l.parseAndCollect=function(e){var t,n=this._needCollect;if("string"!=typeof e&&!n)return e;if(n&&!this._deduplication)return t=this.categories.length,this.categories[t]=e,t;var i=u(this);return null==(t=i.get(e))&&(n?(t=this.categories.length,this.categories[t]=e,i.set(e,t)):t=NaN),t};var d=s;e.exports=d},bC1X:function(e,t){e.exports=function(e,t,n){var i=void 0===n;switch(t.length){case 0:return i?e():e.call(n);case 1:return i?e(t[0]):e.call(n,t[0]);case 2:return i?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return i?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return i?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},bHL0:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("01Ub"),o=n("xWTI"),s=["#ddd"];function l(e,t){return r.merge({brushType:e.brushType,brushMode:e.brushMode,transformable:e.transformable,brushStyle:new o(e.brushStyle).getItemStyle(),removeOnClick:e.removeOnClick,z:e.z},t,!0)}var u=i.extendComponentModel({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(e,t){var n=this.option;!t&&a.replaceVisualOption(n,e,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:s},i.hasOwnProperty("liftZ")||(i.liftZ=5)},setAreas:function(e){e&&(this.areas=r.map(e,function(e){return l(this.option,e)},this))},setBrushOption:function(e){this.brushOption=l(this.option,e),this.brushType=this.brushOption.brushType}});e.exports=u},bHZz:function(e,t,n){var i=n("lIiZ"),r=n("go9Q");e.exports=n("sjnA")?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},bP4h:function(e,t,n){var i=n("GKMz");t.layout=function(e,t,n){n=n||{};var r=e.coordinateSystem,a=t.axis,o={},s=a.getAxesOnZeroOf()[0],l=a.position,u=s?"onZero":l,c=a.dim,d=r.getRect(),h=[d.x,d.x+d.width,d.y,d.y+d.height],f={left:0,right:1,top:0,bottom:1,onZero:2},p=t.get("offset")||0,m="x"===c?[h[2]-p,h[3]+p]:[h[0]-p,h[1]+p];if(s){var g=s.toGlobalCoord(s.dataToCoord(0));m[f.onZero]=Math.max(Math.min(g,m[1]),m[0])}o.position=["y"===c?m[f[u]]:h[0],"x"===c?m[f[u]]:h[3]],o.rotation=Math.PI/2*("x"===c?0:1),o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[l],o.labelOffset=s?m[f[l]]-m[f.onZero]:0,t.get("axisTick.inside")&&(o.tickDirection=-o.tickDirection),i.retrieve(n.labelInside,t.get("axisLabel.inside"))&&(o.labelDirection=-o.labelDirection);var v=t.get("axisLabel.rotate");return o.labelRotate="top"===u?-v:v,o.z2=1,o}},bgFz:function(e,t){e.exports=!0},biYF:function(e,t,n){var i=n("KV1y")("wks"),r=n("pplb"),a=n("C02x").Symbol,o="function"==typeof a;(e.exports=function(e){return i[e]||(i[e]=o&&a[e]||(o?a:r)("Symbol."+e))}).store=i},bmdq:function(e,t,n){var i=n("GKMz"),r=n("M7eM"),a=n("Qieq"),o=n("REEr").SOURCE_FORMAT_ORIGINAL,s=n("aSSy").getDimensionTypeByAxis,l=n("vqvJ").getDataItemValue,u=n("i+pt"),c=n("koKQ").getCoordSysDefineBySeries,d=n("YYsL"),h=n("cfvC").enableDataStack;var f=function(e,t,n){n=n||{},d.isInstance(e)||(e=d.seriesDataToSource(e));var f,p=t.get("coordinateSystem"),m=u.get(p),g=c(t);g&&(f=i.map(g.coordSysDims,function(e){var t={name:e},n=g.axisMap.get(e);if(n){var i=n.get("type");t.type=s(i)}return t})),f||(f=m&&(m.getDimensionsInfo?m.getDimensionsInfo():m.dimensions.slice())||["x","y"]);var v,y,b=a(e,{coordDimensions:f,generateCoord:n.generateCoord});g&&i.each(b,function(e,t){var n=e.coordDim,i=g.categoryAxisMap.get(n);i&&(null==v&&(v=t),e.ordinalMeta=i.getOrdinalMeta()),null!=e.otherDims.itemName&&(y=!0)}),y||null==v||(b[v].otherDims.itemName=0);var _=h(t,b),x=new r(b,t);x.setCalculationInfo(_);var w=null!=v&&function(e){if(e.sourceFormat===o){var t=function(e){for(var t=0;t<e.length&&null==e[t];)t++;return e[t]}(e.data||[]);return null!=t&&!i.isArray(l(t))}}(e)?function(e,t,n,i){return i===v?n:this.defaultDimValueGetter(e,t,n,i)}:null;return x.hasItemOption=!1,x.initData(e,null,w),x};e.exports=f},bodH:function(e,t,n){var i=n("bHZz");e.exports=function(e,t,n){for(var r in t)n&&e[r]?e[r]=t[r]:i(e,r,t[r]);return e}},"c/Dk":function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},c1o2:function(e,t,n){var i=n("93K8"),r=n("f4eo"),a=n("zDlt"),o=n("VjRt")("IE_PROTO"),s=function(){},l=function(){var e,t=n("BplH")("iframe"),i=a.length;for(t.style.display="none",n("cihN").appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),l=e.F;i--;)delete l.prototype[a[i]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=i(e),n=new s,s.prototype=null,n[o]=e):n=l(),void 0===t?n:r(n,t)}},c7bb:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=r.createHashMap,o=r.each;i.registerProcessor({getTargetSeries:function(e){var t=a();return e.eachComponent("dataZoom",function(e){e.eachTargetAxis(function(e,n,i){var r=i.getAxisProxy(e.name,n);o(r.getTargetSeriesModels(),function(e){t.set(e.uid,e)})})}),t},modifyOutputEnd:!0,overallReset:function(e,t){e.eachComponent("dataZoom",function(e){e.eachTargetAxis(function(e,n,i){i.getAxisProxy(e.name,n).reset(i,t)}),e.eachTargetAxis(function(e,n,i){i.getAxisProxy(e.name,n).filterData(i,t)})}),e.eachComponent("dataZoom",function(e){var t=e.findRepresentativeAxisProxy(),n=t.getDataPercentWindow(),i=t.getDataValueWindow();e.setRawRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]},!0)})}})},cC8b:function(e,t,n){var i=n("u2T1"),r=n("c/Dk"),a="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||r(e)&&i(e)==a}},cDxT:function(e,t,n){"use strict";var i=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:i,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:i&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:i&&!!window.screen,isInWorker:!i};e.exports=r},cfvC:function(e,t,n){var i=n("GKMz"),r=i.each,a=i.isString;function o(e,t){return!!t&&t===e.getCalculationInfo("stackedDimension")}t.enableDataStack=function(e,t,n){var i,o,s,l,u=(n=n||{}).byIndex,c=n.stackedCoordDimension,d=!(!e||!e.get("stack"));if(r(t,function(e,n){a(e)&&(t[n]=e={name:e}),d&&!e.isExtraCoord&&(u||i||!e.ordinalMeta||(i=e),o||"ordinal"===e.type||"time"===e.type||c&&c!==e.coordDim||(o=e))}),!o||u||i||(u=!0),o){s="__\0ecstackresult",l="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=o.coordDim,f=o.type,p=0;r(t,function(e){e.coordDim===h&&p++}),t.push({name:s,coordDim:h,coordDimIndex:p,type:f,isExtraCoord:!0,isCalculationCoord:!0}),p++,t.push({name:l,coordDim:l,coordDimIndex:p,type:f,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:o&&o.name,stackedByDimension:i&&i.name,isStackedByIndex:u,stackedOverDimension:l,stackResultDimension:s}},t.isDimensionStacked=o,t.getStackedDimension=function(e,t){return o(e,t)?e.getCalculationInfo("stackResultDimension"):t}},cfw3:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("h+Y5"),o=a.layout,s=a.largeLayout;n("0jPB"),n("+hWa"),n("fCzW"),n("5zae"),i.registerLayout(r.curry(o,"bar")),i.registerLayout(s),i.registerVisual({seriesType:"bar",reset:function(e){e.getData().setVisual("legendSymbol","roundRect")}})},cihN:function(e,t,n){var i=n("C02x").document;e.exports=i&&i.documentElement},clI9:function(e,t,n){"use strict";t.__esModule=!0;var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n("J3mc"),o=(i=a)&&i.__esModule?i:{default:i};var s,l=l||{};l.Dialog=function(e,t,n){var i=this;if(this.dialogNode=e,null===this.dialogNode||"dialog"!==this.dialogNode.getAttribute("role"))throw new Error("Dialog() requires a DOM element with ARIA role of dialog.");"string"==typeof t?this.focusAfterClosed=document.getElementById(t):"object"===(void 0===t?"undefined":r(t))?this.focusAfterClosed=t:this.focusAfterClosed=null,"string"==typeof n?this.focusFirst=document.getElementById(n):"object"===(void 0===n?"undefined":r(n))?this.focusFirst=n:this.focusFirst=null,this.focusFirst?this.focusFirst.focus():o.default.focusFirstDescendant(this.dialogNode),this.lastFocus=document.activeElement,s=function(e){i.trapFocus(e)},this.addListeners()},l.Dialog.prototype.addListeners=function(){document.addEventListener("focus",s,!0)},l.Dialog.prototype.removeListeners=function(){document.removeEventListener("focus",s,!0)},l.Dialog.prototype.closeDialog=function(){var e=this;this.removeListeners(),this.focusAfterClosed&&setTimeout(function(){e.focusAfterClosed.focus()})},l.Dialog.prototype.trapFocus=function(e){o.default.IgnoreUtilFocusChanges||(this.dialogNode.contains(e.target)?this.lastFocus=e.target:(o.default.focusFirstDescendant(this.dialogNode),this.lastFocus===document.activeElement&&o.default.focusLastDescendant(this.dialogNode),this.lastFocus=document.activeElement))},t.default=l.Dialog},d2Vn:function(e,t,n){var i=n("GKMz"),r=n("ktMJ").createSymbol,a=n("aVg8"),o=n("abCA").parsePercent,s=n("lYM0").getDefaultLabel;function l(e,t,n){a.Group.call(this),this.updateData(e,t,n)}var u=l.prototype,c=l.getSymbolSize=function(e,t){var n=e.getItemVisual(t,"symbolSize");return n instanceof Array?n.slice():[+n,+n]};function d(e){return[e[0]/2,e[1]/2]}function h(e,t){this.parent.drift(e,t)}u._createSymbol=function(e,t,n,i,a){this.removeAll();var o=t.getItemVisual(n,"color"),s=r(e,-1,-1,2,2,o,a);s.attr({z2:100,culling:!0,scale:d(i)}),s.drift=h,this._symbolType=e,this.add(s)},u.stopSymbolAnimation=function(e){this.childAt(0).stopAnimation(e)},u.getSymbolPath=function(){return this.childAt(0)},u.getScale=function(){return this.childAt(0).scale},u.highlight=function(){this.childAt(0).trigger("emphasis")},u.downplay=function(){this.childAt(0).trigger("normal")},u.setZ=function(e,t){var n=this.childAt(0);n.zlevel=e,n.z=t},u.setDraggable=function(e){var t=this.childAt(0);t.draggable=e,t.cursor=e?"move":"pointer"},u.updateData=function(e,t,n){this.silent=!1;var i=e.getItemVisual(t,"symbol")||"circle",r=e.hostModel,o=c(e,t),s=i!==this._symbolType;if(s){var l=e.getItemVisual(t,"symbolKeepAspect");this._createSymbol(i,e,t,o,l)}else{(u=this.childAt(0)).silent=!1,a.updateProps(u,{scale:d(o)},r,t)}if(this._updateCommon(e,t,o,n),s){var u=this.childAt(0),h=n&&n.fadeIn,f={scale:u.scale.slice()};h&&(f.style={opacity:u.style.opacity}),u.scale=[0,0],h&&(u.style.opacity=0),a.initProps(u,f,r,t)}this._seriesModel=r};var f=["itemStyle"],p=["emphasis","itemStyle"],m=["label"],g=["emphasis","label"];u._updateCommon=function(e,t,n,r){var l=this.childAt(0),u=e.hostModel,c=e.getItemVisual(t,"color");"image"!==l.type&&l.useStyle({strokeNoScale:!0});var h=r&&r.itemStyle,v=r&&r.hoverItemStyle,y=r&&r.symbolRotate,b=r&&r.symbolOffset,_=r&&r.labelModel,x=r&&r.hoverLabelModel,w=r&&r.hoverAnimation,S=r&&r.cursorStyle;if(!r||e.hasItemOption){var C=r&&r.itemModel?r.itemModel:e.getItemModel(t);h=C.getModel(f).getItemStyle(["color"]),v=C.getModel(p).getItemStyle(),y=C.getShallow("symbolRotate"),b=C.getShallow("symbolOffset"),_=C.getModel(m),x=C.getModel(g),w=C.getShallow("hoverAnimation"),S=C.getShallow("cursor")}else v=i.extend({},v);var M=l.style;l.attr("rotation",(y||0)*Math.PI/180||0),b&&l.attr("position",[o(b[0],n[0]),o(b[1],n[1])]),S&&l.attr("cursor",S),l.setColor(c,r&&r.symbolInnerColor),l.setStyle(h);var k=e.getItemVisual(t,"opacity");null!=k&&(M.opacity=k);var T=e.getItemVisual(t,"liftZ"),A=l.__z2Origin;null!=T?null==A&&(l.__z2Origin=l.z2,l.z2+=T):null!=A&&(l.z2=A,l.__z2Origin=null);var I=r&&r.useNameLabel;a.setLabelStyle(M,v,_,x,{labelFetcher:u,labelDataIndex:t,defaultText:function(t,n){return I?e.getName(t):s(e,t)},isRectText:!0,autoColor:c}),l.off("mouseover").off("mouseout").off("emphasis").off("normal"),l.hoverStyle=v,a.setHoverStyle(l);var E=d(n);if(w&&u.isAnimationEnabled()){var D=function(){if(!this.incremental){var e=E[1]/E[0];this.animateTo({scale:[Math.max(1.1*E[0],E[0]+3),Math.max(1.1*E[1],E[1]+3*e)]},400,"elasticOut")}},O=function(){this.incremental||this.animateTo({scale:E},400,"elasticOut")};l.on("mouseover",D).on("mouseout",O).on("emphasis",D).on("normal",O)}},u.fadeOut=function(e,t){var n=this.childAt(0);this.silent=n.silent=!0,(!t||!t.keepLabel)&&(n.style.text=null),a.updateProps(n,{style:{opacity:0},scale:[0,0]},this._seriesModel,this.dataIndex,e)},i.inherits(l,a.Group);var v=l;e.exports=v},d7ze:function(e,t,n){var i=n("tAnk").createElement,r=n("GKMz"),a=r.each,o=n("L3JW"),s=n("Q9e6"),l=n("ihWO"),u=n("gt1/"),c=n("1Vji"),d=n("Scoi"),h=n("RrcE"),f=n("kpI5"),p=n("UD01"),m=p.path,g=p.image,v=p.text;function y(e){return parseInt(e,10)}function b(e,t){return t&&e&&t.parentNode!==e}function _(e,t,n){if(b(e,t)&&n){var i=n.nextSibling;i?e.insertBefore(t,i):e.appendChild(t)}}function x(e,t){if(b(e,t)){var n=e.firstChild;n?e.insertBefore(t,n):e.appendChild(t)}}function w(e,t){t&&e&&t.parentNode===e&&e.removeChild(t)}function S(e){return e.__textSvgEl}function C(e){return e.__svgEl}var M=function(e,t,n,a){this.root=e,this.storage=t,this._opts=n=r.extend({},n||{});var o=i("svg");o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("version","1.1"),o.setAttribute("baseProfile","full"),o.style.cssText="user-select:none;position:absolute;left:0;top:0;",this.gradientManager=new d(a,o),this.clipPathManager=new h(a,o),this.shadowManager=new f(a,o);var s=document.createElement("div");s.style.cssText="overflow:hidden;position:relative",this._svgRoot=o,this._viewport=s,e.appendChild(s),s.appendChild(o),this.resize(n.width,n.height),this._visibleList=[]};M.prototype={constructor:M,getType:function(){return"svg"},getViewportRoot:function(){return this._viewport},getViewportRootOffset:function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},refresh:function(){var e=this.storage.getDisplayList(!0);this._paintList(e)},setBackgroundColor:function(e){this._viewport.style.background=e},_paintList:function(e){this.gradientManager.markAllUnused(),this.clipPathManager.markAllUnused(),this.shadowManager.markAllUnused();var t,n,i=this._svgRoot,r=this._visibleList,a=e.length,o=[];for(t=0;t<a;t++){var d=e[t],h=(n=d)instanceof s?m:n instanceof l?g:n instanceof u?v:m,f=C(d)||S(d);d.invisible||(d.__dirty&&(h&&h.brush(d),this.clipPathManager.update(d),d.style&&(this.gradientManager.update(d.style.fill),this.gradientManager.update(d.style.stroke),this.shadowManager.update(f,d)),d.__dirty=!1),o.push(d))}var p,y=c(r,o);for(t=0;t<y.length;t++){if((k=y[t]).removed)for(var b=0;b<k.count;b++){f=C(d=r[k.indices[b]]);var M=S(d);w(i,f),w(i,M)}}for(t=0;t<y.length;t++){var k;if((k=y[t]).added)for(b=0;b<k.count;b++){f=C(d=o[k.indices[b]]),M=S(d);p?_(i,f,p):x(i,f),f?_(i,M,f):p?_(i,M,p):x(i,M),_(i,M,f),p=M||f||p,this.gradientManager.addWithoutUpdate(f,d),this.shadowManager.addWithoutUpdate(p,d),this.clipPathManager.markUsed(d)}else if(!k.removed)for(b=0;b<k.count;b++){p=f=S(d=o[k.indices[b]])||C(d)||p,this.gradientManager.markUsed(d),this.gradientManager.addWithoutUpdate(f,d),this.shadowManager.markUsed(d),this.shadowManager.addWithoutUpdate(f,d),this.clipPathManager.markUsed(d)}}this.gradientManager.removeUnused(),this.clipPathManager.removeUnused(),this.shadowManager.removeUnused(),this._visibleList=o},_getDefs:function(e){var t,n=this._svgRoot;return 0===(t=this._svgRoot.getElementsByTagName("defs")).length?e?((t=n.insertBefore(i("defs"),n.firstChild)).contains||(t.contains=function(e){var n=t.children;if(!n)return!1;for(var i=n.length-1;i>=0;--i)if(n[i]===e)return!0;return!1}),t):null:t[0]},resize:function(e,t){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=e&&(i.width=e),null!=t&&(i.height=t),e=this._getSize(0),t=this._getSize(1),n.style.display="",this._width!==e||this._height!==t){this._width=e,this._height=t;var r=n.style;r.width=e+"px",r.height=t+"px";var a=this._svgRoot;a.setAttribute("width",e),a.setAttribute("height",t)}},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(e){var t=this._opts,n=["width","height"][e],i=["clientWidth","clientHeight"][e],r=["paddingLeft","paddingTop"][e],a=["paddingRight","paddingBottom"][e];if(null!=t[n]&&"auto"!==t[n])return parseFloat(t[n]);var o=this.root,s=document.defaultView.getComputedStyle(o);return(o[i]||y(s[n])||y(o.style[n]))-(y(s[r])||0)-(y(s[a])||0)|0},dispose:function(){this.root.innerHTML="",this._svgRoot=this._viewport=this.storage=null},clear:function(){this._viewport&&this.root.removeChild(this._viewport)},pathToDataUrl:function(){return this.refresh(),"data:image/svg+xml;charset=UTF-8,"+this._svgRoot.outerHTML}},a(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(e){var t;M.prototype[e]=(t=e,function(){o('In SVG mode painter not support method "'+t+'"')})});var k=M;e.exports=k},dBt9:function(e,t,n){var i;"undefined"!=typeof self&&self,i=function(e,t){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=15)}([function(e,t,n){"use strict";t.a=function(e,t,n,i,r,a,o,s){var l=typeof(e=e||{}).default;"object"!==l&&"function"!==l||(e=e.default);var u,c="function"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),i&&(c.functional=!0),a&&(c._scopeId=a),o?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},c._ssrRegister=u):r&&(u=s?function(){r.call(this,this.$root.$options.shadowRoot)}:r),u)if(c.functional){c._injectStyles=u;var d=c.render;c.render=function(e,t){return u.call(t),d(e,t)}}else{var h=c.beforeCreate;c.beforeCreate=h?[].concat(h,u):[u]}return{exports:e,options:c}}},function(e,t){function n(e,t){var n=e[1]||"",i=e[3];if(!i)return n;if(t&&"function"==typeof btoa){var r=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(i);return[n].concat(i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"})).concat([r]).join("\n")}return[n].join("\n")}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i=n(t,e);return t[2]?"@media "+t[2]+"{"+i+"}":i}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r<this.length;r++){var a=this[r][0];"number"==typeof a&&(i[a]=!0)}for(r=0;r<e.length;r++){var o=e[r];"number"==typeof o[0]&&i[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),t.push(o))}},t}},function(e,t,n){"use strict";function i(e){for(var t=0;t<e.length;t++){var n=e[t],i=u[n.id];if(i){i.refs++;for(var r=0;r<i.parts.length;r++)i.parts[r](n.parts[r]);for(;r<n.parts.length;r++)i.parts.push(a(n.parts[r]));i.parts.length>n.parts.length&&(i.parts.length=n.parts.length)}else{var o=[];for(r=0;r<n.parts.length;r++)o.push(a(n.parts[r]));u[n.id]={id:n.id,refs:1,parts:o}}}}function r(){var e=document.createElement("style");return e.type="text/css",c.appendChild(e),e}function a(e){var t,n,i=document.querySelector("style["+g+'~="'+e.id+'"]');if(i){if(f)return p;i.parentNode.removeChild(i)}if(v){var a=h++;i=d||(d=r()),t=o.bind(null,i,a,!1),n=o.bind(null,i,a,!0)}else i=r(),t=function(e,t){var n=t.css,i=t.media,r=t.sourceMap;if(i&&e.setAttribute("media",i),m.ssrId&&e.setAttribute(g,t.id),r&&(n+="\n/*# sourceURL="+r.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */"),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,i),n=function(){i.parentNode.removeChild(i)};return t(e),function(i){if(i){if(i.css===e.css&&i.media===e.media&&i.sourceMap===e.sourceMap)return;t(e=i)}else n()}}function o(e,t,n,i){var r=n?"":i.css;if(e.styleSheet)e.styleSheet.cssText=y(t,r);else{var a=document.createTextNode(r),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n,r){f=n,m=r||{};var a=Object(s.a)(e,t);return i(a),function(t){for(var n=[],r=0;r<a.length;r++){var o=a[r];(l=u[o.id]).refs--,n.push(l)}for(t?i(a=Object(s.a)(e,t)):a=[],r=0;r<n.length;r++){var l;if(0===(l=n[r]).refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete u[l.id]}}}};var s=n(18),l="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!l)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var u={},c=l&&(document.head||document.getElementsByTagName("head")[0]),d=null,h=0,f=!1,p=function(){},m=null,g="data-vue-ssr-id",v="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase()),y=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t,n){"use strict";function i(e){return console.warn("[Vue-APlayer] "+e)}t.d=function(e){if(e){for(var t=(e=e.replace(/([^\]^\n])\[/g,function(e,t){return t+"\n["})).split("\n"),n=[],i=t.length,r=0;r<i;r++){var a=t[r].match(/\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g),o=t[r].replace(/.*\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/g,"").replace(/<(\d{2}):(\d{2})(\.(\d{2,3}))?>/g,"").replace(/^\s+|\s+$/g,"");if(a)for(var s=a.length,l=0;l<s;l++){var u=/\[(\d{2}):(\d{2})(\.(\d{2,3}))?]/.exec(a[l]),c=60*u[1]+parseInt(u[2])+(u[4]?parseInt(u[4])/(2===(u[4]+"").length?100:1e3):0);n.push([c,o])}}return n.sort(function(e,t){return e[0]-t[0]}),n}return[]},t.e=function(e,t){if(e===t)return 0;var n=e.split(".").map(Number),i=r(n,3),a=i[0],o=i[1],s=i[2],l=t.split(".").map(Number),u=r(l,3),c=u[0],d=u[1],h=u[2];if(a>c)return 1;if(a===c){if(o>d)return 1;if(o===d&&s>h)return 1}return-1},t.f=i,t.a=function(e,t,n){return i("'"+e+"' is deprecated since v"+t+", and will be removed in future releases, use '"+n+"' instead")},t.b=function(e){for(var t=e.offsetLeft,n=e.offsetParent;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return t-(document.body.scrollLeft+document.documentElement.scrollLeft)},t.c=function(e){for(var t=e.offsetTop,n=e.offsetParent;null!==n;)t+=n.offsetTop,n=n.offsetParent;return t-(document.body.scrollTop+document.documentElement.scrollTop)};var r=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(i=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);i=!0);}catch(e){r=!0,a=e}finally{try{!i&&s.return&&s.return()}finally{if(r)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},function(e,t,n){"use strict";var i=n(7),r=n(44),a=n(0),o=function(e){n(25)},s=Object(a.a)(i.a,r.a,r.b,!1,o,null,null);t.a=s.exports},function(e,t,n){"use strict";var i=n(19),r=n.n(i),a=n(20),o=n(46),s=n(50),l=n(62),u=n(3),c=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(i=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);i=!0);}catch(e){r=!0,a=e}finally{try{!i&&s.return&&s.return()}finally{if(r)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),d=!1,h=Object(u.e)(r.a.version,"2.3.0")>=0,f={},p=null,m="none",g="music",v="no-repeat",y="repeat-one",b="repeat-all",_={name:"APlayer",disableVersionBadge:!1,components:{Thumbnail:a.a,Controls:s.a,MusicList:o.a,Lyrics:l.a},props:{music:{type:Object,required:!0,validator:function(e){return e.url&&Object(u.a)("music.url","1.4.0","music.src"),e.author&&Object(u.a)("music.author","1.4.1","music.artist"),e.src||e.url}},list:{type:Array,default:function(){return[]}},mini:{type:Boolean,default:!1},showLrc:{type:Boolean,default:!1},mutex:{type:Boolean,default:!0},theme:{type:String,default:"#41b883"},listMaxHeight:String,listFolded:{type:Boolean,default:!1},float:{type:Boolean,default:!1},autoplay:{type:Boolean,default:!1},controls:{type:Boolean,default:!1},muted:{type:Boolean,default:!1},preload:String,volume:{type:Number,default:.8,validator:function(e){return e>=0&&e<=1}},shuffle:{type:Boolean,default:!1},repeat:{type:String,default:v},listmaxheight:{type:String,validator:function(e){return e&&Object(u.a)("listmaxheight","1.1.2","listMaxHeight"),!0}},narrow:{type:Boolean,default:!1,validator:function(e){return e&&Object(u.a)("narrow","1.1.2","mini"),!0}},showlrc:{type:Boolean,default:!1,validator:function(e){return e&&Object(u.a)("showlrc","1.2.2","showLrc"),!0}}},data:function(){return{internalMusic:this.music,isPlaying:!1,isSeeking:!1,wasPlayingBeforeSeeking:!1,isMobile:/mobile/i.test(window.navigator.userAgent),playStat:{duration:0,loadedTime:0,playedTime:0},showList:!this.listFolded,audioPlayPromise:Promise.resolve(),floatOriginX:0,floatOriginY:0,floatOffsetLeft:0,floatOffsetTop:0,selfAdaptingTheme:null,internalMuted:this.muted,internalVolume:this.volume,isLoading:!1,internalShuffle:this.shuffle,internalRepeat:this.repeat,shuffledList:[]}},computed:{audio:function(){return this.$refs.audio},currentMusic:{get:function(){return this.internalMusic},set:function(e){h&&this.$emit("update:music",e),this.internalMusic=e}},isMiniMode:function(){return this.mini||this.narrow},shouldShowLrc:function(){return this.showLrc||this.showlrc},currentTheme:function(){return this.selfAdaptingTheme||this.currentMusic.theme||this.theme},isFloatMode:function(){return this.float&&!this.isMobile},shouldAutoplay:function(){return!this.isMobile&&this.autoplay},musicList:function(){return this.list},shouldShowNativeControls:function(){return!1},floatStyleObj:function(){return{transform:"translate("+this.floatOffsetLeft+"px, "+this.floatOffsetTop+"px)",webkitTransform:"translate("+this.floatOffsetLeft+"px, "+this.floatOffsetTop+"px)"}},currentPicStyleObj:function(){return this.currentMusic&&this.currentMusic.pic?{backgroundImage:"url("+this.currentMusic.pic+")"}:{}},loadProgress:function(){return 0===this.playStat.duration?0:this.playStat.loadedTime/this.playStat.duration},playProgress:function(){return 0===this.playStat.duration?0:this.playStat.playedTime/this.playStat.duration},playIndex:{get:function(){return this.shuffledList.indexOf(this.currentMusic)},set:function(e){this.currentMusic=this.shuffledList[e%this.shuffledList.length]}},shouldRepeat:function(){return this.repeatMode!==v},isAudioMuted:{get:function(){return this.internalMuted},set:function(e){h&&this.$emit("update:muted",e),this.internalMuted=e}},audioVolume:{get:function(){return this.internalVolume},set:function(e){h&&this.$emit("update:volume",e),this.internalVolume=e}},shouldShuffle:{get:function(){return this.internalShuffle},set:function(e){h&&this.$emit("update:shuffle",e),this.internalShuffle=e}},repeatMode:{get:function(){switch(this.internalRepeat){case m:case v:return v;case g:case y:return y;default:return b}},set:function(e){h&&this.$emit("update:repeat",e),this.internalRepeat=e}}},methods:{onDragBegin:function(){this.floatOriginX=this.floatOffsetLeft,this.floatOriginY=this.floatOffsetTop},onDragAround:function(e){var t=e.offsetLeft,n=e.offsetTop;this.floatOffsetLeft=this.floatOriginX+t,this.floatOffsetTop=this.floatOriginY+n},setNextMode:function(){this.repeatMode===b?this.repeatMode=y:this.repeatMode===y?this.repeatMode=v:this.repeatMode=b},thenPlay:function(){var e=this;this.$nextTick(function(){e.play()})},toggle:function(){this.audio.paused?this.play():this.pause()},play:function(){var e=this;this.mutex&&(p&&p!==this&&p.pause(),p=this);var t=this.audio.play();if(t)return this.audioPlayPromise=new Promise(function(n,i){e.rejectPlayPromise=i,t.then(function(t){e.rejectPlayPromise=null,n(t)}).catch(u.f)})},pause:function(){var e=this;this.audioPlayPromise.then(function(){e.audio.pause()}).catch(function(){e.audio.pause()}),this.rejectPlayPromise&&(this.rejectPlayPromise(),this.rejectPlayPromise=null)},onProgressDragBegin:function(e){this.wasPlayingBeforeSeeking=this.isPlaying,this.pause(),this.isSeeking=!0,isNaN(this.audio.duration)||(this.audio.currentTime=this.audio.duration*e)},onProgressDragging:function(e){isNaN(this.audio.duration)?this.playStat.playedTime=0:this.audio.currentTime=this.audio.duration*e},onProgressDragEnd:function(e){this.isSeeking=!1,this.wasPlayingBeforeSeeking&&this.thenPlay()},toggleMute:function(){this.setAudioMuted(!this.audio.muted)},setAudioMuted:function(e){this.audio.muted=e},setAudioVolume:function(e){this.audio.volume=e,e>0&&this.setAudioMuted(!1)},getShuffledList:function(){if(!this.list.length)return[this.internalMusic];var e=[].concat(function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(this.list));if(!this.internalShuffle||e.length<=1)return e;var t=e.indexOf(this.internalMusic);if(2===e.length&&-1!==t)return 0===t?e:[this.internalMusic,e[0]];for(var n=e.length-1;n>0;n--){var i=Math.floor(Math.random()*(n+1)),r=e[n];e[n]=e[i],e[i]=r}if(-1!==t&&0!==(t=e.indexOf(this.internalMusic))){var a=[e[t],e[0]];e[0]=a[0],e[t]=a[1]}return e},onSelectSong:function(e){this.currentMusic===e?this.toggle():(this.currentMusic=e,this.thenPlay())},onAudioPlay:function(){this.isPlaying=!0},onAudioPause:function(){this.isPlaying=!1},onAudioWaiting:function(){this.isLoading=!0},onAudioCanplay:function(){this.isLoading=!1},onAudioDurationChange:function(){1!==this.audio.duration&&(this.playStat.duration=this.audio.duration)},onAudioProgress:function(){this.audio.buffered.length?this.playStat.loadedTime=this.audio.buffered.end(this.audio.buffered.length-1):this.playStat.loadedTime=0},onAudioTimeUpdate:function(){this.playStat.playedTime=this.audio.currentTime},onAudioSeeking:function(){this.playStat.playedTime=this.audio.currentTime},onAudioSeeked:function(){this.playStat.playedTime=this.audio.currentTime},onAudioVolumeChange:function(){this.audioVolume=this.audio.volume,this.isAudioMuted=this.audio.muted},onAudioEnded:function(){this.repeatMode===b?(this.shouldShuffle&&this.playIndex===this.shuffledList.length-1&&(this.shuffledList=this.getShuffledList()),this.playIndex++,this.thenPlay()):this.repeatMode===y?this.thenPlay():(this.playIndex++,0!==this.playIndex?this.thenPlay():1===this.shuffledList.length&&(this.audio.currentTime=0))},initAudio:function(){var e=this;this.audio.controls=this.shouldShowNativeControls,this.audio.muted=this.muted,this.audio.preload=this.preload,this.audio.volume=this.volume,["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","interruptbegin","interruptend","loadeddata","loadedmetadata","loadstart","mozaudioavailable","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"].forEach(function(t){e.audio.addEventListener(t,function(n){return e.$emit(t,n)})}),this.audio.addEventListener("play",this.onAudioPlay),this.audio.addEventListener("pause",this.onAudioPause),this.audio.addEventListener("abort",this.onAudioPause),this.audio.addEventListener("waiting",this.onAudioWaiting),this.audio.addEventListener("canplay",this.onAudioCanplay),this.audio.addEventListener("progress",this.onAudioProgress),this.audio.addEventListener("durationchange",this.onAudioDurationChange),this.audio.addEventListener("seeking",this.onAudioSeeking),this.audio.addEventListener("seeked",this.onAudioSeeked),this.audio.addEventListener("timeupdate",this.onAudioTimeUpdate),this.audio.addEventListener("volumechange",this.onAudioVolumeChange),this.audio.addEventListener("ended",this.onAudioEnded),this.currentMusic&&(this.audio.src=this.currentMusic.src||this.currentMusic.url)},setSelfAdaptingTheme:function(){var e=this;if("pic"===(this.currentMusic.theme||this.theme)){var t=this.currentMusic.pic;if(f[t])this.selfAdaptingTheme=f[t];else try{(new ColorThief).getColorAsync(t,function(n){var i=c(n,3),r=i[0],a=i[1],o=i[2];f[t]="rgb("+r+", "+a+", "+o+")",e.selfAdaptingTheme="rgb("+r+", "+a+", "+o+")"})}catch(e){Object(u.f)("color-thief is required to support self-adapting theme")}}else this.selfAdaptingTheme=null}},watch:{music:function(e){this.internalMusic=e},currentMusic:{handler:function(e){this.setSelfAdaptingTheme();var t=e.src||e.url;if(/\.m3u8(?=(#|\?|$))/.test(t))if(this.audio.canPlayType("application/x-mpegURL")||this.audio.canPlayType("application/vnd.apple.mpegURL"))this.audio.src=t;else try{var i=n(66);i.isSupported()?(this.hls||(this.hls=new i),this.hls.loadSource(t),this.hls.attachMedia(this.audio)):(Object(u.f)("HLS is not supported on your browser"),this.audio.src=t)}catch(e){Object(u.f)("hls.js is required to support m3u8"),this.audio.src=t}else this.audio.src=t}},shouldShowNativeControls:function(e){this.audio.controls=e},isAudioMuted:function(e){this.audio.muted=e},preload:function(e){this.audio.preload=e},audioVolume:function(e){this.audio.volume=e},muted:function(e){this.internalMuted=e},volume:function(e){this.internalVolume=e},shuffle:function(e){this.internalShuffle=e},repeat:function(e){this.internalRepeat=e}},beforeCreate:function(){_.disableVersionBadge||d||(console.log("\n\n %c Vue-APlayer 1.6.1 %c vue-aplayer.js.org \n","color: #fff; background:#41b883; padding:5px 0;","color: #fff; background: #35495e; padding:5px 0;"),d=!0)},created:function(){this.shuffledList=this.getShuffledList()},mounted:function(){this.initAudio(),this.setSelfAdaptingTheme(),this.autoplay&&this.play()},beforeDestroy:function(){p===this&&(p=null),this.hls&&this.hls.destroy()}};t.a=_},function(e,t,n){"use strict";var i=n(4);t.a={components:{IconButton:i.a},props:{pic:String,theme:String,playing:{type:Boolean,default:!1},enableDrag:{type:Boolean,default:!1}},data:function(){return{hasMovedSinceMouseDown:!1,dragStartX:0,dragStartY:0}},computed:{currentPicStyleObj:function(){return this.pic?{backgroundImage:"url("+this.pic+")",backgroundColor:this.theme}:{}}},methods:{onDragBegin:function(e){this.enableDrag&&(this.hasMovedSinceMouseDown=!1,this.$emit("dragbegin"),this.dragStartX=e.clientX,this.dragStartY=e.clientY,document.addEventListener("mousemove",this.onDocumentMouseMove),document.addEventListener("mouseup",this.onDocumentMouseUp))},onDocumentMouseMove:function(e){this.hasMovedSinceMouseDown=!0,this.$emit("dragging",{offsetLeft:e.clientX-this.dragStartX,offsetTop:e.clientY-this.dragStartY})},onDocumentMouseUp:function(e){document.removeEventListener("mouseup",this.onDocumentMouseUp),document.removeEventListener("mousemove",this.onDocumentMouseMove),this.$emit("dragend")},onClick:function(){this.hasMovedSinceMouseDown||this.$emit("toggleplay")}}}},function(e,t,n){"use strict";var i=n(8);t.a={components:{Icon:i.a},props:["icon"]}},function(e,t,n){"use strict";var i=n(9),r=n(43),a=n(0),o=Object(a.a)(i.a,r.a,r.b,!1,null,null,null);t.a=o.exports},function(e,t,n){"use strict";var i=function(){return function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(i=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);i=!0);}catch(e){r=!0,a=e}finally{try{!i&&s.return&&s.return()}finally{if(r)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=n(27),a=r.keys().reduce(function(e,t){var n=r(t).match(/^<svg.+?viewBox="(.+?)".*><path.+?d="(.+?)".*><\/path><\/svg>$/),a=i(n,3),o=(a[0],a[1]),s=a[2];return e[t.match(/^.*\/(.+?)\.svg$/)[1]]={viewBox:o,d:s},e},{});t.a={props:["type"],computed:{svg:function(){return this.type,"prev"!==this.type&&this.type,a[this.type]||{}},style:function(){if("next"===this.type)return{transform:"rotate(180deg)"}}}}},function(e,t,n){"use strict";t.a={props:{show:{type:Boolean,default:!0},currentMusic:Object,musicList:{type:Array,default:function(){return[]}},playIndex:{type:Number,default:0},theme:String,listmaxheight:String},computed:{listHeightStyle:function(){return{height:33*this.musicList.length-1+"px",maxHeight:this.listmaxheight||""}}}}},function(e,t,n){"use strict";var i=n(4),r=n(53),a=n(57);t.a={components:{IconButton:i.a,VProgress:r.a,Volume:a.a},props:["shuffle","repeat","stat","theme","volume","muted"],computed:{loadProgress:function(){return 0===this.stat.duration?0:this.stat.loadedTime/this.stat.duration},playProgress:function(){return 0===this.stat.duration?0:this.stat.playedTime/this.stat.duration}},methods:{secondToTime:function(e){if(isNaN(e))return"00:00";var t=function(e){return e<10?"0"+e:""+e},n=Math.trunc(e/60),i=Math.trunc(e-60*n),r=Math.trunc(n/60),a=Math.trunc(e/60-60*Math.trunc(e/60/60));return e>=3600?t(r)+":"+t(a)+":"+t(i):t(n)+":"+t(i)}}}},function(e,t,n){"use strict";var i=n(3),r=n(8);t.a={components:{Icon:r.a},props:["loadProgress","playProgress","theme"],data:function(){return{thumbHovered:!1}},methods:{onThumbMouseDown:function(e){var t=this.$refs.barWrap.clientWidth,n=(e.clientX-Object(i.b)(this.$refs.barWrap))/t;n=(n=n>0?n:0)<1?n:1,this.$emit("dragbegin",n),document.addEventListener("mousemove",this.onDocumentMouseMove),document.addEventListener("mouseup",this.onDocumentMouseUp)},onDocumentMouseMove:function(e){var t=this.$refs.barWrap.clientWidth,n=(e.clientX-Object(i.b)(this.$refs.barWrap))/t;n=(n=n>0?n:0)<1?n:1,this.$emit("dragging",n)},onDocumentMouseUp:function(e){document.removeEventListener("mouseup",this.onDocumentMouseUp),document.removeEventListener("mousemove",this.onDocumentMouseMove);var t=this.$refs.barWrap.clientWidth,n=(e.clientX-Object(i.b)(this.$refs.barWrap))/t;n=(n=n>0?n:0)<1?n:1,this.$emit("dragend",n)},onThumbTouchStart:function(e){var t=this.$refs.barWrap.clientWidth,n=(e.clientX-Object(i.b)(this.$refs.barWrap))/t;n=(n=n>0?n:0)<1?n:1,this.$emit("dragbegin",n),document.addEventListener("touchmove",this.onDocumentTouchMove),document.addEventListener("touchend",this.onDocumentTouchEnd)},onDocumentTouchMove:function(e){var t=e.changedTouches[0],n=this.$refs.barWrap.clientWidth,r=(t.clientX-Object(i.b)(this.$refs.barWrap))/n;r=(r=r>0?r:0)<1?r:1,this.$emit("dragging",r)},onDocumentTouchEnd:function(e){document.removeEventListener("touchend",this.onDocumentTouchEnd),document.removeEventListener("touchmove",this.onDocumentTouchMove);var t=e.changedTouches[0],n=this.$refs.barWrap.clientWidth,r=(t.clientX-Object(i.b)(this.$refs.barWrap))/n;r=(r=r>0?r:0)<1?r:1,this.$emit("dragend",r)}}}},function(e,t,n){"use strict";var i=n(4),r=n(3);t.a={components:{IconButton:i.a},props:["volume","muted","theme"],computed:{volumeIcon:function(){return this.muted||this.volume<=0?"volume-off":this.volume>=1?"volume-up":"volume-down"}},methods:{adjustVolume:function(e){var t=(40-e.clientY+Object(r.c)(this.$refs.bar))/40;t=(t=t>0?t:0)<1?t:1,this.$emit("setvolume",t)},onBarMouseDown:function(){document.addEventListener("mousemove",this.onDocumentMouseMove),document.addEventListener("mouseup",this.onDocumentMouseUp)},onDocumentMouseMove:function(e){var t=(40-e.clientY+Object(r.c)(this.$refs.bar))/40;t=(t=t>0?t:0)<1?t:1,this.$emit("setvolume",t)},onDocumentMouseUp:function(e){document.removeEventListener("mouseup",this.onDocumentMouseUp),document.removeEventListener("mousemove",this.onDocumentMouseMove);var t=(40-e.clientY+Object(r.c)(this.$refs.bar))/40;t=(t=t>0?t:0)<1?t:1,this.$emit("setvolume",t)}}}},function(e,t,n){"use strict";var i=n(3);t.a={props:{currentMusic:{type:Object,required:!0},playStat:{type:Object,required:!0}},data:function(){return{displayLrc:"",currentLineIndex:0}},computed:{lrcLines:function(){return Object(i.d)(this.displayLrc)},currentLine:function(){return this.currentLineIndex>this.lrcLines.length-1?null:this.lrcLines[this.currentLineIndex]},transformStyle:function(){return{transform:"translateY("+16*-this.currentLineIndex+"px)",webkitTransform:"translateY("+16*-this.currentLineIndex+"px)"}}},methods:{applyLrc:function(e){/^https?:\/\//.test(e)?this.fetchLrc(e):this.displayLrc=e},fetchLrc:function(e){var t=this;fetch(e).then(function(e){return e.text()}).then(function(e){t.displayLrc=e})},hideLrc:function(){this.displayLrc=""}},watch:{currentMusic:{immediate:!0,handler:function(e){this.currentLineIndex=0,e.lrc?this.applyLrc(e.lrc):this.hideLrc()}},"playStat.playedTime":function(e){for(var t=0;t<this.lrcLines.length;t++){var n=this.lrcLines[t],i=this.lrcLines[t+1];e>=n[0]&&(!i||e<i[0])&&(this.currentLineIndex=t)}}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(5),r=n(67),a=n(0),o=function(e){n(16)},s=Object(a.a)(i.a,r.a,r.b,!1,o,null,null);t.default=s.exports},function(e,t,n){var i=n(17);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),(0,n(2).default)("48028a76",i,!0,{})},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".aplayer{font-family:Arial,Helvetica,sans-serif;color:#000;background-color:#fff;margin:5px;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.07),0 1px 5px 0 rgba(0,0,0,.1);box-shadow:0 2px 2px 0 rgba(0,0,0,.07),0 1px 5px 0 rgba(0,0,0,.1);border-radius:2px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;position:relative}.aplayer *{-webkit-box-sizing:content-box;box-sizing:content-box}.aplayer .aplayer-lrc-content{display:none}.aplayer .aplayer-body{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.aplayer .aplayer-body .aplayer-info{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:start;padding:14px 7px 0 10px;height:66px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.aplayer .aplayer-body .aplayer-info .aplayer-music{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-left:5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default;padding-bottom:2px}.aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-title{font-size:14px}.aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-author{font-size:12px;color:#666}.aplayer .aplayer-body .aplayer-info .aplayer-lrc{z-index:0}.aplayer audio[controls]{display:block;width:100%}.aplayer.aplayer-narrow{width:66px}.aplayer.aplayer-withlrc .aplayer-body .aplayer-pic{height:90px;width:90px}.aplayer.aplayer-withlrc .aplayer-body .aplayer-info{height:90px;padding:10px 7px 0}.aplayer.aplayer-withlist .aplayer-body .aplayer-info{border-bottom:1px solid #e9e9e9}.aplayer.aplayer-withlist .aplayer-body .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu{display:block}.aplayer.aplayer-float{z-index:1}@-webkit-keyframes aplayer-roll{0%{left:0}to{left:-100%}}@keyframes aplayer-roll{0%{left:0}to{left:-100%}}",""])},function(e,t,n){"use strict";t.a=function(e,t){for(var n=[],i={},r=0;r<t.length;r++){var a=t[r],o=a[0],s={id:e+":"+r,css:a[1],media:a[2],sourceMap:a[3]};i[o]?i[o].parts.push(s):n.push(i[o]={id:o,parts:[s]})}return n}},function(t,n){t.exports=e},function(e,t,n){"use strict";var i=n(6),r=n(45),a=n(0),o=function(e){n(21)},s=Object(a.a)(i.a,r.a,r.b,!1,o,null,null);t.a=s.exports},function(e,t,n){var i=n(22);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),(0,n(2).default)("082b31c5",i,!0,{})},function(e,t,n){var i=n(23);(e.exports=n(1)(!1)).push([e.i,".aplayer-float .aplayer-pic:active{cursor:move}.aplayer-pic{-ms-flex-negative:0;flex-shrink:0;position:relative;height:66px;width:66px;background-image:url("+i(n(24))+");background-size:cover;-webkit-transition:all .3s ease;transition:all .3s ease;cursor:pointer}.aplayer-pic:hover .aplayer-button{opacity:1}.aplayer-pic .aplayer-button{position:absolute;border-radius:50%;opacity:.8;text-shadow:0 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.2);box-shadow:0 1px 1px rgba(0,0,0,.2);background:rgba(0,0,0,.2);-webkit-transition:all .1s ease;transition:all .1s ease}.aplayer-pic .aplayer-button .aplayer-fill{fill:#fff}.aplayer-pic .aplayer-play{width:26px;height:26px;border:2px solid #fff;bottom:50%;right:50%;margin:0 -15px -15px 0}.aplayer-pic .aplayer-play .aplayer-icon-play{position:absolute;top:3px;left:4px;height:20px;width:20px}.aplayer-pic .aplayer-pause{width:16px;height:16px;border:2px solid #fff;bottom:4px;right:4px}.aplayer-pic .aplayer-pause .aplayer-icon-pause{position:absolute;top:2px;left:2px;height:12px;width:12px}",""])},function(e,t){e.exports=function(e){return"string"!=typeof e?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),/["'() \t\n]/.test(e)?'"'+e.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':e)}},function(e,t){e.exports="data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAeAAD/4QMfaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE2NjQ3NUZBM0Y4RDExRTY4NzJCRDdCNkZCQTQ0MjNBIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE2NjQ3NUY5M0Y4RDExRTY4NzJCRDdCNkZCQTQ0MjNBIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSI5OENEMEFFRjM0NTI1NjE0NEREQkU4RjkxRjAwNjM3NiIgc3RSZWY6ZG9jdW1lbnRJRD0iOThDRDBBRUYzNDUyNTYxNDREREJFOEY5MUYwMDYzNzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAQCwsLDAsQDAwQFw8NDxcbFBAQFBsfFxcXFxcfHhca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"},function(e,t,n){var i=n(26);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),(0,n(2).default)("a4518b4e",i,!0,{})},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".aplayer-icon{width:15px;height:15px;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;vertical-align:middle;padding:0;font-size:12px;margin:0;display:inline}.aplayer-icon:hover{opacity:1}.aplayer-icon .aplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}",""])},function(e,t,n){function i(e){return n(r(e))}function r(e){var t=a[e];if(!(t+1))throw new Error("Cannot find module '"+e+"'.");return t}var a={"./loading.svg":28,"./lrc.svg":29,"./menu.svg":30,"./no-repeat.svg":31,"./pause.svg":32,"./play.svg":33,"./repeat-all-legacy.svg":34,"./repeat-all.svg":35,"./repeat-one-legacy.svg":36,"./repeat-one.svg":37,"./shuffle.svg":38,"./skip.svg":39,"./volume-down.svg":40,"./volume-off.svg":41,"./volume-up.svg":42};i.keys=function(){return Object.keys(a)},i.resolve=r,e.exports=i,i.id=27},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M4 16c0-6.6 5.4-12 12-12s12 5.4 12 12c0 1.2-0.8 2-2 2s-2-0.8-2-2c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8c1.2 0 2 0.8 2 2s-0.8 2-2 2c-6.6 0-12-5.4-12-12z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="-5 0 32 32"><path d="M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M2.667 7.027l1.707-1.693 22.293 22.293-1.693 1.707-4-4h-11.64v4l-5.333-5.333 5.333-5.333v4h8.973l-8.973-8.973v0.973h-2.667v-3.64l-4-4zM22.667 17.333h2.667v5.573l-2.667-2.667v-2.907zM22.667 6.667v-4l5.333 5.333-5.333 5.333v-4h-10.907l-2.667-2.667h13.573z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="-8 0 32 32"><path d="M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="-8 0 32 32"><path d="M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="-1 0 32 32"><path d="M25.6 9.92q1.344 0 2.272 0.928t0.928 2.272v9.28q0 1.28-0.928 2.24t-2.272 0.96h-22.4q-1.28 0-2.24-0.96t-0.96-2.24v-9.28q0-1.344 0.96-2.272t2.24-0.928h8v-3.52l6.4 5.76-6.4 5.76v-3.52h-6.72v6.72h19.84v-6.72h-4.8v-4.48h6.080z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M9.333 9.333h13.333v4l5.333-5.333-5.333-5.333v4h-16v8h2.667v-5.333zM22.667 22.667h-13.333v-4l-5.333 5.333 5.333 5.333v-4h16v-8h-2.667v5.333z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 38 32"><path d="M2.072 21.577c0.71-0.197 1.125-0.932 0.928-1.641-0.221-0.796-0.333-1.622-0.333-2.457 0-5.049 4.108-9.158 9.158-9.158h5.428c0.056-0.922 0.221-1.816 0.482-2.667h-5.911c-3.158 0-6.128 1.23-8.361 3.463s-3.463 5.203-3.463 8.361c0 1.076 0.145 2.143 0.431 3.171 0.164 0.59 0.7 0.976 1.284 0.976 0.117 0 0.238-0.016 0.357-0.049zM21.394 25.613h-12.409v-2.362c0-0.758-0.528-1.052-1.172-0.652l-5.685 3.522c-0.644 0.4-0.651 1.063-0.014 1.474l5.712 3.69c0.637 0.411 1.158 0.127 1.158-0.63v-2.374h12.409c3.158 0 6.128-1.23 8.361-3.463 1.424-1.424 2.44-3.148 2.99-5.029-0.985 0.368-2.033 0.606-3.125 0.691-1.492 3.038-4.619 5.135-8.226 5.135zM28.718 0c-4.985 0-9.026 4.041-9.026 9.026s4.041 9.026 9.026 9.026 9.026-4.041 9.026-9.026-4.041-9.026-9.026-9.026zM30.392 13.827h-1.728v-6.822c-0.635 0.576-1.433 1.004-2.407 1.285v-1.713c0.473-0.118 0.975-0.325 1.506-0.62 0.532-0.325 0.975-0.665 1.329-1.034h1.3v8.904z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M9.333 9.333h13.333v4l5.333-5.333-5.333-5.333v4h-16v8h2.667v-5.333zM22.667 22.667h-13.333v-4l-5.333 5.333 5.333 5.333v-4h16v-8h-2.667v5.333zM17.333 20v-8h-1.333l-2.667 1.333v1.333h2v5.333h2z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M22.667 4l7 6-7 6 7 6-7 6v-4h-3.653l-3.76-3.76 2.827-2.827 2.587 2.587h2v-8h-2l-12 12h-6v-4h4.347l12-12h3.653v-4zM2.667 8h6l3.76 3.76-2.827 2.827-2.587-2.587h-4.347v-4z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M25.468 6.947c-0.326-0.172-0.724-0.151-1.030 0.057l-6.438 4.38v-3.553c0-0.371-0.205-0.71-0.532-0.884-0.326-0.172-0.724-0.151-1.030 0.057l-12 8.164c-0.274 0.186-0.438 0.496-0.438 0.827s0.164 0.641 0.438 0.827l12 8.168c0.169 0.115 0.365 0.174 0.562 0.174 0.16 0 0.321-0.038 0.468-0.116 0.327-0.173 0.532-0.514 0.532-0.884v-3.556l6.438 4.382c0.169 0.115 0.365 0.174 0.562 0.174 0.16 0 0.321-0.038 0.468-0.116 0.327-0.173 0.532-0.514 0.532-0.884v-16.333c0-0.371-0.205-0.71-0.532-0.884z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"></path></svg>'},function(e,t){e.exports='<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 32 32"><path d="M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z"></path></svg>'},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("svg",{style:e.style,attrs:{"xmlns:xlink":"http://www.w3.org/1999/xlink",height:"100%",version:"1.1",viewBox:e.svg.viewBox,width:"100%"}},[n("use",{attrs:{"xlink:href":"#aplayer-${type}"}}),e._v(" "),n("path",{staticClass:"aplayer-fill",attrs:{d:e.svg.d}})])},r=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("button",{staticClass:"aplayer-icon",attrs:{type:"button"}},[n("icon",{attrs:{type:e.icon}})],1)},r=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"aplayer-pic",style:e.currentPicStyleObj,on:{mousedown:e.onDragBegin,click:e.onClick}},[n("div",{staticClass:"aplayer-button",class:e.playing?"aplayer-pause":"aplayer-play"},[n("icon-button",{class:e.playing?"aplayer-icon-pause":"aplayer-icon-play",attrs:{icon:e.playing?"pause":"play"}})],1)])},r=[]},function(e,t,n){"use strict";var i=n(10),r=n(49),a=n(0),o=function(e){n(47)},s=Object(a.a)(i.a,r.a,r.b,!1,o,null,null);t.a=s.exports},function(e,t,n){var i=n(48);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),(0,n(2).default)("7b9d1402",i,!0,{})},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".aplayer-list{overflow:hidden}.aplayer-list.slide-v-enter-active,.aplayer-list.slide-v-leave-active{-webkit-transition:height .5s ease;transition:height .5s ease;will-change:height}.aplayer-list.slide-v-enter,.aplayer-list.slide-v-leave-to{height:0!important}.aplayer-list ol{list-style-type:none;margin:0;padding:0;overflow-y:auto}.aplayer-list ol::-webkit-scrollbar{width:5px}.aplayer-list ol::-webkit-scrollbar-track{background-color:#f9f9f9}.aplayer-list ol::-webkit-scrollbar-thumb{border-radius:3px;background-color:#eee}.aplayer-list ol::-webkit-scrollbar-thumb:hover{background-color:#ccc}.aplayer-list ol:hover li.aplayer-list-light:not(:hover){background-color:inherit;-webkit-transition:inherit;transition:inherit}.aplayer-list ol:not(:hover) li.aplayer-list-light{-webkit-transition:background-color .6s ease;transition:background-color .6s ease}.aplayer-list ol li{position:relative;height:32px;line-height:32px;padding:0 15px;font-size:12px;border-top:1px solid #e9e9e9;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease;overflow:hidden;margin:0;text-align:start;display:-webkit-box;display:-ms-flexbox;display:flex}.aplayer-list ol li:first-child{border-top:none}.aplayer-list ol li.aplayer-list-light,.aplayer-list ol li:hover{background:#efefef}.aplayer-list ol li.aplayer-list-light .aplayer-list-cur{display:inline-block}.aplayer-list ol li .aplayer-list-cur{display:none;width:3px;height:22px;position:absolute;left:0;top:5px;-webkit-transition:background-color .3s;transition:background-color .3s}.aplayer-list ol li .aplayer-list-index{color:#666;margin-right:12px}.aplayer-list ol li .aplayer-list-title{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.aplayer-list ol li .aplayer-list-author{-ms-flex-negative:0;flex-shrink:0;color:#666;float:right}",""])},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"slide-v"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],ref:"list",staticClass:"aplayer-list",style:e.listHeightStyle},[n("ol",{ref:"ol",style:e.listHeightStyle},e._l(e.musicList,function(t,i){return n("li",{key:i,class:{"aplayer-list-light":t===e.currentMusic},on:{click:function(n){e.$emit("selectsong",t)}}},[n("span",{staticClass:"aplayer-list-cur",style:{background:e.theme}}),e._v(" "),n("span",{staticClass:"aplayer-list-index"},[e._v(e._s(i+1))]),e._v(" "),n("span",{staticClass:"aplayer-list-title"},[e._v(e._s(t.title||"Untitled"))]),e._v(" "),n("span",{staticClass:"aplayer-list-author"},[e._v(e._s(t.artist||t.author||"Unknown"))])])}))])])},r=[]},function(e,t,n){"use strict";var i=n(11),r=n(61),a=n(0),o=function(e){n(51)},s=Object(a.a)(i.a,r.a,r.b,!1,o,null,null);t.a=s.exports},function(e,t,n){var i=n(52);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),(0,n(2).default)("c97c1d8a",i,!0,{})},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".aplayer-controller,.aplayer-controller .aplayer-time{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.aplayer-controller .aplayer-time{height:17px;color:#999;font-size:11px;padding-left:7px}.aplayer-controller .aplayer-time .aplayer-volume-wrap{margin-left:4px;margin-right:4px}.aplayer-controller .aplayer-time .aplayer-icon{cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease;margin-left:4px}.aplayer-controller .aplayer-time .aplayer-icon.inactive{opacity:.3}.aplayer-controller .aplayer-time .aplayer-icon .aplayer-fill{fill:#666}.aplayer-controller .aplayer-time .aplayer-icon:hover .aplayer-fill{fill:#000}.aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu{display:none}.aplayer-controller .aplayer-time .aplayer-volume-wrap+.aplayer-icon{margin-left:0}.aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-menu,.aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-mode{display:none}",""])},function(e,t,n){"use strict";var i=n(12),r=n(56),a=n(0),o=function(e){n(54)},s=Object(a.a)(i.a,r.a,r.b,!1,o,null,null);t.a=s.exports},function(e,t,n){var i=n(55);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),(0,n(2).default)("6f66d8c5",i,!0,{})},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,".aplayer-bar-wrap{margin:0 0 0 5px;padding:4px 0;cursor:pointer;-webkit-box-flex:1;-ms-flex:1;flex:1}.aplayer-bar-wrap .aplayer-bar{position:relative;height:2px;width:100%;background:#cdcdcd}.aplayer-bar-wrap .aplayer-bar .aplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:#aaa;height:2px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.aplayer-bar-wrap .aplayer-bar .aplayer-played{position:absolute;left:0;top:0;bottom:0;height:2px;-webkit-transition:background-color .3s;transition:background-color .3s;will-change:width}.aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{position:absolute;top:0;right:5px;margin-top:-5px;margin-right:-10px;width:10px;height:10px;border:1px solid;-webkit-transform:scale(.8);transform:scale(.8);will-change:transform;-webkit-transition:background-color .3s,border-color .3s,-webkit-transform .3s;transition:background-color .3s,border-color .3s,-webkit-transform .3s;transition:transform .3s,background-color .3s,border-color .3s;transition:transform .3s,background-color .3s,border-color .3s,-webkit-transform .3s;border-radius:50%;background:#fff;cursor:pointer;overflow:hidden}.aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb:hover{-webkit-transform:scale(1);transform:scale(1)}.aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb .aplayer-loading-icon{display:none;width:100%;height:100%}.aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb .aplayer-loading-icon svg{position:absolute;-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;fill:#fff}.aplayer-loading .aplayer-bar-wrap .aplayer-bar .aplayer-thumb .aplayer-loading-icon{display:block}.aplayer-loading .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{-webkit-transform:scale(1);transform:scale(1)}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}",""])},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"barWrap",staticClass:"aplayer-bar-wrap",on:{mousedown:e.onThumbMouseDown,touchstart:e.onThumbTouchStart}},[n("div",{staticClass:"aplayer-bar"},[n("div",{staticClass:"aplayer-loaded",style:{width:100*e.loadProgress+"%"}}),e._v(" "),n("div",{staticClass:"aplayer-played",style:{width:100*e.playProgress+"%",background:e.theme}},[n("span",{ref:"thumb",staticClass:"aplayer-thumb",style:{borderColor:e.theme,backgroundColor:e.thumbHovered?e.theme:"#fff"},on:{mouseover:function(t){e.thumbHovered=!0},mouseout:function(t){e.thumbHovered=!1}}},[n("span",{staticClass:"aplayer-loading-icon",style:{backgroundColor:e.theme}},[n("icon",{attrs:{type:"loading"}})],1)])])])])},r=[]},function(e,t,n){"use strict";var i=n(13),r=n(60),a=n(0),o=function(e){n(58)},s=Object(a.a)(i.a,r.a,r.b,!1,o,null,null);t.a=s.exports},function(e,t,n){var i=n(59);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),(0,n(2).default)("28c86b36",i,!0,{})},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,'.aplayer-volume-wrap{position:relative;cursor:pointer;z-index:0}.aplayer-volume-wrap:hover .aplayer-volume-bar-wrap{display:block}.aplayer-volume-wrap .aplayer-volume-bar-wrap{display:none;position:absolute;bottom:15px;left:-4px;right:-4px;height:40px;z-index:-1;-webkit-transition:all .2s ease;transition:all .2s ease}.aplayer-volume-wrap .aplayer-volume-bar-wrap:after{content:"";position:absolute;bottom:-16px;left:0;right:0;height:62px;background-color:#fff;-webkit-box-shadow:0 0 2px 0 rgba(0,0,0,.07),0 0 5px 0 rgba(0,0,0,.1);box-shadow:0 0 2px 0 rgba(0,0,0,.07),0 0 5px 0 rgba(0,0,0,.1)}.aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar{position:absolute;bottom:0;left:11px;width:5px;height:40px;background:#aaa;border-radius:2.5px;overflow:hidden;z-index:1}.aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume{position:absolute;bottom:0;left:0;right:0;-webkit-transition:height .1s ease,background-color .3s;transition:height .1s ease,background-color .3s;will-change:height}',""])},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"aplayer-volume-wrap"},[n("icon-button",{class:"aplayer-icon-"+e.volumeIcon,attrs:{icon:e.volumeIcon},nativeOn:{click:function(t){e.$emit("togglemute")}}}),e._v(" "),n("div",{staticClass:"aplayer-volume-bar-wrap",on:{mousedown:e.onBarMouseDown}},[n("div",{ref:"bar",staticClass:"aplayer-volume-bar"},[n("div",{staticClass:"aplayer-volume",style:{height:e.muted?0:Math.trunc(100*e.volume)+"%",background:e.theme}})])])],1)},r=[]},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"aplayer-controller"},[n("v-progress",{attrs:{loadProgress:e.loadProgress,playProgress:e.playProgress,theme:e.theme},on:{dragbegin:function(t){return e.$emit("dragbegin",t)},dragend:function(t){return e.$emit("dragend",t)},dragging:function(t){return e.$emit("dragging",t)}}}),e._v(" "),n("div",{staticClass:"aplayer-time"},[n("div",{staticClass:"aplayer-time-inner"},[e._v("\n      - "),n("span",{staticClass:"aplayer-ptime"},[e._v(e._s(e.secondToTime(e.stat.playedTime)))]),e._v(" / "),n("span",{staticClass:"aplayer-dtime"},[e._v(e._s(e.secondToTime(e.stat.duration)))])]),e._v(" "),e.$parent.isMobile?e._e():n("volume",{attrs:{volume:e.volume,theme:e.theme,muted:e.muted},on:{togglemute:function(t){e.$emit("togglemute")},setvolume:function(t){return e.$emit("setvolume",t)}}}),e._v(" "),n("icon-button",{staticClass:"aplayer-icon-mode",class:{inactive:!e.shuffle},attrs:{icon:"shuffle"},nativeOn:{click:function(t){e.$emit("toggleshuffle")}}}),e._v(" "),n("icon-button",{staticClass:"aplayer-icon-mode",class:{inactive:"no-repeat"===e.repeat},attrs:{icon:"repeat-one"===e.repeat?"repeat-one":"repeat-all"},nativeOn:{click:function(t){e.$emit("nextmode")}}}),e._v(" "),n("icon-button",{staticClass:"aplayer-icon-menu",class:{inactive:!e.$parent.showList},attrs:{icon:"menu"},nativeOn:{click:function(t){e.$emit("togglelist")}}})],1)],1)},r=[]},function(e,t,n){"use strict";var i=n(14),r=n(65),a=n(0),o=function(e){n(63)},s=Object(a.a)(i.a,r.a,r.b,!1,o,null,null);t.a=s.exports},function(e,t,n){var i=n(64);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals),(0,n(2).default)("229083b6",i,!0,{})},function(e,t,n){(e.exports=n(1)(!1)).push([e.i,'.aplayer-lrc{position:relative;height:30px;text-align:center;overflow:hidden;margin-bottom:7px}.aplayer-lrc:before{top:0;height:10%;background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(hsla(0,0%,100%,0)));background:linear-gradient(180deg,#fff 0,hsla(0,0%,100%,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#00ffffff",GradientType=0)}.aplayer-lrc:after,.aplayer-lrc:before{position:absolute;z-index:1;display:block;overflow:hidden;width:100%;content:" "}.aplayer-lrc:after{bottom:0;height:33%;background:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,0)),to(hsla(0,0%,100%,.8)));background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.8));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#00ffffff",endColorstr="#ccffffff",GradientType=0)}.aplayer-lrc p{font-size:12px;color:#666;line-height:16px;height:16px;padding:0;margin:0;-webkit-transition:all .5s ease-out;transition:all .5s ease-out;opacity:.4;overflow:hidden}.aplayer-lrc p.aplayer-lrc-current{opacity:1;overflow:visible;height:auto}.aplayer-lrc .aplayer-lrc-contents{width:100%;-webkit-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default}',""])},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"aplayer-lrc"},[n("div",{staticClass:"aplayer-lrc-contents",style:e.transformStyle},e._l(e.lrcLines,function(t,i){return n("p",{key:i,class:{"aplayer-lrc-current":i===e.currentLineIndex}},[e._v("\n      "+e._s(t[1])+"\n    ")])}))])},r=[]},function(e,n){if(void 0===t){var i=new Error('Cannot find module "undefined"');throw i.code="MODULE_NOT_FOUND",i}e.exports=t},function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r});var i=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"aplayer",class:{"aplayer-narrow":e.isMiniMode,"aplayer-withlist":!e.isMiniMode&&e.musicList.length>0,"aplayer-withlrc":!e.isMiniMode&&(!!e.$slots.display||e.shouldShowLrc),"aplayer-float":e.isFloatMode,"aplayer-loading":e.isPlaying&&e.isLoading},style:e.floatStyleObj},[n("div",{staticClass:"aplayer-body"},[n("thumbnail",{attrs:{pic:e.currentMusic.pic,playing:e.isPlaying,"enable-drag":e.isFloatMode,theme:e.currentTheme},on:{toggleplay:e.toggle,dragbegin:e.onDragBegin,dragging:e.onDragAround}}),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:!e.isMiniMode,expression:"!isMiniMode"}],staticClass:"aplayer-info"},[n("div",{staticClass:"aplayer-music"},[n("span",{staticClass:"aplayer-title"},[e._v(e._s(e.currentMusic.title||"Untitled"))]),e._v(" "),n("span",{staticClass:"aplayer-author"},[e._v(e._s(e.currentMusic.artist||e.currentMusic.author||"Unknown"))])]),e._v(" "),e._t("display",[e.shouldShowLrc?n("lyrics",{attrs:{"current-music":e.currentMusic,"play-stat":e.playStat}}):e._e()],{currentMusic:e.currentMusic,playStat:e.playStat}),e._v(" "),n("controls",{attrs:{shuffle:e.shouldShuffle,repeat:e.repeatMode,stat:e.playStat,volume:e.audioVolume,muted:e.isAudioMuted,theme:e.currentTheme},on:{toggleshuffle:function(t){e.shouldShuffle=!e.shouldShuffle},togglelist:function(t){e.showList=!e.showList},togglemute:e.toggleMute,setvolume:e.setAudioVolume,dragbegin:e.onProgressDragBegin,dragend:e.onProgressDragEnd,dragging:e.onProgressDragging,nextmode:e.setNextMode}})],2)],1),e._v(" "),n("audio",{ref:"audio"}),e._v(" "),n("music-list",{attrs:{show:e.showList&&!e.isMiniMode,"current-music":e.currentMusic,"music-list":e.musicList,"play-index":e.playIndex,listmaxheight:e.listmaxheight||e.listMaxHeight,theme:e.currentTheme},on:{selectsong:e.onSelectSong}})],1)},r=[]}]).default},e.exports=i(n("IvJb"),function(){try{return n("1m0t")}catch(e){}}())},dGkK:function(e,t,n){var i=n("/MtV"),r=n("CeJ6");n("GsKu"),n("hLyB"),n("a16e"),n("qQsW"),i.registerPreprocessor(r)},dK5h:function(e,t,n){var i=n("5YEj"),r=n("OACL");n("b+Qj"),n("2vAB"),i.registerCoordinateSystem("bmap",r),i.registerAction({type:"bmapRoam",event:"bmapRoam",update:"updateLayout"},function(e,t){t.eachComponent("bmap",function(e){var t=e.getBMap(),n=t.getCenter();e.setCenterAndZoom([n.lng,n.lat],t.getZoom())})});t.version="1.0.0"},dP6I:function(e,t,n){n("KJ1c").__DEV__;var i=n("bmdq"),r=n("YR6M").extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(e,t){return i(this.getSource(),this)},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,clipOverflow:!0,label:{position:"top"},lineStyle:{width:2,type:"solid"},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0}});e.exports=r},dRQw:function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=n("gxMf"),o=n("uxQp"),s=n("g0yf"),l=n("3m5Y"),u=n("Vus3");function c(e,t,n,i,r){var s=d(n.get("value"),t.axis,t.ecModel,n.get("seriesDataIndices"),{precision:n.get("label.precision"),formatter:n.get("label.formatter")}),l=n.getModel("label"),u=o.normalizeCssArray(l.get("padding")||0),c=l.getFont(),h=a.getBoundingRect(s,c),f=r.position,p=h.width+u[1]+u[3],m=h.height+u[0]+u[2],g=r.align;"right"===g&&(f[0]-=p),"center"===g&&(f[0]-=p/2);var v=r.verticalAlign;"bottom"===v&&(f[1]-=m),"middle"===v&&(f[1]-=m/2),function(e,t,n,i){var r=i.getWidth(),a=i.getHeight();e[0]=Math.min(e[0]+t,r)-t,e[1]=Math.min(e[1]+n,a)-n,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}(f,p,m,i);var y=l.get("backgroundColor");y&&"auto"!==y||(y=t.get("axisLine.lineStyle.color")),e.label={shape:{x:0,y:0,width:p,height:m,r:l.get("borderRadius")},position:f.slice(),style:{text:s,textFont:c,textFill:l.getTextColor(),textPosition:"inside",fill:y,stroke:l.get("borderColor")||"transparent",lineWidth:l.get("borderWidth")||0,shadowBlur:l.get("shadowBlur"),shadowColor:l.get("shadowColor"),shadowOffsetX:l.get("shadowOffsetX"),shadowOffsetY:l.get("shadowOffsetY")},z2:10}}function d(e,t,n,r,a){e=t.scale.parse(e);var o=t.scale.getLabel(e,{precision:a.precision}),s=a.formatter;if(s){var u={value:l.getAxisRawValue(t,e),seriesData:[]};i.each(r,function(e){var t=n.getSeriesByIndex(e.seriesIndex),i=e.dataIndexInside,r=t&&t.getDataParams(i);r&&u.seriesData.push(r)}),i.isString(s)?o=s.replace("{value}",o):i.isFunction(s)&&(o=s(u))}return o}function h(e,t,n){var i=s.create();return s.rotate(i,i,n.rotation),s.translate(i,i,n.position),r.applyTransform([e.dataToCoord(t),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}t.buildElStyle=function(e){var t,n=e.get("type"),i=e.getModel(n+"Style");return"line"===n?(t=i.getLineStyle()).fill=null:"shadow"===n&&((t=i.getAreaStyle()).stroke=null),t},t.buildLabelElOption=c,t.getValueLabel=d,t.getTransformedPosition=h,t.buildCartesianSingleLabelElOption=function(e,t,n,i,r,a){var o=u.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get("label.margin"),c(t,i,r,a,{position:h(i.axis,e,n),align:o.textAlign,verticalAlign:o.textVerticalAlign})},t.makeLineShape=function(e,t,n){return{x1:e[n=n||0],y1:e[1-n],x2:t[n],y2:t[1-n]}},t.makeRectShape=function(e,t,n){return{x:e[n=n||0],y:e[1-n],width:t[n],height:t[1-n]}},t.makeSectorShape=function(e,t,n,i,r,a){return{cx:e,cy:t,r0:n,r:i,startAngle:r,endAngle:a,clockwise:!0}}},dd6o:function(e,t,n){"use strict";var i=n("8r5Y"),r=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,a,o={};return e?(i.forEach(e.split("\n"),function(e){if(a=e.indexOf(":"),t=i.trim(e.substr(0,a)).toLowerCase(),n=i.trim(e.substr(a+1)),t){if(o[t]&&r.indexOf(t)>=0)return;o[t]="set-cookie"===t?(o[t]?o[t]:[]).concat([n]):o[t]?o[t]+", "+n:n}}),o):o}},dewo:function(e,t,n){var i=n("/MtV"),r=n("QmbI"),a=n("Nrx1"),o=n("7eLB"),s=a.toolbox.restore;function l(e){this.model=e}l.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:s.title},l.prototype.onclick=function(e,t,n){r.clear(e),t.dispatchAction({type:"restore",from:this.uid})},o.register("restore",l),i.registerAction({type:"restore",event:"restore",update:"prepareAndUpdate"},function(e,t){t.resetOption("recreate")});var u=l;e.exports=u},dewq:function(e,t,n){var i=n("GKMz"),r=n("vqvJ"),a=n("6/6c"),o=i.each,s=i.clone,l=i.map,u=i.merge,c=/^(min|max)?(.+)$/;function d(e){this._api=e,this._timelineOptions=[],this._mediaList=[],this._mediaDefault,this._currentMediaIndices=[],this._optionBackup,this._newBaseOption}function h(e,t,n){var r={width:t,height:n,aspectratio:t/n},a=!0;return i.each(e,function(e,t){var n=t.match(c);if(n&&n[1]&&n[2]){var i=n[1],o=n[2].toLowerCase();(function(e,t,n){return"min"===n?e>=t:"max"===n?e<=t:e===t})(r[o],e,i)||(a=!1)}}),a}d.prototype={constructor:d,setOption:function(e,t){e&&i.each(r.normalizeToArray(e.series),function(e){e&&e.data&&i.isTypedArray(e.data)&&i.setAsPrimitive(e.data)}),e=s(e,!0);var n,c,d=this._optionBackup,h=function(e,t,n){var r,a,s=[],l=[],u=e.timeline;e.baseOption&&(a=e.baseOption);(u||e.options)&&(a=a||{},s=(e.options||[]).slice());if(e.media){a=a||{};var c=e.media;o(c,function(e){e&&e.option&&(e.query?l.push(e):r||(r=e))})}a||(a=e);a.timeline||(a.timeline=u);return o([a].concat(s).concat(i.map(l,function(e){return e.option})),function(e){o(t,function(t){t(e,n)})}),{baseOption:a,timelineOptions:s,mediaDefault:r,mediaList:l}}.call(this,e,t,!d);this._newBaseOption=h.baseOption,d?(n=d.baseOption,c=h.baseOption,o(c=c||{},function(e,t){if(null!=e){var i=n[t];if(a.hasClass(t)){e=r.normalizeToArray(e),i=r.normalizeToArray(i);var o=r.mappingToExists(i,e);n[t]=l(o,function(e){return e.option&&e.exist?u(e.exist,e.option,!0):e.exist||e.option})}else n[t]=u(i,e,!0)}}),h.timelineOptions.length&&(d.timelineOptions=h.timelineOptions),h.mediaList.length&&(d.mediaList=h.mediaList),h.mediaDefault&&(d.mediaDefault=h.mediaDefault)):this._optionBackup=h},mountOption:function(e){var t=this._optionBackup;return this._timelineOptions=l(t.timelineOptions,s),this._mediaList=l(t.mediaList,s),this._mediaDefault=s(t.mediaDefault),this._currentMediaIndices=[],s(e?t.baseOption:this._newBaseOption)},getTimelineOption:function(e){var t,n=this._timelineOptions;if(n.length){var i=e.getComponent("timeline");i&&(t=s(n[i.getCurrentIndex()],!0))}return t},getMediaOption:function(e){var t,n,i=this._api.getWidth(),r=this._api.getHeight(),a=this._mediaList,o=this._mediaDefault,u=[],c=[];if(!a.length&&!o)return c;for(var d=0,f=a.length;d<f;d++)h(a[d].query,i,r)&&u.push(d);return!u.length&&o&&(u=[-1]),u.length&&(t=u,n=this._currentMediaIndices,t.join(",")!==n.join(","))&&(c=l(u,function(e){return s(-1===e?o.option:a[e].option)})),this._currentMediaIndices=u,c}};var f=d;e.exports=f},diMn:function(e,t){var n=2311;e.exports=function(){return n++}},dntg:function(e,t){var n="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){setTimeout(e,16)};e.exports=n},duoa:function(e,t,n){var i=n("GKMz").each,r=n("R+dN"),a=r.simpleLayout,o=r.simpleLayoutEdge;e.exports=function(e,t){e.eachSeriesByType("graph",function(e){var t=e.get("layout"),n=e.coordinateSystem;if(n&&"view"!==n.type){var r=e.getData(),s=[];i(n.dimensions,function(e){s=s.concat(r.mapDimension(e,!0))});for(var l=0;l<r.count();l++){for(var u=[],c=!1,d=0;d<s.length;d++){var h=r.get(s[d],l);isNaN(h)||(c=!0),u.push(h)}c?r.setItemLayout(l,n.dataToPoint(u)):r.setItemLayout(l,[NaN,NaN])}o(r.graph)}else t&&"none"!==t||a(e)})}},dvI7:function(e,t,n){var i=n("aVg8").subPixelOptimize,r=n("gbpp"),a=n("abCA").parsePercent,o=n("GKMz").retrieve2,s="undefined"!=typeof Float32Array?Float32Array:Array,l={seriesType:"candlestick",plan:r(),reset:function(e){var t=e.coordinateSystem,n=e.getData(),r=function(e,t){var n,i=e.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/t.count()),s=a(o(e.get("barMaxWidth"),r),r),l=a(o(e.get("barMinWidth"),1),r),u=e.get("barWidth");return null!=u?a(u,r):Math.max(Math.min(r/2,s),l)}(e,n),l=0,c=1,d=["x","y"],h=n.mapDimension(d[l]),f=n.mapDimension(d[c],!0),p=f[0],m=f[1],g=f[2],v=f[3];if(n.setLayout({candleWidth:r,isSimpleBox:r<=1.3}),!(null==h||f.length<4))return{progress:e.pipelineContext.large?function(e,n){var i,r,a=new s(5*e.count),o=0,d=[],f=[];for(;null!=(r=e.next());){var y=n.get(h,r),b=n.get(p,r),_=n.get(m,r),x=n.get(g,r),w=n.get(v,r);isNaN(y)||isNaN(x)||isNaN(w)?(a[o++]=NaN,o+=4):(a[o++]=u(n,r,b,_,m),d[l]=y,d[c]=x,i=t.dataToPoint(d,null,f),a[o++]=i?i[0]:NaN,a[o++]=i?i[1]:NaN,d[c]=w,i=t.dataToPoint(d,null,f),a[o++]=i?i[1]:NaN)}n.setLayout("largePoints",a)}:function(e,n){var a;for(;null!=(a=e.next());){var o=n.get(h,a),s=n.get(p,a),d=n.get(m,a),f=n.get(g,a),y=n.get(v,a),b=Math.min(s,d),_=Math.max(s,d),x=k(b,o),w=k(_,o),S=k(f,o),C=k(y,o),M=[];T(M,w,0),T(M,x,1),M.push(I(C),I(w),I(S),I(x)),n.setItemLayout(a,{sign:u(n,a,s,d,m),initBaseline:s>d?w[c]:x[c],ends:M,brushRect:A(f,y,o)})}function k(e,n){var i=[];return i[l]=n,i[c]=e,isNaN(n)||isNaN(e)?[NaN,NaN]:t.dataToPoint(i)}function T(e,t,n){var a=t.slice(),o=t.slice();a[l]=i(a[l]+r/2,1,!1),o[l]=i(o[l]-r/2,1,!0),n?e.push(a,o):e.push(o,a)}function A(e,t,n){var i=k(e,n),a=k(t,n);return i[l]-=r/2,a[l]-=r/2,{x:i[0],y:i[1],width:c?r:a[0]-i[0],height:c?a[1]-i[1]:r}}function I(e){return e[l]=i(e[l],1),e}}}}};function u(e,t,n,i,r){return n>i?-1:n<i?1:t>0?e.get(r,t-1)<=i?1:-1:1}e.exports=l},e1MS:function(e,t,n){for(var i=n("/MtV"),r=n("HT+0"),a=function(){},o=["treemapZoomToNode","treemapRender","treemapMove"],s=0;s<o.length;s++)i.registerAction({type:o[s],update:"updateView"},a);i.registerAction({type:"treemapRootToNode",update:"updateView"},function(e,t){t.eachComponent({mainType:"series",subType:"treemap",query:e},function(t,n){var i=r.retrieveTargetInfo(e,["treemapZoomToNode","treemapRootToNode"],t);if(i){var a=t.getViewRoot();a&&(e.direction=r.aboveViewRoot(a,i.node)?"rollUp":"drillDown"),t.resetViewRoot(i.node)}})})},e7W4:function(e,t,n){var i=n("aVg8"),r=n("pgBU"),a=n("EvF4"),o=n("oxQp"),s=i.extendShape({shape:{polyline:!1,curveness:0,segs:[]},buildPath:function(e,t){var n=t.segs,i=t.curveness;if(t.polyline)for(var r=0;r<n.length;){var a=n[r++];if(a>0){e.moveTo(n[r++],n[r++]);for(var o=1;o<a;o++)e.lineTo(n[r++],n[r++])}}else for(r=0;r<n.length;){var s=n[r++],l=n[r++],u=n[r++],c=n[r++];if(e.moveTo(s,l),i>0){var d=(s+u)/2-(l-c)*i,h=(l+c)/2-(u-s)*i;e.quadraticCurveTo(d,h,u,c)}else e.lineTo(u,c)}},findDataIndex:function(e,t){var n=this.shape,i=n.segs,r=n.curveness;if(n.polyline)for(var s=0,l=0;l<i.length;){var u=i[l++];if(u>0)for(var c=i[l++],d=i[l++],h=1;h<u;h++){var f=i[l++],p=i[l++];if(a.containStroke(c,d,f,p))return s}s++}else for(s=0,l=0;l<i.length;){c=i[l++],d=i[l++],f=i[l++],p=i[l++];if(r>0){var m=(c+f)/2-(d-p)*r,g=(d+p)/2-(f-c)*r;if(o.containStroke(c,d,m,g,f,p))return s}else if(a.containStroke(c,d,f,p))return s;s++}return-1}});function l(){this.group=new i.Group}var u=l.prototype;u.isPersistent=function(){return!this._incremental},u.updateData=function(e){this.group.removeAll();var t=new s({rectHover:!0,cursor:"default"});t.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(t,e),this.group.add(t),this._incremental=null},u.incrementalPrepareUpdate=function(e){this.group.removeAll(),this._clearIncremental(),e.count()>5e5?(this._incremental||(this._incremental=new r({silent:!0})),this.group.add(this._incremental)):this._incremental=null},u.incrementalUpdate=function(e,t){var n=new s;n.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(n,t,!!this._incremental),this._incremental?this._incremental.addDisplayable(n,!0):(n.rectHover=!0,n.cursor="default",n.__startIndex=e.start,this.group.add(n))},u.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},u._setCommon=function(e,t,n){var i=t.hostModel;e.setShape({polyline:i.get("polyline"),curveness:i.get("lineStyle.curveness")}),e.useStyle(i.getModel("lineStyle").getLineStyle()),e.style.strokeNoScale=!0;var r=t.getVisual("color");r&&e.setStyle("stroke",r),e.setStyle("fill"),n||(e.seriesIndex=i.seriesIndex,e.on("mousemove",function(t){e.dataIndex=null;var n=e.findDataIndex(t.offsetX,t.offsetY);n>0&&(e.dataIndex=n+e.__startIndex)}))},u._clearIncremental=function(){var e=this._incremental;e&&e.clearDisplaybles()};var c=l;e.exports=c},e9XV:function(e,t,n){var i=n("GKMz"),r=n("7eLB"),a=n("Nrx1").toolbox.brush;function o(e,t,n){this.model=e,this.ecModel=t,this.api=n,this._brushType,this._brushMode}o.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:i.clone(a.title)};var s=o.prototype;s.render=s.updateView=function(e,t,n){var r,a,o;t.eachComponent({mainType:"brush"},function(e){r=e.brushType,a=e.brushOption.brushMode||"single",o|=e.areas.length}),this._brushType=r,this._brushMode=a,i.each(e.get("type",!0),function(t){e.setIconStatus(t,("keep"===t?"multiple"===a:"clear"===t?o:t===r)?"emphasis":"normal")})},s.getIcons=function(){var e=this.model,t=e.get("icon",!0),n={};return i.each(e.get("type",!0),function(e){t[e]&&(n[e]=t[e])}),n},s.onclick=function(e,t,n){var i=this._brushType,r=this._brushMode;"clear"===n?(t.dispatchAction({type:"axisAreaSelect",intervals:[]}),t.dispatchAction({type:"brush",command:"clear",areas:[]})):t.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},r.register("brush",o);var l=o;e.exports=l},eGS6:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=i.extendComponentView({type:"marker",init:function(){this.markerGroupMap=r.createHashMap()},render:function(e,t,n){var i=this.markerGroupMap;i.each(function(e){e.__keep=!1});var r=this.type+"Model";t.eachSeries(function(e){var i=e[r];i&&this.renderSeries(e,i,t,n)},this),i.each(function(e){!e.__keep&&this.group.remove(e.group)},this)},renderSeries:function(){}});e.exports=a},eHVV:function(e,t,n){var i,r=n("KSHG"),a="urn:schemas-microsoft-com:vml",o="undefined"==typeof window?null:window,s=!1,l=o&&o.document;if(l&&!r.canvasSupported)try{!l.namespaces.zrvml&&l.namespaces.add("zrvml",a),i=function(e){return l.createElement("<zrvml:"+e+' class="zrvml">')}}catch(e){i=function(e){return l.createElement("<"+e+' xmlns="'+a+'" class="zrvml">')}}t.doc=l,t.createNode=function(e){return i(e)},t.initVML=function(){if(!s&&l){s=!0;var e=l.styleSheets;e.length<31?l.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):e[0].addRule(".zrvml","behavior:url(#default#VML)")}}},eKDm:function(e,t,n){var i=n("abCA").parsePercent,r=n("GKMz"),a=(Math.PI,Math.PI/180);e.exports=function(e,t,n,o){t.eachSeriesByType(e,function(e){var t=e.get("center"),o=e.get("radius");r.isArray(o)||(o=[0,o]),r.isArray(t)||(t=[t,t]);var s=n.getWidth(),l=n.getHeight(),u=Math.min(s,l),c=i(t[0],s),d=i(t[1],l),h=i(o[0],u/2),f=i(o[1],u/2),p=-e.get("startAngle")*a,m=e.get("minAngle")*a,g=e.getData().tree.root,v=e.getViewRoot(),y=v.depth,b=e.get("sort");null!=b&&function e(t,n){var i=t.children||[];t.children=function(e,t){if("function"==typeof t)return e.sort(t);var n="asc"===t;return e.sort(function(e,t){var i=(e.getValue()-t.getValue())*(n?1:-1);return 0===i?(e.dataIndex-t.dataIndex)*(n?-1:1):i})}(i,n),i.length&&r.each(t.children,function(t){e(t,n)})}(v,b);var _=0;r.each(v.children,function(e){!isNaN(e.getValue())&&_++});var x=v.getValue(),w=Math.PI/(x||_)*2,S=v.depth>0,C=v.height-(S?-1:1),M=(f-h)/(C||1),k=e.get("clockwise"),T=e.get("stillShowZeroSum"),A=k?1:-1,I=function(e,t){if(e){var n=t;if(e!==g){var a=e.getValue(),o=0===x&&T?w:a*w;o<m&&(o=m),n=t+A*o;var s=e.depth-y-(S?-1:1),l=h+M*s,f=h+M*(s+1),p=e.getModel();null!=p.get("r0")&&(l=i(p.get("r0"),u/2)),null!=p.get("r")&&(f=i(p.get("r"),u/2)),e.setLayout({angle:o,startAngle:t,endAngle:n,clockwise:k,cx:c,cy:d,r0:l,r:f})}if(e.children&&e.children.length){var v=0;r.each(e.children,function(e){v+=I(e,t+v)})}return n-t}};if(S){var E=h,D=h+M,O=2*Math.PI;g.setLayout({angle:O,startAngle:p,endAngle:p+O,clockwise:k,cx:c,cy:d,r0:E,r:D})}I(v,p)})}},eX1V:function(e,t,n){var i=n("G7OI").Symbol;e.exports=i},eZJ0:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("erEb"),a=n("aVg8"),o=n("83dT"),s=n("0jiU"),l=i.curry,u=i.each,c=i.map,d=Math.min,h=Math.max,f=Math.pow,p=1e4,m=6,g=6,v="globalPan",y={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},b={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},_={brushStyle:{lineWidth:2,stroke:"rgba(0,0,0,0.3)",fill:"rgba(0,0,0,0.1)"},transformable:!0,brushMode:"single",removeOnClick:!1},x=0;function w(e){r.call(this),this._zr=e,this.group=new a.Group,this._brushType,this._brushOption,this._panels,this._track=[],this._dragging,this._covers=[],this._creatingCover,this._creatingPanel,this._enableGlobalPan,this._uid="brushController_"+x++,this._handlers={},u(q,function(e,t){this._handlers[t]=i.bind(e,this)},this)}function S(e,t){var n=Z[t.brushType].createCover(e,t);return n.__brushOption=t,k(n,t),e.group.add(n),n}function C(e,t){var n=A(t);return n.endCreating&&(n.endCreating(e,t),k(t,t.__brushOption)),t}function M(e,t){var n=t.__brushOption;A(t).updateCoverShape(e,t,n.range,n)}function k(e,t){var n=t.z;null==n&&(n=p),e.traverse(function(e){e.z=n,e.z2=n})}function T(e,t){A(t).updateCommon(e,t),M(e,t)}function A(e){return Z[e.__brushOption.brushType]}function I(e,t,n){var i,r=e._panels;if(!r)return!0;var a=e._transform;return u(r,function(e){e.isTargetByCursor(t,n,a)&&(i=e)}),i}function E(e,t){var n=e._panels;if(!n)return!0;var i=t.__brushOption.panelId;return null==i||n[i]}function D(e){var t=e._covers,n=t.length;return u(t,function(t){e.group.remove(t)},e),t.length=0,!!n}function O(e,t){var n=c(e._covers,function(e){var t=e.__brushOption,n=i.clone(t.range);return{brushType:t.brushType,panelId:t.panelId,range:n}});e.trigger("brush",n,{isEnd:!!t.isEnd,removeOnClick:!!t.removeOnClick})}function P(e){var t=e.length-1;return t<0&&(t=0),[e[0],e[t]]}function L(e,t,n,i){var r=new a.Group;return r.add(new a.Rect({name:"main",style:F(n),silent:!0,draggable:!0,cursor:"move",drift:l(e,t,r,"nswe"),ondragend:l(O,t,{isEnd:!0})})),u(i,function(n){r.add(new a.Rect({name:n,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:l(e,t,r,n),ondragend:l(O,t,{isEnd:!0})}))}),r}function R(e,t,n,i){var r=i.brushStyle.lineWidth||0,a=h(r,g),o=n[0][0],s=n[1][0],l=o-r/2,u=s-r/2,c=n[0][1],d=n[1][1],f=c-a+r/2,p=d-a+r/2,m=c-o,v=d-s,y=m+r,b=v+r;B(e,t,"main",o,s,m,v),i.transformable&&(B(e,t,"w",l,u,a,b),B(e,t,"e",f,u,a,b),B(e,t,"n",l,u,y,a),B(e,t,"s",l,p,y,a),B(e,t,"nw",l,u,a,a),B(e,t,"ne",f,u,a,a),B(e,t,"sw",l,p,a,a),B(e,t,"se",f,p,a,a))}function N(e,t){var n=t.__brushOption,i=n.transformable,r=t.childAt(0);r.useStyle(F(n)),r.attr({silent:!i,cursor:i?"move":"default"}),u(["w","e","n","s","se","sw","ne","nw"],function(n){var r=t.childOfName(n),o=function e(t,n){if(n.length>1){n=n.split("");var i=[e(t,n[0]),e(t,n[1])];return("e"===i[0]||"w"===i[0])&&i.reverse(),i.join("")}var i=a.transformDirection({w:"left",e:"right",n:"top",s:"bottom"}[n],function(e){return a.getTransform(e.group)}(t));return{left:"w",right:"e",top:"n",bottom:"s"}[i]}(e,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?b[o]+"-resize":null})})}function B(e,t,n,i,r,a,o){var s,l,u,c,f,p=t.childOfName(n);p&&p.setShape((s=j(e,t,[[i,r],[i+a,r+o]]),l=d(s[0][0],s[1][0]),u=d(s[0][1],s[1][1]),c=h(s[0][0],s[1][0]),f=h(s[0][1],s[1][1]),{x:l,y:u,width:c-l,height:f-u}))}function F(e){return i.defaults({strokeNoScale:!0},e.brushStyle)}function z(e,t,n,i){var r=[d(e,n),d(t,i)],a=[h(e,n),h(t,i)];return[[r[0],a[0]],[r[1],a[1]]]}function V(e,t,n,i,r,a,o,s){var l=i.__brushOption,c=e(l.range),d=G(n,a,o);u(r.split(""),function(e){var t=y[e];c[t[0]][t[1]]+=d[t[0]]}),l.range=t(z(c[0][0],c[1][0],c[0][1],c[1][1])),T(n,i),O(n,{isEnd:!1})}function $(e,t,n,i,r){var a=t.__brushOption.range,o=G(e,n,i);u(a,function(e){e[0]+=o[0],e[1]+=o[1]}),T(e,t),O(e,{isEnd:!1})}function G(e,t,n){var i=e.group,r=i.transformCoordToLocal(t,n),a=i.transformCoordToLocal(0,0);return[r[0]-a[0],r[1]-a[1]]}function j(e,t,n){var r=E(e,t);return r&&!0!==r?r.clipPath(n,e._transform):i.clone(n)}function H(e){var t=e.event;t.preventDefault&&t.preventDefault()}function W(e,t,n){return e.childOfName("main").contain(t,n)}function U(e,t,n,r){var a,o=e._creatingCover,s=e._creatingPanel,l=e._brushOption;if(e._track.push(n.slice()),function(e){var t=e._track;if(!t.length)return!1;var n=t[t.length-1],i=t[0],r=n[0]-i[0],a=n[1]-i[1];return f(r*r+a*a,.5)>m}(e)||o){if(s&&!o){"single"===l.brushMode&&D(e);var u=i.clone(l);u.brushType=K(u.brushType,s),u.panelId=!0===s?null:s.panelId,o=e._creatingCover=S(e,u),e._covers.push(o)}if(o){var c=Z[K(e._brushType,s)];o.__brushOption.range=c.getCreatingRange(j(e,o,e._track)),r&&(C(e,o),c.updateCommon(e,o)),M(e,o),a={isEnd:r}}}else r&&"single"===l.brushMode&&l.removeOnClick&&I(e,t,n)&&D(e)&&(a={isEnd:r,removeOnClick:!0});return a}function K(e,t){return"auto"===e?t.defaultBrushType:e}w.prototype={constructor:w,enableBrush:function(e){var t,n;return this._brushType&&(n=(t=this)._zr,o.release(n,v,t._uid),u(t._handlers,function(e,t){n.off(t,e)}),t._brushType=t._brushOption=null),e.brushType&&function(e,t){var n=e._zr;e._enableGlobalPan||o.take(n,v,e._uid);u(e._handlers,function(e,t){n.on(t,e)}),e._brushType=t.brushType,e._brushOption=i.merge(i.clone(_),t,!0)}(this,e),this},setPanels:function(e){if(e&&e.length){var t=this._panels={};i.each(e,function(e){t[e.panelId]=i.clone(e)})}else this._panels=null;return this},mount:function(e){e=e||{},this._enableGlobalPan=e.enableGlobalPan;var t=this.group;return this._zr.add(t),t.attr({position:e.position||[0,0],rotation:e.rotation||0,scale:e.scale||[1,1]}),this._transform=t.getLocalTransform(),this},eachCover:function(e,t){u(this._covers,e,t)},updateCovers:function(e){e=i.map(e,function(e){return i.merge(i.clone(_),e,!0)});var t="\0-brush-index-",n=this._covers,r=this._covers=[],a=this,o=this._creatingCover;return new s(n,e,function(e,t){return l(e.__brushOption,t)},l).add(u).update(u).remove(function(e){n[e]!==o&&a.group.remove(n[e])}).execute(),this;function l(e,n){return(null!=e.id?e.id:t+n)+"-"+e.brushType}function u(t,i){var s=e[t];if(null!=i&&n[i]===o)r[t]=n[i];else{var l=r[t]=null!=i?(n[i].__brushOption=s,n[i]):C(a,S(a,s));T(a,l)}}},unmount:function(){return this.enableBrush(!1),D(this),this._zr.remove(this.group),this},dispose:function(){this.unmount(),this.off()}},i.mixin(w,r);var q={mousedown:function(e){if(this._dragging)Y.call(this,e);else if(!e.target||!e.target.draggable){H(e);var t=this.group.transformCoordToLocal(e.offsetX,e.offsetY);this._creatingCover=null,(this._creatingPanel=I(this,e,t))&&(this._dragging=!0,this._track=[t.slice()])}},mousemove:function(e){var t=this.group.transformCoordToLocal(e.offsetX,e.offsetY);if(function(e,t,n){if(e._brushType){var i=e._zr,r=e._covers,a=I(e,t,n);if(!e._dragging)for(var o=0;o<r.length;o++){var s=r[o].__brushOption;if(a&&(!0===a||s.panelId===a.panelId)&&Z[s.brushType].contain(r[o],n[0],n[1]))return}a&&i.setCursorStyle("crosshair")}}(this,e,t),this._dragging){H(e);var n=U(this,e,t,!1);n&&O(this,n)}},mouseup:Y};function Y(e){if(this._dragging){H(e);var t=U(this,e,this.group.transformCoordToLocal(e.offsetX,e.offsetY),!0);this._dragging=!1,this._track=[],this._creatingCover=null,t&&O(this,t)}}var Z={lineX:X(0),lineY:X(1),rect:{createCover:function(e,t){return L(l(V,function(e){return e},function(e){return e}),e,t,["w","e","n","s","se","sw","ne","nw"])},getCreatingRange:function(e){var t=P(e);return z(t[1][0],t[1][1],t[0][0],t[0][1])},updateCoverShape:function(e,t,n,i){R(e,t,n,i)},updateCommon:N,contain:W},polygon:{createCover:function(e,t){var n=new a.Group;return n.add(new a.Polyline({name:"main",style:F(t),silent:!0})),n},getCreatingRange:function(e){return e},endCreating:function(e,t){t.remove(t.childAt(0)),t.add(new a.Polygon({name:"main",draggable:!0,drift:l($,e,t),ondragend:l(O,e,{isEnd:!0})}))},updateCoverShape:function(e,t,n,i){t.childAt(0).setShape({points:j(e,t,n)})},updateCommon:N,contain:W}};function X(e){return{createCover:function(t,n){return L(l(V,function(t){var n=[t,[0,100]];return e&&n.reverse(),n},function(t){return t[e]}),t,n,[["w","e"],["n","s"]][e])},getCreatingRange:function(t){var n=P(t);return[d(n[0][e],n[1][e]),h(n[0][e],n[1][e])]},updateCoverShape:function(t,n,i,r){var a,o=E(t,n);if(!0!==o&&o.getLinearBrushOtherExtent)a=o.getLinearBrushOtherExtent(e,t._transform);else{var s=t._zr;a=[0,[s.getWidth(),s.getHeight()][1-e]]}var l=[i,a];e&&l.reverse(),R(t,n,l,r)},updateCommon:N,contain:W}}var J=w;e.exports=J},efir:function(e,t,n){var i=n("GKMz"),r=n("6/6c"),a=n("Q/cl"),o=a.getLayoutParams,s=a.sizeCalculable,l=a.mergeLayoutParam,u=r.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},init:function(e,t,n,i){var r=o(e);u.superApply(this,"init",arguments),c(e,r)},mergeOption:function(e,t){u.superApply(this,"mergeOption",arguments),c(this.option,e)}});function c(e,t){var n=e.cellSize;i.isArray(n)?1===n.length&&(n[1]=n[0]):n=e.cellSize=[n,n];var r=i.map([0,1],function(e){return s(t,e)&&(n[e]="auto"),null!=n[e]&&"auto"!==n[e]});l(e,t,{type:"box",ignoreSize:r})}var d=u;e.exports=d},ehSZ:function(e,t,n){n("B6j4"),n("Ptym"),n("rSbl"),n("BSR4")},ehjs:function(e,t,n){var i=n("luYz");t.circularLayout=function(e){var t=e.coordinateSystem;if(!t||"view"===t.type){var n=t.getBoundingRect(),r=e.getData(),a=r.graph,o=0,s=r.getSum("value"),l=2*Math.PI/(s||r.count()),u=n.width/2+n.x,c=n.height/2+n.y,d=Math.min(n.width,n.height)/2;a.eachNode(function(e){var t=e.getValue("value");o+=l*(s?t:1)/2,e.setLayout([d*Math.cos(o)+u,d*Math.sin(o)+c]),o+=l*(s?t:1)/2}),r.setLayout({cx:u,cy:c}),a.eachEdge(function(e){var t,n=e.getModel().get("lineStyle.curveness")||0,r=i.clone(e.node1.getLayout()),a=i.clone(e.node2.getLayout()),o=(r[0]+a[0])/2,s=(r[1]+a[1])/2;+n&&(t=[u*(n*=3)+o*(1-n),c*n+s*(1-n)]),e.setLayout([r,a,t])})}}},ejpq:function(e,t,n){"use strict";t.__esModule=!0,t.default={el:{colorpicker:{confirm:"纭畾",clear:"娓呯┖"},datepicker:{now:"姝ゅ埢",today:"浠婂ぉ",cancel:"鍙栨秷",clear:"娓呯┖",confirm:"纭畾",selectDate:"閫夋嫨鏃ユ湡",selectTime:"閫夋嫨鏃堕棿",startDate:"寮�濮嬫棩鏈�",startTime:"寮�濮嬫椂闂�",endDate:"缁撴潫鏃ユ湡",endTime:"缁撴潫鏃堕棿",prevYear:"鍓嶄竴骞�",nextYear:"鍚庝竴骞�",prevMonth:"涓婁釜鏈�",nextMonth:"涓嬩釜鏈�",year:"骞�",month1:"1 鏈�",month2:"2 鏈�",month3:"3 鏈�",month4:"4 鏈�",month5:"5 鏈�",month6:"6 鏈�",month7:"7 鏈�",month8:"8 鏈�",month9:"9 鏈�",month10:"10 鏈�",month11:"11 鏈�",month12:"12 鏈�",weeks:{sun:"鏃�",mon:"涓�",tue:"浜�",wed:"涓�",thu:"鍥�",fri:"浜�",sat:"鍏�"},months:{jan:"涓�鏈�",feb:"浜屾湀",mar:"涓夋湀",apr:"鍥涙湀",may:"浜旀湀",jun:"鍏湀",jul:"涓冩湀",aug:"鍏湀",sep:"涔濇湀",oct:"鍗佹湀",nov:"鍗佷竴鏈�",dec:"鍗佷簩鏈�"}},select:{loading:"鍔犺浇涓�",noMatch:"鏃犲尮閰嶆暟鎹�",noData:"鏃犳暟鎹�",placeholder:"璇烽�夋嫨"},cascader:{noMatch:"鏃犲尮閰嶆暟鎹�",loading:"鍔犺浇涓�",placeholder:"璇烽�夋嫨"},pagination:{goto:"鍓嶅線",pagesize:"鏉�/椤�",total:"鍏� {total} 鏉�",pageClassifier:"椤�"},messagebox:{title:"鎻愮ず",confirm:"纭畾",cancel:"鍙栨秷",error:"杈撳叆鐨勬暟鎹笉鍚堟硶!"},upload:{deleteTip:"鎸� delete 閿彲鍒犻櫎",delete:"鍒犻櫎",preview:"鏌ョ湅鍥剧墖",continue:"缁х画涓婁紶"},table:{emptyText:"鏆傛棤鏁版嵁",confirmFilter:"绛涢��",resetFilter:"閲嶇疆",clearFilter:"鍏ㄩ儴",sumText:"鍚堣"},tree:{emptyText:"鏆傛棤鏁版嵁"},transfer:{noMatch:"鏃犲尮閰嶆暟鎹�",noData:"鏃犳暟鎹�",titles:["鍒楄〃 1","鍒楄〃 2"],filterPlaceholder:"璇疯緭鍏ユ悳绱㈠唴瀹�",noCheckedFormat:"鍏� {total} 椤�",hasCheckedFormat:"宸查�� {checked}/{total} 椤�"}}}},eqTP:function(e,t,n){var i=n("Mcur"),r=n("/r4/"),a=n("3qm9")(!1),o=n("VjRt")("IE_PROTO");e.exports=function(e,t){var n,s=r(e),l=0,u=[];for(n in s)n!=o&&i(s,n)&&u.push(n);for(;t.length>l;)i(s,n=t[l++])&&(~a(u,n)||u.push(n));return u}},erEb:function(e,t){var n=Array.prototype.slice,i=function(){this._$handlers={}};i.prototype={constructor:i,one:function(e,t,n){var i=this._$handlers;if(!t||!e)return this;i[e]||(i[e]=[]);for(var r=0;r<i[e].length;r++)if(i[e][r].h===t)return this;return i[e].push({h:t,one:!0,ctx:n||this}),this},on:function(e,t,n){var i=this._$handlers;if(!t||!e)return this;i[e]||(i[e]=[]);for(var r=0;r<i[e].length;r++)if(i[e][r].h===t)return this;return i[e].push({h:t,one:!1,ctx:n||this}),this},isSilent:function(e){var t=this._$handlers;return t[e]&&t[e].length},off:function(e,t){var n=this._$handlers;if(!e)return this._$handlers={},this;if(t){if(n[e]){for(var i=[],r=0,a=n[e].length;r<a;r++)n[e][r].h!=t&&i.push(n[e][r]);n[e]=i}n[e]&&0===n[e].length&&delete n[e]}else delete n[e];return this},trigger:function(e){if(this._$handlers[e]){var t=arguments,i=t.length;i>3&&(t=n.call(t,1));for(var r=this._$handlers[e],a=r.length,o=0;o<a;){switch(i){case 1:r[o].h.call(r[o].ctx);break;case 2:r[o].h.call(r[o].ctx,t[1]);break;case 3:r[o].h.call(r[o].ctx,t[1],t[2]);break;default:r[o].h.apply(r[o].ctx,t)}r[o].one?(r.splice(o,1),a--):o++}}return this},triggerWithContext:function(e){if(this._$handlers[e]){var t=arguments,i=t.length;i>4&&(t=n.call(t,1,t.length-1));for(var r=t[t.length-1],a=this._$handlers[e],o=a.length,s=0;s<o;){switch(i){case 1:a[s].h.call(r);break;case 2:a[s].h.call(r,t[1]);break;case 3:a[s].h.call(r,t[1],t[2]);break;default:a[s].h.apply(r,t)}a[s].one?(a.splice(s,1),o--):s++}}return this}};var r=i;e.exports=r},f0J5:function(e,t,n){var i=n("GKMz");e.exports=function(e){var t={};e.eachSeriesByType("map",function(n){var r=n.getMapType();if(!n.getHostGeoModel()&&!t[r]){var a={};i.each(n.seriesGroup,function(t){var n=t.coordinateSystem,i=t.originalData;t.get("showLegendSymbol")&&e.getComponent("legend")&&i.each(i.mapDimension("value"),function(e,t){var r=i.getName(t),o=n.getRegion(r);if(o&&!isNaN(e)){var s=a[r]||0,l=n.dataToPoint(o.center);a[r]=s+1,i.setItemLayout(t,{point:l,offset:s})}})});var o=n.getData();o.each(function(e){var t=o.getName(e),n=o.getItemLayout(e)||{};n.showLabel=!a[t],o.setItemLayout(e,n)}),t[r]=!0}})}},f3Zc:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n("4YfN"),r=n.n(i),a=n("hRKE"),o=n.n(a),s=/%[sdj%]/g,l=function(){};function u(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var i=1,r=t[0],a=t.length;if("function"==typeof r)return r.apply(null,t.slice(1));if("string"==typeof r){for(var o=String(r).replace(s,function(e){if("%%"===e)return"%";if(i>=a)return e;switch(e){case"%s":return String(t[i++]);case"%d":return Number(t[i++]);case"%j":try{return JSON.stringify(t[i++])}catch(e){return"[Circular]"}break;default:return e}}),l=t[i];i<a;l=t[++i])o+=" "+l;return o}return r}function c(e,t){return void 0===e||null===e||(!("array"!==t||!Array.isArray(e)||e.length)||!(!function(e){return"string"===e||"url"===e||"hex"===e||"email"===e||"pattern"===e}(t)||"string"!=typeof e||e))}function d(e,t,n){var i=0,r=e.length;!function a(o){if(o&&o.length)n(o);else{var s=i;i+=1,s<r?t(e[s],a):n([])}}([])}function h(e,t,n,i){if(t.first)return d(function(e){var t=[];return Object.keys(e).forEach(function(n){t.push.apply(t,e[n])}),t}(e),n,i);var r=t.firstFields||[];!0===r&&(r=Object.keys(e));var a=Object.keys(e),o=a.length,s=0,l=[],u=function(e){l.push.apply(l,e),++s===o&&i(l)};a.forEach(function(t){var i=e[t];-1!==r.indexOf(t)?d(i,n,u):function(e,t,n){var i=[],r=0,a=e.length;function o(e){i.push.apply(i,e),++r===a&&n(i)}e.forEach(function(e){t(e,o)})}(i,n,u)})}function f(e){return function(t){return t&&t.message?(t.field=t.field||e.fullField,t):{message:t,field:t.field||e.fullField}}}function p(e,t){if(t)for(var n in t)if(t.hasOwnProperty(n)){var i=t[n];"object"===(void 0===i?"undefined":o()(i))&&"object"===o()(e[n])?e[n]=r()({},e[n],i):e[n]=i}return e}var m=function(e,t,n,i,r,a){!e.required||n.hasOwnProperty(e.field)&&!c(t,a||e.type)||i.push(u(r.messages.required,e.fullField))};var g=function(e,t,n,i,r){(/^\s+$/.test(t)||""===t)&&i.push(u(r.messages.whitespace,e.fullField))},v={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},y={integer:function(e){return y.number(e)&&parseInt(e,10)===e},float:function(e){return y.number(e)&&!y.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(e){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof e},object:function(e){return"object"===(void 0===e?"undefined":o()(e))&&!y.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(v.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(v.url)},hex:function(e){return"string"==typeof e&&!!e.match(v.hex)}};var b="enum";var _={required:m,whitespace:g,type:function(e,t,n,i,r){if(e.required&&void 0===t)m(e,t,n,i,r);else{var a=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(a)>-1?y[a](t)||i.push(u(r.messages.types[a],e.fullField,e.type)):a&&(void 0===t?"undefined":o()(t))!==e.type&&i.push(u(r.messages.types[a],e.fullField,e.type))}},range:function(e,t,n,i,r){var a="number"==typeof e.len,o="number"==typeof e.min,s="number"==typeof e.max,l=t,c=null,d="number"==typeof t,h="string"==typeof t,f=Array.isArray(t);if(d?c="number":h?c="string":f&&(c="array"),!c)return!1;f&&(l=t.length),h&&(l=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?l!==e.len&&i.push(u(r.messages[c].len,e.fullField,e.len)):o&&!s&&l<e.min?i.push(u(r.messages[c].min,e.fullField,e.min)):s&&!o&&l>e.max?i.push(u(r.messages[c].max,e.fullField,e.max)):o&&s&&(l<e.min||l>e.max)&&i.push(u(r.messages[c].range,e.fullField,e.min,e.max))},enum:function(e,t,n,i,r){e[b]=Array.isArray(e[b])?e[b]:[],-1===e[b].indexOf(t)&&i.push(u(r.messages[b],e.fullField,e[b].join(", ")))},pattern:function(e,t,n,i,r){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||i.push(u(r.messages.pattern.mismatch,e.fullField,t,e.pattern))):"string"==typeof e.pattern&&(new RegExp(e.pattern).test(t)||i.push(u(r.messages.pattern.mismatch,e.fullField,t,e.pattern))))}};var x="enum";var w=function(e,t,n,i,r){var a=e.type,o=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t,a)&&!e.required)return n();_.required(e,t,i,o,r,a),c(t,a)||_.type(e,t,i,o,r)}n(o)},S={string:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t,"string")&&!e.required)return n();_.required(e,t,i,a,r,"string"),c(t,"string")||(_.type(e,t,i,a,r),_.range(e,t,i,a,r),_.pattern(e,t,i,a,r),!0===e.whitespace&&_.whitespace(e,t,i,a,r))}n(a)},method:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();_.required(e,t,i,a,r),void 0!==t&&_.type(e,t,i,a,r)}n(a)},number:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();_.required(e,t,i,a,r),void 0!==t&&(_.type(e,t,i,a,r),_.range(e,t,i,a,r))}n(a)},boolean:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();_.required(e,t,i,a,r),void 0!==t&&_.type(e,t,i,a,r)}n(a)},regexp:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();_.required(e,t,i,a,r),c(t)||_.type(e,t,i,a,r)}n(a)},integer:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();_.required(e,t,i,a,r),void 0!==t&&(_.type(e,t,i,a,r),_.range(e,t,i,a,r))}n(a)},float:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();_.required(e,t,i,a,r),void 0!==t&&(_.type(e,t,i,a,r),_.range(e,t,i,a,r))}n(a)},array:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t,"array")&&!e.required)return n();_.required(e,t,i,a,r,"array"),c(t,"array")||(_.type(e,t,i,a,r),_.range(e,t,i,a,r))}n(a)},object:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();_.required(e,t,i,a,r),void 0!==t&&_.type(e,t,i,a,r)}n(a)},enum:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();_.required(e,t,i,a,r),t&&_[x](e,t,i,a,r)}n(a)},pattern:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t,"string")&&!e.required)return n();_.required(e,t,i,a,r),c(t,"string")||_.pattern(e,t,i,a,r)}n(a)},date:function(e,t,n,i,r){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(c(t)&&!e.required)return n();if(_.required(e,t,i,a,r),!c(t)){var o=void 0;o="number"==typeof t?new Date(t):t,_.type(e,o,i,a,r),o&&_.range(e,o.getTime(),i,a,r)}}n(a)},url:w,hex:w,email:w,required:function(e,t,n,i,r){var a=[],s=Array.isArray(t)?"array":void 0===t?"undefined":o()(t);_.required(e,t,i,a,r,s),n(a)}};function C(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var M=C();function k(e){this.rules=null,this._messages=M,this.define(e)}k.prototype={messages:function(e){return e&&(this._messages=p(C(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!==(void 0===e?"undefined":o()(e))||Array.isArray(e))throw new Error("Rules must be an object");this.rules={};var t=void 0,n=void 0;for(t in e)e.hasOwnProperty(t)&&(n=e[t],this.rules[t]=Array.isArray(n)?n:[n])},validate:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments[2],a=e,s=n,c=i;if("function"==typeof s&&(c=s,s={}),this.rules&&0!==Object.keys(this.rules).length){if(s.messages){var d=this.messages();d===M&&(d=C()),p(d,s.messages),s.messages=d}else s.messages=this.messages();var m=void 0,g=void 0,v={};(s.keys||Object.keys(this.rules)).forEach(function(n){m=t.rules[n],g=a[n],m.forEach(function(i){var o=i;"function"==typeof o.transform&&(a===e&&(a=r()({},a)),g=a[n]=o.transform(g)),(o="function"==typeof o?{validator:o}:r()({},o)).validator=t.getValidationMethod(o),o.field=n,o.fullField=o.fullField||n,o.type=t.getType(o),o.validator&&(v[n]=v[n]||[],v[n].push({rule:o,value:g,source:a,field:n}))})});var y={};h(v,s,function(e,t){var n=e.rule,i=!("object"!==n.type&&"array"!==n.type||"object"!==o()(n.fields)&&"object"!==o()(n.defaultField));function a(e,t){return r()({},t,{fullField:n.fullField+"."+e})}function c(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(Array.isArray(o)||(o=[o]),o.length&&l("async-validator:",o),o.length&&n.message&&(o=[].concat(n.message)),o=o.map(f(n)),s.first&&o.length)return y[n.field]=1,t(o);if(i){if(n.required&&!e.value)return o=n.message?[].concat(n.message).map(f(n)):s.error?[s.error(n,u(s.messages.required,n.field))]:[],t(o);var c={};if(n.defaultField)for(var d in e.value)e.value.hasOwnProperty(d)&&(c[d]=n.defaultField);for(var h in c=r()({},c,e.rule.fields))if(c.hasOwnProperty(h)){var p=Array.isArray(c[h])?c[h]:[c[h]];c[h]=p.map(a.bind(null,h))}var m=new k(c);m.messages(s.messages),e.rule.options&&(e.rule.options.messages=s.messages,e.rule.options.error=s.error),m.validate(e.value,e.rule.options||s,function(e){t(e&&e.length?o.concat(e):e)})}else t(o)}i=i&&(n.required||!n.required&&e.value),n.field=e.field;var d=n.validator(n,e.value,c,e.source,s);d&&d.then&&d.then(function(){return c()},function(e){return c(e)})},function(e){!function(e){var t,n=void 0,i=void 0,r=[],a={};for(n=0;n<e.length;n++)t=e[n],Array.isArray(t)?r=r.concat.apply(r,t):r.push(t);if(r.length)for(n=0;n<r.length;n++)a[i=r[n].field]=a[i]||[],a[i].push(r[n]);else r=null,a=null;c(r,a)}(e)})}else c&&c()},getType:function(e){if(void 0===e.type&&e.pattern instanceof RegExp&&(e.type="pattern"),"function"!=typeof e.validator&&e.type&&!S.hasOwnProperty(e.type))throw new Error(u("Unknown rule type %s",e.type));return e.type||"string"},getValidationMethod:function(e){if("function"==typeof e.validator)return e.validator;var t=Object.keys(e),n=t.indexOf("message");return-1!==n&&t.splice(n,1),1===t.length&&"required"===t[0]?S.required:S[this.getType(e)]||!1}},k.register=function(e,t){if("function"!=typeof t)throw new Error("Cannot register a validator by type, validator is not a function");S[e]=t},k.messages=M;t.default=k},f4MR:function(e,t,n){var i=n("GKMz"),r=n("abCA").parsePercent,a=n("cfvC").isDimensionStacked;function o(e){return e.get("stack")||"__ec_stack_"+e.seriesIndex}function s(e){return e.dim}var l=function(e,t,n){var l=n.getWidth(),u=n.getHeight(),c={},d=function(e,t){var n={};i.each(e,function(e,t){var i=e.getData(),a=e.coordinateSystem,l=a.getBaseAxis(),u=l.getExtent(),c="category"===l.type?l.getBandWidth():Math.abs(u[1]-u[0])/i.count(),d=n[s(l)]||{bandWidth:c,remainedWidth:c,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},h=d.stacks;n[s(l)]=d;var f=o(e);h[f]||d.autoWidthCount++,h[f]=h[f]||{width:0,maxWidth:0};var p=r(e.get("barWidth"),c),m=r(e.get("barMaxWidth"),c),g=e.get("barGap"),v=e.get("barCategoryGap");p&&!h[f].width&&(p=Math.min(d.remainedWidth,p),h[f].width=p,d.remainedWidth-=p),m&&(h[f].maxWidth=m),null!=g&&(d.gap=g),null!=v&&(d.categoryGap=v)});var a={};return i.each(n,function(e,t){a[t]={};var n=e.stacks,o=e.bandWidth,s=r(e.categoryGap,o),l=r(e.gap,1),u=e.remainedWidth,c=e.autoWidthCount,d=(u-s)/(c+(c-1)*l);d=Math.max(d,0),i.each(n,function(e,t){var n=e.maxWidth;n&&n<d&&(n=Math.min(n,u),e.width&&(n=Math.min(n,e.width)),u-=n,e.width=n,c--)}),d=(u-s)/(c+(c-1)*l),d=Math.max(d,0);var h,f=0;i.each(n,function(e,t){e.width||(e.width=d),h=e,f+=e.width*(1+l)}),h&&(f-=h.width*l);var p=-f/2;i.each(n,function(e,n){a[t][n]=a[t][n]||{offset:p,width:e.width},p+=e.width*(1+l)})}),a}(i.filter(t.getSeriesByType(e),function(e){return!t.isSeriesFiltered(e)&&e.coordinateSystem&&"polar"===e.coordinateSystem.type}));t.eachSeriesByType(e,function(e){if("polar"===e.coordinateSystem.type){var t=e.getData(),n=e.coordinateSystem,i=n.getBaseAxis(),h=o(e),f=d[s(i)][h],p=f.offset,m=f.width,g=n.getOtherAxis(i),v=e.get("center")||["50%","50%"],y=r(v[0],l),b=r(v[1],u),_=e.get("barMinHeight")||0,x=e.get("barMinAngle")||0;c[h]=c[h]||[];for(var w=t.mapDimension(g.dim),S=t.mapDimension(i.dim),C=a(t,w),M=g.getExtent()[0],k=0,T=t.count();k<T;k++){var A=t.get(w,k),I=t.get(S,k);if(!isNaN(A)){var E,D,O,P,L=A>=0?"p":"n",R=M;if(C&&(c[h][I]||(c[h][I]={p:M,n:M}),R=c[h][I][L]),"radius"===g.dim){var N=g.dataToRadius(A)-M,B=i.dataToAngle(I);Math.abs(N)<_&&(N=(N<0?-1:1)*_),E=R,D=R+N,P=(O=B-p)-m,C&&(c[h][I][L]=D)}else{var F=g.dataToAngle(A,!0)-M,z=i.dataToRadius(I);Math.abs(F)<x&&(F=(F<0?-1:1)*x),D=(E=z+p)+m,O=R,P=R+F,C&&(c[h][I][L]=P)}t.setItemLayout(k,{cx:y,cy:b,r0:E,r:D,startAngle:-O*Math.PI/180,endAngle:-P*Math.PI/180})}}}},this)};e.exports=l},f4eo:function(e,t,n){var i=n("lIiZ"),r=n("93K8"),a=n("5pnV");e.exports=n("sjnA")?Object.defineProperties:function(e,t){r(e);for(var n,o=a(t),s=o.length,l=0;s>l;)i.f(e,n=o[l++],t[n]);return e}},fAuK:function(e,t,n){var i=n("GKMz"),r=i.each,a=i.map,o=n("abCA"),s=o.linearMap,l=o.getPixelPrecision,u=n("lMm+"),c=u.createAxisTicks,d=u.createAxisLabels,h=u.calculateCategoryInterval,f=[0,1],p=function(e,t,n){this.dim=e,this.scale=t,this._extent=n||[0,0],this.inverse=!1,this.onBand=!1};function m(e,t){var n=(e[1]-e[0])/t/2;e[0]+=n,e[1]-=n}p.prototype={constructor:p,contain:function(e){var t=this._extent,n=Math.min(t[0],t[1]),i=Math.max(t[0],t[1]);return e>=n&&e<=i},containData:function(e){return this.contain(this.dataToCoord(e))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(e){return l(e||this.scale.getExtent(),this._extent)},setExtent:function(e,t){var n=this._extent;n[0]=e,n[1]=t},dataToCoord:function(e,t){var n=this._extent,i=this.scale;return e=i.normalize(e),this.onBand&&"ordinal"===i.type&&m(n=n.slice(),i.count()),s(e,f,n,t)},coordToData:function(e,t){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&m(n=n.slice(),i.count());var r=s(e,n,f,t);return this.scale.scale(r)},pointToData:function(e,t){},getTicksCoords:function(e){var t=(e=e||{}).tickModel||this.getTickModel(),n=c(this,t),i=n.ticks,o=a(i,function(e){return{coord:this.dataToCoord(e),tickValue:e}},this),s=t.get("alignWithLabel");return function(e,t,n,i,a){var o=t.length;if(!e.onBand||i||!o)return;var s,l=e.getExtent();if(1===o)t[0].coord=l[0],s=t[1]={coord:l[0]};else{var u=t[1].coord-t[0].coord;r(t,function(e){e.coord-=u/2;var t=t||0;t%2>0&&(e.coord-=u/(2*(t+1)))}),s={coord:t[o-1].coord+u},t.push(s)}var c=l[0]>l[1];d(t[0].coord,l[0])&&(a?t[0].coord=l[0]:t.shift());a&&d(l[0],t[0].coord)&&t.unshift({coord:l[0]});d(l[1],s.coord)&&(a?s.coord=l[1]:t.pop());a&&d(s.coord,l[1])&&t.push({coord:l[1]});function d(e,t){return c?e>t:e<t}}(this,o,n.tickCategoryInterval,s,e.clamp),o},getViewLabels:function(){return d(this).labels},getLabelModel:function(){return this.model.getModel("axisLabel")},getTickModel:function(){return this.model.getModel("axisTick")},getBandWidth:function(){var e=this._extent,t=this.scale.getExtent(),n=t[1]-t[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(e[1]-e[0]);return Math.abs(i)/n},isHorizontal:null,getRotate:null,calculateCategoryInterval:function(){return h(this)}};var g=p;e.exports=g},fCzW:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("aVg8"),o=n("7MGq").setLabel,s=n("xWTI"),l=n("QuUA"),u=n("Q9e6"),c=["itemStyle","barBorderWidth"];r.extend(s.prototype,l);var d=i.extendChartView({type:"bar",render:function(e,t,n){this._updateDrawMode(e);var i=e.get("coordinateSystem");return"cartesian2d"!==i&&"polar"!==i||(this._isLargeDraw?this._renderLarge(e,t,n):this._renderNormal(e,t,n)),this.group},incrementalPrepareRender:function(e,t,n){this._clear(),this._updateDrawMode(e)},incrementalRender:function(e,t,n,i){this._incrementalRenderLarge(e,t)},_updateDrawMode:function(e){var t=e.pipelineContext.large;(null==this._isLargeDraw||t^this._isLargeDraw)&&(this._isLargeDraw=t,this._clear())},_renderNormal:function(e,t,n){var i,r=this.group,o=e.getData(),s=this._data,l=e.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?i=u.isHorizontal():"polar"===l.type&&(i="angle"===u.dim);var c=e.isAnimationEnabled()?e:null;o.diff(s).add(function(t){if(o.hasValue(t)){var n=o.getItemModel(t),a=m[l.type](o,t,n),s=h[l.type](o,t,n,a,i,c);o.setItemGraphicEl(t,s),r.add(s),g(s,o,t,n,a,e,i,"polar"===l.type)}}).update(function(t,n){var u=s.getItemGraphicEl(n);if(o.hasValue(t)){var d=o.getItemModel(t),f=m[l.type](o,t,d);u?a.updateProps(u,{shape:f},c,t):u=h[l.type](o,t,d,f,i,c,!0),o.setItemGraphicEl(t,u),r.add(u),g(u,o,t,d,f,e,i,"polar"===l.type)}else r.remove(u)}).remove(function(e){var t=s.getItemGraphicEl(e);"cartesian2d"===l.type?t&&f(e,c,t):t&&p(e,c,t)}).execute(),this._data=o},_renderLarge:function(e,t,n){this._clear(),y(e,this.group)},_incrementalRenderLarge:function(e,t){y(t,this.group,!0)},dispose:r.noop,remove:function(e){this._clear(e)},_clear:function(e){var t=this.group,n=this._data;e&&e.get("animation")&&n&&!this._isLargeDraw?n.eachItemGraphicEl(function(t){"sector"===t.type?p(t.dataIndex,e,t):f(t.dataIndex,e,t)}):t.removeAll(),this._data=null}}),h={cartesian2d:function(e,t,n,i,o,s,l){var u=new a.Rect({shape:r.extend({},i)});if(s){var c=u.shape,d=o?"height":"width",h={};c[d]=0,h[d]=i[d],a[l?"updateProps":"initProps"](u,{shape:h},s,t)}return u},polar:function(e,t,n,i,o,s,l){var u=i.startAngle<i.endAngle,c=new a.Sector({shape:r.defaults({clockwise:u},i)});if(s){var d=c.shape,h=o?"r":"endAngle",f={};d[h]=o?0:i.startAngle,f[h]=i[h],a[l?"updateProps":"initProps"](c,{shape:f},s,t)}return c}};function f(e,t,n){n.style.text=null,a.updateProps(n,{shape:{width:0}},t,e,function(){n.parent&&n.parent.remove(n)})}function p(e,t,n){n.style.text=null,a.updateProps(n,{shape:{r:n.shape.r0}},t,e,function(){n.parent&&n.parent.remove(n)})}var m={cartesian2d:function(e,t,n){var i=e.getItemLayout(t),r=function(e,t){var n=e.get(c)||0;return Math.min(n,Math.abs(t.width),Math.abs(t.height))}(n,i),a=i.width>0?1:-1,o=i.height>0?1:-1;return{x:i.x+a*r/2,y:i.y+o*r/2,width:i.width-a*r,height:i.height-o*r}},polar:function(e,t,n){var i=e.getItemLayout(t);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function g(e,t,n,i,s,l,u,c){var d=t.getItemVisual(n,"color"),h=t.getItemVisual(n,"opacity"),f=i.getModel("itemStyle"),p=i.getModel("emphasis.itemStyle").getBarItemStyle();c||e.setShape("r",f.get("barBorderRadius")||0),e.useStyle(r.defaults({fill:d,opacity:h},f.getBarItemStyle()));var m=i.getShallow("cursor");m&&e.attr("cursor",m);var g=u?s.height>0?"bottom":"top":s.width>0?"left":"right";c||o(e.style,p,i,d,l,n,g),a.setHoverStyle(e,p)}var v=u.extend({type:"largeBar",shape:{points:[]},buildPath:function(e,t){for(var n=t.points,i=this.__startPoint,r=this.__valueIdx,a=0;a<n.length;a+=2)i[this.__valueIdx]=n[a+r],e.moveTo(i[0],i[1]),e.lineTo(n[a],n[a+1])}});function y(e,t,n){var i=e.getData(),r=[],a=i.getLayout("valueAxisHorizontal")?1:0;r[1-a]=i.getLayout("valueAxisStart");var o=new v({shape:{points:i.getLayout("largePoints")},incremental:!!n,__startPoint:r,__valueIdx:a});t.add(o),function(e,t,n){var i=n.getVisual("borderColor")||n.getVisual("color"),r=t.getModel("itemStyle").getItemStyle(["color","borderColor"]);e.useStyle(r),e.style.fill=null,e.style.stroke=i,e.style.lineWidth=n.getLayout("barWidth")}(o,e,i)}e.exports=d},fEpO:function(e,t,n){"use strict";function i(e){this.message=e}i.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},i.prototype.__CANCEL__=!0,e.exports=i},fGNZ:function(e,t,n){var i=n("Q9e6"),r=n("luYz"),a=n("YepE"),o=a.quadraticSubdivide,s=a.cubicSubdivide,l=a.quadraticAt,u=a.cubicAt,c=a.quadraticDerivativeAt,d=a.cubicDerivativeAt,h=[];function f(e,t,n){var i=e.cpx2,r=e.cpy2;return null===i||null===r?[(n?d:u)(e.x1,e.cpx1,e.cpx2,e.x2,t),(n?d:u)(e.y1,e.cpy1,e.cpy2,e.y2,t)]:[(n?c:l)(e.x1,e.cpx1,e.x2,t),(n?c:l)(e.y1,e.cpy1,e.y2,t)]}var p=i.extend({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(e,t){var n=t.x1,i=t.y1,r=t.x2,a=t.y2,l=t.cpx1,u=t.cpy1,c=t.cpx2,d=t.cpy2,f=t.percent;0!==f&&(e.moveTo(n,i),null==c||null==d?(f<1&&(o(n,l,r,f,h),l=h[1],r=h[2],o(i,u,a,f,h),u=h[1],a=h[2]),e.quadraticCurveTo(l,u,r,a)):(f<1&&(s(n,l,c,r,f,h),l=h[1],c=h[2],r=h[3],s(i,u,d,a,f,h),u=h[1],d=h[2],a=h[3]),e.bezierCurveTo(l,u,c,d,r,a)))},pointAt:function(e){return f(this.shape,e,!1)},tangentAt:function(e){var t=f(this.shape,e,!0);return r.normalize(t,t)}});e.exports=p},fUzA:function(e,t,n){var i=n("GKMz"),r=n("vqvJ"),a=n("6/6c"),o=n("xWTI"),s=n("A4ij"),l=n("93zO"),u=a.extend({type:"geo",coordinateSystem:null,layoutMode:"box",init:function(e){a.prototype.init.apply(this,arguments),r.defaultEmphasis(e,"label",["show"])},optionUpdated:function(){var e=this.option,t=this;e.regions=l.getFilledRegions(e.regions,e.map,e.nameMap),this._optionModelMap=i.reduce(e.regions||[],function(e,n){return n.name&&e.set(n.name,new o(n,t)),e},i.createHashMap()),this.updateSelectedMap(e.regions)},defaultOption:{zlevel:0,z:0,show:!0,left:"center",top:"center",aspectScale:.75,silent:!1,map:"",boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",color:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},regions:[]},getRegionModel:function(e){return this._optionModelMap.get(e)||new o(null,this,this.ecModel)},getFormattedLabel:function(e,t){var n=this.getRegionModel(e).get("label."+t+".formatter"),i={name:e};return"function"==typeof n?(i.status=t,n(i)):"string"==typeof n?n.replace("{a}",null!=e?e:""):void 0},setZoom:function(e){this.option.zoom=e},setCenter:function(e){this.option.center=e}});i.mixin(u,s);var c=u;e.exports=c},faZ2:function(e,t){e.exports=function(e){var t=e.findComponents({mainType:"legend"});t&&t.length&&e.filterSeries(function(e){for(var n=0;n<t.length;n++)if(!t[n].isSelected(e.name))return!1;return!0})}},"g+XA":function(e,t,n){var i=n("GKMz"),r=n("ktMJ").createSymbol,a=n("aVg8").Group,o=n("abCA").parsePercent,s=n("d2Vn");function l(e,t){e.eachChild(function(e){e.attr({z:t.z,zlevel:t.zlevel,style:{stroke:"stroke"===t.brushType?t.color:null,fill:"fill"===t.brushType?t.color:null}})})}function u(e,t){a.call(this);var n=new s(e,t),i=new a;this.add(n),this.add(i),i.beforeUpdate=function(){this.attr(n.getScale())},this.updateData(e,t)}var c=u.prototype;c.stopEffectAnimation=function(){this.childAt(1).removeAll()},c.startEffectAnimation=function(e){for(var t=e.symbolType,n=e.color,i=this.childAt(1),a=0;a<3;a++){var o=r(t,-1,-1,2,2,n);o.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scale:[.5,.5]});var s=-a/3*e.period+e.effectOffset;o.animate("",!0).when(e.period,{scale:[e.rippleScale/2,e.rippleScale/2]}).delay(s).start(),o.animateStyle(!0).when(e.period,{opacity:0}).delay(s).start(),i.add(o)}l(i,e)},c.updateEffectAnimation=function(e){for(var t=this._effectCfg,n=this.childAt(1),i=["symbolType","period","rippleScale"],r=0;r<i.length;r++){var a=i[r];if(t[a]!==e[a])return this.stopEffectAnimation(),void this.startEffectAnimation(e)}l(n,e)},c.highlight=function(){this.trigger("emphasis")},c.downplay=function(){this.trigger("normal")},c.updateData=function(e,t){var n=e.hostModel;this.childAt(0).updateData(e,t);var r=this.childAt(1),a=e.getItemModel(t),s=e.getItemVisual(t,"symbol"),l=function(e){return i.isArray(e)||(e=[+e,+e]),e}(e.getItemVisual(t,"symbolSize")),u=e.getItemVisual(t,"color");r.attr("scale",l),r.traverse(function(e){e.attr({fill:u})});var c=a.getShallow("symbolOffset");if(c){var d=r.position;d[0]=o(c[0],l[0]),d[1]=o(c[1],l[1])}r.rotation=(a.getShallow("symbolRotate")||0)*Math.PI/180||0;var h={};if(h.showEffectOn=n.get("showEffectOn"),h.rippleScale=a.get("rippleEffect.scale"),h.brushType=a.get("rippleEffect.brushType"),h.period=1e3*a.get("rippleEffect.period"),h.effectOffset=t/e.count(),h.z=a.getShallow("z")||0,h.zlevel=a.getShallow("zlevel")||0,h.symbolType=s,h.color=u,this.off("mouseover").off("mouseout").off("emphasis").off("normal"),"render"===h.showEffectOn)this._effectCfg?this.updateEffectAnimation(h):this.startEffectAnimation(h),this._effectCfg=h;else{this._effectCfg=null,this.stopEffectAnimation();var f=this.childAt(0),p=function(){f.highlight(),"render"!==h.showEffectOn&&this.startEffectAnimation(h)},m=function(){f.downplay(),"render"!==h.showEffectOn&&this.stopEffectAnimation()};this.on("mouseover",p,this).on("mouseout",m,this).on("emphasis",p,this).on("normal",m,this)}this._effectCfg=h},c.fadeOut=function(e){this.off("mouseover").off("mouseout").off("emphasis").off("normal"),e&&e()},i.inherits(u,a);var d=u;e.exports=d},g0yf:function(e,t){var n="undefined"==typeof Float32Array?Array:Float32Array;function i(){var e=new n(6);return r(e),e}function r(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function a(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}t.create=i,t.identity=r,t.copy=a,t.mul=function(e,t,n){var i=t[0]*n[0]+t[2]*n[1],r=t[1]*n[0]+t[3]*n[1],a=t[0]*n[2]+t[2]*n[3],o=t[1]*n[2]+t[3]*n[3],s=t[0]*n[4]+t[2]*n[5]+t[4],l=t[1]*n[4]+t[3]*n[5]+t[5];return e[0]=i,e[1]=r,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e},t.translate=function(e,t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+n[0],e[5]=t[5]+n[1],e},t.rotate=function(e,t,n){var i=t[0],r=t[2],a=t[4],o=t[1],s=t[3],l=t[5],u=Math.sin(n),c=Math.cos(n);return e[0]=i*c+o*u,e[1]=-i*u+o*c,e[2]=r*c+s*u,e[3]=-r*u+c*s,e[4]=c*a+u*l,e[5]=c*l-u*a,e},t.scale=function(e,t,n){var i=n[0],r=n[1];return e[0]=t[0]*i,e[1]=t[1]*r,e[2]=t[2]*i,e[3]=t[3]*r,e[4]=t[4]*i,e[5]=t[5]*r,e},t.invert=function(e,t){var n=t[0],i=t[2],r=t[4],a=t[1],o=t[3],s=t[5],l=n*o-a*i;return l?(l=1/l,e[0]=o*l,e[1]=-a*l,e[2]=-i*l,e[3]=n*l,e[4]=(i*s-o*r)*l,e[5]=(a*r-n*s)*l,e):null},t.clone=function(e){var t=i();return a(t,e),t}},g6LA:function(e,t,n){var i=n("GKMz"),r=n("6/6c");n("1BB8");var a=r.extend({type:"parallel",dependencies:["parallelAxis"],coordinateSystem:null,dimensions:null,parallelAxisIndex:null,layoutMode:"box",defaultOption:{zlevel:0,z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},init:function(){r.prototype.init.apply(this,arguments),this.mergeOption({})},mergeOption:function(e){var t=this.option;e&&i.merge(t,e,!0),this._initDimensions()},contains:function(e,t){var n=e.get("parallelIndex");return null!=n&&t.getComponent("parallel",n)===this},setAxisExpand:function(e){i.each(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],function(t){e.hasOwnProperty(t)&&(this.option[t]=e[t])},this)},_initDimensions:function(){var e=this.dimensions=[],t=this.parallelAxisIndex=[],n=i.filter(this.dependentModels.parallelAxis,function(e){return(e.get("parallelIndex")||0)===this.componentIndex},this);i.each(n,function(n){e.push("dim"+n.get("dim")),t.push(n.componentIndex)})}});e.exports=a},gFO1:function(e,t,n){var i=n("GKMz"),r=n("6/6c"),a=n("M7eM"),o=n("vqvJ"),s=r.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(e,t,n){this._data,this._names,this.mergeDefaultAndTheme(e,n),this._initData()},mergeOption:function(e){s.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(e){null==e&&(e=this.option.currentIndex);var t=this._data.count();this.option.loop?e=(e%t+t)%t:(e>=t&&(e=t-1),e<0&&(e=0)),this.option.currentIndex=e},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(e){this.option.autoPlay=!!e},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var e=this.option,t=e.data||[],n=e.axisType,r=this._names=[];if("category"===n){var s=[];i.each(t,function(e,t){var n,a=o.getDataItemValue(e);i.isObject(e)?(n=i.clone(e)).value=t:n=t,s.push(n),i.isString(a)||null!=a&&!isNaN(a)||(a=""),r.push(a+"")}),t=s}var l={category:"ordinal",time:"time"}[n]||"number";(this._data=new a([{name:"value",type:l}],this)).initData(t,r)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}}),l=s;e.exports=l},gG5W:function(e,t,n){var i=n("FITv");i(i.S+i.F*!n("sjnA"),"Object",{defineProperties:n("f4eo")})},gIPg:function(e,t,n){var i=n("GKMz"),r=n("8cjF"),a=n("OGtO"),o=function(e){for(var t in e=e||{},r.call(this,e),e)e.hasOwnProperty(t)&&(this[t]=e[t]);this._children=[],this.__storage=null,this.__dirty=!0};o.prototype={constructor:o,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(e){return this._children[e]},childOfName:function(e){for(var t=this._children,n=0;n<t.length;n++)if(t[n].name===e)return t[n]},childCount:function(){return this._children.length},add:function(e){return e&&e!==this&&e.parent!==this&&(this._children.push(e),this._doAdd(e)),this},addBefore:function(e,t){if(e&&e!==this&&e.parent!==this&&t&&t.parent===this){var n=this._children,i=n.indexOf(t);i>=0&&(n.splice(i,0,e),this._doAdd(e))}return this},_doAdd:function(e){e.parent&&e.parent.remove(e),e.parent=this;var t=this.__storage,n=this.__zr;t&&t!==e.__storage&&(t.addToStorage(e),e instanceof o&&e.addChildrenToStorage(t)),n&&n.refresh()},remove:function(e){var t=this.__zr,n=this.__storage,r=this._children,a=i.indexOf(r,e);return a<0?this:(r.splice(a,1),e.parent=null,n&&(n.delFromStorage(e),e instanceof o&&e.delChildrenFromStorage(n)),t&&t.refresh(),this)},removeAll:function(){var e,t,n=this._children,i=this.__storage;for(t=0;t<n.length;t++)e=n[t],i&&(i.delFromStorage(e),e instanceof o&&e.delChildrenFromStorage(i)),e.parent=null;return n.length=0,this},eachChild:function(e,t){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];e.call(t,r,i)}return this},traverse:function(e,t){for(var n=0;n<this._children.length;n++){var i=this._children[n];e.call(t,i),"group"===i.type&&i.traverse(e,t)}return this},addChildrenToStorage:function(e){for(var t=0;t<this._children.length;t++){var n=this._children[t];e.addToStorage(n),n instanceof o&&n.addChildrenToStorage(e)}},delChildrenFromStorage:function(e){for(var t=0;t<this._children.length;t++){var n=this._children[t];e.delFromStorage(n),n instanceof o&&n.delChildrenFromStorage(e)}},dirty:function(){return this.__dirty=!0,this.__zr&&this.__zr.refresh(),this},getBoundingRect:function(e){for(var t=null,n=new a(0,0,0,0),i=e||this._children,r=[],o=0;o<i.length;o++){var s=i[o];if(!s.ignore&&!s.invisible){var l=s.getBoundingRect(),u=s.getLocalTransform(r);u?(n.copy(l),n.applyTransform(u),(t=t||n.clone()).union(n)):(t=t||l.clone()).union(l)}}return t||n}},i.inherits(o,r);var s=o;e.exports=s},gJqh:function(e,t,n){var i=n("/MtV"),r=n("HT+0"),a="sunburstRootToNode";i.registerAction({type:a,update:"updateView"},function(e,t){t.eachComponent({mainType:"series",subType:"sunburst",query:e},function(t,n){var i=r.retrieveTargetInfo(e,[a],t);if(i){var o=t.getViewRoot();o&&(e.direction=r.aboveViewRoot(o,i.node)?"rollUp":"drillDown"),t.resetViewRoot(i.node)}})});var o="sunburstHighlight";i.registerAction({type:o,update:"updateView"},function(e,t){t.eachComponent({mainType:"series",subType:"sunburst",query:e},function(t,n){var i=r.retrieveTargetInfo(e,[o],t);i&&(e.highlight=i.node)})});i.registerAction({type:"sunburstUnhighlight",update:"updateView"},function(e,t){t.eachComponent({mainType:"series",subType:"sunburst",query:e},function(t,n){e.unhighlight=!0})})},gOjO:function(e,t){var n=["itemStyle","borderColor"];e.exports=function(e,t){var i=e.get("color");e.eachRawSeriesByType("boxplot",function(t){var r=i[t.seriesIndex%i.length],a=t.getData();a.setVisual({legendSymbol:"roundRect",color:t.get(n)||r}),e.isSeriesFiltered(t)||a.each(function(e){var t=a.getItemModel(e);a.setItemVisual(e,{color:t.get(n,!0)})})})}},gQJx:function(e,t){var n="";"undefined"!=typeof navigator&&(n=navigator.platform||"");var i={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:n.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:"auto",animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};e.exports=i},gSu5:function(e,t){var n=[[[123.45165252685547,25.73527164402261],[123.49731445312499,25.73527164402261],[123.49731445312499,25.750734064600884],[123.45165252685547,25.750734064600884],[123.45165252685547,25.73527164402261]]];e.exports=function(e){if("china"===e.map)for(var t=0,i=e.regions.length;t<i;++t)"鍙版咕"===e.regions[t].name&&e.regions[t].geometries.push({type:"polygon",exterior:n[0]})}},gTJY:function(e,t,n){var i=n("GKMz"),r=n("kO0W");function a(e){r.call(this,e)}a.prototype={constructor:a,type:"cartesian2d",dimensions:["x","y"],getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},containPoint:function(e){var t=this.getAxis("x"),n=this.getAxis("y");return t.contain(t.toLocalCoord(e[0]))&&n.contain(n.toLocalCoord(e[1]))},containData:function(e){return this.getAxis("x").containData(e[0])&&this.getAxis("y").containData(e[1])},dataToPoint:function(e,t,n){var i=this.getAxis("x"),r=this.getAxis("y");return(n=n||[])[0]=i.toGlobalCoord(i.dataToCoord(e[0])),n[1]=r.toGlobalCoord(r.dataToCoord(e[1])),n},clampData:function(e,t){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),a=i.getExtent(),o=n.parse(e[0]),s=i.parse(e[1]);return(t=t||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),o),Math.max(r[0],r[1])),t[1]=Math.min(Math.max(Math.min(a[0],a[1]),s),Math.max(a[0],a[1])),t},pointToData:function(e,t){var n=this.getAxis("x"),i=this.getAxis("y");return(t=t||[])[0]=n.coordToData(n.toLocalCoord(e[0])),t[1]=i.coordToData(i.toLocalCoord(e[1])),t},getOtherAxis:function(e){return this.getAxis("x"===e.dim?"y":"x")}},i.inherits(a,r);var o=a;e.exports=o},gbpp:function(e,t,n){var i=n("vqvJ").makeInner;e.exports=function(){var e=i();return function(t){var n=e(t),i=t.pipelineContext,r=n.large,a=n.progressiveRender,o=n.large=i.large,s=n.progressiveRender=i.progressiveRender;return!!(r^o||a^s)&&"reset"}}},gk9k:function(e,t,n){var i=n("M9Ps"),r=i.eachAfter,a=i.eachBefore,o=n("I22d"),s=o.init,l=o.firstWalk,u=o.secondWalk,c=o.separation,d=o.radialCoordinate,h=o.getViewRect;e.exports=function(e,t){e.eachSeriesByType("tree",function(e){!function(e,t){var n=h(e,t);e.layoutInfo=n;var i=e.get("layout"),o=0,f=0,p=null;"radial"===i?(o=2*Math.PI,f=Math.min(n.height,n.width)/2,p=c(function(e,t){return(e.parentNode===t.parentNode?1:2)/e.depth})):(o=n.width,f=n.height,p=c());var m=e.getData().tree.root,g=m.children[0];if(g){s(m),r(g,l,p),m.hierNode.modifier=-g.hierNode.prelim,a(g,u);var v=g,y=g,b=g;a(g,function(e){var t=e.getLayout().x;t<v.getLayout().x&&(v=e),t>y.getLayout().x&&(y=e),e.depth>b.depth&&(b=e)});var _=v===y?1:p(v,y)/2,x=_-v.getLayout().x,w=0,S=0,C=0,M=0;if("radial"===i)w=o/(y.getLayout().x+_+x),S=f/(b.depth-1||1),a(g,function(e){C=(e.getLayout().x+x)*w,M=(e.depth-1)*S;var t=d(C,M);e.setLayout({x:t.x,y:t.y,rawX:C,rawY:M},!0)});else{var k=e.getOrient();"RL"===k||"LR"===k?(S=f/(y.getLayout().x+_+x),w=o/(b.depth-1||1),a(g,function(e){M=(e.getLayout().x+x)*S,C="LR"===k?(e.depth-1)*w:o-(e.depth-1)*w,e.setLayout({x:C,y:M},!0)})):"TB"!==k&&"BT"!==k||(w=o/(y.getLayout().x+_+x),S=f/(b.depth-1||1),a(g,function(e){C=(e.getLayout().x+x)*w,M="TB"===k?(e.depth-1)*S:f-(e.depth-1)*S,e.setLayout({x:C,y:M},!0)}))}}}(e,t)})}},go9Q:function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},grD2:function(e,t){t.updateViewOnPan=function(e,t,n){var i=e.target,r=i.position;r[0]+=t,r[1]+=n,i.dirty()},t.updateViewOnZoom=function(e,t,n,i){var r=e.target,a=e.zoomLimit,o=r.position,s=r.scale,l=e.zoom=e.zoom||1;if(l*=t,a){var u=a.min||0,c=a.max||1/0;l=Math.max(Math.min(c,l),u)}var d=l/e.zoom;e.zoom=l,o[0]-=(n-o[0])*(d-1),o[1]-=(i-o[1])*(d-1),s[0]*=d,s[1]*=d,r.dirty()}},"gt1/":function(e,t,n){var i=n("ofeI"),r=n("GKMz"),a=n("gxMf"),o=n("MPog"),s=function(e){i.call(this,e)};s.prototype={constructor:s,type:"text",brush:function(e,t){var n=this.style;this.__dirty&&o.normalizeTextStyle(n,!0),n.fill=n.stroke=n.shadowBlur=n.shadowColor=n.shadowOffsetX=n.shadowOffsetY=null;var i=n.text;null!=i&&(i+=""),n.bind(e,this,t),o.needDrawText(i,n)&&(this.setTransform(e),o.renderText(this,e,i,n),this.restoreTransform(e))},getBoundingRect:function(){var e=this.style;if(this.__dirty&&o.normalizeTextStyle(e,!0),!this._rect){var t=e.text;null!=t?t+="":t="";var n=a.getBoundingRect(e.text+"",e.font,e.textAlign,e.textVerticalAlign,e.textPadding,e.rich);if(n.x+=e.x||0,n.y+=e.y||0,o.getStroke(e.textStroke,e.textStrokeWidth)){var i=e.textStrokeWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect}},r.inherits(s,i);var l=s;e.exports=l},gxMf:function(e,t,n){var i=n("OGtO"),r=n("Pp7o"),a=n("GKMz"),o=a.getContext,s=a.extend,l=a.retrieve2,u=a.retrieve3,c=a.trim,d={},h=0,f=5e3,p=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g,m="12px sans-serif",g={};function v(e,t){var n=e+":"+(t=t||m);if(d[n])return d[n];for(var i=(e+"").split("\n"),r=0,a=0,o=i.length;a<o;a++)r=Math.max(M(i[a],t).width,r);return h>f&&(h=0,d={}),h++,d[n]=r,r}function y(e,t,n){return"right"===n?e-=t:"center"===n&&(e-=t/2),e}function b(e,t,n){return"middle"===n?e-=t/2:"bottom"===n&&(e-=t),e}function _(e,t,n,i,r){if(!t)return"";var a=(e+"").split("\n");r=x(t,n,i,r);for(var o=0,s=a.length;o<s;o++)a[o]=w(a[o],r);return a.join("\n")}function x(e,t,n,i){(i=s({},i)).font=t;n=l(n,"...");i.maxIterations=l(i.maxIterations,2);var r=i.minChar=l(i.minChar,0);i.cnCharWidth=v("鍥�",t);var a=i.ascCharWidth=v("a",t);i.placeholder=l(i.placeholder,"");for(var o=e=Math.max(0,e-1),u=0;u<r&&o>=a;u++)o-=a;var c=v(n);return c>o&&(n="",c=0),o=e-c,i.ellipsis=n,i.ellipsisWidth=c,i.contentWidth=o,i.containerWidth=e,i}function w(e,t){var n=t.containerWidth,i=t.font,r=t.contentWidth;if(!n)return"";var a=v(e,i);if(a<=n)return e;for(var o=0;;o++){if(a<=r||o>=t.maxIterations){e+=t.ellipsis;break}var s=0===o?S(e,r,t.ascCharWidth,t.cnCharWidth):a>0?Math.floor(e.length*r/a):0;a=v(e=e.substr(0,s),i)}return""===e&&(e=t.placeholder),e}function S(e,t,n,i){for(var r=0,a=0,o=e.length;a<o&&r<t;a++){var s=e.charCodeAt(a);r+=0<=s&&s<=127?n:i}return a}function C(e){return v("鍥�",e)}function M(e,t){return g.measureText(e,t)}function k(e,t,n,i){null!=e&&(e+="");var r=C(t),a=e?e.split("\n"):[],o=a.length*r,s=o;if(n&&(s+=n[0]+n[2]),e&&i){var l=i.outerHeight,u=i.outerWidth;if(null!=l&&s>l)e="",a=[];else if(null!=u)for(var c=x(u-(n?n[1]+n[3]:0),t,i.ellipsis,{minChar:i.minChar,placeholder:i.placeholder}),d=0,h=a.length;d<h;d++)a[d]=w(a[d],c)}return{lines:a,height:o,outerHeight:s,lineHeight:r}}function T(e,t){var n={lines:[],width:0,height:0};if(null!=e&&(e+=""),!e)return n;for(var i,a=p.lastIndex=0;null!=(i=p.exec(e));){var o=i.index;o>a&&A(n,e.substring(a,o)),A(n,i[2],i[1]),a=p.lastIndex}a<e.length&&A(n,e.substring(a,e.length));var s=n.lines,c=0,d=0,h=[],f=t.textPadding,m=t.truncate,g=m&&m.outerWidth,y=m&&m.outerHeight;f&&(null!=g&&(g-=f[1]+f[3]),null!=y&&(y-=f[0]+f[2]));for(var b=0;b<s.length;b++){for(var x=s[b],w=0,S=0,M=0;M<x.tokens.length;M++){var k=(B=x.tokens[M]).styleName&&t.rich[B.styleName]||{},T=B.textPadding=k.textPadding,I=B.font=k.font||t.font,E=B.textHeight=l(k.textHeight,C(I));if(T&&(E+=T[0]+T[2]),B.height=E,B.lineHeight=u(k.textLineHeight,t.textLineHeight,E),B.textAlign=k&&k.textAlign||t.textAlign,B.textVerticalAlign=k&&k.textVerticalAlign||"middle",null!=y&&c+B.lineHeight>y)return{lines:[],width:0,height:0};B.textWidth=v(B.text,I);var D=k.textWidth,O=null==D||"auto"===D;if("string"==typeof D&&"%"===D.charAt(D.length-1))B.percentWidth=D,h.push(B),D=0;else{if(O){D=B.textWidth;var P=k.textBackgroundColor,L=P&&P.image;L&&(L=r.findExistImage(L),r.isImageReady(L)&&(D=Math.max(D,L.width*E/L.height)))}var R=T?T[1]+T[3]:0;D+=R;var N=null!=g?g-S:null;null!=N&&N<D&&(!O||N<R?(B.text="",B.textWidth=D=0):(B.text=_(B.text,N-R,I,m.ellipsis,{minChar:m.minChar}),B.textWidth=v(B.text,I),D=B.textWidth+R))}S+=B.width=D,k&&(w=Math.max(w,B.lineHeight))}x.width=S,x.lineHeight=w,c+=w,d=Math.max(d,S)}n.outerWidth=n.width=l(t.textWidth,d),n.outerHeight=n.height=l(t.textHeight,c),f&&(n.outerWidth+=f[1]+f[3],n.outerHeight+=f[0]+f[2]);for(b=0;b<h.length;b++){var B,F=(B=h[b]).percentWidth;B.width=parseInt(F,10)/100*d}return n}function A(e,t,n){for(var i=""===t,r=t.split("\n"),a=e.lines,o=0;o<r.length;o++){var s=r[o],l={styleName:n,text:s,isLineHolder:!s&&!i};if(o)a.push({tokens:[l]});else{var u=(a[a.length-1]||(a[0]={tokens:[]})).tokens,c=u.length;1===c&&u[0].isLineHolder?u[0]=l:(s||!c||i)&&u.push(l)}}}g.measureText=function(e,t){var n=o();return n.font=t||m,n.measureText(e)},t.DEFAULT_FONT=m,t.$override=function(e,t){g[e]=t},t.getWidth=v,t.getBoundingRect=function(e,t,n,r,a,o,s){return o?function(e,t,n,r,a,o,s){var l=T(e,{rich:o,truncate:s,font:t,textAlign:n,textPadding:a}),u=l.outerWidth,c=l.outerHeight,d=y(0,u,n),h=b(0,c,r);return new i(d,h,u,c)}(e,t,n,r,a,o,s):function(e,t,n,r,a,o){var s=k(e,t,a,o),l=v(e,t);a&&(l+=a[1]+a[3]);var u=s.outerHeight,c=y(0,l,n),d=b(0,u,r),h=new i(c,d,l,u);return h.lineHeight=s.lineHeight,h}(e,t,n,r,a,s)},t.adjustTextX=y,t.adjustTextY=b,t.adjustTextPositionOnRect=function(e,t,n){var i=t.x,r=t.y,a=t.height,o=t.width,s=a/2,l="left",u="top";switch(e){case"left":i-=n,r+=s,l="right",u="middle";break;case"right":i+=n+o,r+=s,u="middle";break;case"top":i+=o/2,r-=n,l="center",u="bottom";break;case"bottom":i+=o/2,r+=a+n,l="center";break;case"inside":i+=o/2,r+=s,l="center",u="middle";break;case"insideLeft":i+=n,r+=s,u="middle";break;case"insideRight":i+=o-n,r+=s,l="right",u="middle";break;case"insideTop":i+=o/2,r+=n,l="center";break;case"insideBottom":i+=o/2,r+=a-n,l="center",u="bottom";break;case"insideTopLeft":i+=n,r+=n;break;case"insideTopRight":i+=o-n,r+=n,l="right";break;case"insideBottomLeft":i+=n,r+=a-n,u="bottom";break;case"insideBottomRight":i+=o-n,r+=a-n,l="right",u="bottom"}return{x:i,y:r,textAlign:l,textVerticalAlign:u}},t.truncateText=_,t.getLineHeight=C,t.measureText=M,t.parsePlainText=k,t.parseRichText=T,t.makeFont=function(e){var t=(e.fontSize||e.fontFamily)&&[e.fontStyle,e.fontWeight,(e.fontSize||12)+"px",e.fontFamily||"sans-serif"].join(" ");return t&&c(t)||e.textFont||e.font}},gzF7:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("uF0F");i.registerAction("dataZoom",function(e,t){var n=a.createLinkedNodesFinder(r.bind(t.eachComponent,t,"dataZoom"),a.eachAxisDim,function(e,t){return e.get(t.axisIndex)}),i=[];t.eachComponent({mainType:"dataZoom",query:e},function(e,t){i.push.apply(i,n(e).nodes)}),r.each(i,function(t,n){t.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})})},"h+0C":function(e,t,n){var i=n("luYz").distance;function r(e,t,n,i,r,a,o){var s=.5*(n-e),l=.5*(i-t);return(2*(t-n)+s+l)*o+(-3*(t-n)-2*s-l)*a+s*r+t}e.exports=function(e,t){for(var n=e.length,a=[],o=0,s=1;s<n;s++)o+=i(e[s-1],e[s]);var l=o/2;for(l=l<n?n:l,s=0;s<l;s++){var u,c,d,h=s/(l-1)*(t?n:n-1),f=Math.floor(h),p=h-f,m=e[f%n];t?(u=e[(f-1+n)%n],c=e[(f+1)%n],d=e[(f+2)%n]):(u=e[0===f?f:f-1],c=e[f>n-2?n-1:f+1],d=e[f>n-3?n-1:f+2]);var g=p*p,v=p*g;a.push([r(u[0],m[0],c[0],d[0],p,g,v),r(u[1],m[1],c[1],d[1],p,g,v)])}return a}},"h+Y5":function(e,t,n){var i=n("GKMz"),r=n("abCA").parsePercent,a=n("cfvC").isDimensionStacked,o=n("gbpp"),s="__ec_stack_",l="undefined"!=typeof Float32Array?Float32Array:Array;function u(e){return e.get("stack")||s+e.seriesIndex}function c(e){return e.dim+e.index}function d(e,t){var n=[];return t.eachSeriesByType(e,function(e){g(e)&&!v(e)&&n.push(e)}),n}function h(e){var t=[];return i.each(e,function(e){var n=e.getData(),i=e.coordinateSystem.getBaseAxis(),a=i.getExtent(),o="category"===i.type?i.getBandWidth():Math.abs(a[1]-a[0])/n.count(),s=r(e.get("barWidth"),o),l=r(e.get("barMaxWidth"),o),d=e.get("barGap"),h=e.get("barCategoryGap");t.push({bandWidth:o,barWidth:s,barMaxWidth:l,barGap:d,barCategoryGap:h,axisKey:c(i),stackId:u(e)})}),f(t)}function f(e){var t={};i.each(e,function(e,n){var i=e.axisKey,r=e.bandWidth,a=t[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},o=a.stacks;t[i]=a;var s=e.stackId;o[s]||a.autoWidthCount++,o[s]=o[s]||{width:0,maxWidth:0};var l=e.barWidth;l&&!o[s].width&&(o[s].width=l,l=Math.min(a.remainedWidth,l),a.remainedWidth-=l);var u=e.barMaxWidth;u&&(o[s].maxWidth=u);var c=e.barGap;null!=c&&(a.gap=c);var d=e.barCategoryGap;null!=d&&(a.categoryGap=d)});var n={};return i.each(t,function(e,t){n[t]={};var a=e.stacks,o=e.bandWidth,s=r(e.categoryGap,o),l=r(e.gap,1),u=e.remainedWidth,c=e.autoWidthCount,d=(u-s)/(c+(c-1)*l);d=Math.max(d,0),i.each(a,function(e,t){var n=e.maxWidth;n&&n<d&&(n=Math.min(n,u),e.width&&(n=Math.min(n,e.width)),u-=n,e.width=n,c--)}),d=(u-s)/(c+(c-1)*l),d=Math.max(d,0);var h,f=0;i.each(a,function(e,t){e.width||(e.width=d),h=e,f+=e.width*(1+l)}),h&&(f-=h.width*l);var p=-f/2;i.each(a,function(e,i){n[t][i]=n[t][i]||{offset:p,width:e.width},p+=e.width*(1+l)})}),n}function p(e,t,n){if(e&&t){var i=e[c(t)];return null!=i&&null!=n&&(i=i[u(n)]),i}}var m={seriesType:"bar",plan:o(),reset:function(e){if(g(e)&&v(e)){var t=e.getData(),n=e.coordinateSystem,i=n.getBaseAxis(),r=n.getOtherAxis(i),a=t.mapDimension(r.dim),o=t.mapDimension(i.dim),s=r.isHorizontal(),u=s?0:1,c=p(h([e]),i,e).width;return c>.5||(c=.5),{progress:function(e,t){var d,h=new l(2*e.count),f=[],p=[],m=0;for(;null!=(d=e.next());)p[u]=t.get(a,d),p[1-u]=t.get(o,d),f=n.dataToPoint(p,null,f),h[m++]=f[0],h[m++]=f[1];t.setLayout({largePoints:h,barWidth:c,valueAxisStart:y(i,r,!1),valueAxisHorizontal:s})}}}}};function g(e){return e.coordinateSystem&&"cartesian2d"===e.coordinateSystem.type}function v(e){return e.pipelineContext&&e.pipelineContext.large}function y(e,t,n){return i.indexOf(e.getAxesOnZeroOf(),t)>=0||n?t.toGlobalCoord(t.dataToCoord(0)):t.getGlobalExtent()[0]}t.getLayoutOnAxis=function(e){var t=[],n=e.axis;if("category"===n.type){for(var r=n.getBandWidth(),a=0;a<e.count;a++)t.push(i.defaults({bandWidth:r,axisKey:"axis0",stackId:s+a},e));var o=f(t),l=[];for(a=0;a<e.count;a++){var u=o.axis0[s+a];u.offsetCenter=u.offset+u.width/2,l.push(u)}return l}},t.prepareLayoutBarSeries=d,t.makeColumnLayout=h,t.retrieveColumnLayout=p,t.layout=function(e,t){var n=d(e,t),r=h(n),o={},s={};i.each(n,function(e){var t=e.getData(),n=e.coordinateSystem,i=n.getBaseAxis(),l=u(e),d=r[c(i)][l],h=d.offset,f=d.width,p=n.getOtherAxis(i),m=e.get("barMinHeight")||0;o[l]=o[l]||[],s[l]=s[l]||[],t.setLayout({offset:h,size:f});for(var g=t.mapDimension(p.dim),v=t.mapDimension(i.dim),b=a(t,g),_=p.isHorizontal(),x=y(i,p,b),w=0,S=t.count();w<S;w++){var C=t.get(g,w),M=t.get(v,w);if(!isNaN(C)){var k,T,A,I,E,D=C>=0?"p":"n",O=x;b&&(o[l][M]||(o[l][M]={p:x,n:x}),O=o[l][M][D]),_?(k=O,T=(E=n.dataToPoint([C,M]))[1]+h,A=E[0]-x,I=f,Math.abs(A)<m&&(A=(A<0?-1:1)*m),b&&(o[l][M][D]+=A)):(k=(E=n.dataToPoint([M,C]))[0]+h,T=O,A=f,I=E[1]-x,Math.abs(I)<m&&(I=(I<=0?-1:1)*m),b&&(o[l][M][D]+=I)),t.setItemLayout(w,{x:k,y:T,width:A,height:I})}}},this)},t.largeLayout=m},h3QQ:function(e,t,n){"use strict";var i=n("Oa1u");e.exports=function(e,t,n,r,a){var o=new Error(e);return i(o,t,n,r,a)}},h917:function(e,t,n){var i=n("/MtV"),r=n("aVg8"),a=n("GKMz"),o=n("ktMJ");var s=i.extendChartView({type:"radar",render:function(e,t,n){var i=e.coordinateSystem,s=this.group,l=e.getData(),u=this._data;function c(e,t){var n=e.getItemVisual(t,"symbol")||"circle",i=e.getItemVisual(t,"color");if("none"!==n){var r=function(e){return a.isArray(e)||(e=[+e,+e]),e}(e.getItemVisual(t,"symbolSize")),s=o.createSymbol(n,-1,-1,2,2,i);return s.attr({style:{strokeNoScale:!0},z2:100,scale:[r[0]/2,r[1]/2]}),s}}function d(t,n,i,a,o,s){i.removeAll();for(var l=0;l<n.length-1;l++){var u=c(a,o);u&&(u.__dimIdx=l,t[l]?(u.attr("position",t[l]),r[s?"initProps":"updateProps"](u,{position:n[l]},e,o)):u.attr("position",n[l]),i.add(u))}}function h(e){return a.map(e,function(e){return[i.cx,i.cy]})}l.diff(u).add(function(t){var n=l.getItemLayout(t);if(n){var i=new r.Polygon,a=new r.Polyline,o={shape:{points:n}};i.shape.points=h(n),a.shape.points=h(n),r.initProps(i,o,e,t),r.initProps(a,o,e,t);var s=new r.Group,u=new r.Group;s.add(a),s.add(i),s.add(u),d(a.shape.points,n,u,l,t,!0),l.setItemGraphicEl(t,s)}}).update(function(t,n){var i=u.getItemGraphicEl(n),a=i.childAt(0),o=i.childAt(1),s=i.childAt(2),c={shape:{points:l.getItemLayout(t)}};c.shape.points&&(d(a.shape.points,c.shape.points,s,l,t,!1),r.updateProps(a,c,e),r.updateProps(o,c,e),l.setItemGraphicEl(t,i))}).remove(function(e){s.remove(u.getItemGraphicEl(e))}).execute(),l.eachItemGraphicEl(function(e,t){var n=l.getItemModel(t),i=e.childAt(0),o=e.childAt(1),u=e.childAt(2),c=l.getItemVisual(t,"color");s.add(e),i.useStyle(a.defaults(n.getModel("lineStyle").getLineStyle(),{fill:"none",stroke:c})),i.hoverStyle=n.getModel("emphasis.lineStyle").getLineStyle();var d=n.getModel("areaStyle"),h=n.getModel("emphasis.areaStyle"),f=d.isEmpty()&&d.parentModel.isEmpty(),p=h.isEmpty()&&h.parentModel.isEmpty();p=p&&f,o.ignore=f,o.useStyle(a.defaults(d.getAreaStyle(),{fill:c,opacity:.7})),o.hoverStyle=h.getAreaStyle();var m=n.getModel("itemStyle").getItemStyle(["color"]),g=n.getModel("emphasis.itemStyle").getItemStyle(),v=n.getModel("label"),y=n.getModel("emphasis.label");function b(){o.attr("ignore",p)}function _(){o.attr("ignore",f)}u.eachChild(function(e){e.setStyle(m),e.hoverStyle=a.clone(g),r.setLabelStyle(e.style,e.hoverStyle,v,y,{labelFetcher:l.hostModel,labelDataIndex:t,labelDimIndex:e.__dimIdx,defaultText:l.get(l.dimensions[e.__dimIdx],t),autoColor:c,isRectText:!0})}),e.off("mouseover").off("mouseout").off("normal").off("emphasis"),e.on("emphasis",b).on("mouseover",b).on("normal",_).on("mouseout",_),r.setHoverStyle(e)}),this._data=l},remove:function(){this.group.removeAll(),this._data=null},dispose:function(){}});e.exports=s},hEXF:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("jP6M"),o=n("KdYD");n("4KIe"),n("+BVR"),n("+Th3"),i.registerPreprocessor(function(e){if(e){(!e.axisPointer||0===e.axisPointer.length)&&(e.axisPointer={});var t=e.axisPointer.link;t&&!r.isArray(t)&&(e.axisPointer.link=[t])}}),i.registerProcessor(i.PRIORITY.PROCESSOR.STATISTIC,function(e,t){e.getComponent("axisPointer").coordSysAxesInfo=a.collect(e,t)}),i.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},o)},hLyB:function(e,t,n){var i=n("/MtV"),r=n("GKMz");i.registerAction({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(e,t){var n=t.getComponent("timeline");return n&&null!=e.currentIndex&&(n.setCurrentIndex(e.currentIndex),!n.get("loop",!0)&&n.isIndexMax()&&n.setPlayState(!1)),t.resetOption("timeline"),r.defaults({currentIndex:n.option.currentIndex},e)}),i.registerAction({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(e,t){var n=t.getComponent("timeline");n&&null!=e.playState&&n.setPlayState(e.playState)})},hN2N:function(e,t,n){"use strict";(function(t){var i=n("8r5Y"),r=n("4pJO"),a={"Content-Type":"application/x-www-form-urlencoded"};function o(e,t){!i.isUndefined(e)&&i.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,l={adapter:("undefined"!=typeof XMLHttpRequest?s=n("lFbO"):void 0!==t&&(s=n("lFbO")),s),transformRequest:[function(e,t){return r(t,"Content-Type"),i.isFormData(e)||i.isArrayBuffer(e)||i.isBuffer(e)||i.isStream(e)||i.isFile(e)||i.isBlob(e)?e:i.isArrayBufferView(e)?e.buffer:i.isURLSearchParams(e)?(o(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):i.isObject(e)?(o(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},i.forEach(["delete","get","head"],function(e){l.headers[e]={}}),i.forEach(["post","put","patch"],function(e){l.headers[e]=i.merge(a)}),e.exports=l}).call(t,n("V0EG"))},hOez:function(e,t,n){var i=n("zBeA").extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});e.exports=i},hRKE:function(e,t,n){"use strict";t.__esModule=!0;var i=o(n("2LoE")),r=o(n("Yyxk")),a="function"==typeof r.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":typeof e};function o(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof r.default&&"symbol"===a(i.default)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof r.default&&e.constructor===r.default&&e!==r.default.prototype?"symbol":void 0===e?"undefined":a(e)}},hTgT:function(e,t,n){var i=n("yX3w"),r=n("EvF4"),a=n("DoZ5"),o=n("oxQp"),s=n("115t"),l=n("RkrU").normalizeRadian,u=n("YepE"),c=n("RaST"),d=i.CMD,h=2*Math.PI,f=1e-4;var p=[-1,-1,-1],m=[-1,-1];function g(e,t,n,i,r,a,o,s,l,c){if(c>t&&c>i&&c>a&&c>s||c<t&&c<i&&c<a&&c<s)return 0;var d,h=u.cubicRootAt(t,i,a,s,c,p);if(0===h)return 0;for(var f,g,v=0,y=-1,b=0;b<h;b++){var _=p[b],x=0===_||1===_?.5:1;u.cubicAt(e,n,r,o,_)<l||(y<0&&(y=u.cubicExtrema(t,i,a,s,m),m[1]<m[0]&&y>1&&(void 0,d=m[0],m[0]=m[1],m[1]=d),f=u.cubicAt(t,i,a,s,m[0]),y>1&&(g=u.cubicAt(t,i,a,s,m[1]))),2==y?_<m[0]?v+=f<t?x:-x:_<m[1]?v+=g<f?x:-x:v+=s<g?x:-x:_<m[0]?v+=f<t?x:-x:v+=s<f?x:-x)}return v}function v(e,t,n,i,r,a,o,s){if(s>t&&s>i&&s>a||s<t&&s<i&&s<a)return 0;var l=u.quadraticRootAt(t,i,a,s,p);if(0===l)return 0;var c=u.quadraticExtremum(t,i,a);if(c>=0&&c<=1){for(var d=0,h=u.quadraticAt(t,i,a,c),f=0;f<l;f++){var m=0===p[f]||1===p[f]?.5:1;u.quadraticAt(e,n,r,p[f])<o||(p[f]<c?d+=h<t?m:-m:d+=a<h?m:-m)}return d}m=0===p[0]||1===p[0]?.5:1;return u.quadraticAt(e,n,r,p[0])<o?0:a<t?m:-m}function y(e,t,n,i,r,a,o,s){if((s-=t)>n||s<-n)return 0;var u=Math.sqrt(n*n-s*s);p[0]=-u,p[1]=u;var c=Math.abs(i-r);if(c<1e-4)return 0;if(c%h<1e-4){i=0,r=h;var d=a?1:-1;return o>=p[0]+e&&o<=p[1]+e?d:0}if(a){u=i;i=l(r),r=l(u)}else i=l(i),r=l(r);i>r&&(r+=h);for(var f=0,m=0;m<2;m++){var g=p[m];if(g+e>o){var v=Math.atan2(s,g);d=a?1:-1;v<0&&(v=h+v),(v>=i&&v<=r||v+h>=i&&v+h<=r)&&(v>Math.PI/2&&v<1.5*Math.PI&&(d=-d),f+=d)}}return f}function b(e,t,n,i,l){for(var u,h,p=0,m=0,b=0,_=0,x=0,w=0;w<e.length;){var S=e[w++];switch(S===d.M&&w>1&&(n||(p+=c(m,b,_,x,i,l))),1==w&&(_=m=e[w],x=b=e[w+1]),S){case d.M:m=_=e[w++],b=x=e[w++];break;case d.L:if(n){if(r.containStroke(m,b,e[w],e[w+1],t,i,l))return!0}else p+=c(m,b,e[w],e[w+1],i,l)||0;m=e[w++],b=e[w++];break;case d.C:if(n){if(a.containStroke(m,b,e[w++],e[w++],e[w++],e[w++],e[w],e[w+1],t,i,l))return!0}else p+=g(m,b,e[w++],e[w++],e[w++],e[w++],e[w],e[w+1],i,l)||0;m=e[w++],b=e[w++];break;case d.Q:if(n){if(o.containStroke(m,b,e[w++],e[w++],e[w],e[w+1],t,i,l))return!0}else p+=v(m,b,e[w++],e[w++],e[w],e[w+1],i,l)||0;m=e[w++],b=e[w++];break;case d.A:var C=e[w++],M=e[w++],k=e[w++],T=e[w++],A=e[w++],I=e[w++],E=(e[w++],1-e[w++]),D=Math.cos(A)*k+C,O=Math.sin(A)*T+M;w>1?p+=c(m,b,D,O,i,l):(_=D,x=O);var P=(i-C)*T/k+C;if(n){if(s.containStroke(C,M,T,A,A+I,E,t,P,l))return!0}else p+=y(C,M,T,A,A+I,E,P,l);m=Math.cos(A+I)*k+C,b=Math.sin(A+I)*T+M;break;case d.R:_=m=e[w++],x=b=e[w++];D=_+e[w++],O=x+e[w++];if(n){if(r.containStroke(_,x,D,x,t,i,l)||r.containStroke(D,x,D,O,t,i,l)||r.containStroke(D,O,_,O,t,i,l)||r.containStroke(_,O,_,x,t,i,l))return!0}else p+=c(D,x,D,O,i,l),p+=c(_,O,_,x,i,l);break;case d.Z:if(n){if(r.containStroke(m,b,_,x,t,i,l))return!0}else p+=c(m,b,_,x,i,l);m=_,b=x}}return n||(u=b,h=x,Math.abs(u-h)<f)||(p+=c(m,b,_,x,i,l)||0),0!==p}t.contain=function(e,t,n){return b(e,0,!1,t,n)},t.containStroke=function(e,t,n,i){return b(e,t,!0,n,i)}},heZm:function(e,t,n){var i=n("GKMz"),r=n("abCA");function a(e,t,n){if(e.count())for(var r,a=t.coordinateSystem,o=t.getLayerSeries(),s=e.mapDimension("single"),l=e.mapDimension("value"),u=i.map(o,function(t){return i.map(t.indices,function(t){var n=a.dataToPoint(e.get(s,t));return n[1]=e.get(l,t),n})}),c=function(e){for(var t=e.length,n=e[0].length,i=[],r=[],a=0,o={},s=0;s<n;++s){for(var l=0,u=0;l<t;++l)u+=e[l][s][1];u>a&&(a=u),i.push(u)}for(var c=0;c<n;++c)r[c]=(a-i[c])/2;a=0;for(var d=0;d<n;++d){var h=i[d]+r[d];h>a&&(a=h)}return o.y0=r,o.max=a,o}(u),d=c.y0,h=n/c.max,f=o.length,p=o[0].indices.length,m=0;m<p;++m){r=d[m]*h,e.setItemLayout(o[0].indices[m],{layerIndex:0,x:u[0][m][0],y0:r,y:u[0][m][1]*h});for(var g=1;g<f;++g)r+=u[g-1][m][1]*h,e.setItemLayout(o[g].indices[m],{layerIndex:g,x:u[g][m][0],y0:r,y:u[g][m][1]*h})}}e.exports=function(e,t){e.eachSeriesByType("themeRiver",function(e){var t=e.getData(),n=e.coordinateSystem,i={},o=n.getRect();i.rect=o;var s=e.get("boundaryGap"),l=n.getAxis();i.boundaryGap=s,"horizontal"===l.orient?(s[0]=r.parsePercent(s[0],o.height),s[1]=r.parsePercent(s[1],o.height),a(t,e,o.height-s[0]-s[1])):(s[0]=r.parsePercent(s[0],o.width),s[1]=r.parsePercent(s[1],o.width),a(t,e,o.width-s[0]-s[1])),t.setLayout("layoutInfo",i)})}},hqCH:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("JBj0"),a=n("7Rvj"),o=n("k7IZ"),s=n("abCA").reformIntervals,l=r.extend({type:"visualMap.piecewise",defaultOption:{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieceList:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0,showLabel:null},optionUpdated:function(e,t){l.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetExtent();var n=this._mode=this._determineMode();u[this._mode].call(this),this._resetSelected(e,t);var r=this.option.categories;this.resetVisual(function(e,t){"categories"===n?(e.mappingMethod="category",e.categories=i.clone(r)):(e.dataExtent=this.getExtent(),e.mappingMethod="piecewise",e.pieceList=i.map(this._pieceList,function(e){e=i.clone(e);return"inRange"!==t&&(e.visual=null),e}))})},completeVisualOption:function(){var e=this.option,t={},n=a.listVisualTypes(),s=this.isCategory();function l(e,t,n){return e&&e[t]&&(i.isObject(e[t])?e[t].hasOwnProperty(n):e[t]===n)}i.each(e.pieces,function(e){i.each(n,function(n){e.hasOwnProperty(n)&&(t[n]=1)})}),i.each(t,function(t,n){var r=0;i.each(this.stateList,function(t){r|=l(e,t,n)||l(e.target,t,n)},this),!r&&i.each(this.stateList,function(t){(e[t]||(e[t]={}))[n]=o.get(n,"inRange"===t?"active":"inactive",s)})},this),r.prototype.completeVisualOption.apply(this,arguments)},_resetSelected:function(e,t){var n=this.option,r=this._pieceList,a=(t?n:e).selected||{};if(n.selected=a,i.each(r,function(e,t){var n=this.getSelectedMapKey(e);a.hasOwnProperty(n)||(a[n]=!0)},this),"single"===n.selectedMode){var o=!1;i.each(r,function(e,t){var n=this.getSelectedMapKey(e);a[n]&&(o?a[n]=!1:o=!0)},this)}},getSelectedMapKey:function(e){return"categories"===this._mode?e.value+"":e.index+""},getPieceList:function(){return this._pieceList},_determineMode:function(){var e=this.option;return e.pieces&&e.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},setSelected:function(e){this.option.selected=i.clone(e)},getValueState:function(e){var t=a.findPieceIndex(e,this._pieceList);return null!=t&&this.option.selected[this.getSelectedMapKey(this._pieceList[t])]?"inRange":"outOfRange"},findTargetDataIndices:function(e){var t=[];return this.eachTargetSeries(function(n){var i=[],r=n.getData();r.each(this.getDataDimension(r),function(t,n){a.findPieceIndex(t,this._pieceList)===e&&i.push(n)},this),t.push({seriesId:n.id,dataIndex:i})},this),t},getRepresentValue:function(e){var t;if(this.isCategory())t=e.value;else if(null!=e.value)t=e.value;else{var n=e.interval||[];t=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return t},getVisualMeta:function(e){if(!this.isCategory()){var t=[],n=[],r=this,a=this._pieceList.slice();if(a.length){var o=a[0].interval[0];o!==-1/0&&a.unshift({interval:[-1/0,o]}),(o=a[a.length-1].interval[1])!==1/0&&a.push({interval:[o,1/0]})}else a.push({interval:[-1/0,1/0]});var s=-1/0;return i.each(a,function(e){var t=e.interval;t&&(t[0]>s&&l([s,t[0]],"outOfRange"),l(t.slice()),s=t[1])},this),{stops:t,outerColors:n}}function l(i,a){var o=r.getRepresentValue({interval:i});a||(a=r.getValueState(o));var s=e(o,a);i[0]===-1/0?n[0]=s:i[1]===1/0?n[1]=s:t.push({value:i[0],color:s},{value:i[1],color:s})}}}),u={splitNumber:function(){var e=this.option,t=this._pieceList,n=Math.min(e.precision,20),r=this.getExtent(),a=e.splitNumber;a=Math.max(parseInt(a,10),1),e.splitNumber=a;for(var o=(r[1]-r[0])/a;+o.toFixed(n)!==o&&n<5;)n++;e.precision=n,o=+o.toFixed(n);var l=0;e.minOpen&&t.push({index:l++,interval:[-1/0,r[0]],close:[0,0]});for(var u=r[0],c=l+a;l<c;u+=o){var d=l===a-1?r[1]:u+o;t.push({index:l++,interval:[u,d],close:[1,1]})}e.maxOpen&&t.push({index:l++,interval:[r[1],1/0],close:[0,0]}),s(t),i.each(t,function(e){e.text=this.formatValueText(e.interval)},this)},categories:function(){var e=this.option;i.each(e.categories,function(e){this._pieceList.push({text:this.formatValueText(e,!0),value:e})},this),c(e,this._pieceList)},pieces:function(){var e=this.option,t=this._pieceList;i.each(e.pieces,function(e,n){i.isObject(e)||(e={value:e});var r={text:"",index:n};if(null!=e.label&&(r.text=e.label),e.hasOwnProperty("value")){var o=r.value=e.value;r.interval=[o,o],r.close=[1,1]}else{for(var s=r.interval=[],l=r.close=[0,0],u=[1,0,1],c=[-1/0,1/0],d=[],h=0;h<2;h++){for(var f=[["gte","gt","min"],["lte","lt","max"]][h],p=0;p<3&&null==s[h];p++)s[h]=e[f[p]],l[h]=u[p],d[h]=2===p;null==s[h]&&(s[h]=c[h])}d[0]&&s[1]===1/0&&(l[0]=0),d[1]&&s[0]===-1/0&&(l[1]=0),s[0]===s[1]&&l[0]&&l[1]&&(r.value=s[0])}r.visual=a.retrieveVisuals(e),t.push(r)},this),c(e,t),s(t),i.each(t,function(e){var t=e.close,n=[["<","鈮�"][t[1]],[">","鈮�"][t[0]]];e.text=e.text||this.formatValueText(null!=e.value?e.value:e.interval,!1,n)},this)}};function c(e,t){var n=e.inverse;("vertical"===e.orient?!n:n)&&t.reverse()}var d=l;e.exports=d},hxPW:function(e,t,n){var i=n("zBeA").extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end"},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});e.exports=i},"i+pt":function(e,t,n){var i=n("GKMz"),r={};function a(){this._coordinateSystems=[]}a.prototype={constructor:a,create:function(e,t){var n=[];i.each(r,function(i,r){var a=i.create(e,t);n=n.concat(a||[])}),this._coordinateSystems=n},update:function(e,t){i.each(this._coordinateSystems,function(n){n.update&&n.update(e,t)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},a.register=function(e,t){r[e]=t},a.get=function(e){return r[e]};var o=a;e.exports=o},i1Hm:function(e,t,n){var i=n("GKMz"),r=n("Mf6k"),a=n("YR6M"),o=n("uxQp"),s=o.encodeHTML,l=o.addCommas,u=n("A4ij"),c=n("2xPE").retrieveRawAttr,d=n("93zO"),h=a.extend({type:"series.map",dependencies:["geo"],layoutMode:"box",needsDrawMap:!1,seriesGroup:[],init:function(e){h.superApply(this,"init",arguments),this.updateSelectedMap(this._createSelectableList())},getInitialData:function(e){return r(this,["value"])},mergeOption:function(e){h.superApply(this,"mergeOption",arguments),this.updateSelectedMap(this._createSelectableList())},_createSelectableList:function(){for(var e=this.getRawData(),t=e.mapDimension("value"),n=[],i=0,r=e.count();i<r;i++)n.push({name:e.getName(i),value:e.get(t,i),selected:c(e,i,"selected")});return n=d.getFilledRegions(n,this.getMapType(),this.option.nameMap)},getHostGeoModel:function(){var e=this.option.geoIndex;return null!=e?this.dependentModels.geo[e]:null},getMapType:function(){return(this.getHostGeoModel()||this).option.map},_fillOption:function(e,t){},getRawValue:function(e){var t=this.getData();return t.get(t.mapDimension("value"),e)},getRegionModel:function(e){var t=this.getData();return t.getItemModel(t.indexOfName(e))},formatTooltip:function(e){for(var t=this.getData(),n=l(this.getRawValue(e)),i=t.getName(e),r=this.seriesGroup,a=[],o=0;o<r.length;o++){var u=r[o].originalData.indexOfName(i),c=t.mapDimension("value");isNaN(r[o].originalData.get(c,u))||a.push(s(r[o].name))}return a.join(", ")+"<br />"+s(i+" : "+n)},getTooltipPosition:function(e){if(null!=e){var t=this.getData().getName(e),n=this.coordinateSystem,i=n.getRegion(t);return i&&n.dataToPoint(i.center)}},setZoom:function(e){this.option.zoom=e},setCenter:function(e){this.option.center=e},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}}}});i.mixin(h,u);var f=h;e.exports=f},iHmX:function(e,t,n){var i=n("/MtV");n("CtWo"),n("99es"),n("Vmnj"),n("hEXF"),n("8FSe"),i.extendComponentView({type:"single"})},iOou:function(e,t,n){"use strict";t.__esModule=!0,t.getStyle=t.once=t.off=t.on=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.hasClass=p,t.addClass=function(e,t){if(!e)return;for(var n=e.className,i=(t||"").split(" "),r=0,a=i.length;r<a;r++){var o=i[r];o&&(e.classList?e.classList.add(o):p(e,o)||(n+=" "+o))}e.classList||(e.className=n)},t.removeClass=function(e,t){if(!e||!t)return;for(var n=t.split(" "),i=" "+e.className+" ",r=0,a=n.length;r<a;r++){var o=n[r];o&&(e.classList?e.classList.remove(o):p(e,o)&&(i=i.replace(" "+o+" "," ")))}e.classList||(e.className=c(i))},t.setStyle=function e(t,n,r){if(!t||!n)return;if("object"===(void 0===n?"undefined":i(n)))for(var a in n)n.hasOwnProperty(a)&&e(t,a,n[a]);else"opacity"===(n=d(n))&&u<9?t.style.filter=isNaN(r)?"":"alpha(opacity="+100*r+")":t.style[n]=r};var r,a=n("IvJb");var o=((r=a)&&r.__esModule?r:{default:r}).default.prototype.$isServer,s=/([\:\-\_]+(.))/g,l=/^moz([A-Z])/,u=o?0:Number(document.documentMode),c=function(e){return(e||"").replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g,"")},d=function(e){return e.replace(s,function(e,t,n,i){return i?n.toUpperCase():n}).replace(l,"Moz$1")},h=t.on=!o&&document.addEventListener?function(e,t,n){e&&t&&n&&e.addEventListener(t,n,!1)}:function(e,t,n){e&&t&&n&&e.attachEvent("on"+t,n)},f=t.off=!o&&document.removeEventListener?function(e,t,n){e&&t&&e.removeEventListener(t,n,!1)}:function(e,t,n){e&&t&&e.detachEvent("on"+t,n)};t.once=function(e,t,n){h(e,t,function i(){n&&n.apply(this,arguments),f(e,t,i)})};function p(e,t){if(!e||!t)return!1;if(-1!==t.indexOf(" "))throw new Error("className should not contain space.");return e.classList?e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}t.getStyle=u<9?function(e,t){if(!o){if(!e||!t)return null;"float"===(t=d(t))&&(t="styleFloat");try{switch(t){case"opacity":try{return e.filters.item("alpha").opacity/100}catch(e){return 1}default:return e.style[t]||e.currentStyle?e.currentStyle[t]:null}}catch(n){return e.style[t]}}}:function(e,t){if(!o){if(!e||!t)return null;"float"===(t=d(t))&&(t="cssFloat");try{var n=document.defaultView.getComputedStyle(e,"");return e.style[t]||n?n[t]:null}catch(n){return e.style[t]}}}},iamZ:function(e,t){e.exports=function(e){var t=e.getRect(),n=e.getRangeInfo();return{coordSys:{type:"calendar",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:e.getCellWidth(),cellHeight:e.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(t,n){return e.dataToPoint(t,n)}}}}},ihWO:function(e,t,n){var i=n("ofeI"),r=n("OGtO"),a=n("GKMz"),o=n("Pp7o");function s(e){i.call(this,e)}s.prototype={constructor:s,type:"image",brush:function(e,t){var n=this.style,i=n.image;n.bind(e,this,t);var r=this._image=o.createOrUpdateImage(i,this._image,this,this.onload);if(r&&o.isImageReady(r)){var a=n.x||0,s=n.y||0,l=n.width,u=n.height,c=r.width/r.height;if(null==l&&null!=u?l=u*c:null==u&&null!=l?u=l/c:null==l&&null==u&&(l=r.width,u=r.height),this.setTransform(e),n.sWidth&&n.sHeight){var d=n.sx||0,h=n.sy||0;e.drawImage(r,d,h,n.sWidth,n.sHeight,a,s,l,u)}else if(n.sx&&n.sy){var f=l-(d=n.sx),p=u-(h=n.sy);e.drawImage(r,d,h,f,p,a,s,l,u)}else e.drawImage(r,a,s,l,u);null!=n.text&&(this.restoreTransform(e),this.drawRectText(e,this.getBoundingRect()))}},getBoundingRect:function(){var e=this.style;return this._rect||(this._rect=new r(e.x||0,e.y||0,e.width||0,e.height||0)),this._rect}},a.inherits(s,i);var l=s;e.exports=l},is1E:function(e,t,n){var i=n("aVg8"),r=n("ktMJ").createSymbol,a=n("pgBU"),o=i.extendShape({shape:{points:null},symbolProxy:null,buildPath:function(e,t){var n=t.points,i=t.size,r=this.symbolProxy,a=r.shape;if(!((e.getContext?e.getContext():e)&&i[0]<4))for(var o=0;o<n.length;){var s=n[o++],l=n[o++];isNaN(s)||isNaN(l)||(a.x=s-i[0]/2,a.y=l-i[1]/2,a.width=i[0],a.height=i[1],r.buildPath(e,a,!0))}},afterBrush:function(e){var t=this.shape,n=t.points,i=t.size;if(i[0]<4){this.setTransform(e);for(var r=0;r<n.length;){var a=n[r++],o=n[r++];isNaN(a)||isNaN(o)||e.fillRect(a-i[0]/2,o-i[1]/2,i[0],i[1])}this.restoreTransform(e)}},findDataIndex:function(e,t){for(var n=this.shape,i=n.points,r=n.size,a=Math.max(r[0],4),o=Math.max(r[1],4),s=i.length/2-1;s>=0;s--){var l=2*s,u=i[l]-a/2,c=i[l+1]-o/2;if(e>=u&&t>=c&&e<=u+a&&t<=c+o)return s}return-1}});function s(){this.group=new i.Group}var l=s.prototype;l.isPersistent=function(){return!this._incremental},l.updateData=function(e){this.group.removeAll();var t=new o({rectHover:!0,cursor:"default"});t.setShape({points:e.getLayout("symbolPoints")}),this._setCommon(t,e),this.group.add(t),this._incremental=null},l.updateLayout=function(e){if(!this._incremental){var t=e.getLayout("symbolPoints");this.group.eachChild(function(e){if(null!=e.startIndex){var n=2*(e.endIndex-e.startIndex),i=4*e.startIndex*2;t=new Float32Array(t.buffer,i,n)}e.setShape("points",t)})}},l.incrementalPrepareUpdate=function(e){this.group.removeAll(),this._clearIncremental(),e.count()>2e6?(this._incremental||(this._incremental=new a({silent:!0})),this.group.add(this._incremental)):this._incremental=null},l.incrementalUpdate=function(e,t){var n;this._incremental?(n=new o,this._incremental.addDisplayable(n,!0)):((n=new o({rectHover:!0,cursor:"default",startIndex:e.start,endIndex:e.end})).incremental=!0,this.group.add(n)),n.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(n,t,!!this._incremental)},l._setCommon=function(e,t,n){var i=t.hostModel,a=t.getVisual("symbolSize");e.setShape("size",a instanceof Array?a:[a,a]),e.symbolProxy=r(t.getVisual("symbol"),0,0,0,0),e.setColor=e.symbolProxy.setColor;var o=e.shape.size[0]<4;e.useStyle(i.getModel("itemStyle").getItemStyle(o?["color","shadowBlur","shadowColor"]:["color"]));var s=t.getVisual("color");s&&e.setColor(s),n||(e.seriesIndex=i.seriesIndex,e.on("mousemove",function(t){e.dataIndex=null;var n=e.findDataIndex(t.offsetX,t.offsetY);n>=0&&(e.dataIndex=n+(e.startIndex||0))}))},l.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},l._clearIncremental=function(){var e=this._incremental;e&&e.clearDisplaybles()};var u=s;e.exports=u},iw8e:function(e,t,n){n("UD01"),(0,n("qpbZ").registerPainter)("svg",n("d7ze"))},j6Iq:function(e,t){t.f=Object.getOwnPropertySymbols},jHJB:function(e,t,n){var i=n("/MtV");n("Kndc"),n("sCYP"),n("e1MS");var r=n("jRNH"),a=n("qi2g");i.registerVisual(r),i.registerLayout(a)},jMVH:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("qs+o"),a=n("abCA").parsePercent,o=n("3m5Y"),s=o.createScaleByModel,l=o.niceScaleExtent,u=n("i+pt"),c=n("cfvC").getStackedDimension;function d(e,t){var n=this,r=n.getAngleAxis(),a=n.getRadiusAxis();if(r.scale.setExtent(1/0,-1/0),a.scale.setExtent(1/0,-1/0),e.eachSeries(function(e){if(e.coordinateSystem===n){var t=e.getData();i.each(t.mapDimension("radius",!0),function(e){a.scale.unionExtentFromData(t,c(t,e))}),i.each(t.mapDimension("angle",!0),function(e){r.scale.unionExtentFromData(t,c(t,e))})}}),l(r.scale,r.model),l(a.scale,a.model),"category"===r.type&&!r.onBand){var o=r.getExtent(),s=360/r.scale.count();r.inverse?o[1]+=s:o[1]-=s,r.setExtent(o[0],o[1])}}function h(e,t){if(e.type=t.get("type"),e.scale=s(t),e.onBand=t.get("boundaryGap")&&"category"===e.type,e.inverse=t.get("inverse"),"angleAxis"===t.mainType){e.inverse^=t.get("clockwise");var n=t.get("startAngle");e.setExtent(n,n+(e.inverse?-360:360))}t.axis=e,e.model=t}n("FsJA");var f={dimensions:r.prototype.dimensions,create:function(e,t){var n=[];return e.eachComponent("polar",function(e,i){var o=new r(i);o.update=d;var s=o.getRadiusAxis(),l=o.getAngleAxis(),u=e.findAxisModel("radiusAxis"),c=e.findAxisModel("angleAxis");h(s,u),h(l,c),function(e,t,n){var i=t.get("center"),r=n.getWidth(),o=n.getHeight();e.cx=a(i[0],r),e.cy=a(i[1],o);var s=e.getRadiusAxis(),l=Math.min(r,o)/2,u=a(t.get("radius"),l);s.inverse?s.setExtent(u,0):s.setExtent(0,u)}(o,e,t),n.push(o),e.coordinateSystem=o,o.model=e}),e.eachSeries(function(t){if("polar"===t.get("coordinateSystem")){var n=e.queryComponents({mainType:"polar",index:t.get("polarIndex"),id:t.get("polarId")})[0];t.coordinateSystem=n.coordinateSystem}}),n}};u.register("polar",f)},jNkx:function(e,t,n){var i=n("/MtV");n("UHfE"),n("Snek");var r=n("kuK2"),a=n("VErb");i.registerVisual(r("effectScatter","circle")),i.registerLayout(a("effectScatter"))},jOR4:function(e,t,n){var i=n("GKMz"),r=n("fAuK");function a(e,t){r.call(this,"radius",e,t),this.type="category"}a.prototype={constructor:a,pointToData:function(e,t){return this.polar.pointToData(e,t)["radius"===this.dim?0:1]},dataToRadius:r.prototype.dataToCoord,radiusToData:r.prototype.coordToData},i.inherits(a,r);var o=a;e.exports=o},jP6M:function(e,t,n){var i=n("GKMz"),r=n("xWTI"),a=i.each,o=i.curry;function s(e,t){return"all"===e||i.isArray(e)&&i.indexOf(e,t)>=0||e===t}function l(e){var t=(e.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return t&&t.axesInfo[c(e)]}function u(e){return!!e.get("handle.show")}function c(e){return e.type+"||"+e.id}t.collect=function(e,t){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return function(e,t,n){var l=t.getComponent("tooltip"),d=t.getComponent("axisPointer"),h=d.get("link",!0)||[],f=[];a(n.getCoordinateSystems(),function(n){if(n.axisPointerEnabled){var p=c(n.model),m=e.coordSysAxesInfo[p]={};e.coordSysMap[p]=n;var g=n.model,v=g.getModel("tooltip",l);if(a(n.getAxes(),o(x,!1,null)),n.getTooltipAxes&&l&&v.get("show")){var y="axis"===v.get("trigger"),b="cross"===v.get("axisPointer.type"),_=n.getTooltipAxes(v.get("axisPointer.axis"));(y||b)&&a(_.baseAxes,o(x,!b||"cross",y)),b&&a(_.otherAxes,o(x,"cross",!1))}}function x(o,l,p){var g=p.model.getModel("axisPointer",d),y=g.get("show");if(y&&("auto"!==y||o||u(g))){null==l&&(l=g.get("triggerTooltip"));var b=(g=o?function(e,t,n,o,s,l){var u=t.getModel("axisPointer"),c={};a(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],function(e){c[e]=i.clone(u.get(e))}),c.snap="category"!==e.type&&!!l,"cross"===u.get("type")&&(c.type="line");var d=c.label||(c.label={});if(null==d.show&&(d.show=!1),"cross"===s){var h=u.get("label.show");if(d.show=null==h||h,!l){var f=c.lineStyle=u.get("crossStyle");f&&i.defaults(d,f.textStyle)}}return e.model.getModel("axisPointer",new r(c,n,o))}(p,v,d,t,o,l):g).get("snap"),_=c(p.model),x=l||b||"category"===p.type,w=e.axesInfo[_]={key:_,axis:p,coordSys:n,axisPointerModel:g,triggerTooltip:l,involveSeries:x,snap:b,useHandle:u(g),seriesModels:[]};m[_]=w,e.seriesInvolved|=x;var S=function(e,t){for(var n=t.model,i=t.dim,r=0;r<e.length;r++){var a=e[r]||{};if(s(a[i+"AxisId"],n.id)||s(a[i+"AxisIndex"],n.componentIndex)||s(a[i+"AxisName"],n.name))return r}}(h,p);if(null!=S){var C=f[S]||(f[S]={axesInfo:{}});C.axesInfo[_]=w,C.mapper=h[S].mapper,w.linkGroup=C}}}})}(n,e,t),n.seriesInvolved&&function(e,t){t.eachSeries(function(t){var n=t.coordinateSystem,i=t.get("tooltip.trigger",!0),r=t.get("tooltip.show",!0);n&&"none"!==i&&!1!==i&&"item"!==i&&!1!==r&&!1!==t.get("axisPointer.show",!0)&&a(e.coordSysAxesInfo[c(n.model)],function(e){var i=e.axis;n.getAxis(i.dim)===i&&(e.seriesModels.push(t),null==e.seriesDataCount&&(e.seriesDataCount=0),e.seriesDataCount+=t.getData().count())})},this)}(n,e),n},t.fixValue=function(e){var t=l(e);if(t){var n=t.axisPointerModel,i=t.axis.scale,r=n.option,a=n.get("status"),o=n.get("value");null!=o&&(o=i.parse(o));var s=u(n);null==a&&(r.status=s?"show":"hide");var c=i.getExtent().slice();c[0]>c[1]&&c.reverse(),(null==o||o>c[1])&&(o=c[1]),o<c[0]&&(o=c[0]),r.value=o,s&&(r.status=t.axis.scale.isBlank()?"hide":"show")}},t.getAxisInfo=l,t.getAxisPointerModel=function(e){var t=l(e);return t&&t.axisPointerModel},t.makeKey=c},jPW0:function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=n("Vus3"),o=["axisLine","axisTickLabel","axisName"],s=["splitLine","splitArea"],l=n("MiuX").extend({type:"radiusAxis",axisPointerClass:"PolarAxisPointer",render:function(e,t){if(this.group.removeAll(),e.get("show")){var n=e.axis,r=n.polar,l=r.getAngleAxis(),u=n.getTicksCoords(),c=l.getExtent()[0],d=n.getExtent(),h=function(e,t,n){return{position:[e.cx,e.cy],rotation:n/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:t.getModel("axisLabel").get("rotate"),z2:1}}(r,e,c),f=new a(e,h);i.each(o,f.add,f),this.group.add(f.getGroup()),i.each(s,function(t){e.get(t+".show")&&!n.scale.isBlank()&&this["_"+t](e,r,c,d,u)},this)}},_splitLine:function(e,t,n,a,o){var s=e.getModel("splitLine").getModel("lineStyle"),l=s.get("color"),u=0;l=l instanceof Array?l:[l];for(var c=[],d=0;d<o.length;d++){var h=u++%l.length;c[h]=c[h]||[],c[h].push(new r.Circle({shape:{cx:t.cx,cy:t.cy,r:o[d].coord},silent:!0}))}for(d=0;d<c.length;d++)this.group.add(r.mergePath(c[d],{style:i.defaults({stroke:l[d%l.length],fill:null},s.getLineStyle()),silent:!0}))},_splitArea:function(e,t,n,a,o){if(o.length){var s=e.getModel("splitArea").getModel("areaStyle"),l=s.get("color"),u=0;l=l instanceof Array?l:[l];for(var c=[],d=o[0].coord,h=1;h<o.length;h++){var f=u++%l.length;c[f]=c[f]||[],c[f].push(new r.Sector({shape:{cx:t.cx,cy:t.cy,r0:d,r:o[h].coord,startAngle:0,endAngle:2*Math.PI},silent:!0})),d=o[h].coord}for(h=0;h<c.length;h++)this.group.add(r.mergePath(c[h],{style:i.defaults({fill:l[h%l.length]},s.getAreaStyle()),silent:!0}))}}});e.exports=l},jQiA:function(e,t,n){n("Gquc"),n("IsPG"),n("A1pn"),n("qCCu"),n("nzRa"),n("LPZm"),e.exports=n("AKd3").Promise},jRNH:function(e,t,n){var i=n("7Rvj"),r=n("Zjj5"),a=n("GKMz"),o=a.isArray,s="itemStyle",l={seriesType:"treemap",reset:function(e,t,n,o){var l=e.getData().tree,c=l.root,h=e.getModel(s);c.isRemoved()||function e(t,n,o,l,c,h){var f=t.getModel();var p=t.getLayout();if(!p||p.invisible||!p.isInView)return;var m=t.getModel(s);var g=o[t.depth];var v=function(e,t,n,i){var r=a.extend({},t);return a.each(["color","colorAlpha","colorSaturation"],function(a){var o=e.get(a,!0);null==o&&n&&(o=n[a]),null==o&&(o=t[a]),null==o&&(o=i.get(a)),null!=o&&(r[a]=o)}),r}(m,n,g,l);var y=m.get("borderColor");var b=m.get("borderColorSaturation");var _;null!=b&&(_=u(v),y=function(e,t){return null!=t?r.modifyHSL(t,null,null,e):null}(b,_));t.setVisual("borderColor",y);var x=t.viewChildren;if(x&&x.length){var w=function(e,t,n,r,a,o){if(!o||!o.length)return;var s=d(t,"color")||null!=a.color&&"none"!==a.color&&(d(t,"colorAlpha")||d(t,"colorSaturation"));if(!s)return;var l=t.get("visualMin"),u=t.get("visualMax"),c=n.dataExtent.slice();null!=l&&l<c[0]&&(c[0]=l),null!=u&&u>c[1]&&(c[1]=u);var h=t.get("colorMappingBy"),f={type:s.name,dataExtent:c,visual:s.range};"color"!==f.type||"index"!==h&&"id"!==h?f.mappingMethod="linear":(f.mappingMethod="category",f.loop=!0);var p=new i(f);return p.__drColorMappingBy=h,p}(0,f,p,0,v,x);a.each(x,function(t,n){if(t.depth>=c.length||t===c[t.depth]){var i=function(e,t,n,i,r,o){var s=a.extend({},t);if(r){var l=r.type,u="color"===l&&r.__drColorMappingBy,c="index"===u?i:"id"===u?o.mapIdToIndex(n.getId()):n.getValue(e.get("visualDimension"));s[l]=r.mapValueToVisual(c)}return s}(f,v,t,n,w,h);e(t,i,o,l,c,h)}})}else _=u(v),t.setVisual("color",_)}(c,{},a.map(l.levelModels,function(e){return e?e.get(s):null}),h,e.getViewRoot().getAncestors(),e)}};function u(e){var t=c(e,"color");if(t){var n=c(e,"colorAlpha"),i=c(e,"colorSaturation");return i&&(t=r.modifyHSL(t,null,null,i)),n&&(t=r.modifyAlpha(t,n)),t}}function c(e,t){var n=e[t];if(null!=n&&"none"!==n)return n}function d(e,t){var n=e.get(t);return o(n)&&n.length?{name:t,range:n}:null}e.exports=l},jUTB:function(e,t,n){var i=n("FITv");i(i.S+i.F,"Object",{assign:n("FzZd")})},jkQI:function(e,t,n){var i=n("yX3w"),r=n("luYz").applyTransform,a=i.CMD,o=[[],[],[]],s=Math.sqrt,l=Math.atan2;e.exports=function(e,t){var n,i,u,c,d,h=e.data,f=a.M,p=a.C,m=a.L,g=a.R,v=a.A,y=a.Q;for(u=0,c=0;u<h.length;){switch(n=h[u++],c=u,i=0,n){case f:case m:i=1;break;case p:i=3;break;case y:i=2;break;case v:var b=t[4],_=t[5],x=s(t[0]*t[0]+t[1]*t[1]),w=s(t[2]*t[2]+t[3]*t[3]),S=l(-t[1]/w,t[0]/x);h[u]*=x,h[u++]+=b,h[u]*=w,h[u++]+=_,h[u++]*=x,h[u++]*=w,h[u++]+=S,h[u++]+=S,c=u+=2;break;case g:C[0]=h[u++],C[1]=h[u++],r(C,C,t),h[c++]=C[0],h[c++]=C[1],C[0]+=h[u++],C[1]+=h[u++],r(C,C,t),h[c++]=C[0],h[c++]=C[1]}for(d=0;d<i;d++){var C;(C=o[d])[0]=h[u++],C[1]=h[u++],r(C,C,t),h[c++]=C[0],h[c++]=C[1]}}}},jqmT:function(e,t,n){var i=n("GKMz"),r=i.each,a="\0__link_datas",o="\0__link_mainData";function s(e,t){if((r=this)[o]===r){var n=i.extend({},this[a]);n[this.dataType]=t,d(t,n,e)}else h(t,this.dataType,this[o],e);var r;return t}function l(e,t){return e.struct&&e.struct.update(this),t}function u(e,t){return r(t[a],function(n,i){n!==t&&h(n.cloneShallow(),i,t,e)}),t}function c(e){var t=this[o];return null==e||null==t?t:t[a][e]}function d(e,t,n){e[a]={},r(t,function(t,i){h(t,i,e,n)})}function h(e,t,n,i){n[a][t]=e,e[o]=n,e.dataType=t,i.struct&&(e[i.structAttr]=i.struct,i.struct[i.datasAttr[t]]=e),e.getLinkedData=c}var f=function(e){var t=e.mainData,n=e.datas;n||(n={main:t},e.datasAttr={main:"data"}),e.datas=e.mainData=null,d(t,n,e),r(n,function(n){r(t.TRANSFERABLE_METHODS,function(t){n.wrapMethod(t,i.curry(s,e))})}),t.wrapMethod("cloneShallow",i.curry(u,e)),r(t.CHANGABLE_METHODS,function(n){t.wrapMethod(n,i.curry(l,e))}),i.assert(n[t.dataType]===t)};e.exports=f},jzYM:function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},"k/7E":function(e,t,n){var i=n("WwGG"),r=n("kDTw"),a=n("V2W7"),o=n("93K8"),s=n("CFGK"),l=n("YW8S"),u={},c={};(t=e.exports=function(e,t,n,d,h){var f,p,m,g,v=h?function(){return e}:l(e),y=i(n,d,t?2:1),b=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(a(v)){for(f=s(e.length);f>b;b++)if((g=t?y(o(p=e[b])[0],p[1]):y(e[b]))===u||g===c)return g}else for(m=v.call(e);!(p=m.next()).done;)if((g=r(m,y,p.value,t))===u||g===c)return g}).BREAK=u,t.RETURN=c},k7IZ:function(e,t,n){var i=n("GKMz"),r={get:function(e,t,n){var r=i.clone((a[e]||{})[t]);return n&&i.isArray(r)?r[r.length-1]:r}},a={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},o=r;e.exports=o},k9rz:function(e,t){!function(t){"use strict";var n,i=Object.prototype,r=i.hasOwnProperty,a="function"==typeof Symbol?Symbol:{},o=a.iterator||"@@iterator",s=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag",u="object"==typeof e,c=t.regeneratorRuntime;if(c)u&&(e.exports=c);else{(c=t.regeneratorRuntime=u?e.exports:{}).wrap=_;var d="suspendedStart",h="suspendedYield",f="executing",p="completed",m={},g={};g[o]=function(){return this};var v=Object.getPrototypeOf,y=v&&v(v(D([])));y&&y!==i&&r.call(y,o)&&(g=y);var b=C.prototype=w.prototype=Object.create(g);S.prototype=b.constructor=C,C.constructor=S,C[l]=S.displayName="GeneratorFunction",c.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===S||"GeneratorFunction"===(t.displayName||t.name))},c.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,C):(e.__proto__=C,l in e||(e[l]="GeneratorFunction")),e.prototype=Object.create(b),e},c.awrap=function(e){return{__await:e}},M(k.prototype),k.prototype[s]=function(){return this},c.AsyncIterator=k,c.async=function(e,t,n,i){var r=new k(_(e,t,n,i));return c.isGeneratorFunction(t)?r:r.next().then(function(e){return e.done?e.value:r.next()})},M(b),b[l]="Generator",b[o]=function(){return this},b.toString=function(){return"[object Generator]"},c.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var i=t.pop();if(i in e)return n.value=i,n.done=!1,n}return n.done=!0,n}},c.values=D,E.prototype={constructor:E,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(I),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=n)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function i(i,r){return s.type="throw",s.arg=e,t.next=i,r&&(t.method="next",t.arg=n),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],s=o.completion;if("root"===o.tryLoc)return i("end");if(o.tryLoc<=this.prev){var l=r.call(o,"catchLoc"),u=r.call(o,"finallyLoc");if(l&&u){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(l){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var a=i;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method="next",this.next=a.finallyLoc,m):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),I(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var i=n.completion;if("throw"===i.type){var r=i.arg;I(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,i){return this.delegate={iterator:D(e),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=n),m}}}function _(e,t,n,i){var r=t&&t.prototype instanceof w?t:w,a=Object.create(r.prototype),o=new E(i||[]);return a._invoke=function(e,t,n){var i=d;return function(r,a){if(i===f)throw new Error("Generator is already running");if(i===p){if("throw"===r)throw a;return O()}for(n.method=r,n.arg=a;;){var o=n.delegate;if(o){var s=T(o,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(i===d)throw i=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);i=f;var l=x(e,t,n);if("normal"===l.type){if(i=n.done?p:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(i=p,n.method="throw",n.arg=l.arg)}}}(e,n,o),a}function x(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function w(){}function S(){}function C(){}function M(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function k(e){var t;this._invoke=function(n,i){function a(){return new Promise(function(t,a){!function t(n,i,a,o){var s=x(e[n],e,i);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==typeof u&&r.call(u,"__await")?Promise.resolve(u.__await).then(function(e){t("next",e,a,o)},function(e){t("throw",e,a,o)}):Promise.resolve(u).then(function(e){l.value=e,a(l)},o)}o(s.arg)}(n,i,t,a)})}return t=t?t.then(a,a):a()}}function T(e,t){var i=e.iterator[t.method];if(i===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,T(e,t),"throw"===t.method))return m;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var r=x(i,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,m;var a=r.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,m):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function A(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function I(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(A,this),this.reset(!0)}function D(e){if(e){var t=e[o];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i<e.length;)if(r.call(e,i))return t.value=e[i],t.done=!1,t;return t.value=n,t.done=!0,t};return a.next=a}}return{next:O}}function O(){return{value:n,done:!0}}}(function(){return this}()||Function("return this")())},kCDZ:function(e,t,n){var i=n("5pnV"),r=n("j6Iq"),a=n("XvZ9");e.exports=function(e){var t=i(e),n=r.f;if(n)for(var o,s=n(e),l=a.f,u=0;s.length>u;)l.call(e,o=s[u++])&&t.push(o);return t}},kDTw:function(e,t,n){var i=n("93K8");e.exports=function(e,t,n,r){try{return r?t(i(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&i(a.call(e)),t}}},kM8n:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("aVg8"),o=n("unHI"),s=i.extendChartView({type:"map",render:function(e,t,n,i){if(!i||"mapToggleSelect"!==i.type||i.from!==this.uid){var r=this.group;if(r.removeAll(),!e.getHostGeoModel()){if(i&&"geoRoam"===i.type&&"series"===i.componentType&&i.seriesId===e.id)(a=this._mapDraw)&&r.add(a.group);else if(e.needsDrawMap){var a=this._mapDraw||new o(n,!0);r.add(a.group),a.draw(e,t,n,this,i),this._mapDraw=a}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;e.get("showLegendSymbol")&&t.getComponent("legend")&&this._renderSymbols(e,t,n)}}},remove:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},dispose:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},_renderSymbols:function(e,t,n){var i=e.originalData,o=this.group;i.each(i.mapDimension("value"),function(t,n){if(!isNaN(t)){var s=i.getItemLayout(n);if(s&&s.point){var l=s.point,u=s.offset,c=new a.Circle({style:{fill:e.getData().getVisual("color")},shape:{cx:l[0]+9*u,cy:l[1],r:3},silent:!0,z2:u?8:10});if(!u){var d=e.mainSeries.getData(),h=i.getName(n),f=d.indexOfName(h),p=i.getItemModel(n),m=p.getModel("label"),g=p.getModel("emphasis.label"),v=d.getItemGraphicEl(f),y=r.retrieve2(e.getFormattedLabel(n,"normal"),h),b=r.retrieve2(e.getFormattedLabel(n,"emphasis"),y),_=function(){var e=a.setTextStyle({},g,{text:g.get("show")?b:null},{isRectText:!0,useInsideStyle:!1},!0);c.style.extendFrom(e),c.__mapOriginalZ2=c.z2,c.z2+=1},x=function(){a.setTextStyle(c.style,m,{text:m.get("show")?y:null,textPosition:m.getShallow("position")||"bottom"},{isRectText:!0,useInsideStyle:!1}),null!=c.__mapOriginalZ2&&(c.z2=c.__mapOriginalZ2,c.__mapOriginalZ2=null)};v.on("mouseover",_).on("mouseout",x).on("emphasis",_).on("normal",x),x()}o.add(c)}}})}});e.exports=s},kO0W:function(e,t,n){var i=n("GKMz");function r(e){return this._axes[e]}var a=function(e){this._axes={},this._dimList=[],this.name=e||""};a.prototype={constructor:a,type:"cartesian",getAxis:function(e){return this._axes[e]},getAxes:function(){return i.map(this._dimList,r,this)},getAxesByScale:function(e){return e=e.toLowerCase(),i.filter(this.getAxes(),function(t){return t.scale.type===e})},addAxis:function(e){var t=e.dim;this._axes[t]=e,this._dimList.push(t)},dataToCoord:function(e){return this._dataCoordConvert(e,"dataToCoord")},coordToData:function(e){return this._dataCoordConvert(e,"coordToData")},_dataCoordConvert:function(e,t){for(var n=this._dimList,i=e instanceof Array?[]:{},r=0;r<n.length;r++){var a=n[r],o=this._axes[a];i[a]=o[t](e[a])}return i}};var o=a;e.exports=o},kOfd:function(e,t,n){var i=n("KSHG"),r=n("Nrx1"),a=n("7eLB"),o=r.toolbox.saveAsImage;function s(e){this.model=e}s.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:o.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:o.lang.slice()},s.prototype.unusable=!i.canvasSupported,s.prototype.onclick=function(e,t){var n=this.model,r=n.get("name")||e.get("title.0.text")||"echarts",a=document.createElement("a"),o=n.get("type",!0)||"png";a.download=r+"."+o,a.target="_blank";var s=t.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||e.get("backgroundColor")||"#fff",excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if(a.href=s,"function"!=typeof MouseEvent||i.browser.ie||i.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var l=atob(s.split(",")[1]),u=l.length,c=new Uint8Array(u);u--;)c[u]=l.charCodeAt(u);var d=new Blob([c]);window.navigator.msSaveOrOpenBlob(d,r+"."+o)}else{var h=n.get("lang"),f='<body style="margin:0;"><img src="'+s+'" style="max-width:100%;" title="'+(h&&h[0]||"")+'" /></body>';window.open().document.write(f)}else{var p=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});a.dispatchEvent(p)}},a.register("saveAsImage",s);var l=s;e.exports=l},kRcM:function(e,t,n){var i=n("GKMz"),r=n("Qmdc"),a=n("aVg8"),o=n("Q9e6"),s=["itemStyle"],l=["emphasis","itemStyle"],u=["color","color0","borderColor","borderColor0"],c=r.extend({type:"candlestick",render:function(e,t,n){this._updateDrawMode(e),this._isLargeDraw?this._renderLarge(e):this._renderNormal(e)},incrementalPrepareRender:function(e,t,n){this._clear(),this._updateDrawMode(e)},incrementalRender:function(e,t,n,i){this._isLargeDraw?this._incrementalRenderLarge(e,t):this._incrementalRenderNormal(e,t)},_updateDrawMode:function(e){var t=e.pipelineContext.large;(null==this._isLargeDraw||t^this._isLargeDraw)&&(this._isLargeDraw=t,this._clear())},_renderNormal:function(e){var t=e.getData(),n=this._data,i=this.group,r=t.getLayout("isSimpleBox");this._data||i.removeAll(),t.diff(n).add(function(n){if(t.hasValue(n)){var o,s=t.getItemLayout(n);o=h(s,n,!0),a.initProps(o,{shape:{points:s.ends}},e,n),f(o,t,n,r),i.add(o),t.setItemGraphicEl(n,o)}}).update(function(o,s){var l=n.getItemGraphicEl(s);if(t.hasValue(o)){var u=t.getItemLayout(o);l?a.updateProps(l,{shape:{points:u.ends}},e,o):l=h(u,o),f(l,t,o,r),i.add(l),t.setItemGraphicEl(o,l)}else i.remove(l)}).remove(function(e){var t=n.getItemGraphicEl(e);t&&i.remove(t)}).execute(),this._data=t},_renderLarge:function(e){this._clear(),m(e,this.group)},_incrementalRenderNormal:function(e,t){for(var n,i=t.getData(),r=i.getLayout("isSimpleBox");null!=(n=e.next());){var a;f(a=h(i.getItemLayout(n),n),i,n,r),a.incremental=!0,this.group.add(a)}},_incrementalRenderLarge:function(e,t){m(t,this.group,!0)},remove:function(e){this._clear()},_clear:function(){this.group.removeAll(),this._data=null},dispose:i.noop}),d=o.extend({type:"normalCandlestickBox",shape:{},buildPath:function(e,t){var n=t.points;this.__simpleBox?(e.moveTo(n[4][0],n[4][1]),e.lineTo(n[6][0],n[6][1])):(e.moveTo(n[0][0],n[0][1]),e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]),e.lineTo(n[3][0],n[3][1]),e.closePath(),e.moveTo(n[4][0],n[4][1]),e.lineTo(n[5][0],n[5][1]),e.moveTo(n[6][0],n[6][1]),e.lineTo(n[7][0],n[7][1]))}});function h(e,t,n){var r=e.ends;return new d({shape:{points:n?function(e,t){return i.map(e,function(e){return(e=e.slice())[1]=t.initBaseline,e})}(r,e):r},z2:100})}function f(e,t,n,i){var r=t.getItemModel(n),o=r.getModel(s),c=t.getItemVisual(n,"color"),d=t.getItemVisual(n,"borderColor")||c,h=o.getItemStyle(u);e.useStyle(h),e.style.strokeNoScale=!0,e.style.fill=c,e.style.stroke=d,e.__simpleBox=i;var f=r.getModel(l).getItemStyle();a.setHoverStyle(e,f)}var p=o.extend({type:"largeCandlestickBox",shape:{},buildPath:function(e,t){for(var n=t.points,i=0;i<n.length;)if(this.__sign===n[i++]){var r=n[i++];e.moveTo(r,n[i++]),e.lineTo(r,n[i++])}else i+=3}});function m(e,t,n){var i=e.getData(),r=i.getLayout("largePoints"),a=new p({shape:{points:r},__sign:1});t.add(a);var o=new p({shape:{points:r},__sign:-1});t.add(o),g(1,a,e,i),g(-1,o,e,i),n&&(a.incremental=!0,o.incremental=!0)}function g(e,t,n,i){var r=e>0?"P":"N",a=i.getVisual("borderColor"+r)||i.getVisual("color"+r),o=n.getModel(s).getItemStyle(u);t.useStyle(o),t.style.fill=null,t.style.stroke=a}var v=c;e.exports=v},kSVM:function(e,t,n){n("gG5W");var i=n("AKd3").Object;e.exports=function(e,t){return i.defineProperties(e,t)}},kczp:function(e,t,n){var i=n("abCA"),r=i.parsePercent,a=i.linearMap,o=n("roPK"),s=n("GKMz"),l=2*Math.PI,u=Math.PI/180;e.exports=function(e,t,n,i){t.eachSeriesByType(e,function(e){var t=e.getData(),i=t.mapDimension("value"),c=e.get("center"),d=e.get("radius");s.isArray(d)||(d=[0,d]),s.isArray(c)||(c=[c,c]);var h=n.getWidth(),f=n.getHeight(),p=Math.min(h,f),m=r(c[0],h),g=r(c[1],f),v=r(d[0],p/2),y=r(d[1],p/2),b=-e.get("startAngle")*u,_=e.get("minAngle")*u,x=0;t.each(i,function(e){!isNaN(e)&&x++});var w=t.getSum(i),S=Math.PI/(w||x)*2,C=e.get("clockwise"),M=e.get("roseType"),k=e.get("stillShowZeroSum"),T=t.getDataExtent(i);T[0]=0;var A=l,I=0,E=b,D=C?1:-1;if(t.each(i,function(e,n){var i;if(isNaN(e))t.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:C,cx:m,cy:g,r0:v,r:M?NaN:y});else{(i="area"!==M?0===w&&k?S:e*S:l/x)<_?(i=_,A-=_):I+=e;var r=E+D*i;t.setItemLayout(n,{angle:i,startAngle:E,endAngle:r,clockwise:C,cx:m,cy:g,r0:v,r:M?a(e,T,[v,y]):y}),E=r}}),A<l&&x)if(A<=.001){var O=l/x;t.each(i,function(e,n){if(!isNaN(e)){var i=t.getItemLayout(n);i.angle=O,i.startAngle=b+D*n*O,i.endAngle=b+D*(n+1)*O}})}else S=A/I,E=b,t.each(i,function(e,n){if(!isNaN(e)){var i=t.getItemLayout(n),r=i.angle===_?_:e*S;i.startAngle=E,i.endAngle=E+D*r,E+=D*r}});o(e,y,h,f)})}},kehZ:function(e,t,n){"use strict";var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function r(){this.message="String contains an invalid character"}r.prototype=new Error,r.prototype.code=5,r.prototype.name="InvalidCharacterError",e.exports=function(e){for(var t,n,a=String(e),o="",s=0,l=i;a.charAt(0|s)||(l="=",s%1);o+=l.charAt(63&t>>8-s%1*8)){if((n=a.charCodeAt(s+=.75))>255)throw new r;t=t<<8|n}return o}},kfHR:function(e,t,n){e.exports={default:n("qQfv"),__esModule:!0}},kksE:function(e,t,n){"use strict";var i=n("lIiZ"),r=n("go9Q");e.exports=function(e,t,n){t in e?i.f(e,t,r(0,n)):e[t]=n}},koKQ:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=i.createHashMap,a=(i.retrieve,i.each);var o={cartesian2d:function(e,t,n,i){var r=e.getReferringComponents("xAxis")[0],a=e.getReferringComponents("yAxis")[0];t.coordSysDims=["x","y"],n.set("x",r),n.set("y",a),s(r)&&(i.set("x",r),t.firstCategoryDimIndex=0),s(a)&&(i.set("y",a),t.firstCategoryDimIndex=1)},singleAxis:function(e,t,n,i){var r=e.getReferringComponents("singleAxis")[0];t.coordSysDims=["single"],n.set("single",r),s(r)&&(i.set("single",r),t.firstCategoryDimIndex=0)},polar:function(e,t,n,i){var r=e.getReferringComponents("polar")[0],a=r.findAxisModel("radiusAxis"),o=r.findAxisModel("angleAxis");t.coordSysDims=["radius","angle"],n.set("radius",a),n.set("angle",o),s(a)&&(i.set("radius",a),t.firstCategoryDimIndex=0),s(o)&&(i.set("angle",o),t.firstCategoryDimIndex=1)},geo:function(e,t,n,i){t.coordSysDims=["lng","lat"]},parallel:function(e,t,n,i){var r=e.ecModel,o=r.getComponent("parallel",e.get("parallelIndex")),l=t.coordSysDims=o.dimensions.slice();a(o.parallelAxisIndex,function(e,a){var o=r.getComponent("parallelAxis",e),u=l[a];n.set(u,o),s(o)&&null==t.firstCategoryDimIndex&&(i.set(u,o),t.firstCategoryDimIndex=a)})}};function s(e){return"category"===e.get("type")}t.getCoordSysDefineBySeries=function(e){var t=e.get("coordinateSystem"),n={coordSysName:t,coordSysDims:[],axisMap:r(),categoryAxisMap:r()},i=o[t];if(i)return i(e,n,n.axisMap,n.categoryAxisMap),n}},kpI5:function(e,t,n){var i=n("krKi");function r(e,t){i.call(this,e,t,["filter"],"__filter_in_use__","_shadowDom")}function a(e){return e&&(e.shadowBlur||e.shadowOffsetX||e.shadowOffsetY||e.textShadowBlur||e.textShadowOffsetX||e.textShadowOffsetY)}n("GKMz").inherits(r,i),r.prototype.addWithoutUpdate=function(e,t){if(t&&a(t.style)){var n,i=t.style;if(i._shadowDom)n=i._shadowDom,this.getDefs(!0).contains(i._shadowDom)||this.addDom(n);else n=this.add(t);this.markUsed(t);var r=n.getAttribute("id");e.style.filter="url(#"+r+")"}},r.prototype.add=function(e){var t=this.createElement("filter"),n=e.style;return n._shadowDomId=n._shadowDomId||this.nextId++,t.setAttribute("id","zr"+this._zrId+"-shadow-"+n._shadowDomId),this.updateDom(e,t),this.addDom(t),t},r.prototype.update=function(e,t){var n=t.style;if(a(n)){var r=this;i.prototype.update.call(this,t,function(e){r.updateDom(t,e._shadowDom)})}else this.remove(e,n)},r.prototype.remove=function(e,t){null!=t._shadowDomId&&(this.removeDom(t),e.style.filter="")},r.prototype.updateDom=function(e,t){var n=t.getElementsByTagName("feDropShadow");n=0===n.length?this.createElement("feDropShadow"):n[0];var i,r,a,o,s=e.style,l=e.scale&&e.scale[0]||1,u=e.scale&&e.scale[1]||1;if(s.shadowBlur||s.shadowOffsetX||s.shadowOffsetY)i=s.shadowOffsetX||0,r=s.shadowOffsetY||0,a=s.shadowBlur,o=s.shadowColor;else{if(!s.textShadowBlur)return void this.removeDom(t,s);i=s.textShadowOffsetX||0,r=s.textShadowOffsetY||0,a=s.textShadowBlur,o=s.textShadowColor}n.setAttribute("dx",i/l),n.setAttribute("dy",r/u),n.setAttribute("flood-color",o);var c=a/2/l+" "+a/2/u;n.setAttribute("stdDeviation",c),t.setAttribute("x","-100%"),t.setAttribute("y","-100%"),t.setAttribute("width",Math.ceil(a/2*200)+"%"),t.setAttribute("height",Math.ceil(a/2*200)+"%"),t.appendChild(n),s._shadowDom=t},r.prototype.markUsed=function(e){var t=e.style;t&&t._shadowDom&&i.prototype.markUsed.call(this,t._shadowDom)};var o=r;e.exports=o},krKi:function(e,t,n){var i=n("tAnk").createElement,r=n("GKMz"),a=n("Q9e6"),o=n("ihWO"),s=n("gt1/"),l=n("UD01"),u=l.path,c=l.image,d=l.text;function h(e,t,n,i,r){this._zrId=e,this._svgRoot=t,this._tagNames="string"==typeof n?[n]:n,this._markLabel=i,this._domName=r||"_dom",this.nextId=0}h.prototype.createElement=i,h.prototype.getDefs=function(e){var t=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");return 0===n.length?e?((n=t.insertBefore(this.createElement("defs"),t.firstChild)).contains||(n.contains=function(e){var t=n.children;if(!t)return!1;for(var i=t.length-1;i>=0;--i)if(t[i]===e)return!0;return!1}),n):null:n[0]},h.prototype.update=function(e,t){if(e){var n=this.getDefs(!1);if(e[this._domName]&&n.contains(e[this._domName]))"function"==typeof t&&t(e);else{var i=this.add(e);i&&(e[this._domName]=i)}}},h.prototype.addDom=function(e){this.getDefs(!0).appendChild(e)},h.prototype.removeDom=function(e){var t=this.getDefs(!1);t&&e[this._domName]&&(t.removeChild(e[this._domName]),e[this._domName]=null)},h.prototype.getDoms=function(){var e=this.getDefs(!1);if(!e)return[];var t=[];return r.each(this._tagNames,function(n){var i=e.getElementsByTagName(n);t=t.concat([].slice.call(i))}),t},h.prototype.markAllUnused=function(){var e=this.getDoms(),t=this;r.each(e,function(e){e[t._markLabel]="0"})},h.prototype.markUsed=function(e){e&&(e[this._markLabel]="1")},h.prototype.removeUnused=function(){var e=this.getDefs(!1);if(e){var t=this.getDoms(),n=this;r.each(t,function(t){"1"!==t[n._markLabel]&&e.removeChild(t)})}},h.prototype.getSvgProxy=function(e){return e instanceof a?u:e instanceof o?c:e instanceof s?d:u},h.prototype.getTextSvgElement=function(e){return e.__textSvgEl},h.prototype.getSvgElement=function(e){return e.__svgEl};var f=h;e.exports=f},ktMJ:function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=n("OGtO"),o=r.extendShape({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var n=t.cx,i=t.cy,r=t.width/2,a=t.height/2;e.moveTo(n,i-a),e.lineTo(n+r,i+a),e.lineTo(n-r,i+a),e.closePath()}}),s=r.extendShape({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var n=t.cx,i=t.cy,r=t.width/2,a=t.height/2;e.moveTo(n,i-a),e.lineTo(n+r,i),e.lineTo(n,i+a),e.lineTo(n-r,i),e.closePath()}}),l=r.extendShape({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.x,i=t.y,r=t.width/5*3,a=Math.max(r,t.height),o=r/2,s=o*o/(a-o),l=i-a+o+s,u=Math.asin(s/o),c=Math.cos(u)*o,d=Math.sin(u),h=Math.cos(u),f=.6*o,p=.7*o;e.moveTo(n-c,l+s),e.arc(n,l,o,Math.PI-u,2*Math.PI+u),e.bezierCurveTo(n+c-d*f,l+s+h*f,n,i-p,n,i),e.bezierCurveTo(n,i-p,n-c+d*f,l+s+h*f,n-c,l+s),e.closePath()}}),u=r.extendShape({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.height,i=t.width,r=t.x,a=t.y,o=i/3*2;e.moveTo(r,a),e.lineTo(r+o,a+n),e.lineTo(r,a+n/4*3),e.lineTo(r-o,a+n),e.lineTo(r,a),e.closePath()}}),c={line:r.Line,rect:r.Rect,roundRect:r.Rect,square:r.Rect,circle:r.Circle,diamond:s,pin:l,arrow:u,triangle:o},d={line:function(e,t,n,i,r){r.x1=e,r.y1=t+i/2,r.x2=e+n,r.y2=t+i/2},rect:function(e,t,n,i,r){r.x=e,r.y=t,r.width=n,r.height=i},roundRect:function(e,t,n,i,r){r.x=e,r.y=t,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(e,t,n,i,r){var a=Math.min(n,i);r.x=e,r.y=t,r.width=a,r.height=a},circle:function(e,t,n,i,r){r.cx=e+n/2,r.cy=t+i/2,r.r=Math.min(n,i)/2},diamond:function(e,t,n,i,r){r.cx=e+n/2,r.cy=t+i/2,r.width=n,r.height=i},pin:function(e,t,n,i,r){r.x=e+n/2,r.y=t+i/2,r.width=n,r.height=i},arrow:function(e,t,n,i,r){r.x=e+n/2,r.y=t+i/2,r.width=n,r.height=i},triangle:function(e,t,n,i,r){r.cx=e+n/2,r.cy=t+i/2,r.width=n,r.height=i}},h={};i.each(c,function(e,t){h[t]=new e});var f=r.extendShape({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var e=this.style;"pin"===this.shape.symbolType&&"inside"===e.textPosition&&(e.textPosition=["50%","40%"],e.textAlign="center",e.textVerticalAlign="middle")},buildPath:function(e,t,n){var i=t.symbolType,r=h[i];"none"!==t.symbolType&&(r||(r=h[i="rect"]),d[i](t.x,t.y,t.width,t.height,r.shape),r.buildPath(e,r.shape,n))}});function p(e,t){if("image"!==this.type){var n=this.style,i=this.shape;i&&"line"===i.symbolType?n.stroke=e:this.__isEmptyBrush?(n.stroke=e,n.fill=t||"#fff"):(n.fill&&(n.fill=e),n.stroke&&(n.stroke=e)),this.dirty(!1)}}t.createSymbol=function(e,t,n,i,o,s,l){var u,c=0===e.indexOf("empty");return c&&(e=e.substr(5,1).toLowerCase()+e.substr(6)),(u=0===e.indexOf("image://")?r.makeImage(e.slice(8),new a(t,n,i,o),l?"center":"cover"):0===e.indexOf("path://")?r.makePath(e.slice(7),{},new a(t,n,i,o),l?"center":"cover"):new f({shape:{symbolType:e,x:t,y:n,width:i,height:o}})).__isEmptyBrush=c,u.setColor=p,u.setColor(s),u}},kuK2:function(e,t){e.exports=function(e,t,n){return{seriesType:e,performRawSeries:!0,reset:function(e,i,r){var a=e.getData(),o=e.get("symbol")||t,s=e.get("symbolSize"),l=e.get("symbolKeepAspect");if(a.setVisual({legendSymbol:n||o,symbol:o,symbolSize:s,symbolKeepAspect:l}),!i.isSeriesFiltered(e)){var u="function"==typeof s;return{dataEach:a.hasItemOption||u?function(t,n){if("function"==typeof s){var i=e.getRawValue(n),r=e.getDataParams(n);t.setItemVisual(n,"symbolSize",s(i,r))}if(t.hasItemOption){var a=t.getItemModel(n),o=a.getShallow("symbol",!0),l=a.getShallow("symbolSize",!0),u=a.getShallow("symbolKeepAspect",!0);null!=o&&t.setItemVisual(n,"symbol",o),null!=l&&t.setItemVisual(n,"symbolSize",l),null!=u&&t.setItemVisual(n,"symbolKeepAspect",u)}}:null}}}}}},l3Iw:function(e,t,n){var i=n("oDHT"),r=n("OGtO");function a(e){var t=["x","y"],n=["width","height"];return{point:function(t,n,i){if(t){var r=i.range;return o(t[e],r)}},rect:function(i,r,a){if(i){var s=a.range,l=[i[t[e]],i[t[e]]+i[n[e]]];return l[1]<l[0]&&l.reverse(),o(l[0],s)||o(l[1],s)||o(s[0],l)||o(s[1],l)}}}}function o(e,t){return t[0]<=e&&e<=t[1]}function s(e,t,n,i,r){for(var a=0,o=r[r.length-1];a<r.length;a++){var s=r[a];if(l(e,t,n,i,s[0],s[1],o[0],o[1]))return!0;o=s}}function l(e,t,n,i,r,a,o,s){var l,c=u(n-e,r-o,i-t,a-s);if((l=c)<=1e-6&&l>=-1e-6)return!1;var d=u(r-e,r-o,a-t,a-s)/c;if(d<0||d>1)return!1;var h=u(n-e,r-e,i-t,a-t)/c;return!(h<0||h>1)}function u(e,t,n,i){return e*i-t*n}var c={lineX:a(0),lineY:a(1),rect:{point:function(e,t,n){return e&&n.boundingRect.contain(e[0],e[1])},rect:function(e,t,n){return e&&n.boundingRect.intersect(e)}},polygon:{point:function(e,t,n){return e&&n.boundingRect.contain(e[0],e[1])&&i.contain(n.range,e[0],e[1])},rect:function(e,t,n){var a=n.range;if(!e||a.length<=1)return!1;var o=e.x,l=e.y,u=e.width,c=e.height,d=a[0];return!!(i.contain(a,o,l)||i.contain(a,o+u,l)||i.contain(a,o,l+c)||i.contain(a,o+u,l+c)||r.create(e).contain(d[0],d[1])||s(o,l,o+u,l,a)||s(o,l,o,l+c,a)||s(o+u,l,o+u,l+c,a)||s(o,l+c,o+u,l+c,a))||void 0}}};e.exports=c},l8Rx:function(e,t){var n=function(e){this.colorStops=e||[]};n.prototype={constructor:n,addColorStop:function(e,t){this.colorStops.push({offset:e,color:t})}};var i=n;e.exports=i},l9Iv:function(e,t,n){var i=n("TPu0"),r=n("r2gs");e.exports=function(e){return function(t,n){var a,o,s=String(r(t)),l=i(n),u=s.length;return l<0||l>=u?e?"":void 0:(a=s.charCodeAt(l))<55296||a>56319||l+1===u||(o=s.charCodeAt(l+1))<56320||o>57343?e?s.charAt(l):a:e?s.slice(l,l+2):o-56320+(a-55296<<10)+65536}}},lC5x:function(e,t,n){e.exports=n("XqSp")},lFbO:function(e,t,n){"use strict";var i=n("8r5Y"),r=n("Jo3n"),a=n("ur+z"),o=n("dd6o"),s=n("2WZl"),l=n("h3QQ"),u="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||n("kehZ");e.exports=function(e){return new Promise(function(t,c){var d=e.data,h=e.headers;i.isFormData(d)&&delete h["Content-Type"];var f=new XMLHttpRequest,p="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in f||s(e.url)||(f=new window.XDomainRequest,p="onload",m=!0,f.onprogress=function(){},f.ontimeout=function(){}),e.auth){var g=e.auth.username||"",v=e.auth.password||"";h.Authorization="Basic "+u(g+":"+v)}if(f.open(e.method.toUpperCase(),a(e.url,e.params,e.paramsSerializer),!0),f.timeout=e.timeout,f[p]=function(){if(f&&(4===f.readyState||m)&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in f?o(f.getAllResponseHeaders()):null,i={data:e.responseType&&"text"!==e.responseType?f.response:f.responseText,status:1223===f.status?204:f.status,statusText:1223===f.status?"No Content":f.statusText,headers:n,config:e,request:f};r(t,c,i),f=null}},f.onerror=function(){c(l("Network Error",e,null,f)),f=null},f.ontimeout=function(){c(l("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",f)),f=null},i.isStandardBrowserEnv()){var y=n("n/1x"),b=(e.withCredentials||s(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;b&&(h[e.xsrfHeaderName]=b)}if("setRequestHeader"in f&&i.forEach(h,function(e,t){void 0===d&&"content-type"===t.toLowerCase()?delete h[t]:f.setRequestHeader(t,e)}),e.withCredentials&&(f.withCredentials=!0),e.responseType)try{f.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&f.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){f&&(f.abort(),c(e),f=null)}),void 0===d&&(d=null),f.send(d)})}},lIiZ:function(e,t,n){var i=n("93K8"),r=n("SS50"),a=n("J35F"),o=Object.defineProperty;t.f=n("sjnA")?Object.defineProperty:function(e,t,n){if(i(e),t=a(t,!0),i(n),r)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},"lMm+":function(e,t,n){var i=n("GKMz"),r=n("gxMf"),a=n("vqvJ").makeInner,o=n("3m5Y").makeLabelFormatter,s=a();function l(e,t){var n,r=u(e,"labels"),a=p(t),o=c(r,a);return o||d(r,a,{labels:i.isFunction(a)?f(e,a):h(e,n="auto"===a?function(e){var t=s(e).autoInterval;return null!=t?t:s(e).autoInterval=e.calculateCategoryInterval()}(e):a),labelCategoryInterval:n})}function u(e,t){return s(e)[t]||(s(e)[t]=[])}function c(e,t){for(var n=0;n<e.length;n++)if(e[n].key===t)return e[n].value}function d(e,t,n){return e.push({key:t,value:n}),n}function h(e,t,n){var i=o(e),r=e.scale,a=r.getExtent(),s=e.getLabelModel(),l=[],u=Math.max((t||0)+1,1),c=a[0],d=r.count();0!==c&&u>1&&d/u>2&&(c=Math.round(Math.ceil(c/u)*u));var h=s.get("showMinLabel"),f=s.get("showMaxLabel");h&&c!==a[0]&&m(a[0]);for(var p=c;p<=a[1];p+=u)m(p);function m(e){l.push(n?e:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:e})}return f&&p!==a[1]&&m(a[1]),l}function f(e,t,n){var r=e.scale,a=o(e),s=[];return i.each(r.getTicks(),function(e){var i=r.getLabel(e);t(e,i)&&s.push(n?e:{formattedLabel:a(e),rawLabel:i,tickValue:e})}),s}function p(e){var t=e.get("interval");return null==t?"auto":t}t.createAxisLabels=function(e){return"category"===e.type?function(e){var t=e.getLabelModel(),n=l(e,t);return!t.get("show")||e.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(e):function(e){var t=e.scale.getTicks(),n=o(e);return{labels:i.map(t,function(t,i){return{formattedLabel:n(t,i),rawLabel:e.scale.getLabel(t),tickValue:t}})}}(e)},t.createAxisTicks=function(e,t){return"category"===e.type?function(e,t){var n,r,a=u(e,"ticks"),o=p(t),s=c(a,o);if(s)return s;if(t.get("show")&&!e.scale.isBlank()||(n=[]),i.isFunction(o))n=f(e,o,!0);else if("auto"===o){var m=l(e,e.getLabelModel());r=m.labelCategoryInterval,n=i.map(m.labels,function(e){return e.tickValue})}else n=h(e,r=o,!0);return d(a,o,{ticks:n,tickCategoryInterval:r})}(e,t):{ticks:e.scale.getTicks()}},t.calculateCategoryInterval=function(e){var t=function(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get("rotate")||0,font:t.getFont()}}(e),n=o(e),i=(t.axisRotate-t.labelRotate)/180*Math.PI,a=e.scale,l=a.getExtent(),u=a.count();if(l[1]-l[0]<1)return 0;var c=1;u>40&&(c=Math.max(1,Math.floor(u/40)));for(var d=l[0],h=e.dataToCoord(d+1)-e.dataToCoord(d),f=Math.abs(h*Math.cos(i)),p=Math.abs(h*Math.sin(i)),m=0,g=0;d<=l[1];d+=c){var v,y,b=r.getBoundingRect(n(d),t.font,"center","top");v=1.3*b.width,y=1.3*b.height,m=Math.max(m,v,7),g=Math.max(g,y,7)}var _=m/f,x=g/p;isNaN(_)&&(_=1/0),isNaN(x)&&(x=1/0);var w=Math.max(0,Math.floor(Math.min(_,x))),S=s(e.model),C=S.lastAutoInterval,M=S.lastTickCount;return null!=C&&null!=M&&Math.abs(C-w)<=1&&Math.abs(M-u)<=1&&C>w?w=C:(S.lastTickCount=u,S.lastAutoInterval=w),w}},lYM0:function(e,t,n){var i=n("2xPE").retrieveRawValue;t.getDefaultLabel=function(e,t){var n=e.mapDimension("defaultedLabel",!0),r=n.length;if(1===r)return i(e,t,n[0]);if(r){for(var a=[],o=0;o<n.length;o++){var s=i(e,t,n[o]);a.push(s)}return a.join(" ")}}},lYmG:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("OGtO"),o=n("01Ub"),s=n("l3Iw"),l=n("242d"),u=n("niVK"),c=["inBrush","outOfBrush"],d="__ecBrushSelect",h="__ecInBrushSelectEvent",f=i.PRIORITY.VISUAL.BRUSH;function p(e,t){if(!e.isDisposed()){var n=e.getZr();n[h]=!0,e.dispatchAction({type:"brushSelect",batch:t}),n[h]=!1}}function m(e,t,n,i){for(var r=0,a=t.length;r<a;r++){var o=t[r];if(e[o.brushType](i,n,o.selectors,o))return!0}}function g(e){var t=e.brushSelector;if(r.isString(t)){var n=[];return r.each(s,function(e,i){n[i]=function(n,i,r,a){var o=i.getItemLayout(n);return e[t](o,r,a)}}),n}if(r.isFunction(t)){var i={};return r.each(s,function(e,n){i[n]=t}),i}return t}i.registerLayout(f,function(e,t,n){e.eachComponent({mainType:"brush"},function(t){n&&"takeGlobalCursor"===n.type&&t.setBrushOption("brush"===n.key?n.brushOption:{brushType:!1}),(t.brushTargetManager=new u(t.option,e)).setInputRanges(t.areas,e)})}),i.registerVisual(f,function(e,t,n){var i,a,u=[];e.eachComponent({mainType:"brush"},function(t,n){var l={brushId:t.id,brushIndex:n,brushName:t.name,areas:r.clone(t.areas),selected:[]};u.push(l);var d=t.option,h=d.brushLink,f=[],p=[],y=[],b=0;n||(i=d.throttleType,a=d.throttleDelay);var _=r.map(t.areas,function(e){return function(e){var t=e.selectors={};return r.each(s[e.brushType],function(n,i){t[i]=function(i){return n(i,t,e)}}),e}(r.defaults({boundingRect:v[e.brushType](e)},e))}),x=o.createVisualMappings(t.option,c,function(e){e.mappingMethod="fixed"});function w(e){return"all"===h||f[e]}function S(e){return!!e.length}r.isArray(h)&&r.each(h,function(e){f[e]=1}),e.eachSeries(function(n,i){var a=y[i]=[];"parallel"===n.subType?function(e,t){var n=e.coordinateSystem;b|=n.hasAxisBrushed(),w(t)&&n.eachActiveState(e.getData(),function(e,t){"active"===e&&(p[t]=1)})}(n,i):function(n,i,a){var o=g(n);if(!o||function(e,t){var n=e.option.seriesIndex;return null!=n&&"all"!==n&&(r.isArray(n)?r.indexOf(n,t)<0:t!==n)}(t,i))return;if(r.each(_,function(i){o[i.brushType]&&t.brushTargetManager.controlSeries(i,n,e)&&a.push(i),b|=S(a)}),w(i)&&S(a)){var s=n.getData();s.each(function(e){m(o,a,s,e)&&(p[e]=1)})}}(n,i,a)}),e.eachSeries(function(e,t){var n={seriesId:e.id,seriesIndex:t,seriesName:e.name,dataIndex:[]};l.selected.push(n);var i=g(e),r=y[t],a=e.getData(),s=w(t)?function(e){return p[e]?(n.dataIndex.push(a.getRawIndex(e)),"inBrush"):"outOfBrush"}:function(e){return m(i,r,a,e)?(n.dataIndex.push(a.getRawIndex(e)),"inBrush"):"outOfBrush"};(w(t)?b:S(r))&&o.applyVisual(c,x,a,s)})}),function(e,t,n,i,r){if(!r)return;var a=e.getZr();if(a[h])return;a[d]||(a[d]=p);l.createOrUpdate(a,d,n,t)(e,i)}(t,i,a,u,n)});var v={lineX:r.noop,lineY:r.noop,rect:function(e){return y(e.range)},polygon:function(e){for(var t,n=e.range,i=0,r=n.length;i<r;i++){t=t||[[1/0,-1/0],[1/0,-1/0]];var a=n[i];a[0]<t[0][0]&&(t[0][0]=a[0]),a[0]>t[0][1]&&(t[0][1]=a[0]),a[1]<t[1][0]&&(t[1][0]=a[1]),a[1]>t[1][1]&&(t[1][1]=a[1])}return t&&y(t)}};function y(e){return new a(e[0][0],e[1][0],e[0][1]-e[0][0],e[1][1]-e[1][0])}},lfYz:function(e,t,n){var i=n("GKMz"),r=n("5gvs").Dispatcher,a=n("dntg"),o=n("Ln8f"),s=function(e){e=e||{},this.stage=e.stage||{},this.onframe=e.onframe||function(){},this._clips=[],this._running=!1,this._time,this._pausedTime,this._pauseStart,this._paused=!1,r.call(this)};s.prototype={constructor:s,addClip:function(e){this._clips.push(e)},addAnimator:function(e){e.animation=this;for(var t=e.getClips(),n=0;n<t.length;n++)this.addClip(t[n])},removeClip:function(e){var t=i.indexOf(this._clips,e);t>=0&&this._clips.splice(t,1)},removeAnimator:function(e){for(var t=e.getClips(),n=0;n<t.length;n++)this.removeClip(t[n]);e.animation=null},_update:function(){for(var e=(new Date).getTime()-this._pausedTime,t=e-this._time,n=this._clips,i=n.length,r=[],a=[],o=0;o<i;o++){var s=n[o],l=s.step(e,t);l&&(r.push(l),a.push(s))}for(o=0;o<i;)n[o]._needsRemove?(n[o]=n[i-1],n.pop(),i--):o++;i=r.length;for(o=0;o<i;o++)a[o].fire(r[o]);this._time=e,this.onframe(t),this.trigger("frame",t),this.stage.update&&this.stage.update()},_startLoop:function(){var e=this;this._running=!0,a(function t(){e._running&&(a(t),!e._paused&&e._update())})},start:function(){this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop()},stop:function(){this._running=!1},pause:function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},resume:function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},clear:function(){this._clips=[]},isFinished:function(){return!this._clips.length},animate:function(e,t){var n=new o(e,(t=t||{}).loop,t.getter,t.setter);return this.addAnimator(n),n}},i.mixin(s,r);var l=s;e.exports=l},liLe:function(e,t,n){e.exports={default:n("JhHb"),__esModule:!0}},liel:function(e,t,n){var i=n("7Rvj"),r=n("GKMz");e.exports=function(e,t){e.eachSeriesByType("sankey",function(e){var t=e.getGraph().nodes;if(t.length){var n=1/0,a=-1/0;r.each(t,function(e){var t=e.getLayout().value;t<n&&(n=t),t>a&&(a=t)}),r.each(t,function(t){var r=new i({type:"color",mappingMethod:"linear",dataExtent:[n,a],visual:e.get("color")}).mapValueToVisual(t.getLayout().value);t.setVisual("color",r);var o=t.getModel().get("itemStyle.color");null!=o&&t.setVisual("color",o)})}})}},luYz:function(e,t){var n="undefined"==typeof Float32Array?Array:Float32Array;function i(e){return Math.sqrt(a(e))}var r=i;function a(e){return e[0]*e[0]+e[1]*e[1]}var o=a;function s(e,t){return Math.sqrt((e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1]))}var l=s;function u(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}var c=u;t.create=function(e,t){var i=new n(2);return null==e&&(e=0),null==t&&(t=0),i[0]=e,i[1]=t,i},t.copy=function(e,t){return e[0]=t[0],e[1]=t[1],e},t.clone=function(e){var t=new n(2);return t[0]=e[0],t[1]=e[1],t},t.set=function(e,t,n){return e[0]=t,e[1]=n,e},t.add=function(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e},t.scaleAndAdd=function(e,t,n,i){return e[0]=t[0]+n[0]*i,e[1]=t[1]+n[1]*i,e},t.sub=function(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e},t.len=i,t.length=r,t.lenSquare=a,t.lengthSquare=o,t.mul=function(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e},t.div=function(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e},t.dot=function(e,t){return e[0]*t[0]+e[1]*t[1]},t.scale=function(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e},t.normalize=function(e,t){var n=i(t);return 0===n?(e[0]=0,e[1]=0):(e[0]=t[0]/n,e[1]=t[1]/n),e},t.distance=s,t.dist=l,t.distanceSquare=u,t.distSquare=c,t.negate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e},t.lerp=function(e,t,n,i){return e[0]=t[0]+i*(n[0]-t[0]),e[1]=t[1]+i*(n[1]-t[1]),e},t.applyTransform=function(e,t,n){var i=t[0],r=t[1];return e[0]=n[0]*i+n[2]*r+n[4],e[1]=n[1]*i+n[3]*r+n[5],e},t.min=function(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e},t.max=function(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e}},luaR:function(e,t,n){var i=n("YR6M"),r=n("4f7s"),a=n("uxQp").encodeHTML,o=i.extend({type:"series.tree",layoutInfo:null,layoutMode:"box",getInitialData:function(e){var t={name:e.name,children:e.data},n=e.leaves||{},i={};i.leaves=n;var a=r.createTree(t,this,i),o=0;a.eachNode("preorder",function(e){e.depth>o&&(o=e.depth)});var s=e.expandAndCollapse&&e.initialTreeDepth>=0?e.initialTreeDepth:o;return a.root.eachNode("preorder",function(e){var t=e.hostTree.data.getRawDataItem(e.dataIndex);e.isExpand=t&&null!=t.collapsed?!t.collapsed:e.depth<=s}),a.data},getOrient:function(){var e=this.get("orient");return"horizontal"===e?e="LR":"vertical"===e&&(e="TB"),e},formatTooltip:function(e){for(var t=this.getData().tree,n=t.root.children[0],i=t.getNodeByDataIndex(e),r=i.getValue(),o=i.name;i&&i!==n;)o=i.parentNode.name+"."+o,i=i.parentNode;return a(o+(isNaN(r)||null==r?"":" : "+r))},defaultOption:{zlevel:0,z:2,left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0,color:"#555"},leaves:{label:{show:!0}},animationEasing:"linear",animationDuration:700,animationDurationUpdate:1e3}});e.exports=o},m02s:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("aVg8"),o=n("lYM0").getDefaultLabel,s=n("bmdq"),l=n("h+Y5").getLayoutOnAxis,u=n("0jiU"),c=["itemStyle"],d=["emphasis","itemStyle"],h=["label"],f=["emphasis","label"],p="e\0\0",m={cartesian2d:n("owVC"),geo:n("VKUG"),singleAxis:n("Hi0C"),polar:n("/4Ay"),calendar:n("iamZ")};function g(e,t,n,i,r){null==n[e]||r||(t[e]=n[e],n[e]=i[e])}function v(e,t,n,i){var s=e.get("renderItem"),u=e.coordinateSystem,p={};u&&(p=u.prepareCustoms?u.prepareCustoms():m[u.type](u));var g,v,y,b,_,x=r.defaults({getWidth:i.getWidth,getHeight:i.getHeight,getZr:i.getZr,getDevicePixelRatio:i.getDevicePixelRatio,value:function(e,n){return null==n&&(n=g),t.get(t.getDimension(e||0),n)},style:function(n,i){null==i&&(i=g),C(i);var s=v.getModel(c).getItemStyle();null!=_&&(s.fill=_);var l=t.getItemVisual(i,"opacity");return null!=l&&(s.opacity=l),a.setTextStyle(s,y,null,{autoColor:_,isRectText:!0}),s.text=y.getShallow("show")?r.retrieve2(e.getFormattedLabel(i,"normal"),o(t,i)):null,n&&r.extend(s,n),s},styleEmphasis:function(n,i){null==i&&(i=g),C(i);var s=v.getModel(d).getItemStyle();return a.setTextStyle(s,b,null,{isRectText:!0},!0),s.text=b.getShallow("show")?r.retrieve3(e.getFormattedLabel(i,"emphasis"),e.getFormattedLabel(i,"normal"),o(t,i)):null,n&&r.extend(s,n),s},visual:function(e,n){return null==n&&(n=g),t.getItemVisual(n,e)},barLayout:function(e){if(u.getBaseAxis){var t=u.getBaseAxis();return l(r.defaults({axis:t},e),i)}},currentSeriesIndices:function(){return n.getCurrentSeriesIndices()},font:function(e){return a.getFont(e,n)}},p.api||{}),w={context:{},seriesId:e.id,seriesName:e.name,seriesIndex:e.seriesIndex,coordSys:p.coordSys,dataInsideLength:t.count(),encode:function(e){var t={};return r.each(e.dimensions,function(n,i){var r=e.getDimensionInfo(n);if(!r.isExtraCoord){var a=r.coordDim;(t[a]=t[a]||[])[r.coordDimIndex]=i}}),t}(e.getData())},S=!0;return function(e){return g=e,S=!0,s&&s(r.defaults({dataIndexInside:e,dataIndex:t.getRawIndex(e)},w),x)||{}};function C(e){null==e&&(e=g),S&&(v=t.getItemModel(e),y=v.getModel(h),b=v.getModel(f),_=t.getItemVisual(e,"color"),S=!1)}}function y(e,t,n,i,r,a){return(e=b(e,t,n,i,r,a))&&a.setItemGraphicEl(t,e),e}function b(e,t,n,i,o,s){var l=n.type;if(!e||l===e.__customGraphicType||"path"===l&&n.pathData===e.__customPathData||"image"===l&&n.style.image===e.__customImagePath||"text"===l&&n.style.text===e.__customText||(o.remove(e),e=null),null!=l){var c,d=!e;if(!e&&(e=function(e){var t,n=e.type;if("path"===n){var i=e.shape;(t=a.makePath(i.pathData,null,{x:i.x||0,y:i.y||0,width:i.width||0,height:i.height||0},"center")).__customPathData=e.pathData}else"image"===n?(t=new a.Image({})).__customImagePath=e.style.image:"text"===n?(t=new a.Text({})).__customText=e.style.text:t=new(0,a[n.charAt(0).toUpperCase()+n.slice(1)]);return t.__customGraphicType=n,t.name=e.name,t}(n)),function(e,t,n,i,o,s){var l={},u=n.style||{};if(n.shape&&(l.shape=r.clone(n.shape)),n.position&&(l.position=n.position.slice()),n.scale&&(l.scale=n.scale.slice()),n.origin&&(l.origin=n.origin.slice()),n.rotation&&(l.rotation=n.rotation),"image"===e.type&&n.style){var c=l.style={};r.each(["x","y","width","height"],function(t){g(t,c,u,e.style,s)})}"text"===e.type&&n.style&&(c=l.style={},r.each(["x","y"],function(t){g(t,c,u,e.style,s)}),!u.hasOwnProperty("textFill")&&u.fill&&(u.textFill=u.fill),!u.hasOwnProperty("textStroke")&&u.stroke&&(u.textStroke=u.stroke));if("group"!==e.type&&(e.useStyle(u),s)){e.style.opacity=0;var d=u.opacity;null==d&&(d=1),a.initProps(e,{style:{opacity:d}},i,t)}s?e.attr(l):a.updateProps(e,l,i,t),e.attr({z2:n.z2||0,silent:n.silent}),!1!==n.styleEmphasis&&a.setHoverStyle(e,n.styleEmphasis)}(e,t,n,i,0,d),"group"===l){var h=e.children()||[],f=n.children||[];if(n.diffChildrenByName)new u((c={oldChildren:h,newChildren:f,dataIndex:t,animatableModel:i,group:e,data:s}).oldChildren,c.newChildren,_,_,c).add(x).update(x).remove(w).execute();else{for(var p=0;p<f.length;p++)b(e.childAt(p),t,f[p],i,e,s);for(;p<h.length;p++)h[p]&&e.remove(h[p])}}return o.add(e),e}}function _(e,t){var n=e&&e.name;return null!=n?n:p+t}function x(e,t){var n=this.context,i=null!=e?n.newChildren[e]:null;b(null!=t?n.oldChildren[t]:null,n.dataIndex,i,n.animatableModel,n.group,n.data)}function w(e){var t=this.context,n=t.oldChildren[e];n&&t.group.remove(n)}i.extendSeriesModel({type:"series.custom",dependencies:["grid","polar","geo","singleAxis","calendar"],defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0},getInitialData:function(e,t){return s(this.getSource(),this)}}),i.extendChartView({type:"custom",_data:null,render:function(e,t,n){var i=this._data,r=e.getData(),a=this.group,o=v(e,r,t,n);this.group.removeAll(),r.diff(i).add(function(t){y(null,t,o(t),e,a,r)}).update(function(t,n){y(i.getItemGraphicEl(n),t,o(t),e,a,r)}).remove(function(e){var t=i.getItemGraphicEl(e);t&&a.remove(t)}).execute(),this._data=r},incrementalPrepareRender:function(e,t,n){this.group.removeAll(),this._data=null},incrementalRender:function(e,t,n,i){var r=t.getData(),a=v(t,r,n,i);function o(e){e.isGroup||(e.incremental=!0,e.useHoverLayer=!0)}for(var s=e.start;s<e.end;s++){y(null,s,a(s),t,this.group,r).traverse(o)}},dispose:r.noop})},mBiu:function(e,t,n){var i=n("BAmx"),r=n("GKMz"),a=n("5zoN"),o=n("luYz");function s(e,t,n){a.call(this,e,t,n),this._lastFrame=0,this._lastFramePercent=0}var l=s.prototype;l.createLine=function(e,t,n){return new i(e,t,n)},l.updateAnimationPoints=function(e,t){this._points=t;for(var n=[0],i=0,r=1;r<t.length;r++){var a=t[r-1],s=t[r];i+=o.dist(a,s),n.push(i)}if(0!==i){for(r=0;r<n.length;r++)n[r]/=i;this._offsets=n,this._length=i}},l.getLineLength=function(e){return this._length},l.updateSymbolPosition=function(e){var t=e.__t,n=this._points,i=this._offsets,r=n.length;if(i){var a=this._lastFrame;if(t<this._lastFramePercent){for(s=Math.min(a+1,r-1);s>=0&&!(i[s]<=t);s--);s=Math.min(s,r-2)}else{for(var s=a;s<r&&!(i[s]>t);s++);s=Math.min(s-1,r-2)}o.lerp(e.position,n[s],n[s+1],(t-i[s])/(i[s+1]-i[s]));var l=n[s+1][0]-n[s][0],u=n[s+1][1]-n[s][1];e.rotation=-Math.atan2(u,l)-Math.PI/2,this._lastFrame=s,this._lastFramePercent=t,e.ignore=!1}},r.inherits(s,a);var u=s;e.exports=u},mEMm:function(e,t,n){var i=n("T9r1");e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},"mQB+":function(e,t,n){var i=n("/MtV");n("i1Hm"),n("kM8n"),n("5B9r"),n("93zO");var r=n("f0J5"),a=n("8BlH"),o=n("uDLM"),s=n("VkYz"),l=n("nmRA");i.registerLayout(r),i.registerVisual(a),i.registerProcessor(i.PRIORITY.PROCESSOR.STATISTIC,o),i.registerPreprocessor(s),l("map",[{type:"mapToggleSelect",event:"mapselectchanged",method:"toggleSelected"},{type:"mapSelect",event:"mapselected",method:"select"},{type:"mapUnSelect",event:"mapunselected",method:"unSelect"}])},mhmp:function(e,t,n){var i=n("gIPg"),r=n("Bd51"),a=n("wNlq"),o=function(){this.group=new i,this.uid=r.getUID("viewComponent")},s=o.prototype={constructor:o,init:function(e,t){},render:function(e,t,n,i){},dispose:function(){}};s.updateView=s.updateLayout=s.updateVisual=function(e,t,n,i){},a.enableClassExtend(o),a.enableClassManagement(o,{registerWhenExtend:!0});var l=o;e.exports=l},"n/1x":function(e,t,n){"use strict";var i=n("8r5Y");e.exports=i.isStandardBrowserEnv()?{write:function(e,t,n,r,a,o){var s=[];s.push(e+"="+encodeURIComponent(t)),i.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),i.isString(r)&&s.push("path="+r),i.isString(a)&&s.push("domain="+a),!0===o&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},n3y0:function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=130)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},1:function(e,t){e.exports=n("PEt4")},130:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(131),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},131:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(132),r=n.n(i),a=n(133),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},132:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElCheckboxGroup",componentName:"ElCheckboxGroup",mixins:[a.default],inject:{elFormItem:{default:""}},props:{value:{},disabled:Boolean,min:Number,max:Number,size:String,fill:String,textColor:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[e])}}}},133:function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-checkbox-group",attrs:{role:"group","aria-label":"checkbox-group"}},[this._t("default")],2)},staticRenderFns:[]};t.a=i}})},nOmy:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("aVg8"),a=n("S/Ei"),o=n("GKMz");var s=i.extendChartView({type:"heatmap",render:function(e,t,n){var i;t.eachComponent("visualMap",function(t){t.eachTargetSeries(function(n){n===e&&(i=t)})}),this.group.removeAll(),this._incrementalDisplayable=null;var r=e.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(e,n,0,e.getData().count()):function(e){var t=e.dimensions;return"lng"===t[0]&&"lat"===t[1]}(r)&&this._renderOnGeo(r,e,i,n)},incrementalPrepareRender:function(e,t,n){this.group.removeAll()},incrementalRender:function(e,t,n,i){t.coordinateSystem&&this._renderOnCartesianAndCalendar(t,i,e.start,e.end,!0)},_renderOnCartesianAndCalendar:function(e,t,n,i,a){var s,l,u=e.coordinateSystem;if("cartesian2d"===u.type){var c=u.getAxis("x"),d=u.getAxis("y");s=c.getBandWidth(),l=d.getBandWidth()}for(var h=this.group,f=e.getData(),p=e.getModel("itemStyle").getItemStyle(["color"]),m=e.getModel("emphasis.itemStyle").getItemStyle(),g=e.getModel("label"),v=e.getModel("emphasis.label"),y=u.type,b="cartesian2d"===y?[f.mapDimension("x"),f.mapDimension("y"),f.mapDimension("value")]:[f.mapDimension("time"),f.mapDimension("value")],_=n;_<i;_++){var x;if("cartesian2d"===y){if(isNaN(f.get(b[2],_)))continue;var w=u.dataToPoint([f.get(b[0],_),f.get(b[1],_)]);x=new r.Rect({shape:{x:w[0]-s/2,y:w[1]-l/2,width:s,height:l},style:{fill:f.getItemVisual(_,"color"),opacity:f.getItemVisual(_,"opacity")}})}else{if(isNaN(f.get(b[1],_)))continue;x=new r.Rect({z2:1,shape:u.dataToRect([f.get(b[0],_)]).contentShape,style:{fill:f.getItemVisual(_,"color"),opacity:f.getItemVisual(_,"opacity")}})}var S=f.getItemModel(_);f.hasItemOption&&(p=S.getModel("itemStyle").getItemStyle(["color"]),m=S.getModel("emphasis.itemStyle").getItemStyle(),g=S.getModel("label"),v=S.getModel("emphasis.label"));var C=e.getRawValue(_),M="-";C&&null!=C[2]&&(M=C[2]),r.setLabelStyle(p,m,g,v,{labelFetcher:e,labelDataIndex:_,defaultText:M,isRectText:!0}),x.setStyle(p),r.setHoverStyle(x,f.hasItemOption?m:o.extend({},m)),x.incremental=a,a&&(x.useHoverLayer=!0),h.add(x),f.setItemGraphicEl(_,x)}},_renderOnGeo:function(e,t,n,i){var s=n.targetVisuals.inRange,l=n.targetVisuals.outOfRange,u=t.getData(),c=this._hmLayer||this._hmLayer||new a;c.blurSize=t.get("blurSize"),c.pointSize=t.get("pointSize"),c.minOpacity=t.get("minOpacity"),c.maxOpacity=t.get("maxOpacity");var d=e.getViewRect().clone(),h=e.getRoamTransform();d.applyTransform(h);var f=Math.max(d.x,0),p=Math.max(d.y,0),m=Math.min(d.width+d.x,i.getWidth()),g=Math.min(d.height+d.y,i.getHeight()),v=m-f,y=g-p,b=[u.mapDimension("lng"),u.mapDimension("lat"),u.mapDimension("value")],_=u.mapArray(b,function(t,n,i){var r=e.dataToPoint([t,n]);return r[0]-=f,r[1]-=p,r.push(i),r}),x=n.getExtent(),w="visualMap.continuous"===n.type?function(e,t){var n=e[1]-e[0];return t=[(t[0]-e[0])/n,(t[1]-e[0])/n],function(e){return e>=t[0]&&e<=t[1]}}(x,n.option.range):function(e,t,n){var i=e[1]-e[0],r=(t=o.map(t,function(t){return{interval:[(t.interval[0]-e[0])/i,(t.interval[1]-e[0])/i]}})).length,a=0;return function(e){for(var i=a;i<r;i++)if((o=t[i].interval)[0]<=e&&e<=o[1]){a=i;break}if(i===r)for(i=a-1;i>=0;i--){var o;if((o=t[i].interval)[0]<=e&&e<=o[1]){a=i;break}}return i>=0&&i<r&&n[i]}}(x,n.getPieceList(),n.option.selected);c.update(_,v,y,s.color.getNormalizer(),{inRange:s.color.getColorMapper(),outOfRange:l.color.getColorMapper()},w);var S=new r.Image({style:{width:v,height:y,x:f,y:p,image:c.canvas},silent:!0});this.group.add(S)},dispose:function(){}});e.exports=s},nTfm:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("3LBH"),o=n("BDGf"),s=n("21V2"),l=n("grD2"),u=n("Uur3").onIrrelevantElement,c=n("aVg8"),d=n("LGHW"),h=["itemStyle","opacity"],f=["lineStyle","opacity"];function p(e,t){return e.getVisual("opacity")||e.getModel().get(t)}function m(e,t,n){var i=e.getGraphicEl(),r=p(e,t);null!=n&&(null==r&&(r=1),r*=n),i.downplay&&i.downplay(),i.traverse(function(e){"group"!==e.type&&e.setStyle("opacity",r)})}function g(e,t){var n=p(e,t),i=e.getGraphicEl();i.highlight&&i.highlight(),i.traverse(function(e){"group"!==e.type&&e.setStyle("opacity",n)})}var v=i.extendChartView({type:"graph",init:function(e,t){var n=new a,i=new o,r=this.group;this._controller=new s(t.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},render:function(e,t,n){var i=e.coordinateSystem;this._model=e,this._nodeScaleRatio=e.get("nodeScaleRatio");var r=this._symbolDraw,a=this._lineDraw,o=this.group;if("view"===i.type){var s={position:i.position,scale:i.scale};this._firstRender?o.attr(s):c.updateProps(o,s,e)}d(e.getGraph(),this._getNodeGlobalScale(e));var l=e.getData();r.updateData(l);var u=e.getEdgeData();a.updateData(u),this._updateNodeAndLinkScale(),this._updateController(e,t,n),clearTimeout(this._layoutTimeout);var h=e.forceLayout,f=e.get("force.layoutAnimation");h&&this._startForceLayoutIteration(h,f),l.eachItemGraphicEl(function(t,i){var r=l.getItemModel(i);t.off("drag").off("dragend");var a=l.getItemModel(i).get("draggable");a&&t.on("drag",function(){h&&(h.warmUp(),!this._layouting&&this._startForceLayoutIteration(h,f),h.setFixed(i),l.setItemLayout(i,t.position))},this).on("dragend",function(){h&&h.setUnfixed(i)},this),t.setDraggable(a&&h),t.off("mouseover",t.__focusNodeAdjacency),t.off("mouseout",t.__unfocusNodeAdjacency),r.get("focusNodeAdjacency")&&(t.on("mouseover",t.__focusNodeAdjacency=function(){n.dispatchAction({type:"focusNodeAdjacency",seriesId:e.id,dataIndex:t.dataIndex})}),t.on("mouseout",t.__unfocusNodeAdjacency=function(){n.dispatchAction({type:"unfocusNodeAdjacency",seriesId:e.id})}))},this),l.graph.eachEdge(function(t){var i=t.getGraphicEl();i.off("mouseover",i.__focusNodeAdjacency),i.off("mouseout",i.__unfocusNodeAdjacency),t.getModel().get("focusNodeAdjacency")&&(i.on("mouseover",i.__focusNodeAdjacency=function(){n.dispatchAction({type:"focusNodeAdjacency",seriesId:e.id,edgeDataIndex:t.dataIndex})}),i.on("mouseout",i.__unfocusNodeAdjacency=function(){n.dispatchAction({type:"unfocusNodeAdjacency",seriesId:e.id})}))});var p="circular"===e.get("layout")&&e.get("circular.rotateLabel"),m=l.getLayout("cx"),g=l.getLayout("cy");l.eachItemGraphicEl(function(e,t){var n=e.getSymbolPath();if(p){var i=l.getItemLayout(t),r=Math.atan2(i[1]-g,i[0]-m);r<0&&(r=2*Math.PI+r);var a=i[0]<m;a&&(r-=Math.PI);var o=a?"left":"right";n.setStyle({textRotation:-r,textPosition:o,textOrigin:"center"}),n.hoverStyle&&(n.hoverStyle.textPosition=o)}else n.setStyle({textRotation:0})}),this._firstRender=!1},dispose:function(){this._controller&&this._controller.dispose(),this._controllerHost={}},focusNodeAdjacency:function(e,t,n,i){var a=this._model.getData().graph,o=i.dataIndex,s=i.edgeDataIndex,l=a.getNodeByIndex(o),u=a.getEdgeByIndex(s);(l||u)&&(a.eachNode(function(e){m(e,h,.1)}),a.eachEdge(function(e){m(e,f,.1)}),l&&(g(l,h),r.each(l.edges,function(e){e.dataIndex<0||(g(e,f),g(e.node1,h),g(e.node2,h))})),u&&(g(u,f),g(u.node1,h),g(u.node2,h)))},unfocusNodeAdjacency:function(e,t,n,i){var r=this._model.getData().graph;r.eachNode(function(e){m(e,h)}),r.eachEdge(function(e){m(e,f)})},_startForceLayoutIteration:function(e,t){var n=this;!function i(){e.step(function(e){n.updateLayout(n._model),(n._layouting=!e)&&(t?n._layoutTimeout=setTimeout(i,16):i())})}()},_updateController:function(e,t,n){var i=this._controller,r=this._controllerHost,a=this.group;i.setPointerChecker(function(t,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!u(t,n,e)}),"view"===e.coordinateSystem.type?(i.enable(e.get("roam")),r.zoomLimit=e.get("scaleLimit"),r.zoom=e.coordinateSystem.getZoom(),i.off("pan").off("zoom").on("pan",function(t,i){l.updateViewOnPan(r,t,i),n.dispatchAction({seriesId:e.id,type:"graphRoam",dx:t,dy:i})}).on("zoom",function(t,i,a){l.updateViewOnZoom(r,t,i,a),n.dispatchAction({seriesId:e.id,type:"graphRoam",zoom:t,originX:i,originY:a}),this._updateNodeAndLinkScale(),d(e.getGraph(),this._getNodeGlobalScale(e)),this._lineDraw.updateLayout()},this)):i.disable()},_updateNodeAndLinkScale:function(){var e=this._model,t=e.getData(),n=this._getNodeGlobalScale(e),i=[n,n];t.eachItemGraphicEl(function(e,t){e.attr("scale",i)})},_getNodeGlobalScale:function(e){var t=e.coordinateSystem;if("view"!==t.type)return 1;var n=this._nodeScaleRatio,i=t.scale,r=i&&i[0]||1;return((t.getZoom()-1)*n+1)/r},updateLayout:function(e){d(e.getGraph(),this._getNodeGlobalScale(e)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},remove:function(e,t){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()}});e.exports=v},niVK:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=n("aVg8"),a=n("vqvJ"),o=n("A1Wz"),s=i.each,l=i.indexOf,u=i.curry,c=["dataToPoint","pointToData"],d=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"];function h(e,t,n){var i=this._targetInfoList=[],r={},a=m(t,e);s(g,function(e,t){(!n||!n.include||l(n.include,t)>=0)&&e(a,i,r)})}var f=h.prototype;function p(e){return e[0]>e[1]&&e.reverse(),e}function m(e,t){return a.parseFinder(e,t,{includeMainTypes:d})}f.setOutputRanges=function(e,t){this.matchOutputRanges(e,t,function(e,t,n){if((e.coordRanges||(e.coordRanges=[])).push(t),!e.coordRange){e.coordRange=t;var i=b[e.brushType](0,n,t);e.__rangeOffset={offset:x[e.brushType](i.values,e.range,[1,1]),xyMinMax:i.xyMinMax}}})},f.matchOutputRanges=function(e,t,n){s(e,function(e){var r=this.findTargetInfo(e,t);r&&!0!==r&&i.each(r.coordSyses,function(i){var r=b[e.brushType](1,i,e.range);n(e,r.values,i,t)})},this)},f.setInputRanges=function(e,t){s(e,function(e){var n,i,r,a,o,s=this.findTargetInfo(e,t);if(e.range=e.range||[],s&&!0!==s){e.panelId=s.panelId;var l=b[e.brushType](0,s.coordSys,e.coordRange),u=e.__rangeOffset;e.range=u?x[e.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=S(n),a=S(i),o=[r[0]/a[0],r[1]/a[1]],isNaN(o[0])&&(o[0]=1),isNaN(o[1])&&(o[1]=1),o)):l.values}},this)},f.makePanelOpts=function(e,t){return i.map(this._targetInfoList,function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:t&&t(n),clipPath:o.makeRectPanelClipPath(i),isTargetByCursor:o.makeRectIsTargetByCursor(i,e,n.coordSysModel),getLinearBrushOtherExtent:o.makeLinearBrushOtherExtent(i)}})},f.controlSeries=function(e,t,n){var i=this.findTargetInfo(e,n);return!0===i||i&&l(i.coordSyses,t.coordinateSystem)>=0},f.findTargetInfo=function(e,t){for(var n=this._targetInfoList,i=m(t,e),r=0;r<n.length;r++){var a=n[r],o=e.panelId;if(o){if(a.panelId===o)return a}else for(r=0;r<v.length;r++)if(v[r](i,a))return a}return!0};var g={grid:function(e,t){var n=e.xAxisModels,r=e.yAxisModels,a=e.gridModels,o=i.createHashMap(),u={},c={};(n||r||a)&&(s(n,function(e){var t=e.axis.grid.model;o.set(t.id,t),u[t.id]=!0}),s(r,function(e){var t=e.axis.grid.model;o.set(t.id,t),c[t.id]=!0}),s(a,function(e){o.set(e.id,e),u[e.id]=!0,c[e.id]=!0}),o.each(function(e){var i=e.coordinateSystem,a=[];s(i.getCartesians(),function(e,t){(l(n,e.getAxis("x").model)>=0||l(r,e.getAxis("y").model)>=0)&&a.push(e)}),t.push({panelId:"grid--"+e.id,gridModel:e,coordSysModel:e,coordSys:a[0],coordSyses:a,getPanelRect:y.grid,xAxisDeclared:u[e.id],yAxisDeclared:c[e.id]})}))},geo:function(e,t){s(e.geoModels,function(e){var n=e.coordinateSystem;t.push({panelId:"geo--"+e.id,geoModel:e,coordSysModel:e,coordSys:n,coordSyses:[n],getPanelRect:y.geo})})}},v=[function(e,t){var n=e.xAxisModel,i=e.yAxisModel,r=e.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===t.gridModel},function(e,t){var n=e.geoModel;return n&&n===t.geoModel}],y={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var e=this.coordSys,t=e.getBoundingRect().clone();return t.applyTransform(r.getTransform(e)),t}},b={lineX:u(_,0),lineY:u(_,1),rect:function(e,t,n){var i=t[c[e]]([n[0][0],n[1][0]]),r=t[c[e]]([n[0][1],n[1][1]]),a=[p([i[0],r[0]]),p([i[1],r[1]])];return{values:a,xyMinMax:a}},polygon:function(e,t,n){var r=[[1/0,-1/0],[1/0,-1/0]];return{values:i.map(n,function(n){var i=t[c[e]](n);return r[0][0]=Math.min(r[0][0],i[0]),r[1][0]=Math.min(r[1][0],i[1]),r[0][1]=Math.max(r[0][1],i[0]),r[1][1]=Math.max(r[1][1],i[1]),i}),xyMinMax:r}}};function _(e,t,n,r){var a=n.getAxis(["x","y"][e]),o=p(i.map([0,1],function(e){return t?a.coordToData(a.toLocalCoord(r[e])):a.toGlobalCoord(a.dataToCoord(r[e]))})),s=[];return s[e]=o,s[1-e]=[NaN,NaN],{values:o,xyMinMax:s}}var x={lineX:u(w,0),lineY:u(w,1),rect:function(e,t,n){return[[e[0][0]-n[0]*t[0][0],e[0][1]-n[0]*t[0][1]],[e[1][0]-n[1]*t[1][0],e[1][1]-n[1]*t[1][1]]]},polygon:function(e,t,n){return i.map(e,function(e,i){return[e[0]-n[0]*t[i][0],e[1]-n[1]*t[i][1]]})}};function w(e,t,n,i){return[t[0]-i[e]*n[0],t[1]-i[e]*n[1]]}function S(e){return e?[e[0][1]-e[0][0],e[1][1]-e[1][0]]:[NaN,NaN]}var C=h;e.exports=C},nmRA:function(e,t,n){var i=n("/MtV"),r=n("GKMz");e.exports=function(e,t){r.each(t,function(t){t.update="updateView",i.registerAction(t,function(n,i){var r={};return i.eachComponent({mainType:"series",subType:e,query:n},function(e){e[t.method]&&e[t.method](n.name,n.dataIndex);var i=e.getData();i.each(function(t){var n=i.getName(t);r[n]=e.isSelected(n)||!1})}),{name:n.name,selected:r}})})}},nwvr:function(e,t,n){var i=n("YR6M"),r=n("Mf6k"),a=n("GKMz"),o=n("uxQp").encodeHTML,s=i.extend({type:"series.radar",dependencies:["radar"],init:function(e){s.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},getInitialData:function(e,t){return r(this,{generateCoord:"indicator_",generateCoordCount:1/0})},formatTooltip:function(e){var t=this.getData(),n=this.coordinateSystem.getIndicatorAxes(),i=this.getData().getName(e);return o(""===i?this.name:i)+"<br/>"+a.map(n,function(n,i){var r=t.get(t.mapDimension(n.dim),e);return o(n.name+" : "+r)}).join("<br />")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}}),l=s;e.exports=l},nxtP:function(e,t,n){n("KJ1c").__DEV__;var i=n("YR6M"),r=n("M7eM"),a=n("GKMz"),o=a.concatArray,s=a.mergeAll,l=a.map,u=n("uxQp").encodeHTML,c=(n("i+pt"),"undefined"==typeof Uint32Array?Array:Uint32Array),d="undefined"==typeof Float64Array?Array:Float64Array;function h(e){var t=e.data;t&&t[0]&&t[0][0]&&t[0][0].coord&&(e.data=l(t,function(e){var t={coords:[e[0].coord,e[1].coord]};return e[0].name&&(t.fromName=e[0].name),e[1].name&&(t.toName=e[1].name),s([t,e[0],e[1]])}))}var f=i.extend({type:"series.lines",dependencies:["grid","polar"],visualColorAccessPath:"lineStyle.color",init:function(e){e.data=e.data||[],h(e);var t=this._processFlatCoordsArray(e.data);this._flatCoords=t.flatCoords,this._flatCoordsOffset=t.flatCoordsOffset,t.flatCoords&&(e.data=new Float32Array(t.count)),f.superApply(this,"init",arguments)},mergeOption:function(e){if(e.data=e.data||[],h(e),e.data){var t=this._processFlatCoordsArray(e.data);this._flatCoords=t.flatCoords,this._flatCoordsOffset=t.flatCoordsOffset,t.flatCoords&&(e.data=new Float32Array(t.count))}f.superApply(this,"mergeOption",arguments)},appendData:function(e){var t=this._processFlatCoordsArray(e.data);t.flatCoords&&(this._flatCoords?(this._flatCoords=o(this._flatCoords,t.flatCoords),this._flatCoordsOffset=o(this._flatCoordsOffset,t.flatCoordsOffset)):(this._flatCoords=t.flatCoords,this._flatCoordsOffset=t.flatCoordsOffset),e.data=new Float32Array(t.count)),this.getRawData().appendData(e.data)},_getCoordsFromItemModel:function(e){var t=this.getData().getItemModel(e);return t.option instanceof Array?t.option:t.getShallow("coords")},getLineCoordsCount:function(e){return this._flatCoordsOffset?this._flatCoordsOffset[2*e+1]:this._getCoordsFromItemModel(e).length},getLineCoords:function(e,t){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*e],i=this._flatCoordsOffset[2*e+1],r=0;r<i;r++)t[r]=t[r]||[],t[r][0]=this._flatCoords[n+2*r],t[r][1]=this._flatCoords[n+2*r+1];return i}var a=this._getCoordsFromItemModel(e);for(r=0;r<a.length;r++)t[r]=t[r]||[],t[r][0]=a[r][0],t[r][1]=a[r][1];return a.length},_processFlatCoordsArray:function(e){var t=0;if(this._flatCoords&&(t=this._flatCoords.length),"number"==typeof e[0]){for(var n=e.length,i=new c(n),r=new d(n),a=0,o=0,s=0,l=0;l<n;){s++;var u=e[l++];i[o++]=a+t,i[o++]=u;for(var h=0;h<u;h++){var f=e[l++],p=e[l++];r[a++]=f,r[a++]=p}}return{flatCoordsOffset:new Uint32Array(i.buffer,0,o),flatCoords:r,count:s}}return{flatCoordsOffset:null,flatCoords:null,count:e.length}},getInitialData:function(e,t){var n=new r(["value"],this);return n.hasItemOption=!1,n.initData(e.data,[],function(e,t,i,r){if(e instanceof Array)return NaN;n.hasItemOption=!0;var a=e.value;return null!=a?a instanceof Array?a[r]:a:void 0}),n},formatTooltip:function(e){var t=this.getData().getItemModel(e),n=t.get("name");if(n)return n;var i=t.get("fromName"),r=t.get("toName"),a=[];return null!=i&&a.push(i),null!=r&&a.push(r),u(a.join(" > "))},preventIncremental:function(){return!!this.get("effect.show")},getProgressive:function(){var e=this.option.progressive;return null==e?this.option.large?1e4:this.get("progressive"):e},getProgressiveThreshold:function(){var e=this.option.progressiveThreshold;return null==e?this.option.large?2e4:this.get("progressiveThreshold"):e},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,label:{show:!1,position:"end"},lineStyle:{opacity:.5}}}),p=f;e.exports=p},nzRa:function(e,t,n){"use strict";var i=n("FITv"),r=n("AKd3"),a=n("C02x"),o=n("rKE2"),s=n("s0K6");i(i.P+i.R,"Promise",{finally:function(e){var t=o(this,r.Promise||a.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then(function(){return n})}:e,n?function(n){return s(t,e()).then(function(){throw n})}:e)}})},o4vF:function(e,t,n){var i=n("GKMz"),r=n("vqvJ");e.exports=function(e){!function(e){if(!e.parallel){var t=!1;i.each(e.series,function(e){e&&"parallel"===e.type&&(t=!0)}),t&&(e.parallel=[{}])}}(e),function(e){var t=r.normalizeToArray(e.parallelAxis);i.each(t,function(t){if(i.isObject(t)){var n=t.parallelIndex||0,a=r.normalizeToArray(e.parallel)[n];a&&a.parallelAxisDefault&&i.merge(t,a.parallelAxisDefault,!1)}})}(e)}},oDHT:function(e,t,n){var i=n("RaST"),r=1e-8;function a(e,t){return Math.abs(e-t)<r}t.contain=function(e,t,n){var r=0,o=e[0];if(!o)return!1;for(var s=1;s<e.length;s++){var l=e[s];r+=i(o[0],o[1],l[0],l[1],t,n),o=l}var u=e[0];return a(o[0],u[0])&&a(o[1],u[1])||(r+=i(o[0],o[1],u[0],u[1],t,n)),0!==r}},"oHK+":function(e,t,n){var i=n("Mf6k"),r=n("GKMz"),a=n("aSSy").getDimensionTypeByAxis,o={_baseAxisDim:null,getInitialData:function(e,t){var n,o,s=t.getComponent("xAxis",this.get("xAxisIndex")),l=t.getComponent("yAxis",this.get("yAxisIndex")),u=s.get("type"),c=l.get("type");"category"===u?(e.layout="horizontal",n=s.getOrdinalMeta(),o=!0):"category"===c?(e.layout="vertical",n=l.getOrdinalMeta(),o=!0):e.layout=e.layout||"horizontal";var d=["x","y"],h="horizontal"===e.layout?0:1,f=this._baseAxisDim=d[h],p=d[1-h],m=[s,l],g=m[h].get("type"),v=m[1-h].get("type"),y=e.data;if(y&&o){var b=[];r.each(y,function(e,t){var n;e.value&&r.isArray(e.value)?(n=e.value.slice(),e.value.unshift(t)):r.isArray(e)?(n=e.slice(),e.unshift(t)):n=e,b.push(n)}),e.data=b}var _=this.defaultValueDimensions;return i(this,{coordDimensions:[{name:f,type:a(g),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:p,type:a(v),dimsDef:_.slice()}],dimensionsCount:_.length+1})},getBaseAxis:function(){var e=this._baseAxisDim;return this.ecModel.getComponent(e+"Axis",this.get(e+"AxisIndex")).axis}};t.seriesModelMixin=o},oRvx:function(e,t,n){var i=n("GKMz"),r=n("6/6c"),a=n("WtQt"),o=n("8jLM"),s=r.extend({type:"cartesian2dAxis",axis:null,init:function(){s.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){s.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){s.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});function l(e,t){return t.type||(t.data?"category":"value")}i.merge(s.prototype,o);var u={offset:0};a("x",s,l,u),a("y",s,l,u);var c=s;e.exports=c},oUhq:function(e,t,n){var i=n("mhmp").extend({type:"timeline"});e.exports=i},ofeI:function(e,t,n){var i=n("GKMz"),r=n("T+0u"),a=n("8cjF"),o=n("RBTo");function s(e){for(var t in e=e||{},a.call(this,e),e)e.hasOwnProperty(t)&&"style"!==t&&(this[t]=e[t]);this.style=new r(e.style,this),this._rect=null,this.__clipPaths=[]}s.prototype={constructor:s,type:"displayable",__dirty:!0,invisible:!1,z:0,z2:0,zlevel:0,draggable:!1,dragging:!1,silent:!1,culling:!1,cursor:"pointer",rectHover:!1,progressive:!1,incremental:!1,inplace:!1,beforeBrush:function(e){},afterBrush:function(e){},brush:function(e,t){},getBoundingRect:function(){},contain:function(e,t){return this.rectContain(e,t)},traverse:function(e,t){e.call(t,this)},rectContain:function(e,t){var n=this.transformCoordToLocal(e,t);return this.getBoundingRect().contain(n[0],n[1])},dirty:function(){this.__dirty=!0,this._rect=null,this.__zr&&this.__zr.refresh()},animateStyle:function(e){return this.animate("style",e)},attrKV:function(e,t){"style"!==e?a.prototype.attrKV.call(this,e,t):this.style.set(t)},setStyle:function(e,t){return this.style.set(e,t),this.dirty(!1),this},useStyle:function(e){return this.style=new r(e,this),this.dirty(!1),this}},i.inherits(s,a),i.mixin(s,o);var l=s;e.exports=l},ol5q:function(e,t,n){n("Ve6w"),n("QPg4")},ostD:function(e,t,n){var i=n("GKMz"),r=n("l8Rx"),a=function(e,t,n,i,a){this.x=null==e?.5:e,this.y=null==t?.5:t,this.r=null==n?.5:n,this.type="radial",this.global=a||!1,r.call(this,i)};a.prototype={constructor:a},i.inherits(a,r);var o=a;e.exports=o},owVC:function(e,t,n){var i=n("GKMz");function r(e,t){return t=t||[0,0],i.map(["x","y"],function(n,i){var r=this.getAxis(n),a=t[i],o=e[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(a-o)-r.dataToCoord(a+o))},this)}e.exports=function(e){var t=e.grid.getRect();return{coordSys:{type:"cartesian2d",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(t){return e.dataToPoint(t)},size:i.bind(r,e)}}}},owiR:function(e,t,n){n("/MtV").registerAction({type:"dragNode",event:"dragNode",update:"update"},function(e,t){t.eachComponent({mainType:"series",subType:"sankey",query:e},function(t){t.setNodePosition(e.dataIndex,[e.localX,e.localY])})})},oxQp:function(e,t,n){var i=n("YepE").quadraticProjectPoint;t.containStroke=function(e,t,n,r,a,o,s,l,u){if(0===s)return!1;var c=s;return!(u>t+c&&u>r+c&&u>o+c||u<t-c&&u<r-c&&u<o-c||l>e+c&&l>n+c&&l>a+c||l<e-c&&l<n-c&&l<a-c)&&i(e,t,n,r,a,o,l,u,null)<=c/2}},pH91:function(e,t,n){var i=n("z1q5").extend({type:"dataZoom.slider",layoutMode:"box",defaultOption:{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#2f4554",width:.5,opacity:.3},areaStyle:{color:"rgba(47,69,84,0.3)",opacity:.3}},borderColor:"#ddd",fillerColor:"rgba(167,183,204,0.4)",handleIcon:"M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",handleSize:"100%",handleStyle:{color:"#a7b7cc"},labelPrecision:null,labelFormatter:null,showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#333"}}});e.exports=i},pQJX:function(e,t,n){var i=n("Scpa");e.exports=function(e,t,n){return void 0===n?i(e,t,!1):i(e,n,!1!==t)}},pfwu:function(e,t,n){var i=n("GKMz"),r=i.createHashMap,a=i.each;function o(e){a(e,function(t,n){var i=[],r=[NaN,NaN],a=[t.stackResultDimension,t.stackedOverDimension],o=t.data,s=t.isStackedByIndex,l=o.map(a,function(a,l,u){var c,d,h=o.get(t.stackedDimension,u);if(isNaN(h))return r;s?d=o.getRawIndex(u):c=o.get(t.stackedByDimension,u);for(var f=NaN,p=n-1;p>=0;p--){var m=e[p];if(s||(d=m.data.rawIndexOf(m.stackedByDimension,c)),d>=0){var g=m.data.getByRawIndex(m.stackResultDimension,d);if(h>=0&&g>0||h<=0&&g<0){h+=g,f=g;break}}}return i[0]=h,i[1]=f,i});o.hostModel.setData(l),t.data=l})}e.exports=function(e){var t=r();e.eachSeries(function(e){var n=e.get("stack");if(n){var i=t.get(n)||t.set(n,[]),r=e.getData(),a={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:e};if(!a.stackedDimension||!a.isStackedByIndex&&!a.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(a)}}),t.each(o)}},pgBU:function(e,t,n){var i=n("GKMz").inherits,r=n("ofeI"),a=n("OGtO");function o(e){r.call(this,e),this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.notClear=!0}o.prototype.incremental=!0,o.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.dirty(),this.notClear=!1},o.prototype.addDisplayable=function(e,t){t?this._temporaryDisplayables.push(e):this._displayables.push(e),this.dirty()},o.prototype.addDisplayables=function(e,t){t=t||!1;for(var n=0;n<e.length;n++)this.addDisplayable(e[n],t)},o.prototype.eachPendingDisplayable=function(e){for(var t=this._cursor;t<this._displayables.length;t++)e&&e(this._displayables[t]);for(t=0;t<this._temporaryDisplayables.length;t++)e&&e(this._temporaryDisplayables[t])},o.prototype.update=function(){this.updateTransform();for(var e=this._cursor;e<this._displayables.length;e++){(t=this._displayables[e]).parent=this,t.update(),t.parent=null}for(e=0;e<this._temporaryDisplayables.length;e++){var t;(t=this._temporaryDisplayables[e]).parent=this,t.update(),t.parent=null}},o.prototype.brush=function(e,t){for(var n=this._cursor;n<this._displayables.length;n++){(i=this._displayables[n]).beforeBrush&&i.beforeBrush(e),i.brush(e,n===this._cursor?null:this._displayables[n-1]),i.afterBrush&&i.afterBrush(e)}this._cursor=n;for(n=0;n<this._temporaryDisplayables.length;n++){var i;(i=this._temporaryDisplayables[n]).beforeBrush&&i.beforeBrush(e),i.brush(e,0===n?null:this._temporaryDisplayables[n-1]),i.afterBrush&&i.afterBrush(e)}this._temporaryDisplayables=[],this.notClear=!0};var s=[];o.prototype.getBoundingRect=function(){if(!this._rect){for(var e=new a(1/0,1/0,-1/0,-1/0),t=0;t<this._displayables.length;t++){var n=this._displayables[t],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(s)),e.union(i)}this._rect=e}return this._rect},o.prototype.contain=function(e,t){var n=this.transformCoordToLocal(e,t);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(e,t))return!0}return!1},i(o,r);var l=o;e.exports=l},pplb:function(e,t){var n=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},psuP:function(e,t,n){var i=n("aVg8"),r=n("luYz"),a=i.Line.prototype,o=i.BezierCurve.prototype;function s(e){return isNaN(+e.cpx1)||isNaN(+e.cpy1)}var l=i.extendShape({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(e,t){(s(t)?a:o).buildPath(e,t)},pointAt:function(e){return s(this.shape)?a.pointAt.call(this,e):o.pointAt.call(this,e)},tangentAt:function(e){var t=this.shape,n=s(t)?[t.x2-t.x1,t.y2-t.y1]:o.tangentAt.call(this,e);return r.normalize(n,n)}});e.exports=l},pwpU:function(e,t,n){var i=n("gxMf"),r=n("aVg8"),a=["textStyle","color"],o={getTextColor:function(e){var t=this.ecModel;return this.getShallow("color")||(!e&&t?t.get(a):null)},getFont:function(){return r.getFont({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},getTextRect:function(e){return i.getBoundingRect(e,this.getFont(),this.getShallow("align"),this.getShallow("verticalAlign")||this.getShallow("baseline"),this.getShallow("padding"),this.getShallow("rich"),this.getShallow("truncateText"))}};e.exports=o},q1lg:function(e,t){e.exports=function(e){e.eachSeriesByType("radar",function(e){var t=e.getData(),n=[],i=e.coordinateSystem;if(i){for(var r=i.getIndicatorAxes(),a=0;a<r.length;a++)t.each(t.mapDimension(r[a].dim),o);t.each(function(e){n[e][0]&&n[e].push(n[e][0].slice()),t.setItemLayout(e,n[e])})}function o(e,t){n[t]=n[t]||[],n[t][a]=i.dataToPoint(e,a)}})}},qCCu:function(e,t,n){"use strict";var i,r,a,o,s=n("bgFz"),l=n("C02x"),u=n("WwGG"),c=n("adiS"),d=n("FITv"),h=n("8Nvm"),f=n("7p3N"),p=n("t8DS"),m=n("k/7E"),g=n("rKE2"),v=n("FWQk").set,y=n("N69x")(),b=n("aqA6"),_=n("Gf6R"),x=n("rJT0"),w=n("s0K6"),S=l.TypeError,C=l.process,M=C&&C.versions,k=M&&M.v8||"",T=l.Promise,A="process"==c(C),I=function(){},E=r=b.f,D=!!function(){try{var e=T.resolve(1),t=(e.constructor={})[n("biYF")("species")]=function(e){e(I,I)};return(A||"function"==typeof PromiseRejectionEvent)&&e.then(I)instanceof t&&0!==k.indexOf("6.6")&&-1===x.indexOf("Chrome/66")}catch(e){}}(),O=function(e){var t;return!(!h(e)||"function"!=typeof(t=e.then))&&t},P=function(e,t){if(!e._n){e._n=!0;var n=e._c;y(function(){for(var i=e._v,r=1==e._s,a=0,o=function(t){var n,a,o,s=r?t.ok:t.fail,l=t.resolve,u=t.reject,c=t.domain;try{s?(r||(2==e._h&&N(e),e._h=1),!0===s?n=i:(c&&c.enter(),n=s(i),c&&(c.exit(),o=!0)),n===t.promise?u(S("Promise-chain cycle")):(a=O(n))?a.call(n,l,u):l(n)):u(i)}catch(e){c&&!o&&c.exit(),u(e)}};n.length>a;)o(n[a++]);e._c=[],e._n=!1,t&&!e._h&&L(e)})}},L=function(e){v.call(l,function(){var t,n,i,r=e._v,a=R(e);if(a&&(t=_(function(){A?C.emit("unhandledRejection",r,e):(n=l.onunhandledrejection)?n({promise:e,reason:r}):(i=l.console)&&i.error&&i.error("Unhandled promise rejection",r)}),e._h=A||R(e)?2:1),e._a=void 0,a&&t.e)throw t.v})},R=function(e){return 1!==e._h&&0===(e._a||e._c).length},N=function(e){v.call(l,function(){var t;A?C.emit("rejectionHandled",e):(t=l.onrejectionhandled)&&t({promise:e,reason:e._v})})},B=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),P(t,!0))},F=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw S("Promise can't be resolved itself");(t=O(e))?y(function(){var i={_w:n,_d:!1};try{t.call(e,u(F,i,1),u(B,i,1))}catch(e){B.call(i,e)}}):(n._v=e,n._s=1,P(n,!1))}catch(e){B.call({_w:n,_d:!1},e)}}};D||(T=function(e){p(this,T,"Promise","_h"),f(e),i.call(this);try{e(u(F,this,1),u(B,this,1))}catch(e){B.call(this,e)}},(i=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n("bodH")(T.prototype,{then:function(e,t){var n=E(g(this,T));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=A?C.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&P(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),a=function(){var e=new i;this.promise=e,this.resolve=u(F,e,1),this.reject=u(B,e,1)},b.f=E=function(e){return e===T||e===o?new a(e):r(e)}),d(d.G+d.W+d.F*!D,{Promise:T}),n("XAI7")(T,"Promise"),n("4BpY")("Promise"),o=n("AKd3").Promise,d(d.S+d.F*!D,"Promise",{reject:function(e){var t=E(this);return(0,t.reject)(e),t.promise}}),d(d.S+d.F*(s||!D),"Promise",{resolve:function(e){return w(s&&this===o?T:this,e)}}),d(d.S+d.F*!(D&&n("75+0")(function(e){T.all(e).catch(I)})),"Promise",{all:function(e){var t=this,n=E(t),i=n.resolve,r=n.reject,a=_(function(){var n=[],a=0,o=1;m(e,!1,function(e){var s=a++,l=!1;n.push(void 0),o++,t.resolve(e).then(function(e){l||(l=!0,n[s]=e,--o||i(n))},r)}),--o||i(n)});return a.e&&r(a.v),n.promise},race:function(e){var t=this,n=E(t),i=n.reject,r=_(function(){m(e,!1,function(e){t.resolve(e).then(n.resolve,i)})});return r.e&&i(r.v),n.promise}})},qIgY:function(e,t,n){var i=n("GKMz");e.exports=function(e){for(var t=0;t<e.length;t++)e[t][1]||(e[t][1]=e[t][0]);return function(t,n,r){for(var a={},o=0;o<e.length;o++){var s=e[o][1];if(!(n&&i.indexOf(n,s)>=0||r&&i.indexOf(r,s)<0)){var l=t.getShallow(s);null!=l&&(a[e[o][0]]=l)}}return a}}},qQfv:function(e,t,n){n("IsPG"),n("yrDz"),e.exports=n("AKd3").Array.from},qQsW:function(e,t,n){var i=n("GKMz"),r=n("OGtO"),a=n("g0yf"),o=n("aVg8"),s=n("Q/cl"),l=n("oUhq"),u=n("/KmJ"),c=n("ktMJ").createSymbol,d=n("3m5Y"),h=n("abCA"),f=n("uxQp").encodeHTML,p=i.bind,m=i.each,g=Math.PI,v=l.extend({type:"timeline.slider",init:function(e,t){this.api=t,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(e,t,n,i){if(this.model=e,this.api=n,this.ecModel=t,this.group.removeAll(),e.get("show",!0)){var r=this._layout(e,n),a=this._createGroup("mainGroup"),o=this._createGroup("labelGroup"),s=this._axis=this._createAxis(r,e);e.formatTooltip=function(e){return f(s.scale.getLabel(e))},m(["AxisLine","AxisTick","Control","CurrentPointer"],function(t){this["_render"+t](r,a,s,e)},this),this._renderAxisLabel(r,o,s,e),this._position(r,e)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(e,t){var n=e.get("label.position"),i=e.get("orient"),r=function(e,t){return s.getLayoutRect(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()},e.get("padding"))}(e,t);null==n||"auto"===n?n="horizontal"===i?r.y+r.height/2<t.getHeight()/2?"-":"+":r.x+r.width/2<t.getWidth()/2?"+":"-":isNaN(n)&&(n={horizontal:{top:"-",bottom:"+"},vertical:{left:"-",right:"+"}}[i][n]);var a,o,l,u,c={horizontal:"center",vertical:n>=0||"+"===n?"left":"right"},d={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},h={horizontal:0,vertical:g/2},f="vertical"===i?r.height:r.width,p=e.getModel("controlStyle"),m=p.get("show",!0),v=m?p.get("itemSize"):0,y=m?p.get("itemGap"):0,b=v+y,_=e.get("label.rotate")||0;_=_*g/180;var x=p.get("position",!0),w=m&&p.get("showPlayBtn",!0),S=m&&p.get("showPrevBtn",!0),C=m&&p.get("showNextBtn",!0),M=0,k=f;return"left"===x||"bottom"===x?(w&&(a=[0,0],M+=b),S&&(o=[M,0],M+=b),C&&(l=[k-v,0],k-=b)):(w&&(a=[k-v,0],k-=b),S&&(o=[0,0],M+=b),C&&(l=[k-v,0],k-=b)),u=[M,k],e.get("inverse")&&u.reverse(),{viewRect:r,mainLength:f,orient:i,rotation:h[i],labelRotation:_,labelPosOpt:n,labelAlign:e.get("label.align")||c[i],labelBaseline:e.get("label.verticalAlign")||e.get("label.baseline")||d[i],playPosition:a,prevBtnPosition:o,nextBtnPosition:l,axisExtent:u,controlSize:v,controlGap:y}},_position:function(e,t){var n=this._mainGroup,i=this._labelGroup,r=e.viewRect;if("vertical"===e.orient){var o=a.create(),s=r.x,l=r.y+r.height;a.translate(o,o,[-s,-l]),a.rotate(o,o,-g/2),a.translate(o,o,[s,l]),(r=r.clone()).applyTransform(o)}var u=y(r),c=y(n.getBoundingRect()),d=y(i.getBoundingRect()),h=n.position,f=i.position;f[0]=h[0]=u[0][0];var p,m=e.labelPosOpt;isNaN(m)?(b(h,c,u,1,p="+"===m?0:1),b(f,d,u,1,1-p)):(b(h,c,u,1,p=m>=0?0:1),f[1]=h[1]+m);function v(e){var t=e.position;e.origin=[u[0][0]-t[0],u[1][0]-t[1]]}function y(e){return[[e.x,e.x+e.width],[e.y,e.y+e.height]]}function b(e,t,n,i,r){e[i]+=n[i][r]-t[i][r]}n.attr("position",h),i.attr("position",f),n.rotation=i.rotation=e.rotation,v(n),v(i)},_createAxis:function(e,t){var n=t.getData(),i=t.get("axisType"),r=d.createScaleByModel(t,i);r.getTicks=function(){return n.mapArray(["value"],function(e){return e})};var a=n.getDataExtent("value");r.setExtent(a[0],a[1]),r.niceTicks();var o=new u("value",r,e.axisExtent,i);return o.model=t,o},_createGroup:function(e){var t=this["_"+e]=new o.Group;return this.group.add(t),t},_renderAxisLine:function(e,t,n,r){var a=n.getExtent();r.get("lineStyle.show")&&t.add(new o.Line({shape:{x1:a[0],y1:0,x2:a[1],y2:0},style:i.extend({lineCap:"round"},r.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(e,t,n,i){var r=i.getData(),a=n.scale.getTicks();m(a,function(e){var a=n.dataToCoord(e),s=r.getItemModel(e),l=s.getModel("itemStyle"),u=s.getModel("emphasis.itemStyle"),c={position:[a,0],onclick:p(this._changeTimeline,this,e)},d=y(s,l,t,c);o.setHoverStyle(d,u.getItemStyle()),s.get("tooltip")?(d.dataIndex=e,d.dataModel=i):d.dataIndex=d.dataModel=null},this)},_renderAxisLabel:function(e,t,n,i){if(n.getLabelModel().get("show")){var r=i.getData(),a=n.getViewLabels();m(a,function(i){var a=i.tickValue,s=r.getItemModel(a),l=s.getModel("label"),u=s.getModel("emphasis.label"),c=n.dataToCoord(i.tickValue),d=new o.Text({position:[c,0],rotation:e.labelRotation-e.rotation,onclick:p(this._changeTimeline,this,a),silent:!1});o.setTextStyle(d.style,l,{text:i.formattedLabel,textAlign:e.labelAlign,textVerticalAlign:e.labelBaseline}),t.add(d),o.setHoverStyle(d,o.setTextStyle({},u))},this)}},_renderControl:function(e,t,n,a){var s=e.controlSize,l=e.rotation,u=a.getModel("controlStyle").getItemStyle(),c=a.getModel("emphasis.controlStyle").getItemStyle(),d=[0,-s/2,s,s],h=a.getPlayState(),f=a.get("inverse",!0);function m(e,n,h,f){if(e){var p=function(e,t,n,a){return o.makePath(e.get(t).replace(/^path:\/\//,""),i.clone(a||{}),new r(n[0],n[1],n[2],n[3]),"center")}(a,n,d,{position:e,origin:[s/2,0],rotation:f?-l:0,rectHover:!0,style:u,onclick:h});t.add(p),o.setHoverStyle(p,c)}}m(e.nextBtnPosition,"controlStyle.nextIcon",p(this._changeTimeline,this,f?"-":"+")),m(e.prevBtnPosition,"controlStyle.prevIcon",p(this._changeTimeline,this,f?"+":"-")),m(e.playPosition,"controlStyle."+(h?"stopIcon":"playIcon"),p(this._handlePlayClick,this,!h),!0)},_renderCurrentPointer:function(e,t,n,i){var r=i.getData(),a=i.getCurrentIndex(),o=r.getItemModel(a).getModel("checkpointStyle"),s=this,l={onCreate:function(e){e.draggable=!0,e.drift=p(s._handlePointerDrag,s),e.ondragend=p(s._handlePointerDragend,s),b(e,a,n,i,!0)},onUpdate:function(e){b(e,a,n,i)}};this._currentPointer=y(o,o,this._mainGroup,{},this._currentPointer,l)},_handlePlayClick:function(e){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:e,from:this.uid})},_handlePointerDrag:function(e,t,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},_handlePointerDragend:function(e){this._pointerChangeTimeline([e.offsetX,e.offsetY],!0)},_pointerChangeTimeline:function(e,t){var n=this._toAxisCoord(e)[0],i=this._axis,r=h.asc(i.getExtent().slice());n>r[1]&&(n=r[1]),n<r[0]&&(n=r[0]),this._currentPointer.position[0]=n,this._currentPointer.dirty();var a=this._findNearestTick(n),o=this.model;(t||a!==o.getCurrentIndex()&&o.get("realtime"))&&this._changeTimeline(a)},_doPlayStop:function(){this._clearTimer(),this.model.getPlayState()&&(this._timer=setTimeout(p(function(){var e=this.model;this._changeTimeline(e.getCurrentIndex()+(e.get("rewind",!0)?-1:1))},this),this.model.get("playInterval")))},_toAxisCoord:function(e){var t=this._mainGroup.getLocalTransform();return o.applyTransform(e,t,!0)},_findNearestTick:function(e){var t,n=this.model.getData(),i=1/0,r=this._axis;return n.each(["value"],function(n,a){var o=r.dataToCoord(n),s=Math.abs(o-e);s<i&&(i=s,t=a)}),t},_clearTimer:function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},_changeTimeline:function(e){var t=this.model.getCurrentIndex();"+"===e?e=t+1:"-"===e&&(e=t-1),this.api.dispatchAction({type:"timelineChange",currentIndex:e,from:this.uid})}});function y(e,t,n,r,a,o){var s=t.get("color");if(a)a.setColor(s),n.add(a),o&&o.onUpdate(a);else{var l=e.get("symbol");(a=c(l,-1,-1,2,2,s)).setStyle("strokeNoScale",!0),n.add(a),o&&o.onCreate(a)}var u=t.getItemStyle(["color","symbol","symbolSize"]);a.setStyle(u),r=i.merge({rectHover:!0,z2:100},r,!0);var d=e.get("symbolSize");(d=d instanceof Array?d.slice():[+d,+d])[0]/=2,d[1]/=2,r.scale=d;var f=e.get("symbolOffset");if(f){var p=r.position=r.position||[0,0];p[0]+=h.parsePercent(f[0],d[0]),p[1]+=h.parsePercent(f[1],d[1])}var m=e.get("symbolRotate");return r.rotation=(m||0)*Math.PI/180||0,a.attr(r),a.updateTransform(),a}function b(e,t,n,i,r){if(!e.dragging){var a=i.getModel("checkpointStyle"),o=n.dataToCoord(i.getData().get(["value"],t));r||!a.get("animation",!0)?e.attr({position:[o,0]}):(e.stopAnimation(!0),e.animateTo({position:[o,0]},a.get("animationDuration",!0),a.get("animationEasing",!0)))}}e.exports=v},qYjU:function(e,t,n){var i=n("/MtV"),r=n("aVg8"),a=n("Q/cl").getLayoutRect;i.extendComponentModel({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),i.extendComponentView({type:"title",render:function(e,t,n){if(this.group.removeAll(),e.get("show")){var i=this.group,o=e.getModel("textStyle"),s=e.getModel("subtextStyle"),l=e.get("textAlign"),u=e.get("textBaseline"),c=new r.Text({style:r.setTextStyle({},o,{text:e.get("text"),textFill:o.getTextColor()},{disableBox:!0}),z2:10}),d=c.getBoundingRect(),h=e.get("subtext"),f=new r.Text({style:r.setTextStyle({},s,{text:h,textFill:s.getTextColor(),y:d.height+e.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),p=e.get("link"),m=e.get("sublink");c.silent=!p,f.silent=!m,p&&c.on("click",function(){window.open(p,"_"+e.get("target"))}),m&&f.on("click",function(){window.open(m,"_"+e.get("subtarget"))}),i.add(c),h&&i.add(f);var g=i.getBoundingRect(),v=e.getBoxLayoutParams();v.width=g.width,v.height=g.height;var y=a(v,{width:n.getWidth(),height:n.getHeight()},e.get("padding"));l||("middle"===(l=e.get("left")||e.get("right"))&&(l="center"),"right"===l?y.x+=y.width:"center"===l&&(y.x+=y.width/2)),u||("center"===(u=e.get("top")||e.get("bottom"))&&(u="middle"),"bottom"===u?y.y+=y.height:"middle"===u&&(y.y+=y.height/2),u=u||"top"),i.attr("position",[y.x,y.y]);var b={textAlign:l,textVerticalAlign:u};c.setStyle(b),f.setStyle(b),g=i.getBoundingRect();var _=y.margin,x=e.getItemStyle(["color","opacity"]);x.fill=e.get("backgroundColor");var w=new r.Rect({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:e.get("borderRadius")},style:x,silent:!0});r.subPixelOptimizeRect(w),i.add(w)}}})},qZuq:function(e,t,n){var i=n("Q9e6"),r=n("rpne"),a=i.extend({type:"sector",shape:{cx:0,cy:0,r0:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},brush:r(i.prototype.brush),buildPath:function(e,t){var n=t.cx,i=t.cy,r=Math.max(t.r0||0,0),a=Math.max(t.r,0),o=t.startAngle,s=t.endAngle,l=t.clockwise,u=Math.cos(o),c=Math.sin(o);e.moveTo(u*r+n,c*r+i),e.lineTo(u*a+n,c*a+i),e.arc(n,i,a,o,s,!l),e.lineTo(Math.cos(s)*r+n,Math.sin(s)*r+i),0!==r&&e.arc(n,i,r,s,o,l),e.closePath()}});e.exports=a},qi2g:function(e,t,n){var i=n("GKMz"),r=n("OGtO"),a=n("abCA"),o=a.parsePercent,s=a.MAX_SAFE_INTEGER,l=n("Q/cl"),u=n("HT+0"),c=Math.max,d=Math.min,h=i.retrieve,f=i.each,p=["itemStyle","borderWidth"],m=["itemStyle","gapWidth"],g=["upperLabel","show"],v=["upperLabel","height"],y={seriesType:"treemap",reset:function(e,t,n,a){var g=n.getWidth(),v=n.getHeight(),y=e.option,w=l.getLayoutRect(e.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),S=y.size||[],C=o(h(w.width,S[0]),g),M=o(h(w.height,S[1]),v),k=a&&a.type,T=u.retrieveTargetInfo(a,["treemapZoomToNode","treemapRootToNode"],e),A="treemapRender"===k||"treemapMove"===k?a.rootRect:null,I=e.getViewRoot(),E=u.getPathToRoot(I);if("treemapMove"!==k){var D="treemapZoomToNode"===k?function(e,t,n,i,r){var a,o=(t||{}).node,l=[i,r];if(!o||o===n)return l;var u=i*r,c=u*e.option.zoomToNodeRatio;for(;a=o.parentNode;){for(var d=0,h=a.children,f=0,m=h.length;f<m;f++)d+=h[f].getValue();var g=o.getValue();if(0===g)return l;c*=d/g;var v=a.getModel(),y=v.get(p),b=Math.max(y,x(v));(c+=4*y*y+(3*y+b)*Math.pow(c,.5))>s&&(c=s),o=a}c<u&&(c=u);var _=Math.pow(c/u,.5);return[i*_,r*_]}(e,T,I,C,M):A?[A.width,A.height]:[C,M],O=y.sort;O&&"asc"!==O&&"desc"!==O&&(O="desc");var P={squareRatio:y.squareRatio,sort:O,leafDepth:y.leafDepth};I.hostTree.clearLayouts();var L={x:0,y:0,width:D[0],height:D[1],area:D[0]*D[1]};I.setLayout(L),function e(t,n,r,a){var o;var s;if(t.isRemoved())return;var l=t.getLayout();o=l.width;s=l.height;var u=t.getModel();var h=u.get(p);var g=u.get(m)/2;var v=x(u);var y=Math.max(h,v);var w=h-g;var S=y-g;var u=t.getModel();t.setLayout({borderWidth:h,upperHeight:y,upperLabelHeight:v},!0);o=c(o-2*w,0);s=c(s-w-S,0);var C=o*s;var M=function(e,t,n,r,a,o){var s=e.children||[],l=r.sort;"asc"!==l&&"desc"!==l&&(l=null);var u=null!=r.leafDepth&&r.leafDepth<=o;if(a&&!u)return e.viewChildren=[];!function(e,t){t&&e.sort(function(e,n){var i="asc"===t?e.getValue()-n.getValue():n.getValue()-e.getValue();return 0===i?"asc"===t?e.dataIndex-n.dataIndex:n.dataIndex-e.dataIndex:i})}(s=i.filter(s,function(e){return!e.isRemoved()}),l);var c=function(e,t,n){for(var i=0,r=0,a=t.length;r<a;r++)i+=t[r].getValue();var o=e.get("visualDimension");if(t&&t.length)if("value"===o&&n)s=[t[t.length-1].getValue(),t[0].getValue()],"asc"===n&&s.reverse();else{var s=[1/0,-1/0];f(t,function(e){var t=e.getValue(o);t<s[0]&&(s[0]=t),t>s[1]&&(s[1]=t)})}else s=[NaN,NaN];return{sum:i,dataExtent:s}}(t,s,l);if(0===c.sum)return e.viewChildren=[];if(c.sum=function(e,t,n,i,r){if(!i)return n;for(var a=e.get("visibleMin"),o=r.length,s=o,l=o-1;l>=0;l--){var u=r["asc"===i?o-l-1:l].getValue();u/n*t<a&&(s=l,n-=u)}return"asc"===i?r.splice(0,o-s):r.splice(s,o-s),n}(t,n,c.sum,l,s),0===c.sum)return e.viewChildren=[];for(var d=0,h=s.length;d<h;d++){var p=s[d].getValue()/c.sum*n;s[d].setLayout({area:p})}u&&(s.length&&e.setLayout({isLeafRoot:!0},!0),s.length=0);return e.viewChildren=s,e.setLayout({dataExtent:c.dataExtent},!0),s}(t,u,C,n,r,a);if(!M.length)return;var k={x:w,y:S,width:o,height:s};var T=d(o,s);var A=1/0;var I=[];I.area=0;for(var E=0,D=M.length;E<D;){var O=M[E];I.push(O),I.area+=O.getLayout().area;var P=b(I,T,n.squareRatio);P<=A?(E++,A=P):(I.area-=I.pop().getLayout().area,_(I,T,k,g,!1),T=d(k.width,k.height),I.length=I.area=0,A=1/0)}I.length&&_(I,T,k,g,!0);if(!r){var L=u.get("childrenVisibleMin");null!=L&&C<L&&(r=!0)}for(var E=0,D=M.length;E<D;E++)e(M[E],n,r,a+1)}(I,P,!1,0);L=I.getLayout();f(E,function(e,t){var n=(E[t+1]||I).getValue();e.setLayout(i.extend({dataExtent:[n,n],borderWidth:0,upperHeight:0},L))})}var R=e.getData().tree.root;R.setLayout(function(e,t,n){if(t)return{x:t.x,y:t.y};var i={x:0,y:0};if(!n)return i;var r=n.node,a=r.getLayout();if(!a)return i;var o=[a.width/2,a.height/2],s=r;for(;s;){var l=s.getLayout();o[0]+=l.x,o[1]+=l.y,s=s.parentNode}return{x:e.width/2-o[0],y:e.height/2-o[1]}}(w,A,T),!0),e.setLayoutInfo(w),function e(t,n,i,a,o){var s=t.getLayout();var l=i[o];var u=l&&l===t;if(l&&!u||o===i.length&&t!==a)return;t.setLayout({isInView:!0,invisible:!u&&!n.intersect(s),isAboveViewRoot:u},!0);var c=new r(n.x-s.x,n.y-s.y,n.width,n.height);f(t.viewChildren||[],function(t){e(t,c,i,a,o+1)})}(R,new r(-w.x,-w.y,g,v),E,I,0)}};function b(e,t,n){for(var i,r=0,a=1/0,o=0,s=e.length;o<s;o++)(i=e[o].getLayout().area)&&(i<a&&(a=i),i>r&&(r=i));var l=e.area*e.area,u=t*t*n;return l?c(u*r/l,l/(u*a)):1/0}function _(e,t,n,i,r){var a=t===n.width?0:1,o=1-a,s=["x","y"],l=["width","height"],u=n[s[a]],h=t?e.area/t:0;(r||h>n[l[o]])&&(h=n[l[o]]);for(var f=0,p=e.length;f<p;f++){var m=e[f],g={},v=h?m.getLayout().area/h:0,y=g[l[o]]=c(h-2*i,0),b=n[s[a]]+n[l[a]]-u,_=f===p-1||b<v?b:v,x=g[l[a]]=c(_-2*i,0);g[s[o]]=n[s[o]]+d(i,y/2),g[s[a]]=u+d(i,x/2),u+=_,m.setLayout(g,!0)}n[s[o]]+=h,n[l[o]]-=h}function x(e){return e.get(g)?e.get(v):0}e.exports=y},qpbZ:function(e,t,n){var i=n("diMn"),r=n("KSHG"),a=n("GKMz"),o=n("VFhg"),s=n("6DwN"),l=n("3mhU"),u=n("lfYz"),c=n("v854"),d=!r.canvasSupported,h={canvas:l},f={};var p=function(e,t,n){n=n||{},this.dom=t,this.id=e;var i=this,l=new s,f=n.renderer;if(d){if(!h.vml)throw new Error("You need to require 'zrender/vml/vml' to support IE8");f="vml"}else f&&h[f]||(f="canvas");var p=new h[f](t,l,n,e);this.storage=l,this.painter=p;var m=r.node||r.worker?null:new c(p.getViewportRoot());this.handler=new o(l,p,m,p.root),this.animation=new u({stage:{update:a.bind(this.flush,this)}}),this.animation.start(),this._needsRefresh;var g=l.delFromStorage,v=l.addToStorage;l.delFromStorage=function(e){g.call(l,e),e&&e.removeSelfFromZr(i)},l.addToStorage=function(e){v.call(l,e),e.addSelfToZr(i)}};p.prototype={constructor:p,getId:function(){return this.id},add:function(e){this.storage.addRoot(e),this._needsRefresh=!0},remove:function(e){this.storage.delRoot(e),this._needsRefresh=!0},configLayer:function(e,t){this.painter.configLayer&&this.painter.configLayer(e,t),this._needsRefresh=!0},setBackgroundColor:function(e){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(e),this._needsRefresh=!0},refreshImmediately:function(){this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},refresh:function(){this._needsRefresh=!0},flush:function(){var e;this._needsRefresh&&(e=!0,this.refreshImmediately()),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately()),e&&this.trigger("rendered")},addHover:function(e,t){this.painter.addHover&&(this.painter.addHover(e,t),this.refreshHover())},removeHover:function(e){this.painter.removeHover&&(this.painter.removeHover(e),this.refreshHover())},clearHover:function(){this.painter.clearHover&&(this.painter.clearHover(),this.refreshHover())},refreshHover:function(){this._needsRefreshHover=!0},refreshHoverImmediately:function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.refreshHover()},resize:function(e){e=e||{},this.painter.resize(e.width,e.height),this.handler.resize()},clearAnimation:function(){this.animation.clear()},getWidth:function(){return this.painter.getWidth()},getHeight:function(){return this.painter.getHeight()},pathToImage:function(e,t){return this.painter.pathToImage(e,t)},setCursorStyle:function(e){this.handler.setCursorStyle(e)},findHover:function(e,t){return this.handler.findHover(e,t)},on:function(e,t,n){this.handler.on(e,t,n)},off:function(e,t){this.handler.off(e,t)},trigger:function(e,t){this.handler.trigger(e,t)},clear:function(){this.storage.delRoot(),this.painter.clear()},dispose:function(){var e;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,e=this.id,delete f[e]}},t.version="4.0.4",t.init=function(e,t){var n=new p(i(),e,t);return f[n.id]=n,n},t.dispose=function(e){if(e)e.dispose();else{for(var t in f)f.hasOwnProperty(t)&&f[t].dispose();f={}}return this},t.getInstance=function(e){return f[e]},t.registerPainter=function(e,t){h[e]=t}},"qs+o":function(e,t,n){var i=n("jOR4"),r=n("802A"),a=function(e){this.name=e||"",this.cx=0,this.cy=0,this._radiusAxis=new i,this._angleAxis=new r,this._radiusAxis.polar=this._angleAxis.polar=this};a.prototype={type:"polar",axisPointerEnabled:!0,constructor:a,dimensions:["radius","angle"],model:null,containPoint:function(e){var t=this.pointToCoord(e);return this._radiusAxis.contain(t[0])&&this._angleAxis.contain(t[1])},containData:function(e){return this._radiusAxis.containData(e[0])&&this._angleAxis.containData(e[1])},getAxis:function(e){return this["_"+e+"Axis"]},getAxes:function(){return[this._radiusAxis,this._angleAxis]},getAxesByScale:function(e){var t=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===e&&t.push(n),i.scale.type===e&&t.push(i),t},getAngleAxis:function(){return this._angleAxis},getRadiusAxis:function(){return this._radiusAxis},getOtherAxis:function(e){var t=this._angleAxis;return e===t?this._radiusAxis:t},getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},getTooltipAxes:function(e){var t=null!=e&&"auto"!==e?this.getAxis(e):this.getBaseAxis();return{baseAxes:[t],otherAxes:[this.getOtherAxis(t)]}},dataToPoint:function(e,t){return this.coordToPoint([this._radiusAxis.dataToRadius(e[0],t),this._angleAxis.dataToAngle(e[1],t)])},pointToData:function(e,t){var n=this.pointToCoord(e);return[this._radiusAxis.radiusToData(n[0],t),this._angleAxis.angleToData(n[1],t)]},pointToCoord:function(e){var t=e[0]-this.cx,n=e[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),a=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);i.inverse?a=o-360:o=a+360;var s=Math.sqrt(t*t+n*n);t/=s,n/=s;for(var l=Math.atan2(-n,t)/Math.PI*180,u=l<a?1:-1;l<a||l>o;)l+=360*u;return[s,l]},coordToPoint:function(e){var t=e[0],n=e[1]/180*Math.PI;return[Math.cos(n)*t+this.cx,-Math.sin(n)*t+this.cy]}};var o=a;e.exports=o},r2gs:function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e}},r2sT:function(e,t,n){var i=n("GKMz"),r=n("3LBH"),a=n("abCA"),o=n("M7eM"),s=n("S/ih");function l(e,t,n){var i=t.coordinateSystem;e.each(function(r){var o,s=e.getItemModel(r),l=a.parsePercent(s.get("x"),n.getWidth()),u=a.parsePercent(s.get("y"),n.getHeight());if(isNaN(l)||isNaN(u)){if(t.getMarkerPosition)o=t.getMarkerPosition(e.getValues(e.dimensions,r));else if(i){var c=e.get(i.dimensions[0],r),d=e.get(i.dimensions[1],r);o=i.dataToPoint([c,d])}}else o=[l,u];isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u),e.setItemLayout(r,o)})}var u=n("eGS6").extend({type:"markPoint",updateTransform:function(e,t,n){t.eachSeries(function(e){var t=e.markPointModel;t&&(l(t.getData(),e,n),this.markerGroupMap.get(e.id).updateLayout(t))},this)},renderSeries:function(e,t,n,a){var u=e.coordinateSystem,c=e.id,d=e.getData(),h=this.markerGroupMap,f=h.get(c)||h.set(c,new r),p=function(e,t,n){var r;r=e?i.map(e&&e.dimensions,function(e){var n=t.getData().getDimensionInfo(t.getData().mapDimension(e))||{};return i.defaults({name:e},n)}):[{name:"value",type:"float"}];var a=new o(r,n),l=i.map(n.get("data"),i.curry(s.dataTransform,t));e&&(l=i.filter(l,i.curry(s.dataFilter,e)));return a.initData(l,null,e?s.dimValueGetter:function(e){return e.value}),a}(u,e,t);t.setData(p),l(t.getData(),e,a),p.each(function(e){var n=p.getItemModel(e),i=n.getShallow("symbolSize");"function"==typeof i&&(i=i(t.getRawValue(e),t.getDataParams(e))),p.setItemVisual(e,{symbolSize:i,color:n.get("itemStyle.color")||d.getVisual("color"),symbol:n.getShallow("symbol")})}),f.updateData(p),this.group.add(f.group),p.eachItemGraphicEl(function(e){e.traverse(function(e){e.dataModel=t})}),f.__keep=!0,f.group.silent=t.get("silent")||e.get("silent")}});e.exports=u},r4mD:function(e,t,n){var i=n("Q9e6"),r=n("FkVt"),a=i.extend({type:"polyline",shape:{points:null,smooth:!1,smoothConstraint:null},style:{stroke:"#000",fill:null},buildPath:function(e,t){r.buildPath(e,t,!1)}});e.exports=a},rJT0:function(e,t,n){var i=n("C02x").navigator;e.exports=i&&i.userAgent||""},rKE2:function(e,t,n){var i=n("93K8"),r=n("7p3N"),a=n("biYF")("species");e.exports=function(e,t){var n,o=i(e).constructor;return void 0===o||void 0==(n=i(o)[a])?t:r(n)}},rNYg:function(e,t,n){var i=n("GKMz"),r=["rect","polygon","keep","clear"];e.exports=function(e,t){var n=e&&e.brush;if(i.isArray(n)||(n=n?[n]:[]),n.length){var a=[];i.each(n,function(e){var t=e.hasOwnProperty("toolbox")?e.toolbox:[];t instanceof Array&&(a=a.concat(t))});var o=e&&e.toolbox;i.isArray(o)&&(o=o[0]),o||(o={feature:{}},e.toolbox=[o]);var s,l,u=o.feature||(o.feature={}),c=u.brush||(u.brush={}),d=c.type||(c.type=[]);d.push.apply(d,a),s=d,l={},i.each(s,function(e){l[e]=1}),s.length=0,i.each(l,function(e,t){s.push(t)}),t&&!d.length&&d.push.apply(d,r)}}},rSbl:function(e,t,n){var i=n("GKMz"),r=n("aVg8"),a=n("Q/cl"),o=n("XoXQ"),s=r.Group,l=["width","height"],u=["x","y"],c=o.extend({type:"legend.scroll",newlineDisabled:!0,init:function(){c.superCall(this,"init"),this._currentIndex=0,this.group.add(this._containerGroup=new s),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new s),this._showController},resetInner:function(){c.superCall(this,"resetInner"),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},renderInner:function(e,t,n,a){var o=this;c.superCall(this,"renderInner",e,t,n,a);var s=this._controllerGroup,l=t.get("pageIconSize",!0);i.isArray(l)||(l=[l,l]),d("pagePrev",0);var u=t.getModel("pageTextStyle");function d(e,n){var u=e+"DataIndex",c=r.createIcon(t.get("pageIcons",!0)[t.getOrient().name][n],{onclick:i.bind(o._pageGo,o,u,t,a)},{x:-l[0]/2,y:-l[1]/2,width:l[0],height:l[1]});c.name=e,s.add(c)}s.add(new r.Text({name:"pageText",style:{textFill:u.getTextColor(),font:u.getFont(),textVerticalAlign:"middle",textAlign:"center"},silent:!0})),d("pageNext",1)},layoutInner:function(e,t,n){var o=this.getContentGroup(),s=this._containerGroup,c=this._controllerGroup,d=e.getOrient().index,h=l[d],f=l[1-d],p=u[1-d];a.box(e.get("orient"),o,e.get("itemGap"),d?n.width:null,d?null:n.height),a.box("horizontal",c,e.get("pageButtonItemGap",!0));var m=o.getBoundingRect(),g=c.getBoundingRect(),v=this._showController=m[h]>n[h],y=[-m.x,-m.y];y[d]=o.position[d];var b=[0,0],_=[-g.x,-g.y],x=i.retrieve2(e.get("pageButtonGap",!0),e.get("itemGap",!0));v&&("end"===e.get("pageButtonPosition",!0)?_[d]+=n[h]-g[h]:b[d]+=g[h]+x);_[1-d]+=m[f]/2-g[f]/2,o.attr("position",y),s.attr("position",b),c.attr("position",_);var w=this.group.getBoundingRect();if((w={x:0,y:0})[h]=v?n[h]:m[h],w[f]=Math.max(m[f],g[f]),w[p]=Math.min(0,g[p]+_[1-d]),s.__rectSize=n[h],v){var S={x:0,y:0};S[h]=Math.max(n[h]-g[h]-x,0),S[f]=w[f],s.setClipPath(new r.Rect({shape:S})),s.__rectSize=S[h]}else c.eachChild(function(e){e.attr({invisible:!0,silent:!0})});var C=this._getPageInfo(e);return null!=C.pageIndex&&r.updateProps(o,{position:C.contentPosition},!!v&&e),this._updatePageInfoView(e,C),w},_pageGo:function(e,t,n){var i=this._getPageInfo(t)[e];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:t.id})},_updatePageInfoView:function(e,t){var n=this._controllerGroup;i.each(["pagePrev","pageNext"],function(i){var r=null!=t[i+"DataIndex"],a=n.childOfName(i);a&&(a.setStyle("fill",r?e.get("pageIconColor",!0):e.get("pageIconInactiveColor",!0)),a.cursor=r?"pointer":"default")});var r=n.childOfName("pageText"),a=e.get("pageFormatter"),o=t.pageIndex,s=null!=o?o+1:0,l=t.pageCount;r&&a&&r.setStyle("text",i.isString(a)?a.replace("{current}",s).replace("{total}",l):a({current:s,total:l}))},_getPageInfo:function(e){var t,n,i,r,a=e.get("scrollDataIndex",!0),o=this.getContentGroup(),s=o.getBoundingRect(),c=this._containerGroup.__rectSize,d=e.getOrient().index,h=l[d],f=l[1-d],p=u[d],m=o.position.slice();this._showController?o.eachChild(function(e){e.__legendDataIndex===a&&(r=e)}):r=o.childAt(0);var g=c?Math.ceil(s[h]/c):0;if(r){var v=r.getBoundingRect(),y=r.position[d]+v[p];m[d]=-y-s[p],t=Math.floor(g*(y+v[p]+c/2)/s[h]),t=s[h]&&g?Math.max(0,Math.min(g-1,t)):-1;var b,_={x:0,y:0};_[h]=c,_[f]=s[f],_[p]=-m[d]-s[p];var x=o.children();if(o.eachChild(function(e,t){var n=S(e);n.intersect(_)&&(null==b&&(b=t),i=e.__legendDataIndex),t===x.length-1&&n[p]+n[h]<=_[p]+_[h]&&(i=null)}),null!=b){var w=S(x[b]);if(_[p]=w[p]+w[h]-_[h],b<=0&&w[p]>=_[p])n=null;else{for(;b>0&&S(x[b-1]).intersect(_);)b--;n=x[b].__legendDataIndex}}}return{contentPosition:m,pageIndex:t,pageCount:g,pagePrevDataIndex:n,pageNextDataIndex:i};function S(e){var t=e.getBoundingRect().clone();return t[p]+=e.position[d],t}}}),d=c;e.exports=d},rVsN:function(e,t,n){e.exports={default:n("jQiA"),__esModule:!0}},rcR3:function(e,t,n){var i=n("GKMz"),r=n("M7eM"),a=n("YvCK"),o=n("jqmT"),s=n("Qieq"),l=n("i+pt"),u=n("bmdq");e.exports=function(e,t,n,c,d){for(var h=new a(c),f=0;f<e.length;f++)h.addNode(i.retrieve(e[f].id,e[f].name,f),f);var p=[],m=[],g=0;for(f=0;f<t.length;f++){var v=t[f],y=v.source,b=v.target;h.addEdge(y,b,g)&&(m.push(v),p.push(i.retrieve(v.id,y+" > "+b)),g++)}var _,x=n.get("coordinateSystem");if("cartesian2d"===x||"polar"===x)_=u(e,n);else{var w=l.get(x),S=w&&"view"!==w.type&&w.dimensions||[];i.indexOf(S,"value")<0&&S.concat(["value"]);var C=s(e,{coordDimensions:S});(_=new r(C,n)).initData(e)}var M=new r(["value"],n);return M.initData(m,p),d&&d(_,M),o({mainData:_,struct:h,structAttr:"graph",datas:{node:_,edge:M},datasAttr:{node:"data",edge:"edgeData"}}),h.update(),h}},rksO:function(e,t,n){var i=n("5gvs"),r=function(){this._track=[]};function a(e){var t=e[1][0]-e[0][0],n=e[1][1]-e[0][1];return Math.sqrt(t*t+n*n)}r.prototype={constructor:r,recognize:function(e,t,n){return this._doTrack(e,t,n),this._recognize(e)},clear:function(){return this._track.length=0,this},_doTrack:function(e,t,n){var r=e.touches;if(r){for(var a={points:[],touches:[],target:t,event:e},o=0,s=r.length;o<s;o++){var l=r[o],u=i.clientToLocal(n,l,{});a.points.push([u.zrX,u.zrY]),a.touches.push(l)}this._track.push(a)}},_recognize:function(e){for(var t in o)if(o.hasOwnProperty(t)){var n=o[t](this._track,e);if(n)return n}}};var o={pinch:function(e,t){var n=e.length;if(n){var i,r=(e[n-1]||{}).points,o=(e[n-2]||{}).points||r;if(o&&o.length>1&&r&&r.length>1){var s=a(r)/a(o);!isFinite(s)&&(s=1),t.pinchScale=s;var l=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return t.pinchX=l[0],t.pinchY=l[1],{type:"pinch",target:e[0].target,event:t}}}}},s=r;e.exports=s},rlNm:function(e,t,n){var i=n("uxQp"),r=n("UPaQ"),a=n("aVg8"),o=n("dRQw"),s=n("g0yf"),l=n("Vus3"),u=n("MiuX"),c=r.extend({makeElOption:function(e,t,n,r,u){var c=n.axis;"angle"===c.dim&&(this.animationThreshold=Math.PI/18);var h,f=c.polar,p=f.getOtherAxis(c).getExtent();h=c["dataTo"+i.capitalFirst(c.dim)](t);var m=r.get("type");if(m&&"none"!==m){var g=o.buildElStyle(r),v=d[m](c,f,h,p,g);v.style=g,e.graphicKey=v.type,e.pointer=v}var y=function(e,t,n,i,r){var o=t.axis,u=o.dataToCoord(e),c=i.getAngleAxis().getExtent()[0];c=c/180*Math.PI;var d,h,f,p=i.getRadiusAxis().getExtent();if("radius"===o.dim){var m=s.create();s.rotate(m,m,c),s.translate(m,m,[i.cx,i.cy]),d=a.applyTransform([u,-r],m);var g=t.getModel("axisLabel").get("rotate")||0,v=l.innerTextLayout(c,g*Math.PI/180,-1);h=v.textAlign,f=v.textVerticalAlign}else{var y=p[1];d=i.coordToPoint([y+r,u]);var b=i.cx,_=i.cy;h=Math.abs(d[0]-b)/y<.3?"center":d[0]>b?"left":"right",f=Math.abs(d[1]-_)/y<.3?"middle":d[1]>_?"top":"bottom"}return{position:d,align:h,verticalAlign:f}}(t,n,0,f,r.get("label.margin"));o.buildLabelElOption(e,n,r,u,y)}});var d={line:function(e,t,n,i,r){return"angle"===e.dim?{type:"Line",shape:o.makeLineShape(t.coordToPoint([i[0],n]),t.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:t.cx,cy:t.cy,r:n}}},shadow:function(e,t,n,i,r){var a=Math.max(1,e.getBandWidth()),s=Math.PI/180;return"angle"===e.dim?{type:"Sector",shape:o.makeSectorShape(t.cx,t.cy,i[0],i[1],(-n-a/2)*s,(a/2-n)*s)}:{type:"Sector",shape:o.makeSectorShape(t.cx,t.cy,n-a/2,n+a/2,0,2*Math.PI)}}};u.registerAxisPointerClass("PolarAxisPointer",c);var h=c;e.exports=h},roPK:function(e,t,n){var i=n("gxMf");function r(e,t,n,i,r,a,o){function s(t,n,i,r){for(var a=t;a<n;a++)if(e[a].y+=i,a>t&&a+1<n&&e[a+1].y>e[a].y+e[a].height)return void l(a,i/2);l(n-1,i/2)}function l(t,n){for(var i=t;i>=0&&(e[i].y-=n,!(i>0&&e[i].y>e[i-1].y+e[i-1].height));i--);}function u(e,t,n,i,r,a){for(var o=t?Number.MAX_VALUE:0,s=0,l=e.length;s<l;s++)if("center"!==e[s].position){var u=Math.abs(e[s].y-i),c=e[s].len,d=e[s].len2,h=u<r+c?Math.sqrt((r+c+d)*(r+c+d)-u*u):Math.abs(e[s].x-n);t&&h>=o&&(h=o-10),!t&&h<=o&&(h=o+10),e[s].x=n+h*a,o=h}}e.sort(function(e,t){return e.y-t.y});for(var c,d=0,h=e.length,f=[],p=[],m=0;m<h;m++)(c=e[m].y-d)<0&&s(m,h,-c),d=e[m].y+e[m].height;o-d<0&&l(h-1,d-o);for(m=0;m<h;m++)e[m].y>=n?p.push(e[m]):f.push(e[m]);u(f,!1,t,n,i,r),u(p,!0,t,n,i,r)}e.exports=function(e,t,n,a){var o,s,l=e.getData(),u=[],c=!1;l.each(function(n){var r,a,d,h,f=l.getItemLayout(n),p=l.getItemModel(n),m=p.getModel("label"),g=m.get("position")||p.get("emphasis.label.position"),v=p.getModel("labelLine"),y=v.get("length"),b=v.get("length2"),_=(f.startAngle+f.endAngle)/2,x=Math.cos(_),w=Math.sin(_);o=f.cx,s=f.cy;var S="inside"===g||"inner"===g;if("center"===g)r=f.cx,a=f.cy,h="center";else{var C=(S?(f.r+f.r0)/2*x:f.r*x)+o,M=(S?(f.r+f.r0)/2*w:f.r*w)+s;if(r=C+3*x,a=M+3*w,!S){var k=C+x*(y+t-f.r),T=M+w*(y+t-f.r),A=k+(x<0?-1:1)*b;r=A+(x<0?-5:5),a=T,d=[[C,M],[k,T],[A,T]]}h=S?"center":x>0?"left":"right"}var I=m.getFont(),E=m.get("rotate")?x<0?-_+Math.PI:-_:0,D=e.getFormattedLabel(n,"normal")||l.getName(n),O=i.getBoundingRect(D,I,h,"top");c=!!E,f.label={x:r,y:a,position:g,height:O.height,len:y,len2:b,linePoints:d,textAlign:h,verticalAlign:"middle",rotation:E,inside:S},S||u.push(f.label)}),!c&&e.get("avoidLabelOverlap")&&function(e,t,n,i,a,o){for(var s=[],l=[],u=0;u<e.length;u++)e[u].x<t?s.push(e[u]):l.push(e[u]);for(r(l,t,n,i,1,0,o),r(s,t,n,i,-1,0,o),u=0;u<e.length;u++){var c=e[u].linePoints;if(c){var d=c[1][0]-c[2][0];e[u].x<t?c[2][0]=e[u].x+3:c[2][0]=e[u].x-3,c[1][1]=c[2][1]=e[u].y,c[1][0]=c[2][0]+d}}}(u,o,s,t,0,a)}},rpne:function(e,t,n){var i=n("KSHG"),r=[["shadowBlur",0],["shadowColor","#000"],["shadowOffsetX",0],["shadowOffsetY",0]];e.exports=function(e){return i.browser.ie&&i.browser.version>=11?function(){var t,n=this.__clipPaths,i=this.style;if(n)for(var a=0;a<n.length;a++){var o=n[a],s=o&&o.shape,l=o&&o.type;if(s&&("sector"===l&&s.startAngle===s.endAngle||"rect"===l&&(!s.width||!s.height))){for(var u=0;u<r.length;u++)r[u][2]=i[r[u][0]],i[r[u][0]]=r[u][1];t=!0;break}}if(e.apply(this,arguments),t)for(u=0;u<r.length;u++)i[r[u][0]]=r[u][2]}:e}},rsvB:function(e,t){function n(){this.on("mousedown",this._dragStart,this),this.on("mousemove",this._drag,this),this.on("mouseup",this._dragEnd,this),this.on("globalout",this._dragEnd,this)}function i(e,t){return{target:e,topTarget:t&&t.topTarget}}n.prototype={constructor:n,_dragStart:function(e){var t=e.target;t&&t.draggable&&(this._draggingTarget=t,t.dragging=!0,this._x=e.offsetX,this._y=e.offsetY,this.dispatchToElement(i(t,e),"dragstart",e.event))},_drag:function(e){var t=this._draggingTarget;if(t){var n=e.offsetX,r=e.offsetY,a=n-this._x,o=r-this._y;this._x=n,this._y=r,t.drift(a,o,e),this.dispatchToElement(i(t,e),"drag",e.event);var s=this.findHover(n,r,t).target,l=this._dropTarget;this._dropTarget=s,t!==s&&(l&&s!==l&&this.dispatchToElement(i(l,e),"dragleave",e.event),s&&s!==l&&this.dispatchToElement(i(s,e),"dragenter",e.event))}},_dragEnd:function(e){var t=this._draggingTarget;t&&(t.dragging=!1),this.dispatchToElement(i(t,e),"dragend",e.event),this._dropTarget&&this.dispatchToElement(i(this._dropTarget,e),"drop",e.event),this._draggingTarget=null,this._dropTarget=null}};var r=n;e.exports=r},s0K6:function(e,t,n){var i=n("93K8"),r=n("8Nvm"),a=n("aqA6");e.exports=function(e,t){if(i(e),r(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},sB3v:function(e,t,n){var i=n("bmdq"),r=n("YR6M").extend({type:"series.scatter",dependencies:["grid","polar","geo","singleAxis","calendar"],getInitialData:function(e,t){return i(this.getSource(),this)},brushSelector:"point",getProgressive:function(){var e=this.option.progressive;return null==e?this.option.large?5e3:this.get("progressive"):e},getProgressiveThreshold:function(){var e=this.option.progressiveThreshold;return null==e?this.option.large?1e4:this.get("progressiveThreshold"):e},defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8}}});e.exports=r},sBnI:function(e,t,n){var i=["itemStyle","borderColor"],r=["itemStyle","borderColor0"],a=["itemStyle","color"],o=["itemStyle","color0"],s={seriesType:"candlestick",plan:n("gbpp")(),performRawSeries:!0,reset:function(e,t){var n=e.getData(),s=e.pipelineContext.large;if(n.setVisual({legendSymbol:"roundRect",colorP:l(1,e),colorN:l(-1,e),borderColorP:u(1,e),borderColorN:u(-1,e)}),!t.isSeriesFiltered(e))return!s&&{progress:function(e,t){var n;for(;null!=(n=e.next());){var i=t.getItemModel(n),r=t.getItemLayout(n).sign;t.setItemVisual(n,{color:l(r,i),borderColor:u(r,i)})}}};function l(e,t){return t.get(e>0?a:o)}function u(e,t){return t.get(e>0?i:r)}}};e.exports=s},sCYP:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("aVg8"),o=n("0jiU"),s=n("HT+0"),l=n("NQ2r"),u=n("21V2"),c=n("OGtO"),d=n("g0yf"),h=n("zHd6"),f=n("qIgY"),p=r.bind,m=a.Group,g=a.Rect,v=r.each,y=["label"],b=["emphasis","label"],_=["upperLabel"],x=["emphasis","upperLabel"],w=10,S=1,C=2,M=f([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),k=function(e){var t=M(e);return t.stroke=t.fill=t.lineWidth=null,t},T=i.extendChartView({type:"treemap",init:function(e,t){this._containerGroup,this._storage={nodeGroup:[],background:[],content:[]},this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(e,t,n,i){var a=t.findComponents({mainType:"series",subType:"treemap",query:i});if(!(r.indexOf(a,e)<0)){this.seriesModel=e,this.api=n,this.ecModel=t;var o=s.retrieveTargetInfo(i,["treemapZoomToNode","treemapRootToNode"],e),l=i&&i.type,u=e.layoutInfo,c=!this._oldTree,d=this._storage,h="treemapRootToNode"===l&&o&&d?{rootNodeGroup:d.nodeGroup[o.node.getRawIndex()],direction:i.direction}:null,f=this._giveContainerGroup(u),p=this._doRender(f,e,h);c||l&&"treemapZoomToNode"!==l&&"treemapRootToNode"!==l?p.renderFinally():this._doAnimation(f,p,e,h),this._resetController(n),this._renderBreadcrumb(e,n,o)}},_giveContainerGroup:function(e){var t=this._containerGroup;return t||(t=this._containerGroup=new m,this._initEvents(t),this.group.add(t)),t.attr("position",[e.x,e.y]),t},_doRender:function(e,t,n){var i=t.getData().tree,a=this._oldTree,s={nodeGroup:[],background:[],content:[]},l={nodeGroup:[],background:[],content:[]},u=this._storage,c=[],d=r.curry(A,t,l,u,n,s,c);!function e(t,n,i,a,s){a?(n=t,v(t,function(e,t){!e.isRemoved()&&u(t,t)})):new o(n,t,l,l).add(u).update(u).remove(r.curry(u,null)).execute();function l(e){return e.getId()}function u(r,o){var l=null!=r?t[r]:null,u=null!=o?n[o]:null,c=d(l,u,i,s);c&&e(l&&l.viewChildren||[],u&&u.viewChildren||[],c,a,s+1)}}(i.root?[i.root]:[],a&&a.root?[a.root]:[],e,i===a||!a,0);var h=function(e){var t={nodeGroup:[],background:[],content:[]};return e&&v(e,function(e,n){var i=t[n];v(e,function(e){e&&(i.push(e),e.__tmWillDelete=1)})}),t}(u);return this._oldTree=i,this._storage=l,{lastsForAnimation:s,willDeleteEls:h,renderFinally:function(){v(h,function(e){v(e,function(e){e.parent&&e.parent.remove(e)})}),v(c,function(e){e.invisible=!0,e.dirty()})}}},_doAnimation:function(e,t,n,i){if(n.get("animation")){var a=n.get("animationDurationUpdate"),o=n.get("animationEasing"),s=h.createWrap();v(t.willDeleteEls,function(e,t){v(e,function(e,n){if(!e.invisible){var r,l=e.parent;if(i&&"drillDown"===i.direction)r=l===i.rootNodeGroup?{shape:{x:0,y:0,width:l.__tmNodeWidth,height:l.__tmNodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var u=0,c=0;l.__tmWillDelete||(u=l.__tmNodeWidth/2,c=l.__tmNodeHeight/2),r="nodeGroup"===t?{position:[u,c],style:{opacity:0}}:{shape:{x:u,y:c,width:0,height:0},style:{opacity:0}}}r&&s.add(e,r,a,o)}})}),v(this._storage,function(e,n){v(e,function(e,i){var l=t.lastsForAnimation[n][i],u={};l&&("nodeGroup"===n?l.old&&(u.position=e.position.slice(),e.attr("position",l.old)):(l.old&&(u.shape=r.extend({},e.shape),e.setShape(l.old)),l.fadein?(e.setStyle("opacity",0),u.style={opacity:1}):1!==e.style.opacity&&(u.style={opacity:1})),s.add(e,u,a,o))})},this),this._state="animating",s.done(p(function(){this._state="ready",t.renderFinally()},this)).start()}},_resetController:function(e){var t=this._controller;t||((t=this._controller=new u(e.getZr())).enable(this.seriesModel.get("roam")),t.on("pan",p(this._onPan,this)),t.on("zoom",p(this._onZoom,this)));var n=new c(0,0,e.getWidth(),e.getHeight());t.setPointerChecker(function(e,t,i){return n.contain(t,i)})},_clearController:function(){var e=this._controller;e&&(e.dispose(),e=null)},_onPan:function(e,t){if("animating"!==this._state&&(Math.abs(e)>3||Math.abs(t)>3)){var n=this.seriesModel.getData().tree.root;if(!n)return;var i=n.getLayout();if(!i)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:i.x+e,y:i.y+t,width:i.width,height:i.height}})}},_onZoom:function(e,t,n){if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var a=new c(r.x,r.y,r.width,r.height),o=this.seriesModel.layoutInfo;t-=o.x,n-=o.y;var s=d.create();d.translate(s,s,[-t,-n]),d.scale(s,s,[e,e]),d.translate(s,s,[t,n]),a.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:a.x,y:a.y,width:a.width,height:a.height}})}},_initEvents:function(e){e.on("click",function(e){if("ready"===this._state){var t=this.seriesModel.get("nodeClick",!0);if(t){var n=this.findTarget(e.offsetX,e.offsetY);if(n){var i=n.node;if(i.getLayout().isLeafRoot)this._rootToNode(n);else if("zoomToNode"===t)this._zoomToNode(n);else if("link"===t){var r=i.hostTree.data.getItemModel(i.dataIndex),a=r.get("link",!0),o=r.get("target",!0)||"blank";a&&window.open(a,o)}}}}},this)},_renderBreadcrumb:function(e,t,n){n||(n=null!=e.get("leafDepth",!0)?{node:e.getViewRoot()}:this.findTarget(t.getWidth()/2,t.getHeight()/2))||(n={node:e.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new l(this.group))).render(e,t,n.node,p(function(t){"animating"!==this._state&&(s.aboveViewRoot(e.getViewRoot(),t)?this._rootToNode({node:t}):this._zoomToNode({node:t}))},this))},remove:function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},dispose:function(){this._clearController()},_zoomToNode:function(e){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:e.node})},_rootToNode:function(e){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:e.node})},findTarget:function(e,t){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},function(i){var r=this._storage.background[i.getRawIndex()];if(r){var a=r.transformCoordToLocal(e,t),o=r.shape;if(!(o.x<=a[0]&&a[0]<=o.x+o.width&&o.y<=a[1]&&a[1]<=o.y+o.height))return!1;n={node:i,offsetX:a[0],offsetY:a[1]}}},this),n}});function A(e,t,n,i,o,s,l,u,c,d){if(l){var h=l.getLayout();if(h&&h.isInView){var f=h.width,p=h.height,v=h.borderWidth,T=h.invisible,A=l.getRawIndex(),I=u&&u.getRawIndex(),E=l.viewChildren,D=h.upperHeight,O=E&&E.length,P=l.getModel("itemStyle"),L=l.getModel("emphasis.itemStyle"),R=V("nodeGroup",m);if(R){if(c.add(R),R.attr("position",[h.x||0,h.y||0]),R.__tmNodeWidth=f,R.__tmNodeHeight=p,h.isAboveViewRoot)return R;var N=V("background",g,d,S);if(N&&function(t,n,i){n.dataIndex=l.dataIndex,n.seriesIndex=e.seriesIndex,n.setShape({x:0,y:0,width:f,height:p});var r=l.getVisual("borderColor",!0),o=L.get("borderColor");F(n,function(){var e=k(P);e.fill=r;var t=M(L);if(t.fill=o,i){var s=f-2*v;z(e,t,r,s,D,{x:v,y:0,width:s,height:D})}else e.text=t.text=null;n.setStyle(e),a.setHoverStyle(n,t)}),t.add(n)}(R,N,O&&h.upperHeight),!O){var B=V("content",g,d,C);B&&function(t,n){n.dataIndex=l.dataIndex,n.seriesIndex=e.seriesIndex;var i=Math.max(f-2*v,0),r=Math.max(p-2*v,0);n.culling=!0,n.setShape({x:v,y:v,width:i,height:r});var o=l.getVisual("color",!0);F(n,function(){var e=k(P);e.fill=o;var t=M(L);z(e,t,o,i,r),n.setStyle(e),a.setHoverStyle(n,t)}),t.add(n)}(R,B)}return R}}}function F(e,t){T?!e.invisible&&s.push(e):(t(),e.__tmWillVisible||(e.invisible=!1))}function z(t,n,i,o,s,u){var c=l.getModel(),d=r.retrieve(e.getFormattedLabel(l.dataIndex,"normal",null,null,u?"upperLabel":"label"),c.get("name"));if(!u&&h.isLeafRoot){var f=e.get("drillDownIcon",!0);d=f?f+" "+d:d}var p=c.getModel(u?_:y),m=c.getModel(u?x:b),g=p.getShallow("show");a.setLabelStyle(t,n,p,m,{defaultText:g?d:null,autoColor:i,isRectText:!0}),u&&(t.textRect=r.clone(u)),t.truncate=g&&p.get("ellipsis")?{outerWidth:o,outerHeight:s,minChar:2}:null}function V(e,a,s,u){var c=null!=I&&n[e][I],d=o[e];return c?(n[e][I]=null,function(e,t,n){(e[A]={}).old="nodeGroup"===n?t.position.slice():r.extend({},t.shape)}(d,c,e)):T||((c=new a({z:function(e,t){var n=e*w+t;return(n-1)/n}(s,u)})).__tmDepth=s,c.__tmStorageName=e,function(e,t,n){var r=e[A]={},a=l.parentNode;if(a&&(!i||"drillDown"===i.direction)){var s=0,u=0,c=o.background[a.getRawIndex()];!i&&c&&c.old&&(s=c.old.width,u=c.old.height),r.old="nodeGroup"===n?[0,u]:{x:s,y:u,width:0,height:0}}r.fadein="nodeGroup"!==n}(d,0,e)),t[e][A]=c}}e.exports=T},sDqF:function(e,t,n){n("Oc2Y"),n("Gquc"),n("WAQe"),n("KGKV"),e.exports=n("AKd3").Symbol},sHh7:function(e,t,n){n("M34w"),n("nOmy")},sNXC:function(e,t){var n=/^(attrs|props|on|nativeOn|class|style|hook)$/;function i(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce(function(e,t){var r,a,o,s,l;for(o in t)if(r=e[o],a=t[o],r&&n.test(o))if("class"===o&&("string"==typeof r&&(l=r,e[o]=r={},r[l]=!0),"string"==typeof a&&(l=a,t[o]=a={},a[l]=!0)),"on"===o||"nativeOn"===o||"hook"===o)for(s in a)r[s]=i(r[s],a[s]);else if(Array.isArray(r))e[o]=r.concat(a);else if(Array.isArray(a))e[o]=[r].concat(a);else for(s in a)r[s]=a[s];else e[o]=t[o];return e},{})}},sO1v:function(e,t,n){var i=n("/MtV"),r=n("rNYg");n("lYmG"),n("bHL0"),n("63n7"),n("60fM"),n("e9XV"),i.registerPreprocessor(r)},sjnA:function(e,t,n){e.exports=!n("BRDz")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},sv6O:function(e,t,n){var i=n("Q9e6"),r=n("FkVt"),a=i.extend({type:"polygon",shape:{points:null,smooth:!1,smoothConstraint:null},buildPath:function(e,t){r.buildPath(e,t,!0)}});e.exports=a},"t+b9":function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=45)}([function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},function(e,t){e.exports=n("PEt4")},function(e,t){e.exports=n("iOou")},function(e,t){e.exports=n("WN98")},function(e,t){e.exports=n("I1sU")},function(e,t){e.exports=n("IvJb")},function(e,t){e.exports=n("G8IQ")},function(e,t){e.exports=n("S7dV")},function(e,t){e.exports=n("9mPB")},function(e,t){e.exports=n("W/HH")},function(e,t){e.exports=n("QxRo")},function(e,t,n){"use strict";t.__esModule=!0,t.extractTimeFormat=t.extractDateFormat=t.nextYear=t.prevYear=t.nextMonth=t.prevMonth=t.changeYearMonthAndClampDate=t.timeWithinRange=t.limitTimeRange=t.clearMilliseconds=t.clearTime=t.modifyWithTimeString=t.modifyTime=t.modifyDate=t.range=t.getRangeHours=t.getWeekNumber=t.getStartDateOfMonth=t.nextDate=t.prevDate=t.getFirstDayOfMonth=t.getDayCountOfYear=t.getDayCountOfMonth=t.parseDate=t.formatDate=t.isDateObject=t.isDate=t.toDate=void 0;var i,r=n(174),a=(i=r)&&i.__esModule?i:{default:i},o=n(16);var s=["sun","mon","tue","wed","thu","fri","sat"],l=["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],u=function(){return{dayNamesShort:s.map(function(e){return(0,o.t)("el.datepicker.weeks."+e)}),dayNames:s.map(function(e){return(0,o.t)("el.datepicker.weeks."+e)}),monthNamesShort:l.map(function(e){return(0,o.t)("el.datepicker.months."+e)}),monthNames:l.map(function(e,t){return(0,o.t)("el.datepicker.month"+(t+1))}),amPm:["am","pm"]}},c=t.toDate=function(e){return d(e)?new Date(e):null},d=t.isDate=function(e){return null!==e&&void 0!==e&&(!isNaN(new Date(e).getTime())&&!Array.isArray(e))},h=(t.isDateObject=function(e){return e instanceof Date},t.formatDate=function(e,t){return(e=c(e))?a.default.format(e,t||"yyyy-MM-dd",u()):""},t.parseDate=function(e,t){return a.default.parse(e,t||"yyyy-MM-dd",u())}),f=t.getDayCountOfMonth=function(e,t){return 3===t||5===t||8===t||10===t?30:1===t?e%4==0&&e%100!=0||e%400==0?29:28:31},p=(t.getDayCountOfYear=function(e){return e%400==0||e%100!=0&&e%4==0?366:365},t.getFirstDayOfMonth=function(e){var t=new Date(e.getTime());return t.setDate(1),t.getDay()},t.prevDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Date(e.getFullYear(),e.getMonth(),e.getDate()-t)}),m=(t.nextDate=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)},t.getStartDateOfMonth=function(e,t){var n=new Date(e,t,1),i=n.getDay();return p(n,0===i?7:i)},t.getWeekNumber=function(e){if(!d(e))return null;var t=new Date(e.getTime());t.setHours(0,0,0,0),t.setDate(t.getDate()+3-(t.getDay()+6)%7);var n=new Date(t.getFullYear(),0,4);return 1+Math.round(((t.getTime()-n.getTime())/864e5-3+(n.getDay()+6)%7)/7)},t.getRangeHours=function(e){var t=[],n=[];if((e||[]).forEach(function(e){var t=e.map(function(e){return e.getHours()});n=n.concat(function(e,t){for(var n=[],i=e;i<=t;i++)n.push(i);return n}(t[0],t[1]))}),n.length)for(var i=0;i<24;i++)t[i]=-1===n.indexOf(i);else for(var r=0;r<24;r++)t[r]=!1;return t},t.range=function(e){return Array.apply(null,{length:e}).map(function(e,t){return t})},t.modifyDate=function(e,t,n,i){return new Date(t,n,i,e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())}),g=t.modifyTime=function(e,t,n,i){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),t,n,i,e.getMilliseconds())},v=(t.modifyWithTimeString=function(e,t){return null!=e&&t?(t=h(t,"HH:mm:ss"),g(e,t.getHours(),t.getMinutes(),t.getSeconds())):e},t.clearTime=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())},t.clearMilliseconds=function(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),0)},t.limitTimeRange=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"HH:mm:ss";if(0===t.length)return e;var i=function(e){return a.default.parse(a.default.format(e,n),n)},r=i(e),o=t.map(function(e){return e.map(i)});if(o.some(function(e){return r>=e[0]&&r<=e[1]}))return e;var s=o[0][0],l=o[0][0];return o.forEach(function(e){s=new Date(Math.min(e[0],s)),l=new Date(Math.max(e[1],s))}),m(r<s?s:l,e.getFullYear(),e.getMonth(),e.getDate())}),y=(t.timeWithinRange=function(e,t,n){return v(e,t,n).getTime()===e.getTime()},t.changeYearMonthAndClampDate=function(e,t,n){var i=Math.min(e.getDate(),f(t,n));return m(e,t,n,i)});t.prevMonth=function(e){var t=e.getFullYear(),n=e.getMonth();return 0===n?y(e,t-1,11):y(e,t,n-1)},t.nextMonth=function(e){var t=e.getFullYear(),n=e.getMonth();return 11===n?y(e,t+1,0):y(e,t,n+1)},t.prevYear=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=e.getFullYear(),i=e.getMonth();return y(e,n-t,i)},t.nextYear=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=e.getFullYear(),i=e.getMonth();return y(e,n+t,i)},t.extractDateFormat=function(e){return e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim()},t.extractTimeFormat=function(e){return e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g,"").trim()}},function(e,t){e.exports=n("1h8B")},function(e,t){e.exports=n("pQJX")},function(e,t){e.exports=n("tLod")},function(e,t){e.exports=n("1HfM")},function(e,t){e.exports=n("tjix")},function(e,t){e.exports=n("ZCDV")},function(e,t){e.exports=n("D7MG")},function(e,t){e.exports=n("tHS6")},function(e,t){e.exports=n("Jlbz")},function(e,t){e.exports=n("L9EA")},function(e,t,n){"use strict";t.__esModule=!0;var i=t.NODE_KEY="$treeNodeId";t.markNodeData=function(e,t){t&&!t[i]&&Object.defineProperty(t,i,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},t.getNodeKey=function(e,t){return e?t[e]:t[i]},t.findNearestComponent=function(e,t){for(var n=e;n&&"BODY"!==n.tagName;){if(n.__vue__&&n.__vue__.$options.name===t)return n.__vue__;n=n.parentNode}return null}},function(e,t){e.exports=n("CPY7")},function(e,t){e.exports=n("xHIt")},function(e,t){e.exports=n("NhDZ")},function(e,t){e.exports=n("zdX1")},function(e,t,n){"use strict";t.__esModule=!0,t.default={created:function(){this.tableLayout.addObserver(this)},destroyed:function(){this.tableLayout.removeObserver(this)},computed:{tableLayout:function(){var e=this.layout;if(!e&&this.table&&(e=this.table.layout),!e)throw new Error("Can not find table layout.");return e}},mounted:function(){this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout)},updated:function(){this.__updated__||(this.onColumnsChange(this.tableLayout),this.onScrollableChange(this.tableLayout),this.__updated__=!0)},methods:{onColumnsChange:function(){var e=this.$el.querySelectorAll("colgroup > col");if(e.length){var t={};this.tableLayout.getFlattenColumns().forEach(function(e){t[e.id]=e});for(var n=0,i=e.length;n<i;n++){var r=e[n],a=r.getAttribute("name"),o=t[a];o&&r.setAttribute("width",o.realWidth||o.width)}}},onScrollableChange:function(e){for(var t=this.$el.querySelectorAll("colgroup > col[name=gutter]"),n=0,i=t.length;n<i;n++){t[n].setAttribute("width",e.scrollY?e.gutterWidth:"0")}for(var r=this.$el.querySelectorAll("th.gutter"),a=0,o=r.length;a<o;a++){var s=r[a];s.style.width=e.scrollY?e.gutterWidth+"px":"0",s.style.display=e.scrollY?"":"none"}}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(173),r=n.n(i),a=n(175),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(178),r=n.n(i),a=n(181),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(!a.default.prototype.$isServer){var n=function(e){t.drag&&t.drag(e)},i=function e(i){document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",e),document.onselectstart=null,document.ondragstart=null,o=!1,t.end&&t.end(i)};e.addEventListener("mousedown",function(e){o||(document.onselectstart=function(){return!1},document.ondragstart=function(){return!1},document.addEventListener("mousemove",n),document.addEventListener("mouseup",i),o=!0,t.start&&t.start(e))})}};var i,r=n(5),a=(i=r)&&i.__esModule?i:{default:i};var o=!1},function(e,t,n){"use strict";t.__esModule=!0;var i=i||{};i.Utils=i.Utils||{},i.Utils.focusFirstDescendant=function(e){for(var t=0;t<e.childNodes.length;t++){var n=e.childNodes[t];if(i.Utils.attemptFocus(n)||i.Utils.focusFirstDescendant(n))return!0}return!1},i.Utils.focusLastDescendant=function(e){for(var t=e.childNodes.length-1;t>=0;t--){var n=e.childNodes[t];if(i.Utils.attemptFocus(n)||i.Utils.focusLastDescendant(n))return!0}return!1},i.Utils.attemptFocus=function(e){if(!i.Utils.isFocusable(e))return!1;i.Utils.IgnoreUtilFocusChanges=!0;try{e.focus()}catch(e){}return i.Utils.IgnoreUtilFocusChanges=!1,document.activeElement===e},i.Utils.isFocusable=function(e){if(e.tabIndex>0||0===e.tabIndex&&null!==e.getAttribute("tabIndex"))return!0;if(e.disabled)return!1;switch(e.nodeName){case"A":return!!e.href&&"ignore"!==e.rel;case"INPUT":return"hidden"!==e.type&&"file"!==e.type;case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},i.Utils.triggerEvent=function(e,t){var n=void 0;n=/^mouse|click/.test(t)?"MouseEvents":/^key/.test(t)?"KeyboardEvent":"HTMLEvents";for(var i=document.createEvent(n),r=arguments.length,a=Array(r>2?r-2:0),o=2;o<r;o++)a[o-2]=arguments[o];return i.initEvent.apply(i,[t].concat(a)),e.dispatchEvent?e.dispatchEvent(i):e.fireEvent("on"+t,i),e},i.Utils.keys={tab:9,enter:13,space:32,left:37,up:38,right:39,down:40},t.default=i.Utils},function(e,t,n){"use strict";t.__esModule=!0,t.default={inject:["rootMenu"],computed:{indexPath:function(){for(var e=[this.index],t=this.$parent;"ElMenu"!==t.$options.componentName;)t.index&&e.unshift(t.index),t=t.$parent;return e},parentMenu:function(){for(var e=this.$parent;e&&-1===["ElMenu","ElSubmenu"].indexOf(e.$options.componentName);)e=e.$parent;return e},paddingStyle:function(){if("vertical"!==this.rootMenu.mode)return{};var e=20,t=this.$parent;if(this.rootMenu.collapse)e=20;else for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return{paddingLeft:e+"px"}}}}},function(e,t,n){"use strict";t.__esModule=!0;var i=n(2);t.default={bind:function(e,t,n){var r=null,a=void 0,o=function(){return n.context[t.expression].apply()},s=function(){new Date-a<100&&o(),clearInterval(r),r=null};(0,i.on)(e,"mousedown",function(e){0===e.button&&(a=new Date,(0,i.once)(document,"mouseup",s),clearInterval(r),r=setInterval(o,100))})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(137),r=n.n(i),a=n(138),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.getRowIdentity=t.getColumnByCell=t.getColumnById=t.orderBy=t.getCell=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(4),a=(t.getCell=function(e){for(var t=e.target;t&&"HTML"!==t.tagName.toUpperCase();){if("TD"===t.tagName.toUpperCase())return t;t=t.parentNode}return null},function(e){return null!==e&&"object"===(void 0===e?"undefined":i(e))}),o=(t.orderBy=function(e,t,n,i,o){if(!t&&!i&&(!o||Array.isArray(o)&&!o.length))return e;n="string"==typeof n?"descending"===n?-1:1:n&&n<0?-1:1;var s=i?null:function(n,i){return o?(Array.isArray(o)||(o=[o]),o.map(function(t){return"string"==typeof t?(0,r.getValueByPath)(n,t):t(n,i,e)})):("$key"!==t&&a(n)&&"$value"in n&&(n=n.$value),[a(n)?(0,r.getValueByPath)(n,t):n])};return e.map(function(e,t){return{value:e,index:t,key:s?s(e,t):null}}).sort(function(e,t){var r=function(e,t){if(i)return i(e.value,t.value);for(var n=0,r=e.key.length;n<r;n++){if(e.key[n]<t.key[n])return-1;if(e.key[n]>t.key[n])return 1}return 0}(e,t);return r||(r=e.index-t.index),r*n}).map(function(e){return e.value})},t.getColumnById=function(e,t){var n=null;return e.columns.forEach(function(e){e.id===t&&(n=e)}),n});t.getColumnByCell=function(e,t){var n=(t.className||"").match(/el-table_[^\s]+/gm);return n?o(e,n[0]):null},t.getRowIdentity=function(e,t){if(!e)throw new Error("row is required when get row identity");if("string"==typeof t){if(t.indexOf(".")<0)return e[t];for(var n=t.split("."),i=e,r=0;r<n.length;r++)i=i[n[r]];return i}if("function"==typeof t)return t.call(null,e)}},function(e,t){e.exports=n("6SiW")},function(e,t){e.exports=n("n3y0")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(179),r=n.n(i),a=n(180),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(188),r=n.n(i),a=n(189),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(278),r=n.n(i),a=n(279),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t){e.exports=n("EJmT")},function(e,t){e.exports=n("221d")},function(e,t){e.exports=n("sNXC")},function(e,t,n){"use strict";t.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};var r=function(e,t,n){return[e,t*n/((e=(2-t)*n)<1?e:2-e)||0,e/2]},a=function(e,t){var n;"string"==typeof(n=e)&&-1!==n.indexOf(".")&&1===parseFloat(n)&&(e="100%");var i=function(e){return"string"==typeof e&&-1!==e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),i&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)},o={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},s={A:10,B:11,C:12,D:13,E:14,F:15},l=function(e){return 2===e.length?16*(s[e[0].toUpperCase()]||+e[0])+(s[e[1].toUpperCase()]||+e[1]):s[e[1].toUpperCase()]||+e[1]},u=function(e,t,n){e=a(e,255),t=a(t,255),n=a(n,255);var i,r=Math.max(e,t,n),o=Math.min(e,t,n),s=void 0,l=r,u=r-o;if(i=0===r?0:u/r,r===o)s=0;else{switch(r){case e:s=(t-n)/u+(t<n?6:0);break;case t:s=(n-e)/u+2;break;case n:s=(e-t)/u+4}s/=6}return{h:360*s,s:100*i,v:100*l}},c=function(e,t,n){e=6*a(e,360),t=a(t,100),n=a(n,100);var i=Math.floor(e),r=e-i,o=n*(1-t),s=n*(1-r*t),l=n*(1-(1-r)*t),u=i%6,c=[n,s,o,o,l,n][u],d=[l,n,n,s,o,o][u],h=[o,o,l,n,n,s][u];return{r:Math.round(255*c),g:Math.round(255*d),b:Math.round(255*h)}},d=function(){function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._hue=0,this._saturation=100,this._value=100,this._alpha=100,this.enableAlpha=!1,this.format="hex",this.value="",t=t||{})t.hasOwnProperty(n)&&(this[n]=t[n]);this.doOnChange()}return e.prototype.set=function(e,t){if(1!==arguments.length||"object"!==(void 0===e?"undefined":i(e)))this["_"+e]=t,this.doOnChange();else for(var n in e)e.hasOwnProperty(n)&&this.set(n,e[n])},e.prototype.get=function(e){return this["_"+e]},e.prototype.toRgb=function(){return c(this._hue,this._saturation,this._value)},e.prototype.fromString=function(e){var t=this;if(!e)return this._hue=0,this._saturation=100,this._value=100,void this.doOnChange();var n=function(e,n,i){t._hue=Math.max(0,Math.min(360,e)),t._saturation=Math.max(0,Math.min(100,n)),t._value=Math.max(0,Math.min(100,i)),t.doOnChange()};if(-1!==e.indexOf("hsl")){var i=e.replace(/hsla|hsl|\(|\)/gm,"").split(/\s|,/g).filter(function(e){return""!==e}).map(function(e,t){return t>2?parseFloat(e):parseInt(e,10)});if(4===i.length?this._alpha=Math.floor(100*parseFloat(i[3])):3===i.length&&(this._alpha=100),i.length>=3){var r=function(e,t,n){n/=100;var i=t/=100,r=Math.max(n,.01);return t*=(n*=2)<=1?n:2-n,i*=r<=1?r:2-r,{h:e,s:100*(0===n?2*i/(r+i):2*t/(n+t)),v:(n+t)/2*100}}(i[0],i[1],i[2]);n(r.h,r.s,r.v)}}else if(-1!==e.indexOf("hsv")){var a=e.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter(function(e){return""!==e}).map(function(e,t){return t>2?parseFloat(e):parseInt(e,10)});4===a.length?this._alpha=Math.floor(100*parseFloat(a[3])):3===a.length&&(this._alpha=100),a.length>=3&&n(a[0],a[1],a[2])}else if(-1!==e.indexOf("rgb")){var o=e.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter(function(e){return""!==e}).map(function(e,t){return t>2?parseFloat(e):parseInt(e,10)});if(4===o.length?this._alpha=Math.floor(100*parseFloat(o[3])):3===o.length&&(this._alpha=100),o.length>=3){var s=u(o[0],o[1],o[2]);n(s.h,s.s,s.v)}}else if(-1!==e.indexOf("#")){var c=e.replace("#","").trim(),d=void 0,h=void 0,f=void 0;3===c.length?(d=l(c[0]+c[0]),h=l(c[1]+c[1]),f=l(c[2]+c[2])):6!==c.length&&8!==c.length||(d=l(c.substring(0,2)),h=l(c.substring(2,4)),f=l(c.substring(4,6))),8===c.length?this._alpha=Math.floor(l(c.substring(6))/255*100):3!==c.length&&6!==c.length||(this._alpha=100);var p=u(d,h,f);n(p.h,p.s,p.v)}},e.prototype.compare=function(e){return Math.abs(e._hue-this._hue)<2&&Math.abs(e._saturation-this._saturation)<1&&Math.abs(e._value-this._value)<1&&Math.abs(e._alpha-this._alpha)<1},e.prototype.doOnChange=function(){var e=this._hue,t=this._saturation,n=this._value,i=this._alpha,a=this.format;if(this.enableAlpha)switch(a){case"hsl":var s=r(e,t/100,n/100);this.value="hsla("+e+", "+Math.round(100*s[1])+"%, "+Math.round(100*s[2])+"%, "+i/100+")";break;case"hsv":this.value="hsva("+e+", "+Math.round(t)+"%, "+Math.round(n)+"%, "+i/100+")";break;default:var l=c(e,t,n),u=l.r,d=l.g,h=l.b;this.value="rgba("+u+", "+d+", "+h+", "+i/100+")"}else switch(a){case"hsl":var f=r(e,t/100,n/100);this.value="hsl("+e+", "+Math.round(100*f[1])+"%, "+Math.round(100*f[2])+"%)";break;case"hsv":this.value="hsv("+e+", "+Math.round(t)+"%, "+Math.round(n)+"%)";break;case"rgb":var p=c(e,t,n),m=p.r,g=p.g,v=p.b;this.value="rgb("+m+", "+g+", "+v+")";break;default:this.value=function(e){var t=e.r,n=e.g,i=e.b,r=function(e){e=Math.min(Math.round(e),255);var t=Math.floor(e/16),n=e%16;return""+(o[t]||t)+(o[n]||n)};return isNaN(t)||isNaN(n)||isNaN(i)?"":"#"+r(t)+r(n)+r(i)}(c(e,t,n))}},e}();t.default=d},function(e,t,n){e.exports=n(46)},function(e,t,n){"use strict";var i=_e(n(47)),r=_e(n(54)),a=_e(n(58)),o=_e(n(65)),s=_e(n(69)),l=_e(n(73)),u=_e(n(77)),c=_e(n(83)),d=_e(n(86)),h=_e(n(90)),f=_e(n(94)),p=_e(n(99)),m=_e(n(103)),g=_e(n(107)),v=_e(n(111)),y=_e(n(115)),b=_e(n(119)),_=_e(n(123)),x=_e(n(127)),w=_e(n(131)),S=_e(n(141)),C=_e(n(142)),M=_e(n(146)),k=_e(n(150)),T=_e(n(154)),A=_e(n(169)),I=_e(n(171)),E=_e(n(194)),D=_e(n(199)),O=_e(n(204)),P=_e(n(209)),L=_e(n(211)),R=_e(n(217)),N=_e(n(221)),B=_e(n(225)),F=_e(n(229)),z=_e(n(234)),V=_e(n(242)),$=_e(n(246)),G=_e(n(250)),j=_e(n(259)),H=_e(n(263)),W=_e(n(268)),U=_e(n(276)),K=_e(n(281)),q=_e(n(285)),Y=_e(n(287)),Z=_e(n(289)),X=_e(n(301)),J=_e(n(305)),Q=_e(n(309)),ee=_e(n(314)),te=_e(n(318)),ne=_e(n(322)),ie=_e(n(326)),re=_e(n(330)),ae=_e(n(334)),oe=_e(n(339)),se=_e(n(343)),le=_e(n(347)),ue=_e(n(351)),ce=_e(n(355)),de=_e(n(361)),he=_e(n(380)),fe=_e(n(387)),pe=_e(n(391)),me=_e(n(395)),ge=_e(n(399)),ve=_e(n(403)),ye=_e(n(16)),be=_e(n(20));function _e(e){return e&&e.__esModule?e:{default:e}}var xe=[i.default,r.default,a.default,o.default,s.default,l.default,u.default,c.default,d.default,h.default,f.default,p.default,m.default,g.default,v.default,y.default,b.default,_.default,x.default,w.default,S.default,C.default,M.default,k.default,T.default,A.default,I.default,E.default,D.default,O.default,P.default,R.default,N.default,B.default,F.default,z.default,V.default,$.default,G.default,j.default,W.default,K.default,q.default,Y.default,Z.default,X.default,J.default,ee.default,te.default,ne.default,ie.default,re.default,ae.default,oe.default,se.default,le.default,ue.default,ce.default,de.default,he.default,fe.default,pe.default,me.default,ge.default,ve.default,be.default],we=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};ye.default.use(t.locale),ye.default.i18n(t.i18n),xe.forEach(function(t){e.component(t.name,t)}),e.use(U.default.directive),e.prototype.$ELEMENT={size:t.size||"",zIndex:t.zIndex||2e3},e.prototype.$loading=U.default.service,e.prototype.$msgbox=L.default,e.prototype.$alert=L.default.alert,e.prototype.$confirm=L.default.confirm,e.prototype.$prompt=L.default.prompt,e.prototype.$notify=H.default,e.prototype.$message=Q.default};"undefined"!=typeof window&&window.Vue&&we(window.Vue),e.exports={version:"2.4.6",locale:ye.default.use,i18n:ye.default.i18n,install:we,CollapseTransition:be.default,Loading:U.default,Pagination:i.default,Dialog:r.default,Autocomplete:a.default,Dropdown:o.default,DropdownMenu:s.default,DropdownItem:l.default,Menu:u.default,Submenu:c.default,MenuItem:d.default,MenuItemGroup:h.default,Input:f.default,InputNumber:p.default,Radio:m.default,RadioGroup:g.default,RadioButton:v.default,Checkbox:y.default,CheckboxButton:b.default,CheckboxGroup:_.default,Switch:x.default,Select:w.default,Option:S.default,OptionGroup:C.default,Button:M.default,ButtonGroup:k.default,Table:T.default,TableColumn:A.default,DatePicker:I.default,TimeSelect:E.default,TimePicker:D.default,Popover:O.default,Tooltip:P.default,MessageBox:L.default,Breadcrumb:R.default,BreadcrumbItem:N.default,Form:B.default,FormItem:F.default,Tabs:z.default,TabPane:V.default,Tag:$.default,Tree:G.default,Alert:j.default,Notification:H.default,Slider:W.default,Icon:K.default,Row:q.default,Col:Y.default,Upload:Z.default,Progress:X.default,Spinner:J.default,Message:Q.default,Badge:ee.default,Card:te.default,Rate:ne.default,Steps:ie.default,Step:re.default,Carousel:ae.default,Scrollbar:oe.default,CarouselItem:se.default,Collapse:le.default,CollapseItem:ue.default,Cascader:ce.default,ColorPicker:de.default,Transfer:he.default,Container:fe.default,Header:pe.default,Aside:me.default,Main:ge.default,Footer:ve.default},e.exports.default=e.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(48),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=u(n(49)),r=u(n(52)),a=u(n(53)),o=u(n(6)),s=u(n(3)),l=n(4);function u(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElPagination",props:{pageSize:{type:Number,default:10},small:Boolean,total:Number,pageCount:Number,pagerCount:{type:Number,validator:function(e){return(0|e)===e&&e>4&&e<22&&e%2==1},default:7},currentPage:{type:Number,default:1},layout:{default:"prev, pager, next, jumper, ->, total"},pageSizes:{type:Array,default:function(){return[10,20,30,40,50,100]}},popperClass:String,prevText:String,nextText:String,background:Boolean,disabled:Boolean},data:function(){return{internalCurrentPage:1,internalPageSize:0,lastEmittedPage:-1,userChangePageSize:!1}},render:function(e){var t=e("div",{class:["el-pagination",{"is-background":this.background,"el-pagination--small":this.small}]},[]),n=this.layout||"";if(n){var i={prev:e("prev",null,[]),jumper:e("jumper",null,[]),pager:e("pager",{attrs:{currentPage:this.internalCurrentPage,pageCount:this.internalPageCount,pagerCount:this.pagerCount,disabled:this.disabled},on:{change:this.handleCurrentChange}},[]),next:e("next",null,[]),sizes:e("sizes",{attrs:{pageSizes:this.pageSizes}},[]),slot:e("my-slot",null,[]),total:e("total",null,[])},r=n.split(",").map(function(e){return e.trim()}),a=e("div",{class:"el-pagination__rightwrapper"},[]),o=!1;return t.children=t.children||[],a.children=a.children||[],r.forEach(function(e){"->"!==e?o?a.children.push(i[e]):t.children.push(i[e]):o=!0}),o&&t.children.unshift(a),t}},components:{MySlot:{render:function(e){return this.$parent.$slots.default?this.$parent.$slots.default[0]:""}},Prev:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage<=1},class:"btn-prev",on:{click:this.$parent.prev}},[this.$parent.prevText?e("span",null,[this.$parent.prevText]):e("i",{class:"el-icon el-icon-arrow-left"},[])])}},Next:{render:function(e){return e("button",{attrs:{type:"button",disabled:this.$parent.disabled||this.$parent.internalCurrentPage===this.$parent.internalPageCount||0===this.$parent.internalPageCount},class:"btn-next",on:{click:this.$parent.next}},[this.$parent.nextText?e("span",null,[this.$parent.nextText]):e("i",{class:"el-icon el-icon-arrow-right"},[])])}},Sizes:{mixins:[s.default],props:{pageSizes:Array},watch:{pageSizes:{immediate:!0,handler:function(e,t){(0,l.valueEquals)(e,t)||Array.isArray(e)&&(this.$parent.internalPageSize=e.indexOf(this.$parent.pageSize)>-1?this.$parent.pageSize:this.pageSizes[0])}}},render:function(e){var t=this;return e("span",{class:"el-pagination__sizes"},[e("el-select",{attrs:{value:this.$parent.internalPageSize,popperClass:this.$parent.popperClass||"",size:"mini",disabled:this.$parent.disabled},on:{input:this.handleChange}},[this.pageSizes.map(function(n){return e("el-option",{attrs:{value:n,label:n+t.t("el.pagination.pagesize")}},[])})])])},components:{ElSelect:r.default,ElOption:a.default},methods:{handleChange:function(e){e!==this.$parent.internalPageSize&&(this.$parent.internalPageSize=e=parseInt(e,10),this.$parent.userChangePageSize=!0,this.$parent.$emit("size-change",e),this.$parent.$emit("update:pageSize",e))}}},Jumper:{mixins:[s.default],data:function(){return{oldValue:null}},components:{ElInput:o.default},watch:{"$parent.internalPageSize":function(){var e=this;this.$nextTick(function(){e.$refs.input.$el.querySelector("input").value=e.$parent.internalCurrentPage})}},methods:{handleFocus:function(e){this.oldValue=e.target.value},handleBlur:function(e){var t=e.target;this.resetValueIfNeed(t.value),this.reassignMaxValue(t.value)},handleKeyup:function(e){var t=e.keyCode,n=e.target;13===t&&this.oldValue&&n.value!==this.oldValue&&this.handleChange(n.value)},handleChange:function(e){this.$parent.internalCurrentPage=this.$parent.getValidCurrentPage(e),this.$parent.emitChange(),this.oldValue=null,this.resetValueIfNeed(e)},resetValueIfNeed:function(e){var t=parseInt(e,10);isNaN(t)||(t<1?this.$refs.input.setCurrentValue(1):this.reassignMaxValue(e))},reassignMaxValue:function(e){var t=this.$parent.internalPageCount;+e>t&&this.$refs.input.setCurrentValue(t)}},render:function(e){return e("span",{class:"el-pagination__jump"},[this.t("el.pagination.goto"),e("el-input",{class:"el-pagination__editor is-in-pagination",attrs:{min:1,max:this.$parent.internalPageCount,value:this.$parent.internalCurrentPage,type:"number",disabled:this.$parent.disabled},domProps:{value:this.$parent.internalCurrentPage},ref:"input",nativeOn:{keyup:this.handleKeyup},on:{change:this.handleChange,focus:this.handleFocus,blur:this.handleBlur}},[]),this.t("el.pagination.pageClassifier")])}},Total:{mixins:[s.default],render:function(e){return"number"==typeof this.$parent.total?e("span",{class:"el-pagination__total"},[this.t("el.pagination.total",{total:this.$parent.total})]):""}},Pager:i.default},methods:{handleCurrentChange:function(e){this.internalCurrentPage=this.getValidCurrentPage(e),this.userChangePageSize=!0,this.emitChange()},prev:function(){if(!this.disabled){var e=this.internalCurrentPage-1;this.internalCurrentPage=this.getValidCurrentPage(e),this.$emit("prev-click",this.internalCurrentPage),this.emitChange()}},next:function(){if(!this.disabled){var e=this.internalCurrentPage+1;this.internalCurrentPage=this.getValidCurrentPage(e),this.$emit("next-click",this.internalCurrentPage),this.emitChange()}},getValidCurrentPage:function(e){e=parseInt(e,10);var t=void 0;return"number"==typeof this.internalPageCount?e<1?t=1:e>this.internalPageCount&&(t=this.internalPageCount):(isNaN(e)||e<1)&&(t=1),void 0===t&&isNaN(e)?t=1:0===t&&(t=1),void 0===t?e:t},emitChange:function(){var e=this;this.$nextTick(function(){(e.internalCurrentPage!==e.lastEmittedPage||e.userChangePageSize)&&(e.$emit("current-change",e.internalCurrentPage),e.lastEmittedPage=e.internalCurrentPage,e.userChangePageSize=!1)})}},computed:{internalPageCount:function(){return"number"==typeof this.total?Math.ceil(this.total/this.internalPageSize):"number"==typeof this.pageCount?this.pageCount:null}},watch:{currentPage:{immediate:!0,handler:function(e){this.internalCurrentPage=e}},pageSize:{immediate:!0,handler:function(e){this.internalPageSize=isNaN(e)?10:e}},internalCurrentPage:{immediate:!0,handler:function(e,t){e=parseInt(e,10),void 0!==(e=isNaN(e)?t||1:this.getValidCurrentPage(e))?(this.internalCurrentPage=e,t!==e&&this.$emit("update:currentPage",e)):this.$emit("update:currentPage",e),this.lastEmittedPage=-1}},internalPageCount:function(e){var t=this.internalCurrentPage;e>0&&0===t?this.internalCurrentPage=1:t>e&&(this.internalCurrentPage=0===e?1:e,this.userChangePageSize&&this.emitChange()),this.userChangePageSize=!1}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(50),r=n.n(i),a=n(51),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElPager",props:{currentPage:Number,pageCount:Number,pagerCount:Number,disabled:Boolean},watch:{showPrevMore:function(e){e||(this.quickprevIconClass="el-icon-more")},showNextMore:function(e){e||(this.quicknextIconClass="el-icon-more")}},methods:{onPagerClick:function(e){var t=e.target;if("UL"!==t.tagName&&!this.disabled){var n=Number(e.target.textContent),i=this.pageCount,r=this.currentPage,a=this.pagerCount-2;-1!==t.className.indexOf("more")&&(-1!==t.className.indexOf("quickprev")?n=r-a:-1!==t.className.indexOf("quicknext")&&(n=r+a)),isNaN(n)||(n<1&&(n=1),n>i&&(n=i)),n!==r&&this.$emit("change",n)}},onMouseenter:function(e){this.disabled||("left"===e?this.quickprevIconClass="el-icon-d-arrow-left":this.quicknextIconClass="el-icon-d-arrow-right")}},computed:{pagers:function(){var e=this.pagerCount,t=(e-1)/2,n=Number(this.currentPage),i=Number(this.pageCount),r=!1,a=!1;i>e&&(n>e-t&&(r=!0),n<i-t&&(a=!0));var o=[];if(r&&!a)for(var s=i-(e-2);s<i;s++)o.push(s);else if(!r&&a)for(var l=2;l<e;l++)o.push(l);else if(r&&a)for(var u=Math.floor(e/2)-1,c=n-u;c<=n+u;c++)o.push(c);else for(var d=2;d<i;d++)o.push(d);return this.showPrevMore=r,this.showNextMore=a,o}},data:function(){return{current:null,showPrevMore:!1,showNextMore:!1,quicknextIconClass:"el-icon-more",quickprevIconClass:"el-icon-more"}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ul",{staticClass:"el-pager",on:{click:e.onPagerClick}},[e.pageCount>0?n("li",{staticClass:"number",class:{active:1===e.currentPage,disabled:e.disabled}},[e._v("1")]):e._e(),e.showPrevMore?n("li",{staticClass:"el-icon more btn-quickprev",class:[e.quickprevIconClass,{disabled:e.disabled}],on:{mouseenter:function(t){e.onMouseenter("left")},mouseleave:function(t){e.quickprevIconClass="el-icon-more"}}}):e._e(),e._l(e.pagers,function(t){return n("li",{key:t,staticClass:"number",class:{active:e.currentPage===t,disabled:e.disabled}},[e._v(e._s(t))])}),e.showNextMore?n("li",{staticClass:"el-icon more btn-quicknext",class:[e.quicknextIconClass,{disabled:e.disabled}],on:{mouseenter:function(t){e.onMouseenter("right")},mouseleave:function(t){e.quicknextIconClass="el-icon-more"}}}):e._e(),e.pageCount>1?n("li",{staticClass:"number",class:{active:e.currentPage===e.pageCount,disabled:e.disabled}},[e._v(e._s(e.pageCount))]):e._e()],2)},staticRenderFns:[]};t.a=i},function(e,t){e.exports=n("PiGl")},function(e,t){e.exports=n("4c0H")},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(55),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(56),r=n.n(i),a=n(57),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(12)),r=o(n(7)),a=o(n(1));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElDialog",mixins:[i.default,a.default,r.default],props:{title:{type:String,default:""},modal:{type:Boolean,default:!0},modalAppendToBody:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!1},lockScroll:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},width:String,fullscreen:Boolean,customClass:{type:String,default:""},top:{type:String,default:"15vh"},beforeClose:Function,center:{type:Boolean,default:!1}},data:function(){return{closed:!1}},watch:{visible:function(e){var t=this;e?(this.closed=!1,this.$emit("open"),this.$el.addEventListener("scroll",this.updatePopper),this.$nextTick(function(){t.$refs.dialog.scrollTop=0}),this.appendToBody&&document.body.appendChild(this.$el)):(this.$el.removeEventListener("scroll",this.updatePopper),this.closed||this.$emit("close"))}},computed:{style:function(){var e={};return this.fullscreen||(e.marginTop=this.top,this.width&&(e.width=this.width)),e}},methods:{getMigratingConfig:function(){return{props:{size:"size is removed."}}},handleWrapperClick:function(){this.closeOnClickModal&&this.handleClose()},handleClose:function(){"function"==typeof this.beforeClose?this.beforeClose(this.hide):this.hide()},hide:function(e){!1!==e&&(this.$emit("update:visible",!1),this.$emit("close"),this.closed=!0)},updatePopper:function(){this.broadcast("ElSelectDropdown","updatePopper"),this.broadcast("ElDropdownMenu","updatePopper")},afterLeave:function(){this.$emit("closed")}},mounted:function(){this.visible&&(this.rendered=!0,this.open(),this.appendToBody&&document.body.appendChild(this.$el))},destroyed:function(){this.appendToBody&&this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el)}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"dialog-fade"},on:{"after-leave":e.afterLeave}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-dialog__wrapper",on:{click:function(t){if(t.target!==t.currentTarget)return null;e.handleWrapperClick(t)}}},[n("div",{ref:"dialog",staticClass:"el-dialog",class:[{"is-fullscreen":e.fullscreen,"el-dialog--center":e.center},e.customClass],style:e.style},[n("div",{staticClass:"el-dialog__header"},[e._t("title",[n("span",{staticClass:"el-dialog__title"},[e._v(e._s(e.title))])]),e.showClose?n("button",{staticClass:"el-dialog__headerbtn",attrs:{type:"button","aria-label":"Close"},on:{click:e.handleClose}},[n("i",{staticClass:"el-dialog__close el-icon el-icon-close"})]):e._e()],2),e.rendered?n("div",{staticClass:"el-dialog__body"},[e._t("default")],2):e._e(),e.$slots.footer?n("div",{staticClass:"el-dialog__footer"},[e._t("footer")],2):e._e()])])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(59),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(60),r=n.n(i),a=n(64),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=d(n(13)),r=d(n(6)),a=d(n(9)),o=d(n(61)),s=d(n(1)),l=d(n(7)),u=n(4),c=d(n(19));function d(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElAutocomplete",mixins:[s.default,(0,c.default)("input"),l.default],inheritAttrs:!1,componentName:"ElAutocomplete",components:{ElInput:r.default,ElAutocompleteSuggestions:o.default},directives:{Clickoutside:a.default},props:{valueKey:{type:String,default:"value"},popperClass:String,popperOptions:Object,placeholder:String,disabled:Boolean,name:String,size:String,value:String,maxlength:Number,minlength:Number,autofocus:Boolean,fetchSuggestions:Function,triggerOnFocus:{type:Boolean,default:!0},customItem:String,selectWhenUnmatched:{type:Boolean,default:!1},prefixIcon:String,suffixIcon:String,label:String,debounce:{type:Number,default:300},placement:{type:String,default:"bottom-start"},hideLoading:Boolean,popperAppendToBody:{type:Boolean,default:!0}},data:function(){return{activated:!1,suggestions:[],loading:!1,highlightedIndex:-1,suggestionDisabled:!1}},computed:{suggestionVisible:function(){var e=this.suggestions;return(Array.isArray(e)&&e.length>0||this.loading)&&this.activated},id:function(){return"el-autocomplete-"+(0,u.generateId)()}},watch:{suggestionVisible:function(e){this.broadcast("ElAutocompleteSuggestions","visible",[e,this.$refs.input.$refs.input.offsetWidth])}},methods:{getMigratingConfig:function(){return{props:{"custom-item":"custom-item is removed, use scoped slot instead.",props:"props is removed, use value-key instead."}}},getData:function(e){var t=this;this.suggestionDisabled||(this.loading=!0,this.fetchSuggestions(e,function(e){t.loading=!1,t.suggestionDisabled||(Array.isArray(e)?t.suggestions=e:console.error("[Element Error][Autocomplete]autocomplete suggestions must be an array"))}))},handleChange:function(e){if(this.$emit("input",e),this.suggestionDisabled=!1,!this.triggerOnFocus&&!e)return this.suggestionDisabled=!0,void(this.suggestions=[]);this.debouncedGetData(e)},handleFocus:function(e){this.activated=!0,this.$emit("focus",e),this.triggerOnFocus&&this.debouncedGetData(this.value)},handleBlur:function(e){this.$emit("blur",e)},close:function(e){this.activated=!1},handleKeyEnter:function(e){var t=this;this.suggestionVisible&&this.highlightedIndex>=0&&this.highlightedIndex<this.suggestions.length?(e.preventDefault(),this.select(this.suggestions[this.highlightedIndex])):this.selectWhenUnmatched&&(this.$emit("select",{value:this.value}),this.$nextTick(function(e){t.suggestions=[],t.highlightedIndex=-1}))},select:function(e){var t=this;this.$emit("input",e[this.valueKey]),this.$emit("select",e),this.$nextTick(function(e){t.suggestions=[],t.highlightedIndex=-1})},highlight:function(e){if(this.suggestionVisible&&!this.loading)if(e<0)this.highlightedIndex=-1;else{e>=this.suggestions.length&&(e=this.suggestions.length-1);var t=this.$refs.suggestions.$el.querySelector(".el-autocomplete-suggestion__wrap"),n=t.querySelectorAll(".el-autocomplete-suggestion__list li")[e],i=t.scrollTop,r=n.offsetTop;r+n.scrollHeight>i+t.clientHeight&&(t.scrollTop+=n.scrollHeight),r<i&&(t.scrollTop-=n.scrollHeight),this.highlightedIndex=e,this.$el.querySelector(".el-input__inner").setAttribute("aria-activedescendant",this.id+"-item-"+this.highlightedIndex)}}},mounted:function(){var e=this;this.debouncedGetData=(0,i.default)(this.debounce,this.getData),this.$on("item-click",function(t){e.select(t)});var t=this.$el.querySelector(".el-input__inner");t.setAttribute("role","textbox"),t.setAttribute("aria-autocomplete","list"),t.setAttribute("aria-controls","id"),t.setAttribute("aria-activedescendant",this.id+"-item-"+this.highlightedIndex)},beforeDestroy:function(){this.$refs.suggestions.$destroy()}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(62),r=n.n(i),a=n(63),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(8)),r=o(n(1)),a=o(n(18));function o(e){return e&&e.__esModule?e:{default:e}}t.default={components:{ElScrollbar:a.default},mixins:[i.default,r.default],componentName:"ElAutocompleteSuggestions",data:function(){return{parent:this.$parent,dropdownWidth:""}},props:{options:{default:function(){return{gpuAcceleration:!1}}},id:String},methods:{select:function(e){this.dispatch("ElAutocomplete","item-click",e)}},updated:function(){var e=this;this.$nextTick(function(t){e.popperJS&&e.updatePopper()})},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$refs.input.$refs.input,this.referenceList=this.$el.querySelector(".el-autocomplete-suggestion__list"),this.referenceList.setAttribute("role","listbox"),this.referenceList.setAttribute("id",this.id)},created:function(){var e=this;this.$on("visible",function(t,n){e.dropdownWidth=n+"px",e.showPopper=t})}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.doDestroy}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-autocomplete-suggestion el-popper",class:{"is-loading":!e.parent.hideLoading&&e.parent.loading},style:{width:e.dropdownWidth},attrs:{role:"region"}},[n("el-scrollbar",{attrs:{tag:"ul","wrap-class":"el-autocomplete-suggestion__wrap","view-class":"el-autocomplete-suggestion__list"}},[!e.parent.hideLoading&&e.parent.loading?n("li",[n("i",{staticClass:"el-icon-loading"})]):e._t("default")],2)],1)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.close,expression:"close"}],staticClass:"el-autocomplete",attrs:{"aria-haspopup":"listbox",role:"combobox","aria-expanded":e.suggestionVisible,"aria-owns":e.id}},[n("el-input",e._b({ref:"input",on:{input:e.handleChange,focus:e.handleFocus,blur:e.handleBlur},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key))return null;t.preventDefault(),e.highlight(e.highlightedIndex-1)},function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key))return null;t.preventDefault(),e.highlight(e.highlightedIndex+1)},function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.handleKeyEnter(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key))return null;e.close(t)}]}},"el-input",[e.$props,e.$attrs],!1),[e.$slots.prepend?n("template",{attrs:{slot:"prepend"},slot:"prepend"},[e._t("prepend")],2):e._e(),e.$slots.append?n("template",{attrs:{slot:"append"},slot:"append"},[e._t("append")],2):e._e(),e.$slots.prefix?n("template",{attrs:{slot:"prefix"},slot:"prefix"},[e._t("prefix")],2):e._e(),e.$slots.suffix?n("template",{attrs:{slot:"suffix"},slot:"suffix"},[e._t("suffix")],2):e._e()],2),n("el-autocomplete-suggestions",{ref:"suggestions",class:[e.popperClass?e.popperClass:""],attrs:{"visible-arrow":"","popper-options":e.popperOptions,"append-to-body":e.popperAppendToBody,placement:e.placement,id:e.id}},e._l(e.suggestions,function(t,i){return n("li",{key:i,class:{highlighted:e.highlightedIndex===i},attrs:{id:e.id+"-item-"+i,role:"option","aria-selected":e.highlightedIndex===i},on:{click:function(n){e.select(t)}}},[e._t("default",[e._v("\n        "+e._s(t[e.valueKey])+"\n      ")],{item:t})],2)}))],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(66),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(67),r=n.n(i),a=n(0)(r.a,null,!1,null,null,null);t.default=a.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=u(n(9)),r=u(n(1)),a=u(n(7)),o=u(n(15)),s=u(n(68)),l=n(4);function u(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElDropdown",componentName:"ElDropdown",mixins:[r.default,a.default],directives:{Clickoutside:i.default},components:{ElButton:o.default,ElButtonGroup:s.default},provide:function(){return{dropdown:this}},props:{trigger:{type:String,default:"hover"},type:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},placement:{type:String,default:"bottom-end"},visibleArrow:{default:!0},showTimeout:{type:Number,default:250},hideTimeout:{type:Number,default:150}},data:function(){return{timeout:null,visible:!1,triggerElm:null,menuItems:null,menuItemsArray:null,dropdownElm:null,focusing:!1,listId:"dropdown-menu-"+(0,l.generateId)()}},computed:{dropdownSize:function(){return this.size||(this.$ELEMENT||{}).size}},mounted:function(){this.$on("menu-item-click",this.handleMenuItemClick),this.initEvent(),this.initAria()},watch:{visible:function(e){this.broadcast("ElDropdownMenu","visible",e),this.$emit("visible-change",e)},focusing:function(e){var t=this.$el.querySelector(".el-dropdown-selfdefine");t&&(e?t.className+=" focusing":t.className=t.className.replace("focusing",""))}},methods:{getMigratingConfig:function(){return{props:{"menu-align":"menu-align is renamed to placement."}}},show:function(){var e=this;this.triggerElm.disabled||(clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.visible=!0},"click"===this.trigger?0:this.showTimeout))},hide:function(){var e=this;this.triggerElm.disabled||(this.removeTabindex(),this.resetTabindex(this.triggerElm),clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.visible=!1},"click"===this.trigger?0:this.hideTimeout))},handleClick:function(){this.triggerElm.disabled||(this.visible?this.hide():this.show())},handleTriggerKeyDown:function(e){var t=e.keyCode;[38,40].indexOf(t)>-1?(this.removeTabindex(),this.resetTabindex(this.menuItems[0]),this.menuItems[0].focus(),e.preventDefault(),e.stopPropagation()):13===t?this.handleClick():[9,27].indexOf(t)>-1&&this.hide()},handleItemKeyDown:function(e){var t=e.keyCode,n=e.target,i=this.menuItemsArray.indexOf(n),r=this.menuItemsArray.length-1,a=void 0;[38,40].indexOf(t)>-1?(a=38===t?0!==i?i-1:0:i<r?i+1:r,this.removeTabindex(),this.resetTabindex(this.menuItems[a]),this.menuItems[a].focus(),e.preventDefault(),e.stopPropagation()):13===t?(this.triggerElm.focus(),n.click(),this.hideOnClick&&(this.visible=!1)):[9,27].indexOf(t)>-1&&(this.hide(),this.triggerElm.focus())},resetTabindex:function(e){this.removeTabindex(),e.setAttribute("tabindex","0")},removeTabindex:function(){this.triggerElm.setAttribute("tabindex","-1"),this.menuItemsArray.forEach(function(e){e.setAttribute("tabindex","-1")})},initAria:function(){this.dropdownElm.setAttribute("id",this.listId),this.triggerElm.setAttribute("aria-haspopup","list"),this.triggerElm.setAttribute("aria-controls",this.listId),this.menuItems=this.dropdownElm.querySelectorAll("[tabindex='-1']"),this.menuItemsArray=Array.prototype.slice.call(this.menuItems),this.splitButton||(this.triggerElm.setAttribute("role","button"),this.triggerElm.setAttribute("tabindex","0"),this.triggerElm.setAttribute("class",(this.triggerElm.getAttribute("class")||"")+" el-dropdown-selfdefine"))},initEvent:function(){var e=this,t=this.trigger,n=this.show,i=this.hide,r=this.handleClick,a=this.splitButton,o=this.handleTriggerKeyDown,s=this.handleItemKeyDown;this.triggerElm=a?this.$refs.trigger.$el:this.$slots.default[0].elm;var l=this.dropdownElm=this.$slots.dropdown[0].elm;this.triggerElm.addEventListener("keydown",o),l.addEventListener("keydown",s,!0),a||(this.triggerElm.addEventListener("focus",function(){e.focusing=!0}),this.triggerElm.addEventListener("blur",function(){e.focusing=!1}),this.triggerElm.addEventListener("click",function(){e.focusing=!1})),"hover"===t?(this.triggerElm.addEventListener("mouseenter",n),this.triggerElm.addEventListener("mouseleave",i),l.addEventListener("mouseenter",n),l.addEventListener("mouseleave",i)):"click"===t&&this.triggerElm.addEventListener("click",r)},handleMenuItemClick:function(e,t){this.hideOnClick&&(this.visible=!1),this.$emit("command",e,t)},focus:function(){this.triggerElm.focus&&this.triggerElm.focus()}},render:function(e){var t=this,n=this.hide,i=this.splitButton,r=this.type,a=this.dropdownSize,o=i?e("el-button-group",null,[e("el-button",{attrs:{type:r,size:a},nativeOn:{click:function(e){t.$emit("click",e),n()}}},[this.$slots.default]),e("el-button",{ref:"trigger",attrs:{type:r,size:a},class:"el-dropdown__caret-button"},[e("i",{class:"el-dropdown__icon el-icon-arrow-down"},[])])]):this.$slots.default;return e("div",{class:"el-dropdown",directives:[{name:"clickoutside",value:n}]},[o,this.$slots.dropdown])}}},function(e,t){e.exports=n("OBmE")},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(70),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(71),r=n.n(i),a=n(72),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(8),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElDropdownMenu",componentName:"ElDropdownMenu",mixins:[a.default],props:{visibleArrow:{type:Boolean,default:!0},arrowOffset:{type:Number,default:0}},data:function(){return{size:this.dropdown.dropdownSize}},inject:["dropdown"],created:function(){var e=this;this.$on("updatePopper",function(){e.showPopper&&e.updatePopper()}),this.$on("visible",function(t){e.showPopper=t})},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$el},watch:{"dropdown.placement":{immediate:!0,handler:function(e){this.currentPlacement=e}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":this.doDestroy}},[t("ul",{directives:[{name:"show",rawName:"v-show",value:this.showPopper,expression:"showPopper"}],staticClass:"el-dropdown-menu el-popper",class:[this.size&&"el-dropdown-menu--"+this.size]},[this._t("default")],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(74),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(75),r=n.n(i),a=n(76),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElDropdownItem",mixins:[a.default],props:{command:{},disabled:Boolean,divided:Boolean},methods:{handleClick:function(e){this.dispatch("ElDropdown","menu-item-click",[this.command,this])}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("li",{staticClass:"el-dropdown-menu__item",class:{"is-disabled":this.disabled,"el-dropdown-menu__item--divided":this.divided},attrs:{"aria-disabled":this.disabled,tabindex:this.disabled?null:-1},on:{click:this.handleClick}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(78),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(79),r=n.n(i),a=n(0)(r.a,null,!1,null,null,null);t.default=a.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(1)),r=s(n(7)),a=s(n(80)),o=n(2);function s(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElMenu",render:function(e){var t=e("ul",{attrs:{role:"menubar"},key:+this.collapse,style:{backgroundColor:this.backgroundColor||""},class:{"el-menu--horizontal":"horizontal"===this.mode,"el-menu--collapse":this.collapse,"el-menu":!0}},[this.$slots.default]);return this.collapseTransition?e("el-menu-collapse-transition",null,[t]):t},componentName:"ElMenu",mixins:[i.default,r.default],provide:function(){return{rootMenu:this}},components:{"el-menu-collapse-transition":{functional:!0,render:function(e,t){return e("transition",{props:{mode:"out-in"},on:{beforeEnter:function(e){e.style.opacity=.2},enter:function(e){(0,o.addClass)(e,"el-opacity-transition"),e.style.opacity=1},afterEnter:function(e){(0,o.removeClass)(e,"el-opacity-transition"),e.style.opacity=""},beforeLeave:function(e){e.dataset||(e.dataset={}),(0,o.hasClass)(e,"el-menu--collapse")?((0,o.removeClass)(e,"el-menu--collapse"),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth,(0,o.addClass)(e,"el-menu--collapse")):((0,o.addClass)(e,"el-menu--collapse"),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth,(0,o.removeClass)(e,"el-menu--collapse")),e.style.width=e.scrollWidth+"px",e.style.overflow="hidden"},leave:function(e){(0,o.addClass)(e,"horizontal-collapse-transition"),e.style.width=e.dataset.scrollWidth+"px"}}},t.children)}}},props:{mode:{type:String,default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:Array,uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0}},data:function(){return{activeIndex:this.defaultActive,openedMenus:this.defaultOpeneds&&!this.collapse?this.defaultOpeneds.slice(0):[],items:{},submenus:{}}},computed:{hoverBackground:function(){return this.backgroundColor?this.mixColor(this.backgroundColor,.2):""},isMenuPopup:function(){return"horizontal"===this.mode||"vertical"===this.mode&&this.collapse}},watch:{defaultActive:"updateActiveIndex",defaultOpeneds:function(e){this.collapse||(this.openedMenus=e)},collapse:function(e){e&&(this.openedMenus=[]),this.broadcast("ElSubmenu","toggle-collapse",e)}},methods:{updateActiveIndex:function(e){var t=this.items[e]||this.items[this.activeIndex]||this.items[this.defaultActive];t?(this.activeIndex=t.index,this.initOpenedMenu()):this.activeIndex=null},getMigratingConfig:function(){return{props:{theme:"theme is removed."}}},getColorChannels:function(e){if(e=e.replace("#",""),/^[0-9a-fA-F]{3}$/.test(e)){e=e.split("");for(var t=2;t>=0;t--)e.splice(t,0,e[t]);e=e.join("")}return/^[0-9a-fA-F]{6}$/.test(e)?{red:parseInt(e.slice(0,2),16),green:parseInt(e.slice(2,4),16),blue:parseInt(e.slice(4,6),16)}:{red:255,green:255,blue:255}},mixColor:function(e,t){var n=this.getColorChannels(e),i=n.red,r=n.green,a=n.blue;return t>0?(i*=1-t,r*=1-t,a*=1-t):(i+=(255-i)*t,r+=(255-r)*t,a+=(255-a)*t),"rgb("+Math.round(i)+", "+Math.round(r)+", "+Math.round(a)+")"},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},openMenu:function(e,t){var n=this.openedMenus;-1===n.indexOf(e)&&(this.uniqueOpened&&(this.openedMenus=n.filter(function(e){return-1!==t.indexOf(e)})),this.openedMenus.push(e))},closeMenu:function(e){var t=this.openedMenus.indexOf(e);-1!==t&&this.openedMenus.splice(t,1)},handleSubmenuClick:function(e){var t=e.index,n=e.indexPath;-1!==this.openedMenus.indexOf(t)?(this.closeMenu(t),this.$emit("close",t,n)):(this.openMenu(t,n),this.$emit("open",t,n))},handleItemClick:function(e){var t=this,n=e.index,i=e.indexPath,r=this.activeIndex;this.activeIndex=e.index,this.$emit("select",n,i,e),("horizontal"===this.mode||this.collapse)&&(this.openedMenus=[]),this.router&&this.routeToItem(e,function(e){t.activeIndex=r,e&&console.error(e)})},initOpenedMenu:function(){var e=this,t=this.activeIndex,n=this.items[t];n&&"horizontal"!==this.mode&&!this.collapse&&n.indexPath.forEach(function(t){var n=e.submenus[t];n&&e.openMenu(t,n.indexPath)})},routeToItem:function(e,t){var n=e.route||e.index;try{this.$router.push(n,function(){},t)}catch(e){console.error(e)}},open:function(e){var t=this,n=this.submenus[e.toString()].indexPath;n.forEach(function(e){return t.openMenu(e,n)})},close:function(e){this.closeMenu(e)}},mounted:function(){this.initOpenedMenu(),this.$on("item-click",this.handleItemClick),this.$on("submenu-click",this.handleSubmenuClick),"horizontal"===this.mode&&new a.default(this.$el),this.$watch("items",this.updateActiveIndex)}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(81),a=(i=r)&&i.__esModule?i:{default:i};var o=function(e){this.domNode=e,this.init()};o.prototype.init=function(){var e=this.domNode.childNodes;[].filter.call(e,function(e){return 1===e.nodeType}).forEach(function(e){new a.default(e)})},t.default=o},function(e,t,n){"use strict";t.__esModule=!0;var i=a(n(31)),r=a(n(82));function a(e){return e&&e.__esModule?e:{default:e}}var o=function(e){this.domNode=e,this.submenu=null,this.init()};o.prototype.init=function(){this.domNode.setAttribute("tabindex","0");var e=this.domNode.querySelector(".el-menu");e&&(this.submenu=new r.default(this,e)),this.addListeners()},o.prototype.addListeners=function(){var e=this,t=i.default.keys;this.domNode.addEventListener("keydown",function(n){var r=!1;switch(n.keyCode){case t.down:i.default.triggerEvent(n.currentTarget,"mouseenter"),e.submenu&&e.submenu.gotoSubIndex(0),r=!0;break;case t.up:i.default.triggerEvent(n.currentTarget,"mouseenter"),e.submenu&&e.submenu.gotoSubIndex(e.submenu.subMenuItems.length-1),r=!0;break;case t.tab:i.default.triggerEvent(n.currentTarget,"mouseleave");break;case t.enter:case t.space:r=!0,n.currentTarget.click()}r&&n.preventDefault()})},t.default=o},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(31),a=(i=r)&&i.__esModule?i:{default:i};var o=function(e,t){this.domNode=t,this.parent=e,this.subMenuItems=[],this.subIndex=0,this.init()};o.prototype.init=function(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()},o.prototype.gotoSubIndex=function(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e},o.prototype.addListeners=function(){var e=this,t=a.default.keys,n=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,function(i){i.addEventListener("keydown",function(i){var r=!1;switch(i.keyCode){case t.down:e.gotoSubIndex(e.subIndex+1),r=!0;break;case t.up:e.gotoSubIndex(e.subIndex-1),r=!0;break;case t.tab:a.default.triggerEvent(n,"mouseleave");break;case t.enter:case t.space:r=!0,i.currentTarget.click()}return r&&(i.preventDefault(),i.stopPropagation()),!1})})},t.default=o},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(84),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(85),r=n.n(i),a=n(0)(r.a,null,!1,null,null,null);t.default=a.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(20)),r=s(n(32)),a=s(n(1)),o=s(n(8));function s(e){return e&&e.__esModule?e:{default:e}}var l={props:{transformOrigin:{type:[Boolean,String],default:!1},offset:o.default.props.offset,boundariesPadding:o.default.props.boundariesPadding,popperOptions:o.default.props.popperOptions},data:o.default.data,methods:o.default.methods,beforeDestroy:o.default.beforeDestroy,deactivated:o.default.deactivated};t.default={name:"ElSubmenu",componentName:"ElSubmenu",mixins:[r.default,a.default,l],components:{ElCollapseTransition:i.default},props:{index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0}},data:function(){return{popperJS:null,timeout:null,items:{},submenus:{},mouseInChild:!1}},watch:{opened:function(e){var t=this;this.isMenuPopup&&this.$nextTick(function(e){t.updatePopper()})}},computed:{appendToBody:function(){return void 0===this.popperAppendToBody?this.isFirstLevel:this.popperAppendToBody},menuTransitionName:function(){return this.rootMenu.collapse?"el-zoom-in-left":"el-zoom-in-top"},opened:function(){return this.rootMenu.openedMenus.indexOf(this.index)>-1},active:function(){var e=!1,t=this.submenus,n=this.items;return Object.keys(n).forEach(function(t){n[t].active&&(e=!0)}),Object.keys(t).forEach(function(n){t[n].active&&(e=!0)}),e},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},isMenuPopup:function(){return this.rootMenu.isMenuPopup},titleStyle:function(){return"horizontal"!==this.mode?{color:this.textColor}:{borderBottomColor:this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent",color:this.active?this.activeTextColor:this.textColor}},isFirstLevel:function(){for(var e=!0,t=this.$parent;t&&t!==this.rootMenu;){if(["ElSubmenu","ElMenuItemGroup"].indexOf(t.$options.componentName)>-1){e=!1;break}t=t.$parent}return e}},methods:{handleCollapseToggle:function(e){e?this.initPopper():this.doDestroy()},addItem:function(e){this.$set(this.items,e.index,e)},removeItem:function(e){delete this.items[e.index]},addSubmenu:function(e){this.$set(this.submenus,e.index,e)},removeSubmenu:function(e){delete this.submenus[e.index]},handleClick:function(){var e=this.rootMenu,t=this.disabled;"hover"===e.menuTrigger&&"horizontal"===e.mode||e.collapse&&"vertical"===e.mode||t||this.dispatch("ElMenu","submenu-click",this)},handleMouseenter:function(){var e=this,t=this.rootMenu,n=this.disabled;"click"===t.menuTrigger&&"horizontal"===t.mode||!t.collapse&&"vertical"===t.mode||n||(this.dispatch("ElSubmenu","mouse-enter-child"),clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.rootMenu.openMenu(e.index,e.indexPath)},this.showTimeout))},handleMouseleave:function(){var e=this,t=this.rootMenu;"click"===t.menuTrigger&&"horizontal"===t.mode||!t.collapse&&"vertical"===t.mode||(this.dispatch("ElSubmenu","mouse-leave-child"),clearTimeout(this.timeout),this.timeout=setTimeout(function(){!e.mouseInChild&&e.rootMenu.closeMenu(e.index)},this.hideTimeout))},handleTitleMouseenter:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.hoverBackground)}},handleTitleMouseleave:function(){if("horizontal"!==this.mode||this.rootMenu.backgroundColor){var e=this.$refs["submenu-title"];e&&(e.style.backgroundColor=this.rootMenu.backgroundColor||"")}},updatePlacement:function(){this.currentPlacement="horizontal"===this.mode&&this.isFirstLevel?"bottom-start":"right-start"},initPopper:function(){this.referenceElm=this.$el,this.popperElm=this.$refs.menu,this.updatePlacement()}},created:function(){var e=this;this.$on("toggle-collapse",this.handleCollapseToggle),this.$on("mouse-enter-child",function(){e.mouseInChild=!0,clearTimeout(e.timeout)}),this.$on("mouse-leave-child",function(){e.mouseInChild=!1,clearTimeout(e.timeout)})},mounted:function(){this.parentMenu.addSubmenu(this),this.rootMenu.addSubmenu(this),this.initPopper()},beforeDestroy:function(){this.parentMenu.removeSubmenu(this),this.rootMenu.removeSubmenu(this)},render:function(e){var t=this.active,n=this.opened,i=this.paddingStyle,r=this.titleStyle,a=this.backgroundColor,o=this.rootMenu,s=this.currentPlacement,l=this.menuTransitionName,u=this.mode,c=this.disabled,d=this.popperClass,h=this.$slots,f=this.isFirstLevel,p=e("transition",{attrs:{name:l}},[e("div",{ref:"menu",directives:[{name:"show",value:n}],class:["el-menu--"+u,d],on:{mouseenter:this.handleMouseenter,mouseleave:this.handleMouseleave,focus:this.handleMouseenter}},[e("ul",{attrs:{role:"menu"},class:["el-menu el-menu--popup","el-menu--popup-"+s],style:{backgroundColor:o.backgroundColor||""}},[h.default])])]),m=e("el-collapse-transition",null,[e("ul",{attrs:{role:"menu"},class:"el-menu el-menu--inline",directives:[{name:"show",value:n}],style:{backgroundColor:o.backgroundColor||""}},[h.default])]),g="horizontal"===o.mode&&f||"vertical"===o.mode&&!o.collapse?"el-icon-arrow-down":"el-icon-arrow-right";return e("li",{class:{"el-submenu":!0,"is-active":t,"is-opened":n,"is-disabled":c},attrs:{role:"menuitem","aria-haspopup":"true","aria-expanded":n},on:{mouseenter:this.handleMouseenter,mouseleave:this.handleMouseleave,focus:this.handleMouseenter}},[e("div",{class:"el-submenu__title",ref:"submenu-title",on:{click:this.handleClick,mouseenter:this.handleTitleMouseenter,mouseleave:this.handleTitleMouseleave},style:[i,r,{backgroundColor:a}]},[h.title,e("i",{class:["el-submenu__icon-arrow",g]},[])]),this.isMenuPopup?p:m])}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(87),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(88),r=n.n(i),a=n(89),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(32)),r=o(n(23)),a=o(n(1));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElMenuItem",componentName:"ElMenuItem",mixins:[i.default,a.default],components:{ElTooltip:r.default},props:{index:{type:String,required:!0},route:[String,Object],disabled:Boolean},computed:{active:function(){return this.index===this.rootMenu.activeIndex},hoverBackground:function(){return this.rootMenu.hoverBackground},backgroundColor:function(){return this.rootMenu.backgroundColor||""},activeTextColor:function(){return this.rootMenu.activeTextColor||""},textColor:function(){return this.rootMenu.textColor||""},mode:function(){return this.rootMenu.mode},itemStyle:function(){var e={color:this.active?this.activeTextColor:this.textColor};return"horizontal"!==this.mode||this.isNested||(e.borderBottomColor=this.active?this.rootMenu.activeTextColor?this.activeTextColor:"":"transparent"),e},isNested:function(){return this.parentMenu!==this.rootMenu}},methods:{onMouseEnter:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.hoverBackground)},onMouseLeave:function(){("horizontal"!==this.mode||this.rootMenu.backgroundColor)&&(this.$el.style.backgroundColor=this.backgroundColor)},handleClick:function(){this.disabled||(this.dispatch("ElMenu","item-click",this),this.$emit("click",this))}},mounted:function(){this.parentMenu.addItem(this),this.rootMenu.addItem(this)},beforeDestroy:function(){this.parentMenu.removeItem(this),this.rootMenu.removeItem(this)}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{staticClass:"el-menu-item",class:{"is-active":e.active,"is-disabled":e.disabled},style:[e.paddingStyle,e.itemStyle,{backgroundColor:e.backgroundColor}],attrs:{role:"menuitem",tabindex:"-1"},on:{click:e.handleClick,mouseenter:e.onMouseEnter,focus:e.onMouseEnter,blur:e.onMouseLeave,mouseleave:e.onMouseLeave}},["ElMenu"===e.parentMenu.$options.componentName&&e.rootMenu.collapse&&e.$slots.title?n("el-tooltip",{attrs:{effect:"dark",placement:"right"}},[n("div",{attrs:{slot:"content"},slot:"content"},[e._t("title")],2),n("div",{staticStyle:{position:"absolute",left:"0",top:"0",height:"100%",width:"100%",display:"inline-block","box-sizing":"border-box",padding:"0 20px"}},[e._t("default")],2)]):[e._t("default"),e._t("title")]],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(91),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(92),r=n.n(i),a=n(93),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElMenuItemGroup",componentName:"ElMenuItemGroup",inject:["rootMenu"],props:{title:{type:String}},data:function(){return{paddingLeft:20}},computed:{levelPadding:function(){var e=20,t=this.$parent;if(this.rootMenu.collapse)return 20;for(;t&&"ElMenu"!==t.$options.componentName;)"ElSubmenu"===t.$options.componentName&&(e+=20),t=t.$parent;return e}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("li",{staticClass:"el-menu-item-group"},[t("div",{staticClass:"el-menu-item-group__title",style:{paddingLeft:this.levelPadding+"px"}},[this.$slots.title?this._t("title"):[this._v(this._s(this.title))]],2),t("ul",[this._t("default")],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(95),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(96),r=n.n(i),a=n(98),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=l(n(1)),r=l(n(7)),a=l(n(97)),o=l(n(10)),s=n(24);function l(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElInput",componentName:"ElInput",mixins:[i.default,r.default],inheritAttrs:!1,inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{currentValue:void 0===this.value||null===this.value?"":this.value,textareaCalcStyle:{},hovering:!1,focused:!1,isOnComposition:!1,valueBeforeComposition:null}},props:{value:[String,Number],size:String,resize:String,form:String,disabled:Boolean,readonly:Boolean,type:{type:String,default:"text"},autosize:{type:[Boolean,Object],default:!1},autoComplete:{type:String,default:"off"},validateEvent:{type:Boolean,default:!0},suffixIcon:String,prefixIcon:String,label:String,clearable:{type:Boolean,default:!1},tabindex:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},validateState:function(){return this.elFormItem?this.elFormItem.validateState:""},needStatusIcon:function(){return!!this.elForm&&this.elForm.statusIcon},validateIcon:function(){return{validating:"el-icon-loading",success:"el-icon-circle-check",error:"el-icon-circle-close"}[this.validateState]},textareaStyle:function(){return(0,o.default)({},this.textareaCalcStyle,{resize:this.resize})},inputSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputDisabled:function(){return this.disabled||(this.elForm||{}).disabled},showClear:function(){return this.clearable&&!this.disabled&&!this.readonly&&""!==this.currentValue&&(this.focused||this.hovering)}},watch:{value:function(e,t){this.setCurrentValue(e)}},methods:{focus:function(){(this.$refs.input||this.$refs.textarea).focus()},blur:function(){(this.$refs.input||this.$refs.textarea).blur()},getMigratingConfig:function(){return{props:{icon:"icon is removed, use suffix-icon / prefix-icon instead.","on-icon-click":"on-icon-click is removed."},events:{click:"click is removed."}}},handleBlur:function(e){this.focused=!1,this.$emit("blur",e),this.validateEvent&&this.dispatch("ElFormItem","el.form.blur",[this.currentValue])},select:function(){(this.$refs.input||this.$refs.textarea).select()},resizeTextarea:function(){if(!this.$isServer){var e=this.autosize;if("textarea"===this.type)if(e){var t=e.minRows,n=e.maxRows;this.textareaCalcStyle=(0,a.default)(this.$refs.textarea,t,n)}else this.textareaCalcStyle={minHeight:(0,a.default)(this.$refs.textarea).minHeight}}},handleFocus:function(e){this.focused=!0,this.$emit("focus",e)},handleComposition:function(e){if("compositionend"===e.type)this.isOnComposition=!1,this.currentValue=this.valueBeforeComposition,this.valueBeforeComposition=null,this.handleInput(e);else{var t=e.target.value,n=t[t.length-1]||"";this.isOnComposition=!(0,s.isKorean)(n),this.isOnComposition&&"compositionstart"===e.type&&(this.valueBeforeComposition=t)}},handleInput:function(e){var t=e.target.value;this.setCurrentValue(t),this.isOnComposition||this.$emit("input",t)},handleChange:function(e){this.$emit("change",e.target.value)},setCurrentValue:function(e){this.isOnComposition&&e===this.valueBeforeComposition||(this.currentValue=e,this.isOnComposition||(this.$nextTick(this.resizeTextarea),this.validateEvent&&this.currentValue===this.value&&this.dispatch("ElFormItem","el.form.change",[e])))},calcIconOffset:function(e){var t=[].slice.call(this.$el.querySelectorAll(".el-input__"+e)||[]);if(t.length){for(var n=null,i=0;i<t.length;i++)if(t[i].parentNode===this.$el){n=t[i];break}if(n){var r={suffix:"append",prefix:"prepend"}[e];this.$slots[r]?n.style.transform="translateX("+("suffix"===e?"-":"")+this.$el.querySelector(".el-input-group__"+r).offsetWidth+"px)":n.removeAttribute("style")}}},updateIconOffset:function(){this.calcIconOffset("prefix"),this.calcIconOffset("suffix")},clear:function(){this.$emit("input",""),this.$emit("change",""),this.$emit("clear"),this.setCurrentValue(""),this.focus()}},created:function(){this.$on("inputSelect",this.select)},mounted:function(){this.resizeTextarea(),this.updateIconOffset()},updated:function(){this.$nextTick(this.updateIconOffset)}}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;i||(i=document.createElement("textarea"),document.body.appendChild(i));var o=function(e){var t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),i=parseFloat(t.getPropertyValue("padding-bottom"))+parseFloat(t.getPropertyValue("padding-top")),r=parseFloat(t.getPropertyValue("border-bottom-width"))+parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:a.map(function(e){return e+":"+t.getPropertyValue(e)}).join(";"),paddingSize:i,borderSize:r,boxSizing:n}}(e),s=o.paddingSize,l=o.borderSize,u=o.boxSizing,c=o.contextStyle;i.setAttribute("style",c+";"+r),i.value=e.value||e.placeholder||"";var d=i.scrollHeight,h={};"border-box"===u?d+=l:"content-box"===u&&(d-=s);i.value="";var f=i.scrollHeight-s;if(null!==t){var p=f*t;"border-box"===u&&(p=p+s+l),d=Math.max(p,d),h.minHeight=p+"px"}if(null!==n){var m=f*n;"border-box"===u&&(m=m+s+l),d=Math.min(m,d)}return h.height=d+"px",i.parentNode&&i.parentNode.removeChild(i),i=null,h};var i=void 0,r="\n  height:0 !important;\n  visibility:hidden !important;\n  overflow:hidden !important;\n  position:absolute !important;\n  z-index:-1000 !important;\n  top:0 !important;\n  right:0 !important\n",a=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"]},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["textarea"===e.type?"el-textarea":"el-input",e.inputSize?"el-input--"+e.inputSize:"",{"is-disabled":e.inputDisabled,"el-input-group":e.$slots.prepend||e.$slots.append,"el-input-group--append":e.$slots.append,"el-input-group--prepend":e.$slots.prepend,"el-input--prefix":e.$slots.prefix||e.prefixIcon,"el-input--suffix":e.$slots.suffix||e.suffixIcon||e.clearable}],on:{mouseenter:function(t){e.hovering=!0},mouseleave:function(t){e.hovering=!1}}},["textarea"!==e.type?[e.$slots.prepend?n("div",{staticClass:"el-input-group__prepend"},[e._t("prepend")],2):e._e(),"textarea"!==e.type?n("input",e._b({ref:"input",staticClass:"el-input__inner",attrs:{tabindex:e.tabindex,type:e.type,disabled:e.inputDisabled,readonly:e.readonly,autocomplete:e.autoComplete,"aria-label":e.label},domProps:{value:e.currentValue},on:{compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"input",e.$attrs,!1)):e._e(),e.$slots.prefix||e.prefixIcon?n("span",{staticClass:"el-input__prefix"},[e._t("prefix"),e.prefixIcon?n("i",{staticClass:"el-input__icon",class:e.prefixIcon}):e._e()],2):e._e(),e.$slots.suffix||e.suffixIcon||e.showClear||e.validateState&&e.needStatusIcon?n("span",{staticClass:"el-input__suffix"},[n("span",{staticClass:"el-input__suffix-inner"},[e.showClear?n("i",{staticClass:"el-input__icon el-icon-circle-close el-input__clear",on:{click:e.clear}}):[e._t("suffix"),e.suffixIcon?n("i",{staticClass:"el-input__icon",class:e.suffixIcon}):e._e()]],2),e.validateState?n("i",{staticClass:"el-input__icon",class:["el-input__validateIcon",e.validateIcon]}):e._e()]):e._e(),e.$slots.append?n("div",{staticClass:"el-input-group__append"},[e._t("append")],2):e._e()]:n("textarea",e._b({ref:"textarea",staticClass:"el-textarea__inner",style:e.textareaStyle,attrs:{tabindex:e.tabindex,disabled:e.inputDisabled,readonly:e.readonly,"aria-label":e.label},domProps:{value:e.currentValue},on:{compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:e.handleInput,focus:e.handleFocus,blur:e.handleBlur,change:e.handleChange}},"textarea",e.$attrs,!1))],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(100),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(101),r=n.n(i),a=n(102),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(6)),r=o(n(19)),a=o(n(33));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElInputNumber",mixins:[(0,r.default)("input")],inject:{elForm:{default:""},elFormItem:{default:""}},directives:{repeatClick:a.default},components:{ElInput:i.default},props:{step:{type:Number,default:1},max:{type:Number,default:1/0},min:{type:Number,default:-1/0},value:{},disabled:Boolean,size:String,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:""},name:String,label:String,precision:{type:Number,validator:function(e){return e>=0&&e===parseInt(e,10)}}},data:function(){return{currentValue:0}},watch:{value:{immediate:!0,handler:function(e){var t=void 0===e?e:Number(e);if(void 0!==t){if(isNaN(t))return;void 0!==this.precision&&(t=this.toPrecision(t,this.precision))}t>=this.max&&(t=this.max),t<=this.min&&(t=this.min),this.currentValue=t,this.$emit("input",t)}}},computed:{minDisabled:function(){return this._decrease(this.value,this.step)<this.min},maxDisabled:function(){return this._increase(this.value,this.step)>this.max},numPrecision:function(){var e=this.value,t=this.step,n=this.getPrecision,i=this.precision,r=n(t);return void 0!==i?(r>i&&console.warn("[Element Warn][InputNumber]precision should not be less than the decimal places of step"),i):Math.max(n(e),r)},controlsAtRight:function(){return"right"===this.controlsPosition},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},inputNumberSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},inputNumberDisabled:function(){return this.disabled||(this.elForm||{}).disabled},currentInputValue:function(){var e=this.currentValue;return"number"==typeof e&&void 0!==this.precision?e.toFixed(this.precision):e}},methods:{toPrecision:function(e,t){return void 0===t&&(t=this.numPrecision),parseFloat(parseFloat(Number(e).toFixed(t)))},getPrecision:function(e){if(void 0===e)return 0;var t=e.toString(),n=t.indexOf("."),i=0;return-1!==n&&(i=t.length-n-1),i},_increase:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var n=Math.pow(10,this.numPrecision);return this.toPrecision((n*e+n*t)/n)},_decrease:function(e,t){if("number"!=typeof e&&void 0!==e)return this.currentValue;var n=Math.pow(10,this.numPrecision);return this.toPrecision((n*e-n*t)/n)},increase:function(){if(!this.inputNumberDisabled&&!this.maxDisabled){var e=this.value||0,t=this._increase(e,this.step);this.setCurrentValue(t)}},decrease:function(){if(!this.inputNumberDisabled&&!this.minDisabled){var e=this.value||0,t=this._decrease(e,this.step);this.setCurrentValue(t)}},handleBlur:function(e){this.$emit("blur",e),this.$refs.input.setCurrentValue(this.currentInputValue)},handleFocus:function(e){this.$emit("focus",e)},setCurrentValue:function(e){var t=this.currentValue;"number"==typeof e&&void 0!==this.precision&&(e=this.toPrecision(e,this.precision)),e>=this.max&&(e=this.max),e<=this.min&&(e=this.min),t!==e?(this.$emit("input",e),this.$emit("change",e,t),this.currentValue=e):this.$refs.input.setCurrentValue(this.currentInputValue)},handleInputChange:function(e){var t=""===e?void 0:Number(e);isNaN(t)&&""!==e||this.setCurrentValue(t)}},mounted:function(){var e=this.$refs.input.$refs.input;e.setAttribute("role","spinbutton"),e.setAttribute("aria-valuemax",this.max),e.setAttribute("aria-valuemin",this.min),e.setAttribute("aria-valuenow",this.currentValue),e.setAttribute("aria-disabled",this.inputNumberDisabled)},updated:function(){this.$refs&&this.$refs.input&&this.$refs.input.$refs.input.setAttribute("aria-valuenow",this.currentValue)}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:["el-input-number",e.inputNumberSize?"el-input-number--"+e.inputNumberSize:"",{"is-disabled":e.inputNumberDisabled},{"is-without-controls":!e.controls},{"is-controls-right":e.controlsAtRight}],on:{dragstart:function(e){e.preventDefault()}}},[e.controls?n("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-input-number__decrease",class:{"is-disabled":e.minDisabled},attrs:{role:"button"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.decrease(t)}}},[n("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-down":"minus")})]):e._e(),e.controls?n("span",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-input-number__increase",class:{"is-disabled":e.maxDisabled},attrs:{role:"button"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.increase(t)}}},[n("i",{class:"el-icon-"+(e.controlsAtRight?"arrow-up":"plus")})]):e._e(),n("el-input",{ref:"input",attrs:{value:e.currentInputValue,disabled:e.inputNumberDisabled,size:e.inputNumberSize,max:e.max,min:e.min,name:e.name,label:e.label},on:{blur:e.handleBlur,focus:e.handleFocus,change:e.handleInputChange},nativeOn:{keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key))return null;t.preventDefault(),e.increase(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key))return null;t.preventDefault(),e.decrease(t)}]}})],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(104),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(105),r=n.n(i),a=n(106),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElRadio",mixins:[a.default],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElRadio",props:{value:{},label:{},disabled:Boolean,name:String,border:Boolean,size:String},data:function(){return{focus:!1}},computed:{isGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return this._radioGroup=e,!0;e=e.$parent}return!1},model:{get:function(){return this.isGroup?this._radioGroup.value:this.value},set:function(e){this.isGroup?this.dispatch("ElRadioGroup","input",[e]):this.$emit("input",e)}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},radioSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._radioGroup.radioGroupSize||e},isDisabled:function(){return this.isGroup?this._radioGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled?-1:this.isGroup?this.model===this.label?0:-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick(function(){e.$emit("change",e.model),e.isGroup&&e.dispatch("ElRadioGroup","handleChange",e.model)})}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"el-radio",class:[e.border&&e.radioSize?"el-radio--"+e.radioSize:"",{"is-disabled":e.isDisabled},{"is-focus":e.focus},{"is-bordered":e.border},{"is-checked":e.model===e.label}],attrs:{role:"radio","aria-checked":e.model===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key))return null;t.stopPropagation(),t.preventDefault(),e.model=e.isDisabled?e.model:e.label}}},[n("span",{staticClass:"el-radio__input",class:{"is-disabled":e.isDisabled,"is-checked":e.model===e.label}},[n("span",{staticClass:"el-radio__inner"}),n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-radio__original",attrs:{type:"radio","aria-hidden":"true",name:e.name,disabled:e.isDisabled,tabindex:"-1"},domProps:{value:e.label,checked:e._q(e.model,e.label)},on:{focus:function(t){e.focus=!0},blur:function(t){e.focus=!1},change:[function(t){e.model=e.label},e.handleChange]}})]),n("span",{staticClass:"el-radio__label",on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(108),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(109),r=n.n(i),a=n(110),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};var o=Object.freeze({LEFT:37,UP:38,RIGHT:39,DOWN:40});t.default={name:"ElRadioGroup",componentName:"ElRadioGroup",inject:{elFormItem:{default:""}},mixins:[a.default],props:{value:{},size:String,fill:String,textColor:String,disabled:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},radioGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},created:function(){var e=this;this.$on("handleChange",function(t){e.$emit("change",t)})},mounted:function(){var e=this.$el.querySelectorAll("[type=radio]"),t=this.$el.querySelectorAll("[role=radio]")[0];![].some.call(e,function(e){return e.checked})&&t&&(t.tabIndex=0)},methods:{handleKeydown:function(e){var t=e.target,n="INPUT"===t.nodeName?"[type=radio]":"[role=radio]",i=this.$el.querySelectorAll(n),r=i.length,a=[].indexOf.call(i,t),s=this.$el.querySelectorAll("[role=radio]");switch(e.keyCode){case o.LEFT:case o.UP:e.stopPropagation(),e.preventDefault(),0===a?(s[r-1].click(),s[r-1].focus()):(s[a-1].click(),s[a-1].focus());break;case o.RIGHT:case o.DOWN:a===r-1?(e.stopPropagation(),e.preventDefault(),s[0].click(),s[0].focus()):(s[a+1].click(),s[a+1].focus())}}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[this.value])}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-radio-group",attrs:{role:"radiogroup"},on:{keydown:this.handleKeydown}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(112),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(113),r=n.n(i),a=n(114),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElRadioButton",mixins:[a.default],inject:{elForm:{default:""},elFormItem:{default:""}},props:{label:{},disabled:Boolean,name:String},data:function(){return{focus:!1}},computed:{value:{get:function(){return this._radioGroup.value},set:function(e){this._radioGroup.$emit("input",e)}},_radioGroup:function(){for(var e=this.$parent;e;){if("ElRadioGroup"===e.$options.componentName)return e;e=e.$parent}return!1},activeStyle:function(){return{backgroundColor:this._radioGroup.fill||"",borderColor:this._radioGroup.fill||"",boxShadow:this._radioGroup.fill?"-1px 0 0 0 "+this._radioGroup.fill:"",color:this._radioGroup.textColor||""}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},size:function(){return this._radioGroup.radioGroupSize||this._elFormItemSize||(this.$ELEMENT||{}).size},isDisabled:function(){return this.disabled||this._radioGroup.disabled||(this.elForm||{}).disabled},tabIndex:function(){return this.isDisabled?-1:this._radioGroup?this.value===this.label?0:-1:0}},methods:{handleChange:function(){var e=this;this.$nextTick(function(){e.dispatch("ElRadioGroup","handleChange",e.value)})}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"el-radio-button",class:[e.size?"el-radio-button--"+e.size:"",{"is-active":e.value===e.label},{"is-disabled":e.isDisabled},{"is-focus":e.focus}],attrs:{role:"radio","aria-checked":e.value===e.label,"aria-disabled":e.isDisabled,tabindex:e.tabIndex},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key))return null;t.stopPropagation(),t.preventDefault(),e.value=e.isDisabled?e.value:e.label}}},[n("input",{directives:[{name:"model",rawName:"v-model",value:e.value,expression:"value"}],staticClass:"el-radio-button__orig-radio",attrs:{type:"radio",name:e.name,disabled:e.isDisabled,tabindex:"-1"},domProps:{value:e.label,checked:e._q(e.value,e.label)},on:{change:[function(t){e.value=e.label},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}),n("span",{staticClass:"el-radio-button__inner",style:e.value===e.label?e.activeStyle:null,on:{keydown:function(e){e.stopPropagation()}}},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(116),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(117),r=n.n(i),a=n(118),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElCheckbox",mixins:[a.default],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.length<this._checkboxGroup.min&&(this.isLimitExceeded=!0),void 0!==this._checkboxGroup.max&&e.length>this._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._checkboxGroup.checkboxGroupSize||e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var n=void 0;n=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",n,e),this.$nextTick(function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])})}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"el-checkbox",class:[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}],attrs:{role:"checkbox","aria-checked":e.indeterminate?"mixed":e.isChecked,"aria-disabled":e.isDisabled,id:e.id}},[n("span",{staticClass:"el-checkbox__input",class:{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus},attrs:{"aria-checked":"mixed"}},[n("span",{staticClass:"el-checkbox__inner"}),e.trueLabel||e.falseLabel?n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":"true",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var n=e.model,i=t.target,r=i.checked?e.trueLabel:e.falseLabel;if(Array.isArray(n)){var a=e._i(n,null);i.checked?a<0&&(e.model=n.concat([null])):a>-1&&(e.model=n.slice(0,a).concat(n.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":"true",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var n=e.model,i=t.target,r=!!i.checked;if(Array.isArray(n)){var a=e.label,o=e._i(n,a);i.checked?o<0&&(e.model=n.concat([a])):o>-1&&(e.model=n.slice(0,o).concat(n.slice(o+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?n("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(120),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(121),r=n.n(i),a=n(122),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElCheckboxButton",mixins:[a.default],inject:{elForm:{default:""},elFormItem:{default:""}},data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},props:{value:{},label:{},disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number]},computed:{model:{get:function(){return this._checkboxGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this._checkboxGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.length<this._checkboxGroup.min&&(this.isLimitExceeded=!0),void 0!==this._checkboxGroup.max&&e.length>this._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):void 0!==this.value?this.$emit("input",e):this.selfModel=e}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},_checkboxGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return e;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},activeStyle:function(){return{backgroundColor:this._checkboxGroup.fill||"",borderColor:this._checkboxGroup.fill||"",color:this._checkboxGroup.textColor||"","box-shadow":"-1px 0 0 0 "+this._checkboxGroup.fill}},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},size:function(){return this._checkboxGroup.checkboxGroupSize||this._elFormItemSize||(this.$ELEMENT||{}).size},isDisabled:function(){return this._checkboxGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled}},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var n=void 0;n=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",n,e),this.$nextTick(function(){t._checkboxGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])})}}},created:function(){this.checked&&this.addToStore()}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"el-checkbox-button",class:[e.size?"el-checkbox-button--"+e.size:"",{"is-disabled":e.isDisabled},{"is-checked":e.isChecked},{"is-focus":e.focus}],attrs:{role:"checkbox","aria-checked":e.isChecked,"aria-disabled":e.isDisabled}},[e.trueLabel||e.falseLabel?n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox-button__original",attrs:{type:"checkbox",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var n=e.model,i=t.target,r=i.checked?e.trueLabel:e.falseLabel;if(Array.isArray(n)){var a=e._i(n,null);i.checked?a<0&&(e.model=n.concat([null])):a>-1&&(e.model=n.slice(0,a).concat(n.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox-button__original",attrs:{type:"checkbox",name:e.name,disabled:e.isDisabled},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var n=e.model,i=t.target,r=!!i.checked;if(Array.isArray(n)){var a=e.label,o=e._i(n,a);i.checked?o<0&&(e.model=n.concat([a])):o>-1&&(e.model=n.slice(0,o).concat(n.slice(o+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}),e.$slots.default||e.label?n("span",{staticClass:"el-checkbox-button__inner",style:e.isChecked?e.activeStyle:null},[e._t("default",[e._v(e._s(e.label))])],2):e._e()])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(124),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(125),r=n.n(i),a=n(126),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElCheckboxGroup",componentName:"ElCheckboxGroup",mixins:[a.default],inject:{elFormItem:{default:""}},props:{value:{},disabled:Boolean,min:Number,max:Number,size:String,fill:String,textColor:String},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxGroupSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",[e])}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-checkbox-group",attrs:{role:"group","aria-label":"checkbox-group"}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(128),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(129),r=n.n(i),a=n(130),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=a(n(19)),r=a(n(7));function a(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElSwitch",mixins:[(0,i.default)("input"),r.default],inject:{elForm:{default:""}},props:{value:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},width:{type:Number,default:40},activeIconClass:{type:String,default:""},inactiveIconClass:{type:String,default:""},activeText:String,inactiveText:String,activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:""},id:String},data:function(){return{coreWidth:this.width}},created:function(){~[this.activeValue,this.inactiveValue].indexOf(this.value)||this.$emit("input",this.inactiveValue)},computed:{checked:function(){return this.value===this.activeValue},switchDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{checked:function(){this.$refs.input.checked=this.checked,(this.activeColor||this.inactiveColor)&&this.setBackgroundColor()}},methods:{handleChange:function(e){var t=this;this.$emit("input",this.checked?this.inactiveValue:this.activeValue),this.$emit("change",this.checked?this.inactiveValue:this.activeValue),this.$nextTick(function(){t.$refs.input.checked=t.checked})},setBackgroundColor:function(){var e=this.checked?this.activeColor:this.inactiveColor;this.$refs.core.style.borderColor=e,this.$refs.core.style.backgroundColor=e},switchValue:function(){!this.switchDisabled&&this.handleChange()},getMigratingConfig:function(){return{props:{"on-color":"on-color is renamed to active-color.","off-color":"off-color is renamed to inactive-color.","on-text":"on-text is renamed to active-text.","off-text":"off-text is renamed to inactive-text.","on-value":"on-value is renamed to active-value.","off-value":"off-value is renamed to inactive-value.","on-icon-class":"on-icon-class is renamed to active-icon-class.","off-icon-class":"off-icon-class is renamed to inactive-icon-class."}}}},mounted:function(){this.coreWidth=this.width||40,(this.activeColor||this.inactiveColor)&&this.setBackgroundColor(),this.$refs.input.checked=this.checked}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-switch",class:{"is-disabled":e.switchDisabled,"is-checked":e.checked},attrs:{role:"switch","aria-checked":e.checked,"aria-disabled":e.switchDisabled},on:{click:e.switchValue}},[n("input",{ref:"input",staticClass:"el-switch__input",attrs:{type:"checkbox",id:e.id,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:e.switchDisabled},on:{change:e.handleChange,keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.switchValue(t)}}}),e.inactiveIconClass||e.inactiveText?n("span",{class:["el-switch__label","el-switch__label--left",e.checked?"":"is-active"]},[e.inactiveIconClass?n("i",{class:[e.inactiveIconClass]}):e._e(),!e.inactiveIconClass&&e.inactiveText?n("span",{attrs:{"aria-hidden":e.checked}},[e._v(e._s(e.inactiveText))]):e._e()]):e._e(),n("span",{ref:"core",staticClass:"el-switch__core",style:{width:e.coreWidth+"px"}}),e.activeIconClass||e.activeText?n("span",{class:["el-switch__label","el-switch__label--right",e.checked?"is-active":""]},[e.activeIconClass?n("i",{class:[e.activeIconClass]}):e._e(),!e.activeIconClass&&e.activeText?n("span",{attrs:{"aria-hidden":!e.checked}},[e._v(e._s(e.activeText))]):e._e()]):e._e()])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(132),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(133),r=n.n(i),a=n(140),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=x(n(1)),a=x(n(19)),o=x(n(3)),s=x(n(6)),l=x(n(134)),u=x(n(34)),c=x(n(25)),d=x(n(18)),h=x(n(13)),f=x(n(9)),p=n(2),m=n(17),g=n(16),v=x(n(26)),y=n(4),b=x(n(139)),_=n(24);function x(e){return e&&e.__esModule?e:{default:e}}var w={medium:36,small:32,mini:28};t.default={mixins:[r.default,o.default,(0,a.default)("reference"),b.default],name:"ElSelect",componentName:"ElSelect",inject:{elForm:{default:""},elFormItem:{default:""}},provide:function(){return{select:this}},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},readonly:function(){var e=!this.$isServer&&!isNaN(Number(document.documentMode));return!this.filterable||this.multiple||!e&&!this.visible},iconClass:function(){return this.clearable&&!this.selectDisabled&&this.inputHovering&&!this.multiple&&void 0!==this.value&&null!==this.value&&""!==this.value?"circle-close is-show-close":this.remote&&this.filterable?"":"arrow-up"},debounce:function(){return this.remote?300:0},emptyText:function(){return this.loading?this.loadingText||this.t("el.select.loading"):(!this.remote||""!==this.query||0!==this.options.length)&&(this.filterable&&this.query&&this.options.length>0&&0===this.filteredOptionsCount?this.noMatchText||this.t("el.select.noMatch"):0===this.options.length?this.noDataText||this.t("el.select.noData"):null)},showNewOption:function(){var e=this,t=this.options.filter(function(e){return!e.created}).some(function(t){return t.currentLabel===e.query});return this.filterable&&this.allowCreate&&""!==this.query&&!t},selectSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},selectDisabled:function(){return this.disabled||(this.elForm||{}).disabled},collapseTagSize:function(){return["small","mini"].indexOf(this.selectSize)>-1?"mini":"small"}},components:{ElInput:s.default,ElSelectMenu:l.default,ElOption:u.default,ElTag:c.default,ElScrollbar:d.default},directives:{Clickoutside:f.default},props:{name:String,id:String,value:{required:!0},autoComplete:{type:String,default:"off"},automaticDropdown:Boolean,size:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:String,remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod:Function,multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String,default:function(){return(0,g.t)("el.select.placeholder")}},defaultFirstOption:Boolean,reserveKeyword:Boolean,valueKey:{type:String,default:"value"},collapseTags:Boolean,popperAppendToBody:{type:Boolean,default:!0}},data:function(){return{options:[],cachedOptions:[],createdLabel:null,createdSelected:!1,selected:this.multiple?[]:{},inputLength:20,inputWidth:0,cachedPlaceHolder:"",optionsCount:0,filteredOptionsCount:0,visible:!1,softFocus:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,currentPlaceholder:"",menuVisibleOnFocus:!1,isOnComposition:!1,isSilentBlur:!1}},watch:{selectDisabled:function(){var e=this;this.$nextTick(function(){e.resetInputHeight()})},placeholder:function(e){this.cachedPlaceHolder=this.currentPlaceholder=e},value:function(e,t){this.multiple&&(this.resetInputHeight(),e.length>0||this.$refs.input&&""!==this.query?this.currentPlaceholder="":this.currentPlaceholder=this.cachedPlaceHolder,this.filterable&&!this.reserveKeyword&&(this.query="",this.handleQueryChange(this.query))),this.setSelected(),this.filterable&&!this.multiple&&(this.inputLength=20),(0,y.valueEquals)(e,t)||this.dispatch("ElFormItem","el.form.change",e)},visible:function(e){var t=this;e?(this.handleIconShow(),this.broadcast("ElSelectDropdown","updatePopper"),this.filterable&&(this.query=this.remote?"":this.selectedLabel,this.handleQueryChange(this.query),this.multiple?this.$refs.input.focus():(this.remote||(this.broadcast("ElOption","queryChange",""),this.broadcast("ElOptionGroup","queryChange")),this.broadcast("ElInput","inputSelect")))):(this.handleIconHide(),this.broadcast("ElSelectDropdown","destroyPopper"),this.$refs.input&&this.$refs.input.blur(),this.query="",this.previousQuery=null,this.selectedLabel="",this.inputLength=20,this.resetHoverIndex(),this.$nextTick(function(){t.$refs.input&&""===t.$refs.input.value&&0===t.selected.length&&(t.currentPlaceholder=t.cachedPlaceHolder)}),this.multiple||this.selected&&(this.filterable&&this.allowCreate&&this.createdSelected&&this.createdLabel?this.selectedLabel=this.createdLabel:this.selectedLabel=this.selected.currentLabel,this.filterable&&(this.query=this.selectedLabel))),this.$emit("visible-change",e)},options:function(){var e=this;if(!this.$isServer){this.$nextTick(function(){e.broadcast("ElSelectDropdown","updatePopper")}),this.multiple&&this.resetInputHeight();var t=this.$el.querySelectorAll("input");-1===[].indexOf.call(t,document.activeElement)&&this.setSelected(),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}}},methods:{handleComposition:function(e){var t=e.target.value;if("compositionend"===e.type)this.isOnComposition=!1,this.handleQueryChange(t);else{var n=t[t.length-1]||"";this.isOnComposition=!(0,_.isKorean)(n)}},handleQueryChange:function(e){var t=this;if(this.previousQuery!==e&&!this.isOnComposition)if(null!==this.previousQuery||"function"!=typeof this.filterMethod&&"function"!=typeof this.remoteMethod){if(this.previousQuery=e,this.$nextTick(function(){t.visible&&t.broadcast("ElSelectDropdown","updatePopper")}),this.hoverIndex=-1,this.multiple&&this.filterable){var n=15*this.$refs.input.value.length+20;this.inputLength=this.collapseTags?Math.min(50,n):n,this.managePlaceholder(),this.resetInputHeight()}this.remote&&"function"==typeof this.remoteMethod?(this.hoverIndex=-1,this.remoteMethod(e)):"function"==typeof this.filterMethod?(this.filterMethod(e),this.broadcast("ElOptionGroup","queryChange")):(this.filteredOptionsCount=this.optionsCount,this.broadcast("ElOption","queryChange",e),this.broadcast("ElOptionGroup","queryChange")),this.defaultFirstOption&&(this.filterable||this.remote)&&this.filteredOptionsCount&&this.checkDefaultFirstOption()}else this.previousQuery=e},handleIconHide:function(){var e=this.$el.querySelector(".el-input__icon");e&&(0,p.removeClass)(e,"is-reverse")},handleIconShow:function(){var e=this.$el.querySelector(".el-input__icon");e&&!(0,p.hasClass)(e,"el-icon-circle-close")&&(0,p.addClass)(e,"is-reverse")},scrollToOption:function(e){var t=Array.isArray(e)&&e[0]?e[0].$el:e.$el;if(this.$refs.popper&&t){var n=this.$refs.popper.$el.querySelector(".el-select-dropdown__wrap");(0,v.default)(n,t)}this.$refs.scrollbar&&this.$refs.scrollbar.handleScroll()},handleMenuEnter:function(){var e=this;this.$nextTick(function(){return e.scrollToOption(e.selected)})},emitChange:function(e){(0,y.valueEquals)(this.value,e)||this.$emit("change",e)},getOption:function(e){for(var t=void 0,n="[object object]"===Object.prototype.toString.call(e).toLowerCase(),i="[object null]"===Object.prototype.toString.call(e).toLowerCase(),r=this.cachedOptions.length-1;r>=0;r--){var a=this.cachedOptions[r];if(n?(0,y.getValueByPath)(a.value,this.valueKey)===(0,y.getValueByPath)(e,this.valueKey):a.value===e){t=a;break}}if(t)return t;var o={value:e,currentLabel:n||i?"":e};return this.multiple&&(o.hitState=!1),o},setSelected:function(){var e=this;if(!this.multiple){var t=this.getOption(this.value);return t.created?(this.createdLabel=t.currentLabel,this.createdSelected=!0):this.createdSelected=!1,this.selectedLabel=t.currentLabel,this.selected=t,void(this.filterable&&(this.query=this.selectedLabel))}var n=[];Array.isArray(this.value)&&this.value.forEach(function(t){n.push(e.getOption(t))}),this.selected=n,this.$nextTick(function(){e.resetInputHeight()})},handleFocus:function(e){this.softFocus?this.softFocus=!1:((this.automaticDropdown||this.filterable)&&(this.visible=!0,this.menuVisibleOnFocus=!0),this.$emit("focus",e))},blur:function(){this.visible=!1,this.$refs.reference.blur()},handleBlur:function(e){var t=this;setTimeout(function(){t.isSilentBlur?t.isSilentBlur=!1:t.$emit("blur",e)},50),this.softFocus=!1},handleIconClick:function(e){this.iconClass.indexOf("circle-close")>-1&&this.deleteSelected(e)},doDestroy:function(){this.$refs.popper&&this.$refs.popper.doDestroy()},handleClose:function(){this.visible=!1},toggleLastOptionHitState:function(e){if(Array.isArray(this.selected)){var t=this.selected[this.selected.length-1];if(t)return!0===e||!1===e?(t.hitState=e,e):(t.hitState=!t.hitState,t.hitState)}},deletePrevTag:function(e){if(e.target.value.length<=0&&!this.toggleLastOptionHitState()){var t=this.value.slice();t.pop(),this.$emit("input",t),this.emitChange(t)}},managePlaceholder:function(){""!==this.currentPlaceholder&&(this.currentPlaceholder=this.$refs.input.value?"":this.cachedPlaceHolder)},resetInputState:function(e){8!==e.keyCode&&this.toggleLastOptionHitState(!1),this.inputLength=15*this.$refs.input.value.length+20,this.resetInputHeight()},resetInputHeight:function(){var e=this;this.collapseTags&&!this.filterable||this.$nextTick(function(){if(e.$refs.reference){var t=e.$refs.reference.$el.childNodes,n=[].filter.call(t,function(e){return"INPUT"===e.tagName})[0],i=e.$refs.tags,r=w[e.selectSize]||40;n.style.height=0===e.selected.length?r+"px":Math.max(i?i.clientHeight+(i.clientHeight>r?6:0):0,r)+"px",e.visible&&!1!==e.emptyText&&e.broadcast("ElSelectDropdown","updatePopper")}})},resetHoverIndex:function(){var e=this;setTimeout(function(){e.multiple?e.selected.length>0?e.hoverIndex=Math.min.apply(null,e.selected.map(function(t){return e.options.indexOf(t)})):e.hoverIndex=-1:e.hoverIndex=e.options.indexOf(e.selected)},300)},handleOptionSelect:function(e,t){var n=this;if(this.multiple){var i=this.value.slice(),r=this.getValueIndex(i,e.value);r>-1?i.splice(r,1):(this.multipleLimit<=0||i.length<this.multipleLimit)&&i.push(e.value),this.$emit("input",i),this.emitChange(i),e.created&&(this.query="",this.handleQueryChange(""),this.inputLength=20),this.filterable&&this.$refs.input.focus()}else this.$emit("input",e.value),this.emitChange(e.value),this.visible=!1;this.isSilentBlur=t,this.setSoftFocus(),this.visible||this.$nextTick(function(){n.scrollToOption(e)})},setSoftFocus:function(){this.softFocus=!0;var e=this.$refs.input||this.$refs.reference;e&&e.focus()},getValueIndex:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];if(!("[object object]"===Object.prototype.toString.call(n).toLowerCase()))return t.indexOf(n);var r,a,o=(r=e.valueKey,a=-1,t.some(function(e,t){return(0,y.getValueByPath)(e,r)===(0,y.getValueByPath)(n,r)&&(a=t,!0)}),{v:a});return"object"===(void 0===o?"undefined":i(o))?o.v:void 0},toggleMenu:function(){this.selectDisabled||(this.menuVisibleOnFocus?this.menuVisibleOnFocus=!1:this.visible=!this.visible,this.visible&&(this.$refs.input||this.$refs.reference).focus())},selectOption:function(){this.visible?this.options[this.hoverIndex]&&this.handleOptionSelect(this.options[this.hoverIndex]):this.toggleMenu()},deleteSelected:function(e){e.stopPropagation(),this.$emit("input",""),this.emitChange(""),this.visible=!1,this.$emit("clear")},deleteTag:function(e,t){var n=this.selected.indexOf(t);if(n>-1&&!this.selectDisabled){var i=this.value.slice();i.splice(n,1),this.$emit("input",i),this.emitChange(i),this.$emit("remove-tag",t.value)}e.stopPropagation()},onInputChange:function(){this.filterable&&this.query!==this.selectedLabel&&(this.query=this.selectedLabel,this.handleQueryChange(this.query))},onOptionDestroy:function(e){e>-1&&(this.optionsCount--,this.filteredOptionsCount--,this.options.splice(e,1))},resetInputWidth:function(){this.inputWidth=this.$refs.reference.$el.getBoundingClientRect().width},handleResize:function(){this.resetInputWidth(),this.multiple&&this.resetInputHeight()},checkDefaultFirstOption:function(){this.hoverIndex=-1;for(var e=!1,t=this.options.length-1;t>=0;t--)if(this.options[t].created){e=!0,this.hoverIndex=t;break}if(!e)for(var n=0;n!==this.options.length;++n){var i=this.options[n];if(this.query){if(!i.disabled&&!i.groupDisabled&&i.visible){this.hoverIndex=n;break}}else if(i.itemSelected){this.hoverIndex=n;break}}},getValueKey:function(e){return"[object object]"!==Object.prototype.toString.call(e.value).toLowerCase()?e.value:(0,y.getValueByPath)(e.value,this.valueKey)}},created:function(){var e=this;this.cachedPlaceHolder=this.currentPlaceholder=this.placeholder,this.multiple&&!Array.isArray(this.value)&&this.$emit("input",[]),!this.multiple&&Array.isArray(this.value)&&this.$emit("input",""),this.debouncedOnInputChange=(0,h.default)(this.debounce,function(){e.onInputChange()}),this.debouncedQueryChange=(0,h.default)(this.debounce,function(t){e.handleQueryChange(t.target.value)}),this.$on("handleOptionClick",this.handleOptionSelect),this.$on("setSelected",this.setSelected)},mounted:function(){var e=this;this.multiple&&Array.isArray(this.value)&&this.value.length>0&&(this.currentPlaceholder=""),(0,m.addResizeListener)(this.$el,this.handleResize),this.remote&&this.multiple&&this.resetInputHeight(),this.$nextTick(function(){e.$refs.reference&&e.$refs.reference.$el&&(e.inputWidth=e.$refs.reference.$el.getBoundingClientRect().width)}),this.setSelected()},beforeDestroy:function(){this.$el&&this.handleResize&&(0,m.removeResizeListener)(this.$el,this.handleResize)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(135),r=n.n(i),a=n(136),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(8),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElSelectDropdown",componentName:"ElSelectDropdown",mixins:[a.default],props:{placement:{default:"bottom-start"},boundariesPadding:{default:0},popperOptions:{default:function(){return{gpuAcceleration:!1}}},visibleArrow:{default:!0},appendToBody:{type:Boolean,default:!0}},data:function(){return{minWidth:""}},computed:{popperClass:function(){return this.$parent.popperClass}},watch:{"$parent.inputWidth":function(){this.minWidth=this.$parent.$el.getBoundingClientRect().width+"px"}},mounted:function(){var e=this;this.referenceElm=this.$parent.$refs.reference.$el,this.$parent.popperElm=this.popperElm=this.$el,this.$on("updatePopper",function(){e.$parent.visible&&e.updatePopper()}),this.$on("destroyPopper",this.destroyPopper)}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-select-dropdown el-popper",class:[{"is-multiple":this.$parent.multiple},this.popperClass],style:{minWidth:this.minWidth}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n(1),o=(i=a)&&i.__esModule?i:{default:i},s=n(4);t.default={mixins:[o.default],name:"ElOption",componentName:"ElOption",inject:["select"],props:{value:{required:!0},label:[String,Number],created:Boolean,disabled:{type:Boolean,default:!1}},data:function(){return{index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}},computed:{isObject:function(){return"[object object]"===Object.prototype.toString.call(this.value).toLowerCase()},currentLabel:function(){return this.label||(this.isObject?"":this.value)},currentValue:function(){return this.value||this.label||""},itemSelected:function(){return this.select.multiple?this.contains(this.select.value,this.value):this.isEqual(this.value,this.select.value)},limitReached:function(){return!!this.select.multiple&&(!this.itemSelected&&(this.select.value||[]).length>=this.select.multipleLimit&&this.select.multipleLimit>0)}},watch:{currentLabel:function(){this.created||this.select.remote||this.dispatch("ElSelect","setSelected")},value:function(e,t){var n=this.select,i=n.remote,a=n.valueKey;if(!this.created&&!i){if(a&&"object"===(void 0===e?"undefined":r(e))&&"object"===(void 0===t?"undefined":r(t))&&e[a]===t[a])return;this.dispatch("ElSelect","setSelected")}}},methods:{isEqual:function(e,t){if(this.isObject){var n=this.select.valueKey;return(0,s.getValueByPath)(e,n)===(0,s.getValueByPath)(t,n)}return e===t},contains:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments[1];if(!this.isObject)return t.indexOf(n)>-1;var i,a=(i=e.select.valueKey,{v:t.some(function(e){return(0,s.getValueByPath)(e,i)===(0,s.getValueByPath)(n,i)})});return"object"===(void 0===a?"undefined":r(a))?a.v:void 0},handleGroupDisabled:function(e){this.groupDisabled=e},hoverItem:function(){this.disabled||this.groupDisabled||(this.select.hoverIndex=this.select.options.indexOf(this))},selectOptionClick:function(){!0!==this.disabled&&!0!==this.groupDisabled&&this.dispatch("ElSelect","handleOptionClick",[this,!0])},queryChange:function(e){this.visible=new RegExp((0,s.escapeRegexpString)(e),"i").test(this.currentLabel)||this.created,this.visible||this.select.filteredOptionsCount--}},created:function(){this.select.options.push(this),this.select.cachedOptions.push(this),this.select.optionsCount++,this.select.filteredOptionsCount++,this.$on("queryChange",this.queryChange),this.$on("handleGroupDisabled",this.handleGroupDisabled)},beforeDestroy:function(){this.select.onOptionDestroy(this.select.options.indexOf(this))}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("li",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-select-dropdown__item",class:{selected:e.itemSelected,"is-disabled":e.disabled||e.groupDisabled||e.limitReached,hover:e.hover},on:{mouseenter:e.hoverItem,click:function(t){t.stopPropagation(),e.selectOptionClick(t)}}},[e._t("default",[n("span",[e._v(e._s(e.currentLabel))])])],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0,t.default={data:function(){return{hoverOption:-1}},computed:{optionsAllDisabled:function(){return this.options.filter(function(e){return e.visible}).every(function(e){return e.disabled})}},watch:{hoverIndex:function(e){var t=this;"number"==typeof e&&e>-1&&(this.hoverOption=this.options[e]||{}),this.options.forEach(function(e){e.hover=t.hoverOption===e})}},methods:{navigateOptions:function(e){var t=this;if(this.visible){if(0!==this.options.length&&0!==this.filteredOptionsCount&&!this.optionsAllDisabled){"next"===e?(this.hoverIndex++,this.hoverIndex===this.options.length&&(this.hoverIndex=0)):"prev"===e&&(this.hoverIndex--,this.hoverIndex<0&&(this.hoverIndex=this.options.length-1));var n=this.options[this.hoverIndex];!0!==n.disabled&&!0!==n.groupDisabled&&n.visible||this.navigateOptions(e),this.$nextTick(function(){return t.scrollToOption(t.hoverOption)})}}else this.visible=!0}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],staticClass:"el-select",class:[e.selectSize?"el-select--"+e.selectSize:""],on:{click:function(t){t.stopPropagation(),e.toggleMenu(t)}}},[e.multiple?n("div",{ref:"tags",staticClass:"el-select__tags",style:{"max-width":e.inputWidth-32+"px"}},[e.collapseTags&&e.selected.length?n("span",[n("el-tag",{attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:e.selected[0].hitState,type:"info","disable-transitions":""},on:{close:function(t){e.deleteTag(t,e.selected[0])}}},[n("span",{staticClass:"el-select__tags-text"},[e._v(e._s(e.selected[0].currentLabel))])]),e.selected.length>1?n("el-tag",{attrs:{closable:!1,size:e.collapseTagSize,type:"info","disable-transitions":""}},[n("span",{staticClass:"el-select__tags-text"},[e._v("+ "+e._s(e.selected.length-1))])]):e._e()],1):e._e(),e.collapseTags?e._e():n("transition-group",{on:{"after-leave":e.resetInputHeight}},e._l(e.selected,function(t){return n("el-tag",{key:e.getValueKey(t),attrs:{closable:!e.selectDisabled,size:e.collapseTagSize,hit:t.hitState,type:"info","disable-transitions":""},on:{close:function(n){e.deleteTag(n,t)}}},[n("span",{staticClass:"el-select__tags-text"},[e._v(e._s(t.currentLabel))])])})),e.filterable?n("input",{directives:[{name:"model",rawName:"v-model",value:e.query,expression:"query"}],ref:"input",staticClass:"el-select__input",class:[e.selectSize?"is-"+e.selectSize:""],style:{width:e.inputLength+"px","max-width":e.inputWidth-42+"px"},attrs:{type:"text",disabled:e.selectDisabled,autocomplete:e.autoComplete},domProps:{value:e.query},on:{focus:e.handleFocus,blur:function(t){e.softFocus=!1},click:function(e){e.stopPropagation()},keyup:e.managePlaceholder,keydown:[e.resetInputState,function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key))return null;t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key))return null;t.preventDefault(),e.navigateOptions("prev")},function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;t.preventDefault(),e.selectOption(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"delete",[8,46],t.key))return null;e.deletePrevTag(t)}],compositionstart:e.handleComposition,compositionupdate:e.handleComposition,compositionend:e.handleComposition,input:[function(t){t.target.composing||(e.query=t.target.value)},e.debouncedQueryChange]}}):e._e()],1):e._e(),n("el-input",{ref:"reference",class:{"is-focus":e.visible},attrs:{type:"text",placeholder:e.currentPlaceholder,name:e.name,id:e.id,"auto-complete":e.autoComplete,size:e.selectSize,disabled:e.selectDisabled,readonly:e.readonly,"validate-event":!1},on:{focus:e.handleFocus,blur:e.handleBlur},nativeOn:{keyup:function(t){e.debouncedOnInputChange(t)},keydown:[function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("next")},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key))return null;t.stopPropagation(),t.preventDefault(),e.navigateOptions("prev")},function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;t.preventDefault(),e.selectOption(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"esc",27,t.key))return null;t.stopPropagation(),t.preventDefault(),e.visible=!1},function(t){if(!("button"in t)&&e._k(t.keyCode,"tab",9,t.key))return null;e.visible=!1}],paste:function(t){e.debouncedOnInputChange(t)},mouseenter:function(t){e.inputHovering=!0},mouseleave:function(t){e.inputHovering=!1}},model:{value:e.selectedLabel,callback:function(t){e.selectedLabel=t},expression:"selectedLabel"}},[e.$slots.prefix?n("template",{attrs:{slot:"prefix"},slot:"prefix"},[e._t("prefix")],2):e._e(),n("i",{class:["el-select__caret","el-input__icon","el-icon-"+e.iconClass],attrs:{slot:"suffix"},on:{click:e.handleIconClick},slot:"suffix"})],2),n("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":e.doDestroy}},[n("el-select-menu",{directives:[{name:"show",rawName:"v-show",value:e.visible&&!1!==e.emptyText,expression:"visible && emptyText !== false"}],ref:"popper",attrs:{"append-to-body":e.popperAppendToBody}},[n("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.options.length>0&&!e.loading,expression:"options.length > 0 && !loading"}],ref:"scrollbar",class:{"is-empty":!e.allowCreate&&e.query&&0===e.filteredOptionsCount},attrs:{tag:"ul","wrap-class":"el-select-dropdown__wrap","view-class":"el-select-dropdown__list"}},[e.showNewOption?n("el-option",{attrs:{value:e.query,created:""}}):e._e(),e._t("default")],2),e.emptyText&&(!e.allowCreate||e.loading||e.allowCreate&&0===e.options.length)?n("p",{staticClass:"el-select-dropdown__empty"},[e._v("\n        "+e._s(e.emptyText)+"\n      ")]):e._e()],1)],1)],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(34),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(143),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(144),r=n.n(i),a=n(145),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={mixins:[a.default],name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:{type:Boolean,default:!1}},data:function(){return{visible:!0}},watch:{disabled:function(e){this.broadcast("ElOption","handleGroupDisabled",e)}},methods:{queryChange:function(){this.visible=this.$children&&Array.isArray(this.$children)&&this.$children.some(function(e){return!0===e.visible})}},created:function(){this.$on("queryChange",this.queryChange)},mounted:function(){this.disabled&&this.broadcast("ElOption","handleGroupDisabled",this.disabled)}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("ul",{directives:[{name:"show",rawName:"v-show",value:this.visible,expression:"visible"}],staticClass:"el-select-group__wrap"},[t("li",{staticClass:"el-select-group__title"},[this._v(this._s(this.label))]),t("li",[t("ul",{staticClass:"el-select-group"},[this._t("default")],2)])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(147),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(148),r=n.n(i),a=n(149),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElButton",inject:{elForm:{default:""},elFormItem:{default:""}},props:{type:{type:String,default:"default"},size:String,icon:{type:String,default:""},nativeType:{type:String,default:"button"},loading:Boolean,disabled:Boolean,plain:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean},computed:{_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},buttonSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},buttonDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},methods:{handleClick:function(e){this.$emit("click",e)}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("button",{staticClass:"el-button",class:[e.type?"el-button--"+e.type:"",e.buttonSize?"el-button--"+e.buttonSize:"",{"is-disabled":e.buttonDisabled,"is-loading":e.loading,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle}],attrs:{disabled:e.buttonDisabled||e.loading,autofocus:e.autofocus,type:e.nativeType},on:{click:e.handleClick}},[e.loading?n("i",{staticClass:"el-icon-loading"}):e._e(),e.icon&&!e.loading?n("i",{class:e.icon}):e._e(),e.$slots.default?n("span",[e._t("default")],2):e._e()])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(151),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(152),r=n.n(i),a=n(153),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElButtonGroup"}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-button-group"},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(155),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(156),r=n.n(i),a=n(168),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=p(n(14)),r=p(n(13)),a=n(17),o=p(n(157)),s=p(n(3)),l=p(n(7)),u=p(n(159)),c=p(n(160)),d=p(n(161)),h=p(n(162)),f=p(n(167));function p(e){return e&&e.__esModule?e:{default:e}}var m=1;t.default={name:"ElTable",mixins:[s.default,l.default],directives:{Mousewheel:o.default},props:{data:{type:Array,default:function(){return[]}},size:String,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],context:{},showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,defaultSort:Object,tooltipEffect:String,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0}},components:{TableHeader:h.default,TableFooter:f.default,TableBody:d.default,ElCheckbox:i.default},methods:{getMigratingConfig:function(){return{events:{expand:"expand is renamed to expand-change"}}},setCurrentRow:function(e){this.store.commit("setCurrentRow",e)},toggleRowSelection:function(e,t){this.store.toggleRowSelection(e,t),this.store.updateAllSelected()},toggleRowExpansion:function(e,t){this.store.toggleRowExpansion(e,t)},clearSelection:function(){this.store.clearSelection()},clearFilter:function(){this.store.clearFilter()},clearSort:function(){this.store.clearSort()},handleMouseLeave:function(){this.store.commit("setHoverRow",null),this.hoverState&&(this.hoverState=null)},updateScrollY:function(){this.layout.updateScrollY(),this.layout.updateColumnsWidth()},handleFixedMousewheel:function(e,t){var n=this.bodyWrapper;if(Math.abs(t.spinY)>0){var i=n.scrollTop;t.pixelY<0&&0!==i&&e.preventDefault(),t.pixelY>0&&n.scrollHeight-n.clientHeight>i&&e.preventDefault(),n.scrollTop+=Math.ceil(t.pixelY/5)}else n.scrollLeft+=Math.ceil(t.pixelX/5)},handleHeaderFooterMousewheel:function(e,t){var n=t.pixelX,i=t.pixelY;Math.abs(n)>=Math.abs(i)&&(e.preventDefault(),this.bodyWrapper.scrollLeft+=t.pixelX/5)},bindEvents:function(){var e=this.$refs,t=e.headerWrapper,n=e.footerWrapper,i=this.$refs,r=this;this.bodyWrapper.addEventListener("scroll",function(){t&&(t.scrollLeft=this.scrollLeft),n&&(n.scrollLeft=this.scrollLeft),i.fixedBodyWrapper&&(i.fixedBodyWrapper.scrollTop=this.scrollTop),i.rightFixedBodyWrapper&&(i.rightFixedBodyWrapper.scrollTop=this.scrollTop);var e=this.scrollWidth-this.offsetWidth-1,a=this.scrollLeft;r.scrollPosition=a>=e?"right":0===a?"left":"middle"}),this.fit&&(0,a.addResizeListener)(this.$el,this.resizeListener)},resizeListener:function(){if(this.$ready){var e=!1,t=this.$el,n=this.resizeState,i=n.width,r=n.height,a=t.offsetWidth;i!==a&&(e=!0);var o=t.offsetHeight;(this.height||this.shouldUpdateHeight)&&r!==o&&(e=!0),e&&(this.resizeState.width=a,this.resizeState.height=o,this.doLayout())}},doLayout:function(){this.layout.updateColumnsWidth(),this.shouldUpdateHeight&&this.layout.updateElsHeight()},sort:function(e,t){this.store.commit("sort",{prop:e,order:t})},toggleAllSelection:function(){this.store.commit("toggleAllSelection")}},created:function(){var e=this;this.tableId="el-table_"+m++,this.debouncedUpdateLayout=(0,r.default)(50,function(){return e.doLayout()})},computed:{tableSize:function(){return this.size||(this.$ELEMENT||{}).size},bodyWrapper:function(){return this.$refs.bodyWrapper},shouldUpdateHeight:function(){return this.height||this.maxHeight||this.fixedColumns.length>0||this.rightFixedColumns.length>0},selection:function(){return this.store.states.selection},columns:function(){return this.store.states.columns},tableData:function(){return this.store.states.data},fixedColumns:function(){return this.store.states.fixedColumns},rightFixedColumns:function(){return this.store.states.rightFixedColumns},bodyWidth:function(){var e=this.layout,t=e.bodyWidth,n=e.scrollY,i=e.gutterWidth;return t?t-(n?i:0)+"px":""},bodyHeight:function(){return this.height?{height:this.layout.bodyHeight?this.layout.bodyHeight+"px":""}:this.maxHeight?{"max-height":(this.showHeader?this.maxHeight-this.layout.headerHeight-this.layout.footerHeight:this.maxHeight-this.layout.footerHeight)+"px"}:{}},fixedBodyHeight:function(){if(this.height)return{height:this.layout.fixedBodyHeight?this.layout.fixedBodyHeight+"px":""};if(this.maxHeight){var e=this.layout.scrollX?this.maxHeight-this.layout.gutterWidth:this.maxHeight;return this.showHeader&&(e-=this.layout.headerHeight),{"max-height":(e-=this.layout.footerHeight)+"px"}}return{}},fixedHeight:function(){return this.maxHeight?this.showSummary?{bottom:0}:{bottom:this.layout.scrollX&&this.data.length?this.layout.gutterWidth+"px":""}:this.showSummary?{height:this.layout.tableHeight?this.layout.tableHeight+"px":""}:{height:this.layout.viewportHeight?this.layout.viewportHeight+"px":""}}},watch:{height:{immediate:!0,handler:function(e){this.layout.setHeight(e)}},maxHeight:{immediate:!0,handler:function(e){this.layout.setMaxHeight(e)}},currentRowKey:function(e){this.store.setCurrentRowKey(e)},data:{immediate:!0,handler:function(e){var t=this;this.store.commit("setData",e),this.$ready&&this.$nextTick(function(){t.doLayout()})}},expandRowKeys:{immediate:!0,handler:function(e){e&&this.store.setExpandRowKeys(e)}}},destroyed:function(){this.resizeListener&&(0,a.removeResizeListener)(this.$el,this.resizeListener)},mounted:function(){var e=this;this.bindEvents(),this.store.updateColumns(),this.doLayout(),this.resizeState={width:this.$el.offsetWidth,height:this.$el.offsetHeight},this.store.states.columns.forEach(function(t){t.filteredValue&&t.filteredValue.length&&e.store.commit("filterChange",{column:t,values:t.filteredValue,silent:!0})}),this.$ready=!0},data:function(){var e=new u.default(this,{rowKey:this.rowKey,defaultExpandAll:this.defaultExpandAll,selectOnIndeterminate:this.selectOnIndeterminate});return{layout:new c.default({store:e,table:this,fit:this.fit,showHeader:this.showHeader}),store:e,isHidden:!1,renderExpanded:null,resizeProxyVisible:!1,resizeState:{width:null,height:null},isGroup:!1,scrollPosition:"left"}}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(158),a=(i=r)&&i.__esModule?i:{default:i};var o="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>-1;t.default={bind:function(e,t){var n,i;n=e,i=t.value,n&&n.addEventListener&&n.addEventListener(o?"DOMMouseScroll":"mousewheel",function(e){var t=(0,a.default)(e);i&&i.apply(this,[e,t])})}}},function(e,t){e.exports=n("/Wj5")},function(e,t,n){"use strict";t.__esModule=!0;var i=l(n(5)),r=l(n(13)),a=l(n(10)),o=n(2),s=n(35);function l(e){return e&&e.__esModule?e:{default:e}}var u=function(e,t){var n=t.sortingColumn;return n&&"string"!=typeof n.sortable?(0,s.orderBy)(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy):e},c=function(e,t){var n={};return(e||[]).forEach(function(e,i){n[(0,s.getRowIdentity)(e,t)]={row:e,index:i}}),n},d=function(e,t,n){var i=!1,r=e.selection,a=r.indexOf(t);return void 0===n?-1===a?(r.push(t),i=!0):(r.splice(a,1),i=!0):n&&-1===a?(r.push(t),i=!0):!n&&a>-1&&(r.splice(a,1),i=!0),i},h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)throw new Error("Table is required.");for(var n in this.table=e,this.states={rowKey:null,_columns:[],originColumns:[],columns:[],fixedColumns:[],rightFixedColumns:[],leafColumns:[],fixedLeafColumns:[],rightFixedLeafColumns:[],leafColumnsLength:0,fixedLeafColumnsLength:0,rightFixedLeafColumnsLength:0,isComplex:!1,filteredData:null,data:null,sortingColumn:null,sortProp:null,sortOrder:null,isAllSelected:!1,selection:[],reserveSelection:!1,selectable:null,currentRow:null,hoverRow:null,filters:{},expandRows:[],defaultExpandAll:!1,selectOnIndeterminate:!1},t)t.hasOwnProperty(n)&&this.states.hasOwnProperty(n)&&(this.states[n]=t[n])};h.prototype.mutations={setData:function(e,t){var n=this,r=e._data!==t;e._data=t,Object.keys(e.filters).forEach(function(i){var r=e.filters[i];if(r&&0!==r.length){var a=(0,s.getColumnById)(n.states,i);a&&a.filterMethod&&(t=t.filter(function(e){return r.some(function(t){return a.filterMethod.call(null,t,e,a)})}))}}),e.filteredData=t,e.data=u(t||[],e),this.updateCurrentRow();var a,o,l=e.rowKey;if(e.reserveSelection?l?(a=e.selection,o=c(a,l),e.data.forEach(function(e){var t=(0,s.getRowIdentity)(e,l),n=o[t];n&&(a[n.index]=e)}),n.updateAllSelected()):console.warn("WARN: rowKey is required when reserve-selection is enabled."):(r?this.clearSelection():this.cleanSelection(),this.updateAllSelected()),e.defaultExpandAll)this.states.expandRows=(e.data||[]).slice(0);else if(l){var d=c(this.states.expandRows,l),h=[],f=e.data,p=Array.isArray(f),m=0;for(f=p?f:f[Symbol.iterator]();;){var g;if(p){if(m>=f.length)break;g=f[m++]}else{if((m=f.next()).done)break;g=m.value}var v=g;d[(0,s.getRowIdentity)(v,l)]&&h.push(v)}this.states.expandRows=h}else this.states.expandRows=[];i.default.nextTick(function(){return n.table.updateScrollY()})},changeSortCondition:function(e,t){var n=this;e.data=u(e.filteredData||e._data||[],e);var r=this.table,a=r.$el,s=r.highlightCurrentRow;if(a&&s){var l=e.data,c=a.querySelector("tbody").children,d=[].filter.call(c,function(e){return(0,o.hasClass)(e,"el-table__row")}),h=d[l.indexOf(e.currentRow)];[].forEach.call(d,function(e){return(0,o.removeClass)(e,"current-row")}),(0,o.addClass)(h,"current-row")}t&&t.silent||this.table.$emit("sort-change",{column:this.states.sortingColumn,prop:this.states.sortProp,order:this.states.sortOrder}),i.default.nextTick(function(){return n.table.updateScrollY()})},sort:function(e,t){var n=this,r=t.prop,a=t.order;r&&(e.sortProp=r,e.sortOrder=a||"ascending",i.default.nextTick(function(){for(var t=0,i=e.columns.length;t<i;t++){var r=e.columns[t];if(r.property===e.sortProp){r.order=e.sortOrder,e.sortingColumn=r;break}}e.sortingColumn&&n.commit("changeSortCondition")}))},filterChange:function(e,t){var n=this,r=t.column,a=t.values,o=t.silent;a&&!Array.isArray(a)&&(a=[a]);var l={};r.property&&(e.filters[r.id]=a,l[r.columnKey||r.id]=a);var c=e._data;Object.keys(e.filters).forEach(function(t){var i=e.filters[t];if(i&&0!==i.length){var r=(0,s.getColumnById)(n.states,t);r&&r.filterMethod&&(c=c.filter(function(e){return i.some(function(t){return r.filterMethod.call(null,t,e,r)})}))}}),e.filteredData=c,e.data=u(c,e),o||this.table.$emit("filter-change",l),i.default.nextTick(function(){return n.table.updateScrollY()})},insertColumn:function(e,t,n,i){var r=e._columns;i&&((r=i.children)||(r=i.children=[])),void 0!==n?r.splice(n,0,t):r.push(t),"selection"===t.type&&(e.selectable=t.selectable,e.reserveSelection=t.reserveSelection),this.table.$ready&&(this.updateColumns(),this.scheduleLayout())},removeColumn:function(e,t,n){var i=e._columns;n&&((i=n.children)||(i=n.children=[])),i&&i.splice(i.indexOf(t),1),this.table.$ready&&(this.updateColumns(),this.scheduleLayout())},setHoverRow:function(e,t){e.hoverRow=t},setCurrentRow:function(e,t){var n=e.currentRow;e.currentRow=t,n!==t&&this.table.$emit("current-change",t,n)},rowSelectedChanged:function(e,t){var n=d(e,t),i=e.selection;if(n){var r=this.table;r.$emit("selection-change",i?i.slice():[]),r.$emit("select",i,t)}this.updateAllSelected()},toggleAllSelection:(0,r.default)(10,function(e){var t=e.data||[];if(0!==t.length){var n=this.states.selection,i=e.selectOnIndeterminate?!e.isAllSelected:!(e.isAllSelected||n.length),r=!1;t.forEach(function(t,n){e.selectable?e.selectable.call(null,t,n)&&d(e,t,i)&&(r=!0):d(e,t,i)&&(r=!0)});var a=this.table;r&&a.$emit("selection-change",n?n.slice():[]),a.$emit("select-all",n),e.isAllSelected=i}})};var f=function e(t){var n=[];return t.forEach(function(t){t.children?n.push.apply(n,e(t.children)):n.push(t)}),n};h.prototype.updateColumns=function(){var e=this.states,t=e._columns||[];e.fixedColumns=t.filter(function(e){return!0===e.fixed||"left"===e.fixed}),e.rightFixedColumns=t.filter(function(e){return"right"===e.fixed}),e.fixedColumns.length>0&&t[0]&&"selection"===t[0].type&&!t[0].fixed&&(t[0].fixed=!0,e.fixedColumns.unshift(t[0]));var n=t.filter(function(e){return!e.fixed});e.originColumns=[].concat(e.fixedColumns).concat(n).concat(e.rightFixedColumns);var i=f(n),r=f(e.fixedColumns),a=f(e.rightFixedColumns);e.leafColumnsLength=i.length,e.fixedLeafColumnsLength=r.length,e.rightFixedLeafColumnsLength=a.length,e.columns=[].concat(r).concat(i).concat(a),e.isComplex=e.fixedColumns.length>0||e.rightFixedColumns.length>0},h.prototype.isSelected=function(e){return(this.states.selection||[]).indexOf(e)>-1},h.prototype.clearSelection=function(){var e=this.states;e.isAllSelected=!1;var t=e.selection;e.selection.length&&(e.selection=[]),t.length>0&&this.table.$emit("selection-change",e.selection?e.selection.slice():[])},h.prototype.setExpandRowKeys=function(e){var t=[],n=this.states.data,i=this.states.rowKey;if(!i)throw new Error("[Table] prop row-key should not be empty.");var r=c(n,i);e.forEach(function(e){var n=r[e];n&&t.push(n.row)}),this.states.expandRows=t},h.prototype.toggleRowSelection=function(e,t){d(this.states,e,t)&&this.table.$emit("selection-change",this.states.selection?this.states.selection.slice():[])},h.prototype.toggleRowExpansion=function(e,t){(function(e,t,n){var i=!1,r=e.expandRows;if(void 0!==n){var a=r.indexOf(t);n?-1===a&&(r.push(t),i=!0):-1!==a&&(r.splice(a,1),i=!0)}else{var o=r.indexOf(t);-1===o?(r.push(t),i=!0):(r.splice(o,1),i=!0)}return i})(this.states,e,t)&&(this.table.$emit("expand-change",e,this.states.expandRows),this.scheduleLayout())},h.prototype.isRowExpanded=function(e){var t=this.states,n=t.expandRows,i=void 0===n?[]:n,r=t.rowKey;return r?!!c(i,r)[(0,s.getRowIdentity)(e,r)]:-1!==i.indexOf(e)},h.prototype.cleanSelection=function(){var e=this.states.selection||[],t=this.states.data,n=this.states.rowKey,i=void 0;if(n){i=[];var r=c(e,n),a=c(t,n);for(var o in r)r.hasOwnProperty(o)&&!a[o]&&i.push(r[o].row)}else i=e.filter(function(e){return-1===t.indexOf(e)});i.forEach(function(t){e.splice(e.indexOf(t),1)}),i.length&&this.table.$emit("selection-change",e?e.slice():[])},h.prototype.clearFilter=function(){var e=this.states,t=this.table.$refs,n=t.tableHeader,i=t.fixedTableHeader,r=t.rightFixedTableHeader,o={};n&&(o=(0,a.default)(o,n.filterPanels)),i&&(o=(0,a.default)(o,i.filterPanels)),r&&(o=(0,a.default)(o,r.filterPanels));var s=Object.keys(o);s.length&&(s.forEach(function(e){o[e].filteredValue=[]}),e.filters={},this.commit("filterChange",{column:{},values:[],silent:!0}))},h.prototype.clearSort=function(){var e=this.states;e.sortingColumn&&(e.sortingColumn.order=null,e.sortProp=null,e.sortOrder=null,this.commit("changeSortCondition",{silent:!0}))},h.prototype.updateAllSelected=function(){var e=this.states,t=e.selection,n=e.rowKey,i=e.selectable,r=e.data;if(r&&0!==r.length){var a=void 0;n&&(a=c(e.selection,n));for(var o,l=!0,u=0,d=0,h=r.length;d<h;d++){var f=r[d],p=i&&i.call(null,f,d);if(o=f,a?a[(0,s.getRowIdentity)(o,n)]:-1!==t.indexOf(o))u++;else if(!i||p){l=!1;break}}0===u&&(l=!1),e.isAllSelected=l}else e.isAllSelected=!1},h.prototype.scheduleLayout=function(e){e&&this.updateColumns(),this.table.debouncedUpdateLayout()},h.prototype.setCurrentRowKey=function(e){var t=this.states,n=t.rowKey;if(!n)throw new Error("[Table] row-key should not be empty.");var i=t.data||[],r=c(i,n)[e];t.currentRow=r?r.row:null},h.prototype.updateCurrentRow=function(){var e=this.states,t=this.table,n=e.data||[],i=e.currentRow;-1===n.indexOf(i)&&(e.currentRow=null,e.currentRow!==i&&t.$emit("current-change",null,i))},h.prototype.commit=function(e){var t=this.mutations;if(!t[e])throw new Error("Action not found: "+e);for(var n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];t[e].apply(this,[this.states].concat(i))},t.default=h},function(e,t,n){"use strict";t.__esModule=!0;var i=a(n(36)),r=a(n(5));function a(e){return e&&e.__esModule?e:{default:e}}var o=function(){function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.observers=[],this.table=null,this.store=null,this.columns=null,this.fit=!0,this.showHeader=!0,this.height=null,this.scrollX=!1,this.scrollY=!1,this.bodyWidth=null,this.fixedWidth=null,this.rightFixedWidth=null,this.tableHeight=null,this.headerHeight=44,this.appendHeight=0,this.footerHeight=44,this.viewportHeight=null,this.bodyHeight=null,this.fixedBodyHeight=null,this.gutterWidth=(0,i.default)(),t)t.hasOwnProperty(n)&&(this[n]=t[n]);if(!this.table)throw new Error("table is required for Table Layout");if(!this.store)throw new Error("store is required for Table Layout")}return e.prototype.updateScrollY=function(){var e=this.height;if("string"==typeof e||"number"==typeof e){var t=this.table.bodyWrapper;if(this.table.$el&&t){var n=t.querySelector(".el-table__body");this.scrollY=n.offsetHeight>this.bodyHeight}}},e.prototype.setHeight=function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"height";if(!r.default.prototype.$isServer){var i=this.table.$el;if("string"==typeof e&&/^\d+$/.test(e)&&(e=Number(e)),this.height=e,!i&&(e||0===e))return r.default.nextTick(function(){return t.setHeight(e,n)});"number"==typeof e?(i.style[n]=e+"px",this.updateElsHeight()):"string"==typeof e&&(i.style[n]=e,this.updateElsHeight())}},e.prototype.setMaxHeight=function(e){return this.setHeight(e,"max-height")},e.prototype.updateElsHeight=function(){var e=this;if(!this.table.$ready)return r.default.nextTick(function(){return e.updateElsHeight()});var t=this.table.$refs,n=t.headerWrapper,i=t.appendWrapper,a=t.footerWrapper;if(this.appendHeight=i?i.offsetHeight:0,!this.showHeader||n){var o=this.headerHeight=this.showHeader?n.offsetHeight:0;if(this.showHeader&&n.offsetWidth>0&&(this.table.columns||[]).length>0&&o<2)return r.default.nextTick(function(){return e.updateElsHeight()});var s=this.tableHeight=this.table.$el.clientHeight;if(null!==this.height&&(!isNaN(this.height)||"string"==typeof this.height)){var l=this.footerHeight=a?a.offsetHeight:0;this.bodyHeight=s-o-l+(a?1:0)}this.fixedBodyHeight=this.scrollX?this.bodyHeight-this.gutterWidth:this.bodyHeight;var u=!this.table.data||0===this.table.data.length;this.viewportHeight=this.scrollX?s-(u?0:this.gutterWidth):s,this.updateScrollY(),this.notifyObservers("scrollable")}},e.prototype.getFlattenColumns=function(){var e=[];return this.table.columns.forEach(function(t){t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e},e.prototype.updateColumnsWidth=function(){if(!r.default.prototype.$isServer){var e,t,n,i=this.fit,a=this.table.$el.clientWidth,o=0,s=this.getFlattenColumns(),l=s.filter(function(e){return"number"!=typeof e.width});if(s.forEach(function(e){"number"==typeof e.width&&e.realWidth&&(e.realWidth=null)}),l.length>0&&i){s.forEach(function(e){o+=e.width||e.minWidth||80});var u=this.scrollY?this.gutterWidth:0;if(o<=a-u){this.scrollX=!1;var c=a-u-o;1===l.length?l[0].realWidth=(l[0].minWidth||80)+c:(e=l.reduce(function(e,t){return e+(t.minWidth||80)},0),t=c/e,n=0,l.forEach(function(e,i){if(0!==i){var r=Math.floor((e.minWidth||80)*t);n+=r,e.realWidth=(e.minWidth||80)+r}}),l[0].realWidth=(l[0].minWidth||80)+c-n)}else this.scrollX=!0,l.forEach(function(e){e.realWidth=e.minWidth});this.bodyWidth=Math.max(o,a),this.table.resizeState.width=this.bodyWidth}else s.forEach(function(e){e.width||e.minWidth?e.realWidth=e.width||e.minWidth:e.realWidth=80,o+=e.realWidth}),this.scrollX=o>a,this.bodyWidth=o;var d=this.store.states.fixedColumns;if(d.length>0){var h=0;d.forEach(function(e){h+=e.realWidth||e.width}),this.fixedWidth=h}var f=this.store.states.rightFixedColumns;if(f.length>0){var p=0;f.forEach(function(e){p+=e.realWidth||e.width}),this.rightFixedWidth=p}this.notifyObservers("columns")}},e.prototype.addObserver=function(e){this.observers.push(e)},e.prototype.removeObserver=function(e){var t=this.observers.indexOf(e);-1!==t&&this.observers.splice(t,1)},e.prototype.notifyObservers=function(e){var t=this;this.observers.forEach(function(n){switch(e){case"columns":n.onColumnsChange(t);break;case"scrollable":n.onScrollableChange(t);break;default:throw new Error("Table Layout don't have event "+e+".")}})},e}();t.default=o},function(e,t,n){"use strict";t.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=n(35),a=n(2),o=c(n(14)),s=c(n(23)),l=c(n(13)),u=c(n(27));function c(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElTableBody",mixins:[u.default],components:{ElCheckbox:o.default,ElTooltip:s.default},props:{store:{required:!0},stripe:Boolean,context:{},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:String,highlight:Boolean},render:function(e){var t=this,n=this.columns.map(function(e,n){return t.isColumnHidden(n)});return e("table",{class:"el-table__body",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",null,[this._l(this.columns,function(t){return e("col",{attrs:{name:t.id}},[])})]),e("tbody",null,[this._l(this.data,function(i,r){return[e("tr",{style:t.rowStyle?t.getRowStyle(i,r):null,key:t.table.rowKey?t.getKeyOfRow(i,r):r,on:{dblclick:function(e){return t.handleDoubleClick(e,i)},click:function(e){return t.handleClick(e,i)},contextmenu:function(e){return t.handleContextMenu(e,i)},mouseenter:function(e){return t.handleMouseEnter(r)},mouseleave:function(e){return t.handleMouseLeave()}},class:[t.getRowClass(i,r)]},[t._l(t.columns,function(a,o){var s=t.getSpan(i,a,r,o),l=s.rowspan,u=s.colspan;return l&&u?e("td",{style:t.getCellStyle(r,o,i,a),class:t.getCellClass(r,o,i,a),attrs:{rowspan:l,colspan:u},on:{mouseenter:function(e){return t.handleCellMouseEnter(e,i)},mouseleave:t.handleCellMouseLeave}},[a.renderCell.call(t._renderProxy,e,{row:i,column:a,$index:r,store:t.store,_self:t.context||t.table.$vnode.context},n[o])]):""})]),t.store.isRowExpanded(i)?e("tr",null,[e("td",{attrs:{colspan:t.columns.length},class:"el-table__expanded-cell"},[t.table.renderExpanded?t.table.renderExpanded(e,{row:i,$index:r,store:t.store}):""])]):""]}).concat(e("el-tooltip",{attrs:{effect:this.table.tooltipEffect,placement:"top",content:this.tooltipContent},ref:"tooltip"},[]))])])},watch:{"store.states.hoverRow":function(e,t){if(this.store.states.isComplex){var n=this.$el;if(n){var i=n.querySelector("tbody").children,r=[].filter.call(i,function(e){return(0,a.hasClass)(e,"el-table__row")}),o=r[t],s=r[e];o&&(0,a.removeClass)(o,"hover-row"),s&&(0,a.addClass)(s,"hover-row")}}},"store.states.currentRow":function(e,t){if(this.highlight){var n=this.$el;if(n){var i=this.store.states.data,r=n.querySelector("tbody").children,o=[].filter.call(r,function(e){return(0,a.hasClass)(e,"el-table__row")}),s=o[i.indexOf(t)],l=o[i.indexOf(e)];s?(0,a.removeClass)(s,"current-row"):[].forEach.call(o,function(e){return(0,a.removeClass)(e,"current-row")}),l&&(0,a.addClass)(l,"current-row")}}}},computed:{table:function(){return this.$parent},data:function(){return this.store.states.data},columnsCount:function(){return this.store.states.columns.length},leftFixedLeafCount:function(){return this.store.states.fixedLeafColumnsLength},rightFixedLeafCount:function(){return this.store.states.rightFixedLeafColumnsLength},leftFixedCount:function(){return this.store.states.fixedColumns.length},rightFixedCount:function(){return this.store.states.rightFixedColumns.length},columns:function(){return this.store.states.columns}},data:function(){return{tooltipContent:""}},created:function(){this.activateTooltip=(0,l.default)(50,function(e){return e.handleShowPopper()})},methods:{getKeyOfRow:function(e,t){var n=this.table.rowKey;return n?(0,r.getRowIdentity)(e,n):t},isColumnHidden:function(e){return!0===this.fixed||"left"===this.fixed?e>=this.leftFixedLeafCount:"right"===this.fixed?e<this.columnsCount-this.rightFixedLeafCount:e<this.leftFixedLeafCount||e>=this.columnsCount-this.rightFixedLeafCount},getSpan:function(e,t,n,r){var a=1,o=1,s=this.table.spanMethod;if("function"==typeof s){var l=s({row:e,column:t,rowIndex:n,columnIndex:r});Array.isArray(l)?(a=l[0],o=l[1]):"object"===(void 0===l?"undefined":i(l))&&(a=l.rowspan,o=l.colspan)}return{rowspan:a,colspan:o}},getRowStyle:function(e,t){var n=this.table.rowStyle;return"function"==typeof n?n.call(null,{row:e,rowIndex:t}):n},getRowClass:function(e,t){var n=["el-table__row"];this.table.highlightCurrentRow&&e===this.store.states.currentRow&&n.push("current-row"),this.stripe&&t%2==1&&n.push("el-table__row--striped");var i=this.table.rowClassName;return"string"==typeof i?n.push(i):"function"==typeof i&&n.push(i.call(null,{row:e,rowIndex:t})),this.store.states.expandRows.indexOf(e)>-1&&n.push("expanded"),n.join(" ")},getCellStyle:function(e,t,n,i){var r=this.table.cellStyle;return"function"==typeof r?r.call(null,{rowIndex:e,columnIndex:t,row:n,column:i}):r},getCellClass:function(e,t,n,i){var r=[i.id,i.align,i.className];this.isColumnHidden(t)&&r.push("is-hidden");var a=this.table.cellClassName;return"string"==typeof a?r.push(a):"function"==typeof a&&r.push(a.call(null,{rowIndex:e,columnIndex:t,row:n,column:i})),r.join(" ")},handleCellMouseEnter:function(e,t){var n=this.table,i=(0,r.getCell)(e);if(i){var o=(0,r.getColumnByCell)(n,i),s=n.hoverState={cell:i,column:o,row:t};n.$emit("cell-mouse-enter",s.row,s.column,s.cell,e)}var l=e.target.querySelector(".cell");if((0,a.hasClass)(l,"el-tooltip")){var u=document.createRange();if(u.setStart(l,0),u.setEnd(l,l.childNodes.length),(u.getBoundingClientRect().width+((parseInt((0,a.getStyle)(l,"paddingLeft"),10)||0)+(parseInt((0,a.getStyle)(l,"paddingRight"),10)||0))>l.offsetWidth||l.scrollWidth>l.offsetWidth)&&this.$refs.tooltip){var c=this.$refs.tooltip;this.tooltipContent=i.textContent||i.innerText,c.referenceElm=i,c.$refs.popper&&(c.$refs.popper.style.display="none"),c.doDestroy(),c.setExpectedState(!0),this.activateTooltip(c)}}},handleCellMouseLeave:function(e){var t=this.$refs.tooltip;if(t&&(t.setExpectedState(!1),t.handleClosePopper()),(0,r.getCell)(e)){var n=this.table.hoverState||{};this.table.$emit("cell-mouse-leave",n.row,n.column,n.cell,e)}},handleMouseEnter:function(e){this.store.commit("setHoverRow",e)},handleMouseLeave:function(){this.store.commit("setHoverRow",null)},handleContextMenu:function(e,t){this.handleEvent(e,t,"contextmenu")},handleDoubleClick:function(e,t){this.handleEvent(e,t,"dblclick")},handleClick:function(e,t){this.store.commit("setCurrentRow",t),this.handleEvent(e,t,"click")},handleEvent:function(e,t,n){var i=this.table,a=(0,r.getCell)(e),o=void 0;a&&(o=(0,r.getColumnByCell)(i,a))&&i.$emit("cell-"+n,t,o,a,e),i.$emit("row-"+n,t,e,o)},handleExpandClick:function(e,t){t.stopPropagation(),this.store.toggleRowExpansion(e)}}}},function(e,t,n){"use strict";t.__esModule=!0;var i=n(2),r=u(n(14)),a=u(n(25)),o=u(n(5)),s=u(n(163)),l=u(n(27));function u(e){return e&&e.__esModule?e:{default:e}}var c=function(e){var t=1;e.forEach(function(e){e.level=1,function e(n,i){if(i&&(n.level=i.level+1,t<n.level&&(t=n.level)),n.children){var r=0;n.children.forEach(function(t){e(t,n),r+=t.colSpan}),n.colSpan=r}else n.colSpan=1}(e)});for(var n=[],i=0;i<t;i++)n.push([]);return function e(t){var n=[];return t.forEach(function(t){t.children?(n.push(t),n.push.apply(n,e(t.children))):n.push(t)}),n}(e).forEach(function(e){e.children?e.rowSpan=1:e.rowSpan=t-e.level+1,n[e.level-1].push(e)}),n};t.default={name:"ElTableHeader",mixins:[l.default],render:function(e){var t=this,n=this.store.states.originColumns,i=c(n,this.columns),r=i.length>1;return r&&(this.$parent.isGroup=!0),e("table",{class:"el-table__header",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",null,[this._l(this.columns,function(t){return e("col",{attrs:{name:t.id}},[])}),this.hasGutter?e("col",{attrs:{name:"gutter"}},[]):""]),e("thead",{class:[{"is-group":r,"has-gutter":this.hasGutter}]},[this._l(i,function(n,i){return e("tr",{style:t.getHeaderRowStyle(i),class:t.getHeaderRowClass(i)},[t._l(n,function(r,a){return e("th",{attrs:{colspan:r.colSpan,rowspan:r.rowSpan},on:{mousemove:function(e){return t.handleMouseMove(e,r)},mouseout:t.handleMouseOut,mousedown:function(e){return t.handleMouseDown(e,r)},click:function(e){return t.handleHeaderClick(e,r)},contextmenu:function(e){return t.handleHeaderContextMenu(e,r)}},style:t.getHeaderCellStyle(i,a,n,r),class:t.getHeaderCellClass(i,a,n,r)},[e("div",{class:["cell",r.filteredValue&&r.filteredValue.length>0?"highlight":"",r.labelClassName]},[r.renderHeader?r.renderHeader.call(t._renderProxy,e,{column:r,$index:a,store:t.store,_self:t.$parent.$vnode.context}):r.label,r.sortable?e("span",{class:"caret-wrapper",on:{click:function(e){return t.handleSortClick(e,r)}}},[e("i",{class:"sort-caret ascending",on:{click:function(e){return t.handleSortClick(e,r,"ascending")}}},[]),e("i",{class:"sort-caret descending",on:{click:function(e){return t.handleSortClick(e,r,"descending")}}},[])]):"",r.filters&&r.filters.length||r.filterMethod?e("span",{class:"el-table__column-filter-trigger",on:{click:function(e){return t.handleFilterClick(e,r)}}},[e("i",{class:["el-icon-arrow-down",r.filterOpened?"el-icon-arrow-up":""]},[])]):""])])}),t.hasGutter?e("th",{class:"gutter"},[]):""])})])])},props:{fixed:String,store:{required:!0},border:Boolean,defaultSort:{type:Object,default:function(){return{prop:"",order:""}}}},components:{ElCheckbox:r.default,ElTag:a.default},computed:{table:function(){return this.$parent},isAllSelected:function(){return this.store.states.isAllSelected},columnsCount:function(){return this.store.states.columns.length},leftFixedCount:function(){return this.store.states.fixedColumns.length},rightFixedCount:function(){return this.store.states.rightFixedColumns.length},leftFixedLeafCount:function(){return this.store.states.fixedLeafColumnsLength},rightFixedLeafCount:function(){return this.store.states.rightFixedLeafColumnsLength},columns:function(){return this.store.states.columns},hasGutter:function(){return!this.fixed&&this.tableLayout.gutterWidth}},created:function(){this.filterPanels={}},mounted:function(){var e=this.defaultSort,t=e.prop,n=e.order;this.store.commit("sort",{prop:t,order:n})},beforeDestroy:function(){var e=this.filterPanels;for(var t in e)e.hasOwnProperty(t)&&e[t]&&e[t].$destroy(!0)},methods:{isCellHidden:function(e,t){for(var n=0,i=0;i<e;i++)n+=t[i].colSpan;var r=n+t[e].colSpan-1;return!0===this.fixed||"left"===this.fixed?r>=this.leftFixedLeafCount:"right"===this.fixed?n<this.columnsCount-this.rightFixedLeafCount:r<this.leftFixedLeafCount||n>=this.columnsCount-this.rightFixedLeafCount},getHeaderRowStyle:function(e){var t=this.table.headerRowStyle;return"function"==typeof t?t.call(null,{rowIndex:e}):t},getHeaderRowClass:function(e){var t=[],n=this.table.headerRowClassName;return"string"==typeof n?t.push(n):"function"==typeof n&&t.push(n.call(null,{rowIndex:e})),t.join(" ")},getHeaderCellStyle:function(e,t,n,i){var r=this.table.headerCellStyle;return"function"==typeof r?r.call(null,{rowIndex:e,columnIndex:t,row:n,column:i}):r},getHeaderCellClass:function(e,t,n,i){var r=[i.id,i.order,i.headerAlign,i.className,i.labelClassName];0===e&&this.isCellHidden(t,n)&&r.push("is-hidden"),i.children||r.push("is-leaf"),i.sortable&&r.push("is-sortable");var a=this.table.headerCellClassName;return"string"==typeof a?r.push(a):"function"==typeof a&&r.push(a.call(null,{rowIndex:e,columnIndex:t,row:n,column:i})),r.join(" ")},toggleAllSelection:function(){this.store.commit("toggleAllSelection")},handleFilterClick:function(e,t){e.stopPropagation();var n=e.target,i="TH"===n.tagName?n:n.parentNode;i=i.querySelector(".el-table__column-filter-trigger")||i;var r=this.$parent,a=this.filterPanels[t.id];a&&t.filterOpened?a.showPopper=!1:(a||(a=new o.default(s.default),this.filterPanels[t.id]=a,t.filterPlacement&&(a.placement=t.filterPlacement),a.table=r,a.cell=i,a.column=t,!this.$isServer&&a.$mount(document.createElement("div"))),setTimeout(function(){a.showPopper=!0},16))},handleHeaderClick:function(e,t){!t.filters&&t.sortable?this.handleSortClick(e,t):t.filterable&&!t.sortable&&this.handleFilterClick(e,t),this.$parent.$emit("header-click",t,e)},handleHeaderContextMenu:function(e,t){this.$parent.$emit("header-contextmenu",t,e)},handleMouseDown:function(e,t){var n=this;this.$isServer||t.children&&t.children.length>0||this.draggingColumn&&this.border&&function(){n.dragging=!0,n.$parent.resizeProxyVisible=!0;var r=n.$parent,a=r.$el.getBoundingClientRect().left,o=n.$el.querySelector("th."+t.id),s=o.getBoundingClientRect(),l=s.left-a+30;(0,i.addClass)(o,"noclick"),n.dragState={startMouseLeft:e.clientX,startLeft:s.right-a,startColumnLeft:s.left-a,tableLeft:a};var u=r.$refs.resizeProxy;u.style.left=n.dragState.startLeft+"px",document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};var c=function(e){var t=e.clientX-n.dragState.startMouseLeft,i=n.dragState.startLeft+t;u.style.left=Math.max(l,i)+"px"};document.addEventListener("mousemove",c),document.addEventListener("mouseup",function a(){if(n.dragging){var s=n.dragState,l=s.startColumnLeft,d=s.startLeft,h=parseInt(u.style.left,10)-l;t.width=t.realWidth=h,r.$emit("header-dragend",t.width,d-l,t,e),n.store.scheduleLayout(),document.body.style.cursor="",n.dragging=!1,n.draggingColumn=null,n.dragState={},r.resizeProxyVisible=!1}document.removeEventListener("mousemove",c),document.removeEventListener("mouseup",a),document.onselectstart=null,document.ondragstart=null,setTimeout(function(){(0,i.removeClass)(o,"noclick")},0)})}()},handleMouseMove:function(e,t){if(!(t.children&&t.children.length>0)){for(var n=e.target;n&&"TH"!==n.tagName;)n=n.parentNode;if(t&&t.resizable&&!this.dragging&&this.border){var r=n.getBoundingClientRect(),a=document.body.style;r.width>12&&r.right-e.pageX<8?(a.cursor="col-resize",(0,i.hasClass)(n,"is-sortable")&&(n.style.cursor="col-resize"),this.draggingColumn=t):this.dragging||(a.cursor="",(0,i.hasClass)(n,"is-sortable")&&(n.style.cursor="pointer"),this.draggingColumn=null)}}},handleMouseOut:function(){this.$isServer||(document.body.style.cursor="")},toggleOrder:function(e){var t=e.order,n=e.sortOrders;if(""===t)return n[0];var i=n.indexOf(t||null);return n[i>n.length-2?0:i+1]},handleSortClick:function(e,t,n){e.stopPropagation();for(var r=n||this.toggleOrder(t),a=e.target;a&&"TH"!==a.tagName;)a=a.parentNode;if(a&&"TH"===a.tagName&&(0,i.hasClass)(a,"noclick"))(0,i.removeClass)(a,"noclick");else if(t.sortable){var o=this.store.states,s=o.sortProp,l=void 0,u=o.sortingColumn;(u!==t||u===t&&null===u.order)&&(u&&(u.order=null),o.sortingColumn=t,s=t.property),r?l=t.order=r:(l=t.order=null,o.sortingColumn=null,s=null),o.sortProp=s,o.sortOrder=l,this.store.commit("changeSortCondition")}}},data:function(){return{draggingColumn:null,dragging:!1,dragState:{}}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(164),r=n.n(i),a=n(166),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=c(n(8)),r=n(12),a=c(n(3)),o=c(n(9)),s=c(n(165)),l=c(n(14)),u=c(n(37));function c(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElTableFilterPanel",mixins:[i.default,a.default],directives:{Clickoutside:o.default},components:{ElCheckbox:l.default,ElCheckboxGroup:u.default},props:{placement:{type:String,default:"bottom-end"}},customRender:function(e){return e("div",{class:"el-table-filter"},[e("div",{class:"el-table-filter__content"},[]),e("div",{class:"el-table-filter__bottom"},[e("button",{on:{click:this.handleConfirm}},[this.t("el.table.confirmFilter")]),e("button",{on:{click:this.handleReset}},[this.t("el.table.resetFilter")])])])},methods:{isActive:function(e){return e.value===this.filterValue},handleOutsideClick:function(){var e=this;setTimeout(function(){e.showPopper=!1},16)},handleConfirm:function(){this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleReset:function(){this.filteredValue=[],this.confirmFilter(this.filteredValue),this.handleOutsideClick()},handleSelect:function(e){this.filterValue=e,void 0!==e&&null!==e?this.confirmFilter(this.filteredValue):this.confirmFilter([]),this.handleOutsideClick()},confirmFilter:function(e){this.table.store.commit("filterChange",{column:this.column,values:e}),this.table.store.updateAllSelected()}},data:function(){return{table:null,cell:null,column:null}},computed:{filters:function(){return this.column&&this.column.filters},filterValue:{get:function(){return(this.column.filteredValue||[])[0]},set:function(e){this.filteredValue&&(void 0!==e&&null!==e?this.filteredValue.splice(0,1,e):this.filteredValue.splice(0,1))}},filteredValue:{get:function(){return this.column&&this.column.filteredValue||[]},set:function(e){this.column&&(this.column.filteredValue=e)}},multiple:function(){return!this.column||this.column.filterMultiple}},mounted:function(){var e=this;this.popperElm=this.$el,this.referenceElm=this.cell,this.table.bodyWrapper.addEventListener("scroll",function(){e.updatePopper()}),this.$watch("showPopper",function(t){e.column&&(e.column.filterOpened=t),t?s.default.open(e):s.default.close(e)})},watch:{showPopper:function(e){!0===e&&parseInt(this.popperJS._popper.style.zIndex,10)<r.PopupManager.zIndex&&(this.popperJS._popper.style.zIndex=r.PopupManager.nextZIndex())}}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(5);var a=[];!((i=r)&&i.__esModule?i:{default:i}).default.prototype.$isServer&&document.addEventListener("click",function(e){a.forEach(function(t){var n=e.target;t&&t.$el&&(n===t.$el||t.$el.contains(n)||t.handleOutsideClick&&t.handleOutsideClick(e))})}),t.default={open:function(e){e&&a.push(e)},close:function(e){-1!==a.indexOf(e)&&a.splice(e,1)}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"}},[e.multiple?n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[n("div",{staticClass:"el-table-filter__content"},[n("el-scrollbar",{attrs:{"wrap-class":"el-table-filter__wrap"}},[n("el-checkbox-group",{staticClass:"el-table-filter__checkbox-group",model:{value:e.filteredValue,callback:function(t){e.filteredValue=t},expression:"filteredValue"}},e._l(e.filters,function(t){return n("el-checkbox",{key:t.value,attrs:{label:t.value}},[e._v(e._s(t.text))])}))],1)],1),n("div",{staticClass:"el-table-filter__bottom"},[n("button",{class:{"is-disabled":0===e.filteredValue.length},attrs:{disabled:0===e.filteredValue.length},on:{click:e.handleConfirm}},[e._v(e._s(e.t("el.table.confirmFilter")))]),n("button",{on:{click:e.handleReset}},[e._v(e._s(e.t("el.table.resetFilter")))])])]):n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleOutsideClick,expression:"handleOutsideClick"},{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-table-filter"},[n("ul",{staticClass:"el-table-filter__list"},[n("li",{staticClass:"el-table-filter__list-item",class:{"is-active":void 0===e.filterValue||null===e.filterValue},on:{click:function(t){e.handleSelect(null)}}},[e._v(e._s(e.t("el.table.clearFilter")))]),e._l(e.filters,function(t){return n("li",{key:t.value,staticClass:"el-table-filter__list-item",class:{"is-active":e.isActive(t)},attrs:{label:t.value},on:{click:function(n){e.handleSelect(t.value)}}},[e._v(e._s(t.text))])})],2)])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(27),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElTableFooter",mixins:[a.default],render:function(e){var t=this,n=[];return this.summaryMethod?n=this.summaryMethod({columns:this.columns,data:this.store.states.data}):this.columns.forEach(function(e,i){if(0!==i){var r=t.store.states.data.map(function(t){return Number(t[e.property])}),a=[],o=!0;r.forEach(function(e){if(!isNaN(e)){o=!1;var t=(""+e).split(".")[1];a.push(t?t.length:0)}});var s=Math.max.apply(null,a);n[i]=o?"":r.reduce(function(e,t){var n=Number(t);return isNaN(n)?e:parseFloat((e+t).toFixed(Math.min(s,20)))},0)}else n[i]=t.sumText}),e("table",{class:"el-table__footer",attrs:{cellspacing:"0",cellpadding:"0",border:"0"}},[e("colgroup",null,[this._l(this.columns,function(t){return e("col",{attrs:{name:t.id}},[])}),this.hasGutter?e("col",{attrs:{name:"gutter"}},[]):""]),e("tbody",{class:[{"has-gutter":this.hasGutter}]},[e("tr",null,[this._l(this.columns,function(i,r){return e("td",{attrs:{colspan:i.colSpan,rowspan:i.rowSpan},class:[i.id,i.headerAlign,i.className||"",t.isCellHidden(r,t.columns)?"is-hidden":"",i.children?"":"is-leaf",i.labelClassName]},[e("div",{class:["cell",i.labelClassName]},[n[r]])])}),this.hasGutter?e("th",{class:"gutter"},[]):""])])])},props:{fixed:String,store:{required:!0},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:function(){return{prop:"",order:""}}}},computed:{table:function(){return this.$parent},isAllSelected:function(){return this.store.states.isAllSelected},columnsCount:function(){return this.store.states.columns.length},leftFixedCount:function(){return this.store.states.fixedColumns.length},rightFixedCount:function(){return this.store.states.rightFixedColumns.length},columns:function(){return this.store.states.columns},hasGutter:function(){return!this.fixed&&this.tableLayout.gutterWidth}},methods:{isCellHidden:function(e,t){if(!0===this.fixed||"left"===this.fixed)return e>=this.leftFixedCount;if("right"===this.fixed){for(var n=0,i=0;i<e;i++)n+=t[i].colSpan;return n<this.columnsCount-this.rightFixedCount}return e<this.leftFixedCount||e>=this.columnsCount-this.rightFixedCount}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-table",class:[{"el-table--fit":e.fit,"el-table--striped":e.stripe,"el-table--border":e.border||e.isGroup,"el-table--hidden":e.isHidden,"el-table--group":e.isGroup,"el-table--fluid-height":e.maxHeight,"el-table--scrollable-x":e.layout.scrollX,"el-table--scrollable-y":e.layout.scrollY,"el-table--enable-row-hover":!e.store.states.isComplex,"el-table--enable-row-transition":0!==(e.store.states.data||[]).length&&(e.store.states.data||[]).length<100},e.tableSize?"el-table--"+e.tableSize:""],on:{mouseleave:function(t){e.handleMouseLeave(t)}}},[n("div",{ref:"hiddenColumns",staticClass:"hidden-columns"},[e._t("default")],2),e.showHeader?n("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"headerWrapper",staticClass:"el-table__header-wrapper"},[n("table-header",{ref:"tableHeader",style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"default-sort":e.defaultSort}})],1):e._e(),n("div",{ref:"bodyWrapper",staticClass:"el-table__body-wrapper",class:[e.layout.scrollX?"is-scrolling-"+e.scrollPosition:"is-scrolling-none"],style:[e.bodyHeight]},[n("table-body",{style:{width:e.bodyWidth},attrs:{context:e.context,store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}}),e.data&&0!==e.data.length?e._e():n("div",{ref:"emptyBlock",staticClass:"el-table__empty-block",style:{width:e.bodyWidth}},[n("span",{staticClass:"el-table__empty-text"},[e._t("empty",[e._v(e._s(e.emptyText||e.t("el.table.emptyText")))])],2)]),e.$slots.append?n("div",{ref:"appendWrapper",staticClass:"el-table__append-wrapper"},[e._t("append")],2):e._e()],1),e.showSummary?n("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"},{name:"mousewheel",rawName:"v-mousewheel",value:e.handleHeaderFooterMousewheel,expression:"handleHeaderFooterMousewheel"}],ref:"footerWrapper",staticClass:"el-table__footer-wrapper"},[n("table-footer",{style:{width:e.layout.bodyWidth?e.layout.bodyWidth+"px":""},attrs:{store:e.store,border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,"default-sort":e.defaultSort}})],1):e._e(),e.fixedColumns.length>0?n("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"fixedWrapper",staticClass:"el-table__fixed",style:[{width:e.layout.fixedWidth?e.layout.fixedWidth+"px":""},e.fixedHeight]},[e.showHeader?n("div",{ref:"fixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[n("table-header",{ref:"fixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,store:e.store}})],1):e._e(),n("div",{ref:"fixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[n("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"left",store:e.store,stripe:e.stripe,highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"row-style":e.rowStyle}}),e.$slots.append?n("div",{staticClass:"el-table__append-gutter",style:{height:e.layout.appendHeight+"px"}}):e._e()],1),e.showSummary?n("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"fixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[n("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"left",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?n("div",{directives:[{name:"mousewheel",rawName:"v-mousewheel",value:e.handleFixedMousewheel,expression:"handleFixedMousewheel"}],ref:"rightFixedWrapper",staticClass:"el-table__fixed-right",style:[{width:e.layout.rightFixedWidth?e.layout.rightFixedWidth+"px":"",right:e.layout.scrollY?(e.border?e.layout.gutterWidth:e.layout.gutterWidth||0)+"px":""},e.fixedHeight]},[e.showHeader?n("div",{ref:"rightFixedHeaderWrapper",staticClass:"el-table__fixed-header-wrapper"},[n("table-header",{ref:"rightFixedTableHeader",style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,store:e.store}})],1):e._e(),n("div",{ref:"rightFixedBodyWrapper",staticClass:"el-table__fixed-body-wrapper",style:[{top:e.layout.headerHeight+"px"},e.fixedBodyHeight]},[n("table-body",{style:{width:e.bodyWidth},attrs:{fixed:"right",store:e.store,stripe:e.stripe,"row-class-name":e.rowClassName,"row-style":e.rowStyle,highlight:e.highlightCurrentRow}})],1),e.showSummary?n("div",{directives:[{name:"show",rawName:"v-show",value:e.data&&e.data.length>0,expression:"data && data.length > 0"}],ref:"rightFixedFooterWrapper",staticClass:"el-table__fixed-footer-wrapper"},[n("table-footer",{style:{width:e.bodyWidth},attrs:{fixed:"right",border:e.border,"sum-text":e.sumText||e.t("el.table.sumText"),"summary-method":e.summaryMethod,store:e.store}})],1):e._e()]):e._e(),e.rightFixedColumns.length>0?n("div",{ref:"rightFixedPatch",staticClass:"el-table__fixed-right-patch",style:{width:e.layout.scrollY?e.layout.gutterWidth+"px":"0",height:e.layout.headerHeight+"px"}}):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:e.resizeProxyVisible,expression:"resizeProxyVisible"}],ref:"resizeProxy",staticClass:"el-table__column-resize-proxy"})])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(170),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(14)),r=s(n(25)),a=s(n(10)),o=n(4);function s(e){return e&&e.__esModule?e:{default:e}}var l=1,u={default:{order:""},selection:{width:48,minWidth:48,realWidth:48,order:"",className:"el-table-column--selection"},expand:{width:48,minWidth:48,realWidth:48,order:""},index:{width:48,minWidth:48,realWidth:48,order:""}},c={selection:{renderHeader:function(e,t){var n=t.store;return e("el-checkbox",{attrs:{disabled:n.states.data&&0===n.states.data.length,indeterminate:n.states.selection.length>0&&!this.isAllSelected,value:this.isAllSelected},nativeOn:{click:this.toggleAllSelection}},[])},renderCell:function(e,t){var n=t.row,i=t.column,r=t.store,a=t.$index;return e("el-checkbox",{nativeOn:{click:function(e){return e.stopPropagation()}},attrs:{value:r.isSelected(n),disabled:!!i.selectable&&!i.selectable.call(null,n,a)},on:{input:function(){r.commit("rowSelectedChanged",n)}}},[])},sortable:!1,resizable:!1},index:{renderHeader:function(e,t){return t.column.label||"#"},renderCell:function(e,t){var n=t.$index,i=n+1,r=t.column.index;return"number"==typeof r?i=n+r:"function"==typeof r&&(i=r(n)),e("div",null,[i])},sortable:!1},expand:{renderHeader:function(e,t){return t.column.label||""},renderCell:function(e,t,n){var i=t.row;return e("div",{class:"el-table__expand-icon "+(t.store.states.expandRows.indexOf(i)>-1?"el-table__expand-icon--expanded":""),on:{click:function(e){return n.handleExpandClick(i,e)}}},[e("i",{class:"el-icon el-icon-arrow-right"},[])])},sortable:!1,resizable:!1,className:"el-table__expand-column"}},d=function(e,t){var n=t.row,i=t.column,r=t.$index,a=i.property,s=a&&(0,o.getPropByPath)(n,a).v;return i&&i.formatter?i.formatter(n,i,s,r):s},h=function(e){return void 0!==e&&(e=parseInt(e,10),isNaN(e)&&(e=null)),e},f=function(e){return void 0!==e&&(e=parseInt(e,10),isNaN(e)&&(e=80)),e};t.default={name:"ElTableColumn",props:{type:{type:String,default:"default"},label:String,className:String,labelClassName:String,property:String,prop:String,width:{},minWidth:{},renderHeader:Function,sortable:{type:[String,Boolean],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},context:{},columnKey:String,align:String,headerAlign:String,showTooltipWhenOverflow:Boolean,showOverflowTooltip:Boolean,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:function(){return["ascending","descending",null]},validator:function(e){return e.every(function(e){return["ascending","descending",null].indexOf(e)>-1})}}},data:function(){return{isSubColumn:!1,columns:[]}},beforeCreate:function(){this.row={},this.column={},this.$index=0},components:{ElCheckbox:i.default,ElTag:r.default},computed:{owner:function(){for(var e=this.$parent;e&&!e.tableId;)e=e.$parent;return e},columnOrTableParent:function(){for(var e=this.$parent;e&&!e.tableId&&!e.columnId;)e=e.$parent;return e}},created:function(){var e=this;this.customRender=this.$options.render,this.$options.render=function(t){return t("div",e.$slots.default)};var t=this.columnOrTableParent,n=this.owner;this.isSubColumn=n!==t,this.columnId=(t.tableId||t.columnId)+"_column_"+l++;var i=this.type,r=h(this.width),o=f(this.minWidth),s=function(e,t){var n={};for(var i in(0,a.default)(n,u[e||"default"]),t)if(t.hasOwnProperty(i)){var r=t[i];void 0!==r&&(n[i]=r)}return n.minWidth||(n.minWidth=80),n.realWidth=void 0===n.width?n.minWidth:n.width,n}(i,{id:this.columnId,columnKey:this.columnKey,label:this.label,className:this.className,labelClassName:this.labelClassName,property:this.prop||this.property,type:i,renderCell:null,renderHeader:this.renderHeader,minWidth:o,width:r,isColumnGroup:!1,context:this.context,align:this.align?"is-"+this.align:null,headerAlign:this.headerAlign?"is-"+this.headerAlign:this.align?"is-"+this.align:null,sortable:""===this.sortable||this.sortable,sortMethod:this.sortMethod,sortBy:this.sortBy,resizable:this.resizable,showOverflowTooltip:this.showOverflowTooltip||this.showTooltipWhenOverflow,formatter:this.formatter,selectable:this.selectable,reserveSelection:this.reserveSelection,fixed:""===this.fixed||this.fixed,filterMethod:this.filterMethod,filters:this.filters,filterable:this.filters&&this.filters.length||this.filterMethod,filterMultiple:this.filterMultiple,filterOpened:!1,filteredValue:this.filteredValue||[],filterPlacement:this.filterPlacement||"",index:this.index,sortOrders:this.sortOrders}),p=c[i]||{};for(var m in p)if(p.hasOwnProperty(m)){var g=p[m];void 0!==g&&(s[m]="className"===m?s[m]+" "+g:g)}this.columnConfig=s;var v=s.renderCell,y=this;if("expand"===i)return n.renderExpanded=function(e,t){return y.$scopedSlots.default?y.$scopedSlots.default(t):y.$slots.default},void(s.renderCell=function(e,t){return e("div",{class:"cell"},[v(e,t,this._renderProxy)])});s.renderCell=function(e,t){return y.$scopedSlots.default&&(v=function(){return y.$scopedSlots.default(t)}),v||(v=d),y.showOverflowTooltip||y.showTooltipWhenOverflow?e("div",{class:"cell el-tooltip",style:{width:(t.column.realWidth||t.column.width)-1+"px"}},[v(e,t)]):e("div",{class:"cell"},[v(e,t)])}},destroyed:function(){if(this.$parent){var e=this.$parent;this.owner.store.commit("removeColumn",this.columnConfig,this.isSubColumn?e.columnConfig:null)}},watch:{label:function(e){this.columnConfig&&(this.columnConfig.label=e)},prop:function(e){this.columnConfig&&(this.columnConfig.property=e)},property:function(e){this.columnConfig&&(this.columnConfig.property=e)},filters:function(e){this.columnConfig&&(this.columnConfig.filters=e)},filterMultiple:function(e){this.columnConfig&&(this.columnConfig.filterMultiple=e)},align:function(e){this.columnConfig&&(this.columnConfig.align=e?"is-"+e:null,this.headerAlign||(this.columnConfig.headerAlign=e?"is-"+e:null))},headerAlign:function(e){this.columnConfig&&(this.columnConfig.headerAlign="is-"+(e||this.align))},width:function(e){this.columnConfig&&(this.columnConfig.width=h(e),this.owner.store.scheduleLayout())},minWidth:function(e){this.columnConfig&&(this.columnConfig.minWidth=f(e),this.owner.store.scheduleLayout())},fixed:function(e){this.columnConfig&&(this.columnConfig.fixed=e,this.owner.store.scheduleLayout(!0))},sortable:function(e){this.columnConfig&&(this.columnConfig.sortable=e)},index:function(e){this.columnConfig&&(this.columnConfig.index=e)},formatter:function(e){this.columnConfig&&(this.columnConfig.formatter=e)},className:function(e){this.columnConfig&&(this.columnConfig.className=e)},labelClassName:function(e){this.columnConfig&&(this.columnConfig.labelClassName=e)}},mounted:function(){var e=this.owner,t=this.columnOrTableParent,n=void 0;n=this.isSubColumn?[].indexOf.call(t.$el.children,this.$el):[].indexOf.call(t.$refs.hiddenColumns.children,this.$el),e.store.commit("insertColumn",this.columnConfig,n,this.isSubColumn?t.columnConfig:null)}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(172),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(28)),r=o(n(176)),a=o(n(191));function o(e){return e&&e.__esModule?e:{default:e}}var s=function(e){return"daterange"===e||"datetimerange"===e?a.default:r.default};t.default={mixins:[i.default],name:"ElDatePicker",props:{type:{type:String,default:"date"},timeArrowControl:Boolean},watch:{type:function(e){this.picker?(this.unmountPicker(),this.panel=s(e),this.mountPicker()):this.panel=s(e)}},created:function(){this.panel=s(this.type)}}},function(e,t,n){"use strict";t.__esModule=!0;var i=c(n(5)),r=c(n(9)),a=n(11),o=c(n(8)),s=c(n(1)),l=c(n(6)),u=c(n(10));function c(e){return e&&e.__esModule?e:{default:e}}var d={props:{appendToBody:o.default.props.appendToBody,offset:o.default.props.offset,boundariesPadding:o.default.props.boundariesPadding,arrowOffset:o.default.props.arrowOffset},methods:o.default.methods,data:function(){return(0,u.default)({visibleArrow:!0},o.default.data)},beforeDestroy:o.default.beforeDestroy},h={date:"yyyy-MM-dd",month:"yyyy-MM",datetime:"yyyy-MM-dd HH:mm:ss",time:"HH:mm:ss",week:"yyyywWW",timerange:"HH:mm:ss",daterange:"yyyy-MM-dd",datetimerange:"yyyy-MM-dd HH:mm:ss",year:"yyyy"},f=["date","datetime","time","time-select","week","month","year","daterange","timerange","datetimerange","dates"],p=function(e,t){return"timestamp"===t?e.getTime():(0,a.formatDate)(e,t)},m=function(e,t){return"timestamp"===t?new Date(Number(e)):(0,a.parseDate)(e,t)},g=function(e,t){if(Array.isArray(e)&&2===e.length){var n=e[0],i=e[1];if(n&&i)return[p(n,t),p(i,t)]}return""},v=function(e,t,n){if(Array.isArray(e)||(e=e.split(n)),2===e.length){var i=e[0],r=e[1];return[m(i,t),m(r,t)]}return[]},y={default:{formatter:function(e){return e?""+e:""},parser:function(e){return void 0===e||""===e?null:e}},week:{formatter:function(e,t){var n=(0,a.getWeekNumber)(e),i=e.getMonth(),r=new Date(e);1===n&&11===i&&(r.setHours(0,0,0,0),r.setDate(r.getDate()+3-(r.getDay()+6)%7));var o=(0,a.formatDate)(r,t);return o=/WW/.test(o)?o.replace(/WW/,n<10?"0"+n:n):o.replace(/W/,n)},parser:function(e){var t=(e||"").split("w");if(2===t.length){var n=Number(t[0]),i=Number(t[1]);if(!isNaN(n)&&!isNaN(i)&&i<54)return e}return null}},date:{formatter:p,parser:m},datetime:{formatter:p,parser:m},daterange:{formatter:g,parser:v},datetimerange:{formatter:g,parser:v},timerange:{formatter:g,parser:v},time:{formatter:p,parser:m},month:{formatter:p,parser:m},year:{formatter:p,parser:m},number:{formatter:function(e){return e?""+e:""},parser:function(e){var t=Number(e);return isNaN(e)?null:t}},dates:{formatter:function(e,t){return e.map(function(e){return p(e,t)})},parser:function(e,t){return("string"==typeof e?e.split(", "):e).map(function(e){return e instanceof Date?e:m(e,t)})}}},b={left:"bottom-start",center:"bottom",right:"bottom-end"},_=function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"-";return e?(0,(y[n]||y.default).parser)(e,t||h[n],i):null},x=function(e,t,n){return e?(0,(y[n]||y.default).formatter)(e,t||h[n]):null},w=function(e,t){var n=function(e,t){var n=e instanceof Date,i=t instanceof Date;return n&&i?e.getTime()===t.getTime():!n&&!i&&e===t},i=e instanceof Array,r=t instanceof Array;return i&&r?e.length===t.length&&e.every(function(e,i){return n(e,t[i])}):!i&&!r&&n(e,t)},S=function(e){return"string"==typeof e||e instanceof String},C=function(e){return null===e||void 0===e||S(e)||Array.isArray(e)&&2===e.length&&e.every(S)};t.default={mixins:[s.default,d],inject:{elForm:{default:""},elFormItem:{default:""}},props:{size:String,format:String,valueFormat:String,readonly:Boolean,placeholder:String,startPlaceholder:String,endPlaceholder:String,prefixIcon:String,clearIcon:{type:String,default:"el-icon-circle-close"},name:{default:"",validator:C},disabled:Boolean,clearable:{type:Boolean,default:!0},id:{default:"",validator:C},popperClass:String,editable:{type:Boolean,default:!0},align:{type:String,default:"left"},value:{},defaultValue:{},defaultTime:{},rangeSeparator:{default:"-"},pickerOptions:{},unlinkPanels:Boolean},components:{ElInput:l.default},directives:{Clickoutside:r.default},data:function(){return{pickerVisible:!1,showClose:!1,userInput:null,valueOnOpen:null,unwatchPickerOptions:null}},watch:{pickerVisible:function(e){this.readonly||this.pickerDisabled||(e?(this.showPicker(),this.valueOnOpen=Array.isArray(this.value)?[].concat(this.value):this.value):(this.hidePicker(),this.emitChange(this.value),this.userInput=null,this.dispatch("ElFormItem","el.form.blur"),this.$emit("blur",this),this.blur()))},parsedValue:{immediate:!0,handler:function(e){this.picker&&(this.picker.value=e,this.picker.selectedDate=Array.isArray(e)?e:[])}},defaultValue:function(e){this.picker&&(this.picker.defaultValue=e)}},computed:{ranged:function(){return this.type.indexOf("range")>-1},reference:function(){var e=this.$refs.reference;return e.$el||e},refInput:function(){return this.reference?[].slice.call(this.reference.querySelectorAll("input")):[]},valueIsEmpty:function(){var e=this.value;if(Array.isArray(e)){for(var t=0,n=e.length;t<n;t++)if(e[t])return!1}else if(e)return!1;return!0},triggerClass:function(){return this.prefixIcon||(-1!==this.type.indexOf("time")?"el-icon-time":"el-icon-date")},selectionMode:function(){return"week"===this.type?"week":"month"===this.type?"month":"year"===this.type?"year":"dates"===this.type?"dates":"day"},haveTrigger:function(){return void 0!==this.showTrigger?this.showTrigger:-1!==f.indexOf(this.type)},displayValue:function(){var e=x(this.parsedValue,this.format,this.type,this.rangeSeparator);return Array.isArray(this.userInput)?[this.userInput[0]||e&&e[0]||"",this.userInput[1]||e&&e[1]||""]:null!==this.userInput?this.userInput:e?"dates"===this.type?e.join(", "):e:""},parsedValue:function(){return this.value?"time-select"===this.type?this.value:(0,a.isDateObject)(this.value)||Array.isArray(this.value)&&this.value.every(a.isDateObject)?this.value:this.valueFormat?_(this.value,this.valueFormat,this.type,this.rangeSeparator)||this.value:Array.isArray(this.value)?this.value.map(function(e){return new Date(e)}):new Date(this.value):this.value},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},pickerSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},pickerDisabled:function(){return this.disabled||(this.elForm||{}).disabled},firstInputId:function(){var e={},t=void 0;return(t=this.ranged?this.id&&this.id[0]:this.id)&&(e.id=t),e},secondInputId:function(){var e={},t=void 0;return this.ranged&&(t=this.id&&this.id[1]),t&&(e.id=t),e}},created:function(){this.popperOptions={boundariesPadding:0,gpuAcceleration:!1},this.placement=b[this.align]||b.left,this.$on("fieldReset",this.handleFieldReset)},methods:{focus:function(){this.ranged?this.handleFocus():this.$refs.reference.focus()},blur:function(){this.refInput.forEach(function(e){return e.blur()})},parseValue:function(e){var t=(0,a.isDateObject)(e)||Array.isArray(e)&&e.every(a.isDateObject);return this.valueFormat&&!t&&_(e,this.valueFormat,this.type,this.rangeSeparator)||e},formatToValue:function(e){var t=(0,a.isDateObject)(e)||Array.isArray(e)&&e.every(a.isDateObject);return this.valueFormat&&t?x(e,this.valueFormat,this.type,this.rangeSeparator):e},parseString:function(e){var t=Array.isArray(e)?this.type:this.type.replace("range","");return _(e,this.format,t)},formatToString:function(e){var t=Array.isArray(e)?this.type:this.type.replace("range","");return x(e,this.format,t)},handleMouseEnter:function(){this.readonly||this.pickerDisabled||!this.valueIsEmpty&&this.clearable&&(this.showClose=!0)},handleChange:function(){if(this.userInput){var e=this.parseString(this.displayValue);e&&(this.picker.value=e,this.isValidValue(e)&&(this.emitInput(e),this.userInput=null))}""===this.userInput&&(this.emitInput(null),this.emitChange(null),this.userInput=null)},handleStartInput:function(e){this.userInput?this.userInput=[e.target.value,this.userInput[1]]:this.userInput=[e.target.value,null]},handleEndInput:function(e){this.userInput?this.userInput=[this.userInput[0],e.target.value]:this.userInput=[null,e.target.value]},handleStartChange:function(e){var t=this.parseString(this.userInput&&this.userInput[0]);if(t){this.userInput=[this.formatToString(t),this.displayValue[1]];var n=[t,this.picker.value&&this.picker.value[1]];this.picker.value=n,this.isValidValue(n)&&(this.emitInput(n),this.userInput=null)}},handleEndChange:function(e){var t=this.parseString(this.userInput&&this.userInput[1]);if(t){this.userInput=[this.displayValue[0],this.formatToString(t)];var n=[this.picker.value&&this.picker.value[0],t];this.picker.value=n,this.isValidValue(n)&&(this.emitInput(n),this.userInput=null)}},handleClickIcon:function(e){this.readonly||this.pickerDisabled||(this.showClose?(this.valueOnOpen=this.value,e.stopPropagation(),this.emitInput(null),this.emitChange(null),this.showClose=!1,this.picker&&"function"==typeof this.picker.handleClear&&this.picker.handleClear()):this.pickerVisible=!this.pickerVisible)},handleClose:function(){if(this.pickerVisible){this.pickerVisible=!1;var e=this.type,t=this.valueOnOpen,n=this.valueFormat,i=this.rangeSeparator;"dates"===e&&this.picker&&(this.picker.selectedDate=_(t,n,e,i)||t,this.emitInput(this.picker.selectedDate))}},handleFieldReset:function(e){this.userInput=""===e?null:e},handleFocus:function(){var e=this.type;-1===f.indexOf(e)||this.pickerVisible||(this.pickerVisible=!0),this.$emit("focus",this)},handleKeydown:function(e){var t=this,n=e.keyCode;return 27===n?(this.pickerVisible=!1,void e.stopPropagation()):9!==n?13===n?((""===this.userInput||this.isValidValue(this.parseString(this.displayValue)))&&(this.handleChange(),this.pickerVisible=this.picker.visible=!1,this.blur()),void e.stopPropagation()):void(this.userInput?e.stopPropagation():this.picker&&this.picker.handleKeydown&&this.picker.handleKeydown(e)):void(this.ranged?setTimeout(function(){-1===t.refInput.indexOf(document.activeElement)&&(t.pickerVisible=!1,t.blur(),e.stopPropagation())},0):(this.handleChange(),this.pickerVisible=this.picker.visible=!1,this.blur(),e.stopPropagation()))},handleRangeClick:function(){var e=this.type;-1===f.indexOf(e)||this.pickerVisible||(this.pickerVisible=!0),this.$emit("focus",this)},hidePicker:function(){this.picker&&(this.picker.resetView&&this.picker.resetView(),this.pickerVisible=this.picker.visible=!1,this.destroyPopper())},showPicker:function(){var e=this;this.$isServer||(this.picker||this.mountPicker(),this.pickerVisible=this.picker.visible=!0,this.updatePopper(),this.picker.value=this.parsedValue,this.picker.resetView&&this.picker.resetView(),this.$nextTick(function(){e.picker.adjustSpinners&&e.picker.adjustSpinners()}))},mountPicker:function(){var e=this;this.picker=new i.default(this.panel).$mount(),this.picker.defaultValue=this.defaultValue,this.picker.defaultTime=this.defaultTime,this.picker.popperClass=this.popperClass,this.popperElm=this.picker.$el,this.picker.width=this.reference.getBoundingClientRect().width,this.picker.showTime="datetime"===this.type||"datetimerange"===this.type,this.picker.selectionMode=this.selectionMode,this.picker.unlinkPanels=this.unlinkPanels,this.picker.arrowControl=this.arrowControl||this.timeArrowControl||!1,this.picker.selectedDate=Array.isArray(this.value)&&this.value||[],this.$watch("format",function(t){e.picker.format=t});var t=function(){var t,n,i,r=e.pickerOptions;for(var a in r&&r.selectableRange&&(t=r.selectableRange,n=y.datetimerange.parser,i=h.timerange,t=Array.isArray(t)?t:[t],e.picker.selectableRange=t.map(function(t){return n(t,i,e.rangeSeparator)})),r)r.hasOwnProperty(a)&&"selectableRange"!==a&&(e.picker[a]=r[a]);e.format&&(e.picker.format=e.format)};t(),this.unwatchPickerOptions=this.$watch("pickerOptions",function(){return t()},{deep:!0}),this.$el.appendChild(this.picker.$el),this.picker.resetView&&this.picker.resetView(),this.picker.$on("dodestroy",this.doDestroy),this.picker.$on("pick",function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];e.userInput=null,e.pickerVisible=e.picker.visible=n,e.emitInput(t),e.picker.resetView&&e.picker.resetView()}),this.picker.$on("select-range",function(t,n,i){0!==e.refInput.length&&(i&&"min"!==i?"max"===i&&(e.refInput[1].setSelectionRange(t,n),e.refInput[1].focus()):(e.refInput[0].setSelectionRange(t,n),e.refInput[0].focus()))})},unmountPicker:function(){this.picker&&(this.picker.$destroy(),this.picker.$off(),"function"==typeof this.unwatchPickerOptions&&this.unwatchPickerOptions(),this.picker.$el.parentNode.removeChild(this.picker.$el))},emitChange:function(e){w(e,this.valueOnOpen)||(this.$emit("change",e),this.dispatch("ElFormItem","el.form.change",e),this.valueOnOpen=e)},emitInput:function(e){var t=this.formatToValue(e);w(this.value,t)||this.$emit("input",t)},isValidValue:function(e){return this.picker||this.mountPicker(),!this.picker.isValidValue||e&&this.picker.isValidValue(e)}}}},function(e,t){e.exports=n("21Wg")},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.ranged?n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],ref:"reference",staticClass:"el-date-editor el-range-editor el-input__inner",class:["el-date-editor--"+e.type,e.pickerSize?"el-range-editor--"+e.pickerSize:"",e.pickerDisabled?"is-disabled":"",e.pickerVisible?"is-active":""],on:{click:e.handleRangeClick,mouseenter:e.handleMouseEnter,mouseleave:function(t){e.showClose=!1},keydown:e.handleKeydown}},[n("i",{class:["el-input__icon","el-range__icon",e.triggerClass]}),n("input",e._b({staticClass:"el-range-input",attrs:{placeholder:e.startPlaceholder,disabled:e.pickerDisabled,readonly:!e.editable||e.readonly,name:e.name&&e.name[0]},domProps:{value:e.displayValue&&e.displayValue[0]},on:{input:e.handleStartInput,change:e.handleStartChange,focus:e.handleFocus}},"input",e.firstInputId,!1)),n("span",{staticClass:"el-range-separator"},[e._v(e._s(e.rangeSeparator))]),n("input",e._b({staticClass:"el-range-input",attrs:{placeholder:e.endPlaceholder,disabled:e.pickerDisabled,readonly:!e.editable||e.readonly,name:e.name&&e.name[1]},domProps:{value:e.displayValue&&e.displayValue[1]},on:{input:e.handleEndInput,change:e.handleEndChange,focus:e.handleFocus}},"input",e.secondInputId,!1)),e.haveTrigger?n("i",{staticClass:"el-input__icon el-range__close-icon",class:[e.showClose?""+e.clearIcon:""],on:{click:e.handleClickIcon}}):e._e()]):n("el-input",e._b({directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClose,expression:"handleClose"}],ref:"reference",staticClass:"el-date-editor",class:"el-date-editor--"+e.type,attrs:{readonly:!e.editable||e.readonly||"dates"===e.type,disabled:e.pickerDisabled,size:e.pickerSize,name:e.name,placeholder:e.placeholder,value:e.displayValue,validateEvent:!1},on:{focus:e.handleFocus,input:function(t){return e.userInput=t},change:e.handleChange},nativeOn:{keydown:function(t){e.handleKeydown(t)},mouseenter:function(t){e.handleMouseEnter(t)},mouseleave:function(t){e.showClose=!1}}},"el-input",e.firstInputId,!1),[n("i",{staticClass:"el-input__icon",class:e.triggerClass,attrs:{slot:"prefix"},on:{click:e.handleFocus},slot:"prefix"}),e.haveTrigger?n("i",{staticClass:"el-input__icon",class:[e.showClose?""+e.clearIcon:""],attrs:{slot:"suffix"},on:{click:e.handleClickIcon},slot:"suffix"}):e._e()])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(177),r=n.n(i),a=n(190),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=n(11),r=h(n(9)),a=h(n(3)),o=h(n(6)),s=h(n(15)),l=h(n(29)),u=h(n(182)),c=h(n(185)),d=h(n(39));function h(e){return e&&e.__esModule?e:{default:e}}t.default={mixins:[a.default],directives:{Clickoutside:r.default},watch:{showTime:function(e){var t=this;e&&this.$nextTick(function(e){var n=t.$refs.input.$el;n&&(t.pickerWidth=n.getBoundingClientRect().width+10)})},value:function(e){"dates"===this.selectionMode&&this.value||((0,i.isDate)(e)?this.date=new Date(e):this.date=this.getDefaultValue())},defaultValue:function(e){(0,i.isDate)(this.value)||(this.date=e?new Date(e):new Date)},timePickerVisible:function(e){var t=this;e&&this.$nextTick(function(){return t.$refs.timepicker.adjustSpinners()})},selectionMode:function(e){"month"===e?"year"===this.currentView&&"month"===this.currentView||(this.currentView="month"):"dates"===e&&(this.currentView="date")}},methods:{proxyTimePickerDataProperties:function(){var e,t=this,n=function(e){t.$refs.timepicker.value=e},i=function(e){t.$refs.timepicker.date=e};this.$watch("value",n),this.$watch("date",i),e=this.timeFormat,t.$refs.timepicker.format=e,n(this.value),i(this.date)},handleClear:function(){this.date=this.getDefaultValue(),this.$emit("pick",null)},emit:function(e){for(var t=this,n=arguments.length,r=Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(e)if(Array.isArray(e)){var o=e.map(function(e){return t.showTime?(0,i.clearMilliseconds)(e):(0,i.clearTime)(e)});this.$emit.apply(this,["pick",o].concat(r))}else this.$emit.apply(this,["pick",this.showTime?(0,i.clearMilliseconds)(e):(0,i.clearTime)(e)].concat(r));else this.$emit.apply(this,["pick",e].concat(r));this.userInputDate=null,this.userInputTime=null},showMonthPicker:function(){this.currentView="month"},showYearPicker:function(){this.currentView="year"},prevMonth:function(){this.date=(0,i.prevMonth)(this.date)},nextMonth:function(){this.date=(0,i.nextMonth)(this.date)},prevYear:function(){"year"===this.currentView?this.date=(0,i.prevYear)(this.date,10):this.date=(0,i.prevYear)(this.date)},nextYear:function(){"year"===this.currentView?this.date=(0,i.nextYear)(this.date,10):this.date=(0,i.nextYear)(this.date)},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},handleTimePick:function(e,t,n){if((0,i.isDate)(e)){var r=this.value?(0,i.modifyTime)(this.value,e.getHours(),e.getMinutes(),e.getSeconds()):(0,i.modifyWithTimeString)(this.getDefaultValue(),this.defaultTime);this.date=r,this.emit(this.date,!0)}else this.emit(e,!0);n||(this.timePickerVisible=t)},handleTimePickClose:function(){this.timePickerVisible=!1},handleMonthPick:function(e){"month"===this.selectionMode?(this.date=(0,i.modifyDate)(this.date,this.year,e,1),this.emit(this.date)):(this.date=(0,i.changeYearMonthAndClampDate)(this.date,this.year,e),this.currentView="date")},handleDateSelect:function(e){"dates"===this.selectionMode&&(this.selectedDate=e)},handleDatePick:function(e){"day"===this.selectionMode?(this.date=this.value?(0,i.modifyDate)(this.value,e.getFullYear(),e.getMonth(),e.getDate()):(0,i.modifyWithTimeString)(e,this.defaultTime),this.emit(this.date,this.showTime)):"week"===this.selectionMode&&this.emit(e.date)},handleYearPick:function(e){"year"===this.selectionMode?(this.date=(0,i.modifyDate)(this.date,e,0,1),this.emit(this.date)):(this.date=(0,i.changeYearMonthAndClampDate)(this.date,e,this.month),this.currentView="month")},changeToNow:function(){this.disabledDate&&this.disabledDate(new Date)||(this.date=new Date,this.emit(this.date))},confirm:function(){if("dates"===this.selectionMode)this.emit(this.selectedDate);else{var e=this.value?this.value:(0,i.modifyWithTimeString)(this.getDefaultValue(),this.defaultTime);this.date=new Date(e),this.emit(e)}},resetView:function(){"month"===this.selectionMode?this.currentView="month":"year"===this.selectionMode?this.currentView="year":this.currentView="date"},handleEnter:function(){document.body.addEventListener("keydown",this.handleKeydown)},handleLeave:function(){this.$emit("dodestroy"),document.body.removeEventListener("keydown",this.handleKeydown)},handleKeydown:function(e){var t=e.keyCode;this.visible&&!this.timePickerVisible&&(-1!==[38,40,37,39].indexOf(t)&&(this.handleKeyControl(t),e.stopPropagation(),e.preventDefault()),13===t&&null===this.userInputDate&&null===this.userInputTime&&this.emit(this.date,!1))},handleKeyControl:function(e){for(var t={year:{38:-4,40:4,37:-1,39:1,offset:function(e,t){return e.setFullYear(e.getFullYear()+t)}},month:{38:-4,40:4,37:-1,39:1,offset:function(e,t){return e.setMonth(e.getMonth()+t)}},week:{38:-1,40:1,37:-1,39:1,offset:function(e,t){return e.setDate(e.getDate()+7*t)}},day:{38:-7,40:7,37:-1,39:1,offset:function(e,t){return e.setDate(e.getDate()+t)}}},n=this.selectionMode,i=this.date.getTime(),r=new Date(this.date.getTime());Math.abs(i-r.getTime())<=31536e6;){var a=t[n];if(a.offset(r,a[e]),"function"!=typeof this.disabledDate||!this.disabledDate(r)){this.date=r,this.$emit("pick",r,!0);break}}},handleVisibleTimeChange:function(e){var t=(0,i.parseDate)(e,this.timeFormat);t&&(this.date=(0,i.modifyDate)(t,this.year,this.month,this.monthDate),this.userInputTime=null,this.$refs.timepicker.value=this.date,this.timePickerVisible=!1,this.emit(this.date,!0))},handleVisibleDateChange:function(e){var t=(0,i.parseDate)(e,this.dateFormat);if(t){if("function"==typeof this.disabledDate&&this.disabledDate(t))return;this.date=(0,i.modifyTime)(t,this.date.getHours(),this.date.getMinutes(),this.date.getSeconds()),this.userInputDate=null,this.resetView(),this.emit(this.date,!0)}},isValidValue:function(e){return e&&!isNaN(e)&&("function"!=typeof this.disabledDate||!this.disabledDate(e))},getDefaultValue:function(){return this.defaultValue?new Date(this.defaultValue):new Date}},components:{TimePicker:l.default,YearTable:u.default,MonthTable:c.default,DateTable:d.default,ElInput:o.default,ElButton:s.default},data:function(){return{popperClass:"",date:new Date,value:"",defaultValue:null,defaultTime:null,showTime:!1,selectionMode:"day",shortcuts:"",visible:!1,currentView:"date",disabledDate:"",selectedDate:[],firstDayOfWeek:7,showWeekNumber:!1,timePickerVisible:!1,format:"",arrowControl:!1,userInputDate:null,userInputTime:null}},computed:{year:function(){return this.date.getFullYear()},month:function(){return this.date.getMonth()},week:function(){return(0,i.getWeekNumber)(this.date)},monthDate:function(){return this.date.getDate()},footerVisible:function(){return this.showTime||"dates"===this.selectionMode},visibleTime:function(){return null!==this.userInputTime?this.userInputTime:(0,i.formatDate)(this.value||this.defaultValue,this.timeFormat)},visibleDate:function(){return null!==this.userInputDate?this.userInputDate:(0,i.formatDate)(this.value||this.defaultValue,this.dateFormat)},yearLabel:function(){var e=this.t("el.datepicker.year");if("year"===this.currentView){var t=10*Math.floor(this.year/10);return e?t+" "+e+" - "+(t+9)+" "+e:t+" - "+(t+9)}return this.year+" "+e},timeFormat:function(){return this.format?(0,i.extractTimeFormat)(this.format):"HH:mm:ss"},dateFormat:function(){return this.format?(0,i.extractDateFormat)(this.format):"yyyy-MM-dd"}}}},function(e,t,n){"use strict";t.__esModule=!0;var i=n(11),r=o(n(3)),a=o(n(38));function o(e){return e&&e.__esModule?e:{default:e}}t.default={mixins:[r.default],components:{TimeSpinner:a.default},props:{visible:Boolean,timeArrowControl:Boolean},watch:{visible:function(e){var t=this;e?(this.oldValue=this.value,this.$nextTick(function(){return t.$refs.spinner.emitSelectRange("hours")})):this.needInitAdjust=!0},value:function(e){var t=this,n=void 0;e instanceof Date?n=(0,i.limitTimeRange)(e,this.selectableRange,this.format):e||(n=this.defaultValue?new Date(this.defaultValue):new Date),this.date=n,this.visible&&this.needInitAdjust&&(this.$nextTick(function(e){return t.adjustSpinners()}),this.needInitAdjust=!1)},selectableRange:function(e){this.$refs.spinner.selectableRange=e},defaultValue:function(e){(0,i.isDate)(this.value)||(this.date=e?new Date(e):new Date)}},data:function(){return{popperClass:"",format:"HH:mm:ss",value:"",defaultValue:null,date:new Date,oldValue:new Date,selectableRange:[],selectionRange:[0,2],disabled:!1,arrowControl:!1,needInitAdjust:!0}},computed:{showSeconds:function(){return-1!==(this.format||"").indexOf("ss")},useArrow:function(){return this.arrowControl||this.timeArrowControl||!1},amPmMode:function(){return-1!==(this.format||"").indexOf("A")?"A":-1!==(this.format||"").indexOf("a")?"a":""}},methods:{handleCancel:function(){this.$emit("pick",this.oldValue,!1)},handleChange:function(e){this.visible&&(this.date=(0,i.clearMilliseconds)(e),this.isValidValue(this.date)&&this.$emit("pick",this.date,!0))},setSelectionRange:function(e,t){this.$emit("select-range",e,t),this.selectionRange=[e,t]},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments[1];if(!t){var n=(0,i.clearMilliseconds)((0,i.limitTimeRange)(this.date,this.selectableRange,this.format));this.$emit("pick",n,e,t)}},handleKeydown:function(e){var t=e.keyCode,n={38:-1,40:1,37:-1,39:1};if(37===t||39===t){var i=n[t];return this.changeSelectionRange(i),void e.preventDefault()}if(38===t||40===t){var r=n[t];return this.$refs.spinner.scrollDown(r),void e.preventDefault()}},isValidValue:function(e){return(0,i.timeWithinRange)(e,this.selectableRange,this.format)},adjustSpinners:function(){return this.$refs.spinner.adjustSpinners()},changeSelectionRange:function(e){var t=[0,3].concat(this.showSeconds?[6]:[]),n=["hours","minutes"].concat(this.showSeconds?["seconds"]:[]),i=(t.indexOf(this.selectionRange[0])+e+t.length)%t.length;this.$refs.spinner.emitSelectRange(n[i])}},mounted:function(){var e=this;this.$nextTick(function(){return e.handleConfirm(!0,!0)}),this.$emit("mounted")}}},function(e,t,n){"use strict";t.__esModule=!0;var i=n(11),r=o(n(18)),a=o(n(33));function o(e){return e&&e.__esModule?e:{default:e}}t.default={components:{ElScrollbar:r.default},directives:{repeatClick:a.default},props:{date:{},defaultValue:{},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:String,default:""}},computed:{hours:function(){return this.date.getHours()},minutes:function(){return this.date.getMinutes()},seconds:function(){return this.date.getSeconds()},hoursList:function(){return(0,i.getRangeHours)(this.selectableRange)},arrowHourList:function(){var e=this.hours;return[e>0?e-1:void 0,e,e<23?e+1:void 0]},arrowMinuteList:function(){var e=this.minutes;return[e>0?e-1:void 0,e,e<59?e+1:void 0]},arrowSecondList:function(){var e=this.seconds;return[e>0?e-1:void 0,e,e<59?e+1:void 0]}},data:function(){return{selectableRange:[],currentScrollbar:null}},mounted:function(){var e=this;this.$nextTick(function(){!e.arrowControl&&e.bindScrollEvent()})},methods:{increase:function(){this.scrollDown(1)},decrease:function(){this.scrollDown(-1)},modifyDateField:function(e,t){switch(e){case"hours":this.$emit("change",(0,i.modifyTime)(this.date,t,this.minutes,this.seconds));break;case"minutes":this.$emit("change",(0,i.modifyTime)(this.date,this.hours,t,this.seconds));break;case"seconds":this.$emit("change",(0,i.modifyTime)(this.date,this.hours,this.minutes,t))}},handleClick:function(e,t){var n=t.value;t.disabled||(this.modifyDateField(e,n),this.emitSelectRange(e),this.adjustSpinner(e,n))},emitSelectRange:function(e){"hours"===e?this.$emit("select-range",0,2):"minutes"===e?this.$emit("select-range",3,5):"seconds"===e&&this.$emit("select-range",6,8),this.currentScrollbar=e},bindScrollEvent:function(){var e=this,t=function(t){e.$refs[t].wrap.onscroll=function(n){e.handleScroll(t,n)}};t("hours"),t("minutes"),t("seconds")},handleScroll:function(e){var t=Math.min(Math.floor((this.$refs[e].wrap.scrollTop-80)/32+3),"hours"===e?23:59);this.modifyDateField(e,t)},adjustSpinners:function(){this.adjustSpinner("hours",this.hours),this.adjustSpinner("minutes",this.minutes),this.adjustSpinner("seconds",this.seconds)},adjustCurrentSpinner:function(e){this.adjustSpinner(e,this[e])},adjustSpinner:function(e,t){if(!this.arrowControl){var n=this.$refs[e].wrap;n&&(n.scrollTop=Math.max(0,32*(t-2.5)+80))}},scrollDown:function(e){this.currentScrollbar||this.emitSelectRange("hours");var t=this.currentScrollbar,n=this.hoursList,i=this[t];if("hours"===this.currentScrollbar){var r=Math.abs(e);e=e>0?1:-1;for(var a=n.length;a--&&r;)n[i=(i+e+n.length)%n.length]||r--;if(n[i])return}else i=(i+e+60)%60;this.modifyDateField(t,i),this.adjustSpinner(t,i)},amPm:function(e){if(!("a"===this.amPmMode.toLowerCase()))return"";var t="A"===this.amPmMode,n=e<12?" am":" pm";return t&&(n=n.toUpperCase()),n}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-time-spinner",class:{"has-seconds":e.showSeconds}},[e.arrowControl?e._e():[n("el-scrollbar",{ref:"hours",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("hours")},mousemove:function(t){e.adjustCurrentSpinner("hours")}}},e._l(e.hoursList,function(t,i){return n("li",{staticClass:"el-time-spinner__item",class:{active:i===e.hours,disabled:t},on:{click:function(n){e.handleClick("hours",{value:i,disabled:t})}}},[e._v(e._s(("0"+(e.amPmMode?i%12||12:i)).slice(-2))+e._s(e.amPm(i)))])})),n("el-scrollbar",{ref:"minutes",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("minutes")},mousemove:function(t){e.adjustCurrentSpinner("minutes")}}},e._l(60,function(t,i){return n("li",{staticClass:"el-time-spinner__item",class:{active:i===e.minutes},on:{click:function(t){e.handleClick("minutes",{value:i,disabled:!1})}}},[e._v(e._s(("0"+i).slice(-2)))])})),n("el-scrollbar",{directives:[{name:"show",rawName:"v-show",value:e.showSeconds,expression:"showSeconds"}],ref:"seconds",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list",noresize:"",tag:"ul"},nativeOn:{mouseenter:function(t){e.emitSelectRange("seconds")},mousemove:function(t){e.adjustCurrentSpinner("seconds")}}},e._l(60,function(t,i){return n("li",{key:i,staticClass:"el-time-spinner__item",class:{active:i===e.seconds},on:{click:function(t){e.handleClick("seconds",{value:i,disabled:!1})}}},[e._v(e._s(("0"+i).slice(-2)))])}))],e.arrowControl?[n("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("hours")}}},[n("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),n("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),n("ul",{ref:"hours",staticClass:"el-time-spinner__list"},e._l(e.arrowHourList,function(t,i){return n("li",{key:i,staticClass:"el-time-spinner__item",class:{active:t===e.hours,disabled:e.hoursList[t]}},[e._v(e._s(void 0===t?"":("0"+(e.amPmMode?t%12||12:t)).slice(-2)+e.amPm(t)))])}))]),n("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("minutes")}}},[n("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),n("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),n("ul",{ref:"minutes",staticClass:"el-time-spinner__list"},e._l(e.arrowMinuteList,function(t,i){return n("li",{key:i,staticClass:"el-time-spinner__item",class:{active:t===e.minutes}},[e._v("\n          "+e._s(void 0===t?"":("0"+t).slice(-2))+"\n        ")])}))]),e.showSeconds?n("div",{staticClass:"el-time-spinner__wrapper is-arrow",on:{mouseenter:function(t){e.emitSelectRange("seconds")}}},[n("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.decrease,expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),n("i",{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:e.increase,expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),n("ul",{ref:"seconds",staticClass:"el-time-spinner__list"},e._l(e.arrowSecondList,function(t,i){return n("li",{key:i,staticClass:"el-time-spinner__item",class:{active:t===e.seconds}},[e._v("\n          "+e._s(void 0===t?"":("0"+t).slice(-2))+"\n        ")])}))]):e._e()]:e._e()],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-time-panel el-popper",class:e.popperClass},[n("div",{staticClass:"el-time-panel__content",class:{"has-seconds":e.showSeconds}},[n("time-spinner",{ref:"spinner",attrs:{"arrow-control":e.useArrow,"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,date:e.date},on:{change:e.handleChange,"select-range":e.setSelectionRange}})],1),n("div",{staticClass:"el-time-panel__footer"},[n("button",{staticClass:"el-time-panel__btn cancel",attrs:{type:"button"},on:{click:e.handleCancel}},[e._v(e._s(e.t("el.datepicker.cancel")))]),n("button",{staticClass:"el-time-panel__btn",class:{confirm:!e.disabled},attrs:{type:"button"},on:{click:function(t){e.handleConfirm()}}},[e._v(e._s(e.t("el.datepicker.confirm")))])])])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(183),r=n.n(i),a=n(184),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=n(2),r=n(11);t.default={props:{disabledDate:{},value:{},defaultValue:{validator:function(e){return null===e||e instanceof Date&&(0,r.isDate)(e)}},date:{}},computed:{startYear:function(){return 10*Math.floor(this.date.getFullYear()/10)}},methods:{getCellStyle:function(e){var t={},n=new Date;return t.disabled="function"==typeof this.disabledDate&&function(e){var t=(0,r.getDayCountOfYear)(e),n=new Date(e,0,1);return(0,r.range)(t).map(function(e){return(0,r.nextDate)(n,e)})}(e).every(this.disabledDate),t.current=this.value.getFullYear()===e,t.today=n.getFullYear()===e,t.default=this.defaultValue&&this.defaultValue.getFullYear()===e,t},handleYearTableClick:function(e){var t=e.target;if("A"===t.tagName){if((0,i.hasClass)(t.parentNode,"disabled"))return;var n=t.textContent||t.innerText;this.$emit("pick",Number(n))}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("table",{staticClass:"el-year-table",on:{click:e.handleYearTableClick}},[n("tbody",[n("tr",[n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+0)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear))])]),n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+1)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+1))])]),n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+2)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+2))])]),n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+3)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+3))])])]),n("tr",[n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+4)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+4))])]),n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+5)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+5))])]),n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+6)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+6))])]),n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+7)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+7))])])]),n("tr",[n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+8)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+8))])]),n("td",{staticClass:"available",class:e.getCellStyle(e.startYear+9)},[n("a",{staticClass:"cell"},[e._v(e._s(e.startYear+9))])]),n("td"),n("td")])])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(186),r=n.n(i),a=n(187),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(3),a=(i=r)&&i.__esModule?i:{default:i},o=n(11),s=n(2);t.default={props:{disabledDate:{},value:{},defaultValue:{validator:function(e){return null===e||e instanceof Date&&(0,o.isDate)(e)}},date:{}},mixins:[a.default],methods:{getCellStyle:function(e){var t={},n=this.date.getFullYear(),i=new Date;return t.disabled="function"==typeof this.disabledDate&&function(e,t){var n=(0,o.getDayCountOfMonth)(e,t),i=new Date(e,t,1);return(0,o.range)(n).map(function(e){return(0,o.nextDate)(i,e)})}(n,e).every(this.disabledDate),t.current=this.value.getFullYear()===n&&this.value.getMonth()===e,t.today=i.getFullYear()===n&&i.getMonth()===e,t.default=this.defaultValue&&this.defaultValue.getFullYear()===n&&this.defaultValue.getMonth()===e,t},handleMonthTableClick:function(e){var t=e.target;if("A"===t.tagName&&!(0,s.hasClass)(t.parentNode,"disabled")){var n=t.parentNode.cellIndex,i=4*t.parentNode.parentNode.rowIndex+n;this.$emit("pick",i)}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("table",{staticClass:"el-month-table",on:{click:e.handleMonthTableClick}},[n("tbody",[n("tr",[n("td",{class:e.getCellStyle(0)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.jan")))])]),n("td",{class:e.getCellStyle(1)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.feb")))])]),n("td",{class:e.getCellStyle(2)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.mar")))])]),n("td",{class:e.getCellStyle(3)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.apr")))])])]),n("tr",[n("td",{class:e.getCellStyle(4)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.may")))])]),n("td",{class:e.getCellStyle(5)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.jun")))])]),n("td",{class:e.getCellStyle(6)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.jul")))])]),n("td",{class:e.getCellStyle(7)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.aug")))])])]),n("tr",[n("td",{class:e.getCellStyle(8)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.sep")))])]),n("td",{class:e.getCellStyle(9)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.oct")))])]),n("td",{class:e.getCellStyle(10)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.nov")))])]),n("td",{class:e.getCellStyle(11)},[n("a",{staticClass:"cell"},[e._v(e._s(e.t("el.datepicker.months.dec")))])])])])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(11),a=n(2),o=n(3),s=(i=o)&&i.__esModule?i:{default:i};var l=["sun","mon","tue","wed","thu","fri","sat"],u=function(e){var t=new Date(e);return t.setHours(0,0,0,0),t.getTime()};t.default={mixins:[s.default],props:{firstDayOfWeek:{default:7,type:Number,validator:function(e){return e>=1&&e<=7}},value:{},defaultValue:{validator:function(e){return null===e||(0,r.isDate)(e)||Array.isArray(e)&&e.every(r.isDate)}},date:{},selectionMode:{default:"day"},showWeekNumber:{type:Boolean,default:!1},disabledDate:{},selectedDate:{type:Array},minDate:{},maxDate:{},rangeState:{default:function(){return{endDate:null,selecting:!1,row:null,column:null}}}},computed:{offsetDay:function(){var e=this.firstDayOfWeek;return e>3?7-e:-e},WEEKS:function(){var e=this.firstDayOfWeek;return l.concat(l).slice(e,e+7)},year:function(){return this.date.getFullYear()},month:function(){return this.date.getMonth()},startDate:function(){return(0,r.getStartDateOfMonth)(this.year,this.month)},rows:function(){var e=this,t=new Date(this.year,this.month,1),n=(0,r.getFirstDayOfMonth)(t),i=(0,r.getDayCountOfMonth)(t.getFullYear(),t.getMonth()),a=(0,r.getDayCountOfMonth)(t.getFullYear(),0===t.getMonth()?11:t.getMonth()-1);n=0===n?7:n;for(var o=this.offsetDay,s=this.tableRows,l=1,c=void 0,d=this.startDate,h=this.disabledDate,f=this.selectedDate||this.value,p=u(new Date),m=0;m<6;m++){var g=s[m];this.showWeekNumber&&(g[0]||(g[0]={type:"week",text:(0,r.getWeekNumber)((0,r.nextDate)(d,7*m+1))}));for(var v=function(t){var s=g[e.showWeekNumber?t+1:t];s||(s={row:m,column:t,type:"normal",inRange:!1,start:!1,end:!1}),s.type="normal";var v=7*m+t,y=(0,r.nextDate)(d,v-o).getTime();s.inRange=y>=u(e.minDate)&&y<=u(e.maxDate),s.start=e.minDate&&y===u(e.minDate),s.end=e.maxDate&&y===u(e.maxDate),y===p&&(s.type="today"),m>=0&&m<=1?t+7*m>=n+o?(s.text=l++,2===l&&(c=7*m+t)):(s.text=a-(n+o-t%7)+1+7*m,s.type="prev-month"):l<=i?(s.text=l++,2===l&&(c=7*m+t)):(s.text=l++-i,s.type="next-month");var b=new Date(y);s.disabled="function"==typeof h&&h(b),s.selected=Array.isArray(f)&&f.filter(function(e){return e.toString()===b.toString()})[0],e.$set(g,e.showWeekNumber?t+1:t,s)},y=0;y<7;y++)v(y);if("week"===this.selectionMode){var b=this.showWeekNumber?1:0,_=this.showWeekNumber?7:6,x=this.isWeekActive(g[b+1]);g[b].inRange=x,g[b].start=x,g[_].inRange=x,g[_].end=x}}return s.firstDayPosition=c,s}},watch:{"rangeState.endDate":function(e){this.markRange(e)},minDate:function(e,t){e&&!t?(this.rangeState.selecting=!0,this.markRange(e)):e?this.markRange():(this.rangeState.selecting=!1,this.markRange(e))},maxDate:function(e,t){e&&!t&&(this.rangeState.selecting=!1,this.markRange(e))}},data:function(){return{tableRows:[[],[],[],[],[],[]]}},methods:{cellMatchesDate:function(e,t){var n=new Date(t);return this.year===n.getFullYear()&&this.month===n.getMonth()&&Number(e.text)===n.getDate()},getCellClasses:function(e){var t=this,n=this.selectionMode,i=this.defaultValue?Array.isArray(this.defaultValue)?this.defaultValue:[this.defaultValue]:[],r=[];return"normal"!==e.type&&"today"!==e.type||e.disabled?r.push(e.type):(r.push("available"),"today"===e.type&&r.push("today")),"normal"===e.type&&i.some(function(n){return t.cellMatchesDate(e,n)})&&r.push("default"),"day"!==n||"normal"!==e.type&&"today"!==e.type||!this.cellMatchesDate(e,this.value)||r.push("current"),!e.inRange||"normal"!==e.type&&"today"!==e.type&&"week"!==this.selectionMode||(r.push("in-range"),e.start&&r.push("start-date"),e.end&&r.push("end-date")),e.disabled&&r.push("disabled"),e.selected&&r.push("selected"),r.join(" ")},getDateOfCell:function(e,t){var n=7*e+(t-(this.showWeekNumber?1:0))-this.offsetDay;return(0,r.nextDate)(this.startDate,n)},isWeekActive:function(e){if("week"!==this.selectionMode)return!1;var t=new Date(this.year,this.month,1),n=t.getFullYear(),i=t.getMonth();return"prev-month"===e.type&&(t.setMonth(0===i?11:i-1),t.setFullYear(0===i?n-1:n)),"next-month"===e.type&&(t.setMonth(11===i?0:i+1),t.setFullYear(11===i?n+1:n)),t.setDate(parseInt(e.text,10)),n===((0,r.isDate)(this.value)?this.value.getFullYear():null)&&(0,r.getWeekNumber)(t)===(0,r.getWeekNumber)(this.value)},markRange:function(e){var t=this.startDate;e||(e=this.maxDate);for(var n=this.rows,i=this.minDate,a=0,o=n.length;a<o;a++)for(var s=n[a],l=0,c=s.length;l<c;l++)if(!this.showWeekNumber||0!==l){var d=s[l],h=7*a+l+(this.showWeekNumber?-1:0),f=(0,r.nextDate)(t,h-this.offsetDay).getTime();e&&e<i?(d.inRange=i&&f>=u(e)&&f<=u(i),d.start=e&&f===u(e.getTime()),d.end=i&&f===u(i.getTime())):(d.inRange=i&&f>=u(i)&&f<=u(e),d.start=i&&f===u(i.getTime()),d.end=e&&f===u(e.getTime()))}},handleMouseMove:function(e){if(this.rangeState.selecting){this.$emit("changerange",{minDate:this.minDate,maxDate:this.maxDate,rangeState:this.rangeState});var t=e.target;if("SPAN"===t.tagName&&(t=t.parentNode.parentNode),"DIV"===t.tagName&&(t=t.parentNode),"TD"===t.tagName){var n=t.cellIndex,i=t.parentNode.rowIndex-1,r=this.rangeState,a=r.row,o=r.column;a===i&&o===n||(this.rangeState.row=i,this.rangeState.column=n,this.rangeState.endDate=this.getDateOfCell(i,n))}}},handleClick:function(e){var t=this,n=e.target;if("SPAN"===n.tagName&&(n=n.parentNode.parentNode),"DIV"===n.tagName&&(n=n.parentNode),"TD"===n.tagName&&!(0,a.hasClass)(n,"disabled")&&!(0,a.hasClass)(n,"week")){var i=this.selectionMode;"week"===i&&(n=n.parentNode.cells[1]);var o,s=Number(this.year),l=Number(this.month),u=n.cellIndex,c=n.parentNode.rowIndex,d=this.rows[c-1][u],h=d.text,f=n.className,p=new Date(s,l,1);if(-1!==f.indexOf("prev")?(0===l?(s-=1,l=11):l-=1,p.setFullYear(s),p.setMonth(l)):-1!==f.indexOf("next")&&(11===l?(s+=1,l=0):l+=1,p.setFullYear(s),p.setMonth(l)),p.setDate(parseInt(h,10)),"range"===this.selectionMode){if(this.minDate&&this.maxDate){var m=new Date(p.getTime());this.$emit("pick",{minDate:m,maxDate:null},!1),this.rangeState.selecting=!0,this.markRange(this.minDate),this.$nextTick(function(){t.handleMouseMove(e)})}else if(this.minDate&&!this.maxDate)if(p>=this.minDate){var g=new Date(p.getTime());this.rangeState.selecting=!1,this.$emit("pick",{minDate:this.minDate,maxDate:g})}else{var v=new Date(p.getTime());this.rangeState.selecting=!1,this.$emit("pick",{minDate:v,maxDate:this.minDate})}else if(!this.minDate){var y=new Date(p.getTime());this.$emit("pick",{minDate:y,maxDate:this.maxDate},!1),this.rangeState.selecting=!0,this.markRange(this.minDate)}}else if("day"===i)this.$emit("pick",p);else if("week"===i){var b=(0,r.getWeekNumber)(p),_=p.getFullYear()+"w"+b;this.$emit("pick",{year:p.getFullYear(),week:b,value:_,date:p})}else"dates"===i&&(o=t.selectedDate,d.selected?o.forEach(function(e,t){e.toString()===p.toString()&&o.splice(t,1)}):o.push(p),t.$emit("select",o))}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("table",{staticClass:"el-date-table",class:{"is-week-mode":"week"===e.selectionMode},attrs:{cellspacing:"0",cellpadding:"0"},on:{click:e.handleClick,mousemove:e.handleMouseMove}},[n("tbody",[n("tr",[e.showWeekNumber?n("th",[e._v(e._s(e.t("el.datepicker.week")))]):e._e(),e._l(e.WEEKS,function(t,i){return n("th",{key:i},[e._v(e._s(e.t("el.datepicker.weeks."+t)))])})],2),e._l(e.rows,function(t,i){return n("tr",{key:i,staticClass:"el-date-table__row",class:{current:e.isWeekActive(t[1])}},e._l(t,function(t,i){return n("td",{key:i,class:e.getCellClasses(t)},[n("div",[n("span",[e._v("\n          "+e._s(t.text)+"\n        ")])])])}))})],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-enter":e.handleEnter,"after-leave":e.handleLeave}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts,"has-time":e.showTime},e.popperClass]},[n("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?n("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,function(t,i){return n("button",{key:i,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(n){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])})):e._e(),n("div",{staticClass:"el-picker-panel__body"},[e.showTime?n("div",{staticClass:"el-date-picker__time-header"},[n("span",{staticClass:"el-date-picker__editor-wrap"},[n("el-input",{attrs:{placeholder:e.t("el.datepicker.selectDate"),value:e.visibleDate,size:"small"},on:{input:function(t){return e.userInputDate=t},change:e.handleVisibleDateChange}})],1),n("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleTimePickClose,expression:"handleTimePickClose"}],staticClass:"el-date-picker__editor-wrap"},[n("el-input",{ref:"input",attrs:{placeholder:e.t("el.datepicker.selectTime"),value:e.visibleTime,size:"small"},on:{focus:function(t){e.timePickerVisible=!0},input:function(t){return e.userInputTime=t},change:e.handleVisibleTimeChange}}),n("time-picker",{ref:"timepicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.timePickerVisible},on:{pick:e.handleTimePick,mounted:e.proxyTimePickerDataProperties}})],1)]):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:"time"!==e.currentView,expression:"currentView !== 'time'"}],staticClass:"el-date-picker__header",class:{"el-date-picker__header--bordered":"year"===e.currentView||"month"===e.currentView}},[n("button",{staticClass:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left",attrs:{type:"button","aria-label":e.t("el.datepicker.prevYear")},on:{click:e.prevYear}}),n("button",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left",attrs:{type:"button","aria-label":e.t("el.datepicker.prevMonth")},on:{click:e.prevMonth}}),n("span",{staticClass:"el-date-picker__header-label",attrs:{role:"button"},on:{click:e.showYearPicker}},[e._v(e._s(e.yearLabel))]),n("span",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-date-picker__header-label",class:{active:"month"===e.currentView},attrs:{role:"button"},on:{click:e.showMonthPicker}},[e._v(e._s(e.t("el.datepicker.month"+(e.month+1))))]),n("button",{staticClass:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right",attrs:{type:"button","aria-label":e.t("el.datepicker.nextYear")},on:{click:e.nextYear}}),n("button",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],staticClass:"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right",attrs:{type:"button","aria-label":e.t("el.datepicker.nextMonth")},on:{click:e.nextMonth}})]),n("div",{staticClass:"el-picker-panel__content"},[n("date-table",{directives:[{name:"show",rawName:"v-show",value:"date"===e.currentView,expression:"currentView === 'date'"}],attrs:{"selection-mode":e.selectionMode,"first-day-of-week":e.firstDayOfWeek,value:new Date(e.value),"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate,"selected-date":e.selectedDate},on:{pick:e.handleDatePick,select:e.handleDateSelect}}),n("year-table",{directives:[{name:"show",rawName:"v-show",value:"year"===e.currentView,expression:"currentView === 'year'"}],attrs:{value:new Date(e.value),"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate},on:{pick:e.handleYearPick}}),n("month-table",{directives:[{name:"show",rawName:"v-show",value:"month"===e.currentView,expression:"currentView === 'month'"}],attrs:{value:new Date(e.value),"default-value":e.defaultValue?new Date(e.defaultValue):null,date:e.date,"disabled-date":e.disabledDate},on:{pick:e.handleMonthPick}})],1)])],2),n("div",{directives:[{name:"show",rawName:"v-show",value:e.footerVisible&&"date"===e.currentView,expression:"footerVisible && currentView === 'date'"}],staticClass:"el-picker-panel__footer"},[n("el-button",{directives:[{name:"show",rawName:"v-show",value:"dates"!==e.selectionMode,expression:"selectionMode !== 'dates'"}],staticClass:"el-picker-panel__link-btn",attrs:{size:"mini",type:"text"},on:{click:e.changeToNow}},[e._v("\n        "+e._s(e.t("el.datepicker.now"))+"\n      ")]),n("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{plain:"",size:"mini"},on:{click:e.confirm}},[e._v("\n        "+e._s(e.t("el.datepicker.confirm"))+"\n      ")])],1)])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(192),r=n.n(i),a=n(193),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=n(11),r=c(n(9)),a=c(n(3)),o=c(n(29)),s=c(n(39)),l=c(n(6)),u=c(n(15));function c(e){return e&&e.__esModule?e:{default:e}}var d=function(e,t){return new Date(new Date(e).getTime()+t)},h=function(e){return Array.isArray(e)?[new Date(e[0]),new Date(e[1])]:e?[new Date(e),d(e,864e5)]:[new Date,d(Date.now(),864e5)]};t.default={mixins:[a.default],directives:{Clickoutside:r.default},computed:{btnDisabled:function(){return!(this.minDate&&this.maxDate&&!this.selecting)},leftLabel:function(){return this.leftDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+(this.leftDate.getMonth()+1))},rightLabel:function(){return this.rightDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month"+(this.rightDate.getMonth()+1))},leftYear:function(){return this.leftDate.getFullYear()},leftMonth:function(){return this.leftDate.getMonth()},leftMonthDate:function(){return this.leftDate.getDate()},rightYear:function(){return this.rightDate.getFullYear()},rightMonth:function(){return this.rightDate.getMonth()},rightMonthDate:function(){return this.rightDate.getDate()},minVisibleDate:function(){return this.minDate?(0,i.formatDate)(this.minDate,this.dateFormat):""},maxVisibleDate:function(){return this.maxDate||this.minDate?(0,i.formatDate)(this.maxDate||this.minDate,this.dateFormat):""},minVisibleTime:function(){return this.minDate?(0,i.formatDate)(this.minDate,this.timeFormat):""},maxVisibleTime:function(){return this.maxDate||this.minDate?(0,i.formatDate)(this.maxDate||this.minDate,this.timeFormat):""},timeFormat:function(){return this.format?(0,i.extractTimeFormat)(this.format):"HH:mm:ss"},dateFormat:function(){return this.format?(0,i.extractDateFormat)(this.format):"yyyy-MM-dd"},enableMonthArrow:function(){var e=(this.leftMonth+1)%12,t=this.leftMonth+1>=12?1:0;return this.unlinkPanels&&new Date(this.leftYear+t,e)<new Date(this.rightYear,this.rightMonth)},enableYearArrow:function(){return this.unlinkPanels&&12*this.rightYear+this.rightMonth-(12*this.leftYear+this.leftMonth+1)>=12}},data:function(){return{popperClass:"",value:[],defaultValue:null,defaultTime:null,minDate:"",maxDate:"",leftDate:new Date,rightDate:(0,i.nextMonth)(new Date),rangeState:{endDate:null,selecting:!1,row:null,column:null},showTime:!1,shortcuts:"",visible:"",disabledDate:"",firstDayOfWeek:7,minTimePickerVisible:!1,maxTimePickerVisible:!1,format:"",arrowControl:!1,unlinkPanels:!1}},watch:{minDate:function(e){var t=this;this.$nextTick(function(){if(t.$refs.maxTimePicker&&t.maxDate&&t.maxDate<t.minDate){t.$refs.maxTimePicker.selectableRange=[[(0,i.parseDate)((0,i.formatDate)(t.minDate,"HH:mm:ss"),"HH:mm:ss"),(0,i.parseDate)("23:59:59","HH:mm:ss")]]}}),e&&this.$refs.minTimePicker&&(this.$refs.minTimePicker.date=e,this.$refs.minTimePicker.value=e)},maxDate:function(e){e&&this.$refs.maxTimePicker&&(this.$refs.maxTimePicker.date=e,this.$refs.maxTimePicker.value=e)},minTimePickerVisible:function(e){var t=this;e&&this.$nextTick(function(){t.$refs.minTimePicker.date=t.minDate,t.$refs.minTimePicker.value=t.minDate,t.$refs.minTimePicker.adjustSpinners()})},maxTimePickerVisible:function(e){var t=this;e&&this.$nextTick(function(){t.$refs.maxTimePicker.date=t.maxDate,t.$refs.maxTimePicker.value=t.maxDate,t.$refs.maxTimePicker.adjustSpinners()})},value:function(e){if(e){if(Array.isArray(e))if(this.minDate=(0,i.isDate)(e[0])?new Date(e[0]):null,this.maxDate=(0,i.isDate)(e[1])?new Date(e[1]):null,this.minDate)if(this.leftDate=this.minDate,this.unlinkPanels&&this.maxDate){var t=this.minDate.getFullYear(),n=this.minDate.getMonth(),r=this.maxDate.getFullYear(),a=this.maxDate.getMonth();this.rightDate=t===r&&n===a?(0,i.nextMonth)(this.maxDate):this.maxDate}else this.rightDate=(0,i.nextMonth)(this.leftDate);else this.leftDate=h(this.defaultValue)[0],this.rightDate=(0,i.nextMonth)(this.leftDate)}else this.minDate=null,this.maxDate=null},defaultValue:function(e){if(!Array.isArray(this.value)){var t=h(e),n=t[0],r=t[1];this.leftDate=n,this.rightDate=e&&e[1]&&this.unlinkPanels?r:(0,i.nextMonth)(this.leftDate)}}},methods:{handleClear:function(){this.minDate=null,this.maxDate=null,this.leftDate=h(this.defaultValue)[0],this.rightDate=(0,i.nextMonth)(this.leftDate),this.$emit("pick",null)},handleChangeRange:function(e){this.minDate=e.minDate,this.maxDate=e.maxDate,this.rangeState=e.rangeState},handleDateInput:function(e,t){var n=e.target.value;if(n.length===this.dateFormat.length){var r=(0,i.parseDate)(n,this.dateFormat);if(r){if("function"==typeof this.disabledDate&&this.disabledDate(new Date(r)))return;"min"===t?(this.minDate=new Date(r),this.leftDate=new Date(r),this.rightDate=(0,i.nextMonth)(this.leftDate)):(this.maxDate=new Date(r),this.leftDate=(0,i.prevMonth)(r),this.rightDate=new Date(r))}}},handleDateChange:function(e,t){var n=e.target.value,r=(0,i.parseDate)(n,this.dateFormat);r&&("min"===t?(this.minDate=(0,i.modifyDate)(this.minDate,r.getFullYear(),r.getMonth(),r.getDate()),this.minDate>this.maxDate&&(this.maxDate=this.minDate)):(this.maxDate=(0,i.modifyDate)(this.maxDate,r.getFullYear(),r.getMonth(),r.getDate()),this.maxDate<this.minDate&&(this.minDate=this.maxDate)))},handleTimeChange:function(e,t){var n=e.target.value,r=(0,i.parseDate)(n,this.timeFormat);r&&("min"===t?(this.minDate=(0,i.modifyTime)(this.minDate,r.getHours(),r.getMinutes(),r.getSeconds()),this.minDate>this.maxDate&&(this.maxDate=this.minDate),this.$refs.minTimePicker.value=this.minDate,this.minTimePickerVisible=!1):(this.maxDate=(0,i.modifyTime)(this.maxDate,r.getHours(),r.getMinutes(),r.getSeconds()),this.maxDate<this.minDate&&(this.minDate=this.maxDate),this.$refs.maxTimePicker.value=this.minDate,this.maxTimePickerVisible=!1))},handleRangePick:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=this.defaultTime||[],a=(0,i.modifyWithTimeString)(e.minDate,r[0]),o=(0,i.modifyWithTimeString)(e.maxDate,r[1]);this.maxDate===o&&this.minDate===a||(this.onPick&&this.onPick(e),this.maxDate=o,this.minDate=a,setTimeout(function(){t.maxDate=o,t.minDate=a},10),n&&!this.showTime&&this.handleConfirm())},handleShortcutClick:function(e){e.onClick&&e.onClick(this)},handleMinTimePick:function(e,t,n){this.minDate=this.minDate||new Date,e&&(this.minDate=(0,i.modifyTime)(this.minDate,e.getHours(),e.getMinutes(),e.getSeconds())),n||(this.minTimePickerVisible=t),(!this.maxDate||this.maxDate&&this.maxDate.getTime()<this.minDate.getTime())&&(this.maxDate=new Date(this.minDate))},handleMinTimeClose:function(){this.minTimePickerVisible=!1},handleMaxTimePick:function(e,t,n){this.maxDate&&e&&(this.maxDate=(0,i.modifyTime)(this.maxDate,e.getHours(),e.getMinutes(),e.getSeconds())),n||(this.maxTimePickerVisible=t),this.maxDate&&this.minDate&&this.minDate.getTime()>this.maxDate.getTime()&&(this.minDate=new Date(this.maxDate))},handleMaxTimeClose:function(){this.maxTimePickerVisible=!1},leftPrevYear:function(){this.leftDate=(0,i.prevYear)(this.leftDate),this.unlinkPanels||(this.rightDate=(0,i.nextMonth)(this.leftDate))},leftPrevMonth:function(){this.leftDate=(0,i.prevMonth)(this.leftDate),this.unlinkPanels||(this.rightDate=(0,i.nextMonth)(this.leftDate))},rightNextYear:function(){this.unlinkPanels?this.rightDate=(0,i.nextYear)(this.rightDate):(this.leftDate=(0,i.nextYear)(this.leftDate),this.rightDate=(0,i.nextMonth)(this.leftDate))},rightNextMonth:function(){this.unlinkPanels?this.rightDate=(0,i.nextMonth)(this.rightDate):(this.leftDate=(0,i.nextMonth)(this.leftDate),this.rightDate=(0,i.nextMonth)(this.leftDate))},leftNextYear:function(){this.leftDate=(0,i.nextYear)(this.leftDate)},leftNextMonth:function(){this.leftDate=(0,i.nextMonth)(this.leftDate)},rightPrevYear:function(){this.rightDate=(0,i.prevYear)(this.rightDate)},rightPrevMonth:function(){this.rightDate=(0,i.prevMonth)(this.rightDate)},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.$emit("pick",[this.minDate,this.maxDate],e)},isValidValue:function(e){return Array.isArray(e)&&e&&e[0]&&e[1]&&(0,i.isDate)(e[0])&&(0,i.isDate)(e[1])&&e[0].getTime()<=e[1].getTime()&&("function"!=typeof this.disabledDate||!this.disabledDate(e[0])&&!this.disabledDate(e[1]))}},components:{TimePicker:o.default,DateTable:s.default,ElInput:l.default,ElButton:u.default}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-range-picker el-popper",class:[{"has-sidebar":e.$slots.sidebar||e.shortcuts,"has-time":e.showTime},e.popperClass]},[n("div",{staticClass:"el-picker-panel__body-wrapper"},[e._t("sidebar"),e.shortcuts?n("div",{staticClass:"el-picker-panel__sidebar"},e._l(e.shortcuts,function(t,i){return n("button",{key:i,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function(n){e.handleShortcutClick(t)}}},[e._v(e._s(t.text))])})):e._e(),n("div",{staticClass:"el-picker-panel__body"},[e.showTime?n("div",{staticClass:"el-date-range-picker__time-header"},[n("span",{staticClass:"el-date-range-picker__editors-wrap"},[n("span",{staticClass:"el-date-range-picker__time-picker-wrap"},[n("el-input",{ref:"minInput",staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startDate"),value:e.minVisibleDate},nativeOn:{input:function(t){e.handleDateInput(t,"min")},change:function(t){e.handleDateChange(t,"min")}}})],1),n("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleMinTimeClose,expression:"handleMinTimeClose"}],staticClass:"el-date-range-picker__time-picker-wrap"},[n("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.startTime"),value:e.minVisibleTime},on:{focus:function(t){e.minTimePickerVisible=!0}},nativeOn:{change:function(t){e.handleTimeChange(t,"min")}}}),n("time-picker",{ref:"minTimePicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.minTimePickerVisible},on:{pick:e.handleMinTimePick,mounted:function(t){e.$refs.minTimePicker.format=e.timeFormat}}})],1)]),n("span",{staticClass:"el-icon-arrow-right"}),n("span",{staticClass:"el-date-range-picker__editors-wrap is-right"},[n("span",{staticClass:"el-date-range-picker__time-picker-wrap"},[n("el-input",{staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endDate"),value:e.maxVisibleDate,readonly:!e.minDate},nativeOn:{input:function(t){e.handleDateInput(t,"max")},change:function(t){e.handleDateChange(t,"max")}}})],1),n("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleMaxTimeClose,expression:"handleMaxTimeClose"}],staticClass:"el-date-range-picker__time-picker-wrap"},[n("el-input",{ref:"maxInput",staticClass:"el-date-range-picker__editor",attrs:{size:"small",disabled:e.rangeState.selecting,placeholder:e.t("el.datepicker.endTime"),value:e.maxVisibleTime,readonly:!e.minDate},on:{focus:function(t){e.minDate&&(e.maxTimePickerVisible=!0)}},nativeOn:{change:function(t){e.handleTimeChange(t,"max")}}}),n("time-picker",{ref:"maxTimePicker",attrs:{"time-arrow-control":e.arrowControl,visible:e.maxTimePickerVisible},on:{pick:e.handleMaxTimePick,mounted:function(t){e.$refs.maxTimePicker.format=e.timeFormat}}})],1)])]):e._e(),n("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-left"},[n("div",{staticClass:"el-date-range-picker__header"},[n("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevYear}}),n("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",attrs:{type:"button"},on:{click:e.leftPrevMonth}}),e.unlinkPanels?n("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.leftNextYear}}):e._e(),e.unlinkPanels?n("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",class:{"is-disabled":!e.enableMonthArrow},attrs:{type:"button",disabled:!e.enableMonthArrow},on:{click:e.leftNextMonth}}):e._e(),n("div",[e._v(e._s(e.leftLabel))])]),n("date-table",{attrs:{"selection-mode":"range",date:e.leftDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"first-day-of-week":e.firstDayOfWeek},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1),n("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-right"},[n("div",{staticClass:"el-date-range-picker__header"},[e.unlinkPanels?n("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",class:{"is-disabled":!e.enableYearArrow},attrs:{type:"button",disabled:!e.enableYearArrow},on:{click:e.rightPrevYear}}):e._e(),e.unlinkPanels?n("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",class:{"is-disabled":!e.enableMonthArrow},attrs:{type:"button",disabled:!e.enableMonthArrow},on:{click:e.rightPrevMonth}}):e._e(),n("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",attrs:{type:"button"},on:{click:e.rightNextYear}}),n("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",attrs:{type:"button"},on:{click:e.rightNextMonth}}),n("div",[e._v(e._s(e.rightLabel))])]),n("date-table",{attrs:{"selection-mode":"range",date:e.rightDate,"default-value":e.defaultValue,"min-date":e.minDate,"max-date":e.maxDate,"range-state":e.rangeState,"disabled-date":e.disabledDate,"first-day-of-week":e.firstDayOfWeek},on:{changerange:e.handleChangeRange,pick:e.handleRangePick}})],1)])],2),e.showTime?n("div",{staticClass:"el-picker-panel__footer"},[n("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{size:"mini",type:"text"},on:{click:e.handleClear}},[e._v("\n        "+e._s(e.t("el.datepicker.clear"))+"\n      ")]),n("el-button",{staticClass:"el-picker-panel__link-btn",attrs:{plain:"",size:"mini",disabled:e.btnDisabled},on:{click:function(t){e.handleConfirm()}}},[e._v("\n        "+e._s(e.t("el.datepicker.confirm"))+"\n      ")])],1):e._e()])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(195),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=a(n(28)),r=a(n(196));function a(e){return e&&e.__esModule?e:{default:e}}t.default={mixins:[i.default],name:"ElTimeSelect",componentName:"ElTimeSelect",props:{type:{type:String,default:"time-select"}},beforeCreate:function(){this.panel=r.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(197),r=n.n(i),a=n(198),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=a(n(18)),r=a(n(26));function a(e){return e&&e.__esModule?e:{default:e}}var o=function(e){var t=(e||"").split(":");return t.length>=2?{hours:parseInt(t[0],10),minutes:parseInt(t[1],10)}:null},s=function(e,t){var n=o(e),i=o(t),r=n.minutes+60*n.hours,a=i.minutes+60*i.hours;return r===a?0:r>a?1:-1},l=function(e,t){var n=o(e),i=o(t),r={hours:n.hours,minutes:n.minutes};return r.minutes+=i.minutes,r.hours+=i.hours,r.hours+=Math.floor(r.minutes/60),r.minutes=r.minutes%60,function(e){return(e.hours<10?"0"+e.hours:e.hours)+":"+(e.minutes<10?"0"+e.minutes:e.minutes)}(r)};t.default={components:{ElScrollbar:i.default},watch:{value:function(e){var t=this;e&&this.$nextTick(function(){return t.scrollToOption()})}},methods:{handleClick:function(e){e.disabled||this.$emit("pick",e.value)},handleClear:function(){this.$emit("pick",null)},scrollToOption:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".selected",t=this.$refs.popper.querySelector(".el-picker-panel__content");(0,r.default)(t,t.querySelector(e))},handleMenuEnter:function(){var e=this,t=-1!==this.items.map(function(e){return e.value}).indexOf(this.value),n=-1!==this.items.map(function(e){return e.value}).indexOf(this.defaultValue),i=(t?".selected":n&&".default")||".time-select-item:not(.disabled)";this.$nextTick(function(){return e.scrollToOption(i)})},scrollDown:function(e){for(var t=this.items,n=t.length,i=t.length,r=t.map(function(e){return e.value}).indexOf(this.value);i--;)if(!t[r=(r+e+n)%n].disabled)return void this.$emit("pick",t[r].value,!0)},isValidValue:function(e){return-1!==this.items.filter(function(e){return!e.disabled}).map(function(e){return e.value}).indexOf(e)},handleKeydown:function(e){var t=e.keyCode;if(38===t||40===t){var n={40:1,38:-1}[t.toString()];return this.scrollDown(n),void e.stopPropagation()}}},data:function(){return{popperClass:"",start:"09:00",end:"18:00",step:"00:30",value:"",defaultValue:"",visible:!1,minTime:"",maxTime:"",width:0}},computed:{items:function(){var e=this.start,t=this.end,n=this.step,i=[];if(e&&t&&n)for(var r=e;s(r,t)<=0;)i.push({value:r,disabled:s(r,this.minTime||"-1:-1")<=0||s(r,this.maxTime||"100:100")>=0}),r=l(r,n);return i}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":e.handleMenuEnter,"after-leave":function(t){e.$emit("dodestroy")}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],ref:"popper",staticClass:"el-picker-panel time-select el-popper",class:e.popperClass,style:{width:e.width+"px"}},[n("el-scrollbar",{attrs:{noresize:"","wrap-class":"el-picker-panel__content"}},e._l(e.items,function(t){return n("div",{staticClass:"time-select-item",class:{selected:e.value===t.value,disabled:t.disabled,default:t.value===e.defaultValue},attrs:{disabled:t.disabled},on:{click:function(n){e.handleClick(t)}}},[e._v(e._s(t.value))])}))],1)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(200),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(28)),r=o(n(29)),a=o(n(201));function o(e){return e&&e.__esModule?e:{default:e}}t.default={mixins:[i.default],name:"ElTimePicker",props:{isRange:Boolean,arrowControl:Boolean},data:function(){return{type:""}},watch:{isRange:function(e){this.picker?(this.unmountPicker(),this.type=e?"timerange":"time",this.panel=e?a.default:r.default,this.mountPicker()):(this.type=e?"timerange":"time",this.panel=e?a.default:r.default)}},created:function(){this.type=this.isRange?"timerange":"time",this.panel=this.isRange?a.default:r.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(202),r=n.n(i),a=n(203),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=n(11),r=o(n(3)),a=o(n(38));function o(e){return e&&e.__esModule?e:{default:e}}var s=(0,i.parseDate)("00:00:00","HH:mm:ss"),l=(0,i.parseDate)("23:59:59","HH:mm:ss"),u=function(e){return(0,i.modifyDate)(l,e.getFullYear(),e.getMonth(),e.getDate())},c=function(e,t){return new Date(Math.min(e.getTime()+t,u(e).getTime()))};t.default={mixins:[r.default],components:{TimeSpinner:a.default},computed:{showSeconds:function(){return-1!==(this.format||"").indexOf("ss")},offset:function(){return this.showSeconds?11:8},spinner:function(){return this.selectionRange[0]<this.offset?this.$refs.minSpinner:this.$refs.maxSpinner},btnDisabled:function(){return this.minDate.getTime()>this.maxDate.getTime()},amPmMode:function(){return-1!==(this.format||"").indexOf("A")?"A":-1!==(this.format||"").indexOf("a")?"a":""}},data:function(){return{popperClass:"",minDate:new Date,maxDate:new Date,value:[],oldValue:[new Date,new Date],defaultValue:null,format:"HH:mm:ss",visible:!1,selectionRange:[0,2],arrowControl:!1}},watch:{value:function(e){Array.isArray(e)?(this.minDate=new Date(e[0]),this.maxDate=new Date(e[1])):Array.isArray(this.defaultValue)?(this.minDate=new Date(this.defaultValue[0]),this.maxDate=new Date(this.defaultValue[1])):this.defaultValue?(this.minDate=new Date(this.defaultValue),this.maxDate=c(new Date(this.defaultValue),36e5)):(this.minDate=new Date,this.maxDate=c(new Date,36e5))},visible:function(e){var t=this;e&&(this.oldValue=this.value,this.$nextTick(function(){return t.$refs.minSpinner.emitSelectRange("hours")}))}},methods:{handleClear:function(){this.$emit("pick",null)},handleCancel:function(){this.$emit("pick",this.oldValue)},handleMinChange:function(e){this.minDate=(0,i.clearMilliseconds)(e),this.handleChange()},handleMaxChange:function(e){this.maxDate=(0,i.clearMilliseconds)(e),this.handleChange()},handleChange:function(){var e;this.isValidValue([this.minDate,this.maxDate])&&(this.$refs.minSpinner.selectableRange=[[(e=this.minDate,(0,i.modifyDate)(s,e.getFullYear(),e.getMonth(),e.getDate())),this.maxDate]],this.$refs.maxSpinner.selectableRange=[[this.minDate,u(this.maxDate)]],this.$emit("pick",[this.minDate,this.maxDate],!0))},setMinSelectionRange:function(e,t){this.$emit("select-range",e,t,"min"),this.selectionRange=[e,t]},setMaxSelectionRange:function(e,t){this.$emit("select-range",e,t,"max"),this.selectionRange=[e+this.offset,t+this.offset]},handleConfirm:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.$refs.minSpinner.selectableRange,n=this.$refs.maxSpinner.selectableRange;this.minDate=(0,i.limitTimeRange)(this.minDate,t,this.format),this.maxDate=(0,i.limitTimeRange)(this.maxDate,n,this.format),this.$emit("pick",[this.minDate,this.maxDate],e)},adjustSpinners:function(){this.$refs.minSpinner.adjustSpinners(),this.$refs.maxSpinner.adjustSpinners()},changeSelectionRange:function(e){var t=this.showSeconds?[0,3,6,11,14,17]:[0,3,8,11],n=["hours","minutes"].concat(this.showSeconds?["seconds"]:[]),i=(t.indexOf(this.selectionRange[0])+e+t.length)%t.length,r=t.length/2;i<r?this.$refs.minSpinner.emitSelectRange(n[i]):this.$refs.maxSpinner.emitSelectRange(n[i-r])},isValidValue:function(e){return Array.isArray(e)&&(0,i.timeWithinRange)(this.minDate,this.$refs.minSpinner.selectableRange)&&(0,i.timeWithinRange)(this.maxDate,this.$refs.maxSpinner.selectableRange)},handleKeydown:function(e){var t=e.keyCode,n={38:-1,40:1,37:-1,39:1};if(37===t||39===t){var i=n[t];return this.changeSelectionRange(i),void e.preventDefault()}if(38===t||40===t){var r=n[t];return this.spinner.scrollDown(r),void e.preventDefault()}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function(t){e.$emit("dodestroy")}}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-time-range-picker el-picker-panel el-popper",class:e.popperClass},[n("div",{staticClass:"el-time-range-picker__content"},[n("div",{staticClass:"el-time-range-picker__cell"},[n("div",{staticClass:"el-time-range-picker__header"},[e._v(e._s(e.t("el.datepicker.startTime")))]),n("div",{staticClass:"el-time-range-picker__body el-time-panel__content",class:{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl}},[n("time-spinner",{ref:"minSpinner",attrs:{"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,date:e.minDate},on:{change:e.handleMinChange,"select-range":e.setMinSelectionRange}})],1)]),n("div",{staticClass:"el-time-range-picker__cell"},[n("div",{staticClass:"el-time-range-picker__header"},[e._v(e._s(e.t("el.datepicker.endTime")))]),n("div",{staticClass:"el-time-range-picker__body el-time-panel__content",class:{"has-seconds":e.showSeconds,"is-arrow":e.arrowControl}},[n("time-spinner",{ref:"maxSpinner",attrs:{"show-seconds":e.showSeconds,"am-pm-mode":e.amPmMode,"arrow-control":e.arrowControl,date:e.maxDate},on:{change:e.handleMaxChange,"select-range":e.setMaxSelectionRange}})],1)])]),n("div",{staticClass:"el-time-panel__footer"},[n("button",{staticClass:"el-time-panel__btn cancel",attrs:{type:"button"},on:{click:function(t){e.handleCancel()}}},[e._v(e._s(e.t("el.datepicker.cancel")))]),n("button",{staticClass:"el-time-panel__btn confirm",attrs:{type:"button",disabled:e.btnDisabled},on:{click:function(t){e.handleConfirm()}}},[e._v(e._s(e.t("el.datepicker.confirm")))])])])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i=a(n(205)),r=a(n(208));function a(e){return e&&e.__esModule?e:{default:e}}a(n(5)).default.directive("popover",r.default),i.default.install=function(e){e.directive("popover",r.default),e.component(i.default.name,i.default)},i.default.directive=r.default,t.default=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(206),r=n.n(i),a=n(207),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(8),a=(i=r)&&i.__esModule?i:{default:i},o=n(2),s=n(4);t.default={name:"ElPopover",mixins:[a.default],props:{trigger:{type:String,default:"click",validator:function(e){return["click","focus","hover","manual"].indexOf(e)>-1}},openDelay:{type:Number,default:0},title:String,disabled:Boolean,content:String,reference:{},popperClass:String,width:{},visibleArrow:{default:!0},arrowOffset:{type:Number,default:0},transition:{type:String,default:"fade-in-linear"}},computed:{tooltipId:function(){return"el-popover-"+(0,s.generateId)()}},watch:{showPopper:function(e){this.disabled||(e?this.$emit("show"):this.$emit("hide"))}},mounted:function(){var e=this,t=this.referenceElm=this.reference||this.$refs.reference,n=this.popper||this.$refs.popper;!t&&this.$slots.reference&&this.$slots.reference[0]&&(t=this.referenceElm=this.$slots.reference[0].elm),t&&((0,o.addClass)(t,"el-popover__reference"),t.setAttribute("aria-describedby",this.tooltipId),t.setAttribute("tabindex",0),n.setAttribute("tabindex",0),"click"!==this.trigger&&((0,o.on)(t,"focusin",function(){e.handleFocus();var n=t.__vue__;n&&"function"==typeof n.focus&&n.focus()}),(0,o.on)(n,"focusin",this.handleFocus),(0,o.on)(t,"focusout",this.handleBlur),(0,o.on)(n,"focusout",this.handleBlur)),(0,o.on)(t,"keydown",this.handleKeydown),(0,o.on)(t,"click",this.handleClick)),"click"===this.trigger?((0,o.on)(t,"click",this.doToggle),(0,o.on)(document,"click",this.handleDocumentClick)):"hover"===this.trigger?((0,o.on)(t,"mouseenter",this.handleMouseEnter),(0,o.on)(n,"mouseenter",this.handleMouseEnter),(0,o.on)(t,"mouseleave",this.handleMouseLeave),(0,o.on)(n,"mouseleave",this.handleMouseLeave)):"focus"===this.trigger&&(t.querySelector("input, textarea")?((0,o.on)(t,"focusin",this.doShow),(0,o.on)(t,"focusout",this.doClose)):((0,o.on)(t,"mousedown",this.doShow),(0,o.on)(t,"mouseup",this.doClose)))},methods:{doToggle:function(){this.showPopper=!this.showPopper},doShow:function(){this.showPopper=!0},doClose:function(){this.showPopper=!1},handleFocus:function(){(0,o.addClass)(this.referenceElm,"focusing"),"manual"!==this.trigger&&(this.showPopper=!0)},handleClick:function(){(0,o.removeClass)(this.referenceElm,"focusing")},handleBlur:function(){(0,o.removeClass)(this.referenceElm,"focusing"),"manual"!==this.trigger&&(this.showPopper=!1)},handleMouseEnter:function(){var e=this;clearTimeout(this._timer),this.openDelay?this._timer=setTimeout(function(){e.showPopper=!0},this.openDelay):this.showPopper=!0},handleKeydown:function(e){27===e.keyCode&&"manual"!==this.trigger&&this.doClose()},handleMouseLeave:function(){var e=this;clearTimeout(this._timer),this._timer=setTimeout(function(){e.showPopper=!1},200)},handleDocumentClick:function(e){var t=this.reference||this.$refs.reference,n=this.popper||this.$refs.popper;!t&&this.$slots.reference&&this.$slots.reference[0]&&(t=this.referenceElm=this.$slots.reference[0].elm),this.$el&&t&&!this.$el.contains(e.target)&&!t.contains(e.target)&&n&&!n.contains(e.target)&&(this.showPopper=!1)},handleAfterEnter:function(){this.$emit("after-enter")},handleAfterLeave:function(){this.$emit("after-leave"),this.doDestroy()}},destroyed:function(){var e=this.reference;(0,o.off)(e,"click",this.doToggle),(0,o.off)(e,"mouseup",this.doClose),(0,o.off)(e,"mousedown",this.doShow),(0,o.off)(e,"focusin",this.doShow),(0,o.off)(e,"focusout",this.doClose),(0,o.off)(e,"mousedown",this.doShow),(0,o.off)(e,"mouseup",this.doClose),(0,o.off)(e,"mouseleave",this.handleMouseLeave),(0,o.off)(e,"mouseenter",this.handleMouseEnter),(0,o.off)(document,"click",this.handleDocumentClick)}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",[n("transition",{attrs:{name:e.transition},on:{"after-enter":e.handleAfterEnter,"after-leave":e.handleAfterLeave}},[n("div",{directives:[{name:"show",rawName:"v-show",value:!e.disabled&&e.showPopper,expression:"!disabled && showPopper"}],ref:"popper",staticClass:"el-popover el-popper",class:[e.popperClass,e.content&&"el-popover--plain"],style:{width:e.width+"px"},attrs:{role:"tooltip",id:e.tooltipId,"aria-hidden":e.disabled||!e.showPopper?"true":"false"}},[e.title?n("div",{staticClass:"el-popover__title",domProps:{textContent:e._s(e.title)}}):e._e(),e._t("default",[e._v(e._s(e.content))])],2)]),e._t("reference")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i=function(e,t,n){var i=t.expression?t.value:t.arg,r=n.context.$refs[i];r&&(Array.isArray(r)?r[0].$refs.reference=e:r.$refs.reference=e)};t.default={bind:function(e,t,n){i(e,t,n)},inserted:function(e,t,n){i(e,t,n)}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(210),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=u(n(8)),r=u(n(13)),a=n(2),o=n(21),s=n(4),l=u(n(5));function u(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElTooltip",mixins:[i.default],props:{openDelay:{type:Number,default:0},disabled:Boolean,manual:Boolean,effect:{type:String,default:"dark"},arrowOffset:{type:Number,default:0},popperClass:String,content:String,visibleArrow:{default:!0},transition:{type:String,default:"el-fade-in-linear"},popperOptions:{default:function(){return{boundariesPadding:10,gpuAcceleration:!1}}},enterable:{type:Boolean,default:!0},hideAfter:{type:Number,default:0}},data:function(){return{timeoutPending:null,focusing:!1}},computed:{tooltipId:function(){return"el-tooltip-"+(0,s.generateId)()}},beforeCreate:function(){var e=this;this.$isServer||(this.popperVM=new l.default({data:{node:""},render:function(e){return this.node}}).$mount(),this.debounceClose=(0,r.default)(200,function(){return e.handleClosePopper()}))},render:function(e){var t=this;if(this.popperVM&&(this.popperVM.node=e("transition",{attrs:{name:this.transition},on:{afterLeave:this.doDestroy}},[e("div",{on:{mouseleave:function(){t.setExpectedState(!1),t.debounceClose()},mouseenter:function(){t.setExpectedState(!0)}},ref:"popper",attrs:{role:"tooltip",id:this.tooltipId,"aria-hidden":this.disabled||!this.showPopper?"true":"false"},directives:[{name:"show",value:!this.disabled&&this.showPopper}],class:["el-tooltip__popper","is-"+this.effect,this.popperClass]},[this.$slots.content||this.content])])),!this.$slots.default||!this.$slots.default.length)return this.$slots.default;var n=(0,o.getFirstComponentChild)(this.$slots.default);if(!n)return n;var i=n.data=n.data||{};return i.staticClass=this.concatClass(i.staticClass,"el-tooltip"),n},mounted:function(){var e=this;this.referenceElm=this.$el,1===this.$el.nodeType&&(this.$el.setAttribute("aria-describedby",this.tooltipId),this.$el.setAttribute("tabindex",0),(0,a.on)(this.referenceElm,"mouseenter",this.show),(0,a.on)(this.referenceElm,"mouseleave",this.hide),(0,a.on)(this.referenceElm,"focus",function(){if(e.$slots.default&&e.$slots.default.length){var t=e.$slots.default[0].componentInstance;t&&t.focus?t.focus():e.handleFocus()}else e.handleFocus()}),(0,a.on)(this.referenceElm,"blur",this.handleBlur),(0,a.on)(this.referenceElm,"click",this.removeFocusing))},watch:{focusing:function(e){e?(0,a.addClass)(this.referenceElm,"focusing"):(0,a.removeClass)(this.referenceElm,"focusing")}},methods:{show:function(){this.setExpectedState(!0),this.handleShowPopper()},hide:function(){this.setExpectedState(!1),this.debounceClose()},handleFocus:function(){this.focusing=!0,this.show()},handleBlur:function(){this.focusing=!1,this.hide()},removeFocusing:function(){this.focusing=!1},concatClass:function(e,t){return e&&e.indexOf(t)>-1?e:e?t?e+" "+t:e:t||""},handleShowPopper:function(){var e=this;this.expectedState&&!this.manual&&(clearTimeout(this.timeout),this.timeout=setTimeout(function(){e.showPopper=!0},this.openDelay),this.hideAfter>0&&(this.timeoutPending=setTimeout(function(){e.showPopper=!1},this.hideAfter)))},handleClosePopper:function(){this.enterable&&this.expectedState||this.manual||(clearTimeout(this.timeout),this.timeoutPending&&clearTimeout(this.timeoutPending),this.showPopper=!1,this.disabled&&this.doDestroy())},setExpectedState:function(e){!1===e&&clearTimeout(this.timeoutPending),this.expectedState=e}},destroyed:function(){var e=this.referenceElm;(0,a.off)(e,"mouseenter",this.show),(0,a.off)(e,"mouseleave",this.hide),(0,a.off)(e,"focus",this.handleFocus),(0,a.off)(e,"blur",this.handleBlur),(0,a.off)(e,"click",this.removeFocusing)}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(212),a=(i=r)&&i.__esModule?i:{default:i};t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0,t.MessageBox=void 0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=l(n(5)),a=l(n(213)),o=l(n(10)),s=n(21);function l(e){return e&&e.__esModule?e:{default:e}}var u={title:null,message:"",type:"",iconClass:"",showInput:!1,showClose:!0,modalFade:!0,lockScroll:!0,closeOnClickModal:!0,closeOnPressEscape:!0,closeOnHashChange:!0,inputValue:null,inputPlaceholder:"",inputType:"text",inputPattern:null,inputValidator:null,inputErrorMessage:"",showConfirmButton:!0,showCancelButton:!1,confirmButtonPosition:"right",confirmButtonHighlight:!1,cancelButtonHighlight:!1,confirmButtonText:"",cancelButtonText:"",confirmButtonClass:"",cancelButtonClass:"",customClass:"",beforeClose:null,dangerouslyUseHTMLString:!1,center:!1,roundButton:!1,distinguishCancelAndClose:!1},c=r.default.extend(a.default),d=void 0,h=void 0,f=[],p=function(e){if(d){var t=d.callback;"function"==typeof t&&(h.showInput?t(h.inputValue,e):t(e)),d.resolve&&("confirm"===e?h.showInput?d.resolve({value:h.inputValue,action:e}):d.resolve(e):!d.reject||"cancel"!==e&&"close"!==e||d.reject(e))}},m=function e(){h||((h=new c({el:document.createElement("div")})).callback=p),h.action="",h.visible&&!h.closeTimer||f.length>0&&function(){var t=(d=f.shift()).options;for(var n in t)t.hasOwnProperty(n)&&(h[n]=t[n]);void 0===t.callback&&(h.callback=p);var i=h.callback;h.callback=function(t,n){i(t,n),e()},(0,s.isVNode)(h.message)?(h.$slots.default=[h.message],h.message=null):delete h.$slots.default,["modal","showClose","closeOnClickModal","closeOnPressEscape","closeOnHashChange"].forEach(function(e){void 0===h[e]&&(h[e]=!0)}),document.body.appendChild(h.$el),r.default.nextTick(function(){h.visible=!0})}()},g=function e(t,n){if(!r.default.prototype.$isServer){if("string"==typeof t||(0,s.isVNode)(t)?(t={message:t},"string"==typeof arguments[1]&&(t.title=arguments[1])):t.callback&&!n&&(n=t.callback),"undefined"!=typeof Promise)return new Promise(function(i,r){f.push({options:(0,o.default)({},u,e.defaults,t),callback:n,resolve:i,reject:r}),m()});f.push({options:(0,o.default)({},u,e.defaults,t),callback:n}),m()}};g.setDefaults=function(e){g.defaults=e},g.alert=function(e,t,n){return"object"===(void 0===t?"undefined":i(t))?(n=t,t=""):void 0===t&&(t=""),g((0,o.default)({title:t,message:e,$type:"alert",closeOnPressEscape:!1,closeOnClickModal:!1},n))},g.confirm=function(e,t,n){return"object"===(void 0===t?"undefined":i(t))?(n=t,t=""):void 0===t&&(t=""),g((0,o.default)({title:t,message:e,$type:"confirm",showCancelButton:!0},n))},g.prompt=function(e,t,n){return"object"===(void 0===t?"undefined":i(t))?(n=t,t=""):void 0===t&&(t=""),g((0,o.default)({title:t,message:e,showCancelButton:!0,showInput:!0,$type:"prompt"},n))},g.close=function(){h.doClose(),h.visible=!1,f=[],d=null},t.default=g,t.MessageBox=g},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(214),r=n.n(i),a=n(216),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=c(n(12)),r=c(n(3)),a=c(n(6)),o=c(n(15)),s=n(2),l=n(16),u=c(n(215));function c(e){return e&&e.__esModule?e:{default:e}}var d=void 0,h={success:"success",info:"info",warning:"warning",error:"error"};t.default={mixins:[i.default,r.default],props:{modal:{default:!0},lockScroll:{default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{default:!0},closeOnPressEscape:{default:!0},closeOnHashChange:{default:!0},center:{default:!1,type:Boolean},roundButton:{default:!1,type:Boolean}},components:{ElInput:a.default,ElButton:o.default},computed:{icon:function(){var e=this.type;return this.iconClass||(e&&h[e]?"el-icon-"+h[e]:"")},confirmButtonClasses:function(){return"el-button--primary "+this.confirmButtonClass},cancelButtonClasses:function(){return""+this.cancelButtonClass}},methods:{getSafeClose:function(){var e=this,t=this.uid;return function(){e.$nextTick(function(){t===e.uid&&e.doClose()})}},doClose:function(){var e=this;this.visible&&(this.visible=!1,this._closing=!0,this.onClose&&this.onClose(),d.closeDialog(),this.lockScroll&&setTimeout(this.restoreBodyStyle,200),this.opened=!1,this.doAfterClose(),setTimeout(function(){e.action&&e.callback(e.action,e)}))},handleWrapperClick:function(){this.closeOnClickModal&&this.handleAction(this.distinguishCancelAndClose?"close":"cancel")},handleInputEnter:function(){if("textarea"!==this.inputType)return this.handleAction("confirm")},handleAction:function(e){("prompt"!==this.$type||"confirm"!==e||this.validate())&&(this.action=e,"function"==typeof this.beforeClose?(this.close=this.getSafeClose(),this.beforeClose(e,this,this.close)):this.doClose())},validate:function(){if("prompt"===this.$type){var e=this.inputPattern;if(e&&!e.test(this.inputValue||""))return this.editorErrorMessage=this.inputErrorMessage||(0,l.t)("el.messagebox.error"),(0,s.addClass)(this.getInputElement(),"invalid"),!1;var t=this.inputValidator;if("function"==typeof t){var n=t(this.inputValue);if(!1===n)return this.editorErrorMessage=this.inputErrorMessage||(0,l.t)("el.messagebox.error"),(0,s.addClass)(this.getInputElement(),"invalid"),!1;if("string"==typeof n)return this.editorErrorMessage=n,(0,s.addClass)(this.getInputElement(),"invalid"),!1}}return this.editorErrorMessage="",(0,s.removeClass)(this.getInputElement(),"invalid"),!0},getFirstFocus:function(){var e=this.$el.querySelector(".el-message-box__btns .el-button"),t=this.$el.querySelector(".el-message-box__btns .el-message-box__title");return e||t},getInputElement:function(){var e=this.$refs.input.$refs;return e.input||e.textarea}},watch:{inputValue:{immediate:!0,handler:function(e){var t=this;this.$nextTick(function(n){"prompt"===t.$type&&null!==e&&t.validate()})}},visible:function(e){var t=this;e&&(this.uid++,"alert"!==this.$type&&"confirm"!==this.$type||this.$nextTick(function(){t.$refs.confirm.$el.focus()}),this.focusAfterClosed=document.activeElement,d=new u.default(this.$el,this.focusAfterClosed,this.getFirstFocus())),"prompt"===this.$type&&(e?setTimeout(function(){t.$refs.input&&t.$refs.input.$el&&t.getInputElement().focus()},500):(this.editorErrorMessage="",(0,s.removeClass)(this.getInputElement(),"invalid")))}},mounted:function(){var e=this;this.$nextTick(function(){e.closeOnHashChange&&window.addEventListener("hashchange",e.close)})},beforeDestroy:function(){this.closeOnHashChange&&window.removeEventListener("hashchange",this.close),setTimeout(function(){d.closeDialog()})},data:function(){return{uid:1,title:void 0,message:"",type:"",iconClass:"",customClass:"",showInput:!1,inputValue:null,inputPlaceholder:"",inputType:"text",inputPattern:null,inputValidator:null,inputErrorMessage:"",showConfirmButton:!0,showCancelButton:!1,action:"",confirmButtonText:"",cancelButtonText:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonClass:"",confirmButtonDisabled:!1,cancelButtonClass:"",editorErrorMessage:null,callback:null,dangerouslyUseHTMLString:!1,focusAfterClosed:null,isOnComposition:!1,distinguishCancelAndClose:!1}}}},function(e,t){e.exports=n("clI9")},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"msgbox-fade"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-message-box__wrapper",attrs:{tabindex:"-1",role:"dialog","aria-modal":"true","aria-label":e.title||"dialog"},on:{click:function(t){if(t.target!==t.currentTarget)return null;e.handleWrapperClick(t)}}},[n("div",{staticClass:"el-message-box",class:[e.customClass,e.center&&"el-message-box--center"]},[null!==e.title?n("div",{staticClass:"el-message-box__header"},[n("div",{staticClass:"el-message-box__title"},[e.icon&&e.center?n("div",{class:["el-message-box__status",e.icon]}):e._e(),n("span",[e._v(e._s(e.title))])]),e.showClose?n("button",{staticClass:"el-message-box__headerbtn",attrs:{type:"button","aria-label":"Close"},on:{click:function(t){e.handleAction(e.distinguishCancelAndClose?"close":"cancel")},keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.handleAction(e.distinguishCancelAndClose?"close":"cancel")}}},[n("i",{staticClass:"el-message-box__close el-icon-close"})]):e._e()]):e._e(),n("div",{staticClass:"el-message-box__content"},[e.icon&&!e.center&&""!==e.message?n("div",{class:["el-message-box__status",e.icon]}):e._e(),""!==e.message?n("div",{staticClass:"el-message-box__message"},[e._t("default",[e.dangerouslyUseHTMLString?n("p",{domProps:{innerHTML:e._s(e.message)}}):n("p",[e._v(e._s(e.message))])])],2):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:e.showInput,expression:"showInput"}],staticClass:"el-message-box__input"},[n("el-input",{ref:"input",attrs:{type:e.inputType,placeholder:e.inputPlaceholder},nativeOn:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.handleInputEnter(t)}},model:{value:e.inputValue,callback:function(t){e.inputValue=t},expression:"inputValue"}}),n("div",{staticClass:"el-message-box__errormsg",style:{visibility:e.editorErrorMessage?"visible":"hidden"}},[e._v(e._s(e.editorErrorMessage))])],1)]),n("div",{staticClass:"el-message-box__btns"},[e.showCancelButton?n("el-button",{class:[e.cancelButtonClasses],attrs:{loading:e.cancelButtonLoading,round:e.roundButton,size:"small"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.handleAction("cancel")}},nativeOn:{click:function(t){e.handleAction("cancel")}}},[e._v("\n          "+e._s(e.cancelButtonText||e.t("el.messagebox.cancel"))+"\n        ")]):e._e(),n("el-button",{directives:[{name:"show",rawName:"v-show",value:e.showConfirmButton,expression:"showConfirmButton"}],ref:"confirm",class:[e.confirmButtonClasses],attrs:{loading:e.confirmButtonLoading,round:e.roundButton,size:"small"},on:{keydown:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.handleAction("confirm")}},nativeOn:{click:function(t){e.handleAction("confirm")}}},[e._v("\n          "+e._s(e.confirmButtonText||e.t("el.messagebox.confirm"))+"\n        ")])],1)])])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(218),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(219),r=n.n(i),a=n(220),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElBreadcrumb",props:{separator:{type:String,default:"/"},separatorClass:{type:String,default:""}},provide:function(){return{elBreadcrumb:this}},mounted:function(){var e=this.$el.querySelectorAll(".el-breadcrumb__item");e.length&&e[e.length-1].setAttribute("aria-current","page")}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-breadcrumb",attrs:{"aria-label":"Breadcrumb",role:"navigation"}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(222),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(223),r=n.n(i),a=n(224),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElBreadcrumbItem",props:{to:{},replace:Boolean},data:function(){return{separator:"",separatorClass:""}},inject:["elBreadcrumb"],mounted:function(){var e=this;this.separator=this.elBreadcrumb.separator,this.separatorClass=this.elBreadcrumb.separatorClass;var t=this.$refs.link;t.setAttribute("role","link"),t.addEventListener("click",function(t){var n=e.to,i=e.$router;n&&i&&(e.replace?i.replace(n):i.push(n))})}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"el-breadcrumb__item"},[t("span",{ref:"link",class:["el-breadcrumb__inner",this.to?"is-link":""],attrs:{role:"link"}},[this._t("default")],2),this.separatorClass?t("i",{staticClass:"el-breadcrumb__separator",class:this.separatorClass}):t("span",{staticClass:"el-breadcrumb__separator",attrs:{role:"presentation"}},[this._v(this._s(this.separator))])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(226),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(227),r=n.n(i),a=n(228),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(10),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElForm",componentName:"ElForm",provide:function(){return{elForm:this}},props:{model:Object,rules:Object,labelPosition:String,labelWidth:String,labelSuffix:{type:String,default:""},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},size:String,disabled:Boolean,validateOnRuleChange:{type:Boolean,default:!0}},watch:{rules:function(){this.validateOnRuleChange&&this.validate(function(){})}},data:function(){return{fields:[]}},created:function(){var e=this;this.$on("el.form.addField",function(t){t&&e.fields.push(t)}),this.$on("el.form.removeField",function(t){t.prop&&e.fields.splice(e.fields.indexOf(t),1)})},methods:{resetFields:function(){this.model&&this.fields.forEach(function(e){e.resetField()})},clearValidate:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];(e.length?this.fields.filter(function(t){return e.indexOf(t.prop)>-1}):this.fields).forEach(function(e){e.clearValidate()})},validate:function(e){var t=this;if(this.model){var n=void 0;"function"!=typeof e&&window.Promise&&(n=new window.Promise(function(t,n){e=function(e){e?t(e):n(e)}}));var i=!0,r=0;0===this.fields.length&&e&&e(!0);var o={};return this.fields.forEach(function(n){n.validate("",function(n,s){n&&(i=!1),o=(0,a.default)({},o,s),"function"==typeof e&&++r===t.fields.length&&e(i,o)})}),n||void 0}console.warn("[Element Warn][Form]model is required for validate to work!")},validateField:function(e,t){var n=this.fields.filter(function(t){return t.prop===e})[0];if(!n)throw new Error("must call validateField with valid prop string!");n.validate("",t)}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("form",{staticClass:"el-form",class:[this.labelPosition?"el-form--label-"+this.labelPosition:"",{"el-form--inline":this.inline}]},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(230),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(231),r=n.n(i),a=n(233),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(232)),r=s(n(1)),a=s(n(10)),o=n(4);function s(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElFormItem",componentName:"ElFormItem",mixins:[r.default],provide:function(){return{elFormItem:this}},inject:["elForm"],props:{label:String,labelWidth:String,prop:String,required:{type:Boolean,default:void 0},rules:[Object,Array],error:String,validateStatus:String,for:String,inlineMessage:{type:[String,Boolean],default:""},showMessage:{type:Boolean,default:!0},size:String},watch:{error:{immediate:!0,handler:function(e){this.validateMessage=e,this.validateState=e?"error":""}},validateStatus:function(e){this.validateState=e}},computed:{labelFor:function(){return this.for||this.prop},labelStyle:function(){var e={};if("top"===this.form.labelPosition)return e;var t=this.labelWidth||this.form.labelWidth;return t&&(e.width=t),e},contentStyle:function(){var e={},t=this.label;if("top"===this.form.labelPosition||this.form.inline)return e;if(!t&&!this.labelWidth&&this.isNested)return e;var n=this.labelWidth||this.form.labelWidth;return n&&(e.marginLeft=n),e},form:function(){for(var e=this.$parent,t=e.$options.componentName;"ElForm"!==t;)"ElFormItem"===t&&(this.isNested=!0),t=(e=e.$parent).$options.componentName;return e},fieldValue:function(){var e=this.form.model;if(e&&this.prop){var t=this.prop;return-1!==t.indexOf(":")&&(t=t.replace(/:/,".")),(0,o.getPropByPath)(e,t,!0).v}},isRequired:function(){var e=this.getRules(),t=!1;return e&&e.length&&e.every(function(e){return!e.required||(t=!0,!1)}),t},_formSize:function(){return this.elForm.size},elFormItemSize:function(){return this.size||this._formSize},sizeClass:function(){return this.elFormItemSize||(this.$ELEMENT||{}).size}},data:function(){return{validateState:"",validateMessage:"",validateDisabled:!1,validator:{},isNested:!1}},methods:{validate:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.noop;this.validateDisabled=!1;var r=this.getFilteredRule(e);if((!r||0===r.length)&&void 0===this.required)return n(),!0;this.validateState="validating";var a={};r&&r.length>0&&r.forEach(function(e){delete e.trigger}),a[this.prop]=r;var s=new i.default(a),l={};l[this.prop]=this.fieldValue,s.validate(l,{firstFields:!0},function(e,i){t.validateState=e?"error":"success",t.validateMessage=e?e[0].message:"",n(t.validateMessage,i),t.elForm&&t.elForm.$emit("validate",t.prop,!e)})},clearValidate:function(){this.validateState="",this.validateMessage="",this.validateDisabled=!1},resetField:function(){this.validateState="",this.validateMessage="";var e=this.form.model,t=this.fieldValue,n=this.prop;-1!==n.indexOf(":")&&(n=n.replace(/:/,"."));var i=(0,o.getPropByPath)(e,n,!0);this.validateDisabled=!0,Array.isArray(t)?i.o[i.k]=[].concat(this.initialValue):i.o[i.k]=this.initialValue,this.broadcast("ElTimeSelect","fieldReset",this.initialValue)},getRules:function(){var e=this.form.rules,t=this.rules,n=void 0!==this.required?{required:!!this.required}:[],i=(0,o.getPropByPath)(e,this.prop||"");return e=e?i.o[this.prop||""]||i.v:[],[].concat(t||e||[]).concat(n)},getFilteredRule:function(e){return this.getRules().filter(function(t){return!t.trigger||""===e||(Array.isArray(t.trigger)?t.trigger.indexOf(e)>-1:t.trigger===e)}).map(function(e){return(0,a.default)({},e)})},onFieldBlur:function(){this.validate("blur")},onFieldChange:function(){this.validateDisabled?this.validateDisabled=!1:this.validate("change")}},mounted:function(){if(this.prop){this.dispatch("ElForm","el.form.addField",[this]);var e=this.fieldValue;Array.isArray(e)&&(e=[].concat(e)),Object.defineProperty(this,"initialValue",{value:e}),(this.getRules().length||void 0!==this.required)&&(this.$on("el.form.blur",this.onFieldBlur),this.$on("el.form.change",this.onFieldChange))}},beforeDestroy:function(){this.dispatch("ElForm","el.form.removeField",[this])}}},function(e,t){e.exports=n("f3Zc")},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-form-item",class:[{"el-form-item--feedback":e.elForm&&e.elForm.statusIcon,"is-error":"error"===e.validateState,"is-validating":"validating"===e.validateState,"is-success":"success"===e.validateState,"is-required":e.isRequired||e.required},e.sizeClass?"el-form-item--"+e.sizeClass:""]},[e.label||e.$slots.label?n("label",{staticClass:"el-form-item__label",style:e.labelStyle,attrs:{for:e.labelFor}},[e._t("label",[e._v(e._s(e.label+e.form.labelSuffix))])],2):e._e(),n("div",{staticClass:"el-form-item__content",style:e.contentStyle},[e._t("default"),n("transition",{attrs:{name:"el-zoom-in-top"}},["error"===e.validateState&&e.showMessage&&e.form.showMessage?n("div",{staticClass:"el-form-item__error",class:{"el-form-item__error--inline":"boolean"==typeof e.inlineMessage?e.inlineMessage:e.elForm&&e.elForm.inlineMessage||!1}},[e._v("\n        "+e._s(e.validateMessage)+"\n      ")]):e._e()])],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(235),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(236),r=n.n(i),a=n(0)(r.a,null,!1,null,null,null);t.default=a.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(237),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElTabs",components:{TabNav:a.default},props:{type:String,activeName:String,closable:Boolean,addable:Boolean,value:{},editable:Boolean,tabPosition:{type:String,default:"top"},beforeLeave:Function,stretch:Boolean},provide:function(){return{rootTabs:this}},data:function(){return{currentName:this.value||this.activeName,panes:[]}},watch:{activeName:function(e){this.setCurrentName(e)},value:function(e){this.setCurrentName(e)},currentName:function(e){var t=this;this.$refs.nav&&this.$nextTick(function(e){t.$refs.nav.scrollToActiveTab()})}},methods:{handleTabClick:function(e,t,n){e.disabled||(this.setCurrentName(t),this.$emit("tab-click",e,n))},handleTabRemove:function(e,t){e.disabled||(t.stopPropagation(),this.$emit("edit",e.name,"remove"),this.$emit("tab-remove",e.name))},handleTabAdd:function(){this.$emit("edit",null,"add"),this.$emit("tab-add")},setCurrentName:function(e){var t=this,n=function(){t.currentName=e,t.$emit("input",e)};if(this.currentName!==e&&this.beforeLeave){var i=this.beforeLeave(e,this.currentName);i&&i.then?i.then(function(){n(),t.$refs.nav&&t.$refs.nav.removeFocus()}):!1!==i&&n()}else n()},addPanes:function(e){var t=this.$slots.default.indexOf(e.$vnode);this.panes.splice(t,0,e)},removePanes:function(e){var t=this.panes,n=t.indexOf(e);n>-1&&t.splice(n,1)}},render:function(e){var t,n=this.type,i=this.handleTabClick,r=this.handleTabRemove,a=this.handleTabAdd,o=this.currentName,s=this.panes,l=this.editable,u=this.addable,c=this.tabPosition,d=this.stretch,h=e("div",{class:["el-tabs__header","is-"+c]},[l||u?e("span",{class:"el-tabs__new-tab",on:{click:a,keydown:function(e){13===e.keyCode&&a()}},attrs:{tabindex:"0"}},[e("i",{class:"el-icon-plus"},[])]):null,e("tab-nav",{props:{currentName:o,onTabClick:i,onTabRemove:r,editable:l,type:n,panes:s,stretch:d},ref:"nav"},[])]),f=e("div",{class:"el-tabs__content"},[this.$slots.default]);return e("div",{class:(t={"el-tabs":!0,"el-tabs--card":"card"===n},t["el-tabs--"+c]=!0,t["el-tabs--border-card"]="border-card"===n,t)},["bottom"!==c?[h,f]:[f,h]])},created:function(){this.currentName||this.setCurrentName("0")}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(238),r=n.n(i),a=n(0)(r.a,null,!1,null,null,null);t.default=a.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(239),a=(i=r)&&i.__esModule?i:{default:i},o=n(17);function s(){}var l=function(e){return e.toLowerCase().replace(/( |^)[a-z]/g,function(e){return e.toUpperCase()})};t.default={name:"TabNav",components:{TabBar:a.default},inject:["rootTabs"],props:{panes:Array,currentName:String,editable:Boolean,onTabClick:{type:Function,default:s},onTabRemove:{type:Function,default:s},type:String,stretch:Boolean},data:function(){return{scrollable:!1,navOffset:0,isFocus:!1,focusable:!0}},computed:{navStyle:function(){return{transform:"translate"+(-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"X":"Y")+"(-"+this.navOffset+"px)"}},sizeName:function(){return-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"width":"height"}},methods:{scrollPrev:function(){var e=this.$refs.navScroll["offset"+l(this.sizeName)],t=this.navOffset;if(t){var n=t>e?t-e:0;this.navOffset=n}},scrollNext:function(){var e=this.$refs.nav["offset"+l(this.sizeName)],t=this.$refs.navScroll["offset"+l(this.sizeName)],n=this.navOffset;if(!(e-n<=t)){var i=e-n>2*t?n+t:e-t;this.navOffset=i}},scrollToActiveTab:function(){if(this.scrollable){var e=this.$refs.nav,t=this.$el.querySelector(".is-active");if(t){var n=this.$refs.navScroll,i=t.getBoundingClientRect(),r=n.getBoundingClientRect(),a=e.getBoundingClientRect(),o=this.navOffset,s=o;i.left<r.left&&(s=o-(r.left-i.left)),i.right>r.right&&(s=o+i.right-r.right),a.right<r.right&&(s=e.offsetWidth-r.width),this.navOffset=Math.max(s,0)}}},update:function(){if(this.$refs.nav){var e=this.sizeName,t=this.$refs.nav["offset"+l(e)],n=this.$refs.navScroll["offset"+l(e)],i=this.navOffset;if(n<t){var r=this.navOffset;this.scrollable=this.scrollable||{},this.scrollable.prev=r,this.scrollable.next=r+n<t,t-r<n&&(this.navOffset=t-n)}else this.scrollable=!1,i>0&&(this.navOffset=0)}},changeTab:function(e){var t=e.keyCode,n=void 0,i=void 0,r=void 0;-1!==[37,38,39,40].indexOf(t)&&(r=e.currentTarget.querySelectorAll("[role=tab]"),i=Array.prototype.indexOf.call(r,e.target),r[n=37===t||38===t?0===i?r.length-1:i-1:i<r.length-1?i+1:0].focus(),r[n].click(),this.setFocus())},setFocus:function(){this.focusable&&(this.isFocus=!0)},removeFocus:function(){this.isFocus=!1},visibilityChangeHandler:function(){var e=this,t=document.visibilityState;"hidden"===t?this.focusable=!1:"visible"===t&&setTimeout(function(){e.focusable=!0},50)},windowBlurHandler:function(){this.focusable=!1},windowFocusHandler:function(){var e=this;setTimeout(function(){e.focusable=!0},50)}},updated:function(){this.update()},render:function(e){var t=this,n=this.type,i=this.panes,r=this.editable,a=this.stretch,o=this.onTabClick,s=this.onTabRemove,l=this.navStyle,u=this.scrollable,c=this.scrollNext,d=this.scrollPrev,h=this.changeTab,f=this.setFocus,p=this.removeFocus,m=u?[e("span",{class:["el-tabs__nav-prev",u.prev?"":"is-disabled"],on:{click:d}},[e("i",{class:"el-icon-arrow-left"},[])]),e("span",{class:["el-tabs__nav-next",u.next?"":"is-disabled"],on:{click:c}},[e("i",{class:"el-icon-arrow-right"},[])])]:null,g=this._l(i,function(n,i){var a,l=n.name||n.index||i,u=n.isClosable||r;n.index=""+i;var c=u?e("span",{class:"el-icon-close",on:{click:function(e){s(n,e)}}},[]):null,d=n.$slots.label||n.label,h=n.active?0:-1;return e("div",{class:(a={"el-tabs__item":!0},a["is-"+t.rootTabs.tabPosition]=!0,a["is-active"]=n.active,a["is-disabled"]=n.disabled,a["is-closable"]=u,a["is-focus"]=t.isFocus,a),attrs:{id:"tab-"+l,"aria-controls":"pane-"+l,role:"tab","aria-selected":n.active,tabindex:h},ref:"tabs",refInFor:!0,on:{focus:function(){f()},blur:function(){p()},click:function(e){p(),o(n,l,e)},keydown:function(e){!u||46!==e.keyCode&&8!==e.keyCode||s(n,e)}}},[d,c])});return e("div",{class:["el-tabs__nav-wrap",u?"is-scrollable":"","is-"+this.rootTabs.tabPosition]},[m,e("div",{class:["el-tabs__nav-scroll"],ref:"navScroll"},[e("div",{class:["el-tabs__nav","is-"+this.rootTabs.tabPosition,a&&-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"is-stretch":""],ref:"nav",style:l,attrs:{role:"tablist"},on:{keydown:h}},[n?null:e("tab-bar",{attrs:{tabs:i}},[]),g])])])},mounted:function(){(0,o.addResizeListener)(this.$el,this.update),document.addEventListener("visibilitychange",this.visibilityChangeHandler),window.addEventListener("blur",this.windowBlurHandler),window.addEventListener("focus",this.windowFocusHandler)},beforeDestroy:function(){this.$el&&this.update&&(0,o.removeResizeListener)(this.$el,this.update),document.removeEventListener("visibilitychange",this.visibilityChangeHandler),window.removeEventListener("blur",this.windowBlurHandler),window.removeEventListener("focus",this.windowFocusHandler)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(240),r=n.n(i),a=n(241),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"TabBar",props:{tabs:Array},inject:["rootTabs"],computed:{barStyle:{cache:!1,get:function(){var e=this;if(!this.$parent.$refs.tabs)return{};var t={},n=0,i=0,r=-1!==["top","bottom"].indexOf(this.rootTabs.tabPosition)?"width":"height",a="width"===r?"x":"y",o=function(e){return e.toLowerCase().replace(/( |^)[a-z]/g,function(e){return e.toUpperCase()})};this.tabs.every(function(t,a){var s=e.$parent.$refs.tabs[a];return!!s&&(t.active?(i=s["client"+o(r)],"width"===r&&e.tabs.length>1&&(i-=0===a||a===e.tabs.length-1?20:40),!1):(n+=s["client"+o(r)],!0))}),"width"===r&&0!==n&&(n+=20);var s="translate"+o(a)+"("+n+"px)";return t[r]=i+"px",t.transform=s,t.msTransform=s,t.webkitTransform=s,t}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-tabs__active-bar",class:"is-"+this.rootTabs.tabPosition,style:this.barStyle})},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(243),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(244),r=n.n(i),a=n(245),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElTabPane",componentName:"ElTabPane",props:{label:String,labelContent:Function,name:String,closable:Boolean,disabled:Boolean,lazy:Boolean},data:function(){return{index:null,loaded:!1}},computed:{isClosable:function(){return this.closable||this.$parent.closable},active:function(){var e=this.$parent.currentName===(this.name||this.index);return e&&(this.loaded=!0),e},paneName:function(){return this.name||this.index}},mounted:function(){this.$parent.addPanes(this)},destroyed:function(){this.$el&&this.$el.parentNode&&this.$el.parentNode.removeChild(this.$el),this.$parent.removePanes(this)},watch:{label:function(){this.$parent.$forceUpdate()}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return!e.lazy||e.loaded||e.active?n("div",{directives:[{name:"show",rawName:"v-show",value:e.active,expression:"active"}],staticClass:"el-tab-pane",attrs:{role:"tabpanel","aria-hidden":!e.active,id:"pane-"+e.paneName,"aria-labelledby":"tab-"+e.paneName}},[e._t("default")],2):e._e()},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(247),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(248),r=n.n(i),a=n(249),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElTag",props:{text:String,closable:Boolean,type:String,hit:Boolean,disableTransitions:Boolean,color:String,size:String},methods:{handleClose:function(e){this.$emit("close",e)}},computed:{tagSize:function(){return this.size||(this.$ELEMENT||{}).size}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:e.disableTransitions?"":"el-zoom-in-center"}},[n("span",{staticClass:"el-tag",class:[e.type?"el-tag--"+e.type:"",e.tagSize&&"el-tag--"+e.tagSize,{"is-hit":e.hit}],style:{backgroundColor:e.color}},[e._t("default"),e.closable?n("i",{staticClass:"el-tag__close el-icon-close",on:{click:function(t){t.stopPropagation(),e.handleClose(t)}}}):e._e()],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(251),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(252),r=n.n(i),a=n(258),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=u(n(253)),r=n(22),a=u(n(255)),o=n(16),s=u(n(1)),l=n(2);function u(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElTree",mixins:[s.default],components:{ElTreeNode:a.default},data:function(){return{store:null,root:null,currentNode:null,treeItems:null,checkboxItems:[],dragState:{showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0}}},props:{data:{type:Array},emptyText:{type:String,default:function(){return(0,o.t)("el.tree.emptyText")}},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{default:function(){return{children:"children",label:"label",icon:"icon",disabled:"disabled"}}},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18}},computed:{children:{set:function(e){this.data=e},get:function(){return this.data}},treeItemArray:function(){return Array.prototype.slice.call(this.treeItems)},isEmpty:function(){var e=this.root.childNodes;return!e||0===e.length||e.every(function(e){return!e.visible})}},watch:{defaultCheckedKeys:function(e){this.store.setDefaultCheckedKey(e)},defaultExpandedKeys:function(e){this.store.defaultExpandedKeys=e,this.store.setDefaultExpandedKeys(e)},data:function(e){this.store.setData(e)},checkboxItems:function(e){Array.prototype.forEach.call(e,function(e){e.setAttribute("tabindex",-1)})},checkStrictly:function(e){this.store.checkStrictly=e}},methods:{filter:function(e){if(!this.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");this.store.filter(e)},getNodeKey:function(e){return(0,r.getNodeKey)(this.nodeKey,e.data)},getNodePath:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");var t=this.store.getNode(e);if(!t)return[];for(var n=[t.data],i=t.parent;i&&i!==this.root;)n.push(i.data),i=i.parent;return n.reverse()},getCheckedNodes:function(e,t){return this.store.getCheckedNodes(e,t)},getCheckedKeys:function(e){return this.store.getCheckedKeys(e)},getCurrentNode:function(){var e=this.store.getCurrentNode();return e?e.data:null},getCurrentKey:function(){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");var e=this.getCurrentNode();return e?e[this.nodeKey]:null},setCheckedNodes:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");this.store.setCheckedNodes(e,t)},setCheckedKeys:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");this.store.setCheckedKeys(e,t)},setChecked:function(e,t,n){this.store.setChecked(e,t,n)},getHalfCheckedNodes:function(){return this.store.getHalfCheckedNodes()},getHalfCheckedKeys:function(){return this.store.getHalfCheckedKeys()},setCurrentNode:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");this.store.setUserCurrentNode(e)},setCurrentKey:function(e){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");this.store.setCurrentNodeKey(e)},getNode:function(e){return this.store.getNode(e)},remove:function(e){this.store.remove(e)},append:function(e,t){this.store.append(e,t)},insertBefore:function(e,t){this.store.insertBefore(e,t)},insertAfter:function(e,t){this.store.insertAfter(e,t)},handleNodeExpand:function(e,t,n){this.broadcast("ElTreeNode","tree-node-expand",t),this.$emit("node-expand",e,t,n)},updateKeyChildren:function(e,t){if(!this.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");this.store.updateChildren(e,t)},initTabIndex:function(){this.treeItems=this.$el.querySelectorAll(".is-focusable[role=treeitem]"),this.checkboxItems=this.$el.querySelectorAll("input[type=checkbox]");var e=this.$el.querySelectorAll(".is-checked[role=treeitem]");e.length?e[0].setAttribute("tabindex",0):this.treeItems[0]&&this.treeItems[0].setAttribute("tabindex",0)},handleKeydown:function(e){var t=e.target;if(-1!==t.className.indexOf("el-tree-node")){var n=e.keyCode;this.treeItems=this.$el.querySelectorAll(".is-focusable[role=treeitem]");var i=this.treeItemArray.indexOf(t),r=void 0;[38,40].indexOf(n)>-1&&(e.preventDefault(),r=38===n?0!==i?i-1:0:i<this.treeItemArray.length-1?i+1:0,this.treeItemArray[r].focus()),[37,39].indexOf(n)>-1&&(e.preventDefault(),t.click());var a=t.querySelector('[type="checkbox"]');[13,32].indexOf(n)>-1&&a&&(e.preventDefault(),a.click())}}},created:function(){var e=this;this.isTree=!0,this.store=new i.default({key:this.nodeKey,data:this.data,lazy:this.lazy,props:this.props,load:this.load,currentNodeKey:this.currentNodeKey,checkStrictly:this.checkStrictly,checkDescendants:this.checkDescendants,defaultCheckedKeys:this.defaultCheckedKeys,defaultExpandedKeys:this.defaultExpandedKeys,autoExpandParent:this.autoExpandParent,defaultExpandAll:this.defaultExpandAll,filterNodeMethod:this.filterNodeMethod}),this.root=this.store.root;var t=this.dragState;this.$on("tree-node-drag-start",function(n,i){if("function"==typeof e.allowDrag&&!e.allowDrag(i.node))return n.preventDefault(),!1;n.dataTransfer.effectAllowed="move";try{n.dataTransfer.setData("text/plain","")}catch(e){}t.draggingNode=i,e.$emit("node-drag-start",i.node,n)}),this.$on("tree-node-drag-over",function(n,i){var a=(0,r.findNearestComponent)(n.target,"ElTreeNode"),o=t.dropNode;o&&o!==a&&(0,l.removeClass)(o.$el,"is-drop-inner");var s=t.draggingNode;if(s&&a){var u=!0,c=!0,d=!0,h=!0;"function"==typeof e.allowDrop&&(u=e.allowDrop(s.node,a.node,"prev"),h=c=e.allowDrop(s.node,a.node,"inner"),d=e.allowDrop(s.node,a.node,"next")),n.dataTransfer.dropEffect=c?"move":"none",(u||c||d)&&o!==a&&(o&&e.$emit("node-drag-leave",s.node,o.node,n),e.$emit("node-drag-enter",s.node,a.node,n)),(u||c||d)&&(t.dropNode=a),a.node.nextSibling===s.node&&(d=!1),a.node.previousSibling===s.node&&(u=!1),a.node.contains(s.node,!1)&&(c=!1),(s.node===a.node||s.node.contains(a.node))&&(u=!1,c=!1,d=!1);var f=a.$el.getBoundingClientRect(),p=e.$el.getBoundingClientRect(),m=void 0,g=u?c?.25:d?.45:1:-1,v=d?c?.75:u?.55:0:1,y=-9999,b=n.clientY-f.top;m=b<f.height*g?"before":b>f.height*v?"after":c?"inner":"none";var _=e.$refs.dropIndicator;"before"===m?y=f.top-p.top:"after"===m&&(y=f.bottom-p.top),_.style.top=y+"px",_.style.left=f.right-p.left+"px","inner"===m?(0,l.addClass)(a.$el,"is-drop-inner"):(0,l.removeClass)(a.$el,"is-drop-inner"),t.showDropIndicator="before"===m||"after"===m,t.allowDrop=t.showDropIndicator||h,t.dropType=m,e.$emit("node-drag-over",s.node,a.node,n)}}),this.$on("tree-node-drag-end",function(n){var i=t.draggingNode,r=t.dropType,a=t.dropNode;if(n.preventDefault(),n.dataTransfer.dropEffect="move",i&&a){var o={data:i.node.data};"none"!==r&&i.node.remove(),"before"===r?a.node.parent.insertBefore(o,a.node):"after"===r?a.node.parent.insertAfter(o,a.node):"inner"===r&&a.node.insertChild(o),"none"!==r&&e.store.registerNode(o),(0,l.removeClass)(a.$el,"is-drop-inner"),e.$emit("node-drag-end",i.node,a.node,r,n),"none"!==r&&e.$emit("node-drop",i.node,a.node,r,n)}i&&!a&&e.$emit("node-drag-end",i.node,null,r,n),t.showDropIndicator=!1,t.draggingNode=null,t.dropNode=null,t.allowDrop=!0})},mounted:function(){this.initTabIndex(),this.$el.addEventListener("keydown",this.handleKeydown)},updated:function(){this.treeItems=this.$el.querySelectorAll("[role=treeitem]"),this.checkboxItems=this.$el.querySelectorAll("input[type=checkbox]")}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=n(254),o=(i=a)&&i.__esModule?i:{default:i},s=n(22);var l=function(){function e(t){var n=this;for(var i in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.currentNode=null,this.currentNodeKey=null,t)t.hasOwnProperty(i)&&(this[i]=t[i]);(this.nodesMap={},this.root=new o.default({data:this.data,store:this}),this.lazy&&this.load)?(0,this.load)(this.root,function(e){n.root.doCreateChildren(e),n._initDefaultCheckedNodes()}):this._initDefaultCheckedNodes()}return e.prototype.filter=function(e){var t=this.filterNodeMethod,n=this.lazy;!function i(r){var a=r.root?r.root.childNodes:r.childNodes;if(a.forEach(function(n){n.visible=t.call(n,e,n.data,n),i(n)}),!r.visible&&a.length){var o=!0;a.forEach(function(e){e.visible&&(o=!1)}),r.root?r.root.visible=!1===o:r.visible=!1===o}e&&(!r.visible||r.isLeaf||n||r.expand())}(this)},e.prototype.setData=function(e){e!==this.root.data?(this.root.setData(e),this._initDefaultCheckedNodes()):this.root.updateChildren()},e.prototype.getNode=function(e){if(e instanceof o.default)return e;var t="object"!==(void 0===e?"undefined":r(e))?e:(0,s.getNodeKey)(this.key,e);return this.nodesMap[t]||null},e.prototype.insertBefore=function(e,t){var n=this.getNode(t);n.parent.insertBefore({data:e},n)},e.prototype.insertAfter=function(e,t){var n=this.getNode(t);n.parent.insertAfter({data:e},n)},e.prototype.remove=function(e){var t=this.getNode(e);t&&t.parent&&t.parent.removeChild(t)},e.prototype.append=function(e,t){var n=t?this.getNode(t):this.root;n&&n.insertChild({data:e})},e.prototype._initDefaultCheckedNodes=function(){var e=this,t=this.defaultCheckedKeys||[],n=this.nodesMap;t.forEach(function(t){var i=n[t];i&&i.setChecked(!0,!e.checkStrictly)})},e.prototype._initDefaultCheckedNode=function(e){-1!==(this.defaultCheckedKeys||[]).indexOf(e.key)&&e.setChecked(!0,!this.checkStrictly)},e.prototype.setDefaultCheckedKey=function(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())},e.prototype.registerNode=function(e){this.key&&e&&e.data&&(void 0!==e.key&&(this.nodesMap[e.key]=e))},e.prototype.deregisterNode=function(e){var t=this;this.key&&e&&e.data&&(e.childNodes.forEach(function(e){t.deregisterNode(e)}),delete this.nodesMap[e.key])},e.prototype.getCheckedNodes=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=[];return function i(r){(r.root?r.root.childNodes:r.childNodes).forEach(function(r){(r.checked||t&&r.indeterminate)&&(!e||e&&r.isLeaf)&&n.push(r.data),i(r)})}(this),n},e.prototype.getCheckedKeys=function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.getCheckedNodes(t).map(function(t){return(t||{})[e.key]})},e.prototype.getHalfCheckedNodes=function(){var e=[];return function t(n){(n.root?n.root.childNodes:n.childNodes).forEach(function(n){n.indeterminate&&e.push(n.data),t(n)})}(this),e},e.prototype.getHalfCheckedKeys=function(){var e=this;return this.getHalfCheckedNodes().map(function(t){return(t||{})[e.key]})},e.prototype._getAllNodes=function(){var e=[],t=this.nodesMap;for(var n in t)t.hasOwnProperty(n)&&e.push(t[n]);return e},e.prototype.updateChildren=function(e,t){var n=this.nodesMap[e];if(n){for(var i=n.childNodes,r=i.length-1;r>=0;r--){var a=i[r];this.remove(a.data)}for(var o=0,s=t.length;o<s;o++){var l=t[o];this.append(l,n.data)}}},e.prototype._setCheckedKeys=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments[2],i=this._getAllNodes().sort(function(e,t){return t.level-e.level}),r=Object.create(null),a=Object.keys(n);i.forEach(function(e){return e.setChecked(!1,!1)});for(var o=0,s=i.length;o<s;o++){var l=i[o],u=l.data[e].toString();if(a.indexOf(u)>-1){for(var c=l.parent;c&&c.level>0;)r[c.data[e]]=!0,c=c.parent;l.isLeaf||this.checkStrictly?l.setChecked(!0,!1):(l.setChecked(!0,!0),t&&function(){l.setChecked(!1,!1);!function e(t){t.childNodes.forEach(function(t){t.isLeaf||t.setChecked(!1,!1),e(t)})}(l)}())}else l.checked&&!r[u]&&l.setChecked(!1,!1)}},e.prototype.setCheckedNodes=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.key,i={};e.forEach(function(e){i[(e||{})[n]]=!0}),this._setCheckedKeys(n,t,i)},e.prototype.setCheckedKeys=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.defaultCheckedKeys=e;var n=this.key,i={};e.forEach(function(e){i[e]=!0}),this._setCheckedKeys(n,t,i)},e.prototype.setDefaultExpandedKeys=function(e){var t=this;e=e||[],this.defaultExpandedKeys=e,e.forEach(function(e){var n=t.getNode(e);n&&n.expand(null,t.autoExpandParent)})},e.prototype.setChecked=function(e,t,n){var i=this.getNode(e);i&&i.setChecked(!!t,n)},e.prototype.getCurrentNode=function(){return this.currentNode},e.prototype.setCurrentNode=function(e){this.currentNode=e},e.prototype.setUserCurrentNode=function(e){var t=e[this.key],n=this.nodesMap[t];this.setCurrentNode(n)},e.prototype.setCurrentNodeKey=function(e){if(null!==e){var t=this.getNode(e);t&&(this.currentNode=t)}else this.currentNode=null},e}();t.default=l},function(e,t,n){"use strict";t.__esModule=!0,t.getChildState=void 0;var i,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),o=n(10),s=(i=o)&&i.__esModule?i:{default:i},l=n(22);var u=t.getChildState=function(e){for(var t=!0,n=!0,i=!0,r=0,a=e.length;r<a;r++){var o=e[r];(!0!==o.checked||o.indeterminate)&&(t=!1,o.disabled||(i=!1)),(!1!==o.checked||o.indeterminate)&&(n=!1)}return{all:t,none:n,allWithoutDisable:i,half:!t&&!n}},c=function e(t){if(0!==t.childNodes.length){var n=u(t.childNodes),i=n.all,r=n.none,a=n.half;i?(t.checked=!0,t.indeterminate=!1):a?(t.checked=!1,t.indeterminate=!0):r&&(t.checked=!1,t.indeterminate=!1);var o=t.parent;o&&0!==o.level&&(t.store.checkStrictly||e(o))}},d=function(e,t){var n=e.store.props,i=e.data||{},r=n[t];if("function"==typeof r)return r(i,e);if("string"==typeof r)return i[r];if(void 0===r){var a=i[t];return void 0===a?"":a}},h=0,f=function(){function e(t){for(var n in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=h++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,t)t.hasOwnProperty(n)&&(this[n]=t[n]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1);var i=this.store;if(!i)throw new Error("[Node]store is required!");i.registerNode(this);var r=i.props;if(r&&void 0!==r.isLeaf){var a=d(this,"isLeaf");"boolean"==typeof a&&(this.isLeafByUser=a)}if(!0!==i.lazy&&this.data?(this.setData(this.data),i.defaultExpandAll&&(this.expanded=!0)):this.level>0&&i.lazy&&i.defaultExpandAll&&this.expand(),Array.isArray(this.data)||(0,l.markNodeData)(this,this.data),this.data){var o=i.defaultExpandedKeys,s=i.key;s&&o&&-1!==o.indexOf(this.key)&&this.expand(null,i.autoExpandParent),s&&void 0!==i.currentNodeKey&&this.key===i.currentNodeKey&&(i.currentNode=this),i.lazy&&i._initDefaultCheckedNode(this),this.updateLeafState()}}return e.prototype.setData=function(e){Array.isArray(e)||(0,l.markNodeData)(this,e),this.data=e,this.childNodes=[];for(var t=void 0,n=0,i=(t=0===this.level&&this.data instanceof Array?this.data:d(this,"children")||[]).length;n<i;n++)this.insertChild({data:t[n]})},e.prototype.contains=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function n(i){for(var r=i.childNodes||[],a=!1,o=0,s=r.length;o<s;o++){var l=r[o];if(l===e||t&&n(l)){a=!0;break}}return a}(this)},e.prototype.remove=function(){var e=this.parent;e&&e.removeChild(this)},e.prototype.insertChild=function(t,n,i){if(!t)throw new Error("insertChild error: child is required.");if(!(t instanceof e)){if(!i){var r=this.getChildren(!0);-1===r.indexOf(t.data)&&(void 0===n||n<0?r.push(t.data):r.splice(n,0,t.data))}(0,s.default)(t,{parent:this,store:this.store}),t=new e(t)}t.level=this.level+1,void 0===n||n<0?this.childNodes.push(t):this.childNodes.splice(n,0,t),this.updateLeafState()},e.prototype.insertBefore=function(e,t){var n=void 0;t&&(n=this.childNodes.indexOf(t)),this.insertChild(e,n)},e.prototype.insertAfter=function(e,t){var n=void 0;t&&-1!==(n=this.childNodes.indexOf(t))&&(n+=1),this.insertChild(e,n)},e.prototype.removeChild=function(e){var t=this.getChildren()||[],n=t.indexOf(e.data);n>-1&&t.splice(n,1);var i=this.childNodes.indexOf(e);i>-1&&(this.store&&this.store.deregisterNode(e),e.parent=null,this.childNodes.splice(i,1)),this.updateLeafState()},e.prototype.removeChildByData=function(e){for(var t=null,n=0;n<this.childNodes.length;n++)if(this.childNodes[n]===e){t=this.childNodes[n];break}t&&this.removeChild(t)},e.prototype.expand=function(e,t){var n=this,i=function(){if(t)for(var i=n.parent;i.level>0;)i.expanded=!0,i=i.parent;n.expanded=!0,e&&e()};this.shouldLoadData()?this.loadData(function(e){e instanceof Array&&(n.checked?n.setChecked(!0,!0):n.store.checkStrictly||c(n),i())}):i()},e.prototype.doCreateChildren=function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.forEach(function(e){t.insertChild((0,s.default)({data:e},n),void 0,!0)})},e.prototype.collapse=function(){this.expanded=!1},e.prototype.shouldLoadData=function(){return!0===this.store.lazy&&this.store.load&&!this.loaded},e.prototype.updateLeafState=function(){if(!0!==this.store.lazy||!0===this.loaded||void 0===this.isLeafByUser){var e=this.childNodes;!this.store.lazy||!0===this.store.lazy&&!0===this.loaded?this.isLeaf=!e||0===e.length:this.isLeaf=!1}else this.isLeaf=this.isLeafByUser},e.prototype.setChecked=function(e,t,n,i){var a=this;if(this.indeterminate="half"===e,this.checked=!0===e,!this.store.checkStrictly){if(!this.shouldLoadData()||this.store.checkDescendants){var o=function(){var n=u(a.childNodes),r=n.all,o=n.allWithoutDisable;a.isLeaf||r||!o||(a.checked=!1,e=!1);var s=function(){if(t){for(var n=a.childNodes,r=0,o=n.length;r<o;r++){var s=n[r];i=i||!1!==e;var l=s.disabled?s.checked:i;s.setChecked(l,t,!0,i)}var c=u(n),d=c.half,h=c.all;h||(a.checked=h,a.indeterminate=d)}};if(a.shouldLoadData())return a.loadData(function(){s(),c(a)},{checked:!1!==e}),{v:void 0};s()}();if("object"===(void 0===o?"undefined":r(o)))return o.v}var s=this.parent;s&&0!==s.level&&(n||c(s))}},e.prototype.getChildren=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(0===this.level)return this.data;var t=this.data;if(!t)return null;var n=this.store.props,i="children";return n&&(i=n.children||"children"),void 0===t[i]&&(t[i]=null),e&&!t[i]&&(t[i]=[]),t[i]},e.prototype.updateChildren=function(){var e=this,t=this.getChildren()||[],n=this.childNodes.map(function(e){return e.data}),i={},r=[];t.forEach(function(e,t){e[l.NODE_KEY]?i[e[l.NODE_KEY]]={index:t,data:e}:r.push({index:t,data:e})}),this.store.lazy||n.forEach(function(t){i[t[l.NODE_KEY]]||e.removeChildByData(t)}),r.forEach(function(t){var n=t.index,i=t.data;e.insertChild({data:i},n)}),this.updateLeafState()},e.prototype.loadData=function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!0!==this.store.lazy||!this.store.load||this.loaded||this.loading&&!Object.keys(n).length)e&&e.call(this);else{this.loading=!0;this.store.load(this,function(i){t.loaded=!0,t.loading=!1,t.childNodes=[],t.doCreateChildren(i,n),t.updateLeafState(),e&&e.call(t,i)})}},a(e,[{key:"label",get:function(){return d(this,"label")}},{key:"icon",get:function(){return d(this,"icon")}},{key:"key",get:function(){var e=this.store.key;return this.data?this.data[e]:null}},{key:"disabled",get:function(){return d(this,"disabled")}},{key:"nextSibling",get:function(){var e=this.parent;if(e){var t=e.childNodes.indexOf(this);if(t>-1)return e.childNodes[t+1]}return null}},{key:"previousSibling",get:function(){var e=this.parent;if(e){var t=e.childNodes.indexOf(this);if(t>-1)return t>0?e.childNodes[t-1]:null}return null}}]),e}();t.default=f},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(256),r=n.n(i),a=n(257),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(20)),r=s(n(14)),a=s(n(1)),o=n(22);function s(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElTreeNode",componentName:"ElTreeNode",mixins:[a.default],props:{node:{default:function(){return{}}},props:{},renderContent:Function,renderAfterExpand:{type:Boolean,default:!0}},components:{ElCollapseTransition:i.default,ElCheckbox:r.default,NodeContent:{props:{node:{required:!0}},render:function(e){var t=this.$parent,n=t.tree,i=this.node,r=i.data,a=i.store;return t.renderContent?t.renderContent.call(t._renderProxy,e,{_self:n.$vnode.context,node:i,data:r,store:a}):n.$scopedSlots.default?n.$scopedSlots.default({node:i,data:r}):e("span",{class:"el-tree-node__label"},[i.label])}}},data:function(){return{tree:null,expanded:!1,childNodeRendered:!1,showCheckbox:!1,oldChecked:null,oldIndeterminate:null}},watch:{"node.indeterminate":function(e){this.handleSelectChange(this.node.checked,e)},"node.checked":function(e){this.handleSelectChange(e,this.node.indeterminate)},"node.expanded":function(e){var t=this;this.$nextTick(function(){return t.expanded=e}),e&&(this.childNodeRendered=!0)}},methods:{getNodeKey:function(e){return(0,o.getNodeKey)(this.tree.nodeKey,e.data)},handleSelectChange:function(e,t){this.oldChecked!==e&&this.oldIndeterminate!==t&&this.tree.$emit("check-change",this.node.data,e,t),this.oldChecked=e,this.indeterminate=t},handleClick:function(){var e=this.tree.store;e.setCurrentNode(this.node),this.tree.$emit("current-change",e.currentNode?e.currentNode.data:null,e.currentNode),this.tree.currentNode=this,this.tree.expandOnClickNode&&this.handleExpandIconClick(),this.tree.checkOnClickNode&&!this.node.disabled&&this.handleCheckChange(null,{target:{checked:!this.node.checked}}),this.tree.$emit("node-click",this.node.data,this.node,this)},handleContextMenu:function(e){this.tree._events["node-contextmenu"]&&this.tree._events["node-contextmenu"].length>0&&(e.stopPropagation(),e.preventDefault()),this.tree.$emit("node-contextmenu",e,this.node.data,this.node,this)},handleExpandIconClick:function(){this.node.isLeaf||(this.expanded?(this.tree.$emit("node-collapse",this.node.data,this.node,this),this.node.collapse()):(this.node.expand(),this.$emit("node-expand",this.node.data,this.node,this)))},handleCheckChange:function(e,t){var n=this;this.node.setChecked(t.target.checked,!this.tree.checkStrictly),this.$nextTick(function(){var e=n.tree.store;n.tree.$emit("check",n.node.data,{checkedNodes:e.getCheckedNodes(),checkedKeys:e.getCheckedKeys(),halfCheckedNodes:e.getHalfCheckedNodes(),halfCheckedKeys:e.getHalfCheckedKeys()})})},handleChildNodeExpand:function(e,t,n){this.broadcast("ElTreeNode","tree-node-expand",t),this.tree.$emit("node-expand",e,t,n)},handleDragStart:function(e){this.tree.draggable&&this.tree.$emit("tree-node-drag-start",e,this)},handleDragOver:function(e){this.tree.draggable&&(this.tree.$emit("tree-node-drag-over",e,this),e.preventDefault())},handleDrop:function(e){e.preventDefault()},handleDragEnd:function(e){this.tree.draggable&&this.tree.$emit("tree-node-drag-end",e,this)}},created:function(){var e=this,t=this.$parent;t.isTree?this.tree=t:this.tree=t.tree;var n=this.tree;n||console.warn("Can not find node's tree.");var i=(n.props||{}).children||"children";this.$watch("node.data."+i,function(){e.node.updateChildren()}),this.showCheckbox=n.showCheckbox,this.node.expanded&&(this.expanded=!0,this.childNodeRendered=!0),this.tree.accordion&&this.$on("tree-node-expand",function(t){e.node!==t&&e.node.collapse()})}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=this,n=t.$createElement,i=t._self._c||n;return i("div",{directives:[{name:"show",rawName:"v-show",value:t.node.visible,expression:"node.visible"}],ref:"node",staticClass:"el-tree-node",class:{"is-expanded":t.expanded,"is-current":t.tree.store.currentNode===t.node,"is-hidden":!t.node.visible,"is-focusable":!t.node.disabled,"is-checked":!t.node.disabled&&t.node.checked},attrs:{role:"treeitem",tabindex:"-1","aria-expanded":t.expanded,"aria-disabled":t.node.disabled,"aria-checked":t.node.checked,draggable:t.tree.draggable},on:{click:function(e){e.stopPropagation(),t.handleClick(e)},contextmenu:function(t){return e.handleContextMenu(t)},dragstart:function(e){e.stopPropagation(),t.handleDragStart(e)},dragover:function(e){e.stopPropagation(),t.handleDragOver(e)},dragend:function(e){e.stopPropagation(),t.handleDragEnd(e)},drop:function(e){e.stopPropagation(),t.handleDrop(e)}}},[i("div",{staticClass:"el-tree-node__content",style:{"padding-left":(t.node.level-1)*t.tree.indent+"px"}},[i("span",{staticClass:"el-tree-node__expand-icon el-icon-caret-right",class:{"is-leaf":t.node.isLeaf,expanded:!t.node.isLeaf&&t.expanded},on:{click:function(e){e.stopPropagation(),t.handleExpandIconClick(e)}}}),t.showCheckbox?i("el-checkbox",{attrs:{indeterminate:t.node.indeterminate,disabled:!!t.node.disabled},on:{change:t.handleCheckChange},nativeOn:{click:function(e){e.stopPropagation()}},model:{value:t.node.checked,callback:function(e){t.$set(t.node,"checked",e)},expression:"node.checked"}}):t._e(),t.node.loading?i("span",{staticClass:"el-tree-node__loading-icon el-icon-loading"}):t._e(),i("node-content",{attrs:{node:t.node}})],1),i("el-collapse-transition",[!t.renderAfterExpand||t.childNodeRendered?i("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"el-tree-node__children",attrs:{role:"group","aria-expanded":t.expanded}},t._l(t.node.childNodes,function(e){return i("el-tree-node",{key:t.getNodeKey(e),attrs:{"render-content":t.renderContent,"render-after-expand":t.renderAfterExpand,node:e},on:{"node-expand":t.handleChildNodeExpand}})})):t._e()])],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-tree",class:{"el-tree--highlight-current":e.highlightCurrent,"is-dragging":!!e.dragState.draggingNode,"is-drop-not-allow":!e.dragState.allowDrop,"is-drop-inner":"inner"===e.dragState.dropType},attrs:{role:"tree"}},[e._l(e.root.childNodes,function(t){return n("el-tree-node",{key:e.getNodeKey(t),attrs:{node:t,props:e.props,"render-after-expand":e.renderAfterExpand,"render-content":e.renderContent},on:{"node-expand":e.handleNodeExpand}})}),e.isEmpty?n("div",{staticClass:"el-tree__empty-block"},[n("span",{staticClass:"el-tree__empty-text"},[e._v(e._s(e.emptyText))])]):e._e(),n("div",{directives:[{name:"show",rawName:"v-show",value:e.dragState.showDropIndicator,expression:"dragState.showDropIndicator"}],ref:"dropIndicator",staticClass:"el-tree__drop-indicator"})],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(260),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(261),r=n.n(i),a=n(262),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i={success:"el-icon-success",warning:"el-icon-warning",error:"el-icon-error"};t.default={name:"ElAlert",props:{title:{type:String,default:"",required:!0},description:{type:String,default:""},type:{type:String,default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean},data:function(){return{visible:!0}},methods:{close:function(){this.visible=!1,this.$emit("close")}},computed:{typeClass:function(){return"el-alert--"+this.type},iconClass:function(){return i[this.type]||"el-icon-info"},isBigIcon:function(){return this.description||this.$slots.default?"is-big":""},isBoldTitle:function(){return this.description||this.$slots.default?"is-bold":""}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-alert-fade"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-alert",class:[e.typeClass,e.center?"is-center":""],attrs:{role:"alert"}},[e.showIcon?n("i",{staticClass:"el-alert__icon",class:[e.iconClass,e.isBigIcon]}):e._e(),n("div",{staticClass:"el-alert__content"},[e.title?n("span",{staticClass:"el-alert__title",class:[e.isBoldTitle]},[e._v(e._s(e.title))]):e._e(),e._t("default",[e.description?n("p",{staticClass:"el-alert__description"},[e._v(e._s(e.description))]):e._e()]),n("i",{directives:[{name:"show",rawName:"v-show",value:e.closable,expression:"closable"}],staticClass:"el-alert__closebtn",class:{"is-customed":""!==e.closeText,"el-icon-close":""===e.closeText},on:{click:function(t){e.close()}}},[e._v(e._s(e.closeText))])],2)])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(264),a=(i=r)&&i.__esModule?i:{default:i};t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(5)),r=s(n(265)),a=n(12),o=n(21);function s(e){return e&&e.__esModule?e:{default:e}}var l=i.default.extend(r.default),u=void 0,c=[],d=1,h=function e(t){if(!i.default.prototype.$isServer){var n=(t=t||{}).onClose,r="notification_"+d++,s=t.position||"top-right";t.onClose=function(){e.close(r,n)},u=new l({data:t}),(0,o.isVNode)(t.message)&&(u.$slots.default=[t.message],t.message="REPLACED_BY_VNODE"),u.id=r,u.$mount(),document.body.appendChild(u.$el),u.visible=!0,u.dom=u.$el,u.dom.style.zIndex=a.PopupManager.nextZIndex();var h=t.offset||0;return c.filter(function(e){return e.position===s}).forEach(function(e){h+=e.$el.offsetHeight+16}),h+=16,u.verticalOffset=h,c.push(u),u}};["success","warning","info","error"].forEach(function(e){h[e]=function(t){return("string"==typeof t||(0,o.isVNode)(t))&&(t={message:t}),t.type=e,h(t)}}),h.close=function(e,t){var n=-1,i=c.length,r=c.filter(function(t,i){return t.id===e&&(n=i,!0)})[0];if(r&&("function"==typeof t&&t(r),c.splice(n,1),!(i<=1)))for(var a=r.position,o=r.dom.offsetHeight,s=n;s<i-1;s++)c[s].position===a&&(c[s].dom.style[r.verticalProperty]=parseInt(c[s].dom.style[r.verticalProperty],10)-o-16+"px")},h.closeAll=function(){for(var e=c.length-1;e>=0;e--)c[e].close()},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(266),r=n.n(i),a=n(267),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i={success:"success",info:"info",warning:"warning",error:"error"};t.default={data:function(){return{visible:!1,title:"",message:"",duration:4500,type:"",showClose:!0,customClass:"",iconClass:"",onClose:null,onClick:null,closed:!1,verticalOffset:0,timer:null,dangerouslyUseHTMLString:!1,position:"top-right"}},computed:{typeClass:function(){return this.type&&i[this.type]?"el-icon-"+i[this.type]:""},horizontalClass:function(){return this.position.indexOf("right")>-1?"right":"left"},verticalProperty:function(){return/^top-/.test(this.position)?"top":"bottom"},positionStyle:function(){var e;return(e={})[this.verticalProperty]=this.verticalOffset+"px",e}},watch:{closed:function(e){e&&(this.visible=!1,this.$el.addEventListener("transitionend",this.destroyElement))}},methods:{destroyElement:function(){this.$el.removeEventListener("transitionend",this.destroyElement),this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},click:function(){"function"==typeof this.onClick&&this.onClick()},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose()},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout(function(){e.closed||e.close()},this.duration))},keydown:function(e){46===e.keyCode||8===e.keyCode?this.clearTimer():27===e.keyCode?this.closed||this.close():this.startTimer()}},mounted:function(){var e=this;this.duration>0&&(this.timer=setTimeout(function(){e.closed||e.close()},this.duration)),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-notification-fade"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-notification",e.customClass,e.horizontalClass],style:e.positionStyle,attrs:{role:"alert"},on:{mouseenter:function(t){e.clearTimer()},mouseleave:function(t){e.startTimer()},click:e.click}},[e.type||e.iconClass?n("i",{staticClass:"el-notification__icon",class:[e.typeClass,e.iconClass]}):e._e(),n("div",{staticClass:"el-notification__group",class:{"is-with-icon":e.typeClass||e.iconClass}},[n("h2",{staticClass:"el-notification__title",domProps:{textContent:e._s(e.title)}}),n("div",{directives:[{name:"show",rawName:"v-show",value:e.message,expression:"message"}],staticClass:"el-notification__content"},[e._t("default",[e.dangerouslyUseHTMLString?n("p",{domProps:{innerHTML:e._s(e.message)}}):n("p",[e._v(e._s(e.message))])])],2),e.showClose?n("div",{staticClass:"el-notification__closeBtn el-icon-close",on:{click:function(t){t.stopPropagation(),e.close(t)}}}):e._e()])])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(269),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(270),r=n.n(i),a=n(275),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(271)),r=o(n(272)),a=o(n(1));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElSlider",mixins:[a.default],inject:{elForm:{default:""}},props:{min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},value:{type:[Number,Array],default:0},showInput:{type:Boolean,default:!1},showInputControls:{type:Boolean,default:!0},inputSize:{type:String,default:"small"},showStops:{type:Boolean,default:!1},showTooltip:{type:Boolean,default:!0},formatTooltip:Function,disabled:{type:Boolean,default:!1},range:{type:Boolean,default:!1},vertical:{type:Boolean,default:!1},height:{type:String},debounce:{type:Number,default:300},label:{type:String},tooltipClass:String},components:{ElInputNumber:i.default,SliderButton:r.default},data:function(){return{firstValue:null,secondValue:null,oldValue:null,dragging:!1,sliderSize:1}},watch:{value:function(e,t){this.dragging||Array.isArray(e)&&Array.isArray(t)&&e.every(function(e,n){return e===t[n]})||this.setValues()},dragging:function(e){e||this.setValues()},firstValue:function(e){this.range?this.$emit("input",[this.minValue,this.maxValue]):this.$emit("input",e)},secondValue:function(){this.range&&this.$emit("input",[this.minValue,this.maxValue])},min:function(){this.setValues()},max:function(){this.setValues()}},methods:{valueChanged:function(){var e=this;return this.range?![this.minValue,this.maxValue].every(function(t,n){return t===e.oldValue[n]}):this.value!==this.oldValue},setValues:function(){if(this.min>this.max)console.error("[Element Error][Slider]min should not be greater than max.");else{var e=this.value;this.range&&Array.isArray(e)?e[1]<this.min?this.$emit("input",[this.min,this.min]):e[0]>this.max?this.$emit("input",[this.max,this.max]):e[0]<this.min?this.$emit("input",[this.min,e[1]]):e[1]>this.max?this.$emit("input",[e[0],this.max]):(this.firstValue=e[0],this.secondValue=e[1],this.valueChanged()&&(this.dispatch("ElFormItem","el.form.change",[this.minValue,this.maxValue]),this.oldValue=e.slice())):this.range||"number"!=typeof e||isNaN(e)||(e<this.min?this.$emit("input",this.min):e>this.max?this.$emit("input",this.max):(this.firstValue=e,this.valueChanged()&&(this.dispatch("ElFormItem","el.form.change",e),this.oldValue=e)))}},setPosition:function(e){var t=this.min+e*(this.max-this.min)/100;if(this.range){var n=void 0;n=Math.abs(this.minValue-t)<Math.abs(this.maxValue-t)?this.firstValue<this.secondValue?"button1":"button2":this.firstValue>this.secondValue?"button1":"button2",this.$refs[n].setPosition(e)}else this.$refs.button1.setPosition(e)},onSliderClick:function(e){if(!this.sliderDisabled&&!this.dragging){if(this.resetSize(),this.vertical){var t=this.$refs.slider.getBoundingClientRect().bottom;this.setPosition((t-e.clientY)/this.sliderSize*100)}else{var n=this.$refs.slider.getBoundingClientRect().left;this.setPosition((e.clientX-n)/this.sliderSize*100)}this.emitChange()}},resetSize:function(){this.$refs.slider&&(this.sliderSize=this.$refs.slider["client"+(this.vertical?"Height":"Width")])},emitChange:function(){var e=this;this.$nextTick(function(){e.$emit("change",e.range?[e.minValue,e.maxValue]:e.value)})}},computed:{stops:function(){var e=this;if(!this.showStops||this.min>this.max)return[];if(0===this.step)return[];for(var t=(this.max-this.min)/this.step,n=100*this.step/(this.max-this.min),i=[],r=1;r<t;r++)i.push(r*n);return this.range?i.filter(function(t){return t<100*(e.minValue-e.min)/(e.max-e.min)||t>100*(e.maxValue-e.min)/(e.max-e.min)}):i.filter(function(t){return t>100*(e.firstValue-e.min)/(e.max-e.min)})},minValue:function(){return Math.min(this.firstValue,this.secondValue)},maxValue:function(){return Math.max(this.firstValue,this.secondValue)},barSize:function(){return this.range?100*(this.maxValue-this.minValue)/(this.max-this.min)+"%":100*(this.firstValue-this.min)/(this.max-this.min)+"%"},barStart:function(){return this.range?100*(this.minValue-this.min)/(this.max-this.min)+"%":"0%"},precision:function(){var e=[this.min,this.max,this.step].map(function(e){var t=(""+e).split(".")[1];return t?t.length:0});return Math.max.apply(null,e)},runwayStyle:function(){return this.vertical?{height:this.height}:{}},barStyle:function(){return this.vertical?{height:this.barSize,bottom:this.barStart}:{width:this.barSize,left:this.barStart}},sliderDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},mounted:function(){var e=void 0;this.range?(Array.isArray(this.value)?(this.firstValue=Math.max(this.min,this.value[0]),this.secondValue=Math.min(this.max,this.value[1])):(this.firstValue=this.min,this.secondValue=this.max),this.oldValue=[this.firstValue,this.secondValue],e=this.firstValue+"-"+this.secondValue):("number"!=typeof this.value||isNaN(this.value)?this.firstValue=this.min:this.firstValue=Math.min(this.max,Math.max(this.min,this.value)),this.oldValue=this.firstValue,e=this.firstValue),this.$el.setAttribute("aria-valuetext",e),this.$el.setAttribute("aria-label",this.label?this.label:"slider between "+this.min+" and "+this.max),this.resetSize(),window.addEventListener("resize",this.resetSize)},beforeDestroy:function(){window.removeEventListener("resize",this.resetSize)}}},function(e,t){e.exports=n("NWDs")},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(273),r=n.n(i),a=n(274),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(23),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElSliderButton",components:{ElTooltip:a.default},props:{value:{type:Number,default:0},vertical:{type:Boolean,default:!1},tooltipClass:String},data:function(){return{hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:null,oldValue:this.value}},computed:{disabled:function(){return this.$parent.sliderDisabled},max:function(){return this.$parent.max},min:function(){return this.$parent.min},step:function(){return this.$parent.step},showTooltip:function(){return this.$parent.showTooltip},precision:function(){return this.$parent.precision},currentPosition:function(){return(this.value-this.min)/(this.max-this.min)*100+"%"},enableFormat:function(){return this.$parent.formatTooltip instanceof Function},formatValue:function(){return this.enableFormat&&this.$parent.formatTooltip(this.value)||this.value},wrapperStyle:function(){return this.vertical?{bottom:this.currentPosition}:{left:this.currentPosition}}},watch:{dragging:function(e){this.$parent.dragging=e}},methods:{displayTooltip:function(){this.$refs.tooltip&&(this.$refs.tooltip.showPopper=!0)},hideTooltip:function(){this.$refs.tooltip&&(this.$refs.tooltip.showPopper=!1)},handleMouseEnter:function(){this.hovering=!0,this.displayTooltip()},handleMouseLeave:function(){this.hovering=!1,this.hideTooltip()},onButtonDown:function(e){this.disabled||(e.preventDefault(),this.onDragStart(e),window.addEventListener("mousemove",this.onDragging),window.addEventListener("touchmove",this.onDragging),window.addEventListener("mouseup",this.onDragEnd),window.addEventListener("touchend",this.onDragEnd),window.addEventListener("contextmenu",this.onDragEnd))},onLeftKeyDown:function(){this.disabled||(this.newPosition=parseFloat(this.currentPosition)-this.step/(this.max-this.min)*100,this.setPosition(this.newPosition))},onRightKeyDown:function(){this.disabled||(this.newPosition=parseFloat(this.currentPosition)+this.step/(this.max-this.min)*100,this.setPosition(this.newPosition))},onDragStart:function(e){this.dragging=!0,this.isClick=!0,"touchstart"===e.type&&(e.clientY=e.touches[0].clientY,e.clientX=e.touches[0].clientX),this.vertical?this.startY=e.clientY:this.startX=e.clientX,this.startPosition=parseFloat(this.currentPosition),this.newPosition=this.startPosition},onDragging:function(e){if(this.dragging){this.isClick=!1,this.displayTooltip(),this.$parent.resetSize();var t=0;"touchmove"===e.type&&(e.clientY=e.touches[0].clientY,e.clientX=e.touches[0].clientX),this.vertical?(this.currentY=e.clientY,t=(this.startY-this.currentY)/this.$parent.sliderSize*100):(this.currentX=e.clientX,t=(this.currentX-this.startX)/this.$parent.sliderSize*100),this.newPosition=this.startPosition+t,this.setPosition(this.newPosition)}},onDragEnd:function(){var e=this;this.dragging&&(setTimeout(function(){e.dragging=!1,e.hideTooltip(),e.isClick||(e.setPosition(e.newPosition),e.$parent.emitChange())},0),window.removeEventListener("mousemove",this.onDragging),window.removeEventListener("touchmove",this.onDragging),window.removeEventListener("mouseup",this.onDragEnd),window.removeEventListener("touchend",this.onDragEnd),window.removeEventListener("contextmenu",this.onDragEnd))},setPosition:function(e){var t=this;if(null!==e&&!isNaN(e)){e<0?e=0:e>100&&(e=100);var n=100/((this.max-this.min)/this.step),i=Math.round(e/n)*n*(this.max-this.min)*.01+this.min;i=parseFloat(i.toFixed(this.precision)),this.$emit("input",i),this.$nextTick(function(){t.$refs.tooltip&&t.$refs.tooltip.updatePopper()}),this.dragging||this.value===this.oldValue||(this.oldValue=this.value)}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{ref:"button",staticClass:"el-slider__button-wrapper",class:{hover:e.hovering,dragging:e.dragging},style:e.wrapperStyle,attrs:{tabindex:"0"},on:{mouseenter:e.handleMouseEnter,mouseleave:e.handleMouseLeave,mousedown:e.onButtonDown,touchstart:e.onButtonDown,focus:e.handleMouseEnter,blur:e.handleMouseLeave,keydown:[function(t){return"button"in t||!e._k(t.keyCode,"left",37,t.key)?"button"in t&&0!==t.button?null:void e.onLeftKeyDown(t):null},function(t){return"button"in t||!e._k(t.keyCode,"right",39,t.key)?"button"in t&&2!==t.button?null:void e.onRightKeyDown(t):null},function(t){if(!("button"in t)&&e._k(t.keyCode,"down",40,t.key))return null;t.preventDefault(),e.onLeftKeyDown(t)},function(t){if(!("button"in t)&&e._k(t.keyCode,"up",38,t.key))return null;t.preventDefault(),e.onRightKeyDown(t)}]}},[n("el-tooltip",{ref:"tooltip",attrs:{placement:"top","popper-class":e.tooltipClass,disabled:!e.showTooltip}},[n("span",{attrs:{slot:"content"},slot:"content"},[e._v(e._s(e.formatValue))]),n("div",{staticClass:"el-slider__button",class:{hover:e.hovering,dragging:e.dragging}})])],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-slider",class:{"is-vertical":e.vertical,"el-slider--with-input":e.showInput},attrs:{role:"slider","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-orientation":e.vertical?"vertical":"horizontal","aria-disabled":e.sliderDisabled}},[e.showInput&&!e.range?n("el-input-number",{ref:"input",staticClass:"el-slider__input",attrs:{step:e.step,disabled:e.sliderDisabled,controls:e.showInputControls,min:e.min,max:e.max,debounce:e.debounce,size:e.inputSize},on:{change:function(t){e.$nextTick(e.emitChange)}},model:{value:e.firstValue,callback:function(t){e.firstValue=t},expression:"firstValue"}}):e._e(),n("div",{ref:"slider",staticClass:"el-slider__runway",class:{"show-input":e.showInput,disabled:e.sliderDisabled},style:e.runwayStyle,on:{click:e.onSliderClick}},[n("div",{staticClass:"el-slider__bar",style:e.barStyle}),n("slider-button",{ref:"button1",attrs:{vertical:e.vertical,"tooltip-class":e.tooltipClass},model:{value:e.firstValue,callback:function(t){e.firstValue=t},expression:"firstValue"}}),e.range?n("slider-button",{ref:"button2",attrs:{vertical:e.vertical,"tooltip-class":e.tooltipClass},model:{value:e.secondValue,callback:function(t){e.secondValue=t},expression:"secondValue"}}):e._e(),e._l(e.stops,function(t,i){return e.showStops?n("div",{key:i,staticClass:"el-slider__stop",style:e.vertical?{bottom:t+"%"}:{left:t+"%"}}):e._e()})],2)],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i=a(n(277)),r=a(n(280));function a(e){return e&&e.__esModule?e:{default:e}}t.default={install:function(e){e.use(i.default),e.prototype.$loading=r.default},directive:i.default,service:r.default}},function(e,t,n){"use strict";t.__esModule=!0;var i=l(n(5)),r=l(n(40)),a=n(2),o=n(12),s=l(n(41));function l(e){return e&&e.__esModule?e:{default:e}}var u=i.default.extend(r.default),c={install:function(e){if(!e.prototype.$isServer){var t=function(t,i){i.value?e.nextTick(function(){i.modifiers.fullscreen?(t.originalPosition=(0,a.getStyle)(document.body,"position"),t.originalOverflow=(0,a.getStyle)(document.body,"overflow"),t.maskStyle.zIndex=o.PopupManager.nextZIndex(),(0,a.addClass)(t.mask,"is-fullscreen"),n(document.body,t,i)):((0,a.removeClass)(t.mask,"is-fullscreen"),i.modifiers.body?(t.originalPosition=(0,a.getStyle)(document.body,"position"),["top","left"].forEach(function(e){var n="top"===e?"scrollTop":"scrollLeft";t.maskStyle[e]=t.getBoundingClientRect()[e]+document.body[n]+document.documentElement[n]-parseInt((0,a.getStyle)(document.body,"margin-"+e),10)+"px"}),["height","width"].forEach(function(e){t.maskStyle[e]=t.getBoundingClientRect()[e]+"px"}),n(document.body,t,i)):(t.originalPosition=(0,a.getStyle)(t,"position"),n(t,t,i)))}):((0,s.default)(t.instance,function(e){t.domVisible=!1;var n=i.modifiers.fullscreen||i.modifiers.body?document.body:t;(0,a.removeClass)(n,"el-loading-parent--relative"),(0,a.removeClass)(n,"el-loading-parent--hidden"),t.instance.hiding=!1},300,!0),t.instance.visible=!1,t.instance.hiding=!0)},n=function(t,n,i){n.domVisible||"none"===(0,a.getStyle)(n,"display")||"hidden"===(0,a.getStyle)(n,"visibility")||(Object.keys(n.maskStyle).forEach(function(e){n.mask.style[e]=n.maskStyle[e]}),"absolute"!==n.originalPosition&&"fixed"!==n.originalPosition&&(0,a.addClass)(t,"el-loading-parent--relative"),i.modifiers.fullscreen&&i.modifiers.lock&&(0,a.addClass)(t,"el-loading-parent--hidden"),n.domVisible=!0,t.appendChild(n.mask),e.nextTick(function(){n.instance.hiding?n.instance.$emit("after-leave"):n.instance.visible=!0}),n.domInserted=!0)};e.directive("loading",{bind:function(e,n,i){var r=e.getAttribute("element-loading-text"),a=e.getAttribute("element-loading-spinner"),o=e.getAttribute("element-loading-background"),s=e.getAttribute("element-loading-custom-class"),l=i.context,c=new u({el:document.createElement("div"),data:{text:l&&l[r]||r,spinner:l&&l[a]||a,background:l&&l[o]||o,customClass:l&&l[s]||s,fullscreen:!!n.modifiers.fullscreen}});e.instance=c,e.mask=c.$el,e.maskStyle={},n.value&&t(e,n)},update:function(e,n){e.instance.setText(e.getAttribute("element-loading-text")),n.oldValue!==n.value&&t(e,n)},unbind:function(e,n){e.domInserted&&(e.mask&&e.mask.parentNode&&e.mask.parentNode.removeChild(e.mask),t(e,{value:!1,modifiers:n.modifiers}))}})}}};t.default=c},function(e,t,n){"use strict";t.__esModule=!0,t.default={data:function(){return{text:null,spinner:null,background:null,fullscreen:!0,visible:!1,customClass:""}},methods:{handleAfterLeave:function(){this.$emit("after-leave")},setText:function(e){this.text=e}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-loading-fade"},on:{"after-leave":e.handleAfterLeave}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"el-loading-mask",class:[e.customClass,{"is-fullscreen":e.fullscreen}],style:{backgroundColor:e.background||""}},[n("div",{staticClass:"el-loading-spinner"},[e.spinner?n("i",{class:e.spinner}):n("svg",{staticClass:"circular",attrs:{viewBox:"25 25 50 50"}},[n("circle",{staticClass:"path",attrs:{cx:"50",cy:"50",r:"20",fill:"none"}})]),e.text?n("p",{staticClass:"el-loading-text"},[e._v(e._s(e.text))]):e._e()])])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i=u(n(5)),r=u(n(40)),a=n(2),o=n(12),s=u(n(41)),l=u(n(10));function u(e){return e&&e.__esModule?e:{default:e}}var c=i.default.extend(r.default),d={text:null,fullscreen:!0,body:!1,lock:!1,customClass:""},h=void 0;c.prototype.originalPosition="",c.prototype.originalOverflow="",c.prototype.close=function(){var e=this;this.fullscreen&&(h=void 0),(0,s.default)(this,function(t){var n=e.fullscreen||e.body?document.body:e.target;(0,a.removeClass)(n,"el-loading-parent--relative"),(0,a.removeClass)(n,"el-loading-parent--hidden"),e.$el&&e.$el.parentNode&&e.$el.parentNode.removeChild(e.$el),e.$destroy()},300),this.visible=!1};t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!i.default.prototype.$isServer){if("string"==typeof(e=(0,l.default)({},d,e)).target&&(e.target=document.querySelector(e.target)),e.target=e.target||document.body,e.target!==document.body?e.fullscreen=!1:e.body=!0,e.fullscreen&&h)return h;var t=e.body?document.body:e.target,n=new c({el:document.createElement("div"),data:e});return function(e,t,n){var i={};e.fullscreen?(n.originalPosition=(0,a.getStyle)(document.body,"position"),n.originalOverflow=(0,a.getStyle)(document.body,"overflow"),i.zIndex=o.PopupManager.nextZIndex()):e.body?(n.originalPosition=(0,a.getStyle)(document.body,"position"),["top","left"].forEach(function(t){var n="top"===t?"scrollTop":"scrollLeft";i[t]=e.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]+"px"}),["height","width"].forEach(function(t){i[t]=e.target.getBoundingClientRect()[t]+"px"})):n.originalPosition=(0,a.getStyle)(t,"position"),Object.keys(i).forEach(function(e){n.$el.style[e]=i[e]})}(e,t,n),"absolute"!==n.originalPosition&&"fixed"!==n.originalPosition&&(0,a.addClass)(t,"el-loading-parent--relative"),e.fullscreen&&e.lock&&(0,a.addClass)(t,"el-loading-parent--hidden"),t.appendChild(n.$el),i.default.nextTick(function(){n.visible=!0}),e.fullscreen&&(h=n),n}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(282),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(283),r=n.n(i),a=n(284),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElIcon",props:{name:String}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("i",{class:"el-icon-"+this.name})},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(286),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElRow",componentName:"ElRow",props:{tag:{type:String,default:"div"},gutter:Number,type:String,justify:{type:String,default:"start"},align:{type:String,default:"top"}},computed:{style:function(){var e={};return this.gutter&&(e.marginLeft="-"+this.gutter/2+"px",e.marginRight=e.marginLeft),e}},render:function(e){return e(this.tag,{class:["el-row","start"!==this.justify?"is-justify-"+this.justify:"","top"!==this.align?"is-align-"+this.align:"",{"el-row--flex":"flex"===this.type}],style:this.style},this.$slots.default)}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(288),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default={name:"ElCol",props:{span:{type:Number,default:24},tag:{type:String,default:"div"},offset:Number,pull:Number,push:Number,xs:[Number,Object],sm:[Number,Object],md:[Number,Object],lg:[Number,Object],xl:[Number,Object]},computed:{gutter:function(){for(var e=this.$parent;e&&"ElRow"!==e.$options.componentName;)e=e.$parent;return e?e.gutter:0}},render:function(e){var t=this,n=[],r={};return this.gutter&&(r.paddingLeft=this.gutter/2+"px",r.paddingRight=r.paddingLeft),["span","offset","pull","push"].forEach(function(e){(t[e]||0===t[e])&&n.push("span"!==e?"el-col-"+e+"-"+t[e]:"el-col-"+t[e])}),["xs","sm","md","lg","xl"].forEach(function(e){var r;"number"==typeof t[e]?n.push("el-col-"+e+"-"+t[e]):"object"===i(t[e])&&(r=t[e],Object.keys(r).forEach(function(t){n.push("span"!==t?"el-col-"+e+"-"+t+"-"+r[t]:"el-col-"+e+"-"+r[t])}))}),e(this.tag,{class:["el-col",n],style:r},this.$slots.default)}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(290),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(291),r=n.n(i),a=n(0)(r.a,null,!1,null,null,null);t.default=a.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(292)),r=s(n(295)),a=s(n(42)),o=s(n(7));function s(e){return e&&e.__esModule?e:{default:e}}function l(){}t.default={name:"ElUpload",mixins:[o.default],components:{ElProgress:a.default,UploadList:i.default,Upload:r.default},provide:function(){return{uploader:this}},inject:{elForm:{default:""}},props:{action:{type:String,required:!0},headers:{type:Object,default:function(){return{}}},data:Object,multiple:Boolean,name:{type:String,default:"file"},drag:Boolean,dragger:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:String,type:{type:String,default:"select"},beforeUpload:Function,beforeRemove:Function,onRemove:{type:Function,default:l},onChange:{type:Function,default:l},onPreview:{type:Function},onSuccess:{type:Function,default:l},onProgress:{type:Function,default:l},onError:{type:Function,default:l},fileList:{type:Array,default:function(){return[]}},autoUpload:{type:Boolean,default:!0},listType:{type:String,default:"text"},httpRequest:Function,disabled:Boolean,limit:Number,onExceed:{type:Function,default:l}},data:function(){return{uploadFiles:[],dragOver:!1,draging:!1,tempIndex:1}},computed:{uploadDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{fileList:{immediate:!0,handler:function(e){var t=this;this.uploadFiles=e.map(function(e){return e.uid=e.uid||Date.now()+t.tempIndex++,e.status=e.status||"success",e})}}},methods:{handleStart:function(e){e.uid=Date.now()+this.tempIndex++;var t={status:"ready",name:e.name,size:e.size,percentage:0,uid:e.uid,raw:e};try{t.url=URL.createObjectURL(e)}catch(e){return void console.error(e)}this.uploadFiles.push(t),this.onChange(t,this.uploadFiles)},handleProgress:function(e,t){var n=this.getFile(t);this.onProgress(e,n,this.uploadFiles),n.status="uploading",n.percentage=e.percent||0},handleSuccess:function(e,t){var n=this.getFile(t);n&&(n.status="success",n.response=e,this.onSuccess(e,n,this.uploadFiles),this.onChange(n,this.uploadFiles))},handleError:function(e,t){var n=this.getFile(t),i=this.uploadFiles;n.status="fail",i.splice(i.indexOf(n),1),this.onError(e,n,this.uploadFiles),this.onChange(n,this.uploadFiles)},handleRemove:function(e,t){var n=this;t&&(e=this.getFile(t));var i=function(){n.abort(e);var t=n.uploadFiles;t.splice(t.indexOf(e),1),n.onRemove(e,t)};if(this.beforeRemove){if("function"==typeof this.beforeRemove){var r=this.beforeRemove(e,this.uploadFiles);r&&r.then?r.then(function(){i()},l):!1!==r&&i()}}else i()},getFile:function(e){var t=void 0;return this.uploadFiles.every(function(n){return!(t=e.uid===n.uid?n:null)}),t},abort:function(e){this.$refs["upload-inner"].abort(e)},clearFiles:function(){this.uploadFiles=[]},submit:function(){var e=this;this.uploadFiles.filter(function(e){return"ready"===e.status}).forEach(function(t){e.$refs["upload-inner"].upload(t.raw)})},getMigratingConfig:function(){return{props:{"default-file-list":"default-file-list is renamed to file-list.","show-upload-list":"show-upload-list is renamed to show-file-list.","thumbnail-mode":"thumbnail-mode has been deprecated, you can implement the same effect according to this case: http://element.eleme.io/#/zh-CN/component/upload#yong-hu-tou-xiang-shang-chuan"}}}},render:function(e){var t=void 0;this.showFileList&&(t=e(i.default,{attrs:{disabled:this.uploadDisabled,listType:this.listType,files:this.uploadFiles,handlePreview:this.onPreview},on:{remove:this.handleRemove}},[]));var n=e("upload",{props:{type:this.type,drag:this.drag,action:this.action,multiple:this.multiple,"before-upload":this.beforeUpload,"with-credentials":this.withCredentials,headers:this.headers,name:this.name,data:this.data,accept:this.accept,fileList:this.uploadFiles,autoUpload:this.autoUpload,listType:this.listType,disabled:this.uploadDisabled,limit:this.limit,"on-exceed":this.onExceed,"on-start":this.handleStart,"on-progress":this.handleProgress,"on-success":this.handleSuccess,"on-error":this.handleError,"on-preview":this.onPreview,"on-remove":this.handleRemove,"http-request":this.httpRequest},ref:"upload-inner"},[this.$slots.trigger||this.$slots.default]);return e("div",null,["picture-card"===this.listType?t:"",this.$slots.trigger?[n,this.$slots.default]:n,this.$slots.tip,"picture-card"!==this.listType?t:""])}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(293),r=n.n(i),a=n(294),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=a(n(3)),r=a(n(42));function a(e){return e&&e.__esModule?e:{default:e}}t.default={mixins:[i.default],data:function(){return{focusing:!1}},components:{ElProgress:r.default},props:{files:{type:Array,default:function(){return[]}},disabled:{type:Boolean,default:!1},handlePreview:Function,listType:String},methods:{parsePercentage:function(e){return parseInt(e,10)},handleClick:function(e){this.handlePreview&&this.handlePreview(e)}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition-group",{class:["el-upload-list","el-upload-list--"+e.listType,{"is-disabled":e.disabled}],attrs:{tag:"ul",name:"el-list"}},e._l(e.files,function(t,i){return n("li",{key:i,class:["el-upload-list__item","is-"+t.status,e.focusing?"focusing":""],attrs:{tabindex:"0"},on:{keydown:function(n){if(!("button"in n)&&e._k(n.keyCode,"delete",[8,46],n.key))return null;!e.disabled&&e.$emit("remove",t)},focus:function(t){e.focusing=!0},blur:function(t){e.focusing=!1},click:function(t){e.focusing=!1}}},["uploading"!==t.status&&["picture-card","picture"].indexOf(e.listType)>-1?n("img",{staticClass:"el-upload-list__item-thumbnail",attrs:{src:t.url,alt:""}}):e._e(),n("a",{staticClass:"el-upload-list__item-name",on:{click:function(n){e.handleClick(t)}}},[n("i",{staticClass:"el-icon-document"}),e._v(e._s(t.name)+"\n    ")]),n("label",{staticClass:"el-upload-list__item-status-label"},[n("i",{class:{"el-icon-upload-success":!0,"el-icon-circle-check":"text"===e.listType,"el-icon-check":["picture-card","picture"].indexOf(e.listType)>-1}})]),e.disabled?e._e():n("i",{staticClass:"el-icon-close",on:{click:function(n){e.$emit("remove",t)}}}),e.disabled?e._e():n("i",{staticClass:"el-icon-close-tip"},[e._v(e._s(e.t("el.upload.deleteTip")))]),"uploading"===t.status?n("el-progress",{attrs:{type:"picture-card"===e.listType?"circle":"line","stroke-width":"picture-card"===e.listType?6:2,percentage:e.parsePercentage(t.percentage)}}):e._e(),"picture-card"===e.listType?n("span",{staticClass:"el-upload-list__item-actions"},[e.handlePreview&&"picture-card"===e.listType?n("span",{staticClass:"el-upload-list__item-preview",on:{click:function(n){e.handlePreview(t)}}},[n("i",{staticClass:"el-icon-zoom-in"})]):e._e(),e.disabled?e._e():n("span",{staticClass:"el-upload-list__item-delete",on:{click:function(n){e.$emit("remove",t)}}},[n("i",{staticClass:"el-icon-delete"})])]):e._e()],1)}))},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(296),r=n.n(i),a=n(0)(r.a,null,!1,null,null,null);t.default=a.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(43)),r=o(n(297)),a=o(n(298));function o(e){return e&&e.__esModule?e:{default:e}}t.default={inject:["uploader"],components:{UploadDragger:a.default},props:{type:String,action:{type:String,required:!0},name:{type:String,default:"file"},data:Object,headers:Object,withCredentials:Boolean,multiple:Boolean,accept:String,onStart:Function,onProgress:Function,onSuccess:Function,onError:Function,beforeUpload:Function,drag:Boolean,onPreview:{type:Function,default:function(){}},onRemove:{type:Function,default:function(){}},fileList:Array,autoUpload:Boolean,listType:String,httpRequest:{type:Function,default:r.default},disabled:Boolean,limit:Number,onExceed:Function},data:function(){return{mouseover:!1,reqs:{}}},methods:{isImage:function(e){return-1!==e.indexOf("image")},handleChange:function(e){var t=e.target.files;t&&this.uploadFiles(t)},uploadFiles:function(e){var t=this;if(this.limit&&this.fileList.length+e.length>this.limit)this.onExceed&&this.onExceed(e,this.fileList);else{var n=Array.prototype.slice.call(e);this.multiple||(n=n.slice(0,1)),0!==n.length&&n.forEach(function(e){t.onStart(e),t.autoUpload&&t.upload(e)})}},upload:function(e){var t=this;if(this.$refs.input.value=null,!this.beforeUpload)return this.post(e);var n=this.beforeUpload(e);n&&n.then?n.then(function(n){var i=Object.prototype.toString.call(n);if("[object File]"===i||"[object Blob]"===i){for(var r in"[object Blob]"===i&&(n=new File([n],e.name,{type:e.type})),e)e.hasOwnProperty(r)&&(n[r]=e[r]);t.post(n)}else t.post(e)},function(){t.onRemove(null,e)}):!1!==n?this.post(e):this.onRemove(null,e)},abort:function(e){var t=this.reqs;if(e){var n=e;e.uid&&(n=e.uid),t[n]&&t[n].abort()}else Object.keys(t).forEach(function(e){t[e]&&t[e].abort(),delete t[e]})},post:function(e){var t=this,n=e.uid,i={headers:this.headers,withCredentials:this.withCredentials,file:e,data:this.data,filename:this.name,action:this.action,onProgress:function(n){t.onProgress(n,e)},onSuccess:function(i){t.onSuccess(i,e),delete t.reqs[n]},onError:function(i){t.onError(i,e),delete t.reqs[n]}},r=this.httpRequest(i);this.reqs[n]=r,r&&r.then&&r.then(i.onSuccess,i.onError)},handleClick:function(){this.disabled||(this.$refs.input.value=null,this.$refs.input.click())},handleKeydown:function(e){e.target===e.currentTarget&&(13!==e.keyCode&&32!==e.keyCode||this.handleClick())}},render:function(e){var t=this.handleClick,n=this.drag,r=this.name,a=this.handleChange,o=this.multiple,s=this.accept,l=this.listType,u=this.uploadFiles,c=this.disabled,d={class:{"el-upload":!0},on:{click:t,keydown:this.handleKeydown}};return d.class["el-upload--"+l]=!0,e("div",(0,i.default)([d,{attrs:{tabindex:"0"}}]),[n?e("upload-dragger",{attrs:{disabled:c},on:{file:u}},[this.$slots.default]):this.$slots.default,e("input",{class:"el-upload__input",attrs:{type:"file",name:r,multiple:o,accept:s},ref:"input",on:{change:a}},[])])}}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){if("undefined"==typeof XMLHttpRequest)return;var t=new XMLHttpRequest,n=e.action;t.upload&&(t.upload.onprogress=function(t){t.total>0&&(t.percent=t.loaded/t.total*100),e.onProgress(t)});var i=new FormData;e.data&&Object.keys(e.data).forEach(function(t){i.append(t,e.data[t])});i.append(e.filename,e.file,e.file.name),t.onerror=function(t){e.onError(t)},t.onload=function(){if(t.status<200||t.status>=300)return e.onError(function(e,t,n){var i=void 0;i=n.response?""+(n.response.error||n.response):n.responseText?""+n.responseText:"fail to post "+e+" "+n.status;var r=new Error(i);return r.status=n.status,r.method="post",r.url=e,r}(n,0,t));e.onSuccess(function(e){var t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch(e){return t}}(t))},t.open("post",n,!0),e.withCredentials&&"withCredentials"in t&&(t.withCredentials=!0);var r=e.headers||{};for(var a in r)r.hasOwnProperty(a)&&null!==r[a]&&t.setRequestHeader(a,r[a]);return t.send(i),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(299),r=n.n(i),a=n(300),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElUploadDrag",props:{disabled:Boolean},inject:{uploader:{default:""}},data:function(){return{dragover:!1}},methods:{onDragover:function(){this.disabled||(this.dragover=!0)},onDrop:function(e){if(!this.disabled&&this.uploader){var t=this.uploader.accept;this.dragover=!1,t?this.$emit("file",[].slice.call(e.dataTransfer.files).filter(function(e){var n=e.type,i=e.name,r=i.indexOf(".")>-1?"."+i.split(".").pop():"",a=n.replace(/\/.*$/,"");return t.split(",").map(function(e){return e.trim()}).filter(function(e){return e}).some(function(e){return/\..+$/.test(e)?r===e:/\/\*$/.test(e)?a===e.replace(/\/\*$/,""):!!/^[^\/]+\/[^\/]+$/.test(e)&&n===e})})):this.$emit("file",e.dataTransfer.files)}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{staticClass:"el-upload-dragger",class:{"is-dragover":e.dragover},on:{drop:function(t){t.preventDefault(),e.onDrop(t)},dragover:function(t){t.preventDefault(),e.onDragover(t)},dragleave:function(t){t.preventDefault(),e.dragover=!1}}},[e._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(302),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(303),r=n.n(i),a=n(304),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElProgress",props:{type:{type:String,default:"line",validator:function(e){return["line","circle"].indexOf(e)>-1}},percentage:{type:Number,default:0,required:!0,validator:function(e){return e>=0&&e<=100}},status:{type:String},strokeWidth:{type:Number,default:6},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:String,default:""}},computed:{barStyle:function(){var e={};return e.width=this.percentage+"%",e.backgroundColor=this.color,e},relativeStrokeWidth:function(){return(this.strokeWidth/this.width*100).toFixed(1)},trackPath:function(){var e=parseInt(50-parseFloat(this.relativeStrokeWidth)/2,10);return"M 50 50 m 0 -"+e+" a "+e+" "+e+" 0 1 1 0 "+2*e+" a "+e+" "+e+" 0 1 1 0 -"+2*e},perimeter:function(){var e=50-parseFloat(this.relativeStrokeWidth)/2;return 2*Math.PI*e},circlePathStyle:function(){var e=this.perimeter;return{strokeDasharray:e+"px,"+e+"px",strokeDashoffset:(1-this.percentage/100)*e+"px",transition:"stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease"}},stroke:function(){var e=void 0;if(this.color)e=this.color;else switch(this.status){case"success":e="#13ce66";break;case"exception":e="#ff4949";break;default:e="#20a0ff"}return e},iconClass:function(){return"line"===this.type?"success"===this.status?"el-icon-circle-check":"el-icon-circle-close":"success"===this.status?"el-icon-check":"el-icon-close"},progressTextSize:function(){return"line"===this.type?12+.4*this.strokeWidth:.111111*this.width+2}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-progress",class:["el-progress--"+e.type,e.status?"is-"+e.status:"",{"el-progress--without-text":!e.showText,"el-progress--text-inside":e.textInside}],attrs:{role:"progressbar","aria-valuenow":e.percentage,"aria-valuemin":"0","aria-valuemax":"100"}},["line"===e.type?n("div",{staticClass:"el-progress-bar"},[n("div",{staticClass:"el-progress-bar__outer",style:{height:e.strokeWidth+"px"}},[n("div",{staticClass:"el-progress-bar__inner",style:e.barStyle},[e.showText&&e.textInside?n("div",{staticClass:"el-progress-bar__innerText"},[e._v(e._s(e.percentage)+"%")]):e._e()])])]):n("div",{staticClass:"el-progress-circle",style:{height:e.width+"px",width:e.width+"px"}},[n("svg",{attrs:{viewBox:"0 0 100 100"}},[n("path",{staticClass:"el-progress-circle__track",attrs:{d:e.trackPath,stroke:"#e5e9f2","stroke-width":e.relativeStrokeWidth,fill:"none"}}),n("path",{staticClass:"el-progress-circle__path",style:e.circlePathStyle,attrs:{d:e.trackPath,"stroke-linecap":"round",stroke:e.stroke,"stroke-width":e.relativeStrokeWidth,fill:"none"}})])]),e.showText&&!e.textInside?n("div",{staticClass:"el-progress__text",style:{fontSize:e.progressTextSize+"px"}},[e.status?n("i",{class:e.iconClass}):[e._v(e._s(e.percentage)+"%")]],2):e._e()])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(306),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(307),r=n.n(i),a=n(308),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElSpinner",props:{type:String,radius:{type:Number,default:100},strokeWidth:{type:Number,default:5},strokeColor:{type:String,default:"#efefef"}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"el-spinner"},[t("svg",{staticClass:"el-spinner-inner",style:{width:this.radius/2+"px",height:this.radius/2+"px"},attrs:{viewBox:"0 0 50 50"}},[t("circle",{staticClass:"path",attrs:{cx:"25",cy:"25",r:"20",fill:"none",stroke:this.strokeColor,"stroke-width":this.strokeWidth}})])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(310),a=(i=r)&&i.__esModule?i:{default:i};t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(5)),r=s(n(311)),a=n(12),o=n(21);function s(e){return e&&e.__esModule?e:{default:e}}var l=i.default.extend(r.default),u=void 0,c=[],d=1,h=function e(t){if(!i.default.prototype.$isServer){"string"==typeof(t=t||{})&&(t={message:t});var n=t.onClose,r="message_"+d++;return t.onClose=function(){e.close(r,n)},(u=new l({data:t})).id=r,(0,o.isVNode)(u.message)&&(u.$slots.default=[u.message],u.message=null),u.vm=u.$mount(),document.body.appendChild(u.vm.$el),u.vm.visible=!0,u.dom=u.vm.$el,u.dom.style.zIndex=a.PopupManager.nextZIndex(),c.push(u),u.vm}};["success","warning","info","error"].forEach(function(e){h[e]=function(t){return"string"==typeof t&&(t={message:t}),t.type=e,h(t)}}),h.close=function(e,t){for(var n=0,i=c.length;n<i;n++)if(e===c[n].id){"function"==typeof t&&t(c[n]),c.splice(n,1);break}},h.closeAll=function(){for(var e=c.length-1;e>=0;e--)c[e].close()},t.default=h},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(312),r=n.n(i),a=n(313),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i={success:"success",info:"info",warning:"warning",error:"error"};t.default={data:function(){return{visible:!1,message:"",duration:3e3,type:"info",iconClass:"",customClass:"",onClose:null,showClose:!1,closed:!1,timer:null,dangerouslyUseHTMLString:!1,center:!1}},computed:{typeClass:function(){return this.type&&!this.iconClass?"el-message__icon el-icon-"+i[this.type]:""}},watch:{closed:function(e){e&&(this.visible=!1,this.$el.addEventListener("transitionend",this.destroyElement))}},methods:{destroyElement:function(){this.$el.removeEventListener("transitionend",this.destroyElement),this.$destroy(!0),this.$el.parentNode.removeChild(this.$el)},close:function(){this.closed=!0,"function"==typeof this.onClose&&this.onClose(this)},clearTimer:function(){clearTimeout(this.timer)},startTimer:function(){var e=this;this.duration>0&&(this.timer=setTimeout(function(){e.closed||e.close()},this.duration))},keydown:function(e){27===e.keyCode&&(this.closed||this.close())}},mounted:function(){this.startTimer(),document.addEventListener("keydown",this.keydown)},beforeDestroy:function(){document.removeEventListener("keydown",this.keydown)}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-message-fade"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],class:["el-message",e.type&&!e.iconClass?"el-message--"+e.type:"",e.center?"is-center":"",e.showClose?"is-closable":"",e.customClass],attrs:{role:"alert"},on:{mouseenter:e.clearTimer,mouseleave:e.startTimer}},[e.iconClass?n("i",{class:e.iconClass}):n("i",{class:e.typeClass}),e._t("default",[e.dangerouslyUseHTMLString?n("p",{staticClass:"el-message__content",domProps:{innerHTML:e._s(e.message)}}):n("p",{staticClass:"el-message__content"},[e._v(e._s(e.message))])]),e.showClose?n("i",{staticClass:"el-message__closeBtn el-icon-close",on:{click:e.close}}):e._e()],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(315),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(316),r=n.n(i),a=n(317),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElBadge",props:{value:{},max:Number,isDot:Boolean,hidden:Boolean},computed:{content:function(){if(!this.isDot){var e=this.value,t=this.max;return"number"==typeof e&&"number"==typeof t&&t<e?t+"+":e}}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-badge"},[e._t("default"),n("transition",{attrs:{name:"el-zoom-in-center"}},[n("sup",{directives:[{name:"show",rawName:"v-show",value:!e.hidden&&(e.content||0===e.content||e.isDot),expression:"!hidden && (content || content === 0 || isDot)"}],staticClass:"el-badge__content",class:{"is-fixed":e.$slots.default,"is-dot":e.isDot},domProps:{textContent:e._s(e.content)}})])],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(319),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(320),r=n.n(i),a=n(321),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElCard",props:{header:{},bodyStyle:{},shadow:{type:String}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-card",class:e.shadow?"is-"+e.shadow+"-shadow":"is-always-shadow"},[e.$slots.header||e.header?n("div",{staticClass:"el-card__header"},[e._t("header",[e._v(e._s(e.header))])],2):e._e(),n("div",{staticClass:"el-card__body",style:e.bodyStyle},[e._t("default")],2)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(323),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(324),r=n.n(i),a=n(325),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(2),a=n(7),o=(i=a)&&i.__esModule?i:{default:i};t.default={name:"ElRate",mixins:[o.default],inject:{elForm:{default:""}},data:function(){return{pointerAtLeftHalf:!0,currentValue:this.value,hoverIndex:-1}},props:{value:{type:Number,default:0},lowThreshold:{type:Number,default:2},highThreshold:{type:Number,default:4},max:{type:Number,default:5},colors:{type:Array,default:function(){return["#F7BA2A","#F7BA2A","#F7BA2A"]}},voidColor:{type:String,default:"#C6D1DE"},disabledVoidColor:{type:String,default:"#EFF2F7"},iconClasses:{type:Array,default:function(){return["el-icon-star-on","el-icon-star-on","el-icon-star-on"]}},voidIconClass:{type:String,default:"el-icon-star-off"},disabledVoidIconClass:{type:String,default:"el-icon-star-on"},disabled:{type:Boolean,default:!1},allowHalf:{type:Boolean,default:!1},showText:{type:Boolean,default:!1},showScore:{type:Boolean,default:!1},textColor:{type:String,default:"#1f2d3d"},texts:{type:Array,default:function(){return["鏋佸樊","澶辨湜","涓�鑸�","婊℃剰","鎯婂枩"]}},scoreTemplate:{type:String,default:"{value}"}},computed:{text:function(){var e="";return this.showScore?e=this.scoreTemplate.replace(/\{\s*value\s*\}/,this.rateDisabled?this.value:this.currentValue):this.showText&&(e=this.texts[Math.ceil(this.currentValue)-1]),e},decimalStyle:function(){var e="";return this.rateDisabled&&(e=(this.valueDecimal<50?0:50)+"%"),this.allowHalf&&(e="50%"),{color:this.activeColor,width:e}},valueDecimal:function(){return 100*this.value-100*Math.floor(this.value)},decimalIconClass:function(){return this.getValueFromMap(this.value,this.classMap)},voidClass:function(){return this.rateDisabled?this.classMap.disabledVoidClass:this.classMap.voidClass},activeClass:function(){return this.getValueFromMap(this.currentValue,this.classMap)},colorMap:function(){return{lowColor:this.colors[0],mediumColor:this.colors[1],highColor:this.colors[2],voidColor:this.voidColor,disabledVoidColor:this.disabledVoidColor}},activeColor:function(){return this.getValueFromMap(this.currentValue,this.colorMap)},classes:function(){var e=[],t=0,n=this.currentValue;for(this.allowHalf&&this.currentValue!==Math.floor(this.currentValue)&&n--;t<n;t++)e.push(this.activeClass);for(;t<this.max;t++)e.push(this.voidClass);return e},classMap:function(){return{lowClass:this.iconClasses[0],mediumClass:this.iconClasses[1],highClass:this.iconClasses[2],voidClass:this.voidIconClass,disabledVoidClass:this.disabledVoidIconClass}},rateDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{value:function(e){this.currentValue=e,this.pointerAtLeftHalf=this.value!==Math.floor(this.value)}},methods:{getMigratingConfig:function(){return{props:{"text-template":"text-template is renamed to score-template."}}},getValueFromMap:function(e,t){return e<=this.lowThreshold?t.lowColor||t.lowClass:e>=this.highThreshold?t.highColor||t.highClass:t.mediumColor||t.mediumClass},showDecimalIcon:function(e){var t=this.rateDisabled&&this.valueDecimal>0&&e-1<this.value&&e>this.value,n=this.allowHalf&&this.pointerAtLeftHalf&&e-.5<=this.currentValue&&e>this.currentValue;return t||n},getIconStyle:function(e){var t=this.rateDisabled?this.colorMap.disabledVoidColor:this.colorMap.voidColor;return{color:e<=this.currentValue?this.activeColor:t}},selectValue:function(e){this.rateDisabled||(this.allowHalf&&this.pointerAtLeftHalf?(this.$emit("input",this.currentValue),this.$emit("change",this.currentValue)):(this.$emit("input",e),this.$emit("change",e)))},handleKey:function(e){if(!this.rateDisabled){var t=this.currentValue,n=e.keyCode;38===n||39===n?(this.allowHalf?t+=.5:t+=1,e.stopPropagation(),e.preventDefault()):37!==n&&40!==n||(this.allowHalf?t-=.5:t-=1,e.stopPropagation(),e.preventDefault()),t=(t=t<0?0:t)>this.max?this.max:t,this.$emit("input",t),this.$emit("change",t)}},setCurrentValue:function(e,t){if(!this.rateDisabled){if(this.allowHalf){var n=t.target;(0,r.hasClass)(n,"el-rate__item")&&(n=n.querySelector(".el-rate__icon")),(0,r.hasClass)(n,"el-rate__decimal")&&(n=n.parentNode),this.pointerAtLeftHalf=2*t.offsetX<=n.clientWidth,this.currentValue=this.pointerAtLeftHalf?e-.5:e}else this.currentValue=e;this.hoverIndex=e}},resetCurrentValue:function(){this.rateDisabled||(this.allowHalf&&(this.pointerAtLeftHalf=this.value!==Math.floor(this.value)),this.currentValue=this.value,this.hoverIndex=-1)}},created:function(){this.value||this.$emit("input",0)}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-rate",attrs:{role:"slider","aria-valuenow":e.currentValue,"aria-valuetext":e.text,"aria-valuemin":"0","aria-valuemax":e.max,tabindex:"0"},on:{keydown:e.handleKey}},[e._l(e.max,function(t,i){return n("span",{key:i,staticClass:"el-rate__item",style:{cursor:e.rateDisabled?"auto":"pointer"},on:{mousemove:function(n){e.setCurrentValue(t,n)},mouseleave:e.resetCurrentValue,click:function(n){e.selectValue(t)}}},[n("i",{staticClass:"el-rate__icon",class:[e.classes[t-1],{hover:e.hoverIndex===t}],style:e.getIconStyle(t)},[e.showDecimalIcon(t)?n("i",{staticClass:"el-rate__decimal",class:e.decimalIconClass,style:e.decimalStyle}):e._e()])])}),e.showText||e.showScore?n("span",{staticClass:"el-rate__text",style:{color:e.textColor}},[e._v(e._s(e.text))]):e._e()],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(327),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(328),r=n.n(i),a=n(329),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(7),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElSteps",mixins:[a.default],props:{space:[Number,String],active:Number,direction:{type:String,default:"horizontal"},alignCenter:Boolean,simple:Boolean,finishStatus:{type:String,default:"finish"},processStatus:{type:String,default:"process"}},data:function(){return{steps:[],stepOffset:0}},methods:{getMigratingConfig:function(){return{props:{center:"center is removed."}}}},watch:{active:function(e,t){this.$emit("change",e,t)},steps:function(e){e.forEach(function(e,t){e.index=t})}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-steps",class:[!this.simple&&"el-steps--"+this.direction,this.simple&&"el-steps--simple"]},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(331),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(332),r=n.n(i),a=n(333),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElStep",props:{title:String,icon:String,description:String,status:String},data:function(){return{index:-1,lineStyle:{},internalStatus:""}},beforeCreate:function(){this.$parent.steps.push(this)},beforeDestroy:function(){var e=this.$parent.steps,t=e.indexOf(this);t>=0&&e.splice(t,1)},computed:{currentStatus:function(){return this.status||this.internalStatus},prevStatus:function(){var e=this.$parent.steps[this.index-1];return e?e.currentStatus:"wait"},isCenter:function(){return this.$parent.alignCenter},isVertical:function(){return"vertical"===this.$parent.direction},isSimple:function(){return this.$parent.simple},isLast:function(){var e=this.$parent;return e.steps[e.steps.length-1]===this},stepsCount:function(){return this.$parent.steps.length},space:function(){var e=this.isSimple,t=this.$parent.space;return e?"":t},style:function(){var e={},t=this.$parent.steps.length,n="number"==typeof this.space?this.space+"px":this.space?this.space:100/(t-(this.isCenter?0:1))+"%";return e.flexBasis=n,this.isVertical?e:(this.isLast?e.maxWidth=100/this.stepsCount+"%":e.marginRight=-this.$parent.stepOffset+"px",e)}},methods:{updateStatus:function(e){var t=this.$parent.$children[this.index-1];e>this.index?this.internalStatus=this.$parent.finishStatus:e===this.index&&"error"!==this.prevStatus?this.internalStatus=this.$parent.processStatus:this.internalStatus="wait",t&&t.calcProgress(this.internalStatus)},calcProgress:function(e){var t=100,n={};n.transitionDelay=150*this.index+"ms",e===this.$parent.processStatus?(this.currentStatus,t=0):"wait"===e&&(t=0,n.transitionDelay=-150*this.index+"ms"),n.borderWidth=t?"1px":0,"vertical"===this.$parent.direction?n.height=t+"%":n.width=t+"%",this.lineStyle=n}},mounted:function(){var e=this,t=this.$watch("index",function(n){e.$watch("$parent.active",e.updateStatus,{immediate:!0}),t()})}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-step",class:[!e.isSimple&&"is-"+e.$parent.direction,e.isSimple&&"is-simple",e.isLast&&!e.space&&!e.isCenter&&"is-flex",e.isCenter&&!e.isVertical&&!e.isSimple&&"is-center"],style:e.style},[n("div",{staticClass:"el-step__head",class:"is-"+e.currentStatus},[n("div",{staticClass:"el-step__line",style:e.isLast?"":{marginRight:e.$parent.stepOffset+"px"}},[n("i",{staticClass:"el-step__line-inner",style:e.lineStyle})]),n("div",{staticClass:"el-step__icon",class:"is-"+(e.icon?"icon":"text")},["success"!==e.currentStatus&&"error"!==e.currentStatus?e._t("icon",[e.icon?n("i",{staticClass:"el-step__icon-inner",class:[e.icon]}):e._e(),e.icon||e.isSimple?e._e():n("div",{staticClass:"el-step__icon-inner"},[e._v(e._s(e.index+1))])]):n("i",{staticClass:"el-step__icon-inner is-status",class:["el-icon-"+("success"===e.currentStatus?"check":"close")]})],2)]),n("div",{staticClass:"el-step__main"},[n("div",{ref:"title",staticClass:"el-step__title",class:["is-"+e.currentStatus]},[e._t("title",[e._v(e._s(e.title))])],2),e.isSimple?n("div",{staticClass:"el-step__arrow"}):n("div",{staticClass:"el-step__description",class:["is-"+e.currentStatus]},[e._t("description",[e._v(e._s(e.description))])],2)])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(335),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(336),r=n.n(i),a=n(338),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(337),a=(i=r)&&i.__esModule?i:{default:i},o=n(17);t.default={name:"ElCarousel",props:{initialIndex:{type:Number,default:0},height:String,trigger:{type:String,default:"hover"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:String,indicator:{type:Boolean,default:!0},arrow:{type:String,default:"hover"},type:String},data:function(){return{items:[],activeIndex:-1,containerWidth:0,timer:null,hover:!1}},computed:{hasLabel:function(){return this.items.some(function(e){return e.label.toString().length>0})}},watch:{items:function(e){e.length>0&&this.setActiveItem(this.initialIndex)},activeIndex:function(e,t){this.resetItemPosition(t),this.$emit("change",e,t)},autoplay:function(e){e?this.startTimer():this.pauseTimer()}},methods:{handleMouseEnter:function(){this.hover=!0,this.pauseTimer()},handleMouseLeave:function(){this.hover=!1,this.startTimer()},itemInStage:function(e,t){var n=this.items.length;return t===n-1&&e.inStage&&this.items[0].active||e.inStage&&this.items[t+1]&&this.items[t+1].active?"left":!!(0===t&&e.inStage&&this.items[n-1].active||e.inStage&&this.items[t-1]&&this.items[t-1].active)&&"right"},handleButtonEnter:function(e){var t=this;this.items.forEach(function(n,i){e===t.itemInStage(n,i)&&(n.hover=!0)})},handleButtonLeave:function(){this.items.forEach(function(e){e.hover=!1})},updateItems:function(){this.items=this.$children.filter(function(e){return"ElCarouselItem"===e.$options.name})},resetItemPosition:function(e){var t=this;this.items.forEach(function(n,i){n.translateItem(i,t.activeIndex,e)})},playSlides:function(){this.activeIndex<this.items.length-1?this.activeIndex++:this.activeIndex=0},pauseTimer:function(){clearInterval(this.timer)},startTimer:function(){this.interval<=0||!this.autoplay||(this.timer=setInterval(this.playSlides,this.interval))},setActiveItem:function(e){if("string"==typeof e){var t=this.items.filter(function(t){return t.name===e});t.length>0&&(e=this.items.indexOf(t[0]))}if(e=Number(e),!isNaN(e)&&e===Math.floor(e)){var n=this.items.length,i=this.activeIndex;this.activeIndex=e<0?n-1:e>=n?0:e,i===this.activeIndex&&this.resetItemPosition(i)}},prev:function(){this.setActiveItem(this.activeIndex-1)},next:function(){this.setActiveItem(this.activeIndex+1)},handleIndicatorClick:function(e){this.activeIndex=e},handleIndicatorHover:function(e){"hover"===this.trigger&&e!==this.activeIndex&&(this.activeIndex=e)}},created:function(){var e=this;this.throttledArrowClick=(0,a.default)(300,!0,function(t){e.setActiveItem(t)}),this.throttledIndicatorHover=(0,a.default)(300,function(t){e.handleIndicatorHover(t)})},mounted:function(){var e=this;this.updateItems(),this.$nextTick(function(){(0,o.addResizeListener)(e.$el,e.resetItemPosition),e.initialIndex<e.items.length&&e.initialIndex>=0&&(e.activeIndex=e.initialIndex),e.startTimer()})},beforeDestroy:function(){this.$el&&(0,o.removeResizeListener)(this.$el,this.resetItemPosition)}}},function(e,t){e.exports=n("Scpa")},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-carousel",class:{"el-carousel--card":"card"===e.type},on:{mouseenter:function(t){t.stopPropagation(),e.handleMouseEnter(t)},mouseleave:function(t){t.stopPropagation(),e.handleMouseLeave(t)}}},[n("div",{staticClass:"el-carousel__container",style:{height:e.height}},[n("transition",{attrs:{name:"carousel-arrow-left"}},["never"!==e.arrow?n("button",{directives:[{name:"show",rawName:"v-show",value:"always"===e.arrow||e.hover,expression:"arrow === 'always' || hover"}],staticClass:"el-carousel__arrow el-carousel__arrow--left",attrs:{type:"button"},on:{mouseenter:function(t){e.handleButtonEnter("left")},mouseleave:e.handleButtonLeave,click:function(t){t.stopPropagation(),e.throttledArrowClick(e.activeIndex-1)}}},[n("i",{staticClass:"el-icon-arrow-left"})]):e._e()]),n("transition",{attrs:{name:"carousel-arrow-right"}},["never"!==e.arrow?n("button",{directives:[{name:"show",rawName:"v-show",value:"always"===e.arrow||e.hover,expression:"arrow === 'always' || hover"}],staticClass:"el-carousel__arrow el-carousel__arrow--right",attrs:{type:"button"},on:{mouseenter:function(t){e.handleButtonEnter("right")},mouseleave:e.handleButtonLeave,click:function(t){t.stopPropagation(),e.throttledArrowClick(e.activeIndex+1)}}},[n("i",{staticClass:"el-icon-arrow-right"})]):e._e()]),e._t("default")],2),"none"!==e.indicatorPosition?n("ul",{staticClass:"el-carousel__indicators",class:{"el-carousel__indicators--labels":e.hasLabel,"el-carousel__indicators--outside":"outside"===e.indicatorPosition||"card"===e.type}},e._l(e.items,function(t,i){return n("li",{staticClass:"el-carousel__indicator",class:{"is-active":i===e.activeIndex},on:{mouseenter:function(t){e.throttledIndicatorHover(i)},click:function(t){t.stopPropagation(),e.handleIndicatorClick(i)}}},[n("button",{staticClass:"el-carousel__button"},[e.hasLabel?n("span",[e._v(e._s(t.label))]):e._e()])])})):e._e()])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(340),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";t.__esModule=!0;var i=n(17),r=s(n(36)),a=n(4),o=s(n(341));function s(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElScrollbar",components:{Bar:o.default},props:{native:Boolean,wrapStyle:{},wrapClass:{},viewClass:{},viewStyle:{},noresize:Boolean,tag:{type:String,default:"div"}},data:function(){return{sizeWidth:"0",sizeHeight:"0",moveX:0,moveY:0}},computed:{wrap:function(){return this.$refs.wrap}},render:function(e){var t=(0,r.default)(),n=this.wrapStyle;if(t){var i="-"+t+"px",s="margin-bottom: "+i+"; margin-right: "+i+";";Array.isArray(this.wrapStyle)?(n=(0,a.toObject)(this.wrapStyle)).marginRight=n.marginBottom=i:"string"==typeof this.wrapStyle?n+=s:n=s}var l=e(this.tag,{class:["el-scrollbar__view",this.viewClass],style:this.viewStyle,ref:"resize"},this.$slots.default),u=e("div",{ref:"wrap",style:n,on:{scroll:this.handleScroll},class:[this.wrapClass,"el-scrollbar__wrap",t?"":"el-scrollbar__wrap--hidden-default"]},[[l]]);return e("div",{class:"el-scrollbar"},this.native?[e("div",{ref:"wrap",class:[this.wrapClass,"el-scrollbar__wrap"],style:n},[[l]])]:[u,e(o.default,{attrs:{move:this.moveX,size:this.sizeWidth}},[]),e(o.default,{attrs:{vertical:!0,move:this.moveY,size:this.sizeHeight}},[])])},methods:{handleScroll:function(){var e=this.wrap;this.moveY=100*e.scrollTop/e.clientHeight,this.moveX=100*e.scrollLeft/e.clientWidth},update:function(){var e,t,n=this.wrap;n&&(e=100*n.clientHeight/n.scrollHeight,t=100*n.clientWidth/n.scrollWidth,this.sizeHeight=e<100?e+"%":"",this.sizeWidth=t<100?t+"%":"")}},mounted:function(){this.native||(this.$nextTick(this.update),!this.noresize&&(0,i.addResizeListener)(this.$refs.resize,this.update))},beforeDestroy:function(){this.native||!this.noresize&&(0,i.removeResizeListener)(this.$refs.resize,this.update)}}},function(e,t,n){"use strict";t.__esModule=!0;var i=n(2),r=n(342);t.default={name:"Bar",props:{vertical:Boolean,size:String,move:Number},computed:{bar:function(){return r.BAR_MAP[this.vertical?"vertical":"horizontal"]},wrap:function(){return this.$parent.wrap}},render:function(e){var t=this.size,n=this.move,i=this.bar;return e("div",{class:["el-scrollbar__bar","is-"+i.key],on:{mousedown:this.clickTrackHandler}},[e("div",{ref:"thumb",class:"el-scrollbar__thumb",on:{mousedown:this.clickThumbHandler},style:(0,r.renderThumbStyle)({size:t,move:n,bar:i})},[])])},methods:{clickThumbHandler:function(e){this.startDrag(e),this[this.bar.axis]=e.currentTarget[this.bar.offset]-(e[this.bar.client]-e.currentTarget.getBoundingClientRect()[this.bar.direction])},clickTrackHandler:function(e){var t=100*(Math.abs(e.target.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-this.$refs.thumb[this.bar.offset]/2)/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=t*this.wrap[this.bar.scrollSize]/100},startDrag:function(e){e.stopImmediatePropagation(),this.cursorDown=!0,(0,i.on)(document,"mousemove",this.mouseMoveDocumentHandler),(0,i.on)(document,"mouseup",this.mouseUpDocumentHandler),document.onselectstart=function(){return!1}},mouseMoveDocumentHandler:function(e){if(!1!==this.cursorDown){var t=this[this.bar.axis];if(t){var n=100*(-1*(this.$el.getBoundingClientRect()[this.bar.direction]-e[this.bar.client])-(this.$refs.thumb[this.bar.offset]-t))/this.$el[this.bar.offset];this.wrap[this.bar.scroll]=n*this.wrap[this.bar.scrollSize]/100}}},mouseUpDocumentHandler:function(e){this.cursorDown=!1,this[this.bar.axis]=0,(0,i.off)(document,"mousemove",this.mouseMoveDocumentHandler),document.onselectstart=null}},destroyed:function(){(0,i.off)(document,"mouseup",this.mouseUpDocumentHandler)}}},function(e,t,n){"use strict";t.__esModule=!0,t.renderThumbStyle=function(e){var t=e.move,n=e.size,i=e.bar,r={},a="translate"+i.axis+"("+t+"%)";return r[i.size]=n,r.transform=a,r.msTransform=a,r.webkitTransform=a,r};t.BAR_MAP={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(344),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(345),r=n.n(i),a=n(346),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;t.default={name:"ElCarouselItem",props:{name:String,label:{type:[String,Number],default:""}},data:function(){return{hover:!1,translate:0,scale:1,active:!1,ready:!1,inStage:!1,animating:!1}},methods:{processIndex:function(e,t,n){return 0===t&&e===n-1?-1:t===n-1&&0===e?n:e<t-1&&t-e>=n/2?n+1:e>t+1&&e-t>=n/2?-2:e},calculateTranslate:function(e,t,n){return this.inStage?n*(1.17*(e-t)+1)/4:e<t?-1.83*n/4:3.83*n/4},translateItem:function(e,t,n){var i=this.$parent.$el.offsetWidth,r=this.$parent.items.length;"card"!==this.$parent.type&&void 0!==n&&(this.animating=e===t||e===n),e!==t&&r>2&&(e=this.processIndex(e,t,r)),"card"===this.$parent.type?(this.inStage=Math.round(Math.abs(e-t))<=1,this.active=e===t,this.translate=this.calculateTranslate(e,t,i),this.scale=this.active?1:.83):(this.active=e===t,this.translate=i*(e-t)),this.ready=!0},handleItemClick:function(){var e=this.$parent;if(e&&"card"===e.type){var t=e.items.indexOf(this);e.setActiveItem(t)}}},created:function(){this.$parent&&this.$parent.updateItems()},destroyed:function(){this.$parent&&this.$parent.updateItems()}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"show",rawName:"v-show",value:e.ready,expression:"ready"}],staticClass:"el-carousel__item",class:{"is-active":e.active,"el-carousel__item--card":"card"===e.$parent.type,"is-in-stage":e.inStage,"is-hover":e.hover,"is-animating":e.animating},style:{msTransform:"translateX("+e.translate+"px) scale("+e.scale+")",webkitTransform:"translateX("+e.translate+"px) scale("+e.scale+")",transform:"translateX("+e.translate+"px) scale("+e.scale+")"},on:{click:e.handleItemClick}},["card"===e.$parent.type?n("div",{directives:[{name:"show",rawName:"v-show",value:!e.active,expression:"!active"}],staticClass:"el-carousel__mask"}):e._e(),e._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(348),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(349),r=n.n(i),a=n(350),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElCollapse",componentName:"ElCollapse",props:{accordion:Boolean,value:{type:[Array,String,Number],default:function(){return[]}}},data:function(){return{activeNames:[].concat(this.value)}},provide:function(){return{collapse:this}},watch:{value:function(e){this.activeNames=[].concat(e)}},methods:{setActiveNames:function(e){e=[].concat(e);var t=this.accordion?e[0]:e;this.activeNames=e,this.$emit("input",t),this.$emit("change",t)},handleItemClick:function(e){if(this.accordion)this.setActiveNames(!this.activeNames[0]&&0!==this.activeNames[0]||this.activeNames[0]!==e.name?e.name:"");else{var t=this.activeNames.slice(0),n=t.indexOf(e.name);n>-1?t.splice(n,1):t.push(e.name),this.setActiveNames(t)}}},created:function(){this.$on("item-click",this.handleItemClick)}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"el-collapse",attrs:{role:"tablist","aria-multiselectable":"true"}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(352),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(353),r=n.n(i),a=n(354),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(20)),r=o(n(1)),a=n(4);function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElCollapseItem",componentName:"ElCollapseItem",mixins:[r.default],components:{ElCollapseTransition:i.default},data:function(){return{contentWrapStyle:{height:"auto",display:"block"},contentHeight:0,focusing:!1,isClick:!1}},inject:["collapse"],props:{title:String,name:{type:[String,Number],default:function(){return this._uid}}},computed:{isActive:function(){return this.collapse.activeNames.indexOf(this.name)>-1},id:function(){return(0,a.generateId)()}},methods:{handleFocus:function(){var e=this;setTimeout(function(){e.isClick?e.isClick=!1:e.focusing=!0},50)},handleHeaderClick:function(){this.dispatch("ElCollapse","item-click",this),this.focusing=!1,this.isClick=!0},handleEnterClick:function(){this.dispatch("ElCollapse","item-click",this)}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-collapse-item",class:{"is-active":e.isActive}},[n("div",{attrs:{role:"tab","aria-expanded":e.isActive,"aria-controls":"el-collapse-content-"+e.id,"aria-describedby":"el-collapse-content-"+e.id}},[n("div",{staticClass:"el-collapse-item__header",class:{focusing:e.focusing,"is-active":e.isActive},attrs:{role:"button",id:"el-collapse-head-"+e.id,tabindex:"0"},on:{click:e.handleHeaderClick,keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"space",32,t.key)&&e._k(t.keyCode,"enter",13,t.key))return null;t.stopPropagation(),e.handleEnterClick(t)},focus:e.handleFocus,blur:function(t){e.focusing=!1}}},[n("i",{staticClass:"el-collapse-item__arrow el-icon-arrow-right",class:{"is-active":e.isActive}}),e._t("title",[e._v(e._s(e.title))])],2)]),n("el-collapse-transition",[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isActive,expression:"isActive"}],staticClass:"el-collapse-item__wrap",attrs:{role:"tabpanel","aria-hidden":!e.isActive,"aria-labelledby":"el-collapse-head-"+e.id,id:"el-collapse-content-"+e.id}},[n("div",{staticClass:"el-collapse-item__content"},[e._t("default")],2)])])],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(356),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(357),r=n.n(i),a=n(360),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=f(n(5)),r=f(n(358)),a=f(n(6)),o=f(n(8)),s=f(n(9)),l=f(n(1)),u=f(n(3)),c=n(16),d=f(n(13)),h=n(4);function f(e){return e&&e.__esModule?e:{default:e}}var p={props:{placement:{type:String,default:"bottom-start"},appendToBody:o.default.props.appendToBody,arrowOffset:o.default.props.arrowOffset,offset:o.default.props.offset,boundariesPadding:o.default.props.boundariesPadding,popperOptions:o.default.props.popperOptions},methods:o.default.methods,data:o.default.data,beforeDestroy:o.default.beforeDestroy};t.default={name:"ElCascader",directives:{Clickoutside:s.default},mixins:[p,l.default,u.default],inject:{elForm:{default:""},elFormItem:{default:""}},components:{ElInput:a.default},props:{options:{type:Array,required:!0},props:{type:Object,default:function(){return{children:"children",label:"label",value:"value",disabled:"disabled"}}},value:{type:Array,default:function(){return[]}},separator:{type:String,default:"/"},placeholder:{type:String,default:function(){return(0,c.t)("el.cascader.placeholder")}},disabled:Boolean,clearable:{type:Boolean,default:!1},changeOnSelect:Boolean,popperClass:String,expandTrigger:{type:String,default:"click"},filterable:Boolean,size:String,showAllLevels:{type:Boolean,default:!0},debounce:{type:Number,default:300},beforeFilter:{type:Function,default:function(){return function(){}}},hoverThreshold:{type:Number,default:500}},data:function(){return{currentValue:this.value||[],menu:null,debouncedInputChange:function(){},menuVisible:!1,inputHover:!1,inputValue:"",flatOptions:null,id:(0,h.generateId)(),needFocus:!0,isOnComposition:!1}},computed:{labelKey:function(){return this.props.label||"label"},valueKey:function(){return this.props.value||"value"},childrenKey:function(){return this.props.children||"children"},disabledKey:function(){return this.props.disabled||"disabled"},currentLabels:function(){var e=this,t=this.options,n=[];return this.currentValue.forEach(function(i){var r=t&&t.filter(function(t){return t[e.valueKey]===i})[0];r&&(n.push(r[e.labelKey]),t=r[e.childrenKey])}),n},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},cascaderSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},cascaderDisabled:function(){return this.disabled||(this.elForm||{}).disabled},readonly:function(){var e=!this.$isServer&&!isNaN(Number(document.documentMode));return!this.filterable||!e&&!this.menuVisible}},watch:{menuVisible:function(e){this.$refs.input.$refs.input.setAttribute("aria-expanded",e),e?this.showMenu():this.hideMenu()},value:function(e){this.currentValue=e},currentValue:function(e){this.dispatch("ElFormItem","el.form.change",[e])},currentLabels:function(e){var t=this.showAllLevels?e.join("/"):e[e.length-1];this.$refs.input.$refs.input.setAttribute("value",t)},options:{deep:!0,handler:function(e){this.menu||this.initMenu(),this.flatOptions=this.flattenOptions(this.options),this.menu.options=e}}},methods:{initMenu:function(){this.menu=new i.default(r.default).$mount(),this.menu.options=this.options,this.menu.props=this.props,this.menu.expandTrigger=this.expandTrigger,this.menu.changeOnSelect=this.changeOnSelect,this.menu.popperClass=this.popperClass,this.menu.hoverThreshold=this.hoverThreshold,this.popperElm=this.menu.$el,this.menu.$refs.menus[0].setAttribute("id","cascader-menu-"+this.id),this.menu.$on("pick",this.handlePick),this.menu.$on("activeItemChange",this.handleActiveItemChange),this.menu.$on("menuLeave",this.doDestroy),this.menu.$on("closeInside",this.handleClickoutside)},showMenu:function(){var e=this;this.menu||this.initMenu(),this.menu.value=this.currentValue.slice(0),this.menu.visible=!0,this.menu.options=this.options,this.$nextTick(function(t){e.updatePopper(),e.menu.inputWidth=e.$refs.input.$el.offsetWidth-2})},hideMenu:function(){this.inputValue="",this.menu.visible=!1,this.needFocus?this.$refs.input.focus():this.needFocus=!0},handleActiveItemChange:function(e){var t=this;this.$nextTick(function(e){t.updatePopper()}),this.$emit("active-item-change",e)},handleKeydown:function(e){var t=this,n=e.keyCode;13===n?this.handleClick():40===n?(this.menuVisible=!0,setTimeout(function(){t.popperElm.querySelectorAll(".el-cascader-menu")[0].querySelectorAll("[tabindex='-1']")[0].focus()}),e.stopPropagation(),e.preventDefault()):27!==n&&9!==n||(this.inputValue="",this.menu&&(this.menu.visible=!1))},handlePick:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.currentValue=e,this.$emit("input",e),this.$emit("change",e),t?this.menuVisible=!1:this.$nextTick(this.updatePopper)},handleInputChange:function(e){var t=this;if(this.menuVisible){var n=this.flatOptions;if(!e)return this.menu.options=this.options,void this.$nextTick(this.updatePopper);var i=n.filter(function(n){return n.some(function(n){return new RegExp((0,h.escapeRegexpString)(e),"i").test(n[t.labelKey])})});i=i.length>0?i.map(function(n){return{__IS__FLAT__OPTIONS:!0,value:n.map(function(e){return e[t.valueKey]}),label:t.renderFilteredOptionLabel(e,n),disabled:n.some(function(e){return e[t.disabledKey]})}}):[{__IS__FLAT__OPTIONS:!0,label:this.t("el.cascader.noMatch"),value:"",disabled:!0}],this.menu.options=i,this.$nextTick(this.updatePopper)}},renderFilteredOptionLabel:function(e,t){var n=this;return t.map(function(t,i){var r=t[n.labelKey],a=r.toLowerCase().indexOf(e.toLowerCase()),o=r.slice(a,e.length+a),s=a>-1?n.highlightKeyword(r,o):r;return 0===i?s:[" / ",s]})},highlightKeyword:function(e,t){var n=this,i=this._c;return e.split(t).map(function(e,r){return 0===r?e:[i("span",{class:{"el-cascader-menu__item__keyword":!0}},[n._v(t)]),e]})},flattenOptions:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=[];return e.forEach(function(e){var r=n.concat(e);e[t.childrenKey]?(t.changeOnSelect&&i.push(r),i=i.concat(t.flattenOptions(e[t.childrenKey],r))):i.push(r)}),i},clearValue:function(e){e.stopPropagation(),this.handlePick([],!0)},handleClickoutside:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.menuVisible&&!e&&(this.needFocus=!1),this.menuVisible=!1},handleClick:function(){this.cascaderDisabled||(this.$refs.input.focus(),this.filterable?this.menuVisible=!0:this.menuVisible=!this.menuVisible)},handleFocus:function(e){this.$emit("focus",e)},handleBlur:function(e){this.$emit("blur",e)},handleComposition:function(e){this.isOnComposition="compositionend"!==e.type}},created:function(){var e=this;this.debouncedInputChange=(0,d.default)(this.debounce,function(t){var n=e.beforeFilter(t);n&&n.then?(e.menu.options=[{__IS__FLAT__OPTIONS:!0,label:e.t("el.cascader.loading"),value:"",disabled:!0}],n.then(function(){e.$nextTick(function(){e.handleInputChange(t)})})):!1!==n&&e.$nextTick(function(){e.handleInputChange(t)})})},mounted:function(){this.flatOptions=this.flattenOptions(this.options)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(359),r=n.n(i),a=n(0)(r.a,null,!1,null,null,null);t.default=a.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(43)),r=n(24),a=s(n(26)),o=n(4);function s(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElCascaderMenu",data:function(){return{inputWidth:0,options:[],props:{},visible:!1,activeValue:[],value:[],expandTrigger:"click",changeOnSelect:!1,popperClass:"",hoverTimer:0,clicking:!1,id:(0,o.generateId)()}},watch:{visible:function(e){e&&(this.activeValue=this.value)},value:{immediate:!0,handler:function(e){this.activeValue=e}}},computed:{activeOptions:{cache:!1,get:function(){var e=this,t=this.activeValue,n=["label","value","children","disabled"],i=function e(t,n){if(!t||!Array.isArray(t)||!n)return t;var i=[],r=["__IS__FLAT__OPTIONS","label","value","disabled"],a=n.children||"children";return t.forEach(function(t){var o={};r.forEach(function(e){var i=n[e],r=t[i];void 0===r&&(r=t[i=e]),void 0!==r&&(o[i]=r)}),Array.isArray(t[a])&&(o[a]=e(t[a],n)),i.push(o)}),i}(this.options,this.props);return function t(i){i.forEach(function(i){i.__IS__FLAT__OPTIONS||(n.forEach(function(t){var n=i[e.props[t]||t];void 0!==n&&(i[t]=n)}),Array.isArray(i.children)&&t(i.children))})}(i),function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=i.length;i[a]=n;var o=t[a];return(0,r.isDef)(o)&&(n=n.filter(function(e){return e.value===o})[0])&&n.children&&e(n.children,i),i}(i)}}},methods:{select:function(e,t){e.__IS__FLAT__OPTIONS?this.activeValue=e.value:t?this.activeValue.splice(t,this.activeValue.length-1,e.value):this.activeValue=[e.value],this.$emit("pick",this.activeValue.slice())},handleMenuLeave:function(){this.$emit("menuLeave")},activeItem:function(e,t){var n=this.activeOptions.length;this.activeValue.splice(t,n,e.value),this.activeOptions.splice(t+1,n,e.children),this.changeOnSelect?this.$emit("pick",this.activeValue.slice(),!1):this.$emit("activeItemChange",this.activeValue)},scrollMenu:function(e){(0,a.default)(e,e.getElementsByClassName("is-active")[0])},handleMenuEnter:function(){var e=this;this.$nextTick(function(){return e.$refs.menus.forEach(function(t){return e.scrollMenu(t)})})}},render:function(e){var t=this,n=this.activeValue,r=this.activeOptions,a=this.visible,o=this.expandTrigger,s=this.popperClass,l=this.hoverThreshold,u=null,c=0,d={},h=function(e){var n=d.activeMenu;if(n){var i=e.offsetX,r=n.offsetWidth,a=n.offsetHeight;if(e.target===d.activeItem){clearTimeout(t.hoverTimer);var o=d.activeItem,s=o.offsetTop,u=s+o.offsetHeight;d.hoverZone.innerHTML='\n          <path style="pointer-events: auto;" fill="transparent" d="M'+i+" "+s+" L"+r+" 0 V"+s+' Z" />\n          <path style="pointer-events: auto;" fill="transparent" d="M'+i+" "+u+" L"+r+" "+a+" V"+u+' Z" />\n        '}else t.hoverTimer||(t.hoverTimer=setTimeout(function(){d.hoverZone.innerHTML=""},l))}},f=this._l(r,function(r,a){var s=!1,l="menu-"+t.id+"-"+a,d="menu-"+t.id+"-"+(a+1),f=t._l(r,function(r){var h,f,p={on:{}};return r.__IS__FLAT__OPTIONS&&(s=!0),r.disabled||(p.on.keydown=function(e){var n=e.keyCode;if(!([37,38,39,40,13,9,27].indexOf(n)<0)){var i=e.target,o=t.$refs.menus[a],s=o.querySelectorAll("[tabindex='-1']"),l=Array.prototype.indexOf.call(s,i),u=void 0;if([38,40].indexOf(n)>-1)38===n?u=0!==l?l-1:l:40===n&&(u=l!==s.length-1?l+1:l),s[u].focus();else if(37===n){if(0!==a)t.$refs.menus[a-1].querySelector("[aria-expanded=true]").focus()}else if(39===n)r.children&&t.$refs.menus[a+1].querySelectorAll("[tabindex='-1']")[0].focus();else if(13===n){if(!r.children){var c=i.getAttribute("id");o.setAttribute("aria-activedescendant",c),t.select(r,a),t.$nextTick(function(){return t.scrollMenu(t.$refs.menus[a])})}}else 9!==n&&27!==n||t.$emit("closeInside")}},r.children?(h={click:"click",hover:"mouseenter"}[o],f=function(){t.activeItem(r,a),t.$nextTick(function(){t.scrollMenu(t.$refs.menus[a]),t.scrollMenu(t.$refs.menus[a+1])})},p.on[h]=f,"mouseenter"===h&&t.changeOnSelect&&(p.on.click=function(){-1!==t.activeValue.indexOf(r.value)&&t.$emit("closeInside",!0)}),p.on.mousedown=function(){t.clicking=!0},p.on.focus=function(){t.clicking?t.clicking=!1:f()}):p.on.click=function(){t.select(r,a),t.$nextTick(function(){return t.scrollMenu(t.$refs.menus[a])})}),r.disabled||r.children||(u=l+"-"+c,c++),e("li",(0,i.default)([{class:{"el-cascader-menu__item":!0,"el-cascader-menu__item--extensible":r.children,"is-active":r.value===n[a],"is-disabled":r.disabled},ref:r.value===n[a]?"activeItem":null},p,{attrs:{tabindex:r.disabled?null:-1,role:"menuitem","aria-haspopup":!!r.children,"aria-expanded":r.value===n[a],id:u,"aria-owns":r.children?d:null}}]),[r.label])}),p={};s&&(p.minWidth=t.inputWidth+"px");var m="hover"===o&&n.length-1===a,g={on:{}};return m&&(g.on.mousemove=h,p.position="relative"),e("ul",(0,i.default)([{class:{"el-cascader-menu":!0,"el-cascader-menu--flexible":s}},g,{style:p,refInFor:!0,ref:"menus",attrs:{role:"menu",id:l}}]),[f,m?e("svg",{ref:"hoverZone",style:{position:"absolute",top:0,height:"100%",width:"100%",left:0,pointerEvents:"none"}},[]):null])});return"hover"===o&&this.$nextTick(function(){var e=t.$refs.activeItem;if(e){var n=e.parentElement,i=t.$refs.hoverZone;d={activeMenu:n,activeItem:e,hoverZone:i}}else d={}}),e("transition",{attrs:{name:"el-zoom-in-top"},on:{"before-enter":this.handleMenuEnter,"after-leave":this.handleMenuLeave}},[e("div",{directives:[{name:"show",value:a}],class:["el-cascader-menus el-popper",s],ref:"wrapper"},[e("div",{attrs:{"x-arrow":!0},class:"popper__arrow"},[]),f])])}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.handleClickoutside,expression:"handleClickoutside"}],ref:"reference",staticClass:"el-cascader",class:[{"is-opened":e.menuVisible,"is-disabled":e.cascaderDisabled},e.cascaderSize?"el-cascader--"+e.cascaderSize:""],on:{click:e.handleClick,mouseenter:function(t){e.inputHover=!0},focus:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1},blur:function(t){e.inputHover=!1},keydown:e.handleKeydown}},[n("el-input",{ref:"input",attrs:{readonly:e.readonly,placeholder:e.currentLabels.length?void 0:e.placeholder,"validate-event":!1,size:e.size,disabled:e.cascaderDisabled},on:{input:e.debouncedInputChange,focus:e.handleFocus,blur:e.handleBlur},nativeOn:{compositionstart:function(t){e.handleComposition(t)},compositionend:function(t){e.handleComposition(t)}},model:{value:e.inputValue,callback:function(t){e.inputValue=t},expression:"inputValue"}},[n("template",{attrs:{slot:"suffix"},slot:"suffix"},[e.clearable&&e.inputHover&&e.currentLabels.length?n("i",{key:"1",staticClass:"el-input__icon el-icon-circle-close el-cascader__clearIcon",on:{click:e.clearValue}}):n("i",{key:"2",staticClass:"el-input__icon el-icon-arrow-down",class:{"is-reverse":e.menuVisible}})])],2),n("span",{directives:[{name:"show",rawName:"v-show",value:""===e.inputValue&&!e.isOnComposition,expression:"inputValue === '' && !isOnComposition"}],staticClass:"el-cascader__label"},[e.showAllLevels?[e._l(e.currentLabels,function(t,i){return[e._v("\n        "+e._s(t)+"\n        "),i<e.currentLabels.length-1?n("span",{key:i},[e._v(" "+e._s(e.separator)+" ")]):e._e()]})]:[e._v("\n      "+e._s(e.currentLabels[e.currentLabels.length-1])+"\n    ")]],2)],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(362),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(363),r=n.n(i),a=n(379),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=o(n(44)),r=o(n(364)),a=o(n(9));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElColorPicker",props:{value:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:String,popperClass:String,predefine:Array},inject:{elForm:{default:""},elFormItem:{default:""}},directives:{Clickoutside:a.default},computed:{displayedColor:function(){return this.value||this.showPanelColor?this.displayedRgb(this.color,this.showAlpha):"transparent"},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},colorSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},colorDisabled:function(){return this.disabled||(this.elForm||{}).disabled}},watch:{value:function(e){e?e&&e!==this.color.value&&this.color.fromString(e):this.showPanelColor=!1},color:{deep:!0,handler:function(){this.showPanelColor=!0}},displayedColor:function(e){if(this.showPicker){var t=new i.default({enableAlpha:this.showAlpha,format:this.colorFormat});t.fromString(this.value),e!==this.displayedRgb(t,this.showAlpha)&&this.$emit("active-change",e)}}},methods:{handleTrigger:function(){this.colorDisabled||(this.showPicker=!this.showPicker)},confirmValue:function(e){this.$emit("input",this.color.value),this.$emit("change",this.color.value),this.showPicker=!1},clearValue:function(){this.$emit("input",null),this.$emit("change",null),this.showPanelColor=!1,this.showPicker=!1,this.resetColor()},hide:function(){this.showPicker=!1,this.resetColor()},resetColor:function(){var e=this;this.$nextTick(function(t){e.value?e.color.fromString(e.value):e.showPanelColor=!1})},displayedRgb:function(e,t){if(!(e instanceof i.default))throw Error("color should be instance of Color Class");var n=e.toRgb(),r=n.r,a=n.g,o=n.b;return t?"rgba("+r+", "+a+", "+o+", "+e.get("alpha")/100+")":"rgb("+r+", "+a+", "+o+")"}},mounted:function(){var e=this.value;e&&this.color.fromString(e),this.popperElm=this.$refs.dropdown.$el},data:function(){return{color:new i.default({enableAlpha:this.showAlpha,format:this.colorFormat}),showPicker:!1,showPanelColor:!1}},components:{PickerDropdown:r.default}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(365),r=n.n(i),a=n(378),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=d(n(366)),r=d(n(369)),a=d(n(372)),o=d(n(375)),s=d(n(8)),l=d(n(3)),u=d(n(6)),c=d(n(15));function d(e){return e&&e.__esModule?e:{default:e}}t.default={name:"el-color-picker-dropdown",mixins:[s.default,l.default],components:{SvPanel:i.default,HueSlider:r.default,AlphaSlider:a.default,ElInput:u.default,ElButton:c.default,Predefine:o.default},props:{color:{required:!0},showAlpha:Boolean,predefine:Array},data:function(){return{customInput:""}},computed:{currentColor:function(){var e=this.$parent;return e.value||e.showPanelColor?e.color.value:""}},methods:{confirmValue:function(){this.$emit("pick")},handleConfirm:function(){this.color.fromString(this.customInput)}},mounted:function(){this.$parent.popperElm=this.popperElm=this.$el,this.referenceElm=this.$parent.$el},watch:{showPopper:function(e){var t=this;!0===e&&this.$nextTick(function(){var e=t.$refs,n=e.sl,i=e.hue,r=e.alpha;n&&n.update(),i&&i.update(),r&&r.update()})},currentColor:function(e){this.customInput=e}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(367),r=n.n(i),a=n(368),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(30),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"el-sl-panel",props:{color:{required:!0}},computed:{colorValue:function(){return{hue:this.color.get("hue"),value:this.color.get("value")}}},watch:{colorValue:function(){this.update()}},methods:{update:function(){var e=this.color.get("saturation"),t=this.color.get("value"),n=this.$el.getBoundingClientRect(),i=n.width,r=n.height;r||(r=3*i/4),this.cursorLeft=e*i/100,this.cursorTop=(100-t)*r/100,this.background="hsl("+this.color.get("hue")+", 100%, 50%)"},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top;n=Math.max(0,n),n=Math.min(n,t.width),i=Math.max(0,i),i=Math.min(i,t.height),this.cursorLeft=n,this.cursorTop=i,this.color.set({saturation:n/t.width*100,value:100-i/t.height*100})}},mounted:function(){var e=this;(0,a.default)(this.$el,{drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}}),this.update()},data:function(){return{cursorTop:0,cursorLeft:0,background:"hsl(0, 100%, 50%)"}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-svpanel",style:{backgroundColor:this.background}},[t("div",{staticClass:"el-color-svpanel__white"}),t("div",{staticClass:"el-color-svpanel__black"}),t("div",{staticClass:"el-color-svpanel__cursor",style:{top:this.cursorTop+"px",left:this.cursorLeft+"px"}},[t("div")])])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(370),r=n.n(i),a=n(371),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(30),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"el-color-hue-slider",props:{color:{required:!0},vertical:Boolean},data:function(){return{thumbLeft:0,thumbTop:0}},computed:{hueValue:function(){return this.color.get("hue")}},watch:{hueValue:function(){this.update()}},methods:{handleClick:function(e){var t=this.$refs.thumb;e.target!==t&&this.handleDrag(e)},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),n=this.$refs.thumb,i=void 0;if(this.vertical){var r=e.clientY-t.top;r=Math.min(r,t.height-n.offsetHeight/2),r=Math.max(n.offsetHeight/2,r),i=Math.round((r-n.offsetHeight/2)/(t.height-n.offsetHeight)*360)}else{var a=e.clientX-t.left;a=Math.min(a,t.width-n.offsetWidth/2),a=Math.max(n.offsetWidth/2,a),i=Math.round((a-n.offsetWidth/2)/(t.width-n.offsetWidth)*360)}this.color.set("hue",i)},getThumbLeft:function(){if(this.vertical)return 0;var e=this.$el,t=this.color.get("hue");if(!e)return 0;var n=this.$refs.thumb;return Math.round(t*(e.offsetWidth-n.offsetWidth/2)/360)},getThumbTop:function(){if(!this.vertical)return 0;var e=this.$el,t=this.color.get("hue");if(!e)return 0;var n=this.$refs.thumb;return Math.round(t*(e.offsetHeight-n.offsetHeight/2)/360)},update:function(){this.thumbLeft=this.getThumbLeft(),this.thumbTop=this.getThumbTop()}},mounted:function(){var e=this,t=this.$refs,n=t.bar,i=t.thumb,r={drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}};(0,a.default)(n,r),(0,a.default)(i,r),this.update()}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-hue-slider",class:{"is-vertical":this.vertical}},[t("div",{ref:"bar",staticClass:"el-color-hue-slider__bar",on:{click:this.handleClick}}),t("div",{ref:"thumb",staticClass:"el-color-hue-slider__thumb",style:{left:this.thumbLeft+"px",top:this.thumbTop+"px"}})])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(373),r=n.n(i),a=n(374),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(30),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"el-color-alpha-slider",props:{color:{required:!0},vertical:Boolean},watch:{"color._alpha":function(){this.update()},"color.value":function(){this.update()}},methods:{handleClick:function(e){var t=this.$refs.thumb;e.target!==t&&this.handleDrag(e)},handleDrag:function(e){var t=this.$el.getBoundingClientRect(),n=this.$refs.thumb;if(this.vertical){var i=e.clientY-t.top;i=Math.max(n.offsetHeight/2,i),i=Math.min(i,t.height-n.offsetHeight/2),this.color.set("alpha",Math.round((i-n.offsetHeight/2)/(t.height-n.offsetHeight)*100))}else{var r=e.clientX-t.left;r=Math.max(n.offsetWidth/2,r),r=Math.min(r,t.width-n.offsetWidth/2),this.color.set("alpha",Math.round((r-n.offsetWidth/2)/(t.width-n.offsetWidth)*100))}},getThumbLeft:function(){if(this.vertical)return 0;var e=this.$el,t=this.color._alpha;if(!e)return 0;var n=this.$refs.thumb;return Math.round(t*(e.offsetWidth-n.offsetWidth/2)/100)},getThumbTop:function(){if(!this.vertical)return 0;var e=this.$el,t=this.color._alpha;if(!e)return 0;var n=this.$refs.thumb;return Math.round(t*(e.offsetHeight-n.offsetHeight/2)/100)},getBackground:function(){if(this.color&&this.color.value){var e=this.color.toRgb(),t=e.r,n=e.g,i=e.b;return"linear-gradient(to right, rgba("+t+", "+n+", "+i+", 0) 0%, rgba("+t+", "+n+", "+i+", 1) 100%)"}return null},update:function(){this.thumbLeft=this.getThumbLeft(),this.thumbTop=this.getThumbTop(),this.background=this.getBackground()}},data:function(){return{thumbLeft:0,thumbTop:0,background:null}},mounted:function(){var e=this,t=this.$refs,n=t.bar,i=t.thumb,r={drag:function(t){e.handleDrag(t)},end:function(t){e.handleDrag(t)}};(0,a.default)(n,r),(0,a.default)(i,r),this.update()}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"el-color-alpha-slider",class:{"is-vertical":this.vertical}},[t("div",{ref:"bar",staticClass:"el-color-alpha-slider__bar",style:{background:this.background},on:{click:this.handleClick}}),t("div",{ref:"thumb",staticClass:"el-color-alpha-slider__thumb",style:{left:this.thumbLeft+"px",top:this.thumbTop+"px"}})])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(376),r=n.n(i),a=n(377),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(44),a=(i=r)&&i.__esModule?i:{default:i};t.default={props:{colors:{type:Array,required:!0},color:{required:!0}},data:function(){return{rgbaColors:this.parseColors(this.colors,this.color)}},methods:{handleSelect:function(e){this.color.fromString(this.colors[e])},parseColors:function(e,t){return e.map(function(e){var n=new a.default;return n.enableAlpha=!0,n.format="rgba",n.fromString(e),n.selected=n.value===t.value,n})}},watch:{"$parent.currentColor":function(e){var t=new a.default;t.fromString(e),this.rgbaColors.forEach(function(e){e.selected=t.compare(e)})},colors:function(e){this.rgbaColors=this.parseColors(e,this.color)},color:function(e){this.rgbaColors=this.parseColors(this.colors,e)}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-color-predefine"},[n("div",{staticClass:"el-color-predefine__colors"},e._l(e.rgbaColors,function(t,i){return n("div",{key:e.colors[i],staticClass:"el-color-predefine__color-selector",class:{selected:t.selected,"is-alpha":t._alpha<100},on:{click:function(t){e.handleSelect(i)}}},[n("div",{style:{"background-color":t.value}})])}))])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":e.doDestroy}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.showPopper,expression:"showPopper"}],staticClass:"el-color-dropdown"},[n("div",{staticClass:"el-color-dropdown__main-wrapper"},[n("hue-slider",{ref:"hue",staticStyle:{float:"right"},attrs:{color:e.color,vertical:""}}),n("sv-panel",{ref:"sl",attrs:{color:e.color}})],1),e.showAlpha?n("alpha-slider",{ref:"alpha",attrs:{color:e.color}}):e._e(),e.predefine?n("predefine",{attrs:{color:e.color,colors:e.predefine}}):e._e(),n("div",{staticClass:"el-color-dropdown__btns"},[n("span",{staticClass:"el-color-dropdown__value"},[n("el-input",{attrs:{size:"mini"},on:{blur:e.handleConfirm},nativeOn:{keyup:function(t){if(!("button"in t)&&e._k(t.keyCode,"enter",13,t.key))return null;e.handleConfirm(t)}},model:{value:e.customInput,callback:function(t){e.customInput=t},expression:"customInput"}})],1),n("el-button",{staticClass:"el-color-dropdown__link-btn",attrs:{size:"mini",type:"text"},on:{click:function(t){e.$emit("clear")}}},[e._v("\n        "+e._s(e.t("el.colorpicker.clear"))+"\n      ")]),n("el-button",{staticClass:"el-color-dropdown__btn",attrs:{plain:"",size:"mini"},on:{click:e.confirmValue}},[e._v("\n        "+e._s(e.t("el.colorpicker.confirm"))+"\n      ")])],1)],1)])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:e.hide,expression:"hide"}],class:["el-color-picker",e.colorDisabled?"is-disabled":"",e.colorSize?"el-color-picker--"+e.colorSize:""]},[e.colorDisabled?n("div",{staticClass:"el-color-picker__mask"}):e._e(),n("div",{staticClass:"el-color-picker__trigger",on:{click:e.handleTrigger}},[n("span",{staticClass:"el-color-picker__color",class:{"is-alpha":e.showAlpha}},[n("span",{staticClass:"el-color-picker__color-inner",style:{backgroundColor:e.displayedColor}}),e.value||e.showPanelColor?e._e():n("span",{staticClass:"el-color-picker__empty el-icon-close"})]),n("span",{directives:[{name:"show",rawName:"v-show",value:e.value||e.showPanelColor,expression:"value || showPanelColor"}],staticClass:"el-color-picker__icon el-icon-arrow-down"})]),n("picker-dropdown",{ref:"dropdown",class:["el-color-picker__panel",e.popperClass||""],attrs:{color:e.color,"show-alpha":e.showAlpha,predefine:e.predefine},on:{pick:e.confirmValue,clear:e.clearValue},model:{value:e.showPicker,callback:function(t){e.showPicker=t},expression:"showPicker"}})],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(381),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(382),r=n.n(i),a=n(386),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=l(n(15)),r=l(n(1)),a=l(n(3)),o=l(n(383)),s=l(n(7));function l(e){return e&&e.__esModule?e:{default:e}}t.default={name:"ElTransfer",mixins:[r.default,a.default,s.default],components:{TransferPanel:o.default,ElButton:i.default},props:{data:{type:Array,default:function(){return[]}},titles:{type:Array,default:function(){return[]}},buttonTexts:{type:Array,default:function(){return[]}},filterPlaceholder:{type:String,default:""},filterMethod:Function,leftDefaultChecked:{type:Array,default:function(){return[]}},rightDefaultChecked:{type:Array,default:function(){return[]}},renderContent:Function,value:{type:Array,default:function(){return[]}},format:{type:Object,default:function(){return{}}},filterable:Boolean,props:{type:Object,default:function(){return{label:"label",key:"key",disabled:"disabled"}}},targetOrder:{type:String,default:"original"}},data:function(){return{leftChecked:[],rightChecked:[]}},computed:{dataObj:function(){var e=this.props.key;return this.data.reduce(function(t,n){return(t[n[e]]=n)&&t},{})},sourceData:function(){var e=this;return this.data.filter(function(t){return-1===e.value.indexOf(t[e.props.key])})},targetData:function(){var e=this;return"original"===this.targetOrder?this.data.filter(function(t){return e.value.indexOf(t[e.props.key])>-1}):this.value.map(function(t){return e.dataObj[t]})},hasButtonTexts:function(){return 2===this.buttonTexts.length}},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}},methods:{getMigratingConfig:function(){return{props:{"footer-format":"footer-format is renamed to format."}}},onSourceCheckedChange:function(e,t){this.leftChecked=e,void 0!==t&&this.$emit("left-check-change",e,t)},onTargetCheckedChange:function(e,t){this.rightChecked=e,void 0!==t&&this.$emit("right-check-change",e,t)},addToLeft:function(){var e=this.value.slice();this.rightChecked.forEach(function(t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}),this.$emit("input",e),this.$emit("change",e,"left",this.rightChecked)},addToRight:function(){var e=this,t=this.value.slice(),n=[],i=this.props.key;this.data.forEach(function(t){var r=t[i];e.leftChecked.indexOf(r)>-1&&-1===e.value.indexOf(r)&&n.push(r)}),t="unshift"===this.targetOrder?n.concat(t):t.concat(n),this.$emit("input",t),this.$emit("change",t,"right",this.leftChecked)},clearQuery:function(e){"left"===e?this.$refs.leftPanel.query="":"right"===e&&(this.$refs.rightPanel.query="")}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(384),r=n.n(i),a=n(385),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0;var i=s(n(37)),r=s(n(14)),a=s(n(6)),o=s(n(3));function s(e){return e&&e.__esModule?e:{default:e}}t.default={mixins:[o.default],name:"ElTransferPanel",componentName:"ElTransferPanel",components:{ElCheckboxGroup:i.default,ElCheckbox:r.default,ElInput:a.default,OptionContent:{props:{option:Object},render:function(e){var t=function e(t){return"ElTransferPanel"===t.$options.componentName?t:t.$parent?e(t.$parent):t}(this),n=t.$parent||t;return t.renderContent?t.renderContent(e,this.option):n.$scopedSlots.default?n.$scopedSlots.default({option:this.option}):e("span",null,[this.option[t.labelProp]||this.option[t.keyProp]])}}},props:{data:{type:Array,default:function(){return[]}},renderContent:Function,placeholder:String,title:String,filterable:Boolean,format:Object,filterMethod:Function,defaultChecked:Array,props:Object},data:function(){return{checked:[],allChecked:!1,query:"",inputHover:!1,checkChangeByUser:!0}},watch:{checked:function(e,t){if(this.updateAllChecked(),this.checkChangeByUser){var n=e.concat(t).filter(function(n){return-1===e.indexOf(n)||-1===t.indexOf(n)});this.$emit("checked-change",e,n)}else this.$emit("checked-change",e),this.checkChangeByUser=!0},data:function(){var e=this,t=[],n=this.filteredData.map(function(t){return t[e.keyProp]});this.checked.forEach(function(e){n.indexOf(e)>-1&&t.push(e)}),this.checkChangeByUser=!1,this.checked=t},checkableData:function(){this.updateAllChecked()},defaultChecked:{immediate:!0,handler:function(e,t){var n=this;if(!t||e.length!==t.length||!e.every(function(e){return t.indexOf(e)>-1})){var i=[],r=this.checkableData.map(function(e){return e[n.keyProp]});e.forEach(function(e){r.indexOf(e)>-1&&i.push(e)}),this.checkChangeByUser=!1,this.checked=i}}}},computed:{filteredData:function(){var e=this;return this.data.filter(function(t){return"function"==typeof e.filterMethod?e.filterMethod(e.query,t):(t[e.labelProp]||t[e.keyProp].toString()).toLowerCase().indexOf(e.query.toLowerCase())>-1})},checkableData:function(){var e=this;return this.filteredData.filter(function(t){return!t[e.disabledProp]})},checkedSummary:function(){var e=this.checked.length,t=this.data.length,n=this.format,i=n.noChecked,r=n.hasChecked;return i&&r?e>0?r.replace(/\${checked}/g,e).replace(/\${total}/g,t):i.replace(/\${total}/g,t):e+"/"+t},isIndeterminate:function(){var e=this.checked.length;return e>0&&e<this.checkableData.length},hasNoMatch:function(){return this.query.length>0&&0===this.filteredData.length},inputIcon:function(){return this.query.length>0&&this.inputHover?"circle-close":"search"},labelProp:function(){return this.props.label||"label"},keyProp:function(){return this.props.key||"key"},disabledProp:function(){return this.props.disabled||"disabled"},hasFooter:function(){return!!this.$slots.default}},methods:{updateAllChecked:function(){var e=this,t=this.checkableData.map(function(t){return t[e.keyProp]});this.allChecked=t.length>0&&t.every(function(t){return e.checked.indexOf(t)>-1})},handleAllCheckedChange:function(e){var t=this;this.checked=e?this.checkableData.map(function(e){return e[t.keyProp]}):[]},clearQuery:function(){"circle-close"===this.inputIcon&&(this.query="")}}}},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-transfer-panel"},[n("p",{staticClass:"el-transfer-panel__header"},[n("el-checkbox",{attrs:{indeterminate:e.isIndeterminate},on:{change:e.handleAllCheckedChange},model:{value:e.allChecked,callback:function(t){e.allChecked=t},expression:"allChecked"}},[e._v("\n      "+e._s(e.title)+"\n      "),n("span",[e._v(e._s(e.checkedSummary))])])],1),n("div",{class:["el-transfer-panel__body",e.hasFooter?"is-with-footer":""]},[e.filterable?n("el-input",{staticClass:"el-transfer-panel__filter",attrs:{size:"small",placeholder:e.placeholder},nativeOn:{mouseenter:function(t){e.inputHover=!0},mouseleave:function(t){e.inputHover=!1}},model:{value:e.query,callback:function(t){e.query=t},expression:"query"}},[n("i",{class:["el-input__icon","el-icon-"+e.inputIcon],attrs:{slot:"prefix"},on:{click:e.clearQuery},slot:"prefix"})]):e._e(),n("el-checkbox-group",{directives:[{name:"show",rawName:"v-show",value:!e.hasNoMatch&&e.data.length>0,expression:"!hasNoMatch && data.length > 0"}],staticClass:"el-transfer-panel__list",class:{"is-filterable":e.filterable},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}},e._l(e.filteredData,function(t){return n("el-checkbox",{key:t[e.keyProp],staticClass:"el-transfer-panel__item",attrs:{label:t[e.keyProp],disabled:t[e.disabledProp]}},[n("option-content",{attrs:{option:t}})],1)})),n("p",{directives:[{name:"show",rawName:"v-show",value:e.hasNoMatch,expression:"hasNoMatch"}],staticClass:"el-transfer-panel__empty"},[e._v(e._s(e.t("el.transfer.noMatch")))]),n("p",{directives:[{name:"show",rawName:"v-show",value:0===e.data.length&&!e.hasNoMatch,expression:"data.length === 0 && !hasNoMatch"}],staticClass:"el-transfer-panel__empty"},[e._v(e._s(e.t("el.transfer.noData")))])],1),e.hasFooter?n("p",{staticClass:"el-transfer-panel__footer"},[e._t("default")],2):e._e()])},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"el-transfer"},[n("transfer-panel",e._b({ref:"leftPanel",attrs:{data:e.sourceData,title:e.titles[0]||e.t("el.transfer.titles.0"),"default-checked":e.leftDefaultChecked,placeholder:e.filterPlaceholder||e.t("el.transfer.filterPlaceholder")},on:{"checked-change":e.onSourceCheckedChange}},"transfer-panel",e.$props,!1),[e._t("left-footer")],2),n("div",{staticClass:"el-transfer__buttons"},[n("el-button",{class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],attrs:{type:"primary",disabled:0===e.rightChecked.length},nativeOn:{click:function(t){e.addToLeft(t)}}},[n("i",{staticClass:"el-icon-arrow-left"}),void 0!==e.buttonTexts[0]?n("span",[e._v(e._s(e.buttonTexts[0]))]):e._e()]),n("el-button",{class:["el-transfer__button",e.hasButtonTexts?"is-with-texts":""],attrs:{type:"primary",disabled:0===e.leftChecked.length},nativeOn:{click:function(t){e.addToRight(t)}}},[void 0!==e.buttonTexts[1]?n("span",[e._v(e._s(e.buttonTexts[1]))]):e._e(),n("i",{staticClass:"el-icon-arrow-right"})])],1),n("transfer-panel",e._b({ref:"rightPanel",attrs:{data:e.targetData,title:e.titles[1]||e.t("el.transfer.titles.1"),"default-checked":e.rightDefaultChecked,placeholder:e.filterPlaceholder||e.t("el.transfer.filterPlaceholder")},on:{"checked-change":e.onTargetCheckedChange}},"transfer-panel",e.$props,!1),[e._t("right-footer")],2)],1)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(388),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(389),r=n.n(i),a=n(390),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElContainer",componentName:"ElContainer",props:{direction:String},computed:{isVertical:function(){return"vertical"===this.direction||"horizontal"!==this.direction&&(!(!this.$slots||!this.$slots.default)&&this.$slots.default.some(function(e){var t=e.componentOptions&&e.componentOptions.tag;return"el-header"===t||"el-footer"===t}))}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("section",{staticClass:"el-container",class:{"is-vertical":this.isVertical}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(392),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(393),r=n.n(i),a=n(394),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElHeader",componentName:"ElHeader",props:{height:{type:String,default:"60px"}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("header",{staticClass:"el-header",style:{height:this.height}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(396),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(397),r=n.n(i),a=n(398),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElAside",componentName:"ElAside",props:{width:{type:String,default:"300px"}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("aside",{staticClass:"el-aside",style:{width:this.width}},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(400),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(401),r=n.n(i),a=n(402),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElMain",componentName:"ElMain"}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("main",{staticClass:"el-main"},[this._t("default")],2)},staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(404),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(405),r=n.n(i),a=n(406),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},function(e,t,n){"use strict";t.__esModule=!0,t.default={name:"ElFooter",componentName:"ElFooter",props:{height:{type:String,default:"60px"}}}},function(e,t,n){"use strict";var i={render:function(){var e=this.$createElement;return(this._self._c||e)("footer",{staticClass:"el-footer",style:{height:this.height}},[this._t("default")],2)},staticRenderFns:[]};t.a=i}])},t8DS:function(e,t){e.exports=function(e,t,n,i){if(!(e instanceof t)||void 0!==i&&i in e)throw TypeError(n+": incorrect invocation!");return e}},tAnk:function(e,t){var n="http://www.w3.org/2000/svg";t.createElement=function(e){return document.createElementNS(n,e)}},tHS6:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){return{methods:{focus:function(){this.$refs[e].focus()}}}}},tLod:function(e,t,n){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=122)}({0:function(e,t){e.exports=function(e,t,n,i,r,a){var o,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(o=e,s=e.default);var u,c="function"==typeof s?s.options:s;if(t&&(c.render=t.render,c.staticRenderFns=t.staticRenderFns,c._compiled=!0),n&&(c.functional=!0),r&&(c._scopeId=r),a?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=i),u){var d=c.functional,h=d?c.render:c.beforeCreate;d?(c._injectStyles=u,c.render=function(e,t){return u.call(t),h(e,t)}):c.beforeCreate=h?[].concat(h,u):[u]}return{esModule:o,exports:s,options:c}}},1:function(e,t){e.exports=n("PEt4")},122:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(123),a=(i=r)&&i.__esModule?i:{default:i};a.default.install=function(e){e.component(a.default.name,a.default)},t.default=a.default},123:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(124),r=n.n(i),a=n(125),o=n(0)(r.a,a.a,!1,null,null,null);t.default=o.exports},124:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(1),a=(i=r)&&i.__esModule?i:{default:i};t.default={name:"ElCheckbox",mixins:[a.default],inject:{elForm:{default:""},elFormItem:{default:""}},componentName:"ElCheckbox",data:function(){return{selfModel:!1,focus:!1,isLimitExceeded:!1}},computed:{model:{get:function(){return this.isGroup?this.store:void 0!==this.value?this.value:this.selfModel},set:function(e){this.isGroup?(this.isLimitExceeded=!1,void 0!==this._checkboxGroup.min&&e.length<this._checkboxGroup.min&&(this.isLimitExceeded=!0),void 0!==this._checkboxGroup.max&&e.length>this._checkboxGroup.max&&(this.isLimitExceeded=!0),!1===this.isLimitExceeded&&this.dispatch("ElCheckboxGroup","input",[e])):(this.$emit("input",e),this.selfModel=e)}},isChecked:function(){return"[object Boolean]"==={}.toString.call(this.model)?this.model:Array.isArray(this.model)?this.model.indexOf(this.label)>-1:null!==this.model&&void 0!==this.model?this.model===this.trueLabel:void 0},isGroup:function(){for(var e=this.$parent;e;){if("ElCheckboxGroup"===e.$options.componentName)return this._checkboxGroup=e,!0;e=e.$parent}return!1},store:function(){return this._checkboxGroup?this._checkboxGroup.value:this.value},isDisabled:function(){return this.isGroup?this._checkboxGroup.disabled||this.disabled||(this.elForm||{}).disabled:this.disabled||(this.elForm||{}).disabled},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},checkboxSize:function(){var e=this.size||this._elFormItemSize||(this.$ELEMENT||{}).size;return this.isGroup&&this._checkboxGroup.checkboxGroupSize||e}},props:{value:{},label:{},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:String,trueLabel:[String,Number],falseLabel:[String,Number],id:String,controls:String,border:Boolean,size:String},methods:{addToStore:function(){Array.isArray(this.model)&&-1===this.model.indexOf(this.label)?this.model.push(this.label):this.model=this.trueLabel||!0},handleChange:function(e){var t=this;if(!this.isLimitExceeded){var n=void 0;n=e.target.checked?void 0===this.trueLabel||this.trueLabel:void 0!==this.falseLabel&&this.falseLabel,this.$emit("change",n,e),this.$nextTick(function(){t.isGroup&&t.dispatch("ElCheckboxGroup","change",[t._checkboxGroup.value])})}}},created:function(){this.checked&&this.addToStore()},mounted:function(){this.indeterminate&&this.$el.setAttribute("aria-controls",this.controls)},watch:{value:function(e){this.dispatch("ElFormItem","el.form.change",e)}}}},125:function(e,t,n){"use strict";var i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("label",{staticClass:"el-checkbox",class:[e.border&&e.checkboxSize?"el-checkbox--"+e.checkboxSize:"",{"is-disabled":e.isDisabled},{"is-bordered":e.border},{"is-checked":e.isChecked}],attrs:{role:"checkbox","aria-checked":e.indeterminate?"mixed":e.isChecked,"aria-disabled":e.isDisabled,id:e.id}},[n("span",{staticClass:"el-checkbox__input",class:{"is-disabled":e.isDisabled,"is-checked":e.isChecked,"is-indeterminate":e.indeterminate,"is-focus":e.focus},attrs:{"aria-checked":"mixed"}},[n("span",{staticClass:"el-checkbox__inner"}),e.trueLabel||e.falseLabel?n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":"true",name:e.name,disabled:e.isDisabled,"true-value":e.trueLabel,"false-value":e.falseLabel},domProps:{checked:Array.isArray(e.model)?e._i(e.model,null)>-1:e._q(e.model,e.trueLabel)},on:{change:[function(t){var n=e.model,i=t.target,r=i.checked?e.trueLabel:e.falseLabel;if(Array.isArray(n)){var a=e._i(n,null);i.checked?a<0&&(e.model=n.concat([null])):a>-1&&(e.model=n.slice(0,a).concat(n.slice(a+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}}):n("input",{directives:[{name:"model",rawName:"v-model",value:e.model,expression:"model"}],staticClass:"el-checkbox__original",attrs:{type:"checkbox","aria-hidden":"true",disabled:e.isDisabled,name:e.name},domProps:{value:e.label,checked:Array.isArray(e.model)?e._i(e.model,e.label)>-1:e.model},on:{change:[function(t){var n=e.model,i=t.target,r=!!i.checked;if(Array.isArray(n)){var a=e.label,o=e._i(n,a);i.checked?o<0&&(e.model=n.concat([a])):o>-1&&(e.model=n.slice(0,o).concat(n.slice(o+1)))}else e.model=r},e.handleChange],focus:function(t){e.focus=!0},blur:function(t){e.focus=!1}}})]),e.$slots.default||e.label?n("span",{staticClass:"el-checkbox__label"},[e._t("default"),e.$slots.default?e._e():[e._v(e._s(e.label))]],2):e._e()])},staticRenderFns:[]};t.a=i}})},tjix:function(e,t,n){"use strict";t.__esModule=!0,t.i18n=t.use=t.t=void 0;var i=o(n("ejpq")),r=o(n("IvJb")),a=o(n("/ZBN"));function o(e){return e&&e.__esModule?e:{default:e}}var s=(0,o(n("xwJU")).default)(r.default),l=i.default,u=!1,c=function(){var e=Object.getPrototypeOf(this||r.default).$t;if("function"==typeof e&&r.default.locale)return u||(u=!0,r.default.locale(r.default.config.lang,(0,a.default)(l,r.default.locale(r.default.config.lang)||{},{clone:!0}))),e.apply(this,arguments)},d=t.t=function(e,t){var n=c.apply(this,arguments);if(null!==n&&void 0!==n)return n;for(var i=e.split("."),r=l,a=0,o=i.length;a<o;a++){if(n=r[i[a]],a===o-1)return s(n,t);if(!n)return"";r=n}return""},h=t.use=function(e){l=e||l},f=t.i18n=function(e){c=e||c};t.default={use:h,t:d,i18n:f}},u2T1:function(e,t,n){var i=n("eX1V"),r=n("Xvt7"),a=n("FKEm"),o="[object Null]",s="[object Undefined]",l=i?i.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:o:l&&l in Object(e)?r(e):a(e)}},uDLM:function(e,t,n){var i=n("GKMz");e.exports=function(e){var t={};e.eachSeriesByType("map",function(e){var n=e.getHostGeoModel(),i=n?"o"+n.id:"i"+e.getMapType();(t[i]=t[i]||[]).push(e)}),i.each(t,function(e,t){for(var n,r,a,o=(n=i.map(e,function(e){return e.getData()}),r=e[0].get("mapValueCalculation"),a={},i.each(n,function(e){e.each(e.mapDimension("value"),function(t,n){var i="ec-"+e.getName(n);a[i]=a[i]||[],isNaN(t)||a[i].push(t)})}),n[0].map(n[0].mapDimension("value"),function(e,t){for(var i,o="ec-"+n[0].getName(t),s=0,l=1/0,u=-1/0,c=a[o].length,d=0;d<c;d++)l=Math.min(l,a[o][d]),u=Math.max(u,a[o][d]),s+=a[o][d];return i="min"===r?l:"max"===r?u:"average"===r?s/c:s,0===c?NaN:i})),s=0;s<e.length;s++)e[s].originalData=e[s].getData();for(s=0;s<e.length;s++)e[s].seriesGroup=e,e[s].needsDrawMap=0===s&&!e[s].getHostGeoModel(),e[s].setData(o.cloneShallow()),e[s].mainSeries=e[0]})}},"uF+G":function(e,t,n){"use strict";n.d(t,"a",function(){return d}),n.d(t,"b",function(){return h});let i=null;let r=null;function a(e,t={}){let n=document.createElement(e);return Object.keys(t).forEach(e=>{n[e]=t[e]}),n}function o(e,t,n){return(window.getComputedStyle(e,n||null)||{display:"none"})[t]}function s(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};let t=e;for(;t!==document;){if("none"===o(t,"display"))return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var l='.resize-triggers{visibility:hidden;opacity:0}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}';let u=0,c=null;function d(e,t){if(e.__resize_mutation_handler__||(e.__resize_mutation_handler__=function(){let{rendered:e,detached:t}=s(this);e!==this.__resize_rendered__&&(!t&&this.__resize_triggers__&&(m(this),this.addEventListener("scroll",f,!0)),this.__resize_rendered__=e,p(this))}.bind(e)),!e.__resize_listeners__)if(e.__resize_listeners__=[],window.ResizeObserver){let{offsetWidth:t,offsetHeight:n}=e,i=new ResizeObserver(()=>{(e.__resize_observer_triggered__||(e.__resize_observer_triggered__=!0,e.offsetWidth!==t||e.offsetHeight!==n))&&p(e)}),{detached:r,rendered:a}=s(e);e.__resize_observer_triggered__=!1===r&&!1===a,e.__resize_observer__=i,i.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){p(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(u||(c=function(e){var t=document.createElement("style");return t.type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}(l)),function(e){let t=o(e,"position");t&&"static"!==t||(e.style.position="relative");e.__resize_old_position__=t,e.__resize_last__={};let n=a("div",{className:"resize-triggers"}),i=a("div",{className:"resize-expand-trigger"}),r=a("div"),s=a("div",{className:"resize-contract-trigger"});i.appendChild(r),n.appendChild(i),n.appendChild(s),e.appendChild(n),e.__resize_triggers__={triggers:n,expand:i,expandChild:r,contract:s},m(e),e.addEventListener("scroll",f,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}(e),e.__resize_rendered__=s(e).rendered,window.MutationObserver){let t=new MutationObserver(e.__resize_mutation_handler__);t.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=t}e.__resize_listeners__.push(t),u++}function h(e,t){if(e.detachEvent&&e.removeEventListener)return e.detachEvent("onresize",e.__resize_legacy_resize_handler__),void document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);let n=e.__resize_listeners__;n&&(n.splice(n.indexOf(t),1),n.length||(e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",f),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null),!--u&&c&&c.parentNode.removeChild(c))}function f(){var e,t;m(this),this.__resize_raf__&&(e=this.__resize_raf__,r||(r=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(e){clearTimeout(e)}).bind(window)),r(e)),this.__resize_raf__=(t=(()=>{let e=function(e){let{width:t,height:n}=e.__resize_last__,{offsetWidth:i,offsetHeight:r}=e;return i!==t||r!==n?{width:i,height:r}:null}(this);e&&(this.__resize_last__=e,p(this))}),i||(i=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){return setTimeout(e,16)}).bind(window)),i(t))}function p(e){e.__resize_listeners__.forEach(t=>{t.call(e)})}function m(e){let{expand:t,expandChild:n,contract:i}=e.__resize_triggers__,{scrollWidth:r,scrollHeight:a}=i,{offsetWidth:o,offsetHeight:s,scrollWidth:l,scrollHeight:u}=t;i.scrollLeft=r,i.scrollTop=a,n.style.width=o+1+"px",n.style.height=s+1+"px",t.scrollLeft=l,t.scrollTop=u}},uF0F:function(e,t,n){var i=n("GKMz"),r=n("uxQp"),a=["cartesian2d","polar","singleAxis"];function o(e,t){e=e.slice();var n=i.map(e,r.capitalFirst);t=(t||[]).slice();var a=i.map(t,r.capitalFirst);return function(r,o){i.each(e,function(e,i){for(var s={name:e,capital:n[i]},l=0;l<t.length;l++)s[t[l]]=e+a[l];r.call(o,s)})}}var s=o(["x","y","z","radius","angle","single"],["axisIndex","axis","index","id"]);t.isCoordSupported=function(e){return i.indexOf(a,e)>=0},t.createNameEach=o,t.eachAxisDim=s,t.createLinkedNodesFinder=function(e,t,n){return function(a){var o,s={nodes:[],records:{}};if(t(function(e){s.records[e.name]={}}),!a)return s;r(a,s);do{o=!1,e(l)}while(o);function l(e){!function(e,t){return i.indexOf(t.nodes,e)>=0}(e,s)&&function(e,r){var a=!1;return t(function(t){i.each(n(e,t)||[],function(e){r.records[t.name][e]&&(a=!0)})}),a}(e,s)&&(r(e,s),o=!0)}return s};function r(e,r){r.nodes.push(e),t(function(t){i.each(n(e,t)||[],function(e){r.records[t.name][e]=!0})})}}},"uH+j":function(e,t,n){"use strict";var i=n("bgFz"),r=n("FITv"),a=n("EyUJ"),o=n("bHZz"),s=n("ZVlJ"),l=n("2SsR"),u=n("XAI7"),c=n("/gXo"),d=n("biYF")("iterator"),h=!([].keys&&"next"in[].keys()),f=function(){return this};e.exports=function(e,t,n,p,m,g,v){l(n,t,p);var y,b,_,x=function(e){if(!h&&e in M)return M[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},w=t+" Iterator",S="values"==m,C=!1,M=e.prototype,k=M[d]||M["@@iterator"]||m&&M[m],T=k||x(m),A=m?S?x("entries"):T:void 0,I="Array"==t&&M.entries||k;if(I&&(_=c(I.call(new e)))!==Object.prototype&&_.next&&(u(_,w,!0),i||"function"==typeof _[d]||o(_,d,f)),S&&k&&"values"!==k.name&&(C=!0,T=function(){return k.call(this)}),i&&!v||!h&&!C&&M[d]||o(M,d,T),s[t]=T,s[w]=f,m)if(y={values:S?T:x("values"),keys:g?T:x("keys"),entries:A},v)for(b in y)b in M||a(M,b,y[b]);else r(r.P+r.F*(h||C),t,y);return y}},unHI:function(e,t,n){var i=n("GKMz"),r=n("21V2"),a=n("grD2"),o=n("Uur3").onIrrelevantElement,s=n("aVg8");function l(e,t){var n=e.getItemStyle(),i=e.get("areaColor");return null!=i&&(n.fill=i),n}function u(e,t){t.eachChild(function(t){i.each(t.__regions,function(n){t.trigger(e.isSelected(n.name)?"emphasis":"normal")})})}function c(e,t){var n=new s.Group;this._controller=new r(e.getZr()),this._controllerHost={target:t?n:null},this.group=n,this._updateGroup=t,this._mouseDownFlag}c.prototype={constructor:c,draw:function(e,t,n,r,a){var o="geo"===e.mainType,c=e.getData&&e.getData();o&&t.eachComponent({mainType:"series",subType:"map"},function(t){c||t.getHostGeoModel()!==e||(c=t.getData())});var d=e.coordinateSystem,h=this.group,f=d.scale,p={position:d.position,scale:f};!h.childAt(0)||a?h.attr(p):s.updateProps(h,p,e),h.removeAll();var m=["itemStyle"],g=["emphasis","itemStyle"],v=["label"],y=["emphasis","label"],b=i.createHashMap();i.each(d.regions,function(t){var n=b.get(t.name)||b.set(t.name,new s.Group),r=new s.CompoundPath({shape:{paths:[]}});n.add(r);var a,u=(D=e.getRegionModel(t.name)||e).getModel(m),d=D.getModel(g),p=l(u),_=l(d),x=D.getModel(v),w=D.getModel(y);if(c){a=c.indexOfName(t.name);var S=c.getItemVisual(a,"color",!0);S&&(p.fill=S)}i.each(t.geometries,function(e){if("polygon"===e.type){r.shape.paths.push(new s.Polygon({shape:{points:e.exterior}}));for(var t=0;t<(e.interiors?e.interiors.length:0);t++)r.shape.paths.push(new s.Polygon({shape:{points:e.interiors[t]}}))}}),r.setStyle(p),r.style.strokeNoScale=!0,r.culling=!0;var C=x.get("show"),M=w.get("show"),k=c&&isNaN(c.get(c.mapDimension("value"),a)),T=c&&c.getItemLayout(a);if(o||k&&(C||M)||T&&T.showLabel){var A,I=o?t.name:a;(!c||a>=0)&&(A=e);var E=new s.Text({position:t.center.slice(),scale:[1/f[0],1/f[1]],z2:10,silent:!0});s.setLabelStyle(E.style,E.hoverStyle={},x,w,{labelFetcher:A,labelDataIndex:I,defaultText:t.name,useInsideStyle:!1},{textAlign:"center",textVerticalAlign:"middle"}),n.add(E)}if(c)c.setItemGraphicEl(a,n);else{var D=e.getRegionModel(t.name);r.eventData={componentType:"geo",geoIndex:e.componentIndex,name:t.name,region:D&&D.option||{}}}(n.__regions||(n.__regions=[])).push(t),s.setHoverStyle(n,_,{hoverSilentOnTouch:!!e.get("selectedMode")}),h.add(n)}),this._updateController(e,t,n),function(e,t,n,r,a){n.off("click"),n.off("mousedown"),t.get("selectedMode")&&(n.on("mousedown",function(){e._mouseDownFlag=!0}),n.on("click",function(o){if(e._mouseDownFlag){e._mouseDownFlag=!1;for(var s=o.target;!s.__regions;)s=s.parent;if(s){var l={type:("geo"===t.mainType?"geo":"map")+"ToggleSelect",batch:i.map(s.__regions,function(e){return{name:e.name,from:a.uid}})};l[t.mainType+"Id"]=t.id,r.dispatchAction(l),u(t,n)}}}))}(this,e,h,n,r),u(e,h)},remove:function(){this.group.removeAll(),this._controller.dispose(),this._controllerHost={}},_updateController:function(e,t,n){var r=e.coordinateSystem,s=this._controller,l=this._controllerHost;l.zoomLimit=e.get("scaleLimit"),l.zoom=r.getZoom(),s.enable(e.get("roam")||!1);var u=e.mainType;function c(){var t={type:"geoRoam",componentType:u};return t[u+"Id"]=e.id,t}s.off("pan").on("pan",function(e,t){this._mouseDownFlag=!1,a.updateViewOnPan(l,e,t),n.dispatchAction(i.extend(c(),{dx:e,dy:t}))},this),s.off("zoom").on("zoom",function(e,t,r){if(this._mouseDownFlag=!1,a.updateViewOnZoom(l,e,t,r),n.dispatchAction(i.extend(c(),{zoom:e,originX:t,originY:r})),this._updateGroup){var o=this.group,s=o.scale;o.traverse(function(e){"text"===e.type&&e.attr("scale",[1/s[0],1/s[1]])})}},this),s.setPointerChecker(function(t,i,a){return r.getViewRectAfterRoam().contain(i,a)&&!o(t,n,e)})}};var d=c;e.exports=d},"ur+z":function(e,t,n){"use strict";var i=n("8r5Y");function r(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var a;if(n)a=n(t);else if(i.isURLSearchParams(t))a=t.toString();else{var o=[];i.forEach(t,function(e,t){null!==e&&void 0!==e&&(i.isArray(e)?t+="[]":e=[e],i.forEach(e,function(e){i.isDate(e)?e=e.toISOString():i.isObject(e)&&(e=JSON.stringify(e)),o.push(r(t)+"="+r(e))}))}),a=o.join("&")}return a&&(e+=(-1===e.indexOf("?")?"?":"&")+a),e}},uxQp:function(e,t,n){var i=n("GKMz"),r=n("gxMf"),a=n("abCA");var o=i.normalizeCssArray,s=/([&<>"'])/g,l={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function u(e){return null==e?"":(e+"").replace(s,function(e,t){return l[t]})}var c=["a","b","c","d","e","f","g"],d=function(e,t){return"{"+e+(null==t?"":t)+"}"};function h(e,t){return"0000".substr(0,t-(e+="").length)+e}var f=r.truncateText,p=r.getBoundingRect;t.addCommas=function(e){return isNaN(e)?"-":(e=(e+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")},t.toCamelCase=function(e,t){return e=(e||"").toLowerCase().replace(/-(.)/g,function(e,t){return t.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e},t.normalizeCssArray=o,t.encodeHTML=u,t.formatTpl=function(e,t,n){i.isArray(t)||(t=[t]);var r=t.length;if(!r)return"";for(var a=t[0].$vars||[],o=0;o<a.length;o++){var s=c[o];e=e.replace(d(s),d(s,0))}for(var l=0;l<r;l++)for(var h=0;h<a.length;h++){var f=t[l][a[h]];e=e.replace(d(c[h],l),n?u(f):f)}return e},t.formatTplSimple=function(e,t,n){return i.each(t,function(t,i){e=e.replace("{"+i+"}",n?u(t):t)}),e},t.getTooltipMarker=function(e,t){var n=(e=i.isString(e)?{color:e,extraCssText:t}:e||{}).color,r=e.type;return t=e.extraCssText,n?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+u(n)+";"+(t||"")+'"></span>':'<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:'+u(n)+";"+(t||"")+'"></span>':""},t.formatTime=function(e,t,n){"week"!==e&&"month"!==e&&"quarter"!==e&&"half-year"!==e&&"year"!==e||(e="MM-dd\nyyyy");var i=a.parseDate(t),r=n?"UTC":"",o=i["get"+r+"FullYear"](),s=i["get"+r+"Month"]()+1,l=i["get"+r+"Date"](),u=i["get"+r+"Hours"](),c=i["get"+r+"Minutes"](),d=i["get"+r+"Seconds"](),f=i["get"+r+"Milliseconds"]();return e=e.replace("MM",h(s,2)).replace("M",s).replace("yyyy",o).replace("yy",o%100).replace("dd",h(l,2)).replace("d",l).replace("hh",h(u,2)).replace("h",u).replace("mm",h(c,2)).replace("m",c).replace("ss",h(d,2)).replace("s",d).replace("SSS",h(f,3))},t.capitalFirst=function(e){return e?e.charAt(0).toUpperCase()+e.substr(1):e},t.truncateText=f,t.getTextRect=p},v854:function(e,t,n){var i=n("5gvs"),r=i.addEventListener,a=i.removeEventListener,o=i.normalizeEvent,s=n("GKMz"),l=n("erEb"),u=n("KSHG"),c=n("rksO"),d=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],h=["touchstart","touchend","touchmove"],f={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},p=s.map(d,function(e){var t=e.replace("mouse","pointer");return f[t]?t:e});function m(e){return"mousewheel"===e&&u.browser.firefox?"DOMMouseScroll":e}function g(e,t,n){var i=e._gestureMgr;"start"===n&&i.clear();var r=i.recognize(t,e.handler.findHover(t.zrX,t.zrY,null).target,e.dom);if("end"===n&&i.clear(),r){var a=r.type;t.gestureEvent=a,e.handler.dispatchToElement({target:r.target},a,r.event)}}function v(e){e._touching=!0,clearTimeout(e._touchTimer),e._touchTimer=setTimeout(function(){e._touching=!1},700)}var y={mousemove:function(e){e=o(this.dom,e),this.trigger("mousemove",e)},mouseout:function(e){var t=(e=o(this.dom,e)).toElement||e.relatedTarget;if(t!=this.dom)for(;t&&9!=t.nodeType;){if(t===this.dom)return;t=t.parentNode}this.trigger("mouseout",e)},touchstart:function(e){(e=o(this.dom,e)).zrByTouch=!0,this._lastTouchMoment=new Date,g(this,e,"start"),y.mousemove.call(this,e),y.mousedown.call(this,e),v(this)},touchmove:function(e){(e=o(this.dom,e)).zrByTouch=!0,g(this,e,"change"),y.mousemove.call(this,e),v(this)},touchend:function(e){(e=o(this.dom,e)).zrByTouch=!0,g(this,e,"end"),y.mouseup.call(this,e),+new Date-this._lastTouchMoment<300&&y.click.call(this,e),v(this)},pointerdown:function(e){y.mousedown.call(this,e)},pointermove:function(e){b(e)||y.mousemove.call(this,e)},pointerup:function(e){y.mouseup.call(this,e)},pointerout:function(e){b(e)||y.mouseout.call(this,e)}};function b(e){var t=e.pointerType;return"pen"===t||"touch"===t}function _(e){var t;function n(t,n){s.each(t,function(t){r(e,m(t),n._handlers[t])},n)}l.call(this),this.dom=e,this._touching=!1,this._touchTimer,this._gestureMgr=new c,this._handlers={},t=this,s.each(h,function(e){t._handlers[e]=s.bind(y[e],t)}),s.each(p,function(e){t._handlers[e]=s.bind(y[e],t)}),s.each(d,function(e){t._handlers[e]=function(e,t){return function(){if(!t._touching)return e.apply(t,arguments)}}(y[e],t)}),u.pointerEventsSupported?n(p,this):(u.touchEventsSupported&&n(h,this),n(d,this))}s.each(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(e){y[e]=function(t){t=o(this.dom,t),this.trigger(e,t)}});var x=_.prototype;x.dispose=function(){for(var e=d.concat(h),t=0;t<e.length;t++){var n=e[t];a(this.dom,m(n),this._handlers[n])}},x.setCursor=function(e){this.dom.style&&(this.dom.style.cursor=e||"default")},s.mixin(_,l);var w=_;e.exports=w},vKtP:function(e,t){var n=["lineStyle","normal","opacity"],i={seriesType:"parallel",reset:function(e,t,i){var r=e.getModel("itemStyle"),a=e.getModel("lineStyle"),o=t.get("color"),s=a.get("color")||r.get("color")||o[e.seriesIndex%o.length],l=e.get("inactiveOpacity"),u=e.get("activeOpacity"),c=e.getModel("lineStyle").getLineStyle(),d=e.coordinateSystem,h=e.getData(),f={normal:c.opacity,active:u,inactive:l};return h.setVisual("color",s),{progress:function(e,t){d.eachActiveState(t,function(e,i){var r=f[e];if("normal"===e&&t.hasItemOption){var a=t.getItemModel(i).get(n,!0);null!=a&&(r=a)}t.setItemVisual(i,"opacity",r)},e.start,e.end)}}}};e.exports=i},vO1E:function(e,t){t.buildPath=function(e,t){var n,i,r,a,o,s=t.x,l=t.y,u=t.width,c=t.height,d=t.r;u<0&&(s+=u,u=-u),c<0&&(l+=c,c=-c),"number"==typeof d?n=i=r=a=d:d instanceof Array?1===d.length?n=i=r=a=d[0]:2===d.length?(n=r=d[0],i=a=d[1]):3===d.length?(n=d[0],i=a=d[1],r=d[2]):(n=d[0],i=d[1],r=d[2],a=d[3]):n=i=r=a=0,n+i>u&&(n*=u/(o=n+i),i*=u/o),r+a>u&&(r*=u/(o=r+a),a*=u/o),i+r>c&&(i*=c/(o=i+r),r*=c/o),n+a>c&&(n*=c/(o=n+a),a*=c/o),e.moveTo(s+n,l),e.lineTo(s+u-i,l),0!==i&&e.arc(s+u-i,l+i,i,-Math.PI/2,0),e.lineTo(s+u,l+c-r),0!==r&&e.arc(s+u-r,l+c-r,r,0,Math.PI/2),e.lineTo(s+a,l+c),0!==a&&e.arc(s+a,l+c-a,a,Math.PI/2,Math.PI),e.lineTo(s,l+n),0!==n&&e.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}},vWcR:function(e,t,n){n("jUTB"),e.exports=n("AKd3").Object.assign},vXc2:function(e,t,n){var i=n("luYz"),r=i.min,a=i.max,o=i.scale,s=i.distance,l=i.add,u=i.clone,c=i.sub;e.exports=function(e,t,n,i){var d,h,f,p,m=[],g=[],v=[],y=[];if(i){f=[1/0,1/0],p=[-1/0,-1/0];for(var b=0,_=e.length;b<_;b++)r(f,f,e[b]),a(p,p,e[b]);r(f,f,i[0]),a(p,p,i[1])}for(b=0,_=e.length;b<_;b++){var x=e[b];if(n)d=e[b?b-1:_-1],h=e[(b+1)%_];else{if(0===b||b===_-1){m.push(u(e[b]));continue}d=e[b-1],h=e[b+1]}c(g,h,d),o(g,g,t);var w=s(x,d),S=s(x,h),C=w+S;0!==C&&(w/=C,S/=C),o(v,g,-w),o(y,g,S);var M=l([],x,v),k=l([],x,y);i&&(a(M,M,f),r(M,M,p),a(k,k,f),r(k,k,p)),m.push(M),m.push(k)}return n&&m.push(m.shift()),m}},vfE7:function(e,t,n){var i=n("/MtV");n("hEXF"),n("+HCW"),n("Q6RJ"),i.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),i.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){})},vqvJ:function(e,t,n){var i=n("GKMz"),r=i.each,a=i.isObject,o=i.isArray,s="series\0";function l(e){return e instanceof Array?e:null==e?[]:[e]}function u(e){return a(e)&&e.id&&0===(e.id+"").indexOf("\0_ec_\0")}var c=0;function d(e,t){return e&&e.hasOwnProperty(t)}t.normalizeToArray=l,t.defaultEmphasis=function(e,t,n){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var i=0,r=n.length;i<r;i++){var a=n[i];!e.emphasis[t].hasOwnProperty(a)&&e[t].hasOwnProperty(a)&&(e.emphasis[t][a]=e[t][a])}}},t.TEXT_STYLE_OPTIONS=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"],t.getDataItemValue=function(e){return!a(e)||o(e)||e instanceof Date?e:e.value},t.isDataItemOption=function(e){return a(e)&&!(e instanceof Array)},t.mappingToExists=function(e,t){t=(t||[]).slice();var n=i.map(e||[],function(e,t){return{exist:e}});return r(t,function(e,i){if(a(e)){for(var r=0;r<n.length;r++)if(!n[r].option&&null!=e.id&&n[r].exist.id===e.id+"")return n[r].option=e,void(t[i]=null);for(r=0;r<n.length;r++){var o=n[r].exist;if(!(n[r].option||null!=o.id&&null!=e.id||null==e.name||u(e)||u(o)||o.name!==e.name+""))return n[r].option=e,void(t[i]=null)}}}),r(t,function(e,t){if(a(e)){for(var i=0;i<n.length;i++){var r=n[i].exist;if(!n[i].option&&!u(r)&&null==e.id){n[i].option=e;break}}i>=n.length&&n.push({option:e})}}),n},t.makeIdAndName=function(e){var t=i.createHashMap();r(e,function(e,n){var i=e.exist;i&&t.set(i.id,e)}),r(e,function(e,n){var r=e.option;i.assert(!r||null==r.id||!t.get(r.id)||t.get(r.id)===e,"id duplicates: "+(r&&r.id)),r&&null!=r.id&&t.set(r.id,e),!e.keyInfo&&(e.keyInfo={})}),r(e,function(e,n){var i=e.exist,r=e.option,o=e.keyInfo;if(a(r)){if(o.name=null!=r.name?r.name+"":i?i.name:s+n,i)o.id=i.id;else if(null!=r.id)o.id=r.id+"";else{var l=0;do{o.id="\0"+o.name+"\0"+l++}while(t.get(o.id))}t.set(o.id,e)}})},t.isNameSpecified=function(e){var t=e.name;return!(!t||!t.indexOf(s))},t.isIdInner=u,t.compressBatches=function(e,t){var n={},i={};return r(e||[],n),r(t||[],i,n),[a(n),a(i)];function r(e,t,n){for(var i=0,r=e.length;i<r;i++)for(var a=e[i].seriesId,o=l(e[i].dataIndex),s=n&&n[a],u=0,c=o.length;u<c;u++){var d=o[u];s&&s[d]?s[d]=null:(t[a]||(t[a]={}))[d]=1}}function a(e,t){var n=[];for(var i in e)if(e.hasOwnProperty(i)&&null!=e[i])if(t)n.push(+i);else{var r=a(e[i],!0);r.length&&n.push({seriesId:i,dataIndex:r})}return n}},t.queryDataIndex=function(e,t){return null!=t.dataIndexInside?t.dataIndexInside:null!=t.dataIndex?i.isArray(t.dataIndex)?i.map(t.dataIndex,function(t){return e.indexOfRawIndex(t)}):e.indexOfRawIndex(t.dataIndex):null!=t.name?i.isArray(t.name)?i.map(t.name,function(t){return e.indexOfName(t)}):e.indexOfName(t.name):void 0},t.makeInner=function(){var e="__\0ec_inner_"+c+++"_"+Math.random().toFixed(5);return function(t){return t[e]||(t[e]={})}},t.parseFinder=function(e,t,n){if(i.isString(t)){var a={};a[t+"Index"]=0,t=a}var o=n&&n.defaultMainType;!o||d(t,o+"Index")||d(t,o+"Id")||d(t,o+"Name")||(t[o+"Index"]=0);var s={};return r(t,function(r,a){if(r=t[a],"dataIndex"!==a&&"dataIndexInside"!==a){var o=a.match(/^(\w+)(Index|Id|Name)$/)||[],l=o[1],u=(o[2]||"").toLowerCase();if(!(!l||!u||null==r||"index"===u&&"none"===r||n&&n.includeMainTypes&&i.indexOf(n.includeMainTypes,l)<0)){var c={mainType:l};"index"===u&&"all"===r||(c[u]=r);var d=e.queryComponents(c);s[l+"Models"]=d,s[l+"Model"]=d[0]}}else s[a]=r}),s},t.setAttribute=function(e,t,n){e.setAttribute?e.setAttribute(t,n):e[t]=n},t.getAttribute=function(e,t){return e.getAttribute?e.getAttribute(t):e[t]}},w2U8:function(e,t){var n={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return.5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return 0===e?0:Math.pow(1024,e-1)},exponentialOut:function(e){return 1===e?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,n=.1;return 0===e?0:1===e?1:(!n||n<1?(n=1,t=.1):t=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/.4))},elasticOut:function(e){var t,n=.1;return 0===e?0:1===e?1:(!n||n<1?(n=1,t=.1):t=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/.4)+1)},elasticInOut:function(e){var t,n=.1;return 0===e?0:1===e?1:(!n||n<1?(n=1,t=.1):t=.4*Math.asin(1/n)/(2*Math.PI),(e*=2)<1?n*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/.4)*-.5:n*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/.4)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-n.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?.5*n.bounceIn(2*e):.5*n.bounceOut(2*e-1)+.5}},i=n;e.exports=i},w4GH:function(e,t,n){n("IWqO"),n("WiQi")},wGXc:function(e,t,n){"use strict";t.__esModule=!0;var i,r=n("IvJb"),a=(i=r)&&i.__esModule?i:{default:i},o=n("iOou");var s=!1,l=!1,u=2e3,c=function(){if(!a.default.prototype.$isServer){var e=h.modalDom;return e?s=!0:(s=!1,e=document.createElement("div"),h.modalDom=e,e.addEventListener("touchmove",function(e){e.preventDefault(),e.stopPropagation()}),e.addEventListener("click",function(){h.doOnModalClick&&h.doOnModalClick()})),e}},d={},h={modalFade:!0,getInstance:function(e){return d[e]},register:function(e,t){e&&t&&(d[e]=t)},deregister:function(e){e&&(d[e]=null,delete d[e])},nextZIndex:function(){return h.zIndex++},modalStack:[],doOnModalClick:function(){var e=h.modalStack[h.modalStack.length-1];if(e){var t=h.getInstance(e.id);t&&t.closeOnClickModal&&t.close()}},openModal:function(e,t,n,i,r){if(!a.default.prototype.$isServer&&e&&void 0!==t){this.modalFade=r;for(var l=this.modalStack,u=0,d=l.length;u<d;u++){if(l[u].id===e)return}var h=c();if((0,o.addClass)(h,"v-modal"),this.modalFade&&!s&&(0,o.addClass)(h,"v-modal-enter"),i)i.trim().split(/\s+/).forEach(function(e){return(0,o.addClass)(h,e)});setTimeout(function(){(0,o.removeClass)(h,"v-modal-enter")},200),n&&n.parentNode&&11!==n.parentNode.nodeType?n.parentNode.appendChild(h):document.body.appendChild(h),t&&(h.style.zIndex=t),h.tabIndex=0,h.style.display="",this.modalStack.push({id:e,zIndex:t,modalClass:i})}},closeModal:function(e){var t=this.modalStack,n=c();if(t.length>0){var i=t[t.length-1];if(i.id===e){if(i.modalClass)i.modalClass.trim().split(/\s+/).forEach(function(e){return(0,o.removeClass)(n,e)});t.pop(),t.length>0&&(n.style.zIndex=t[t.length-1].zIndex)}else for(var r=t.length-1;r>=0;r--)if(t[r].id===e){t.splice(r,1);break}}0===t.length&&(this.modalFade&&(0,o.addClass)(n,"v-modal-leave"),setTimeout(function(){0===t.length&&(n.parentNode&&n.parentNode.removeChild(n),n.style.display="none",h.modalDom=void 0),(0,o.removeClass)(n,"v-modal-leave")},200))}};Object.defineProperty(h,"zIndex",{configurable:!0,get:function(){return l||(u=(a.default.prototype.$ELEMENT||{}).zIndex||u,l=!0),u},set:function(e){u=e}});a.default.prototype.$isServer||window.addEventListener("keydown",function(e){if(27===e.keyCode){var t=function(){if(!a.default.prototype.$isServer&&h.modalStack.length>0){var e=h.modalStack[h.modalStack.length-1];if(!e)return;return h.getInstance(e.id)}}();t&&t.closeOnPressEscape&&(t.handleClose?t.handleClose():t.handleAction?t.handleAction("cancel"):t.close())}}),t.default=h},wK34:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("Vus3"),o=n("aVg8"),s=["axisLine","axisTickLabel","axisName"],l=i.extendComponentView({type:"radar",render:function(e,t,n){this.group.removeAll(),this._buildAxes(e),this._buildSplitLineAndArea(e)},_buildAxes:function(e){var t=e.coordinateSystem,n=t.getIndicatorAxes(),i=r.map(n,function(e){return new a(e.model,{position:[t.cx,t.cy],rotation:e.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})});r.each(i,function(e){r.each(s,e.add,e),this.group.add(e.getGroup())},this)},_buildSplitLineAndArea:function(e){var t=e.coordinateSystem,n=t.getIndicatorAxes();if(n.length){var i=e.get("shape"),a=e.getModel("splitLine"),s=e.getModel("splitArea"),l=a.getModel("lineStyle"),u=s.getModel("areaStyle"),c=a.get("show"),d=s.get("show"),h=l.get("color"),f=u.get("color");h=r.isArray(h)?h:[h],f=r.isArray(f)?f:[f];var p=[],m=[];if("circle"===i)for(var g=n[0].getTicksCoords(),v=t.cx,y=t.cy,b=0;b<g.length;b++){if(c)p[T(p,h,b)].push(new o.Circle({shape:{cx:v,cy:y,r:g[b].coord}}));if(d&&b<g.length-1)m[T(m,f,b)].push(new o.Ring({shape:{cx:v,cy:y,r0:g[b].coord,r:g[b+1].coord}}))}else{var _,x=r.map(n,function(e,n){var i=e.getTicksCoords();return _=null==_?i.length-1:Math.min(i.length-1,_),r.map(i,function(e){return t.coordToPoint(e.coord,n)})}),w=[];for(b=0;b<=_;b++){for(var S=[],C=0;C<n.length;C++)S.push(x[C][b]);if(S[0]&&S.push(S[0].slice()),c)p[T(p,h,b)].push(new o.Polyline({shape:{points:S}}));if(d&&w)m[T(m,f,b-1)].push(new o.Polygon({shape:{points:S.concat(w)}}));w=S.slice().reverse()}}var M=l.getLineStyle(),k=u.getAreaStyle();r.each(m,function(e,t){this.group.add(o.mergePath(e,{style:r.defaults({stroke:"none",fill:f[t%f.length]},k),silent:!0}))},this),r.each(p,function(e,t){this.group.add(o.mergePath(e,{style:r.defaults({fill:"none",stroke:h[t%h.length]},M),silent:!0}))},this)}function T(e,t,n){var i=n%t.length;return e[i]=e[i]||[],i}}});e.exports=l},wNlq:function(e,t,n){n("KJ1c").__DEV__;var i=n("GKMz"),r=".",a="___EC__COMPONENT__CONTAINER___";function o(e){var t={main:"",sub:""};return e&&(e=e.split(r),t.main=e[0]||"",t.sub=e[1]||""),t}var s=0;function l(e,t){var n=i.slice(arguments,2);return this.superClass.prototype[t].apply(e,n)}function u(e,t,n){return this.superClass.prototype[t].apply(e,n)}t.parseClassType=o,t.enableClassExtend=function(e,t){e.$constructor=e,e.extend=function(e){var t=this,n=function(){e.$constructor?e.$constructor.apply(this,arguments):t.apply(this,arguments)};return i.extend(n.prototype,e),n.extend=this.extend,n.superCall=l,n.superApply=u,i.inherits(n,this),n.superClass=t,n}},t.enableClassCheck=function(e){var t=["__\0is_clz",s++,Math.random().toFixed(3)].join("_");e.prototype[t]=!0,e.isInstance=function(e){return!(!e||!e[t])}},t.enableClassManagement=function(e,t){t=t||{};var n={};if(e.registerClass=function(e,t){return t&&(function(e){i.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e),'componentType "'+e+'" illegal')}(t),(t=o(t)).sub?t.sub!==a&&((function(e){var t=n[e.main];return t&&t[a]||((t=n[e.main]={})[a]=!0),t}(t))[t.sub]=e):n[t.main]=e),e},e.getClass=function(e,t,i){var r=n[e];if(r&&r[a]&&(r=t?r[t]:null),i&&!r)throw new Error(t?"Component "+e+"."+(t||"")+" not exists. Load it first.":e+".type should be specified.");return r},e.getClassesByMainType=function(e){e=o(e);var t=[],r=n[e.main];return r&&r[a]?i.each(r,function(e,n){n!==a&&t.push(e)}):t.push(r),t},e.hasClass=function(e){return e=o(e),!!n[e.main]},e.getAllClassMainTypes=function(){var e=[];return i.each(n,function(t,n){e.push(n)}),e},e.hasSubTypes=function(e){e=o(e);var t=n[e.main];return t&&t[a]},e.parseClassType=o,t.registerWhenExtend){var r=e.extend;r&&(e.extend=function(t){var n=r.call(this,t);return e.registerClass(n,t.type)})}return e},t.setReadOnly=function(e,t){}},wO6C:function(e,t,n){var i=n("Q9e6").extend({type:"ring",shape:{cx:0,cy:0,r:0,r0:0},buildPath:function(e,t){var n=t.cx,i=t.cy,r=2*Math.PI;e.moveTo(n+t.r,i),e.arc(n,i,t.r,0,r,!1),e.moveTo(n+t.r0,i),e.arc(n,i,t.r0,0,r,!0)}});e.exports=i},wOHm:function(e,t,n){var i=n("GKMz"),r=n("Q/cl").getLayoutRect;t.getItemAlign=function(e,t,n){var i=e.option,a=i.align;if(null!=a&&"auto"!==a)return a;for(var o={width:t.getWidth(),height:t.getHeight()},s="horizontal"===i.orient?1:0,l=[["left","right","width"],["top","bottom","height"]],u=l[s],c=[0,null,10],d={},h=0;h<3;h++)d[l[1-s][h]]=c[h],d[u[h]]=2===h?n[0]:i[u[h]];var f=[["x","width",3],["y","height",0]][s],p=r(d,o,i.padding);return u[(p.margin[f[2]]||0)+p[f[0]]+.5*p[f[1]]<.5*o[f[1]]?0:1]},t.convertDataIndex=function(e){return i.each(e||[],function(t){null!=e.dataIndex&&(e.dataIndexInside=e.dataIndex,e.dataIndex=null)}),e}},wdUn:function(e,t,n){e.exports={default:n("/qLD"),__esModule:!0}},we00:function(e,t,n){var i=n("GKMz"),r=n("abCA"),a=n("uF0F"),o=i.each,s=r.asc,l=function(e,t,n,i){this._dimName=e,this._axisIndex=t,this._valueWindow,this._percentWindow,this._dataExtent,this._minMaxSpan,this.ecModel=i,this._dataZoomModel=n};function u(e,t){var n=e.getAxisModel(),i=e._percentWindow,a=e._valueWindow;if(i){var o=r.getPixelPrecision(a,[0,500]);o=Math.min(o,20);var s=t||0===i[0]&&100===i[1];n.setRange(s?null:+a[0].toFixed(o),s?null:+a[1].toFixed(o))}}l.prototype={constructor:l,hostedBy:function(e){return this._dataZoomModel===e},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var e=[],t=this.ecModel;return t.eachSeries(function(n){if(a.isCoordSupported(n.get("coordinateSystem"))){var i=this._dimName,r=t.queryComponents({mainType:i+"Axis",index:n.get(i+"AxisIndex"),id:n.get(i+"AxisId")})[0];this._axisIndex===(r&&r.componentIndex)&&e.push(n)}},this),e},getAxisModel:function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var e,t,n,i=this._dimName,r=this.ecModel,a=this.getAxisModel();return"x"===i||"y"===i?(t="gridIndex",e="x"===i?"y":"x"):(t="polarIndex",e="angle"===i?"radius":"angle"),r.eachComponent(e+"Axis",function(e){(e.get(t)||0)===(a.get(t)||0)&&(n=e)}),n},getMinMaxSpan:function(){return i.clone(this._minMaxSpan)},calculateDataWindow:function(e){var t=this._dataExtent,n=this.getAxisModel().axis.scale,i=this._dataZoomModel.getRangePropMode(),a=[0,100],l=[e.start,e.end],u=[];return o(["startValue","endValue"],function(t){u.push(null!=e[t]?n.parse(e[t]):null)}),o([0,1],function(e){var o=u[e],s=l[e];"percent"===i[e]?(null==s&&(s=a[e]),o=n.parse(r.linearMap(s,a,t,!0))):s=r.linearMap(o,t,a,!0),u[e]=o,l[e]=s}),{valueWindow:s(u),percentWindow:s(l)}},reset:function(e){if(e===this._dataZoomModel){var t=this.getTargetSeriesModels();this._dataExtent=function(e,t,n){var i=[1/0,-1/0];o(n,function(e){var n=e.getData();n&&o(n.mapDimension(t,!0),function(e){var t=n.getApproximateExtent(e);t[0]<i[0]&&(i[0]=t[0]),t[1]>i[1]&&(i[1]=t[1])})}),i[1]<i[0]&&(i=[NaN,NaN]);return function(e,t){var n=e.getAxisModel(),i=n.getMin(!0),r="category"===n.get("type"),a=r&&n.getCategories().length;null!=i&&"dataMin"!==i&&"function"!=typeof i?t[0]=i:r&&(t[0]=a>0?0:NaN);var o=n.getMax(!0);null!=o&&"dataMax"!==o&&"function"!=typeof o?t[1]=o:r&&(t[1]=a>0?a-1:NaN),n.get("scale",!0)||(t[0]>0&&(t[0]=0),t[1]<0&&(t[1]=0))}(e,i),i}(this,this._dimName,t);var n=this.calculateDataWindow(e.option);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,function(e){var t=e._minMaxSpan={},n=e._dataZoomModel;o(["min","max"],function(i){t[i+"Span"]=n.get(i+"Span");var a=n.get(i+"ValueSpan");if(null!=a&&(t[i+"ValueSpan"]=a,null!=(a=e.getAxisModel().axis.scale.parse(a)))){var o=e._dataExtent;t[i+"Span"]=r.linearMap(o[0]+a,o,[0,100],!0)}})}(this),u(this)}},restore:function(e){e===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,u(this,!0))},filterData:function(e,t){if(e===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=e.get("filterMode"),a=this._valueWindow;"none"!==r&&o(i,function(e){var t=e.getData(),i=t.mapDimension(n,!0);"weakFilter"===r?t.filterSelf(function(e){for(var n,r,o,s=0;s<i.length;s++){var l=t.get(i[s],e),u=!isNaN(l),c=l<a[0],d=l>a[1];if(u&&!c&&!d)return!0;u&&(o=!0),c&&(n=!0),d&&(r=!0)}return o&&n&&r}):o(i,function(n){if("empty"===r)e.setData(t.map(n,function(e){return function(e){return e>=a[0]&&e<=a[1]}(e)?e:NaN}));else{var i={};i[n]=a,t.selectRange(i)}}),o(i,function(e){t.setApproximateExtent(a,e)})})}}};var c=l;e.exports=c},wks9:function(e,t,n){var i=n("/MtV"),r=n("GKMz"),a=n("Nrx1"),o=n("7eLB"),s=a.toolbox.magicType;function l(e){this.model=e}l.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:r.clone(s.title),option:{},seriesIndex:{}};var u=l.prototype;u.getIcons=function(){var e=this.model,t=e.get("icon"),n={};return r.each(e.get("type"),function(e){t[e]&&(n[e]=t[e])}),n};var c={line:function(e,t,n,i){if("bar"===e)return r.merge({id:t,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get("option.line")||{},!0)},bar:function(e,t,n,i){if("line"===e)return r.merge({id:t,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get("option.bar")||{},!0)},stack:function(e,t,n,i){if("line"===e||"bar"===e)return r.merge({id:t,stack:"__ec_magicType_stack__"},i.get("option.stack")||{},!0)},tiled:function(e,t,n,i){if("line"===e||"bar"===e)return r.merge({id:t,stack:""},i.get("option.tiled")||{},!0)}},d=[["line","bar"],["stack","tiled"]];u.onclick=function(e,t,n){var i=this.model,a=i.get("seriesIndex."+n);if(c[n]){var o={series:[]};r.each(d,function(e){r.indexOf(e,n)>=0&&r.each(e,function(e){i.setIconStatus(e,"normal")})}),i.setIconStatus(n,"emphasis"),e.eachComponent({mainType:"series",query:null==a?null:{seriesIndex:a}},function(t){var a=t.subType,s=t.id,l=c[n](a,s,t,i);l&&(r.defaults(l,t.option),o.series.push(l));var u=t.coordinateSystem;if(u&&"cartesian2d"===u.type&&("line"===n||"bar"===n)){var d=u.getAxesByScale("ordinal")[0];if(d){var h=d.dim+"Axis",f=e.queryComponents({mainType:h,index:t.get(name+"Index"),id:t.get(name+"Id")})[0].componentIndex;o[h]=o[h]||[];for(var p=0;p<=f;p++)o[h][f]=o[h][f]||{};o[h][f].boundaryGap="bar"===n}}}),t.dispatchAction({type:"changeMagicType",currentType:n,newOption:o})}},i.registerAction({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(e,t){t.mergeOption(e.newOption)}),o.register("magicType",l);var h=l;e.exports=h},wsbZ:function(e,t,n){var i=n("GKMz"),r=n("vqvJ");e.exports=function(e,t){var n,a=[],o=e.seriesIndex;if(null==o||!(n=t.getSeriesByIndex(o)))return{point:[]};var s=n.getData(),l=r.queryDataIndex(s,e);if(null==l||l<0||i.isArray(l))return{point:[]};var u=s.getItemGraphicEl(l),c=n.coordinateSystem;if(n.getTooltipPosition)a=n.getTooltipPosition(l)||[];else if(c&&c.dataToPoint)a=c.dataToPoint(s.getValues(i.map(c.dimensions,function(e){return s.mapDimension(e)}),l,!0))||[];else if(u){var d=u.getBoundingRect().clone();d.applyTransform(u.transform),a=[d.x+d.width/2,d.y+d.height/2]}return{point:a,el:u}}},wxPZ:function(e,t,n){var i=n("/MtV");n("iHmX"),n("Z5sy"),n("TU1D");var r=n("heZm"),a=n("BiZM"),o=n("Jkhp");i.registerLayout(r),i.registerVisual(a),i.registerProcessor(o("themeRiver"))},x1f2:function(e,t,n){var i=n("/MtV");n("hxPW"),n("6dNT"),i.registerPreprocessor(function(e){e.markLine=e.markLine||{}})},xHIt:function(e,t,n){"use strict";t.__esModule=!0,t.isDef=function(e){return void 0!==e&&null!==e},t.isKorean=function(e){return/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(e)}},xPAV:function(e,t,n){var i=n("2xPE").retrieveRawValue,r=n("uxQp"),a=r.getTooltipMarker,o=r.formatTpl,s=/\{@(.+?)\}/g,l={getDataParams:function(e,t){var n=this.getData(t),i=this.getRawValue(e,t),r=n.getRawIndex(e),o=n.getName(e),s=n.getRawDataItem(e),l=n.getItemVisual(e,"color");return{componentType:this.mainType,componentSubType:this.subType,seriesType:"series"===this.mainType?this.subType:null,seriesIndex:this.seriesIndex,seriesId:this.id,seriesName:this.name,name:o,dataIndex:r,data:s,dataType:t,value:i,color:l,marker:a(l),$vars:["seriesName","name","value"]}},getFormattedLabel:function(e,t,n,r,a){t=t||"normal";var l=this.getData(n),u=l.getItemModel(e),c=this.getDataParams(e,n);null!=r&&c.value instanceof Array&&(c.value=c.value[r]);var d=u.get("normal"===t?[a||"label","formatter"]:[t,a||"label","formatter"]);return"function"==typeof d?(c.status=t,d(c)):"string"==typeof d?o(d,c).replace(s,function(t,n){var r=n.length;return"["===n.charAt(0)&&"]"===n.charAt(r-1)&&(n=+n.slice(1,r-1)),i(l,e,n)}):void 0},getRawValue:function(e,t){return i(this.getData(t),e)},formatTooltip:function(){}};e.exports=l},xUwI:function(e,t,n){var i=n("/MtV"),r=n("0mJF").updateCenterAndZoom;i.registerAction({type:"graphRoam",event:"graphRoam",update:"none"},function(e,t){t.eachComponent({mainType:"series",query:e},function(t){var n=t.coordinateSystem,i=r(n,e);t.setCenter&&t.setCenter(i.center),t.setZoom&&t.setZoom(i.zoom)})}),i.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series.graph:focusNodeAdjacency"},function(){}),i.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series.graph:unfocusNodeAdjacency"},function(){})},xWTI:function(e,t,n){var i=n("GKMz"),r=n("KSHG"),a=n("vqvJ").makeInner,o=n("wNlq"),s=o.enableClassExtend,l=o.enableClassCheck,u=n("7n9C"),c=n("7KCQ"),d=n("pwpU"),h=n("CwES"),f=i.mixin,p=a();function m(e,t,n){this.parentModel=t,this.ecModel=n,this.option=e}function g(e,t,n){for(var i=0;i<t.length&&(!t[i]||null!=(e=e&&"object"==typeof e?e[t[i]]:null));i++);return null==e&&n&&(e=n.get(t)),e}function v(e,t){var n=p(e).getParent;return n?n.call(e,t):e.parentModel}m.prototype={constructor:m,init:null,mergeOption:function(e){i.merge(this.option,e,!0)},get:function(e,t){return null==e?this.option:g(this.option,this.parsePath(e),!t&&v(this,e))},getShallow:function(e,t){var n=this.option,i=null==n?n:n[e],r=!t&&v(this,e);return null==i&&r&&(i=r.getShallow(e)),i},getModel:function(e,t){var n;return new m(null==e?this.option:g(this.option,e=this.parsePath(e)),t=t||(n=v(this,e))&&n.getModel(e),this.ecModel)},isEmpty:function(){return null==this.option},restoreData:function(){},clone:function(){return new(0,this.constructor)(i.clone(this.option))},setReadOnly:function(e){},parsePath:function(e){return"string"==typeof e&&(e=e.split(".")),e},customizeGetParent:function(e){p(this).getParent=e},isAnimationEnabled:function(){if(!r.node){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}}},s(m),l(m),f(m,u),f(m,c),f(m,d),f(m,h);var y=m;e.exports=y},xvXB:function(e,t,n){var i=n("L3JW"),r=n("eHVV"),a=n("GKMz").each;function o(e){return parseInt(e,10)}function s(e,t){r.initVML(),this.root=e,this.storage=t;var n=document.createElement("div"),i=document.createElement("div");n.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",i.style.cssText="position:absolute;left:0;top:0;",e.appendChild(n),this._vmlRoot=i,this._vmlViewport=n,this.resize();var a=t.delFromStorage,o=t.addToStorage;t.delFromStorage=function(e){a.call(t,e),e&&e.onRemove&&e.onRemove(i)},t.addToStorage=function(e){e.onAdd&&e.onAdd(i),o.call(t,e)},this._firstPaint=!0}s.prototype={constructor:s,getType:function(){return"vml"},getViewportRoot:function(){return this._vmlViewport},getViewportRootOffset:function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},refresh:function(){var e=this.storage.getDisplayList(!0,!0);this._paintList(e)},_paintList:function(e){for(var t=this._vmlRoot,n=0;n<e.length;n++){var i=e[n];i.invisible||i.ignore?(i.__alreadyNotVisible||i.onRemove(t),i.__alreadyNotVisible=!0):(i.__alreadyNotVisible&&i.onAdd(t),i.__alreadyNotVisible=!1,i.__dirty&&(i.beforeBrush&&i.beforeBrush(),(i.brushVML||i.brush).call(i,t),i.afterBrush&&i.afterBrush())),i.__dirty=!1}this._firstPaint&&(this._vmlViewport.appendChild(t),this._firstPaint=!1)},resize:function(e,t){e=null==e?this._getWidth():e,t=null==t?this._getHeight():t;if(this._width!=e||this._height!=t){this._width=e,this._height=t;var n=this._vmlViewport.style;n.width=e+"px",n.height=t+"px"}},dispose:function(){this.root.innerHTML="",this._vmlRoot=this._vmlViewport=this.storage=null},getWidth:function(){return this._width},getHeight:function(){return this._height},clear:function(){this._vmlViewport&&this.root.removeChild(this._vmlViewport)},_getWidth:function(){var e=this.root,t=e.currentStyle;return(e.clientWidth||o(t.width))-o(t.paddingLeft)-o(t.paddingRight)|0},_getHeight:function(){var e=this.root,t=e.currentStyle;return(e.clientHeight||o(t.height))-o(t.paddingTop)-o(t.paddingBottom)|0}},a(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(e){var t;s.prototype[e]=(t=e,function(){i('In IE8.0 VML mode painter not support method "'+t+'"')})});var l=s;e.exports=l},xwJU:function(e,t,n){"use strict";t.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.default=function(e){return function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return 1===n.length&&"object"===i(n[0])&&(n=n[0]),n&&n.hasOwnProperty||(n={}),e.replace(a,function(t,i,a,o){var s=void 0;return"{"===e[o-1]&&"}"===e[o+t.length]?a:null===(s=(0,r.hasOwn)(n,a)?n[a]:null)||void 0===s?"":s})}};var r=n("I1sU"),a=/(%|)\{([0-9a-zA-Z_]+)\}/g},"yA/l":function(e,t,n){var i=n("abCA"),r=i.round;function a(e){return i.getPrecisionSafe(e)+2}function o(e,t,n){e[t]=Math.max(Math.min(e[t],n[1]),n[0])}function s(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),o(e,0,t),o(e,1,t),e[0]>e[1]&&(e[0]=e[1])}t.intervalScaleNiceTicks=function(e,t,n,o){var l={},u=e[1]-e[0],c=l.interval=i.nice(u/t,!0);null!=n&&c<n&&(c=l.interval=n),null!=o&&c>o&&(c=l.interval=o);var d=l.intervalPrecision=a(c);return s(l.niceTickExtent=[r(Math.ceil(e[0]/c)*c,d),r(Math.floor(e[1]/c)*c,d)],e),l},t.getIntervalPrecision=a,t.fixExtent=s,t.intervalScaleGetTicks=function(e,t,n,i){var a=[];if(!e)return a;t[0]<n[0]&&a.push(t[0]);for(var o=n[0];o<=n[1]&&(a.push(o),(o=r(o+e,i))!==a[a.length-1]);)if(a.length>1e4)return[];return t[1]>(a.length?a[a.length-1]:n[1])&&a.push(t[1]),a}},yEOq:function(e,t,n){var i=n("Q9e6"),r=i.extend({type:"compound",shape:{paths:null},_updatePathDirty:function(){for(var e=this.__dirtyPath,t=this.shape.paths,n=0;n<t.length;n++)e=e||t[n].__dirtyPath;this.__dirtyPath=e,this.__dirty=this.__dirty||e},beforeBrush:function(){this._updatePathDirty();for(var e=this.shape.paths||[],t=this.getGlobalScale(),n=0;n<e.length;n++)e[n].path||e[n].createPathProxy(),e[n].path.setScale(t[0],t[1])},buildPath:function(e,t){for(var n=t.paths||[],i=0;i<n.length;i++)n[i].buildPath(e,n[i].shape,!0)},afterBrush:function(){for(var e=this.shape.paths||[],t=0;t<e.length;t++)e[t].__dirtyPath=!1},getBoundingRect:function(){return this._updatePathDirty(),i.prototype.getBoundingRect.call(this)}});e.exports=r},yEol:function(e,t,n){var i=n("/MtV"),r=n("GKMz");n("QR1y"),n("zQpG"),n("gJqh");var a=n("UUpo"),o=n("eKDm"),s=n("Jkhp");i.registerVisual(r.curry(a,"sunburst")),i.registerLayout(r.curry(o,"sunburst")),i.registerProcessor(r.curry(s,"sunburst"))},yIEC:function(e,t,n){var i=n("wNlq");function r(e){this._setting=e||{},this._extent=[1/0,-1/0],this._interval=0,this.init&&this.init.apply(this,arguments)}r.prototype.parse=function(e){return e},r.prototype.getSetting=function(e){return this._setting[e]},r.prototype.contain=function(e){var t=this._extent;return e>=t[0]&&e<=t[1]},r.prototype.normalize=function(e){var t=this._extent;return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])},r.prototype.scale=function(e){var t=this._extent;return e*(t[1]-t[0])+t[0]},r.prototype.unionExtent=function(e){var t=this._extent;e[0]<t[0]&&(t[0]=e[0]),e[1]>t[1]&&(t[1]=e[1])},r.prototype.unionExtentFromData=function(e,t){this.unionExtent(e.getApproximateExtent(t))},r.prototype.getExtent=function(){return this._extent.slice()},r.prototype.setExtent=function(e,t){var n=this._extent;isNaN(e)||(n[0]=e),isNaN(t)||(n[1]=t)},r.prototype.isBlank=function(){return this._isBlank},r.prototype.setBlank=function(e){this._isBlank=e},r.prototype.getLabel=null,i.enableClassExtend(r),i.enableClassManagement(r,{registerWhenExtend:!0});var a=r;e.exports=a},yMl8:function(e,t,n){var i=n("/MtV");n("hOez"),n("r2sT"),i.registerPreprocessor(function(e){e.markPoint=e.markPoint||{}})},yRAu:function(e,t,n){var i=n("8JGq"),r=n("Unbz"),a=n("Uyw1"),o="Expected a function",s=Math.max,l=Math.min;e.exports=function(e,t,n){var u,c,d,h,f,p,m=0,g=!1,v=!1,y=!0;if("function"!=typeof e)throw new TypeError(o);function b(t){var n=u,i=c;return u=c=void 0,m=t,h=e.apply(i,n)}function _(e){var n=e-p;return void 0===p||n>=t||n<0||v&&e-m>=d}function x(){var e=r();if(_(e))return w(e);f=setTimeout(x,function(e){var n=t-(e-p);return v?l(n,d-(e-m)):n}(e))}function w(e){return f=void 0,y&&u?b(e):(u=c=void 0,h)}function S(){var e=r(),n=_(e);if(u=arguments,c=this,p=e,n){if(void 0===f)return function(e){return m=e,f=setTimeout(x,t),g?b(e):h}(p);if(v)return f=setTimeout(x,t),b(p)}return void 0===f&&(f=setTimeout(x,t)),h}return t=a(t)||0,i(n)&&(g=!!n.leading,d=(v="maxWait"in n)?s(a(n.maxWait)||0,t):d,y="trailing"in n?!!n.trailing:y),S.cancel=function(){void 0!==f&&clearTimeout(f),m=0,u=p=c=f=void 0},S.flush=function(){return void 0===f?h:w(r())},S}},yX3w:function(e,t,n){var i=n("YepE"),r=n("luYz"),a=n("BwzW"),o=n("OGtO"),s=n("T2AC").devicePixelRatio,l={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},u=[],c=[],d=[],h=[],f=Math.min,p=Math.max,m=Math.cos,g=Math.sin,v=Math.sqrt,y=Math.abs,b="undefined"!=typeof Float32Array,_=function(e){this._saveData=!e,this._saveData&&(this.data=[]),this._ctx=null};_.prototype={constructor:_,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(e,t){this._ux=y(1/s/e)||0,this._uy=y(1/s/t)||0},getContext:function(){return this._ctx},beginPath:function(e){return this._ctx=e,e&&e.beginPath(),e&&(this.dpr=e.dpr),this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(e,t){return this.addData(l.M,e,t),this._ctx&&this._ctx.moveTo(e,t),this._x0=e,this._y0=t,this._xi=e,this._yi=t,this},lineTo:function(e,t){var n=y(e-this._xi)>this._ux||y(t-this._yi)>this._uy||this._len<5;return this.addData(l.L,e,t),this._ctx&&n&&(this._needsDash()?this._dashedLineTo(e,t):this._ctx.lineTo(e,t)),n&&(this._xi=e,this._yi=t),this},bezierCurveTo:function(e,t,n,i,r,a){return this.addData(l.C,e,t,n,i,r,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(e,t,n,i,r,a):this._ctx.bezierCurveTo(e,t,n,i,r,a)),this._xi=r,this._yi=a,this},quadraticCurveTo:function(e,t,n,i){return this.addData(l.Q,e,t,n,i),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(e,t,n,i):this._ctx.quadraticCurveTo(e,t,n,i)),this._xi=n,this._yi=i,this},arc:function(e,t,n,i,r,a){return this.addData(l.A,e,t,n,n,i,r-i,0,a?0:1),this._ctx&&this._ctx.arc(e,t,n,i,r,a),this._xi=m(r)*n+e,this._yi=g(r)*n+e,this},arcTo:function(e,t,n,i,r){return this._ctx&&this._ctx.arcTo(e,t,n,i,r),this},rect:function(e,t,n,i){return this._ctx&&this._ctx.rect(e,t,n,i),this.addData(l.R,e,t,n,i),this},closePath:function(){this.addData(l.Z);var e=this._ctx,t=this._x0,n=this._y0;return e&&(this._needsDash()&&this._dashedLineTo(t,n),e.closePath()),this._xi=t,this._yi=n,this},fill:function(e){e&&e.fill(),this.toStatic()},stroke:function(e){e&&e.stroke(),this.toStatic()},setLineDash:function(e){if(e instanceof Array){this._lineDash=e,this._dashIdx=0;for(var t=0,n=0;n<e.length;n++)t+=e[n];this._dashSum=t}return this},setLineDashOffset:function(e){return this._dashOffset=e,this},len:function(){return this._len},setData:function(e){var t=e.length;this.data&&this.data.length==t||!b||(this.data=new Float32Array(t));for(var n=0;n<t;n++)this.data[n]=e[n];this._len=t},appendPath:function(e){e instanceof Array||(e=[e]);for(var t=e.length,n=0,i=this._len,r=0;r<t;r++)n+=e[r].len();b&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<t;r++)for(var a=e[r].data,o=0;o<a.length;o++)this.data[i++]=a[o];this._len=i},addData:function(e){if(this._saveData){var t=this.data;this._len+arguments.length>t.length&&(this._expandData(),t=this.data);for(var n=0;n<arguments.length;n++)t[this._len++]=arguments[n];this._prevCmd=e}},_expandData:function(){if(!(this.data instanceof Array)){for(var e=[],t=0;t<this._len;t++)e[t]=this.data[t];this.data=e}},_needsDash:function(){return this._lineDash},_dashedLineTo:function(e,t){var n,i,r=this._dashSum,a=this._dashOffset,o=this._lineDash,s=this._ctx,l=this._xi,u=this._yi,c=e-l,d=t-u,h=v(c*c+d*d),m=l,g=u,y=o.length;for(c/=h,d/=h,a<0&&(a=r+a),m-=(a%=r)*c,g-=a*d;c>0&&m<=e||c<0&&m>=e||0==c&&(d>0&&g<=t||d<0&&g>=t);)m+=c*(n=o[i=this._dashIdx]),g+=d*n,this._dashIdx=(i+1)%y,c>0&&m<l||c<0&&m>l||d>0&&g<u||d<0&&g>u||s[i%2?"moveTo":"lineTo"](c>=0?f(m,e):p(m,e),d>=0?f(g,t):p(g,t));c=m-e,d=g-t,this._dashOffset=-v(c*c+d*d)},_dashedBezierTo:function(e,t,n,r,a,o){var s,l,u,c,d,h=this._dashSum,f=this._dashOffset,p=this._lineDash,m=this._ctx,g=this._xi,y=this._yi,b=i.cubicAt,_=0,x=this._dashIdx,w=p.length,S=0;for(f<0&&(f=h+f),f%=h,s=0;s<1;s+=.1)l=b(g,e,n,a,s+.1)-b(g,e,n,a,s),u=b(y,t,r,o,s+.1)-b(y,t,r,o,s),_+=v(l*l+u*u);for(;x<w&&!((S+=p[x])>f);x++);for(s=(S-f)/_;s<=1;)c=b(g,e,n,a,s),d=b(y,t,r,o,s),x%2?m.moveTo(c,d):m.lineTo(c,d),s+=p[x]/_,x=(x+1)%w;x%2!=0&&m.lineTo(a,o),l=a-c,u=o-d,this._dashOffset=-v(l*l+u*u)},_dashedQuadraticTo:function(e,t,n,i){var r=n,a=i;n=(n+2*e)/3,i=(i+2*t)/3,e=(this._xi+2*e)/3,t=(this._yi+2*t)/3,this._dashedBezierTo(e,t,n,i,r,a)},toStatic:function(){var e=this.data;e instanceof Array&&(e.length=this._len,b&&(this.data=new Float32Array(e)))},getBoundingRect:function(){u[0]=u[1]=d[0]=d[1]=Number.MAX_VALUE,c[0]=c[1]=h[0]=h[1]=-Number.MAX_VALUE;for(var e=this.data,t=0,n=0,i=0,s=0,f=0;f<e.length;){var p=e[f++];switch(1==f&&(i=t=e[f],s=n=e[f+1]),p){case l.M:t=i=e[f++],n=s=e[f++],d[0]=i,d[1]=s,h[0]=i,h[1]=s;break;case l.L:a.fromLine(t,n,e[f],e[f+1],d,h),t=e[f++],n=e[f++];break;case l.C:a.fromCubic(t,n,e[f++],e[f++],e[f++],e[f++],e[f],e[f+1],d,h),t=e[f++],n=e[f++];break;case l.Q:a.fromQuadratic(t,n,e[f++],e[f++],e[f],e[f+1],d,h),t=e[f++],n=e[f++];break;case l.A:var v=e[f++],y=e[f++],b=e[f++],_=e[f++],x=e[f++],w=e[f++]+x,S=(e[f++],1-e[f++]);1==f&&(i=m(x)*b+v,s=g(x)*_+y),a.fromArc(v,y,b,_,x,w,S,d,h),t=m(w)*b+v,n=g(w)*_+y;break;case l.R:i=t=e[f++],s=n=e[f++];var C=e[f++],M=e[f++];a.fromLine(i,s,i+C,s+M,d,h);break;case l.Z:t=i,n=s}r.min(u,u,d),r.max(c,c,h)}return 0===f&&(u[0]=u[1]=c[0]=c[1]=0),new o(u[0],u[1],c[0]-u[0],c[1]-u[1])},rebuildPath:function(e){for(var t,n,i,r,a,o,s=this.data,u=this._ux,c=this._uy,d=this._len,h=0;h<d;){var f=s[h++];switch(1==h&&(t=i=s[h],n=r=s[h+1]),f){case l.M:t=i=s[h++],n=r=s[h++],e.moveTo(i,r);break;case l.L:a=s[h++],o=s[h++],(y(a-i)>u||y(o-r)>c||h===d-1)&&(e.lineTo(a,o),i=a,r=o);break;case l.C:e.bezierCurveTo(s[h++],s[h++],s[h++],s[h++],s[h++],s[h++]),i=s[h-2],r=s[h-1];break;case l.Q:e.quadraticCurveTo(s[h++],s[h++],s[h++],s[h++]),i=s[h-2],r=s[h-1];break;case l.A:var p=s[h++],v=s[h++],b=s[h++],_=s[h++],x=s[h++],w=s[h++],S=s[h++],C=s[h++],M=b>_?b:_,k=b>_?1:b/_,T=b>_?_/b:1,A=x+w;Math.abs(b-_)>.001?(e.translate(p,v),e.rotate(S),e.scale(k,T),e.arc(0,0,M,x,A,1-C),e.scale(1/k,1/T),e.rotate(-S),e.translate(-p,-v)):e.arc(p,v,M,x,A,1-C),1==h&&(t=m(x)*b+p,n=g(x)*_+v),i=m(A)*b+p,r=g(A)*_+v;break;case l.R:t=i=s[h],n=r=s[h+1],e.rect(s[h++],s[h++],s[h++],s[h++]);break;case l.Z:e.closePath(),i=t,r=n}}}},_.CMD=l;var x=_;e.exports=x},yXz6:function(e,t,n){var i=n("Q9e6"),r=n("vO1E"),a=i.extend({type:"rect",shape:{r:0,x:0,y:0,width:0,height:0},buildPath:function(e,t){var n=t.x,i=t.y,a=t.width,o=t.height;t.r?r.buildPath(e,t):e.rect(n,i,a,o),e.closePath()}});e.exports=a},yayn:function(e,t,n){var i=n("Q9e6").extend({type:"circle",shape:{cx:0,cy:0,r:0},buildPath:function(e,t,n){n&&e.moveTo(t.cx+t.r,t.cy),e.arc(t.cx,t.cy,t.r,0,2*Math.PI,!0)}});e.exports=i},yrDz:function(e,t,n){"use strict";var i=n("WwGG"),r=n("FITv"),a=n("OXaN"),o=n("kDTw"),s=n("V2W7"),l=n("CFGK"),u=n("kksE"),c=n("YW8S");r(r.S+r.F*!n("75+0")(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,r,d,h=a(e),f="function"==typeof this?this:Array,p=arguments.length,m=p>1?arguments[1]:void 0,g=void 0!==m,v=0,y=c(h);if(g&&(m=i(m,p>2?arguments[2]:void 0,2)),void 0==y||f==Array&&s(y))for(n=new f(t=l(h.length));t>v;v++)u(n,v,g?m(h[v],v):h[v]);else for(d=y.call(h),n=new f;!(r=d.next()).done;v++)u(n,v,g?o(d,m,[r.value,v],!0):r.value);return n.length=v,n}})},z1hY:function(e,t,n){"use strict";var i=n("8r5Y"),r=n("4A9Y"),a=n("JotW"),o=n("hN2N");function s(e){var t=new a(e),n=r(a.prototype.request,t);return i.extend(n,a.prototype,t),i.extend(n,t),n}var l=s(o);l.Axios=a,l.create=function(e){return s(i.merge(o,e))},l.Cancel=n("fEpO"),l.CancelToken=n("/egZ"),l.isCancel=n("K3AH"),l.all=function(e){return Promise.all(e)},l.spread=n("9JTW"),e.exports=l,e.exports.default=l},z1q5:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("KSHG"),o=n("vqvJ"),s=n("uF0F"),l=n("we00"),u=r.each,c=s.eachAxisDim;function d(e){var t={};return u(["start","end","startValue","endValue","throttle"],function(n){e.hasOwnProperty(n)&&(t[n]=e[n])}),t}function h(e,t){var n=e._rangePropMode,i=e.get("rangeMode");u([["start","startValue"],["end","endValue"]],function(e,r){var a=null!=t[e[0]],o=null!=t[e[1]];a&&!o?n[r]="percent":!a&&o?n[r]="value":i?n[r]=i[r]:a&&(n[r]="percent")})}var f=i.extendComponentModel({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(e,t,n){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var i=d(e);this.mergeDefaultAndTheme(e,n),this.doInit(i)},mergeOption:function(e){var t=d(e);r.merge(this.option,e,!0),this.doInit(t)},doInit:function(e){var t=this.option;a.canvasSupported||(t.realtime=!1),this._setDefaultThrottle(e),h(this,e),u([["start","startValue"],["end","endValue"]],function(e,n){"value"===this._rangePropMode[n]&&(t[e[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var e=this._axisProxies;this.eachTargetAxis(function(t,n,i,r){var a=this.dependentModels[t.axis][n],o=a.__dzAxisProxy||(a.__dzAxisProxy=new l(t.name,n,this,r));e[t.name+"_"+n]=o},this)},_resetTarget:function(){var e=this.option,t=this._judgeAutoMode();c(function(t){var n=t.axisIndex;e[n]=o.normalizeToArray(e[n])},this),"axisIndex"===t?this._autoSetAxisIndex():"orient"===t&&this._autoSetOrient()},_judgeAutoMode:function(){var e=this.option,t=!1;c(function(n){null!=e[n.axisIndex]&&(t=!0)},this);var n=e.orient;return null==n&&t?"orient":t?void 0:(null==n&&(e.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var e=!0,t=this.get("orient",!0),n=this.option,i=this.dependentModels;if(e){var a="vertical"===t?"y":"x";i[a+"Axis"].length?(n[a+"AxisIndex"]=[0],e=!1):u(i.singleAxis,function(i){e&&i.get("orient",!0)===t&&(n.singleAxisIndex=[i.componentIndex],e=!1)})}e&&c(function(t){if(e){var i=[],r=this.dependentModels[t.axis];if(r.length&&!i.length)for(var a=0,o=r.length;a<o;a++)"category"===r[a].get("type")&&i.push(a);n[t.axisIndex]=i,i.length&&(e=!1)}},this),e&&this.ecModel.eachSeries(function(e){this._isSeriesHasAllAxesTypeOf(e,"value")&&c(function(t){var i=n[t.axisIndex],a=e.get(t.axisIndex),o=e.get(t.axisId);a=e.ecModel.queryComponents({mainType:t.axis,index:a,id:o})[0].componentIndex,r.indexOf(i,a)<0&&i.push(a)})},this)},_autoSetOrient:function(){var e;this.eachTargetAxis(function(t){!e&&(e=t.name)},this),this.option.orient="y"===e?"vertical":"horizontal"},_isSeriesHasAllAxesTypeOf:function(e,t){var n=!0;return c(function(i){var r=e.get(i.axisIndex),a=this.dependentModels[i.axis][r];a&&a.get("type")===t||(n=!1)},this),n},_setDefaultThrottle:function(e){if(e.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var t=this.ecModel.option;this.option.throttle=t.animation&&t.animationDurationUpdate>0?100:20}},getFirstTargetAxisModel:function(){var e;return c(function(t){if(null==e){var n=this.get(t.axisIndex);n.length&&(e=this.dependentModels[t.axis][n[0]])}},this),e},eachTargetAxis:function(e,t){var n=this.ecModel;c(function(i){u(this.get(i.axisIndex),function(r){e.call(t,i,r,this,n)},this)},this)},getAxisProxy:function(e,t){return this._axisProxies[e+"_"+t]},getAxisModel:function(e,t){var n=this.getAxisProxy(e,t);return n&&n.getAxisModel()},setRawRange:function(e,t){var n=this.option;u([["start","startValue"],["end","endValue"]],function(t){null==e[t[0]]&&null==e[t[1]]||(n[t[0]]=e[t[0]],n[t[1]]=e[t[1]])},this),!t&&h(this,e)},getPercentRange:function(){var e=this.findRepresentativeAxisProxy();if(e)return e.getDataPercentWindow()},getValueRange:function(e,t){if(null!=e||null!=t)return this.getAxisProxy(e,t).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(e){if(e)return e.__dzAxisProxy;var t=this._axisProxies;for(var n in t)if(t.hasOwnProperty(n)&&t[n].hostedBy(this))return t[n];for(var n in t)if(t.hasOwnProperty(n)&&!t[n].hostedBy(this))return t[n]},getRangePropMode:function(){return this._rangePropMode.slice()}});e.exports=f},z7iO:function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},zAnu:function(e,t,n){"use strict";var i=n("6OxN"),r=n("z7iO"),a=n("ZVlJ"),o=n("/r4/");e.exports=n("uH+j")(Array,"Array",function(e,t){this._t=o(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,r(1)):r(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),a.Arguments=a.Array,i("keys"),i("values"),i("entries")},zBeA:function(e,t,n){n("KJ1c").__DEV__;var i=n("/MtV"),r=n("GKMz"),a=n("KSHG"),o=n("vqvJ"),s=n("uxQp"),l=n("xPAV"),u=s.addCommas,c=s.encodeHTML;function d(e){o.defaultEmphasis(e,"label",["show"])}var h=i.extendComponentModel({type:"marker",dependencies:["series","grid","polar","geo"],init:function(e,t,n,i){this.mergeDefaultAndTheme(e,n),this.mergeOption(e,n,i.createdBySelf,!0)},isAnimationEnabled:function(){if(a.node)return!1;var e=this.__hostSeries;return this.getShallow("animation")&&e&&e.isAnimationEnabled()},mergeOption:function(e,t,n,i){var a=this.constructor,o=this.mainType+"Model";n||t.eachSeries(function(e){var n=e.get(this.mainType,!0),s=e[o];n&&n.data?(s?s.mergeOption(n,t,!0):(i&&d(n),r.each(n.data,function(e){e instanceof Array?(d(e[0]),d(e[1])):d(e)}),s=new a(n,this,t),r.extend(s,{mainType:this.mainType,seriesIndex:e.seriesIndex,name:e.name,createdBySelf:!0}),s.__hostSeries=e),e[o]=s):e[o]=null},this)},formatTooltip:function(e){var t=this.getData(),n=this.getRawValue(e),i=r.isArray(n)?r.map(n,u).join(", "):u(n),a=t.getName(e),o=c(this.name);return(null!=n||a)&&(o+="<br />"),a&&(o+=c(a),null!=n&&(o+=" : ")),null!=n&&(o+=c(i)),o},getData:function(){return this._data},setData:function(e){this._data=e}});r.mixin(h,l);var f=h;e.exports=f},zDlt:function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},zHd6:function(e,t,n){var i=n("GKMz");t.createWrap=function(){var e,t=[],n={};return{add:function(e,r,a,o,s){return i.isString(o)&&(s=o,o=0),!n[e.id]&&(n[e.id]=1,t.push({el:e,target:r,time:a,delay:o,easing:s}),!0)},done:function(t){return e=t,this},start:function(){for(var i=t.length,r=0,a=t.length;r<a;r++){var o=t[r];o.el.animateTo(o.target,o.time,o.delay,o.easing,s)}return this;function s(){--i||(t.length=0,n={},e&&e())}}}}},zO6J:function(e,t,n){"use strict";
-/**
-  * vue-router v3.0.1
-  * (c) 2017 Evan You
-  * @license MIT
-  */function i(e,t){0}function r(e){return Object.prototype.toString.call(e).indexOf("Error")>-1}var a={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(e,t){var n=t.props,i=t.children,r=t.parent,a=t.data;a.routerView=!0;for(var o=r.$createElement,s=n.name,l=r.$route,u=r._routerViewCache||(r._routerViewCache={}),c=0,d=!1;r&&r._routerRoot!==r;)r.$vnode&&r.$vnode.data.routerView&&c++,r._inactive&&(d=!0),r=r.$parent;if(a.routerViewDepth=c,d)return o(u[s],a,i);var h=l.matched[c];if(!h)return u[s]=null,o();var f=u[s]=h.components[s];a.registerRouteInstance=function(e,t){var n=h.instances[s];(t&&n!==e||!t&&n===e)&&(h.instances[s]=t)},(a.hook||(a.hook={})).prepatch=function(e,t){h.instances[s]=t.componentInstance};var p=a.props=function(e,t){switch(typeof t){case"undefined":return;case"object":return t;case"function":return t(e);case"boolean":return t?e.params:void 0;default:0}}(l,h.props&&h.props[s]);if(p){p=a.props=function(e,t){for(var n in t)e[n]=t[n];return e}({},p);var m=a.attrs=a.attrs||{};for(var g in p)f.props&&g in f.props||(m[g]=p[g],delete p[g])}return o(f,a,i)}};var o=/[!'()*]/g,s=function(e){return"%"+e.charCodeAt(0).toString(16)},l=/%2C/g,u=function(e){return encodeURIComponent(e).replace(o,s).replace(l,",")},c=decodeURIComponent;function d(e){var t={};return(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach(function(e){var n=e.replace(/\+/g," ").split("="),i=c(n.shift()),r=n.length>0?c(n.join("=")):null;void 0===t[i]?t[i]=r:Array.isArray(t[i])?t[i].push(r):t[i]=[t[i],r]}),t):t}function h(e){var t=e?Object.keys(e).map(function(t){var n=e[t];if(void 0===n)return"";if(null===n)return u(t);if(Array.isArray(n)){var i=[];return n.forEach(function(e){void 0!==e&&(null===e?i.push(u(t)):i.push(u(t)+"="+u(e)))}),i.join("&")}return u(t)+"="+u(n)}).filter(function(e){return e.length>0}).join("&"):null;return t?"?"+t:""}var f=/\/?$/;function p(e,t,n,i){var r=i&&i.options.stringifyQuery,a=t.query||{};try{a=m(a)}catch(e){}var o={name:t.name||e&&e.name,meta:e&&e.meta||{},path:t.path||"/",hash:t.hash||"",query:a,params:t.params||{},fullPath:v(t,r),matched:e?function(e){var t=[];for(;e;)t.unshift(e),e=e.parent;return t}(e):[]};return n&&(o.redirectedFrom=v(n,r)),Object.freeze(o)}function m(e){if(Array.isArray(e))return e.map(m);if(e&&"object"==typeof e){var t={};for(var n in e)t[n]=m(e[n]);return t}return e}var g=p(null,{path:"/"});function v(e,t){var n=e.path,i=e.query;void 0===i&&(i={});var r=e.hash;return void 0===r&&(r=""),(n||"/")+(t||h)(i)+r}function y(e,t){return t===g?e===t:!!t&&(e.path&&t.path?e.path.replace(f,"")===t.path.replace(f,"")&&e.hash===t.hash&&b(e.query,t.query):!(!e.name||!t.name)&&(e.name===t.name&&e.hash===t.hash&&b(e.query,t.query)&&b(e.params,t.params)))}function b(e,t){if(void 0===e&&(e={}),void 0===t&&(t={}),!e||!t)return e===t;var n=Object.keys(e),i=Object.keys(t);return n.length===i.length&&n.every(function(n){var i=e[n],r=t[n];return"object"==typeof i&&"object"==typeof r?b(i,r):String(i)===String(r)})}var _,x=[String,Object],w=[String,Array],S={name:"router-link",props:{to:{type:x,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:w,default:"click"}},render:function(e){var t=this,n=this.$router,i=this.$route,r=n.resolve(this.to,i,this.append),a=r.location,o=r.route,s=r.href,l={},u=n.options.linkActiveClass,c=n.options.linkExactActiveClass,d=null==u?"router-link-active":u,h=null==c?"router-link-exact-active":c,m=null==this.activeClass?d:this.activeClass,g=null==this.exactActiveClass?h:this.exactActiveClass,v=a.path?p(null,a,null,n):o;l[g]=y(i,v),l[m]=this.exact?l[g]:function(e,t){return 0===e.path.replace(f,"/").indexOf(t.path.replace(f,"/"))&&(!t.hash||e.hash===t.hash)&&function(e,t){for(var n in t)if(!(n in e))return!1;return!0}(e.query,t.query)}(i,v);var b=function(e){C(e)&&(t.replace?n.replace(a):n.push(a))},x={click:C};Array.isArray(this.event)?this.event.forEach(function(e){x[e]=b}):x[this.event]=b;var w={class:l};if("a"===this.tag)w.on=x,w.attrs={href:s};else{var S=function e(t){if(t)for(var n,i=0;i<t.length;i++){if("a"===(n=t[i]).tag)return n;if(n.children&&(n=e(n.children)))return n}}(this.$slots.default);if(S){S.isStatic=!1;var M=_.util.extend;(S.data=M({},S.data)).on=x,(S.data.attrs=M({},S.data.attrs)).href=s}else w.on=x}return e(this.tag,w,this.$slots.default)}};function C(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.defaultPrevented||void 0!==e.button&&0!==e.button)){if(e.currentTarget&&e.currentTarget.getAttribute){var t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function M(e){if(!M.installed||_!==e){M.installed=!0,_=e;var t=function(e){return void 0!==e},n=function(e,n){var i=e.$options._parentVnode;t(i)&&t(i=i.data)&&t(i=i.registerRouteInstance)&&i(e,n)};e.mixin({beforeCreate:function(){t(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,n(this,this)},destroyed:function(){n(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("router-view",a),e.component("router-link",S);var i=e.config.optionMergeStrategies;i.beforeRouteEnter=i.beforeRouteLeave=i.beforeRouteUpdate=i.created}}var k="undefined"!=typeof window;function T(e,t,n){var i=e.charAt(0);if("/"===i)return e;if("?"===i||"#"===i)return t+e;var r=t.split("/");n&&r[r.length-1]||r.pop();for(var a=e.replace(/^\//,"").split("/"),o=0;o<a.length;o++){var s=a[o];".."===s?r.pop():"."!==s&&r.push(s)}return""!==r[0]&&r.unshift(""),r.join("/")}function A(e){return e.replace(/\/\//g,"/")}var I=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)},E=H,D=N,O=function(e,t){return F(N(e,t))},P=F,L=j,R=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function N(e,t){for(var n,i=[],r=0,a=0,o="",s=t&&t.delimiter||"/";null!=(n=R.exec(e));){var l=n[0],u=n[1],c=n.index;if(o+=e.slice(a,c),a=c+l.length,u)o+=u[1];else{var d=e[a],h=n[2],f=n[3],p=n[4],m=n[5],g=n[6],v=n[7];o&&(i.push(o),o="");var y=null!=h&&null!=d&&d!==h,b="+"===g||"*"===g,_="?"===g||"*"===g,x=n[2]||s,w=p||m;i.push({name:f||r++,prefix:h||"",delimiter:x,optional:_,repeat:b,partial:y,asterisk:!!v,pattern:w?V(w):v?".*":"[^"+z(x)+"]+?"})}}return a<e.length&&(o+=e.substr(a)),o&&i.push(o),i}function B(e){return encodeURI(e).replace(/[\/?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function F(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"==typeof e[n]&&(t[n]=new RegExp("^(?:"+e[n].pattern+")$"));return function(n,i){for(var r="",a=n||{},o=(i||{}).pretty?B:encodeURIComponent,s=0;s<e.length;s++){var l=e[s];if("string"!=typeof l){var u,c=a[l.name];if(null==c){if(l.optional){l.partial&&(r+=l.prefix);continue}throw new TypeError('Expected "'+l.name+'" to be defined')}if(I(c)){if(!l.repeat)throw new TypeError('Expected "'+l.name+'" to not repeat, but received `'+JSON.stringify(c)+"`");if(0===c.length){if(l.optional)continue;throw new TypeError('Expected "'+l.name+'" to not be empty')}for(var d=0;d<c.length;d++){if(u=o(c[d]),!t[s].test(u))throw new TypeError('Expected all "'+l.name+'" to match "'+l.pattern+'", but received `'+JSON.stringify(u)+"`");r+=(0===d?l.prefix:l.delimiter)+u}}else{if(u=l.asterisk?encodeURI(c).replace(/[?#]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}):o(c),!t[s].test(u))throw new TypeError('Expected "'+l.name+'" to match "'+l.pattern+'", but received "'+u+'"');r+=l.prefix+u}}else r+=l}return r}}function z(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function V(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function $(e,t){return e.keys=t,e}function G(e){return e.sensitive?"":"i"}function j(e,t,n){I(t)||(n=t||n,t=[]);for(var i=(n=n||{}).strict,r=!1!==n.end,a="",o=0;o<e.length;o++){var s=e[o];if("string"==typeof s)a+=z(s);else{var l=z(s.prefix),u="(?:"+s.pattern+")";t.push(s),s.repeat&&(u+="(?:"+l+u+")*"),a+=u=s.optional?s.partial?l+"("+u+")?":"(?:"+l+"("+u+"))?":l+"("+u+")"}}var c=z(n.delimiter||"/"),d=a.slice(-c.length)===c;return i||(a=(d?a.slice(0,-c.length):a)+"(?:"+c+"(?=$))?"),a+=r?"$":i&&d?"":"(?="+c+"|$)",$(new RegExp("^"+a,G(n)),t)}function H(e,t,n){return I(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var i=0;i<n.length;i++)t.push({name:i,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return $(e,t)}(e,t):I(e)?function(e,t,n){for(var i=[],r=0;r<e.length;r++)i.push(H(e[r],t,n).source);return $(new RegExp("(?:"+i.join("|")+")",G(n)),t)}(e,t,n):function(e,t,n){return j(N(e,n),t,n)}(e,t,n)}E.parse=D,E.compile=O,E.tokensToFunction=P,E.tokensToRegExp=L;var W=Object.create(null);function U(e,t,n){try{return(W[e]||(W[e]=E.compile(e)))(t||{},{pretty:!0})}catch(e){return""}}function K(e,t,n,i){var r=t||[],a=n||Object.create(null),o=i||Object.create(null);e.forEach(function(e){!function e(t,n,i,r,a,o){var s=r.path;var l=r.name;0;var u=r.pathToRegexpOptions||{};var c=function(e,t,n){n||(e=e.replace(/\/$/,""));if("/"===e[0])return e;if(null==t)return e;return A(t.path+"/"+e)}(s,a,u.strict);"boolean"==typeof r.caseSensitive&&(u.sensitive=r.caseSensitive);var d={path:c,regex:function(e,t){var n=E(e,[],t);return n}(c,u),components:r.components||{default:r.component},instances:{},name:l,parent:a,matchAs:o,redirect:r.redirect,beforeEnter:r.beforeEnter,meta:r.meta||{},props:null==r.props?{}:r.components?r.props:{default:r.props}};r.children&&r.children.forEach(function(r){var a=o?A(o+"/"+r.path):void 0;e(t,n,i,r,d,a)});if(void 0!==r.alias){var h=Array.isArray(r.alias)?r.alias:[r.alias];h.forEach(function(o){var s={path:o,children:r.children};e(t,n,i,s,a,d.path||"/")})}n[d.path]||(t.push(d.path),n[d.path]=d);l&&(i[l]||(i[l]=d))}(r,a,o,e)});for(var s=0,l=r.length;s<l;s++)"*"===r[s]&&(r.push(r.splice(s,1)[0]),l--,s--);return{pathList:r,pathMap:a,nameMap:o}}function q(e,t,n,i){var r="string"==typeof e?{path:e}:e;if(r.name||r._normalized)return r;if(!r.path&&r.params&&t){(r=Y({},r))._normalized=!0;var a=Y(Y({},t.params),r.params);if(t.name)r.name=t.name,r.params=a;else if(t.matched.length){var o=t.matched[t.matched.length-1].path;r.path=U(o,a,t.path)}else 0;return r}var s=function(e){var t="",n="",i=e.indexOf("#");i>=0&&(t=e.slice(i),e=e.slice(0,i));var r=e.indexOf("?");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{path:e,query:n,hash:t}}(r.path||""),l=t&&t.path||"/",u=s.path?T(s.path,l,n||r.append):l,c=function(e,t,n){void 0===t&&(t={});var i,r=n||d;try{i=r(e||"")}catch(e){i={}}for(var a in t)i[a]=t[a];return i}(s.query,r.query,i&&i.options.parseQuery),h=r.hash||s.hash;return h&&"#"!==h.charAt(0)&&(h="#"+h),{_normalized:!0,path:u,query:c,hash:h}}function Y(e,t){for(var n in t)e[n]=t[n];return e}function Z(e,t){var n=K(e),i=n.pathList,r=n.pathMap,a=n.nameMap;function o(e,n,o){var s=q(e,n,!1,t),u=s.name;if(u){var c=a[u];if(!c)return l(null,s);var d=c.regex.keys.filter(function(e){return!e.optional}).map(function(e){return e.name});if("object"!=typeof s.params&&(s.params={}),n&&"object"==typeof n.params)for(var h in n.params)!(h in s.params)&&d.indexOf(h)>-1&&(s.params[h]=n.params[h]);if(c)return s.path=U(c.path,s.params),l(c,s,o)}else if(s.path){s.params={};for(var f=0;f<i.length;f++){var p=i[f],m=r[p];if(X(m.regex,s.path,s.params))return l(m,s,o)}}return l(null,s)}function s(e,n){var i=e.redirect,r="function"==typeof i?i(p(e,n,null,t)):i;if("string"==typeof r&&(r={path:r}),!r||"object"!=typeof r)return l(null,n);var s=r,u=s.name,c=s.path,d=n.query,h=n.hash,f=n.params;if(d=s.hasOwnProperty("query")?s.query:d,h=s.hasOwnProperty("hash")?s.hash:h,f=s.hasOwnProperty("params")?s.params:f,u){a[u];return o({_normalized:!0,name:u,query:d,hash:h,params:f},void 0,n)}if(c){var m=function(e,t){return T(e,t.parent?t.parent.path:"/",!0)}(c,e);return o({_normalized:!0,path:U(m,f),query:d,hash:h},void 0,n)}return l(null,n)}function l(e,n,i){return e&&e.redirect?s(e,i||n):e&&e.matchAs?function(e,t,n){var i=o({_normalized:!0,path:U(n,t.params)});if(i){var r=i.matched,a=r[r.length-1];return t.params=i.params,l(a,t)}return l(null,t)}(0,n,e.matchAs):p(e,n,i,t)}return{match:o,addRoutes:function(e){K(e,i,r,a)}}}function X(e,t,n){var i=t.match(e);if(!i)return!1;if(!n)return!0;for(var r=1,a=i.length;r<a;++r){var o=e.keys[r-1],s="string"==typeof i[r]?decodeURIComponent(i[r]):i[r];o&&(n[o.name]=s)}return!0}var J=Object.create(null);function Q(){window.history.replaceState({key:de()},""),window.addEventListener("popstate",function(e){var t;te(),e.state&&e.state.key&&(t=e.state.key,ue=t)})}function ee(e,t,n,i){if(e.app){var r=e.options.scrollBehavior;r&&e.app.$nextTick(function(){var e=function(){var e=de();if(e)return J[e]}(),a=r(t,n,i?e:null);a&&("function"==typeof a.then?a.then(function(t){ae(t,e)}).catch(function(e){0}):ae(a,e))})}}function te(){var e=de();e&&(J[e]={x:window.pageXOffset,y:window.pageYOffset})}function ne(e){return re(e.x)||re(e.y)}function ie(e){return{x:re(e.x)?e.x:window.pageXOffset,y:re(e.y)?e.y:window.pageYOffset}}function re(e){return"number"==typeof e}function ae(e,t){var n,i="object"==typeof e;if(i&&"string"==typeof e.selector){var r=document.querySelector(e.selector);if(r){var a=e.offset&&"object"==typeof e.offset?e.offset:{};t=function(e,t){var n=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect();return{x:i.left-n.left-t.x,y:i.top-n.top-t.y}}(r,a={x:re((n=a).x)?n.x:0,y:re(n.y)?n.y:0})}else ne(e)&&(t=ie(e))}else i&&ne(e)&&(t=ie(e));t&&window.scrollTo(t.x,t.y)}var oe,se=k&&((-1===(oe=window.navigator.userAgent).indexOf("Android 2.")&&-1===oe.indexOf("Android 4.0")||-1===oe.indexOf("Mobile Safari")||-1!==oe.indexOf("Chrome")||-1!==oe.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history),le=k&&window.performance&&window.performance.now?window.performance:Date,ue=ce();function ce(){return le.now().toFixed(3)}function de(){return ue}function he(e,t){te();var n=window.history;try{t?n.replaceState({key:ue},"",e):(ue=ce(),n.pushState({key:ue},"",e))}catch(n){window.location[t?"replace":"assign"](e)}}function fe(e){he(e,!0)}function pe(e,t,n){var i=function(r){r>=e.length?n():e[r]?t(e[r],function(){i(r+1)}):i(r+1)};i(0)}function me(e){return function(t,n,i){var a=!1,o=0,s=null;ge(e,function(e,t,n,l){if("function"==typeof e&&void 0===e.cid){a=!0,o++;var u,c=be(function(t){var r;((r=t).__esModule||ye&&"Module"===r[Symbol.toStringTag])&&(t=t.default),e.resolved="function"==typeof t?t:_.extend(t),n.components[l]=t,--o<=0&&i()}),d=be(function(e){var t="Failed to resolve async component "+l+": "+e;s||(s=r(e)?e:new Error(t),i(s))});try{u=e(c,d)}catch(e){d(e)}if(u)if("function"==typeof u.then)u.then(c,d);else{var h=u.component;h&&"function"==typeof h.then&&h.then(c,d)}}}),a||i()}}function ge(e,t){return ve(e.map(function(e){return Object.keys(e.components).map(function(n){return t(e.components[n],e.instances[n],e,n)})}))}function ve(e){return Array.prototype.concat.apply([],e)}var ye="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function be(e){var t=!1;return function(){for(var n=[],i=arguments.length;i--;)n[i]=arguments[i];if(!t)return t=!0,e.apply(this,n)}}var _e=function(e,t){this.router=e,this.base=function(e){if(!e)if(k){var t=document.querySelector("base");e=(e=t&&t.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else e="/";"/"!==e.charAt(0)&&(e="/"+e);return e.replace(/\/$/,"")}(t),this.current=g,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function xe(e,t,n,i){var r=ge(e,function(e,i,r,a){var o=function(e,t){"function"!=typeof e&&(e=_.extend(e));return e.options[t]}(e,t);if(o)return Array.isArray(o)?o.map(function(e){return n(e,i,r,a)}):n(o,i,r,a)});return ve(i?r.reverse():r)}function we(e,t){if(t)return function(){return e.apply(t,arguments)}}_e.prototype.listen=function(e){this.cb=e},_e.prototype.onReady=function(e,t){this.ready?e():(this.readyCbs.push(e),t&&this.readyErrorCbs.push(t))},_e.prototype.onError=function(e){this.errorCbs.push(e)},_e.prototype.transitionTo=function(e,t,n){var i=this,r=this.router.match(e,this.current);this.confirmTransition(r,function(){i.updateRoute(r),t&&t(r),i.ensureURL(),i.ready||(i.ready=!0,i.readyCbs.forEach(function(e){e(r)}))},function(e){n&&n(e),e&&!i.ready&&(i.ready=!0,i.readyErrorCbs.forEach(function(t){t(e)}))})},_e.prototype.confirmTransition=function(e,t,n){var a=this,o=this.current,s=function(e){r(e)&&(a.errorCbs.length?a.errorCbs.forEach(function(t){t(e)}):(i(),console.error(e))),n&&n(e)};if(y(e,o)&&e.matched.length===o.matched.length)return this.ensureURL(),s();var l=function(e,t){var n,i=Math.max(e.length,t.length);for(n=0;n<i&&e[n]===t[n];n++);return{updated:t.slice(0,n),activated:t.slice(n),deactivated:e.slice(n)}}(this.current.matched,e.matched),u=l.updated,c=l.deactivated,d=l.activated,h=[].concat(function(e){return xe(e,"beforeRouteLeave",we,!0)}(c),this.router.beforeHooks,function(e){return xe(e,"beforeRouteUpdate",we)}(u),d.map(function(e){return e.beforeEnter}),me(d));this.pending=e;var f=function(t,n){if(a.pending!==e)return s();try{t(e,o,function(e){!1===e||r(e)?(a.ensureURL(!0),s(e)):"string"==typeof e||"object"==typeof e&&("string"==typeof e.path||"string"==typeof e.name)?(s(),"object"==typeof e&&e.replace?a.replace(e):a.push(e)):n(e)})}catch(e){s(e)}};pe(h,f,function(){var n=[];pe(function(e,t,n){return xe(e,"beforeRouteEnter",function(e,i,r,a){return function(e,t,n,i,r){return function(a,o,s){return e(a,o,function(e){s(e),"function"==typeof e&&i.push(function(){!function e(t,n,i,r){n[i]?t(n[i]):r()&&setTimeout(function(){e(t,n,i,r)},16)}(e,t.instances,n,r)})})}}(e,r,a,t,n)})}(d,n,function(){return a.current===e}).concat(a.router.resolveHooks),f,function(){if(a.pending!==e)return s();a.pending=null,t(e),a.router.app&&a.router.app.$nextTick(function(){n.forEach(function(e){e()})})})})},_e.prototype.updateRoute=function(e){var t=this.current;this.current=e,this.cb&&this.cb(e),this.router.afterHooks.forEach(function(n){n&&n(e,t)})};var Se=function(e){function t(t,n){var i=this;e.call(this,t,n);var r=t.options.scrollBehavior;r&&Q();var a=Ce(this.base);window.addEventListener("popstate",function(e){var n=i.current,o=Ce(i.base);i.current===g&&o===a||i.transitionTo(o,function(e){r&&ee(t,e,n,!0)})})}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.go=function(e){window.history.go(e)},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,function(e){he(A(i.base+e.fullPath)),ee(i.router,e,r,!1),t&&t(e)},n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,function(e){fe(A(i.base+e.fullPath)),ee(i.router,e,r,!1),t&&t(e)},n)},t.prototype.ensureURL=function(e){if(Ce(this.base)!==this.current.fullPath){var t=A(this.base+this.current.fullPath);e?he(t):fe(t)}},t.prototype.getCurrentLocation=function(){return Ce(this.base)},t}(_e);function Ce(e){var t=window.location.pathname;return e&&0===t.indexOf(e)&&(t=t.slice(e.length)),(t||"/")+window.location.search+window.location.hash}var Me=function(e){function t(t,n,i){e.call(this,t,n),i&&function(e){var t=Ce(e);if(!/^\/#/.test(t))return window.location.replace(A(e+"/#"+t)),!0}(this.base)||ke()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setupListeners=function(){var e=this,t=this.router.options.scrollBehavior,n=se&&t;n&&Q(),window.addEventListener(se?"popstate":"hashchange",function(){var t=e.current;ke()&&e.transitionTo(Te(),function(i){n&&ee(e.router,i,t,!0),se||Ee(i.fullPath)})})},t.prototype.push=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,function(e){Ie(e.fullPath),ee(i.router,e,r,!1),t&&t(e)},n)},t.prototype.replace=function(e,t,n){var i=this,r=this.current;this.transitionTo(e,function(e){Ee(e.fullPath),ee(i.router,e,r,!1),t&&t(e)},n)},t.prototype.go=function(e){window.history.go(e)},t.prototype.ensureURL=function(e){var t=this.current.fullPath;Te()!==t&&(e?Ie(t):Ee(t))},t.prototype.getCurrentLocation=function(){return Te()},t}(_e);function ke(){var e=Te();return"/"===e.charAt(0)||(Ee("/"+e),!1)}function Te(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.slice(t+1)}function Ae(e){var t=window.location.href,n=t.indexOf("#");return(n>=0?t.slice(0,n):t)+"#"+e}function Ie(e){se?he(Ae(e)):window.location.hash=e}function Ee(e){se?fe(Ae(e)):window.location.replace(Ae(e))}var De=function(e){function t(t,n){e.call(this,t,n),this.stack=[],this.index=-1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.push=function(e,t,n){var i=this;this.transitionTo(e,function(e){i.stack=i.stack.slice(0,i.index+1).concat(e),i.index++,t&&t(e)},n)},t.prototype.replace=function(e,t,n){var i=this;this.transitionTo(e,function(e){i.stack=i.stack.slice(0,i.index).concat(e),t&&t(e)},n)},t.prototype.go=function(e){var t=this,n=this.index+e;if(!(n<0||n>=this.stack.length)){var i=this.stack[n];this.confirmTransition(i,function(){t.index=n,t.updateRoute(i)})}},t.prototype.getCurrentLocation=function(){var e=this.stack[this.stack.length-1];return e?e.fullPath:"/"},t.prototype.ensureURL=function(){},t}(_e),Oe=function(e){void 0===e&&(e={}),this.app=null,this.apps=[],this.options=e,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Z(e.routes||[],this);var t=e.mode||"hash";switch(this.fallback="history"===t&&!se&&!1!==e.fallback,this.fallback&&(t="hash"),k||(t="abstract"),this.mode=t,t){case"history":this.history=new Se(this,e.base);break;case"hash":this.history=new Me(this,e.base,this.fallback);break;case"abstract":this.history=new De(this,e.base);break;default:0}},Pe={currentRoute:{configurable:!0}};function Le(e,t){return e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}Oe.prototype.match=function(e,t,n){return this.matcher.match(e,t,n)},Pe.currentRoute.get=function(){return this.history&&this.history.current},Oe.prototype.init=function(e){var t=this;if(this.apps.push(e),!this.app){this.app=e;var n=this.history;if(n instanceof Se)n.transitionTo(n.getCurrentLocation());else if(n instanceof Me){var i=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen(function(e){t.apps.forEach(function(t){t._route=e})})}},Oe.prototype.beforeEach=function(e){return Le(this.beforeHooks,e)},Oe.prototype.beforeResolve=function(e){return Le(this.resolveHooks,e)},Oe.prototype.afterEach=function(e){return Le(this.afterHooks,e)},Oe.prototype.onReady=function(e,t){this.history.onReady(e,t)},Oe.prototype.onError=function(e){this.history.onError(e)},Oe.prototype.push=function(e,t,n){this.history.push(e,t,n)},Oe.prototype.replace=function(e,t,n){this.history.replace(e,t,n)},Oe.prototype.go=function(e){this.history.go(e)},Oe.prototype.back=function(){this.go(-1)},Oe.prototype.forward=function(){this.go(1)},Oe.prototype.getMatchedComponents=function(e){var t=e?e.matched?e:this.resolve(e).route:this.currentRoute;return t?[].concat.apply([],t.matched.map(function(e){return Object.keys(e.components).map(function(t){return e.components[t]})})):[]},Oe.prototype.resolve=function(e,t,n){var i=q(e,t||this.history.current,n,this),r=this.match(i,t),a=r.redirectedFrom||r.fullPath;return{location:i,route:r,href:function(e,t,n){var i="hash"===n?"#"+t:t;return e?A(e+"/"+i):i}(this.history.base,a,this.mode),normalizedTo:i,resolved:r}},Oe.prototype.addRoutes=function(e){this.matcher.addRoutes(e),this.history.current!==g&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Oe.prototype,Pe),Oe.install=M,Oe.version="3.0.1",k&&window.Vue&&window.Vue.use(Oe),t.a=Oe},zQpG:function(e,t,n){var i=n("GKMz"),r=n("Qmdc"),a=n("aiSe"),o=n("0jiU"),s=r.extend({type:"sunburst",init:function(){},render:function(e,t,n,r){var s=this;this.seriesModel=e,this.api=n,this.ecModel=t;var l=e.getData(),u=l.tree.root,c=e.getViewRoot(),d=this.group,h=e.get("renderLabelForZeroData"),f=[];c.eachNode(function(e){f.push(e)});var p=this._oldChildren||[];if(function(n,r){if(0===n.length&&0===r.length)return;function s(e){return e.getId()}function c(i,o){var s=null==i?null:n[i],c=null==o?null:r[o];!function(n,i){h||!n||n.getValue()||(n=null);if(n!==u&&i!==u)if(i&&i.piece)n?(i.piece.updateData(!1,n,"normal",e,t),l.setItemGraphicEl(n.dataIndex,i.piece)):function(e){if(!e)return;e.piece&&(d.remove(e.piece),e.piece=null)}(i);else if(n){var r=new a(n,e,t);d.add(r),l.setItemGraphicEl(n.dataIndex,r)}}(s,c)}new o(r,n,s,s).add(c).update(c).remove(i.curry(c,null)).execute()}(f,p),function(n,i){if(i.depth>0){s.virtualPiece?s.virtualPiece.updateData(!1,n,"normal",e,t):(s.virtualPiece=new a(n,e,t),d.add(s.virtualPiece)),i.piece._onclickEvent&&i.piece.off("click",i.piece._onclickEvent);var r=function(e){s._rootToNode(i.parentNode)};i.piece._onclickEvent=r,s.virtualPiece.on("click",r)}else s.virtualPiece&&(d.remove(s.virtualPiece),s.virtualPiece=null)}(u,c),r&&r.highlight&&r.highlight.piece){var m=e.getShallow("highlightPolicy");r.highlight.piece.onEmphasis(m)}else if(r&&r.unhighlight){var g=this.virtualPiece;!g&&u.children.length&&(g=u.children[0].piece),g&&g.onNormal()}this._initEvents(),this._oldChildren=f},dispose:function(){},_initEvents:function(){var e=this,t=function(t){var n=!1;e.seriesModel.getViewRoot().eachNode(function(i){if(!n&&i.piece&&i.piece.childAt(0)===t.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)e._rootToNode(i);else if("link"===r){var a=i.getModel(),o=a.get("link");if(o){var s=a.get("target",!0)||"_blank";window.open(o,s)}}n=!0}})};this.group._onclickEvent&&this.group.off("click",this.group._onclickEvent),this.group.on("click",t),this.group._onclickEvent=t},_rootToNode:function(e){e!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:"sunburstRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:e})},containPoint:function(e,t){var n=t.getData().getItemLayout(0);if(n){var i=e[0]-n.cx,r=e[1]-n.cy,a=Math.sqrt(i*i+r*r);return a<=n.r&&a>=n.r0}}});e.exports=s},zdX1:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(a.default.prototype.$isServer)return;if(!t)return void(e.scrollTop=0);var n=[],i=t.offsetParent;for(;i&&e!==i&&e.contains(i);)n.push(i),i=i.offsetParent;var r=t.offsetTop+n.reduce(function(e,t){return e+t.offsetTop},0),o=r+t.offsetHeight,s=e.scrollTop,l=s+e.clientHeight;r<s?e.scrollTop=r:o>l&&(e.scrollTop=o-e.clientHeight)};var i,r=n("IvJb"),a=(i=r)&&i.__esModule?i:{default:i}},zgOS:function(e,t,n){var i;i=function(){return function(e){function t(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,t),r.l=!0,r.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=43)}([function(e,t){e.exports=function(e,t,n,i){var r,a=e=e||{},o=typeof e.default;"object"!==o&&"function"!==o||(r=e,a=e.default);var s="function"==typeof a?a.options:a;if(t&&(s.render=t.render,s.staticRenderFns=t.staticRenderFns),n&&(s._scopeId=n),i){var l=s.computed||(s.computed={});Object.keys(i).forEach(function(e){var t=i[e];l[e]=function(){return t}})}return{esModule:r,exports:a,options:s}}},function(e,t,n){var i,r,a;r=[e,t],void 0!==(a="function"==typeof(i=function(e,t){"use strict";function n(){var e=this.unload,t=this.renderByParent,n=this.$parent;t&&n.reload(),e()}Object.defineProperty(t,"__esModule",{value:!0});var i={control:{unload:"removeControl"},layer:{unload:"removeTileLayer"},overlay:{unload:"removeOverlay"},contextMenu:{unload:"removeContextMenu"}},r=function e(t){return t.abstract||t.$el===t.$children[0].$el?e(t.$parent):t},a=function e(t){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this.methods={ready:function(){var e=r(this.$parent),t=this.BMap=e.BMap,n=this.map=e.map;this.load(),this.$emit("ready",{BMap:t,map:n})},transmitEvent:function(e){this.$emit(e.type.replace(/^on/,""),e)},reload:function(){var e=this;this&&this.BMap&&this.$nextTick(function(){e.unload(),e.$nextTick(e.load)})},unload:function(){var e=this.map,n=this.originInstance;try{switch(t.type){case"search":return n.clearResults();case"autoComplete":case"lushu":return n.dispose();case"markerClusterer":return n.clearMarkers();default:e[i[t.type].unload](n)}}catch(e){}}},this.computed={renderByParent:function(){return this.$parent.preventChildrenRender}},this.mounted=function(){var e=r(this.$parent),t=e.map,n=this.ready;t?n():e.$on("ready",n)},this.destroyed=n,this.beforeDestroy=n};t.default=function(e){return new a({type:e})},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[t],void 0!==(a="function"==typeof(i=function(e){"use strict";function t(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.lng,i=t.lat;return new e.Point(n,i)}function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.width,i=t.height;return new e.Size(n,i)}Object.defineProperty(e,"__esModule",{value:!0}),e.createPoint=t,e.createPixel=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.x,i=t.y;return new e.Pixel(n,i)},e.createBounds=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.sw,r=n.ne;return new e.Bounds(t(e,i),t(e,r))},e.createSize=n,e.createIcon=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.url,r=t.size,a=t.opts,o=void 0===a?{}:a;return new e.Icon(i,n(e,r),{anchor:o.anchor&&n(e,o.anchor),imageSize:o.imageSize&&n(e,o.imageSize),imageOffset:o.imageOffset&&n(e,o.imageOffset),infoWindowAnchor:o.infoWindowAnchor&&n(e,o.infoWindowAnchor),printImageUrl:o.printImageUrl})},e.createLabel=function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=i.content,a=i.opts;return new e.Label(r,{offset:a.offset&&n(e,a.offset),position:a.position&&t(e,a.position),enableMassClear:a.enableMassClear})}})?i.apply(t,r):i)&&(e.exports=a)},function(e,t){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var i,r,a;r=[e,t,n(41),n(5)],void 0!==(a="function"==typeof(i=function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=this,a=t||r.default[(0,i.toKebabCase)(this.$options._componentTag)];a&&a.forEach(function(t){var i="on"===t.slice(0,2),r=i?t.slice(2):t,a=n.$listeners[r];a&&e.addEventListener(t,a.fns)})};var r=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[t,n(2)],void 0!==(a="function"==typeof(i=function(e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getPosition=e.toKebabCase=e.checkType=e.isPoint=void 0;var n=e.isPoint=function(e){return e.lng&&e.lat};e.checkType=function(e){return Object.prototype.toString.call(e).slice(8,-1)},e.toKebabCase=function(e){return e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()}).replace(/^-/,"")},e.getPosition=function(e,i){return n(i)?(0,t.createPoint)(e,i):i}})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i=n(0)(n(72),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(44),n(89),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(45),n(87),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(46),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(47),n(94),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(48),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(49),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(50),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(51),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(52),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(53),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(54),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(55),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(56),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(57),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(58),n(90),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(59),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(60),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(61),n(97),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(62),n(83),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(63),n(95),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(64),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(65),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(66),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(67),n(84),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(68),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(69),n(96),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(70),n(85),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(71),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(73),null,null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(74),n(91),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(75),n(86),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(76),n(93),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(77),n(92),null,null);e.exports=i.exports},function(e,t,n){var i=n(0)(n(78),n(88),null,null);e.exports=i.exports},function(e,t,n){var i,r,a;r=[e,t],void 0!==(a="function"==typeof(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={"baidu-map":["click","dblclick","rightclick","rightdblclick","maptypechange","mousemove","mouseover","mouseout","movestart","moving","moveend","zoomstart","zoomend","addoverlay","addcontrol","removecontrol","removeoverlay","clearoverlays","dragstart","dragging","dragend","addtilelayer","removetilelayer","load","resize","hotspotclick","hotspotover","hotspotout","tilesloaded","touchstart","touchmove","touchend","longpress"],"bm-geolocation":["locationSuccess","locationError"],"bm-overview-map":["viewchanged","viewchanging"],"bm-marker":["click","dblclick","mousedown","mouseup","mouseout","mouseover","remove","infowindowclose","infowindowopen","dragstart","dragging","dragend","rightclick"],"bm-polyline":["click","dblclick","mousedown","mouseup","mouseout","mouseover","remove","lineupdate"],"bm-polygon":["click","dblclick","mousedown","mouseup","mouseout","mouseover","remove","lineupdate"],"bm-circle":["click","dblclick","mousedown","mouseup","mouseout","mouseover","remove","lineupdate"],"bm-label":["click","dblclick","mousedown","mouseup","mouseout","mouseover","remove","rightclick"],"bm-info-window":["close","open","maximize","restore","clickclose"],"bm-ground":["click","dblclick"],"bm-auto-complete":["onconfirm","onhighlight"],"bm-point-collection":["click","mouseover","mouseout"]},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t],void 0!==(a="function"==typeof(i=function(e,t){"use strict";function n(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0});var r=function e(t){var r=t.component,a=t.props,o=t.events,s=t.extraProps,l=t.exceptProps;(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),this.render=function(e){var t=this;return e(r,{props:a.reduce(function(e,n){return Object.assign(e,i({},n,t[n]))},{}),on:o.reduce(function(e,n){return Object.assign(e,i({},n,t.transmitEvent))},{})})},this.props=[].concat(n(s),n(a.filter(function(e){return l.indexOf(e)})))};t.default=function(e){return new r(e)},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[t,n(24),n(25),n(17),n(14),n(13),n(15),n(12),n(11),n(9),n(16),n(10),n(32),n(34),n(35),n(6),n(28),n(29),n(31),n(30),n(33),n(8),n(7),n(38),n(39),n(40),n(37),n(36),n(22),n(23),n(27),n(26),n(21),n(20),n(19),n(18)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r,a,o,s,l,u,c,d,h,f,p,m,g,v,y,b,_,x,w,S,C,M,k,T,A,I,E,D,O,P,L,R){"use strict";function N(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0}),e.BmlCurveLine=e.BmlHeatmap=e.BmlLushu=e.BmlMarkerClusterer=e.BmAutoComplete=e.BmBoundary=e.BmTraffic=e.BmTile=e.BmBus=e.BmDriving=e.BmWalking=e.BmTransit=e.BmLocalSearch=e.BmContextMenuItem=e.BmContextMenu=e.BmOverlay=e.BmInfoWindow=e.BmLabel=e.BmGround=e.BmCircle=e.BmPolygon=e.BmPolyline=e.BmPointCollection=e.BmMarker=e.BmControl=e.BmPanorama=e.BmCityList=e.BmCopyright=e.BmGeolocation=e.BmOverviewMap=e.BmMapType=e.BmNavigation=e.BmScale=e.BmView=e.BaiduMap=void 0;var B=N(t),F=N(n),z=N(i),V=N(r),$=N(a),G=N(o),j=N(s),H=N(l),W=N(u),U=N(c),K=N(d),q=N(h),Y=N(f),Z=N(p),X=N(m),J=N(g),Q=N(v),ee=N(y),te=N(b),ne=N(_),ie=N(x),re=N(w),ae=N(S),oe=N(C),se=N(M),le=N(k),ue=N(T),ce=N(A),de=N(I),he=N(E),fe=N(D),pe=N(O),me=N(P),ge=N(L),ve=N(R);e.default={install:function(e,t){var n=t.ak;e.prototype._BMap=function(){return{ak:n}},e.component("baidu-map",B.default),e.component("bm-view",F.default),e.component("bm-scale",z.default),e.component("bm-navigation",V.default),e.component("bm-map-type",$.default),e.component("bm-overview-map",G.default),e.component("bm-geolocation",j.default),e.component("bm-copyright",H.default),e.component("bm-city-list",W.default),e.component("bm-panorama",U.default),e.component("bm-control",K.default),e.component("bm-marker",q.default),e.component("bm-point-collection",Y.default),e.component("bm-polyline",Z.default),e.component("bm-polygon",X.default),e.component("bm-circle",J.default),e.component("bm-ground",Q.default),e.component("bm-label",ee.default),e.component("bm-info-window",te.default),e.component("bm-overlay",ne.default),e.component("bm-context-menu",ie.default),e.component("bm-context-menu-item",re.default),e.component("bm-local-search",ae.default),e.component("bm-transit",oe.default),e.component("bm-walking",se.default),e.component("bm-driving",le.default),e.component("bm-bus",ue.default),e.component("bm-tile",ce.default),e.component("bm-traffic",de.default),e.component("bm-auto-complete",fe.default),e.component("bm-boundary",he.default)}},e.BaiduMap=B.default,e.BmView=F.default,e.BmScale=z.default,e.BmNavigation=V.default,e.BmMapType=$.default,e.BmOverviewMap=G.default,e.BmGeolocation=j.default,e.BmCopyright=H.default,e.BmCityList=W.default,e.BmPanorama=U.default,e.BmControl=K.default,e.BmMarker=q.default,e.BmPointCollection=Y.default,e.BmPolyline=Z.default,e.BmPolygon=X.default,e.BmCircle=J.default,e.BmGround=Q.default,e.BmLabel=ee.default,e.BmInfoWindow=te.default,e.BmOverlay=ne.default,e.BmContextMenu=ie.default,e.BmContextMenuItem=re.default,e.BmLocalSearch=ae.default,e.BmTransit=oe.default,e.BmWalking=se.default,e.BmDriving=le.default,e.BmBus=ue.default,e.BmTile=ce.default,e.BmTraffic=de.default,e.BmBoundary=he.default,e.BmAutoComplete=fe.default,e.BmlMarkerClusterer=pe.default,e.BmlLushu=me.default,e.BmlHeatmap=ge.default,e.BmlCurveLine=ve.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t],void 0!==(a="function"==typeof(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"bm-context-menu-item",props:{callback:{type:Function,default:function(){}},text:{type:String},iconUrl:{type:String},id:{type:String},disabled:{type:Boolean},seperator:{type:Boolean}},methods:{reload:function(){this.$parent.map&&this.$parent.load()}},watch:{text:function(){this.reload()},iconUrl:function(){this.reload()},id:function(){this.reload()},disabled:function(){this.reload()},iseperator:function(){this.reload()},callback:function(){this.reload()}},destroyed:function(){this.reload()},mounted:function(){this.reload()}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1)],void 0!==(a="function"==typeof(i=function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-context-menu",props:{width:{type:Number}},mixins:[(0,i.default)("contextMenu")],methods:{load:function(){var e=this.width,t=this.BMap,n=this.map,i=this.$parent,r=this.parent=i.originInstance||n;r.removeContextMenu(this.originInstance);var a=this.originInstance=new t.ContextMenu,o=!0,s=!1,l=void 0;try{for(var u,c=this.$children[Symbol.iterator]();!(o=(u=c.next()).done);o=!0)!function(){var i=u.value;if(i.seperator)return a.addSeparator(),"continue";var o=new t.MenuItem(i.text,function(e,a){i.callback({point:e,pixel:a,BMap:t,map:n,target:r})},{width:e,id:i.id,iconUrl:i.iconUrl});i.disabled?o.disable():o.enable(),i.originInstance=o,a.addItem(o)}()}catch(e){s=!0,l=e}finally{try{!o&&c.return&&c.return()}finally{if(s)throw l}}r.addContextMenu(a)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-city-list",render:function(){},mixins:[(0,a.default)("control")],props:{anchor:{type:String},offset:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.anchor,a=this.offset,o=this;this.originInstance=new e.CityListControl({anchor:i[n],offset:a&&(0,r.createSize)(e,a),onChangeBefore:function(){o.$emit("changeBefore")},onChangeAfter:function(){o.$emit("changeAfter")}}),t.addControl(this.originInstance)}}},e.exports=t.default},a=[e,t,n(1),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-control",mixins:[(0,a.default)("control")],props:["anchor","offset"],watch:{anchor:function(e){this.originInstance.setAnchor(e)},offset:function(e){this.originInstance.setOffset(e)}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.anchor,a=this.offset,o=this.$el,s=function(){this.defaultAnchor=i[n||"BMAP_ANCHOR_TOP_LEFT"],this.defaultOffset=(0,r.createSize)(e,a)};(s.prototype=new e.Control).initialize=function(e){return e.getContainer().appendChild(o)},this.originInstance=new s(n,a),t.addControl(this.originInstance)}}},e.exports=t.default},a=[e,t,n(1),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-copyright",render:function(){},mixins:[(0,a.default)("control")],props:["anchor","offset","copyright"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()},copyright:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.offset,a=this.anchor,o=this.updateCopyrightList;this.originInstance=new e.CopyrightControl({anchor:i[a],offset:n&&(0,r.createSize)(e,n)}),o(),t.addControl(this.originInstance)},updateCopyrightList:function(){var e=this,t=this.BMap,n=this.map,i=this.originInstance,r=i.removeCopyright,a=(0,i.getCopyrightCollection)();a&&a.forEach(function(e){r(e.id)}),this.copyright&&this.copyright.forEach(function(i){var r=i.bounds?new t.Bounds(new t.Point(i.bounds.sw.lng,i.bounds.sw.lat),new t.Point(i.bounds.ne.lng,i.bounds.ne.lat)):n.getBounds();e.originInstance.addCopyright({id:i.id,content:i.content,bounds:r}),e.originInstance.getCopyrightCollection()})}}},e.exports=t.default},a=[e,t,n(1),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r,a){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(n),l=o(r);t.default={name:"bm-geolocation",render:function(){},mixins:[(0,s.default)("control")],props:{anchor:{type:String},offset:{type:Object},showAddressBar:{type:Boolean},autoLocation:{type:Boolean},locationIcon:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},showAddressBar:function(){this.reload()},autoLocation:function(){this.reload()},locationIcon:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.anchor,r=this.showAddressBar,o=this.autoLocation,s=this.locationIcon,u=this.offset;this.originInstance=new e.GeolocationControl({anchor:i[n],showAddressBar:r,enableAutoLocation:o,offset:u&&(0,a.createSize)(e,u),locationIcon:s&&(0,a.createIcon)(e,s)}),l.default.call(this,this.originInstance),t.addControl(this.originInstance)}}},e.exports=t.default},a=[e,t,n(1),n(4),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-map-type",render:function(){},mixins:[(0,a.default)("control")],props:["type","mapTypes","anchor","offset"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()},type:function(){this.reload()},mapTypes:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.anchor,a=this.offset,o=this.type,s=[];this.mapTypes&&this.mapTypes.forEach(function(e){return s.push(i[e])}),this.originInstance=new e.MapTypeControl({anchor:i[n],offset:a&&(0,r.createSize)(e,a),type:i[o],mapTypes:s}),t.addControl(this.originInstance)}}},e.exports=t.default},a=[e,t,n(1),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-navigation",render:function(){},mixins:[(0,a.default)("control")],props:{anchor:{type:String},offset:{type:Object},type:{type:String},showZoomInfo:{type:Boolean},enableGeolocation:{type:Boolean,default:!1}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},type:function(){this.reload()},showZoomInfo:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.anchor,a=this.offset,o=this.type,s=this.showZoomInfo,l=this.enableGeolocation;this.originInstance=new e.NavigationControl({anchor:i[n],offset:a&&(0,r.createSize)(e,a),type:i[o],showZoomInfo:s,enableGeolocation:l}),t.addControl(this.originInstance)}}},e.exports=t.default},a=[e,t,n(1),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r,a){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(r),l=o(a);t.default={name:"bm-overview-map",mixins:[(0,s.default)("control")],render:function(){},props:{anchor:{type:String},offset:{type:Object},size:{type:Object},isOpen:{type:Boolean}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},size:function(){this.reload()},isOpen:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,r=this.isOpen,a=this.size,o=this.offset,s=this.anchor,u=[];this.mapTypes&&this.mapTypes.forEach(function(e){u.push(i[e])}),this.originInstance=new e.OverviewMapControl({anchor:i[s],offset:(0,n.createSize)(e,o),size:(0,n.createSize)(e,a),isOpen:r}),l.default.call(this,this.originInstance),t.addControl(this.originInstance)}}},e.exports=t.default},a=[e,t,n(2),n(1),n(4)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-panorama",mixins:[(0,a.default)("control")],render:function(){},props:["anchor","offset"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.anchor,a=this.offset;this.originInstance=new e.PanoramaControl({anchor:i[n],offset:a&&(0,r.createSize)(e,a)}),t.addControl(this.originInstance)}}},e.exports=t.default},a=[e,t,n(1),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-scale",render:function(){},mixins:[(0,a.default)("control")],props:{anchor:{type:String},offset:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.anchor,a=this.offset;this.originInstance=new e.ScaleControl({anchor:i[n],offset:a&&(0,r.createSize)(e,a)}),t.addControl(this.originInstance)}}},e.exports=t.default},a=[e,t,n(1),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){var i,r,a;r=[e,t,n(79),n(1),n(4),n(2)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r,a){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(n),l=o(i),u=o(r),c=["click","dblclick","mousedown","mouseup","mouseout","mouseover","remove","lineupdate"];t.default={name:"bml-curve-line",render:function(){},mixins:[(0,l.default)("overlay")],props:{points:{type:Array,default:Array},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{points:{handler:function(e,t){this.originInstance.disableEditing(),this.reload()},deep:!0},strokeColor:function(e){this.originInstance.setStrokeColor(e)},strokeOpacity:function(e){this.originInstance.setStrokeOpacity(e)},strokeWeight:function(e){this.originInstance.setStrokeOpacity(e)},strokeStyle:function(e){this.originInstance.setStrokeStyle(e)},editing:function(e){e?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(e){e?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(e){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.points,i=this.strokeColor,r=this.strokeWeight,o=this.strokeOpacity,l=this.strokeStyle,d=this.editing,h=this.massClear,f=this.clicking,p=new s.default(n.map(function(t){return(0,a.createPoint)(e,t)}),{strokeColor:i,strokeWeight:r,strokeOpacity:o,strokeStyle:l,enableMassClear:h,enableClicking:f});d?p.enableEditing():p.disableEditing(),this.originInstance=p,t.addOverlay(p),u.default.call(this,p,c)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1),n(80)],void 0!==(a="function"==typeof(i=function(e,t,n,i){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(n),o=r(i);t.default={name:"bml-heatmap",render:function(){},mixins:[(0,a.default)("overlay")],props:{data:{type:Array,default:Array},max:{type:Number},radius:{type:Number},gradient:{type:Object},opacity:{type:Number}},watch:{data:{handler:function(){this.reload()},deep:!0},max:function(){this.reload()},radius:function(e){var t=this.originInstance,n=this.opacity,i=this.gradient;t.setOptions({radius:e,opacity:n,gradient:i})},gradient:{handler:function(e){var t=this.originInstance,n=this.radius,i=this.opacity;t.setOptions({radius:n,opacity:i,gradient:e})},deep:!0},opacity:function(e){var t=this.originInstance,n=this.radius,i=this.gradient;t.setOptions({radius:n,opacity:e,gradient:i})}},methods:{load:function(){var e=this.map,t=this.data,n=this.max,i=this.radius,r=this.opacity,a=this.gradient,s=this.originInstance=new o.default({radius:i,opacity:r,gradient:a});e.addOverlay(s),s.setDataSet({data:t,max:n})}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1),n(2),n(81)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=a(n),s=a(r);t.default={name:"bm-lushu",render:function(e){},mixins:[(0,o.default)("lushu")],props:{path:{type:Array,default:[]},landmarkPois:{type:Array,default:function(){return[]}},icon:{type:Object},speed:{type:Number,default:4e3},content:{type:String,default:""},autoView:{type:Boolean,default:!1},rotation:{type:Boolean,default:!1},infoWindow:{type:Boolean,default:!0},play:{type:Boolean,default:!0}},watch:{path:{handler:function(e){this.reload()},deep:!0},landmarkPois:{handler:function(e){this.reload()},deep:!0},icon:{handler:function(e){var t=this.originInstance,n=(this.content,(0,i.createIcon)(BMap,e));t._opts.icon=n,t._marker=n},deep:!0},speed:function(e){var t=this.originInstance;this.content,t._opts.speed=e},content:function(e){var t=this.originInstance,n=this.infoWindow;e&&n?t.showInfoWindow():t.hideInfoWindow(),t._opts.defaultContent=e,t._overlay&&t._overlay.setHtml(e)},autoView:function(e){var t=this.originInstance;this.content,t._opts.autoView=e},rotation:function(e){var t=this.originInstance;this.content,t._opts.enableRotation=e},infoWindow:function(e){var t=this.originInstance,n=this.content;t&&e&&n?t.showInfoWindow():t.hideInfoWindow()},play:function(e){var t=this.originInstance;e&&t?t.start():!this._isEnd&&t.pause()}},methods:{load:function(){var e=this,t=this.BMap,n=this.map,r=this.path,a=this.landmarkPois,o=this.icon,l=this.speed,u=this.content,c=this.autoView,d=this.rotation,h=this.infoWindow,f=this.play,p=this.originInstance=new s.default(n,r,{enableRotation:d,landmarkPois:a,showInfoWindow:h,defaultContent:u,icon:o&&(0,i.createIcon)(t,o),speed:l,autoView:c,onstart:function(t){e._isEnd=!1,e.$emit("start")},onstop:function(t){e._isEnd=!0,e.$emit("stop")},onpause:function(t){return e.$emit("pause")}});f&&r.length&&p.start(this),r.length&&(u&&h?p.showInfoWindow():p.hideInfoWindow())}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(82),n(2),n(1)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=a(n),s=a(r);t.default={name:"bml-marker-cluseter",mixins:[(0,s.default)("markerClusterer")],props:{gridSize:{type:Object},maxZoom:{type:Number},minClusterSize:{type:Object},styles:{type:Array,default:function(){return[]}},averageCenter:{type:Boolean,default:!1}},watch:{gridSize:{handler:function(e){var t=this.BMap;this.originInstance.setGridSize(t,e.map)},deep:!0},maxZoom:function(e){this.originInstance.setMaxZoom(e)},minClusterSize:{handler:function(e){var t=this.BMap;this.originInstance.setMinClusterSize((0,i.createSize)(t,e))},deep:!0},styles:{handler:function(e){var t=this.BMap,n=this.originInstance,r=JSON.parse(JSON.stringify(e)).map(function(e){return e.size=e.size&&(0,i.createSize)(t,e.size),e});n.setStyles(r)},deep:!0},averageCenter:function(e){this.reload()}},methods:{load:function(){var e=this,t=this.BMap,n=this.map,r=this.gridSize,a=this.minClusterSize,s=this.maxZoom,l=this.styles,u=this.averageCenter;this.originInstance=new o.default(n,{gridSize:r&&(0,i.createSize)(t,r),maxZoom:s,minClusterSize:a&&(0,i.createSize)(t,a),styles:l.map(function(e){return e.size=(0,i.createSize)(t,e.size),e}),isAverageCenter:u}),this.$nextTick(function(){var n=e.$children.map(function(e){return e.originInstance}).filter(function(e){return e instanceof t.Marker});e.originInstance.addMarkers(n)})}},beforeCreate:function(){this.preventChildrenRender=!0}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1),n(2)],void 0!==(a="function"==typeof(i=function(e,t,n,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-tile",render:function(e){},mixins:[(0,r.default)("layer")],props:{transparentPng:{type:Boolean},tileUrlTemplate:{type:String},copyright:{},zIndex:{type:Number}},watch:{transparentPng:function(){this.reload()},tileUrlTemplate:function(){this.reload()},copyright:function(){this.reload()},zIndex:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.transparentPng,r=this.tileUrlTemplate,a=this.copyright,o=this.zIndex;this.originInstance=new e.TileLayer({transparentPng:n,tileUrlTemplate:r,copyright:a&&{id:a.id,content:a.content,bounds:a.bounds&&(0,i.createBounds)(a.bounds)},zIndex:o}),t.addTileLayer(this.originInstance)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1)],void 0!==(a="function"==typeof(i=function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-triffic",render:function(e){},mixins:[(0,i.default)("layer")],props:{predictDate:{type:Object}},watch:{"pridictDate.weekday":function(){this.reload()},"pridictDate.hour":function(){this.reload()},pridictDate:function(){this.reload()}},methods:{load:function(){var e=this.pridictDate,t=this.BMap,n=this.map;this.originInstance=new t.TrafficLayer({pridictDate:e}),n.addTileLayer(this.originInstance)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={name:"bm-map",props:{ak:{type:String},center:{type:[Object,String]},zoom:{type:Number},minZoom:{type:Number},maxZoom:{type:Number},highResolution:{type:Boolean,default:!0},mapClick:{type:Boolean,default:!0},mapType:{type:String},dragging:{type:Boolean,default:!0},scrollWheelZoom:{type:Boolean,default:!1},doubleClickZoom:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},inertialDragging:{type:Boolean,default:!0},continuousZoom:{type:Boolean,default:!0},pinchToZoom:{type:Boolean,default:!0},autoResize:{type:Boolean,default:!0},theme:{type:Array},mapStyle:{type:Object}},watch:{center:function(e,t){var n=this.map,i=this.zoom;"String"===(0,r.checkType)(e)&&e!==t&&n.centerAndZoom(e,i)},"center.lng":function(e,t){var n=this.BMap,i=this.map,r=this.zoom,a=this.center;e!==t&&e>=-180&&e<=180&&i.centerAndZoom(new n.Point(e,a.lat),r)},"center.lat":function(e,t){var n=this.BMap,i=this.map,r=this.zoom,a=this.center;e!==t&&e>=-74&&e<=74&&i.centerAndZoom(new n.Point(a.lng,e),r)},zoom:function(e,t){var n=this.map;e!==t&&e>=3&&e<=19&&n.setZoom(e)},minZoom:function(e){this.map.setMinZoom(e)},maxZoom:function(e){this.map.setMaxZoom(e)},highResolution:function(){this.reset()},mapClick:function(){this.reset()},mapType:function(e){this.map.setMapType(i[e])},dragging:function(e){var t=this.map;e?t.enableDragging():t.disableDragging()},scrollWheelZoom:function(e){var t=this.map;e?t.enableScrollWheelZoom():t.disableScrollWheelZoom()},doubleClickZoom:function(e){var t=this.map;e?t.enableDoubleClickZoom():t.disableDoubleClickZoom()},keyboard:function(e){var t=this.map;e?t.enableKeyboard():t.disableKeyboard()},inertialDragging:function(e){var t=this.map;e?t.enableInertialDragging():t.disableInertialDragging()},continuousZoom:function(e){var t=this.map;e?t.enableContinuousZoom():t.disableContinuousZoom()},pinchToZoom:function(e){var t=this.map;e?t.enablePinchToZoom():t.disablePinchToZoom()},autoResize:function(e){var t=this.map;e?t.enableAutoResize():t.disableAutoResize()},theme:function(e){this.map.setMapStyle({styleJson:e})},"mapStyle.features":{handler:function(e,t){var n=this.map,i=this.mapStyle,r=i.style,a=i.styleJson;n.setMapStyle({styleJson:a,features:e,style:r})},deep:!0},"mapStyle.style":function(e,t){var n=this.map,i=this.mapStyle,r=i.features,a=i.styleJson;n.setMapStyle({styleJson:a,features:r,style:e})},"mapStyle.styleJson":{handler:function(e,t){var n=this.map,i=this.mapStyle,r=i.features,a=i.style;n.setMapStyle({styleJson:e,features:r,style:a})},deep:!0},mapStyle:function(e){var t=this.map;!this.theme&&t.setMapStyle(e)}},methods:{setMapOptions:function(){var e=this.map,t=this.minZoom,n=this.maxZoom,r=this.mapType,a=this.dragging,o=this.scrollWheelZoom,s=this.doubleClickZoom,l=this.keyboard,u=this.inertialDragging,c=this.continuousZoom,d=this.pinchToZoom,h=this.autoResize;t&&e.setMinZoom(t),n&&e.setMaxZoom(n),r&&e.setMapType(i[r]),a?e.enableDragging():e.disableDragging(),o?e.enableScrollWheelZoom():e.disableScrollWheelZoom(),s?e.enableDoubleClickZoom():e.disableDoubleClickZoom(),l?e.enableKeyboard():e.disableKeyboard(),u?e.enableInertialDragging():e.disableInertialDragging(),c?e.enableContinuousZoom():e.disableContinuousZoom(),d?e.enablePinchToZoom():e.disablePinchToZoom(),h?e.enableAutoResize():e.disableAutoResize()},init:function(e){if(!this.map){var t=this.$refs.view,n=!0,i=!1,r=void 0;try{for(var o,s=(this.$slots.default||[])[Symbol.iterator]();!(n=(o=s.next()).done);n=!0){var l=o.value;l.componentOptions&&"bm-view"===l.componentOptions.tag&&(this.hasBmView=!0,t=l.elm)}}catch(e){i=!0,r=e}finally{try{!n&&s.return&&s.return()}finally{if(i)throw r}}var u=new e.Map(t,{enableHighResolution:this.highResolution,enableMapClick:this.mapClick});this.map=u;var c=this.setMapOptions,d=this.zoom,h=this.getCenterPoint,f=this.theme,p=this.mapStyle;f?u.setMapStyle({styleJson:f}):u.setMapStyle(p),c(),a.default.call(this,u),u.reset(),u.centerAndZoom(h(),d),this.$emit("ready",{BMap:e,map:u})}},getCenterPoint:function(){var e=this.center,t=this.BMap;switch((0,r.checkType)(e)){case"String":return e;case"Object":return new t.Point(e.lng,e.lat);default:return new t.Point}},initMap:function(e){this.BMap=e,this.init(e)},getMapScript:function(){if(i.BMap)return i.BMap._preloader?i.BMap._preloader:Promise.resolve(i.BMap);var e=this.ak||this._BMap().ak;return i.BMap={},i.BMap._preloader=new Promise(function(t,n){i._initBaiduMap=function(){t(i.BMap),i.document.body.removeChild(r),i.BMap._preloader=null,i._initBaiduMap=null};var r=document.createElement("script");i.document.body.appendChild(r),r.src="https://api.map.baidu.com/api?v=2.0&ak="+e+"&callback=_initBaiduMap"}),i.BMap._preloader},reset:function(){var e=this.getMapScript,t=this.initMap;e().then(t)}},mounted:function(){this.reset()},data:function(){return{hasBmView:!1}}},e.exports=t.default},a=[e,t,n(4),n(5)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){var i,r,a;r=[e,t],void 0!==(a="function"==typeof(i=function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"bm-view"},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1),n(4)],i=function(e,t,n,i){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(n),o=r(i);t.default={name:"bm-autocomplete",mixins:[(0,a.default)()],props:{types:{type:String},location:{type:String},sugStyle:{type:Object,default:function(){return{}}}},watch:{types:function(){this.reload()},location:function(){this.reload()}},methods:{load:function(){var e=this,t=this.BMap,n=this.map,i=this.$el,r=this.types,a=this.location,s=this.sugStyle,l=i.querySelector("input");l&&(this.originInstance=new t.Autocomplete({input:l,types:r,location:a||n,onSearchComplete:function(t){var n=document.querySelectorAll(".tangram-suggestion-main"),i=!0,r=!1,a=void 0;try{for(var o,l=n[Symbol.iterator]();!(i=(o=l.next()).done);i=!0){var u=o.value;for(var c in s)u.style[c]=s[c].toString()}}catch(e){r=!0,a=e}finally{try{!i&&l.return&&l.return()}finally{if(r)throw a}}e.$emit("searchcomplete",t)}}),this.originInstance.addEventListener("onconfirm",function(t){var n=t.item.value;e.$emit("input",n.province+n.city+n.district+n.street+n.business)}),o.default.call(this,this.originInstance))}}},e.exports=t.default},void 0!==(a="function"==typeof i?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(6),n(1),n(42)],i=function(e,t,n,i,r){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=a(n),s=a(i),l=a(r),u=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],i=!0,r=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(i=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);i=!0);}catch(e){r=!0,a=e}finally{try{!i&&s.return&&s.return()}finally{if(r)throw a}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")};t.default={abstract:!0,mixins:[(0,s.default)("abstract"),(0,l.default)({component:"bm-polygon",props:["path","strokeColor","strokeWeight","strokeOpacity","strokeStyle","fillColor","fillOpacity","massClear","clicking"],extraProps:["name"],exceptProps:["path"],events:["click","dblclick","mousedown","mouseup","mouseout","mouseover","remove"]})],data:function(){return{path:[]}},components:{BmPolygon:o.default},watch:{name:function(){this.reload()}},methods:{load:function(){var e=this,t=this.BMap,n=this.name;(new t.Boundary).get(n,function(t){e.path=(t.boundaries[0]||[]).split(";").map(function(e){return function(e){var t=u(e,2);return{lng:t[0],lat:t[1]}}(e.split(",").map(function(e){return+e}))})})}}},e.exports=t.default},void 0!==(a="function"==typeof i?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1),n(4),n(2)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=a(n),s=a(i);t.default={name:"bm-circle",render:function(){},mixins:[(0,o.default)("overlay")],props:{center:{},radius:{},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},fillColor:{type:String},fillOpacity:{type:Number},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{"center.lng":function(e,t){var n=this.BMap,i=this.originInstance,a=this.isEditing,o=this.disableEditing,s=this.enableEditing,l=this.center,u=this.editing;if(!a){o();var c=e;e.toString()!==t.toString()&&c>=-180&&c<=180&&i.setCenter((0,r.createPoint)(n,{lng:c,lat:l.lat})),u&&s()}},"center.lat":function(e,t){var n=this.BMap,i=this.originInstance,a=this.isEditing,o=this.disableEditing,s=this.enableEditing,l=this.center,u=this.editing;if(!a){o();var c=e;e.toString()!==t.toString()&&c>=-74&&c<=74&&i.setCenter((0,r.createPoint)(n,{lng:l.lng,lat:c})),u&&s()}},radius:function(e,t){var n=this.originInstance,i=this.isEditing,r=this.disableEditing,a=this.enableEditing,o=this.editing;i||(r(),n.setRadius(e),o&&a())},strokeColor:function(e){this.originInstance.setStrokeColor(e)},strokeOpacity:function(e){this.originInstance.setStrokeOpacity(e)},strokeWeight:function(e){this.originInstance.setStrokeOpacity(e)},strokeStyle:function(e){this.originInstance.setStrokeStyle(e)},fillColor:function(e){this.originInstance.setFillColor(e)},fillOpacity:function(e){this.originInstance.setFillOpacity(e)},editing:function(e){e?this.enableEditing():this.disableEditing()},massClear:function(e){e?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(e){this.reload()}},methods:{dragStartHandler:function(){this.isEditing=!0},dragEndHandler:function(){this.isEditing=!1,this.bindEditingNodeEvents()},bindEditingNodeEvents:function(){var e=this.originInstance,t=this.editingKey,n=this.dragStartHandler,i=this.dragEndHandler;e[t].forEach(function(e){e.addEventListener("dragstart",n),e.addEventListener("dragend",i)})},enableEditing:function(){var e=this.originInstance,t=this.bindEditingNodeEvents;e.enableEditing(),t()},disableEditing:function(){this.originInstance.disableEditing()},getEditingKey:function(e){var t=this,n=[];e.enableEditing(),setTimeout(function(){for(var i in e)e[i]&&2===e[i].length&&n.push(i);for(var r in e.disableEditing(),e)e[r]&&0===e[r].length&&~n.indexOf(r)&&(t.editingKey=r)},0)},load:function(){var e=this.BMap,t=this.map,n=this.center,i=this.radius,a=this.strokeColor,o=this.strokeWeight,l=this.strokeOpacity,u=this.strokeStyle,c=this.fillColor,d=this.fillOpacity,h=this.editing,f=this.massClear,p=this.clicking,m=this.enableEditing,g=this.disableEditing,v=this.getEditingKey,y=this.editingKey,b=new e.Circle((0,r.createPoint)(e,{lng:n.lng,lat:n.lat}),i,{strokeColor:a,strokeWeight:o,strokeOpacity:l,strokeStyle:u,fillColor:c,fillOpacity:d,enableMassClear:f,enableClicking:p});this.originInstance=b,t.addOverlay(b),s.default.call(this,b),!y&&v(b),setTimeout(function(){h?m():g()},0)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1),n(4),n(2)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=a(n),s=a(i);t.default={name:"bm-ground",render:function(){},mixins:[(0,o.default)("overlay")],props:{bounds:{type:Object},opacity:{type:Number},imageURL:{type:String},displayOnMinLevel:{type:Number},displayOnMaxLevel:{type:Number}},watch:{bounds:{handler:function(e){var t=this.BMap;this.originInstance.setBounds((0,r.createBounds)(t,e))},deep:!0},opacity:function(e){this.originInstance.setOpacity(e)},imageURL:function(e){this.originInstance.setImageURL(e)},displayOnMinLevel:function(e){this.originInstance.setDisplayOnMinLevel(e)},displayOnMaxLevel:function(e){this.originInstance.setDisplayOnMaxLevel(e)}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.bounds,i=this.opacity,a=this.imageURL,o=this.displayOnMinLevel,l=this.displayOnMaxLevel,u=new e.GroundOverlay(n&&(0,r.createBounds)(e,n),{opacity:i,imageURL:a,displayOnMaxLevel:l,displayOnMinLevel:o});u.setImageURL(a),this.originInstance=u,s.default.call(this,u),t.addOverlay(u)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r,a){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(n),l=o(r);t.default={name:"bm-info-window",mixins:[(0,s.default)("overlay")],props:{show:{type:Boolean},position:{type:Object},title:{type:String},width:{type:Number},height:{type:Number},maxWidth:{type:Number},offset:{type:Object},maximize:{type:Boolean},autoPan:{type:Boolean},closeOnClick:{type:Boolean,default:!0},message:{type:String}},watch:{show:function(e){e?this.openInfoWindow():this.closeInfoWindow()},"position.lng":function(e,t){this.reload()},"position.lat":function(e,t){this.reload()},"offset.width":function(e,t){this.reload()},"offset.height":function(e){this.reload()},maxWidth:function(){this.reload()},width:function(e){this.originInstance.setWidth(e)},height:function(e){this.originInstance.setHeight(e)},title:function(e){this.originInstance.setTitle(e)},maximize:function(e){e?this.originInstance.enableMaximize():this.originInstance.disableMaximize()},autoPan:function(e){e?this.originInstance.enableAutoPan():this.originInstance.disableAutoPan()},closeOnClick:function(e){e?this.originInstance.enableCloseOnClick():this.originInstance.disableCloseOnClick()}},methods:{redraw:function(){this.originInstance.redraw()},load:function(){var e=this.BMap,t=this.map,n=this.show,i=this.title,r=this.width,o=this.height,s=this.maxWidth,u=this.offset,c=this.autoPan,d=this.closeOnClick,h=this.message,f=this.maximize,p=this.bindObserver,m=this.$parent,g=this.$el,v=new e.InfoWindow(g,{width:r,height:o,title:i,maxWidth:s,offset:(0,a.createSize)(e,u),enableAutoPan:c,enableCloseOnClick:d,enableMessage:void 0===h,message:h});f?v.enableMaximize():v.disableMaximize(),l.default.call(this,v),this.originInstance=v,v.redraw(),[].forEach.call(g.querySelectorAll("img"),function(e){e.onload=function(){return v.redraw()}}),p(),this.$container=m.originInstance&&m.originInstance.openInfoWindow?m.originInstance:t,n&&this.openInfoWindow()},bindObserver:function(){var e=i.MutationObserver;if(e){var t=this.$el,n=this.originInstance;this.observer=new e(function(e){return n.redraw()}),this.observer.observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}},openInfoWindow:function(){var e=this.BMap,t=this.$container,n=this.position,i=this.originInstance;t.openInfoWindow(i,(0,a.createPoint)(e,n))},closeInfoWindow:function(){this.$container.closeInfoWindow(this.originInstance)}}},e.exports=t.default},a=[e,t,n(1),n(4),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){var i,r,a;r=[e,t,n(1),n(4),n(2)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=a(n),s=a(i);t.default={name:"bm-label",render:function(){},mixins:[(0,o.default)("overlay")],props:{content:{type:String},title:{type:String},offset:{},position:{},labelStyle:{},zIndex:{type:Number,default:0},massClear:{type:Boolean,default:!0}},watch:{content:function(e){this.originInstance.setContent(e)},title:function(e){this.originInstance.setTitle(e)},"offset.width":function(e,t){var n=this.BMap;e.toString()!==t.toString()&&this.originInstance.setOffset((0,r.createSize)(n,{width:e,height:this.offset.height}))},"offset.height":function(e,t){var n=this.BMap;e.toString()!==t.toString()&&this.originInstance.setOffset((0,r.createSize)(n,{width:this.offset.width,height:e}))},"position.lng":function(e,t){var n=this.BMap,i=e;e.toString()!==t.toString()&&i>=-180&&i<=180&&this.originInstance.setCenter((0,r.createPoint)(n,{lng:i,lat:this.center.lat}))},"position.lat":function(e,t){var n=this.BMap,i=e;e.toString()!==t.toString()&&i>=-74&&i<=74&&this.originInstance.setCenter((0,r.createPoint)(n,{lng:this.center.lng,lat:i}))},labelStyle:{handler:function(e){this.originInstance.setStyle(e)},deep:!0},zIndex:function(e){this.originInstance.setZIndex(e)},massClear:function(e){e?this.originInstance.enableMassClear():this.originInstance.disableMassClear()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.content,i=this.title,a=this.offset,o=this.position,l=this.labelStyle,u=this.zIndex,c=this.massClear,d=this.$parent,h=new e.Label(n,{offset:(0,r.createSize)(e,a),position:(0,r.createPoint)(e,o),enableMassClear:c});this.originInstance=h;try{d.originInstance.setLabel(h)}catch(e){t.addOverlay(h)}i&&h.setTitle(i),l&&h.setStyle(l),u&&h.setZIndex(u),s.default.call(this,h)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r,a){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(n),l=o(r);t.default={name:"bm-marker",mixins:[(0,s.default)("overlay")],props:{position:{},offset:{},icon:{},massClear:{type:Boolean,default:!0},dragging:{type:Boolean,default:!1},clicking:{type:Boolean,default:!0},raiseOnDrag:{type:Boolean,default:!1},draggingCursor:{type:String},rotation:{type:Number},shadow:{type:Object},title:{type:String},label:{type:Object},animation:{type:String},top:{type:Boolean,default:!1},zIndex:{type:Number,default:0}},watch:{"position.lng":function(e,t){var n=this.BMap,i=this.originInstance,r=this.position,o=this.renderByParent,s=this.$parent;e!==t&&e>=-180&&e<=180&&i.setPosition((0,a.createPoint)(n,{lng:e,lat:r.lat})),o&&s.reload()},"position.lat":function(e,t){var n=this.BMap,i=this.originInstance,r=this.position,o=this.renderByParent,s=this.$parent;e!==t&&e>=-74&&e<=74&&i.setPosition((0,a.createPoint)(n,{lng:r.lng,lat:e})),o&&s.reload()},"offset.width":function(e,t){var n=this.BMap,i=this.originInstance;e!==t&&i.setOffset(new n.Size(e,this.offset.height))},"offset.height":function(e,t){var n=this.BMap,i=this.originInstance;e!==t&&i.setOffset(new n.Size(this.offset.width,e))},icon:{deep:!0,handler:function(e){var t=this.BMap,n=this.originInstance,i=this.rotation;n&&n.setIcon((0,a.createIcon)(t,e)),i&&n&&n.setRotation(i)}},massClear:function(e){e?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},dragging:function(e){e?this.originInstance.enableDragging():this.originInstance.disableDragging()},clicking:function(){this.reload()},raiseOnDrag:function(){this.reload()},draggingCursor:function(e){this.originInstance.setDraggingCursor(e)},rotation:function(e){this.originInstance.setRotation(e)},shadow:function(e){this.originInstance.setShadow(e)},title:function(e){this.originInstance.setTitle(e)},label:function(e){this.reload()},animation:function(e){this.originInstance.setAnimation(i[e])},top:function(e){this.originInstance.setTop(e)},zIndex:function(e){this.originInstance.setZIndex(e)}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.position,r=this.offset,o=this.icon,s=this.massClear,u=this.dragging,c=this.clicking,d=this.raiseOnDrag,h=this.draggingCursor,f=this.rotation,p=this.shadow,m=this.title,g=this.label,v=this.animation,y=this.top,b=this.renderByParent,_=this.$parent,x=this.zIndex,w=new e.Marker(new e.Point(n.lng,n.lat),{offset:r,icon:o&&(0,a.createIcon)(e,o),enableMassClear:s,enableDragging:u,enableClicking:c,raiseOnDrag:d,draggingCursor:h,rotation:f,shadow:p,title:m});this.originInstance=w,g&&w&&w.setLabel((0,a.createLabel)(e,g)),w.setTop(y),w.setZIndex(x),l.default.call(this,w),b?_.reload():t.addOverlay(w),w.setAnimation(i[v])}}},e.exports=t.default},a=[e,t,n(1),n(4),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){var i,r,a;r=[e,t,n(1)],void 0!==(a="function"==typeof(i=function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(n),r=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();t.default={name:"bm-overlay",mixins:[(0,i.default)("overlay")],props:{pane:{type:String}},watch:{pane:function(){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.$el,i=this.pane,a=this.$emit.bind(this),o=function(o){function s(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(s.__proto__||Object.getPrototypeOf(s)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(s,o),r(s,[{key:"initialize",value:function(){a("initialize",{BMap:e,map:t,el:n,overlay:this});try{t.getPanes()[i].appendChild(n)}catch(e){}return n}},{key:"draw",value:function(){a("draw",{BMap:e,map:t,el:n,overlay:this})}}]),s}(e.Overlay),s=new o;this.originInstance=s,t.addOverlay(s)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r,a){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var s=o(n),l=o(r);t.default={render:function(){},name:"bm-point-collection",mixins:[(0,s.default)("overlay")],props:{points:{type:Array,default:function(){return[]}},shape:{type:String,default:"BMAP_POINT_SHAPE_CIRCLE"},color:{type:String},size:{type:String,default:"BMAP_POINT_SIZE_NORMAL"}},watch:{shape:function(e){var t=this.originInstance,n=this.color,r=this.size;t.setStyles({shape:i[e],color:n,size:i[r]})},size:function(e){var t=this.originInstance,n=this.color,r=this.shape;t.setStyles({shape:i[r],color:n,size:i[e]})},color:function(e){var t=this.originInstance,n=this.shape,r=this.size;t.setStyles({shape:i[n],color:e,size:i[r]})},points:{deep:!0,handler:function(e){var t=this.originInstance;t.clear(),t.setPoints(e)}}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.points,r=this.shape,o=this.color,s=this.size,u=this.originInstance=new e.PointCollection(n.map(function(t){return(0,a.createPoint)(e,t)}),{shape:i[r],color:o,size:i[s]});l.default.call(this,u),t.addOverlay(u)}}},e.exports=t.default},a=[e,t,n(1),n(4),n(2)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){var i,r,a;r=[e,t,n(1),n(4),n(2)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=a(n),s=a(i);t.default={name:"bm-polygon",render:function(){},mixins:[(0,o.default)("overlay")],props:{path:{type:Array,default:function(){return[]}},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},fillColor:{type:String},fillOpacity:{type:Number},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{path:{handler:function(e,t){this.reload()},deep:!0},strokeColor:function(e){this.originInstance.setStrokeColor(e)},strokeOpacity:function(e){this.originInstance.setStrokeOpacity(e)},strokeWeight:function(e){this.originInstance.setStrokeOpacity(e)},strokeStyle:function(e){this.originInstance.setStrokeStyle(e)},fillColor:function(e){this.originInstance.setFillColor(e)},fillOpacity:function(e){this.originInstance.setFillOpacity(e)},editing:function(e){e?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(e){e?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(e){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.path,i=this.strokeColor,a=this.strokeWeight,o=this.strokeOpacity,l=this.strokeStyle,u=this.fillColor,c=this.fillOpacity,d=this.editing,h=this.massClear,f=this.clicking,p=new e.Polygon(n.map(function(t){return(0,r.createPoint)(e,{lng:t.lng,lat:t.lat})}),{strokeColor:i,strokeWeight:a,strokeOpacity:o,strokeStyle:l,fillColor:u,fillOpacity:c,enableMassClear:h,enableClicking:f});this.originInstance=p,t.addOverlay(p),s.default.call(this,p),d?p.enableEditing():p.disableEditing()}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(1),n(4),n(2)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=a(n),s=a(i);t.default={name:"bm-polyline",render:function(){},mixins:[(0,o.default)("overlay")],props:{path:{type:Array},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{path:{handler:function(e,t){this.reload()},deep:!0},strokeColor:function(e){this.originInstance.setStrokeColor(e)},strokeOpacity:function(e){this.originInstance.setStrokeOpacity(e)},strokeWeight:function(e){this.originInstance.setStrokeOpacity(e)},strokeStyle:function(e){this.originInstance.setStrokeStyle(e)},editing:function(e){e?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(e){e?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(e){this.reload()}},methods:{load:function(){var e=this.BMap,t=this.map,n=this.path,i=this.strokeColor,a=this.strokeWeight,o=this.strokeOpacity,l=this.strokeStyle,u=this.editing,c=this.massClear,d=this.clicking,h=new e.Polyline(n.map(function(t){return(0,r.createPoint)(e,{lng:t.lng,lat:t.lat})}),{strokeColor:i,strokeWeight:a,strokeOpacity:o,strokeStyle:l,enableEditing:u,enableMassClear:c,enableClicking:d});this.originInstance=h,t.addOverlay(h),s.default.call(this,h)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){var i,r,a;r=[e,t,n(2),n(5),n(1)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default={name:"bm-bus",mixins:[(0,a.default)("search")],props:{location:{type:[Object,String]},keyword:{type:String},panel:{type:Boolean,default:!0},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(e){var t=this.originInstance,n=this.map;t.setLocation(e||n)},deep:!0},keyword:function(e){this.search(e)},panel:function(){this.reload()},autoViewport:function(e){this.reload()},selectFirstResult:function(e){this.reload()}},methods:{search:function(e){this.originInstance.getBusList(e)},load:function(){var e=this,t=this.location,r=this.selectFirstResult,a=this.autoViewport,o=this.highlightMode,s=this.keyword,l=this.search,u=this.BMap,c=this.map,d=this.originInstance,h=t?(0,i.isPoint)(t)?(0,n.createPoint)(u,t):t:c,f=this.originInstance=new u.BusLineSearch(h,{renderOptions:{map:c,panel:this.$el,selectFirstResult:r,autoViewport:a,highlightMode:o},onGetBusListComplete:function(t){d&&d!==f&&d.clearResults(),e.$emit("getbuslistcomplete",t)},onGetBusLineComplete:function(t){d&&d!==f&&d.clearResults(),e.$emit("getbuslinecomplete",t)},onBusListHtmlSet:function(t){e.$emit("buslisthtmlset",t)},onBusLineHtmlSet:function(t){e.$emit("buslinehtmlset",t)},onMarkersSet:function(t){e.$emit("markersset",t)},onPolylinesSet:function(t){e.$emit("polylinesset",t)}});l(s)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){return e&&e.__esModule?e:{default:e}}(a);t.default={name:"bm-driving",mixins:[(0,o.default)("search")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},startCity:{type:[String,Number]},endCity:{type:[String,Number]},waypoints:{type:Array},policy:{type:String},panel:{type:Boolean,default:!0},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(e){var t=this.originInstance,n=this.map;t.setLocation(e||n)},deep:!0},start:{handler:function(e){var t=this.originInstance,n=this.end,i=this.startCity,a=this.endCity,o=this.waypoints,s=this.BMap,l=this.getWaypoints;t.search((0,r.getPosition)(s,e),(0,r.getPosition)(s,n),{startCity:i,endCity:a,waypoints:l(o)})},deep:!0},end:{handler:function(e){var t=this.originInstance,n=this.start,i=this.startCity,a=this.endCity,o=this.waypoints,s=this.BMap,l=this.getWaypoints;t.search((0,r.getPosition)(s,n),(0,r.getPosition)(s,e),{startCity:i,endCity:a,waypoints:l(o)})},deep:!0},startCity:function(e){var t=this.originInstance,n=this.start,i=this.end,r=this.endCity,a=this.waypoints,o=this.getWaypoints;t.search(n,i,{val:e,endCity:r,waypoints:o(a)})},endCity:function(e){var t=this.originInstance,n=this.start,i=this.end,r=this.startCity,a=this.waypoints,o=this.getWaypoints;t.search(n,i,{startCity:r,val:e,waypoints:o(a)})},waypoints:{handler:function(e){var t=this.originInstance,n=this.start,i=this.end,r=this.startCity,a=this.endCity,o=this.getWaypoints;t.search(n,i,{startCity:r,endCity:a,waypoints:o(e)})},deep:!0},panel:function(){this.reload()},policy:function(e){this.reload()},autoViewport:function(){this.reload()},selectFirstResult:function(){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(e,t,n){var i=n.startCity,r=n.endCity,a=n.waypoints,o=this.originInstance,s=this.getWaypoints;o.search(e,t,{startCity:i,endCity:r,waypoints:s(a)})},getWaypoints:function(e){var t=this.BMap;if(e)return e.map(function(e){return(0,r.getPosition)(t,e)})},load:function(){var e=this,t=this.map,a=this.BMap,o=this.location,s=this.policy,l=this.selectFirstResult,u=this.autoViewport,c=this.highlightMode,d=this.search,h=this.start,f=this.end,p=this.startCity,m=this.endCity,g=this.waypoints,v=this.originInstance,y=this.getWaypoints,b=o?(0,r.isPoint)(o)?(0,n.createPoint)(a,o):o:t,_=this.originInstance=new a.DrivingRoute(b,{renderOptions:{map:t,panel:this.$el,selectFirstResult:l,autoViewport:u,highlightMode:c},policy:i[s],onSearchComplete:function(t){v&&v!==_&&v.clearResults(),e.$emit("searchcomplete",t)},onMarkersSet:function(t){e.$emit("markersset",t)},onInfoHtmlSet:function(t){e.$emit("infohtmlset",t)},onPolylinesSet:function(t){e.$emit("polylinesset",t)},onResultsHtmlSet:function(t){e.$emit("resultshtmlset",t)}});d((0,r.getPosition)(a,h),(0,r.getPosition)(a,f),{startCity:p,endCity:m,waypoints:y(g)})}}},e.exports=t.default},a=[e,t,n(2),n(5),n(1)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){var i,r,a;r=[e,t,n(2),n(5),n(1)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default={name:"bm-local-search",mixins:[(0,a.default)("search")],props:{location:{type:[Object,String]},keyword:{type:[Array,String]},panel:{type:Boolean,default:!0},forceLocal:{type:Boolean},customData:{type:Object},bounds:{type:Object},nearby:{type:Object},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(e){var t=this.originInstance,n=this.search;t.setLocation(e||this.map),n()},deep:!0},keyword:function(){this.search()},bounds:{handler:function(e){(0,this.searchInBounds)(e)},deep:!0},nearby:{handler:function(e){(0,this.searchNearby)(e)},deep:!0},forceLocal:function(){this.reload()},customData:{deep:!0,handler:function(){this.reload()}},pageCapacity:function(e){this.originInstance&&this.originInstance.setPageCapacity(e)},autoViewport:function(e){this.originInstance&&(e?this.originInstance.enableAutoViewport():this.originInstance.disableAutoViewport())},selectFirstResult:function(e){this.originInstance&&(e?this.originInstance.enableFirstResultSelection():this.originInstance.disableFirstResultSelection())},highlightMode:function(){this.reload()}},methods:{searchNearby:function(e){var t=this.originInstance,i=this.keyword,r=this.customData,a=this.BMap;t.searchNearby(i,(0,n.createPoint)(a,e.center),e.radius,r)},searchInBounds:function(e){var t=this.originInstance,i=this.keyword,r=this.customData,a=this.BMap;t.searchInBounds(i,(0,n.createBounds)(a,e),r)},search:function(){var e=this.originInstance,t=this.keyword,n=this.forceLocal,i=this.customData,r=this.nearby,a=this.bounds,o=this.searchNearby,s=this.searchInBounds;r?o(r):a?s(a):e.search(t,{forceLocal:n,customData:i})},load:function(){var e=this,t=this.map,r=this.BMap,a=this.search,o=this.pageCapacity,s=this.autoViewport,l=this.selectFirstResult,u=this.highlightMode,c=this.location,d=this.originInstance,h=c?(0,i.isPoint)(c)?(0,n.createPoint)(r,c):c:t,f=this.originInstance=new r.LocalSearch(h,{onMarkersSet:function(t){e.$emit("markersset",t)},onInfoHtmlSet:function(t){e.$emit("infohtmlset",t)},onResultsHtmlSet:function(t){e.$emit("resultshtmlset",t)},onSearchComplete:function(t){d&&d!==f&&d.clearResults(),e.$emit("searchcomplete",t)},pageCapacity:o,renderOptions:{map:t,panel:this.$el,selectFirstResult:l,autoViewport:s,highlightMode:u}});a()}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){(function(i){var r,a,o,s;s=function(e,t,n,r,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(e){return e&&e.__esModule?e:{default:e}}(a);t.default={name:"bm-transit",mixins:[(0,o.default)("search")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},panel:{type:Boolean,default:!0},policy:{type:String},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(e){var t=this.originInstance,n=this.map;t.setLocation(e||n)},deep:!0},start:{handler:function(e){var t=this.originInstance,n=this.end,i=this.BMap;t.search((0,r.getPosition)(i,e),(0,r.getPosition)(i,n))},deep:!0},end:{handler:function(e){var t=this.originInstance,n=this.start,i=this.BMap;t.search((0,r.getPosition)(i,n),(0,r.getPosition)(i,e))},deep:!0},panel:function(){this.reload()},policy:function(e){this.originInstance.setPolicy(i[e])},pageCapacity:function(e){this.originInstance&&this.originInstance.setPageCapacity(e)},autoViewport:function(e){this.originInstance&&(e?this.originInstance.enableAutoViewport():this.originInstance.disableAutoViewport())},selectFirstResult:function(){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(e,t){this.originInstance.search(e,t)},load:function(){var e=this,t=this.map,a=this.BMap,o=this.location,s=this.policy,l=this.pageCapacity,u=this.selectFirstResult,c=this.autoViewport,d=this.highlightMode,h=this.search,f=this.start,p=this.end,m=this.originInstance,g=o?(0,r.isPoint)(o)?(0,n.createPoint)(a,o):o:t,v=this.originInstance=new a.TransitRoute(g,{renderOptions:{map:t,panel:this.$el,selectFirstResult:u,autoViewport:c,highlightMode:d},policy:i[s],pageCapacity:l,onSearchComplete:function(t){m&&m!==v&&m.clearResults(),e.$emit("searchcomplete",t)},onMarkersSet:function(t){e.$emit("markersset",t)},onInfoHtmlSet:function(t){e.$emit("infohtmlset",t)},onPolylinesSet:function(t){e.$emit("polylinesset",t)},onResultsHtmlSet:function(t){e.$emit("resultshtmlset",t)}});h((0,r.isPoint)(f)?(0,n.createPoint)(a,f):f,(0,r.isPoint)(p)?(0,n.createPoint)(a,p):p)}}},e.exports=t.default},a=[e,t,n(2),n(5),n(1)],void 0!==(o="function"==typeof(r=s)?r.apply(t,a):r)&&(e.exports=o)}).call(t,n(3))},function(e,t,n){var i,r,a;r=[e,t,n(2),n(5),n(1)],void 0!==(a="function"==typeof(i=function(e,t,n,i,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default={name:"bm-walking",mixins:[(0,a.default)("search")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},panel:{type:Boolean,default:!0},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(e){var t=this.originInstance,n=this.map;t.setLocation(e||n)},deep:!0},start:{handler:function(e){var t=this.originInstance,n=this.end,r=this.BMap;t.search((0,i.getPosition)(r,e),(0,i.getPosition)(r,n))},deep:!0},end:{handler:function(e){var t=this.originInstance,n=this.start,r=this.BMap;t.search((0,i.getPosition)(r,n),(0,i.getPosition)(r,e))},deep:!0},panel:function(){this.reload()},autoViewport:function(e){this.reload()},selectFirstResult:function(e){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(e,t){this.originInstance.search(e,t)},load:function(){var e=this,t=this.map,r=this.BMap,a=this.location,o=this.selectFirstResult,s=this.autoViewport,l=this.highlightMode,u=this.search,c=this.start,d=this.end,h=this.originInstance,f=a?(0,i.isPoint)(a)?(0,n.createPoint)(r,a):a:t,p=this.originInstance=new r.WalkingRoute(f,{renderOptions:{map:t,panel:this.$el,selectFirstResult:o,autoViewport:s,highlightMode:l},onSearchComplete:function(t){h&&h!==p&&h.clearResults(),e.$emit("searchcomplete",t)},onMarkersSet:function(t){e.$emit("markersset",t)},onInfoHtmlSet:function(t){e.$emit("infohtmlset",t)},onPolylinesSet:function(t){e.$emit("polylinesset",t)},onResultsHtmlSet:function(t){e.$emit("resultshtmlset",t)}});u((0,i.isPoint)(c)?(0,n.createPoint)(r,c):c,(0,i.isPoint)(d)?(0,n.createPoint)(r,d):d)}}},e.exports=t.default})?i.apply(t,r):i)&&(e.exports=a)},function(e,t,n){e.exports=function(){function e(e){for(var n=[],i=0;i<e.length-1;i++){var r=t(e[i],e[i+1]);r&&r.length>0&&(n=n.concat(r))}return n}function t(e,t){var n=[];if(!(e&&t&&e instanceof BMap.Point&&t instanceof BMap.Point))return null;var i,r,a,o,s,l,u=function(e){return 1-2*e+e*e},c=function(e){return 2*e-2*e*e},d=function(e){return e*e},h=0,f=0;if(void 0!==t){var p=parseFloat(e.lat),m=parseFloat(t.lat),g=parseFloat(e.lng),v=parseFloat(t.lng);for(v>g&&parseFloat(v-g)>180&&g<0&&(g=parseFloat(360+g)),g>v&&parseFloat(g-v)>180&&v<0&&(v=parseFloat(360+v)),l=0,m==p?(i=0,r=g-v):v==g?(i=Math.PI/2,r=p-m):(i=Math.atan((m-p)/(v-g)),r=(m-p)/Math.sin(i)),0==l&&(l=i+Math.PI/5),s=(a=r/2)*Math.cos(l)+g,o=a*Math.sin(l)+p,h=0;h<31;h++)n.push(new BMap.Point(g*u(f)+s*c(f)+v*d(f),p*u(f)+o*c(f)+m*d(f))),f+=1/30;return n}void 0!==n&&(n=[])}return function(t,n){try{BMap}catch(t){throw Error("Baidu Map JS API is not ready yet!")}var i=e(t),r=new BMap.Polyline(i,n);return r.addEventListener("lineupdate",function(){this.isEditing&&this.enableEditing()}),r.cornerPoints=t,r.editMarkers=[],r.enableEditing=function(){var t=this;if(t.map){t.disableEditing();for(var n=0;n<t.cornerPoints.length;n++){var i=new BMap.Marker(t.cornerPoints[n],{icon:new BMap.Icon("http://api.map.baidu.com/library/CurveLine/1.5/src/circle.png",new BMap.Size(16,16)),enableDragging:!0,raiseOnDrag:!0});i.addEventListener("dragend",function(){t.cornerPoints.length=0;for(var n=0;n<t.editMarkers.length;n++)t.cornerPoints.push(t.editMarkers[n].getPosition());var i=e(t.cornerPoints);t.setPath(i)}),i.index=n,t.editMarkers.push(i),t.map.addOverlay(i)}}t.isEditing=!0},r.disableEditing=function(){this.isEditing=!1;for(var e=0;e<this.editMarkers.length;e++)this.map.removeOverlay(this.editMarkers[e]),this.editMarkers[e]=null;this.editMarkers.length=0},r.getPath=function(){return i},r}}()},function(e,t,n){e.exports=function(){var e=function(){var e=function(e){var t={data:[],heatmap:e};this.max=1,this.get=function(e){return t[e]},this.set=function(e,n){t[e]=n}};e.prototype={addDataPoint:function(e,t){if(!(e<0||t<0)){var n=this,i=n.get("heatmap"),r=n.get("data");if(r[e]||(r[e]=[]),r[e][t]||(r[e][t]=0),r[e][t]+=arguments.length<3?1:arguments[2],n.set("data",r),n.max<r[e][t])return i.get("actx").clearRect(0,0,i.get("width"),i.get("height")),void n.setDataSet({max:r[e][t],data:r},!0);i.drawAlpha(e,t,r[e][t],!0)}},setDataSet:function(e,t){var n=this.get("heatmap"),i=[],r=e.data,a=r.length;if(n.clear(),this.max=e.max,n.get("legend")&&n.get("legend").update(e.max),null!=t&&t){for(var o in r)if(void 0!==o)for(var s in r[o])void 0!==s&&n.drawAlpha(o,s,r[o][s],!1)}else for(;a--;){var l=r[a];n.drawAlpha(l.x,l.y,l.count,!1),i[l.x]||(i[l.x]=[]),i[l.x][l.y]||(i[l.x][l.y]=0),i[l.x][l.y]=l.count}n.colorize(),this.set("data",r)},exportDataSet:function(){var e=this.get("data"),t=[];for(var n in e)if(void 0!==n)for(var i in e[n])void 0!==i&&t.push({x:parseInt(n,10),y:parseInt(i,10),count:e[n][i]});return{max:this.max,data:t}},generateRandomDataSet:function(e){var t=this.get("heatmap"),n=t.get("width"),i=t.get("height"),r={},a=Math.floor(1e3*Math.random()+1);r.max=a;for(var o=[];e--;)o.push({x:Math.floor(Math.random()*n+1),y:Math.floor(Math.random()*i+1),count:Math.floor(Math.random()*a+1)});r.data=o,this.setDataSet(r)}};var t=function(e){this.config=e;var t={element:null,labelsEl:null,gradientCfg:null,ctx:null};this.get=function(e){return t[e]},this.set=function(e,n){t[e]=n},this.init()};t.prototype={init:function(){var e,t,n=this,i=n.config,r=i.title||"Legend",a=i.position,o=i.offset||10,s=(i.gradient,document.createElement("ul")),l="";n.processGradientObject(),a.indexOf("t")>-1?l+="top:"+o+"px;":l+="bottom:"+o+"px;",a.indexOf("l")>-1?l+="left:"+o+"px;":l+="right:"+o+"px;",(e=document.createElement("div")).style.cssText="border-radius:5px;position:absolute;"+l+"font-family:Helvetica; width:256px;z-index:10000000000; background:rgba(255,255,255,1);padding:10px;border:1px solid black;margin:0;",e.innerHTML="<h3 style='padding:0;margin:0;text-align:center;font-size:16px;'>"+r+"</h3>",s.style.cssText="position:relative;font-size:12px;display:block;list-style:none;list-style-type:none;margin:0;height:15px;",(t=document.createElement("div")).style.cssText=["position:relative;display:block;width:256px;height:15px;border-bottom:1px solid black; background-image:url(",n.createGradientImage(),");"].join(""),e.appendChild(s),e.appendChild(t),n.set("element",e),n.set("labelsEl",s),n.update(1)},processGradientObject:function(){var e=this.config.gradient,t=[];for(var n in e)e.hasOwnProperty(n)&&t.push({stop:n,value:e[n]});t.sort(function(e,t){return e.stop-t.stop}),t.unshift({stop:0,value:"rgba(0,0,0,0)"}),this.set("gradientArr",t)},createGradientImage:function(){var e,t=this.get("gradientArr"),n=t.length,i=document.createElement("canvas"),r=i.getContext("2d");i.width="256",i.height="15",e=r.createLinearGradient(0,5,256,10);for(var a=0;a<n;a++)e.addColorStop(1/(n-1)*a,t[a].value);r.fillStyle=e,r.fillRect(0,5,256,10),r.strokeStyle="black",r.beginPath();for(var a=0;a<n;a++)r.moveTo(.5+(1/(n-1)*a*256>>0),0),r.lineTo(.5+(1/(n-1)*a*256>>0),0==a?15:5);return r.moveTo(255.5,0),r.lineTo(255.5,15),r.moveTo(255.5,4.5),r.lineTo(0,4.5),r.stroke(),this.set("ctx",r),i.toDataURL()},getElement:function(){return this.get("element")},update:function(e){for(var t,n,i=this,r=i.get("gradientArr"),a=i.get("ctx"),o=i.get("labelsEl"),s="",l=0;l<r.length;l++)t=e*r[l].stop>>0,n=a.measureText(t).width/2>>0,0==l&&(n=0),l==r.length-1&&(n*=2),s+='<li style="position:absolute;left:'+(((1/(r.length-1)*l*256||0)>>0)-n+.5)+'px">'+t+"</li>";o.innerHTML=s}};var n=function(t){var n={radius:40,element:{},canvas:{},acanvas:{},ctx:{},actx:{},legend:null,visible:!0,width:0,height:0,max:!1,gradient:!1,opacity:180,premultiplyAlpha:!1,bounds:{l:1e3,r:0,t:1e3,b:0},debug:!1};this.store=new e(this),this.get=function(e){return n[e]},this.set=function(e,t){n[e]=t},this.configure(t),this.init()};return n.prototype={configure:function(e){var n=this;if(n.set("radius",e.radius||40),n.set("element",e.element instanceof Object?e.element:document.getElementById(e.element)),n.set("visible",null==e.visible||e.visible),n.set("max",e.max||!1),n.set("gradient",e.gradient||{.45:"rgb(0,0,255)",.55:"rgb(0,255,255)",.65:"rgb(0,255,0)",.95:"yellow",1:"rgb(255,0,0)"}),n.set("opacity",parseInt(255/(100/e.opacity),10)||180),n.set("width",e.width||0),n.set("height",e.height||0),n.set("debug",e.debug),e.legend){var i=e.legend;i.gradient=n.get("gradient"),n.set("legend",new t(i))}},resize:function(){var e=this,t=e.get("element"),n=e.get("canvas"),i=e.get("acanvas");n.width=i.width=e.get("width")||t.style.width.replace(/px/,"")||e.getWidth(t),this.set("width",n.width),n.height=i.height=e.get("height")||t.style.height.replace(/px/,"")||e.getHeight(t),this.set("height",n.height)},init:function(){var e=this,t=document.createElement("canvas"),n=document.createElement("canvas"),i=t.getContext("2d"),r=n.getContext("2d"),a=e.get("element");e.initColorPalette(),e.set("canvas",t),e.set("ctx",i),e.set("acanvas",n),e.set("actx",r),e.resize(),t.style.cssText=n.style.cssText="position:absolute;top:0;left:0;z-index:10000000;",e.get("visible")||(t.style.display="none"),a.appendChild(t),e.get("legend")&&a.appendChild(e.get("legend").getElement()),e.get("debug")&&document.body.appendChild(n),r.shadowOffsetX=15e3,r.shadowOffsetY=15e3,r.shadowBlur=15},initColorPalette:function(){var e,t,n,i=this,r=document.createElement("canvas"),a=i.get("gradient");for(var o in r.width="1",r.height="256",e=r.getContext("2d"),t=e.createLinearGradient(0,0,1,256),(n=e.getImageData(0,0,1,1)).data[0]=n.data[3]=64,n.data[1]=n.data[2]=0,e.putImageData(n,0,0),n=e.getImageData(0,0,1,1),i.set("premultiplyAlpha",n.data[0]<60||n.data[0]>70),a)t.addColorStop(o,a[o]);e.fillStyle=t,e.fillRect(0,0,1,256),i.set("gradient",e.getImageData(0,0,1,256).data)},getWidth:function(e){var t=e.offsetWidth;return e.style.paddingLeft&&(t+=e.style.paddingLeft),e.style.paddingRight&&(t+=e.style.paddingRight),t},getHeight:function(e){var t=e.offsetHeight;return e.style.paddingTop&&(t+=e.style.paddingTop),e.style.paddingBottom&&(t+=e.style.paddingBottom),t},colorize:function(e,t){var n,i,r,a,o,s,l,u,c,d=this,h=d.get("width"),f=d.get("radius"),p=d.get("height"),m=d.get("actx"),g=d.get("ctx"),v=3*f,y=d.get("premultiplyAlpha"),b=d.get("gradient"),_=d.get("opacity"),x=d.get("bounds");null!=e&&null!=t?(e+v>h&&(e=h-v),e<0&&(e=0),t<0&&(t=0),t+v>p&&(t=p-v),n=e,i=t,a=e+v,r=t+v):(n=x.l<0?0:x.l,a=x.r>h?h:x.r,i=x.t<0?0:x.t,r=x.b>p?p:x.b),o=m.getImageData(n,i,a-n,r-i),s=o.data.length;for(var w=3;w<s;w+=4)l=o.data[w],(u=4*l)&&(c=l<_?l:_,o.data[w-3]=b[u],o.data[w-2]=b[u+1],o.data[w-1]=b[u+2],y&&(o.data[w-3]/=255/c,o.data[w-2]/=255/c,o.data[w-1]/=255/c),o.data[w]=c);g.putImageData(o,n,i)},drawAlpha:function(e,t,n,i){var r=this,a=r.get("radius"),o=r.get("actx"),s=(r.get("max"),r.get("bounds")),l=e-1.5*a>>0,u=t-1.5*a>>0,c=e+1.5*a>>0,d=t+1.5*a>>0;o.shadowColor="rgba(0,0,0,"+(n?n/r.store.max:"0.1")+")",o.shadowOffsetX=15e3,o.shadowOffsetY=15e3,o.shadowBlur=15,o.beginPath(),o.arc(e-15e3,t-15e3,a,0,2*Math.PI,!0),o.closePath(),o.fill(),i?r.colorize(l,u):(l<s.l&&(s.l=l),u<s.t&&(s.t=u),c>s.r&&(s.r=c),d>s.b&&(s.b=d))},toggleDisplay:function(){var e=this,t=e.get("visible"),n=e.get("canvas");n.style.display=t?"none":"block",e.set("visible",!t)},getImageData:function(){return this.get("canvas").toDataURL()},clear:function(){var e=this,t=e.get("width"),n=e.get("height");e.store.set("data",[]),e.get("ctx").clearRect(0,0,t,n),e.get("actx").clearRect(0,0,t,n)},cleanup:function(){this.get("element").removeChild(this.get("canvas"))}},{create:function(e){return new n(e)},util:{mousePosition:function(e){var t,n;if(e.layerX?(t=e.layerX,n=e.layerY):e.offsetX&&(t=e.offsetX,n=e.offsetY),void 0!==t)return[t,n]}}}}(),t=function(e){try{BMap}catch(e){throw Error("Baidu Map JS API is not ready yet!")}if(!t._isExtended){t._isExtended=!0,function(e,t,n){var i,r,a=e.prototype,o=new Function;for(i in o.prototype=t.prototype,r=e.prototype=new o,a)r[i]=a[i];e.prototype.constructor=e,e.superClass=t.prototype,"string"==typeof n&&(r._className=n)}(t,BMap.Overlay,"HeatmapOverlay");var n=new t(e);this.__proto__=n.__proto__}this.conf=e,this.heatmap=null,this.latlngs=[],this.bounds=null,this._moveendHandler=this._moveendHandler.bind(this)};return t.prototype.initialize=function(t){this._map=t;var n=document.createElement("div");return n.style.position="absolute",n.style.top=0,n.style.left=0,n.style.border=0,n.style.width=this._map.getSize().width+"px",n.style.height=this._map.getSize().height+"px",this.conf.element=n,t.getPanes().mapPane.appendChild(n),this.heatmap=e.create(this.conf),this._div=n,n},t.prototype.draw=function(){var e=this._map.getBounds();if(!e.equals(this.bounds)){this.bounds=e;var t=this._map.pointToOverlayPixel(e.getNorthEast()),n=this._map.pointToOverlayPixel(e.getSouthWest());if(t&&n){var i=t.y,r=n.x,a=n.y-t.y,o=t.x-n.x;if(this.conf.element.style.left=r+"px",this.conf.element.style.top=i+"px",this.conf.element.style.width=o+"px",this.conf.element.style.height=a+"px",this.heatmap.store.get("heatmap").resize(),this.latlngs.length>0){this.heatmap.clear();for(var s=this.latlngs.length,l={max:this.heatmap.store.max,data:[]};s--;){var u=this.latlngs[s].latlng;if(e.containsPoint(u)){var c=this._map.pointToOverlayPixel(u),d=new BMap.Pixel(c.x-r,c.y-i),h=this.pixelTransform(d);l.data.push({x:h.x,y:h.y,count:this.latlngs[s].c})}}this.heatmap.store.setDataSet(l)}}}},t.prototype.pixelTransform=function(e){for(var t=this.heatmap.get("width"),n=this.heatmap.get("height");e.x<0;)e.x+=t;for(;e.x>t;)e.x-=t;for(;e.y<0;)e.y+=n;for(;e.y>n;)e.y-=n;return e.x=e.x>>0,e.y=e.y>>0,e},t.prototype._moveendHandler=function(e){this.setDataSet(this._data),delete this._data,this._map.removeEventListener("moveend",this._moveendHandler)},t.prototype.setDataSet=function(e){if(this._map){var t=this._map.getBounds(),n=this._map.pointToOverlayPixel(t.getNorthEast()),i=this._map.pointToOverlayPixel(t.getSouthWest());n&&i||(this._data=e,this._map.addEventListener("moveend",this._moveendHandler));var r={max:e.max,data:[]},a=e.data,o=a.length;for(this.latlngs=[];o--;){var s=new BMap.Point(a[o].lng,a[o].lat);if(this.latlngs.push({latlng:s,c:a[o].count}),t.containsPoint(s)){var l=this._map.pointToOverlayPixel(s),u=this._map.pointToOverlayPixel(t.getSouthWest()).x,c=this._map.pointToOverlayPixel(t.getNorthEast()).y,d=new BMap.Pixel(l.x-u,l.y-c),h=this.pixelTransform(d);r.data.push({x:h.x,y:h.y,count:a[o].count})}}this.heatmap.clear(),this.heatmap.store.setDataSet(r)}},t.prototype.addDataPoint=function(e,t,n){var i=new BMap.Point(e,t),r=this.pixelTransform(this._map.pointToOverlayPixel(i));this.heatmap.store.addDataPoint(r.x,r.y,n),this.latlngs.push({latlng:i,c:n})},t.prototype.toggle=function(){this.heatmap.toggleDisplay()},t}()},function(e,t,n){e.exports=function(){function e(e,t){this._point=e,this._html=t}function t(){e.prototype=new BMap.Overlay,e.prototype.initialize=function(e){var t=this._div=n.dom.create("div",{style:"border:solid 1px #ccc;width:auto;min-width:50px;text-align:center;position:absolute;background:#fff;color:#000;font-size:12px;border-radius: 10px;padding:5px;white-space: nowrap;"});return t.innerHTML=this._html,e.getPanes().floatPane.appendChild(t),this._map=e,t},e.prototype.draw=function(){this.setPosition(this.lushuMain._marker.getPosition(),this.lushuMain._marker.getIcon().size)},n.object.extend(e.prototype,{setPosition:function(e,t){var i=this._map.pointToOverlayPixel(e),r=n.dom.getStyle(this._div,"width"),a=n.dom.getStyle(this._div,"height"),o=parseInt(this._div.clientWidth||r,10);parseInt(this._div.clientHeight||a,10),this._div.style.left=i.x-o/2+"px",this._div.style.bottom=-(i.y-t.height)+"px"},setHtml:function(e){this._div.innerHTML=e},setRelatedClass:function(e){this.lushuMain=e}})}var n={dom:{}};n.dom.g=function(e){return"string"==typeof e||e instanceof String?document.getElementById(e):e&&e.nodeName&&(1==e.nodeType||9==e.nodeType)?e:null},n.g=n.G=n.dom.g,n.lang=n.lang||{},n.lang.isString=function(e){return"[object String]"==Object.prototype.toString.call(e)},n.isString=n.lang.isString,n.dom._g=function(e){return n.lang.isString(e)?document.getElementById(e):e},n._g=n.dom._g,n.dom.getDocument=function(e){return 9==(e=n.dom.g(e)).nodeType?e:e.ownerDocument||e.document},n.browser=n.browser||{},n.browser.ie=n.ie=/msie (\d+\.\d+)/i.test(navigator.userAgent)?document.documentMode||+RegExp.$1:void 0,n.dom.getComputedStyle=function(e,t){e=n.dom._g(e);var i,r=n.dom.getDocument(e);return r.defaultView&&r.defaultView.getComputedStyle&&(i=r.defaultView.getComputedStyle(e,null))?i[t]||i.getPropertyValue(t):""},n.dom._styleFixer=n.dom._styleFixer||{},n.dom._styleFilter=n.dom._styleFilter||[],n.dom._styleFilter.filter=function(e,t,i){for(var r,a=0,o=n.dom._styleFilter;r=o[a];a++)(r=r[i])&&(t=r(e,t));return t},n.string=n.string||{},n.string.toCamelCase=function(e){return e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})},n.dom.getStyle=function(e,t){var i=n.dom;e=i.g(e),t=n.string.toCamelCase(t);var r=e.style[t]||(e.currentStyle?e.currentStyle[t]:"")||i.getComputedStyle(e,t);if(!r){var a=i._styleFixer[t];a&&(r=a.get?a.get(e):n.dom.getStyle(e,a))}return(a=i._styleFilter)&&(r=a.filter(t,r,"get")),r},n.getStyle=n.dom.getStyle,n.dom._NAME_ATTRS=function(){var e={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",usemap:"useMap",frameborder:"frameBorder"};return n.browser.ie<8?(e.for="htmlFor",e.class="className"):(e.htmlFor="for",e.className="class"),e}(),n.dom.setAttr=function(e,t,i){return e=n.dom.g(e),"style"==t?e.style.cssText=i:(t=n.dom._NAME_ATTRS[t]||t,e.setAttribute(t,i)),e},n.setAttr=n.dom.setAttr,n.dom.setAttrs=function(e,t){for(var i in e=n.dom.g(e),t)n.dom.setAttr(e,i,t[i]);return e},n.setAttrs=n.dom.setAttrs,n.dom.create=function(e,t){var i=document.createElement(e),r=t||{};return n.dom.setAttrs(i,r)},n.object=n.object||{},n.extend=n.object.extend=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e};var i=function(e,t,n){try{BMap}catch(e){throw Error("Baidu Map JS API is not ready yet!")}!t||t.length<1||(this._map=e,this._path=t,this.i=0,this._setTimeoutQuene=[],this._projection=this._map.getMapType().getProjection(),this._opts={icon:null,speed:4e3,defaultContent:"",showInfoWindow:!1},this._setOptions(n),this._rotation=0,!this._opts.icon instanceof BMap.Icon&&(this._opts.icon=defaultIcon))};return i.prototype._setOptions=function(e){if(e)for(var t in e)e.hasOwnProperty(t)&&(this._opts[t]=e[t])},i.prototype.start=function(){var e=this,t=e._path.length;if(this._opts.onstart&&this._opts.onstart(e),e.i&&e.i<t-1){if(!e._fromPause)return;e._fromStop||e._moveNext(++e.i)}else!e._marker&&e._addMarker(),e._timeoutFlag=setTimeout(function(){!e._overlay&&e._addInfoWin(),e._moveNext(e.i)},400);this._fromPause=!1,this._fromStop=!1},i.prototype.stop=function(){this.i=0,this._fromStop=!0,clearInterval(this._intervalFlag),this._clearTimeout();for(var e=0,t=this._opts.landmarkPois,n=t.length;e<n;e++)t[e].bShow=!1;this._opts.onstop&&this._opts.onstop(this)},i.prototype.pause=function(){clearInterval(this._intervalFlag),this._fromPause=!0,this._clearTimeout(),this._opts.onpause&&this._opts.onpause(this)},i.prototype.hideInfoWindow=function(){this._opts.showInfoWindow=!1,this._overlay&&(this._overlay._div.style.visibility="hidden")},i.prototype.showInfoWindow=function(){this._opts.showInfoWindow=!0,this._overlay&&(this._overlay._div.style.visibility="visible")},i.prototype.dispose=function(){clearInterval(this._intervalFlag),this._setTimeoutQuene&&this._clearTimeout(),this._map&&(this._map.removeOverlay(this._overlay),this._map.removeOverlay(this._marker))},n.object.extend(i.prototype,{_addMarker:function(e){this._marker&&(this.stop(),this._map.removeOverlay(this._marker),clearTimeout(this._timeoutFlag)),this._overlay&&this._map.removeOverlay(this._overlay);var t=new BMap.Marker(this._path[0]);this._opts.icon&&t.setIcon(this._opts.icon),this._map.addOverlay(t),t.setAnimation(BMAP_ANIMATION_DROP),this._marker=t},_addInfoWin:function(){!e.prototype.initialize&&t();var n=new e(this._marker.getPosition(),this._opts.defaultContent);n.setRelatedClass(this),this._overlay=n,this._map.addOverlay(n),this._opts.showInfoWindow?this.showInfoWindow():this.hideInfoWindow()},_getMercator:function(e){return this._map.getMapType().getProjection().lngLatToPoint(e)},_getDistance:function(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},_move:function(e,t,n){var i=this,r=0,a=this._opts.speed/100,o=this._projection.lngLatToPoint(e),s=this._projection.lngLatToPoint(t),l=Math.round(i._getDistance(o,s)/a);l<1?i._moveNext(++i.i):i._intervalFlag=setInterval(function(){if(r>=l){if(clearInterval(i._intervalFlag),i.i>i._path.length)return;i._moveNext(++i.i)}else{r++;var a=n(o.x,s.x,r,l),u=n(o.y,s.y,r,l),c=i._projection.pointToLngLat(new BMap.Pixel(a,u));if(1==r){var d=null;i.i-1>=0&&(d=i._path[i.i-1]),1==i._opts.enableRotation&&i.setRotation(d,e,t),i._opts.autoView&&(i._map.getBounds().containsPoint(c)||i._map.setCenter(c))}i._marker.setPosition(c),i._setInfoWin(c)}},10)},setRotation:function(e,t,n){var i=this,r=0;if(t=i._map.pointToPixel(t),(n=i._map.pointToPixel(n)).x!=t.x){var a=(n.y-t.y)/(n.x-t.x);r=360*Math.atan(a)/(2*Math.PI),r=n.x<t.x?90-r+90:-r,i._marker.setRotation(-r)}else{var o=n.y-t.y,s=0;s=o>0?-1:1,i._marker.setRotation(90*-s)}},linePixellength:function(e,t){return Math.sqrt(Math.abs(e.x-t.x)*Math.abs(e.x-t.x)+Math.abs(e.y-t.y)*Math.abs(e.y-t.y))},pointToPoint:function(e,t){return Math.abs(e.x-t.x)*Math.abs(e.x-t.x)+Math.abs(e.y-t.y)*Math.abs(e.y-t.y)},_moveNext:function(e){var t=this;e<this._path.length-1?t._move(t._path[e],t._path[e+1],t._tween.linear):t.stop()},_setInfoWin:function(e){var t=this;t._overlay.setPosition(e,t._marker.getIcon().size);var n=t._troughPointIndex(e);-1!=n?(clearInterval(t._intervalFlag),t._overlay.setHtml(t._opts.landmarkPois[n].html),t._overlay.setPosition(e,t._marker.getIcon().size),t._pauseForView(n)):t._overlay.setHtml(t._opts.defaultContent)},_pauseForView:function(e){var t=this,n=setTimeout(function(){t._moveNext(++t.i)},1e3*t._opts.landmarkPois[e].pauseTime);t._setTimeoutQuene.push(n)},_clearTimeout:function(){for(var e in this._setTimeoutQuene)clearTimeout(this._setTimeoutQuene[e]);this._setTimeoutQuene.length=0},_tween:{linear:function(e,t,n,i){return(t-e)*n/i+e}},_troughPointIndex:function(e){for(var t=this._opts.landmarkPois,n=0,i=t.length;n<i;n++)if(!t[n].bShow&&this._map.getDistance(new BMap.Point(t[n].lng,t[n].lat),e)<10)return t[n].bShow=!0,n;return-1}}),i}()},function(e,t,n){(function(t){var i,r;!function(t,n){e.exports=n()}(0,function(){"use strict";function e(e){this._markerClusterer=e,this._map=e.getMap(),this._minClusterSize=e.getMinClusterSize(),this._isAverageCenter=e.isAverageCenter(),this._center=null,this._markers=[],this._gridBounds=null,this._isReal=!1,this._clusterMarker=new a(this._center,this._markers.length,{styles:this._markerClusterer.getStyles()})}"undefined"!=typeof window&&window;var t=function(e,t){return function(e,t,a){o=function(){var e,t=e=t||{version:"1.3.8"},n={};t.guid="$BAIDU$",n[t.guid]=n[t.guid]||{},t.dom=t.dom||{},t.dom.g=function(e){return"string"==typeof e||e instanceof String?document.getElementById(e):e&&e.nodeName&&(1==e.nodeType||9==e.nodeType)?e:null},t.g=t.G=t.dom.g,t.dom.getDocument=function(e){return 9==(e=t.dom.g(e)).nodeType?e:e.ownerDocument||e.document},t.lang=t.lang||{},t.lang.isString=function(e){return"[object String]"==Object.prototype.toString.call(e)},t.isString=t.lang.isString,t.dom._g=function(e){return t.lang.isString(e)?document.getElementById(e):e},t._g=t.dom._g,t.browser=t.browser||{},/msie (\d+\.\d)/i.test(navigator.userAgent)&&(t.browser.ie=t.ie=document.documentMode||+RegExp.$1),t.dom.getComputedStyle=function(e,n){e=t.dom._g(e);var i,r=t.dom.getDocument(e);return r.defaultView&&r.defaultView.getComputedStyle&&(i=r.defaultView.getComputedStyle(e,null))?i[n]||i.getPropertyValue(n):""},t.dom._styleFixer=t.dom._styleFixer||{},t.dom._styleFilter=t.dom._styleFilter||[],t.dom._styleFilter.filter=function(e,n,i){for(var r,a=0,o=t.dom._styleFilter;r=o[a];a++)(r=r[i])&&(n=r(e,n));return n},t.string=t.string||{},t.string.toCamelCase=function(e){return e.indexOf("-")<0&&e.indexOf("_")<0?e:e.replace(/[-_][^-_]/g,function(e){return e.charAt(1).toUpperCase()})},t.dom.getStyle=function(e,n){var i=t.dom;e=i.g(e),n=t.string.toCamelCase(n);var r=e.style[n]||(e.currentStyle?e.currentStyle[n]:"")||i.getComputedStyle(e,n);if(!r){var a=i._styleFixer[n];a&&(r=a.get?a.get(e):t.dom.getStyle(e,a))}return(a=i._styleFilter)&&(r=a.filter(n,r,"get")),r},t.getStyle=t.dom.getStyle,/opera\/(\d+\.\d)/i.test(navigator.userAgent)&&(t.browser.opera=+RegExp.$1),t.browser.isWebkit=/webkit/i.test(navigator.userAgent),t.browser.isGecko=/gecko/i.test(navigator.userAgent)&&!/like gecko/i.test(navigator.userAgent),t.browser.isStrict="CSS1Compat"==document.compatMode,t.dom.getPosition=function(e){e=t.dom.g(e);var n,i,r=t.dom.getDocument(e),a=t.browser,o=t.dom.getStyle,s=(a.isGecko>0&&r.getBoxObjectFor&&"absolute"==o(e,"position")&&(""===e.style.top||e.style.left),{left:0,top:0}),l=a.ie&&!a.isStrict?r.body:r.documentElement;if(e==l)return s;if(e.getBoundingClientRect){i=e.getBoundingClientRect(),s.left=Math.floor(i.left)+Math.max(r.documentElement.scrollLeft,r.body.scrollLeft),s.top=Math.floor(i.top)+Math.max(r.documentElement.scrollTop,r.body.scrollTop),s.left-=r.documentElement.clientLeft,s.top-=r.documentElement.clientTop;var u=r.body,c=parseInt(o(u,"borderLeftWidth")),d=parseInt(o(u,"borderTopWidth"));a.ie&&!a.isStrict&&(s.left-=isNaN(c)?2:c,s.top-=isNaN(d)?2:d)}else{n=e;do{if(s.left+=n.offsetLeft,s.top+=n.offsetTop,a.isWebkit>0&&"fixed"==o(n,"position")){s.left+=r.body.scrollLeft,s.top+=r.body.scrollTop;break}n=n.offsetParent}while(n&&n!=e);for((a.opera>0||a.isWebkit>0&&"absolute"==o(e,"position"))&&(s.top-=r.body.offsetTop),n=e.offsetParent;n&&n!=r.body;)s.left-=n.scrollLeft,a.opera&&"TR"==n.tagName||(s.top-=n.scrollTop),n=n.offsetParent}return s},t.event=t.event||{},t.event._listeners=t.event._listeners||[],t.event.on=function(e,n,i){n=n.replace(/^on/i,""),e=t.dom._g(e);var r,a=function(t){i.call(e,t)},o=t.event._listeners,s=t.event._eventFilter,l=n;return n=n.toLowerCase(),s&&s[n]&&(r=s[n](e,n,a),l=r.type,a=r.listener),e.addEventListener?e.addEventListener(l,a,!1):e.attachEvent&&e.attachEvent("on"+l,a),o[o.length]=[e,n,i,a,l],e},t.on=t.event.on,function(){var e=n[t.guid];t.lang.guid=function(){return"TANGRAM__"+(e._counter++).toString(36)},e._counter=e._counter||1}(),n[t.guid]._instances=n[t.guid]._instances||{},t.lang.isFunction=function(e){return"[object Function]"==Object.prototype.toString.call(e)},t.lang.Class=function(e){this.guid=e||t.lang.guid(),n[t.guid]._instances[this.guid]=this},n[t.guid]._instances=n[t.guid]._instances||{},t.lang.Class.prototype.dispose=function(){for(var e in delete n[t.guid]._instances[this.guid],this)t.lang.isFunction(this[e])||delete this[e];this.disposed=!0},t.lang.Class.prototype.toString=function(){return"[object "+(this._className||"Object")+"]"},t.lang.Event=function(e,t){this.type=e,this.returnValue=!0,this.target=t||null,this.currentTarget=null},t.lang.Class.prototype.addEventListener=function(e,n,i){if(t.lang.isFunction(n)){!this.__listeners&&(this.__listeners={});var r,a=this.__listeners;if("string"==typeof i&&i){if(/[^\w\-]/.test(i))throw"nonstandard key:"+i;n.hashCode=i,r=i}0!=e.indexOf("on")&&(e="on"+e),"object"!=typeof a[e]&&(a[e]={}),r=r||t.lang.guid(),n.hashCode=r,a[e][r]=n}},t.lang.Class.prototype.removeEventListener=function(e,n){if(void 0===n||(!t.lang.isFunction(n)||(n=n.hashCode))&&t.lang.isString(n)){!this.__listeners&&(this.__listeners={}),0!=e.indexOf("on")&&(e="on"+e);var i=this.__listeners;if(i[e])if(void 0!==n)i[e][n]&&delete i[e][n];else for(var r in i[e])delete i[e][r]}},t.lang.Class.prototype.dispatchEvent=function(e,n){for(var i in t.lang.isString(e)&&(e=new t.lang.Event(e)),!this.__listeners&&(this.__listeners={}),n=n||{})e[i]=n[i];var r=this.__listeners,a=e.type;if(e.target=e.target||this,e.currentTarget=this,0!=a.indexOf("on")&&(a="on"+a),t.lang.isFunction(this[a])&&this[a].apply(this,arguments),"object"==typeof r[a])for(i in r[a])r[a][i].apply(this,arguments);return e.returnValue},t.lang.inherits=function(e,t,n){var i,r,a=e.prototype,o=new Function;for(i in o.prototype=t.prototype,r=e.prototype=new o,a)r[i]=a[i];e.prototype.constructor=e,e.superClass=t.prototype,"string"==typeof n&&(r._className=n)},t.inherits=t.lang.inherits;var i=function(t,n,r){try{BMap}catch(e){throw Error("Baidu Map JS API is not ready yet!")}e.lang.inherits(i,BMap.Overlay,"TextIconOverlay"),this._position=t,this._text=n,this._options=r||{},this._styles=this._options.styles||[],!this._styles.length&&this._setupDefaultStyles()};return i.prototype._setupDefaultStyles=function(){for(var e,t=[53,56,66,78,90],n=0;e=t[n];n++)this._styles.push({url:"http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m"+n+".png",size:new BMap.Size(e,e)})},i.prototype.initialize=function(e){return this._map=e,this._domElement=document.createElement("div"),this._updateCss(),this._updateText(),this._updatePosition(),this._bind(),this._map.getPanes().markerMouseTarget.appendChild(this._domElement),this._domElement},i.prototype.draw=function(){this._map&&this._updatePosition()},i.prototype.getText=function(){return this._text},i.prototype.setText=function(e){!e||this._text&&this._text.toString()==e.toString()||(this._text=e,this._updateText(),this._updateCss(),this._updatePosition())},i.prototype.getPosition=function(){return this._position},i.prototype.setPosition=function(e){!e||this._position&&this._position.equals(e)||(this._position=e,this._updatePosition())},i.prototype.getStyleByText=function(e,t){var n=parseInt(e),i=parseInt(n/10);return i=Math.max(0,i),i=Math.min(i,t.length-1),t[i]},i.prototype._updateCss=function(){if(this._domElement){var e=this.getStyleByText(this._text,this._styles);this._domElement.style.cssText=this._buildCssText(e)}},i.prototype._updateText=function(){this._domElement&&(this._domElement.innerHTML=this._text)},i.prototype._updatePosition=function(){if(this._domElement&&this._position){var e=this._domElement.style,t=this._map.pointToOverlayPixel(this._position);t.x-=Math.ceil(parseInt(e.width)/2),t.y-=Math.ceil(parseInt(e.height)/2),e.left=t.x+"px",e.top=t.y+"px"}},i.prototype._buildCssText=function(t){var n=t.url,i=t.size,r=t.anchor,a=t.offset,o=t.textColor||"black",s=t.textSize||10,l=[];if(e.browser.ie<7)l.push('filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="'+n+'");');else{l.push("background-image:url("+n+");");var u="0 0";a instanceof BMap.Size&&(u=a.width+"px "+a.height+"px"),l.push("background-position:"+u+";")}return i instanceof BMap.Size&&(r instanceof BMap.Size?(r.height>0&&r.height<i.height&&l.push("height:"+(i.height-r.height)+"px; padding-top:"+r.height+"px;"),r.width>0&&r.width<i.width&&l.push("width:"+(i.width-r.width)+"px; padding-left:"+r.width+"px;")):(l.push("height:"+i.height+"px; line-height:"+i.height+"px;"),l.push("width:"+i.width+"px; text-align:center;"))),l.push("cursor:pointer; color:"+o+"; position:absolute; font-size:"+s+"px; font-family:Arial,sans-serif; font-weight:bold"),l.join("")},i.prototype._bind=function(){function t(t,n){var r=t.srcElement||t.target,a=t.clientX||t.pageX,o=t.clientY||t.pageY;if(t&&n&&a&&o&&r){var s=e.dom.getPosition(i.getContainer());n.pixel=new BMap.Pixel(a-s.left,o-s.top),n.point=i.pixelToPoint(n.pixel)}return n}if(this._domElement){var n=this,i=this._map,r=e.lang.Event;e.event.on(this._domElement,"mouseover",function(e){n.dispatchEvent(t(e,new r("onmouseover")))}),e.event.on(this._domElement,"mouseout",function(e){n.dispatchEvent(t(e,new r("onmouseout")))}),e.event.on(this._domElement,"click",function(e){n.dispatchEvent(t(e,new r("onclick")))})}},i},"object"==typeof t?e.exports=o():void 0!==(r="function"==typeof(i=o)?i.call(t,n,t,e):i)&&(e.exports=r);var o}(t={exports:{}},t.exports),t.exports}(),a=t&&"object"==typeof t&&"default"in t?t.default:t,o=function(e,t,n){t=s(t);var i=e.pointToPixel(t.getNorthEast()),r=e.pointToPixel(t.getSouthWest());i.x+=n,i.y-=n,r.x-=n,r.y+=n;var a=e.pixelToPoint(i),o=e.pixelToPoint(r);return new BMap.Bounds(o,a)},s=function(e){var t=l(e.getNorthEast().lng,-180,180),n=l(e.getSouthWest().lng,-180,180),i=l(e.getNorthEast().lat,-74,74),r=l(e.getSouthWest().lat,-74,74);return new BMap.Bounds(new BMap.Point(n,r),new BMap.Point(t,i))},l=function(e,t,n){return t&&(e=Math.max(e,t)),n&&(e=Math.min(e,n)),e},u=function(e){return"[object Array]"===Object.prototype.toString.call(e)},c=function(e,t){var n=-1;if(u(t))if(t.indexOf)n=t.indexOf(e);else for(var i,r=0;i=t[r];r++)if(i===e){n=r;break}return n},d=function(e,t){try{BMap}catch(e){throw Error("Baidu Map JS API is not ready yet!")}if(e){this._map=e,this._markers=[],this._clusters=[];var n=t||{};this._gridSize=n.gridSize||60,this._maxZoom=n.maxZoom||18,this._minClusterSize=n.minClusterSize||2,this._isAverageCenter=!1,void 0!=n.isAverageCenter&&(this._isAverageCenter=n.isAverageCenter),this._styles=n.styles||[];var i=this;this._map.addEventListener("zoomend",function(){i._redraw()}),this._map.addEventListener("moveend",function(){i._redraw()});var r=n.markers;u(r)&&this.addMarkers(r)}};return d.prototype.addMarkers=function(e){if(e.length){for(var t=0,n=e.length;t<n;t++)this._pushMarkerTo(e[t]);this._createClusters()}},d.prototype._pushMarkerTo=function(e){-1===c(e,this._markers)&&(e.isInCluster=!1,this._markers.push(e))},d.prototype.addMarker=function(e){this._pushMarkerTo(e),this._createClusters()},d.prototype._createClusters=function(){var e=this._map.getBounds();if(e.getCenter())for(var t,n=o(this._map,e,this._gridSize),i=0;t=this._markers[i];i++)!t.isInCluster&&n.containsPoint(t.getPosition())&&this._addToClosestCluster(t)},d.prototype._addToClosestCluster=function(t){for(var n=4e6,i=null,r=(t.getPosition(),0);s=this._clusters[r];r++){var a=s.getCenter();if(a){var o=this._map.getDistance(a,t.getPosition());o<n&&(n=o,i=s)}}var s;i&&i.isMarkerInClusterBounds(t)?i.addMarker(t):((s=new e(this)).addMarker(t),this._clusters.push(s))},d.prototype._clearLastClusters=function(){for(var e,t=0;e=this._clusters[t];t++)e.remove();this._clusters=[],this._removeMarkersFromCluster()},d.prototype._removeMarkersFromCluster=function(){for(var e,t=0;e=this._markers[t];t++)e.isInCluster=!1},d.prototype._removeMarkersFromMap=function(){for(var e,t=0;e=this._markers[t];t++){e.isInCluster=!1;var n=e.getLabel();this._map.removeOverlay(e),e.setLabel(n)}},d.prototype._removeMarker=function(e){var t=c(e,this._markers);return-1!==t&&(this._map.removeOverlay(e),this._markers.splice(t,1),!0)},d.prototype.removeMarker=function(e){var t=this._removeMarker(e);return t&&(this._clearLastClusters(),this._createClusters()),t},d.prototype.removeMarkers=function(e){for(var t=!1,n=0;n<e.length;n++){var i=this._removeMarker(e[n]);t=t||i}return t&&(this._clearLastClusters(),this._createClusters()),t},d.prototype.clearMarkers=function(){this._clearLastClusters(),this._removeMarkersFromMap(),this._markers=[]},d.prototype._redraw=function(){this._clearLastClusters(),this._createClusters()},d.prototype.getGridSize=function(){return this._gridSize},d.prototype.setGridSize=function(e){this._gridSize=e,this._redraw()},d.prototype.getMaxZoom=function(){return this._maxZoom},d.prototype.setMaxZoom=function(e){this._maxZoom=e,this._redraw()},d.prototype.getStyles=function(){return this._styles},d.prototype.setStyles=function(e){this._styles=e,this._redraw()},d.prototype.getMinClusterSize=function(){return this._minClusterSize},d.prototype.setMinClusterSize=function(e){this._minClusterSize=e,this._redraw()},d.prototype.isAverageCenter=function(){return this._isAverageCenter},d.prototype.getMap=function(){return this._map},d.prototype.getMarkers=function(){return this._markers},d.prototype.getClustersCount=function(){for(var e,t=0,n=0;e=this._clusters[n];n++)e.isReal()&&t++;return t},e.prototype.addMarker=function(e){if(this.isMarkerInCluster(e))return!1;if(this._center){if(this._isAverageCenter){var t=this._markers.length+1,n=(this._center.lat*(t-1)+e.getPosition().lat)/t,i=(this._center.lng*(t-1)+e.getPosition().lng)/t;this._center=new BMap.Point(i,n),this.updateGridBounds()}}else this._center=e.getPosition(),this.updateGridBounds();e.isInCluster=!0,this._markers.push(e);var r=this._markers.length;if(r<this._minClusterSize)return this._map.addOverlay(e),!0;if(r===this._minClusterSize)for(var a=0;a<r;a++){var o=this._markers[a].getLabel();this._markers[a].getMap()&&this._map.removeOverlay(this._markers[a]),this._markers[a].setLabel(o)}return this._map.addOverlay(this._clusterMarker),this._isReal=!0,this.updateClusterMarker(),!0},e.prototype.isMarkerInCluster=function(e){if(this._markers.indexOf)return-1!=this._markers.indexOf(e);for(var t,n=0;t=this._markers[n];n++)if(t===e)return!0;return!1},e.prototype.isMarkerInClusterBounds=function(e){return this._gridBounds.containsPoint(e.getPosition())},e.prototype.isReal=function(e){return this._isReal},e.prototype.updateGridBounds=function(){var e=new BMap.Bounds(this._center,this._center);this._gridBounds=o(this._map,e,this._markerClusterer.getGridSize())},e.prototype.updateClusterMarker=function(){if(this._map.getZoom()>this._markerClusterer.getMaxZoom()){this._clusterMarker&&this._map.removeOverlay(this._clusterMarker);for(var e,t=0;e=this._markers[t];t++)this._map.addOverlay(e)}else{if(this._markers.length<this._minClusterSize)return void this._clusterMarker.hide();this._clusterMarker.setPosition(this._center),this._clusterMarker.setText(this._markers.length),this._clusterMarker.addEventListener&&!this._clusterMarker._hasClickEvent&&this._clusterMarker.addEventListener("click",function(e){this._clusterMarker._hasClickEvent=!0,this._markers&&this._map.setViewport(this.getBounds())}.bind(this))}},e.prototype.remove=function(){for(var e=0;this._markers[e];e++){var t=this._markers[e].getLabel();this._markers[e].getMap()&&this._map.removeOverlay(this._markers[e]),this._markers[e].setLabel(t)}this._map.removeOverlay(this._clusterMarker),this._markers.length=0,delete this._markers},e.prototype.getBounds=function(){for(var e,t=new BMap.Bounds(this._center,this._center),n=0;e=this._markers[n];n++)t.extend(e.getPosition());return t},e.prototype.getCenter=function(){return this._center},d})}).call(t,n(3))},function(e,t){e.exports={render:function(){var e=this.$createElement;return(this._self._c||e)("div")},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}]},[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{directives:[{name:"show",rawName:"v-show",value:e.panel,expression:"panel"}]},[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{directives:[{name:"show",rawName:"v-show",value:e.panel,expression:"panel"}]},[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("span",[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("span",[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{directives:[{name:"show",rawName:"v-show",value:e.panel,expression:"panel"}]})},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{directives:[{name:"show",rawName:"v-show",value:e.panel,expression:"panel"}]},[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{directives:[{name:"show",rawName:"v-show",value:e.panel,expression:"panel"}]},[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("span",[e._t("default",[n("input")])],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",[e._t("default")],2)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[e.hasBmView?e._e():n("div",{ref:"view",staticStyle:{width:"100%",height:"100%"}}),e._v(" "),e._t("default")],2)},staticRenderFns:[]}}])},e.exports=i()}});
-//# sourceMappingURL=vendor.99a6983ff19cf979eed3.js.map
\ No newline at end of file
diff --git a/server/public/static/js/vendor.99a6983ff19cf979eed3.js.map b/server/public/static/js/vendor.99a6983ff19cf979eed3.js.map
deleted file mode 100644
index 34b9660..0000000
--- a/server/public/static/js/vendor.99a6983ff19cf979eed3.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///./node_modules/_zrender@4.0.4@zrender/lib/mixin/Animatable.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/AxisPointerView.js","webpack:///./node_modules/_v-charts@1.17.10@v-charts/lib/index.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/tooltip/TooltipModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/CartesianAxisPointer.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/grid.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/radiusAxis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/BarSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/line/LineView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/fixShadow.js","webpack:///./node_modules/_normalize-wheel@1.0.1@normalize-wheel/src/isEventSupported.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/View.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/vml/graphic.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/scale/Log.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/prepareCustom.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/popper.js","webpack:///./node_modules/_resize-observer-polyfill@1.5.0@resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/TimelineAxis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/echarts.js","webpack:///./node_modules/_normalize-wheel@1.0.1@normalize-wheel/index.js","webpack:///./node_modules/_deepmerge@1.5.2@deepmerge/dist/cjs.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/cancel/CancelToken.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gpo.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/number/is-nan.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_to-iobject.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/visual/visualSolution.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/single/Single.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/lines.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/pie/PieView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/Grid.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/DataDiffer.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/lines/LinesView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/action/roamHelper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/theme/light.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/arc.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/lines/linesVisual.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/AxisModel.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/button.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/core/transformData.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/arrayDiff2.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/popup/index.js","webpack:///./node_modules/_hls.js@0.11.0@hls.js/dist/hls.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis/ParallelAxisView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/ContinuousView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/RoamController.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/date.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/progress.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/throttle.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/preprocessor.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/animation/Clip.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/gauge/PointerPath.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Arc.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-create.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/single/singleAxisHelper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/parallel/ParallelSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/ExtensionAPI.js","webpack:///./node_modules/_echarts@4.1.0@echarts/extension/bmap/BMapView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/helper/dataProvider.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/theme/dark.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/SymbolDraw.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/json/stringify.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/axisHelper.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/Painter.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_array-includes.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/LRU.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/processor/dataSample.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot/BoxplotView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot/BoxplotSeries.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/bind.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/roams.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_set-species.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/AxisPointerModel.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/extends.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/option.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/GraphSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/Tree.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis/parallelAxisAction.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/fix/nanhai.js","webpack:///./node_modules/_lodash@4.17.11@lodash/_freeGlobal.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/pie/PieSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/action/geoRoam.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/parallel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_wks-define.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/preprocessor/helper/compatStyle.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/LinearGradient.js","webpack:///./node_modules/_is-buffer@1.1.6@is-buffer/index.js","webpack:///./node_modules/_echarts@4.1.0@echarts/index.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/event.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-keys.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/gridSimple.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/EffectLine.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/Component.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/brush/brushAction.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/brush/BrushView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/Storage.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/scrollbar-width.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkLineView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legend/legendAction.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-detect.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/areaStyle.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/helper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/visual/VisualMapping.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/colorPalette.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/radar/RadarModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/featureManager.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/TreeView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/fix/geoCoord.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/lineStyle.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_a-function.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/parallelAxis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/AngleAxis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/interactionMutex.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/ContinuousModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/map/mapVisual.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/SingleAxisPointer.js","webpack:///./node_modules/_lodash@4.17.11@lodash/isObject.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/createView.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_is-object.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/sankeyLayout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/listComponent.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/Element.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/scale/Ordinal.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/axisModelCommonMixin.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/utils.js","webpack:///./node_modules/_echarts-amap@1.0.0-rc.6@echarts-amap/dist/echarts-amap.min.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/define-properties.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_an-object.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/geoCreator.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis/SingleAxisView.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/funnel/FunnelSeries.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/spread.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/DataZoomView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/scale/Time.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/export.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gopn.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/vue-popper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/helper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/brushHelper.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/Axis2D.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/selectableMixin.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis/CartesianAxisView.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_core.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/Line.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/Pattern.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/pie.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legend.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/funnel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/Polyline.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/LineDraw.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/CandlestickSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/BaseBarSeries.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_fails.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legend/scrollableLegendAction.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/calendar/Calendar.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/scatter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/component.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver/themeRiverVisual.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_dom-create.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/line/lineAnimationDiff.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/bbox.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_global.js","webpack:///./node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_to-length.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/mixin/Transformable.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/tooltip.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_wks-ext.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/preprocessor.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/Region.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/single/singleCreator.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/itemStyle.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/tooltip/TooltipContent.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/scrollbar.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/DataZoom.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_meta.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/forceLayout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/funnel/FunnelView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/parseGeoJson.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/cubic.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/InsideZoomView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/lines/linesLayout.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/after-leave.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataset.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/line/poly.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/line.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_redefine.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/scale/Interval.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_export.js","webpack:///./node_modules/_lodash@4.17.11@lodash/_objectToString.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/graphic.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_task.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/poly.js","webpack:///./node_modules/_vue-week-time@1.0.8@vue-week-time/dist/index.min.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/PolarModel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-assign.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot/boxplotLayout.js","webpack:///./node_modules/_lodash@4.17.11@lodash/_root.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/input.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/parallel/ParallelView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/util.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/tool/path.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_perform.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/SankeyView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/boxLayout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/stream/Scheduler.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/typeDefaulter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/treeHelper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/visual/aria.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/parallelCreator.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/SelectZoomModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/single/prepareCustom.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/forceHelper.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/util.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/layoutHelper.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/toConsumableArray.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkAreaView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/gauge/GaugeSeries.js","webpack:///./node_modules/_normalize-wheel@1.0.1@normalize-wheel/src/normalizeWheel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/helper/sourceHelper.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/_vue@2.5.17@vue/dist/vue.esm.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/asyncToGenerator.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_to-primitive.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/aria-utils.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/preprocessor/backwardCompat.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_is-array.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/VisualMapModel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/object/define-property.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/PictorialBarSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/processor/dataFilter.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/transitions/collapse-transition.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/core/settle.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/core/Axios.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/cancel/isCancel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/config.js","webpack:///./node_modules/_vue-clipboard2@0.2.1@vue-clipboard2/vue-clipboard.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/env.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_shared.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/loading/default.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/axisTrigger.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/TreemapSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/edgeVisual.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/log.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/vdom.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/adjustEdge.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legend/LegendModel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es7.promise.try.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/GridModel.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/animation/Animator.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/SliderZoomView.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/core/InterceptorManager.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/parallel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/heatmap/HeatmapSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/funnel/funnelLayout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/List.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/traversalHelper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/Geo.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/sliderMove.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/text.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/ToolboxModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/fix/textCoord.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkAreaModel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_has.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/radar.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/createListSimply.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis/AxisView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis/AngleAxisView.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gopd.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/timsort.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_microtask.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/Parallel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/line/helper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/Breadcrumb.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/input-number.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/tag.js","webpack:///./node_modules/_echarts-amap@1.0.0-rc.6@echarts-amap/index.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/lang.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/tree.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/VisualMapView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/extension/bmap/BMapCoordSys.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/button-group.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/BoundingRect.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_to-object.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/core/enhanceError.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.symbol.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/core/dispatchRequest.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoomSelect.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/typeDefaulter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/AxisModel.js","webpack:///./node_modules/_clipboard@2.0.1@clipboard/dist/clipboard.min.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/mixins/emitter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/polar.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/select.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/SelectZoomView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/image.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/angleAxis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legend/ScrollableLegendModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/visualEncoding.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/radar/IndicatorAxis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/layout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/tooltip/TooltipView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/Path.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMapPiecewise.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/SunburstSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/single/SingleAxis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/calendar.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/helper/createDimensions.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/history.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/view/Chart.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/barItemStyle.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/merge.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/simpleLayoutHelper.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/mixin/RectText.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/helper/sourceType.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/json/stringify.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.number.is-nan.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/windingLine.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/geo.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/ParallelAxis.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/util.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/svg/helper/ClippathManager.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/heatmap/HeatmapLayer.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/markerHelper.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/radar/backwardCompat.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/geo/GeoView.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/mixins/migrating.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/SankeySeries.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/array/nest.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/svg/helper/GradientManager.js","webpack:///./node_modules/_throttle-debounce@1.1.0@throttle-debounce/throttle.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/effectScatter/EffectScatterView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/Style.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/config.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_cof.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Line.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_to-integer.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver/ThemeRiverView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/svg/graphic.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/effectScatter/EffectScatterSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/BaseAxisPointer.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/visual/dataColor.js","webpack:///./node_modules/_lodash@4.17.11@lodash/now.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/cursorHelper.js","webpack:///./node_modules/_lodash@4.17.11@lodash/toNumber.js","webpack:///./node_modules/_process@0.11.10@process/browser.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/axisDefault.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/typeDefaulter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/layout/points.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/Handler.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/Layer.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/calendar/CalendarView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/prepareCustom.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/ToolboxView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMapContinuous.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_shared-key.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/map/backwardCompat.js","webpack:///./node_modules/_normalize-wheel@1.0.1@normalize-wheel/src/UserAgent_DEPRECATED.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/single/AxisModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis/AxisBuilder.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/clickoutside.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/preprocessor.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/PictorialBarView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/InsideZoomModel.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/mixins/locale.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/scatter/ScatterView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/gauge/GaugeView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/globalListener.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/axisModelCreator.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_ctx.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/helper/completeDimensions.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/radar/Radar.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/circularLayout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/categoryVisual.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legend/LegendView.js","webpack:///./node_modules/_regenerator-runtime@0.11.1@regenerator-runtime/runtime-module.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-pie.js","webpack:///./node_modules/_lodash@4.17.11@lodash/_getRawTag.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/markArea.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/treeAction.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/combineURLs.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/vml/vml.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/Series.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/Source.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/radar.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/curve.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/Graph.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/PiecewiseView.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver/ThemeRiverSeries.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/resize-event.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_iterators.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/Global.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/stream/task.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/tool/color.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/visual/seriesColor.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/SliderTimelineModel.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/defineProperty.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/assign.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/visualMapAction.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/line.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/helper/dimensionHelper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/graphic.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/DataView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/number.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_classof.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/SunburstPiece.js","webpack:///./node_modules/_axios@0.18.0@axios/index.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_new-promise-capability.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/categoryFilter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/pictorialBar.js","webpack:///./node_modules/_echarts@4.1.0@echarts/extension/bmap/BMapModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/OrdinalMeta.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_invoke.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/brush/BrushModel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_hide.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/cartesianAxisHelper.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_library.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_wks.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/createListFromArray.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_redefine-all.js","webpack:///./node_modules/_lodash@4.17.11@lodash/isObjectLike.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-create.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/dataZoomProcessor.js","webpack:///./node_modules/_lodash@4.17.11@lodash/isSymbol.js","webpack:///./node_modules/_normalize-wheel@1.0.1@normalize-wheel/src/ExecutionEnvironment.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/helper/dataStackHelper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/bar.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_html.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/aria-dialog.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/Symbol.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/svg/Painter.js","webpack:///./node_modules/_vue-aplayer@1.6.1@vue-aplayer/dist/vue-aplayer.min.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline.js","webpack:///./node_modules/_echarts@4.1.0@echarts/extension/bmap/bmap.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/line/LineSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/viewHelper.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/Restore.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/OptionManager.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/guid.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/animation/requestAnimationFrame.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/simpleLayout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/candlestickLayout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/treemapAction.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/LargeLineDraw.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/Brush.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkerView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/vml/core.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/sunburstLayout.js","webpack:///./node_modules/_lodash@4.17.11@lodash/_Symbol.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/BrushController.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/calendar/CalendarModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legendScroll.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/circularLayoutHelper.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/locale/lang/zh-CN.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/mixin/Eventful.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/map/mapSymbolLayout.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/util.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/rule/required.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/rule/whitespace.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/rule/type.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/rule/range.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/rule/enum.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/rule/pattern.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/rule/index.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/object.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/enum.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/type.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/index.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/string.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/method.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/number.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/boolean.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/regexp.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/integer.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/float.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/array.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/pattern.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/date.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/validator/required.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/messages.js","webpack:///./node_modules/_async-validator@1.8.5@async-validator/es/index.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/layout/barPolar.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-dps.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/Axis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/BarView.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/cancel/Cancel.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/BezierCurve.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/GeoModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legend/legendFilter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/EffectSymbol.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/matrix.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/ParallelModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/TimelineModel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.object.define-properties.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/container/Group.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/sunburstAction.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot/boxplotVisual.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/globalDefault.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/fix/diaoyuIsland.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/Cartesian2D.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/createRenderPlanner.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/treeLayout.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_property-desc.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/roamHelper.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/Text.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/text.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/dataZoomAction.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/smoothSpline.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/layout/barGrid.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/core/createError.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/radar/RadarView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/timelineAction.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/defaults.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkPointModel.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/typeof.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/path.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver/themeRiverLayout.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/PiecewiseModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkLineModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/CoordinateSystem.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/map/MapSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/singleAxis.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/dom.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/calendar/prepareCustom.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/Image.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/LargeSymbolDraw.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/svg/svg.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gops.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/polarCreator.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/effectScatter.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/RadiusAxis.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/modelHelper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axis/RadiusAxisView.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/promise.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/treemapVisual.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.object.assign.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/tool/transformPath.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/data/helper/linkList.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_for-of.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/visual/visualDefault.js","webpack:///./node_modules/_regenerator-runtime@0.11.1@regenerator-runtime/runtime.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_enum-keys.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-call.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/map/MapView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/Cartesian.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/SaveAsImage.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/CandlestickView.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/object/define-properties.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/pie/pieLayout.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/btoa.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/array/from.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_create-property.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/referHelper.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/svg/helper/ShadowManager.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/svg/helper/Definable.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/symbol.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/visual/symbol.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/brush/selector.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/Gradient.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_string-at.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/regenerator/index.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/adapters/xhr.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_object-dp.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/axisTickLabelBuilder.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/labelHelper.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/brush/visualEncoding.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/animation/Animation.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/sankeyVisual.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/vector.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/TreeSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/custom.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/EffectPolyline.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_iobject.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/map.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/view/Component.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/cookies.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/checkbox-group.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/heatmap/HeatmapView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/GraphView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/BrushTargetManager.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/action/createDataSelectAction.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/radar/RadarSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/lines/LinesSeries.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es7.promise.finally.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/parallelPreprocessor.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/polygon.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/whiskerBoxCommon.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/AxisModel.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/TimelineView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/Displayable.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/RadialGradient.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/prepareCustom.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/sankeyAction.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/contain/quadratic.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/SliderZoomModel.js","webpack:///./node_modules/_throttle-debounce@1.1.0@throttle-debounce/debounce.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/processor/dataStack.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/IncrementalDisplayable.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_uid.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/LinePath.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/textStyle.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/radar/radarLayout.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.promise.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/makeStyleMapper.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/array/from.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/SliderTimelineView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/title.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Sector.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/treemapLayout.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/zrender.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/Polar.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_defined.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkPointView.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Polyline.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_user-agent.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_species-constructor.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/brush/preprocessor.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/legend/ScrollableLegendView.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/promise.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/createGraphFromNodeEdge.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/GestureMgr.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/PolarAxisPointer.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/pie/labelLayout.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/fixClipWithShadow.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/mixin/Draggable.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_promise-resolve.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/scatter/ScatterSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/candlestickVisual.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/TreemapView.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/symbol/index.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/heatmap.js","webpack:///./node_modules/_babel-helper-vue-jsx-merge-props@2.0.3@babel-helper-vue-jsx-merge-props/index.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/brush.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_descriptors.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Polygon.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/element-ui.common.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_an-instance.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/svg/core.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/mixins/focus.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/checkbox.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/locale/index.js","webpack:///./node_modules/_lodash@4.17.11@lodash/_baseGetTag.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/map/mapDataStatistic.js","webpack:///./node_modules/_resize-detector@0.1.9@resize-detector/esm/index.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/helper.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-define.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/helper/MapDraw.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/helpers/buildURL.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/format.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/dom/HandlerProxy.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/parallel/parallelVisual.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/roundRect.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/fn/object/assign.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/smoothBezier.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/tooltip.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/model.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/animation/easing.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/gauge.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/popup/popup-manager.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/radar/RadarView.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/clazz.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Ring.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/helper.js","webpack:///./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/number/is-nan.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/AxisProxy.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/MagicType.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/findPointFromSeries.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/markLine.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/shared.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/dataFormat.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/graphAction.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/model/Model.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/vml/Painter.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/locale/format.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/scale/helper.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/CompoundPath.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/scale/Scale.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/markPoint.js","webpack:///./node_modules/_lodash@4.17.11@lodash/debounce.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/core/PathProxy.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Rect.js","webpack:///./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Circle.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.array.from.js","webpack:///./node_modules/_axios@0.18.0@axios/lib/axios.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/DataZoomModel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-step.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkerModel.js","webpack:///./node_modules/_core-js@2.5.7@core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/util/animation.js","webpack:///./node_modules/_vue-router@3.0.1@vue-router/dist/vue-router.esm.js","webpack:///./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/SunburstView.js","webpack:///./node_modules/_element-ui@2.4.6@element-ui/lib/utils/scroll-into-view.js","webpack:///./node_modules/_vue-baidu-map@0.21.11@vue-baidu-map/index.js"],"names":["Animator","__webpack_require__","log","_util","isString","isFunction","isObject","isArrayLike","indexOf","Animatable","this","animators","prototype","constructor","animate","path","loop","target","animatingShape","el","zr","__zr","pathSplitted","split","prop","i","l","length","animator","during","dirty","done","splice","push","animation","addAnimator","id","stopAnimation","forwardToLast","len","stop","animateTo","time","delay","easing","callback","forceAnimate","_animateToShallow","slice","count","start","source","objShallow","propertyCount","name","hasOwnProperty","props","attr","when","_default","module","exports","echarts","globalListener","AxisPointerView","extendComponentView","type","render","globalAxisPointerModel","ecModel","api","globalTooltipModel","getComponent","triggerOn","get","register","currTrigger","e","dispatchAction","x","offsetX","y","offsetY","remove","unregister","getZr","superApply","_model","arguments","dispose","factory","echartsLib","DEFAULT_THEME","categoryAxis","axisLine","show","axisTick","splitLine","valueAxis","line","smooth","grid","containLabel","left","right","DEFAULT_COLORS","HEAT_MAP_COLOR","HEAT_BMAP_COLOR","itemPoint","color","join","STATIC_PROPS","ECHARTS_SETTINGS","ABBR","th","mi","bi","tr","DEFAULT_OPTIONS","zeroFormat","nullFormat","defaultFormat","scalePercentBy100","abbrLabel","TRILLION","BILLION","MILLION","THOUSAND","toFixed","value","maxDecimals","roundingFunction","optionals","splitValue","toString","minDecimals","boundedPrecision","Math","min","max","power","pow","output","optionalsRegExp","RegExp","replace","numberToFormat","options","format","abs","negP","optDec","abbr","decimal","neg","abbrForce","signed","match","int","precision","thousands","leadingCount","trillion","million","extend","sub","Object","keys","forEach","key","formats","numerify","input","formatType","round","formatFunction","kind","regexp","bind","isNaN","numIsNaN","_numberToFormat","setOptions","opts","reset","space","_typeof","Symbol","iterator","obj","defineProperty","enumerable","configurable","writable","_extends","assign","call","toArray","arr","Array","isArray","from","debounce","fn","timer","self","args","clearTimeout","setTimeout","apply","set$1","targetTemp","pathArr","item","index","_typeof$1","getType","v","getTypeof","cloneDeep","JSON","parse","stringify","hasOwn","getFormated","val","digit","defaultVal","undefined","digitStr","formatter","getStackMap","stack","stackMap","mapPromise","getMapJSON","_ref","url","position","positionJsonLink","beforeRegisterMapOnce","mapURLProfix","link","Promise","resolve","reject","xhr","XMLHttpRequest","open","send","onload","responseText","onerror","then","res","bmapPromise","amapPromise","getBmap","callbackName","Date","now","window","script","document","createElement","src","body","appendChild","getAmap","VALUE_AXIS_OPACITY","getBarDimAxis","innerRows","dimAxisName","dimension","axisVisible","dimAxisType","dims","map","nameLocation","nameGap","data","result","getValueAxisData","row","axisLabel","String","getBarMeaAxis","meaAxisName","meaAxisType","scale","meaAxisBase","meaAxis","_loop","getBarTooltip","axisSite","isHistogram","labelMap","secondAxis","top","trigger","items","tpl","seriesName","getBarSeries","series","metrics","itemStyle","label","_args$showLine","showLine","barGap","opacity","seriesTemp","secondDimAxisIndex","getValueData","seriesItem","itemOpacity","defaultValue","some","get$1","barCategoryGap","getLegend","legendName","getDims","rows","bar$1","columns","settings","extra","_settings$axisSite","_settings$dimension","_settings$stack","_settings$axisVisible","_settings$digit","_settings$dataOrder","dataOrder","_settings$scale","_settings$min","_settings$max","_settings$legendName","_settings$labelMap","_settings$barGap","tooltipVisible","legendVisible","bottom","concat","xAxisType","yAxisType","xAxisName","yAxisName","_label","order","sort","a","b","console","warn","legend$$1","yAxis","xAxis","legend","tooltip","histogram","status","_settings$axisSite2","_settings$dimension2","_settings$stack2","_settings$axisVisible2","_settings$digit2","_settings$dataOrder2","_settings$scale2","_settings$min2","_settings$max2","_settings$labelMap2","_settings$legendName2","_settings$barGap2","_label2","Loading","_h","$createElement","_c","_self","staticClass","attrs","viewBox","cx","cy","r","fill","staticRenderFns","DataEmpty","_v","setMark","marks","Core","h","class","s","$options","_componentTag","toLowerCase","style","canvasStyle","v-charts-mask-status","dataEmpty","loading","ref","display","$slots","default","width","height","beforeConfig","Function","afterConfig","afterSetOption","afterSetOptionOnce","events","colors","Boolean","legendPosition","markLine","markArea","markPoint","visualMap","dataZoom","toolbox","initOptions","title","radar","axisPointer","brush","geo","timeline","graphic","backgroundColor","textStyle","theme","themeName","judgeWidth","widthChangeDelay","Number","tooltipFormatter","resizeable","resizeDelay","changeDelay","setOptionOpts","cancelResizeCheck","notSetUnchange","watch","deep","handler","changeHandler","chartLib","chartHandler","computed","chartColor","methods","dataHandler","_data","_data$columns","_data$rows","_once","optionsHandler","nextTickResize","$nextTick","resize","echartsResize","$el","clientWidth","clientHeight","_this","orient","setting","setAnimation","option","setExtend","bmap","amap","isEqual","alice","bob","aliceValue","bobValue","aliceType","_key","_store","notMerge","_isDestroyed","setOption","$emit","judgeWidthHandler","_this2","_","resizeableHandler","onresize","addResizeListener","removeResizeListener","init","$refs","canvas","createEventProxy","addEventListener","resizeHandler","removeEventListener","addWatchToProps","_this3","watchedVariable","_watchers","watcher","expression","$props","$watch","_this4","ev","registeredEvents","on","_len","themeChange","clean","created","mounted","beforeDestroy","_numerify","VeBar","VeHistogram","line$1","_settings$yAxisType","_settings$xAxisType","_settings$yAxisName","_settings$xAxisName","area","_settings$nullAddZero","nullAddZero","lineStyle","areaStyle","getLegend$1","tooltip$$1","rightItems","rightList","_items$","axisValueLabel","showData","marker","itemData","getLineTooltip","getLineXAxis","yAxisBase","getLineYAxis","dataTemp","normal","yAxisIndex","getLineSeries","VeLine","ringRadius","roseRingRadius","pie$1","isRing","_settings$dataType","dataType","percentShow","_settings$metrics","_settings$roseType","roseType","_settings$radius","radius","_settings$offsetY","_settings$legendLimit","legendLimit","_settings$selectedMod","selectedMode","_settings$hoverAnimat","hoverAnimation","_settings$label","_settings$level","level","_settings$limitShowNu","limitShowNum","labelLine","levelTemp","rowsTemp","levelItems","itemLevel","seriesBase","center","rowsTempLength","dataRows","centerWidth","outerWidth","innerWidth","percent","firstData","sum","getPieSeries","levelItem","getPieLegend","remainArr","getPieTooltip","ring","VePie","VeRing","waterfall","_settings$totalName","totalName","totalNum","_settings$remainName","remainName","metricsTemp","getWaterfallTooltip","dataSum","parseFloat","reduce","pre","cur","remainStatus","getWaterfallRemainStatus","xAxisData","getWaterfallXAxis","getWaterfallYAxis","dataSumTemp","totalNumTemp","assistData","mainData","rowData","emphasis","getWaterfallSeries","VeWaterfall","funnel$1","outerColumns","outerRows","_settings$sequence","sequence","ascending","filterZero","useDefaultOrder","realValue","getFunnelTooltip","getFunnelLegend","filter","falseFunnel","step","reverse","getFunnelSeries","VeFunnel","radar$1","getRadarLegend","radar$$1","settingBase","indicator","shape","splitNumber","indicatorTemp","getRadarSetting","typeTemp","nameTemp","getRadarTooltip","radarIndexObj","seriesData","serieData","k","getRadarSeries","VeRadar","VeChart","bar","pie","funnel","setGeoLabel","registerMap","mapOrigin","registerSign","beforeRegisterMap","registerSignOnce","specialAreas","map$1","_settings$position","_settings$selectData","selectData","roam","aspectScale","boundingCoords","zoom","scaleLimit","mapGrid","_settings$mapURLProfi","_settings$specialArea","dataStore","getTooltip","getLegendMap","mapBase","mapType","itemName","itemResult","selected","getSeries","registerOptions","json","VeMap","bmap$1","__","bmap$$1","useOuterMap","VeBmap","VeAmap","sankey$1","links","_settings$valueFull","valueFull","_settings$useDataValu","useDataValue","itemDataType","linksDataType","getTooltip$1","dataMap","getSeries$1","VeSankey","getAxisList","getData","innerXAxisList","innerYAxisList","xDim","yDim","extraMetrics","xIndex","yIndex","extraData","m","getAxis","list","splitArea","heatmap$1","_settings$type","xAxisList","yAxisList","_settings$v","_settings$pointSize","pointSize","_settings$blurSize","blurSize","heatColor","chartData","mainColumn","column","metricsList","innerMin","innerMax","visualMap$$1","calculable","inRange","getVisualMap","_ref$data$value","getTooltip$2","coordinateSystem","geoAttr","VeHeatmap","getTooltipContent","d","num","scatter$1","_settings$tooltipTrig","tooltipTrigger","_settings$symbolSizeM","symbolSizeMax","symbol","symbolSize","symbolRotate","symbolOffset","cursor","lineSettings","dataLabels","getScatterLegend","dataLabel","getScatterXAxis","getScatterYAxis","numbers","maxNum","ext","getScatterSeries","VeScatter","DEFAULT_MA","DEFAULT_K_NAME","SHOW_FALSE","candle","_settings$MA","MA","_settings$showMA","showMA","_settings$showVol","showVol","_settings$showDataZoo","showDataZoom","_settings$downColor","downColor","_settings$upColor","upColor","_settings$start","_settings$end","end","isLiteData","values","volumes","candleMetrics","volumeMetrics","_status","getCandleLegend","pos","params","elRect","size","viewSize","axisValue","componentSubType","_val","getCandleTooltip","seriesIndex","pieces","getCandleVisualMap","dataZoom$$1","xAxisIndex","getCandleDataZoom","onZero","boundaryGap","gridIndex","getCandleXAxis","getCandleYAxis","color0","borderColor","borderColor0","dayCount","j","calculateMA","getCandleSeries","VeCandle","gauge$1","_settings$seriesMap","seriesMap","_settings$dataName","dataName","_options$data","getTooltip$3","detail","getSeries$3","VeGauge","tree$1","getTreeSeries","getTreeLegend","VeTree","components","install","Vue","component","extendComponentModel","dependencies","defaultOption","zlevel","z","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","transitionDuration","enterable","borderRadius","borderWidth","padding","extraCssText","axis","animationDurationUpdate","animationEasingUpdate","crossStyle","fontSize","BaseAxisPointer","viewHelper","cartesianAxisHelper","AxisView","CartesianAxisPointer","makeElOption","elOption","axisModel","axisPointerModel","axisPointerType","otherExtent","getCartesian","getOtherAxis","getGlobalExtent","pixelValue","toGlobalCoord","dataToCoord","elStyle","buildElStyle","pointerOption","pointerShapeBuilder","graphicKey","pointer","layoutInfo","layout","model","buildCartesianSingleLabelElOption","getHandleTransform","labelInside","labelMargin","getTransformedPosition","rotation","labelDirection","PI","updateHandleTransform","transform","delta","axisExtent","dimIndex","dim","currPosition","cursorOtherValue","cursorPoint","tooltipOption","verticalAlign","align","opt","targetShape","makeLineShape","getAxisDimIndex","subPixelOptimizeLine","shadow","bandWidth","getBandWidth","span","makeRectShape","registerAxisPointerClass","brushSelector","getProgressive","getProgressiveThreshold","progressiveThreshold","largeThreshold","__DEV__","zrUtil","SymbolDraw","SymbolClz","lineAnimationDiff","modelUtil","_poly","Polyline","Polygon","ChartView","_helper","prepareDataCoordInfo","getStackedOnPoint","isPointsSame","points1","points2","p1","p2","getSmooth","getAxisExtentWithGap","extent","onBand","halfBandWidth","dir","createClipShape","coordSys","hasAnimation","forSymbol","seriesModel","polar","angleAxis","getAngleAxis","radiusExtent","getRadiusAxis","getExtent","angleExtent","RADIAN","clipPath","Sector","r0","startAngle","endAngle","clockwise","inverse","initProps","createPolarClipShape","cartesian","xExtent","yExtent","isHorizontal","getBaseAxis","lineWidth","expandSize","Rect","createGridClipShape","turnPointsIntoStep","points","stepTurnAt","baseAxis","baseIndex","stepPoints","nextPt","pt","stepPt","middle","stepPt2","getIsIgnoreFunc","showAllSymbol","isAuto","getAxesByScale","availSize","dataLen","dataIndex","getSymbolSize","canShowAllSymbolForCategory","categoryDataDim","mapDimension","each","getViewLabels","labelItem","tickValue","lineGroup","Group","symbolDraw","group","add","_symbolDraw","_lineGroup","lineStyleModel","getModel","areaStyleModel","mapArray","getItemLayout","isCoordSysPolar","prevCoordSys","_coordSys","polyline","_polyline","polygon","_polygon","isAreaChart","isEmpty","valueOrigin","stackedOnPoints","dataCoordInfo","valueDim","idx","getStackedOnPoints","showSymbol","isIgnoreFunc","oldData","eachItemGraphicEl","__temp","setItemGraphicEl","_step","_newPolygon","setClipPath","updateData","isIgnore","clipShape","_stackedOnPoints","_points","_updateAnimation","setShape","_newPolyline","visualColor","visualMetaList","getVisual","coordDim","visualMeta","dimName","dimensions","dimInfo","getDimensionInfo","colorStops","stops","coord","stopLen","outerColors","minCoord","maxCoord","coordSpan","offset","unshift","gradient","LinearGradient","getVisualGradient","useStyle","defaults","getLineStyle","stroke","lineJoin","smoothMonotone","connectNulls","stackedOnSeries","getCalculationInfo","stackedOnSmooth","getAreaStyle","_valueOrigin","highlight","payload","queryDataIndex","getItemGraphicEl","setZ","ignore","stopSymbolAnimation","downplay","silent","z2","hostModel","diff","current","stackedOnCurrent","next","stackedOnNext","__points","updateProps","updatedDataInfo","diffStatus","cmd","idx1","ptIdx","removeAll","SHADOW_PROPS","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowBlur","textShadowOffsetX","textShadowOffsetY","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","ctx","propName","dpr","useHasFeature","ExecutionEnvironment","canUseDOM","implementation","hasFeature","eventNameSuffix","capture","eventName","isSupported","element","setAttribute","vector","matrix","BoundingRect","Transformable","v2ApplyTransform","applyTransform","TransformDummy","View","zoomLimit","_roamTransformable","_rawTransformable","_center","_zoom","doConvert","methodName","finder","mixin","setBoundingRect","_rect","getBoundingRect","setViewRect","transformTo","_viewRect","rect","rawTransform","calculateTransform","decomposeTransform","_updateTransform","setCenter","centerCoord","_updateCenterAndZoom","setZoom","getDefaultCenter","rawRect","getCenter","getZoom","getRoamTransform","getLocalTransform","rawTransformMatrix","roamTransform","defaultCenter","origin","roamTransformable","rawTransformable","parent","updateTransform","copy","create","_rawTransform","invTransform","invert","getViewRect","getViewRectAfterRoam","clone","dataToPoint","noRoam","out","pointToData","point","convertToPixel","curry","convertFromPixel","containPoint","contain","env","colorTool","textContain","textHelper","RectText","Displayable","ZImage","Text","Path","PathProxy","Gradient","vmlCore","CMD","sqrt","cos","sin","mathMax","canvasSupported","Z","Z2","initRootElStyle","cssText","coordsize","coordorigin","rgb2Str","g","append","child","parentNode","removeChild","getZIndex","parsePercent","maxValue","lastIndexOf","setColorAndOpacity","colorArr","updateFillAndStroke","vmlEl","zrEl","isFill","getElementsByTagName","createNode","gradientType","angle","focus","shift","expansion","rectWidth","rectHeight","p0","x2","y2","dx","dy","atan2","cs1","cs2","colorAndAlphaList","colorAndAlpha","color1","color2","opacity1","opacity2","method","focusposition","updateFillNode","lineDash","dashstyle","updateStrokeNode","brushVML","vmlRoot","_vmlEl","needTransform","strokeEl","strokeNoScale","det","weight","__dirtyPath","beginPath","buildPath","toStatic","nPoint","cmdStr","xi","yi","M","C","L","A","Q","str","dataLength","x3","y3","x1","y1","sx","sy","rx","ry","x0","y0","R","p","pathDataToString","zIndex","text","drawRectText","removeRectText","onRemove","onAdd","appendRectText","ow","oh","img","image","tagName","toUpperCase","_imageSrc","_imageWidth","_imageHeight","imageRuntimeStyle","runtimeStyle","oldRuntimeWidth","oldRuntimeHeight","dw","dh","sw","sWidth","sh","sHeight","hasCrop","doc","vmlElStyle","hasRotation","scaleX","scaleY","p3","maxX","maxY","transformFilter","imageTransformPrefix","imageEl","_imageEl","cropEl","_cropEl","imageELStyle","tmpImage","Image","overflow","cropElStyle","filterStr","alpha","textMeasureEl","fontStyleCache","fontStyleCacheCount","fontEl","$override","textFont","font","ex","innerHTML","createTextNode","offsetWidth","tmpRect","textRect","fromTextEl","__dirty","normalizeTextStyle","rich","contentBlock","parseRichText","lines","tokens","textLine","textAlign","textVerticalAlign","fontStyle","fontString","fontFamily","variant","fontVariant","fontWeight","family","getFontStyle","textPosition","distance","textDistance","adjustTextPositionOnRect","adjustTextX","adjustTextY","pathEl","textPathEl","skewEl","textVmlEl","_textVmlEl","firstChild","nextSibling","textpathok","to","coords","textVmlElStyle","string","textFill","textStroke","proto","Scale","numberUtil","IntervalScale","scaleProto","intervalScaleProto","getPrecisionSafe","roundingErrorFix","mathFloor","floor","mathCeil","ceil","mathPow","mathLog","LogScale","base","$constructor","_originalScale","getTicks","originalScale","_extent","originalExtent","powVal","__fixMin","fixRoundingError","__fixMax","getLabel","setExtent","unionExtent","unionExtentFromData","getApproximateExtent","niceTicks","approxTickNum","Infinity","interval","quantity","niceExtent","_interval","_niceExtent","fixMin","fixMax","originalVal","dataToCoordSize","dataSize","dataItem","dimIdx","halfSize","radiusAxis","dataToRadius","dataToAngle","coordToPoint","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","root","DEFAULTS","placement","gpuAcceleration","boundariesElement","boundariesPadding","preventOverflowOrder","flipBehavior","arrowElement","arrowOffset","modifiers","modifiersIgnored","forceAbsolute","Popper","reference","popper","_reference","jquery","state","isNotDefined","isConfig","_popper","_options","modifier","_getPosition","setStyle","update","_setupEventListeners","getOuterSizes","_display","_visibility","visibility","styles","getComputedStyle","marginTop","marginBottom","marginLeft","marginRight","offsetHeight","getOppositePlacement","hash","matched","getPopperClientRect","popperOffsets","offsets","getArrayKeyIndex","keyToFind","getStyleComputedProperty","property","getOffsetParent","offsetParent","documentElement","getScrollParent","scrollTop","scrollLeft","n","unit","isFinite","getOffsetRect","elementRect","offsetLeft","offsetTop","getBoundingClientRect","rectTop","navigator","userAgent","getSupportedPropertyName","prefixes","toCheck","charAt","destroy","removeAttribute","_removeEventListeners","removeOnDestroy","instance","_originalPlacement","_getOffsets","boundaries","_getBoundaries","runModifiers","updateCallback","onCreate","onUpdate","config","defaultConfig","classNames","attributes","content","contentType","arrowTagName","arrowClassNames","arrowAttributes","addClassNames","addAttributes","textContent","arrow","querySelectorAll","Element","className","classList","attribute","isFixed","isParentFixed","referenceOffsets","fixed","parentRect","scrollParent","getOffsetRectRelativeToCustomParent","popperRect","updateBound","scrollTarget","html","scrollHeight","scrollWidth","offsetParentRect","getScrollLeftValue","ends","modifiersToRun","functionToCheck","isModifierRequired","requesting","requested","applyStyle","prefixedProperty","basePlacement","shiftVariation","shiftOffsets","preventOverflow","check","direction","keepTogether","f","flip","flipped","placementOpposite","variation","flipOrder","_flip","querySelector","contains","arrowStyle","isVertical","side","altSide","opSide","arrowSize","sideValue","TypeError","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","__webpack_exports__","global","MapShim","Map","getIndex","entry","anonymous","__entries__","prototypeAccessors","set","delete","entries","has","clear","defineProperties","isBrowser","global$1","requestAnimationFrame$1","requestAnimationFrame","trailingTimeout","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","observe","childList","characterData","subtree","disconnect","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","paddings","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","Constr","contentRect","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","this$1","observation","WeakMap","ResizeObserver","Axis","TimelineAxis","coordExtent","axisType","getLabelModel","inherits","zrender","timsort","Eventful","GlobalModel","ExtensionAPI","CoordinateSystemManager","OptionManager","backwardCompat","dataStack","ComponentModel","SeriesModel","ComponentView","seriesColor","aria","loadingDefault","Scheduler","lightTheme","darkTheme","assert","parseClassType","PRIORITY_PROCESSOR_FILTER","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_CHART","PRIORITY","PROCESSOR","FILTER","STATISTIC","VISUAL","LAYOUT","GLOBAL","CHART","COMPONENT","BRUSH","IN_MAIN_PROCESS","OPTION_UPDATED","ACTION_REG","createRegisterEventWithLowercaseName","context","MessageCenter","ECharts","dom","themeStorage","_dom","_zr","renderer","devicePixelRatio","_throttledZrFlush","flush","_theme","_chartsViews","_chartsMap","_componentsViews","_componentsMap","_coordSysMgr","ecInstance","coordSysMgr","_api","getCoordinateSystems","getComponentByElement","modelInfo","__ecComponentInfo","mainType","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_initEvents","_pendingActions","_onframe","ecIns","isFinished","unfinished","bindRenderedEvent","setAsPrimitive","off","one","echartsProto","doConvertPixel","coordSysList","parseFinder","_disposed","scheduler","prepare","updateMethods","flushPendingActions","triggerUpdatedEvent","remainTime","startTime","performSeriesTasks","performDataProcessorTasks","updateStreamModes","performVisualTasks","renderSeries","getDom","lazyUpdate","optionManager","optionPreprocessorFuncs","setTheme","getOption","getWidth","getHeight","getDevicePixelRatio","painter","getRenderedCanvas","pixelRatio","getSvgDataUrl","svgSupported","storage","getDisplayList","pathToDataUrl","getDataURL","excludeComponents","excludesComponentViews","componentType","eachComponent","view","__viewId","toDataURL","getConnectedDataURL","groupId","mathMin","connectedGroups","canvasList","instances","chart","boundingRect","targetCanvas","createCanvas","refreshImmediately","containPixel","models","visualType","defaultMainType","dataIndexInside","indexOfRawIndex","getItemVisual","getViewOfComponentModel","componentModel","getViewOfSeriesModel","prepareAndUpdate","restoreData","clearColorPalette","setBackgroundColor","performPostUpdateFuncs","componentDirtyList","componentView","__alive","seriesDirtyMap","createHashMap","eachSeries","chartView","uid","setDirty","dirtyMap","updateView","markUpdateMethod","updateVisual","updateLayout","restorePipelines","prepareStageTasks","prepareView","plan","updateDirectly","subType","query","condition","excludeSeriesId","normalizeToArray","callView","__model","chartsMap","doDispatchAction","payloadType","escapeConnect","actionWrap","actions","actionInfo","cptType","updateMethod","pop","payloads","batched","batch","eventObj","eventObjBatch","isHighDown","batchItem","action","event","main","pendingActions","isComponent","viewList","viewMap","doPrepare","viewId","classType","getClass","__id","componentIndex","renderTask","dirtyList","updateZ","renderComponents","updatePayload","perform","getPerformArgs","blendMode","traverse","isGroup","blend","eachPendingDisplayable","displayable","updateBlend","elCount","node","useHoverLayer","updateHoverLayerStatus","postUpdateFuncs","func","_loadingFX","optionChanged","resetOption","showLoading","cfg","hideLoading","loadingEffects","makeActionFromEvent","eventActionMap","browser","weChat","appendData","getSeriesByIndex","MOUSE_EVENT_NAMES","eveName","dataModel","getDataParams","eventData","actionType","eventType","isDisposed","DOM_ATTRIBUTE_KEY","idBase","groupIdBase","mapDataStores","disConnect","getInstanceByDom","getAttribute","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","priority","processor","normalizeRegister","registerAction","test","registerVisual","visualTask","targetList","defaultPriority","stageHandler","wrapStageHandler","__raw","registerLoading","loadingFx","noop","version","existInstance","STATUS_KEY","updateConnectedChartsStatus","charts","otherCharts","otherChart","enableConnect","connect","getInstanceById","registerPostUpdate","postUpdateFunc","registerCoordinateSystem","CoordinateSystem","getCoordinateSystemDimensions","coordSysCreator","getDimensionsInfo","registerLayout","layoutTask","extendSeriesModel","extendChartView","setCanvasCreator","creator","mapName","geoJson","features","getMap","dataTool","___ec_export","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneIfNecessary","optionsArgument","deepmerge","defaultArrayMerge","destination","sourceIsArray","arrayMerge","mergeObject","all","array","Error","prev","deepmerge_1","Cancel","CancelToken","executor","resolvePromise","promise","token","message","reason","throwIfRequested","cancel","c","toObject","IE_PROTO","ObjectProto","getPrototypeOf","O","IObject","defined","it","VisualMapping","hasKeys","createVisualMappings","stateList","supplementVisualOption","visualMappings","Creater","mappings","__hidden","visualData","isValidType","mappingOption","visual","__alphaForOpacity","replaceVisualOption","thisOption","newOption","applyVisual","getValueState","scope","visualTypesMap","setVisual","setItemVisual","eachItem","valueOrIndex","rawDataItem","getRawDataItem","valueState","visualTypes","prepareVisualTypes","incrementalApplyVisual","progress","getDimension","SingleAxis","axisHelper","getLayoutRect","Single","_axis","_init","axisPointerEnabled","createScaleByModel","isCategory","niceScaleExtent","_adjustAxis","getRect","_updateAxisTransform","coordBase","extentSum","toLocalCoord","getAxes","getTooltipAxes","baseAxes","coordToData","linesLayout","linesVisual","updateDataSelected","getName","selectedOffset","seriesId","toggleItemSelected","isSelected","midAngle","PiePiece","sector","onEmphasis","hoverIgnore","onNormal","normalIgnore","piePieceProto","firstCreate","childAt","itemModel","getItemModel","sectorShape","getShallow","getItemStyle","hoverStyle","cursorStyle","isAnimationEnabled","_updateLabel","setHoverStyle","labelText","labelLayout","linePoints","labelModel","labelHoverModel","labelLineModel","labelLineHoverModel","setLabelStyle","labelFetcher","labelDataIndex","defaultText","autoColor","useInsideStyle","inside","sectorGroup","_sectorGroup","isFirstRender","animationType","onSectorClick","piePiece","eachChild","newIdx","oldIdx","execute","removeClipPath","_createClipPath","cb","itemLayout","categoryFilter","visualSymbol","categoryVisual","edgeVisual","simpleLayout","circularLayout","forceLayout","createView","retrieve","_axisHelper","ifAxisCrossZero","estimateLabelUnionRect","Cartesian2D","Axis2D","getStackedDimension","isAxisUsedInTheGrid","gridModel","getCoordSysModel","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","gridProto","fixAxisOnZero","axesMap","otherAxisDim","getAxesOnZeroOf","otherAxis","otherAxes","onZeroAxisIndex","canOnZeroToAxis","_updateScale","ignoreContainLabel","gridRect","getBoxLayoutParams","axesList","adjustAxes","axisExtentSum","updateAxisTransform","labelUnionRect","margin","axisIndex","axesMapOnDim","coordList","getCartesians","_findConvertTarget","xAxisModel","getReferringComponents","yAxisModel","coordsList","axisPositionUsed","axesCount","createAxisCreator","axisPosition","addAxis","isCartesian2D","axesModels","findAxesModels","axesTypes","grids","defaultKeyGetter","DataDiffer","oldArr","newArr","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","initIndexMap","keyArr","keyGetterName","dataDiffer","existence","_add","_update","_remove","newDataIndexMap","oldDataKeyArr","newDataKeyArr","LineDraw","EffectLine","Line","EffectPolyline","LargeLineDraw","lineDraw","_updateLineDraw","trailLength","isSvg","getLayer","_lastZlevel","configLayer","motionBlur","_showEffect","lastFrameAlpha","_finished","incrementalPrepareRender","incrementalPrepareUpdate","_clearLayer","incrementalRender","taskParams","_lineDraw","incrementalUpdate","pipelineContext","large","progressiveRender","hasEffect","isPolyline","isLargeDraw","_hasEffet","_isPolyline","_isLargeDraw","updateCenterAndZoom","previousZoom","zoomMin","zoomMax","fixX","originX","fixY","originY","colorAll","colorLayer","normalizeRadian","PI2","containStroke","anticlockwise","_l","tmp","normalize","opacityQuery","seriesType","symbolType","dataEach","hasItemOption","makeStyleMapper","axisModelCreator","axisModelCommonMixin","AxisModel","activeIntervals","getAreaSelectStyle","setActiveIntervals","intervals","asc","getActiveState","merge","axisName","areaSelectStyle","realtime","modules","installedModules","moduleId","getter","o","__esModule","object","0","rawScriptExports","compiledTemplate","functionalTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","hook","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","existing","beforeCreate","_injectStyles","151","_button","_button2","152","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f35f4e9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__","Component","normalizeComponent","153","inject","elForm","elFormItem","icon","nativeType","disabled","plain","autofocus","circle","_elFormItemSize","elFormItemSize","buttonSize","$ELEMENT","buttonDisabled","handleClick","evt","154","esExports","_vm","is-disabled","is-loading","is-plain","is-round","is-circle","click","_e","_t","utils","headers","fns","Diff","buildValues","componentPos","componentLen","newPos","oldPos","removed","indices","added","equals","newLen","oldLen","editLength","maxEditLength","bestPath","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","pushComponent","ret","last","commonCount","tokenize","arrayDiff","PopupManager","_vue2","_interopRequireDefault","_merge2","_popupManager2","_scrollbarWidth2","idSeed","scrollBarWidth","visible","openDelay","closeDelay","modal","modalFade","modalClass","modalAppendToBody","lockScroll","closeOnPressEscape","closeOnClickModal","beforeMount","_popupId","deregister","closeModal","restoreBodyStyle","opened","bodyPaddingRight","computedBodyPaddingRight","withoutHiddenClass","rendered","_opening","nextTick","close","_closeTimer","_openTimer","doOpen","$isServer","willOpen","getDOM","nodeType","nextElementSibling","_closing","openModal","nextZIndex","hasClass","paddingRight","parseInt","getStyle","bodyHasOverflow","bodyOverflowY","addClass","onOpen","doAfterOpen","willClose","doClose","onClose","doAfterClose","removeClass","enableLogs","logger","__WEBPACK_IMPORTED_MODULE_0__get_self_scope__","fakeLogger","trace","debug","info","error","exportedLogger","exportLoggerFunctions","debugConfig","_len2","functions","_key2","msg","formatMsg","consolePrintFn","MEDIA_ATTACHING","MEDIA_ATTACHED","MEDIA_DETACHING","MEDIA_DETACHED","BUFFER_RESET","BUFFER_CODECS","BUFFER_CREATED","BUFFER_APPENDING","BUFFER_APPENDED","BUFFER_EOS","BUFFER_FLUSHING","BUFFER_FLUSHED","MANIFEST_LOADING","MANIFEST_LOADED","MANIFEST_PARSED","LEVEL_SWITCHING","LEVEL_SWITCHED","LEVEL_LOADING","LEVEL_LOADED","LEVEL_UPDATED","LEVEL_PTS_UPDATED","AUDIO_TRACKS_UPDATED","AUDIO_TRACK_SWITCHING","AUDIO_TRACK_SWITCHED","AUDIO_TRACK_LOADING","AUDIO_TRACK_LOADED","SUBTITLE_TRACKS_UPDATED","SUBTITLE_TRACK_SWITCH","SUBTITLE_TRACK_LOADING","SUBTITLE_TRACK_LOADED","SUBTITLE_FRAG_PROCESSED","INIT_PTS_FOUND","FRAG_LOADING","FRAG_LOAD_PROGRESS","FRAG_LOAD_EMERGENCY_ABORTED","FRAG_LOADED","FRAG_DECRYPTED","FRAG_PARSING_INIT_SEGMENT","FRAG_PARSING_USERDATA","FRAG_PARSING_METADATA","FRAG_PARSING_DATA","FRAG_PARSED","FRAG_BUFFERED","FRAG_CHANGED","FPS_DROP","FPS_DROP_LEVEL_CAPPING","ERROR","DESTROYING","KEY_LOADING","KEY_LOADED","STREAM_STATE_TRANSITION","ErrorTypes","ErrorDetails","NETWORK_ERROR","MEDIA_ERROR","KEY_SYSTEM_ERROR","MUX_ERROR","OTHER_ERROR","KEY_SYSTEM_NO_KEYS","KEY_SYSTEM_NO_ACCESS","KEY_SYSTEM_NO_SESSION","KEY_SYSTEM_LICENSE_REQUEST_FAILED","MANIFEST_LOAD_ERROR","MANIFEST_LOAD_TIMEOUT","MANIFEST_PARSING_ERROR","MANIFEST_INCOMPATIBLE_CODECS_ERROR","LEVEL_LOAD_ERROR","LEVEL_LOAD_TIMEOUT","LEVEL_SWITCH_ERROR","AUDIO_TRACK_LOAD_ERROR","AUDIO_TRACK_LOAD_TIMEOUT","FRAG_LOAD_ERROR","FRAG_LOAD_TIMEOUT","FRAG_DECRYPT_ERROR","FRAG_PARSING_ERROR","REMUX_ALLOC_ERROR","KEY_LOAD_ERROR","KEY_LOAD_TIMEOUT","BUFFER_ADD_CODEC_ERROR","BUFFER_APPEND_ERROR","BUFFER_APPENDING_ERROR","BUFFER_STALLED_ERROR","BUFFER_FULL_ERROR","BUFFER_SEEK_OVER_HOLE","BUFFER_NUDGE_ON_STALL","INTERNAL_EXCEPTION","isFiniteNumber","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","URLToolkit","buildAbsoluteURL","baseURL","relativeURL","trim","alwaysNormalize","basePartsForNormalise","parseURL","baseParts","normalizePath","buildURLFromParts","relativeParts","scheme","netLoc","pathParts","exec","builtParts","fragment","baseURLPath","newPath","substring","parts","utf8ArrayToStr","ID3","Constructor","_classCallCheck","isHeader","isFooter","getID3Data","front","_readSize","subarray","getTimeStamp","frames","getID3Frames","frame","isTimeStampFrame","_readTimeStamp","_getFrameData","fromCharCode","id3Data","frameData","_decodeFrame","_decodePrivFrame","_decodeTextFrame","_decodeURLFrame","timeStampFrame","byteLength","Uint8Array","pts33Bit","timestamp","owner","_utf8ArrayToStr","privateData","buffer","description","exitOnNull","char2","char3","EventEmitter","_events","_maxListeners","arg","isUndefined","defaultMaxListeners","setMaxListeners","emit","er","listeners","err","addListener","listener","newListener","warned","once","fired","removeListener","removeAllListeners","listenerCount","evlistener","emitter","aes_crypto","AESCrypto","subtle","iv","aesIV","decrypt","fast_aes_key","FastAESKey","fast_aes_key__classCallCheck","expandKey","importKey","aes_decryptor","AESDecryptor","aes_decryptor__classCallCheck","rcon","subMix","Uint32Array","invSubMix","sBox","invSBox","initTable","uint8ArrayToUint32Array_","arrayBuffer","DataView","newArray","getUint32","subMix0","subMix1","subMix2","subMix3","invSubMix0","invSubMix1","invSubMix2","invSubMix3","x4","x8","t","keyBuffer","sameKey","keySize","ksRows","ksRow","invKsRow","keySchedule","invKeySchedule","sbox","networkToHostOrderSwap","word","inputArrayBuffer","removePKCS7Padding","outputBytes","paddingBytes","nRounds","invSBOX","initVector","initVector0","initVector1","initVector2","initVector3","inputInt32","Int32Array","outputInt32","t0","t1","t2","t3","s0","s1","s2","s3","inputWords0","inputWords1","inputWords2","inputWords3","swapWord","getUint8","errors","get_self_scope","decrypter_Decrypter","Decrypter","_ref$removePKCS7Paddi","decrypter__classCallCheck","logEnabled","browserCrypto","crypto","webkitSubtle","disableWebCrypto","isSync","enableSoftwareAES","decryptor","fastAesKey","aesKey","catch","onWebCryptoError","details","fatal","__WEBPACK_IMPORTED_MODULE_0__utils_logger__","__WEBPACK_IMPORTED_MODULE_1__events__","UINT32_MAX","MP4Demuxer","remuxer","resetTimeStamp","initPTS","resetInitSegment","initSegment","audioCodec","videoCodec","duration","initData","parseInitSegment","tracks","audio","video","audiovideo","container","codec","probe","findBox","bin2str","readUint16","readUint32","writeUint32","results","subresults","endbox","parseSegmentIndex","moov","moovEndOffset","sidx","references","timescale","startByte","referencesCount","referenceIndex","referenceInfo","referenceSize","subsegmentDuration","earliestPresentationTime","trak","tkhd","trackId","mdhd","hdlr","soun","vide","codecBox","codecType","getStartDTS","baseTimes","trafs","traf","tfhd","tfdt","offsetStartDTS","timeOffset","baseMediaDecodeTime","upper","lower","contiguous","accurateTimeOffset","startDTS","_startDTS","remux","crypt_decrypter","number_isFinite","isHeaderPattern","getHeaderLength","getFullFrameLength","adts_probe","frameLength","newOffset","initTrackConfig","track","samplerate","adtsSampleingIndex","adtsObjectType","adtsExtensionSampleingIndex","adtsChanelConfig","manifestCodec","adtsSampleingRates","channelCount","getAudioConfig","getFrameDuration","appendFrame","pts","frameIndex","header","frameDuration","headerLength","stamp","parseFrameHeader","aacSample","dts","samples","sample","id3","aacdemuxer","AACDemuxer","_audioTrack","sequenceNumber","isAAC","inputTimeScale","id3Samples","mp4demuxer","MpegAudio","BitratesMap","SamplingRateMap","SamplesCoefficients","BytesInSlot","parseHeader","samplesPerFrame","sampleRate","headerB","headerC","headerE","headerF","headerG","columnInBitrates","bitRate","columnInSampleRates","sampleCoefficient","bytesInSlot","mpegaudio","exp_golomb","ExpGolomb","exp_golomb__classCallCheck","bytesAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLZ","leadingZeroCount","skipUEG","skipEG","readUEG","clz","readEG","readBoolean","readUByte","readUShort","readUInt","skipScalingList","lastScale","nextScale","readSPS","profileIdc","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","numRefFramesInPicOrderCntCycle","scalingListCount","chromaFormatIdc","picOrderCntType","readSliceType","sample_aes","SampleAesDecrypter","decryptdata","discardEPB","sample_aes__classCallCheck","decrypter","decryptBuffer","encryptedData","decryptAacSample","sampleIndex","sync","curUnit","encryptedBuffer","byteOffset","localthis","decryptedData","decryptAacSamples","getAvcEncryptedData","decodedData","encryptedDataLen","Int8Array","outputPos","inputPos","getAvcDecryptedUnit","decryptAvcSample","unitIndex","decryptAvcSamples","curUnits","units","RemuxerTrackIdConfig","tsdemuxer","TSDemuxer","typeSupported","tsdemuxer__classCallCheck","sampleAes","setDecryptData","syncOffset","_syncOffset","scanwindow","createTrack","pid","dropped","pmtParsed","_pmtId","_avcTrack","_id3Track","_txtTrack","aacOverFlow","aacLastPTS","avcSample","_duration","stt","pes","unknownPIDs","avcTrack","audioTrack","id3Track","avcId","audioId","id3Id","pmtId","avcData","pesData","audioData","parsePAT","_parsePAT","parsePMT","_parsePMT","parsePES","_parsePES","parseAVCPES","_parseAVCPES","parseAACPES","_parseAACPES","parseMPEGPES","_parseMPEGPES","parseID3PES","_parseID3PES","parsedPIDs","mpeg","mp3","avc","decryptAndRemux","videoTrack","textTrack","decryptAndRemuxAvc","_initPTS","_initDTS","mpegSupported","isSampleAes","tableEnd","stream","frag","pesFlags","pesLen","pesHdrLen","pesPts","pesDts","payloadStartOffset","newData","pushAccesUnit","nbSamples","forceKeyFrameOnDiscontinuity","sps","_parseAVCNALu","expGolombDecoder","spsfound","createAVCSample","audFound","sliceType","payloadSize","endOfCaptions","firstByte","totalCCs","byteArray","_insertSampleInOrder","bytes","codecarray","codecstring","pps","_getLastNalUnit","lastUnit","naluState","lastState","lastUnitStart","lastUnitType","_lastUnit","_tmp","newLength","EPBPositions","sourceIndex","newPTS","mp3demuxer","MP3Demuxer","mp3demuxer__classCallCheck","aac_helper","AAC","aac_helper__classCallCheck","getSilentFrame","mp4_generator","MP4","mp4_generator__classCallCheck","types","avc1","avcC","btrt","dinf","dref","esds","ftyp","mdat","mdia","mfhd","minf","moof","mp4a",".mp3","mvex","mvhd","pasp","sdtp","stbl","stco","stsc","stsd","stsz","stts","trun","trex","vmhd","smhd","charCodeAt","videoHdlr","audioHdlr","HDLR_TYPES","STTS","STSC","STCO","STSZ","VMHD","SMHD","STSD","majorBrand","avc1Brand","minorVersion","FTYP","box","DINF","upperWordDuration","lowerWordDuration","sn","boxes","flags","dependsOn","isDependedOn","hasRedundancy","avcc","hSpacing","vSpacing","configlen","sampleDependencyTable","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","arraylen","cts","isLeading","paddingValue","isNonSync","degradPrio","movie","mp4_remuxer","MP4Remuxer","vendor","mp4_remuxer__classCallCheck","isSafari","ISGenerated","defaultTimeStamp","generateIS","nbAudioSamples","nbVideoSamples","audioTimeOffset","videoTimeOffset","audiovideoDeltaDts","remuxAudio","audioTrackLength","endPTS","startPTS","remuxVideo","videoData","remuxEmptyAudio","remuxID3","remuxText","audioSamples","videoSamples","computePTSDTS","initDTS","metadata","lastPTS","lastDTS","timeScale","mp4SampleDuration","firstPTS","firstDTS","inputSamples","outputSamples","ptsNormalize","_PTSNormalize","nextAvcDts","deltadts","deltapts","PTSDTSshift","curr","nbNalu","naluLen","_i","_sample","nbUnits","sampleLen","mdatSize","setUint32","_i2","avcSampleUnits","mp4SampleLength","compositionTimeOffset","_j","_nbUnits","unitData","unitDataLen","lastFrameDuration","stretchShortVideoTrack","maxBufferHole","gapTolerance","deltaToFrameEnd","nextAudioPts","data1","data2","endDTS","hasAudio","hasVideo","nb","mp4timeScale","scaleFactor","inputSampleDuration","rawMPEG","mp4Sample","fillFrame","maxAudioFramesDrift","nextPts","missing","newStamp","_j2","_nbSamples","audioSample","_pts","_delta","numMissingFrames","_i3","unitLen","lastSampleDuration","silentFrame","passthrough_remuxer","PassThroughRemuxer","passthrough_remuxer__classCallCheck","rawData","streamType","performance","demuxer_inline_DemuxerInline","DemuxerInline","demuxer_inline__classCallCheck","demuxer","discontinuity","trackSwitch","defaultInitPTS","endTime","stats","tstart","tdecrypt","pushDecrypted","muxConfig","demux","mux","_remuxer","cues_namespaceObject","newCue","url_toolkit","url_toolkit_default","FORBIDDEN_EVENT_NAMES","Set","event_handler","EventHandler","hls","onEvent","handledEvents","useGenericHandler","registerListeners","onHandlerDestroying","unregisterListeners","onHandlerDestroyed","isEventHandler","onEventGeneric","funcName","_createClass","descriptor","protoProps","staticProps","level_key","LevelKey","level_key__classCallCheck","_uri","reluri","baseuri","fragment__createClass","loader_fragment","Fragment","_elementaryStreams","fragment__classCallCheck","_url","_byteRange","_decryptdata","tagList","programDateTime","rawProgramDateTime","ElementaryStreamTypes","AUDIO","VIDEO","addElementaryStream","hasElementaryStream","createInitializationVector","segmentNumber","uint8View","fragmentDecryptdataFromLevelkey","levelkey","uri","relurl","baseurl","rawByteRange","byteRange","lastByteRangeEndOffset","level__createClass","loader_level","Level","baseUrl","level__classCallCheck","endCC","endSN","fragments","live","needSidxRanges","startCC","startSN","startTimeOffset","targetduration","totalduration","DECIMAL_RESOLUTION_REGEX","ATTR_LIST_REGEX","attr_list","AttrList","attr_list__classCallCheck","parseAttrList","decimalInteger","attrName","intValue","MAX_SAFE_INTEGER","hexadecimalInteger","hexadecimalIntegerAsNumber","decimalFloatingPoint","enumeratedString","decimalResolution","lastIndex","sampleEntryCodesISO","a3ds","ac-3","ac-4","alac","alaw","dra1","dts+","dts-","dtsc","dtse","dtsh","ec-3","enca","g719","g726","m4ae","mha1","mha2","mhm1","mhm2","mlpa","raw ","Opus","samr","sawb","sawp","sevc","sqcp","ssmv","twos","ulaw","avc2","avc3","avc4","avcp","drac","dvav","dvhe","encv","hev1","hvc1","mjp2","mp4v","mvc1","mvc2","mvc3","mvc4","resv","rv60","s263","svc1","svc2","vc-1","vp08","vp09","isCodecSupportedInMp4","MediaSource","isTypeSupported","MASTER_PLAYLIST_REGEX","MASTER_PLAYLIST_MEDIA_REGEX","LEVEL_PLAYLIST_REGEX_FAST","LEVEL_PLAYLIST_REGEX_SLOW","MP4_REGEX_SUFFIX","m3u8_parser","M3U8Parser","m3u8_parser__classCallCheck","findGroup","groups","mediaGroupId","matchingGroup","convertAVC1ToAVCOTI","avcdata","substr","parseMasterPlaylist","levels","setCodecs","codecs","filtered","typeCodes","isCodecType","preferred","unknownCodecs","resolution","bitrate","NAME","CODECS","parseMasterPlaylistMedia","audioGroups","medias","media","TYPE","DEFAULT","autoselect","AUTOSELECT","forced","FORCED","URI","lang","LANGUAGE","groupCodec","parseLevelPlaylist","levelUrlId","currentSN","cc","prevFrag","firstPdtIndex","urlId","assignProgramDateTime","byteRangeEndOffset","value1","value2","keyAttrs","decryptmethod","decrypturi","decryptiv","mapAttrs","BYTERANGE","averagetargetduration","every","startIndex","fragPrev","backfillProgramDateTimes","endProgramDateTime","playlist_loader__createClass","ContextType","MANIFEST","LEVEL","AUDIO_TRACK","SUBTITLE_TRACK","LevelType","MAIN","SUBTITLE","playlist_loader","_EventHandler","PlaylistLoader","playlist_loader__classCallCheck","ReferenceError","_possibleConstructorReturn","loaders","subClass","superClass","setPrototypeOf","__proto__","_inherits","canHaveQualityLevels","mapContextToLevelType","getResponseUrl","response","createInternalLoader","PLoader","pLoader","Loader","loader","getInternalLoader","resetInternalLoader","contextType","destroyInternalLoaders","onManifestLoading","load","onLevelLoading","onAudioTrackLoading","onSubtitleTrackLoading","loaderContext","abort","maxRetry","timeout","retryDelay","maxRetryDelay","manifestLoadingMaxRetry","manifestLoadingTimeOut","manifestLoadingRetryDelay","manifestLoadingMaxRetryTimeout","levelLoadingTimeOut","levelLoadingMaxRetry","levelLoadingRetryDelay","levelLoadingMaxRetryTimeout","responseType","loaderConfig","loaderCallbacks","onSuccess","loadsuccess","onError","loaderror","onTimeout","loadtimeout","networkDetails","isSidxRequest","_handleSidxRequest","_handlePlaylistLoaded","tload","_handleTrackOrLevelPlaylist","_handleMasterPlaylist","_handleManifestParsingError","_handleNetworkError","audioTracks","subtitles","embeddedAudioFound","levelId","levelType","levelDetails","singleLevel","tparsed","sidxUrl","rangeStart","rangeEnd","sidxInfo","segmentRef","segRefInfo","fragment_loader","FragmentLoader","fragment_loader__classCallCheck","fragment_loader__possibleConstructorReturn","fragment_loader__inherits","loaderName","onFragLoading","FragmentILoader","fLoader","DefaultILoader","loaded","progressData","byteRangeStartOffset","fragLoadingTimeOut","fragLoadingMaxRetryTimeout","onProgress","loadprogress","key_loader","KeyLoader","key_loader__classCallCheck","key_loader__possibleConstructorReturn","decryptkey","decrypturl","key_loader__inherits","onKeyLoading","fragLoadingMaxRetry","fragLoadingRetryDelay","FragmentState","fragment_tracker_FragmentTracker","FragmentTracker","fragment_tracker__classCallCheck","fragment_tracker__possibleConstructorReturn","bufferPadding","timeRanges","fragment_tracker__inherits","getBufferedFrag","bufferedFrags","fragmentEntity","buffered","bufferedFragKey","detectEvictedFragments","elementaryStream","timeRange","fragmentTimes","esData","range","isTimeBuffered","removeFragment","detectPartialFragments","fragKey","getFragmentKey","getBufferedTimes","fragmentPartial","partial","getPartialFragment","timePadding","bestFragment","bestOverlap","isPartial","getState","onFragLoaded","bitrateTest","onBufferAppended","_this5","onFragBuffered","hasFragment","removeAllFragments","binary_search","search","comparisonFunction","minIndex","maxIndex","currentIndex","currentElement","comparisonResult","BufferHelper","buffer_helper__classCallCheck","isBuffered","bufferInfo","maxHoleDuration","vbuffered","bufferedInfo","nextStart","buffered2","bufferLen","bufferStart","bufferEnd","bufferStartNext","buf2len","buf2end","events_events","events_default","webworkify_webpack","webworkify_webpack_default","demuxer_inline","getMediaSource","WebKitMediaSource","demux_demuxer","Demuxer","demuxer__classCallCheck","forwardMessage","mp4","enableWorker","Worker","w","onwmsg","onWorkerMessage","filename","lineno","postMessage","URL","revokeObjectURL","objectURL","terminate","lastFrag","nextSN","ArrayBuffer","addGroupId","audioGroupIds","textGroupIds","updatePTS","fromIdx","toIdx","fragFrom","fragTo","fragToPTS","updateFragPTSDTS","maxStartPTS","deltaPTS","drift","fragIdx","PTSKnown","mergeDetails","oldDetails","newDetails","oldfragments","newfragments","ccOffset","PTSFrag","oldFrag","newFrag","backtracked","sliding","time_ranges","adjustPts","alignStream","lastLevel","shouldAlign","shouldAlignOnDiscontinuities","referenceFrag","prevDetails","curDetails","prevFrags","curFrags","prevStartFrag","firstFrag","currentFrag","findFirstFragWithCC","findDiscontinuousReferenceFrag","alignDiscontinuities","lastDetails","hasProgramDateTime","lastPDT","newPDT","alignPDT","task_loop","TaskLoop","task_loop__classCallCheck","task_loop__possibleConstructorReturn","_tickInterval","_tickTimer","_tickCallCount","_boundTick","tick","task_loop__inherits","clearNextTick","clearInterval","hasInterval","hasNextTick","setInterval","_setInterval","_x","millis","_clearInterval","doTick","fragment_finders_fragmentWithinToleranceTest","maxFragLookUpTolerance","candidate","candidateLookupTolerance","pdtWithinToleranceTest","pdtBufferEnd","gap_controller","GapController","fragmentTracker","gap_controller__classCallCheck","stallReported","poll","lastCurrentTime","currentTime","tnow","stalled","nudgeRetry","ended","readyState","seeking","stalledDuration","_reportStall","_tryFixBufferStall","_trySkipBufferHole","highBufferWatchdogPeriod","_tryNudgeBuffer","lastEndTime","nudgeMaxRetry","targetTime","nudgeOffset","stream_controller__createClass","State","STOPPED","IDLE","FRAG_LOADING_WAITING_RETRY","WAITING_LEVEL","PARSING","PARSED","ENDED","stream_controller","_TaskLoop","StreamController","stream_controller__classCallCheck","stream_controller__possibleConstructorReturn","audioCodecSwap","_state","gapController","stream_controller__inherits","stopLoad","startLoad","startPosition","fragLoadError","startFragRequested","startLevel","nextLoadLevel","loadedmetadata","nextLoadPosition","forceStartLoad","fragCurrent","fragPrevious","_doTickIdle","retryDate","_checkBuffer","_checkFragmentChanged","levelLastLoaded","startFragPrefetch","levelInfo","levelBitrate","maxBufLen","maxBufferSize","maxBufferLength","maxMaxBufferLength","mediaBuffer","altAudio","_fetchPayloadOrEos","fragLen","initialLiveManifestSize","_ensureFragmentAtLivePoint","_findFragment","encrypted","_loadKey","_loadFragment","maxLatency","liveMaxLatencyDuration","liveMaxLatencyDurationCount","liveSyncPosition","computeLivePosition","PDTValue","seg","findFragmentByPDT","targetSN","fragNext","findFragmentByPTS","curSNIdx","sameLevel","nextFrag","fragState","autoLevel","autoLevelEnabled","_reduceMaxBufferLength","followingBufferedFrag","fragPlayingCurrent","fragPlaying","fragPlayingLevel","immediateLevelSwitch","immediateSwitch","previouslyPaused","paused","pause","flushMainBuffer","POSITIVE_INFINITY","immediateLevelSwitchEnd","play","nextLevelSwitch","fetchdelay","nextBufferedFrag","nextLevelId","nextLevel","fragLastKbps","startOffset","endOffset","flushScope","onMediaAttached","onvseeking","onMediaSeeking","onvseeked","onMediaSeeked","onvended","onMediaEnded","autoStartLoad","onMediaDetaching","tolerance","fragStartOffset","fragEndOffset","onManifestParsed","aac","heaac","audioCodecSwitch","onLevelLoaded","newLevelId","curLevel","onKeyLoaded","fragLoaded","currentLevel","tbuffered","pendingBuffering","appended","initSegmentData","_getAudioCodec","onFragParsingInitSegment","fragNew","trackName","ua","levelCodec","onFragParsingData","onFragParsed","_checkAppendedParsed","onAudioTrackSwitching","onAudioTrackSwitched","videoBuffer","onBufferCreated","mediaTrack","alternate","pending","total","tfirst","mediaBuffered","levelRetry","minLength","_seekToStartPos","onFragLoadEmergencyAborted","onBufferFlushed","swapAudioCodec","targetLatency","liveSyncDuration","liveSyncDurationCount","defaultAudioCodec","nextState","previousState","_liveSyncPosition","level_controller__typeof","level_controller__createClass","level_controller_performance","level_controller","LevelController","level_controller__classCallCheck","level_controller__possibleConstructorReturn","canload","currentLevelIndex","manualLevelIndex","level_controller__inherits","clearTimer","_levels","levelRetryCount","loadError","loadLevel","onManifestLoaded","bitrateStart","levelSet","levelFromSet","videoCodecFound","audioCodecFound","chromeOrFirefox","fragmentError","SUBTITLES","_ref2","_firstLevel","firstLevel","setLevelInternal","newLevel","levelProperties","levelError","levelIndex","recoverLevel","errorEvent","errorDetails","redundantLevels","nextAutoLevel","_ref3","targetdurationMs","reloadInterval","trequest","audioGroupId","findIndex","levelObject","_startLevel","configStartLevel","sendAddTrackEvent","videoEl","Event","createEvent","initEvent","dispatchEvent","clearCurrentCues","cues","removeCue","id3_track_controller","ID3TrackController","id3_track_controller__classCallCheck","id3_track_controller__possibleConstructorReturn","id3_track_controller__inherits","getID3Track","textTracks","addTextTrack","onFragParsingMetadata","mode","Cue","WebKitDataCue","VTTCue","TextTrackCue","cue","addCue","ewma","EWMA","halfLife","ewma__classCallCheck","alpha_","exp","estimate_","totalWeight_","adjAlpha","getTotalWeight","getEstimate","zeroFactor","ewma_bandwidth_estimator","EwmaBandWidthEstimator","slow","fast","defaultEstimate","ewma_bandwidth_estimator__classCallCheck","defaultEstimate_","minWeight_","minDelayMs_","slow_","fast_","durationMs","numBytes","bandwidth","canEstimate","abr_controller__createClass","abr_controller_performance","abr_controller","AbrController","abr_controller__classCallCheck","abr_controller__possibleConstructorReturn","lastLoadedFragLevel","_nextAutoLevel","_bwEstimator","onCheck","_abandonRulesCheck","abr_controller__inherits","ewmaFast","ewmaSlow","abrEwmaFastLive","abrEwmaSlowLive","abrEwmaFastVoD","abrEwmaSlowVoD","abrEwmaDefaultEstimate","minAutoLevel","aborted","playbackRate","requestDelay","loadRate","bw","realBitrate","expectedLen","fragLoadedDelay","bufferStarvationDelay","fragLevelNextLoadedDelay","levelNextBitrate","abrMaxWithRealBitrate","loadedBytes","loadedDuration","fragLoadingProcessingMs","bwEstimate","bitrateTestDelay","_findBestLevel","currentFragDuration","currentBw","maxAutoLevel","maxFetchDuration","bwFactor","bwUpFactor","avgDuration","adjustedbw","fetchDuration","forcedAutoLevel","bwEstimator","nextABRAutoLevel","_nextABRAutoLevel","avgbw","bestLevel","abrBandWidthFactor","abrBandWidthUpFactor","maxStarvationDelay","maxLoadingDelay","buffer_controller_MediaSource","buffer_controller","BufferController","buffer_controller__classCallCheck","buffer_controller__possibleConstructorReturn","_msDuration","_levelDuration","_live","_objectUrl","onsbue","onSBUpdateEnd","onsbe","onSBUpdateError","pendingTracks","buffer_controller__inherits","onLevelPtsUpdated","audioBuffer","sourceBuffer","timestampOffset","updating","audioTimestampOffset","audioExpected","videoExpected","sourceBufferNb","onMediaAttaching","ms","mediaSource","onmso","onMediaSourceOpen","onmse","onMediaSourceEnded","onmsc","onMediaSourceClose","createObjectURL","endOfStream","flushRange","segments","checkPendingTracks","pendingTracksNb","createSourceBuffers","doAppending","_needsFlush","doFlush","_needsEos","checkEos","appending","counter","segment","updateMediaElementDuration","onBufferReset","sb","removeSourceBuffer","onBufferCodecs","mimeType","addSourceBuffer","onBufferAppending","onBufferAppendFail","onBufferEos","sbobj","onBufferFlushing","flushBufferCounter","onLevelUpdated","liveDurationInfinity","flushBuffer","appendBuffer","appendError","code","appendErrorMaxRetry","typeIn","bufStart","bufEnd","flushStart","flushEnd","cap_level_controller__createClass","cap_level_controller","CapLevelController","cap_level_controller__classCallCheck","cap_level_controller__possibleConstructorReturn","autoLevelCapping","restrictedLevels","cap_level_controller__inherits","capLevelToPlayerSize","_stopCapping","onFpsDropLevelCapping","isLevelAllowed","droppedLevel","HTMLVideoElement","_startCapping","onLevelsUpdated","detectPlayerSize","levelsLength","getMaxLevel","streamController","capLevelIndex","validLevels","getMaxLevelByMediaSize","mediaWidth","mediaHeight","maxLevelIndex","contentScaleFactor","fps_controller_performance","fps_controller","FPSController","fps_controller__classCallCheck","fps_controller__possibleConstructorReturn","fps_controller__inherits","isVideoPlaybackQualityAvailable","capLevelOnFPSDrop","getVideoPlaybackQuality","checkFPSInterval","fpsDroppedMonitoringPeriod","checkFPS","decodedFrames","droppedFrames","lastTime","currentPeriod","currentDropped","lastDroppedFrames","currentDecoded","lastDecodedFrames","droppedFPS","totalDroppedFrames","fpsDroppedMonitoringThreshold","videoPlaybackQuality","totalVideoFrames","droppedVideoFrames","webkitDecodedFrameCount","webkitDroppedFrameCount","xhr_loader__window","xhr_loader_performance","xhr_loader","XhrLoader","xhr_loader__classCallCheck","xhrSetup","requestTimeout","retryTimeout","callbacks","retry","loadInternal","setRequestHeader","onreadystatechange","readystatechange","onprogress","currentTarget","responseURL","statusText","lengthComputable","audio_track_controller__createClass","audio_track_controller","AudioTrackController","audio_track_controller__classCallCheck","audio_track_controller__possibleConstructorReturn","_trackId","_selectDefaultTrack","trackIdBlacklist","audio_track_controller__inherits","onAudioTrackLoaded","updatePeriodMs","_selectInitialAudioTrack","_handleLoadError","_setAudioTrack","newId","_loadTrackDetailsIfNeeded","_updateTrack","currentAudioTrack","defaultTracks","trackFound","traverseTracks","_needsTrackLoading","previousId","_tracks$previousId","language","audio_stream_controller__createClass","audio_stream_controller_performance","audio_stream_controller_State","STARTING","PAUSED","WAITING_TRACK","WAITING_INIT_PTS","audio_stream_controller","AudioStreamController","audio_stream_controller__classCallCheck","audio_stream_controller__possibleConstructorReturn","waitingFragment","videoTrackCC","audio_stream_controller__inherits","onInitPtsFound","demuxerId","trackDetails","mainBufferInfo","maxConfigBuffer","audioSwitch","CC","findFragWithCC","loadIdx","fragLoadIdx","nextBuffered","foundFrag","fragmentWithinToleranceTest","isSeeking","waitingFrag","waitingFragCC","onAudioTracksUpdated","appendObj","pendingData","appendOnBufferFlush","_frag","_config","vttcue","autoKeyword","directionSetting","","lr","rl","alignSetting","findAlignSetting","cobj","isIE8","baseObj","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","findDirectionSetting","SyntaxError","displayState","getCueAsHTML","WebVTT","convertCueToDOMTree","StringDecoder","decode","decodeURIComponent","encodeURIComponent","VTTParser","decoder","regionList","Settings","parseOptions","keyValueDelim","groupDelim","kv","dflt","defaultKey","alt","integer","parseCue","oInput","consumeTimeStamp","ts","computeSeconds","parseTimeStamp","skipWhitespace","region","vals","vals0","vertical","lineAlign","snapToLines","consumeCueSettings","fixLineBreaks","collectNextLine","alreadyCollectedLine","hasSubstring","oncue","onflush","vttparser","captionScreen","indenting","indent","chars","uchar","cueStartTime","cea_608_parser__classCallCheck","specialCea608CharsCodes","42","92","94","95","96","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","getCharForByte","byte","charCode","NR_ROWS","NR_COLS","rowsLowCh1","17","18","21","22","23","16","19","20","rowsHighCh1","rowsLowCh2","25","26","29","30","31","24","27","28","rowsHighCh2","backgroundColors","cea_608_parser_logger","verboseFilter","DATA","DEBUG","INFO","WARNING","TEXT","verboseLevel","setTime","newTime","severity","numArrayToHexArray","numArray","hexArray","PenState","foreground","underline","italics","background","flash","setStyles","attribs","isDefault","other","newPenState","StyledUnicodeChar","penState","setChar","setPenState","newChar","Row","currPenState","equal","empty","setCursor","absPos","moveCursor","relPos","backSpace","insertChar","char","clearFromPos","startPos","clearToEndOfRow","getTextString","setPenStyles","CaptionScreen","currRow","nrRollUpRows","setPen","setPAC","pacData","newRow","topRowIndex","lastOutputScreen","prevLineTime","prevPos","setBkgData","bkgData","setRollUpRows","nrRows","rollUp","getDisplayText","topRow","asOneRow","displayText","rowNr","rowText","getTextAndFormat","Cea608Channel","channelNumber","outputFilter","chNr","verbose","displayedMemory","nonDisplayedMemory","currRollUpRow","writeScreen","lastCueEndTime","getHandler","setHandler","newHandler","setMode","newMode","insertChars","screen","outputDataUpdate","ccRCL","ccBS","ccAOF","ccAON","ccDER","ccRU","ccFON","ccRDC","ccTR","ccRTD","ccEDM","ccCR","ccENM","ccEOC","ccTO","nrCols","ccMIDROW","secondByte","colorIndex","dispatch","dispatchCue","cueSplitAtTime","cea_608_parser","Cea608Parser","field","out1","out2","outputs","channels","currChNr","lastCmdA","lastCmdB","bufferedData","dataCounters","addData","byteList","cmdFound","charsFound","parseCmd","parseMidrow","parsePAC","parseBackgroundAttributes","parseChars","channel","interpretPAC","pacIndex","channelNr","charCodes","charCode1","oneCode","hexCodes","output_filter","OutputFilter","timelineController","output_filter__classCallCheck","addCues","createCaptionsTrack","startsWith","inputString","searchString","webvtt_parser","vttByteArray","syncPTS","vttCCs","callBack","errorCallBack","vttLines","cueTime","mpegTs","localTime","presentationTime","parsingError","inHeader","parser","currCC","cueOffset","new","prevCC","presentationOffset","calculateOffset","onparsingerror","timeString","secs","mins","hours","timeline_controller","TimelineController","timeline_controller__classCallCheck","timeline_controller__possibleConstructorReturn","enabled","Cues","cueHandler","unparsedVttFrags","cueRanges","captionsTracks","captionsProperties","textTrack1","captionsTextTrack1Label","languageCode","captionsTextTrack1LanguageCode","textTrack2","captionsTextTrack2Label","captionsTextTrack2LanguageCode","enableCEA708Captions","channel1","channel2","cea608Parser","timeline_controller__inherits","ranges","merged","cueRange","overlap","getExistingTrack","_captionsProperties$t","existingTrack","createTextTrack","_cleanTracks","lastSn","enableWebVTT","inUseTracks","inUseTrack","manifestTrack","reuseVttTextTrack","subtitleDisplay","onLevelSwitching","closedCaptions","decryptData","_parseVTTs","success","currentTrack","getCueById","textTrackCue","onFragDecrypted","onFragParsingUserdata","ccdatas","extractCea608Data","tmpByte","ccbyte1","ccbyte2","actualCCBytes","subtitle_track_controller__createClass","filterSubtitleTracks","textTrackList","subtitle_track_controller","SubtitleTrackController","subtitle_track_controller__classCallCheck","subtitle_track_controller__possibleConstructorReturn","subtitle_track_controller__inherits","_onTextTracksChanged","subtitleTrack","queuedDefaultTrack","trackChangeListener","useTextTrackPolling","subtitlePollingInterval","subtitleTracks","onTick","onSubtitleTrackLoaded","_stopTimer","setSubtitleTrackInternal","_toggleTrackModes","oldTrack","nextTrack","subtitleTrackId","subtitle_stream_controller_performance","subtitle_stream_controller_State","subtitle_stream_controller","SubtitleStreamController","subtitle_stream_controller__classCallCheck","subtitle_stream_controller__possibleConstructorReturn","vttFragSNsProcessed","vttFragQueues","currentlyProcessing","currentTrackId","subtitle_stream_controller__inherits","clearVttFragQueues","onSubtitleFragProcessed","processedFragSNs","fragQueue","currentFragSN","alreadyProcessed","fragInQueue","alreadyInQueue","onSubtitleTracksUpdated","onSubtitleTrackSwitch","eme_controller__createClass","eme_controller_XMLHttpRequest","KeySystems","eme_controller","EMEController","eme_controller__classCallCheck","eme_controller__possibleConstructorReturn","_widevineLicenseUrl","widevineLicenseUrl","_licenseXhrSetup","licenseXhrSetup","_emeEnabled","emeEnabled","_requestMediaKeySystemAccess","requestMediaKeySystemAccessFunc","_mediaKeysList","_media","_hasSetMediaKeys","_isMediaEncrypted","_requestLicenseFailureCount","eme_controller__inherits","getLicenseServerUrl","keySystem","_attemptKeySystemAccess","audioCodecs","videoCodecs","mediaKeySystemConfigs","drmSystemOptions","baseConfig","videoCapabilities","createWidevineMediaKeySystemConfigurations","getSupportedMediaKeySystemConfigurations","requestMediaKeySystemAccess","mediaKeySystemAccess","_onMediaKeySystemAccessObtained","mediaKeysListItem","mediaKeys","mediaKeysSession","mediaKeysSessionInitialized","mediaKeySystemDomain","createMediaKeys","_onMediaKeysCreated","createSession","_onNewMediaKeySession","keySession","sessionId","_onKeySessionMessage","_requestLicense","_onMediaEncrypted","initDataType","_mediaEncryptionInitDataType","_mediaEncryptionInitData","_attemptSetMediaKeys","_generateRequestWithPreferredKeySession","keysListItem","setMediaKeys","_this6","generateRequest","_createLicenseXhr","keyMessage","_onLicenseRequestReadyStageChange","attemptsLeft","_generateLicenseRequestChallenge","challenge","_this7","hlsDefaultConfig","lowBufferWatchdogPeriod","abrController","bufferController","capLevelController","fpsController","minAutoBitrate","subtitleStreamController","subtitleTrackController","audioStreamController","audioTrackController","emeController","hls__createClass","hls_Hls","Hls","hls__classCallCheck","DefaultConfig","_autoLevelCapping","playListLoader","fragmentLoader","keyLoader","id3TrackController","levelController","networkControllers","Controller","coreComponents","SourceBuffer","WebKitSourceBuffer","sourceBufferValidAPI","detachMedia","attachMedia","loadSource","location","href","recoverMediaError","manualLevel","audioTrackId","webpackBootstrapFunc","oe","ENTRY_MODULE","moduleNameReqExp","dependencyRegExp","quoteRegExp","getModuleDependencies","sources","queueName","retval","fnString","wrapperSignature","webpackRequireName","re","hasValuesInQueues","queues","hasValues","requiredModules","modulesQueue","seenModules","moduleToCheck","newModules","newModulesKeys","getRequiredModules","entryModule","blob","Blob","bare","workerUrl","webkitURL","mozURL","msURL","worker","__WEBPACK_IMPORTED_MODULE_0__demux_demuxer_inline__","__WEBPACK_IMPORTED_MODULE_2__utils_logger__","__WEBPACK_IMPORTED_MODULE_3_events__","__WEBPACK_IMPORTED_MODULE_3_events___default","transferable","endsWith","$defineProperty","stringLength","searchLength","AxisBuilder","BrushController","brushHelper","elementList","_brushController","_onBrush","findComponents","fromAxisAreaSelect","oldAxisGroup","_axisGroup","coordSysModel","areaWidth","axisLayout","getAxisLayout","builderOpt","strokeContainThreshold","axisBuilder","getGroup","_refreshBrushController","animationModel","groupTransition","extentLen","mount","enableGlobalPan","setPanels","panelId","makeRectPanelClipPath","isTargetByCursor","makeRectIsTargetByCursor","getLinearBrushOtherExtent","makeLinearBrushOtherExtent","enableBrush","brushType","brushStyle","removeOnClick","updateCovers","getCoverInfoList","coverInfoList","coverInfo","isEnd","parallelAxisId","eventTool","VisualMapView","sliderMove","helper","linearMap","HOVER_LINK_SIZE","HOVER_LINK_OUT","ContinuousView","_shapes","_dataInterval","_handleEnds","_orient","_useHandle","_hoverLinkDataIndices","_dragging","_hovering","doRender","visualMapModel","_buildView","thisGroup","_resetInterval","_renderBar","dataRangeText","_renderEndsText","_updateView","renderBackground","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","positionGroup","endsIndex","textGap","itemSize","barGroup","_applyTransform","textStyleModel","getFont","getTextColor","targetGroup","shapes","useHandle","itemAlign","getItemAlign","_createBarGroup","outOfRange","createPolygon","getCursor","_dragHandle","getTextRect","textSize","handleThumbs","handleLabels","handleLabelPoints","_createHandle","_createIndicator","handleIndex","onDrift","onDragEnd","handleThumb","createHandlePoints","handleLabel","draggable","onmousemove","ondragend","handleLabelPoint","invisible","indicatorLabel","indicatorLabelPoint","vertex","_updateInterval","visualMapId","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","dataInterval","getSelected","dataExtent","sizeExtent","handleEnds","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","forceState","convertOpacityToAlpha","_makeColorGradient","symbolSizes","getControllerVisual","_createBarPoints","handlesColor","currValue","textPoint","getTransform","formatValueText","_showIndicator","cursorValue","textValue","rangeSymbol","halfHoverLinkSize","isRange","extentMax","createIndicatorPoints","hoverLink","_hoverLinkFromSeriesMouseOver","_hideIndicator","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","hoverLinkDataSize","getHalfHoverLinkSize","hoverRange","valueRange","oldBatch","newBatch","findTargetDataIndices","resultBatches","compressBatches","_dispatchHighDown","convertDataIndex","isTargetSeries","getDataDimension","hoverLinkOnHandle","interactionMutex","RoamController","pointerChecker","_opt","mousedownHandler","mousedown","mousemoveHandler","mousemove","mouseupHandler","mouseup","mousewheelHandler","mousewheel","pinchHandler","pinch","setPointerChecker","enable","controlType","disable","zoomOnMouseWheel","moveOnMouseMove","preventDefaultMouseMove","isDragging","isPinching","_pinching","notLeftMouse","_y","checkKeyBinding","gestureEvent","isTaken","oldX","oldY","wheelDelta","zoomDelta","pinchScale","pinchX","pinchY","zoomX","zoomY","roamController","fecha","twoDigits","shorten","sLen","monthUpdate","arrName","i18n","month","pad","dayNames","monthNames","monthNamesShort","dayNamesShort","amPm","DoFn","D","formatFlags","dateObj","getDay","DD","Do","getDate","dd","ddd","dddd","getMonth","MM","MMM","MMMM","yy","getFullYear","yyyy","getHours","hh","H","HH","getMinutes","mm","getSeconds","ss","S","getMilliseconds","SS","SSS","ZZ","getTimezoneOffset","parseFlags","day","cent","year","hour","minute","second","millisecond","isPm","minutes","timezoneOffset","masks","shortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","mask","i18nSettings","getTime","$0","dateStr","isValid","dateInfo","date","today","UTC","299","_progress","_progress2","300","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_605ce16e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__","301","validator","percentage","required","strokeWidth","textInside","showText","barStyle","relativeStrokeWidth","trackPath","perimeter","circlePathStyle","strokeDasharray","strokeDashoffset","transition","iconClass","progressTextSize","302","el-progress--without-text","el-progress--text-inside","role","aria-valuenow","aria-valuemin","aria-valuemax","_s","stroke-width","stroke-linecap","ORIGIN_METHOD","RATE","THROTTLE_TYPE","currCall","debounceNextCall","lastCall","lastExec","thisDelay","thisDebounce","debounceDelay","createOrUpdate","fnAttr","rate","throttleType","originFn","lastThrottleType","easingFuncs","Clip","_target","_life","life","_delay","_initialized","gap","onframe","ondestroy","onrestart","_pausedTime","_paused","globalTime","deltaTime","easingFunc","schedule","fire","restart","_needsRemove","remainder","resume","mathCos","mathSin","moveTo","lineTo","unitX","unitY","arc","setToStringTag","IteratorPrototype","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","protocol","host","hostname","port","pathname","requestURL","parsed","single","rectBound","positionMap","horizontal","tickDirection","nameDirection","labelRotation","rotate","createListFromArray","visualColorAccessPath","getInitialData","getSource","encodeDefine","parallelModel","axisDim","dataDimIndex","setEncodeAndDimensions","getRawIndicesByActiveState","activeState","eachActiveState","theActiveState","getRawIndex","parallelIndex","inactiveOpacity","activeOpacity","progressive","animationEasing","echartsAPIList","chartInstance","bMapModel","rendering","getBMap","viewportRoot","getViewportRoot","moveHandler","offsetEl","mapOffset","setMapOffset","__mapOffset","zoomEndHandler","_oldMoveHandler","_oldZoomEndHandler","enableDragging","disableDragging","enableScrollWheelZoom","enableDoubleClickZoom","enablePinchToZoom","disableScrollWheelZoom","disableDoubleClickZoom","disablePinchToZoom","originalStyle","__mapStyle","newMapStyle","mapStyleStr","setMapStyle","isTypedArray","getDataItemValue","isDataItemOption","parseDate","Source","_sourceType","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_OBJECT_ROWS","DefaultDataProvider","dimSize","isInstance","seriesDataToSource","_source","sourceFormat","_offset","_dimSize","providerMethods","seriesLayoutBy","providerProto","pure","persistent","arrayRows_column","getItem","appendDataSimply","arrayRows_row","objectRows","countSimply","getItemSimply","keyedColumns","dimensionsDefine","col","newCol","oldCol","original","typedArray","rawValueGetters","arrayRows","getRawValueSimply","defaultDimValueGetters","getDimValueSimply","converDataValue","_dimensionInfos","_rawData","dimType","ordinalMeta","parseAndCollect","NaN","retrieveRawValue","getProvider","retrieveRawAttr","colorPalette","iconStyle","controlStyle","timeAxis","logAxis","graph","gauge","candlestick","symbolCtor","_symbolCtor","symbolDrawProto","symbolNeedsDraw","normalizeUpdateOpt","makeSeriesScope","hoverItemStyle","hoverLabelModel","SymbolCtor","seriesScope","symbolEl","fadeOut","isPersistent","_seriesScope","updateIncrementalAndHover","incremental","enableAnimation","OrdinalScale","_barGrid","prepareLayoutBarSeries","makeColumnLayout","retrieveColumnLayout","getScaleExtent","axisDataLen","scaleType","getMin","getMax","getCategories","setBlank","eqNaN","getOrdinalMeta","categories","getNeedCrossZero","isBaseAxisAndHasBarSeries","barSeriesModels","barWidthAndOffset","adjustedScale","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","overflowBuffer","adjustScaleForOverflow","makeLabelFormatter","labelFormatter","categoryTickStart","getAxisRawValue","minInterval","maxInterval","isBlank","realNumberScaleTicks","tickCount","categoryScaleExtent","rotateRadians","boundingBox","beforeWidth","beforeHeight","afterWidth","afterHeight","axisLabelModel","unrotatedSingleRect","singleRect","union","util","Layer","parseInt10","viewRect","Painter","singleCanvas","nodeName","_opts","_singleCanvas","rootStyle","zlevelList","_zlevelList","layers","_layers","_layerConfig","_needsManuallyCompositing","_width","_height","mainLayer","__builtin__","initContext","_domRoot","_getSize","domRoot","createRoot","_hoverlayer","_hoverElements","isSingleCanvas","getViewportRootOffset","paintAll","_redrawId","random","_paintList","layer","clearColor","_backgroundColor","refreshHover","addHover","__hoverMir","elMirror","__from","removeHover","hoverElements","clearHover","hoverLayer","displayableSortFunc","save","originalEl","__clipPaths","_doPaintEl","restore","getHoverLayer","redrawId","_updateLayerStatus","finished","_doPaintList","_compositeManually","clearRect","eachBuiltinLayer","virtual","drawImage","layerList","zi","__startIndex","__drawIndex","useTimer","__endIndex","firstEl","notClear","prevElClipPaths","wxa","draw","currentLayer","forcePaint","culling","intersect","isDisplayableCulled","clipPaths","prevClipPaths","isClipPathChanged","prevEl","setTransform","clip","restoreTransform","doClip","beforeBrush","afterBrush","insertLayer","layersMap","prevLayer","isLayerValid","prevDom","insertBefore","eachLayer","eachOtherLayer","getLayers","updatePrevLayer","__used","incrementalLayerCount","getElementCount","layerConfig","_zlevel","delLayer","_progressiveLayers","clearLayer","imageLayer","renderToCanvas","displayList","whIdx","wh","cwh","plt","prb","stl","pathToImage","getContext","shadowBlurSize","hasStroke","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","imgShape","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","LinkedList","head","tail","linkedListProto","insert","Entry","insertEntry","LRU","maxSize","_list","_map","_maxSize","_lastRemovedEntry","LRUProto","put","leastUsedEntry","samplers","average","nearest","indexSampler","modifyOutputEnd","sampling","sampler","setData","downSample","NORMAL_ITEM_STYLE_PATH","EMPHASIS_ITEM_STYLE_PATH","BoxplotView","constDim","hasValue","createNormalBox","updateNormalBoxData","BoxPath","closePath","isInit","initBaseline","transInit","normalItemStyleModel","boxplotVisual","boxplotLayout","seriesModelMixin","BoxplotSeries","defaultValueDimensions","defaultTooltip","legendHoverLink","boxWidth","shadowColor","animationDuration","thisArg","throttleUtil","ATTR","giveStore","cleanStore","store","record","coordId","onPan","newX","newY","wrapAndDispatch","panGetRange","onZoom","mouseX","mouseY","zoomGetRange","getRange","dataZoomInfos","dataZoomId","dataZoomInfo","theDataZoomId","theCoordId","allCoordIds","newRecord","createController","typePriority","controllerParams","type_true","type_move","type_false","type_undefined","oneType","zoomLock","roamControllerOpt","containsPoint","throttleRate","generateCoordId","coordModel","core","dP","DESCRIPTORS","SPECIES","KEY","coordSysAxesInfo","snap","triggerTooltip","shadowStyle","handle","_assign","_assign2","1","_option","_option2","3","35","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__","36","_emitter","_emitter2","mixins","componentName","groupDisabled","hitState","hover","currentLabel","currentValue","itemSelected","select","multiple","limitReached","multipleLimit","remote","oldVal","_select","valueKey","getValueByPath","_ret","handleGroupDisabled","hoverItem","hoverIndex","selectOptionClick","queryChange","escapeRegexpString","filteredOptionsCount","cachedOptions","optionsCount","$on","onOptionDestroy","37","directives","rawName","mouseenter","$event","stopPropagation","List","defaultEmphasis","Model","encodeHTML","createGraphFromNodeEdge","GraphSeries","legendDataProvider","_categoriesData","fillDataTextStyle","edges","_updateCategoriesData","mergeOption","mergeDefaultAndTheme","nodes","nodeData","edgeData","wrapMethod","categoriesModels","_categoriesModels","categoryIdx","categoryModel","parentModel","edgeLabelModel","fakeSeriesModel","emphasisEdgeLabelModel","emphasisFakeSeriesModel","edgeGetParent","parsePath","customizeGetParent","getGraph","getEdgeData","getCategoriesData","formatTooltip","multipleSeries","edge","getEdgeByIndex","sourceName","node1","targetName","node2","category","categoriesData","superCall","focusNodeAdjacency","circular","rotateLabel","force","initLayout","repulsion","gravity","edgeLength","layoutAnimation","edgeSymbol","edgeSymbolSize","edgeLabel","nodeScaleRatio","curveness","linkList","createDimensions","TreeNode","hostTree","depth","children","viewChildren","Tree","levelOptions","leavesOption","_nodes","levelModels","levelDefine","leavesModel","isRemoved","eachNode","suppressVisitSub","updateDepthAndHeight","getNodeById","getId","getAncestors","includeSelf","ancestors","getValue","setLayout","setItemLayout","getLayout","levelModel","getLevelModel","isExpand","getLeavesModel","ignoreParent","isAncestorOf","isDescendantOf","getNodeByDataIndex","rawIndex","getNodeByName","clearLayouts","clearItemLayouts","createTree","dataRoot","treeOptions","tree","leaves","listData","dimMax","buildHierarchy","dataNode","addChild","dimensionsInfo","coordDimensions","dimensionsCount","struct","structAttr","parallelAxisModel","setAxisExpand","normalizedName","Region","geoCoord","regions","exterior","freeGlobal","createListSimply","getPercentWithPrecision","dataSelectableMixin","PieSeries","getRawData","updateSelectedMap","_createSelectableList","_defaultLabelLine","valueList","$vars","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","hoverOffset","avoidLabelOverlap","percentPrecision","stillShowZeroSum","length2","seriesGroup","parallelPreprocessor","_handlers","handlers","_throttledDispatchExpand","_dispatchExpand","checkTrigger","_mouseDownPoint","mouseDownPoint","getSlidedAxisExpandWindow","behavior","axisExpandWindow","LIBRARY","wksExt","$Symbol","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","styleName","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","TEXT_STYLE_OPTIONS","compatEC3CommonStyles","toArr","toObj","isTheme","seriesOpt","mpData","mlData","breadcrumb","processSeries","axes","axisOpt","parallel","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","geoOpt","regionObj","timelineOpt","toolboxOpt","feature","featureOpt","globalCoord","isBuffer","readFloatLE","isSlowBuffer","_isBuffer","_echarts","_export","Dispatcher","isDomLevel2","MOUSE_EVENT_REG","clientToLocal","calculate","defaultGetZrXY","firefox","layerX","zrX","zrY","layerY","clientX","clientY","preventDefault","cancelBubble","returnValue","normalizeEvent","touch","targetTouches","changedTouches","zrDelta","button","which","attachEvent","detachEvent","$keys","enumBugKeys","createSymbol","vec2","curveUtil","lineData","createLine","_updateEffectSymbol","effectLineProto","effectModel","_symbolType","setColor","_updateEffectAnimation","period","constantSpeed","delayExpr","isDelayFunc","updateAnimationPoints","getLineLength","_period","__t","updateSymbolPosition","dist","__p1","__cp1","__p2","cp1","quadraticAt","quadraticDerivativeAt","tx","ty","componentUtil","_clazz","enableClassManagement","makeInner","boxLayoutMixin","inner","dependentModels","layoutMode","extraOpt","getUID","inputPositionParams","getLayoutParams","themeModel","getTheme","getDefaultOption","mergeLayoutParam","optionUpdated","newCptOption","fields","optList","Class","queryComponents","registerWhenExtend","enableSubTypeDefaulter","enableTopologicalTravel","deps","getClassesByMainType","Clazz","brushModel","setAreas","areas","updateController","modelId","brushTargetManager","setOutputRanges","brushId","$from","makePanelOpts","brushOption","shapeCompareFunc","Storage","_roots","_displayList","_displayListLen","includeIgnore","updateDisplayList","roots","_updateAndAddDisplayable","beforeUpdate","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","_children","addRoot","__storage","addChildrenToStorage","addToStorage","delRoot","delChildrenFromStorage","delFromStorage","_renderList","outer","widthNoScroll","widthWithScroll","_vue","markerHelper","markLineTransform","mlModel","mlType","valueDataDim","axisInfo","getAxisInfo","numCalculate","valueIndex","mlFrom","mlTo","dataTransform","isInifinity","ifMarkLineHasOnlyDim","fromCoord","toCoord","otherDimIndex","containData","markLineFilter","dataFilter","updateSingleMarkerEndLayout","isFrom","xPx","yPx","getMarkerPosition","getValues","markLineModel","fromData","toData","__to","markerGroupMap","lineDrawMap","coordDimsInfos","optData","dimValueGetter","createList","updateDataVisualAndLayout","lineColor","fromSymbolSize","fromSymbol","toSymbolSize","toSymbol","__keep","legendSelectActionHandler","selectedMap","isToggleSelect","legendModel","legendData","isItemSelected","ITERATOR","SAFE_CLOSING","riter","skipClosing","safe","iter","gOPN","windowNames","getOwnPropertyNames","getWindowNames","excludes","includes","getDefaultLabel","fixPosition","labelPositionOutside","setLabel","normalStyle","isRectText","zrColor","CATEGORY_DEFAULT_VISUAL_INDEX","mappingMethod","_normalizeData","normalizers","visualHandler","visualHandlers","getColorMapper","_doMap","normalizeVisualRange","pieceList","hasSpecialVisual","piece","originIndex","preprocessForPiecewise","categoryMap","cate","visualArr","setVisualToOption","preprocessForSpecifiedCategory","mapValueToVisual","normalized","getNormalizer","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","fastLerp","parsedVisual","linear","piecewise","getSpecifiedVisual","doMapFixed","colorHue","makePartialColorVisualHandler","modifyHSL","colorSaturation","colorLightness","colorAlpha","modifyAlpha","makeDoMap","liftZ","setter","symbolCfg","doMapToArray","applyValue","sourceExtent","findPieceIndex","pieceIndex","littleThan","listVisualTypes","addVisualHandler","eachVisual","mapVisual","isPrimary","newVisual","newVal","retrieveVisuals","hasVisual","type1","type2","visualType1","visualType2","findClosestWhenOutside","possibleI","pieceValue","updatePossible","newAbs","colorIdx","colorNameMap","getColorFromPalette","requestColorNum","scopeFields","defaultColorPalette","layeredColorPalette","paletteNum","getNearestColorPalette","axisDefault","valueAxisDefault","defaultsShow","nameTextStyle","showName","nameFormatter","triggerEvent","indicatorModels","indicatorOpt","iNameTextStyle","indName","getIndicatorModels","ctor","radialCoordinate","_oldTree","_mainGroup","expandAndCollapse","getOrient","curvature","useNameLabel","fadeIn","updateNode","removeNode","getTreeNodeStyle","symbolInnerColor","virtualRoot","sourceSymbolEl","sourceLayout","sourceOldLayout","rawX","__radialOldRawX","rawY","__radialOldRawY","targetLayout","__radialRawX","__radialRawY","symbolPath","getSymbolPath","rad","isLeft","realRoot","rootLayout","textRotation","textOrigin","__edge","BezierCurve","getEdgeShape","keepLabel","cpx1","cpy1","cpx2","cpy2","radialCoor1","radialCoor2","radialCoor3","radialCoor4","geoCoordMap","Russia","United States","United States of America","cp","getLineDash","lineType","dotSize","dashSize","AngleAxis","clamp","angleToData","getStore","take","resourceKey","userKey","release","VisualMapModel","DEFAULT_BAR_BOUND","ContinuousModel","itemHeight","itemWidth","resetExtent","resetVisual","_resetRange","resetItemSize","auto","completeVisualOption","setSelected","eachTargetSeries","dataIndices","getVisualMeta","getColorVisual","oVals","getColorStopValues","iVals","setStop","iIdx","oIdx","iLen","oLen","first","stopsLen","stopValues","eachSeriesByType","colorList","itemStyleModel","areaColor","singleAxisHelper","XY","WH","SingleAxisPointer","getPointDimIndex","coordSysType","fromPoints","aspect","bbWidth","bbHeight","viewWidth","viewHeight","viewCoordSys","nest","resolveCollisions","nodesByBreadth","nodeGap","ascendingDepth","nodeY","relaxRightToLeft","outEdges","weightedTarget","getEdgeValue","relaxLeftToRight","inEdges","weightedSource","ascendingTargetDepth","ascendingSourceDepth","nodeWidth","computeNodeValues","iterations","remainEdges","indegreeArr","zeroIndegrees","nextNode","indexEdge","targetNode","nodeIndex","moveSinksRight","kx","nodeX","scaleNodeBreadths","computeNodeBreadths","sortKeys","kyArray","ky","ky0","nodeDy","edgeDy","initializeNodeDepth","computeNodeDepths","computeEdgeDepths","layoutSankey","_layout","layoutBox","positionElement","formatUtil","boxLayoutParams","viewportSize","makeBackground","normalizeCssArray","guid","attrKV","hide","addSelfToZr","__clipTarget","removeSelfFromZr","removeAnimator","OrdinalMeta","_ordinalMeta","getOrdinal","rank","ticks","setRange","resetRange","isArrayBuffer","isFormData","FormData","isArrayBufferView","isView","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","product","assignValue","_amap","_mapOffset","lnglatToPixel","getAMap","AMap","LngLat","lngLatToContainer","containerToLngLat","lng","lat","__amap","__options","__layer","CustomLayer","setMap","u","getMapOptions","setCenterAndZoom","centerOrZoomChanged","_oldResizeHandler","Geo","resizeGeo","geoModel","leftTop","rightBottom","boxLayoutOption","useCenterAndSize","setGeoCoords","addGeoCoord","geoCreator","geoList","mapData","geoIndex","mapModelGroupBySeries","getHostGeoModel","getMapType","mapSeries","nameMapList","singleMapSeries","mergeAll","getFilledRegions","originRegionArr","nameMap","regionsArr","dataNameMap","properties","axisBuilderAttrs","SingleAxisView","axisPointerClass","selfBuilderAttr","_splitLine","splitLineModel","lineColors","splitLines","lineCount","ticksCoords","getTicksCoords","tickModel","tickCoord","mergePath","eval","FunnelSeries","getSum","minSize","funnelAlign","dataZoomModel","getTargetCoordInfo","coordSysLists","eachTargetAxis","dimNames","coordIndex","axisModels","scaleHelper","TimeScale","stepLvl","_stepLvl","formatTime","getSetting","ONE_HOUR","approxInterval","scaleLevelsLen","scaleLevels","lo","hi","mid","bisect","yearSpan","nice","fixExtent","ONE_SECOND","ONE_MINUTE","ONE_DAY","useUTC","number","_throttle","ecHelper","parseGeoJSON","_List","_Model","_Axis","_env","parseGeoJson","ecUtil","hiddenKeys","_popup","PopperJS","transformOrigin","visibleArrow","appendToBody","popperOptions","showPopper","currentPlacement","immediate","updatePopper","destroyPopper","createPopper","popperElm","referenceElm","elm","appendArrow","popperJS","resetTransformOrigin","doDestroy","forceDestroy","deactivated","_dataStackHelper","enableDataStack","isDimensionStacked","_completeDimensions","completeDimensions","_createDimensions","_symbol","createScale","mixinAxisModelCommonMethods","onIrrelevantElement","graphicUtil","normalizeRect","localPoints","clipPointsByRect","specifiedXYIndex","xyIndex","brushWidth","targetModel","localCursorPoint","Iterators","TO_STRING_TAG","DOMIterables","Collection","_targetList","_selectTargetMap","targetMap","unSelect","toggleSelected","selfBuilderAttrs","CartesianAxisView","_splitAreaColors","anid","_splitArea","splitAreaModel","areaColors","areaColorsLen","lastSplitAreaColors","newSplitAreaColors","cIndex","__e","symbolUtil","LinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","setLinePoints","_createLine","lineProto","symbolFrom","childOfName","symbolTo","invScale","fromPos","pointAt","toPos","tangent","tangentAt","__position","halfPercent","__verticalAlign","__textAlign","_updateCommonStl","hoverLineStyle","visualOpacity","retrieve3","defaultLabelColor","baseText","showLabel","hoverShowLabel","getFormattedLabel","rawVal","getRawValue","normalText","emphasisText","retrieve2","labelStyle","setTextStyle","linePath","Pattern","repeat","getCanvasPattern","createPattern","createDataSelectAction","dataColor","pieLayout","legendFilter","registerSubTypeDefaulter","funnelLayout","_createPolyline","polylineProto","LineGroup","_ctor","lineDrawProto","isPointNaN","lineNeedsDraw","oldLineData","_lineData","doAdd","newLineData","itemEl","doUpdate","_clearIncremental","_incremental","clearDisplaybles","CandlestickSeries","barMaxWidth","barMinWidth","barWidth","progressiveChunkMode","animationUpdate","getShadowDim","selectors","brushRect","clampData","barMinHeight","barMinAngle","scrollDataIndex","setScrollDataIndex","Calendar","calendarModel","getRangeInfo","_rangeInfo","getCellWidth","_sw","getCellHeight","_sh","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","formatedDate","getNextNDay","setDate","_lineWidth","_getRangeInfo","_initRangeOption","weeks","whNames","cellSize","layoutParams","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","dayInfo","week","nthWeek","pointToDate","dataToRect","contentShape","tl","br","bl","nthX","nthY","_getDateByWeeksAndDay","rg","firstDay","setMonth","reversed","allDay","startDateNum","endDateNum","sign","fweek","lweek","rangeInfo","nthDay","calendarList","calendarSeries","layoutPoints","sankeyLayout","sankeyVisual","entity","subTypeDefaulters","defaulter","determineSubType","componentTypeMain","hasSubTypes","dependencyGetter","createDependencyGraphItem","predecessor","successor","topologicalTravel","targetNameList","fullNameList","noEntryList","thisItem","availableDeps","originalDeps","dep","getAvailableDependencies","entryCount","dependentName","thatItem","makeDepndencyGraph","targetNameSet","currComponentType","currVertex","isInTargetNameSet","removeEdgeAndAdd","removeEdge","succComponentType","idxMap","is","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","diffResult","diffData","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","dataDimsForPoint","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","curve","extremity","fromLine","fromCubic","cubicExtrema","cubicAt","fromQuadratic","quadraticExtremum","fromArc","vec2Min","vec2Max","__g","toInteger","mIdentity","identity","EPSILON","isNotAroundZero","transformableProto","needLocalTransform","parentHasTransform","mul","tmpTransform","getGlobalScale","transformCoordToLocal","v2","transformCoordToGlobal","14","2","_main","_main2","208","_vuePopper2","_debounce2","_vdom","manual","effect","popperClass","hideAfter","timeoutPending","focusing","tooltipId","generateId","popperVM","$mount","debounceClose","handleClosePopper","afterLeave","mouseleave","setExpectedState","aria-hidden","vnode","getFirstComponentChild","concatClass","componentInstance","handleFocus","handleBlur","removeFocusing","handleShowPopper","expectedState","destroyed","4","7","transferItem","itemStyleEmphasis","labelNormal","excludeLabelAttr","ec2Types","controlPosition","compatibleEC2","polygonContain","geometries","MAX_NUMBER","MAX_VALUE","min2","max2","loopGeo","interiors","singles","singleAxisModel","getBorderLineDash","eventUtil","toCamelCase","vendors","assembleCssText","tooltipModel","transitionText","vendorPrefix","toHex","borderName","camelCase","assembleFont","TooltipContent","_container","_show","_hideTimeout","onmouseenter","_enterable","_inContent","onmouseleave","hideLater","_hideDelay","currentStyle","domStyle","setContent","setEnterable","getSize","viewportRootOffset","isShow","337","338","_resizeEvent","_bar2","Bar","native","wrapStyle","wrapClass","viewClass","viewStyle","noresize","tag","sizeWidth","sizeHeight","moveX","moveY","wrap","gutter","gutterWith","gutterStyle","scroll","handleScroll","move","heightPercentage","widthPercentage","339","BAR_MAP","$parent","clickTrackHandler","clickThumbHandler","renderThumbStyle","startDrag","client","thumbPositionPercentage","thumb","scrollSize","stopImmediatePropagation","cursorDown","mouseMoveDocumentHandler","mouseUpDocumentHandler","onselectstart","prevPage","340","translate","msTransform","webkitTransform","38","BrushTargetManager","history","featureManager","dataZoomLang","DATA_ZOOM_ID_BASE","DataZoom","_isZoomActive","back","featureModel","zoomActive","dataZoomSelectActive","setIconStatus","retrieveAxisSetting","include","targetInfo","xAxisDeclared","yAxisDeclared","updateZoomBtnStatus","updateBackBtnStatus","onclick","unmount","nextActive","_dispatchZoomAction","snapshot","matchOutputRanges","coordRange","setBatch","lineX","lineY","minMax","found","dzModel","getAxisModel","findDataZoom","minMaxSpan","findRepresentativeAxisProxy","getMinMaxSpan","minValueSpan","maxValueSpan","startValue","endValue","dataZoomOpts","dataZoomOpt","addForAxis","axisIndicesName","givenAxisIndices","forEachComponent","newOpt","$fromToolbox","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","meta","NEED","fastKey","getWeak","onFreeze","graphSeries","preservedPoints","forceModel","nodeDataExtent","getDataExtent","edgeDataExtent","rep","n1","n2","forceInstance","oldStep","getNodeByIndex","stopped","FunnelPiece","funnelPieceProto","opacityAccessPath","funnelPiece","decodePolygon","coordinate","encodeOffsets","encodeScale","prevX","prevY","UTF8Encoding","UTF8Scale","geometry","coordinates","c2","featureObj","cubicProjectPoint","DataZoomView","roams","InsideZoomView","_range","getPercentRange","coordInfoList","coordSysName","coordInfo","dataZoomOption","_onPan","_onZoom","lastRange","directionInfo","getDirectionInfo","percentDelta","signal","pixel","pixelLength","percentPoint","pixelStart","minSpan","maxSpan","oldPoint","newPoint","pointToCoord","singleAxis","createRenderPlanner","isLarge","lineCoords","segCount","totalCoordsCount","getLineCoordsCount","Float32Array","getLineCoords","speed","called","afterLeaveCallback","$once","detectSourceFormat","SERIES_LAYOUT_BY_COLUMN","sourceHeader","fixClipWithShadow","scaleAndAdd","v2Copy","cp0","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","prevIdx","prevP","ctrlLen","bezierCurveTo","nextIdx","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","smoothConstraint","ptMin","ptMax","stackedOnBBox","_a","roundNumber","_intervalPrecision","thisExtent","getInterval","getIntervalPrecision","intervalScaleGetTicks","addCommas","intervalScaleNiceTicks","intervalPrecision","niceTickExtent","$export","own","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","U","nativeObjectToString","layoutUtil","graphicOption","elements","GraphicModel","parentId","_elOptionsToUpdate","newList","existList","flattenedList","_flatten","mappingResult","mappingToExists","makeIdAndName","elOptionsToUpdate","resultItem","newElOption","existElOption","exist","keyInfo","newElParentOption","parentOption","setKeyInfoToNewElOption","newElOptCopy","$action","ignoreSize","copyLayoutParams","mergeNewElOptionToExist","existItem","hv","isSetLoc","setLayoutInfoToExist","optionList","useElOptionsToUpdate","els","createEl","targetElParent","elMap","graphicType","Clz","__ecGraphicId","removeEl","existEl","existElParent","removeKey","isSet","_elMap","_lastGraphicModel","graphicModel","_clear","_updateElements","_relocate","rootGroup","elOptionStyle","textBaseline","elOptionCleaned","LOCATION_PARAMS","getCleanedElOption","__ecGraphicWidth","__ecGraphicHeight","elOptions","parentEl","containerInfo","boundingMode","bounding","defer","invoke","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","queue","run","port2","port1","onmessage","importScripts","smoothSpline","smoothBezier","controlPoints","cp2","weekTimes","weekdays","drawing","selecting","startX","startY","preX","preY","currentX","currentY","5","6","selectedText","emitWeekTimes","selectWeekday","selectDayPeriod","isSelectedDayPeriod","deleteHour","selectHour","selectByMousedown","selectByMouseOver","checkSelectedValid","selectByMouseout","selectByMouseup","mouseLeave","selectAll","getWeekTimeString","hoursPretreatment","weekdayPretreatment","numberArrayGroup","getEqualValueIndex","locals","btoa","unescape","sourceRoot","refs","css","sourceMap","ssrId","styleSheet","childNodes","colspan","dragstart","mouseover","mouseout","findAxisModel","foundAxisModel","getKeys","gOPS","pIE","$assign","K","T","aLen","getSymbols","isEnum","groupResult","axisList","seriesModels","groupSeriesByAxis","groupItem","seriesCount","boxWidthList","boxOffsetList","boundList","maxDataCount","boxWidthBound","availableWidth","boxGap","calculateBase","halfWidth","cDimIdx","vDimIdx","coordDims","cDim","vDims","axisDimVal","median","getPoint","end1","end2","end4","end5","addBodyEnd","layEndLine","point1","point2","endCenter","layoutSingleSeries","freeSelf","101","_input","_input2","102","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_278ba46e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_vue__","103","_migrating2","_calcTextareaHeight2","_shared","inheritAttrs","textareaCalcStyle","hovering","focused","isOnComposition","valueBeforeComposition","form","readonly","autosize","autoComplete","validateEvent","suffixIcon","prefixIcon","clearable","tabindex","validateState","needStatusIcon","statusIcon","validateIcon","validating","textareaStyle","inputSize","inputDisabled","showClear","oldValue","setCurrentValue","textarea","blur","getMigratingConfig","on-icon-click","resizeTextarea","minRows","maxRows","minHeight","handleComposition","handleInput","lastCharacter","isKorean","handleChange","calcIconOffset","place","elList","pendant","suffix","prefix","updateIconOffset","updated","104","targetElement","hiddenTextarea","_calculateNodeStyling","getPropertyValue","paddingSize","borderSize","contextStyle","CONTEXT_STYLE","calculateNodeStyling","HIDDEN_STYLE","placeholder","singleRowHeight","maxHeight","105","el-input-group","prepend","el-input-group--append","el-input-group--prepend","el-input--prefix","el-input--suffix","_b","autocomplete","aria-label","domProps","compositionstart","compositionupdate","compositionend","change","$attrs","8","9","DEFAULT_SMOOTH","createLinePoints","addEl","dataGroup","updateElCommon","_dataGroup","newDataIndex","oldDataIndex","rectEl","BUILTIN_OBJECT","[object Function]","[object RegExp]","[object Date]","[object Error]","[object CanvasGradient]","[object CanvasPattern]","[object Image]","[object Canvas]","TYPED_ARRAY","[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","objToString","arrayProto","nativeForEach","nativeFilter","nativeSlice","nativeMap","nativeReduce","typeStr","isPrimitive","Ctor","isDom","overwrite","targetProp","sourceProp","isBuiltInObject","overlay","_ctx","primitiveKey","HashMap","isArr","thisMap","visit","targetAndSources","clazz","baseClazz","clazzPrototype","memo","find","value0","concatArray","transformPath","mathSqrt","vMag","vRatio","vAngle","acos","processArc","fa","fs","psiDeg","psi","xp","yp","lambda","cxp","cyp","theta","dTheta","createPathOptions","pathProxy","cs","prevCmd","cpx","cpy","ctlPtx","ctlPty","pathData","createPathProxyFromString","rebuildPath","createFromString","extendFromString","pathEls","pathList","createPathProxy","pathBundle","appendPath","SankeyShape","extendShape","halfExtent","eachEdge","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2Model","dragX2","dragY2","edgeLayout","dragX","dragY","localX","localY","createTask","dataProcessorHandlers","_dataProcessorHandlers","_visualHandlers","_allHandlers","_stageTaskMap","performStageTasks","stageHandlers","needSetDirty","task","__pipeline","stageHandlerRecord","seriesTaskMap","overallTask","overallNeedDirty","agentStubMap","stub","performArgs","block","pipelineId","skip","performRawSeries","isSeriesFiltered","taskRecord","isBlock","pipeline","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","modDataCount","modBy","getPipeline","threshold","pipelineMap","preventIncremental","dataTask","stageTaskMap","getTargetSeries","createOnAllSeries","eachRawSeries","eachRawSeriesByType","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","createSeriesStageTask","overallReset","overallTaskReset","overallProgress","createStub","stubReset","onDirty","stubOnDirty","agent","__block","createOverallStageTask","getUpstream","upstreamContext","stubProgress","getDownstream","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","detectSeriseType","mockMethods","cond","getPathToRoot","retrieveTargetInfo","validPayloadTypes","targetNodeId","aboveViewRoot","viewRoot","viewPath","wrapTreePathInfo","treePathInfo","nodeDataIndex","ariaModel","seriesCnt","ariaLabel","maxDataCnt","maxSeriesCnt","displaySeriesCnt","getTitle","getConfig","seriesLabels","seriesLabel","seriesTpl","typeNames","displayCnt","keyValues","userConfig","Parallel","pp","friction","warmUp","setFixed","setUnfixed","v12","nLen","repFact","getPropByPath","strict","tempObj","_from","paths","valueEquals","nextRight","hierNode","thread","nextLeft","nextAncestor","nodeInLeft","ancestor","moveSubtree","wl","wr","prelim","defaultSeparation","defaultAncestor","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","apportion","secondWalk","radialCoor","_from2","arr2","colorUtil","markAreaTransform","maModel","lt","rb","ltCoord","rbCoord","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","markAreaModel","areaData","areaGroupMap","polygonGroup","__data","dataOpt","offsetCenter","UserAgent_DEPRECATED","isEventSupported","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","normalizeWheel","sX","sY","pX","pY","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","getEventType","getCoordSysDefineBySeries","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_ROW","normalizeDimensionsDefine","displayName","arrayRowsTravelFirst","maxLoop","doGuessOrdinal","detectValue","datasetModel","resetSourceDefaulter","datasetMap","prepareSource","seriesOption","fromDataset","datasetIndex","getDatasetModel","datasetOption","completeResult","dimensionsDetectCount","findPotentialName","potentialNameDimIndex","firstIndex","objectRowsCollectDimensions","colArr","completeBySourceData","encode","coordSysDefine","encodeItemName","encodeSeriesName","nSeriesMap","cSeriesMap","datasetRecord","categoryWayDim","valueWayDim","coordSysDims","firstCategoryDimIndex","dataDim","categoryAxisMap","firstNotOrdinal","nameDimIndex","makeDefaultEncode","guessOrdinal","$at","iterated","emptyObject","freeze","isUndef","isDef","isTrue","_toString","isPlainObject","isRegExp","isValidArrayIndex","toNumber","makeMap","expectsLowerCase","isBuiltInTag","isReservedAttribute","cached","cache","camelizeRE","camelize","capitalize","hyphenateRE","hyphenate","boundFn","_length","no","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysA","keysB","looseIndexOf","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","productionTip","devtools","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","isReserved","def","bailRE","_isServer","hasProto","inBrowser","inWeex","WXEnvironment","platform","weexPlatform","UA","isIE","isIE9","isEdge","isIOS","nativeWatch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","Reflect","ownKeys","Dep","subs","addSub","removeSub","depend","addDep","notify","targetStack","pushTarget","popTarget","VNode","componentOptions","asyncFactory","ns","fnContext","fnOptions","fnScopeId","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","cloned","arrayMethods","inserted","ob","__ob__","observeArray","arrayKeys","shouldObserve","toggleObserving","Observer","vmCount","protoAugment","copyAugment","walk","asRootData","_isVue","defineReactive","customSetter","shallow","childOb","dependArray","del","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","vm","instanceData","defaultData","mergeHook","mergeAssets","key$1","provide","defaultStrat","mergeOptions","normalizeProps","normalizeInject","dirs","normalizeDirectives","extendsFrom","extends","mergeField","strat","resolveAsset","warnMissing","assets","camelizedId","PascalCaseId","validateProp","propOptions","propsData","absent","booleanIndex","getTypeIndex","stringIndex","_props","getPropDefaultValue","prevShouldObserve","isSameType","expectedTypes","handleError","hooks","errorCaptured","globalHandleError","logError","microTimerFunc","macroTimerFunc","flushCallbacks","copies","useMacroTask","_resolve","seenObjects","_traverse","seen","isA","isFrozen","depId","passive","once$$1","createFnInvoker","invoker","arguments$1","updateListeners","oldOn","remove$$1","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","checkProp","altKey","preserve","normalizeChildren","normalizeArrayChildren","nestedIndex","isTextNode","_isVList","ensureCtor","comp","toStringTag","remove$1","$off","updateComponentListeners","oldListeners","resolveSlots","slots","slot","name$1","isWhitespace","resolveScopedSlots","activeInstance","isInInactiveTree","_inactive","activateChildComponent","direct","_directInactive","$children","callHook","_hasHookEvent","activatedChildren","waiting","flushing","flushSchedulerQueue","activatedQueue","updatedQueue","callActivatedHooks","_watcher","_isMounted","callUpdatedHooks","uid$1","Watcher","expOrFn","isRenderWatcher","user","lazy","active","newDeps","depIds","newDepIds","cleanupDeps","queueWatcher","evaluate","teardown","_isBeingDestroyed","sharedPropertyDefinition","sourceKey","initState","propsOptions","_propKeys","initMethods","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","defineComputed","initComputed","createWatcher","initWatch","shouldCache","createComputedGetter","resolveInject","provideKey","_provided","provideDefault","renderList","renderSlot","fallback","bindObject","scopedSlotFn","$scopedSlots","slotNodes","_rendered","resolveFilter","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","renderStatic","isInFor","_staticTrees","markStatic","_renderProxy","markOnce","markStaticNode","bindObjectListeners","ours","installRenderHelpers","_o","_n","_q","_m","_f","_k","_u","_g","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","scopedSlots","cloneAndMarkFunctionalResult","mergeProps","componentVNodeHooks","hydrating","parentElm","refElm","keepAlive","mountedNode","prepatch","_isComponent","_parentVnode","_parentElm","_refElm","inlineTemplate","createComponentInstanceForVnode","oldVnode","parentVnode","renderChildren","hasChildren","_renderChildren","_vnode","$listeners","propKeys","_parentListeners","$forceUpdate","updateChildComponent","deactivateChildComponent","$destroy","hooksToMerge","createComponent","baseCtor","_base","cid","errorComp","resolved","loadingComp","contexts","forceRender","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","extractPropsFromVNodeData","renderContext","vnodes","createFunctionalComponent","nativeOn","abstract","installComponentHooks","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","simpleNormalizeChildren","applyNS","registerDeepBindings","_createElement","uid$3","super","superOptions","modifiedOptions","modified","latest","extended","extendOptions","sealed","sealedOptions","dedupe","resolveModifiedOptions","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","Comp","initProps$1","initComputed$1","use","getComponentName","matches","pattern","pruneCache","keepAliveInstance","cachedNode","pruneCacheEntry","cached$$1","_uid","vnodeComponentOptions","initInternalComponent","$root","initLifecycle","initEvents","parentData","initRender","initInjections","initProvide","initMixin","dataDef","propsDef","$set","$delete","stateMixin","hookRE","cbs","i$1","eventsMixin","prevVnode","prevActiveInstance","__patch__","__vue__","lifecycleMixin","_render","renderMixin","patternTypes","builtInComponents","KeepAlive","exclude","configDef","plugin","installedPlugins","_installedPlugins","initUse","initMixin$1","definition","initAssetRegisters","initGlobalAPI","acceptValue","isEnumeratedAttr","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","isFalsyAttrValue","genClassForVnode","childNode","mergeClassData","dynamicClass","stringifyClass","renderClass","stringified","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","unknownElementCache","isTextInputType","nodeOps","createElementNS","namespace","createComment","newNode","referenceNode","setTextContent","setStyleScope","registerRef","isRemoval","refInFor","emptyNode","sameVnode","typeA","typeB","sameInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives$1","newDirs","dirsWithInsert","dirsWithPostpatch","callHook$1","componentUpdated","callInsert","emptyModifiers","getRawDirName","baseModules","updateAttrs","oldAttrs","setAttr","removeAttributeNS","baseSetAttr","setAttributeNS","__ieph","blocker","updateClass","cls","transitionClass","_transitionClasses","_prevClass","chr","index$1","expressionPos","expressionEndPos","klass","validDivisionCharRE","parseFilters","filters","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","baseWarn","pluckModuleFunction","addProp","addAttr","addRawAttr","attrsMap","attrsList","addDirective","addHandler","important","nativeEvents","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","genComponentModel","valueExpression","assignment","genAssignmentCode","eof","isStringStart","parseString","parseBracket","parseModel","inBracket","stringQuote","target$1","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","add$1","_withTask","onceHandler","remove$2","createOnceHandler","updateDOMListeners","normalizeEvents","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","notInFocus","activeElement","isNotInFocusAndDirty","_vModifiers","isDirtyWithModifiers","parseStyleText","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","emptyStyle","cssVarRE","importantRE","setProp","setProperty","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","checkChild","styleData","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","leave","rm","beforeLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","patch","backend","createElm","insertedVnodeQueue","nested","ownerArray","isReactivated","initComponent","innerNode","activate","reactivateComponent","setScope","createChildren","invokeCreateHooks","pendingInsert","isPatchable","ref$$1","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","childElm","createRmCb","findIdxInOld","oldCh","patchVnode","removeOnly","hydrate","newCh","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","updateChildren","postpatch","invokeInsertHook","initial","isRenderedModule","inVPre","hasChildNodes","childrenMatch","fullInvoke","isInitialPatch","isRealElement","hasAttribute","oldElm","parentElm$1","patchable","i$2","createPatchFunction","vmodel","directive","binding","_vOptions","onCompositionStart","onCompositionEnd","prevOptions","curOptions","hasNoMatchingOption","actuallySetSelected","isMultiple","selectedIndex","locateNode","platformDirectives","transition$$1","originalDisplay","__vOriginalDisplay","unbind","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","Transition","hasParentTransition","_leaving","oldRawChild","oldChild","isSameChild","delayedLeave","moveClass","callPendingCbs","_moveCb","recordPosition","applyTranslation","moved","WebkitTransform","platformComponents","TransitionGroup","prevChildren","rawChildren","transitionData","kept","c$1","hasMove","_reflow","_hasMove","cloneNode","HTMLUnknownElement","HTMLElement","mountComponent","defaultTagRE","regexEscapeRE","buildRegex","delimiters","parseText","tagRE","tokenValue","rawTokens","@binding","klass$1","staticKeys","transformNode","classBinding","genData","style$1","styleBinding","he","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","comment","conditionalComment","IS_REGEX_CAPTURING_BROKEN","isPlainTextElement","reCache","decodingMap","&lt;","&gt;","&quot;","&amp;","&#10;","&#9;","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","warn$2","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","argRE","bindRE","modifierRE","decodeHTMLCached","createASTElement","makeAttrsMap","template","isPreTag","currentParent","preserveWhitespace","inPre","closeElement","lastTag","expectHTML","isUnaryTag$$1","canBeLeftOpenTag$$1","endTagLength","stackedTag","reStackedTag","rest$1","parseEndTag","textEnd","commentEnd","shouldKeepComment","advance","conditionalEnd","doctypeMatch","endTagMatch","curIndex","startTagMatch","parseStartTag","handleStartTag","rest","unarySlash","unary","shouldDecodeNewlinesForHref","lowerCasedTag","lowerCasedTagName","parseHTML","comments","ieNSBug","ieNSPrefix","guardIESVGBug","forbidden","checkRootConstraints","processPre","processRawAttrs","processed","processFor","if","addIfCondition","else","elseif","processIf","processOnce","processElement","findPrevElement","processIfConditions","slotScope","slotTarget","lastNode","checkInFor","processRef","slotName","processSlot","processComponent","isProp","hasBindings","parseModifiers","camel","argMatch","processAttrs","inMatch","alias","iteratorMatch","iterator1","iterator2","parseFor","ifConditions","cloneASTElement","modules$1","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","branch1","branch2","isStaticKey","isPlatformReservedTag","baseOptions","_warn","genSelect","valueBinding","trueValueBinding","falseValueBinding","genCheckboxModel","genRadioModel","needCompositionGuard","genDefaultModel","genStaticKeys","genStaticKeysCached","optimize","markStatic$1","static","isDirectChildOfTemplateFor","l$1","markStaticRoots","staticInFor","staticRoot","fnExpRE","simplePathRE","esc","tab","up","down","keyNames","genGuard","modifierCode","prevent","ctrl","genHandlers","genHandler","isMethodPath","isFunctionExpression","genModifierCode","keyModifier","genFilterCode","genKeyFilter","keyVal","keyCode","keyName","baseDirectives","wrapListeners","wrapData","cloak","CodegenState","dataGenFns","maybeComponent","onceId","generate","ast","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","altGen","altHelper","genFor","ifProcessed","genIf","genChildren","bind$$1","genSlot","genData$2","genComponent","altEmpty","genIfConditions","conditions","genTernaryExp","needRuntime","hasRuntime","gen","genDirectives","genProps","genScopedSlot","inlineRenderFns","genInlineTemplate","genForScopedSlot","checkSkip","altGenElement","altGenNode","el$1","needsNormalization","getNormalizationType","genNode","transformSpecialNewlines","createFunction","baseCompile","div","compileToFunctions","compile","finalOptions","tips","tip","compiled","fnGenErrors","createCompileToFunctionFn","getShouldDecode","idToTemplate","outerHTML","getOuterHTML","_promise","_promise2","valueOf","Utils","focusFirstDescendant","attemptFocus","focusLastDescendant","isFocusable","IgnoreUtilFocusChanges","tabIndex","rel","fireEvent","compatStyle","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","clockWise","pointerColor","dataRange","cof","visualDefault","visualSolution","replacableOptionKeys","dataBound","contentColor","inactiveColor","_dataExtent","targetVisuals","controllerVisuals","getTargetSeriesIndices","optionSeriesIndex","seriesIndices","edgeSymbols","isMinMax","optDim","listDimensions","isCalculationCoord","completeSingle","defa","stateExist","stateAbsent","optExist","optAbsent","symbolExists","symbolSizeExists","visuals","$Object","PictorialBarSeries","symbolPosition","symbolMargin","symbolRepeat","symbolRepeatDirection","symbolClip","symbolBoundingData","symbolPatternSize","legendModels","filterSelf","dataset","oldPaddingTop","paddingTop","oldPaddingBottom","paddingBottom","oldOverflow","createError","validateStatus","request","InterceptorManager","dispatchRequest","Axios","instanceConfig","interceptors","chain","interceptor","fulfilled","rejected","__CANCEL__","dev","Clipboard","VueClipboardConfig","autoSetContainer","VueClipboard","$clipboardConfig","$copyText","fake_el","clipboard","_v_clipboard_success","_v_clipboard_error","_v_clipboard","wx","getSystemInfoSync","os","touchEventsSupported","ie","SVGRect","pointerEventsSupported","detect","copyright","textColor","maskColor","Arc","lineCap","labelRect","animateShape","modelHelper","findPointFromSeries","processOnAxis","newValue","updaters","dontSnap","outputFinder","involveSeries","payloadInfo","snapToValue","payloadBatch","minDist","minDiff","seriesNestestValue","getAxisTooltipData","nestestValue","indicesOfNearest","buildPayloadsBySeries","showPointer","showTooltip","showValueMap","dataByCoordSys","coordSysKey","makeKey","coordSysItem","coordSysId","coordSysIndex","coordSysMainType","dataByAxis","axisId","valueLabelOpt","seriesDataIndices","makeMapperParam","illegalPoint","isIllegalPoint","inputAxesInfo","axesInfo","shouldHide","coordSysMap","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","linkTriggers","tarAxisInfo","tarKey","linkGroup","srcAxisInfo","srcKey","srcValItem","mapper","outputAxesInfo","valItem","updateModelActually","sampleItem","dispatchTooltipActually","lastHighlights","newHighlights","toHighlight","toDownplay","dispatchHighDownActually","_format","_viewRoot","hoverLayerThreshold","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","nodeClick","emptyItemWidth","ellipsis","upperLabel","gapWidth","borderColorSaturation","visualDimension","visualMin","visualMax","colorMappingBy","visibleMin","childrenVisibleMin","completeTreeValue","childValue","thisValue","hasColorDefine","globalColorList","modelColor","level0","setDefault","treeOption","resetViewRoot","formattedValue","setLayoutInfo","mapIdToIndex","idIndexMap","_idIndexMap","_idIndexMapCount","getViewRoot","colorQuery","debugMode","isVNode","curveTool","v1","v3","v2DistSquare","distSquare","mathAbs","intersectCurveCircle","curvePoints","radiusSquare","nextDiff","tmp0","quadraticSubdivide","pts2","__original","originalPoints","isNameSpecified","LegendModel","_updateData","hasSelected","potentialData","availableNames","isPotential","names","_availableNames","itemGap","newPromiseCapability","try","callbackfn","promiseCapability","arraySlice","defaultGetter","defaultSetter","interpolateNumber","interpolateString","interpolateArray","arrDim","len2","fillArr","arr0","arr1","arr0Len","arr1Len","isArraySame","catmullRomInterpolateArray","catmullRomInterpolate","v0","cloneValue","rgba2String","rgba","createTrackClip","oneTrackDone","keyframes","_getter","_setter","useSpline","trackLen","trackMaxTime","firstVal","isValueArray","isValueColor","isValueString","lastValue","getArrayDim","kfPercents","kfValues","prevValue","isAllValueEqual","colorArray","lastFrame","lastFramePercent","_tracks","_clipCount","_doneList","_onframeList","_clipList","isPaused","_doneCallback","doneList","lastClip","clipCount","addClip","oldOnFrame","clipList","removeClip","getClips","HORIZONTAL","LABEL_GAP","SHOW_DATA_SHADOW_SERIES_TYPE","SliderZoomView","_displayables","_handleWidth","_handleHeight","_location","_dataShadowInfo","_resetLocation","_renderBackground","_renderHandle","_renderDataShadow","_positionGroup","coordRect","_findCoordRect","ecSize","positionInfo","layoutRect","targetAxisModel","getFirstTargetAxisModel","otherAxisInverse","_getViewExtent","_onClickPanelClick","_prepareDataShadowInfo","otherDim","otherDataExtent","otherOffset","lastIsEmpty","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","otherCoord","showDataShadow","getAxisProxy","getTargetSeriesModels","thisAxis","thisDim","displaybles","handles","filler","_onDragMove","ondragstart","_showDataInfo","_onDragEnd","onmouseover","onmouseout","subPixelOptimizeRect","createIcon","bRect","handleColor","viewExtent","viewExtend","percentExtent","nonRealtime","handleInterval","handleHeight","_updateDataInfo","labelTexts","axisProxy","calculateDataWindow","valueWindow","getDataValueWindow","_formatLabel","orderedHandleEnds","barTransform","transformDirection","labelPrecision","getPixelPrecision","valueStr","showOrHide","changed","localPoint","eject","parallelVisual","generateCoord","maxOpacity","minOpacity","_number","valueArr","isAscending","getSortedIndices","getLinePoints","offY","textX","textY","labelPosition","isLabelInside","labelLineLen","_dataProvider","summarizeDimensions","ID_PREFIX","dataCtors","float","Float64Array","ordinal","CtorUint32Array","CtorUint16Array","Uint16Array","getIndicesCtor","_rawCount","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","transferProperties","__wrappedMethods","_calculationInfo","dimensionInfos","dimensionNames","invertedIndicesMap","dimensionInfo","dimensionName","coordDimIndex","otherDims","createInvertedIndices","_indices","_count","_storage","_nameList","_idList","_optionModels","_visual","_itemVisuals","hasItemVisual","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_approximateExtent","_dimensionsSummary","_invertedIndicesMap","listProto","getRawValueFromStore","chunkSize","chunkIndex","chunkOffset","chunk","getRawIndexWithoutIndices","getRawIndexWithIndices","_idDimIdx","normalizeDimensions","cloneListForMapAndSample","excludeDimensions","allDimensions","originalStorage","cloneDimStore","getInitialExtent","originalDimStore","originalChunk","newDimStore","getDimensionsOnCoord","dataDimsOnCoord","dimensionsSummary","encodeFirstDimNotExtra","nameList","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_initDataFromProvider","nameDimIdx","dimLen","dimensionInfoMap","idList","rawExtent","nameRepeatCount","chunkCount","lastChunkIndex","_nameDimIdx","itemId","DataCtor","resizeChunkArray","newStore","dimStorage","dimRawExtent","nameDim","nameDimChunk","invertedIndices","getIndices","thisCount","newIndices","getByRawIndex","rawIdx","dimStore","_getFast","dimData","initialExtent","dimExtent","currEnd","setApproximateExtent","setCalculationInfo","getMedian","dimDataArray","sortedDimDataArray","rawIndexOf","indexOfName","rawDataIndex","maxDistance","nearestIndices","contextCompat","dim0","keep","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","tmpRetValue","dataCount","retValue","rawExtentOnDim","sampleValue","targetStorage","frameValues","frameSize","dataIdx","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkOffset","otherList","thisList","itemVisual","setItemDataAndSeriesIndex","cloneShallow","dimensionInfoList","injectFunction","originalMethod","TRANSFERABLE_METHODS","CHANGABLE_METHODS","eachAfter","eachBefore","geoFixFuncs","_nameCoordMap","loadGeoJson","containCoord","regionsMap","regionName","specialArea","_regionsMap","fixFunc","getRegion","getRegionByCoord","getGeoCoord","regionRect","getSpanSign","restrict","extentSpan","originalDistSign","extentMinSpan","realExtent","currDistSign","roundRectHelper","imageHelper","fixShadow","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","normalizeStyle","makeFont","textPadding","applyTextRotation","placeToken","hostEl","lineHeight","lineTop","tokenStyle","isLineHolder","needDrawBackground","drawBackground","getTextXForPadding","textHeight","setCtx","textShadowColor","DEFAULT_FONT","getStroke","textStrokeWidth","getFill","strokeText","fillText","textBackgroundColor","textBorderWidth","textBorderColor","isPlainBg","textBoxShadowColor","textBorderRadius","createOrUpdateImage","onBgImageLoaded","isImageReady","getBoxPosition","blockHeiht","baseX","baseY","textOffset","renderText","__textCotentBlock","contentWidth","outerHeight","boxPos","boxX","boxY","xLeft","xRight","tokenCount","usedWidth","leftIndex","lineXLeft","lineXRight","rightIndex","drawRichText","renderRichText","parsePlainText","truncate","textLines","needDrawBg","textWidth","renderPlainText","needDrawText","ToolboxModel","featureName","Feature","showTitle","coordsOffsetMap","鍗楁捣璇稿矝","骞夸笢","棣欐腐","婢抽棬","澶╂触","coordFix","axisPointerModelHelper","_axisPointer","fixValue","updateAxisPointer","disposeAxisPointer","axisView","getAxisPointerClass","getAxisPointerModel","axisPointerClazz","getAxisLineShape","rExtent","getRadiusIdx","fixAngleOverlap","firstItem","lastItem","angleAxisModel","ticksAngles","labels","_axisLine","Circle","_axisTick","tickLen","tickAngleItem","_axisLabel","rawCategoryData","commonLabelModel","labelTextAlign","labelTextVerticalAlign","textEl","formattedLabel","splitAreas","prevAngle","r1","createDesc","toPrimitive","IE8_DOM_DEFINE","gOPD","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","makeAscendingRun","compare","runHi","reverseRun","binaryInsertionSort","pivot","gallopLeft","hint","lastOffset","maxOffset","gallopRight","TimSort","runStart","runLength","minGallop","stackSize","mergeAt","start1","length1","start2","cursor1","cursor2","dest","count1","count2","exit","_minGallop","mergeLow","customCursor","customDest","mergeHigh","mergeRuns","forceMergeRuns","pushRun","_runStart","_runLength","remaining","minRun","minRunLength","macrotask","WebKitMutationObserver","isNode","domain","standalone","toggle","ParallelAxis","_axesLayout","parallelAxisIndex","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","layoutLength","_layoutAxes","winSize","xy","layoutExtent","axisCount","axisExpandWidth","axisExpandCount","axisExpandable","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","posInfo","nameTruncateMaxWidth","axisNameAvailableWidth","axisLabelShow","positionTable","rotationTable","axisCoordToPoint","dataDimensions","hasActiveSet","hasAxisBrushed","lenj","pointCoord","triggerArea","useJump","stacked","valueStart","getValueStart","baseAxisDim","valueAxisDim","baseDim","baseDataOffset","stackResultDim","stackedOverDimension","stackedData","ARRAY_LENGTH","Breadcrumb","containerGroup","makeItemPoints","packEventData","itemNode","selfType","onSelect","normalStyleModel","layoutParam","totalWidth","_prepare","_renderContent","TEXT_PADDING","lastX","availableSize","getAvailableSize","106","_inputNumber","_inputNumber2","107","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_223987a9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_number_vue__","108","_focus2","_repeatClick2","repeatClick","ElInput","controls","controlsPosition","toPrecision","minDisabled","_decrease","maxDisabled","_increase","numPrecision","getPrecision","stepPrecision","controlsAtRight","inputNumberSize","inputNumberDisabled","currentInputValue","valueString","dotPosition","precisionFactor","increase","decrease","handleInputChange","innerInput","109","is-without-controls","is-controls-right","keydown","244","_tag","_tag2","245","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2c90362e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tag_vue__","246","closable","hit","disableTransitions","handleClose","tagSize","247","is-hit","dataView","magicType","tiled","saveAsImage","scatter","effectScatter","treemap","boxplot","heatmap","sankey","pictorialBar","themeRiver","sunburst","general","withTitle","withoutTitle","withName","withoutName","separator","allData","partialData","treeLayout","autoPositionValues","targetValue","visualCluster","visualObj","defaultColor","visualMapping","Overlay","BMapCoordSys","_bmap","_projection","BMap","MercatorProjection","lngLatToPoint","Point","px","pointToOverlayPixel","overlayPixelToPoint","prepareCustoms","bmapCoordSys","bmapModel","_root","initialize","getPanes","labelPane","createOverlayCtor","__bmap","bmapRoot","addOverlay","centerAndZoom","_buttonGroup","_buttonGroup2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__","lb","rt","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","redefine","$fails","shared","wks","wksDefine","enumKeys","anObject","_create","gOPNExt","$GOPD","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","getOwnPropertySymbols","replacer","$replacer","transformData","isCancel","isAbsoluteURL","combineURLs","throwIfCancellationRequested","cancelToken","transformRequest","common","adapter","transformResponse","PolarAxisModel","polarIndex","polarId","polarAxisDefaultExtendedOption","getAxisType","resolveOptions","initSelection","selectFake","selectTarget","removeFake","fakeHandlerCallback","fakeHandler","fakeElem","border","pageYOffset","copyText","execCommand","handleResult","clearSelection","getSelection","removeAllRanges","_action","nodeList","listenClick","defaultAction","defaultTarget","onClick","delegateTarget","clipboardAction","queryCommandSupported","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","setSelectionRange","createRange","selectNodeContents","addRange","broadcast","_broadcast","barPolar","10","12","_select2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__","_locale2","_selectDropdown2","_scrollbar2","_clickoutside2","_locale3","_scrollIntoView2","_navigationMixin2","sizeMap","medium","small","mini","documentMode","filterable","selectDisabled","inputHovering","emptyText","loadingText","noMatchText","noDataText","showNewOption","hasExistingOption","allowCreate","selectSize","collapseTagSize","ElSelectMenu","ElOption","ElTag","ElScrollbar","Clickoutside","automaticDropdown","remoteMethod","filterMethod","defaultFirstOption","reserveKeyword","collapseTags","popperAppendToBody","createdLabel","createdSelected","inputLength","inputWidth","cachedPlaceHolder","softFocus","selectedLabel","previousQuery","currentPlaceholder","menuVisibleOnFocus","isSilentBlur","resetInputHeight","handleQueryChange","handleIconShow","handleIconHide","resetHoverIndex","inputs","checkDefaultFirstOption","managePlaceholder","scrollToOption","menu","scrollbar","handleMenuEnter","emitChange","isNull","cachedOption","_this8","handleIconClick","deleteSelected","toggleLastOptionHitState","deletePrevTag","resetInputState","_this9","inputChildNodes","tags","sizeInMap","_this10","handleOptionSelect","byClick","_this11","optionIndex","getValueIndex","setSoftFocus","_this12","toggleMenu","selectOption","deleteTag","onInputChange","resetInputWidth","handleResize","hasCreated","getValueKey","_this13","debouncedOnInputChange","debouncedQueryChange","_this14","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__","_vuePopper","minWidth","$parent.inputWidth","is-multiple","hoverOption","optionsAllDisabled","navigateOptions","max-width","disable-transitions","after-leave","keyup","is-focus","auto-complete","validate-event","paste","$$v","before-enter","append-to-body","is-empty","wrap-class","view-class","globalImageCache","imageOnLoad","cachedImgObj","__cachedImgObj","pendingWrap","cbPayload","findExistImage","newImageOrSrc","__zrImageSrc","ScrollableLegendModel","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","mergeAndNormalizeLayoutParams","VISUAL_PRIORITY","resultVisual","mapping","concreteDim","IndicatorAxis","HV_NAMES","boxLayout","maxWidth","currentLineMaxSize","nextX","nextY","nextChild","nextChildRect","newline","vbox","hbox","containerRect","containerWidth","containerHeight","verticalMargin","horizontalMargin","elPos","sizeCalculable","hvIdx","targetOption","hResult","vResult","newParams","newValueCount","mergedValueCount","hasProp","axisPointerViewHelper","proxyRect","tooltipContent","_tooltipContent","_tooltipModel","_ecModel","_lastDataByCoordSys","_alwaysShowContent","_initGlobalListener","_keepShow","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","makeDispatchAction","_ticket","_manuallyAxisShowTip","pointInfo","findHover","manuallyHideTip","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","singleDefaultHTML","singleParamsList","singleTooltipModel","itemCoordSys","seriesDefaultHTML","valueLabel","getValueLabel","idxItem","dataParams","firstLine","positionExpr","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","defaultHtml","asyncTicket","tooltipOpt","subTooltipModel","formatTpl","cbTicket","contentSize","vAlign","domWidth","domHeight","calcTooltipPosition","gapH","gapV","getOuterSize","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisDataByAxis","indexAxis","lastIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","paddingLeft","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","pathContain","pathProxyForDraw","hasFill","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","_fillGradient","getGradient","_strokeGradient","fillStyle","strokeStyle","lineDashOffset","ctxLineDash","setLineDash","setScale","setLineDashOffset","shapeCfg","inBundle","needsUpdateRect","rectWithStroke","_rectWithStroke","lineScale","getLineScale","localPos","dirtyPath","extendFrom","defaultShape","thisShape","preprocessor","highlightPolicy","renderLabelForZeroData","dimsDef","encodeDef","dimCount","generateCoordCount","newSnapshot","percentRange","clazzUtil","renderPlanner","Chart","renderTaskPlan","renderTaskReset","toggleHighlight","chartProto","elSetState","childCount","progressMethodMap","enableClassExtend","forceFirstProgress","getBarItemStyle","simpleLayoutEdge","transformText","x_","makeAction","Definable","ClippathManager","zrId","svgRoot","svgEl","getSvgElement","updateDom","getTextSvgElement","markUsed","isText","clipPathEl","defs","getDefs","_zrId","nextId","svgProxy","getSvgProxy","that","_textDom","Heatmap","_gradientPixels","colorFunc","isInRange","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","globalAlpha","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","gradientPixels","pixelsSingleState","Uint8ClampedArray","markerTypeCalculatorWithExtent","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","markerTypeCalculator","dimItem","dataDimToCoordDim","baseDataDim","hasXAndY","hasXOrY","polarOptArr","polarNotRadar","polarOpt","radarIndex","MapDraw","mapDraw","_mapDraw","SankeySeries","setNodePosition","localPosition","rawDataOpt","layoutIterations","keysFunction","sortKeysFunction","entriesMap","mapObject","sortKeyFunction","keyFunction","valuesByKey","keyValue","zrLog","GradientManager","addWithoutUpdate","svgElement","fillOrStroke","addDom","removeDom","noTrailing","debounceMode","timeoutID","elapsed","EffectSymbol","pointsLayout","effectSymbolDraw","_updateGroupTransform","STYLE_COMMON_PROPS","Style","createLinearGradient","createRadialGradient","styleProto","textTag","textLineHeight","prevStyle","firstDraw","globalCompositeOperation","otherStyle","canvasGradient","addColorStop","layerSeries","getLayerSeries","keyGetter","newLayersGroups","oldLayersGroups","points0","textLayout","layerGroup","hoverItemStyleModel","_layersSeries","arrayJoin","NONE","mathRound","degree","round4","isAroundZero","bindStyle","pathHasFill","pathHasStroke","miterLimit","svgPath","__svgEl","pathStr","nData","dThetaPositive","isCircle","svgTextDrawRectText","svgImage","HTMLImageElement","__imageSrc","attrXLink","svgText","textSvgEl","__textSvgEl","getVerticalAlignForSvg","nTextLines","textAnchor","__text","__textFont","tspanList","__tspanList","tspan","effectType","showEffectOn","rippleEffect","moveAnimation","propsEqual","lastProps","newProps","lastProp","updateLabelShowHide","labelEl","getHandleTransProps","trans","updateMandatoryProps","_group","_lastGraphicKey","_handle","_lastValue","_lastStatus","_payloadInfo","animationThreshold","_axisModel","_axisPointerModel","_moveAnimation","determineAnimation","doUpdateProps","updatePointerEl","updateLabelEl","createPointerEl","createLabelEl","isCategoryAxis","useSnap","seriesDataCount","pointerEl","handleModel","onmousedown","_onHandleDragMove","_onHandleDragEnd","handleSize","_moveHandleToValue","_doDispatchAxisPointer","doClear","buildLabel","xDimIndex","paletteScope","seiresModelMap","__paletteScope","dataAll","filteredIdx","singleDataColor","IRRELEVANT_EXCLUDES","targetCoordSysModel","topTarget","NAN","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","argv","versions","prependListener","prependOnceListener","cwd","chdir","umask","ArrayProto","nameRotate","nameTruncate","showMinLabel","showMaxLabel","deduplication","alignWithLabel","logBase","isLargeRender","tmpIn","tmpOut","Draggable","SILENT","EmptyProxy","handlerNames","Handler","painterRoot","_hovered","_lastTouchMoment","setHandlerProxy","isHover","rectHover","isSilent","lastHovered","lastHoveredTarget","hovered","hoveredTarget","dispatchToElement","innerDom","toElement","relatedTarget","eventArgs","setCursorStyle","eventHandler","eventPacket","eveType","zrByTouch","makeEventPacket","hoverCheckResult","_downEl","_downPoint","_upEl","returnFalse","createDom","newDom","newDomStyle","domBack","ctxBack","createBackBuffer","clearAll","clearColorGradientOrPattern","haveMotionBLur","__canvasGradient","fillRect","MONTH_TEXT","EN","CN","WEEK_TEXT","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","rangeData","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","addPoints","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","poyline","tmpD","_formatterLabel","formatTplSimple","_yearTextPositionControl","aligns","yearLabel","xc","yc","posPoints","yearText","_monthTextPositionControl","isCenter","monthLabel","termPoints","firstDayPoints","monthText","_weekTextPositionControl","isStart","dayLabel","firstDayOfWeek","weekText","listComponentHelper","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","titleText","__title","needPutOnTop","topOffset","newIndex","oldIndex","oldName","isUserFeatureName","unusable","iconStyleModel","iconStyleEmphasisModel","icons","getIcons","titles","iconPaths","iconStr","iconName","createIconPaths","iconStatus","mapLocation","_ie","_firefox","_opera","_webkit","_chrome","_ie_real_version","_osx","_windows","_linux","_android","_win64","_iphone","_ipad","_native","_mobile","_populated","_populate","uas","trident","ver","ieCompatibilityMode","ie64","opera","webkit","safari","chrome","windows","osx","linux","iphone","mobile","nativeApp","android","ipad","isRadianAroundZero","remRadian","matrixUtil","makeAxisEventDataBase","labelOffset","dumbGroup","_transform","_dumbGroup","hasBuilder","builders","pt1","pt2","arrows","symbolWidth","symbolHeight","axisTickLabel","tickEls","tickEl","buildAxisTick","labelEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","prevTick","ignoreEl","isTwoLabelOverlapped","fixMinMaxLabelShow","labelRotate","innerTextLayout","rawLabel","itemLabelModel","targetType","buildAxisLabel","gapSignal","isNameLocationCenter","nameRotation","textRotate","rotationDiff","onLeft","endTextLayout","truncateOpt","truncatedText","truncateText","minChar","formatterParams","__fullText","__truncatedText","axisRotation","firstRect","nextRect","mRotationBack","startClick","seed","createDocumentHandler","bindingFn","documentHandler","splitList","isNumeric","BAR_BORDER_WIDTH_QUERY","LAYOUT_ATTRS","posDesc","pathForLineWidth","getSymbolMeta","symbolMeta","boundingLength","zeroPx","pxSignIdx","symbolBoundingExtent","convertToCoordOnAxis","coordSysExtent","repeatCutLength","pxSign","prepareBarLength","categoryDim","categorySize","symbolScale","prepareSymbolSize","valueLineWidth","prepareLineWidth","unitLength","pathLen","absBoundingLength","hasEndGap","uLenWithMargin","endFix","repeatSpecified","repeatTimes","toIntTimes","mDiff","sizeFix","pathPosition","bundlePosition","barRectShape","prepareLayoutInfo","createPath","createOrUpdateRepeatSymbols","isUpdate","bundle","__pictorialBundle","eachPath","__pictorialAnimationIndex","__pictorialRepeatTimes","updateAttr","makeTarget","updateHoverAnimation","onMouseOver","onMouseOut","createOrUpdateSingleSymbol","mainPath","__pictorialMainPath","createOrUpdateBarRect","rectShape","barRect","__pictorialBarRect","createOrUpdateClip","__pictorialClipPath","getAnimationDelayParams","createBar","__pictorialShapeStr","getShapeStr","__pictorialSymbolMeta","removeBar","pathes","immediateAttrs","animationAttrs","updateCommon","barRectHoverStyle","barPositionOutside","times","roundedTimes","coordSysRect","pictorialShapeStr","updateBar","_locale","LargeSymbolDraw","_updateSymbolDraw","PointerPath","formatLabel","parsePosition","_renderMain","angleRangeSpan","prevEndAngle","axisLineWidth","getColor","_renderTicks","_renderPointer","_renderTitle","_renderDetail","minVal","maxVal","subSplitNumber","splitLineLen","subStep","splitLineStyle","tickLineStyle","tickLine","valueExtent","pointerModel","titleModel","forceRich","detailModel","onLeave","doEnter","records","useHandler","dis","pendings","showTip","hideTip","pendingList","actuallyPayload","showLen","hideLen","dispatchTooltipFinally","initialized","initGlobalListeners","AXIS_TYPES","BaseAxisModelClass","axisTypeDefaulter","extraDefaultOption","__ordinalMeta","createByAxisModel","aFunction","TAG","stat","OTHER_DIMENSIONS","genName","fromZero","sysDims","dataDimNameMap","coordDimNameMap","optDimCount","sysDimItem","sysDimItemDimsDef","getDimCount","dimDefItem","userDimName","dataDims","validDataDims","resultDimIdx","applyDim","availDimIdx","sysDimIndex","sysDimItemOtherDims","sysDimItemDimsDefItem","isExtraCoord","candlestickVisual","candlestickLayout","Radar","radarModel","_indicatorAxes","indicatorModel","indicatorAxis","getIndicatorAxes","indicatorIndex","closestAxis","radian","minRadianDiff","closestAxisIdx","coodToData","indicatorAxes","radarSeries","increaseInterval","exp10","LN10","fixedMin","fixedMax","halfSplitNumber","radarList","categoryNameIdxMap","newlineDisabled","_contentGroup","_backgroundEl","getContentGroup","resetInner","renderInner","mainRect","layoutInner","contentGroup","legendDrawnMap","selectMode","getSeriesByName","legendSymbolType","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","symbolKeepAspect","itemGroup","itemIcon","legendGlobalTooltipModel","hitRect","legendIndex","__legendDataIndex","hadRuntime","regeneratorRuntime","oldRuntime","objectProto","symToStringTag","isOwn","unmasked","registerPainter","getTooltipMarker","colorPaletteMixin","dataFormatMixin","_sourceHelper","dataTaskCount","dataTaskReset","dataBeforeProcessed","autoSeriesName","themeSubType","newSeriesOption","getCurrentTask","getLinkedData","setOutputEnd","outputData","formatSingleValue","tooltipDims","tooltipDimLen","isValueArr","vertially","setEachItem","dimHead","valStr","formatArrayValue","colorEl","animationEnabled","coordDimToDataDim","getTooltipPosition","pipeTask","nameArr","getSeriesAutoName","dataTaskProgress","param","onDataSelfChange","currentTask","classof","getIteratorMethod","enableClassCheck","radarLayout","_vector","v2Create","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","onet","cubicDerivativeAt","cubicRootAt","disc","discSqrt","Y1","Y2","ASqrt","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","d1","d2","quadraticRootAt","divider","quadraticProjectPoint","generateNodeKey","Graph","directed","_directed","_nodesMap","_edgesMap","graphProto","Node","hostGraph","Edge","isDirected","addNode","nodesMap","addEdge","edgesMap","getEdge","breadthFirstTraverse","startNode","edgeType","__visited","currentNode","otherNode","inDegree","outDegree","createGraphDataProxyMixin","hostName","getGraphicEl","_getItemAlign","viewData","_getViewData","endsText","viewPieceList","_onItemClick","_enableHoverLink","indexInModelPieceList","representValue","getRepresentValue","_createItemSymbol","visualState","onHoverLink","modelOption","getPieceList","shapeParam","newKey","getSelectedMapKey","getDimensionTypeByAxis","ThemeRiverSeries","fixData","rawDataLength","dataByName","layData","dataList","layerNum","largestLayer","timeValue","keyIndex","filterData","lenCount","indexArr","timeDim","comparer","index1","index2","nearestIdx","pointNum","theValue","htmlName","htmlValue","singleAxisIndex","_resizeObserverPolyfill","_resizeObserverPolyfill2","isServer","_iterator","_isArray","__resizeListeners__","__ro__","globalDefault","OPTION_INNER_KEY","_optionManager","baseOption","mountOption","_seriesIndices","_seriesIndicesMap","notMergeColorLayer","themeItem","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","newCptTypes","componentOption","getAllClassMainTypes","newCptOptionList","mapResult","existComponent","getComponentsByTypes","ComponentModelClass","createSeriesIndices","isIdInner","cpts","isIdArray","cpt","isNameArray","filterBySubType","q","indexAttr","idAttr","nameAttr","queryCond","queryResult","oneSeries","getSeriesByType","getSeriesCount","rawSeriesIndex","getCurrentSeriesIndices","filterSeries","componentTypes","seiresIndex","isNotTargetSeries","Task","define","_reset","_plan","_onDirty","_dirty","taskProto","planResult","upTask","_upstream","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","taskIns","_dueIndex","_outputDueEnd","_dueEnd","_settedOutputEnd","downstream","_downstream","doProgress","outputDueEnd","winCount","sStep","sCount","modNext","sequentialNext","_callingProgress","downTask","kCSSColorTable","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","clampCssByte","clampCssFloat","parseCssInt","parseCssFloat","cssHueToRgb","m1","m2","lerpNumber","setRgba","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","op","ep","fname","hsla2rgba","hsla","normalizedValue","leftColor","rightColor","dv","fastMapToColor","lerp","fullOutput","mapToColor","arrColor","lift","vMin","vMax","deltaR","deltaG","deltaB","rgba2hsla","colorAccessPath","TimelineModel","SliderTimelineModel","checkpointStyle","showPlayBtn","showPrevBtn","showNextBtn","playIcon","stopIcon","nextIcon","prevIcon","_defineProperty","_defineProperty2","dataSample","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimArr","otherDimArr","dimArr","encodeLabel","encodeTooltip","pathTool","Ring","CompoundPath","RadialGradient","IncrementalDisplayable","EMPTY_OBJ","makePath","centerGraphic","resizePath","subPixelOptimize","positiveOrNegative","doubledPosition","hasFillOrStroke","liftColor","cacheElementStl","__hoverStlDirty","__hoverStl","__normalStl","doSingleEnterHover","__isHover","insideRollbackOpt","insideRollback","rollbackInsideStyle","applyInsideStyle","insideOriginalTextPosition","doSingleLeaveHover","normalStl","doEnterHover","doLeaveHover","setElementHoverStl","hoverStl","onElementMouseOver","__hoverSilentOnTouch","__isEmphasis","onElementMouseOut","enterEmphasis","leaveEmphasis","specifiedTextStyle","isEmphasis","setTextStyleCommon","richResult","globalTextStyle","richItemNames","richItemNameMap","getRichItemNames","richTextStyle","setTokenTextStyle","getAutoColor","originalTextPosition","disableBox","animateOrSetProps","animatableModel","postfix","animationDelay","extendPath","makeImage","imageUrl","originWidth","originHeight","hoverSilentOnTouch","emphasisStyle","normalModel","emphasisModel","normalSpecified","emphasisSpecified","labelDimIndex","showNormal","showEmphasis","normalStyleText","emphasisStyleText","setText","gTextStyleModel","mat","hBase","vBase","g1","g2","elMap1","oldEl","newProp","getAnimatableProps","clipRectByRect","targetRect","dataViewLang","BLOCK_SPLITER","ITEM_SPLITER","getContentFromModel","tables","seriesGroupByCategoryAxis","otherSeries","groupSeries","argLen","assembleOtherSeries","itemSplitRegex","parseContents","blockMetaList","blocks","isTSVFormat","tsv","tsvLines","parseTSVContents","blockMeta","axisKey","hasName","parseListContents","readOnly","optionToContent","contentToOption","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","viewMain","htmlOrDom","buttonContainer","buttonStyle","closeButton","refreshButton","selectionStart","selectionEnd","newSeriesOptList","originalData","tryMergeDataOption","RADIAN_EPSILON","TIME_REG","quantityExponent","subDomain","subRange","returnStr","eIndex","dotIndex","pixelExtent","dataQuantity","sizeQuantity","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","pi2","exponent","reformIntervals","lg","currClose","ARG","tryGet","callee","NodeHighlightPolicy","DESCENDANT","ANCESTOR","SELF","DEFAULT_SECTOR_Z","DEFAULT_TEXT_Z","SunburstPiece","SunburstPieceProto","_seriesModel","getRootId","getNodeColor","stateStyle","activeNode","policy","onHighlight","onDownplay","getLabelAttr","labelMinAngle","labelPadding","rotateType","stateAttr","$$resolve","$$reject","categoryNames","mapStyle","_needCollect","needCollect","_deduplication","dedplication","getOrCreateMap","un","DEFAULT_OUT_OF_BRUSH_COLOR","generateBrushOption","brushMode","transformable","brushLink","throttleDelay","inBrush","outOfBrush","setBrushOption","otherAxisOnZeroOf","rawAxisPosition","axisOffset","posBound","onZeroCoord","USE_SYMBOL","coordSysDimDefs","registeredCoordSys","axisMap","hasNameEncode","dimInfoList","categoryAxisModel","stackCalculationInfo","firstDataNotNull","isNeedCompleteOrdinalData","itemOpt","dPs","Empty","createDict","iframeDocument","iframe","contentWindow","write","Properties","seriesModelMap","getDataPercentWindow","setRawRange","baseGetTag","isObjectLike","symbolTag","canUseWorkers","canUseEventListeners","canUseViewport","isInWorker","stackedDim","stackedByDimInfo","stackedDimInfo","stackResultDimension","byIndex","stackedCoordDimension","mayStack","stackedDimCoordDim","stackedDimType","stackedDimCoordIndex","stackedDimension","stackedByDimension","isStackedByIndex","targetDim","largeLayout","_ariaUtils","_ariaUtils2","tabEvent","Dialog","dialog","focusAfterClosed","focusFirst","dialogNode","getElementById","lastFocus","trapFocus","addListeners","removeListeners","closeDialog","symbolProto","getScale","driftSymbol","_createSymbol","keepAspect","toLastFrame","setDraggable","_updateCommon","normalStyleAccessPath","emphasisStyleAccessPath","normalLabelAccessPath","emphasisLabelAccessPath","z2Origin","__z2Origin","ratio","ZText","ShadowManager","_graphic","checkParentAvailable","insertAfter","prevSibling","SVGPainter","gradientManager","clipPathManager","shadowManager","viewport","_svgRoot","_viewport","_visibleList","markAllUnused","visibleList","listLen","newVisibleList","prevSvgElement","textSvgElement","removeUnused","_getDefs","isForceCreating","viewportStyle","shadowRoot","return","disableVersionBadge","Thumbnail","Controls","MusicList","Lyrics","music","author","showLrc","mutex","listMaxHeight","listFolded","autoplay","muted","preload","volume","shuffle","listmaxheight","narrow","showlrc","internalMusic","isPlaying","wasPlayingBeforeSeeking","isMobile","playStat","loadedTime","playedTime","showList","audioPlayPromise","floatOriginX","floatOriginY","floatOffsetLeft","floatOffsetTop","selfAdaptingTheme","internalMuted","internalVolume","isLoading","internalShuffle","internalRepeat","shuffledList","currentMusic","isMiniMode","shouldShowLrc","currentTheme","isFloatMode","shouldAutoplay","musicList","shouldShowNativeControls","floatStyleObj","currentPicStyleObj","pic","backgroundImage","loadProgress","playProgress","playIndex","shouldRepeat","repeatMode","isAudioMuted","audioVolume","shouldShuffle","onDragBegin","onDragAround","setNextMode","thenPlay","rejectPlayPromise","onProgressDragBegin","onProgressDragging","onProgressDragEnd","toggleMute","setAudioMuted","setAudioVolume","getShuffledList","onSelectSong","onAudioPlay","onAudioPause","onAudioWaiting","onAudioCanplay","onAudioDurationChange","onAudioProgress","onAudioTimeUpdate","onAudioSeeking","onAudioSeeked","onAudioVolumeChange","onAudioEnded","initAudio","setSelfAdaptingTheme","ColorThief","getColorAsync","canPlayType","IconButton","playing","enableDrag","hasMovedSinceMouseDown","dragStartX","dragStartY","onDocumentMouseMove","onDocumentMouseUp","Icon","listHeightStyle","VProgress","Volume","secondToTime","trunc","thumbHovered","onThumbMouseDown","barWrap","onThumbTouchStart","onDocumentTouchMove","onDocumentTouchEnd","volumeIcon","adjustVolume","onBarMouseDown","displayLrc","currentLineIndex","lrcLines","currentLine","transformStyle","applyLrc","fetchLrc","fetch","hideLrc","lrc","playStat.playedTime","./loading.svg","./lrc.svg","./menu.svg","./no-repeat.svg","./pause.svg","./play.svg","./repeat-all-legacy.svg","./repeat-all.svg","./repeat-one-legacy.svg","./repeat-one.svg","./shuffle.svg","./skip.svg","./volume-down.svg","./volume-off.svg","./volume-up.svg","xmlns:xlink","xlink:href","aplayer-list-light","artist","touchstart","dragbegin","dragend","dragging","togglemute","setvolume","inactive","aplayer-lrc-current","aplayer-narrow","aplayer-withlist","aplayer-withlrc","aplayer-float","aplayer-loading","enable-drag","toggleplay","current-music","play-stat","toggleshuffle","togglelist","nextmode","music-list","play-index","selectsong","clipOverflow","buildLabelElOption","labelPos","confineInContainer","bgColor","styleModel","makeSectorShape","ignoreDuplicateOf","restoreLang","Restore","QUERY_REG","_timelineOptions","_mediaList","_mediaDefault","_currentMediaIndices","_optionBackup","_newBaseOption","applyMediaQuery","ecWidth","ecHeight","realMap","aspectratio","applicatable","operator","realAttr","real","rawOption","oldOption","oldOptionBackup","newParsedOption","isNew","mediaDefault","timelineOptions","mediaList","singleMedia","preProcess","newCptOpt","oldCptOpt","isRecreate","optionBackup","timelineModel","getCurrentIndex","indices1","indices2","idStart","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","_simpleLayoutHelper","LargeArr","candleWidth","calculateCandleWidth","openDim","closeDim","lowestDim","highestDim","isSimpleBox","openVal","closeVal","lowestVal","highestVal","getSign","ocLow","ocHigh","ocLowPoint","ocHighPoint","lowestPoint","highestPoint","subPixelOptimizePoint","makeBrushRect","pmin","pmax","actionTypes","originViewRoot","lineContain","quadraticContain","LargeLineShape","segs","quadraticCurveTo","findDataIndex","largeLineProto","lineEl","_setCommon","addDisplayable","isIncremental","brushLang","Brush","_brushType","_brushMode","isBrushed","availableIcons","command","markerModel","markerModelKey","doCreateNode","urn","win","vmlInited","namespaces","zrvml","initVML","styleSheets","createStyleSheet","addRule","treeRoot","rootDepth","initChildren","isAsc","sortOrder","validDataCount","unitRadian","renderRollupNode","rPerLevel","renderNode","rStart","rEnd","siblingAngle","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","nw","se","DEFAULT_BRUSH_OPT","baseUID","_brushOption","_panels","_track","_covers","_creatingCover","_creatingPanel","_enableGlobalPan","mouseHandlers","createCover","cover","coverRenderers","__brushOption","endCreating","creatingCover","coverRenderer","getCoverRenderer","updateCoverShape","updateCoverAfterCreation","getPanelByPoint","panel","panels","pn","getPanelByCover","clearCovers","covers","originalLength","getTrackEnds","createBaseRectCover","doDrift","edgeNames","makeStyle","updateBaseRect","localRange","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection","localDirection","xmin","ymin","xmax","ymax","clipByPanel","formatRectRange","driftRect","toRectRange","fromRectRange","rectRange","localDelta","toLocalDelta","namePart","ind","driftPolygon","localD","localZero","rawE","mainShapeContain","updateCoverByMouse","eventParams","thisBrushOption","shouldShowCover","determineBrushType","getCreatingRange","defaultBrushType","doEnableBrush","panelOpts","eachCover","brushOptionList","tmpIdPrefix","oldCovers","newCovers","getKey","addOrUpdate","newBrushOption","handleDragEnd","currPanel","resetCursor","getLineRenderer","localTrack","CalendarModel","unitAngle","x12","y12","colorpicker","confirm","datepicker","selectDate","selectTime","startDate","endDate","prevYear","nextYear","prevMonth","nextMonth","month1","month2","month3","month4","month5","month6","month7","month8","month9","month10","month11","month12","sun","mon","tue","wed","thu","fri","sat","months","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","noMatch","noData","cascader","pagination","goto","pagesize","pageClassifier","messagebox","upload","deleteTip","preview","continue","table","confirmFilter","resetFilter","clearFilter","sumText","transfer","filterPlaceholder","noCheckedFormat","hasCheckedFormat","arrayIndexOf","arrySlice","_$handlers","triggerWithContext","processedMapType","mapSymbolOffsets","subMapSeries","formatRegExp","warning","isEmptyValue","isNativeStringType","asyncSerialArray","arrLength","asyncMap","objArr","flattenObjArr","firstFields","objArrKeys","objArrLength","asyncParallelArray","complementError","rule","fullField","deepMerge","typeof_default","extends_default","rule_required","messages","rule_whitespace","whitespace","email","hex","getYear","ENUM","es_rule","ruleType","enum","mismatch","enum_ENUM","validator_type","es_validator","boolean","dateObject","newMessages","invalid","messages_messages","Schema","rules","_messages","validate","source_","oc","getValidationMethod","errorFields","doIt","defaultField","addFullfield","schema","fieldsSchema","fieldSchema","errs","complete","messageIndex","getSeriesStackId","getAxisKey","lastStackCoords","barSeries","columnsMap","columnsOnAxis","remainedWidth","autoWidthCount","categoryGap","stacks","stackId","barGapPercent","autoWidth","lastColumn","widthSum","calRadialBar","columnLayoutInfo","columnOffset","columnWidth","valueAxisStart","baseValue","baseCoord","radiusSpan","angleSpan","_axisTickLabelBuilder","createAxisTicks","createAxisLabels","calculateCategoryInterval","NORMALIZED_EXTENT","fixExtentWithBands","nTick","getTickModel","tickCategoryInterval","ticksLen","ticksItem","fixOnBandTicksCoords","getRotate","barItemStyle","_updateDrawMode","coordinateSystemType","_renderLarge","_renderNormal","_incrementalRenderLarge","isHorizontalOrRadial","elementCreator","removeRect","removeSector","createLarge","cartesian2d","animateProperty","animateTarget","isRadial","fixedLineWidth","rawLayout","getLineWidth","signX","signY","isPolar","LargePath","startPoint","__startPoint","valueIdx","__valueIdx","setLargeStyle","_curve","someVectorAt","isTangent","selectableMixin","GeoModel","_optionModelMap","optionModelMap","regionOpt","getRegionModel","updateRipplePath","rippleGroup","effectCfg","ripplePath","effectSymbolProto","stopEffectAnimation","startEffectAnimation","effectOffset","rippleScale","animateStyle","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","normalizeSymbolSize","ArrayCtor","out0","out3","out4","out5","aa","ac","atx","ab","ad","aty","st","ct","vx","vy","axisExpandCenter","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","_initDimensions","parallelAxis","autoPlay","rewind","playInterval","_names","_initData","setCurrentIndex","isIndexMax","setPlayState","getPlayState","dataArr","idxArr","newItem","_doAdd","addBefore","includeChildren","tmpMat","childRect","ROOT_TO_NODE_ACTION","HIGHLIGHT_ACTION","unhighlight","borderColorQuery","globalColors","defaulColor","legendSymbol","gradientColor","Cartesian","axisX","axisY","reserved","xScale","yScale","xAxisExtent","yAxisExtent","originalLarge","originalProgressive","_traversalHelper","_layoutHelper","coorX","coorY","finalCoor","commonLayout","bitmap","updateViewOnPan","controllerHost","updateViewOnZoom","newZoom","zoomScale","textWidthCache","textWidthCacheCounter","TEXT_CACHE_MAX","STYLE_REG","measureText","prepareTruncateOptions","truncateSingleLine","maxIterations","cnCharWidth","ascCharWidth","ellipsisWidth","subLength","estimateLength","getLineHeight","truncOuterHeight","truncOuterWidth","matchedIndex","pushTokens","contentHeight","stlPadding","truncateWidth","truncateHeight","tokenHeight","tokenWidth","tokenWidthNotSpecified","percentWidth","bgImg","paddingW","remianTruncWidth","isEmptyStr","strs","tokensLen","getRichTextRect","getPlainTextRect","halfHeight","linkedNodesFinder","createLinkedNodesFinder","eachAxisDim","effectedModels","v2Distance","interpolate","isLoop","w2","w3","STACK_PREFIX","isOnCartesian","isInLargeMode","seriesInfoList","doCalBarWidthAndOffset","seriesInfo","valueAxisHorizontal","valueDimIdx","largePoints","valuePair","getValueAxisStart","getLayoutOnAxis","widthAndOffsets","lastStackCoordsOrigin","isValueAxisH","enhanceError","updateSymbols","oldPoints","newPoints","symbolGroup","__dimIdx","getInitialPoints","hoverAreaStyleModel","polygonIgnore","hoverPolygonIgnore","itemHoverStyle","axisTrigger","collect","playState","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","xsrfCookieName","xsrfHeaderName","maxContentLength","Accept","_iterator2","_symbol2","cubic","quadratic","windingLine","windingCubic","nRoots","y0_","y1_","nExtrema","windingQuadratic","y_","windingArc","containPath","isStroke","themeRiverLayout","baseY0","layerPoints","singleLayer","sums","temp","computeBaseline","baseLine","layerIndex","PiecewiseModel","minOpen","maxOpen","itemSymbol","_pieceList","_mode","_determineMode","resetMethods","_resetSelected","visualTypesInPieces","exists","hasSel","pieceInterval","splitStep","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","coordinateSystemCreators","_coordinateSystems","coordinateSystems","creater","coordinateSystemCreator","MapSeries","needsDrawMap","_fillOption","seriesNames","otherIndex","showLegendSymbol","dataRangeHoverLink","curClass","classes","clsName","ieVersion","SPECIAL_CHARS_REGEXP","MOZ_HACK_REGEXP","letter","cellWidth","cellHeight","_image","LargeSymbolPath","symbolProxy","symbolProxyShape","largeSymbolProto","endIndex","extrudeShadow","treemapVisual","treemapLayout","Polar","updatePolarScale","setAxis","polarCreator","polarList","polarModel","radiusAxisModel","resizePolar","RadiusAxis","radiusToData","checkPropInLink","linkPropValue","axisPropValue","isHandleTrigger","seriesInvolved","linksOption","linkGroups","axesInfoInCoordSys","baseTooltipModel","saveTooltipAxisInfo","triggerAxis","cross","tooltipAxes","fromTooltip","axisPointerShow","tooltipAxisPointerModel","volatileOption","labelOption","tooltipAxisPointerLabelShow","makeAxisPointerModel","groupIndex","linkOption","getLinkGroupIndex","collectAxesInfo","seriesTooltipTrigger","seriesTooltipShow","collectSeriesInfo","axisAngle","layoutAxis","prevRadius","ITEM_STYLE_NORMAL","seriesItemStyleModel","travelTree","designatedVisual","levelItemStyles","viewRootAncestors","nodeModel","nodeLayout","isInView","nodeItemStyleModel","levelItemStyle","visualName","buildVisuals","thisNodeColor","calculateColor","calculateBorderColor","rangeVisual","getRangeVisual","__drColorMappingBy","buildVisualMapping","childVisual","childVisuals","mappingType","getValueVisualDefine","mathAtan2","DATAS","MAIN_DATA","transferInjection","datas","linkAll","linkSingle","changeInjection","cloneShallowInjection","datasAttr","isArrayIter","getIterFn","BREAK","RETURN","iterable","iterFn","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","isGeneratorFunction","genFun","mark","awrap","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","tryLocsList","Context","skipTempReset","sent","_sent","delegate","tryEntries","resetTryEntry","rootRecord","completion","rval","dispatchException","exception","loc","caught","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","abrupt","finallyEntry","afterLoc","finish","thrown","delegateYield","resultName","nextLoc","protoGenerator","generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","previousPromise","callInvokeWithMethodAndArg","unwrapped","pushTryEntry","locs","iteratorMethod","symbols","mapModel","_renderSymbols","fullData","mainSeries","fullIndex","polygonGroups","__mapOriginalZ2","dimAxisMapper","_axes","_dimList","_dataCoordConvert","dimList","saveAsImageLang","SaveAsImage","$a","download","MouseEvent","msSaveOrOpenBlob","bstr","atob","u8arr","bubbles","cancelable","SKIP_PROPS","CandlestickView","_incrementalRenderNormal","setBoxCommon","NormalBoxPath","__simpleBox","LargeBoxPath","__sign","elP","elN","restAngle","valueSumLargerThanMinAngle","currentAngle","fetchers","hasShadow","_shadowDom","_shadowDomId","domChild","stdDeviation","tagNames","markLabel","domName","_tagNames","_markLabel","_domName","getDoms","doms","Triangle","Diamond","Pin","asin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","diamond","pin","triangle","symbolShapeMakers","symbolBuildProxies","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","symbolShape","__isEmptyBrush","defaultSymbolType","hasCallback","rawValue","itemSymbolType","itemSymbolSize","itemSymbolKeepAspect","getLineSelectors","inLineRange","layoutRange","lineIntersectPolygon","lx","ly","l2x","l2y","lineIntersect","a1x","a1y","a2x","a2y","b1x","b1y","b2x","b2y","determinant","namenda","miu","v4","TO_STRING","settle","buildURL","parseHeaders","isURLSameOrigin","requestData","requestHeaders","loadEvent","xDomain","XDomainRequest","ontimeout","auth","username","password","Authorization","paramsSerializer","responseHeaders","getAllResponseHeaders","cookies","xsrfValue","withCredentials","read","onDownloadProgress","onUploadProgress","Attributes","makeCategoryLabelsActually","numericLabelInterval","labelsCache","getListCache","optionLabelInterval","getOptionCategoryInterval","listCacheGet","listCacheSet","makeLabelsByCustomizedCategoryInterval","makeLabelsByNumericCategoryInterval","autoInterval","makeAutoCategoryInterval","labelCategoryInterval","categoryInterval","onlyTick","ordinalScale","ordinalExtent","startTick","showMinMax","addItem","tVal","makeCategoryLabels","makeRealNumberLabels","ticksCache","optionTickInterval","labelsResult","makeCategoryTicks","axisRotate","fetchAutoCategoryIntervalCalculationParams","unitSpan","unitW","unitH","maxW","maxH","lastAutoInterval","lastTickCount","labelDims","selector","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","PRIORITY_BRUSH","doDispatch","brushSelected","checkInRange","selectorsByBrushType","rangeInfoList","getSelectorsByBrushType","sels","selectorsByElementType","bSelector","sel","setInputRanges","brushIndex","thisBrushSelected","brushName","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","selFn","elType","bindSelector","boundingRectBuilders","linkOthers","brushed","stepAParallel","brushModelNotControll","controlSeries","stepAOthers","seriesBrushSelected","getBoundingRectFromMinMax","Animation","stage","_clips","_running","_time","_pauseStart","clips","deferredEvents","deferredClips","_startLoop","minValue","nodeValue","mapValueToColor","customColor","lenSquare","lengthSquare","distanceSquare","dot","negate","treeDepth","expandTreeDepth","initialTreeDepth","collapsed","ITEM_STYLE_NORMAL_PATH","ITEM_STYLE_EMPHASIS_PATH","LABEL_NORMAL","LABEL_EMPHASIS","GROUP_DIFF_PREFIX","prepareStyleTransition","targetStyle","oldElStyle","makeRenderItem","customSeries","renderItem","prepareResult","currDataIndexInside","currItemModel","currLabelNormalModel","currLabelEmphasisModel","currVisualColor","userAPI","updateCache","styleEmphasis","barLayout","currentSeriesIndices","userParams","dataInsideLength","wrapEncodeDef","currDirty","doCreateOrUpdate","elOptionType","__customGraphicType","__customPathData","__customImagePath","__customText","targetProps","targetOpacity","updateEl","oldChildren","newChildren","diffChildrenByName","processAddUpdate","processRemove","childOption","setIncrementalAndHoverLayer","_lastFrame","_lastFramePercent","effectPolylineProto","accLenArr","_offsets","mapSymbolLayout","mapDataStatistic","componentProto","expires","secure","cookie","toGMTString","_checkboxGroup","_checkboxGroup2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2f79c88a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_group_vue__","checkboxGroupSize","HeatmapLayer","visualMapOfThisSeries","targetSeries","_incrementalDisplayable","_renderOnCartesianAndCalendar","isGeoCoordSys","_renderOnGeo","inRangeVisuals","outOfRangeVisuals","hmLayer","_hmLayer","dataSpan","getIsInContinuousRange","getIsInPiecewiseRange","roamHelper","adjustEdge","nodeOpacityPath","lineOpacityPath","getItemOpacity","opacityPath","fadeOutItem","opacityRatio","fadeInItem","_controller","_controllerHost","_firstRender","_nodeScaleRatio","groupNewProp","_getNodeGlobalScale","_updateNodeAndLinkScale","_updateController","_layoutTimeout","_startForceLayoutIteration","_layouting","__focusNodeAdjacency","__unfocusNodeAdjacency","edgeDataIndex","circularRotateLabel","adjacentEdge","unfocusNodeAdjacency","nodeScale","groupScale","groupZoom","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","targetInfoList","_targetInfoList","foundCpts","targetInfoBuilders","builder","formatMinMax","includeMainTypes","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","sizeOrigin","scales","rangeOffset","getDefaultBrushType","getPanelRect","areaPanelId","targetInfoMatchers","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","cartesians","panelRectBuilder","geoModels","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","actionInfos","RadarSeries","Uint32Arr","Float64Arr","compatEc2","fromName","toName","LinesSeries","_processFlatCoordsArray","_flatCoords","flatCoords","_flatCoordsOffset","flatCoordsOffset","_getCoordsFromItemModel","coordsOffsetAndLenStorage","coordsStorage","coordsCursor","offsetCursor","speciesConstructor","promiseResolve","finally","onFinally","hasParallelSeries","createParallelIfNeeded","axisOption","parallelOption","mergeAxisOptionFromParallel","isAroundEqual","_baseAxisDim","addOrdinal","baseAxisDimIndex","baseAxisType","otherAxisType","newOptionData","gridId","extraOption","inplace","rectContain","dataBackground","fillerColor","handleIcon","handleStyle","showDetail","atBegin","calculateStack","stackInfoList","targetStackInfo","idxInStack","resultVal","resultNaN","targetData","byValue","stackedDataRawIndex","stackedOver","stackInfo","stackInfoMap","Displayble","IncrementalDisplayble","_temporaryDisplayables","_cursor","notPersistent","addDisplayables","displayables","straightLineProto","bezierCurveProto","isLine","PATH_COLOR","pointsConverter","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","microtask","newPromiseCapabilityModule","v8","$Promise","FakePromise","PromiseRejectionEvent","isThenable","isReject","ok","reaction","exited","fail","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","onunhandledrejection","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","onFulfilled","onRejected","capability","$index","alreadyCalled","race","TimelineView","_timer","_currentPointer","_labelGroup","mainGroup","_createGroup","labelGroup","_createAxis","_renderAxisLabel","_doPlayStop","_clearTimer","labelPosOpt","playPosition","prevBtnPosition","nextBtnPosition","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","labelAlign","labelBaseline","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","setOrigin","boundIdx","newGroup","_renderAxisLine","_renderAxisTick","hoverStyleModel","symbolOpt","_changeTimeline","giveSymbol","normalLabelModel","_renderControl","makeBtn","iconPath","willRotate","btn","objPath","makeIcon","_handlePlayClick","_renderCurrentPointer","me","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","_pointerChangeTimeline","mousePos","_toAxisCoord","targetDataIndex","_findNearestTick","axisCoord","noAnimation","subtext","subtarget","subtextStyle","subtextStyleModel","subText","subTextEl","sublink","groupRect","layoutOption","alignStyle","retrieveValue","PATH_BORDER_WIDTH","PATH_GAP_WIDTH","PATH_UPPER_LABEL_SHOW","PATH_UPPER_LABEL_HEIGHT","rootRect","viewAbovePath","rootSize","currNode","defaultSize","viewArea","currNodeValue","upperHeight","getUpperLabelHeight","estimateRootSize","viewRootLayout","squarify","hideChildren","thisLayout","halfGapWidth","upperLabelHeight","layoutOffset","layoutOffsetUpper","totalArea","orderBy","overLeafDepth","statistic","orderedChildren","deletePoint","filterByThreshold","isLeafRoot","rowFixedLength","best","score","worst","defaultPosition","targetCenter","calculateRootPosition","prunning","clipRect","nodeInViewAbovePath","isAboveViewRoot","childClipRect","areaMax","areaMin","squareArea","idx0WhenH","idx1WhenH","rowOtherLength","rowLen","wh1","remain","modWH","wh0","HandlerProxy","useVML","painterCtors","ZRender","rendererType","vml","handerProxy","_needsRefresh","oldDelFromStorage","oldAddToStorage","zLevel","triggerRendered","_needsRefreshHover","refreshHoverImmediately","clearAnimation","_radiusAxis","_angleAxis","maxAngle","updateMarkerLayout","markPointModel","mpModel","symbolDrawMap","polyHelper","DEFAULT_TOOLBOX_BTNS","brushComponents","brushComponentSpecifiedBtns","brushOpt","tbs","toolboxFeature","toolboxBrush","brushTypes","flag","LegendView","ScrollableLegendView","_currentIndex","_containerGroup","_controllerGroup","_showController","__rectSize","controllerGroup","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","orientIdx","hw","yx","controllerRect","showController","contentPos","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","legendId","canJump","pageText","pageCount","pagePrevDataIndex","pageNextDataIndex","targetItemGroup","currDataIndex","containerRectSize","itemRect","itemLoc","winRect","getItemRect","startRect","beforeLink","linkNameList","validEdges","linkCount","coordSysCtor","GestureMgr","pointPair","recognize","_doTrack","_recognize","touches","trackItem","recognizers","gestureInfo","pinchEnd","pinchPre","pinchCenter","PolarAxisPointer","coordValue","capitalFirst","getLabelPosition","adjustSingleSide","shiftDown","shiftUp","changeX","isDownList","lastDeltaX","lastY","upList","downList","labelLayoutList","hasLabelRotate","labelLineLen2","leftList","avoidOverlap","shadowTemp","orignalBrush","_dragStart","_drag","_dragEnd","draggingTarget","_draggingTarget","dropTarget","lastDropTarget","_dropTarget","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","colorP","colorN","borderColorP","getBorderColor","borderColorN","animationUtil","PATH_LABEL_NOAMAL","PATH_LABEL_EMPHASIS","PATH_UPPERLABEL_NORMAL","PATH_UPPERLABEL_EMPHASIS","Z_BASE","Z_BG","Z_CONTENT","getItemStyleEmphasis","getItemStyleNormal","nodeGroup","_breadcrumb","thisStorage","reRoot","rootNodeGroup","_giveContainerGroup","renderResult","_doRender","renderFinally","_doAnimation","_resetController","_renderBreadcrumb","thisTree","oldTree","lastsForAnimation","oldStorage","willInvisibleEls","doRenderNode","dualTravel","thisViewChildren","oldViewChildren","parentGroup","sameTree","processNode","thisNode","oldNode","willDeleteEls","storageName","delEls","__tmWillDelete","clearStorage","animationWrap","createWrap","__tmNodeWidth","__tmNodeHeight","targetX","targetY","fadein","_clearController","findTarget","_rootToNode","_zoomToNode","linkTarget","bgEl","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","isParent","itemStyleNormalModel","itemStyleEmphasisModel","giveGraphic","bg","useUpperLabel","visualBorderColor","emphasisBorderColor","upperLabelWidth","prepareText","renderContent","__tmWillVisible","upperLabelRect","iconChar","emphasisLabelModel","lasts","prepareAnimationWhenHasOld","zInLevel","zb","calculateZ","__tmDepth","__tmStorageName","lastCfg","parentOldX","parentOldY","parentOldBg","prepareAnimationWhenNoOld","nestRE","mergeFn","objs","bb","nestedKey","extractTimeFormat","extractDateFormat","changeYearMonthAndClampDate","timeWithinRange","limitTimeRange","clearMilliseconds","clearTime","modifyWithTimeString","modifyTime","modifyDate","getRangeHours","getWeekNumber","getStartDateOfMonth","nextDate","prevDate","getFirstDayOfMonth","getDayCountOfYear","getDayCountOfMonth","formatDate","isDateObject","toDate","_date","_date2","getI18nSettings","amount","setHours","week1","disabledHours","normalizeDate","ndate","nranges","nrange","minDate","maxDate","selectableRange","monthDate","NODE_KEY","markNodeData","getNodeKey","findNearestComponent","tableLayout","onColumnsChange","onScrollableChange","__updated__","cols","getFlattenColumns","realWidth","scrollY","gutterWidth","ths","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_72d0c3bc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_picker_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3ea87726_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_vue__","moveFn","drag","upFn","indexPath","parentMenu","paddingStyle","rootMenu","collapse","getRowIdentity","getColumnByCell","getColumnById","getCell","cell","sortKey","sortMethod","sortBy","by","$value","columnId","rowKey","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3673a788_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_spinner_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_table_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_table_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_ecbc1fc4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_table_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_loading_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_loading_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_21ea4c2d_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_loading_vue__","hsv2hsl","hue","bound01","processPercent","isPercentage","INT_HEX_MAP","11","13","15","HEX_INT_MAP","parseHexChannel","rgb2hsv","hsv2rgb","mod","Color","_hue","_saturation","_alpha","enableAlpha","doOnChange","toRgb","fromString","fromHSV","_hsl2hsv","light","smin","lmin","hsl2hsv","_parts","_parts2","_rgb2hsv","_rgb2hsv2","hsl","_hsv2rgb","_hsl","_hsv2rgb2","_r","hexOne","high","low","_index2","_index4","_index6","_index8","_index10","_index12","_index14","_index16","_index18","_index20","_index22","_index24","_index26","_index28","_index30","_index32","_index34","_index36","_index38","_index40","_index42","_index44","_index46","_index48","_index50","_index52","_index54","_index56","_index58","_index60","_index62","_index64","_index66","_index68","_index70","_index72","_index74","_index76","_index78","_index80","_index82","_index84","_index86","_index88","_index90","_index92","_index94","_index96","_index98","_index100","_index102","_index104","_index106","_index108","_index110","_index112","_index114","_index116","_index118","_index120","_index122","_index124","_index126","_index128","_index130","_index132","_index134","_index136","_index138","_collapseTransition2","locale","$loading","service","$msgbox","$alert","alert","$confirm","$prompt","prompt","$notify","$message","CollapseTransition","Pagination","Autocomplete","Dropdown","DropdownMenu","DropdownItem","Menu","Submenu","MenuItem","MenuItemGroup","Input","InputNumber","Radio","RadioGroup","RadioButton","Checkbox","CheckboxButton","CheckboxGroup","Switch","Select","Option","OptionGroup","Button","ButtonGroup","Table","TableColumn","DatePicker","TimeSelect","TimePicker","Popover","Tooltip","MessageBox","BreadcrumbItem","Form","FormItem","Tabs","TabPane","Tag","Alert","Notification","Slider","Col","Upload","Progress","Spinner","Message","Badge","Card","Rate","Steps","Step","Carousel","Scrollbar","CarouselItem","Collapse","CollapseItem","Cascader","ColorPicker","Transfer","Container","Header","Aside","Main","Footer","_pagination","_pagination2","_pager2","pageSize","pagerCount","currentPage","pageSizes","prevText","nextText","internalCurrentPage","internalPageSize","lastEmittedPage","userChangePageSize","is-background","el-pagination--small","TEMPLATE_MAP","jumper","pager","internalPageCount","handleCurrentChange","sizes","rightWrapper","haveRightWrapper","compo","MySlot","Prev","Next","Sizes","ElSelect","Jumper","$parent.internalPageSize","resetValueIfNeed","reassignMaxValue","handleKeyup","getValidCurrentPage","Total","Pager","resetValue","oldPage","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_046e52c4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_pager_vue__","showPrevMore","quickprevIconClass","showNextMore","quicknextIconClass","onPagerClick","newPage","pagerCountOffset","onMouseenter","pagers","halfPagerCount","_component","_component2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_61ef592c_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_component_vue__","_popup2","showClose","fullscreen","customClass","beforeClose","closed","handleWrapperClick","is-fullscreen","el-dialog--center","_autocomplete","_autocomplete2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_172031ae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_autocomplete_vue__","_autocompleteSuggestions2","ElAutocompleteSuggestions","maxlength","minlength","fetchSuggestions","triggerOnFocus","customItem","selectWhenUnmatched","activated","suggestions","highlightedIndex","suggestionDisabled","suggestionVisible","custom-item","queryString","debouncedGetData","handleKeyEnter","suggestion","highlightItem","$input","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_suggestions_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_suggestions_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_31aefd4b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_autocomplete_suggestions_vue__","dropdownWidth","referenceList","aria-haspopup","aria-expanded","aria-owns","visible-arrow","popper-options","highlighted","aria-selected","_dropdown","_dropdown2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default","ElButton","ElButtonGroup","dropdown","splitButton","hideOnClick","showTimeout","hideTimeout","triggerElm","menuItems","menuItemsArray","dropdownElm","listId","dropdownSize","handleMenuItemClick","initAria","selfDefine","menu-align","removeTabindex","resetTabindex","handleTriggerKeyDown","handleItemKeyDown","ele","_dropdownMenu","_dropdownMenu2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b7ce9da_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_menu_vue__","dropdown.placement","_dropdownItem","_dropdownItem2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__","divided","el-dropdown-menu__item--divided","aria-disabled","_menu","_menu2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue___default","_ariaMenubar2","el-menu--horizontal","el-menu--collapse","el-menu","collapseTransition","el-menu-collapse-transition","defaultActive","defaultOpeneds","uniqueOpened","router","menuTrigger","activeTextColor","activeIndex","openedMenus","submenus","hoverBackground","mixColor","isMenuPopup","updateActiveIndex","initOpenedMenu","getColorChannels","_getColorChannels","removeItem","addSubmenu","removeSubmenu","openMenu","closeMenu","handleSubmenuClick","submenu","handleItemClick","oldActiveIndex","routeToItem","activeItem","route","$router","_ariaMenuitem","_ariaMenuitem2","domNode","menuChildren","_ariaSubmenu2","menuChild","prevDef","gotoSubIndex","subMenuItems","SubMenu","subIndex","_submenu","_submenu2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_submenu_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_submenu_vue___default","_menuMixin2","poperMixins","ElCollapseTransition","mouseInChild","isFirstLevel","menuTransitionName","titleStyle","borderBottomColor","handleCollapseToggle","initPopper","handleMouseenter","handleMouseleave","handleTitleMouseenter","handleTitleMouseleave","updatePlacement","popupMenu","inlineMenu","submenuTitleIcon","el-submenu","is-active","is-opened","_menuItem","_menuItem2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3604d8f2_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_menu_item_vue__","_tooltip2","ElTooltip","isNested","onMouseEnter","onMouseLeave","box-sizing","_menuItemGroup","_menuItemGroup2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_group_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_group_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e0b9348e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_menu_item_group_vue__","levelPadding","_radio","_radio2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_70267beb_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_vue__","_radioGroup","radioSize","temRadioSize","radioGroupSize","isDisabled","is-bordered","is-checked","aria-checked","checked","_radioGroup2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_group_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_group_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6c6d731d_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_group_vue__","LEFT","UP","RIGHT","DOWN","radios","radio","handleKeydown","roleRadios","_radioButton","_radioButton2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_button_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_button_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2661fff8_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_button_vue__","activeStyle","boxShadow","_checkbox","_checkbox2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_45167309_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__","selfModel","isLimitExceeded","isChecked","trueLabel","checkboxSize","temCheckboxSize","indeterminate","falseLabel","addToStore","is-indeterminate","true-value","false-value","$$a","$$el","$$c","$$i","_checkboxButton","_checkboxButton2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_button_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_button_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_28a329b4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_button_vue__","box-shadow","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_80721fd0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_component_vue__","activeIconClass","inactiveIconClass","activeText","inactiveText","activeColor","activeValue","inactiveValue","coreWidth","switchDisabled","newColor","switchValue","on-color","off-color","on-text","off-text","on-value","off-value","on-icon-class","off-icon-class","_optionGroup","_optionGroup2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_group_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_group_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_101c18d8_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_group_vue__","_table","_table2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f98fcd1_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_table_vue__","_mousewheel2","_tableStore2","_tableLayout2","_tableBody2","_tableHeader2","_tableFooter2","tableIdSeed","Mousewheel","fit","stripe","showHeader","showSummary","summaryMethod","rowClassName","rowStyle","cellClassName","cellStyle","headerRowClassName","headerRowStyle","headerCellClassName","headerCellStyle","highlightCurrentRow","currentRowKey","expandRowKeys","defaultExpandAll","defaultSort","tooltipEffect","spanMethod","selectOnIndeterminate","TableHeader","TableFooter","TableBody","ElCheckbox","expand","setCurrentRow","commit","toggleRowSelection","updateAllSelected","toggleRowExpansion","expanded","clearSort","handleMouseLeave","hoverState","updateScrollY","updateColumnsWidth","handleFixedMousewheel","bodyWrapper","currentScrollTop","handleHeaderFooterMousewheel","bindEvents","_$refs","headerWrapper","footerWrapper","fixedBodyWrapper","rightFixedBodyWrapper","maxScrollLeftPosition","scrollPosition","resizeListener","$ready","shouldUpdateLayout","_resizeState","resizeState","oldWidth","oldHeight","shouldUpdateHeight","doLayout","updateElsHeight","toggleAllSelection","tableId","debouncedUpdateLayout","tableSize","fixedColumns","rightFixedColumns","selection","states","tableData","bodyWidth","bodyHeight","max-height","headerHeight","footerHeight","fixedBodyHeight","scrollX","fixedHeight","tableHeight","viewportHeight","setHeight","setMaxHeight","setCurrentRowKey","setExpandRowKeys","updateColumns","filteredValue","isHidden","renderExpanded","resizeProxyVisible","_normalizeWheel","_normalizeWheel2","isFirefox","sortData","sortingColumn","sortable","sortProp","getKeysMap","arrayMap","TableStore","initialState","_columns","originColumns","leafColumns","fixedLeafColumns","rightFixedLeafColumns","leafColumnsLength","fixedLeafColumnsLength","rightFixedLeafColumnsLength","isComplex","filteredData","isAllSelected","reserveSelection","selectable","currentRow","hoverRow","expandRows","mutations","dataInstanceChanged","updateCurrentRow","rowId","rowInfo","cleanSelection","ids","changeSortCondition","filterChange","columnKey","insertColumn","scheduleLayout","removeColumn","setHoverRow","oldCurrentRow","rowSelectedChanged","selectionChanged","doFlattenColumns","notFixedColumns","oldSelection","rowKeys","keysMap","_index","isRowExpanded","_states","_states$expandRows","deleted","deletedItem","_table$$refs","tableHeader","fixedTableHeader","rightFixedTableHeader","filterPanels","selectedCount","isRowSelectable","TableLayout","fixedWidth","rightFixedWidth","appendHeight","appendWrapper","notifyObservers","flattenColumns","isColumnGroup","allColumnsWidth","flexWidthPerPixel","noneFirstWidth","bodyMinWidth","flexColumns","scrollYWidth","totalFlexWidth","flexWidth","_layoutObserver2","columnsHidden","isColumnHidden","cellspacing","cellpadding","getRowStyle","getKeyOfRow","dblclick","handleDoubleClick","contextmenu","handleContextMenu","handleMouseEnter","getRowClass","cellIndex","_getSpan","getSpan","rowspan","getCellStyle","getCellClass","handleCellMouseEnter","handleCellMouseLeave","renderCell","store.states.hoverRow","oldRow","store.states.currentRow","columnsCount","leftFixedLeafCount","rightFixedLeafCount","leftFixedCount","rightFixedCount","activateTooltip","rowIndex","columnIndex","cellChild","setStart","setEnd","innerText","oldHoverState","handleEvent","handleExpandClick","_filterPanel2","convertToRows","maxLevel","colSpan","subColumn","getAllColumns","rowSpan","columnRows","hasGutter","is-group","has-gutter","getHeaderRowStyle","getHeaderRowClass","handleMouseMove","handleMouseOut","handleMouseDown","handleHeaderClick","handleHeaderContextMenu","getHeaderCellStyle","getHeaderCellClass","labelClassName","renderHeader","handleSortClick","handleFilterClick","filterOpened","_defaultSort","isCellHidden","after","headerAlign","filterPanel","filterPlacement","draggingColumn","tableLeft","columnEl","columnRect","minLeft","dragState","startMouseLeft","startLeft","startColumnLeft","resizeProxy","deltaLeft","proxyLeft","handleMouseUp","_dragState","resizable","bodyStyle","pageX","toggleOrder","sortOrders","givenOrder","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_784f4ebc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_filter_panel_vue__","ElCheckboxGroup","customRender","handleConfirm","handleReset","filterValue","handleOutsideClick","handleSelect","filterMultiple","dropdowns","_layoutObserver","precisions","notNumber","before","el-table--fit","el-table--striped","el-table--border","el-table--hidden","el-table--group","el-table--fluid-height","el-table--scrollable-x","el-table--scrollable-y","el-table--enable-row-hover","el-table--enable-row-transition","default-sort","row-class-name","row-style","sum-text","summary-method","_tableColumn","_tableColumn2","columnIdSeed","_ref4","_ref5","_ref6","DEFAULT_RENDER_CELL","_ref7","parseWidth","parseMinWidth","showTooltipWhenOverflow","showOverflowTooltip","isSubColumn","columnOrTableParent","getDefaultColumn","columnConfig","hiddenColumns","_datePicker","_datePicker2","_picker2","_dateRange2","getPanel","timeArrowControl","_type","picker","unmountPicker","mountPicker","NewPopper","DEFAULT_FORMATS","datetime","timerange","daterange","datetimerange","HAVE_TRIGGER_TYPES","DATE_FORMATTER","DATE_PARSER","RANGE_FORMATTER","RANGE_PARSER","range1","range2","TYPE_VALUE_RESOLVER_MAP","trueDate","dates","PLACEMENT_MAP","parseAsFormatAndType","customFormat","rangeSeparator","formatAsFormatAndType","dateEquals","aIsDate","bIsDate","aIsArray","bIsArray","valueFormat","startPlaceholder","endPlaceholder","clearIcon","editable","defaultTime","pickerOptions","unlinkPanels","pickerVisible","userInput","valueOnOpen","unwatchPickerOptions","pickerDisabled","showPicker","hidePicker","parsedValue","selectedDate","ranged","refInput","valueIsEmpty","triggerClass","selectionMode","haveTrigger","showTrigger","displayValue","pickerSize","firstInputId","secondInputId","handleFieldReset","parseValue","isParsed","formatToValue","isFormattable","formatToString","isValidValue","emitInput","handleStartInput","handleEndInput","handleStartChange","handleEndChange","handleClickIcon","handleClear","initialValue","handleRangeClick","resetView","adjustSpinners","showTime","arrowControl","updateOptions","formatted","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2555bb87_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_vue__","_time2","_yearTable2","_monthTable2","_dateTable2","inputElm","pickerWidth","getDefaultValue","timePickerVisible","timepicker","currentView","proxyTimePickerDataProperties","timeFormat","userInputDate","userInputTime","showMonthPicker","showYearPicker","handleShortcutClick","shortcut","handleTimePick","newDate","handleTimePickClose","handleMonthPick","handleDateSelect","handleDatePick","handleYearPick","changeToNow","disabledDate","handleEnter","handleLeave","handleKeyControl","40","39","setFullYear","handleVisibleTimeChange","handleVisibleDateChange","dateFormat","YearTable","MonthTable","DateTable","shortcuts","showWeekNumber","footerVisible","visibleTime","visibleDate","yearTranslation","startYear","_timeSpinner2","TimeSpinner","spinner","emitSelectRange","needInitAdjust","selectionRange","showSeconds","useArrow","amPmMode","handleCancel","changeSelectionRange","scrollDown","seconds","hoursList","arrowHourList","arrowMinuteList","arrowSecondList","currentScrollbar","bindScrollEvent","modifyDateField","adjustSpinner","bindFuntion","onscroll","adjustCurrentSpinner","isCapital","has-seconds","wrap-style","arrow-control","show-seconds","am-pm-mode","select-range","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f653c26_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_year_table_vue__","numOfDays","datesInYear","handleYearTableClick","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_312e3722_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_month_table_vue__","datesInMonth","handleMonthTableClick","_WEEKS","clearHours","cloneDate","rangeState","offsetDay","WEEKS","dateCountOfMonth","dateCountOfLastMonth","tableRows","firstDayPosition","isWeekActive","rangeState.endDate","markRange","cellMatchesDate","getCellClasses","getDateOfCell","offsetFromStart","_cell","_rangeState","oldColumn","cells","_maxDate","_minDate","_minDate2","weekNumber","is-week-mode","after-enter","has-sidebar","sidebar","has-time","time-arrow-control","pick","el-date-picker__header--bordered","selection-mode","first-day-of-week","default-value","disabled-date","selected-date","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_range_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_range_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_52d54177_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_range_vue__","advanceDate","calcDefaultValue","btnDisabled","leftLabel","leftDate","rightLabel","rightDate","leftYear","leftMonth","leftMonthDate","rightYear","rightMonth","rightMonthDate","minVisibleDate","maxVisibleDate","minVisibleTime","maxVisibleTime","enableMonthArrow","yearOffset","enableYearArrow","minTimePickerVisible","maxTimePickerVisible","maxTimePicker","minTimePicker","minDateYear","minDateMonth","maxDateYear","maxDateMonth","_calcDefaultValue","handleChangeRange","handleDateInput","handleDateChange","handleTimeChange","handleRangePick","onPick","handleMinTimePick","handleMinTimeClose","handleMaxTimePick","handleMaxTimeClose","leftPrevYear","leftPrevMonth","rightNextYear","rightNextMonth","leftNextYear","leftNextMonth","rightPrevYear","rightPrevMonth","min-date","max-date","range-state","changerange","_timeSelect","_timeSelect2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_select_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_select_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3aff1533_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_select_vue__","parseTime","compareTime","time1","time2","minutes1","minutes2","nextTime","stepValue","hasDefault","minTime","maxTime","_timePicker","_timePicker2","_timeRange2","_isRange","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_a222ec54_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_range_vue__","MIN_TIME","MAX_TIME","maxTimeOfDay","advanceTime","minSpinner","maxSpinner","handleMinChange","handleMaxChange","setMinSelectionRange","setMaxSelectionRange","minSelectableRange","maxSelectableRange","half","is-arrow","_directive2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_16d0194f_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","doToggle","handleDocumentClick","doShow","handleAfterEnter","handleAfterLeave","getReference","showInput","closeOnHashChange","inputValue","inputPlaceholder","inputType","inputPattern","inputValidator","inputErrorMessage","showConfirmButton","showCancelButton","confirmButtonPosition","confirmButtonHighlight","cancelButtonHighlight","confirmButtonText","cancelButtonText","confirmButtonClass","cancelButtonClass","dangerouslyUseHTMLString","roundButton","distinguishCancelAndClose","MessageBoxConstructor","currentMsg","msgQueue","defaultCallback","showNextMsg","closeTimer","oldCb","setDefaults","$type","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_05b9df22_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","_ariaDialog2","messageBox","typeMap","confirmButtonClasses","cancelButtonClasses","getSafeClose","currentId","handleAction","handleInputEnter","editorErrorMessage","getInputElement","validateResult","getFirstFocus","inputRefs","confirmButtonLoading","cancelButtonLoading","confirmButtonDisabled","aria-modal","_breadcrumb2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7cdb9dc9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_breadcrumb_vue__","separatorClass","elBreadcrumb","_breadcrumbItem","_breadcrumbItem2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_item_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_item_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_eb4d4a72_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_breadcrumb_item_vue__","_form","_form2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_08ec9ea9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_form_vue__","_merge","labelWidth","labelSuffix","inline","inlineMessage","showMessage","validateOnRuleChange","resetFields","resetField","clearValidate","valid","invalidFields","validateField","el-form--inline","_formItem","_formItem2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_item_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_item_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5f25e5e7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_form_item_vue__","_asyncValidator2","validateMessage","labelFor","contentStyle","parentName","fieldValue","isRequired","getRules","_formSize","sizeClass","validateDisabled","getFilteredRule","formRules","selfRules","requiredRule","onFieldBlur","onFieldChange","el-form-item--feedback","is-error","is-validating","is-success","is-required","el-form-item__error--inline","_tabs","_tabs2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tabs_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tabs_vue___default","_tabNav","_tabNav2","TabNav","activeName","addable","tabPosition","stretch","rootTabs","currentName","panes","setCurrentName","nav","scrollToActiveTab","handleTabClick","tabName","handleTabRemove","pane","handleTabAdd","changeCurrentName","removeFocus","addPanes","removePanes","onTabClick","onTabRemove","el-tabs","el-tabs--card","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_nav_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_nav_vue___default","_tabBar","_tabBar2","firstUpperCase","TabBar","scrollable","navOffset","isFocus","focusable","navStyle","sizeName","scrollPrev","containerSize","navScroll","currentOffset","scrollNext","navSize","activeTab","activeTabBounding","navScrollBounding","navBounding","_currentOffset","changeTab","tabList","setFocus","visibilityChangeHandler","visibilityState","windowBlurHandler","windowFocusHandler","scrollBtn","tabs","isClosable","btnClose","tabLabelContent","el-tabs__item","aria-controls","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_bar_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_bar_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_969dc580_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tab_bar_vue__","tabSize","sizeDir","_tabPane","_tabPane2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_pane_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_pane_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e85416ea_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tab_pane_vue__","labelContent","paneName","aria-labelledby","_tree","_tree2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_a385d82e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_vue__","_treeStore2","_treeNode2","ElTreeNode","treeItems","checkboxItems","showDropIndicator","draggingNode","dropNode","allowDrop","renderAfterExpand","nodeKey","checkStrictly","expandOnClickNode","checkOnClickNode","checkDescendants","autoExpandParent","defaultCheckedKeys","defaultExpandedKeys","showCheckbox","allowDrag","highlightCurrent","filterNodeMethod","accordion","treeItemArray","setDefaultCheckedKey","setDefaultExpandedKeys","checkbox","getNodePath","getNode","getCheckedNodes","leafOnly","includeHalfChecked","getCheckedKeys","getCurrentNode","getCurrentKey","setCheckedNodes","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","setCurrentNode","setUserCurrentNode","setCurrentKey","setCurrentNodeKey","refNode","handleNodeExpand","updateKeyChildren","initTabIndex","checkedItem","currentItem","hasInput","isTree","currentNodeKey","treeNode","dataTransfer","effectAllowed","oldDropNode","dropPrev","dropInner","dropNext","userAllowDropInner","dropEffect","previousSibling","targetPosition","treePosition","dropType","prevPercent","nextPercent","indicatorTop","dropIndicator","draggingNodeCopy","insertChild","registerNode","_node","_node2","TreeStore","loadFn","doCreateChildren","_initDefaultCheckedNodes","allHidden","isLeaf","refData","checkedKey","_initDefaultCheckedNode","deregisterNode","checkedNodes","_getAllNodes","allNodes","_child","_setCheckedKeys","checkedKeys","getChildState","none","allWithoutDisable","reInitChecked","_getChildState","getPropertyFromData","dataProp","nodeIdSeed","isLeafByUser","updateLeafState","getChildren","removeChildByData","expandParent","shouldLoadData","loadData","defaultProps","recursion","passValue","_getChildState2","handleDescendants","isCheck","_getChildState3","_all","forceInit","newDataMap","newNodes","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c66447d4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_node_vue__","NodeContent","childNodeRendered","oldChecked","oldIndeterminate","node.indeterminate","handleSelectChange","node.checked","node.expanded","handleExpandIconClick","handleCheckChange","halfCheckedNodes","halfCheckedKeys","handleChildNodeExpand","handleDragStart","handleDragOver","handleDrop","childrenKey","is-expanded","is-current","is-hidden","is-focusable","dragover","drop","padding-left","is-leaf","render-content","render-after-expand","node-expand","el-tree--highlight-current","is-dragging","is-drop-not-allow","is-drop-inner","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4d7f5e38_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","TYPE_CLASSES_MAP","closeText","showIcon","typeClass","isBigIcon","isBoldTitle","is-customed","el-icon-close","NotificationConstructor","userOnClose","verticalOffset","removedHeight","verticalProperty","closeAll","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e9766d52_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","horizontalClass","positionStyle","destroyElement","startTimer","is-with-icon","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_25be533e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","showInputControls","showStops","tooltipClass","ElInputNumber","SliderButton","firstValue","secondValue","sliderSize","setValues","valueChanged","setPosition","button1","onSliderClick","sliderDisabled","resetSize","sliderOffsetBottom","slider","sliderOffsetLeft","stopCount","stepWidth","barSize","barStart","runwayStyle","valuetext","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_60e22f5a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__","_tooltip","isClick","newPosition","currentPosition","enableFormat","formatValue","wrapperStyle","displayTooltip","hideTooltip","onButtonDown","onDragStart","onDragging","onLeftKeyDown","onRightKeyDown","lengthPerStep","popper-class","is-vertical","el-slider--with-input","aria-orientation","show-input","tooltip-class","_loading2","_afterLeave2","Mask","loadingDirective","toggleLoading","originalPosition","originalOverflow","maskStyle","insertDom","domVisible","hiding","lock","domInserted","textExr","spinnerExr","backgroundExr","customClassExr","LoadingConstructor","fullscreenLoading","addStyle","_icon","_icon2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_icon_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_icon_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_17b0ab6e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_icon_vue__","_row","_row2","justify","el-row--flex","_col","_col2","pull","xs","sm","md","xl","_src","_src2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue___default","_uploadList2","_upload2","ElProgress","UploadList","uploader","dragger","showFileList","accept","beforeUpload","beforeRemove","onChange","onPreview","fileList","autoUpload","listType","httpRequest","limit","onExceed","uploadFiles","dragOver","draging","tempIndex","uploadDisabled","handleStart","rawFile","file","handleProgress","getFile","handleSuccess","handleRemove","doRemove","clearFiles","submit","default-file-list","show-upload-list","thumbnail-mode","uploadList","files","handlePreview","uploadComponent","before-upload","with-credentials","on-exceed","on-start","on-progress","on-success","on-error","on-preview","on-remove","http-request","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_list_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_list_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1062ab12_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_upload_list_vue__","parsePercentage","el-icon-upload-success","el-icon-circle-check","el-icon-check","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_vue___default","_babelHelperVueJsxMergeProps2","_ajax2","_uploadDragger2","UploadDragger","onStart","reqs","isImage","postFiles","post","processedFile","fileType","File","req","el-upload","formData","getError","getBody","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_dragger_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_dragger_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9f5d7848_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_upload_dragger_vue__","onDragover","onDrop","extension","baseType","acceptedType","is-dragover","dragleave","_spinner","_spinner2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_spinner_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_spinner_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_649cdd67_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_spinner_vue__","strokeColor","MessageConstructor","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_bbc771a6_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_be73115e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","isDot","hidden","is-fixed","is-dot","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_99277b5c_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02f4e282_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","_migrating","pointerAtLeftHalf","lowThreshold","highThreshold","voidColor","disabledVoidColor","iconClasses","voidIconClass","disabledVoidIconClass","allowHalf","showScore","texts","scoreTemplate","rateDisabled","decimalStyle","valueDecimal","decimalIconClass","getValueFromMap","classMap","voidClass","disabledVoidClass","colorMap","lowColor","mediumColor","highColor","lowClass","mediumClass","highClass","text-template","showDecimalIcon","showWhenDisabled","showWhenAllowHalf","getIconStyle","selectValue","handleKey","resetCurrentValue","aria-valuetext","_steps","_steps2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_steps_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_steps_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_42c48743_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_steps_vue__","alignCenter","simple","finishStatus","processStatus","steps","stepOffset","_step2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_step_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_step_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6521d5e0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_step_vue__","internalStatus","currentStatus","prevStatus","prevStep","isSimple","isLast","stepsCount","flexBasis","updateStatus","prevChild","calcProgress","transitionDelay","unwatch","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b46b8afc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","_throttle2","initialIndex","indicatorPosition","hasLabel","setActiveItem","resetItemPosition","pauseTimer","itemInStage","inStage","handleButtonEnter","handleButtonLeave","updateItems","translateItem","playSlides","filteredItems","handleIndicatorClick","handleIndicatorHover","throttledArrowClick","throttledIndicatorHover","el-carousel--card","el-carousel__indicators--labels","el-carousel__indicators--outside","_item","_item2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_item_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_item_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_270b1a48_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_item_vue__","ready","animating","processIndex","calculateTranslate","parentWidth","el-carousel__item--card","is-in-stage","is-hover","is-animating","_collapse","_collapse2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_ebb8016e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_collapse_vue__","activeNames","setActiveNames","aria-multiselectable","_collapseItem","_collapseItem2","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_item_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_item_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2adc2d72_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_collapse_item_vue__","contentWrapStyle","handleEnterClick","aria-describedby","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02ff6464_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","popperMixin","changeOnSelect","expandTrigger","showAllLevels","beforeFilter","hoverThreshold","debouncedInputChange","menuVisible","inputHover","flatOptions","needFocus","labelKey","disabledKey","currentLabels","cascaderSize","cascaderDisabled","showMenu","hideMenu","inputLabel","initMenu","flattenOptions","menus","handlePick","handleActiveItemChange","handleClickoutside","filteredFlatOptions","optionsStack","optionStack","__IS__FLAT__OPTIONS","renderFilteredOptionLabel","keywordIndex","labelPart","highlightKeyword","keyword","el-cascader-menu__item__keyword","clearValue","pickFinished","hoverTimer","clicking","activeOptions","configurableProps","optionsCopy","copyArray","childrenProp","itemCopy","formatOptions","loadActiveOptions","menuIndex","handleMenuLeave","scrollMenu","getElementsByClassName","itemIndex","hoverMenuRefs","hoverMenuHandler","activeMenu","offsetY_top","offsetY_Bottom","hoverZone","isFlat","menuId","ownsId","triggerHandler","currentEle","parentEle","menuItemList","el-cascader-menu__item","el-cascader-menu__item--extensible","menuStyle","isHoveredMenu","hoverMenuEvent","el-cascader-menu","el-cascader-menu--flexible","pointerEvents","parentElement","x-arrow","is-reverse","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02fb592a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","_color2","_pickerDropdown2","showAlpha","colorFormat","predefine","displayedColor","showPanelColor","displayedRgb","colorSize","colorDisabled","currentValueColor","handleTrigger","confirmValue","resetColor","_color$toRgb","PickerDropdown","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_dropdown_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_dropdown_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6e6b9d28_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_picker_dropdown_vue__","_svPanel2","_hueSlider2","_alphaSlider2","_predefine2","SvPanel","HueSlider","AlphaSlider","Predefine","customInput","currentColor","sl","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_sv_panel_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_sv_panel_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_14c2eb92_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_sv_panel_vue__","_draggable","_draggable2","colorValue","saturation","_el$getBoundingClient","cursorLeft","cursorTop","handleDrag","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_hue_slider_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_hue_slider_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5e2326ce_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_hue_slider_vue__","thumbLeft","thumbTop","hueValue","getThumbLeft","getThumbTop","dragConfig","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_alpha_slider_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_alpha_slider_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5cb212b0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_alpha_slider_vue__","color._alpha","color.value","getBackground","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_predefine_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_predefine_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b85c1454_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_predefine_vue__","_color","rgbaColors","parseColors","$parent.currentColor","is-alpha","background-color","show-alpha","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b373c452_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","_transferPanel2","TransferPanel","buttonTexts","leftDefaultChecked","rightDefaultChecked","targetOrder","leftChecked","rightChecked","dataObj","sourceData","hasButtonTexts","footer-format","onSourceCheckedChange","movedKeys","onTargetCheckedChange","addToLeft","addToRight","itemsToBeMoved","itemKey","clearQuery","leftPanel","rightPanel","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_transfer_panel_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_transfer_panel_vue___default","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f62a5c0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_transfer_panel_vue__","OptionContent","getParent","labelProp","keyProp","defaultChecked","allChecked","checkChangeByUser","updateAllChecked","filteredDataKeys","checkableData","checkableDataKeys","disabledProp","checkedSummary","checkedLength","noChecked","hasChecked","isIndeterminate","hasNoMatch","inputIcon","hasFooter","handleAllCheckedChange","is-filterable","default-checked","checked-change","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e6b1da9a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_31828435_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3b257048_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_f7fbdb6e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_736ed032_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__","forbiddenField","svgURI","122","_zhCN2","_deepmerge2","i18nHandler","vuei18n","$t","getRawTag","objectToString","nullTag","undefinedTag","seriesGroups","hostGeoModel","seriesList","statisticType","mapKey","caf","elem","pseudo","getRenderInfo","detached","__resize_mutation_handler__","__resize_rendered__","__resize_triggers__","resetTriggers","runCallbacks","__resize_listeners__","ro","__resize_observer_triggered__","__resize_observer__","__resize_legacy_resize_handler__","styleText","createStyles","__resize_old_position__","__resize_last__","triggers","expandChild","contract","initTriggers","mo","__resize_mutation_observer__","__resize_raf__","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","getUpdatedSize","csw","csh","eow","eoh","esw","esh","COORDS","createNameEach","capitalNames","capitalAttrs","nameObj","capital","isCoordSupported","coordType","forEachNode","forEachEdgeType","edgeIdGetter","sourceNode","existsLink","absorb","processSingleNode","isNodeAbsorded","hasLink","edgeId","isLinked","$iterCreate","BUGGY","returnThis","Base","IS_SET","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","getFixedItemStyle","updateMapSelected","mapOrGeoModel","otherRegionEl","__regions","updateGroup","_updateGroup","_mouseDownFlag","fromView","isGeo","itemStyleAccessPath","hoverItemStyleAccessPath","labelAccessPath","hoverLabelAccessPath","regionGroup","compoundPath","regionModel","isDataNaN","updateMapSelectHandler","makeActionBase","serializedParams","toISOString","replaceReg","replaceMap","&","<",">","\"","'","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","upperCaseFirst","group1","paramsList","seriesLen","isUTC","utc","_event","mouseHandlerNames","touchHandlerNames","pointerEventNames","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","eventNameFix","processGesture","gestureMgr","_gestureMgr","setTouchTimer","_touching","_touchTimer","domHandlers","touchmove","touchend","isPointerFromTouch","pointerType","HandlerDomProxy","mountHandlers","makeMouseHandler","handlerDomProxyProto","opacityMap","r2","r3","r4","v2Min","v2Max","v2Scale","v2Add","v2Clone","v2Sub","constraint","prevPoint","nextPoint","cps","d0","DUMMY_COMPONENT_NAME_PREFIX","cptOption","innerUniqueIndex","subOpts","subOptName","newCptOptions","idMap","existCpt","idNum","batchA","batchB","mapA","mapB","mapToArray","sourceBatch","otherMap","otherDataIndices","isData","hostObj","parsedKey","queryType","queryParam","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","sinusoidalOut","sinusoidalInOut","exponentialIn","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","hasModal","hasInitZIndex","getModal","modalDom","doOnModalClick","modalStack","topItem","topPopup","getTopPopup","_buildAxes","_buildSplitLineAndArea","axisBuilders","showSplitLine","showSplitArea","splitLineColors","splitAreaColors","ticksRadius","getColorIndex","realSplitNumber","axesTicksPoints","prevPoints","areaOrLine","areaOrLineColorList","TYPE_DELIMITER","IS_CONTAINER","classBase","RootClass","mandatoryMethods","ExtendedClass","classAttr","registerClass","checkClassType","makeContainer","componentMainType","throwWhenNotFound","originalExtend","setReadOnly","realIndex","paramsSet","reals","fakeValue","layoutInput","rParam","AxisProxy","_dimName","_axisIndex","_valueWindow","_percentWindow","_minMaxSpan","_dataZoomModel","setAxisModel","isRestore","percentWindow","useOrigin","hostedBy","getOtherAxisModel","coordSysIndexName","foundOtherAxisModel","otherAxisModel","rangePropMode","getRangePropMode","boundValue","boundPercent","seriesExtent","fixExtentByAxis","calculateDataExtent","dataWindow","valueSpan","setMinMaxSpan","filterMode","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","magicTypeLang","MagicType","seriesOptGenreator","radioTypes","newSeriesOpt","currentType","themeRiverVisual","DIMENSION_LABEL_REG","lineStyleMixin","areaStyleMixin","textStyleMixin","itemStyleMixin","doGet","getParentMethod","thisParentModel","VMLPainter","vmlViewport","_vmlRoot","_vmlViewport","_firstPaint","__alreadyNotVisible","_getWidth","_getHeight","vmlViewportStyle","RE_NARGS","_updatePathDirty","sunburstLayout","_setting","_isBlank","FUNC_ERROR_TEXT","nativeMax","nativeMin","wait","lastArgs","lastThis","maxWait","timerId","lastInvokeTime","leading","maxing","trailing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","hasTypedArray","notSaveData","_saveData","_xi","_yi","_x0","_y0","_ux","_uy","_lineDash","_dashOffset","_dashIdx","_dashSum","exceedUnit","_needsDash","_dashedLineTo","_dashedBezierTo","_dashedQuadraticTo","arcTo","lineDashSum","appendSize","appendPathData","_expandData","_prevCmd","dash","dashSum","nDash","bezierLen","tmpLen","ux","uy","createProperty","arrayLike","mapfn","createInstance","axios","promises","spread","retrieveRaw","updateRangeUse","_rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","rangeMode","_dataIntervalByAxis","_dataInfo","_axisProxies","_autoThrottle","doInit","_setDefaultThrottle","_resetTarget","_giveAxisProxies","axisProxies","__dzAxisProxy","autoMode","_judgeAutoMode","axisIndexName","_autoSetAxisIndex","_autoSetOrient","hasIndexSpecified","autoAxisIndex","axisIndices","_isSeriesHasAllAxesTypeOf","seriesAxisIndex","globalOption","firstAxisModel","ignoreUpdateRangeUsg","getValueRange","axisDimName","addToUnscopables","Arguments","fillLabel","MarkerModel","createdBySelf","hostSeries","__hostSeries","modelPropName","markerOpt","doneCallback","elExistsMap","isError","routerView","$route","_routerViewCache","_routerRoot","routerViewDepth","registerRouteInstance","propsToPass","resolveProps","encodeReserveRE","encodeReserveReplacer","commaRE","parseQuery","stringifyQuery","trailingSlashRE","createRoute","redirectedFrom","stringifyQuery$$1","fullPath","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","isObjectEqual","aKeys","bKeys","aVal","bVal","_Vue","toTypes","eventTypes","Link","exact","exactActiveClass","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","queryIncludes","isIncludedRoute","guardEvent","findAnchor","metaKey","ctrlKey","shiftKey","defaultPrevented","installed","registerInstance","callVal","_router","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","resolvePath","relative","firstChar","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction","tokensToFunction_1","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","asterisk","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","pretty","attachKeys","sensitive","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","regexpCompileCache","fillParams","routeMsg","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","pathMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","caseSensitive","regex","compileRouteRegex","redirect","childMatchAs","aliases","aliasRoute","normalizeLocation","_normalized","rawPath","parsedPath","hashIndex","queryIndex","extraQuery","_parseQuery","parsedQuery","resolveQuery","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","aliasedMatch","aliasedRecord","addRoutes","positionStore","setupScroll","replaceState","getStateKey","saveScrollPosition","isPop","app","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","pageXOffset","isValidPosition","normalizePosition","docRect","getElementPosition","scrollTo","supportsPushState","Time","genKey","pushState","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","flatten","History","baseEl","normalizeBase","readyCbs","readyErrorCbs","errorCbs","extractGuards","guards","guard","extractGuard","bindGuard","listen","onReady","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","resolveQueue","extractLeaveGuards","beforeHooks","extractUpdateHooks","postEnterCbs","bindEnterGuard","extractEnterGuards","resolveHooks","afterHooks","HTML5History","History$$1","expectScroll","initLocation","getLocation","go","fromRoute","getCurrentLocation","HashHistory","checkFallback","ensureSlash","setupListeners","supportsScroll","getHash","replaceHash","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","matcher","registerHook","setupHashListener","beforeEach","beforeResolve","afterEach","forward","getMatchedComponents","createHref","normalizedTo","newRoot","_oldChildren","oldId","virtualPiece","_onclickEvent","renderRollUp","targetFound","offsetParents","viewRectTop","viewRectBottom","unload","renderByParent","reload","control","contextMenu","transmitEvent","originInstance","clearResults","clearMarkers","preventChildrenRender","Size","createPoint","createPixel","Pixel","createBounds","Bounds","createSize","anchor","imageSize","imageOffset","infoWindowAnchor","printImageUrl","createLabel","Label","enableMassClear","toKebabCase","getPosition","checkType","isPoint","baidu-map","bm-geolocation","bm-overview-map","bm-marker","bm-polyline","bm-polygon","bm-circle","bm-label","bm-info-window","bm-ground","bm-auto-complete","bm-point-collection","extraProps","exceptProps","I","BmlCurveLine","BmlHeatmap","BmlLushu","BmlMarkerClusterer","BmAutoComplete","BmBoundary","BmTraffic","BmTile","BmBus","BmDriving","BmWalking","BmTransit","BmLocalSearch","BmContextMenuItem","BmContextMenu","BmOverlay","BmInfoWindow","BmLabel","BmGround","BmCircle","BmPolygon","BmPolyline","BmPointCollection","BmMarker","BmControl","BmPanorama","BmCityList","BmCopyright","BmGeolocation","BmOverviewMap","BmMapType","BmNavigation","BmScale","BmView","BaiduMap","$","N","V","J","X","Y","tt","et","nt","ot","at","ut","ht","dt","ft","mt","gt","yt","ak","_BMap","iconUrl","seperator","iseperator","removeContextMenu","ContextMenu","addSeparator","addContextMenu","CityListControl","onChangeBefore","onChangeAfter","addControl","setAnchor","setOffset","defaultAnchor","defaultOffset","Control","getContainer","updateCopyrightList","CopyrightControl","removeCopyright","getCopyrightCollection","bounds","getBounds","addCopyright","showAddressBar","autoLocation","locationIcon","GeolocationControl","enableAutoLocation","mapTypes","MapTypeControl","showZoomInfo","enableGeolocation","NavigationControl","isOpen","OverviewMapControl","PanoramaControl","ScaleControl","strokeWeight","strokeOpacity","massClear","editing","disableEditing","setStrokeColor","setStrokeOpacity","setStrokeStyle","enableEditing","disableMassClear","enableClicking","setDataSet","landmarkPois","autoView","infoWindow","_marker","showInfoWindow","hideInfoWindow","defaultContent","_overlay","setHtml","enableRotation","_isEnd","onstart","onstop","onpause","gridSize","maxZoom","minClusterSize","averageCenter","setGridSize","setMaxZoom","setMinClusterSize","isAverageCenter","Marker","addMarkers","transparentPng","tileUrlTemplate","TileLayer","addTileLayer","predictDate","pridictDate.weekday","pridictDate.hour","pridictDate","TrafficLayer","minZoom","highResolution","mapClick","scrollWheelZoom","doubleClickZoom","keyboard","inertialDragging","continuousZoom","pinchToZoom","autoResize","center.lng","center.lat","setMinZoom","setMapType","enableKeyboard","disableKeyboard","enableInertialDragging","disableInertialDragging","enableContinuousZoom","disableContinuousZoom","enableAutoResize","disableAutoResize","styleJson","mapStyle.features","mapStyle.style","mapStyle.styleJson","setMapOptions","hasBmView","enableHighResolution","enableMapClick","getCenterPoint","initMap","getMapScript","_preloader","_initBaiduMap","sugStyle","onSearchComplete","province","city","district","street","business","Boundary","fillColor","fillOpacity","isEditing","setRadius","setFillColor","setFillOpacity","dragStartHandler","dragEndHandler","bindEditingNodeEvents","editingKey","getEditingKey","imageURL","displayOnMinLevel","displayOnMaxLevel","setBounds","setOpacity","setImageURL","setDisplayOnMinLevel","setDisplayOnMaxLevel","GroundOverlay","maximize","autoPan","closeOnClick","openInfoWindow","closeInfoWindow","position.lng","position.lat","offset.width","offset.height","setWidth","setTitle","enableMaximize","disableMaximize","enableAutoPan","disableAutoPan","enableCloseOnClick","disableCloseOnClick","redraw","bindObserver","InfoWindow","enableMessage","$container","setZIndex","raiseOnDrag","draggingCursor","setIcon","setRotation","setDraggingCursor","setShadow","setTop","setPoints","PointCollection","pageCapacity","autoViewport","selectFirstResult","setLocation","getBusList","highlightMode","BusLineSearch","renderOptions","onGetBusListComplete","onGetBusLineComplete","onBusListHtmlSet","onBusLineHtmlSet","onMarkersSet","onPolylinesSet","startCity","endCity","waypoints","getWaypoints","DrivingRoute","onInfoHtmlSet","onResultsHtmlSet","forceLocal","customData","nearby","searchInBounds","searchNearby","setPageCapacity","enableAutoViewport","disableAutoViewport","enableFirstResultSelection","disableFirstResultSelection","LocalSearch","setPolicy","TransitRoute","WalkingRoute","atan","cornerPoints","editMarkers","setPath","removeOverlay","getPath","addDataPoint","drawAlpha","colorize","exportDataSet","generateRandomDataSet","labelsEl","gradientCfg","processGradientObject","createGradientImage","getElement","acanvas","actx","premultiplyAlpha","configure","0.45","0.55","0.65","0.95","initColorPalette","cleanup","mousePosition","_isExtended","_className","conf","latlngs","_moveendHandler","mapPane","_div","getNorthEast","getSouthWest","latlng","pixelTransform","_point","_html","floatPane","lushuMain","getIcon","setRelatedClass","getDocument","$1","_styleFixer","_styleFilter","_NAME_ATTRS","valign","usemap","frameborder","htmlFor","setAttrs","_path","_setTimeoutQuene","getProjection","_setOptions","_rotation","defaultIcon","_fromPause","_fromStop","_moveNext","_addMarker","_timeoutFlag","_addInfoWin","_intervalFlag","_clearTimeout","bShow","BMAP_ANIMATION_DROP","_getMercator","_getDistance","_move","pointToLngLat","_setInfoWin","pointToPixel","linePixellength","pointToPoint","_tween","_troughPointIndex","_pauseForView","pauseTime","getDistance","_markerClusterer","_minClusterSize","getMinClusterSize","_isAverageCenter","_markers","_gridBounds","_isReal","_clusterMarker","getStyles","isWebkit","isGecko","isStrict","compatMode","getBoxObjectFor","clientLeft","clientTop","_listeners","_eventFilter","_counter","_instances","disposed","__listeners","hashCode","_styles","_setupDefaultStyles","_domElement","_updateCss","_updateText","_bind","markerMouseTarget","getText","getStyleByText","_buildCssText","srcElement","pageY","pixelToPoint","_clusters","_gridSize","_maxZoom","_redraw","markers","_pushMarkerTo","_createClusters","isInCluster","addMarker","_addToClosestCluster","isMarkerInClusterBounds","_clearLastClusters","_removeMarkersFromCluster","_removeMarkersFromMap","_removeMarker","removeMarker","removeMarkers","getGridSize","getMaxZoom","getMarkers","getClustersCount","isReal","isMarkerInCluster","updateGridBounds","updateClusterMarker","_hasClickEvent","setViewport"],"mappings":"yCAAA,IAAAA,EAAeC,EAAQ,QAEvBC,EAAUD,EAAQ,QAElBE,EAAYF,EAAQ,QAEpBG,EAAAD,EAAAC,SACAC,EAAAF,EAAAE,WACAC,EAAAH,EAAAG,SACAC,EAAAJ,EAAAI,YACAC,EAAAL,EAAAK,QAMAC,EAAA,WAKAC,KAAAC,cAGAF,EAAAG,WACAC,YAAAJ,EAcAK,QAAA,SAAAC,EAAAC,GACA,IAAAC,EACAC,GAAA,EACAC,EAAAT,KACAU,EAAAV,KAAAW,KAEA,GAAAN,EAAA,CACA,IAAAO,EAAAP,EAAAQ,MAAA,KACAC,EAAAL,EAEAD,EAAA,UAAAI,EAAA,GAEA,QAAAG,EAAA,EAAAC,EAAAJ,EAAAK,OAA8CF,EAAAC,EAAOD,IACrDD,IAIAA,IAAAF,EAAAG,KAGAD,IACAP,EAAAO,QAGAP,EAAAE,EAGA,GAAAF,EAAA,CAKA,IAAAN,EAAAQ,EAAAR,UACAiB,EAAA,IAAA5B,EAAAiB,EAAAD,GAaA,OAZAY,EAAAC,OAAA,SAAAZ,GACAE,EAAAW,MAAAZ,KACKa,KAAA,WAELpB,EAAAqB,OAAAxB,EAAAG,EAAAiB,GAAA,KAEAjB,EAAAsB,KAAAL,GAEAR,GACAA,EAAAc,UAAAC,YAAAP,GAGAA,EAlBA1B,EAAA,aAAAa,EAAA,+BAAAI,EAAAiB,KAyBAC,cAAA,SAAAC,GAIA,IAHA,IAAA3B,EAAAD,KAAAC,UACA4B,EAAA5B,EAAAgB,OAEAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5Bd,EAAAc,GAAAe,KAAAF,GAIA,OADA3B,EAAAgB,OAAA,EACAjB,MAiCA+B,UAAA,SAAAxB,EAAAyB,EAAAC,EAAAC,EAAAC,EAAAC,GAEA1C,EAAAuC,IACAE,EAAAD,EACAA,EAAAD,EACAA,EAAA,GAEAtC,EAAAuC,IACAC,EAAAD,EACAA,EAAA,SACAD,EAAA,GAEAtC,EAAAsC,IACAE,EAAAF,EACAA,EAAA,GAEAtC,EAAAqC,IACAG,EAAAH,EACAA,EAAA,KAEAA,IACAA,EAAA,KAIAhC,KAAA2B,gBAEA3B,KAAAqC,kBAAA,GAAArC,KAAAO,EAAAyB,EAAAC,GAIA,IAAAhC,EAAAD,KAAAC,UAAAqC,QACAC,EAAAtC,EAAAgB,OAEA,SAAAI,MACAkB,GAGAJ,OAMAI,GACAJ,OAKA,QAAApB,EAAA,EAAmBA,EAAAd,EAAAgB,OAAsBF,IACzCd,EAAAc,GAAAM,QAAAmB,MAAAN,EAAAE,IA6BAC,kBAAA,SAAAhC,EAAAoC,EAAAlC,EAAAyB,EAAAC,GACA,IAAAS,KACAC,EAAA,EAEA,QAAAC,KAAArC,EACA,GAAAA,EAAAsC,eAAAD,GAIA,SAAAH,EAAAG,GACAhD,EAAAW,EAAAqC,MAAA/C,EAAAU,EAAAqC,IACA5C,KAAAqC,kBAAAhC,IAAA,IAAAuC,IAAAH,EAAAG,GAAArC,EAAAqC,GAAAZ,EAAAC,IAEAS,EAAAE,GAAArC,EAAAqC,GACAD,UAEO,SAAApC,EAAAqC,GAGP,GAAAvC,EAES,CAET,IAAAyC,KACAA,EAAAzC,MACAyC,EAAAzC,GAAAuC,GAAArC,EAAAqC,GACA5C,KAAA+C,KAAAD,QANA9C,KAAA+C,KAAAH,EAAArC,EAAAqC,IAeA,OAJAD,EAAA,GACA3C,KAAAI,QAAAC,GAAA,GAAA2C,KAAA,MAAAhB,EAAA,IAAAA,EAAAU,GAAAT,SAAA,GAGAjC,OAGA,IAAAiD,EAAAlD,EACAmD,EAAAC,QAAAF,0BC7PA,IAAAG,EAAc7D,EAAQ,QAEtB8D,EAAqB9D,EAAQ,QAoB7B+D,EAAAF,EAAAG,qBACAC,KAAA,cACAC,OAAA,SAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAF,EAAAG,aAAA,WACAC,EAAAL,EAAAM,IAAA,cAAAH,KAAAG,IAAA,gCAGAX,EAAAY,SAAA,cAAAL,EAAA,SAAAM,EAAAC,EAAAC,GAEA,SAAAL,IAAA,UAAAG,GAAAH,EAAAjE,QAAAoE,IAAA,IACAE,GACAZ,KAAA,oBACAU,cACAG,EAAAF,KAAAG,QACAC,EAAAJ,KAAAK,aASAC,OAAA,SAAAd,EAAAC,GACAP,EAAAqB,WAAAd,EAAAe,QAAA,eACArB,EAAAsB,WAAA5E,KAAA6E,OAAA,SAAAC,YAMAC,QAAA,SAAApB,EAAAC,GACAP,EAAAqB,WAAA,cAAAd,GACAN,EAAAsB,WAAA5E,KAAA6E,OAAA,UAAAC,cAGA7B,EAAAK,EACAJ,EAAAC,QAAAF,0BC3DA,IAAA+B,IAIC,SAAAC,GAA+B,aAEhCA,OAAApC,eAAA,WAAAoC,EAAA,QAAAA,EAEA,IAAAC,GACAC,cACAC,UAAiBC,MAAA,GACjBC,UAAiBD,MAAA,GACjBE,WAAkBF,MAAA,IAElBG,WACAJ,UAAiBC,MAAA,IAEjBI,MACAC,QAAA,GAEAC,MACAC,cAAA,EACAC,KAAA,GACAC,MAAA,KAIAC,GAAA,mIAEAC,GAAA,+GAEAC,GAAA,sCAEAC,EAAA,SAAAC,GACA,2CAAAA,EAAA,IAA6D,yBAA0B,eAAgB,gBAAiB,sBAAuB,oBAAqB,aAAAC,KAAA,KAGpKC,GAAA,qEAEAC,GAAA,oLAEAC,GACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,IAGAC,GACAC,WAAA,KACAC,WAAA,KACAC,cAAA,MACAC,mBAAA,EACAC,WACAT,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,MAIAO,EAAA,KACAC,EAAA,IACAC,EAAA,IACAC,EAAA,IAMA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAJ,EAAAK,WAAA/G,MAAA,KACAgH,EAAAL,GAAAE,GAAA,GACAI,EAAA,IAAAH,EAAA1G,OAAA8G,KAAAC,IAAAD,KAAAE,IAAAN,EAAA,GAAA1G,OAAA4G,GAAAL,GAAAK,EACAK,EAAAH,KAAAI,IAAA,GAAAL,GACAM,GAAAX,EAAAF,EAAA,KAAAO,GAAAI,GAAAZ,QAAAQ,GAEA,GAAAJ,EAAAF,EAAAM,EAAA,CACA,IAAAO,EAAA,IAAAC,OAAA,YAA8CZ,GAAAF,EAAAM,IAAA,MAC9CM,IAAAG,QAAAF,EAAA,IAGA,OAAAD,EAGA,SAAAI,EAAAC,EAAAlB,EAAAmB,EAAAjB,GACA,IAAAkB,EAAAZ,KAAAY,IAAApB,GACAqB,GAAA,EACAC,GAAA,EACAC,EAAA,GACAC,EAAA,GACAC,GAAA,EACAC,OAAA,EACAC,OAAA,EACAR,KAAA,GAEAnB,KAAA,GAEAmB,EAAA5I,QAAA,MACA8I,GAAA,EACAF,IAAAH,QAAA,gBACKG,EAAA5I,QAAA,OAAA4I,EAAA5I,QAAA,QACLoJ,GAAAR,EAAA5I,QAAA,KAAA4I,EAAA5I,QAAA,KAAAyH,EAAA,EAAAmB,EAAA5I,QAAA,QACA4I,IAAAH,QAAA,eAEAG,EAAA5I,QAAA,OAGAmJ,KAFAA,EAAAP,EAAAS,MAAA,iBAEAF,EAAA,IAEAP,EAAA5I,QAAA,QAAAgJ,EAAA,KACAJ,IAAAH,QAAA,IAAAD,OAAAQ,EAAA,gBAEAH,GAAAzB,IAAA+B,GAAA,MAAAA,GACAH,GAAAL,EAAAxB,UAAAN,GACAY,GAAAL,GACOyB,EAAAzB,GAAAyB,GAAAxB,IAAA8B,GAAA,MAAAA,GACPH,GAAAL,EAAAxB,UAAAP,GACAa,GAAAJ,GACOwB,EAAAxB,GAAAwB,GAAAvB,IAAA6B,GAAA,MAAAA,GACPH,GAAAL,EAAAxB,UAAAR,GACAc,GAAAH,IACOuB,EAAAvB,GAAAuB,GAAAtB,IAAA4B,GAAA,MAAAA,KACPH,GAAAL,EAAAxB,UAAAT,GACAe,GAAAF,KAGAqB,EAAA5I,QAAA,SACA+I,GAAA,EACAH,IAAAH,QAAA,YAEA,IAAAa,EAAA7B,EAAAK,WAAA/G,MAAA,QACAwI,EAAAX,EAAA7H,MAAA,QACAyI,EAAAZ,EAAA5I,QAAA,KACAyJ,GAAAb,EAAA7H,MAAA,QAAAA,MAAA,QAAAsI,MAAA,WAAAlI,OAyBA,GAvBAoI,GASAD,GALAL,GAHAM,EAAAvJ,QAAA,KAGAwH,EAAAC,GADA8B,GADAA,IAAAd,QAAA,SACA1H,MAAA,MACA,GAAAI,OAAAoI,EAAA,GAAApI,OAAAwG,EAAA4B,EAAA,GAAApI,QAEAqG,EAAAC,EAAA8B,EAAApI,OAAAwG,IAGA5G,MAAA,QACAkI,KAAAjJ,QAAA,SAAAiJ,EAAAlI,MAAA,WACAgI,GAAA,IAAAE,EAAAzG,MAAA,KAAAyG,EAAA,KAEAK,EAAA9B,EAAAC,EAAA,EAAAE,GAEAqB,IAAAG,IAAAG,GAAA,KAAAN,IAAAvC,EAAAiD,WACAJ,EAAA,KAAAA,EAAA,IACAN,EAAAvC,EAAAkD,UAEAL,EAAAtJ,QAAA,OACAsJ,IAAA9G,MAAA,GACA0G,GAAA,GAEAI,EAAAnI,OAAAsI,EACA,QAAAxI,EAAAwI,EAAAH,EAAAnI,OAA6CF,EAAA,EAAOA,IACpDqI,EAAA,IAAAA,EAIAE,GAAA,IACAF,IAAAxB,WAAAW,QAAA,0BAAiD,QAGjDG,EAAA5I,QAAA,OAAAsJ,EAAA,IAEA,IAAAhB,EAAAgB,EAAAL,GAAAD,GAAA,IAYA,OAVAF,EACAR,GAAAQ,GAAAI,EAAA,QAAAZ,GAAAQ,GAAAI,EAAA,QAEAE,GAAA,EACAd,EAAA,IAAAc,GAAAF,EAAA,SAAAZ,KAAAY,EAAA,SACOA,IACPZ,EAAA,IAAAA,GAIAA,EAGA,SAAAsB,EAAAnJ,EAAAoJ,GACAC,OAAAC,KAAAF,GAAAG,QAAA,SAAAC,GACAxJ,EAAAwJ,GAAAJ,EAAAI,KAIA,IAwBAtB,KACAuB,KA4BA,SAAAC,EAAAC,EAAAC,EAAA1C,GAmBA,OA3CA,SAAAF,EAAA4C,EAAA1C,GACA0C,KAAA1B,EAAA1B,cACAU,KAAAM,KAAAqC,MACA,IAAAhC,OAAA,EACAiC,OAAA,EAEA,OAAA9C,GAAA,OAAAkB,EAAA5B,WACAuB,EAAAK,EAAA5B,gBACK,UAAAU,GAAA,OAAAkB,EAAA3B,WACLsB,EAAAK,EAAA3B,eACK,CACL,QAAAwD,KAAAN,EACA,GAAAA,EAAAM,IAAAH,EAAAhB,MAAAa,EAAAM,GAAAC,QAAA,CACAF,EAAAL,EAAAM,GAAA5B,OACA,MAIAN,GADAiC,KAAA7B,EAAAgC,KAAA,KAAA/B,IACAlB,EAAA4C,EAAA1C,EAAAwC,GAGA,OAAA7B,EAsBAM,CAhBA,IAAAwB,QAAA,IAAAA,EACA,EACK,OAAAA,GAxLL,SAAA3C,GACA,uBAAAA,GAAAkD,MAAAlD,GAuLKmD,CAAAR,GACL,KACK,iBAAAA,EACLzB,EAAA5B,YAAAqD,IAAAzB,EAAA5B,WACA,EACO4B,EAAA3B,YAAAoD,IAAAzB,EAAA3B,aAAAoD,EAAA3B,QAAA,eAAAtH,OACP,MAEAiJ,GAGAA,GAAA,KAGAC,EAAA1C,GA7CAiC,EAAAjB,EAAA7B,GAgDAqD,EAAAxB,UACAwB,EAAAU,gBAAAnC,EAAAgC,KAAA,KAAA/B,GACAwB,EAAAhG,SAAA,SAAArB,EAAA8F,GACAsB,EAAApH,GAAA8F,GAEAuB,EAAAvF,WAAA,SAAA9B,GACAoH,EAAApH,GAAA,MAEAqH,EAAAW,WAAA,SAAAC,GACAnB,EAAAjB,EAAAoC,IAEAZ,EAAAa,MAAA,WACApB,EAAAjB,EAAA7B,IAGAqD,EAAAhG,SAAA,cAzFAsG,OAAA,IACA7B,OAAA,SAAAnB,EAAA4C,EAAA1C,EAAAwC,GACA,IAAAc,GAAAZ,EAAArK,QAAA,aACAsI,OAAA,EAgBA,OAdA6B,EAAAxB,QAAAzB,oBAAAO,GAAA,KAEA4C,IAAA5B,QAAA,aAEAH,EAAA6B,EAAAU,gBAAApD,EAAA4C,EAAA1C,IAEA3H,QAAA,OACAsI,IAAAvH,MAAA,KACAS,QAAA,IAAAyJ,EAAA,KACA3C,IAAAhC,KAAA,KAEAgC,IAAA2C,EAAA,IAGA3C,KAwEA,IAAA4C,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GACA,cAAAA,GACG,SAAAA,GACH,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAGAC,EAAA,SAAAD,EAAApB,EAAAxC,GAYA,OAXAwC,KAAAoB,EACAvB,OAAAwB,eAAAD,EAAApB,GACAxC,QACA8D,YAAA,EACAC,cAAA,EACAC,UAAA,IAGAJ,EAAApB,GAAAxC,EAGA4D,GAGAK,EAAA5B,OAAA6B,QAAA,SAAAlL,GACA,QAAAQ,EAAA,EAAmBA,EAAA+D,UAAA7D,OAAsBF,IAAA,CACzC,IAAA0B,EAAAqC,UAAA/D,GAEA,QAAAgJ,KAAAtH,EACAmH,OAAA1J,UAAA2C,eAAA6I,KAAAjJ,EAAAsH,KACAxJ,EAAAwJ,GAAAtH,EAAAsH,IAKA,OAAAxJ,GAGAoL,EAAA,SAAAC,GACA,OAAAC,MAAAC,QAAAF,KAAAC,MAAAE,KAAAH,IAGA,SAAAI,EAAAC,EAAAhK,GACA,IAAAiK,EAAA,KACA,kBACA,IAAAC,EAAAnM,KACAoM,EAAAtH,UACAuH,aAAAH,GACAA,EAAAI,WAAA,WACAL,EAAAM,MAAAJ,EAAAC,IACOnK,IAIP,SAAAuK,EAAAjM,EAAAF,EAAAkH,GACA,GAAAlH,EAAA,CACA,IAAAoM,EAAAlM,EACAmM,EAAArM,EAAAQ,MAAA,KACA6L,EAAA5C,QAAA,SAAA6C,EAAAC,GACAA,IAAAF,EAAAzL,OAAA,EACAwL,EAAAE,GAAApF,GAEAkF,EAAAE,KAAAF,EAAAE,OACAF,IAAAE,OAoBA,IAAAE,EAAA,mBAAA5B,QAAA,WAAAD,EAAAC,OAAAC,UAAA,SAAAC,GACA,gBAAAA,EAAA,YAAAH,EAAAG,IACG,SAAAA,GACH,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,kBAAAiL,EAAA,YAAAH,EAAAG,IAGA,SAAA2B,EAAAC,GACA,OAAAnD,OAAA1J,UAAA0H,SAAA8D,KAAAqB,GAGA,SAAAC,EAAAD,GACA,gBAAAA,EAAA,YAAAF,EAAAE,GAGA,SAAAnN,EAAAmN,GACA,0BAAAD,EAAAC,GAGA,SAAAjB,EAAAiB,GACA,yBAAAD,EAAAC,GAOA,SAAAE,EAAAF,GACA,OAAAG,KAAAC,MAAAD,KAAAE,UAAAL,IAOA,SAAAM,EAAA5K,EAAAlC,GACA,OAAAqJ,OAAA1J,UAAA2C,eAAA6I,KAAAjJ,EAAAlC,GA+BA,IAAA+M,EAAA,SAAAC,EAAA/J,EAAAgK,GACA,IAAAC,EAAA3I,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,OAEA,GAAA2F,MAAA8C,GAAA,OAAAE,EACA,IAAAjK,EAAA,OAAA+J,EACA,GAhDA,sBAAAT,EAgDAtJ,GAAA,OAAAA,EAAA+J,EAAAtD,GAEAuD,EAAA/C,MAAA+C,GAAA,IAAAA,EACA,IAAAG,EAAA,SAAA9B,MAAA2B,GAAApH,KAAA,OACAwH,EAAApK,EACA,OAAAA,GACA,UACAoK,EAAAJ,EAAA,MAAAG,EAAA,WACA,MACA,aACAC,EAAAJ,EAAA,MAAAG,EAAA,MACA,MACA,cACAC,EAAAJ,EAAA,MAAAG,EAAA,gBAGA,OAAA1D,EAAAsD,EAAAK,IAGAC,EAAA,SAAAC,GACA,IAAAC,KAMA,OALAnE,OAAAC,KAAAiE,GAAAhE,QAAA,SAAA6C,GACAmB,EAAAnB,GAAA7C,QAAA,SAAAlH,GACAmL,EAAAnL,GAAA+J,MAGAoB,GAiBAC,KAEAC,EAAA,SAAAC,GACA,IAjBAC,EAiBAC,EAAAF,EAAAE,SACAC,EAAAH,EAAAG,iBACAC,EAAAJ,EAAAI,sBACAC,EAAAL,EAAAK,aAEAC,EAAAH,GAAA,GAAAE,EAAAH,EAAA,QAOA,OANAJ,EAAAQ,KACAR,EAAAQ,IAxBAL,EAwBAK,EAvBA,IAAAC,QAAA,SAAAC,EAAAC,GACA,IAAAC,EAAA,IAAAC,eACAD,EAAAE,KAAA,MAAAX,GACAS,EAAAG,KAAA,MACAH,EAAAI,OAAA,WACAN,EAAAxB,KAAAC,MAAAyB,EAAAK,gBAEAL,EAAAM,QAAA,WACAP,EAAAzB,KAAAC,MAAAyB,EAAAK,mBAeAE,KAAA,SAAAC,GAEA,OADAd,IAAAc,EAAAd,EAAAc,IACAA,KAGApB,EAAAQ,IAGAa,EAAA,KACAC,EAAA,KAEAC,EAAA,SAAAxF,EAAAgD,GAWA,OAVAsC,IACAA,EAAA,IAAAZ,QAAA,SAAAC,EAAAC,GACA,IAAAa,EAAA,OAAAC,KAAAC,MACAC,OAAAH,GAAAd,EACA,IAAAkB,EAAAC,SAAAC,cAAA,UACAF,EAAAG,KAAA,oCAAAhD,GAAA,aAAAhD,EAAA,YAAAyF,GAAApJ,KAAA,KAEAyJ,SAAAG,KAAAC,YAAAL,MAGAP,GAGAa,EAAA,SAAAnG,EAAAgD,GAWA,OAVAuC,IACAA,EAAA,IAAAb,QAAA,SAAAC,EAAAC,GACA,IAAAa,EAAA,OAAAC,KAAAC,MACAC,OAAAH,GAAAd,EACA,IAAAkB,EAAAC,SAAAC,cAAA,UACAF,EAAAG,KAAA,mCAAAhD,GAAA,gBAAAhD,EAAA,YAAAyF,GAAApJ,KAAA,KAEAyJ,SAAAG,KAAAC,YAAAL,MAGAN,GAIAa,EAAA,GAEA,SAAAC,EAAAhE,GACA,IAAAiE,EAAAjE,EAAAiE,UACAC,EAAAlE,EAAAkE,YACAC,EAAAnE,EAAAmE,UACAC,EAAApE,EAAAoE,YACAC,EAAArE,EAAAqE,YACAC,EAAAtE,EAAAsE,KAEA,OAAAH,EAAAI,IAAA,SAAAhE,GACA,OACAnJ,KAAA,WACAZ,KAAA0N,EACAM,aAAA,SACAC,QAAA,GACAC,KAAA,UAAAL,EAaA,SAAAC,GAIA,IAHA,IAAAzI,EAAAF,KAAAE,IAAAsE,MAAA,KAAAmE,GAEAK,KACAhQ,EAFAgH,KAAAC,IAAAuE,MAAA,KAAAmE,GAEqB3P,GAAAkH,EAAUlH,IAC/BgQ,EAAAxP,KAAAR,GAEA,OAAAgQ,EApBAC,CAAAN,GAAAL,EAAAM,IAAA,SAAAM,GACA,OAAAA,EAAAtE,KAEAuE,WACAtD,UAAA,SAAAb,GACA,OAAAoE,OAAApE,KAGA1H,KAAAmL,KAeA,SAAAY,EAAAhF,GAoCA,IAnCA,IAAAiF,EAAAjF,EAAAiF,YACAC,EAAAlF,EAAAkF,YACAd,EAAApE,EAAAoE,YACAhD,EAAApB,EAAAoB,MACA+D,EAAAnF,EAAAmF,MACAvJ,EAAAoE,EAAApE,IACAC,EAAAmE,EAAAnE,IAEAuJ,GACAhO,KAAA,QACA8B,UACAD,MAAA,GAEAA,KAAAmL,GAEAiB,KAEAC,EAAA,SAAA3Q,GACAuQ,EAAAvQ,GACA0Q,EAAA1Q,GAAAyK,KAAgCgG,GAChCN,WACAtD,UAAA,SAAAL,GACA,OAAAD,EAAAC,EAAA+D,EAAAvQ,GAAAyM,OAKAiE,EAAA1Q,GAAAyK,KAAgCgG,GAEhCC,EAAA1Q,GAAA6B,KAAAyO,EAAAtQ,IAAA,GACA0Q,EAAA1Q,GAAAwQ,QAAAxQ,KAAA,EACA0Q,EAAA1Q,GAAAiH,MAAAjH,IAAA,KACA0Q,EAAA1Q,GAAAkH,MAAAlH,IAAA,MAGAA,EAAA,EAAmBA,EAAA,EAAOA,IAC1B2Q,EAAA3Q,GAGA,OAAA0Q,EAGA,SAAAE,EAAAvF,GACA,IAAAwF,EAAAxF,EAAAwF,SACAC,EAAAzF,EAAAyF,YACAP,EAAAlF,EAAAkF,YACA9D,EAAApB,EAAAoB,MACAsE,EAAA1F,EAAA0F,SAEAC,EAAAF,EAAAD,EAAA9L,UAAA8L,EAAAI,QAMA,OALAF,IACAC,IAAApB,IAAA,SAAAhE,GACA,YAAAe,IAAAoE,EAAAnF,KAAAmF,EAAAnF,OAIAsF,QAAA,OACArE,UAAA,SAAAsE,GACA,IAAAC,KAWA,OAVAA,EAAA5Q,KAAA2Q,EAAA,GAAAtP,KAAA,QACAsP,EAAApI,QAAA,SAAA6C,GACA,IAAAyF,EAAAzF,EAAAyF,WACA5O,GAAAuO,EAAAjS,QAAAsS,GAAAd,EAAA,GAAAA,EAAA,GACAa,EAAA5Q,KAAA2E,EAAAyG,EAAAxG,QACAgM,EAAA5Q,KAAA6Q,EAAA,MACAD,EAAA5Q,KAAA+L,EAAAX,EAAApF,MAAA/D,EAAAgK,IACA2E,EAAA5Q,KAAA,UAGA4Q,EAAA/L,KAAA,MAoBA,SAAAiM,EAAAjG,GACA,IAeAkG,EAfAjC,EAAAjE,EAAAiE,UACAkC,EAAAnG,EAAAmG,QACAzE,EAAA1B,EAAA0B,MACA8D,EAAAxF,EAAAwF,SACAC,EAAAzF,EAAAyF,YACAC,EAAA1F,EAAA0F,SACAU,EAAApG,EAAAoG,UACAC,EAAArG,EAAAqG,MACAC,EAAAtG,EAAAuG,SACAA,OAAAjF,IAAAgF,OACAjC,EAAArE,EAAAqE,YACAmC,EAAAxG,EAAAwG,OACAC,EAAAzG,EAAAyG,QACAnC,EAAAtE,EAAAsE,KAGAoC,KACAf,EAAAF,EAAAD,EAAA9L,UAAA8L,EAAAI,QACAe,EAAAlB,EAAA,0BACA9D,EAAAD,GAAAD,EAAAC,GAoCA,OAnCAyE,EAAAzI,QAAA,SAAA6C,GACAmG,EAAAnG,QAEA0D,EAAAvG,QAAA,SAAAmH,GACAsB,EAAAzI,QAAA,SAAA6C,GACAmG,EAAAnG,GAAApL,KAAA0P,EAAAtE,WAGA2F,EAAA1I,OAAAC,KAAAiJ,GAAAnC,IAAA,SAAAhE,EAAAC,GACA,IAAAkE,EAAA,UAAAL,EA7CA,SAAAqC,EAAApC,GAIA,IAHA,IAAAzI,EAAAF,KAAAE,IAAAsE,MAAA,KAAAmE,GAEAK,KACAhQ,EAFAgH,KAAAC,IAAAuE,MAAA,KAAAmE,GAEqB3P,GAAAkH,EAAUlH,IAAA,CAC/B,IAAA6L,EAAA8D,EAAA5Q,QAAAiB,IACA6L,EACAmE,EAAAxP,KAAAuR,EAAAlG,IAEAmE,EAAAxP,KAAA,MAGA,OAAAwP,EAiCAiC,CAAAF,EAAAnG,GAAA+D,GAAAoC,EAAAnG,GACAsG,EAAA7H,GACAxI,KAAA,MAAAkP,EAAAnF,GAAAmF,EAAAnF,KACAnJ,MAAAmP,EAAA7S,QAAA6M,GAAA,aACAmE,QACOiC,GAAAhB,EAAAjS,QAAA6M,GAAA,SAEPmB,GAAAC,EAAApB,KAAAsG,EAAAnF,MAAAC,EAAApB,IAEA8F,IAAAQ,EAAAR,SACAD,IAAAS,EAAAT,aAEA,IAAAU,EAAAL,GA9VA,SAAAtS,EAAAF,EAAA8S,GACA,IAAA9S,EAAA,OAAAE,EACA,IACAkM,EAAAlM,EASA,OAVAF,EAAAQ,MAAA,KAEAuS,KAAA,SAAAzG,EAAAC,GACA,QAAAc,IAAAjB,EAAAE,GAEA,OADAF,EAAA0G,GACA,EAEA1G,IAAAE,KAGAF,EAkVA4G,CAAAJ,EAAA,4BAWA,MAVA,UAAAxC,IACAwC,EAAAL,SACAK,EAAAK,eAAA,KACA,MAAAJ,MAAA/C,IAGA,MAAA+C,GACA1G,EAAAyG,EAAA,2BAAAC,GAGAD,KAGAhS,QAAAqR,EAGA,SAAAiB,EAAAnH,GACA,IAAAmG,EAAAnG,EAAAmG,QACAT,EAAA1F,EAAA0F,SACA0B,EAAApH,EAAAoH,WAEA,OAAAA,GAAA1B,GAKAhB,KAJAgB,EAAAS,EAAA5B,IAAA,SAAAhE,GACA,aAAAmF,EAAAnF,KAAAmF,EAAAnF,KACK4F,EAGL3E,UAAA,SAAAhL,GACA,aAAA4Q,EAAA5Q,GAAA4Q,EAAA5Q,QAP0CkO,KAAAyB,GAY1C,SAAAkB,EAAAC,EAAAnD,GACA,OAAAmD,EAAA/C,IAAA,SAAAM,GACA,OAAAA,EAAAV,EAAA,MAIA,IAAAoD,EAAA,SAAAC,EAAAF,EAAAG,EAAAC,GACA,IAAAzD,EAAApD,EAAAyG,GACAK,EAAAF,EAAAjC,SACAA,OAAAlE,IAAAqG,KAAwDA,EACxDC,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,GAAAJ,EAAA,IAAAI,EACAC,EAAAJ,EAAA/F,MACAA,OAAAJ,IAAAuG,KAAkDA,EAClDC,EAAAL,EAAArD,YACAA,OAAA9C,IAAAwG,KACAC,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACAC,EAAAP,EAAAQ,UACAA,OAAA3G,IAAA0G,KACAE,EAAAT,EAAAtC,MACAA,OAAA7D,IAAA4G,IAAA,MAAAA,EACAC,EAAAV,EAAA7L,IACAA,OAAA0F,IAAA6G,GAAA,WAAAA,EACAC,EAAAX,EAAA5L,IACAA,OAAAyF,IAAA8G,GAAA,WAAAA,EACAC,EAAAZ,EAAAL,WACAA,OAAA9F,IAAA+G,KAA4DA,EAC5DC,EAAAb,EAAA/B,SACAA,OAAApE,IAAAgH,KAAwDA,EACxDjC,EAAAoB,EAAApB,MACAD,EAAAqB,EAAArB,UACAG,EAAAkB,EAAAlB,SACAgC,EAAAd,EAAAjB,OACAA,OAAAlF,IAAAiH,EAAA,QAAAA,EACA9B,EAAAgB,EAAAhB,QACA+B,EAAAd,EAAAc,eACAC,EAAAf,EAAAe,cAEAtC,EAAAqB,EAAAtR,QACAsP,EAAAI,KAAAJ,EAAAkD,OACAvC,EAAAX,EAAAI,IAAA+C,OAAAnD,EAAAkD,QACKlD,EAAAkD,SAAAlD,EAAA9L,MACLyM,EAAAX,EAAAkD,OACKjB,EAAAtB,QACLA,EAAAsB,EAAAtB,QAEAA,EAAAjR,OAAAsS,EAAA9T,QAAAyQ,EAAA,OAEA,IAAAe,EAAAuC,EAAAmB,YAAA,mBACAvE,EAAAoD,EAAAoB,WAAA,WACA5D,EAAAwC,EAAAqB,cACA5E,EAAAuD,EAAAsB,WAAA,GAGA,GAAAd,EAAA,CACA,IAAAe,EAAAf,EAAA5B,MACA4C,EAAAhB,EAAAgB,MAEAD,GAAAC,EAGAhF,EAAAiF,KAAA,SAAAC,EAAAC,GACA,eAAAH,EACAE,EAAAH,GAAAI,EAAAJ,GAEAI,EAAAJ,GAAAG,EAAAH,KANAK,QAAAC,KAAA,6CAWA,IAAAhF,EAAA+C,EAAApD,EAAAE,GAEAoF,EAAAd,GAAAtB,GAAgDhB,UAAAT,WAAA0B,eAChDoC,EAAAxF,GACAC,YACAC,cACAC,YACAC,cACAC,cACAC,SAEAmF,EAAAzE,GACAC,cACAC,cACAd,cACAhD,QACA+D,QACAvJ,MACAC,QAqBA,OADmB6N,OAAAH,EAAAC,QAAAtD,OAlBnBD,GACAhC,YACAkC,UACAzE,QACA8D,WACAC,aA3CA,EA4CAC,WACAU,YACAC,QACAE,WACAlC,cACAF,YACAqC,SACAC,UACAnC,SAImBmF,QAAAE,QADnBnB,GAAAjD,GADyBC,WAAAC,aAtDzB,EAsDyBP,cAAA9D,QAAAsE,eAMzBkE,EAAA,SAAApC,EAAAF,EAAAG,EAAAoC,GACA,IAAA5F,EAAApD,EAAAyG,GACAwC,EAAArC,EAAAjC,SACAA,OAAAlE,IAAAwI,KAAyDA,EACzDC,EAAAtC,EAAAtD,UACAA,OAAA7C,IAAAyI,GAAAvC,EAAA,IAAAuC,EACAC,EAAAvC,EAAA/F,MACAA,OAAAJ,IAAA0I,KAAmDA,EACnDC,EAAAxC,EAAArD,YACAA,OAAA9C,IAAA2I,KACAC,EAAAzC,EAAArG,MACAA,OAAAE,IAAA4I,EAAA,EAAAA,EACAC,EAAA1C,EAAAQ,UACAA,OAAA3G,IAAA6I,KACAC,EAAA3C,EAAAtC,MACAA,OAAA7D,IAAA8I,IAAA,MAAAA,EACAC,EAAA5C,EAAA7L,IACAA,OAAA0F,IAAA+I,GAAA,WAAAA,EACAC,EAAA7C,EAAA5L,IACAA,OAAAyF,IAAAgJ,GAAA,WAAAA,EACAC,EAAA9C,EAAA/B,SACAA,OAAApE,IAAAiJ,KAAyDA,EACzDC,EAAA/C,EAAAL,WACAA,OAAA9F,IAAAkJ,KAA6DA,EAC7DnE,EAAAoB,EAAApB,MACAD,EAAAqB,EAAArB,UACAG,EAAAkB,EAAAlB,SACAkE,EAAAhD,EAAAjB,OACAA,OAAAlF,IAAAmJ,EAAA,QAAAA,EACAhE,EAAAgB,EAAAhB,QAGA,GAAAwB,EAAA,CACA,IAAAyC,EAAAzC,EAAA5B,MACA4C,EAAAhB,EAAAgB,MAEAyB,GAAAzB,EAGAhF,EAAAiF,KAAA,SAAAC,EAAAC,GACA,eAAAH,EACAE,EAAAuB,GAAAtB,EAAAsB,GAEAtB,EAAAsB,GAAAvB,EAAAuB,KANArB,QAAAC,KAAA,6CAYA,IAAAd,EAAAqB,EAAArB,eACAC,EAAAoB,EAAApB,cAEAtC,EAAAqB,EAAAtR,QACAsP,EAAA/L,MAAA+L,EAAA9L,MACAyM,EAAAX,EAAA/L,KAAAkP,OAAAnD,EAAA9L,OACK8L,EAAA/L,OAAA+L,EAAA9L,MACLyM,EAAAX,EAAA/L,KACKgO,EAAAtB,QACLA,EAAAsB,EAAAtB,QAEAA,EAAAjR,OAAAsS,EAAA9T,QAAAyQ,EAAA,OAEA,IAAAe,EAAAuC,EAAAoB,YAAA,mBACAxE,EAAAoD,EAAAmB,WAAA,WACA3D,EAAAwC,EAAAsB,cACA7E,EAAAuD,EAAAqB,WAAA,GAEAxE,EAAA+C,EAAApD,EAAAE,GAEAoF,EAAAd,GAAAtB,GAAgDhB,UAAAT,WAAA0B,eAChDqC,EAAAzF,GACAC,YACAC,cACAC,YACAC,cACAC,cACAC,SA8BA,OADmBoF,OAAAH,EAAAC,MA3BnBxE,GACAC,cACAC,cACAd,cACAhD,QACA+D,QACAvJ,MACAC,QAoBmBqK,OAlBnBD,GACAhC,YACAkC,UACAzE,QACA8D,WACAC,aA1BA,EA2BAC,WACAU,YACAC,QACAE,WACAlC,cACAF,YACAqC,SACAC,UACAnC,SAImBmF,QAAAE,QADnBnB,GAAAjD,GADyBC,WAAAC,aArCzB,EAqCyBP,cAAA9D,QAAAsE,eAMzBiF,GAAiBtT,OAAA,WACjB,IAAqBuT,EAArBhX,KAAqBiX,eAA4BC,EAAjDlX,KAAiDmX,MAAAD,IAAAF,EAA4B,OAAAE,EAAA,OAAkBE,YAAA,+BAA4CF,EAAA,OAAcE,YAAA,WAAwBF,EAAA,OAAcE,YAAA,oBAAiCF,EAAA,OAAcE,YAAA,WAAAC,OAAkCC,QAAA,iBAA6BJ,EAAA,UAAiBE,YAAA,OAAAC,OAA8BE,GAAA,KAAAC,GAAA,KAAAC,EAAA,KAAAC,KAAA,mBACvVC,oBAGLC,GAAmBnU,OAAA,WACnB,IAAqBuT,EAArBhX,KAAqBiX,eAAwD,OAA7EjX,KAAiDmX,MAAAD,IAAAF,GAA4B,OAAkBI,YAAA,wBAA/FpX,KAAoI6X,GAAA,aAC/HF,oBA6BL,SAAAG,EAAA7E,EAAA8E,GACAnO,OAAAC,KAAAkO,GAAAjO,QAAA,SAAAC,GACAgO,EAAAhO,KAAAkJ,EAAAlJ,GAAAgO,EAAAhO,MAUA,IAAAiO,GACAvU,OAAA,SAAAwU,GACA,OAAAA,EAAA,OACAC,QApmBAC,EAomBAnY,KAAAoY,SAAAxV,MAAA5C,KAAAoY,SAAAC,cAnmBAF,EAAA5P,QAAA,2BAAA+P,gBAomBAC,MAAAvY,KAAAwY,cACOP,EAAA,OACPM,MAAAvY,KAAAwY,YACAN,OAAgBO,uBAAAzY,KAAA0Y,WAAA1Y,KAAA2Y,SAChBC,IAAA,WACOX,EAAAL,GACPW,OAAgBM,QAAA7Y,KAAA0Y,UAAA,aACTT,EAAAlB,GACPwB,OAAgBM,QAAA7Y,KAAA2Y,QAAA,aACT3Y,KAAA8Y,OAAAC,UA9mBP,IAAAZ,GAknBArV,OACAgO,MAAatN,MAAAoG,OAAAiC,OAAAkN,QAAA,WACb,WAGAlF,UAAiBrQ,KAAAoG,OAAAmP,QAAA,WACjB,WAGAC,OAAcxV,KAAA2N,OAAA4H,QAAA,QACdE,QAAezV,KAAA2N,OAAA4H,QAAA,SACfG,cAAqB1V,KAAA2V,UACrBC,aAAoB5V,KAAA2V,UACpBE,gBAAuB7V,KAAA2V,UACvBG,oBAA2B9V,KAAA2V,UAC3BI,QAAe/V,KAAAoG,QACfjE,MAAanC,MAAAoG,OAAAiC,QACb2N,QAAehW,KAAAqI,OACf+I,gBAAuBpR,KAAAiW,QAAAV,SAAA,GACvBlE,eAAsBrR,KAAAiW,QAAAV,SAAA,GACtBW,gBAAuBlW,KAAA2N,QACvBwI,UAAiBnW,KAAAoG,QACjBgQ,UAAiBpW,KAAAoG,QACjBiQ,WAAkBrW,KAAAoG,QAClBkQ,WAAkBtW,MAAAoG,OAAAiC,QAClBkO,UAAiBvW,MAAAoG,OAAAiC,QACjBmO,SAAgBxW,MAAAoG,OAAAiC,QAChBoO,aAAoBzW,KAAAoG,OAAAmP,QAAA,WACpB,WAGAmB,OAAAtQ,OAAAiC,OACAiK,QAAAlM,OAAAiC,OACAgK,OAAAjM,OAAAiC,OACA+J,OAAAhM,OAAAiC,OACAsO,MAAAvQ,OACAmM,QAAAnM,OACAwQ,aAAAxQ,OAAAiC,OACAwO,OAAAzQ,OAAAiC,OACAyO,KAAA1Q,OAAAiC,OACA0O,UAAA3Q,OAAAiC,OACA2O,SAAA5Q,OAAAiC,OACAyG,QAAA1I,OAAAiC,OACA4O,iBAAA7Q,OAAAuH,QACAuJ,WAAA9Q,OAAAiC,OACArK,UAAAoI,OACA+Q,MAAA/Q,OACAgR,UAAAzJ,OACAwH,QAAAc,QACAf,UAAAe,QACA/P,OAAAE,OACAiR,YAAmBrX,KAAAiW,QAAAV,SAAA,GACnB+B,kBAAyBtX,KAAAuX,OAAAhC,QAAA,KACzBiC,kBAAyBxX,KAAA2V,UACzB8B,YAAmBzX,KAAAiW,QAAAV,SAAA,GACnBmC,aAAoB1X,KAAAuX,OAAAhC,QAAA,KACpBoC,aAAoB3X,KAAAuX,OAAAhC,QAAA,GACpBqC,eAAsB5X,MAAAiW,QAAA7P,QAAAmP,SAAA,GACtBsC,kBAAA5B,QACA6B,eAAAzP,OAGA0P,OACAzK,MACA0K,MAAA,EACAC,QAAA,SAAA1O,GACAA,GACA/M,KAAA0b,kBAKA7H,UACA2H,MAAA,EACAC,QAAA,SAAA1O,GACAA,EAAAvJ,MAAAxD,KAAA2b,WAAA3b,KAAA4b,aAAA5b,KAAA2b,SAAA5O,EAAAvJ,OACAxD,KAAA0b,kBAIA1C,MAAA,iBACAC,OAAA,iBAEAM,QACAiC,MAAA,EACAC,QAAA,oBAGAd,OACAa,MAAA,EACAC,QAAA,eAGAb,UAAA,cAEAK,WAAA,qBAGAY,UACArD,YAAA,WACA,OACAQ,MAAAhZ,KAAAgZ,MACAC,OAAAjZ,KAAAiZ,OACA7K,SAAA,aAGA0N,WAAA,WACA,OAAA9b,KAAAwZ,QAAAxZ,KAAA2a,OAAA3a,KAAA2a,MAAAxU,OAAAJ,IAIAgW,SACAC,YAAA,WACA,GAAAhc,KAAA4b,aAAA,CACA,IAAA9K,EAAA9Q,KAAA8Q,KACAmL,EAAAnL,EACAoL,EAAAD,EAAArI,QACAA,OAAAlG,IAAAwO,OACAC,EAAAF,EAAAvI,KACAA,OAAAhG,IAAAyO,OAEArI,GACAc,eAAA5U,KAAA4U,eACAC,cAAA7U,KAAA6U,cACAzR,QAAApD,KAAAoD,QACA+C,MAAAnG,KAAA8b,WACAd,iBAAAhb,KAAAgb,iBACAoB,MAAApc,KAAAoc,OAEApc,KAAAkZ,eAAApI,EAAA9Q,KAAAkZ,aAAApI,IAEA,IAAArI,EAAAzI,KAAA4b,aAAAhI,EAAAF,EAAA1T,KAAA6T,SAAAC,GACArL,IACA,mBAAAA,EAAA0G,KACA1G,EAAA0G,KAAAnP,KAAAqc,gBAEArc,KAAAqc,eAAA5T,MAIA6T,eAAA,WACAtc,KAAAuc,UAAAvc,KAAAwc,SAEAA,OAAA,WACAxc,KAAAqb,kBAKArb,KAAAyc,gBAJAzc,KAAA0c,KAAA1c,KAAA0c,IAAAC,aAAA3c,KAAA0c,IAAAE,cACA5c,KAAAyc,iBAMAA,cAAA,WACAzc,KAAAoD,SAAApD,KAAAoD,QAAAoZ,UAEAH,eAAA,SAAA5T,GACA,IAAAoU,EAAA7c,KAmBA,GAhBAA,KAAA0Z,gBAAAjR,EAAAqN,SACArN,EAAAqN,OAAA9V,KAAA0Z,gBAAA,KACA,gBAAA5Z,QAAAE,KAAA0Z,kBACAjR,EAAAqN,OAAA9D,IAAA,SACAvJ,EAAAqN,OAAAgH,OAAA,aAIArU,EAAAtC,MAAAnG,KAAA8b,WAEAxV,EAAAwD,QAAA,SAAAiT,GACAF,EAAAE,KAAAtU,EAAAsU,GAAAF,EAAAE,MAGA/c,KAAAwB,WApMA,SAAAiH,EAAAjH,GACAoI,OAAAC,KAAArI,GAAAsI,QAAA,SAAAC,GACAtB,EAAAsB,GAAAvI,EAAAuI,KAkMAiT,CAAAvU,EAAAzI,KAAAwB,WAEAxB,KAAA4Z,UAAA5Z,KAAA2Z,UAAA3Z,KAAA6Z,UAAA,CACA,IAAA9B,GACA6B,SAAA5Z,KAAA4Z,SACAD,SAAA3Z,KAAA2Z,SACAE,UAAA7Z,KAAA6Z,WAEAvH,EAAA7J,EAAA6J,OACAxG,EAAAwG,GACAA,EAAAxI,QAAA,SAAA6C,GACAmL,EAAAnL,EAAAoL,KAEWnY,EAAA0S,IACXwF,EAAAxF,EAAAyF,GAIA/X,KAAA0J,QAtPA,SAAAjB,EAAAiB,GACAE,OAAAC,KAAAH,GAAAI,QAAA,SAAA/G,GACA,IAAAwE,EAAAmC,EAAA3G,IACAA,EAAAjD,QAAA,KAEA0M,EAAA/D,EAAA1F,EAAAwE,GACO,mBAAAA,EAEPkB,EAAA1F,GAAAwE,EAAAkB,EAAA1F,IAGA+I,EAAArD,EAAA1F,KAAAnD,EAAA6I,EAAA1F,GAAA,IAEA0F,EAAA1F,GAAA+G,QAAA,SAAAmT,EAAArQ,GACAnE,EAAA1F,GAAA6J,GAAApB,KAA8CyR,EAAA1V,KAErC3H,EAAA6I,EAAA1F,IAET0F,EAAA1F,GAAAyI,KAAqC/C,EAAA1F,GAAAwE,GAErCkB,EAAA1F,GAAAwE,IAkOA2V,CAAAzU,EAAAzI,KAAA0J,QACA1J,KAAAoZ,cAAA3Q,EAAAzI,KAAAoZ,YAAA3Q,IACA,IAAA2S,EAAApb,KAAAob,eAEApb,KAAA6T,SAAAsJ,OAAAnd,KAAA6T,SAAAuJ,MAAAxd,EAAAwb,KACAA,GAAA,GAGApb,KAAAsb,gBAAAtb,KAAAsb,eAAAra,SACAjB,KAAAsb,eAAAxR,QAAA,SAAA6C,GACA,IAAApF,EAAAkB,EAAAkE,GACApF,KApzBA,SAAA8V,EAAAC,EAAAC,GACA,GAAAD,IAAAC,EAAA,SACA,UAAAD,GAAA,OAAAC,GAAA,WAAAvQ,EAAAsQ,IAAA,WAAAtQ,EAAAuQ,GACA,OAAAD,IAAAC,EAGA,QAAAxT,KAAAuT,EACA,GAAAjQ,EAAAiQ,EAAAvT,GAAA,CACA,IAAAyT,EAAAF,EAAAvT,GACA0T,EAAAF,EAAAxT,GACA2T,EAAA1Q,EAAAwQ,GAEA,iBAAAxQ,EAAAyQ,GACA,SACO,cAAAC,GACP,IAAAL,EAAAG,EAAAC,GAAA,cACO,GAAAD,IAAAC,EACP,SAGA,QAAAE,KAAAJ,EACA,GAAAlQ,EAAAkQ,EAAAI,IACA,cAAA3Q,EAAAsQ,GAAAK,GAAA,SAGA,SA4xBAN,CAAA9V,EAAAsV,EAAAe,OAAAjR,IAGAkQ,EAAAe,OAAAjR,GAAAM,EAAA1F,GAFAkB,EAAAkE,QAAAe,KAMA9N,EAAAwb,GACAA,EAAAyC,UAAA,EAEAzC,GAAA,GAGApb,KAAA8d,eACA9d,KAAAoD,QAAA2a,UAAAtV,EAAA2S,GACApb,KAAAge,MAAA,QAAAhe,KAAAoD,QAAAqF,EAAAxD,GACAjF,KAAAoc,MAAA,gBACApc,KAAAoc,MAAA,iBACApc,KAAAge,MAAA,aAAAhe,KAAAoD,QAAAqF,EAAAxD,IAEAjF,KAAA6a,YAAA7a,KAAAie,kBAAAxV,GACAzI,KAAAqZ,gBAAArZ,KAAAqZ,eAAArZ,KAAAoD,QAAAqF,EAAAxD,GACAjF,KAAAsZ,qBAAAtZ,KAAAoc,MAAA,qBACApc,KAAAoc,MAAA,sBACApc,KAAAsZ,mBAAAtZ,KAAAoD,QAAAqF,EAAAxD,MAGAgZ,kBAAA,SAAAxV,GACA,IAAAyV,EAAAle,KAEA8a,EAAA9a,KAAA8a,iBACA0B,EAAAxc,KAAAwc,OAEAxc,KAAA0c,IAAAC,aAAA3c,KAAA0c,IAAAE,aACAJ,IAEAxc,KAAAuc,UAAA,SAAA4B,GACAD,EAAAxB,IAAAC,aAAAuB,EAAAxB,IAAAE,aACAJ,IAEAlQ,WAAA,SAAA6R,GACA3B,IACA0B,EAAAxB,IAAAC,aAAAuB,EAAAxB,IAAAE,cACAnH,QAAAC,KAAA,oCAEeoF,MAKfsD,kBAAA,SAAAnD,GACAA,IAAAjb,KAAAoc,MAAAiC,UAAAre,KAAAse,qBACArD,GAAAjb,KAAAoc,MAAAiC,UAAAre,KAAAue,wBAEAC,KAAA,WACA,IAAAxe,KAAAoD,QAAA,CACA,IAAAwX,EAAA5a,KAAA4a,WAAA5a,KAAA2a,OAAAzV,EACAlF,KAAAoD,QAAA6B,EAAAuZ,KAAAxe,KAAAye,MAAAC,OAAA9D,EAAA5a,KAAAia,aACAja,KAAA8Q,MAAA9Q,KAAA0b,gBACA1b,KAAA2e,mBACA3e,KAAAib,YAAAjb,KAAAse,sBAEAA,kBAAA,WACA3O,OAAAiP,iBAAA,SAAA5e,KAAA6e,eACA7e,KAAAoc,MAAAiC,UAAA,GAEAE,qBAAA,WACA5O,OAAAmP,oBAAA,SAAA9e,KAAA6e,eACA7e,KAAAoc,MAAAiC,UAAA,GAEAU,gBAAA,WACA,IAAAC,EAAAhf,KAEAif,EAAAjf,KAAAkf,UAAAvO,IAAA,SAAAwO,GACA,OAAAA,EAAAC,aAEAxV,OAAAC,KAAA7J,KAAAqf,QAAAvV,QAAA,SAAAhJ,GACA,KAAAme,EAAAnf,QAAAgB,MAAAuF,EAAAvG,QAAAgB,GAAA,CACA,IAAA+J,OACA,oCAAA/K,QAAAgN,EAAAkS,EAAAK,OAAAve,OACA+J,EAAA2Q,MAAA,GAEAwD,EAAAM,OAAAxe,EAAA,WACAke,EAAAtD,iBACa7Q,OAIb8T,iBAAA,WACA,IAAAY,EAAAvf,KAKAmM,EAAAnM,KACA6J,EAAAD,OAAAC,KAAA7J,KAAAuZ,YACA1P,EAAA5I,QAAA4I,EAAAC,QAAA,SAAA0V,IACA,IAAAD,EAAAE,iBAAA3f,QAAA0f,KACAD,EAAAE,iBAAAle,KAAAie,GACAD,EAAAnc,QAAAsc,GAAAF,EAAA,SAAAA,GACA,kBACA,GAAAA,KAAArT,EAAAoN,OAAA,CACA,QAAAoG,EAAA7a,UAAA7D,OAAAmL,EAAAP,MAAA8T,GAAAhC,EAAA,EAAiFA,EAAAgC,EAAahC,IAC9FvR,EAAAuR,GAAA7Y,UAAA6Y,GAGAxR,EAAAoN,OAAAiG,GAAAjT,MAAA,KAAAH,KAPA,CAUaoT,QAIbI,YAAA,SAAAjF,GACA3a,KAAA6f,QACA7f,KAAAoD,QAAA,KACApD,KAAAwe,QAEAqB,MAAA,WACA7f,KAAAib,YAAAjb,KAAAue,uBACAve,KAAAoD,QAAA2B,YAIA+a,QAAA,WACA9f,KAAAoD,QAAA,KACApD,KAAAyf,oBACAzf,KAAAoc,SACApc,KAAA4d,UACA5d,KAAA6e,cAAA7S,EAAAhM,KAAAwc,OAAAxc,KAAAkb,aACAlb,KAAA0b,cAAA1P,EAAAhM,KAAAgc,YAAAhc,KAAAmb,aACAnb,KAAA+e,mBAEAgB,QAAA,WACA/f,KAAAwe,QAEAwB,cAAA,WACAhgB,KAAA6f,SAIAI,UAAAhW,GAGAiW,GAAA1U,KAAyBwM,GACzBpV,KAAA,QACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAjI,QAKAwM,GAAA3U,KAA+BwM,GAC/BpV,KAAA,cACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAA5F,QAuLA,IAAAoK,GAAA,SAAAxM,EAAAF,EAAAG,EAAAC,GACAJ,EAAA5H,EAAA4H,QACAE,EAAA9H,EAAA8H,QACA,IAAAG,EAAAF,EAAAjC,SACAA,OAAAlE,IAAAqG,KAAwDA,EACxDsM,EAAAxM,EAAAoB,UACAA,OAAAvH,IAAA2S,GAAA,mBAAAA,EACAC,EAAAzM,EAAAmB,UACAA,OAAAtH,IAAA4S,EAAA,WAAAA,EACAC,EAAA1M,EAAAsB,UACAA,OAAAzH,IAAA6S,OACAvM,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,GAAAJ,EAAA,IAAAI,EACAwM,EAAA3M,EAAAqB,UACAA,OAAAxH,IAAA8S,OACAtM,EAAAL,EAAArD,YACAA,OAAA9C,IAAAwG,KACAuM,EAAA5M,EAAA4M,KACA3S,EAAA+F,EAAA/F,MACAwG,EAAAT,EAAAtC,MACAA,OAAA7D,IAAA4G,IAAA,MAAAA,EACAC,EAAAV,EAAA7L,IACAA,OAAA0F,IAAA6G,GAAA,WAAAA,EACAC,EAAAX,EAAA5L,IACAA,OAAAyF,IAAA8G,GAAA,WAAAA,EACAkM,EAAA7M,EAAA8M,YACAA,OAAAjT,IAAAgT,KACAvM,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACAM,EAAAZ,EAAAL,WACAA,OAAA9F,IAAA+G,KAA4DA,EAC5DC,EAAAb,EAAA/B,SACAA,OAAApE,IAAAgH,KAAwDA,EACxDjC,EAAAoB,EAAApB,MACAD,EAAAqB,EAAArB,UACAoO,EAAA/M,EAAA+M,UACAC,EAAAhN,EAAAgN,UACAjM,EAAAd,EAAAc,eACAC,EAAAf,EAAAe,cACAmG,EAAAlH,EAAAkH,iBAEAzI,EAAAqB,EAAAtR,QAEAsP,EAAA/L,MAAA+L,EAAA9L,MACAyM,EAAAX,EAAA/L,KAAAkP,OAAAnD,EAAA9L,OACK8L,EAAA/L,OAAA+L,EAAA9L,MACLyM,EAAAX,EAAA/L,KACKgO,EAAAtB,QACLA,EAAAsB,EAAAtB,QAEAA,EAAAjR,OAAAsS,EAAA9T,QAAAyQ,EAAA,OAGA,IAAAoF,EAAAd,GAtEA,SAAAzI,GACA,IAAAmG,EAAAnG,EAAAmG,QACAiB,EAAApH,EAAAoH,WACA1B,EAAA1F,EAAA0F,SAEA,OAAA0B,GAAA1B,GAKAhB,KAJAgB,EAAAS,EAAA5B,IAAA,SAAAhE,GACA,aAAAmF,EAAAnF,KAAAmF,EAAAnF,KACK4F,EAGL3E,UAAA,SAAAhL,GACA,aAAA4Q,EAAA5Q,GAAA4Q,EAAA5Q,QAP0CkO,KAAAyB,GAiE1CuO,EAAkDvO,UAAAiB,aAAA1B,aAClDiP,EAAAnM,GAjHA,SAAAxI,GACA,IAAAwF,EAAAxF,EAAAwF,SACAqD,EAAA7I,EAAA6I,UACAzH,EAAApB,EAAAoB,MACAsE,EAAA1F,EAAA0F,SACAkJ,EAAA5O,EAAA4O,iBAEAgG,EAAApP,EAAA9L,UACAmb,EAAAnP,EAAAkP,EAAArQ,IAAA,SAAAhE,GACA,YAAAe,IAAAoE,EAAAnF,KAAAmF,EAAAnF,KACKqU,EACL,OACA/O,QAAA,OACArE,UAAA,SAAAsE,GACA,GAAA8I,EACA,OAAAA,EAAAzO,MAAA,KAAAzH,WAEA,IAAAqN,KACA+O,EAAAhP,EAAA,GACAtP,EAAAse,EAAAte,KACAue,EAAAD,EAAAC,eAEAjH,EAAAtX,GAAAue,EAeA,OAdAhP,EAAA5Q,KAAA2Y,EAAA,QACAhI,EAAApI,QAAA,SAAAoE,GACA,IAIAkT,EAJAhP,EAAAlE,EAAAkE,WACAtB,EAAA5C,EAAA4C,KACAuQ,EAAAnT,EAAAmT,OAGA7d,GAAAyd,EAAAnhB,QAAAsS,GAAA6C,EAAA,GAAAA,EAAA,GACAqM,EAAAxV,EAAAgF,KAAA,GAAAA,EACAsQ,EAAA9T,EAAAgU,EAAA9d,EAAAgK,GACA2E,EAAA5Q,KAAA8f,GACAlP,EAAA5Q,KAAA6Q,EAAA,KAAAgP,GACAjP,EAAA5Q,KAAA,UAEA4Q,EAAA/L,KAAA,MA4EAmb,EACA3P,WACAqD,YACAzH,QACAsE,WACAkD,YACAgG,qBAEAnF,EAhPA,SAAAzJ,GACA,IAAAmE,EAAAnE,EAAAmE,UACAmD,EAAAtH,EAAAsH,KACAwB,EAAA9I,EAAA8I,UACA1E,EAAApE,EAAAoE,YACAwE,EAAA5I,EAAA4I,UAEA,OAAAzE,EAAAI,IAAA,SAAAhE,EAAAC,GACA,OACApJ,KAAAwR,EACApE,aAAA,SACAC,QAAA,GACAjO,KAAAsS,EAAAtI,IAAA,GACAtH,UAAmBD,MAAA,EAAAub,WAAyBza,MAAA,SAC5C2K,KAAA4C,EAAA/C,IAAA,SAAAM,GACA,OAAAA,EAAAtE,KAEAtH,KAAAmL,KA+NAgR,EACAjR,YACAmD,OACAwB,YACA1E,cACAwE,cAEAY,EA1KA,SAAAxJ,GAoCA,IAnCA,IAAA+I,EAAA/I,EAAA+I,UACAF,EAAA7I,EAAA6I,UACAzE,EAAApE,EAAAoE,YACAe,EAAAnF,EAAAmF,MACAvJ,EAAAoE,EAAApE,IACAC,EAAAmE,EAAAnE,IACAuF,EAAApB,EAAAoB,MAEAiU,GACAje,KAAA,QACA8B,UACAD,MAAA,GAEAA,KAAAmL,GAEAoF,KAEAlE,EAAA,SAAA3Q,GACAkU,EAAAlU,GACA6U,EAAA7U,GAAAyK,KAA8BiW,GAC9BvQ,WACAtD,UAAA,SAAAL,GACA,OAAAD,EAAAC,EAAA0H,EAAAlU,GAAAyM,OAKAoI,EAAA7U,GAAAyK,KAA8BiW,GAE9B7L,EAAA7U,GAAA6B,KAAAuS,EAAApU,IAAA,GACA6U,EAAA7U,GAAAwQ,QAAAxQ,KAAA,EACA6U,EAAA7U,GAAAiH,MAAAjH,IAAA,KACA6U,EAAA7U,GAAAkH,MAAAlH,IAAA,MAGAA,EAAA,EAAmBA,EAAA,EAAOA,IAC1B2Q,EAAA3Q,GAEA,OAAA6U,EAmIA8L,EACAvM,YACAF,YACAzE,cACAe,QACAvJ,MACAC,MACAuF,UAkBA,OADmBsI,OAAAH,EAAAE,QAAAvD,OAzPnB,SAAAlG,GACA,IAAAsH,EAAAtH,EAAAsH,KACA9B,EAAAxF,EAAAwF,SACAW,EAAAnG,EAAAmG,QACAkO,EAAArU,EAAAqU,KACA3S,EAAA1B,EAAA0B,MACA6S,EAAAvU,EAAAuU,YACA7O,EAAA1F,EAAA0F,SACAW,EAAArG,EAAAqG,MACAD,EAAApG,EAAAoG,UACAoO,EAAAxU,EAAAwU,UACAC,EAAAzU,EAAAyU,UACAtQ,EAAAnE,EAAAmE,UAEA+B,KACAqP,KACA5T,EAAAD,GAAAD,EAAAC,GAoCA,OAnCAyE,EAAAzI,QAAA,SAAA6C,GACAgV,EAAAhV,QAEA+G,EAAA5J,QAAA,SAAAmH,GACAsB,EAAAzI,QAAA,SAAA6C,GACA,IAAApF,EAAA,KACA,MAAA0J,EAAAtE,GACApF,EAAA0J,EAAAtE,GACSgU,IACTpZ,EAAA,GAEAoa,EAAAhV,GAAApL,MAAA0P,EAAAV,EAAA,IAAAhJ,QAGAgL,EAAAzI,QAAA,SAAA6C,GACA,IAAAsG,GACArQ,KAAA,MAAAkP,EAAAnF,GAAAmF,EAAAnF,KACAnJ,KAAA,OACAsN,KAAA6Q,EAAAhV,IAGA8T,IAAAxN,EAAA4N,WAAwCe,YACxChQ,EAAA9L,QACAmN,EAAA4O,YAAAjQ,EAAA9L,MAAAhG,QAAA6M,GAAA,KAGAmB,GAAAC,EAAApB,KAAAsG,EAAAnF,MAAAC,EAAApB,IAEA8F,IAAAQ,EAAAR,SACAD,IAAAS,EAAAT,aACAoO,IAAA3N,EAAA2N,aACAC,IAAA5N,EAAA4N,aAEAvO,EAAA/Q,KAAA0R,KAEAX,EAsLAwP,EACApO,OACA9B,WACAW,UACAkO,OACA3S,QACA6S,cACA7O,WACAW,QACAD,YACAoO,YACAC,YACA7L,YACAzE,cAEmBqF,QAAAG,QAAAgL,IAInBgB,GAAAvW,KAA0BwM,GAC1BpV,KAAA,SACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAwE,SAMA4B,IAAA,QACAC,IAAA,QA4LA,IAAAC,GAAA,SAAAtO,EAAAF,EAAAG,EAAAC,EAAAqO,GACA,IAAA9R,EAAApD,EAAAyG,GACA0O,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,EAAA,SAAAA,EACAE,EAAAzO,EAAAyO,YACAtO,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACAuO,EAAA1O,EAAAtB,QACAA,OAAA7E,IAAA6U,EAAA3O,EAAA,GAAA2O,EACAC,EAAA3O,EAAA4O,SACAA,OAAA/U,IAAA8U,KACAE,EAAA7O,EAAA8O,OACAA,OAAAjV,IAAAgV,EAAAP,EAAAM,EAAAR,GAAAD,GA1MA,IA0MAU,EACAE,EAAA/O,EAAArP,QACAA,OAAAkJ,IAAAkV,EAzMA,IAyMAA,EACAC,EAAAhP,EAAAiP,YACAA,OAAApV,IAAAmV,EAAA,GAAAA,EACAE,EAAAlP,EAAAmP,aACAA,OAAAtV,IAAAqV,KACAE,EAAApP,EAAAqP,eACAA,OAAAxV,IAAAuV,KACA9O,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACAM,EAAAZ,EAAAL,WACAA,OAAA9F,IAAA+G,KAA4DA,EAC5D0O,EAAAtP,EAAApB,MACAA,OAAA/E,IAAAyV,KACAC,EAAAvP,EAAAwP,MACAA,OAAA3V,IAAA0V,KACAE,EAAAzP,EAAA0P,aACAA,OAAA7V,IAAA4V,EAAA,EAAAA,EACAE,EAAA3P,EAAA2P,UACAhR,EAAAqB,EAAArB,UACAoC,EAAAd,EAAAc,eACAC,EAAAf,EAAAe,cA4CA,OA1CA0O,GAAAlT,EAAAiF,KAAA,SAAAC,EAAAC,GACA,OAAAA,EAAAjD,GAAAgD,EAAAhD,MAwCmBD,OAtQnB,SAAAlG,GACA,IAAAiE,EAAAjE,EAAAiE,UACAgS,EAAAjW,EAAAiW,SACAC,EAAAlW,EAAAkW,YACA/R,EAAAnE,EAAAmE,UACAgC,EAAAnG,EAAAmG,QACAoQ,EAAAvW,EAAAuW,OACAne,EAAA4H,EAAA5H,QACAwe,EAAA5W,EAAA4W,aACAE,EAAA9W,EAAA8W,eACA1V,EAAApB,EAAAoB,MACAiV,EAAArW,EAAAqW,SACAhQ,EAAArG,EAAAqG,MACA4Q,EAAAjX,EAAAiX,MACAE,EAAAnX,EAAAmX,aACApB,EAAA/V,EAAA+V,OACAqB,EAAApX,EAAAoX,UACAhR,EAAApG,EAAAoG,UAGAF,KACAmR,KACAC,KACAL,GACAA,EAAAvZ,QAAA,SAAA6Z,EAAA/W,GACA+W,EAAA7Z,QAAA,SAAA6C,GACA8W,EAAA9W,GAAAC,MAGAyD,EAAAvG,QAAA,SAAAmH,GACA,IAAA2S,EAAAH,EAAAxS,EAAAV,SACA7C,IAAAkW,IACAF,EAAAE,GACAF,EAAAE,GAAAriB,KAAA0P,GAEAyS,EAAAE,IAAA3S,OAKAyS,EAAAniB,KAAA8O,GAEA,IAAAwT,GACArgB,KAAA,MACAwf,eACAE,iBACAT,WACAqB,QAAA,MAAAtf,IAEAuf,EAAAL,EAAAziB,OA0CA,GAzCAyiB,EAAA5Z,QAAA,SAAAka,EAAApX,GACA,IAAAqG,EAAAzH,GAAiCsF,SAAW+S,GAC5CI,EAAAtB,EAAAoB,EACA,GAAAnX,EAEO,CACP,IAAAsX,EAAAD,EAAAtB,GAAA,EAAAoB,IAAA,EAAAnX,EAAA,GACAuX,EAAAD,EAAAvB,GAAA,EAAAoB,GACA9Q,EAAA0P,QAAAuB,EAAAC,QAJAlR,EAAA0P,OAAAR,EAAAQ,EAAAsB,EAMAF,EAAA,OAAAnX,IACAqG,EAAAR,OACAmP,QAAmBxT,SAAA,WAGnBqE,IAAAQ,EAAAR,SACA+Q,IAAAvQ,EAAAuQ,aACAhR,IAAAS,EAAAT,aACA8P,IACArP,EAAAR,OACAmP,QACAvc,MAAA,EACA+I,SAAA2V,EAAA,OAAAnX,EAAA,kBACAgB,UAAA,SAAAjB,GACA,IAAAwF,KAIA,OAHAA,EAAA5Q,KAAAoL,EAAA/J,KAAA,KACAuP,EAAA5Q,KAAA+L,EAAAX,EAAApF,MAAA8a,EAAA7U,IACA2E,EAAA5Q,KAAA,IAAAoL,EAAAyX,QAAA,MACAjS,EAAA/L,KAAA,SAKA6M,EAAAnC,KAAAkT,EAAArT,IAAA,SAAAM,GACA,OACArO,KAAAqO,EAAAV,GACAhJ,MAAA0J,EAAAsB,MAGAD,EAAA/Q,KAAA0R,KAEAsQ,KAAAjR,EAAA,GAAAxB,KAAA7P,OAAA,CACA,IAAAojB,EAAA/R,EAAA,GAAAxB,KAEAwT,EAAA,EADAD,EAAA/hB,MAAAihB,EAAAc,EAAApjB,QAEA6I,QAAA,SAAA6C,GACA2X,GAAA3X,EAAApF,QAEA+K,EAAA,GAAAxB,KAAAuT,EAAA/hB,MAAA,EAAAihB,GACAjR,EAAA,GAAAxB,KAAAvP,MAA2BqB,KAAA,KAAA2E,MAAA+c,IAE3B,OAAAhS,EA+IAiS,EAnBAlU,YACAgS,WACAC,cACA/R,YACAgC,UACAoQ,SACAne,UACAwe,eACAE,iBACA1V,QACAiV,WACAhQ,QACA4Q,QACA7P,aACA+P,eACApB,SACAqB,YACAhR,cAoBmBsD,OATnBjB,GArJA,SAAAzI,GACA,IAAAiE,EAAAjE,EAAAiE,UACAE,EAAAnE,EAAAmE,UACAuS,EAAA1W,EAAA0W,YACAtP,EAAApH,EAAAoH,WACA6P,EAAAjX,EAAAiX,MACAE,EAAAnX,EAAAmX,aAEA5N,KACA8N,KACA,GAAAJ,EACAA,EAAAvZ,QAAA,SAAA0a,GACAA,EAAA1a,QAAA,SAAA6C,GACA8W,EAAAliB,KAAAoL,OAGAgJ,EAAA8N,OACK,GAAAF,KAAAlT,EAAApP,OAAA,CACL,QAAAF,EAAA,EAAqBA,EAAAwiB,EAAkBxiB,IACvC4U,EAAApU,KAAA8O,EAAAtP,GAAAwP,IAEAoF,EAAApU,KAAA,WAEAoU,EAAAtF,EAAAM,IAAA,SAAAM,GACA,OAAAA,EAAAV,KAGA,QAAAoF,EAAA1U,SAEA6P,KAAA6E,EACAtQ,KAAAsQ,EAAA1U,OAAA6hB,EACAlV,UAAA,SAAAhL,GACA,aAAA4Q,EAAA5Q,GAAA4Q,EAAA5Q,OAqHA6hB,EAPApU,YACAE,YACAuS,cACAtP,aACA6P,QACAE,iBAWmBxN,QARnBnB,GA9GA,SAAAxI,GACA,IAAAiW,EAAAjW,EAAAiW,SACAhS,EAAAjE,EAAAiE,UACAkT,EAAAnX,EAAAmX,aACA/V,EAAApB,EAAAoB,MACA+E,EAAAnG,EAAAmG,QACAhC,EAAAnE,EAAAmE,UAEA+T,EAAA,EACAI,EAAArU,EAAAM,IAAA,SAAAM,GAEA,OADAqT,GAAArT,EAAAsB,IAEA3P,KAAAqO,EAAAV,GACAhJ,MAAA0J,EAAAsB,MAEKjQ,MAAAihB,EAAAlT,EAAApP,QACL,OACA2M,UAAA,SAAAjB,GACA,IAAAwF,KAkBA,OAjBAA,EAAA5Q,KAAA2E,EAAAyG,EAAAxG,QACAod,GAAA,OAAA5W,EAAA/J,MACAuP,EAAA5Q,KAAA,OACAmjB,EAAA5a,QAAA,SAAAoE,GACA,IAAAtL,EAAAsL,EAAAtL,KACA2E,EAAA2G,EAAA3G,MAEA6c,EAAA9W,EAAA/F,EAAA+c,EAAA,WACAnS,EAAA5Q,KAAA,OAAAqB,EAAA,KACAuP,EAAA5Q,KAAA+L,EAAA/F,EAAA8a,EAAA7U,IACA2E,EAAA5Q,KAAA,IAAA6iB,EAAA,SAGAjS,EAAA5Q,KAAAoL,EAAA/J,KAAA,KACAuP,EAAA5Q,KAAA+L,EAAAX,EAAApF,MAAA8a,EAAA7U,IACA2E,EAAA5Q,KAAA,IAAAoL,EAAAyX,QAAA,OAEAjS,EAAA/L,KAAA,OA0EAue,EACAtC,WACAhS,YACAkT,eACA/V,QACA+E,UACAhC,gBAMAqU,GAAA,SAAAhR,EAAAF,EAAAG,EAAAC,GACA,OAAAoO,GAAAtO,EAAAF,EAAAG,EAAAC,GAAA,IAGA+Q,GAAArZ,KAAyBwM,GACzBpV,KAAA,QACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAsG,SAKA4C,GAAAtZ,KAA0BwM,GAC1BpV,KAAA,SACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAgJ,SA6HA,IAAAG,GAAA,SAAAnR,EAAAF,EAAAG,EAAAC,GACA,IAAAsO,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,EAAA,SAAAA,EACApO,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACAgR,EAAAnR,EAAAoR,UACAA,OAAAvX,IAAAsX,EAAA,KAAAA,EACAE,EAAArR,EAAAqR,SACAC,EAAAtR,EAAAuR,WACAA,OAAA1X,IAAAyX,EAAA,KAAAA,EACA3E,EAAA3M,EAAAqB,UACAA,OAAAxH,IAAA8S,EAAAjQ,EAAAiQ,EACA9L,EAAAb,EAAA/B,SACAA,OAAApE,IAAAgH,KAAwDA,EACxDR,EAAAL,EAAArD,YACAA,OAAA9C,IAAAwG,KACAC,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACAS,EAAAd,EAAAc,eAEAyQ,EAAAzR,EAAAtR,QACA+iB,EAAA/jB,OAAA+jB,EAAAvlB,QAAAyQ,GAAA,GACA,IAAAgC,EAAA8S,EAAA,GACAlQ,EAAA5C,EACAwO,EAAAnM,GAhJA,SAAAyN,EAAA7U,GACA,OACAyE,QAAA,OACAmI,aAAoB5W,KAAA,UACpBoK,UAAA,SAAAsE,GACA,IAAAvF,EAAAuF,EAAA,GACA,OAAAvF,EAAA/J,KAAA,QAAA+J,EAAAyF,WAAA,QAAA9E,EAAAX,EAAApF,MAAA8a,EAAA7U,IAAApH,KAAA,MA0IAkf,CAAAjD,EAAA7U,GACA+X,EAAAC,WAAA9R,EAAA+R,OAAA,SAAAC,EAAAC,GACA,OAAAD,EAAA3K,OAAA4K,EAAApT,KACK,GAAAjL,QAAAkG,IACLoY,EAjCA,SAAAL,EAAAL,GACA,OAAAA,EACAA,EAAAK,EAAA,4BADA,YAgCAM,CAAAN,EAAAL,GAyBA,OADmBnP,QAAAgL,EAAAlL,MAjKnB,SAAAzJ,GACA,IAAAmE,EAAAnE,EAAAmE,UACAmD,EAAAtH,EAAAsH,KACAkS,EAAAxZ,EAAAwZ,aACAX,EAAA7Y,EAAA6Y,UACAG,EAAAhZ,EAAAgZ,WACAtT,EAAA1F,EAAA0F,SACAoD,EAAA9I,EAAA8I,UACA1E,EAAApE,EAAAoE,YAEAsV,GAAAb,GAAAlQ,OAAArB,EAAA/C,IAAA,SAAAM,GACA,OAAAA,EAAAV,MAMA,MAJA,gBAAAqV,IACAE,IAAA/Q,QAAAqQ,MAIA5hB,KAAA,WACAZ,KAAAkP,KAAAoD,MACA3P,WAAkBF,MAAA,GAClByL,KAAAgV,EACAzgB,KAAAmL,GA8HAuV,EATAxV,YACAmD,OACAkS,eACAX,YACAG,aACAlQ,YACApD,WACAtB,gBAemBoF,MAvInB,SAAAxJ,GACA,IAAAiW,EAAAjW,EAAAiW,SACAlN,EAAA/I,EAAA+I,UACA3E,EAAApE,EAAAoE,YACAhD,EAAApB,EAAAoB,MACAsE,EAAA1F,EAAA0F,SAEA,OACAtO,KAAA,QACAZ,KAAA,MAAAkP,EAAAqD,GAAArD,EAAAqD,KACA7P,UAAiBD,MAAA,GACjB6L,WACAtD,UAAA,SAAAL,GACA,OAAAD,EAAAC,EAAA8U,EAAA7U,KAGAnI,KAAAmL,GA2GAwV,EAAmC3D,WAAAlN,YAAA3E,cAAAhD,QAAAsE,aAYhBQ,OAnHnB,SAAAlG,GACA,IAAAiW,EAAAjW,EAAAiW,SACA3O,EAAAtH,EAAAsH,KACAnB,EAAAnG,EAAAmG,QACA2S,EAAA9Y,EAAA8Y,SACAU,EAAAxZ,EAAAwZ,aACAL,EAAAnZ,EAAAmZ,QACA/X,EAAApB,EAAAoB,MAEAqW,GAAsBrgB,KAAA,MAAAsK,MAAA,MACtBmY,EAAAV,EACAW,EAAAhB,EACAiB,OAAA,EACAC,OAAA,EACAC,EAAA3S,EAAA/C,IAAA,SAAAM,GACA,OAAAA,EAAAsB,KAGA,gBAAAqT,GACAO,GAAA,GAAApR,OAAArB,EAAA/C,IAAA,SAAAM,GAEA,OADAiV,GAAAjV,EAAAsB,MAEOwC,QAAA,IACPqR,GAAAlB,GAAAnQ,OAAAsR,GAAAtR,QAAAmQ,EAAAK,MAEAY,GAAA,GAAApR,OAAArB,EAAA/C,IAAA,SAAAM,GAEA,OADAgV,GAAAhV,EAAAsB,MAGA6T,GAAAb,GAAAxQ,OAAAsR,IAEA,IAAA/T,KAwBA,OAtBAA,EAAA/Q,KAAAiK,GACA5I,KAAA,KACA4P,WACAoP,QAAiB/O,QAAA,GACjByT,UAAmBzT,QAAA,IAEnB/B,KAAAqV,GACKtC,IAELvR,EAAA/Q,KAAAiK,GACA5I,KAAA,KACA6P,OACAmP,QACAvc,MAAA,EACA+I,SAAA,MACAR,UAAA,SAAAjB,GACA,OAAAW,EAAAX,EAAApF,MAAA8a,EAAA7U,MAIAsD,KAAAsV,GACKvC,IACLvR,EA2DAiU,EATAlE,WACA3O,OACAnD,YACAgC,UACA2S,WACAU,eACAL,UACA/X,YAOAgZ,GAAAhb,KAA+BwM,GAC/BpV,KAAA,cACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAmJ,SAuFA,IAAA0B,GAAA,SAAAC,EAAAC,EAAA9S,EAAAC,GACA,IAAAF,EAAA8S,EAAApkB,QACAoR,EAAAiT,EAAArkB,QACA8f,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,EAAA,SAAAA,EACApO,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACA4S,EAAA/S,EAAAgT,SACAA,OAAAnZ,IAAAkZ,EAAAlT,EAAA/C,IAAA,SAAAM,GACA,OAAAA,EAAAV,KACKqW,EACLzS,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACA2S,EAAAjT,EAAAiT,UACArU,EAAAoB,EAAApB,MACA+Q,EAAA3P,EAAA2P,UACA/O,EAAAZ,EAAAL,WACAA,OAAA9F,IAAA+G,KAA4DA,EAC5DjC,EAAAqB,EAAArB,UACAuU,EAAAlT,EAAAkT,WACAC,EAAAnT,EAAAmT,gBACApS,EAAAd,EAAAc,eACAC,EAAAf,EAAAe,cAEAtC,OAAA,EACA,GAAAsB,EAAAtB,QACAA,EAAAsB,EAAAtB,YACK,CACL,IAAA8S,EAAAzR,EAAAtR,QACA+iB,EAAA/jB,OAAAsS,EAAA9T,QAAAyQ,GAAA,GACAgC,EAAA8S,EAAA,GAkBA,OADmBtP,QAdnBnB,GAnHA,SAAAyN,EAAA7U,GACA,OACAyE,QAAA,OACArE,UAAA,SAAAjB,GACA,IAAAwF,KAGA,OAFAA,EAAA5Q,KAAA2E,EAAAyG,EAAAxG,QACAgM,EAAA5Q,KAAAoL,EAAA/J,KAAA,KAAA0K,EAAAX,EAAAmE,KAAAmW,UAAA5E,EAAA7U,IACA2E,EAAA/L,KAAA,MA4GA8gB,CAAA7E,EAAA7U,GAcmBsI,OAbnBjB,GAxGA,SAAAzI,GACA,IAAA0E,EAAA1E,EAAA0E,KACA0C,EAAApH,EAAAoH,WAEA,OACA1C,OACAlD,UAAA,SAAAhL,GACA,aAAA4Q,EAAA5Q,GAAA4Q,EAAA5Q,OAiGAukB,EAAsDrW,KAAA+V,EAAArT,eAanClB,OAzGnB,SAAAlG,GACA,IAAAmE,EAAAnE,EAAAmE,UACAgC,EAAAnG,EAAAmG,QACAmB,EAAAtH,EAAAsH,KACAmT,EAAAza,EAAAya,SACAC,EAAA1a,EAAA0a,UACArU,EAAArG,EAAAqG,MACA+Q,EAAApX,EAAAoX,UACAhR,EAAApG,EAAAoG,UACAuU,EAAA3a,EAAA2a,WACAC,EAAA5a,EAAA4a,gBAEA1U,GAAkB9O,KAAA,UAClB6M,EAAAqD,EAAA4B,KAAA,SAAAC,EAAAC,GACA,OAAAqR,EAAA/mB,QAAAyV,EAAAhF,IAAAsW,EAAA/mB,QAAA0V,EAAAjF,MAGAwW,IACA1W,IAAA+W,OAAA,SAAAnW,GACA,OAAAA,EAAAsB,MAIA,IAAA8U,GAAA,EACAhX,EAAA+C,KAAA,SAAAnC,EAAArE,GACA,GAAAA,GAAAqE,EAAAsB,GAAAlC,EAAAzD,EAAA,GAAA2F,GAEA,OADA8U,GAAA,GACA,IAIA,IAAAC,EAAA,IAAAjX,EAAApP,OAwBA,OArBAqR,EAAAxB,KADAuW,IAAAL,EACA3W,EAAA/N,QAAAilB,UAAA5W,IAAA,SAAAM,EAAArE,GACA,OACAhK,KAAAqO,EAAAV,GACAhJ,OAAAqF,EAAA,GAAA0a,EACAL,UAAAhW,EAAAsB,MAIAlC,EAAAM,IAAA,SAAAM,GACA,OACArO,KAAAqO,EAAAV,GACAhJ,MAAA0J,EAAAsB,GACA0U,UAAAhW,EAAAsB,MAKAuU,IAAAxU,EAAAgD,KAAA,aACA7C,IAAAH,EAAAG,SACA+Q,IAAAlR,EAAAkR,aACAhR,IAAAF,EAAAE,aACAF,EAsCAkV,EACAjX,YACAgC,UACAmB,OACAmT,WACAC,YACArU,QACA+Q,YACAhR,YACAuU,aACAC,sBAMAS,GAAAjc,KAA4BwM,GAC5BpV,KAAA,WACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAA6K,SA2GA,IAAAiB,GAAA,SAAA9T,EAAAF,EAAAG,EAAAC,GACA,IAAAsO,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,KAAwDA,EACxD3N,EAAAZ,EAAAL,WACAA,OAAA9F,IAAA+G,KAA4DA,EAC5DC,EAAAb,EAAA/B,SACAA,OAAApE,IAAAgH,KAAwDA,EACxDV,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACAG,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACA1B,EAAAoB,EAAApB,MACAD,EAAAqB,EAAArB,UACAoO,EAAA/M,EAAA+M,UACAC,EAAAhN,EAAAgN,UACAjM,EAAAd,EAAAc,eACAC,EAAAf,EAAAe,cAEAtC,EAAAqB,EAAAtR,QACAuR,EAAAtB,QACAA,EAAAsB,EAAAtB,QAEAA,EAAAjR,OAAAsS,EAAA9T,QAAAyQ,GAAA,GAEA,IAAAoF,EAAAd,GA9HA,SAAAnB,EAAAnD,EAAAiD,GAKA,OACA1C,KALA4C,EAAA/C,IAAA,SAAAM,GACA,OAAAA,EAAAV,KAKA3C,UAAA,SAAAhL,GACA,aAAA4Q,EAAA5Q,GAAA4Q,EAAA5Q,OAsHA+kB,CAAAjU,EAAAnD,EAAAiD,GACAoU,EA7FA,SAAAlU,EAAAnB,EAAAT,GACA,IAAA+V,GACAC,aACAC,MAAA,SACAC,YAAA,GAEAC,KAiBA,OAhBAvU,EAAA5J,QAAA,SAAAoI,GACAK,EAAAzI,QAAA,SAAA6C,GACA,IAAA5C,EAAA,MAAA+H,EAAAnF,GAAAmF,EAAAnF,KACAsb,EAAAle,GAGAke,EAAAle,GAAAxI,KAAA2Q,EAAAvF,IAFAsb,EAAAle,IAAAmI,EAAAvF,QAMAkb,EAAAC,UAAAle,OAAAC,KAAAoe,GAAAtX,IAAA,SAAA5G,GACA,OACAnH,KAAAmH,EACA9B,IAAAF,KAAAE,IAAAsE,MAAA,KAAA0b,EAAAle,OAGA8d,EAsEAK,CAAAxU,EAAAnB,EAAAT,GAcA,OADmBgE,OAAAH,EAAAI,QAZnBnB,GAnHA,SAAAyN,EAAAuF,EAAApa,GACA,IAAA2a,KACAC,KAKA,OAJAR,EAAAE,UAAAnX,IAAA,SAAAhE,EAAAC,GACAub,EAAAvb,GAAAyV,EAAA1V,EAAA/J,MACAwlB,EAAAxb,GAAAD,EAAA/J,QAGAgL,UAAA,SAAAjB,GACA,IAAAwF,KAOA,OANAA,EAAA5Q,KAAA2E,EAAAyG,EAAAxG,QACAgM,EAAA5Q,KAAAoL,EAAA/J,KAAA,UACA+J,EAAAmE,KAAAvJ,MAAAuC,QAAA,SAAAyD,EAAAX,GACAuF,EAAA5Q,KAAA6mB,EAAAxb,GAAA,MACAuF,EAAA5Q,KAAA+L,EAAAC,EAAA4a,EAAAvb,GAAAY,GAAA,YAEA2E,EAAA/L,KAAA,MAmGAiiB,CAAAhG,EAAAuF,EAAApa,GAYmB2M,MAAAyN,EAAAtV,OAhFnB,SAAAlG,GACA,IAAAsH,EAAAtH,EAAAsH,KACAnD,EAAAnE,EAAAmE,UACAgC,EAAAnG,EAAAmG,QACAqV,EAAAxb,EAAA+N,MACA1H,EAAArG,EAAAqG,MACAD,EAAApG,EAAAoG,UACAoO,EAAAxU,EAAAwU,UACA9O,EAAA1F,EAAA0F,SACA+O,EAAAzU,EAAAyU,UAEAyH,KACAV,EAAAE,UAAAhe,QAAA,SAAA6C,EAAAC,GACA,IAAAhK,EAAA+J,EAAA/J,KACA0lB,EAAA1lB,GAAAgK,IAGA,IAAA2b,EAAA7U,EAAA/C,IAAA,SAAAM,GACA,IAAAuX,GACAjhB,SACA3E,KAAAqO,EAAAV,IAQA,OANA3G,OAAAC,KAAAoH,GAAAnH,QAAA,SAAAC,GACA,IAAAwI,EAAAzS,QAAAiK,GAAA,CACA,IAAA0e,EAAA,MAAA3W,EAAA/H,GAAAue,EAAAxW,EAAA/H,IAAAue,EAAAve,GACAye,EAAAjhB,MAAAkhB,GAAAxX,EAAAlH,MAGAye,IAEAzX,GACAnO,KAAA2N,EACA/M,KAAA,QACAsN,KAAAyX,GAMA,OAJA9V,IAAA1B,EAAA0B,SACAD,IAAAzB,EAAAyB,aACAoO,IAAA7P,EAAA6P,aACAC,IAAA9P,EAAA8P,cACA9P,GA8BA2X,EACAhV,OACAnD,YACAgC,UACA4H,MAAAyN,EACAnV,QACAD,YACAoO,YACA9O,WACA+O,gBAMA8H,GAAAnd,KAA2BwM,GAC3BpV,KAAA,UACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAA8L,SAKAkB,GAAApd,KAA2BwM,GAC3BpV,KAAA,UACAkO,KAAA,WAYA,OAXA9Q,KAAA2b,UACAkN,IAAAlV,EACAqC,YACAvQ,KAAA2a,GACA0I,IAAA5G,GACA0C,QACAmE,OAAAtC,GACAtM,MAAAuN,GACA3C,cAEA/kB,KAAA4b,aAAA5b,KAAA2b,SAAA3b,KAAA6T,SAAArQ,YAqFA,SAAAwlB,GAAAzhB,EAAAhH,EAAAkS,GACA,qBAAAlL,EAAA,YAAAyD,EAAAzD,IACAhH,EAAAkS,GAAAlL,EACKA,IACLhH,EAAAkS,IACAmP,QAAiBvc,MAAA,GACjBihB,UAAmBjhB,MAAA,KAsBnB,SAAA4jB,GAAA7c,EAAA8c,GACA,IAAA9M,EAAAhQ,EAAAgQ,MACA+M,EAAA/c,EAAA+c,aACAC,EAAAhd,EAAAgd,kBACA9a,EAAAlC,EAAAkC,sBACA+a,EAAAjd,EAAAid,iBACAjb,EAAAhC,EAAAgC,SACAkb,EAAAld,EAAAkd,aAEAlN,EAAA+M,KACAC,IAAAF,EAAAE,EAAAF,IACA5a,IAAA8N,EAAAiN,KACAjN,EAAAiN,IAAA,EACAH,EAAA5a,EAAA4a,IAEA9M,EAAA+M,IAAA,EACAlkB,EAAAgkB,YAAA7a,EAAA8a,EAAAI,IAIA,IAAAC,GAAA,SAAA3V,EAAAF,EAAAG,EAAAC,GACA,IAAA0V,EAAA3V,EAAAzF,SACAA,OAAAV,IAAA8b,EAAA,QAAAA,EACAC,EAAA5V,EAAA6V,WACAA,OAAAhc,IAAA+b,KACAzG,EAAAnP,EAAAmP,aACAG,EAAAtP,EAAApB,MACAA,OAAA/E,IAAAyV,KACAf,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,KAAwDA,EACxDjO,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACAH,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACA2V,EAAA9V,EAAA8V,KACA7F,EAAAjQ,EAAAiQ,OACA8F,EAAA/V,EAAA+V,YACAC,EAAAhW,EAAAgW,eACAC,EAAAjW,EAAAiW,KACAC,EAAAlW,EAAAkW,WACAtV,EAAAZ,EAAAL,WACAA,OAAA9F,IAAA+G,KAA4DA,EAC5DC,EAAAb,EAAA/B,SACAA,OAAApE,IAAAgH,KAAwDA,EACxDsV,EAAAnW,EAAAmW,QACAxX,EAAAqB,EAAArB,UACAnE,EAAAwF,EAAAxF,iBACA+a,EAAAvV,EAAAuV,kBACA9a,EAAAuF,EAAAvF,sBACA2b,EAAApW,EAAAtF,aACAA,OAAAb,IAAAuc,EAAA,4CAAAA,EACAC,EAAArW,EAAAyV,aACAA,OAAA5b,IAAAwc,KAA+DA,EAE/DhB,EAAArV,EAAAqV,UACA3W,EAAAqB,EAAAtR,QACAuR,EAAAtB,QACAA,EAAAsB,EAAAtB,QAEAA,EAAAjR,OAAAsS,EAAA9T,QAAAyQ,GAAA,GAEA,IAAAqE,EAAAd,EAAAc,eACAC,EAAAf,EAAAe,cACA1O,EAAA2N,EAAA3N,MACAiW,EAAAtI,EAAAsI,MAEA+N,KACAzW,EAAA5J,QAAA,SAAAmH,GACAkZ,EAAAlZ,EAAAV,IAAAU,IAEA,IAAA8P,EAAAnM,GAlLA,SAAAyN,EAAA7U,EAAA2c,EAAA5X,EAAApM,EAAA2L,GACA,OACAlE,UAAA,SAAAjB,GACA,IAAAwF,KACA,OAAAxF,EAAA/J,MACAuP,EAAA5Q,KAAAoL,EAAA/J,KAAA,QACA2P,EAAAzI,QAAA,SAAA2I,EAAA7F,GACA,IAAAsN,EAAA,MAAApI,EAAAW,GAAAX,EAAAW,KACAN,EAAA5Q,KAAA2E,EAAAC,EAAAyG,IAAA,IAAAsN,EAAA,OACAiQ,EAAAxd,EAAA/J,MACAuP,EAAA5Q,KAAA+L,EAAA6c,EAAAxd,EAAA/J,MAAA6P,GAAA4P,EAAA5P,GAAAjF,IAEA2E,EAAA5Q,KAAA,KAEA4Q,EAAA5Q,KAAA,UAEA4Q,EAAA/L,KAAA,MAZA,KA8KAgkB,CAAA/H,EAAA7U,EAAA2c,EAAA5X,EAAApM,EAAA2L,GACA6D,EAAAd,GAxFA,SAAAzI,GACA,IAAAmG,EAAAnG,EAAAmG,QACAiB,EAAApH,EAAAoH,WACA1B,EAAA1F,EAAA0F,SAEA,OAAA0B,GAAA1B,GAKAhB,KAJAgB,EAAAS,EAAA5B,IAAA,SAAAhE,GACA,aAAAmF,EAAAnF,KAAAmF,EAAAnF,KACK4F,EAGL3E,UAAA,SAAAhL,GACA,aAAA4Q,EAAA5Q,GAAA4Q,EAAA5Q,QAP0CkO,KAAAyB,GAmF1C8X,EAAmD9X,UAAAiB,aAAA1B,aAmBnDQ,EAjLA,SAAAlG,GACA,IAAAgC,EAAAhC,EAAAgC,SACAsb,EAAAtd,EAAAsd,WACAnZ,EAAAnE,EAAAmE,UACAgC,EAAAnG,EAAAmG,QACAmB,EAAAtH,EAAAsH,KACAjB,EAAArG,EAAAqG,MACAD,EAAApG,EAAAoG,UACAwQ,EAAA5W,EAAA4W,aACA2G,EAAAvd,EAAAud,KACA7F,EAAA1X,EAAA0X,OACA8F,EAAAxd,EAAAwd,YACAC,EAAAzd,EAAAyd,eACAC,EAAA1d,EAAA0d,KACAhY,EAAA1F,EAAA0F,SACAiY,EAAA3d,EAAA2d,WACAC,EAAA5d,EAAA4d,QAEAjZ,KACAuZ,GACA9mB,KAAA,MACA+mB,QAAAnc,GAmCA,OAhCAmE,EAAAzI,QAAA,SAAA0gB,GACA,IAAAC,EAAAjf,GACA5I,KAAA,MAAAkP,EAAA0Y,GAAA1Y,EAAA0Y,KACA1Z,QACAkS,eACA2G,OACA7F,SACA8F,cACAC,iBACAC,OACAC,cACOO,GAEPN,GACApgB,OAAAC,KAAAmgB,GAAAlgB,QAAA,SAAAC,GACA0gB,EAAA1gB,GAAAigB,EAAAjgB,KAIAif,GAAAxW,EAAAiY,EAAA,aACAzB,GAAAvW,EAAAgY,EAAA,SAEA/W,EAAA5J,QAAA,SAAAmH,GACAwZ,EAAA3Z,KAAAvP,MACAqB,KAAAqO,EAAAV,GACAhJ,MAAA0J,EAAAuZ,GACAE,SAAAhB,MAGA3Y,EAAAxP,KAAAkpB,KAGA1Z,EAyHA4Z,EAjBAvc,WACAsb,aACAjX,QACAD,YACAjC,YACAgC,UACAmB,OACAsP,eACA2G,OACA7F,SACA8F,cACAC,iBACAC,OACAhY,WACAiY,aACAC,YAGAY,GACAxO,QACAgN,oBACA9a,wBACA6a,aAAA,gBAAA/a,EACAib,iBAAA,qBAAAjb,EACAA,WACAkb,gBAEA,OAAAJ,GACAD,GAAA2B,EAAA1B,IACc5W,SAAAyD,QAAAgL,EAAAjL,OAAAH,IAEd1H,GACAG,WACAC,mBACAC,wBACAC,iBACOY,KAAA,SAAA0b,GAEP,OADA5B,GAAA2B,EAAAC,IACgBvY,SAAAyD,QAAAgL,EAAAjL,OAAAH,MAKhBmV,GAAAtf,KAAyBwM,GACzBpV,KAAA,QACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAA2N,SAKAwB,GAAA,SAAA5M,EAAA6M,EAAAnX,EAAAC,GACA,IAAA/J,EAAA8J,EAAA9J,IACAgD,EAAA8G,EAAA9G,EACAke,EAAApX,EAAAsJ,KACA+N,EAAArX,EAAAqX,YACA9O,EAAAtI,EAAAsI,MAIA,OADArS,GAAAmhB,GAAAzV,QAAAC,KAAA,kCACA0G,EAAA,kBACAA,EAAA,iBACA8O,GAA6B/N,KAAA8N,GAC7B1b,EAAAxF,EAAAgD,GAAAoC,KAAA,SAAAgP,GACA,OAAchB,KAAA8N,OAIdE,GAAA3f,KAA0BwM,GAC1BpV,KAAA,SACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAmP,SAKA3N,GAAA,SAAAe,EAAA6M,EAAAnX,EAAAC,GACA,IAAA/J,EAAA8J,EAAA9J,IACAgD,EAAA8G,EAAA9G,EACAqQ,EAAAvJ,EAAAuJ,KACA8N,EAAArX,EAAAqX,YACA9O,EAAAtI,EAAAsI,MAIA,OADArS,GAAAmhB,GAAAzV,QAAAC,KAAA,kCACA0G,EAAA,kBACAA,EAAA,iBACA8O,GAA6B9N,QAC7BlN,EAAAnG,EAAAgD,GAAAoC,KAAA,SAAAgP,GACA,OAAcf,YAIdgO,GAAA5f,KAA0BwM,GAC1BpV,KAAA,SACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAwB,SAuEA,IAAAiO,GAAA,SAAAzX,EAAAF,EAAAG,EAAAC,GACA,IAAAwX,EAAAzX,EAAAyX,MACAtX,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACAuO,EAAA1O,EAAAtB,QACAA,OAAA7E,IAAA6U,EAAA3O,EAAA,GAAA2O,EACAH,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,GAAA,mBAAAA,EACAjO,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACAoX,EAAA1X,EAAA2X,UACAA,OAAA9d,IAAA6d,KACAE,EAAA5X,EAAA6X,aACAA,OAAAhe,IAAA+d,KACAhZ,EAAAoB,EAAApB,MACAD,EAAAqB,EAAArB,UACAoO,EAAA/M,EAAA+M,UAGA,GAAA0K,EAuBA,OAAYvV,QA5GZ,SAAA3J,GACA,IAAAuf,EAAAvf,EAAAuf,aACAC,EAAAxf,EAAAwf,cACApe,EAAApB,EAAAoB,MAEA,OACAyE,QAAA,OACArE,UAAA,SAAAjB,GACA,IAAAwF,KACAvP,EAAA+J,EAAA/J,KACAkO,EAAAnE,EAAAmE,KACAvJ,EAAAoF,EAAApF,MACApB,EAAAwG,EAAAxG,MASA,OAPAgM,EAAA5Q,KAAA2E,EAAAC,IACAgM,EAAA5Q,KAAAqB,EAAA,OACAkO,KAAArO,OACA0P,EAAA5Q,KAAA+L,EAAA/F,EAAAqkB,EAAApe,GAAA,UAEA2E,EAAA5Q,KAAA+L,EAAA/F,EAAAokB,EAAAne,GAAA,UAEA2E,EAAA/L,KAAA,MAuEAylB,EACAF,aAHAtJ,EAAA,GAIAuJ,cAHAvJ,EAAA,GAIA7U,UAaY8E,OAlFZ,SAAAlG,GACA,IAAAsH,EAAAtH,EAAAsH,KACAnD,EAAAnE,EAAAmE,UACAgC,EAAAnG,EAAAmG,QACA+Y,EAAAlf,EAAAkf,MACAE,EAAApf,EAAAof,UACAE,EAAAtf,EAAAsf,aACAjZ,EAAArG,EAAAqG,MACAD,EAAApG,EAAAoG,UACAoO,EAAAxU,EAAAwU,UAEAkL,KAkBA/a,GACAvN,KAAA,SACAsN,KAnBA4C,EAAA/C,IAAA,SAAAM,GAEA,OADA6a,EAAA7a,EAAAV,IAAAU,EAAAsB,IACc3P,KAAAqO,EAAAV,GAAAhJ,MAAA0J,EAAAsB,MAkBd+Y,MAfAI,EACAJ,EAAA3a,IAAA,SAAAnC,GACA,OAAAhD,KAA0BgD,GAASjH,MAAAukB,EAAAtd,EAAAjO,YAE9BirB,EAKLF,EAJAA,EAAA3a,IAAA,SAAAnC,GACA,aAAAA,EAAAjH,MAAAiE,KAA+CgD,GAASjH,MAAAukB,EAAAtd,EAAAjO,UAA8BiO,KActF,OAHAiE,IAAA1B,EAAA0B,SACAD,IAAAzB,EAAAyB,aACAoO,IAAA7P,EAAA6P,cACA7P,GAkCAgb,EACArY,OACAnD,YACAgC,UACA+Y,QACAE,YACAE,eACAjZ,QACAD,YACAoO,eApBAnL,QAAAC,KAAA,iCAyBAsW,GAAAxgB,KAA4BwM,GAC5BpV,KAAA,WACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAyP,SAKA,SAAAY,GAAAvY,EAAAjB,GACA,IAAA1B,KAIA,OAHA2C,EAAA5J,QAAA,SAAAmH,IACAF,EAAAjR,QAAAmR,EAAAwB,KAAA1B,EAAAxP,KAAA0P,EAAAwB,MAEA1B,EAGA,SAAAmb,GAAA9f,GACA,IAAAsH,EAAAtH,EAAAsH,KACAyY,EAAA/f,EAAA+f,eACAC,EAAAhgB,EAAAggB,eACAC,EAAAjgB,EAAAigB,KACAC,EAAAlgB,EAAAkgB,KACA/Z,EAAAnG,EAAAmG,QACA/O,EAAA4I,EAAA5I,KACA+oB,EAAAngB,EAAAmgB,aAmBA,MAhBA,cAAA/oB,EACAkQ,EAAA/C,IAAA,SAAAM,GACA,IAAAub,EAAAL,EAAArsB,QAAAmR,EAAAob,IACAI,EAAAL,EAAAtsB,QAAAmR,EAAAqb,IACA/kB,EAAAgL,EAAAtB,EAAAsB,GAAA,EACAma,EAAAH,EAAA5b,IAAA,SAAAgc,GACA,OAAA1b,EAAA0b,IAAA,MAEA,OAAgBplB,OAAAilB,EAAAC,EAAAllB,GAAAwN,OAAA2X,MAGhBhZ,EAAA/C,IAAA,SAAAM,GACA,IAAA1J,EAAAgL,EAAAtB,EAAAsB,GAAA,EACA,OAAgBhL,OAAA0J,EAAAob,GAAApb,EAAAqb,GAAA/kB,MAMhB,SAAAqlB,GAAAC,EAAAjqB,GACA,OACAY,KAAA,WACAsN,KAAA+b,EACAjqB,OACAgO,aAAA,MACAkc,WAAkBznB,MAAA,IAqFlB,IAAA0nB,GAAA,SAAAnZ,EAAAF,EAAAG,EAAAoC,GACA,IAAA+W,EAAAnZ,EAAArQ,KACAA,OAAAkK,IAAAsf,EAAA,YAAAA,EACAC,EAAApZ,EAAAoZ,UACAC,EAAArZ,EAAAqZ,UACAlZ,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,GAAAJ,EAAA,GAAAA,EAAA,IAAAI,EACAuO,EAAA1O,EAAAtB,QACAA,OAAA7E,IAAA6U,EAAA3O,EAAA,GAAA2O,EACAH,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,EAAA,SAAAA,EACApa,EAAA6L,EAAA7L,IACAC,EAAA4L,EAAA5L,IACAuF,EAAAqG,EAAArG,MACAyd,EAAApX,EAAAsJ,KACAC,EAAAvJ,EAAAuJ,KACA9C,EAAAzG,EAAAyG,IACAvQ,EAAA8J,EAAA9J,IACAojB,EAAAtZ,EAAA9G,EACAA,OAAAW,IAAAyf,EAAA,MAAAA,EACA/e,EAAAyF,EAAAzF,SACAC,EAAAwF,EAAAxF,iBACA+a,EAAAvV,EAAAuV,kBACAgE,EAAAvZ,EAAAwZ,UACAA,OAAA3f,IAAA0f,EAAA,GAAAA,EACAE,EAAAzZ,EAAA0Z,SACAA,OAAA7f,IAAA4f,EAAA,EAAAA,EACAE,EAAA3Z,EAAA2Z,UACArY,EAAAtB,EAAAsB,UACAD,EAAArB,EAAAqB,UACA5G,EAAAuF,EAAAvF,sBACA2b,EAAApW,EAAAtF,aACAA,OAAAb,IAAAuc,EAAA,4CAAAA,EACAC,EAAArW,EAAAyV,aACAA,OAAA5b,IAAAwc,KAA+DA,EAC/DtV,EAAAqB,EAAArB,eAEAuX,EAAAc,EACAb,EAAAc,EACAO,KAEAlB,KACAmB,EAAAnd,EAAAwE,QAAAxC,IACAqB,EAAA9J,QAAA,SAAA6jB,IACAD,EAAA5tB,QAAA6tB,IAAApB,EAAAhrB,KAAAosB,KAGA,cAAAnqB,GACA2oB,KAAAlrB,SACAkrB,EAAAF,GAAAvY,EAAAnD,EAAA,KAEA6b,KAAAnrB,SACAmrB,EAAAH,GAAAvY,EAAAnD,EAAA,KAEAkd,EAAAvB,IACAxY,OACAyY,iBACAC,iBACAC,KAAA9b,EAAA,GACA+b,KAAA/b,EAAA,GACAgC,UACA/O,OACA+oB,kBAGAkB,EAAAvB,IACAxY,OACA2Y,KAAA9b,EAAA,GACA+b,KAAA/b,EAAA,GACAgC,UACA/O,OACA+oB,iBAGA,IAAAqB,GAAArb,EAAAmB,EAAA/C,IAAA,SAAAM,GACA,OAAAA,EAAAsB,MACK,KACLqb,GAAA3sB,SAAA2sB,IAAA,IACA,IAAAC,GAAA7lB,GAAAD,KAAAC,IAAAuE,MAAA,KAAAqhB,IACAE,GAAA7lB,GAAAF,KAAAE,IAAAsE,MAAA,KAAAqhB,IAEA/X,GAAA+W,GAAAT,EAAAjX,GACAU,GAAAgX,GAAAR,EAAAjX,GACA7C,KAtHA9O,KAAA,UACAsN,MAqH8B2c,aAzH9BA,YA0HAM,GArKA,SAAA3hB,GACA,IAAApE,EAAAoE,EAAAyhB,SACA5lB,EAAAmE,EAAA0hB,SACAtqB,EAAA4I,EAAA5I,KACAgqB,EAAAphB,EAAAohB,UACAlb,EAAAlG,EAAAkG,OAEAvB,GACA/I,MACAC,MACA+lB,YAAA,GAEAla,EAAA,KA2BA,MA1BA,QAAAtQ,GACAsQ,GACAgJ,OAAA,WACAjX,KAAA,EACAiP,OAAA,EACAmZ,SAAkB9nB,MAAAqnB,GAAAxnB,IAElBsM,EAAA,GAAAxB,KAAA7P,SAAA6S,EAAAzO,MAAA,IAEAyO,EADK,SAAAtQ,GAAA,SAAAA,GAEL6B,MAAA,EACAyX,OAAA,WACAjX,KAAA,EACAiP,OAAA,EACAmZ,SAAkB9nB,MAAAqnB,GAAAvnB,KAIlB6W,OAAA,aACAjX,KAAA,SACAiP,OAAA,GACAvE,UAAA,EACA0d,QAAAT,IAA+BrnB,MAAAqnB,IAI/BhiB,EAAAuF,EAAA+C,GA8HAoa,EAAqCL,YAAAC,YAAAtqB,OAAAgqB,YAAAlb,YACrCyO,GAAAnM,GAnHA,SAAAxI,GACA,IAAAiW,EAAAjW,EAAAiW,SACA8J,EAAA/f,EAAA+f,eACAC,EAAAhgB,EAAAggB,eACA5e,EAAApB,EAAAoB,MACA+e,EAAAngB,EAAAmgB,aACAha,EAAAnG,EAAAmG,QAGA,OACAN,QAAA,OACArE,UAAA,SAAAM,GACA,IAAA/H,EAAA+H,EAAA/H,MACAgoB,EAAAxiB,EAAAuC,EAAA4C,KAAAvJ,OACA8kB,EAAA8B,EAAA,GACA7B,EAAA6B,EAAA,GACA5mB,EAAA4mB,EAAA,GACAzB,EAAAyB,EAAA7rB,MAAA,GAEA6P,KAMA,OALAA,EAAA5Q,KAAA4qB,EAAAE,GAAA,MAAAD,EAAAE,GAAA,QACAC,EAAAziB,QAAA,SAAA6iB,EAAA/f,GACAuF,EAAA5Q,KAAAorB,EAAA,KAAAD,EAAA9f,GAAA,UAEAuF,EAAA5Q,KAAA2E,EAAAC,GAAA,IAAAoM,EAAA,KAAAjF,EAAA/F,EAAA8a,EAAA7U,GAAA,QACA2E,EAAA/L,KAAA,MA0FAgoB,EACA/L,WACA8J,iBACAC,iBACA5e,QACA+e,eACAha,YAGA9J,IAAmBqR,UAAAiU,GAAAzb,WACnB,eAAA9O,GACAgI,EAAA/C,GAAA6J,OAAA,IAAmC+b,iBAAA,OAAAhB,YAAAE,aAEnChe,EAAAxF,EAAAgD,GAAAoC,KAAA,SAAAgP,GACA,OAAA3S,GAAyB2R,KAAA8N,GAAgBxiB,OAEpC,QAAAjF,GACLiF,GAAA6J,OAAA,GAAA+b,iBAAA,MACApgB,GACAG,WACAC,mBACAC,wBACAC,iBACOY,KAAA,SAAA0b,GACP,IAAAyD,EAAA9iB,GAAgCmF,IAAAvC,GAAgBkM,GAGhD,OAFA8O,IAAAyB,EAAAzB,EAAAyB,IACA5lB,EAAAgkB,YAAA7a,EAAAyc,EAAAvB,GACA9d,GAAyB8O,IAAAgU,GAAe7lB,OAEnC,SAAAjF,GACLgI,EAAA/C,GAAA6J,OAAA,IAAmC+b,iBAAA,OAAAhB,YAAAE,aAEnCrd,EAAAnG,EAAAgD,GAAAoC,KAAA,SAAAgP,GACA,OAAA3S,GAAyB4R,QAAa3U,OAGtC+C,GAAuBqK,SAAAD,SAAAG,QAAAgL,IAAkDtY,KAIzE8lB,GAAA/iB,KAA6BwM,GAC7BpV,KAAA,YACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAmR,SA+BA,SAAAyB,GAAA7hB,EAAAP,GACA,IAAA0F,EAAA1F,EAAA0F,SACA8B,EAAAxH,EAAAwH,QACAyO,EAAAjW,EAAAiW,SACA7U,EAAApB,EAAAoB,MAEA2E,KACAhM,EAAAwG,EAAAxG,MACAiM,EAAAzF,EAAAyF,WACA7K,EAAAoF,EAAAmE,KAAAvJ,MAQA,OANA4K,EAAA5Q,KAAA2E,EAAAC,GAAA,IAAAiM,EAAA,QACA7K,EAAAuC,QAAA,SAAA2kB,EAAA1tB,GACA,IAAA6B,EAAAkP,EAAA8B,EAAA7S,KAAA6S,EAAA7S,GACA2tB,EAAAjkB,MAAAgkB,KAAAnhB,EAAAmhB,EAAApM,EAAAzO,EAAA7S,IAAAyM,GACA2E,EAAA5Q,KAAAqB,EAAA,KAAA8rB,EAAA,UAEAvc,EAAA/L,KAAA,IA6GA,IAAAuoB,GAAA,SAAA/a,EAAAF,EAAAG,EAAAC,GACA,IAAAE,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACAuO,EAAA1O,EAAAtB,QACAA,OAAA7E,IAAA6U,GAAA3O,EAAA,GAAAA,EAAA,IAAA2O,EACAH,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,KAAwDA,EACxD9B,EAAAzM,EAAAmB,UACAA,OAAAtH,IAAA4S,EAAA,WAAAA,EACApL,EAAArB,EAAAqB,UACAC,EAAAtB,EAAAsB,UACAhB,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACAM,EAAAZ,EAAAL,WACAA,OAAA9F,IAAA+G,KAA4DA,EAC5DC,EAAAb,EAAA/B,SACAA,OAAApE,IAAAgH,KAAwDA,EACxDka,EAAA/a,EAAAgb,eACAA,OAAAnhB,IAAAkhB,EAAA,OAAAA,EACA1a,EAAAL,EAAArD,YACAA,OAAA9C,IAAAwG,KACA4a,EAAAjb,EAAAkb,cACAA,OAAArhB,IAAAohB,EAAA,GAAAA,EACAE,EAAAnb,EAAAmb,OACAC,EAAApb,EAAAob,WACAC,EAAArb,EAAAqb,aACAC,EAAAtb,EAAAsb,aACAC,EAAAvb,EAAAub,OACApnB,EAAA6L,EAAA7L,IACAC,EAAA4L,EAAA5L,IACAsJ,EAAAsC,EAAAtC,MACAkB,EAAAoB,EAAApB,MACAD,EAAAqB,EAAArB,UAGA,GAAA1G,EAAA4H,GAAA,CACA,IAAA2b,EAAA7jB,KAAoCqI,GACpCqB,qBAAAxH,EACAyH,qBAAAzH,EACA6D,iBAAA7D,EACA1F,eAAA0F,EACAzF,eAAAyF,EACA6C,qBAAA7C,IAEAjF,EAAA2X,GAAAxM,EAAAF,EAAA2b,EAAAvb,GACA,OAAArL,KAAA6J,QACA7J,EAAA6J,OAAAxI,QAAA,SAAA6C,GACAnB,EAAAmB,GACAnJ,KAAA,UACAwrB,SACAC,cAAA,GACAC,eACAC,eACAC,SACA3c,QACAD,gBAGA/J,MAGA,IA5MA2D,EA4MAwI,EAAAd,EAAAc,eACAC,EAAAf,EAAAe,cAEAya,EAAA1lB,OAAAC,KAAA6J,GA2CA,OAAYoC,OAzCZjB,GA1NA,SAAAya,EAAA9b,GACA,OACA1C,KAAAwe,EACA1hB,UAAA,SAAAhL,GACA,aAAA4Q,EAAA5Q,GAAA4Q,EAAA5Q,OAsNA2sB,CAAAD,EAAA9b,GAyCYuC,QAxCZnB,IA9MA3C,SAJA7F,GAmNAyiB,iBACA/c,WACA8B,UACAyO,WACA7U,UAtNAqhB,eAIAjhB,UAAA,SAAAjB,GACA,OAAAb,EAAAa,GACAA,EAAAgE,IAAA,SAAA5P,GACA,OAAAytB,GAAAztB,EAAAqL,KACWhG,KAAA,IAEXooB,GAAA7hB,EAAAP,KA+OYyJ,MArNZ,SAAAzJ,GACA,IAAA8I,EAAA9I,EAAA8I,UACA1E,EAAApE,EAAAoE,YACAwE,EAAA5I,EAAA4I,UACAtB,EAAAtH,EAAAsH,KACA4b,EAAAljB,EAAAkjB,WACA/e,EAAAnE,EAAAmE,UAEAO,KASA,OARAwe,EAAAxlB,QAAA,SAAA0lB,GACA9b,EAAA8b,GACA1lB,QAAA,SAAA6C,GACA,IAAA/J,EAAA+J,EAAA4D,GACA3N,KAAAkO,EAAAhR,QAAA8C,IAAAkO,EAAAvP,KAAAqB,SAKAY,KAAAwR,EACA3P,KAAAmL,EACA5N,KAAAsS,EACApE,SA+JA2e,EACAva,YACA1E,cACAwE,YACAsa,aACA/e,YACAmD,SA2BYkC,MA5LZ,SAAAxJ,GACA,IAAApE,EAAAoE,EAAApE,IACAC,EAAAmE,EAAAnE,IACAsJ,EAAAnF,EAAAmF,MACA4D,EAAA/I,EAAA+I,UACAkN,EAAAjW,EAAAiW,SACA9P,EAAAnG,EAAAmG,QACA/E,EAAApB,EAAAoB,MAIA,OACAhK,KAAA,QACA6B,KALA+G,EAAAoE,YAMAe,QACAvJ,MACAC,MACA3C,UAAiBD,MAAA,GACjBzC,KAAAuS,EACAjE,WACAtD,UAAA,SAAAL,GACA,OAAAD,EAAAC,EAAA8U,EAAA9P,EAAA,IAAA/E,MA8IAkiB,EACA1nB,MACAC,MACAsJ,QACA4D,YACAkN,WACA9P,UACA/E,QACAgD,gBAiBY8B,OAjKZ,SAAAlG,GACA,IAAAsH,EAAAtH,EAAAsH,KACA4b,EAAAljB,EAAAkjB,WACA1b,EAAAxH,EAAAwH,QACArB,EAAAnG,EAAAmG,QACAhC,EAAAnE,EAAAmE,UACAkC,EAAArG,EAAAqG,MACAD,EAAApG,EAAAoG,UACAwc,EAAA5iB,EAAA4iB,OACAD,EAAA3iB,EAAA2iB,cACAE,EAAA7iB,EAAA6iB,WACAC,EAAA9iB,EAAA8iB,aACAC,EAAA/iB,EAAA+iB,aACAC,EAAAhjB,EAAAgjB,OAEA7C,EAAA3Y,EAAAwT,OAAA,SAAAuG,GACA,QAAApb,EAAAzS,QAAA6tB,QAAApd,IAEAof,KACAL,EAAAxlB,QAAA,SAAA0lB,GACA9b,EAAA8b,GAAA1lB,QAAA,SAAAmH,GACA0e,EAAApuB,KAAA0P,EAAAsB,EAAA,SAGA,IAAAqd,EAAA7nB,KAAAE,IAAAsE,MAAA,KAAAojB,GAEArd,KAyBA,OAxBAgd,EAAAxlB,QAAA,SAAA0lB,GACA,IAAAze,KACA2C,EAAA8b,GACA1lB,QAAA,SAAA6C,GACA,IAAA8d,GAA0BljB,UAC1BkjB,EAAAljB,MAAAhG,KAAAoL,EAAA4D,GAAA5D,EAAA4F,EAAA,IAAA5F,EAAA4F,EAAA,KACAga,EAAAziB,QAAA,SAAA+lB,GACApF,EAAAljB,MAAAhG,KAAAoL,EAAAkjB,MAEApF,EAAAwE,cAAAtiB,EAAA4F,EAAA,IAAAqd,EAAAb,EACAhe,EAAAxP,KAAAkpB,KAEAnY,EAAA/Q,MACAiC,KAAA,UACAsN,KAAAC,EACAnO,KAAA4sB,EACA/c,QACAD,YACAwc,SACAE,eACAC,eACAC,aAGA9c,EA+FAwd,EACApc,OACA4b,aACA1b,UACArB,UACAhC,YACAkC,QACAD,YACAwc,SACAD,gBACAE,aACAC,eACAC,eACAC,aAKAW,GAAAvkB,KAA6BwM,GAC7BpV,KAAA,YACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAA+S,SAKAqB,IAAA,YACAC,GAAA,KAKAC,IAAoB7qB,MAAA,GAiOpB,IAAA8qB,GAAA,SAAAvc,EAAAF,EAAAG,EAAAoC,GACA,IAAAjC,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACAuO,EAAA1O,EAAAtB,QACAA,OAAA7E,IAAA6U,EAAA3O,EAAAtR,MAAA,KAAAigB,EACApO,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACA3B,EAAAqB,EAAArB,UACAkC,EAAAb,EAAA/B,SACAA,OAAApE,IAAAgH,KAAwDA,EACxDD,EAAAZ,EAAAL,WACAA,OAAA9F,IAAA+G,KAA4DA,EAC5D2b,EAAAvc,EAAAwc,GACAA,OAAA3iB,IAAA0iB,EAAAJ,GAAAI,EACAE,EAAAzc,EAAA0c,OACAA,OAAA7iB,IAAA4iB,KACAE,EAAA3c,EAAA4c,QACAA,OAAA/iB,IAAA8iB,KACAE,EAAA7c,EAAA8c,aACAA,OAAAjjB,IAAAgjB,KACAE,EAAA/c,EAAAgd,UACAA,OAAAnjB,IAAAkjB,EA1PA,UA0PAA,EACAE,EAAAjd,EAAAkd,QACAA,OAAArjB,IAAAojB,EA3PA,UA2PAA,EACAE,EAAAnd,EAAArR,MACAA,OAAAkL,IAAAsjB,EA5PA,GA4PAA,EACAC,EAAApd,EAAAqd,IACAA,OAAAxjB,IAAAujB,EA7PA,IA6PAA,EACA5O,EAAAxO,EAAAwO,SACAzN,EAAAqB,EAAArB,eACAC,EAAAoB,EAAApB,cAGAsc,EAAArlB,EAAA4H,EAAA,IACAhD,KACA0gB,KACAC,KACAC,EAAA/e,EAAAjQ,MAAA,KACAivB,EAAAhf,EAAA,GAEA4e,EACAzd,EAAA5J,QAAA,SAAAmH,GACA,IAAAwZ,KACA/Z,EAAAnP,KAAA0P,EAAA2C,EAAA9T,QAAAyQ,KACA+gB,EAAAxnB,QAAA,SAAA6C,GACA8d,EAAAlpB,KAAA0P,EAAA2C,EAAA9T,QAAA6M,OAEAykB,EAAA7vB,KAAAkpB,GACA8G,GAAAF,EAAA9vB,KAAA0P,EAAA2C,EAAA9T,QAAAyxB,OAGA7d,EAAA5J,QAAA,SAAAmH,EAAArE,GACA,IAAA6d,KAMA,GALA/Z,EAAAnP,KAAA0P,EAAAV,IACA+gB,EAAAxnB,QAAA,SAAA6C,GACA8d,EAAAlpB,KAAA0P,EAAAtE,MAEAykB,EAAA7vB,KAAAkpB,GACA8G,EAAA,CACA,IAAAC,EAAAvgB,EAAAsB,EAAA,IAAAtB,EAAAsB,EAAA,SACA8e,EAAA9vB,MAAAqL,EAAAqE,EAAAsgB,GAAAC,OAKA,IAAA7b,EAAAd,GAhSA,SAAAzI,GACA,IAAAmkB,EAAAnkB,EAAAmkB,OACAF,EAAAjkB,EAAAikB,GACA7c,EAAApH,EAAAoH,WACA1B,EAAA1F,EAAA0F,SAEAhB,GAAAmf,IAOA,OANAM,IAAAzf,IAAAiE,OAAAsb,EAAA1f,IAAA,SAAA5D,GACA,WAAAA,MAEA+E,IAAAhB,IAAAH,IAAA,SAAA5D,GACA,aAAA+E,EAAA/E,KAAA+E,EAAA/E,OAGA+D,OACAlD,UAAA,SAAAhL,GACA,aAAA4Q,EAAA5Q,GAAA4Q,EAAA5Q,OAgRA6uB,EAAsDlB,SAAAF,KAAA7c,aAAA1B,aACtDiP,EAAAnM,GA5QA,SAAAxI,GACA,IAAAmG,EAAAnG,EAAAmG,QACA8P,EAAAjW,EAAAiW,SACA7U,EAAApB,EAAAoB,MACAsE,EAAA1F,EAAA0F,SAEA,OACAG,QAAA,OACAmI,aAAoB5W,KAAA,SACpB4K,SAAA,SAAAsjB,EAAAC,EAAAlxB,EAAAmxB,EAAAC,GACA,IAAA9gB,GAAsBiB,IAAA,IAGtB,OADAjB,EADA2gB,EAAA,GAAAG,EAAAC,SAAA,qBACA,GACA/gB,GAEAnD,UAAA,SAAAnF,GACA,IAAA0J,KAyBA,OAxBAA,EAAA5Q,KAAAkH,EAAA,GAAAspB,UAAA,QACAtpB,EAAAqB,QAAA,SAAAmT,GACA,IAAAnM,EAAAmM,EAAAnM,KACAsB,EAAA6K,EAAA7K,WACA4f,EAAA/U,EAAA+U,iBACA7rB,EAAA8W,EAAA9W,MAEAvD,EAAA,MAAAkP,EAAAM,KAAAN,EAAAM,GAEA,GADAD,EAAA5Q,KAAA2E,EAAAC,GAAA,IAAAvD,EAAA,MACA,gBAAAovB,EACA7f,EAAA5Q,KAAA,QACAgR,EAAAjQ,MAAA,KAAAwH,QAAA,SAAA6iB,EAAA5rB,GACA,IAAA6B,EAAA,MAAAkP,EAAA6a,GAAA7a,EAAA6a,KACApf,EAAAD,EAAAwD,EAAA/P,EAAA,GAAAshB,EAAA7U,GACA2E,EAAA5Q,KAAA,KAAAqB,EAAA,KAAA2K,EAAA,eAEW,YAAAykB,EAAA,CACX,IAAAzkB,EAAAD,EAAAwD,EAAAuR,EAAA7U,GACA2E,EAAA5Q,KAAAgM,EAAA,aACW,WAAAykB,EAAA,CACX,IAAAC,EAAA3kB,EAAAwD,EAAA,GAAAuR,EAAA7U,GACA2E,EAAA5Q,KAAA0wB,EAAA,WAGA9f,EAAA/L,KAAA,MAmOA8rB,EAAyD3f,UAAA8P,WAAA7U,QAAAsE,aACzDic,EAAA0C,GA/NA,SAAArkB,GACA,IAAAykB,EAAAzkB,EAAAykB,UACAE,EAAA3kB,EAAA2kB,QACAV,EAAAjkB,EAAAikB,GAGA,OACAhrB,MAAA,EACA8sB,YAJA/lB,EAAAmkB,OAIA,EAAAF,EAAApvB,OAAA,EACAsP,UAAA,EACA6hB,SAAgB7qB,MAAA,EAAApB,MAAA0qB,IAAgCtpB,OAAA,EAAApB,MAAA4qB,KAqNhDsB,EAAsDxB,YAAAE,UAAAV,KAAAE,WACtD+B,EAAA3B,GA7JA,SAAAvkB,GACA,IAAA5J,EAAA4J,EAAA5J,MACA0uB,EAAA9kB,EAAA8kB,IAGA,QACA1tB,KAAA,SACA+uB,YAAA,KACA/vB,QACA0uB,QAEA7rB,MAAA,EACAktB,YAAA,KACA/uB,KAAA,SACAwO,IAAA,MACAxP,QACA0uB,QA6IAsB,EAAyDhwB,QAAA0uB,QAiBzD,OAAYpb,OAAAH,EAAAI,QAAAgL,EAAAjH,UAAAiU,EAAApoB,OA/NZE,KAAA,MACAC,MAAA,KACAkM,IAAA,MACAiH,QA4M8BwX,WAlN9BA,QAMA,YACA7qB,cAAA,IAEAC,KAAA,MACAC,MAAA,KACAkM,IAAA,MACAiH,OAAA,MACArT,cAAA,IAqNYiQ,MAjNZ,SAAAzJ,GACA,IAAA0E,EAAA1E,EAAAsE,KAMAtL,GAAoBqtB,QAAA,GAOpB,QAAajvB,KAXb,WAWasN,OAAAS,OAVb,EAUamhB,aATb,EASattB,WAAAG,UARb2qB,GAQaloB,IAJb,UAIaC,IAHb,YAG+IzE,KAX/I,WAW+ImvB,UAF/I,EAE+I7hB,OAAAS,OAV/I,EAU+ImhB,aAT/I,EAS+IttB,WAAAE,SAN/I4qB,GAM+I3qB,UAR/I2qB,GAQ+Ihf,UAL/Igf,GAK+IloB,IAJ/I,UAI+IC,IAH/I,YAuLA2qB,EAAgCliB,SAepBkF,MAhMZ,SAAAxJ,GACA,IAAAiW,EAAAjW,EAAAiW,SACA7U,EAAApB,EAAAoB,MAaA,QAAa+D,OAXb,EAWajM,SAPb4qB,GAOahf,WAA+CtD,UAJ5D,SAAAL,GACA,OAAAD,EAAAC,EAAA8U,EAAA7U,OAGwF+D,OAXxF,EAWwFohB,UAVxF,EAUwF3K,YATxF,EASwF5iB,SARxF8qB,GAQwF5qB,SAPxF4qB,GAOwF3qB,UALxF2qB,GAKwFhf,UANxFgf,KAyKA2C,EAAgCxQ,WAAA7U,UAcpBuM,SAAAuY,EAAAhgB,OA1JZ,SAAAlG,GACA,IAAAglB,EAAAhlB,EAAAglB,OACAC,EAAAjlB,EAAAilB,QACAN,EAAA3kB,EAAA2kB,QACAF,EAAAzkB,EAAAykB,UACAN,EAAAnkB,EAAAmkB,OACAF,EAAAjkB,EAAAikB,GACAI,EAAArkB,EAAAqkB,QACA3e,EAAA1F,EAAA0F,SACAtE,EAAApB,EAAAoB,MAGA+K,EAFAnM,EAAAoG,YAGAoP,QACAzb,MAAA4qB,EACA+B,OAAAjC,EACAkC,YAAA,KACAC,aAAA,OAGApS,GAAqBgB,QAAU/O,QAAA,KAC/BP,IACA1P,KAAA,MAAAkP,EAAAme,OAAAne,EAAAme,IACAzsB,KAAA,cACAsN,KAAAsgB,EACA5e,UAAA+F,IA0BA,OAvBAgY,GACAF,EAAAvmB,QAAA,SAAA2kB,GACA,IAAA7rB,EAAA,KAAA6rB,EACAnc,EAAA/Q,MACAqB,KAAA,MAAAkP,EAAAlP,KAAAkP,EAAAlP,GACAkO,KAqBA,SAAAmiB,EAAAniB,EAAAtD,GACA,IAAAuD,KAWA,OAVAD,EAAAhH,QAAA,SAAA2kB,EAAA1tB,GACA,GAAAA,EAAAkyB,EACAliB,EAAAxP,KAAA,SACO,CAEP,IADA,IAAA+iB,EAAA,EACA4O,EAAA,EAAuBA,EAAAD,EAAcC,IACrC5O,GAAAxT,EAAA/P,EAAAmyB,GAAA,GACSniB,EAAAxP,OAAA+iB,EAAA2O,GAAA3rB,QAAAkG,OAGTuD,EAjCAoiB,CAAA1E,EAAA2C,EAAA5jB,GACAhK,KAAA,OACAod,YACAlb,QAAA,MAKA+qB,GACAne,EAAA/Q,MACAqB,KAAA,SACAY,KAAA,MACA+uB,WAAA,EACA1Q,WAAA,EACA/Q,KAAAugB,IAIA/e,EA0FA8gB,EACAhC,SACAC,UACAN,UACAF,YACAN,SACAF,KACAI,UACA3e,WACAtE,QACAgF,cAGY4H,aADW5L,MAAQ+jB,WAAA,UAI/Bc,GAAA7nB,KAA4BwM,GAC5BpV,KAAA,WACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAuU,SA6EA,IAAAmD,GAAA,SAAA1f,EAAAF,EAAAG,EAAAC,GACA,IAAAE,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACAuO,EAAA1O,EAAAtB,QACAA,OAAA7E,IAAA6U,EAAA3O,EAAA,GAAA2O,EACApO,EAAAN,EAAArG,MACAA,OAAAE,IAAAyG,EAAA,EAAAA,EACAiO,EAAAvO,EAAAwO,SACAA,OAAA3U,IAAA0U,KAAwDA,EACxD1N,EAAAb,EAAA/B,SACAA,OAAApE,IAAAgH,KAAwDA,EACxD6e,EAAA1f,EAAA2f,UACAA,OAAA9lB,IAAA6lB,KAA0DA,EAC1DE,EAAA5f,EAAA6f,SACAA,OAAAhmB,IAAA+lB,KAAwDA,EACxDzY,EAAAlH,EAAAkH,iBAmBA,OAAYjF,QAlBZjC,EAAAc,gBAxFA,SAAAxI,GACA,IAAA4O,EAAA5O,EAAA4O,iBACAqH,EAAAjW,EAAAiW,SACA7U,EAAApB,EAAAoB,MAEA,OACAI,UAAA,SAAAnF,GACA,IAAA2J,EAAA3J,EAAA2J,WACAuhB,EAAAlrB,EAAAqI,KACAvJ,EAAAosB,EAAApsB,MACA3E,EAAA+wB,EAAA/wB,KAEA,GAAAoY,EACA,OAAAA,EAAAzO,MAAA,KAAAzH,WAEA,IAAAqN,KAGA,OAFAA,EAAA5Q,KAAA6Q,EAAA,MACAD,EAAA5Q,KAAA+L,EAAA/F,EAAA8a,EAAAjQ,GAAA5E,GAAA,IAAA5K,GACAuP,EAAA/L,KAAA,MAyEAwtB,EACA5Y,mBACAqH,aAaY/P,OAnFZ,SAAAlG,GACA,IAAAsH,EAAAtH,EAAAsH,KACAnD,EAAAnE,EAAAmE,UACAgC,EAAAnG,EAAAmG,QACA/E,EAAApB,EAAAoB,MACA6U,EAAAjW,EAAAiW,SACAvQ,EAAA1F,EAAA0F,SACA0hB,EAAApnB,EAAAonB,UACAE,EAAAtnB,EAAAsnB,SAsCA,OAnCAhgB,EAAA/C,IAAA,SAAAM,GACA,IAAAwB,EAAAxB,EAAAV,GACA0C,EAAAugB,EAAA/gB,GACA1B,GACAvN,KAAA,QACAZ,KAAA,MAAAkP,EAAAW,GAAAX,EAAAW,KACA3B,OACAlO,KAAA8wB,EAAAjhB,IAAA,GACAlL,MAAA0J,EAAAsB,KAEAshB,QACAjmB,UAAA,SAAAb,GACA,OAAAO,EAAAP,EAAAsV,EAAA5P,GAAAjF,KAGA0D,WACAtD,UAAA,SAAAb,GACA,OAAAO,EAAAP,EAAAsV,EAAA5P,GAAAjF,MAeA,OAVAyF,GACArJ,OAAAC,KAAAoJ,GAAAnJ,QAAA,SAAAC,GACAnK,EAAAmR,EAAAhH,IACAyB,EAAAuF,EAAAhH,GAAAkJ,EAAAlJ,IAEAgH,EAAAhH,GAAAkJ,EAAAlJ,KAKAgH,IA8BA+iB,EACApgB,OACAnD,YACAgC,UACA/E,QACA6U,WACAvQ,WACA0hB,YACAE,eAKAK,GAAAvoB,KAA2BwM,GAC3BpV,KAAA,UACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAA0X,SAyDA,IAAAU,GAAA,SAAApgB,EAAAF,EAAAG,EAAAC,GACA,IAAAE,EAAAH,EAAAtD,UACAA,OAAA7C,IAAAsG,EAAAJ,EAAA,GAAAI,EACAuO,EAAA1O,EAAAtB,QACAA,OAAA7E,IAAA6U,EAAA3O,EAAA,GAAA2O,EACAgR,EAAA1f,EAAA2f,UACAA,OAAA9lB,IAAA6lB,KAA0DA,EAC1D1e,EAAAf,EAAAe,cACAmG,EAAAlH,EAAAkH,iBACApG,EAAAd,EAAAc,eAgBA,OAAYtC,OAxDZ,SAAAlG,GACA,IAAAmE,EAAAnE,EAAAmE,UACAgC,EAAAnG,EAAAmG,QACAmB,EAAAtH,EAAAsH,KACA8f,EAAApnB,EAAAonB,UAGAlhB,KAqBA,OApBAoB,EAAA5J,QAAA,SAAAmH,GACA,IAAAwB,EAAAxB,EAAAV,GACA0C,EAAAugB,EAAA/gB,GACA1B,GACAvN,KAAA,OACAZ,KAAAqO,EAAAV,GACAO,KAAAG,EAAAsB,IAEAihB,EAAAviB,EAAAV,KACA3G,OAAAC,KAAAoJ,GAAAnJ,QAAA,SAAAC,GACAnK,EAAAmR,EAAAhH,IACAyB,EAAAuF,EAAAhH,GAAAkJ,EAAAlJ,IAEAgH,EAAAhH,GAAAkJ,EAAAlJ,KAIAuI,EAAA/Q,KAAAwP,KAGAuB,EAeA2hB,EACA1jB,YACAgC,UACAmB,OACA8f,cASY1d,OAPZjB,GAAAnB,EAAAzS,OAAA,GAtEA,SAAAmL,GACA,IAAAmE,EAAAnE,EAAAmE,UAMA,OAAYO,KALZ1E,EAAAsH,KAEA/C,IAAA,SAAAM,GACA,OAAAA,EAAAV,MAiEA2jB,EACA3jB,YACAmD,SAKYqC,QAHZnB,IA3DA3C,QAAA,OACAlO,UAAA,YACA6J,WA0DAoN,oBAhEAA,oBAqEAmZ,GAAA3oB,KAA0BwM,GAC1BpV,KAAA,SACAkO,KAAA,WAEA,OADA9Q,KAAA4b,aAAAoY,SAKAI,IAAAlU,GAAAC,GAAA4B,GAAA8C,GAAAC,GAAA0B,GAAAiB,GAAAkB,GAAAC,GAAAkC,GAAAK,GAAAC,GAAAY,GAAAuC,GAAAwB,GAAAsD,GAAAU,GAAAI,IAEA,SAAAE,GAAAC,EAAAnW,GACAiW,GAAAtqB,QAAA,SAAAyqB,GACAD,EAAAC,YAAA3xB,KAAA2xB,KA6BA,MAzBA,oBAAA5kB,eAAA2kB,KACAD,GAAA1kB,OAAA2kB,MAIApU,SACAC,eACA2E,UACA/C,UACA8C,SACA2B,eACAiB,YACAkB,WACAC,WACAkC,SACAK,UACAC,UACAY,YACA+D,aACAsD,YACAU,WACAI,UACAE,aA12H8DnxB,EAAAC,QAAA6B,EAA4BzF,EAAQ,QAAwBA,EAAQ,QAAkCA,EAAQ,QAAiCA,EAAQ,QAA0BA,EAAQ,QAA2BA,EAAQ,QAA0BA,EAAQ,QAA6BA,EAAQ,QAA4BA,EAAQ,QAA0BA,EAAQ,QAAgCA,EAAQ,QAAiBA,EAAQ,QAA6BA,EAAQ,QAA8BA,EAAQ,QAAoCA,EAAQ,QAA8BA,EAAQ,QAAkCA,EAAQ,QAAmCA,EAAQ,QAA4BA,EAAQ,iCCD9vB,IAoBA0D,EApBc1D,EAAQ,QAoBtBi1B,sBACAhxB,KAAA,UACAixB,cAAA,eACAC,eACAC,OAAA,EACAC,EAAA,EACAvvB,MAAA,EAEAwvB,aAAA,EAGA5iB,QAAA,OAEAlO,UAAA,kBACA+wB,mBAAA,EACAC,YAAA,SAQAC,SAAA,EAGAC,UAAA,EAEAC,UAAA,IAEAC,mBAAA,GACAC,WAAA,EAEA3a,gBAAA,qBAEAsY,YAAA,OAEAsC,aAAA,EAEAC,YAAA,EAGAC,QAAA,EAEAC,aAAA,GAEApb,aAGA5W,KAAA,OAKAiyB,KAAA,OACAj0B,UAAA,OACAk0B,wBAAA,IACAC,sBAAA,iBACAC,YACAzvB,MAAA,OACA6S,MAAA,EACAxV,KAAA,SAEAkX,eAKAA,WACAvU,MAAA,OACA0vB,SAAA,OAKA3yB,EAAAC,QAAAF,0BC/FA,IAAAuX,EAAcjb,EAAQ,QAEtBu2B,EAAsBv2B,EAAQ,QAE9Bw2B,EAAiBx2B,EAAQ,QAEzBy2B,EAA0Bz2B,EAAQ,QAElC02B,EAAe12B,EAAQ,QAoBvB22B,EAAAJ,EAAApsB,QAIAysB,aAAA,SAAAC,EAAA7uB,EAAA8uB,EAAAC,EAAA1yB,GACA,IAAA6xB,EAAAY,EAAAZ,KACA9vB,EAAA8vB,EAAA9vB,KACA4wB,EAAAD,EAAAtyB,IAAA,QACAwyB,EAAAC,EAAA9wB,EAAA8vB,GAAAiB,aAAAjB,GAAAkB,kBACAC,EAAAnB,EAAAoB,cAAApB,EAAAqB,YAAAvvB,GAAA,IAEA,GAAAgvB,GAAA,SAAAA,EAAA,CACA,IAAAQ,EAAAhB,EAAAiB,aAAAV,GACAW,EAAAC,EAAAX,GAAAd,EAAAmB,EAAAJ,EAAAO,GACAE,EAAA1e,MAAAwe,EACAX,EAAAe,WAAAF,EAAAzzB,KACA4yB,EAAAgB,QAAAH,EAGA,IAAAI,EAAArB,EAAAsB,OAAA3xB,EAAA4xB,MAAAlB,GACAN,EAAAyB,kCAAAjwB,EAAA6uB,EAAAiB,EAAAhB,EAAAC,EAAA1yB,IAMA6zB,mBAAA,SAAAlwB,EAAA8uB,EAAAC,GACA,IAAAe,EAAArB,EAAAsB,OAAAjB,EAAAZ,KAAA9vB,KAAA4xB,MAAAlB,GACAqB,aAAA,IAGA,OADAL,EAAAM,YAAArB,EAAAtyB,IAAA,kBAEAoK,SAAA2nB,EAAA6B,uBAAAvB,EAAAZ,KAAAluB,EAAA8vB,GACAQ,SAAAR,EAAAQ,UAAAR,EAAAS,eAAA,EAAA/vB,KAAAgwB,GAAA,KAOAC,sBAAA,SAAAC,EAAAC,EAAA7B,EAAAC,GACA,IAAAb,EAAAY,EAAAZ,KACA9vB,EAAA8vB,EAAA9vB,KACAwyB,EAAA1C,EAAAkB,iBAAA,GACAH,EAAAC,EAAA9wB,EAAA8vB,GAAAiB,aAAAjB,GAAAkB,kBACAyB,EAAA,MAAA3C,EAAA4C,IAAA,IACAC,EAAAL,EAAA7pB,SACAkqB,EAAAF,IAAAF,EAAAE,GACAE,EAAAF,GAAArwB,KAAAC,IAAAmwB,EAAA,GAAAG,EAAAF,IACAE,EAAAF,GAAArwB,KAAAE,IAAAkwB,EAAA,GAAAG,EAAAF,IACA,IAAAG,GAAA/B,EAAA,GAAAA,EAAA,MACAgC,GAAAD,KACAC,EAAAJ,GAAAE,EAAAF,GAOA,OACAhqB,SAAAkqB,EACAT,SAAAI,EAAAJ,SACAW,cACAC,gBARAC,cAAA,WAEAC,MAAA,WAMAP,OAKA,SAAA3B,EAAA9wB,EAAA8vB,GACA,IAAAmD,KAEA,OADAA,EAAAnD,EAAA4C,IAAA,aAAA5C,EAAA7oB,MACAjH,EAAA8wB,aAAAmC,GAGA,IAAA1B,GACAzxB,KAAA,SAAAgwB,EAAAmB,EAAAJ,EAAAO,GACA,IAAA8B,EAAA9C,EAAA+C,eAAAlC,EAAAJ,EAAA,KAAAI,EAAAJ,EAAA,IAAAuC,EAAAtD,IAKA,OAJAjb,EAAAwe,sBACAjR,MAAA8Q,EACAtgB,MAAAwe,KAGAvzB,KAAA,OACAukB,MAAA8Q,IAGAI,OAAA,SAAAxD,EAAAmB,EAAAJ,EAAAO,GACA,IAAAmC,EAAAnxB,KAAAE,IAAA,EAAAwtB,EAAA0D,gBACAC,EAAA5C,EAAA,GAAAA,EAAA,GACA,OACAhzB,KAAA,OACAukB,MAAAgO,EAAAsD,eAAAzC,EAAAsC,EAAA,EAAA1C,EAAA,KAAA0C,EAAAE,GAAAL,EAAAtD,OAKA,SAAAsD,EAAAtD,GACA,YAAAA,EAAA4C,IAAA,IAGApC,EAAAqD,yBAAA,uBAAApD,GACA,IAAAjzB,EAAAizB,EACAhzB,EAAAC,QAAAF,0BClIA1D,EAAQ,QAERA,EAAQ,QAERA,EAAQ,gCCJRA,EAAQ,QAERA,EAAQ,gCCFR,IAoBA0D,EApBoB1D,EAAQ,QAoB5BmK,QACAlG,KAAA,aACAixB,cAAA,gBACA8E,cAAA,OAKAC,eAAA,WAEA,QAAAx5B,KAAAgE,IAAA,UAAAhE,KAAAgE,IAAA,gBAMAy1B,wBAAA,WAEA,IAAAC,EAAA15B,KAAAgE,IAAA,wBACA21B,EAAA35B,KAAAgE,IAAA,kBAMA,OAJA21B,EAAAD,IACAA,EAAAC,GAGAD,KAIAx2B,EAAAC,QAAAF,0BCjDc1D,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAErBu6B,EAAiBv6B,EAAQ,QAEzBw6B,EAAgBx6B,EAAQ,QAExBy6B,EAAwBz6B,EAAQ,QAEhCib,EAAcjb,EAAQ,QAEtB06B,EAAgB16B,EAAQ,QAExB26B,EAAY36B,EAAQ,QAEpB46B,EAAAD,EAAAC,SACAC,EAAAF,EAAAE,QAEAC,EAAgB96B,EAAQ,QAIxB6K,EAFc7K,EAAQ,QAEtB6K,MAEAkwB,EAAc/6B,EAAQ,QAEtBg7B,EAAAD,EAAAC,qBACAC,EAAAF,EAAAE,kBAqBA,SAAAC,EAAAC,EAAAC,GACA,GAAAD,EAAAz5B,SAAA05B,EAAA15B,OAAA,CAIA,QAAAF,EAAA,EAAiBA,EAAA25B,EAAAz5B,OAAoBF,IAAA,CACrC,IAAA65B,EAAAF,EAAA35B,GACA85B,EAAAF,EAAA55B,GAEA,GAAA65B,EAAA,KAAAC,EAAA,IAAAD,EAAA,KAAAC,EAAA,GACA,OAIA,UAGA,SAAAC,EAAAp1B,GACA,uBAAAA,MAAA,KAGA,SAAAq1B,EAAAtF,GACA,IAAAuF,EAAAvF,EAAAkB,kBAEA,GAAAlB,EAAAwF,OAAA,CAEA,IAAAC,EAAAzF,EAAA0D,eAAA,IACAgC,EAAAH,EAAA,GAAAA,EAAA,QACAA,EAAA,IAAAG,EAAAD,EACAF,EAAA,IAAAG,EAAAD,EAGA,OAAAF,EAgHA,SAAAI,EAAAC,EAAAC,EAAAC,EAAAC,GACA,gBAAAH,EAAA73B,KAtCA,SAAAi4B,EAAAH,EAAAC,EAAAC,GACA,IAAAE,EAAAD,EAAAE,eAEAC,EADAH,EAAAI,gBACAC,YAAAx5B,QACAs5B,EAAA,GAAAA,EAAA,IAAAA,EAAArU,UACA,IAAAwU,EAAAL,EAAAI,YACAE,EAAAj0B,KAAAgwB,GAAA,IAEAwD,IACAK,EAAA,OACAA,EAAA,QAGA,IAAAK,EAAA,IAAAzhB,EAAA0hB,QACAnU,OACAxQ,GAAAnN,EAAAqxB,EAAAlkB,GAAA,GACAC,GAAApN,EAAAqxB,EAAAjkB,GAAA,GACA2kB,GAAA/xB,EAAAwxB,EAAA,MACAnkB,EAAArN,EAAAwxB,EAAA,MACAQ,YAAAL,EAAA,GAAAC,EACAK,UAAAN,EAAA,GAAAC,EACAM,UAAAZ,EAAAa,WAaA,OATAjB,IACAW,EAAAlU,MAAAsU,UAAAN,EAAA,GAAAC,EACAxhB,EAAAgiB,UAAAP,GACAlU,OACAsU,UAAAN,EAAA,GAAAC,IAEKR,IAGLS,EAIAQ,CAAApB,EAAAC,EAAAC,EAAAC,GAzFA,SAAAkB,EAAApB,EAAAC,EAAAC,GACA,IAAAmB,EAAA5B,EAAA2B,EAAA9P,QAAA,MACAgQ,EAAA7B,EAAA2B,EAAA9P,QAAA,MACAiQ,EAAAH,EAAAI,cAAAD,eACAx4B,EAAA0D,KAAAC,IAAA20B,EAAA,GAAAA,EAAA,IACAp4B,EAAAwD,KAAAC,IAAA40B,EAAA,GAAAA,EAAA,IACA5jB,EAAAjR,KAAAE,IAAA00B,EAAA,GAAAA,EAAA,IAAAt4B,EACA4U,EAAAlR,KAAAE,IAAA20B,EAAA,GAAAA,EAAA,IAAAr4B,EAGA,GAAAg3B,EACAl3B,GAAA,GACA2U,GAAA,GACAzU,GAAA,GACA0U,GAAA,OACG,CACH,IAAA8jB,EAAAvB,EAAAx3B,IAAA,sBAEAg5B,EAAAxB,EAAAx3B,IAAA,gBAAA+4B,EAAA,EAAAh1B,KAAAE,IAAA+Q,EAAAC,GAEA4jB,GACAt4B,GAAAy4B,EACA/jB,GAAA,EAAA+jB,IAEA34B,GAAA24B,EACAhkB,GAAA,EAAAgkB,GAIA,IAAAf,EAAA,IAAAzhB,EAAAyiB,MACAlV,OACA1jB,IACAE,IACAyU,QACAC,YAcA,OAVAqiB,IACAW,EAAAlU,MAAA8U,EAAA,oBACAriB,EAAAgiB,UAAAP,GACAlU,OACA/O,QACAC,WAEKuiB,IAGLS,EAyCAiB,CAAA7B,EAAAC,EAAAC,EAAAC,GAGA,SAAA2B,EAAAC,EAAA/B,EAAAgC,GAKA,IAJA,IAAAC,EAAAjC,EAAAyB,cACAS,EAAA,MAAAD,EAAAjF,KAAA,WAAAiF,EAAAjF,IAAA,IACAmF,KAEAz8B,EAAA,EAAiBA,EAAAq8B,EAAAn8B,OAAA,EAAuBF,IAAA,CACxC,IAAA08B,EAAAL,EAAAr8B,EAAA,GACA28B,EAAAN,EAAAr8B,GACAy8B,EAAAj8B,KAAAm8B,GACA,IAAAC,KAEA,OAAAN,GACA,UACAM,EAAAJ,GAAAE,EAAAF,GACAI,EAAA,EAAAJ,GAAAG,EAAA,EAAAH,GAEAC,EAAAj8B,KAAAo8B,GACA,MAEA,aAEA,IAAAC,GAAAF,EAAAH,GAAAE,EAAAF,IAAA,EACAM,KACAF,EAAAJ,GAAAM,EAAAN,GAAAK,EACAD,EAAA,EAAAJ,GAAAG,EAAA,EAAAH,GACAM,EAAA,EAAAN,GAAAE,EAAA,EAAAF,GACAC,EAAAj8B,KAAAo8B,GACAH,EAAAj8B,KAAAs8B,GACA,MAEA,QACAF,EAAAJ,GAAAG,EAAAH,GACAI,EAAA,EAAAJ,GAAAE,EAAA,EAAAF,GAEAC,EAAAj8B,KAAAo8B,IAMA,OADAP,EAAAr8B,IAAAy8B,EAAAj8B,KAAA67B,EAAAr8B,IACAy8B,EAwFA,SAAAM,EAAAtC,EAAA1qB,EAAAuqB,GACA,IAAA0C,EAAAvC,EAAAx3B,IAAA,iBACAg6B,EAAA,SAAAD,EAEA,IAAAA,GAAAC,EAAA,CAIA,IAAA74B,EAAAk2B,EAAA4C,eAAA,cAEA,GAAA94B,KAOA64B,IAgBA,SAAA74B,EAAA2L,GAKA,IAAAqnB,EAAAhzB,EAAA22B,YACAoC,EAAAn2B,KAAAY,IAAAwvB,EAAA,GAAAA,EAAA,IAAAhzB,EAAAoM,MAAAhP,QACAkI,MAAAyzB,OAAA,GAMA,IAHA,IAAAC,EAAArtB,EAAAvO,QACA+kB,EAAAvf,KAAAE,IAAA,EAAAF,KAAAqC,MAAA+zB,EAAA,IAEAC,EAAA,EAAyBA,EAAAD,EAAqBC,GAAA9W,EAC9C,GAEA,IAFAyS,EAAAsE,cAAAvtB,EAAAstB,GACAj5B,EAAA03B,eAAA,KACAqB,EACA,SAIA,SApCAI,CAAAn5B,EAAA2L,IADA,CAMA,IAAAytB,EAAAztB,EAAA0tB,aAAAr5B,EAAAkzB,KACAvmB,KAIA,OAHA+nB,EAAA4E,KAAAt5B,EAAAu5B,gBAAA,SAAAC,GACA7sB,EAAA6sB,EAAAC,WAAA,IAEA,SAAAR,GACA,OAAAtsB,EAAAjP,eAAAiO,EAAA9M,IAAAu6B,EAAAH,OA4BA,IAAAn7B,EAAAo3B,EAAA3wB,QACAlG,KAAA,OACAgb,KAAA,WACA,IAAAqgB,EAAA,IAAArkB,EAAAskB,MACAC,EAAA,IAAAjF,EACA95B,KAAAg/B,MAAAC,IAAAF,EAAAC,OACAh/B,KAAAk/B,YAAAH,EACA/+B,KAAAm/B,WAAAN,GAEAp7B,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAy3B,EAAAG,EAAAnN,iBACA2Q,EAAAh/B,KAAAg/B,MACAluB,EAAA0qB,EAAAtP,UACAkT,EAAA5D,EAAA6D,SAAA,aACAC,EAAA9D,EAAA6D,SAAA,aACAjC,EAAAtsB,EAAAyuB,SAAAzuB,EAAA0uB,eACAC,EAAA,UAAApE,EAAA73B,KACAk8B,EAAA1/B,KAAA2/B,UACAZ,EAAA/+B,KAAAk/B,YACAU,EAAA5/B,KAAA6/B,UACAC,EAAA9/B,KAAA+/B,SACAlB,EAAA7+B,KAAAm/B,WACA7D,EAAAE,EAAAx3B,IAAA,aACAg8B,GAAAV,EAAAW,UACAC,EAAAZ,EAAAt7B,IAAA,UAEAm8B,EA7TA,SAAA9E,EAAAvqB,EAAAsvB,GACA,IAAAA,EAAAC,SACA,SAKA,IAFA,IAAAjD,KAEAkD,EAAA,EAAAz+B,EAAAiP,EAAAvO,QAAuC+9B,EAAAz+B,EAAWy+B,IAClDlD,EAAA77B,KAAAi5B,EAAA4F,EAAA/E,EAAAvqB,EAAAwvB,IAGA,OAAAlD,EAkTAmD,CAAAlF,EAAAvqB,EADAypB,EAAAc,EAAAvqB,EAAAovB,IAEAM,EAAAhF,EAAAx3B,IAAA,cACAy8B,EAAAD,IAAAf,GAAA3B,EAAAtC,EAAA1qB,EAAAuqB,GAEAqF,EAAA1gC,KAAAic,MACAykB,KAAAC,kBAAA,SAAAlgC,EAAA6/B,GACA7/B,EAAAmgC,SACA5B,EAAAv6B,OAAAhE,GACAigC,EAAAG,iBAAAP,EAAA,SAIAE,GACAzB,EAAAt6B,SAGAu6B,EAAAC,IAAAJ,GAEA,IAAAvX,GAAAmY,GAAAjE,EAAAx3B,IAAA,QAEA47B,GAAAF,EAAAl8B,OAAA63B,EAAA73B,MAAA8jB,IAAAtnB,KAAA8gC,OAoBAd,IAAAF,EAEAA,EAAA9/B,KAAA+gC,YAAA3D,EAAA+C,EAAA9E,EAAAC,GACOwE,IAAAE,IAEPnB,EAAAp6B,OAAAq7B,GACAA,EAAA9/B,KAAA+/B,SAAA,MAIAlB,EAAAmC,YAAA5F,EAAAC,GAAA,KAAAG,IAGAgF,GAAAzB,EAAAkC,WAAAnwB,GACAowB,SAAAT,EACAU,UAAA/F,EAAAC,GAAA,KAAAG,KAIA1qB,EAAA6vB,kBAAA,SAAAlgC,GACAA,EAAAkB,eAAA,KAIA84B,EAAAz6B,KAAAohC,iBAAAjB,IAAA1F,EAAAz6B,KAAAqhC,QAAAjE,KACA9B,EACAt7B,KAAAshC,iBAAAxwB,EAAAqvB,EAAA9E,EAAAz3B,EAAA0jB,EAAA4Y,IAGA5Y,IAEA8V,EAAAD,EAAAC,EAAA/B,EAAA/T,GACA6Y,EAAAhD,EAAAgD,EAAA9E,EAAA/T,IAGAsY,EAAA2B,UACAnE,WAEA0C,KAAAyB,UACAnE,SACA+C,wBA3DAK,GAAAzB,EAAAkC,WAAAnwB,GACAowB,SAAAT,EACAU,UAAA/F,EAAAC,GAAA,KAAAG,KAGAlU,IAEA8V,EAAAD,EAAAC,EAAA/B,EAAA/T,GACA6Y,EAAAhD,EAAAgD,EAAA9E,EAAA/T,IAGAsY,EAAA5/B,KAAAwhC,aAAApE,EAAA/B,EAAAC,GAEA0E,IACAF,EAAA9/B,KAAA+gC,YAAA3D,EAAA+C,EAAA9E,EAAAC,IAGAuD,EAAAmC,YAAA5F,EAAAC,GAAA,KAAAG,KAgDA,IAAAiG,EA9PA,SAAA3wB,EAAAuqB,GACA,IAAAqG,EAAA5wB,EAAA6wB,UAAA,cAEA,GAAAD,KAAAzgC,QAAA6P,EAAAvO,SAKA,gBAAA84B,EAAA73B,KAAA,CAOA,IAHA,IAAAo+B,EACAC,EAEA9gC,EAAA2gC,EAAAzgC,OAAA,EAAyCF,GAAA,EAAQA,IAAA,CACjD,IAAAq3B,EAAAsJ,EAAA3gC,GAAAwP,UACAuxB,EAAAhxB,EAAAixB,WAAA3J,GACA4J,EAAAlxB,EAAAmxB,iBAAAH,GAGA,UAFAF,EAAAI,KAAAJ,WAEA,MAAAA,EAAA,CACAC,EAAAH,EAAA3gC,GACA,OAIA,GAAA8gC,EAAA,CAUA,IAAApM,EAAA4F,EAAAzO,QAAAgV,GAEAM,EAAArI,EAAAlpB,IAAAkxB,EAAAM,MAAA,SAAArgC,GACA,OACAsgC,MAAA3M,EAAAoB,cAAApB,EAAAqB,YAAAh1B,EAAAyF,QACApB,MAAArE,EAAAqE,SAGAk8B,EAAAH,EAAAjhC,OACAqhC,EAAAT,EAAAS,YAAAhgC,QAEA+/B,GAAAH,EAAA,GAAAE,MAAAF,EAAAG,EAAA,GAAAD,QACAF,EAAA3a,UACA+a,EAAA/a,WAGA,IAEAgb,EAAAL,EAAA,GAAAE,MAFA,GAGAI,EAAAN,EAAAG,EAAA,GAAAD,MAHA,GAIAK,EAAAD,EAAAD,EAEA,GAAAE,EAAA,KACA,oBAGA5I,EAAA4E,KAAAyD,EAAA,SAAApgC,GACAA,EAAA4gC,QAAA5gC,EAAAsgC,MAAAG,GAAAE,IAEAP,EAAA3gC,MACAmhC,OAAAL,EAAAH,EAAAG,EAAA,GAAAK,OAAA,GACAv8B,MAAAm8B,EAAA,oBAEAJ,EAAAS,SAEAD,OAAAL,EAAAH,EAAA,GAAAQ,OAAA,GACAv8B,MAAAm8B,EAAA,oBAMA,IAAAM,EAAA,IAAApoB,EAAAqoB,eAAA,QAAAX,GAAA,GAGA,OAFAU,EAAAhB,GAAAW,EACAK,EAAAhB,EAAA,KAAAY,EACAI,IA4KAE,CAAAhyB,EAAAuqB,IAAAvqB,EAAA6wB,UAAA,SACA/B,EAAAmD,SAAAlJ,EAAAmJ,SACA5D,EAAA6D,gBACAvrB,KAAA,OACAwrB,OAAAzB,EACA0B,SAAA,WAEA,IAAAz9B,EAAA81B,EAAAx3B,IAAA,UAQA,GAPA0B,EAAAo1B,EAAAU,EAAAx3B,IAAA,WACA47B,EAAA2B,UACA77B,SACA09B,eAAA5H,EAAAx3B,IAAA,kBACAq/B,aAAA7H,EAAAx3B,IAAA,kBAGA87B,EAAA,CACA,IAAAwD,EAAAxyB,EAAAyyB,mBAAA,mBACAC,EAAA,EACA1D,EAAAiD,SAAAlJ,EAAAmJ,SAAA1D,EAAAmE,gBACA/rB,KAAA+pB,EACA5uB,QAAA,GACAswB,SAAA,WAGAG,IACAE,EAAA1I,EAAAwI,EAAAt/B,IAAA,YAGA87B,EAAAyB,UACA77B,SACA89B,kBACAJ,eAAA5H,EAAAx3B,IAAA,kBACAq/B,aAAA7H,EAAAx3B,IAAA,kBAIAhE,KAAAic,MAAAnL,EAEA9Q,KAAA2/B,UAAAtE,EACAr7B,KAAAohC,iBAAAjB,EACAngC,KAAAqhC,QAAAjE,EACAp9B,KAAA8gC,MAAAxZ,EACAtnB,KAAA0jC,aAAAxD,GAEAn7B,QAAA,aACA4+B,UAAA,SAAAnI,EAAA73B,EAAAC,EAAAggC,GACA,IAAA9yB,EAAA0qB,EAAAtP,UACAkS,EAAAnE,EAAA4J,eAAA/yB,EAAA8yB,GAEA,KAAAxF,aAAAvyB,QAAA,MAAAuyB,MAAA,GACA,IAAApP,EAAAle,EAAAgzB,iBAAA1F,GAEA,IAAApP,EAAA,CAEA,IAAA0O,EAAA5sB,EAAA0uB,cAAApB,GAEA,IAAAV,EAEA,QAGA1O,EAAA,IAAA+K,EAAAjpB,EAAAstB,IACAhwB,SAAAsvB,EACA1O,EAAA+U,KAAAvI,EAAAx3B,IAAA,UAAAw3B,EAAAx3B,IAAA,MACAgrB,EAAAgV,OAAAv5B,MAAAizB,EAAA,KAAAjzB,MAAAizB,EAAA,IACA1O,EAAA4R,QAAA,EACA9vB,EAAA+vB,iBAAAzC,EAAApP,GAEAA,EAAAiV,qBAAA,GACAjkC,KAAAg/B,MAAAC,IAAAjQ,GAGAA,EAAA2U,iBAGAtJ,EAAAn6B,UAAAyjC,UAAAj4B,KAAA1L,KAAAw7B,EAAA73B,EAAAC,EAAAggC,IAGAM,SAAA,SAAA1I,EAAA73B,EAAAC,EAAAggC,GACA,IAAA9yB,EAAA0qB,EAAAtP,UACAkS,EAAAnE,EAAA4J,eAAA/yB,EAAA8yB,GAEA,SAAAxF,MAAA,GACA,IAAApP,EAAAle,EAAAgzB,iBAAA1F,GAEApP,IACAA,EAAA4R,QACA9vB,EAAA+vB,iBAAAzC,EAAA,MACAp+B,KAAAg/B,MAAAv6B,OAAAuqB,IAEAA,EAAAkV,iBAOA7J,EAAAn6B,UAAAgkC,SAAAx4B,KAAA1L,KAAAw7B,EAAA73B,EAAAC,EAAAggC,IASApC,aAAA,SAAApE,GACA,IAAAwC,EAAA5/B,KAAA6/B,UAiBA,OAfAD,GACA5/B,KAAAm/B,WAAA16B,OAAAm7B,GAGAA,EAAA,IAAAzF,GACApS,OACAqV,UAEA+G,QAAA,EACAC,GAAA,KAGApkC,KAAAm/B,WAAAF,IAAAW,GAEA5/B,KAAA6/B,UAAAD,EACAA,GASAmB,YAAA,SAAA3D,EAAA+C,GACA,IAAAL,EAAA9/B,KAAA+/B,SAiBA,OAfAD,GACA9/B,KAAAm/B,WAAA16B,OAAAq7B,GAGAA,EAAA,IAAA1F,GACArS,OACAqV,SACA+C,mBAEAgE,QAAA,IAGAnkC,KAAAm/B,WAAAF,IAAAa,GAEA9/B,KAAA+/B,SAAAD,EACAA,GAOAwB,iBAAA,SAAAxwB,EAAAqvB,EAAA9E,EAAAz3B,EAAA0jB,EAAA4Y,GACA,IAAAN,EAAA5/B,KAAA6/B,UACAC,EAAA9/B,KAAA+/B,SACAvE,EAAA1qB,EAAAuzB,UACAC,EAAAtK,EAAAh6B,KAAAic,MAAAnL,EAAA9Q,KAAAohC,iBAAAjB,EAAAngC,KAAA2/B,UAAAtE,EAAAr7B,KAAA0jC,aAAAxD,GACAqE,EAAAD,EAAAC,QACAC,EAAAF,EAAAE,iBACAC,EAAAH,EAAAG,KACAC,EAAAJ,EAAAI,cAEApd,IAEAid,EAAApH,EAAAmH,EAAAC,QAAAlJ,EAAA/T,GACAkd,EAAArH,EAAAmH,EAAAE,iBAAAnJ,EAAA/T,GACAmd,EAAAtH,EAAAmH,EAAAG,KAAApJ,EAAA/T,GACAod,EAAAvH,EAAAmH,EAAAI,cAAArJ,EAAA/T,IAMAsY,EAAA7X,MAAA4c,SAAAL,EAAAC,QACA3E,EAAA7X,MAAAqV,OAAAmH,EACA/pB,EAAAoqB,YAAAhF,GACA7X,OACAqV,OAAAqH,IAEKjJ,GAELsE,IACAA,EAAAyB,UACAnE,OAAAmH,EACApE,gBAAAqE,IAEAhqB,EAAAoqB,YAAA9E,GACA/X,OACAqV,OAAAqH,EACAtE,gBAAAuE,IAEOlJ,IAMP,IAHA,IAAAqJ,KACAC,EAAAR,EAAAruB,OAEAlV,EAAA,EAAmBA,EAAA+jC,EAAA7jC,OAAuBF,IAAA,CAG1C,SAFA+jC,EAAA/jC,GAAAgkC,IAEA,CACA,IAAAtkC,EAAAqQ,EAAAgzB,iBAAAgB,EAAA/jC,GAAAikC,MAEAvkC,GACAokC,EAAAtjC,MACAd,KACAwkC,MAAAlkC,KAOA6+B,EAAA3/B,WAAA2/B,EAAA3/B,UAAAgB,QACA2+B,EAAA3/B,UAAA,GAAAkB,OAAA,WACA,QAAAJ,EAAA,EAAuBA,EAAA8jC,EAAA5jC,OAA4BF,IAAA,CACnD8jC,EAAA9jC,GAAAN,GACAsC,KAAA,WAAA68B,EAAA7X,MAAA4c,SAAAE,EAAA9jC,GAAAkkC,YAKAxgC,OAAA,SAAAd,GACA,IAAAq7B,EAAAh/B,KAAAg/B,MACA0B,EAAA1gC,KAAAic,MAEAjc,KAAAm/B,WAAA+F,YAEAllC,KAAAk/B,YAAAz6B,QAAA,GAGAi8B,KAAAC,kBAAA,SAAAlgC,EAAA6/B,GACA7/B,EAAAmgC,SACA5B,EAAAv6B,OAAAhE,GACAigC,EAAAG,iBAAAP,EAAA,SAGAtgC,KAAA6/B,UAAA7/B,KAAA+/B,SAAA//B,KAAA2/B,UAAA3/B,KAAAqhC,QAAArhC,KAAAohC,iBAAAphC,KAAAic,MAAA,QAIA/Y,EAAAC,QAAAF,wBCvuBA,IAAAkiC,GACAC,WAAA,EACAC,cAAA,EACAC,cAAA,EACAC,eAAA,EACAC,kBAAA,EACAC,kBAAA,EACAC,kBAAA,EACAC,qBAAA,EACAC,qBAAA,GAWA1iC,EAAAC,QARA,SAAA0iC,EAAAC,EAAAv+B,GACA,OAAA49B,EAAAtiC,eAAAijC,GACAv+B,EAAAs+B,EAAAE,IAGAx+B,wCCJA,IAEAy+B,EAFAC,EAA2B1mC,EAAQ,QAGnC0mC,EAAAC,YACAF,EACAn2B,SAAAs2B,gBACAt2B,SAAAs2B,eAAAC,aAGA,IAAAv2B,SAAAs2B,eAAAC,WAAA;;;;;;;;;;;;;;IAwCAljC,EAAAC,QAvBA,SAAAkjC,EAAAC,GACA,IAAAL,EAAAC,WACAI,KAAA,qBAAAz2B,UACA,SAGA,IAAA02B,EAAA,KAAAF,EACAG,EAAAD,KAAA12B,SAEA,IAAA22B,EAAA,CACA,IAAAC,EAAA52B,SAAAC,cAAA,OACA22B,EAAAC,aAAAH,EAAA,WACAC,EAAA,mBAAAC,EAAAF,GAQA,OALAC,GAAAR,GAAA,UAAAK,IAEAG,EAAA32B,SAAAs2B,eAAAC,WAAA,uBAGAI,2BC3DAjnC,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,gCChBR,IAAAs6B,EAAat6B,EAAQ,QAErBonC,EAAapnC,EAAQ,QAErBqnC,EAAarnC,EAAQ,QAErBsnC,EAAmBtnC,EAAQ,QAE3BunC,EAAoBvnC,EAAQ,QAyB5BwnC,EAAAJ,EAAAK,eAEA,SAAAC,IACAH,EAAAp7B,KAAA1L,MAKA,SAAAknC,EAAAtkC,GAIA5C,KAAA4C,OAKA5C,KAAAmnC,UACAL,EAAAp7B,KAAA1L,MACAA,KAAAonC,mBAAA,IAAAH,EACAjnC,KAAAqnC,kBAAA,IAAAJ,EACAjnC,KAAAsnC,QACAtnC,KAAAunC,MAsOA,SAAAC,EAAAC,EAAA9jC,EAAA+jC,EAAAngC,GACA,IAAAi0B,EAAAkM,EAAAlM,YACAH,EAAAG,IAAAnN,iBAAA,KAEA,OAAAgN,IAAAr7B,KAAAq7B,EAAAoM,GAAAlgC,GAAA,KA1PAsyB,EAAA8N,MAAAV,EAAAH,GAmBAI,EAAAhnC,WACAC,YAAA+mC,EACA1jC,KAAA,OAMAu+B,YAAA,SAUA6F,gBAAA,SAAAvjC,EAAAE,EAAAyU,EAAAC,GAEA,OADAjZ,KAAA6nC,MAAA,IAAAhB,EAAAxiC,EAAAE,EAAAyU,EAAAC,GACAjZ,KAAA6nC,OAOAC,gBAAA,WACA,OAAA9nC,KAAA6nC,OASAE,YAAA,SAAA1jC,EAAAE,EAAAyU,EAAAC,GACAjZ,KAAAgoC,YAAA3jC,EAAAE,EAAAyU,EAAAC,GACAjZ,KAAAioC,UAAA,IAAApB,EAAAxiC,EAAAE,EAAAyU,EAAAC,IAUA+uB,YAAA,SAAA3jC,EAAAE,EAAAyU,EAAAC,GACA,IAAAivB,EAAAloC,KAAA8nC,kBACAK,EAAAnoC,KAAAqnC,kBACAc,EAAAlQ,UAAAiQ,EAAAE,mBAAA,IAAAvB,EAAAxiC,EAAAE,EAAAyU,EAAAC,IACAkvB,EAAAE,qBAEAroC,KAAAsoC,oBAOAC,UAAA,SAAAC,GACAA,IAIAxoC,KAAAsnC,QAAAkB,EAEAxoC,KAAAyoC,yBAMAC,QAAA,SAAA5e,GACAA,KAAA,EACA,IAAAqd,EAAAnnC,KAAAmnC,UAEAA,IACA,MAAAA,EAAAl/B,MACA6hB,EAAA/hB,KAAAC,IAAAm/B,EAAAl/B,IAAA6hB,IAGA,MAAAqd,EAAAn/B,MACA8hB,EAAA/hB,KAAAE,IAAAk/B,EAAAn/B,IAAA8hB,KAIA9pB,KAAAunC,MAAAzd,EAEA9pB,KAAAyoC,wBAMAE,iBAAA,WAEA,IAAAC,EAAA5oC,KAAA8nC,kBAGA,OAFAc,EAAAvkC,EAAAukC,EAAA5vB,MAAA,EACA4vB,EAAArkC,EAAAqkC,EAAA3vB,OAAA,IAGA4vB,UAAA,WACA,OAAA7oC,KAAAsnC,SAAAtnC,KAAA2oC,oBAEAG,QAAA,WACA,OAAA9oC,KAAAunC,OAAA,GAMAwB,iBAAA,WACA,OAAA/oC,KAAAonC,mBAAA4B,qBAMAP,qBAAA,WAEA,IAAAQ,EAAAjpC,KAAAqnC,kBAAA2B,oBAEAE,EAAAlpC,KAAAonC,mBACA+B,EAAAnpC,KAAA2oC,mBACA7kB,EAAA9jB,KAAA6oC,YACA/e,EAAA9pB,KAAA8oC,UACAhlB,EAAA6iB,EAAAK,kBAAAljB,EAAAmlB,GACAE,EAAAxC,EAAAK,kBAAAmC,EAAAF,GACAC,EAAAE,OAAAtlB,EACAolB,EAAA96B,UAAA+6B,EAAA,GAAArlB,EAAA,GAAAqlB,EAAA,GAAArlB,EAAA,IACAolB,EAAA33B,OAAAuY,KAEA9pB,KAAAsoC,oBAOAA,iBAAA,WACA,IAAAe,EAAArpC,KAAAonC,mBACAkC,EAAAtpC,KAAAqnC,kBACAiC,EAAAC,OAAAF,EACAA,EAAAG,kBACAF,EAAAE,kBACA5C,EAAA6C,KAAAzpC,KAAAi4B,YAAAj4B,KAAAi4B,cAAAqR,EAAArR,WAAA2O,EAAA8C,UACA1pC,KAAA2pC,cAAAL,EAAAN,oBACAhpC,KAAA4pC,aAAA5pC,KAAA4pC,iBACAhD,EAAAiD,OAAA7pC,KAAA4pC,aAAA5pC,KAAAi4B,WACAj4B,KAAAqoC,sBAMAyB,YAAA,WACA,OAAA9pC,KAAAioC,WAOA8B,qBAAA,WACA,IAAA7B,EAAAloC,KAAA8nC,kBAAAkC,QAEA,OADA9B,EAAAlB,eAAAhnC,KAAAi4B,WACAiQ,GAUA+B,YAAA,SAAAn5B,EAAAo5B,EAAAC,GACA,IAAAlS,EAAAiS,EAAAlqC,KAAA2pC,cAAA3pC,KAAAi4B,UAEA,OADAkS,QACAlS,EAAA8O,EAAAoD,EAAAr5B,EAAAmnB,GAAA0O,EAAA8C,KAAAU,EAAAr5B,IAQAs5B,YAAA,SAAAC,GACA,IAAAT,EAAA5pC,KAAA4pC,aACA,OAAAA,EAAA7C,KAAAsD,EAAAT,IAAAS,EAAA,GAAAA,EAAA,KAOAC,eAAAzQ,EAAA0Q,MAAA/C,EAAA,eAMAgD,iBAAA3Q,EAAA0Q,MAAA/C,EAAA,eAMAiD,aAAA,SAAAJ,GACA,OAAArqC,KAAA+pC,uBAAAW,QAAAL,EAAA,GAAAA,EAAA,MAaAxQ,EAAA8N,MAAAT,EAAAJ,GASA,IAAA7jC,EAAAikC,EACAhkC,EAAAC,QAAAF,0BCrSA,IAAA0nC,EAAUprC,EAAQ,QAIlBynC,EAFcznC,EAAQ,QAEtBynC,eAEAH,EAAmBtnC,EAAQ,QAE3BqrC,EAAgBrrC,EAAQ,QAExBsrC,EAAkBtrC,EAAQ,QAE1BurC,EAAiBvrC,EAAQ,QAEzBwrC,EAAexrC,EAAQ,QAEvByrC,EAAkBzrC,EAAQ,QAE1B0rC,EAAa1rC,EAAQ,QAErB2rC,EAAW3rC,EAAQ,QAEnB4rC,EAAW5rC,EAAQ,QAEnB6rC,EAAgB7rC,EAAQ,QAExB8rC,EAAe9rC,EAAQ,QAEvB+rC,EAAc/rC,EAAQ,QAItBgsC,EAAAH,EAAAG,IACAnhC,EAAArC,KAAAqC,MACAohC,EAAAzjC,KAAAyjC,KACA7iC,EAAAZ,KAAAY,IACA8iC,EAAA1jC,KAAA0jC,IACAC,EAAA3jC,KAAA2jC,IACAC,EAAA5jC,KAAAE,IAEA,IAAA0iC,EAAAiB,gBAAA,CACA,IAEAC,EAAA,MACAC,EAAAD,EAAA,EAIAE,EAAA,SAAAtrC,GACAA,EAAA8X,MAAAyzB,QAAA,uDACAvrC,EAAAwrC,UAAAJ,EAAA,IAAAA,EACAprC,EAAAyrC,YAAA,OAOAC,EAAA,SAAA10B,EAAA20B,EAAA52B,GACA,cAAAiC,EAAA20B,EAAA52B,GAAApP,KAAA,UAGAimC,EAAA,SAAA9C,EAAA+C,GACAA,GAAA/C,GAAA+C,EAAAC,aAAAhD,GACAA,EAAAt5B,YAAAq8B,IAIA7nC,EAAA,SAAA8kC,EAAA+C,GACAA,GAAA/C,GAAA+C,EAAAC,aAAAhD,GACAA,EAAAiD,YAAAF,IAIAG,EAAA,SAAA9X,EAAAC,EAAAwP,GAEA,OA/BA,KA+BA5e,WAAAmP,IAAA,GA9BA,KA8BAnP,WAAAoP,IAAA,GAAAwP,GAGAsI,EAAA,SAAAnlC,EAAAolC,GACA,uBAAAplC,EACAA,EAAAqlC,YAAA,QACApnB,WAAAje,GAAA,IAAAolC,EAGAnnB,WAAAje,GAGAA,GAOAslC,EAAA,SAAApsC,EAAA0F,EAAA0M,GACA,IAAAi6B,EAAAlC,EAAAz9B,MAAAhH,GACA0M,KAEApI,MAAAoI,KACAA,EAAA,GAGAi6B,IACArsC,EAAA0F,MAAAgmC,EAAAW,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACArsC,EAAAoS,UAAAi6B,EAAA,KA6IAC,EAAA,SAAAC,EAAAxpC,EAAA+U,EAAA00B,GACA,IAAAC,EAAA,QAAA1pC,EACA/C,EAAAusC,EAAAG,qBAAA3pC,GAAA,GAEA,MAAA+U,EAAA/U,IAAA,SAAA+U,EAAA/U,KAAA0pC,OAAA30B,EAAAwkB,YACAiQ,EAAAE,EAAA,2BAEA30B,EAAA/U,aAAA6nC,GACA5mC,EAAAuoC,EAAAvsC,GAGAA,IACAA,EAAA6qC,EAAA8B,WAAA5pC,IAGA0pC,EAnJA,SAAAzsC,EAAA8X,EAAA00B,GAEA,IAPA9mC,EACA2mC,EAMAp1B,EAAAa,EAAAb,KAEA,SAAAA,EAEA,GAAAA,aAAA2zB,EAAA,CACA,IAAAgC,EACAC,EAAA,EACAC,GAAA,KAEAC,EAAA,EAEAC,EAAA,EACAvF,EAAA+E,EAAAnF,kBACA4F,EAAAxF,EAAAlvB,MACA20B,EAAAzF,EAAAjvB,OAEA,cAAAvB,EAAAlU,KAAA,CACA6pC,EAAA,WACA,IAAApV,EAAAgV,EAAAhV,UACA2V,GAAAl2B,EAAArT,EAAAqpC,EAAAh2B,EAAAnT,EAAAopC,GACA/S,GAAAljB,EAAAm2B,GAAAH,EAAAh2B,EAAAo2B,GAAAH,GAEA1V,IACA+O,EAAA4G,IAAA3V,GACA+O,EAAApM,IAAA3C,IAGA,IAAA8V,EAAAnT,EAAA,GAAAgT,EAAA,GACAI,EAAApT,EAAA,GAAAgT,EAAA,IACAN,EAAA,IAAAvlC,KAAAkmC,MAAAF,EAAAC,GAAAjmC,KAAAgwB,IAEA,IACAuV,GAAA,KAKAA,EAAA,OACAA,EAAA,OAES,CACTD,EAAA,iBACAO,GAAAl2B,EAAArT,EAAAqpC,EAAAh2B,EAAAnT,EAAAopC,GACA1V,EAAAgV,EAAAhV,UADA,IAEA1mB,EAAA07B,EAAA17B,MACAyH,EAAA00B,EACAz0B,EAAA00B,EACAJ,IACAK,EAAA,GAAA1F,EAAA7jC,GAAA2U,GAAA40B,EAAA,GAAA1F,EAAA3jC,GAAA0U,GAEAgf,GACA+O,EAAA4G,IAAA3V,GAGAjf,GAAAzH,EAAA,GAAAs6B,EACA5yB,GAAA1H,EAAA,GAAAs6B,EACA,IAAAt7B,EAAAo7B,EAAA3yB,EAAAC,GACAu0B,EAAA,EAAAj9B,EACAk9B,EAAA,EAAA/1B,EAAAD,EAAAlH,EAAAi9B,EAKA,IAAArL,EAAAzqB,EAAAwqB,WAAA5/B,QACA6/B,EAAA7sB,KAAA,SAAA44B,EAAAC,GACA,OAAAD,EAAAxL,OAAAyL,EAAAzL,SAOA,IALA,IAAAzhC,EAAAkhC,EAAAlhC,OAEAmtC,KACA50B,KAEAzY,EAAA,EAAuBA,EAAAE,EAAYF,IAAA,CACnC,IAAAe,EAAAqgC,EAAAphC,GACAstC,GAjFAloC,EAiFArE,EAAAqE,MAhFA2mC,EAAAlC,EAAAz9B,MAAAhH,IACAgmC,EAAAW,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,KAgFAtzB,EAAAjY,KAAAO,EAAA4gC,OAAA+K,EAAAD,EAAA,IAAAa,EAAA,IAEA,IAAAttC,OAAAE,EAAA,GACAmtC,EAAA7sC,KAAA8sC,GAIA,GAAAptC,GAAA,GACA,IAAAqtC,EAAAF,EAAA,MACAG,EAAAH,EAAA,MACAI,EAAAJ,EAAA,MAAA71B,EAAA1F,QACA47B,EAAAL,EAAA,MAAA71B,EAAA1F,QACApS,EAAA+C,KAAA6pC,EACA5sC,EAAAiuC,OAAA,OACAjuC,EAAA8sC,MAAA,OACA9sC,EAAA6sC,QACA7sC,EAAA0F,MAAAmoC,EACA7tC,EAAA8tC,SACA9tC,EAAA+Y,SAAApT,KAAA,KAGA3F,EAAAoS,QAAA47B,EAEAhuC,EAAAguC,SAAAD,EAGA,WAAAnB,IACA5sC,EAAAkuC,cAAApB,EAAAnnC,KAAA,WAIAymC,EAAApsC,EAAAiX,EAAAa,EAAA1F,SAuCA+7B,CAAAnuC,EAAA8X,EAAA00B,GAlCA,SAAAxsC,EAAA8X,GAUA,MAAAA,EAAAs2B,WACApuC,EAAAquC,UAAAv2B,EAAAs2B,SAAAzoC,KAAA,MAGA,MAAAmS,EAAA2qB,QAAA3qB,EAAA2qB,kBAAAmI,GACAwB,EAAApsC,EAAA8X,EAAA2qB,OAAA3qB,EAAA1F,SAmBAk8B,CAAAtuC,EAAA8X,GACA8zB,EAAAW,EAAAvsC,KAEAusC,EAAAE,EAAA,4BACAzoC,EAAAuoC,EAAAvsC,KAIA28B,aAwLA+N,EAAAjrC,UAAA8uC,SAAA,SAAAC,GACA,IAAA12B,EAAAvY,KAAAuY,MACAy0B,EAAAhtC,KAAAkvC,OAEAlC,IACAA,EAAA1B,EAAA8B,WAAA,SACArB,EAAAiB,GACAhtC,KAAAkvC,OAAAlC,GAGAD,EAAAC,EAAA,OAAAz0B,EAAAvY,MACA+sC,EAAAC,EAAA,SAAAz0B,EAAAvY,MACA,IAAA2sB,EAAA3sB,KAAAi4B,UACAkX,EAAA,MAAAxiB,EACAyiB,EAAApC,EAAAG,qBAAA,aAEA,GAAAiC,EAAA,CACA,IAAArS,EAAAxkB,EAAAwkB,UAKA,GAAAoS,IAAA52B,EAAA82B,cAAA,CACA,IAAAC,EAAA3iB,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GACAoQ,GAAAyO,EAAA7iC,EAAA2mC,IAGAF,EAAAG,OAAAxS,EAAA,KAGA,IAAA18B,EAAAL,KAAAK,OAAAL,KAAAK,KAAA,IAAA+qC,GAEAprC,KAAAwvC,cACAnvC,EAAAovC,YACAzvC,KAAA0vC,UAAArvC,EAAAL,KAAA+nB,OACA1nB,EAAAsvC,WACA3vC,KAAAwvC,aAAA,GAGAxC,EAAA3sC,KA7NA,SAAAA,EAAAssB,GACA,IAMAijB,EACAC,EACA9K,EACAhkC,EACA+uC,EACAC,EAXAC,EAAAzE,EAAAyE,EACAC,EAAA1E,EAAA0E,EACAC,EAAA3E,EAAA2E,EACAC,EAAA5E,EAAA4E,EACAC,EAAA7E,EAAA6E,EACAC,KAOAv/B,EAAAzQ,EAAAyQ,KACAw/B,EAAAjwC,EAAAwB,MAEA,IAAAd,EAAA,EAAeA,EAAAuvC,GAAgB,CAK/B,OAHAT,EAAA,GACAD,EAAA,EAFA7K,EAAAj0B,EAAA/P,MAKA,KAAAivC,EACAH,EAAA,MACAD,EAAA,EACAE,EAAAh/B,EAAA/P,KACAgvC,EAAAj/B,EAAA/P,KACAq8B,EAAA,MAAA0S,EACA1S,EAAA,MAAA2S,EACA,MAEA,KAAAG,EACAL,EAAA,MACAD,EAAA,EACAE,EAAAh/B,EAAA/P,KACAgvC,EAAAj/B,EAAA/P,KACAq8B,EAAA,MAAA0S,EACA1S,EAAA,MAAA2S,EACA,MAEA,KAAAK,EACA,KAAAH,EACAJ,EAAA,MACAD,EAAA,EACA,IAIAW,EACAC,EALAC,EAAA3/B,EAAA/P,KACA2vC,EAAA5/B,EAAA/P,KACA8sC,EAAA/8B,EAAA/P,KACA+sC,EAAAh9B,EAAA/P,KAIAgkC,IAAAqL,GAEAG,EAAA1C,EACA2C,EAAA1C,EACAD,KAAA,EAAA4C,GAAA,EACA3C,KAAA,EAAA4C,GAAA,EACAD,GAAAX,EAAA,EAAAW,GAAA,EACAC,GAAAX,EAAA,EAAAW,GAAA,IAEAH,EAAAz/B,EAAA/P,KACAyvC,EAAA1/B,EAAA/P,MAGAq8B,EAAA,MAAAqT,EACArT,EAAA,MAAAsT,EACAtT,EAAA,MAAAyQ,EACAzQ,EAAA,MAAA0Q,EACA1Q,EAAA,MAAAmT,EACAnT,EAAA,MAAAoT,EACAV,EAAAS,EACAR,EAAAS,EACA,MAEA,KAAAL,EACA,IAAA9rC,EAAA,EACAE,EAAA,EACAosC,EAAA,EACAC,EAAA,EACAtD,EAAA,EAEA3gB,IAEAtoB,EAAAsoB,EAAA,GACApoB,EAAAooB,EAAA,GACAgkB,EAAAnF,EAAA7e,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAikB,EAAApF,EAAA7e,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACA2gB,EAAAvlC,KAAAkmC,OAAAthB,EAAA,GAAAikB,EAAAjkB,EAAA,GAAAgkB,IAGA,IAAAp5B,EAAAzG,EAAA/P,KACAyW,EAAA1G,EAAA/P,KACA8vC,EAAA//B,EAAA/P,KACA+vC,EAAAhgC,EAAA/P,KACAq7B,EAAAtrB,EAAA/P,KAAAusC,EACAjR,EAAAvrB,EAAA/P,KAAAq7B,EAAAkR,EAGAvsC,IACA,IAAAu7B,EAAAxrB,EAAA/P,KACAgwC,EAAAx5B,EAAAk0B,EAAArP,GAAAyU,EACAG,EAAAx5B,EAAAk0B,EAAAtP,GAAA0U,EAGAttC,GAFAitC,EAAAl5B,EAAAk0B,EAAApP,GAAAwU,EACAH,EAAAl5B,EAAAk0B,EAAArP,GAAAyU,EACAxU,EAAA,eAEAv0B,KAAAY,IAAAooC,EAAAN,GAAA,OAEA1oC,KAAAY,IAAA0zB,EAAAD,GAAA,IAGAE,IACAyU,GAAA,OAIAhpC,KAAAY,IAAAqoC,EAAAx5B,GAAA,KACA8kB,GAAAyU,EAAAx5B,IAAA+kB,GAAAyU,EAAAx5B,EACAm5B,GAAA,MAEAA,GAAA,MAEepU,GAAA0U,EAAAx5B,IAAA8kB,GAAA0U,EAAAx5B,EACfi5B,GAAA,MAEAA,GAAA,OAKAJ,EAAA9uC,KAAAiC,EAAA4G,IAAAmN,EAAAs5B,GAAAF,EAAAtsC,GAAAwnC,EAAAC,GAxWA,IAwWA1hC,IAAAoN,EAAAs5B,GAAAF,EAAArsC,GAAAsnC,EAAAC,GAxWA,IAwWA1hC,IAAAmN,EAAAs5B,GAAAF,EAAAtsC,GAAAwnC,EAAAC,GAxWA,IAwWA1hC,IAAAoN,EAAAs5B,GAAAF,EAAArsC,GAAAsnC,EAAAC,GAxWA,IAwWA1hC,GAAA2mC,EAAAJ,EAAAtsC,GAAAwnC,EAAAC,GAxWA,IAwWA1hC,GAAA4mC,EAAAJ,EAAArsC,GAAAsnC,EAAAC,GAxWA,IAwWA1hC,GAAAqmC,EAAAE,EAAAtsC,GAAAwnC,EAAAC,GAxWA,IAwWA1hC,GAAAsmC,EAAAE,EAAArsC,GAAAsnC,EAAAC,IACAgE,EAAAW,EACAV,EAAAW,EACA,MAEA,KAAAnF,EAAA0F,EACA,IAAArD,EAAAxQ,EAAA,GACAxC,EAAAwC,EAAA,GAEAwQ,EAAA,GAAA98B,EAAA/P,KACA6sC,EAAA,GAAA98B,EAAA/P,KAEA65B,EAAA,GAAAgT,EAAA,GAAA98B,EAAA/P,KACA65B,EAAA,GAAAgT,EAAA,GAAA98B,EAAA/P,KAEA4rB,IACAqa,EAAA4G,IAAAjhB,GACAqa,EAAApM,IAAAjO,IAGAihB,EAAA,GAAAxjC,EAAAwjC,EAAA,GAAA/B,EAAAC,GACAlR,EAAA,GAAAxwB,EAAAwwB,EAAA,GAAAiR,EAAAC,GACA8B,EAAA,GAAAxjC,EAAAwjC,EAAA,GAAA/B,EAAAC,GACAlR,EAAA,GAAAxwB,EAAAwwB,EAAA,GAAAiR,EAAAC,GACAuE,EAAA9uC,KACA,MAAAqsC,EAAA,GAjYA,IAiYAA,EAAA,GACA,MAAAhT,EAAA,GAlYA,IAkYAgT,EAAA,GACA,MAAAhT,EAAA,GAnYA,IAmYAA,EAAA,GACA,MAAAgT,EAAA,GApYA,IAoYAhT,EAAA,IACA,MAEA,KAAA2Q,EAAAM,EAEAwE,EAAA9uC,KAAA,OAGA,GAAAquC,EAAA,GACAS,EAAA9uC,KAAAsuC,GAEA,QAAApnB,EAAA,EAAuBA,EAAAmnB,EAAYnnB,IAAA,CACnC,IAAAyoB,EAAA9T,EAAA3U,GACAkE,GAAAqa,EAAAkK,IAAAvkB,GAEA0jB,EAAA9uC,KAAA6I,EAAA8mC,EAAA,GAAArF,EAAAC,GAnZA,IAmZA1hC,EAAA8mC,EAAA,GAAArF,EAAAC,GAAArjB,EAAAmnB,EAAA,EAnZA,IAmZA,MAKA,OAAAS,EAAAjqC,KAAA,IA2CA+qC,CAAA9wC,EAAAL,KAAAi4B,WACA+U,EAAAz0B,MAAA64B,OAAA3E,EAAAzsC,KAAA20B,OAAA30B,KAAA40B,EAAA50B,KAAAokC,IAEAiI,EAAA4C,EAAAjC,GAEA,MAAAz0B,EAAA84B,KACArxC,KAAAsxC,aAAArC,EAAAjvC,KAAA8nC,mBAEA9nC,KAAAuxC,eAAAtC,IAIA9D,EAAAjrC,UAAAsxC,SAAA,SAAAvC,GACAxqC,EAAAwqC,EAAAjvC,KAAAkvC,QACAlvC,KAAAuxC,eAAAtC,IAGA9D,EAAAjrC,UAAAuxC,MAAA,SAAAxC,GACA5C,EAAA4C,EAAAjvC,KAAAkvC,QACAlvC,KAAA0xC,eAAAzC,IAaAhE,EAAA/qC,UAAA8uC,SAAA,SAAAC,GACA,IAGA0C,EACAC,EAXAC,EAOAt5B,EAAAvY,KAAAuY,MACAu5B,EAAAv5B,EAAAu5B,MAKA,GAXA,iBAFAD,EAaAC,IAXAD,EAAAE,SAAA,QAAAF,EAAAE,QAAAC,cAWA,CACA,IAAAjiC,EAAA+hC,EAAA/hC,IAEA,GAAAA,IAAA/P,KAAAiyC,UACAN,EAAA3xC,KAAAkyC,YACAN,EAAA5xC,KAAAmyC,iBACO,CACP,IAAAC,EAAAN,EAAAO,aACAC,EAAAF,EAAAp5B,MACAu5B,EAAAH,EAAAn5B,OACAm5B,EAAAp5B,MAAA,OACAo5B,EAAAn5B,OAAA,OAEA04B,EAAAG,EAAA94B,MACA44B,EAAAE,EAAA74B,OAEAm5B,EAAAp5B,MAAAs5B,EACAF,EAAAn5B,OAAAs5B,EAEAvyC,KAAAiyC,UAAAliC,EACA/P,KAAAkyC,YAAAP,EACA3xC,KAAAmyC,aAAAP,EAGAE,EAAA/hC,OAEA+hC,IAAA9xC,KAAAiyC,YACAN,EAAA3xC,KAAAkyC,YACAN,EAAA5xC,KAAAmyC,cAIA,GAAAL,EAAA,CAIA,IAAAztC,EAAAkU,EAAAlU,GAAA,EACAE,EAAAgU,EAAAhU,GAAA,EACAiuC,EAAAj6B,EAAAS,MACAy5B,EAAAl6B,EAAAU,OACAy5B,EAAAn6B,EAAAo6B,OACAC,EAAAr6B,EAAAs6B,QACAlC,EAAAp4B,EAAAo4B,IAAA,EACAC,EAAAr4B,EAAAq4B,IAAA,EACAkC,EAAAJ,GAAAE,EACA5F,EAAAhtC,KAAAkvC,OAEAlC,IAGAA,EAAA1B,EAAAyH,IAAAjjC,cAAA,OACAi8B,EAAAiB,GACAhtC,KAAAkvC,OAAAlC,GAGA,IAEArgB,EAFAqmB,EAAAhG,EAAAz0B,MACA06B,GAAA,EAEAC,EAAA,EACAC,EAAA,EASA,GAPAnzC,KAAAi4B,YACAtL,EAAA3sB,KAAAi4B,UACAib,EAAA1H,EAAA7e,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAwmB,EAAA3H,EAAA7e,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAsmB,EAAAtmB,EAAA,IAAAA,EAAA,IAGAsmB,EAAA,CAMA,IAAArF,GAAAvpC,EAAAE,GACAq2B,GAAAv2B,EAAAmuC,EAAAjuC,GACAs2B,GAAAx2B,EAAAE,EAAAkuC,GACAW,GAAA/uC,EAAAmuC,EAAAjuC,EAAAkuC,GACAzL,EAAA4G,IAAAjhB,GACAqa,EAAApM,IAAAjO,GACAqa,EAAAnM,IAAAlO,GACAqa,EAAAoM,IAAAzmB,GACA,IAAA0mB,EAAA1H,EAAAiC,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAAuY,EAAA,IACAE,EAAA3H,EAAAiC,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAAuY,EAAA,IACAG,KACAA,EAAAhyC,KAAA,OAAAorB,EAAA,GAAAumB,EA/jBA,IA+jBA,OAAAvmB,EAAA,GAAAwmB,EA/jBA,IA+jBA,OAAAxmB,EAAA,GAAAumB,EA/jBA,IA+jBA,OAAAvmB,EAAA,GAAAwmB,EA/jBA,IA+jBA,MAAA/oC,EAAA/F,EAAA6uC,EAAAvmB,EAAA,IA/jBA,IA+jBA,MAAAviB,EAAA7F,EAAA4uC,EAAAxmB,EAAA,KACAqmB,EAAAzd,QAAA,KAAAnrB,EAAAipC,GAAA,MAAAjpC,EAAAkpC,GAAA,OAEAN,EAAA5rB,OAAAosB,4CAAAD,EAAAntC,KAAA,gCAEAumB,IACAtoB,IAAA6uC,EAAAvmB,EAAA,GACApoB,IAAA4uC,EAAAxmB,EAAA,IAGAqmB,EAAA5rB,OAAA,GACA4rB,EAAAntC,KAAAuE,EAAA/F,GAAA,KACA2uC,EAAAhhC,IAAA5H,EAAA7F,GAAA,KAGA,IAAAkvC,EAAAzzC,KAAA0zC,SACAC,EAAA3zC,KAAA4zC,QAEAH,IACAA,EAAAnI,EAAAyH,IAAAjjC,cAAA,OACA9P,KAAA0zC,SAAAD,GAGA,IAAAI,EAAAJ,EAAAl7B,MAEA,GAAAu6B,EAAA,CAEA,GAAAnB,GAAAC,EAmBAiC,EAAA76B,MAAA5O,EAAA8oC,EAAAvB,EAAAa,EAAAE,GAAA,KACAmB,EAAA56B,OAAA7O,EAAA+oC,EAAAvB,EAAAa,EAAAG,GAAA,SApBA,CACA,IAAAkB,EAAA,IAAAC,MACA5nC,EAAAnM,KAEA8zC,EAAA9kC,OAAA,WACA8kC,EAAA9kC,OAAA,KACA2iC,EAAAmC,EAAA96B,MACA44B,EAAAkC,EAAA76B,OAEA46B,EAAA76B,MAAA5O,EAAA8oC,EAAAvB,EAAAa,EAAAE,GAAA,KACAmB,EAAA56B,OAAA7O,EAAA+oC,EAAAvB,EAAAa,EAAAG,GAAA,KAEAzmC,EAAA+lC,YAAAP,EACAxlC,EAAAgmC,aAAAP,EACAzlC,EAAA8lC,UAAAH,GAGAgC,EAAA/jC,IAAA+hC,EAMA6B,KACAA,EAAArI,EAAAyH,IAAAjjC,cAAA,QACAyI,MAAAy7B,SAAA,SACAh0C,KAAA4zC,QAAAD,GAGA,IAAAM,EAAAN,EAAAp7B,MACA07B,EAAAj7B,MAAA5O,GAAAooC,EAAA7B,EAAA6B,EAAAE,GAAAQ,GACAe,EAAAh7B,OAAA7O,GAAAqoC,EAAA7B,EAAA6B,EAAAG,GAAAO,GACAc,EAAA7sB,OAAAosB,gDAAA7C,EAAA6B,EAAAE,EAAAQ,EAAA,QAAAtC,EAAA6B,EAAAG,EAAAO,EAAA,IAEAQ,EAAApH,YACAS,EAAA/8B,YAAA0jC,GAGAF,EAAAlH,YAAAoH,GACAA,EAAA1jC,YAAAwjC,QAGAI,EAAA76B,MAAA5O,EAAA8oC,EAAAV,GAAA,KACAqB,EAAA56B,OAAA7O,EAAA+oC,EAAAV,GAAA,KACAzF,EAAA/8B,YAAAwjC,GAEAE,KAAApH,aACAS,EAAAR,YAAAmH,GACA3zC,KAAA4zC,QAAA,MAIA,IAAAM,EAAA,GACAC,EAAA57B,EAAA1F,QAEAshC,EAAA,IACAD,GAAA,kBAAA9pC,EAAA,IAAA+pC,GAAA,MAGAD,GAAAV,0DAAA1B,EAAA,wBACA+B,EAAAzsB,OAAA8sB,EACAlH,EAAAz0B,MAAA64B,OAAA3E,EAAAzsC,KAAA20B,OAAA30B,KAAA40B,EAAA50B,KAAAokC,IAEAiI,EAAA4C,EAAAjC,GAEA,MAAAz0B,EAAA84B,MACArxC,KAAAsxC,aAAArC,EAAAjvC,KAAA8nC,qBAIAmD,EAAA/qC,UAAAsxC,SAAA,SAAAvC,GACAxqC,EAAAwqC,EAAAjvC,KAAAkvC,QACAlvC,KAAAkvC,OAAA,KACAlvC,KAAA4zC,QAAA,KACA5zC,KAAA0zC,SAAA,KACA1zC,KAAAuxC,eAAAtC,IAGAhE,EAAA/qC,UAAAuxC,MAAA,SAAAxC,GACA5C,EAAA4C,EAAAjvC,KAAAkvC,QACAlvC,KAAA0xC,eAAAzC,IAOA,IAsCAmF,EArCAC,KACAC,EAAA,EAEAC,EAAA1kC,SAAAC,cAAA,OAoCA+6B,EAAA2J,UAAA,uBAAAnD,EAAAoD,GACA,IAAA1B,EAAAzH,EAAAyH,IAEAqB,KACAA,EAAArB,EAAAjjC,cAAA,QACAyI,MAAAyzB,QAAA,wFACAV,EAAAyH,IAAA/iC,KAAAC,YAAAmkC,IAGA,IACAA,EAAA77B,MAAAm8B,KAAAD,EACK,MAAAE,IAML,OAHAP,EAAAQ,UAAA,GAEAR,EAAAnkC,YAAA8iC,EAAA8B,eAAAxD,KAEAr4B,MAAAo7B,EAAAU,eAmMA,IAhMA,IAAAC,EAAA,IAAAlO,EAEAyK,EAAA,SAAArC,EAAA/G,EAAA8M,EAAAC,GACA,IAAA18B,EAAAvY,KAAAuY,MAEAvY,KAAAk1C,SAAApK,EAAAqK,mBAAA58B,GAAA,GACA,IAAA84B,EAAA94B,EAAA84B,KAIA,GAFA,MAAAA,OAAA,IAEAA,EAAA,CAMA,GAAA94B,EAAA68B,KAAA,CACA,IAAAC,EAAAxK,EAAAyK,cAAAjE,EAAA94B,GACA84B,KAEA,QAAAtwC,EAAA,EAAqBA,EAAAs0C,EAAAE,MAAAt0C,OAA+BF,IAAA,CAIpD,IAHA,IAAAy0C,EAAAH,EAAAE,MAAAx0C,GAAAy0C,OACAC,KAEAviB,EAAA,EAAuBA,EAAAsiB,EAAAv0C,OAAmBiyB,IAC1CuiB,EAAAl0C,KAAAi0C,EAAAtiB,GAAAme,MAGAA,EAAA9vC,KAAAk0C,EAAArvC,KAAA,KAGAirC,IAAAjrC,KAAA,MAGA,IAAA/B,EACAE,EACAo0B,EAAApgB,EAAAm9B,UACAhd,EAAAngB,EAAAo9B,kBACAC,EA7FA,SAAAC,GACA,IAAAD,EAAAvB,EAAAwB,GAEA,IAAAD,EAAA,CAEAtB,EARA,MASAA,EAAA,EACAD,MAGA,IACAyB,EADAv9B,EAAAg8B,EAAAh8B,MAGA,IACAA,EAAAm8B,KAAAmB,EACAC,EAAAv9B,EAAAu9B,WAAAj1C,MAAA,QACO,MAAAsD,IAEPyxC,GACAr9B,QAAAq9B,WAzBA,SA0BAG,QAAAx9B,EAAAy9B,aA1BA,SA2BAzG,OAAAh3B,EAAA09B,YA3BA,SA4BApkB,KAAA,EAAArM,WAAAjN,EAAAsd,UAAA,IACAqgB,OAAAJ,GAAA,mBAEAzB,EAAAwB,GAAAD,EACAtB,IAGA,OAAAsB,EAgEAO,CAAA59B,EAAAm8B,MAEAA,EAAAkB,EAAAr9B,MAAA,IAAAq9B,EAAAG,QAAA,IAAAH,EAAArG,OAAA,IAAAqG,EAAA/jB,KAAA,OAAA+jB,EAAAM,OAAA,IACAlB,KAAAnK,EAAA/C,gBAAAuJ,EAAAqD,EAAA/b,EAAAD,GAEA,IAAA/L,EAAA3sB,KAAAi4B,UAQA,GANAtL,IAAAsoB,IACAF,EAAAtL,KAAAvB,GACA6M,EAAA/N,eAAAra,GACAub,EAAA6M,GAGAE,EAiBA5wC,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,MAlBA,CACA,IAAA6xC,EAAA79B,EAAA69B,aACAC,EAAA99B,EAAA+9B,aAEA,GAAAF,aAAAvqC,MACAxH,EAAA6jC,EAAA7jC,EAAAqoC,EAAA0J,EAAA,GAAAlO,EAAAlvB,OACAzU,EAAA2jC,EAAA3jC,EAAAmoC,EAAA0J,EAAA,GAAAlO,EAAAjvB,QACA0f,KAAA,WACO,CACP,IAAAvpB,EAAAy7B,EAAA0L,yBAAAH,EAAAlO,EAAAmO,GACAhyC,EAAA+K,EAAA/K,EACAE,EAAA6K,EAAA7K,EAEAo0B,KAAAvpB,EAAAsmC,UACAhd,KAAAtpB,EAAAumC,mBAOAtxC,EAAAwmC,EAAA2L,YAAAnyC,EAAA2wC,EAAAh8B,MAAA2f,GACAp0B,EAAAsmC,EAAA4L,YAAAlyC,EAAAywC,EAAA/7B,OAAAyf,GAEAn0B,GAAAywC,EAAA/7B,OAAA,EAoCA,IAEAy9B,EACAC,EACAC,EAJAxJ,EAAA9B,EAAA8B,WACAyJ,EAAA72C,KAAA82C,WAKAD,EAqBAF,GADAD,GADAE,EAAAC,EAAAE,YACAC,aACAA,aApBAH,EAAAzJ,EAAA,QACAsJ,EAAAtJ,EAAA,QACAuJ,EAAAvJ,EAAA,YACAwJ,EAAAxJ,EAAA,QAGAuJ,EAAAp+B,MAAA,uBACAwzB,EAAA8K,GACAH,EAAAO,YAAA,EACAN,EAAAj3B,IAAA,EACAm3B,EAAA9qC,KAAA,MACA8qC,EAAAK,GAAA,YACA7K,EAAAwK,EAAAD,GACAvK,EAAAwK,EAAAH,GACArK,EAAAwK,EAAAF,GACA32C,KAAA82C,WAAAD,GAQA,IAAAM,GAAA9yC,EAAAE,GACA6yC,EAAAP,EAAAt+B,MAEAoU,GAAAsoB,GACAjO,EAAAmQ,IAAAxqB,GACAiqB,EAAAl3B,IAAA,EACAk3B,EAAAhQ,OAAAja,EAAA,GAAArlB,QAAA,GAj4BA,IAi4BAqlB,EAAA,GAAArlB,QAAA,GAj4BA,IAi4BAqlB,EAAA,GAAArlB,QAAA,GAj4BA,IAi4BAqlB,EAAA,GAAArlB,QAAA,UAEAsvC,EAAAlU,QAAAt4B,EAAA+sC,EAAA,aAAA/sC,EAAA+sC,EAAA,QAEAP,EAAAxN,OAAA,MACAgO,EAAAvxC,KAAA,MACAuxC,EAAAplC,IAAA,QAEA4kC,EAAAl3B,IAAA,EACA03B,EAAAvxC,KAAAuE,EAAA/F,GAAA,KACA+yC,EAAAplC,IAAA5H,EAAA7F,GAAA,MAGAoyC,EAAAU,OAh4BAlmC,OAg4BAkgC,GAh4BA9oC,QAAA,cAAyCA,QAAA,eAk4BzC,IACAouC,EAAAp+B,MAAAm8B,OAEA,MAAAvwC,IAEA4oC,EAAA8J,EAAA,QACAn/B,KAAAa,EAAA++B,SACAzkC,QAAA0F,EAAA1F,SACK7S,MACL+sC,EAAA8J,EAAA,UACA3T,OAAA3qB,EAAAg/B,WACA1kC,QAAA0F,EAAA1F,QACAg8B,SAAAt2B,EAAAs2B,UACK7uC,MACL62C,EAAAt+B,MAAA64B,OAAA3E,EAAAzsC,KAAA20B,OAAA30B,KAAA40B,EAAA50B,KAAAokC,IAEAiI,EAAA4C,EAAA4H,KAGAtF,EAAA,SAAAtC,GACAxqC,EAAAwqC,EAAAjvC,KAAA82C,YACA92C,KAAA82C,WAAA,MAGApF,EAAA,SAAAzC,GACA5C,EAAA4C,EAAAjvC,KAAA82C,aAGAjqB,GAAAke,EAAAC,EAAAC,EAAAE,EAAAD,GAEAnqC,EAAA,EAAiBA,EAAA8rB,EAAA5rB,OAAiBF,IAAA,CAClC,IAAAy2C,EAAA3qB,EAAA9rB,GAAAb,UACAs3C,EAAAlG,eACAkG,EAAAjG,iBACAiG,EAAA9F,iBAGAxG,EAAAhrC,UAAA8uC,SAAA,SAAAC,GACA,IAAA12B,EAAAvY,KAAAuY,MAEA,MAAAA,EAAA84B,KACArxC,KAAAsxC,aAAArC,GACA5qC,EAAAkU,EAAAlU,GAAA,EACAE,EAAAgU,EAAAhU,GAAA,EACAyU,MAAA,EACAC,OAAA,GACOjZ,KAAA8nC,mBAAA,GAEP9nC,KAAAuxC,eAAAtC,IAIA/D,EAAAhrC,UAAAsxC,SAAA,SAAAvC,GACAjvC,KAAAuxC,eAAAtC,IAGA/D,EAAAhrC,UAAAuxC,MAAA,SAAAxC,GACAjvC,KAAA0xC,eAAAzC,6BCl/BA,IAAApV,EAAat6B,EAAQ,QAErBk4C,EAAYl4C,EAAQ,QAEpBm4C,EAAiBn4C,EAAQ,QAEzBo4C,EAAoBp4C,EAAQ,QA0B5Bq4C,EAAAH,EAAAv3C,UACA23C,EAAAF,EAAAz3C,UACA43C,EAAAJ,EAAAI,iBACAC,EAAAL,EAAAttC,MACA4tC,EAAAjwC,KAAAkwC,MACAC,EAAAnwC,KAAAowC,KACAC,EAAArwC,KAAAI,IACAkwC,EAAAtwC,KAAAvI,IACA84C,EAAAb,EAAA/tC,QACAlG,KAAA,MACA+0C,KAAA,GACAC,aAAA,WACAf,EAAAlrC,MAAAvM,KAAA8E,WACA9E,KAAAy4C,eAAA,IAAAd,GAMAe,SAAA,WACA,IAAAC,EAAA34C,KAAAy4C,eACAzd,EAAAh7B,KAAA44C,QACAC,EAAAF,EAAA7c,YACA,OAAAjC,EAAAlpB,IAAAknC,EAAAa,SAAAhtC,KAAA1L,MAAA,SAAAuN,GACA,IAAAurC,EAAApB,EAAAttC,MAAAguC,EAAAp4C,KAAAu4C,KAAAhrC,IAIA,OAFAurC,EAAAvrC,IAAAytB,EAAA,IAAA2d,EAAAI,SAAAC,EAAAF,EAAAD,EAAA,IAAAC,EACAA,EAAAvrC,IAAAytB,EAAA,IAAA2d,EAAAM,SAAAD,EAAAF,EAAAD,EAAA,IAAAC,GAEK94C,OAOLk5C,SAAArB,EAAAqB,SAMA3nC,MAAA,SAAAhE,GAEA,OADAA,EAAAqqC,EAAArmC,MAAA7F,KAAA1L,KAAAuN,GACA6qC,EAAAp4C,KAAAu4C,KAAAhrC,IAOA4rC,UAAA,SAAA32C,EAAA0uB,GACA,IAAAqnB,EAAAv4C,KAAAu4C,KACA/1C,EAAA61C,EAAA71C,GAAA61C,EAAAE,GACArnB,EAAAmnB,EAAAnnB,GAAAmnB,EAAAE,GACAV,EAAAsB,UAAAztC,KAAA1L,KAAAwC,EAAA0uB,IAMA4K,UAAA,WACA,IAAAyc,EAAAv4C,KAAAu4C,KACAvd,EAAA4c,EAAA9b,UAAApwB,KAAA1L,MACAg7B,EAAA,GAAAod,EAAAG,EAAAvd,EAAA,IACAA,EAAA,GAAAod,EAAAG,EAAAvd,EAAA,IAEA,IAAA2d,EAAA34C,KAAAy4C,eACAI,EAAAF,EAAA7c,YAGA,OAFA6c,EAAAI,WAAA/d,EAAA,GAAAge,EAAAhe,EAAA,GAAA6d,EAAA,KACAF,EAAAM,WAAAje,EAAA,GAAAge,EAAAhe,EAAA,GAAA6d,EAAA,KACA7d,GAMAoe,YAAA,SAAApe,GACAh7B,KAAAy4C,eAAAW,YAAApe,GAEA,IAAAud,EAAAv4C,KAAAu4C,KACAvd,EAAA,GAAAqd,EAAArd,EAAA,IAAAqd,EAAAE,GACAvd,EAAA,GAAAqd,EAAArd,EAAA,IAAAqd,EAAAE,GACAX,EAAAwB,YAAA1tC,KAAA1L,KAAAg7B,IAMAqe,oBAAA,SAAAvoC,EAAAunB,GAGAr4B,KAAAo5C,YAAAtoC,EAAAwoC,qBAAAjhB,KAOAkhB,UAAA,SAAAC,GACAA,KAAA,GACA,IAAAxe,EAAAh7B,KAAA44C,QACAxf,EAAA4B,EAAA,GAAAA,EAAA,GAEA,KAAA5B,IAAAqgB,KAAArgB,GAAA,IAIA,IAAAsgB,EAAAhC,EAAAiC,SAAAvgB,GAQA,IAPAogB,EAAApgB,EAAAsgB,GAEA,KACAA,GAAA,KAIAjvC,MAAAivC,IAAA3xC,KAAAY,IAAA+wC,GAAA,GAAA3xC,KAAAY,IAAA+wC,GAAA,GACAA,GAAA,GAGA,IAAAE,GAAAlC,EAAAttC,MAAA8tC,EAAAld,EAAA,GAAA0e,MAAAhC,EAAAttC,MAAA4tC,EAAAhd,EAAA,GAAA0e,OACA15C,KAAA65C,UAAAH,EACA15C,KAAA85C,YAAAF,IAOAA,WAAA,SAAAhhB,GACAif,EAAA+B,WAAAluC,KAAA1L,KAAA44B,GACA,IAAA+f,EAAA34C,KAAAy4C,eACAE,EAAAI,SAAAngB,EAAAmhB,OACApB,EAAAM,SAAArgB,EAAAohB,UAcA,SAAAhB,EAAAzrC,EAAA0sC,GACA,OAAAlC,EAAAxqC,EAAAuqC,EAAAmC,IAZApgB,EAAA4E,MAAA,gCAAAgJ,GACA6Q,EAAAp4C,UAAAunC,GAAA,SAAAl6B,GAEA,OADAA,EAAA8qC,EAAA9qC,GAAA8qC,EAAAr4C,KAAAu4C,MACAX,EAAAnQ,GAAA/7B,KAAA1L,KAAAuN,MAIA+qC,EAAA5O,OAAA,WACA,WAAA4O,GAOA,IAAAr1C,EAAAq1C,EACAp1C,EAAAC,QAAAF,0BCxLA,IAAA42B,EAAat6B,EAAQ,QAoBrB,SAAA26C,EAAAC,EAAAC,GAEA,OAAAvgB,EAAAlpB,KAAA,2BAAA0nB,EAAAgiB,GACA,IAAA5kB,EAAAz1B,KAAA,MAAAq4B,EAAA,UACA9qB,EAAA6sC,EAAAC,GACAC,EAAAH,EAAAE,GAAA,EACA3L,EAAA,SAAArW,EACAtnB,EAAA,aAAA0kB,EAAAjyB,KAAAiyB,EAAA0D,eAAApxB,KAAAY,IAAA8sB,EAAAiZ,GAAAnhC,EAAA+sC,GAAA7kB,EAAAiZ,GAAAnhC,EAAA+sC,IAMA,MAJA,UAAAjiB,IACAtnB,IAAAhJ,KAAAgwB,GAAA,KAGAhnB,GACG/Q,MA6BHkD,EAAAC,QA1BA,SAAAk4B,GACA,IAAAkf,EAAAlf,EAAAQ,gBACAH,EAAAL,EAAAM,eACAhZ,EAAA43B,EAAAze,YAEA,OADAnZ,EAAA,GAAAA,EAAA,IAAAA,EAAA4E,WAEA8T,UACA73B,KAAA,QACA+T,GAAA8jB,EAAA9jB,GACAC,GAAA6jB,EAAA7jB,GACAC,EAAAkL,EAAA,GACAwZ,GAAAxZ,EAAA,IAEA/e,KACAw+B,MAAAvI,EAAArvB,KAAA,SAAAsG,GACA,IAAA6R,EAAA43B,EAAAC,aAAA1pC,EAAA,IACAw8B,EAAA5R,EAAA+e,YAAA3pC,EAAA,IACAsxB,EAAA/G,EAAAqf,cAAA/3B,EAAA2qB,IAEA,OADAlL,EAAA7gC,KAAAohB,EAAA2qB,EAAAvlC,KAAAgwB,GAAA,KACAqK,IAEAvQ,KAAAgI,EAAArvB,KAAA0vC,EAAA7e,2CC1DA,IAAAsf,EAAAC,EAEA,mBAAA3vC,eAAAC,cAkCsBwC,KAAAktC,EAAA,mBAAdD,EAUP,WAID,IAAAE,EAAAlrC,OAGAmrC,GAEAC,UAAA,SAEAC,iBAAA,EAGAtY,OAAA,EAGAuY,kBAAA,WAGAC,kBAAA,EAIAC,sBAAA,+BAGAC,aAAA,OAEAC,aAAA,YAEAC,YAAA,EAGAC,WAAA,+EAEAC,oBAEAC,eAAA,GAoEA,SAAAC,EAAAC,EAAAC,EAAAnzC,GACAzI,KAAA67C,WAAAF,EAAAG,OAAAH,EAAA,GAAAA,EACA37C,KAAA+7C,SAIA,IAAAC,OAAA,IAAAJ,GAAA,OAAAA,EACAK,EAAAL,GAAA,oBAAAhyC,OAAA1J,UAAA0H,SAAA8D,KAAAkwC,GAoCA,OAlCA57C,KAAAk8C,QADAF,GAAAC,EACAj8C,KAAAmN,MAAA8uC,EAAAL,MAIAA,EAAAE,OAAAF,EAAA,GAAAA,EAIA57C,KAAAm8C,SAAAvyC,OAAA6B,UAAwCqvC,EAAAryC,GAGxCzI,KAAAm8C,SAAAZ,UAAAv7C,KAAAm8C,SAAAZ,UAAA5qC,IAAA,SAAAyrC,GAEA,QAAAp8C,KAAAm8C,SAAAX,iBAAA17C,QAAAs8C,GASA,MALA,eAAAA,GACAp8C,KAAAk8C,QAAAxV,aAAA,cAAA1mC,KAAAm8C,SAAApB,WAIA/6C,KAAAu7C,UAAAa,OACS5xC,KAAAxK,OAGTA,KAAA+7C,MAAA3tC,SAAApO,KAAAq8C,aAAAr8C,KAAAk8C,QAAAl8C,KAAA67C,YACAS,EAAAt8C,KAAAk8C,SAAgC9tC,SAAApO,KAAA+7C,MAAA3tC,SAAA4D,IAAA,IAGhChS,KAAAu8C,SAGAv8C,KAAAw8C,uBACAx8C,KA6uBA,SAAAy8C,EAAAhW,GAEA,IAAAiW,EAAAjW,EAAAluB,MAAAM,QACA8jC,EAAAlW,EAAAluB,MAAAqkC,WACAnW,EAAAluB,MAAAM,QAAA,QAAwC4tB,EAAAluB,MAAAqkC,WAAA,SACxCnW,EAAAqO,YAAA,IAGA+H,EAAAhC,EAAAiC,iBAAArW,GACApiC,EAAAmhB,WAAAq3B,EAAAE,WAAAv3B,WAAAq3B,EAAAG,cACAz4C,EAAAihB,WAAAq3B,EAAAI,YAAAz3B,WAAAq3B,EAAAK,aACAnsC,GAAsBiI,MAAAytB,EAAAqO,YAAAvwC,EAAA0U,OAAAwtB,EAAA0W,aAAA94C,GAItB,OADAoiC,EAAAluB,MAAAM,QAAA6jC,EAAyCjW,EAAAluB,MAAAqkC,WAAAD,EACzC5rC,EAUA,SAAAqsC,EAAArC,GACA,IAAAsC,GAAoBx3C,KAAA,QAAAC,MAAA,OAAAgP,OAAA,MAAA9C,IAAA,UACpB,OAAA+oC,EAAAxyC,QAAA,kCAAA+0C,GACA,OAAAD,EAAAC,KAWA,SAAAC,EAAAC,GACA,IAAAC,EAAA7zC,OAAA6B,UAAsC+xC,GAGtC,OAFAC,EAAA33C,MAAA23C,EAAA53C,KAAA43C,EAAAzkC,MACAykC,EAAA3oC,OAAA2oC,EAAAzrC,IAAAyrC,EAAAxkC,OACAwkC,EAWA,SAAAC,EAAA9xC,EAAA+xC,GACA,IACA5zC,EADAhJ,EAAA,EAEA,IAAAgJ,KAAA6B,EAAA,CACA,GAAAA,EAAA7B,KAAA4zC,EACA,OAAA58C,EAEAA,IAEA,YAUA,SAAA68C,EAAAnX,EAAAoX,GAGA,OADAhD,EAAAiC,iBAAArW,EAAA,MACAoX,GAUA,SAAAC,EAAArX,GAEA,IAAAsX,EAAAtX,EAAAsX,aACA,OAAAA,IAAAlD,EAAAhrC,SAAAG,MAAA+tC,IAAAlD,EAAAhrC,SAAAmuC,gBAUA,SAAAC,EAAAxX,GACA,IAAA8C,EAAA9C,EAAA8F,WAEA,OAAAhD,EAIAA,IAAAsR,EAAAhrC,SAGAgrC,EAAAhrC,SAAAG,KAAAkuC,WAAArD,EAAAhrC,SAAAG,KAAAmuC,WACAtD,EAAAhrC,SAAAG,KAEA6qC,EAAAhrC,SAAAmuC,iBAKA,sBAAAl+C,QAAA89C,EAAArU,EAAA,qCAAAzpC,QAAA89C,EAAArU,EAAA,uCAAAzpC,QAAA89C,EAAArU,EAAA,eAIAA,EAEA0U,EAAAxX,EAAA8F,YApBA9F,EAgDA,SAAA6V,EAAA7V,EAAAoW,GAIAjzC,OAAAC,KAAAgzC,GAAA/yC,QAAA,SAAAhJ,GACA,IAJAs9C,EAIAC,EAAA,IAEA,qDAAAv+C,QAAAgB,KALA,MADAs9C,EAMAvB,EAAA/7C,MALA2J,MAAA+a,WAAA44B,KAAAE,SAAAF,MAMAC,EAAA,MAEA5X,EAAAluB,MAAAzX,GAAA+7C,EAAA/7C,GAAAu9C,IAuBA,SAAAE,EAAA9X,GACA,IAAA+X,GACAxlC,MAAAytB,EAAAqO,YACA77B,OAAAwtB,EAAA0W,aACAt3C,KAAA4gC,EAAAgY,WACAzsC,IAAAy0B,EAAAiY,WAOA,OAJAF,EAAA14C,MAAA04C,EAAA34C,KAAA24C,EAAAxlC,MACAwlC,EAAA1pC,OAAA0pC,EAAAxsC,IAAAwsC,EAAAvlC,OAGAulC,EAUA,SAAAG,EAAAlY,GACA,IAAAyB,EAAAzB,EAAAkY,wBAMAC,GAHA,GAAAC,UAAAC,UAAAh/C,QAAA,SAGA,SAAA2mC,EAAAsL,SAAAtL,EAAAyX,UAAAhW,EAAAl2B,IAEA,OACAnM,KAAAqiC,EAAAriC,KACAmM,IAAA4sC,EACA94C,MAAAoiC,EAAApiC,MACAgP,OAAAozB,EAAApzB,OACAkE,MAAAkvB,EAAApiC,MAAAoiC,EAAAriC,KACAoT,OAAAivB,EAAApzB,OAAA8pC,GA0CA,SAAAG,EAAAlB,GAGA,IAFA,IAAAmB,GAAA,4BAEAj+C,EAAA,EAAuBA,EAAAi+C,EAAA/9C,OAAqBF,IAAA,CAC5C,IAAAk+C,EAAAD,EAAAj+C,GAAAi+C,EAAAj+C,GAAA88C,EAAAqB,OAAA,GAAAlN,cAAA6L,EAAAv7C,MAAA,GAAAu7C,EACA,YAAAhD,EAAAhrC,SAAAG,KAAAuI,MAAA0mC,GACA,OAAAA,EAGA,YA2CA,OA7hCAvD,EAAAx7C,UAAAi/C,QAAA,WAYA,OAXAn/C,KAAAk8C,QAAAkD,gBAAA,eACAp/C,KAAAk8C,QAAA3jC,MAAA1S,KAAA,GACA7F,KAAAk8C,QAAA3jC,MAAAnK,SAAA,GACApO,KAAAk8C,QAAA3jC,MAAAvG,IAAA,GACAhS,KAAAk8C,QAAA3jC,MAAAwmC,EAAA,iBACA/+C,KAAAq/C,wBAGAr/C,KAAAm8C,SAAAmD,iBACAt/C,KAAAk8C,QAAAz3C,SAEAzE,MAQA07C,EAAAx7C,UAAAq8C,OAAA,WACA,IAAAzrC,GAAoByuC,SAAAv/C,KAAA68C,WAIpB/rC,EAAAiqC,UAAA/6C,KAAAm8C,SAAApB,UACAjqC,EAAA0uC,mBAAAx/C,KAAAm8C,SAAApB,UAGAjqC,EAAA2sC,QAAAz9C,KAAAy/C,YAAAz/C,KAAAk8C,QAAAl8C,KAAA67C,WAAA/qC,EAAAiqC,WAGAjqC,EAAA4uC,WAAA1/C,KAAA2/C,eAAA7uC,EAAA9Q,KAAAm8C,SAAAjB,kBAAAl7C,KAAAm8C,SAAAlB,mBAEAnqC,EAAA9Q,KAAA4/C,aAAA9uC,EAAA9Q,KAAAm8C,SAAAZ,WAEA,mBAAAv7C,KAAA+7C,MAAA8D,gBACA7/C,KAAA+7C,MAAA8D,eAAA/uC,IAUA4qC,EAAAx7C,UAAA4/C,SAAA,SAAA39C,GAGA,OADAA,EAAAnC,MACAA,MAWA07C,EAAAx7C,UAAA6/C,SAAA,SAAA59C,GAEA,OADAnC,KAAA+7C,MAAA8D,eAAA19C,EACAnC,MAUA07C,EAAAx7C,UAAAiN,MAAA,SAAA6yC,GACA,IAAAC,GACAlO,QAAA,MACAmO,YAAA,UACAC,cACA5W,OAAAsR,EAAAhrC,SAAAG,KACAowC,QAAA,GACAC,YAAA,OACAC,aAAA,MACAC,iBAAA,iBACAC,iBAAA,YAEAR,EAAAp2C,OAAA6B,UAAiCw0C,EAAAD,GAEjC,IAAAvxB,EAAAosB,EAAAhrC,SAEA+rC,EAAAntB,EAAA3e,cAAAkwC,EAAAjO,SAWA,GAVA0O,EAAA7E,EAAAoE,EAAAE,YACAQ,EAAA9E,EAAAoE,EAAAG,YACA,SAAAH,EAAAK,YACAzE,EAAA3rC,YAAA+vC,EAAAI,QAAAtE,OAAAkE,EAAAI,QAAA,GAAAJ,EAAAI,SACS,SAAAJ,EAAAK,YACTzE,EAAAhH,UAAAoL,EAAAI,QAEAxE,EAAA+E,YAAAX,EAAAI,QAGAJ,EAAAM,aAAA,CACA,IAAAM,EAAAnyB,EAAA3e,cAAAkwC,EAAAM,cACAG,EAAAG,EAAAZ,EAAAO,iBACAG,EAAAE,EAAAZ,EAAAQ,iBACA5E,EAAA3rC,YAAA2wC,GAGA,IAAArX,EAAAyW,EAAAzW,OAAAuS,OAAAkE,EAAAzW,OAAA,GAAAyW,EAAAzW,OAKA,oBAAAA,EAAA,CAKA,IAJAA,EAAA9a,EAAAoyB,iBAAAb,EAAAzW,SACAtoC,OAAA,GACAwU,QAAAC,KAAA,qCAAAsqC,EAAAzW,OAAA,+DAEA,IAAAA,EAAAtoC,OACA,iDAEAsoC,IAAA,GAYA,OARAA,EAAAtoC,OAAA,GAAAsoC,aAAAuX,UAAA,IACArrC,QAAAC,KAAA,qFACA6zB,IAAA,IAIAA,EAAAt5B,YAAA2rC,GAEAA,EASA,SAAA6E,EAAAha,EAAAyZ,GACAA,EAAAp2C,QAAA,SAAAi3C,GACAta,EAAAua,UAAA/hB,IAAA8hB,KAaA,SAAAL,EAAAja,EAAA0Z,GACAA,EAAAr2C,QAAA,SAAAm3C,GACAxa,EAAAC,aAAAua,EAAApgD,MAAA,QAAAogD,EAAApgD,MAAA,iBAaA66C,EAAAx7C,UAAAm8C,aAAA,SAAAT,EAAAD,GACAmC,EAAAnC,GAEA,OAAA37C,KAAAm8C,SAAAV,cACA,WAyrBA,SAAAyF,EAAAza,GACA,GAAAA,IAAAoU,EAAAhrC,SAAAG,KACA,SAEA,aAAA4tC,EAAAnX,EAAA,YACA,SAEA,OAAAA,EAAA8F,WAAA2U,EAAAza,EAAA8F,YAAA9F,EA3rBAya,CAAAvF,GACA,oBAYAD,EAAAx7C,UAAAu/C,YAAA,SAAA7D,EAAAD,EAAAZ,GACAA,IAAAl6C,MAAA,QACA,IAAA28C,KAEAA,EAAApvC,SAAApO,KAAA+7C,MAAA3tC,SACA,IAAA+yC,EAAA,UAAA3D,EAAApvC,SAKAgzC,EAgwBA,SAAA3a,EAAA8C,EAAA8X,GACA,IAAA7C,EAAAG,EAAAlY,GACA6a,EAAA3C,EAAApV,GAEA,GAAA8X,EAAA,CACA,IAAAE,EAAAtD,EAAA1U,GACA+X,EAAAtvC,KAAAuvC,EAAArD,UACAoD,EAAAxsC,QAAAysC,EAAArD,UACAoD,EAAAz7C,MAAA07C,EAAApD,WACAmD,EAAAx7C,OAAAy7C,EAAApD,WAWA,OAPAnsC,IAAAwsC,EAAAxsC,IAAAsvC,EAAAtvC,IACAnM,KAAA24C,EAAA34C,KAAAy7C,EAAAz7C,KACAiP,OAAA0pC,EAAAxsC,IAAAsvC,EAAAtvC,IAAAwsC,EAAAvlC,OACAnT,MAAA04C,EAAA34C,KAAAy7C,EAAAz7C,KAAA24C,EAAAxlC,MACAA,MAAAwlC,EAAAxlC,MACAC,OAAAulC,EAAAvlC,QAlxBAuoC,CAAA7F,EAAAmC,EAAAlC,GAAAuF,GAKAM,EAAAhF,EAAAb,GA2BA,OApBA,qBAAA97C,QAAAi7C,IACAyC,EAAAxrC,IAAAovC,EAAApvC,IAAAovC,EAAAnoC,OAAA,EAAAwoC,EAAAxoC,OAAA,EAEAukC,EAAA33C,KADA,SAAAk1C,EACAqG,EAAAv7C,KAAA47C,EAAAzoC,MAEAooC,EAAAt7C,QAGA03C,EAAA33C,KAAAu7C,EAAAv7C,KAAAu7C,EAAApoC,MAAA,EAAAyoC,EAAAzoC,MAAA,EAEAwkC,EAAAxrC,IADA,QAAA+oC,EACAqG,EAAApvC,IAAAyvC,EAAAxoC,OAEAmoC,EAAAtsC,QAKA0oC,EAAAxkC,MAAAyoC,EAAAzoC,MACAwkC,EAAAvkC,OAAAwoC,EAAAxoC,QAGA2iC,OAAA4B,EACA7B,UAAAyF,IAUA1F,EAAAx7C,UAAAs8C,qBAAA,WAKA,GAHAx8C,KAAA+7C,MAAA2F,YAAA1hD,KAAAu8C,OAAA/xC,KAAAxK,MACA66C,EAAAj8B,iBAAA,SAAA5e,KAAA+7C,MAAA2F,aAEA,WAAA1hD,KAAAm8C,SAAAlB,kBAAA,CACA,IAAA16C,EAAA09C,EAAAj+C,KAAA67C,YAEAt7C,IAAAs6C,EAAAhrC,SAAAG,MAAAzP,IAAAs6C,EAAAhrC,SAAAmuC,kBACAz9C,EAAAs6C,GAEAt6C,EAAAqe,iBAAA,SAAA5e,KAAA+7C,MAAA2F,aACA1hD,KAAA+7C,MAAA4F,aAAAphD,IAUAm7C,EAAAx7C,UAAAm/C,sBAAA,WAEAxE,EAAA/7B,oBAAA,SAAA9e,KAAA+7C,MAAA2F,aACA,WAAA1hD,KAAAm8C,SAAAlB,mBAAAj7C,KAAA+7C,MAAA4F,eACA3hD,KAAA+7C,MAAA4F,aAAA7iC,oBAAA,SAAA9e,KAAA+7C,MAAA2F,aACA1hD,KAAA+7C,MAAA4F,aAAA,MAEA3hD,KAAA+7C,MAAA2F,YAAA,MAaAhG,EAAAx7C,UAAAy/C,eAAA,SAAA7uC,EAAAykB,EAAA0lB,GAEA,IACAhiC,EAoBAwtB,EArBAiZ,KAEA,cAAAzE,EAAA,CACA,IAAAjrC,EAAA6qC,EAAAhrC,SAAAG,KACA4xC,EAAA/G,EAAAhrC,SAAAmuC,gBAEA/kC,EAAAlR,KAAAE,IAAA+H,EAAA6xC,aAAA7xC,EAAAmtC,aAAAyE,EAAAhlC,aAAAglC,EAAAC,aAAAD,EAAAzE,cAGAuC,GACA1tC,IAAA,EACAlM,MAJAiC,KAAAE,IAAA+H,EAAA8xC,YAAA9xC,EAAA8kC,YAAA8M,EAAAjlC,YAAAilC,EAAAE,YAAAF,EAAA9M,aAKAhgC,OAAAmE,EACApT,KAAA,QAES,gBAAAo1C,EAAA,CACT,IAAA8C,EAAAD,EAAA99C,KAAAk8C,SACAqF,EAAAtD,EAAAj+C,KAAAk8C,SACA6F,EAAAxD,EAAAR,GAWAG,EAAA,UAAAptC,EAAA2sC,QAAA7B,OAAAxtC,SAAA,GARAq4B,EAQA8a,IAPA1xC,SAAAG,KAAAjI,KAAAE,IAAA4H,SAAAmuC,gBAAAE,UAAAruC,SAAAG,KAAAkuC,WAAAzX,EAAAyX,UAQAC,EAAA,UAAArtC,EAAA2sC,QAAA7B,OAAAxtC,SAAA,EANA,SAAAq4B,GACA,OAAAA,GAAA52B,SAAAG,KAAAjI,KAAAE,IAAA4H,SAAAmuC,gBAAAG,WAAAtuC,SAAAG,KAAAmuC,YAAA1X,EAAA0X,WAKA6D,CAAAT,GAEA7B,GACA1tC,IAAA,GAAA+vC,EAAA/vC,IAAAksC,GACAp4C,MAAA+0C,EAAAhrC,SAAAmuC,gBAAArhC,aAAAolC,EAAAl8C,KAAAs4C,GACArpC,OAAA+lC,EAAAhrC,SAAAmuC,gBAAAphC,cAAAmlC,EAAA/vC,IAAAksC,GACAr4C,KAAA,GAAAk8C,EAAAl8C,KAAAs4C,SAIAuB,EADA5B,EAAA99C,KAAAk8C,WAAAjB,GAEAjpC,IAAA,EACAnM,KAAA,EACAC,MAAAm1C,EAAAt+B,YACA7H,OAAAmmC,EAAAr+B,cAGA2hC,EAAAtD,GAOA,OAJAyE,EAAA75C,MAAA0vB,EACAmqB,EAAA55C,OAAAyvB,EACAmqB,EAAA1tC,IAAA0tC,EAAA1tC,IAAAujB,EACAmqB,EAAA5qC,OAAA4qC,EAAA5qC,OAAAygB,EACAmqB,GAYAhE,EAAAx7C,UAAA0/C,aAAA,SAAA9uC,EAAAyqC,EAAA0G,GACA,IAAAC,EAAA3G,EAAAj5C,QAWA,YAVAoL,IAAAu0C,IACAC,EAAAliD,KAAAm8C,SAAAZ,UAAAj5C,MAAA,EAAAo7C,EAAA19C,KAAAm8C,SAAAZ,UAAA0G,KAGAC,EAAAp4C,QAAA,SAAAsyC,GAmiBA,IAAA+F,KAliBA/F,IAoiBA,yBAAAx0C,SAAA8D,KAAAy2C,KAniBArxC,EAAAsrC,EAAA1wC,KAAA1L,KAAA8Q,KAEStG,KAAAxK,OAET8Q,GAWA4qC,EAAAx7C,UAAAkiD,mBAAA,SAAAC,EAAAC,GACA,IAAA11C,EAAA8wC,EAAA19C,KAAAm8C,SAAAZ,UAAA8G,GACA,QAAAriD,KAAAm8C,SAAAZ,UAAAj5C,MAAA,EAAAsK,GAAAwa,OAAA,SAAAg1B,GACA,OAAAA,IAAAkG,IACSrhD,QAaTy6C,EAAAx7C,UAAAq7C,aASAG,EAAAx7C,UAAAq7C,UAAAgH,WAAA,SAAAzxC,GAGA,IAUA0xC,EAVA3F,GACAzuC,SAAA0C,EAAA2sC,QAAA7B,OAAAxtC,UAIAvI,EAAAkC,KAAAqC,MAAA0G,EAAA2sC,QAAA7B,OAAA/1C,MACAmM,EAAAjK,KAAAqC,MAAA0G,EAAA2sC,QAAA7B,OAAA5pC,KAiCA,OA5BAhS,KAAAm8C,SAAAnB,kBAAAwH,EAAAzD,EAAA,eACAlC,EAAA2F,GAAA,eAAA38C,EAAA,OAAAmM,EAAA,SACA6qC,EAAA7qC,IAAA,EACA6qC,EAAAh3C,KAAA,IAIAg3C,EAAAh3C,OACAg3C,EAAA7qC,OAOApI,OAAA6B,OAAAoxC,EAAA/rC,EAAA+rC,QAEAP,EAAAt8C,KAAAk8C,QAAAW,GAIA78C,KAAAk8C,QAAAxV,aAAA,cAAA51B,EAAAiqC,WAGA/6C,KAAAoiD,mBAAApiD,KAAAu7C,UAAAgH,WAAAviD,KAAAu7C,UAAAqF,QAAA9vC,EAAA2sC,QAAAmD,OACAtE,EAAAxrC,EAAAuqC,aAAAvqC,EAAA2sC,QAAAmD,OAGA9vC,GAUA4qC,EAAAx7C,UAAAq7C,UAAA/N,MAAA,SAAA18B,GACA,IAAAiqC,EAAAjqC,EAAAiqC,UACA0H,EAAA1H,EAAAl6C,MAAA,QACA6hD,EAAA3H,EAAAl6C,MAAA,QAGA,GAAA6hD,EAAA,CACA,IAAA/G,EAAA7qC,EAAA2sC,QAAA9B,UACAC,EAAA2B,EAAAzsC,EAAA2sC,QAAA7B,QAEA+G,GACAp+C,GACA/B,OAA4BwP,IAAA2pC,EAAA3pC,KAC5Bkf,KAA0Blf,IAAA2pC,EAAA3pC,IAAA2pC,EAAA1iC,OAAA2iC,EAAA3iC,SAE1B5U,GACA7B,OAA4BqD,KAAA81C,EAAA91C,MAC5BqrB,KAA0BrrB,KAAA81C,EAAA91C,KAAA81C,EAAA3iC,MAAA4iC,EAAA5iC,SAI1Byc,GAAA,qBAAA31B,QAAA2iD,GAAA,QAEA3xC,EAAA2sC,QAAA7B,OAAAhyC,OAAA6B,OAAAmwC,EAAA+G,EAAAltB,GAAAitB,IAGA,OAAA5xC,GAUA4qC,EAAAx7C,UAAAq7C,UAAAqH,gBAAA,SAAA9xC,GACA,IAAAuE,EAAArV,KAAAm8C,SAAAhB,qBACAS,EAAA2B,EAAAzsC,EAAA2sC,QAAA7B,QAEAiH,GACAh9C,KAAA,WACA,IAAAA,EAAA+1C,EAAA/1C,KAIA,OAHA+1C,EAAA/1C,KAAAiL,EAAA4uC,WAAA75C,OACAA,EAAAkC,KAAAE,IAAA2zC,EAAA/1C,KAAAiL,EAAA4uC,WAAA75C,QAEwBA,SAExBC,MAAA,WACA,IAAAD,EAAA+1C,EAAA/1C,KAIA,OAHA+1C,EAAA91C,MAAAgL,EAAA4uC,WAAA55C,QACAD,EAAAkC,KAAAC,IAAA4zC,EAAA/1C,KAAAiL,EAAA4uC,WAAA55C,MAAA81C,EAAA5iC,SAEwBnT,SAExBmM,IAAA,WACA,IAAAA,EAAA4pC,EAAA5pC,IAIA,OAHA4pC,EAAA5pC,IAAAlB,EAAA4uC,WAAA1tC,MACAA,EAAAjK,KAAAE,IAAA2zC,EAAA5pC,IAAAlB,EAAA4uC,WAAA1tC,OAEwBA,QAExB8C,OAAA,WACA,IAAA9C,EAAA4pC,EAAA5pC,IAIA,OAHA4pC,EAAA9mC,OAAAhE,EAAA4uC,WAAA5qC,SACA9C,EAAAjK,KAAAC,IAAA4zC,EAAA5pC,IAAAlB,EAAA4uC,WAAA5qC,OAAA8mC,EAAA3iC,UAEwBjH,SAQxB,OAJAqD,EAAAvL,QAAA,SAAAg5C,GACAhyC,EAAA2sC,QAAA7B,OAAAhyC,OAAA6B,OAAAmwC,EAAAiH,EAAAC,QAGAhyC,GAUA4qC,EAAAx7C,UAAAq7C,UAAAwH,aAAA,SAAAjyC,GACA,IAAA8qC,EAAA2B,EAAAzsC,EAAA2sC,QAAA7B,QACAD,EAAA7qC,EAAA2sC,QAAA9B,UACAqH,EAAAj7C,KAAAkwC,MAeA,OAbA2D,EAAA91C,MAAAk9C,EAAArH,EAAA91C,QACAiL,EAAA2sC,QAAA7B,OAAA/1C,KAAAm9C,EAAArH,EAAA91C,MAAA+1C,EAAA5iC,OAEA4iC,EAAA/1C,KAAAm9C,EAAArH,EAAA71C,SACAgL,EAAA2sC,QAAA7B,OAAA/1C,KAAAm9C,EAAArH,EAAA71C,QAEA81C,EAAA9mC,OAAAkuC,EAAArH,EAAA3pC,OACAlB,EAAA2sC,QAAA7B,OAAA5pC,IAAAgxC,EAAArH,EAAA3pC,KAAA4pC,EAAA3iC,QAEA2iC,EAAA5pC,IAAAgxC,EAAArH,EAAA7mC,UACAhE,EAAA2sC,QAAA7B,OAAA5pC,IAAAgxC,EAAArH,EAAA7mC,SAGAhE,GAYA4qC,EAAAx7C,UAAAq7C,UAAA0H,KAAA,SAAAnyC,GAGA,IAAA9Q,KAAAoiD,mBAAApiD,KAAAu7C,UAAA0H,KAAAjjD,KAAAu7C,UAAAqH,iBAEA,OADAntC,QAAAC,KAAA,uHACA5E,EAGA,GAAAA,EAAAoyC,SAAApyC,EAAAiqC,YAAAjqC,EAAA0uC,mBAEA,OAAA1uC,EAGA,IAAAiqC,EAAAjqC,EAAAiqC,UAAAl6C,MAAA,QACAsiD,EAAA/F,EAAArC,GACAqI,EAAAtyC,EAAAiqC,UAAAl6C,MAAA,YAEAwiD,KAkCA,OAhCAA,EADA,SAAArjD,KAAAm8C,SAAAf,cACAL,EAAAoI,GAEAnjD,KAAAm8C,SAAAf,cAGAtxC,QAAA,SAAAwd,EAAA1a,GACA,GAAAmuC,IAAAzzB,GAAA+7B,EAAApiD,SAAA2L,EAAA,GAIAmuC,EAAAjqC,EAAAiqC,UAAAl6C,MAAA,QACAsiD,EAAA/F,EAAArC,GAEA,IAAAyC,EAAAD,EAAAzsC,EAAA2sC,QAAA7B,QAIArmC,GAAA,uBAAAzV,QAAAi7C,IAGAxlC,GAAAxN,KAAAkwC,MAAAnnC,EAAA2sC,QAAA9B,UAAAZ,IAAAhzC,KAAAkwC,MAAAuF,EAAA2F,MAAA5tC,GAAAxN,KAAAkwC,MAAAnnC,EAAA2sC,QAAA9B,UAAAZ,IAAAhzC,KAAAkwC,MAAAuF,EAAA2F,OAEAryC,EAAAoyC,SAAA,EACApyC,EAAAiqC,UAAAsI,EAAAz2C,EAAA,GACAw2C,IACAtyC,EAAAiqC,WAAA,IAAAqI,GAEAtyC,EAAA2sC,QAAA7B,OAAA57C,KAAAy/C,YAAAz/C,KAAAk8C,QAAAl8C,KAAA67C,WAAA/qC,EAAAiqC,WAAAa,OAEA9qC,EAAA9Q,KAAA4/C,aAAA9uC,EAAA9Q,KAAAm8C,SAAAZ,UAAAv7C,KAAAsjD,UAES94C,KAAAxK,OACT8Q,GAWA4qC,EAAAx7C,UAAAq7C,UAAA7Y,OAAA,SAAA5xB,GACA,IAAA4xB,EAAA1iC,KAAAm8C,SAAAzZ,OACAkZ,EAAA9qC,EAAA2sC,QAAA7B,OAWA,OATA,IAAA9qC,EAAAiqC,UAAAj7C,QAAA,QACA87C,EAAA5pC,KAAA0wB,GACS,IAAA5xB,EAAAiqC,UAAAj7C,QAAA,SACT87C,EAAA5pC,KAAA0wB,GACS,IAAA5xB,EAAAiqC,UAAAj7C,QAAA,OACT87C,EAAA/1C,MAAA68B,GACS,IAAA5xB,EAAAiqC,UAAAj7C,QAAA,YACT87C,EAAA/1C,MAAA68B,GAEA5xB,GAWA4qC,EAAAx7C,UAAAq7C,UAAAqF,MAAA,SAAA9vC,GACA,IAAA8vC,EAAA5gD,KAAAm8C,SAAAd,aACAC,EAAAt7C,KAAAm8C,SAAAb,YAQA,GALA,iBAAAsF,IACAA,EAAA5gD,KAAAk8C,QAAAqH,cAAA3C,KAIAA,EACA,OAAA9vC,EAIA,IAAA9Q,KAAAk8C,QAAAsH,SAAA5C,GAEA,OADAnrC,QAAAC,KAAA,gEACA5E,EAIA,IAAA9Q,KAAAoiD,mBAAApiD,KAAAu7C,UAAAqF,MAAA5gD,KAAAu7C,UAAAwH,cAEA,OADAttC,QAAAC,KAAA,sHACA5E,EAGA,IAAA2yC,KACA1I,EAAAjqC,EAAAiqC,UAAAl6C,MAAA,QACA+6C,EAAA2B,EAAAzsC,EAAA2sC,QAAA7B,QACAD,EAAA7qC,EAAA2sC,QAAA9B,UACA+H,GAAA,qBAAA5jD,QAAAi7C,GAEAl5C,EAAA6hD,EAAA,iBACAC,EAAAD,EAAA,aAEAE,EAAAF,EAAA,aACAG,EAAAH,EAAA,iBACAI,EAAArH,EAAAmE,GAAA/+C,GAOA85C,EAAAkI,GAAAC,EAAAlI,EAAA+H,KACA7yC,EAAA2sC,QAAA7B,OAAA+H,IAAA/H,EAAA+H,IAAAhI,EAAAkI,GAAAC,IAGAnI,EAAAgI,GAAAG,EAAAlI,EAAAiI,KACA/yC,EAAA2sC,QAAA7B,OAAA+H,IAAAhI,EAAAgI,GAAAG,EAAAlI,EAAAiI,IAIA,IAEAE,EAFApI,EAAAgI,IAAArI,GAAAK,EAAA95C,GAAA,EAAAiiD,EAAA,GAEAlI,EAAA+H,GAUA,OAPAI,EAAAh8C,KAAAE,IAAAF,KAAAC,IAAA4zC,EAAA/5C,GAAAiiD,EAAA,EAAAC,GAAA,GACAN,EAAAE,GAAAI,EACAN,EAAAG,GAAA,GAEA9yC,EAAA2sC,QAAAmD,MAAA6C,EACA3yC,EAAAuqC,aAAAuF,EAEA9vC,GAySAlH,OAAA6B,QACA7B,OAAAwB,eAAAxB,OAAA,UACAyB,YAAA,EACAC,cAAA,EACAC,UAAA,EACAhE,MAAA,SAAAhH,GACA,QAAAmN,IAAAnN,GAAA,OAAAA,EACA,UAAAyjD,UAAA,2CAIA,IADA,IAAA9M,EAAAttC,OAAArJ,GACAQ,EAAA,EAA+BA,EAAA+D,UAAA7D,OAAsBF,IAAA,CACrD,IAAAkjD,EAAAn/C,UAAA/D,GACA,QAAA2M,IAAAu2C,GAAA,OAAAA,EAAA,CAGAA,EAAAr6C,OAAAq6C,GAGA,IADA,IAAAC,EAAAt6C,OAAAC,KAAAo6C,GACAE,EAAA,EAAAtiD,EAAAqiD,EAAAjjD,OAAmEkjD,EAAAtiD,EAAiBsiD,IAAA,CACpF,IAAAC,EAAAF,EAAAC,GACAE,EAAAz6C,OAAA06C,yBAAAL,EAAAG,QACA12C,IAAA22C,KAAAh5C,aACA6rC,EAAAkN,GAAAH,EAAAG,MAIA,OAAAlN,KAKAwE,IAvsCsBf,EAAAjvC,KAAAvI,EAAA5D,EAAA4D,EAAAD,GAAAy3C,KAAAz3C,EAAAC,QAAAy3C,wCCpCtBhxC,OAAAwB,eAAAm5C,EAAA,cAAAh9C,OAAA,aAAAi9C,GAOA,IAAAC,EAAA,WACA,uBAAAC,IACA,OAAAA,IAUA,SAAAC,EAAA/4C,EAAA7B,GACA,IAAAgH,GAAA,EAYA,OAVAnF,EAAAwH,KAAA,SAAAwxC,EAAAh4C,GACA,OAAAg4C,EAAA,KAAA76C,IACAgH,EAAAnE,GAEA,KAMAmE,EAGA,kBACA,SAAA8zC,IACA7kD,KAAA8kD,eAGA,IAAAC,GAAkClzB,MAAQvmB,cAAA,IAiF1C,OA5EAy5C,EAAAlzB,KAAA7tB,IAAA,WACA,OAAAhE,KAAA8kD,YAAA7jD,QAOA4jD,EAAA3kD,UAAA8D,IAAA,SAAA+F,GACA,IAAA6C,EAAA+3C,EAAA3kD,KAAA8kD,YAAA/6C,GACA66C,EAAA5kD,KAAA8kD,YAAAl4C,GAEA,OAAAg4C,KAAA,IAQAC,EAAA3kD,UAAA8kD,IAAA,SAAAj7C,EAAAxC,GACA,IAAAqF,EAAA+3C,EAAA3kD,KAAA8kD,YAAA/6C,IAEA6C,EACA5M,KAAA8kD,YAAAl4C,GAAA,GAAArF,EAEAvH,KAAA8kD,YAAAvjD,MAAAwI,EAAAxC,KAQAs9C,EAAA3kD,UAAA+kD,OAAA,SAAAl7C,GACA,IAAAm7C,EAAAllD,KAAA8kD,YACAl4C,EAAA+3C,EAAAO,EAAAn7C,IAEA6C,GACAs4C,EAAA5jD,OAAAsL,EAAA,IAQAi4C,EAAA3kD,UAAAilD,IAAA,SAAAp7C,GACA,SAAA46C,EAAA3kD,KAAA8kD,YAAA/6C,IAMA86C,EAAA3kD,UAAAklD,MAAA,WACAplD,KAAA8kD,YAAAxjD,OAAA,IAQAujD,EAAA3kD,UAAA4J,QAAA,SAAA3H,EAAA0jC,QAEA,IAAAA,MAAA,MAEA,QAAA9kC,EAAA,EAAA8rB,EAHA7sB,KAGA8kD,YAAsD/jD,EAAA8rB,EAAA5rB,OAAiBF,GAAA,GACvE,IAAA6jD,EAAA/3B,EAAA9rB,GAEAoB,EAAAuJ,KAAAm6B,EAAA+e,EAAA,GAAAA,EAAA,MAIAh7C,OAAAy7C,iBAAAR,EAAA3kD,UAAA6kD,GAEAF,EAtFA,GA5BA,GAyHAS,EAAA,oBAAA31C,QAAA,oBAAAE,UAAAF,OAAAE,oBAGA01C,OACA,IAAAf,KAAAz8C,YACAy8C,EAGA,oBAAAr4C,WAAApE,YACAoE,KAGA,oBAAAwD,eAAA5H,YACA4H,OAIAwJ,SAAA,cAAAA,GASAqsC,EACA,mBAAAC,sBAIAA,sBAAAj7C,KAAA+6C,GAGA,SAAApjD,GAAgC,OAAAmK,WAAA,WAAgC,OAAAnK,EAAAsN,KAAAC,QAA+B,SAI/Fg2C,EAAA,EAiFAC,GAAA,gEAGAC,EAAA,oBAAAC,iBAKAC,EAAA,WACA9lD,KAAA+lD,YAAA,EACA/lD,KAAAgmD,sBAAA,EACAhmD,KAAAimD,mBAAA,KACAjmD,KAAAkmD,cAEAlmD,KAAAmmD,iBAAAnmD,KAAAmmD,iBAAA37C,KAAAxK,MACAA,KAAAomD,QAtFA,SAAAjkD,EAAAF,GACA,IAAAokD,GAAA,EACAC,GAAA,EACAC,EAAA,EAQA,SAAAC,IACAH,IACAA,GAAA,EAEAlkD,KAGAmkD,GACAG,IAWA,SAAAC,IACAlB,EAAAgB,GAQA,SAAAC,IACA,IAAAE,EAAAl3C,KAAAC,MAEA,GAAA22C,EAAA,CAEA,GAAAM,EAAAJ,EAAAb,EACA,OAOAY,GAAA,OAEAD,GAAA,EACAC,GAAA,EAEAh6C,WAAAo6C,EAAAzkD,GAGAskD,EAAAI,EAGA,OAAAF,EAuBAG,CAAA5mD,KAAAomD,QAAA57C,KAAAxK,MAnBA,KAgDA8lD,EAAA5lD,UAAA2mD,YAAA,SAAAC,IACA9mD,KAAAkmD,WAAApmD,QAAAgnD,IACA9mD,KAAAkmD,WAAA3kD,KAAAulD,GAIA9mD,KAAA+lD,YACA/lD,KAAA+mD,YAUAjB,EAAA5lD,UAAA8mD,eAAA,SAAAF,GACA,IAAAG,EAAAjnD,KAAAkmD,WACAt5C,EAAAq6C,EAAAnnD,QAAAgnD,IAGAl6C,GACAq6C,EAAA3lD,OAAAsL,EAAA,IAIAq6C,EAAAhmD,QAAAjB,KAAA+lD,YACA/lD,KAAAknD,eAUApB,EAAA5lD,UAAAkmD,QAAA,WACApmD,KAAAmnD,oBAKAnnD,KAAAomD,WAYAN,EAAA5lD,UAAAinD,iBAAA,WAEA,IAAAC,EAAApnD,KAAAkmD,WAAA9+B,OAAA,SAAA0/B,GACA,OAAAA,EAAAO,eAAAP,EAAAQ,cAUA,OAFAF,EAAAt9C,QAAA,SAAAg9C,GAAiD,OAAAA,EAAAS,oBAEjDH,EAAAnmD,OAAA,GASA6kD,EAAA5lD,UAAA6mD,SAAA,WAGAzB,IAAAtlD,KAAA+lD,aAOAl2C,SAAA+O,iBAAA,gBAAA5e,KAAAmmD,kBAEAx2C,OAAAiP,iBAAA,SAAA5e,KAAAomD,SAEAR,GACA5lD,KAAAimD,mBAAA,IAAAJ,iBAAA7lD,KAAAomD,SAEApmD,KAAAimD,mBAAAuB,QAAA33C,UACAswC,YAAA,EACAsH,WAAA,EACAC,eAAA,EACAC,SAAA,MAGA93C,SAAA+O,iBAAA,qBAAA5e,KAAAomD,SAEApmD,KAAAgmD,sBAAA,GAGAhmD,KAAA+lD,YAAA,IASAD,EAAA5lD,UAAAgnD,YAAA,WAGA5B,GAAAtlD,KAAA+lD,aAIAl2C,SAAAiP,oBAAA,gBAAA9e,KAAAmmD,kBACAx2C,OAAAmP,oBAAA,SAAA9e,KAAAomD,SAEApmD,KAAAimD,oBACAjmD,KAAAimD,mBAAA2B,aAGA5nD,KAAAgmD,sBACAn2C,SAAAiP,oBAAA,qBAAA9e,KAAAomD,SAGApmD,KAAAimD,mBAAA,KACAjmD,KAAAgmD,sBAAA,EACAhmD,KAAA+lD,YAAA,IAUAD,EAAA5lD,UAAAimD,iBAAA,SAAAvtC,GACA,IAAAivC,EAAAjvC,EAAAivC,kBAA4C,IAAAA,MAAA,IAG5ClC,EAAAvyC,KAAA,SAAArJ,GACA,SAAA89C,EAAA/nD,QAAAiK,MAIA/J,KAAAomD,WASAN,EAAAgC,YAAA,WAKA,OAJA9nD,KAAA+nD,YACA/nD,KAAA+nD,UAAA,IAAAjC,GAGA9lD,KAAA+nD,WAGAjC,EAAAiC,UAAA,KASA,IAAAC,EAAA,SAAAznD,EAAAuC,GACA,QAAA/B,EAAA,EAAA8rB,EAAAjjB,OAAAC,KAAA/G,GAA8C/B,EAAA8rB,EAAA5rB,OAAiBF,GAAA,GAC/D,IAAAgJ,EAAA8iB,EAAA9rB,GAEA6I,OAAAwB,eAAA7K,EAAAwJ,GACAxC,MAAAzE,EAAAiH,GACAsB,YAAA,EACAE,UAAA,EACAD,cAAA,IAIA,OAAA/K,GASA0nD,EAAA,SAAA1nD,GAQA,OAJAA,KAAA2nD,eAAA3nD,EAAA2nD,cAAAC,aAIA5C,GAIA6C,EAAAC,EAAA,SAQA,SAAAC,EAAA/gD,GACA,OAAAie,WAAAje,IAAA,EAUA,SAAAghD,EAAA1L,GAEA,IADA,IAAA2L,KAAA3mD,EAAAiD,UAAA7D,OAAA,EACAY,KAAA,GAAA2mD,EAAA3mD,GAAAiD,UAAAjD,EAAA,GAEA,OAAA2mD,EAAA/iC,OAAA,SAAAoM,EAAAzjB,GAGA,OAAAyjB,EAAAy2B,EAFAzL,EAAA,UAAAzuC,EAAA,YAGK,GA2CL,SAAAq6C,EAAAloD,GAGA,IAAAoc,EAAApc,EAAAoc,YACAC,EAAArc,EAAAqc,aAUA,IAAAD,IAAAC,EACA,OAAAwrC,EAGA,IAAAvL,EAAAoL,EAAA1nD,GAAAu8C,iBAAAv8C,GACAmoD,EArDA,SAAA7L,GAIA,IAHA,IACA6L,KAEA3nD,EAAA,EAAA8rB,GAHA,+BAGqC9rB,EAAA8rB,EAAA5rB,OAAiBF,GAAA,GACtD,IAAAqN,EAAAye,EAAA9rB,GAEAwG,EAAAs1C,EAAA,WAAAzuC,GAEAs6C,EAAAt6C,GAAAk6C,EAAA/gD,GAGA,OAAAmhD,EAyCAC,CAAA9L,GACA+L,EAAAF,EAAA7iD,KAAA6iD,EAAA5iD,MACA+iD,EAAAH,EAAA12C,IAAA02C,EAAA5zC,OAMAkE,EAAAsvC,EAAAzL,EAAA7jC,OACAC,EAAAqvC,EAAAzL,EAAA5jC,QAwBA,GApBA,eAAA4jC,EAAAiM,YAOA/gD,KAAAqC,MAAA4O,EAAA4vC,KAAAjsC,IACA3D,GAAAuvC,EAAA1L,EAAA,gBAAA+L,GAGA7gD,KAAAqC,MAAA6O,EAAA4vC,KAAAjsC,IACA3D,GAAAsvC,EAAA1L,EAAA,gBAAAgM,KA0DA,SAAAtoD,GACA,OAAAA,IAAA0nD,EAAA1nD,GAAAsP,SAAAmuC,gBAnDA+K,CAAAxoD,GAAA,CAKA,IAAAyoD,EAAAjhD,KAAAqC,MAAA4O,EAAA4vC,GAAAjsC,EACAssC,EAAAlhD,KAAAqC,MAAA6O,EAAA4vC,GAAAjsC,EAOA,IAAA7U,KAAAY,IAAAqgD,KACAhwC,GAAAgwC,GAGA,IAAAjhD,KAAAY,IAAAsgD,KACAhwC,GAAAgwC,GAIA,OAAAZ,EAAAK,EAAA7iD,KAAA6iD,EAAA12C,IAAAgH,EAAAC,GASA,IAAAiwC,EAGA,oBAAAC,mBACA,SAAA5oD,GAAkC,OAAAA,aAAA0nD,EAAA1nD,GAAA4oD,oBAMlC,SAAA5oD,GAA8B,OAAAA,aAAA0nD,EAAA1nD,GAAA6oD,YAAA,mBAAA7oD,EAAA8oD,SAmB9B,SAAAC,EAAA/oD,GACA,OAAA+kD,EAIA4D,EAAA3oD,GAjIA,SAAAA,GACA,IAAAgpD,EAAAhpD,EAAA8oD,UAEA,OAAAhB,EAAA,IAAAkB,EAAAvwC,MAAAuwC,EAAAtwC,QA+HAuwC,CAAAjpD,GAGAkoD,EAAAloD,GAPA6nD,EAiDA,SAAAC,EAAAhkD,EAAAE,EAAAyU,EAAAC,GACA,OAAY5U,IAAAE,IAAAyU,QAAAC,UAOZ,IAAAwwC,EAAA,SAAAlpD,GACAP,KAAA0pD,eAAA,EACA1pD,KAAA2pD,gBAAA,EACA3pD,KAAA4pD,aAAAvB,EAAA,SAEAroD,KAAAO,UAuBAkpD,EAAAvpD,UAAA2pD,SAAA,WACA,IAAA3hB,EAAAohB,EAAAtpD,KAAAO,QAIA,OAFAP,KAAA4pD,aAAA1hB,EAEAA,EAAAlvB,QAAAhZ,KAAA0pD,gBAAAxhB,EAAAjvB,SAAAjZ,KAAA2pD,iBASAF,EAAAvpD,UAAA4pD,cAAA,WACA,IAAA5hB,EAAAloC,KAAA4pD,aAKA,OAHA5pD,KAAA0pD,eAAAxhB,EAAAlvB,MACAhZ,KAAA2pD,gBAAAzhB,EAAAjvB,OAEAivB,GAGA,IAAA6hB,EAAA,SAAAxpD,EAAAypD,GACA,IA5FApxC,EACAvU,EACAE,EACAyU,EACAC,EAGAgxC,EACA/hB,EAoFAgiB,GA3FA7lD,GADAuU,EA4FAoxC,GA3FA3lD,EACAE,EAAAqU,EAAArU,EACAyU,EAAAJ,EAAAI,MACAC,EAAAL,EAAAK,OAGAgxC,EAAA,oBAAAE,gCAAAvgD,OACAs+B,EAAAt+B,OAAA8/B,OAAAugB,EAAA/pD,WAGA8nD,EAAA9f,GACA7jC,IAAAE,IAAAyU,QAAAC,SACAjH,IAAAzN,EACAuB,MAAAzB,EAAA2U,EACAlE,OAAAmE,EAAA1U,EACAsB,KAAAxB,IAGA6jC,GAiFA8f,EAAAhoD,MAA8BO,SAAA2pD,iBAG9BE,EAAA,SAAAjoD,EAAAkoD,EAAAC,GAIA,GAHAtqD,KAAAuqD,uBACAvqD,KAAAwqD,cAAA,IAAA/F,EAEA,mBAAAtiD,EACA,UAAA6hD,UAAA,2DAGAhkD,KAAAyqD,UAAAtoD,EACAnC,KAAA0qD,YAAAL,EACArqD,KAAA2qD,aAAAL,GA+BAF,EAAAlqD,UAAAsnD,QAAA,SAAAjnD,GACA,IAAAuE,UAAA7D,OACA,UAAA+iD,UAAA,4CAIA,uBAAAlD,4BAAAl3C,OAAA,CAIA,KAAArJ,aAAA0nD,EAAA1nD,GAAAugD,SACA,UAAAkD,UAAA,yCAGA,IAAA4G,EAAA5qD,KAAAwqD,cAGAI,EAAAzF,IAAA5kD,KAIAqqD,EAAA5F,IAAAzkD,EAAA,IAAAkpD,EAAAlpD,IAEAP,KAAA0qD,YAAA7D,YAAA7mD,MAGAA,KAAA0qD,YAAAtE,aASAgE,EAAAlqD,UAAA2qD,UAAA,SAAAtqD,GACA,IAAAuE,UAAA7D,OACA,UAAA+iD,UAAA,4CAIA,uBAAAlD,4BAAAl3C,OAAA,CAIA,KAAArJ,aAAA0nD,EAAA1nD,GAAAugD,SACA,UAAAkD,UAAA,yCAGA,IAAA4G,EAAA5qD,KAAAwqD,cAGAI,EAAAzF,IAAA5kD,KAIAqqD,EAAA3F,OAAA1kD,GAEAqqD,EAAA/4B,MACA7xB,KAAA0qD,YAAA1D,eAAAhnD,SASAoqD,EAAAlqD,UAAA0nD,WAAA,WACA5nD,KAAA8qD,cACA9qD,KAAAwqD,cAAApF,QACAplD,KAAA0qD,YAAA1D,eAAAhnD,OASAoqD,EAAAlqD,UAAAmnD,aAAA,WACA,IAAA0D,EAAA/qD,KAEAA,KAAA8qD,cAEA9qD,KAAAwqD,cAAA1gD,QAAA,SAAAkhD,GACAA,EAAAnB,YACAkB,EAAAR,oBAAAhpD,KAAAypD,MAWAZ,EAAAlqD,UAAAqnD,gBAAA,WAEA,GAAAvnD,KAAAsnD,YAAA,CAIA,IAAAzhB,EAAA7lC,KAAA2qD,aAGAzF,EAAAllD,KAAAuqD,oBAAA55C,IAAA,SAAAq6C,GACA,WAAAjB,EAAAiB,EAAAzqD,OAAAyqD,EAAAlB,mBAGA9pD,KAAAyqD,UAAA/+C,KAAAm6B,EAAAqf,EAAArf,GACA7lC,KAAA8qD,gBAQAV,EAAAlqD,UAAA4qD,YAAA,WACA9qD,KAAAuqD,oBAAAjpD,OAAA,IAQA8oD,EAAAlqD,UAAAonD,UAAA,WACA,OAAAtnD,KAAAuqD,oBAAAtpD,OAAA,GAMA,IAAAgmD,EAAA,oBAAAgE,QAAA,IAAAA,QAAA,IAAAxG,EAMAyG,EAAA,SAAA/oD,GACA,KAAAnC,gBAAAkrD,GACA,UAAAlH,UAAA,sCAEA,IAAAl/C,UAAA7D,OACA,UAAA+iD,UAAA,4CAGA,IAAAqG,EAAAvE,EAAAgC,cACAhB,EAAA,IAAAsD,EAAAjoD,EAAAkoD,EAAArqD,MAEAinD,EAAAjC,IAAAhlD,KAAA8mD,KAIA,oCAAAh9C,QAAA,SAAA4kC,GACAwc,EAAAhrD,UAAAwuC,GAAA,WACA,OAAA91B,EAAAquC,EAAAjjD,IAAAhE,OAAA0uC,GAAAniC,MAAAqM,EAAA9T,WACA,IAAA8T,KAIA,IAAAhM,OAEA,IAAA24C,EAAA2F,eACA3F,EAAA2F,eAGAA,EAGe3G,EAAA,qDC//Bf,IAAA1qB,EAAat6B,EAAQ,QAErB4rD,EAAW5rD,EAAQ,QA+BnB6rD,EAAA,SAAA/yB,EAAA9mB,EAAA85C,EAAAC,GACAH,EAAAz/C,KAAA1L,KAAAq4B,EAAA9mB,EAAA85C,GAUArrD,KAAAwD,KAAA8nD,GAAA,QAMAtrD,KAAAu3B,MAAA,MAGA6zB,EAAAlrD,WACAC,YAAAirD,EAKAG,cAAA,WACA,OAAAvrD,KAAAu3B,MAAA8H,SAAA,UAMAxC,aAAA,WACA,qBAAA78B,KAAAu3B,MAAAvzB,IAAA,YAGA61B,EAAA2xB,SAAAJ,EAAAD,GACA,IAAAloD,EAAAmoD,EACAloD,EAAAC,QAAAF,0BCxEc1D,EAAQ,QAEtBq6B,QAFA,IAIA6xB,EAAclsD,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBqrC,EAAgBrrC,EAAQ,QAExBorC,EAAUprC,EAAQ,QAElBmsD,EAAcnsD,EAAQ,QAEtBosD,EAAepsD,EAAQ,QAEvBqsD,EAAkBrsD,EAAQ,QAE1BssD,EAAmBtsD,EAAQ,QAE3BusD,EAA8BvsD,EAAQ,QAEtCwsD,EAAoBxsD,EAAQ,QAE5BysD,EAAqBzsD,EAAQ,QAE7B0sD,EAAgB1sD,EAAQ,QAExB2sD,EAAqB3sD,EAAQ,QAE7B4sD,EAAkB5sD,EAAQ,QAE1B6sD,EAAoB7sD,EAAQ,QAE5B86B,EAAgB96B,EAAQ,QAExBib,EAAcjb,EAAQ,QAEtB06B,EAAgB16B,EAAQ,QAIxBqnD,EAFgBrnD,EAAQ,QAExBqnD,SAEAyF,EAAkB9sD,EAAQ,QAE1B+sD,EAAW/sD,EAAQ,QAEnBgtD,EAAqBhtD,EAAQ,QAE7BitD,EAAgBjtD,EAAQ,QAExBktD,EAAiBltD,EAAQ,QAEzBmtD,EAAgBntD,EAAQ,QAExBA,EAAQ,QAoBR,IAAAotD,EAAA9yB,EAAA8yB,OACAluB,EAAA5E,EAAA4E,KACA9+B,EAAAk6B,EAAAl6B,WACAC,EAAAi6B,EAAAj6B,SACAgtD,EAAAV,EAAAU,eAMAC,EAAA,IAEAC,EAAA,IAEAC,EAAA,IAKAC,GACAC,WACAC,OAAAL,EACAM,UAXA,KAaAC,QACAC,OAAAP,EACAQ,OAbA,IAcAC,MAAAR,EACAS,UAbA,IAcAC,MAXA,MAmBAC,EAAA,sBACAC,EAAA,kBACAC,EAAA,kBAEA,SAAAC,EAAAnf,GACA,gBAAAnI,EAAA9qB,EAAAqyC,GAEAvnB,OAAAjuB,cACAqzC,EAAAzrD,UAAAwuC,GAAAhjC,KAAA1L,KAAAumC,EAAA9qB,EAAAqyC,IAQA,SAAAC,IACApC,EAAAjgD,KAAA1L,MAWA,SAAAguD,EAAAC,EAAAtzC,EAAA9P,GACAA,QAEA,iBAAA8P,IACAA,EAAAuzC,GAAAvzC,IAOA3a,KAAA0B,GAMA1B,KAAAg/B,MAMAh/B,KAAAmuD,KAAAF,EACA,IAMAvtD,EAAAV,KAAAouD,IAAA3C,EAAAjtC,KAAAyvC,GACAI,SAAAxjD,EAAAwjD,UAPA,SAQAC,iBAAAzjD,EAAAyjD,iBACAt1C,MAAAnO,EAAAmO,MACAC,OAAApO,EAAAoO,SAQAjZ,KAAAuuD,kBAAA3H,EAAA/sB,EAAArvB,KAAA9J,EAAA8tD,MAAA9tD,GAAA,KACAia,EAAAkf,EAAAmQ,MAAArvB,KACAqxC,EAAArxC,GAAA,GAMA3a,KAAAyuD,OAAA9zC,EAMA3a,KAAA0uD,gBAMA1uD,KAAA2uD,cAMA3uD,KAAA4uD,oBAMA5uD,KAAA6uD,kBAMA7uD,KAAA8uD,aAAA,IAAAhD,EAMA,IAowCAiD,EACAC,EArwCAprD,EAAA5D,KAAAivD,MAqwCAD,GADAD,EApwCA/uD,MAqwCA8uD,aACAj1B,EAAAnwB,OAAA,IAAAmiD,EAAAkD,IAEAG,qBAAAr1B,EAAArvB,KAAAwkD,EAAAE,qBAAAF,GACAG,sBAAA,SAAA1uD,GACA,KAAAA,GAAA,CACA,IAAA2uD,EAAA3uD,EAAA4uD,kBAEA,SAAAD,EACA,OAAAL,EAAAlqD,OAAAf,aAAAsrD,EAAAE,SAAAF,EAAAxiD,OAGAnM,IAAA8oC,YA/wCA,SAAAgmB,EAAAh6C,EAAAC,GACA,OAAAD,EAAAi6C,OAAAh6C,EAAAg6C,OAGA9D,EAAA+D,GAAAF,GACA7D,EAAAgE,GAAAH,GAKAvvD,KAAA2vD,WAAA,IAAAnD,EAAAxsD,KAAA4D,EAAA8rD,GAAAD,IACA9D,EAAAjgD,KAAA1L,MAMAA,KAAA4vD,eAAA,IAAA7B,EAEA/tD,KAAA6vD,cAGA7vD,KAAAwc,OAAAqd,EAAArvB,KAAAxK,KAAAwc,OAAAxc,MAEAA,KAAA8vD,mBACApvD,EAAAc,UAAAke,GAAA,QAAA1f,KAAA+vD,SAAA/vD,MAw5BA,SAAAU,EAAAsvD,GACAtvD,EAAAgf,GAAA,sBACAswC,EAAA/9C,QAAA,aAQAvR,EAAAc,UAAAyuD,cAAAD,EAAArC,IAAAqC,EAAAL,WAAAO,YAAAF,EAAAF,gBAAA7uD,QACA+uD,EAAA/9C,QAAA,cAl6BAk+C,CAAAzvD,EAAAV,MAEA65B,EAAAu2B,eAAApwD,MA5HA+tD,EAAA7tD,UAAAwf,GAAAmuC,EAAA,MACAE,EAAA7tD,UAAAmwD,IAAAxC,EAAA,OACAE,EAAA7tD,UAAAowD,IAAAzC,EAAA,OACAh0B,EAAA8N,MAAAomB,EAAApC,GA4HA,IAAA4E,EAAAvC,EAAA9tD,UAqWA,SAAAswD,EAAA/oB,EAAAC,EAAAngC,GACA,IAIAwJ,EAJApN,EAAA3D,KAAA6E,OAEA4rD,EAAAzwD,KAAA8uD,aAAAI,uBAGAxnB,EAAAzN,EAAAy2B,YAAA/sD,EAAA+jC,GAEA,QAAA3mC,EAAA,EAAiBA,EAAA0vD,EAAAxvD,OAAyBF,IAAA,CAC1C,IAAAs6B,EAAAo1B,EAAA1vD,GAEA,GAAAs6B,EAAAoM,IAAA,OAAA12B,EAAAsqB,EAAAoM,GAAA9jC,EAAA+jC,EAAAngC,IACA,OAAAwJ,GA/WAw/C,EAAAR,SAAA,WACA,IAAA/vD,KAAA2wD,UAAA,CAIA,IAAAC,EAAA5wD,KAAA2vD,WAEA,GAAA3vD,KAAA2tD,GAAA,CACA,IAAAxpB,EAAAnkC,KAAA2tD,GAAAxpB,OACAnkC,KAAA0tD,IAAA,EACAmD,EAAA7wD,MACA8wD,EAAAvU,OAAA7wC,KAAA1L,MACAA,KAAA0tD,IAAA,EACA1tD,KAAA2tD,IAAA,EACAoD,EAAArlD,KAAA1L,KAAAmkC,GACA6sB,EAAAtlD,KAAA1L,KAAAmkC,QAEA,GAAAysB,EAAAV,WAAA,CAEA,IAAAe,EApMA,EAqMAttD,EAAA3D,KAAA6E,OACAjB,EAAA5D,KAAAivD,KACA2B,EAAAV,YAAA,EAEA,GACA,IAAAgB,GAAA,IAAAzhD,KACAmhD,EAAAO,mBAAAxtD,GAEAitD,EAAAQ,0BAAAztD,GACA0tD,EAAArxD,KAAA2D,GAOAitD,EAAAU,mBAAA3tD,GACA4tD,GAAAvxD,UAAA6E,OAAAjB,EAAA,UACAqtD,IAAA,IAAAxhD,KAAAyhD,QACOD,EAAA,GAAAL,EAAAV,YAGPU,EAAAV,YACAlwD,KAAAouD,IAAAI,WAWA+B,EAAAiB,OAAA,WACA,OAAAxxD,KAAAmuD,MAOAoC,EAAA5rD,MAAA,WACA,OAAA3E,KAAAouD,KAkBAmC,EAAAxyC,UAAA,SAAAd,EAAAY,EAAA4zC,GACA,IAAAttB,EAUA,GARAvkC,EAAAie,KACA4zC,EAAA5zC,EAAA4zC,WACAttB,EAAAtmB,EAAAsmB,OACAtmB,cAGA7d,KAAA0tD,IAAA,GAEA1tD,KAAA6E,QAAAgZ,EAAA,CACA,IAAA6zC,EAAA,IAAA3F,EAAA/rD,KAAAivD,MACAt0C,EAAA3a,KAAAyuD,OACA9qD,EAAA3D,KAAA6E,OAAA,IAAA+mD,EAAA,UAAAjxC,EAAA+2C,GACA/tD,EAAAitD,UAAA5wD,KAAA2vD,WACAhsD,EAAA6a,KAAA,UAAA7D,EAAA+2C,GAGA1xD,KAAA6E,OAAAkZ,UAAAd,EAAA00C,IAEAF,GACAzxD,KAAA2tD,IACAxpB,UAEAnkC,KAAA0tD,IAAA,IAEAmD,EAAA7wD,MACA8wD,EAAAvU,OAAA7wC,KAAA1L,MAGAA,KAAAouD,IAAAI,QAEAxuD,KAAA2tD,IAAA,EACA3tD,KAAA0tD,IAAA,EACAqD,EAAArlD,KAAA1L,KAAAmkC,GACA6sB,EAAAtlD,KAAA1L,KAAAmkC,KAQAosB,EAAAqB,SAAA,WACAn8C,QAAAjW,IAAA,oDAOA+wD,EAAAlxB,SAAA,WACA,OAAAr/B,KAAA6E,QAOA0rD,EAAAsB,UAAA,WACA,OAAA7xD,KAAA6E,QAAA7E,KAAA6E,OAAAgtD,aAOAtB,EAAAuB,SAAA,WACA,OAAA9xD,KAAAouD,IAAA0D,YAOAvB,EAAAwB,UAAA,WACA,OAAA/xD,KAAAouD,IAAA2D,aAOAxB,EAAAyB,oBAAA,WACA,OAAAhyD,KAAAouD,IAAA6D,QAAAlsB,KAAAp2B,OAAA2+C,kBAAA,GAUAiC,EAAA2B,kBAAA,SAAArnD,GACA,GAAA8/B,EAAAiB,gBAcA,OAVA/gC,SACAsnD,WAAAtnD,EAAAsnD,YAAA,EACAtnD,EAAA4P,gBAAA5P,EAAA4P,iBAAAza,KAAA6E,OAAAb,IAAA,mBACAhE,KAAAouD,IAOA6D,QAAAC,kBAAArnD,IAQA0lD,EAAA6B,cAAA,WACA,GAAAznB,EAAA0nB,aAAA,CAIA,IAAA3xD,EAAAV,KAAAouD,IACAvhC,EAAAnsB,EAAA4xD,QAAAC,iBAKA,OAHA14B,EAAA4E,KAAA5R,EAAA,SAAApsB,GACAA,EAAAkB,eAAA,KAEAjB,EAAAuxD,QAAAO,kBAYAjC,EAAAkC,WAAA,SAAA5nD,GAEA,IAAA6nD,GADA7nD,SACA6nD,kBACA/uD,EAAA3D,KAAA6E,OACA8tD,KACAxmD,EAAAnM,KACAy+B,EAAAi0B,EAAA,SAAAE,GACAjvD,EAAAkvD,eACAvD,SAAAsD,GACK,SAAAr+B,GACL,IAAAu+B,EAAA3mD,EAAA0iD,eAAAt6B,EAAAw+B,UAEAD,EAAA9zB,MAAAgF,SACA2uB,EAAApxD,KAAAuxD,GACAA,EAAA9zB,MAAAgF,QAAA,OAIA,IAAA71B,EAAA,QAAAnO,KAAAouD,IAAA6D,QAAAnlD,UAAA9M,KAAAoyD,gBAAApyD,KAAAkyD,kBAAArnD,GAAAmoD,UAAA,UAAAnoD,KAAArH,MAAA,QAIA,OAHAi7B,EAAAk0B,EAAA,SAAAG,GACAA,EAAA9zB,MAAAgF,QAAA,IAEA71B,GAWAoiD,EAAA0C,oBAAA,SAAApoD,GACA,GAAA8/B,EAAAiB,gBAAA,CAIA,IAAAsnB,EAAAlzD,KAAAg/B,MACAm0B,EAAAprD,KAAAC,IACA2jC,EAAA5jC,KAAAE,IAGA,GAAAmrD,GAAAF,GAAA,CACA,IAAArtD,EAHA4zC,IAIAznC,EAJAynC,IAKA3zC,GALA2zC,IAMA3kC,GANA2kC,IAOA4Z,KACAttB,EAAAl7B,KAAAsnD,YAAA,EACAt4B,EAAA4E,KAAA60B,GAAA,SAAAC,EAAA7xD,GACA,GAAA6xD,EAAAv0B,QAAAk0B,EAAA,CACA,IAAAx0C,EAAA60C,EAAArB,kBAAAr4B,EAAAmQ,MAAAn/B,IACA2oD,EAAAD,EAAA/B,SAAA7S,wBACA94C,EAAAstD,EAAAK,EAAA3tD,QACAmM,EAAAmhD,EAAAK,EAAAxhD,OACAlM,EAAA6lC,EAAA6nB,EAAA1tD,SACAgP,EAAA62B,EAAA6nB,EAAA1+C,UACAu+C,EAAA9xD,MACA0sD,IAAAvvC,EACA7Y,KAAA2tD,EAAA3tD,KACAmM,IAAAwhD,EAAAxhD,SAQA,IAAAgH,GAFAlT,GAAAigC,IAFAlgC,GAAAkgC,GAKA9sB,GAFAnE,GAAAixB,IAFA/zB,GAAA+zB,GAKA0tB,EAAA55B,EAAA65B,eACAD,EAAAz6C,QACAy6C,EAAAx6C,SACA,IAAAvY,EAAA+qD,EAAAjtC,KAAAi1C,GAYA,OAXAh1B,EAAA40B,EAAA,SAAA1mD,GACA,IAAAklC,EAAA,IAAAr3B,EAAAu5B,OACAx7B,OACAlU,EAAAsI,EAAA9G,KAAAkgC,EAAAlgC,EACAtB,EAAAoI,EAAAqF,IAAA+zB,EAAA/zB,EACA8/B,MAAAnlC,EAAAshD,OAGAvtD,EAAAu+B,IAAA4S,KAEAnxC,EAAAizD,qBACAF,EAAAT,UAAA,UAAAnoD,KAAArH,MAAA,QAEA,OAAAxD,KAAAyyD,WAAA5nD,KAuBA0lD,EAAAjmB,eAAAzQ,EAAA0Q,MAAAimB,EAAA,kBAoBAD,EAAA/lB,iBAAA3Q,EAAA0Q,MAAAimB,EAAA,oBAqCAD,EAAAqD,aAAA,SAAAlsB,EAAAngC,GACA,IACAwJ,EADApN,EAAA3D,KAAA6E,OAkBA,OAhBA6iC,EAAAzN,EAAAy2B,YAAA/sD,EAAA+jC,GACA7N,EAAA4E,KAAAiJ,EAAA,SAAAmsB,EAAA9pD,GACAA,EAAAjK,QAAA,cAAA+5B,EAAA4E,KAAAo1B,EAAA,SAAAt8B,GACA,IAAA8D,EAAA9D,EAAAlJ,iBAEA,GAAAgN,KAAAoP,aACA15B,KAAAsqB,EAAAoP,aAAAljC,QACO,oBAAAwC,EAAA,CACP,IAAA+oD,EAAA9yD,KAAA2uD,WAAAp3B,EAAAw7B,UAEAD,KAAAroB,eACA15B,GAAA+hD,EAAAroB,aAAAljC,EAAAgwB,MAGKv3B,OACFA,QACH+Q,GAmBAw/C,EAAA5uB,UAAA,SAAA+F,EAAAosB,GACA,IAAAnwD,EAAA3D,KAAA6E,OAKAiM,GAJA42B,EAAAzN,EAAAy2B,YAAA/sD,EAAA+jC,GACAqsB,gBAAA,YAEAv4B,YACAtP,UACA8nC,EAAAtsB,EAAA7kC,eAAA,mBAAA6kC,EAAAssB,gBAAAtsB,EAAA7kC,eAAA,aAAAiO,EAAAmjD,gBAAAvsB,EAAAtJ,WAAA,KACA,aAAA41B,EAAAljD,EAAAojD,cAAAF,EAAAF,GAAAhjD,EAAA6wB,UAAAmyB,IASAvD,EAAA4D,wBAAA,SAAAC,GACA,OAAAp0D,KAAA6uD,eAAAuF,EAAArB,WASAxC,EAAA8D,qBAAA,SAAA74B,GACA,OAAAx7B,KAAA2uD,WAAAnzB,EAAAu3B,WAGA,IAAAjC,GACAwD,iBAAA,SAAA1wB,GACAitB,EAAA7wD,MACA8wD,EAAAvU,OAAA7wC,KAAA1L,KAAA4jC,IAOA2Y,OAAA,SAAA3Y,GAEA,IAAAjgC,EAAA3D,KAAA6E,OACAjB,EAAA5D,KAAAivD,KACAvuD,EAAAV,KAAAouD,IACAY,EAAAhvD,KAAA8uD,aACA8B,EAAA5wD,KAAA2vD,WAEA,GAAAhsD,EAAA,CAIAitD,EAAA2D,YAAA5wD,EAAAigC,GACAgtB,EAAAO,mBAAAxtD,GAMAqrD,EAAAtlB,OAAA/lC,EAAAC,GACAgtD,EAAAQ,0BAAAztD,EAAAigC,GAIAytB,EAAArxD,KAAA2D,GAKAqrD,EAAAzS,OAAA54C,EAAAC,GACA4wD,EAAA7wD,GACAitD,EAAAU,mBAAA3tD,EAAAigC,GACAngC,GAAAzD,KAAA2D,EAAAC,EAAAggC,GAEA,IAAAnpB,EAAA9W,EAAAK,IAAA,kCAEA,GAAA2mC,EAAAiB,gBAQAlrC,EAAA+zD,mBAAAh6C,OARA,CACA,IAAAqyB,EAAAlC,EAAAz9B,MAAAsN,GACAA,EAAAmwB,EAAAx9B,UAAA0/B,EAAA,OAEA,IAAAA,EAAA,KACAryB,EAAA,eAMAi6C,GAAA/wD,EAAAC,KAOA4lC,gBAAA,SAAA5F,GACA,IAAAjgC,EAAA3D,KAAA6E,OACAmrD,EAAAhwD,KACA4D,EAAA5D,KAAAivD,KAEA,GAAAtrD,EAAA,CAKA,IAAAgxD,KACAhxD,EAAAkvD,cAAA,SAAAD,EAAAwB,GACA,IAAAQ,EAAA5E,EAAAmE,wBAAAC,GAEA,GAAAQ,KAAAC,QACA,GAAAD,EAAAprB,gBAAA,CACA,IAAAz4B,EAAA6jD,EAAAprB,gBAAA4qB,EAAAzwD,EAAAC,EAAAggC,GACA7yB,KAAAwrC,QAAAoY,EAAApzD,KAAAqzD,QAEAD,EAAApzD,KAAAqzD,KAIA,IAAAE,EAAAj7B,EAAAk7B,gBACApxD,EAAAqxD,WAAA,SAAAx5B,GACA,IAAAy5B,EAAAjF,EAAArB,WAAAnzB,EAAAu3B,UAEA,GAAAkC,EAAAzrB,gBAAA,CACA,IAAAz4B,EAAAkkD,EAAAzrB,gBAAAhO,EAAA73B,EAAAC,EAAAggC,GACA7yB,KAAAwrC,QAAAuY,EAAA9P,IAAAxpB,EAAA05B,IAAA,QAEAJ,EAAA9P,IAAAxpB,EAAA05B,IAAA,KAGAV,EAAA7wD,GAGA3D,KAAA2vD,WAAA2B,mBAAA3tD,EAAAigC,GACAuxB,UAAA,EACAC,SAAAN,IAKAvD,GAAAvB,EAAArsD,EAAAC,EAAAggC,EAAAkxB,GACAJ,GAAA/wD,EAAA3D,KAAAivD,QAOAoG,WAAA,SAAAzxB,GACA,IAAAjgC,EAAA3D,KAAA6E,OAEAlB,IAIA02B,EAAAi7B,iBAAA1xB,EAAA,cACA4wB,EAAA7wD,GAEA3D,KAAA2vD,WAAA2B,mBAAA3tD,EAAAigC,GACAuxB,UAAA,IAGA1xD,GAAAzD,UAAA6E,OAAA7E,KAAAivD,KAAArrB,GACA8wB,GAAA/wD,EAAA3D,KAAAivD,QAOAsG,aAAA,SAAA3xB,GACAktB,EAAAvU,OAAA7wC,KAAA1L,KAAA4jC,IAiBA4xB,aAAA,SAAA5xB,GACAktB,EAAAvU,OAAA7wC,KAAA1L,KAAA4jC,KAcA,SAAAitB,EAAAb,GACA,IAAArsD,EAAAqsD,EAAAnrD,OACA+rD,EAAAZ,EAAAL,WACAiB,EAAA6E,iBAAA9xD,GACAitD,EAAA8E,oBACAC,EAAA3F,EAAA,YAAArsD,EAAAitD,GACA+E,EAAA3F,EAAA,QAAArsD,EAAAitD,GACAA,EAAAgF,OAOA,SAAAC,EAAA7F,EAAAthB,EAAA9K,EAAA0rB,EAAAwG,GACA,IAAAnyD,EAAAqsD,EAAAnrD,OAEA,GAAAyqD,EAAA,CAQA,IAAAyG,KACAA,EAAAzG,EAAA,MAAA1rB,EAAA0rB,EAAA,MACAyG,EAAAzG,EAAA,SAAA1rB,EAAA0rB,EAAA,SACAyG,EAAAzG,EAAA,QAAA1rB,EAAA0rB,EAAA,QACA,IAAA0G,GACA1G,WACAyG,SAEAD,IAAAE,EAAAF,WAEA,IAAAG,EAAAryB,EAAAqyB,gBAEA,MAAAA,IACAA,EAAAp8B,EAAAk7B,cAAA96B,EAAAi8B,iBAAAD,KAIAtyD,KAAAkvD,cAAAmD,EAAA,SAAAz+B,GACA0+B,GAAA,MAAAA,EAAAjyD,IAAAuzB,EAAA71B,KACAy0D,EAAAnG,EAAA,WAAAV,EAAA,+BAAA/3B,EAAAw7B,YAEG/C,QAzBHvxB,EAAAuxB,EAAApB,iBAAA75C,OAAAi7C,EAAAtB,cAAAyH,GA2BA,SAAAA,EAAArD,GACAA,KAAA+B,SAAA/B,EAAApkB,IAAAokB,EAAApkB,GAAAokB,EAAAsD,QAAAzyD,EAAAqsD,EAAAf,KAAArrB,IAiCA,SAAAytB,EAAArB,EAAArsD,GACA,IAAA0yD,EAAArG,EAAArB,WACAiC,EAAAZ,EAAAL,WACAhsD,EAAAqxD,WAAA,SAAAx5B,GACAo1B,EAAAS,kBAAA71B,EAAA66B,EAAA76B,EAAAu3B,aAsGA,SAAAuD,EAAA1yB,EAAAO,GACA,IAAAoyB,EAAA3yB,EAAApgC,KACAgzD,EAAA5yB,EAAA4yB,cACAC,EAAAC,GAAAH,GACAI,EAAAF,EAAAE,WACAC,GAAAD,EAAApa,QAAA,UAAA17C,MAAA,KACAg2D,EAAAD,EAAAE,MACAF,EAAA,MAAAA,EAAA,IAAAhK,EAAAgK,EAAA,IACA52D,KAAA0tD,IAAA,EACA,IAAAqJ,GAAAnzB,GACAozB,GAAA,EAEApzB,EAAAqzB,QACAD,GAAA,EACAD,EAAAl9B,EAAAlpB,IAAAizB,EAAAqzB,MAAA,SAAAtqD,GAGA,OAFAA,EAAAktB,EAAAmJ,SAAAnJ,EAAAnwB,UAA6CiD,GAAAi3B,IAC7CqzB,MAAA,KACAtqD,KAIA,IACAuqD,EADAC,KAEAC,EAAA,cAAAb,GAAA,aAAAA,EACA93B,EAAAs4B,EAAA,SAAAM,IAIAH,GAFAA,EAAAT,EAAAa,OAAAD,EAAAr3D,KAAA6E,OAAA7E,KAAAivD,QAEAp1B,EAAAnwB,UAA2C2tD,IAE3C7zD,KAAAmzD,EAAAY,OAAAL,EAAA1zD,KACA2zD,EAAA51D,KAAA21D,GAEAE,EAEAvB,EAAA71D,KAAA62D,EAAAQ,EAAA,UACKT,GACLf,EAAA71D,KAAA62D,EAAAQ,EAAAT,EAAAY,KAAAZ,EAAAjtD,MAEG3J,MAEH,SAAA62D,GAAAO,GAAAR,IAEA52D,KAAA2tD,IAEAkD,EAAA7wD,MACA8wD,EAAAvU,OAAA7wC,KAAA1L,KAAA4jC,GACA5jC,KAAA2tD,IAAA,GAEAmD,EAAA+F,GAAAnrD,KAAA1L,KAAA4jC,IAMAszB,EADAF,GAEAxzD,KAAAmzD,EAAAY,OAAAhB,EACAC,gBACAS,MAAAE,GAGAA,EAAA,GAGAn3D,KAAA0tD,IAAA,GACAvpB,GAAAnkC,KAAA4vD,eAAA39C,QAAAilD,EAAA1zD,KAAA0zD,GAGA,SAAAnG,EAAA5sB,GAGA,IAFA,IAAAszB,EAAAz3D,KAAA8vD,gBAEA2H,EAAAx2D,QAAA,CACA,IAAA2iC,EAAA6zB,EAAAjqB,QACA8oB,EAAA5qD,KAAA1L,KAAA4jC,EAAAO,IAIA,SAAA6sB,EAAA7sB,IACAA,GAAAnkC,KAAAiS,QAAA,WAmEA,SAAA0jD,EAAA3F,EAAAxsD,EAAAG,EAAAitD,GAOA,IANA,IAAA8G,EAAA,cAAAl0D,EACAm0D,EAAAD,EAAA1H,EAAApB,iBAAAoB,EAAAtB,aACAkJ,EAAAF,EAAA1H,EAAAnB,eAAAmB,EAAArB,WACAjuD,EAAAsvD,EAAA5B,IACAxqD,EAAAosD,EAAAf,KAEAluD,EAAA,EAAiBA,EAAA42D,EAAA12D,OAAqBF,IACtC42D,EAAA52D,GAAA8zD,SAAA,EAOA,SAAAgD,EAAAtgC,GAEA,IAAAugC,EAAA,OAAAvgC,EAAA71B,GAAA,IAAA61B,EAAA/zB,KACAsvD,EAAA8E,EAAAE,GAEA,IAAAhF,EAAA,CACA,IAAAiF,EAAAnL,EAAAr1B,EAAA/zB,OAEAsvD,EAAA,IADA4E,EAAAtL,EAAA4L,SAAAD,EAAAP,KAAAO,EAAApuD,KAAA0wB,EAAA29B,SAAAD,EAAApuD,OAEA6U,KAAA7a,EAAAC,GACAg0D,EAAAE,GAAAhF,EACA6E,EAAAp2D,KAAAuxD,GACApyD,EAAAu+B,IAAA6zB,EAAA9zB,OAGAzH,EAAAw7B,SAAAD,EAAAmF,KAAAH,EACAhF,EAAA+B,SAAA,EACA/B,EAAAsD,QAAA7+B,EACAu7B,EAAA9zB,MAAAqwB,mBACAC,SAAA/3B,EAAA+3B,SACA1iD,MAAA2qB,EAAA2gC,iBAEAR,GAAA9G,EAAA+E,YAAA7C,EAAAv7B,EAAA5zB,EAAAC,GA1BA8zD,EAAA/zD,EAAAkvD,cAAA,SAAAD,EAAAr7B,GACA,WAAAq7B,GAAAiF,EAAAtgC,KACG5zB,EAAAqxD,WAAA6C,GA2BH,IAAA92D,EAAA,EAAiBA,EAAA42D,EAAA12D,QAAqB,CACtC,IAAA6xD,EAAA6E,EAAA52D,GAEA+xD,EAAA+B,QAQA9zD,MAPA22D,GAAA5E,EAAAqF,WAAApzD,UACArE,EAAA+D,OAAAquD,EAAA9zB,OACA8zB,EAAA/tD,QAAApB,EAAAC,GACA+zD,EAAAr2D,OAAAP,EAAA,UACA62D,EAAA9E,EAAAmF,MACAnF,EAAAmF,KAAAnF,EAAA9zB,MAAAqwB,kBAAA,OA6BA,SAAAmF,EAAA7wD,GACAA,EAAA6wD,oBACA7wD,EAAAqxD,WAAA,SAAAx5B,GACAA,EAAAg5B,sBAIA,SAAA/wD,GAAAusD,EAAArsD,EAAAC,EAAAggC,IAcA,SAAAosB,EAAArsD,EAAAC,EAAAggC,EAAAw0B,GACA35B,EAAA25B,GAAApI,EAAApB,iBAAA,SAAAgG,GACA,IAAAR,EAAAQ,EAAAwB,QACAxB,EAAAnxD,OAAA2wD,EAAAzwD,EAAAC,EAAAggC,GACAy0B,GAAAjE,EAAAQ,KAjBA0D,CAAAtI,EAAArsD,EAAAC,EAAAggC,GACAnF,EAAAuxB,EAAAtB,aAAA,SAAA6E,GACAA,EAAAsB,SAAA,IAEAtD,GAAAvB,EAAArsD,EAAAC,EAAAggC,GAEAnF,EAAAuxB,EAAAtB,aAAA,SAAA6E,GACAA,EAAAsB,SACAtB,EAAA9uD,OAAAd,EAAAC,KAkBA,SAAA2tD,GAAAvB,EAAArsD,EAAAC,EAAAggC,EAAAwxB,GAEA,IACAlF,EADAU,EAAAZ,EAAAL,WAEAhsD,EAAAqxD,WAAA,SAAAx5B,GACA,IAAAy5B,EAAAjF,EAAArB,WAAAnzB,EAAAu3B,UACAkC,EAAAJ,SAAA,EACA,IAAAsD,EAAAlD,EAAAkD,WACAvH,EAAA2H,cAAAJ,EAAAv0B,GAEAwxB,KAAApxD,IAAAw3B,EAAA05B,MACAiD,EAAA/2D,QAGA8uD,GAAAiI,EAAAK,QAAA5H,EAAA6H,eAAAN,IACAlD,EAAAj2B,MAAAmF,SAAA3I,EAAAx3B,IAAA,UACAq0D,GAAA78B,EAAAy5B,GA0HA,SAAAz5B,EAAAy5B,GACA,IAAAyD,EAAAl9B,EAAAx3B,IAAA,mBACAixD,EAAAj2B,MAAA25B,SAAA,SAAAl4D,GAEAA,EAAAm4D,SAEAn4D,EAAA8X,MAAAsgD,QAAAH,GACAj4D,EAAA67C,SAAA,QAAAoc,GAIAj4D,EAAAq4D,wBACAr4D,EAAAq4D,uBAAA,SAAAC,GACAA,EAAAzc,SAAA,QAAAoc,OAtIAM,CAAAx9B,EAAAy5B,KAEArE,EAAAV,cA8FA,SAAAxvD,EAAAiD,GACA,IAAA2uD,EAAA5xD,EAAA4xD,QACA2G,EAAA,EACA3G,EAAAqG,SAAA,SAAAl4D,GACAA,EAAAm4D,SACAK,MAIAA,EAAAt1D,EAAAK,IAAA,yBAAA2mC,EAAAuuB,MACA5G,EAAAqG,SAAA,SAAAl4D,GACAA,EAAAm4D,UAEAn4D,EAAA04D,eAAA,KAzGAC,CAAApJ,EAAA5B,IAAAzqD,GAEA2oD,EAAA0D,EAAA5B,IAAAH,IAAAtqD,GAGA,SAAA+wD,GAAA/wD,EAAAC,GACA66B,EAAA46B,GAAA,SAAAC,GACAA,EAAA31D,EAAAC,KA5ZA2sD,EAAA/zC,OAAA,SAAA3R,GACA7K,KAAAouD,IAAA5xC,OAAA3R,GAEA,IAAAlH,EAAA3D,KAAA6E,OAIA,GAFA7E,KAAAu5D,YAAAv5D,KAAAu5D,WAAA/8C,SAEA7Y,EAAA,CAIA,IAAA61D,EAAA71D,EAAA81D,YAAA,SACAt1B,EAAAt5B,KAAAs5B,OACAnkC,KAAA0tD,IAAA,EACA8L,GAAA3I,EAAA7wD,MACA8wD,EAAAvU,OAAA7wC,KAAA1L,MACAA,KAAA0tD,IAAA,EACAqD,EAAArlD,KAAA1L,KAAAmkC,GACA6sB,EAAAtlD,KAAA1L,KAAAmkC,KAiBAosB,EAAAmJ,YAAA,SAAA92D,EAAA+2D,GASA,GARA/5D,EAAAgD,KACA+2D,EAAA/2D,EACAA,EAAA,IAGAA,KAAA,UACA5C,KAAA45D,cAEAC,GAAAj3D,GAAA,CAIA,IAAAnC,EAAAo5D,GAAAj3D,GAAA5C,KAAAivD,KAAA0K,GACAj5D,EAAAV,KAAAouD,IACApuD,KAAAu5D,WAAA94D,EACAC,EAAAu+B,IAAAx+B,KAOA8vD,EAAAqJ,YAAA,WACA55D,KAAAu5D,YAAAv5D,KAAAouD,IAAA3pD,OAAAzE,KAAAu5D,YACAv5D,KAAAu5D,WAAA,MAQAhJ,EAAAuJ,oBAAA,SAAA5C,GACA,IAAAtzB,EAAA/J,EAAAnwB,UAAgCwtD,GAEhC,OADAtzB,EAAApgC,KAAAu2D,GAAA7C,EAAA1zD,MACAogC,GAgBA2sB,EAAAnsD,eAAA,SAAAw/B,EAAAhL,GACAh5B,EAAAg5B,KACAA,GACAuL,SAAAvL,IAIA89B,GAAA9yB,EAAApgC,OAKAxD,KAAA6E,SAKA7E,KAAA0tD,GACA1tD,KAAA8vD,gBAAAvuD,KAAAqiC,IAKA0yB,EAAA5qD,KAAA1L,KAAA4jC,EAAAhL,EAAAuL,QAEAvL,EAAA41B,MACAxuD,KAAAouD,IAAAI,OAAA,IACG,IAAA51B,EAAA41B,OAAA7jB,EAAAqvB,QAAAC,QAMHj6D,KAAAuuD,oBAGAwC,EAAArlD,KAAA1L,KAAA44B,EAAAuL,QACA6sB,EAAAtlD,KAAA1L,KAAA44B,EAAAuL,WAuHAosB,EAAA2J,WAAA,SAAAvoC,GACA,IAAAQ,EAAAR,EAAAQ,YACAnyB,KAAAq/B,WACA86B,iBAAAhoC,GACA+nC,WAAAvoC,GAQA3xB,KAAA2vD,WAAAO,YAAA,GAQAK,EAAA7wC,GAAAmuC,EAAA,MACA0C,EAAAF,IAAAxC,EAAA,OACA0C,EAAAD,IAAAzC,EAAA,OAuJA,IAAAuM,IAAA,uGAkIA,SAAA/B,GAAA9gC,EAAAu7B,GACA,IAAAl+B,EAAA2C,EAAAvzB,IAAA,KACA2wB,EAAA4C,EAAAvzB,IAAA,UAEA8uD,EAAA9zB,MAAA25B,SAAA,SAAAl4D,GACA,UAAAA,EAAA+C,OACA,MAAAoxB,IAAAn0B,EAAAm0B,KACA,MAAAD,IAAAl0B,EAAAk0B,aApIA47B,EAAAV,YAAA,WACApxB,EAAA27B,GAAA,SAAAC,GACAr6D,KAAAouD,IAAA1uC,GAAA26C,EAAA,SAAAl2D,GACA,IAEAwtB,EAFAhuB,EAAA3D,KAAAq/B,WACA5+B,EAAA0D,EAAA5D,OAGA,iBAAA85D,EACA1oC,UACO,GAAAlxB,GAAA,MAAAA,EAAA29B,UAAA,CACP,IAAAk8B,EAAA75D,EAAA65D,WAAA32D,EAAAw2D,iBAAA15D,EAAA0xB,aACAR,EAAA2oC,KAAAC,cAAA95D,EAAA29B,UAAA39B,EAAA4hB,mBAEA5hB,KAAA+5D,YACA7oC,EAAAkI,EAAAnwB,UAAmCjJ,EAAA+5D,YAGnC7oC,IACAA,EAAA4lC,MAAApzD,EACAwtB,EAAAnuB,KAAA62D,EACAr6D,KAAAiS,QAAAooD,EAAA1oC,KAEK3xB,OACFA,MACHy+B,EAAAs7B,GAAA,SAAAU,EAAAC,GACA16D,KAAA4vD,eAAAlwC,GAAAg7C,EAAA,SAAAnD,GACAv3D,KAAAiS,QAAAyoD,EAAAnD,IACKv3D,OACFA,OAOHuwD,EAAAoK,WAAA,WACA,OAAA36D,KAAA2wD,WAOAJ,EAAAnL,MAAA,WACAplD,KAAA+d,WACAzL,YACG,IAOHi+C,EAAAxrD,QAAA,WACA,IAAA/E,KAAA2wD,UAAA,CAIA3wD,KAAA2wD,WAAA,EACA12B,EAAAyM,aAAA1mC,KAAAwxD,SAAAoJ,GAAA,IACA,IAAAh3D,EAAA5D,KAAAivD,KACAtrD,EAAA3D,KAAA6E,OACA45B,EAAAz+B,KAAA4uD,iBAAA,SAAAr6B,GACAA,EAAAxvB,QAAApB,EAAAC,KAEA66B,EAAAz+B,KAAA0uD,aAAA,SAAA6E,GACAA,EAAAxuD,QAAApB,EAAAC,KAGA5D,KAAAouD,IAAArpD,iBAEAuuD,GAAAtzD,KAAA0B,MAGAm4B,EAAA8N,MAAAqmB,EAAArC,GAuFA,IAAA+K,MAMAqD,MAOArK,MAMAiC,MAMA0H,MAMA5J,MAMAvB,MAKA2L,MACAvG,MACAF,MACAyH,GAAA,IAAAprD,KAAA,EACAqrD,GAAA,IAAArrD,KAAA,EACAmrD,GAAA,qBACAG,MAkGA,SAAAC,GAAA9H,GACAE,GAAAF,IAAA,EAOA,IAAAtL,GAAAoT,GAwBA,SAAAC,GAAAhN,GACA,OAAAqF,GAAAr5B,EAAAihC,aAAAjN,EAAA2M,KAgBA,SAAAO,GAAAv4D,EAAA+X,GACAuzC,GAAAtrD,GAAA+X,EAQA,SAAAygD,GAAAC,GACA1J,GAAApwD,KAAA85D,GAQA,SAAAC,GAAAC,EAAAC,GACAC,GAAA/L,GAAA6L,EAAAC,EAAA3O,GA6BA,SAAA6O,GAAA/E,EAAApwB,EAAA+wB,GACA,mBAAA/wB,IACA+wB,EAAA/wB,EACAA,EAAA,IAGA,IAAAk0B,EAAA76D,EAAA+2D,KAAAnzD,MAAAmzD,KACAY,MAAAhxB,IACG,GAEHowB,EAAAY,OAAAZ,EAAAY,OAAAkD,GAAAniD,cACAiuB,EAAAowB,EAAAY,MAEA5K,EAAAiB,EAAA+N,KAAAlB,IAAA7M,EAAA+N,KAAAp1B,IAEAmwB,GAAA+D,KACA/D,GAAA+D,IACAnD,SACAX,eAIAoD,GAAAxzB,GAAAk0B,EA4CA,SAAAmB,GAAAL,EAAAM,GACAJ,GAAAhM,GAAA8L,EAAAM,EAAA9O,EAAA,UAOA,SAAA0O,GAAAK,EAAAP,EAAAtvD,EAAA8vD,EAAAjI,IACAn0D,EAAA47D,IAAA37D,EAAA27D,MACAtvD,EAAAsvD,EACAA,EAAAQ,GAGA,IAAAC,EAAAxP,EAAAyP,iBAAAhwD,EAAA6nD,GAIA,OAHAkI,EAAAxM,OAAA+L,EACAS,EAAAE,MAAAjwD,EACA6vD,EAAAv6D,KAAAy6D,GACAA,EAOA,SAAAG,GAAAv5D,EAAAw5D,GACAvC,GAAAj3D,GAAAw5D,EAmIAR,GAx3DA,IAw3DAvP,GACA+O,GAAApP,GACAsP,GA53DA,IA43DArP,GACAkQ,GAAA,UAAA5P,GAEAmP,IACAl4D,KAAA,YACA+zD,MAAA,YACAhb,OAAA,aACC1iB,EAAAwiC,MACDX,IACAl4D,KAAA,WACA+zD,MAAA,WACAhb,OAAA,YACC1iB,EAAAwiC,MAEDlB,GAAA,QAAA1O,GACA0O,GAAA,OAAAzO,GAIAvpD,EAAAm5D,QAr5DA,QAs5DAn5D,EAAAsxB,cAp5DAg3B,QAAA,SAq5DAtoD,EAAA6pD,WACA7pD,EAAAqb,KArYA,SAAAyvC,EAAAtzC,EAAA9P,GACA,IAAA0xD,EAAAtB,GAAAhN,GAEA,GAAAsO,EACA,OAAAA,EAGA,IAAAhJ,EAAA,IAAAvF,EAAAC,EAAAtzC,EAAA9P,GAKA,OAJA0oD,EAAA7xD,GAAA,MAAAm5D,KACAvH,GAAAC,EAAA7xD,IAAA6xD,EACAt5B,EAAAyM,aAAAunB,EAAA2M,GAAArH,EAAA7xD,IA7DA,SAAA6xD,GACA,IAGAiJ,EAAA,wBAEA,SAAAC,EAAAC,EAAAzmD,GACA,QAAAlV,EAAA,EAAmBA,EAAA27D,EAAAz7D,OAAmBF,IACtC27D,EAAA37D,GACAy7D,GAAAvmD,EAIAwoB,EAAAs7B,GAAA,SAAAU,EAAAC,GACAnH,EAAA3D,eAAAlwC,GAAAg7C,EAAA,SAAAnD,GACA,GAAAnE,GAAAG,EAAAv0B,QAdA,IAcAu0B,EAAAiJ,GAAA,CACA,GAAAjF,KAAAf,cACA,OAGA,IAAAc,EAAA/D,EAAAuG,oBAAAvC,GACAoF,KACAl+B,EAAA60B,GAAA,SAAAsJ,GACAA,IAAArJ,GAAAqJ,EAAA59B,QAAAu0B,EAAAv0B,OACA29B,EAAAp7D,KAAAq7D,KAGAH,EAAAE,EA1BA,GA2BAl+B,EAAAk+B,EAAA,SAAAC,GA1BA,IA2BAA,EAAAJ,IACAI,EAAAx4D,eAAAkzD,KAGAmF,EAAAE,EA9BA,QA2DAE,CAAAtJ,GACAA,GA0XApwD,EAAA25D,QAnXA,SAAA5J,GAEA,GAAAr5B,EAAA/tB,QAAAonD,GAAA,CACA,IAAAwJ,EAAAxJ,EACAA,EAAA,KAEAz0B,EAAAi+B,EAAA,SAAAnJ,GACA,MAAAA,EAAAv0B,QACAk0B,EAAAK,EAAAv0B,SAGAk0B,KAAA,KAAA4H,KACAr8B,EAAAi+B,EAAA,SAAAnJ,GACAA,EAAAv0B,MAAAk0B,IAKA,OADAE,GAAAF,IAAA,EACAA,GAkWA/vD,EAAA63D,cACA73D,EAAAykD,cACAzkD,EAAA4B,QA9UA,SAAAwuD,GACA,iBAAAA,EACAA,EAAAD,GAAAC,GACGA,aAAAvF,IAEHuF,EAAA0H,GAAA1H,IAGAA,aAAAvF,IAAAuF,EAAAoH,cACApH,EAAAxuD,WAsUA5B,EAAA83D,oBACA93D,EAAA45D,gBArTA,SAAAhzD,GACA,OAAAupD,GAAAvpD,IAqTA5G,EAAAg4D,iBACAh4D,EAAAi4D,wBACAj4D,EAAAm4D,qBACAn4D,EAAA65D,mBAtRA,SAAAC,GACA5D,GAAA93D,KAAA07D,IAsRA95D,EAAAu4D,kBACAv4D,EAAA+5D,yBArOA,SAAA15D,EAAA25D,GACArR,EAAA7nD,SAAAT,EAAA25D,IAqOAh6D,EAAAi6D,8BA5NA,SAAA55D,GACA,IAAA65D,EAAAvR,EAAA9nD,IAAAR,GAEA,GAAA65D,EACA,OAAAA,EAAAC,kBAAAD,EAAAC,oBAAAD,EAAAt7B,WAAAz/B,SAyNAa,EAAAo6D,eA5MA,SAAAhC,EAAAiC,GACA/B,GAAAhM,GAAA8L,EAAAiC,EAAA1Q,EAAA,WA4MA3pD,EAAAy4D,kBACAz4D,EAAAg5D,mBACAh5D,EAAAqxB,qBApKA,SAAA3pB,GAQA,OAAAqhD,EAAAxiD,OAAAmB,IA6JA1H,EAAAI,oBArJA,SAAAsH,GAQA,OAAAuhD,EAAA1iD,OAAAmB,IA8IA1H,EAAAs6D,kBAtIA,SAAA5yD,GASA,OAAAshD,EAAAziD,OAAAmB,IA8HA1H,EAAAu6D,gBAtHA,SAAA7yD,GASA,OAAAwvB,EAAA3wB,OAAAmB,IA8GA1H,EAAAw6D,iBA1FA,SAAAC,GACA/jC,EAAA2a,UAAA,eAAAopB,IA0FAz6D,EAAA8lB,YAvEA,SAAA40C,EAAAC,EAAAx0C,GACAw0C,cAAAC,WACAz0C,EAAAw0C,EAAAx0C,aACAw0C,aAGA,iBAAAA,IACAA,EAAA,oBAAA5wD,WAAAC,MAAAD,KAAAC,MAAA2wD,GAAA,IAAA3kD,SAAA,WAAA2kD,EAAA,SAGA/C,GAAA8C,IACAC,UACAx0C,iBA4DAnmB,EAAA66D,OAnDA,SAAAH,GACA,OAAA9C,GAAA8C,IAmDA16D,EAAA86D,YACA,IAAAC,GAAmB3+D,EAAQ,SAC3B,WACA,QAAAwK,KAAAm0D,GACAA,GAAAr7D,eAAAkH,KACA5G,EAAA4G,GAAAm0D,GAAAn0D,IAHA,2BCngEA7G,EAAAC,QAAiB5D,EAAQ,6CCEzB,IAAA4+D,EAAA,SAAA52D,GACA,OAIA,SAAAA,GACA,QAAAA,GAAA,iBAAAA,EALA62D,CAAA72D,KAQA,SAAAA,GACA,IAAA82D,EAAAz0D,OAAA1J,UAAA0H,SAAA8D,KAAAnE,GAEA,0BAAA82D,GACA,kBAAAA,GAQA,SAAA92D,GACA,OAAAA,EAAA+2D,WAAAC,EARAC,CAAAj3D,GAZAk3D,CAAAl3D,IAgBA,IACAg3D,EADA,mBAAAtzD,eAAAyzD,IACAzzD,OAAAyzD,IAAA,uBAUA,SAAAC,EAAAp3D,EAAAq3D,GACA,IALArxD,EAMA,OADAqxD,IAAA,IAAAA,EAAA50B,OACAm0B,EAAA52D,GAAAs3D,GANAtxD,EAMAhG,EALAsE,MAAAC,QAAAyB,UAKAhG,EAAAq3D,GAAAr3D,EAGA,SAAAu3D,EAAAv+D,EAAAkC,EAAAm8D,GACA,IAAAG,EAAAx+D,EAAA+B,QAUA,OATAG,EAAAqH,QAAA,SAAA3F,EAAApD,QACA,IAAAg+D,EAAAh+D,GACAg+D,EAAAh+D,GAAA49D,EAAAx6D,EAAAy6D,GACST,EAAAh6D,GACT46D,EAAAh+D,GAAA89D,EAAAt+D,EAAAQ,GAAAoD,EAAAy6D,IACS,IAAAr+D,EAAAT,QAAAqE,IACT46D,EAAAx9D,KAAAo9D,EAAAx6D,EAAAy6D,MAGAG,EAoBA,SAAAF,EAAAt+D,EAAAkC,EAAAm8D,GACA,IAAAI,EAAAnzD,MAAAC,QAAArJ,GAKA,OAFAu8D,IAFAnzD,MAAAC,QAAAvL,GAMKy+D,IALLJ,IAAsCK,WAAAH,IAMtCG,YAAAH,GACAv+D,EAAAkC,EAAAm8D,GA3BA,SAAAr+D,EAAAkC,EAAAm8D,GACA,IAAAG,KAaA,OAZAZ,EAAA59D,IACAqJ,OAAAC,KAAAtJ,GAAAuJ,QAAA,SAAAC,GACAg1D,EAAAh1D,GAAA40D,EAAAp+D,EAAAwJ,GAAA60D,KAGAh1D,OAAAC,KAAApH,GAAAqH,QAAA,SAAAC,GACAo0D,EAAA17D,EAAAsH,KAAAxJ,EAAAwJ,GAGAg1D,EAAAh1D,GAAA80D,EAAAt+D,EAAAwJ,GAAAtH,EAAAsH,GAAA60D,GAFAG,EAAAh1D,GAAA40D,EAAAl8D,EAAAsH,GAAA60D,KAKAG,EAeAG,CAAA3+D,EAAAkC,EAAAm8D,GALAD,EAAAl8D,EAAAm8D,GASAC,EAAAM,IAAA,SAAAC,EAAAR,GACA,IAAA/yD,MAAAC,QAAAszD,MAAAn+D,OAAA,EACA,UAAAo+D,MAAA,gEAIA,OAAAD,EAAA35C,OAAA,SAAA65C,EAAA76B,GACA,OAAAo6B,EAAAS,EAAA76B,EAAAm6B,MAIA,IAAAW,EAAAV,EAEA37D,EAAAC,QAAAo8D,0BChGAhgE,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,6CCVR,IAAAigE,EAAajgE,EAAQ,QAQrB,SAAAkgE,EAAAC,GACA,sBAAAA,EACA,UAAA1b,UAAA,gCAGA,IAAA2b,EACA3/D,KAAA4/D,QAAA,IAAAnxD,QAAA,SAAAC,GACAixD,EAAAjxD,IAGA,IAAAmxD,EAAA7/D,KACA0/D,EAAA,SAAAI,GACAD,EAAAE,SAKAF,EAAAE,OAAA,IAAAP,EAAAM,GACAH,EAAAE,EAAAE,WAOAN,EAAAv/D,UAAA8/D,iBAAA,WACA,GAAAhgE,KAAA+/D,OACA,MAAA//D,KAAA+/D,QAQAN,EAAAh9D,OAAA,WACA,IAAAw9D,EAIA,OACAJ,MAJA,IAAAJ,EAAA,SAAAS,GACAD,EAAAC,IAIAD,WAIA/8D,EAAAC,QAAAs8D,0BCvDA,IAAAta,EAAU5lD,EAAQ,QAClB4gE,EAAe5gE,EAAQ,QACvB6gE,EAAe7gE,EAAQ,OAARA,CAAuB,YACtC8gE,EAAAz2D,OAAA1J,UAEAgD,EAAAC,QAAAyG,OAAA02D,gBAAA,SAAAC,GAEA,OADAA,EAAAJ,EAAAI,GACApb,EAAAob,EAAAH,GAAAG,EAAAH,GACA,mBAAAG,EAAApgE,aAAAogE,eAAApgE,YACAogE,EAAApgE,YAAAD,UACGqgE,aAAA32D,OAAAy2D,EAAA,8BCXH9gE,EAAQ,QACR2D,EAAAC,QAAiB5D,EAAQ,QAAqBwb,OAAAtQ,8BCA9C,IAAA+1D,EAAcjhE,EAAQ,QACtBkhE,EAAclhE,EAAQ,QACtB2D,EAAAC,QAAA,SAAAu9D,GACA,OAAAF,EAAAC,EAAAC,6BCJA,IAAA7mC,EAAat6B,EAAQ,QAErBohE,EAAoBphE,EAAQ,QAwB5Bk/B,EAAA5E,EAAA4E,KAEA,SAAAmiC,EAAAz1D,GACA,GAAAA,EACA,QAAAvI,KAAAuI,EACA,GAAAA,EAAAtI,eAAAD,GACA,SAqLAO,EAAA09D,qBAxKA,SAAA5jD,EAAA6jD,EAAAC,GACA,IAAAC,KAuBA,OAtBAviC,EAAAqiC,EAAA,SAAA/kB,GACA,IAwBAklB,EAxBAC,EAAAF,EAAAjlB,KAwBAklB,EAAA,cAIA/gE,UAAAihE,SAAAF,EAAA/gE,UACA,IAAA+gE,GA5BAxiC,EAAAxhB,EAAA8+B,GAAA,SAAAqlB,EAAAtN,GACA,GAAA6M,EAAAU,YAAAvN,GAAA,CAIA,IAAAwN,GACA99D,KAAAswD,EACAyN,OAAAH,GAEAL,KAAAO,EAAAvlB,GACAmlB,EAAApN,GAAA,IAAA6M,EAAAW,GAGA,YAAAxN,KACAwN,EAAAznC,EAAAmQ,MAAAs3B,IACA99D,KAAA,aACA09D,EAAAC,SAAAK,kBAAA,IAAAb,EAAAW,SAIAN,GAiJA79D,EAAAs+D,oBA9HA,SAAAC,EAAAC,EAAA93D,GAKA,IAAAs7C,EACAtrB,EAAA4E,KAAA50B,EAAA,SAAAE,GACA43D,EAAA9+D,eAAAkH,IAAA62D,EAAAe,EAAA53D,MACAo7C,GAAA,KAGAA,GAAAtrB,EAAA4E,KAAA50B,EAAA,SAAAE,GACA43D,EAAA9+D,eAAAkH,IAAA62D,EAAAe,EAAA53D,IACA23D,EAAA33D,GAAA8vB,EAAAmQ,MAAA23B,EAAA53D,WAEA23D,EAAA33D,MAgHA5G,EAAAy+D,YAjGA,SAAAd,EAAAE,EAAAlwD,EAAA+wD,EAAAC,EAAAvxD,GACA,IAKA6tB,EALA2jC,KAOA,SAAApgC,EAAA53B,GACA,OAAA+G,EAAAojD,cAAA91B,EAAAr0B,GAGA,SAAAi4D,EAAAj4D,EAAAxC,GACAuJ,EAAAmxD,cAAA7jC,EAAAr0B,EAAAxC,GASA,SAAA26D,EAAAC,EAAAv1D,GACAwxB,EAAA,MAAA7tB,EAAA4xD,EAAAv1D,EACA,IAAAw1D,EAAAtxD,EAAAuxD,eAAAjkC,GAEA,IAAAgkC,IAAA,IAAAA,EAAAtoD,UAQA,IAJA,IAAAwoD,EAAAT,EAAAn2D,KAAAo2D,EAAAK,GACAjB,EAAAF,EAAAsB,GACAC,EAAAR,EAAAO,GAEAvhE,EAAA,EAAAc,EAAA0gE,EAAAthE,OAA6CF,EAAAc,EAASd,IAAA,CACtD,IAAAyC,EAAA++D,EAAAxhE,GACAmgE,EAAA19D,IAAA09D,EAAA19D,GAAAo+D,YAAAO,EAAAxgC,EAAAqgC,IAlCAnoC,EAAA4E,KAAAqiC,EAAA,SAAA/kB,GACA,IAAAwmB,EAAA5B,EAAA6B,mBAAAxB,EAAAjlB,IACAgmB,EAAAhmB,GAAAwmB,IAYA,MAAAhyD,EACAO,EAAA2tB,KAAAyjC,GAEApxD,EAAA2tB,MAAAluB,GAAA2xD,IA+EA/+D,EAAAs/D,uBAjDA,SAAA3B,EAAAE,EAAAa,EAAAxpC,GACA,IAAA0pC,KAwCA,OAvCAloC,EAAA4E,KAAAqiC,EAAA,SAAA/kB,GACA,IAAAwmB,EAAA5B,EAAA6B,mBAAAxB,EAAAjlB,IACAgmB,EAAAhmB,GAAAwmB,KAsCAG,SAnCA,SAAA/wC,EAAA7gB,GAKA,SAAA6wB,EAAA53B,GACA,OAAA+G,EAAAojD,cAAA91B,EAAAr0B,GAGA,SAAAi4D,EAAAj4D,EAAAxC,GACAuJ,EAAAmxD,cAAA7jC,EAAAr0B,EAAAxC,GAGA,IAAA62B,EAEA,IAdA,MAAA/F,IACAA,EAAAvnB,EAAA6xD,aAAAtqC,IAaA,OAAA+F,EAAAzM,EAAA8S,SAAA,CACA,IAAA29B,EAAAtxD,EAAAuxD,eAAAjkC,GAEA,GAAAgkC,IAAA,IAAAA,EAAAtoD,UACA,OAQA,IALA,IAAAvS,EAAA,MAAA8wB,EAAAvnB,EAAA9M,IAAAq0B,EAAA+F,GAAA,GAAAA,EACAkkC,EAAAT,EAAAt6D,GACA25D,EAAAF,EAAAsB,GACAC,EAAAR,EAAAO,GAEAvhE,EAAA,EAAAc,EAAA0gE,EAAAthE,OAA+CF,EAAAc,EAASd,IAAA,CACxD,IAAAyC,EAAA++D,EAAAxhE,GACAmgE,EAAA19D,IAAA09D,EAAA19D,GAAAo+D,YAAAr6D,EAAAo6B,EAAAqgC,gCC3MA,IAAAY,EAAiBrjE,EAAQ,QAEzBsjE,EAAiBtjE,EAAQ,QAIzBujE,EAFcvjE,EAAQ,QAEtBujE,cAIArkC,EAFYl/B,EAAQ,QAEpBk/B,KAgCA,SAAAskC,EAAA1sC,EAAA1yB,EAAAC,GAKA5D,KAAAuQ,UAAA,SAQAvQ,KAAA+hC,YAAA,UAMA/hC,KAAAgjE,MAAA,KAMAhjE,KAAA6nC,MAEA7nC,KAAAijE,MAAA5sC,EAAA1yB,EAAAC,GAMA5D,KAAAu3B,MAAAlB,EAGA0sC,EAAA7iE,WACAsD,KAAA,aACA0/D,oBAAA,EACA/iE,YAAA4iE,EAUAE,MAAA,SAAA5sC,EAAA1yB,EAAAC,GACA,IAAAy0B,EAAAr4B,KAAAuQ,UACAklB,EAAA,IAAAmtC,EAAAvqC,EAAAwqC,EAAAM,mBAAA9sC,IAAA,KAAAA,EAAAryB,IAAA,QAAAqyB,EAAAryB,IAAA,aACAo/D,EAAA,aAAA3tC,EAAAjyB,KACAiyB,EAAAwF,OAAAmoC,GAAA/sC,EAAAryB,IAAA,eACAyxB,EAAA8G,QAAAlG,EAAAryB,IAAA,WACAyxB,EAAA3Y,OAAAuZ,EAAAryB,IAAA,UACAqyB,EAAAZ,OACAA,EAAA8B,MAAAlB,EACAZ,EAAApH,iBAAAruB,KACAA,KAAAgjE,MAAAvtC,GAQA8mB,OAAA,SAAA54C,EAAAC,GACAD,EAAAqxD,WAAA,SAAAx5B,GACA,GAAAA,EAAAnN,mBAAAruB,KAAA,CACA,IAAA8Q,EAAA0qB,EAAAtP,UACAuS,EAAA3tB,EAAA0tB,aAAAx+B,KAAAuQ,WAAA,YAAA8nB,GACAr4B,KAAAgjE,MAAAzxD,MAAA8nC,oBAAAvoC,EAAAunB,IACSr4B,MACT6iE,EAAAQ,gBAAArjE,KAAAgjE,MAAAzxD,MAAAvR,KAAAgjE,MAAAzrC,SAEKv3B,OASLwc,OAAA,SAAA6Z,EAAAzyB,GACA5D,KAAA6nC,MAAAi7B,GACAj9D,KAAAwwB,EAAAryB,IAAA,QACAgO,IAAAqkB,EAAAryB,IAAA,OACA8B,MAAAuwB,EAAAryB,IAAA,SACA8Q,OAAAuhB,EAAAryB,IAAA,UACAgV,MAAAqd,EAAAryB,IAAA,SACAiV,OAAAod,EAAAryB,IAAA,YAEAgV,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,cAGA/xD,KAAAsjE,eAMAC,QAAA,WACA,OAAAvjE,KAAA6nC,OAMAy7B,YAAA,WACA,IAAAp7B,EAAAloC,KAAA6nC,MACApS,EAAAz1B,KAAAgjE,MACAnmC,EAAApH,EAAAoH,eACA7B,EAAA6B,GAAA,EAAAqL,EAAAlvB,QAAA,EAAAkvB,EAAAjvB,QACAqnB,EAAA7K,EAAAlO,QAAA,IACAkO,EAAA0jB,UAAAne,EAAAsF,GAAAtF,EAAA,EAAAsF,IAEAtgC,KAAAwjE,qBAAA/tC,EAAAoH,EAAAqL,EAAA7jC,EAAA6jC,EAAA3jC,IAOAi/D,qBAAA,SAAA/tC,EAAAguC,GACA,IAAAtrC,EAAA1C,EAAAqG,YACA4nC,EAAAvrC,EAAA,GAAAA,EAAA,GACA0E,EAAApH,EAAAoH,eACApH,EAAAoB,cAAAgG,EAAA,SAAAuF,GACA,OAAAA,EAAAqhC,GACK,SAAArhC,GACL,OAAAshC,EAAAthC,EAAAqhC,GAEAhuC,EAAAkuC,aAAA9mC,EAAA,SAAAuF,GACA,OAAAA,EAAAqhC,GACK,SAAArhC,GACL,OAAAshC,EAAAthC,EAAAqhC,IASA72C,QAAA,WACA,OAAA5sB,KAAAgjE,OAQAlmC,YAAA,WACA,OAAA98B,KAAAgjE,OAMAY,QAAA,WACA,OAAA5jE,KAAAgjE,QAMAa,eAAA,WACA,OACAC,UAAA9jE,KAAA4sB,aAUA6d,aAAA,SAAAJ,GACA,IAAAnC,EAAAloC,KAAAujE,UACA9tC,EAAAz1B,KAAA4sB,UAGA,qBAFA6I,EAAA3Y,OAGA2Y,EAAAiV,QAAAjV,EAAAkuC,aAAAt5B,EAAA,MAAAA,EAAA,IAAAnC,EAAA3jC,GAAA8lC,EAAA,IAAAnC,EAAA3jC,EAAA2jC,EAAAjvB,OAEAwc,EAAAiV,QAAAjV,EAAAkuC,aAAAt5B,EAAA,MAAAA,EAAA,IAAAnC,EAAA3jC,GAAA8lC,EAAA,IAAAnC,EAAA3jC,EAAA2jC,EAAAjvB,QAQAmxB,YAAA,SAAAC,GACA,IAAA5U,EAAAz1B,KAAA4sB,UACA,OAAA6I,EAAAsuC,YAAAtuC,EAAAkuC,aAAAt5B,EAAA,eAAA5U,EAAA3Y,OAAA,SASAmtB,YAAA,SAAA18B,GACA,IAAAkoB,EAAAz1B,KAAA4sB,UACAsb,EAAAloC,KAAAujE,UACA7lC,KACA4C,EAAA,eAAA7K,EAAA3Y,OAAA,IAQA,OANAvP,aAAA1B,QACA0B,IAAA,IAGAmwB,EAAA4C,GAAA7K,EAAAoB,cAAApB,EAAAqB,aAAAvpB,IACAmwB,EAAA,EAAA4C,GAAA,IAAAA,EAAA4H,EAAA3jC,EAAA2jC,EAAAjvB,OAAA,EAAAivB,EAAA7jC,EAAA6jC,EAAAlvB,MAAA,EACA0kB,IAGA,IAAAz6B,EAAA8/D,EACA7/D,EAAAC,QAAAF,0BC3QA,IAAAG,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAER,IAAAykE,EAAkBzkE,EAAQ,QAE1B0kE,EAAkB1kE,EAAQ,QAoB1B6D,EAAAm6D,eAAAyG,GACA5gE,EAAAw4D,eAAAqI,2BC7BA,IAAApqC,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtB86B,EAAgB96B,EAAQ,QA0BxB,SAAA2kE,EAAAhP,EAAA15B,EAAAF,EAAA13B,GACA,IAAAkN,EAAA0qB,EAAAtP,UACAkS,EAAAp+B,KAAAo+B,UACAx7B,EAAAkO,EAAAqzD,QAAA/lC,GACAgmC,EAAA5oC,EAAAx3B,IAAA,kBACAJ,EAAAQ,gBACAZ,KAAA,kBACAuI,KAAAmpD,EACAtyD,OACAyhE,SAAA7oC,EAAA95B,KAEAoP,EAAA2tB,KAAA,SAAA6B,GACAgkC,EAAAxzD,EAAAgzB,iBAAAxD,GAAAxvB,EAAA0uB,cAAAc,GAAA9E,EAAA+oC,WAAAzzD,EAAAqzD,QAAA7jC,IAAA8jC,EAAA9oC,KAaA,SAAAgpC,EAAA7jE,EAAA62B,EAAAitC,EAAAH,EAAA9oC,GACA,IAAAkpC,GAAAltC,EAAA8E,WAAA9E,EAAA+E,UAAA,EACA0R,EAAAhmC,KAAA0jC,IAAA+4B,GACAx2B,EAAAjmC,KAAA2jC,IAAA84B,GACA9hC,EAAA6hC,EAAAH,EAAA,EACAh2D,GAAA2/B,EAAArL,EAAAsL,EAAAtL,GACApH,EACA76B,EAAAL,UAAA4C,KAAA,KACAoL,aACG5L,MAAA,aAAA/B,EAAAsC,KAAA,WAAAqL,GASH,SAAAq2D,EAAA3zD,EAAAwvB,GACA9lB,EAAAskB,MAAApzB,KAAA1L,MACA,IAAA0kE,EAAA,IAAAlqD,EAAA0hB,QACAkI,GAAA,IAEAxE,EAAA,IAAAplB,EAAA2f,SACAkX,EAAA,IAAA72B,EAAA0wB,KAMA,SAAAy5B,IACA/kC,EAAAoE,OAAApE,EAAAglC,YACAvzB,EAAArN,OAAAqN,EAAAuzB,YAGA,SAAAC,IACAjlC,EAAAoE,OAAApE,EAAAklC,aACAzzB,EAAArN,OAAAqN,EAAAyzB,aAZA9kE,KAAAi/B,IAAAylC,GACA1kE,KAAAi/B,IAAAW,GACA5/B,KAAAi/B,IAAAoS,GACArxC,KAAAihC,WAAAnwB,EAAAwvB,GAAA,GAYAtgC,KAAA0f,GAAA,WAAAilD,GAAAjlD,GAAA,SAAAmlD,GAAAnlD,GAAA,YAAAilD,GAAAjlD,GAAA,WAAAmlD,GAGA,IAAAE,EAAAN,EAAAvkE,UAEA6kE,EAAA9jC,WAAA,SAAAnwB,EAAAwvB,EAAA0kC,GACA,IAAAN,EAAA1kE,KAAAilE,QAAA,GACAzpC,EAAA1qB,EAAAuzB,UACA6gC,EAAAp0D,EAAAq0D,aAAA7kC,GACAhJ,EAAAxmB,EAAA0uB,cAAAc,GACA8kC,EAAAvrC,EAAAnwB,UAAoC4tB,IACpC8tC,EAAA3yD,MAAA,KAEAuyD,IACAN,EAAAnjC,SAAA6jC,GAGA,UAFA5pC,EAAA6pC,WAAA,kBAGAX,EAAA38C,MAAAtQ,EAAA6f,EAAA6E,GACA3hB,EAAAgiB,UAAAkoC,GACA38C,OACAtQ,EAAA6f,EAAA7f,IAEO+jB,EAAA8E,KAGPokC,EAAA38C,MAAAsU,SAAA/E,EAAA8E,WACA5hB,EAAAoqB,YAAA8/B,GACA38C,OACAsU,SAAA/E,EAAA+E,WAESb,EAAA8E,KAGT9lB,EAAAoqB,YAAA8/B,GACA38C,MAAAq9C,GACK5pC,EAAA8E,GAIL,IAAAmB,EAAA3wB,EAAAojD,cAAA5zB,EAAA,SACAokC,EAAA3hC,SAAAlJ,EAAAmJ,UACAG,SAAA,QACAzrB,KAAA+pB,GACGyjC,EAAA7lC,SAAA,aAAAimC,iBACHZ,EAAAa,WAAAL,EAAA7lC,SAAA,sBAAAimC,eACA,IAAAE,EAAAN,EAAAG,WAAA,UAKA,SAAAV,IAGAD,EAAA/iE,eAAA,GACA+iE,EAAA3iE,WACAgmB,OACAtQ,EAAA6f,EAAA7f,EAAA+jB,EAAAx3B,IAAA,iBAEK,kBAGL,SAAA6gE,IACAH,EAAA/iE,eAAA,GACA+iE,EAAA3iE,WACAgmB,OACAtQ,EAAA6f,EAAA7f,IAEK,kBArBL+tD,GAAAd,EAAA3hE,KAAA,SAAAyiE,GAEAlB,EAAAtkE,KAAA8Q,EAAA0uB,cAAAc,GAAA9E,EAAA+oC,WAAA,KAAAjkC,GAAA9E,EAAAx3B,IAAA,kBAAAw3B,EAAAx3B,IAAA,cAsBA0gE,EAAArU,IAAA,aAAAA,IAAA,YAAAA,IAAA,YAAAA,IAAA,UAEA6U,EAAAlhE,IAAA,mBAAAw3B,EAAAiqC,sBACAf,EAAAhlD,GAAA,YAAAilD,GAAAjlD,GAAA,WAAAmlD,GAAAnlD,GAAA,WAAAilD,GAAAjlD,GAAA,SAAAmlD,GAGA7kE,KAAA0lE,aAAA50D,EAAAwvB,GAEA9lB,EAAAmrD,cAAA3lE,OAGA+kE,EAAAW,aAAA,SAAA50D,EAAAwvB,GACA,IAAA9c,EAAAxjB,KAAAilE,QAAA,GACAW,EAAA5lE,KAAAilE,QAAA,GACAzpC,EAAA1qB,EAAAuzB,UACA6gC,EAAAp0D,EAAAq0D,aAAA7kC,GAEAulC,EADA/0D,EAAA0uB,cAAAc,GACA7tB,MACAgvB,EAAA3wB,EAAAojD,cAAA5zB,EAAA,SACA9lB,EAAAoqB,YAAAphB,GACAuE,OACAqV,OAAAyoC,EAAAC,cAAAD,EAAAxhE,EAAAwhE,EAAAthE,IAAAshE,EAAAxhE,EAAAwhE,EAAAthE,IAAAshE,EAAAxhE,EAAAwhE,EAAAthE,MAEGi3B,EAAA8E,GACH9lB,EAAAoqB,YAAAghC,GACArtD,OACAlU,EAAAwhE,EAAAxhE,EACAE,EAAAshE,EAAAthE,IAEGi3B,EAAA8E,GACHslC,EAAA7iE,MACA80B,SAAAguC,EAAAhuC,SACAuR,QAAAy8B,EAAAxhE,EAAAwhE,EAAAthE,GACA6/B,GAAA,KAEA,IAAA2hC,EAAAb,EAAA7lC,SAAA,SACA2mC,EAAAd,EAAA7lC,SAAA,kBACA4mC,EAAAf,EAAA7lC,SAAA,aACA6mC,EAAAhB,EAAA7lC,SAAA,sBACAoC,EAAA3wB,EAAAojD,cAAA5zB,EAAA,SACA9lB,EAAA2rD,cAAAP,EAAArtD,MAAAqtD,EAAAL,cAAkEQ,EAAAC,GAClEI,aAAAt1D,EAAAuzB,UACAgiC,eAAA/lC,EACAgmC,YAAAx1D,EAAAqzD,QAAA7jC,GACAimC,UAAA9kC,EACA+kC,iBAAAX,EAAAY,SAEA/wB,UAAAmwB,EAAAnwB,UACAC,kBAAAkwB,EAAAntC,cACA7lB,QAAA/B,EAAAojD,cAAA5zB,EAAA,aAEAslC,EAAA5hC,OAAA4hC,EAAAd,cAAAiB,EAAA/hE,IAAA,QACA4hE,EAAAhB,aAAAoB,EAAAhiE,IAAA,QACAwf,EAAAwgB,OAAAxgB,EAAAshD,cAAAmB,EAAAjiE,IAAA,QACAwf,EAAAohD,aAAAsB,EAAAliE,IAAA,QAEAwf,EAAA84B,UACApZ,OAAAzB,EACA5uB,QAAA/B,EAAAojD,cAAA5zB,EAAA,aAEA9c,EAAA84B,SAAA2pB,EAAA5mC,SAAA,aAAA4D,gBACAzf,EAAA+hD,WAAAW,EAAA7mC,SAAA,aAAA4D,eACA,IAAAv9B,EAAAugE,EAAAjiE,IAAA,UAEA0B,IAAA,IAAAA,IACAA,EAAA,IAGA8d,EAAA+d,UACA77B,YAIAm0B,EAAA2xB,SAAAiZ,EAAAjqD,EAAAskB,OAEA,IAyFA77B,EAzFAo3B,EAAA3wB,QACAlG,KAAA,MACAgb,KAAA,WACA,IAAAkoD,EAAA,IAAAlsD,EAAAskB,MACA9+B,KAAA2mE,aAAAD,GAEAjjE,OAAA,SAAA+3B,EAAA73B,EAAAC,EAAAggC,GACA,IAAAA,KAAA73B,OAAA/L,KAAAk1D,IAAA,CAIA,IAAApkD,EAAA0qB,EAAAtP,UACAwU,EAAA1gC,KAAAic,MACA+iB,EAAAh/B,KAAAg/B,MACA1D,EAAA33B,EAAAK,IAAA,aACA4iE,GAAAlmC,EACAmmC,EAAArrC,EAAAx3B,IAAA,iBACA8iE,EAAAjtC,EAAA0Q,MAAA25B,EAAAlkE,KAAAk1D,IAAA15B,EAAAF,EAAA13B,GACAof,EAAAwY,EAAAx3B,IAAA,gBAyBA,GAxBA8M,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAqB,GACA,IAAAymC,EAAA,IAAAtC,EAAA3zD,EAAAwvB,GAEAsmC,GAAA,UAAAC,GACAE,EAAAC,UAAA,SAAA16B,GACAA,EAAA3qC,eAAA,KAIAqhB,GAAA+jD,EAAArnD,GAAA,QAAAonD,GACAh2D,EAAA+vB,iBAAAP,EAAAymC,GACA/nC,EAAAC,IAAA8nC,KACKxqB,OAAA,SAAA0qB,EAAAC,GACL,IAAAH,EAAArmC,EAAAoD,iBAAAojC,GACAH,EAAA9lC,WAAAnwB,EAAAm2D,GACAF,EAAA1W,IAAA,SACArtC,GAAA+jD,EAAArnD,GAAA,QAAAonD,GACA9nC,EAAAC,IAAA8nC,GACAj2D,EAAA+vB,iBAAAomC,EAAAF,KACKtiE,OAAA,SAAA67B,GACL,IAAAymC,EAAArmC,EAAAoD,iBAAAxD,GACAtB,EAAAv6B,OAAAsiE,KACKI,UAEL7rC,GAAAsrC,GAAA91D,EAAAvO,QAAA,GACA,UAAAskE,EAAA,CACA,IAAA9+C,EAAAjX,EAAA0uB,cAAA,GACA/nB,EAAA1P,KAAAE,IAAArE,EAAAkuD,WAAAluD,EAAAmuD,aAAA,EACAqV,EAAAvtC,EAAArvB,KAAAw0B,EAAAooC,eAAApoC,GACAA,EAAAgC,YAAAhhC,KAAAqnE,gBAAAt/C,EAAAxQ,GAAAwQ,EAAAvQ,GAAAC,EAAAsQ,EAAAqU,WAAArU,EAAAuU,UAAA8qC,EAAA5rC,IAGAx7B,KAAAic,MAAAnL,IAEA/L,QAAA,aACAsiE,gBAAA,SAAA9vD,EAAAC,EAAAC,EAAA2kB,EAAAE,EAAAgrC,EAAA9rC,GACA,IAAAS,EAAA,IAAAzhB,EAAA0hB,QACAnU,OACAxQ,KACAC,KACA2kB,GAAA,EACA1kB,IACA2kB,aACAC,SAAAD,EACAE,eAQA,OALA9hB,EAAAgiB,UAAAP,GACAlU,OACAsU,SAAAD,GAAAE,EAAA,MAAAv0B,KAAAgwB,GAAA,IAEKyD,EAAA8rC,GACLrrC,GAMAwO,aAAA,SAAAJ,EAAA7O,GACA,IACA+rC,EADA/rC,EAAAtP,UACAsT,cAAA,GAEA,GAAA+nC,EAAA,CACA,IAAAx5B,EAAA1D,EAAA,GAAAk9B,EAAAhwD,GACAy2B,EAAA3D,EAAA,GAAAk9B,EAAA/vD,GACAmL,EAAA5a,KAAAyjC,KAAAuC,IAAAC,KACA,OAAArrB,GAAA4kD,EAAA9vD,GAAAkL,GAAA4kD,EAAAprC,OAKAj5B,EAAAC,QAAAF,0BC3UA,IAAAG,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAAioE,EAAqBjoE,EAAQ,QAE7BkoE,EAAmBloE,EAAQ,QAE3BmoE,EAAqBnoE,EAAQ,QAE7BooE,EAAiBpoE,EAAQ,QAEzBqoE,EAAmBroE,EAAQ,QAE3BsoE,EAAqBtoE,EAAQ,QAE7BuoE,EAAkBvoE,EAAQ,QAE1BwoE,EAAiBxoE,EAAQ,QAoBzB6D,EAAAk4D,kBAAAkM,GACApkE,EAAAw4D,eAAA6L,EAAA,wBACArkE,EAAAw4D,eAAA8L,GACAtkE,EAAAw4D,eAAA+L,GACAvkE,EAAAm6D,eAAAqK,GACAxkE,EAAAm6D,eAAAsK,GACAzkE,EAAAm6D,eAAAuK,GAEA1kE,EAAA85D,yBAAA,aACAxzB,OAAAq+B,4BCnDcxoE,EAAQ,QAEtBq6B,QAFA,IAIAn6B,EAAYF,EAAQ,QAEpBK,EAAAH,EAAAG,SACA6+B,EAAAh/B,EAAAg/B,KACA9tB,EAAAlR,EAAAkR,IACA7Q,EAAAL,EAAAK,QAKAgjE,GAJArjE,EAAAuoE,SAEczoE,EAAQ,QAEtBujE,eAEAmF,EAAkB1oE,EAAQ,QAE1B4jE,EAAA8E,EAAA9E,mBACA+E,EAAAD,EAAAC,gBACA7E,EAAA4E,EAAA5E,gBACA8E,EAAAF,EAAAE,uBAEAC,EAAkB7oE,EAAQ,QAE1B8oE,EAAa9oE,EAAQ,QAErB49D,EAAuB59D,EAAQ,QAI/B+oE,EAFuB/oE,EAAQ,QAE/B+oE,oBAkCA,SAAAC,EAAAlyC,EAAAmyC,EAAA7kE,GACA,OAAA0yB,EAAAoyC,qBAAAD,EAGA,SAAAE,EAAAF,EAAA7kE,EAAAC,GAKA5D,KAAA2oE,cAMA3oE,KAAA4oE,eAMA5oE,KAAA6oE,YAMA7oE,KAAA8oE,aAEA9oE,KAAA+oE,eAAAP,EAAA7kE,EAAAC,GAEA5D,KAAAu3B,MAAAixC,EA/DAjpE,EAAQ,QAkER,IAAAypE,EAAAN,EAAAxoE,UA8BA,SAAA+oE,EAAAC,EAAAC,EAAA1zC,GACAA,EAAA2zC,gBAAA,WAEA,OAAAC,UAMA,IACAA,EADAC,EAAAJ,EAAAC,GAEA9yC,EAAAZ,EAAA8B,MACA9E,EAAA4D,EAAAryB,IAAA,mBACAulE,EAAAlzC,EAAAryB,IAAA,4BAEA,GAAAyuB,EAKA,SAAA82C,GASA,QAAAjpC,KAAAgpC,EACA,GAAAA,EAAAzmE,eAAAy9B,IAAAkpC,EAAAF,EAAAhpC,IAAA,CACA+oC,EAAAC,EAAAhpC,GACA,YAXAkpC,EAAAF,EAAAC,MACAF,EAAAC,EAAAC,IAeA,SAAAC,EAAA/zC,GACA,OAAAA,GAAA,aAAAA,EAAAjyB,MAAA,SAAAiyB,EAAAjyB,MAAA0kE,EAAAzyC,GAnEAuzC,EAAAxlE,KAAA,OACAwlE,EAAA9F,oBAAA,EAEA8F,EAAAzF,QAAA,WACA,OAAAvjE,KAAA6nC,OAGAmhC,EAAAzsB,OAAA,SAAA54C,EAAAC,GACA,IAAAslE,EAAAlpE,KAAA6oE,SAEA7oE,KAAAypE,aAAA9lE,EAAA3D,KAAAu3B,OAEAkH,EAAAyqC,EAAA7kE,EAAA,SAAAwR,GACAwtD,EAAAxtD,EAAAtE,MAAAsE,EAAA0hB,SAEAkH,EAAAyqC,EAAA3kE,EAAA,SAAAqR,GACAytD,EAAAztD,EAAArE,MAAAqE,EAAA2hB,SAEAkH,EAAAyqC,EAAA7kE,EAAA,SAAAwR,GACAozD,EAAAC,EAAA,IAAArzD,KAEA4oB,EAAAyqC,EAAA3kE,EAAA,SAAAqR,GACAqzD,EAAAC,EAAA,IAAAtzD,KAIA5V,KAAAwc,OAAAxc,KAAAu3B,MAAA3zB,IAkDAolE,EAAAxsD,OAAA,SAAAgsD,EAAA5kE,EAAA8lE,GACA,IAAAC,EAAA7G,EAAA0F,EAAAoB,sBACA5wD,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,cAEA/xD,KAAA6nC,MAAA8hC,EACA,IAAAE,EAAA7pE,KAAA8oE,UAwBA,SAAAgB,IACArrC,EAAAorC,EAAA,SAAAp0C,GACA,IAAAoH,EAAApH,EAAAoH,eACA7B,EAAA6B,GAAA,EAAA8sC,EAAA3wD,QAAA,EAAA2wD,EAAA1wD,QACAqnB,EAAA7K,EAAA8G,QAAA,IACA9G,EAAA0jB,UAAAne,EAAAsF,GAAAtF,EAAA,EAAAsF,IAqTA,SAAA7K,EAAAguC,GACA,IAAAtrC,EAAA1C,EAAAqG,YACAiuC,EAAA5xC,EAAA,GAAAA,EAAA,GAEA1C,EAAAoB,cAAA,MAAApB,EAAA4C,IAAA,SAAA+J,GACA,OAAAA,EAAAqhC,GACG,SAAArhC,GACH,OAAA2nC,EAAA3nC,EAAAqhC,GAEAhuC,EAAAkuC,aAAA,MAAAluC,EAAA4C,IAAA,SAAA+J,GACA,OAAAA,EAAAqhC,GACG,SAAArhC,GACH,OAAA2nC,EAAA3nC,EAAAqhC,GAhUAuG,CAAAv0C,EAAAoH,EAAA8sC,EAAAtlE,EAAAslE,EAAAplE,KA7BAulE,KAEAJ,GAAAlB,EAAAxkE,IAAA,kBACAy6B,EAAAorC,EAAA,SAAAp0C,GACA,IAAAA,EAAA8B,MAAAvzB,IAAA,qBACA,IAAAimE,EAAA9B,EAAA1yC,GAEA,GAAAw0C,EAAA,CACA,IAAA5xC,EAAA5C,EAAAoH,eAAA,iBACAqtC,EAAAz0C,EAAA8B,MAAAvzB,IAAA,oBACA2lE,EAAAtxC,IAAA4xC,EAAA5xC,GAAA6xC,EAEA,QAAAz0C,EAAArnB,SACAu7D,EAAAplE,GAAA0lE,EAAAhxD,OAAAixD,EACW,SAAAz0C,EAAArnB,WACXu7D,EAAAtlE,GAAA4lE,EAAAjxD,MAAAkxD,OAKAJ,MAmBAd,EAAAp8C,QAAA,SAAA0+B,EAAA6e,GACA,IAAAC,EAAApqE,KAAA6oE,SAAAvd,GAEA,SAAA8e,EAAA,CACA,SAAAD,EAEA,QAAAvnE,KAAAwnE,EACA,GAAAA,EAAAvnE,eAAAD,GACA,OAAAwnE,EAAAxnE,GAKA,OAAAwnE,EAAAD,KAQAnB,EAAApF,QAAA,WACA,OAAA5jE,KAAA8oE,UAAAxmE,SAcA0mE,EAAAvyC,aAAA,SAAAlE,EAAA1Q,GACA,SAAA0Q,GAAA,MAAA1Q,EAAA,CACA,IAAA9X,EAAA,IAAAwoB,EAAA,IAAA1Q,EACA,OAAA7hB,KAAA2oE,WAAA5+D,GAGAnK,EAAA2yB,KACA1Q,EAAA0Q,EAAA1Q,WACA0Q,gBAIA,QAAAxxB,EAAA,EAAAspE,EAAArqE,KAAA4oE,YAA+C7nE,EAAAspE,EAAAppE,OAAsBF,IACrE,GAAAspE,EAAAtpE,GAAA6rB,QAAA,KAAAhgB,QAAA2lB,GAAA83C,EAAAtpE,GAAA6rB,QAAA,KAAAhgB,QAAAiV,EACA,OAAAwoD,EAAAtpE,IAKAioE,EAAAsB,cAAA,WACA,OAAAtqE,KAAA4oE,YAAAtmE,SAQA0mE,EAAA1+B,eAAA,SAAA3mC,EAAA+jC,EAAAngC,GACA,IAAAhH,EAAAP,KAAAuqE,mBAAA5mE,EAAA+jC,GAEA,OAAAnnC,EAAAm8B,UAAAn8B,EAAAm8B,UAAAuN,YAAA1iC,GAAAhH,EAAAk1B,KAAAl1B,EAAAk1B,KAAAoB,cAAAt2B,EAAAk1B,KAAAqB,YAAAvvB,IAAA,MAQAyhE,EAAAx+B,iBAAA,SAAA7mC,EAAA+jC,EAAAngC,GACA,IAAAhH,EAAAP,KAAAuqE,mBAAA5mE,EAAA+jC,GAEA,OAAAnnC,EAAAm8B,UAAAn8B,EAAAm8B,UAAA0N,YAAA7iC,GAAAhH,EAAAk1B,KAAAl1B,EAAAk1B,KAAAsuC,YAAAxjE,EAAAk1B,KAAAkuC,aAAAp8D,IAAA,MAOAyhE,EAAAuB,mBAAA,SAAA5mE,EAAA+jC,GACA,IAKAhL,EACAjH,EANA+F,EAAAkM,EAAAlM,YACAgvC,EAAA9iC,EAAA8iC,YAAAhvC,KAAAivC,uBAAA,YACAC,EAAAhjC,EAAAgjC,YAAAlvC,KAAAivC,uBAAA,YACAjC,EAAA9gC,EAAA8gC,UACAmC,EAAA3qE,KAAA4oE,YAIA,GAAAptC,EACAkB,EAAAlB,EAAAnN,iBACAvuB,EAAA6qE,EAAAjuC,GAAA,IAAAA,EAAA,WACG,GAAA8tC,GAAAE,EACHhuC,EAAA18B,KAAAy2B,aAAA+zC,EAAAtS,eAAAwS,EAAAxS,qBACG,GAAAsS,EACH/0C,EAAAz1B,KAAA4sB,QAAA,IAAA49C,EAAAtS,qBACG,GAAAwS,EACHj1C,EAAAz1B,KAAA4sB,QAAA,IAAA89C,EAAAxS,qBAEA,GAAAsQ,EAAA,CACAA,EAAAn6C,mBAEAruB,OACA08B,EAAA18B,KAAA4oE,YAAA,IAIA,OACAlsC,YACAjH,SASAuzC,EAAAv+B,aAAA,SAAAJ,GACA,IAAAjI,EAAApiC,KAAA4oE,YAAA,GAEA,GAAAxmC,EACA,OAAAA,EAAAqI,aAAAJ,IASA2+B,EAAAD,eAAA,SAAAP,EAAA7kE,EAAAC,GACA,IAAAgnE,GACA/kE,MAAA,EACAC,OAAA,EACAkM,KAAA,EACA8C,QAAA,GAEAo0D,GACA7kE,KACAE,MAEAsmE,GACAxmE,EAAA,EACAE,EAAA,GAMA,GAHAZ,EAAAkvD,cAAA,QAAAiY,EAAA,KAAA9qE,MACA2D,EAAAkvD,cAAA,QAAAiY,EAAA,KAAA9qE,OAEA6qE,EAAAxmE,IAAAwmE,EAAAtmE,EAIA,OAFAvE,KAAA6oE,iBACA7oE,KAAA8oE,cAqBA,SAAAgC,EAAAxf,GACA,gBAAAj1B,EAAAiK,GACA,GAAAioC,EAAAlyC,EAAAmyC,GAAA,CAIA,IAAAuC,EAAA10C,EAAAryB,IAAA,YAEA,MAAAsnD,EAEA,QAAAyf,GAAA,WAAAA,GAIAH,EAFAG,EAAA,YAGAA,EAAA,QAAAA,EAAA,gBAKA,SAAAA,GAAA,UAAAA,GAIAH,EAFAG,EAAA,UAGAA,EAAA,SAAAA,EAAA,gBAKAH,EAAAG,IAAA,EACA,IAAAt1C,EAAA,IAAA4yC,EAAA/c,EAAA6X,EAAA9sC,IAAA,KAAAA,EAAAryB,IAAA,QAAA+mE,GACA3H,EAAA,aAAA3tC,EAAAjyB,KACAiyB,EAAAwF,OAAAmoC,GAAA/sC,EAAAryB,IAAA,eACAyxB,EAAA8G,QAAAlG,EAAAryB,IAAA,WAEAqyB,EAAAZ,OAEAA,EAAA8B,MAAAlB,EAEAZ,EAAA9vB,KAAA3F,KAEAy1B,EAAA7oB,MAAA0zB,EAEAtgC,KAAA8oE,UAAAvnE,KAAAk0B,GAEAyzC,EAAA5d,GAAAhrB,GAAA7K,EACAo1C,EAAAvf,OAhEAtrD,KAAA6oE,SAAAK,EAEAzqC,EAAAyqC,EAAA7kE,EAAA,SAAAwR,EAAA0c,GACAkM,EAAAyqC,EAAA3kE,EAAA,SAAAqR,EAAAiM,GACA,IAAA9X,EAAA,IAAAwoB,EAAA,IAAA1Q,EACA6a,EAAA,IAAA0rC,EAAAr+D,GACA2yB,EAAA/2B,KAAA3F,KACA08B,EAAAnF,MAAAixC,EACAxoE,KAAA2oE,WAAA5+D,GAAA2yB,EAEA18B,KAAA4oE,YAAArnE,KAAAm7B,GAEAA,EAAAsuC,QAAAn1D,GACA6mB,EAAAsuC,QAAAp1D,IACK5V,OACFA,OA4DHgpE,EAAAS,aAAA,SAAA9lE,EAAA6kE,GA2BA,SAAApvB,EAAAtoC,EAAA2kB,EAAA+F,GACAiD,EAAA3tB,EAAA0tB,aAAA/I,EAAA4C,KAAA,YAAAA,GACA5C,EAAAlkB,MAAA8nC,oBAGAvoC,EAAAw3D,EAAAx3D,EAAAunB,MA9BAoG,EAAAz+B,KAAA8oE,UAAA,SAAArzC,GACAA,EAAAlkB,MAAA4nC,UAAAM,YAEA91C,EAAAqxD,WAAA,SAAAx5B,GACA,GAAAyvC,EAAAzvC,GAAA,CACA,IAAA0vC,EAAAC,EAAA3vC,EAAA73B,GACA6mE,EAAAU,EAAA,GACAR,EAAAQ,EAAA,GAEA,IAAA3C,EAAAiC,EAAAhC,KAAAD,EAAAmC,EAAAlC,GACA,OAGA,IAAA9rC,EAAA18B,KAAAy2B,aAAA+zC,EAAAtS,eAAAwS,EAAAxS,gBACApnD,EAAA0qB,EAAAtP,UACArW,EAAA6mB,EAAA9P,QAAA,KACAhX,EAAA8mB,EAAA9P,QAAA,KAEA,SAAA9b,EAAAtN,OACA41C,EAAAtoC,EAAA+E,EAAA2lB,GACA4d,EAAAtoC,EAAA8E,EAAA4lB,MAGGx7B,OAiBHgpE,EAAAnF,eAAA,SAAAxrC,GACA,IAAAyrC,KACAwF,KAOA,OANA7qC,EAAAz+B,KAAAsqE,gBAAA,SAAA5tC,GACA,IAAAY,EAAA,MAAAjF,GAAA,SAAAA,EAAAqE,EAAA9P,QAAAyL,GAAAqE,EAAAI,cACAusC,EAAA3sC,EAAAhG,aAAA4G,GACAx9B,EAAAgkE,EAAAxmC,GAAA,GAAAwmC,EAAAviE,KAAA+7B,GACAx9B,EAAAwpE,EAAAD,GAAA,GAAAC,EAAA/nE,KAAA8nE,MAGAvF,WACAwF,cAwBA,IAAA8B,GAAA,iBAKA,SAAAD,EAAA3vC,EAAA73B,GACA,OAAAgN,EAAAy6D,EAAA,SAAA9f,GAEA,OADA9vB,EAAAivC,uBAAAnf,GAAA,KASA,SAAA2f,EAAAzvC,GACA,sBAAAA,EAAAx3B,IAAA,oBAGA0kE,EAAAh/B,OAAA,SAAA/lC,EAAAC,GACA,IAAAynE,KAuBA,OAtBA1nE,EAAAkvD,cAAA,gBAAA2V,EAAAloC,GACA,IAAA36B,EAAA,IAAA+iE,EAAAF,EAAA7kE,EAAAC,GACA+B,EAAA/C,KAAA,QAAA09B,EAGA36B,EAAA6W,OAAAgsD,EAAA5kE,GAAA,GACA4kE,EAAAn6C,iBAAA1oB,EACA0lE,EAAA9pE,KAAAoE,KAGAhC,EAAAqxD,WAAA,SAAAx5B,GACA,GAAAyvC,EAAAzvC,GAAA,CAIA,IAAA0vC,EAAAC,EAAA3vC,GACAgvC,EAAAU,EAAA,GACAR,EAAAQ,EAAA,GAEAvlE,EADA6kE,EAAA/B,mBACAp6C,iBACAmN,EAAAnN,iBAAA1oB,EAAA8wB,aAAA+zC,EAAAtS,eAAAwS,EAAAxS,mBAEAmT,GAIA3C,EAAA3mC,WAAA2mC,EAAAxoE,UAAA6hC,WAAAqmC,EAAAloE,UAAA6hC,WACAo7B,EAAAl5D,SAAA,cAAAykE,GACA,IAAAzlE,EAAAylE,EACAxlE,EAAAC,QAAAF,wBCzjBA,SAAAqoE,EAAA3+D,GACA,OAAAA,EAWA,SAAA4+D,EAAAC,EAAAC,EAAAC,EAAAC,EAAA7d,GACA9tD,KAAA4rE,KAAAJ,EACAxrE,KAAA6rE,KAAAJ,EACAzrE,KAAA8rE,cAAAJ,GAAAJ,EACAtrE,KAAA+rE,cAAAJ,GAAAL,EACAtrE,KAAA8tD,UAuFA,SAAAke,EAAApgE,EAAA+E,EAAAs7D,EAAAC,EAAAC,GACA,QAAAprE,EAAA,EAAiBA,EAAA6K,EAAA3K,OAAgBF,IAAA,CAEjC,IAAAgJ,EAAA,OAAAoiE,EAAAD,GAAAtgE,EAAA7K,MACAqrE,EAAAz7D,EAAA5G,GAEA,MAAAqiE,GACAH,EAAA1qE,KAAAwI,GACA4G,EAAA5G,GAAAhJ,IAEAqrE,EAAAnrE,SACA0P,EAAA5G,GAAAqiE,OAGAA,EAAA7qE,KAAAR,KAlGAwqE,EAAArrE,WACAC,YAAAorE,EAKAtsC,IAAA,SAAAq6B,GAEA,OADAt5D,KAAAqsE,KAAA/S,EACAt5D,MAMAu8C,OAAA,SAAA+c,GAEA,OADAt5D,KAAAssE,QAAAhT,EACAt5D,MAMAyE,OAAA,SAAA60D,GAEA,OADAt5D,KAAAusE,QAAAjT,EACAt5D,MAEAmnE,QAAA,WACA,IAAAqE,EAAAxrE,KAAA4rE,KACAH,EAAAzrE,KAAA6rE,KAEAW,KACAC,KACAC,KAOA,IALAV,EAAAR,KAAAiB,EAAA,gBAAAzsE,MACAgsE,EAAAP,EAAAe,EAAAE,EAAA,gBAAA1sE,MAIAe,EAAA,EAAeA,EAAAyqE,EAAAvqE,OAAmBF,IAAA,CAIlC,UAFAu/B,EAAAksC,EADAziE,EAAA0iE,EAAA1rE,MAMAc,EAAAy+B,EAAAr/B,SAGA,IAAAY,IAAA2qE,EAAAziE,GAAA,MACAu2B,IAAAqC,WAEA6pC,EAAAziE,GAAA,KAGA/J,KAAAssE,SAAAtsE,KAAAssE,QAAAhsC,EAAAv/B,QAEAf,KAAAusE,SAAAvsE,KAAAusE,QAAAxrE,GAIA,QAAAA,EAAA,EAAmBA,EAAA2rE,EAAAzrE,OAA0BF,IAAA,CAC7C,IAAAgJ,EAAA2iE,EAAA3rE,GAEA,GAAAyrE,EAAA3pE,eAAAkH,GAAA,CACA,IAAAu2B,EAEA,UAFAA,EAAAksC,EAAAziE,IAGA,SAIA,GAAAu2B,EAAAr/B,OAGA,QAAAiyB,EAAA,EAAArxB,EAAAy+B,EAAAr/B,OAA2CiyB,EAAArxB,EAASqxB,IACpDlzB,KAAAqsE,MAAArsE,KAAAqsE,KAAA/rC,EAAApN,SAHAlzB,KAAAqsE,MAAArsE,KAAAqsE,KAAA/rC,OA8BA,IAAAr9B,EAAAsoE,EACAroE,EAAAC,QAAAF,0BC9Ic1D,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBotE,EAAeptE,EAAQ,QAEvBqtE,EAAiBrtE,EAAQ,QAEzBstE,EAAWttE,EAAQ,QAEnB46B,EAAe56B,EAAQ,QAEvButE,EAAqBvtE,EAAQ,QAE7BwtE,EAAoBxtE,EAAQ,QAE5BykE,EAAkBzkE,EAAQ,QAoB1B0D,EAAAG,EAAAs6D,iBACAl6D,KAAA,QACAgb,KAAA,aACA/a,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UAEA8gD,EAAAhtE,KAAAitE,gBAAAn8D,EAAA0qB,GAEA7G,EAAA6G,EAAAx3B,IAAA,UACAkpE,EAAA1xC,EAAAx3B,IAAA,sBACAtD,EAAAkD,EAAAe,QAIAwoE,EAAA,QAAAzsE,EAAAuxD,QAAAnlD,UAEAqgE,GACAzsE,EAAAuxD,QAAAmb,SAAAz4C,GAAAywB,OAAA,GAIA,MAAAplD,KAAAqtE,aAAAF,GACAzsE,EAAA4sE,YAAAttE,KAAAqtE,aACAE,YAAA,IAIAvtE,KAAAwtE,YAAAhyC,IAAA0xC,IACAC,GACAzsE,EAAA4sE,YAAA34C,GACA44C,YAAA,EACAE,eAAA1lE,KAAAE,IAAAF,KAAAC,IAAAklE,EAAA,eAKAF,EAAA/rC,WAAAnwB,GACA9Q,KAAAqtE,YAAA14C,EACA30B,KAAA0tE,WAAA,GAEAC,yBAAA,SAAAnyC,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UAEAlsB,KAAAitE,gBAAAn8D,EAAA0qB,GAEAoyC,yBAAA98D,GAEA9Q,KAAA6tE,YAAAjqE,GAEA5D,KAAA0tE,WAAA,GAEAI,kBAAA,SAAAC,EAAAvyC,EAAA73B,GACA3D,KAAAguE,UAAAC,kBAAAF,EAAAvyC,EAAAtP,WAEAlsB,KAAA0tE,UAAAK,EAAA78C,MAAAsK,EAAAtP,UAAA3pB,SAEAinC,gBAAA,SAAAhO,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UACAgiD,EAAA1yC,EAAA0yC,gBAEA,IAAAluE,KAAA0tE,WAAAQ,EAAAC,OAAAD,EAAAE,kBAEA,OACA7xB,QAAA,GAKA,IAAAntC,EAAA40D,EAAAl5D,MAAA0wB,GAEApsB,EAAAszD,UACAtzD,EAAAszD,UACAlgE,MAAA,EACA0uB,IAAApgB,EAAAvO,SACSuO,GAGT9Q,KAAAguE,UAAAxY,eAEAx1D,KAAA6tE,YAAAjqE,IAGAqpE,gBAAA,SAAAn8D,EAAA0qB,GACA,IAAAwxC,EAAAhtE,KAAAguE,UAEAK,EAAAruE,KAAAwtE,YAAAhyC,GAEA8yC,IAAA9yC,EAAAx3B,IAAA,YAEAuqE,EADA/yC,EAAA0yC,gBACAC,MAeA,OAbAnB,GAAAqB,IAAAruE,KAAAwuE,WAAAF,IAAAtuE,KAAAyuE,aAAAF,IAAAvuE,KAAA0uE,eACA1B,GACAA,EAAAvoE,SAGAuoE,EAAAhtE,KAAAguE,UAAAO,EAAA,IAAAxB,EAAA,IAAAJ,EAAA2B,EAAAD,EAAAvB,EAAA3yC,EAAAk0C,EAAAzB,EAAAC,GACA7sE,KAAAwuE,UAAAH,EACAruE,KAAAyuE,YAAAH,EACAtuE,KAAA0uE,aAAAH,EACAvuE,KAAAg/B,MAAAkG,aAGAllC,KAAAg/B,MAAAC,IAAA+tC,EAAAhuC,OACAguC,GAEAQ,YAAA,SAAAhyC,GACA,QAAAA,EAAAx3B,IAAA,gBAEA6pE,YAAA,SAAAjqE,GAEA,IAAAlD,EAAAkD,EAAAe,QACA,QAAAjE,EAAAuxD,QAAAnlD,WAEA,MAAA9M,KAAAqtE,aACA3sE,EAAAuxD,QAAAmb,SAAAptE,KAAAqtE,aAAAjoB,OAAA,IAGA3gD,OAAA,SAAAd,EAAAC,GACA5D,KAAAguE,WAAAhuE,KAAAguE,UAAAvpE,SACAzE,KAAAguE,UAAA,KAEAhuE,KAAA6tE,YAAAjqE,IAEAmB,QAAA,eAGA7B,EAAAC,QAAAF,wBCpGAE,EAAAwrE,oBAzCA,SAAA7b,EAAAlvB,EAAAuD,GACA,IAAAynC,EAAA9b,EAAAhqB,UACAhlB,EAAAgvC,EAAAjqB,YACA/e,EAAA8Z,EAAA9Z,KACAugB,EAAAyoB,EAAA7oB,YAAAnmB,GAEA,MAAA8f,EAAAmK,IAAA,MAAAnK,EAAAoK,KACA3D,EAAA,IAAAzG,EAAAmK,GACA1D,EAAA,IAAAzG,EAAAoK,GACAlqB,EAAAgvC,EAAA1oB,YAAAC,GACAyoB,EAAAvqB,UAAAzkB,IAGA,SAAAgG,EAAA,CACA,GAAAqd,EAAA,CACA,IAAA0nC,EAAA1nC,EAAAn/B,KAAA,EACA8mE,EAAA3nC,EAAAl/B,KAAAwxC,IACA3vB,EAAA/hB,KAAAE,IAAAF,KAAAC,IAAA4mE,EAAA9kD,EAAAglD,GAAAD,GAAAD,EAIA9b,EAAAvhD,MAAA,IAAAuY,EACAgpC,EAAAvhD,MAAA,IAAAuY,EACA,IAAA1b,EAAA0kD,EAAA1kD,SACA2gE,GAAAnrC,EAAAorC,QAAA5gE,EAAA,KAAA0b,EAAA,GACAmlD,GAAArrC,EAAAsrC,QAAA9gE,EAAA,KAAA0b,EAAA,GACA1b,EAAA,IAAA2gE,EACA3gE,EAAA,IAAA6gE,EACAnc,EAAAtpB,kBAEA1lB,EAAAgvC,EAAA1oB,YAAAC,GACAyoB,EAAAvqB,UAAAzkB,GACAgvC,EAAApqB,QAAA5e,EAAA8kD,GAGA,OACA9qD,OAAAgvC,EAAAjqB,YACA/e,KAAAgpC,EAAAhqB,kCC3CA,IAAAqmC,GAAA,mIACAlsE,GACAkD,MAAAgpE,EACAC,aAAA,yLAAAD,IAEAjsE,EAAAC,QAAAF,0BCvBA,IAEAosE,EAFY9vE,EAAQ,QAEpB8vE,gBACAC,EAAA,EAAAvnE,KAAAgwB,GAwDA50B,EAAAosE,cAzCA,SAAAh4D,EAAAC,EAAAC,EAAA2kB,EAAAC,EAAAmzC,EAAAzyC,EAAA14B,EAAAE,GACA,OAAAw4B,EACA,SAGA,IAAA0yC,EAAA1yC,EACA14B,GAAAkT,EACAhT,GAAAiT,EACA,IAAAiX,EAAA1mB,KAAAyjC,KAAAnnC,IAAAE,KAEA,GAAAkqB,EAAAghD,EAAAh4D,GAAAgX,EAAAghD,EAAAh4D,EACA,SAGA,GAAA1P,KAAAY,IAAAyzB,EAAAC,GAAAizC,EAAA,KAEA,SAGA,GAAAE,EAAA,CACA,IAAAE,EAAAtzC,EACAA,EAAAizC,EAAAhzC,GACAA,EAAAgzC,EAAAK,QAEAtzC,EAAAizC,EAAAjzC,GACAC,EAAAgzC,EAAAhzC,GAGAD,EAAAC,IACAA,GAAAizC,GAGA,IAAAhiC,EAAAvlC,KAAAkmC,MAAA1pC,EAAAF,GAMA,OAJAipC,EAAA,IACAA,GAAAgiC,GAGAhiC,GAAAlR,GAAAkR,GAAAjR,GAAAiR,EAAAgiC,GAAAlzC,GAAAkR,EAAAgiC,GAAAjzC,yBCtCA,SAAAszC,EAAAp6D,GAKA,OAJAA,aAAA1J,QACA0J,SAGAA,EAGA,IAAAq6D,EAAA,oBAAA/uE,MAAA,KACAoC,GACA4sE,WAAA,QACA/kE,MAAA,SAAA0wB,EAAA73B,EAAAC,GACA,IAAAksE,EAAAH,EAAAn0C,EAAAx3B,IAAA,WACAirB,EAAA0gD,EAAAn0C,EAAAx3B,IAAA,eACA8M,EAAA0qB,EAAAtP,UAmBA,OAlBApb,EAAAkxD,UAAA,aAAA8N,KAAA,IACAh/D,EAAAkxD,UAAA,WAAA8N,KAAA,IACAh/D,EAAAkxD,UAAA,iBAAA/yC,KAAA,IACAne,EAAAkxD,UAAA,eAAA/yC,KAAA,IACAne,EAAAkxD,UAAA,UAAAxmC,EAAAx3B,IAAA4rE,KAeAG,SAAAj/D,EAAAk/D,cAbA,SAAAl/D,EAAAwvB,GACA,IAAA4kC,EAAAp0D,EAAAq0D,aAAA7kC,GACAwvC,EAAAH,EAAAzK,EAAAG,WAAA,cACAp2C,EAAA0gD,EAAAzK,EAAAG,WAAA,kBACAxyD,EAAAqyD,EAAAlhE,IAAA4rE,GACAE,EAAA,IAAAh/D,EAAAmxD,cAAA3hC,EAAA,aAAAwvC,EAAA,IACAA,EAAA,IAAAh/D,EAAAmxD,cAAA3hC,EAAA,WAAAwvC,EAAA,IACA7gD,EAAA,IAAAne,EAAAmxD,cAAA3hC,EAAA,iBAAArR,EAAA,IACAA,EAAA,IAAAne,EAAAmxD,cAAA3hC,EAAA,eAAArR,EAAA,IACAne,EAAAmxD,cAAA3hC,EAAA,UAAAztB,IAIA,QAIA3P,EAAAC,QAAAF,0BCxDA,IAAA42B,EAAat6B,EAAQ,QAErB2sD,EAAqB3sD,EAAQ,QAE7B0wE,EAAsB1wE,EAAQ,QAE9B2wE,EAAuB3wE,EAAQ,QAE/Bm4C,EAAiBn4C,EAAQ,QAEzB4wE,EAA2B5wE,EAAQ,QAoBnC6wE,EAAAlkB,EAAAxiD,QACAlG,KAAA,mBAKAiyB,KAAA,KAMA46C,mBAKAC,mBAAA,WACA,OAAAL,IAAA,8GAAAA,CAAAjwE,KAAAq/B,SAAA,qBAaAkxC,mBAAA,SAAAC,GACA,IAAAH,EAAArwE,KAAAqwE,gBAAAx2C,EAAAmQ,MAAAwmC,GAEA,GAAAH,EACA,QAAAtvE,EAAAsvE,EAAApvE,OAAA,EAA8CF,GAAA,EAAQA,IACtD22C,EAAA+4B,IAAAJ,EAAAtvE,KAaA2vE,eAAA,SAAAnpE,GACA,IAAA8oE,EAAArwE,KAAAqwE,gBAEA,IAAAA,EAAApvE,OACA,eAGA,SAAAsG,GAAAkD,MAAAlD,GACA,iBAIA,OAAA8oE,EAAApvE,OAAA,CACA,IAAAy4C,EAAA22B,EAAA,GAEA,GAAA32B,EAAA,IAAAnyC,MAAAmyC,EAAA,GACA,oBAGA,QAAA34C,EAAA,EAAAc,EAAAwuE,EAAApvE,OAAmDF,EAAAc,EAASd,IAC5D,GAAAsvE,EAAAtvE,GAAA,IAAAwG,MAAA8oE,EAAAtvE,GAAA,GACA,eAKA,oBAuBA84B,EAAA82C,MAAAP,EAAAlwE,UAAAiwE,GAMAD,EAAA,WAAAE,EAJA,SAAAQ,EAAA3zD,GACA,OAAAA,EAAAzZ,OAAAyZ,EAAAnM,KAAA,sBAtBAtN,KAAA,QAKA60B,IAAA,KAGAw4C,iBACA73D,MAAA,GACAsc,YAAA,EACAvC,YAAA,oBACA5sB,MAAA,oBACA0M,QAAA,IAEAi+D,UAAA,EAEAl8C,EAAA,KASA,IAAA3xB,EAAAmtE,EACAltE,EAAAC,QAAAF,wBCxIAC,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOAkqE,IACA,SAAAzvE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAynE,EAAArzE,EAAA,KAEAszE,GAEA1nE,EAFAynE,IAEsCznE,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E0nE,EAAA95D,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAs+C,EAAA95D,QAAAnW,KAAAiwE,EAAA95D,UAGA5V,EAAA4V,QAAA85D,EAAA95D,SAIA+5D,IACA,SAAA5vE,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAwrE,EAAAxzE,EAAA,KACAyzE,EAAAzzE,EAAA6+C,EAAA20B,GACAE,EAAA1zE,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAH,EAAAz9D,EACA09D,EAAA,GATA,EAEA,KAEA,KAEA,MAUA1uB,EAAA,QAAA2uB,EAAA,SAKAE,IACA,SAAAlwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EA0BAjuE,EAAA4V,SACAnW,KAAA,WAEAywE,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAjW,OACAU,MACAA,KAAA2N,OACA4H,QAAA,WAEA8Y,KAAA1gB,OACAqiE,MACAhwE,KAAA2N,OACA4H,QAAA,IAEA06D,YACAjwE,KAAA2N,OACA4H,QAAA,UAEAJ,QAAAc,QACAi6D,SAAAj6D,QACAk6D,MAAAl6D,QACAm6D,UAAAn6D,QACArP,MAAAqP,QACAo6D,OAAAp6D,SAGAoC,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCC,WAAA,WACA,OAAAh0E,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtEqiD,eAAA,WACA,OAAAl0E,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,WAIhD33D,SACAo4D,YAAA,SAAAC,GACAp0E,KAAAge,MAAA,QAAAo2D,OAOAC,IACA,SAAAnxE,EAAAqhD,EAAAhlD,GAEA,aACA,IAYA+0E,GAAiB7wE,OAZjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,UAAoBE,YAAA,YAAAc,OAC7Gq8D,EAAA/wE,KAAA,cAAA+wE,EAAA/wE,KAAA,GACA+wE,EAAAP,WAAA,cAAAO,EAAAP,WAAA,IAEAQ,cAAAD,EAAAL,eACAO,aAAAF,EAAA57D,QACA+7D,WAAAH,EAAAZ,MACAgB,WAAAJ,EAAAnqE,MACAwqE,YAAAL,EAAAV,SAEAx8D,OAAWq8D,SAAAa,EAAAL,gBAAAK,EAAA57D,QAAAi7D,UAAAW,EAAAX,UAAApwE,KAAA+wE,EAAAd,YAA6F/zD,IAAKm1D,MAAAN,EAAAJ,eAAyBI,EAAA,QAAAr9D,EAAA,KAAwBE,YAAA,oBAA8Bm9D,EAAAO,KAAAP,EAAAf,OAAAe,EAAA57D,QAAAzB,EAAA,KAA8CgB,MAAAq8D,EAAAf,OAAee,EAAAO,KAAAP,EAAAz7D,OAAA,QAAA5B,EAAA,QAAAq9D,EAAAQ,GAAA,eAAAR,EAAAO,QAExOn9D,oBACjB4sC,EAAA,4CClVA,IAAAywB,EAAYz1E,EAAQ,QAUpB2D,EAAAC,QAAA,SAAA2N,EAAAmkE,EAAAC,GAMA,OAJAF,EAAAlrE,QAAAorE,EAAA,SAAAjpE,GACA6E,EAAA7E,EAAA6E,EAAAmkE,KAGAnkE,yBChBA,SAAAqkE,KAiJA,SAAAC,EAAA9wC,EAAAlQ,EAAAq3C,EAAAD,GAMA,IALA,IAAA6J,EAAA,EACAC,EAAAlhD,EAAAnzB,OACAs0E,EAAA,EACAC,EAAA,EAEQH,EAAAC,EAA6BD,IAAA,CACrC,IAAA9gD,EAAAH,EAAAihD,GAEA,GAAA9gD,EAAAkhD,QAaK,CAGL,IAFAC,KAEA30E,EAAAy0E,EAA0Bz0E,EAAAy0E,EAAAjhD,EAAAhyB,MAA8BxB,IACxD20E,EAAAn0E,KAAAR,GAGAwzB,EAAAmhD,UACAF,GAAAjhD,EAAAhyB,UArBA,CAGA,IAFA,IAAAmzE,KAEA30E,EAAAw0E,EAA0Bx0E,EAAAw0E,EAAAhhD,EAAAhyB,MAA8BxB,IACxD20E,EAAAn0E,KAAAR,GAGAwzB,EAAAmhD,UACAH,GAAAhhD,EAAAhyB,MAEAgyB,EAAAohD,QACAH,GAAAjhD,EAAAhyB,QAcA,OAAA6xB,EAjLA+gD,EAAAj1E,WACAokC,KAAA,SAAAknC,EAAAC,EAAAmK,GACAA,IACAA,EAAA,SAAArgE,EAAAC,GACA,OAAAD,IAAAC,IAIAxV,KAAA41E,SACA,IAAAzpE,EAAAnM,KACAwrE,IAAAlpE,QAGA,IAAAuzE,GAFApK,IAAAnpE,SAEArB,OACA60E,EAAAtK,EAAAvqE,OACA80E,EAAA,EACAC,EAAAH,EAAAC,EACAG,IACAV,QAAA,EACAnhD,gBAGAohD,EAAAx1E,KAAAk2E,cAAAD,EAAA,GAAAxK,EAAAD,EAAA,GAEA,GAAAyK,EAAA,GAAAV,OAAA,GAAAM,GAAAL,EAAA,GAAAM,EAAA,CAGA,IAFA,IAAAJ,KAEA30E,EAAA,EAAqBA,EAAA0qE,EAAAxqE,OAAmBF,IACxC20E,EAAAn0E,KAAAR,GAIA,QACA20E,UACAnzE,MAAAkpE,EAAAxqE,SAKA,SAAAk1E,IACA,QAAAC,GAAA,EAAAL,EAA8CK,GAAAL,EAA4BK,GAAA,GAC1E,IAAAC,EACAC,EAAAL,EAAAG,EAAA,GACAG,EAAAN,EAAAG,EAAA,GACAZ,GAAAe,IAAAhB,OAAA,GAAAa,EAEAE,IAEAL,EAAAG,EAAA,QAAA1oE,GAGA,IAAA8oE,EAAAF,KAAAf,OAAA,EAAAM,EACAY,EAAAF,GAAA,GAAAf,KAAAM,EAEA,GAAAU,GAAAC,EAAA,CAqBA,IAZAD,GAAAC,GAAAH,EAAAf,OAAAgB,EAAAhB,QACAc,GAsHAd,QAFAl1E,EApHAk2E,GAsHAhB,OACAnhD,WAAA/zB,EAAA+zB,WAAA9xB,MAAA,IAtHA6J,EAAAuqE,cAAAL,EAAAjiD,gBAAA1mB,GAAA,MAEA2oE,EAAAC,GAEAf,SACAppE,EAAAuqE,cAAAL,EAAAjiD,YAAA,OAAA1mB,IAGA8nE,EAAArpE,EAAA+pE,cAAAG,EAAA5K,EAAAD,EAAA4K,GAEAC,EAAAd,OAAA,GAAAM,GAAAL,EAAA,GAAAM,EACA,OAAAV,EAAAjpE,EAAAkqE,EAAAjiD,WAAAq3C,EAAAD,GAGAyK,EAAAG,GAAAC,OAvBAJ,EAAAG,QAAA1oE,EA4HA,IAAArN,EAjGA01E,IAGA,KAAAA,GAAAC,GAAA,CACA,IAAAW,EAAAR,IAEA,GAAAQ,EACA,OAAAA,IAIAD,cAAA,SAAAtiD,EAAAuhD,EAAAF,GACA,IAAAmB,EAAAxiD,IAAAnzB,OAAA,GAEA21E,KAAAjB,WAAAiB,EAAAnB,YAGArhD,IAAAnzB,OAAA,IACAsB,MAAAq0E,EAAAr0E,MAAA,EACAozE,QACAF,WAGArhD,EAAA7yB,MACAgB,MAAA,EACAozE,QACAF,aAIAS,cAAA,SAAAG,EAAA5K,EAAAD,EAAA4K,GAOA,IANA,IAAAP,EAAApK,EAAAxqE,OACA60E,EAAAtK,EAAAvqE,OACAs0E,EAAAc,EAAAd,OACAC,EAAAD,EAAAa,EACAS,EAAA,EAEAtB,EAAA,EAAAM,GAAAL,EAAA,EAAAM,GAAA91E,KAAA41E,OAAAnK,EAAA8J,EAAA,GAAA/J,EAAAgK,EAAA,KACAD,IACAC,IACAqB,IAUA,OAPAA,GACAR,EAAAjiD,WAAA7yB,MACAgB,MAAAs0E,IAIAR,EAAAd,SACAC,GAEAsB,SAAA,SAAAvvE,GACA,OAAAA,EAAAjF,SAEA8D,KAAA,SAAAmB,GACA,OAAAA,EAAAjF,UAgDA,IAAAy0E,EAAA,IAAA5B,EAMAjyE,EAAAC,QAJA,SAAAqoE,EAAAC,EAAAtpE,GACA,OAAA40E,EAAAzyC,KAAAknC,EAAAC,EAAAtpE,yCChMAgB,EAAAiuE,YAAA,EACAjuE,EAAA6zE,kBAAAtpE,EAEA,IAEAupE,EAAAC,EAFW33E,EAAQ,SAMnB43E,EAAAD,EAFa33E,EAAQ,SAMrB63E,EAAAF,EAFoB33E,EAAQ,SAM5B83E,EAAAH,EAFsB33E,EAAQ,SAI9B4uD,EAAW5uD,EAAQ,QAEnB,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAmsE,EAAA,EAEAC,OAAA,EAUAp0E,EAAA4V,SACAjW,OACA00E,SACAh0E,KAAAiW,QACAV,SAAA,GAEA0+D,aACAC,cACAtmC,UACAumC,OACAn0E,KAAAiW,QACAV,SAAA,GAEA6+D,WACAp0E,KAAAiW,QACAV,SAAA,GAEA8+D,cACAC,mBACAt0E,KAAAiW,QACAV,SAAA,GAEAg/D,YACAv0E,KAAAiW,QACAV,SAAA,GAEAi/D,oBACAx0E,KAAAiW,QACAV,SAAA,GAEAk/D,mBACAz0E,KAAAiW,QACAV,SAAA,IAIAm/D,YAAA,WACAl4E,KAAAm4E,SAAA,SAAAb,IACAF,EAAAr+D,QAAA9U,SAAAjE,KAAAm4E,SAAAn4E,OAEAggB,cAAA,WACAo3D,EAAAr+D,QAAAq/D,WAAAp4E,KAAAm4E,UACAf,EAAAr+D,QAAAs/D,WAAAr4E,KAAAm4E,UAEAn4E,KAAAs4E,oBAEAxnE,KAAA,WACA,OACAynE,QAAA,EACAC,iBAAA,KACAC,yBAAA,EACAC,oBAAA,EACAC,UAAA,IAKAp9D,OACAi8D,QAAA,SAAAjqE,GACA,IAAAsP,EAAA7c,KAEA,GAAAuN,EAAA,CACA,GAAAvN,KAAA44E,SAAA,OACA54E,KAAA24E,SAMA34E,KAAA8O,QALA9O,KAAA24E,UAAA,EACA1B,EAAAl+D,QAAA8/D,SAAA,WACAh8D,EAAA/N,eAMA9O,KAAA84E,UAKA/8D,SACAjN,KAAA,SAAArG,GACA,IAAAyV,EAAAle,KAEAA,KAAA24E,WACA34E,KAAA24E,UAAA,GAGA,IAAA71E,GAAA,EAAAq0E,EAAAp+D,YAAyC/Y,KAAAqf,QAAArf,KAAAyI,GAEzCzI,KAAA+4E,cACA1sE,aAAArM,KAAA+4E,aACA/4E,KAAA+4E,YAAA,MAEA1sE,aAAArM,KAAAg5E,YAEA,IAAAvB,EAAA18D,OAAAjY,EAAA20E,WACAA,EAAA,EACAz3E,KAAAg5E,WAAA1sE,WAAA,WACA4R,EAAA86D,WAAA,KACA96D,EAAA+6D,OAAAn2E,IACS20E,GAETz3E,KAAAi5E,OAAAn2E,IAGAm2E,OAAA,SAAAn2E,GACA,IAAA9C,KAAAk5E,aACAl5E,KAAAm5E,UAAAn5E,KAAAm5E,cACAn5E,KAAAu4E,OAAA,CAEAv4E,KAAA44E,UAAA,EAEA,IAAA3qB,EAtHA,SAAAmrB,EAAAnrB,GAKA,OAJA,IAAAA,EAAAorB,UAEAD,EADAnrB,IAAAqrB,oBAAArrB,EAAAjX,aAGAiX,EAiHAmrB,CAAAp5E,KAAA0c,KAEAi7D,EAAA70E,EAAA60E,MAEAvmC,EAAAtuC,EAAAsuC,OAKA,GAJAA,IACAgmC,EAAAr+D,QAAAq4B,UAGAumC,IACA33E,KAAAu5E,WACAnC,EAAAr+D,QAAAs/D,WAAAr4E,KAAAm4E,UACAn4E,KAAAu5E,UAAA,GAEAnC,EAAAr+D,QAAAygE,UAAAx5E,KAAAm4E,SAAAf,EAAAr+D,QAAA0gE,aAAAz5E,KAAA83E,uBAAApqE,EAAAugD,EAAAnrD,EAAA+0E,WAAA/0E,EAAA80E,WACA90E,EAAAi1E,YAAA,CACA/3E,KAAA04E,qBAAA,EAAAvqB,EAAAurB,UAAA7pE,SAAAG,KAAA,2BACAhQ,KAAA04E,qBACA14E,KAAAw4E,iBAAA3oE,SAAAG,KAAAuI,MAAAohE,aACA35E,KAAAy4E,yBAAAmB,UAAA,EAAAzrB,EAAA0rB,UAAAhqE,SAAAG,KAAA,qBAEAunE,GAAA,EAAAF,EAAAt+D,WACA,IAAA+gE,EAAAjqE,SAAAmuC,gBAAAphC,aAAA/M,SAAAG,KAAA6xC,aACAk4B,GAAA,EAAA5rB,EAAA0rB,UAAAhqE,SAAAG,KAAA,aACAunE,EAAA,IAAAuC,GAAA,WAAAC,IAAA/5E,KAAA04E,qBACA7oE,SAAAG,KAAAuI,MAAAohE,aAAA35E,KAAAy4E,yBAAAlB,EAAA,OAEA,EAAAppB,EAAA6rB,UAAAnqE,SAAAG,KAAA,2BAIA,WAAA8sC,iBAAAmR,GAAA7/C,WACA6/C,EAAA11C,MAAAnK,SAAA,YAGA6/C,EAAA11C,MAAA64B,OAAAgmC,EAAAr+D,QAAA0gE,aACAz5E,KAAAu4E,QAAA,EAEAv4E,KAAAi6E,QAAAj6E,KAAAi6E,SAEAj6E,KAAAk6E,gBAEAA,YAAA,WACAl6E,KAAA44E,UAAA,GAEAE,MAAA,WACA,IAAA95D,EAAAhf,KAEA,IAAAA,KAAAm6E,WAAAn6E,KAAAm6E,YAAA,CAEA,OAAAn6E,KAAAg5E,aACA3sE,aAAArM,KAAAg5E,YACAh5E,KAAAg5E,WAAA,MAEA3sE,aAAArM,KAAA+4E,aAEA,IAAArB,EAAA38D,OAAA/a,KAAA03E,YAEAA,EAAA,EACA13E,KAAA+4E,YAAAzsE,WAAA,WACA0S,EAAA+5D,YAAA,KACA/5D,EAAAo7D,WACS1C,GAET13E,KAAAo6E,YAGAA,QAAA,WACAp6E,KAAAu5E,UAAA,EAEAv5E,KAAAq6E,SAAAr6E,KAAAq6E,UAEAr6E,KAAA+3E,YACAzrE,WAAAtM,KAAAs4E,iBAAA,KAGAt4E,KAAAu4E,QAAA,EAEAv4E,KAAAs6E,gBAEAA,aAAA,WACAlD,EAAAr+D,QAAAs/D,WAAAr4E,KAAAm4E,UACAn4E,KAAAu5E,UAAA,GAEAjB,iBAAA,WACAt4E,KAAA23E,OAAA33E,KAAA04E,qBACA7oE,SAAAG,KAAAuI,MAAAohE,aAAA35E,KAAAw4E,kBACA,EAAArqB,EAAAosB,aAAA1qE,SAAAG,KAAA,4BAEAhQ,KAAA04E,oBAAA,KAIAv1E,EAAA6zE,aAAAI,EAAAr+D,gCC/OA,IAAA/T,EADA,oBAAA2K,SACA3K,EASC,WACD,gBAAA+rE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,IA9DA,EAmEA,SAAAjV,EAAAqhD,EAAAhlD,GAEA,aACAA,EAAAkvB,EAAA81B,EAAA,eAA2F,OAAAi2B,IAC3Fj7E,EAAAkvB,EAAA81B,EAAA,eAA2F,OAAAk2B,IAC3F,IAAAC,EAAAn7E,EAAA,GACAyL,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAI5I,SAAAkxD,KAEA,IAAAse,GACAC,MAAAve,EACAwe,MAAAxe,EACA78D,IAAA68D,EACA3mD,KAAA2mD,EACAye,KAAAze,EACA0e,MAAA1e,GAGA2e,EAAAL,EAgBA,IAAAn2B,EAAA56C,OAAA8wE,EAAA,EAAA9wE,GAoBA,SAAAqxE,EAAAC,GACA,QAAAC,EAAAr2E,UAAA7D,OAAAm6E,EAAAvvE,MAAAsvE,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAA6FA,EAAAF,EAAeE,IAC5GD,EAAAC,EAAA,GAAAv2E,UAAAu2E,GAGAD,EAAAtxE,QAAA,SAAAtG,GACAw3E,EAAAx3E,GAAA03E,EAAA13E,GAAA03E,EAAA13E,GAAAgH,KAAA0wE,GAxBA,SAAA13E,GACA,IAAA81D,EAAA9U,EAAA/uC,QAAAjS,GACA,OAAA81D,EACA,WACA,QAAA35C,EAAA7a,UAAA7D,OAAAmL,EAAAP,MAAA8T,GAAAhC,EAAA,EAAqEA,EAAAgC,EAAahC,IAClFvR,EAAAuR,GAAA7Y,UAAA6Y,GAGAvR,EAAA,KACAA,EAAA,GAhBA,SAAA5I,EAAA83E,GAEA,OADAA,EAAA,IAAA93E,EAAA,OAAA83E,EAeAC,CAAA/3E,EAAA4I,EAAA,KAGAktD,EAAA/sD,MAAAi4C,EAAA/uC,QAAArJ,IAGAiwD,EASAmf,CAAAh4E,KAIA,IAAAg3E,EAAA,SAAAU,GACA,QAAAA,GAAA,qBAAAA,EAAA,YAAAlwE,EAAAkwE,IAAA,CACAD,EAAAC,EAGA,qCAGA,IACAF,EAAAx7E,MACK,MAAA2E,GACL62E,EAAAL,QAGAK,EAAAL,GAIAF,EAAAO,GAIA,SAAA93E,EAAAqhD,EAAAhlD,GAEA,aA8GAglD,EAAA,GAvGAk3B,gBAAA,oBAEAC,eAAA,mBAEAC,gBAAA,oBAEAC,eAAA,mBAEAC,aAAA,iBAEAC,cAAA,kBAEAC,eAAA,mBAEAC,iBAAA,qBAEAC,gBAAA,oBAEAC,WAAA,eAEAC,gBAAA,oBAEAC,eAAA,mBAEAC,iBAAA,qBAEAC,gBAAA,oBAEAC,gBAAA,oBAEAC,gBAAA,oBAEAC,eAAA,mBAEAC,cAAA,kBAEAC,aAAA,iBAEAC,cAAA,kBAEAC,kBAAA,qBAEAC,qBAAA,wBAEAC,sBAAA,yBAEAC,qBAAA,wBAEAC,oBAAA,uBAEAC,mBAAA,sBAEAC,wBAAA,2BAEAC,sBAAA,yBAEAC,uBAAA,0BAEAC,sBAAA,yBAEAC,wBAAA,2BAEAC,eAAA,kBAEAC,aAAA,iBAEAC,mBAAA,sBAEAC,4BAAA,8BAEAC,YAAA,gBAEAC,eAAA,mBAEAC,0BAAA,4BAEAC,sBAAA,yBAEAC,sBAAA,yBAEAC,kBAAA,qBAEAC,YAAA,gBAEAC,cAAA,kBAEAC,aAAA,iBAEAC,SAAA,aAEAC,uBAAA,yBAEAC,MAAA,WAEAC,WAAA,gBAEAC,YAAA,gBAEAC,WAAA,eAEAC,wBAAA,6BAOA,SAAAz7E,EAAAqhD,EAAAhlD,GAEA,aACAA,EAAAkvB,EAAA81B,EAAA,eAA2F,OAAAq6B,IAC3Fr/E,EAAAkvB,EAAA81B,EAAA,eAA2F,OAAAs6B,IAC3F,IAAAD,GAEAE,cAAA,eAEAC,YAAA,aAEAC,iBAAA,iBAEAC,UAAA,WAEAC,YAAA,cAOAL,GACAM,mBAAA,kBACAC,qBAAA,oBACAC,sBAAA,qBACAC,kCAAA,gCAEAC,oBAAA,oBAEAC,sBAAA,sBAEAC,uBAAA,uBAEAC,mCAAA,kCAEAC,iBAAA,iBAEAC,mBAAA,mBAEAC,mBAAA,mBAEAC,uBAAA,sBAEAC,yBAAA,wBAEAC,gBAAA,gBAEAC,kBAAA,kBAEAC,mBAAA,mBAGAC,mBAAA,mBAEAC,kBAAA,kBAEAC,eAAA,eAEAC,iBAAA,iBAEAC,uBAAA,sBAEAC,oBAAA,oBAEAC,uBAAA,uBAEAC,qBAAA,qBAEAC,kBAAA,kBAEAC,sBAAA,qBAEAC,sBAAA,qBAEAC,mBAAA,sBAKA,SAAA59E,EAAAqhD,EAAAhlD,GAEA,aACAA,EAAAkvB,EAAA81B,EAAA,eAA2F,OAAAw8B,IAC3F,IAAAA,EAAAhmE,OAAAujC,UAAA,SAAA/2C,GACA,uBAAAA,GAAA+2C,SAAA/2C,KAKA,SAAArE,EAAAqhD,EAAAhlD,GAEA,aACAglD,EAAA,EACA,WAEA,0BAAA50C,OAEAxD,KAEAwD,SAMA,SAAAzM,EAAAC,EAAA5D,GAKA,IAGAyhF,EACAC,EACAC,EACAC,EAEAC,EALAJ,EAAA,2EACAC,EAAA,oBACAC,EAAA,oBACAC,EAAA,qCAEAC,GAOAC,iBAAA,SAAAC,EAAAC,EAAA12E,GAKA,GAJAA,QAEAy2E,IAAAE,SACAD,IAAAC,QACA,CAIA,IAAA32E,EAAA42E,gBACA,OAAAH,EAEA,IAAAI,EAAA1hF,KAAA2hF,SAAAL,GACA,IAAAM,EACA,UAAAviB,MAAA,mCAGA,OADAqiB,EAAArhF,KAAA+gF,EAAAS,cAAAH,EAAArhF,MACA+gF,EAAAU,kBAAAJ,GAEA,IAAAK,EAAA/hF,KAAA2hF,SAAAJ,GACA,IAAAQ,EACA,UAAA1iB,MAAA,uCAEA,GAAA0iB,EAAAC,OAGA,OAAAn3E,EAAA42E,iBAGAM,EAAA1hF,KAAA+gF,EAAAS,cAAAE,EAAA1hF,MACA+gF,EAAAU,kBAAAC,IAHAR,EAKA,IAAAK,EAAA5hF,KAAA2hF,SAAAL,GACA,IAAAM,EACA,UAAAviB,MAAA,mCAEA,IAAAuiB,EAAAK,QAAAL,EAAAvhF,MAAA,MAAAuhF,EAAAvhF,KAAA,IAGA,IAAA6hF,EAAAjB,EAAAkB,KAAAP,EAAAvhF,MACAuhF,EAAAK,OAAAC,EAAA,GACAN,EAAAvhF,KAAA6hF,EAAA,GAEAN,EAAAK,SAAAL,EAAAvhF,OACAuhF,EAAAvhF,KAAA,KAEA,IAAA+hF,GAGAJ,OAAAJ,EAAAI,OACAC,OAAAF,EAAAE,OACA5hF,KAAA,KACAsxB,OAAAowD,EAAApwD,OACAokC,MAAAgsB,EAAAhsB,MACAssB,SAAAN,EAAAM,UAEA,IAAAN,EAAAE,SAIAG,EAAAH,OAAAL,EAAAK,OAGA,MAAAF,EAAA1hF,KAAA,IACA,GAAA0hF,EAAA1hF,KAgBW,CAKX,IAAAiiF,EAAAV,EAAAvhF,KACAkiF,EAAAD,EAAAE,UAAA,EAAAF,EAAA11C,YAAA,QAAAm1C,EAAA1hF,KACA+hF,EAAA/hF,KAAA+gF,EAAAS,cAAAU,QApBAH,EAAA/hF,KAAAuhF,EAAAvhF,KAIA0hF,EAAApwD,SACAywD,EAAAzwD,OAAAiwD,EAAAjwD,OAIAowD,EAAAhsB,QACAqsB,EAAArsB,MAAA6rB,EAAA7rB,QAiBA,OAHA,OAAAqsB,EAAA/hF,OACA+hF,EAAA/hF,KAAAwK,EAAA42E,gBAAAL,EAAAS,cAAAE,EAAA1hF,MAAA0hF,EAAA1hF,MAEA+gF,EAAAU,kBAAAM,IAEAT,SAAA,SAAAxzE,GACA,IAAAs0E,EAAAzB,EAAAmB,KAAAh0E,GACA,OAAAs0E,GAIAT,OAAAS,EAAA,OACAR,OAAAQ,EAAA,OACApiF,KAAAoiF,EAAA,OACA9wD,OAAA8wD,EAAA,OACA1sB,MAAA0sB,EAAA,OACAJ,SAAAI,EAAA,QARA,MAWAZ,cAAA,SAAAxhF,GAgBA,IATAA,IAAAQ,MAAA,IAAA0mB,UAAAnhB,KAAA,IAAAmC,QAAA24E,EAAA,IASA7gF,EAAAY,UAAAZ,IAAAkI,QAAA44E,EAAA,KAAAlgF,SACA,OAAAZ,EAAAQ,MAAA,IAAA0mB,UAAAnhB,KAAA,KAEA07E,kBAAA,SAAAW,GACA,OAAAA,EAAAT,OAAAS,EAAAR,OAAAQ,EAAApiF,KAAAoiF,EAAA9wD,OAAA8wD,EAAA1sB,MAAA0sB,EAAAJ,WAMAn/E,EAAAC,QAAAi+E,GAaA,SAAAl+E,EAAAqhD,EAAAhlD,GAEA,aACAA,EAAAkvB,EAAA81B,EAAA,eAA2F,OAAAm+B,IAM3F,IAAAC,EAAA,WACA,SAAAA,KANA,SAAApjC,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAO3F6+B,CAAA7iF,KAAA2iF,GAsVA,OA7UAA,EAAAG,SAAA,SAAAhyE,EAAA4xB,GAcA,OAAAA,EAAA,IAAA5xB,EAAA7P,QAEA,KAAA6P,EAAA4xB,IAAA,KAAA5xB,EAAA4xB,EAAA,SAAA5xB,EAAA4xB,EAAA,IAEA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,QAEA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,QAkBAigD,EAAAI,SAAA,SAAAjyE,EAAA4xB,GAIA,OAAAA,EAAA,IAAA5xB,EAAA7P,QAEA,KAAA6P,EAAA4xB,IAAA,KAAA5xB,EAAA4xB,EAAA,SAAA5xB,EAAA4xB,EAAA,IAEA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,QAEA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,QAkBAigD,EAAAK,WAAA,SAAAlyE,EAAA4xB,GAIA,IAHA,IAAAugD,EAAAvgD,EACAzhC,EAAA,EAEA0hF,EAAAG,SAAAhyE,EAAA4xB,IAAA,CAEAzhC,GAAA,GAGAA,GADA0hF,EAAAO,UAAApyE,EAAA4xB,EAAA,GAGAigD,EAAAI,SAAAjyE,EAAA4xB,EAAA,MAEAzhC,GAAA,IAGAyhC,GAAAzhC,EAGA,GAAAA,EAAA,EACA,OAAA6P,EAAAqyE,SAAAF,IAAAhiF,IAMA0hF,EAAAO,UAAA,SAAApyE,EAAA4xB,GACA,IAAA7Q,EAAA,EAKA,OAJAA,GAAA,IAAA/gB,EAAA4xB,KAAA,GACA7Q,IAAA,IAAA/gB,EAAA4xB,EAAA,QACA7Q,IAAA,IAAA/gB,EAAA4xB,EAAA,OACA7Q,GAAA,IAAA/gB,EAAA4xB,EAAA,IAWAigD,EAAAS,aAAA,SAAAtyE,GAEA,IADA,IAAAuyE,EAAAV,EAAAW,aAAAxyE,GACA/P,EAAA,EAAmBA,EAAAsiF,EAAApiF,OAAmBF,IAAA,CACtC,IAAAwiF,EAAAF,EAAAtiF,GACA,GAAA4hF,EAAAa,iBAAAD,GACA,OAAAZ,EAAAc,eAAAF,KAaAZ,EAAAa,iBAAA,SAAAD,GACA,OAAAA,GAAA,SAAAA,EAAAx5E,KAAA,iDAAAw5E,EAAAzI,MAGA6H,EAAAe,cAAA,SAAA5yE,GAMA,IAAAtN,EAAA2N,OAAAwyE,aAAA7yE,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACA+gB,EAAA8wD,EAAAO,UAAApyE,EAAA,GAKA,OAAYtN,OAAAquB,OAAA/gB,OAAAqyE,SAFZ,MAEYtxD,KAUZ8wD,EAAAW,aAAA,SAAAM,GAIA,IAHA,IAAAlhD,EAAA,EACA2gD,KAEAV,EAAAG,SAAAc,EAAAlhD,IAAA,CAMA,IALA,IAAA7Q,EAAA8wD,EAAAO,UAAAU,EAAAlhD,EAAA,GAGAxR,GADAwR,GAAA,IACA7Q,EAEA6Q,EAAA,EAAAxR,GAAA,CACA,IAAA2yD,EAAAlB,EAAAe,cAAAE,EAAAT,SAAAzgD,IACA6gD,EAAAZ,EAAAmB,aAAAD,GACAN,GACAF,EAAA9hF,KAAAgiF,GAIA7gD,GAAAmhD,EAAAhyD,KAAA,GAGA8wD,EAAAI,SAAAa,EAAAlhD,KACAA,GAAA,IAIA,OAAA2gD,GAGAV,EAAAmB,aAAA,SAAAP,GACA,eAAAA,EAAA//E,KACAm/E,EAAAoB,iBAAAR,GACK,MAAAA,EAAA//E,KAAA,GACLm/E,EAAAqB,iBAAAT,GACK,MAAAA,EAAA//E,KAAA,GACLm/E,EAAAsB,gBAAAV,QADK,GAOLZ,EAAAc,eAAA,SAAAS,GACA,OAAAA,EAAApzE,KAAAqzE,WAAA,CACA,IAAArzE,EAAA,IAAAszE,WAAAF,EAAApzE,MAGAuzE,EAAA,EAAAvzE,EAAA,GACAwzE,GAAAxzE,EAAA,SAAAA,EAAA,SAAAA,EAAA,OAAAA,EAAA,GAOA,OANAwzE,GAAA,GAEAD,IACAC,GAAA,aAGAv8E,KAAAqC,MAAAk6E,KAMA3B,EAAAoB,iBAAA,SAAAR,GAIA,KAAAA,EAAA1xD,KAAA,IAIA,IAAA0yD,EAAA5B,EAAA6B,gBAAAjB,EAAAzyE,MAAA,GACA2zE,EAAA,IAAAL,WAAAb,EAAAzyE,KAAAqyE,SAAAoB,EAAAtjF,OAAA,IAEA,OAAY8I,IAAAw5E,EAAA//E,KAAAs3E,KAAAyJ,EAAAzzE,KAAA2zE,EAAAC,UAGZ/B,EAAAqB,iBAAA,SAAAT,GACA,KAAAA,EAAA1xD,KAAA,IAIA,YAAA0xD,EAAA//E,KAAA,CAMA,IAAAoJ,EAAA,EACA+3E,EAAAhC,EAAA6B,gBAAAjB,EAAAzyE,KAAAqyE,SAAAv2E,IAEAA,GAAA+3E,EAAA1jF,OAAA,EACA,IAAAsG,EAAAo7E,EAAA6B,gBAAAjB,EAAAzyE,KAAAqyE,SAAAv2E,IAEA,OAAc7C,IAAAw5E,EAAA//E,KAAAs3E,KAAA6J,EAAA7zE,KAAAvJ,GAOd,IAAA8pC,EAAAsxC,EAAA6B,gBAAAjB,EAAAzyE,KAAAqyE,SAAA,IACA,OAAcp5E,IAAAw5E,EAAA//E,KAAAsN,KAAAugC,KAIdsxC,EAAAsB,gBAAA,SAAAV,GACA,YAAAA,EAAA//E,KAAA,CAMA,GAAA+/E,EAAA1xD,KAAA,EACA,OAGA,IAAAjlB,EAAA,EACA+3E,EAAAhC,EAAA6B,gBAAAjB,EAAAzyE,KAAAqyE,SAAAv2E,IAEAA,GAAA+3E,EAAA1jF,OAAA,EACA,IAAAsG,EAAAo7E,EAAA6B,gBAAAjB,EAAAzyE,KAAAqyE,SAAAv2E,IAEA,OAAc7C,IAAAw5E,EAAA//E,KAAAs3E,KAAA6J,EAAA7zE,KAAAvJ,GAMd,IAAA4G,EAAAw0E,EAAA6B,gBAAAjB,EAAAzyE,MACA,OAAc/G,IAAAw5E,EAAA//E,KAAAsN,KAAA3C,IAedw0E,EAAA6B,gBAAA,SAAAplB,GASA,IARA,IAAAwlB,EAAA9/E,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEAjD,EAAAu9D,EAAAn+D,OACAi/D,OAAA,EACA2kB,OAAA,EACAC,OAAA,EACA36C,EAAA,GACAppC,EAAA,EACAA,EAAAc,GAAA,CAEA,QADAq+D,EAAAd,EAAAr+D,OACA6jF,EACA,OAAAz6C,EACO,OAAA+1B,GAAA,IAAAA,EAIP,OAAAA,GAAA,GACA,wDAEA/1B,GAAAh5B,OAAAwyE,aAAAzjB,GACA,MACA,gBAEA2kB,EAAAzlB,EAAAr+D,KACAopC,GAAAh5B,OAAAwyE,cAAA,GAAAzjB,IAAA,KAAA2kB,GACA,MACA,QAEAA,EAAAzlB,EAAAr+D,KACA+jF,EAAA1lB,EAAAr+D,KACAopC,GAAAh5B,OAAAwyE,cAAA,GAAAzjB,IAAA,OAAA2kB,IAAA,MAAAC,IAAA,IAKA,OAAA36C,GAGAw4C,EAxVA,GA2VAD,EAAAC,EAAA6B,gBAEAjgC,EAAA,KAMA,SAAArhD,EAAAC,GAuBA,SAAA4hF,IACA/kF,KAAAglF,QAAAhlF,KAAAglF,YACAhlF,KAAAilF,cAAAjlF,KAAAilF,oBAAAv3E,EAwQA,SAAA/N,EAAAulF,GACA,yBAAAA,EAOA,SAAAtlF,EAAAslF,GACA,uBAAAA,GAAA,OAAAA,EAGA,SAAAC,EAAAD,GACA,gBAAAA,EAnRAhiF,EAAAC,QAAA4hF,EAGAA,iBAEAA,EAAA7kF,UAAA8kF,aAAAt3E,EACAq3E,EAAA7kF,UAAA+kF,mBAAAv3E,EAIAq3E,EAAAK,oBAAA,GAIAL,EAAA7kF,UAAAmlF,gBAAA,SAAAjnC,GACA,GA4PA,iBA5PAA,KAAA,GAAA3zC,MAAA2zC,GACA,MAAA4F,UAAA,+BAEA,OADAhkD,KAAAilF,cAAA7mC,EACAp+C,MAGA+kF,EAAA7kF,UAAAolF,KAAA,SAAA9hF,GACA,IAAA+hF,EAAA9pE,EAAA5Z,EAAAuK,EAAArL,EAAAykF,EAMA,GAJAxlF,KAAAglF,UACAhlF,KAAAglF,YAGA,UAAAxhF,KACAxD,KAAAglF,QAAAjK,OACAn7E,EAAAI,KAAAglF,QAAAjK,SAAA/6E,KAAAglF,QAAAjK,MAAA95E,QAAA,CAEA,IADAskF,EAAAzgF,UAAA,cACAu6D,MACA,MAAAkmB,EAGA,IAAAE,EAAA,IAAApmB,MAAA,yCAAAkmB,EAAA,KAEA,MADAE,EAAA33B,QAAAy3B,EACAE,EAOA,GAAAN,EAFA1pE,EAAAzb,KAAAglF,QAAAxhF,IAGA,SAEA,GAAA7D,EAAA8b,GACA,OAAA3W,UAAA7D,QAEA,OACAwa,EAAA/P,KAAA1L,MACA,MACA,OACAyb,EAAA/P,KAAA1L,KAAA8E,UAAA,IACA,MACA,OACA2W,EAAA/P,KAAA1L,KAAA8E,UAAA,GAAAA,UAAA,IACA,MAEA,QACAsH,EAAAP,MAAA3L,UAAAoC,MAAAoJ,KAAA5G,UAAA,GACA2W,EAAAlP,MAAAvM,KAAAoM,QAEG,GAAAxM,EAAA6b,GAIH,IAHArP,EAAAP,MAAA3L,UAAAoC,MAAAoJ,KAAA5G,UAAA,GAEAjD,GADA2jF,EAAA/pE,EAAAnZ,SACArB,OACAF,EAAA,EAAeA,EAAAc,EAASd,IACxBykF,EAAAzkF,GAAAwL,MAAAvM,KAAAoM,GAGA,UAGA24E,EAAA7kF,UAAAwlF,YAAA,SAAAliF,EAAAmiF,GACA,IAAAh5D,EAEA,IAAAhtB,EAAAgmF,GACA,MAAA3hC,UAAA,+BA2CA,OAzCAhkD,KAAAglF,UACAhlF,KAAAglF,YAIAhlF,KAAAglF,QAAAY,aACA5lF,KAAAslF,KAAA,cAAA9hF,EACA7D,EAAAgmF,YACAA,cAEA3lF,KAAAglF,QAAAxhF,GAGA5D,EAAAI,KAAAglF,QAAAxhF,IAEAxD,KAAAglF,QAAAxhF,GAAAjC,KAAAokF,GAGA3lF,KAAAglF,QAAAxhF,IAAAxD,KAAAglF,QAAAxhF,GAAAmiF,GANA3lF,KAAAglF,QAAAxhF,GAAAmiF,EASA/lF,EAAAI,KAAAglF,QAAAxhF,MAAAxD,KAAAglF,QAAAxhF,GAAAqiF,SAIAl5D,EAHAw4D,EAAAnlF,KAAAilF,eAGAF,EAAAK,oBAFAplF,KAAAilF,gBAKAt4D,EAAA,GAAA3sB,KAAAglF,QAAAxhF,GAAAvC,OAAA0rB,IACA3sB,KAAAglF,QAAAxhF,GAAAqiF,QAAA,EACApwE,QAAAslE,MAAA,mIAGA/6E,KAAAglF,QAAAxhF,GAAAvC,QACA,mBAAAwU,QAAAmlE,OAEAnlE,QAAAmlE,SAKA56E,MAGA+kF,EAAA7kF,UAAAwf,GAAAqlE,EAAA7kF,UAAAwlF,YAEAX,EAAA7kF,UAAA4lF,KAAA,SAAAtiF,EAAAmiF,GACA,IAAAhmF,EAAAgmF,GACA,MAAA3hC,UAAA,+BAEA,IAAA+hC,GAAA,EAEA,SAAA35C,IACApsC,KAAAgmF,eAAAxiF,EAAA4oC,GAEA25C,IACAA,GAAA,EACAJ,EAAAp5E,MAAAvM,KAAA8E,YAOA,OAHAsnC,EAAAu5C,WACA3lF,KAAA0f,GAAAlc,EAAA4oC,GAEApsC,MAIA+kF,EAAA7kF,UAAA8lF,eAAA,SAAAxiF,EAAAmiF,GACA,IAAA94D,EAAAze,EAAAnN,EAAAF,EAEA,IAAApB,EAAAgmF,GACA,MAAA3hC,UAAA,+BAEA,IAAAhkD,KAAAglF,UAAAhlF,KAAAglF,QAAAxhF,GACA,OAAAxD,KAMA,GAHAiB,GADA4rB,EAAA7sB,KAAAglF,QAAAxhF,IACAvC,OACAmN,GAAA,EAEAye,IAAA84D,GACAhmF,EAAAktB,EAAA84D,WAAA94D,EAAA84D,oBACA3lF,KAAAglF,QAAAxhF,GACAxD,KAAAglF,QAAAgB,gBACAhmF,KAAAslF,KAAA,iBAAA9hF,EAAAmiF,QAEG,GAAA/lF,EAAAitB,GAAA,CACH,IAAA9rB,EAAAE,EAAoBF,KAAA,GACpB,GAAA8rB,EAAA9rB,KAAA4kF,GACA94D,EAAA9rB,GAAA4kF,UAAA94D,EAAA9rB,GAAA4kF,aAAA,CACAv3E,EAAArN,EACA,MAIA,GAAAqN,EAAA,EACA,OAAApO,KAEA,IAAA6sB,EAAA5rB,QACA4rB,EAAA5rB,OAAA,SACAjB,KAAAglF,QAAAxhF,IAEAqpB,EAAAvrB,OAAA8M,EAAA,GAGApO,KAAAglF,QAAAgB,gBACAhmF,KAAAslF,KAAA,iBAAA9hF,EAAAmiF,GAGA,OAAA3lF,MAGA+kF,EAAA7kF,UAAA+lF,mBAAA,SAAAziF,GACA,IAAAuG,EAAAy7E,EAEA,IAAAxlF,KAAAglF,QACA,OAAAhlF,KAGA,IAAAA,KAAAglF,QAAAgB,eAKA,OAJA,IAAAlhF,UAAA7D,OACAjB,KAAAglF,WACAhlF,KAAAglF,QAAAxhF,WACAxD,KAAAglF,QAAAxhF,GACAxD,KAIA,OAAA8E,UAAA7D,OAAA,CACA,IAAA8I,KAAA/J,KAAAglF,QACA,mBAAAj7E,GACA/J,KAAAimF,mBAAAl8E,GAIA,OAFA/J,KAAAimF,mBAAA,kBACAjmF,KAAAglF,WACAhlF,KAKA,GAAAL,EAFA6lF,EAAAxlF,KAAAglF,QAAAxhF,IAGAxD,KAAAgmF,eAAAxiF,EAAAgiF,QACG,GAAAA,EAEH,KAAAA,EAAAvkF,QACAjB,KAAAgmF,eAAAxiF,EAAAgiF,IAAAvkF,OAAA,IAIA,cAFAjB,KAAAglF,QAAAxhF,GAEAxD,MAGA+kF,EAAA7kF,UAAAslF,UAAA,SAAAhiF,GAQA,OANAxD,KAAAglF,SAAAhlF,KAAAglF,QAAAxhF,GAEA7D,EAAAK,KAAAglF,QAAAxhF,KACAxD,KAAAglF,QAAAxhF,IAEAxD,KAAAglF,QAAAxhF,GAAAlB,YAIAyiF,EAAA7kF,UAAAgmF,cAAA,SAAA1iF,GACA,GAAAxD,KAAAglF,QAAA,CACA,IAAAmB,EAAAnmF,KAAAglF,QAAAxhF,GAEA,GAAA7D,EAAAwmF,GACA,SACA,GAAAA,EACA,OAAAA,EAAAllF,OAEA,UAGA8jF,EAAAmB,cAAA,SAAAE,EAAA5iF,GACA,OAAA4iF,EAAAF,cAAA1iF,KAsBA,SAAAN,EAAAqhD,EAAAhlD,GAEA,aAKA,IAeA8mF,EAfA,WACA,SAAAC,EAAAC,EAAAC,IAHA,SAAAjnC,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAI3F6+B,CAAA7iF,KAAAsmF,GAEAtmF,KAAAumF,SACAvmF,KAAAymF,MAAAD,EAOA,OAJAF,EAAApmF,UAAAwmF,QAAA,SAAA51E,EAAA/G,GACA,OAAA/J,KAAAumF,OAAAG,SAAgC9jF,KAAA,UAAA4jF,GAAAxmF,KAAAymF,OAAkC18E,EAAA+G,IAGlEw1E,EAZA,GAmBA,IAeAK,EAfA,WACA,SAAAC,EAAAL,EAAAx8E,IAHA,SAAAw1C,EAAAqjC,GAA8D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAIxG6iC,CAAA7mF,KAAA4mF,GAEA5mF,KAAAumF,SACAvmF,KAAA+J,MAOA,OAJA68E,EAAA1mF,UAAA4mF,UAAA,WACA,OAAA9mF,KAAAumF,OAAAQ,UAAA,MAAA/mF,KAAA+J,KAAmDnH,KAAA,YAAkB,0BAGrEgkF,EAZA,GA8BA,IAgSAI,EAhSA,WACA,SAAAC,KAdA,SAAA1nC,EAAAqjC,GAA+D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAezGkjC,CAAAlnF,KAAAinF,GAGAjnF,KAAAmnF,MAAA,8BACAnnF,KAAAonF,QAAA,IAAAC,YAAA,SAAAA,YAAA,SAAAA,YAAA,SAAAA,YAAA,MACArnF,KAAAsnF,WAAA,IAAAD,YAAA,SAAAA,YAAA,SAAAA,YAAA,SAAAA,YAAA,MACArnF,KAAAunF,KAAA,IAAAF,YAAA,KACArnF,KAAAwnF,QAAA,IAAAH,YAAA,KAGArnF,KAAA+J,IAAA,IAAAs9E,YAAA,GAEArnF,KAAAynF,YA+QA,OAzQAR,EAAA/mF,UAAAwnF,yBAAA,SAAAC,GAGA,IAFA,IAAA70B,EAAA,IAAA80B,SAAAD,GACAE,EAAA,IAAAR,YAAA,GACAtmF,EAAA,EAAmBA,EAAA,EAAOA,IAC1B8mF,EAAA9mF,GAAA+xD,EAAAg1B,UAAA,EAAA/mF,GAGA,OAAA8mF,GAGAZ,EAAA/mF,UAAAunF,UAAA,WACA,IAAAF,EAAAvnF,KAAAunF,KACAC,EAAAxnF,KAAAwnF,QACAJ,EAAApnF,KAAAonF,OACAW,EAAAX,EAAA,GACAY,EAAAZ,EAAA,GACAa,EAAAb,EAAA,GACAc,EAAAd,EAAA,GACAE,EAAAtnF,KAAAsnF,UACAa,EAAAb,EAAA,GACAc,EAAAd,EAAA,GACAe,EAAAf,EAAA,GACAgB,EAAAhB,EAAA,GAEA74D,EAAA,IAAA44D,YAAA,KACAhjF,EAAA,EACAyrC,EAAA,EACA/uC,EAAA,EACA,IAAAA,EAAA,EAAeA,EAAA,IAASA,IAExB0tB,EAAA1tB,GADAA,EAAA,IACAA,GAAA,EAEAA,GAAA,MAIA,IAAAA,EAAA,EAAeA,EAAA,IAASA,IAAA,CACxB,IAAA4vC,EAAAb,KAAA,EAAAA,GAAA,EAAAA,GAAA,EAAAA,GAAA,EACAa,MAAA,MAAAA,EAAA,GACA42C,EAAAljF,GAAAssC,EACA62C,EAAA72C,GAAAtsC,EAGA,IAAAwpC,EAAApf,EAAApqB,GACAkkF,EAAA95D,EAAAof,GACA26C,EAAA/5D,EAAA85D,GAGAE,EAAA,IAAAh6D,EAAAkiB,GAAA,SAAAA,EACAo3C,EAAA1jF,GAAAokF,GAAA,GAAAA,IAAA,EACAT,EAAA3jF,GAAAokF,GAAA,GAAAA,IAAA,GACAR,EAAA5jF,GAAAokF,GAAA,EAAAA,IAAA,GACAP,EAAA7jF,GAAAokF,EAGAA,EAAA,SAAAD,EAAA,MAAAD,EAAA,IAAA16C,EAAA,SAAAxpC,EACA8jF,EAAAx3C,GAAA83C,GAAA,GAAAA,IAAA,EACAL,EAAAz3C,GAAA83C,GAAA,GAAAA,IAAA,GACAJ,EAAA13C,GAAA83C,GAAA,EAAAA,IAAA,GACAH,EAAA33C,GAAA83C,EAGApkF,GAGAA,EAAAwpC,EAAApf,MAAA+5D,EAAA36C,KACAiC,GAAArhB,IAAAqhB,KAHAzrC,EAAAyrC,EAAA,IAQAm3C,EAAA/mF,UAAA4mF,UAAA,SAAA4B,GAMA,IAJA,IAAA3+E,EAAA/J,KAAA0nF,yBAAAgB,GACAC,GAAA,EACAjmD,EAAA,EAEAA,EAAA34B,EAAA9I,QAAA0nF,GACAA,EAAA5+E,EAAA24B,KAAA1iC,KAAA+J,IAAA24B,GACAA,IAGA,IAAAimD,EAAA,CAIA3oF,KAAA+J,MACA,IAAA6+E,EAAA5oF,KAAA4oF,QAAA7+E,EAAA9I,OAEA,OAAA2nF,GAAA,IAAAA,GAAA,IAAAA,EACA,UAAAvpB,MAAA,wBAAAupB,GAGA,IAAAC,EAAA7oF,KAAA6oF,OAAA,GAAAD,EAAA,KACAE,OAAA,EACAC,OAAA,EAEAC,EAAAhpF,KAAAgpF,YAAA,IAAA3B,YAAAwB,GACAI,EAAAjpF,KAAAipF,eAAA,IAAA5B,YAAAwB,GACAK,EAAAlpF,KAAAunF,KACAJ,EAAAnnF,KAAAmnF,KAEAG,EAAAtnF,KAAAsnF,UACAa,EAAAb,EAAA,GACAc,EAAAd,EAAA,GACAe,EAAAf,EAAA,GACAgB,EAAAhB,EAAA,GAEAhoB,OAAA,EACAmpB,OAAA,EAEA,IAAAK,EAAA,EAAmBA,EAAAD,EAAgBC,IACnCA,EAAAF,EACAtpB,EAAA0pB,EAAAF,GAAA/+E,EAAA++E,IAGAL,EAAAnpB,EAEAwpB,EAAAF,GAAA,GAKAH,EAAAS,GAHAT,KAAA,EAAAA,IAAA,MAGA,QAAAS,EAAAT,IAAA,YAAAS,EAAAT,IAAA,UAAAS,EAAA,IAAAT,GAGAA,GAAAtB,EAAA2B,EAAAF,EAAA,QACOA,EAAA,GAAAE,EAAAF,GAAA,IAEPH,EAAAS,EAAAT,IAAA,QAAAS,EAAAT,IAAA,YAAAS,EAAAT,IAAA,UAAAS,EAAA,IAAAT,IAGAO,EAAAF,GAAAxpB,GAAA0pB,EAAAF,EAAAF,GAAAH,KAAA,GAGA,IAAAM,EAAA,EAAsBA,EAAAF,EAAmBE,IACzCD,EAAAD,EAAAE,EAEAN,EADA,EAAAM,EACAC,EAAAF,GAEAE,EAAAF,EAAA,GAIAG,EAAAF,GADAA,EAAA,GAAAD,GAAA,EACAL,EAEAN,EAAAe,EAAAT,IAAA,KAAAL,EAAAc,EAAAT,IAAA,SAAAJ,EAAAa,EAAAT,IAAA,QAAAH,EAAAY,EAAA,IAAAT,IAGAQ,EAAAF,GAAAE,EAAAF,KAAA,IAOA9B,EAAA/mF,UAAAipF,uBAAA,SAAAC,GACA,OAAAA,GAAA,UAAAA,IAAA,YAAAA,IAAA,EAAAA,IAAA,IAGAnC,EAAA/mF,UAAAwmF,QAAA,SAAA2C,EAAA3mD,EAAA+jD,EAAA6C,GAqCA,IApCA,IA/LA5E,EACA6E,EACAC,EA6LAC,EAAAzpF,KAAA4oF,QAAA,EACAK,EAAAjpF,KAAAipF,eACAS,EAAA1pF,KAAAwnF,QAEAF,EAAAtnF,KAAAsnF,UACAa,EAAAb,EAAA,GACAc,EAAAd,EAAA,GACAe,EAAAf,EAAA,GACAgB,EAAAhB,EAAA,GAEAqC,EAAA3pF,KAAA0nF,yBAAAjB,GACAmD,EAAAD,EAAA,GACAE,EAAAF,EAAA,GACAG,EAAAH,EAAA,GACAI,EAAAJ,EAAA,GAEAK,EAAA,IAAAC,WAAAZ,GACAa,EAAA,IAAAD,WAAAD,EAAA/oF,QAEAkpF,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EAEAhC,OAAA,EACA/nF,OAAA,EACAgqF,EAAA/qF,KAAAmpF,uBAEAzmD,EAAAsnD,EAAA/oF,QAAA,CAcA,IAbA0pF,EAAAI,EAAAf,EAAAtnD,IACAkoD,EAAAG,EAAAf,EAAAtnD,EAAA,IACAmoD,EAAAE,EAAAf,EAAAtnD,EAAA,IACAooD,EAAAC,EAAAf,EAAAtnD,EAAA,IAEA6nD,EAAAI,EAAA1B,EAAA,GACAuB,EAAAM,EAAA7B,EAAA,GACAwB,EAAAI,EAAA5B,EAAA,GACAyB,EAAAE,EAAA3B,EAAA,GAEAH,EAAA,EAGA/nF,EAAA,EAAiBA,EAAA0oF,EAAa1oF,IAC9BopF,EAAAhC,EAAAoC,IAAA,IAAAnC,EAAAoC,GAAA,QAAAnC,EAAAoC,GAAA,OAAAnC,EAAA,IAAAoC,GAAAzB,EAAAH,GACAsB,EAAAjC,EAAAqC,IAAA,IAAApC,EAAAqC,GAAA,QAAApC,EAAAqC,GAAA,OAAApC,EAAA,IAAAiC,GAAAtB,EAAAH,EAAA,GACAuB,EAAAlC,EAAAsC,IAAA,IAAArC,EAAAsC,GAAA,QAAArC,EAAAkC,GAAA,OAAAjC,EAAA,IAAAkC,GAAAvB,EAAAH,EAAA,GACAwB,EAAAnC,EAAAuC,IAAA,IAAAtC,EAAAmC,GAAA,QAAAlC,EAAAmC,GAAA,OAAAlC,EAAA,IAAAmC,GAAAxB,EAAAH,EAAA,GAEAyB,EAAAJ,EACAK,EAAAJ,EACAK,EAAAJ,EACAK,EAAAJ,EAEAxB,GAAA,EAIAqB,EAAAT,EAAAa,IAAA,QAAAb,EAAAc,GAAA,YAAAd,EAAAe,GAAA,UAAAf,EAAA,IAAAgB,GAAAzB,EAAAH,GACAsB,EAAAV,EAAAc,IAAA,QAAAd,EAAAe,GAAA,YAAAf,EAAAgB,GAAA,UAAAhB,EAAA,IAAAa,GAAAtB,EAAAH,EAAA,GACAuB,EAAAX,EAAAe,IAAA,QAAAf,EAAAgB,GAAA,YAAAhB,EAAAa,GAAA,UAAAb,EAAA,IAAAc,GAAAvB,EAAAH,EAAA,GACAwB,EAAAZ,EAAAgB,IAAA,QAAAhB,EAAAa,GAAA,YAAAb,EAAAc,GAAA,UAAAd,EAAA,IAAAe,GAAAxB,EAAAH,EAAA,GACAA,GAAA,EAGAoB,EAAAxnD,GAAAqoD,EAAAZ,EAAAP,GACAM,EAAAxnD,EAAA,GAAAqoD,EAAAT,EAAAT,GACAK,EAAAxnD,EAAA,GAAAqoD,EAAAV,EAAAP,GACAI,EAAAxnD,EAAA,GAAAqoD,EAAAX,EAAAL,GAGAH,EAAAe,EACAd,EAAAe,EACAd,EAAAe,EACAd,EAAAe,EAEApoD,GAAA,EAGA,OAAA4mD,GArRA5E,EAqRAwF,EAAAxF,OApRA6E,EAAA7E,EAAAP,YACAqF,EAAAD,GAAA,IAAA3B,SAAAlD,GAAAsG,SAAAzB,EAAA,IAEA7E,EAAApiF,MAAA,EAAAinF,EAAAC,GAEA9E,GA+QAwF,EAAAxF,QAGAuC,EAAA/mF,UAAAi/C,QAAA,WACAn/C,KAAA+J,SAAA2D,EACA1N,KAAA4oF,aAAAl7E,EACA1N,KAAA6oF,YAAAn7E,EAEA1N,KAAAunF,UAAA75E,EACA1N,KAAAwnF,aAAA95E,EACA1N,KAAAonF,YAAA15E,EACA1N,KAAAsnF,eAAA55E,EACA1N,KAAAgpF,iBAAAt7E,EACA1N,KAAAipF,oBAAAv7E,EAEA1N,KAAAmnF,UAAAz5E,GAGAu5E,EA7RA,GAkSAgE,EAAA1rF,EAAA,GAGAk7E,EAAAl7E,EAAA,GAGAga,EAAAha,EAAA,GAGA2rF,EAAA3rF,EAAA,GAiBA,IAAAilD,EAAA56C,OAAAshF,EAAA,EAAAthF,GAEAuhF,EAAA,WACA,SAAAC,EAAAtkC,EAAA9G,GACA,IACAqrC,GADAvmF,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,OACAwkF,mBACAA,OAAA57E,IAAA29E,KASA,GA7BA,SAAA9rC,EAAAqjC,GAA2D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAsBrGsnC,CAAAtrF,KAAAorF,GAEAprF,KAAAurF,YAAA,EACAvrF,KAAA8mD,WACA9mD,KAAAggD,SACAhgD,KAAAspF,qBAEAA,EACA,IACA,IAAAkC,EAAAhnC,EAAAinC,OACAD,IACAxrF,KAAAumF,OAAAiF,EAAAjF,QAAAiF,EAAAE,cAEO,MAAAvnF,IAEPnE,KAAA2rF,kBAAA3rF,KAAAumF,OAmEA,OAhEA6E,EAAAlrF,UAAA0rF,OAAA,WACA,OAAA5rF,KAAA2rF,kBAAA3rF,KAAAggD,OAAA6rC,mBAGAT,EAAAlrF,UAAAwmF,QAAA,SAAA51E,EAAA/G,EAAAy8E,EAAArkF,GACA,IAAA0a,EAAA7c,KAEA,GAAAA,KAAA2rF,kBAAA3rF,KAAAggD,OAAA6rC,kBAAA,CACA7rF,KAAAurF,aACA9Q,EAAA,EAAAj7E,IAAA,kBACAQ,KAAAurF,YAAA,GAEA,IAAAO,EAAA9rF,KAAA8rF,UACAA,IACA9rF,KAAA8rF,YAAA,IAAA9E,GAGA8E,EAAAhF,UAAA/8E,GACA5H,EAAA2pF,EAAApF,QAAA51E,EAAA,EAAA01E,EAAAxmF,KAAAspF,yBACK,CACLtpF,KAAAurF,aACA9Q,EAAA,EAAAj7E,IAAA,yBACAQ,KAAAurF,YAAA,GAEA,IAAAhF,EAAAvmF,KAAAumF,OACAvmF,KAAA+J,UACA/J,KAAA+J,MACA/J,KAAA+rF,WAAA,IAAApF,EAAAJ,EAAAx8E,IAGA/J,KAAA+rF,WAAAjF,YAAA33E,KAAA,SAAA68E,GAEA,IAAA3F,EAAAE,EAAAC,GACAE,QAAA51E,EAAAk7E,GAAAC,MAAA,SAAAxG,GACA5oE,EAAAqvE,iBAAAzG,EAAA30E,EAAA/G,EAAAy8E,EAAArkF,KACSgN,KAAA,SAAA4B,GACT5O,EAAA4O,OAEOk7E,MAAA,SAAAxG,GACP5oE,EAAAqvE,iBAAAzG,EAAA30E,EAAA/G,EAAAy8E,EAAArkF,OAKAipF,EAAAlrF,UAAAgsF,iBAAA,SAAAzG,EAAA30E,EAAA/G,EAAAy8E,EAAArkF,GACAnC,KAAAggD,OAAA6rC,mBACApR,EAAA,EAAAj7E,IAAA,0CACAQ,KAAA2rF,kBAAA,EACA3rF,KAAAurF,YAAA,EACAvrF,KAAA0mF,QAAA51E,EAAA/G,EAAAy8E,EAAArkF,KAEAs4E,EAAA,EAAAM,MAAA,sBAAA0K,EAAA3lB,SACA9/D,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAAglE,OAA8D/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAA/K,mBAAAkM,OAAA,EAAArsB,OAAA0lB,EAAA3lB,YAI9DsrB,EAAAlrF,UAAAi/C,QAAA,WACA,IAAA2sC,EAAA9rF,KAAA8rF,UACAA,IACAA,EAAA3sC,UACAn/C,KAAA8rF,eAAAp+E,IAIA09E,EAxFA,GA2FA7mC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAAA8sF,EAAA9sF,EAAA,GACA+sF,EAAA/sF,EAAA,GASA,IAAAgtF,EAAAxkF,KAAAI,IAAA,QAEAqkF,EAAA,WACA,SAAAA,EAAA1lC,EAAA2lC,IAXA,SAAAltC,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAY3F6+B,CAAA7iF,KAAAwsF,GAEAxsF,KAAA8mD,WACA9mD,KAAAysF,UAkZA,OA/YAD,EAAAtsF,UAAAwsF,eAAA,SAAAC,GACA3sF,KAAA2sF,WAGAH,EAAAtsF,UAAA0sF,iBAAA,SAAAC,EAAAC,EAAAC,EAAAC,GAEA,GAAAH,KAAA1I,WAAA,CACA,IAAA8I,EAAAjtF,KAAAitF,SAAAT,EAAAU,iBAAAL,GAIA,MAAAC,IACAA,EAAA,aAGA,MAAAC,IACAA,EAAA,eAGA,IAAAI,KACAF,EAAAG,OAAAH,EAAAI,MACAF,EAAAG,YAA6BC,UAAA,YAAAC,MAAAV,EAAA,IAAAC,EAAAF,YAAAG,EAAAH,EAAA,OAE7BI,EAAAG,QACAD,EAAAC,OAA0BG,UAAA,YAAAC,MAAAV,EAAAD,YAAAG,EAAAH,EAAA,OAG1BI,EAAAI,QACAF,EAAAE,OAA0BE,UAAA,YAAAC,MAAAT,EAAAF,YAAAG,EAAAH,EAAA,QAG1B7sF,KAAA8mD,SAAA70C,QAAAq6E,EAAA,EAAAxO,2BAAiHqP,gBAEjHL,IACA9sF,KAAA8sF,cAGAC,IACA/sF,KAAA+sF,eAKAP,EAAAiB,MAAA,SAAA38E,GAEA,OAAA07E,EAAAkB,SAA+B58E,OAAAtO,MAAA,EAAA0uB,IAAAnpB,KAAAC,IAAA8I,EAAA7P,OAAA,SAA0D,SAAAA,OAAA,GAGzFurF,EAAAmB,QAAA,SAAAjJ,GACA,OAAAvzE,OAAAwyE,aAAAp3E,MAAA,KAAAm4E,IAGA8H,EAAAoB,WAAA,SAAAlJ,EAAAhiD,GACAgiD,EAAA5zE,OACA4xB,GAAAgiD,EAAAliF,MACAkiF,IAAA5zE,MAGA,IAAAvD,EAAAm3E,EAAAhiD,IAAA,EAAAgiD,EAAAhiD,EAAA,GAEA,OAAAn1B,EAAA,QAAAA,KAGAi/E,EAAAqB,WAAA,SAAAnJ,EAAAhiD,GACAgiD,EAAA5zE,OACA4xB,GAAAgiD,EAAAliF,MACAkiF,IAAA5zE,MAGA,IAAAvD,EAAAm3E,EAAAhiD,IAAA,GAAAgiD,EAAAhiD,EAAA,OAAAgiD,EAAAhiD,EAAA,MAAAgiD,EAAAhiD,EAAA,GACA,OAAAn1B,EAAA,aAAAA,KAGAi/E,EAAAsB,YAAA,SAAApJ,EAAAhiD,EAAAn7B,GACAm9E,EAAA5zE,OACA4xB,GAAAgiD,EAAAliF,MACAkiF,IAAA5zE,MAEA4zE,EAAAhiD,GAAAn7B,GAAA,GACAm9E,EAAAhiD,EAAA,GAAAn7B,GAAA,OACAm9E,EAAAhiD,EAAA,GAAAn7B,GAAA,MACAm9E,EAAAhiD,EAAA,OAAAn7B,GAMAilF,EAAAkB,QAAA,SAAA58E,EAAAzQ,GACA,IAAA0tF,KACAhtF,OAAA,EACA8wB,OAAA,EACAruB,OAAA,EACA0tB,OAAA,EACA88D,OAAA,EACAxrF,OAAA,EACAyrF,OAAA,EAWA,GATAn9E,QACAtO,EAAAsO,EAAAtO,MACA0uB,EAAApgB,EAAAogB,IACApgB,WAEAtO,EAAA,EACA0uB,EAAApgB,EAAAqzE,aAGA9jF,EAAAY,OAEA,YAGA,IAAAF,EAAAyB,EAAmBzB,EAAAmwB,GACnBW,EAAA26D,EAAAqB,WAAA/8E,EAAA/P,GACAyC,EAAAgpF,EAAAmB,QAAA78E,EAAAqyE,SAAApiF,EAAA,EAAAA,EAAA,IACAktF,EAAAp8D,EAAA,EAAA9wB,EAAA8wB,EAAAX,EAEA1tB,IAAAnD,EAAA,KACA,IAAAA,EAAAY,OAGA8sF,EAAAxsF,MAAwBuP,OAAAtO,MAAAzB,EAAA,EAAAmwB,IAAA+8D,KAGxBD,EAAAxB,EAAAkB,SAA2C58E,OAAAtO,MAAAzB,EAAA,EAAAmwB,IAAA+8D,GAAwC5tF,EAAAiC,MAAA,KACnFrB,SACA8sF,IAAAh5E,OAAAi5E,KAIAjtF,EAAAktF,EAIA,OAAAF,GAGAvB,EAAA0B,kBAAA,SAAArB,GACA,IAAAsB,EAAA3B,EAAAkB,QAAAb,GAAA,YACAuB,EAAAD,IAAAj9D,IAAA,KAEAtkB,EAAA,EACAyhF,EAAA7B,EAAAkB,QAAAb,GAAA,SACAyB,OAAA,EAEA,IAAAD,MAAA,GACA,YAGAC,KAGA,IAAAhyB,GAFA+xB,IAAA,IAEAv9E,KAAA,GAGAlE,EAAA,IAAA0vD,EAAA,KAEA,IAAAiyB,EAAA/B,EAAAqB,WAAAQ,EAAAzhF,GACAA,GAAA,EAQAA,GADA,IAAA0vD,EACA,EAEA,GAIA1vD,GAAA,EAEA,IAAA4hF,EAAAH,EAAAn9D,IAXA,EAaAu9D,EAAAjC,EAAAoB,WAAAS,EAAAzhF,GACAA,GAAA,EAEA,QAAA7L,EAAA,EAAmBA,EAAA0tF,EAAqB1tF,IAAA,CACxC,IAAA2tF,EAAA9hF,EAEA+hF,EAAAnC,EAAAqB,WAAAQ,EAAAK,GACAA,GAAA,EAEA,IAAAE,EAAA,WAAAD,EAGA,QAFA,WAAAA,KAAA,GAIA,YADAl5E,QAAAC,KAAA,oDAIA,IAAAm5E,EAAArC,EAAAqB,WAAAQ,EAAAK,GACAA,GAAA,EAEAJ,EAAA/sF,MACAqtF,gBACAC,qBACA/T,MACAkS,SAAA6B,EAAAN,EACA/rF,MAAAgsF,EACAt9D,IAAAs9D,EAAAI,EAAA,KAIAJ,GAAAI,EAOAhiF,EAHA8hF,GAAA,EAMA,OACAI,yBAvDA,EAwDAP,YACAjyB,UACAmyB,kBACAH,aACAF,kBAyBA5B,EAAAU,iBAAA,SAAAL,GACA,IAAA97E,KAmCA,OAlCAy7E,EAAAkB,QAAAb,GAAA,gBAEA/iF,QAAA,SAAAilF,GACA,IAAAC,EAAAxC,EAAAkB,QAAAqB,GAAA,YACA,GAAAC,EAAA,CACA,IAAA1yB,EAAA0yB,EAAAl+E,KAAAk+E,EAAAxsF,OACAoK,EAAA,IAAA0vD,EAAA,MACA2yB,EAAAzC,EAAAqB,WAAAmB,EAAApiF,GAEAsiF,EAAA1C,EAAAkB,QAAAqB,GAAA,mBACA,GAAAG,EAAA,CAEAtiF,EAAA,KADA0vD,EAAA4yB,EAAAp+E,KAAAo+E,EAAA1sF,QACA,MACA,IAAA+rF,EAAA/B,EAAAqB,WAAAqB,EAAAtiF,GAEAuiF,EAAA3C,EAAAkB,QAAAqB,GAAA,mBACA,GAAAI,EAAA,CACA,IACA3rF,GAAwB4rF,KAAA,QAAAC,KAAA,SADxB7C,EAAAmB,QAAAwB,EAAAr+E,KAAAqyE,SAAAgM,EAAA3sF,MAAA,EAAA2sF,EAAA3sF,MAAA,MAEA,GAAAgB,EAAA,CAEA,IAAA8rF,EAAA9C,EAAAkB,QAAAqB,GAAA,8BACA,GAAAO,EAAAruF,OAAA,CACAquF,IAAA,GACA,IAAAC,EAAA/C,EAAAmB,QAAA2B,EAAAx+E,KAAAqyE,SAAAmM,EAAA9sF,MAAA,GAAA8sF,EAAA9sF,MAAA,KACA6pF,EAAA,EAAA7sF,IAAA,cAAAgE,EAAA,IAAA+rF,EAAA,UAEAx+E,EAAAk+E,IAAiCV,YAAA/qF,QACjCuN,EAAAvN,IAA8B+qF,YAAA7sF,GAAAutF,SAM9Bl+E,GAqBAy7E,EAAAgD,YAAA,SAAAvC,EAAA5K,GACA,IACAoN,EACA1+E,EAFA2+E,OAAA,EAwCA,OAnCAA,EAAAlD,EAAAkB,QAAArL,GAAA,gBAGAoN,KAAA16E,OAAAxI,SAAAmjF,EAAA/+E,IAAA,SAAAg/E,GACA,OAAAnD,EAAAkB,QAAAiC,GAAA,SAAAh/E,IAAA,SAAAi/E,GACA,IAAAluF,EACA6P,EAuBA,OAnBA7P,EAAA8qF,EAAAqB,WAAA+B,EAAA,GAEAr+E,EAAA07E,EAAAvrF,GAAA6sF,WAAA,IAGA/B,EAAAkB,QAAAiC,GAAA,SAAAh/E,IAAA,SAAAk/E,GACA,IAAAvzB,EACAvrD,OAAA,EASA,OAPAurD,EAAAuzB,EAAA/+E,KAAA++E,EAAArtF,OACAuO,EAAAy7E,EAAAqB,WAAAgC,EAAA,GACA,IAAAvzB,IACAvrD,GAAAhJ,KAAAI,IAAA,MAEA4I,GAAAy7E,EAAAqB,WAAAgC,EAAA,IAEA9+E,IACS,GAETQ,OAKAR,EAAAhJ,KAAAC,IAAAuE,MAAA,KAAAkjF,GACAnxC,SAAAvtC,KAAA,GAGAy7E,EAAAsD,eAAA,SAAA7C,EAAA5K,EAAA0N,GACAvD,EAAAkB,QAAArL,GAAA,gBAAA1xE,IAAA,SAAAg/E,GACA,OAAAnD,EAAAkB,QAAAiC,GAAA,SAAAh/E,IAAA,SAAAi/E,GAEA,IAAAluF,EAAA8qF,EAAAqB,WAAA+B,EAAA,GAEArB,EAAAtB,EAAAvrF,GAAA6sF,WAAA,IAGA/B,EAAAkB,QAAAiC,GAAA,SAAAh/E,IAAA,SAAAk/E,GACA,IAAAvzB,EAAAuzB,EAAA/+E,KAAA++E,EAAArtF,OACAwtF,EAAAxD,EAAAqB,WAAAgC,EAAA,GACA,OAAAvzB,EACAkwB,EAAAsB,YAAA+B,EAAA,EAAAG,EAAAD,EAAAxB,OACW,CACXyB,GAAAjoF,KAAAI,IAAA,MACA6nF,GAAAxD,EAAAqB,WAAAgC,EAAA,GACAG,GAAAD,EAAAxB,EACAyB,EAAAjoF,KAAAE,IAAA+nF,EAAA,GACA,IAAAC,EAAAloF,KAAAkwC,MAAA+3C,GAAAzD,EAAA,IACA2D,EAAAnoF,KAAAkwC,MAAA+3C,GAAAzD,EAAA,IACAC,EAAAsB,YAAA+B,EAAA,EAAAI,GACAzD,EAAAsB,YAAA+B,EAAA,EAAAK,WAUA1D,EAAAtsF,UAAAmsC,OAAA,SAAAv7B,EAAAi/E,EAAAI,EAAAC,GACA,IAAAnD,EAAAjtF,KAAAitF,SACAA,IACAjtF,KAAA4sF,iBAAA97E,EAAA9Q,KAAA8sF,WAAA9sF,KAAA+sF,YAAA,GACAE,EAAAjtF,KAAAitF,UAEA,IAAAoD,EACA1D,EAAA3sF,KAAA2sF,QACA,QAAAj/E,IAAAi/E,EAAA,CACA,IAAA2D,EAAA9D,EAAAgD,YAAAvC,EAAAn8E,GACA9Q,KAAA2sF,UAAA2D,EAAAP,EACA/vF,KAAA8mD,SAAA70C,QAAAq6E,EAAA,EAAA9O,gBAAsGmP,YAEtGH,EAAAsD,eAAA7C,EAAAn8E,EAAA67E,GACA0D,EAAA7D,EAAAgD,YAAAvC,EAAAn8E,GACA9Q,KAAAysF,QAAA8D,MAAAtD,EAAAG,MAAAH,EAAAI,MAAA,UAAAgD,EAAAF,EAAAC,EAAAt/E,IAGA07E,EAAAtsF,UAAAi/C,QAAA,aAEAqtC,EAvZA,GA0ZAjoC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aAGA,IAAAga,EAAAha,EAAA,GAGA0rF,EAAA1rF,EAAA,GAGAixF,EAAAjxF,EAAA,GAGAkxF,EAAAlxF,EAAA,GAGAk7E,EAAAl7E,EAAA,GAGA2rF,EAAA3rF,EAAA,GAkIA,SAAAmxF,EAAA5/E,EAAA4xB,GACA,aAAA5xB,EAAA4xB,IAAA,UAAA5xB,EAAA4xB,EAAA,IAGA,SAAAiuD,EAAA7/E,EAAA4xB,GACA,SAAA5xB,EAAA4xB,EAAA,OAGA,SAAAkuD,EAAA9/E,EAAA4xB,GACA,SAAA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,WAAA5xB,EAAA4xB,EAAA,QAGA,SAAAogD,EAAAhyE,EAAA4xB,GAIA,SAAAA,EAAA,EAAA5xB,EAAA7P,QAAAyvF,EAAA5/E,EAAA4xB,IAOA,SAAAmuD,EAAA//E,EAAA4xB,GAGA,GAAAA,EAAA,EAAA5xB,EAAA7P,QAAAyvF,EAAA5/E,EAAA4xB,GAAA,CAEA,IAEAouD,EAFAH,EAAA7/E,EAAA4xB,GAGAA,EAAA,EAAA5xB,EAAA7P,SACA6vF,EAAAF,EAAA9/E,EAAA4xB,IAGA,IAAAquD,EAAAruD,EAAAouD,EACA,GAAAC,IAAAjgF,EAAA7P,QAAA8vF,EAAA,EAAAjgF,EAAA7P,QAAAyvF,EAAA5/E,EAAAigF,GACA,SAGA,SAGA,SAAAC,EAAAC,EAAAnqC,EAAAh2C,EAAA4xB,EAAAoqD,GACA,IAAAmE,EAAAC,WAAA,CACA,IAAAlxC,EAlKA,SAAA8G,EAAAh2C,EAAA4xB,EAAAoqD,GACA,IAEAqE,EAFAC,OAAA,EAIAC,OAAA,EAEAC,OAAA,EAEAtxC,OAAA,EACAlB,EAAAD,UAAAC,UAAAxmC,cACAi5E,EAAAzE,EACA0E,GAAA,qEAIA,GAFAJ,EAAA,QAAAtgF,EAAA4xB,EAAA,YACAyuD,GAAA,GAAArgF,EAAA4xB,EAAA,SACA8uD,EAAAvwF,OAAA,GAkGA,OA9FAqwF,GAAA,EAAAxgF,EAAA4xB,EAAA,OAEA4uD,IAAA,IAAAxgF,EAAA4xB,EAAA,QACA+3C,EAAA,EAAAj7E,IAAA,kBAAAstF,EAAA,mBAAAsE,EAAA,mBAAAD,EAAA,IAAAK,EAAAL,GAAA,qBAAAG,GAEA,WAAA31B,KAAA7c,GACAqyC,GAAA,GACAC,EAAA,EACApxC,EAAA,IAAAn0C,MAAA,GAIAwlF,EAAAF,EAAA,IAEAC,EAAA,EACApxC,EAAA,IAAAn0C,MAAA,GACAwlF,EAAAF,IAGG,IAAAryC,EAAAh/C,QAAA,YACHsxF,EAAA,EACApxC,EAAA,IAAAn0C,MAAA,GACAwlF,EAAAF,IAKAC,EAAA,EACApxC,EAAA,IAAAn0C,MAAA,GAEAihF,KAAA,IAAAA,EAAAhtF,QAAA,oBAAAgtF,EAAAhtF,QAAA,gBAAAgtF,GAAAqE,GAAA,EAIAE,EAAAF,EAAA,IAIArE,IAAA,IAAAA,EAAAhtF,QAAA,eAAAqxF,GAAA,OAAAG,GAAA,WAAA31B,KAAA7c,MAAAguC,GAAA,IAAAwE,KACAF,EAAA,EACApxC,EAAA,IAAAn0C,MAAA,IAEAwlF,EAAAF,IAqCAnxC,EAAA,GAAAoxC,GAAA,EAEApxC,EAAA,QAAAmxC,IAAA,EACAnxC,EAAA,OAAAmxC,IAAA,EAEAnxC,EAAA,IAAAsxC,GAAA,EACA,IAAAF,IAEApxC,EAAA,QAAAqxC,IAAA,EACArxC,EAAA,MAAAqxC,IAAA,EAGArxC,EAAA,MACAA,EAAA,OAEUA,SAAAkxC,WAAAM,EAAAL,GAAAM,aAAAH,EAAA9D,MAAA,WAAA4D,EAAAG,iBAjGVzqC,EAAA70C,QAAAsH,EAAA,EAAAglE,OAAuD/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAA9K,mBAAAiM,OAAA,EAAArsB,OAAA,+BAAAoxB,IAiJvDO,CAAA5qC,EAAAh2C,EAAA4xB,EAAAoqD,GACAmE,EAAAjxC,gBACAixC,EAAAC,WAAAlxC,EAAAkxC,WACAD,EAAAQ,aAAAzxC,EAAAyxC,aACAR,EAAAzD,MAAAxtC,EAAAwtC,MACAyD,EAAAM,cAAAvxC,EAAAuxC,cACA9W,EAAA,EAAAj7E,IAAA,gBAAAyxF,EAAAzD,MAAA,SAAAxtC,EAAAkxC,WAAA,eAAAlxC,EAAAyxC,eAIA,SAAAE,EAAAT,GACA,cAAAA,EAwBA,SAAAU,EAAAX,EAAAngF,EAAA4xB,EAAAmvD,EAAAC,GACA,IACAC,EAvBA,SAAAjhF,EAAA4xB,EAAAmvD,EAAAC,EAAAE,GACA,IAAAC,EACAnB,OAAA,EAEA7vF,EAAA6P,EAAA7P,OAQA,GALAgxF,EAAAtB,EAAA7/E,EAAA4xB,GAEAouD,EAAAF,EAAA9/E,EAAA4xB,IACAouD,GAAAmB,GAEA,GAAAvvD,EAAAuvD,EAAAnB,GAAA7vF,EAGA,OAAYgxF,eAAAnB,cAAAoB,MAFZL,EAAAC,EAAAE,GAUAG,CAAArhF,EAAA4xB,EAAAmvD,EAAAC,EADAH,EAAAV,EAAAC,aAEA,GAAAa,EAAA,CACA,IAAAG,EAAAH,EAAAG,MACAD,EAAAF,EAAAE,aACAnB,EAAAiB,EAAAjB,YAGAsB,GACA/zC,KAAAvtC,EAAAqyE,SAAAzgD,EAAAuvD,EAAAvvD,EAAAuvD,EAAAnB,GACAe,IAAAK,EACAG,IAAAH,GAMA,OAHAjB,EAAAqB,QAAA/wF,KAAA6wF,GACAnB,EAAApvF,KAAAivF,GAEYyB,OAAAH,EAAAnxF,OAAA6vF,EAAAmB,IAMZ,IAAAO,EAAAjzF,EAAA,GAcA,IAiFAkzF,EAjFA,WACA,SAAAC,EAAA5rC,EAAA2lC,EAAAzsC,IAVA,SAAAT,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAW3F6+B,CAAA7iF,KAAA0yF,GAEA1yF,KAAA8mD,WACA9mD,KAAAggD,SACAhgD,KAAAysF,UAwEA,OArEAiG,EAAAxyF,UAAA0sF,iBAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACAhtF,KAAA2yF,aAAwBpF,UAAA,aAAA/pF,KAAA,QAAA9B,GAAA,EAAAkxF,eAAA,EAAAC,OAAA,EAAAP,WAAAzwF,IAAA,EAAA0vF,cAAAzE,EAAAE,WAAA8F,eAAA,MAGxBJ,EAAAxyF,UAAAwsF,eAAA,aAEAgG,EAAAjF,MAAA,SAAA38E,GACA,IAAAA,EACA,SAUA,IAHA,IACA4xB,GADA8vD,EAAA,EAAAxP,WAAAlyE,EAAA,QACA7P,OAEAA,EAAA6P,EAAA7P,OAAkCyhC,EAAAzhC,EAAiByhC,IACnD,GAAAmuD,EAAA//E,EAAA4xB,GAEA,OADA+3C,EAAA,EAAAj7E,IAAA,2BACA,EAGA,UAMAkzF,EAAAxyF,UAAAmsC,OAAA,SAAAv7B,EAAAi/E,EAAAI,EAAAC,GAYA,IAXA,IAAAa,EAAAjxF,KAAA2yF,YACA/O,EAAA4O,EAAA,EAAAxP,WAAAlyE,EAAA,OACAwzE,EAAAkO,EAAA,EAAApP,aAAAQ,GACAiO,EAAAjoF,OAAA6mF,EAAA,EAAA7mF,CAAA06E,GAAA,GAAAA,EAAA,IAAAyL,EACA+B,EAAA,EACAI,EAAAL,EACA5wF,EAAA6P,EAAA7P,OACAyhC,EAAAkhD,EAAA3iF,OAEA8xF,IAAuBlB,IAAAK,EAAAG,IAAAH,EAAAphF,KAAA8yE,IAEvBlhD,EAAAzhC,EAAA,GACA,GAAA6hF,EAAAhyE,EAAA4xB,MAAA,EAAAzhC,EAAA,CACA+vF,EAAAC,EAAAjxF,KAAA8mD,SAAAh2C,EAAA4xB,EAAAuuD,EAAAM,eACA,IAAAhO,EAAAqO,EAAAX,EAAAngF,EAAA4xB,EAAAmvD,EAAAC,GACA,IAAAvO,EAIS,CACT9I,EAAA,EAAAj7E,IAAA,6BACA,MALAkjC,GAAA6gD,EAAAtiF,OACAixF,EAAA3O,EAAAgP,OAAAV,IACAC,SAKOU,EAAA,EAAA1P,SAAAhyE,EAAA4xB,IACPkhD,EAAA4O,EAAA,EAAAxP,WAAAlyE,EAAA4xB,GACAqwD,EAAAxxF,MAAyBswF,IAAAK,EAAAG,IAAAH,EAAAphF,KAAA8yE,IACzBlhD,GAAAkhD,EAAA3iF,QAGAyhC,IAIA1iC,KAAAysF,QAAA8D,MAAAU,GAA+BqB,aAAiBA,QAAAS,EAAAD,eAAA,MAAgDR,YAAcvC,EAAAI,EAAAC,IAG9GsC,EAAAxyF,UAAAi/C,QAAA,aAEAuzC,EA9EA,GAmFAM,EAAAzzF,EAAA,GAOA0zF,GAEAC,aAAA,wPAEAC,iBAAA,gDAEAC,sBAEA,EACA,GACA,IACA,KAGA,EACA,EACA,EACA,IAGA,EACA,GACA,IACA,KAGA,EACA,IACA,IACA,KAGAC,aAAA,EACA,EACA,EACA,GAGAzB,YAAA,SAAAX,EAAAngF,EAAA4xB,EAAAmvD,EAAAC,GAEA,KAAApvD,EAAA,GAAA5xB,EAAA7P,QAAA,CAIA,IAAA8wF,EAAA/xF,KAAAszF,YAAAxiF,EAAA4xB,GACA,GAAAqvD,GAAArvD,EAAAqvD,EAAAjB,aAAAhgF,EAAA7P,OAAA,CACA,IACAixF,EAAAL,EAAAC,GADA,IAAAC,EAAAwB,gBAAAxB,EAAAyB,YAEAjB,GAAoBl0C,KAAAvtC,EAAAqyE,SAAAzgD,IAAAqvD,EAAAjB,aAAAe,IAAAK,EAAAG,IAAAH,GAQpB,OANAjB,EAAAjxC,UACAixC,EAAAQ,aAAAM,EAAAN,aACAR,EAAAC,WAAAa,EAAAyB,WACAvC,EAAAqB,QAAA/wF,KAAAgxF,GACAtB,EAAApvF,KAAAkwF,EAAAjB,aAEcyB,SAAAtxF,OAAA8wF,EAAAjB,gBAMdwC,YAAA,SAAAxiF,EAAA4xB,GACA,IAAA+wD,EAAA3iF,EAAA4xB,EAAA,QACAgxD,EAAA5iF,EAAA4xB,EAAA,QACAixD,EAAA7iF,EAAA4xB,EAAA,SACAkxD,EAAA9iF,EAAA4xB,EAAA,QACAmxD,EAAA/iF,EAAA4xB,EAAA,QACA,OAAA+wD,GAAA,IAAAE,GAAA,KAAAA,GAAA,IAAAC,EAAA,CACA,IAAAE,EAAA,IAAAL,EAAA,EAAAC,EAAA,IAAAA,EAAA,IACAK,EAAA,IAAAd,EAAAC,YAAA,GAAAY,EAAAH,EAAA,GACAK,EAAA,IAAAP,EAAA,MAAAA,EAAA,IACAD,EAAAP,EAAAE,gBAAA,EAAAa,EAAAJ,GACAnC,EAAA3gF,EAAA4xB,EAAA,aACAuxD,EAAAhB,EAAAG,oBAAAK,GAAAC,GACAQ,EAAAjB,EAAAI,YAAAK,GACAH,EAAA,EAAAU,EAAAC,EAGA,OAAcV,aAAA/B,eAAAX,YAFdlX,SAAAqa,EAAAF,EAAAP,EAAAK,EAAA,IAAAK,EAEcX,qBAMd7C,gBAAA,SAAA5/E,EAAA4xB,GACA,aAAA5xB,EAAA4xB,IAAA,UAAA5xB,EAAA4xB,EAAA,WAAA5xB,EAAA4xB,EAAA,KAGAogD,SAAA,SAAAhyE,EAAA4xB,GAIA,SAAAA,EAAA,EAAA5xB,EAAA7P,QAAAjB,KAAA0wF,gBAAA5/E,EAAA4xB,KAOA+qD,MAAA,SAAA38E,EAAA4xB,GAGA,GAAAA,EAAA,EAAA5xB,EAAA7P,QAAAjB,KAAA0wF,gBAAA5/E,EAAA4xB,GAAA,CAEA,IAEAqvD,EAAA/xF,KAAAszF,YAAAxiF,EAAA4xB,GACAouD,EAHA,EAIAiB,KAAAjB,cACAA,EAAAiB,EAAAjB,aAGA,IAAAC,EAAAruD,EAAAouD,EACA,GAAAC,IAAAjgF,EAAA7P,QAAA8vF,EAAA,EAAAjgF,EAAA7P,QAAAjB,KAAA0wF,gBAAA5/E,EAAAigF,GACA,SAGA,WAIAoD,EAAA,EAUA,IAuVAC,EAvVA,WACA,SAAAC,EAAAvjF,IATA,SAAAyuC,EAAAqjC,GAA4D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAUtGswC,CAAAt0F,KAAAq0F,GAEAr0F,KAAA8Q,OAEA9Q,KAAAu0F,eAAAzjF,EAAAqzE,WAEAnkF,KAAAopF,KAAA,EAEAppF,KAAAw0F,cAAA,EA0UA,OApUAH,EAAAn0F,UAAAu0F,SAAA,WACA,IAAA3jF,EAAA9Q,KAAA8Q,KACAyjF,EAAAv0F,KAAAu0F,eACAnmF,EAAA0C,EAAAqzE,WAAAoQ,EACAG,EAAA,IAAAtQ,WAAA,GACAuQ,EAAA5sF,KAAAC,IAAA,EAAAusF,GACA,OAAAI,EACA,UAAAt1B,MAAA,sBAGAq1B,EAAA1vC,IAAAl0C,EAAAqyE,SAAA/0E,IAAAumF,IACA30F,KAAAopF,KAAA,IAAAxB,SAAA8M,EAAAhQ,QAAAoD,UAAA,GAEA9nF,KAAAw0F,cAAA,EAAAG,EACA30F,KAAAu0F,gBAAAI,GAMAN,EAAAn0F,UAAA00F,SAAA,SAAAryF,GACA,IAAAsyF,OAAA,EACA70F,KAAAw0F,cAAAjyF,GACAvC,KAAAopF,OAAA7mF,EACAvC,KAAAw0F,eAAAjyF,IAEAA,GAAAvC,KAAAw0F,cAEAjyF,IADAsyF,EAAAtyF,GAAA,IACA,EACAvC,KAAAu0F,gBAAAM,EACA70F,KAAAy0F,WACAz0F,KAAAopF,OAAA7mF,EACAvC,KAAAw0F,eAAAjyF,IAOA8xF,EAAAn0F,UAAA40F,SAAA,SAAAjjE,GACA,IAAAkjE,EAAAhtF,KAAAC,IAAAhI,KAAAw0F,cAAA3iE,GAEAmjE,EAAAh1F,KAAAopF,OAAA,GAAA2L,EAaA,OAZAljE,EAAA,IACA4oD,EAAA,EAAAM,MAAA,2CAGA/6E,KAAAw0F,eAAAO,EACA/0F,KAAAw0F,cAAA,EACAx0F,KAAAopF,OAAA2L,EACK/0F,KAAAu0F,eAAA,GACLv0F,KAAAy0F,YAGAM,EAAAljE,EAAAkjE,GACA,GAAA/0F,KAAAw0F,cACAQ,GAAAD,EAAA/0F,KAAA80F,SAAAC,GAEAC,GAOAX,EAAAn0F,UAAA+0F,OAAA,WACA,IAAAC,OAAA,EACA,IAAAA,EAAA,EAA8BA,EAAAl1F,KAAAw0F,gBAAuCU,EACrE,OAAAl1F,KAAAopF,KAAA,aAAA8L,GAIA,OAFAl1F,KAAAopF,OAAA8L,EACAl1F,KAAAw0F,eAAAU,EACAA,EAKA,OADAl1F,KAAAy0F,WACAS,EAAAl1F,KAAAi1F,UAMAZ,EAAAn0F,UAAAi1F,QAAA,WACAn1F,KAAA40F,SAAA,EAAA50F,KAAAi1F,WAMAZ,EAAAn0F,UAAAk1F,OAAA,WACAp1F,KAAA40F,SAAA,EAAA50F,KAAAi1F,WAMAZ,EAAAn0F,UAAAm1F,QAAA,WACA,IAAAC,EAAAt1F,KAAAi1F,SACA,OAAAj1F,KAAA80F,SAAAQ,EAAA,MAMAjB,EAAAn0F,UAAAq1F,OAAA,WACA,IAAAP,EAAAh1F,KAAAq1F,UACA,SAAAL,EAEA,EAAAA,IAAA,GAEA,GAAAA,IAAA,IAQAX,EAAAn0F,UAAAs1F,YAAA,WACA,WAAAx1F,KAAA80F,SAAA,IAMAT,EAAAn0F,UAAAu1F,UAAA,WACA,OAAAz1F,KAAA80F,SAAA,IAMAT,EAAAn0F,UAAAw1F,WAAA,WACA,OAAA11F,KAAA80F,SAAA,KAKAT,EAAAn0F,UAAAy1F,SAAA,WACA,OAAA31F,KAAA80F,SAAA,KAYAT,EAAAn0F,UAAA01F,gBAAA,SAAArzF,GACA,IAAAszF,EAAA,EACAC,EAAA,EACA5iE,OAAA,EAEA,IAAAA,EAAA,EAAeA,EAAA3wB,EAAW2wB,IAC1B,IAAA4iE,IAEAA,GAAAD,EADA71F,KAAAu1F,SACA,UAEAM,EAAA,IAAAC,EAAAD,EAAAC,GAeAzB,EAAAn0F,UAAA61F,QAAA,WACA,IAIAC,EAIAC,EACAC,EACAC,EAVAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EAIAC,OAAA,EAIAC,OAAA,EACA11F,OAAA,EACA00F,EAAAz1F,KAAAy1F,UAAAjrF,KAAAxK,MACA80F,EAAA90F,KAAA80F,SAAAtqF,KAAAxK,MACAq1F,EAAAr1F,KAAAq1F,QAAA7qF,KAAAxK,MACAw1F,EAAAx1F,KAAAw1F,YAAAhrF,KAAAxK,MACA40F,EAAA50F,KAAA40F,SAAApqF,KAAAxK,MACAo1F,EAAAp1F,KAAAo1F,OAAA5qF,KAAAxK,MACAm1F,EAAAn1F,KAAAm1F,QAAA3qF,KAAAxK,MACA41F,EAAA51F,KAAA41F,gBAAAprF,KAAAxK,MASA,GAPAy1F,IACAO,EAAAP,IACAX,EAAA,GACAF,EAAA,GACAa,IACAN,IAEA,MAAAa,GAAA,MAAAA,GAAA,MAAAA,GAAA,MAAAA,GAAA,KAAAA,GAAA,KAAAA,GAAA,KAAAA,GAAA,MAAAA,GAAA,MAAAA,EAAA,CACA,IAAAU,EAAArB,IAQA,GAPA,IAAAqB,GACA9B,EAAA,GAGAO,IACAA,IACAP,EAAA,GACAY,IAGA,IADAiB,EAAA,IAAAC,EAAA,KACA31F,EAAA,EAAmBA,EAAA01F,EAAsB11F,IACzCy0F,KAGAI,EADA70F,EAAA,EACA,GAEA,IAMAo0F,IACA,IAAAwB,EAAAtB,IACA,OAAAsB,EACAtB,SACK,OAAAsB,EAKL,IAJA/B,EAAA,GACAQ,IACAA,IACAoB,EAAAnB,IACAt0F,EAAA,EAAiBA,EAAAy1F,EAAoCz1F,IACrDq0F,IAGAD,IACAP,EAAA,GACAqB,EAAAZ,IACAa,EAAAb,IAEA,KADAc,EAAArB,EAAA,KAEAF,EAAA,GAGAA,EAAA,GACAY,MAEAY,EAAAf,IACAgB,EAAAhB,IACAiB,EAAAjB,IACAkB,EAAAlB,KAEA,IAAAljC,GAAA,KACA,GAAAqjC,KAEAA,IAGA,OADAC,KAEA,OACAtjC,GAAA,KAAgC,MAChC,OACAA,GAAA,OAAkC,MAClC,OACAA,GAAA,OAAkC,MAClC,OACAA,GAAA,OAAkC,MAClC,OACAA,GAAA,OAAkC,MAClC,OACAA,GAAA,OAAkC,MAClC,OACAA,GAAA,OAAkC,MAClC,OACAA,GAAA,OAAkC,MAClC,OACAA,GAAA,OAAkC,MAClC,QACAA,GAAA,OAAkC,MAClC,QACAA,GAAA,OAAkC,MAClC,QACAA,GAAA,OAAkC,MAClC,QACAA,GAAA,QAAmC,MACnC,QACAA,GAAA,KAAgC,MAChC,QACAA,GAAA,KAAgC,MAChC,QACAA,GAAA,KAAgC,MAChC,SAEAA,GAAAsjC,KAAA,EAAAA,SAAA,EAAAA,KAMA,OACAz8E,MAAAjR,KAAAowC,KAAA,IAAA89C,EAAA,KAAAG,EAAA,EAAAC,GACAp9E,QAAA,EAAAk9E,IAAAD,EAAA,OAAAC,EAAA,MAAAG,EAAAC,GACApkC,eAIAkiC,EAAAn0F,UAAA02F,cAAA,WAMA,OAJA52F,KAAAy1F,YAEAz1F,KAAAq1F,UAEAr1F,KAAAq1F,WAGAhB,EApVA,GAiWA,IA2HAwC,EA3HA,WACA,SAAAC,EAAAhwC,EAAA9G,EAAA+2C,EAAAC,IATA,SAAAz3C,EAAAqjC,GAA4D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAUtGizC,CAAAj3F,KAAA82F,GAEA92F,KAAA+2F,cACA/2F,KAAAg3F,aACAh3F,KAAAk3F,UAAA,IAAA1G,EAAA,EAAA1pC,EAAA9G,GAA+EspC,oBAAA,IAkH/E,OA/GAwN,EAAA52F,UAAAi3F,cAAA,SAAAC,EAAAj1F,GACAnC,KAAAk3F,UAAAxQ,QAAA0Q,EAAAp3F,KAAA+2F,YAAAhtF,IAAA26E,OAAA1kF,KAAA+2F,YAAAvQ,GAAA9B,OAAAviF,IAMA20F,EAAA52F,UAAAm3F,iBAAA,SAAA/E,EAAAgF,EAAAn1F,EAAAo1F,GACA,IAAAC,EAAAlF,EAAAgF,GAAAj5C,KACA+4C,EAAAI,EAAArU,SAAA,GAAAqU,EAAAv2F,OAAAu2F,EAAAv2F,OAAA,IACAw2F,EAAAL,EAAA1S,OAAApiF,MAAA80F,EAAAM,WAAAN,EAAAM,WAAAN,EAAAn2F,QAEA02F,EAAA33F,KACAA,KAAAm3F,cAAAM,EAAA,SAAAG,GACAA,EAAA,IAAAxT,WAAAwT,GACAJ,EAAAxyC,IAAA4yC,EAAA,IAEAL,GACAI,EAAAE,kBAAAvF,EAAAgF,EAAA,EAAAn1F,MAKA20F,EAAA52F,UAAA23F,kBAAA,SAAAvF,EAAAgF,EAAAn1F,GACA,MAAWm1F,IAAA,CACX,GAAAA,GAAAhF,EAAArxF,OAEA,YADAkB,IAIA,KAAAmwF,EAAAgF,GAAAj5C,KAAAp9C,OAAA,KAIA,IAAAs2F,EAAAv3F,KAAAk3F,UAAAtL,SAIA,GAFA5rF,KAAAq3F,iBAAA/E,EAAAgF,EAAAn1F,EAAAo1F,IAEAA,EACA,UAQAT,EAAA52F,UAAA43F,oBAAA,SAAAC,GAIA,IAHA,IAAAC,EAAA,GAAAjwF,KAAAkwC,OAAA8/C,EAAA92F,OAAA,YACAm2F,EAAA,IAAAa,UAAAD,GACAE,EAAA,EACAC,EAAA,GAA2BA,GAAAJ,EAAA92F,OAAA,GAAqCk3F,GAAA,IAAAD,GAAA,GAChEd,EAAApyC,IAAA+yC,EAAA5U,SAAAgV,IAAA,IAAAD,GAGA,OAAAd,GAGAN,EAAA52F,UAAAk4F,oBAAA,SAAAL,EAAAH,GACAA,EAAA,IAAAxT,WAAAwT,GAEA,IADA,IAAAO,EAAA,EACAD,EAAA,GAA4BA,GAAAH,EAAA92F,OAAA,GAAsCi3F,GAAA,IAAAC,GAAA,GAClEJ,EAAA/yC,IAAA4yC,EAAAzU,SAAAgV,IAAA,IAAAD,GAGA,OAAAH,GAGAjB,EAAA52F,UAAAm4F,iBAAA,SAAA/F,EAAAgF,EAAAgB,EAAAn2F,EAAAq1F,EAAAD,GACA,IAAAQ,EAAA/3F,KAAAg3F,WAAAQ,EAAA1mF,MACAsmF,EAAAp3F,KAAA83F,oBAAAC,GACAJ,EAAA33F,KAEAA,KAAAm3F,cAAAC,EAAA1S,OAAA,SAAAkT,GACAJ,EAAA1mF,KAAA6mF,EAAAS,oBAAAL,EAAAH,GAEAL,GACAI,EAAAY,kBAAAjG,EAAAgF,EAAAgB,EAAA,EAAAn2F,MAKA20F,EAAA52F,UAAAq4F,kBAAA,SAAAjG,EAAAgF,EAAAgB,EAAAn2F,GACA,MAAWm1F,IAAAgB,EAAA,GACX,GAAAhB,GAAAhF,EAAArxF,OAEA,YADAkB,IAKA,IADA,IAAAq2F,EAAAlG,EAAAgF,GAAAmB,QAEAH,GAAAE,EAAAv3F,QADaq3F,IAAA,CAKb,IAAAd,EAAAgB,EAAAF,GACA,KAAAd,EAAAv2F,QAAA,QAAAu2F,EAAAh0F,MAAA,IAAAg0F,EAAAh0F,MAAA,CAIA,IAAA+zF,EAAAv3F,KAAAk3F,UAAAtL,SAIA,GAFA5rF,KAAAq4F,iBAAA/F,EAAAgF,EAAAgB,EAAAn2F,EAAAq1F,EAAAD,IAEAA,EACA,WAMAT,EAxHA,GA2JA,IAAA4B,GACArL,MAAA,EACAD,MAAA,EACAoF,IAAA,EACAnhD,KAAA,GAkjCAsnD,EA/iCA,WACA,SAAAC,EAAA9xC,EAAA2lC,EAAAzsC,EAAA64C,IAtCA,SAAAt5C,EAAAqjC,GAA2D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAuCrG80C,CAAA94F,KAAA44F,GAEA54F,KAAA8mD,WACA9mD,KAAAggD,SACAhgD,KAAA64F,gBACA74F,KAAAysF,UACAzsF,KAAA+4F,UAAA,KAoiCA,OAjiCAH,EAAA14F,UAAA84F,eAAA,SAAAjC,GACA,MAAAA,GAAA,MAAAA,EAAAhtF,KAAA,eAAAgtF,EAAAroD,OACA1uC,KAAA+4F,UAAA,IAAAlC,EAAA72F,KAAA8mD,SAAA9mD,KAAAggD,OAAA+2C,EAAA/2F,KAAAg3F,YAEAh3F,KAAA+4F,UAAA,MAIAH,EAAAnL,MAAA,SAAA38E,GACA,IAAAmoF,EAAAL,EAAAM,YAAApoF,GACA,QAAAmoF,EAAA,KAGAA,GACAxe,EAAA,EAAA/kE,KAAA,wDAAAujF,EAAA,mBAGA,IAIAL,EAAAM,YAAA,SAAApoF,GAIA,IAFA,IAAAqoF,EAAApxF,KAAAC,IAAA,IAAA8I,EAAA7P,OAAA,KACAF,EAAA,EACAA,EAAAo4F,GAAA,CAEA,QAAAroF,EAAA/P,IAAA,KAAA+P,EAAA/P,EAAA,WAAA+P,EAAA/P,EAAA,KACA,OAAAA,EAEAA,IAGA,UAYA63F,EAAAQ,YAAA,SAAA51F,EAAAwpF,GACA,OACAO,UAAA,UAAA/pF,GAAA,UAAAA,EAAA,kBAAAkK,EACAlK,OACA9B,GAAAg3F,EAAAl1F,GACA61F,KAAA,EACAvG,eAAA,IACAF,eAAA,EACAN,WACAzwF,IAAA,EACAy3F,QAAA,UAAA91F,EAAA,OAAAkK,EACAmlF,MAAA,UAAArvF,QAAAkK,EACAs/E,SAAA,UAAAxpF,EAAAwpF,OAAAt/E,IAgBAkrF,EAAA14F,UAAA0sF,iBAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACAhtF,KAAAu5F,WAAA,EACAv5F,KAAAw5F,QAAA,EAEAx5F,KAAAy5F,UAAAb,EAAAQ,YAAA,QAAApM,GACAhtF,KAAA2yF,YAAAiG,EAAAQ,YAAA,QAAApM,GACAhtF,KAAA05F,UAAAd,EAAAQ,YAAA,MAAApM,GACAhtF,KAAA25F,UAAAf,EAAAQ,YAAA,OAAApM,GAGAhtF,KAAA45F,YAAA,KACA55F,KAAA65F,WAAA,KACA75F,KAAA85F,UAAA,KACA95F,KAAA8sF,aACA9sF,KAAA+sF,aACA/sF,KAAA+5F,UAAA/M,GASA4L,EAAA14F,UAAAwsF,eAAA,aAKAkM,EAAA14F,UAAAmsC,OAAA,SAAAv7B,EAAAi/E,EAAAI,EAAAC,GACA,IAAA5tF,OAAA,EACAX,EAAAiP,EAAA7P,OACA+4F,OAAA,EACAX,OAAA,EAEA32D,OAAA,EACAu3D,OAAA,EACAC,GAAA,EACAl6F,KAAAmwF,aACA,IAAAoJ,EAAAv5F,KAAAu5F,UACAY,EAAAn6F,KAAAy5F,UACAW,EAAAp6F,KAAA2yF,YACA0H,EAAAr6F,KAAA05F,UACAY,EAAAH,EAAAd,IACAkB,EAAAH,EAAAf,IACAmB,EAAAH,EAAAhB,IACAoB,EAAAz6F,KAAAw5F,OACAkB,EAAAP,EAAAQ,QACAC,EAAAR,EAAAO,QACA/W,EAAAyW,EAAAM,QACAE,EAAA76F,KAAA86F,UACAC,EAAA/6F,KAAAg7F,UACAC,EAAAj7F,KAAAk7F,UACAC,EAAAn7F,KAAAo7F,aAAA5wF,KAAAxK,MACAq7F,EAAAr7F,KAAAs7F,aAAA9wF,KAAAxK,MACAu7F,EAAAv7F,KAAAw7F,cAAAhxF,KAAAxK,MACAy7F,EAAAz7F,KAAA07F,aAAAlxF,KAAAxK,MAEAi5F,EAAAL,EAAAM,YAAApoF,GAMA,IAHAjP,MAAAo3F,GAAA,IAGAz2F,EAAAy2F,EAA4Bz2F,EAAAX,EAAaW,GAAA,IACzC,QAAAsO,EAAAtO,GAAA,CAMA,GALAw3F,KAAA,GAAAlpF,EAAAtO,EAAA,IAEA62F,IAAA,GAAAvoF,EAAAtO,EAAA,QAAAsO,EAAAtO,EAAA,IACA,GAAAsO,EAAAtO,EAAA,OAEA,GAGA,IAFAkgC,EAAAlgC,EAAA,EAAAsO,EAAAtO,EAAA,MAEAA,EAAA,IACA,cAGAkgC,EAAAlgC,EAAA,EAEA,OAAA62F,GACA,KAAAiB,EACAN,IACAU,IAAAT,EAAAgB,EAAAP,UAAAhtF,IAAAusF,EAAApI,KACAsJ,EAAAlB,GAAA,GAGAS,GAAyB5pF,QAAA+gB,KAAA,IAEzB6oE,IACAA,EAAA5pF,KAAAvP,KAAAuP,EAAAqyE,SAAAzgD,EAAAlgC,EAAA,MACAk4F,EAAA7oE,MAAArvB,EAAA,IAAAkgC,GAEA,MACA,KAAA63D,EACAP,IACAY,IAAAX,EAAAgB,EAAAL,UAAAltF,IAAAusF,EAAApI,MACAuI,EAAAvH,MACAwI,EAAApB,GAEAsB,EAAAtB,IAGAW,GAA2B9pF,QAAA+gB,KAAA,IAE3B+oE,IACAA,EAAA9pF,KAAAvP,KAAAuP,EAAAqyE,SAAAzgD,EAAAlgC,EAAA,MACAo4F,EAAA/oE,MAAArvB,EAAA,IAAAkgC,GAEA,MACA,KAAA83D,EACAR,IACApW,IAAAqW,EAAAgB,EAAArX,UAAAl2E,IAAAusF,EAAApI,KACA4J,EAAAxB,GAGArW,GAAyB9yE,QAAA+gB,KAAA,IAEzB+xD,IACAA,EAAA9yE,KAAAvP,KAAAuP,EAAAqyE,SAAAzgD,EAAAlgC,EAAA,MACAohF,EAAA/xD,MAAArvB,EAAA,IAAAkgC,GAEA,MACA,OACAs3D,IACAt3D,GAAA5xB,EAAA4xB,GAAA,GAGA+3D,EAAAz6F,KAAAw5F,OAAAqB,EAAA/pF,EAAA4xB,GACA,MACA,KAAA+3D,EACAT,IACAt3D,GAAA5xB,EAAA4xB,GAAA,GAGA,IAAAi5D,EAAAZ,EAAAjqF,EAAA4xB,GAAA,IAAA1iC,KAAA64F,cAAA+C,OAAA,IAAA57F,KAAA64F,cAAAgD,IAAA,MAAA77F,KAAA+4F,YAQAuB,EAAAqB,EAAAG,KACA,IACA3B,EAAAd,IAAAiB,IAGAC,EAAAoB,EAAAvO,OACA,IACAgN,EAAAf,IAAAkB,EACAH,EAAAvH,MAAA8I,EAAA9I,QAEA2H,EAAAmB,EAAAnJ,KACA,IACA6H,EAAAhB,IAAAmB,GAGAN,IAAAX,IACA9e,EAAA,EAAAj7E,IAAA,0BACA06F,GAAA,EAEA13F,EAAAy2F,EAAA,KAEAM,EAAAv5F,KAAAu5F,WAAA,EACA,MACA,QACA,UACA,MACA,QACAW,GAAA,QAIAl6F,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAAglE,OAAgE/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAA9K,mBAAAiM,OAAA,EAAArsB,OAAA,sCAIhE26B,IAAAT,EAAAgB,EAAAP,UAAAhtF,IAAAusF,EAAApI,KACAsJ,EAAAlB,GAAA,GACAE,EAAAQ,QAAA,MAGAR,EAAAQ,QAAAD,EAGAE,IAAAX,EAAAgB,EAAAL,UAAAltF,IAAAusF,EAAApI,KACAuI,EAAAvH,MACAwI,EAAApB,GAEAsB,EAAAtB,GAGAG,EAAAO,QAAA,OAEAC,KAAA/oE,MACA4oD,EAAA,EAAAj7E,IAAA,iEAIA46F,EAAAO,QAAAC,GAGAhX,IAAAqW,EAAAgB,EAAArX,UAAAl2E,IAAAusF,EAAApI,KACA4J,EAAAxB,GACAI,EAAAM,QAAA,MAGAN,EAAAM,QAAA/W,EAGA,MAAA5jF,KAAA+4F,UACA/4F,KAAAysF,QAAA8D,MAAA6J,EAAAD,EAAAE,EAAAr6F,KAAA25F,UAAA5J,EAAAI,EAAAC,GAEApwF,KAAA+7F,gBAAA3B,EAAAD,EAAAE,EAAAr6F,KAAA25F,UAAA5J,EAAAI,EAAAC,IAIAwI,EAAA14F,UAAA67F,gBAAA,SAAA3B,EAAA4B,EAAA3B,EAAA4B,EAAAlM,EAAAI,EAAAC,GACA,GAAAgK,EAAA9H,SAAA8H,EAAAvH,MAAA,CACA,IAAA8E,EAAA33F,KACAA,KAAA+4F,UAAAlB,kBAAAuC,EAAA9H,QAAA,aACAqF,EAAAuE,mBAAA9B,EAAA4B,EAAA3B,EAAA4B,EAAAlM,EAAAI,EAAAC,UAGApwF,KAAAk8F,mBAAA9B,EAAA4B,EAAA3B,EAAA4B,EAAAlM,EAAAI,EAAAC,IAIAwI,EAAA14F,UAAAg8F,mBAAA,SAAA9B,EAAA4B,EAAA3B,EAAA4B,EAAAlM,EAAAI,EAAAC,GACA,GAAA4L,EAAA1J,QAAA,CACA,IAAAqF,EAAA33F,KACAA,KAAA+4F,UAAAR,kBAAAyD,EAAA1J,QAAA,eACAqF,EAAAlL,QAAA8D,MAAA6J,EAAA4B,EAAA3B,EAAA4B,EAAAlM,EAAAI,EAAAC,UAGApwF,KAAAysF,QAAA8D,MAAA6J,EAAA4B,EAAA3B,EAAA4B,EAAAlM,EAAAI,EAAAC,IAIAwI,EAAA14F,UAAAi/C,QAAA,WACAn/C,KAAAm8F,SAAAn8F,KAAAo8F,cAAA1uF,EACA1N,KAAA+5F,UAAA,GAGAnB,EAAA14F,UAAA46F,UAAA,SAAAhqF,EAAA4xB,GAEA,UAAA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,KAIAk2D,EAAA14F,UAAA86F,UAAA,SAAAlqF,EAAA4xB,EAAA25D,EAAAC,GACA,IACAC,EAEAlD,OAAA,EACAtoF,GAAkBq8E,OAAA,EAAA0O,KAAA,EAAAtJ,KAAA,EAAAK,OAAA,GAQlB,IANA0J,EAAA75D,EAAA,IADA,GAAA5xB,EAAA4xB,EAAA,OAAA5xB,EAAA4xB,EAAA,IACA,EAKAA,GAAA,KAFA,GAAA5xB,EAAA4xB,EAAA,QAAA5xB,EAAA4xB,EAAA,KAGAA,EAAA65D,GAAA,CAEA,OADAlD,GAAA,GAAAvoF,EAAA4xB,EAAA,OAAA5xB,EAAA4xB,EAAA,GACA5xB,EAAA4xB,IACA,SAEA,IAAA45D,EAAA,CACA7hB,EAAA,EAAAj7E,IAAA,sBAAAsR,EAAA4xB,IACA,MAKA,SAEA,IAAA3xB,EAAAq8E,QACAr8E,EAAAq8E,MAAAiM,GAGA,MAGA,SAEA,IAAAtoF,EAAAyhF,MACAzhF,EAAAyhF,IAAA6G,GAGA,MAEA,SAEA,IAAAiD,EAAA,CACA7hB,EAAA,EAAAj7E,IAAA,sBAAAsR,EAAA4xB,IACA,MAKA,SAEA,IAAA3xB,EAAA+qF,MACA/qF,EAAA+qF,IAAAzC,GAGA,MAIA,OACA,OAEAgD,GAEW,IAAAtrF,EAAAq8E,QACXr8E,EAAAq8E,MAAAiM,EACAtoF,EAAA8hF,OAAA,GAHApY,EAAA,EAAAj7E,IAAA,2DAKA,MAEA,QACAi7E,EAAA,EAAA/kE,KAAA,iDACA,MAEA,QACA+kE,EAAA,EAAAj7E,IAAA,sBAAAsR,EAAA4xB,IAKAA,GAAA,OAAA5xB,EAAA4xB,EAAA,OAAA5xB,EAAA4xB,EAAA,IAEA,OAAA3xB,GAGA6nF,EAAA14F,UAAAg7F,UAAA,SAAAsB,GACA,IAAAz7F,EAAA,EACA07F,OAAA,EACAC,OAAA,EAEAC,OAAA,EACAC,OAAA,EACAjC,OAAA,EACAkC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAjsF,EAAA0rF,EAAA1rF,KAEA,IAAA0rF,GAAA,IAAAA,EAAA3qE,KACA,YAMA,KAAA/gB,EAAA,GAAA7P,OAAA,IAAA6P,EAAA7P,OAAA,IACA,IAAA+7F,EAAA,IAAA5Y,WAAAtzE,EAAA,GAAA7P,OAAA6P,EAAA,GAAA7P,QACA+7F,EAAAh4C,IAAAl0C,EAAA,IACAksF,EAAAh4C,IAAAl0C,EAAA,GAAAA,EAAA,GAAA7P,QACA6P,EAAA,GAAAksF,EACAlsF,EAAAxP,OAAA,KAKA,SAFAm7F,EAAA3rF,EAAA,IACA,SAAA2rF,EAAA,OAAAA,EAAA,GACA,CAIA,IAHAE,GAAAF,EAAA,OAAAA,EAAA,KAGAE,EAAAH,EAAA3qE,KAAA,EACA,YAIA,KADA6qE,EAAAD,EAAA,OAKAI,EAAA,cAAAJ,EAAA,IACA,aAAAA,EAAA,KACA,WAAAA,EAAA,KACA,SAAAA,EAAA,MACA,IAAAA,EAAA,QAEA,aAEAI,GAAA,YAEA,GAAAH,IACAI,EAAA,cAAAL,EAAA,KACA,aAAAA,EAAA,KACA,WAAAA,EAAA,KACA,SAAAA,EAAA,MACA,IAAAA,EAAA,QAEA,aAEAK,GAAA,YAEAD,EAAAC,EAAA,OACAriB,EAAA,EAAA/kE,KAAA3N,KAAAqC,OAAAyyF,EAAAC,GAAA,gDACAD,EAAAC,IAGAA,EAAAD,GAKAE,GAFAH,EAAAH,EAAA,IAEA,EAEAD,EAAA3qE,MAAAkrE,EAEApC,EAAA,IAAAvW,WAAAoY,EAAA3qE,MACA,QAAAqB,EAAA,EAAAiL,EAAArtB,EAAA7P,OAA4CiyB,EAAAiL,EAAajL,IAAA,CAEzD,IAAArxB,GADA46F,EAAA3rF,EAAAoiB,IACAixD,WACA,GAAA4Y,EAAA,CACA,GAAAA,EAAAl7F,EAAA,CAEAk7F,GAAAl7F,EACA,SAGA46F,IAAAtZ,SAAA4Z,GACAl7F,GAAAk7F,EACAA,EAAA,EAGApC,EAAA31C,IAAAy3C,EAAA17F,GACAA,GAAAc,EAMA,OAJA86F,IAEAA,GAAAC,EAAA,IAEc9rF,KAAA6pF,EAAA9I,IAAAgL,EAAAxK,IAAAyK,EAAAj7F,IAAA86F,GAEd,aAIA/D,EAAA14F,UAAA+8F,cAAA,SAAAnD,EAAAK,GACA,GAAAL,EAAArB,MAAAx3F,QAAA64F,EAAAvW,MAAA,CACA,IAAA+O,EAAA6H,EAAA7H,QACA4K,EAAA5K,EAAArxF,QAKAjB,KAAAggD,OAAAm9C,+BAAA,IAAArD,EAAA/vF,KAAAowF,EAAAiD,MAAAF,GAAAl9F,KAAAmwF,aACA2J,EAAAp4F,GAAAw7F,EACA5K,EAAA/wF,KAAAu4F,IAGAK,EAAAb,UAGAQ,EAAAjf,MAAA55E,QACAw5E,EAAA,EAAAj7E,IAAAs6F,EAAAjI,IAAA,IAAAiI,EAAAzH,IAAA,IAAAyH,EAAAjf,QAIA+d,EAAA14F,UAAAk7F,aAAA,SAAAnB,EAAArjB,GACA,IAAA/5D,EAAA7c,KAGAixF,EAAAjxF,KAAAy5F,UACAhB,EAAAz4F,KAAAq9F,cAAApD,EAAAnpF,MAEAwsF,OAAA,EACAxD,EAAA95F,KAAA85F,UACAv4F,OAAA,EACAg8F,GAAA,EACAx8F,OAAA,EACAk8F,EAAAj9F,KAAAi9F,cAAAzyF,KAAAxK,MACAw9F,EAAA,SAAAzzF,EAAA8nF,EAAAQ,EAAAxX,GACA,OAAc9wE,MAAA8nF,MAAAQ,MAAAoG,SAAA5d,UAGdof,EAAAnpF,KAAA,KAIAgpF,GAAArB,EAAAx3F,SAAAgwF,EAAAwM,WACAR,EAAAnD,EAAA7I,GACA6I,EAAA95F,KAAA85F,UAAA0D,GAAA,EAAAvD,EAAApI,IAAAoI,EAAA5H,IAAA,KAGAoG,EAAA3uF,QAAA,SAAAu0C,GACA,OAAAA,EAAA76C,MAEA,OACAjC,GAAA,EACAu4F,IACAA,EAAAj9E,EAAAi9E,UAAA0D,GAAA,EAAAvD,EAAApI,IAAAoI,EAAA5H,IAAA,KAOAyH,EAAAvW,OAAA,EACA,IAAAzyE,EAAAutC,EAAAvtC,KAEA,GAAAysF,GAAAzsF,EAAA7P,OAAA,GAEA,IAAAy8F,EAAA,IAAAtJ,EAAAtjF,GAAA8lF,gBAMA,IAAA8G,GAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,IACA5D,EAAA/vF,KAAA,GAGA,MAEA,OACAxI,GAAA,EAEAu4F,IACAA,EAAAj9E,EAAAi9E,UAAA0D,GAAA,EAAAvD,EAAApI,IAAAoI,EAAA5H,IAAA,KAOAyH,EAAA/vF,KAAA,EACA+vF,EAAAvW,OAAA,EACA,MAEA,OACAhiF,GAAA,GAKA+7F,EAAA,IAAAlJ,EAAAv3E,EAAAm6E,WAAA34C,EAAAvtC,QAGA2kF,YAOA,IALA,IAAAl/B,EAAA,EACAonC,EAAA,EACAC,GAAA,EACApoF,EAAA,GAEAooF,GAAAN,EAAA/I,eAAA,IACAh+B,EAAA,EACA,GAEAA,GADA/gD,EAAA8nF,EAAA7H,kBAEa,MAAAjgF,GAGbmoF,EAAA,EACA,GAEAA,GADAnoF,EAAA8nF,EAAA7H,kBAEa,MAAAjgF,GAIb,OAAA+gD,GAAA,IAAA+mC,EAAA/I,gBAKA,GAJAqJ,GAAA,EAIA,MAFAN,EAAA7H,YAKA,QAFA6H,EAAA5H,aAKA,gBAFA4H,EAAA3H,WAMA,OAHA2H,EAAA7H,YAGA,CACA,IAAAoI,EAAAP,EAAA7H,YAGAqI,EAAA,GAAAD,EACAE,GAAAF,EAHAP,EAAA7H,aAKA,IAAA10F,EAAA,EAAiCA,EAAA+8F,EAAc/8F,IAE/Cg9F,EAAAx8F,KAAA+7F,EAAA7H,aACAsI,EAAAx8F,KAAA+7F,EAAA7H,aACAsI,EAAAx8F,KAAA+7F,EAAA7H,aAGA54E,EAAAmhF,qBAAAnhF,EAAA88E,UAAArH,SAA2E9uF,KAAA,EAAAquF,IAAAoI,EAAApI,IAAAoM,MAAAF,UAK9D,GAAAJ,EAAAL,EAAA/I,eACb,IAAAxzF,EAAA,EAAyBA,EAAA48F,EAAiB58F,IAC1Cu8F,EAAA7H,YAIA,MAEA,OAOA,GANAl0F,GAAA,EACAg8F,GAAA,GAKAtM,EAAAmM,IAAA,CAEA,IAAAp9C,GADAs9C,EAAA,IAAAlJ,EAAA/1C,EAAAvtC,OACAilF,UACA9E,EAAAj4E,MAAAgnC,EAAAhnC,MACAi4E,EAAAh4E,OAAA+mC,EAAA/mC,OACAg4E,EAAA9+B,WAAAnS,EAAAmS,WACA8+B,EAAAmM,KAAA/+C,EAAAvtC,MACAmgF,EAAAjE,SAAAnwE,EAAAk9E,UACA,IAAAmE,EAAA7/C,EAAAvtC,KAAAqyE,SAAA,KACAgb,EAAA,QACA,IAAAp9F,EAAA,EAAuBA,EAAA,EAAOA,IAAA,CAC9B,IAAAkX,EAAAimF,EAAAn9F,GAAA6G,SAAA,IACAqQ,EAAAhX,OAAA,IACAgX,EAAA,IAAAA,GAGAkmF,GAAAlmF,EAEAg5E,EAAAzD,MAAA2Q,EAEA,MAEA,OACA58F,GAAA,EAKA0vF,EAAAmN,MACAnN,EAAAmN,KAAA//C,EAAAvtC,OAGA,MAEA,OACAvP,GAAA,EACA0vF,EAAAwM,UAAA,EACA3D,GACAmD,EAAAnD,EAAA7I,GAGA6I,EAAAj9E,EAAAi9E,UAAA0D,GAAA,EAAAvD,EAAApI,IAAAoI,EAAA5H,IAAA,IACA,MAEA,QACA9wF,GAAA,EACA,MACA,QACAA,GAAA,EACAu4F,IACAA,EAAAjf,OAAA,eAAAx8B,EAAA76C,KAAA,KAKAs2F,GAAAv4F,GACAu4F,EAAArB,MACAl3F,KAAA88C,KAIAu4B,GAAAkjB,IACAmD,EAAAnD,EAAA7I,GACAjxF,KAAA85F,UAAA,OAIAlB,EAAA14F,UAAA89F,qBAAA,SAAApyF,EAAAkF,GACA,IAAAjP,EAAA+J,EAAA3K,OACA,GAAAY,EAAA,GACA,GAAAiP,EAAA+gF,KAAAjmF,EAAA/J,EAAA,GAAAgwF,IACAjmF,EAAArK,KAAAuP,QAEA,QAAA4gB,EAAA7vB,EAAA,EAA+B6vB,GAAA,EAAUA,IACzC,GAAA5gB,EAAA+gF,IAAAjmF,EAAA8lB,GAAAmgE,IAAA,CACAjmF,EAAAtK,OAAAowB,EAAA,EAAA5gB,GACA,YAKAlF,EAAArK,KAAAuP,IAIA8nF,EAAA14F,UAAAm+F,gBAAA,WACA,IAAAvE,EAAA95F,KAAA85F,UACAwE,OAAA,EAEA,IAAAxE,GAAA,IAAAA,EAAArB,MAAAx3F,OAAA,CACA,IACAqxF,EADAtyF,KAAAy5F,UACAnH,QACAwH,EAAAxH,IAAArxF,OAAA,GAEA,GAAA64F,EAAA,CACA,IAAArB,EAAAqB,EAAArB,MACA6F,EAAA7F,IAAAx3F,OAAA,GAEA,OAAAq9F,GAGA1F,EAAA14F,UAAAm9F,cAAA,SAAAj+B,GACA,IAAAr+D,EAAA,EACAc,EAAAu9D,EAAA+kB,WACA58E,OAAA,EACAysC,OAAA,EACAi9C,EAAAjxF,KAAAy5F,UACA19C,EAAAk1C,EAAAsN,WAAA,EACAC,EAAAziD,EACA08C,KACAp6C,OAAA,EAEAogD,GAAA,EACAC,OAAA,EAYA,KATA,IAAA3iD,IAEA0iD,EAAA,EAEAC,EAAA,GAAAt/B,EAAA,GACArjB,EAAA,EACAh7C,EAAA,GAGAA,EAAAc,GAGA,GAFA0F,EAAA63D,EAAAr+D,KAEAg7C,EAIA,OAAAA,EAKA,GAAAx0C,EAEO,OAAAA,EAAA,CACP,GAAAk3F,GAAA,EACApgD,GAAkBvtC,KAAAsuD,EAAA+jB,SAAAsb,EAAA19F,EAAAg7C,EAAA,GAAAv4C,KAAAk7F,GAElBjG,EAAAl3F,KAAA88C,OACS,CAKT,IAAAigD,EAAAt+F,KAAAq+F,kBACA,GAAAC,IACAE,GAAAz9F,GAAA,EAAAy9F,GAIAF,EAAAviD,QAEAuiD,EAAAxtF,KAAAwtF,EAAAxtF,KAAAqyE,SAAA,EAAAmb,EAAAxtF,KAAAqzE,WAAAqa,KAIAxqD,EAAAjzC,EAAAg7C,EAAA,GACA,IAEA,IAAA2zB,EAAA,IAAA0U,WAAAka,EAAAxtF,KAAAqzE,WAAAnwC,GACA07B,EAAA1qB,IAAAs5C,EAAAxtF,KAAA,GACA4+D,EAAA1qB,IAAAoa,EAAA+jB,SAAA,EAAAnvC,GAAAsqD,EAAAxtF,KAAAqzE,YACAma,EAAAxtF,KAAA4+D,GAKA3uE,EAAAc,GAGA48F,EAAA19F,EACA29F,EAHA,GAAAt/B,EAAAr+D,GAIAg7C,EAAA,GAGAA,GAAA,OAGAA,EAAA,OA7CAA,EAAA,OALAA,EAAAx0C,EAAA,SAJAw0C,EAAAx0C,EAAA,IA+DA,GANAk3F,GAAA,GAAA1iD,GAAA,IACAsC,GAAcvtC,KAAAsuD,EAAA+jB,SAAAsb,EAAA58F,GAAA2B,KAAAk7F,EAAA3iD,SACd08C,EAAAl3F,KAAA88C,IAIA,IAAAo6C,EAAAx3F,OAAA,CAEA,IAAA09F,EAAA3+F,KAAAq+F,kBACA,GAAAM,EAAA,CACA,IAAAC,EAAA,IAAAxa,WAAAua,EAAA7tF,KAAAqzE,WAAA/kB,EAAA+kB,YACAya,EAAA55C,IAAA25C,EAAA7tF,KAAA,GACA8tF,EAAA55C,IAAAoa,EAAAu/B,EAAA7tF,KAAAqzE,YACAwa,EAAA7tF,KAAA8tF,GAIA,OADA3N,EAAAsN,UAAAxiD,EACA08C,GAQAG,EAAA14F,UAAA82F,WAAA,SAAAlmF,GAQA,IAPA,IAGA+tF,EAHA59F,EAAA6P,EAAAqzE,WACA2a,KACA/9F,EAAA,EAEAi8F,OAAA,EAGAj8F,EAAAE,EAAA,GACA,IAAA6P,EAAA/P,IAAA,IAAA+P,EAAA/P,EAAA,QAAA+P,EAAA/P,EAAA,IACA+9F,EAAAv9F,KAAAR,EAAA,GACAA,GAAA,GAEAA,IAMA,OAAA+9F,EAAA79F,OACA,OAAA6P,EAIA+tF,EAAA59F,EAAA69F,EAAA79F,OACA+7F,EAAA,IAAA5Y,WAAAya,GACA,IAAAE,EAAA,EAEA,IAAAh+F,EAAA,EAAeA,EAAA89F,EAAeE,IAAAh+F,IAC9Bg+F,IAAAD,EAAA,KAEAC,IAEAD,EAAAtxD,SAEAwvD,EAAAj8F,GAAA+P,EAAAiuF,GAEA,OAAA/B,GAGApE,EAAA14F,UAAAo7F,aAAA,SAAArB,GACA,IAMAjI,EAIAnwF,EAVAovF,EAAAjxF,KAAA2yF,YACA7hF,EAAAmpF,EAAAnpF,KACA+gF,EAAAoI,EAAApI,IAEA+H,EAAA55F,KAAA45F,YACAC,EAAA75F,KAAA65F,WAEA/H,OAAA,EACApvD,OAAA,EACAwvD,OAAA,EAEA,GAAA0H,EAAA,CACA,IAAAlqB,EAAA,IAAA0U,WAAAwV,EAAAzV,WAAArzE,EAAAqzE,YACAzU,EAAA1qB,IAAA40C,EAAA,GACAlqB,EAAA1qB,IAAAl0C,EAAA8oF,EAAAzV,YAEArzE,EAAA4+D,EAGA,IAAAhtC,EAhBA,EAgBA7gC,EAAAiP,EAAA7P,OAAiDyhC,EAAA7gC,EAAA,IACjDihF,EAAAhyE,EAAA4xB,GADmEA,KAMnE,GAAAA,EAAA,CACA,IAAAq9B,OAAA,EACAqsB,OAAA,EAUA,GATA1pD,EAAA7gC,EAAA,GACAk+D,EAAA,iDAAAr9B,EACA0pD,GAAA,IAEArsB,EAAA,kCACAqsB,GAAA,GAEA3R,EAAA,EAAA/kE,KAAA,iBAAAqqD,GACA//D,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAAglE,OAA8D/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAA9K,mBAAAiM,QAAArsB,WAC9DqsB,EACA,OAUA,GANA4E,EAAAC,EAAAjxF,KAAA8mD,SAAAh2C,EAAA4xB,EAAA1iC,KAAA8sF,YACAgF,EAAA,EACAE,EAAAL,EAAAV,EAAAC,YAIA0I,GAAAC,EAAA,CACA,IAAAmF,EAAAnF,EAAA7H,EACAjqF,KAAAY,IAAAq2F,EAAAnN,GAAA,IACApX,EAAA,EAAAj7E,IAAA,4CAAAuI,KAAAqC,OAAA40F,EAAAnN,GAAA,KACAA,EAAAmN,GAKA,KAAAt8D,EAAA7gC,GACA,GAAAihF,EAAAhyE,EAAA4xB,MAAA,EAAA7gC,EAAA,CACA,IAAA0hF,EAAAqO,EAAAX,EAAAngF,EAAA4xB,EAAAmvD,EAAAC,GACA,IAAAvO,EAOA,MALA7gD,GAAA6gD,EAAAtiF,OACAixF,EAAA3O,EAAAgP,OAAAV,IACAC,SAOApvD,IAKAk3D,EADAl3D,EAAA7gC,EACAiP,EAAAqyE,SAAAzgD,EAAA7gC,GAGA,KAGA7B,KAAA45F,cACA55F,KAAA65F,WAAA3H,GAGA0G,EAAA14F,UAAAs7F,cAAA,SAAAvB,GAOA,IANA,IAAAnpF,EAAAmpF,EAAAnpF,KACA7P,EAAA6P,EAAA7P,OACA6wF,EAAA,EACApvD,EAAA,EACAmvD,EAAAoI,EAAApI,IAEAnvD,EAAAzhC,GACA,GAAAkzF,EAAArR,SAAAhyE,EAAA4xB,GAAA,CACA,IAAA6gD,EAAA4Q,EAAAvC,YAAA5xF,KAAA2yF,YAAA7hF,EAAA4xB,EAAAmvD,EAAAC,GACA,IAAAvO,EAKA,MAJA7gD,GAAA6gD,EAAAtiF,OACA6wF,SAOApvD,KAKAk2D,EAAA14F,UAAAw7F,aAAA,SAAAzB,GACAj6F,KAAA05F,UAAApH,QAAA/wF,KAAA04F,IAGArB,EA5iCA,GA0jCA,IA8EAqG,EA9EA,WACA,SAAAC,EAAAp4C,EAAA2lC,EAAAzsC,IAVA,SAAAT,EAAAqjC,GAA4D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAWtGm7C,CAAAn/F,KAAAk/F,GAEAl/F,KAAA8mD,WACA9mD,KAAAggD,SACAhgD,KAAAysF,UAqEA,OAlEAyS,EAAAh/F,UAAA0sF,iBAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACAhtF,KAAA2yF,aAAwBpF,UAAA,aAAA/pF,KAAA,QAAA9B,IAAA,EAAAkxF,eAAA,EAAAC,OAAA,EAAAP,WAAAzwF,IAAA,EAAA0vF,cAAAzE,EAAAE,WAAA8F,eAAA,MAGxBoM,EAAAh/F,UAAAwsF,eAAA,aAEAwS,EAAAzR,MAAA,SAAA38E,GAEA,IAAA4xB,OAAA,EACAzhC,OAAA,EACA2iF,EAAA4O,EAAA,EAAAxP,WAAAlyE,EAAA,GACA,GAAA8yE,QAAAl2E,IAAA8kF,EAAA,EAAApP,aAAAQ,GAIA,IAAAlhD,EAAAkhD,EAAA3iF,SAAA8G,KAAAC,IAAA8I,EAAA7P,OAAA,EAAAyhC,EAAA,KAAqFA,EAAAzhC,EAAiByhC,IACtG,GAAAyxD,EAAA1G,MAAA38E,EAAA4xB,GAEA,OADA+3C,EAAA,EAAAj7E,IAAA,iCACA,EAIA,UAMA0/F,EAAAh/F,UAAAmsC,OAAA,SAAAv7B,EAAAi/E,EAAAI,EAAAC,GAYA,IAXA,IAAAxM,EAAA4O,EAAA,EAAAxP,WAAAlyE,EAAA,GACAwzE,EAAAkO,EAAA,EAAApP,aAAAQ,GACAiO,EAAAvN,EAAA,GAAAA,EAAA,IAAAyL,EACArtD,EAAAkhD,EAAA3iF,OACAA,EAAA6P,EAAA7P,OACA6wF,EAAA,EACAI,EAAA,EACAjB,EAAAjxF,KAAA2yF,YAEAI,IAAuBlB,MAAAQ,IAAAR,EAAA/gF,KAAA8yE,IAEvBlhD,EAAAzhC,GACA,GAAAkzF,EAAArR,SAAAhyE,EAAA4xB,GAAA,CACA,IAAA6gD,EAAA4Q,EAAAvC,YAAAX,EAAAngF,EAAA4xB,EAAAmvD,EAAAC,GACA,IAAAvO,EAMA,MALA7gD,GAAA6gD,EAAAtiF,OACAixF,EAAA3O,EAAAgP,OAAAV,IACAC,SAKOU,EAAA,EAAA1P,SAAAhyE,EAAA4xB,IACPkhD,EAAA4O,EAAA,EAAAxP,WAAAlyE,EAAA4xB,GACAqwD,EAAAxxF,MAAyBswF,IAAAK,EAAAG,IAAAH,EAAAphF,KAAA8yE,IACzBlhD,GAAAkhD,EAAA3iF,QAGAyhC,IAIA1iC,KAAAysF,QAAA8D,MAAAU,GAA+BqB,aAAiBA,QAAAS,EAAAD,eAAA,MAAgDR,YAAcvC,EAAAI,EAAAC,IAG9G8O,EAAAh/F,UAAAi/C,QAAA,aAEA+/C,EA3EA,GAsFA,IA2CAE,EA3CA,WACA,SAAAC,KAPA,SAAA9/C,EAAAqjC,GAA4D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAQtGs7C,CAAAt/F,KAAAq/F,GAsCA,OAnCAA,EAAAE,eAAA,SAAA/R,EAAAiE,GACA,OAAAjE,GACA,gBACA,OAAAiE,EACA,WAAArN,YAAA,qBACS,OAAAqN,EACT,WAAArN,YAAA,4BACS,OAAAqN,EACT,WAAArN,YAAA,yCACS,OAAAqN,EACT,WAAArN,YAAA,uDACS,OAAAqN,EACT,WAAArN,YAAA,gEACS,OAAAqN,EACT,WAAArN,YAAA,8EAGA,MAEA,QACA,OAAAqN,EAEA,WAAArN,YAAA,oLACS,OAAAqN,EAET,WAAArN,YAAA,mLACS,OAAAqN,EAET,WAAArN,YAAA,mLAIA,aAGAib,EAxCA,GAmDA,IAAA9S,EAAAxkF,KAAAI,IAAA,QAmfAq3F,EAjfA,WACA,SAAAC,KATA,SAAAlgD,EAAAqjC,GAA+D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAUzG07C,CAAA1/F,KAAAy/F,GA4eA,OAzeAA,EAAAjhF,KAAA,WACAihF,EAAAE,OACAC,QACAC,QACAC,QACAC,QACAC,QACAC,QACAC,QACA/Q,QACAgR,QACAjR,QACAkR,QACAC,QACAC,QACAC,QACApS,QACAqS,QACAC,UACAC,QACAC,QACAC,QACAC,QACAC,QACAC,QACAC,QACAC,QACAC,QACAC,QACAtR,QACAD,QACAD,QACAZ,QACAqS,QACAC,QACArS,QACAsS,QACAC,SAGA,IAAAxgG,OAAA,EACA,IAAAA,KAAA0+F,EAAAE,MACAF,EAAAE,MAAA98F,eAAA9B,KACA0+F,EAAAE,MAAA5+F,MAAAygG,WAAA,GAAAzgG,EAAAygG,WAAA,GAAAzgG,EAAAygG,WAAA,GAAAzgG,EAAAygG,WAAA,KAIA,IAAAC,EAAA,IAAArd,YAAA,EACA,MACA,QACA,gBACA,QACA,QACA,QACA,iDAGAsd,EAAA,IAAAtd,YAAA,EACA,MACA,QACA,gBACA,QACA,QACA,QACA,iDAGAqb,EAAAkC,YACAtU,MAAAoU,EACArU,MAAAsU,GAGA,IAAA1B,EAAA,IAAA5b,YAAA,EACA,MACA,QACA,SACA,eACA,EACA,QAGA2c,EAAA,IAAA3c,YAAA,EACA,MACA,UAGAqb,EAAAmC,KAAAnC,EAAAoC,KAAApC,EAAAqC,KAAAf,EAEAtB,EAAAsC,KAAA,IAAA3d,YAAA,EACA,MACA,QACA,UAEAqb,EAAAuC,KAAA,IAAA5d,YAAA,EACA,MACA,IACA,cAEAqb,EAAAwC,KAAA,IAAA7d,YAAA,EACA,MACA,IACA,MAGAqb,EAAAyC,KAAA,IAAA9d,YAAA,EACA,MACA,UAEA,IAAA+d,EAAA,IAAA/d,YAAA,kBACAge,EAAA,IAAAhe,YAAA,eACAie,EAAA,IAAAje,YAAA,UAEAqb,EAAA6C,KAAA7C,EAAA8C,IAAA9C,EAAAE,MAAAO,KAAAiC,EAAAE,EAAAF,EAAAC,GACA3C,EAAA+C,KAAA/C,EAAA8C,IAAA9C,EAAAE,MAAAI,KAAAN,EAAA8C,IAAA9C,EAAAE,MAAAK,UAGAP,EAAA8C,IAAA,SAAA/+F,GAOA,IANA,IAAAogC,EAAA/3B,MAAA3L,UAAAoC,MAAAoJ,KAAA5G,UAAA,GACA+sB,EAAA,EACA9wB,EAAA6iC,EAAA3iC,OACAY,EAAAd,EACAgQ,OAAA,EAEAhQ,KACA8wB,GAAA+R,EAAA7iC,GAAAojF,WAUA,KAPApzE,EAAA,IAAAqzE,WAAAvyD,IACA,GAAAA,GAAA,OACA9gB,EAAA,GAAA8gB,GAAA,OACA9gB,EAAA,GAAA8gB,GAAA,MACA9gB,EAAA,OAAA8gB,EACA9gB,EAAAi0C,IAAAxhD,EAAA,GAEAzC,EAAA,EAAA8wB,EAAA,EAAyB9wB,EAAAc,EAASd,IAElCgQ,EAAAi0C,IAAAphB,EAAA7iC,GAAA8wB,GACAA,GAAA+R,EAAA7iC,GAAAojF,WAEA,OAAApzE,GAGA0uF,EAAAtQ,KAAA,SAAA3rF,GACA,OAAAi8F,EAAA8C,IAAA9C,EAAAE,MAAAxQ,KAAAsQ,EAAAkC,WAAAn+F,KAGAi8F,EAAAU,KAAA,SAAArvF,GACA,OAAA2uF,EAAA8C,IAAA9C,EAAAE,MAAAQ,KAAArvF,IAGA2uF,EAAAvQ,KAAA,SAAAX,EAAAvB,GACAA,GAAAuB,EACA,IAAAkU,EAAA16F,KAAAkwC,MAAA+0C,GAAAT,EAAA,IACAmW,EAAA36F,KAAAkwC,MAAA+0C,GAAAT,EAAA,IACA,OAAAkT,EAAA8C,IAAA9C,EAAAE,MAAAzQ,KAAA,IAAA9K,YAAA,EACA,MACA,gBACA,gBACAmK,GAAA,OAAAA,GAAA,OAAAA,GAAA,UAAAA,EACAkU,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,EAAAC,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,EAAA,OACA,QAGAjD,EAAAW,KAAA,SAAAnP,GACA,OAAAwO,EAAA8C,IAAA9C,EAAAE,MAAAS,KAAAX,EAAAvQ,KAAA+B,EAAA1C,UAAA0C,EAAAjE,UAAAyS,EAAAtQ,KAAA8B,EAAAztF,MAAAi8F,EAAAa,KAAArP,KAGAwO,EAAAY,KAAA,SAAAzN,GACA,OAAA6M,EAAA8C,IAAA9C,EAAAE,MAAAU,KAAA,IAAAjc,YAAA,QACAwO,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,MAIA6M,EAAAa,KAAA,SAAArP,GACA,gBAAAA,EAAAztF,KACAi8F,EAAA8C,IAAA9C,EAAAE,MAAAW,KAAAb,EAAA8C,IAAA9C,EAAAE,MAAA4B,KAAA9B,EAAAwC,MAAAxC,EAAA+C,KAAA/C,EAAAqB,KAAA7P,IAEAwO,EAAA8C,IAAA9C,EAAAE,MAAAW,KAAAb,EAAA8C,IAAA9C,EAAAE,MAAA2B,KAAA7B,EAAAuC,MAAAvC,EAAA+C,KAAA/C,EAAAqB,KAAA7P,KAIAwO,EAAAc,KAAA,SAAAoC,EAAA3S,EAAAiB,GACA,OAAAwO,EAAA8C,IAAA9C,EAAAE,MAAAY,KAAAd,EAAAY,KAAAsC,GAAAlD,EAAA9P,KAAAsB,EAAAjB,KAOAyP,EAAAtR,KAAA,SAAAhB,GAIA,IAHA,IAAApsF,EAAAosF,EAAAlsF,OACA2hG,KAEA7hG,KACA6hG,EAAA7hG,GAAA0+F,EAAA1Q,KAAA5B,EAAApsF,IAGA,OAAA0+F,EAAA8C,IAAAh2F,MAAA,MAAAkzF,EAAAE,MAAAxR,KAAAsR,EAAAkB,KAAAxT,EAAA,GAAAoB,UAAApB,EAAA,GAAAH,WAAAj4E,OAAA6tF,GAAA7tF,OAAA0qF,EAAAiB,KAAAvT,MAGAsS,EAAAiB,KAAA,SAAAvT,GAIA,IAHA,IAAApsF,EAAAosF,EAAAlsF,OACA2hG,KAEA7hG,KACA6hG,EAAA7hG,GAAA0+F,EAAA4B,KAAAlU,EAAApsF,IAGA,OAAA0+F,EAAA8C,IAAAh2F,MAAA,MAAAkzF,EAAAE,MAAAe,MAAA3rF,OAAA6tF,KAGAnD,EAAAkB,KAAA,SAAApS,EAAAvB,GACAA,GAAAuB,EACA,IAAAkU,EAAA16F,KAAAkwC,MAAA+0C,GAAAT,EAAA,IACAmW,EAAA36F,KAAAkwC,MAAA+0C,GAAAT,EAAA,IACA0R,EAAA,IAAA7Z,YAAA,EACA,MACA,gBACA,gBACAmK,GAAA,OAAAA,GAAA,OAAAA,GAAA,UAAAA,EACAkU,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,EAAAC,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,EAAA,QACA,IACA,IACA,QACA,QACA,yEACA,gDACA,kBAEA,OAAAjD,EAAA8C,IAAA9C,EAAAE,MAAAgB,KAAA1C,IAGAwB,EAAAoB,KAAA,SAAA5P,GACA,IAAAqB,EAAArB,EAAAqB,YACA2L,EAAA,IAAA7Z,WAAA,EAAAkO,EAAArxF,QACA4hG,OAAA,EACA9hG,OAAA,EAGA,IAAAA,EAAA,EAAeA,EAAAuxF,EAAArxF,OAAoBF,IACnC8hG,EAAAvQ,EAAAvxF,GAAA8hG,MACA5E,EAAAl9F,EAAA,GAAA8hG,EAAAC,WAAA,EAAAD,EAAAE,cAAA,EAAAF,EAAAG,cAGA,OAAAvD,EAAA8C,IAAA9C,EAAAE,MAAAkB,KAAA5C,IAGAwB,EAAAqB,KAAA,SAAA7P,GACA,OAAAwO,EAAA8C,IAAA9C,EAAAE,MAAAmB,KAAArB,EAAAwB,KAAAhQ,GAAAwO,EAAA8C,IAAA9C,EAAAE,MAAAwB,KAAA1B,EAAAmC,MAAAnC,EAAA8C,IAAA9C,EAAAE,MAAAqB,KAAAvB,EAAAoC,MAAApC,EAAA8C,IAAA9C,EAAAE,MAAAuB,KAAAzB,EAAAsC,MAAAtC,EAAA8C,IAAA9C,EAAAE,MAAAoB,KAAAtB,EAAAqC,QAGArC,EAAAG,KAAA,SAAA3O,GACA,IAAAmM,KACAgB,KACAr9F,OAAA,EACA+P,OAAA,EACAjP,OAAA,EAGA,IAAAd,EAAA,EAAeA,EAAAkwF,EAAAmM,IAAAn8F,OAAsBF,IAErCc,GADAiP,EAAAmgF,EAAAmM,IAAAr8F,IACAojF,WACAiZ,EAAA77F,KAAAM,IAAA,OACAu7F,EAAA77F,KAAA,IAAAM,GAGAu7F,IAAAroF,OAAAlJ,MAAA3L,UAAAoC,MAAAoJ,KAAAoF,IAIA,IAAA/P,EAAA,EAAeA,EAAAkwF,EAAAmN,IAAAn9F,OAAsBF,IAErCc,GADAiP,EAAAmgF,EAAAmN,IAAAr9F,IACAojF,WACAia,EAAA78F,KAAAM,IAAA,OACAu8F,EAAA78F,KAAA,IAAAM,GAEAu8F,IAAArpF,OAAAlJ,MAAA3L,UAAAoC,MAAAoJ,KAAAoF,IAGA,IAAAmyF,EAAAxD,EAAA8C,IAAA9C,EAAAE,MAAAE,KAAA,IAAAzb,YAAA,EACAgZ,EAAA,GACAA,EAAA,GACAA,EAAA,GACA,IACA,IAAAnM,EAAAmM,IAAAn8F,QACA8T,OAAAqoF,GAAAroF,QAAAk8E,EAAAmN,IAAAn9F,SACA8T,OAAAqpF,KAEAplF,EAAAi4E,EAAAj4E,MACAC,EAAAg4E,EAAAh4E,OACAiqF,EAAAjS,EAAA9+B,WAAA,GACAgxC,EAAAlS,EAAA9+B,WAAA,GAEA,OAAAstC,EAAA8C,IAAA9C,EAAAE,MAAAC,KAAA,IAAAxb,YAAA,MACA,MACA,IACA,IACA,IACA,wBACAprE,GAAA,UAAAA,EACAC,GAAA,UAAAA,EACA,SACA,SACA,QACA,IACA,kBACA,gFACA,KACA,QACAgqF,EAAAxD,EAAA8C,IAAA9C,EAAAE,MAAAG,KAAA,IAAA1b,YAAA,aACA,aACA,gBACAqb,EAAA8C,IAAA9C,EAAAE,MAAAiB,KAAA,IAAAxc,YAAA8e,GAAA,GACAA,GAAA,OAAAA,GAAA,UAAAA,EAAAC,GAAA,GACAA,GAAA,OAAAA,GAAA,UAAAA,OAGA1D,EAAAQ,KAAA,SAAAhP,GACA,IAAAmS,EAAAnS,EAAAjxC,OAAA/+C,OACA,WAAAmjF,YAAA,EACA,MAEA,EACA,GAAAgf,EACA,IACA,EAEA,EACA,GAAAA,EACA,GACA,GACA,MACA,QACA,QAEA,GACAruF,QAAAquF,IAAAruF,OAAAk8E,EAAAjxC,QAAAjrC,QAAA,UAGA0qF,EAAAe,KAAA,SAAAvP,GACA,IAAAC,EAAAD,EAAAC,WACA,OAAAuO,EAAA8C,IAAA9C,EAAAE,MAAAa,KAAA,IAAApc,YAAA,MACA,MACA,IACA,gBACA,EAAA6M,EAAAQ,aACA,KACA,QACAP,GAAA,UAAAA,EACA,MAAAuO,EAAA8C,IAAA9C,EAAAE,MAAAM,KAAAR,EAAAQ,KAAAhP,MAGAwO,EAAA5D,IAAA,SAAA5K,GACA,IAAAC,EAAAD,EAAAC,WACA,OAAAuO,EAAA8C,IAAA9C,EAAAE,MAAA,YAAAvb,YAAA,MACA,MACA,IACA,gBACA,EAAA6M,EAAAQ,aACA,KACA,QACAP,GAAA,UAAAA,EACA,QAGAuO,EAAAwB,KAAA,SAAAhQ,GACA,gBAAAA,EAAAztF,KACAytF,EAAA4B,OAAA,QAAA5B,EAAAzD,MAIAiS,EAAA8C,IAAA9C,EAAAE,MAAAsB,KAAAxB,EAAAyC,KAAAzC,EAAAe,KAAAvP,IAHAwO,EAAA8C,IAAA9C,EAAAE,MAAAsB,KAAAxB,EAAAyC,KAAAzC,EAAA5D,IAAA5K,IAKAwO,EAAA8C,IAAA9C,EAAAE,MAAAsB,KAAAxB,EAAAyC,KAAAzC,EAAAG,KAAA3O,KAIAwO,EAAAzQ,KAAA,SAAAiC,GACA,IAAAvvF,EAAAuvF,EAAAvvF,GACAsrF,EAAAiE,EAAAjE,SAAAiE,EAAA1C,UACAv1E,EAAAi4E,EAAAj4E,MACAC,EAAAg4E,EAAAh4E,OACAwpF,EAAA16F,KAAAkwC,MAAA+0C,GAAAT,EAAA,IACAmW,EAAA36F,KAAAkwC,MAAA+0C,GAAAT,EAAA,IACA,OAAAkT,EAAA8C,IAAA9C,EAAAE,MAAA3Q,KAAA,IAAA5K,YAAA,EACA,MACA,gBACA,gBACA1iF,GAAA,OAAAA,GAAA,OAAAA,GAAA,UAAAA,EACA,QACA+gG,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,EAAAC,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,EAAA,gBACA,IACA,IACA,IACA,IACA,yEACA1pF,GAAA,UAAAA,EAAA,IACAC,GAAA,UAAAA,EAAA,QAIAwmF,EAAA9P,KAAA,SAAAsB,EAAAjB,GACA,IAAAqT,EAAA5D,EAAAoB,KAAA5P,GACAvvF,EAAAuvF,EAAAvvF,GACA4hG,EAAAv7F,KAAAkwC,MAAA+3C,GAAAzD,EAAA,IACAgX,EAAAx7F,KAAAkwC,MAAA+3C,GAAAzD,EAAA,IACA,OAAAkT,EAAA8C,IAAA9C,EAAAE,MAAAhQ,KAAA8P,EAAA8C,IAAA9C,EAAAE,MAAA/P,KAAA,IAAAxL,YAAA,EACA,MACA1iF,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,KACA+9F,EAAA8C,IAAA9C,EAAAE,MAAA9P,KAAA,IAAAzL,YAAA,EACA,MACAkf,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,EAAAC,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,KAAA9D,EAAA2B,KAAAnQ,EAAAoS,EAAApiG,OAAA,GACA,GACA,EACA,GACA,EACA,GACAoiG,IAUA5D,EAAA1Q,KAAA,SAAAkC,GAEA,OADAA,EAAAjE,SAAAiE,EAAAjE,UAAA,WACAyS,EAAA8C,IAAA9C,EAAAE,MAAA5Q,KAAA0Q,EAAAzQ,KAAAiC,GAAAwO,EAAAW,KAAAnP,KAGAwO,EAAA4B,KAAA,SAAApQ,GACA,IAAAvvF,EAAAuvF,EAAAvvF,GACA,OAAA+9F,EAAA8C,IAAA9C,EAAAE,MAAA0B,KAAA,IAAAjd,YAAA,EACA,MACA1iF,GAAA,GAAAA,GAAA,OAAAA,GAAA,UAAAA,EACA,QACA,QACA,QACA,YAIA+9F,EAAA2B,KAAA,SAAAnQ,EAAAvuD,GACA,IAAA4vD,EAAArB,EAAAqB,YACAzwF,EAAAywF,EAAArxF,OACAuiG,EAAA,MAAA3hG,EACAu9D,EAAA,IAAAglB,WAAAof,GACAziG,OAAA,EACAwxF,OAAA,EACAvF,OAAA,EACAn7D,OAAA,EACAgxE,OAAA,EACAY,OAAA,EAOA,IANA/gE,GAAA,EAAA8gE,EACApkC,EAAApa,KAAA,EACA,OACAnjD,IAAA,OAAAA,IAAA,OAAAA,IAAA,UAAAA,EACA6gC,IAAA,OAAAA,IAAA,OAAAA,IAAA,UAAAA,GACA,GACA3hC,EAAA,EAAeA,EAAAc,EAASd,IAExBisF,GADAuF,EAAAD,EAAAvxF,IACAisF,SACAn7D,EAAA0gE,EAAA1gE,KACAgxE,EAAAtQ,EAAAsQ,MACAY,EAAAlR,EAAAkR,IACArkC,EAAApa,KAAAgoC,IAAA,OAAAA,IAAA,OAAAA,IAAA,UAAAA,EACAn7D,IAAA,OAAAA,IAAA,OAAAA,IAAA,UAAAA,EACAgxE,EAAAa,WAAA,EAAAb,EAAAC,UAAAD,EAAAE,cAAA,EAAAF,EAAAG,eAAA,EAAAH,EAAAc,cAAA,EAAAd,EAAAe,UAAA,MAAAf,EAAAgB,WAAA,GAAAhB,EAAAgB,WACAJ,IAAA,OAAAA,IAAA,OAAAA,IAAA,UAAAA,GACA,MAAA1iG,GAEA,OAAA0+F,EAAA8C,IAAA9C,EAAAE,MAAAyB,KAAAhiC,IAGAqgC,EAAA5S,YAAA,SAAAM,GACAsS,EAAAE,OACAF,EAAAjhF,OAGA,IAAAslF,EAAArE,EAAAtR,KAAAhB,GACAp8E,OAAA,EAIA,OAHAA,EAAA,IAAAqzE,WAAAqb,EAAA6C,KAAAne,WAAA2f,EAAA3f,aACAn/B,IAAAy6C,EAAA6C,MACAvxF,EAAAi0C,IAAA8+C,EAAArE,EAAA6C,KAAAne,YACApzE,GAGA0uF,EA9eA,GAkgBA,IA6yBAsE,EA3yBA,WACA,SAAAC,EAAAl9C,EAAA9G,EAAA64C,EAAAoL,IAlBA,SAAA1kD,EAAAqjC,GAA6D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAmBvGkgD,CAAAlkG,KAAAgkG,GAEAhkG,KAAA8mD,WACA9mD,KAAAggD,SACAhgD,KAAA64F,gBACA,IAAA/5C,EAAAD,UAAAC,UACA9+C,KAAAmkG,SAAAF,KAAAnkG,QAAA,aAAAg/C,MAAA31C,MAAA,SACAnJ,KAAAokG,aAAA,EA+xBA,OA5xBAJ,EAAA9jG,UAAAi/C,QAAA,aAEA6kD,EAAA9jG,UAAAwsF,eAAA,SAAA2X,GACArkG,KAAAm8F,SAAAn8F,KAAAo8F,SAAAiI,GAGAL,EAAA9jG,UAAA0sF,iBAAA,WACA5sF,KAAAokG,aAAA,GAGAJ,EAAA9jG,UAAAqwF,MAAA,SAAA6J,EAAA4B,EAAA3B,EAAA4B,EAAAlM,EAAAI,EAAAC,GAMA,GAJApwF,KAAAokG,aACApkG,KAAAskG,WAAAlK,EAAA4B,EAAAjM,GAGA/vF,KAAAokG,YAAA,CACA,IAAAG,EAAAnK,EAAA9H,QAAArxF,OACAujG,EAAAxI,EAAA1J,QAAArxF,OACAwjG,EAAA1U,EACA2U,EAAA3U,EACA,GAAAwU,GAAAC,EAAA,CAKA,IAAAG,GAAAvK,EAAA9H,QAAA,GAAAD,IAAA2J,EAAA1J,QAAA,GAAAD,KAAA2J,EAAAlJ,eACA2R,GAAA18F,KAAAE,IAAA,EAAA08F,GACAD,GAAA38F,KAAAE,IAAA,GAAA08F,GAKA,GAAAJ,EAAA,CAEAnK,EAAA7L,YACA9T,EAAA,EAAA/kE,KAAA,4CACA1V,KAAAskG,WAAAlK,EAAA4B,EAAAjM,IAEA,IAAA6K,EAAA56F,KAAA4kG,WAAAxK,EAAAqK,EAAAtU,EAAAC,GAEA,GAAAoU,EAAA,CACA,IAAAK,OAAA,EACAjK,IACAiK,EAAAjK,EAAAkK,OAAAlK,EAAAmK,UAIA/I,EAAAzN,YACA9T,EAAA,EAAA/kE,KAAA,4CACA1V,KAAAskG,WAAAlK,EAAA4B,EAAAjM,IAEA/vF,KAAAglG,WAAAhJ,EAAA0I,EAAAvU,EAAA0U,EAAAzU,SAIA,GAAAoU,EAAA,CACA,IAAAS,EAAAjlG,KAAAglG,WAAAhJ,EAAA0I,EAAAvU,EAAA,EAAAC,GACA6U,GAAA7K,EAAA5M,OACAxtF,KAAAklG,gBAAA9K,EAAAqK,EAAAtU,EAAA8U,IAMA5K,EAAA/H,QAAArxF,QACAjB,KAAAmlG,SAAA9K,EAAAtK,GAIAkM,EAAA3J,QAAArxF,QACAjB,KAAAolG,UAAAnJ,EAAAlM,GAIA/vF,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAA2kE,cAGA8lB,EAAA9jG,UAAAokG,WAAA,SAAAlK,EAAA4B,EAAAjM,GACA,IAAAjpC,EAAA9mD,KAAA8mD,SACAu+C,EAAAjL,EAAA9H,QACAgT,EAAAtJ,EAAA1J,QACAuG,EAAA74F,KAAA64F,cACAtL,EAAA,YACAJ,KACAr8E,GAAgBq8E,UAChBoY,OAAA73F,IAAA1N,KAAAm8F,SACAxP,OAAA,EACA6Y,OAAA,EAqCA,GAnCAD,IACA5Y,EAAA6Y,EAAA/rD,KAGA2gD,EAAAp6C,QAAAqlD,EAAApkG,SAKAm5F,EAAA7L,UAAA6L,EAAAlJ,WACAzW,EAAA,EAAAj7E,IAAA,yBAAA46F,EAAAlJ,YACAkJ,EAAAvH,QACAgG,EAAA+C,MAEArO,EAAA,aACA6M,EAAA5M,MAAA,IACSqL,EAAAgD,MAETzB,EAAA5M,MAAA,QAGAL,EAAAC,OACAG,YACAC,MAAA4M,EAAA5M,MACAX,aAAAuN,EAAAvH,OAAAgG,EAAA+C,KAAA,IAAAxX,WAAAob,EAAA3S,aAAAuN,IACAqL,UACAhU,aAAA2I,EAAA3I,eAGA8T,IAEA5Y,EAAA6Y,EAAAH,EAAA,GAAAxT,IAAAuI,EAAAtH,eAAA/C,IAIAiM,EAAAoB,KAAApB,EAAAoC,KAAAkH,EAAArkG,OAAA,CAGA,IAAA6xF,EAAAkJ,EAAAlJ,eACAkJ,EAAAzN,UAAAuE,EACA3F,EAAAE,OACAE,UAAA,YACAC,MAAAwO,EAAAxO,MACAX,YAAA2S,EAAA3S,aAAAmP,IACAyJ,UACAzsF,MAAAgjF,EAAAhjF,MACAC,OAAA+iF,EAAA/iF,SAGAssF,IACA5Y,EAAA5kF,KAAAC,IAAA2kF,EAAA2Y,EAAA,GAAAzT,IAAAiB,EAAA/C,GACAyV,EAAAz9F,KAAAC,IAAAw9F,EAAAF,EAAA,GAAAjT,IAAAS,EAAA/C,GACA/vF,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAAikE,gBAAyEmP,aAIzE/iF,OAAAC,KAAAsjF,GAAAlsF,QACA6lD,EAAA70C,QAAAsH,EAAA,EAAAukE,0BAAAhtE,GACA9Q,KAAAokG,aAAA,EACAmB,IACAvlG,KAAAm8F,SAAAxP,EACA3sF,KAAAo8F,SAAAoJ,IAGA1+C,EAAA70C,QAAAsH,EAAA,EAAAglE,OAAyD/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAA9K,mBAAAiM,OAAA,EAAArsB,OAAA,kCAIzDikC,EAAA9jG,UAAA8kG,WAAA,SAAA/T,EAAAlB,EAAAI,EAAA0U,EAAAzU,GACA,IAIAmQ,EAIAmF,EACAC,EATAjjE,EAAA,EACAkjE,EAAA3U,EAAA1C,UACAsX,OAAA,EACA1F,OAAA,EAEA2F,OAAA,EACAC,OAAA,EAIAC,EAAA/U,EAAAqB,QACA2T,KACA/I,EAAA8I,EAAA/kG,OACAilG,EAAAlmG,KAAAmmG,cACAX,EAAAxlG,KAAAo8F,SAgBAgK,EAAApmG,KAAAomG,WAEAjC,EAAAnkG,KAAAmkG,SAEA,OAAAjH,EAAA,CAKAiH,IAMAhU,GAAA6V,EAAA/kG,QAAAmlG,IAAAhW,GAAAroF,KAAAY,IAAAonF,EAAAqW,EAAAR,GAAA,IAAA79F,KAAAY,IAAAq9F,EAAA,GAAAnU,IAAAuU,EAAAZ,GAAAI,EAAA,IAGAzV,IAEAiW,EAAArW,EAAA6V,GAKAI,EAAAl8F,QAAA,SAAAyoF,GACAA,EAAAV,IAAAqU,EAAA3T,EAAAV,IAAA2T,EAAAY,GACA7T,EAAAF,IAAA6T,EAAA3T,EAAAF,IAAAmT,EAAAY,KAIAJ,EAAA1wF,KAAA,SAAAC,EAAAC,GACA,IAAA6wF,EAAA9wF,EAAA88E,IAAA78E,EAAA68E,IACAiU,EAAA/wF,EAAAs8E,IAAAr8E,EAAAq8E,IACA,OAAAwU,GAAAC,GAAA/wF,EAAA7T,GAAA8T,EAAA9T,KAIA,IAAA6kG,EAAAP,EAAAvgF,OAAA,SAAA65C,EAAAknC,GACA,OAAAz+F,KAAAE,IAAAF,KAAAC,IAAAs3D,EAAAknC,EAAA3U,IAAA2U,EAAAnU,MAAA,OACK,GACL,GAAAkU,EAAA,GACA9rB,EAAA,EAAA/kE,KAAA,wDAAA3N,KAAAqC,MAAAm8F,EAAA,kCACA,QAAAxlG,EAAA,EAAqBA,EAAAilG,EAAA/kG,OAAyBF,IAC9CilG,EAAAjlG,GAAAsxF,KAAAkU,EAKA,IAAAhU,EAAAyT,EAAA,GACAD,EAAAh+F,KAAAE,IAAAsqF,EAAAF,IAAA,GACAyT,EAAA/9F,KAAAE,IAAAsqF,EAAAV,IAAA,GAGA,IAAA35D,EAAAnwB,KAAAqC,OAAA27F,EAAAK,GAAA,IAEAjW,GACAj4D,IACAA,EAAA,EACAuiD,EAAA,EAAAj7E,IAAA,OAAA04B,EAAA,kDACSA,GAAA,GACTuiD,EAAA,EAAAj7E,IAAA,QAAA04B,EAAA,8CAIA6tE,EAAAK,EACAJ,EAAA,GAAA3T,IAAA0T,EAEAD,EAAA/9F,KAAAE,IAAA69F,EAAA5tE,EAAAkuE,GACAJ,EAAA,GAAAnU,IAAAiU,EACArrB,EAAA,EAAAj7E,IAAA,2BAAAuI,KAAAqC,MAAA07F,EAAA,QAAA/9F,KAAAqC,MAAA27F,EAAA,cAAA7tE,EAAA,QAGA6tE,EAGAxT,EAAAyT,IAAA/kG,OAAA,GACA0kG,EAAA59F,KAAAE,IAAAsqF,EAAAF,IAAA,GACAqT,EAAA39F,KAAAE,IAAAsqF,EAAAV,IAAA,EAAA8T,GAKAxB,IACA0B,EAAA99F,KAAAqC,OAAAu7F,EAAAI,IAAAC,EAAA/kG,OAAA,KAKA,IAFA,IAAAwlG,EAAA,EACAC,EAAA,EACAC,EAAA,EAAoBA,EAAAzJ,EAAgByJ,IAAA,CAMpC,IAJA,IAAAC,EAAAZ,EAAAW,GACAlO,EAAAmO,EAAAnO,MACAoO,EAAApO,EAAAx3F,OACA6lG,EAAA,EACA5zE,EAAA,EAAqBA,EAAA2zE,EAAa3zE,IAClC4zE,GAAArO,EAAAvlE,GAAApiB,KAAA7P,OAGAylG,GAAAI,EACAL,GAAAI,EACAD,EAAA3lG,OAAA6lG,EAKAF,EAAAvU,IAFA8R,EAEA4B,EAAAY,EAAAd,EAGA99F,KAAAE,IAAA2+F,EAAAvU,IAAA0T,GAGAa,EAAA/U,IAAA9pF,KAAAE,IAAA2+F,EAAA/U,IAAA+U,EAAAvU,KAKA,IAAA0U,EAAAL,EAAA,EAAAD,EAAA,EACA,IACAtG,EAAA,IAAA/b,WAAA2iB,GACK,MAAAthB,GAEL,YADAzlF,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAAglE,OAA8D/6E,KAAAynF,EAAA,EAAAhM,UAAAkN,QAAAlB,EAAA,EAAA7K,kBAAAgM,OAAA,EAAA6R,MAAA8I,EAAAhnC,OAAA,8BAAAgnC,IAG9D,IAAAj0C,EAAA,IAAA80B,SAAAuY,EAAAzb,QACA5xB,EAAAk0C,UAAA,EAAAD,GACA5G,EAAAn7C,IAAAw6C,EAAAG,MAAAQ,KAAA,GAEA,QAAA8G,EAAA,EAAqBA,EAAA/J,EAAiB+J,IAAA,CAMtC,IALA,IAAAnN,EAAAkM,EAAAiB,GACAC,EAAApN,EAAArB,MACA0O,EAAA,EACAC,OAAA,EAEAC,EAAA,EAAAC,EAAAJ,EAAAjmG,OAAwDomG,EAAAC,EAAeD,IAAA,CACvE,IAAAhpD,EAAA6oD,EAAAG,GACAE,EAAAlpD,EAAAvtC,KACA02F,EAAAnpD,EAAAvtC,KAAAqzE,WACArxB,EAAAk0C,UAAAtkE,EAAA8kE,GACA9kE,GAAA,EACAy9D,EAAAn7C,IAAAuiD,EAAA7kE,GACAA,GAAA8kE,EACAL,GAAA,EAAAK,EAGA,GAAArD,EAkCAiD,EAAAr/F,KAAAE,IAAA,EAAA49F,EAAA99F,KAAAqC,OAAA0vF,EAAAjI,IAAAiI,EAAAzH,KAAAwT,QAlCA,CAEA,GAAAoB,EAAA/J,EAAA,EACA2I,EAAAG,EAAAiB,EAAA,GAAA5U,IAAAyH,EAAAzH,QACS,CACT,IAAAryC,EAAAhgD,KAAAggD,OACAynD,EAAA3N,EAAAzH,IAAA2T,EAAAiB,EAAA,EAAAA,EAAA,EAAAA,GAAA5U,IACA,GAAAryC,EAAA0nD,uBAAA,CAMA,IAAAC,EAAA3nD,EAAA2nD,cACAC,EAAA7/F,KAAAkwC,MAAA0vD,EAAA/B,GACAiC,GAAAhD,EAAAiB,EAAAjB,EAAAe,EAAA5lG,KAAA8nG,cAAAhO,EAAAjI,IACAgW,EAAAD,IAGA/B,EAAAgC,EAAAJ,GACA,IACA5B,EAAA4B,GAGAhtB,EAAA,EAAAj7E,IAAA,uBAAAqoG,EAAA,8CAAoHhC,EAAA,qCAEpHA,EAAA4B,OAGA5B,EAAA4B,EAGAL,EAAAr/F,KAAAqC,MAAA0vF,EAAAjI,IAAAiI,EAAAzH,KAMA4T,EAAA1kG,MACAswB,KAAAs1E,EAEAna,SAAA6Y,EACApC,IAAA2D,EACAvE,OACAa,UAAA,EACAX,aAAA,EACAC,cAAA,EACAa,WAAA,EACAf,UAAAhJ,EAAA/vF,IAAA,IACA65F,UAAA9J,EAAA/vF,IAAA,OAKA/J,KAAAomG,WAAAT,EAAAE,EACA,IAAAvM,GAAArI,EAAAqI,QAIA,GAHArI,EAAApvF,IAAA,EACAovF,EAAAwV,OAAA,EACAxV,EAAAqI,QAAA,EACA2M,EAAAhlG,QAAA49C,UAAAC,UAAAxmC,cAAAxY,QAAA,cACA,IAAA+iG,GAAAoD,EAAA,GAAApD,MAGAA,GAAAC,UAAA,EACAD,GAAAe,UAAA,EAEA3S,EAAAqB,QAAA2T,EACA1F,EAAAf,EAAAe,KAAAtP,EAAA2B,iBAAAmT,EAAA9U,GACAA,EAAAqB,WAEA,IAAAxhF,IACAi3F,MAAAxH,EACAyH,MAAA7H,EACA4E,SAAAe,EAAAF,EACAd,QAAAY,EAAAG,GAAAD,EACAvV,SAAA0V,EAAAH,EACAqC,OAAAjoG,KAAAomG,WAAAR,EACApiG,KAAA,QACA0kG,UAAA,EACAC,UAAA,EACAC,GAAAnC,EAAAhlG,OACAq4F,YAGA,OADAt5F,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAA0kE,kBAAAntE,IACAA,KAGAkzF,EAAA9jG,UAAA0kG,WAAA,SAAA3T,EAAAlB,EAAAI,EAAAC,GACA,IAAA0C,EAAA7B,EAAA6B,eACAuV,EAAApX,EAAA1C,UACA+Z,EAAAxV,EAAAuV,EAEAE,GADAtX,EAAA4B,MAAA,WACAyV,EACApC,EAAAlmG,KAAAmmG,cACAX,EAAAxlG,KAAAo8F,SACAoM,GAAAvX,EAAA4B,OAAA7yF,KAAA64F,cAAA+C,KAEAl5D,OAAA,EACA+lE,OAAA,EACAC,OAAA,EACAvI,OAAA,EACAI,OAAA,EACAuF,OAAA,EACAJ,OAAA,EACAM,EAAA/U,EAAAqB,QACA2T,KACA6B,EAAA9nG,KAAA8nG,aAyBA,GAfA3X,GAAA6V,EAAA/kG,QAAA6mG,IAAA1X,GAAAroF,KAAAY,IAAAonF,EAAA+X,EAAAhV,GAAA,IAAA/qF,KAAAY,IAAAq9F,EAAA,GAAAnU,IAAAiW,EAAAtC,GAAA,GAAA+C,GAGAvC,EAAAl8F,QAAA,SAAAyoF,GACAA,EAAAV,IAAAU,EAAAF,IAAA6T,EAAA3T,EAAAV,IAAA2T,EAAAzV,EAAA+C,KAWA,KALAkT,IAAA5+E,OAAA,SAAAmrE,GACA,OAAAA,EAAAV,KAAA,KAIA5wF,OAAA,CAoBA,GAhBAkvF,IAMA2X,EALA1X,EAKAL,EAAA+C,EAHAkT,EAAA,GAAAnU,KAaAZ,EAAA4B,MAEA,IADA,IAAA8V,EAAA3oG,KAAAggD,OAAA2oD,oBACA5nG,EAAA,EAAA6nG,EAAAd,EAA6C/mG,EAAAilG,EAAA/kG,QAAyB,CAEtE,IACAi3B,EADAq6D,EAAAyT,EAAAjlG,GAGAm3B,EADAq6D,EAAAV,IACA+W,EAEA,IAAA5b,EAAAjlF,KAAAY,IAAA,IAAAuvB,EAAA46D,GAGA,GAAA56D,IAAAywE,EAAAJ,EACA9tB,EAAA,EAAA/kE,KAAA,6BAAAkzF,EAAA9V,GAAAxrF,QAAA,eAAAS,KAAAqC,MAAA4iF,GAAA,gBACAgZ,EAAA1kG,OAAAP,EAAA,GACAkwF,EAAApvF,KAAA0wF,EAAAl0C,KAAAp9C,YAQA,GAAAi3B,GAAAywE,EAAAJ,GAAAvb,EA1gBA,KA0gBA4b,EAAA,CACA,IAAAC,EAAA9gG,KAAAqC,MAAA8tB,EAAAqwE,GACA9tB,EAAA,EAAA/kE,KAAA,aAAAmzF,EAAA,mBAAAD,EAAA9V,GAAAxrF,QAAA,eAAAS,KAAAqC,MAAA,IAAA8tB,EAAA46D,GAAA,YACA,QAAA5/D,EAAA,EAA2BA,EAAA21E,EAAa31E,IAAA,CACxC,IAAA41E,EAAA/gG,KAAAE,IAAA2gG,EAAA,IACAF,EAAAtJ,EAAAG,eAAAtO,EAAAM,eAAAN,EAAAzD,MAAAyD,EAAAQ,iBAEAhX,EAAA,EAAAj7E,IAAA,qFACAkpG,EAAAnW,EAAAl0C,KAAA8kC,YAEA6iB,EAAA1kG,OAAAP,EAAA,GAAyCs9C,KAAAqqD,EAAA7W,IAAAiX,EAAAzW,IAAAyW,IACzC7X,EAAApvF,KAAA6mG,EAAAznG,OACA2nG,GAAAL,EACAxnG,IAIAwxF,EAAAV,IAAAU,EAAAF,IAAAuW,EACAA,GAAAL,EACAxnG,SAGAgH,KAAAY,IAAAuvB,GAGAq6D,EAAAV,IAAAU,EAAAF,IAAAuW,EACAA,GAAAL,EACAxnG,IAKA,QAAAgoG,EAAA,EAAAC,EAAAhD,EAAA/kG,OAAuD8nG,EAAAC,EAAkBD,IAAA,CACzE,IAAAE,EAAAjD,EAAA+C,GACA1qD,EAAA4qD,EAAA5qD,KACA6qD,EAAAD,EAAApX,IAGA,QAAAnkF,IAAAg4F,EACA+C,EAAAzb,SAAAjlF,KAAAqC,OAAA8+F,EAAAxD,GAAA4C,OACO,CACP,IAAAa,EAAAphG,KAAAqC,MAAA,KAAA8+F,EAAApB,GAAAhV,GACAsW,EAAA,EAGA,GAAAjZ,GAAAc,EAAA4B,OAEAsW,EAAA,CACA,GAAAA,EAAA,GAAAA,EA1jBA,IA2jBAC,EAAArhG,KAAAqC,OAAA8+F,EAAApB,GAAAS,GACA9tB,EAAA,EAAAj7E,IAAA2pG,EAAA,oDACAC,EAAA,KACAV,EAAAtJ,EAAAG,eAAAtO,EAAAM,eAAAN,EAAAzD,MAAAyD,EAAAQ,iBAEAiX,EAAArqD,EAAA8kC,YAGA8N,EAAApvF,KAAAunG,EAAAV,EAAAznG,aAGa,GAAAkoG,GAAA,IAEb1uB,EAAA,EAAAj7E,IAAA,uDAAAsoG,EAAAhV,GAAAxrF,QAAA,SAAA4hG,EAAApW,GAAAxrF,QAAA,SAAA6hG,EAAA,MACAlY,EAAApvF,KAAAw8C,EAAA8lC,WACA,SAGA+kB,EAAApB,EAKA,GADAhC,EAAAoD,IACAjY,EAAApvF,IAAA,GAkBA,OAfA,IAAAklG,EAAAyB,EAAAvX,EAAApvF,IAAAovF,EAAApvF,IAAA,EACA6gC,EAAA8lE,EAAA,IACA,IACArI,EAAA,IAAA/b,WAAA2iB,GACW,MAAAthB,GAEX,YADAzlF,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAAglE,OAAoE/6E,KAAAynF,EAAA,EAAAhM,UAAAkN,QAAAlB,EAAA,EAAA7K,kBAAAgM,OAAA,EAAA6R,MAAA8I,EAAAhnC,OAAA,8BAAAgnC,IAGpEyB,IACA,IAAA5gB,SAAAuY,EAAAzb,QACAsiB,UAAA,EAAAD,GACA5G,EAAAn7C,IAAAw6C,EAAAG,MAAAQ,KAAA,IAMA,QAAAkJ,EAAA,EAAyBA,EAAAD,EAAwBC,KACjDX,EAAAtJ,EAAAG,eAAAtO,EAAAM,eAAAN,EAAAzD,MAAAyD,EAAAQ,iBAEAhX,EAAA,EAAAj7E,IAAA,qFACAkpG,EAAArqD,EAAA8kC,YAEAgd,EAAAn7C,IAAA0jD,EAAAhmE,GACAA,GAAAgmE,EAAAvkB,WACAskB,GACA52E,KAAA62E,EAAAvkB,WACAsf,IAAA,EACAzW,SAAA,KACA6V,OACAa,UAAA,EACAX,aAAA,EACAC,cAAA,EACAa,WAAA,EACAf,UAAA,IAGAmD,EAAA1kG,KAAAknG,GAGAtI,EAAAn7C,IAAA3G,EAAA3b,GACA,IAAA4mE,EAAAjrD,EAAA8lC,WACAzhD,GAAA4mE,EAEAb,GACA52E,KAAAy3E,EACA7F,IAAA,EACAzW,SAAA,EACA6V,OACAa,UAAA,EACAX,aAAA,EACAC,cAAA,EACAa,WAAA,EACAf,UAAA,IAGAmD,EAAA1kG,KAAAknG,GACA/C,EAAAwD,EAEA,IAAAK,EAAA,EACArM,EAAA+I,EAAAhlG,OAMA,GAJAi8F,GAAA,IACAqM,EAAAtD,EAAA/I,EAAA,GAAAlQ,SACAyb,EAAAzb,SAAAuc,GAEArM,EAAA,CAEAl9F,KAAA8nG,eAAApC,EAAA4C,EAAAiB,EAEAtY,EAAApvF,IAAA,EACAovF,EAAAqB,QAAA2T,EAEA1F,EADAiI,EACA,IAAApkB,WAEAob,EAAAe,KAAAtP,EAAA2B,iBAAAkT,EAAAwC,EAAArX,GAGAA,EAAAqB,WACA,IAAA9vF,EAAAsjG,EAAAhT,EACA5hE,EAAA42E,EAAAhV,EACA8H,GACAmN,MAAAxH,EACAyH,MAAA7H,EACA4E,SAAAviG,EACAsiG,OAAA5zE,EACAm/D,SAAA7tF,EACAylG,OAAA/2E,EACA1tB,KAAA,QACA0kG,UAAA,EACAC,UAAA,EACAC,GAAAlL,GAGA,OADAl9F,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAA0kE,kBAAA2c,GACAA,EAEA,cAGAoJ,EAAA9jG,UAAAglG,gBAAA,SAAAjU,EAAAlB,EAAAI,EAAA8U,GACA,IAAAnS,EAAA7B,EAAA6B,eAEAwV,EAAAxV,GADA7B,EAAAC,WAAAD,EAAAC,WAAA4B,GAEAgV,EAAA9nG,KAAA8nG,aAIAzX,QAAA3iF,IAAAo6F,IAAA7C,EAAA5U,SAAAyC,GAAA9yF,KAAAo8F,SACA6L,EAAAhD,EAAAgD,OAAAnV,EAAA9yF,KAAAo8F,SAIApK,EADA,KACAsW,EAIApL,EAAAn1F,KAAAowC,MAAA8vD,EAAA5X,GAAA2B,GAIAwX,EAAApK,EAAAG,eAAAtO,EAAAM,eAAAN,EAAAzD,MAAAyD,EAAAQ,cAIA,GAFAhX,EAAA,EAAA/kE,KAAA,qBAEA8zF,EAAA,CAMA,IADA,IAAAlX,KACAvxF,EAAA,EAAmBA,EAAAm8F,EAAen8F,IAAA,CAClC,IAAAmxF,EAAA7B,EAAAtvF,EAAAixF,EACAM,EAAA/wF,MAAoB88C,KAAAmrD,EAAA3X,IAAAK,EAAAG,IAAAH,IACpBjB,EAAApvF,KAAA2nG,EAAAvoG,OAEAgwF,EAAAqB,UAEAtyF,KAAA4kG,WAAA3T,EAAAlB,EAAAI,QAZA1V,EAAA,EAAAG,MAAA,gGAeAopB,EAAA9jG,UAAAilG,SAAA,SAAAlU,EAAAlB,GACA,IAAA9uF,EAAAgwF,EAAAqB,QAAArxF,OACAsxF,OAAA,EACAO,EAAA7B,EAAA6B,eACAnG,EAAA3sF,KAAAm8F,SACAqJ,EAAAxlG,KAAAo8F,SAEA,GAAAn7F,EAAA,CACA,QAAA2L,EAAA,EAAyBA,EAAA3L,EAAgB2L,KACzC2lF,EAAAtB,EAAAqB,QAAA1lF,IAGAilF,KAAAU,EAAAV,IAAAlF,GAAAmG,EACAP,EAAAF,KAAAE,EAAAF,IAAAmT,GAAA1S,EAEA9yF,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAAykE,uBACAsU,QAAArB,EAAAqB,UAIArB,EAAAqB,WACAvC,KAGAiU,EAAA9jG,UAAAklG,UAAA,SAAAnU,EAAAlB,GACAkB,EAAAqB,QAAAh9E,KAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAs8E,IAAAr8E,EAAAq8E,MAGA,IAAA5wF,EAAAgwF,EAAAqB,QAAArxF,OACAsxF,OAAA,EACAO,EAAA7B,EAAA6B,eACAnG,EAAA3sF,KAAAm8F,SAEA,GAAAl7F,EAAA,CACA,QAAA2L,EAAA,EAAyBA,EAAA3L,EAAgB2L,KACzC2lF,EAAAtB,EAAAqB,QAAA1lF,IAGAilF,KAAAU,EAAAV,IAAAlF,GAAAmG,EAEA9yF,KAAA8mD,SAAA70C,QAAAsH,EAAA,EAAAwkE,uBACAuU,QAAArB,EAAAqB,UAIArB,EAAAqB,WACAvC,KAGAiU,EAAA9jG,UAAAimG,cAAA,SAAA5+F,EAAAo0C,GACA,IAAAjZ,OAAA,EACA,QAAAh1B,IAAAiuC,EACA,OAAAp0C,EAaA,IARAm7B,EAFAiZ,EAAAp0C,GAEA,WAGA,WAKAQ,KAAAY,IAAApB,EAAAo0C,GAAA,YACAp0C,GAAAm7B,EAGA,OAAAn7B,GAGAy8F,EAxyBA,GAozBA,IAyCAyF,EAzCA,WACA,SAAAC,EAAA5iD,IARA,SAAAvH,EAAAqjC,GAAqE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAS/G2lD,CAAA3pG,KAAA0pG,GAEA1pG,KAAA8mD,WAkCA,OA/BA4iD,EAAAxpG,UAAAi/C,QAAA,aAEAuqD,EAAAxpG,UAAAwsF,eAAA,aAEAgd,EAAAxpG,UAAA0sF,iBAAA,aAEA8c,EAAAxpG,UAAAqwF,MAAA,SAAA6J,EAAA4B,EAAA3B,EAAA4B,EAAAlM,EAAAI,EAAAC,EAAAwZ,GACA,IAAA9iD,EAAA9mD,KAAA8mD,SACA+iD,EAAA,GACAzP,IACAyP,GAAA,SAGA7N,IACA6N,GAAA,SAGA/iD,EAAA70C,QAAAsH,EAAA,EAAA0kE,mBACA8pB,MAAA6B,EACA7E,SAAAhV,EACAM,SAAAN,EACAvsF,KAAAqmG,EACA3B,WAAA9N,EACA+N,WAAAnM,EACAoM,GAAA,EACA9O,QAAA,IAGAxyC,EAAA70C,QAAAsH,EAAA,EAAA2kE,cAGAwrB,EAtCA,GAiEA,IACAI,EADAlgG,OAAAshF,EAAA,EAAAthF,GACAkgG,YAEAC,EAAA,WACA,SAAAC,EAAAljD,EAAA+xC,EAAA74C,EAAAikD,IA1BA,SAAA1kD,EAAAqjC,GAAgE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCA2B1GimD,CAAAjqG,KAAAgqG,GAEAhqG,KAAA8mD,WACA9mD,KAAA64F,gBACA74F,KAAAggD,SACAhgD,KAAAikG,SAuFA,OApFA+F,EAAA9pG,UAAAi/C,QAAA,WACA,IAAA+qD,EAAAlqG,KAAAkqG,QACAA,GACAA,EAAA/qD,WAIA6qD,EAAA9pG,UAAAqB,KAAA,SAAAuP,EAAAimF,EAAAlK,EAAAC,EAAAC,EAAAgD,EAAAoa,EAAAC,EAAAja,EAAAnD,EAAAoD,EAAAia,GACA,GAAAv5F,EAAAqzE,WAAA,SAAA4S,GAAA,MAAAA,EAAAhtF,KAAA,YAAAgtF,EAAAroD,OAAA,CACA,IAAAwoD,EAAAl3F,KAAAk3F,UACA,MAAAA,IACAA,EAAAl3F,KAAAk3F,UAAA,IAAA1G,EAAA,EAAAxwF,KAAA8mD,SAAA9mD,KAAAggD,SAGA,IAAA23C,EAAA33F,KAEAkxD,OAAA,EACA,IACAA,EAAA44C,EAAAp6F,MACO,MAAAqrE,GACP7pB,EAAAzhD,KAAAC,MAEAwnF,EAAAxQ,QAAA51E,EAAAimF,EAAAhtF,IAAA26E,OAAAqS,EAAAvQ,GAAA9B,OAAA,SAAAkT,GACA,IAAA0S,OAAA,EACA,IACAA,EAAAR,EAAAp6F,MACS,MAAAqrE,GACTuvB,EAAA76F,KAAAC,MAEAioF,EAAA7wC,SAAA70C,QAAAsH,EAAA,EAAAskE,gBAA8E0sB,OAASC,OAAAt5C,EAAAu5C,SAAAH,KACvF3S,EAAA+S,cAAA,IAAAtmB,WAAAwT,GAAAb,EAAA,IAAA3S,WAAAyI,GAAAC,EAAAC,EAAAgD,EAAAoa,EAAAC,EAAAja,EAAAnD,EAAAoD,EAAAia,UAGArqG,KAAA0qG,cAAA,IAAAtmB,WAAAtzE,GAAAimF,EAAA,IAAA3S,WAAAyI,GAAAC,EAAAC,EAAAgD,EAAAoa,EAAAC,EAAAja,EAAAnD,EAAAoD,EAAAia,IAIAL,EAAA9pG,UAAAwqG,cAAA,SAAA55F,EAAAimF,EAAAlK,EAAAC,EAAAC,EAAAgD,EAAAoa,EAAAC,EAAAja,EAAAnD,EAAAoD,EAAAia,GACA,IAAAH,EAAAlqG,KAAAkqG,QACA,IAAAA,IAIAC,GAAAC,KAAApqG,KAAAytF,MAAA38E,GAAA,CAQA,IAPA,IAAAg2C,EAAA9mD,KAAA8mD,SACA+xC,EAAA74F,KAAA64F,cACA74C,EAAAhgD,KAAAggD,OAEA2qD,IAAwBC,MAAAjS,EAAApI,MAAAwT,IAA0C6G,MAAA5X,EAAA,EAAAzC,MAAAkZ,IAAsEmB,MAAAnY,EAAAlC,MAAAwT,IAA2C6G,MAAA3L,EAAA1O,MAAAwT,IAGnLhjG,EAAA,EAAAc,EAAA8oG,EAAA1pG,OAA6CF,EAAAc,EAASd,IAAA,CACtD,IAAA8pG,EAAAF,EAAA5pG,GACA0sF,EAAAod,EAAAD,MAAAnd,MACA,GAAAA,EAAA38E,GAAA,CACA,IAAAg6F,EAAA9qG,KAAAysF,QAAA,IAAAoe,EAAAta,MAAAzpC,EAAA9G,EAAA64C,EAAA74F,KAAAikG,QACAiG,EAAA,IAAAW,EAAAD,MAAA9jD,EAAAgkD,EAAA9qD,EAAA64C,GACA74F,KAAAytF,QACA,OAGA,IAAAyc,EAEA,YADApjD,EAAA70C,QAAAsH,EAAA,EAAAglE,OAA2D/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAA9K,mBAAAiM,OAAA,EAAArsB,OAAA,yCAG3D//D,KAAAkqG,UAEA,IAAAzd,EAAAzsF,KAAAysF,SAEA0d,GAAAC,KACAF,EAAAtd,iBAAAC,EAAAC,EAAAC,EAAAC,GACAP,EAAAG,oBAEAud,IACAD,EAAAxd,eAAA2d,GACA5d,EAAAC,eAAA2d,IAEA,mBAAAH,EAAAlR,gBACAkR,EAAAlR,eAAAjC,GAGAmT,EAAA79D,OAAAv7B,EAAAi/E,EAAAI,EAAAC,IAGA4Z,EA9FA,GAiGAzlD,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAwjG,KACAxrG,EAAAkvB,EAAAs8E,EAAA,oBAAkE,OAAAC,KAGlE,IAAAC,EAAA1rG,EAAA,GACA2rG,EAAA3rG,EAAA6+C,EAAA6sD,GAGAhgB,EAAA1rF,EAAA,GAGAkxF,EAAAlxF,EAAA,GAGAga,EAAAha,EAAA,GAGAk7E,EAAAl7E,EAAA,GAGAyL,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAc5I,IAAAggG,EAAA,IAAAC,KAAA,iEAkFAC,EAhFA,WACA,SAAAC,EAAAC,IAfA,SAAAhsD,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAgB3F6+B,CAAA7iF,KAAAsrG,GAEAtrG,KAAAurG,MACAvrG,KAAAwrG,QAAAxrG,KAAAwrG,QAAAhhG,KAAAxK,MAEA,QAAA2f,EAAA7a,UAAA7D,OAAAsY,EAAA1N,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAwFA,EAAAgC,EAAahC,IACrGpE,EAAAoE,EAAA,GAAA7Y,UAAA6Y,GAGA3d,KAAAyrG,cAAAlyF,EACAvZ,KAAA0rG,mBAAA,EAEA1rG,KAAA2rG,oBA+DA,OA5DAL,EAAAprG,UAAAi/C,QAAA,WACAn/C,KAAA4rG,sBACA5rG,KAAA6rG,sBACA7rG,KAAA8rG,sBAGAR,EAAAprG,UAAA0rG,oBAAA,aAEAN,EAAAprG,UAAA4rG,mBAAA,aAEAR,EAAAprG,UAAA6rG,eAAA,WACA,iBAAA/gG,EAAAhL,KAAAyrG,gBAAAzrG,KAAAyrG,cAAAxqG,QAAA,mBAAAjB,KAAAwrG,SAGAF,EAAAprG,UAAAyrG,kBAAA,WACA3rG,KAAA+rG,kBACA/rG,KAAAyrG,cAAA3hG,QAAA,SAAAytD,GACA,GAAA4zC,EAAAhmD,IAAAoS,GACA,UAAA8H,MAAA,yBAAA9H,GAGAv3D,KAAAurG,IAAA7rF,GAAA63C,EAAAv3D,KAAAwrG,UACOxrG,OAIPsrG,EAAAprG,UAAA2rG,oBAAA,WACA7rG,KAAA+rG,kBACA/rG,KAAAyrG,cAAA3hG,QAAA,SAAAytD,GACAv3D,KAAAurG,IAAAl7C,IAAAkH,EAAAv3D,KAAAwrG,UACOxrG,OASPsrG,EAAAprG,UAAAsrG,QAAA,SAAAj0C,EAAAzmD,GACA9Q,KAAAgsG,eAAAz0C,EAAAzmD,IAGAw6F,EAAAprG,UAAA8rG,eAAA,SAAAz0C,EAAAzmD,GASA,KARA,SAAAymD,EAAAzmD,GACA,IAAAm7F,EAAA,KAAA10C,EAAAhvD,QAAA,UACA,sBAAAvI,KAAAisG,GACA,UAAA5sC,MAAA,SAAA9H,EAAA,mCAAAv3D,KAAAG,YAAAyC,KAAA,iBAAAqpG,EAAA,KAGA,OAAAjsG,KAAAisG,GAAAzhG,KAAAxK,KAAA8Q,KAGApF,KAAA1L,KAAAu3D,EAAAzmD,GAAApF,OACK,MAAA+5E,GACLhL,EAAA,EAAAM,MAAA,mDAAAxjB,EAAA,qBAAAkuB,EAAA3lB,QAAA,2BAAA2lB,GACAzlF,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OAAyD/6E,KAAAynF,EAAA,EAAA/L,YAAAiN,QAAAlB,EAAA,EAAAnK,mBAAAsL,OAAA,EAAA70B,QAAAkuB,UAIzD6lB,EA7EA,GAkFAtY,EAAAzzF,EAAA,GAGA2sG,EAAA,WAAgC,SAAA7mD,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAxhB,GAMA,IAwBA0pB,EAxBA,WACA,SAAAC,KALA,SAAAhtD,EAAAqjC,GAA2D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAMrGwoD,CAAAxsG,KAAAusG,GAEAvsG,KAAA0uC,OAAA,KACA1uC,KAAA+J,IAAA,KACA/J,KAAAwmF,GAAA,KACAxmF,KAAAysG,KAAA,KAcA,OAXAP,EAAAK,IACAxiG,IAAA,MACA/F,IAAA,WAKA,OAJAhE,KAAAysG,MAAAzsG,KAAA0sG,SACA1sG,KAAAysG,KAAAvB,EAAA31F,EAAA8rE,iBAAArhF,KAAA2sG,QAAA3sG,KAAA0sG,QAAuFjrB,iBAAA,KAGvFzhF,KAAAysG,SAIAF,EArBA,GA4BAK,EAAA,WAAyC,SAAAvnD,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAjiB,GAQA,IAwKAiqB,EAxKA,WACA,SAAAC,IACA,IAAAC,GARA,SAAAxtD,EAAAqjC,GAA0D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAUpGgpD,CAAAhtG,KAAA8sG,GAEA9sG,KAAAitG,KAAA,KACAjtG,KAAAktG,WAAA,KACAltG,KAAAmtG,aAAA,KACAntG,KAAAotG,WACAptG,KAAAqtG,gBAAA,KACArtG,KAAAstG,mBAAA,KAGAttG,KAAA+sG,2BAAsDD,EAAAS,sBAAAC,QAAA,EAAAT,EAAAD,EAAAS,sBAAAE,QAAA,EAAAV,GAuJtD,OA1IAD,EAAA5sG,UAAAwtG,oBAAA,SAAAlqG,GACAxD,KAAA+sG,mBAAAvpG,IAAA,GAQAspG,EAAA5sG,UAAAytG,oBAAA,SAAAnqG,GACA,WAAAxD,KAAA+sG,mBAAAvpG,IASAspG,EAAA5sG,UAAA0tG,2BAAA,SAAAC,GAGA,IAFA,IAAAC,EAAA,IAAA1pB,WAAA,IAEArjF,EAAA,GAAoBA,EAAA,GAAQA,IAC5B+sG,EAAA/sG,GAAA8sG,GAAA,MAAA9sG,GAAA,IAGA,OAAA+sG,GAWAhB,EAAA5sG,UAAA6tG,gCAAA,SAAAC,EAAAH,GACA,IAAA9W,EAAAiX,EAUA,OARAA,KAAAt/D,QAAAs/D,EAAAC,MAAAD,EAAAxnB,MACAuQ,EAAA,IAAAuV,GACA59D,OAAAs/D,EAAAt/D,OACAqoD,EAAA4V,QAAAqB,EAAArB,QACA5V,EAAA2V,OAAAsB,EAAAtB,OACA3V,EAAAvQ,GAAAxmF,KAAA4tG,2BAAAC,IAGA9W,GAGA6V,EAAAE,IACA/iG,IAAA,MACA/F,IAAA,WAKA,OAJAhE,KAAAitG,MAAAjtG,KAAAkuG,SACAluG,KAAAitG,KAAA/B,EAAA31F,EAAA8rE,iBAAArhF,KAAAmuG,QAAAnuG,KAAAkuG,QAAuFzsB,iBAAA,KAGvFzhF,KAAAitG,MAEAjoD,IAAA,SAAAz9C,GACAvH,KAAAitG,KAAA1lG,KAGAwC,IAAA,YACA/F,IAAA,WACA,IAAAhE,KAAAktG,aAAAltG,KAAAouG,aACA,SAGA,GAAApuG,KAAAktG,WACA,OAAAltG,KAAAktG,WAGA,IAAAmB,KACA,GAAAruG,KAAAouG,aAAA,CACA,IAAAz8E,EAAA3xB,KAAAouG,aAAAvtG,MAAA,OACA,OAAA8wB,EAAA1wB,OAAA,CACA,IAAAqtG,EAAAtuG,KAAAsuG,uBACAD,EAAA,GAAAC,GAAA,OAEAD,EAAA,GAAAz0B,SAAAjoD,EAAA,IAEA08E,EAAA,GAAAz0B,SAAAjoD,EAAA,IAAA08E,EAAA,GACAruG,KAAAktG,WAAAmB,EAEA,OAAAA,KAQAtkG,IAAA,uBACA/F,IAAA,WACA,OAAAhE,KAAAquG,UAAA,MAGAtkG,IAAA,qBACA/F,IAAA,WACA,OAAAhE,KAAAquG,UAAA,MAGAtkG,IAAA,cACA/F,IAAA,WAKA,OAJAhE,KAAAmtG,eACAntG,KAAAmtG,aAAAntG,KAAA+tG,gCAAA/tG,KAAAguG,SAAAhuG,KAAA2iG,KAGA3iG,KAAAmtG,gBAGApjG,IAAA,qBACA/F,IAAA,WACA,IAAA4F,OAAA6mF,EAAA,EAAA7mF,CAAA5J,KAAAqtG,iBACA,YAGA,IAAArgB,EAAApjF,OAAA6mF,EAAA,EAAA7mF,CAAA5J,KAAAgtF,UAAAhtF,KAAAgtF,SAAA,EAEA,OAAAhtF,KAAAqtG,gBAAA,IAAArgB,KAGAjjF,IAAA,YACA/F,IAAA,WACA,SAAAhE,KAAA+2F,aAAA,OAAA/2F,KAAA+2F,YAAAkX,KAAA,OAAAjuG,KAAA+2F,YAAAhtF,UAGAA,IAAA,wBACA/F,IAAA,WACA,OACAwpG,MAAA,QACAC,MAAA,aAKAX,EArKA,GA4KAyB,EAAA,WAAsC,SAAAlpD,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAA9hB,GAIA,IA+BA4rB,EA/BA,WACA,SAAAC,EAAAC,IAHA,SAAAnvD,EAAAqjC,GAAuD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAIjG2qD,CAAA3uG,KAAAyuG,GAGAzuG,KAAA4uG,MAAA,EACA5uG,KAAA6uG,MAAA,EACA7uG,KAAA8uG,aACA9uG,KAAA6sF,YAAA,KACA7sF,KAAA+uG,MAAA,EACA/uG,KAAAgvG,gBAAA,EACAhvG,KAAAivG,QAAA,EACAjvG,KAAAkvG,QAAA,EACAlvG,KAAAmvG,gBAAA,KACAnvG,KAAAovG,eAAA,EACApvG,KAAAqvG,cAAA,EACArvG,KAAAwD,KAAA,KACAxD,KAAAmO,IAAAugG,EACA1uG,KAAAs8D,QAAA,KAUA,OAPAiyC,EAAAE,IACA1kG,IAAA,qBACA/F,IAAA,WACA,SAAAhE,KAAA8uG,UAAA,KAAAllG,OAAA6mF,EAAA,EAAA7mF,CAAA5J,KAAA8uG,UAAA,GAAAzB,sBAIAoB,EA5BA,GAmCA,IAAAa,EAAA,gBACAC,EAAA,wCA6FAC,EAzFA,WACA,SAAAC,EAAAp4F,GAOA,QAAAtU,KAfA,SAAAw8C,EAAAqjC,GAA2D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCASrG0rD,CAAA1vG,KAAAyvG,GAEA,iBAAAp4F,IACAA,EAAAo4F,EAAAE,cAAAt4F,IAGAA,EACAA,EAAAxU,eAAAE,KACA/C,KAAA+C,GAAAsU,EAAAtU,IA4EA,OAvEA0sG,EAAAvvG,UAAA0vG,eAAA,SAAAC,GACA,IAAAC,EAAAl2B,SAAA55E,KAAA6vG,GAAA,IACA,OAAAC,EAAA/0F,OAAAg1F,iBACAt2D,IAGAq2D,GAGAL,EAAAvvG,UAAA8vG,mBAAA,SAAAH,GACA,GAAA7vG,KAAA6vG,GAAA,CACA,IAAAxxC,GAAAr+D,KAAA6vG,IAAA,MAAAvtG,MAAA,GACA+7D,GAAA,EAAAA,EAAAp9D,OAAA,QAAAo9D,EAGA,IADA,IAAA92D,EAAA,IAAA68E,WAAA/lB,EAAAp9D,OAAA,GACAF,EAAA,EAAqBA,EAAAs9D,EAAAp9D,OAAA,EAA4BF,IACjDwG,EAAAxG,GAAA64E,SAAAvb,EAAA/7D,MAAA,EAAAvB,EAAA,EAAAA,EAAA,OAGA,OAAAwG,EAEA,aAIAkoG,EAAAvvG,UAAA+vG,2BAAA,SAAAJ,GACA,IAAAC,EAAAl2B,SAAA55E,KAAA6vG,GAAA,IACA,OAAAC,EAAA/0F,OAAAg1F,iBACAt2D,IAGAq2D,GAGAL,EAAAvvG,UAAAgwG,qBAAA,SAAAL,GACA,OAAArqF,WAAAxlB,KAAA6vG,KAGAJ,EAAAvvG,UAAAiwG,iBAAA,SAAAN,GACA,OAAA7vG,KAAA6vG,IAGAJ,EAAAvvG,UAAAkwG,kBAAA,SAAAP,GACA,IAAAzgG,EAAAkgG,EAAAntB,KAAAniF,KAAA6vG,IACA,UAAAzgG,EAIA,OACA4J,MAAA4gE,SAAAxqE,EAAA,OACA6J,OAAA2gE,SAAAxqE,EAAA,SAIAqgG,EAAAE,cAAA,SAAAzlG,GACA,IAAAf,OAAA,EACAkO,KAEA,IADAk4F,EAAAc,UAAA,EACA,QAAAlnG,EAAAomG,EAAAptB,KAAAj4E,KAAA,CACA,IAAA3C,EAAA4B,EAAA,GAGA,IAAA5B,EAAAzH,QAFA,MAEAyH,EAAAqlC,YAFA,OAEArlC,EAAAtG,OAAA,IACAsG,IAAAjF,MAAA,OAGA+U,EAAAlO,EAAA,IAAA5B,EAEA,OAAA8P,GAGAo4F,EAtFA,GA4FAa,GACAljB,OACAmjB,MAAA,EACAC,QAAA,EACAC,QAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,QAAA,EACAC,QAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,QAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAnR,MAAA,EACAoR,QAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,GAEAhlB,OACAuS,MAAA,EACA0S,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,MAAA,EACAC,QAAA,EACAC,MAAA,EACAC,MAAA,IASA,SAAAC,EAAAtmB,EAAAhqF,GACA,OAAAmM,OAAAokG,YAAAC,iBAAAxwG,GAAA,yBAAsEgqF,EAAA,KAyBtE,IAAAymB,EAAA,iDACAC,EAAA,qBAEAC,EAAA,IAAA7rG,QAAA,0CAAA7F,OACA,cAAAA,OACA,0BAAAA,OACA,iCAAAA,OACA,OAAAA,QACA2D,KAAA,SAEAguG,EAAA,iWAEAC,EAAA,wBA4UAC,EA1UA,WACA,SAAAC,KAjCA,SAAAh1D,EAAAqjC,GAA6D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAkCvGwwD,CAAAx0G,KAAAu0G,GAqUA,OAlUAA,EAAAE,UAAA,SAAAC,EAAAC,GACA,IAAAD,EACA,YAKA,IAFA,IAAAE,EAAA,KAEA7zG,EAAA,EAAmBA,EAAA2zG,EAAAzzG,OAAmBF,IAAA,CACtC,IAAAi+B,EAAA01E,EAAA3zG,GACAi+B,EAAAt9B,KAAAizG,IACAC,EAAA51E,GAIA,OAAA41E,GAGAL,EAAAM,oBAAA,SAAArnB,GACA,IAAAz8E,OAAA,EACA+jG,EAAAtnB,EAAA3sF,MAAA,KAQA,OAPAi0G,EAAA7zG,OAAA,GACA8P,EAAA+jG,EAAAtnE,QAAA,IACAz8B,GAAA6oE,SAAAk7B,EAAAtnE,SAAA5lC,SAAA,IACAmJ,IAAA,MAAA6oE,SAAAk7B,EAAAtnE,SAAA5lC,SAAA,KAAAmtG,QAAA,IAEAhkG,EAAAy8E,EAEAz8E,GAGAwjG,EAAA7lG,QAAA,SAAAP,EAAAugG,GACA,OAAAxD,EAAA31F,EAAA8rE,iBAAAqtB,EAAAvgG,GAAiEszE,iBAAA,KAGjE8yB,EAAAS,oBAAA,SAAA39D,EAAA82D,GACA,IAAA8G,KACAlkG,OAAA,EAGA,SAAAmkG,EAAAC,EAAA9xF,IACA,iBAAAvZ,QAAA,SAAAtG,GACA,IAAA4xG,EAAAD,EAAA/tF,OAAA,SAAAomE,GACA,OA5FA,SAAAA,EAAAhqF,GACA,IAAA6xG,EAAA/E,EAAA9sG,GACA,QAAA6xG,IAAA,IAAAA,EAAA7nB,EAAAlrF,MAAA,MA0FAgzG,CAAA9nB,EAAAhqF,KAEA,GAAA4xG,EAAAn0G,OAAA,CACA,IAAAs0G,EAAAH,EAAAhuF,OAAA,SAAAomE,GACA,WAAAA,EAAA5gD,YAAA,eAAA4gD,EAAA5gD,YAAA,YAEAvpB,EAAA7f,EAAA,SAAA+xG,EAAAt0G,OAAA,EAAAs0G,EAAA,GAAAH,EAAA,GAGAD,IAAA/tF,OAAA,SAAAomE,GACA,WAAA4nB,EAAAt1G,QAAA0tF,QAKAnqE,EAAAmyF,cAAAL,EAGA,IAvBAlB,EAAA5D,UAAA,EAuBA,OAAAt/F,EAAAkjG,EAAA9xB,KAAA9qC,KAAA,CACA,IAAAh0B,KAEAhM,EAAAgM,EAAAhM,MAAA,IAAAm4F,EAAAz+F,EAAA,IACAsS,EAAAlV,IAAAomG,EAAA7lG,QAAAqC,EAAA,GAAAo9F,GAEA,IAAAsH,EAAAp+F,EAAA+4F,kBAAA,cACAqF,IACApyF,EAAArK,MAAAy8F,EAAAz8F,MACAqK,EAAApK,OAAAw8F,EAAAx8F,QAEAoK,EAAAqyF,QAAAr+F,EAAAu4F,eAAA,sBAAAv4F,EAAAu4F,eAAA,aACAvsF,EAAAzgB,KAAAyU,EAAAs+F,KAEAT,KAAAngG,QAAAsC,EAAAu+F,QAAA,IAAA/0G,MAAA,UAAAwiB,GAEAA,EAAA0pE,aAAA,IAAA1pE,EAAA0pE,WAAAjtF,QAAA,UACAujB,EAAA0pE,WAAAwnB,EAAAM,oBAAAxxF,EAAA0pE,aAGAkoB,EAAA1zG,KAAA8hB,GAEA,OAAA4xF,GAGAV,EAAAsB,yBAAA,SAAAx+D,EAAA82D,EAAA3qG,GACA,IAAAsyG,EAAAhxG,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEAiM,OAAA,EACAglG,KACAr0G,EAAA,EAEA,IADAwyG,EAAA7D,UAAA,EACA,QAAAt/F,EAAAmjG,EAAA/xB,KAAA9qC,KAAA,CACA,IAAA2+D,KACA3+F,EAAA,IAAAm4F,EAAAz+F,EAAA,IACA,GAAAsG,EAAA4+F,OAAAzyG,EAAA,CAgBA,GAfAwyG,EAAA9iD,QAAA77C,EAAA,YACA2+F,EAAApzG,KAAAyU,EAAAs+F,KACAK,EAAAxyG,OACAwyG,EAAAj9F,QAAA,QAAA1B,EAAA6+F,QACAF,EAAAG,WAAA,QAAA9+F,EAAA++F,WACAJ,EAAAK,OAAA,QAAAh/F,EAAAi/F,OACAj/F,EAAAk/F,MACAP,EAAA7nG,IAAAomG,EAAA7lG,QAAA2I,EAAAk/F,IAAApI,IAGA6H,EAAAQ,KAAAn/F,EAAAo/F,SACAT,EAAApzG,OACAozG,EAAApzG,KAAAozG,EAAAQ,MAGAV,EAAA70G,OAAA,CACA,IAAAy1G,EAAAnC,EAAAE,UAAAqB,EAAAE,EAAA9iD,SACA8iD,EAAAlpB,WAAA4pB,IAAAlpB,MAAAsoB,EAAA,GAAAtoB,MAEAwoB,EAAAt0G,OACAq0G,EAAAx0G,KAAAy0G,IAGA,OAAAD,GAGAxB,EAAAoC,mBAAA,SAAAt/D,EAAA82D,EAAAzsG,EAAA8B,EAAAozG,GACA,IAAAC,EAAA,EACAxH,EAAA,EACAhsF,EAAA,IAAAmrF,EAAAL,GACAH,EAAA,IAAA1B,EACAwK,EAAA,EACAC,EAAA,KACAta,EAAA,IAAAoQ,EACA97F,OAAA,EACAhQ,OAAA,EAEAi2G,EAAA,KAIA,IAFA7C,EAAA9D,UAAA,EAEA,QAAAt/F,EAAAojG,EAAAhyB,KAAA9qC,KAAA,CACA,IAAA21C,EAAAj8E,EAAA,GACA,GAAAi8E,EAAA,CAEAyP,EAAAzP,SAAAxnE,WAAAwnE,GAEA,IAAA9yE,GAAA,IAAAnJ,EAAA,IAAAzO,MAAA,GACAm6F,EAAAviF,SAAA,KACAuiF,EAAA2Q,QAAA7rG,KAAA2Y,GAAA,MAAA8yE,EAAA9yE,IAAA,MAAA8yE,SACO,GAAAj8E,EAAA,IAEP,GAAAnH,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAAzP,UAAA,CACA,IAAA2V,EAAAkU,IACApa,EAAAj5F,OACAi5F,EAAAj6F,MAAA6sG,EACA5S,EAAAuR,WACAvR,EAAAkG,KACAlG,EAAAp5E,MAAA3hB,EACA+6F,EAAAqa,KACAra,EAAAwa,MAAAL,EACAna,EAAA0R,UAEA1R,EAAAyR,QAAA,IAAAn9F,EAAA,IAAAzO,MAAA,GACA40G,EAAAza,EAAAsa,GAEA1zF,EAAAyrF,UAAAvtG,KAAAk7F,GACAsa,EAAAta,EACA4S,GAAA5S,EAAAzP,SAEAyP,EAAA,IAAAoQ,QAEO,GAAA97F,EAAA,IAGP,GADA0rF,EAAA2R,cAAA,IAAAr9F,EAAA,IAAAzO,MAAA,GACAy0G,EAAA,CACA,IAAAzI,EAAAyI,EAAAI,mBACA7I,IACA7R,EAAA6R,gCAGO,GAAAv9F,EAAA,GAGP0rF,EAAA6Q,oBAAA,IAAAv8F,EAAA,IAAAzO,MAAA,GACAm6F,EAAA2Q,QAAA7rG,MAAA,oBAAAk7F,EAAA6Q,qBACA,OAAA0J,IACAA,EAAA3zF,EAAAyrF,UAAA7tG,YAEO,CAEP,IADA8P,IAAA,GAAA5H,MAAAirG,GACArzG,EAAA,EAAmBA,EAAAgQ,EAAA9P,aACnByM,IAAAqD,EAAAhQ,GADsCA,KAOtC,IAAAq2G,GAAA,IAAArmG,EAAAhQ,EAAA,IAAAuB,MAAA,GACA+0G,GAAA,IAAAtmG,EAAAhQ,EAAA,IAAAuB,MAAA,GAEA,OAAAyO,EAAAhQ,IACA,QACA07F,EAAA2Q,QAAA7rG,KAAA81G,GAAAD,EAAAC,IAAAD,IACA,MACA,oBACA/zF,EAAA7f,KAAA4zG,EAAAplE,cACA,MACA,qBACA6kE,EAAAxzF,EAAA6rF,QAAAt1B,SAAAw9B,GACA,MACA,qBACA/zF,EAAA+rF,eAAA5pF,WAAA4xF,GACA,MACA,cACA/zF,EAAAi5C,QAAAsd,SAAAw9B,GACA,MACA,aACA,MACA,cACA/zF,EAAA0rF,MAAA,EACA,MACA,UACA+H,IACAra,EAAA2Q,QAAA7rG,MAAA,QACA,MACA,wBACAu1G,EAAAl9B,SAAAw9B,GACA,MACA,UAEA,IACAE,EAAA,IAAA9H,EADA4H,GAEAG,EAAAD,EAAAnH,iBAAA,UACAqH,EAAAF,EAAAf,IACAkB,EAAAH,EAAAtH,mBAAA,MACAuH,IACAvJ,EAAA,IAAA1B,EACAkL,IAAA,0CAAA13G,QAAAy3G,IAAA,IACAvJ,EAAAt/D,OAAA6oE,EAEAvJ,EAAArB,QAAAwB,EACAH,EAAAtB,OAAA8K,EACAxJ,EAAAjkG,IAAA,KAEAikG,EAAAxnB,GAAAixB,IAGA,MACA,YACA,IAEAtI,EADA,IAAAK,EADA4H,GAEAlH,qBAAA,eAEAtmG,OAAA6mF,EAAA,EAAA7mF,CAAAulG,KACA9rF,EAAA8rF,mBAGA,MACA,UACA,IAAAuI,EAAA,IAAAlI,EAAA4H,GACA3a,EAAAyR,OAAAwJ,EAAAnB,IACA9Z,EAAA2R,aAAAsJ,EAAAC,UACAlb,EAAA0R,UACA1R,EAAAp5E,MAAA3hB,EACA+6F,EAAAj5F,OACAi5F,EAAAkG,GAAA,cACAt/E,EAAAwpE,YAAA4P,GACAA,EAAA,IAAAoQ,GACAS,mBAAAjqF,EAAAwpE,YAAAygB,mBACA,MACA,QACA7yB,EAAA,EAAA/kE,KAAA,gCAAA3E,KAmDA,OA9CA0rF,EAAAsa,KAEAta,EAAAyR,SACA7qF,EAAAyrF,UAAAh4C,MACAu4C,GAAA5S,EAAAzP,UAEA3pE,EAAAgsF,gBACAhsF,EAAAu0F,sBAAAvI,EAAAhsF,EAAAyrF,UAAA7tG,OACAoiB,EAAAwrF,MAAAgI,EAAA,EACAxzF,EAAA4rF,QAAA5rF,EAAAyrF,UAAA,GAAAzrF,EAAAyrF,UAAA,GAAAgI,GAAA,EACAzzF,EAAAurF,MAAAkI,GAEAzzF,EAAAwpE,aAAAxpE,EAAAyrF,UAAA7tG,QAIAoiB,EAAAyrF,UAAA+I,MAAA,SAAApb,GACA,OAAA4X,EAAA14C,KAAA8gC,EAAAyR,YAEAzzB,EAAA,EAAA/kE,KAAA,qGAEA+mF,EAAA,IAAAoQ,GACAqB,OAAA7qF,EAAAyrF,UAAA,GAAAZ,OACAzR,EAAA0R,UACA1R,EAAAp5E,MAAA3hB,EACA+6F,EAAAj5F,OACAi5F,EAAAkG,GAAA,cAEAt/E,EAAAwpE,YAAA4P,EACAp5E,EAAA2rF,gBAAA,GAaAgI,GAaA,SAAAlI,EAAAgJ,GAEA,IADA,IAAAC,EAAAjJ,EAAAgJ,GACA/2G,EAAA+2G,EAAA,EAA8B/2G,GAAA,EAAQA,IAAA,CACtC,IAAA07F,EAAAqS,EAAA/tG,GACA07F,EAAA4Q,gBAAA0K,EAAA1K,gBAAA,IAAA5Q,EAAAzP,SACA+qB,EAAAtb,GAjBAub,CAAA30F,EAAAyrF,UAAAkI,GAGA3zF,GAGAkxF,EAvUA,GAsVA,SAAA2C,EAAAza,EAAAsa,GACAta,EAAA6Q,mBACA7Q,EAAA4Q,gBAAA59F,KAAAtC,MAAAsvF,EAAA6Q,oBACGyJ,KAAA1J,kBACH5Q,EAAA4Q,gBAAA0J,EAAAkB,oBAGAruG,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAA4Q,mBACA5Q,EAAA4Q,gBAAA,KACA5Q,EAAA6Q,mBAAA,MAMA,IAAA4K,EAAA,WAAgD,SAAA7yD,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAxiB,GA4BA,IACAknB,EADAn6F,OACAm6F,YAQAqO,GACAC,SAAA,WACAC,MAAA,QACAC,YAAA,aACAC,eAAA,iBAMAC,GACAC,KAAA,OACAjL,MAAA,QACAkL,SAAA,YA+eAC,EAxeA,SAAAC,GAOA,SAAAC,EAAAtN,IA9DA,SAAAhsD,EAAAqjC,GAAiE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCA+D3G80D,CAAA94G,KAAA64G,GAEA,IAAAh8F,EA/DA,SAAA1Q,EAAAT,GAAiD,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EA+DvJstG,CAAAh5G,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAA8iE,iBAAA9iE,EAAA,EAAAmjE,cAAAnjE,EAAA,EAAA0jE,oBAAA1jE,EAAA,EAAA8jE,yBAGA,OADAxgE,EAAAo8F,WACAp8F,EAwdA,OAxhBA,SAAAq8F,EAAAC,GAA0C,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAoDrXG,CAAAT,EAAAD,GAmBAC,EAAAU,qBAAA,SAAA/1G,GACA,OAAAA,IAAA20G,EAAAG,aAAA90G,IAAA20G,EAAAI,gBAUAM,EAAAW,sBAAA,SAAA1rD,GAIA,OAHAA,EAAAtqD,MAIA,KAAA20G,EAAAG,YACA,OAAAE,EAAAhL,MACA,KAAA2K,EAAAI,eACA,OAAAC,EAAAE,SACA,QACA,OAAAF,EAAAC,OAIAI,EAAAY,eAAA,SAAAC,EAAA5rD,GACA,IAAA3/C,EAAAurG,EAAAvrG,IAOA,YAJAT,IAAAS,GAAA,IAAAA,EAAArO,QAAA,WAEAqO,EAAA2/C,EAAA3/C,KAEAA,GAWA0qG,EAAA34G,UAAAy5G,qBAAA,SAAA7rD,GACA,IAAA9N,EAAAhgD,KAAAurG,IAAAvrD,OACA45D,EAAA55D,EAAA65D,QACAC,EAAA95D,EAAA+5D,OAGAA,EAAA,IAFAH,GAAAE,GAEA95D,GAKA,OAHA8N,EAAAisD,SACA/5G,KAAAi5G,QAAAnrD,EAAAtqD,MAAAu2G,EAEAA,GAGAlB,EAAA34G,UAAA85G,kBAAA,SAAAlsD,GACA,OAAA9tD,KAAAi5G,QAAAnrD,EAAAtqD,OAGAq1G,EAAA34G,UAAA+5G,oBAAA,SAAAC,GACAl6G,KAAAi5G,QAAAiB,WACAl6G,KAAAi5G,QAAAiB,IASArB,EAAA34G,UAAAi6G,uBAAA,WACA,QAAAD,KAAAl6G,KAAAi5G,QAAA,CACA,IAAAc,EAAA/5G,KAAAi5G,QAAAiB,GACAH,GACAA,EAAA56D,UAGAn/C,KAAAi6G,oBAAAC,KAIArB,EAAA34G,UAAAi/C,QAAA,WACAn/C,KAAAm6G,yBAEAvB,EAAA14G,UAAAi/C,QAAAzzC,KAAA1L,OAGA64G,EAAA34G,UAAAk6G,kBAAA,SAAAtpG,GACA9Q,KAAAq6G,KAAAvpG,EAAA3C,KAAyB3K,KAAA20G,EAAAC,SAAA/0F,MAAA,EAAA3hB,GAAA,QAGzBm3G,EAAA34G,UAAAo6G,eAAA,SAAAxpG,GACA9Q,KAAAq6G,KAAAvpG,EAAA3C,KAAyB3K,KAAA20G,EAAAE,MAAAh1F,MAAAvS,EAAAuS,MAAA3hB,GAAAoP,EAAApP,MAGzBm3G,EAAA34G,UAAAq6G,oBAAA,SAAAzpG,GACA9Q,KAAAq6G,KAAAvpG,EAAA3C,KAAyB3K,KAAA20G,EAAAG,YAAAj1F,MAAA,KAAA3hB,GAAAoP,EAAApP,MAGzBm3G,EAAA34G,UAAAs6G,uBAAA,SAAA1pG,GACA9Q,KAAAq6G,KAAAvpG,EAAA3C,KAAyB3K,KAAA20G,EAAAI,eAAAl1F,MAAA,KAAA3hB,GAAAoP,EAAApP,MAGzBm3G,EAAA34G,UAAAm6G,KAAA,SAAAlsG,EAAA2/C,GACA,IAAA9N,EAAAhgD,KAAAurG,IAAAvrD,OAEAy6B,EAAA,EAAAI,MAAA,4BAAA/sB,EAAAtqD,KAAA,YAAAsqD,EAAAzqC,MAAA,SAAAyqC,EAAApsD,IAGA,IAAAq4G,EAAA/5G,KAAAg6G,kBAAAlsD,GACA,GAAAisD,EAAA,CACA,IAAAU,EAAAV,EAAAjsD,QACA,GAAA2sD,KAAAtsG,QAGA,OADAssE,EAAA,EAAAG,MAAA,6BACA,EAEAH,EAAA,EAAA/kE,KAAA,sCAAAo4C,EAAAtqD,MACAu2G,EAAAW,QAIA,IAAAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EAIA,OAAAhtD,EAAAtqD,MACA,KAAA20G,EAAAC,SACAuC,EAAA36D,EAAA+6D,wBACAH,EAAA56D,EAAAg7D,uBACAH,EAAA76D,EAAAi7D,0BACAH,EAAA96D,EAAAk7D,+BACA,MACA,KAAA/C,EAAAE,MAEAsC,EAAA,EACAC,EAAA56D,EAAAm7D,oBAEA,MACA,QACAR,EAAA36D,EAAAo7D,qBACAR,EAAA56D,EAAAm7D,oBACAN,EAAA76D,EAAAq7D,uBACAP,EAAA96D,EAAAs7D,4BAIAvB,EAAA/5G,KAAA25G,qBAAA7rD,GAEAA,EAAA3/C,MACA2/C,EAAAytD,aAAAztD,EAAAytD,cAAA,GAEA,IAAAC,GACAZ,UACAD,WACAE,aACAC,iBAGAW,GACAC,UAAA17G,KAAA27G,YAAAnxG,KAAAxK,MACA47G,QAAA57G,KAAA67G,UAAArxG,KAAAxK,MACA87G,UAAA97G,KAAA+7G,YAAAvxG,KAAAxK,OAOA,OAJAy6E,EAAA,EAAAI,MAAA,6CAAA1sE,GAEA4rG,EAAAM,KAAAvsD,EAAA0tD,EAAAC,IAEA,GAGA5C,EAAA34G,UAAAy7G,YAAA,SAAAjC,EAAAnP,EAAAz8C,GACA,IAAAkuD,EAAAl3G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEA,GAAAgpD,EAAAmuD,cAGA,OAFAj8G,KAAAk8G,mBAAAxC,EAAA5rD,QACA9tD,KAAAm8G,sBAAAzC,EAAAnP,EAAAz8C,EAAAkuD,GAIAh8G,KAAAi6G,oBAAAnsD,EAAAtqD,MAEA,IAAA6zC,EAAAqiE,EAAA5oG,KAEAy5F,EAAA6R,MAAAtS,EAAAp6F,MAIA,IAAA2nC,EAAAv3C,QAAA,WAMAu3C,EAAAv3C,QAAA,eAAAu3C,EAAAv3C,QAAA,4BACAE,KAAAq8G,4BAAA3C,EAAAnP,EAAAz8C,EAAAkuD,GAEAh8G,KAAAs8G,sBAAA5C,EAAAnP,EAAAz8C,EAAAkuD,GARAh8G,KAAAu8G,4BAAA7C,EAAA5rD,EAAA,sBAAAkuD,IAYAnD,EAAA34G,UAAA27G,UAAA,SAAAnC,EAAA5rD,GACA,IAAAkuD,EAAAl3G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEA9E,KAAAw8G,oBAAA1uD,EAAAkuD,IAGAnD,EAAA34G,UAAA67G,YAAA,SAAAxR,EAAAz8C,GACA,IAAAkuD,EAAAl3G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEA9E,KAAAw8G,oBAAA1uD,EAAAkuD,GAAA,IAGAnD,EAAA34G,UAAAo8G,sBAAA,SAAA5C,EAAAnP,EAAAz8C,EAAAkuD,GACA,IAAAzQ,EAAAvrG,KAAAurG,IACAl0D,EAAAqiE,EAAA5oG,KAEA3C,EAAA0qG,EAAAY,eAAAC,EAAA5rD,GAEAmnD,EAAAX,EAAAU,oBAAA39D,EAAAlpC,GACA,GAAA8mG,EAAAh0G,OAAA,CAOA,IAAA60G,EAAAb,EAAAtkG,IAAA,SAAA0S,GACA,OACA3hB,GAAA2hB,EAAAhM,MAAAm2F,MACAhgB,MAAAnqE,EAAAypE,cAIA2vB,EAAAnI,EAAAuB,yBAAAx+D,EAAAlpC,EAAA,QAAA2nG,GACA4G,EAAApI,EAAAuB,yBAAAx+D,EAAAlpC,EAAA,aAEA,GAAAsuG,EAAAx7G,OAAA,CAEA,IAAA07G,GAAA,EACAF,EAAA3yG,QAAA,SAAAswF,GACAA,EAAAjsF,MACAwuG,GAAA,MAQA,IAAAA,GAAA1H,EAAA,GAAAnoB,aAAAmoB,EAAA,GAAA59F,MAAAm2F,QACA/yB,EAAA,EAAAj7E,IAAA,2FACAi9G,EAAA95E,SACAn/B,KAAA,OACAZ,KAAA,UAKA2oG,EAAAt5F,QAAAsH,EAAA,EAAA+iE,iBACA24B,SACAwH,cACAC,YACAvuG,MACAo8F,QACAyR,wBA5CAh8G,KAAAu8G,4BAAA7C,EAAA5rD,EAAA,6BAAAkuD,IAgDAnD,EAAA34G,UAAAm8G,4BAAA,SAAA3C,EAAAnP,EAAAz8C,EAAAkuD,GACA,IAAAzQ,EAAAvrG,KAAAurG,IAEA7pG,EAAAosD,EAAApsD,GACA2hB,EAAAyqC,EAAAzqC,MACA7f,EAAAsqD,EAAAtqD,KAGA2K,EAAA0qG,EAAAY,eAAAC,EAAA5rD,GAEA8oD,EAAAhtG,OAAA6mF,EAAA,EAAA7mF,CAAAlI,KAAA,EACAk7G,EAAAhzG,OAAA6mF,EAAA,EAAA7mF,CAAAyZ,KAAAuzF,EACAiG,EAAAhE,EAAAW,sBAAA1rD,GAEAgvD,EAAAxI,EAAAqC,mBAAA+C,EAAA5oG,KAAA3C,EAAAyuG,EAAAC,EAAAjG,GASA,GANAkG,EAAAV,MAAA7R,EAAA6R,MAMA54G,IAAA20G,EAAAC,SAAA,CACA,IAAA2E,GACA5uG,MACAg+E,QAAA2wB,GAGAvR,EAAAt5F,QAAAsH,EAAA,EAAA+iE,iBACA24B,QAAA8H,GACAN,eACAtuG,MACAo8F,QACAyR,mBAUA,GALAzR,EAAAyS,QAAAlT,EAAAp6F,MAKAotG,EAAA9N,eAAA,CACA,IAAAiO,EAAAH,EAAAjwB,YAAA1+E,IACAnO,KAAAq6G,KAAA4C,GACAhB,eAAA,EACAz4G,OACA6f,QACAy5F,eACAp7G,KACAw7G,WAAA,EACAC,SAAA,KACA5B,aAAA,qBAMAztD,EAAAgvD,eAEA98G,KAAAm8G,sBAAAzC,EAAAnP,EAAAz8C,EAAAkuD,IAGAnD,EAAA34G,UAAAg8G,mBAAA,SAAAxC,EAAA5rD,GACA,IAAAsvD,EAAApqB,EAAA,EAAA9E,kBAAA,IAAA9J,WAAAs1B,EAAA5oG,OACAssG,EAAA9uB,WAAAxkF,QAAA,SAAAuzG,EAAAzwG,GACA,IAAA0wG,EAAAD,EAAAviC,KACA2hB,EAAA3uC,EAAAgvD,aAAAhO,UAAAliG,GAEA,IAAA6vF,EAAA4R,UAAAptG,SACAw7F,EAAA2R,aAAAj9F,OAAA,EAAAmsG,EAAApsF,IAAAosF,EAAA96G,OAAA,IAAA2O,OAAAmsG,EAAA96G,UAIAsrD,EAAAgvD,aAAAjwB,YAAAuhB,aAAAj9F,OAAAisG,EAAAhvB,eAAA,MAGAyqB,EAAA34G,UAAAq8G,4BAAA,SAAA7C,EAAA5rD,EAAAiS,EAAAi8C,GACAh8G,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAnM,cACAqN,QAAAlB,EAAA,EAAAxL,uBACA2M,OAAA,EACAj+E,IAAAurG,EAAAvrG,IACA4xD,SACAi8C,oBAIAnD,EAAA34G,UAAAs8G,oBAAA,SAAA1uD,EAAAkuD,GACA,IAAApB,EAAA91G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA21E,EAAA,EAAAK,KAAA,2CAAAhtB,EAAAtqD,KAAA,kBAEA,IAAA2oF,OAAA,EACAC,OAAA,EAEA2tB,EAAA/5G,KAAAg6G,kBAAAlsD,GAEA,OAAAA,EAAAtqD,MACA,KAAA20G,EAAAC,SACAjsB,EAAAyuB,EAAA3vB,EAAA,EAAAzL,sBAAAyL,EAAA,EAAA1L,oBACA6M,GAAA,EACA,MACA,KAAA+rB,EAAAE,MACAlsB,EAAAyuB,EAAA3vB,EAAA,EAAArL,mBAAAqL,EAAA,EAAAtL,iBACAyM,GAAA,EACA,MACA,KAAA+rB,EAAAG,YACAnsB,EAAAyuB,EAAA3vB,EAAA,EAAAlL,yBAAAkL,EAAA,EAAAnL,uBACAsM,GAAA,EACA,MACA,QAEAA,GAAA,EAGA2tB,IACAA,EAAAW,QACA16G,KAAAi6G,oBAAAnsD,EAAAtqD,OAGAxD,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAnM,cACAqN,UACAC,QACAj+E,IAAA4rG,EAAA5rG,IACA4rG,SACAjsD,UACAkuD,oBAIAnD,EAAA34G,UAAAi8G,sBAAA,SAAAzC,EAAAnP,EAAAz8C,EAAAkuD,GACA,IAAAx4G,EAAAsqD,EAAAtqD,KACA6f,EAAAyqC,EAAAzqC,MACA3hB,EAAAosD,EAAApsD,GACAo7G,EAAAhvD,EAAAgvD,aAGA,GAAAA,EAAA1N,eAMA,GADAyJ,EAAAU,qBAAAzrD,EAAAtqD,MAEAxD,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAojE,cACAwP,QAAA2wB,EACAz5F,SAAA,EACA3hB,MAAA,EACA6oG,QACAyR,wBAGA,OAAAx4G,GACA,KAAA20G,EAAAG,YACAt4G,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA2jE,oBACAiP,QAAA2wB,EACAp7G,KACA6oG,QACAyR,mBAEA,MACA,KAAA7D,EAAAI,eACAv4G,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA+jE,uBACA6O,QAAA2wB,EACAp7G,KACA6oG,QACAyR,wBA5BAh8G,KAAAu8G,4BAAA7C,EAAA5rD,EAAA,0BAAAkuD,IAmCA9D,EAAAW,EAAA,OACA9uG,IAAA,cACA/F,IAAA,WACA,OAAAm0G,KAGApuG,IAAA,YACA/F,IAAA,WACA,OAAAw0G,MAIAK,EAreA,CAseCxN,GAqBD,IA8HAkS,EA9HA,SAAA3E,GAGA,SAAA4E,EAAAjS,IAlBA,SAAAhsD,EAAAqjC,GAAiE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAmB3Gy5D,CAAAz9G,KAAAw9G,GAEA,IAAA3gG,EAnBA,SAAA1Q,EAAAT,GAAiE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAmBvKgyG,CAAA19G,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAkkE,eAGA,OADA5gE,EAAAo8F,WACAp8F,EAkHA,OAtIA,SAAAq8F,EAAAC,GAA0D,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAYrYwE,CAAAH,EAAA5E,GAWA4E,EAAAt9G,UAAAi/C,QAAA,WACA,IAAA85D,EAAAj5G,KAAAi5G,QACA,QAAA2E,KAAA3E,EAAA,CACA,IAAAc,EAAAd,EAAA2E,GACA7D,GACAA,EAAA56D,UAGAn/C,KAAAi5G,WAEAL,EAAA14G,UAAAi/C,QAAAzzC,KAAA1L,OAGAw9G,EAAAt9G,UAAA29G,cAAA,SAAA/sG,GACA,IAAA2rF,EAAA3rF,EAAA2rF,KACAj5F,EAAAi5F,EAAAj5F,KACAy1G,EAAAj5G,KAAAi5G,QACAj5D,EAAAhgD,KAAAurG,IAAAvrD,OACA89D,EAAA99D,EAAA+9D,QACAC,EAAAh+D,EAAA+5D,OAGAtd,EAAAwhB,OAAA,EAEA,IAAAlE,EAAAd,EAAAz1G,GACAu2G,IACAt/B,EAAA,EAAA/kE,KAAA,4CAAAlS,GACAu2G,EAAAW,SAGAX,EAAAd,EAAAz1G,GAAAi5F,EAAAsd,OAAA/5D,EAAA+9D,QAAA,IAAAD,EAAA99D,GAAA,IAAAg+D,EAAAh+D,GAEA,IACAw7D,EACAC,EAFAhB,OAAA,EAIAA,GAAqBtsG,IAAAsuF,EAAAtuF,IAAAsuF,OAAA8e,aAAA,cAAA2C,cAAA,GAErB,IAAA17G,EAAAi6F,EAAA0hB,qBACAjtF,EAAAurE,EAAA0a,mBAEAvtG,OAAA6mF,EAAA,EAAA7mF,CAAApH,IAAAoH,OAAA6mF,EAAA,EAAA7mF,CAAAsnB,KACAupF,EAAAyC,WAAA16G,EACAi4G,EAAA0C,SAAAjsF,GAGAsqF,GACAZ,QAAA56D,EAAAo+D,mBACAzD,SAAA,EACAE,WAAA,EACAC,cAAA96D,EAAAq+D,4BAGA5C,GACAC,UAAA17G,KAAA27G,YAAAnxG,KAAAxK,MACA47G,QAAA57G,KAAA67G,UAAArxG,KAAAxK,MACA87G,UAAA97G,KAAA+7G,YAAAvxG,KAAAxK,MACAs+G,WAAAt+G,KAAAu+G,aAAA/zG,KAAAxK,OAGA+5G,EAAAM,KAAAI,EAAAe,EAAAC,IAGA+B,EAAAt9G,UAAAy7G,YAAA,SAAAjC,EAAAnP,EAAAz8C,GACA,IAAAkuD,EAAAl3G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEA8+B,EAAA81E,EAAA5oG,KACA2rF,EAAA3uC,EAAA2uC,KAEAA,EAAAsd,YAAArsG,EACA1N,KAAAi5G,QAAAxc,EAAAj5F,WAAAkK,EACA1N,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAqkE,aAA6Dh6C,UAAA64D,OAAA8N,QAAAyR,oBAG7DwB,EAAAt9G,UAAA27G,UAAA,SAAAnC,EAAA5rD,GACA,IAAAkuD,EAAAl3G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEA23F,EAAA3uC,EAAA2uC,KACAsd,EAAAtd,EAAAsd,OACAA,GACAA,EAAAW,QAGA16G,KAAAi5G,QAAAxc,EAAAj5F,WAAAkK,EACA1N,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OAAuD/6E,KAAAynF,EAAA,EAAAnM,cAAAqN,QAAAlB,EAAA,EAAAjL,gBAAAoM,OAAA,EAAAqQ,KAAA3uC,EAAA2uC,KAAAid,WAAAsC,oBAGvDwB,EAAAt9G,UAAA67G,YAAA,SAAAxR,EAAAz8C,GACA,IAAAkuD,EAAAl3G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEA23F,EAAA3uC,EAAA2uC,KACAsd,EAAAtd,EAAAsd,OACAA,GACAA,EAAAW,QAGA16G,KAAAi5G,QAAAxc,EAAAj5F,WAAAkK,EACA1N,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OAAuD/6E,KAAAynF,EAAA,EAAAnM,cAAAqN,QAAAlB,EAAA,EAAAhL,kBAAAmM,OAAA,EAAAqQ,KAAA3uC,EAAA2uC,KAAAuf,oBAMvDwB,EAAAt9G,UAAAq+G,aAAA,SAAAhU,EAAAz8C,EAAAh9C,GACA,IAAAkrG,EAAAl3G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEA23F,EAAA3uC,EAAA2uC,KACAA,EAAAwhB,OAAA1T,EAAA0T,OACAj+G,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAmkE,oBAAoE+e,OAAA8N,QAAAyR,oBAGpEwB,EA3HA,CA4HCnS,GAmBD,IA2FAmT,EA3FA,SAAA5F,GAGA,SAAA6F,EAAAlT,IAlBA,SAAAhsD,EAAAqjC,GAA4D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAmBtG06D,CAAA1+G,KAAAy+G,GAEA,IAAA5hG,EAnBA,SAAA1Q,EAAAT,GAA4D,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAmBlKizG,CAAA3+G,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAklE,cAKA,OAHA5hE,EAAAo8F,WACAp8F,EAAA+hG,WAAA,KACA/hG,EAAAgiG,WAAA,KACAhiG,EA6EA,OAnGA,SAAAq8F,EAAAC,GAAqD,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAYhY2F,CAAAL,EAAA7F,GAaA6F,EAAAv+G,UAAAi/C,QAAA,WACA,QAAAy+D,KAAA59G,KAAAi5G,QAAA,CACA,IAAAc,EAAA/5G,KAAAi5G,QAAA2E,GACA7D,GACAA,EAAA56D,UAGAn/C,KAAAi5G,WACA5N,EAAAnrG,UAAAi/C,QAAAzzC,KAAA1L,OAGAy+G,EAAAv+G,UAAA6+G,aAAA,SAAAjuG,GACA,IAAA2rF,EAAA3rF,EAAA2rF,KACAj5F,EAAAi5F,EAAAj5F,KACAu2G,EAAA/5G,KAAAi5G,QAAAz1G,GACAuzF,EAAA0F,EAAA1F,YACAkX,EAAAlX,EAAAkX,IAEA,GAAAA,IAAAjuG,KAAA6+G,YAAA,OAAA7+G,KAAA4+G,WAAA,CACA,IAAA5+D,EAAAhgD,KAAAurG,IAAAvrD,OAEA+5D,IACAt/B,EAAA,EAAA/kE,KAAA,sCAAAlS,GACAu2G,EAAAW,SAEAje,EAAAsd,OAAA/5G,KAAAi5G,QAAAz1G,GAAA,IAAAw8C,EAAA+5D,OAAA/5D,GACAhgD,KAAA6+G,WAAA5Q,EACAjuG,KAAA4+G,WAAA,KAEA,IAAAnE,EACAe,EACAC,EACAhB,GAAuBtsG,IAAA8/F,EAAAxR,OAAA8e,aAAA,eACvBC,GAAsBZ,QAAA56D,EAAAo+D,mBAAAzD,SAAA36D,EAAAg/D,oBAAAnE,WAAA76D,EAAAi/D,sBAAAnE,cAAA96D,EAAAq+D,4BACtB5C,GAAyBC,UAAA17G,KAAA27G,YAAAnxG,KAAAxK,MAAA47G,QAAA57G,KAAA67G,UAAArxG,KAAAxK,MAAA87G,UAAA97G,KAAA+7G,YAAAvxG,KAAAxK,OACzBy8F,EAAAsd,OAAAM,KAAAI,EAAAe,EAAAC,QACKz7G,KAAA4+G,aAEL7nB,EAAAhtF,IAAA/J,KAAA4+G,WACA5+G,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAmlE,YAA8D+d,WAI9DgiB,EAAAv+G,UAAAy7G,YAAA,SAAAjC,EAAAnP,EAAAz8C,GACA,IAAA2uC,EAAA3uC,EAAA2uC,KACAz8F,KAAA4+G,WAAAniB,EAAA1F,YAAAhtF,IAAA,IAAAq6E,WAAAs1B,EAAA5oG,MAEA2rF,EAAAsd,YAAArsG,EACA1N,KAAAi5G,QAAAxc,EAAAj5F,WAAAkK,EACA1N,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAmlE,YAA4D+d,UAG5DgiB,EAAAv+G,UAAA27G,UAAA,SAAAnC,EAAA5rD,GACA,IAAA2uC,EAAA3uC,EAAA2uC,KACAsd,EAAAtd,EAAAsd,OACAA,GACAA,EAAAW,QAGA16G,KAAAi5G,QAAAnrD,EAAAtqD,WAAAkK,EACA1N,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OAAuD/6E,KAAAynF,EAAA,EAAAnM,cAAAqN,QAAAlB,EAAA,EAAA5K,eAAA+L,OAAA,EAAAqQ,OAAAid,cAGvD+E,EAAAv+G,UAAA67G,YAAA,SAAAxR,EAAAz8C,GACA,IAAA2uC,EAAA3uC,EAAA2uC,KACAsd,EAAAtd,EAAAsd,OACAA,GACAA,EAAAW,QAGA16G,KAAAi5G,QAAAnrD,EAAAtqD,WAAAkK,EACA1N,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OAAuD/6E,KAAAynF,EAAA,EAAAnM,cAAAqN,QAAAlB,EAAA,EAAA3K,iBAAA8L,OAAA,EAAAqQ,UAGvDgiB,EAxFA,CAyFCpT,GAeD,IAAA6T,EACA,aADAA,EAEA,YAFAA,EAGA,UAHAA,EAIA,KAGAC,EAAA,SAAAvG,GAGA,SAAAwG,EAAA7T,IAnBA,SAAAhsD,EAAAqjC,GAAkE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAoB5Gq7D,CAAAr/G,KAAAo/G,GAEA,IAAAviG,EApBA,SAAA1Q,EAAAT,GAAkE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAoBxK4zG,CAAAt/G,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAA0iE,gBAAA1iE,EAAA,EAAA4kE,cAAA5kE,EAAA,EAAAqkE,cAQA,OANA/gE,EAAA0iG,cAAA,GAEA1iG,EAAAiyF,UAAAllG,OAAA8/B,OAAA,MACA7sB,EAAA2iG,WAAA51G,OAAA8/B,OAAA,MAEA7sB,EAAAmjC,OAAAurD,EAAAvrD,OACAnjC,EA4SA,OAtUA,SAAAq8F,EAAAC,GAA2D,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAatYsG,CAAAL,EAAAxG,GAgBAwG,EAAAl/G,UAAAi/C,QAAA,WACAn/C,KAAA8uG,UAAA,KACA9uG,KAAAw/G,WAAA,KACAx/G,KAAAggD,OAAA,KACAqrD,EAAAnrG,UAAAi/C,QAAAzzC,KAAA1L,MACA44G,EAAA14G,UAAAi/C,QAAAzzC,KAAA1L,OAYAo/G,EAAAl/G,UAAAw/G,gBAAA,SAAAtxG,EAAAyuG,GACA,IAAA/N,EAAA9uG,KAAA8uG,UACA6Q,EAAA/1G,OAAAC,KAAAilG,GAAA1nF,OAAA,SAAArd,GACA,IAAA61G,EAAA9Q,EAAA/kG,GACA,GAAA61G,EAAA5vG,KAAAxM,OAAAq5G,EACA,SAGA,IAAA+C,EAAAC,SACA,SAGA,IAAApjB,EAAAmjB,EAAA5vG,KACA,OAAAysF,EAAAsI,UAAA32F,MAAAquF,EAAAqI,SAEA,OAAA6a,EAAA1+G,OACA,YAGA,IAAA6+G,EAAAH,EAAA7oD,MACA,OAAAg4C,EAAAgR,GAAA9vG,MAaAovG,EAAAl/G,UAAA6/G,uBAAA,SAAAC,EAAAC,GACA,IAAA/hG,EAAAle,KAEAkgH,OAAA,EACAl+G,OAAA,EAEA4H,OAAAC,KAAA7J,KAAA8uG,WAAAhlG,QAAA,SAAAC,GACA,IAAA61G,EAAA1hG,EAAA4wF,UAAA/kG,GACA,QAAA61G,EAAAC,SAAA,CACA,IAAAM,EAAAP,EAAAQ,MAAAJ,GACA,GAAAG,EAAA,CACAD,EAAAC,EAAAn+G,KACA,QAAAjB,EAAA,EAAyBA,EAAAm/G,EAAAj/G,OAA0BF,IAGnD,GAFAiB,EAAAk+G,EAAAn/G,IAEA,IAAAmd,EAAAmiG,eAAAr+G,EAAA+iG,SAAA/iG,EAAA8iG,OAAAmb,GAAA,CAEA/hG,EAAAoiG,eAAAV,EAAA5vG,MACA,YAeAovG,EAAAl/G,UAAAqgH,uBAAA,SAAAl+B,GACA,IAAArjE,EAAAhf,KAEAwgH,EAAAxgH,KAAAygH,eAAAp+B,GACAu9B,EAAA5/G,KAAA8uG,UAAA0R,GACAZ,IACAA,EAAAC,UAAA,EAEAj2G,OAAAC,KAAA7J,KAAAw/G,YAAA11G,QAAA,SAAAk2G,GACA,GAAA39B,EAAAsrB,oBAAAqS,GAAA,CACA,IAAAC,EAAAjhG,EAAAwgG,WAAAQ,GAGAJ,EAAAQ,MAAAJ,GAAAhhG,EAAA0hG,iBAAAr+B,EAAA0iB,SAAA1iB,EAAAyiB,OAAAmb,QAMAb,EAAAl/G,UAAAwgH,iBAAA,SAAA3b,EAAAD,EAAAmb,GAKA,IAJA,IAAAC,KACAhvD,OAAA,EACAo5C,OAAA,EACAqW,GAAA,EACA5/G,EAAA,EAAmBA,EAAAk/G,EAAAh/G,OAAsBF,IAAA,CAGzC,GAFAmwD,EAAA+uD,EAAAz9G,MAAAzB,GAAAf,KAAAu/G,cACAjV,EAAA2V,EAAA/uF,IAAAnwB,GAAAf,KAAAu/G,cACAxa,GAAA7zC,GAAA4zC,GAAAwF,EAAA,CAGA4V,EAAA3+G,MACAwjG,SAAAh9F,KAAAE,IAAA88F,EAAAkb,EAAAz9G,MAAAzB,IACA+jG,OAAA/8F,KAAAC,IAAA88F,EAAAmb,EAAA/uF,IAAAnwB,MAEA,MACO,GAAAgkG,EAAAuF,GAAAxF,EAAA5zC,EAGPgvD,EAAA3+G,MACAwjG,SAAAh9F,KAAAE,IAAA88F,EAAAkb,EAAAz9G,MAAAzB,IACA+jG,OAAA/8F,KAAAC,IAAA88F,EAAAmb,EAAA/uF,IAAAnwB,MAEA4/G,GAAA,OACO,GAAA7b,GAAA5zC,EAEP,MAIA,OACAlvD,KAAAk+G,EACAU,QAAAD,IAIAvB,EAAAl/G,UAAAugH,eAAA,SAAAp+B,GACA,OAAAA,EAAA7+E,KAAA,IAAA6+E,EAAAh/D,MAAA,IAAAg/D,EAAA40B,MAAA,IAAA50B,EAAAsgB,IAUAyc,EAAAl/G,UAAA2gH,mBAAA,SAAA7+G,GACA,IAAAud,EAAAvf,KAEA8gH,OAAA,EACA5vD,OAAA,EACAo5C,OAAA,EACAyW,EAAA,KACAC,EAAA,EAgBA,OAfAp3G,OAAAC,KAAA7J,KAAA8uG,WAAAhlG,QAAA,SAAAC,GACA,IAAA61G,EAAArgG,EAAAuvF,UAAA/kG,GACAwV,EAAA0hG,UAAArB,KACA1uD,EAAA0uD,EAAA5vG,KAAA+0F,SAAAxlF,EAAAggG,cACAjV,EAAAsV,EAAA5vG,KAAA80F,OAAAvlF,EAAAggG,cACAv9G,GAAAkvD,GAAAlvD,GAAAsoG,IAEAwW,EAAA/4G,KAAAC,IAAAhG,EAAAkvD,EAAAo5C,EAAAtoG,GACAg/G,GAAAF,IACAC,EAAAnB,EAAA5vG,KACAgxG,EAAAF,OAKAC,GASA3B,EAAAl/G,UAAAghH,SAAA,SAAA7+B,GACA,IAAAm+B,EAAAxgH,KAAAygH,eAAAp+B,GACAu9B,EAAA5/G,KAAA8uG,UAAA0R,GACAzkE,EAAAmjE,EAYA,YAVAxxG,IAAAkyG,IAIA7jE,EAHA6jE,EAAAC,UAEO,IAAA7/G,KAAAihH,UAAArB,GACPV,EAEAA,EAJAA,GAQAnjE,GAGAqjE,EAAAl/G,UAAA+gH,UAAA,SAAArB,GACA,WAAAA,EAAAC,gBAAAnyG,IAAAkyG,EAAAQ,MAAA/yB,QAAA,IAAAuyB,EAAAQ,MAAA/yB,MAAAuzB,cAAAlzG,IAAAkyG,EAAAQ,MAAAhzB,QAAA,IAAAwyB,EAAAQ,MAAAhzB,MAAAwzB,UAGAxB,EAAAl/G,UAAAmgH,eAAA,SAAAtb,EAAAD,EAAAmb,GAGA,IAFA,IAAA/uD,OAAA,EACAo5C,OAAA,EACAvpG,EAAA,EAAmBA,EAAAk/G,EAAAh/G,OAAsBF,IAAA,CAGzC,GAFAmwD,EAAA+uD,EAAAz9G,MAAAzB,GAAAf,KAAAu/G,cACAjV,EAAA2V,EAAA/uF,IAAAnwB,GAAAf,KAAAu/G,cACAxa,GAAA7zC,GAAA4zC,GAAAwF,EACA,SAGA,GAAAxF,GAAA5zC,EAEA,SAIA,UAQAkuD,EAAAl/G,UAAAihH,aAAA,SAAAh9G,GACA,IAAAk+E,EAAAl+E,EAAAs4F,KAGA7yF,OAAA6mF,EAAA,EAAA7mF,CAAAy4E,EAAAsgB,MAAAtgB,EAAA++B,cACAphH,KAAA8uG,UAAA9uG,KAAAygH,eAAAp+B,KACAryE,KAAAqyE,EACA+9B,MAAAx2G,OAAA8/B,OAAA,MACAm2E,UAAA,KAUAT,EAAAl/G,UAAAmhH,iBAAA,SAAAl9G,GACA,IAAAm9G,EAAAthH,KAGAA,KAAAw/G,WAAAr7G,EAAAq7G,WACA51G,OAAAC,KAAA7J,KAAAw/G,YAAA11G,QAAA,SAAAk2G,GACA,IAAAC,EAAAqB,EAAA9B,WAAAQ,GACAsB,EAAAvB,uBAAAC,EAAAC,MASAb,EAAAl/G,UAAAqhH,eAAA,SAAAp9G,GACAnE,KAAAugH,uBAAAp8G,EAAAs4F,OAUA2iB,EAAAl/G,UAAAshH,YAAA,SAAAn/B,GACA,IAAAm+B,EAAAxgH,KAAAygH,eAAAp+B,GACA,YAAA30E,IAAA1N,KAAA8uG,UAAA0R,IASApB,EAAAl/G,UAAAogH,eAAA,SAAAj+B,GACA,IAAAm+B,EAAAxgH,KAAAygH,eAAAp+B,UACAriF,KAAA8uG,UAAA0R,IAQApB,EAAAl/G,UAAAuhH,mBAAA,WACAzhH,KAAA8uG,UAAAllG,OAAA8/B,OAAA,OAGA01E,EA1TA,CA2TC/T,GA0CDqW,GAxBAC,OAAA,SAAA90F,EAAA+0F,GAMA,IALA,IAAAC,EAAA,EACAC,EAAAj1F,EAAA5rB,OAAA,EACA8gH,EAAA,KACAC,EAAA,KAEAH,GAAAC,GAAA,CAIA,IAAAG,EAAAL,EAFAI,EAAAn1F,EADAk1F,GAAAF,EAAAC,GAAA,MAIA,GAAAG,EAAA,EACAJ,EAAAE,EAAA,MACO,MAAAE,EAAA,GAGP,OAAAD,EAFAF,EAAAC,EAAA,GAMA,cAkBA,IAAAG,EAAA,WACA,SAAAA,KAbA,SAAA3iE,EAAAqjC,GAA+D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAczGm+D,CAAAniH,KAAAkiH,GA2GA,OAlGAA,EAAAE,WAAA,SAAApM,EAAA5nG,GACA,IACA,GAAA4nG,EAEA,IADA,IAAA6J,EAAA7J,EAAA6J,SACA9+G,EAAA,EAAuBA,EAAA8+G,EAAA5+G,OAAqBF,IAC5C,GAAAqN,GAAAyxG,EAAAr9G,MAAAzB,IAAAqN,GAAAyxG,EAAA3uF,IAAAnwB,GACA,SAIK,MAAAg6E,IAKL,UAGAmnC,EAAAG,WAAA,SAAArM,EAAAtkF,EAAA4wF,GACA,IACA,GAAAtM,EAAA,CACA,IAAAuM,EAAAvM,EAAA6J,SACAA,KACA9+G,OAAA,EACA,IAAAA,EAAA,EAAmBA,EAAAwhH,EAAAthH,OAAsBF,IACzC8+G,EAAAt+G,MAAyBiB,MAAA+/G,EAAA//G,MAAAzB,GAAAmwB,IAAAqxF,EAAArxF,IAAAnwB,KAGzB,OAAAf,KAAAwiH,aAAA3C,EAAAnuF,EAAA4wF,IAEK,MAAAvnC,IAKL,OAAYl5E,IAAA,EAAAW,MAAAkvB,EAAAR,IAAAQ,EAAA+wF,eAAA/0G,IAGZw0G,EAAAM,aAAA,SAAA3C,EAAAnuF,EAAA4wF,GACA,IAAAI,KAGAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACA/hH,OAAA,EAaA,IAXA8+G,EAAAvqG,KAAA,SAAAC,EAAAC,GACA,IAAA8uB,EAAA/uB,EAAA/S,MAAAgT,EAAAhT,MACA,OAAA8hC,GAGA9uB,EAAA0b,IAAA3b,EAAA2b,MAMAnwB,EAAA,EAAeA,EAAA8+G,EAAA5+G,OAAqBF,IAAA,CACpC,IAAAgiH,EAAAL,EAAAzhH,OACA,GAAA8hH,EAAA,CACA,IAAAC,EAAAN,EAAAK,EAAA,GAAA7xF,IAEA2uF,EAAA9+G,GAAAyB,MAAAwgH,EAAAV,EAKAzC,EAAA9+G,GAAAmwB,IAAA8xF,IACAN,EAAAK,EAAA,GAAA7xF,IAAA2uF,EAAA9+G,GAAAmwB,KAIAwxF,EAAAnhH,KAAAs+G,EAAA9+G,SAIA2hH,EAAAnhH,KAAAs+G,EAAA9+G,IAGA,IAAAA,EAAA,EAAA4hH,EAAA,EAAAC,EAAAC,EAAAnxF,EAA6D3wB,EAAA2hH,EAAAzhH,OAAsBF,IAAA,CACnF,IAAAyB,EAAAkgH,EAAA3hH,GAAAyB,MACA0uB,EAAAwxF,EAAA3hH,GAAAmwB,IAEA,GAAAQ,EAAA4wF,GAAA9/G,GAAAkvB,EAAAR,EAEA0xF,EAAApgH,EAEAmgH,GADAE,EAAA3xF,GACAQ,OACO,GAAAA,EAAA4wF,EAAA9/G,EAAA,CACPsgH,EAAAtgH,EACA,OAGA,OAAYX,IAAA8gH,EAAAngH,MAAAogH,EAAA1xF,IAAA2xF,EAAAJ,UAAAK,IAGZZ,EA7GA,GAgHAe,EAAA1jH,EAAA,GACA2jH,EAAA3jH,EAAA6+C,EAAA6kE,GAGAE,EAAA5jH,EAAA,IACA6jH,EAAA7jH,EAAA6+C,EAAA+kE,GAGAE,EAAA9jH,EAAA,IAOA,SAAA+jH,IACA,uBAAA3zG,OACA,OAAAA,OAAAokG,aAAApkG,OAAA4zG,kBAIA,IAAAr4B,EAAA3rF,EAAA,GAkBA,IAAAilD,EAAA56C,OAAAshF,EAAA,EAAAthF,GACAmqG,GAAAuP,IA0JAE,GAxJA,WACA,SAAAC,EAAAlY,EAAA7pG,IAjBA,SAAA69C,EAAAqjC,GAAyD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAkBnG0/D,CAAA1jH,KAAAyjH,GAEAzjH,KAAAurG,MACAvrG,KAAA0B,KAEA,IAAAolD,EAAA9mD,KAAA8mD,SAAA,IAAAo8D,EAAA3tG,EACAyqC,EAAAurD,EAAAvrD,OACA8G,EAAA70C,QAAA,SAAAslD,GACA,QAAA53C,EAAA7a,UAAA7D,OAAA6P,EAAAjF,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAwFA,EAAAgC,EAAahC,IACrG7M,EAAA6M,EAAA,GAAA7Y,UAAA6Y,GAGAmpC,EAAAw+B,KAAA/4E,MAAAu6C,GAAAyQ,KAAAxiD,OAAAjE,KAGAg2C,EAAAuJ,IAAA,SAAAkH,GACA,QAAA4jB,EAAAr2E,UAAA7D,OAAA6P,EAAAjF,MAAAsvE,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAA4FA,EAAAF,EAAeE,IAC3GvqE,EAAAuqE,EAAA,GAAAv2E,UAAAu2E,GAGAv0B,EAAAk/B,eAAAz5E,MAAAu6C,GAAAyQ,GAAAxiD,OAAAjE,KAGA,IAAA6yG,EAAA,SAAAnkG,EAAA1O,IACAA,SACA2rF,KAAAz8F,KAAAy8F,KACA3rF,EAAApP,GAAA1B,KAAA0B,GACA6pG,EAAAt5F,QAAAuN,EAAA1O,IACKtG,KAAAxK,MAGL8mD,EAAApnC,GAAAnG,EAAA,EAAAskE,eAAA8lC,GACA78D,EAAApnC,GAAAnG,EAAA,EAAAukE,0BAAA6lC,GACA78D,EAAApnC,GAAAnG,EAAA,EAAA0kE,kBAAA0lC,GACA78D,EAAApnC,GAAAnG,EAAA,EAAA2kE,YAAAylC,GACA78D,EAAApnC,GAAAnG,EAAA,EAAAglE,MAAAolC,GACA78D,EAAApnC,GAAAnG,EAAA,EAAAykE,sBAAA2lC,GACA78D,EAAApnC,GAAAnG,EAAA,EAAAwkE,sBAAA4lC,GACA78D,EAAApnC,GAAAnG,EAAA,EAAAikE,eAAAmmC,GAEA,IAAA9qB,GACA+qB,IAAA7P,GAAAC,gBAAA,aACApY,KAAAmY,GAAAC,gBAAA,cACAnY,IAAAkY,GAAAC,gBAAA,4BAIA/P,EAAAplD,UAAAolD,OACA,GAAAjkD,EAAA6jE,cAAA,oBAAAC,OAAA,CACArpC,EAAA,EAAAj7E,IAAA,yBACA,IAAAukH,OAAA,EACA,IACAA,EAAA/jH,KAAA+jH,EAAAX,IAAA,IACApjH,KAAAgkH,OAAAhkH,KAAAikH,gBAAAz5G,KAAAxK,MACA+jH,EAAAnlG,iBAAA,UAAA5e,KAAAgkH,QACAD,EAAA70G,QAAA,SAAAqoD,GACAg0C,EAAAt5F,QAAAsH,EAAA,EAAAglE,OAAwD/6E,KAAAynF,EAAA,EAAA/L,YAAAiN,QAAAlB,EAAA,EAAAnK,mBAAAsL,OAAA,EAAA70B,MAAA,gBAAAkuB,KAAwJ3lB,QAAAvI,EAAAuI,QAAA,KAAAvI,EAAA2sD,SAAA,IAAA3sD,EAAA4sD,OAAA,QAEhNJ,EAAAK,aAAuBr/E,IAAA,OAAA8zD,gBAAAoL,SAAAviG,KAAAs+C,OAAA9yC,KAAAE,UAAA4yC,KAChB,MAAAylC,GACPhL,EAAA,EAAAM,MAAA,qEACAgpC,GAEAv/D,EAAA6/D,IAAAC,gBAAAP,EAAAQ,WAEAvkH,KAAAkqG,QAAA,IAAAmZ,EAAA,EAAAv8D,EAAA+xC,EAAA74C,EAAAikD,GACAjkG,KAAA+jH,OAAAr2G,QAGA1N,KAAAkqG,QAAA,IAAAmZ,EAAA,EAAAv8D,EAAA+xC,EAAA74C,EAAAikD,GA8EA,OA1EAwf,EAAAvjH,UAAAi/C,QAAA,WACA,IAAA4kE,EAAA/jH,KAAA+jH,EACA,GAAAA,EACAA,EAAAjlG,oBAAA,UAAA9e,KAAAgkH,QACAD,EAAAS,YACAxkH,KAAA+jH,EAAA,SACK,CACL,IAAA7Z,EAAAlqG,KAAAkqG,QACAA,IACAA,EAAA/qD,UACAn/C,KAAAkqG,QAAA,MAGA,IAAApjD,EAAA9mD,KAAA8mD,SACAA,IACAA,EAAAm/B,qBACAjmF,KAAA8mD,SAAA,OAIA28D,EAAAvjH,UAAAqB,KAAA,SAAAuP,EAAA+7E,EAAAC,EAAAC,EAAA0P,EAAAzP,EAAAoD,EAAAia,GACA,IAAA0Z,EAAA/jH,KAAA+jH,EACAh0B,EAAAnmF,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAApM,UAAAoM,EAAApM,SAAAoM,EAAAj6F,MACAu0F,EAAA0F,EAAA1F,YACA0tB,EAAAzkH,KAAAy8F,KACA0N,IAAAsa,GAAAhoB,EAAAqa,KAAA2N,EAAA3N,IACA1M,IAAAqa,GAAAhoB,EAAAp5E,QAAAohG,EAAAphG,OACAqhG,EAAAD,GAAAhoB,EAAAkG,KAAA8hB,EAAA9hB,GAAA,EACAxS,GAAAia,GAAAsa,EAUA,GATAva,GACA1vB,EAAA,EAAAj7E,IAAAQ,KAAA0B,GAAA,2BAGA0oG,GACA3vB,EAAA,EAAAj7E,IAAAQ,KAAA0B,GAAA,oBAGA1B,KAAAy8F,OACAsnB,EAEAA,EAAAK,aAAqBr/E,IAAA,QAAAj0B,OAAAimF,cAAAlK,cAAAC,aAAAC,aAAAgD,aAAAoa,gBAAAC,cAAAja,aAAAnD,WAAAoD,qBAAAia,kBAAmUv5F,aAAA6zG,aAAA7zG,WACnV,CACL,IAAAo5F,EAAAlqG,KAAAkqG,QACAA,GACAA,EAAA3oG,KAAAuP,EAAAimF,EAAAlK,EAAAC,EAAAC,EAAAgD,EAAAoa,EAAAC,EAAAja,EAAAnD,EAAAoD,EAAAia,KAKAoZ,EAAAvjH,UAAA+jH,gBAAA,SAAAzkG,GACA,IAAA1O,EAAA0O,EAAA1O,KACAy6F,EAAAvrG,KAAAurG,IACA,OAAAz6F,EAAAymD,OACA,WAEA/S,EAAA6/D,IAAAC,gBAAAtkH,KAAA+jH,EAAAQ,WACA,MAEA,KAAAhrG,EAAA,EAAA0kE,kBACAntE,OAAAi3F,MAAA,IAAA3jB,WAAAtzE,EAAAi3F,OACAj3F,EAAAk3F,QACAl3F,OAAAk3F,MAAA,IAAA5jB,WAAAtzE,EAAAk3F,QAIA,QACAl3F,kBACAA,OAAA2rF,KAAAz8F,KAAAy8F,KACA3rF,OAAApP,GAAA1B,KAAA0B,GACA6pG,EAAAt5F,QAAAnB,EAAAymD,MAAAzmD,UAKA2yG,EArJA,GAsKA,SAAAmB,GAAAvhG,EAAA7f,EAAA9B,GACA,OAAA8B,GACA,YACA6f,EAAAwhG,gBACAxhG,EAAAwhG,kBAEAxhG,EAAAwhG,cAAAtjH,KAAAG,GACA,MACA,WACA2hB,EAAAyhG,eACAzhG,EAAAyhG,iBAEAzhG,EAAAyhG,aAAAvjH,KAAAG,IAKA,SAAAqjH,GAAAjW,EAAAkW,EAAAC,GACA,IAAAC,EAAApW,EAAAkW,GACAG,EAAArW,EAAAmW,GACAG,EAAAD,EAAApgB,SAEAn7F,OAAA6mF,EAAA,EAAA7mF,CAAAw7G,GAGAH,EAAAD,GACAE,EAAAl4B,SAAAo4B,EAAAF,EAAA1iH,MACA0iH,EAAAl4B,SAAA,GACAvS,EAAA,EAAA/kE,KAAA,uCAAAwvG,EAAAviB,GAAA,UAAAuiB,EAAA7hG,MAAA,0EAGA8hG,EAAAn4B,SAAAk4B,EAAA1iH,MAAA4iH,EACAD,EAAAn4B,SAAA,GACAvS,EAAA,EAAA/kE,KAAA,uCAAAyvG,EAAAxiB,GAAA,UAAAwiB,EAAA9hG,MAAA,yEAMA8hG,EAAA3iH,MADAyiH,EAAAD,EACAE,EAAA1iH,MAAA0iH,EAAAl4B,SAEAjlF,KAAAE,IAAAi9G,EAAA1iH,MAAA2iH,EAAAn4B,SAAA,GAKA,SAAAq4B,GAAAl5B,EAAAsQ,EAAAsI,EAAAD,EAAAzU,EAAA4X,GAEA,IAAAqd,EAAAvgB,EACA,GAAAn7F,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAAsI,UAAA,CAEA,IAAAwgB,EAAAx9G,KAAAY,IAAA8zF,EAAAsI,YACAn7F,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAA8oB,UAGA9oB,EAAA8oB,SAAAx9G,KAAAE,IAAAs9G,EAAA9oB,EAAA8oB,UAFA9oB,EAAA8oB,WAKAD,EAAAv9G,KAAAE,IAAA88F,EAAAtI,EAAAsI,UACAA,EAAAh9F,KAAAC,IAAA+8F,EAAAtI,EAAAsI,UACAD,EAAA/8F,KAAAE,IAAA68F,EAAArI,EAAAqI,QACAzU,EAAAtoF,KAAAC,IAAAqoF,EAAAoM,EAAApM,UACA4X,EAAAlgG,KAAAE,IAAAggG,EAAAxL,EAAAwL,QAGA,IAAAud,EAAAzgB,EAAAtI,EAAAj6F,MACAi6F,EAAAj6F,MAAAi6F,EAAAsI,WACAtI,EAAA6oB,cACA7oB,EAAAqI,SACArI,EAAApM,WACAoM,EAAAwL,SACAxL,EAAAzP,SAAA8X,EAAAC,EAEA,IAAApC,EAAAlG,EAAAkG,GAEA,IAAAxW,GAAAwW,EAAAxW,EAAA+iB,SAAAvM,EAAAxW,EAAA0iB,MACA,SAGA,IAAA4W,EACA3W,OAAA,EACA/tG,OAAA,EAUA,IATA0kH,EAAA9iB,EAAAxW,EAAA+iB,SACAJ,EAAA3iB,EAAA2iB,WAMA2W,GAAAhpB,EAEA17F,EAAA0kH,EAAmB1kH,EAAA,EAAOA,IAC1BgkH,GAAAjW,EAAA/tG,IAAA,GAIA,IAAAA,EAAA0kH,EAAmB1kH,EAAA+tG,EAAA7tG,OAAA,EAA0BF,IAC7CgkH,GAAAjW,EAAA/tG,IAAA,GAIA,OADAorF,EAAAu5B,UAAA,EACAF,EAGA,SAAAG,GAAAC,EAAAC,GACA,IAAArjH,EAAAuF,KAAAE,IAAA29G,EAAA1W,QAAA2W,EAAA3W,SAAA2W,EAAA3W,QACAh+E,EAAAnpB,KAAAC,IAAA49G,EAAA/W,MAAAgX,EAAAhX,OAAAgX,EAAA3W,QACAh3E,EAAA2tF,EAAA3W,QAAA0W,EAAA1W,QACA4W,EAAAF,EAAA9W,UACAiX,EAAAF,EAAA/W,UACAkX,EAAA,EACAC,OAAA,EAQA,GALAJ,EAAAh5B,aAAA+4B,EAAA/4B,cACAg5B,EAAAh5B,YAAA+4B,EAAA/4B,aAIA37D,EAAA1uB,EACAqjH,EAAAH,UAAA,MADA,CAKA,QAAA3kH,EAAAyB,EAAqBzB,GAAAmwB,EAAUnwB,IAAA,CAC/B,IAAAmlH,EAAAJ,EAAA5tF,EAAAn3B,GACAolH,EAAAJ,EAAAhlH,GACAolH,GAAAD,IACAF,EAAAE,EAAApP,GAAAqP,EAAArP,GACAltG,OAAA6mF,EAAA,EAAA7mF,CAAAs8G,EAAAnhB,YACAohB,EAAA3jH,MAAA2jH,EAAAphB,SAAAmhB,EAAAnhB,SACAohB,EAAArhB,OAAAohB,EAAAphB,OACAqhB,EAAAn5B,SAAAk5B,EAAAl5B,SACAm5B,EAAAC,YAAAF,EAAAE,YACAD,EAAA7sB,QAAA4sB,EAAA5sB,QACA2sB,EAAAE,IAKA,GAAAH,EAEA,IADAvrC,EAAA,EAAAj7E,IAAA,gEACAuB,EAAA,EAAeA,EAAAglH,EAAA9kH,OAAyBF,IACxCglH,EAAAhlH,GAAA+1G,IAAAkP,EAKA,GAAAC,EACAZ,GAAAQ,EAAAI,IAAAlhB,SAAAkhB,EAAAnhB,OAAAmhB,EAAA51B,SAAA41B,EAAAhe,aAKA,GAAA/vE,GAAA,GAAAA,EAAA4tF,EAAA7kH,OAAA,CAEA,IAAAolH,EAAAP,EAAA5tF,GAAA11B,MACA,IAAAzB,EAAA,EAAiBA,EAAAglH,EAAA9kH,OAAyBF,IAC1CglH,EAAAhlH,GAAAyB,OAAA6jH,EAMAR,EAAAH,SAAAE,EAAAF,UAOA,IAYAY,IAXA1+G,SAAA,SAAA6P,GAGA,IAFA,IAAAjY,EAAA,GACAqC,EAAA4V,EAAAxW,OACAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5BvB,GAAA,IAAAiY,EAAAjV,MAAAzB,GAAAuG,QAAA,OAAAmQ,EAAAyZ,IAAAnwB,GAAAuG,QAAA,OAGA,OAAA9H,IAkEA,SAAA+mH,GAAAF,EAAAl6B,GACAA,EAAA2iB,UAAAhlG,QAAA,SAAA2yF,GACA,GAAAA,EAAA,CACA,IAAAj6F,EAAAi6F,EAAAj6F,MAAA6jH,EACA5pB,EAAAj6F,MAAAi6F,EAAAsI,SAAAviG,EACAi6F,EAAAqI,OAAAtiG,EAAAi6F,EAAAzP,YAGAb,EAAAu5B,UAAA,EAaA,SAAAc,GAAA/B,EAAAgC,EAAAt6B,IAgBA,SAAAs4B,EAAAt4B,EAAAs6B,GACA,GApEA,SAAAhC,EAAAgC,EAAAt6B,GACA,IAAAu6B,GAAA,EAMA,OALAD,KAAAt6B,aACAA,EAAAyiB,MAAAziB,EAAA8iB,SAAAwV,KAAA3N,GAAA3qB,EAAA8iB,WACAyX,GAAA,GAGAA,EA6DAC,CAAAlC,EAAAgC,EAAAt6B,GAAA,CACA,IAAAy6B,EA1DA,SAAAC,EAAAC,GACA,IAAAC,EAAAF,EAAA/X,UACAkY,EAAAF,EAAAhY,UAEA,GAAAkY,EAAA/lH,QAAA8lH,EAAA9lH,OAAA,CAKA,IAAAgmH,EA9CA,SAAAnY,EAAAgI,GAGA,IAFA,IAAAoQ,EAAA,KAEAnmH,EAAA,EAAiBA,EAAA+tG,EAAA7tG,OAAsBF,GAAA,GACvC,IAAAomH,EAAArY,EAAA/tG,GACA,GAAAomH,KAAArQ,OAAA,CACAoQ,EAAAC,EACA,OAIA,OAAAD,EAmCAE,CAAAL,EAAAC,EAAA,GAAAlQ,IAEA,GAAAmQ,UAAAliB,UAKA,OAAAkiB,EAJAxsC,EAAA,EAAAj7E,IAAA,8CAPAi7E,EAAA,EAAAj7E,IAAA,yBAqDA6nH,CAAAZ,EAAAt6B,WACAy6B,IACAnsC,EAAA,EAAAj7E,IAAA,0EACA+mH,GAAAK,EAAApkH,MAAA2pF,KApBAm7B,CAAA7C,EAAAt4B,EAAAs6B,IACAt6B,EAAAu5B,UAAAe,GA6BA,SAAAt6B,EAAAo7B,GACA,GAAAA,KAAAzY,UAAA7tG,OAAA,CACA,IAAAkrF,EAAAq7B,qBAAAD,EAAAC,mBACA,OAKA,IAAAC,EAAAF,EAAAzY,UAAA,GAAAzB,gBACAqa,EAAAv7B,EAAA2iB,UAAA,GAAAzB,gBAEAgZ,GAAAqB,EAAAD,GAAA,IAAAF,EAAAzY,UAAA,GAAAtsG,MACAoH,OAAA6mF,EAAA,EAAA7mF,CAAAy8G,KACA5rC,EAAA,EAAAj7E,IAAA,sDAAA6mH,EAAA/+G,QAAA,IACAi/G,GAAAF,EAAAl6B,KAvCAw7B,CAAAx7B,EAAAs6B,EAAAt6B,SAiFA,IA+IAy7B,GA/IA,SAAAhP,GAGA,SAAAiP,EAAAtc,IAxCA,SAAAhsD,EAAAqjC,GAA2D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAyCrG8jE,CAAA9nH,KAAA6nH,GAEA,QAAAloG,EAAA7a,UAAA7D,OAAAsY,EAAA1N,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAwFA,EAAAgC,EAAahC,IACrGpE,EAAAoE,EAAA,GAAA7Y,UAAA6Y,GAGA,IAAAd,EA7CA,SAAA1Q,EAAAT,GAA2D,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EA6CjKq8G,CAAA/nH,KAAA44G,EAAAltG,KAAAa,MAAAqsG,GAAA54G,KAAAurG,GAAAx2F,OAAAwE,KAMA,OAJAsD,EAAAmrG,cAAA,KACAnrG,EAAAorG,WAAA,KACAprG,EAAAqrG,eAAA,EACArrG,EAAAsrG,WAAAtrG,EAAAurG,KAAA59G,KAAAqS,GACAA,EA4HA,OA7KA,SAAAq8F,EAAAC,GAAoD,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAkC/XkP,CAAAR,EAAAjP,GAuBAiP,EAAA3nH,UAAA0rG,oBAAA,WAEA5rG,KAAAsoH,gBACAtoH,KAAAuoH,iBAQAV,EAAA3nH,UAAAsoH,YAAA,WACA,QAAAxoH,KAAAgoH,eAQAH,EAAA3nH,UAAAuoH,YAAA,WACA,QAAAzoH,KAAAioH,YASAJ,EAAA3nH,UAAAwoH,YAAA,SAAAC,GACA,SAAAD,EAAAE,GACA,OAAAD,EAAAp8G,MAAAvM,KAAA8E,WAOA,OAJA4jH,EAAA9gH,SAAA,WACA,OAAA+gH,EAAA/gH,YAGA8gH,EATA,CAUG,SAAAG,GACH,OAAA7oH,KAAAgoH,gBACAhoH,KAAAgoH,cAAAU,YAAA1oH,KAAAmoH,WAAAU,IACA,KAUAhB,EAAA3nH,UAAAqoH,cAAA,SAAAO,GACA,SAAAP,IACA,OAAAO,EAAAv8G,MAAAvM,KAAA8E,WAOA,OAJAyjH,EAAA3gH,SAAA,WACA,OAAAkhH,EAAAlhH,YAGA2gH,EATA,CAUG,WACH,QAAAvoH,KAAAgoH,gBACAO,cAAAvoH,KAAAgoH,eACAhoH,KAAAgoH,cAAA,MACA,KAUAH,EAAA3nH,UAAAooH,cAAA,WACA,QAAAtoH,KAAAioH,aACA57G,aAAArM,KAAAioH,YACAjoH,KAAAioH,WAAA,MACA,IAYAJ,EAAA3nH,UAAAkoH,KAAA,WACApoH,KAAAkoH,iBACA,IAAAloH,KAAAkoH,iBACAloH,KAAA+oH,SAGA/oH,KAAAkoH,eAAA,IAEAloH,KAAAsoH,gBACAtoH,KAAAioH,WAAA37G,WAAAtM,KAAAmoH,WAAA,IAEAnoH,KAAAkoH,eAAA,IAUAL,EAAA3nH,UAAA6oH,OAAA,aAEAlB,EA5IA,CA6ICxc,GAoED,SAAA2d,KACA,IAAAnG,EAAA/9G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KACAmkH,EAAAnkH,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KACAokH,EAAApkH,UAAA,GAgBAqkH,EAAAphH,KAAAC,IAAAihH,EAAAC,EAAAl8B,UAAAk8B,EAAA3D,SAAA2D,EAAA3D,SAAA,IACA,OAAA2D,EAAA1mH,MAAA0mH,EAAAl8B,SAAAm8B,GAAAtG,EACA,EACGqG,EAAA1mH,MAAA2mH,EAAAtG,GAAAqG,EAAA1mH,OAEH,EAGA,EAWA,SAAA4mH,GAAAC,EAAAJ,EAAAC,GACA,IAAAC,EAAA,IAAAphH,KAAAC,IAAAihH,EAAAC,EAAAl8B,UAAAk8B,EAAA3D,SAAA2D,EAAA3D,SAAA,IACA,OAAA2D,EAAAjR,mBAAAkR,EAAAE,EAUA,IA8LAC,GA3LA,WACA,SAAAC,EAAAvpE,EAAAg2D,EAAAwT,EAAAje,IAXA,SAAAhsD,EAAAqjC,GAAgE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAY1GylE,CAAAzpH,KAAAupH,GAEAvpH,KAAAggD,SACAhgD,KAAAg2G,QACAh2G,KAAAwpH,kBACAxpH,KAAAurG,MACAvrG,KAAA0pH,eAAA,EAgLA,OArKAH,EAAArpH,UAAAypH,KAAA,SAAAC,EAAA/J,GACA,IAAA7/D,EAAAhgD,KAAAggD,OACAg2D,EAAAh2G,KAAAg2G,MAEA6T,EAAA7T,EAAA6T,YACAC,EAAAn6G,OAAAm6F,YAAAp6F,MAEA,GAAAm6G,IAAAD,EAQA,OANA5pH,KAAA0pH,gBACAjvC,EAAA,EAAA/kE,KAAA,+BAAAm0G,EAAA,WAAA9hH,KAAAqC,MAAA0/G,EAAA9pH,KAAA+pH,SAAA,MACA/pH,KAAA0pH,eAAA,GAEA1pH,KAAA+pH,QAAA,UACA/pH,KAAAgqH,WAAA,GAIA,KAAAhU,EAAAiU,QAAAjU,EAAA6J,SAAA5+G,QAAA+0G,EAAAkU,WAAA,GAIAlU,EAAAmU,SAAAjI,EAAAE,WAAApM,EAAA6T,IAAA,CAMA,IAAAO,EAAAN,EAAA9pH,KAAA+pH,QACA1H,EAAAH,EAAAG,WAAArM,EAAA6T,EAAA7pE,EAAA2nD,eACA3nG,KAAA+pH,SAGKK,GAvDL,KAyDApqH,KAAAqqH,aAAAhI,EAAAxgH,KAGA7B,KAAAsqH,mBAAAjI,EAAA+H,IAPApqH,KAAA+pH,QAAAD,IAkBAP,EAAArpH,UAAAoqH,mBAAA,SAAAjI,EAAA+H,GACA,IAAApqE,EAAAhgD,KAAAggD,OACAwpE,EAAAxpH,KAAAwpH,gBAGAK,EAFA7pH,KAAAg2G,MAEA6T,YAEAjJ,EAAA4I,EAAA3I,mBAAAgJ,GACAjJ,GAGA5gH,KAAAuqH,mBAAA3J,GAGAyB,EAAAxgH,IApFA,IAoFAuoH,EAAA,IAAApqE,EAAAwqE,2BAIAxqH,KAAA+pH,QAAA,KACA/pH,KAAAyqH,oBAWAlB,EAAArpH,UAAAmqH,aAAA,SAAA1H,GACA,IAAApX,EAAAvrG,KAAAurG,IACAyK,EAAAh2G,KAAAg2G,MACAh2G,KAAA0pH,gBAIA1pH,KAAA0pH,eAAA,EACAjvC,EAAA,EAAA/kE,KAAA,yBAAAsgG,EAAA6T,YAAA,sBACAte,EAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAlM,YACAoN,QAAAlB,EAAA,EAAAvK,qBACA0L,OAAA,EACA1H,OAAAi+B,MAYA4G,EAAArpH,UAAAqqH,mBAAA,SAAA3J,GAOA,IANA,IAAArV,EAAAvrG,KAAAurG,IACAyK,EAAAh2G,KAAAg2G,MAEA6T,EAAA7T,EAAA6T,YACAa,EAAA,EAEA3pH,EAAA,EAAmBA,EAAAi1G,EAAA6J,SAAA5+G,OAA2BF,IAAA,CAC9C,IAAAmwD,EAAA8kD,EAAA6J,SAAAr9G,MAAAzB,GACA,GAAA8oH,GAAAa,GAAAb,EAAA34D,EAWA,OAVA8kD,EAAA6T,YAAA9hH,KAAAE,IAAAipD,EAAA8kD,EAAA6T,YAAA,IACApvC,EAAA,EAAA/kE,KAAA,6CAAAm0G,EAAA,OAAA7T,EAAA6T,aACA7pH,KAAA+pH,QAAA,UACAxe,EAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAlM,YACAoN,QAAAlB,EAAA,EAAArK,sBACAwL,OAAA,EACArsB,OAAA,mDAAA8pD,EAAA,OAAA7T,EAAA6T,YACAptB,KAAAmkB,IAIA8J,EAAA1U,EAAA6J,SAAA3uF,IAAAnwB,KAUAwoH,EAAArpH,UAAAuqH,gBAAA,WACA,IAAAzqE,EAAAhgD,KAAAggD,OACAurD,EAAAvrG,KAAAurG,IACAyK,EAAAh2G,KAAAg2G,MAEA6T,EAAA7T,EAAA6T,YACAG,GAAAhqH,KAAAgqH,YAAA,KAGA,GAFAhqH,KAAAgqH,aAEAA,EAAAhqE,EAAA2qE,cAAA,CACA,IAAAC,EAAAf,EAAAG,EAAAhqE,EAAA6qE,YACApwC,EAAA,EAAAj7E,IAAA,2BAAAqqH,EAAA,OAAAe,GAEA5U,EAAA6T,YAAAe,EACArf,EAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAlM,YACAoN,QAAAlB,EAAA,EAAApK,sBACAuL,OAAA,SAGA3R,EAAA,EAAAM,MAAA,+BAAA8uC,EAAA,UAAA7pE,EAAA2qE,cAAA,uBACApf,EAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAlM,YACAoN,QAAAlB,EAAA,EAAAvK,qBACA0L,OAAA,KAKAm9B,EAxLA,GA+LAuB,GAAA,WAAkD,SAAAzlE,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAA1iB,GA4BA,IAAAmoC,IACAC,QAAA,UACAC,KAAA,OACAxsC,YAAA,cACAhB,aAAA,eACAytC,2BAAA,6BACAC,cAAA,gBACAC,QAAA,UACAC,OAAA,SACAlvC,gBAAA,kBACAmvC,MAAA,QACA/sC,MAAA,SAu5CAgtC,GAp5CA,SAAAC,GAGA,SAAAC,EAAAlgB,EAAAie,IA3CA,SAAAjqE,EAAAqjC,GAAmE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCA4C7G0nE,CAAA1rH,KAAAyrH,GAEA,IAAA5uG,EA5CA,SAAA1Q,EAAAT,GAAmE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EA4CzKigH,CAAA3rH,KAAAwrH,EAAA9/G,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAmiE,eAAAniE,EAAA,EAAAoiE,gBAAApiE,EAAA,EAAA8iE,iBAAA9iE,EAAA,EAAAgjE,gBAAAhjE,EAAA,EAAAojE,aAAApjE,EAAA,EAAAmlE,WAAAnlE,EAAA,EAAAqkE,YAAArkE,EAAA,EAAAokE,4BAAApkE,EAAA,EAAAukE,0BAAAvkE,EAAA,EAAA0kE,kBAAA1kE,EAAA,EAAA2kE,YAAA3kE,EAAA,EAAAglE,MAAAhlE,EAAA,EAAAwjE,sBAAAxjE,EAAA,EAAAyjE,qBAAAzjE,EAAA,EAAAwiE,eAAAxiE,EAAA,EAAA0iE,gBAAA1iE,EAAA,EAAA6iE,iBAQA,OANAv/D,EAAA2sG,kBACA3sG,EAAAmjC,OAAAurD,EAAAvrD,OACAnjC,EAAA+uG,gBAAA,EACA/uG,EAAAgvG,OAAAd,GAAAC,QACAnuG,EAAA6sG,eAAA,EACA7sG,EAAAivG,cAAA,KACAjvG,EAm4CA,OAr7CA,SAAAq8F,EAAAC,GAA4D,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAqCvY4S,CAAAN,EAAAD,GAgBAC,EAAAvrH,UAAA0rG,oBAAA,WACA5rG,KAAAgsH,WACAR,EAAAtrH,UAAA0rG,oBAAAlgG,KAAA1L,OAGAyrH,EAAAvrH,UAAA4rG,mBAAA,WACA9rG,KAAA+7C,MAAAgvE,GAAAC,QACAhrH,KAAAwpH,gBAAA,KACAgC,EAAAtrH,UAAA4rG,mBAAApgG,KAAA1L,OAGAyrH,EAAAvrH,UAAA+rH,UAAA,SAAAC,GACA,GAAAlsH,KAAAi1G,OAAA,CACA,IAAA2U,EAAA5pH,KAAA4pH,gBACAre,EAAAvrG,KAAAurG,IAKA,GAJAvrG,KAAAgsH,WACAhsH,KAAA0oH,YAAA,KACA1oH,KAAAqjB,OAAA,EACArjB,KAAAmsH,cAAA,GACAnsH,KAAAosH,mBAAA,CAEA,IAAAC,EAAA9gB,EAAA8gB,YACA,IAAAA,IAEAA,EAAA,EACArsH,KAAAohH,aAAA,GAIAphH,KAAAqjB,MAAAkoF,EAAA+gB,cAAAD,EACArsH,KAAAusH,gBAAA,EAGA3C,EAAA,QAAAsC,IACAzxC,EAAA,EAAAj7E,IAAA,gDAAAoqH,EAAAtiH,QAAA,IACA4kH,EAAAtC,GAEA5pH,KAAA+7C,MAAAgvE,GAAAE,KACAjrH,KAAAwsH,iBAAAxsH,KAAAksH,cAAAlsH,KAAA4pH,gBAAAsC,EACAlsH,KAAAooH,YAEApoH,KAAAysH,gBAAA,EACAzsH,KAAA+7C,MAAAgvE,GAAAC,SAIAS,EAAAvrH,UAAA8rH,SAAA,WACA,IAAAvvB,EAAAz8F,KAAA0sH,YACAjwB,IACAA,EAAAsd,QACAtd,EAAAsd,OAAAW,QAGA16G,KAAAwpH,gBAAAlJ,eAAA7jB,GACAz8F,KAAA0sH,YAAA,MAEA1sH,KAAA2sH,aAAA,KACA3sH,KAAAkqG,UACAlqG,KAAAkqG,QAAA/qD,UACAn/C,KAAAkqG,QAAA,MAEAlqG,KAAAuoH,gBACAvoH,KAAA+7C,MAAAgvE,GAAAC,QACAhrH,KAAAysH,gBAAA,GAGAhB,EAAAvrH,UAAA6oH,OAAA,WACA,OAAA/oH,KAAA+7C,OACA,KAAAgvE,GAAA5uC,gBAEAn8E,KAAAmsH,cAAA,EACA,MACA,KAAApB,GAAAE,KACAjrH,KAAA4sH,cACA,MACA,KAAA7B,GAAAI,cACA,IAAA9nG,EAAArjB,KAAAi1G,OAAAj1G,KAAAqjB,OAEAA,KAAA8oE,UACAnsF,KAAA+7C,MAAAgvE,GAAAE,MAGA,MACA,KAAAF,GAAAG,2BACA,IAAAx7G,EAAAC,OAAAm6F,YAAAp6F,MACAm9G,EAAA7sH,KAAA6sH,YAEAA,GAAAn9G,GAAAm9G,GAAA7sH,KAAAg2G,OAAAh2G,KAAAg2G,MAAAmU,WACA1vC,EAAA,EAAAj7E,IAAA,iEACAQ,KAAA+7C,MAAAgvE,GAAAE,MAEA,MACA,KAAAF,GAAAxsC,MACA,KAAAwsC,GAAAC,QACA,KAAAD,GAAAttC,aACA,KAAAstC,GAAAK,QACA,KAAAL,GAAAM,OACA,KAAAN,GAAAO,OAMAtrH,KAAA8sH,eAEA9sH,KAAA+sH,yBAQAtB,EAAAvrH,UAAA0sH,YAAA,WACA,IAAArhB,EAAAvrG,KAAAurG,IACAvrD,EAAAurD,EAAAvrD,OACAg2D,EAAAh2G,KAAAg2G,MAKA,QAAAtoG,IAAA1N,KAAAgtH,kBAAAhX,IAAAh2G,KAAAosH,oBAAApsE,EAAAitE,mBAAA,CAKA,IAAAv7F,OAAA,EAEAA,EADA1xB,KAAAusH,eACAvW,EAAA6T,YAEA7pH,KAAAwsH,iBAIA,IAAAnpG,EAAAkoF,EAAA+gB,cACAY,EAAAltH,KAAAi1G,OAAA5xF,GAEA,GAAA6pG,EAAA,CAIA,IAAAC,EAAAD,EAAAxX,QACA0X,OAAA,EAIAA,EADAD,EACAplH,KAAAE,IAAA,EAAA+3C,EAAAqtE,cAAAF,EAAAntE,EAAAstE,iBAEAttE,EAAAstE,gBAGAF,EAAArlH,KAAAC,IAAAolH,EAAAptE,EAAAutE,oBAKA,IAAAlL,EAAAH,EAAAG,WAAAriH,KAAAwtH,YAAAxtH,KAAAwtH,YAAAxX,EAAAtkF,EAAAsuB,EAAA2nD,eACAgb,EAAAN,EAAAxgH,IAEA,KAAA8gH,GAAAyK,GAAA,CAKA3yC,EAAA,EAAAG,MAAA,oBAAA+nC,EAAAr7G,QAAA,uBAAA8lH,EAAA9lH,QAAA,sCAGAtH,KAAAqjB,MAAAkoF,EAAA+gB,cAAAjpG,EAEA,IAAAy5F,EAAAoQ,EAAA/gC,QAIA,IAAA2wB,KAAA/N,MAAA/uG,KAAAgtH,kBAAA3pG,EACArjB,KAAA+7C,MAAAgvE,GAAAI,kBADA,CASA,IAAAwB,EAAA3sH,KAAA2sH,aACA,IAAA7P,EAAA/N,MAAA4d,MAAAvG,aAAAuG,EAAAhqB,KAAAma,EAAAjO,QAAAwT,EAAAI,UAQA,GALA16G,KAAAC,IAAAguG,EAAAhpB,SAAA2/B,EAAAnqH,MAAAmqH,EAAA3/B,UAKAjlF,KAAAE,IAAAo6G,EAAAnxF,IAAAy7F,EAAAnqH,QAAAuF,KAAAE,IAAA,GAAA0kH,EAAA3/B,UAAA,CAEA,IAAAl8E,KAOA,OANA9Q,KAAAytH,WACA38G,EAAAtN,KAAA,SAGAxD,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA2iE,WAAAprE,QACA9Q,KAAA+7C,MAAAgvE,GAAAO,OAMAtrH,KAAA0tH,mBAAAh8F,EAAA2wF,EAAAvF,QAGA2O,EAAAvrH,UAAAwtH,mBAAA,SAAAh8F,EAAA2wF,EAAAvF,GACA,IAAA6P,EAAA3sH,KAAA2sH,aACAtpG,EAAArjB,KAAAqjB,MACAyrF,EAAAgO,EAAAhO,UACA6e,EAAA7e,EAAA7tG,OAGA,OAAA0sH,EAAA,CAKA,IAAAnrH,EAAAssG,EAAA,GAAAtsG,MACA0uB,EAAA49E,EAAA6e,EAAA,GAAAnrH,MAAAssG,EAAA6e,EAAA,GAAA3gC,SACA61B,EAAAR,EAAAnxF,IACAurE,OAAA,EAEA,GAAAqgB,EAAAjwB,cAAAiwB,EAAAjwB,YAAA/7E,KACA2rF,EAAAqgB,EAAAjwB,iBAGA,GAAAiwB,EAAA/N,KAAA,CACA,IAAA6e,EAAA5tH,KAAAggD,OAAA4tE,wBACA,GAAAD,EAAAC,EAEA,YADAnzC,EAAA,EAAA/kE,KAAA,mEAAAi4G,EAAA,MAAAC,GAMA,WAFAnxB,EAAAz8F,KAAA6tH,2BAAA/Q,EAAA+F,EAAArgH,EAAA0uB,EAAAy7F,EAAA7d,EAAA6e,IAGA,YAIA9K,EAAArgH,IACAi6F,EAAAqS,EAAA,IAIArS,IACAA,EAAAz8F,KAAA8tH,cAAAtrH,EAAAmqH,EAAAgB,EAAA7e,EAAA+T,EAAA3xF,EAAA4rF,IAGArgB,IACAA,EAAAsxB,WACAtzC,EAAA,EAAAj7E,IAAA,mBAAAi9F,EAAAkG,GAAA,QAAAma,EAAA5N,QAAA,KAAA4N,EAAAjO,MAAA,WAAAxrF,GACArjB,KAAAguH,SAAAvxB,KAEAhiB,EAAA,EAAAj7E,IAAA,WAAAi9F,EAAAkG,GAAA,QAAAma,EAAA5N,QAAA,KAAA4N,EAAAjO,MAAA,WAAAxrF,EAAA,iBAAAqO,EAAApqB,QAAA,iBAAAu7G,EAAAv7G,QAAA,IACAtH,KAAAiuH,cAAAxxB,OAKAgvB,EAAAvrH,UAAA2tH,2BAAA,SAAA/Q,EAAA+F,EAAArgH,EAAA0uB,EAAAy7F,EAAA7d,EAAA6e,GACA,IAAA3tE,EAAAhgD,KAAAurG,IAAAvrD,OACAg2D,EAAAh2G,KAAAg2G,MAEAvZ,OAAA,EAIAyxB,OAAAxgH,IAAAsyC,EAAAmuE,uBAAAnuE,EAAAmuE,uBAAAnuE,EAAAouE,4BAAAtR,EAAA1N,eAEA,GAAAyT,EAAA96G,KAAAE,IAAAzF,EAAAw9C,EAAAipE,uBAAA/3F,EAAAg9F,GAAA,CACA,IAAAG,EAAAruH,KAAAquH,iBAAAruH,KAAAsuH,oBAAA9rH,EAAAs6G,GACAriC,EAAA,EAAAj7E,IAAA,eAAAqjH,EAAAv7G,QAAA,wFAAA+mH,EAAA/mH,QAAA,IACAu7G,EAAAwL,EACArY,KAAAkU,YAAAlU,EAAAhpB,SAAAqhC,IACArY,EAAA6T,YAAAwE,GAGAruH,KAAAwsH,iBAAA6B,EAaA,GAAAvR,EAAA4I,UAAA7C,EAAA3xF,GAAA8kF,KAAAkU,WACA,YAGA,GAAAlqH,KAAAosH,qBAAAtP,EAAA4I,SAAA,CAKA,GAAAiH,EACA,GAAA7P,EAAA0K,mBAEA/sC,EAAA,EAAAj7E,IAAA,+DAAAmtH,EAAAtf,iBACA5Q,EAxpBA,SAAAqS,EAAAyf,EAAAtF,GACA,IAAAp9G,MAAAC,QAAAgjG,OAAA7tG,SAAA2I,OAAA6mF,EAAA,EAAA7mF,CAAA2kH,GACA,YAIA,GAAAA,EAAAzf,EAAA,GAAAzB,gBACA,YAGA,GAAAkhB,GAAAzf,IAAA7tG,OAAA,GAAAg3G,mBACA,YAGAgR,KAAA,EACA,QAAAuF,EAAA,EAAmBA,EAAA1f,EAAA7tG,SAAwButH,EAAA,CAC3C,IAAA/xB,EAAAqS,EAAA0f,GACA,GAAApF,GAAAmF,EAAAtF,EAAAxsB,GACA,OAAAA,EAIA,YAkoBAgyB,CAAA3f,EAAA6d,EAAA1U,mBAAAj4D,EAAAipE,4BACS,CAET,IAAAyF,EAAA/B,EAAAhqB,GAAA,EACA,GAAA+rB,GAAA5R,EAAA5N,SAAAwf,GAAA5R,EAAAjO,MAAA,CACA,IAAA8f,EAAA7f,EAAA4f,EAAA5R,EAAA5N,SACAyd,EAAA7V,KAAA6X,EAAA7X,KACAra,EAAAkyB,EACAl0C,EAAA,EAAAj7E,IAAA,8DAAAi9F,EAAAkG,KAKAlG,IACAA,EAAAilB,EAAAC,OAAA7S,EAAA,SAAArS,GACA,OAAAkwB,EAAA7V,GAAAra,EAAAqa,OAGAr8B,EAAA,EAAAj7E,IAAA,8DAAAi9F,EAAAkG,IAKAlG,IAIAA,EAAAqS,EAAA/mG,KAAAC,IAAA2lH,EAAA,EAAA5lH,KAAAqC,MAAAujH,EAAA,KACAlzC,EAAA,EAAAj7E,IAAA,kEAAAi9F,EAAAkG,KAIA,OAAAlG,GAGAgvB,EAAAvrH,UAAA4tH,cAAA,SAAAtrH,EAAAmqH,EAAAgB,EAAA7e,EAAA+T,EAAA3xF,EAAA4rF,GACA,IAAA98D,EAAAhgD,KAAAurG,IAAAvrD,OACAy8C,OAAA,EAEAomB,EAAA3xF,EAIAurE,EAhqBA,SAAAkwB,EAAA7d,GACA,IAAA+T,EAAA/9G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KACAmkH,EAAAnkH,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KAEA6pH,EAAAhC,EAAA7d,EAAA6d,EAAAhqB,GAAAmM,EAAA,GAAAnM,GAAA,QAEA,OAAAgsB,IAAA3F,GAAAnG,EAAAoG,EAAA0F,GACAA,EAEAjN,EAAAC,OAAA7S,EAAAka,GAAAx+G,KAAA,KAAAq4G,EAAAoG,IAupBA2F,CAAAjC,EAAA7d,EAAA+T,EAHAA,EAAA3xF,EAAA8uB,EAAAipE,uBAAA,EAAAjpE,EAAAipE,wBAMAxsB,EAAAqS,EAAA6e,EAAA,GAEA,GAAAlxB,EAAA,CACA,IAAAoyB,EAAApyB,EAAAkG,GAAAma,EAAA5N,QACA4f,EAAAnC,GAAAlwB,EAAAp5E,QAAAspG,EAAAtpG,MACA0zF,EAAAjI,EAAA+f,EAAA,GACAE,EAAAjgB,EAAA+f,EAAA,GAEA,GAAAlC,GAAAlwB,EAAAkG,KAAAgqB,EAAAhqB,GACA,GAAAmsB,IAAAryB,EAAA2pB,YACA,GAAA3pB,EAAAkG,GAAAma,EAAAjO,MAAA,CACA,IAAA0W,EAAAoH,EAAApH,SAKAA,KAAAvlE,EAAA2nD,eAAAglB,EAAArzB,SAAAu1B,GACApyB,EAAAsa,EACAt8B,EAAA,EAAA/kE,KAAA,wJAEA+mF,EAAAsyB,EACAt0C,EAAA,EAAAj7E,IAAA,kCAAAi9F,EAAAkG,GAAAlG,SAGAA,EAAA,UAESA,EAAA2pB,cAET2I,KAAA3I,aACA3rC,EAAA,EAAA/kE,KAAA,qCAAAq5G,EAAApsB,GAAA,oCAAAlG,EAAAkG,GAAA,sBAAAosB,EAAApsB,IACAlG,EAAAsyB,IAIAt0C,EAAA,EAAA/kE,KAAA,kFACA+mF,EAAAnD,QAAA,EACAyd,GACAta,EAAAsa,GACAqP,aAAA,EACayI,IAEbpyB,EAAA,QAMA,OAAAA,GAGAgvB,EAAAvrH,UAAA8tH,SAAA,SAAAvxB,GACAz8F,KAAA+7C,MAAAgvE,GAAAtsC,YACAz+E,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAklE,aAA6Dge,UAG7DgvB,EAAAvrH,UAAA+tH,cAAA,SAAAxxB,GAEA,IAAAuyB,EAAAhvH,KAAAwpH,gBAAAtI,SAAAzkB,GAEAz8F,KAAA0sH,YAAAjwB,EACAz8F,KAAAosH,oBAAA,EAEAxiH,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAAkG,MAAAlG,EAAA2kB,cACAphH,KAAAwsH,iBAAA/vB,EAAAj6F,MAAAi6F,EAAAzP,UAIAyP,EAAA2pB,aAAA4I,IAAA9P,GAAA8P,IAAA9P,GACAziB,EAAAwyB,UAAAjvH,KAAAurG,IAAA2jB,iBACAzyB,EAAA2kB,YAAAphH,KAAAohH,YAEAphH,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAkkE,cAAgEgf,SAEhEz8F,KAAAkqG,UACAlqG,KAAAkqG,QAAA,IAAAsZ,GAAAxjH,KAAAurG,IAAA,SAGAvrG,KAAA+7C,MAAAgvE,GAAAttC,cACKuxC,IAAA9P,GAELl/G,KAAAmvH,uBAAA1yB,EAAAzP,WACAhtF,KAAAwpH,gBAAAlJ,eAAA7jB,IAKAgvB,EAAAvrH,UAAAw/G,gBAAA,SAAAtxG,GACA,OAAApO,KAAAwpH,gBAAA9J,gBAAAtxG,EAAAuqG,EAAAH,UAAAC,OAGAgT,EAAAvrH,UAAAkvH,sBAAA,SAAA3yB,GACA,OAAAA,EAEAz8F,KAAA0/G,gBAAAjjB,EAAAqI,OAAA,IAEA,MAGA2mB,EAAAvrH,UAAA6sH,sBAAA,WACA,IAAAsC,OAAA,EACAxF,OAAA,EACAx8B,EAAArtF,KAAAg2G,MACA,GAAA3oB,KAAA68B,aAAA,IAAA78B,EAAA88B,WACAN,EAAAx8B,EAAAw8B,aAOA7pH,KAAA4pH,kBACA5pH,KAAA4pH,gBAAAC,GAGA3H,EAAAE,WAAA/0B,EAAAw8B,GACAwF,EAAArvH,KAAA0/G,gBAAAmK,GACO3H,EAAAE,WAAA/0B,EAAAw8B,EAAA,MAMPwF,EAAArvH,KAAA0/G,gBAAAmK,EAAA,KAEAwF,GAAA,CACA,IAAAC,EAAAD,EACA,GAAAC,IAAAtvH,KAAAsvH,YAAA,CACAtvH,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA6kE,cAAoEqe,KAAA6yB,IACpE,IAAAC,EAAAD,EAAAjsG,MACArjB,KAAAsvH,aAAAtvH,KAAAsvH,YAAAjsG,QAAAksG,GACAvvH,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAkjE,gBAAwEp5D,MAAAksG,IAGxEvvH,KAAAsvH,iBAcA7D,EAAAvrH,UAAAsvH,qBAAA,WAEA,GADA/0C,EAAA,EAAAj7E,IAAA,yBACAQ,KAAAyvH,gBAAA,CACAzvH,KAAAyvH,iBAAA,EACA,IAAAzZ,EAAAh2G,KAAAg2G,MACA0Z,OAAA,EACA1Z,GACA0Z,EAAA1Z,EAAA2Z,OACA3Z,EAAA4Z,SAGAF,GAAA,EAEA1vH,KAAA0vH,mBAEA,IAAAhD,EAAA1sH,KAAA0sH,YACAA,KAAA3S,QACA2S,EAAA3S,OAAAW,QAGA16G,KAAA0sH,YAAA,KAEA1sH,KAAA6vH,gBAAA,EAAA90G,OAAA+0G,oBAUArE,EAAAvrH,UAAA6vH,wBAAA,WACA,IAAA/Z,EAAAh2G,KAAAg2G,MACAA,KAAA6J,SAAA5+G,SACAjB,KAAAyvH,iBAAA,EACAvN,EAAAE,WAAApM,IAAA6T,eAEA7T,EAAA6T,aAAA,MAEA7pH,KAAA0vH,kBACA1Z,EAAAga,SAaAvE,EAAAvrH,UAAA+vH,gBAAA,WACA,IAAAja,EAAAh2G,KAAAg2G,MAEA,GAAAA,KAAAkU,WAAA,CACA,IACAmF,EADAa,OAAA,EAEAC,OAAA,EAOA,IANAd,EAAArvH,KAAA0/G,gBAAA1J,EAAA6T,eACAwF,EAAAtqB,SAAA,GAGA/kG,KAAA6vH,gBAAA,EAAAR,EAAAtqB,SAAA,GAEAiR,EAAA2Z,OAWAO,EAAA,MAXA,CAEA,IAAAE,EAAApwH,KAAAurG,IAAA+gB,cACA+D,EAAArwH,KAAAi1G,OAAAmb,GACAE,EAAAtwH,KAAAswH,aAEAJ,EADAI,GAAAtwH,KAAA0sH,YACA1sH,KAAA0sH,YAAA1/B,SAAAqjC,EAAA3a,SAAA,IAAA4a,GAAA,EAEA,EAQA,IADAH,EAAAnwH,KAAA0/G,gBAAA1J,EAAA6T,YAAAqG,MAGAC,EAAAnwH,KAAAovH,sBAAAe,IACA,CAEA,IAAAzD,EAAA1sH,KAAA0sH,YACAA,KAAA3S,QACA2S,EAAA3S,OAAAW,QAGA16G,KAAA0sH,YAAA,KAIA1sH,KAAA6vH,gBAAAM,EAAA7K,YAAAvqG,OAAA+0G,sBAMArE,EAAAvrH,UAAA2vH,gBAAA,SAAAU,EAAAC,GACAxwH,KAAA+7C,MAAAgvE,GAAA5uC,gBACA,IAAAs0C,GAAsBF,cAAAC,aAEtBxwH,KAAAytH,WACAgD,EAAAjtH,KAAA,SAGAxD,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA4iE,gBAAAs0C,IAGAhF,EAAAvrH,UAAAwwH,gBAAA,SAAA5/G,GACA,IAAAklG,EAAAh2G,KAAAg2G,MAAAh2G,KAAAwtH,YAAA18G,EAAAklG,MACAh2G,KAAA2wH,WAAA3wH,KAAA4wH,eAAApmH,KAAAxK,MACAA,KAAA6wH,UAAA7wH,KAAA8wH,cAAAtmH,KAAAxK,MACAA,KAAA+wH,SAAA/wH,KAAAgxH,aAAAxmH,KAAAxK,MACAg2G,EAAAp3F,iBAAA,UAAA5e,KAAA2wH,YACA3a,EAAAp3F,iBAAA,SAAA5e,KAAA6wH,WACA7a,EAAAp3F,iBAAA,QAAA5e,KAAA+wH,UACA,IAAA/wE,EAAAhgD,KAAAggD,OACAhgD,KAAAi1G,QAAAj1D,EAAAixE,eACAjxH,KAAAurG,IAAA0gB,UAAAjsE,EAAAksE,eAGAlsH,KAAA8rH,cAAA,IAAAxC,GAAAtpE,EAAAg2D,EAAAh2G,KAAAwpH,gBAAAxpH,KAAAurG,MAGAkgB,EAAAvrH,UAAAgxH,iBAAA,WACA,IAAAlb,EAAAh2G,KAAAg2G,MACAA,KAAAiU,QACAxvC,EAAA,EAAAj7E,IAAA,sDACAQ,KAAAksH,cAAAlsH,KAAA4pH,gBAAA,GAIA,IAAA3U,EAAAj1G,KAAAi1G,OACAA,GACAA,EAAAnrG,QAAA,SAAAuZ,GACAA,EAAA8oE,SACA9oE,EAAA8oE,QAAA2iB,UAAAhlG,QAAA,SAAAu4E,GACAA,EAAA+jC,iBAAA14G,MAMAsoG,IACAA,EAAAl3F,oBAAA,UAAA9e,KAAA2wH,YACA3a,EAAAl3F,oBAAA,SAAA9e,KAAA6wH,WACA7a,EAAAl3F,oBAAA,QAAA9e,KAAA+wH,UACA/wH,KAAA2wH,WAAA3wH,KAAA6wH,UAAA7wH,KAAA+wH,SAAA,MAEA/wH,KAAAg2G,MAAAh2G,KAAAwtH,YAAA,KACAxtH,KAAAusH,gBAAA,EACAvsH,KAAAgsH,YAGAP,EAAAvrH,UAAA0wH,eAAA,WACA,IAAA5a,EAAAh2G,KAAAg2G,MACA6T,EAAA7T,IAAA6T,iBAAAn8G,EACAsyC,EAAAhgD,KAAAggD,OACAp2C,OAAA6mF,EAAA,EAAA7mF,CAAAigH,IACApvC,EAAA,EAAAj7E,IAAA,oBAAAqqH,EAAAviH,QAAA,IAGA,IAAAkmH,EAAAxtH,KAAAwtH,YAAAxtH,KAAAwtH,YAAAxX,EACAqM,EAAAH,EAAAG,WAAAmL,EAAA3D,EAAA7pH,KAAAggD,OAAA2nD,eACA,GAAA3nG,KAAA+7C,QAAAgvE,GAAAttC,aAAA,CACA,IAAAivC,EAAA1sH,KAAA0sH,YAEA,OAAArK,EAAAxgH,KAAA6qH,EAAA,CACA,IAAAyE,EAAAnxE,EAAAipE,uBACAmI,EAAA1E,EAAAlqH,MAAA2uH,EACAE,EAAA3E,EAAAlqH,MAAAkqH,EAAA1/B,SAAAmkC,EAEAtH,EAAAuH,GAAAvH,EAAAwH,GACA3E,EAAA3S,SACAt/B,EAAA,EAAAj7E,IAAA,mFACAktH,EAAA3S,OAAAW,SAEA16G,KAAA0sH,YAAA,KACA1sH,KAAA2sH,aAAA,KAEA3sH,KAAA+7C,MAAAgvE,GAAAE,MAEAxwC,EAAA,EAAAj7E,IAAA,8EAGKQ,KAAA+7C,QAAAgvE,GAAAO,QAEL,IAAAjJ,EAAAxgH,MACA7B,KAAA2sH,aAAA,GAIA3sH,KAAA+7C,MAAAgvE,GAAAE,MAEAjV,IACAh2G,KAAA4pH,gBAAAC,GAIA7pH,KAAAusH,iBACAvsH,KAAAwsH,iBAAAxsH,KAAAksH,cAAArC,GAIA7pH,KAAAooH,QAGAqD,EAAAvrH,UAAA4wH,cAAA,WACA,IAAA9a,EAAAh2G,KAAAg2G,MACA6T,EAAA7T,IAAA6T,iBAAAn8G,EACA9D,OAAA6mF,EAAA,EAAA7mF,CAAAigH,IACApvC,EAAA,EAAAj7E,IAAA,mBAAAqqH,EAAAviH,QAAA,IAIAtH,KAAAooH,QAGAqD,EAAAvrH,UAAA8wH,aAAA,WACAv2C,EAAA,EAAAj7E,IAAA,eAEAQ,KAAAksH,cAAAlsH,KAAA4pH,gBAAA,GAGA6B,EAAAvrH,UAAAk6G,kBAAA,WAEA3/B,EAAA,EAAAj7E,IAAA,wBACAQ,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAsiE,cACA77E,KAAAwpH,gBAAA/H,qBACAzhH,KAAA+pH,SAAA,EACA/pH,KAAAksH,cAAAlsH,KAAA4pH,gBAAA,GAGA6B,EAAAvrH,UAAAoxH,iBAAA,SAAAxgH,GACA,IAAAygH,GAAA,EACAC,GAAA,EACAhkC,OAAA,EACA18E,EAAAmkG,OAAAnrG,QAAA,SAAAuZ,IAEAmqE,EAAAnqE,EAAAypE,eAEA,IAAAU,EAAA1tF,QAAA,eACAyxH,GAAA,IAGA,IAAA/jC,EAAA1tF,QAAA,eACA0xH,GAAA,MAIAxxH,KAAAyxH,iBAAAF,GAAAC,EACAxxH,KAAAyxH,kBACAh3C,EAAA,EAAAj7E,IAAA,0EAGAQ,KAAAi1G,OAAAnkG,EAAAmkG,OACAj1G,KAAAosH,oBAAA,EACA,IAAApsE,EAAAhgD,KAAAggD,QACAA,EAAAixE,eAAAjxH,KAAAysH,iBACAzsH,KAAAurG,IAAA0gB,UAAAjsE,EAAAksE,gBAIAT,EAAAvrH,UAAAwxH,cAAA,SAAA5gH,GACA,IAAA+0G,EAAA/0G,EAAAq7E,QACAwlC,EAAA7gH,EAAAuS,MACAojG,EAAAzmH,KAAAi1G,OAAAj1G,KAAAgtH,iBACA4E,EAAA5xH,KAAAi1G,OAAA0c,GACA3kC,EAAA64B,EAAAxW,cACAgX,EAAA,EAIA,GAFA5rC,EAAA,EAAAj7E,IAAA,SAAAmyH,EAAA,YAAA9L,EAAA3W,QAAA,IAAA2W,EAAAhX,MAAA,cAAA7hB,GAEA64B,EAAA9W,KAAA,CACA,IAAA+X,EAAA8K,EAAAzlC,QACA26B,GAAAjB,EAAA/W,UAAA7tG,OAAA,GAEA0kH,GAAAmB,EAAAjB,GACAQ,EAAAR,EAAA/W,UAAA,GAAAtsG,MACAxC,KAAAquH,iBAAAruH,KAAAsuH,oBAAAjI,EAAAS,GACAjB,EAAAH,UAAA97G,OAAA6mF,EAAA,EAAA7mF,CAAAy8G,GACA5rC,EAAA,EAAAj7E,IAAA,yBAAA6mH,EAAA/+G,QAAA,KAEAmzE,EAAA,EAAAj7E,IAAA,iDACAgnH,GAAAxmH,KAAA2sH,aAAAlG,EAAAZ,MAGAprC,EAAA,EAAAj7E,IAAA,+CACAqmH,EAAAH,UAAA,EACAc,GAAAxmH,KAAA2sH,aAAAlG,EAAAZ,SAGAA,EAAAH,UAAA,EAOA,GAJAkM,EAAAzlC,QAAA05B,EACA7lH,KAAAgtH,gBAAA2E,EACA3xH,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAqjE,eAA+DuP,QAAA05B,EAAAxiG,MAAAsuG,KAE/D,IAAA3xH,KAAAosH,mBAAA,CAEA,QAAApsH,KAAAksH,gBAAA,IAAAlsH,KAAA4pH,gBAAA,CAEA,IAAAza,EAAA0W,EAAA1W,gBACAvlG,OAAA6mF,EAAA,EAAA7mF,CAAAulG,IACAA,EAAA,IACA10B,EAAA,EAAAj7E,IAAA,8BAAA2vG,EAAA,qCACAA,EAAAkX,EAAAr5B,EAAAmiB,GAEA10B,EAAA,EAAAj7E,IAAA,gEAAA2vG,GACAnvG,KAAAksH,cAAA/c,GAGA0W,EAAA9W,MACA/uG,KAAAksH,cAAAlsH,KAAAsuH,oBAAAjI,EAAAR,GACAprC,EAAA,EAAAj7E,IAAA,8BAAAQ,KAAAksH,gBAEAlsH,KAAAksH,cAAA,EAGAlsH,KAAA4pH,gBAAA5pH,KAAAksH,cAEAlsH,KAAAwsH,iBAAAxsH,KAAAksH,cAGAlsH,KAAA+7C,QAAAgvE,GAAAI,gBACAnrH,KAAA+7C,MAAAgvE,GAAAE,MAIAjrH,KAAAooH,QAGAqD,EAAAvrH,UAAA2xH,YAAA,WACA7xH,KAAA+7C,QAAAgvE,GAAAtsC,cACAz+E,KAAA+7C,MAAAgvE,GAAAE,KACAjrH,KAAAooH,SAIAqD,EAAAvrH,UAAAihH,aAAA,SAAArwG,GACA,IAAA47G,EAAA1sH,KAAA0sH,YACAnhB,EAAAvrG,KAAAurG,IACA0J,EAAAj1G,KAAAi1G,OACAe,EAAAh2G,KAAAg2G,MAEA8b,EAAAhhH,EAAA2rF,KACA,GAAAz8F,KAAA+7C,QAAAgvE,GAAAttC,cAAAivC,GAAA,SAAAoF,EAAAtuH,MAAAsuH,EAAAzuG,QAAAqpG,EAAArpG,OAAAyuG,EAAAnvB,KAAA+pB,EAAA/pB,GAAA,CACA,IAAA4H,EAAAz5F,EAAAy5F,MACAwnB,EAAA9c,EAAAyX,EAAArpG,OACA8oE,EAAA4lC,EAAA5lC,QAQA,GAJAnsF,KAAAohH,aAAA,EACAphH,KAAAuqG,QAEA9vB,EAAA,EAAAj7E,IAAA,UAAAktH,EAAA/pB,GAAA,QAAAxW,EAAA+iB,QAAA,KAAA/iB,EAAA0iB,MAAA,WAAA6d,EAAArpG,OACAyuG,EAAA1Q,aAAA7V,EAAA+gB,cAEAtsH,KAAA+7C,MAAAgvE,GAAAE,KACAjrH,KAAAosH,oBAAA,EACA7hB,EAAAyS,QAAAzS,EAAAynB,UAAAriH,OAAAm6F,YAAAp6F,MACA67F,EAAAt5F,QAAAsH,EAAA,EAAA4kE,eAA8DosB,QAAA9N,KAAAiwB,EAAAhrH,GAAA,SAC9D1B,KAAAooH,YACO,mBAAA0J,EAAAnvB,GACP3iG,KAAA+7C,MAAAgvE,GAAAE,KACA1gB,EAAAyS,QAAAzS,EAAAynB,UAAAriH,OAAAm6F,YAAAp6F,MACAy8E,EAAAU,YAAA/7E,OAAA8yB,QACA2nE,EAAAt5F,QAAAsH,EAAA,EAAA4kE,eAA8DosB,QAAA9N,KAAAiwB,EAAAhrH,GAAA,SAC9D1B,KAAAooH,WACO,CACP3tC,EAAA,EAAAj7E,IAAA,WAAAktH,EAAA/pB,GAAA,QAAAxW,EAAA+iB,QAAA,KAAA/iB,EAAA0iB,MAAA,WAAA6d,EAAArpG,MAAA,QAAAqpG,EAAA5V,IACA92G,KAAA+7C,MAAAgvE,GAAAK,QACAprH,KAAAiyH,kBAAA,EACAjyH,KAAAkyH,UAAA,EAIAJ,EAAA1Q,cACA0Q,EAAA1Q,aAAA,EACAphH,KAAAwpH,gBAAArI,cACA1kB,KAAAq1B,KAKA,IAAA1hC,IAAA4lB,KAAAmU,WAAAh+B,EAAAu5B,WAAAv5B,EAAA4iB,MACAojB,EAAAhmC,EAAAU,YAAAV,EAAAU,YAAA/7E,QACAg8E,EAAA9sF,KAAAoyH,eAAAL,IAGA/xH,KAAAkqG,QAAAlqG,KAAAkqG,SAAA,IAAAsZ,GAAAxjH,KAAAurG,IAAA,SACAhqG,KAAAuP,EAAA8yB,QAAAuuF,EAAArlC,EAAAilC,EAAAhlC,WAAA2/B,EAAAvgC,EAAAkjB,cAAAjf,IAGApwF,KAAAmsH,cAAA,GAGAV,EAAAvrH,UAAAmyH,yBAAA,SAAAvhH,GACA,IAAA47G,EAAA1sH,KAAA0sH,YACA4F,EAAAxhH,EAAA2rF,KAEA,GAAAiwB,GAAA,SAAA57G,EAAApP,IAAA4wH,EAAA3vB,KAAA+pB,EAAA/pB,IAAA2vB,EAAAjvG,QAAAqpG,EAAArpG,OAAArjB,KAAA+7C,QAAAgvE,GAAAK,QAAA,CACA,IAAAj+B,EAAAr8E,EAAAq8E,OACAolC,OAAA,EACAthC,OAAA,EASA,GANA9D,EAAAC,OAAAptF,KAAAytH,iBACAtgC,EAAAC,MAIA6D,EAAA9D,EAAAC,MACA,CACA,IAAAN,EAAA9sF,KAAAi1G,OAAAj1G,KAAAqjB,OAAAypE,WACA0lC,EAAA3zE,UAAAC,UAAAxmC,cACAw0E,GAAA9sF,KAAA4rH,iBACAnxC,EAAA,EAAAj7E,IAAA,iCAEAstF,GADA,IAAAA,EAAAhtF,QAAA,aACA,YAEA,aAOAE,KAAAyxH,kBAEA,IAAAxgC,EAAAwU,SAAAhU,eAEA,IAAA+gC,EAAA1yH,QAAA,aACAgtF,EAAA,cAIA,IAAA0lC,EAAA1yH,QAAA,2BAAAmxF,EAAA1D,YAEAT,EAAA,YACArS,EAAA,EAAAj7E,IAAA,iCAAAstF,IAEAmE,EAAAwhC,WAAA3lC,EACAmE,EAAAvvF,GAAAoP,EAAApP,GASA,IAAA6wH,KAPAthC,EAAA9D,EAAAE,SAEA4D,EAAAwhC,WAAAzyH,KAAAi1G,OAAAj1G,KAAAqjB,OAAA0pE,WACAkE,EAAAvvF,GAAAoP,EAAApP,IAEA1B,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAuiE,cAAAqR,GAEAA,EAAA,CACA8D,EAAA9D,EAAAolC,GACA93C,EAAA,EAAAj7E,IAAA,cAAA+yH,EAAA,cAAAthC,EAAA1D,UAAA,0BAAA0D,EAAAwhC,WAAA,IAAAxhC,EAAAzD,MAAA,KACA,IAAAX,EAAAoE,EAAApE,YACAA,IACA7sF,KAAAkyH,UAAA,EAEAlyH,KAAAiyH,kBAAA,EACAjyH,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAyiE,kBAAwEx4E,KAAA+uH,EAAAzhH,KAAA+7E,EAAAtjD,OAAA,OAAA6W,QAAA,iBAIxEpgD,KAAAooH,SAIAqD,EAAAvrH,UAAAwyH,kBAAA,SAAA5hH,GACA,IAAAoN,EAAAle,KAEA0sH,EAAA1sH,KAAA0sH,YACA4F,EAAAxhH,EAAA2rF,KACA,GAAAiwB,GAAA,SAAA57G,EAAApP,IAAA4wH,EAAA3vB,KAAA+pB,EAAA/pB,IAAA2vB,EAAAjvG,QAAAqpG,EAAArpG,QAAA,UAAAvS,EAAAtN,OAAAxD,KAAAytH,WACAztH,KAAA+7C,QAAAgvE,GAAAK,QAAA,CACA,IAAA/nG,EAAArjB,KAAAi1G,OAAAj1G,KAAAqjB,OACAo5E,EAAAiwB,EAiBA,GAhBA9iH,OAAA6mF,EAAA,EAAA7mF,CAAAkH,EAAAg0F,UACAh0F,EAAAg0F,OAAAh0F,EAAAi0F,SAAA2nB,EAAA1/B,SACAl8E,EAAAm3F,OAAAn3F,EAAAu/E,SAAAq8B,EAAA1/B,WAGA,IAAAl8E,EAAAo3F,UACAzL,EAAAiR,oBAAAb,EAAAU,sBAAAC,QAGA,IAAA18F,EAAAq3F,UACA1L,EAAAiR,oBAAAb,EAAAU,sBAAAE,OAGAhzB,EAAA,EAAAj7E,IAAA,UAAAsR,EAAAtN,KAAA,SAAAsN,EAAAi0F,SAAAz9F,QAAA,OAAAwJ,EAAAg0F,OAAAx9F,QAAA,aAAAwJ,EAAAu/E,SAAA/oF,QAAA,OAAAwJ,EAAAm3F,OAAA3gG,QAAA,WAAAwJ,EAAAs3F,GAAA,aAAAt3F,EAAAwoF,SAAA,IAGA,UAAAxoF,EAAAtN,KAEA,GADAi5F,EAAAnD,QAAAxoF,EAAAwoF,QACAmD,EAAAnD,QACA,GAAAmD,EAAA2pB,YAkBA3rC,EAAA,EAAA/kE,KAAA,+DAAA+mF,EAAAkG,QAlBA,CACA,IAAAma,EAAAz5F,EAAA8oE,QACA,IAAA2wB,GAAArgB,EAAAkG,KAAAma,EAAA5N,QAaA,OAVAz0B,EAAA,EAAA/kE,KAAA,gDAAA+mF,EAAAkG,IAIA3iG,KAAAwpH,gBAAAlJ,eAAA7jB,GACAA,EAAA2pB,aAAA,EACApmH,KAAAwsH,iBAAA17G,EAAAi0F,SACA/kG,KAAA+7C,MAAAgvE,GAAAE,KACAjrH,KAAA2sH,aAAAlwB,OACAz8F,KAAAooH,OAXA3tC,EAAA,EAAA/kE,KAAA,2DAAA+mF,EAAAkG,SAmBAlG,EAAA2pB,aAAA,EAIA,IAAAZ,EAAAH,GAAAhiG,EAAA8oE,QAAAsQ,EAAA3rF,EAAAi0F,SAAAj0F,EAAAg0F,OAAAh0F,EAAAu/E,SAAAv/E,EAAAm3F,QACAsD,EAAAvrG,KAAAurG,IACAA,EAAAt5F,QAAAsH,EAAA,EAAAsjE,mBAAgEsP,QAAA9oE,EAAA8oE,QAAA9oE,MAAArjB,KAAAqjB,MAAAmiG,QAAAhiH,KAAAsN,EAAAtN,KAAAhB,MAAAsO,EAAAi0F,SAAA7zE,IAAApgB,EAAAg0F,UAEhEh0F,EAAAi3F,MAAAj3F,EAAAk3F,OAAAl+F,QAAA,SAAA46E,GAGAA,KAAAzjF,QAAAid,EAAA69B,QAAAgvE,GAAAK,UACAltG,EAAAg0G,UAAA,EAEAh0G,EAAA+zG,kBAAA,EACA1mB,EAAAt5F,QAAAsH,EAAA,EAAAyiE,kBAAmEx4E,KAAAsN,EAAAtN,KAAAsN,KAAA4zE,EAAAn7C,OAAA,OAAA6W,QAAA,YAInEpgD,KAAAooH,SAIAqD,EAAAvrH,UAAAyyH,aAAA,SAAA7hH,GACA,IAAA47G,EAAA1sH,KAAA0sH,YACA4F,EAAAxhH,EAAA2rF,KACAiwB,GAAA,SAAA57G,EAAApP,IAAA4wH,EAAA3vB,KAAA+pB,EAAA/pB,IAAA2vB,EAAAjvG,QAAAqpG,EAAArpG,OAAArjB,KAAA+7C,QAAAgvE,GAAAK,UACAprH,KAAAuqG,MAAAyS,QAAArtG,OAAAm6F,YAAAp6F,MACA1P,KAAA+7C,MAAAgvE,GAAAM,OACArrH,KAAA4yH,yBAIAnH,EAAAvrH,UAAA2yH,sBAAA,SAAA/hH,GAEA,IAAA28G,IAAA38G,EAAA3C,IACA8gF,EAAAn+E,EAAApP,GAIA,IAAA+rH,EAAA,CACA,GAAAztH,KAAAwtH,cAAAxtH,KAAAg2G,MAAA,CACAv7B,EAAA,EAAAj7E,IAAA,iFACAQ,KAAAwtH,YAAAxtH,KAAAg2G,MACA,IAAA0W,EAAA1sH,KAAA0sH,YAEAA,EAAA3S,SACAt/B,EAAA,EAAAj7E,IAAA,4DACAktH,EAAA3S,OAAAW,SAEA16G,KAAA0sH,YAAA,KACA1sH,KAAA2sH,aAAA,KAEA3sH,KAAAkqG,UACAlqG,KAAAkqG,QAAA/qD,UACAn/C,KAAAkqG,QAAA,MAGAlqG,KAAA+7C,MAAAgvE,GAAAE,KAEA,IAAA1f,EAAAvrG,KAAAurG,IAEAA,EAAAt5F,QAAAsH,EAAA,EAAA4iE,iBAA8Do0C,YAAA,EAAAC,UAAAz1G,OAAA+0G,kBAAAtsH,KAAA,UAC9D+nG,EAAAt5F,QAAAsH,EAAA,EAAAyjE,sBAAmEt7E,GAAAutF,IACnEjvF,KAAAytH,UAAA,IAIAhC,EAAAvrH,UAAA4yH,qBAAA,SAAAhiH,GACA,IAAAm+E,EAAAn+E,EAAApP,GACA+rH,IAAAztH,KAAAurG,IAAAkR,YAAAxtB,GAAA9gF,IACA,GAAAs/G,EAAA,CACA,IAAAsF,EAAA/yH,KAAA+yH,YAEAA,GAAA/yH,KAAAwtH,cAAAuF,IACAt4C,EAAA,EAAAj7E,IAAA,sFACAQ,KAAAwtH,YAAAuF,GAGA/yH,KAAAytH,WACAztH,KAAAooH,QAGAqD,EAAAvrH,UAAA8yH,gBAAA,SAAAliH,GACA,IAAAq8E,EAAAr8E,EAAAq8E,OACA8lC,OAAA,EACArwH,OAAA,EACAswH,GAAA,EACA,QAAA1vH,KAAA2pF,EAAA,CACA,IAAA8D,EAAA9D,EAAA3pF,GACA,SAAAytF,EAAAvvF,IACAkB,EAAAY,EACAyvH,EAAAhiC,EAEA,UAAAztF,IACAxD,KAAA+yH,YAAA5lC,EAAA3pF,GAAAkhF,SAGAwuC,GAAA,EAGAA,GAAAD,GACAx4C,EAAA,EAAAj7E,IAAA,8BAAAoD,EAAA,+CACA5C,KAAAwtH,YAAAyF,EAAAvuC,QAEA1kF,KAAAwtH,YAAAxtH,KAAAg2G,OAIAyV,EAAAvrH,UAAAmhH,iBAAA,SAAAvwG,GACA,YAAAA,EAAAy4B,OAAA,CACA,IAAAwS,EAAA/7C,KAAA+7C,MACAA,IAAAgvE,GAAAK,SAAArvE,IAAAgvE,GAAAM,SAEArrH,KAAAiyH,iBAAAnhH,EAAAqiH,QAAA,EACAnzH,KAAA4yH,0BAKAnH,EAAAvrH,UAAA0yH,qBAAA,WAEA,KAAA5yH,KAAA+7C,QAAAgvE,GAAAM,QAAArrH,KAAAkyH,UAAAlyH,KAAAiyH,kBAAA,CACA,IAAAx1B,EAAAz8F,KAAA0sH,YACA,GAAAjwB,EAAA,CACA,IAAAuZ,EAAAh2G,KAAAwtH,YAAAxtH,KAAAwtH,YAAAxtH,KAAAg2G,MACAv7B,EAAA,EAAAj7E,IAAA,mBAAA8mH,GAAA1+G,SAAAouG,EAAA6J,WACA7/G,KAAA2sH,aAAAlwB,EACA,IAAA8N,EAAAvqG,KAAAuqG,MACAA,EAAAynB,UAAAriH,OAAAm6F,YAAAp6F,MAEA1P,KAAAswH,aAAAvoH,KAAAqC,MAAA,EAAAmgG,EAAA6oB,OAAA7oB,EAAAynB,UAAAznB,EAAA8oB,SACArzH,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA4kE,eAAmEosB,QAAA9N,OAAA/6F,GAAA,SACnE1B,KAAA+7C,MAAAgvE,GAAAE,KAEAjrH,KAAAooH,SAIAqD,EAAAvrH,UAAA07G,QAAA,SAAA9qG,GACA,IAAA2rF,EAAA3rF,EAAA2rF,MAAAz8F,KAAA0sH,YAEA,IAAAjwB,GAAA,SAAAA,EAAAj5F,KAAA,CAKA,IAAA8vH,IAAAtzH,KAAAg2G,OAAAkM,EAAAE,WAAApiH,KAAAg2G,MAAAh2G,KAAAg2G,MAAA6T,cAAA3H,EAAAE,WAAApiH,KAAAg2G,MAAAh2G,KAAAg2G,MAAA6T,YAAA,IAEA,OAAA/4G,EAAAq7E,SACA,KAAAlB,EAAA,EAAAjL,gBACA,KAAAiL,EAAA,EAAAhL,kBACA,KAAAgL,EAAA,EAAA5K,eACA,KAAA4K,EAAA,EAAA3K,iBACA,IAAAxvE,EAAAs7E,MAEA,GAAApsF,KAAAmsH,cAAA,GAAAnsH,KAAAggD,OAAAg/D,oBAAA,CAEA,IAAA/8G,EAAA8F,KAAAC,IAAAD,KAAAI,IAAA,EAAAnI,KAAAmsH,eAAAnsH,KAAAggD,OAAAi/D,sBAAAj/G,KAAAggD,OAAAq+D,4BACA5jC,EAAA,EAAA/kE,KAAA,kDAAAzT,EAAA,OACAjC,KAAA6sH,UAAAl9G,OAAAm6F,YAAAp6F,MAAAzN,EAIAjC,KAAAusH,iBACAvsH,KAAAosH,oBAAA,EACApsH,KAAAwsH,iBAAAxsH,KAAAksH,eAEAlsH,KAAAmsH,gBACAnsH,KAAA+7C,MAAAgvE,GAAAG,gCAEAzwC,EAAA,EAAAM,MAAA,oBAAAjqE,EAAAq7E,QAAA,+CAEAr7E,EAAAs7E,OAAA,EACApsF,KAAA+7C,MAAAgvE,GAAAxsC,MAGA,MACA,KAAA0M,EAAA,EAAAtL,iBACA,KAAAsL,EAAA,EAAArL,mBACA5/E,KAAA+7C,QAAAgvE,GAAAxsC,QACAztE,EAAAs7E,OAEApsF,KAAA+7C,MAAAgvE,GAAAxsC,MACA9D,EAAA,EAAA/kE,KAAA,qBAAA5E,EAAAq7E,QAAA,cAAAnsF,KAAA+7C,MAAA,eAGAjrC,EAAAyiH,YAAAvzH,KAAA+7C,QAAAgvE,GAAAI,gBACAnrH,KAAA+7C,MAAAgvE,GAAAE,OAIA,MACA,KAAAhgC,EAAA,EAAAtK,kBAEA,SAAA7vE,EAAAy4B,QAAAvpC,KAAA+7C,QAAAgvE,GAAAK,SAAAprH,KAAA+7C,QAAAgvE,GAAAM,SAEAiI,GACAtzH,KAAAmvH,uBAAAnvH,KAAAggD,OAAAstE,iBACAttH,KAAA+7C,MAAAgvE,GAAAE,OAKAxwC,EAAA,EAAA/kE,KAAA,8EACA1V,KAAA0sH,YAAA,KAEA1sH,KAAA6vH,gBAAA,EAAA90G,OAAA+0G,wBASArE,EAAAvrH,UAAAivH,uBAAA,SAAAqE,GACA,IAAAxzE,EAAAhgD,KAAAggD,OACA,OAAAA,EAAAutE,oBAAAiG,IAEAxzE,EAAAutE,oBAAA,EACA9yC,EAAA,EAAA/kE,KAAA,oCAAAsqC,EAAAutE,mBAAA,MACA,IAWA9B,EAAAvrH,UAAA4sH,aAAA,WACA,IAAA9W,EAAAh2G,KAAAg2G,MAEA,GAAAA,GAAA,IAAAA,EAAAkU,WAAA,CAKA,IACArK,GADA7/G,KAAAwtH,YAAAxtH,KAAAwtH,YAAAxX,GACA6J,UAEA7/G,KAAAusH,gBAAA1M,EAAA5+G,QACAjB,KAAAusH,gBAAA,EACAvsH,KAAAyzH,mBACKzzH,KAAAyvH,gBACLzvH,KAAA+vH,0BAEA/vH,KAAA8rH,cAAAnC,KAAA3pH,KAAA4pH,gBAAA/J,KAIA4L,EAAAvrH,UAAAwzH,2BAAA,WACA1zH,KAAA+7C,MAAAgvE,GAAAE,KAGAjrH,KAAAusH,iBACAvsH,KAAAosH,oBAAA,EACApsH,KAAAwsH,iBAAAxsH,KAAAksH,eAEAlsH,KAAAooH,QAGAqD,EAAAvrH,UAAAyzH,gBAAA,WAIA,IAAA3d,EAAAh2G,KAAAwtH,YAAAxtH,KAAAwtH,YAAAxtH,KAAAg2G,MACAA,GAEAh2G,KAAAwpH,gBAAAzJ,uBAAAlT,EAAAU,sBAAAE,MAAAuI,EAAA6J,UAGA7/G,KAAA+7C,MAAAgvE,GAAAE,KAEAjrH,KAAA2sH,aAAA,MAGAlB,EAAAvrH,UAAA0zH,eAAA,WACA5zH,KAAA4rH,gBAAA5rH,KAAA4rH,gBAGAH,EAAAvrH,UAAAouH,oBAAA,SAAAjI,EAAAvJ,GACA,IAAA+W,OAAAnmH,IAAA1N,KAAAggD,OAAA8zE,iBAAA9zH,KAAAggD,OAAA8zE,iBAAA9zH,KAAAggD,OAAA+zE,sBAAAjX,EAAA1N,eACA,OAAAiX,EAAAt+G,KAAAE,IAAA,EAAA60G,EAAAzN,cAAAwkB,IASApI,EAAAvrH,UAAAuzH,gBAAA,WACA,IAAAzd,EAAAh2G,KAAAg2G,MAEA6T,EAAA7T,EAAA6T,YAGAqC,EAAAlW,EAAAmU,QAAAN,EAAA7pH,KAAAksH,cAEArC,IAAAqC,IAEAzxC,EAAA,EAAAj7E,IAAA,iEAAA0sH,EAAA,sBAAArC,EAAA,KACA7T,EAAA6T,YAAAqC,IAIAT,EAAAvrH,UAAAkyH,eAAA,SAAAL,GACA,IAAAjlC,EAAA9sF,KAAAggD,OAAAg0E,mBAAAjC,EAAAjlC,WAYA,OAXA9sF,KAAA4rH,iBACAnxC,EAAA,EAAAj7E,IAAA,iCACAstF,IAEAA,GADA,IAAAA,EAAAhtF,QAAA,aACA,YAEA,cAKAgtF,GAGAg+B,GAAAW,IACA1hH,IAAA,QACAi7C,IAAA,SAAAivE,GACA,GAAAj0H,KAAA+7C,QAAAk4E,EAAA,CACA,IAAAC,EAAAl0H,KAAA+7C,MACA/7C,KAAA6rH,OAAAoI,EACAx5C,EAAA,EAAAj7E,IAAA,eAAA00H,EAAA,KAAAD,GACAj0H,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAolE,yBAA6Eu1C,gBAAAD,gBAG7EjwH,IAAA,WACA,OAAAhE,KAAA6rH,UAGA9hH,IAAA,eACA/F,IAAA,WACA,IAAAgyG,EAAAh2G,KAAAg2G,MACA,GAAAA,EAAA,CACA,IAAAvZ,EAAAz8F,KAAA0/G,gBAAA1J,EAAA6T,aACA,GAAAptB,EACA,OAAAA,EAAAp5E,MAGA,YAGAtZ,IAAA,mBACA/F,IAAA,WACA,IAAAgyG,EAAAh2G,KAAAg2G,MACA,OAAAA,EAEAh2G,KAAAovH,sBAAApvH,KAAA0/G,gBAAA1J,EAAA6T,cAEA,QAIA9/G,IAAA,YACA/F,IAAA,WACA,IAAAy4F,EAAAz8F,KAAAmwH,iBACA,OAAA1zB,EACAA,EAAAp5E,OAEA,KAIAtZ,IAAA,mBACA/F,IAAA,WACA,OAAAhE,KAAAm0H,mBAEAnvE,IAAA,SAAAz9C,GACAvH,KAAAm0H,kBAAA5sH,MAIAkkH,EAj5CA,CAk5CC7D,IAIDwM,GAAA,mBAAAnpH,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAqH,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE7JkpH,GAAA,WAAiD,SAAAhvE,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAziB,GAmBA,IACA0xC,GADA3kH,OACAm6F,YA2eAyqB,GAzeA,SAAA3b,GAGA,SAAA4b,EAAAjpB,IAvBA,SAAAhsD,EAAAqjC,GAAkE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAwB5GywE,CAAAz0H,KAAAw0H,GAEA,IAAA33G,EAxBA,SAAA1Q,EAAAT,GAAkE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAwBxKgpH,CAAA10H,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAA+iE,gBAAA/iE,EAAA,EAAAojE,aAAApjE,EAAA,EAAAyjE,qBAAAzjE,EAAA,EAAAqkE,YAAArkE,EAAA,EAAAglE,QAMA,OAJA1hE,EAAA83G,SAAA,EACA93G,EAAA+3G,kBAAA,KACA/3G,EAAAg4G,kBAAA,EACAh4G,EAAA3Q,MAAA,KACA2Q,EA0dA,OAtfA,SAAAq8F,EAAAC,GAA2D,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAiBtY2b,CAAAN,EAAA5b,GAcA4b,EAAAt0H,UAAA0rG,oBAAA,WACA5rG,KAAA+0H,aACA/0H,KAAA60H,kBAAA,GAGAL,EAAAt0H,UAAA60H,WAAA,WACA,OAAA/0H,KAAAkM,QACAG,aAAArM,KAAAkM,OACAlM,KAAAkM,MAAA,OAIAsoH,EAAAt0H,UAAA+rH,UAAA,WACA,IAAAhX,EAAAj1G,KAAAg1H,QAEAh1H,KAAA20H,SAAA,EACA30H,KAAAi1H,gBAAA,EAGAhgB,GACAA,EAAAnrG,QAAA,SAAAuZ,GACAA,EAAA6xG,UAAA,EACA,IAAApY,EAAAz5F,EAAA8oE,QACA2wB,KAAA/N,OACA1rF,EAAA8oE,aAAAz+E,KAKA,OAAA1N,KAAAkM,OACAlM,KAAAm1H,aAIAX,EAAAt0H,UAAA8rH,SAAA,WACAhsH,KAAA20H,SAAA,GAGAH,EAAAt0H,UAAAk1H,iBAAA,SAAAtkH,GACA,IAAAmkG,KACAogB,OAAA,EACAC,KACAC,EAAA,KACAC,GAAA,EACAC,GAAA,EACAC,EAAA,iBAAA/5D,KAAA9c,UAAAC,UAAAxmC,eACAmkG,KA8DA,GA3DA3rG,EAAAmkG,OAAAnrG,QAAA,SAAAuZ,GACAA,EAAA6xG,UAAA,EACA7xG,EAAAsyG,eAAA,EAEAH,OAAAnyG,EAAA0pE,WACA0oC,OAAApyG,EAAAypE,eAAAzpE,EAAAhM,QAAAgM,EAAAhM,MAAAm2F,OAIAkoB,GAAAryG,EAAAypE,aAAA,IAAAzpE,EAAAypE,WAAAhtF,QAAA,gBACAujB,EAAAypE,gBAAAp/E,IAGA6nH,EAAAD,EAAAjyG,EAAAqyF,UAQA6f,EAAApnH,IAAA5M,KAAA8hB,EAAAlV,MALAkV,EAAAlV,KAAAkV,EAAAlV,KACAkV,EAAA4zF,MAAA,EACAqe,EAAAjyG,EAAAqyF,SAAAryF,EACA4xF,EAAA1zG,KAAA8hB,IAKAA,EAAAhM,OAAAgM,EAAAhM,MAAAm2F,OACAoX,GAAA2Q,GAAAlyG,EAAA,QAAAA,EAAAhM,MAAAm2F,OAGAnqF,EAAAhM,OAAAgM,EAAAhM,MAAAu+G,WACAhR,GAAA2Q,GAAAlyG,EAAA,OAAAA,EAAAhM,MAAAu+G,aAKAJ,GAAAC,IACAxgB,IAAA7tF,OAAA,SAAAlZ,GAEA,QADAA,EAAA6+E,cAMAkoB,IAAA7tF,OAAA,SAAAyuG,GACA,IAAA/oC,EAAA+oC,EAAA/oC,WACAC,EAAA8oC,EAAA9oC,WAEA,QAAAD,GAAAgnB,EAAAhnB,OAAAC,GAAA+mB,EAAA/mB,MAGAj8E,EAAA2rG,cACAA,EAAA3rG,EAAA2rG,YAAAr1F,OAAA,SAAA6pE,GACA,OAAAA,EAAAnE,YAAAgnB,EAAA7iB,EAAAnE,WAAA,YAGAhjF,QAAA,SAAAmnF,EAAArkF,GACAqkF,EAAAvvF,GAAAkL,IAIAqoG,EAAAh0G,OAAA,GAEAo0H,EAAApgB,EAAA,GAAAS,QAEAT,EAAA3/F,KAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAmgG,QAAAlgG,EAAAkgG,UAEA11G,KAAAg1H,QAAA/f,EAEA,QAAAl0G,EAAA,EAAqBA,EAAAk0G,EAAAh0G,OAAmBF,IACxC,GAAAk0G,EAAAl0G,GAAA20G,UAAA2f,EAAA,CACAr1H,KAAA81H,YAAA/0H,EACA05E,EAAA,EAAAj7E,IAAA,mBAAAy1G,EAAAh0G,OAAA,kCAAAo0H,GACA,MAGAr1H,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAgjE,iBACA04B,SACAwH,cACAsZ,WAAA/1H,KAAA81H,YACAvrB,MAAAz5F,EAAAy5F,MACAnd,MAAAqoC,EACApoC,MAAAmoC,EACA/H,SAAAhR,EAAAx7G,OAAA,GAAAu0H,SAGAx1H,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAlM,YACAoN,QAAAlB,EAAA,EAAAvL,mCACA0M,OAAA,EACAj+E,IAAAnO,KAAAurG,IAAAp9F,IACA4xD,OAAA,uDAKAy0D,EAAAt0H,UAAA81H,iBAAA,SAAAC,GACA,IAAAhhB,EAAAj1G,KAAAg1H,QACAzpB,EAAAvrG,KAAAurG,IAEA,GAAA0qB,GAAA,GAAAA,EAAAhhB,EAAAh0G,OAAA,CAGA,GADAjB,KAAA+0H,aACA/0H,KAAA40H,oBAAAqB,EAAA,CACAx7C,EAAA,EAAAj7E,IAAA,sBAAAy2H,GACAj2H,KAAA40H,kBAAAqB,EACA,IAAAC,EAAAjhB,EAAAghB,GACAC,EAAA7yG,MAAA4yG,EACA1qB,EAAAt5F,QAAAsH,EAAA,EAAAijE,gBAAA05C,GAEA,IAAA7yG,EAAA4xF,EAAAghB,GACAnZ,EAAAz5F,EAAA8oE,QAGA,IAAA2wB,KAAA/N,KAAA,CAEA,IAAAkI,EAAA5zF,EAAA4zF,MACA1L,EAAAt5F,QAAAsH,EAAA,EAAAmjE,eAA8DvuE,IAAAkV,EAAAlV,IAAA8oG,GAAA5zF,MAAA4yG,EAAAv0H,GAAAu1G,UAI9D1L,EAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAA/L,YACAiN,QAAAlB,EAAA,EAAApL,mBACAx8D,MAAA4yG,EACA7pC,OAAA,EACArsB,OAAA,uBAKAy0D,EAAAt0H,UAAA07G,QAAA,SAAA9qG,GACA,GAAAA,EAAAs7E,MACAt7E,EAAAtN,OAAAynF,EAAA,EAAAnM,eACA9+E,KAAA+0H,iBAFA,CAQA,IAAAoB,GAAA,EACAR,GAAA,EACAS,OAAA,EAGA,OAAAtlH,EAAAq7E,SACA,KAAAlB,EAAA,EAAAjL,gBACA,KAAAiL,EAAA,EAAAhL,kBACA,KAAAgL,EAAA,EAAA5K,eACA,KAAA4K,EAAA,EAAA3K,iBACA81C,EAAAtlH,EAAA2rF,KAAAp5E,MACAsyG,GAAA,EACA,MACA,KAAA1qC,EAAA,EAAAtL,iBACA,KAAAsL,EAAA,EAAArL,mBACAw2C,EAAAtlH,EAAAg9C,QAAAzqC,MACA8yG,GAAA,EACA,MACA,KAAAlrC,EAAA,EAAA7K,kBACAg2C,EAAAtlH,EAAAuS,MACA8yG,GAAA,OAIAzoH,IAAA0oH,GACAp2H,KAAAq2H,aAAAvlH,EAAAslH,EAAAD,EAAAR,KAgBAnB,EAAAt0H,UAAAm2H,aAAA,SAAAC,EAAAF,EAAAD,EAAAR,GACA,IAAAz3G,EAAAle,KAEAggD,EAAAhgD,KAAAurG,IAAAvrD,OACAu2E,EAAAD,EAAAnqC,QAEA9oE,EAAArjB,KAAAg1H,QAAAoB,GACAI,OAAA,EACAv0H,OAAA,EACAouH,OAAA,EAKA,GAHAhtG,EAAA6xG,YACA7xG,EAAAsyG,gBAEAQ,EAAA,CACA,KAAAn2H,KAAAi1H,gBAAA,GAAAj1E,EAAAo7D,sBAkBA,OANA3gC,EAAA,EAAAM,MAAA,yCAAAw7C,EAAA,UACAv2H,KAAA40H,kBAAA,KAEA50H,KAAA+0H,kBAEAuB,EAAAlqC,OAAA,GAfAnqF,EAAA8F,KAAAC,IAAAD,KAAAI,IAAA,EAAAnI,KAAAi1H,iBAAAj1E,EAAAq7D,uBAAAr7D,EAAAs7D,6BAEAt7G,KAAAkM,MAAAI,WAAA,WACA,OAAA4R,EAAAi3G,aACSlzH,GAETq0H,EAAA/C,YAAA,EACAvzH,KAAAi1H,kBACAx6C,EAAA,EAAA/kE,KAAA,qBAAA6gH,EAAA,cAAAt0H,EAAA,+BAAAjC,KAAAi1H,kBAcAkB,GAAAR,MACAa,EAAAnzG,EAAAlV,IAAAlN,QAEA,GAAAoiB,EAAA6xG,UAAAsB,GACAnzG,EAAA4zF,OAAA5zF,EAAA4zF,MAAA,GAAAuf,EACAnzG,EAAA8oE,aAAAz+E,EAEA+sE,EAAA,EAAA/kE,KAAA,qBAAA6gH,EAAA,cAAAH,EAAA,mCAAA/yG,EAAA4zF,SAMA,IAAAj3G,KAAA60H,kBAEAxE,EAAA,IAAA+F,EAAAp2H,KAAAg1H,QAAA/zH,OAAA,EAAAm1H,EAAA,EACA37C,EAAA,EAAA/kE,KAAA,qBAAA6gH,EAAA,eAAAlG,GACArwH,KAAAurG,IAAAkrB,cAAAz2H,KAAA40H,kBAAAvE,GACSsF,IAGTl7C,EAAA,EAAA/kE,KAAA,qBAAA6gH,EAAA,uBACAv2H,KAAA40H,kBAAA,QASAJ,EAAAt0H,UAAAihH,aAAA,SAAAuV,GACA,IAAAj6B,EAAAi6B,EAAAj6B,KAEA,QAAA/uF,IAAA+uF,GAAA,SAAAA,EAAAj5F,KAAA,CACA,IAAA6f,EAAArjB,KAAAg1H,QAAAv4B,EAAAp5E,YACA3V,IAAA2V,IACAA,EAAAsyG,eAAA,EACAtyG,EAAA6xG,UAAA,EACAl1H,KAAAi1H,gBAAA,KAKAT,EAAAt0H,UAAAwxH,cAAA,SAAA5gH,GACA,IAAAkO,EAAAhf,KAEA48G,EAAA9rG,EAAAuS,MAEA,GAAAu5F,IAAA58G,KAAA40H,kBAAA,CAIA,IAAAhD,EAAA5xH,KAAAg1H,QAAApY,GAEAgV,EAAA+D,gBACA/D,EAAAsD,UAAA,EACAl1H,KAAAi1H,gBAAA,GAEA,IAAApP,EAAA/0G,EAAAq7E,QAEA,GAAA05B,EAAA9W,KAAA,CACA,IAAA4nB,EAAA,KAAA9Q,EAAAjO,sBAAAiO,EAAAjO,sBAAAiO,EAAAzW,gBACAwnB,EAAAD,EACA7P,EAAA8K,EAAAzlC,QACA26B,GAAAjB,EAAAhX,QAAAiY,EAAAjY,QAIA+nB,GAAA,EACAn8C,EAAA,EAAAj7E,IAAA,4CAGAo3H,GAAAtC,GAAA5kH,MAAAoB,EAAAy5F,MAAAssB,SAEAD,EAAA7uH,KAAAE,IAAA0uH,EAAA,EAAA5uH,KAAAqC,MAAAwsH,IACAn8C,EAAA,EAAAj7E,IAAA,4BAAAuI,KAAAqC,MAAAwsH,GAAA,OACA52H,KAAAkM,MAAAI,WAAA,WACA,OAAA0S,EAAAm2G,aACOyB,QAEP52H,KAAA+0H,eAIAP,EAAAt0H,UAAA4yH,qBAAA,SAAAhiH,GACA,IAAAgmH,EAAA92H,KAAAurG,IAAAkR,YAAA3rG,EAAApP,IAAAwxD,QAEA6+D,EAAA/xH,KAAAurG,IAAA0J,OAAAj1G,KAAA40H,mBACA,GAAA7C,GAIAA,EAAAlN,cAAA,CACA,IAAA5N,EAAA8a,EAAAlN,cAAAkS,UAAA,SAAA7jE,GACA,OAAAA,IAAA4jE,IAEA7f,IAAA8a,EAAA9a,QACA8a,EAAA9a,QACAj3G,KAAAisH,eAKAuI,EAAAt0H,UAAAi1H,UAAA,WAGA,GAFA16C,EAAA,EAAAI,MAAA,qBAEA,OAAA76E,KAAA40H,mBAAA50H,KAAA20H,QAAA,CACA,IAAAqC,EAAAh3H,KAAAg1H,QAAAh1H,KAAA40H,mBAEA,wBAAAoC,EAAA,YAAA5C,GAAA4C,OAAA7oH,IAAAlN,OAAA,GACA,IAAAoiB,EAAArjB,KAAA40H,kBACAlzH,EAAAs1H,EAAA/f,MACA9oG,EAAA6oH,EAAA7oH,IAAAzM,GAEA+4E,EAAA,EAAAj7E,IAAA,+BAAA6jB,EAAA,gBAAA3hB,GAKA1B,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAmjE,eAAmEvuE,MAAAkV,QAAA3hB,UAKnE2yH,GAAAG,IACAzqH,IAAA,SACA/F,IAAA,WACA,OAAAhE,KAAAg1H,WAGAjrH,IAAA,QACA/F,IAAA,WACA,OAAAhE,KAAA40H,mBAEA5vE,IAAA,SAAAixE,GACA,IAAAhhB,EAAAj1G,KAAAg1H,QACA/f,IACAghB,EAAAluH,KAAAC,IAAAiuH,EAAAhhB,EAAAh0G,OAAA,GACAjB,KAAA40H,oBAAAqB,GAAAhhB,EAAAghB,GAAA9pC,SACAnsF,KAAAg2H,iBAAAC,OAKAlsH,IAAA,cACA/F,IAAA,WACA,OAAAhE,KAAA60H,kBAEA7vE,IAAA,SAAAixE,GACAj2H,KAAA60H,iBAAAoB,OACAvoH,IAAA1N,KAAAi3H,cACAj3H,KAAAi3H,YAAAhB,IAGA,IAAAA,IACAj2H,KAAAqjB,MAAA4yG,MAIAlsH,IAAA,aACA/F,IAAA,WACA,OAAAhE,KAAA81H,aAEA9wE,IAAA,SAAAixE,GACAj2H,KAAA81H,YAAAG,KAGAlsH,IAAA,aACA/F,IAAA,WAGA,QAAA0J,IAAA1N,KAAAi3H,YAAA,CACA,IAAAC,EAAAl3H,KAAAurG,IAAAvrD,OAAAqsE,WACA,YAAA3+G,IAAAwpH,EACAA,EAEAl3H,KAAA81H,YAGA,OAAA91H,KAAAi3H,aAGAjyE,IAAA,SAAAixE,GACAj2H,KAAAi3H,YAAAhB,KAGAlsH,IAAA,gBACA/F,IAAA,WACA,WAAAhE,KAAA60H,iBACA70H,KAAA60H,iBAEA70H,KAAAurG,IAAAkrB,eAGAzxE,IAAA,SAAAqrE,GACArwH,KAAAqjB,MAAAgtG,GACA,IAAArwH,KAAA60H,mBACA70H,KAAAurG,IAAAkrB,cAAApG,OAKAmE,EAteA,CAueCnpB,GAID7Y,GAAAjzF,EAAA,GAIA,SAAA43H,GAAAlmC,EAAAmmC,GACA,IAAA7/D,EAAA,KACA,IACAA,EAAA,IAAA5nD,OAAA0nH,MAAA,YACG,MAAA5xC,IAEHluB,EAAA1nD,SAAAynH,YAAA,UACAC,UAAA,kBAEAhgE,EAAA05B,QACAmmC,EAAAI,cAAAjgE,GAGA,SAAAkgE,GAAAxmC,GACA,GAAAA,KAAAymC,KACA,KAAAzmC,EAAAymC,KAAAz2H,OAAA,GACAgwF,EAAA0mC,UAAA1mC,EAAAymC,KAAA,IAoBA,IAuFAE,GAvFA,SAAAhf,GAGA,SAAAif,EAAAtsB,IAlBA,SAAAhsD,EAAAqjC,GAAsE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAmBhH8zE,CAAA93H,KAAA63H,GAEA,IAAAh7G,EAnBA,SAAA1Q,EAAAT,GAAsE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAmB5KqsH,CAAA/3H,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAmiE,eAAAniE,EAAA,EAAAoiE,gBAAApiE,EAAA,EAAAykE,wBAIA,OAFAnhE,EAAAw9E,cAAA3sF,EACAmP,EAAAm5F,WAAAtoG,EACAmP,EA0EA,OA/FA,SAAAq8F,EAAAC,GAA+D,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAY1Y6e,CAAAH,EAAAjf,GAYAif,EAAA33H,UAAAi/C,QAAA,WACAksD,EAAAnrG,UAAAi/C,QAAAzzC,KAAA1L,OAMA63H,EAAA33H,UAAAwwH,gBAAA,SAAA5/G,GACA9Q,KAAAg2G,MAAAllG,EAAAklG,MACAh2G,KAAAg2G,OAGA6hB,EAAA33H,UAAAgxH,iBAAA,WACAuG,GAAAz3H,KAAAq6F,UACAr6F,KAAAq6F,cAAA3sF,EACA1N,KAAAg2G,WAAAtoG,GAGAmqH,EAAA33H,UAAA+3H,YAAA,SAAAC,GACA,QAAAn3H,EAAA,EAAmBA,EAAAm3H,EAAAj3H,OAAuBF,IAAA,CAC1C,IAAAk7F,EAAAi8B,EAAAn3H,GACA,gBAAAk7F,EAAA3xF,MAAA,QAAA2xF,EAAAxpF,MAKA,OAFA0kH,GAAAl7B,EAAAj8F,KAAAg2G,OAEA/Z,EAGA,OAAAj8F,KAAAg2G,MAAAmiB,aAAA,mBAGAN,EAAA33H,UAAAk4H,sBAAA,SAAAtnH,GACA,IAAAuxE,EAAAvxE,EAAA2rF,KACAnK,EAAAxhF,EAAAwhF,QAGAtyF,KAAAq6F,WACAr6F,KAAAq6F,SAAAr6F,KAAAi4H,YAAAj4H,KAAAg2G,MAAAkiB,YACAl4H,KAAAq6F,SAAAg+B,KAAA,UAQA,IAFA,IAAAC,EAAA3oH,OAAA4oH,eAAA5oH,OAAA6oH,QAAA7oH,OAAA8oH,aAEA13H,EAAA,EAAmBA,EAAAuxF,EAAArxF,OAAoBF,IAAA,CACvC,IAAAsiF,EAAAmP,GAAA,EAAAlP,aAAAgP,EAAAvxF,GAAA+P,MACA,GAAAuyE,EAAA,CACA,IAAAnyB,EAAAohC,EAAAvxF,GAAA8wF,IACAyY,EAAAvpG,EAAAuxF,EAAArxF,OAAA,EAAAqxF,EAAAvxF,EAAA,GAAA8wF,IAAAxP,EAAAyiB,OAGA5zC,IAAAo5C,IACAA,GAAA,MAGA,QAAAp3E,EAAA,EAAuBA,EAAAmwD,EAAApiF,OAAmBiyB,IAAA,CAC1C,IAAAqwD,EAAAF,EAAAnwD,GAEA,IAAAs/D,GAAA,EAAAhP,iBAAAD,GAAA,CACA,IAAAm1C,EAAA,IAAAJ,EAAApnE,EAAAo5C,EAAA,IACAouB,EAAAnxH,MAAAg8E,EACAvjF,KAAAq6F,SAAAs+B,OAAAD,QAOAb,EApFA,CAqFCxsB,GAyBD,IAiCAutB,GAjCA,WAEA,SAAAC,EAAAC,IAVA,SAAAv5E,EAAAqjC,GAAsD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAWhG+0E,CAAA/4H,KAAA64H,GAGA74H,KAAAg5H,OAAAF,EAAA/wH,KAAAkxH,IAAAlxH,KAAAvI,IAAA,IAAAs5H,GAAA,EACA94H,KAAAk5H,UAAA,EACAl5H,KAAAm5H,aAAA,EAsBA,OAnBAN,EAAA34H,UAAAqyF,OAAA,SAAAhjD,EAAAhoC,GACA,IAAA6xH,EAAArxH,KAAAI,IAAAnI,KAAAg5H,OAAAzpF,GACAvvC,KAAAk5H,UAAA3xH,GAAA,EAAA6xH,KAAAp5H,KAAAk5H,UACAl5H,KAAAm5H,cAAA5pF,GAGAspF,EAAA34H,UAAAm5H,eAAA,WACA,OAAAr5H,KAAAm5H,cAGAN,EAAA34H,UAAAo5H,YAAA,WACA,GAAAt5H,KAAAg5H,OAAA,CACA,IAAAO,EAAA,EAAAxxH,KAAAI,IAAAnI,KAAAg5H,OAAAh5H,KAAAm5H,cACA,OAAAn5H,KAAAk5H,UAAAK,EAEA,OAAAv5H,KAAAk5H,WAIAL,EA9BA,GA+CA,IA6CAW,GA7CA,WACA,SAAAC,EAAAluB,EAAAmuB,EAAAC,EAAAC,IAbA,SAAAr6E,EAAAqjC,GAA0E,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAcpH61E,CAAA75H,KAAAy5H,GAEAz5H,KAAAurG,MACAvrG,KAAA85H,iBAAAF,EACA55H,KAAA+5H,WAAA,KACA/5H,KAAAg6H,YAAA,GACAh6H,KAAAi6H,MAAA,IAAArB,GAAAc,GACA15H,KAAAk6H,MAAA,IAAAtB,GAAAe,GAiCA,OA9BAF,EAAAv5H,UAAAqyF,OAAA,SAAA4nC,EAAAC,GAEA,IAAAC,EAAA,IAAAD,GADAD,EAAApyH,KAAAE,IAAAkyH,EAAAn6H,KAAAg6H,cAKAzqF,EAAA4qF,EAAA,IACAn6H,KAAAk6H,MAAA3nC,OAAAhjD,EAAA8qF,GACAr6H,KAAAi6H,MAAA1nC,OAAAhjD,EAAA8qF,IAGAZ,EAAAv5H,UAAAo6H,YAAA,WACA,IAAAX,EAAA35H,KAAAk6H,MACA,OAAAP,KAAAN,kBAAAr5H,KAAA+5H,YAGAN,EAAAv5H,UAAAo5H,YAAA,WACA,OAAAt5H,KAAAs6H,cAKAvyH,KAAAC,IAAAhI,KAAAk6H,MAAAZ,cAAAt5H,KAAAi6H,MAAAX,eAEAt5H,KAAA85H,kBAIAL,EAAAv5H,UAAAi/C,QAAA,aAEAs6E,EA1CA,GAiDAc,GAAA,WAA+C,SAAAl1E,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAviB,GAqBA,IACA43C,GADA7qH,OACAm6F,YAuUA2wB,GArUA,SAAA7hB,GAGA,SAAA8hB,EAAAnvB,IAzBA,SAAAhsD,EAAAqjC,GAAgE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCA0B1G22E,CAAA36H,KAAA06H,GAEA,IAAA79G,EA1BA,SAAA1Q,EAAAT,GAAgE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EA0BtKkvH,CAAA56H,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAkkE,aAAAlkE,EAAA,EAAAqkE,YAAArkE,EAAA,EAAA4kE,cAAA5kE,EAAA,EAAAglE,QAQA,OANA1hE,EAAAg+G,oBAAA,EACAh+G,EAAAi+G,gBAAA,EACAj+G,EAAA0uF,MACA1uF,EAAA3Q,MAAA,KACA2Q,EAAAk+G,aAAA,KACAl+G,EAAAm+G,QAAAn+G,EAAAo+G,mBAAAzwH,KAAAqS,GACAA,EAoTA,OApVA,SAAAq8F,EAAAC,GAAyD,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAmBpY+hB,CAAAR,EAAA9hB,GAgBA8hB,EAAAx6H,UAAAi/C,QAAA,WACAn/C,KAAA+0H,aACA1pB,EAAAnrG,UAAAi/C,QAAAzzC,KAAA1L,OAGA06H,EAAAx6H,UAAA29G,cAAA,SAAA/sG,GACA,IAAA2rF,EAAA3rF,EAAA2rF,KACA,YAAAA,EAAAj5F,OACAxD,KAAAkM,QACAlM,KAAA0sH,YAAAjwB,EACAz8F,KAAAkM,MAAAw8G,YAAA1oH,KAAAg7H,QAAA,OAKAh7H,KAAA+6H,cAAA,CACA,IAAAxvB,EAAAvrG,KAAAurG,IACAvrD,EAAAurD,EAAAvrD,OACA38B,EAAAo5E,EAAAp5E,MAGA83G,OAAA,EACAC,OAAA,EAHA7vB,EAAA0J,OAAA5xF,GAAA8oE,QAAA4iB,MAKAosB,EAAAn7E,EAAAq7E,gBACAD,EAAAp7E,EAAAs7E,kBAEAH,EAAAn7E,EAAAu7E,eACAH,EAAAp7E,EAAAw7E,gBAEAx7H,KAAA+6H,aAAA,IAAAvB,GAAAjuB,EAAA6vB,EAAAD,EAAAn7E,EAAAy7E,0BAKAf,EAAAx6H,UAAA+6H,mBAAA,WAMA,IAAA1vB,EAAAvrG,KAAAurG,IACAle,EAAAke,EAAAyK,MACAvZ,EAAAz8F,KAAA0sH,YAEA,GAAAjwB,EAAA,CAIA,IAAAsd,EAAAtd,EAAAsd,OACA2hB,EAAAnwB,EAAAmwB,aAGA,IAAA3hB,KAAAxP,OAAAwP,EAAAxP,MAAAoxB,QAKA,OAJAlhD,EAAA,EAAA/kE,KAAA,uDACA1V,KAAA+0H,kBAEA/0H,KAAA86H,gBAAA,GAGA,IAAAvwB,EAAAwP,EAAAxP,MAGA,GAAAld,GAAAkd,KAAAld,EAAAsiC,QAAA,IAAAtiC,EAAAuuC,eAAAvuC,EAAA68B,aAAAztB,EAAAwyB,WAAAxyB,EAAAp5E,MAAA,CACA,IAAAw4G,EAAArB,GAAA9qH,MAAA66F,EAAAssB,SACA+E,EAAA7zH,KAAAY,IAAA0kF,EAAAuuC,cAEA,GAAAC,EAAA,IAAAp/B,EAAAzP,SAAA4uC,EAAA,CACA,IAAA3mB,EAAA1J,EAAA0J,OACA6mB,EAAA/zH,KAAAE,IAAA,EAAAsiG,EAAAwxB,GAAAxxB,EAAAwxB,GAAA,MAAAxxB,EAAA0T,OAAA4d,GAGAx4G,EAAA4xF,EAAAxY,EAAAp5E,OACA8pG,EAAA9pG,EAAA24G,YAAAj0H,KAAAE,IAAAob,EAAA24G,YAAA34G,EAAAqyF,SAAAryF,EAAAqyF,QACAumB,EAAA1xB,EAAA6oB,MAAA7oB,EAAA6oB,MAAArrH,KAAAE,IAAAsiG,EAAA0T,OAAAl2G,KAAAqC,MAAAqyF,EAAAzP,SAAAmgC,EAAA,IACAz7F,EAAA27D,EAAAw8B,YACAqS,GAAAD,EAAA1xB,EAAA0T,QAAA6d,EACAK,GAAAja,EAAAG,WAAAh1B,EAAA37D,EAAA65E,EAAAvrD,OAAA2nD,eAAAz2E,IAAAQ,GAAAkqG,EAIA,GAAAO,EAAA,EAAA1/B,EAAAzP,SAAA4uC,GAAAM,EAAAC,EAAA,CACA,IAAAC,OAAA,EACA9P,OAAA,EAGA,IAAAA,EAAA7vB,EAAAp5E,MAAA,EAA8CipG,EAAAoP,EAA8BpP,IAAA,CAI5E,IAAA+P,EAAApnB,EAAAqX,GAAA0P,YAAAj0H,KAAAE,IAAAgtG,EAAAqX,GAAA0P,YAAA/mB,EAAAqX,GAAA5W,SAAAT,EAAAqX,GAAA5W,QAEA,IADA0mB,EAAA3/B,EAAAzP,SAAAqvC,GAAA,IAAAP,IACAK,EAEA,MAKAC,EAAAF,IACAzhD,EAAA,EAAA/kE,KAAA,gEAAA42G,EAAA,oBAAAA,EAAA,sBAAA7vB,EAAAp5E,MAAA,8BAA+M+4G,EAAA90H,QAAA,OAAA40H,EAAA50H,QAAA,OAAA60H,EAAA70H,QAAA,IAE/MikG,EAAA+gB,gBAEAtsH,KAAA+6H,aAAAxoC,OAAAspC,EAAAtxB,EAAA0T,QAEAlE,EAAAW,QAEA16G,KAAA+0H,aACAxpB,EAAAt5F,QAAAsH,EAAA,EAAAokE,6BAAgF8e,OAAA8N,gBAOhFmwB,EAAAx6H,UAAAihH,aAAA,SAAArwG,GACA,IAAA2rF,EAAA3rF,EAAA2rF,KACA,YAAAA,EAAAj5F,MAAAoG,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAAkG,IAAA,CASA,GAPA3iG,KAAA+0H,aAEA/0H,KAAA66H,oBAAAp+B,EAAAp5E,MAEArjB,KAAA86H,gBAAA,EAGA96H,KAAAurG,IAAAvrD,OAAAs8E,sBAAA,CACA,IAAAj5G,EAAArjB,KAAAurG,IAAA0J,OAAAxY,EAAAp5E,OACAk5G,GAAAl5G,EAAA46F,OAAA56F,EAAA46F,OAAAhgB,MAAA,GAAAntF,EAAAy5F,MAAA0T,OACAue,GAAAn5G,EAAA46F,OAAA56F,EAAA46F,OAAAjxB,SAAA,GAAAl8E,EAAA2rF,KAAAzP,SACA3pE,EAAA46F,QAAwBhgB,MAAAs+B,EAAAvvC,SAAAwvC,GACxBn5G,EAAA24G,YAAAj0H,KAAAqC,MAAA,EAAAmyH,EAAAC,GAGA,GAAA1rH,EAAA2rF,KAAA2kB,YAAA,CACA,IAAA7W,EAAAz5F,EAAAy5F,MACAA,EAAAyS,QAAAzS,EAAAynB,UAAAznB,EAAA6R,MACAp8G,KAAAuhH,eAAAzwG,MAKA4pH,EAAAx6H,UAAAqhH,eAAA,SAAAzwG,GACA,IAAAy5F,EAAAz5F,EAAAy5F,MACA9N,EAAA3rF,EAAA2rF,KAKA,QAAA8N,EAAAoxB,SAAA,SAAAl/B,EAAAj5F,MAAAoG,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAAkG,OAAAlG,EAAA2kB,aAAA7W,EAAA6R,QAAA7R,EAAAynB,WAAA,CAIA,IAAAyK,EAAAlyB,EAAAyS,QAAAzS,EAAAssB,SACAp8C,EAAA,EAAAj7E,IAAA,uCAAAuI,KAAAqC,MAAAmgG,EAAA8oB,OAAA9oB,EAAAssB,UAAA,IAAA9uH,KAAAqC,MAAAmgG,EAAA6R,MAAA7R,EAAA8oB,QAAA,IAAAtrH,KAAAqC,MAAAmgG,EAAAyS,QAAAzS,EAAA6R,OAAA,IAAAr0G,KAAAqC,MAAAmgG,EAAAynB,UAAAznB,EAAAyS,SAAA,IAAAj1G,KAAAqC,MAAA,EAAAmgG,EAAA0T,QAAA1T,EAAAynB,UAAAznB,EAAAssB,YACA72H,KAAA+6H,aAAAxoC,OAAAkqC,EAAAlyB,EAAA0T,QACA1T,EAAAmyB,WAAA18H,KAAA+6H,aAAAzB,cAEA78B,EAAA2kB,YACAphH,KAAA28H,iBAAAF,EAAA,IAEAz8H,KAAA28H,iBAAA,IAKAjC,EAAAx6H,UAAA07G,QAAA,SAAA9qG,GAEA,OAAAA,EAAAq7E,SACA,KAAAlB,EAAA,EAAAjL,gBACA,KAAAiL,EAAA,EAAAhL,kBACAjgF,KAAA+0H,eAOA2F,EAAAx6H,UAAA60H,WAAA,WACAxM,cAAAvoH,KAAAkM,OACAlM,KAAAkM,MAAA,MAMAwuH,EAAAx6H,UAAA08H,eAAA,SAAA7K,EAAA8K,EAAAC,EAAApB,EAAAqB,EAAAC,EAAAC,EAAAC,EAAAjoB,GACA,QAAAl0G,EAAAg8H,EAA8Bh8H,GAAA26H,EAAmB36H,IAAA,CACjD,IAAAmsH,EAAAjY,EAAAl0G,GAEA,GAAAmsH,EAAA,CAIA,IAAApQ,EAAAoQ,EAAA/gC,QACAgxC,EAAArgB,IAAAzN,cAAAyN,EAAAhO,UAAA7tG,OAAA47H,EACA9tB,IAAA+N,KAAA/N,KACAquB,OAAA,EAQAA,EADAr8H,GAAAgxH,EACAkL,EAAAH,EAEAI,EAAAJ,EAGA,IAAApnB,EAAAT,EAAAl0G,GAAAi7H,YAAAj0H,KAAAE,IAAAgtG,EAAAl0G,GAAAi7H,YAAA/mB,EAAAl0G,GAAA20G,SAAAT,EAAAl0G,GAAA20G,QACA2nB,EAAA3nB,EAAAynB,EAAAC,EAIA,GAFA3iD,EAAA,EAAAG,MAAA,wEAAA75E,EAAA,IAAAgH,KAAAqC,MAAAgzH,GAAA,IAAA1nB,EAAA,IAAAynB,EAAA,IAAAH,EAAA,IAAAK,GAEAD,EAAA1nB,KAIA2nB,GAAAtuB,IAAA/uG,KAAA28H,kBAAAU,EAAAL,GAEA,OAAAj8H,GAIA,UAGAw5H,GAAAG,IACA3wH,IAAA,gBACA/F,IAAA,WACA,IAAAs5H,EAAAt9H,KAAA86H,eACAyC,EAAAv9H,KAAA+6H,aAEA,UAAAuC,GAAAC,KAAAjD,eACA,OAAAgD,EAIA,IAAAE,EAAAx9H,KAAAy9H,kBAMA,OAJA,IAAAH,IACAE,EAAAz1H,KAAAC,IAAAs1H,EAAAE,IAGAA,GAEAx4E,IAAA,SAAAqrE,GACArwH,KAAA86H,eAAAzK,KAGAtmH,IAAA,oBACA/F,IAAA,WACA,IAAAunG,EAAAvrG,KAAAurG,IACAwxB,EAAAxxB,EAAAwxB,aACA9nB,EAAA1J,EAAA0J,OACAj1D,EAAAurD,EAAAvrD,OACA07E,EAAAnwB,EAAAmwB,aACAruC,EAAAke,EAAAyK,MACA+b,EAAA/xH,KAAA66H,oBACAgC,EAAA78H,KAAA0sH,YAAA1sH,KAAA0sH,YAAA1/B,SAAA,EACAt7D,EAAA27D,IAAAw8B,YAAA,EAIA+R,EAAAvuC,GAAA,IAAAA,EAAAuuC,aAAA7zH,KAAAY,IAAA0kF,EAAAuuC,cAAA,EACA8B,EAAA19H,KAAA+6H,aAAA/6H,KAAA+6H,aAAAzB,cAAAt5E,EAAAy7E,uBAGAU,GAAAja,EAAAG,WAAAh1B,EAAA37D,EAAAsuB,EAAA2nD,eAAAz2E,IAAAQ,GAAAkqG,EAGA+B,EAAA39H,KAAA48H,eAAA7K,EAAA8K,EAAAa,EAAAhC,EAAAqB,EAAAZ,EAAAn8E,EAAA49E,mBAAA59E,EAAA69E,qBAAA5oB,GACA,GAAA0oB,GAAA,EACA,OAAAA,EAEAljD,EAAA,EAAAG,MAAA,+FAGA,IAAAkjD,EAAAjB,EAAA90H,KAAAC,IAAA60H,EAAA78E,EAAA89E,oBAAA99E,EAAA89E,mBACAb,EAAAj9E,EAAA49E,mBACAV,EAAAl9E,EAAA69E,qBACA,OAAA1B,EAAA,CAEA,IAAAQ,EAAA38H,KAAA28H,iBACA,GAAAA,EAOAmB,GADAjB,EAAA90H,KAAAC,IAAA60H,EAAA78E,EAAA+9E,iBAAA/9E,EAAA+9E,iBACApB,EACAliD,EAAA,EAAAG,MAAA,qBAAA7yE,KAAAqC,MAAA,IAAAuyH,GAAA,+CAAA50H,KAAAqC,MAAA,IAAA0zH,GAAA,OAEAb,EAAAC,EAAA,EAIA,OADAS,EAAA39H,KAAA48H,eAAA7K,EAAA8K,EAAAa,EAAAhC,EAAAqB,EAAAZ,EAAA2B,EAAAb,EAAAC,EAAAjoB,GACAltG,KAAAE,IAAA01H,EAAA,OAKAjD,EAlUA,CAmUCrvB,GAsBD,IAAA2yB,GAAA1a,IA8lBA2a,GA5lBA,SAAArlB,GAGA,SAAAslB,EAAA3yB,IArBA,SAAAhsD,EAAAqjC,GAAmE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAsB7Gm6E,CAAAn+H,KAAAk+H,GAIA,IAAArhH,EAxBA,SAAA1Q,EAAAT,GAAmE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAwBzK0yH,CAAAp+H,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAkiE,gBAAAliE,EAAA,EAAAoiE,gBAAApiE,EAAA,EAAAgjE,gBAAAhjE,EAAA,EAAAsiE,aAAAtiE,EAAA,EAAAyiE,iBAAAziE,EAAA,EAAAuiE,cAAAviE,EAAA,EAAA2iE,WAAA3iE,EAAA,EAAA4iE,gBAAA5iE,EAAA,EAAAsjE,kBAAAtjE,EAAA,EAAAqjE,gBAeA,OAbA//D,EAAAwhH,YAAA,KAEAxhH,EAAAyhH,eAAA,KAEAzhH,EAAA0hH,MAAA,KAEA1hH,EAAA2hH,WAAA,KAGA3hH,EAAA4hH,OAAA5hH,EAAA6hH,cAAAl0H,KAAAqS,GACAA,EAAA8hH,MAAA9hH,EAAA+hH,gBAAAp0H,KAAAqS,GACAA,EAAAgiH,iBACAhiH,EAAAswE,UACAtwE,EAkkBA,OAvmBA,SAAAq8F,EAAAC,GAA4D,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAevY2lB,CAAAZ,EAAAtlB,GAyBAslB,EAAAh+H,UAAAi/C,QAAA,WACAksD,EAAAnrG,UAAAi/C,QAAAzzC,KAAA1L,OAGAk+H,EAAAh+H,UAAA6+H,kBAAA,SAAAjuH,GACA,IAAAtN,EAAAsN,EAAAtN,KACA42F,EAAAp6F,KAAAmtF,OAAAC,MASA,aAAA5pF,GAAA42F,GAAA,eAAAA,EAAA7M,UAAA,CAEA,IAAAyxC,EAAAh/H,KAAAi/H,aAAA7xC,MAIA,GAHArlF,KAAAY,IAAAq2H,EAAAE,gBAAApuH,EAAAtO,OAGA,IACA,IAAA28H,EAAAH,EAAAG,SAEA,IACAH,EAAAtkB,QACS,MAAAj1B,GACT05C,GAAA,EACA1kD,EAAA,EAAA/kE,KAAA,+BAAA+vE,GAGA05C,EAIAn/H,KAAAo/H,qBAAAtuH,EAAAtO,OAHAi4E,EAAA,EAAA/kE,KAAA,2CAAAspH,EAAAE,gBAAA,OAAApuH,EAAAtO,OACAw8H,EAAAE,gBAAApuH,EAAAtO,UAQA07H,EAAAh+H,UAAAoxH,iBAAA,SAAAxgH,GACA,IAAAuuH,EAAAvuH,EAAAs8E,MACAkyC,EAAAxuH,EAAAu8E,OAAAv8E,EAAAmkG,OAAAh0G,QAAA6P,EAAA28G,SACA8R,EAAA,EAKAzuH,EAAA28G,WAAA4R,GAAAC,KACAC,GAAAF,EAAA,MAAAC,EAAA,KACA7kD,EAAA,EAAAj7E,IAAA+/H,EAAA,8BAEAv/H,KAAAu/H,kBAGArB,EAAAh+H,UAAAs/H,iBAAA,SAAA1uH,GACA,IAAAklG,EAAAh2G,KAAAg2G,MAAAllG,EAAAklG,MACA,GAAAA,EAAA,CAEA,IAAAypB,EAAAz/H,KAAA0/H,YAAA,IAAA1B,GAEAh+H,KAAA2/H,MAAA3/H,KAAA4/H,kBAAAp1H,KAAAxK,MACAA,KAAA6/H,MAAA7/H,KAAA8/H,mBAAAt1H,KAAAxK,MACAA,KAAA+/H,MAAA//H,KAAAggI,mBAAAx1H,KAAAxK,MACAy/H,EAAA7gH,iBAAA,aAAA5e,KAAA2/H,OACAF,EAAA7gH,iBAAA,cAAA5e,KAAA6/H,OACAJ,EAAA7gH,iBAAA,cAAA5e,KAAA+/H,OAEA/pB,EAAAjmG,IAAAJ,OAAA00G,IAAA4b,gBAAAR,GAEAz/H,KAAAw+H,WAAAxoB,EAAAjmG,MAIAmuH,EAAAh+H,UAAAgxH,iBAAA,WACAz2C,EAAA,EAAAj7E,IAAA,0BACA,IAAAigI,EAAAz/H,KAAA0/H,YACA,GAAAD,EAAA,CACA,YAAAA,EAAAvV,WACA,IAKAuV,EAAAS,cACS,MAAAz6C,GACThL,EAAA,EAAA/kE,KAAA,oBAAA+vE,EAAA3lB,QAAA,8BAGA2/D,EAAA3gH,oBAAA,aAAA9e,KAAA2/H,OACAF,EAAA3gH,oBAAA,cAAA9e,KAAA6/H,OACAJ,EAAA3gH,oBAAA,cAAA9e,KAAA+/H,OAIA//H,KAAAg2G,QACArmG,OAAA00G,IAAAC,gBAAAtkH,KAAAw+H,YAIAx+H,KAAAg2G,MAAAjmG,MAAA/P,KAAAw+H,YACAx+H,KAAAg2G,MAAA52D,gBAAA,OACAp/C,KAAAg2G,MAAAqE,QAEA5/B,EAAA,EAAA/kE,KAAA,0DAIA1V,KAAA0/H,YAAA,KACA1/H,KAAAg2G,MAAA,KACAh2G,KAAAw+H,WAAA,KACAx+H,KAAA6+H,iBACA7+H,KAAAmtF,UACAntF,KAAAi/H,gBACAj/H,KAAAmgI,cACAngI,KAAAogI,YACApgI,KAAAkyH,SAAA,EAEAlyH,KAAA2/H,MAAA3/H,KAAA6/H,MAAA7/H,KAAA+/H,MAAA,KACA//H,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAqiE,iBAGAsiD,EAAAh+H,UAAA0/H,kBAAA,WACAnlD,EAAA,EAAAj7E,IAAA,uBACAQ,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAmiE,gBAAgEs6B,MAAAh2G,KAAAg2G,QAChE,IAAA0pB,EAAA1/H,KAAA0/H,YACAA,GAEAA,EAAA5gH,oBAAA,aAAA9e,KAAA2/H,OAEA3/H,KAAAqgI,sBAGAnC,EAAAh+H,UAAAmgI,mBAAA,WAEA,IAAAxB,EAAA7+H,KAAA6+H,cACAyB,EAAA12H,OAAAC,KAAAg1H,GAAA59H,OAEAq/H,IAAAtgI,KAAAu/H,gBAAAe,GAAA,IAAAtgI,KAAAu/H,kBAEAv/H,KAAAugI,oBAAA1B,GACA7+H,KAAA6+H,iBAEA7+H,KAAAwgI,gBAIAtC,EAAAh+H,UAAA8/H,mBAAA,WACAvlD,EAAA,EAAAj7E,IAAA,wBAGA0+H,EAAAh+H,UAAA4/H,mBAAA,WACArlD,EAAA,EAAAj7E,IAAA,uBAGA0+H,EAAAh+H,UAAAw+H,cAAA,WAEA,GAAA1+H,KAAAo/H,qBAAA,CACA,IAAAJ,EAAAh/H,KAAAi/H,aAAA7xC,MACA3S,EAAA,EAAA/kE,KAAA,2CAAAspH,EAAAE,gBAAA,OAAAl/H,KAAAo/H,sBACAJ,EAAAE,gBAAAl/H,KAAAo/H,4BACAp/H,KAAAo/H,qBAGAp/H,KAAAygI,aACAzgI,KAAA0gI,UAGA1gI,KAAA2gI,WACA3gI,KAAA4gI,WAGA5gI,KAAA6gI,WAAA,EACA,IAAAt3F,EAAAvpC,KAAAupC,OAEA4pF,EAAAnzH,KAAAogI,SAAA36G,OAAA,SAAAq7G,EAAAC,GACA,OAAAA,EAAAx3F,WAAAu3F,EAAA,EAAAA,GACK,GAGLthB,KACAyf,EAAAj/H,KAAAi/H,aACA,QAAAp1B,KAAAo1B,EACAzf,EAAA3V,GAAAo1B,EAAAp1B,GAAAgW,SAGA7/G,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA0iE,iBAAiE1yC,SAAA4pF,UAAA3T,eAEjEx/G,KAAAygI,aACAzgI,KAAAwgI,cAGAxgI,KAAAghI,8BAGA9C,EAAAh+H,UAAA0+H,gBAAA,SAAArnE,GACAkjB,EAAA,EAAAM,MAAA,sBAAAxjB,GAIAv3D,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OAAuD/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAAxK,uBAAA2L,OAAA,KAIvD8xC,EAAAh+H,UAAA+gI,cAAA,WACA,IAAAhC,EAAAj/H,KAAAi/H,aACA,QAAAz7H,KAAAy7H,EAAA,CACA,IAAAiC,EAAAjC,EAAAz7H,GACA,IACAxD,KAAA0/H,YAAAyB,mBAAAD,GACAA,EAAApiH,oBAAA,YAAA9e,KAAAy+H,QACAyC,EAAApiH,oBAAA,QAAA9e,KAAA2+H,OACO,MAAAl5C,KAEPzlF,KAAAi/H,gBACAj/H,KAAAmgI,cACAngI,KAAAogI,YACApgI,KAAAkyH,SAAA,GAGAgM,EAAAh+H,UAAAkhI,eAAA,SAAAj0C,GAGA,OAAAvjF,OAAAC,KAAA7J,KAAAi/H,cAAAh+H,OAAA,CACA,QAAAsxH,KAAAplC,EACAntF,KAAA6+H,cAAAtM,GAAAplC,EAAAolC,GACO,IAAAmN,EAAA1/H,KAAA0/H,YACPA,GAAA,SAAAA,EAAAxV,YAEAlqH,KAAAqgI,uBAKAnC,EAAAh+H,UAAAqgI,oBAAA,SAAApzC,GACA,IAAA8xC,EAAAj/H,KAAAi/H,aACAS,EAAA1/H,KAAA0/H,YAEA,QAAAnN,KAAAplC,EACA,IAAA8xC,EAAA1M,GAAA,CACA,IAAAthC,EAAA9D,EAAAolC,GAEA/kC,EAAAyD,EAAAwhC,YAAAxhC,EAAAzD,MACA6zC,EAAApwC,EAAA1D,UAAA,WAA2CC,EAC3C/S,EAAA,EAAAj7E,IAAA,yBAAA6hI,EAAA,KACA,IACA,IAAAH,EAAAjC,EAAA1M,GAAAmN,EAAA4B,gBAAAD,GACAH,EAAAtiH,iBAAA,YAAA5e,KAAAy+H,QACAyC,EAAAtiH,iBAAA,QAAA5e,KAAA2+H,OACA3+H,KAAAmtF,OAAAolC,IAAoC/kC,QAAAD,UAAA0D,EAAA1D,WACpC0D,EAAAvM,OAAAw8C,EACS,MAAAz7C,GACThL,EAAA,EAAAM,MAAA,0CAAA0K,EAAA3lB,SACA9/D,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OAA6D/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAA1K,uBAAA6L,OAAA,EAAA3G,MAAA47C,cAI7DrhI,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAwiE,gBAAgEoR,YAGhE+wC,EAAAh+H,UAAAqhI,kBAAA,SAAAzwH,GACA9Q,KAAAygI,cACAzgI,KAAAogI,SAGApgI,KAAAogI,SAAA7+H,KAAAuP,GAFA9Q,KAAAogI,UAAAtvH,GAKA9Q,KAAAwgI,gBAIAtC,EAAAh+H,UAAAshI,mBAAA,SAAA1wH,GACA2pE,EAAA,EAAAM,MAAA,sBAAAjqE,EAAAymD,OAIAv3D,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OAAuD/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAAlB,EAAA,EAAAxK,uBAAA2L,OAAA,KAMvD8xC,EAAAh+H,UAAAuhI,YAAA,SAAA3wH,GACA,IAAAowH,EAAAlhI,KAAAi/H,aACA58G,EAAAvR,EAAAtN,KACA,QAAAA,KAAA09H,EACA7+G,GAAA7e,IAAA6e,GACA6+G,EAAA19H,GAAAymH,QACAiX,EAAA19H,GAAAymH,OAAA,EACAxvC,EAAA,EAAAj7E,IAAAgE,EAAA,0BAIAxD,KAAA4gI,YAMA1C,EAAAh+H,UAAA0gI,SAAA,WACA,IAAAM,EAAAlhI,KAAAi/H,aACAS,EAAA1/H,KAAA0/H,YACA,GAAAA,GAAA,SAAAA,EAAAxV,WAAA,CAIA,QAAA1mH,KAAA09H,EAAA,CACA,IAAAQ,EAAAR,EAAA19H,GACA,IAAAk+H,EAAAzX,MACA,OAGA,GAAAyX,EAAAvC,SAEA,YADAn/H,KAAA2gI,WAAA,GAIAlmD,EAAA,EAAAj7E,IAAA,2FAEA,IACAkgI,EAAAQ,cACK,MAAA/7H,GACLs2E,EAAA,EAAA/kE,KAAA,qDAEA1V,KAAA2gI,WAAA,OArBA3gI,KAAA2gI,WAAA,GAwBAzC,EAAAh+H,UAAAyhI,iBAAA,SAAA7wH,GACA9Q,KAAAmgI,WAAA5+H,MAA0BiB,MAAAsO,EAAAy/G,YAAAr/F,IAAApgB,EAAA0/G,UAAAhtH,KAAAsN,EAAAtN,OAE1BxD,KAAA4hI,mBAAA,EACA5hI,KAAA0gI,WAGAxC,EAAAh+H,UAAA2hI,eAAA,SAAA3zH,GACA,IAAAi+E,EAAAj+E,EAAAi+E,QAEAA,EAAA2iB,UAAA7tG,OAAA,IACAjB,KAAAs+H,eAAAnyC,EAAAkjB,cAAAljB,EAAA2iB,UAAA,GAAAtsG,MACAxC,KAAAu+H,MAAApyC,EAAA4iB,KACA/uG,KAAAghI,+BAWA9C,EAAAh+H,UAAA8gI,2BAAA,WACA,IAEAh0C,EAFAhtC,EAAAhgD,KAAAurG,IAAAvrD,OAIA,UAAAhgD,KAAAs+H,gBAAAt+H,KAAAg2G,OAAAh2G,KAAA0/H,aAAA1/H,KAAAi/H,cAAA,IAAAj/H,KAAAg2G,MAAAkU,YAAA,SAAAlqH,KAAA0/H,YAAAxV,WAAA,CAIA,QAAA1mH,KAAAxD,KAAAi/H,aACA,QAAAj/H,KAAAi/H,aAAAz7H,GAAA27H,SAEA,OAIAnyC,EAAAhtF,KAAAg2G,MAAAhpB,SAEA,OAAAhtF,KAAAq+H,cACAr+H,KAAAq+H,YAAAr+H,KAAA0/H,YAAA1yC,WAGA,IAAAhtF,KAAAu+H,QAAA,IAAAv+E,EAAA8hF,sBAEArnD,EAAA,EAAAj7E,IAAA,4CACAQ,KAAAq+H,YAAAr+H,KAAA0/H,YAAA1yC,SAAAvzC,MACKz5C,KAAAs+H,eAAAt+H,KAAAq+H,aAAAr+H,KAAAs+H,eAAAtxC,IAAApjF,OAAA6mF,EAAA,EAAA7mF,CAAAojF,MAKLvS,EAAA,EAAAj7E,IAAA,qCAAAQ,KAAAs+H,eAAAh3H,QAAA,IACAtH,KAAAq+H,YAAAr+H,KAAA0/H,YAAA1yC,SAAAhtF,KAAAs+H,kBAIAJ,EAAAh+H,UAAAwgI,QAAA,WAEA,KAAA1gI,KAAAmgI,WAAAl/H,QAAA,CACA,IAAAm/G,EAAApgH,KAAAmgI,WAAA,GAEA,IAAAngI,KAAA+hI,YAAA3hB,EAAA59G,MAAA49G,EAAAlvF,IAAAkvF,EAAA58G,MAOA,YAFAxD,KAAAygI,aAAA,GAHAzgI,KAAAmgI,WAAA3yF,QACAxtC,KAAA4hI,mBAAA,EAOA,OAAA5hI,KAAAmgI,WAAAl/H,OAAA,CAEAjB,KAAAygI,aAAA,EAGA,IAAAvO,EAAA,EACA+M,EAAAj/H,KAAAi/H,aACA,IACA,QAAAz7H,KAAAy7H,EACA/M,GAAA+M,EAAAz7H,GAAAq8G,SAAA5+G,OAEO,MAAA85E,GAGPN,EAAA,EAAAM,MAAA,+CAEA/6E,KAAAkyH,WACAlyH,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA6iE,kBAIA8hD,EAAAh+H,UAAAsgI,YAAA,WACA,IAAAj1B,EAAAvrG,KAAAurG,IACA0zB,EAAAj/H,KAAAi/H,aACAmB,EAAApgI,KAAAogI,SACA,GAAAx2H,OAAAC,KAAAo1H,GAAAh+H,OAAA,CACA,GAAAjB,KAAAg2G,MAAAj7B,MAGA,OAFA/6E,KAAAogI,iBACA3lD,EAAA,EAAAM,MAAA,4EAGA,GAAA/6E,KAAA6gI,UAEA,OAEA,GAAAT,KAAAn/H,OAAA,CACA,IAAA8/H,EAAAX,EAAA5yF,QACA,IACA,IACA0zF,EAAAjC,EADA8B,EAAAv9H,MAEA09H,EACAA,EAAA/B,SAUAiB,EAAAz9F,QAAAo+F,IARAG,EAAAjX,OAAA,EAEAjqH,KAAAupC,OAAAw3F,EAAAx3F,OACA23F,EAAAc,aAAAjB,EAAAjwH,MACA9Q,KAAAiiI,YAAA,EACAjiI,KAAAkyH,WACAlyH,KAAA6gI,WAAA,GAQA7gI,KAAA0+H,gBAES,MAAAj5C,GAEThL,EAAA,EAAAM,MAAA,uCAAA0K,EAAA3lB,SACAsgE,EAAAz9F,QAAAo+F,GACA,IAAAxpE,GAAuB/zD,KAAAynF,EAAA,EAAAlM,YAAAx1C,OAAAw3F,EAAAx3F,QACvB,KAAAk8C,EAAAy8C,MACAliI,KAAAiiI,YACAjiI,KAAAiiI,cAEAjiI,KAAAiiI,YAAA,EAGA1qE,EAAA40B,QAAAlB,EAAA,EAAAzK,oBAIAxgF,KAAAiiI,YAAA12B,EAAAvrD,OAAAmiF,qBACA1nD,EAAA,EAAAj7E,IAAA,QAAA+rG,EAAAvrD,OAAAmiF,oBAAA,4CACA/B,KACA7oE,EAAA60B,OAAA,EACAmf,EAAAt5F,QAAAsH,EAAA,EAAAglE,MAAAhnB,KAEAA,EAAA60B,OAAA,EACAmf,EAAAt5F,QAAAsH,EAAA,EAAAglE,MAAAhnB,MAKAv3D,KAAAogI,YACA7oE,EAAA40B,QAAAlB,EAAA,EAAAtK,kBACAppB,EAAA60B,OAAA,EACAmf,EAAAt5F,QAAAsH,EAAA,EAAAglE,MAAAhnB,QAcA2mE,EAAAh+H,UAAA6hI,YAAA,SAAAxR,EAAAC,EAAA4R,GACA,IAAAlB,OAAA,EACAngI,OAAA,EACAshI,OAAA,EACAC,OAAA,EACAC,OAAA,EACAC,OAAA,EACAvD,EAAAj/H,KAAAi/H,aACA,GAAAr1H,OAAAC,KAAAo1H,GAAAh+H,OAAA,CAGA,GAFAw5E,EAAA,EAAAj7E,IAAA,8BAAAQ,KAAAg2G,MAAA6T,YAAAviH,QAAA,OAAAipH,EAAA,IAAAC,GAEAxwH,KAAA4hI,mBAAA5hI,KAAAkyH,UACA,QAAA1uH,KAAAy7H,EAGA,IAAAmD,GAAA5+H,IAAA4+H,EAAA,CAOA,IAHAlB,EAAAjC,EAAAz7H,IAEAymH,OAAA,EACAiX,EAAA/B,SAiCA,OADA1kD,EAAA,EAAA/kE,KAAA,0CACA,EAhCA,IACA,IAAA3U,EAAA,EAAyBA,EAAAmgI,EAAArhB,SAAA5+G,OAAwBF,IAgBjD,GAfAshI,EAAAnB,EAAArhB,SAAAr9G,MAAAzB,GACAuhI,EAAApB,EAAArhB,SAAA3uF,IAAAnwB,IAEA,IAAA89C,UAAAC,UAAAxmC,cAAAxY,QAAA,YAAA0wH,IAAAz1G,OAAA+0G,mBACAyS,EAAAhS,EACAiS,EAAAhS,IAEA+R,EAAAx6H,KAAAE,IAAAo6H,EAAA9R,GACAiS,EAAAz6H,KAAAC,IAAAs6H,EAAA9R,IAOAzoH,KAAAC,IAAAw6H,EAAAF,GAAAC,EAAA,GAIA,OAHAviI,KAAA4hI,qBACAnnD,EAAA,EAAAj7E,IAAA,SAAAgE,EAAA,KAAA++H,EAAA,IAAAC,EAAA,UAAAH,EAAA,IAAAC,EAAA,UAAAtiI,KAAAg2G,MAAA6T,aACAqX,EAAAz8H,OAAA89H,EAAAC,IACA,EAGa,MAAAr+H,GACbs2E,EAAA,EAAA/kE,KAAA,8FAWA+kE,EAAA,EAAA/kE,KAAA,mCAEA+kE,EAAA,EAAAj7E,IAAA,kBAGA,UAGA0+H,EAzlBA,CA0lBC7yB,GAIDo3B,GAAA,WAAqD,SAAAp9E,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAA7iB,GAeA,IAmMA8/C,GAnMA,SAAA9pB,GAGA,SAAA+pB,EAAAp3B,IAhBA,SAAAhsD,EAAAqjC,GAAsE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAiBhH4+E,CAAA5iI,KAAA2iI,GAEA,IAAA9lH,EAjBA,SAAA1Q,EAAAT,GAAsE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAiB5Km3H,CAAA7iI,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAA+kE,uBAAA/kE,EAAA,EAAAkiE,gBAAAliE,EAAA,EAAAgjE,gBAAAhjE,EAAA,EAAAuiE,cAAAviE,EAAA,EAAAoiE,kBAQA,OANA9+D,EAAAimH,iBAAA/nH,OAAA+0G,kBACAjzG,EAAAk5G,WAAA,KACAl5G,EAAAo4F,UACAp4F,EAAAm5F,MAAA,KACAn5F,EAAAkmH,oBACAlmH,EAAA3Q,MAAA,KACA2Q,EAkLA,OAzMA,SAAAq8F,EAAAC,GAA+D,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAU1Y6pB,CAAAL,EAAA/pB,GAgBA+pB,EAAAziI,UAAAi/C,QAAA,WACAn/C,KAAAurG,IAAAvrD,OAAAijF,uBACAjjI,KAAAg2G,MAAA,KACAh2G,KAAAkjI,iBAIAP,EAAAziI,UAAAijI,sBAAA,SAAAryH,GAEA6xH,EAAAS,eAAAtyH,EAAAuyH,aAAArjI,KAAA+iI,mBACA/iI,KAAA+iI,iBAAAxhI,KAAAuP,EAAAuyH,eAIAV,EAAAziI,UAAAs/H,iBAAA,SAAA1uH,GACA9Q,KAAAg2G,MAAAllG,EAAAklG,iBAAArmG,OAAA2zH,iBAAAxyH,EAAAklG,MAAA,MAGA2sB,EAAAziI,UAAAoxH,iBAAA,SAAAxgH,GACA,IAAAy6F,EAAAvrG,KAAAurG,IACAvrG,KAAA+iI,oBACA/iI,KAAAi1G,OAAAnkG,EAAAmkG,OACAj1G,KAAA+1H,WAAAjlH,EAAAilH,WACAxqB,EAAAvrD,OAAAijF,uBAAAnyH,EAAAu8E,OAAAv8E,EAAAmkG,OAAAh0G,QAAA6P,EAAA28G,WAEAztH,KAAAujI,iBAQAZ,EAAAziI,UAAAkhI,eAAA,SAAAtwH,GACA9Q,KAAAurG,IACAvrD,OAAAijF,sBAAAnyH,EAAAu8E,OAEArtF,KAAAujI,iBAIAZ,EAAAziI,UAAAsjI,gBAAA,SAAA1yH,GACA9Q,KAAAi1G,OAAAnkG,EAAAmkG,QAGA0tB,EAAAziI,UAAAgxH,iBAAA,WACAlxH,KAAAkjI,gBAGAP,EAAAziI,UAAAujI,iBAAA,WACA,GAAAzjI,KAAAg2G,MAAA,CACA,IAAA0tB,EAAA1jI,KAAAi1G,OAAAj1G,KAAAi1G,OAAAh0G,OAAA,EACA,GAAAyiI,EAAA,CACA,IAAAn4B,EAAAvrG,KAAAurG,IACAA,EAAAu3B,iBAAA9iI,KAAA2jI,YAAAD,EAAA,GACAn4B,EAAAu3B,iBAAA9iI,KAAA8iI,kBAGAv3B,EAAAq4B,iBAAA3T,kBAEAjwH,KAAA8iI,iBAAAv3B,EAAAu3B,oBAUAH,EAAAziI,UAAAyjI,YAAA,SAAAE,GACA,IAAA3lH,EAAAle,KAEA,IAAAA,KAAAi1G,OACA,SAGA,IAAA6uB,EAAA9jI,KAAAi1G,OAAA7tF,OAAA,SAAA/D,EAAAzW,GACA,OAAA+1H,EAAAS,eAAAx2H,EAAAsR,EAAA6kH,mBAAAn2H,GAAAi3H,IAGA,OAAAlB,EAAAoB,uBAAAD,EAAA9jI,KAAAgkI,WAAAhkI,KAAAikI,cAGAtB,EAAAziI,UAAAqjI,cAAA,WACAvjI,KAAAkM,QAIAlM,KAAA8iI,iBAAA/nH,OAAA+0G,kBACA9vH,KAAAurG,IAAAwqB,WAAA/1H,KAAA2jI,YAAA3jI,KAAA+1H,YACAxN,cAAAvoH,KAAAkM,OACAlM,KAAAkM,MAAAw8G,YAAA1oH,KAAAyjI,iBAAAj5H,KAAAxK,MAAA,KACAA,KAAAyjI,qBAGAd,EAAAziI,UAAAgjI,aAAA,WACAljI,KAAA+iI,oBACA/iI,KAAA+1H,WAAA,KACA/1H,KAAA8iI,iBAAA/nH,OAAA+0G,kBACA9vH,KAAAkM,QACAlM,KAAAkM,MAAAq8G,cAAAvoH,KAAAkM,OACAlM,KAAAkM,MAAA,OAIAy2H,EAAAS,eAAA,SAAA//G,GAGA,YAFAve,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,OAEAhF,QAAAujB,IAGAs/G,EAAAoB,uBAAA,SAAA9uB,EAAAj8F,EAAAC,GACA,IAAAg8F,SAAAh0G,OACA,SAiBA,IAZA,IAAA2wH,EAAAvB,EAUA6T,EAAAjvB,EAAAh0G,OAAA,EAEAF,EAAA,EAAmBA,EAAAk0G,EAAAh0G,OAAmBF,GAAA,GACtC,IAAAsiB,EAAA4xF,EAAAl0G,GACA,IAAAsiB,EAAArK,UAAAqK,EAAApK,aAdA24G,EAcAvuG,IAdAgtG,EAcApb,EAAAl0G,EAAA,KATA6wH,EAAA54G,QAAAq3G,EAAAr3G,OAAA44G,EAAA34G,SAAAo3G,EAAAp3G,QASA,CACAirH,EAAAnjI,EACA,OAIA,OAAAmjI,GAGAzB,GAAAE,IACA54H,IAAA,aACA/F,IAAA,WACA,IAAAgV,OAAA,EACAg9F,EAAAh2G,KAAAg2G,MAKA,OAJAA,IACAh9F,EAAAg9F,EAAAh9F,OAAAg9F,EAAAr5F,aAAAq5F,EAAAlhE,YACA97B,GAAA2pH,EAAAwB,oBAEAnrH,KAGAjP,IAAA,cACA/F,IAAA,WACA,IAAAiV,OAAA,EACA+8F,EAAAh2G,KAAAg2G,MAKA,OAJAA,IACA/8F,EAAA+8F,EAAA/8F,QAAA+8F,EAAAp5F,cAAAo5F,EAAA74D,aACAlkC,GAAA0pH,EAAAwB,oBAEAlrH,OAGAlP,IAAA,qBACA/F,IAAA,WACA,IAAAmuD,EAAA,EACA,IACAA,EAAAxiD,OAAA2+C,iBACO,MAAAnqD,IACP,OAAAguD,MAIAwwE,EAhMA,CAiMCt3B,GAkBD,IACA+4B,GADAz0H,OACAm6F,YA6EAu6B,GA3EA,SAAAzrB,GAGA,SAAA0rB,EAAA/4B,GAGA,OAvBA,SAAAhsD,EAAAqjC,GAAgE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAqB1GugF,CAAAvkI,KAAAskI,GAnBA,SAAAn4H,EAAAT,GAAgE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAqBtK84H,CAAAxkI,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAkiE,kBAkEA,OArFA,SAAAy9B,EAAAC,GAAyD,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAcpYsrB,CAAAH,EAAA1rB,GAQA0rB,EAAApkI,UAAAi/C,QAAA,WACAn/C,KAAAkM,OACAq8G,cAAAvoH,KAAAkM,OAGAlM,KAAA0kI,iCAAA,GAGAJ,EAAApkI,UAAAs/H,iBAAA,SAAA1uH,GACA,IAAAkvC,EAAAhgD,KAAAurG,IAAAvrD,OACAA,EAAA2kF,oBAEA,mBADA3kI,KAAAqtF,MAAAv8E,EAAAklG,iBAAArmG,OAAA2zH,iBAAAxyH,EAAAklG,MAAA,MACA4uB,0BACA5kI,KAAA0kI,iCAAA,GAGAnc,cAAAvoH,KAAAkM,OACAlM,KAAAkM,MAAAw8G,YAAA1oH,KAAA6kI,iBAAAr6H,KAAAxK,MAAAggD,EAAA8kF,8BAIAR,EAAApkI,UAAA6kI,SAAA,SAAA13C,EAAA23C,EAAAC,GACA,IAAApb,EAAAua,GAAA10H,MACA,GAAAs1H,EAAA,CACA,GAAAhlI,KAAAklI,SAAA,CACA,IAAAC,EAAAtb,EAAA7pH,KAAAklI,SACAE,EAAAH,EAAAjlI,KAAAqlI,kBACAC,EAAAN,EAAAhlI,KAAAulI,kBACAC,EAAA,IAAAJ,EAAAD,EACA55B,EAAAvrG,KAAAurG,IAEA,GADAA,EAAAt5F,QAAAsH,EAAA,EAAA8kE,UAAyD+mD,iBAAAE,iBAAAG,mBAAAR,IACzDO,EAAA,GAEAJ,EAAA75B,EAAAvrD,OAAA0lF,8BAAAJ,EAAA,CACA,IAAAvT,EAAAxmB,EAAAwmB,aACAt3C,EAAA,EAAA/kE,KAAA,mEAAAq8G,GACAA,EAAA,SAAAxmB,EAAAu3B,kBAAAv3B,EAAAu3B,kBAAA/Q,KACAA,GAAA,EACAxmB,EAAAt5F,QAAAsH,EAAA,EAAA+kE,wBAA6Ej7D,MAAA0uG,EAAAsR,aAAA93B,EAAAwmB,eAC7ExmB,EAAAu3B,iBAAA/Q,EACAxmB,EAAAq4B,iBAAA3T,oBAKAjwH,KAAAklI,SAAArb,EACA7pH,KAAAqlI,kBAAAJ,EACAjlI,KAAAulI,kBAAAP,IAIAV,EAAApkI,UAAA2kI,iBAAA,WACA,IAAAx3C,EAAArtF,KAAAqtF,MACA,GAAAA,EACA,GAAArtF,KAAA0kI,gCAAA,CACA,IAAAiB,EAAAt4C,EAAAu3C,0BACA5kI,KAAA+kI,SAAA13C,EAAAs4C,EAAAC,iBAAAD,EAAAE,yBAEA7lI,KAAA+kI,SAAA13C,IAAAy4C,wBAAAz4C,EAAA04C,0BAKAzB,EAxEA,CAyECj5B,GAYD,IAAA26B,GAAAr2H,OACAs2H,GAAAD,GAAAl8B,YACAj7F,GAAAm3H,GAAAn3H,eAsKAq3H,GApKA,WACA,SAAAC,EAAAnmF,IAbA,SAAAT,EAAAqjC,GAA4D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCActGoiF,CAAApmI,KAAAmmI,GAEAnmF,KAAAqmF,WACArmI,KAAAqmI,SAAArmF,EAAAqmF,UA4JA,OAxJAF,EAAAjmI,UAAAi/C,QAAA,WACAn/C,KAAA06G,QACA16G,KAAA+5G,OAAA,MAGAosB,EAAAjmI,UAAAw6G,MAAA,WACA,IAAAX,EAAA/5G,KAAA+5G,OACAA,GAAA,IAAAA,EAAAmQ,aACAlqH,KAAAuqG,MAAAoxB,SAAA,EACA5hB,EAAAW,SAGA/qG,OAAAtD,aAAArM,KAAAsmI,gBACAtmI,KAAAsmI,eAAA,KACA32H,OAAAtD,aAAArM,KAAAumI,cACAvmI,KAAAumI,aAAA,MAGAJ,EAAAjmI,UAAAm6G,KAAA,SAAAvsD,EAAA9N,EAAAwmF,GACAxmI,KAAA8tD,UACA9tD,KAAAggD,SACAhgD,KAAAwmI,YACAxmI,KAAAuqG,OAAkBssB,SAAAoP,GAAAv2H,MAAA+2H,MAAA,GAClBzmI,KAAA66G,WAAA76D,EAAA66D,WACA76G,KAAA0mI,gBAGAP,EAAAjmI,UAAAwmI,aAAA,WACA,IAAA93H,OAAA,EACAk/C,EAAA9tD,KAAA8tD,QACAl/C,EAAA5O,KAAA+5G,OAAA,IAAAlrG,GAEA,IAAA07F,EAAAvqG,KAAAuqG,MACAA,EAAA8oB,OAAA,EACA9oB,EAAA0T,OAAA,EACA,IAAAooB,EAAArmI,KAAAqmI,SAEA,IACA,GAAAA,EACA,IACAA,EAAAz3H,EAAAk/C,EAAA3/C,KACS,MAAAhK,GAGTyK,EAAAE,KAAA,MAAAg/C,EAAA3/C,KAAA,GACAk4H,EAAAz3H,EAAAk/C,EAAA3/C,KAGAS,EAAAs7G,YACAt7G,EAAAE,KAAA,MAAAg/C,EAAA3/C,KAAA,GAEK,MAAAhK,GAGL,YADAnE,KAAAwmI,UAAA5qB,SAA8BsmB,KAAAtzH,EAAAqH,OAAAo7B,KAAAltC,EAAA27D,SAAoChS,EAAAl/C,GAIlEk/C,EAAAqvD,UACAvuG,EAAA+3H,iBAAA,iBAAA74E,EAAAovD,WAAA,KAAApvD,EAAAqvD,SAAA,IAGAvuG,EAAAg4H,mBAAA5mI,KAAA6mI,iBAAAr8H,KAAAxK,MACA4O,EAAAk4H,WAAA9mI,KAAAu+G,aAAA/zG,KAAAxK,MACA4O,EAAA2sG,aAAAztD,EAAAytD,aAGAv7G,KAAAsmI,eAAA32H,OAAArD,WAAAtM,KAAA+7G,YAAAvxG,KAAAxK,WAAAggD,OAAA46D,SACAhsG,EAAAG,QAGAo3H,EAAAjmI,UAAA2mI,iBAAA,SAAAtvE,GACA,IAAA3oD,EAAA2oD,EAAAwvE,cACA7c,EAAAt7G,EAAAs7G,WACA3f,EAAAvqG,KAAAuqG,MACAz8C,EAAA9tD,KAAA8tD,QACA9N,EAAAhgD,KAAAggD,OAGA,IAAAuqD,EAAAoxB,SAKAzR,GAAA,EAOA,GALAv6G,OAAAtD,aAAArM,KAAAsmI,gBACA,IAAA/7B,EAAA8oB,SACA9oB,EAAA8oB,OAAAtrH,KAAAE,IAAAg+H,GAAAv2H,MAAA66F,EAAAssB,WAGA,IAAA3M,EAAA,CACA,IAAAj0G,EAAArH,EAAAqH,OAEA,GAAAA,GAAA,KAAAA,EAAA,KACAs0F,EAAA6R,MAAAr0G,KAAAE,IAAAsiG,EAAA8oB,OAAA4S,GAAAv2H,OACA,IAAAoB,OAAA,EACAjP,OAAA,EAGAA,EAFA,gBAAAisD,EAAAytD,cACAzqG,EAAAlC,EAAA8qG,UACAv1B,YAEArzE,EAAAlC,EAAAK,cACAhO,OAEAspG,EAAA0T,OAAA1T,EAAA6oB,MAAAvxH,EACA,IAAA63G,GAA0BvrG,IAAAS,EAAAo4H,YAAAl2H,QAC1B9Q,KAAAwmI,UAAA9qB,UAAAhC,EAAAnP,EAAAz8C,EAAAl/C,QAGA27F,EAAAk8B,OAAAzmF,EAAA26D,UAAA1kG,GAAA,KAAAA,EAAA,KACAwkE,EAAA,EAAAM,MAAA9kE,EAAA,kBAAA63C,EAAA3/C,KACAnO,KAAAwmI,UAAA5qB,SAAoCsmB,KAAAjsH,EAAAo7B,KAAAziC,EAAAq4H,YAAqCn5E,EAAAl/C,KAGzE6rE,EAAA,EAAA/kE,KAAAO,EAAA,kBAAA63C,EAAA3/C,IAAA,iBAAAnO,KAAA66G,WAAA,OAEA76G,KAAAm/C,UAEAn/C,KAAAumI,aAAA52H,OAAArD,WAAAtM,KAAA0mI,aAAAl8H,KAAAxK,WAAA66G,YAEA76G,KAAA66G,WAAA9yG,KAAAC,IAAA,EAAAhI,KAAA66G,WAAA76D,EAAA86D,eACAvQ,EAAAk8B,cAKAzmI,KAAAsmI,eAAA32H,OAAArD,WAAAtM,KAAA+7G,YAAAvxG,KAAAxK,MAAAggD,EAAA46D,UAKAurB,EAAAjmI,UAAA67G,YAAA,WACAthC,EAAA,EAAA/kE,KAAA,yBAAA1V,KAAA8tD,QAAA3/C,KACAnO,KAAAwmI,UAAA1qB,UAAA97G,KAAAuqG,MAAAvqG,KAAA8tD,QAAA,OAGAq4E,EAAAjmI,UAAAq+G,aAAA,SAAAhnD,GACA,IAAA3oD,EAAA2oD,EAAAwvE,cACAx8B,EAAAvqG,KAAAuqG,MAEAA,EAAA0T,OAAA1mD,EAAA0mD,OACA1mD,EAAA2vE,mBACA38B,EAAA6oB,MAAA77D,EAAA67D,OAGA,IAAA9U,EAAAt+G,KAAAwmI,UAAAloB,WACAA,GAEAA,EAAA/T,EAAAvqG,KAAA8tD,QAAA,KAAAl/C,IAIAu3H,EAjKA,GAsKAgB,GAAA,WAAuD,SAAA9hF,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAA/iB,GAmCA,IAuaAwkD,GAvaA,SAAA5b,GAGA,SAAA6b,EAAA97B,IApCA,SAAAhsD,EAAAqjC,GAAwE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAqClHsjF,CAAAtnI,KAAAqnI,GAOA,IAAAxqH,EA1CA,SAAA1Q,EAAAT,GAAwE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EA0C9K67H,CAAAvnI,KAAAwrH,EAAA9/G,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAA8iE,iBAAA9iE,EAAA,EAAAgjE,gBAAAhjE,EAAA,EAAA2jE,mBAAA3jE,EAAA,EAAAyjE,qBAAAzjE,EAAA,EAAAojE,aAAApjE,EAAA,EAAAglE,QAgCA,OA9BA1hE,EAAA2qH,UAAA,EAOA3qH,EAAA4qH,qBAAA,EAOA5qH,EAAAswE,UAOAtwE,EAAA6qH,iBAAA99H,OAAA8/B,OAAA,MAQA7sB,EAAAi6G,aAAA,KACAj6G,EAyXA,OAjcA,SAAAq8F,EAAAC,GAAiE,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GA8B5YwuB,CAAAN,EAAA7b,GAkDA6b,EAAAnnI,UAAAk6G,kBAAA,WACAp6G,KAAAmtF,UACAntF,KAAAwnI,UAAA,EACAxnI,KAAAynI,qBAAA,GAYAJ,EAAAnnI,UAAAoxH,iBAAA,SAAAxgH,GACA,IAAAq8E,EAAAntF,KAAAmtF,OAAAr8E,EAAA2rG,gBACAz8G,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAujE,sBAAsE2/B,YAAAtvB,KAYtEk6C,EAAAnnI,UAAA0nI,mBAAA,SAAA92H,GACA,GAAAA,EAAApP,IAAA1B,KAAAmtF,OAAAlsF,OACAw5E,EAAA,EAAA/kE,KAAA,0BAAA5E,EAAApP,QADA,CAWA,GANA+4E,EAAA,EAAAj7E,IAAA,cAAAsR,EAAApP,GAAA,WAEA1B,KAAAmtF,OAAAr8E,EAAApP,IAAAyqF,QAAAr7E,EAAAq7E,QAIAr7E,EAAAq7E,QAAA4iB,OAAA/uG,KAAAwoH,cAAA,CAGA,IAAAqf,EAAA,IAAA/2H,EAAAq7E,QAAAijB,eACApvG,KAAA0oH,YAAAmf,IAGA/2H,EAAAq7E,QAAA4iB,MAAA/uG,KAAAwoH,eAEAxoH,KAAAuoH,kBAcA8e,EAAAnnI,UAAA4yH,qBAAA,SAAAhiH,GACA,IAAAgmH,EAAA92H,KAAAmtF,OAAAr8E,EAAApP,IAAAwxD,QACA4jE,GAAA92H,KAAA82H,mBACA92H,KAAA82H,iBAeAuQ,EAAAnnI,UAAAwxH,cAAA,SAAA5gH,GAIA,IAAAo8G,EAAAltH,KAAAurG,IAAA0J,OAAAnkG,EAAAuS,OAEA,GAAA6pG,EAAArI,cAAA,CAIA,IAAAiS,EAAA5J,EAAArI,cAAAqI,EAAAjW,OACAj3G,KAAA82H,mBACA92H,KAAA82H,eACA92H,KAAA8nI,8BAYAT,EAAAnnI,UAAA07G,QAAA,SAAA9qG,GAEAA,EAAAtN,OAAAynF,EAAA,EAAAnM,gBAKAhuE,EAAAs7E,OACApsF,KAAAuoH,gBAIAz3G,EAAAq7E,UAAAlB,EAAA,EAAAnL,yBAIArF,EAAA,EAAA/kE,KAAA,qCAAA5E,EAAAg9C,QAAApsD,IACA1B,KAAA+nI,sBAYAV,EAAAnnI,UAAA8nI,eAAA,SAAAC,GAEA,GAAAjoI,KAAAwnI,WAAAS,GAAAjoI,KAAAmtF,OAAAntF,KAAAwnI,UAAAr7C,QACA1R,EAAA,EAAAI,MAAA,oFAKA,GAAAotD,EAAA,GAAAA,GAAAjoI,KAAAmtF,OAAAlsF,OACAw5E,EAAA,EAAA/kE,KAAA,mDADA,CAKA,IAAA0kF,EAAAp6F,KAAAmtF,OAAA86C,GAEAxtD,EAAA,EAAAj7E,IAAA,sCAAAyoI,GAGAjoI,KAAAuoH,gBACAvoH,KAAAwnI,SAAAS,EAEA,IAAA95H,EAAAisF,EAAAjsF,IACA3K,EAAA42F,EAAA52F,KACA9B,EAAA04F,EAAA14F,GAEA1B,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAwjE,uBAAuEr7E,KAAA8B,OAAA2K,QACvEnO,KAAAkoI,0BAAA9tC,KAQAitC,EAAAnnI,UAAA6oH,OAAA,WACA/oH,KAAAmoI,aAAAnoI,KAAAwnI,WASAH,EAAAnnI,UAAA4nI,yBAAA,WACA,IAAA5pH,EAAAle,KAEAmtF,EAAAntF,KAAAmtF,OACA,GAAAA,EAAAlsF,OAAA,CAIA,IAAAmnI,EAAApoI,KAAAmtF,OAAAntF,KAAAwnI,UAEA5kI,EAAA,KAMA,GALAwlI,IACAxlI,EAAAwlI,EAAAxlI,MAIA5C,KAAAynI,oBAAA,CACA,IAAAY,EAAAl7C,EAAA/lE,OAAA,SAAA6pE,GACA,OAAAA,EAAAl4E,UAEAsvH,EAAApnI,OACAksF,EAAAk7C,EAEA5tD,EAAA,EAAA/kE,KAAA,mCAIA,IAAA4yH,GAAA,EAEAC,EAAA,WAEAp7C,EAAArjF,QAAA,SAAAmnF,GACAq3C,GAKApqH,EAAA44G,cAAA7lC,EAAA/9B,UAAAh1C,EAAA44G,cAAAl0H,OAAAquF,EAAAruF,OAGAsb,EAAA8pH,eAAA/2C,EAAAvvF,IACA4mI,GAAA,MAKAC,IAEAD,IACA1lI,EAAA,KACA2lI,KAGAD,IACA7tD,EAAA,EAAAM,MAAA,8CAAA/6E,KAAA82H,cAEA92H,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAlM,YACAoN,QAAAlB,EAAA,EAAAnL,uBACAsM,OAAA,OAYAi7C,EAAAnnI,UAAAsoI,mBAAA,SAAApuC,GACA,IAAAjO,EAAAiO,EAAAjO,QAGA,OAAAA,MAEKA,EAAA4iB,WAAA,IAWLs4B,EAAAnnI,UAAAgoI,0BAAA,SAAA9tC,GACA,GAAAp6F,KAAAwoI,mBAAApuC,GAAA,CACA,IAAAjsF,EAAAisF,EAAAjsF,IACAzM,EAAA04F,EAAA14F,GAGA+4E,EAAA,EAAAj7E,IAAA,wCAAAkC,GACA1B,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA0jE,qBAAuE9uE,MAAAzM,SAUvE2lI,EAAAnnI,UAAAioI,aAAA,SAAAF,GAEA,KAAAA,EAAA,GAAAA,GAAAjoI,KAAAmtF,OAAAlsF,QAAA,CAKAjB,KAAAuoH,gBACAvoH,KAAAwnI,SAAAS,EACAxtD,EAAA,EAAAj7E,IAAA,gCAAAyoI,GACA,IAAA7tC,EAAAp6F,KAAAmtF,OAAA86C,GACAjoI,KAAAkoI,0BAAA9tC,KAQAitC,EAAAnnI,UAAA6nI,iBAAA,WAEA/nI,KAAA0nI,iBAAA1nI,KAAAwnI,WAAA,EAGA,IAAAiB,EAAAzoI,KAAAwnI,SACAkB,EAAA1oI,KAAAmtF,OAAAs7C,GACA7lI,EAAA8lI,EAAA9lI,KACA+lI,EAAAD,EAAAC,SACAz1E,EAAAw1E,EAAAx1E,QAGAunB,EAAA,EAAA/kE,KAAA,qCAAA+yH,EAAA,eAAAv1E,EAAA,qBAAAtwD,EAAA,QAAA+lI,EAAA,KAKA,IADA,IAAAV,EAAAQ,EACA1nI,EAAA,EAAmBA,EAAAf,KAAAmtF,OAAAlsF,OAAwBF,IAAA,CAC3C,IAAAf,KAAA0nI,iBAAA3mI,GAIA,GADAf,KAAAmtF,OAAApsF,GACA6B,SAAA,CACAqlI,EAAAlnI,EACA,OAIAknI,IAAAQ,GAKAhuD,EAAA,EAAAj7E,IAAA,sCAAAyoI,EAAA,YAAAjoI,KAAAmtF,OAAA86C,GAAA/0E,SAEAlzD,KAAAgoI,eAAAC,IANAxtD,EAAA,EAAA/kE,KAAA,qDAAA9S,EAAA,QAAA+lI,EAAA,MASAxB,GAAAE,IACAt9H,IAAA,cACA/F,IAAA,WACA,OAAAhE,KAAAmtF,UAQApjF,IAAA,aACA/F,IAAA,WACA,OAAAhE,KAAAwnI,UAOAxiF,IAAA,SAAAijF,GACAjoI,KAAAgoI,eAAAC,GAEAjoI,KAAAynI,qBAAA,MAIAJ,EApaA,CAqaCzf,IAMDghB,GAAA,WAAwD,SAAAvjF,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAhjB,GAyBA,IACAimD,GADAl5H,OACAm6F,YAGAg/B,IACA9d,QAAA,UACA+d,SAAA,WACA9d,KAAA,OACA+d,OAAA,SACAvqD,YAAA,cACAhB,aAAA,eACAytC,2BAAA,6BACA+d,cAAA,gBACA7d,QAAA,UACAC,OAAA,SACAlvC,gBAAA,kBACAmvC,MAAA,QACA/sC,MAAA,QACA2qD,iBAAA,oBAg1BAC,GA70BA,SAAA3d,GAGA,SAAA4d,EAAA79B,EAAAie,IA/CA,SAAAjqE,EAAAqjC,GAAyE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAgDnHqlF,CAAArpI,KAAAopI,GAEA,IAAAvsH,EAhDA,SAAA1Q,EAAAT,GAAyE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAgD/K49H,CAAAtpI,KAAAwrH,EAAA9/G,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAmiE,eAAAniE,EAAA,EAAAoiE,gBAAApiE,EAAA,EAAAujE,qBAAAvjE,EAAA,EAAAwjE,sBAAAxjE,EAAA,EAAA2jE,mBAAA3jE,EAAA,EAAAmlE,WAAAnlE,EAAA,EAAAqkE,YAAArkE,EAAA,EAAAukE,0BAAAvkE,EAAA,EAAA0kE,kBAAA1kE,EAAA,EAAA2kE,YAAA3kE,EAAA,EAAAglE,MAAAhlE,EAAA,EAAAsiE,aAAAtiE,EAAA,EAAAwiE,eAAAxiE,EAAA,EAAA0iE,gBAAA1iE,EAAA,EAAA6iE,eAAA7iE,EAAA,EAAAikE,iBASA,OAPA3gE,EAAA2sG,kBACA3sG,EAAAmjC,OAAAurD,EAAAvrD,OACAnjC,EAAA+uG,gBAAA,EACA/uG,EAAAgvG,OAAAid,GAAA9d,QACAnuG,EAAA8vE,WACA9vE,EAAA0sH,gBAAA,KACA1sH,EAAA2sH,aAAA,KACA3sH,EA2zBA,OAl3BA,SAAAq8F,EAAAC,GAAkE,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAyC7YswB,CAAAL,EAAA5d,GAiBA4d,EAAAlpI,UAAA0rG,oBAAA,WACA5rG,KAAAgsH,WACAR,EAAAtrH,UAAA0rG,oBAAAlgG,KAAA1L,OAGAopI,EAAAlpI,UAAA4rG,mBAAA,WACA9rG,KAAA+7C,MAAA+sF,GAAA9d,QACAhrH,KAAAwpH,gBAAA,KACAgC,EAAAtrH,UAAA4rG,mBAAApgG,KAAA1L,OAMAopI,EAAAlpI,UAAAwpI,eAAA,SAAA54H,GACA,IAAA64H,EAAA74H,EAAApP,GACAo1G,EAAAhmG,EAAA2rF,KAAAqa,GACAnqB,EAAA77E,EAAA67E,QACA,SAAAg9C,IAGA3pI,KAAA2sF,QAAAmqB,GAAAnqB,EACA3sF,KAAAwpI,aAAA1yB,EACAr8B,EAAA,EAAAj7E,IAAA,mBAAAs3G,EAAA,4BAAAnqB,GAIA3sF,KAAA+7C,QAAA+sF,GAAAI,kBACAlpI,KAAAooH,SAKAghB,EAAAlpI,UAAA+rH,UAAA,SAAAC,GACA,GAAAlsH,KAAAmtF,OAAA,CACA,IAAAy8B,EAAA5pH,KAAA4pH,gBACA5pH,KAAAgsH,WACAhsH,KAAA0oH,YAAA,KACA1oH,KAAAmsH,cAAA,EACAvC,EAAA,QAAAsC,GACAzxC,EAAA,EAAAj7E,IAAA,sDAAAoqH,EAAAtiH,QAAA,IACAtH,KAAA+7C,MAAA+sF,GAAA7d,OAEAjrH,KAAA4pH,gBAAA5pH,KAAAksH,cAAAlsH,KAAAksH,gBACAlsH,KAAA+7C,MAAA+sF,GAAAC,UAEA/oI,KAAAwsH,iBAAAxsH,KAAAksH,cAAAlsH,KAAA4pH,gBACA5pH,KAAAooH,YAEApoH,KAAAksH,gBACAlsH,KAAA+7C,MAAA+sF,GAAA9d,SAIAoe,EAAAlpI,UAAA8rH,SAAA,WACA,IAAAvvB,EAAAz8F,KAAA0sH,YACAjwB,IACAA,EAAAsd,QACAtd,EAAAsd,OAAAW,QAGA16G,KAAAwpH,gBAAAlJ,eAAA7jB,GACAz8F,KAAA0sH,YAAA,MAEA1sH,KAAA2sH,aAAA,KACA3sH,KAAAkqG,UACAlqG,KAAAkqG,QAAA/qD,UACAn/C,KAAAkqG,QAAA,MAEAlqG,KAAA+7C,MAAA+sF,GAAA9d,SAGAoe,EAAAlpI,UAAA6oH,OAAA,WACA,IAAAr3F,OAAA,EACAu/D,OAAA,EACA24C,OAAA,EACAr+B,EAAAvrG,KAAAurG,IACAvrD,EAAAurD,EAAAvrD,OAEA,OAAAhgD,KAAA+7C,OACA,KAAA+sF,GAAAvqD,MAEA,KAAAuqD,GAAAE,OAEA,KAAAF,GAAA3sD,gBACA,MACA,KAAA2sD,GAAAC,SACA/oI,KAAA+7C,MAAA+sF,GAAAG,cACAjpI,KAAAusH,gBAAA,EACA,MACA,KAAAuc,GAAA7d,KACA,IAAA99B,EAAAntF,KAAAmtF,OAEA,IAAAA,EACA,MAOA,IAAAntF,KAAAg2G,QAAAh2G,KAAAosH,qBAAApsE,EAAAitE,mBACA,MAMA,GAAAjtH,KAAAusH,eACA76F,EAAA1xB,KAAAg2G,MAAA6T,iBAGA,QAAAn8G,KADAgkB,EAAA1xB,KAAAwsH,kBAEA,MAGA,IAAAxW,EAAAh2G,KAAAwtH,YAAAxtH,KAAAwtH,YAAAxtH,KAAAg2G,MACA+c,EAAA/yH,KAAA+yH,YAAA/yH,KAAA+yH,YAAA/yH,KAAAg2G,MACAqM,EAAAH,EAAAG,WAAArM,EAAAtkF,EAAAsuB,EAAA2nD,eACAkiC,EAAA3nB,EAAAG,WAAA0Q,EAAArhG,EAAAsuB,EAAA2nD,eACAgb,EAAAN,EAAAxgH,IACAghH,EAAAR,EAAAnxF,IACAy7F,EAAA3sH,KAAA2sH,aAKAmd,EAAA/hI,KAAAC,IAAAg4C,EAAAstE,gBAAAttE,EAAAutE,oBACAH,EAAArlH,KAAAE,IAAA6hI,EAAAD,EAAAhoI,KACAkoI,EAAA/pI,KAAA+pI,YACA96C,EAAAjvF,KAAAivF,QAGA,IAAA0zB,EAAAyK,GAAA2c,IAAA96C,EAAA9B,EAAAlsF,OAAA,CAGA,aAFA2oI,EAAAz8C,EAAA8B,GAAA9C,SAEA,CACAnsF,KAAA+7C,MAAA+sF,GAAAG,cACA,MAOA,IAAAc,IAAAH,EAAA76B,MAAA4d,KAAAhqB,KAAAinC,EAAA/6B,QAAAwT,EAAAI,aAIAziH,KAAAg2G,MAAAmU,SAAAnqH,KAAAg2G,MAAAhpB,SAAA61B,EAAA8J,EAAA3/B,SAAA,IAEAhtF,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA2iE,YAAsE14E,KAAA,UACtExD,KAAA+7C,MAAA+sF,GAAAxd,MACA,MAKA,IAAAxc,EAAA86B,EAAA96B,UACA6e,EAAA7e,EAAA7tG,OACAuB,EAAAssG,EAAA,GAAAtsG,MACA0uB,EAAA49E,EAAA6e,EAAA,GAAAnrH,MAAAssG,EAAA6e,EAAA,GAAA3gC,SACAyP,OAAA,EAGA,GAAAstC,EACA,GAAAH,EAAA76B,OAAA66B,EAAAlkB,SACAjrC,EAAA,EAAAj7E,IAAA,sEACAqjH,EAAA,OAIA,GAFAA,EAAAnxF,EAEAk4G,EAAAlkB,UAAAh0F,EAAAlvB,EAAA,CAEA,KAAA6/G,EAAAnxF,IAAA1uB,GAAA6/G,EAAAI,WAIA,OAHAhoC,EAAA,EAAAj7E,IAAA,yEACAQ,KAAAg2G,MAAA6T,YAAArnH,EAAA,IAOA,GAAAonI,EAAA/8C,cAAA+8C,EAAA/8C,YAAA/7E,KACA2rF,EAAAmtC,EAAA/8C,iBAGA,GAAAg2B,GAAArgH,GAMA,GALAi6F,EAAAqS,EAAA,GACA,OAAA9uG,KAAAwpI,cAAA/sC,EAAAqa,KAAA92G,KAAAwpI,eAEA/sC,EAt5JA,SAAAqS,EAAAk7B,GACA,OAAAtoB,EAAAC,OAAA7S,EAAA,SAAAoa,GACA,OAAAA,EAAApS,GAAAkzB,EACA,EACK9gB,EAAApS,GAAAkzB,GACL,EAEA,IA+4JAC,CAAAn7B,EAAA9uG,KAAAwpI,eAEAI,EAAA76B,MAAAtS,EAAAytC,SAAAztC,EAAAytC,UAAAlqI,KAAAmqI,YAAA,CAGA,IAAAC,EAAA/nB,EAAAI,UAAAJ,EAAAI,UAAAjgH,EAGA,OAFAi4E,EAAA,EAAAj7E,IAAA,uCAAAQ,KAAAg2G,MAAA6T,YAAA,eAAAugB,EAAA,WACApqI,KAAAg2G,MAAA6T,YAAAugB,EAAA,UAGa,CACb,IAAAC,OAAA,EACAphB,EAAAjpE,EAAAipE,uBACA0F,EAAAhC,EAAA7d,EAAA6d,EAAAhqB,GAAAmM,EAAA,GAAAnM,GAAA,QAAAj1F,EACA48H,EAAA,SAAAphB,GAeA,IAAAC,EAAAphH,KAAAC,IAAAihH,EAAAC,EAAAl8B,UACA,OAAAk8B,EAAA1mH,MAAA0mH,EAAAl8B,SAAAm8B,GAAAtG,EACA,EACiBqG,EAAA1mH,MAAA2mH,EAAAtG,GAAAqG,EAAA1mH,OAEjB,EAGA,GAGAqgH,EAAA3xF,GACA2xF,EAAA3xF,EAAA+3F,IACAA,EAAA,GAKAohB,EADA1b,IAAA2b,EAAA3b,GACAA,EAEAjN,EAAAC,OAAA7S,EAAAw7B,IAIAD,EAAAv7B,EAAA6e,EAAA,GAEA0c,IACA5tC,EAAA4tC,EACA7nI,EAAA6nI,EAAA7nI,MAEAmqH,GAAAlwB,EAAAp5E,QAAAspG,EAAAtpG,OAAAo5E,EAAAkG,KAAAgqB,EAAAhqB,KACAlG,EAAAkG,GAAAinC,EAAA/6B,OACApS,EAAAqS,EAAArS,EAAAkG,GAAA,EAAAinC,EAAA16B,SACAz0B,EAAA,EAAAj7E,IAAA,kCAAAi9F,EAAAkG,KAEAlG,EAAA,OAKAA,IAEAA,EAAAsxB,WACAtzC,EAAA,EAAAj7E,IAAA,mBAAAi9F,EAAAkG,GAAA,QAAAinC,EAAA16B,QAAA,KAAA06B,EAAA/6B,MAAA,WAAA5f,GACAjvF,KAAA+7C,MAAA+sF,GAAArqD,YACA8sB,EAAAt5F,QAAAsH,EAAA,EAAAklE,aAAkEge,WAElEhiB,EAAA,EAAAj7E,IAAA,WAAAi9F,EAAAkG,GAAA,SAAAlG,EAAAqa,GAAA,QAAA8yB,EAAA16B,QAAA,KAAA06B,EAAA/6B,MAAA,WAAA5f,EAAA,iBAAAv9D,EAAA,cAAAmxF,EAAAv7G,QAAA,KAGAyiI,GAAA/pI,KAAAwpH,gBAAAtI,SAAAzkB,KAAAyiB,KACAl/G,KAAA0sH,YAAAjwB,EACAz8F,KAAAosH,oBAAA,EACAxiH,OAAA6mF,EAAA,EAAA7mF,CAAA6yF,EAAAkG,MACA3iG,KAAAwsH,iBAAA/vB,EAAAj6F,MAAAi6F,EAAAzP,UAGAue,EAAAt5F,QAAAsH,EAAA,EAAAkkE,cAAqEgf,SACrEz8F,KAAA+7C,MAAA+sF,GAAArrD,gBAKA,MACA,KAAAqrD,GAAAG,eACAh4C,EAAAjxF,KAAAmtF,OAAAntF,KAAAivF,WAEAgC,EAAA9E,UACAnsF,KAAA+7C,MAAA+sF,GAAA7d,MAGA,MACA,KAAA6d,GAAA5d,2BACA,IAAAx7G,EAAAm5H,GAAAn5H,MACAm9G,EAAA7sH,KAAA6sH,UAEA0d,GADAv0B,EAAAh2G,KAAAg2G,QACAA,EAAAmU,UAEA0C,GAAAn9G,GAAAm9G,GAAA0d,KACA9vD,EAAA,EAAAj7E,IAAA,uEACAQ,KAAA+7C,MAAA+sF,GAAA7d,MAEA,MACA,KAAA6d,GAAAI,iBACA,IAAAM,EAAAxpI,KAAAwpI,aACA,QAAA97H,IAAA1N,KAAA2sF,QAAA68C,GACA,MAIA,IAAAgB,EAAAxqI,KAAAupI,gBACA,GAAAiB,EAAA,CACA,IAAAC,EAAAD,EAAA/tC,KAAAqa,GACA0yB,IAAAiB,GACAx5C,EAAAjxF,KAAAmtF,OAAAntF,KAAAivF,UACA9C,SAAA8E,EAAA9E,QAAA4iB,OACAt0B,EAAA,EAAA/kE,KAAA,wBAAA+0H,EAAA,oCAAAjB,EAAA,KACAxpI,KAAAupI,gBAAA,KACAvpI,KAAA+7C,MAAA+sF,GAAA7d,OAGAjrH,KAAA+7C,MAAA+sF,GAAArrD,aACAz9E,KAAAmhH,aAAAnhH,KAAAupI,iBACAvpI,KAAAupI,gBAAA,WAGAvpI,KAAA+7C,MAAA+sF,GAAA7d,KAGA,MACA,KAAA6d,GAAA9d,QACA,KAAA8d,GAAArrD,aACA,KAAAqrD,GAAA1d,QACA,KAAA0d,GAAAzd,OACA,KAAAyd,GAAAxd,SAOA8d,EAAAlpI,UAAAwwH,gBAAA,SAAA5/G,GACA,IAAAklG,EAAAh2G,KAAAg2G,MAAAh2G,KAAAwtH,YAAA18G,EAAAklG,MACAh2G,KAAA2wH,WAAA3wH,KAAA4wH,eAAApmH,KAAAxK,MACAA,KAAA+wH,SAAA/wH,KAAAgxH,aAAAxmH,KAAAxK,MACAg2G,EAAAp3F,iBAAA,UAAA5e,KAAA2wH,YACA3a,EAAAp3F,iBAAA,QAAA5e,KAAA+wH,UACA,IAAA/wE,EAAAhgD,KAAAggD,OACAhgD,KAAAmtF,QAAAntC,EAAAixE,eACAjxH,KAAAisH,UAAAjsE,EAAAksE,gBAIAkd,EAAAlpI,UAAAgxH,iBAAA,WACA,IAAAlb,EAAAh2G,KAAAg2G,MACAA,KAAAiU,QACAxvC,EAAA,EAAAj7E,IAAA,sDACAQ,KAAAksH,cAAAlsH,KAAA4pH,gBAAA,GAIA5T,IACAA,EAAAl3F,oBAAA,UAAA9e,KAAA2wH,YACA3a,EAAAl3F,oBAAA,QAAA9e,KAAA+wH,UACA/wH,KAAA2wH,WAAA3wH,KAAA6wH,UAAA7wH,KAAA+wH,SAAA,MAEA/wH,KAAAg2G,MAAAh2G,KAAAwtH,YAAAxtH,KAAA+yH,YAAA,KACA/yH,KAAAusH,gBAAA,EACAvsH,KAAAgsH,YAGAod,EAAAlpI,UAAA0wH,eAAA,WACA5wH,KAAA+7C,QAAA+sF,GAAAxd,QAEAtrH,KAAA+7C,MAAA+sF,GAAA7d,MAEAjrH,KAAAg2G,QACAh2G,KAAA4pH,gBAAA5pH,KAAAg2G,MAAA6T,aAIA7pH,KAAAooH,QAGAghB,EAAAlpI,UAAA8wH,aAAA,WAEAhxH,KAAAksH,cAAAlsH,KAAA4pH,gBAAA,GAGAwf,EAAAlpI,UAAAwqI,qBAAA,SAAA55H,GACA2pE,EAAA,EAAAj7E,IAAA,wBACAQ,KAAAmtF,OAAAr8E,EAAA2rG,aAGA2sB,EAAAlpI,UAAA2yH,sBAAA,SAAA/hH,GAEA,IAAA28G,IAAA38G,EAAA3C,IACAnO,KAAAivF,QAAAn+E,EAAApP,GAEA1B,KAAA0sH,YAAA,KACA1sH,KAAA+7C,MAAA+sF,GAAAE,OACAhpI,KAAAupI,gBAAA,KAEA9b,EAOAztH,KAAA0oH,YAAA,KANA1oH,KAAAkqG,UACAlqG,KAAAkqG,QAAA/qD,UACAn/C,KAAAkqG,QAAA,MAQAujB,IACAztH,KAAA+pI,aAAA,EAEA/pI,KAAA+7C,MAAA+sF,GAAA7d,MAEAjrH,KAAAooH,QAGAghB,EAAAlpI,UAAA0nI,mBAAA,SAAA92H,GACA,IAAA+0G,EAAA/0G,EAAAq7E,QACA8C,EAAAn+E,EAAApP,GACAuvF,EAAAjxF,KAAAmtF,OAAA8B,GACAjC,EAAA64B,EAAAxW,cACAgX,EAAA,EAIA,GAFA5rC,EAAA,EAAAj7E,IAAA,SAAAyvF,EAAA,YAAA42B,EAAA3W,QAAA,IAAA2W,EAAAhX,MAAA,cAAA7hB,GAEA64B,EAAA9W,KAAA,CACA,IAAA+X,EAAA71B,EAAA9E,QACA26B,GAAAjB,EAAA/W,UAAA7tG,OAAA,GAEA0kH,GAAAmB,EAAAjB,GACAQ,EAAAR,EAAA/W,UAAA,GAAAtsG,MAGAqjH,EAAAH,SACAjrC,EAAA,EAAAj7E,IAAA,+BAAA6mH,EAAA/+G,QAAA,IAEAmzE,EAAA,EAAAj7E,IAAA,yDAGAqmH,EAAAH,UAAA,EACAjrC,EAAA,EAAAj7E,IAAA,2DAGAqmH,EAAAH,UAAA,EAKA,GAHAz0B,EAAA9E,QAAA05B,GAGA7lH,KAAAosH,mBAAA,CAEA,QAAApsH,KAAAksH,cAAA,CAEA,IAAA/c,EAAA0W,EAAA1W,gBACAvlG,OAAA6mF,EAAA,EAAA7mF,CAAAulG,IACA10B,EAAA,EAAAj7E,IAAA,gEAAA2vG,GACAnvG,KAAAksH,cAAA/c,GAEAnvG,KAAAksH,cAAA,EAGAlsH,KAAAwsH,iBAAAxsH,KAAAksH,cAGAlsH,KAAA+7C,QAAA+sF,GAAAG,gBACAjpI,KAAA+7C,MAAA+sF,GAAA7d,MAIAjrH,KAAAooH,QAGAghB,EAAAlpI,UAAA2xH,YAAA,WACA7xH,KAAA+7C,QAAA+sF,GAAArqD,cACAz+E,KAAA+7C,MAAA+sF,GAAA7d,KACAjrH,KAAAooH,SAIAghB,EAAAlpI,UAAAihH,aAAA,SAAArwG,GACA,IAAA47G,EAAA1sH,KAAA0sH,YACAoF,EAAAhhH,EAAA2rF,KACA,GAAAz8F,KAAA+7C,QAAA+sF,GAAArrD,cAAAivC,GAAA,UAAAoF,EAAAtuH,MAAAsuH,EAAAzuG,QAAAqpG,EAAArpG,OAAAyuG,EAAAnvB,KAAA+pB,EAAA/pB,GAAA,CACA,IAAA1R,EAAAjxF,KAAAmtF,OAAAntF,KAAAivF,SACA9C,EAAA8E,EAAA9E,QACAa,EAAAb,EAAAkjB,cACApgB,EAAAy9B,EAAArpG,MACAs/E,EAAA+pB,EAAA/pB,GACAmU,EAAA4V,EAAA5V,GACAhqB,EAAA9sF,KAAAggD,OAAAg0E,mBAAA/iC,EAAAnE,YAAA,YACAyd,EAAAvqG,KAAAuqG,MAAAz5F,EAAAy5F,MACA,mBAAA5H,EACA3iG,KAAA+7C,MAAA+sF,GAAA7d,KAEA1gB,EAAAyS,QAAAzS,EAAAynB,UAAA6W,GAAAn5H,MACAy8E,EAAAU,YAAA/7E,OAAA8yB,QACA5jC,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA4kE,eAAmEosB,QAAA9N,KAAAiwB,EAAAhrH,GAAA,UACnE1B,KAAAooH,WACO,CACPpoH,KAAA+7C,MAAA+sF,GAAA1d,QAEAprH,KAAAkyH,UAAA,EACAlyH,KAAAkqG,UACAlqG,KAAAkqG,QAAA,IAAAsZ,GAAAxjH,KAAAurG,IAAA,UAKA,IAAA5e,EAAA3sF,KAAA2sF,QAAAmqB,GACAqb,EAAAhmC,EAAAU,YAAAV,EAAAU,YAAA/7E,QACA,GAAAq7E,EAAAU,kBAAAn/E,IAAAi/E,EAAA,CACA3sF,KAAAiyH,kBAAA,EACAx3C,EAAA,EAAAj7E,IAAA,YAAAmjG,EAAA,QAAAxW,EAAA+iB,QAAA,KAAA/iB,EAAA0iB,MAAA,WAAA5f,GAGAjvF,KAAAkqG,QAAA3oG,KAAAuP,EAAA8yB,QAAAuuF,EAAArlC,EAAA,KAAA4/B,EAAA1/B,GADA,EACAL,QAEAlS,EAAA,EAAAj7E,IAAA,4CAAAs3G,EAAA,sDAAAnU,EAAA,QAAAxW,EAAA+iB,QAAA,KAAA/iB,EAAA0iB,MAAA,WAAA5f,GACAjvF,KAAAupI,gBAAAz4H,EACA9Q,KAAA+7C,MAAA+sF,GAAAI,kBAIAlpI,KAAAmsH,cAAA,GAGAid,EAAAlpI,UAAAmyH,yBAAA,SAAAvhH,GACA,IAAA47G,EAAA1sH,KAAA0sH,YACA4F,EAAAxhH,EAAA2rF,KACA,GAAAiwB,GAAA,UAAA57G,EAAApP,IAAA4wH,EAAA3vB,KAAA+pB,EAAA/pB,IAAA2vB,EAAAjvG,QAAAqpG,EAAArpG,OAAArjB,KAAA+7C,QAAA+sF,GAAA1d,QAAA,CACA,IAAAj+B,EAAAr8E,EAAAq8E,OACA8D,OAAA,EASA,GANA9D,EAAAE,cACAF,EAAAE,MAIA4D,EAAA9D,EAAAC,MACA,CACA6D,EAAAwhC,WAAAxhC,EAAAzD,MACAyD,EAAAvvF,GAAAoP,EAAApP,GACA1B,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAuiE,cAAAqR,GACA1S,EAAA,EAAAj7E,IAAA,+BAAAyxF,EAAA1D,UAAA,0BAAA0D,EAAAwhC,WAAA,IAAAxhC,EAAAzD,MAAA,KACA,IAAAX,EAAAoE,EAAApE,YACA,GAAAA,EAAA,CACA,IAAA89C,GAA2BnnI,KAAA,QAAAsN,KAAA+7E,EAAAtjD,OAAA,QAAA6W,QAAA,eAC3BpgD,KAAA+pI,YACA/pI,KAAA4qI,aAAAD,IAEA3qI,KAAAkyH,UAAA,EAEAlyH,KAAAiyH,kBAAA,EACAjyH,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAyiE,iBAAA2uD,IAIA3qI,KAAAooH,UAKAghB,EAAAlpI,UAAAwyH,kBAAA,SAAA5hH,GACA,IAAAoN,EAAAle,KAEA0sH,EAAA1sH,KAAA0sH,YACA4F,EAAAxhH,EAAA2rF,KACA,GAAAiwB,GAAA,UAAA57G,EAAApP,IAAA,UAAAoP,EAAAtN,MAAA8uH,EAAA3vB,KAAA+pB,EAAA/pB,IAAA2vB,EAAAjvG,QAAAqpG,EAAArpG,OAAArjB,KAAA+7C,QAAA+sF,GAAA1d,QAAA,CACA,IAAAn8B,EAAAjvF,KAAAivF,QACAgC,EAAAjxF,KAAAmtF,OAAA8B,GACAsc,EAAAvrG,KAAAurG,IAEA3hG,OAAA6mF,EAAA,EAAA7mF,CAAAkH,EAAAg0F,UACAh0F,EAAAg0F,OAAAh0F,EAAAi0F,SAAA2nB,EAAA1/B,SACAl8E,EAAAm3F,OAAAn3F,EAAAu/E,SAAAq8B,EAAA1/B,UAGA0/B,EAAAhf,oBAAAb,EAAAU,sBAAAC,OAEA/yB,EAAA,EAAAj7E,IAAA,UAAAsR,EAAAtN,KAAA,SAAAsN,EAAAi0F,SAAAz9F,QAAA,OAAAwJ,EAAAg0F,OAAAx9F,QAAA,aAAAwJ,EAAAu/E,SAAA/oF,QAAA,OAAAwJ,EAAAm3F,OAAA3gG,QAAA,WAAAwJ,EAAAs3F,IACAid,GAAAp0B,EAAA9E,QAAAugC,EAAA57G,EAAAi0F,SAAAj0F,EAAAg0F,QAEA,IAAAilC,EAAA/pI,KAAA+pI,YACA/zB,EAAAh2G,KAAAg2G,MACA60B,GAAA,EAEA,GAAAd,GAAA/zB,EACA,GAAAA,EAAAkU,WAAA,CACA,IAAAL,EAAA7T,EAAA6T,YACApvC,EAAA,EAAAj7E,IAAA,uCAAAqqH,GACAA,GAAA/4G,EAAAi0F,WACAtqB,EAAA,EAAAj7E,IAAA,8CACAQ,KAAA+7C,MAAA+sF,GAAA3sD,gBACAovB,EAAAt5F,QAAAsH,EAAA,EAAA4iE,iBAAoEo0C,YAAA,EAAAC,UAAAz1G,OAAA+0G,kBAAAtsH,KAAA,UACpEqnI,GAAA,EAEA7qI,KAAA+pI,aAAA,EACAx+B,EAAAt5F,QAAAsH,EAAA,EAAAyjE,sBAAyEt7E,GAAAutF,UAIzEjvF,KAAA+pI,aAAA,EACAx+B,EAAAt5F,QAAAsH,EAAA,EAAAyjE,sBAAuEt7E,GAAAutF,IAIvE,IAAA27C,EAAA5qI,KAAA4qI,YAEA,IAAAA,EAGA,OAFAnwD,EAAA,EAAA/kE,KAAA,8FACA61F,EAAAt5F,QAAAsH,EAAA,EAAAglE,OAAsD/6E,KAAAynF,EAAA,EAAAlM,YAAAoN,QAAA,KAAAC,OAAA,IAItDpsF,KAAA+pI,eACAj5H,EAAAi3F,MAAAj3F,EAAAk3F,OAAAl+F,QAAA,SAAA46E,GACAA,KAAAzjF,QACA2pI,EAAArpI,MAA8BiC,KAAAsN,EAAAtN,KAAAsN,KAAA4zE,EAAAn7C,OAAA,QAAA6W,QAAA,YAG9ByqF,GAAAD,EAAA3pI,SACA2pI,EAAA9gI,QAAA,SAAA6gI,GAGAzsH,EAAA69B,QAAA+sF,GAAA1d,UAEAltG,EAAA+zG,kBAAA,EACA/zG,EAAAqtF,IAAAt5F,QAAAsH,EAAA,EAAAyiE,iBAAA2uD,MAGA3qI,KAAA4qI,eACA5qI,KAAAkyH,UAAA,IAIAlyH,KAAAooH,SAIAghB,EAAAlpI,UAAAyyH,aAAA,SAAA7hH,GACA,IAAA47G,EAAA1sH,KAAA0sH,YACA4F,EAAAxhH,EAAA2rF,KACAiwB,GAAA,UAAA57G,EAAApP,IAAA4wH,EAAA3vB,KAAA+pB,EAAA/pB,IAAA2vB,EAAAjvG,QAAAqpG,EAAArpG,OAAArjB,KAAA+7C,QAAA+sF,GAAA1d,UACAprH,KAAAuqG,MAAAyS,QAAA6rB,GAAAn5H,MACA1P,KAAA+7C,MAAA+sF,GAAAzd,OACArrH,KAAA4yH,yBAIAwW,EAAAlpI,UAAA+gI,cAAA,WAEAjhI,KAAAwtH,YAAAxtH,KAAA+yH,YAAA,KACA/yH,KAAAusH,gBAAA,GAGA6c,EAAAlpI,UAAA8yH,gBAAA,SAAAliH,GACA,IAAAspF,EAAAtpF,EAAAq8E,OAAAC,MACAgN,IACAp6F,KAAAwtH,YAAApzB,EAAA1V,OACA1kF,KAAAusH,gBAAA,GAEAz7G,EAAAq8E,OAAAE,QACArtF,KAAA+yH,YAAAjiH,EAAAq8E,OAAAE,MAAA3I,SAIA0kD,EAAAlpI,UAAAmhH,iBAAA,SAAAvwG,GACA,aAAAA,EAAAy4B,OAAA,CACA,IAAAwS,EAAA/7C,KAAA+7C,MACAA,IAAA+sF,GAAA1d,SAAArvE,IAAA+sF,GAAAzd,SAEArrH,KAAAiyH,iBAAAnhH,EAAAqiH,QAAA,EACAnzH,KAAA4yH,0BAKAwW,EAAAlpI,UAAA0yH,qBAAA,WAEA,KAAA5yH,KAAA+7C,QAAA+sF,GAAAzd,QAAArrH,KAAAkyH,UAAAlyH,KAAAiyH,kBAAA,CACA,IAAAx1B,EAAAz8F,KAAA0sH,YACAniB,EAAAvqG,KAAAuqG,MACAgB,EAAAvrG,KAAAurG,IACA,GAAA9O,EAAA,CACAz8F,KAAA2sH,aAAAlwB,EACA8N,EAAAynB,UAAA6W,GAAAn5H,MACA67F,EAAAt5F,QAAAsH,EAAA,EAAA4kE,eAA8DosB,QAAA9N,OAAA/6F,GAAA,UAC9D,IAAAs0G,EAAAh2G,KAAAwtH,YAAAxtH,KAAAwtH,YAAAxtH,KAAAg2G,MACAv7B,EAAA,EAAAj7E,IAAA,oBAAA8mH,GAAA1+G,SAAAouG,EAAA6J,WACA7/G,KAAA+pI,aAAA/pI,KAAAkyH,WACAlyH,KAAA+pI,aAAA,EACAx+B,EAAAt5F,QAAAsH,EAAA,EAAAyjE,sBAAuEt7E,GAAA1B,KAAAivF,WAEvEjvF,KAAA+7C,MAAA+sF,GAAA7d,KAEAjrH,KAAAooH,SAIAghB,EAAAlpI,UAAA07G,QAAA,SAAA9qG,GACA,IAAA2rF,EAAA3rF,EAAA2rF,KAEA,IAAAA,GAAA,UAAAA,EAAAj5F,KAIA,OAAAsN,EAAAq7E,SACA,KAAAlB,EAAA,EAAAjL,gBACA,KAAAiL,EAAA,EAAAhL,kBACA,IAAA6qD,EAAAh6H,EAAA2rF,KAEA,GAAAquC,GAAA,UAAAA,EAAAtnI,KACA,MAGA,IAAAsN,EAAAs7E,MAAA,CACA,IAAA8oC,EAAAl1H,KAAAmsH,cACA+I,EACAA,IAEAA,EAAA,EAGA,IAAAl1E,EAAAhgD,KAAAggD,OACA,GAAAk1E,GAAAl1E,EAAAg/D,oBAAA,CACAh/G,KAAAmsH,cAAA+I,EAEA,IAAAjzH,EAAA8F,KAAAC,IAAAD,KAAAI,IAAA,EAAA+sH,EAAA,GAAAl1E,EAAAi/D,sBAAAj/D,EAAAq+D,4BACA5jC,EAAA,EAAA/kE,KAAA,wDAAAzT,EAAA,OACAjC,KAAA6sH,UAAAgc,GAAAn5H,MAAAzN,EAEAjC,KAAA+7C,MAAA+sF,GAAA5d,gCAEAzwC,EAAA,EAAAM,MAAA,0BAAAjqE,EAAAq7E,QAAA,+CAEAr7E,EAAAs7E,OAAA,EACApsF,KAAA+7C,MAAA+sF,GAAAvqD,MAGA,MACA,KAAA0M,EAAA,EAAAnL,uBACA,KAAAmL,EAAA,EAAAlL,yBACA,KAAAkL,EAAA,EAAA5K,eACA,KAAA4K,EAAA,EAAA3K,iBAEAtgF,KAAA+7C,QAAA+sF,GAAAvqD,QAEAv+E,KAAA+7C,MAAAjrC,EAAAs7E,MAAA08C,GAAAvqD,MAAAuqD,GAAA7d,KACAxwC,EAAA,EAAA/kE,KAAA,0BAAA5E,EAAAq7E,QAAA,yCAAAnsF,KAAA+7C,MAAA,eAEA,MACA,KAAAkvC,EAAA,EAAAtK,kBAEA,aAAA7vE,EAAAy4B,SAAAvpC,KAAA+7C,QAAA+sF,GAAA1d,SAAAprH,KAAA+7C,QAAA+sF,GAAAzd,QAAA,CACA,IAAArV,EAAAh2G,KAAAwtH,YACA3D,EAAA7pH,KAAAg2G,MAAA6T,YAGA,GAFA7T,GAAAkM,EAAAE,WAAApM,EAAA6T,IAAA3H,EAAAE,WAAApM,EAAA6T,EAAA,IAEA,CACA,IAAAkhB,EAAA/qI,KAAAggD,OACA+qF,EAAAxd,oBAAAwd,EAAAzd,kBAEAyd,EAAAxd,oBAAA,EACA9yC,EAAA,EAAA/kE,KAAA,sDAAAq1H,EAAAxd,mBAAA,MAEAvtH,KAAA+7C,MAAA+sF,GAAA7d,UAKAxwC,EAAA,EAAA/kE,KAAA,uGACA1V,KAAA0sH,YAAA,KAEA1sH,KAAA+7C,MAAA+sF,GAAA3sD,gBACAn8E,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA4iE,iBAAyEo0C,YAAA,EAAAC,UAAAz1G,OAAA+0G,kBAAAtsH,KAAA,aASzE4lI,EAAAlpI,UAAAyzH,gBAAA,WACA,IAAA30G,EAAAhf,KAEA4qI,EAAA5qI,KAAA4qI,YACAA,KAAA3pI,QACAw5E,EAAA,EAAAj7E,IAAA,4EACAorI,EAAA9gI,QAAA,SAAA6gI,GACA3rH,EAAAusF,IAAAt5F,QAAAsH,EAAA,EAAAyiE,iBAAA2uD,KAEA3qI,KAAAkyH,UAAA,EACAlyH,KAAA4qI,eACA5qI,KAAA+7C,MAAA+sF,GAAAzd,SAGArrH,KAAA+7C,MAAA+sF,GAAA7d,KAEAjrH,KAAA2sH,aAAA,KACA3sH,KAAAooH,SAIAwgB,GAAAQ,IACAr/H,IAAA,QACAi7C,IAAA,SAAAivE,GACA,GAAAj0H,KAAA+7C,QAAAk4E,EAAA,CACA,IAAAC,EAAAl0H,KAAA+7C,MACA/7C,KAAA6rH,OAAAoI,EACAx5C,EAAA,EAAAj7E,IAAA,gBAAA00H,EAAA,KAAAD,KAGAjwH,IAAA,WACA,OAAAhE,KAAA6rH,WAIAud,EA10BA,CA20BCxhB,IAoBDojB,GAAA,WACA,uBAAAr7H,eAAA6oH,OACA,OAAA7oH,OAAA6oH,OAGA,IAAAyS,EAAA,OACAC,GACAC,IAAA,EACAC,IAAA,EACAC,IAAA,GAEAC,GACA9oI,OAAA,EACAo7B,QAAA,EACA1M,KAAA,EACArrB,MAAA,EACAC,OAAA,GAYA,SAAAylI,EAAAhkI,GACA,uBAAAA,MAIA+jI,EAAA/jI,EAAA+Q,gBACA/Q,EAAA+Q,eAGA,SAAA5O,EAAAyB,GAEA,IADA,IAAApK,EAAA,EACUA,EAAA+D,UAAA7D,OAAsBF,IAAA,CAChC,IAAAyqI,EAAA1mI,UAAA/D,GACA,QAAAmwC,KAAAs6F,EACArgI,EAAA+lC,GAAAs6F,EAAAt6F,GAIA,OAAA/lC,EAGA,SAAAqtH,EAAAtnE,EAAAo5C,EAAAj5D,GACA,IAAAqnF,EAAA14H,KACAyrI,EAAA,WACA,uBAAA5sF,UAIA,mBAAA8c,KAAA9c,UAAAC,WALA,GAQA4sF,KAEAD,EACA/S,EAAA7oH,SAAAC,cAAA,UAEA47H,EAAArgI,YAAA,EAWAqtH,EAAAiT,cAAA,EAOA,IAAAC,EAAA,GACAC,GAAA,EACAC,EAAA56E,EACA66E,EAAAzhC,EACA0hC,EAAA36F,EACA46F,EAAA,KACAC,EAAA,GACAC,GAAA,EACAC,EAAA,OACAC,EAAA,QACAC,EAAA,GACAC,EAAA,SACAC,EAAA,GACAC,EAAA,SA4LA,GA1LA7iI,OAAAwB,eAAAstH,EAAA,KAAAhvH,KAA8CgiI,GAC9C1nI,IAAA,WACA,OAAA4nI,GAEA5mF,IAAA,SAAAz9C,GACAqkI,EAAA,GAAArkI,MAIAqC,OAAAwB,eAAAstH,EAAA,cAAAhvH,KAAuDgiI,GACvD1nI,IAAA,WACA,OAAA6nI,GAEA7mF,IAAA,SAAAz9C,GACAskI,IAAAtkI,MAIAqC,OAAAwB,eAAAstH,EAAA,YAAAhvH,KAAqDgiI,GACrD1nI,IAAA,WACA,OAAA8nI,GAEA9mF,IAAA,SAAAz9C,GACA,oBAAAA,EACA,UAAAy8C,UAAA,uCAGA8nF,EAAAvkI,EACAvH,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,UAAAhvH,KAAmDgiI,GACnD1nI,IAAA,WACA,OAAA+nI,GAEA/mF,IAAA,SAAAz9C,GACA,oBAAAA,EACA,UAAAy8C,UAAA,qCAGA+nF,EAAAxkI,EACAvH,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,OAAAhvH,KAAgDgiI,GAChD1nI,IAAA,WACA,OAAAgoI,GAEAhnF,IAAA,SAAAz9C,GACAykI,EAAA,GAAAzkI,EACAvH,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,SAAAhvH,KAAkDgiI,GAClD1nI,IAAA,WACA,OAAAioI,GAEAjnF,IAAA,SAAAz9C,GACA0kI,EAAA1kI,EACAvH,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,WAAAhvH,KAAoDgiI,GACpD1nI,IAAA,WACA,OAAAkoI,GAEAlnF,IAAA,SAAAz9C,GACA,IAAAwV,EArJA,SAAAxV,GACA,uBAAAA,KAIA2jI,EAAA3jI,EAAA+Q,gBACA/Q,EAAA+Q,cA+IAo0H,CAAAnlI,GAEA,QAAAwV,EACA,UAAA4vH,YAAA,+CAGAT,EAAAnvH,EACA/c,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,cAAAhvH,KAAuDgiI,GACvD1nI,IAAA,WACA,OAAAmoI,GAEAnnF,IAAA,SAAAz9C,GACA4kI,IAAA5kI,EACAvH,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,OAAAhvH,KAAgDgiI,GAChD1nI,IAAA,WACA,OAAAooI,GAEApnF,IAAA,SAAAz9C,GACA,oBAAAA,OAAA0jI,EACA,UAAA0B,YAAA,sDAGAP,EAAA7kI,EACAvH,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,YAAAhvH,KAAqDgiI,GACrD1nI,IAAA,WACA,OAAAqoI,GAEArnF,IAAA,SAAAz9C,GACA,IAAAwV,EAAAwuH,EAAAhkI,GACA,IAAAwV,EACA,UAAA4vH,YAAA,+CAGAN,EAAAtvH,EACA/c,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,WAAAhvH,KAAoDgiI,GACpD1nI,IAAA,WACA,OAAAsoI,GAEAtnF,IAAA,SAAAz9C,GACA,GAAAA,EAAA,GAAAA,EAAA,IACA,UAAA83D,MAAA,uCAGAitE,EAAA/kI,EACAvH,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,gBAAAhvH,KAAyDgiI,GACzD1nI,IAAA,WACA,OAAAuoI,GAEAvnF,IAAA,SAAAz9C,GACA,IAAAwV,EAAAwuH,EAAAhkI,GACA,IAAAwV,EACA,UAAA4vH,YAAA,+CAGAJ,EAAAxvH,EACA/c,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,OAAAhvH,KAAgDgiI,GAChD1nI,IAAA,WACA,OAAAwoI,GAEAxnF,IAAA,SAAAz9C,GACA,GAAAA,EAAA,GAAAA,EAAA,IACA,UAAA83D,MAAA,mCAGAmtE,EAAAjlI,EACAvH,KAAA2rI,cAAA,MAIA/hI,OAAAwB,eAAAstH,EAAA,QAAAhvH,KAAiDgiI,GACjD1nI,IAAA,WACA,OAAAyoI,GAEAznF,IAAA,SAAAz9C,GACA,IAAAwV,EAAAwuH,EAAAhkI,GACA,IAAAwV,EACA,UAAA4vH,YAAA,+CAGAF,EAAA1vH,EACA/c,KAAA2rI,cAAA,MASAjT,EAAAkU,kBAAAl/H,EAEA+9H,EACA,OAAA/S,EAcA,OANAF,EAAAt4H,UAAA2sI,aAAA,WAGA,OADAl9H,OAAAm9H,OACAC,oBAAAp9H,OAAA3P,KAAAqxC,OAGAmnF,EA1SA,GAmTAwU,GAAA,WACA,OACAC,OAAA,SAAAn8H,GACA,IAAAA,EACA,SAGA,oBAAAA,EACA,UAAAuuD,MAAA,iCAGA,OAAA6tE,mBAAAC,mBAAAr8H,OAKA,SAAAs8H,KACAptI,KAAA2P,cACA3P,KAAA+7C,MAAA,UACA/7C,KAAA0kF,OAAA,GACA1kF,KAAAqtI,QAAA,IAAAL,GACAhtI,KAAAstI,cA6BA,SAAAC,KACAvtI,KAAAoxB,OAAAxnB,OAAA8/B,OAAA,MA0DA,SAAA8jG,GAAAtjI,EAAA/H,EAAAsrI,EAAAC,GACA,IAAAh5B,EAAAg5B,EAAAxjI,EAAArJ,MAAA6sI,IAAAxjI,GACA,QAAAnJ,KAAA2zG,EACA,oBAAAA,EAAA3zG,GAAA,CAIA,IAAA4sI,EAAAj5B,EAAA3zG,GAAAF,MAAA4sI,GACA,OAAAE,EAAA1sI,OAMAkB,EAFAwrI,EAAA,GACAA,EAAA,KApEAJ,GAAArtI,WAEA8kD,IAAA,SAAAv8B,EAAA1b,GACA/M,KAAAgE,IAAAykB,IAAA,KAAA1b,IACA/M,KAAAoxB,OAAA3I,GAAA1b,IAQA/I,IAAA,SAAAykB,EAAAmlH,EAAAC,GACA,OAAAA,EACA7tI,KAAAmlD,IAAA18B,GAAAzoB,KAAAoxB,OAAA3I,GAAAmlH,EAAAC,GAGA7tI,KAAAmlD,IAAA18B,GAAAzoB,KAAAoxB,OAAA3I,GAAAmlH,GAGAzoF,IAAA,SAAA18B,GACA,OAAAA,KAAAzoB,KAAAoxB,QAGA08G,IAAA,SAAArlH,EAAA1b,EAAAwI,GACA,QAAA6oC,EAAA,EAAmBA,EAAA7oC,EAAAtU,SAAcm9C,EACjC,GAAArxC,IAAAwI,EAAA6oC,GAAA,CACAp+C,KAAAglD,IAAAv8B,EAAA1b,GACA,QAKAghI,QAAA,SAAAtlH,EAAA1b,GACA,UAAA4uD,KAAA5uD,IAEA/M,KAAAglD,IAAAv8B,EAAAmxD,SAAA7sE,EAAA,MAIAqX,QAAA,SAAAqE,EAAA1b,GAEA,SAAAA,EAAA5D,MAAA,8BACA4D,EAAAyY,WAAAzY,KACA,GAAAA,GAAA,OACA/M,KAAAglD,IAAAv8B,EAAA1b,IACA,KA2BA,IAAAi2B,GAAA,IAAAgoG,GAAA,OAGAlnH,GAAA,WAAAkf,GAAArK,MAAA,kBAEA,SAAAq1G,GAAA9jI,EAAAwuH,EAAA4U,GAEA,IAAAW,EAAA/jI,EAEA,SAAAgkI,IACA,IAAAC,EAhHA,SAAAjkI,GACA,SAAAkkI,EAAAn2H,EAAA0U,EAAAxU,EAAA6qC,GACA,eAAA/qC,GAAA,MAAA0U,IAAA,EAAAxU,IAAA,EAAA6qC,GAAA,IAGA,IAAAr2B,EAAAziB,EAAAf,MAAA,oCACA,OAAAwjB,EAIAA,EAAA,GAEAyhH,EAAAzhH,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAApkB,QAAA,QAAAokB,EAAA,IACGA,EAAA,MAGHyhH,EAAAzhH,EAAA,GAAAA,EAAA,KAAAA,EAAA,IAGAyhH,EAAA,EAAAzhH,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAZA,KAyGA0hH,CAAAnkI,GACA,UAAAikI,EACA,UAAA9uE,MAAA,wBAAA4uE,GAKA,OADA/jI,IAAA3B,QAAA,qBACA4lI,EAyEA,SAAAG,IACApkI,IAAA3B,QAAA,WAOA,GAHA+lI,IACA5V,EAAAxnE,UAAAg9E,IACAI,IACA,WAAApkI,EAAA6qG,OAAA,KAEA,UAAA11C,MAAA,qEAAA4uE,GAEA/jI,IAAA6qG,OAAA,GACAu5B,IACA5V,EAAApuB,QAAA4jC,IAGAI,IAtFA,SAAApkI,EAAAwuH,GACA,IAAA7kH,EAAA,IAAA05H,GAEAC,GAAAtjI,EAAA,SAAAue,EAAA1b,GACA,OAAA0b,GACA,aAEA,QAAA1nB,EAAAusI,EAAArsI,OAAA,EAA6CF,GAAA,EAAQA,IACrD,GAAAusI,EAAAvsI,GAAAW,KAAAqL,EAAA,CACA8G,EAAAmxC,IAAAv8B,EAAA6kH,EAAAvsI,GAAAwtI,QACA,MAGA,MACA,eACA16H,EAAAi6H,IAAArlH,EAAA1b,GAAA,YACA,MACA,WACA,IAAAyhI,EAAAzhI,EAAAlM,MAAA,KACA4tI,EAAAD,EAAA,GACA36H,EAAAk6H,QAAAtlH,EAAAgmH,GACA56H,EAAAuQ,QAAAqE,EAAAgmH,IACA56H,EAAAmxC,IAAA,kBAGAnxC,EAAAi6H,IAAArlH,EAAAgmH,GAAA,SACA,IAAAD,EAAAvtI,QACA4S,EAAAi6H,IAAA,YAAAU,EAAA,YAAA1qH,GAAA,QAGA,MACA,eACA0qH,EAAAzhI,EAAAlM,MAAA,KACAgT,EAAAuQ,QAAAqE,EAAA+lH,EAAA,IACA,IAAAA,EAAAvtI,QACA4S,EAAAi6H,IAAA,gBAAAU,EAAA,YAAA1qH,GAAA,wCAGA,MACA,WACAjQ,EAAAuQ,QAAAqE,EAAA1b,GACA,MACA,YACA8G,EAAAi6H,IAAArlH,EAAA1b,GAAA,QAAA+W,GAAA,yBAGK,UAGL40G,EAAA6V,OAAA16H,EAAA7P,IAAA,eACA00H,EAAAgW,SAAA76H,EAAA7P,IAAA,eACA,IAAAyB,EAAAoO,EAAA7P,IAAA,eACA,SAAAyB,IAAA,IAAAu9B,GAAAv9B,OAEAA,GAAA,GAEAizH,EAAAjzH,OACAizH,EAAAiW,UAAA96H,EAAA7P,IAAA,qBACA00H,EAAAkW,YAAA/6H,EAAA7P,IAAA,kBACA00H,EAAA7mG,KAAAhe,EAAA7P,IAAA,YACA00H,EAAA//F,MAAA9kB,EAAA7P,IAAA,QAAA8f,IACA,IAAA1V,EAAAyF,EAAA7P,IAAA,mBACA,SAAAoK,GAAA,KAAA40B,GAAA50B,WAEAA,EAAA,UAAAsqH,EAAA//F,OAAA,SAAA+/F,EAAA//F,MAAA,UAAA+/F,EAAA//F,OAAA,UAAA+/F,EAAA//F,MAAA,QAEA+/F,EAAAtqH,WAqBAygI,CAAA3kI,EAAAwuH,GAGA,SAAAoW,GAAA5kI,GACA,OAAAA,EAAA3B,QAAA,uBAGA6kI,GAAAltI,WACAiN,MAAA,SAAA2D,GACA,IAAA3E,EAAAnM,KAUA,SAAA+uI,IACA,IAAArqD,EAAAv4E,EAAAu4E,OACAhzD,EAAA,EAIA,IAFAgzD,EAAAoqD,GAAApqD,GAEAhzD,EAAAgzD,EAAAzjF,QAAA,OAAAyjF,EAAAhzD,IAAA,OAAAgzD,EAAAhzD,MACAA,EAGA,IAAAjsB,EAAAi/E,EAAAqwB,OAAA,EAAArjF,GAWA,MATA,OAAAgzD,EAAAhzD,MACAA,EAGA,OAAAgzD,EAAAhzD,MACAA,EAGAvlB,EAAAu4E,SAAAqwB,OAAArjF,GACAjsB,EA1BAqL,IAEA3E,EAAAu4E,QAAAv4E,EAAAkhI,QAAAJ,OAAAn8H,GAAgD0rF,QAAA,KAyChD,IACA,IAAA/2F,OAAA,EACA,eAAA0G,EAAA4vC,MAAA,CAEA,cAAA4f,KAAAxvD,EAAAu4E,QACA,OAAA1kF,KAMA,IAAA2sB,GAHAlnB,EAAAspI,KAGA5lI,MAAA,4BACA,IAAAwjB,MAAA,GACA,UAAA0yC,MAAA,+BAGAlzD,EAAA4vC,MAAA,SAIA,IADA,IAAAizF,GAAA,EACA7iI,EAAAu4E,QAAA,CAEA,cAAA/oB,KAAAxvD,EAAAu4E,QACA,OAAA1kF,KASA,OANAgvI,EAGAA,GAAA,EAFAvpI,EAAAspI,IAKA5iI,EAAA4vC,OACA,aAEA,IAAA4f,KAAAl2D,GA/CA+nI,GAgDA/nI,EAhDA,SAAAgjB,EAAA1b,KAQO,KAyCMtH,IAEb0G,EAAA4vC,MAAA,MAEA,SACA,WAEAt2C,IACA0G,EAAA4vC,MAAA,MAGA,SACA,SAEA,oBAAA4f,KAAAl2D,GAAA,CACA0G,EAAA4vC,MAAA,OACA,MAGA,IAAAt2C,EACA,SAMA,GAHA0G,EAAAusH,IAAA,IAAAsS,GAAA,QACA7+H,EAAA4vC,MAAA,OAEA,IAAAt2C,EAAA3F,QAAA,WACAqM,EAAAusH,IAAAh3H,GAAA+D,EACA,SAIA,UAEA,IACAuoI,GAAAvoI,EAAA0G,EAAAusH,IAAAvsH,EAAAmhI,YACa,MAAAnpI,GAEbgI,EAAAusH,IAAA,KACAvsH,EAAA4vC,MAAA,SACA,SAEA5vC,EAAA4vC,MAAA,UACA,SACA,cACA,IAAAkzF,GAAA,IAAAxpI,EAAA3F,QAAA,UAKA,IAAA2F,GAAAwpI,IAAAD,GAAA,IAEA7iI,EAAA+iI,OACA/iI,EAAA+iI,MAAA/iI,EAAAusH,KAGAvsH,EAAAusH,IAAA,KACAvsH,EAAA4vC,MAAA,KACA,SAEA5vC,EAAAusH,IAAArnF,OACAllC,EAAAusH,IAAArnF,MAAA,MAGAllC,EAAAusH,IAAArnF,MAAA5rC,EACA,SACA,aAGAA,IACA0G,EAAA4vC,MAAA,MAGA,WAGK,MAAA53C,GAEL,YAAAgI,EAAA4vC,OAAA5vC,EAAAusH,KAAAvsH,EAAA+iI,OACA/iI,EAAA+iI,MAAA/iI,EAAAusH,KAGAvsH,EAAAusH,IAAA,KAGAvsH,EAAA4vC,MAAA,YAAA5vC,EAAA4vC,MAAA,qBAEA,OAAA/7C,MAEAwuD,MAAA,WAEA,IAWA,GAZAxuD,KAGA0kF,QAHA1kF,KAGAqtI,QAAAJ,UAHAjtI,KAKA04H,KAAA,WALA14H,KAKA+7C,SALA/7C,KAMA0kF,QAAA,OANA1kF,KAOAmN,SAKA,YAZAnN,KAYA+7C,MACA,UAAAsjB,MAAA,+BAEK,MAAAl7D,GACL,MAAAA,EAMA,OAtBAnE,KAkBAmvI,SAlBAnvI,KAmBAmvI,UAGAnvI,OAMA,IAAAovI,GAAA,GAIA,SAAApkC,GAAA/Z,EAAA//B,EAAAo5C,EAAA+kC,GAQA,IAPA,IAAAp+H,OAAA,EACAynH,OAAA,EACA4W,OAAA,EACAC,OAAA,EACAl+F,OAAA,EACAmnF,EAAA7oH,OAAA6oH,QAAA7oH,OAAA8oH,aAEAhhH,EAAA,EAAiBA,EAAA43H,EAAA37H,KAAAzS,OAA+BwW,IAMhD,GAJA63H,GAAA,EACAC,EAAA,EACAl+F,EAAA,KAHApgC,EAAAo+H,EAAA37H,KAAA+D,IAKAwoB,UAAA,CACA,QAAAigC,EAAA,EAAqBA,EAAAjvD,EAAAu+H,MAAAvuI,OAAsBi/D,IAC3CjvD,EAAAu+H,MAAAtvE,GAAAuvE,MAAAtmI,MAAA,OAAAmmI,EACAC,KAEAl+F,GAAApgC,EAAAu+H,MAAAtvE,GAAAuvE,MACAH,GAAA,GAIAr+H,EAAAy+H,aAAAx+E,EAGAA,IAAAo5C,IACAA,GAAA,MAGAouB,EAAA,IAAAF,EAAAtnE,EAAAo5C,EAAAwkC,GAAAz9F,EAAAmwC,SAEA+tD,GAAA,GACAA,IAEAA,IAKA1wF,UAAAC,UAAA31C,MAAA,aACAuvH,EAAAjzH,KAAAgS,EAAA,EAEAihH,EAAAjzH,KAAAgS,EAAA,EAAAA,EAAA,EAAAA,EAAA,EAGAihH,EAAA//F,MAAA,OAEA+/F,EAAAtqH,SAAArG,KAAAE,IAAA,EAAAF,KAAAC,IAAA,IAAAunI,EAAA,QAAA1wF,UAAAC,UAAA31C,MAAA,qBACA8nF,EAAA0nC,OAAAD,IAKA,SAAAiX,GAAApwF,EAAAqjC,GAAgE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCA2C1G,IAAA4rF,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,GAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KAIAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,GACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAl/D,IAAA,IACAG,IAAA,GACAM,IAAA,KACAiB,IAAA,KACAy9D,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IAGAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,GACAC,IAAA,GACAC,IAAA,GACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,MAMAC,GAAA,SAAAC,GACA,IAAAC,EAAAD,EAKA,OAJAxF,GAAA/sI,eAAAuyI,KACAC,EAAAzF,GAAAwF,IAGAjkI,OAAAwyE,aAAA0xD,IAGAC,GAAA,GACAC,GAAA,IAEAC,IAAkBC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,GAAAC,GAAA,GAAAC,GAAA,IAClBC,IAAmBR,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,GAAAE,GAAA,GAAAC,GAAA,IACnBE,IAAkBC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,GAAAC,GAAA,GAAAC,GAAA,IAClBC,IAAmBR,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,GAAAE,GAAA,GAAAC,GAAA,IAEnBE,IAAA,8EAKAC,IACAC,eAAkBC,KAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,QAAA,EAAAC,KAAA,EAAA54D,MAAA,GAClBv8E,KAAA,KACAo1I,aAAA,EACAC,QAAA,SAAAC,GACAt3I,KAAAgC,KAAAs1I,GAEA93I,IAAA,SAAA+3I,EAAAj8D,GACAt7E,KAAA82I,cAAAS,GACAv3I,KAAAo3I,eAMAI,GAAA,SAAAC,GAEA,IADA,IAAAC,KACAxkH,EAAA,EAAiBA,EAAAukH,EAAAx2I,OAAqBiyB,IACtCwkH,EAAAn2I,KAAAk2I,EAAAvkH,GAAAtrB,SAAA,KAGA,OAAA8vI,GAGAC,GAAA,WACA,SAAAA,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACArI,GAAA3vI,KAAA23I,GAEA33I,KAAA43I,cAAA,QACA53I,KAAA63I,cAAA,EACA73I,KAAA83I,YAAA,EACA93I,KAAA+3I,cAAA,QACA/3I,KAAAg4I,UAAA,EAyCA,OAtCAL,EAAAz3I,UAAA4K,MAAA,WACA9K,KAAA43I,WAAA,QACA53I,KAAA63I,WAAA,EACA73I,KAAA83I,SAAA,EACA93I,KAAA+3I,WAAA,QACA/3I,KAAAg4I,OAAA,GAGAL,EAAAz3I,UAAA+3I,UAAA,SAAAp7F,GAEA,IADA,IAAAq7F,GAAA,yDACAn3I,EAAA,EAAmBA,EAAAm3I,EAAAj3I,OAAoBF,IAAA,CACvC,IAAAwX,EAAA2/H,EAAAn3I,GACA87C,EAAAh6C,eAAA0V,KACAvY,KAAAuY,GAAAskC,EAAAtkC,MAKAo/H,EAAAz3I,UAAAi4I,UAAA,WACA,gBAAAn4I,KAAA43I,aAAA53I,KAAA63I,YAAA73I,KAAA83I,SAAA,UAAA93I,KAAA+3I,aAAA/3I,KAAAg4I,OAGAL,EAAAz3I,UAAA01E,OAAA,SAAAwiE,GACA,OAAAp4I,KAAA43I,aAAAQ,EAAAR,YAAA53I,KAAA63I,YAAAO,EAAAP,WAAA73I,KAAA83I,UAAAM,EAAAN,SAAA93I,KAAA+3I,aAAAK,EAAAL,YAAA/3I,KAAAg4I,QAAAI,EAAAJ,OAGAL,EAAAz3I,UAAAupC,KAAA,SAAA4uG,GACAr4I,KAAA43I,WAAAS,EAAAT,WACA53I,KAAA63I,UAAAQ,EAAAR,UACA73I,KAAA83I,QAAAO,EAAAP,QACA93I,KAAA+3I,WAAAM,EAAAN,WACA/3I,KAAAg4I,MAAAK,EAAAL,OAGAL,EAAAz3I,UAAA0H,SAAA,WACA,eAAA5H,KAAA43I,WAAA,eAAA53I,KAAA63I,UAAA,aAAA73I,KAAA83I,QAAA,gBAAA93I,KAAA+3I,WAAA,WAAA/3I,KAAAg4I,OAGAL,EAjDA,GA0DAW,GAAA,WACA,SAAAA,EAAA7I,EAAAmI,EAAAC,EAAAC,EAAAC,EAAAC,GACArI,GAAA3vI,KAAAs4I,GAEAt4I,KAAAyvI,SAAA,IACAzvI,KAAAu4I,SAAA,IAAAZ,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GA8BA,OA3BAM,EAAAp4I,UAAA4K,MAAA,WACA9K,KAAAyvI,MAAA,IACAzvI,KAAAu4I,SAAAztI,SAGAwtI,EAAAp4I,UAAAs4I,QAAA,SAAA/I,EAAA4I,GACAr4I,KAAAyvI,QACAzvI,KAAAu4I,SAAA9uG,KAAA4uG,IAGAC,EAAAp4I,UAAAu4I,YAAA,SAAAJ,GACAr4I,KAAAu4I,SAAA9uG,KAAA4uG,IAGAC,EAAAp4I,UAAA01E,OAAA,SAAAwiE,GACA,OAAAp4I,KAAAyvI,QAAA2I,EAAA3I,OAAAzvI,KAAAu4I,SAAA3iE,OAAAwiE,EAAAG,WAGAD,EAAAp4I,UAAAupC,KAAA,SAAAivG,GACA14I,KAAAyvI,MAAAiJ,EAAAjJ,MACAzvI,KAAAu4I,SAAA9uG,KAAAivG,EAAAH,WAGAD,EAAAp4I,UAAA+/B,QAAA,WACA,YAAAjgC,KAAAyvI,OAAAzvI,KAAAu4I,SAAAJ,aAGAG,EAnCA,GA4CAK,GAAA,WACA,SAAAA,IACAhJ,GAAA3vI,KAAA24I,GAEA34I,KAAAwvI,SACA,QAAAzuI,EAAA,EAAmBA,EAAAw0I,GAAax0I,IAChCf,KAAAwvI,MAAAjuI,KAAA,IAAA+2I,IAGAt4I,KAAA0xB,IAAA,EACA1xB,KAAA44I,aAAA,IAAAjB,GAkIA,OA/HAgB,EAAAz4I,UAAA01E,OAAA,SAAAwiE,GAEA,IADA,IAAAS,GAAA,EACA93I,EAAA,EAAmBA,EAAAw0I,GAAax0I,IAChC,IAAAf,KAAAwvI,MAAAzuI,GAAA60E,OAAAwiE,EAAA5I,MAAAzuI,IAAA,CACA83I,GAAA,EACA,MAGA,OAAAA,GAGAF,EAAAz4I,UAAAupC,KAAA,SAAA2uG,GACA,QAAAr3I,EAAA,EAAmBA,EAAAw0I,GAAax0I,IAChCf,KAAAwvI,MAAAzuI,GAAA0oC,KAAA2uG,EAAA5I,MAAAzuI,KAIA43I,EAAAz4I,UAAA+/B,QAAA,WAEA,IADA,IAAA64G,GAAA,EACA/3I,EAAA,EAAmBA,EAAAw0I,GAAax0I,IAChC,IAAAf,KAAAwvI,MAAAzuI,GAAAk/B,UAAA,CACA64G,GAAA,EACA,MAGA,OAAAA,GAQAH,EAAAz4I,UAAA64I,UAAA,SAAAC,GACAh5I,KAAA0xB,MAAAsnH,IACAh5I,KAAA0xB,IAAAsnH,GAGAh5I,KAAA0xB,IAAA,GACAmlH,GAAAr3I,IAAA,oCAAAQ,KAAA0xB,KACA1xB,KAAA0xB,IAAA,GACK1xB,KAAA0xB,IAAA6jH,KACLsB,GAAAr3I,IAAA,qCAAAQ,KAAA0xB,KACA1xB,KAAA0xB,IAAA6jH,KASAoD,EAAAz4I,UAAA+4I,WAAA,SAAAC,GACA,IAAA3jE,EAAAv1E,KAAA0xB,IAAAwnH,EACA,GAAAA,EAAA,EACA,QAAAn4I,EAAAf,KAAA0xB,IAAA,EAAgC3wB,EAAAw0E,EAAA,EAAgBx0E,IAChDf,KAAAwvI,MAAAzuI,GAAA03I,YAAAz4I,KAAA44I,cAGA54I,KAAA+4I,UAAAxjE,IAQAojE,EAAAz4I,UAAAi5I,UAAA,WACAn5I,KAAAi5I,YAAA,GACAj5I,KAAAwvI,MAAAxvI,KAAA0xB,KAAA8mH,QAAA,IAAAx4I,KAAA44I,eAGAD,EAAAz4I,UAAAk5I,WAAA,SAAAhE,GACAA,GAAA,KAEAp1I,KAAAm5I,YAEA,IAAAE,EAAAlE,GAAAC,GACAp1I,KAAA0xB,KAAA6jH,GACAsB,GAAAr3I,IAAA,yBAAA41I,EAAAxtI,SAAA,SAAAyxI,EAAA,iBAAAr5I,KAAA0xB,IAAA,mBAGA1xB,KAAAwvI,MAAAxvI,KAAA0xB,KAAA8mH,QAAAa,EAAAr5I,KAAA44I,cACA54I,KAAAi5I,WAAA,KAGAN,EAAAz4I,UAAAo5I,aAAA,SAAAC,GACA,IAAAx4I,OAAA,EACA,IAAAA,EAAAw4I,EAAsBx4I,EAAAw0I,GAAax0I,IACnCf,KAAAwvI,MAAAzuI,GAAA+J,SAIA6tI,EAAAz4I,UAAAklD,MAAA,WACAplD,KAAAs5I,aAAA,GACAt5I,KAAA0xB,IAAA,EACA1xB,KAAA44I,aAAA9tI,SAGA6tI,EAAAz4I,UAAAs5I,gBAAA,WACAx5I,KAAAs5I,aAAAt5I,KAAA0xB,MAGAinH,EAAAz4I,UAAAu5I,cAAA,WAGA,IAFA,IAAAjK,KACAsJ,GAAA,EACA/3I,EAAA,EAAmBA,EAAAw0I,GAAax0I,IAAA,CAChC,IAAAs4I,EAAAr5I,KAAAwvI,MAAAzuI,GAAA0uI,MACA,MAAA4J,IACAP,GAAA,GAGAtJ,EAAAjuI,KAAA83I,GAEA,OAAAP,EACA,GAEAtJ,EAAAppI,KAAA,KAIAuyI,EAAAz4I,UAAAw5I,aAAA,SAAA78F,GACA78C,KAAA44I,aAAAX,UAAAp7F,GACA78C,KAAAwvI,MAAAxvI,KAAA0xB,KACA+mH,YAAAz4I,KAAA44I,eAGAD,EA5IA,GAqJAgB,GAAA,WACA,SAAAA,IACAhK,GAAA3vI,KAAA25I,GAEA35I,KAAA0T,QACA,QAAA3S,EAAA,EAAmBA,EAAAu0I,GAAav0I,IAChCf,KAAA0T,KAAAnS,KAAA,IAAAo3I,IAGA34I,KAAA45I,QAAAtE,GAAA,EACAt1I,KAAA65I,aAAA,KACA75I,KAAA8K,QAsLA,OAnLA6uI,EAAAz5I,UAAA4K,MAAA,WACA,QAAA/J,EAAA,EAAmBA,EAAAu0I,GAAav0I,IAChCf,KAAA0T,KAAA3S,GAAAqkD,QAGAplD,KAAA45I,QAAAtE,GAAA,GAGAqE,EAAAz5I,UAAA01E,OAAA,SAAAwiE,GAEA,IADA,IAAAS,GAAA,EACA93I,EAAA,EAAmBA,EAAAu0I,GAAav0I,IAChC,IAAAf,KAAA0T,KAAA3S,GAAA60E,OAAAwiE,EAAA1kI,KAAA3S,IAAA,CACA83I,GAAA,EACA,MAGA,OAAAA,GAGAc,EAAAz5I,UAAAupC,KAAA,SAAA2uG,GACA,QAAAr3I,EAAA,EAAmBA,EAAAu0I,GAAav0I,IAChCf,KAAA0T,KAAA3S,GAAA0oC,KAAA2uG,EAAA1kI,KAAA3S,KAIA44I,EAAAz5I,UAAA+/B,QAAA,WAEA,IADA,IAAA64G,GAAA,EACA/3I,EAAA,EAAmBA,EAAAu0I,GAAav0I,IAChC,IAAAf,KAAA0T,KAAA3S,GAAAk/B,UAAA,CACA64G,GAAA,EACA,MAGA,OAAAA,GAGAa,EAAAz5I,UAAAi5I,UAAA,WACAn5I,KAAA0T,KAAA1T,KAAA45I,SACAT,aAGAQ,EAAAz5I,UAAAs5I,gBAAA,WACAx5I,KAAA0T,KAAA1T,KAAA45I,SACAJ,mBAQAG,EAAAz5I,UAAAk5I,WAAA,SAAAC,GACAr5I,KAAA0T,KAAA1T,KAAA45I,SACAR,WAAAC,IAGAM,EAAAz5I,UAAA45I,OAAA,SAAAj9F,GACA78C,KAAA0T,KAAA1T,KAAA45I,SACAF,aAAA78F,IAGA88F,EAAAz5I,UAAA+4I,WAAA,SAAAC,GACAl5I,KAAA0T,KAAA1T,KAAA45I,SACAX,WAAAC,IAGAS,EAAAz5I,UAAA64I,UAAA,SAAAC,GACAnC,GAAAr3I,IAAA,qBAAAw5I,GACAh5I,KAAA0T,KAAA1T,KAAA45I,SACAb,UAAAC,IAGAW,EAAAz5I,UAAA65I,OAAA,SAAAC,GACAnD,GAAAr3I,IAAA,oBAAA0N,KAAAE,UAAA4sI,IACA,IAAAC,EAAAD,EAAA/oI,IAAA,EAMA,GALAjR,KAAA65I,cAAAI,EAAAj6I,KAAA65I,aAAA,IACAI,EAAAj6I,KAAA65I,aAAA,GAIA75I,KAAA65I,cAAA75I,KAAA45I,UAAAK,EAAA,CAEA,QAAAl5I,EAAA,EAAqBA,EAAAu0I,GAAav0I,IAClCf,KAAA0T,KAAA3S,GAAAqkD,QAKA,IAAA80F,EAAAl6I,KAAA45I,QAAA,EAAA55I,KAAA65I,aAGAM,EAAAn6I,KAAAm6I,iBACA,GAAAA,EAAA,CACA,IAAAC,EAAAD,EAAAzmI,KAAAwmI,GAAAxK,aACA,GAAA0K,KAAAvD,GAAA70I,KACA,QAAA2kG,EAAA,EAA0BA,EAAA3mG,KAAA65I,aAAwBlzC,IAClD3mG,KAAA0T,KAAAumI,EAAAj6I,KAAA65I,aAAAlzC,EAAA,GAAAl9D,KAAA0wG,EAAAzmI,KAAAwmI,EAAAvzC,KAMA3mG,KAAA45I,QAAAK,EACA,IAAAhpI,EAAAjR,KAAA0T,KAAA1T,KAAA45I,SACA,UAAAI,EAAAzK,OAAA,CACA,IAAAA,EAAAyK,EAAAzK,OACA8K,EAAAtyI,KAAAE,IAAAsnI,EAAA,KACAt+H,EAAA8nI,UAAAiB,EAAAzK,QACAyK,EAAA7zI,MAAA8K,EAAAu+H,MAAA6K,GAAA9B,SAAAX,WAEA,IAAA/6F,GAAkB+6F,WAAAoC,EAAA7zI,MAAA0xI,UAAAmC,EAAAnC,UAAAC,QAAAkC,EAAAlC,QAAAC,WAAA,QAAAC,OAAA,GAClBh4I,KAAA85I,OAAAj9F,IAQA88F,EAAAz5I,UAAAo6I,WAAA,SAAAC,GACA1D,GAAAr3I,IAAA,oBAAA0N,KAAAE,UAAAmtI,IACAv6I,KAAAm5I,YACAn5I,KAAA85I,OAAAS,GACAv6I,KAAAo5I,WAAA,KAGAO,EAAAz5I,UAAAs6I,cAAA,SAAAC,GACAz6I,KAAA65I,aAAAY,GAGAd,EAAAz5I,UAAAw6I,OAAA,WACA,UAAA16I,KAAA65I,aAAA,CAIAhD,GAAAr3I,IAAA,OAAAQ,KAAA26I,kBACA,IAAAT,EAAAl6I,KAAA45I,QAAA,EAAA55I,KAAA65I,aACAe,EAAA56I,KAAA0T,KAAApS,OAAA44I,EAAA,MACAU,EAAAx1F,QACAplD,KAAA0T,KAAApS,OAAAtB,KAAA45I,QAAA,EAAAgB,GACA/D,GAAAr3I,IAAA,0BARAq3I,GAAAr3I,IAAA,iDAiBAm6I,EAAAz5I,UAAAy6I,eAAA,SAAAE,GACAA,MAAA,EAIA,IAHA,IAAAC,KACAzpG,EAAA,GACA0pG,GAAA,EACAh6I,EAAA,EAAmBA,EAAAu0I,GAAav0I,IAAA,CAChC,IAAAi6I,EAAAh7I,KAAA0T,KAAA3S,GAAA04I,gBACAuB,IACAD,EAAAh6I,EAAA,EACA85I,EACAC,EAAAv5I,KAAA,OAAAw5I,EAAA,MAAAC,EAAA,KAEAF,EAAAv5I,KAAAy5I,EAAAx5D,SAWA,OAPAs5D,EAAA75I,OAAA,IAEAowC,EADAwpG,EACA,IAAAC,EAAA10I,KAAA,WAEA00I,EAAA10I,KAAA,OAGAirC,GAGAsoG,EAAAz5I,UAAA+6I,iBAAA,WACA,OAAAj7I,KAAA0T,MAGAimI,EAjMA,GAsMAuB,GAAA,WACA,SAAAA,EAAAC,EAAAC,GACAzL,GAAA3vI,KAAAk7I,GAEAl7I,KAAAq7I,KAAAF,EACAn7I,KAAAo7I,eACAp7I,KAAAq4H,KAAA,KACAr4H,KAAAs7I,QAAA,EACAt7I,KAAAu7I,gBAAA,IAAA5B,GACA35I,KAAAw7I,mBAAA,IAAA7B,GACA35I,KAAAm6I,iBAAA,IAAAR,GACA35I,KAAAy7I,cAAAz7I,KAAAu7I,gBAAA7nI,KAAA4hI,GAAA,GACAt1I,KAAA07I,YAAA17I,KAAAu7I,gBACAv7I,KAAAq4H,KAAA,KACAr4H,KAAA0vI,aAAA,KAgOA,OA7NAwL,EAAAh7I,UAAA4K,MAAA,WACA9K,KAAAq4H,KAAA,KACAr4H,KAAAu7I,gBAAAzwI,QACA9K,KAAAw7I,mBAAA1wI,QACA9K,KAAAm6I,iBAAArvI,QACA9K,KAAAy7I,cAAAz7I,KAAAu7I,gBAAA7nI,KAAA4hI,GAAA,GACAt1I,KAAA07I,YAAA17I,KAAAu7I,gBACAv7I,KAAAq4H,KAAA,KACAr4H,KAAA0vI,aAAA,KACA1vI,KAAA27I,eAAA,MAGAT,EAAAh7I,UAAA07I,WAAA,WACA,OAAA57I,KAAAo7I,cAGAF,EAAAh7I,UAAA27I,WAAA,SAAAC,GACA97I,KAAAo7I,aAAAU,GAGAZ,EAAAh7I,UAAA65I,OAAA,SAAAC,GACAh6I,KAAA07I,YAAA3B,OAAAC,IAGAkB,EAAAh7I,UAAAo6I,WAAA,SAAAC,GACAv6I,KAAA07I,YAAApB,WAAAC,IAGAW,EAAAh7I,UAAA67I,QAAA,SAAAC,GACAA,IAAAh8I,KAAAq4H,OAIAr4H,KAAAq4H,KAAA2jB,EACAnF,GAAAr3I,IAAA,eAAAw8I,GACA,gBAAAh8I,KAAAq4H,KACAr4H,KAAA07I,YAAA17I,KAAAw7I,oBAEAx7I,KAAA07I,YAAA17I,KAAAu7I,gBACAv7I,KAAA07I,YAAA5wI,SAEA,iBAAA9K,KAAAq4H,OACAr4H,KAAAu7I,gBAAA1B,aAAA,KACA75I,KAAAw7I,mBAAA3B,aAAA,MAEA75I,KAAAq4H,KAAA2jB,IAGAd,EAAAh7I,UAAA+7I,YAAA,SAAAzM,GACA,QAAAzuI,EAAA,EAAmBA,EAAAyuI,EAAAvuI,OAAkBF,IACrCf,KAAA07I,YAAAtC,WAAA5J,EAAAzuI,IAGA,IAAAm7I,EAAAl8I,KAAA07I,cAAA17I,KAAAu7I,gBAAA,kBACA1E,GAAAr3I,IAAA,OAAA08I,EAAA,KAAAl8I,KAAA07I,YAAAf,gBAAA,IACA,kBAAA36I,KAAAq4H,MAAA,iBAAAr4H,KAAAq4H,OACAwe,GAAAr3I,IAAA,qBAAAQ,KAAAu7I,gBAAAZ,gBAAA,IACA36I,KAAAm8I,qBAIAjB,EAAAh7I,UAAAk8I,MAAA,WAEAvF,GAAAr3I,IAAA,uCACAQ,KAAA+7I,QAAA,gBAGAb,EAAAh7I,UAAAm8I,KAAA,WAEAxF,GAAAr3I,IAAA,yBACA,cAAAQ,KAAAq4H,OAIAr4H,KAAA07I,YAAAvC,YACAn5I,KAAA07I,cAAA17I,KAAAu7I,iBACAv7I,KAAAm8I,qBAIAjB,EAAAh7I,UAAAo8I,MAAA,aAIApB,EAAAh7I,UAAAq8I,MAAA,aAIArB,EAAAh7I,UAAAs8I,MAAA,WAEA3F,GAAAr3I,IAAA,oCACAQ,KAAA07I,YAAAlC,kBACAx5I,KAAAm8I,oBAGAjB,EAAAh7I,UAAAu8I,KAAA,SAAAhC,GAEA5D,GAAAr3I,IAAA,aAAAi7I,EAAA,eACAz6I,KAAA07I,YAAA17I,KAAAu7I,gBACAv7I,KAAA+7I,QAAA,gBACA/7I,KAAA07I,YAAAlB,cAAAC,IAGAS,EAAAh7I,UAAAw8I,MAAA,WAEA7F,GAAAr3I,IAAA,yBACAQ,KAAA07I,YAAA5B,QAA6B9B,OAAA,KAG7BkD,EAAAh7I,UAAAy8I,MAAA,WAEA9F,GAAAr3I,IAAA,yCACAQ,KAAA+7I,QAAA,kBAGAb,EAAAh7I,UAAA08I,KAAA,WAEA/F,GAAAr3I,IAAA,aACAQ,KAAA+7I,QAAA,cAGAb,EAAAh7I,UAAA28I,MAAA,WAEAhG,GAAAr3I,IAAA,cACAQ,KAAA+7I,QAAA,cAGAb,EAAAh7I,UAAA48I,MAAA,WAEAjG,GAAAr3I,IAAA,uCACAQ,KAAAu7I,gBAAAzwI,QACA9K,KAAAm8I,kBAAA,IAGAjB,EAAAh7I,UAAA68I,KAAA,WAEAlG,GAAAr3I,IAAA,wBACAQ,KAAA07I,YAAAhB,SACA16I,KAAAm8I,kBAAA,IAGAjB,EAAAh7I,UAAA88I,MAAA,WAEAnG,GAAAr3I,IAAA,2CACAQ,KAAAw7I,mBAAA1wI,SAGAowI,EAAAh7I,UAAA+8I,MAAA,WAGA,GADApG,GAAAr3I,IAAA,+BACA,gBAAAQ,KAAAq4H,KAAA,CACA,IAAA3oD,EAAA1vE,KAAAu7I,gBACAv7I,KAAAu7I,gBAAAv7I,KAAAw7I,mBACAx7I,KAAAw7I,mBAAA9rE,EACA1vE,KAAA07I,YAAA17I,KAAAw7I,mBACA3E,GAAAr3I,IAAA,gBAAAQ,KAAAu7I,gBAAAZ,kBAEA36I,KAAAm8I,kBAAA,IAGAjB,EAAAh7I,UAAAg9I,KAAA,SAAAC,GAEAtG,GAAAr3I,IAAA,aAAA29I,EAAA,kBACAn9I,KAAA07I,YAAAzC,WAAAkE,IAGAjC,EAAAh7I,UAAAk9I,SAAA,SAAAC,GAEA,IAAAxgG,GAAkBm7F,OAAA,GAGlB,GAFAn7F,EAAAg7F,UAAAwF,EAAA,KACAxgG,EAAAi7F,QAAAuF,GAAA,GACAxgG,EAAAi7F,QAKAj7F,EAAA+6F,WAAA,YALA,CACA,IAAA0F,EAAAv1I,KAAAkwC,MAAAolG,EAAA,MAEAxgG,EAAA+6F,YADA,wDACA0F,GAIAzG,GAAAr3I,IAAA,kBAAA0N,KAAAE,UAAAyvC,IACA78C,KAAA07I,YAAA5B,OAAAj9F,IAGAq+F,EAAAh7I,UAAAi8I,iBAAA,WACA,IAAAoB,EAAAz4I,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA2jF,EAAAouD,GAAA70I,KACA,OAAAymF,GAIAzoF,KAAAo7I,eACA,OAAAp7I,KAAA0vI,cAAA1vI,KAAAu7I,gBAAAt7G,UAIAjgC,KAAAu7I,gBAAA3lE,OAAA51E,KAAAm6I,oBACAn6I,KAAAo7I,aAAApwC,SACAhrG,KAAAo7I,aAAApwC,OAAAhrG,KAAA0vI,aAAAjnD,EAAAzoF,KAAAm6I,mBACA,IAAAoD,GAAAv9I,KAAAo7I,aAAAoC,aACAx9I,KAAAo7I,aAAAoC,eAGAx9I,KAAA0vI,aAAA1vI,KAAAu7I,gBAAAt7G,UAAA,KAAAwoD,GATAzoF,KAAA0vI,aAAAjnD,EAYAzoF,KAAAm6I,iBAAA1wG,KAAAzpC,KAAAu7I,mBAIAL,EAAAh7I,UAAAu9I,eAAA,SAAAh1D,GACAzoF,KAAAo7I,eACAp7I,KAAAu7I,gBAAAt7G,YACAjgC,KAAAo7I,aAAApwC,QACAhrG,KAAAo7I,aAAApwC,OAAAhrG,KAAA0vI,aAAAjnD,EAAAzoF,KAAAu7I,iBAGAv7I,KAAA0vI,aAAAjnD,KAKAyyD,EA9OA,GA8lBAwC,GA7WA,WACA,SAAAC,EAAAC,EAAAC,EAAAC,GACAnO,GAAA3vI,KAAA29I,GAEA39I,KAAA49I,SAAA,EACA59I,KAAA+9I,SAAAF,EAAAC,GACA99I,KAAAg+I,UAAA,IAAA9C,GAAA,EAAA2C,GAAA,IAAA3C,GAAA,EAAA4C,IACA99I,KAAAi+I,UAAA,EACAj+I,KAAAk+I,SAAA,KACAl+I,KAAAm+I,SAAA,KACAn+I,KAAAo+I,gBACAp+I,KAAAkxD,UAAA,KACAlxD,KAAAklI,SAAA,KACAllI,KAAAq+I,cAAyB9oH,QAAA,EAAA8jH,KAAA,EAAAt0G,IAAA,EAAAqzG,MAAA,GA6VzB,OA1VAuF,EAAAz9I,UAAA07I,WAAA,SAAAhvI,GACA,OAAA5M,KAAAg+I,SAAApxI,GAAAgvI,cAGA+B,EAAAz9I,UAAA27I,WAAA,SAAAjvI,EAAAkvI,GACA97I,KAAAg+I,SAAApxI,GAAAivI,WAAAC,IAQA6B,EAAAz9I,UAAAo+I,QAAA,SAAA71D,EAAA81D,GACA,IAAAC,OAAA,EACAjpI,OAAA,EACAC,OAAA,EACAipI,GAAA,EAEAz+I,KAAAklI,SAAAz8C,EACAouD,GAAAQ,QAAA5uD,GAEA,QAAA1nF,EAAA,EAAmBA,EAAAw9I,EAAAt9I,OAAqBF,GAAA,EAGxC,GAFAwU,EAAA,IAAAgpI,EAAAx9I,GACAyU,EAAA,IAAA+oI,EAAAx9I,EAAA,GACA,IAAAwU,GAAA,IAAAC,EAAA,CAmBA,GAfAqhI,GAAAr3I,IAAA,WAAAg4I,IAAA+G,EAAAx9I,GAAAw9I,EAAAx9I,EAAA,cAAAy2I,IAAAjiI,EAAAC,IAAA,MAEAgpI,EAAAx+I,KAAA0+I,SAAAnpI,EAAAC,MAEAgpI,EAAAx+I,KAAA2+I,YAAAppI,EAAAC,IAGAgpI,IACAA,EAAAx+I,KAAA4+I,SAAArpI,EAAAC,IAGAgpI,IACAA,EAAAx+I,KAAA6+I,0BAAAtpI,EAAAC,KAGAgpI,EAEA,GADAC,EAAAz+I,KAAA8+I,WAAAvpI,EAAAC,GAEA,GAAAxV,KAAAi+I,UAAAj+I,KAAAi+I,UAAA,EACAj+I,KAAAg+I,SAAAh+I,KAAAi+I,SAAA,GACAhC,YAAAwC,QAEA5H,GAAAr3I,IAAA,8CAIAg/I,EACAx+I,KAAAq+I,aAAAt5G,KAAA,EACO05G,EACPz+I,KAAAq+I,aAAAhF,MAAA,GAEAr5I,KAAAq+I,aAAAjG,OAAA,EACAvB,GAAAr3I,IAAA,yCAAAg4I,IAAAjiI,EAAAC,IAAA,UAAAgiI,IAAA+G,EAAAx9I,GAAAw9I,EAAAx9I,EAAA,YAnCAf,KAAAq+I,aAAA9oH,SAAA,GA8CAooH,EAAAz9I,UAAAw+I,SAAA,SAAAnpI,EAAAC,GACA,IAAA6lI,EAAA,KAIA,MAFA,KAAA9lI,GAAA,KAAAA,IAAAC,GAAA,IAAAA,GAAA,QACA,KAAAD,GAAA,KAAAA,IAAAC,GAAA,IAAAA,GAAA,IAEA,SAGA,GAAAD,IAAAvV,KAAAk+I,UAAA1oI,IAAAxV,KAAAm+I,SAIA,OAHAn+I,KAAAk+I,SAAA,KACAl+I,KAAAm+I,SAAA,KACAtH,GAAAr3I,IAAA,6BAAAg4I,IAAAjiI,EAAAC,IAAA,iBACA,EAIA6lI,EADA,KAAA9lI,GAAA,KAAAA,EACA,EAEA,EAGA,IAAAwpI,EAAA/+I,KAAAg+I,SAAA3C,EAAA,GA2CA,OAzCA,KAAA9lI,GAAA,KAAAA,EACA,KAAAC,EACAupI,EAAA3C,QACO,KAAA5mI,EACPupI,EAAA1C,OACO,KAAA7mI,EACPupI,EAAAzC,QACO,KAAA9mI,EACPupI,EAAAxC,QACO,KAAA/mI,EACPupI,EAAAvC,QACO,KAAAhnI,EACPupI,EAAAtC,KAAA,GACO,KAAAjnI,EACPupI,EAAAtC,KAAA,GACO,KAAAjnI,EACPupI,EAAAtC,KAAA,GACO,KAAAjnI,EACPupI,EAAArC,QACO,KAAAlnI,EACPupI,EAAApC,QACO,KAAAnnI,EACPupI,EAAAnC,OACO,KAAApnI,EACPupI,EAAAlC,QACO,KAAArnI,EACPupI,EAAAjC,QACO,KAAAtnI,EACPupI,EAAAhC,OACO,KAAAvnI,EACPupI,EAAA/B,QACO,KAAAxnI,GACPupI,EAAA9B,QAIA8B,EAAA7B,KAAA1nI,EAAA,IAEAxV,KAAAk+I,SAAA3oI,EACAvV,KAAAm+I,SAAA3oI,EACAxV,KAAAi+I,SAAA5C,GACA,GASAsC,EAAAz9I,UAAAy+I,YAAA,SAAAppI,EAAAC,GACA,IAAA6lI,EAAA,KAEA,YAAA9lI,GAAA,KAAAA,IAAAC,GAAA,IAAAA,GAAA,MAEA6lI,EADA,KAAA9lI,EACA,EAEA,KAGAvV,KAAAi+I,UACApH,GAAAr3I,IAAA,+CACA,IAEAQ,KAAAg+I,SAAA3C,EAAA,GACA+B,SAAA5nI,GACAqhI,GAAAr3I,IAAA,mBAAAg4I,IAAAjiI,EAAAC,IAAA,MACA,KAUAmoI,EAAAz9I,UAAA0+I,SAAA,SAAArpI,EAAAC,GACA,IAAA6lI,EACApqI,EAAA,KAIA,MAFAsE,GAAA,IAAAA,GAAA,IAAAA,GAAA,IAAAA,GAAA,KAAAC,GAAA,IAAAA,GAAA,SACA,KAAAD,GAAA,KAAAA,IAAAC,GAAA,IAAAA,GAAA,IAEA,SAGA,GAAAD,IAAAvV,KAAAk+I,UAAA1oI,IAAAxV,KAAAm+I,SAGA,OAFAn+I,KAAAk+I,SAAA,KACAl+I,KAAAm+I,SAAA,MACA,EAGA9C,EAAA9lI,GAAA,OAGAtE,EADAuE,GAAA,IAAAA,GAAA,GACA,IAAA6lI,EAAA7F,GAAAjgI,GAAA2gI,GAAA3gI,GAGA,IAAA8lI,EAAApF,GAAA1gI,GAAAohI,GAAAphI,GAEA,IAAAykI,EAAAh6I,KAAAg/I,aAAA/tI,EAAAuE,GAMA,OALAxV,KAAAg+I,SAAA3C,EAAA,GACAtB,OAAAC,GACAh6I,KAAAk+I,SAAA3oI,EACAvV,KAAAm+I,SAAA3oI,EACAxV,KAAAi+I,SAAA5C,GACA,GASAsC,EAAAz9I,UAAA8+I,aAAA,SAAA/tI,EAAAmkI,GACA,IAAA6J,EAAA7J,EACA4E,GAAmB7zI,MAAA,KAAA2xI,SAAA,EAAAvI,OAAA,KAAAsI,WAAA,EAAA5mI,OAiBnB,OAdAguI,EADA7J,EAAA,GACAA,EAAA,GAEAA,EAAA,GAGA4E,EAAAnC,UAAA,MAAAoH,GACAA,GAAA,GACAjF,EAAA7zI,OAAA,gEAAA4B,KAAAkwC,MAAAgnG,EAAA,IACKA,GAAA,IACLjF,EAAAlC,SAAA,EACAkC,EAAA7zI,MAAA,SAEA6zI,EAAAzK,OAAA,EAAAxnI,KAAAkwC,OAAAgnG,EAAA,OAEAjF,GASA2D,EAAAz9I,UAAA4+I,WAAA,SAAAvpI,EAAAC,GACA,IAAA0pI,EAAA,KACAC,EAAA,KACAC,EAAA,KASA,GAPA7pI,GAAA,IACA2pI,EAAA,EACAE,EAAA7pI,EAAA,IAEA2pI,EAAA,EACAE,EAAA7pI,GAEA6pI,GAAA,IAAAA,GAAA,IAEA,IAAAC,EAAA7pI,EAEA6pI,EADA,KAAAD,EACA5pI,EAAA,GACO,KAAA4pI,EACP5pI,EAAA,IAEAA,EAAA,IAGAqhI,GAAAr3I,IAAA,wBAAA21I,GAAAkK,GAAA,gBAAAH,GACAC,GAAAE,QACK9pI,GAAA,IAAAA,GAAA,MACL4pI,EAAA,IAAA3pI,GAAAD,MAAAC,IAEA,GAAA2pI,EAAA,CACA,IAAAG,EAAA9H,GAAA2H,GACAtI,GAAAr3I,IAAA,yBAAA8/I,EAAAl5I,KAAA,MACApG,KAAAk+I,SAAA,KACAl+I,KAAAm+I,SAAA,KAEA,OAAAgB,GASAxB,EAAAz9I,UAAA2+I,0BAAA,SAAAtpI,EAAAC,GACA,IAEA6lI,EAFAd,OAAA,EACA3tI,OAAA,EAMA,QAFA,KAAA2I,GAAA,KAAAA,IAAAC,GAAA,IAAAA,GAAA,KACA,KAAAD,GAAA,KAAAA,IAAAC,GAAA,IAAAA,GAAA,MAKA+kI,KACA,KAAAhlI,GAAA,KAAAA,GACA3I,EAAA7E,KAAAkwC,OAAAziC,EAAA,OACA+kI,EAAAxC,WAAAnB,GAAAhqI,GACA4I,EAAA,OACA+kI,EAAAxC,WAAAwC,EAAAxC,WAAA,UAEK,KAAAviI,EACL+kI,EAAAxC,WAAA,eAEAwC,EAAA3C,WAAA,QACA,KAAApiI,IACA+kI,EAAA1C,WAAA,IAGAwD,EAAA9lI,EAAA,OACAvV,KAAAg+I,SAAA3C,EAAA,GACAf,WAAAC,GACAv6I,KAAAk+I,SAAA,KACAl+I,KAAAm+I,SAAA,MACA,IAQAR,EAAAz9I,UAAA4K,MAAA,WACA,QAAA/J,EAAA,EAAmBA,EAAAf,KAAAg+I,SAAA/8I,OAA0BF,IAC7Cf,KAAAg+I,SAAAj9I,IACAf,KAAAg+I,SAAAj9I,GAAA+J,QAGA9K,KAAAk+I,SAAA,KACAl+I,KAAAm+I,SAAA,MAQAR,EAAAz9I,UAAAu9I,eAAA,SAAAh1D,GACA,QAAA1nF,EAAA,EAAmBA,EAAAf,KAAAg+I,SAAA/8I,OAA0BF,IAC7Cf,KAAAg+I,SAAAj9I,IACAf,KAAAg+I,SAAAj9I,GAAA08I,eAAAh1D,IAKAk1D,EA1WA,GAiXA,IAiCA4B,GAjCA,WACA,SAAAC,EAAAC,EAAAltB,IAHA,SAAAhzE,EAAAqjC,GAA+D,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAIzG07F,CAAA1/I,KAAAw/I,GAEAx/I,KAAAy/I,qBACAz/I,KAAAuyH,YACAvyH,KAAAkxD,UAAA,KACAlxD,KAAAsqG,QAAA,KACAtqG,KAAAk8I,OAAA,KAsBA,OAnBAsD,EAAAt/I,UAAAs9I,YAAA,WACA,OAAAx9I,KAAAkxD,YAIAlxD,KAAAy/I,mBAAAE,QAAA3/I,KAAAuyH,UAAAvyH,KAAAkxD,UAAAlxD,KAAAsqG,QAAAtqG,KAAAk8I,QACAl8I,KAAAkxD,UAAA,OAGAsuF,EAAAt/I,UAAA8qG,OAAA,SAAA95C,EAAAo5C,EAAA4xC,IACA,OAAAl8I,KAAAkxD,WAAAlxD,KAAAkxD,eACAlxD,KAAAkxD,aAGAlxD,KAAAsqG,UACAtqG,KAAAk8I,SACAl8I,KAAAy/I,mBAAAG,oBAAA5/I,KAAAuyH,YAGAitB,EA9BA,GAwCAK,GAAA,SAAAC,EAAAC,EAAA3xI,GACA,OAAA0xI,EAAA/qC,OAAA3mG,GAAA,EAAA2xI,EAAA9+I,UAAA8+I,GAqBA1iG,GAAA,SAAAhM,GAGA,IAFA,IAAAgM,EAAA,KACAt8C,EAAAswC,EAAApwC,OACAF,GACAs8C,EAAA,GAAAA,EAAAhM,EAAAmwD,aAAAzgG,GAGA,OAAAs8C,IAAA,GAAAz1C,YA0IAo4I,IA9GA7yI,MAAA,SAAA8yI,EAAAC,EAAAC,EAAArpC,EAAAspC,EAAAC,GAEA,IAEAC,EAAA12I,OAAA4oF,GAAA,EAAA5oF,CAAA,IAAAw6E,WAAA67D,IAAAz+D,OAAAj5E,QAFA,mBAEA,MAAA1H,MAAA,MAEA0/I,EAAA,YACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAhpB,KACAipB,OAAA,EACAC,GAAA,EAIAC,EAAA,IAAAzR,GAEAyR,EAAA3R,MAAA,SAAAxW,GAEA,IAAAooB,EAAAX,EAAArpC,GACAiqC,EAAAZ,EAAAn6B,SAGA86B,KAAAE,WACAtzI,IAAA+yI,EAEAM,EAAAZ,EAAAn6B,SAAA86B,EAAAt+I,MApDA,SAAA29I,EAAArpC,EAAA4pC,GACA,IAAAI,EAAAX,EAAArpC,GACAmqC,EAAAd,EAAAW,EAAAG,QAIA,IAAAA,MAAAD,KAAAF,EAAAE,IAGA,OAFAb,EAAAn6B,SAAAm6B,EAAAe,mBAAAJ,EAAAt+I,WACAs+I,EAAAE,KAAA,GAMA,KAAAC,KAAAD,KACAb,EAAAn6B,UAAA86B,EAAAt+I,MAAAy+I,EAAAz+I,MACAs+I,EAAAE,KAAA,EAEAC,EAAAd,GADAW,EAAAG,GACAA,QAGAd,EAAAe,mBAAAR,EAiCAS,CAAAhB,EAAArpC,EAAA4pC,IAIAA,IAEAK,EAAAL,EAAAP,EAAAn6B,SAAAm6B,EAAAe,oBAGAxoB,EAAAxnE,WAAA6vF,EAAAN,EACA/nB,EAAApuB,SAAAy2C,EAAAN,EAIA/nB,EAAAh3H,GAAA27C,GAAAq7E,EAAAxnE,UAAAtpD,YAAAy1C,GAAAq7E,EAAApuB,QAAA1iG,YAAAy1C,GAAAq7E,EAAArnF,MAGAqnF,EAAArnF,KAAA67F,mBAAAC,mBAAAzU,EAAArnF,OACAqnF,EAAApuB,QAAA,GACAotB,EAAAn2H,KAAAm3H,IAIAmoB,EAAAO,eAAA,SAAAj9I,GACAw8I,EAAAx8I,GAGA08I,EAAA1R,QAAA,WACAwR,GAAAN,EACAA,EAAAM,GAGAP,EAAA1oB,IAIA4oB,EAAAx2I,QAAA,SAAArE,GACA,GAAAm7I,EAAA,CAEA,GAAAf,GAAAp6I,EAAA,qBAEAm7I,GAAA,EAEAn7I,EAAAsvG,OAAA,IAAAl0G,MAAA,KAAAiJ,QAAA,SAAAw6E,GACAu7D,GAAAv7D,EAAA,UACAi8D,EAAAj8D,EAAAywB,OAAA,GACa8qC,GAAAv7D,EAAA,aACbk8D,EAAA5mE,SAAA0K,EAAAywB,OAAA,OAGA,IAKAyrC,GAFAN,IAAA,EAAAA,EAAA,WAAAA,EAvIAmB,EA2IAd,EA1IApS,EAAAv0D,SAAAynE,EAAAtsC,QAAA,IACAusC,EAAA1nE,SAAAynE,EAAAtsC,QAAA,MACAwsC,EAAA3nE,SAAAynE,EAAAtsC,QAAA,MACAysC,EAAAH,EAAApgJ,OAAA,EAAA24E,SAAAynE,EAAAtsC,OAAA,EAAAssC,EAAAvhJ,QAAA,SAuIA2gJ,GArIA72I,OAAA6mF,EAAA,EAAA7mF,CAAAukI,IAAAvkI,OAAA6mF,EAAA,EAAA7mF,CAAA03I,IAAA13I,OAAA6mF,EAAA,EAAA7mF,CAAA23I,IAAA33I,OAAA6mF,EAAA,EAAA7mF,CAAA43I,IAIArT,GAAA,IAAAmT,EACAnT,GAAA,IAAAoT,EACApT,GAAA,KAAAqT,IALA,GAoIA,IAEAd,EAAAF,EAAA,KAEA,IAAAC,IACAE,EAAA,IAAAthF,MAAA,8BAAA55D,IAEW,MAAAtB,GACXw8I,EAAA,IAAAthF,MAAA,8BAAA55D,GAGA,OACS,KAAAA,IACTm7I,GAAA,GAxJA,IAAAS,EACAlT,EACAmT,EACAC,EACAC,EAwJAX,EAAA1zI,MAAA1H,EAAA,QAGAo7I,EAAAryF,UAgCA,IAsVAizF,GAtVA,SAAA7oC,GAGA,SAAA8oC,EAAAn2C,IA7BA,SAAAhsD,EAAAqjC,GAAqE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCA8B/G29F,CAAA3hJ,KAAA0hJ,GAEA,IAAA7kI,EA9BA,SAAA1Q,EAAAT,GAAqE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EA8B3Kk2I,CAAA5hJ,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAkiE,gBAAAliE,EAAA,EAAAoiE,gBAAApiE,EAAA,EAAAwkE,sBAAAxkE,EAAA,EAAAskE,eAAAtkE,EAAA,EAAA8iE,iBAAA9iE,EAAA,EAAA+iE,gBAAA/iE,EAAA,EAAAqkE,YAAArkE,EAAA,EAAAijE,gBAAAjjE,EAAA,EAAAikE,iBAwBA,GAtBA3gE,EAAA0uF,MACA1uF,EAAAmjC,OAAAurD,EAAAvrD,OACAnjC,EAAAglI,SAAA,EACAhlI,EAAAilI,KAAAv2C,EAAAvrD,OAAA+hG,WACAllI,EAAAq7G,cACAr7G,EAAAswE,UACAtwE,EAAAmlI,oBACAnlI,EAAA8vE,aAAAj/E,EACAmP,EAAAolI,aACAplI,EAAAqlI,kBAEArlI,EAAAslI,oBACAC,YACA3vI,MAAAoK,EAAAmjC,OAAAqiG,wBACAC,aAAAzlI,EAAAmjC,OAAAuiG,gCAEAC,YACA/vI,MAAAoK,EAAAmjC,OAAAyiG,wBACAH,aAAAzlI,EAAAmjC,OAAA0iG,iCAIA7lI,EAAAmjC,OAAA2iG,qBAAA,CACA,IAAAC,EAAA,IAAArD,GAAA1iI,EAAA,cACAgmI,EAAA,IAAAtD,GAAA1iI,EAAA,cAEAA,EAAAimI,aAAA,IAAApF,GAAA,EAAAkF,EAAAC,GAEA,OAAAhmI,EA+SA,OAzWA,SAAAq8F,EAAAC,GAA8D,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAuBzY4pC,CAAArB,EAAA9oC,GAsCA8oC,EAAAxhJ,UAAAy/I,QAAA,SAAAptB,EAAArhE,EAAAo5C,EAAA4xC,GAIA,IAFA,IA7CAzrG,EAAA5C,EAAA6C,EAAA5C,EA6CAk1G,EAAAhjJ,KAAAiiJ,UACAgB,GAAA,EACAliJ,EAAAiiJ,EAAA/hJ,OAA+BF,KAAK,CACpC,IAAAmiJ,EAAAF,EAAAjiJ,GACAoiJ,GAjDA1yG,EAiDAyyG,EAAA,GAjDAr1G,EAiDAq1G,EAAA,GAjDAxyG,EAiDAwgB,EAjDApjB,EAiDAw8D,EAhDAviG,KAAAC,IAAA6lC,EAAAC,GAAA/lC,KAAAE,IAAAwoC,EAAAC,IAiDA,GAAAyyG,GAAA,IACAD,EAAA,GAAAn7I,KAAAC,IAAAk7I,EAAA,GAAAhyF,GACAgyF,EAAA,GAAAn7I,KAAAE,IAAAi7I,EAAA,GAAA54C,GACA24C,GAAA,EACAE,GAAA74C,EAAAp5C,GAAA,IACA,OAIA+xF,GACAD,EAAAzhJ,MAAA2vD,EAAAo5C,IAGAtqG,KAAA8hJ,KAAA92C,OAAAhrG,KAAAkiJ,eAAA3vB,GAAArhE,EAAAo5C,EAAA4xC,IAMAwF,EAAAxhJ,UAAAwpI,eAAA,SAAA54H,GACA,IAAAoN,EAAAle,UAEA,IAAAA,KAAA2sF,UACA3sF,KAAA2sF,QAAA77E,EAAA67E,SAKA3sF,KAAAgiJ,iBAAA/gJ,SACAjB,KAAAgiJ,iBAAAl4I,QAAA,SAAA2yF,GACAv+E,EAAAijG,aAAA1kB,KAEAz8F,KAAAgiJ,sBAIAN,EAAAxhJ,UAAAkjJ,iBAAA,SAAA7wB,GACA,IAAAvc,EAAAh2G,KAAAg2G,MAEA,GAAAA,EACA,QAAAj1G,EAAA,EAAqBA,EAAAi1G,EAAAkiB,WAAAj3H,OAA6BF,IAAA,CAClD,IAAAk7F,EAAA+Z,EAAAkiB,WAAAn3H,GACA,GAAAk7F,EAAAs2B,GACA,OAAAt2B,EAIA,aAGAylD,EAAAxhJ,UAAA0/I,oBAAA,SAAArtB,GACA,IAAA8wB,EAAArjJ,KAAAmiJ,mBAAA5vB,GACA9/G,EAAA4wI,EAAA5wI,MACA6vI,EAAAe,EAAAf,aAEAJ,EAAAliJ,KAAAkiJ,eACA,IAAAA,EAAA3vB,GAAA,CAEA,IAAA+wB,EAAAtjJ,KAAAojJ,iBAAA7wB,GACA,GAAA+wB,EAQApB,EAAA3vB,GAAA+wB,EACA7rB,GAAAyqB,EAAA3vB,IACA4E,GAAA+qB,EAAA3vB,GAAAvyH,KAAAg2G,WAVA,CACA,IAAA/Z,EAAAj8F,KAAAujJ,gBAAA,WAAA9wI,EAAA6vI,GACArmD,IAEAA,EAAAs2B,IAAA,EACA2vB,EAAA3vB,GAAAt2B,MAUAylD,EAAAxhJ,UAAAqjJ,gBAAA,SAAAj5I,EAAAmI,EAAA+jG,GACA,IAAAR,EAAAh2G,KAAAg2G,MACA,GAAAA,EACA,OAAAA,EAAAmiB,aAAA7tH,EAAAmI,EAAA+jG,IAIAkrC,EAAAxhJ,UAAAi/C,QAAA,WACAksD,EAAAnrG,UAAAi/C,QAAAzzC,KAAA1L,OAGA0hJ,EAAAxhJ,UAAAs/H,iBAAA,SAAA1uH,GACA9Q,KAAAg2G,MAAAllG,EAAAklG,MACAh2G,KAAAwjJ,gBAGA9B,EAAAxhJ,UAAAgxH,iBAAA,WACA,IAAAgxB,EAAAliJ,KAAAkiJ,eAEAt4I,OAAAC,KAAAq4I,GAAAp4I,QAAA,SAAAyoH,GACAkF,GAAAyqB,EAAA3vB,WACA2vB,EAAA3vB,MAIAmvB,EAAAxhJ,UAAAk6G,kBAAA,WACAp6G,KAAAyjJ,QAAA,EACAzjJ,KAAAihJ,QAAA,EACAjhJ,KAAAmgJ,QAAmBn6B,SAAA,EAAAk7B,mBAAA,GACnBlhJ,KAAAwjJ,gBAGA9B,EAAAxhJ,UAAAsjJ,aAAA,WAEA,IAAAxtC,EAAAh2G,KAAAg2G,MACA,GAAAA,EAAA,CACA,IAAAkiB,EAAAliB,EAAAkiB,WACA,GAAAA,EACA,QAAAn3H,EAAA,EAAuBA,EAAAm3H,EAAAj3H,OAAuBF,IAC9C02H,GAAAS,EAAAn3H,MAMA2gJ,EAAAxhJ,UAAAk1H,iBAAA,SAAAtkH,GACA,IAAAkO,EAAAhf,KAOA,GALAA,KAAAk4H,cACAl4H,KAAAgiJ,iBAAAhiJ,KAAAgiJ,qBACAhiJ,KAAA2sF,aAAAj/E,EACA1N,KAAAiiJ,aAEAjiJ,KAAAggD,OAAA0jG,aAAA,CACA1jJ,KAAAmtF,OAAAr8E,EAAA4rG,cACA,IAAAinC,EAAA3jJ,KAAAg2G,MAAAh2G,KAAAg2G,MAAAkiB,cAEAl4H,KAAAmtF,OAAArjF,QAAA,SAAAmnF,EAAArkF,GACA,IAAAqvF,OAAA,EACA,GAAArvF,EAAA+2I,EAAA1iJ,OAAA,CACA,IAAA2iJ,EAAAD,EAAA/2I,IA5LA,SAAAg3I,EAAAC,GACA,OAAAD,KAAAnxI,QAAAoxI,EAAAjhJ,QAAAghJ,EAAAxB,YAAAwB,EAAApB,aA6LAsB,CAAAF,EAAA3yD,KACAgL,EAAA2nD,GAGA3nD,IACAA,EAAAj9E,EAAAukI,gBAAA,YAAAtyD,EAAAruF,KAAAquF,EAAAulB,OAGAvlB,EAAAl4E,QACAkjF,EAAAo8B,KAAAr5G,EAAAusF,IAAAw4C,gBAAA,mBAEA9nD,EAAAo8B,KAAA,WAGAr5G,EAAAk5G,WAAA32H,KAAA06F,OAKAylD,EAAAxhJ,UAAA8jJ,iBAAA,WACAhkJ,KAAA6hJ,QAAA,SAAA7hJ,KAAAurG,IAAAwmB,aAAAkyB,gBAGAvC,EAAAxhJ,UAAAihH,aAAA,SAAArwG,GACA,IAAA2rF,EAAA3rF,EAAA2rF,KACA74D,EAAA9yB,EAAA8yB,QACA,YAAA64D,EAAAj5F,KAAA,CACA,IAAAm/F,EAAAlG,EAAAkG,GAEA,GAAAA,IAAA3iG,KAAAyjJ,OAAA,GACA,IAAAX,EAAA9iJ,KAAA8iJ,aACAA,GACAA,EAAAh4I,QAGA9K,KAAAyjJ,OAAA9gD,OAGA,gBAAAlG,EAAAj5F,KACA,GAAAogC,EAAAugD,WAAA,CAEA,YAAAnkF,KAAA2sF,QAEA,YADA3sF,KAAAgiJ,iBAAAzgJ,KAAAuP,GAIA,IAAAozI,EAAAznD,EAAA1F,YAEA,MAAAmtD,GAAA,MAAAA,EAAAn6I,KAAA,YAAAm6I,EAAAx1G,QACA1uC,KAAAmkJ,WAAA1nD,EAAA74D,QAIA5jC,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAgkE,yBAA+E6mE,SAAA,EAAA3nD,UAK/EilD,EAAAxhJ,UAAAikJ,WAAA,SAAA1nD,EAAA74D,GACA,IAAAu8G,EAAAngJ,KAAAmgJ,OACAA,EAAA1jD,EAAAqa,MACAqpC,EAAA1jD,EAAAqa,KAAyBt0G,MAAAi6F,EAAAj6F,MAAAy+I,OAAAjhJ,KAAAihJ,OAAAD,KAAA,GACzBhhJ,KAAAihJ,OAAAxkD,EAAAqa,IAEA,IAAAohB,EAAAl4H,KAAAk4H,WACA3sB,EAAAvrG,KAAAurG,IAGAy0C,GAAA7yI,MAAAy2B,EAAA5jC,KAAA2sF,QAAAwzD,EAAA1jD,EAAAqa,GAAA,SAAA4gB,GACA,IAAA2sB,EAAAnsB,EAAAz7B,EAAAxN,SAIA,aAAAo1D,EAAAhsB,MAKAX,EAAA5tH,QAAA,SAAA4uH,GAIA,IAAA2rB,EAAA3sB,KAAA4sB,WAAA5rB,EAAAh3H,IACA,IACA2iJ,EAAA1rB,OAAAD,GACW,MAAAjzC,GACX,IAAA8+D,EAAA,IAAA50I,OAAA8oH,aAAAC,EAAAxnE,UAAAwnE,EAAApuB,QAAAouB,EAAArnF,MACAkzG,EAAA7iJ,GAAAg3H,EAAAh3H,GACA2iJ,EAAA1rB,OAAA4rB,MAIAh5C,EAAAt5F,QAAAsH,EAAA,EAAAgkE,yBAAsE6mE,SAAA,EAAA3nD,UAlBtE8O,EAAAt5F,QAAAsH,EAAA,EAAAgkE,yBAAwE6mE,SAAA,EAAA3nD,UAmBnE,SAAAt4F,GAELs2E,EAAA,EAAAj7E,IAAA,4BAAA2E,GACAonG,EAAAt5F,QAAAsH,EAAA,EAAAgkE,yBAAsE6mE,SAAA,EAAA3nD,YAItEilD,EAAAxhJ,UAAAskJ,gBAAA,SAAA1zI,GACA,IAAA8mF,EAAA9mF,EAAA8yB,QACA64D,EAAA3rF,EAAA2rF,KAEA,gBAAAA,EAAAj5F,KAAA,CACA,YAAAxD,KAAA2sF,QAEA,YADA3sF,KAAAgiJ,iBAAAzgJ,KAAAuP,GAIA9Q,KAAAmkJ,WAAA1nD,EAAA7E,KAIA8pD,EAAAxhJ,UAAAukJ,sBAAA,SAAA3zI,GAGA,GAAA9Q,KAAA6hJ,SAAA7hJ,KAAAggD,OAAA2iG,qBACA,QAAA5hJ,EAAA,EAAqBA,EAAA+P,EAAAwhF,QAAArxF,OAAyBF,IAAA,CAC9C,IAAA2jJ,EAAA1kJ,KAAA2kJ,kBAAA7zI,EAAAwhF,QAAAvxF,GAAAk9F,OACAj+F,KAAA8iJ,aAAAxE,QAAAxtI,EAAAwhF,QAAAvxF,GAAA8wF,IAAA6yD,KAKAhD,EAAAxhJ,UAAAykJ,kBAAA,SAAA5mD,GAUA,IATA,IAAAx7F,EAAA,GAAAw7F,EAAA,GACA3vF,EAAA,EACAw2I,OAAA,EACAC,OAAA,EACAC,OAAA,EAGAC,KAEA7xH,EAAA,EAAmBA,EAAA3wB,EAAW2wB,IAC9B0xH,EAAA7mD,EAAA3vF,KACAy2I,EAAA,IAAA9mD,EAAA3vF,KACA02I,EAAA,IAAA/mD,EAAA3vF,KAIA,IAAAy2I,GAAA,IAAAC,GAHA,MAAAF,IAQA,KAPA,EAAAA,KASAG,EAAAxjJ,KAAAsjJ,GACAE,EAAAxjJ,KAAAujJ,IAIA,OAAAC,GAGArD,EAnVA,CAoVCr2C,GAID25C,GAAA,WAA0D,SAAA3/F,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAljB,GAgBA,SAAAqiE,GAAAC,GAEA,IADA,IAAA/3D,KACApsF,EAAA,EAAiBA,EAAAmkJ,EAAAjkJ,OAA0BF,IAC3C,cAAAmkJ,EAAAnkJ,GAAAuJ,MACA6iF,EAAA5rF,KAAA2jJ,EAAAnkJ,IAGA,OAAAosF,EAGA,IA2QAg4D,GA3QA,SAAAvsC,GAGA,SAAAwsC,EAAA75C,IA3BA,SAAAhsD,EAAAqjC,GAA2E,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCA4BrHqhG,CAAArlJ,KAAAolJ,GAEA,IAAAvoI,EA5BA,SAAA1Q,EAAAT,GAA2E,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EA4BjL45I,CAAAtlJ,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAmiE,eAAAniE,EAAA,EAAAoiE,gBAAApiE,EAAA,EAAA8iE,iBAAA9iE,EAAA,EAAA+iE,gBAAA/iE,EAAA,EAAA+jE,wBAUA,OARAzgE,EAAAswE,UACAtwE,EAAAoyE,SAAA,EACApyE,EAAAm5F,MAAA,KAKAn5F,EAAAknI,iBAAA,EACAlnI,EAwPA,OA5RA,SAAAq8F,EAAAC,GAAoE,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAqB/YosC,CAAAH,EAAAxsC,GAkBAwsC,EAAAllJ,UAAAslJ,qBAAA,WAEA,GAAAxlJ,KAAAg2G,MAAA,CAMA,IAFA,IAAA/mB,GAAA,EACA9B,EAAA83D,GAAAjlJ,KAAAg2G,MAAAkiB,YACAx2H,EAAA,EAAoBA,EAAAyrF,EAAAlsF,OAAoBS,IACxC,cAAAyrF,EAAAzrF,GAAA22H,KAEAppC,EAAAvtF,OACO,eAAAyrF,EAAAzrF,GAAA22H,KAAA,CACPppC,EAAAvtF,EACA,MAKA1B,KAAAylJ,cAAAx2D,IAGAm2D,EAAAllJ,UAAAi/C,QAAA,WACAksD,EAAAnrG,UAAAi/C,QAAAzzC,KAAA1L,OAMAolJ,EAAAllJ,UAAAwwH,gBAAA,SAAA5/G,GACA,IAAAoN,EAAAle,KAEAA,KAAAg2G,MAAAllG,EAAAklG,MACAh2G,KAAAg2G,QAIAh2G,KAAA0lJ,qBACA1lJ,KAAAylJ,cAAAzlJ,KAAA0lJ,0BACA1lJ,KAAA0lJ,oBAGA1lJ,KAAA2lJ,oBAAA3lJ,KAAAwlJ,qBAAAh7I,KAAAxK,MAEAA,KAAA4lJ,sBAAA5lJ,KAAAg2G,MAAAkiB,YAAA,aAAAl4H,KAAAg2G,MAAAkiB,YACAl4H,KAAA4lJ,oBACA5lJ,KAAA6lJ,wBAAAn9B,YAAA,WACAxqG,EAAAynI,uBACO,KAEP3lJ,KAAAg2G,MAAAkiB,WAAAt5G,iBAAA,SAAA5e,KAAA2lJ,uBAIAP,EAAAllJ,UAAAgxH,iBAAA,WACAlxH,KAAAg2G,QAIAh2G,KAAA4lJ,oBACAr9B,cAAAvoH,KAAA6lJ,yBAEA7lJ,KAAAg2G,MAAAkiB,WAAAp5G,oBAAA,SAAA9e,KAAA2lJ,qBAGA3lJ,KAAAg2G,MAAA,OAMAovC,EAAAllJ,UAAAk6G,kBAAA,WACAp6G,KAAAmtF,UACAntF,KAAAivF,SAAA,GAMAm2D,EAAAllJ,UAAAk1H,iBAAA,SAAAtkH,GACA,IAAAkO,EAAAhf,KAEAmtF,EAAAr8E,EAAA4rG,cACA18G,KAAAmtF,SACAntF,KAAAivF,SAAA,EACAjvF,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA4jE,yBAAyE2oE,eAAA34D,IAIzEA,EAAArjF,QAAA,SAAAmnF,GACAA,EAAAl4E,UAKAiG,EAAAg3F,MACAh3F,EAAAymI,cAAAx0D,EAAAvvF,GAEAsd,EAAA0mI,mBAAAz0D,EAAAvvF,OASA0jJ,EAAAllJ,UAAA6lJ,OAAA,WACA,IAAA92D,EAAAjvF,KAAAivF,QACAw2D,EAAAzlJ,KAAAmtF,OAAA8B,GACA,GAAAw2D,EAAA,CAIA,IAAAt5D,EAAAs5D,EAAAt5D,QAEAA,MAAA4iB,OAEAt0B,EAAA,EAAAj7E,IAAA,2CAAAyvF,GACAjvF,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAA8jE,wBAA0ElvE,IAAAs3I,EAAAt3I,IAAAzM,GAAAutF,OAI1Em2D,EAAAllJ,UAAA8lJ,sBAAA,SAAAl1I,GACA,IAAAyO,EAAAvf,KAEA8Q,EAAApP,GAAA1B,KAAAmtF,OAAAlsF,SACAw5E,EAAA,EAAAj7E,IAAA,kBAAAsR,EAAApP,GAAA,WACA1B,KAAAmtF,OAAAr8E,EAAApP,IAAAyqF,QAAAr7E,EAAAq7E,QAEAr7E,EAAAq7E,QAAA4iB,OAAA/uG,KAAAkM,QAGAlM,KAAAkM,MAAAw8G,YAAA,WACAnpG,EAAAwmI,UACS,IAAAj1I,EAAAq7E,QAAAijB,eAAApvG,QAET8Q,EAAAq7E,QAAA4iB,MAAA/uG,KAAAkM,OAEAlM,KAAAimJ,eAaAb,EAAAllJ,UAAAgmJ,yBAAA,SAAAje,GACA,IAAA18B,EAAAvrG,KAAAurG,IACApe,EAAAntF,KAAAmtF,OAEA,sBAAA86C,MAAA,GAAAA,GAAA96C,EAAAlsF,UAIAjB,KAAAimJ,aACAjmJ,KAAAivF,QAAAg5C,EACAxtD,EAAA,EAAAj7E,IAAA,+BAAAyoI,GACA18B,EAAAt5F,QAAAsH,EAAA,EAAA6jE,uBAAkE17E,GAAAumI,KAClE,IAAAA,GAAA,CAKA,IAAAwd,EAAAt4D,EAAA86C,GACA97C,EAAAs5D,EAAAt5D,QACAA,MAAA4iB,OAEAt0B,EAAA,EAAAj7E,IAAA,2CAAAyoI,GACA18B,EAAAt5F,QAAAsH,EAAA,EAAA8jE,wBAAqElvE,IAAAs3I,EAAAt3I,IAAAzM,GAAAumI,OAIrEmd,EAAAllJ,UAAA+lJ,WAAA,WACAjmJ,KAAAkM,QACAq8G,cAAAvoH,KAAAkM,OACAlM,KAAAkM,MAAA,OAaAk5I,EAAAllJ,UAAAimJ,kBAAA,SAAAle,GACA,IAAAjyB,EAAAh2G,KAAAg2G,MACA+tC,EAAA/jJ,KAAA+jJ,gBACA90D,EAAAjvF,KAAAivF,QAEA,GAAA+mB,EAAA,CAIA,IAAAkiB,EAAA+sB,GAAAjvC,EAAAkiB,YACA,QAAA+P,KACA3lI,MAAAoJ,KAAAwsH,GAAApuH,QAAA,SAAAmnF,GACAA,EAAAonC,KAAA,iBAEK,CACL,IAAA+tB,EAAAluB,EAAAjpC,GACAm3D,IACAA,EAAA/tB,KAAA,YAIA,IAAAguB,EAAAnuB,EAAA+P,GACAoe,IACAA,EAAAhuB,KAAA0rB,EAAA,sBAIAiB,GAAAI,IACAr7I,IAAA,iBACA/F,IAAA,WACA,OAAAhE,KAAAmtF,UAMApjF,IAAA,gBACA/F,IAAA,WACA,OAAAhE,KAAAivF,SAKAjqC,IAAA,SAAAshG,GACAtmJ,KAAAivF,UAAAq3D,IACAtmJ,KAAAmmJ,kBAAAG,GACAtmJ,KAAAkmJ,yBAAAI,QAKAlB,EAxQA,CAyQC/5C,GAIDnU,GAAA33F,EAAA,GAkBA,IACAgnJ,GADA52I,OACAm6F,YAGA08C,IACAx7B,QAAA,UACAC,KAAA,OACAxsC,YAAA,cACAhB,aAAA,gBAoNAgpE,GAjNA,SAAAj7B,GAGA,SAAAk7B,EAAAn7C,IA7BA,SAAAhsD,EAAAqjC,GAA4E,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCA8BtH2iG,CAAA3mJ,KAAA0mJ,GAEA,IAAA7pI,EA9BA,SAAA1Q,EAAAT,GAA4E,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EA8BlLk7I,CAAA5mJ,KAAAwrH,EAAA9/G,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAmiE,eAAAniE,EAAA,EAAAglE,MAAAhlE,EAAA,EAAAmlE,WAAAnlE,EAAA,EAAAqkE,YAAArkE,EAAA,EAAA4jE,wBAAA5jE,EAAA,EAAA6jE,sBAAA7jE,EAAA,EAAA+jE,sBAAA/jE,EAAA,EAAAgkE,0BASA,OAPA1gE,EAAAmjC,OAAAurD,EAAAvrD,OACAnjC,EAAAgqI,uBACAhqI,EAAAiqI,mBAAAp5I,EACAmP,EAAAkqI,oBAAA,KACAlqI,EAAAk/B,MAAAyqG,GAAAx7B,QACAnuG,EAAAmqI,gBAAA,EACAnqI,EAAAq6E,UAAA,IAAAA,GAAA,EAAAqU,EAAAzkD,SAAAykD,EAAAvrD,QACAnjC,EA+LA,OApOA,SAAAq8F,EAAAC,GAAqE,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAuBhZ8tC,CAAAP,EAAAl7B,GAiBAk7B,EAAAxmJ,UAAA4rG,mBAAA,WACA9rG,KAAA+7C,MAAAyqG,GAAAx7B,SAMA07B,EAAAxmJ,UAAAgnJ,mBAAA,WACA,IAAAhpI,EAAAle,KAEAA,KAAA8mJ,iBACA9mJ,KAAAmtF,OAAArjF,QAAA,SAAAmnF,GACA/yE,EAAA4oI,cAAA71D,EAAAvvF,UAOAglJ,EAAAxmJ,UAAA6uH,SAAA,WACA,UAAA/uH,KAAA+mJ,qBAAA/mJ,KAAAgnJ,gBAAA,GAAAhnJ,KAAA8mJ,cAAA9mJ,KAAAgnJ,gBAAA/lJ,OAAA,CACA,IAAAw7F,EAAAz8F,KAAA+mJ,oBAAA/mJ,KAAA8mJ,cAAA9mJ,KAAAgnJ,gBAAAx5G,QACAxtC,KAAA0sH,YAAAjwB,EACAz8F,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAkkE,cAAgEgf,SAChEz8F,KAAA+7C,MAAAyqG,GAAA/oE,eAOAipE,EAAAxmJ,UAAAinJ,wBAAA,SAAAr2I,GACAA,EAAAszI,SACApkJ,KAAA6mJ,oBAAA/1I,EAAA2rF,KAAAxN,SAAA1tF,KAAAuP,EAAA2rF,KAAAkG,IAGA3iG,KAAA+mJ,oBAAA,KACA/mJ,KAAA+7C,MAAAyqG,GAAAv7B,KACAjrH,KAAA+uH,YAGA23B,EAAAxmJ,UAAAwwH,gBAAA,WACA1wH,KAAA+7C,MAAAyqG,GAAAv7B,MAMAy7B,EAAAxmJ,UAAA07G,QAAA,SAAA9qG,GACA,IAAA2rF,EAAA3rF,EAAA2rF,KAEAA,GAAA,aAAAA,EAAAj5F,MAIAxD,KAAA+mJ,sBACA/mJ,KAAA+mJ,oBAAA,KACA/mJ,KAAA+uH,aAIA23B,EAAAxmJ,UAAA6oH,OAAA,WACA,IAAA/pG,EAAAhf,KAEA,OAAAA,KAAA+7C,OACA,KAAAyqG,GAAAv7B,KACA,IAsBA2e,EAtBAz8C,EAAAntF,KAAAmtF,OACA8B,EAAAjvF,KAAAgnJ,eAEAI,EAAApnJ,KAAA6mJ,oBAAA53D,GACAo4D,EAAArnJ,KAAA8mJ,cAAA73D,GACAq4D,EAAAtnJ,KAAA+mJ,oBAAA/mJ,KAAA+mJ,oBAAApkD,IAAA,EAaA,IAAAxV,EACA,MASA,GAJA8B,EAAA9B,EAAAlsF,SACA2oI,EAAAz8C,EAAA8B,GAAA9C,cAGA,IAAAy9C,EACA,MAIAA,EAAA96B,UAAAhlG,QAAA,SAAA2yF,IA1BA,SAAAA,GACA,OAAA2qD,EAAAtnJ,QAAA28F,EAAAkG,KAAA,GA0BA4kD,CAAA9qD,MAAAkG,KAAA2kD,GAvBA,SAAA7qD,GACA,OAAA4qD,EAAAj0I,KAAA,SAAAo0I,GACA,OAAAA,EAAA7kD,KAAAlG,EAAAkG,KAqBA8kD,CAAAhrD,KAEAA,EAAAsxB,WACAtzC,EAAA,EAAAj7E,IAAA,mBAAAi9F,EAAAkG,IACA3jF,EAAA+8B,MAAAyqG,GAAA/nE,YACAz/D,EAAAusF,IAAAt5F,QAAAsH,EAAA,EAAAklE,aAAyEge,WAGzEA,EAAAxN,UACAo4D,EAAA9lJ,KAAAk7F,GACAz9E,EAAA+vG,iBAUA23B,EAAAxmJ,UAAAwnJ,wBAAA,SAAA52I,GACA,IAAAyO,EAAAvf,KAEAy6E,EAAA,EAAAj7E,IAAA,2BACAQ,KAAAmtF,OAAAr8E,EAAAg1I,eACA9lJ,KAAAknJ,qBACAlnJ,KAAA6mJ,uBACA7mJ,KAAAmtF,OAAArjF,QAAA,SAAAmnF,GACA1xE,EAAAsnI,oBAAA51D,EAAAvvF,UAIAglJ,EAAAxmJ,UAAAynJ,sBAAA,SAAA72I,GAEA,GADA9Q,KAAAgnJ,eAAAl2I,EAAApP,GACA1B,KAAAmtF,SAAA,IAAAntF,KAAAgnJ,eAAA,CAMA,IAAA3C,EAAArkJ,KAAAmtF,OAAAntF,KAAAgnJ,gBACA3C,KAAAl4D,SACAnsF,KAAAooH,SAOAs+B,EAAAxmJ,UAAA8lJ,sBAAA,WACAhmJ,KAAAooH,QAGAs+B,EAAAxmJ,UAAA2xH,YAAA,WACA7xH,KAAA+7C,QAAAyqG,GAAA/nE,cACAz+E,KAAA+7C,MAAAyqG,GAAAv7B,KACAjrH,KAAAooH,SAIAs+B,EAAAxmJ,UAAAihH,aAAA,SAAArwG,GACA,IAAA47G,EAAA1sH,KAAA0sH,YACAw3B,EAAApzI,EAAA2rF,KAAA1F,YACA+6B,EAAAhhH,EAAA2rF,KACA8O,EAAAvrG,KAAAurG,IACA,GAAAvrG,KAAA+7C,QAAAyqG,GAAA/oE,cAAAivC,GAAA,aAAA57G,EAAA2rF,KAAAj5F,MAAAkpH,EAAA/pB,KAAA7xF,EAAA2rF,KAAAkG,IAEA7xF,EAAA8yB,QAAAugD,WAAA,SAAA+/D,GAAA,MAAAA,EAAAn6I,KAAA,YAAAm6I,EAAAx1G,OAAA,CACA,IAAAwiB,OAAA,EACA,IACAA,EAAAq1F,GAAA72I,MACS,MAAAqrE,GACT7pB,EAAAzhD,KAAAC,MAGA1P,KAAAk3F,UAAAxQ,QAAA51E,EAAA8yB,QAAAsgH,EAAAn6I,IAAA26E,OAAAw/D,EAAA19D,GAAA9B,OAAA,SAAAkT,GACA,IAAA0S,OAAA,EACA,IACAA,EAAAi8C,GAAA72I,MACW,MAAAqrE,GACXuvB,EAAA76F,KAAAC,MAEA67F,EAAAt5F,QAAAsH,EAAA,EAAAskE,gBAAiE4e,KAAAq1B,EAAAluF,QAAAg0D,EAAA2S,OAAmDC,OAAAt5C,EAAAu5C,SAAAH,SAMpHo8C,EA9MA,CA+MC9+B,IAIDggC,GAAA,WAA+C,SAAAviG,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAviB,GAoBA,IACAilE,GADAl4I,OACAd,eAQAi5I,GACA,qBADAA,GAEA,0BAkfAC,GArbA,SAAAnvC,GAOA,SAAAovC,EAAAz8C,IAjGA,SAAAhsD,EAAAqjC,GAAgE,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAkG1GikG,CAAAjoJ,KAAAgoJ,GAEA,IAAAnrI,EAlGA,SAAA1Q,EAAAT,GAAgE,IAAAS,EAAa,UAAA4sG,eAAA,6DAAyF,OAAArtG,GAAA,iBAAAA,GAAA,mBAAAA,EAAAS,EAAAT,EAkGtKw8I,CAAAloJ,KAAA44G,EAAAltG,KAAA1L,KAAAurG,EAAAhyF,EAAA,EAAAmiE,eAAAniE,EAAA,EAAAgjE,kBAeA,OAbA1/D,EAAAsrI,oBAAA58C,EAAAvrD,OAAAooG,mBACAvrI,EAAAwrI,iBAAA98C,EAAAvrD,OAAAsoG,gBACAzrI,EAAA0rI,YAAAh9C,EAAAvrD,OAAAwoG,WAEA3rI,EAAA4rI,6BAAAl9C,EAAAvrD,OAAA0oG,gCAEA7rI,EAAA8rI,kBACA9rI,EAAA+rI,OAAA,KAEA/rI,EAAAgsI,kBAAA,EACAhsI,EAAAisI,mBAAA,EAEAjsI,EAAAksI,4BAAA,EACAlsI,EAyZA,OAxgBA,SAAAq8F,EAAAC,GAAyD,sBAAAA,GAAA,OAAAA,EAA+D,UAAAn1D,UAAA,kEAAAm1D,GAAuGD,EAAAh5G,UAAA0J,OAAA8/B,OAAAyvE,KAAAj5G,WAAyEC,aAAeoH,MAAA2xG,EAAA7tG,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAA6E6tG,IAAAvvG,OAAAwvG,eAAAxvG,OAAAwvG,eAAAF,EAAAC,GAAAD,EAAAG,UAAAF,GAuFpY6vC,CAAAhB,EAAApvC,GAkCAovC,EAAA9nJ,UAAA+oJ,oBAAA,SAAAC,GACA,IAAA/6I,OAAA,EACA,OAAA+6I,GACA,KAAApB,GACA35I,EAAAnO,KAAAmoJ,oBACA,MACA,QACAh6I,EAAA,KAaA,OATAA,IACAssE,EAAA,EAAAM,MAAA,oDAAAmuE,EAAA,KACAlpJ,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAjM,iBACAmN,QAAAlB,EAAA,EAAA3L,kCACA8M,OAAA,KAIAj+E,GAYA65I,EAAA9nJ,UAAAipJ,wBAAA,SAAAD,EAAAE,EAAAC,GACA,IAAAnrI,EAAAle,KAIAspJ,EAzFA,SAAAJ,EAAAE,EAAAC,GACA,OAAAH,GACA,KAAApB,GACA,OApCA,SAAAsB,EAAAC,EAAAE,GAEA,IAAAC,GAMAC,sBAWA,OANAJ,EAAAv/I,QAAA,SAAA0jF,GACAg8D,EAAAC,kBAAAloJ,MACA8+C,YAAA,sBAA8BmtC,EAAA,SAI9Bg8D,GAiBAE,CAAAN,EAAAC,GACA,QACA,MAAAhqF,MAAA,uBAAA6pF,IAoFAS,CAAAT,EAAAE,EAAAC,GAEAC,GAKA7uE,EAAA,EAAAj7E,IAAA,gDAGAQ,KAAA4pJ,4BAAAV,EAAAI,GAAAn6I,KAAA,SAAA06I,GACA3rI,EAAA4rI,gCAAAZ,EAAAW,KACK59D,MAAA,SAAAxG,GACLhL,EAAA,EAAAM,MAAA,gCAAAmuE,EAAA,YAAAzjE,MAVAhL,EAAA,EAAA/kE,KAAA,kFAAAwzI,IAoBAlB,EAAA9nJ,UAAA4pJ,gCAAA,SAAAZ,EAAAW,GACA,IAAA7qI,EAAAhf,KAEAy6E,EAAA,EAAAj7E,IAAA,0BAAA0pJ,EAAA,cAEA,IAAAa,GACAC,UAAA,KACAC,iBAAA,KACAC,6BAAA,EACAL,uBACAM,qBAAAjB,GAGAlpJ,KAAA2oJ,eAAApnJ,KAAAwoJ,GAEAF,EAAAO,kBAAAj7I,KAAA,SAAA66I,GACAD,EAAAC,YAEAvvE,EAAA,EAAAj7E,IAAA,sCAAA0pJ,EAAA,KAEAlqI,EAAAqrI,wBACKp+D,MAAA,SAAAxG,GACLhL,EAAA,EAAAM,MAAA,+BAAA0K,MAUAuiE,EAAA9nJ,UAAAmqJ,oBAAA,WACA,IAAA9qI,EAAAvf,KAGAA,KAAA2oJ,eAAA7+I,QAAA,SAAAigJ,GACAA,EAAAE,mBACAF,EAAAE,iBAAAF,EAAAC,UAAAM,gBACA/qI,EAAAgrI,sBAAAR,EAAAE,sBAWAjC,EAAA9nJ,UAAAqqJ,sBAAA,SAAAC,GACA,IAAAlpC,EAAAthH,KAEAy6E,EAAA,EAAAj7E,IAAA,0BAAAgrJ,EAAAC,WAEAD,EAAA5rI,iBAAA,mBAAA24C,GACA+pD,EAAAopC,qBAAAF,EAAAjzF,EAAAuI,WACK,IAGLkoF,EAAA9nJ,UAAAwqJ,qBAAA,SAAAF,EAAA1qF,GACA2a,EAAA,EAAAj7E,IAAA,mDAEAQ,KAAA2qJ,gBAAA7qF,EAAA,SAAAhvD,GACA2pE,EAAA,EAAAj7E,IAAA,+CACAgrJ,EAAAjuG,OAAAzrC,MAIAk3I,EAAA9nJ,UAAA0qJ,kBAAA,SAAAC,EAAA59D,GACAxS,EAAA,EAAAj7E,IAAA,6BAAAqrJ,EAAA,oBAEA7qJ,KAAA8oJ,mBAAA,EACA9oJ,KAAA8qJ,6BAAAD,EACA7qJ,KAAA+qJ,yBAAA99D,EAEAjtF,KAAAgrJ,uBACAhrJ,KAAAirJ,2CAGAjD,EAAA9nJ,UAAA8qJ,qBAAA,WACA,IAAAhrJ,KAAA6oJ,iBAAA,CAEA,IAAAqC,EAAAlrJ,KAAA2oJ,eAAA,GACA,IAAAuC,MAAAlB,UAOA,OANAvvE,EAAA,EAAAM,MAAA,sFACA/6E,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAjM,iBACAmN,QAAAlB,EAAA,EAAA9L,mBACAiN,OAAA,IAKA3R,EAAA,EAAAj7E,IAAA,oCAEAQ,KAAA4oJ,OAAAuC,aAAAD,EAAAlB,WACAhqJ,KAAA6oJ,kBAAA,IAIAb,EAAA9nJ,UAAA+qJ,wCAAA,WACA,IAAAG,EAAAprJ,KAGAkrJ,EAAAlrJ,KAAA2oJ,eAAA,GACA,IAAAuC,EAOA,OANAzwE,EAAA,EAAAM,MAAA,sFACA/6E,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAjM,iBACAmN,QAAAlB,EAAA,EAAA7L,qBACAgN,OAAA,IAKA,GAAA8+D,EAAAhB,4BACAzvE,EAAA,EAAA/kE,KAAA,2DADA,CAKA,IAAA80I,EAAAU,EAAAjB,iBACAO,IACA/vE,EAAA,EAAAM,MAAA,yDACA/6E,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAjM,iBACAmN,QAAAlB,EAAA,EAAA5L,sBACA+M,OAAA,KAIA,IAAAy+D,EAAA7qJ,KAAA8qJ,6BACA79D,EAAAjtF,KAAA+qJ,yBAEAtwE,EAAA,EAAAj7E,IAAA,uCAAAqrJ,EAAA,oBAEAK,EAAAhB,6BAAA,EAEAM,EAAAa,gBAAAR,EAAA59D,GAAA99E,KAAA,WACAsrE,EAAA,EAAAI,MAAA,sCACKoR,MAAA,SAAAxG,GACLhL,EAAA,EAAAM,MAAA,wCAAA0K,GACA2lE,EAAA7/C,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAjM,iBACAmN,QAAAlB,EAAA,EAAA5L,sBACA+M,OAAA,QAaA47D,EAAA9nJ,UAAAorJ,kBAAA,SAAAn9I,EAAAo9I,EAAAppJ,GACA,IAAAyM,EAAA,IAAAi5I,GACAS,EAAAtoJ,KAAAqoJ,iBAEA,IACA,GAAAC,EACA,IACAA,EAAA15I,EAAAT,GACS,MAAAhK,GAETyK,EAAAE,KAAA,OAAAX,GAAA,GACAm6I,EAAA15I,EAAAT,GAIAS,EAAAs7G,YACAt7G,EAAAE,KAAA,OAAAX,GAAA,GAEK,MAAAhK,GAQL,OANAs2E,EAAA,EAAAM,MAAA,0CAAA52E,QACAnE,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAjM,iBACAmN,QAAAlB,EAAA,EAAA3L,kCACA8M,OAAA,IAOA,OAFAx9E,EAAA2sG,aAAA,cACA3sG,EAAAg4H,mBAAA5mI,KAAAwrJ,kCAAAhhJ,KAAAxK,KAAA4O,EAAAT,EAAAo9I,EAAAppJ,GACAyM,GAYAo5I,EAAA9nJ,UAAAsrJ,kCAAA,SAAA58I,EAAAT,EAAAo9I,EAAAppJ,GACA,OAAAyM,EAAAs7G,YACA,OACA,SAAAt7G,EAAAqH,OACAjW,KAAA+oJ,4BAAA,EACAtuE,EAAA,EAAAj7E,IAAA,6BACA2C,EAAAyM,EAAA8qG,cACS,CAIT,GAHAj/B,EAAA,EAAAM,MAAA,+BAAA5sE,EAAA,cAAAS,EAAAqH,OAAA,KAAArH,EAAAq4H,WAAA,KAEAjnI,KAAA+oJ,8BACA/oJ,KAAA+oJ,6BAvXA,EAuXA,CACA,IAAA0C,EAxXA,EAwXAzrJ,KAAA+oJ,4BAAA,EAGA,OAFAtuE,EAAA,EAAA/kE,KAAA,6BAAA+1I,EAAA,uBACAzrJ,KAAA2qJ,gBAAAY,EAAAppJ,GAIAnC,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAjM,iBACAmN,QAAAlB,EAAA,EAAA3L,kCACA8M,OAAA,OAcA47D,EAAA9nJ,UAAAwrJ,iCAAA,SAAAR,EAAAK,GACA,IAAAI,OAAA,EAgCA,OA9BAT,EAAAf,uBAAArC,GACArtE,EAAA,EAAAM,MAAA,oCAsBKmwE,EAAAf,uBAAArC,GAEL6D,EAAAJ,EAEA9wE,EAAA,EAAAM,MAAA,0BAAAmwE,EAAAf,sBAGAwB,GAGA3D,EAAA9nJ,UAAAyqJ,gBAAA,SAAAY,EAAAppJ,GACAs4E,EAAA,EAAAj7E,IAAA,6CAEA,IAAA0rJ,EAAAlrJ,KAAA2oJ,eAAA,GACA,IAAAuC,EAOA,OANAzwE,EAAA,EAAAM,MAAA,uFACA/6E,KAAAurG,IAAAt5F,QAAAsH,EAAA,EAAAglE,OACA/6E,KAAAynF,EAAA,EAAAjM,iBACAmN,QAAAlB,EAAA,EAAA7L,qBACAgN,OAAA,IAKA,IAAAj+E,EAAAnO,KAAAipJ,oBAAAiC,EAAAf,sBACAv7I,EAAA5O,KAAAsrJ,kBAAAn9I,EAAAo9I,EAAAppJ,GAEAs4E,EAAA,EAAAj7E,IAAA,mCAAA2O,GAEAS,EAAAG,KAAA/O,KAAA0rJ,iCAAAR,EAAAK,KAGAvD,EAAA9nJ,UAAAwwH,gBAAA,SAAA5/G,GACA,IAAA86I,EAAA5rJ,KAEA,GAAAA,KAAAuoJ,YAAA,CAIA,IAAAvyC,EAAAllG,EAAAklG,MAGAh2G,KAAA4oJ,OAAA5yC,EAIAA,EAAAp3F,iBAAA,qBAAAza,GACAynJ,EAAAhB,kBAAAzmJ,EAAA0mJ,aAAA1mJ,EAAA8oF,cAIA+6D,EAAA9nJ,UAAAoxH,iBAAA,SAAAxgH,GACA,GAAA9Q,KAAAuoJ,YAAA,CAIA,IAAAa,EAAAt4I,EAAAmkG,OAAAtkG,IAAA,SAAA0S,GACA,OAAAA,EAAAypE,aAEAu8D,EAAAv4I,EAAAmkG,OAAAtkG,IAAA,SAAA0S,GACA,OAAAA,EAAA0pE,aAGA/sF,KAAAmpJ,wBAAArB,GAAAsB,EAAAC,KAGAzB,GAAAI,IACAj+I,IAAA,8BACA/F,IAAA,WACA,IAAAhE,KAAAyoJ,6BACA,UAAAppF,MAAA,sDAGA,OAAAr/D,KAAAyoJ,iCAIAT,EAlbA,CAmbC38C,GAoCDwgD,IACA56B,eAAA,EACA/E,eAAA,EACA8H,uBAAAtmH,EACAmtE,OAAA,EACA8pD,mBAAA,EACA1B,sBAAA,EACArV,wBAAA,EACAN,gBAAA,GACAD,cAAA,IACA1lB,cAAA,GAEAmkD,wBAAA,GACAthC,yBAAA,EACAK,YAAA,GACAF,cAAA,EACA1B,uBAAA,IACA8K,sBAAA,EACA3F,4BAAA30E,IACAq6E,sBAAApmH,EACAygH,4BAAAzgH,EACAo0H,sBAAA,EACAvU,mBAAA,IACA1J,cAAA,EACAh4B,mBAAA,EACAmvB,uBAAA,IACAD,wBAAA,EACAE,0BAAA,IACAC,+BAAA,KACAmR,gBAAA3+G,EACAytG,oBAAA,IACAC,qBAAA,EACAC,uBAAA,IACAC,4BAAA,KACA8C,mBAAA,IACAY,oBAAA,EACAC,sBAAA,IACAZ,2BAAA,KACA4O,mBAAA,EACA6X,2BAAA,IACAY,8BAAA,GACAvD,oBAAA,EACApoB,OAAAmsB,GAEAnoB,aAAArwG,EACAmsG,aAAAnsG,EACA24H,cAAA34H,EACA46I,qBAAA56I,EAEAq+I,cAAAtxB,GACAuxB,iBAAA/tB,GACAguB,mBAAAvpB,GACAwpB,cAAA7nB,GACA38B,wBAAA,EACAiB,oBAAA,EACAxL,8BAAA,EACAk+B,gBAAA,EACAC,gBAAA,EACAC,eAAA,EACAC,eAAA,EACAC,uBAAA,IACAmC,mBAAA,IACAC,qBAAA,GACAvB,uBAAA,EACAwB,mBAAA,EACAC,gBAAA,EACAouB,eAAA,EACA3D,YAAA,EACAJ,wBAAA16I,EACAg7I,gCApGA,oBAAA/4I,eAAAkvC,WAAAlvC,OAAAkvC,UAAA+qG,4BACAj6I,OAAAkvC,UAAA+qG,4BAAAp/I,KAAAmF,OAAAkvC,WAEA,MAqGAgtG,GAAAO,yBAAA3F,GACAoF,GAAAQ,wBAAAlH,GACA0G,GAAApM,mBAAAgC,GACAoK,GAAA9J,WAAAh3C,EACA8gD,GAAAlJ,sBAAA,EACAkJ,GAAAnI,cAAA,EACAmI,GAAAxJ,wBAAA,UACAwJ,GAAAtJ,+BAAA,KACAsJ,GAAApJ,wBAAA,UACAoJ,GAAAnJ,+BAAA,KAIAmJ,GAAAS,sBAAAnjB,GACA0iB,GAAAU,qBAAAnlB,GAIAykB,GAAAW,cAAAzE,GAGA,IAAA0E,GAAA,WAAoC,SAAApnG,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAA5hB,GAyBArjF,EAAA,IAQA,IAAAmtJ,GAAA,WAgFA,SAAAC,IACA,IAAA9vI,EAAA7c,KAEAggD,EAAAl7C,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,OAlHA,SAAAy6C,EAAAqjC,GAAqD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAoH/F4oG,CAAA5sJ,KAAA2sJ,GAEA,IAAA1sG,EAAA0sG,EAAAE,cAEA,IAAA7sG,EAAA+zE,uBAAA/zE,EAAAouE,+BAAApuE,EAAA8zE,kBAAA9zE,EAAAmuE,wBACA,UAAA9uD,MAAA,qIAGA,QAAAv+D,KAAAm/C,EACAn/C,KAAAk/C,IACAA,EAAAl/C,GAAAm/C,EAAAn/C,IAGA,QAAA4M,IAAAsyC,EAAAouE,6BAAApuE,EAAAouE,6BAAApuE,EAAA+zE,sBACA,UAAA10D,MAAA,2FAGA,QAAA3xD,IAAAsyC,EAAAmuE,yBAAAnuE,EAAAmuE,wBAAAnuE,EAAA8zE,uBAAApmH,IAAAsyC,EAAA8zE,kBACA,UAAAz0D,MAAA,iFAGAz1D,OAAA6wE,EAAA,EAAA7wE,CAAAo2C,EAAA66B,OACA76E,KAAAggD,SACAhgD,KAAA8sJ,mBAAA,EAEA,IAAAhmG,EAAA9mD,KAAA8mD,SAAA,IAAAo8D,EAAA3tG,EACAuxC,EAAA70C,QAAA,SAAAslD,GACA,QAAA53C,EAAA7a,UAAA7D,OAAA6P,EAAAjF,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAwFA,EAAAgC,EAAahC,IACrG7M,EAAA6M,EAAA,GAAA7Y,UAAA6Y,GAGAmpC,EAAAw+B,KAAA/4E,MAAAu6C,GAAAyQ,KAAAxiD,OAAAjE,KAGAg2C,EAAAuJ,IAAA,SAAAkH,GACA,QAAA4jB,EAAAr2E,UAAA7D,OAAA6P,EAAAjF,MAAAsvE,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAA4FA,EAAAF,EAAeE,IAC3GvqE,EAAAuqE,EAAA,GAAAv2E,UAAAu2E,GAGAv0B,EAAAk/B,eAAAz5E,MAAAu6C,GAAAyQ,GAAAxiD,OAAAjE,KAEA9Q,KAAA0f,GAAAonC,EAAApnC,GAAAlV,KAAAs8C,GACA9mD,KAAAqwD,IAAAvJ,EAAAuJ,IAAA7lD,KAAAs8C,GACA9mD,KAAA8lF,KAAAh/B,EAAAg/B,KAAAt7E,KAAAs8C,GACA9mD,KAAAiS,QAAA60C,EAAA70C,QAAAzH,KAAAs8C,GAOA,IAAAilG,EAAA/rJ,KAAA+rJ,cAAA,IAAA/rG,EAAA+rG,cAAA/rJ,MAEAgsJ,EAAA,IAAAhsG,EAAAgsG,iBAAAhsJ,MACAisJ,EAAA,IAAAjsG,EAAAisG,mBAAAjsJ,MACAksJ,EAAA,IAAAlsG,EAAAksG,cAAAlsJ,MACA+sJ,EAAA,IAAAp0C,EAAA34G,MACAgtJ,EAAA,IAAAzvC,EAAAv9G,MACAitJ,EAAA,IAAAzuC,EAAAx+G,MACAktJ,EAAA,IAAAt1B,GAAA53H,MAOAmtJ,EAAAntJ,KAAAmtJ,gBAAA,IAAA54B,GAAAv0H,MAGAwpH,EAAA,IAAArK,EAAAn/G,MAOAotJ,GAAAD,EAFAntJ,KAAA4jI,iBAAA,IAAArY,GAAAvrH,KAAAwpH,IAQA6jC,EAAArtG,EAAAssG,sBACAe,GACAD,EAAA7rJ,KAAA,IAAA8rJ,EAAArtJ,KAAAwpH,IAMAxpH,KAAAotJ,qBAKA,IAAAE,GAAAP,EAAAC,EAAAC,EAAAlB,EAAAC,EAAAC,EAAAC,EAAAgB,EAAA1jC,GAIA,GADA6jC,EAAArtG,EAAAusG,qBACA,CACA,IAAAA,EAAA,IAAAc,EAAArtJ,MAKAA,KAAAusJ,uBACAe,EAAA/rJ,KAAAgrJ,GAIA,GADAc,EAAArtG,EAAAqsG,wBACA,CACA,IAAAA,EAAA,IAAAgB,EAAArtJ,MAKAA,KAAAqsJ,0BACAiB,EAAA/rJ,KAAA8qJ,GAIA,GADAgB,EAAArtG,EAAAwsG,cACA,CACA,IAAAA,EAAA,IAAAa,EAAArtJ,MAKAA,KAAAwsJ,gBACAc,EAAA/rJ,KAAAirJ,IAIAxsG,EAAAosG,yBAAApsG,EAAAy/F,oBAAA31I,QAAA,SAAAujJ,GACAA,GACAC,EAAA/rJ,KAAA,IAAA8rJ,EAAAxwI,MAOA7c,KAAAstJ,iBAueA,OApsBAX,EAAAnmH,YAAA,WACA,OApqNAk5F,EAAApc,IACA2b,EAAAtvH,OAAA49I,cAAA59I,OAAA69I,mBACAx5C,EAAA0rB,GAAA,mBAAAA,EAAA1rB,iBAAA0rB,EAAA1rB,gBAAA,6CAIAy5C,GAAAxuB,KAAA/+H,WAAA,mBAAA++H,EAAA/+H,UAAA8hI,cAAA,mBAAA/C,EAAA/+H,UAAAuE,SACAuvG,KAAAy5C,EARA,IACA/tB,EACAT,EACAjrB,EAIAy5C,GAsqNAhB,GAAAE,EAAA,OACA5iJ,IAAA,UAKA/F,IAAA,WACA,kBAGA+F,IAAA,SACA/F,IAAA,WACA,OAAAuV,EAAA,KAQAxP,IAAA,aACA/F,IAAA,WACA,OAAAinF,EAAA,KAQAlhF,IAAA,eACA/F,IAAA,WACA,OAAAinF,EAAA,KAQAlhF,IAAA,gBACA/F,IAAA,WACA,OAAA2oJ,EAAA1sG,cAIA0sG,EAAA1sG,cAHA4rG,IAUA7mG,IAAA,SAAA/E,GACA0sG,EAAA1sG,oBAsKA0sG,EAAAzsJ,UAAAi/C,QAAA,WACAs7B,EAAA,EAAAj7E,IAAA,WACAQ,KAAAiS,QAAAsH,EAAA,EAAAilE,YACAx+E,KAAA0tJ,cACA1tJ,KAAAstJ,eAAAv4I,OAAA/U,KAAAotJ,oBAAAtjJ,QAAA,SAAAyqB,GACAA,EAAA4qB,YAEAn/C,KAAAmO,IAAA,KACAnO,KAAA8mD,SAAAm/B,qBACAjmF,KAAA8sJ,mBAAA,GASAH,EAAAzsJ,UAAAytJ,YAAA,SAAA33C,GACAv7B,EAAA,EAAAj7E,IAAA,eACAQ,KAAAg2G,QACAh2G,KAAAiS,QAAAsH,EAAA,EAAAkiE,iBAA6Du6B,WAQ7D22C,EAAAzsJ,UAAAwtJ,YAAA,WACAjzE,EAAA,EAAAj7E,IAAA,eACAQ,KAAAiS,QAAAsH,EAAA,EAAAoiE,iBACA37E,KAAAg2G,MAAA,MASA22C,EAAAzsJ,UAAA0tJ,WAAA,SAAAz/I,GACAA,EAAA+8F,EAAA31F,EAAA8rE,iBAAA1xE,OAAAk+I,SAAAC,KAAA3/I,GAA6EszE,iBAAA,IAC7EhH,EAAA,EAAAj7E,IAAA,cAAA2O,GACAnO,KAAAmO,MAEAnO,KAAAiS,QAAAsH,EAAA,EAAA8iE,kBAA8DluE,SAY9Dw+I,EAAAzsJ,UAAA+rH,UAAA,WACA,IAAAC,EAAApnH,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEA21E,EAAA,EAAAj7E,IAAA,aAAA0sH,EAAA,KACAlsH,KAAAotJ,mBAAAtjJ,QAAA,SAAAugD,GACAA,EAAA4hE,UAAAC,MASAygC,EAAAzsJ,UAAA8rH,SAAA,WACAvxC,EAAA,EAAAj7E,IAAA,YACAQ,KAAAotJ,mBAAAtjJ,QAAA,SAAAugD,GACAA,EAAA2hE,cASA2gC,EAAAzsJ,UAAA0zH,eAAA,WACAn5C,EAAA,EAAAj7E,IAAA,kBACAQ,KAAA4jI,iBAAAhQ,kBAWA+4B,EAAAzsJ,UAAA6tJ,kBAAA,WACAtzE,EAAA,EAAAj7E,IAAA,qBACA,IAAAw2G,EAAAh2G,KAAAg2G,MACAh2G,KAAA0tJ,cACA1tJ,KAAA2tJ,YAAA33C,IAQAy2C,GAAAE,IACA5iJ,IAAA,SACA/F,IAAA,WACA,OAAAhE,KAAAmtJ,gBAAAl4C,UASAlrG,IAAA,eACA/F,IAAA,WACA,OAAAhE,KAAA4jI,iBAAA7R,cAUA/sE,IAAA,SAAAixE,GACAx7C,EAAA,EAAAj7E,IAAA,oBAAAy2H,GACAj2H,KAAAm1H,UAAAc,EACAj2H,KAAA4jI,iBAAApU,0BASAzlH,IAAA,YACA/F,IAAA,WACA,OAAAhE,KAAA4jI,iBAAAvT,WAUArrE,IAAA,SAAAixE,GACAx7C,EAAA,EAAAj7E,IAAA,iBAAAy2H,GACAj2H,KAAAmtJ,gBAAAa,YAAA/3B,EACAj2H,KAAA4jI,iBAAA3T,qBASAlmH,IAAA,YACA/F,IAAA,WACA,OAAAhE,KAAAmtJ,gBAAA9pI,OAUA2hC,IAAA,SAAAixE,GACAx7C,EAAA,EAAAj7E,IAAA,iBAAAy2H,GACAj2H,KAAAmtJ,gBAAAa,YAAA/3B,KASAlsH,IAAA,gBACA/F,IAAA,WACA,OAAAhE,KAAAmtJ,gBAAA7gC,eASAtnE,IAAA,SAAA3hC,GACArjB,KAAAmtJ,gBAAA7gC,cAAAjpG,KAUAtZ,IAAA,aACA/F,IAAA,WACA,OAAA+D,KAAAE,IAAAjI,KAAAmtJ,gBAAAp3B,WAAA/1H,KAAA07H,eAQA12E,IAAA,SAAAixE,GACAx7C,EAAA,EAAAj7E,IAAA,kBAAAy2H,GACAj2H,KAAAmtJ,gBAAAp3B,WAAAE,KAYAlsH,IAAA,aACA/F,IAAA,WACA,OAAAhE,KAAAmtJ,gBAAA9gC,YAWArnE,IAAA,SAAAixE,GACAx7C,EAAA,EAAAj7E,IAAA,kBAAAy2H,IAGA,IAAAA,IACAA,EAAAluH,KAAAE,IAAAguH,EAHAj2H,KAGA07H,eAHA17H,KAMAmtJ,gBAAA9gC,WAAA4J,KASAlsH,IAAA,mBACA/F,IAAA,WACA,OAAAhE,KAAA8sJ,mBAQA9nG,IAAA,SAAAixE,GACAx7C,EAAA,EAAAj7E,IAAA,wBAAAy2H,GACAj2H,KAAA8sJ,kBAAA72B,KASAlsH,IAAA,mBACA/F,IAAA,WACA,WAAAhE,KAAAmtJ,gBAAAa,eASAjkJ,IAAA,cACA/F,IAAA,WACA,OAAAhE,KAAAmtJ,gBAAAa,eASAjkJ,IAAA,eACA/F,IAAA,WAKA,IAJA,IACAixG,EADAj1G,KACAi1G,OACAk3C,EAFAnsJ,KAEAggD,OAAAmsG,eACAtqJ,EAAAozG,IAAAh0G,OAAA,EACAF,EAAA,EAAqBA,EAAAc,EAASd,IAAA,CAE9B,IADAk0G,EAAAl0G,GAAAi7H,YAAAj0H,KAAAE,IAAAgtG,EAAAl0G,GAAAi7H,YAAA/mB,EAAAl0G,GAAA20G,SAAAT,EAAAl0G,GAAA20G,SACAy2C,EACA,OAAAprJ,EAGA,YASAgJ,IAAA,eACA/F,IAAA,WACA,IACAixG,EADAj1G,KACAi1G,OACA6tB,EAFA9iI,KAEA8iI,iBAQA,OANA,IAAAA,GAAA7tB,KAAAh0G,OACAg0G,EAAAh0G,OAAA,EAEA6hI,KAYA/4H,IAAA,gBACA/F,IAAA,WAGA,OAAA+D,KAAAC,IAAAD,KAAAE,IAFAjI,KAEA+rJ,cAAAt1B,cAFAz2H,KAEA07H,cAFA17H,KAEA+8H,eAYA/3E,IAAA,SAAAqrE,GACArwH,KACA+rJ,cAAAt1B,cAAA1uH,KAAAE,IADAjI,KACA07H,aAAArL,MAQAtmH,IAAA,cACA/F,IAAA,WACA,IAAAuoJ,EAAAvsJ,KAAAusJ,qBACA,OAAAA,IAAA9vC,kBASA1yG,IAAA,aACA/F,IAAA,WACA,IAAAuoJ,EAAAvsJ,KAAAusJ,qBACA,OAAAA,IAAAnyD,YAAA,GAQAp1C,IAAA,SAAAipG,GACA,IAAA1B,EAAAvsJ,KAAAusJ,qBACAA,IACAA,EAAAnyD,WAAA6zD,MASAlkJ,IAAA,mBACA/F,IAAA,WACA,OAAAhE,KAAA4jI,iBAAAvV,oBASAtkH,IAAA,iBACA/F,IAAA,WACA,IAAAqoJ,EAAArsJ,KAAAqsJ,wBACA,OAAAA,IAAAvG,qBASA/7I,IAAA,gBACA/F,IAAA,WACA,IAAAqoJ,EAAArsJ,KAAAqsJ,wBACA,OAAAA,IAAA5G,eAAA,GAQAzgG,IAAA,SAAAshG,GACA,IAAA+F,EAAArsJ,KAAAqsJ,wBACAA,IACAA,EAAA5G,cAAAa,MASAv8I,IAAA,kBACA/F,IAAA,WACA,IAAAqoJ,EAAArsJ,KAAAqsJ,wBACA,QAAAA,KAAAtI,iBAQA/+F,IAAA,SAAAz9C,GACA,IAAA8kJ,EAAArsJ,KAAAqsJ,wBACAA,IACAA,EAAAtI,gBAAAx8I,OAKAolJ,EAzsBA,GA4sBApoG,EAAA,YAIA,SAAArhD,EAAAC,EAAA5D,GAEA,SAAA2uJ,EAAAn9E,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAIA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAwB,EAAA,SAAAwG,GAAmD,OAAAA,GAGnDhI,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAqC,OAAAluE,EAAA,SACrC,WAA2C,OAAAA,GAE3C,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,IAGA3xC,EAAA4uJ,GAAA,SAAA1oE,GAAsE,MAApBhwE,QAAAslE,MAAA0K,GAAoBA,GAEtE,IAAAziC,EAAAzjD,IAAA4Y,EAAAi2I,cACA,OAAAprG,EAAAjqC,SAAAiqC,EAGA,IAAAqrG,EAAA,yBACAC,EAAA,0BAAAD,EAAA,UAGA,SAAAE,EAAAl+G,GACA,OAAAA,EAAA,IAAA9nC,QAAA,uBAA6C,QAG7C,SAAAimJ,EAAAC,EAAAvrJ,EAAAwrJ,GACA,IAAAC,KACAA,EAAAD,MAEA,IAAAE,EAAA1rJ,EAAA0E,WACAinJ,EAAAD,EAAAzlJ,MAAA,uCACA,IAAA0lJ,EAAA,OAAAF,EAMA,IALA,IAIAxlJ,EAJA2lJ,EAAAD,EAAA,GAGAE,EAAA,IAAAzmJ,OAAA,cAAAimJ,EAAAO,GAAAR,EAAA,KAEAnlJ,EAAA4lJ,EAAA5sE,KAAAysE,IACA,kBAAAzlJ,EAAA,IACAwlJ,EAAAD,GAAAntJ,KAAA4H,EAAA,IAKA,IADA4lJ,EAAA,IAAAzmJ,OAAA,MAAAimJ,EAAAO,GAAA,yBAAAT,EAAA,YAAAC,EAAA,KACAnlJ,EAAA4lJ,EAAA5sE,KAAAysE,IACAH,EAAAtlJ,EAAA,MACAwlJ,EAAAD,GAAAntJ,KAAA4H,EAAA,IACAslJ,EAAAtlJ,EAAA,IAAA5J,EAAA4J,EAAA,IAAAwjB,GAEAgiI,EAAAxlJ,EAAA,IAAAwlJ,EAAAxlJ,EAAA,QACAwlJ,EAAAxlJ,EAAA,IAAA5H,KAAA4H,EAAA,IAGA,OAAAwlJ,EAGA,SAAAK,EAAAC,GAEA,OADArlJ,OAAAC,KAAAolJ,GACAxpI,OAAA,SAAAypI,EAAAnlJ,GACA,OAAAmlJ,GAAAD,EAAAllJ,GAAA9I,OAAA,IACG,GAqCHiC,EAAAC,QAAA,SAAA8tE,EAAAxoE,GACAA,QACA,IAAAgmJ,GACAj3F,KAAAj4D,EAAAotB,GAGAwiI,EAAA1mJ,EAAA02D,KAAuC3H,KAAA5tD,OAAAC,KAAA4kJ,IAxCvC,SAAAA,EAAAx9E,GAWA,IAVA,IAAAm+E,GACA53F,MAAAyZ,IAEAk+E,GACA33F,SAEA63F,GACA73F,SAGAw3F,EAAAI,IAEA,IADA,IAAAH,EAAArlJ,OAAAC,KAAAulJ,GACAruJ,EAAA,EAAmBA,EAAAkuJ,EAAAhuJ,OAAmBF,IAAA,CACtC,IAAA2tJ,EAAAO,EAAAluJ,GAEAuuJ,EADAF,EAAAV,GACA53F,MAEA,GADAu4F,EAAAX,GAAAW,EAAAX,QACAW,EAAAX,GAAAY,IAAAb,EAAAC,GAAAY,GAAA,CACAD,EAAAX,GAAAY,IAAA,EACAH,EAAAT,GAAAS,EAAAT,OACAS,EAAAT,GAAAntJ,KAAA+tJ,GAGA,IAFA,IAAAC,EAAAf,EAAAC,IAAAC,GAAAY,GAAAZ,GACAc,EAAA5lJ,OAAAC,KAAA0lJ,GACAr8H,EAAA,EAAqBA,EAAAs8H,EAAAvuJ,OAA2BiyB,IAChDk8H,EAAAI,EAAAt8H,IAAAk8H,EAAAI,EAAAt8H,QACAk8H,EAAAI,EAAAt8H,IAAAk8H,EAAAI,EAAAt8H,IAAAne,OAAAw6I,EAAAC,EAAAt8H,MAKA,OAAAi8H,EASoEM,CAAAhB,EAAAx9E,GAEpElhE,EAAA,GAEAnG,OAAAC,KAAAslJ,GAAA/nI,OAAA,SAAAuF,GAAoD,eAAAA,IAAsB7iB,QAAA,SAAA5G,GAE1E,IADA,IAAAwsJ,EAAA,EACAP,EAAAjsJ,GAAAwsJ,IACAA,IAEAP,EAAAjsJ,GAAA3B,KAAAmuJ,GACAjB,EAAAvrJ,GAAAwsJ,GAAA,6FACA3/I,IAAA,OAAA7M,EAAA,OAAAgrJ,EAAAtmJ,WAAAW,QAAA,eAAA2E,KAAAE,UAAAsiJ,IAAA,MAAsIP,EAAAjsJ,GAAAyN,IAAA,SAAAjP,GAA+C,OAAAwL,KAAAE,UAAA1L,GAAA,KAAA+sJ,EAAAvrJ,GAAAxB,GAAAkG,aAAyExB,KAAA,eAG9P2J,IAAA,IAAAm+I,EAAAtmJ,WAAAW,QAAA,eAAA2E,KAAAE,UAAA6jE,IAAA,MAA4Gk+E,EAAA33F,KAAA7mD,IAAA,SAAAjP,GAA4C,OAAAwL,KAAAE,UAAA1L,GAAA,KAAA+sJ,EAAAj3F,KAAA91D,GAAAkG,aAAsExB,KAAA,iBAE9N,IAAAupJ,EAAA,IAAAhgJ,OAAAigJ,MAAA7/I,IAAqCvM,KAAA,oBACrC,GAAAiF,EAAAonJ,KAAqB,OAAAF,EAErB,IAEAG,GAFAngJ,OAAA00G,KAAA10G,OAAAogJ,WAAApgJ,OAAAqgJ,QAAArgJ,OAAAsgJ,OAEAhwB,gBAAA0vB,GACAO,EAAA,IAAAvgJ,OAAAm0G,OAAAgsC,GAGA,OAFAI,EAAA3rC,UAAAurC,EAEAI,IAMA,SAAAhtJ,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA4oJ,EAAA5wJ,EAAA,IACA+sF,EAAA/sF,EAAA,GACA6wJ,EAAA7wJ,EAAA,GACA8wJ,EAAA9wJ,EAAA,GACA+wJ,EAAA/wJ,EAAA6+C,EAAAiyG,GAoFA9rG,EAAA,QAzEA,SAAAp4C,GAEA,IAAA26C,EAAA,IAAAwpG,EAAA/6I,EACAuxC,EAAA70C,QAAA,SAAAslD,GACA,QAAA53C,EAAA7a,UAAA7D,OAAA6P,EAAAjF,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAsFA,EAAAgC,EAAahC,IACnG7M,EAAA6M,EAAA,GAAA7Y,UAAA6Y,GAGAmpC,EAAAw+B,KAAA/4E,MAAAu6C,GAAAyQ,KAAAxiD,OAAAjE,KAGAg2C,EAAAuJ,IAAA,SAAAkH,GACA,QAAA4jB,EAAAr2E,UAAA7D,OAAA6P,EAAAjF,MAAAsvE,EAAA,EAAAA,EAAA,KAAAE,EAAA,EAA0FA,EAAAF,EAAeE,IACzGvqE,EAAAuqE,EAAA,GAAAv2E,UAAAu2E,GAGAv0B,EAAAk/B,eAAAz5E,MAAAu6C,GAAAyQ,GAAAxiD,OAAAjE,KAGA,IAAA6yG,EAAA,SAAAnkG,EAAA1O,GACA3E,EAAAi4G,aAAsB7sD,MAAA/3C,EAAA1O,UAGtB3E,EAAAyS,iBAAA,mBAAAY,GACA,IAAA1O,EAAA0O,EAAA1O,KAEA,OAAAA,EAAAi0B,KACA,WACA,IAAAib,EAAA9yC,KAAAC,MAAA2D,EAAAkvC,QACA7zC,EAAA+9F,QAAA,IAAAimD,EAAA,EAAArpG,EAAAh2C,EAAA+nF,cAAA74C,EAAAlvC,EAAAmzF,QACA,IACAr6F,OAAAwmJ,EAAA,EAAAxmJ,EAAA,IAAAo2C,EAAA66B,OACS,MAAA4K,GACThwE,QAAAC,KAAA,wCAGAiuG,EAAA,aACA,MACA,YACAx3G,EAAA+9F,QAAA3oG,KAAAuP,SAAAimF,YAAAjmF,EAAA+7E,YAAA/7E,EAAAg8E,WAAAh8E,EAAAi8E,WAAAj8E,EAAAi/E,WAAAj/E,EAAAq5F,cAAAr5F,EAAAs5F,YAAAt5F,EAAAq/E,WAAAr/E,EAAAk8E,SAAAl8E,EAAAs/E,mBAAAt/E,EAAAu5F,mBAQAvjD,EAAApnC,GAAA4sE,EAAA,EAAAzO,eAAA8lC,GACA78D,EAAApnC,GAAA4sE,EAAA,EAAAxO,0BAAA6lC,GACA78D,EAAApnC,GAAA4sE,EAAA,EAAApO,YAAAylC,GACA78D,EAAApnC,GAAA4sE,EAAA,EAAA/N,MAAAolC,GACA78D,EAAApnC,GAAA4sE,EAAA,EAAAtO,sBAAA2lC,GACA78D,EAAApnC,GAAA4sE,EAAA,EAAAvO,sBAAA4lC,GACA78D,EAAApnC,GAAA4sE,EAAA,EAAA9O,eAAAmmC,GAGA78D,EAAApnC,GAAA4sE,EAAA,EAAArO,kBAAA,SAAAz+D,EAAA1O,GACA,IAAAy/I,KACAzwF,GAAmBvI,MAAA/3C,EAAA1O,QACnBA,EAAAi3F,QACAjoC,EAAAioC,MAAAj3F,EAAAi3F,MAAArjB,OACA6rE,EAAAhvJ,KAAAuP,EAAAi3F,MAAArjB,eACA5zE,EAAAi3F,OAEAj3F,EAAAk3F,QACAloC,EAAAkoC,MAAAl3F,EAAAk3F,MAAAtjB,OACA6rE,EAAAhvJ,KAAAuP,EAAAk3F,MAAAtjB,eACA5zE,EAAAk3F,OAEA77F,EAAAi4G,YAAAtkD,EAAAywF,OAQA,SAAArtJ,EAAAC;;AAGAgO,OAAAjR,UAAAswJ,UACA,WACA,aACA,IAAAplJ,EAAA,WAEA,IACA,IAAAimE,KACAo/E,EAAA7mJ,OAAAwB,eACA2F,EAAA0/I,EAAAp/E,QAAAo/E,EACI,MAAA11E,IACJ,OAAAhqE,EAPA,GASAnJ,KAAmBA,SACnB4oJ,EAAA,SAAA7uC,GACA,SAAA3hH,KACA,MAAAgkD,YAEA,IAAA3M,EAAAlmC,OAAAnR,MACA,GAAA2hH,GAAA,mBAAA/5G,EAAA8D,KAAAi2G,GACA,MAAA39D,YAEA,IAAA0sG,EAAAr5G,EAAAp2C,OACA8+I,EAAA5uI,OAAAwwG,GACAgvC,EAAA5Q,EAAA9+I,OACAywB,EAAAg/H,EACA,GAAA5rJ,UAAA7D,OAAA,GACA,IAAAmN,EAAAtJ,UAAA,QACA4I,IAAAU,IAEAsjB,EAAAtjB,EAAA2M,OAAA3M,GAAA,IACAsjB,IACAA,EAAA,GAIA,IACAlvB,EADAuF,KAAAC,IAAAD,KAAAE,IAAAypB,EAAA,GAAAg/H,GACAC,EACA,GAAAnuJ,EAAA,EACA,SAGA,IADA,IAAAoK,GAAA,IACAA,EAAA+jJ,GACA,GAAAt5G,EAAAmqD,WAAAh/F,EAAAoK,IAAAmzI,EAAAv+C,WAAA50F,GACA,SAGA,UAEAxB,EACAA,EAAA+F,OAAAjR,UAAA,YACAqH,MAAAipJ,EACAllJ,cAAA,EACAC,UAAA,IAGA4F,OAAAjR,UAAAswJ,WAtDA,MA6DA,SA3qlBAttJ,EAAAC,QAAA6B,6BCHA,IAAA5B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBqxJ,EAAkBrxJ,EAAQ,QAE1BsxJ,EAAsBtxJ,EAAQ,QAE9BuxJ,EAAkBvxJ,EAAQ,QAE1Bib,EAAcjb,EAAQ,QAoBtBwxJ,GAAA,uCACA96H,EAAA7yB,EAAAG,qBACAC,KAAA,eAKAgb,KAAA,SAAA7a,EAAAC,GACAqyB,EAAArxB,WAAA5E,KAAA,OAAA8E,YAKA9E,KAAAgxJ,iBAAA,IAAAH,EAAAjtJ,EAAAe,UAAA+a,GAAA,QAAAma,EAAArvB,KAAAxK,KAAAixJ,SAAAjxJ,QAMAyD,OAAA,SAAA4yB,EAAA1yB,EAAAC,EAAAggC,GACA,IAqGA,SAAAvN,EAAA1yB,EAAAigC,GACA,OAAAA,GAAA,mBAAAA,EAAApgC,MAAAG,EAAAutJ,gBACA5hG,SAAA,eACAyG,MAAAnyB,IACG,KAAAvN,EAzGH86H,CAAA96H,EAAA1yB,EAAAigC,GAAA,CAIA5jC,KAAAq2B,YACAr2B,KAAA4D,MACA5D,KAAAg/B,MAAAkG,YACA,IAAAksH,EAAApxJ,KAAAqxJ,WAIA,GAHArxJ,KAAAqxJ,WAAA,IAAA72I,EAAAskB,MACA9+B,KAAAg/B,MAAAC,IAAAj/B,KAAAqxJ,YAEAh7H,EAAAryB,IAAA,SAIA,IAAAstJ,EAwGA,SAAAj7H,EAAA1yB,GACA,OAAAA,EAAAG,aAAA,WAAAuyB,EAAAryB,IAAA,kBAzGAykE,CAAApyC,EAAA1yB,GACA03B,EAAAi2H,EAAAjjI,iBACAwiD,EAAAx6C,EAAAi6C,qBACAihF,EAAA1gF,EAAA73D,MACAqf,EAAAhC,EAAAZ,KAAA4C,IACAm5H,EAAAn2H,EAAAo2H,cAAAp5H,GACAq5H,EAAA73H,EAAAnwB,QACAioJ,uBAAAJ,GACKC,GACLI,EAAA,IAAAhB,EAAAv6H,EAAAq7H,GACA73H,EAAA4E,KAAAsyH,EAAAa,EAAA3yH,IAAA2yH,GAEA5xJ,KAAAqxJ,WAAApyH,IAAA2yH,EAAAC,YAEA7xJ,KAAA8xJ,wBAAAJ,EAAA7gF,EAAAx6C,EAAAi7H,EAAAC,EAAA3tJ,GAEA,IAAAmuJ,EAAAnuH,IAAA,IAAAA,EAAApiC,UAAA,KAAA60B,EACA7b,EAAAw3I,gBAAAZ,EAAApxJ,KAAAqxJ,WAAAU,MASAD,wBAAA,SAAAJ,EAAA7gF,EAAAx6C,EAAAi7H,EAAAC,EAAA3tJ,GAEA,IAAAo3B,EAAA3E,EAAAZ,KAAAqG,YACAm2H,EAAAj3H,EAAA,GAAAA,EAAA,GACAlnB,EAAA/L,KAAAC,IAAA,MAAAD,KAAAY,IAAAspJ,IAIA/pH,EAAA1tB,EAAAqsB,aAAA6C,QACArlC,EAAA22B,EAAA,GACAz2B,GAAAgtJ,EAAA,EACAv4I,MAAAi5I,EACAh5I,OAAAs4I,IAEArpH,EAAA7jC,GAAAyP,EACAo0B,EAAAlvB,OAAA,EAAAlF,EAEA9T,KAAAgxJ,iBAAAkB,OACAC,iBAAA,EACAt6H,SAAA65H,EAAA75H,SACAzpB,SAAAsjJ,EAAAtjJ,WACKgkJ,YACLC,QAAA,KACAp2H,SAAA60H,EAAAwB,sBAAApqH,GACAqqH,iBAAAzB,EAAA0B,yBAAAtqH,EAAAtkC,EAAA0tJ,GACAmB,0BAAA3B,EAAA4B,2BAAAxqH,EAAA,MACKyqH,aACLC,UAAA,QACAC,WAAAhiF,EACAiiF,eAAA,IACKC,aAqCL,SAAA18H,GACA,IAAAZ,EAAAY,EAAAZ,KACA,OAAAoE,EAAAlpB,IAAA0lB,EAAAg6C,gBAAA,SAAA32B,GACA,OACAk5G,UAAA,QACAP,QAAA,KACAjyC,OAAA3qF,EAAAqB,YAAA4iB,EAAA,OAAAjkB,EAAAqB,YAAA4iB,EAAA,WA3CKs5G,CAAA38H,KAEL46H,SAAA,SAAAgC,EAAAr6H,GAEA,IAAAvC,EAAAr2B,KAAAq2B,UACAZ,EAAAY,EAAAZ,KACA+6C,EAAA32C,EAAAlpB,IAAAsiJ,EAAA,SAAAC,GACA,OAAAz9H,EAAAsuC,YAAAmvF,EAAA9yC,MAAA,OAAA3qF,EAAAsuC,YAAAmvF,EAAA9yC,MAAA,YAKA/pF,EAAApZ,OAAA6zD,WAAAl4C,EAAAu6H,OAAAv6H,EAAAk6H,gBAEA9yJ,KAAA4D,IAAAQ,gBACAZ,KAAA,iBACA4vJ,eAAA/8H,EAAA30B,GACA8uE,eAQAzrE,QAAA,WACA/E,KAAAgxJ,iBAAAjsJ,aA0BA,IAAA9B,EAAAgzB,EACA/yB,EAAAC,QAAAF,0BC9KA,IAAA42B,EAAat6B,EAAQ,QAErBsjC,EAAqBtjC,EAAQ,QAE7B8zJ,EAAgB9zJ,EAAQ,QAExB+zJ,EAAoB/zJ,EAAQ,QAE5Bib,EAAcjb,EAAQ,QAEtBm4C,EAAiBn4C,EAAQ,QAEzBg0J,EAAiBh0J,EAAQ,QAEzBi0J,EAAaj0J,EAAQ,QAErB06B,EAAgB16B,EAAQ,QAoBxBk0J,EAAA/7G,EAAA+7G,UACAh1H,EAAA5E,EAAA4E,KACA00B,EAAAprD,KAAAC,IACA2jC,EAAA5jC,KAAAE,IAEAyrJ,EAAA,GACAC,EAAA,EAQAC,EAAAN,EAAA5pJ,QACAlG,KAAA,uBAKAgb,KAAA,WACAo1I,EAAAhvJ,WAAA5E,KAAA,OAAA8E,WAKA9E,KAAA6zJ,WAKA7zJ,KAAA8zJ,iBAKA9zJ,KAAA+zJ,eAKA/zJ,KAAAg0J,QAKAh0J,KAAAi0J,WAKAj0J,KAAAk0J,yBAKAl0J,KAAAm0J,UAKAn0J,KAAAo0J,WAOAC,SAAA,SAAAC,EAAA3wJ,EAAAC,EAAAggC,GACAA,GAAA,oBAAAA,EAAApgC,MAAAogC,EAAA73B,OAAA/L,KAAAk1D,KACAl1D,KAAAu0J,cAOAA,WAAA,WACAv0J,KAAAg/B,MAAAkG,YACA,IAAAovH,EAAAt0J,KAAAs0J,eACAE,EAAAx0J,KAAAg/B,MACAh/B,KAAAg0J,QAAAM,EAAAtwJ,IAAA,UACAhE,KAAAi0J,WAAAK,EAAAtwJ,IAAA,cAEAhE,KAAAy0J,iBAEAz0J,KAAA00J,WAAAF,GAEA,IAAAG,EAAAL,EAAAtwJ,IAAA,QAEAhE,KAAA40J,gBAAAJ,EAAAG,EAAA,GAEA30J,KAAA40J,gBAAAJ,EAAAG,EAAA,GAGA30J,KAAA60J,aAAA,GAIA70J,KAAA80J,iBAAAN,GAEAx0J,KAAA60J,cAEA70J,KAAA+0J,2BAEA/0J,KAAAg1J,6BAEAh1J,KAAAi1J,cAAAT,IAMAI,gBAAA,SAAA51H,EAAA21H,EAAAO,GACA,GAAAP,EAAA,CAKA,IAAAtjH,EAAAsjH,EAAA,EAAAO,GACA7jH,EAAA,MAAAA,IAAA,MACA,IAAAijH,EAAAt0J,KAAAs0J,eACAa,EAAAb,EAAAtwJ,IAAA,WACAoxJ,EAAAd,EAAAc,SACAC,EAAAr1J,KAAA6zJ,QAAAwB,SAEAjnJ,EAAApO,KAAAs1J,iBAAAF,EAAA,SAAAF,GAAAC,EAAAC,EAAA,GAAAD,GAAAE,GAEA18H,EAAA34B,KAAAs1J,gBAAA,IAAAJ,EAAA,eAAAG,GAEAv4I,EAAA9c,KAAAg0J,QACAuB,EAAAv1J,KAAAs0J,eAAAiB,eACAv1J,KAAAg/B,MAAAC,IAAA,IAAAzkB,EAAA0wB,MACA3yB,OACAlU,EAAA+J,EAAA,GACA7J,EAAA6J,EAAA,GACAunC,kBAAA,eAAA74B,EAAA,SAAA6b,EACA+c,UAAA,eAAA54B,EAAA6b,EAAA,SACA0Y,OACAoD,SAAA8gH,EAAAC,UACAl+G,SAAAi+G,EAAAE,qBAQAf,WAAA,SAAAgB,GACA,IAAApB,EAAAt0J,KAAAs0J,eACAqB,EAAA31J,KAAA6zJ,QACAuB,EAAAd,EAAAc,SACAt4I,EAAA9c,KAAAg0J,QACA4B,EAAA51J,KAAAi0J,WACA4B,EAAArC,EAAAsC,aAAAxB,EAAAt0J,KAAA4D,IAAAwxJ,GAEAC,EAAAM,EAAAN,SAAAr1J,KAAA+1J,gBAAAF,GAGAR,EAAAp2H,IAAA02H,EAAAK,WAAAC,KACAZ,EAAAp2H,IAAA02H,EAAA1nI,QAAAgoI,EAAA,KAAAL,EAAAM,EAAAl2J,KAAAg0J,SAAA,KAAAn6H,EAAArvB,KAAAxK,KAAAm2J,YAAAn2J,KAAA,UAAA65B,EAAArvB,KAAAxK,KAAAm2J,YAAAn2J,KAAA,YACA,IAAAg1C,EAAAs/G,EAAAiB,eAAAa,YAAA,KACAC,EAAA1qH,EAAAqJ,EAAAh8B,MAAAg8B,EAAA/7B,QAEA28I,IACAD,EAAAW,gBACAX,EAAAY,gBACAZ,EAAAa,qBAEAx2J,KAAAy2J,cAAApB,EAAA,EAAAD,EAAAiB,EAAAv5I,EAAA+4I,GAEA71J,KAAAy2J,cAAApB,EAAA,EAAAD,EAAAiB,EAAAv5I,EAAA+4I,IAGA71J,KAAA02J,iBAAArB,EAAAD,EAAAiB,EAAAv5I,GAEA44I,EAAAz2H,IAAAo2H,IAMAoB,cAAA,SAAApB,EAAAsB,EAAAvB,EAAAiB,EAAAv5I,GACA,IAAA85I,EAAA/8H,EAAArvB,KAAAxK,KAAAm2J,YAAAn2J,KAAA22J,GAAA,GACAE,EAAAh9H,EAAArvB,KAAAxK,KAAAm2J,YAAAn2J,KAAA22J,GAAA,GACAG,EAAAb,EA2gBA,SAAAU,EAAAN,GACA,WAAAM,IAAA,MAAAN,EAAA,IAAAA,SAAA,MAAAA,EAAA,IAAAA,MA5gBAU,CAAAJ,EAAAN,GAAAH,EAAAl2J,KAAAg0J,SAAA4C,EAAAC,GACAC,EAAA1oJ,SAAA,GAAAgnJ,EAAA,GACAC,EAAAp2H,IAAA63H,GAKA,IAAAvB,EAAAv1J,KAAAs0J,eAAAiB,eACAyB,EAAA,IAAAx8I,EAAA0wB,MACA+rH,WAAA,EACAzxC,MAAAoxC,EACAM,YAAA,SAAA/yJ,GAEAkvJ,EAAAvxJ,KAAAqC,EAAAozD,QAEA4/F,UAAAN,EACAt+I,OACAlU,EAAA,EACAE,EAAA,EACA8sC,KAAA,GACAoD,SAAA8gH,EAAAC,UACAl+G,SAAAi+G,EAAAE,kBAGAz1J,KAAAg/B,MAAAC,IAAA+3H,GACA,IAAAI,GAAA,eAAAt6I,EAAAu5I,EAAA,MAAAA,EAAA,eAAAv5I,EAAA,IAAA65I,GAAA,IAAAN,EAAA,IAAAA,EAAA,IAAAM,GAAAN,EAAA,EAAAA,EAAA,GACAV,EAAA31J,KAAA6zJ,QACA8B,EAAAW,aAAAK,GAAAG,EACAnB,EAAAa,kBAAAG,GAAAS,EACAzB,EAAAY,aAAAI,GAAAK,GAMAN,iBAAA,SAAArB,EAAAD,EAAAiB,EAAAv5I,GACA,IAAAgL,EAAAmuI,IAAA,cACAnuI,EAAA1Z,SAAA,GAAAgnJ,EAAA,GACAttI,EAAA/kB,MACAs0J,WAAA,EACAlzH,QAAA,IAEAkxH,EAAAp2H,IAAAnX,GACA,IAAAytI,EAAAv1J,KAAAs0J,eAAAiB,eACA+B,EAAA,IAAA98I,EAAA0wB,MACA/G,QAAA,EACAkzH,WAAA,EACA9+I,OACAlU,EAAA,EACAE,EAAA,EACA8sC,KAAA,GACAoD,SAAA8gH,EAAAC,UACAl+G,SAAAi+G,EAAAE,kBAGAz1J,KAAAg/B,MAAAC,IAAAq4H,GACA,IAAAC,GAAA,eAAAz6I,EAAAu5I,EAAA,EAAA1C,EAAA,KACAgC,EAAA31J,KAAA6zJ,QACA8B,EAAA7tI,YACA6tI,EAAA2B,iBACA3B,EAAA4B,uBAMApB,YAAA,SAAAQ,EAAAxD,EAAAplH,EAAAC,GACA,GAAAhuC,KAAAi0J,WAAA,CAMA,GAFAj0J,KAAAm0J,WAAAhB,GAEAA,EAAA,CAEA,IAAAqE,EAAAx3J,KAAAs1J,iBAAAvnH,EAAAC,GAAAhuC,KAAA6zJ,QAAAwB,UAAA,GAEAr1J,KAAAy3J,gBAAAd,EAAAa,EAAA,IAIAx3J,KAAA60J,cAIA1B,KAAAnzJ,KAAAs0J,eAAAtwJ,IAAA,aAEAhE,KAAA4D,IAAAQ,gBACAZ,KAAA,kBACAuI,KAAA/L,KAAAk1D,IACAwiG,YAAA13J,KAAAs0J,eAAA5yJ,GACAgpB,SAAA1qB,KAAA8zJ,cAAAxxJ,UAIA6wJ,GACAnzJ,KAAAo0J,WAAAp0J,KAAA23J,0BACKC,EAAA53J,KAAAs0J,iBACLt0J,KAAA63J,qBAAA73J,KAAA+zJ,YAAA4C,IAAA,KAOAlC,eAAA,WACA,IAAAH,EAAAt0J,KAAAs0J,eACAwD,EAAA93J,KAAA8zJ,cAAAQ,EAAAyD,cACAC,EAAA1D,EAAAx4H,YACAm8H,GAAA,EAAA3D,EAAAc,SAAA,IACAp1J,KAAA+zJ,aAAAN,EAAAqE,EAAA,GAAAE,EAAAC,GAAA,GAAAxE,EAAAqE,EAAA,GAAAE,EAAAC,GAAA,KASAR,gBAAA,SAAAd,EAAAz+H,GACAA,KAAA,EACA,IAAAo8H,EAAAt0J,KAAAs0J,eACA4D,EAAAl4J,KAAA+zJ,YACAkE,GAAA,EAAA3D,EAAAc,SAAA,IACA7B,EAAAr7H,EAAAggI,EAAAD,EAAAtB,EACA,GACA,IAAAqB,EAAA1D,EAAAx4H,YAEA97B,KAAA8zJ,eAAAL,EAAAyE,EAAA,GAAAD,EAAAD,GAAA,GAAAvE,EAAAyE,EAAA,GAAAD,EAAAD,GAAA,KAMAnD,YAAA,SAAAsD,GACA,IAAA7D,EAAAt0J,KAAAs0J,eACA0D,EAAA1D,EAAAx4H,YACA65H,EAAA31J,KAAA6zJ,QACAuE,GAAA,EAAA9D,EAAAc,SAAA,IACAiD,EAAAF,EAAAC,EAAAp4J,KAAA+zJ,YAEAuE,EAAAt4J,KAAAu4J,iBAAAv4J,KAAA8zJ,cAAAkE,EAAAK,EAAA,WAEAG,EAAAx4J,KAAAu4J,iBAAAP,IAAAI,EAAA,cAEAzC,EAAA1nI,QAAAquB,UACA5kC,KAAA4gJ,EAAAG,SACA5lJ,QAAAylJ,EAAAzlJ,UACK0uB,SAAA,SAAA+2H,EAAAI,WACL/C,EAAAK,WAAA15G,UACA5kC,KAAA8gJ,EAAAC,SACA5lJ,QAAA2lJ,EAAA3lJ,UACK0uB,SAAA,SAAAi3H,EAAAE,WAEL14J,KAAA24J,cAAAN,EAAAC,IAMAC,iBAAA,SAAAT,EAAAE,EAAAE,EAAAU,GACA,IAAA/tJ,GACA+tJ,aACAC,uBAAA,GAGA32H,EAAAliC,KAAA84J,mBAAAhB,EAAAjtJ,GAEAkuJ,GAAA/4J,KAAAg5J,oBAAAlB,EAAA,gBAAAjtJ,GAAA7K,KAAAg5J,oBAAAlB,EAAA,gBAAAjtJ,IAEA6tJ,EAAA14J,KAAAi5J,iBAAAf,EAAAa,GAEA,OACAN,SAAA,IAAA51H,EAAA,QAAAX,GACAw2H,YACAQ,cAAAh3H,EAAA,GAAA/7B,MAAA+7B,IAAAjhC,OAAA,GAAAkF,SAOA2yJ,mBAAA,SAAAhB,EAAAjtJ,GAIA,IAEAq3B,KACA5a,GAAAwwI,EAAA,GAAAA,EAAA,IAHA,IAIA51H,EAAA3gC,MACA4E,MAAAnG,KAAAg5J,oBAAAlB,EAAA,WAAAjtJ,GACA63B,OAAA,IAGA,QAAA3hC,EAAA,EAAmBA,EATnB,IASqCA,IAAA,CACrC,IAAAo4J,EAAArB,EAAA,GAAAxwI,EAAAvmB,EAEA,GAAAo4J,EAAArB,EAAA,GACA,MAGA51H,EAAA3gC,MACA4E,MAAAnG,KAAAg5J,oBAAAG,EAAA,QAAAtuJ,GACA63B,OAAA3hC,EAlBA,MA0BA,OAJAmhC,EAAA3gC,MACA4E,MAAAnG,KAAAg5J,oBAAAlB,EAAA,WAAAjtJ,GACA63B,OAAA,IAEAR,GAMA+2H,iBAAA,SAAAf,EAAAa,GACA,IAAA3D,EAAAp1J,KAAAs0J,eAAAc,SACA,QAAAA,EAAA,GAAA2D,EAAA,GAAAb,EAAA,KAAA9C,EAAA,GAAA8C,EAAA,KAAA9C,EAAA,GAAA8C,EAAA,KAAA9C,EAAA,GAAA2D,EAAA,GAAAb,EAAA,MAMAnC,gBAAA,SAAAF,GACA,IAAA/4I,EAAA9c,KAAAg0J,QACAz3H,EAAAv8B,KAAAs0J,eAAAtwJ,IAAA,WACA,WAAAwW,EAAAskB,MAAA,eAAAhiB,GAAAyf,EAGK,eAAAzf,GAAAyf,GACLhrB,MAAA,WAAAskJ,IAAA,WACAh+H,UAAA9vB,KAAAgwB,GAAA,GACK,aAAAjb,GAAAyf,GAGLhrB,MAAA,SAAAskJ,GAAA,cAFAtkJ,MAAA,SAAAskJ,GAAA,gBANAtkJ,MAAA,WAAAskJ,GAAA,YACAh+H,SAAA9vB,KAAAgwB,GAAA,KAcA4gI,cAAA,SAAAT,EAAAI,GACA,GAAAt4J,KAAAi0J,WAAA,CAIA,IAAA0B,EAAA31J,KAAA6zJ,QACAS,EAAAt0J,KAAAs0J,eACAgC,EAAAX,EAAAW,aACAC,EAAAZ,EAAAY,aACA93H,GAAA,cAAAk4H,GACA,IAAAG,EAAAR,EAAAK,GACAG,EAAAx6G,SAAA,OAAAg8G,EAAAY,aAAAvC,IACAG,EAAA1oJ,SAAA,GAAA8pJ,EAAAvB,GAEA,IAAAyC,EAAA5+I,EAAAwsB,eAAA2uH,EAAAa,kBAAAG,GAAAn8I,EAAA6+I,aAAAvC,EAAA92J,KAAAg/B,QACAu3H,EAAAI,GAAAr6G,UACAj4C,EAAA+0J,EAAA,GACA70J,EAAA60J,EAAA,GACA/nH,KAAAijH,EAAAgF,gBAAAt5J,KAAA8zJ,cAAA6C,IACAhhH,kBAAA,SACAD,UAAA11C,KAAAs1J,gBAAA,eAAAt1J,KAAAg0J,QAAA,IAAA2C,EAAA,sBAAAhB,EAAAN,aAEKr1J,QAULu5J,eAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACA,IAAArF,EAAAt0J,KAAAs0J,eACA0D,EAAA1D,EAAAx4H,YACAs5H,EAAAd,EAAAc,SACA6C,GAAA,EAAA7C,EAAA,IACA1jI,EAAA+hI,EAAA+F,EAAAxB,EAAAC,GAAA,GACAtC,EAAA31J,KAAA6zJ,QACA/rI,EAAA6tI,EAAA7tI,UAEA,GAAAA,EAAA,CAIAA,EAAA1Z,SAAA,GAAAsjB,EACA5J,EAAA/kB,KAAA,gBACA+kB,EAAAyZ,SAAA,SA2OA,SAAAq4H,EAAAD,EAAAjoI,EAAAmoI,GACA,OAAAD,IACA,GAAAzmG,EAAAwmG,EAAAhuH,EAAAja,EAAA,MAAAiiI,EAAA,MAAAxgG,EAAAwmG,EAAAhuH,EAAAkuH,EAAAnoI,EAAA,QACA,mBA9OAooI,GAAAJ,EAAAC,EAAAjoI,EAAA0jI,EAAA,KACA,IAGAjvJ,EAAAnG,KAAAg5J,oBAAAQ,EAAA,SAFAX,uBAAA,IAGA/wI,EAAAw0B,SAAA,OAAAn2C,GAEA,IAAAizJ,EAAA5+I,EAAAwsB,eAAA2uH,EAAA4B,oBAAA/8I,EAAA6+I,aAAAvxI,EAAA9nB,KAAAg/B,QACAs4H,EAAA3B,EAAA2B,eACAA,EAAAv0J,KAAA,gBAEA,IAAA41B,EAAA34B,KAAAs1J,gBAAA,OAAAK,EAAAN,UAEAv4I,EAAA9c,KAAAg0J,QACAsD,EAAAh7G,UACAjL,MAAAqoH,GAAA,IAAApF,EAAAgF,gBAAAG,GACA9jH,kBAAA,eAAA74B,EAAA6b,EAAA,SACA+c,UAAA,eAAA54B,EAAA,SAAA6b,EACAt0B,EAAA+0J,EAAA,GACA70J,EAAA60J,EAAA,OAOArE,yBAAA,WACA,IAAA5oJ,EAAAnM,KAEAA,KAAA6zJ,QAAAwB,SAAA31I,GAAA,qBAAAvb,GAGA,GAFAgI,EAAAioJ,WAAA,GAEAjoJ,EAAAgoJ,UAAA,CACA,IAAAiB,EAAAjpJ,EAAAmoJ,eAAAc,SAEA1jI,EAAAvlB,EAAAmpJ,iBAAAnxJ,EAAAG,QAAAH,EAAAK,SAAA2H,EAAA0nJ,QAAAwB,UAAA,MAIA3jI,EAAA,GAAAyhC,EAAAxnB,EAAA,EAAAja,EAAA,IAAA0jI,EAAA,IAEAjpJ,EAAA0rJ,qBAAAnmI,EAAA,MAAAA,EAAA,IAAAA,EAAA,IAAA0jI,EAAA,OAEK11I,GAAA,sBAGLvT,EAAAioJ,WAAA,GACAjoJ,EAAAgoJ,WAAAhoJ,EAAAwrJ,6BAOA3C,2BAAA,WACA,IAAAt0J,EAAAV,KAAA4D,IAAAe,QAEA3E,KAAAs0J,eAAAr3I,OAAA88I,WACAr5J,EAAAgf,GAAA,YAAA1f,KAAAg6J,8BAAAh6J,MACAU,EAAAgf,GAAA,WAAA1f,KAAAi6J,eAAAj6J,OAEAA,KAAAk6J,6BAOArC,qBAAA,SAAAsC,EAAAC,GACA,IAAA9F,EAAAt0J,KAAAs0J,eACAc,EAAAd,EAAAc,SAEA,GAAAd,EAAAr3I,OAAA88I,UAAA,CAIA,IAAA9B,GAAA,EAAA7C,EAAA,IACA4C,EAAA1D,EAAAx4H,YAEAq+H,EAAAhnG,EAAAxnB,EAAAssH,EAAA,GAAAkC,GAAAlC,EAAA,IACA,IAAA0B,EAiKA,SAAArF,EAAA0D,EAAAC,GACA,IAAA0B,EAAAjG,EAAA,EACA2G,EAAA/F,EAAAtwJ,IAAA,qBAEAq2J,IACAV,EAAAlG,EAAA4G,EAAArC,EAAAC,GAAA,MAGA,OAAA0B,EAzKAW,CAAAhG,EAAA0D,EAAAC,GACAsC,GAAAJ,EAAAR,EAAAQ,EAAAR,GACAH,EAAA/F,EAAA0G,EAAAlC,EAAAD,GAAA,GACAwC,GAAA/G,EAAA8G,EAAA,GAAAtC,EAAAD,GAAA,GAAAvE,EAAA8G,EAAA,GAAAtC,EAAAD,GAAA,IAGAuC,EAAA,GAAAtC,EAAA,KAAAuC,EAAA,IAAA/gH,KACA8gH,EAAA,GAAAtC,EAAA,KAAAuC,EAAA,GAAA/gH,KAGA2gH,IACAI,EAAA,MAAA/gH,IACAz5C,KAAAu5J,eAAAC,EAAAgB,EAAA,QAAAb,GACOa,EAAA,KAAA/gH,IACPz5C,KAAAu5J,eAAAC,EAAAgB,EAAA,QAAAb,GAEA35J,KAAAu5J,eAAAC,IAAA,KAAAG,IAUA,IAAAc,EAAAz6J,KAAAk0J,sBACAwG,MAEAN,GAAAxC,EAAAtD,MACAoG,EAAA16J,KAAAk0J,sBAAAI,EAAAqG,sBAAAH,IAGA,IAAAI,EAAA3gI,EAAA4gI,gBAAAJ,EAAAC,GAEA16J,KAAA86J,kBAAA,WAAAtH,EAAAuH,iBAAAH,EAAA,KAEA56J,KAAA86J,kBAAA,YAAAtH,EAAAuH,iBAAAH,EAAA,OAMAZ,8BAAA,SAAA71J,GACA,IAAA1D,EAAA0D,EAAA5D,OACA+zJ,EAAAt0J,KAAAs0J,eAEA,GAAA7zJ,GAAA,MAAAA,EAAA29B,UAAA,CAIA,IAAAk8B,EAAAt6D,KAAA2D,QAAAw2D,iBAAA15D,EAAA0xB,aAEA,GAAAmiI,EAAA0G,eAAA1gG,GAAA,CAIA,IAAAxpD,EAAAwpD,EAAApuC,QAAAzrB,EAAA4hB,UACA9a,EAAAuJ,EAAA9M,IAAAswJ,EAAA2G,iBAAAnqJ,GAAArQ,EAAA29B,WAAA,GAEA3zB,MAAAlD,IACAvH,KAAAu5J,eAAAhyJ,QAOA0yJ,eAAA,WACA,IAAAtE,EAAA31J,KAAA6zJ,QACA8B,EAAA7tI,WAAA6tI,EAAA7tI,UAAA/kB,KAAA,gBACA4yJ,EAAA2B,gBAAA3B,EAAA2B,eAAAv0J,KAAA,iBAMA40J,wBAAA,WACA33J,KAAAi6J,iBAEA,IAAAvkF,EAAA11E,KAAAk0J,sBAEAl0J,KAAA86J,kBAAA,WAAAtH,EAAAuH,iBAAArlF,IAEAA,EAAAz0E,OAAA,GAMAi5J,0BAAA,WACAl6J,KAAAi6J,iBAEA,IAAAv5J,EAAAV,KAAA4D,IAAAe,QACAjE,EAAA2vD,IAAA,YAAArwD,KAAAg6J,+BACAt5J,EAAA2vD,IAAA,WAAArwD,KAAAi6J,iBAMA3E,gBAAA,SAAAkC,EAAA/wH,EAAAlK,EAAAioB,GACA,IAAAvsB,EAAAzd,EAAA6+I,aAAA5yH,EAAA+d,EAAA,KAAAxkD,KAAAg/B,OACA,OAAAxkB,EAAAqf,EAAA/tB,QAAA0rJ,GAAA,uCAAAA,EAAAv/H,EAAAsE,IAMAu+H,kBAAA,SAAAt3J,EAAAyzD,GACAA,KAAAh2D,QAAAjB,KAAA4D,IAAAQ,gBACAZ,OACAyzD,WAOAlyD,QAAA,WACA/E,KAAAk6J,4BAEAl6J,KAAA23J,2BAMAlzJ,OAAA,WACAzE,KAAAk6J,4BAEAl6J,KAAA23J,6BAIA,SAAA1B,EAAA74H,EAAAhO,EAAAwnI,EAAAC,GACA,WAAAr8I,EAAA4f,SACArS,OACAqV,UAEA65H,YAAAL,EACAxnI,SACAo2F,MAAAoxC,EACAM,YAAA,SAAA/yJ,GAEAkvJ,EAAAvxJ,KAAAqC,EAAAozD,QAEA4/F,UAAAN,IAyBA,SAAAe,EAAAtD,GACA,IAAA4G,EAAA5G,EAAAtwJ,IAAA,qBACA,eAAAk3J,EAAA5G,EAAAtwJ,IAAA,YAAAk3J,GAGA,SAAAhF,EAAAp5I,GACA,mBAAAA,EAAA,wBAGA,IAAA7Z,EAAA2wJ,EACA1wJ,EAAAC,QAAAF,0BCvwBA,IAAA42B,EAAat6B,EAAQ,QAErBosD,EAAepsD,EAAQ,QAEvB8zJ,EAAgB9zJ,EAAQ,QAExB47J,EAAuB57J,EAAQ,QA4B/B,SAAA67J,EAAA16J,GAIAV,KAAAq7J,eAKAr7J,KAAAouD,IAAA1tD,EAKAV,KAAAs7J,QAEA,IAAA9wJ,EAAAqvB,EAAArvB,KACA+wJ,EAAA/wJ,EAAAgxJ,EAAAx7J,MACAy7J,EAAAjxJ,EAAAkxJ,EAAA17J,MACA27J,EAAAnxJ,EAAAoxJ,EAAA57J,MACA67J,EAAArxJ,EAAAsxJ,EAAA97J,MACA+7J,EAAAvxJ,EAAAwxJ,EAAAh8J,MACA2rD,EAAAjgD,KAAA1L,MAOAA,KAAAi8J,kBAAA,SAAAZ,GACAr7J,KAAAq7J,kBAiBAr7J,KAAAk8J,OAAA,SAAAC,EAAAvjI,GAEA54B,KAAAo8J,UACAp8J,KAAAs7J,KAAAzhI,EAAAmJ,SAAAnJ,EAAAmQ,MAAApR,QACAyjI,kBAAA,EACAC,iBAAA,EACAC,yBAAA,IAGA,MAAAJ,IACAA,GAAA,IAGA,IAAAA,GAAA,SAAAA,GAAA,QAAAA,IACAz7J,EAAAgf,GAAA,YAAA67I,GACA76J,EAAAgf,GAAA,YAAA+7I,GACA/6J,EAAAgf,GAAA,UAAAi8I,KAGA,IAAAQ,GAAA,UAAAA,GAAA,SAAAA,IACAz7J,EAAAgf,GAAA,aAAAm8I,GACAn7J,EAAAgf,GAAA,QAAAq8I,KAIA/7J,KAAAo8J,QAAA,WACA17J,EAAA2vD,IAAA,YAAAkrG,GACA76J,EAAA2vD,IAAA,YAAAorG,GACA/6J,EAAA2vD,IAAA,UAAAsrG,GACAj7J,EAAA2vD,IAAA,aAAAwrG,GACAn7J,EAAA2vD,IAAA,QAAA0rG,IAGA/7J,KAAA+E,QAAA/E,KAAAo8J,QAEAp8J,KAAAw8J,WAAA,WACA,OAAAx8J,KAAAm0J,WAGAn0J,KAAAy8J,WAAA,WACA,OAAAz8J,KAAA08J,WAMA,SAAAlB,EAAAr3J,GACA,KAAAkvJ,EAAAsJ,aAAAx4J,MAAA5D,QAAA4D,EAAA5D,OAAA02J,WAAA,CAIA,IAAA5yJ,EAAAF,EAAAG,QACAC,EAAAJ,EAAAK,QAGAxE,KAAAq7J,gBAAAr7J,KAAAq7J,eAAAl3J,EAAAE,EAAAE,KACAvE,KAAA4oH,GAAAvkH,EACArE,KAAA48J,GAAAr4J,EACAvE,KAAAm0J,WAAA,IAIA,SAAAuH,EAAAv3J,GACA,IAAAkvJ,EAAAsJ,aAAAx4J,IAAA04J,EAAA78J,KAAA,kBAAAmE,IAAAnE,KAAAm0J,WAAA,UAAAhwJ,EAAA24J,eAAA3B,EAAA4B,QAAA/8J,KAAAouD,IAAA,cAIA,IAAA/pD,EAAAF,EAAAG,QACAC,EAAAJ,EAAAK,QACAw4J,EAAAh9J,KAAA4oH,GACAq0C,EAAAj9J,KAAA48J,GACA7uH,EAAA1pC,EAAA24J,EACAhvH,EAAAzpC,EAAA04J,EACAj9J,KAAA4oH,GAAAvkH,EACArE,KAAA48J,GAAAr4J,EACAvE,KAAAs7J,KAAAiB,yBAAAlJ,EAAAvxJ,KAAAqC,EAAAozD,OACAv3D,KAAAiS,QAAA,MAAA87B,EAAAC,EAAAgvH,EAAAC,EAAA54J,EAAAE,IAGA,SAAAq3J,EAAAz3J,GACAkvJ,EAAAsJ,aAAAx4J,KACAnE,KAAAm0J,WAAA,GAIA,SAAA2H,EAAA33J,GAEA,GAAA04J,EAAA78J,KAAA,mBAAAmE,IAAA,IAAAA,EAAA+4J,WAAA,CAOA,IAAAC,EAAAh5J,EAAA+4J,WAAA,YACApzI,EAAApe,KAAA1L,KAAAmE,EAAAg5J,EAAAh5J,EAAAG,QAAAH,EAAAK,UAGA,SAAAw3J,EAAA73J,GACA,IAAAg3J,EAAA4B,QAAA/8J,KAAAouD,IAAA,cAIA,IAAA+uG,EAAAh5J,EAAAi5J,WAAA,YACAtzI,EAAApe,KAAA1L,KAAAmE,EAAAg5J,EAAAh5J,EAAAk5J,OAAAl5J,EAAAm5J,SAGA,SAAAxzI,EAAA3lB,EAAAg5J,EAAAI,EAAAC,GACAx9J,KAAAq7J,gBAAAr7J,KAAAq7J,eAAAl3J,EAAAo5J,EAAAC,KAIAnK,EAAAvxJ,KAAAqC,EAAAozD,OACAv3D,KAAAiS,QAAA,OAAAkrJ,EAAAI,EAAAC,IAIA,SAAAX,EAAAY,EAAA38J,EAAAqD,GACA,IAAA4Y,EAAA0gJ,EAAAnC,KAAAx6J,GACA,OAAAic,KAAA8c,EAAAn6B,SAAAqd,IAAA5Y,EAAAozD,MAAAx6C,EAAA,QA3EA8c,EAAA8N,MAAAyzH,EAAAzvG,GA8EA,IAAA1oD,EAAAm4J,EACAl4J,EAAAC,QAAAF,uCC5MA,IAAA23C,GA6BA,SAAA4c,GAQA,IAAAkmG,KACA79F,EAAA,2EACA89F,EAAA,QAGAv0E,EAAA,mHACA/sB,EAAA,aAEA,SAAAuhG,EAAAhyJ,EAAAiyJ,GAEA,IADA,IAAApyF,KACA1qE,EAAA,EAAAc,EAAA+J,EAAA3K,OAAqCF,EAAAc,EAASd,IAC9C0qE,EAAAlqE,KAAAqK,EAAA7K,GAAAg0G,OAAA,EAAA8oD,IAEA,OAAApyF,EAGA,SAAAqyF,EAAAC,GACA,gBAAAtvI,EAAA1hB,EAAAixJ,GACA,IAAApxJ,EAAAoxJ,EAAAD,GAAAj+J,QAAAiN,EAAAmyC,OAAA,GAAAlN,cAAAjlC,EAAAgoG,OAAA,GAAAz8F,gBACA1L,IACA6hB,EAAAwvI,MAAArxJ,IAKA,SAAAsxJ,EAAA3wJ,EAAA1L,GAGA,IAFA0L,EAAA4D,OAAA5D,GACA1L,KAAA,EACA0L,EAAAtM,OAAAY,GACA0L,EAAA,IAAAA,EAEA,OAAAA,EAGA,IAAA4wJ,GAAA,wEACAC,GAAA,+GACAC,EAAAT,EAAAQ,EAAA,GACAE,EAAAV,EAAAO,EAAA,GACAT,EAAAM,MACAM,gBACAH,WACAE,kBACAD,aACAG,MAAA,WACAC,KAAA,SAAAC,GACA,OAAAA,GAAA,qBAAAA,EAAA,QAAAA,IAAA,QAAAA,EAAA,MAIA,IAAAC,GACAD,EAAA,SAAAE,GACA,OAAAA,EAAAC,UAEAC,GAAA,SAAAF,GACA,OAAAT,EAAAS,EAAAC,WAEAE,GAAA,SAAAH,EAAAX,GACA,OAAAA,EAAAQ,KAAAG,EAAAI,YAEAtwI,EAAA,SAAAkwI,GACA,OAAAA,EAAAI,WAEAC,GAAA,SAAAL,GACA,OAAAT,EAAAS,EAAAI,YAEAE,IAAA,SAAAN,EAAAX,GACA,OAAAA,EAAAM,cAAAK,EAAAC,WAEAM,KAAA,SAAAP,EAAAX,GACA,OAAAA,EAAAG,SAAAQ,EAAAC,WAEA5uH,EAAA,SAAA2uH,GACA,OAAAA,EAAAQ,WAAA,GAEAC,GAAA,SAAAT,GACA,OAAAT,EAAAS,EAAAQ,WAAA,IAEAE,IAAA,SAAAV,EAAAX,GACA,OAAAA,EAAAK,gBAAAM,EAAAQ,aAEAG,KAAA,SAAAX,EAAAX,GACA,OAAAA,EAAAI,WAAAO,EAAAQ,aAEAI,GAAA,SAAAZ,GACA,OAAAxtJ,OAAAwtJ,EAAAa,eAAAzqD,OAAA,IAEA0qD,KAAA,SAAAd,GACA,OAAAA,EAAAa,eAEAvnJ,EAAA,SAAA0mJ,GACA,OAAAA,EAAAe,WAAA,QAEAC,GAAA,SAAAhB,GACA,OAAAT,EAAAS,EAAAe,WAAA,SAEAE,EAAA,SAAAjB,GACA,OAAAA,EAAAe,YAEAG,GAAA,SAAAlB,GACA,OAAAT,EAAAS,EAAAe,aAEA/yI,EAAA,SAAAgyI,GACA,OAAAA,EAAAmB,cAEAC,GAAA,SAAApB,GACA,OAAAT,EAAAS,EAAAmB,eAEA3nJ,EAAA,SAAAwmJ,GACA,OAAAA,EAAAqB,cAEAC,GAAA,SAAAtB,GACA,OAAAT,EAAAS,EAAAqB,eAEAE,EAAA,SAAAvB,GACA,OAAA52J,KAAAqC,MAAAu0J,EAAAwB,kBAAA,MAEAC,GAAA,SAAAzB,GACA,OAAAT,EAAAn2J,KAAAqC,MAAAu0J,EAAAwB,kBAAA,QAEAE,IAAA,SAAA1B,GACA,OAAAT,EAAAS,EAAAwB,kBAAA,IAEA5qJ,EAAA,SAAAopJ,EAAAX,GACA,OAAAW,EAAAe,WAAA,GAAA1B,EAAAO,KAAA,GAAAP,EAAAO,KAAA,IAEApuH,EAAA,SAAAwuH,EAAAX,GACA,OAAAW,EAAAe,WAAA,GAAA1B,EAAAO,KAAA,GAAAvsH,cAAAgsH,EAAAO,KAAA,GAAAvsH,eAEAsuH,GAAA,SAAA3B,GACA,IAAAxtF,EAAAwtF,EAAA4B,oBACA,OAAApvF,EAAA,WAAA+sF,EAAA,IAAAn2J,KAAAkwC,MAAAlwC,KAAAY,IAAAwoE,GAAA,IAAAppE,KAAAY,IAAAwoE,GAAA,QAIAqvF,GACA/xI,GAAAkvI,EAAA,SAAAlvI,EAAA1hB,GACA0hB,EAAAgyI,IAAA1zJ,IAEAijC,GAAA2tH,EAAA,SAAAlvI,EAAA1hB,GACA0hB,EAAAwvI,MAAAlxJ,EAAA,IAEAwyJ,IAAA5B,EAAA,SAAAlvI,EAAA1hB,GACA,IACA2zJ,IAAA,IADA,IAAAjxJ,MACA+vJ,eAAAzqD,OAAA,KACAtmF,EAAAkyI,KAAA,IAAA5zJ,EAAA,GAAA2zJ,EAAA,EAAAA,GAAA3zJ,IAEAkL,GAAA0lJ,EAAA,SAAAlvI,EAAA1hB,GACA0hB,EAAAmyI,KAAA7zJ,IAEA4f,GAAAgxI,EAAA,SAAAlvI,EAAA1hB,GACA0hB,EAAAoyI,OAAA9zJ,IAEAoL,GAAAwlJ,EAAA,SAAAlvI,EAAA1hB,GACA0hB,EAAAqyI,OAAA/zJ,IAEA0yJ,MAvJA,QAuJA,SAAAhxI,EAAA1hB,GACA0hB,EAAAkyI,KAAA5zJ,IAEAmzJ,GAAA,cAAAzxI,EAAA1hB,GACA0hB,EAAAsyI,YAAA,IAAAh0J,IAEAqzJ,IAAA,QAAe,SAAA3xI,EAAA1hB,GACf0hB,EAAAsyI,YAAA,GAAAh0J,IAEAszJ,KAjKA,QAiKA,SAAA5xI,EAAA1hB,GACA0hB,EAAAsyI,YAAAh0J,IAEA0xJ,GAAAd,EAAAthG,GACA4iG,KAAA71E,EAAA/sB,GACAgjG,KAAAj2E,EAAA00E,EAAA,oBACAwB,MAAAl2E,EAAA00E,EAAA,eACAvoJ,GAAA6zE,EAAA,SAAA36D,EAAA1hB,EAAAixJ,GACA,IAAAzwJ,EAAAR,EAAAuL,cACA/K,IAAAywJ,EAAAO,KAAA,GACA9vI,EAAAuyI,MAAA,EACOzzJ,IAAAywJ,EAAAO,KAAA,KACP9vI,EAAAuyI,MAAA,KAGAV,IAAA,4BAAA7xI,EAAA1hB,GACA,IACAk0J,EADAx+E,GAAA11E,EAAA,IAAA5D,MAAA,mBAGAs5E,IACAw+E,EAAA,GAAAx+E,EAAA,GAAA7I,SAAA6I,EAAA,OACAh0D,EAAAyyI,eAAA,MAAAz+E,EAAA,GAAAw+E,SAIAT,EAAA3B,GAAA2B,EAAA/B,EACA+B,EAAAtB,KAAAsB,EAAAvB,IACAuB,EAAA1B,GAAA0B,EAAAxB,GAAAwB,EAAA/xI,EACA+xI,EAAAT,GAAAS,EAAA7zI,EACA6zI,EAAAb,GAAAa,EAAAZ,EAAAY,EAAAX,GAAAW,EAAAvoJ,EACAuoJ,EAAApB,GAAAoB,EAAAxwH,EACAwwH,EAAAP,GAAAO,EAAAroJ,EACAqoJ,EAAArwH,EAAAqwH,EAAAjrJ,EAGAmoJ,EAAAyD,OACApoJ,QAAA,2BACAqoJ,UAAA,SACAC,WAAA,cACAC,SAAA,eACAC,SAAA,qBACAC,UAAA,QACAC,WAAA,WACAC,SAAA,gBASAhE,EAAAh1J,OAAA,SAAAi2J,EAAAgD,EAAAC,GACA,IAAA5D,EAAA4D,GAAAlE,EAAAM,KAMA,GAJA,iBAAAW,IACAA,EAAA,IAAAlvJ,KAAAkvJ,IAGA,kBAAA/0J,OAAA1J,UAAA0H,SAAA8D,KAAAizJ,IAAAl0J,MAAAk0J,EAAAkD,WACA,UAAAxiG,MAAA,gCAKA,OAFAsiG,EAAAjE,EAAAyD,MAAAQ,OAAAjE,EAAAyD,MAAA,SAEA54J,QAAAs3D,EAAA,SAAAiiG,GACA,OAAAA,KAAApD,IAAAoD,GAAAnD,EAAAX,GAAA8D,EAAAx/J,MAAA,EAAAw/J,EAAA7gK,OAAA,MAWAy8J,EAAAvwJ,MAAA,SAAA40J,EAAAr5J,EAAAk5J,GACA,IAAA5D,EAAA4D,GAAAlE,EAAAM,KAEA,oBAAAt1J,EACA,UAAA22D,MAAA,iCAOA,GAJA32D,EAAAg1J,EAAAyD,MAAAz4J,MAIAq5J,EAAA9gK,OAAA,IACA,SAGA,IAAA+gK,GAAA,EACAC,KAmBA,GAlBAv5J,EAAAH,QAAAs3D,EAAA,SAAAiiG,GACA,GAAAtB,EAAAsB,GAAA,CACA,IAAAhnF,EAAA0lF,EAAAsB,GACAl1J,EAAAm1J,EAAApgD,OAAA7mC,EAAA,KACAluE,EAGAm1J,EAAAx5J,QAAAuyE,EAAA,YAAA/pE,GAGA,OAFA+pE,EAAA,GAAAmnF,EAAAlxJ,EAAAitJ,GACA+D,IAAAhtD,OAAAnoG,EAAAmE,EAAA9P,QACA8P,IALAixJ,GAAA,EAUA,OAAAxB,EAAAsB,GAAA,GAAAA,EAAAx/J,MAAA,EAAAw/J,EAAA7gK,OAAA,MAGA+gK,EACA,SAGA,IAOAE,EAPAC,EAAA,IAAA1yJ,KAcA,OAbA,IAAAwyJ,EAAAjB,MAAA,MAAAiB,EAAArB,MAAA,KAAAqB,EAAArB,KACAqB,EAAArB,MAAAqB,EAAArB,KAAA,IACK,IAAAqB,EAAAjB,MAAA,KAAAiB,EAAArB,OACLqB,EAAArB,KAAA,GAIA,MAAAqB,EAAAf,gBACAe,EAAApB,SAAAoB,EAAApB,QAAA,IAAAoB,EAAAf,eACAgB,EAAA,IAAAzyJ,UAAA2yJ,IAAAH,EAAAtB,MAAAwB,EAAA3C,cAAAyC,EAAAhE,OAAA,EAAAgE,EAAAxB,KAAA,EAAAwB,EAAArB,MAAA,EAAAqB,EAAApB,QAAA,EAAAoB,EAAAnB,QAAA,EAAAmB,EAAAlB,aAAA,KAEAmB,EAAA,IAAAzyJ,KAAAwyJ,EAAAtB,MAAAwB,EAAA3C,cAAAyC,EAAAhE,OAAA,EAAAgE,EAAAxB,KAAA,EAAAwB,EAAArB,MAAA,EAAAqB,EAAApB,QAAA,EAAAoB,EAAAnB,QAAA,EAAAmB,EAAAlB,aAAA,GAEAmB,QAIA,IAAAh/J,KAAAC,QACAD,EAAAC,QAAAu6J,OAIKhwJ,KAFDktC,EAAA,WACJ,OAAA8iH,GACKhyJ,KAAAvI,EAAA5D,EAAA4D,EAAAD,QAAAC,QAAAy3C,GAvTL,yBC7BA13C,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOA45J,IACA,SAAAn/J,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAm3J,EAAA/iK,EAAA,KAEAgjK,GAEAp3J,EAFAm3J,IAEsCn3J,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eo3J,EAAAxpJ,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAguI,EAAAxpJ,QAAAnW,KAAA2/J,EAAAxpJ,UAGA5V,EAAA4V,QAAAwpJ,EAAAxpJ,SAIAypJ,IACA,SAAAt/J,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAk7J,EAAAljK,EAAA,KACAmjK,EAAAnjK,EAAA6+C,EAAAqkH,GACAE,EAAApjK,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAuvF,EAAAntJ,EACAotJ,EAAA,GATA,EAEA,KAEA,KAEA,MAUAp+G,EAAA,QAAA2uB,EAAA,SAKA0vF,IACA,SAAA1/J,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAyCAjuE,EAAA4V,SACAnW,KAAA,aACAE,OACAU,MACAA,KAAA2N,OACA4H,QAAA,OACA8pJ,UAAA,SAAAt1J,GACA,wBAAAzN,QAAAyN,IAAA,IAGAu1J,YACAt/J,KAAAuX,OACAhC,QAAA,EACAgqJ,UAAA,EACAF,UAAA,SAAAt1J,GACA,OAAAA,GAAA,GAAAA,GAAA,MAGA0I,QACAzS,KAAA2N,QAEA6xJ,aACAx/J,KAAAuX,OACAhC,QAAA,GAEAkqJ,YACAz/J,KAAAiW,QACAV,SAAA,GAEAC,OACAxV,KAAAuX,OACAhC,QAAA,KAEAmqJ,UACA1/J,KAAAiW,QACAV,SAAA,GAEA5S,OACA3C,KAAA2N,OACA4H,QAAA,KAGA8C,UACAsnJ,SAAA,WACA,IAAA5qJ,KAGA,OAFAA,EAAAS,MAAAhZ,KAAA8iK,WAAA,IACAvqJ,EAAAkC,gBAAAza,KAAAmG,MACAoS,GAEA6qJ,oBAAA,WACA,OAAApjK,KAAAgjK,YAAAhjK,KAAAgZ,MAAA,KAAA1R,QAAA,IAEA+7J,UAAA,WACA,IAAA1gJ,EAAAi3D,SAAA,GAAAp0D,WAAAxlB,KAAAojK,qBAAA,MAEA,sBAAAzgJ,EAAA,MAAAA,EAAA,IAAAA,EAAA,cAAAA,EAAA,MAAAA,EAAA,IAAAA,EAAA,eAAAA,GAEA2gJ,UAAA,WACA,IAAA3gJ,EAAA,GAAA6C,WAAAxlB,KAAAojK,qBAAA,EACA,SAAAr7J,KAAAgwB,GAAApV,GAEA4gJ,gBAAA,WACA,IAAAD,EAAAtjK,KAAAsjK,UACA,OACAE,gBAAAF,EAAA,MAAAA,EAAA,KACAG,kBAAA,EAAAzjK,KAAA8iK,WAAA,KAAAQ,EAAA,KACAI,WAAA,qDAGAxgI,OAAA,WACA,IAAAyzC,OAAA,EACA,GAAA32E,KAAAmG,MACAwwE,EAAA32E,KAAAmG,WAEA,OAAAnG,KAAAiW,QACA,cACA0gE,EAAA,UACA,MACA,gBACAA,EAAA,UACA,MACA,QACAA,EAAA,UAGA,OAAAA,GAEAgtF,UAAA,WACA,eAAA3jK,KAAAwD,KACA,YAAAxD,KAAAiW,OAAA,8CAEA,YAAAjW,KAAAiW,OAAA,iCAGA2tJ,iBAAA,WACA,eAAA5jK,KAAAwD,KAAA,MAAAxD,KAAAgjK,YAAA,QAAAhjK,KAAAgZ,MAAA,MAOA6qJ,IACA,SAAA3gK,EAAAqhD,EAAAhlD,GAEA,aACA,IASA+0E,GAAiB7wE,OATjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,cAAAc,OAC1G,gBAAAq8D,EAAA/wE,KACA+wE,EAAAt+D,OAAA,MAAAs+D,EAAAt+D,OAAA,IAEA6tJ,6BAAAvvF,EAAA2uF,SACAa,2BAAAxvF,EAAA0uF,aAEA5rJ,OAAW2sJ,KAAA,cAAAC,gBAAA1vF,EAAAuuF,WAAAoB,gBAAA,IAAAC,gBAAA,SAA+F,SAAA5vF,EAAA/wE,KAAA0T,EAAA,OAAkCE,YAAA,oBAA8BF,EAAA,OAAYE,YAAA,yBAAAmB,OAA6CU,OAAAs7D,EAAAyuF,YAAA,QAAiC9rJ,EAAA,OAAYE,YAAA,yBAAAmB,MAAAg8D,EAAA,WAA0DA,EAAA2uF,UAAA3uF,EAAA0uF,WAAA/rJ,EAAA,OAA6CE,YAAA,+BAAyCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAuuF,YAAA,OAAAvuF,EAAAO,WAAA59D,EAAA,OAAgEE,YAAA,qBAAAmB,OAAyCU,OAAAs7D,EAAAv7D,MAAA,KAAAA,MAAAu7D,EAAAv7D,MAAA,QAAoD9B,EAAA,OAAYG,OAAOC,QAAA,iBAAyBJ,EAAA,QAAaE,YAAA,4BAAAC,OAA+CoX,EAAA8lD,EAAA8uF,UAAAngI,OAAA,UAAAmhI,eAAA9vF,EAAA6uF,oBAAA1rJ,KAAA,UAA2FR,EAAA,QAAaE,YAAA,2BAAAmB,MAAAg8D,EAAA,gBAAAl9D,OAA0EoX,EAAA8lD,EAAA8uF,UAAAiB,iBAAA,QAAAphI,OAAAqxC,EAAArxC,OAAAmhI,eAAA9vF,EAAA6uF,oBAAA1rJ,KAAA,cAAqH68D,EAAA2uF,WAAA3uF,EAAA0uF,WAAA/rJ,EAAA,OAAkDE,YAAA,oBAAAmB,OAAwCsd,SAAA0+C,EAAAqvF,iBAAA,QAAwCrvF,EAAAt+D,OAAAiB,EAAA,KAA6DgB,MAAAq8D,EAAAovF,aAA7DpvF,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAuuF,YAAA,OAAiF,GAAAvuF,EAAAO,QAE9oCn9D,oBACjB4sC,EAAA,6BC7XA,IAAAggH,EAAA,2BACAC,EAAA,mBACAC,EAAA,mBAWA,SAAA79G,EAAA36C,EAAAhK,EAAA+J,GACA,IAAA04J,EAIApgI,EACAw9B,EACA11D,EACAu4J,EANAC,EAAA,EACAC,EAAA,EACA34J,EAAA,KAOA,SAAAi2E,IACA0iF,GAAA,IAAAp1J,MAAAoyJ,UACA31J,EAAA,KACAD,EAAAM,MAAAu1D,EAAA11D,OALAnK,KAAA,EAQA,IAAAqlE,EAAA,WACAo9F,GAAA,IAAAj1J,MAAAoyJ,UACA//F,EAAA9hE,KACAoM,EAAAtH,UACA,IAAAggK,EAAAH,GAAA1iK,EACA8iK,EAAAJ,GAAA34J,EACA24J,EAAA,KACArgI,EAAAogI,GAAAK,EAAAH,EAAAC,GAAAC,EACAz4J,aAAAH,GASA64J,EACA74J,EAAAI,WAAA61E,EAAA2iF,GAEAxgI,GAAA,EACA69C,IAEAj2E,EAAAI,WAAA61E,GAAA79C,GAIAsgI,EAAAF,GAuBA,OAfAp9F,EAAAliB,MAAA,WACAl5C,IACAG,aAAAH,GACAA,EAAA,OAQAo7D,EAAAq9F,iBAAA,SAAAK,GACAL,EAAAK,GAGA19F,EAwEAnkE,EAAAyjD,WACAzjD,EAAA8hK,eA1CA,SAAA95J,EAAA+5J,EAAAC,EAAAC,GACA,IAAAn5J,EAAAd,EAAA+5J,GAEA,GAAAj5J,EAAA,CAIA,IAAAo5J,EAAAp5J,EAAAs4J,IAAAt4J,EACAq5J,EAAAr5J,EAAAw4J,GAGA,GAFAx4J,EAAAu4J,KAEAW,GAAAG,IAAAF,EAAA,CACA,SAAAD,IAAAC,EACA,OAAAj6J,EAAA+5J,GAAAG,GAGAp5J,EAAAd,EAAA+5J,GAAAt+G,EAAAy+G,EAAAF,EAAA,aAAAC,IACAb,GAAAc,EACAp5J,EAAAw4J,GAAAW,EACAn5J,EAAAu4J,GAAAW,EAGA,OAAAl5J,IAqBA9I,EAAAiiD,MAVA,SAAAj6C,EAAA+5J,GACA,IAAAj5J,EAAAd,EAAA+5J,GAEAj5J,KAAAs4J,KACAp5J,EAAA+5J,GAAAj5J,EAAAs4J,2BCtKA,IAAA1qI,EAAat6B,EAAQ,QAiCrB2D,EAAAC,QAbA,SAAA8Z,GACAA,GAAA4c,EAAA/tB,QAAAmR,EAAA3K,SAKAunB,EAAA4E,KAAAxhB,EAAA3K,OAAA,SAAAW,GACA4mB,EAAAj6B,SAAAqT,IAAA,MAAAA,EAAAzP,OACAyP,EAAAzP,KAAA,0CC5BA,IAAA+hK,EAAkBhmK,EAAQ,QAgB1B,SAAAimK,EAAA/8J,GACAzI,KAAAylK,QAAAh9J,EAAAlI,OAEAP,KAAA0lK,MAAAj9J,EAAAk9J,MAAA,IAEA3lK,KAAA4lK,OAAAn9J,EAAAxG,OAAA,EAGAjC,KAAA6lK,cAAA,EAEA7lK,KAAAM,KAAA,MAAAmI,EAAAnI,MAAAmI,EAAAnI,KACAN,KAAA8lK,IAAAr9J,EAAAq9J,KAAA,EACA9lK,KAAAkC,OAAAuG,EAAAvG,QAAA,SACAlC,KAAA+lK,QAAAt9J,EAAAs9J,QACA/lK,KAAAgmK,UAAAv9J,EAAAu9J,UACAhmK,KAAAimK,UAAAx9J,EAAAw9J,UACAjmK,KAAAkmK,YAAA,EACAlmK,KAAAmmK,SAAA,EAGAX,EAAAtlK,WACAC,YAAAqlK,EACAl+I,KAAA,SAAA8+I,EAAAC,GAQA,GALArmK,KAAA6lK,eACA7lK,KAAA8rI,WAAAs6B,EAAApmK,KAAA4lK,OACA5lK,KAAA6lK,cAAA,GAGA7lK,KAAAmmK,QACAnmK,KAAAkmK,aAAAG,MADA,CAKA,IAAAjiJ,GAAAgiJ,EAAApmK,KAAA8rI,WAAA9rI,KAAAkmK,aAAAlmK,KAAA0lK,MAEA,KAAAthJ,EAAA,IAIAA,EAAArc,KAAAC,IAAAoc,EAAA,GACA,IAAAliB,EAAAlC,KAAAkC,OACAokK,EAAA,iBAAApkK,EAAAqjK,EAAArjK,KACAqkK,EAAA,mBAAAD,IAAAliJ,KAGA,OAFApkB,KAAAwmK,KAAA,QAAAD,GAEA,GAAAniJ,EACApkB,KAAAM,MACAN,KAAAymK,QAAAL,GAGA,YAKApmK,KAAA0mK,cAAA,EACA,WAGA,QAEAD,QAAA,SAAAL,GACA,IAAAO,GAAAP,EAAApmK,KAAA8rI,WAAA9rI,KAAAkmK,aAAAlmK,KAAA0lK,MACA1lK,KAAA8rI,WAAAs6B,EAAAO,EAAA3mK,KAAA8lK,IACA9lK,KAAAkmK,YAAA,EACAlmK,KAAA0mK,cAAA,GAEAF,KAAA,SAAA9rG,EAAAwqB,GAGAllF,KAFA06D,EAAA,KAAAA,IAGA16D,KAAA06D,GAAA16D,KAAAylK,QAAAvgF,IAGA0qC,MAAA,WACA5vH,KAAAmmK,SAAA,GAEAS,OAAA,WACA5mK,KAAAmmK,SAAA,IAGA,IAAAljK,EAAAuiK,EACAtiK,EAAAC,QAAAF,0BCpGA,IAoBAA,EApBW1D,EAAQ,QAoBnBmK,QACAlG,KAAA,sBACAukB,OACAulB,MAAA,EACAt0B,MAAA,GACAvB,EAAA,GACApT,EAAA,EACAE,EAAA,GAEAmrC,UAAA,SAAA7J,EAAA9d,GACA,IAAA8+I,EAAA9+J,KAAA0jC,IACAq7H,EAAA/+J,KAAA2jC,IACAj0B,EAAAsQ,EAAAtQ,EACAuB,EAAA+O,EAAA/O,MACAs0B,EAAAvlB,EAAAulB,MACAjpC,EAAA0jB,EAAA1jB,EAAAwiK,EAAAv5H,GAAAt0B,MAAAvB,EAAA,OACAlT,EAAAwjB,EAAAxjB,EAAAuiK,EAAAx5H,GAAAt0B,MAAAvB,EAAA,OACA61B,EAAAvlB,EAAAulB,MAAAvlC,KAAAgwB,GAAA,EACA8N,EAAAkhI,OAAA1iK,EAAAE,GACAshC,EAAAmhI,OAAAj/I,EAAA1jB,EAAAwiK,EAAAv5H,GAAAt0B,EAAA+O,EAAAxjB,EAAAuiK,EAAAx5H,GAAAt0B,GACA6sB,EAAAmhI,OAAAj/I,EAAA1jB,EAAAwiK,EAAA9+I,EAAAulB,OAAA71B,EAAAsQ,EAAAxjB,EAAAuiK,EAAA/+I,EAAAulB,OAAA71B,GACAouB,EAAAmhI,OAAAj/I,EAAA1jB,EAAAwiK,EAAAv5H,GAAAt0B,EAAA+O,EAAAxjB,EAAAuiK,EAAAx5H,GAAAt0B,GACA6sB,EAAAmhI,OAAA3iK,EAAAE,MAKArB,EAAAC,QAAAF,0BC/CAC,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAAoC6xE,YAAA,2BCA1E,IAMAnuE,EANW1D,EAAQ,QAMnBmK,QACAlG,KAAA,MACAukB,OACAxQ,GAAA,EACAC,GAAA,EACAC,EAAA,EACA2kB,WAAA,EACAC,SAAA,EAAAt0B,KAAAgwB,GACAuE,WAAA,GAEA/jB,OACA2qB,OAAA,OACAxrB,KAAA,MAEAg4B,UAAA,SAAA7J,EAAA9d,GACA,IAAA1jB,EAAA0jB,EAAAxQ,GACAhT,EAAAwjB,EAAAvQ,GACAC,EAAA1P,KAAAE,IAAA8f,EAAAtQ,EAAA,GACA2kB,EAAArU,EAAAqU,WACAC,EAAAtU,EAAAsU,SACAC,EAAAvU,EAAAuU,UACA2qI,EAAAl/J,KAAA0jC,IAAArP,GACA8qI,EAAAn/J,KAAA2jC,IAAAtP,GACAyJ,EAAAkhI,OAAAE,EAAAxvJ,EAAApT,EAAA6iK,EAAAzvJ,EAAAlT,GACAshC,EAAAshI,IAAA9iK,EAAAE,EAAAkT,EAAA2kB,EAAAC,GAAAC,MAIAp5B,EAAAC,QAAAF,uCCjCA,IAAAymC,EAAanqC,EAAQ,QACrB4sG,EAAiB5sG,EAAQ,QACzB6nK,EAAqB7nK,EAAQ,QAC7B8nK,KAGA9nK,EAAQ,OAARA,CAAiB8nK,EAAqB9nK,EAAQ,OAARA,CAAgB,uBAA4B,OAAAS,OAElFkD,EAAAC,QAAA,SAAAy/E,EAAA+yB,EAAAlxE,GACAm+C,EAAA1iF,UAAAwpC,EAAA29H,GAAqD5iI,KAAA0nE,EAAA,EAAA1nE,KACrD2iI,EAAAxkF,EAAA+yB,EAAA,mDCTA,IAAA3gC,EAAYz1E,EAAQ,QAEpB2D,EAAAC,QACA6xE,EAAAsyF,uBAIA,WACA,IAEAC,EAFAC,EAAA,kBAAA7rG,KAAA9c,UAAAC,WACA2oH,EAAA53J,SAAAC,cAAA,KASA,SAAA43J,EAAAv5J,GACA,IAAA2/I,EAAA3/I,EAWA,OATAq5J,IAEAC,EAAA/gI,aAAA,OAAAonH,GACAA,EAAA2Z,EAAA3Z,MAGA2Z,EAAA/gI,aAAA,OAAAonH,IAIAA,KAAA2Z,EAAA3Z,KACA6Z,SAAAF,EAAAE,SAAAF,EAAAE,SAAAp/J,QAAA,YACAq/J,KAAAH,EAAAG,KACAjmD,OAAA8lD,EAAA9lD,OAAA8lD,EAAA9lD,OAAAp5G,QAAA,aACA80C,KAAAoqH,EAAApqH,KAAAoqH,EAAApqH,KAAA90C,QAAA,YACAs/J,SAAAJ,EAAAI,SACAC,KAAAL,EAAAK,KACAC,SAAA,MAAAN,EAAAM,SAAA7oH,OAAA,GACAuoH,EAAAM,SACA,IAAAN,EAAAM,UAYA,OARAR,EAAAG,EAAA/3J,OAAAk+I,SAAAC,MAQA,SAAAka,GACA,IAAAC,EAAAjzF,EAAAt1E,SAAAsoK,GAAAN,EAAAM,KACA,OAAAC,EAAAN,WAAAJ,EAAAI,UACAM,EAAAL,OAAAL,EAAAK,MAhDA,GAsDA,WACA,kCChEA,IAAA/tI,EAAat6B,EAAQ,QA4ErB4D,EAAAm0B,OAhDA,SAAAjB,EAAAuC,GACAA,QACA,IAAAsvI,EAAA7xI,EAAAhI,iBACAoH,EAAAY,EAAAZ,KACA6B,KACAyzC,EAAAt1C,EAAArnB,SACA0O,EAAA2Y,EAAA3Y,OACAorB,EAAAggI,EAAA3kG,UACA4kG,GAAAjgI,EAAA7jC,EAAA6jC,EAAA7jC,EAAA6jC,EAAAlvB,MAAAkvB,EAAA3jC,EAAA2jC,EAAA3jC,EAAA2jC,EAAAjvB,QACAmvJ,GACAC,YACAr2J,IAAAm2J,EAAA,GACArzJ,OAAAqzJ,EAAA,IAEAz5B,UACA7oI,KAAAsiK,EAAA,GACAriK,MAAAqiK,EAAA,KAGA7wI,EAAAlpB,UAAA,aAAA0O,EAAAsrJ,EAAA15B,SAAA3jE,GAAAo9F,EAAA,kBAAArrJ,EAAAsrJ,EAAAC,WAAAt9F,GAAAo9F,EAAA,IAKA7wI,EAAAO,SAAA9vB,KAAAgwB,GAAA,GAHAswI,WAAA,EACA35B,SAAA,GAEA5xH,GAOAwa,EAAAQ,eAAAR,EAAAgxI,cAAAhxI,EAAAixI,eALAv2J,KAAA,EACA8C,OAAA,EACAhP,MAAA,EACAD,MAAA,GAEAklE,GAEA10C,EAAAryB,IAAA,qBACAszB,EAAAgxI,eAAAhxI,EAAAgxI,eAGAzuI,EAAAmuC,SAAApvC,EAAAlB,YAAArB,EAAAryB,IAAA,uBACAszB,EAAAQ,gBAAAR,EAAAQ,gBAGA,IAAA0wI,EAAA5vI,EAAA6vI,OAIA,OAHA,MAAAD,MAAAnyI,EAAAryB,IAAA,qBACAszB,EAAAkxI,cAAA,QAAAz9F,GAAAy9F,IACAlxI,EAAA8M,GAAA,EACA9M,2BCzEA,IAAA73B,EAAYF,EAAQ,QAEpBk/B,EAAAh/B,EAAAg/B,KACAs2B,EAAAt1D,EAAAs1D,cAEA5I,EAAkB5sD,EAAQ,QAE1BmpK,EAA0BnpK,EAAQ,QAoBlC0D,EAAAkpD,EAAAziD,QACAlG,KAAA,kBACAixB,cAAA,YACAk0I,sBAAA,kBACAC,eAAA,SAAA3rJ,EAAAtZ,GACA,IAAAlB,EAAAzC,KAAA6oK,YAEA,OAkDA,SAAApmK,EAAA+4B,GAOA,GAAA/4B,EAAAqmK,aACA,OAGA,IAAAC,EAAAvtI,EAAA73B,QAAAG,aAAA,WAAA03B,EAAAx3B,IAAA,kBAEA,IAAA+kK,EACA,OAGA,IAAAD,EAAArmK,EAAAqmK,aAAA/zG,IACAt2B,EAAAsqI,EAAAhnI,WAAA,SAAAinI,GACA,IAAAC,GAAAD,EAMAzgK,QAAA,UALAugK,EAAA9jH,IAAAgkH,EAAAC,KAvEAC,CAAAzmK,EAAAzC,MACA0oK,EAAAjmK,EAAAzC,OAUAmpK,2BAAA,SAAAC,GACA,IAAA/tI,EAAAr7B,KAAAquB,iBACAvd,EAAA9Q,KAAAksB,UACAwpD,KAMA,OALAr6C,EAAAguI,gBAAAv4J,EAAA,SAAAw4J,EAAAlrI,GACAgrI,IAAAE,GACA5zF,EAAAn0E,KAAAuP,EAAAy4J,YAAAnrI,MAGAs3C,GAEAhhD,eACAC,OAAA,EAEAC,EAAA,EAEAvG,iBAAA,WACAm7I,cAAA,EACA/2J,OACApN,MAAA,GAEAokK,gBAAA,IACAC,cAAA,EACA9oJ,WACA5H,MAAA,EACAnG,QAAA,IACArP,KAAA,SAEA8iB,UACA7T,OACApN,MAAA,IAGAskK,YAAA,IACAjkK,QAAA,EAEAkkK,gBAAA,YAgCA1mK,EAAAC,QAAAF,0BChHA,IAAA42B,EAAat6B,EAAQ,QAoBrBsqK,GAAA,mNAQA,IAAA5mK,EANA,SAAA6mK,GACAjwI,EAAA4E,KAAAorI,EAAA,SAAAjnK,GACA5C,KAAA4C,GAAAi3B,EAAArvB,KAAAs/J,EAAAlnK,GAAAknK,IACG9pK,OAIHkD,EAAAC,QAAAF,0BC7BA,IAoBAA,EApBc1D,EAAQ,QAoBtBgE,qBACAC,KAAA,OACAC,OAAA,SAAAsmK,EAAApmK,EAAAC,GACA,IAAAomK,GAAA,EACA7sJ,EAAA4sJ,EAAAE,UACAC,EAAAtmK,EAAAe,QAAAstD,QAAAk4G,kBACA9uI,EAAA0uI,EAAA17I,iBAEA+7I,EAAA,SAAA5mK,EAAAjD,GACA,IAAAypK,EAAA,CAIA,IAAAK,EAAAH,EAAA39H,iCACA+9H,IAAA1wF,SAAAywF,EAAA9xJ,MAAA1S,KAAA,QAAA+zE,SAAAywF,EAAA9xJ,MAAAvG,IAAA,QACAk4J,EAAA3xJ,MAAA1S,KAAAykK,EAAA,QACAJ,EAAA3xJ,MAAAvG,IAAAs4J,EAAA,QACAjvI,EAAAkvI,aAAAD,GACAP,EAAAS,YAAAF,EACA1mK,EAAAQ,gBACAZ,KAAA,eAIA,SAAAinK,IACAT,GAIApmK,EAAAQ,gBACAZ,KAAA,aAIA2Z,EAAA2B,oBAAA,SAAA9e,KAAA0qK,iBAIAvtJ,EAAA2B,oBAAA,UAAA9e,KAAA2qK,oBACAxtJ,EAAAyB,iBAAA,SAAAwrJ,GAEAjtJ,EAAAyB,iBAAA,UAAA6rJ,GACAzqK,KAAA0qK,gBAAAN,EACApqK,KAAA2qK,mBAAAF,EACA,IAAA9gJ,EAAAogJ,EAAA/lK,IAAA,QAEA2lB,GAAA,UAAAA,EACAxM,EAAAytJ,iBAEAztJ,EAAA0tJ,kBAGAlhJ,GAAA,SAAAA,GACAxM,EAAA2tJ,wBACA3tJ,EAAA4tJ,wBACA5tJ,EAAA6tJ,sBAEA7tJ,EAAA8tJ,yBACA9tJ,EAAA+tJ,yBACA/tJ,EAAAguJ,sBAGA,IAAAC,EAAArB,EAAAsB,WACAC,EAAAvB,EAAA/lK,IAAA,gBAEAunK,EAAAr+J,KAAAE,UAAAk+J,GAEAp+J,KAAAE,UAAAg+J,KAAAG,IAEA3hK,OAAAC,KAAAyhK,GAAArqK,QACAkc,EAAAquJ,YAAAF,GAGAvB,EAAAsB,WAAAn+J,KAAAC,MAAAo+J,IAGAvB,GAAA,KAIA9mK,EAAAC,QAAAF,0BCpGc1D,EAAQ,QAEtBq6B,QAFA,IAIAn6B,EAAYF,EAAQ,QAGpBmK,GADAjK,EAAAgsK,aACAhsK,EAAAiK,QAEA+0B,GADAh/B,EAAAktD,OACAltD,EAAAg/B,MACA7+B,EAAAH,EAAAG,SAEAiF,EAAatF,EAAQ,QAErBmsK,EAAA7mK,EAAA6mK,iBACAC,EAAA9mK,EAAA8mK,iBAIAC,EAFcrsK,EAAQ,QAEtBqsK,UAEAC,EAAatsK,EAAQ,QAErBusK,EAAkBvsK,EAAQ,QAE1BwsK,EAAAD,EAAAC,0BACAC,EAAAF,EAAAE,yBACAC,EAAAH,EAAAG,uBACAC,EAAAJ,EAAAI,0BA4BA,SAAAC,EAAA1pK,EAAA2pK,GACAP,EAAAQ,WAAA5pK,KACAA,EAAAopK,EAAAS,mBAAA7pK,IAGAzC,KAAAusK,QAAA9pK,EACA,IAAAqO,EAAA9Q,KAAAic,MAAAxZ,EAAAqO,KACA07J,EAAA/pK,EAAA+pK,aAEAA,IAAAT,IACA/rK,KAAAysK,QAAA,EACAzsK,KAAA0sK,SAAAN,EACApsK,KAAAic,MAAAnL,GAGA,IAAAiL,EAAA4wJ,EAAAH,IAAAR,EAAAQ,EAAA,IAAA/pK,EAAAmqK,eAAAJ,GACA9iK,EAAA1J,KAAA+b,GAGA,IAAA8wJ,EAAAV,EAAAjsK,UAEA2sK,EAAAC,MAAA,EAEAD,EAAAE,YAAA,EAEAF,EAAAhE,UAAA,WACA,OAAA7oK,KAAAusK,SAGA,IAAAI,GACAK,kBACAF,MAAA,EACAvqK,MAAA,WACA,OAAAwF,KAAAE,IAAA,EAAAjI,KAAAic,MAAAhb,OAAAjB,KAAAusK,QAAAz0D,aAEAm1D,QAAA,SAAA3sI,GACA,OAAAtgC,KAAAic,MAAAqkB,EAAAtgC,KAAAusK,QAAAz0D,aAEA59C,WAAAgzG,GAEAC,eACAL,MAAA,EACAvqK,MAAA,WACA,IAAA0O,EAAAjR,KAAAic,MAAA,GACA,OAAAhL,EAAAlJ,KAAAE,IAAA,EAAAgJ,EAAAhQ,OAAAjB,KAAAusK,QAAAz0D,YAAA,GAEAm1D,QAAA,SAAA3sI,GACAA,GAAAtgC,KAAAusK,QAAAz0D,WAIA,IAHA,IAAAnrG,KACAmE,EAAA9Q,KAAAic,MAEAlb,EAAA,EAAqBA,EAAA+P,EAAA7P,OAAiBF,IAAA,CACtC,IAAAkQ,EAAAH,EAAA/P,GACA4L,EAAApL,KAAA0P,IAAAqvB,GAAA,MAGA,OAAA3zB,GAEAutD,WAAA,WACA,UAAAmF,MAAA,+DAGA+tG,YACAN,MAAA,EACAvqK,MAAA8qK,EACAJ,QAAAK,EACApzG,WAAAgzG,GAEAK,cACAT,MAAA,EACAvqK,MAAA,WACA,IAAAu/B,EAAA9hC,KAAAusK,QAAAiB,iBAAA,GAAA5qK,KACA6qK,EAAAztK,KAAAic,MAAA6lB,GACA,OAAA2rI,IAAAxsK,OAAA,GAEAgsK,QAAA,SAAA3sI,GAIA,IAHA,IAAA3zB,KACA+D,EAAA1Q,KAAAusK,QAAAiB,iBAEAzsK,EAAA,EAAqBA,EAAA2P,EAAAzP,OAAiBF,IAAA,CACtC,IAAA0sK,EAAAztK,KAAAic,MAAAvL,EAAA3P,GAAA6B,MACA+J,EAAApL,KAAAksK,IAAAntI,GAAA,MAGA,OAAA3zB,GAEAutD,WAAA,SAAA8iC,GACA,IAAAlsF,EAAA9Q,KAAAic,MACAwiB,EAAAu+D,EAAA,SAAA0wE,EAAA3jK,GAGA,IAFA,IAAA4jK,EAAA78J,EAAA/G,KAAA+G,EAAA/G,OAEAhJ,EAAA,EAAuBA,GAAA2sK,OAAAzsK,OAA2BF,IAClD4sK,EAAApsK,KAAAmsK,EAAA3sK,QAKA6sK,UACArrK,MAAA8qK,EACAJ,QAAAK,EACApzG,WAAAgzG,GAEAW,YACAd,YAAA,EACAD,MAAA,EACAvqK,MAAA,WACA,OAAAvC,KAAAic,MAAAjc,KAAAic,MAAAhb,OAAAjB,KAAA0sK,SAAA,GAEAO,QAAA,SAAA3sI,EAAA6J,GACA7J,GAAAtgC,KAAAysK,QACAtiI,QAGA,IAFA,IAAAzH,EAAA1iC,KAAA0sK,SAAApsI,EAEAv/B,EAAA,EAAqBA,EAAAf,KAAA0sK,SAAmB3rK,IACxCopC,EAAAppC,GAAAf,KAAAic,MAAAymB,EAAA3hC,GAGA,OAAAopC,GAEA+vB,WAAA,SAAA8iC,GACAh9F,KAAAic,MAAA+gF,GAGAn9E,MAAA,WAEA7f,KAAAysK,SAAAzsK,KAAAuC,QACAvC,KAAAic,MAAA,QAKA,SAAAoxJ,IACA,OAAArtK,KAAAic,MAAAhb,OAGA,SAAAqsK,EAAAhtI,GACA,OAAAtgC,KAAAic,MAAAqkB,GAGA,SAAA4sI,EAAAlwE,GACA,QAAAj8F,EAAA,EAAiBA,EAAAi8F,EAAA/7F,OAAoBF,IACrCf,KAAAic,MAAA1a,KAAAy7F,EAAAj8F,IAIA,IAAA+sK,GACAC,UAAAC,EACAZ,WAAA,SAAAhzH,EAAAhc,EAAAhG,EAAA0J,GACA,aAAA1J,EAAAgiB,EAAAtY,GAAAsY,GAEAmzH,aAAAS,EACAJ,SAAA,SAAAxzH,EAAAhc,EAAAhG,EAAA0J,GAIA,IAAAv6B,EAAAmkK,EAAAtxH,GACA,aAAAhiB,GAAA7wB,aAAAsE,MAAAtE,EAAA6wB,GAAA7wB,GAEAsmK,WAAAG,GAGA,SAAAA,EAAA5zH,EAAAhc,EAAAhG,EAAA0J,GACA,aAAA1J,EAAAgiB,EAAAhiB,GAAAgiB,EAGA,IAAA6zH,GACAF,UAAAG,EACAd,WAAA,SAAAhzH,EAAAtY,EAAA1D,EAAAhG,GACA,OAAA+1I,EAAA/zH,EAAAtY,GAAA9hC,KAAAouK,gBAAAtsI,KAEAyrI,aAAAW,EACAN,SAAA,SAAAxzH,EAAAtY,EAAA1D,EAAAhG,GAKA,IAAA7wB,EAAA6yC,IAAA,MAAAA,EAAA7yC,MAAA6yC,IAAA7yC,OAMA,OAJAvH,KAAAquK,SAAAvB,MAAAnB,EAAAvxH,KACAp6C,KAAAgwE,eAAA,GAGAm+F,EAAA5mK,aAAAsE,MAAAtE,EAAA6wB,GACA7wB,EAAAvH,KAAAouK,gBAAAtsI,KAEA+rI,WAAA,SAAAzzH,EAAAtY,EAAA1D,EAAAhG,GACA,OAAAgiB,EAAAhiB,KAIA,SAAA81I,EAAA9zH,EAAAtY,EAAA1D,EAAAhG,GACA,OAAA+1I,EAAA/zH,EAAAhiB,GAAAp4B,KAAAouK,gBAAAtsI,IAUA,SAAAqsI,EAAA5mK,EAAAy6B,GAEA,IAAAssI,EAAAtsI,KAAAx+B,KAEA,eAAA8qK,EAAA,CAEA,IAAAC,EAAAvsI,KAAAusI,YACA,OAAAA,IAAAC,gBAAAjnK,KAWA,MARA,SAAA+mK,GACA,iBAAA/mK,GAAA,MAAAA,GAAA,MAAAA,IACAA,GAAAqkK,EAAArkK,IAMA,MAAAA,GAAA,KAAAA,EAAAknK,KAEAlnK,EA6EApE,EAAAgpK,sBACAhpK,EAAA8qK,yBACA9qK,EAAAurK,iBA9DA,SAAA59J,EAAAstB,EAAA/F,GACA,GAAAvnB,EAAA,CAKA,IAAAspC,EAAAtpC,EAAAuxD,eAAAjkC,GAEA,SAAAgc,EAAA,CAIA,IACAtY,EACA1J,EAFAo0I,EAAA17J,EAAA69J,cAAA9F,YAAA2D,aAGAxqI,EAAAlxB,EAAAmxB,iBAAA5J,GAOA,OALA2J,IACAF,EAAAE,EAAAp/B,KACAw1B,EAAA4J,EAAAp1B,OAGAkhK,EAAAtB,GAAApyH,EAAAhc,EAAAhG,EAAA0J,MAyCA3+B,EAAAyrK,gBAzBA,SAAA99J,EAAAstB,EAAAr7B,GACA,GAAA+N,EAAA,CAIA,IAAA07J,EAAA17J,EAAA69J,cAAA9F,YAAA2D,aAEA,GAAAA,IAAAP,GAAAO,IAAAN,EAAA,CAIA,IAAA9xH,EAAAtpC,EAAAuxD,eAAAjkC,GAMA,OAJAouI,IAAAP,GAAArsK,EAAAw6C,KACAA,EAAA,MAGAA,EACAA,EAAAr3C,QADA,2BC3UA,IAiCA8rK,GAAA,+GACAl0J,GACAxU,MAAA0oK,EACAp0J,gBAAA,OACA1E,SACAqE,aACAwG,WACAza,MAxCA,QA0CAyvB,YACAzvB,MA3CA,UA+CA2P,QACA4E,WACAvU,MAjDA,SAoDAuU,WACAvU,MArDA,QAuDA+T,OACAQ,WACAvU,MAzDA,SA4DA6T,SACA80J,WACAltJ,QACAmR,YA/DA,UAmEAhZ,UACAW,WACAvU,MArEA,SAwEA2T,WACAY,WACAvU,MA1EA,SA6EAoU,UACAqG,WACAza,MA/EA,QAiFAqM,WACAoP,QACAzb,MAAA0oK,EAAA,KAGAp8J,OACAmP,QACAlH,WACAvU,MAzFA,UA6FA4oK,cACAntJ,QACAzb,MA/FA,OAgGA4sB,YAhGA,UAoGAi8I,UAhGA5pK,UACAwb,WACAza,MANA,SASAb,UACAsb,WACAza,MAXA,SAcA+K,WACAwJ,WACAvU,MAhBA,SAmBAZ,WACAqb,WACApd,KAAA,SACA2C,MAAA,SAGA2mB,WACAjM,WACA1a,MA3BA,UAqGA8oK,SAjGA7pK,UACAwb,WACAza,MANA,SASAb,UACAsb,WACAza,MAXA,SAcA+K,WACAwJ,WACAvU,MAhBA,SAmBAZ,WACAqb,WACApd,KAAA,SACA2C,MAAA,SAGA2mB,WACAjM,WACA1a,MA3BA,UAsGAX,WAlGAJ,UACAwb,WACAza,MANA,SASAb,UACAsb,WACAza,MAXA,SAcA+K,WACAwJ,WACAvU,MAhBA,SAmBAZ,WACAqb,WACApd,KAAA,SACA2C,MAAA,SAGA2mB,WACAjM,WACA1a,MA3BA,UAuGAhB,cAnGAC,UACAwb,WACAza,MANA,SASAb,UACAsb,WACAza,MAXA,SAcA+K,WACAwJ,WACAvU,MAhBA,SAmBAZ,WACAqb,WACApd,KAAA,SACA2C,MAAA,SAGA2mB,WACAjM,WACA1a,MA3BA,UAwGAV,MACAupB,OAAA,UAEAkgJ,OACA/oK,MAAA0oK,GAEAM,OACAj1J,OACAQ,WACAvU,MAjHA,UAqHAipK,aACA58J,WACAoP,QACAzb,MAAA,UACA2sB,OAAA,UACAC,YAAA,UACAC,aAAA,cAKArY,EAAAxV,aAAAI,UAAAF,MAAA,EACA,IAAApC,EAAA0X,EACAzX,EAAAC,QAAAF,0BCpJA,IAAAuX,EAAcjb,EAAQ,QAEtBw6B,EAAgBx6B,EAAQ,QAIxBK,EAFYL,EAAQ,QAEpBK,SA8BA,SAAAk6B,EAAAu1I,GACArvK,KAAAg/B,MAAA,IAAAxkB,EAAAskB,MACA9+B,KAAAsvK,YAAAD,GAAAt1I,EAGA,IAAAw1I,EAAAz1I,EAAA55B,UAEA,SAAAsvK,EAAA1+J,EAAAu5B,EAAA/J,EAAA1H,GACA,OAAAyR,IAAA5/B,MAAA4/B,EAAA,MAAA5/B,MAAA4/B,EAAA,OAAAzR,EAAAsI,UAAAtI,EAAAsI,SAAAZ,OAGA1H,EAAAuI,YAAAvI,EAAAuI,UAAAuJ,QAAAL,EAAA,GAAAA,EAAA,eAAAv5B,EAAAojD,cAAA5zB,EAAA,UAoHA,SAAAmvI,EAAA72I,GAOA,OANA,MAAAA,GAAAh5B,EAAAg5B,KACAA,GACAsI,SAAAtI,IAIAA,MAkBA,SAAA82I,EAAA5+J,GACA,IAAA0qB,EAAA1qB,EAAAuzB,UACA,OACA7xB,UAAAgpB,EAAA6D,SAAA,aAAAimC,cAAA,UACAqqG,eAAAn0I,EAAA6D,SAAA,sBAAAimC,eACAp2C,aAAAsM,EAAAx3B,IAAA,gBACAmrB,aAAAqM,EAAAx3B,IAAA,gBACAkf,eAAAsY,EAAAx3B,IAAA,kBACA+hE,WAAAvqC,EAAA6D,SAAA,SACAuwI,gBAAAp0I,EAAA6D,SAAA,kBACAmmC,YAAAhqC,EAAAx3B,IAAA,WA5IAurK,EAAAtuI,WAAA,SAAAnwB,EAAA8nB,GACAA,EAAA62I,EAAA72I,GACA,IAAAoG,EAAAh/B,KAAAg/B,MACAxD,EAAA1qB,EAAAuzB,UACA3D,EAAA1gC,KAAAic,MACA4zJ,EAAA7vK,KAAAsvK,YACAQ,EAAAJ,EAAA5+J,GAGA4vB,GACA1B,EAAAkG,YAGAp0B,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAgoC,GACA,IAAA58B,EAAAv5B,EAAA0uB,cAAAynC,GAEA,GAAAuoG,EAAA1+J,EAAAu5B,EAAA48B,EAAAruC,GAAA,CACA,IAAAm3I,EAAA,IAAAF,EAAA/+J,EAAAm2D,EAAA6oG,GACAC,EAAAhtK,KAAA,WAAAsnC,GACAv5B,EAAA+vB,iBAAAomC,EAAA8oG,GACA/wI,EAAAC,IAAA8wI,MAEGxzH,OAAA,SAAA0qB,EAAAC,GACH,IAAA6oG,EAAArvI,EAAAoD,iBAAAojC,GACA78B,EAAAv5B,EAAA0uB,cAAAynC,GAEAuoG,EAAA1+J,EAAAu5B,EAAA48B,EAAAruC,IAKAm3I,GAIAA,EAAA9uI,WAAAnwB,EAAAm2D,EAAA6oG,GACAt1J,EAAAoqB,YAAAmrI,GACA3hK,SAAAi8B,GACO7O,KANPu0I,EAAA,IAAAF,EAAA/+J,EAAAm2D,IACAlkE,KAAA,WAAAsnC,GASArL,EAAAC,IAAA8wI,GACAj/J,EAAA+vB,iBAAAomC,EAAA8oG,IAhBA/wI,EAAAv6B,OAAAsrK,KAiBGtrK,OAAA,SAAAyiE,GACH,IAAAzmE,EAAAigC,EAAAoD,iBAAAojC,GACAzmE,KAAAuvK,QAAA,WACAhxI,EAAAv6B,OAAAhE,OAEG0mE,UACHnnE,KAAAic,MAAAnL,GAGAy+J,EAAAU,aAAA,WACA,UAGAV,EAAA/5G,aAAA,WACA,IAAA1kD,EAAA9Q,KAAAic,MAEAnL,GAEAA,EAAA6vB,kBAAA,SAAAlgC,EAAA6/B,GACA,IAAA+J,EAAAv5B,EAAA0uB,cAAAc,GACA7/B,EAAAsC,KAAA,WAAAsnC,MAKAklI,EAAA3hG,yBAAA,SAAA98D,GACA9Q,KAAAkwK,aAAAR,EAAA5+J,GACA9Q,KAAAic,MAAA,KACAjc,KAAAg/B,MAAAkG,aAWAqqI,EAAAthG,kBAAA,SAAAF,EAAAj9D,EAAA8nB,GAGA,SAAAu3I,EAAA1vK,GACAA,EAAAm4D,UACAn4D,EAAA2vK,YAAA3vK,EAAA04D,eAAA,GAJAvgC,EAAA62I,EAAA72I,GAQA,QAAA0H,EAAAytC,EAAAvrE,MAAkC89B,EAAAytC,EAAA78C,IAAsBoP,IAAA,CACxD,IAAA+J,EAAAv5B,EAAA0uB,cAAAc,GAEA,GAAAkvI,EAAA1+J,EAAAu5B,EAAA/J,EAAA1H,GAAA,CACA,IAAAn4B,EAAA,IAAAT,KAAAsvK,YAAAx+J,EAAAwvB,EAAAtgC,KAAAkwK,cACAzvK,EAAAk4D,SAAAw3G,GACA1vK,EAAAsC,KAAA,WAAAsnC,GACArqC,KAAAg/B,MAAAC,IAAAx+B,GACAqQ,EAAA+vB,iBAAAP,EAAA7/B,MAeA8uK,EAAA9qK,OAAA,SAAA4rK,GACA,IAAArxI,EAAAh/B,KAAAg/B,MACAluB,EAAA9Q,KAAAic,MAEAnL,GAAAu/J,EACAv/J,EAAA6vB,kBAAA,SAAAlgC,GACAA,EAAAuvK,QAAA,WACAhxI,EAAAv6B,OAAAhE,OAIAu+B,EAAAkG,aAkBA,IAAAjiC,EAAA62B,EACA52B,EAAAC,QAAAF,0BC3MAC,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAAmC6xE,YAAA,2BCA3D7xE,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAErB+wK,EAAmB/wK,EAAQ,QAE3Bo4C,EAAoBp4C,EAAQ,QAE5Bk4C,EAAYl4C,EAAQ,QAEpBm4C,EAAiBn4C,EAAQ,QAEzBgxK,EAAehxK,EAAQ,QAEvBixK,EAAAD,EAAAC,uBACAC,EAAAF,EAAAE,iBACAC,EAAAH,EAAAG,qBAEA7pI,EAAmBtnC,EAAQ,QA6B3B,SAAAoxK,EAAAp/J,EAAAgmB,GACA,IAMAq5I,EACAl+I,EACA0G,EARAy3I,EAAAt/J,EAAA/N,KACAwE,EAAAuvB,EAAAu5I,SACA7oK,EAAAsvB,EAAAw5I,SACAh3H,EAAA,MAAA/xC,EACAgyC,EAAA,MAAA/xC,EACA4wC,EAAAtnC,EAAAuqB,YAKA,YAAA+0I,EACAD,EAAAr5I,EAAAy5I,gBAAA/vK,QAEAyxB,EAAA6E,EAAAvzB,IAAA,eAEA61B,EAAA/tB,QAAA4mB,KACAA,MAAA,EAAAA,GAAA,IAGA,kBAAAA,EAAA,KACAA,GAAA,MAGAA,EAAA,GAAAglB,EAAAhL,aAAAha,EAAA,MACAA,EAAA,GAAAglB,EAAAhL,aAAAha,EAAA,MACA0G,EAAAyf,EAAA,GAAAA,EAAA,IAAA9wC,KAAAY,IAAAkwC,EAAA,KAgBA,MAAA7wC,IACAA,EAAA,YAAA6oK,EAAAD,EAAA,EAAAnC,IAAA51H,EAAA,GAAAnmB,EAAA,GAAA0G,GAGA,MAAAnxB,IACAA,EAAA,YAAA4oK,EAAAD,IAAA,EAAAnC,IAAA51H,EAAA,GAAAnmB,EAAA,GAAA0G,GAGA,YAAApxB,EACAA,EAAA6wC,EAAA,GACG,mBAAA7wC,IACHA,KACAA,IAAA6wC,EAAA,GACA5wC,IAAA4wC,EAAA,MAIA,YAAA5wC,EACAA,EAAA4wC,EAAA,GACG,mBAAA5wC,IACHA,KACAD,IAAA6wC,EAAA,GACA5wC,IAAA4wC,EAAA,OAIA,MAAA7wC,IAAAs2C,SAAAt2C,QAAAymK,MACA,MAAAxmK,IAAAq2C,SAAAr2C,QAAAwmK,KACAl9J,EAAA0/J,SAAAp3I,EAAAq3I,MAAAlpK,IAAA6xB,EAAAq3I,MAAAjpK,IAAA,YAAA4oK,IAAAt/J,EAAA4/J,iBAAAC,WAAAnwK,QAEAs2B,EAAA85I,qBAEArpK,EAAA,GAAAC,EAAA,IAAA8xC,IACA/xC,EAAA,GAIAA,EAAA,GAAAC,EAAA,IAAA+xC,IACA/xC,EAAA,IAaA,IAAAtE,EAAA4zB,EAAA5zB,QAEA,GAAAA,GAAA,SAAAktK,EAEA,CACA,IACAS,EADAC,EAAAf,EAAA,MAAA7sK,GAMA,GAJAk2B,EAAA4E,KAAA8yI,EAAA,SAAA/1I,GACA81I,GAAA91I,EAAAsB,gBAAAvF,EAAA9B,OAGA67I,EAAA,CAEA,IAAAE,EAAAf,EAAAc,GAEAE,EASA,SAAAzpK,EAAAC,EAAAsvB,EAAAi6I,GAEA,IAAAr5I,EAAAZ,EAAA9B,KAAAqG,YACA41I,EAAAv5I,EAAA,GAAAA,EAAA,GAEAw5I,EAAAjB,EAAAc,EAAAj6I,EAAA9B,MAEA,QAAA/nB,IAAAikK,EACA,OACA3pK,MACAC,OAIA,IAAA2pK,EAAAn4H,IACA5f,EAAA4E,KAAAkzI,EAAA,SAAAhlK,GACAilK,EAAA7pK,KAAAC,IAAA2E,EAAA+1B,OAAAkvI,KAEA,IAAAC,GAAAp4H,IACA5f,EAAA4E,KAAAkzI,EAAA,SAAAhlK,GACAklK,EAAA9pK,KAAAE,IAAA0E,EAAA+1B,OAAA/1B,EAAAqM,MAAA64J,KAEAD,EAAA7pK,KAAAY,IAAAipK,GACAC,EAAA9pK,KAAAY,IAAAkpK,GACA,IAAAC,EAAAF,EAAAC,EAEAE,EAAA9pK,EAAAD,EAEAgqK,EAAAD,GADA,GAAAH,EAAAC,GAAAH,GACAK,EAGA,OACA/pK,IAFAA,GAAAgqK,GAAAJ,EAAAE,GAGA7pK,IAJAA,GAAA+pK,GAAAH,EAAAC,IAtCAG,CAAAjqK,EAAAC,EAAAsvB,EAAAi6I,GACAxpK,EAAAypK,EAAAzpK,IACAC,EAAAwpK,EAAAxpK,KAIA,OAAAD,EAAAC,GAoHA,SAAAiqK,EAAAz8I,GACA,IAIAtjB,EAJAggK,EAAA18I,EAAA81B,gBAAAvnD,IAAA,aACAouK,EAAA,aAAA38I,EAAAjyB,KAAAiyB,EAAAlkB,MAAAuqB,YAAA,QAEA,uBAAAq2I,GACAhgK,EAIKggK,EAJLA,EACA,SAAA5kK,GACA,OAAA4E,EAAA5J,QAAA,UAAmC,MAAAgF,IAAA,MAMhC,mBAAA4kK,EACH,SAAAvzI,EAAA0B,GAWA,OAJA,MAAA8xI,IACA9xI,EAAA1B,EAAAwzI,GAGAD,EAAAE,EAAA58I,EAAAmJ,GAAA0B,IAGA,SAAA8nF,GACA,OAAA3yF,EAAAlkB,MAAA2nC,SAAAkvE,IAKA,SAAAiqD,EAAA58I,EAAAluB,GAIA,mBAAAkuB,EAAAjyB,KAAAiyB,EAAAlkB,MAAA2nC,SAAA3xC,KAvSAhI,EAAQ,QAERA,EAAQ,QAgWR4D,EAAAwtK,iBACAxtK,EAAAkgE,gBA9KA,SAAA9xD,EAAAgmB,GACA,IAAAyD,EAAA21I,EAAAp/J,EAAAgmB,GACAwiB,EAAA,MAAAxiB,EAAAu5I,SACA92H,EAAA,MAAAziB,EAAAw5I,SACA/oJ,EAAAuP,EAAAvzB,IAAA,eAEA,QAAAuN,EAAA/N,OACA+N,EAAAgnC,KAAAhhB,EAAAvzB,IAAA,YAGA,IAAA6sK,EAAAt/J,EAAA/N,KACA+N,EAAA4nC,UAAAne,EAAA,GAAAA,EAAA,IACAzpB,EAAAqoC,YACA5xB,cACA+xB,SACAC,SACAs4H,YAAA,aAAAzB,GAAA,SAAAA,EAAAt5I,EAAAvzB,IAAA,oBACAuuK,YAAA,aAAA1B,GAAA,SAAAA,EAAAt5I,EAAAvzB,IAAA,sBAOA,IAAA01C,EAAAniB,EAAAvzB,IAAA,YAEA,MAAA01C,GACAnoC,EAAAm3G,aAAAn3G,EAAAm3G,YAAAhvE,IAoJAv2C,EAAAggE,mBA1IA,SAAA5rC,EAAA+zB,GAGA,GAFAA,KAAA/zB,EAAAvzB,IAAA,QAGA,OAAAsnD,GAEA,eACA,WAAAglH,EAAA/4I,EAAA45I,eAAA55I,EAAA45I,iBAAA55I,EAAAy5I,iBAAAv3H,KAAA,MAEA,YACA,WAAA9B,EAGA,QACA,OAAAF,EAAAugB,SAAA1M,IAAA3T,GAAAjO,OAAAnS,KA6HAp0B,EAAA+kE,gBApHA,SAAAzyC,GACA,IAAAuiI,EAAAviI,EAAAlkB,MAAAuqB,YACA9zB,EAAAgwJ,EAAA,GACA/vJ,EAAA+vJ,EAAA,GACA,QAAAhwJ,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,IAiHA9E,EAAA+uK,qBACA/uK,EAAAkvK,kBACAlvK,EAAAglE,uBAzDA,SAAA1yC,GACA,IAAAY,EAAAZ,EAAA8B,MACAhmB,EAAAkkB,EAAAlkB,MAEA,GAAA8kB,EAAAryB,IAAA,oBAAAuN,EAAAihK,UAAA,CAIA,IACAC,EACAC,EAFAtvG,EAAA,aAAA3tC,EAAAjyB,KAGAmvK,EAAAphK,EAAAuqB,YAGA42I,EADAtvG,EACA7xD,EAAAhP,SAEAkwK,EAAAlhK,EAAAmnC,YACAz3C,OAGA,IAEAinC,EAkBA8M,EAAAyzH,EACAmK,EACAC,EACAC,EACAC,EACAC,EACAC,EA1BAC,EAAAz9I,EAAA81B,gBACA4mH,EAAAD,EAAAz8I,GAEAnO,EAAA,EAEAorJ,EAAA,KACAprJ,EAAAvf,KAAAowC,KAAAu6H,EAAA,KAGA,QAAA3xK,EAAA,EAAiBA,EAAA2xK,EAAe3xK,GAAAumB,EAAA,CAChC,IACA7U,EAAA0/J,EADAM,IAAA1xK,GAAA4xK,EAAA,GAAA5xK,GAEAoyK,EAAAD,EAAA9c,YAAA3jJ,GACA2gK,GAOAp+H,EAPAm+H,EAOA1K,EAPAyK,EAAAlvK,IAAA,aAQA4uK,EAAAnK,EAAA1gK,KAAAgwB,GAAA,IACA86I,EAAA79H,EAAA2+B,QACAm/F,EAAAD,EAAA75J,MACA+5J,EAAAF,EAAA55J,OACA+5J,EAAAF,EAAA/qK,KAAA0jC,IAAAmnI,GAAAG,EAAAhrK,KAAA2jC,IAAAknI,GACAK,EAAAH,EAAA/qK,KAAA2jC,IAAAknI,GAAAG,EAAAhrK,KAAA0jC,IAAAmnI,GACA,IAAA/rI,EAAAgsI,EAAAxuK,EAAAwuK,EAAAtuK,EAAAyuK,EAAAC,IAbA/qI,IAAAmrI,MAAAD,GAAAlrI,EAAAkrI,EAGA,OAAAlrI,4BC1WA,IAEAomB,EAFc/uD,EAAQ,QAEtB+uD,iBAEAglH,EAAW/zK,EAAQ,QAEnBC,EAAUD,EAAQ,QAElBsnC,EAAmBtnC,EAAQ,QAE3BmsD,EAAcnsD,EAAQ,QAEtBg0K,EAAYh0K,EAAQ,QAEpBkmD,EAA4BlmD,EAAQ,QAEpCw0C,EAAYx0C,EAAQ,QAEpBorC,EAAUprC,EAAQ,QAOlB,SAAAi0K,EAAAjmK,GACA,OAAAqsE,SAAArsE,EAAA,IAmBA,IAAAwnC,EAAA,IAAAlO,EAAA,SACA4sI,EAAA,IAAA5sI,EAAA,SA0DA,IAAA6sI,EAAA,SAAA74H,EAAAyX,EAAAznD,GACA7K,KAAAwD,KAAA,SAEA,IAAAmwK,GAAA94H,EAAA+4H,UACA,WAAA/4H,EAAA+4H,SAAA5hI,cACAhyC,KAAA6zK,MAAAhpK,EAAAyoK,EAAA5pK,UAAoCmB,OAKpC7K,KAAA+lC,IAAAl7B,EAAAyjD,oBAMAtuD,KAAA8zK,cAAAH,EAMA3zK,KAAA66C,OACA,IAAAk5H,EAAAl5H,EAAAtiC,MAEAw7J,IACAA,EAAA,6CACAA,EAAA,uBAAAA,EAAA,eAAAA,EAAA,gCACAl5H,EAAAjG,UAAA,IAOA50C,KAAAsyD,UAMA,IAAA0hH,EAAAh0K,KAAAi0K,eAMAC,EAAAl0K,KAAAm0K,WAaA,GAPAn0K,KAAAo0K,gBAKAp0K,KAAAq0K,2BAAA,EAEAV,EAKG,CACH,IAAA36J,EAAA6hC,EAAA7hC,MACAC,EAAA4hC,EAAA5hC,OAEA,MAAApO,EAAAmO,QACAA,EAAAnO,EAAAmO,OAGA,MAAAnO,EAAAoO,SACAA,EAAApO,EAAAoO,QAGAjZ,KAAA+lC,IAAAl7B,EAAAyjD,kBAAA,EAEAzT,EAAA7hC,QAAAhZ,KAAA+lC,IACA8U,EAAA5hC,SAAAjZ,KAAA+lC,IACA/lC,KAAAs0K,OAAAt7J,EACAhZ,KAAAu0K,QAAAt7J,EAGA,IAAAu7J,EAAA,IAAAjB,EAAA14H,EAAA76C,UAAA+lC,KACAyuI,EAAAC,aAAA,EACAD,EAAAE,cAGAR,EA7KA,QA6KAM,EACAA,EAAA7/I,OA9KA,OAgLAq/I,EAAAzyK,KAhLA,QAiLAvB,KAAA20K,SAAA95H,MAlCA,CACA76C,KAAAs0K,OAAAt0K,KAAA40K,SAAA,GACA50K,KAAAu0K,QAAAv0K,KAAA40K,SAAA,GACA,IAAAC,EAAA70K,KAAA20K,SA9EA,SAAA37J,EAAAC,GACA,IAAA47J,EAAAhlK,SAAAC,cAAA,OAGA,OADA+kK,EAAAt8J,MAAAyzB,SAAA,+CAAAhzB,EAAA,eAAAC,EAAA,8CAAA7S,KAAA,KAAyK,IACzKyuK,EA0EAC,CAAA90K,KAAAs0K,OAAAt0K,KAAAu0K,SACA15H,EAAA5qC,YAAA4kK,GAsCA70K,KAAA+0K,YAAA,KACA/0K,KAAAg1K,mBAGAtB,EAAAxzK,WACAC,YAAAuzK,EACA5mK,QAAA,WACA,gBAOAmoK,eAAA,WACA,OAAAj1K,KAAA8zK,eAMA3J,gBAAA,WACA,OAAAnqK,KAAA20K,UAEAO,sBAAA,WACA,IAAAhL,EAAAlqK,KAAAmqK,kBAEA,GAAAD,EACA,OACAzrH,WAAAyrH,EAAAzrH,YAAA,EACAC,UAAAwrH,EAAAxrH,WAAA,IASA0H,QAAA,SAAA+uH,GACA,IAAAtoJ,EAAA7sB,KAAAsyD,QAAAC,gBAAA,GACAyhH,EAAAh0K,KAAAi0K,YACAj0K,KAAAo1K,UAAArtK,KAAAstK,SAEAr1K,KAAAs1K,WAAAzoJ,EAAAsoJ,EAAAn1K,KAAAo1K,WAGA,QAAAr0K,EAAA,EAAmBA,EAAAizK,EAAA/yK,OAAuBF,IAAA,CAC1C,IAAA6zB,EAAAo/I,EAAAjzK,GACAw0K,EAAAv1K,KAAAm0K,QAAAv/I,GAEA,IAAA2gJ,EAAAd,aAAAc,EAAAnvH,QAAA,CACA,IAAAovH,EAAA,IAAAz0K,EAAAf,KAAAy1K,iBAAA,KACAF,EAAAnvH,QAAAovH,IAKA,OADAx1K,KAAA01K,eACA11K,MAEA21K,SAAA,SAAAl1K,EAAA8kE,GACA,IAAA9kE,EAAAm1K,WAAA,CAIA,IAAAC,EAAA,IAAAp1K,EAAAN,aACAoY,MAAA9X,EAAA8X,MACAwP,MAAAtnB,EAAAsnB,QAEA8tJ,EAAAC,OAAAr1K,EACAA,EAAAm1K,WAAAC,EACAA,EAAAv5H,SAAAipB,GAEAvlE,KAAAg1K,eAAAzzK,KAAAs0K,KAEAE,YAAA,SAAAt1K,GACA,IAAAo1K,EAAAp1K,EAAAm1K,WACAI,EAAAh2K,KAAAg1K,eACA10I,EAAAgzI,EAAAxzK,QAAAk2K,EAAAH,GAEAv1I,GAAA,GACA01I,EAAA10K,OAAAg/B,EAAA,GAGA7/B,EAAAm1K,WAAA,MAEAK,WAAA,SAAAx1K,GAGA,IAFA,IAAAu1K,EAAAh2K,KAAAg1K,eAEAj0K,EAAA,EAAmBA,EAAAi1K,EAAA/0K,OAA0BF,IAAA,CAC7C,IAAAgL,EAAAiqK,EAAAj1K,GAAA+0K,OAEA/pK,IACAA,EAAA6pK,WAAA,MAIAI,EAAA/0K,OAAA,GAEAy0K,aAAA,WACA,IAAAM,EAAAh2K,KAAAg1K,eACAnzK,EAAAm0K,EAAA/0K,OACAi1K,EAAAl2K,KAAA+0K,YAGA,GAFAmB,KAAA9wH,QAEAvjD,EAAA,CAIA6pD,EAAAsqH,EAAAh2K,KAAAsyD,QAAA6jH,qBAGAD,IACAA,EAAAl2K,KAAA+0K,YAAA/0K,KAAAotE,SA3SA,MA8SA,IAAAtL,KACAo0G,EAAArwI,IAAAuwI,OAEA,QAAAr1K,EAAA,EAAmBA,EAAAc,GAAS,CAC5B,IAAApB,EAAAu1K,EAAAj1K,GACAs1K,EAAA51K,EAAAq1K,OAGAO,KAAA11K,MAOAI,IAGAs1K,EAAAhf,YACA52J,EAAAw3B,UAAAo+I,EAAAp+I,UACAx3B,EAAAmpC,aAAAysI,EAAAzsI,aACAnpC,EAAA61K,YAAAD,EAAAC,YAEAt2K,KAAAu2K,WAAA91K,EAAAy1K,GAAA,EAAAp0G,MAdAk0G,EAAA10K,OAAAP,EAAA,GACAs1K,EAAAT,WAAA,KACA/zK,KAgBAq0K,EAAArwI,IAAA2wI,YAEAC,cAAA,WACA,OAAAz2K,KAAAotE,SA5UA,MA8UAkoG,WAAA,SAAAzoJ,EAAAsoJ,EAAAuB,GACA,GAAA12K,KAAAo1K,YAAAsB,EAAA,CAIAvB,MAAA,EAEAn1K,KAAA22K,mBAAA9pJ,GAEA,IAAA+pJ,EAAA52K,KAAA62K,aAAAhqJ,EAAAsoJ,GAMA,GAJAn1K,KAAAq0K,2BACAr0K,KAAA82K,sBAGAF,EAAA,CACA,IAAAzqK,EAAAnM,KACAylD,EAAA,WACAt5C,EAAAmpK,WAAAzoJ,EAAAsoJ,EAAAuB,QAIAI,mBAAA,WACA,IAAAjxI,EAAA7lC,KAAAotE,SApWA,QAoWAvnC,IACA7sB,EAAAhZ,KAAA20K,SAAA37J,MACAC,EAAAjZ,KAAA20K,SAAA17J,OACA4sB,EAAAkxI,UAAA,IAAA/9J,EAAAC,GAEAjZ,KAAAg3K,iBAAA,SAAAzB,GACAA,EAAA0B,SACApxI,EAAAqxI,UAAA3B,EAAAtnH,IAAA,IAAAj1C,EAAAC,MAIA49J,aAAA,SAAAhqJ,EAAAsoJ,GAGA,IAFA,IAAAgC,KAEAC,EAAA,EAAoBA,EAAAp3K,KAAAi0K,YAAAhzK,OAA8Bm2K,IAAA,CAClD,IAAAziJ,EAAA30B,KAAAi0K,YAAAmD,IACA7B,EAAAv1K,KAAAm0K,QAAAx/I,IAEA8/I,aAAAc,IAAAv1K,KAAA+0K,cAAAQ,EAAArgI,SAAAigI,IACAgC,EAAA51K,KAAAg0K,GAMA,IAFA,IAAAqB,GAAA,EAEAnuJ,EAAA,EAAmBA,EAAA0uJ,EAAAl2K,OAAsBwnB,IAAA,CACzC,IAAA8sJ,EACA1vI,GADA0vI,EAAA4B,EAAA1uJ,IACAod,IACAi8B,KACAj8B,EAAAuwI,OACA,IAAA5zK,EAAA2yK,EAAAI,EAAA8B,aAAA9B,EAAA+B,YACAC,GAAApC,GAAAI,EAAAnF,aAAA3gK,KAAAC,IACAwhD,EAAAqmH,GAAA9nK,KAAAC,MACA8lK,EAAAD,EAAA5gJ,SAAA30B,KAAAi0K,YAAA,GAAAj0K,KAAAy1K,iBAAA,KAEA,GAAAF,EAAA8B,eAAA9B,EAAAiC,WACAjC,EAAAnwH,OAAA,EAAAowH,QACO,GAAAhzK,IAAA+yK,EAAA8B,aAAA,CACP,IAAAI,EAAA5qJ,EAAArqB,GAEAi1K,EAAArH,aAAAqH,EAAAC,WAAAvC,GACAI,EAAAnwH,OAAA,EAAAowH,IAIA,IAAAhzK,IACAiT,QAAAslE,MAAA,4CACAv4E,EAAA+yK,EAAA8B,cAGA,QAAAt2K,EAAAyB,EAAyBzB,EAAAw0K,EAAAiC,WAAsBz2K,IAAA,CAC/C,IAAAN,EAAAosB,EAAA9rB,GAMA,GAJAf,KAAAu2K,WAAA91K,EAAA80K,EAAAJ,EAAArzG,GAEArhE,EAAAy0C,SAAA,EAEAqiI,EAKA,GAHA9nK,KAAAC,MAAAwhD,EAGA,GACA,MAKAqkH,EAAA+B,YAAAv2K,EAEAw0K,EAAA+B,YAAA/B,EAAAiC,aACAZ,GAAA,GAGA90G,EAAA61G,iBAEA9xI,EAAA2wI,UAGA3wI,EAAA2wI,UAYA,OATA7rI,EAAAitI,KAEAtE,EAAA70I,KAAAz+B,KAAAm0K,QAAA,SAAAoB,GACAA,KAAA1vI,KAAA0vI,EAAA1vI,IAAAgyI,MACAtC,EAAA1vI,IAAAgyI,SAKAjB,GAEAL,WAAA,SAAA91K,EAAAq3K,EAAAC,EAAAj2G,GACA,IAAAj8B,EAAAiyI,EAAAjyI,IACAlZ,EAAAlsB,EAAAw3B,UAEA,IAAA6/I,EAAA5iI,SAAA6iI,KACAt3K,EAAA42J,WACA,IAAA52J,EAAA8X,MAAA1F,WAGA8Z,KAAA,IAAAA,EAAA,OACAlsB,EAAAu3K,UAhbA,SAAAv3K,EAAAuY,EAAAC,GASA,OARA87B,EAAAtL,KAAAhpC,EAAAqnC,mBAEArnC,EAAAw3B,WACA8c,EAAA/N,eAAAvmC,EAAAw3B,WAGAw7I,EAAAz6J,QACAy6J,EAAAx6J,UACA87B,EAAAkjI,UAAAxE,GAuaAyE,CAAAz3K,EAAAT,KAAAs0K,OAAAt0K,KAAAu0K,UAAA,CACA,IAAA4D,EAAA13K,EAAA61K,YAEAx0G,EAAA61G,kBAvaA,SAAAQ,EAAAC,GACA,GAAAD,GAAAC,EAEA,SAGA,IAAAD,IAAAC,GAAAD,EAAAl3K,SAAAm3K,EAAAn3K,OACA,SAGA,QAAAF,EAAA,EAAiBA,EAAAo3K,EAAAl3K,OAAsBF,IACvC,GAAAo3K,EAAAp3K,KAAAq3K,EAAAr3K,GACA,SA2ZAs3K,CAAAF,EAAAr2G,EAAA61G,mBAEA71G,EAAA61G,kBACAG,EAAAjyI,IAAA2wI,UACA10G,EAAA61G,gBAAA,KAEA71G,EAAAw2G,OAAA,MAIAH,IACAtyI,EAAAuwI,OAjaA,SAAA+B,EAAAtyI,GACA,QAAA9kC,EAAA,EAAiBA,EAAAo3K,EAAAl3K,OAAsBF,IAAA,CACvC,IAAAk7B,EAAAk8I,EAAAp3K,GACAk7B,EAAAs8I,aAAA1yI,GACAA,EAAA4J,YACAxT,EAAAyT,UAAA7J,EAAA5J,EAAAlU,OACA8d,EAAA2yI,OAEAv8I,EAAAw8I,iBAAA5yI,IA0ZA6yI,CAAAP,EAAAtyI,GACAi8B,EAAA61G,gBAAAQ,IAIA13K,EAAAk4K,aAAAl4K,EAAAk4K,YAAA9yI,GACAplC,EAAA4Z,MAAAwrB,EAAAi8B,EAAAw2G,QAAA,MACAx2G,EAAAw2G,OAAA73K,EACAA,EAAAm4K,YAAAn4K,EAAAm4K,WAAA/yI,KAUAunC,SAAA,SAAAz4C,EAAAsiJ,GACAj3K,KAAA8zK,gBAAA9zK,KAAAq0K,4BACA1/I,EA9eA,QAifA,IAAA4gJ,EAAAv1K,KAAAm0K,QAAAx/I,GAsBA,OApBA4gJ,KAEAA,EAAA,IAAAhC,EAAA,MAAA5+I,EAAA30B,UAAA+lC,MACApR,SACA4gJ,EAAAd,aAAA,EAEAz0K,KAAAo0K,aAAAz/I,IACA2+I,EAAA3iG,MAAA4kG,EAAAv1K,KAAAo0K,aAAAz/I,IAAA,GAGAsiJ,IACA1B,EAAA0B,WAGAj3K,KAAA64K,YAAAlkJ,EAAA4gJ,GAGAA,EAAAb,eAGAa,GAEAsD,YAAA,SAAAlkJ,EAAA4gJ,GACA,IAAAuD,EAAA94K,KAAAm0K,QACAH,EAAAh0K,KAAAi0K,YACApyK,EAAAmyK,EAAA/yK,OACA83K,EAAA,KACAh4K,GAAA,EACA8zK,EAAA70K,KAAA20K,SAEA,GAAAmE,EAAAnkJ,GACAn1B,EAAA,UAAAm1B,EAAA,+BAKA,GA/gBA,SAAA4gJ,GACA,QAAAA,MAIAA,EAAAd,aAIA,mBAAAc,EAAA/4J,QAAA,mBAAA+4J,EAAAnvH,SAsgBA4yH,CAAAzD,GAAA,CAKA,GAAA1zK,EAAA,GAAA8yB,EAAAq/I,EAAA,IACA,IAAAjzK,EAAA,EAAiBA,EAAAc,EAAA,KACjBmyK,EAAAjzK,GAAA4zB,GAAAq/I,EAAAjzK,EAAA,GAAA4zB,GAD8B5zB,KAM9Bg4K,EAAAD,EAAA9E,EAAAjzK,IAQA,GALAizK,EAAA1yK,OAAAP,EAAA,IAAA4zB,GACAmkJ,EAAAnkJ,GAAA4gJ,GAIAA,EAAA0B,QACA,GAAA8B,EAAA,CACA,IAAAE,EAAAF,EAAA9qH,IAEAgrH,EAAAjiI,YACA69H,EAAAqE,aAAA3D,EAAAtnH,IAAAgrH,EAAAjiI,aAEA69H,EAAA5kK,YAAAslK,EAAAtnH,UAGA4mH,EAAA99H,WACA89H,EAAAqE,aAAA3D,EAAAtnH,IAAA4mH,EAAA99H,YAEA89H,EAAA5kK,YAAAslK,EAAAtnH,UAhCAzuD,EAAA,mBAAAm1B,EAAA,kBAsCAwkJ,UAAA,SAAA7xG,EAAAxZ,GACA,IACAl5B,EACA7zB,EAFAizK,EAAAh0K,KAAAi0K,YAIA,IAAAlzK,EAAA,EAAeA,EAAAizK,EAAA/yK,OAAuBF,IACtC6zB,EAAAo/I,EAAAjzK,GACAumE,EAAA57D,KAAAoiD,EAAA9tD,KAAAm0K,QAAAv/I,OAIAoiJ,iBAAA,SAAA1vG,EAAAxZ,GACA,IACAynH,EACA3gJ,EACA7zB,EAHAizK,EAAAh0K,KAAAi0K,YAKA,IAAAlzK,EAAA,EAAeA,EAAAizK,EAAA/yK,OAAuBF,IACtC6zB,EAAAo/I,EAAAjzK,IACAw0K,EAAAv1K,KAAAm0K,QAAAv/I,IAEA6/I,aACAntG,EAAA57D,KAAAoiD,EAAAynH,EAAA3gJ,IAKAwkJ,eAAA,SAAA9xG,EAAAxZ,GACA,IACAynH,EACA3gJ,EACA7zB,EAHAizK,EAAAh0K,KAAAi0K,YAKA,IAAAlzK,EAAA,EAAeA,EAAAizK,EAAA/yK,OAAuBF,IACtC6zB,EAAAo/I,EAAAjzK,IACAw0K,EAAAv1K,KAAAm0K,QAAAv/I,IAEA6/I,aACAntG,EAAA57D,KAAAoiD,EAAAynH,EAAA3gJ,IASAykJ,UAAA,WACA,OAAAr5K,KAAAm0K,SAEAwC,mBAAA,SAAA9pJ,GAKA,SAAAysJ,EAAAh5I,GACAy4I,IACAA,EAAAvB,aAAAl3I,IACAy4I,EAAA7jI,SAAA,GAGA6jI,EAAAvB,WAAAl3I,GAIA,GAdAtgC,KAAAg3K,iBAAA,SAAAzB,EAAA3gJ,GACA2gJ,EAAArgI,QAAAqgI,EAAAgE,QAAA,IAaAv5K,KAAA8zK,cACA,QAAA/yK,EAAA,EAAqBA,EAAA8rB,EAAA5rB,OAAiBF,IAAA,CAGtC,IAFAN,EAAAosB,EAAA9rB,IAEA4zB,SAAA9H,EAAA9rB,EAAA,GAAA4zB,QAAAl0B,EAAA2vK,YAAA,CACApwK,KAAAq0K,2BAAA,EACA,OAKA,IAAA0E,EAAA,KACAS,EAAA,EAEA,IAAAz4K,EAAA,EAAmBA,EAAA8rB,EAAA5rB,OAAiBF,IAAA,CACpC,IAAAN,EAEA80K,EADA5gJ,GADAl0B,EAAAosB,EAAA9rB,IACA4zB,OAIAl0B,EAAA2vK,cACAmF,EAAAv1K,KAAAotE,SAAAz4C,EAlpBA,KAkpBA30B,KAAAq0K,4BACAjE,aAAA,EACAoJ,EAAA,GAEAjE,EAAAv1K,KAAAotE,SAAAz4C,GAAA6kJ,EAAA,EAvpBA,IAupBA,GAAAx5K,KAAAq0K,2BAGAkB,EAAAd,aACAj1K,EAAA,UAAAm1B,EAAA,kCAAA4gJ,EAAA7zK,IAGA6zK,IAAAwD,IACAxD,EAAAgE,QAAA,EAEAhE,EAAA8B,eAAAt2K,IACAw0K,EAAArgI,SAAA,GAGAqgI,EAAA8B,aAAAt2K,EAEAw0K,EAAAnF,YAIAmF,EAAA+B,aAAA,EAHA/B,EAAA+B,YAAAv2K,EAMAu4K,EAAAv4K,GACAg4K,EAAAxD,GAGA90K,EAAAy0C,UACAqgI,EAAArgI,SAAA,EAEAqgI,EAAAnF,aAAAmF,EAAA+B,YAAA,IAEA/B,EAAA+B,YAAAv2K,IAKAu4K,EAAAv4K,GACAf,KAAAg3K,iBAAA,SAAAzB,EAAA3gJ,IAEA2gJ,EAAAgE,QAAAhE,EAAAkE,kBAAA,IACAlE,EAAArgI,SAAA,EACAqgI,EAAA8B,aAAA9B,EAAAiC,WAAAjC,EAAA+B,YAAA,GAIA/B,EAAArgI,SAAAqgI,EAAA+B,YAAA,IACA/B,EAAA+B,YAAA/B,EAAA8B,iBAQAjyH,MAAA,WAEA,OADAplD,KAAAg3K,iBAAAh3K,KAAA6tE,aACA7tE,MAEA6tE,YAAA,SAAA0nG,GACAA,EAAAnwH,SAEAqP,mBAAA,SAAAh6C,GACAza,KAAAy1K,iBAAAh7J,GAaA6yD,YAAA,SAAA34C,EAAAqrB,GACA,GAAAA,EAAA,CACA,IAAA05H,EAAA15K,KAAAo0K,aAEAsF,EAAA/kJ,GAGA2+I,EAAA3iG,MAAA+oG,EAAA/kJ,GAAAqrB,GAAA,GAFA05H,EAAA/kJ,GAAAqrB,EAKA,QAAAj/C,EAAA,EAAqBA,EAAAf,KAAAi0K,YAAAhzK,OAA6BF,IAAA,CAClD,IAAA44K,EAAA35K,KAAAi0K,YAAAlzK,GAEA,GAAA44K,IAAAhlJ,GAAAglJ,IAAAhlJ,EAhvBA,IAgvBA,CACA,IAAA4gJ,EAAAv1K,KAAAm0K,QAAAwF,GACArG,EAAA3iG,MAAA4kG,EAAAmE,EAAA/kJ,IAAA,OAUAilJ,SAAA,SAAAjlJ,GACA,IAAAu/I,EAAAl0K,KAAAm0K,QACAH,EAAAh0K,KAAAi0K,YACAsB,EAAArB,EAAAv/I,GAEA4gJ,IAIAA,EAAAtnH,IAAA1hB,WAAAC,YAAA+oI,EAAAtnH,YACAimH,EAAAv/I,GACAq/I,EAAA1yK,OAAAgyK,EAAAxzK,QAAAk0K,EAAAr/I,GAAA,KAMAnY,OAAA,SAAAxD,EAAAC,GACA,GAAAjZ,KAAA20K,SAAAp8J,MASK,CACL,IAAAs8J,EAAA70K,KAAA20K,SAEAE,EAAAt8J,MAAAM,QAAA,OAEA,IAAAhO,EAAA7K,KAAA6zK,MAOA,GANA,MAAA76J,IAAAnO,EAAAmO,SACA,MAAAC,IAAApO,EAAAoO,UACAD,EAAAhZ,KAAA40K,SAAA,GACA37J,EAAAjZ,KAAA40K,SAAA,GACAC,EAAAt8J,MAAAM,QAAA,GAEA7Y,KAAAs0K,QAAAt7J,GAAAC,GAAAjZ,KAAAu0K,QAAA,CAIA,QAAA7yK,KAHAmzK,EAAAt8J,MAAAS,QAAA,KACA67J,EAAAt8J,MAAAU,SAAA,KAEAjZ,KAAAm0K,QACAn0K,KAAAm0K,QAAAtxK,eAAAnB,IACA1B,KAAAm0K,QAAAzyK,GAAA8a,OAAAxD,EAAAC,GAIAq6J,EAAA70I,KAAAz+B,KAAA65K,mBAAA,SAAAtE,GACAA,EAAA/4J,OAAAxD,EAAAC,KAEAjZ,KAAAomD,SAAA,GAGApmD,KAAAs0K,OAAAt7J,EACAhZ,KAAAu0K,QAAAt7J,MAtCA,CAEA,SAAAD,GAAA,MAAAC,EACA,OAGAjZ,KAAAs0K,OAAAt7J,EACAhZ,KAAAu0K,QAAAt7J,EACAjZ,KAAAotE,SAvxBA,QAuxBA5wD,OAAAxD,EAAAC,GAiCA,OAAAjZ,MAOA85K,WAAA,SAAAnlJ,GACA,IAAA4gJ,EAAAv1K,KAAAm0K,QAAAx/I,GAEA4gJ,GACAA,EAAAnwH,SAOArgD,QAAA,WACA/E,KAAA66C,KAAAjG,UAAA,GACA50C,KAAA66C,KAAA76C,KAAAsyD,QAAAtyD,KAAA20K,SAAA30K,KAAAm0K,QAAA,MASAjiH,kBAAA,SAAArnD,GAGA,GAFAA,QAEA7K,KAAA8zK,gBAAA9zK,KAAA82K,mBACA,OAAA92K,KAAAm0K,QAz1BA,QAy1BAlmH,IAGA,IAAA8rH,EAAA,IAAAxG,EAAA,QAAAvzK,KAAA6K,EAAAsnD,YAAAnyD,KAAA+lC,KAIA,GAHAg0I,EAAArF,cACAqF,EAAA30H,OAAA,EAAAv6C,EAAA4P,iBAAAza,KAAAy1K,kBAEA5qK,EAAAsnD,YAAAnyD,KAAA+lC,IAAA,CACA/lC,KAAAomD,UACA,IAAAptC,EAAA+gK,EAAA9rH,IAAAj1C,MACAC,EAAA8gK,EAAA9rH,IAAAh1C,OACA4sB,EAAAk0I,EAAAl0I,IACA7lC,KAAAm5K,UAAA,SAAA5D,GACAA,EAAAd,YACA5uI,EAAAqxI,UAAA3B,EAAAtnH,IAAA,IAAAj1C,EAAAC,GACSs8J,EAAAyE,iBACTD,EAAAl0I,IAAAuwI,OACAb,EAAAyE,eAAAD,EAAAl0I,KACAk0I,EAAAl0I,IAAA2wI,kBAQA,IAHA,IAAA10G,KACAm4G,EAAAj6K,KAAAsyD,QAAAC,gBAAA,GAEAxxD,EAAA,EAAqBA,EAAAk5K,EAAAh5K,OAAwBF,IAAA,CAC7C,IAAAN,EAAAw5K,EAAAl5K,GAEAf,KAAAu2K,WAAA91K,EAAAs5K,GAAA,EAAAj4G,GAIA,OAAAi4G,EAAA9rH,KAMA6D,SAAA,WACA,OAAA9xD,KAAAs0K,QAMAviH,UAAA,WACA,OAAA/xD,KAAAu0K,SAEAK,SAAA,SAAAsF,GACA,IAAArvK,EAAA7K,KAAA6zK,MACAsG,GAAA,kBAAAD,GACAE,GAAA,8BAAAF,GACAG,GAAA,4BAAAH,GACAI,GAAA,gCAAAJ,GAEA,SAAArvK,EAAAsvK,IAAA,SAAAtvK,EAAAsvK,GACA,OAAA30J,WAAA3a,EAAAsvK,IAGA,IAAAt/H,EAAA76C,KAAA66C,KAEA0/H,EAAA1qK,SAAAs4C,YAAArL,iBAAAjC,GACA,OAAAA,EAAAu/H,IAAA5G,EAAA+G,EAAAJ,KAAA3G,EAAA34H,EAAAtiC,MAAA4hK,MAAA3G,EAAA+G,EAAAF,KAAA,IAAA7G,EAAA+G,EAAAD,KAAA,MAEAE,YAAA,SAAAn6K,EAAA0lC,GACAA,KAAA/lC,KAAA+lC,IACA,IAAArnB,EAAA7O,SAAAC,cAAA,UACA+1B,EAAAnnB,EAAA+7J,WAAA,MACAvyI,EAAA7nC,EAAAynC,kBACAvvB,EAAAlY,EAAAkY,MACAmiK,EAAAniK,EAAA6sB,WAAAW,EACAV,EAAA9sB,EAAA8sB,cAAAU,EACAT,EAAA/sB,EAAA+sB,cAAAS,EACAhJ,EAAAxkB,EAAAoiK,YAAApiK,EAAAwkB,UAAA,EACA69I,EAAA7yK,KAAAE,IAAA80B,EAAA,GAAAsI,EAAAq1I,GACAG,EAAA9yK,KAAAE,IAAA80B,EAAA,EAAAsI,EAAAq1I,GACAI,EAAA/yK,KAAAE,IAAA80B,EAAA,GAAAuI,EAAAo1I,GACAK,EAAAhzK,KAAAE,IAAA80B,EAAA,EAAAuI,EAAAo1I,GACA1hK,EAAAkvB,EAAAlvB,MAAA4hK,EAAAC,EACA5hK,EAAAivB,EAAAjvB,OAAA6hK,EAAAC,EACAr8J,EAAA1F,QAAA+sB,EACArnB,EAAAzF,SAAA8sB,EACAF,EAAAt0B,MAAAw0B,KACAF,EAAAkxI,UAAA,IAAA/9J,EAAAC,GACA4sB,EAAAE,MACA,IAAAi1I,GACA5sK,SAAA/N,EAAA+N,SACAypB,SAAAx3B,EAAAw3B,SACAtmB,MAAAlR,EAAAkR,OAEAlR,EAAA+N,UAAAwsK,EAAA1yI,EAAA7jC,EAAAy2K,EAAA5yI,EAAA3jC,GACAlE,EAAAw3B,SAAA,EACAx3B,EAAAkR,OAAA,KACAlR,EAAAmpC,kBAEAnpC,GACAA,EAAAga,MAAAwrB,GAGA,IACAo1I,EAAA,IADAlnI,GAEAx7B,OACAlU,EAAA,EACAE,EAAA,EACAutC,MAAApzB,KAgBA,OAZA,MAAAs8J,EAAA5sK,WACA6sK,EAAA7sK,SAAA/N,EAAA+N,SAAA4sK,EAAA5sK,UAGA,MAAA4sK,EAAAnjJ,WACAojJ,EAAApjJ,SAAAx3B,EAAAw3B,SAAAmjJ,EAAAnjJ,UAGA,MAAAmjJ,EAAAzpK,QACA0pK,EAAA1pK,MAAAlR,EAAAkR,MAAAypK,EAAAzpK,OAGA0pK,IAGA,IAAAh4K,EAAAywK,EACAxwK,EAAAC,QAAAF,0BCz+BA,IAAAi4K,EAAgB37K,EAAQ,QACxB47K,EAAe57K,EAAQ,QACvB67K,EAAsB77K,EAAQ,QAC9B2D,EAAAC,QAAA,SAAAk4K,GACA,gBAAAC,EAAA76K,EAAA86K,GACA,IAGAh0K,EAHAg5D,EAAA26G,EAAAI,GACAr6K,EAAAk6K,EAAA56G,EAAAt/D,QACA2L,EAAAwuK,EAAAG,EAAAt6K,GAIA,GAAAo6K,GAAA56K,MAAA,KAAAQ,EAAA2L,GAGA,IAFArF,EAAAg5D,EAAA3zD,OAEArF,EAAA,cAEK,KAAYtG,EAAA2L,EAAeA,IAAA,IAAAyuK,GAAAzuK,KAAA2zD,IAChCA,EAAA3zD,KAAAnM,EAAA,OAAA46K,GAAAzuK,GAAA,EACK,OAAAyuK,IAAA,0BCbL,IAAAG,EAAA,WAIAx7K,KAAAy7K,KAAA,KAKAz7K,KAAA07K,KAAA,KACA17K,KAAA2f,KAAA,GAGAg8J,EAAAH,EAAAt7K,UAOAy7K,EAAAC,OAAA,SAAAruK,GACA,IAAAq3C,EAAA,IAAAi3H,EAAAtuK,GAEA,OADAvN,KAAA87K,YAAAl3H,GACAA,GAQA+2H,EAAAG,YAAA,SAAAl3H,GACA5kD,KAAAy7K,MAGAz7K,KAAA07K,KAAAj3I,KAAAmgB,EACAA,EAAA0a,KAAAt/D,KAAA07K,KACA92H,EAAAngB,KAAA,KACAzkC,KAAA07K,KAAA92H,GALA5kD,KAAAy7K,KAAAz7K,KAAA07K,KAAA92H,EAQA5kD,KAAA2f,QAQAg8J,EAAAl3K,OAAA,SAAAmgD,GACA,IAAA0a,EAAA1a,EAAA0a,KACA76B,EAAAmgB,EAAAngB,KAEA66B,EACAA,EAAA76B,OAGAzkC,KAAAy7K,KAAAh3I,EAGAA,EACAA,EAAA66B,OAGAt/D,KAAA07K,KAAAp8G,EAGA1a,EAAAngB,KAAAmgB,EAAA0a,KAAA,KACAt/D,KAAA2f,QAOAg8J,EAAA95K,IAAA,WACA,OAAA7B,KAAA2f,MAOAg8J,EAAAv2H,MAAA,WACAplD,KAAAy7K,KAAAz7K,KAAA07K,KAAA,KACA17K,KAAA2f,KAAA,GAQA,IAAAk8J,EAAA,SAAAtuK,GAIAvN,KAAAuH,MAAAgG,EAKAvN,KAAAykC,KAKAzkC,KAAAs/D,MASAy8G,EAAA,SAAAC,GACAh8K,KAAAi8K,MAAA,IAAAT,EACAx7K,KAAAk8K,QACAl8K,KAAAm8K,SAAAH,GAAA,GACAh8K,KAAAo8K,kBAAA,MAGAC,EAAAN,EAAA77K,UAOAm8K,EAAAC,IAAA,SAAAvyK,EAAAxC,GACA,IAAAslB,EAAA7sB,KAAAi8K,MACAtrK,EAAA3Q,KAAAk8K,KACAzmG,EAAA,KAEA,SAAA9kE,EAAA5G,GAAA,CACA,IAAAlI,EAAAgrB,EAAAhrB,MAEA+iD,EAAA5kD,KAAAo8K,kBAEA,GAAAv6K,GAAA7B,KAAAm8K,UAAAt6K,EAAA,GAEA,IAAA06K,EAAA1vJ,EAAA4uJ,KACA5uJ,EAAApoB,OAAA83K,UACA5rK,EAAA4rK,EAAAxyK,KACA0rE,EAAA8mG,EAAAh1K,MACAvH,KAAAo8K,kBAAAG,EAGA33H,EACAA,EAAAr9C,QAEAq9C,EAAA,IAAAi3H,EAAAt0K,GAGAq9C,EAAA76C,MACA8iB,EAAAivJ,YAAAl3H,GACAj0C,EAAA5G,GAAA66C,EAGA,OAAA6wB,GAQA4mG,EAAAr4K,IAAA,SAAA+F,GACA,IAAA66C,EAAA5kD,KAAAk8K,KAAAnyK,GACA8iB,EAAA7sB,KAAAi8K,MAEA,SAAAr3H,EAOA,OALAA,IAAA/3B,EAAA6uJ,OACA7uJ,EAAApoB,OAAAmgD,GACA/3B,EAAAivJ,YAAAl3H,IAGAA,EAAAr9C,OAQA80K,EAAAj3H,MAAA,WACAplD,KAAAi8K,MAAA72H,QAEAplD,KAAAk8K,SAGA,IAAAj5K,EAAA84K,EACA74K,EAAAC,QAAAF,wBCvLA,IAAAu5K,GACAC,QAAA,SAAAl5F,GAIA,IAHA,IAAAj/D,EAAA,EACA/hB,EAAA,EAEAxB,EAAA,EAAmBA,EAAAwiF,EAAAtiF,OAAkBF,IACrC0J,MAAA84E,EAAAxiF,MACAujB,GAAAi/D,EAAAxiF,GACAwB,KAKA,WAAAA,EAAAksK,IAAAnqJ,EAAA/hB,GAEA+hB,IAAA,SAAAi/D,GAGA,IAFA,IAAAj/D,EAAA,EAEAvjB,EAAA,EAAmBA,EAAAwiF,EAAAtiF,OAAkBF,IAErCujB,GAAAi/D,EAAAxiF,IAAA,EAGA,OAAAujB,GAEArc,IAAA,SAAAs7E,GAGA,IAFA,IAAAt7E,GAAAwxC,IAEA14C,EAAA,EAAmBA,EAAAwiF,EAAAtiF,OAAkBF,IACrCwiF,EAAAxiF,GAAAkH,MAAAs7E,EAAAxiF,IAIA,OAAAu9C,SAAAr2C,KAAAwmK,KAEAzmK,IAAA,SAAAu7E,GAGA,IAFA,IAAAv7E,EAAAyxC,IAEA14C,EAAA,EAAmBA,EAAAwiF,EAAAtiF,OAAkBF,IACrCwiF,EAAAxiF,GAAAiH,MAAAu7E,EAAAxiF,IAIA,OAAAu9C,SAAAt2C,KAAAymK,KAIAiO,QAAA,SAAAn5F,GACA,OAAAA,EAAA,KAIAo5F,EAAA,SAAAp5F,EAAAh8E,GACA,OAAAQ,KAAAqC,MAAAm5E,EAAAtiF,OAAA,IAuCAiC,EAAAC,QApCA,SAAA0sE,GACA,OACAA,aACA+sG,iBAAA,EACA9xK,MAAA,SAAA0wB,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UACA2wJ,EAAArhJ,EAAAx3B,IAAA,YACAq3B,EAAAG,EAAAnN,iBAEA,mBAAAgN,EAAA73B,MAAAq5K,EAAA,CACA,IAQAC,EARAx/I,EAAAjC,EAAAyB,cACAt3B,EAAA61B,EAAA3E,aAAA4G,GACAtC,EAAAsC,EAAAxB,YAEAjK,EAAAmJ,EAAA,GAAAA,EAAA,GACAmqI,EAAAp9J,KAAAqC,MAAA0G,EAAAvO,QAAAsvB,GAEAszI,EAAA,IAGA,iBAAA0X,EACAC,EAAAN,EAAAK,GACW,mBAAAA,IACXC,EAAAD,GAGAC,GAEAthJ,EAAAuhJ,QAAAjsK,EAAAksK,WAAAlsK,EAAA0tB,aAAAh5B,EAAA6yB,KAAA,EAAA8sI,EAAA2X,EAAAH,iCCtGA,IAAA9iJ,EAAat6B,EAAQ,QAErB86B,EAAgB96B,EAAQ,QAExBib,EAAcjb,EAAQ,QAEtB4rC,EAAW5rC,EAAQ,QAqBnB09K,GAAA,aACAC,GAAA,wBACAC,EAAA9iJ,EAAA3wB,QACAlG,KAAA,UACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UACA8S,EAAAh/B,KAAAg/B,MACA0B,EAAA1gC,KAAAic,MAGAjc,KAAAic,OACA+iB,EAAAkG,YAGA,IAAAk4I,EAAA,eAAA5hJ,EAAAx3B,IAAA,cACA8M,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAgoC,GACA,GAAAn2D,EAAAusK,SAAAp2G,GAAA,CACA,IACA8oG,EAAAuN,EADAxsK,EAAA0uB,cAAAynC,GACAn2D,EAAAm2D,EAAAm2G,GAAA,GACAtsK,EAAA+vB,iBAAAomC,EAAA8oG,GACA/wI,EAAAC,IAAA8wI,MAEKxzH,OAAA,SAAA0qB,EAAAC,GACL,IAAA6oG,EAAArvI,EAAAoD,iBAAAojC,GAEA,GAAAp2D,EAAAusK,SAAAp2G,GAAA,CAKA,IAAAM,EAAAz2D,EAAA0uB,cAAAynC,GAEA8oG,EAGAwN,EAAAh2G,EAAAwoG,EAAAj/J,EAAAm2D,GAFA8oG,EAAAuN,EAAA/1G,EAAAz2D,EAAAm2D,EAAAm2G,GAKAp+I,EAAAC,IAAA8wI,GACAj/J,EAAA+vB,iBAAAomC,EAAA8oG,QAbA/wI,EAAAv6B,OAAAsrK,KAcKtrK,OAAA,SAAAyiE,GACL,IAAAzmE,EAAAigC,EAAAoD,iBAAAojC,GACAzmE,GAAAu+B,EAAAv6B,OAAAhE,KACK0mE,UACLnnE,KAAAic,MAAAnL,GAEArM,OAAA,SAAAd,GACA,IAAAq7B,EAAAh/B,KAAAg/B,MACAluB,EAAA9Q,KAAAic,MACAjc,KAAAic,MAAA,KACAnL,KAAA6vB,kBAAA,SAAAlgC,GACAA,GAAAu+B,EAAAv6B,OAAAhE,MAGAsE,QAAA80B,EAAAwiC,OAEAmhH,EAAAryI,EAAAzhC,QACAlG,KAAA,iBACAukB,SACA2nB,UAAA,SAAA7J,EAAA9d,GACA,IAAAk6B,EAAAl6B,EAAAqV,OACAr8B,EAAA,EAIA,IAHA8kC,EAAAkhI,OAAA9kH,EAAAlhD,GAAA,GAAAkhD,EAAAlhD,GAAA,IACAA,IAEUA,EAAA,EAAOA,IACjB8kC,EAAAmhI,OAAA/kH,EAAAlhD,GAAA,GAAAkhD,EAAAlhD,GAAA,IAKA,IAFA8kC,EAAA43I,YAEU18K,EAAAkhD,EAAAhhD,OAAiBF,IAC3B8kC,EAAAkhI,OAAA9kH,EAAAlhD,GAAA,GAAAkhD,EAAAlhD,GAAA,IACAA,IACA8kC,EAAAmhI,OAAA/kH,EAAAlhD,GAAA,GAAAkhD,EAAAlhD,GAAA,OAKA,SAAAu8K,EAAA/1G,EAAAz2D,EAAAstB,EAAAg/I,EAAAM,GACA,IAAAz7H,EAAAslB,EAAAtlB,KACAxhD,EAAA,IAAA+8K,GACAz1J,OACAqV,OAAAsgJ,EA4BA,SAAAtgJ,EAAA/E,EAAAkvC,GACA,OAAA1tC,EAAAlpB,IAAAysB,EAAA,SAAAiN,GAGA,OAFAA,IAAA/nC,SACA+1B,GAAAkvC,EAAAo2G,aACAtzI,IAhCAuzI,CAAA37H,EAAAm7H,EAAA71G,GAAAtlB,KAIA,OADAs7H,EAAAh2G,EAAA9mE,EAAAqQ,EAAAstB,EAAAs/I,GACAj9K,EAGA,SAAA88K,EAAAh2G,EAAA9mE,EAAAqQ,EAAAstB,EAAAs/I,GACA,IAAAliJ,EAAA1qB,EAAAuzB,WAEAwyB,EADAr8C,EAAAkjK,EAAA,4BACAj9K,GACAsnB,OACAqV,OAAAmqC,EAAAtlB,OAEGzmB,EAAA4C,GACH,IAAA8mC,EAAAp0D,EAAAq0D,aAAA/mC,GACAy/I,EAAA34G,EAAA7lC,SAAA49I,GACAlqJ,EAAAjiB,EAAAojD,cAAA91B,EAAA,SAEA5rB,EAAAqrK,EAAAv4G,cAAA,gBACA9yD,EAAA0wB,OAAAnQ,EACAvgB,EAAA68B,eAAA,EACA5uC,EAAAsiC,SAAAvwB,GACA/R,EAAA2jC,GAAA,IACA,IAAAmhC,EAAAL,EAAA7lC,SAAA69I,GAAA53G,eACA9qD,EAAAmrD,cAAAllE,EAAA8kE,GAWA,IAAAtiE,EAAAk6K,EACAj6K,EAAAC,QAAAF,0BCnJA,IAAAG,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAER,IAAAu+K,EAAoBv+K,EAAQ,QAE5Bw+K,EAAoBx+K,EAAQ,QAoB5B6D,EAAAw4D,eAAAkiH,GACA16K,EAAAm6D,eAAAwgH,2BC7BA,IAAAlkJ,EAAat6B,EAAQ,QAErB4sD,EAAkB5sD,EAAQ,QAI1By+K,EAFwBz+K,EAAQ,QAEhCy+K,iBAoBAC,EAAA9xH,EAAAziD,QACAlG,KAAA,iBACAixB,cAAA,wBAUAypJ,yBACAt7K,KAAA,MACAu7K,gBAAA,IAEAv7K,KAAA,KACAu7K,gBAAA,IAEAv7K,KAAA,SACAu7K,gBAAA,IAEAv7K,KAAA,KACAu7K,gBAAA,IAEAv7K,KAAA,MACAu7K,gBAAA,IAOAp8I,WAAA,KAKArN,eACAC,OAAA,EAEAC,EAAA,EAEAvG,iBAAA,cACA+vJ,iBAAA,EACAl7J,gBAAA,EAGAoU,OAAA,KAEA+mJ,UAAA,MAEA7rK,WACArM,MAAA,OACAmvB,YAAA,GAEAhP,UACA9T,WACA8iB,YAAA,EACA8P,WAAA,EACAC,cAAA,EACAC,cAAA,EACAg5I,YAAA,oBAGA1U,gBAAA,aACA2U,kBAAA,OAGA1kJ,EAAA8N,MAAAs2I,EAAAD,GAAA,GACA,IAAA/6K,EAAAg7K,EACA/6K,EAAAC,QAAAF,uCC/FAC,EAAAC,QAAA,SAAA8I,EAAAuyK,GACA,kBAEA,IADA,IAAApyK,EAAA,IAAAP,MAAA/G,UAAA7D,QACAF,EAAA,EAAmBA,EAAAqL,EAAAnL,OAAiBF,IACpCqL,EAAArL,GAAA+D,UAAA/D,GAEA,OAAAkL,EAAAM,MAAAiyK,EAAApyK,6BCRA,IAAAytB,EAAat6B,EAAQ,QAErB67J,EAAqB77J,EAAQ,QAE7Bk/K,EAAmBl/K,EAAQ,QAyB3BgrC,EAAA1Q,EAAA0Q,MACAm0I,EAAA,uBAuFA,SAAAC,EAAA/6K,GAGA,IAAAlD,EAAAkD,EAAAe,QACA,OAAAjE,EAAAg+K,KAAAh+K,EAAAg+K,OAUA,SAAAE,EAAAC,GACAhlJ,EAAA4E,KAAAogJ,EAAA,SAAAC,EAAAC,GACAD,EAAAv8K,QACAu8K,EAAAz0H,WAAAtlD,iBACA85K,EAAAE,MAKA,SAAAC,EAAAF,EAAA/wI,EAAAC,EAAAgvH,EAAAC,EAAAgiB,EAAAC,GACAC,EAAAL,EAAA,SAAAhkG,GACA,OAAAA,EAAAskG,YAAAN,EAAAz0H,WAAAtc,EAAAC,EAAAgvH,EAAAC,EAAAgiB,EAAAC,KAIA,SAAAG,EAAAP,EAAAvtK,EAAA+tK,EAAAC,GACAJ,EAAAL,EAAA,SAAAhkG,GACA,OAAAA,EAAA0kG,aAAAV,EAAAz0H,WAAA94C,EAAA+tK,EAAAC,KAIA,SAAAJ,EAAAL,EAAAW,GACA,IAAAxoH,KACAp9B,EAAA4E,KAAAqgJ,EAAAY,cAAA,SAAA5kG,GACA,IAAAslC,EAAAq/D,EAAA3kG,IACAA,EAAApH,UAAA0sC,GAAAnpD,EAAA11D,MACAo+K,WAAA7kG,EAAA6kG,WACAn9K,MAAA49G,EAAA,GACAlvF,IAAAkvF,EAAA,OAGAnpD,EAAAh2D,QAAA69K,EAAA16K,eAAA6yD,GAOA,SAAA7yD,EAAAR,EAAAqzD,GACArzD,EAAAQ,gBACAZ,KAAA,WACAyzD,UAoCA9zD,EAAAc,SAlKA,SAAAL,EAAAg8K,GACA,IAAAf,EAAAF,EAAA/6K,GACAi8K,EAAAD,EAAAD,WACAG,EAAAF,EAAAb,QAGAllJ,EAAA4E,KAAAogJ,EAAA,SAAAC,EAAAC,GACA,IAAAW,EAAAZ,EAAAY,cAEAA,EAAAG,IAAAhmJ,EAAA/5B,QAAA8/K,EAAAG,YAAAD,GAAA,WACAJ,EAAAG,GACAf,EAAAv8K,WAGAq8K,EAAAC,GACA,IAAAC,EAAAD,EAAAiB,GAEAhB,KACAA,EAAAD,EAAAiB,IACAf,QAAAe,EACAJ,iBACAn9K,MAAA,IAEA8nD,WAuDA,SAAAzmD,EAAAo8K,GACA,IAAA31H,EAAA,IAAA+wG,EAAAx3J,EAAAe,SAGA,OAFA0lD,EAAA3qC,GAAA,MAAA6qB,EAAAy0I,EAAAgB,IACA31H,EAAA3qC,GAAA,OAAA6qB,EAAA80I,EAAAW,IACA31H,EA3DA41H,CAAAr8K,EAAAk7K,GACAA,EAAA16K,eAAAy1B,EAAA0Q,MAAAnmC,EAAAR,KAIAk7K,EAAAY,cAAAG,IAAAf,EAAAv8K,QACAu8K,EAAAY,cAAAG,GAAAD,EACA,IAwGAF,EACAvjB,EACAvjI,EAIAsnJ,EA9GAC,GAwGAT,EAxGAZ,EAAAY,cA0GA9mJ,KAIAsnJ,GACAE,UAAA,EACAC,UAAA,EACAC,WAAA,EACAC,gBAAA,GAEA1mJ,EAAA4E,KAAAihJ,EAAA,SAAAE,GACA,IAAAY,GAAAZ,EAAAlsG,YAAAksG,EAAAa,UAAA,QAEAP,EAVA,QAUAM,GAAAN,EAVA,QAUA/jB,KACAA,EAAAqkB,GAIA3mJ,EAAAnwB,OAAAkvB,EAAAgnJ,EAAAc,sBAGAvkB,cACAvjI,QA/HAkmJ,EAAAz0H,WAAA6xG,OAAAikB,EAAAhkB,YAAAgkB,EAAAvnJ,KAEAkmJ,EAAAz0H,WAAA4xG,kBAAA2jB,EAAAe,eAEAlC,EAAAxZ,eAAA6Z,EAAA,iBAAAc,EAAAgB,aAAA,YAgIAz9K,EAAAuB,WAvHA,SAAAd,EAAA+7K,GACA,IAAAd,EAAAF,EAAA/6K,GACAi2B,EAAA4E,KAAAogJ,EAAA,SAAAC,GACAA,EAAAz0H,WAAAtlD,UACA,IAAA26K,EAAAZ,EAAAY,cAEAA,EAAAC,YACAD,EAAAC,GACAb,EAAAv8K,WAGAq8K,EAAAC,IA6GA17K,EAAA09K,gBAtGA,SAAAC,GACA,OAAAA,EAAAt9K,KAAA,MAAAs9K,EAAAp/K,yCC5GA,IAAA8iD,EAAajlD,EAAQ,QACrBwhL,EAAWxhL,EAAQ,QACnByhL,EAASzhL,EAAQ,QACjB0hL,EAAkB1hL,EAAQ,QAC1B2hL,EAAc3hL,EAAQ,OAARA,CAAgB,WAE9B2D,EAAAC,QAAA,SAAAg+K,GACA,IAAAlxI,EAAA,mBAAA8wI,EAAAI,GAAAJ,EAAAI,GAAA38H,EAAA28H,GACAF,GAAAhxI,MAAAixI,IAAAF,EAAAh+H,EAAA/S,EAAAixI,GACA51K,cAAA,EACAtH,IAAA,WAAsB,OAAAhE,iCCXtB,IAsGAiD,EAtGc1D,EAAQ,QAoBtBi1B,sBACAhxB,KAAA,cACA49K,iBAAA,KACA1sJ,eAEArvB,KAAA,OAEAtB,UAAA,KAEA4wB,OAAA,EACAC,EAAA,GACApxB,KAAA,OAGA69K,MAAA,EACAC,gBAAA,EACA/5K,MAAA,KACA0O,OAAA,KAaAzH,QAGAhN,UAAA,KACAk0B,wBAAA,IACA9U,WACAza,MAAA,OACA6S,MAAA,EACAxV,KAAA,SAEA+9K,aACAp7K,MAAA,yBAEAsM,OACApN,MAAA,EACAuI,UAAA,KAEAvE,UAAA,OAEA6gE,OAAA,EACA/jE,MAAA,OACAovB,SAAA,SACA9a,gBAAA,OAEAsY,YAAA,KACAuC,YAAA,EACA8P,WAAA,EACAk5I,YAAA,QAMAkD,QACAn8K,MAAA,EACAmuE,KAAA,2MAEA3hD,KAAA,GAEAq4C,OAAA,GAGA/jE,MAAA,OACAi/B,WAAA,EACAk5I,YAAA,OACAj5I,cAAA,EACAC,cAAA,EAEAshB,SAAA,OAKA1jD,EAAAC,QAAAF,uCCrGAE,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAs2K,EAAcliL,EAAQ,QAEtBmiL,GAEAv2K,EAFAs2K,IAEsCt2K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,QAAA2oK,EAAA3oK,SAAA,SAAAxY,GACA,QAAAQ,EAAA,EAAiBA,EAAA+D,UAAA7D,OAAsBF,IAAA,CACvC,IAAA0B,EAAAqC,UAAA/D,GAEA,QAAAgJ,KAAAtH,EACAmH,OAAA1J,UAAA2C,eAAA6I,KAAAjJ,EAAAsH,KACAxJ,EAAAwJ,GAAAtH,EAAAsH,IAKA,OAAAxJ,2BCrBA2C,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOAk5K,EACA,SAAAz+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBkyI,IACA,SAAAvuI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAy2K,EAAAriL,EAAA,IAEAsiL,GAEA12K,EAFAy2K,IAEsCz2K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E02K,EAAA9oK,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAstJ,EAAA9oK,QAAAnW,KAAAi/K,EAAA9oK,UAGA5V,EAAA4V,QAAA8oK,EAAA9oK,SAIA+oK,EACA,SAAA5+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBwiL,GACA,SAAA7+K,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy6K,EAAAziL,EAAA,IACA0iL,EAAA1iL,EAAA6+C,EAAA4jI,GACAE,EAAA3iL,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8uG,EAAA1sK,EACA2sK,EAAA,GATA,EAEA,KAEA,KAEA,MAUA39H,EAAA,QAAA2uB,EAAA,SAKAivG,GACA,SAAAj/K,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAwBAjmE,EAxBAH,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAkB5Ii3K,EAAA7iL,EAAA,GAEA8iL,GAIAl3K,EAJAi3K,IAIsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7E1L,EAAAF,EAAA,GAIA4D,EAAA4V,SACAupK,QAAAD,EAAAtpK,SAEAnW,KAAA,WAEA2/K,cAAA,WAEAlvG,QAAA,UAEAvwE,OACAyE,OACAw7J,UAAA,GAEAtwJ,OAAAtB,OAAA4J,QACA+E,QAAArG,QACAi6D,UACAlwE,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACAlE,OAAA,EACA41K,eAAA,EACAhrG,SAAA,EACAirG,UAAA,EACAC,OAAA,IAKA7mK,UACAjc,SAAA,WACA,0BAAAgK,OAAA1J,UAAA0H,SAAA8D,KAAA1L,KAAAuH,OAAA+Q,eAEAqqK,aAAA,WACA,OAAA3iL,KAAAyS,QAAAzS,KAAAJ,SAAA,GAAAI,KAAAuH,QAEAq7K,aAAA,WACA,OAAA5iL,KAAAuH,OAAAvH,KAAAyS,OAAA,IAEAowK,aAAA,WACA,OAAA7iL,KAAA8iL,OAAAC,SAGA/iL,KAAAwjD,SAAAxjD,KAAA8iL,OAAAv7K,MAAAvH,KAAAuH,OAFAvH,KAAAqd,QAAArd,KAAAuH,MAAAvH,KAAA8iL,OAAAv7K,QAKAy7K,aAAA,WACA,QAAAhjL,KAAA8iL,OAAAC,YACA/iL,KAAA6iL,eAAA7iL,KAAA8iL,OAAAv7K,WAAAtG,QAAAjB,KAAA8iL,OAAAG,eAAAjjL,KAAA8iL,OAAAG,cAAA,KAOA1nK,OACAonK,aAAA,WACA3iL,KAAA8f,SAAA9f,KAAA8iL,OAAAI,QAAAljL,KAAAu9I,SAAA,2BAEAh2I,MAAA,SAAAgG,EAAA41K,GACA,IAAAC,EAAApjL,KAAA8iL,OACAI,EAAAE,EAAAF,OACAG,EAAAD,EAAAC,SAEA,IAAArjL,KAAA8f,UAAAojK,EAAA,CACA,GAAAG,GAAA,qBAAA91K,EAAA,YAAAvC,EAAAuC,KAAA,qBAAA41K,EAAA,YAAAn4K,EAAAm4K,KAAA51K,EAAA81K,KAAAF,EAAAE,GACA,OAEArjL,KAAAu9I,SAAA,6BAKAxhI,SACAsB,QAAA,SAAA9H,EAAAC,GACA,GAAAxV,KAAAJ,SAEO,CACP,IAAAyjL,EAAArjL,KAAA8iL,OAAAO,SACA,SAAA5jL,EAAA6jL,gBAAA/tK,EAAA8tK,MAAA,EAAA5jL,EAAA6jL,gBAAA9tK,EAAA6tK,GAHA,OAAA9tK,IAAAC,GAMAguC,SAAA,WACA,IAAA3mC,EAAA7c,KAEA4L,EAAA9G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACAvE,EAAAuE,UAAA,GAEA,IAAA9E,KAAAJ,SACA,OAAAgM,EAAA9L,QAAAS,IAAA,EAEA,IACA8iL,EADAE,GACAF,EAAAxmK,EAAAimK,OAAAO,UAEAt2K,EAAAnB,EAAAwH,KAAA,SAAAzG,GACA,SAAAlN,EAAA6jL,gBAAA32K,EAAA02K,MAAA,EAAA5jL,EAAA6jL,gBAAA/iL,EAAA8iL,OAKA,2BAAAE,EAAA,YAAAv4K,EAAAu4K,MAAAx2K,OAAA,GAGAy2K,oBAAA,SAAAj2K,GACAvN,KAAAwiL,cAAAj1K,GAEAk2K,UAAA,WACAzjL,KAAA0zE,UAAA1zE,KAAAwiL,gBACAxiL,KAAA8iL,OAAAY,WAAA1jL,KAAA8iL,OAAAr6K,QAAA3I,QAAAE,QAGA2jL,kBAAA,YACA,IAAA3jL,KAAA0zE,WAAA,IAAA1zE,KAAAwiL,eACAxiL,KAAAu9I,SAAA,gCAAAv9I,MAAA,KAGA4jL,YAAA,SAAA7tH,GACA/1D,KAAAw3E,QAAA,IAAAlvE,QAAA,EAAA7I,EAAAokL,oBAAA9tH,GAAA,KAAA4F,KAAA37D,KAAA2iL,eAAA3iL,KAAA8f,QACA9f,KAAAw3E,SACAx3E,KAAA8iL,OAAAgB,yBAKAhkK,QAAA,WACA9f,KAAA8iL,OAAAr6K,QAAAlH,KAAAvB,MACAA,KAAA8iL,OAAAiB,cAAAxiL,KAAAvB,MACAA,KAAA8iL,OAAAkB,eACAhkL,KAAA8iL,OAAAgB,uBAEA9jL,KAAAikL,IAAA,cAAAjkL,KAAA4jL,aACA5jL,KAAAikL,IAAA,sBAAAjkL,KAAAwjL,sBAEAxjK,cAAA,WACAhgB,KAAA8iL,OAAAoB,gBAAAlkL,KAAA8iL,OAAAr6K,QAAA3I,QAAAE,UAMAmkL,GACA,SAAAjhL,EAAAqhD,EAAAhlD,GAEA,aACA,IAMA+0E,GAAiB7wE,OANjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,MAAgBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,2BAAAc,OAC5LwS,SAAA6pD,EAAAsuG,aACAruG,cAAAD,EAAAb,UAAAa,EAAAiuG,eAAAjuG,EAAAyuG,aACAN,MAAAnuG,EAAAmuG,OACGhjK,IAAK4kK,WAAA/vG,EAAAkvG,UAAA5uG,MAAA,SAAA0vG,GAAoDA,EAAAC,kBAAyBjwG,EAAAovG,kBAAAY,OAAgChwG,EAAAQ,GAAA,WAAA79D,EAAA,QAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAouG,oBAAA,IAEpGhrK,oBACjB4sC,EAAA,+BCtbA,IAAAnhD,EAAc7D,EAAQ,QAEtBklL,EAAWllL,EAAQ,QAEnBs6B,EAAat6B,EAAQ,QAIrBmlL,EAFanlL,EAAQ,QAErBmlL,gBAEAC,EAAYplL,EAAQ,QAIpBqlL,EAFcrlL,EAAQ,QAEtBqlL,WAEAC,EAA8BtlL,EAAQ,QAoBtCulL,EAAA1hL,EAAAq6D,mBACAj6D,KAAA,eACAgb,KAAA,SAAAvB,GACA6nK,EAAAlgL,WAAA5E,KAAA,OAAA8E,WAEA9E,KAAA+kL,mBAAA,WACA,OAAA/kL,KAAAglL,iBAGAhlL,KAAAilL,kBAAAhoK,EAAAioK,OAAAjoK,EAAAqO,OAEAtrB,KAAAmlL,yBAEAC,YAAA,SAAAnoK,GACA6nK,EAAAlgL,WAAA5E,KAAA,cAAA8E,WACA9E,KAAAilL,kBAAAhoK,EAAAioK,OAAAjoK,EAAAqO,OAEAtrB,KAAAmlL,yBAEAE,qBAAA,SAAApoK,GACA6nK,EAAAlgL,WAAA5E,KAAA,uBAAA8E,WACA4/K,EAAAznK,GAAA,wBAEA2rJ,eAAA,SAAA3rJ,EAAAtZ,GACA,IAAAuhL,EAAAjoK,EAAAioK,OAAAjoK,EAAAqO,UACAg6J,EAAAroK,EAAAnM,MAAAmM,EAAAqoK,UACAn5K,EAAAnM,KAEA,GAAAslL,GAAAJ,EACA,OAAAL,EAAAS,EAAAJ,EAAAllL,MAAA,EAGA,SAAAulL,EAAAC,GAEAD,EAAAE,WAAA,wBAAAluJ,GACA,IAAAmuJ,EAAAv5K,EAAAw5K,kBACAC,EAAAruJ,EAAA8tC,WAAA,YACAwgH,EAAAH,EAAAE,GAOA,OALAC,IACAA,EAAAC,YAAAvuJ,EAAAuuJ,YACAvuJ,EAAAuuJ,YAAAD,GAGAtuJ,IAEA,IAAAwuJ,EAAA55K,EAAAkzB,SAAA,aAEA2mJ,EAAA,IAAArB,GACAlyK,MAAAszK,EAAA9oK,QACO8oK,EAAAD,YAAAniL,GACPsiL,EAAA95K,EAAAkzB,SAAA,sBACA6mJ,EAAA,IAAAvB,GACAr+J,UACA7T,MAAAwzK,EAAAhpK,SAEOgpK,EAAAH,YAAAniL,GAMP,SAAAwiL,EAAA9lL,GAEA,OADAA,EAAAL,KAAAomL,UAAA/lL,KACA,UAAAA,EAAA,GAAA2lL,EAAA3lL,GAAA,aAAAA,EAAA,cAAAA,EAAA,GAAA6lL,EAAAlmL,KAAA8lL,YAPAN,EAAAC,WAAA,wBAAAluJ,GAEA,OADAA,EAAA8uJ,mBAAAF,GACA5uJ,MA9BAzmB,MA2CAw1K,SAAA,WACA,OAAAtmL,KAAAksB,UAAAgjJ,OAMAqX,YAAA,WACA,OAAAvmL,KAAAsmL,WAAAd,UAMAgB,kBAAA,WACA,OAAAxmL,KAAAglL,iBAMAyB,cAAA,SAAAroJ,EAAAsoJ,EAAArkK,GACA,YAAAA,EAAA,CACA,IAAAkjK,EAAAvlL,KAAAksB,UACAyF,EAAA3xB,KAAAu6D,cAAAn8B,EAAA/b,GACAskK,EAAApB,EAAArW,MAAA0X,eAAAxoJ,GACAyoJ,EAAAtB,EAAAphH,QAAAwiH,EAAAG,MAAA1oJ,WACA2oJ,EAAAxB,EAAAphH,QAAAwiH,EAAAK,MAAA5oJ,WACAwjB,KASA,OARA,MAAAilI,GAAAjlI,EAAArgD,KAAAslL,GACA,MAAAE,GAAAnlI,EAAArgD,KAAAwlL,GACAnlI,EAAAgjI,EAAAhjI,EAAAx7C,KAAA,QAEAurB,EAAApqB,QACAq6C,GAAA,MAAAgjI,EAAAjzJ,EAAApqB,QAGAq6C,EAGA,OAAAkjI,EAAAlgL,WAAA5E,KAAA,gBAAA8E,YAGAqgL,sBAAA,WACA,IAAA/T,EAAAv3I,EAAAlpB,IAAA3Q,KAAAid,OAAAm0J,eAAA,SAAA6V,GAEA,aAAAA,EAAA1/K,MAAA0/K,EAAAptJ,EAAAnwB,QACAnC,MAAA,GACO0/K,KAEPC,EAAA,IAAAzC,GAAA,SAAAzkL,MACAknL,EAAAj6F,SAAAmkF,GACApxK,KAAAglL,gBAAAkC,EACAlnL,KAAA2lL,kBAAAuB,EAAA3nJ,SAAA,SAAAe,GACA,OAAA4mJ,EAAA/hH,aAAA7kC,GAAA,MAGAoI,QAAA,SAAA5e,GACA9pB,KAAAid,OAAA6M,QAEAye,UAAA,SAAAzkB,GACA9jB,KAAAid,OAAA6G,UAEA2hD,mBAAA,WACA,OAAAq/G,EAAAqC,UAAAnnL,KAAA,yBACA,UAAAA,KAAAgE,IAAA,WAAAhE,KAAAgE,IAAA,2BAEA0wB,eACAC,OAAA,EACAC,EAAA,EACAvG,iBAAA,OAMA+vJ,iBAAA,EACAl7J,gBAAA,EACAoU,OAAA,KACA8vJ,oBAAA,EAEAC,UACAC,aAAA,GAGAC,OACAC,WAAA,KAEAC,WAAA,MACAC,QAAA,GAEAC,WAAA,GACAC,iBAAA,GAEA/hL,KAAA,SACAmM,IAAA,SAKAgd,OAAA,SACAC,WAAA,GACA44J,YAAA,eACAC,eAAA,GACAC,WACA35K,SAAA,UAEA6oJ,WAAA,EACAttI,MAAA,EAEA7F,OAAA,KACAgG,KAAA,EAEAk+J,eAAA,GAUAv1K,OACApN,MAAA,EACAuI,UAAA,OAEA4E,aACAoO,WACAza,MAAA,OACA6S,MAAA,EACAivK,UAAA,EACAp1K,QAAA,IAEAyT,UACA7T,OACApN,MAAA,OAKApC,EAAA6hL,EACA5hL,EAAAC,QAAAF,0BC1PA,IAAA42B,EAAat6B,EAAQ,QAErBolL,EAAYplL,EAAQ,QAEpB2oL,EAAe3oL,EAAQ,QAEvBklL,EAAWllL,EAAQ,QAEnB4oL,EAAuB5oL,EAAQ,QAgC/B6oL,EAAA,SAAAxlL,EAAAylL,GAIAroL,KAAA4C,QAAA,GAQA5C,KAAAsoL,MAAA,EAOAtoL,KAAAiZ,OAAA,EAMAjZ,KAAAusC,WAAA,KAYAvsC,KAAAo+B,WAAA,EAMAp+B,KAAAuoL,YAMAvoL,KAAAwoL,gBAMAxoL,KAAAqoL,YA0QA,SAAAI,EAAApkJ,EAAAqkJ,EAAAC,GAKA3oL,KAAA66C,KAMA76C,KAAA8Q,KAOA9Q,KAAA4oL,UAOA5oL,KAAAqkC,YAOArkC,KAAA6oL,YAAAhvJ,EAAAlpB,IAAA+3K,MAAA,SAAAI,GACA,WAAAnE,EAAAmE,EAAAzkJ,IAAA1gC,WAEA3D,KAAA+oL,YAAA,IAAApE,EAAAgE,MAAiDtkJ,IAAA1gC,SA1SjDykL,EAAAloL,WACAC,YAAAioL,EAMAY,UAAA,WACA,OAAAhpL,KAAAo+B,UAAA,GAqBA6qJ,SAAA,SAAAxgL,EAAA6+D,EAAAxZ,GACA,mBAAArlD,IACAqlD,EAAAwZ,EACAA,EAAA7+D,EACAA,EAAA,MAGAA,QAEAoxB,EAAAn6B,SAAA+I,KACAA,GACA4M,MAAA5M,IAIA,IAEAygL,EAFA7zK,EAAA5M,EAAA4M,OAAA,WACAkzK,EAAAvoL,KAAAyI,EAAA1F,MAAA,YAEA,aAAAsS,IAAA6zK,EAAA5hH,EAAA57D,KAAAoiD,EAAA9tD,OAEA,QAAAe,EAAA,GAAmBmoL,GAAAnoL,EAAAwnL,EAAAtnL,OAA0CF,IAC7DwnL,EAAAxnL,GAAAkoL,SAAAxgL,EAAA6+D,EAAAxZ,GAGA,cAAAz4C,GAAAiyD,EAAA57D,KAAAoiD,EAAA9tD,OAQAmpL,qBAAA,SAAAb,GACA,IAAArvK,EAAA,EACAjZ,KAAAsoL,QAEA,QAAAvnL,EAAA,EAAmBA,EAAAf,KAAAuoL,SAAAtnL,OAA0BF,IAAA,CAC7C,IAAAurC,EAAAtsC,KAAAuoL,SAAAxnL,GACAurC,EAAA68I,qBAAAb,EAAA,GAEAh8I,EAAArzB,WACAA,EAAAqzB,EAAArzB,QAIAjZ,KAAAiZ,SAAA,GAOAmwK,YAAA,SAAA1nL,GACA,GAAA1B,KAAAqpL,UAAA3nL,EACA,OAAA1B,KAGA,QAAAe,EAAA,EAAAwnL,EAAAvoL,KAAAuoL,SAAA1mL,EAAA0mL,EAAAtnL,OAAoEF,EAAAc,EAASd,IAAA,CAC7E,IAAAqO,EAAAm5K,EAAAxnL,GAAAqoL,YAAA1nL,GAEA,GAAA0N,EACA,OAAAA,IASAo0C,SAAA,SAAA0V,GACA,GAAAA,IAAAl5D,KACA,SAGA,QAAAe,EAAA,EAAAwnL,EAAAvoL,KAAAuoL,SAAA1mL,EAAA0mL,EAAAtnL,OAAoEF,EAAAc,EAASd,IAAA,CAC7E,IAAAqO,EAAAm5K,EAAAxnL,GAAAyiD,SAAA0V,GAEA,GAAA9pD,EACA,OAAAA,IASAk6K,aAAA,SAAAC,GAIA,IAHA,IAAAC,KACAtwH,EAAAqwH,EAAAvpL,UAAAusC,WAEA2sB,GACAswH,EAAAjoL,KAAA23D,GACAA,IAAA3sB,WAIA,OADAi9I,EAAAjiK,UACAiiK,GAOAC,SAAA,SAAAl5K,GACA,IAAAO,EAAA9Q,KAAAqoL,SAAAv3K,KACA,OAAAA,EAAA9M,IAAA8M,EAAA6xD,aAAApyD,GAAA,SAAAvQ,KAAAo+B,YAOAsrJ,UAAA,SAAApyJ,EAAAq5C,GACA3wE,KAAAo+B,WAAA,GAAAp+B,KAAAqoL,SAAAv3K,KAAA64K,cAAA3pL,KAAAo+B,UAAA9G,EAAAq5C,IAMAi5G,UAAA,WACA,OAAA5pL,KAAAqoL,SAAAv3K,KAAA0uB,cAAAx/B,KAAAo+B,YAOAiB,SAAA,SAAAh/B,GACA,KAAAL,KAAAo+B,UAAA,IAIA,IAGA2qJ,EAHAV,EAAAroL,KAAAqoL,SACAnjH,EAAAmjH,EAAAv3K,KAAAq0D,aAAAnlE,KAAAo+B,WACAyrJ,EAAA7pL,KAAA8pL,gBAOA,OAJAD,GAAA,IAAA7pL,KAAAuoL,SAAAtnL,SAAA,IAAAjB,KAAAuoL,SAAAtnL,SAAA,IAAAjB,KAAA+pL,YACAhB,EAAA/oL,KAAAgqL,kBAGA9kH,EAAA7lC,SAAAh/B,GAAAwpL,GAAAd,GAAAV,EAAAhkJ,WAAAhF,SAAAh/B,MAMAypL,cAAA,WACA,OAAA9pL,KAAAqoL,SAAAQ,iBAAA7oL,KAAAsoL,QAMA0B,eAAA,WACA,OAAAhqL,KAAAqoL,SAAAU,aAUA/mH,UAAA,SAAAj4D,EAAAxC,GACAvH,KAAAo+B,WAAA,GAAAp+B,KAAAqoL,SAAAv3K,KAAAmxD,cAAAjiE,KAAAo+B,UAAAr0B,EAAAxC,IAMAo6B,UAAA,SAAA53B,EAAAkgL,GACA,OAAAjqL,KAAAqoL,SAAAv3K,KAAAojD,cAAAl0D,KAAAo+B,UAAAr0B,EAAAkgL,IAOA1gB,YAAA,WACA,OAAAvpK,KAAAqoL,SAAAv3K,KAAAy4J,YAAAvpK,KAAAo+B,YAOAirJ,MAAA,WACA,OAAArpL,KAAAqoL,SAAAv3K,KAAAu4K,MAAArpL,KAAAo+B,YAUA8rJ,aAAA,SAAAhxH,GAGA,IAFA,IAAA3vB,EAAA2vB,EAAA3sB,WAEAhD,GAAA,CACA,GAAAA,IAAAvpC,KACA,SAGAupC,IAAAgD,WAGA,UAUA49I,eAAA,SAAAjxH,GACA,OAAAA,IAAAl5D,MAAAk5D,EAAAgxH,aAAAlqL,QAiDAyoL,EAAAvoL,WACAC,YAAAsoL,EACAjlL,KAAA,OAmBAylL,SAAA,SAAAxgL,EAAA6+D,EAAAxZ,GACA9tD,KAAA66C,KAAAouI,SAAAxgL,EAAA6+D,EAAAxZ,IAOAs8H,mBAAA,SAAAhsJ,GACA,IAAAisJ,EAAArqL,KAAA8Q,KAAAy4J,YAAAnrI,GACA,OAAAp+B,KAAA4oL,OAAAyB,IAOAC,cAAA,SAAA1nL,GACA,OAAA5C,KAAA66C,KAAAyvI,cAAA1nL,IAOA25C,OAAA,WAIA,IAHA,IAAAzrC,EAAA9Q,KAAA8Q,KACAw0K,EAAAtlL,KAAA4oL,OAEA7nL,EAAA,EAAAc,EAAAyjL,EAAArkL,OAAuCF,EAAAc,EAASd,IAChDukL,EAAAvkL,GAAAq9B,WAAA,EAGA,IAAAr9B,EAAA,EAAAc,EAAAiP,EAAAvO,QAAuCxB,EAAAc,EAASd,IAChDukL,EAAAx0K,EAAAy4J,YAAAxoK,IAAAq9B,UAAAr9B,GAOAwpL,aAAA,WACAvqL,KAAA8Q,KAAA05K,qBA2BA/B,EAAAgC,WAAA,SAAAC,EAAArmJ,EAAAsmJ,GACA,IAAAC,EAAA,IAAAnC,EAAApkJ,EAAAsmJ,EAAA11E,OAAA01E,EAAAE,QACAC,KACAC,EAAA,GAGA,SAAAC,EAAAC,EAAA1+I,GACA,IAAAhlC,EAAA0jL,EAAA1jL,MACAwjL,EAAAhjL,KAAAE,IAAA8iL,EAAAlxJ,EAAA/tB,QAAAvE,KAAAtG,OAAA,GACA6pL,EAAAvpL,KAAA0pL,GACA,IAAA/xH,EAAA,IAAAkvH,EAAA6C,EAAAroL,KAAAgoL,GACAr+I,EAoCA,SAAAD,EAAA4sB,GACA,IAAAqvH,EAAArvH,EAAAqvH,SAEA,GAAAj8I,EAAAC,aAAA2sB,EACA,OAGAqvH,EAAAhnL,KAAA+qC,GACAA,EAAAC,WAAA2sB,EA5CAgyH,CAAAhyH,EAAA3sB,GAAAq+I,EAAA/vI,KAAAqe,EAEA0xH,EAAAhC,OAAArnL,KAAA23D,GAEA,IAAAqvH,EAAA0C,EAAA1C,SAEA,GAAAA,EACA,QAAAxnL,EAAA,EAAqBA,EAAAwnL,EAAAtnL,OAAqBF,IAC1CiqL,EAAAzC,EAAAxnL,GAAAm4D,GAfA8xH,CAAAN,GAoBAE,EAAA/vI,KAAAsuI,qBAAA,GACA,IAAAgC,EAAAhD,EAAA2C,GACAM,iBAAA,SACAC,gBAAAN,IAEAl+J,EAAA,IAAA43J,EAAA0G,EAAA9mJ,GAQA,OAPAxX,EAAAogE,SAAA69F,GACA5C,GACA9hK,SAAAyG,EACAy+J,OAAAV,EACAW,WAAA,SAEAX,EAAAruI,SACAquI,GAqBA,IAAA3nL,EAAAwlL,EACAvlL,EAAAC,QAAAF,0BCpiBA,IAAAG,EAAc7D,EAAQ,QA+BtB6D,EAAAs4D,gBAJAl4D,KAAA,iBACA+zD,MAAA,oBAGA,SAAA3zB,EAAAjgC,GACAA,EAAAkvD,eACAvD,SAAA,eACAyG,MAAAnyB,GACG,SAAA4nJ,GACHA,EAAA/1J,KAAA8B,MAAAg5C,mBAAA3sC,EAAA4sC,eAOAptE,EAAAs4D,eAAA,8BAAA93B,EAAAjgC,GACAA,EAAAkvD,eACAvD,SAAA,WACAyG,MAAAnyB,GACG,SAAAmlI,GACHA,EAAA0iB,cAAA7nJ,4CC9CA,IAAAoxC,EAAYz1E,EAAQ,QAEpB2D,EAAAC,QAAA,SAAA8xE,EAAAy2G,GACA12G,EAAAlrE,QAAAmrE,EAAA,SAAA1tE,EAAA3E,GACAA,IAAA8oL,GAAA9oL,EAAAovC,gBAAA05I,EAAA15I,gBACAijC,EAAAy2G,GAAAnkL,SACA0tE,EAAAryE,+BCkBA,IA1BA,IAAAi3B,EAAat6B,EAAQ,QAErBosL,EAAapsL,EAAQ,QAqBrBqsL,GAAA,QACAxuJ,KAAA,kqBAEAr8B,EAAA,EAAeA,EAAAq8B,EAAAn8B,OAAmBF,IAClC,QAAA0nB,EAAA,EAAiBA,EAAA2U,EAAAr8B,GAAAE,OAAsBwnB,IACvC2U,EAAAr8B,GAAA0nB,GAAA,SACA2U,EAAAr8B,GAAA0nB,GAAA,QACA2U,EAAAr8B,GAAA0nB,GAAA,IAAAmjK,EAAA,GACAxuJ,EAAAr8B,GAAA0nB,GAAA,IAAAmjK,EAAA,GAeA1oL,EAAAC,QAXA,SAAAmX,GACA,UAAAA,EAAA3J,KACA2J,EAAAuxK,QAAAtqL,KAAA,IAAAoqL,EAAA,OAAA9xJ,EAAAlpB,IAAAysB,EAAA,SAAA0uJ,GACA,OACAtoL,KAAA,UACAsoL,cAEKF,8BC1CL,SAAApnI,GACA,IAAAunI,EAAA,iBAAAvnI,QAAA56C,iBAAA46C,EAEAthD,EAAAC,QAAA4oL,8CCHA,IAAA3oL,EAAc7D,EAAQ,QAEtBysL,EAAuBzsL,EAAQ,QAE/Bs6B,EAAat6B,EAAQ,QAErB06B,EAAgB16B,EAAQ,QAIxB0sL,EAFc1sL,EAAQ,QAEtB0sL,wBAEAC,EAA0B3sL,EAAQ,QAIlCqvK,EAFoBrvK,EAAQ,QAE5BqvK,gBAoBAud,EAAA/oL,EAAAq6D,mBACAj6D,KAAA,aAEAgb,KAAA,SAAAvB,GACAkvK,EAAAvnL,WAAA5E,KAAA,OAAA8E,WAGA9E,KAAA+kL,mBAAA,WACA,OAAA/kL,KAAAosL,cAGApsL,KAAAqsL,kBAAArsL,KAAAssL,yBAEAtsL,KAAAusL,kBAAAtvK,IAGAmoK,YAAA,SAAAzjH,GACAwqH,EAAAhF,UAAAnnL,KAAA,cAAA2hE,GACA3hE,KAAAqsL,kBAAArsL,KAAAssL,0BAEA1jB,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAAqoL,EAAAhsL,MAAA,WAEAssL,sBAAA,WAKA,IAJA,IAAAx7K,EAAA9Q,KAAAosL,aACA/rJ,EAAAvvB,EAAA0tB,aAAA,SACAs9B,KAEA/6D,EAAA,EAAAc,EAAAiP,EAAAvO,QAAuCxB,EAAAc,EAASd,IAChD+6D,EAAAv6D,MACAqB,KAAAkO,EAAAqzD,QAAApjE,GACAwG,MAAAuJ,EAAA9M,IAAAq8B,EAAAt/B,GACA2pB,SAAAkkJ,EAAA99J,EAAA/P,EAAA,cAIA,OAAA+6D,GAGAvB,cAAA,SAAAn8B,GACA,IAAAttB,EAAA9Q,KAAAksB,UACAyF,EAAAw6J,EAAAhF,UAAAnnL,KAAA,gBAAAo+B,GAEAouJ,KAMA,OALA17K,EAAA2tB,KAAA3tB,EAAA0tB,aAAA,kBAAAj3B,GACAilL,EAAAjrL,KAAAgG,KAEAoqB,EAAAvN,QAAA6nK,EAAAO,EAAApuJ,EAAAttB,EAAAuzB,UAAArgC,IAAA,qBACA2tB,EAAA86J,MAAAlrL,KAAA,WACAowB,GAEA46J,kBAAA,SAAAtvK,GAEAgd,EAAAyqJ,gBAAAznK,EAAA,sBACA,IAAAyvK,EAAAzvK,EAAAuG,UACAmpK,EAAA1vK,EAAAqJ,SAAA9C,UAEAkpK,EAAArnL,KAAAqnL,EAAArnL,MAAA4X,EAAAxK,MAAApN,KACAsnL,EAAAtnL,KAAAsnL,EAAAtnL,MAAA4X,EAAAqJ,SAAA7T,MAAApN,MAEAqvB,eACAC,OAAA,EACAC,EAAA,EACAwpJ,iBAAA,EACAl7J,gBAAA,EAEAY,QAAA,aACAnB,QAAA,SAEA2Z,WAAA,EACAF,WAAA,GAEAwwJ,SAAA,EAEAxoH,eAAA,GAEAyoH,YAAA,GAEAC,mBAAA,EAKAC,iBAAA,EAEAC,kBAAA,EAEAv6K,OAEAg2J,QAAA,EACApjK,MAAA,EAEA+I,SAAA,SAMAoV,WACAne,MAAA,EAEApE,OAAA,GAEAgsL,QAAA,GACAvnL,QAAA,EACAkb,WAEA5H,MAAA,EACAxV,KAAA,UAGAgP,WACA8iB,YAAA,GAGAuxC,cAAA,YACA+iG,gBAAA,cAGA/vI,EAAA8N,MAAAwkJ,EAAAD,GACA,IAAAjpL,EAAAkpL,EACAjpL,EAAAC,QAAAF,0BC7JA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAIrBovE,EAFkBpvE,EAAQ,QAE1BovE,oBA8BAvrE,EAAAs4D,gBACAl4D,KAAA,UACA+zD,MAAA,UACAhb,OAAA,mBACC,SAAA3Y,EAAAjgC,GACD,IAAAivD,EAAAhvB,EAAAgvB,eAAA,SACAjvD,EAAAkvD,eACAvD,SAAAsD,EACAmD,MAAAnyB,GACG,SAAAwwB,GACH,IAAA95C,EAAA85C,EAAA/lC,iBAEA,WAAA/T,EAAA9W,KAAA,CAIA,IAAA4L,EAAAu/D,EAAAr0D,EAAAspB,EAAAwwB,EAAApwD,IAAA,eACAowD,EAAA7rB,WAAA6rB,EAAA7rB,UAAAn5B,EAAA0U,QACAswC,EAAA1rB,SAAA0rB,EAAA1rB,QAAAt5B,EAAA0a,MAGA,WAAA8oC,GACA/4B,EAAA4E,KAAA21B,EAAA84H,YAAA,SAAA1xJ,GACAA,EAAA+M,UAAAn5B,EAAA0U,QACA0X,EAAAkN,QAAAt5B,EAAA0a,qCC5DA,IAAA1mB,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBk/K,EAAmBl/K,EAAQ,QAE3B4tL,EAA2B5tL,EAAQ,QAEnCA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAuBR6D,EAAAG,qBACAC,KAAA,WACAC,OAAA,SAAAslK,EAAAplK,EAAAC,GACA5D,KAAA6E,OAAAkkK,EACA/oK,KAAAivD,KAAArrD,EAEA5D,KAAAotL,YACAptL,KAAAotL,aACAvzJ,EAAA4E,KAAA4uJ,EAAA,SAAA5xK,EAAA8qB,GACA3iC,EAAAe,QAAA+a,GAAA6mB,EAAAvmC,KAAAotL,UAAA7mJ,GAAA1M,EAAArvB,KAAAiR,EAAAzb,QACOA,OAGPy+K,EAAAxZ,eAAAjlK,KAAA,2BAAA+oK,EAAA/kK,IAAA,8BAEAe,QAAA,SAAApB,EAAAC,GACAi2B,EAAA4E,KAAAz+B,KAAAotL,UAAA,SAAA3xK,EAAA8qB,GACA3iC,EAAAe,QAAA0rD,IAAA9pB,EAAA9qB,KAEAzb,KAAAotL,UAAA,MAMAE,yBAAA,SAAA10J,GACA54B,KAAAutL,gBAAA30J,IAEA20J,gBAAA,SAAA30J,GACAA,GAAA54B,KAAAivD,KAAA7qD,eAAAy1B,EAAAnwB,QACAlG,KAAA,sBACKo1B,OAGL,IAAAy0J,GACA7xB,UAAA,SAAAr3J,GACAqpL,EAAAxtL,KAAA,WACAA,KAAAytL,iBAAAtpL,EAAAG,QAAAH,EAAAK,WAGAo3J,QAAA,SAAAz3J,GACA,IAAAupL,EAAA1tL,KAAAytL,gBAEA,GAAAD,EAAAxtL,KAAA,UAAA0tL,EAAA,CACA,IAAArjJ,GAAAlmC,EAAAG,QAAAH,EAAAK,SAGA,GAFAuD,KAAAI,IAAAulL,EAAA,GAAArjJ,EAAA,MAAAtiC,KAAAI,IAAAulL,EAAA,GAAArjJ,EAAA,MAhDA,EAmDA,OAGA,IAAAt5B,EAAA/Q,KAAA6E,OAAAwpB,iBAAAs/J,2BAAAxpL,EAAAG,QAAAH,EAAAK,UAEA,SAAAuM,EAAA68K,UAAA5tL,KAAAutL,iBACAM,iBAAA98K,EAAA88K,mBAIA7tL,KAAAytL,gBAAA,MAEA/xB,UAAA,SAAAv3J,GAEA,IAAAnE,KAAAytL,iBAAAD,EAAAxtL,KAAA,cAIA,IAAAu3B,EAAAv3B,KAAA6E,OACAkM,EAAAwmB,EAAAlJ,iBAAAs/J,2BAAAxpL,EAAAG,QAAAH,EAAAK,UACAopL,EAAA78K,EAAA68K,SACA,SAAAA,GAAA5tL,KAAAstL,yBAAA3oB,iBAAAptI,EAAAvzB,IAAA,uBAEAhE,KAAAstL,yBAAA,SAAAM,EAAA,MAEAC,iBAAA98K,EAAA88K,iBAEArsL,UAAA,SAAAosL,GAAA,UAKA,SAAAJ,EAAA16H,EAAA/uD,GACA,IAAAwzB,EAAAu7B,EAAAjuD,OACA,OAAA0yB,EAAAvzB,IAAA,mBAAAuzB,EAAAvzB,IAAA,yBAAAD,EAGAX,EAAAg4D,qBAAA+xH,2BCxHA,IAAA3oI,EAAajlD,EAAQ,QACrBwhL,EAAWxhL,EAAQ,QACnBuuL,EAAcvuL,EAAQ,QACtBwuL,EAAaxuL,EAAQ,QACrB6L,EAAqB7L,EAAQ,QAAcyjD,EAC3C9/C,EAAAC,QAAA,SAAAP,GACA,IAAAorL,EAAAjN,EAAA91K,SAAA81K,EAAA91K,OAAA6iL,KAA0DtpI,EAAAv5C,YAC1D,KAAArI,EAAAs8C,OAAA,IAAAt8C,KAAAorL,GAAA5iL,EAAA4iL,EAAAprL,GAAkF2E,MAAAwmL,EAAA/qI,EAAApgD,8BCPlF,IAAAi3B,EAAat6B,EAAQ,QAErB06B,EAAgB16B,EAAQ,QAoBxBk/B,EAAA5E,EAAA4E,KACA7+B,EAAAi6B,EAAAj6B,SACAquL,GAAA,kFAEA,SAAAC,EAAAt1J,GACA,IAAAu1J,EAAAv1J,KAAApmB,UAEA,GAAA27K,EAIA,QAAAptL,EAAA,EAAAc,EAAAosL,EAAAhtL,OAA+CF,EAAAc,EAASd,IAAA,CACxD,IAAAqtL,EAAAH,EAAAltL,GACAstL,EAAAF,EAAAvsK,OACA0sK,EAAAH,EAAA7nK,SAEA+nK,KAAAD,KACAx1J,EAAAw1J,GAAAx1J,EAAAw1J,OAEAx1J,EAAAw1J,GAAAxsK,OAGAiY,EAAA82C,MAAA/3C,EAAAw1J,GAAAxsK,OAAAysK,EAAAD,IAFAx1J,EAAAw1J,GAAAxsK,OAAAysK,EAAAD,GAKAC,EAAAD,GAAA,MAGAE,KAAAF,KACAx1J,EAAAw1J,GAAAx1J,EAAAw1J,OAEAx1J,EAAAw1J,GAAA9nK,SAGAuT,EAAA82C,MAAA/3C,EAAAw1J,GAAA9nK,SAAAgoK,EAAAF,IAFAx1J,EAAAw1J,GAAA9nK,SAAAgoK,EAAAF,GAKAE,EAAAF,GAAA,OAKA,SAAAG,EAAA31J,EAAA41J,EAAAC,GACA,GAAA71J,KAAA41J,KAAA51J,EAAA41J,GAAA5sK,QAAAgX,EAAA41J,GAAAloK,UAAA,CACA,IAAAooK,EAAA91J,EAAA41J,GAAA5sK,OACA+sK,EAAA/1J,EAAA41J,GAAAloK,SAEAooK,IAEAD,GACA71J,EAAA41J,GAAA5sK,OAAAgX,EAAA41J,GAAAloK,SAAA,KACAuT,EAAAmJ,SAAApK,EAAA41J,GAAAE,IAEA91J,EAAA41J,GAAAE,GAIAC,IACA/1J,EAAAtS,SAAAsS,EAAAtS,aACAsS,EAAAtS,SAAAkoK,GAAAG,IAKA,SAAAC,EAAAh2J,GACA21J,EAAA31J,EAAA,aACA21J,EAAA31J,EAAA,aACA21J,EAAA31J,EAAA,aACA21J,EAAA31J,EAAA,SACA21J,EAAA31J,EAAA,aAEA21J,EAAA31J,EAAA,cAEA21J,EAAA31J,EAAA,aAGA,SAAAi2J,EAAAj2J,EAAAkN,GAEA,IAAAgpJ,EAAAlvL,EAAAg5B,MAAAkN,GACAprB,EAAA9a,EAAAkvL,MAAAp0K,UAEA,GAAAA,EACA,QAAA3Z,EAAA,EAAAc,EAAAo4B,EAAA80J,mBAAA9tL,OAA8DF,EAAAc,EAASd,IAAA,CACvE+kC,EAAA7L,EAAA80J,mBAAAhuL,GAEA2Z,EAAA7X,eAAAijC,KACAgpJ,EAAAhpJ,GAAAprB,EAAAorB,KAMA,SAAAkpJ,EAAAp2J,GACAA,IACAg2J,EAAAh2J,GACAi2J,EAAAj2J,EAAA,SACAA,EAAAtS,UAAAuoK,EAAAj2J,EAAAtS,SAAA,UAgHA,SAAA2oK,EAAA99G,GACA,OAAAt3C,EAAA/tB,QAAAqlE,cAGA,SAAA+9G,EAAA/9G,GACA,OAAAt3C,EAAA/tB,QAAAqlE,KAAA,GAAAA,OA+DAjuE,EAAAC,QA5DA,SAAA8Z,EAAAkyK,GACA1wJ,EAAAwwJ,EAAAhyK,EAAA3K,QAAA,SAAA88K,GACAxvL,EAAAwvL,IAtHA,SAAAA,GACA,GAAAxvL,EAAAwvL,GAAA,CAIAlB,EAAAkB,GACAR,EAAAQ,GACAP,EAAAO,EAAA,SAEAP,EAAAO,EAAA,cAEAP,EAAAO,EAAA,aAEAA,EAAA9oK,WACAuoK,EAAAO,EAAA9oK,SAAA,SAEAuoK,EAAAO,EAAA9oK,SAAA,cAEAuoK,EAAAO,EAAA9oK,SAAA,eAGAzM,EAAAu1K,EAAAv1K,aAGAq0K,EAAAr0K,GACAm1K,EAAAn1K,KAGAF,EAAAy1K,EAAAz1K,YAGAu0K,EAAAv0K,GACAq1K,EAAAr1K,IAGA,IAAAC,EAAAw1K,EAAAx1K,SAEAA,GACAo1K,EAAAp1K,GAGA,IAyBAC,EAWAF,EApCA7I,EAAAs+K,EAAAt+K,KAGA,aAAAs+K,EAAA5rL,KAAA,CACAsN,KAAAs+K,EAAA9J,MACA,IAAAE,EAAA4J,EAAA9jK,OAAA8jK,EAAAlK,MAEA,GAAAM,IAAA3rJ,EAAA4xI,aAAA+Z,GACA,QAAAzkL,EAAA,EAAqBA,EAAAykL,EAAAvkL,OAAqBF,IAC1CiuL,EAAAxJ,EAAAzkL,IAIA84B,EAAA4E,KAAA2wJ,EAAAhe,WAAA,SAAAx4I,GACAg2J,EAAAh2J,KAIA,GAAA9nB,IAAA+oB,EAAA4xI,aAAA36J,GACA,IAAA/P,EAAA,EAAmBA,EAAA+P,EAAA7P,OAAiBF,IACpCiuL,EAAAl+K,EAAA/P,IAOA,IAFA8Y,EAAAu1K,EAAAv1K,YAEAA,EAAA/I,KACA,KAAAu+K,EAAAx1K,EAAA/I,KAEA,IAAA/P,EAAA,EAAmBA,EAAAsuL,EAAApuL,OAAmBF,IACtCiuL,EAAAK,EAAAtuL,IAOA,IAFA4Y,EAAAy1K,EAAAz1K,WAEAA,EAAA7I,KACA,KAAAw+K,EAAA31K,EAAA7I,KAEA,IAAA/P,EAAA,EAAmBA,EAAAuuL,EAAAruL,OAAmBF,IACtC84B,EAAA/tB,QAAAwjL,EAAAvuL,KACAiuL,EAAAM,EAAAvuL,GAAA,IACAiuL,EAAAM,EAAAvuL,GAAA,KAEAiuL,EAAAM,EAAAvuL,IAMA,UAAAquL,EAAA5rL,MACAqrL,EAAAO,EAAA,aACAP,EAAAO,EAAA,SACAP,EAAAO,EAAA,WACG,YAAAA,EAAA5rL,MACH+qL,EAAAa,EAAAG,WAAA,aACA11J,EAAA4E,KAAA2wJ,EAAAn6E,OAAA,SAAAr8E,GACAg2J,EAAAh2J,MAEG,SAAAw2J,EAAA5rL,MACHorL,EAAAQ,EAAAvE,SAeA2E,CAAAJ,KAEA,IAAAK,GAAA,8EACAN,GAAAM,EAAAluL,KAAA,iDACAk9B,EAAAgxJ,EAAA,SAAA7+G,GACAnyC,EAAAwwJ,EAAAhyK,EAAA2zD,IAAA,SAAA8+G,GACAA,IACAb,EAAAa,EAAA,aACAb,EAAAa,EAAAt1K,YAAA,cAIAqkB,EAAAwwJ,EAAAhyK,EAAA0yK,UAAA,SAAAC,GACA,IAAAC,EAAAD,KAAAC,oBACAhB,EAAAgB,EAAA,aACAhB,EAAAgB,KAAAz1K,YAAA,WAEAqkB,EAAAwwJ,EAAAhyK,EAAA6yK,UAAA,SAAAC,GACAxB,EAAAwB,EAAA,aACAlB,EAAAkB,EAAA,YACAlB,EAAAkB,EAAA,cACAlB,EAAAkB,EAAA,eAGAtxJ,EAAAwwJ,EAAAhyK,EAAA9C,OAAA,SAAA61K,GACAnB,EAAAmB,EAAA,UAEAvxJ,EAAAwwJ,EAAAhyK,EAAA3C,KAAA,SAAA21K,GACArwL,EAAAqwL,KACAjB,EAAAiB,GACAxxJ,EAAAwwJ,EAAAgB,EAAApE,SAAA,SAAAqE,GACAlB,EAAAkB,QAIAzxJ,EAAAwwJ,EAAAhyK,EAAA1C,UAAA,SAAA41K,GACAnB,EAAAmB,GACA5B,EAAA4B,EAAA,SACA5B,EAAA4B,EAAA,aACA5B,EAAA4B,EAAA,mBACA,IAAAr/K,EAAAq/K,EAAAr/K,KACA+oB,EAAA/tB,QAAAgF,IAAA+oB,EAAA4E,KAAA3tB,EAAA,SAAAnE,GACAktB,EAAAj6B,SAAA+M,KACA4hL,EAAA5hL,EAAA,SACA4hL,EAAA5hL,EAAA,kBAIA8xB,EAAAwwJ,EAAAhyK,EAAAjD,SAAA,SAAAo2K,GACA7B,EAAA6B,EAAA,aACA3xJ,EAAA2xJ,EAAAC,QAAA,SAAAC,GACA/B,EAAA+B,EAAA,iBAGAzB,EAAAK,EAAAjyK,EAAA7C,aAAA,SACAy0K,EAAAK,EAAAjyK,EAAAlH,SAAAqE,YAAA,kCCvSA,IAAAyf,EAAat6B,EAAQ,QAErB8rC,EAAe9rC,EAAQ,QAWvBsjC,EAAA,SAAAx+B,EAAAE,EAAAspC,EAAAC,EAAA5L,EAAAquJ,GAIAvwL,KAAAqE,EAAA,MAAAA,EAAA,EAAAA,EACArE,KAAAuE,EAAA,MAAAA,EAAA,EAAAA,EACAvE,KAAA6tC,GAAA,MAAAA,EAAA,EAAAA,EACA7tC,KAAA8tC,GAAA,MAAAA,EAAA,EAAAA,EAEA9tC,KAAAwD,KAAA,SAEAxD,KAAAwkD,OAAA+rI,IAAA,EACAllJ,EAAA3/B,KAAA1L,KAAAkiC,IAGAW,EAAA3iC,WACAC,YAAA0iC,GAEAhJ,EAAA2xB,SAAA3oB,EAAAwI,GACA,IAAApoC,EAAA4/B,EACA3/B,EAAAC,QAAAF,wBCpBA,SAAAutL,EAAArlL,GACA,QAAAA,EAAAhL,aAAA,mBAAAgL,EAAAhL,YAAAqwL,UAAArlL,EAAAhL,YAAAqwL,SAAArlL;;;;;;;AALAjI,EAAAC,QAAA,SAAAgI,GACA,aAAAA,IAAAqlL,EAAArlL,IAQA,SAAAA,GACA,yBAAAA,EAAAslL,aAAA,mBAAAtlL,EAAA7I,OAAAkuL,EAAArlL,EAAA7I,MAAA,MATAouL,CAAAvlL,QAAAwlL,oCCSA,IAAAC,EAAerxL,EAAQ,SAEvB,WACA,QAAAwK,KAAA6mL,EAAA,CACA,SAAAA,MAAA/tL,eAAAkH,IAAA,YAAAA,GAAA,eAAAA,EAAA,OACA5G,EAAA4G,GAAA6mL,EAAA7mL,IAHA,GAOA,IAAA8mL,EAActxL,EAAQ,SAEtB,WACA,QAAAwK,KAAA8mL,EAAA,CACA,SAAAA,MAAAhuL,eAAAkH,IAAA,YAAAA,GAAA,eAAAA,EAAA,OACA5G,EAAA4G,GAAA8mL,EAAA9mL,IAHA,GAOAxK,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,gCC3HR,IAAAosD,EAAepsD,EAAQ,QAEvB4D,EAAA2tL,WAAAnlI,EAEA,IAAAhhB,EAAUprC,EAAQ,QAOlBwxL,EAAA,oBAAAphL,iBAAAiP,iBACAoyK,EAAA,iDAWA,SAAAC,EAAAxwL,EAAA0D,EAAAgmC,EAAA+mJ,GAiCA,OAhCA/mJ,QAWA+mJ,IAAAvmJ,EAAAiB,gBACAulJ,EAAA1wL,EAAA0D,EAAAgmC,GAQAQ,EAAAqvB,QAAAo3H,SAAA,MAAAjtL,EAAAktL,QAAAltL,EAAAktL,SAAAltL,EAAAG,SACA6lC,EAAAmnJ,IAAAntL,EAAAktL,OACAlnJ,EAAAonJ,IAAAptL,EAAAqtL,QAEA,MAAArtL,EAAAG,SACA6lC,EAAAmnJ,IAAAntL,EAAAG,QACA6lC,EAAAonJ,IAAAptL,EAAAK,SAGA2sL,EAAA1wL,EAAA0D,EAAAgmC,GAGAA,EAGA,SAAAgnJ,EAAA1wL,EAAA0D,EAAAgmC,GAEA,IAAAo4D,EA/CA,SAAA9hG,GAEA,OAAAA,EAAAk+C,sBAAAl+C,EAAAk+C,yBACA94C,KAAA,EACAmM,IAAA,GA2CA2sC,CAAAl+C,GACA0pC,EAAAmnJ,IAAAntL,EAAAstL,QAAAlvF,EAAA18F,KACAskC,EAAAonJ,IAAAptL,EAAAutL,QAAAnvF,EAAAvwF,IA2FA,IAAAlQ,EAAAivL,EAAA,SAAA5sL,GACAA,EAAAwtL,iBACAxtL,EAAAqgL,kBACArgL,EAAAytL,cAAA,GACC,SAAAztL,GACDA,EAAA0tL,aAAA,EACA1tL,EAAAytL,cAAA,GASAzuL,EAAA8tL,gBACA9tL,EAAA2uL,eAnGA,SAAArxL,EAAA0D,EAAA+sL,GAGA,UAFA/sL,KAAAwL,OAAA4nD,OAEA+5H,IACA,OAAAntL,EAGA,IAAAu2D,EAAAv2D,EAAAX,KAGA,GAFAk3D,KAAA56D,QAAA,YAKG,CACH,IAAAiyL,EAAA,YAAAr3H,EAAAv2D,EAAA6tL,cAAA,GAAA7tL,EAAA8tL,eAAA,GACAF,GAAAd,EAAAxwL,EAAAsxL,EAAA5tL,EAAA+sL,QAJAD,EAAAxwL,EAAA0D,IAAA+sL,GACA/sL,EAAA+tL,QAAA/tL,EAAA+4J,WAAA/4J,EAAA+4J,WAAA,MAAA/4J,EAAA0vB,QAAA,KAUA,IAAAs+J,EAAAhuL,EAAAguL,OAMA,OAJA,MAAAhuL,EAAAiuL,YAAA1kL,IAAAykL,GAAAnB,EAAAr1H,KAAAx3D,EAAAX,QACAW,EAAAiuL,MAAA,EAAAD,EAAA,IAAAA,EAAA,IAAAA,EAAA,KAGAhuL,GAwEAhB,EAAAyb,iBA/DA,SAAAne,EAAAmC,EAAA6Y,GACAs1K,EAqBAtwL,EAAAme,iBAAAhc,EAAA6Y,GAEAhb,EAAA4xL,YAAA,KAAAzvL,EAAA6Y,IAwCAtY,EAAA2b,oBApCA,SAAAre,EAAAmC,EAAA6Y,GACAs1K,EACAtwL,EAAAqe,oBAAAlc,EAAA6Y,GAEAhb,EAAA6xL,YAAA,KAAA1vL,EAAA6Y,IAiCAtY,EAAArB,OACAqB,EAAAw5J,aAXA,SAAAx4J,GAEA,OAAAA,EAAAiuL,MAAA,2BCpKA,IAAAG,EAAYhzL,EAAQ,QACpBizL,EAAkBjzL,EAAQ,QAE1B2D,EAAAC,QAAAyG,OAAAC,MAAA,SAAA02D,GACA,OAAAgyH,EAAAhyH,EAAAiyH,4BCLA,IAAApvL,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAqBR6D,EAAAG,qBACAC,KAAA,OACAC,OAAA,SAAA+kE,EAAA7kE,GACA3D,KAAAg/B,MAAAkG,YAEAsjC,EAAAxkE,IAAA,SACAhE,KAAAg/B,MAAAC,IAAA,IAAAzkB,EAAAyiB,MACAlV,MAAAygD,EAAAn6C,iBAAAk1C,UACAhrD,MAAAshB,EAAAmJ,UACAtrB,KAAA8wD,EAAAxkE,IAAA,oBACSwkE,EAAAlD,gBACTnhC,QAAA,EACAC,IAAA,QAKAhhC,EAAAg4D,qBAAA,SAAAn+C,GAEAA,EAAApH,OAAAoH,EAAArH,QAAAqH,EAAAtX,OACAsX,EAAAtX,mCCjDA,IAAA6U,EAAcjb,EAAQ,QAEtBstE,EAAWttE,EAAQ,QAEnBs6B,EAAat6B,EAAQ,QAIrBkzL,EAFclzL,EAAQ,QAEtBkzL,aAEAC,EAAWnzL,EAAQ,QAEnBozL,EAAgBpzL,EAAQ,QA+BxB,SAAAqtE,EAAAgmH,EAAAtyJ,EAAAwvI,GACAt1J,EAAAskB,MAAApzB,KAAA1L,MACAA,KAAAi/B,IAAAj/B,KAAA6yL,WAAAD,EAAAtyJ,EAAAwvI,IAEA9vK,KAAA8yL,oBAAAF,EAAAtyJ,GAGA,IAAAyyJ,EAAAnmH,EAAA1sE,UAEA6yL,EAAAF,WAAA,SAAAD,EAAAtyJ,EAAAwvI,GACA,WAAAjjG,EAAA+lH,EAAAtyJ,EAAAwvI,IAGAijB,EAAAD,oBAAA,SAAAF,EAAAtyJ,GACA,IACA0yJ,EADAJ,EAAAztH,aAAA7kC,GACAjB,SAAA,UACAxN,EAAAmhK,EAAAhvL,IAAA,cACA8rE,EAAAkjH,EAAAhvL,IAAA,UAEA61B,EAAA/tB,QAAA+lB,KACAA,SAGA,IAAA1rB,EAAA6sL,EAAAhvL,IAAA,UAAA4uL,EAAA1+H,cAAA5zB,EAAA,SACAtR,EAAAhvB,KAAAilE,QAAA,GAEAjlE,KAAAizL,cAAAnjH,IAEA9vE,KAAAyE,OAAAuqB,IACAA,EAAAyjK,EAAA3iH,GAAA,WAAA3pE,IACAi+B,GAAA,IACApV,EAAAgpJ,SAAA,EACAh4K,KAAAi/B,IAAAjQ,IAIAA,IAKAA,EAAAstB,SAAA,cAAAn2C,GACA6oB,EAAAstB,SAAA02I,EAAA1tH,cAAA,WACAt2C,EAAAjsB,KAAA,QAAA8uB,GACA7C,EAAAkkK,SAAA/sL,GACA6oB,EAAAjsB,KAAA,QAAA8uB,GACA7xB,KAAAizL,YAAAnjH,EAEA9vE,KAAAmzL,uBAAAP,EAAAI,EAAA1yJ,KAGAyyJ,EAAAI,uBAAA,SAAAP,EAAAI,EAAA1yJ,GACA,IAAAtR,EAAAhvB,KAAAilE,QAAA,GAEA,GAAAj2C,EAAA,CAIA,IAAA7iB,EAAAnM,KACAo9B,EAAAw1J,EAAApzJ,cAAAc,GACA8yJ,EAAA,IAAAJ,EAAAhvL,IAAA,UACA1D,EAAA0yL,EAAAhvL,IAAA,QACAqvL,EAAAL,EAAAhvL,IAAA,iBACAsvL,EAAAz5J,EAAAmuC,SAAAgrH,EAAAhvL,IAAA,kBAAAs8B,GACA,OAAAA,EAAAsyJ,EAAArwL,QAAA6wL,EAAA,IAEAG,EAAA,mBAAAD,EASA,GAPAtkK,EAAAgV,QAAA,EACAhkC,KAAAwzL,sBAAAxkK,EAAAoO,GAEAi2J,EAAA,IACAD,EAAApzL,KAAAyzL,cAAAzkK,GAAAqkK,EAAA,KAGAD,IAAApzL,KAAA0zL,SAAApzL,IAAAN,KAAA0R,MAAA,CACAsd,EAAArtB,gBACA,IAAAM,EAAAqxL,EAEAC,IACAtxL,EAAAqxL,EAAAhzJ,IAGAtR,EAAA2kK,IAAA,IACA1xL,GAAAmxL,EAAApkK,EAAA2kK,KAGA3kK,EAAA2kK,IAAA,EACA,IAAAzyL,EAAA8tB,EAAA5uB,QAAA,GAAAE,GAAA0C,KAAAowL,GACAO,IAAA,IACK1xL,SAAAd,OAAA,WACLgL,EAAAynL,qBAAA5kK,KAGA1uB,GACAY,EAAAG,KAAA,WACA8K,EAAA1H,OAAAuqB,KAIA9tB,EAAAsB,QAGAxC,KAAA0zL,QAAAN,EACApzL,KAAA0R,MAAApR,IAGAyyL,EAAAU,cAAA,SAAAzkK,GAEA,OAAA0jK,EAAAmB,KAAA7kK,EAAA8kK,KAAA9kK,EAAA+kK,OAAArB,EAAAmB,KAAA7kK,EAAA+kK,MAAA/kK,EAAAglK,OAGAjB,EAAAS,sBAAA,SAAAxkK,EAAAoO,GACApO,EAAA8kK,KAAA12J,EAAA,GACApO,EAAAglK,KAAA52J,EAAA,GACApO,EAAA+kK,MAAA32J,EAAA,MAAAA,EAAA,MAAAA,EAAA,UAAAA,EAAA,MAAAA,EAAA,WAGA21J,EAAA9xJ,WAAA,SAAA2xJ,EAAAtyJ,EAAAwvI,GACA9vK,KAAAilE,QAAA,GAAAhkC,WAAA2xJ,EAAAtyJ,EAAAwvI,GAEA9vK,KAAA8yL,oBAAAF,EAAAtyJ,IAGAyyJ,EAAAa,qBAAA,SAAA5kK,GACA,IAAA4L,EAAA5L,EAAA8kK,KACAj5J,EAAA7L,EAAAglK,KACAC,EAAAjlK,EAAA+kK,MACAtrG,EAAAz5D,EAAA2kK,IACAjiK,EAAA1C,EAAA5gB,SACA8lL,EAAAvB,EAAAuB,YACAC,EAAAxB,EAAAwB,sBACAziK,EAAA,GAAAwiK,EAAAt5J,EAAA,GAAAq5J,EAAA,GAAAp5J,EAAA,GAAA4tD,GACA/2D,EAAA,GAAAwiK,EAAAt5J,EAAA,GAAAq5J,EAAA,GAAAp5J,EAAA,GAAA4tD,GAEA,IAAA2rG,EAAAD,EAAAv5J,EAAA,GAAAq5J,EAAA,GAAAp5J,EAAA,GAAA4tD,GACA4rG,EAAAF,EAAAv5J,EAAA,GAAAq5J,EAAA,GAAAp5J,EAAA,GAAA4tD,GACAz5D,EAAA6I,UAAA9vB,KAAAkmC,MAAAomJ,EAAAD,GAAArsL,KAAAgwB,GAAA,EACA/I,EAAAgV,QAAA,GAGA+uJ,EAAAv9H,aAAA,SAAAo9H,EAAAtyJ,GACAtgC,KAAAilE,QAAA,GAAAzP,aAAAo9H,EAAAtyJ,GACA,IAAA0yJ,EAAAJ,EAAAztH,aAAA7kC,GAAAjB,SAAA,UAEAr/B,KAAAmzL,uBAAAP,EAAAI,EAAA1yJ,IAGAzG,EAAA2xB,SAAAohB,EAAApyD,EAAAskB,OACA,IAAA77B,EAAA2pE,EACA1pE,EAAAC,QAAAF,0BCjMA,IAAA42B,EAAat6B,EAAQ,QAErBolL,EAAYplL,EAAQ,QAEpB+0L,EAAoB/0L,EAAQ,QAE5Bg1L,EAAah1L,EAAQ,QAErBi1L,EAAAD,EAAAC,sBACA5nI,EAAA2nI,EAAA3nI,eAIA6nI,EAFal1L,EAAQ,QAErBk1L,UAEAn9J,EAAa/3B,EAAQ,QAErBm1L,EAAqBn1L,EAAQ,QA0B7Bo1L,EAAAF,IASAvoI,EAAAy4H,EAAAj7K,QACAlG,KAAA,YAMA9B,GAAA,GAWAkB,KAAA,GAMA0sD,SAAA,GAMAwG,QAAA,GAMAoC,eAAA,EAMAxjC,cAAA,KAMA/wB,QAAA,KAQAixL,mBAMA1/H,IAAA,KAQA2/H,WAAA,KACAr8I,aAAA,SAAAv7B,EAAA6oK,EAAAniL,EAAAmxL,GACAnQ,EAAAj5K,KAAA1L,KAAAid,EAAA6oK,EAAAniL,EAAAmxL,GACA90L,KAAAk1D,IAAAo/H,EAAAS,OAAA,iBAEAv2K,KAAA,SAAAvB,EAAA6oK,EAAAniL,EAAAmxL,GACA90L,KAAAqlL,qBAAApoK,EAAAtZ,IAEA0hL,qBAAA,SAAApoK,EAAAtZ,GACA,IAAAkxL,EAAA70L,KAAA60L,WACAG,EAAAH,EAAAv9J,EAAA29J,gBAAAh4K,MACAi4K,EAAAvxL,EAAAwxL,WACAt7J,EAAA82C,MAAA1zD,EAAAi4K,EAAAlxL,IAAAhE,KAAAsvD,WACAz1B,EAAA82C,MAAA1zD,EAAAjd,KAAAo1L,oBAEAP,GACAv9J,EAAA+9J,iBAAAp4K,EAAA+3K,EAAAH,IAGAzP,YAAA,SAAAnoK,EAAA63K,GACAj7J,EAAA82C,MAAA3wE,KAAAid,UAAA,GACA,IAAA43K,EAAA70L,KAAA60L,WAEAA,GACAv9J,EAAA+9J,iBAAAr1L,KAAAid,SAAA43K,IAIAS,cAAA,SAAAC,EAAA7X,KACA0X,iBAAA,WACA,IAAAI,EAAAb,EAAA30L,MAEA,IAAAw1L,EAAA9gK,cAAA,CAIA,IAHA,IAAA+gK,KACAC,EAAA11L,KAAAG,YAEAu1L,GAAA,CACA,IAAA98J,EAAA88J,EAAAx1L,UAAAw0B,cACAkE,GAAA68J,EAAAl0L,KAAAq3B,GACA88J,IAAAv8E,WAKA,IAFA,IAAAzkF,KAEA3zB,EAAA00L,EAAAx0L,OAAA,EAAsCF,GAAA,EAAQA,IAC9C2zB,EAAAmF,EAAA82C,MAAAj8C,EAAA+gK,EAAA10L,IAAA,GAGAy0L,EAAA9gK,gBAGA,OAAA8gK,EAAA9gK,eAEA+1C,uBAAA,SAAAnb,GACA,OAAAtvD,KAAA2D,QAAAgyL,iBACArmI,WACA1iD,MAAA5M,KAAAgE,IAAAsrD,EAAA,YACA5tD,GAAA1B,KAAAgE,IAAAsrD,EAAA,cAkBAklI,EAAAtoI,GACA0pI,oBAAA,IAEAtB,EAAAuB,uBAAA3pI,GAEAooI,EAAAwB,wBAAA5pI,EAEA,SAAA0G,GACA,IAAAmjI,KACAl8J,EAAA4E,KAAAytB,EAAA8pI,qBAAApjI,GAAA,SAAAqjI,GACAF,IAAAhhL,OAAAkhL,EAAA/1L,UAAAu0B,oBAGAshK,EAAAl8J,EAAAlpB,IAAAolL,EAAA,SAAAvyL,GACA,OAAAopD,EAAAppD,GAAAg0D,OAGA,YAAA5E,GAAA/4B,EAAA/5B,QAAAi2L,EAAA,eACAA,EAAApzJ,QAAA,WAGA,OAAAozJ,IAGAl8J,EAAA8N,MAAAukB,EAAAwoI,GACA,IAAAzxL,EAAAipD,EACAhpD,EAAAC,QAAAF,0BC/NA,IAAAG,EAAc7D,EAAQ,QA6BtB6D,EAAAs4D,gBACAl4D,KAAA,QACA+zD,MAAA,SAGC,SAAA3zB,EAAAjgC,GACDA,EAAAkvD,eACAvD,SAAA,QACAyG,MAAAnyB,GACG,SAAAsyJ,GACHA,EAAAC,SAAAvyJ,EAAAwyJ,WAyBAhzL,EAAAs4D,gBACAl4D,KAAA,cACA+zD,MAAA,gBACAhb,OAAA,QACC,sCCpED,IAAAn5C,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBsxJ,EAAsBtxJ,EAAQ,QAoB9B0D,EAAAG,EAAAG,qBACAC,KAAA,QACAgb,KAAA,SAAA7a,EAAAC,GAKA5D,KAAA2D,UAMA3D,KAAA4D,MAMA5D,KAAAu3B,OAMAv3B,KAAAgxJ,iBAAA,IAAAH,EAAAjtJ,EAAAe,UAAA+a,GAAA,QAAAma,EAAArvB,KAAAxK,KAAAixJ,SAAAjxJ,OAAAkyJ,SAMAzuJ,OAAA,SAAAyyL,GAEA,OADAl2L,KAAAu3B,MAAA2+J,EACAG,EAAA9pL,MAAAvM,KAAA8E,YAMA0kC,gBAAA6sJ,EAKAhhI,WAAAghI,EAaAtxL,QAAA,WACA/E,KAAAgxJ,iBAAAjsJ,WAMAksJ,SAAA,SAAAmlC,EAAAx9J,GACA,IAAA09J,EAAAt2L,KAAAu3B,MAAA71B,GACA1B,KAAAu3B,MAAAg/J,mBAAAC,gBAAAJ,EAAAp2L,KAAA2D,WAKAi1B,EAAAu6H,OAAAv6H,EAAAk6H,gBAAA9yJ,KAAA4D,IAAAQ,gBACAZ,KAAA,QACAizL,QAAAH,EACAF,MAAAv8J,EAAAmQ,MAAAosJ,GACAM,MAAAJ,OAKA,SAAAD,EAAAH,EAAAvyL,EAAAC,EAAAggC,KAEAA,KAAA8yJ,QAAAR,EAAAx0L,KAAA1B,KAAAgxJ,iBAAAoB,UAAA8jC,EAAAK,mBAAAI,cAAA/yL,IAAA+uJ,YAAAujC,EAAAU,aAAA7jC,aAAAmjC,EAAAE,MAAA9zL,SAGAY,EAAAC,QAAAF,0BC7GA,IAAAqwK,EAAW/zK,EAAQ,QAEnBorC,EAAUprC,EAAQ,QAElBu/B,EAAYv/B,EAAQ,QAEpBmsD,EAAcnsD,EAAQ,QAItB,SAAAs3L,EAAAthL,EAAAC,GACA,OAAAD,EAAAof,SAAAnf,EAAAmf,OACApf,EAAAqf,IAAApf,EAAAof,EAOArf,EAAA6uB,GAAA5uB,EAAA4uB,GAGA7uB,EAAAqf,EAAApf,EAAAof,EAGArf,EAAAof,OAAAnf,EAAAmf,OASA,IAAAmiK,EAAA,WAEA92L,KAAA+2L,UACA/2L,KAAAg3L,gBACAh3L,KAAAi3L,gBAAA,GAGAH,EAAA52L,WACAC,YAAA22L,EAMAn+H,SAAA,SAAA2O,EAAAxZ,GACA,QAAA/sD,EAAA,EAAmBA,EAAAf,KAAA+2L,OAAA91L,OAAwBF,IAC3Cf,KAAA+2L,OAAAh2L,GAAA43D,SAAA2O,EAAAxZ,IAYAyE,eAAA,SAAAhW,EAAA26I,GAOA,OANAA,MAAA,EAEA36I,GACAv8C,KAAAm3L,kBAAAD,GAGAl3L,KAAAg3L,cASAG,kBAAA,SAAAD,GACAl3L,KAAAi3L,gBAAA,EAIA,IAHA,IAAAG,EAAAp3L,KAAA+2L,OACA9c,EAAAj6K,KAAAg3L,aAEAj2L,EAAA,EAAAc,EAAAu1L,EAAAn2L,OAAuCF,EAAAc,EAASd,IAChDf,KAAAq3L,yBAAAD,EAAAr2L,GAAA,KAAAm2L,GAGAjd,EAAAh5K,OAAAjB,KAAAi3L,gBACAtsJ,EAAAiB,iBAAA8f,EAAAuuH,EAAA4c,IAEAQ,yBAAA,SAAA52L,EAAA03K,EAAA+e,GACA,IAAAz2L,EAAAujC,QAAAkzJ,EAAA,CAIAz2L,EAAA62L,eAEA72L,EAAAy0C,SACAz0C,EAAA87C,SAGA97C,EAAA82L,cACA,IAAAC,EAAA/2L,EAAAw7B,SAEA,GAAAu7J,EAAA,CAGArf,EADAA,EACAA,EAAA71K,WAQA,IAHA,IAAAm1L,EAAAD,EACAE,EAAAj3L,EAEAg3L,GAEAA,EAAAluJ,OAAAmuJ,EACAD,EAAAjuJ,kBACA2uI,EAAA52K,KAAAk2L,GACAC,EAAAD,EACAA,IAAAx7J,SAIA,GAAAx7B,EAAAm4D,QAAA,CAGA,IAFA,IAAA2vH,EAAA9nL,EAAAk3L,UAEA52L,EAAA,EAAqBA,EAAAwnL,EAAAtnL,OAAqBF,IAAA,CAC1C,IAAAurC,EAAAi8I,EAAAxnL,GAGAN,EAAAy0C,UACA5I,EAAA4I,SAAA,GAGAl1C,KAAAq3L,yBAAA/qJ,EAAA6rI,EAAA+e,GAIAz2L,EAAAy0C,SAAA,OAEAz0C,EAAA61K,YAAA6B,EACAn4K,KAAAg3L,aAAAh3L,KAAAi3L,mBAAAx2L,IAQAm3L,QAAA,SAAAn3L,GACAA,EAAAo3L,YAAA73L,OAIAS,aAAAq+B,GACAr+B,EAAAq3L,qBAAA93L,MAGAA,KAAA+3L,aAAAt3L,GAEAT,KAAA+2L,OAAAx1L,KAAAd,KAOAu3L,QAAA,SAAAv3L,GACA,SAAAA,EAAA,CAEA,QAAAM,EAAA,EAAqBA,EAAAf,KAAA+2L,OAAA91L,OAAwBF,IAAA,CAC7C,IAAA85C,EAAA76C,KAAA+2L,OAAAh2L,GAEA85C,aAAA/b,GACA+b,EAAAo9I,uBAAAj4L,MAOA,OAHAA,KAAA+2L,UACA/2L,KAAAg3L,qBACAh3L,KAAAi3L,gBAAA,GAIA,GAAAx2L,aAAAoL,MACA,CAAA9K,EAAA,UAAAC,EAAAP,EAAAQ,OAAoCF,EAAAC,EAAOD,IAC3Cf,KAAAg4L,QAAAv3L,EAAAM,QAFA,CAQA,IAAAu/B,EAAAgzI,EAAAxzK,QAAAE,KAAA+2L,OAAAt2L,GAEA6/B,GAAA,IACAtgC,KAAAk4L,eAAAz3L,GAEAT,KAAA+2L,OAAAz1L,OAAAg/B,EAAA,GAEA7/B,aAAAq+B,GACAr+B,EAAAw3L,uBAAAj4L,SAIA+3L,aAAA,SAAAt3L,GAMA,OALAA,IACAA,EAAAo3L,UAAA73L,KACAS,EAAAW,OAAA,IAGApB,MAEAk4L,eAAA,SAAAz3L,GAKA,OAJAA,IACAA,EAAAo3L,UAAA,MAGA73L,MAMA+E,QAAA,WACA/E,KAAAm4L,YAAAn4L,KAAA+2L,OAAA,MAEA5gB,oBAAA0gB,GAEA,IAAA5zL,EAAA6zL,EACA5zL,EAAAC,QAAAF,wBCvOAC,EAAAC,QAAA,kDCEAA,EAAAiuE,YAAA,EAEAjuE,EAAA4V,QAAA,WACA,GAAAk+D,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,SACA,QAAAxrE,IAAA6pE,EAAA,OAAAA,EAEA,IAAA6gH,EAAAvoL,SAAAC,cAAA,OACAsoL,EAAAr3I,UAAA,qBACAq3I,EAAA7/K,MAAAqkC,WAAA,SACAw7I,EAAA7/K,MAAAS,MAAA,QACAo/K,EAAA7/K,MAAAnK,SAAA,WACAgqL,EAAA7/K,MAAAvG,IAAA,UACAnC,SAAAG,KAAAC,YAAAmoL,GAEA,IAAAC,EAAAD,EAAAtjJ,YACAsjJ,EAAA7/K,MAAAy7B,SAAA,SAEA,IAAA2gJ,EAAA9kL,SAAAC,cAAA,OACA6kL,EAAAp8K,MAAAS,MAAA,OACAo/K,EAAAnoL,YAAA0kL,GAEA,IAAA2D,EAAA3D,EAAA7/I,YAIA,OAHAsjJ,EAAA7rJ,WAAAC,YAAA4rJ,GACA7gH,EAAA8gH,EAAAC,GAKA,IAIAntL,EAJAotL,EAAWh5L,EAAQ,QAEnB03E,GAEA9rE,EAFAotL,IAEsCptL,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAosE,OAAA,0BCpCA,IAAA19C,EAAat6B,EAAQ,QAErBklL,EAAWllL,EAAQ,QAEnBm4C,EAAiBn4C,EAAQ,QAEzBi5L,EAAmBj5L,EAAQ,QAE3BotE,EAAeptE,EAAQ,QAsBvBk5L,EAAA,SAAAj9J,EAAAH,EAAAq9J,EAAA/rL,GACA,IAAAmE,EAAA0qB,EAAAtP,UAEAysK,EAAAhsL,EAAAnJ,KAEA,IAAAq2B,EAAA/tB,QAAAa,KAAA,QAAAgsL,GAAA,QAAAA,GAAA,YAAAA,GAAA,WAAAA,GAIA,MAAAhsL,EAAAkJ,OAAA,MAAAlJ,EAAAiJ,OAAA,CACA,IACAgjL,EACArxL,EAEA,SAAAoF,EAAAiJ,OAAA,MAAAjJ,EAAAkJ,MACA+iL,EAAA,MAAAjsL,EAAAiJ,MAAA,QACAylB,EAAAzO,QAAAgsK,GACArxL,EAAAsyB,EAAAmuC,SAAAr7D,EAAAiJ,MAAAjJ,EAAAkJ,WACK,CACL,IAAAgjL,EAAAL,EAAAM,YAAAnsL,EAAAmE,EAAAuqB,EAAAG,GACAo9J,EAAAC,EAAAD,aACAC,EAAArzL,UACA+B,EAAAixL,EAAAO,aAAAjoL,EAAA8nL,EAAAD,GAGA,IAAAK,EAAA,MAAAJ,EAAA,IACAr7J,EAAA,EAAAy7J,EACAC,EAAAp/J,EAAAmQ,MAAAr9B,GACAusL,KACAD,EAAAz1L,KAAA,KACAy1L,EAAA72J,SACA82J,EAAA92J,SACA62J,EAAA72J,MAAA7E,IAAAkc,IACAy/I,EAAA92J,MAAA7E,GAAAkc,IACA,IAAApwC,EAAAqvL,EAAA10L,IAAA,aAEAqF,GAAA,oBAAA9B,IACAA,KAAAD,QAAAS,KAAAC,IAAAqB,EAAA,MAGA4vL,EAAA72J,MAAA42J,GAAAE,EAAA92J,MAAA42J,GAAAzxL,EACAoF,GAAAssL,EAAAC,GAEA11L,KAAAm1L,EACAK,WAAArsL,EAAAqsL,WAEAzxL,UAUA,OANAoF,GAAA6rL,EAAAW,cAAA39J,EAAA7uB,EAAA,IAAA6rL,EAAAW,cAAA39J,EAAA7uB,EAAA,IAAAktB,EAAAnwB,UAA8HiD,EAAA,MAE9H,GAAAnJ,KAAAmJ,EAAA,GAAAnJ,MAAA,GAEAq2B,EAAA82C,MAAAhkE,EAAA,GAAAA,EAAA,IACAktB,EAAA82C,MAAAhkE,EAAA,GAAAA,EAAA,IACAA,GAGA,SAAAysL,EAAA7rL,GACA,OAAA9C,MAAA8C,KAAA+wC,SAAA/wC,GAIA,SAAA8rL,EAAAjhK,EAAAkhK,EAAAC,EAAAl+J,GACA,IAAAm+J,EAAA,EAAAphK,EACA0J,EAAAzG,EAAA0G,WAAA3J,GACA,OAAAghK,EAAAE,EAAAE,KAAAJ,EAAAG,EAAAC,KAAAF,EAAAlhK,KAAAmhK,EAAAnhK,IAAAiD,EAAAzO,QAAAkV,GAAA23J,YAAAH,EAAAlhK,IAGA,SAAAshK,EAAAr+J,EAAA1uB,GACA,mBAAA0uB,EAAA73B,KAAA,CACA,IAAA81L,EAAA3sL,EAAA,GAAAy1B,MACAm3J,EAAA5sL,EAAA,GAAAy1B,MAOA,GAAAk3J,GAAAC,IAAAF,EAAA,EAAAC,EAAAC,EAAAl+J,IAAAg+J,EAAA,EAAAC,EAAAC,EAAAl+J,IACA,SAIA,OAAAm9J,EAAAmB,WAAAt+J,EAAA1uB,EAAA,KAAA6rL,EAAAmB,WAAAt+J,EAAA1uB,EAAA,IAGA,SAAAitL,EAAA9oL,EAAAwvB,EAAAu5J,EAAAr+J,EAAA53B,GACA,IAEAymC,EAFAhP,EAAAG,EAAAnN,iBACA62C,EAAAp0D,EAAAq0D,aAAA7kC,GAEAw5J,EAAApiJ,EAAAhL,aAAAw4B,EAAAlhE,IAAA,KAAAJ,EAAAkuD,YACAioI,EAAAriJ,EAAAhL,aAAAw4B,EAAAlhE,IAAA,KAAAJ,EAAAmuD,aAEA,GAAAtnD,MAAAqvL,IAAArvL,MAAAsvL,GAEG,CAEH,GAAAv+J,EAAAw+J,kBAEA3vJ,EAAA7O,EAAAw+J,kBAAAlpL,EAAAmpL,UAAAnpL,EAAAixB,WAAAzB,QACK,CACL,IAAA5vB,EAAA2qB,EAAA0G,WACA19B,EAAAyM,EAAA9M,IAAA0M,EAAA,GAAA4vB,GACA/7B,EAAAuM,EAAA9M,IAAA0M,EAAA,GAAA4vB,GACA+J,EAAAhP,EAAA4O,aAAA5lC,EAAAE,IAYA,mBAAA82B,EAAA73B,KAAA,CACA,IAAAqS,EAAAwlB,EAAAzO,QAAA,KACAhX,EAAAylB,EAAAzO,QAAA,KACAlc,EAAA2qB,EAAA0G,WAEAq3J,EAAAtoL,EAAA9M,IAAA0M,EAAA,GAAA4vB,IACA+J,EAAA,GAAAx0B,EAAAghB,cAAAhhB,EAAAimB,YAAA+9J,EAAA,MACOT,EAAAtoL,EAAA9M,IAAA0M,EAAA,GAAA4vB,MACP+J,EAAA,GAAAz0B,EAAAihB,cAAAjhB,EAAAkmB,YAAA+9J,EAAA,OAKApvL,MAAAqvL,KACAzvJ,EAAA,GAAAyvJ,GAGArvL,MAAAsvL,KACA1vJ,EAAA,GAAA0vJ,QAxCA1vJ,GAAAyvJ,EAAAC,GA4CAjpL,EAAA64K,cAAArpJ,EAAA+J,GAGA,IAAApnC,EAnKiB1D,EAAQ,QAmKzBmK,QACAlG,KAAA,WAwBAgmC,gBAAA,SAAA0wJ,EAAAv2L,EAAAC,GACAD,EAAAqxD,WAAA,SAAAx5B,GACA,IAAAk9J,EAAAl9J,EAAA0+J,cAEA,GAAAxB,EAAA,CACA,IAAApJ,EAAAoJ,EAAAxsK,UACAiuK,EAAAzB,EAAA5iB,OACAskB,EAAA1B,EAAA2B,KAEAF,EAAA17J,KAAA,SAAA6B,GACAs5J,EAAAO,EAAA75J,GAAA,EAAA9E,EAAA53B,GACAg2L,EAAAQ,EAAA95J,GAAA,EAAA9E,EAAA53B,KAGA0rL,EAAA7wJ,KAAA,SAAA6B,GACAgvJ,EAAA3F,cAAArpJ,GAAA65J,EAAA36J,cAAAc,GAAA85J,EAAA56J,cAAAc,OAEAtgC,KAAAs6L,eAAAt2L,IAAAw3B,EAAA95B,IAAA8zD,iBAEKx1D,OAELuxD,aAAA,SAAA/1B,EAAAk9J,EAAA/0L,EAAAC,GACA,IAAAy3B,EAAAG,EAAAnN,iBACAg2C,EAAA7oC,EAAA95B,GACA6mB,EAAAiT,EAAAtP,UACAquK,EAAAv6L,KAAAs6L,eACAttH,EAAAutH,EAAAv2L,IAAAqgE,IAAAk2H,EAAAv1I,IAAAqf,EAAA,IAAAsI,GACA3sE,KAAAg/B,MAAAC,IAAA+tC,EAAAhuC,OACA,IAAAswJ,EAqEA,SAAAj0J,EAAAG,EAAAk9J,GACA,IAAA8B,EAGAA,EADAn/J,EACAxB,EAAAlpB,IAAA0qB,KAAA0G,WAAA,SAAAH,GACA,IAAAk5C,EAAAt/C,EAAAtP,UAAA+V,iBAAAzG,EAAAtP,UAAAsS,aAAAoD,QAEA,OAAA/H,EAAAmJ,UACApgC,KAAAg/B,GACOk5C,OAIPl4E,KAAA,QACAY,KAAA,UAIA,IAAA22L,EAAA,IAAA1V,EAAA+V,EAAA9B,GACA0B,EAAA,IAAA3V,EAAA+V,EAAA9B,GAEA9F,EAAA,IAAAnO,KAAAiU,GACA+B,EAAA5gK,EAAAlpB,IAAA+nL,EAAA10L,IAAA,QAAA61B,EAAA0Q,MAAAkuJ,EAAAj9J,EAAAH,EAAAq9J,IAEAr9J,IACAo/J,EAAA5gK,EAAAzS,OAAAqzK,EAAA5gK,EAAA0Q,MAAAmvJ,EAAAr+J,KAGA,IAAAq/J,EAAAr/J,EAAAm9J,EAAAkC,eAAA,SAAA/tL,GACA,OAAAA,EAAApF,OAYA,OAVA4yL,EAAAltG,SAAApzD,EAAAlpB,IAAA8pL,EAAA,SAAA9tL,GACA,OAAAA,EAAA,KACG,KAAA+tL,GACHN,EAAAntG,SAAApzD,EAAAlpB,IAAA8pL,EAAA,SAAA9tL,GACA,OAAAA,EAAA,KACG,KAAA+tL,GACH9H,EAAA3lG,SAAApzD,EAAAlpB,IAAA8pL,EAAA,SAAA9tL,GACA,OAAAA,EAAA,MAEAimL,EAAA5iH,eAAA,GAEAjkE,KAAAouL,EACAjjJ,GAAAkjJ,EACA30L,KAAAmtL,GAjHA+H,CAAAt/J,EAAAG,EAAAk9J,GACAyB,EAAA7K,EAAAvjL,KACAquL,EAAA9K,EAAAp4I,GACA07I,EAAAtD,EAAA7pL,KACAizL,EAAA5iB,OAAAqkB,EACAzB,EAAA2B,KAAAD,EAEA1B,EAAA3b,QAAA6V,GACA,IAAA9iH,EAAA4oH,EAAA10L,IAAA,UACAirB,EAAAypK,EAAA10L,IAAA,cAsCA,SAAA42L,EAAA9pL,EAAAwvB,EAAAu5J,GACA,IAAA30H,EAAAp0D,EAAAq0D,aAAA7kC,GACAs5J,EAAA9oL,EAAAwvB,EAAAu5J,EAAAr+J,EAAA53B,GACAkN,EAAAmxD,cAAA3hC,GACArR,WAAAi2C,EAAAlhE,IAAA,eAAAirB,EAAA4qK,EAAA,KACA7qK,OAAAk2C,EAAAlhE,IAAA,cAAA8rE,EAAA+pH,EAAA,KACA1zL,MAAA++D,EAAAlhE,IAAA,oBAAAukB,EAAAoZ,UAAA,WA1CA9H,EAAA/tB,QAAAgkE,KACAA,SAGA,iBAAA7gD,IACAA,SAIAqgK,EAAAvjL,KAAA0yB,KAAA,SAAA6B,GACAs6J,EAAAT,EAAA75J,GAAA,GACAs6J,EAAAR,EAAA95J,GAAA,KAGAsyJ,EAAAn0J,KAAA,SAAA6B,GACA,IAAAu6J,EAAAjI,EAAAztH,aAAA7kC,GAAAt8B,IAAA,mBACA4uL,EAAA3wH,cAAA3hC,GACAn6B,MAAA00L,GAAAV,EAAAjmI,cAAA5zB,EAAA,WAEAsyJ,EAAAjJ,cAAArpJ,GAAA65J,EAAA36J,cAAAc,GAAA85J,EAAA56J,cAAAc,KACAsyJ,EAAA3wH,cAAA3hC,GACAw6J,eAAAX,EAAAjmI,cAAA5zB,EAAA,cACAy6J,WAAAZ,EAAAjmI,cAAA5zB,EAAA,UACA06J,aAAAZ,EAAAlmI,cAAA5zB,EAAA,cACA26J,SAAAb,EAAAlmI,cAAA5zB,EAAA,cAGA0sC,EAAA/rC,WAAA2xJ,GAGAtD,EAAA7pL,KAAAk7B,kBAAA,SAAAlgC,EAAA6/B,GACA7/B,EAAAk4D,SAAA,SAAArsB,GACAA,EAAAguB,UAAAo+H,MAcA1rH,EAAAkuH,QAAA,EACAluH,EAAAhuC,MAAAmF,OAAAu0J,EAAA10L,IAAA,WAAAw3B,EAAAx3B,IAAA,aA2DAd,EAAAC,QAAAF,0BCvVA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAoBrB,SAAA47L,EAAA1zJ,EAAA7D,EAAAjgC,GACA,IAEA4gE,EAFA62H,KACAC,EAAA,mBAAA5zJ,EAkCA,OA/BA9jC,EAAAkvD,cAAA,kBAAAyoI,GACAD,GAAA,MAAA92H,EAKA+2H,EAAA/2H,EAAA,qBAAA3gC,EAAAhhC,OAEA04L,EAAA7zJ,GAAA7D,EAAAhhC,MACA2hE,EAAA+2H,EAAA/2H,WAAA3gC,EAAAhhC,OAGA,IAAA24L,EAAAD,EAAApvK,UACA2N,EAAA4E,KAAA88J,EAAA,SAAAhkK,GACA,IAAA30B,EAAA20B,EAAAvzB,IAAA,QAEA,UAAApB,GAAA,KAAAA,EAAA,CAIA,IAAA44L,EAAAF,EAAA/2H,WAAA3hE,GAEAw4L,EAAAv4L,eAAAD,GAEAw4L,EAAAx4L,GAAAw4L,EAAAx4L,IAAA44L,EAEAJ,EAAAx4L,GAAA44L,QAMA54L,KAAAghC,EAAAhhC,KACA8nB,SAAA0wK,GAYAh4L,EAAAs4D,eAAA,2CAAA7hC,EAAA0Q,MAAA4wJ,EAAA,mBAQA/3L,EAAAs4D,eAAA,gCAAA7hC,EAAA0Q,MAAA4wJ,EAAA,WAQA/3L,EAAAs4D,eAAA,oCAAA7hC,EAAA0Q,MAAA4wJ,EAAA,qCCxFA,IAAAM,EAAel8L,EAAQ,OAARA,CAAgB,YAC/Bm8L,GAAA,EAEA,IACA,IAAAC,GAAA,GAAAF,KACAE,EAAA,kBAAiCD,GAAA,GAEjC7vL,MAAAE,KAAA4vL,EAAA,WAAiC,UAChC,MAAAx3L,IAEDjB,EAAAC,QAAA,SAAAg/E,EAAAy5G,GACA,IAAAA,IAAAF,EAAA,SACA,IAAAG,GAAA,EACA,IACA,IAAAjwL,GAAA,GACAkwL,EAAAlwL,EAAA6vL,KACAK,EAAAr3J,KAAA,WAA6B,OAASpjC,KAAAw6L,GAAA,IACtCjwL,EAAA6vL,GAAA,WAAiC,OAAAK,GACjC35G,EAAAv2E,GACG,MAAAzH,IACH,OAAA03L,2BCnBA,IAAA3gB,EAAgB37K,EAAQ,QACxBw8L,EAAWx8L,EAAQ,QAAgByjD,EACnCp7C,KAAiBA,SAEjBo0L,EAAA,iBAAArsL,gBAAA/F,OAAAqyL,oBACAryL,OAAAqyL,oBAAAtsL,WAUAzM,EAAAC,QAAA6/C,EAAA,SAAA0d,GACA,OAAAs7H,GAAA,mBAAAp0L,EAAA8D,KAAAg1D,GATA,SAAAA,GACA,IACA,OAAAq7H,EAAAr7H,GACG,MAAAv8D,GACH,OAAA63L,EAAA15L,SAKA45L,CAAAx7H,GAAAq7H,EAAA7gB,EAAAx6G,6BCjBA,IAoBAj9B,EApBsBlkC,EAAQ,OAoB9B0wE,GAAA,iGACAhtE,GACAwgC,aAAA,SAAA04J,EAAAC,GACA,OAAA34J,EAAAzjC,KAAAm8L,EAAAC,KAGAl5L,EAAAC,QAAAF,0BC1BA,IAAAuX,EAAcjb,EAAQ,QAItB88L,EAFmB98L,EAAQ,QAE3B88L,gBAkCA,SAAAC,EAAA/jL,EAAAgkL,GACA,YAAAhkL,EAAA69B,eACA79B,EAAA69B,aAAAmmJ,GAIAp5L,EAAAq5L,SApBA,SAAAC,EAAAl3H,EAAAL,EAAA/+D,EAAAq1B,EAAA4C,EAAAm+J,GACA,IAAAx2H,EAAAb,EAAA7lC,SAAA,SACAuwI,EAAA1qG,EAAA7lC,SAAA,kBACA7kB,EAAA2rD,cAAAs2H,EAAAl3H,EAAAQ,EAAA6pG,GACAxpG,aAAA5qC,EACA6qC,eAAAjoC,EACAkoC,YAAA+1H,EAAA7gK,EAAAtP,UAAAkS,GACAs+J,YAAA,EACAn2H,UAAApgE,IAEAm2L,EAAAG,GACAH,EAAA/2H,4BCnCA,IAAA1rC,EAAat6B,EAAQ,QAErBo9L,EAAcp9L,EAAQ,QAItBk0J,EAFcl0J,EAAQ,QAEtBk0J,UAoBAh1H,EAAA5E,EAAA4E,KACA7+B,EAAAi6B,EAAAj6B,SACAg9L,GAAA,EA8BAj8H,EAAA,SAAA1jD,GACA,IAAA4/K,EAAA5/K,EAAA4/K,cACA/oI,EAAA72C,EAAAzZ,KAMAk+D,EAAA1hE,KAAAid,OAAA4c,EAAAmQ,MAAA/sB,GAMAjd,KAAAwD,KAAAswD,EAMA9zD,KAAA68L,gBAMA78L,KAAA88L,eAAAC,EAAAF,GACA,IAAAG,EAAAC,EAAAnpI,GAMA9zD,KAAA4hE,YAAAo7H,EAAAp7H,YAMA5hE,KAAAk9L,eAAAF,EAAAE,eAMAl9L,KAAAm9L,OAAAH,EAAAG,OAAAN,GAEA,cAAAA,GACAO,EAAA17H,GA2HA,SAAAA,GACA,IAAA27H,EAAA37H,EAAA27H,UACA37H,EAAA47H,kBAAA,EACAzjK,EAAA4E,KAAA4+J,EAAA,SAAAE,EAAA3wL,GACA2wL,EAAAC,YAAA5wL,EAGA,MAAA2wL,EAAAh8H,SACAG,EAAA47H,kBAAA,KAlIAG,CAAA/7H,IACG,aAAAm7H,EACHn7H,EAAA0vG,WAqIA,SAAA1vG,GAEA,IAAA0vG,EAAA1vG,EAAA0vG,WACA7vG,EAAAG,EAAAH,OACAm8H,EAAAh8H,EAAAg8H,eAKA,GAJAj/J,EAAA2yI,EAAA,SAAAusB,EAAA/wL,GACA8wL,EAAAC,GAAA/wL,KAGAitB,EAAA/tB,QAAAy1D,GAAA,CACA,IAAAq8H,KAEA/jK,EAAAj6B,SAAA2hE,GACA9iC,EAAA8iC,EAAA,SAAAx0D,EAAA4wL,GACA,IAAA/wL,EAAA8wL,EAAAC,GACAC,EAAA,MAAAhxL,IAAAgwL,GAAA7vL,IAIA6wL,EAAAhB,GAAAr7H,EAGAA,EAAAs8H,EAAAn8H,EAAAk8H,GAKA,QAAA78L,EAAAqwK,EAAAnwK,OAAA,EAAqCF,GAAA,EAAQA,IAC7C,MAAAwgE,EAAAxgE,YACA28L,EAAAtsB,EAAArwK,IACAqwK,EAAAt6G,OAnKAgnI,CAAAp8H,GAEA07H,EAAA17H,GAAA,IAGA7nC,EAAA8yB,OAAA,WAAAkwI,GAAAn7H,EAAAs2F,YACAolC,EAAA17H,KAIAf,EAAAzgE,WACAC,YAAAwgE,EACAo9H,iBAAA,SAAAx2L,GACA,IAAAy2L,EAAAh+L,KAAA88L,eAAAv1L,GAEA,OAAAvH,KAAAm9L,OAAAa,EAAAz2L,IAEA02L,cAAA,WACA,OAAApkK,EAAArvB,KAAAxK,KAAA88L,eAAA98L,QAGA,IAAAi9L,EAAAt8H,EAAAs8H,gBACA92L,OACAy7D,YAAAs8H,EAAA,SAMAhB,eAAA,WACA,IAAAx7H,EAAA1hE,KAAAid,OACA,OAAA4c,EAAArvB,KAAA,aAAAk3D,EAAAm7H,cAAA,SAAAt1L,EAAA42L,GAEA,OADAA,IAAA52L,EAAAvH,KAAA88L,eAAAv1L,IACA62L,EAAA1yL,KAAA1L,KAAAuH,IACO,SAAAA,EAAA42L,EAAAh0J,GAGP,IAAAk0J,IAAAl0J,EAGA,OAFAg0J,IAAA52L,EAAAvH,KAAA88L,eAAAv1L,IACA4iC,EAAAwyJ,EAAA2B,SAAA/2L,EAAAm6D,EAAA68H,aAAAp0J,GACAk0J,EAAAl0J,EAAAwyJ,EAAAvvL,UAAA+8B,EAAA,SACOnqC,OAEPm9L,QACAqB,OAAA,SAAAR,GACA,OAAArB,EAAAvvL,UAAAuvL,EAAA2B,SAAAN,EAAAh+L,KAAAid,OAAAshL,cAAA,SAEAtX,SAAAmX,EACAK,UAAA,SAAAT,EAAAz2L,GACA,IAAAwJ,EAAA2tL,EAAAhzL,KAAA1L,KAAAuH,GAMA,OAJA,MAAAwJ,IACAA,EAAA4rL,EAAAvvL,UAAAuvL,EAAA2B,SAAAN,EAAAh+L,KAAAid,OAAAshL,cAAA,SAGAxtL,GAEAswC,MAAAs9I,IAGAC,SAAAC,EAAA,SAAA14L,EAAAoB,GACA,OAAAo1L,EAAAmC,UAAA34L,EAAAoB,KAEAw3L,gBAAAF,EAAA,SAAA14L,EAAAoB,GACA,OAAAo1L,EAAAmC,UAAA34L,EAAA,KAAAoB,KAEAy3L,eAAAH,EAAA,SAAA14L,EAAAoB,GACA,OAAAo1L,EAAAmC,UAAA34L,EAAA,UAAAoB,KAEA03L,WAAAJ,EAAA,SAAA14L,EAAAoB,GACA,OAAAo1L,EAAAuC,YAAA/4L,EAAAoB,KAEAsL,SACA+uD,YAAAs8H,EAAA,WACAf,OAAAgC,GAAA,OAEAC,OACAx9H,YAAAs8H,EAAA,SACAf,QACAqB,OAAAG,EACA1X,SAAA0X,EACAF,UAAAE,EACAt9I,MAAAs9I,IAGA3vK,QACA4yC,YAAA,SAAAr6D,EAAA2pE,EAAAmuH,GACA,IAAAC,EAAAt/L,KAAA+9L,iBAAAx2L,GAEA,GAAAsyB,EAAAn6B,SAAA4/L,GACAD,EAAA,SAAAC,QACO,GAAA1/L,EAAA0/L,GACP,QAAA18L,KAAA08L,EACAA,EAAAz8L,eAAAD,IACAy8L,EAAAz8L,EAAA08L,EAAA18L,KAKAu6L,QACAqB,OAAAe,EACAtY,SAAAmX,EACAK,UAAA,SAAAT,EAAAz2L,GACA,IAAAwJ,EAAA2tL,EAAAhzL,KAAA1L,KAAAuH,GAMA,OAJA,MAAAwJ,IACAA,EAAAwuL,EAAA7zL,KAAA1L,KAAAg+L,IAGAjtL,GAEAswC,MAAAs9I,IAGA1vK,YACA2yC,YAAAs8H,EAAA,cACAf,OAAAgC,GAAA,QAoDA,SAAA/B,EAAA17H,EAAA0B,GACA,IAAA7B,EAAAG,EAAAH,OACAq8H,KAEA/jK,EAAAj6B,SAAA2hE,GACA9iC,EAAA8iC,EAAA,SAAAx0D,GACA6wL,EAAAr8L,KAAAwL,KAEG,MAAAw0D,GACHq8H,EAAAr8L,KAAAggE,GAQA6B,GAAA,IAAAw6H,EAAA38L,SAJAkF,MAAA,EACA6oB,OAAA,GAGAnsB,eAAA6+D,EAAAl+D,QAEAo6L,EAAA,GAAAA,EAAA,IAGAC,EAAAn8H,EAAAk8H,GAGA,SAAAiB,EAAAW,GACA,OACA59H,YAAA,SAAAr6D,EAAA2pE,EAAAmuH,GACA93L,EAAAvH,KAAA+9L,iBAAAx2L,GAEA83L,EAAA,QAAAG,EAAAtuH,EAAA,SAAA3pE,KAEA41L,OAAAgC,GAAA,OAIA,SAAAI,EAAAvB,GACA,IAAAz8H,EAAAvhE,KAAAid,OAAAskD,OACA,OAAAA,EAAAx5D,KAAAqC,MAAAqpJ,EAAAuqC,GAAA,QAAAz8H,EAAAtgE,OAAA,aAGA,SAAAi9L,EAAApqI,GACA,gBAAAvsD,EAAA2pE,EAAAmuH,GACAA,EAAAvrI,EAAA9zD,KAAA+9L,iBAAAx2L,KAIA,SAAA62L,EAAAJ,GACA,IAAAz8H,EAAAvhE,KAAAid,OAAAskD,OACA,OAAAA,EAAAvhE,KAAAid,OAAA3c,MAAA09L,IAAApB,EAAAoB,EAAAz8H,EAAAtgE,OAAA+8L,GAGA,SAAAW,IACA,OAAA3+L,KAAAid,OAAAskD,OAAA,GAGA,SAAA49H,EAAAM,GACA,OACAjB,OAAA,SAAAR,GACA,OAAAvqC,EAAAuqC,EAAAyB,EAAAz/L,KAAAid,OAAAskD,QAAA,IAEA0lH,SAAAmX,EACAK,UAAA,SAAAT,EAAAz2L,GACA,IAAAwJ,EAAA2tL,EAAAhzL,KAAA1L,KAAAuH,GAMA,OAJA,MAAAwJ,IACAA,EAAA0iJ,EAAAuqC,EAAAyB,EAAAz/L,KAAAid,OAAAskD,QAAA,IAGAxwD,GAEAswC,MAAAs9I,GAIA,SAAAD,EAAAn3L,GACA,IAAAm6D,EAAA1hE,KAAAid,OACAogL,EAAA37H,EAAA27H,UAEA,GAAA37H,EAAA47H,iBAAA,CACA,IACAC,EAAAF,EADA18H,EAAA++H,eAAAn4L,EAAA81L,IAGA,GAAAE,KAAAh8H,OACA,OAAAg8H,EAAAh8H,OAAAvhE,KAAAwD,OAKA,SAAAq6L,EAAAn8H,EAAAk8H,GASA,OARAl8H,EAAAH,OAAAq8H,EAEA,UAAAl8H,EAAAl+D,OACAk+D,EAAA68H,aAAA1kK,EAAAlpB,IAAAitL,EAAA,SAAAjxL,GACA,OAAAgwL,EAAAxvL,MAAAR,MAIAixL,EAOA,IAAAb,GACAyB,OAAA,SAAAj3L,GACA,OAAAksJ,EAAAlsJ,EAAAvH,KAAAid,OAAA+6I,YAAA,UAEAymC,UAAA,SAAAl3L,GACA,IAAA81L,EAAAr9L,KAAAid,OAAAogL,UACAsC,EAAAh/H,EAAA++H,eAAAn4L,EAAA81L,GAAA,GAEA,SAAAsC,EACA,OAAAlsC,EAAAksC,GAAA,EAAAtC,EAAAp8L,OAAA,cAGAgmL,SAAA,SAAA1/K,GACA,IAAAqF,EAAA5M,KAAAid,OAAAm0J,WAAApxK,KAAAid,OAAAygL,YAAAn2L,KAEA,aAAAqF,EAAAgwL,EAAAhwL,GAEAy0C,MAAAxnB,EAAAwiC,MA2LA,SAAAujI,EAAA9mH,EAAAvjE,EAAAC,GACA,OAAAsjE,EAAAvjE,GAAAC,EAAAD,EAAAC,EAnLAmrD,EAAAk/H,gBAAA,WACA,IAAAt9H,KAIA,OAHA1oC,EAAA4E,KAAAw+J,EAAA,SAAAxhL,EAAA1R,GACAw4D,EAAAhhE,KAAAwI,KAEAw4D,GAOA5B,EAAAm/H,iBAAA,SAAAl9L,EAAA6Y,GACAwhL,EAAAr6L,GAAA6Y,GAOAklD,EAAAU,YAAA,SAAAvN,GACA,OAAAmpI,EAAAp6L,eAAAixD,IAUA6M,EAAAo/H,WAAA,SAAAx+H,EAAAp/D,EAAA2rD,GACAj0B,EAAAj6B,SAAA2hE,GACA1nC,EAAA4E,KAAA8iC,EAAAp/D,EAAA2rD,GAEA3rD,EAAAuJ,KAAAoiD,EAAAyT,IAIAZ,EAAAq/H,UAAA,SAAAz+H,EAAAp/D,EAAA2rD,GACA,IAAAmyI,EACAC,EAAArmK,EAAA/tB,QAAAy1D,MAAA1nC,EAAAj6B,SAAA2hE,OAA4E0+H,GAAA,QAK5E,OAJAt/H,EAAAo/H,WAAAx+H,EAAA,SAAAx0D,EAAAhD,GACA,IAAAo2L,EAAAh+L,EAAAuJ,KAAAoiD,EAAA/gD,EAAAhD,GACAk2L,EAAAC,EAAAC,EAAAD,EAAAn2L,GAAAo2L,IAEAD,GAUAv/H,EAAAy/H,gBAAA,SAAAj1L,GACA,IACAk1L,EADA1pH,KAQA,OANAxrE,GAAAszB,EAAAw+J,EAAA,SAAAhlL,EAAA67C,GACA3oD,EAAAtI,eAAAixD,KACA6iB,EAAA7iB,GAAA3oD,EAAA2oD,GACAusI,GAAA,KAGAA,EAAA1pH,EAAA,MAYAhW,EAAA6B,mBAAA,SAAAD,GACA,GAAA3iE,EAAA2iE,GAAA,CACA,IAAAo9B,KACAlhE,EAAA8jC,EAAA,SAAA51D,EAAAnJ,GACAm8F,EAAAp+F,KAAAiC,KAEA++D,EAAAo9B,MACG,KAAA9lE,EAAA/tB,QAAAy2D,GAGH,SAFAA,IAAAjgE,QAUA,OALAigE,EAAAjtD,KAAA,SAAAgrL,EAAAC,GAGA,gBAAAA,GAAA,UAAAD,GAAA,IAAAA,EAAAxgM,QAAA,gBAEAyiE,GAaA5B,EAAAmiC,UAAA,SAAA09F,EAAAC,GACA,gBAAAA,KAAAD,GAAA,IAAAA,EAAA1gM,QAAA2gM,IAAAD,IAAAC,GAWA9/H,EAAA++H,eAAA,SAAAn4L,EAAA81L,EAAAqD,GAIA,IAHA,IAAAC,EACAh4L,EAAA8wC,IAEA14C,EAAA,EAAAc,EAAAw7L,EAAAp8L,OAAyCF,EAAAc,EAASd,IAAA,CAClD,IAAA6/L,EAAAvD,EAAAt8L,GAAAwG,MAEA,SAAAq5L,EAAA,CACA,GAAAA,IAAAr5L,GAKA,iBAAAq5L,OAAAr5L,EAAA,GACA,OAAAxG,EAGA2/L,GAAAG,EAAAD,EAAA7/L,IAIA,IAAAA,EAAA,EAAAc,EAAAw7L,EAAAp8L,OAAyCF,EAAAc,EAASd,IAAA,CAClD,IAAAw8L,EAAAF,EAAAt8L,GACA24C,EAAA6jJ,EAAA7jJ,SACAo/B,EAAAykH,EAAAzkH,MAEA,GAAAp/B,EAAA,CACA,GAAAA,EAAA,MAAAD,KACA,GAAAmmJ,EAAA9mH,EAAA,GAAAvxE,EAAAmyC,EAAA,IACA,OAAA34C,OAEO,GAAA24C,EAAA,KAAAD,KACP,GAAAmmJ,EAAA9mH,EAAA,GAAAp/B,EAAA,GAAAnyC,GACA,OAAAxG,OAEO,GAAA6+L,EAAA9mH,EAAA,GAAAp/B,EAAA,GAAAnyC,IAAAq4L,EAAA9mH,EAAA,GAAAvxE,EAAAmyC,EAAA,IACP,OAAA34C,EAGA2/L,GAAAG,EAAAnnJ,EAAA,GAAA34C,GACA2/L,GAAAG,EAAAnnJ,EAAA,GAAA34C,IAIA,GAAA2/L,EACA,OAAAn5L,IAAAkyC,IAAA4jJ,EAAAp8L,OAAA,EAAAsG,KAAAkyC,IAAA,EAAAknJ,EAGA,SAAAE,EAAAtzL,EAAAX,GACA,IAAAk0L,EAAA/4L,KAAAY,IAAA4E,EAAAhG,GAEAu5L,EAAAn4L,IACAA,EAAAm4L,EACAH,EAAA/zL,KASA,IAAA3J,EAAA09D,EACAz9D,EAAAC,QAAAF,0BC/kBA,IAAA4B,EAAatF,EAAQ,QAErBk1L,EAAA5vL,EAAA4vL,UACAv+H,EAAArxD,EAAAqxD,iBAoBAy+H,EAAAF,IAcA,IAAAxxL,GACAuxD,kBAAA,WACAmgI,EAAA30L,MAAA+gM,SAAA,EACApM,EAAA30L,MAAAghM,iBAUAC,oBAAA,SAAAr+L,EAAAk/D,EAAAo/H,GAEA,IAAAC,EAAAxM,EADA7yH,KAAA9hE,MAEA+gM,EAAAI,EAAAJ,UAAA,EACAC,EAAAG,EAAAH,aAAAG,EAAAH,iBAEA,GAAAA,EAAAn+L,eAAAD,GACA,OAAAo+L,EAAAp+L,GAGA,IAAAw+L,EAAAlrI,EAAAl2D,KAAAgE,IAAA,aACAq9L,EAAArhM,KAAAgE,IAAA,iBACA6qK,EAAA,MAAAqyB,GAAAG,EArCA,SAAA7nL,EAAA0nL,GAGA,IAFA,IAAAI,EAAA9nL,EAAAvY,OAEAF,EAAA,EAAiBA,EAAAugM,EAAgBvgM,IACjC,GAAAyY,EAAAzY,GAAAE,OAAAigM,EACA,OAAA1nL,EAAAzY,GAIA,OAAAyY,EAAA8nL,EAAA,GA4BAC,CAAAF,EAAAH,GAAAE,EAIA,IAFAvyB,KAAAuyB,IAEAvyB,EAAA5tK,OAAA,CAIA,IAAAkF,EAAA0oK,EAAAkyB,GAOA,OALAn+L,IACAo+L,EAAAp+L,GAAAuD,GAGAg7L,EAAAJ,YAAA,GAAAlyB,EAAA5tK,OACAkF,KAGAjD,EAAAC,QAAAF,0BChFA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBiiM,EAAkBjiM,EAAQ,QAE1BolL,EAAYplL,EAAQ,QAEpB4wE,EAA2B5wE,EAAQ,QAoBnCkiM,EAAAD,EAAAh8L,UAEA,SAAAk8L,EAAA9oK,EAAAvzB,GACA,OAAAw0B,EAAAmJ,UACA39B,QACGuzB,GAGH,IAmGA31B,EAnGAG,EAAAoxB,sBACAhxB,KAAA,QACA8xL,cAAA,WACA,IAAA5iK,EAAA1yB,KAAAgE,IAAA,eACAgkB,EAAAhoB,KAAAgE,IAAA,eACAuN,EAAAvR,KAAAgE,IAAA,SACAoB,EAAApF,KAAAgE,IAAA,YACAsB,EAAAtF,KAAAgE,IAAA,YACAkN,EAAAlR,KAAAgE,IAAA,aACA29L,EAAA3hM,KAAAgE,IAAA,QACA49L,EAAA5hM,KAAAgE,IAAA,aACA69L,EAAA7hM,KAAAgE,IAAA,kBACA6M,EAAA7Q,KAAAgE,IAAA,WACA89L,EAAA9hM,KAAAgE,IAAA,gBACA+9L,EAAAloK,EAAAlpB,IAAA3Q,KAAAgE,IAAA,0BAAAg+L,GAEA,MAAAA,EAAA/5L,KAAA+5L,EAAA/5L,IAAA,IAAA+5L,EAAAh6L,IACAg6L,EAAAh6L,IAAA,EACO,MAAAg6L,EAAAh6L,KAAAg6L,EAAAh6L,IAAA,IAAAg6L,EAAA/5L,MACP+5L,EAAA/5L,IAAA,GAGA,IAAAg6L,EAAAN,EA6BA,GA3BA,MAAAK,EAAA77L,QACA87L,EAAApoK,EAAAmJ,UACA78B,MAAA67L,EAAA77L,OACSw7L,IAITK,EAAAnoK,EAAA82C,MAAA92C,EAAAmQ,MAAAg4J,IACAtvK,cACA1K,cACAzW,QACAnM,WACAE,WACA4L,YAEAtO,KAAAo/L,EAAA3wJ,KACAzgC,aAAA,MACAC,UAEA8wL,cAAAM,EACAH,iBACO,GAEPF,IACAI,EAAAp/L,KAAA,IAGA,iBAAAi/L,EAAA,CACA,IAAAK,EAAAF,EAAAp/L,KACAo/L,EAAAp/L,KAAAi/L,EAAAt5L,QAAA,UAA0D,MAAA25L,IAAA,QACnD,mBAAAL,IACPG,EAAAp/L,KAAAi/L,EAAAG,EAAAp/L,KAAAo/L,IAGA,IAAAzqK,EAAAsC,EAAAnwB,OAAA,IAAAi7K,EAAAqd,EAAA,KAAAhiM,KAAA2D,SAAAwsE,GAIA,OAFA54C,EAAA+3B,SAAA,QACA/3B,EAAA2gC,eAAAl4D,KAAAk4D,eACA3gC,GACKv3B,MAELA,KAAAmiM,mBAAA,WACA,OAAAJ,IAGArtK,eACAC,OAAA,EACAC,EAAA,EACA9Q,QAAA,aACAnB,OAAA,MACAyZ,WAAA,GACAx5B,MACAyC,MAAA,GAIAqtB,aAAA,KACA1K,YAAA,EACAnX,QAAA,GACAU,OAAA,EAEAwW,MAAA,UACA3iB,SAAAy0B,EAAA82C,OACA/vD,WACAza,MAAA,SAEKs7L,EAAAr8L,UACL8L,UAAAwwL,EAAAD,EAAAvwL,WAAA,GACA5L,SAAAo8L,EAAAD,EAAAn8L,UAAA,GACAC,UAAAm8L,EAAAD,EAAAl8L,WAAA,GACAunB,UAAA40K,EAAAD,EAAA30K,WAAA,GAEAhF,gBAIA5kB,EAAAC,QAAAF,wBCtHA,IAAA86D,KAUA56D,EAAAc,SARA,SAAArB,EAAAw/L,GACArkI,EAAAn7D,GAAAw/L,GAQAj/L,EAAAa,IALA,SAAApB,GACA,OAAAm7D,EAAAn7D,4BCzBA,IAAAi3B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBw6B,EAAgBx6B,EAAQ,QAIxB8iM,EAFoB9iM,EAAQ,QAE5B8iM,iBA0BAp/L,EAxBc1D,EAAQ,QAwBtBm+D,iBACAl6D,KAAA,OAQAgb,KAAA,SAAA7a,EAAAC,GAKA5D,KAAAsiM,SAMAtiM,KAAAuiM,WAAA,IAAA/nL,EAAAskB,MACA9+B,KAAAg/B,MAAAC,IAAAj/B,KAAAuiM,aAEA9+L,OAAA,SAAA+3B,EAAA73B,EAAAC,EAAAggC,GACA,IAAA9yB,EAAA0qB,EAAAtP,UACAmL,EAAAmE,EAAAnE,WACA2H,EAAAh/B,KAAAuiM,WACAjrK,EAAAkE,EAAAx3B,IAAA,UAEA,WAAAszB,EACA0H,EAAAj8B,KAAA,YAAAs0B,EAAAhzB,EAAAgzB,EAAAre,MAAA,EAAAqe,EAAA9yB,EAAA8yB,EAAApe,OAAA,IAEA+lB,EAAAj8B,KAAA,YAAAs0B,EAAAhzB,EAAAgzB,EAAA9yB,IAGA,IAAAm8B,EAAA1gC,KAAAic,MACA6zJ,GACA0yB,kBAAAhnK,EAAAx3B,IAAA,qBACAszB,SACAxa,OAAA0e,EAAAinK,YACAC,UAAAlnK,EAAAx3B,IAAA,uBACAkrB,aAAAsM,EAAAx3B,IAAA,gBACAmrB,aAAAqM,EAAAx3B,IAAA,gBACAkf,eAAAsY,EAAAx3B,IAAA,kBACA2+L,cAAA,EACAC,QAAA,GAEA9xL,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAgoC,GACAuoG,EAAA1+J,EAAAm2D,IAEA47H,EAAA/xL,EAAAm2D,EAAA,KAAAjoC,EAAAxD,EAAAs0I,KAEKvzH,OAAA,SAAA0qB,EAAAC,GACL,IAAA6oG,EAAArvI,EAAAoD,iBAAAojC,GAEAsoG,EAAA1+J,EAAAm2D,GAMA47H,EAAA/xL,EAAAm2D,EAAA8oG,EAAA/wI,EAAAxD,EAAAs0I,GALAC,GAAA+yB,EAAApiK,EAAAwmC,EAAA6oG,EAAA/wI,EAAAxD,EAAAs0I,KAMKrrK,OAAA,SAAAyiE,GACL,IAAA6oG,EAAArvI,EAAAoD,iBAAAojC,GAMA6oG,GACA+yB,EAAApiK,EAAAwmC,EAAA6oG,EAAA/wI,EAAAxD,EAAAs0I,KAEK3oG,WAEL,IAAA2oG,EAAA0yB,mBACA1xL,EAAA6vB,kBAAA,SAAAlgC,EAAA29B,GACA39B,EAAA4vD,IAAA,SAAA3wC,GAAA,mBACA9b,EAAAQ,gBACAZ,KAAA,wBACA6gE,SAAA7oC,EAAA95B,GACA08B,kBAMAp+B,KAAAic,MAAAnL,GAEA/L,QAAA,aACAN,OAAA,WACAzE,KAAAuiM,WAAAr9J,YAEAllC,KAAAic,MAAA,QAIA,SAAAuzJ,EAAA1+J,EAAAstB,GACA,IAAA9G,EAAAxmB,EAAA0uB,cAAApB,GACA,OAAA9G,IAAA7sB,MAAA6sB,EAAAjzB,KAAAoG,MAAA6sB,EAAA/yB,IAAA,SAAAuM,EAAAojD,cAAA91B,EAAA,UAGA,SAAA2kK,EAAA7pI,EAAAgM,EAAA4qG,GAcA,OAbAA,EAAA5qG,YACA4qG,EAAAt9J,UAAA0yD,EAAA7lC,SAAA,aAAAimC,eACAwqG,EAAAH,eAAAzqG,EAAA7lC,SAAA,sBAAAimC,eACAwqG,EAAAlvJ,UAAAskD,EAAA7lC,SAAA,aAAA4D,eACA6sI,EAAA/pG,WAAAb,EAAA7lC,SAAA,SACAywI,EAAAF,gBAAA1qG,EAAA7lC,SAAA,mBAEA,IAAA65B,EAAA6wH,UAAA,IAAA7wH,EAAAqvH,SAAAtnL,OACA6uK,EAAAkzB,iBAAAlzB,EAAAt9J,UAAAkF,KAEAo4J,EAAAkzB,iBAAA,OAGAlzB,EAGA,SAAA+yB,EAAA/xL,EAAAstB,EAAA2xI,EAAA/wI,EAAAxD,EAAAs0I,GACA,IAAA4N,GAAA3N,EACA72G,EAAApoD,EAAA85K,KAAAR,mBAAAhsJ,GAGA6kK,GADAnzB,EAAAizB,EAAA7pI,EADAA,EAAA75B,WACAywI,GACAh/J,EAAA85K,KAAA/vI,MACAp4C,EAAAy2D,EAAA3sB,aAAA02J,EAAA/pI,IAAA3sB,YAAA2sB,EACAgqI,EAAApyL,EAAAgzB,iBAAArhC,EAAA27B,WACA+kK,EAAA1gM,EAAAmnL,YACAwZ,EAAAF,GACA7+L,EAAA6+L,EAAA90L,SAAA,GACA7J,EAAA2+L,EAAA90L,SAAA,GACAi1L,KAAAH,EAAAI,gBACAC,KAAAL,EAAAM,iBACGL,EACHM,EAAAvqI,EAAA0wH,YAEAlM,GACA3N,EAAA,IAAAh2I,EAAAjpB,EAAAstB,EAAA0xI,IACA/sK,KAAA,YAAAqgM,EAAA/+L,EAAA++L,EAAA7+L,IAEAwrK,EAAA9uI,WAAAnwB,EAAAstB,EAAA0xI,GAGAC,EAAAuzB,gBAAAvzB,EAAA2zB,aACA3zB,EAAAyzB,gBAAAzzB,EAAA4zB,aACA5zB,EAAA2zB,aAAAD,EAAAJ,KACAtzB,EAAA4zB,aAAAF,EAAAF,KACAvkK,EAAAC,IAAA8wI,GACAj/J,EAAA+vB,iBAAAzC,EAAA2xI,GACAv1J,EAAAoqB,YAAAmrI,GACA3hK,UAAAq1L,EAAAp/L,EAAAo/L,EAAAl/L,IACGi3B,GACH,IAAAooK,EAAA7zB,EAAA8zB,gBAEA,cAAA/zB,EAAAx4I,OAAA,CACA,IAGAwsK,EACAC,EAJAC,EAAAf,EAAA1a,SAAA,GACA0b,EAAAD,EAAApa,YACA3oL,EAAA+iM,EAAAzb,SAAAtnL,OAIA,GAAAwiM,EAAAp/L,IAAA4/L,EAAA5/L,IAAA,IAAA60D,EAAA6wH,SAAA,CACA,IAAAjmK,KACAA,EAAAzf,GAAA2/L,EAAAzb,SAAA,GAAAqB,YAAAvlL,EAAA2/L,EAAAzb,SAAAtnL,EAAA,GAAA2oL,YAAAvlL,GAAA,EACAyf,EAAAvf,GAAAy/L,EAAAzb,SAAA,GAAAqB,YAAArlL,EAAAy/L,EAAAzb,SAAAtnL,EAAA,GAAA2oL,YAAArlL,GAAA,GACAu/L,EAAA/7L,KAAAkmC,MAAAnqB,EAAAvf,EAAA0/L,EAAA1/L,EAAAuf,EAAAzf,EAAA4/L,EAAA5/L,IAEA,IACAy/L,EAAA,EAAA/7L,KAAAgwB,GAAA+rK,IAGAC,EAAAjgL,EAAAzf,EAAA4/L,EAAA5/L,KAGAy/L,GAAA/7L,KAAAgwB,SAGA+rK,EAAA/7L,KAAAkmC,MAAAw1J,EAAAl/L,EAAA0/L,EAAA1/L,EAAAk/L,EAAAp/L,EAAA4/L,EAAA5/L,IAEA,IACAy/L,EAAA,EAAA/7L,KAAAgwB,GAAA+rK,GAGA,IAAA5qI,EAAAqvH,SAAAtnL,QAAA,IAAAi4D,EAAAqvH,SAAAtnL,SAAA,IAAAi4D,EAAA6wH,UACAga,EAAAN,EAAAp/L,EAAA4/L,EAAA5/L,KAGAy/L,GAAA/7L,KAAAgwB,KAGAgsK,EAAAN,EAAAp/L,EAAA4/L,EAAA5/L,KAGAy/L,GAAA/7L,KAAAgwB,IAKA,IAAAqe,EAAA2tJ,EAAA,eACAH,EAAAtnJ,UACAlG,eACA8tJ,cAAAJ,EACAK,WAAA,SACAzrK,cAAA,WAIA,GAAAwgC,EAAA3sB,YAAA2sB,EAAA3sB,aAAA02J,EAAA,CACA,IAAAtc,EAAA5W,EAAAq0B,OAEAzd,IACAA,EAAA5W,EAAAq0B,OAAA,IAAA5pL,EAAA6pL,aACAt8K,MAAAu8K,EAAAx0B,EAAAszB,KACA7qL,MAAAshB,EAAAmJ,UACAnwB,QAAA,GACSi9J,EAAAlvJ,cAITpG,EAAAoqB,YAAA+hJ,GACA5+J,MAAAu8K,EAAAx0B,EAAAqzB,EAAAM,GACAlrL,OACA1F,QAAA,IAEK2oB,GACLwD,EAAAC,IAAA0nJ,IAIA,SAAAmc,EAAAhyL,EAAAstB,EAAA2xI,EAAA/wI,EAAAxD,EAAAs0I,GAQA,IAPA,IAKAqzB,EALAjqI,EAAApoD,EAAA85K,KAAAR,mBAAAhsJ,GACA6kK,EAAAnyL,EAAA85K,KAAA/vI,KAGAp4C,GADAqtK,EAAAizB,EAAA7pI,EADAA,EAAA75B,WACAywI,GACA52G,EAAA3sB,aAAA02J,EAAA/pI,IAAA3sB,YAAA2sB,GAGA,OAAAiqI,EAAA1gM,EAAAmnL,cACAnnL,IAAA8pC,aAAA02J,EAAAxgM,IAAA8pC,YAAA9pC,EAGA+X,EAAAoqB,YAAAmrI,GACA3hK,UAAA+0L,EAAA9+L,EAAA,EAAA8+L,EAAA5+L,EAAA,IACGi3B,EAAA,WACHwD,EAAAv6B,OAAAsrK,GACAj/J,EAAA+vB,iBAAAzC,EAAA,QAEA2xI,EAAAC,QAAA,MACAu0B,WAAA,IAEA,IAAA5d,EAAA5W,EAAAq0B,OAEAzd,GACAnsK,EAAAoqB,YAAA+hJ,GACA5+J,MAAAu8K,EAAAx0B,EAAAqzB,KACA5qL,OACA1F,QAAA,IAEK2oB,EAAA,WACLwD,EAAAv6B,OAAAkiL,KAKA,SAAA2d,EAAAx0B,EAAAqzB,EAAAM,GACA,IAAAe,EACAC,EACAC,EACAC,EACA7nL,EAAAgzJ,EAAAhzJ,OAEA,cAAAgzJ,EAAAx4I,OAAA,CACA,IAAAmZ,EAAA0yJ,EAAAE,KACA3yJ,EAAAyyJ,EAAAI,KACA11J,EAAA41J,EAAAJ,KACAv1J,EAAA21J,EAAAF,KACAqB,EAAAvC,EAAA5xJ,EAAAC,GACAm0J,EAAAxC,EAAA5xJ,EAAAC,GAAA5C,EAAA4C,GAAAo/H,EAAA4yB,WACAoC,EAAAzC,EAAAx0J,EAAAC,GAAA4C,EAAA5C,GAAAgiI,EAAA4yB,WACAqC,EAAA1C,EAAAx0J,EAAAC,GACA,OACA2C,GAAAm0J,EAAAvgM,EACAqsC,GAAAk0J,EAAArgM,EACAspC,GAAAk3J,EAAA1gM,EACAypC,GAAAi3J,EAAAxgM,EACAigM,KAAAK,EAAAxgM,EACAogM,KAAAI,EAAAtgM,EACAmgM,KAAAI,EAAAzgM,EACAsgM,KAAAG,EAAAvgM,GAGAksC,EAAA0yJ,EAAA9+L,EACAqsC,EAAAyyJ,EAAA5+L,EACAspC,EAAA41J,EAAAp/L,EACAypC,EAAA21J,EAAAl/L,EAgBA,MAdA,OAAAuY,GAAA,OAAAA,IACA0nL,EAAA/zJ,GAAA5C,EAAA4C,GAAAq/H,EAAA4yB,UACA+B,EAAA/zJ,EACAg0J,EAAA72J,GAAA4C,EAAA5C,GAAAiiI,EAAA4yB,UACAiC,EAAA72J,GAGA,OAAAhxB,GAAA,OAAAA,IACA0nL,EAAA/zJ,EACAg0J,EAAA/zJ,GAAA5C,EAAA4C,GAAAo/H,EAAA4yB,UACAgC,EAAA72J,EACA82J,EAAA72J,GAAA4C,EAAA5C,GAAAgiI,EAAA4yB,YAIAjyJ,KACAC,KACA7C,KACAC,KACA02J,OACAC,OACAC,OACAC,QAKAzhM,EAAAC,QAAAF,0BCpWA,IAAA42B,EAAat6B,EAAQ,QAoBrBylM,GACAC,QAAA,QACAC,kBAAA,OACAC,6BAAA,QAeAjiM,EAAAC,QAZA,SAAAmX,GACAuf,EAAA4E,KAAAnkB,EAAAuxK,QAAA,SAAAt9C,GACA,IAAAq9C,EAAAoZ,EAAAz2D,EAAA3rI,MAEA,GAAAgpL,EAAA,CACA,IAAAwZ,EAAA72D,EAAAzqH,OACAshL,EAAA,GAAAxZ,EAAA,GACAwZ,EAAA,GAAAxZ,EAAA,+BCjCA,IAoBA3oJ,EApBsB1jC,EAAQ,OAoB9B0wE,GAAA,yHACAhtE,GACAggC,aAAA,SAAAk5J,GACA,IAAA5jL,EAAA0qB,EAAAjjC,KAAAm8L,GACAttJ,EAAA7uC,KAAAqlM,YAAA9sL,EAAAwkB,WAEA,OADA8R,IAAAt2B,EAAAs2B,YACAt2B,GAEA8sL,YAAA,SAAAtoK,GACA,MAAAA,IACAA,EAAA,GAGA,IAAAuoK,EAAAtlM,KAAAgE,IAAA,QACAuhM,EAAAx9L,KAAAE,IAAA80B,EAAA,GACAyoK,EAAA,EAAAzoK,EACA,gBAAAuoK,GAAA,MAAAA,EAAA,gBAAAA,GAAAE,MAAAD,OAGAriM,EAAAC,QAAAF,wBCvCAC,EAAAC,QAAA,SAAAu9D,GACA,sBAAAA,EAAA,MAAA1c,UAAA0c,EAAA,uBACA,OAAAA,2BCFAnhE,EAAQ,QAERA,EAAQ,QAERA,EAAQ,gCCJR,IAAAs6B,EAAat6B,EAAQ,QAErB4rD,EAAW5rD,EAAQ,QAoBnB,SAAAkmM,EAAAl0L,EAAAwqB,GACAA,MAAA,OACAovB,EAAAz/C,KAAA1L,KAAA,QAAAuR,EAAAwqB,GAUA/7B,KAAAwD,KAAA,WAGAiiM,EAAAvlM,WACAC,YAAAslM,EAKAr7J,YAAA,SAAAC,EAAAq7J,GACA,OAAA1lM,KAAAy7B,MAAA2O,YAAAC,EAAAq7J,GAAA,WAAA1lM,KAAAq4B,IAAA,MAEAoiB,YAAA0Q,EAAAjrD,UAAA42B,YACA6uK,YAAAx6I,EAAAjrD,UAAA6jE,aAEAlqC,EAAA2xB,SAAAi6I,EAAAt6I,GACA,IAAAloD,EAAAwiM,EACAviM,EAAAC,QAAAF,0BCnDA,IAoBAy7K,EAAA,0BAoBA,SAAAknB,EAAAllM,GACA,OAAAA,EAAAg+K,KAAAh+K,EAAAg+K,OAzCcn/K,EAAQ,QAoDtBm8D,gBACAl4D,KAAA,mBACA+zD,MAAA,oBACAhb,OAAA,UACC,cACDp5C,EAAA0iM,KAnCA,SAAAnlM,EAAAolM,EAAAC,GACAH,EAAAllM,GACAolM,GAAAC,GAkCA5iM,EAAA6iM,QA/BA,SAAAtlM,EAAAolM,EAAAC,GACA,IAAAlnB,EAAA+mB,EAAAllM,GACAm+K,EAAAinB,KAEAC,IACAlnB,EAAAinB,GAAA,OA2BA3iM,EAAA45J,QAvBA,SAAAr8J,EAAAolM,GACA,QAAAF,EAAAllM,GAAAolM,4BCrCA,IAAAjsK,EAAat6B,EAAQ,QAErB0mM,EAAqB1mM,EAAQ,QAE7Bm4C,EAAiBn4C,EAAQ,QAqBzB2mM,GAAA,QACAC,EAAAF,EAAAv8L,QACAlG,KAAA,uBAKAkxB,eACAiE,MAAA,OAEA3K,YAAA,EAGAoyF,MAAA,KAIAtvC,UAAA,EAEAs1H,WAAA,KAEAC,UAAA,KAEAtsC,WAAA,EAEAM,kBAAA,KAEAa,kBAAA,MAQAo6B,cAAA,SAAA3zH,EAAA+7G,GACAyoB,EAAAvhM,WAAA5E,KAAA,gBAAA8E,WACA9E,KAAAsmM,cACAtmM,KAAAumM,YAAA,SAAAjlI,GACAA,EAAAu7H,cAAA,SACAv7H,EAAA02F,WAAAh4J,KAAA87B,cAGA97B,KAAAwmM,eAOAC,cAAA,WACAN,EAAAvhM,WAAA5E,KAAA,gBAAA8E,WACA,IAAAswJ,EAAAp1J,KAAAo1J,SACA,eAAAp1J,KAAAg0J,SAAAoB,EAAA7tI,WACA,MAAA6tI,EAAA,IAAA3qJ,MAAA2qJ,EAAA,OAAAA,EAAA,GAAA8wC,EAAA,KACA,MAAA9wC,EAAA,IAAA3qJ,MAAA2qJ,EAAA,OAAAA,EAAA,GAAA8wC,EAAA,KAMAM,YAAA,WACA,IAAAxuC,EAAAh4J,KAAA87B,YACAskF,EAAApgH,KAAAid,OAAAmjG,OAEAA,KAAAsmF,MAGA1uC,EAAA0uC,KAAA,EACA1mM,KAAAid,OAAAmjG,MAAA43C,GACKn+H,EAAA/tB,QAAAs0G,KACLA,EAAA,GAAAA,EAAA,IACAA,EAAA74F,UAGA64F,EAAA,GAAAr4G,KAAAE,IAAAm4G,EAAA,GAAA43C,EAAA,IACA53C,EAAA,GAAAr4G,KAAAC,IAAAo4G,EAAA,GAAA43C,EAAA,MAQA2uC,qBAAA,WACAV,EAAA/lM,UAAAymM,qBAAAp6L,MAAAvM,KAAA8E,WACA+0B,EAAA4E,KAAAz+B,KAAA8gE,UAAA,SAAA/kB,GACA,IAAA9sB,EAAAjvB,KAAAid,OAAAotC,WAAAtO,GAAA9sB,WAEAA,KAAA,KAAAA,EAAA,KACAA,EAAA,OAEKjvB,OAML4mM,YAAA,SAAAl8K,GACA1qB,KAAAid,OAAAmjG,MAAA11F,EAAApoB,QAEAtC,KAAAwmM,eAMAzuC,YAAA,WACA,IAAAC,EAAAh4J,KAAA87B,YACAg8H,EAAApgH,EAAA+4B,KAAAzwE,KAAAgE,IAAA,cAAA1B,SAMA,OAJAw1J,EAAA,GAAAE,EAAA,KAAAF,EAAA,GAAAE,EAAA,IACAF,EAAA,GAAAE,EAAA,KAAAF,EAAA,GAAAE,EAAA,IACAF,EAAA,GAAAE,EAAA,KAAAF,EAAA,GAAAE,EAAA,IACAF,EAAA,GAAAE,EAAA,KAAAF,EAAA,GAAAE,EAAA,IACAF,GAMAj2F,cAAA,SAAAt6D,GACA,IAAA64G,EAAApgH,KAAAid,OAAAmjG,MACA43C,EAAAh4J,KAAA87B,YAGA,OAAAskF,EAAA,IAAA43C,EAAA,IAAA53C,EAAA,IAAA74G,KAAA64G,EAAA,IAAA43C,EAAA,IAAAzwJ,GAAA64G,EAAA,4BAOAu6C,sBAAA,SAAAv6C,GACA,IAAArvG,KAYA,OAXA/Q,KAAA6mM,iBAAA,SAAArrK,GACA,IAAAsrK,KACAh2L,EAAA0qB,EAAAtP,UACApb,EAAA2tB,KAAAz+B,KAAAi7J,iBAAAnqJ,GAAA,SAAAvJ,EAAA62B,GACAgiF,EAAA,IAAA74G,MAAA64G,EAAA,IAAA0mF,EAAAvlM,KAAA68B,IACOp+B,MACP+Q,EAAAxP,MACA8iE,SAAA7oC,EAAA95B,GACA08B,UAAA0oK,KAEK9mM,MACL+Q,GAMAg2L,cAAA,SAAAC,GACA,IAAAC,EAAAC,EAAAlnM,KAAA,aAAAA,KAAA87B,aACAqrK,EAAAD,EAAAlnM,KAAA,UAAAA,KAAAid,OAAAmjG,MAAA99G,SACA6/B,KAEA,SAAAilK,EAAA7/L,EAAA+6D,GACAngC,EAAA5gC,MACAgG,QACApB,MAAA6gM,EAAAz/L,EAAA+6D,KAUA,IALA,IAAA+kI,EAAA,EACAC,EAAA,EACAC,EAAAJ,EAAAlmM,OACAumM,EAAAP,EAAAhmM,OAEUqmM,EAAAE,KAAAL,EAAAlmM,QAAAgmM,EAAAK,IAAAH,EAAA,IAA2DG,IAErEL,EAAAK,GAAAH,EAAAE,IACAD,EAAAH,EAAAK,GAAA,cAIA,QAAAG,EAAA,EAAuBJ,EAAAE,EAAaF,IAAAI,EAAA,EAGpCA,GAAAtlK,EAAAlhC,QAAAmmM,EAAAD,EAAAE,GAAA,cACAD,EAAAD,EAAAE,GAAA,WAGA,IAAAI,EAAA,EAAuBH,EAAAE,EAAaF,MACpCH,EAAAlmM,QAAAkmM,IAAAlmM,OAAA,GAAAgmM,EAAAK,MAEAG,IACAtlK,EAAAlhC,QAAAmmM,EAAAjlK,IAAAlhC,OAAA,GAAAsG,MAAA,cACAkgM,EAAA,GAGAL,EAAAH,EAAAK,GAAA,eAIA,IAAAI,EAAAvlK,EAAAlhC,OACA,OACAkhC,QACAG,aAAAolK,EAAAvlK,EAAA,GAAAh8B,MAAA,cAAAuhM,EAAAvlK,EAAAulK,EAAA,GAAAvhM,MAAA,mBAKA,SAAA+gM,EAAA5yC,EAAAhyF,EAAA01F,GACA,GAAAA,EAAA,KAAAA,EAAA,GACA,OAAAA,EAAA11J,QAYA,IALA,IACAglB,GAAA0wI,EAAA,GAAAA,EAAA,IADA,IAEAzwJ,EAAAywJ,EAAA,GACA2vC,KAEA5mM,EAAA,EAAiBA,GALjB,KAKiBwG,EAAAywJ,EAAA,GAAqCj3J,IACtD4mM,EAAApmM,KAAAgG,GACAA,GAAA+f,EAIA,OADAqgL,EAAApmM,KAAAy2J,EAAA,IACA2vC,EAGA,IAAA1kM,EAAAkjM,EACAjjM,EAAAC,QAAAF,wBC9NAC,EAAAC,QAbA,SAAAQ,GACAA,EAAAikM,iBAAA,eAAApsK,GACA,IAAAqsK,EAAArsK,EAAAx3B,IAAA,SACA8jM,EAAAtsK,EAAA6D,SAAA,aACA0oK,EAAAD,EAAA9jM,IAAA,aACAmC,EAAA2hM,EAAA9jM,IAAA,UAAA6jM,EAAArsK,EAAArJ,YAAA01K,EAAA5mM,QACAu6B,EAAAtP,UAAA81C,WACA+lI,YACA5hM,qCC1BA,IAAAqU,EAAcjb,EAAQ,QAEtBu2B,EAAsBv2B,EAAQ,QAE9Bw2B,EAAiBx2B,EAAQ,QAEzByoM,EAAuBzoM,EAAQ,QAE/B02B,EAAe12B,EAAQ,QAoBvB0oM,GAAA,SACAC,GAAA,kBACAC,EAAAryK,EAAApsB,QAIAysB,aAAA,SAAAC,EAAA7uB,EAAA8uB,EAAAC,EAAA1yB,GACA,IAAA6xB,EAAAY,EAAAZ,KACA4F,EAAA5F,EAAApH,iBACAmI,EAAAG,EAAA0E,EAAA,EAAA+sK,EAAA3yK,IACAmB,EAAAyE,EAAA4O,YAAA1iC,GAAA,GACAgvB,EAAAD,EAAAtyB,IAAA,QAEA,GAAAuyB,GAAA,SAAAA,EAAA,CACA,IAAAQ,EAAAhB,EAAAiB,aAAAV,GACAW,EAAAC,EAAAX,GAAAd,EAAAmB,EAAAJ,EAAAO,GACAE,EAAA1e,MAAAwe,EACAX,EAAAe,WAAAF,EAAAzzB,KACA4yB,EAAAgB,QAAAH,EAGA,IAAAI,EAAA2wK,EAAA1wK,OAAAjB,GACAN,EAAAyB,kCAAAjwB,EAAA6uB,EAAAiB,EAAAhB,EAAAC,EAAA1yB,IAMA6zB,mBAAA,SAAAlwB,EAAA8uB,EAAAC,GACA,IAAAe,EAAA2wK,EAAA1wK,OAAAjB,GACAqB,aAAA,IAGA,OADAL,EAAAM,YAAArB,EAAAtyB,IAAA,kBAEAoK,SAAA2nB,EAAA6B,uBAAAvB,EAAAZ,KAAAluB,EAAA8vB,GACAQ,SAAAR,EAAAQ,UAAAR,EAAAS,eAAA,EAAA/vB,KAAAgwB,GAAA,KAOAC,sBAAA,SAAAC,EAAAC,EAAA7B,EAAAC,GACA,IAAAb,EAAAY,EAAAZ,KACA4F,EAAA5F,EAAApH,iBACA+J,EAAAgwK,EAAA3yK,GACA0C,EAAAxB,EAAA0E,EAAAjD,GACAE,EAAAL,EAAA7pB,SACAkqB,EAAAF,IAAAF,EAAAE,GACAE,EAAAF,GAAArwB,KAAAC,IAAAmwB,EAAA,GAAAG,EAAAF,IACAE,EAAAF,GAAArwB,KAAAE,IAAAkwB,EAAA,GAAAG,EAAAF,IACA,IAAA5B,EAAAG,EAAA0E,EAAA,EAAAjD,GACAG,GAAA/B,EAAA,GAAAA,EAAA,MACAgC,GAAAD,KAEA,OADAC,EAAAJ,GAAAE,EAAAF,IAEAhqB,SAAAkqB,EACAT,SAAAI,EAAAJ,SACAW,cACAC,eACAC,cAAA,cAKAxB,GACAzxB,KAAA,SAAAgwB,EAAAmB,EAAAJ,EAAAO,GACA,IAAA8B,EAAA9C,EAAA+C,eAAAlC,EAAAJ,EAAA,KAAAI,EAAAJ,EAAA,IAAA4xK,EAAA3yK,IAKA,OAJAjb,EAAAwe,sBACAjR,MAAA8Q,EACAtgB,MAAAwe,KAGAvzB,KAAA,OACAukB,MAAA8Q,IAGAI,OAAA,SAAAxD,EAAAmB,EAAAJ,EAAAO,GACA,IAAAmC,EAAAzD,EAAA0D,eACAC,EAAA5C,EAAA,GAAAA,EAAA,GACA,OACAhzB,KAAA,OACAukB,MAAAgO,EAAAsD,eAAAzC,EAAAsC,EAAA,EAAA1C,EAAA,KAAA0C,EAAAE,GAAAgvK,EAAA3yK,OAKA,SAAA2yK,EAAA3yK,GACA,OAAAA,EAAAoH,eAAA,IAGA,SAAAlG,EAAA0E,EAAAjD,GACA,IAAA8P,EAAA7M,EAAAkoC,UACA,OAAAr7B,EAAA+/J,EAAA7vK,IAAA8P,EAAA+/J,EAAA7vK,IAAA8P,EAAAggK,EAAA9vK,KAGAnC,EAAAqD,yBAAA,oBAAA6uK,GACA,IAAAllM,EAAAklM,EACAjlM,EAAAC,QAAAF,wBChGAC,EAAAC,QALA,SAAAoE,GACA,IAAA/D,SAAA+D,EACA,aAAAA,IAAA,UAAA/D,GAAA,YAAAA,4BC3BA,IAAA0jC,EAAW3nC,EAAQ,QAInBujE,EAFcvjE,EAAQ,QAEtBujE,cAEAvZ,EAAWhqD,EAAQ,QAiFnB2D,EAAAC,QAnDA,SAAAQ,EAAAC,GACA,IAAA+zD,KA+CA,OA9CAh0D,EAAAikM,iBAAA,iBAAApsK,GACA,IAAA6sK,EAAA7sK,EAAAx3B,IAAA,oBAEA,IAAAqkM,GAAA,SAAAA,EAAA,CACA,IAAAv3L,EAAA0qB,EAAAtP,UACAs8B,EAAA13C,EAAAyuB,SAAA,SAAAe,GACA,IAAA4kC,EAAAp0D,EAAAq0D,aAAA7kC,GACA,QAAA4kC,EAAAlhE,IAAA,MAAAkhE,EAAAlhE,IAAA,QAEAgE,KACAC,KACAshD,EAAA++I,WAAA9/I,EAAAxgD,EAAAC,GAEAA,EAAA,GAAAD,EAAA,QACAC,EAAA,MACAD,EAAA,OAGAC,EAAA,GAAAD,EAAA,QACAC,EAAA,MACAD,EAAA,OAGA,IAAAugM,GAAAtgM,EAAA,GAAAD,EAAA,KAAAC,EAAA,GAAAD,EAAA,IAEAyrK,EApCA,SAAAj4I,EAAA53B,EAAA2kM,GACA,IAAAtrL,EAAAue,EAAAouC,qBAEA,OADA3sD,EAAAsrL,SACAzlI,EAAA7lD,GACAjE,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,cA+BAjoB,CAAAtO,EAAA53B,EAAA2kM,GAEA99L,MAAA89L,KACAvgM,GAAAyrK,EAAApvK,EAAAovK,EAAAlvK,GACA0D,GAAAwrK,EAAApvK,EAAAovK,EAAAz6J,MAAAy6J,EAAAlvK,EAAAkvK,EAAAx6J,SAGA,IAAAuvL,EAAAvgM,EAAA,GAAAD,EAAA,GACAygM,EAAAxgM,EAAA,GAAAD,EAAA,GACA0gM,EAAAj1B,EAAAz6J,MACA2vL,EAAAl1B,EAAAx6J,OACA2vL,EAAAptK,EAAAnN,iBAAA,IAAA6Y,EACA0hK,EAAAzhK,UAAA3L,EAAAx3B,IAAA,cACA4kM,EAAAhhK,gBAAA5/B,EAAA,GAAAA,EAAA,GAAAwgM,EAAAC,GACAG,EAAA7gK,YAAA0rI,EAAApvK,EAAAovK,EAAAlvK,EAAAmkM,EAAAC,GAEAC,EAAArgK,UAAA/M,EAAAx3B,IAAA,WACA4kM,EAAAlgK,QAAAlN,EAAAx3B,IAAA,SACA2zD,EAAAp2D,KAAAqnM,MAGAjxI,yBCpFAz0D,EAAAC,QAAA,SAAAu9D,GACA,uBAAAA,EAAA,OAAAA,EAAA,mBAAAA,2BCDA,IAAAppC,EAAa/3B,EAAQ,QAErBspM,EAAWtpM,EAAQ,QAEnBs6B,EAAat6B,EAAQ,QAEPA,EAAQ,QAEtBq6B,QA6QA,SAAAkvK,EAAAC,EAAAC,EAAA/vL,GACA4gB,EAAA4E,KAAAsqK,EAAA,SAAAzjB,GACA,IAAApsH,EACAlrB,EAGAjtC,EAFAiwC,EAAA,EACAoN,EAAAknI,EAAArkL,OAIA,IAFAqkL,EAAAhwK,KAAA2zL,GAEAloM,EAAA,EAAeA,EAAAq9C,EAAOr9C,IAAA,CAItB,IAFAitC,EAAAgD,GADAkoB,EAAAosH,EAAAvkL,IACA6oL,YAAArlL,GAEA,GACA,IAAA2kM,EAAAhwI,EAAA0wH,YAAArlL,EAAAypC,EACAkrB,EAAAwwH,WACAnlL,EAAA2kM,IACS,GAGTl4J,EAAAkoB,EAAA0wH,YAAArlL,EAAA20D,EAAA0wH,YAAA57I,GAAAg7J,EAMA,IAFAh7J,EAAAgD,EAAAg4J,EAAA/vL,GAEA,GACAiwL,EAAAhwI,EAAA0wH,YAAArlL,EAAAypC,EAMA,IALAkrB,EAAAwwH,WACAnlL,EAAA2kM,IACO,GACPl4J,EAAAkoB,EAAA0wH,YAAArlL,EAEAxD,EAAAq9C,EAAA,EAAqBr9C,GAAA,IAAQA,GAE7BitC,GADAkrB,EAAAosH,EAAAvkL,IACA6oL,YAAArlL,EAAA20D,EAAA0wH,YAAA57I,GAAAg7J,EAAAh4J,GAEA,IACAk4J,EAAAhwI,EAAA0wH,YAAArlL,EAAAypC,EACAkrB,EAAAwwH,WACAnlL,EAAA2kM,IACW,IAGXl4J,EAAAkoB,EAAA0wH,YAAArlL,KAcA,SAAA4kM,EAAAJ,EAAA50J,GACAta,EAAA4E,KAAAsqK,EAAAzmM,QAAAilB,UAAA,SAAA+9J,GACAzrJ,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACA,GAAAA,EAAAkwI,SAAAnoM,OAAA,CACA,IAAAsD,EAAA+f,EAAA40C,EAAAkwI,SAAAC,GAAA/kL,EAAA40C,EAAAkwI,SAAAE,GACAJ,EAAAhwI,EAAA0wH,YAAArlL,KAAAuf,EAAAo1C,IAAA/kB,EACA+kB,EAAAwwH,WACAnlL,EAAA2kM,IACS,QAMT,SAAAG,EAAA1iB,GACA,OAAA7iK,EAAA6iK,EAAAK,OAAAL,EAAA8C,WAWA,SAAA8f,EAAAR,EAAA50J,GACAta,EAAA4E,KAAAsqK,EAAA,SAAAzjB,GACAzrJ,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACA,GAAAA,EAAAswI,QAAAvoM,OAAA,CACA,IAAAsD,EAAA+f,EAAA40C,EAAAswI,QAAAC,GAAAnlL,EAAA40C,EAAAswI,QAAAF,GACAJ,EAAAhwI,EAAA0wH,YAAArlL,KAAAuf,EAAAo1C,IAAA/kB,EACA+kB,EAAAwwH,WACAnlL,EAAA2kM,IACS,QAMT,SAAAO,EAAA9iB,GACA,OAAA7iK,EAAA6iK,EAAAG,OAAAH,EAAA8C,WAgCA,SAAAigB,EAAAn0L,EAAAC,GACA,OAAAD,EAAAyxK,MAAA4C,YAAArlL,EAAAiR,EAAAwxK,MAAA4C,YAAArlL,EAGA,SAAAolM,EAAAp0L,EAAAC,GACA,OAAAD,EAAAuxK,MAAA8C,YAAArlL,EAAAiR,EAAAsxK,MAAA8C,YAAArlL,EAGA,SAAA+f,EAAA86C,EAAApc,GAKA,IAJA,IAAA1+B,EAAA,EACAziB,EAAAu9D,EAAAn+D,OACAF,GAAA,IAEAA,EAAAc,GAAA,CACA,IAAA0F,GAAAy7C,EAAAt3C,KAAA0zD,IAAAr+D,MAEA0J,MAAAlD,KACA+c,GAAA/c,GAIA,OAAA+c,EAGA,SAAAR,EAAAo1C,GACA,OAAAA,EAAA0wH,YAAArlL,EAAA20D,EAAA0wH,YAAA57I,GAAA,EAGA,SAAAi7J,EAAA1zL,EAAAC,GACA,OAAAD,EAAAq0K,YAAArlL,EAAAiR,EAAAo0K,YAAArlL,EAGA,SAAAuiB,EAAAvR,EAAAC,GACA,OAAAD,EAAAC,EAGA,SAAA8zL,EAAA3iB,GACA,OAAAA,EAAA8C,WAGAvmL,EAAAC,QA/ZA,SAAAQ,EAAAC,EAAAggC,GACAjgC,EAAAikM,iBAAA,kBAAApsK,GACA,IAAAouK,EAAApuK,EAAAx3B,IAAA,aACAglM,EAAAxtK,EAAAx3B,IAAA,WACAqzB,EAwBA,SAAAmE,EAAA53B,GACA,OAAA0zB,EAAAwrC,cAAAtnC,EAAAouC,sBACA5wD,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,cA3BAjoB,CAAAtO,EAAA53B,GACA43B,EAAAnE,aACA,IAAAre,EAAAqe,EAAAre,MACAC,EAAAoe,EAAApe,OACAi2J,EAAA1zI,EAAA8qJ,WACAhB,EAAApW,EAAAoW,MACAJ,EAAAhW,EAAAgW,OAqCA,SAAAI,GACAzrJ,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACA,IAAAk+C,EAAA9yF,EAAA40C,EAAAkwI,SAAAE,GACAjyF,EAAA/yF,EAAA40C,EAAAswI,QAAAF,GACA/hM,EAAAQ,KAAAE,IAAAmvG,EAAAC,GACAn+C,EAAAwwH,WACAniL,UACK,KA3CLsiM,CAAAvkB,GAwBA,SAAAA,EAAAJ,EAAA0kB,EAAAZ,EAAAhwL,EAAAC,EAAA6wL,IAkCA,SAAAxkB,EAAAJ,EAAA0kB,EAAA5wL,GAYA,IATA,IAAA+wL,KAEAC,KAEAC,KACAC,KACA7lM,EAAA,EAGAtD,EAAA,EAAiBA,EAAAmkL,EAAAjkL,OAAkBF,IACnCgpM,EAAAhpM,GAAA,EAGA,QAAAA,EAAA,EAAiBA,EAAAukL,EAAArkL,OAAkBF,IACnCipM,EAAAjpM,GAAAukL,EAAAvkL,GAAAyoM,QAAAvoM,OAEA,IAAA+oM,EAAAjpM,IACAkpM,EAAA1oM,KAAA+jL,EAAAvkL,IAIA,KAAAkpM,EAAAhpM,QACA44B,EAAA4E,KAAAwrK,EAAA,SAAA/wI,GACAA,EAAAwwH,WACArlL,MACO,GACP60D,EAAAwwH,WACA37I,GAAA67J,IACO,GACP/vK,EAAA4E,KAAAy6B,EAAAkwI,SAAA,SAAAziB,GACA,IAAAwjB,EAAAjlB,EAAAplL,QAAA6mL,GACAojB,EAAAI,GAAA,EACA,IAAAC,EAAAzjB,EAAAK,MACAqjB,EAAA/kB,EAAAxlL,QAAAsqM,GAEA,KAAAJ,EAAAK,IACAH,EAAA3oM,KAAA6oM,SAIA/lM,EACA4lM,EAAAC,EACAA,KAGA,QAAAnpM,EAAA,EAAiBA,EAAAgpM,EAAA9oM,OAAwBF,MAgBzC,SAAAukL,EAAAjhL,GACAw1B,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACAA,EAAAkwI,SAAAnoM,QACAi4D,EAAAwwH,WACArlL,IAAA,IACO,MAnBPimM,CAAAhlB,EAAAjhL,GA+BA,SAAAihL,EAAAilB,GACA1wK,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACA,IAAAsxI,EAAAtxI,EAAA0wH,YAAAvlL,EAAAkmM,EACArxI,EAAAwwH,WACArlL,EAAAmmM,IACK,KAlCLC,CAAAnlB,GADAtsK,EAAA4wL,IAAAvlM,EAAA,KApFAqmM,CAAAplB,EAAAJ,EAAA0kB,EAAA5wL,GAsIA,SAAAssK,EAAAJ,EAAAjsK,EAAA+vL,EAAAc,GACA,IAAAf,EAAAF,IAAA9+L,IAAA,SAAA0kB,GACA,OAAAA,EAAAm7J,YAAAvlL,IACGsmM,SAAA7jL,GAAAo+B,QAAAogI,GAAA30K,IAAA,SAAA8d,GACH,OAAAA,EAAA2C,UA2BA,SAAAk0J,EAAAyjB,EAAA7jB,EAAAjsK,EAAA+vL,GACA,IAAA4B,KACA/wK,EAAA4E,KAAAsqK,EAAA,SAAAzjB,GACA,IAAAlnI,EAAAknI,EAAArkL,OACAqjB,EAAA,EACAuV,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACA50C,GAAA40C,EAAA0wH,YAAAriL,QAEA,IAAAsjM,GAAA5xL,GAAAmlC,EAAA,GAAA4qJ,GAAA1kL,EACAsmL,EAAArpM,KAAAspM,KAEAD,EAAAt1L,KAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAC,IAEA,IAAAs1L,EAAAF,EAAA,GACA/wK,EAAA4E,KAAAsqK,EAAA,SAAAzjB,GACAzrJ,EAAA4E,KAAA6mJ,EAAA,SAAApsH,EAAAn4D,GACAm4D,EAAAwwH,WACAnlL,EAAAxD,IACO,GACP,IAAAgqM,EAAA7xI,EAAA0wH,YAAAriL,MAAAujM,EACA5xI,EAAAwwH,WACA17I,GAAA+8J,IACO,OAGPlxK,EAAA4E,KAAAymJ,EAAA,SAAAyB,GACA,IAAAqkB,GAAArkB,EAAA8C,WAAAqhB,EACAnkB,EAAA+C,WACA17I,GAAAg9J,IACK,MAvDLC,CAAA3lB,EAAAyjB,EAAA7jB,EAAAjsK,EAAA+vL,GACAF,EAAAC,EAAAC,EAAA/vL,GAEA,QAAAk7B,EAAA,EAAqB21J,EAAA,EAAgBA,IAIrCX,EAAAJ,EADA50J,GAAA,KAEA20J,EAAAC,EAAAC,EAAA/vL,GACAswL,EAAAR,EAAA50J,GACA20J,EAAAC,EAAAC,EAAA/vL,GArJAiyL,CAAA5lB,EAAAJ,EAAAjsK,EAAA+vL,EAAAc,GA2TA,SAAAxkB,GACAzrJ,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACAA,EAAAkwI,SAAA9zL,KAAAo0L,GACAxwI,EAAAswI,QAAAl0L,KAAAq0L,KAEA9vK,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACA,IAAAtoB,EAAA,EACAyjJ,EAAA,EACAx6J,EAAA4E,KAAAy6B,EAAAkwI,SAAA,SAAAziB,GACAA,EAAA+C,WACA94I,OACO,GACPA,GAAA+1I,EAAAiD,YAAA57I,KAEAnU,EAAA4E,KAAAy6B,EAAAswI,QAAA,SAAA7iB,GACAA,EAAA+C,WACA2K,OACO,GACPA,GAAA1N,EAAAiD,YAAA57I,OA5UAm9J,CAAA7lB,GAtBA8lB,CAAA9lB,EAAAJ,EAAA0kB,EAAAZ,EAAAhwL,EAAAC,EADA,IAHA4gB,EAAAzS,OAAAk+J,EAAA,SAAApsH,GACA,WAAAA,EAAA0wH,YAAAriL,QAEAtG,OAAA,EAAAu6B,EAAAx3B,IAAA,gDChDA,IAAAqnM,EAAc9rM,EAAQ,QAEtBujE,EAAAuoI,EAAAvoI,cACAwoI,EAAAD,EAAA9oG,IACAgpG,EAAAF,EAAAE,gBAEAC,EAAiBjsM,EAAQ,QAEzBib,EAAcjb,EAAQ,QA+DtB4D,EAAAm0B,OAnCA,SAAA0H,EAAAo1B,EAAAxwD,GACA,IAAA6nM,EAAAr3I,EAAAwV,qBACAr0C,EAAA6+B,EAAApwD,IAAA,WACA0nM,GACA1yL,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aAEA7pB,EAAA46B,EAAA2oI,EAAAC,EAAAn2K,GACA+1K,EAAAl3I,EAAApwD,IAAA,UAAAg7B,EAAAo1B,EAAApwD,IAAA,WAAAkkC,EAAAlvB,MAAAkvB,EAAAjvB,QACAsyL,EAAAvsK,EAAAysK,EAAAC,EAAAn2K,IA2BApyB,EAAAwoM,eAxBA,SAAAzjK,EAAAksB,GACA,IAAA7+B,EAAAi2K,EAAAI,kBAAAx3I,EAAApwD,IAAA,YACAuU,EAAA67C,EAAAkR,cAAA,oBAkBA,OAjBA/sD,EAAAb,KAAA08C,EAAApwD,IAAA,mBACAkkC,EAAA,IAAA1tB,EAAAyiB,MACAlV,OACA1jB,EAAA6jC,EAAA7jC,EAAAkxB,EAAA,GACAhxB,EAAA2jC,EAAA3jC,EAAAgxB,EAAA,GACAvc,MAAAkvB,EAAAlvB,MAAAuc,EAAA,GAAAA,EAAA,GACAtc,OAAAivB,EAAAjvB,OAAAsc,EAAA,GAAAA,EAAA,GACA9d,EAAA28C,EAAApwD,IAAA,iBAEAuU,QACA4rB,QAAA,EACAC,IAAA,6BC9DA,IAAAynK,EAAWtsM,EAAQ,QAEnBosD,EAAepsD,EAAQ,QAEvBunC,EAAoBvnC,EAAQ,QAE5BQ,EAAiBR,EAAQ,QAEzBs6B,EAAat6B,EAAQ,QASrBuhD,EAAA,SAAAj2C,GAEAi8B,EAAAp7B,KAAA1L,KAAA6K,GACA8gD,EAAAjgD,KAAA1L,KAAA6K,GACA9K,EAAA2L,KAAA1L,KAAA6K,GAMA7K,KAAA0B,GAAAmJ,EAAAnJ,IAAAmqM,KAGA/qJ,EAAA5gD,WAMAsD,KAAA,UAOAZ,KAAA,GAQAjC,KAAA,KASAqjC,QAAA,EASA/H,SAAA,KAMA28B,SAAA,EAOA4sD,MAAA,SAAAz3E,EAAAC,GACA,OAAAhuC,KAAAi3J,WACA,iBACAjpH,EAAA,EACA,MAEA,eACAD,EAAA,EAIA,IAAAphB,EAAA3sB,KAAAi4B,UAEAtL,IACAA,EAAA3sB,KAAAi4B,WAAA,cAGAtL,EAAA,IAAAohB,EACAphB,EAAA,IAAAqhB,EACAhuC,KAAAqoC,qBACAroC,KAAAoB,OAAA,IAMAk2L,aAAA,aAKAC,YAAA,aAKAh7I,OAAA,WACAv8C,KAAAwpC,mBAOAmvB,SAAA,SAAA2O,EAAAxZ,KAKAg+I,OAAA,SAAA/hM,EAAAxC,GACA,gBAAAwC,GAAA,UAAAA,GAAA,WAAAA,GAEA,GAAAxC,EAAA,CACA,IAAAhH,EAAAP,KAAA+J,GAEAxJ,IACAA,EAAAP,KAAA+J,OAGAxJ,EAAA,GAAAgH,EAAA,GACAhH,EAAA,GAAAgH,EAAA,SAGAvH,KAAA+J,GAAAxC,GAOAwkM,KAAA,WACA/rM,KAAAgkC,QAAA,EACAhkC,KAAAW,MAAAX,KAAAW,KAAAylD,WAMA/gD,KAAA,WACArF,KAAAgkC,QAAA,EACAhkC,KAAAW,MAAAX,KAAAW,KAAAylD,WAOArjD,KAAA,SAAAgH,EAAAxC,GACA,oBAAAwC,EACA/J,KAAA8rM,OAAA/hM,EAAAxC,QACK,GAAAsyB,EAAAj6B,SAAAmK,GACL,QAAAnH,KAAAmH,EACAA,EAAAlH,eAAAD,IACA5C,KAAA8rM,OAAAlpM,EAAAmH,EAAAnH,IAMA,OADA5C,KAAAoB,OAAA,GACApB,MAMAghC,YAAA,SAAA/E,GACA,IAAAv7B,EAAAV,KAAAW,KAEAD,GACAu7B,EAAA+vK,YAAAtrM,GAIAV,KAAAi8B,UAAAj8B,KAAAi8B,cACAj8B,KAAAonE,iBAGApnE,KAAAi8B,WACAA,EAAAt7B,KAAAD,EACAu7B,EAAAgwK,aAAAjsM,KACAA,KAAAoB,OAAA,IAKAgmE,eAAA,WACA,IAAAnrC,EAAAj8B,KAAAi8B,SAEAA,IACAA,EAAAt7B,MACAs7B,EAAAiwK,iBAAAjwK,EAAAt7B,MAGAs7B,EAAAt7B,KAAA,KACAs7B,EAAAgwK,aAAA,KACAjsM,KAAAi8B,SAAA,KACAj8B,KAAAoB,OAAA,KASA4qM,YAAA,SAAAtrM,GACAV,KAAAW,KAAAD,EAEA,IAAAT,EAAAD,KAAAC,UAEA,GAAAA,EACA,QAAAc,EAAA,EAAqBA,EAAAd,EAAAgB,OAAsBF,IAC3CL,EAAAc,UAAAC,YAAAxB,EAAAc,IAIAf,KAAAi8B,UACAj8B,KAAAi8B,SAAA+vK,YAAAtrM,IASAwrM,iBAAA,SAAAxrM,GACAV,KAAAW,KAAA,KAEA,IAAAV,EAAAD,KAAAC,UAEA,GAAAA,EACA,QAAAc,EAAA,EAAqBA,EAAAd,EAAAgB,OAAsBF,IAC3CL,EAAAc,UAAA2qM,eAAAlsM,EAAAc,IAIAf,KAAAi8B,UACAj8B,KAAAi8B,SAAAiwK,iBAAAxrM,KAIAm5B,EAAA8N,MAAAmZ,EAAA/gD,GACA85B,EAAA8N,MAAAmZ,EAAAha,GACAjN,EAAA8N,MAAAmZ,EAAA6K,GACA,IAAA1oD,EAAA69C,EACA59C,EAAAC,QAAAF,0BC5QA,IAAA42B,EAAat6B,EAAQ,QAErBk4C,EAAYl4C,EAAQ,QAEpB6sM,EAAkB7sM,EAAQ,QA4B1Bq4C,EAAAH,EAAAv3C,UACAowK,EAAA74H,EAAA/tC,QACAlG,KAAA,UAKAgb,KAAA,SAAA+vJ,EAAAvzI,GAGAuzI,IAAA10I,EAAA/tB,QAAAyiK,KACAA,EAAA,IAAA69B,GACAh7B,WAAA7C,KAIAvuK,KAAAqsM,aAAA99B,EACAvuK,KAAA44C,QAAA5d,IAAA,EAAAuzI,EAAA6C,WAAAnwK,OAAA,IAEAkM,MAAA,SAAAI,GACA,uBAAAA,EAAAvN,KAAAqsM,aAAAC,WAAA/+L,GACAxF,KAAAqC,MAAAmD,IAEAm9B,QAAA,SAAA6hK,GAEA,OADAA,EAAAvsM,KAAAmN,MAAAo/L,GACA30J,EAAAlN,QAAAh/B,KAAA1L,KAAAusM,IAAA,MAAAvsM,KAAAqsM,aAAAj7B,WAAAm7B,IAQA58H,UAAA,SAAApiE,GACA,OAAAqqC,EAAA+3B,UAAAjkE,KAAA1L,UAAAmN,MAAAI,KAEAgE,MAAA,SAAAhE,GACA,OAAAxF,KAAAqC,MAAAwtC,EAAArmC,MAAA7F,KAAA1L,KAAAuN,KAMAmrC,SAAA,WAKA,IAJA,IAAA8zJ,KACAxxK,EAAAh7B,KAAA44C,QACA2zJ,EAAAvxK,EAAA,GAEAuxK,GAAAvxK,EAAA,IACAwxK,EAAAjrM,KAAAgrM,GACAA,IAGA,OAAAC,GAQAtzJ,SAAA,SAAAkF,GACA,IAAAp+C,KAAAwyK,UAEA,OAAAxyK,KAAAqsM,aAAAj7B,WAAAhzH,IAOA77C,MAAA,WACA,OAAAvC,KAAA44C,QAAA,GAAA54C,KAAA44C,QAAA,MAMAS,oBAAA,SAAAvoC,EAAAunB,GACAr4B,KAAAo5C,YAAAtoC,EAAAwoC,qBAAAjhB,KAEA84I,eAAA,WACA,OAAAnxK,KAAAqsM,cAEA9yJ,UAAA1f,EAAAwiC,KACAziB,WAAA/f,EAAAwiC,OAMAi0G,EAAA5mI,OAAA,WACA,WAAA4mI,GAGA,IAAArtK,EAAAqtK,EACAptK,EAAAC,QAAAF,0BChIA,IAAA42B,EAAat6B,EAAQ,QAsBrB0D,GApBiB1D,EAAQ,SAyBzBuxK,OAAA,SAAA1nI,GACA,IAAAnsB,EAAAjd,KAAAid,OACAjV,EAAAohC,GAAA,MAAAnsB,EAAAigG,WAAAjgG,EAAAjV,IAAAiV,EAAAigG,WAMA,OAJAl9G,KAAAy1B,MAAA,MAAAztB,GAAA,YAAAA,GAAA,mBAAAA,IAAA6xB,EAAAq3I,MAAAlpK,KACAA,EAAAhI,KAAAy1B,KAAAlkB,MAAApE,MAAAnF,IAGAA,GAOA+oK,OAAA,SAAA3nI,GACA,IAAAnsB,EAAAjd,KAAAid,OACAhV,EAAAmhC,GAAA,MAAAnsB,EAAAkgG,SAAAlgG,EAAAhV,IAAAgV,EAAAkgG,SAMA,OAJAn9G,KAAAy1B,MAAA,MAAAxtB,GAAA,YAAAA,GAAA,mBAAAA,IAAA4xB,EAAAq3I,MAAAjpK,KACAA,EAAAjI,KAAAy1B,KAAAlkB,MAAApE,MAAAlF,IAGAA,GAMAopK,iBAAA,WACA,IAAAp0J,EAAAjd,KAAAid,OACA,aAAAA,EAAAigG,YAAA,MAAAjgG,EAAAkgG,WAAAlgG,EAAA1L,OAOAk3D,iBAAA5uC,EAAAwiC,KAMAowI,SAAA,SAAAvvF,EAAAC,GACAn9G,KAAAid,OAAAigG,aACAl9G,KAAAid,OAAAkgG,YAMAuvF,WAAA,WAEA1sM,KAAAid,OAAAigG,WAAAl9G,KAAAid,OAAAkgG,SAAA,QAGAj6G,EAAAC,QAAAF,uCClFA,IAAAuH,EAAWjL,EAAQ,QACnBixL,EAAejxL,EAAQ,QAMvBqI,EAAAgC,OAAA1J,UAAA0H,SAQA,SAAAkE,EAAAyB,GACA,yBAAA3F,EAAA8D,KAAA6B,GA2EA,SAAA3N,EAAA2N,GACA,cAAAA,GAAA,iBAAAA,EAuCA,SAAA5N,EAAA4N,GACA,4BAAA3F,EAAA8D,KAAA6B,GAoEA,SAAAzD,EAAAqB,EAAAc,GAEA,UAAAd,QAAA,IAAAA,EAUA,GALA,iBAAAA,IAEAA,OAGAW,EAAAX,GAEA,QAAApK,EAAA,EAAAC,EAAAmK,EAAAlK,OAAmCF,EAAAC,EAAOD,IAC1CkL,EAAAP,KAAA,KAAAP,EAAApK,KAAAoK,QAIA,QAAApB,KAAAoB,EACAvB,OAAA1J,UAAA2C,eAAA6I,KAAAP,EAAApB,IACAkC,EAAAP,KAAA,KAAAP,EAAApB,KAAAoB,GA0DAjI,EAAAC,SACA2I,UACA6gM,cAhQA,SAAAp/L,GACA,+BAAA3F,EAAA8D,KAAA6B,IAgQAijL,WACAoc,WAxPA,SAAAr/L,GACA,0BAAAs/L,UAAAt/L,aAAAs/L,UAwPAC,kBA/OA,SAAAv/L,GAOA,MALA,oBAAAo3G,yBAAA,OACAA,YAAAooF,OAAAx/L,GAEA,GAAAA,EAAA,QAAAA,EAAAm3E,kBAAAigC,aA2OAjlH,SAhOA,SAAA6N,GACA,uBAAAA,GAgOAy/L,SAvNA,SAAAz/L,GACA,uBAAAA,GAuNA3N,WACAulF,YA/MA,SAAA53E,GACA,gBAAAA,GA+MA0/L,OA5LA,SAAA1/L,GACA,wBAAA3F,EAAA8D,KAAA6B,IA4LA2/L,OAnLA,SAAA3/L,GACA,wBAAA3F,EAAA8D,KAAA6B,IAmLA4/L,OA1KA,SAAA5/L,GACA,wBAAA3F,EAAA8D,KAAA6B,IA0KA5N,aACAytM,SAxJA,SAAA7/L,GACA,OAAA3N,EAAA2N,IAAA5N,EAAA4N,EAAA8/L,OAwJAC,kBA/IA,SAAA//L,GACA,0BAAAggM,iBAAAhgM,aAAAggM,iBA+IAjmC,qBArHA,WACA,2BAAAzoH,WAAA,gBAAAA,UAAA2uJ,UAIA,oBAAA79L,QACA,oBAAAE,UAgHA/F,UACA6mE,MArDA,SAAAA,IACA,IAAA5/D,KACA,SAAA08L,EAAAlgM,EAAAxD,GACA,iBAAAgH,EAAAhH,IAAA,iBAAAwD,EACAwD,EAAAhH,GAAA4mE,EAAA5/D,EAAAhH,GAAAwD,GAEAwD,EAAAhH,GAAAwD,EAIA,QAAAxM,EAAA,EAAAC,EAAA8D,UAAA7D,OAAuCF,EAAAC,EAAOD,IAC9C+I,EAAAhF,UAAA/D,GAAA0sM,GAEA,OAAA18L,GAyCArH,OA9BA,SAAA6L,EAAAC,EAAAgpK,GAQA,OAPA10K,EAAA0L,EAAA,SAAAjI,EAAAxD,GAEAwL,EAAAxL,GADAy0K,GAAA,mBAAAjxK,EACA/C,EAAA+C,EAAAixK,GAEAjxK,IAGAgI,GAuBAisE,KA1IA,SAAAnxC,GACA,OAAAA,EAAA9nC,QAAA,WAAAA,QAAA,qCCpKA,IAAApE,IAAoR,SAAAskF,GAAkB,gBAAAA,GAAmB,SAAAtkF,EAAAi6C,GAAc,GAAA+yB,EAAA/yB,GAAA,OAAA+yB,EAAA/yB,GAAAj7C,QAA4B,IAAAoS,EAAA47D,EAAA/yB,IAAYr9C,EAAAq9C,EAAAp9C,GAAA,EAAAmC,YAAqB,OAAAslF,EAAArqC,GAAA1yC,KAAA6J,EAAApS,QAAAoS,IAAApS,QAAAgB,GAAAoR,EAAAvU,GAAA,EAAAuU,EAAApS,QAA2D,IAAAguE,KAAS,OAAAhtE,EAAAwoB,EAAA87D,EAAAtkF,EAAA+7D,EAAAiR,EAAAhtE,EAAApD,EAAA,SAAA0nF,GAAmC,OAAAA,GAAStkF,EAAAsqB,EAAA,SAAAg6D,EAAAtX,EAAA/yB,GAAqBj6C,EAAAgtE,EAAAsX,EAAAtX,IAAAvnE,OAAAwB,eAAAq9E,EAAAtX,GAAqC7lE,cAAA,EAAAD,YAAA,EAAArH,IAAAo6C,KAAsCj6C,EAAAi6C,EAAA,SAAAqqC,GAAiB,IAAAtX,EAAAsX,KAAArX,WAAA,WAAiC,OAAAqX,EAAA1vE,SAAiB,WAAY,OAAA0vE,GAAU,OAAAtkF,EAAAsqB,EAAA0iD,EAAA,IAAAA,MAAsBhtE,EAAAgtE,EAAA,SAAAsX,EAAAtkF,GAAmB,OAAAyF,OAAA1J,UAAA2C,eAAA6I,KAAA+8E,EAAAtkF,IAAiDA,EAAA+sC,EAAA,GAAA/sC,IAAAgU,EAAA,GAAje,EAAkf,SAAAhU,EAAAgtE,GAAgBhtE,EAAAhB,QAAAslF,GAAY,SAAAA,EAAAtkF,EAAAgtE,GAAiB,SAAA/yB,EAAAqqC,EAAAtkF,GAAgBnE,KAAA0tM,MAAAjlH,EAAAzoF,KAAA+hC,YAAA,aAAA/hC,KAAA2tM,YAAA,KAAA3tM,KAAAivD,KAAA9qD,EAA6E,IAAAoR,EAAA47D,EAAA,GAAW/yB,EAAAl+C,UAAA6hC,YAAA,aAAAqc,EAAAl+C,UAAAwoC,QAAA,SAAA+/C,GAAqEzoF,KAAAunC,MAAAkhD,GAAarqC,EAAAl+C,UAAAqoC,UAAA,SAAAkgD,GAAmCzoF,KAAAsnC,QAAAtnC,KAAA0tM,MAAAE,cAAAnlH,IAAyCrqC,EAAAl+C,UAAAqqK,aAAA,SAAA9hF,GAAsCzoF,KAAA2tM,WAAAllH,GAAkBrqC,EAAAl+C,UAAA2tM,QAAA,WAAgC,OAAA7tM,KAAA0tM,OAAkBtvJ,EAAAl+C,UAAA+pC,YAAA,SAAAw+C,GAAqC,IAAAtkF,EAAA,IAAA2pM,KAAAC,OAAAtlH,EAAA,GAAAA,EAAA,IAAAtX,EAAAnxE,KAAA0tM,MAAAM,kBAAA7pM,GAAAi6C,EAAAp+C,KAAA2tM,WAAqF,OAAAx8H,EAAA9sE,EAAA+5C,EAAA,GAAA+yB,EAAA5sE,EAAA65C,EAAA,KAA0BA,EAAAl+C,UAAAkqC,YAAA,SAAAq+C,GAAqC,IAAAtkF,EAAAnE,KAAA2tM,WAAgF,QAAhFllH,EAAAzoF,KAAA0tM,MAAAO,mBAAsD5pM,EAAAokF,EAAA,GAAAtkF,EAAA,GAAAI,EAAAkkF,EAAA,GAAAtkF,EAAA,MAA0B+pM,IAAAzlH,EAAA0lH,MAAoB/vJ,EAAAl+C,UAAA4pC,YAAA,WAAoC,IAAA2+C,EAAAzoF,KAAAivD,KAAgB,WAAA15C,EAAAiF,QAAAqsB,aAAA,IAAA4hD,EAAA32B,WAAA22B,EAAA12B,cAAkE3T,EAAAl+C,UAAA6oC,iBAAA,WAAyC,OAAAxzB,EAAAqxB,OAAA8C,UAA0B0U,EAAArc,WAAAqc,EAAAl+C,UAAA6hC,WAAAqc,EAAA1U,OAAA,SAAA++C,EAAAtkF,GAA2D,IAAAgtE,EAAA15D,EAAAtT,EAAAqtD,SAAmBi3B,EAAA51B,cAAA,gBAAA41B,GAAmC,IAAA1nF,EAAAoD,EAAAQ,QAAAstD,QAAAk4G,kBAA0C,uBAAA2jC,KAAA,UAAAzuI,MAAA,0BAAsE,GAAA8R,EAAA,UAAA9R,MAAA,qCAA0D,IAAAopB,EAAA2lH,OAAA,CAAc,IAAAl9J,EAAAz5B,EAAA8rC,cAAA,sBAA4CrS,IAAAnwC,EAAAwX,MAAA1S,KAAA,MAAA9E,EAAAwX,MAAAvG,IAAA,MAAAyF,EAAA+0B,YAAA0E,OAAArhC,SAAAC,cAAA,QAAAyI,MAAAyzB,QAAA,yBAAuHkF,EAAA8P,UAAA/hB,IAAA,qBAAAxnB,EAAAxH,YAAAihC,GAAmE,IAAA/4B,EAAAswE,EAAAzkF,UAAkBmU,EAAAswE,EAAA4lH,UAAA94L,EAAA+9J,KAAAtpI,MAAA7xB,GAA8B,IAAA+nD,EAAAuoB,EAAA2lH,OAAA,IAAAN,KAAAppJ,IAAAxT,EAAA/4B,IAAA6qC,EAAAylC,EAAA6lH,QAAA,IAAAR,KAAAS,YAAAxtM,IAAqEytM,OAAAtuI,GAAY,IAAAld,EAAAkd,EAAAuoB,EAAAolH,WAAA7qJ,EAAAylC,EAAArb,YAAiC2+H,OAAS,IAAAp/K,EAAAuzC,EAAAp3B,UAAA2lK,EAAAvuI,EAAAr3B,aAAkCsoC,EAAA,IAAA/yB,EAAA8hB,EAAA/7D,IAAAomK,aAAA9hF,EAAA+hF,cAAA,MAAAr5F,EAAAzoC,QAAA/b,GAAAwkD,EAAA5oC,WAAAkmK,EAAAP,IAAAO,EAAAN,MAAA1lH,EAAAp6D,iBAAA8iD,EAAAnuB,EAAA39C,SAAwHojF,EAAAzzB,WAAA,SAAAyzB,GAA2B,SAAAA,EAAAzkF,IAAA,sBAAAykF,EAAAp6D,iBAAA8iD,MAA6DsX,EAAAtlF,QAAAi7C,GAAa,SAAAqqC,EAAAtkF,EAAAgtE,GAAuEsX,EAAAtlF,QAAAguE,EAAA,GAAA38C,sBAAqChxB,KAAA,OAAAqqM,QAAA,WAA+B,OAAA7tM,KAAAouM,QAAmBhhI,SAAA,WAAqB,OAAAptE,KAAAsuM,SAAoBI,cAAA,WAA0B,OAAA1uM,KAAAquM,WAAsBM,iBAAA,SAAAlmH,EAAAtkF,GAAgCnE,KAAAid,OAAA6G,OAAA2kE,EAAAzoF,KAAAid,OAAA6M,KAAA3lB,GAAwCyqM,oBAAA,SAAAnmH,EAAAtkF,GAAmC,IAAAgtE,EAAAnxE,KAAAid,OAAkB,QAAnW,SAAAwrE,EAAAtkF,GAAgB,OAAAskF,GAAAtkF,GAAAskF,EAAA,KAAAtkF,EAAA,IAAAskF,EAAA,KAAAtkF,EAAA,GAAmVi6C,CAAAqqC,EAAAtX,EAAArtD,SAAA3f,IAAAgtE,EAAArnD,OAAmC4K,eAAgB5Q,QAAA,sBAAAgG,KAAA,MAAwC,SAAA2+D,EAAAtkF,EAAAgtE,GAAwK,IAAA57D,EAAA47D,EAAA,GAAWsX,EAAAtlF,QAAAguE,EAAA,GAAA5tE,qBAAoCC,KAAA,OAAAC,OAAA,SAAAglF,EAAAtkF,EAAAgtE,GAAmC,SAAA15D,IAAay5B,GAAAigC,EAAA/sE,gBAAqBZ,KAAA,aAAuF,IAAA0tC,GAAA,EAAA/4B,EAAAswE,EAAAolH,UAAA3tI,EAAAiR,EAAAxsE,QAAAstD,QAAAk4G,kBAAAnnH,EAAAylC,EAAAp6D,iBAAA1B,EAAA,SAAAxoB,GAAgG,IAAA+sC,EAAA,CAAO,IAAAkN,EAAA8hB,EAAA3zB,iCAAAh3B,IAAAqkE,SAAAx7B,EAAA7lC,MAAA1S,KAAA,QAAA+zE,SAAAx7B,EAAA7lC,MAAAvG,IAAA,QAAwGkuD,EAAA3nD,MAAA1S,KAAA0P,EAAA,QAAA2qD,EAAA3nD,MAAAvG,IAAAuD,EAAA,QAAAytC,EAAAunH,aAAAh1J,GAAAkzE,EAAA+hF,YAAAj1J,EAAA47D,EAAA/sE,gBAAiGZ,KAAA,eAAmBirM,EAArqB,SAAAhmH,EAAAtkF,EAAAgtE,GAAkB,IAAA/yB,EAAA7oC,EAAAkC,EAAA1W,EAAY,OAAAA,EAAA,WAAoBq9C,GAAA,EAAA7oC,IAAAkC,EAAAlL,MAAA4kE,EAAA57D,MAAA,IAA4BkC,EAAA,WAAc2mC,EAAA7oC,EAAAzQ,WAAA2jF,EAAAl8E,MAAA4kE,EAAArsE,WAAAwH,WAAAvL,EAAAoD,GAAAi6C,GAAA,IAAykBA,CAAxY,SAAAqqC,GAAclzE,EAAA0lD,iBAAAkW,EAAA3f,UAAAh1C,SAAAmQ,EAAAjhB,KAAA1L,KAAAyoF,IAA0X,IAAAtwE,GAAcA,EAAAk4C,IAAA,YAAArwD,KAAA0qK,iBAAAvyJ,EAAAk4C,IAAA,UAAArwD,KAAA2qK,oBAAAxyJ,EAAAk4C,IAAA,UAAArwD,KAAA2qK,oBAAAxyJ,EAAAk4C,IAAA,WAAArwD,KAAA2qK,oBAAAliF,EAAAzkF,IAAA,iBAAAmU,EAAAk4C,IAAA,SAAArwD,KAAA6uM,mBAAA12L,EAAAuH,GAAA,YAAAiN,GAAAxU,EAAAuH,GAAA,UAAAjI,GAAAU,EAAAuH,GAAA,UAAAjI,GAAAU,EAAAuH,GAAA,WAAAjI,GAAAgxE,EAAAzkF,IAAA,iBAAAmU,EAAAuH,GAAA,SAAA+uL,GAAAzuM,KAAA0qK,gBAAA/9I,EAAA3sB,KAAA2qK,mBAAAlzJ,EAAAzX,KAAA6uM,kBAAAJ,EAAAv9J,GAAA,MAAua,SAAAu3C,EAAAtkF,EAAAgtE,GAAiBA,EAAA,GAAAjU,yBAAA,OAAAiU,EAAA,IAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAzV,gBAA0El4D,KAAA,WAAA+zD,MAAA,WAAAhb,OAAA,gBAAuD,SAAAksC,EAAAtkF,GAAeA,EAAA0uD,cAAA,gBAAA41B,GAAmC,IAAAtkF,EAAAskF,EAAAolH,UAAA18H,EAAAhtE,EAAA0kC,YAAkC4/C,EAAAkmH,kBAAAx9H,EAAA+8H,IAAA/8H,EAAAg9H,KAAAhqM,EAAA2kC,eAAgD2/C,EAAAtlF,SAAam5D,QAAA,kBAAj2Ip5D,EAAAC,QAAAgB,EAAkB5E,EAAQ,iCCA1F2D,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAA6C6xE,YAAA,2BCAnF,IAAAxxE,EAAeL,EAAQ,QACvB2D,EAAAC,QAAA,SAAAu9D,GACA,IAAA9gE,EAAA8gE,GAAA,MAAA1c,UAAA0c,EAAA,sBACA,OAAAA,2BCHcnhE,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBuvM,EAAUvvM,EAAQ,QAElB+3B,EAAa/3B,EAAQ,QAErBm4C,EAAiBn4C,EAAQ,QA0BzB,SAAAwvM,EAAAC,EAAAprM,GACA,IAAAimB,EAAAmlL,EAAAhrM,IAAA,kBAEA,SAAA6lB,EAAA,CACA,IAAAolL,EAAAplL,EAAA,GACAqlL,EAAArlL,EAAA,GAEApf,MAAAwkM,EAAA,KAAAxkM,MAAAwkM,EAAA,KAAAxkM,MAAAykM,EAAA,KAAAzkM,MAAAykM,EAAA,KACAlvM,KAAA4nC,gBAAAqnK,EAAA,GAAAA,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GAAAD,EAAA,IAIA,IACAE,EADAjnK,EAAAloC,KAAA8nC,kBAEAhkB,EAAAkrL,EAAAhrM,IAAA,gBACA6tB,EAAAm9K,EAAAhrM,IAAA,cACA0kM,EAAA9kM,EAAAkuD,WACA62I,EAAA/kM,EAAAmuD,YACAnoC,EAAAolL,EAAAhrM,IAAA,oBACAukM,EAAArgK,EAAAlvB,MAAAkvB,EAAAjvB,OAAA2Q,EACAwlL,GAAA,EAaA,GAXAtrL,GAAA+N,IACA/N,GAAA4zB,EAAAhL,aAAA5oB,EAAA,GAAA4kL,GAAAhxJ,EAAAhL,aAAA5oB,EAAA,GAAA6kL,IACA92K,EAAA6lB,EAAAhL,aAAA7a,EAAA9pB,KAAAC,IAAA0gM,EAAAC,IAEAl+L,MAAAqZ,EAAA,KAAArZ,MAAAqZ,EAAA,KAAArZ,MAAAonB,KACAu9K,GAAA,IAMAA,EAAA,CACA,IAAA37B,KAEA80B,EAAA,GAEA90B,EAAAz6J,MAAA6Y,EACA4hJ,EAAAx6J,OAAA4Y,EAAA02K,IAEA90B,EAAAx6J,OAAA4Y,EACA4hJ,EAAAz6J,MAAA6Y,EAAA02K,GAGA90B,EAAAlvK,EAAAuf,EAAA,GAAA2vJ,EAAAx6J,OAAA,EACAw6J,EAAApvK,EAAAyf,EAAA,GAAA2vJ,EAAAz6J,MAAA,OAGAm2L,EAAAH,EAAAplI,sBAEA2+H,SACA90B,EAAAn8I,EAAAwrC,cAAAqsI,GACAn2L,MAAA0vL,EACAzvL,OAAA0vL,IAIA3oM,KAAA+nC,YAAA0rI,EAAApvK,EAAAovK,EAAAlvK,EAAAkvK,EAAAz6J,MAAAy6J,EAAAx6J,QACAjZ,KAAAuoC,UAAAymK,EAAAhrM,IAAA,WACAhE,KAAA0oC,QAAAsmK,EAAAhrM,IAAA,SASA,SAAAqrM,EAAA/0L,EAAAid,GACAsC,EAAA4E,KAAAlH,EAAAvzB,IAAA,qBAAA4nL,EAAAhpL,GACA0X,EAAAg1L,YAAA1sM,EAAAgpL,KAIA,IAAA2jB,GAEAxtK,WAAA+sK,EAAA5uM,UAAA6hC,WACA2H,OAAA,SAAA/lC,EAAAC,GACA,IAAA4rM,KAEA7rM,EAAAkvD,cAAA,eAAAm8I,EAAA1uK,GACA,IAAA19B,EAAAosM,EAAAhrM,IAAA,OACAyrM,EAAArsM,EAAA46D,OAAAp7D,GACA0X,EAAA,IAAAw0L,EAAAlsM,EAAA09B,EAAA19B,EAAA6sM,KAAA3xI,QAAA2xI,KAAAnmL,aAAA0lL,EAAAhrM,IAAA,YACAsW,EAAA6sB,UAAA6nK,EAAAhrM,IAAA,cACAwrM,EAAAjuM,KAAA+Y,GACA+0L,EAAA/0L,EAAA00L,GACAA,EAAA3gL,iBAAA/T,EACAA,EAAAid,MAAAy3K,EAEA10L,EAAAkC,OAAAuyL,EACAz0L,EAAAkC,OAAAwyL,EAAAprM,KAEAD,EAAAqxD,WAAA,SAAAx5B,GAGA,WAFAA,EAAAx3B,IAAA,oBAEA,CACA,IAAA0rM,EAAAl0K,EAAAx3B,IAAA,eACAw3B,EAAAnN,iBAAAmhL,EAAAE,MAIA,IAAAC,KA0BA,OAzBAhsM,EAAAikM,iBAAA,eAAApsK,GACA,IAAAA,EAAAo0K,kBAAA,CACA,IAAArlL,EAAAiR,EAAAq0K,aACAF,EAAAplL,GAAAolL,EAAAplL,OACAolL,EAAAplL,GAAAhpB,KAAAi6B,MAGA3B,EAAA4E,KAAAkxK,EAAA,SAAAG,EAAAvlL,GACA,IAAAklL,EAAArsM,EAAA46D,OAAAzzC,GACAwlL,EAAAl2K,EAAAlpB,IAAAm/L,EAAA,SAAAE,GACA,OAAAA,EAAAhsM,IAAA,aAEAsW,EAAA,IAAAw0L,EAAAvkL,IAAAklL,KAAA3xI,QAAA2xI,KAAAnmL,aAAAuQ,EAAAo2K,SAAAF,IACAz1L,EAAA6sB,UAAAtN,EAAAmuC,SAAAz7D,MAAA,KAAAstB,EAAAlpB,IAAAm/L,EAAA,SAAAE,GACA,OAAAA,EAAAhsM,IAAA,iBAEAwrM,EAAAjuM,KAAA+Y,GAEAA,EAAAkC,OAAAuyL,EACAz0L,EAAAkC,OAAAszL,EAAA,GAAAlsM,GACAi2B,EAAA4E,KAAAqxK,EAAA,SAAAE,GACAA,EAAA3hL,iBAAA/T,EACA+0L,EAAA/0L,EAAA01L,OAGAR,GAUAU,iBAAA,SAAAC,EAAAtyI,EAAAuyI,GAEA,IAAAC,GAAAF,OAAA7tM,QACA8tM,QACA,IAAAz/L,EAAAvN,EAAA46D,OAAAH,GACAC,EAAAntD,KAAAmtD,QAEA,IAAAA,EACA,OAAAqyI,EAMA,IAHA,IAAAG,EAAAz2K,EAAAk7B,gBACAgJ,EAAAD,EAAAC,SAEAh9D,EAAA,EAAmBA,EAAAsvM,EAAApvM,OAAuBF,IAC1CuvM,EAAAtrJ,IAAAqrJ,EAAAtvM,GAAA6B,KAAAytM,EAAAtvM,IAGA,IAAAA,EAAA,EAAmBA,EAAAg9D,EAAA98D,OAAqBF,IAAA,CACxC,IAAA6B,EAAAm7D,EAAAh9D,GAAAwvM,WAAA3tM,KAEA0tM,EAAAtsM,IAAApB,KACAwtM,EAAAvtM,eAAAD,KACAA,EAAAwtM,EAAAxtM,IAGAytM,EAAA9uM,MACAqB,UAKA,OAAAytM,IAGAjtM,EAAA85D,yBAAA,MAAAqyI,GACA,IAAAtsM,EAAAssM,EACArsM,EAAAC,QAAAF,0BCtNA,IAAA42B,EAAat6B,EAAQ,QAErBqxJ,EAAkBrxJ,EAAQ,QAE1Bib,EAAcjb,EAAQ,QAEtByoM,EAAuBzoM,EAAQ,QAsB/BixM,GAAA,uCAEAC,EAtBelxM,EAAQ,QAsBvBmK,QACAlG,KAAA,aACAktM,iBAAA,oBACAjtM,OAAA,SAAA4yB,EAAA1yB,EAAAC,EAAAggC,GACA,IAAA5E,EAAAh/B,KAAAg/B,MACAA,EAAAkG,YACA,IAAA5N,EAAA0wK,EAAA1wK,OAAAjB,GACAu7H,EAAA,IAAAhB,EAAAv6H,EAAAiB,GACAuC,EAAA4E,KAAA+xK,EAAA5+C,EAAA3yH,IAAA2yH,GACA5yH,EAAAC,IAAA2yH,EAAAC,YAEAx7H,EAAAryB,IAAA2sM,mBACA3wM,KAAA,WAAAq2B,GAGAo6K,EAAAtpB,UAAAnnL,KAAA,SAAAq2B,EAAA1yB,EAAAC,EAAAggC,IAEAgtK,WAAA,SAAAv6K,GACA,IAAAZ,EAAAY,EAAAZ,KAEA,IAAAA,EAAAlkB,MAAAihK,UAAA,CAIA,IAAAq+B,EAAAx6K,EAAAgJ,SAAA,aACAD,EAAAyxK,EAAAxxK,SAAA,aACAtC,EAAAqC,EAAAp7B,IAAA,SACA8sM,EAAA1xK,EAAAp7B,IAAA,SACA8sM,eAAAjlM,MAAAilM,MAWA,IAVA,IAAAnnI,EAAAtzC,EAAAhI,iBAAAk1C,UACA1mC,EAAApH,EAAAoH,eACAk0K,KACAC,EAAA,EACAC,EAAAx7K,EAAAy7K,gBACAC,UAAAN,IAEAj2K,KACAC,KAEA95B,EAAA,EAAmBA,EAAAkwM,EAAAhwM,SAAwBF,EAAA,CAC3C,IAAAqwM,EAAA37K,EAAAoB,cAAAo6K,EAAAlwM,GAAAqhC,OAEAvF,GACAjC,EAAA,GAAAw2K,EACAx2K,EAAA,GAAA+uC,EAAAplE,EACAs2B,EAAA,GAAAu2K,EACAv2K,EAAA,GAAA8uC,EAAAplE,EAAAolE,EAAA1wD,SAEA2hB,EAAA,GAAA+uC,EAAAtlE,EACAu2B,EAAA,GAAAw2K,EACAv2K,EAAA,GAAA8uC,EAAAtlE,EAAAslE,EAAA3wD,MACA6hB,EAAA,GAAAu2K,GAGA,IAAA9zD,EAAA0zD,IAAAF,EAAA7vM,OACA8vM,EAAAzzD,GAAAyzD,EAAAzzD,OACAyzD,EAAAzzD,GAAA/7I,KAAA,IAAAiZ,EAAAqyD,KAAAryD,EAAAwe,sBACAjR,OACA0oB,GAAA7V,EAAA,GACA8V,GAAA9V,EAAA,GACAiT,GAAAhT,EAAA,GACAiT,GAAAjT,EAAA,IAEAtiB,OACAwkB,aAEAoH,QAAA,MAIA,IAAApjC,EAAA,EAAmBA,EAAAgwM,EAAA9vM,SAAuBF,EAC1Cf,KAAAg/B,MAAAC,IAAAzkB,EAAA62L,UAAAN,EAAAhwM,IACAwX,OACA2qB,OAAA4tK,EAAA/vM,EAAA+vM,EAAA7vM,QACA4tC,SAAAzP,EAAAimK,YAAAtoK,GACAA,aAEAoH,QAAA,SAKAlhC,EAAAwtM,EACAvtM,EAAAC,QAAAF,wBCjHA,IAAAmpC,EAGAA,EAAA,WACA,OAAApsC,KADA,GAIA,IAEAosC,KAAAjzB,SAAA,cAAAA,KAAA,EAAAm4L,MAAA,QACC,MAAAntM,GAED,iBAAAwL,SACAy8B,EAAAz8B,QAOAzM,EAAAC,QAAAipC,0BCpBA,IAAAhpC,EAAc7D,EAAQ,QAEtBysL,EAAuBzsL,EAAQ,QAI/BmlL,EAFanlL,EAAQ,QAErBmlL,gBAoBA6sB,EAAAnuM,EAAAq6D,mBACAj6D,KAAA,gBACAgb,KAAA,SAAAvB,GACAs0L,EAAA3sM,WAAA5E,KAAA,OAAA8E,WAGA9E,KAAA+kL,mBAAA,WACA,OAAA/kL,KAAAosL,cAIApsL,KAAAusL,kBAAAtvK,IAEA2rJ,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAAqoL,EAAAhsL,MAAA,WAEAusL,kBAAA,SAAAtvK,GAEAynK,EAAAznK,EAAA,sBACA,IAAAyvK,EAAAzvK,EAAAuG,UACAmpK,EAAA1vK,EAAAqJ,SAAA9C,UAEAkpK,EAAArnL,KAAAqnL,EAAArnL,MAAA4X,EAAAxK,MAAApN,KACAsnL,EAAAtnL,KAAAsnL,EAAAtnL,MAAA4X,EAAAqJ,SAAA7T,MAAApN,MAGAk1D,cAAA,SAAAn8B,GACA,IAAAttB,EAAA9Q,KAAAksB,UACAyF,EAAA4/K,EAAApqB,UAAAnnL,KAAA,gBAAAo+B,GACAiC,EAAAvvB,EAAA0tB,aAAA,SACAla,EAAAxT,EAAA0gM,OAAAnxK,GAIA,OAFA1O,EAAAvN,QAAAE,IAAAxT,EAAA9M,IAAAq8B,EAAAjC,GAAA9Z,EAAA,KAAAhd,QAAA,KACAqqB,EAAA86J,MAAAlrL,KAAA,WACAowB,GAEA+C,eACAC,OAAA,EAEAC,EAAA,EAEAwpJ,iBAAA,EACAv4K,KAAA,GACAmM,IAAA,GACAlM,MAAA,GACAgP,OAAA,GAMA28L,QAAA,KACAz1B,QAAA,OACA1mK,KAAA,aAEAwwJ,IAAA,EACA4rC,YAAA,SACAj/L,OACApN,MAAA,EACA+I,SAAA,SAGAoV,WACAne,MAAA,EACApE,OAAA,GACA2f,WAEA5H,MAAA,EACAxV,KAAA,UAGAgP,WAEAugB,YAAA,OACAuC,YAAA,GAEAhP,UACA7T,OACApN,MAAA,OAKApC,EAAAsuM,EACAruM,EAAAC,QAAAF,uCCxFAC,EAAAC,QAAA,SAAAhB,GACA,gBAAAyJ,GACA,OAAAzJ,EAAAoK,MAAA,KAAAX,6BCxBA,IAoBA3I,EApBoB1D,EAAQ,QAoB5BmK,QACAlG,KAAA,WACAC,OAAA,SAAAkuM,EAAAhuM,EAAAC,EAAAggC,GACA5jC,KAAA2xM,gBACA3xM,KAAA2D,UACA3D,KAAA4D,OAqBAguM,mBAAA,WACA,IAAAD,EAAA3xM,KAAA2xM,cACAhuM,EAAA3D,KAAA2D,QACAkuM,KA+BA,OA9BAF,EAAAG,eAAA,SAAAC,EAAA5nI,GACA,IAAA9zC,EAAA1yB,EAAAG,aAAAiuM,EAAAt8K,KAAA00C,GAEA,GAAA9zC,EAAA,CACA,IAAAyqJ,EAAAzqJ,EAAAoyC,mBACAq4G,GAIA,SAAAA,EAAAzqJ,EAAAwoJ,EAAAmzB,GAGA,IAFA,IAAArlM,EAEA5L,EAAA,EAAqBA,EAAA89K,EAAA59K,OAAkBF,IACvC,GAAA89K,EAAA99K,GAAAw2B,QAAAupJ,EAAA,CACAn0K,EAAAkyK,EAAA99K,GACA,MAIA4L,GACAkyK,EAAAt9K,KAAAoL,GACA4qB,MAAAupJ,EACAmxB,cACAD,eAIArlM,EAAAslM,WAAA1wM,KAAA80B,GAtBA+/I,CAAA0K,EAAAzqJ,EAAAw7K,EAAA/wB,EAAAxxH,YAAAuiJ,EAAA/wB,EAAAxxH,cAAAwxH,EAAA5oH,kBAEKl4D,MAuBL6xM,KAIA3uM,EAAAC,QAAAF,0BCpFA,IAAA42B,EAAat6B,EAAQ,QAErBm4C,EAAiBn4C,EAAQ,QAEzBisM,EAAiBjsM,EAAQ,QAEzB2yM,EAAkB3yM,EAAQ,QAE1Bo4C,EAAoBp4C,EAAQ,QA6B5Bs4C,EAAAF,EAAAz3C,UACAg4C,EAAAnwC,KAAAowC,KACAH,EAAAjwC,KAAAkwC,MAyBAk6J,EAAAx6J,EAAAjuC,QACAlG,KAAA,OAKA01C,SAAA,SAAA3rC,GACA,IAAA6kM,EAAApyM,KAAAqyM,SACAnwC,EAAA,IAAAzyJ,KAAAlC,GACA,OAAAi+L,EAAA8G,WAAAF,EAAA,GAAAlwC,EAAAliK,KAAAuyM,WAAA,YAMA34J,WAAA,SAAAhhB,GACA,IAAAoC,EAAAh7B,KAAA44C,QASA,GAPA5d,EAAA,KAAAA,EAAA,KAEAA,EAAA,IAzCAw3K,MA0CAx3K,EAAA,IA1CAw3K,OA8CAx3K,EAAA,MAAAye,KAAAze,EAAA,KAAAye,IAAA,CACA,IAAAhrB,EAAA,IAAAhf,KACAurB,EAAA,QAAAvrB,KAAAgf,EAAA+wI,cAAA/wI,EAAA0wI,WAAA1wI,EAAAswI,WACA/jI,EAAA,GAAAA,EAAA,GAjDAw3K,MAoDAxyM,KAAAu5C,UAAA3gB,EAAA5Q,YAAA4Q,EAAA05I,YAAA15I,EAAA25I,aAEA,IAAA74H,EAAA15C,KAAA65C,UAEAjhB,EAAAmhB,SACA/e,EAAA,GAAA0c,EAAAttC,MAAA4tC,EAAAhd,EAAA,GAAA0e,OAGA9gB,EAAAohB,SACAhf,EAAA,GAAA0c,EAAAttC,MAAA8tC,EAAAld,EAAA,GAAA0e,QAOAH,UAAA,SAAAC,EAAA84H,EAAAC,GACA/4H,KAAA,GACA,IAAAxe,EAAAh7B,KAAA44C,QACAxf,EAAA4B,EAAA,GAAAA,EAAA,GACAy3K,EAAAr5K,EAAAogB,EAEA,MAAA84H,GAAAmgC,EAAAngC,IACAmgC,EAAAngC,GAGA,MAAAC,GAAAkgC,EAAAlgC,IACAkgC,EAAAlgC,GAGA,IAAAmgC,EAAAC,EAAA1xM,OACAq/B,EAjFA,SAAA/qB,EAAAlR,EAAAuuM,EAAAC,GACA,KAAAD,EAAAC,GAAA,CACA,IAAAC,EAAAF,EAAAC,IAAA,EAEAt9L,EAAAu9L,GAAA,GAAAzuM,EACAuuM,EAAAE,EAAA,EAEAD,EAAAC,EAIA,OAAAF,EAsEAG,CAAAJ,EAAAF,EAAA,EAAAC,GACArvL,EAAAsvL,EAAA5qM,KAAAC,IAAAs4B,EAAAoyK,EAAA,IACAh5J,EAAAr2B,EAAA,GAEA,YAAAA,EAAA,IACA,IAAA2vL,EAAA55K,EAAAsgB,EAIAA,GADAhC,EAAAu7J,KAAAD,EAAAx5J,GAAA,GAIA,IAAA0nH,EAAAlhK,KAAAuyM,WAAA,mBAAA9iM,MAAAurB,EAAA,KAAAA,EAAA,IAAAulI,oBAAA,IACA3mH,GAAA7xC,KAAAqC,MAAA8tC,GAAAld,EAAA,GAAAkmI,GAAAxnH,KAAAwnH,GAAAn5J,KAAAqC,MAAA4tC,GAAAhd,EAAA,GAAAkmI,GAAAxnH,KAAAwnH,IACAgxC,EAAAgB,UAAAt5J,EAAA5e,GACAh7B,KAAAqyM,SAAAhvL,EAEArjB,KAAA65C,UAAAH,EACA15C,KAAA85C,YAAAF,GAEAzsC,MAAA,SAAAI,GAEA,OAAAmqC,EAAAk0H,UAAAr+J,MAGAssB,EAAA4E,MAAA,gCAAAgJ,GACA0qK,EAAAjyM,UAAAunC,GAAA,SAAAl6B,GACA,OAAAsqC,EAAApQ,GAAA/7B,KAAA1L,UAAAmN,MAAAI,OAIA,IAAAolM,IACA,WAtHA,MAuHA,WAAAQ,MACA,WAAAA,MACA,WAAAA,OACA,WAAAA,MACA,eA1HAA,MA2HA,eAAAC,MACA,eAAAA,MACA,eAAAA,MACA,eAAAA,OACA,eA9HAA,OA+HA,eAAAZ,OACA,eAAAA,QACA,eAAAA,QACA,cAjIAA,QAkIA,cAAAa,SACA,cAAAA,SACA,cAAAA,SACA,cAAAA,QACA,cAAAA,SACA,OAAAA,SACA,cAAAA,QACA,OAAAA,UACA,OAAAA,UACA,QAAAA,UACA,OAAAA,UACA,QAAAA,UACA,OAAAA,UACA,UAAAA,SACA,QAAAA,WACA,QAAAA,UACA,YAAAA,UACA,QAAAA,WACA,QAAAA,UACA,OAAAA,UAOAlB,EAAAzoK,OAAA,SAAAnS,GACA,WAAA46K,GACAmB,OAAA/7K,EAAA5zB,QAAAK,IAAA,aAIA,IAAAf,EAAAkvM,EACAjvM,EAAAC,QAAAF,0BC9MA,IAAAwoD,EAAclsD,EAAQ,QAEtB4D,EAAAsoD,UAEA,IAAA7kB,EAAarnC,EAAQ,QAErB4D,EAAAyjC,SAEA,IAAAD,EAAapnC,EAAQ,QAErB4D,EAAAwjC,SAEA,IAAA9M,EAAat6B,EAAQ,QAErBqrC,EAAgBrrC,EAAQ,QAExB4D,EAAAgD,MAAAykC,EAEA,IAAApwB,EAAcjb,EAAQ,QAEtB4D,EAAAqX,UAEA,IAAAk9B,EAAiBn4C,EAAQ,QAEzB4D,EAAAowM,OAAA77J,EAEA,IAAA8zJ,EAAiBjsM,EAAQ,QAEzB4D,EAAAuF,OAAA8iM,EAEA,IAAAgI,EAAgBj0M,EAAQ,QAExBi0M,EAAA5sJ,SACAzjD,EAAAyjD,SAAA4sJ,EAAA5sJ,SAEA,IAAA6sJ,EAAel0M,EAAQ,QAEvB4D,EAAAqwJ,OAAAigD,EAEA,IAAAC,EAAmBn0M,EAAQ,QAE3B4D,EAAAuwM,eAEA,IAAAC,EAAYp0M,EAAQ,QAEpB4D,EAAAshL,KAAAkvB,EAEA,IAAAC,EAAar0M,EAAQ,QAErB4D,EAAAwhL,MAAAivB,EAEA,IAAAC,EAAYt0M,EAAQ,QAEpB4D,EAAAgoD,KAAA0oJ,EAEA,IAAAC,EAAWv0M,EAAQ,QAEnB4D,EAAAwnC,IAAAmpK,EAwBA,IAAAC,EAAAL,EACAM,KACAn6K,EAAA4E,MAAA,uKAAA77B,GACAoxM,EAAApxM,GAAAi3B,EAAAj3B,KAEAO,EAAA4wM,eACA5wM,EAAAmwK,KAAA0gC,0BCtFA,IAAAzhB,EAAYhzL,EAAQ,QACpB00M,EAAiB10M,EAAQ,QAAkBwV,OAAA,sBAE3C5R,EAAA6/C,EAAAp5C,OAAAqyL,qBAAA,SAAA17H,GACA,OAAAgyH,EAAAhyH,EAAA0zI,yCCHA9wM,EAAAiuE,YAAA,EAEA,IAMAjmE,EANAotL,EAAWh5L,EAAQ,QAEnB03E,GAIA9rE,EAJAotL,IAIsCptL,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7E+oM,EAAa30M,EAAQ,QAIrB,IAAA40M,EAAAl9H,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,aAAoE35E,EAAQ,QAC5EuC,EAAA,SAAAqC,GACA,OAAAA,EAAAqgL,mBAWArhL,EAAA4V,SACAjW,OACAsxM,iBACA5wM,MAAAiW,QAAAtI,QACA4H,SAAA,GAEAgiC,WACAv3C,KAAA2N,OACA4H,QAAA,UAEAmiC,mBACA13C,KAAAuX,OACAhC,QAAA,GAEA4iC,aACAC,UACAlZ,QACA3pB,QAAA,GAEAxR,MAAAkS,QACA46L,aAAA56L,QACA6hC,aACA93C,KAAAuX,OACAhC,QAAA,IAEAu7L,cACA9wM,KAAAiW,QACAV,SAAA,GAEAw7L,eACA/wM,KAAAoG,OACAmP,QAAA,WACA,OACAiiC,iBAAA,MAMAlqC,KAAA,WACA,OACA0jM,YAAA,EACAC,iBAAA,KAKAl5L,OACAhU,OACAmtM,WAAA,EACAj5L,QAAA,SAAAlO,GACAvN,KAAAw0M,WAAAjnM,EACAvN,KAAAge,MAAA,QAAAzQ,KAIAinM,WAAA,SAAAjnM,GACAvN,KAAA0zE,WAGAnmE,EAAAvN,KAAA20M,eAAA30M,KAAA40M,gBACA50M,KAAAge,MAAA,QAAAzQ,MAIAwO,SACA84L,aAAA,WACA,IAAAh4L,EAAA7c,KAEA,IAAAA,KAAAk5E,YACAl5E,KAAAy0M,iBAAAz0M,KAAAy0M,kBAAAz0M,KAAA+6C,UACA,2CAAA4gB,KAAA37D,KAAAy0M,mBAAA,CAIA,IAAAhsM,EAAAzI,KAAAu0M,cACA34J,EAAA57C,KAAA80M,UAAA90M,KAAA80M,WAAA90M,KAAA47C,QAAA57C,KAAAye,MAAAm9B,OACAD,EAAA37C,KAAA+0M,aAAA/0M,KAAA+0M,cAAA/0M,KAAA27C,WAAA37C,KAAAye,MAAAk9B,WAEAA,GAAA37C,KAAA8Y,OAAA6iC,WAAA37C,KAAA8Y,OAAA6iC,UAAA,KACAA,EAAA37C,KAAA+0M,aAAA/0M,KAAA8Y,OAAA6iC,UAAA,GAAAq5J,KAGAp5J,GAAAD,IACA37C,KAAAq0M,cAAAr0M,KAAAi1M,YAAAr5J,GACA57C,KAAAs0M,cAAAzkM,SAAAG,KAAAC,YAAAjQ,KAAA80M,WACA90M,KAAAk1M,UAAAl1M,KAAAk1M,SAAA/1J,SACAn/C,KAAAk1M,SAAA/1J,UAGA12C,EAAAsyC,UAAA/6C,KAAAy0M,iBACAhsM,EAAAi6B,OAAA1iC,KAAA0iC,OACAj6B,EAAA6yC,YAAAt7C,KAAAs7C,YACAt7C,KAAAk1M,SAAA,IAAAf,EAAAx4J,EAAAC,EAAAnzC,GACAzI,KAAAk1M,SAAAp1J,SAAA,SAAA3hC,GACAtB,EAAAmB,MAAA,UAAAnB,GACAA,EAAAs4L,uBACAt4L,EAAAN,UAAAM,EAAA83L,gBAEA,mBAAAlsM,EAAAs3C,UACA//C,KAAAk1M,SAAAn1J,SAAAt3C,EAAAs3C,UAEA//C,KAAAk1M,SAAAh5J,QAAA3jC,MAAA64B,OAAA8iK,EAAAl9H,aAAAyC,aACAz5E,KAAA80M,UAAAl2L,iBAAA,QAAA9c,MAEA6yM,aAAA,WACA,IAAAO,EAAAl1M,KAAAk1M,SACAA,GACAA,EAAA34J,SACA24J,EAAAh5J,UACAg5J,EAAAh5J,QAAA3jC,MAAA64B,OAAA8iK,EAAAl9H,aAAAyC,eAGAz5E,KAAA60M,gBAGAO,UAAA,SAAAC,IAEAr1M,KAAAk1M,UAAAl1M,KAAAw0M,aAAAa,IACAr1M,KAAAk1M,SAAA/1J,UACAn/C,KAAAk1M,SAAA,OAEAN,cAAA,WACA50M,KAAAk1M,UACAl1M,KAAAm1M,wBAGAA,qBAAA,WACA,GAAAn1M,KAAAo0M,gBAAA,CACA,IAMAr5J,EAAA/6C,KAAAk1M,SAAAh5J,QAAAgf,aAAA,eAAAr6D,MAAA,QACAuoC,GANAp3B,IAAA,SACA8C,OAAA,MACAjP,KAAA,QACAC,MAAA,QAGAi1C,GACA/6C,KAAAk1M,SAAAh5J,QAAA3jC,MAAA67L,gBAAA,iBAAAp0M,KAAAo0M,gBAAAp0M,KAAAo0M,iBAAA,gBAAAt0M,QAAAi7C,IAAA,YAAA3R,IAAA,YAEA6rK,YAAA,SAAAxuK,GACA,IAAA4W,OAAA,EACA,IAAAr9C,KAAAkyH,SAAA,CAMA,QAAAvlH,KAFA3M,KAAAkyH,UAAA,EAEAzrF,EAAA0Z,WACA,UAAAwb,KAAAl1B,EAAA0Z,WAAAxzC,GAAA/J,MAAA,CACAy6C,EAAA5W,EAAA0Z,WAAAxzC,GAAA/J,KACA,MAIA,IAAAg+C,EAAA/wC,SAAAC,cAAA,OAEAutC,GACAuD,EAAAla,aAAA2W,EAAA,IAEAuD,EAAAla,aAAA,cACAka,EAAAG,UAAA,gBACAta,EAAAx2B,YAAA2wC,MAIA5gC,cAAA,WACAhgB,KAAAo1M,WAAA,GACAp1M,KAAA80M,WAAA90M,KAAA80M,UAAAvoK,aAAA18B,SAAAG,OACAhQ,KAAA80M,UAAAh2L,oBAAA,QAAAhd,GACA+N,SAAAG,KAAAw8B,YAAAxsC,KAAA80M,aAMAQ,YAAA,WACAt1M,KAAAoY,SAAA4H,cAAA,GAAAtU,KAAA1L,gCCzMA,IAAA65B,EAAat6B,EAAQ,QAErBmpK,EAA0BnpK,EAAQ,QAElCsjE,EAAiBtjE,EAAQ,QAEzB4wE,EAA2B5wE,EAAQ,QAEnColL,EAAYplL,EAAQ,QAEpB8rM,EAAc9rM,EAAQ,QAEtB8rM,EAAAvoI,cACA3/D,EAAA2/D,cAAAuoI,EAAAvoI,cAEA,IAAAyyI,EAAuBh2M,EAAQ,QAE/Bi2M,EAAAD,EAAAC,gBACAC,EAAAF,EAAAE,mBACAntI,EAAAitI,EAAAjtI,oBAEAotI,EAA0Bn2M,EAAQ,QAElC4D,EAAAwyM,mBAAAD,EAEA,IAAAE,EAAwBr2M,EAAQ,QAEhC4D,EAAAglL,iBAAAytB,EAEA,IAAAC,EAAct2M,EAAQ,QAEtB4D,EAAAsvL,aAAAojB,EAAApjB,aAoCA,IAAAxmI,GACAwpJ,qBACAD,kBACAltI,uBAiDAnlE,EAAAw3L,WA7DA,SAAAn/J,GACA,OAAAktI,EAAAltI,EAAAqtI,YAAArtI,IA6DAr4B,EAAA8oD,YACA9oD,EAAA2yM,YAjCA,SAAA99C,EAAA/6I,GACA,IAAAoZ,EAAApZ,EAEA0nK,EAAAtY,WAAApvJ,KACAoZ,EAAA,IAAAsuJ,EAAA1nK,GACA4c,EAAA8N,MAAAtR,EAAA85C,IAGA,IAAA5+D,EAAAsxD,EAAAM,mBAAA9sC,GAGA,OAFA9kB,EAAA4nC,UAAA6+G,EAAA,GAAAA,EAAA,IACAn1F,EAAAQ,gBAAA9xD,EAAA8kB,GACA9kB,GAuBApO,EAAA4yM,4BAPA,SAAApxB,GACA9qJ,EAAA8N,MAAAg9I,EAAAx0G,0BCpHA,IAAAtpC,EAAmBtnC,EAAQ,QAI3By2M,EAFoBz2M,EAAQ,QAE5By2M,oBAEAC,EAAkB12M,EAAQ,QA6C1B,SAAA22M,EAAAhuK,GACA,OAAArB,EAAA6C,OAAAxB,GAGA/kC,EAAAmvJ,sBA7BA,SAAApqH,GAEA,OADAA,EAAAguK,EAAAhuK,GACA,SAAAiuK,EAAAl+K,GACA,OAAAg+K,EAAAG,iBAAAD,EAAAjuK,KA2BA/kC,EAAAuvJ,2BAvBA,SAAAxqH,EAAAmuK,GAEA,OADAnuK,EAAAguK,EAAAhuK,GACA,SAAAouK,GACA,IAAAh2K,EAAA,MAAA+1K,IAAAC,EACAC,EAAAj2K,EAAA4H,EAAAlvB,MAAAkvB,EAAAjvB,OACAs/B,EAAAjY,EAAA4H,EAAA7jC,EAAA6jC,EAAA3jC,EACA,OAAAg0C,KAAAg+J,GAAA,MAkBApzM,EAAAqvJ,yBAdA,SAAAtqH,EAAAtkC,EAAA4yM,GAEA,OADAtuK,EAAAguK,EAAAhuK,GACA,SAAA/jC,EAAAsyM,EAAAx+K,GACA,OAAAiQ,EAAAwC,QAAA+rK,EAAA,GAAAA,EAAA,MAAAT,EAAA7xM,EAAAP,EAAA4yM,2BC9CAj3M,EAAQ,QAYR,IAXA,IAAAilD,EAAajlD,EAAQ,QACrBwsM,EAAWxsM,EAAQ,QACnBm3M,EAAgBn3M,EAAQ,QACxBo3M,EAAoBp3M,EAAQ,OAARA,CAAgB,eAEpCq3M,EAAA,wbAIA/1M,MAAA,KAEAE,EAAA,EAAeA,EAAA61M,EAAA31M,OAAyBF,IAAA,CACxC,IAAA40G,EAAAihG,EAAA71M,GACA81M,EAAAryJ,EAAAmxD,GACAn+D,EAAAq/J,KAAA32M,UACAs3C,MAAAm/J,IAAA5K,EAAAv0J,EAAAm/J,EAAAhhG,GACA+gG,EAAA/gG,GAAA+gG,EAAA7qM,6BCjBA,IAAAguB,EAAat6B,EAAQ,QAErB4rD,EAAW5rD,EAAQ,QA+BnB8oE,EAAA,SAAAhwC,EAAA9mB,EAAA85C,EAAAC,EAAAl9C,GACA+8C,EAAAz/C,KAAA1L,KAAAq4B,EAAA9mB,EAAA85C,GAUArrD,KAAAwD,KAAA8nD,GAAA,QASAtrD,KAAAoO,YAAA,UAGAi6D,EAAAnoE,WACAC,YAAAkoE,EAKAz7D,MAAA,EAQAw8D,gBAAA,KAMA7xC,MAAA,KACAsF,aAAA,WACA,IAAAzuB,EAAApO,KAAAoO,SACA,cAAAA,GAAA,WAAAA,GAWAuoB,gBAAA,SAAA85C,GACA,IAAAkG,EAAA32E,KAAA87B,YAIA,OAHA66C,EAAA,GAAA32E,KAAA62B,cAAA8/C,EAAA,IACAA,EAAA,GAAA32E,KAAA62B,cAAA8/C,EAAA,IACAlG,GAAAkG,EAAA,GAAAA,EAAA,IAAAA,EAAApvD,UACAovD,GAEAjgD,aAAA,WACA12B,KAAA2F,KAAA+wB,gBAMA0T,YAAA,SAAAC,EAAAq7J,GACA,OAAA1lM,KAAA+jE,YAAA/jE,KAAA2jE,aAAAt5B,EAAA,MAAArqC,KAAAq4B,IAAA,MAAAqtK,IASA/hI,aAAA,KAQA9sC,cAAA,MAEAgD,EAAA2xB,SAAA6c,EAAAld,GACA,IAAAloD,EAAAolE,EACAnlE,EAAAC,QAAAF,wBC9HA,IAAA42B,EAAat6B,EAAQ,QA0BrB0D,GAMAopL,kBAAA,SAAAvwH,GACA97D,KAAA82M,YAAAj9K,EAAA/tB,QAAAgwD,KAAAx5D,WACAtC,KAAA+2M,iBAAAl9K,EAAApU,OAAAq2C,MAAA,SAAAk7I,EAAAz2M,GAEA,OADAy2M,EAAAhyJ,IAAAzkD,EAAAqC,KAAArC,GACAy2M,GACKn9K,EAAAk7B,kBAWL+tH,OAAA,SAAAlgL,EAAAlB,GACA,IAAAnB,EAAA,MAAAmB,EAAA1B,KAAA82M,YAAAp1M,GAAA1B,KAAA+2M,iBAAA/yM,IAAApB,GAGA,WAFA5C,KAAAgE,IAAA,iBAGAhE,KAAA+2M,iBAAAt4K,KAAA,SAAAl+B,GACAA,EAAAmqB,UAAA,IAIAnqB,MAAAmqB,UAAA,IAUAusL,SAAA,SAAAr0M,EAAAlB,GACA,IAAAnB,EAAA,MAAAmB,EAAA1B,KAAA82M,YAAAp1M,GAAA1B,KAAA+2M,iBAAA/yM,IAAApB,GAGArC,MAAAmqB,UAAA,IAUAwsL,eAAA,SAAAt0M,EAAAlB,GACA,IAAAnB,EAAA,MAAAmB,EAAA1B,KAAA82M,YAAAp1M,GAAA1B,KAAA+2M,iBAAA/yM,IAAApB,GAEA,SAAArC,EAEA,OADAP,KAAAO,EAAAmqB,SAAA,qBAAA9nB,EAAAlB,GACAnB,EAAAmqB,UAWA65C,WAAA,SAAA3hE,EAAAlB,GACA,IAAAnB,EAAA,MAAAmB,EAAA1B,KAAA82M,YAAAp1M,GAAA1B,KAAA+2M,iBAAA/yM,IAAApB,GACA,OAAArC,KAAAmqB,WAGAxnB,EAAAC,QAAAF,wBCvGA,IAAA42B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBqxJ,EAAkBrxJ,EAAQ,QAE1B02B,EAAe12B,EAAQ,QAEvBy2B,EAA0Bz2B,EAAQ,QAoBlCixM,GAAA,uCACA2G,GAAA,yBAQAC,EAAAnhL,EAAAvsB,QACAlG,KAAA,gBACAktM,iBAAA,uBAKAjtM,OAAA,SAAA4yB,EAAA1yB,EAAAC,EAAAggC,GACA5jC,KAAAg/B,MAAAkG,YACA,IAAAksH,EAAApxJ,KAAAqxJ,WAIA,GAHArxJ,KAAAqxJ,WAAA,IAAA72I,EAAAskB,MACA9+B,KAAAg/B,MAAAC,IAAAj/B,KAAAqxJ,YAEAh7H,EAAAryB,IAAA,SAIA,IAAAwkE,EAAAnyC,EAAAoyC,mBACAnxC,EAAAtB,EAAAsB,OAAAkxC,EAAAnyC,GACAu7H,EAAA,IAAAhB,EAAAv6H,EAAAiB,GACAuC,EAAA4E,KAAA+xK,EAAA5+C,EAAA3yH,IAAA2yH,GAEA5xJ,KAAAqxJ,WAAApyH,IAAA2yH,EAAAC,YAEAh4H,EAAA4E,KAAA04K,EAAA,SAAAv0M,GACAyzB,EAAAryB,IAAApB,EAAA,UACA5C,KAAA,IAAA4C,GAAAyzB,EAAAmyC,IAEKxoE,MACLwa,EAAAw3I,gBAAAZ,EAAApxJ,KAAAqxJ,WAAAh7H,GACA+gL,EAAAjwB,UAAAnnL,KAAA,SAAAq2B,EAAA1yB,EAAAC,EAAAggC,KAEAn/B,OAAA,WACAzE,KAAAq3M,iBAAA,MAQAzG,WAAA,SAAAv6K,EAAAmyC,GACA,IAAA/yC,EAAAY,EAAAZ,KAEA,IAAAA,EAAAlkB,MAAAihK,UAAA,CAIA,IAAAq+B,EAAAx6K,EAAAgJ,SAAA,aACAD,EAAAyxK,EAAAxxK,SAAA,aACAyxK,EAAA1xK,EAAAp7B,IAAA,SACA8sM,EAAAj3K,EAAA/tB,QAAAglM,SAaA,IAZA,IAAAnnI,EAAAnB,EAAAn6C,iBAAAk1C,UACA1mC,EAAApH,EAAAoH,eACAm0K,EAAA,EACAC,EAAAx7K,EAAAy7K,gBACAC,UAAAN,IAEAj2K,KACAC,KAGAja,EAAAwe,EAAA6D,eAEAliC,EAAA,EAAmBA,EAAAkwM,EAAAhwM,OAAwBF,IAAA,CAC3C,IAAAqwM,EAAA37K,EAAAoB,cAAAo6K,EAAAlwM,GAAAqhC,OAEAvF,GACAjC,EAAA,GAAAw2K,EACAx2K,EAAA,GAAA+uC,EAAAplE,EACAs2B,EAAA,GAAAu2K,EACAv2K,EAAA,GAAA8uC,EAAAplE,EAAAolE,EAAA1wD,SAEA2hB,EAAA,GAAA+uC,EAAAtlE,EACAu2B,EAAA,GAAAw2K,EACAv2K,EAAA,GAAA8uC,EAAAtlE,EAAAslE,EAAA3wD,MACA6hB,EAAA,GAAAu2K,GAGA,IAAA9zD,EAAA0zD,IAAAF,EAAA7vM,OACA29B,EAAAqyK,EAAAlwM,GAAA69B,UAEA5+B,KAAAqxJ,WAAApyH,IAAA,IAAAzkB,EAAAqyD,KAAAryD,EAAAwe,sBACAs+K,KAAA,MAAA14K,EAAA,QAAAqyK,EAAAlwM,GAAA69B,UAAA,KACA7W,OACA0oB,GAAA7V,EAAA,GACA8V,GAAA9V,EAAA,GACAiT,GAAAhT,EAAA,GACAiT,GAAAjT,EAAA,IAEAtiB,MAAAshB,EAAAmJ,UACAE,OAAA4tK,EAAAxzD,IACS18H,GACTujB,QAAA,SAUAozK,WAAA,SAAAlhL,EAAAmyC,GACA,IAAA/yC,EAAAY,EAAAZ,KAEA,IAAAA,EAAAlkB,MAAAihK,UAAA,CAIA,IAAAglC,EAAAnhL,EAAAgJ,SAAA,aACAC,EAAAk4K,EAAAn4K,SAAA,aACAo4K,EAAAn4K,EAAAt7B,IAAA,SACA2lE,EAAAnB,EAAAn6C,iBAAAk1C,UACA0tI,EAAAx7K,EAAAy7K,gBACAC,UAAAqG,EACA9R,OAAA,IAGA,GAAAuL,EAAAhwM,OAAA,CAMA,IAAAy2M,EAAAD,EAAAx2M,OACA02M,EAAA33M,KAAAq3M,iBACAO,EAAA/9K,EAAAk7B,gBACAuoF,EAAA,EAEA,GAAAq6D,EACA,QAAA52M,EAAA,EAAqBA,EAAAkwM,EAAAhwM,OAAwBF,IAAA,CAC7C,IAAA82M,EAAAF,EAAA3zM,IAAAitM,EAAAlwM,GAAA69B,WAEA,SAAAi5K,EAAA,CACAv6D,GAAAu6D,GAAAH,EAAA,GAAA32M,GAAA22M,EACA,OAKA,IAAAp4I,EAAA7pC,EAAAoB,cAAAo6K,EAAA,GAAA7uK,OACAvhB,EAAAye,EAAAmE,eACAg0K,EAAA59K,EAAA/tB,QAAA2rM,SAEA,IAAA12M,EAAA,EAAmBA,EAAAkwM,EAAAhwM,OAAwBF,IAAA,CAC3C,IACAsD,EACAE,EACAyU,EACAC,EAJAm4L,EAAA37K,EAAAoB,cAAAo6K,EAAAlwM,GAAAqhC,OAMA3M,EAAAoH,gBACAx4B,EAAAi7D,EACA/6D,EAAAolE,EAAAplE,EACAyU,EAAAo4L,EAAA/sM,EACA4U,EAAA0wD,EAAA1wD,OACAqmD,EAAAj7D,EAAA2U,IAEA3U,EAAAslE,EAAAtlE,EACAE,EAAA+6D,EACAtmD,EAAA2wD,EAAA3wD,MAEAsmD,EAAA/6D,GADA0U,EAAAm4L,EAAA7sM,IAIA,IAAAq6B,EAAAqyK,EAAAlwM,EAAA,GAAA69B,UACA,MAAAA,GAAAg5K,EAAA5yJ,IAAApmB,EAAA0+G,GAEAt9I,KAAAqxJ,WAAApyH,IAAA,IAAAzkB,EAAAyiB,MACAq6K,KAAA,MAAA14K,EAAA,QAAAA,EAAA,KACA7W,OACA1jB,IACAE,IACAyU,QACAC,UAEAV,MAAAshB,EAAAmJ,UACAtrB,KAAA+/L,EAAAn6D,IACSz8H,GACTsjB,QAAA,KAGAm5G,KAAA,GAAAo6D,EAGA13M,KAAAq3M,iBAAAO,OAGAR,EAAA1tM,QACAlG,KAAA,UAEA4zM,EAAA1tM,QACAlG,KAAA,8BCtOA,IAAAu9K,EAAA79K,EAAAC,SAA6Bm5D,QAAA,SAC7B,iBAAAw7I,UAAA/2B,yBCDA,IAAAlnJ,EAAat6B,EAAQ,QAErBonC,EAAapnC,EAAQ,QAErBw4M,EAAiBx4M,EAAQ,QAEzBy4M,EAAez4M,EAAQ,QAEvBib,EAAcjb,EAAQ,QAItB6K,EAFc7K,EAAQ,QAEtB6K,MAwBA6tM,GAAA,yBAEA,SAAAC,EAAAC,GACA,UAAAA,EAAA,OAOA,SAAA1lB,EAAA7vL,EAAAgwL,EAAAtyJ,GACA,IAAAn6B,EAAAysL,EAAA1+H,cAAA5zB,EAAA,SACAwvC,EAAA8iH,EAAA1+H,cAAA5zB,EAAA19B,GACAqsB,EAAA2jK,EAAA1+H,cAAA5zB,EAAA19B,EAAA,QAEA,GAAAktE,GAAA,SAAAA,EAAA,CAIAj2C,EAAA/tB,QAAAmjB,KACAA,SAGA,IAAA20K,EAAAmU,EAAAtlB,aAAA3iH,GAAA7gD,EAAA,MAAAA,EAAA,KAAAA,EAAA,GAAAA,EAAA,GAAA9oB,GAEA,OADAy9L,EAAAhhM,OACAghM,GAWA,SAAAwU,EAAAv/K,EAAAuE,GACA,IAAAxC,EAAAwC,EAAA,GACAvC,EAAAuC,EAAA,GACA62J,EAAA72J,EAAA,GACAvE,EAAA4X,GAAA7V,EAAA,GACA/B,EAAA6X,GAAA9V,EAAA,GACA/B,EAAAgV,GAAAhT,EAAA,GACAhC,EAAAiV,GAAAjT,EAAA,GACAhC,EAAAzU,QAAA,EAEA6vK,GACAp7J,EAAA2rK,KAAAvQ,EAAA,GACAp7J,EAAA4rK,KAAAxQ,EAAA,KAEAp7J,EAAA2rK,KAAA/1B,IACA51I,EAAA4rK,KAAAh2B,KA8GA,SAAA5hG,EAAA+lH,EAAAtyJ,EAAAwvI,GACAt1J,EAAAskB,MAAApzB,KAAA1L,MAEAA,KAAAq4M,YAAAzlB,EAAAtyJ,EAAAwvI,GAGA,IAAAwoC,EAAAzrI,EAAA3sE,UAEAo4M,EAAAhhB,aAlHA,WACA,IACAihB,EADAv4M,KACAw4M,YAAA,cACAC,EAFAz4M,KAEAw4M,YAAA,YACA/lM,EAHAzS,KAGAw4M,YAAA,SAEA,GAAAD,GAAAE,IAAAhmM,EAAAuxB,OAAA,CAOA,IAHA,IAAA00K,EAAA,EACAnsK,EAAAvsC,KAAAupC,OAEAgD,GACAA,EAAAh7B,QACAmnM,GAAAnsK,EAAAh7B,MAAA,IAGAg7B,IAAAhD,OAGA,IAAA9jC,EApBAzF,KAoBAw4M,YAAA,QAGA,GAAAx4M,KAAAk1C,SAAAzvC,EAAAyvC,QAAA,CAIA,IAAA9wB,EAAA3e,EAAAsiB,MAAA3D,QACAu0L,EAAAlzM,EAAAmzM,QAAA,GACAC,EAAApzM,EAAAmzM,QAAAx0L,GACAqK,EAAAkY,EAAAh9B,OAAAkvM,EAAAF,GAGA,GAFAhyK,EAAAgpC,UAAAlhD,KAEA8pL,EAAA,CACAA,EAAAx1M,KAAA,WAAA41M,GACA,IAAAG,EAAArzM,EAAAszM,UAAA,GACAR,EAAAx1M,KAAA,WAAAgF,KAAAgwB,GAAA,EAAAhwB,KAAAkmC,MAAA6qK,EAAA,GAAAA,EAAA,KACAP,EAAAx1M,KAAA,SAAA21M,EAAAt0L,EAAAs0L,EAAAt0L,IAUA,GAPAq0L,IACAA,EAAA11M,KAAA,WAAA81M,GACAC,EAAArzM,EAAAszM,UAAA,GACAN,EAAA11M,KAAA,YAAAgF,KAAAgwB,GAAA,EAAAhwB,KAAAkmC,MAAA6qK,EAAA,GAAAA,EAAA,KACAL,EAAA11M,KAAA,SAAA21M,EAAAt0L,EAAAs0L,EAAAt0L,MAGA3R,EAAAuxB,OAAA,CAEA,IAAAoS,EACAV,EACAC,EAHAljC,EAAA1P,KAAA,WAAA81M,GAIA,IAAAxiK,EAAA,EAAAqiK,EAEA,WAAAjmM,EAAAumM,WACA5iK,GAAA3nB,EAAA,GAAA4nB,EAAAwiK,EAAA,GAAApqL,EAAA,GAAA4nB,EAAAwiK,EAAA,IACAnjK,EAAAjnB,EAAA,aAAAA,EAAA,wBACAknB,EAAAlnB,EAAA,YAAAA,EAAA,8BAEA,cAAAhc,EAAAumM,WAAA,CACA,IAAAC,EAAA70L,EAAA,EAEAg6B,IADA06J,EAAArzM,EAAAszM,UAAAE,IACA,IAAAH,EAAA,IACA1T,EAAA3/L,EAAAmzM,QAAAK,GAEA76J,EAAA,OACAA,EAAA,IAAAA,EAAA,GACAA,EAAA,IAAAA,EAAA,IAGAhI,GAAAgvJ,EAAA,GAAAhnJ,EAAA,GAAA/H,EAAA+uJ,EAAA,GAAAhnJ,EAAA,GAAA/H,GACAX,EAAA,SACAC,EAAA,SACA,IAAA9d,GAAA9vB,KAAAkmC,MAAA6qK,EAAA,GAAAA,EAAA,IAEAD,EAAA,GAAAF,EAAA,KACA9gL,EAAA9vB,KAAAgwB,GAAAF,GAGAplB,EAAA1P,KAAA,WAAA80B,QAGAue,IAAA3nB,EAAA,GAAA4nB,EAAAsiK,EAAA,IAAAlqL,EAAA,GAAA4nB,EAAAsiK,EAAA,IACAjjK,EAAAjnB,EAAA,cAAAA,EAAA,uBACAknB,EAAAlnB,EAAA,eAAAA,EAAA,sBAGAhc,EAAA1P,MACAwV,OAEAo9B,kBAAAljC,EAAAymM,iBAAAvjK,EACAD,UAAAjjC,EAAA0mM,aAAAzjK,GAEAtnC,SAAAgoC,EACA7kC,OAAAmnM,WAqBAJ,EAAAD,YAAA,SAAAzlB,EAAAtyJ,EAAAwvI,GACA,IAAAt0I,EAAAo3J,EAAAvuJ,UAEA5+B,EAlJA,SAAA23B,GACA,IAAA33B,EAAA,IAAAuyM,GACAp1M,KAAA,SAGA,OADAw1M,EAAA3yM,EAAAsiB,MAAAqV,GACA33B,EA6IAotL,CADAD,EAAApzJ,cAAAc,IAEA76B,EAAAsiB,MAAA3D,QAAA,EACA5J,EAAAgiB,UAAA/2B,GACAsiB,OACA3D,QAAA,IAEGoX,EAAA8E,GACHtgC,KAAAi/B,IAAAx5B,GACA,IAAAgN,EAAA,IAAA+H,EAAA0wB,MACAtoC,KAAA,UAEA5C,KAAAi/B,IAAAxsB,GACAonB,EAAA4E,KAAAw5K,EAAA,SAAAE,GACA,IAAAnpL,EAAAyjK,EAAA0lB,EAAAvlB,EAAAtyJ,GAIAtgC,KAAAi/B,IAAAjQ,GACAhvB,KAAAk4M,EAAAC,IAAAvlB,EAAA1+H,cAAA5zB,EAAA63K,IACGn4M,MAEHA,KAAAo5M,iBAAAxmB,EAAAtyJ,EAAAwvI,IAGAwoC,EAAAr3K,WAAA,SAAA2xJ,EAAAtyJ,EAAAwvI,GACA,IAAAt0I,EAAAo3J,EAAAvuJ,UACA5+B,EAAAzF,KAAAw4M,YAAA,QACA1yI,EAAA8sH,EAAApzJ,cAAAc,GACA//B,GACAwnB,UAEAqwL,EAAA73M,EAAAwnB,MAAA+9C,GACAtrD,EAAAoqB,YAAAn/B,EAAAlF,EAAAi7B,EAAA8E,GACAzG,EAAA4E,KAAAw5K,EAAA,SAAAE,GACA,IAAAroI,EAAA8iH,EAAA1+H,cAAA5zB,EAAA63K,GACApuM,EAAAmuM,EAAAC,GAEA,GAAAn4M,KAAA+J,KAAA+lE,EAAA,CACA9vE,KAAAyE,OAAAzE,KAAAw4M,YAAAL,IACA,IAAAnpL,EAAAyjK,EAAA0lB,EAAAvlB,EAAAtyJ,GACAtgC,KAAAi/B,IAAAjQ,GAGAhvB,KAAA+J,GAAA+lE,GACG9vE,MAEHA,KAAAo5M,iBAAAxmB,EAAAtyJ,EAAAwvI,IAGAwoC,EAAAc,iBAAA,SAAAxmB,EAAAtyJ,EAAAwvI,GACA,IAAAt0I,EAAAo3J,EAAAvuJ,UACA5+B,EAAAzF,KAAAw4M,YAAA,QACA53L,EAAAkvJ,KAAAlvJ,UACAy4L,EAAAvpC,KAAAupC,eACAtzI,EAAA+pG,KAAA/pG,WACA6pG,EAAAE,KAAAF,gBAEA,IAAAE,GAAA8iB,EAAA5iH,cAAA,CACA,IAAA9K,EAAA0tH,EAAAztH,aAAA7kC,GACA1f,EAAAskD,EAAA7lC,SAAA,aAAA4D,eACAo2K,EAAAn0I,EAAA7lC,SAAA,sBAAA4D,eACA8iC,EAAAb,EAAA7lC,SAAA,SACAuwI,EAAA1qG,EAAA7lC,SAAA,kBAGA,IAAAoC,EAAAmxJ,EAAA1+H,cAAA5zB,EAAA,SACAg5K,EAAAz/K,EAAA0/K,UAAA3mB,EAAA1+H,cAAA5zB,EAAA,WAAA1f,EAAA/N,QAAA,GACApN,EAAAs9B,SAAAlJ,EAAAmJ,UACAqM,eAAA,EACA33B,KAAA,OACAwrB,OAAAzB,EACA5uB,QAAAymM,GACG14L,IACHnb,EAAA8/D,WAAA8zI,EAEAx/K,EAAA4E,KAAAw5K,EAAA,SAAAE,GACA,IAAAnpL,EAAAhvB,KAAAw4M,YAAAL,GAEAnpL,IACAA,EAAAkkK,SAAAzxJ,GACAzS,EAAAstB,UACAzpC,QAAAymM,MAGGt5M,MACH,IAGAw5M,EACAC,EAJAC,EAAA3zI,EAAAV,WAAA,QACAs0I,EAAA/pC,EAAAvqG,WAAA,QACA5yD,EAAAzS,KAAAw4M,YAAA,SAIA,IAAAkB,GAAAC,KACAH,EAAA/3K,GAAA,OAGA,OAFAg4K,EAAAj+K,EAAAo+K,kBAAAt5K,EAAA,SAAAsyJ,EAAAvwK,YAEA,CACA,IAAAw3L,EAAAr+K,EAAAs+K,YAAAx5K,GACAm5K,EAAA,MAAAI,EAAAjnB,EAAAzuH,QAAA7jC,GAAAge,SAAAu7J,GAAAzvM,EAAAyvM,KAIA,IAAAE,EAAAL,EAAAD,EAAA,KACAO,EAAAL,EAAA9/K,EAAAogL,UAAAz+K,EAAAo+K,kBAAAt5K,EAAA,WAAAsyJ,EAAAvwK,UAAAo3L,GAAA,KACAS,EAAAznM,EAAA8F,MAGA,MAAAwhM,GAAA,MAAAC,IACAx/L,EAAA2/L,aAAA1nM,EAAA8F,MAAAwtD,GACA10B,KAAA0oK,IAEAxzI,UAAAizI,IAEA/mM,EAAA0mM,YAAAe,EAAAxkK,UACAjjC,EAAAymM,gBAAAgB,EAAAvkK,kBAEAljC,EAAAumM,WAAAjzI,EAAA/hE,IAAA,uBAKAyO,EAAA8yD,WAFA,MAAAy0I,GAGA3oK,KAAA2oK,EACA1iK,SAAAs4H,EAAAna,cAAA,GAGA7/G,UAAAg6H,EAAAvqG,WAAA,aACApvB,WAAA25H,EAAAvqG,WAAA,cACAxvC,SAAA+5I,EAAAvqG,WAAA,YACAvvB,WAAA85H,EAAAvqG,WAAA,gBAIAh0B,KAAA,MAIA5+B,EAAAuxB,QAAA01K,IAAAC,EACAn/L,EAAAmrD,cAAA3lE,OAGAs4M,EAAA30K,UAAA,WACA3jC,KAAAiS,QAAA,aAGAqmM,EAAAp0K,SAAA,WACAlkC,KAAAiS,QAAA,WAGAqmM,EAAA9iJ,aAAA,SAAAo9H,EAAAtyJ,GACAtgC,KAAAo4M,cAAAxlB,EAAApzJ,cAAAc,KAGAg4K,EAAAF,cAAA,SAAAh7K,GACA,IAAAg9K,EAAAp6M,KAAAw4M,YAAA,QACAJ,EAAAgC,EAAAryL,MAAAqV,GACAg9K,EAAAh5M,SAGAy4B,EAAA2xB,SAAAqhB,EAAAryD,EAAAskB,OACA,IAAA77B,EAAA4pE,EACA3pE,EAAAC,QAAAF,wBClXA,IAAAo3M,EAAA,SAAAvoK,EAAAwoK,GAGAt6M,KAAA8xC,QACA9xC,KAAAs6M,SAEAt6M,KAAAwD,KAAA,WAGA62M,EAAAn6M,UAAAq6M,iBAAA,SAAA10K,GACA,OAAAA,EAAA20K,cAAAx6M,KAAA8xC,MAAA9xC,KAAAs6M,QAAA,WAGA,IAAAr3M,EAAAo3M,EACAn3M,EAAAC,QAAAF,wBCdA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBA,EAAQ,QAERA,EAAQ,QAER,IAAAk7M,EAA6Bl7M,EAAQ,QAErCm7M,EAAgBn7M,EAAQ,QAExBo7M,EAAgBp7M,EAAQ,QAExBo6L,EAAiBp6L,EAAQ,QAoBzBk7M,EAAA,QACAj3M,KAAA,kBACA+zD,MAAA,mBACA7oB,OAAA,mBAEAlrC,KAAA,YACA+zD,MAAA,cACA7oB,OAAA,WAEAlrC,KAAA,cACA+zD,MAAA,gBACA7oB,OAAA,cAEAtrC,EAAAw4D,eAAA8+I,EAAA,QACAt3M,EAAAm6D,eAAA1jC,EAAA0Q,MAAAowK,EAAA,QACAv3M,EAAAk4D,kBAAAq+H,EAAA,8BCjDA,IAAAv2L,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAAq7M,EAAmBr7M,EAAQ,QAE3B2zE,EAAgB3zE,EAAQ,QAsBxB6D,EAAAk4D,kBAAAs/I,GACA1nI,EAAA2nI,yBAAA,oBAEA,sCCnCA,IAAAz3M,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAER,IAAAm7M,EAAgBn7M,EAAQ,QAExBu7M,EAAmBv7M,EAAQ,QAE3Bo6L,EAAiBp6L,EAAQ,QAoBzB6D,EAAAw4D,eAAA8+I,EAAA,WACAt3M,EAAAm6D,eAAAu9I,GACA13M,EAAAk4D,kBAAAq+H,EAAA,iCChCA,IAAAn/K,EAAcjb,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QA8BrB,SAAA46B,EAAAy4J,EAAAtyJ,EAAAwvI,GACAt1J,EAAAskB,MAAApzB,KAAA1L,MAEAA,KAAA+6M,gBAAAnoB,EAAAtyJ,EAAAwvI,GAGA,IAAAkrC,EAAA7gL,EAAAj6B,UAEA86M,EAAAD,gBAAA,SAAAnoB,EAAAtyJ,EAAAwvI,GAEA,IAAA1yI,EAAAw1J,EAAApzJ,cAAAc,GACA76B,EAAA,IAAA+U,EAAA2f,UACApS,OACAqV,YAGAp9B,KAAAi/B,IAAAx5B,GAEAzF,KAAAo5M,iBAAAxmB,EAAAtyJ,EAAAwvI,IAGAkrC,EAAA/5K,WAAA,SAAA2xJ,EAAAtyJ,EAAAwvI,GACA,IAAAt0I,EAAAo3J,EAAAvuJ,UACA5+B,EAAAzF,KAAAilE,QAAA,GACA1kE,GACAwnB,OACAqV,OAAAw1J,EAAApzJ,cAAAc,KAGA9lB,EAAAoqB,YAAAn/B,EAAAlF,EAAAi7B,EAAA8E,GAEAtgC,KAAAo5M,iBAAAxmB,EAAAtyJ,EAAAwvI,IAGAkrC,EAAA5B,iBAAA,SAAAxmB,EAAAtyJ,EAAAwvI,GACA,IAAArqK,EAAAzF,KAAAilE,QAAA,GACAC,EAAA0tH,EAAAztH,aAAA7kC,GACAmB,EAAAmxJ,EAAA1+H,cAAA5zB,EAAA,SACA1f,EAAAkvJ,KAAAlvJ,UACAy4L,EAAAvpC,KAAAupC,eAEAvpC,IAAA8iB,EAAA5iH,gBACApvD,EAAAskD,EAAA7lC,SAAA,aAAA4D,eACAo2K,EAAAn0I,EAAA7lC,SAAA,sBAAA4D,gBAGAx9B,EAAAs9B,SAAAlJ,EAAAmJ,UACAqM,eAAA,EACA33B,KAAA,OACAwrB,OAAAzB,GACG7gB,IACHnb,EAAA8/D,WAAA8zI,EACA7+L,EAAAmrD,cAAA3lE,OAGAg7M,EAAAxlJ,aAAA,SAAAo9H,EAAAtyJ,GACAtgC,KAAAilE,QAAA,GACA1jC,SAAA,SAAAqxJ,EAAApzJ,cAAAc,KAGAzG,EAAA2xB,SAAArxB,EAAA3f,EAAAskB,OACA,IAAA77B,EAAAk3B,EACAj3B,EAAAC,QAAAF,wBC9FA,IAAAuX,EAAcjb,EAAQ,QAEtB07M,EAAgB17M,EAAQ,QA8BxB,SAAAotE,EAAAy1H,GACApiM,KAAAk7M,MAAA9Y,GAAA6Y,EACAj7M,KAAAg/B,MAAA,IAAAxkB,EAAAskB,MAGA,IAAAq8K,EAAAxuI,EAAAzsE,UAkGA,SAAAwvK,EAAAkjB,GACA,IAAAvuJ,EAAAuuJ,EAAAvuJ,UACA,OACAzjB,UAAAyjB,EAAAhF,SAAA,aAAA4D,eACAo2K,eAAAh1K,EAAAhF,SAAA,sBAAA4D,eACA8iC,WAAA1hC,EAAAhF,SAAA,SACAuwI,gBAAAvrI,EAAAhF,SAAA,mBAmBA,SAAA+7K,EAAA19K,GACA,OAAAjzB,MAAAizB,EAAA,KAAAjzB,MAAAizB,EAAA,IAGA,SAAA29K,EAAAxpH,GACA,OAAAupH,EAAAvpH,EAAA,MAAAupH,EAAAvpH,EAAA,IA9HAspH,EAAAlrC,aAAA,WACA,UAOAkrC,EAAAl6K,WAAA,SAAA2xJ,GACA,IAAA5lH,EAAAhtE,KACAg/B,EAAAguC,EAAAhuC,MACAs8K,EAAAtuI,EAAAuuI,UACAvuI,EAAAuuI,UAAA3oB,EAGA0oB,GACAt8K,EAAAkG,YAGA,IAAA4qI,EAAAJ,EAAAkjB,GACAA,EAAAtuJ,KAAAg3K,GAAAr8K,IAAA,SAAAqB,IASA,SAAA0sC,EAAA4lH,EAAAtyJ,EAAAwvI,GAGA,IAAAurC,EAFAzoB,EAAApzJ,cAAAc,IAGA,OAGA,IAAA7/B,EAAA,IAAAusE,EAAAkuI,MAAAtoB,EAAAtyJ,EAAAwvI,GACA8iB,EAAA/xJ,iBAAAP,EAAA7/B,GACAusE,EAAAhuC,MAAAC,IAAAx+B,GAjBA+6M,CAAAxuI,EAAA4lH,EAAAtyJ,EAAAwvI,KACGvzH,OAAA,SAAA0qB,EAAAC,IAmBH,SAAA8F,EAAAsuI,EAAAG,EAAAv0I,EAAAD,EAAA6oG,GACA,IAAA4rC,EAAAJ,EAAAx3K,iBAAAojC,GAEA,IAAAm0I,EAAAI,EAAAj8K,cAAAynC,IAEA,YADA+F,EAAAhuC,MAAAv6B,OAAAi3M,GAIAA,EAGAA,EAAAz6K,WAAAw6K,EAAAx0I,EAAA6oG,GAFA4rC,EAAA,IAAA1uI,EAAAkuI,MAAAO,EAAAx0I,EAAA6oG,GAKA2rC,EAAA56K,iBAAAomC,EAAAy0I,GACA1uI,EAAAhuC,MAAAC,IAAAy8K,GAjCAC,CAAA3uI,EAAAsuI,EAAA1oB,EAAA1rH,EAAAD,EAAA6oG,KACGrrK,OAAA,SAAA67B,GACHtB,EAAAv6B,OAAA62M,EAAAx3K,iBAAAxD,MACG6mC,WAiCHg0I,EAAA3lJ,aAAA,WACA,IAAAo9H,EAAA5yL,KAAAu7M,UAEA3oB,GAIAA,EAAAjyJ,kBAAA,SAAAlgC,EAAA6/B,GACA7/B,EAAA+0D,aAAAo9H,EAAAtyJ,IACGtgC,OAGHm7M,EAAAvtI,yBAAA,SAAAglH,GACA5yL,KAAAkwK,aAAAR,EAAAkjB,GACA5yL,KAAAu7M,UAAA,KACAv7M,KAAAg/B,MAAAkG,aAGAi2K,EAAAltI,kBAAA,SAAAF,EAAA6kH,GACA,SAAAziB,EAAA1vK,GACAA,EAAAm4D,UACAn4D,EAAA2vK,YAAA3vK,EAAA04D,eAAA,GAIA,QAAA74B,EAAAytC,EAAAvrE,MAAkC89B,EAAAytC,EAAA78C,IAAsBoP,IAAA,CAGxD,GAAA+6K,EAFAzoB,EAAApzJ,cAAAc,IAEA,CACA,IAAA7/B,EAAA,IAAAT,KAAAk7M,MAAAtoB,EAAAtyJ,EAAAtgC,KAAAkwK,cACAzvK,EAAAk4D,SAAAw3G,GACAnwK,KAAAg/B,MAAAC,IAAAx+B,GACAmyL,EAAA/xJ,iBAAAP,EAAA7/B,MAeA06M,EAAA12M,OAAA,WACAzE,KAAA47M,oBAEA57M,KAAA67M,aAAA,KACA77M,KAAAg/B,MAAAkG,aAGAi2K,EAAAS,kBAAA,WACA,IAAAxrC,EAAApwK,KAAA67M,aAEAzrC,GACAA,EAAA0rC,oBAYA,IAAA74M,EAAA0pE,EACAzpE,EAAAC,QAAAF,wBCzKA,IAAA42B,EAAat6B,EAAQ,QAErB4sD,EAAkB5sD,EAAQ,QAI1By+K,EAFwBz+K,EAAQ,QAEhCy+K,iBAoBA+9B,EAAA5vJ,EAAAziD,QACAlG,KAAA,qBACAixB,cAAA,wBAKAypJ,yBACAt7K,KAAA,OACAu7K,gBAAA,IAEAv7K,KAAA,QACAu7K,gBAAA,IAEAv7K,KAAA,SACAu7K,gBAAA,IAEAv7K,KAAA,UACAu7K,gBAAA,IAOAp8I,WAAA,KAKArN,eACAC,OAAA,EACAC,EAAA,EACAvG,iBAAA,cACA+vJ,iBAAA,EACAl7J,gBAAA,EAGAoU,OAAA,KAEA9kB,WACArM,MAAA,UAEA2sB,OAAA,UAEAwC,YAAA,EAGAvC,YAAA,UACAC,aAAA,WAEA1M,UACA9T,WACA8iB,YAAA,IAGA0mL,YAAA,KACAC,YAAA,KACAC,SAAA,KACA/tI,OAAA,EACAx0C,eAAA,IACAgwI,YAAA,IACAjwI,qBAAA,IACAyiL,qBAAA,MACAC,iBAAA,EACAxyC,gBAAA,SACA2U,kBAAA,KAOA89B,aAAA,WACA,cAEA9iL,cAAA,SAAA6E,EAAAttB,EAAAwrM,GACA,IAAA/0I,EAAAz2D,EAAA0uB,cAAApB,GACA,OAAAmpC,GAAA+0I,EAAAp0K,KAAAq/B,EAAAg1I,cAGA1iL,EAAA8N,MAAAo0K,EAAA/9B,GAAA,GACA,IAAA/6K,EAAA84M,EACA74M,EAAAC,QAAAF,wBC7GA,IAAAkpD,EAAkB5sD,EAAQ,QAE1BmpK,EAA0BnpK,EAAQ,QAoBlC0D,EAAAkpD,EAAAziD,QACAlG,KAAA,sBACAolK,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAA+kK,EAAA1oK,KAAA6oK,YAAA7oK,OAEAg6L,kBAAA,SAAAzyL,GACA,IAAA8zB,EAAAr7B,KAAAquB,iBAEA,GAAAgN,EAAA,CAEA,IAAAqC,EAAArC,EAAA4O,YAAA5O,EAAAmhL,UAAAj1M,IACAuJ,EAAA9Q,KAAAksB,UACAwW,EAAA5xB,EAAA84K,UAAA,UACA/3J,EAAA/gB,EAAA84K,UAAA,QAGA,OADAlsJ,EADArC,EAAAyB,cAAAD,eAAA,MACA6F,EAAA7Q,EAAA,EACA6L,EAGA,OAAA+wI,UAEA/5I,eACAC,OAAA,EAEAC,EAAA,EAEAvG,iBAAA,cACA+vJ,iBAAA,EAMAq+B,aAAA,EAEAC,YAAA,EAEAvuI,OAAA,EACAx0C,eAAA,IACAgwI,YAAA,IACAwyC,qBAAA,MAWA3pM,aACA8T,eAIApjB,EAAAC,QAAAF,sBC9EAC,EAAAC,QAAA,SAAAg/E,GACA,IACA,QAAAA,IACG,MAAAh+E,GACH,iCCJc5E,EAAQ,QA2BtBm8D,eAAA,uCAAA93B,EAAAjgC,GACA,IAAAg5M,EAAA/4K,EAAA+4K,gBACA,MAAAA,GAAAh5M,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA,SACAC,MAAAnyB,GACG,SAAA03J,GACHA,EAAAshB,mBAAAD,6BClCA,IAAA9iL,EAAat6B,EAAQ,QAErB+3B,EAAa/3B,EAAQ,QAErBm4C,EAAiBn4C,EAAQ,QAEzB49D,EAAuB59D,EAAQ,QAgC/B,SAAAs9M,EAAAC,EAAAn5M,EAAAC,GACA5D,KAAA6E,OAAAi4M,EAuWA,SAAAt1K,EAAAC,EAAA9jC,EAAA+jC,EAAAngC,GACA,IAAAu1M,EAAAp1K,EAAAo1K,cACAthL,EAAAkM,EAAAlM,YACAH,EAAAyhL,IAAAzuL,iBAAAmN,IAAAnN,iBAAA,KACA,OAAAgN,IAAAr7B,KAAAq7B,EAAAoM,GAAAlgC,GAAA,KAxWAs1M,EAAA38M,WACAC,YAAA08M,EACAr5M,KAAA,WACAu+B,YAAA,gBAEAu7B,kBAAA,WACA,QACA16D,KAAA,OACAY,KAAA,QACK,UAELu5M,aAAA,WACA,OAAA/8M,KAAAg9M,YAEA39K,SAAA,WACA,OAAAr/B,KAAA6E,QAEA0+D,QAAA,WACA,OAAAvjE,KAAA6nC,OAEAo1K,aAAA,WACA,OAAAj9M,KAAAk9M,KAEAC,cAAA,WACA,OAAAn9M,KAAAo9M,KAEA3a,UAAA,WACA,OAAAziM,KAAAg0J,SAYAqpD,kBAAA,WACA,OAAAr9M,KAAAs9M,iBAkBAC,YAAA,SAAAr7C,GAEA,IAAA39J,GADA29J,EAAAxqH,EAAAk0H,UAAA1J,IACA1C,cACA7yI,EAAAu1I,EAAA/C,WAAA,EACAxyI,IAAA,OAAAA,IACA,IAAA8B,EAAAyzI,EAAAnD,UACAtwI,IAAA,OAAAA,IACA,IAAAgyI,EAAAyB,EAAAtD,SAEA,OACAr6J,IACAooB,IACA8B,IACAgyI,IALAA,EAAA14J,KAAAY,KAAA83J,EAAA,EAAAzgK,KAAAq9M,qBAAA,GAMAr7M,KAAAkgK,EAAAL,UACA27C,aAAAj5M,EAAA,IAAAooB,EAAA,IAAA8B,EACAyzI,SAGAu7C,YAAA,SAAAv7C,EAAA9jH,GAGA,YAFAA,KAAA,GAGAp+C,KAAAu9M,YAAAr7C,KAGAA,EAAA,IAAAzyJ,KAAAzP,KAAAu9M,YAAAr7C,GAAAlgK,OACA07M,QAAAx7C,EAAAnD,UAAA3gH,GACAp+C,KAAAu9M,YAAAr7C,KAEA3lH,OAAA,SAAA54C,EAAAC,GACA5D,KAAAs9M,iBAAAt9M,KAAA6E,OAAAw6B,SAAA,YAAAr7B,IAAA,YACAhE,KAAAg0J,QAAAh0J,KAAA6E,OAAAb,IAAA,UACAhE,KAAA29M,WAAA39M,KAAA6E,OAAAw6B,SAAA,aAAAimC,eAAAvoC,WAAA,EACA/8B,KAAAg9M,WAAAh9M,KAAA49M,cAAA59M,KAAA69M,oBACA,IAAAC,EAAA99M,KAAAg9M,WAAAc,OAAA,EACAC,GAAA,kBAEAC,EAAAh+M,KAAA6E,OAAAb,IAAA,YAAA1B,QAEA27M,EAAAj+M,KAAA6E,OAAA+kE,qBAEAs0I,EAAA,eAAAl+M,KAAAg0J,SAAA8pD,EAAA,MAAAA,GACAjkL,EAAA4E,MAAA,cAAA6B,GACA69K,EAAAH,EAAA19K,KACA29K,EAAAF,EAAAz9K,IAAA09K,EAAA19K,GAAA49K,EAAA59K,MAGA,IAAA89K,GACAplM,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aAEAssJ,EAAAr+M,KAAA6nC,MAAAvQ,EAAAwrC,cAAAm7I,EAAAG,GAOA,SAAAD,EAAAH,EAAA19K,GACA,aAAA09K,EAAA19K,IAAA,SAAA09K,EAAA19K,GAPAzG,EAAA4E,MAAA,cAAA6B,GACA69K,EAAAH,EAAA19K,KACA09K,EAAA19K,GAAA+9K,EAAAN,EAAAz9K,IAAA49K,EAAA59K,MAQAtgC,KAAAk9M,IAAAc,EAAA,GACAh+M,KAAAo9M,IAAAY,EAAA,IAWA/zK,YAAA,SAAAn5B,EAAA40L,GACA7rK,EAAA/tB,QAAAgF,SAAA,IACA,MAAA40L,OAAA,GACA,IAAA4Y,EAAAt+M,KAAAu9M,YAAAzsM,GACAsvG,EAAApgH,KAAAg9M,WACA96C,EAAAo8C,EAAAd,aAEA,GAAA9X,KAAA4Y,EAAAt8M,MAAAo+G,EAAA59G,MAAAR,MAAAs8M,EAAAt8M,KAAAo+G,EAAAlvF,IAAAlvB,KA3JA,OA4JA,OAAAysK,SAGA,IAAA8vC,EAAAD,EAAA79C,IAEA+9C,EAAAx+M,KAAA49M,eAAAx9F,EAAA59G,MAAAR,KAAAkgK,IAAAs8C,QAEA,mBAAAx+M,KAAAg0J,SACAh0J,KAAA6nC,MAAAxjC,EAAAk6M,EAAAv+M,KAAAk9M,IAAAl9M,KAAAk9M,IAAA,EAAAl9M,KAAA6nC,MAAAtjC,EAAAi6M,EAAAx+M,KAAAo9M,IAAAp9M,KAAAo9M,IAAA,IAGAp9M,KAAA6nC,MAAAxjC,EAAAm6M,EAAAx+M,KAAAk9M,IAAAl9M,KAAAk9M,IAAA,EAAAl9M,KAAA6nC,MAAAtjC,EAAAg6M,EAAAv+M,KAAAo9M,IAAAp9M,KAAAo9M,IAAA,IAUAhzK,YAAA,SAAAC,GACA,IAAA63H,EAAAliK,KAAAy+M,YAAAp0K,GACA,OAAA63H,KAAAlgK,MAUA08M,WAAA,SAAA5tM,EAAA40L,GACA,IAAAr7J,EAAArqC,KAAAiqC,YAAAn5B,EAAA40L,GACA,OACAiZ,cACAt6M,EAAAgmC,EAAA,IAAArqC,KAAAk9M,IAAAl9M,KAAA29M,YAAA,EACAp5M,EAAA8lC,EAAA,IAAArqC,KAAAo9M,IAAAp9M,KAAA29M,YAAA,EACA3kM,MAAAhZ,KAAAk9M,IAAAl9M,KAAA29M,WACA1kM,OAAAjZ,KAAAo9M,IAAAp9M,KAAA29M,YAEA75L,OAAAumB,EACAu0K,IAAAv0K,EAAA,GAAArqC,KAAAk9M,IAAA,EAAA7yK,EAAA,GAAArqC,KAAAo9M,IAAA,GACAz2M,IAAA0jC,EAAA,GAAArqC,KAAAk9M,IAAA,EAAA7yK,EAAA,GAAArqC,KAAAo9M,IAAA,GACAyB,IAAAx0K,EAAA,GAAArqC,KAAAk9M,IAAA,EAAA7yK,EAAA,GAAArqC,KAAAo9M,IAAA,GACA0B,IAAAz0K,EAAA,GAAArqC,KAAAk9M,IAAA,EAAA7yK,EAAA,GAAArqC,KAAAo9M,IAAA,KAUAqB,YAAA,SAAAp0K,GACA,IAAA00K,EAAAh3M,KAAAkwC,OAAA5N,EAAA,GAAArqC,KAAA6nC,MAAAxjC,GAAArE,KAAAk9M,KAAA,EACA8B,EAAAj3M,KAAAkwC,OAAA5N,EAAA,GAAArqC,KAAA6nC,MAAAtjC,GAAAvE,KAAAo9M,KAAA,EACAh9F,EAAApgH,KAAAg9M,WAAA58F,MAEA,mBAAApgH,KAAAg0J,QACAh0J,KAAAi/M,sBAAAD,EAAAD,EAAA,EAAA3+F,GAGApgH,KAAAi/M,sBAAAF,EAAAC,EAAA,EAAA5+F,IAMA91E,eAAAzQ,EAAA0Q,MAAA/C,EAAA,eAKAgD,iBAAA3Q,EAAA0Q,MAAA/C,EAAA,eAQAq2K,iBAAA,WACA,IAAAz9F,EAAApgH,KAAA6E,OAAAb,IAAA,SAEAk7M,EAAA9+F,EAUA,GARAvmF,EAAA/tB,QAAAozM,IAAA,IAAAA,EAAAj+M,SACAi+M,IAAA,IAGA,UAAevjJ,KAAAujJ,KACf9+F,GAAA8+F,EAAA,SAAAA,EAAA,WAGA,uBAA4BvjJ,KAAAujJ,GAAA,CAC5B,IAAA18M,EAAAxC,KAAAu9M,YAAA2B,GACAC,EAAA38M,EAAA0/J,KACAi9C,EAAAC,SAAAD,EAAAhgD,WAAA,GACA,IAAAjuI,EAAAlxB,KAAAy9M,YAAA0B,GAAA,GACA/+F,GAAA59G,EAAAg7M,aAAAtsL,EAAAssL,cAGA,oCAAyC7hJ,KAAAujJ,KACzC9+F,GAAA8+F,MAGA,IAAAxvI,EAAA1vE,KAAA49M,cAAAx9F,GAMA,OAJA1wC,EAAAltE,MAAAR,KAAA0tE,EAAAx+C,IAAAlvB,MACAo+G,EAAA74F,UAGA64F,GAWAw9F,cAAA,SAAAx9F,GAEA,IAAAi/F,GADAj/F,GAAApgH,KAAAu9M,YAAAn9F,EAAA,IAAApgH,KAAAu9M,YAAAn9F,EAAA,MAGA,GAAAp+G,KAAAo+G,EAAA,GAAAp+G,OACAq9M,GAAA,EACAj/F,EAAA74F,WAGA,IAAA+3L,EAAAv3M,KAAAkwC,MAAAmoE,EAAA,GAAAp+G,KAnSA,OAmSA+F,KAAAkwC,MAAAmoE,EAAA,GAAAp+G,KAnSA,OAmSA,EASAkgK,EAAA,IAAAzyJ,KAAA2wG,EAAA,GAAAp+G,MACAu9M,EAAAr9C,EAAAnD,UACAygD,EAAAp/F,EAAA,GAAA8hD,KAAAnD,UAGA,GAFAmD,EAAAw7C,QAAA6B,EAAAD,EAAA,GAEAp9C,EAAAnD,YAAAygD,EAGA,IAFA,IAAAC,EAAAv9C,EAAAL,UAAAzhD,EAAA,GAAAp+G,KAAA,OAEAkgK,EAAAnD,YAAAygD,IAAAt9C,EAAAL,UAAAzhD,EAAA,GAAAp+G,MAAAy9M,EAAA,GACAH,GAAAG,EACAv9C,EAAAw7C,QAAA6B,EAAAD,EAAA,GAIA,IAAAxB,EAAA/1M,KAAAkwC,OAAAqnK,EAAAl/F,EAAA,GAAAqgD,IAAA,MACA+9C,EAAAa,EAAA,EAAAvB,IAAA,EAEA,OADAuB,GAAAj/F,EAAA74F,WAEA64F,SAAA,GAAAo9F,aAAAp9F,EAAA,GAAAo9F,cACAh7M,MAAA49G,EAAA,GACAlvF,IAAAkvF,EAAA,GACAk/F,SACAxB,QAEAU,UACAkB,MAAAt/F,EAAA,GAAAqgD,IACAk/C,MAAAv/F,EAAA,GAAAqgD,MAaAw+C,sBAAA,SAAAT,EAAA/9C,EAAArgD,GACA,IAAAw/F,EAAA5/M,KAAA49M,cAAAx9F,GAEA,GAAAo+F,EAAAoB,EAAA9B,OAAA,IAAAU,GAAA/9C,EAAAm/C,EAAAF,OAAAlB,IAAAoB,EAAA9B,OAAAr9C,EAAAm/C,EAAAD,MACA,SAGA,IAAAE,EAAA,GAAArB,EAAA,GAAAoB,EAAAF,MAAAj/C,EACAyB,EAAA,IAAAzyJ,KAAAmwM,EAAAp9M,MAAAR,MAEA,OADAkgK,EAAAw7C,QAAAkC,EAAAp9M,MAAAisB,EAAAoxL,GACA7/M,KAAAu9M,YAAAr7C,KAGA26C,EAAA96K,WAAA86K,EAAA38M,UAAA6hC,WACA86K,EAAAv/I,kBAAAu/I,EAAA38M,UAAAo9D,kBAEAu/I,EAAAnzK,OAAA,SAAA/lC,EAAAC,GACA,IAAAk8M,KAYA,OAXAn8M,EAAAkvD,cAAA,oBAAAiqJ,GACA,IAAAhtB,EAAA,IAAA+sB,EAAAC,EAAAn5M,EAAAC,GACAk8M,EAAAv+M,KAAAuuL,GACAgtB,EAAAzuL,iBAAAyhK,IAEAnsL,EAAAqxD,WAAA,SAAA+qJ,GACA,aAAAA,EAAA/7M,IAAA,sBAEA+7M,EAAA1xL,iBAAAyxL,EAAAC,EAAA/7M,IAAA,wBAGA87M,GAUA3iJ,EAAAl5D,SAAA,WAAA44M,GACA,IAAA55M,EAAA45M,EACA35M,EAAAC,QAAAF,wBCvZA,IAAAG,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAER,IAAAkoE,EAAmBloE,EAAQ,QAE3BygN,EAAmBzgN,EAAQ,QAE3BA,EAAQ,QAsBR6D,EAAAw4D,eAAA6L,EAAA,qBACArkE,EAAAm6D,eAAAyiJ,EAAA,kCCjCA,IAAA58M,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAA0gN,EAAmB1gN,EAAQ,QAE3B2gN,EAAmB3gN,EAAQ,QAoB3B6D,EAAAm6D,eAAA0iJ,GACA78M,EAAAw4D,eAAAskJ,yBC/BA,IAAArmL,EAAat6B,EAAQ,QAIrBqtD,EAFartD,EAAQ,QAErBqtD,eAoBArU,EAAA,EA4KAp1C,EAAA4xL,OArKA,SAAAvxL,GAGA,OAAAA,GAAA,GAAA+0C,IAAAxwC,KAAAstK,SAAA/tK,QAAA,IAAAlB,KAAA,MAmKAjD,EAAA0yL,uBA5JA,SAAAsqB,GACA,IAAAC,KAqBA,OAnBAD,EAAAtF,yBAAA,SAAAjoJ,EAAAytJ,GACAztJ,EAAAhG,EAAAgG,GACAwtJ,EAAAxtJ,EAAA4E,MAAA6oJ,GAGAF,EAAAG,iBAAA,SAAA1tJ,EAAA31C,GACA,IAAAzZ,EAAAyZ,EAAAzZ,KAEA,IAAAA,EAAA,CACA,IAAA+8M,EAAA3zJ,EAAAgG,GAAA4E,KAEA2oJ,EAAAK,YAAA5tJ,IAAAwtJ,EAAAG,KACA/8M,EAAA48M,EAAAG,GAAAtjM,IAIA,OAAAzZ,GAGA28M,GAuIAh9M,EAAA2yL,wBA1HA,SAAAqqB,EAAAM,GAoGA,SAAAC,EAAAxxC,EAAAtsK,GAQA,OAPAssK,EAAAtsK,KACAssK,EAAAtsK,IACA+9M,eACAC,eAIA1xC,EAAAtsK,GAnGAu9M,EAAAU,kBAAA,SAAAC,EAAAC,EAAA5+M,EAAA2rD,GACA,GAAAgzJ,EAAA7/M,OAAA,CAIA,IAAA8P,EAuDA,SAAAgwM,GACA,IAAA7xC,KACA8xC,KAuBA,OAtBAnnL,EAAA4E,KAAAsiL,EAAA,SAAAn+M,GACA,IAAAq+M,EAAAP,EAAAxxC,EAAAtsK,GAEAs+M,EAoCA,SAAAC,EAAAJ,GACA,IAAAG,KAIA,OAHArnL,EAAA4E,KAAA0iL,EAAA,SAAAC,GACAvnL,EAAA/5B,QAAAihN,EAAAK,IAAA,GAAAF,EAAA3/M,KAAA6/M,KAEAF,EAzCAG,CADAJ,EAAAE,aAAAV,EAAA79M,GACAm+M,GACAE,EAAAK,WAAAJ,EAAAjgN,OAEA,IAAAggN,EAAAK,YACAN,EAAAz/M,KAAAqB,GAGAi3B,EAAA4E,KAAAyiL,EAAA,SAAAK,GACA1nL,EAAA/5B,QAAAmhN,EAAAN,YAAAY,GAAA,GACAN,EAAAN,YAAAp/M,KAAAggN,GAGA,IAAAC,EAAAd,EAAAxxC,EAAAqyC,GAEA1nL,EAAA/5B,QAAA0hN,EAAAZ,UAAAW,GAAA,GACAC,EAAAZ,UAAAr/M,KAAAqB,QAKAssK,QACA8xC,eAlFAS,CAAAV,GACA7xC,EAAAn+J,EAAAm+J,MACAphK,EAAAiD,EAAAiwM,YACAU,KAKA,IAJA7nL,EAAA4E,KAAAqiL,EAAA,SAAAl+M,GACA8+M,EAAA9+M,IAAA,IAGAkL,EAAA7M,QAAA,CACA,IAAA0gN,EAAA7zM,EAAAgpD,MACA8qJ,EAAA1yC,EAAAyyC,GACAE,IAAAH,EAAAC,GAEAE,IACA1/M,EAAAuJ,KAAAoiD,EAAA6zJ,EAAAC,EAAAT,aAAA7+M,gBACAo/M,EAAAC,IAGA9nL,EAAA4E,KAAAmjL,EAAAhB,UAAAiB,EAAAC,EAAAC,GAGAloL,EAAA4E,KAAAijL,EAAA,WACA,UAAAriJ,MAAA,kCAGA,SAAA0iJ,EAAAC,GACA9yC,EAAA8yC,GAAAV,aAEA,IAAApyC,EAAA8yC,GAAAV,YACAxzM,EAAAvM,KAAAygN,GAUA,SAAAF,EAAAE,GACAN,EAAAM,IAAA,EACAD,EAAAC,4BCnIA,IAEAjtJ,EAFYx1D,EAAQ,QAEpBw1D,cA+CA7xD,EAAAC,QAtBA,SAAAQ,GACAA,EAAAikM,iBAAA,sBAAApsK,GACA,IAAA1qB,EAAA0qB,EAAAtP,UACA09E,EAAApuE,EAAA4wJ,aACAyb,EAAArsK,EAAAx3B,IAAA,SACAi+M,EAAAltJ,IACAjkD,EAAA2tB,KAAA,SAAA6B,GACA2hL,EAAAj9J,IAAAl0C,EAAAy4J,YAAAjpI,QAEAspE,EAAAnrE,KAAA,SAAA4rJ,GACA,IAAAznL,EAAAgnG,EAAAzlC,QAAAkmH,GACAlkL,EAAA0hM,GAAArsK,EAAA40K,QAAApsM,IAAApB,GAAA,GAAAilM,EAAA5mM,QACA2oG,EAAA3nC,cAAAooH,EAAA,QAAAlkL,GACA,IAAAm6B,EAAA2hL,EAAAj+M,IAAAqmL,GAEA,MAAA/pJ,GACAxvB,EAAAmxD,cAAA3hC,EAAA,QAAAn6B,8BC3CA,IAAAvG,EAAeL,EAAQ,QACvBsQ,EAAetQ,EAAQ,QAAWsQ,SAElCqyM,EAAAtiN,EAAAiQ,IAAAjQ,EAAAiQ,EAAAC,eACA5M,EAAAC,QAAA,SAAAu9D,GACA,OAAAwhJ,EAAAryM,EAAAC,cAAA4wD,6BCLA,IAAApmC,EAAc/6B,EAAQ,QAEtBg7B,EAAAD,EAAAC,qBACAC,EAAAF,EAAAE,kBAuKAt3B,EAAAC,QArGA,SAAAu9B,EAAAs8D,EAAAmlH,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAkBA,IAjBA,IAAAl+K,EAvBA,SAAA5D,EAAAs8D,GACA,IAAAylH,KAkBA,OAjBAzlH,EAAA14D,KAAA5D,GAAAzB,IAAA,SAAAqB,GACAmiL,EAAAlhN,MACAwjC,IAAA,IACAzE,UAEGic,OAAA,SAAA0qB,EAAAC,GACHu7I,EAAAlhN,MACAwjC,IAAA,IACAzE,IAAA4mC,EACAliC,KAAAiiC,MAEGxiE,OAAA,SAAA67B,GACHmiL,EAAAlhN,MACAwjC,IAAA,IACAzE,UAEG6mC,UACHs7I,EAIAC,CAAAhiL,EAAAs8D,GAMA2lH,KACAC,KAEAC,KACAC,KACA7sM,KACA8sM,KACAC,KACAC,EAAA1oL,EAAA8nL,EAAArlH,EAAAulH,GACAW,EAAA3oL,EAAA+nL,EAAA5hL,EAAA8hL,GAEAzhN,EAAA,EAAiBA,EAAAujC,EAAArjC,OAAiBF,IAAA,CAClC,IAAAoiN,EAAA7+K,EAAAvjC,GACAqiN,GAAA,EAGA,OAAAD,EAAAp+K,KACA,QACA,IAAAs+K,EAAA3iL,EAAAlB,cAAA2jL,EAAA7iL,KACA7C,EAAAu/D,EAAAx9D,cAAA2jL,EAAAn+K,OAEAv6B,MAAA44M,EAAA,KAAA54M,MAAA44M,EAAA,OACAA,EAAA5lL,EAAAn7B,SAGAqgN,EAAAphN,KAAA8hN,GACAT,EAAArhN,KAAAk8B,GACAolL,EAAAthN,KAAA4gN,EAAAgB,EAAA7iL,MACAwiL,EAAAvhN,KAAA6gN,EAAAe,EAAAn+K,OACAg+K,EAAAzhN,KAAAy7F,EAAAusE,YAAA45C,EAAAn+K,OACA,MAEA,QACA,IAAA1E,EAAA6iL,EAAA7iL,IACAqiL,EAAAphN,KAAA8gN,EAAAp4K,aAAA+yD,EAAAh5F,IAAAi/M,EAAAK,iBAAA,GAAAhjL,GAAA08D,EAAAh5F,IAAAi/M,EAAAK,iBAAA,GAAAhjL,MACAsiL,EAAArhN,KAAAy7F,EAAAx9D,cAAAc,GAAAh+B,SACAugN,EAAAthN,KAAAi5B,EAAAyoL,EAAAZ,EAAArlH,EAAA18D,IACAwiL,EAAAvhN,KAAA6gN,EAAA9hL,IACA0iL,EAAAzhN,KAAAy7F,EAAAusE,YAAAjpI,IACA,MAEA,QACAA,EAAA6iL,EAAA7iL,IAAA,IACA+pJ,EAAA3pJ,EAAA6oI,YAAAjpI,GAGA+pJ,IAAA/pJ,GACAqiL,EAAAphN,KAAAm/B,EAAAlB,cAAAc,IACAsiL,EAAArhN,KAAA+gN,EAAAr4K,aAAAvJ,EAAA18B,IAAAk/M,EAAAI,iBAAA,GAAAhjL,GAAAI,EAAA18B,IAAAk/M,EAAAI,iBAAA,GAAAhjL,MACAuiL,EAAAthN,KAAA4gN,EAAA7hL,IACAwiL,EAAAvhN,KAAAi5B,EAAA0oL,EAAAZ,EAAA5hL,EAAAJ,IACA0iL,EAAAzhN,KAAA8oL,IAEA+4B,GAAA,EAMAA,IACAntM,EAAA1U,KAAA4hN,GACAJ,EAAAxhN,KAAAwhN,EAAA9hN,SAMA8hN,EAAAztM,KAAA,SAAAC,EAAAC,GACA,OAAAwtM,EAAAztM,GAAAytM,EAAAxtM,KAEA,IAAA+tM,KACAC,KACAC,KACAC,KACAC,KAEA,IAAA5iN,EAAA,EAAiBA,EAAAgiN,EAAA9hN,OAA0BF,IAC3Cu/B,EAAAyiL,EAAAhiN,GACAwiN,EAAAxiN,GAAA4hN,EAAAriL,GACAkjL,EAAAziN,GAAA6hN,EAAAtiL,GACAmjL,EAAA1iN,GAAA8hN,EAAAviL,GACAojL,EAAA3iN,GAAA+hN,EAAAxiL,GACAqjL,EAAA5iN,GAAAkV,EAAAqqB,GAGA,OACAiE,QAAAg/K,EACA9+K,KAAA++K,EACAh/K,iBAAAi/K,EACA/+K,cAAAg/K,EACAztM,OAAA0tM,0BCtKA,IAAAjxB,EAAWnzL,EAAQ,QAEnBqkN,EAAYrkN,EAAQ,QAKpB4zD,EAAAprD,KAAAC,IACA2jC,EAAA5jC,KAAAE,IACA6+J,EAAA/+J,KAAA2jC,IACAm7H,EAAA9+J,KAAA0jC,IACA6jC,EAAA,EAAAvnE,KAAAgwB,GACAv1B,EAAAkwL,EAAAhpJ,SACAxY,EAAAwhK,EAAAhpJ,SACAm6K,EAAAnxB,EAAAhpJ,SAoDA,IAAArd,KACAC,KAqJAnpB,EAAAmlM,WAjMA,SAAAlrK,EAAAp1B,EAAAC,GACA,OAAAm1B,EAAAn8B,OAAA,CAIA,IAKAF,EALAmwC,EAAA9T,EAAA,GACAv3B,EAAAqrC,EAAA,GACAprC,EAAAorC,EAAA,GACAl/B,EAAAk/B,EAAA,GACAp8B,EAAAo8B,EAAA,GAGA,IAAAnwC,EAAA,EAAaA,EAAAq8B,EAAAn8B,OAAmBF,IAChCmwC,EAAA9T,EAAAr8B,GACA8E,EAAAstD,EAAAttD,EAAAqrC,EAAA,IACAprC,EAAA6lC,EAAA7lC,EAAAorC,EAAA,IACAl/B,EAAAmhD,EAAAnhD,EAAAk/B,EAAA,IACAp8B,EAAA62B,EAAA72B,EAAAo8B,EAAA,IAGAlpC,EAAA,GAAAnC,EACAmC,EAAA,GAAAgK,EACA/J,EAAA,GAAAnC,EACAmC,EAAA,GAAA6M,IA2KA3R,EAAA2gN,SA9JA,SAAA/yK,EAAAC,EAAAP,EAAAC,EAAA1oC,EAAAC,GACAD,EAAA,GAAAmrD,EAAApiB,EAAAN,GACAzoC,EAAA,GAAAmrD,EAAAniB,EAAAN,GACAzoC,EAAA,GAAA0jC,EAAAoF,EAAAN,GACAxoC,EAAA,GAAA0jC,EAAAqF,EAAAN,IA2JAvtC,EAAA4gN,UAvIA,SAAAhzK,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,EAAAxoC,EAAAC,GACA,IAEAlH,EAFAijN,EAAAJ,EAAAI,aACAC,EAAAL,EAAAK,QAEA7lK,EAAA4lK,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAlkB,GAMA,IALArkB,EAAA,GAAAyxC,IACAzxC,EAAA,GAAAyxC,IACAxxC,EAAA,QACAA,EAAA,QAEAlH,EAAA,EAAaA,EAAAq9C,EAAOr9C,IAAA,CACpB,IAAAsD,EAAA4/M,EAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAAlkB,EAAAtrB,IACAiH,EAAA,GAAAmrD,EAAA9uD,EAAA2D,EAAA,IACAC,EAAA,GAAA0jC,EAAAtnC,EAAA4D,EAAA,IAKA,IAFAm2C,EAAA4lK,EAAAhzK,EAAAN,EAAA5C,EAAA0C,EAAAlkB,GAEAvrB,EAAA,EAAaA,EAAAq9C,EAAOr9C,IAAA,CACpB,IAAAwD,EAAA0/M,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAlkB,EAAAvrB,IACAiH,EAAA,GAAAmrD,EAAA5uD,EAAAyD,EAAA,IACAC,EAAA,GAAA0jC,EAAApnC,EAAA0D,EAAA,IAGAD,EAAA,GAAAmrD,EAAApiB,EAAA/oC,EAAA,IACAC,EAAA,GAAA0jC,EAAAoF,EAAA9oC,EAAA,IACAD,EAAA,GAAAmrD,EAAA5iB,EAAAvoC,EAAA,IACAC,EAAA,GAAA0jC,EAAA4E,EAAAtoC,EAAA,IACAD,EAAA,GAAAmrD,EAAAniB,EAAAhpC,EAAA,IACAC,EAAA,GAAA0jC,EAAAqF,EAAA/oC,EAAA,IACAD,EAAA,GAAAmrD,EAAA3iB,EAAAxoC,EAAA,IACAC,EAAA,GAAA0jC,EAAA6E,EAAAvoC,EAAA,KAyGA9E,EAAA+gN,cAzFA,SAAAnzK,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAA9lC,EAAAC,GACA,IAAAk8M,EAAAP,EAAAO,kBACAjwB,EAAA0vB,EAAA1vB,YAEAE,EAAAzoJ,EAAAwnB,EAAAgxJ,EAAApzK,EAAAN,EAAA5C,GAAA,MACAwmJ,EAAA1oJ,EAAAwnB,EAAAgxJ,EAAAnzK,EAAAN,EAAA5C,GAAA,MACAzpC,EAAA6vL,EAAAnjJ,EAAAN,EAAA5C,EAAAumJ,GACA7vL,EAAA2vL,EAAAljJ,EAAAN,EAAA5C,EAAAumJ,GACArsL,EAAA,GAAAmrD,EAAApiB,EAAAlD,EAAAxpC,GACA2D,EAAA,GAAAmrD,EAAAniB,EAAAlD,EAAAvpC,GACA0D,EAAA,GAAA0jC,EAAAoF,EAAAlD,EAAAxpC,GACA4D,EAAA,GAAA0jC,EAAAqF,EAAAlD,EAAAvpC,IA+EApB,EAAAihN,QA7DA,SAAA//M,EAAAE,EAAAssC,EAAAC,EAAA1U,EAAAC,EAAAmzC,EAAAxnE,EAAAC,GACA,IAAAo8M,EAAA3xB,EAAA1qL,IACAs8M,EAAA5xB,EAAAzqL,IACAq8B,EAAAv8B,KAAAY,IAAAyzB,EAAAC,GAEA,GAAAiI,EAAAgrC,EAAA,MAAAhrC,EAAA,KAMA,OAJAt8B,EAAA,GAAA3D,EAAAwsC,EACA7oC,EAAA,GAAAzD,EAAAusC,EACA7oC,EAAA,GAAA5D,EAAAwsC,OACA5oC,EAAA,GAAA1D,EAAAusC,GA6BA,GAzBAtuC,EAAA,GAAAqkK,EAAAzqI,GAAAyU,EAAAxsC,EACA7B,EAAA,GAAAskK,EAAA1qI,GAAA0U,EAAAvsC,EACA2sB,EAAA,GAAA21I,EAAAxqI,GAAAwU,EAAAxsC,EACA6sB,EAAA,GAAA41I,EAAAzqI,GAAAyU,EAAAvsC,EACA8/M,EAAAr8M,EAAAxF,EAAA0uB,GACAozL,EAAAr8M,EAAAzF,EAAA0uB,IAEAkL,GAAAkzC,GAEA,IACAlzC,GAAAkzC,IAGAjzC,GAAAizC,GAEA,IACAjzC,GAAAizC,GAGAlzC,EAAAC,IAAAmzC,EACAnzC,GAAAizC,EACGlzC,EAAAC,GAAAmzC,IACHpzC,GAAAkzC,GAGAE,EAAA,CACA,IAAAE,EAAArzC,EACAA,EAAAD,EACAA,EAAAszC,EAKA,QAAApiC,EAAA,EAAqBA,EAAAjR,EAAkBiR,GAAAvlC,KAAAgwB,GAAA,EACvCuV,EAAAlR,IACAynL,EAAA,GAAAh9C,EAAAv5H,GAAAuD,EAAAxsC,EACAw/M,EAAA,GAAA/8C,EAAAx5H,GAAAwD,EAAAvsC,EACA8/M,EAAAr8M,EAAA67M,EAAA77M,GACAs8M,EAAAr8M,EAAA47M,EAAA57M,yBClNA,IAAAu8C,EAAAthD,EAAAC,QAAA,oBAAAwM,eAAA5H,WACA4H,OAAA,oBAAAxD,WAAApE,WAAAoE,KAEAgN,SAAA,cAAAA,GACA,iBAAAorM,UAAA//J,uBCCAthD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,kCCnGA,IAAA+7M,EAAgBjlN,EAAQ,QACxByI,EAAAD,KAAAC,IACA9E,EAAAC,QAAA,SAAAu9D,GACA,OAAAA,EAAA,EAAA14D,EAAAw8M,EAAA9jJ,GAAA,2CCJA,IAAA95B,EAAarnC,EAAQ,QAErBonC,EAAapnC,EAAQ,QAOrBklN,EAAA79K,EAAA89K,SACAC,EAAA,KAEA,SAAAC,EAAAr3M,GACA,OAAAA,EAAAo3M,GAAAp3M,GAAAo3M,EAQA,IAAA79K,EAAA,SAAAj8B,IACAA,SAEAuD,WAMApO,KAAAoO,UAAA,MAGA,MAAAvD,EAAAgtB,WAMA73B,KAAA63B,SAAA,GAGAhtB,EAAA0G,QAMAvR,KAAAuR,OAAA,MASAvR,KAAAopC,OAAAppC,KAAAopC,QAAA,MAGAy7K,EAAA/9K,EAAA5mC,UACA2kN,EAAA5sL,UAAA,KAMA4sL,EAAAC,mBAAA,WACA,OAAAF,EAAA5kN,KAAA63B,WAAA+sL,EAAA5kN,KAAAoO,SAAA,KAAAw2M,EAAA5kN,KAAAoO,SAAA,KAAAw2M,EAAA5kN,KAAAuR,MAAA,OAAAqzM,EAAA5kN,KAAAuR,MAAA,OAGAszM,EAAAr7K,gBAAA,WACA,IAAAD,EAAAvpC,KAAAupC,OACAw7K,EAAAx7K,KAAAtR,UACA6sL,EAAA9kN,KAAA8kN,qBACAn4L,EAAA3sB,KAAAi4B,UAEA6sL,GAAAC,GAKAp4L,KAAAia,EAAA8C,SAEAo7K,EACA9kN,KAAAgpC,kBAAArc,GAEA83L,EAAA93L,GAIAo4L,IACAD,EACAl+K,EAAAo+K,IAAAr4L,EAAA4c,EAAAtR,UAAAtL,GAEAia,EAAA6C,KAAA9c,EAAA4c,EAAAtR,YAKAj4B,KAAAi4B,UAAAtL,EACA3sB,KAAA4pC,aAAA5pC,KAAA4pC,cAAAhD,EAAA8C,SACA9C,EAAAiD,OAAA7pC,KAAA4pC,aAAAjd,IAxBAA,GAAA83L,EAAA93L,IA2BAk4L,EAAA77K,kBAAA,SAAArc,GACA,OAAAma,EAAAkC,kBAAAhpC,KAAA2sB,IAQAk4L,EAAAtsC,aAAA,SAAA1yI,GACA,IAAAlZ,EAAA3sB,KAAAi4B,UACA8N,EAAAF,EAAAE,KAAA,EAEApZ,EACAkZ,EAAA0yI,aAAAxyI,EAAApZ,EAAA,GAAAoZ,EAAApZ,EAAA,GAAAoZ,EAAApZ,EAAA,GAAAoZ,EAAApZ,EAAA,GAAAoZ,EAAApZ,EAAA,GAAAoZ,EAAApZ,EAAA,IAEAkZ,EAAA0yI,aAAAxyI,EAAA,IAAAA,EAAA,MAIA8+K,EAAApsC,iBAAA,SAAA5yI,GACA,IAAAE,EAAAF,EAAAE,KAAA,EACAF,EAAA0yI,aAAAxyI,EAAA,IAAAA,EAAA,MAGA,IAAAk/K,KAKAJ,EAAAx8K,mBAAA,WACA,GAAAroC,KAAAi4B,UAAA,CAIA,IAAAsR,EAAAvpC,KAAAupC,OACA5c,EAAA3sB,KAAAi4B,UAEAsR,KAAAtR,YAEA2O,EAAAo+K,IAAAC,EAAA17K,EAAAK,aAAAjd,GACAA,EAAAs4L,GAGA,IAAAt0K,EAAAhkB,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GACAikB,EAAAjkB,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GACAve,EAAApO,KAAAoO,SACAmD,EAAAvR,KAAAuR,MAEAqzM,EAAAj0K,EAAA,KACAA,EAAA5oC,KAAAyjC,KAAAmF,IAGAi0K,EAAAh0K,EAAA,KACAA,EAAA7oC,KAAAyjC,KAAAoF,IAGAjkB,EAAA,OACAgkB,MAGAhkB,EAAA,OACAikB,MAGAxiC,EAAA,GAAAue,EAAA,GACAve,EAAA,GAAAue,EAAA,GACApb,EAAA,GAAAo/B,EACAp/B,EAAA,GAAAq/B,EACA5wC,KAAA63B,SAAA9vB,KAAAkmC,OAAAthB,EAAA,GAAAikB,EAAAjkB,EAAA,GAAAgkB,KAQAk0K,EAAAK,eAAA,WACA,IAAAv4L,EAAA3sB,KAAAi4B,UAEA,IAAAtL,EACA,YAGA,IAAAgkB,EAAA5oC,KAAAyjC,KAAA7e,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAikB,EAAA7oC,KAAAyjC,KAAA7e,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAUA,OARAA,EAAA,OACAgkB,MAGAhkB,EAAA,OACAikB,OAGAD,EAAAC,IAWAi0K,EAAAM,sBAAA,SAAA9gN,EAAAE,GACA,IAAA6gN,GAAA/gN,EAAAE,GACAqlC,EAAA5pC,KAAA4pC,aAMA,OAJAA,GACAjD,EAAAK,eAAAo+K,IAAAx7K,GAGAw7K,GAWAP,EAAAQ,uBAAA,SAAAhhN,EAAAE,GACA,IAAA6gN,GAAA/gN,EAAAE,GACA0zB,EAAAj4B,KAAAi4B,UAMA,OAJAA,GACA0O,EAAAK,eAAAo+K,IAAAntL,GAGAmtL,GAYAt+K,EAAAkC,kBAAA,SAAAzoC,EAAAosB,GAEA83L,EADA93L,SAEA,IAAAyc,EAAA7oC,EAAA6oC,OACA73B,EAAAhR,EAAAgR,QAAA,KACAsmB,EAAAt3B,EAAAs3B,UAAA,EACAzpB,EAAA7N,EAAA6N,WAAA,KAsBA,OApBAg7B,IAEAzc,EAAA,IAAAyc,EAAA,GACAzc,EAAA,IAAAyc,EAAA,IAGAxC,EAAAr1B,MAAAob,IAAApb,GAEAsmB,GACA+O,EAAA6hI,OAAA97I,IAAAkL,GAGAuR,IAEAzc,EAAA,IAAAyc,EAAA,GACAzc,EAAA,IAAAyc,EAAA,IAGAzc,EAAA,IAAAve,EAAA,GACAue,EAAA,IAAAve,EAAA,GACAue,GAGA,IAAA1pB,EAAA6jC,EACA5jC,EAAAC,QAAAF,wBC1RAC,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAmtM,GACA,SAAApiN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBgmN,EACA,SAAAriN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBy2I,GACA,SAAA9yI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB21I,IACA,SAAAhyI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA2sM,IACA,SAAAxiN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAu0I,EAAAzuI,EAFA33E,EAAA,IAMAqmN,EAAA1uI,EAFA33E,EAAA,KAIA4uD,EAAA5uD,EAAA,GAEAsmN,EAAAtmN,EAAA,IAEAE,EAAAF,EAAA,GAIA03E,EAAAC,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,YAEA0/K,QAAAqjC,EAAA5sM,SAEAjW,OACA20E,WACAj0E,KAAAuX,OACAhC,QAAA,GAEA26D,SAAAj6D,QACAqsM,OAAArsM,QACAssM,QACAviN,KAAA2N,OACA4H,QAAA,QAEAuiC,aACA93C,KAAAuX,OACAhC,QAAA,GAEAitM,YAAA70M,OACAivC,QAAAjvC,OACAkjM,cACAt7L,SAAA,GAEA2qJ,YACAlgK,KAAA2N,OACA4H,QAAA,qBAEAw7L,eACAx7L,QAAA,WACA,OACAmiC,kBAAA,GACAF,iBAAA,KAIA5lB,WACA5xB,KAAAiW,QACAV,SAAA,GAEAktM,WACAziN,KAAAuX,OACAhC,QAAA,IAIAjI,KAAA,WACA,OACAo1M,eAAA,KACAC,UAAA,IAIAtqM,UACAuqM,UAAA,WACA,uBAAA3mN,EAAA4mN,gBAGA5zI,aAAA,WACA,IAAA51D,EAAA7c,KAEAA,KAAAk5E,YAEAl5E,KAAAsmN,SAAA,IAAArvI,EAAAl+D,SACAjI,MAAaooD,KAAA,IACbz1D,OAAA,SAAAwU,GACA,OAAAjY,KAAAk5D,QAEKqtJ,SAELvmN,KAAAwmN,eAAA,EAAAZ,EAAA7sM,SAAA,eACA,OAAA8D,EAAA4pM,wBAGAhjN,OAAA,SAAAwU,GACA,IAAAiG,EAAAle,KAyCA,GAvCAA,KAAAsmN,WACAtmN,KAAAsmN,SAAAptJ,KAAAjhD,EACA,cAEAZ,OACAzU,KAAA5C,KAAA0jK,YAEAhkJ,IACAgnM,WAAA1mN,KAAAo1M,aAGAn9L,EACA,OAEAyH,IACAinM,WAAA,WACAzoM,EAAA0oM,kBAAA,GAA+C1oM,EAAAsoM,iBAE/CliC,WAAA,WACApmK,EAAA0oM,kBAAA,KAIAhuM,IAAA,SACAvB,OAAoB2sJ,KAAA,UACpBtiK,GAAA1B,KAAAomN,UACAS,cAAA7mN,KAAA0zE,WAAA1zE,KAAAw0M,WAAA,gBAEApwB,aACAxhL,KAAA,OACA2E,OAAAvH,KAAA0zE,UAAA1zE,KAAAw0M,aAGAt8L,OAAA,2BAAAlY,KAAA+lN,OAAA/lN,KAAAgmN,eACAhmN,KAAA8Y,OAAAsnC,SAAApgD,KAAAogD,cAKApgD,KAAA8Y,OAAAC,UAAA/Y,KAAA8Y,OAAAC,QAAA9X,OAAA,OAAAjB,KAAA8Y,OAAAC,QAEA,IAAA+tM,GAAA,EAAAjB,EAAAkB,wBAAA/mN,KAAA8Y,OAAAC,SAEA,IAAA+tM,EAAA,OAAAA,EAEA,IAAAh2M,EAAAg2M,EAAAh2M,KAAAg2M,EAAAh2M,SAGA,OAFAA,EAAAsG,YAAApX,KAAAgnN,YAAAl2M,EAAAsG,YAAA,cAEA0vM,GAEA/mM,QAAA,WACA,IAAAf,EAAAhf,KAEAA,KAAA+0M,aAAA/0M,KAAA0c,IACA,IAAA1c,KAAA0c,IAAA28D,WACAr5E,KAAA0c,IAAAgqB,aAAA,mBAAA1mC,KAAAomN,WACApmN,KAAA0c,IAAAgqB,aAAA,eACA,EAAAynB,EAAAzuC,IAAA1f,KAAA+0M,aAAA,aAAA/0M,KAAAqF,OACA,EAAA8oD,EAAAzuC,IAAA1f,KAAA+0M,aAAA,aAAA/0M,KAAA+rM,OACA,EAAA59I,EAAAzuC,IAAA1f,KAAA+0M,aAAA,mBACA,GAAA/1L,EAAAlG,OAAAC,SAAAiG,EAAAlG,OAAAC,QAAA9X,OAAA,CAIA,IAAAs+C,EAAAvgC,EAAAlG,OAAAC,QAAA,GAAAkuM,kBACA1nK,KAAAhS,MACAgS,EAAAhS,QAEAvuB,EAAAkoM,mBAPAloM,EAAAkoM,iBAUA,EAAA/4J,EAAAzuC,IAAA1f,KAAA+0M,aAAA,OAAA/0M,KAAAmnN,aACA,EAAAh5J,EAAAzuC,IAAA1f,KAAA+0M,aAAA,QAAA/0M,KAAAonN,kBAIA7rM,OACA4qM,SAAA,SAAA54M,GACAA,GACA,EAAA4gD,EAAA6rB,UAAAh6E,KAAA+0M,aAAA,aAEA,EAAA5mJ,EAAAosB,aAAAv6E,KAAA+0M,aAAA,cAIAh5L,SACA1W,KAAA,WACArF,KAAA4mN,kBAAA,GACA5mN,KAAAqnN,oBAEAtb,KAAA,WACA/rM,KAAA4mN,kBAAA,GACA5mN,KAAAwmN,iBAEAU,YAAA,WACAlnN,KAAAmmN,UAAA,EACAnmN,KAAAqF,QAEA8hN,WAAA,WACAnnN,KAAAmmN,UAAA,EACAnmN,KAAA+rM,QAEAqb,eAAA,WACApnN,KAAAmmN,UAAA,GAEAa,YAAA,SAAAzxM,EAAAC,GACA,OAAAD,KAAAzV,QAAA0V,IAAA,EAAAD,EACAA,EAAAC,EAAAD,EAAA,IAAAC,EAAAD,EAAAC,GAAA,IAEA6xM,iBAAA,WACA,IAAA9nM,EAAAvf,KAEAA,KAAAsnN,gBAAAtnN,KAAA8lN,SACAz5M,aAAArM,KAAA46G,SACA56G,KAAA46G,QAAAtuG,WAAA,WACAiT,EAAAi1L,YAAA,GACOx0M,KAAAy3E,WAEPz3E,KAAAimN,UAAA,IACAjmN,KAAAkmN,eAAA55M,WAAA,WACAiT,EAAAi1L,YAAA,GACSx0M,KAAAimN,cAGTQ,kBAAA,WACAzmN,KAAAo1B,WAAAp1B,KAAAsnN,eAAAtnN,KAAA8lN,SACAz5M,aAAArM,KAAA46G,SAEA56G,KAAAkmN,gBACA75M,aAAArM,KAAAkmN,gBAEAlmN,KAAAw0M,YAAA,EAEAx0M,KAAA0zE,UACA1zE,KAAAo1M,cAGAwR,iBAAA,SAAAU,IACA,IAAAA,GACAj7M,aAAArM,KAAAkmN,gBAEAlmN,KAAAsnN,kBAIAC,UAAA,WACA,IAAA5rK,EAAA37C,KAAA+0M,cACA,EAAA5mJ,EAAAkC,KAAA1U,EAAA,aAAA37C,KAAAqF,OACA,EAAA8oD,EAAAkC,KAAA1U,EAAA,aAAA37C,KAAA+rM,OACA,EAAA59I,EAAAkC,KAAA1U,EAAA,QAAA37C,KAAAknN,cACA,EAAA/4J,EAAAkC,KAAA1U,EAAA,OAAA37C,KAAAmnN,aACA,EAAAh5J,EAAAkC,KAAA1U,EAAA,QAAA37C,KAAAonN,mBAMAtlC,EACA,SAAA5+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBioN,EACA,SAAAtkN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBkoN,EACA,SAAAvkN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,iCCxYzB4D,EAAA6/C,EAAYzjD,EAAQ,8BCApB,IAAAs6B,EAAat6B,EAAQ,QA6ErB,SAAAmoN,EAAA9uL,GACA,IAAApmB,EAAAomB,EAAApmB,YAAAomB,EAAApmB,cACAm1M,EAAAn1M,EAAA8T,WAAA9T,EAAA8T,aAEA7T,EAAAmmB,EAAAnmB,OAAAmmB,EAAAnmB,UACAm1M,EAAAn1M,EAAAmP,SAAAnP,EAAAmP,WACAimM,GACAjmM,OAAA,EACA0E,SAAA,GAEAuT,EAAA4E,KAAAhsB,EAAA,SAAAlL,EAAA3E,GACAilN,EAAAjlN,IAAAuiD,EAAAyiK,EAAAhlN,KACAglN,EAAAhlN,GAAA2E,KAIAogN,EAAAl1M,QAAA0yC,EAAA1yC,EAAA,cACAA,EAAA6T,SAAAqhM,EAAAl1M,aACAk1M,EAAAl1M,OAIA,SAAA0yC,EAAAh6C,EAAApI,GACA,OAAAoI,EAAAtI,eAAAE,GAGAG,EAAAC,QAnFA,SAAA8Z,GACA,IAAAkzK,EAAAlzK,KAAA1C,SAEAsf,EAAA/tB,QAAAqkL,KACAA,YAGAt2J,EAAA4E,KAAA0xJ,EAAA,SAAAv3J,GACAA,GAQA,SAAAA,GACA,IAAAp1B,EAAAo1B,EAAAp1B,KACAskN,GACAvU,OAAA,QACAvxM,KAAA,QAUA,GAPA8lN,EAAAtkN,KACAo1B,EAAA0yB,SAAAw8J,EAAAtkN,UACAo1B,EAAAp1B,MAGAkkN,EAAA9uL,GAEAusB,EAAAvsB,EAAA,oBACA,IAAAm2I,EAAAn2I,EAAAm2I,eAAAn2I,EAAAm2I,iBAEA5pH,EAAA4pH,EAAA,cACAA,EAAA3gK,SAAAwqB,EAAAmvL,iBAGA,SAAAh5C,EAAA3gK,UAAA+2C,EAAA4pH,EAAA,UACAA,EAAA1pK,MAAA,SACA0pK,EAAA3gK,iBAGAwqB,EAAAmvL,gBAGAluL,EAAA4E,KAAA7F,EAAA9nB,SAAA,SAAAspC,GACAvgB,EAAAj6B,SAAAw6C,KAAAvgB,EAAA/tB,QAAAsuC,MACA+K,EAAA/K,EAAA,UAAA+K,EAAA/K,EAAA,UAEAA,EAAA7yC,MAAA6yC,EAAAx3C,MAGA8kN,EAAAttK,MAxCA4tK,CAAApvL,8BChCA,IAAAiO,EAAmBtnC,EAAQ,QAE3BgqD,EAAWhqD,EAAQ,QAEnBmzL,EAAWnzL,EAAQ,QAEnB0oN,EAAqB1oN,EAAQ,QA8B7B,SAAAosL,EAAA/oL,EAAAslN,EAAA9iB,GAaA,GARAplM,KAAA4C,OAMA5C,KAAAkoN,aAEA9iB,EAIAA,KAAA,GAAAA,EAAA,QAJA,CACA,IAAAl9J,EAAAloC,KAAA8nC,kBACAs9J,GAAAl9J,EAAA7jC,EAAA6jC,EAAAlvB,MAAA,EAAAkvB,EAAA3jC,EAAA2jC,EAAAjvB,OAAA,GASAjZ,KAAA8jB,OAAAshL,EAGAzZ,EAAAzrL,WACAC,YAAAwrL,EACA4kB,WAAA,KAKAzoK,gBAAA,WACA,IAAAI,EAAAloC,KAAA6nC,MAEA,GAAAK,EACA,OAAAA,EAUA,IAPA,IAAAigL,EAAAptM,OAAAqtM,UACApgN,GAAAmgN,KACAlgN,IAAAkgN,MACAE,KACAC,KACAJ,EAAAloN,KAAAkoN,WAEAnnN,EAAA,EAAmBA,EAAAmnN,EAAAjnN,OAAuBF,IAE1C,eAAAmnN,EAAAnnN,GAAAyC,KAAA,CAKA,IAAAsoL,EAAAo8B,EAAAnnN,GAAA+qL,SACAviI,EAAA++I,WAAAxc,EAAAu8B,EAAAC,GACA51B,EAAA1qL,QAAAqgN,GACA31B,EAAAzqL,QAAAqgN,GAQA,OAJA,IAAAvnN,IACAiH,EAAA,GAAAA,EAAA,GAAAC,EAAA,GAAAA,EAAA,MAGAjI,KAAA6nC,MAAA,IAAAhB,EAAA7+B,EAAA,GAAAA,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GAAAD,EAAA,KAOA0iC,QAAA,SAAAtI,GACA,IAAA8F,EAAAloC,KAAA8nC,kBACAogL,EAAAloN,KAAAkoN,WAEA,IAAAhgL,EAAAwC,QAAAtI,EAAA,GAAAA,EAAA,IACA,SAGAmmL,EAAA,QAAAxnN,EAAA,EAAAc,EAAAqmN,EAAAjnN,OAAqDF,EAAAc,EAASd,IAE9D,eAAAmnN,EAAAnnN,GAAAyC,KAAA,CAIA,IAAAsoL,EAAAo8B,EAAAnnN,GAAA+qL,SACA08B,EAAAN,EAAAnnN,GAAAynN,UAEA,GAAAP,EAAAv9K,QAAAohJ,EAAA1pJ,EAAA,GAAAA,EAAA,KAEA,QAAA3Z,EAAA,EAAuBA,GAAA+/L,IAAAvnN,OAAA,GAAwCwnB,IAC/D,GAAAw/L,EAAAv9K,QAAA89K,EAAA//L,IACA,SAAA8/L,EAIA,UAIA,UAEAvgL,YAAA,SAAA3jC,EAAAE,EAAAyU,EAAAC,GACA,IAAAivB,EAAAloC,KAAA8nC,kBACAygK,EAAArgK,EAAAlvB,MAAAkvB,EAAAjvB,OAEAD,EAEKC,IACLA,EAAAD,EAAAuvL,GAFAvvL,EAAAuvL,EAAAtvL,EASA,IAJA,IAAA1Y,EAAA,IAAAsmC,EAAAxiC,EAAAE,EAAAyU,EAAAC,GACAgf,EAAAiQ,EAAAE,mBAAA7nC,GACA2nN,EAAAloN,KAAAkoN,WAEAnnN,EAAA,EAAmBA,EAAAmnN,EAAAjnN,OAAuBF,IAE1C,eAAAmnN,EAAAnnN,GAAAyC,KAAA,CAOA,IAHA,IAAAsoL,EAAAo8B,EAAAnnN,GAAA+qL,SACA08B,EAAAN,EAAAnnN,GAAAynN,UAEAt3K,EAAA,EAAqBA,EAAA46I,EAAA7qL,OAAqBiwC,IAC1CwhJ,EAAA1rJ,eAAA8kJ,EAAA56I,GAAA46I,EAAA56I,GAAAjZ,GAGA,QAAAhgB,EAAA,EAAqBA,GAAAuwM,IAAAvnN,OAAA,GAAwCgX,IAC7D,IAAAi5B,EAAA,EAAuBA,EAAAs3K,EAAAvwM,GAAAhX,OAAyBiwC,IAChDwhJ,EAAA1rJ,eAAAwhL,EAAAvwM,GAAAi5B,GAAAs3K,EAAAvwM,GAAAi5B,GAAAjZ,IAKAiQ,EAAAloC,KAAA6nC,OACA4B,KAAAlpC,GAEAP,KAAA8jB,QAAAokB,EAAA7jC,EAAA6jC,EAAAlvB,MAAA,EAAAkvB,EAAA3jC,EAAA2jC,EAAAjvB,OAAA,KAGA,IAAAhW,EAAA0oL,EACAzoL,EAAAC,QAAAF,wBCrLA,IAAA8/D,EAAaxjE,EAAQ,QAEEA,EAAQ,QAsD/B0E,SAAA,UACAylC,OAvBA,SAAA/lC,EAAAC,GACA,IAAA6kN,KAkBA,OAjBA9kN,EAAAkvD,cAAA,sBAAAx8B,EAAAiK,GACA,IAAA4nI,EAAA,IAAAnlG,EAAA1sC,EAAA1yB,EAAAC,GACAskK,EAAAtlK,KAAA,UAAA09B,EACA4nI,EAAA1rJ,OAAA6Z,EAAAzyB,GACAyyB,EAAAhI,iBAAA65I,EACAugD,EAAAlnN,KAAA2mK,KAEAvkK,EAAAqxD,WAAA,SAAAx5B,GACA,kBAAAA,EAAAx3B,IAAA,qBACA,IAAA0kN,EAAA/kN,EAAAgyL,iBACArmI,SAAA,aACA1iD,MAAA4uB,EAAAx3B,IAAA,mBACAtC,GAAA85B,EAAAx3B,IAAA,kBACO,GACPw3B,EAAAnN,iBAAAq6L,KAAAr6L,oBAGAo6L,GAKA1mL,WAAAghC,EAAA7iE,UAAA6hC,mCC1DA,IAoBAujC,EApBsB/lE,EAAQ,OAoB9B0wE,GAAA,qLACAhtE,GACAqiE,aAAA,SAAA62H,EAAAC,GACA,IAAA7jL,EAAA+sD,EAAAtlE,KAAAm8L,EAAAC,GACAvtJ,EAAA7uC,KAAA2oN,oBAEA,OADA95K,IAAAt2B,EAAAs2B,YACAt2B,GAEAowM,kBAAA,WACA,IAAArjB,EAAAtlM,KAAAgE,IAAA,cACA,gBAAAshM,GAAA,MAAAA,EAAA,gBAAAA,GAAA,aAGApiM,EAAAC,QAAAF,wBCjCA,IAAA42B,EAAat6B,EAAQ,QAErBo9L,EAAcp9L,EAAQ,QAEtBqpN,EAAgBrpN,EAAQ,QAExBorC,EAAUprC,EAAQ,QAElBisM,EAAiBjsM,EAAQ,QAoBzBk/B,EAAA5E,EAAA4E,KACAoqL,EAAArd,EAAAqd,YACAC,GAAA,6BA0CA,SAAAC,EAAAC,GACA,IAnCAh8H,EAEAi8H,EAiCAj9K,KACA7W,EAAA6zL,EAAAhlN,IAAA,sBACAyW,EAAAuuM,EAAAhlN,IAAA,mBACAuxJ,EAAAyzD,EAAA3pL,SAAA,aACA9J,EAAAyzL,EAAAhlN,IAAA,WA4BA,OA1BAmxB,GAAA6W,EAAAzqC,MAvCA0nN,EAAA,SAFAj8H,EAyCA73D,GAvCA,wCAAA63D,EAAA,mCACAnzD,EAAAlpB,IAAAm4M,EAAA,SAAAI,GACA,OAAAA,EAAA,cAAAD,IACG7iN,KAAA,OAsCHqU,IACAkwB,EAAAiB,gBACAI,EAAAzqC,KAAA,oBAAAkZ,IAGAuxB,EAAAzqC,KAAA,qBAAAo7L,EAAAwsB,MAAA1uM,IACAuxB,EAAAzqC,KAAA,8BAKAk9B,GAAA,mCAAA77B,GACA,IAAAwmN,EAAA,UAAAxmN,EACAymN,EAAAR,EAAAO,GACA77M,EAAAy7M,EAAAhlN,IAAAqlN,GACA,MAAA97M,GAAAy+B,EAAAzqC,KAAA6nN,EAAA,IAAA77M,GAAA,UAAA3K,EAAA,YAGAopC,EAAAzqC,KA/CA,SAAAg0J,GACA,IAAAvpH,KACAnW,EAAA0/H,EAAAvxJ,IAAA,YACAmC,EAAAovJ,EAAAE,eAQA,OAPAtvJ,GAAA6lC,EAAAzqC,KAAA,SAAA4E,GACA6lC,EAAAzqC,KAAA,QAAAg0J,EAAAC,WACA3/H,GAAAmW,EAAAzqC,KAAA,eAAAwG,KAAAqC,MAAA,EAAAyrB,EAAA,SACA4I,GAAA,+BAAA77B,GACA,IAAA2K,EAAAgoJ,EAAAvxJ,IAAApB,GACA2K,GAAAy+B,EAAAzqC,KAAA,QAAAqB,EAAA,IAAA2K,KAEAy+B,EAAA5lC,KAAA,KAoCAkjN,CAAA/zD,IAEA,MAAAhgI,GACAyW,EAAAzqC,KAAA,WAAAiqM,EAAAI,kBAAAr2K,GAAAnvB,KAAA,aAGA4lC,EAAA5lC,KAAA,KAAwB,IAQxB,SAAAmjN,EAAAh8H,EAAA3pF,GACA,GAAA+mC,EAAAitI,IACA,YAGA,IAAAn3K,EAAAoP,SAAAC,cAAA,OACApP,EAAAV,KAAAouD,IAAAxqD,EAAAe,QACA3E,KAAAS,KACAT,KAAA4oH,GAAAhlH,EAAAkuD,WAAA,EACA9xD,KAAA48J,GAAAh5J,EAAAmuD,YAAA,EACAw7B,EAAAt9E,YAAAxP,GACAT,KAAAwpN,WAAAj8H,EACAvtF,KAAAypN,OAAA,EAKAzpN,KAAA0pN,aACA,IAAAv9M,EAAAnM,KAEAS,EAAAkpN,aAAA,WAEAx9M,EAAAy9M,aACAv9M,aAAAF,EAAAu9M,cACAv9M,EAAAs9M,OAAA,GAGAt9M,EAAA09M,YAAA,GAGAppN,EAAAy2J,YAAA,SAAA/yJ,GAGA,GAFAA,KAAAwL,OAAA4nD,OAEAprD,EAAAy9M,WAAA,CAGA,IAAAnuM,EAAA/a,EAAA+a,QACAmtM,EAAA92B,eAAAvkG,EAAAppF,GAAA,GACAsX,EAAA8hI,SAAA,YAAAp5I,KAIA1D,EAAAqpN,aAAA,WACA39M,EAAAy9M,YACAz9M,EAAAs9M,OACAt9M,EAAA49M,UAAA59M,EAAA69M,YAIA79M,EAAA09M,YAAA,GAIAN,EAAArpN,WACAC,YAAAopN,EAMAK,YAAA,EAKArtK,OAAA,WAGA,IAAAgxC,EAAAvtF,KAAAwpN,WACAjvC,EAAAhtF,EAAA08H,cAAAp6M,SAAAs4C,YAAArL,iBAAAywC,GACA28H,EAAA38H,EAAAh1E,MAEA,aAAA2xM,EAAA97M,UAAA,aAAAmsK,EAAAnsK,WACA87M,EAAA97M,SAAA,aAMA/I,KAAA,SAAA2jN,GACA38M,aAAArM,KAAA0pN,cACA,IAAAjpN,EAAAT,KAAAS,GACAA,EAAA8X,MAAAyzB,QApKA,yFAoKA+8K,EAAAC,GACA,SAAQhpN,KAAA4oH,GAAA,UAAuB5oH,KAAA48J,GAAA,OAAsBosD,EAAAhlN,IAAA,qBACrDvD,EAAA8X,MAAAM,QAAApY,EAAAm0C,UAAA,eACA50C,KAAAypN,OAAA,GAEAU,WAAA,SAAA/pK,GACApgD,KAAAS,GAAAm0C,UAAA,MAAAwL,EAAA,GAAAA,GAEAgqK,aAAA,SAAAh1L,GACAp1B,KAAA4pN,WAAAx0L,GAEAi1L,QAAA,WACA,IAAA5pN,EAAAT,KAAAS,GACA,OAAAA,EAAAkc,YAAAlc,EAAAmc,eAEAmqJ,OAAA,SAAA1iK,EAAAE,GAIA,IACA+lN,EADA5pN,EAAAV,KAAAouD,IAGA1tD,KAAAuxD,UAAAq4J,EAAA5pN,EAAAuxD,QAAAijH,2BACA7wK,GAAAimN,EAAA7rK,WACAl6C,GAAA+lN,EAAA5rK,WAGA,IAAAnmC,EAAAvY,KAAAS,GAAA8X,MACAA,EAAA1S,KAAAxB,EAAA,KACAkU,EAAAvG,IAAAzN,EAAA,KACAvE,KAAA4oH,GAAAvkH,EACArE,KAAA48J,GAAAr4J,GAEAwnM,KAAA,WACA/rM,KAAAS,GAAA8X,MAAAM,QAAA,OACA7Y,KAAAypN,OAAA,GAEAM,UAAA,SAAA/nN,IACAhC,KAAAypN,OAAAzpN,KAAA6pN,YAAA7pN,KAAA4pN,aACA5nN,GACAhC,KAAAgqN,WAAAhoN,EAEAhC,KAAAypN,OAAA,EACAzpN,KAAA0pN,aAAAp9M,WAAAutB,EAAArvB,KAAAxK,KAAA+rM,KAAA/rM,MAAAgC,IAEAhC,KAAA+rM,SAIAwe,OAAA,WACA,OAAAvqN,KAAAypN,QAGA,IAAAxmN,EAAAsmN,EACArmN,EAAAC,QAAAF,wBCzPAC,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAu9H,GACA,SAAAxyI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBgmN,EACA,SAAAriN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBuiL,EACA,SAAA5+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBirN,IACA,SAAAtnN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA0xM,IACA,SAAAvnN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAAs5I,EAAAnrN,EAAA,IAIA83E,EAAAH,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAIAorN,EAAAzzI,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAK7EhI,EAAA4V,SACAnW,KAAA,cAEAwxB,YAAew2L,IAAAD,EAAA5xM,SAEfjW,OACA+nN,OAAApxM,QACAqxM,aACAC,aACAC,aACAC,aACAC,SAAAzxM,QACA0xM,KACA3nN,KAAA2N,OACA4H,QAAA,QAIAjI,KAAA,WACA,OACAs6M,UAAA,IACAC,WAAA,IACAC,MAAA,EACAC,MAAA,IAKA1vM,UACA2vM,KAAA,WACA,OAAAxrN,KAAAye,MAAA+sM,OAIA/nN,OAAA,SAAAwU,GACA,IAAAwzM,GAAA,EAAAp0I,EAAAt+D,WACAR,EAAAvY,KAAA8qN,UAEA,GAAAW,EAAA,CACA,IAAAC,EAAA,IAAAD,EAAA,KACAE,EAAA,kBAAAD,EAAA,mBAA2DA,EAAA,IAE3D7/M,MAAAC,QAAA9L,KAAA8qN,YACAvyM,GAAA,EAAA9Y,EAAA0gE,UAAAngE,KAAA8qN,YACA5tK,YAAA3kC,EAAAykC,aAAA0uK,EACO,iBAAA1rN,KAAA8qN,UACPvyM,GAAAozM,EAEApzM,EAAAozM,EAGA,IAAA74J,EAAA76C,EAAAjY,KAAAmrN,KACAjzM,OAAA,qBAAAlY,KAAAgrN,WACAzyM,MAAAvY,KAAAirN,UACAryM,IAAA,UACK5Y,KAAA8Y,OAAAC,SACLyyM,EAAAvzM,EACA,OAEAW,IAAA,OACAL,QACAmH,IACAksM,OAAA5rN,KAAA6rN,cAGA3zM,OAAAlY,KAAA+qN,UAAA,qBAAAU,EAAA,4CACA34J,KAiCA,OAAA76C,EAAA,OAAqBC,MAAA,gBA7BrBlY,KAAA6qN,QAoBA5yM,EACA,OAEAW,IAAA,OACAV,OAAAlY,KAAA+qN,UAAA,sBACAxyM,WACAu6C,OAzBA04J,EAAAvzM,EACA0yM,EAAA5xM,SAEA1B,OACAy0M,KAAA9rN,KAAAsrN,MACAz5L,KAAA7xB,KAAAorN,gBAGAnzM,EACA0yM,EAAA5xM,SAEA1B,OACAq3H,UAAA,EACAo9E,KAAA9rN,KAAAurN,MACA15L,KAAA7xB,KAAAqrN,oBAkBAtvM,SACA8vM,aAAA,WACA,IAAAL,EAAAxrN,KAAAwrN,KAEAxrN,KAAAurN,MAAA,IAAAC,EAAAttK,UAAAstK,EAAA5uM,aACA5c,KAAAsrN,MAAA,IAAAE,EAAArtK,WAAAqtK,EAAA7uM,aAEA4/B,OAAA,WACA,IAAAwvK,EACAC,EACAR,EAAAxrN,KAAAwrN,KACAA,IAEAO,EAAA,IAAAP,EAAA5uM,aAAA4uM,EAAA3pK,aACAmqK,EAAA,IAAAR,EAAA7uM,YAAA6uM,EAAA1pK,YAEA9hD,KAAAqrN,WAAAU,EAAA,IAAAA,EAAA,OACA/rN,KAAAorN,UAAAY,EAAA,IAAAA,EAAA,UAIAjsM,QAAA,WACA/f,KAAA6qN,SACA7qN,KAAAuc,UAAAvc,KAAAu8C,SACAv8C,KAAAkrN,WAAA,EAAAR,EAAApsM,mBAAAte,KAAAye,MAAAjC,OAAAxc,KAAAu8C,UAEAv8B,cAAA,WACAhgB,KAAA6qN,SACA7qN,KAAAkrN,WAAA,EAAAR,EAAAnsM,sBAAAve,KAAAye,MAAAjC,OAAAxc,KAAAu8C,WAMA0vK,IACA,SAAA/oN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAAjjB,EAAA5uD,EAAA,GAEAE,EAAAF,EAAA,KAGA4D,EAAA4V,SACAnW,KAAA,MAEAE,OACA4rI,SAAAj1H,QACAoY,KAAA1gB,OACA26M,KAAA/wM,QAGAc,UACAgN,IAAA,WACA,OAAAppB,EAAAysN,QAAAlsN,KAAA0uI,SAAA,0BAEA88E,KAAA,WACA,OAAAxrN,KAAAmsN,QAAAX,OAIA/nN,OAAA,SAAAwU,GACA,IAAA4Z,EAAA7xB,KAAA6xB,KACAi6L,EAAA9rN,KAAA8rN,KACAjjM,EAAA7oB,KAAA6oB,IAGA,OAAA5Q,EACA,OAEAC,OAAA,0BAAA2Q,EAAA9e,KACA2V,IACA87I,UAAAx7J,KAAAosN,qBAGAn0M,EACA,OAEAW,IAAA,QACAV,MAAA,sBACAwH,IACA87I,UAAAx7J,KAAAqsN,mBAGA9zM,OAAA,EAAA9Y,EAAA6sN,mBAA8Cz6L,OAAAi6L,OAAAjjM,gBAO9C9M,SACAswM,kBAAA,SAAAloN,GACAnE,KAAAusN,UAAApoN,GACAnE,UAAA6oB,IAAA4M,MAAAtxB,EAAA4iI,cAAA/mI,KAAA6oB,IAAA6Z,SAAAv+B,EAAAnE,KAAA6oB,IAAA2jM,QAAAroN,EAAA4iI,cAAApoF,wBAAA3+C,KAAA6oB,IAAAi6B,aAEAspK,kBAAA,SAAAjoN,GACA,IAEAsoN,EAAA,KAFA1kN,KAAAY,IAAAxE,EAAA5D,OAAAo+C,wBAAA3+C,KAAA6oB,IAAAi6B,WAAA3+C,EAAAnE,KAAA6oB,IAAA2jM,SACAxsN,KAAAye,MAAAiuM,MAAA1sN,KAAA6oB,IAAA6Z,QAAA,GACA1iC,KAAA0c,IAAA1c,KAAA6oB,IAAA6Z,QAEA1iC,KAAAwrN,KAAAxrN,KAAA6oB,IAAA+iM,QAAAa,EAAAzsN,KAAAwrN,KAAAxrN,KAAA6oB,IAAA8jM,YAAA,KAEAJ,UAAA,SAAApoN,GACAA,EAAAyoN,2BACA5sN,KAAA6sN,YAAA,GAEA,EAAA1+J,EAAAzuC,IAAA7P,SAAA,YAAA7P,KAAA8sN,2BACA,EAAA3+J,EAAAzuC,IAAA7P,SAAA,UAAA7P,KAAA+sN,wBACAl9M,SAAAm9M,cAAA,WACA,WAGAF,yBAAA,SAAA3oN,GACA,QAAAnE,KAAA6sN,WAAA,CACA,IAAAI,EAAAjtN,UAAA6oB,IAAA4M,MAEA,GAAAw3L,EAAA,CAEA,IAEAR,EAAA,MAFA,GAAAzsN,KAAA0c,IAAAiiC,wBAAA3+C,KAAA6oB,IAAAi6B,WAAA3+C,EAAAnE,KAAA6oB,IAAA2jM,UACAxsN,KAAAye,MAAAiuM,MAAA1sN,KAAA6oB,IAAA6Z,QAAAuqL,IACAjtN,KAAA0c,IAAA1c,KAAA6oB,IAAA6Z,QAEA1iC,KAAAwrN,KAAAxrN,KAAA6oB,IAAA+iM,QAAAa,EAAAzsN,KAAAwrN,KAAAxrN,KAAA6oB,IAAA8jM,YAAA,OAEAI,uBAAA,SAAA5oN,GACAnE,KAAA6sN,YAAA,EACA7sN,UAAA6oB,IAAA4M,MAAA,GACA,EAAA04B,EAAAkC,KAAAxgD,SAAA,YAAA7P,KAAA8sN,0BACAj9M,SAAAm9M,cAAA,OAIAzF,UAAA,YACA,EAAAp5J,EAAAkC,KAAAxgD,SAAA,UAAA7P,KAAA+sN,2BAMAG,IACA,SAAAhqN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAAmpN,iBAwBA,SAAAp+M,GACA,IAAA49M,EAAA59M,EAAA49M,KACAj6L,EAAA3jB,EAAA2jB,KACAhJ,EAAA3a,EAAA2a,IAEAtQ,KACA40M,EAAA,YAAAtkM,EAAA4M,KAAA,IAAAq2L,EAAA,KAOA,OALAvzM,EAAAsQ,EAAAgJ,QACAtZ,EAAA0f,UAAAk1L,EACA50M,EAAA60M,YAAAD,EACA50M,EAAA80M,gBAAAF,EAEA50M,GApCApV,EAAA+oN,SACAx9E,UACAhsG,OAAA,eACAkpL,OAAA,YACAe,WAAA,eACA96L,KAAA,SACA9nB,IAAA,WACA0rB,KAAA,IACA+2L,OAAA,UACA1pK,UAAA,OAEAulH,YACA3lI,OAAA,cACAkpL,OAAA,aACAe,WAAA,cACA96L,KAAA,QACA9nB,IAAA,aACA0rB,KAAA,IACA+2L,OAAA,UACA1pK,UAAA,UAsBAwqK,GACA,SAAApqN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,iCCpbzB,IAAA6D,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBsxJ,EAAsBtxJ,EAAQ,QAE9BguN,EAAyBhuN,EAAQ,QAEjCiuN,EAAcjuN,EAAQ,QAEtBg0J,EAAiBh0J,EAAQ,QAEzBi3G,EAAWj3G,EAAQ,QAEnBkuN,EAAqBluN,EAAQ,QAE7BA,EAAQ,QAqBR,IAAAmuN,EAAAl3G,EAAAx8F,QAAAD,SACA0kB,EAAA5E,EAAA4E,KAEAkvL,EAAA,4BAEA,SAAAC,EAAAr2L,EAAA5zB,EAAAC,IAKA5D,KAAAgxJ,iBAAA,IAAAH,EAAAjtJ,EAAAe,UAAA+a,GAAA,QAAAma,EAAArvB,KAAAxK,KAAAixJ,SAAAjxJ,OAAAkyJ,QAMAlyJ,KAAA6tN,cAGAD,EAAAl5L,eACArvB,MAAA,EAEAmuE,MACA1pD,KAAA,wDACAgkM,KAAA,6DAGA5zM,MAAA2f,EAAAmQ,MAAA0jL,EAAAxzM,QAEA,IAAAs9B,EAAAo2K,EAAA1tN,UAEAs3C,EAAA/zC,OAAA,SAAAsqN,EAAApqN,EAAAC,EAAAggC,GACA5jC,KAAAu3B,MAAAw2L,EACA/tN,KAAA2D,UACA3D,KAAA4D,MAwIA,SAAAmqN,EAAApqN,EAAAmvD,EAAAlvB,EAAAhgC,GACA,IAAAoqN,EAAAl7J,EAAA+6J,cAEAjqL,GAAA,qBAAAA,EAAApgC,OACAwqN,EAAA,mBAAApqL,EAAA75B,KAAA65B,EAAAqqL,sBAGAn7J,EAAA+6J,cAAAG,EACAD,EAAAG,cAAA,OAAAF,EAAA,qBACA,IAAAz3B,EAAA,IAAAg3B,EAAAY,EAAAJ,EAAA9wM,QAAAtZ,GACAyqN,SAAA,UAGAt7J,EAAAk+F,iBAAAoB,UAAAmkC,EAAAI,cAAA/yL,EAAA,SAAAyqN,GACA,OAAAA,EAAAC,gBAAAD,EAAAE,cAAA,SAAAF,EAAAC,eAAAD,EAAAE,cAAA,kBACG57D,cAAAq7D,IACHp7D,UAAA,OACAC,YAEA91H,UAAA,EACArlB,KAAA,qBA3JA82M,CAAAT,EAAApqN,EAAA3D,KAAA4jC,EAAAhgC,GAmIA,SAAAmqN,EAAApqN,GACAoqN,EAAAG,cAAA,OAAAV,EAAAjrN,MAAAoB,GAAA,uBAnIA8qN,CAAAV,EAAApqN,IAGA6zC,EAAAk3K,QAAA,SAAA/qN,EAAAC,EAAAJ,GACA6pL,EAAA7pL,GAAAkI,KAAA1L,OAGAw3C,EAAA/yC,OAAA,SAAAd,EAAAC,GACA5D,KAAAgxJ,iBAAA29D,WAGAn3K,EAAAzyC,QAAA,SAAApB,EAAAC,GACA5D,KAAAgxJ,iBAAAjsJ,WAOA,IAAAsoL,GACAvjK,KAAA,WACA,IAAA8kM,GAAA5uN,KAAA6tN,cACA7tN,KAAA4D,IAAAQ,gBACAZ,KAAA,mBACAuG,IAAA,iBACAkkN,qBAAAW,KAGAd,KAAA,WACA9tN,KAAA6uN,oBAAArB,EAAA12J,IAAA92D,KAAA2D,YA0FA,SAAAwqN,EAAAlxM,GACA,IAAAF,KAOA,OALA8c,EAAA4E,MAAA,oCAAA77B,GACAma,EAAAna,GAAAqa,EAAAra,GACA,MAAAma,EAAAna,KAAAma,EAAAna,GAAA,SACA,IAAAma,EAAAna,IAAA,SAAAma,EAAAna,MAAAma,EAAAna,SAEAma,EA3FAy6B,EAAAy5G,SAAA,SAAAmlC,EAAAx9J,GACA,GAAAA,EAAAu6H,OAAAijC,EAAAn1L,OAAA,CAIA,IAAA6tN,KACAnrN,EAAA3D,KAAA2D,QAEA3D,KAAAgxJ,iBAAA+B,iBAGA,IAAAw6D,EAAAY,EAAAnuN,KAAAu3B,MAAAta,QAAAtZ,GACAyqN,SAAA,UAEAW,kBAAA34B,EAAAzyL,EAAA,SAAA8c,EAAAuuM,EAAA3zL,GACA,mBAAAA,EAAA73B,KAAA,CAIA,IAAAovJ,EAAAnyI,EAAAmyI,UAEA,SAAAA,GACAq8D,EAAA,IAAA5zL,EAAA2zL,EAAA,IACAC,EAAA,IAAA5zL,EAAA2zL,EAAA,KAEAC,GACAC,MAAA,IACAC,MAAA,KACOv8D,GAAAv3H,EAAA2zL,MAGPxB,EAAAjsN,KAAAoC,EAAAmrN,GAEA9uN,KAAA6uN,oBAAAC,GAEA,SAAAG,EAAAntL,EAAAzG,EAAA+zL,GACA,IAAA35L,EAAA4F,EAAAzO,QAAAkV,GACAzL,EAAAZ,EAAA8B,MACAo6K,EAeA,SAAA7vK,EAAAzL,EAAA1yB,GACA,IAAA0rN,EAQA,OAPA1rN,EAAAkvD,eACAvD,SAAA,WACAwG,QAAA,UACK,SAAAw5J,GACLA,EAAAC,aAAAztL,EAAAzL,EAAA6hC,kBACAm3J,EAAAC,KAEAD,EAxBAG,CAAA1tL,EAAAzL,EAAA1yB,GAEA8rN,EAAA9d,EAAA+d,4BAAAr5L,GAAAs5L,gBAEA,MAAAF,EAAAG,cAAA,MAAAH,EAAAI,eACAT,EAAA77D,EAAA,EAAA67D,EAAA9sN,QAAAmzB,EAAAlkB,MAAAuqB,YAAA,EAAA2zL,EAAAG,aAAAH,EAAAI,eAGAle,IAAAmd,EAAAnd,EAAAjwM,KACAi+K,WAAAgyB,EAAAjwM,GACAouN,WAAAV,EAAA,GACAW,SAAAX,EAAA,OAqBA53K,EAAAq3K,oBAAA,SAAAC,GACA,IAAA73J,KAEAx4B,EAAAqwL,EAAA,SAAAz3J,EAAAsoH,GACA1oH,EAAA11D,KAAAs4B,EAAAmQ,MAAAqtB,MAEAJ,EAAAh2D,QAAAjB,KAAA4D,IAAAQ,gBACAZ,KAAA,WACAuI,KAAA/L,KAAAk1D,IACA+B,WA4CAw2J,EAAAxpN,SAAA,WAAA2pN,GAGAxqN,EAAAg4D,qBAAA,SAAAn+C,GACA,GAAAA,EAAA,CAIA,IAAA+yM,EAAA/yM,EAAAlD,WAAAkD,EAAAlD,aAEA8f,EAAA/tB,QAAAkkN,KACA/yM,EAAAlD,SAAAi2M,OAGA,IAAA5/B,EAAAnzK,EAAAjD,QAEA,GAAAo2K,IAEAv2J,EAAA/tB,QAAAskL,KACAA,IAAA,IAGAA,KAAAC,SAAA,CACA,IAAA4/B,EAAA7/B,EAAAC,QAAAt2K,SAGAm2M,EAAA,QAAAD,GACAC,EAAA,QAAAD,IAIA,SAAAC,EAAAt/I,EAAAq/I,GACA,GAAAA,EAAA,CAKA,IAAAE,EAAAv/I,EAAA,QACAw/I,EAAAH,EAAAE,GAEA,MAAAC,GAAA,OAAAA,GAAAv2L,EAAA/tB,QAAAskN,KACAA,GAAA,IAAAA,GAAA,SAAAA,UAqBA,SAAA9gK,EAAAgY,GACA,IAAAz8D,EAAAoS,EAAAqyC,GAEAz1B,EAAA/tB,QAAAjB,KACAA,YAGA4zB,EAAA5zB,EAAAy8D,GAzBA+oJ,CAAAz/I,EAAA,SAAA8+G,EAAAvlH,GACA,SAAAimJ,GAAA,OAAAA,IAAA,IAAAv2L,EAAA/5B,QAAAswN,EAAAjmJ,GAAA,CAIA,IAAAmmJ,GACA9sN,KAAA,SACA+sN,cAAA,EAEA7uN,GAAAisN,EAAA/8I,EAAAzG,GAIAmmJ,EAAAH,GAAAhmJ,EACA6lJ,EAAAzuN,KAAA+uN,UAcA,IAAArtN,EAAA2qN,EACA1qN,EAAAC,QAAAF,wBCjTA,IAAAutN,EAAWjxN,EAAQ,OAARA,CAAgB,QAC3BK,EAAeL,EAAQ,QACvB4lD,EAAU5lD,EAAQ,QAClBkxN,EAAclxN,EAAQ,QAAcyjD,EACpCthD,EAAA,EACAgvN,EAAA9mN,OAAA8mN,cAAA,WACA,UAEAC,GAAcpxN,EAAQ,OAARA,CAAkB,WAChC,OAAAmxN,EAAA9mN,OAAAgnN,yBAEAC,EAAA,SAAAnwJ,GACA+vJ,EAAA/vJ,EAAA8vJ,GAAqBjpN,OACrBxG,EAAA,OAAAW,EACAqiH,SAgCA+sG,EAAA5tN,EAAAC,SACAg+K,IAAAqvC,EACAO,MAAA,EACAC,QAhCA,SAAAtwJ,EAAAh3B,GAEA,IAAA9pC,EAAA8gE,GAAA,uBAAAA,KAAA,iBAAAA,EAAA,SAAAA,EACA,IAAAvb,EAAAub,EAAA8vJ,GAAA,CAEA,IAAAE,EAAAhwJ,GAAA,UAEA,IAAAh3B,EAAA,UAEAmnL,EAAAnwJ,GAEG,OAAAA,EAAA8vJ,GAAAzvN,GAsBHkwN,QApBA,SAAAvwJ,EAAAh3B,GACA,IAAAyb,EAAAub,EAAA8vJ,GAAA,CAEA,IAAAE,EAAAhwJ,GAAA,SAEA,IAAAh3B,EAAA,SAEAmnL,EAAAnwJ,GAEG,OAAAA,EAAA8vJ,GAAAzsG,GAYHmtG,SATA,SAAAxwJ,GAEA,OADAiwJ,GAAAG,EAAAC,MAAAL,EAAAhwJ,KAAAvb,EAAAub,EAAA8vJ,IAAAK,EAAAnwJ,GACAA,0BC5CA,IAEAoH,EAFmBvoE,EAAQ,QAE3BuoE,YAIAF,EAF0BroE,EAAQ,QAElCqoE,aAIAC,EAF4BtoE,EAAQ,QAEpCsoE,eAIA4rF,EAFcl0J,EAAQ,QAEtBk0J,UAEAi/B,EAAWnzL,EAAQ,QAEnBs6B,EAAat6B,EAAQ,QAyJrB2D,EAAAC,QArIA,SAAAQ,GACAA,EAAAikM,iBAAA,iBAAAupB,GAGA,KAFA91L,EAAA81L,EAAA9iM,mBAEA,SAAAgN,EAAA73B,KAIA,aAAA2tN,EAAAntN,IAAA,WACA,IAAAotN,EAAAD,EAAAC,oBACAliD,EAAAiiD,EAAA7qC,WACAf,EAAArW,EAAAp+J,KACA00K,EAAAtW,EAAAsW,SACA6rC,EAAAF,EAAA9xL,SAAA,SACAmoJ,EAAA6pC,EAAArtN,IAAA,cAEAmtN,EAAAC,gBACA7rC,EAAA9mJ,KAAA,SAAA6B,GACA,IAAA5+B,EAAA6jL,EAAA8D,MAAA/oJ,GACAilJ,EAAAoE,cAAArpJ,EAAA8wL,EAAA1vN,KAAA+sK,YAEO+Y,GAAA,SAAAA,EAEA,aAAAA,GACP3/G,EAAAspJ,GAFAvpJ,EAAAupJ,GAKA,IAAAG,EAAA/rC,EAAAgsC,cAAA,SACAC,EAAAhsC,EAAA+rC,cAAA,SAEA9pC,EAAA4pC,EAAArtN,IAAA,aACA2jL,EAAA0pC,EAAArtN,IAAA,cAEA61B,EAAA/tB,QAAA27K,KACAA,SAGA5tJ,EAAA/tB,QAAA67K,KACAA,SAIAA,KAAA,GAAAA,EAAA,IACA,IA8BAtsJ,EA9BAiqJ,EAAAC,EAAAhmJ,SAAA,iBAAAh4B,EAAA+4B,GACA,IAAA+J,EAAAk7I,EAAA/lJ,cAAAc,GACAmxL,EAAAh+D,EAAAlsJ,EAAA+pN,EAAA7pC,GAMA,OAJAh9K,MAAAgnN,KACAA,GAAAhqC,EAAA,GAAAA,EAAA,QAIA1jE,EAAA0tG,EACAA,MACApwK,MAAAkkI,EAAApgH,aAAA7kC,GAAAt8B,IAAA,SACAktC,GAAA7G,GAAA5/B,MAAA4/B,EAAA,KAAA5/B,MAAA4/B,EAAA,SAAAA,KAGA66I,EAAAM,EAAAjmJ,SAAA,iBAAAh4B,EAAA+4B,GACA,IAAAqmJ,EAAAzX,EAAA0X,eAAAtmJ,GACA7R,EAAAglI,EAAAlsJ,EAAAiqN,EAAA7pC,GAMA,OAJAl9K,MAAAgkB,KACAA,GAAAk5J,EAAA,GAAAA,EAAA,QAIA+pC,GAAApsC,EAAAqB,EAAAG,MAAA1oJ,WACAuzL,GAAArsC,EAAAqB,EAAAK,MAAA5oJ,WACA3P,IACAw5J,UAAAtB,EAAAtnJ,WAAAr7B,IAAA,6BAIAkkC,GADA7M,EAAA81L,EAAA9iM,kBACAyZ,kBACA8pL,EAAA9pJ,EAAAw9G,EAAAJ,GACAh9I,OACAw/I,QAAA2pC,EAAArtN,IAAA,aAEA6tN,EAAAD,EAAAtqM,KAEAsqM,EAAAtqM,KAAA,SAAAggD,GACA,QAAAvmE,EAAA,EAAAC,EAAAskL,EAAArkL,OAAyCF,EAAAC,EAAOD,IAChDukL,EAAAvkL,GAAAsgD,OAEAqxI,EAAAjpJ,KAAA67I,EAAAvkL,GAAAmwC,EAAAg+H,EAAA4iD,eAAA/wN,GAAA6oL,aAIAioC,EAAA,SAAAvsC,EAAAJ,EAAA6sC,GACA,QAAAhxN,EAAA,EAAAC,EAAAskL,EAAArkL,OAA2CF,EAAAC,EAAOD,IAClDukL,EAAAvkL,GAAAsgD,OACA6tH,EAAA4iD,eAAA/wN,GAAA2oL,UAAApE,EAAAvkL,GAAAmwC,GAGAkgL,EAAA7rC,EAAA8D,MAAAtoL,IAAAukL,EAAAvkL,GAAAmwC,EAGA,IAAAnwC,EAAA,EAAAC,EAAAkkL,EAAAjkL,OAA2CF,EAAAC,EAAOD,IAAA,CAClD,IAAAoD,EAAA+gL,EAAAnkL,GACA4lL,EAAAzX,EAAA0X,eAAA7lL,GACA65B,EAAAz2B,EAAAutN,GAAAxgL,EACArW,EAAA12B,EAAAwtN,GAAAzgL,EACA9T,EAAAupJ,EAAAiD,aACAxsJ,MAAA96B,YACA,GAAA86B,EAAA,OACAA,EAAA,GAAAA,EAAA,OACAs1J,EAAAjpJ,KAAArM,EAAA,GAAAxC,GACA83J,EAAAjpJ,KAAArM,EAAA,GAAAvC,IAEA12B,EAAA8jL,YACA7qJ,EAAA,KAAAxC,EAAA,GAAAC,EAAA,OAAAD,EAAA,GAAAC,EAAA,IAAA12B,EAAA8jL,WAAArtJ,EAAA,GAAAC,EAAA,OAAAA,EAAA,GAAAD,EAAA,IAAAz2B,EAAA8jL,YAGAtB,EAAA+C,UAAAtsJ,GAIAkqC,KAAAyqJ,MAIAZ,EAAArpJ,YAAA8pJ,EACAT,EAAAC,kBAEAQ,EAAAtqM,YAGA6pM,EAAArpJ,YAAA,8BCtKA,IAAAttD,EAAcjb,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErB86B,EAAgB96B,EAAQ,QA0BxB,SAAAyyN,EAAAlhN,EAAAwvB,GACA9lB,EAAAskB,MAAApzB,KAAA1L,MACA,IAAA8/B,EAAA,IAAAtlB,EAAA4f,QACA5W,EAAA,IAAAhJ,EAAA2f,SACAkX,EAAA,IAAA72B,EAAA0wB,KAMA,SAAAy5B,IACAnhD,EAAAwgB,OAAAxgB,EAAAohD,YACAvzB,EAAArN,OAAAqN,EAAAuzB,YAGA,SAAAC,IACArhD,EAAAwgB,OAAAxgB,EAAAshD,aACAzzB,EAAArN,OAAAqN,EAAAyzB,aAZA9kE,KAAAi/B,IAAAa,GACA9/B,KAAAi/B,IAAAzb,GACAxjB,KAAAi/B,IAAAoS,GACArxC,KAAAihC,WAAAnwB,EAAAwvB,GAAA,GAYAtgC,KAAA0f,GAAA,WAAAilD,GAAAjlD,GAAA,SAAAmlD,GAAAnlD,GAAA,YAAAilD,GAAAjlD,GAAA,WAAAmlD,GAGA,IAAAotJ,EAAAD,EAAA9xN,UACAgyN,GAAA,uBAEAD,EAAAhxL,WAAA,SAAAnwB,EAAAwvB,EAAA0kC,GACA,IAAAllC,EAAA9/B,KAAAilE,QAAA,GACAzpC,EAAA1qB,EAAAuzB,UACA6gC,EAAAp0D,EAAAq0D,aAAA7kC,GACAhJ,EAAAxmB,EAAA0uB,cAAAc,GACAztB,EAAA/B,EAAAq0D,aAAA7kC,GAAAt8B,IAAAkuN,GACAr/M,EAAA,MAAAA,EAAA,EAAAA,EAEAitB,EAAAiD,aAEAiiC,GACAllC,EAAAyB,UACAnE,OAAA9F,EAAA8F,SAEA0C,EAAAwc,UACAzpC,QAAA,IAEA2H,EAAAgiB,UAAAsD,GACAvnB,OACA1F,YAEK2oB,EAAA8E,IAEL9lB,EAAAoqB,YAAA9E,GACAvnB,OACA1F,WAEAkV,OACAqV,OAAA9F,EAAA8F,SAEK5B,EAAA8E,GAIL,IAAAwnK,EAAA5iI,EAAA7lC,SAAA,aACAoC,EAAA3wB,EAAAojD,cAAA5zB,EAAA,SACAR,EAAAwc,SAAAziB,EAAAmJ,UACAG,SAAA,QACAzrB,KAAA+pB,GACGqmK,EAAAxiI,cAAA,cACHxlC,EAAAylC,WAAAuiI,EAAAzoK,SAAA,YAAAimC,eAEAtlE,KAAA0lE,aAAA50D,EAAAwvB,GAEA9lB,EAAAmrD,cAAA3lE,OAGAiyN,EAAAvsJ,aAAA,SAAA50D,EAAAwvB,GACA,IAAA9c,EAAAxjB,KAAAilE,QAAA,GACAW,EAAA5lE,KAAAilE,QAAA,GACAzpC,EAAA1qB,EAAAuzB,UACA6gC,EAAAp0D,EAAAq0D,aAAA7kC,GAEAulC,EADA/0D,EAAA0uB,cAAAc,GACA7tB,MACAgvB,EAAA3wB,EAAAojD,cAAA5zB,EAAA,SACA9lB,EAAAoqB,YAAAphB,GACAuE,OACAqV,OAAAyoC,EAAAC,YAAAD,EAAAC,aAEGtqC,EAAA8E,GACH9lB,EAAAoqB,YAAAghC,GACArtD,OACAlU,EAAAwhE,EAAAxhE,EACAE,EAAAshE,EAAAthE,IAEGi3B,EAAA8E,GACHslC,EAAA7iE,MACA80B,SAAAguC,EAAAhuC,SACAuR,QAAAy8B,EAAAxhE,EAAAwhE,EAAAthE,GACA6/B,GAAA,KAEA,IAAA2hC,EAAAb,EAAA7lC,SAAA,SACA2mC,EAAAd,EAAA7lC,SAAA,kBACA4mC,EAAAf,EAAA7lC,SAAA,aACA6mC,EAAAhB,EAAA7lC,SAAA,sBACAoC,EAAA3wB,EAAAojD,cAAA5zB,EAAA,SACA9lB,EAAA2rD,cAAAP,EAAArtD,MAAAqtD,EAAAL,cAAkEQ,EAAAC,GAClEI,aAAAt1D,EAAAuzB,UACAgiC,eAAA/lC,EACAgmC,YAAAx1D,EAAAqzD,QAAA7jC,GACAimC,UAAA9kC,EACA+kC,iBAAAX,EAAAY,SAEA/wB,UAAAmwB,EAAAnwB,UACAC,kBAAAkwB,EAAAntC,gBAEAktC,EAAA5hC,OAAA4hC,EAAAd,cAAAiB,EAAA/hE,IAAA,QACA4hE,EAAAhB,aAAAoB,EAAAhiE,IAAA,QACAwf,EAAAwgB,OAAAxgB,EAAAshD,cAAAmB,EAAAjiE,IAAA,QACAwf,EAAAohD,aAAAsB,EAAAliE,IAAA,QAEAwf,EAAA84B,UACApZ,OAAAzB,IAEAje,EAAA84B,SAAA2pB,EAAA5mC,SAAA,aAAA4D,gBACAzf,EAAA+hD,WAAAW,EAAA7mC,SAAA,aAAA4D,gBAGApJ,EAAA2xB,SAAAwmK,EAAAx3M,EAAAskB,OACA,IA2BA77B,EA3BAo3B,EAAA3wB,QACAlG,KAAA,SACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UACAwU,EAAA1gC,KAAAic,MACA+iB,EAAAh/B,KAAAg/B,MACAluB,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAqB,GACA,IAAA6xL,EAAA,IAAAH,EAAAlhN,EAAAwvB,GACAxvB,EAAA+vB,iBAAAP,EAAA6xL,GACAnzL,EAAAC,IAAAkzL,KACK51K,OAAA,SAAA0qB,EAAAC,GACL,IAAAH,EAAArmC,EAAAoD,iBAAAojC,GACAH,EAAA9lC,WAAAnwB,EAAAm2D,GACAjoC,EAAAC,IAAA8nC,GACAj2D,EAAA+vB,iBAAAomC,EAAAF,KACKtiE,OAAA,SAAA67B,GACL,IAAAymC,EAAArmC,EAAAoD,iBAAAxD,GACAtB,EAAAv6B,OAAAsiE,KACKI,UACLnnE,KAAAic,MAAAnL,GAEArM,OAAA,WACAzE,KAAAg/B,MAAAkG,YACAllC,KAAAic,MAAA,MAEAlX,QAAA,eAGA7B,EAAAC,QAAAF,wBCvLA,IAAA42B,EAAat6B,EAAQ,QAErBosL,EAAapsL,EAAQ,QA+DrB,SAAA6yN,EAAAC,EAAAC,EAAAC,GAKA,IAJA,IAAAxhN,KACAyhN,EAAAF,EAAA,GACAG,EAAAH,EAAA,GAEAvxN,EAAA,EAAiBA,EAAAsxN,EAAApxN,OAAuBF,GAAA,GACxC,IAAAsD,EAAAguN,EAAA7wH,WAAAzgG,GAAA,GACAwD,EAAA8tN,EAAA7wH,WAAAzgG,EAAA,MAEAsD,KAAA,MAAAA,GACAE,KAAA,MAAAA,GAIAiuN,EAFAnuN,GAAAmuN,EAGAC,EAFAluN,GAAAkuN,EAIA1hN,EAAAxP,MAAA8C,EAAAkuN,EAAAhuN,EAAAguN,IAGA,OAAAxhN,EAgDA7N,EAAAC,QAvCA,SAAA26D,GAEA,OArEA,SAAAjzC,GACA,IAAAA,EAAA6nM,aACA,OAAA7nM,EAGA,IAAA0nM,EAAA1nM,EAAA8nM,UAEA,MAAAJ,IACAA,EAAA,MAKA,IAFA,IAAAx0J,EAAAlzC,EAAAkzC,SAEA/a,EAAA,EAAiBA,EAAA+a,EAAA98D,OAAqB+hD,IAMtC,IALA,IACA4vK,EADA70J,EAAA/a,GACA4vK,SACAC,EAAAD,EAAAC,YACAP,EAAAM,EAAAN,cAEApyJ,EAAA,EAAmBA,EAAA2yJ,EAAA5xN,OAAwBi/D,IAAA,CAC3C,IAAAmyJ,EAAAQ,EAAA3yJ,GAEA,eAAA0yJ,EAAApvN,KACAqvN,EAAA3yJ,GAAAkyJ,EAAAC,EAAAC,EAAApyJ,GAAAqyJ,QACO,oBAAAK,EAAApvN,KACP,QAAAsvN,EAAA,EAAwBA,EAAAT,EAAApxN,OAAwB6xN,IAAA,CAChD,IAAAhzL,EAAAuyL,EAAAS,GACAT,EAAAS,GAAAV,EAAAtyL,EAAAwyL,EAAApyJ,GAAA4yJ,GAAAP,IAOA1nM,EAAA6nM,cAAA,EAkCAzlF,CAAAnvE,GACAjkC,EAAAlpB,IAAAkpB,EAAAzS,OAAA02C,EAAAC,SAAA,SAAAg1J,GAEA,OAAAA,EAAAH,UAAAG,EAAAxiB,YAAAwiB,EAAAH,SAAAC,YAAA5xN,OAAA,IACG,SAAA8xN,GACH,IAAAxiB,EAAAwiB,EAAAxiB,WACAj2L,EAAAy4M,EAAAH,SACAC,EAAAv4M,EAAAu4M,YACA3K,KAEA,YAAA5tM,EAAA9W,MACA0kN,EAAA3mN,MACAiC,KAAA,UAGAsoL,SAAA+mC,EAAA,GACArK,UAAAqK,EAAAvwN,MAAA,KAIA,iBAAAgY,EAAA9W,MACAq2B,EAAA4E,KAAAo0L,EAAA,SAAAlmN,GACAA,EAAA,IACAu7M,EAAA3mN,MACAiC,KAAA,UACAsoL,SAAAn/K,EAAA,GACA67M,UAAA77M,EAAArK,MAAA,OAMA,IAAAisI,EAAA,IAAAo9C,EAAA4kB,EAAA3tM,KAAAslN,EAAA3X,EAAAnL,IAEA,OADA72D,EAAAgiE,aACAhiE,2BCjIA,IAAAq1E,EAAYrkN,EAAQ,QAgCpB4D,EAAAosE,cAfA,SAAAx+B,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,EAAAzT,EAAA14B,EAAAE,GACA,OAAAw4B,EACA,SAGA,IAAA0yC,EAAA1yC,EAEA,QAAAx4B,EAAAysC,EAAAy+B,GAAAlrE,EAAAmsC,EAAA++B,GAAAlrE,EAAAupC,EAAA2hC,GAAAlrE,EAAAisC,EAAAi/B,GAAAlrE,EAAAysC,EAAAy+B,GAAAlrE,EAAAmsC,EAAA++B,GAAAlrE,EAAAupC,EAAA2hC,GAAAlrE,EAAAisC,EAAAi/B,GAAAprE,EAAA0sC,EAAA0+B,GAAAprE,EAAAosC,EAAAg/B,GAAAprE,EAAAwpC,EAAA4hC,GAAAprE,EAAAksC,EAAAk/B,GAAAprE,EAAA0sC,EAAA0+B,GAAAprE,EAAAosC,EAAAg/B,GAAAprE,EAAAwpC,EAAA4hC,GAAAprE,EAAAksC,EAAAk/B,IAIAm0I,EAAAoP,kBAAAjiL,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,EAAAnsC,EAAAE,EAAA,OACAkrE,EAAA,yBC7BA,IAAA51C,EAAat6B,EAAQ,QAErB0zN,EAAmB1zN,EAAQ,QAE3Bg0J,EAAiBh0J,EAAQ,QAEzB2zN,EAAY3zN,EAAQ,QAoBpBiL,EAAAqvB,EAAArvB,KACA2oN,EAAAF,EAAAvpN,QACAlG,KAAA,kBAKAgb,KAAA,SAAA7a,EAAAC,GAOA5D,KAAAozN,QAMA3vN,OAAA,SAAAkuM,EAAAhuM,EAAAC,EAAAggC,GACAuvL,EAAAvuN,WAAA5E,KAAA,SAAA8E,WAIA9E,KAAAozN,OAAAzhB,EAAA0hB,kBAEAx5L,EAAA4E,KAAAz+B,KAAA4xM,qBAAA,SAAA0hB,EAAAC,GACA,IAAAxzC,EAAAlmJ,EAAAlpB,IAAA2iN,EAAA,SAAAE,GACA,OAAAN,EAAAryC,gBAAA2yC,EAAAj8L,SAEAsC,EAAA4E,KAAA60L,EAAA,SAAAE,GACA,IAAA1yC,EAAA0yC,EAAAj8L,MACAk8L,EAAA9hB,EAAA10L,OACAi2M,EAAAjvN,SAAAL,GACAm7K,QAAAm0C,EAAAryC,gBAAAC,GACAf,cACAY,cAAA,SAAAx8K,EAAAE,EAAAE,GACA,OAAAu8K,EAAAzyJ,iBAAAoc,cAAApmC,EAAAE,KAEAo7K,WAAAgyB,EAAAjwM,GACAk/K,aAAA+wB,EAAA3tM,IAAA,eACAo7K,YAAA50K,EAAAxK,KAAA0zN,OAAA1zN,KAAAwzN,EAAAD,GACA/zC,aAAAh1K,EAAAxK,KAAA2zN,QAAA3zN,KAAAwzN,EAAAD,GACA9yC,SAAAgzC,EAAAhzC,SACA/sG,SAAA+/I,EAAA//I,SACAgtG,mBACArkB,iBAAAo3D,EAAAp3D,iBACAC,gBAAAm3D,EAAAn3D,gBACAC,wBAAAk3D,EAAAl3D,4BAGOv8J,OACFA,OAML+E,QAAA,WACAmuN,EAAAxuN,WAAA1E,KAAA4D,IAAA5D,KAAA2xM,cAAAjwM,IACAyxN,EAAAvuN,WAAA5E,KAAA,UAAA8E,WACA9E,KAAAozN,OAAA,MAMAM,OAAA,SAAAF,EAAAD,EAAAlpK,EAAAtc,EAAAC,EAAAgvH,EAAAC,EAAAgiB,EAAAC,GACA,IAAA00C,EAAA5zN,KAAAozN,OACAhzG,EAAAwzG,EAAAtxN,QAEA+zB,EAAAm9L,EAAAvhB,WAAA,GAEA,GAAA57K,EAAA,CAIA,IAAAw9L,EAAAC,EAAAP,IAAAv2D,EAAAC,IAAAgiB,EAAAC,GAAA7oJ,EAAAg0B,EAAAmpK,GACAO,EAAAF,EAAAG,QAAA5zG,EAAA,GAAAA,EAAA,IAAAyzG,EAAAI,MAAAJ,EAAAK,YAIA,OAHA3gE,EAAAwgE,EAAA3zG,GAAA,cACApgH,KAAAozN,OAAAhzG,EAEAwzG,EAAA,KAAAxzG,EAAA,IAAAwzG,EAAA,KAAAxzG,EAAA,GACAA,OADA,IAQAuzG,QAAA,SAAAH,EAAAD,EAAAlpK,EAAA94C,EAAA+tK,EAAAC,GACA,IAAAq0C,EAAA5zN,KAAAozN,OACAhzG,EAAAwzG,EAAAtxN,QAEA+zB,EAAAm9L,EAAAvhB,WAAA,GAEA,GAAA57K,EAAA,CAIA,IAAAw9L,EAAAC,EAAAP,GAAA,MAAAj0C,EAAAC,GAAAlpJ,EAAAg0B,EAAAmpK,GACAW,GAAAN,EAAAG,OAAA,EAAAH,EAAAO,WAAAP,EAAAK,YAAAL,EAAAI,MAAAJ,EAAAI,MAAAJ,EAAAO,YAAAP,EAAAK,aAAA9zG,EAAA,GAAAA,EAAA,IAAAA,EAAA,GACA7uG,EAAAxJ,KAAAE,IAAA,EAAAsJ,EAAA,GACA6uG,EAAA,IAAAA,EAAA,GAAA+zG,GAAA5iN,EAAA4iN,EACA/zG,EAAA,IAAAA,EAAA,GAAA+zG,GAAA5iN,EAAA4iN,EAEA,IAAA1E,EAAAzvN,KAAA2xM,cAAA+d,8BAAAC,gBAIA,OAHAp8D,EAAA,EAAAnzC,GAAA,SAAAqvG,EAAA4E,QAAA5E,EAAA6E,SACAt0N,KAAAozN,OAAAhzG,EAEAwzG,EAAA,KAAAxzG,EAAA,IAAAwzG,EAAA,KAAAxzG,EAAA,GACAA,OADA,MAKA0zG,GACAnuN,KAAA,SAAA4uN,EAAAC,EAAAn+L,EAAAg0B,EAAAmpK,GACA,IAAA/9L,EAAAY,EAAAZ,KACAkhD,KACAzuC,EAAAsrL,EAAAj8L,MAAAlJ,iBAAAk1C,UAgBA,OAfAgxJ,MAAA,KAEA,MAAA9+L,EAAA4C,KACAs+C,EAAAs9I,MAAAO,EAAA,GAAAD,EAAA,GACA59I,EAAAu9I,YAAAhsL,EAAAlvB,MACA29D,EAAAy9I,WAAAlsL,EAAA7jC,EACAsyE,EAAAq9I,OAAAv+L,EAAA8G,QAAA,OAGAo6C,EAAAs9I,MAAAO,EAAA,GAAAD,EAAA,GACA59I,EAAAu9I,YAAAhsL,EAAAjvB,OACA09D,EAAAy9I,WAAAlsL,EAAA3jC,EACAoyE,EAAAq9I,OAAAv+L,EAAA8G,SAAA,KAGAo6C,GAEAl7C,MAAA,SAAA84L,EAAAC,EAAAn+L,EAAAg0B,EAAAmpK,GACA,IAAA/9L,EAAAY,EAAAZ,KACAkhD,KACAl7C,EAAA+3L,EAAAj8L,MAAAlJ,iBACAuN,EAAAH,EAAAI,gBAAAC,YACAC,EAAAN,EAAAE,eAAAG,YAqBA,OApBAy4L,IAAA94L,EAAAg5L,aAAAF,IAAA,KACAC,EAAA/4L,EAAAg5L,aAAAD,GAEA,eAAAn+L,EAAAi5B,UACAqnB,EAAAs9I,MAAAO,EAAA,GAAAD,EAAA,GAGA59I,EAAAu9I,YAAAt4L,EAAA,GAAAA,EAAA,GACA+6C,EAAAy9I,WAAAx4L,EAAA,GACA+6C,EAAAq9I,OAAAv+L,EAAA8G,QAAA,OAGAo6C,EAAAs9I,MAAAO,EAAA,GAAAD,EAAA,GAGA59I,EAAAu9I,YAAAn4L,EAAA,GAAAA,EAAA,GACA46C,EAAAy9I,WAAAr4L,EAAA,GACA46C,EAAAq9I,OAAAv+L,EAAA8G,SAAA,KAGAo6C,GAEA+9I,WAAA,SAAAH,EAAAC,EAAAn+L,EAAAg0B,EAAAmpK,GACA,IAAA/9L,EAAAY,EAAAZ,KACAyS,EAAAsrL,EAAAj8L,MAAAlJ,iBAAAk1C,UACAoT,KAgBA,OAfA49I,MAAA,KAEA,eAAA9+L,EAAA3Y,QACA65D,EAAAs9I,MAAAO,EAAA,GAAAD,EAAA,GACA59I,EAAAu9I,YAAAhsL,EAAAlvB,MACA29D,EAAAy9I,WAAAlsL,EAAA7jC,EACAsyE,EAAAq9I,OAAAv+L,EAAA8G,QAAA,OAGAo6C,EAAAs9I,MAAAO,EAAA,GAAAD,EAAA,GACA59I,EAAAu9I,YAAAhsL,EAAAjvB,OACA09D,EAAAy9I,WAAAlsL,EAAA3jC,EACAoyE,EAAAq9I,OAAAv+L,EAAA8G,SAAA,KAGAo6C,IAGA1zE,EAAAkwN,EACAjwN,EAAAC,QAAAF,wBCvNA,IAoBAA,GACA4sE,WAAA,QACAja,KAtB0Br2D,EAAQ,OAsBlCo1N,GACA7pN,MAAA,SAAA0wB,GACA,IAAAH,EAAAG,EAAAnN,iBACAigD,EAAA9yC,EAAAx3B,IAAA,YACA4wN,EAAAp5L,EAAA0yC,gBAAAC,MAgEA,OACAzL,SA/DA,SAAA/wC,EAAAihK,GACA,IAAAiiC,KAEA,GAAAD,EAAA,CACA,IAAAx3L,EACA03L,EAAAnjM,EAAAT,IAAAS,EAAAnvB,MAEA,GAAA8rE,EAAA,CAGA,IAFA,IAAAymJ,EAAA,EAEAh0N,EAAA4wB,EAAAnvB,MAAoCzB,EAAA4wB,EAAAT,IAAgBnwB,IACpDg0N,GAAAv5L,EAAAw5L,mBAAAj0N,GAGAq8B,EAAA,IAAA63L,aAAAH,EAAA,EAAAC,QAEA33L,EAAA,IAAA63L,aAAA,EAAAH,GAGA,IAAApyL,EAAA,EACAhF,KAEA,IAAA38B,EAAA4wB,EAAAnvB,MAAkCzB,EAAA4wB,EAAAT,IAAgBnwB,IAAA,CAClD,IAAAc,EAAA25B,EAAA05L,cAAAn0N,EAAA8zN,GAEAvmJ,IACAlxC,EAAAsF,KAAA7gC,GAGA,QAAA4mB,EAAA,EAAyBA,EAAA5mB,EAAS4mB,IAClCiV,EAAArC,EAAA4O,YAAA4qL,EAAApsM,IAAA,EAAAiV,GACAN,EAAAsF,KAAAhF,EAAA,GACAN,EAAAsF,KAAAhF,EAAA,GAIAk1J,EAAAlJ,UAAA,cAAAtsJ,QAEA,IAAAr8B,EAAA4wB,EAAAnvB,MAAkCzB,EAAA4wB,EAAAT,IAAgBnwB,IAAA,CAClD,IAAAmkE,EAAA0tH,EAAAztH,aAAApkE,GAEA8wF,GADAhwF,EAAA25B,EAAA05L,cAAAn0N,EAAA8zN,OAGA,GAAAvmJ,EACA,QAAAp7C,EAAA,EAA2BA,EAAArxB,EAASqxB,IACpC2+D,EAAAtwF,KAAA85B,EAAA4O,YAAA4qL,EAAA3hM,SAEW,CACX2+D,EAAA,GAAAx2D,EAAA4O,YAAA4qL,EAAA,IACAhjI,EAAA,GAAAx2D,EAAA4O,YAAA4qL,EAAA,IACA,IAAA5sC,EAAA/iH,EAAAlhE,IAAA,wBAEAikL,IACAp2F,EAAA,KAAAA,EAAA,MAAAA,EAAA,UAAAA,EAAA,MAAAA,EAAA,OAAAo2F,GAAAp2F,EAAA,MAAAA,EAAA,UAAAA,EAAA,MAAAA,EAAA,OAAAo2F,IAIA2K,EAAAjJ,cAAA5oL,EAAA8wF,QAUA3uF,EAAAC,QAAAF,qCC7FAE,EAAAiuE,YAAA,EAEAjuE,EAAA4V,QAAA,SAAAwmC,EAAAp9C,GACA,IAAAgzN,EAAArwN,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,OACAghF,EAAAhhF,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA,IAAAy6C,IAAAp9C,EAAA,UAAAk9D,MAAA,mCACA,IAAA+1J,GAAA,EACAC,EAAA,WACAD,IACAA,GAAA,EACAjzN,GACAA,EAAAoK,MAAA,KAAAzH,aAGAghF,EACAvmC,EAAA+1K,MAAA,cAAAD,GAEA91K,EAAA0kI,IAAA,cAAAoxC,GAEA/oN,WAAA,WACA+oN,KACGF,EAAA,4BCxBH,IAAAjpK,EAAqB3sD,EAAQ,QAE7B6sD,EAAoB7sD,EAAQ,QAI5Bg2N,EAFoBh2N,EAAQ,QAE5Bg2N,mBAIAC,EAFkBj2N,EAAQ,QAE1Bi2N,wBA6BAtpK,EAAAxiD,QACAlG,KAAA,UAKAkxB,eAEAk4I,eAAA4oD,EAEAC,aAAA,KACA1zL,WAAA,KACAt/B,OAAA,MAEA6yL,cAAA,WACAigC,EAAAv1N,SAGAosD,EAAA1iD,QACAlG,KAAA,kCC1DA,IAAA2nC,EAAW5rC,EAAQ,QAEnBmzL,EAAWnzL,EAAQ,QAEnBm2N,EAAwBn2N,EAAQ,QAqBhC8kN,EAAA3xB,EAAA1qL,IACAs8M,EAAA5xB,EAAAzqL,IACA0tN,EAAAjjC,EAAAijC,YACAC,EAAAljC,EAAAjpJ,KAEA18B,KACA8oN,KACA5hC,KAEA,SAAA6hC,EAAA5kL,GACA,OAAAzmC,MAAAymC,EAAA,KAAAzmC,MAAAymC,EAAA,IAGA,SAAA6kL,EAAAlwL,EAAAzI,EAAA56B,EAAAwzN,EAAAC,EAAA96L,EAAA+6L,EAAAC,EAAAzwN,EAAA09B,EAAAC,GAoBA,eAAAD,KA+CA,SAAAyC,EAAAzI,EAAA56B,EAAAwzN,EAAAC,EAAA96L,EAAA+6L,EAAAC,EAAAzwN,EAAA09B,EAAAC,GAIA,IAHA,IAAA+yL,EAAA,EACA91L,EAAA99B,EAEAimB,EAAA,EAAiBA,EAAAutM,EAAYvtM,IAAA,CAC7B,IAAAyoB,EAAA9T,EAAAkD,GAEA,GAAAA,GAAA21L,GAAA31L,EAAA,EACA,MAGA,GAAAw1L,EAAA5kL,GAAA,CACA,GAAA7N,EAAA,CACA/C,GAAAnF,EACA,SAGA,MAGA,GAAAmF,IAAA99B,EACAqjC,EAAA1K,EAAA,qBAAA+V,EAAA,GAAAA,EAAA,SAEA,GAAAxrC,EAAA,GACA,IAAA2wN,EAAAj5L,EAAAg5L,GACA/9L,EAAA,MAAA+K,EAAA,IAEAkzL,GAAAplL,EAAA7Y,GAAAg+L,EAAAh+L,IAAA3yB,EACAkwN,EAAAC,EAAAQ,GACAR,EAAAx9L,GAAAg+L,EAAAh+L,GAAAi+L,EACAV,EAAA3hC,EAAA/iJ,GACA+iJ,EAAA57J,GAAA6Y,EAAA7Y,GAAAi+L,EACAzwL,EAAA0wL,cAAAV,EAAA,GAAAA,EAAA,GAAA5hC,EAAA,GAAAA,EAAA,GAAA/iJ,EAAA,GAAAA,EAAA,SAEArL,EAAAmhI,OAAA91H,EAAA,GAAAA,EAAA,IAIAklL,EAAA91L,EACAA,GAAAnF,EAGA,OAAA1S,GAtFAlc,MAAAvM,KAAA8E,WA+FA,SAAA+gC,EAAAzI,EAAA56B,EAAAwzN,EAAAC,EAAA96L,EAAA+6L,EAAAC,EAAAzwN,EAAA09B,EAAAC,GAIA,IAHA,IAAA+yL,EAAA,EACA91L,EAAA99B,EAEAimB,EAAA,EAAiBA,EAAAutM,EAAYvtM,IAAA,CAC7B,IAAAyoB,EAAA9T,EAAAkD,GAEA,GAAAA,GAAA21L,GAAA31L,EAAA,EACA,MAGA,GAAAw1L,EAAA5kL,GAAA,CACA,GAAA7N,EAAA,CACA/C,GAAAnF,EACA,SAGA,MAGA,GAAAmF,IAAA99B,EACAqjC,EAAA1K,EAAA,qBAAA+V,EAAA,GAAAA,EAAA,IACA0kL,EAAAC,EAAA3kL,QAEA,GAAAxrC,EAAA,GACA,IAAA8wN,EAAAl2L,EAAAnF,EACAs7L,EAAAr5L,EAAAo5L,GAEA,GAAAnzL,EAEA,KAAAozL,GAAAX,EAAA14L,EAAAo5L,KAEAC,EAAAr5L,EADAo5L,GAAAr7L,GAKA,IAAAu7L,EAAA,GACAL,EAAAj5L,EAAAg5L,GACAK,EAAAr5L,EAAAo5L,GAEA,IAAAC,GAAAX,EAAAW,GACAb,EAAA3hC,EAAA/iJ,OACS,CAOT,IAAAylL,EACAC,EAEA,GARAd,EAAAW,KAAApzL,IACAozL,EAAAvlL,GAGAwhJ,EAAA/oL,IAAAoD,EAAA0pN,EAAAJ,GAIA,MAAAjzL,GAAA,MAAAA,EAAA,CACA,IAAA/K,EAAA,MAAA+K,EAAA,IACAuzL,EAAA5uN,KAAAY,IAAAuoC,EAAA7Y,GAAAg+L,EAAAh+L,IACAu+L,EAAA7uN,KAAAY,IAAAuoC,EAAA7Y,GAAAo+L,EAAAp+L,SAEAs+L,EAAAjkC,EAAAmB,KAAA3iJ,EAAAmlL,GACAO,EAAAlkC,EAAAmB,KAAA3iJ,EAAAulL,GAKAd,EAAA1hC,EAAA/iJ,EAAAnkC,GAAArH,GAAA,GADAgxN,EAAAE,KAAAD,MAKAtS,EAAAwR,IAAAM,GACA7R,EAAAuR,IAAAK,GACA7R,EAAApwB,IAAAkiC,GACA7R,EAAArwB,IAAAiiC,GACArwL,EAAA0wL,cAAAV,EAAA,GAAAA,EAAA,GAAA5hC,EAAA,GAAAA,EAAA,GAAA/iJ,EAAA,GAAAA,EAAA,IAEAykL,EAAAE,EAAA3kL,EAAAnkC,EAAArH,EAAAgxN,QAEA7wL,EAAAmhI,OAAA91H,EAAA,GAAAA,EAAA,IAIAklL,EAAA91L,EACAA,GAAAnF,EAGA,OAAA1S,GApLAlc,MAAAvM,KAAA8E,WAuLA,SAAA+xN,EAAAz5L,EAAA05L,GACA,IAAAC,GAAAt9K,SACAu9K,IAAAv9K,UAEA,GAAAq9K,EACA,QAAA/1N,EAAA,EAAmBA,EAAAq8B,EAAAn8B,OAAmBF,IAAA,CACtC,IAAA28B,EAAAN,EAAAr8B,GAEA28B,EAAA,GAAAq5L,EAAA,KACAA,EAAA,GAAAr5L,EAAA,IAGAA,EAAA,GAAAq5L,EAAA,KACAA,EAAA,GAAAr5L,EAAA,IAGAA,EAAA,GAAAs5L,EAAA,KACAA,EAAA,GAAAt5L,EAAA,IAGAA,EAAA,GAAAs5L,EAAA,KACAA,EAAA,GAAAt5L,EAAA,IAKA,OACA11B,IAAA8uN,EAAAC,EAAAC,EACA/uN,IAAA6uN,EAAAE,EAAAD,GAIA,IAAA58L,EAAAgR,EAAAzhC,QACAlG,KAAA,cACAukB,OACAqV,UACA13B,OAAA,EACAoxN,kBAAA,EACA1zL,eAAA,KACAC,cAAA,GAEA9qB,OACAb,KAAA,KACAwrB,OAAA,QAEA7oB,MAAAq7M,EAAAvqL,EAAAjrC,UAAAma,OACAq1B,UAAA,SAAA7J,EAAA9d,GACA,IAAAqV,EAAArV,EAAAqV,OACAr8B,EAAA,EACAc,EAAAu7B,EAAAn8B,OACA8P,EAAA8lN,EAAAz5L,EAAArV,EAAA+uM,kBAEA,GAAA/uM,EAAAsb,aAAA,CAEA,KAAYxhC,EAAA,GACZi0N,EAAA14L,EAAAv7B,EAAA,IADqBA,KAMrB,KAAYd,EAAAc,GACZi0N,EAAA14L,EAAAr8B,IADqBA,MAOrB,KAAAA,EAAAc,GACAd,GAAAg1N,EAAAlwL,EAAAzI,EAAAr8B,EAAAc,IAAA,EAAAkP,EAAA/I,IAAA+I,EAAA9I,IAAA8f,EAAAriB,OAAAqiB,EAAAqb,eAAArb,EAAAsb,cAAA,KAIAjJ,EAAA+Q,EAAAzhC,QACAlG,KAAA,aACAukB,OACAqV,UAEA+C,mBACAz6B,OAAA,EACA89B,gBAAA,EACAszL,kBAAA,EACA1zL,eAAA,KACAC,cAAA,GAEAhpB,MAAAq7M,EAAAvqL,EAAAjrC,UAAAma,OACAq1B,UAAA,SAAA7J,EAAA9d,GACA,IAAAqV,EAAArV,EAAAqV,OACA+C,EAAApY,EAAAoY,gBACAp/B,EAAA,EACAc,EAAAu7B,EAAAn8B,OACAmiC,EAAArb,EAAAqb,eACAmmB,EAAAstK,EAAAz5L,EAAArV,EAAA+uM,kBACAG,EAAAJ,EAAA12L,EAAApY,EAAA+uM,kBAEA,GAAA/uM,EAAAsb,aAAA,CAEA,KAAYxhC,EAAA,GACZi0N,EAAA14L,EAAAv7B,EAAA,IADqBA,KAMrB,KAAYd,EAAAc,GACZi0N,EAAA14L,EAAAr8B,IADqBA,MAOrB,KAAAA,EAAAc,GAAA,CACA,IAAA4mB,EAAAstM,EAAAlwL,EAAAzI,EAAAr8B,EAAAc,IAAA,EAAA0nD,EAAAvhD,IAAAuhD,EAAAthD,IAAA8f,EAAAriB,OAAA09B,EAAArb,EAAAsb,cACA0yL,EAAAlwL,EAAA1F,EAAAp/B,EAAA0nB,EAAA,EAAAA,EAAA5mB,GAAA,EAAAo1N,EAAAjvN,IAAAivN,EAAAhvN,IAAA8f,EAAAyb,gBAAAJ,EAAArb,EAAAsb,cACAtiC,GAAA0nB,EAAA,EACAod,EAAA43I,gBAIAt6K,EAAAg3B,WACAh3B,EAAAi3B,8BClUAj3B,EAAAosE,cA3BA,SAAAx+B,EAAAC,EAAAP,EAAAC,EAAA3T,EAAA14B,EAAAE,GACA,OAAAw4B,EACA,SAGA,IAAA0yC,EAAA1yC,EACAm6L,EAAA,EAGA,GAAA3yN,EAAAysC,EAAAy+B,GAAAlrE,EAAAmsC,EAAA++B,GAAAlrE,EAAAysC,EAAAy+B,GAAAlrE,EAAAmsC,EAAA++B,GAAAprE,EAAA0sC,EAAA0+B,GAAAprE,EAAAosC,EAAAg/B,GAAAprE,EAAA0sC,EAAA0+B,GAAAprE,EAAAosC,EAAAg/B,EACA,SAGA,GAAA1+B,IAAAN,EAIA,OAAA1oC,KAAAY,IAAAtE,EAAA0sC,IAAA0+B,EAAA,EAGA,IAAAC,GANAwnJ,GAAAlmL,EAAAN,IAAAK,EAAAN,IAMApsC,EAAAE,GALAwsC,EAAAL,EAAAD,EAAAO,IAAAD,EAAAN,GASA,OAFAi/B,KAAAwnJ,IAAA,IAEAznJ,EAAA,EAAAA,EAAA,yBCnCAvsE,EAAAC,QAAiB5D,EAAQ,8BCAzB,IAAAm4C,EAAiBn4C,EAAQ,QAEzBisM,EAAiBjsM,EAAQ,QAEzBk4C,EAAYl4C,EAAQ,QAEpBi0J,EAAaj0J,EAAQ,QAyBrB43N,EAAAz/K,EAAAttC,MAMAutC,EAAAF,EAAA/tC,QACAlG,KAAA,WACAq2C,UAAA,EACAu9K,mBAAA,EACAj+K,UAAA,SAAA32C,EAAA0uB,GACA,IAAAmmM,EAAAr3N,KAAA44C,QAEAnuC,MAAAjI,KACA60N,EAAA,GAAA7xM,WAAAhjB,IAGAiI,MAAAymB,KACAmmM,EAAA,GAAA7xM,WAAA0L,KAGAkoB,YAAA,SAAAg/F,GACA,IAAAp9G,EAAAh7B,KAAA44C,QACAw/F,EAAA,GAAAp9G,EAAA,KAAAA,EAAA,GAAAo9G,EAAA,IACAA,EAAA,GAAAp9G,EAAA,KAAAA,EAAA,GAAAo9G,EAAA,IAEAzgG,EAAAz3C,UAAAi5C,UAAAztC,KAAA1L,KAAAg7B,EAAA,GAAAA,EAAA,KAMAs8L,YAAA,WACA,OAAAt3N,KAAA65C,WAMA6uE,YAAA,SAAAhvE,GACA15C,KAAA65C,UAAAH,EAGA15C,KAAA85C,YAAA95C,KAAA44C,QAAAt2C,QACAtC,KAAAo3N,mBAAA5jE,EAAA+jE,qBAAA79K,IAMAhB,SAAA,WACA,OAAA86G,EAAAgkE,sBAAAx3N,KAAA65C,UAAA75C,KAAA44C,QAAA54C,KAAA85C,YAAA95C,KAAAo3N,qBAUAl+K,SAAA,SAAApoC,EAAA8nB,GACA,SAAA9nB,EACA,SAGA,IAAAzH,EAAAuvB,KAAAvvB,UAYA,OAVA,MAAAA,EACAA,EAAAquC,EAAAI,iBAAAhnC,IAAA,EACK,SAAAzH,IAELA,EAAArJ,KAAAo3N,oBAKAtmN,EAAAqmN,EAAArmN,EAAAzH,GAAA,GACAmiM,EAAAisB,UAAA3mN,IAUAyoC,UAAA,SAAAvxB,EAAAsqJ,EAAAC,GACAvqJ,KAAA,EACA,IAAAgT,EAAAh7B,KAAA44C,QACAxf,EAAA4B,EAAA,GAAAA,EAAA,GAEA,GAAAsjB,SAAAllB,GAAA,CAMAA,EAAA,IACAA,KACA4B,EAAAzT,WAGA,IAAAxW,EAAAyiJ,EAAAkkE,uBAAA18L,EAAAhT,EAAAsqJ,EAAAC,GACAvyK,KAAAo3N,mBAAArmN,EAAA4mN,kBACA33N,KAAA65C,UAAA9oC,EAAA2oC,SACA15C,KAAA85C,YAAA/oC,EAAA6mN,iBAYAh+K,WAAA,SAAAhhB,GACA,IAAAoC,EAAAh7B,KAAA44C,QAEA,GAAA5d,EAAA,KAAAA,EAAA,GACA,OAAAA,EAAA,IAEA,IAAAgC,EAAAhC,EAAA,GAMApC,EAAAohB,OAIAhf,EAAA,IAAAgC,EAAA,GAHAhC,EAAA,IAAAgC,EAAA,EACAhC,EAAA,IAAAgC,EAAA,QAKAhC,EAAA,KAIA,IAAA5B,EAAA4B,EAAA,GAAAA,EAAA,GAEAsjB,SAAAllB,KACA4B,EAAA,KACAA,EAAA,MAGAh7B,KAAAu5C,UAAA3gB,EAAA5Q,YAAA4Q,EAAA05I,YAAA15I,EAAA25I,aAEA,IAAA74H,EAAA15C,KAAA65C,UAEAjhB,EAAAmhB,SACA/e,EAAA,GAAAm8L,EAAApvN,KAAAkwC,MAAAjd,EAAA,GAAA0e,OAGA9gB,EAAAohB,SACAhf,EAAA,GAAAm8L,EAAApvN,KAAAowC,KAAAnd,EAAA,GAAA0e,UAQA/B,EAAAjO,OAAA,WACA,WAAAiO,GAGA,IAAA10C,EAAA00C,EACAz0C,EAAAC,QAAAF,wBC1MA,IAAAuhD,EAAajlD,EAAQ,QACrBwhL,EAAWxhL,EAAQ,QACnBsmC,EAAUtmC,EAAQ,QAClBwsM,EAAWxsM,EAAQ,QACnB4lD,EAAU5lD,EAAQ,QAGlBs4N,EAAA,SAAAr0N,EAAAZ,EAAAH,GACA,IASAsH,EAAA+tN,EAAA3tL,EATA4tL,EAAAv0N,EAAAq0N,EAAAG,EACAC,EAAAz0N,EAAAq0N,EAAAK,EACAC,EAAA30N,EAAAq0N,EAAA33D,EACAk4D,EAAA50N,EAAAq0N,EAAAQ,EACAC,EAAA90N,EAAAq0N,EAAAU,EACAC,EAAAh1N,EAAAq0N,EAAAY,EACAt1N,EAAA80N,EAAAl3C,IAAAn+K,KAAAm+K,EAAAn+K,OACA81N,EAAAv1N,EAAA,UACA5C,EAAA03N,EAAAzzK,EAAA2zK,EAAA3zK,EAAA5hD,IAAA4hD,EAAA5hD,QAAkF,UAGlF,IAAAmH,KADAkuN,IAAAx1N,EAAAG,GACAH,GAEAq1N,GAAAC,GAAAx3N,QAAAmN,IAAAnN,EAAAwJ,KACAo7C,EAAAhiD,EAAA4G,KAEAogC,EAAA2tL,EAAAv3N,EAAAwJ,GAAAtH,EAAAsH,GAEA5G,EAAA4G,GAAAkuN,GAAA,mBAAA13N,EAAAwJ,GAAAtH,EAAAsH,GAEAuuN,GAAAR,EAAAjyL,EAAAsE,EAAAqa,GAEAg0K,GAAAj4N,EAAAwJ,IAAAogC,EAAA,SAAA8F,GACA,IAAA+nL,EAAA,SAAAziN,EAAAC,EAAA0qD,GACA,GAAAlgE,gBAAAiwC,EAAA,CACA,OAAAnrC,UAAA7D,QACA,kBAAAgvC,EACA,kBAAAA,EAAA16B,GACA,kBAAA06B,EAAA16B,EAAAC,GACW,WAAAy6B,EAAA16B,EAAAC,EAAA0qD,GACF,OAAAjwB,EAAA1jC,MAAAvM,KAAA8E,YAGT,OADAkzN,EAAA,UAAA/nL,EAAA,UACA+nL,EAXA,CAaK7tL,GAAAiuL,GAAA,mBAAAjuL,EAAAtE,EAAA1sB,SAAAzN,KAAAy+B,KAELiuL,KACAj1N,EAAA8zK,UAAA9zK,EAAA8zK,aAA+CltK,GAAAogC,EAE/C3mC,EAAAq0N,EAAA5mL,GAAAynL,MAAA3uN,IAAAgiM,EAAA2sB,EAAA3uN,EAAAogC,MAKA0tL,EAAAG,EAAA,EACAH,EAAAK,EAAA,EACAL,EAAA33D,EAAA,EACA23D,EAAAQ,EAAA,EACAR,EAAAU,EAAA,GACAV,EAAAY,EAAA,GACAZ,EAAAc,EAAA,GACAd,EAAA5mL,EAAA,IACA/tC,EAAAC,QAAA00N,sBC5DA,IAOAe,EAPAhvN,OAAA1J,UAOA0H,SAaA1E,EAAAC,QAJA,SAAAoE,GACA,OAAAqxN,EAAAltN,KAAAnE,0BClBchI,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErB06B,EAAgB16B,EAAQ,QAExB02M,EAAkB12M,EAAQ,QAE1Bs5N,EAAiBt5N,EAAQ,QAuBzB6D,EAAAg4D,qBAAA,SAAAn+C,GACA,IAAA67M,EAAA77M,EAAAzC,QAOAqf,EAAA/tB,QAAAgtN,GACAA,EAAA,IAAAA,EAAA,GAAAC,SAOA97M,EAAAzC,SAAAyC,EAAAzC,QAAA,IANAyC,EAAAzC,UACAu+M,SAAAD,IAOGA,MAAAC,WACH97M,EAAAzC,UACAu+M,UAAAD,QAOA,IAAAE,EAAA51N,EAAAoxB,sBACAhxB,KAAA,UACAkxB,eAyBAqkM,YACAE,SAAA,MAUAC,mBAAA,KAKA9zC,YAAA,SAAAnoK,GAEA,IAAA87M,EAAA/4N,KAAAid,OAAA87M,SACA/4N,KAAAid,OAAA87M,SAAA,KACAC,EAAAp0N,WAAA5E,KAAA,cAAA8E,WACA9E,KAAAid,OAAA87M,YAMAzjC,cAAA,SAAA3zH,EAAA+7G,GACA,IAAAh8G,EAAA1hE,KAAAid,OACAk8M,GAAAz7C,EAAAh8G,EAAAC,GAAAo3J,SACAK,EAAA13J,EAAAq3J,SAAAr7C,KAAAh8G,EAAAq3J,SACAM,KAEAr5N,KAAAs5N,SAAAH,EAAAE,GAEA,IAAAE,EAAAt/L,EAAAu/L,gBAAAJ,EAAAC,GACAp/L,EAAAw/L,cAAAF,GAEA,IAAAG,EAAA15N,KAAAk5N,sBACAr/L,EAAA4E,KAAA86L,EAAA,SAAAI,EAAA/sN,GACA,IAAAgtN,EAAAD,EAAA18M,OAEA28M,IAIAF,EAAAn4N,KAAAq4N,GA2QA,SAAAD,EAAAC,GACA,IAAAC,EAAAF,EAAAG,MAKA,GAHAF,EAAAl4N,GAAAi4N,EAAAI,QAAAr4N,IACAk4N,EAAAp2N,MAAAq2N,IAAAD,EAAAp2N,KAAAq2N,EAAAr2N,MAEA,MAAAo2N,EAAAX,SAAA,CACA,IAAAe,EAAAJ,EAAAK,aAEAD,EACAJ,EAAAX,SAAAe,EAAAt4N,GACKm4N,IACLD,EAAAX,SAAAY,EAAAZ,UAKAW,EAAAK,aAAA,KA3RAC,CAAAP,EAAAC,GA8RA,SAAAR,EAAAxsN,EAAAgtN,GAEA,IAAAO,EAAAtgM,EAAAnwB,UAAqCkwN,GACrCC,EAAAT,EAAAxsN,GACAwtN,EAAAR,EAAAQ,SAAA,QAEA,UAAAA,EACAP,GAGAhgM,EAAA82C,MAAAkpJ,EAAAM,GAAA,GAEAtB,EAAAxjC,iBAAAwkC,EAAAM,GACAE,YAAA,IAGAxB,EAAAyB,iBAAAV,EAAAC,IAEAT,EAAAxsN,GAAAutN,EAEG,YAAAC,EACHhB,EAAAxsN,GAAAutN,EACG,WAAAC,GAEHP,IAAAT,EAAAxsN,GAAA,MArTA2tN,CAAAnB,EAAAxsN,EAAAgtN,GAyTA,SAAAY,EAAAZ,GACA,IAAAY,EACA,OAGAA,EAAAC,GAAAb,EAAAa,IACAC,EAAAd,GAAA,iBACAc,EAAAd,GAAA,kBAEA,UAAAY,EAAAh3N,OACA,MAAAg3N,EAAAxhN,QAAAwhN,EAAAxhN,MAAA4gN,EAAA5gN,MAAA,GACA,MAAAwhN,EAAAvhN,SAAAuhN,EAAAvhN,OAAA2gN,EAAA3gN,OAAA,IAnUA0hN,CAAAvB,EAAAxsN,GAAAgtN,KACK55N,MAEL,QAAAe,EAAAq4N,EAAAn4N,OAAA,EAAsCF,GAAA,EAAQA,IAC9C,MAAAq4N,EAAAr4N,GACAq4N,EAAA93N,OAAAP,EAAA,UAIAq4N,EAAAr4N,GAAAq5N,SAwBAd,SAAA,SAAAsB,EAAA7pN,EAAAkpN,GACApgM,EAAA4E,KAAAm8L,EAAA,SAAA39M,GACA,GAAAA,EAAA,CAIAg9M,IACAh9M,EAAAg9M,gBAGAlpN,EAAAxP,KAAA0b,GACA,IAAAsrK,EAAAtrK,EAAAsrK,SAEA,UAAAtrK,EAAAzZ,MAAA+kL,GACAvoL,KAAAs5N,SAAA/wC,EAAAx3K,EAAAkM,UAIAA,EAAAsrK,WACKvoL,OAIL66N,qBAAA,WACA,IAAAC,EAAA96N,KAAAk5N,mBAGA,OADAl5N,KAAAk5N,mBAAA,KACA4B,KAsKA,SAAAC,EAAAr5N,EAAAs5N,EAAA5kM,EAAA6kM,GACA,IAAAC,EAAA9kM,EAAA5yB,KAEA/C,EAAA,IAAA06N,EADAllB,EAAAilB,EAAAh8K,OAAA,GAAAlN,cAAAkpL,EAAA54N,MAAA,KACA8zB,GACA4kM,EAAA/7L,IAAAx+B,GACAw6N,EAAAj2K,IAAAtjD,EAAAjB,GACAA,EAAA26N,cAAA15N,EAGA,SAAA25N,EAAAC,EAAAL,GACA,IAAAM,EAAAD,KAAA/xL,OAEAgyL,IACA,UAAAD,EAAA93N,MAAA83N,EAAA3iK,SAAA,SAAAl4D,GACA46N,EAAA56N,EAAAw6N,KAEAA,EAAAO,UAAAF,EAAAF,eACAG,EAAA92N,OAAA62N,IAaA,SAAAZ,EAAAvvN,EAAArI,GACA,IAAA24N,EAIA,OAHA5hM,EAAA4E,KAAA37B,EAAA,SAAAhC,GACA,MAAAqK,EAAArK,IAAA,SAAAqK,EAAArK,KAAA26N,GAAA,KAEAA,EAnMAr4N,EAAAG,qBACAC,KAAA,UAKAgb,KAAA,SAAA7a,EAAAC,GAKA5D,KAAA07N,OAAA7hM,EAAAk7B,gBAMA/0D,KAAA27N,mBAMAl4N,OAAA,SAAAm4N,EAAAj4N,EAAAC,GAUAg4N,IAAA57N,KAAA27N,mBACA37N,KAAA67N,SAGA77N,KAAA27N,kBAAAC,EAEA57N,KAAA87N,gBAAAF,EAAAh4N,GAEA5D,KAAA+7N,UAAAH,EAAAh4N,IAUAk4N,gBAAA,SAAAF,EAAAh4N,GACA,IAAA81N,EAAAkC,EAAAf,uBAEA,GAAAnB,EAAA,CAIA,IAAAuB,EAAAj7N,KAAA07N,OACAM,EAAAh8N,KAAAg/B,MAEAnF,EAAA4E,KAAAi7L,EAAA,SAAAtjM,GACA,IAAAgkM,EAAAhkM,EAAAgkM,QACA14N,EAAA00B,EAAA10B,GACA45N,EAAAL,EAAAj3N,IAAAtC,GACAu3N,EAAA7iM,EAAA6iM,SACA+B,EAAA,MAAA/B,EAAAgC,EAAAj3N,IAAAi1N,GAAA+C,EAEA,YAAA5lM,EAAA5yB,KAAA,CACA,IAAAy4N,EAAA7lM,EAAA7d,MAGA6d,EAAAqkM,IAAArkM,EAAAqkM,GAAA,KACAwB,EAAAtmL,kBAAAsmL,EAAAC,aAAA,OAKAD,EAAAp5N,eAAA,aAAAo5N,EAAAvkN,OAAAukN,EAAA3kL,SAAA2kL,EAAAvkN,OACAukN,EAAAp5N,eAAA,eAAAo5N,EAAA/4L,SAAA+4L,EAAA1kL,WAAA0kL,EAAA/4L,QAIA,IAAAi5L,EAmGA,SAAA/lM,GAKA,OAJAA,EAAAyD,EAAAnwB,UAA6B0sB,GAC7ByD,EAAA4E,MAAA,2CAAA1pB,OAAA8jN,EAAAuD,iBAAA,SAAAx5N,UACAwzB,EAAAxzB,KAEAwzB,EAxGAimM,CAAAjmM,GAEAgkM,GAAA,UAAAA,EAEO,YAAAA,GACPiB,EAAAC,EAAAL,GACAF,EAAAr5N,EAAAs5N,EAAAmB,EAAAlB,IACO,WAAAb,GACPiB,EAAAC,EAAAL,GALAK,IAAAv4N,KAAAo5N,GAAApB,EAAAr5N,EAAAs5N,EAAAmB,EAAAlB,GAQA,IAAAx6N,EAAAw6N,EAAAj3N,IAAAtC,GAEAjB,IACAA,EAAA67N,iBAAAlmM,EAAApd,MACAvY,EAAA87N,kBAAAnmM,EAAAnd,YAYA8iN,UAAA,SAAAH,EAAAh4N,GAKA,IAJA,IAAA44N,EAAAZ,EAAA3+M,OAAA87M,SACAiD,EAAAh8N,KAAAg/B,MACAi8L,EAAAj7N,KAAA07N,OAEA36N,EAAAy7N,EAAAv7N,OAAA,EAAsCF,GAAA,EAAQA,IAAA,CAC9C,IAAAq1B,EAAAomM,EAAAz7N,GACAN,EAAAw6N,EAAAj3N,IAAAoyB,EAAA10B,IAEA,GAAAjB,EAAA,CAIA,IAAAg8N,EAAAh8N,EAAA8oC,OACAmzL,EAAAD,IAAAT,GACAhjN,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,cAGA/4C,MAAAyjN,EAAAH,kBAAA,EACArjN,OAAAwjN,EAAAF,mBAAA,GAEA1D,EAAAttB,gBAAA9qM,EAAA21B,EAAAsmM,EAAA,MACAjC,GAAArkM,EAAAqkM,GACAkC,aAAAvmM,EAAAwmM,cAUAf,OAAA,WACA,IAAAZ,EAAAj7N,KAAA07N,OACAT,EAAAx8L,KAAA,SAAAh+B,GACA46N,EAAA56N,EAAAw6N,KAEAj7N,KAAA07N,OAAA7hM,EAAAk7B,iBAMAhwD,QAAA,WACA/E,KAAA67N,kCCxWA,IAaAgB,EAAA99E,EAAA+oB,EAbAjiI,EAAUtmC,EAAQ,QAClBu9N,EAAav9N,EAAQ,QACrBqiD,EAAWriD,EAAQ,QACnBw9N,EAAUx9N,EAAQ,QAClBilD,EAAajlD,EAAQ,QACrBy9N,EAAAx4K,EAAAw4K,QACAC,EAAAz4K,EAAA04K,aACAC,EAAA34K,EAAA44K,eACAC,EAAA74K,EAAA64K,eACAC,EAAA94K,EAAA84K,SACAx8F,EAAA,EACAy8F,KAGAC,EAAA,WACA,IAAA97N,GAAA1B,KAEA,GAAAu9N,EAAA16N,eAAAnB,GAAA,CACA,IAAAuK,EAAAsxN,EAAA77N,UACA67N,EAAA77N,GACAuK,MAGA05E,EAAA,SAAApuB,GACAimK,EAAA9xN,KAAA6rD,EAAAzmD,OAGAmsN,GAAAE,IACAF,EAAA,SAAAhxN,GAGA,IAFA,IAAAG,KACArL,EAAA,EACA+D,UAAA7D,OAAAF,GAAAqL,EAAA7K,KAAAuD,UAAA/D,MAMA,OALAw8N,IAAAz8F,GAAA,WAEAg8F,EAAA,mBAAA7wN,IAAAkN,SAAAlN,GAAAG,IAEAywN,EAAA/7F,GACAA,GAEAq8F,EAAA,SAAAz7N,UACA67N,EAAA77N,IAGsB,WAAhBnC,EAAQ,OAARA,CAAgBy9N,GACtBH,EAAA,SAAAn7N,GACAs7N,EAAAnkJ,SAAAhzC,EAAA23L,EAAA97N,EAAA,KAGG47N,KAAA5tN,IACHmtN,EAAA,SAAAn7N,GACA47N,EAAA5tN,IAAAm2B,EAAA23L,EAAA97N,EAAA,KAGG27N,GAEHv1D,GADA/oB,EAAA,IAAAs+E,GACAI,MACA1+E,EAAA2+E,MAAAC,UAAAh4I,EACAk3I,EAAAh3L,EAAAiiI,EAAA1jD,YAAA0jD,EAAA,IAGGtjH,EAAA5lC,kBAAA,mBAAAwlG,cAAA5/D,EAAAo5K,eACHf,EAAA,SAAAn7N,GACA8iD,EAAA4/D,YAAA1iH,EAAA,SAEA8iD,EAAA5lC,iBAAA,UAAA+mE,GAAA,IAGAk3I,EAvDA,uBAsDGE,EAAA,UACH,SAAAr7N,GACAkgD,EAAA3xC,YAAA8sN,EAAA,yCACAn7K,EAAApV,YAAAxsC,MACAw9N,EAAA9xN,KAAAhK,KAKA,SAAAA,GACA4K,WAAAu5B,EAAA23L,EAAA97N,EAAA,QAIAwB,EAAAC,SACA6hD,IAAAi4K,EACA73K,MAAA+3K,yBClFA,IAAAU,EAAmBt+N,EAAQ,QAE3Bu+N,EAAmBv+N,EAAQ,QAkC3B4D,EAAAusC,UAhCA,SAAA7J,EAAA9d,EAAA01J,GACA,IAAArgJ,EAAArV,EAAAqV,OACA13B,EAAAqiB,EAAAriB,OAEA,GAAA03B,KAAAn8B,QAAA,GACA,GAAAyE,GAAA,WAAAA,EAAA,CACA,IAAAq4N,EAAAD,EAAA1gM,EAAA13B,EAAA+3K,EAAA11J,EAAA+uM,kBACAjxL,EAAAkhI,OAAA3pI,EAAA,MAAAA,EAAA,OAGA,IAFA,IAAAv7B,EAAAu7B,EAAAn8B,OAEAF,EAAA,EAAqBA,GAAA08K,EAAA57K,IAAA,GAAiCd,IAAA,CACtD,IAAAkzL,EAAA8pC,EAAA,EAAAh9N,GACAi9N,EAAAD,EAAA,EAAAh9N,EAAA,GACAmwC,EAAA9T,GAAAr8B,EAAA,GAAAc,GACAgkC,EAAA0wL,cAAAtiC,EAAA,GAAAA,EAAA,GAAA+pC,EAAA,GAAAA,EAAA,GAAA9sL,EAAA,GAAAA,EAAA,SAEK,CACL,WAAAxrC,IACA03B,EAAAygM,EAAAzgM,EAAAqgJ,IAGA53I,EAAAkhI,OAAA3pI,EAAA,MAAAA,EAAA,OAEAr8B,EAAA,UAAAC,EAAAo8B,EAAAn8B,OAAwCF,EAAAC,EAAOD,IAC/C8kC,EAAAmhI,OAAA5pI,EAAAr8B,GAAA,GAAAq8B,EAAAr8B,GAAA,IAIA08K,GAAA53I,EAAA43I,oCChCA,IAAAh1F,EAAoO,oBAAAt8E,WAApOs8E,EAAoO,WAA+C,gBAAAtkF,GAAmB,SAAAskF,EAAArqC,GAAc,GAAA3mC,EAAA2mC,GAAA,OAAA3mC,EAAA2mC,GAAAj7C,QAA4B,IAAApC,EAAA0W,EAAA2mC,IAAYr9C,EAAAq9C,EAAAp9C,GAAA,EAAAmC,YAAqB,OAAAgB,EAAAi6C,GAAA1yC,KAAA3K,EAAAoC,QAAApC,IAAAoC,QAAAslF,GAAA1nF,EAAAC,GAAA,EAAAD,EAAAoC,QAA2D,IAAAsU,KAAS,OAAAgxE,EAAA97D,EAAAxoB,EAAAskF,EAAAvoB,EAAAzoD,EAAAgxE,EAAAh6D,EAAA,SAAAtqB,EAAAsT,EAAA2mC,GAAuCqqC,EAAAtX,EAAAhtE,EAAAsT,IAAA7N,OAAAwB,eAAAjH,EAAAsT,GAAqCnM,cAAA,EAAAD,YAAA,EAAArH,IAAAo6C,KAAsCqqC,EAAArqC,EAAA,SAAAj6C,GAAiB,IAAAsT,EAAAtT,KAAAitE,WAAA,WAAiC,OAAAjtE,EAAA4U,SAAiB,WAAY,OAAA5U,GAAU,OAAAskF,EAAAh6D,EAAAhX,EAAA,IAAAA,MAAsBgxE,EAAAtX,EAAA,SAAAhtE,EAAAskF,GAAmB,OAAA7+E,OAAA1J,UAAA2C,eAAA6I,KAAAvH,EAAAskF,IAAiDA,EAAAv3C,EAAA,SAAAu3C,IAAAtwE,EAAA,GAAvc,EAA8d,SAAAhU,EAAAskF,EAAAhxE,GAAkB,aAAa,IAAA2mC,EAAA3mC,EAAA,GAAWgxE,EAAAlzE,GAAK3S,KAAA,WAAAE,OAAuBm7N,WAAWz6N,KAAAoG,OAAAmP,QAAA,eAAkCjI,KAAA,WAAiB,OAAOotN,UAAA,6BAAAC,SAAA,EAAAC,WAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAh0M,UAAqIi3J,KAAA4jC,KAAAzjC,KAAA0lC,KAAAmX,KAAAC,KAAAnX,MAAmCoX,aAAA,KAAkBtjN,OAAQ0iN,UAAA,WAAqBj+N,KAAAitF,aAAiBntE,QAAA,WAAoB9f,KAAAitF,YAAgBltE,QAAA,WAAoB/f,KAAA8+N,iBAAqB/iN,SAAUkxE,SAAA,WAAoB,GAAAjtF,KAAAi+N,WAAAj+N,KAAAi+N,qBAAAr0N,OAAA,QAAAzF,EAAA,EAAgEA,GAAA,EAAKA,IAAA,CAAK,IAAAskF,EAAA58E,MAAAC,QAAA9L,KAAAi+N,UAAA95N,IAAuCnE,KAAA0qB,SAAAvmB,GAAAskF,KAAA1zE,OAAA/U,KAAAi+N,UAAA95N,SAAoD46N,cAAA,SAAA56N,GAA2B,QAAAnE,KAAA0qB,SAAAvmB,GAAAlD,OAAA,CAAiC,QAAAwnF,KAAAhxE,EAAA,EAAiBA,EAAA,GAAKA,IAAAgxE,EAAAlnF,KAAAkW,GAAczX,KAAA0qB,SAAAvmB,GAAAskF,OAAmBzoF,KAAA0qB,SAAAvmB,GAAA7C,OAAA,EAAAtB,KAAA0qB,SAAAvmB,GAAAlD,QAAwDjB,KAAA8+N,iBAAqBE,gBAAA,SAAA76N,EAAAskF,GAA+B,GAAAA,EAAA,CAAM,QAAAhxE,GAAA,EAAA2mC,EAAAj6C,EAAiBi6C,GAAAqqC,EAAKrqC,IAAA,IAAAp+C,KAAAi/N,oBAAA7gL,GAAA,CAAqC3mC,GAAA,EAAK,MAAM,GAAAA,EAAA,QAAA1W,EAAA,EAAiBA,GAAA,EAAKA,IAAA,QAAAoX,EAAAhU,EAAgBgU,GAAAswE,EAAKtwE,IAAAnY,KAAAk/N,WAAAn+N,EAAAoX,QAAyB,QAAAg5D,EAAA,EAAiBA,GAAA,EAAKA,IAAA,QAAA57D,EAAApR,EAAgBoR,GAAAkzE,EAAKlzE,IAAAvV,KAAAm/N,WAAAhuJ,EAAA57D,QAA8B,GAAAvV,KAAAi/N,oBAAA96N,GAAA,QAAA+7D,EAAA,EAA2CA,GAAA,EAAKA,IAAAlgE,KAAAk/N,WAAAh/J,EAAA/7D,QAAyB,QAAAsqM,EAAA,EAAiBA,GAAA,EAAKA,IAAAzuM,KAAAm/N,WAAA1wB,EAAAtqM,GAAyBnE,KAAA8+N,iBAAqBG,oBAAA,SAAA96N,GAAiC,QAAAskF,EAAA,EAAYA,GAAA,EAAKA,IAAA,IAAAzoF,KAAAukE,WAAAkkB,EAAAtkF,GAAA,SAAsC,UAASogE,WAAA,SAAApgE,EAAAskF,GAA0B,OAAAzoF,KAAA0qB,SAAAvmB,GAAArE,QAAA2oF,IAAA,GAAsC22I,kBAAA,SAAAj7N,EAAAskF,EAAAhxE,GAAmC,IAAAA,EAAA06K,SAAAnyL,KAAAo+N,WAAAp+N,KAAAukE,WAAApgE,EAAAskF,GAAAzoF,KAAAm+N,SAAA,EAAAn+N,KAAAq+N,OAAAl6N,EAAAnE,KAAAs+N,OAAA71I,EAAAzoF,KAAAu+N,KAAAp6N,EAAAnE,KAAAw+N,KAAA/1I,IAAyH42I,kBAAA,SAAAl7N,EAAAskF,GAAiC,GAAAzoF,KAAAm+N,QAAA,CAAiB,QAAA1mN,EAAAtT,EAAAnE,KAAAq+N,OAAAr+N,KAAAq+N,OAAAl6N,EAAAi6C,EAAAqqC,EAAAzoF,KAAAs+N,OAAAt+N,KAAAs+N,OAAA71I,EAAA1nF,EAAAoD,EAAAnE,KAAAq+N,OAAAl6N,EAAAnE,KAAAq+N,OAAAlmN,EAAAswE,EAAAzoF,KAAAs+N,OAAA71I,EAAAzoF,KAAAs+N,OAAAntJ,EAAA15D,EAAoI05D,GAAApwE,EAAKowE,IAAA,QAAA57D,EAAA6oC,EAAgB7oC,GAAA4C,EAAK5C,IAAAvV,KAAAo+N,UAAAp+N,KAAAm/N,WAAAhuJ,EAAA57D,GAAAvV,KAAAk/N,WAAA/tJ,EAAA57D,GAA6DvV,KAAAs/N,mBAAAn7N,EAAAskF,KAA8B62I,mBAAA,SAAAn7N,EAAAskF,GAAkC,QAAAhxE,EAAAzX,KAAAo+C,KAAAr9C,KAAAoX,EAAAhU,EAAAnE,KAAAq+N,OAAAr+N,KAAAq+N,OAAAl6N,EAAAgtE,EAAAsX,EAAAzoF,KAAAs+N,OAAAt+N,KAAAs+N,OAAA71I,EAAAlzE,EAAApR,EAAAnE,KAAAq+N,OAAAl6N,EAAAnE,KAAAq+N,OAAAn+J,EAAAuoB,EAAAzoF,KAAAs+N,OAAA71I,EAAAzoF,KAAAs+N,OAAA7vB,EAAAt2L,EAAqJs2L,GAAAl5L,EAAKk5L,IAAA,QAAAztM,EAAAmwE,EAAgBnwE,GAAAk/D,EAAKl/D,IAAAo9C,EAAA78C,KAAAktM,EAAA,IAAAztM,GAAoB,QAAAgiD,EAAAhjD,KAAAu+N,KAAAv+N,KAAAq+N,OAAAr+N,KAAAq+N,OAAAr+N,KAAAu+N,KAAAtmN,EAAAjY,KAAAw+N,KAAAx+N,KAAAs+N,OAAAt+N,KAAAs+N,OAAAt+N,KAAAw+N,KAAA/vM,EAAAzuB,KAAAu+N,KAAAv+N,KAAAq+N,OAAAr+N,KAAAu+N,KAAAv+N,KAAAq+N,OAAAntL,EAAAlxC,KAAAw+N,KAAAx+N,KAAAs+N,OAAAt+N,KAAAw+N,KAAAx+N,KAAAs+N,OAAAvxN,EAAAi2C,EAAoMj2C,GAAA0hB,EAAK1hB,IAAA,QAAA4f,EAAA1U,EAAgB0U,GAAAukB,EAAKvkB,IAAA5rB,EAAAQ,KAAAwL,EAAA,IAAA4f,GAAoB5rB,EAAA+I,QAAA,SAAA3F,GAAsB,QAAAi6C,EAAAt+C,QAAAqE,GAAA,CAAsB,IAAAskF,EAAAtkF,EAAAtD,MAAA,KAAmB4W,EAAA2mN,UAAA3mN,EAAAynN,YAAAz2I,EAAA,IAAAA,EAAA,IAAAhxE,EAAA0nN,YAAA12I,EAAA,IAAAA,EAAA,QAAmE82I,iBAAA,SAAAp7N,EAAAskF,GAAgCzoF,KAAAu+N,KAAAp6N,EAAAnE,KAAAw+N,KAAA/1I,GAAwB+2I,gBAAA,SAAAr7N,EAAAskF,GAA+BzoF,KAAAm+N,UAAAn+N,KAAAo+N,UAAAp+N,KAAAm/N,WAAAh7N,EAAAskF,GAAAzoF,KAAAk/N,WAAA/6N,EAAAskF,GAAAzoF,KAAAm+N,SAAA,EAAAn+N,KAAA8+N,kBAA8GW,WAAA,WAAuBz/N,KAAAm+N,SAAAn+N,KAAA8+N,gBAAA9+N,KAAAm+N,SAAA,GAAmDgB,WAAA,SAAAh7N,EAAAskF,GAA0BzoF,KAAAukE,WAAApgE,EAAAskF,IAAAzoF,KAAA0qB,SAAAvmB,GAAA5C,KAAAknF,IAA+Cy2I,WAAA,SAAA/6N,EAAAskF,GAA0B,IAAAhxE,EAAAzX,KAAA0qB,SAAAvmB,GAAArE,QAAA2oF,GAAkChxE,GAAA,GAAAzX,KAAA0qB,SAAAvmB,GAAA7C,OAAAmW,EAAA,IAAmCioN,UAAA,WAAsB,QAAAv7N,KAAAskF,EAAA,EAAiBA,GAAA,GAAMA,IAAAtkF,EAAA5C,KAAAknF,GAAc,QAAAhxE,EAAA,EAAYA,GAAA,EAAKA,IAAAzX,KAAA0qB,SAAAjT,MAAA1C,OAAA5Q,GAAkCnE,KAAA8+N,iBAAqB15K,MAAA,WAAkB,QAAAjhD,EAAA,EAAYA,EAAA,EAAIA,IAAAnE,KAAA0qB,SAAAvmB,MAAwBnE,KAAA8+N,iBAAqBA,cAAA,WAA0B,QAAA36N,EAAA,EAAYA,GAAA,EAAKA,IAAAnE,KAAA0qB,SAAAvmB,GAAAmR,KAAA,SAAAnR,EAAAskF,GAAwC,OAAAtkF,EAAAskF,IAAazoF,KAAA6+N,aAAA7+N,KAAA2/N,kBAAA3/N,KAAA0qB,UAAA1qB,KAAAge,MAAA,SAAAhe,KAAA0qB,SAAA1qB,KAAA6+N,eAA6Gc,kBAAA,SAAAx7N,GAA+B,IAAAskF,EAAA7+E,OAAAC,KAAA1F,GAAAsT,EAAAgxE,EAAAovB,MAAA,SAAApvB,GAA2C,YAAAtkF,EAAAskF,GAAAxnF,SAAwBm9C,EAAAqqC,EAAAovB,MAAA,SAAApvB,GAAwB,WAAAtkF,EAAAskF,GAAAxnF,SAAyB,GAAAwW,EAAA,YAAiB,GAAA2mC,EAAA,YAAiB,IAAAr9C,EAAAf,KAAA4/N,kBAAAz7N,GAAgC,OAAAnE,KAAA6/N,oBAAA9+N,IAAmC6+N,kBAAA,SAAAz7N,GAA+B,IAAAsT,KAA0B,OAA1B7N,OAAAC,KAAA1F,GAA0B2F,QAAA,SAAA2+E,GAA6B,IAAAtwE,KAAAimC,EAAA7oC,EAAAuqN,iBAAA37N,EAAAskF,IAAsC3+E,QAAA,SAAA3F,GAAsB,GAAAA,EAAAlD,OAAA,GAAe,IAAAwnF,EAAAtkF,EAAA,OAAAA,IAAAlD,OAAA,OAAiCkX,EAAA5W,KAAAknF,QAAUtwE,EAAA5W,KAAA4C,EAAAiC,KAAA,WAA4BqR,EAAAlW,KAAA4W,EAAA/R,KAAA,QAAsBqR,GAAIooN,oBAAA,SAAA17N,GAAiC,IAAAskF,KAAAhxE,GAAA,oCAAgD,OAAA2mC,EAAA7oC,EAAAwqN,mBAAA57N,GAAA2F,QAAA,SAAA/I,GAAqD,IAAAowE,KAAA/yB,EAAA7oC,EAAAuqN,iBAAA/+N,GAAmC+I,QAAA,SAAA3F,GAAsB,GAAAA,EAAAlD,OAAA,GAAe,IAAAwnF,EAAAhxE,EAAAtT,EAAA,QAAAsT,EAAAtT,IAAAlD,OAAA,IAAmCkwE,EAAA5vE,KAAAknF,QAAUtX,EAAA5vE,KAAAkW,EAAAtT,EAAA,OAAqBA,EAAApD,EAAA,IAAAE,OAAA,GAAAwnF,EAAAlnF,KAAA4vE,EAAA/qE,KAAA,UAAAjC,EAAApD,EAAA,OAAqD0nF,EAAAriF,KAAA,UAAkB,SAAAjC,EAAAskF,EAAAhxE,GAAiB,aAAa7N,OAAAwB,eAAAq9E,EAAA,cAAsClhF,OAAA,IAAW,IAAA62C,EAAA3mC,EAAA,GAAWgxE,EAAA1vE,QAAAqlC,EAAA7oC,EAAA,oBAAA5F,eAAA2kB,KAAA3kB,OAAA2kB,IAAAC,UAAA,cAAA6pB,EAAA7oC,IAA8F,SAAApR,EAAAskF,EAAAhxE,GAAiB,aAAgC,IAAA1W,EAAA0W,EAAA,GAAAU,EAAAV,EAAA,IAAAlC,EAAnB,SAAApR,GAAcsT,EAAA,IAAKyoD,EAAAzoD,EAAA,EAAA05D,CAAApwE,EAAAwU,EAAA4C,EAAA5C,GAAA,EAAAA,EAAA,WAA0DkzE,EAAAlzE,EAAA2qD,EAAA/8D,SAAc,SAAAgB,EAAAskF,EAAAhxE,GAAiB,IAAA2mC,EAAA3mC,EAAA,GAAW,iBAAA2mC,QAAAj6C,EAAApD,EAAAq9C,EAAA,MAAAA,EAAA4hL,SAAA77N,EAAAhB,QAAAi7C,EAAA4hL,QAAoEvoN,EAAA,EAAAA,CAAA,WAAA2mC,GAAA,OAAyB,SAAAj6C,EAAAskF,EAAAhxE,IAAiBtT,EAAAhB,QAAAsU,EAAA,EAAAA,EAAA,IAAAlW,MAAA4C,EAAApD,EAAA,00BAAy2B,MAAO,SAAAoD,EAAAskF,GAAe,SAAAhxE,EAAAtT,EAAAskF,GAAgB,IAAAhxE,EAAAtT,EAAA,OAAApD,EAAAoD,EAAA,GAAsB,IAAApD,EAAA,OAAA0W,EAAe,GAAAgxE,GAAA,mBAAAw3I,KAAA,CAA+B,IAAA9nN,EAAiJ,SAAAhU,GAAc,yEAAgE87N,KAAAC,SAAA/yF,mBAAAjgI,KAAAE,UAAAjJ,MAAA,MAA/Ni6C,CAAAr9C,GAAW,OAAA0W,GAAA1C,OAAAhU,EAAA0tJ,QAAA99I,IAAA,SAAAxM,GAA2C,uBAAApD,EAAAo/N,WAAAh8N,EAAA,SAA4C4Q,QAAAoD,IAAA/R,KAAA,MAA0B,OAAAqR,GAAArR,KAAA,MAAwKjC,EAAAhB,QAAA,SAAAgB,GAAsB,IAAAskF,KAAS,OAAAA,EAAA7gF,SAAA,WAA6B,OAAA5H,KAAA2Q,IAAA,SAAA83E,GAA4B,IAAArqC,EAAA3mC,EAAAgxE,EAAAtkF,GAAa,OAAAskF,EAAA,aAAAA,EAAA,OAA6BrqC,EAAA,IAAMA,IAAIh4C,KAAA,KAAWqiF,EAAA1nF,EAAA,SAAAoD,EAAAsT,GAAmB,iBAAAtT,QAAA,KAAAA,EAAA,MAAsC,QAAAi6C,KAAYr9C,EAAA,EAAKA,EAAAf,KAAAiB,OAAcF,IAAA,CAAK,IAAAoX,EAAAnY,KAAAe,GAAA,GAAiB,iBAAAoX,IAAAimC,EAAAjmC,IAAA,GAA8B,IAAApX,EAAA,EAAQA,EAAAoD,EAAAlD,OAAWF,IAAA,CAAK,IAAAowE,EAAAhtE,EAAApD,GAAW,iBAAAowE,EAAA,IAAA/yB,EAAA+yB,EAAA,MAAA15D,IAAA05D,EAAA,GAAAA,EAAA,GAAA15D,MAAA05D,EAAA,OAAAA,EAAA,aAAA15D,EAAA,KAAAgxE,EAAAlnF,KAAA4vE,MAAgGsX,IAAI,SAAAtkF,EAAAskF,EAAAhxE,GAAiB,SAAA2mC,EAAAj6C,GAAc,QAAAskF,EAAA,EAAYA,EAAAtkF,EAAAlD,OAAWwnF,IAAA,CAAK,IAAAhxE,EAAAtT,EAAAskF,GAAArqC,EAAAp9C,EAAAyW,EAAA/V,IAAqB,GAAA08C,EAAA,CAAMA,EAAAgiL,OAAS,QAAAr/N,EAAA,EAAYA,EAAAq9C,EAAAqkC,MAAAxhF,OAAiBF,IAAAq9C,EAAAqkC,MAAA1hF,GAAA0W,EAAAgrE,MAAA1hF,IAA2B,KAAKA,EAAA0W,EAAAgrE,MAAAxhF,OAAiBF,IAAAq9C,EAAAqkC,MAAAlhF,KAAA4W,EAAAV,EAAAgrE,MAAA1hF,KAAgCq9C,EAAAqkC,MAAAxhF,OAAAwW,EAAAgrE,MAAAxhF,SAAAm9C,EAAAqkC,MAAAxhF,OAAAwW,EAAAgrE,MAAAxhF,YAA+D,CAAK,IAAAkwE,KAAA,IAAApwE,EAAA,EAAiBA,EAAA0W,EAAAgrE,MAAAxhF,OAAiBF,IAAAowE,EAAA5vE,KAAA4W,EAAAV,EAAAgrE,MAAA1hF,KAA0BC,EAAAyW,EAAA/V,KAASA,GAAA+V,EAAA/V,GAAA0+N,KAAA,EAAA39I,MAAAtR,KAA0B,SAAApwE,IAAa,IAAAoD,EAAA0L,SAAAC,cAAA,SAAsC,OAAA3L,EAAAX,KAAA,WAAAw/C,EAAA/yC,YAAA9L,KAA4C,SAAAgU,EAAAhU,GAAc,IAAAskF,EAAAhxE,EAAA2mC,EAAAvuC,SAAA0zC,cAAA,SAAAnX,EAAA,MAAAjoC,EAAAzC,GAAA,MAA6D,GAAA08C,EAAA,CAAM,GAAAlN,EAAA,OAAAnkC,EAAcqxC,EAAA7R,WAAAC,YAAA4R,GAA4B,GAAA75C,EAAA,CAAM,IAAA4T,EAAAsW,IAAU2vB,EAAAnmC,MAAAlX,KAAA0nF,EAAAtX,EAAA3mE,KAAA,KAAA4zC,EAAAjmC,GAAA,GAAAV,EAAA05D,EAAA3mE,KAAA,KAAA4zC,EAAAjmC,GAAA,QAAyDimC,EAAAr9C,IAAA0nF,EAA6Y,SAAAtkF,EAAAskF,GAAgB,IAAAhxE,EAAAgxE,EAAA43I,IAAAjiL,EAAAqqC,EAAAutB,MAAAj1G,EAAA0nF,EAAA63I,UAAoC,GAAAliL,GAAAj6C,EAAAuiC,aAAA,QAAA0X,GAAAzxB,EAAA4zM,OAAAp8N,EAAAuiC,aAAA0F,EAAAq8C,EAAA/mF,IAAAX,IAAA0W,GAAA,mBAAA1W,EAAA0tJ,QAAA,SAAAh3I,GAAA,uDAA8JwoN,KAAAC,SAAA/yF,mBAAAjgI,KAAAE,UAAArM,MAAA,OAAAoD,EAAAq8N,WAAAr8N,EAAAq8N,WAAAx0L,QAAAv0B,MAA0G,CAAK,KAAKtT,EAAA4yC,YAAa5yC,EAAAqoC,YAAAroC,EAAA4yC,YAA6B5yC,EAAA8L,YAAAJ,SAAAglC,eAAAp9B,MAA7vBjN,KAAA,KAAA4zC,GAAA3mC,EAAA,WAAyC2mC,EAAA7R,WAAAC,YAAA4R,IAA6B,OAAAqqC,EAAAtkF,GAAA,SAAAi6C,GAAwB,GAAAA,EAAA,CAAM,GAAAA,EAAAiiL,MAAAl8N,EAAAk8N,KAAAjiL,EAAA43D,QAAA7xG,EAAA6xG,OAAA53D,EAAAkiL,YAAAn8N,EAAAm8N,UAAA,OAAsE73I,EAAAtkF,EAAAi6C,QAAO3mC,KAAU,SAAA05D,EAAAhtE,EAAAskF,EAAAhxE,EAAA2mC,GAAoB,IAAAr9C,EAAA0W,EAAA,GAAA2mC,EAAAiiL,IAAiB,GAAAl8N,EAAAq8N,WAAAr8N,EAAAq8N,WAAAx0L,QAAAvjB,EAAAggE,EAAA1nF,OAA4C,CAAK,IAAAoX,EAAAtI,SAAAglC,eAAA9zC,GAAAowE,EAAAhtE,EAAAs8N,WAAgDtvJ,EAAAsX,IAAAtkF,EAAAqoC,YAAA2kC,EAAAsX,IAAAtX,EAAAlwE,OAAAkD,EAAA+0K,aAAA/gK,EAAAg5D,EAAAsX,IAAAtkF,EAAA8L,YAAAkI,IAAue,IAAA+nD,EAAA,oBAAArwD,SAAmC,uBAAAmnI,eAAA92E,EAAA,UAAAb,MAAA,2JAAmN,IAAAovI,EAAAh3L,EAAA,GAAAzW,KAAegiD,EAAAkd,IAAArwD,SAAA4rK,MAAA5rK,SAAAs9B,qBAAA,YAAAl1B,EAAA,KAAAwW,EAAA,EAAAyiB,GAAA,EAAAnkC,EAAA,aAA8F4f,EAAA,KAAAyf,EAAA,kBAAA7nC,EAAA,oBAAAs6C,WAAA,eAAA8c,KAAA9c,UAAAC,UAAAxmC,eAAoHnU,EAAAhB,QAAA,SAAAgB,EAAAskF,EAAAhxE,EAAA1W,GAA4BmwC,EAAAz5B,EAAAkV,EAAA5rB,MAAY,IAAAoX,EAAAs2L,EAAAtqM,EAAAskF,GAAa,OAAArqC,EAAAjmC,GAAA,SAAAswE,GAAwB,QAAAhxE,KAAA1W,EAAA,EAAiBA,EAAAoX,EAAAlX,OAAWF,IAAA,CAAK,IAAAowE,EAAAh5D,EAAApX,IAAAwU,EAAAvU,EAAAmwE,EAAAzvE,KAAqB0+N,OAAA3oN,EAAAlW,KAAAgU,GAAmBkzE,EAAArqC,EAAAjmC,EAAAs2L,EAAAtqM,EAAAskF,IAAAtwE,KAAuB,IAAApX,EAAA,EAAYA,EAAA0W,EAAAxW,OAAWF,IAAA,CAAK,IAAAwU,EAAW,QAAXA,EAAAkC,EAAA1W,IAAWq/N,KAAA,CAAe,QAAAlgK,EAAA,EAAYA,EAAA3qD,EAAAktE,MAAAxhF,OAAiBi/D,IAAA3qD,EAAAktE,MAAAviB,YAAiBl/D,EAAAuU,EAAA7T,QAAmB,IAAA+mB,EAAA,WAAiB,IAAAtkB,KAAS,gBAAAskF,EAAAhxE,GAAqB,OAAAtT,EAAAskF,GAAAhxE,EAAAtT,EAAAijB,OAAA3N,SAAArT,KAAA,OAA/C,IAA8F,SAAAjC,EAAAskF,GAAetkF,EAAAhB,QAAA,SAAAgB,EAAAskF,GAAwB,QAAAhxE,KAAA2mC,KAAiBr9C,EAAA,EAAKA,EAAA0nF,EAAAxnF,OAAWF,IAAA,CAAK,IAAAoX,EAAAswE,EAAA1nF,GAAAowE,EAAAh5D,EAAA,GAAAnX,GAA0CU,GAAAyC,EAAA,IAAApD,EAAAs/N,IAA1CloN,EAAA,GAA0C69F,MAA1C79F,EAAA,GAA0CmoN,UAA1CnoN,EAAA,IAAgFimC,EAAA+yB,GAAA/yB,EAAA+yB,GAAAsR,MAAAlhF,KAAAP,GAAAyW,EAAAlW,KAAA68C,EAAA+yB,IAAqCzvE,GAAAyvE,EAAAsR,OAAAzhF,KAAiB,OAAAyW,IAAU,SAAAtT,EAAAskF,GAAetkF,EAAAhB,QAAA,SAAAgB,EAAAskF,EAAAhxE,EAAA2mC,EAAAr9C,EAAAoX,GAAgC,IAAAg5D,EAAA57D,EAAApR,QAAe+7D,SAAA/7D,EAAA4U,QAAoB,WAAAmnD,GAAA,aAAAA,IAAAiR,EAAAhtE,EAAAoR,EAAApR,EAAA4U,SAAgD,IAAwJ/X,EAAxJytM,EAAA,mBAAAl5L,IAAA9M,QAAA8M,EAA8J,GAAvHkzE,IAAAgmH,EAAAhrM,OAAAglF,EAAAhlF,OAAAgrM,EAAA92L,gBAAA8wE,EAAA9wE,gBAAA82L,EAAAz8H,WAAA,GAAAv6D,IAAAg3L,EAAAx8H,YAAA,GAAAlxE,IAAA0tM,EAAAv8H,SAAAnxE,GAAuHoX,GAAAnX,EAAA,SAAAmD,IAAoBA,KAAAnE,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YAAApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAAA,oBAAAC,sBAAAluE,EAAAkuE,qBAAAj0B,KAAA1yC,KAAA1L,KAAAmE,QAAAmuE,uBAAAnuE,EAAAmuE,sBAAArzC,IAAA9mB,IAA0Ps2L,EAAAl8H,aAAAvxE,GAAAo9C,IAAAp9C,EAAAo9C,GAAAp9C,EAAA,CAA+B,IAAAgiD,EAAAyrJ,EAAAx8H,WAAAh6D,EAAA+qC,EAAAyrJ,EAAAhrM,OAAAgrM,EAAAh8H,aAA+CzvB,GAAAyrJ,EAAA/7H,cAAA1xE,EAAAytM,EAAAhrM,OAAA,SAAAU,EAAAskF,GAA4C,OAAAznF,EAAA0K,KAAA+8E,GAAAxwE,EAAA9T,EAAAskF,KAAwBgmH,EAAAh8H,aAAAx6D,KAAAlD,OAAAkD,EAAAjX,OAAsC,OAAO6wE,SAAAV,EAAAhuE,QAAAoS,EAAA9M,QAAAgmM,KAAiC,SAAAtqM,EAAAskF,EAAAhxE,GAAiB,aAAagxE,EAAAlzE,GAAKuqN,iBAAA,SAAA37N,GAA6B,IAAAskF,KAAAhxE,OAAA,EAAA2mC,OAAA,EAA2B,OAAAj6C,EAAA2F,QAAA,SAAA3F,GAA6B,GAAAsT,IAAAtT,EAAA,OAAAi6C,EAAA78C,KAAAkW,YAAmC2mC,GAAAj6C,GAAAsT,EAAAtT,EAAA,EAAAskF,EAAAlnF,KAAA68C,KAAsBqqC,GAAIs3I,mBAAA,SAAA57N,GAAgC,QAAAskF,KAAAhxE,EAAA,IAAA5L,MAAA1H,EAAAlD,QAAAm9C,EAAAj6C,EAAAlD,OAAAF,EAAA,EAAkDA,EAAAq9C,EAAIr9C,IAAA,CAAK,QAAAoX,KAAAg5D,EAAApwE,EAAiBowE,EAAA/yB,EAAI+yB,IAAAhtE,EAAApD,KAAAoD,EAAAgtE,IAAA15D,EAAA05D,KAAAh5D,EAAA5W,KAAA4vE,GAAA15D,EAAA05D,IAAA,GAA2Ch5D,EAAAlX,OAAA,GAAAwnF,EAAAlnF,KAAA4W,GAAsB,OAAAswE,KAAW,SAAAtkF,EAAAskF,EAAAhxE,GAAiB,aAAa,IAAmoDU,GAAS1U,OAA5oD,WAAiB,IAAAU,EAAAnE,KAAAyoF,EAAAtkF,EAAA8S,eAAAQ,EAAAtT,EAAAgT,MAAAD,IAAAuxE,EAA8C,OAAAhxE,EAAA,OAAgBL,YAAA,cAAwBK,EAAA,SAAaL,YAAA,SAAmBK,EAAA,SAAAA,EAAA,MAAAA,EAAA,MAA6BiI,IAAIm1D,MAAA1wE,EAAAu7N,aAAmBv7N,EAAA0T,GAAA,UAAA1T,EAAA0T,GAAA,KAAAJ,EAAA,MAAAA,EAAA,MAA2CiI,IAAIm1D,MAAA1wE,EAAAihD,SAAejhD,EAAA0T,GAAA,YAAA1T,EAAA0T,GAAA,KAAAJ,EAAA,QAAAtT,EAAAsrE,GAAAtrE,EAAA+5N,SAAA,SAAAz1I,EAAArqC,GAAqE,OAAA3mC,EAAA,MAAAA,EAAA,MAAuBiI,IAAIm1D,MAAA,SAAA4T,GAAkBtkF,EAAA46N,cAAA3gL,EAAA,OAAuBj6C,EAAA0T,GAAA1T,EAAAigK,GAAA,KAAA37E,aAAyBtkF,EAAA0T,GAAA,KAAAJ,EAAA,SAA0BL,YAAA,UAAoBK,EAAA,SAAAA,EAAA,MAAAA,EAAA,MAA6BJ,OAAOqpN,QAAA,KAAYhhN,IAAKm1D,MAAA,SAAA4T,GAAkBtkF,EAAA66N,gBAAA,SAAyB76N,EAAA0T,GAAA,UAAA1T,EAAA0T,GAAA,KAAAJ,EAAA,MAAmCJ,OAAOqpN,QAAA,KAAYhhN,IAAKm1D,MAAA,SAAA4T,GAAkBtkF,EAAA66N,gBAAA,UAA0B76N,EAAA0T,GAAA,UAAA1T,EAAA0T,GAAA,KAAAJ,EAAA,MAAmCJ,OAAOqpN,QAAA,KAAYhhN,IAAKm1D,MAAA,SAAA4T,GAAkBtkF,EAAA66N,gBAAA,WAA2B76N,EAAA0T,GAAA,UAAA1T,EAAA0T,GAAA,KAAAJ,EAAA,MAAmCJ,OAAOqpN,QAAA,KAAYhhN,IAAKm1D,MAAA,SAAA4T,GAAkBtkF,EAAA66N,gBAAA,WAA2B76N,EAAA0T,GAAA,UAAA1T,EAAA0T,GAAA,KAAAJ,EAAA,MAAmCJ,OAAOqpN,QAAA,KAAYhhN,IAAKm1D,MAAA,SAAA4T,GAAkBtkF,EAAA66N,gBAAA,WAA2B76N,EAAA0T,GAAA,YAAA1T,EAAA0T,GAAA,KAAAJ,EAAA,MAAqCL,YAAA,QAAmBjT,EAAAsrE,GAAA,YAAAgZ,GAAqB,OAAAhxE,EAAA,MAAeiI,IAAIm1D,MAAA,SAAAp9D,GAAkBtT,EAAA66N,gBAAAv2I,EAAA,OAAyBtkF,EAAA0T,GAAA1T,EAAAigK,GAAA37E,EAAA,WAAoBtkF,EAAA0T,GAAA,KAAAJ,EAAA,SAA0BiI,IAAIinM,WAAAxiN,EAAAs7N,aAAyBt7N,EAAAsrE,GAAA,WAAAgZ,GAAoB,OAAAhxE,EAAA,MAAe1N,IAAA0+E,GAAMtkF,EAAAsrE,GAAA,YAAArxB,GAAqB,OAAA3mC,EAAA,MAAe1N,IAAAq0C,EAAAlmC,OAAawS,SAAAvmB,EAAAumB,SAAA+9D,GAAA3oF,QAAAs+C,EAAA,OAAuC1+B,IAAKihN,UAAA,SAAAx8N,GAAsBA,EAAAqgL,kBAAArgL,EAAAwtL,kBAAuCn2B,UAAA,SAAA/jJ,GAAuBA,EAAA+sK,kBAAArgL,EAAAi7N,kBAAA32I,EAAArqC,EAAA,EAAA3mC,IAAiDmpN,UAAA,SAAAnpN,GAAuBA,EAAA+sK,kBAAArgL,EAAAk7N,kBAAA52I,EAAArqC,EAAA,IAA+CyiL,SAAA,SAAAppN,GAAsBA,EAAA+sK,kBAAArgL,EAAAo7N,iBAAA92I,EAAArqC,EAAA,IAA8Cw9G,QAAA,SAAAnkJ,GAAqBA,EAAA+sK,kBAAArgL,EAAAq7N,gBAAA/2I,EAAArqC,EAAA,kBAAoEzmC,oBAA4B8wE,EAAAlzE,EAAA4C,MAAnnYjV,EAAAC,QAAAslF,0BCAhE,IAAArlF,EAAc7D,EAAQ,QAEtBA,EAAQ,QAoBR,IAAA0D,EAAAG,EAAAoxB,sBACAhxB,KAAA,QACAixB,cAAA,yBAKApG,iBAAA,KAMAyyM,cAAA,SAAAx1K,GACA,IAAAy1K,EAOA,OANA/gO,KAAA2D,QACAkvD,cAAAvH,EAAA,SAAAj1B,GACAA,EAAAoyC,qBAAAzoE,OACA+gO,EAAA1qM,IAEKr2B,MACL+gO,GAEArsM,eACAC,OAAA,EACAC,EAAA,EACA9Q,QAAA,aACAnB,OAAA,SAIAzf,EAAAC,QAAAF,qCCnDA,IAAA+9N,EAAczhO,EAAQ,QACtB0hO,EAAW1hO,EAAQ,QACnB2hO,EAAU3hO,EAAQ,QAClB4gE,EAAe5gE,EAAQ,QACvBihE,EAAcjhE,EAAQ,QACtB4hO,EAAAv3N,OAAA6B,OAGAvI,EAAAC,SAAAg+N,GAA6B5hO,EAAQ,OAARA,CAAkB,WAC/C,IAAA4wC,KACAooL,KAEAr4D,EAAAj1J,SACAm2N,EAAA,uBAGA,OAFAjxL,EAAA+vH,GAAA,EACAkhE,EAAAvgO,MAAA,IAAAiJ,QAAA,SAAA2e,GAAoC8vM,EAAA9vM,OACjB,GAAnB04M,KAAmBhxL,GAAA+vH,IAAAt2J,OAAAC,KAAAs3N,KAAsC5I,IAAAnyN,KAAA,KAAAg7N,IACxD,SAAA7gO,EAAAkC,GAMD,IALA,IAAA4+N,EAAAlhK,EAAA5/D,GACA+gO,EAAAx8N,UAAA7D,OACA2L,EAAA,EACA20N,EAAAN,EAAAj+K,EACAw+K,EAAAN,EAAAl+K,EACAs+K,EAAA10N,GAMA,IALA,IAIA7C,EAJAm2J,EAAA1/F,EAAA17D,UAAA8H,MACA/C,EAAA03N,EAAAP,EAAA9gE,GAAAnrJ,OAAAwsN,EAAArhE,IAAA8gE,EAAA9gE,GACAj/J,EAAA4I,EAAA5I,OACAiyB,EAAA,EAEAjyB,EAAAiyB,GAAAsuM,EAAA91N,KAAAw0J,EAAAn2J,EAAAF,EAAAqpB,QAAAmuM,EAAAt3N,GAAAm2J,EAAAn2J,IACG,OAAAs3N,GACFF,0BCjCD,IAAAtnM,EAAat6B,EAAQ,QAIrBmtC,EAFcntC,EAAQ,QAEtBmtC,aAoBAjO,EAAA5E,EAAA4E,KA+JAv7B,EAAAC,QA7JA,SAAAQ,GACA,IAAA89N,EAmBA,SAAA99N,GACA,IAAAoN,KACA2wN,KAgBA,OAfA/9N,EAAAikM,iBAAA,mBAAApsK,GACA,IAAA8B,EAAA9B,EAAAsB,cACAwD,EAAAzG,EAAA/5B,QAAA4hO,EAAApkM,GAEAgD,EAAA,IACAA,EAAAohM,EAAAzgO,OACAygO,EAAAphM,GAAAhD,EACAvsB,EAAAuvB,IACA7K,KAAA6H,EACAqkM,kBAIA5wN,EAAAuvB,GAAAqhM,aAAApgO,KAAAi6B,KAEAzqB,EArCA6wN,CAAAj+N,GACA86B,EAAAgjM,EAAA,SAAAI,GACA,IAAAF,EAAAE,EAAAF,aAEAA,EAAA1gO,SAwCA,SAAA4gO,GACA,IAAA7mM,EAOA9B,EANAoE,EAAAukM,EAAApsM,KACAksM,EAAAE,EAAAF,aACAG,EAAAH,EAAA1gO,OACA8gO,EAAAF,EAAAE,gBACAC,EAAAH,EAAAG,iBACAC,KAGA,gBAAA3kM,EAAA95B,KACA01B,EAAAoE,EAAAnE,mBACG,CACH,IAAA+oM,EAAA,EACAzjM,EAAAkjM,EAAA,SAAAnmM,GACA0mM,EAAAn6N,KAAAE,IAAAi6N,EAAA1mM,EAAAtP,UAAA3pB,WAEAy4B,EAAAsC,EAAAxB,YAAA/zB,KAAAY,IAAAqyB,EAAA,GAAAA,EAAA,IAGAyD,EAAAkjM,EAAA,SAAAnmM,GACA,IAAA2mM,EAAA3mM,EAAAx3B,IAAA,YAEA61B,EAAA/tB,QAAAq2N,KACAA,SAGAF,EAAA1gO,MAAAmrC,EAAAy1L,EAAA,GAAAjpM,IAAA,EAAAwT,EAAAy1L,EAAA,GAAAjpM,IAAA,MAEA,IAAAkpM,EAAA,GAAAlpM,EAAA,EACAmpM,EAAAD,EAAAN,EAAA,GACAzjD,GAAA+jD,EAAAC,GAAAP,EAAA,IAAAA,EACAvpL,EAAA8lI,EAAA,EAAA+jD,EAAA,EACA3jM,EAAAkjM,EAAA,SAAAnmM,EAAA8E,GACA0hM,EAAAzgO,KAAAg3C,GACAA,GAAA8pL,EAAAhkD,EACA0jD,EAAAxgO,KAAAwG,KAAAC,IAAAD,KAAAE,IAAAo2K,EAAA4jD,EAAA3hM,GAAA,IAAA2hM,EAAA3hM,GAAA,OAxEAgiM,CAAAT,GACApjM,EAAAkjM,EAAA,SAAAnmM,EAAA8E,IA+EA,SAAA9E,EAAAkH,EAAA27I,GACA,IAAAhjJ,EAAAG,EAAAnN,iBACAvd,EAAA0qB,EAAAtP,UACAq2M,EAAAlkD,EAAA,EACAmkD,EAAA,eAAAhnM,EAAAx3B,IAAA,cACAy+N,EAAA,EAAAD,EACAE,GAAA,SACAC,EAAA7xN,EAAA0tB,aAAAkkM,EAAAF,IACAI,EAAA9xN,EAAA0tB,aAAAkkM,EAAAD,IAAA,GAEA,WAAAE,GAAAC,EAAA3hO,OAAA,GAIA,QAAAm9B,EAAA,EAAyBA,EAAAttB,EAAAvO,QAA0B67B,IAAA,CACnD,IAAAykM,EAAA/xN,EAAA9M,IAAA2+N,EAAAvkM,GACA0kM,EAAAC,EAAAF,EAAAD,EAAA,GAAAxkM,GACA4kM,EAAAD,EAAAF,EAAAD,EAAA,GAAAxkM,GACA6kM,EAAAF,EAAAF,EAAAD,EAAA,GAAAxkM,GACA8kM,EAAAH,EAAAF,EAAAD,EAAA,GAAAxkM,GACA+kM,EAAAJ,EAAAF,EAAAD,EAAA,GAAAxkM,GACA6jB,KACAmhL,EAAAnhL,EAAAghL,EAAA,GACAG,EAAAnhL,EAAAihL,EAAA,GACAjhL,EAAA1gD,KAAAyhO,EAAAC,EAAAE,EAAAD,GACAG,EAAAphL,EAAA+gL,GACAK,EAAAphL,EAAAkhL,GACAE,EAAAphL,EAAA6gL,GACAhyN,EAAA64K,cAAAvrJ,GACAu/I,aAAAmlD,EAAAL,GACAxgL,SAIA,SAAA8gL,EAAAF,EAAAxoL,EAAAjc,GACA,IAIAiM,EAJA98B,EAAAuD,EAAA9M,IAAAq2C,EAAAjc,GACA8S,KAYA,OAXAA,EAAAsxL,GAAAK,EACA3xL,EAAAuxL,GAAAl1N,EAGA9C,MAAAo4N,IAAAp4N,MAAA8C,GACA88B,GAAAokI,UAEApkI,EAAAhP,EAAA4O,YAAAiH,IACAsxL,IAAA9/L,EAGA2H,EAGA,SAAA+4L,EAAAnhL,EAAA5X,EAAA7nC,GACA,IAAA8gO,EAAAj5L,EAAA/nC,QACAihO,EAAAl5L,EAAA/nC,QACAghO,EAAAd,IAAAD,EACAgB,EAAAf,IAAAD,EACA//N,EAAAy/C,EAAA1gD,KAAA+hO,EAAAC,GAAAthL,EAAA1gD,KAAAgiO,EAAAD,GAGA,SAAAD,EAAAphL,EAAAuhL,GACA,IAAAz3N,EAAAy3N,EAAAlhO,QACA40C,EAAAssL,EAAAlhO,QACAyJ,EAAAy2N,IAAAD,EACArrL,EAAAsrL,IAAAD,EACAtgL,EAAA1gD,KAAAwK,EAAAmrC,IA9IAusL,CAAAjoM,EAAAqmM,EAAAG,cAAA1hM,GAAAuhM,EAAAE,aAAAzhM,gCCrCA,IAAAyrJ,EAAiBxsL,EAAQ,QAGzBmkO,EAAA,iBAAAv3N,iBAAAvC,iBAAAuC,KAGA0uC,EAAAkxI,GAAA23C,GAAAvqN,SAAA,cAAAA,GAEAjW,EAAAC,QAAA03C,wBCRA33C,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOAk5K,EACA,SAAAz+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBokO,IACA,SAAAzgO,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAy4N,EAAArkO,EAAA,KAEAskO,GAEA14N,EAFAy4N,IAEsCz4N,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E04N,EAAA9qN,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAsvM,EAAA9qN,QAAAnW,KAAAihO,EAAA9qN,UAGA5V,EAAA4V,QAAA8qN,EAAA9qN,SAIA+qN,IACA,SAAA5gO,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAw8N,EAAAxkO,EAAA,KACAykO,EAAAzkO,EAAA6+C,EAAA2lL,GACAE,EAAA1kO,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA6wJ,EAAAzuN,EACA0uN,EAAA,GATA,EAEA,KAEA,KAEA,MAUA1/K,EAAA,QAAA2uB,EAAA,SAKAgxJ,IACA,SAAAhhO,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAixG,EAAAnrG,EAFA33E,EAAA,IAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAMA6kO,EAAAltJ,EAFA33E,EAAA,MAMA43E,EAAAD,EAFA33E,EAAA,IAIA8kO,EAAA9kO,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,UAEA2/K,cAAA,UAEAD,QAAAD,EAAAtpK,QAAAorN,EAAAprN,SAEAurN,cAAA,EAEAjxJ,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAjI,KAAA,WACA,OACA8xK,kBAAAl1K,IAAA1N,KAAAuH,OAAA,OAAAvH,KAAAuH,MAAA,GAAAvH,KAAAuH,MACAg9N,qBACAC,UAAA,EACAC,SAAA,EACAC,iBAAA,EACAC,uBAAA,OAKA7hO,OACAyE,OAAA4J,OAAA4J,QACA8W,KAAA1gB,OACAqL,OAAArL,OACAyzN,KAAAzzN,OACAuiE,SAAAj6D,QACAorN,SAAAprN,QACAjW,MACAA,KAAA2N,OACA4H,QAAA,QAEA+rN,UACAthO,MAAAiW,QAAA7P,QACAmP,SAAA,GAEAgsN,cACAvhO,KAAA2N,OACA4H,QAAA,OAEAisN,eACAxhO,KAAAiW,QACAV,SAAA,GAEAksN,WAAA9zN,OACA+zN,WAAA/zN,OACAsB,MAAAtB,OACAg0N,WACA3hO,KAAAiW,QACAV,SAAA,GAEAqsN,SAAAj0N,QAGA0K,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCsxJ,cAAA,WACA,OAAArlO,KAAAuzE,WAAAvzE,KAAAuzE,WAAA8xJ,cAAA,IAEAC,eAAA,WACA,QAAAtlO,KAAAszE,QAAAtzE,KAAAszE,OAAAiyJ,YAEAC,aAAA,WACA,OACAC,WAAA,kBACArhF,QAAA,uBACArpE,MAAA,wBACO/6E,KAAAqlO,gBAEPK,cAAA,WACA,SAAAvuJ,EAAAp+D,YAAoC/Y,KAAAukO,mBAA2B/nN,OAAAxc,KAAAwc,UAE/DmpN,UAAA,WACA,OAAA3lO,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtE+zM,cAAA,WACA,OAAA5lO,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAEhDmyJ,UAAA,WACA,OAAA7lO,KAAAmlO,YAAAnlO,KAAA0zE,WAAA1zE,KAAA6kO,UAAA,KAAA7kO,KAAA4iL,eAAA5iL,KAAAykO,SAAAzkO,KAAAwkO,YAIAjpN,OACAhU,MAAA,SAAAgG,EAAAu4N,GACA9lO,KAAA+lO,gBAAAx4N,KAIAwO,SACAwxB,MAAA,YACAvtC,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAunN,UAAAz4L,SAEA04L,KAAA,YACAjmO,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAunN,UAAAC,QAEAC,mBAAA,WACA,OACApjO,OACA0wE,KAAA,0DACA2yJ,gBAAA,6BAEA5sN,QACAs7D,MAAA,uBAIAsyI,WAAA,SAAA5vJ,GACAv3D,KAAAykO,SAAA,EACAzkO,KAAAge,MAAA,OAAAu5C,GACAv3D,KAAAglO,eACAhlO,KAAAu9I,SAAA,6BAAAv9I,KAAA4iL,gBAGAE,OAAA,YACA9iL,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAunN,UAAAljD,UAEAsjD,eAAA,WACA,IAAApmO,KAAAk5E,UAAA,CACA,IAAA4rJ,EAAA9kO,KAAA8kO,SAGA,gBAFA9kO,KAAAwD,KAGA,GAAAshO,EAAA,CAMA,IAAAuB,EAAAvB,EAAAuB,QACAC,EAAAxB,EAAAwB,QAEAtmO,KAAAukO,mBAAA,EAAAH,EAAArrN,SAAA/Y,KAAAye,MAAAunN,SAAAK,EAAAC,QARAtmO,KAAAukO,mBACAgC,WAAA,EAAAnC,EAAArrN,SAAA/Y,KAAAye,MAAAunN,UAAAO,aASArf,YAAA,SAAA3vJ,GACAv3D,KAAAykO,SAAA,EACAzkO,KAAAge,MAAA,QAAAu5C,IAEAivK,kBAAA,SAAAjvK,GACA,sBAAAA,EAAA/zD,KACAxD,KAAA0kO,iBAAA,EACA1kO,KAAA4iL,aAAA5iL,KAAA2kO,uBACA3kO,KAAA2kO,uBAAA,KACA3kO,KAAAymO,YAAAlvK,OACO,CACP,IAAAlmB,EAAAkmB,EAAAh3D,OAAAgH,MACAm/N,EAAAr1L,IAAApwC,OAAA,OACAjB,KAAA0kO,kBAAA,EAAAL,EAAAsC,UAAAD,GACA1mO,KAAA0kO,iBAAA,qBAAAntK,EAAA/zD,OACAxD,KAAA2kO,uBAAAtzL,KAIAo1L,YAAA,SAAAlvK,GACA,IAAAhwD,EAAAgwD,EAAAh3D,OAAAgH,MACAvH,KAAA+lO,gBAAAx+N,GACAvH,KAAA0kO,iBACA1kO,KAAAge,MAAA,QAAAzW,IAEAq/N,aAAA,SAAArvK,GACAv3D,KAAAge,MAAA,SAAAu5C,EAAAh3D,OAAAgH,QAEAw+N,gBAAA,SAAAx+N,GACAvH,KAAA0kO,iBAAAn9N,IAAAvH,KAAA2kO,yBACA3kO,KAAA4iL,aAAAr7K,EACAvH,KAAA0kO,kBACA1kO,KAAAuc,UAAAvc,KAAAomO,gBACApmO,KAAAglO,eAAAhlO,KAAA4iL,eAAA5iL,KAAAuH,OACAvH,KAAAu9I,SAAA,+BAAAh2I,OAGAs/N,eAAA,SAAAC,GACA,IAAAC,KAAAzkO,MAAAoJ,KAAA1L,KAAA0c,IAAAmkC,iBAAA,cAAAimL,QACA,GAAAC,EAAA9lO,OAAA,CAEA,IADA,IAAAR,EAAA,KACAM,EAAA,EAAqBA,EAAAgmO,EAAA9lO,OAAmBF,IACxC,GAAAgmO,EAAAhmO,GAAAwrC,aAAAvsC,KAAA0c,IAAA,CACAjc,EAAAsmO,EAAAhmO,GACA,MAGA,GAAAN,EAAA,CACA,IAKAumO,GAJAC,OAAA,SACAC,OAAA,WAGAJ,GACA9mO,KAAA8Y,OAAAkuN,GACAvmO,EAAA8X,MAAA0f,UAAA,0BAAA6uM,EAAA,QAAA9mO,KAAA0c,IAAA6mC,cAAA,oBAAAyjL,GAAAlyL,YAAA,MAEAr0C,EAAA2+C,gBAAA,YAGA+nL,iBAAA,WACAnnO,KAAA6mO,eAAA,UACA7mO,KAAA6mO,eAAA,WAEAzhL,MAAA,WACAplD,KAAAge,MAAA,YACAhe,KAAAge,MAAA,aACAhe,KAAAge,MAAA,SACAhe,KAAA+lO,gBAAA,IACA/lO,KAAAutC,UAIAztB,QAAA,WACA9f,KAAAikL,IAAA,cAAAjkL,KAAA8iL,SAEA/iK,QAAA,WACA/f,KAAAomO,iBACApmO,KAAAmnO,oBAEAC,QAAA,WACApnO,KAAAuc,UAAAvc,KAAAmnO,qBAuGAE,IACA,SAAAnkO,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4V,QAuBA,SAAAuuN,GACA,IAAAjB,EAAAvhO,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KACAwhO,EAAAxhO,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEAyiO,IACAA,EAAA13N,SAAAC,cAAA,YACAD,SAAAG,KAAAC,YAAAs3N,IAGA,IAAAC,EAzBA,SAAAF,GACA,IAAA/uN,EAAA5I,OAAAmtC,iBAAAwqL,GAEAx+K,EAAAvwC,EAAAkvN,iBAAA,cAEAC,EAAAliN,WAAAjN,EAAAkvN,iBAAA,mBAAAjiN,WAAAjN,EAAAkvN,iBAAA,gBAEAE,EAAAniN,WAAAjN,EAAAkvN,iBAAA,wBAAAjiN,WAAAjN,EAAAkvN,iBAAA,qBAMA,OAAUG,aAJVC,EAAAl3N,IAAA,SAAA/N,GACA,OAAAA,EAAA,IAAA2V,EAAAkvN,iBAAA7kO,KACGwD,KAAA,KAEOshO,cAAAC,aAAA7+K,aAYVg/K,CAAAR,GACAI,EAAAF,EAAAE,YACAC,EAAAH,EAAAG,WACA7+K,EAAA0+K,EAAA1+K,UACA8+K,EAAAJ,EAAAI,aAEAL,EAAA7gM,aAAA,QAAAkhM,EAAA,IAAwDG,GACxDR,EAAAhgO,MAAA+/N,EAAA//N,OAAA+/N,EAAAU,aAAA,GAEA,IAAA/uN,EAAAsuN,EAAA1lL,aACA9wC,KAEA,eAAA+3C,EACA7vC,GAAA0uN,EACG,gBAAA7+K,IACH7vC,GAAAyuN,GAGAH,EAAAhgO,MAAA,GACA,IAAA0gO,EAAAV,EAAA1lL,aAAA6lL,EAEA,UAAArB,EAAA,CACA,IAAAE,EAAA0B,EAAA5B,EACA,eAAAv9K,IACAy9K,IAAAmB,EAAAC,GAEA1uN,EAAAlR,KAAAE,IAAAs+N,EAAAttN,GACAlI,EAAAw1N,YAAA,KAEA,UAAAD,EAAA,CACA,IAAA4B,EAAAD,EAAA3B,EACA,eAAAx9K,IACAo/K,IAAAR,EAAAC,GAEA1uN,EAAAlR,KAAAC,IAAAkgO,EAAAjvN,GAKA,OAHAlI,EAAAkI,SAAA,KACAsuN,EAAAh7L,YAAAg7L,EAAAh7L,WAAAC,YAAA+6L,GACAA,EAAA,KACAx2N,GAtEA,IAAAw2N,OAAA,EAEAQ,EAAA,sMAEAF,GAAA,2NAuEAM,IACA,SAAAjlO,EAAAqhD,EAAAhlD,GAEA,aACA,IAaA+0E,GAAiB7wE,OAbjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBgB,OAC1G,aAAAq8D,EAAA/wE,KAAA,yBACA+wE,EAAAoxJ,UAAA,aAAApxJ,EAAAoxJ,UAAA,IAEAnxJ,cAAAD,EAAAqxJ,cACAwC,iBAAA7zJ,EAAAz7D,OAAAuvN,SAAA9zJ,EAAAz7D,OAAAuzB,OACAi8L,yBAAA/zJ,EAAAz7D,OAAAuzB,OACAk8L,0BAAAh0J,EAAAz7D,OAAAuvN,QACAG,mBAAAj0J,EAAAz7D,OAAAouN,QAAA3yJ,EAAA2wJ,WACAuD,mBAAAl0J,EAAAz7D,OAAAmuN,QAAA1yJ,EAAA0wJ,YAAA1wJ,EAAA4wJ,YAEAzlN,IAAQ4kK,WAAA,SAAAC,GAA8BhwG,EAAAiwJ,UAAA,GAAoB7d,WAAA,SAAApiC,GAA+BhwG,EAAAiwJ,UAAA,MAAuB,aAAAjwJ,EAAA/wE,MAAA+wE,EAAAz7D,OAAA,QAAA5B,EAAA,OAA4DE,YAAA,4BAAsCm9D,EAAAQ,GAAA,eAAAR,EAAAO,KAAA,aAAAP,EAAA/wE,KAAA0T,EAAA,QAAAq9D,EAAAm0J,IAA8E9vN,IAAA,QAAAxB,YAAA,kBAAAC,OAAiD+tN,SAAA7wJ,EAAA6wJ,SAAA5hO,KAAA+wE,EAAA/wE,KAAAkwE,SAAAa,EAAAqxJ,cAAAf,SAAAtwJ,EAAAswJ,SAAA8D,aAAAp0J,EAAAwwJ,aAAA6D,aAAAr0J,EAAA9hE,OAAoJo2N,UAAWthO,MAAAgtE,EAAAquG,cAAyBljK,IAAKopN,iBAAAv0J,EAAAiyJ,kBAAAuC,kBAAAx0J,EAAAiyJ,kBAAAwC,eAAAz0J,EAAAiyJ,kBAAAt8N,MAAAqqE,EAAAkyJ,YAAAl5L,MAAAgnC,EAAA2yI,YAAA+e,KAAA1xJ,EAAA4yI,WAAA8hB,OAAA10J,EAAAqyJ,eAA2N,QAAAryJ,EAAA20J,QAAA,IAAA30J,EAAAO,KAAAP,EAAAz7D,OAAAouN,QAAA3yJ,EAAA2wJ,WAAAhuN,EAAA,QAAsFE,YAAA,qBAA+Bm9D,EAAAQ,GAAA,UAAAR,EAAA,WAAAr9D,EAAA,KAA4CE,YAAA,iBAAAc,MAAAq8D,EAAA2wJ,aAAkD3wJ,EAAAO,MAAA,GAAAP,EAAAO,KAAAP,EAAAz7D,OAAAmuN,QAAA1yJ,EAAA0wJ,YAAA1wJ,EAAAsxJ,WAAAtxJ,EAAA8wJ,eAAA9wJ,EAAA+wJ,eAAApuN,EAAA,QAAqIE,YAAA,qBAA+BF,EAAA,QAAaE,YAAA,2BAAqCm9D,EAAAsxJ,UAAgH3uN,EAAA,KAAoBE,YAAA,sDAAAsI,IAAsEm1D,MAAAN,EAAAnvB,UAA1MmvB,EAAAQ,GAAA,UAAAR,EAAA,WAAAr9D,EAAA,KAA8DE,YAAA,iBAAAc,MAAAq8D,EAAA0wJ,aAAkD1wJ,EAAAO,OAA6G,GAAAP,EAAA,cAAAr9D,EAAA,KAAkCE,YAAA,iBAAAc,OAAA,yBAAAq8D,EAAAixJ,gBAAgFjxJ,EAAAO,OAAAP,EAAAO,KAAAP,EAAAz7D,OAAA,OAAA5B,EAAA,OAAoDE,YAAA,2BAAqCm9D,EAAAQ,GAAA,cAAAR,EAAAO,MAAA59D,EAAA,WAAAq9D,EAAAm0J,IAAuD9vN,IAAA,WAAAxB,YAAA,qBAAAmB,MAAAg8D,EAAA,cAAAl9D,OAAiF+tN,SAAA7wJ,EAAA6wJ,SAAA1xJ,SAAAa,EAAAqxJ,cAAAf,SAAAtwJ,EAAAswJ,SAAA+D,aAAAr0J,EAAA9hE,OAAoGo2N,UAAWthO,MAAAgtE,EAAAquG,cAAyBljK,IAAKopN,iBAAAv0J,EAAAiyJ,kBAAAuC,kBAAAx0J,EAAAiyJ,kBAAAwC,eAAAz0J,EAAAiyJ,kBAAAt8N,MAAAqqE,EAAAkyJ,YAAAl5L,MAAAgnC,EAAA2yI,YAAA+e,KAAA1xJ,EAAA4yI,WAAA8hB,OAAA10J,EAAAqyJ,eAA2N,WAAAryJ,EAAA20J,QAAA,SAEzhEvxN,oBACjB4sC,EAAA,KAIAsxF,GACA,SAAA3yI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB4pO,EACA,SAAAjmO,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB6pO,EACA,SAAAlmO,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,iCCltBzB,IAAAib,EAAcjb,EAAQ,QAwBtB8pO,GAtBa9pO,EAAQ,QAsBrB,IAmJA,SAAA+pO,EAAAx4N,EAAAstB,EAAA2D,EAAA1G,GAGA,IAFA,IA2EA9tB,EA3EA6vB,KAEAr8B,EAAA,EAAiBA,EAAAghC,EAAA9gC,OAAuBF,IAAA,CACxC,IAAA+gC,EAAAC,EAAAhhC,GACAwG,EAAAuJ,EAAA9M,IAAA8M,EAAA0tB,aAAAsD,GAAA1D,GAuEA7wB,EArEAhG,GAsEA,aAtEA8zB,EAAAzO,QAAAkV,GAAAt+B,KAsEA,MAAA+J,EAAA,MAAAA,GAAA9C,MAAA8C,KArEA6vB,EAAA77B,KAAA85B,EAAA4O,YAAA1iC,EAAAu6B,IAIA,OAAA1E,EAGA,SAAAmsM,EAAAz4N,EAAA04N,EAAAprM,EAAA2D,EAAA1G,GACA,IAAA+B,EAAAksM,EAAAx4N,EAAAstB,EAAA2D,EAAA1G,GACA51B,EAAA,IAAA+U,EAAA2f,UACApS,OACAqV,UAEA+G,QAAA,EACAC,GAAA,KAIA,OAFAolM,EAAAvqM,IAAAx5B,GACAqL,EAAA+vB,iBAAAzC,EAAA34B,GACAA,EAGA,SAAAiqK,EAAAl0I,GACA,IAAA91B,EAAA81B,EAAAx3B,IAAA,aAEA,OADA,IAAA0B,MAAA2jO,IAEAzoN,UAAA4a,EAAA6D,SAAA,aAAA4D,eACAv9B,OAAA,MAAAA,IAAA2jO,GAIA,SAAAI,EAAAhpO,EAAAqQ,EAAAstB,EAAA0xI,GACA,IAAAlvJ,EAAAkvJ,EAAAlvJ,UAEA9P,EAAAk/D,gBAEApvD,EADA9P,EAAAq0D,aAAA/mC,GAAAiB,SAAA,aACA4D,gBAGAxiC,EAAAsiC,SAAAniB,GACA,IAAAmW,EAAAt2B,EAAA8X,MACAwe,EAAArf,KAAA,KAEAqf,EAAAmM,OAAApyB,EAAAojD,cAAA91B,EAAA,SAEArH,EAAAlkB,QAAA/B,EAAAojD,cAAA91B,EAAA,WACA0xI,EAAApqK,SAAAjF,EAAAsnB,MAAAriB,OAAAoqK,EAAApqK,QA2BA,IAAAzC,EAvPgB1D,EAAQ,QAqBxBmK,QACAlG,KAAA,WACAgb,KAAA,WAKAxe,KAAA0pO,WAAA,IAAAlvN,EAAAskB,MACA9+B,KAAAg/B,MAAAC,IAAAj/B,KAAA0pO,YAKA1pO,KAAAic,MAKAjc,KAAA6lK,cAMApiK,OAAA,SAAA+3B,EAAA73B,EAAAC,EAAAggC,GACA,IAAA4lM,EAAAxpO,KAAA0pO,WACA54N,EAAA0qB,EAAAtP,UACAwU,EAAA1gC,KAAAic,MACAof,EAAAG,EAAAnN,iBACA0T,EAAA1G,EAAA0G,WACA+tI,EAAAJ,EAAAl0I,GA2BA,GA1BA1qB,EAAAwzB,KAAA5D,GAAAzB,IAEA,SAAA0qM,GAEAF,EADAF,EAAAz4N,EAAA04N,EAAAG,EAAA5nM,EAAA1G,GACAvqB,EAAA64N,EAAA75D,KAJAvzH,OAOA,SAAAotL,EAAAC,GACA,IAAAnkO,EAAAi7B,EAAAoD,iBAAA8lM,GACAxsM,EAAAksM,EAAAx4N,EAAA64N,EAAA5nM,EAAA1G,GACAvqB,EAAA+vB,iBAAA8oM,EAAAlkO,GACA,IAAAssJ,EAAAnuH,IAAA,IAAAA,EAAApiC,UAAA,KAAAg6B,EACAhhB,EAAAoqB,YAAAn/B,GACAsiB,OACAqV,WAEO20H,EAAA43E,GACPF,EAAAhkO,EAAAqL,EAAA64N,EAAA75D,KAjBArrK,OAoBA,SAAAmlO,GACA,IAAAnkO,EAAAi7B,EAAAoD,iBAAA8lM,GACAJ,EAAA/kO,OAAAgB,KAtBA0hE,WA0BAnnE,KAAA6lK,aAAA,CACA7lK,KAAA6lK,cAAA,EACA,IAAA5pI,EAiEA,SAAAZ,EAAAG,EAAA8rC,GACA,IAAAyhG,EAAA1tI,EAAA9D,MACA2Q,EAAA7M,EAAAkoC,UACAsmK,EAAA,IAAArvN,EAAAyiB,MACAlV,OACA1jB,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACAyU,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,UAGAof,EAAA,eAAA0wI,EAAA/kK,IAAA,2BAQA,OAPA6lO,EAAAtoM,SAAAlJ,EAAA,GACA7d,EAAAgiB,UAAAqtM,GACA9hN,OACA/O,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,SAEGuiB,EAAA8rC,GACHuiK,EApFA3sM,CAAA7B,EAAAG,EAAA,WAEAlvB,WAAA,WACAk9N,EAAApiK,qBAGAoiK,EAAAxoM,YAAA/E,GAGAj8B,KAAAic,MAAAnL,GAEA68D,yBAAA,SAAAnyC,EAAA73B,EAAAC,GACA5D,KAAA6lK,cAAA,EACA7lK,KAAAic,MAAA,KAEAjc,KAAA0pO,WAAAxkM,aAEA4oC,kBAAA,SAAAC,EAAAvyC,EAAA73B,GAMA,IALA,IAAAmN,EAAA0qB,EAAAtP,UACAmP,EAAAG,EAAAnN,iBACA0T,EAAA1G,EAAA0G,WACA+tI,EAAAJ,EAAAl0I,GAEA4C,EAAA2vC,EAAAvrE,MAA0C47B,EAAA2vC,EAAA78C,IAA4BkN,IAAA,CACtE,IAAA34B,EAAA8jO,EAAAz4N,EAAA9Q,KAAA0pO,WAAAtrM,EAAA2D,EAAA1G,GACA51B,EAAA2qK,aAAA,EACAq5D,EAAAhkO,EAAAqL,EAAAstB,EAAA0xI,KAGA/qK,QAAA,aA8BAN,OAAA,WACAzE,KAAA0pO,YAAA1pO,KAAA0pO,WAAAxkM,YACAllC,KAAAic,MAAA,QA2GA/Y,EAAAC,QAAAF,sBCxPA,IAAA6mO,GACAC,oBAAA,EACAC,kBAAA,EACAC,gBAAA,EACAC,iBAAA,EACAC,0BAAA,EACAC,yBAAA,EAEAC,iBAAA,EACAC,kBAAA,GAEAC,GACAC,qBAAA,EACAC,sBAAA,EACAC,6BAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,sBAAA,EACAC,uBAAA,EACAC,wBAAA,EACAC,wBAAA,GAEAC,EAAArhO,OAAA1J,UAAA0H,SACAsjO,EAAAr/N,MAAA3L,UACAirO,EAAAD,EAAAphO,QACAshO,EAAAF,EAAA9jN,OACAikN,EAAAH,EAAA5oO,MACAgpO,EAAAJ,EAAAv6N,IACA46N,EAAAL,EAAAzlN,OAEA1J,KA4BA,SAAAiuB,EAAAvnC,GACA,SAAAA,GAAA,iBAAAA,EACA,OAAAA,EAGA,IAAAsO,EAAAtO,EACA+oO,EAAAP,EAAAv/N,KAAAjJ,GAEA,sBAAA+oO,GACA,IAAAC,EAAAhpO,GAAA,CACAsO,KAEA,QAAAhQ,EAAA,EAAAc,EAAAY,EAAAxB,OAA0CF,EAAAc,EAASd,IACnDgQ,EAAAhQ,GAAAipC,EAAAvnC,EAAA1B,UAGG,GAAAwpO,EAAAiB,IACH,IAAAC,EAAAhpO,GAAA,CACA,IAAAipO,EAAAjpO,EAAAtC,YAEA,GAAAsC,EAAAtC,YAAA4L,KACAgF,EAAA26N,EAAA3/N,KAAAtJ,OACO,CACPsO,EAAA,IAAA26N,EAAAjpO,EAAAxB,QAEA,IAAAF,EAAA,EAAAc,EAAAY,EAAAxB,OAA4CF,EAAAc,EAASd,IACrDgQ,EAAAhQ,GAAAipC,EAAAvnC,EAAA1B,WAIG,IAAA+oO,EAAA0B,KAAAC,EAAAhpO,KAAAkpO,EAAAlpO,GAGH,QAAAsH,KAFAgH,KAEAtO,EACAA,EAAAI,eAAAkH,KACAgH,EAAAhH,GAAAigC,EAAAvnC,EAAAsH,KAKA,OAAAgH,EAUA,SAAA4/D,EAAApwE,EAAAkC,EAAAmpO,GAGA,IAAAhsO,EAAA6C,KAAA7C,EAAAW,GACA,OAAAqrO,EAAA5hM,EAAAvnC,GAAAlC,EAGA,QAAAwJ,KAAAtH,EACA,GAAAA,EAAAI,eAAAkH,GAAA,CACA,IAAA8hO,EAAAtrO,EAAAwJ,GACA+hO,EAAArpO,EAAAsH,IAEAnK,EAAAksO,KAAAlsO,EAAAisO,IAAA//N,EAAAggO,IAAAhgO,EAAA+/N,IAAAF,EAAAG,IAAAH,EAAAE,IAAAE,EAAAD,IAAAC,EAAAF,IAAAJ,EAAAK,IAAAL,EAAAI,IAGOD,GAAA7hO,KAAAxJ,IAGPA,EAAAwJ,GAAAigC,EAAAvnC,EAAAsH,KAJA4mE,EAAAk7J,EAAAC,EAAAF,GASA,OAAArrO,EA0CA,SAAAyiC,EAAAziC,EAAAkC,EAAAupO,GACA,QAAAjiO,KAAAtH,EACAA,EAAAI,eAAAkH,KAAAiiO,EAAA,MAAAvpO,EAAAsH,GAAA,MAAAxJ,EAAAwJ,MACAxJ,EAAAwJ,GAAAtH,EAAAsH,IAIA,OAAAxJ,EAGA,IASA0rO,EATAv4K,EAAA,WACA,OAAA33C,EAAA23C,gBAuGA,SAAAj1B,EAAAtzB,EAAAm8D,EAAAxZ,GACA,GAAA3iD,GAAAm8D,EAIA,GAAAn8D,EAAArB,SAAAqB,EAAArB,UAAAqhO,EACAhgO,EAAArB,QAAAw9D,EAAAxZ,QACG,GAAA3iD,EAAAlK,UAAAkK,EAAAlK,OACH,QAAAF,EAAA,EAAAc,EAAAsJ,EAAAlK,OAAqCF,EAAAc,EAASd,IAC9CumE,EAAA57D,KAAAoiD,EAAA3iD,EAAApK,KAAAoK,QAGA,QAAApB,KAAAoB,EACAA,EAAAtI,eAAAkH,IACAu9D,EAAA57D,KAAAoiD,EAAA3iD,EAAApB,KAAAoB,GAmHA,SAAAX,EAAA8uD,EAAAxL,GACA,IAAA1hD,EAAAi/N,EAAA3/N,KAAA5G,UAAA,GACA,kBACA,OAAAw0D,EAAA/sD,MAAAuhD,EAAA1hD,EAAA2I,OAAAs2N,EAAA3/N,KAAA5G,cAuBA,SAAAgH,EAAAvE,GACA,yBAAA0jO,EAAAv/N,KAAAnE,GA6BA,SAAA3H,EAAA2H,GAGA,IAAA/D,SAAA+D,EACA,mBAAA/D,KAAA+D,GAAA,UAAA/D,EASA,SAAAuoO,EAAAxkO,GACA,QAAAuiO,EAAAmB,EAAAv/N,KAAAnE,IAmBA,SAAAokO,EAAApkO,GACA,uBAAAA,GAAA,iBAAAA,EAAA8xE,UAAA,iBAAA9xE,EAAA2gD,cA/TAnsC,EAAA23C,aAAA,WACA,OAAA7jD,SAAAC,cAAA,WAsaA,IAAAo8N,EAAA,mBASA,SAAAT,EAAAtgO,GACA,OAAAA,EAAA+gO,GAQA,SAAAC,EAAAhhO,GACA,IAAAihO,EAAAtgO,EAAAX,GACAkhO,EAAArsO,KAGA,SAAAssO,EAAA/kO,EAAAwC,GACAqiO,EAAAC,EAAArnL,IAAAz9C,EAAAwC,GAAAsiO,EAAArnL,IAAAj7C,EAAAxC,GAHA4D,aAAAghO,EAAAhhO,EAAAszB,KAAA6tM,GAAAnhO,GAAAszB,EAAAtzB,EAAAmhO,GAQAH,EAAAjsO,WACAC,YAAAgsO,EAIAnoO,IAAA,SAAA+F,GACA,OAAA/J,KAAA6C,eAAAkH,GAAA/J,KAAA+J,GAAA,MAEAi7C,IAAA,SAAAj7C,EAAAxC,GAGA,OAAAvH,KAAA+J,GAAAxC,GAIAk3B,KAAA,SAAA6oC,EAAAxZ,GAGA,QAAA/jD,UAFA,IAAA+jD,IAAAwZ,EAAA98D,EAAA88D,EAAAxZ,IAEA9tD,KACAA,KAAA6C,eAAAkH,IAAAu9D,EAAAtnE,KAAA+J,OAIAyxN,UAAA,SAAAzxN,UACA/J,KAAA+J,KA0BA5G,EAAAqxC,UAjpBA,SAAA5xC,EAAAqJ,GAEA,iBAAArJ,IACAqpO,EAAA,MAGAlwN,EAAAnZ,GAAAqJ,GA4oBA9I,EAAA6mC,QACA7mC,EAAAwtE,QACAxtE,EAAA8sM,SAxiBA,SAAAs8B,EAAAX,GAGA,IAFA,IAAA76N,EAAAw7N,EAAA,GAEAxrO,EAAA,EAAAc,EAAA0qO,EAAAtrO,OAAgDF,EAAAc,EAASd,IACzDgQ,EAAA4/D,EAAA5/D,EAAAw7N,EAAAxrO,GAAA6qO,GAGA,OAAA76N,GAkiBA5N,EAAAuG,OAzhBA,SAAAnJ,EAAAkC,GACA,QAAAsH,KAAAtH,EACAA,EAAAI,eAAAkH,KACAxJ,EAAAwJ,GAAAtH,EAAAsH,IAIA,OAAAxJ,GAmhBA4C,EAAA6/B,WACA7/B,EAAAuwD,eACAvwD,EAAAs3K,WAtfA,WAOA,OANAwxD,IAGAA,EAAAv4K,IAAA+mH,WAAA,OAGAwxD,GAgfA9oO,EAAArD,QAxeA,SAAAs/D,EAAA73D,GACA,GAAA63D,EAAA,CACA,GAAAA,EAAAt/D,QACA,OAAAs/D,EAAAt/D,QAAAyH,GAGA,QAAAxG,EAAA,EAAAc,EAAAu9D,EAAAn+D,OAAuCF,EAAAc,EAASd,IAChD,GAAAq+D,EAAAr+D,KAAAwG,EACA,OAAAxG,EAKA,UA4dAoC,EAAAqoD,SAjdA,SAAAghL,EAAAC,GACA,IAAAC,EAAAF,EAAAtsO,UAEA,SAAA83N,KAKA,QAAAl3N,KAHAk3N,EAAA93N,UAAAusO,EAAAvsO,UACAssO,EAAAtsO,UAAA,IAAA83N,EAEA0U,EACAF,EAAAtsO,UAAAY,GAAA4rO,EAAA5rO,GAGA0rO,EAAAtsO,UAAAC,YAAAqsO,EACAA,EAAArzH,WAAAszH,GAqcAtpO,EAAAwkC,MA3bA,SAAApnC,EAAAkC,EAAAupO,GAGAhpM,EAFAziC,EAAA,cAAAA,IAAAL,UAAAK,EACAkC,EAAA,cAAAA,IAAAvC,UAAAuC,EACAupO,IAybA7oO,EAAAtD,YAjbA,SAAAiR,GACA,GAAAA,EAIA,uBAAAA,GAIA,iBAAAA,EAAA7P,QAyaAkC,EAAAs7B,OACAt7B,EAAAwN,IAlYA,SAAAxF,EAAAm8D,EAAAxZ,GACA,GAAA3iD,GAAAm8D,EAAA,CAIA,GAAAn8D,EAAAwF,KAAAxF,EAAAwF,MAAA26N,EACA,OAAAngO,EAAAwF,IAAA22D,EAAAxZ,GAIA,IAFA,IAAA/8C,KAEAhQ,EAAA,EAAAc,EAAAsJ,EAAAlK,OAAqCF,EAAAc,EAASd,IAC9CgQ,EAAAxP,KAAA+lE,EAAA57D,KAAAoiD,EAAA3iD,EAAApK,KAAAoK,IAGA,OAAA4F,IAqXA5N,EAAAsiB,OAxWA,SAAAta,EAAAm8D,EAAAqlK,EAAA7+K,GACA,GAAA3iD,GAAAm8D,EAAA,CAIA,GAAAn8D,EAAAsa,QAAAta,EAAAsa,SAAA8lN,EACA,OAAApgO,EAAAsa,OAAA6hD,EAAAqlK,EAAA7+K,GAEA,QAAA/sD,EAAA,EAAAc,EAAAsJ,EAAAlK,OAAqCF,EAAAc,EAASd,IAC9C4rO,EAAArlK,EAAA57D,KAAAoiD,EAAA6+K,EAAAxhO,EAAApK,KAAAoK,GAGA,OAAAwhO,IA6VAxpO,EAAAikB,OAhVA,SAAAjc,EAAAm8D,EAAAxZ,GACA,GAAA3iD,GAAAm8D,EAAA,CAIA,GAAAn8D,EAAAic,QAAAjc,EAAAic,SAAAgkN,EACA,OAAAjgO,EAAAic,OAAAkgD,EAAAxZ,GAIA,IAFA,IAAA/8C,KAEAhQ,EAAA,EAAAc,EAAAsJ,EAAAlK,OAAqCF,EAAAc,EAASd,IAC9CumE,EAAA57D,KAAAoiD,EAAA3iD,EAAApK,KAAAoK,IACA4F,EAAAxP,KAAA4J,EAAApK,IAIA,OAAAgQ,IAiUA5N,EAAAypO,KApTA,SAAAzhO,EAAAm8D,EAAAxZ,GACA,GAAA3iD,GAAAm8D,EAIA,QAAAvmE,EAAA,EAAAc,EAAAsJ,EAAAlK,OAAmCF,EAAAc,EAASd,IAC5C,GAAAumE,EAAA57D,KAAAoiD,EAAA3iD,EAAApK,KAAAoK,GACA,OAAAA,EAAApK,IA8SAoC,EAAAqH,OACArH,EAAAonC,MAtRA,SAAA+uB,GACA,IAAAltD,EAAAi/N,EAAA3/N,KAAA5G,UAAA,GACA,kBACA,OAAAw0D,EAAA/sD,MAAAvM,KAAAoM,EAAA2I,OAAAs2N,EAAA3/N,KAAA5G,eAoRA3B,EAAA2I,UACA3I,EAAAxD,WAjQA,SAAA4H,GACA,yBAAAA,GAiQApE,EAAAzD,SAxPA,SAAA6H,GACA,0BAAA0jO,EAAAv/N,KAAAnE,IAwPApE,EAAAvD,WACAuD,EAAA4oO,kBACA5oO,EAAAsoK,aA1NA,SAAAlkK,GACA,QAAAgjO,EAAAU,EAAAv/N,KAAAnE,KA0NApE,EAAAwoO,QACAxoO,EAAA+tK,MAxMA,SAAA3pK,GACA,OAAAA,MAwMApE,EAAA6kE,SA9LA,SAAA52C,GACA,QAAArwB,EAAA,EAAAc,EAAAiD,UAAA7D,OAAyCF,EAAAc,EAASd,IAClD,SAAA+D,UAAA/D,GACA,OAAA+D,UAAA/D,IA4LAoC,EAAA82M,UAvLA,SAAA4yB,EAAAz1H,GACA,aAAAy1H,IAAAz1H,GAuLAj0G,EAAAo2M,UApLA,SAAAszB,EAAAz1H,EAAAC,GACA,aAAAw1H,IAAA,MAAAz1H,IAAAC,GAoLAl0G,EAAAb,MAzKA,WACA,OAAA6W,SAAAzN,KAAAa,MAAA8+N,EAAAvmO,YAyKA3B,EAAAyoM,kBA5JA,SAAAr+L,GACA,oBAAAA,EACA,OAAAA,SAGA,IAAA1L,EAAA0L,EAAAtM,OAEA,WAAAY,GAEA0L,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACG,IAAA1L,GAEH0L,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAGAA,GA8IApK,EAAAwpD,OArIA,SAAAqJ,EAAA8J,GACA,IAAA9J,EACA,UAAAqJ,MAAAS,IAoIA38D,EAAAq+E,KA1HA,SAAAnxC,GACA,aAAAA,EACA,KACG,mBAAAA,EAAAmxC,KACHnxC,EAAAmxC,OAEAnxC,EAAA9nC,QAAA,0CAqHApF,EAAAitD,eA5GA,SAAAjlD,GACAA,EAAA+gO,IAAA,GA4GA/oO,EAAAsoO,cACAtoO,EAAA4xD,cA1DA,SAAA5pD,GACA,WAAAghO,EAAAhhO,IA0DAhI,EAAA2pO,YAvDA,SAAAv3N,EAAAC,GAGA,IAFA,IAAAqyE,EAAA,IAAAtyE,EAAApV,YAAAoV,EAAAtU,OAAAuU,EAAAvU,QAEAF,EAAA,EAAiBA,EAAAwU,EAAAtU,OAAcF,IAC/B8mF,EAAA9mF,GAAAwU,EAAAxU,GAGA,IAAA2hC,EAAAntB,EAAAtU,OAEA,IAAAF,EAAA,EAAaA,EAAAyU,EAAAvU,OAAcF,IAC3B8mF,EAAA9mF,EAAA2hC,GAAAltB,EAAAzU,GAGA,OAAA8mF,GA2CA1kF,EAAAk5D,KAxCA,mCCnrBA,IAAAlxB,EAAW5rC,EAAQ,QAEnB6rC,EAAgB7rC,EAAQ,QAExBwtO,EAAoBxtO,EAAQ,QAG5Bu3G,GAAA,iFACAk2H,EAAAjlO,KAAAyjC,KACAs7H,EAAA/+J,KAAA2jC,IACAm7H,EAAA9+J,KAAA0jC,IACA1T,EAAAhwB,KAAAgwB,GAEAk1M,EAAA,SAAAlgO,GACA,OAAAhF,KAAAyjC,KAAAz+B,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,KAGAmgO,EAAA,SAAAz+B,EAAA1hM,GACA,OAAA0hM,EAAA,GAAA1hM,EAAA,GAAA0hM,EAAA,GAAA1hM,EAAA,KAAAkgO,EAAAx+B,GAAAw+B,EAAAlgO,KAGAogO,EAAA,SAAA1+B,EAAA1hM,GACA,OAAA0hM,EAAA,GAAA1hM,EAAA,GAAA0hM,EAAA,GAAA1hM,EAAA,SAAAhF,KAAAqlO,KAAAF,EAAAz+B,EAAA1hM,KAGA,SAAAsgO,EAAA58L,EAAAC,EAAA7C,EAAAC,EAAAw/L,EAAAC,EAAA18L,EAAAC,EAAA08L,EAAAzoM,EAAA1kC,GACA,IAAAotO,EAAAD,GAAAz1M,EAAA,KACA21M,EAAA7mE,EAAA4mE,IAAAh9L,EAAA5C,GAAA,EAAAi5H,EAAA2mE,IAAA/8L,EAAA5C,GAAA,EACA6/L,GAAA,EAAA7mE,EAAA2mE,IAAAh9L,EAAA5C,GAAA,EAAAg5H,EAAA4mE,IAAA/8L,EAAA5C,GAAA,EACA8/L,EAAAF,KAAA78L,KAAA88L,KAAA78L,KAEA88L,EAAA,IACA/8L,GAAAm8L,EAAAY,GACA98L,GAAAk8L,EAAAY,IAGA,IAAA5qL,GAAAsqL,IAAAC,GAAA,KAAAP,GAAAn8L,KAAAC,KAAAD,KAAA88L,KAAA78L,KAAA48L,OAAA78L,KAAA88L,KAAA78L,KAAA48L,QAAA,EACAG,EAAA7qL,EAAAnS,EAAA88L,EAAA78L,EACAg9L,EAAA9qL,GAAAlS,EAAA48L,EAAA78L,EACAt5B,GAAAk5B,EAAA5C,GAAA,EAAAg5H,EAAA4mE,GAAAI,EAAA/mE,EAAA2mE,GAAAK,EACAt2N,GAAAk5B,EAAA5C,GAAA,EAAAg5H,EAAA2mE,GAAAI,EAAAhnE,EAAA4mE,GAAAK,EACAC,EAAAZ,GAAA,OAAAO,EAAAG,GAAAh9L,GAAA88L,EAAAG,GAAAh9L,IACA29J,IAAAi/B,EAAAG,GAAAh9L,GAAA88L,EAAAG,GAAAh9L,GACA/jC,KAAA,EAAA2gO,EAAAG,GAAAh9L,IAAA,EAAA88L,EAAAG,GAAAh9L,GACAk9L,EAAAb,EAAA1+B,EAAA1hM,GAEAmgO,EAAAz+B,EAAA1hM,KAAA,IACAihO,EAAAj2M,GAGAm1M,EAAAz+B,EAAA1hM,IAAA,IACAihO,EAAA,GAGA,IAAAT,GAAAS,EAAA,IACAA,GAAA,EAAAj2M,GAGA,IAAAw1M,GAAAS,EAAA,IACAA,GAAA,EAAAj2M,GAGA13B,EAAAi+I,QAAAv5G,EAAAxtB,EAAAC,EAAAq5B,EAAAC,EAAAi9L,EAAAC,EAAAP,EAAAF,GA+PA,SAAAU,EAAA59L,EAAAxlC,GACA,IAAAqjO,EA7PA,SAAAp9N,GACA,IAAAA,EACA,SAIA,IACAstC,EADA+vL,EAAAr9N,EAAAvI,QAAA,WAAAA,QAAA,WAAAA,QAAA,UAAAA,QAAA,WAGA,IAAA61C,EAAA,EAAaA,EAAA04D,EAAA71G,OAAem9C,IAC5B+vL,IAAA5lO,QAAA,IAAAD,OAAAwuG,EAAA14D,GAAA,SAAA04D,EAAA14D,IAIA,IAMAgwL,EANAxiO,EAAAuiO,EAAAttO,MAAA,KAEAwtO,EAAA,EACAC,EAAA,EACAjuO,EAAA,IAAA+qC,EACAG,EAAAH,EAAAG,IAGA,IAAA6S,EAAA,EAAaA,EAAAxyC,EAAA3K,OAAgBm9C,IAAA,CAC7B,IAIArZ,EAJAsL,EAAAzkC,EAAAwyC,GACA8hB,EAAA7vB,EAAA6O,OAAA,GACAmR,EAAA,EACAnf,EAAAb,EAAA/tC,MAAA,GAAAiG,QAAA,aAAA1H,MAAA,KAGAqwC,EAAAjwC,OAAA,QAAAiwC,EAAA,IACAA,EAAA1D,QAGA,QAAAzsC,EAAA,EAAmBA,EAAAmwC,EAAAjwC,OAAcF,IACjCmwC,EAAAnwC,GAAAykB,WAAA0rB,EAAAnwC,IAGA,KAAAsvD,EAAAnf,EAAAjwC,SAAAwJ,MAAAymC,EAAAmf,MACA5lD,MAAAymC,EAAA,KADA,CAKA,IAAAq9L,EACAC,EACA39L,EACAC,EACA28L,EACAH,EACAC,EACA98L,EAAA49L,EACA39L,EAAA49L,EAEA,OAAApuK,GACA,QACAmuK,GAAAn9L,EAAAmf,KACAi+K,GAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAA2E,EACA7vC,EAAAi+I,QAAAv5G,EAAAspM,EAAAC,GACA,MAEA,QACAD,EAAAn9L,EAAAmf,KACAi+K,EAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAA2E,EACA7vC,EAAAi+I,QAAAv5G,EAAAspM,EAAAC,GACA,MAEA,QACAD,GAAAn9L,EAAAmf,KACAi+K,GAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAAyE,EACA3vC,EAAAi+I,QAAAv5G,EAAAspM,EAAAC,GACApuK,EAAA,IACA,MAEA,QACAmuK,EAAAn9L,EAAAmf,KACAi+K,EAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAAyE,EACA3vC,EAAAi+I,QAAAv5G,EAAAspM,EAAAC,GACApuK,EAAA,IACA,MAEA,QACAmuK,GAAAn9L,EAAAmf,KACAtrB,EAAAwG,EAAA2E,EACA7vC,EAAAi+I,QAAAv5G,EAAAspM,EAAAC,GACA,MAEA,QACAD,EAAAn9L,EAAAmf,KACAtrB,EAAAwG,EAAA2E,EACA7vC,EAAAi+I,QAAAv5G,EAAAspM,EAAAC,GACA,MAEA,QACAA,GAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAA2E,EACA7vC,EAAAi+I,QAAAv5G,EAAAspM,EAAAC,GACA,MAEA,QACAA,EAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAA2E,EACA7vC,EAAAi+I,QAAAv5G,EAAAspM,EAAAC,GACA,MAEA,QACAvpM,EAAAwG,EAAA0E,EACA5vC,EAAAi+I,QAAAv5G,EAAAmM,EAAAmf,KAAAnf,EAAAmf,KAAAnf,EAAAmf,KAAAnf,EAAAmf,KAAAnf,EAAAmf,KAAAnf,EAAAmf,MACAg+K,EAAAn9L,EAAAmf,EAAA,GACAi+K,EAAAp9L,EAAAmf,EAAA,GACA,MAEA,QACAtrB,EAAAwG,EAAA0E,EACA5vC,EAAAi+I,QAAAv5G,EAAAmM,EAAAmf,KAAAg+K,EAAAn9L,EAAAmf,KAAAi+K,EAAAp9L,EAAAmf,KAAAg+K,EAAAn9L,EAAAmf,KAAAi+K,EAAAp9L,EAAAmf,KAAAg+K,EAAAn9L,EAAAmf,KAAAi+K,GACAD,GAAAn9L,EAAAmf,EAAA,GACAi+K,GAAAp9L,EAAAmf,EAAA,GACA,MAEA,QACAk+K,EAAAF,EACAG,EAAAF,EACA,IAAAzsO,EAAAxB,EAAAwB,MACA4sO,EAAApuO,EAAAyQ,KAEAs9N,IAAA7iM,EAAA0E,IACAs+L,GAAAF,EAAAI,EAAA5sO,EAAA,GACA2sO,GAAAF,EAAAG,EAAA5sO,EAAA,IAGAkjC,EAAAwG,EAAA0E,EACAQ,EAAAS,EAAAmf,KACA3f,EAAAQ,EAAAmf,KACAg+K,EAAAn9L,EAAAmf,KACAi+K,EAAAp9L,EAAAmf,KACAhwD,EAAAi+I,QAAAv5G,EAAAwpM,EAAAC,EAAA/9L,EAAAC,EAAA29L,EAAAC,GACA,MAEA,QACAC,EAAAF,EACAG,EAAAF,EACAzsO,EAAAxB,EAAAwB,MACA4sO,EAAApuO,EAAAyQ,KAEAs9N,IAAA7iM,EAAA0E,IACAs+L,GAAAF,EAAAI,EAAA5sO,EAAA,GACA2sO,GAAAF,EAAAG,EAAA5sO,EAAA,IAGAkjC,EAAAwG,EAAA0E,EACAQ,EAAA49L,EAAAn9L,EAAAmf,KACA3f,EAAA49L,EAAAp9L,EAAAmf,KACAg+K,GAAAn9L,EAAAmf,KACAi+K,GAAAp9L,EAAAmf,KACAhwD,EAAAi+I,QAAAv5G,EAAAwpM,EAAAC,EAAA/9L,EAAAC,EAAA29L,EAAAC,GACA,MAEA,QACA79L,EAAAS,EAAAmf,KACA3f,EAAAQ,EAAAmf,KACAg+K,EAAAn9L,EAAAmf,KACAi+K,EAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAA6E,EACA/vC,EAAAi+I,QAAAv5G,EAAA0L,EAAAC,EAAA29L,EAAAC,GACA,MAEA,QACA79L,EAAAS,EAAAmf,KAAAg+K,EACA39L,EAAAQ,EAAAmf,KAAAi+K,EACAD,GAAAn9L,EAAAmf,KACAi+K,GAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAA6E,EACA/vC,EAAAi+I,QAAAv5G,EAAA0L,EAAAC,EAAA29L,EAAAC,GACA,MAEA,QACAC,EAAAF,EACAG,EAAAF,EACAzsO,EAAAxB,EAAAwB,MACA4sO,EAAApuO,EAAAyQ,KAEAs9N,IAAA7iM,EAAA6E,IACAm+L,GAAAF,EAAAI,EAAA5sO,EAAA,GACA2sO,GAAAF,EAAAG,EAAA5sO,EAAA,IAGAwsO,EAAAn9L,EAAAmf,KACAi+K,EAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAA6E,EACA/vC,EAAAi+I,QAAAv5G,EAAAwpM,EAAAC,EAAAH,EAAAC,GACA,MAEA,QACAC,EAAAF,EACAG,EAAAF,EACAzsO,EAAAxB,EAAAwB,MACA4sO,EAAApuO,EAAAyQ,KAEAs9N,IAAA7iM,EAAA6E,IACAm+L,GAAAF,EAAAI,EAAA5sO,EAAA,GACA2sO,GAAAF,EAAAG,EAAA5sO,EAAA,IAGAwsO,GAAAn9L,EAAAmf,KACAi+K,GAAAp9L,EAAAmf,KACAtrB,EAAAwG,EAAA6E,EACA/vC,EAAAi+I,QAAAv5G,EAAAwpM,EAAAC,EAAAH,EAAAC,GACA,MAEA,QACAz9L,EAAAK,EAAAmf,KACAvf,EAAAI,EAAAmf,KACAo9K,EAAAv8L,EAAAmf,KACAi9K,EAAAp8L,EAAAmf,KACAk9K,EAAAr8L,EAAAmf,KAKAg9K,EAJA58L,EAAA49L,EAAA39L,EAAA49L,EACAD,EAAAn9L,EAAAmf,KACAi+K,EAAAp9L,EAAAmf,KAEAi9K,EAAAC,EAAA18L,EAAAC,EAAA28L,EADA1oM,EAAAwG,EAAA4E,EACA9vC,GACA,MAEA,QACAwwC,EAAAK,EAAAmf,KACAvf,EAAAI,EAAAmf,KACAo9K,EAAAv8L,EAAAmf,KACAi9K,EAAAp8L,EAAAmf,KACAk9K,EAAAr8L,EAAAmf,KAKAg9K,EAJA58L,EAAA49L,EAAA39L,EAAA49L,EACAD,GAAAn9L,EAAAmf,KACAi+K,GAAAp9L,EAAAmf,KAEAi9K,EAAAC,EAAA18L,EAAAC,EAAA28L,EADA1oM,EAAAwG,EAAA4E,EACA9vC,IAKA,MAAA6/D,GAAA,MAAAA,IACAn7B,EAAAwG,EAAAM,EACAxrC,EAAAi+I,QAAAv5G,IAGAqpM,EAAArpM,EAIA,OADA1kC,EAAAsvC,WACAtvC,EAKAquO,CAAAr+L,GAuBA,OAtBAxlC,SAEA6kC,UAAA,SAAArvC,GACA,GAAAA,EAAA08K,QAAA,CACA18K,EAAA08K,QAAAmxD,EAAAp9N,OAEA+0B,EAAAxlC,EAAAo6K,eAGAp6K,EAAAsuO,YAAA9oM,OAEK,CACL,IAAAA,EAAAxlC,EACA6tO,EAAAS,YAAA9oM,KAIAh7B,EAAAm8B,eAAA,SAAAra,GACAogN,EAAAmB,EAAAvhN,GACA3sB,KAAAoB,OAAA,IAGAyJ,EAiEA1H,EAAAyrO,iBAxDA,SAAAv+L,EAAAxlC,GACA,WAAAsgC,EAAA8iM,EAAA59L,EAAAxlC,KAwDA1H,EAAA0rO,iBA/CA,SAAAx+L,EAAAxlC,GACA,OAAAsgC,EAAAzhC,OAAAukO,EAAA59L,EAAAxlC,KA+CA1H,EAAAkuM,UArCA,SAAAy9B,EAAAjkO,GAIA,IAHA,IAAAkkO,KACAltO,EAAAitO,EAAA7tO,OAEAF,EAAA,EAAiBA,EAAAc,EAASd,IAAA,CAC1B,IAAA21C,EAAAo4L,EAAA/tO,GAEA21C,EAAAr2C,MACAq2C,EAAAs4L,kBAGAt4L,EAAAlH,aACAkH,EAAAhH,UAAAgH,EAAAr2C,KAAAq2C,EAAA3uB,OAAA,GAGAgnN,EAAAxtO,KAAAm1C,EAAAr2C,MAGA,IAAA4uO,EAAA,IAAA9jM,EAAAtgC,GAcA,OAZAokO,EAAAD,kBAEAC,EAAAv/L,UAAA,SAAArvC,GACAA,EAAA6uO,WAAAH,GAEA,IAAAlpM,EAAAxlC,EAAAo6K,aAEA50I,GACAxlC,EAAAsuO,YAAA9oM,IAIAopM,uBCnZA/rO,EAAAC,QAAA,SAAAg/E,GACA,IACA,OAAYh+E,GAAA,EAAA4I,EAAAo1E,KACT,MAAAh+E,GACH,OAAYA,GAAA,EAAA4I,EAAA5I,2BCJZ,IAAAqW,EAAcjb,EAAQ,QAEtB6D,EAAc7D,EAAQ,QAyBtB4vO,EAAA30N,EAAA40N,aACArnN,OACA0oB,GAAA,EACAC,GAAA,EACA7C,GAAA,EACAC,GAAA,EACA02J,KAAA,EACAC,KAAA,EACAC,KAAA,EACAC,KAAA,EACA3pK,OAAA,GAEA0U,UAAA,SAAA7J,EAAA9d,GACA,IAAAsnN,EAAAtnN,EAAAiT,OAAA,EACA6K,EAAAkhI,OAAAh/I,EAAA0oB,GAAA1oB,EAAA2oB,GAAA2+L,GACAxpM,EAAA0wL,cAAAxuM,EAAAy8K,KAAAz8K,EAAA08K,KAAA4qC,EAAAtnN,EAAA28K,KAAA38K,EAAA48K,KAAA0qC,EAAAtnN,EAAA8lB,GAAA9lB,EAAA+lB,GAAAuhM,GACAxpM,EAAAmhI,OAAAj/I,EAAA8lB,GAAA9lB,EAAA+lB,GAAAuhM,GACAxpM,EAAA0wL,cAAAxuM,EAAA28K,KAAA38K,EAAA48K,KAAA0qC,EAAAtnN,EAAAy8K,KAAAz8K,EAAA08K,KAAA4qC,EAAAtnN,EAAA0oB,GAAA1oB,EAAA2oB,GAAA2+L,GACAxpM,EAAA43I,eAIAx6K,EAAAG,EAAAs6D,iBACAl6D,KAAA,SAMAqB,OAAA,KACApB,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAsrK,EAAA1zI,EAAA8qJ,WACAtnJ,EAAAh/B,KAAAg/B,MACA3H,EAAAmE,EAAAnE,WAEAre,EAAAqe,EAAAre,MAEAC,EAAAoe,EAAApe,OACAssK,EAAA/pJ,EAAAtP,UACAs5J,EAAAhqJ,EAAAtP,QAAA,QACAlsB,KAAA6E,OAAA22B,EACAwD,EAAAkG,YACAlG,EAAAj8B,KAAA,YAAAs0B,EAAAhzB,EAAAgzB,EAAA9yB,IAEA2qK,EAAAogE,SAAA,SAAA3oD,GACA,IAAAi9B,EAAA,IAAAurB,EACAvrB,EAAAxlL,UAAAuoJ,EAAAvoJ,UACAwlL,EAAAzxL,YAAAqJ,EAAArJ,YACAyxL,EAAAvhM,SAAA,OACA,IAAA+c,EAAAunJ,EAAAtnJ,SAAA,aACAqjK,EAAAtjK,EAAAp7B,IAAA,aACAurO,EAAA5oD,EAAAG,MAAA8C,YACA4lD,EAAA7oD,EAAAG,MAAAznJ,WACAowM,EAAAD,EAAAxrO,IAAA,UACA0rO,EAAAF,EAAAxrO,IAAA,UACA2rO,EAAAhpD,EAAAK,MAAA4C,YACAgmD,EAAAjpD,EAAAK,MAAA3nJ,WACAwwM,EAAAD,EAAA5rO,IAAA,UACA8rO,EAAAF,EAAA5rO,IAAA,UACA+rO,EAAAppD,EAAAiD,YACAg6B,EAAA77L,MAAAiT,OAAAjzB,KAAAE,IAAA,EAAA8nO,EAAA/hM,IACA,IAAAyC,GAAA,MAAAg/L,IAAAz2N,EAAAu2N,EAAAlrO,GAAAkrO,EAAAxhM,GACA2C,GAAA,MAAAg/L,IAAAz2N,EAAAs2N,EAAAhrO,GAAAwrO,EAAAn/L,GAAAm/L,EAAA/hM,GAAA,EACAH,EAAA,MAAAgiM,IAAA72N,EAAA22N,EAAAtrO,EACAypC,GAAA,MAAAgiM,IAAA72N,EAAA02N,EAAAprO,GAAAwrO,EAAA17C,GAAA07C,EAAA/hM,GAAA,EACAw2J,EAAA/zJ,GAAA,EAAAiyJ,GAAA70J,EAAA60J,EACA+B,EAAA/zJ,EACAg0J,EAAAj0J,EAAAiyJ,EAAA70J,GAAA,EAAA60J,GACAiC,EAAA72J,EAaA,OAZA81K,EAAAriL,UACAkP,KACAC,KACA7C,KACAC,KACA02J,OACAC,OACAC,OACAC,SAEAif,EAAAtnK,SAAAld,EAAAkmC,gBAEAs+I,EAAArrM,MAAAb,MACA,aACAksM,EAAArrM,MAAAb,KAAAivK,EAAAG,MAAAnlJ,UAAA,SACA,MAEA,aACAiiL,EAAArrM,MAAAb,KAAAivK,EAAAK,MAAArlJ,UAAA,SAIAnnB,EAAAmrD,cAAAi+I,EAAAj9B,EAAAtnJ,SAAA,sBAAAimC,gBACAtmC,EAAAC,IAAA2kL,GACAp+B,EAAA3kJ,iBAAA8lJ,EAAAvoJ,UAAAwlL,KAGA10C,EAAA+Z,SAAA,SAAA/vH,GACA,IAAA5hC,EAAA4hC,EAAA0wH,YACA1kH,EAAAhM,EAAA75B,WACA2wM,EAAA9qK,EAAAlhE,IAAA,UACAisO,EAAA/qK,EAAAlhE,IAAA,UACA+hE,EAAAb,EAAA7lC,SAAA,SACA2mC,EAAAd,EAAA7lC,SAAA,kBACA6I,EAAA,IAAA1tB,EAAAyiB,MACAlV,OACA1jB,EAAA,MAAA2rO,IAAAh3N,EAAAse,EAAAjzB,EACAE,EAAA,MAAA0rO,IAAAh3N,EAAAqe,EAAA/yB,EACAyU,MAAAse,EAAAyW,GACA90B,OAAAqe,EAAA0W,IAEAz1B,MAAA2sD,EAAA7lC,SAAA,aAAAimC,iBAEAC,EAAArM,EAAA75B,SAAA,sBAAAimC,eACA9qD,EAAA2rD,cAAAj+B,EAAA3vB,MAAAgtD,EAAAQ,EAAAC,GACAI,aAAA5qC,EACA6qC,eAAAnN,EAAA96B,UACAkoC,YAAApN,EAAAx3D,GACAg7L,YAAA,IAEAx0J,EAAAoU,SAAA,OAAA4c,EAAAv3B,UAAA,UACAnnB,EAAAmrD,cAAAz9B,EAAAq9B,GACAvmC,EAAAC,IAAAiJ,GACAq9I,EAAA1kJ,iBAAAq4B,EAAA96B,UAAA8J,GACAA,EAAA7lB,SAAA,SAEAmZ,EAAAx3B,IAAA,cAGAuhL,EAAA5kJ,kBAAA,SAAAlgC,EAAA29B,GACA39B,EAAA+kH,MAAA,SAAAz3E,EAAAC,GACAhuC,KAAA+nB,MAAA1jB,GAAA0pC,EACA/tC,KAAA+nB,MAAAxjB,GAAAypC,EACAhuC,KAAAoB,QACAwC,EAAAQ,gBACAZ,KAAA,WACA6gE,SAAA7oC,EAAA95B,GACA08B,UAAAmnJ,EAAAhc,YAAAnrI,GACA8xM,OAAAlwO,KAAA+nB,MAAA1jB,EAAA2U,EACAm3N,OAAAnwO,KAAA+nB,MAAAxjB,EAAA0U,KAIAxY,EAAAw2J,WAAA,EACAx2J,EAAA2uB,OAAA,UAIApvB,KAAAic,OAAAuf,EAAAx3B,IAAA,cACAg7B,EAAAgC,YAWA,SAAAkH,EAAA1M,EAAA8rC,GACA,IAAAuiK,EAAA,IAAArvN,EAAAyiB,MACAlV,OACA1jB,EAAA6jC,EAAA7jC,EAAA,GACAE,EAAA2jC,EAAA3jC,EAAA,GACAyU,MAAA,EACAC,OAAAivB,EAAAjvB,OAAA,MASA,OANAuB,EAAAgiB,UAAAqtM,GACA9hN,OACA/O,MAAAkvB,EAAAlvB,MAAA,GACAC,OAAAivB,EAAAjvB,OAAA,KAEGuiB,EAAA8rC,GACHuiK,EA1BA3sM,CAAA8B,EAAA8I,kBAAAtM,EAAA,WACAwD,EAAAooC,oBAIApnE,KAAAic,MAAAuf,EAAAtP,WAEAnnB,QAAA,eAsBA7B,EAAAC,QAAAF,sBC9KAC,EAAAC,SAXAymE,mBAAA,WACA,OACA/jE,KAAA7F,KAAAgE,IAAA,QACAgO,IAAAhS,KAAAgE,IAAA,OACA8B,MAAA9F,KAAAgE,IAAA,SACA8Q,OAAA9U,KAAAgE,IAAA,UACAgV,MAAAhZ,KAAAgE,IAAA,SACAiV,OAAAjZ,KAAAgE,IAAA,wDC1BA,IAAAvE,EAAYF,EAAQ,QAEpBk/B,EAAAh/B,EAAAg/B,KACA9tB,EAAAlR,EAAAkR,IAEAhR,GADAF,EAAAqM,QACArM,EAAAE,YACAo1D,EAAAt1D,EAAAs1D,cACAsH,EAAA58D,EAAA48D,KAIA+zK,EAFY7wO,EAAQ,QAEpB6wO,WAIAr7C,EAFiBx1L,EAAQ,QAEzBw1L,OAEAnpI,EAAkBrsD,EAAQ,QAE1BssD,EAAmBtsD,EAAQ,QAI3B22D,EAFa32D,EAAQ,QAErB22D,iBA4BA,SAAA1J,EAAAuC,EAAAnrD,EAAAysO,EAAApzC,GACAj9L,KAAA+uD,aACA/uD,KAAA4D,MACA5D,KAAAkwD,WAKAmgL,EAAArwO,KAAAswO,uBAAAD,EAAA/tO,QACA26L,EAAAj9L,KAAAuwO,gBAAAtzC,EAAA36L,QACAtC,KAAAwwO,aAAAH,EAAAt7N,OAAAkoL,GAaAj9L,KAAAywO,cAAA17K,IAGA,IAAAvd,EAAAgV,EAAAtsD,UAmJA,SAAAwwO,EAAA9/K,EAAA+/K,EAAAhtO,EAAAigC,EAAAhL,GAEA,IAAAs3B,EA6CA,SAAA0gL,EAAAh4M,EAAAi4M,GACA,OAAAj4M,EAAAu8B,YAAAv8B,EAAAw8B,UAAAx8B,EAAAw8B,SAAApxD,IAAA6sO,EAAAC,WAAApvO,KA/CAk3B,QAEA6F,EAAAkyM,EAAA,SAAA30K,EAAA17B,GACA,IAAA1H,EAAAk7B,YAAAl7B,EAAAk7B,aAAAkI,EAAAlI,WAAA,CAIA,IAAAi9K,EAAAngL,EAAA6/K,cAAAzsO,IAAAg4D,EAAA9G,KAEA87K,EAAAD,EAAAC,cACAC,EAAAF,EAAAE,YAEA,GAAAA,EAAA,CACA,IAAAC,EACAC,EAAAF,EAAAE,aACAA,EAAA1yM,KAAA,SAAA2yM,GACAR,EAAAh4M,EAAAw4M,KACAA,EAAAhwO,QACA8vO,GAAA,KAGAA,GAAAD,EAAA7vO,QACAm3D,EAAA04K,EAAArtM,GACA,IAAAytM,EAAAzgL,EAAA6H,eAAAw4K,EAAAr4M,EAAA04M,OAKAH,EAAA1yM,KAAA,SAAA2yM,GACAA,EAAA54K,QAAA64K,KAEAnhL,GAAA+gL,EAAAz4K,QAAA64K,QACKL,GACLA,EAAAvyM,KAAA,SAAAoyM,EAAAU,GACAX,EAAAh4M,EAAAi4M,IACAA,EAAAzvO,QAGA,IAAAiwO,EAAAzgL,EAAA6H,eAAAo4K,EAAAj4M,EAAA04M,OACAD,EAAAG,MAAAx1K,EAAAy1K,kBAAA9tO,EAAA+tO,iBAAAb,EAAA/iL,QAAAv2B,OACAghC,EAAAs4K,EAAAjtM,GACAssB,GAAA2gL,EAAAr4K,QAAA64K,QASAzgL,EAAAV,cAhMA1Y,EAAA+c,YAAA,SAAA5wD,EAAAigC,GAiBAjgC,EAAA4wD,YAAA3wB,GAQA5jC,KAAAywO,cAAAhyM,KAAA,SAAAkzM,GACA,IAAAV,EAAAU,EAAAV,YACAA,KAAA7vO,WAKAo2C,EAAAihB,eAAA,SAAAo4K,EAAAe,GAEA,GAAAf,EAAAC,WAAA,CAIA,IAAAe,EAAA7xO,KAAA8xO,aAAA9tO,IAAA6sO,EAAAC,WAAApvO,IAEAqwO,EAAAF,EAAA/jL,QAEAxmC,GADAsqN,GAAAC,EAAAG,sBAAAD,KAAA3jK,oBAAAyiK,EAAAoB,gBAAAJ,EAAAK,WACAL,EAAAvqN,KAAA,KACA6qN,EAAAJ,KAAAI,aAEA,OACA7qN,OACA8qN,MAHA,MAAAD,EAAApqO,KAAAowC,KAAAg6L,EAAA7qN,GAAA,KAIA6qN,kBAIA36L,EAAA66L,YAAA,SAAAd,GACA,OAAAvxO,KAAA8xO,aAAA9tO,IAAAutO,IAWA/5L,EAAA6Z,kBAAA,SAAA71B,EAAAs3B,GACA,IAAA++K,EAAA7xO,KAAA8xO,aAAA9tO,IAAAw3B,EAAA05B,KAGA/2B,EADA3C,EAAAtP,UACA3pB,QAMA6rE,EAAAyjK,EAAAG,oBAAAl/K,EAAA6a,0BAAAxvC,GAAA0zM,EAAAS,UACAnkK,EAAA3yC,EAAAx3B,IAAA,UAAAm6B,GAAA3C,EAAAx3B,IAAA,kBAGAmuO,EAAA,QAAA32M,EAAAx3B,IAAA,wBAAAm6B,EAAA,KACA3C,EAAA0yC,gBAAA2jK,EAAA/jL,SACAsgB,oBACA+jK,eACAhkK,UAIA32B,EAAAie,iBAAA,SAAA9xD,GACA,IAAAitD,EAAA5wD,KACAuyO,EAAA3hL,EAAAkhL,aAAA/8K,IACApxD,EAAAqxD,WAAA,SAAAx5B,GACA,IAAAmuI,EAAAnuI,EAAAhC,iBACA+3M,EAAA/1M,EAAA05B,IACAq9K,EAAAvtL,IAAAusL,GACA7vO,GAAA6vO,EACA91D,KAAA,KACAC,KAAA,KACA42D,UAAA92M,EAAA/B,0BACAu4M,mBAAAroE,KAAAnuI,EAAAg3M,oBAAAh3M,EAAAg3M,sBACAN,YAAA,EACA5qN,KAAAvf,KAAAqC,MAAAu/J,GAAA,KACApnK,MAAA,IAEA8qM,EAAAz8I,EAAAp1B,IAAAi3M,aAIAj7L,EAAAke,kBAAA,WACA,IAAAg9K,EAAA1yO,KAAAywO,cACA9sO,EAAA3D,KAAA+uD,WAAA1vB,WACAz7B,EAAA5D,KAAA4D,IACA66B,EAAAz+B,KAAAwwO,aAAA,SAAA/0N,GACA,IAAAqjK,EAAA4zD,EAAA1uO,IAAAyX,EAAAy5C,MAAAw9K,EAAA1tL,IAAAvpC,EAAAy5C,QACAz5C,EAAA3Q,OAgHA,SAAA8lD,EAAAoL,EAAA+0K,EAAAptO,EAAAC,GACA,IAAAotO,EAAAD,EAAAC,gBAAAD,EAAAC,cAAAj8K,KACA8a,EAAA7T,EAAA6T,WACA8iK,EAAA32K,EAAA22K,gBAIA32K,EAAA42K,kBACAjvO,EAAAkvO,cAAAnpM,GACGmmC,EACHlsE,EAAAmvO,oBAAAjjK,EAAAnmC,GACGipM,GACHA,EAAAhvO,EAAAC,GAAA66B,KAAAiL,GAGA,SAAAA,EAAAlO,GACA,IAAA+1M,EAAA/1M,EAAA05B,IAGA27K,EAAAG,EAAAhtO,IAAAutO,IAAAP,EAAAhsL,IAAAusL,EAAAnB,GACAx6K,KAAAm9K,EACAjoO,MAAAkoO,EACAzwO,MAAA0wO,KAEApC,EAAA/iL,SACAv2B,MAAAiE,EACA73B,UACAC,MACAsvO,eAAAl3K,EAAAm3K,WAAAn3K,EAAAo3K,SACAx9K,KAAAoG,EAAApG,KACA9qD,MAAAkxD,EAAAlxD,MACA8lD,aAEAy8I,EAAAz8I,EAAAp1B,EAAAq1M,GAIA,IAAA0B,EAAA3hL,EAAAkhL,aACAd,EAAAvyM,KAAA,SAAAoyM,EAAAU,GACAgB,EAAAvuO,IAAAutO,KACAV,EAAA9rO,UACAisO,EAAAxV,UAAA+V,MAzJA8B,CAAArzO,KAAAyb,EAAAqjK,EAAAn7K,EAAAC,GACA6X,EAAA63N,cA6JA,SAAA1iL,EAAAoL,EAAA+0K,EAAAptO,EAAAC,GACA,IAAAqtO,EAAAF,EAAAE,YAAAF,EAAAE,aACAb,GACAtlO,MAAAyoO,IAEAtC,EAAAnjL,SACAnqD,UACAC,MACA0vO,aAAAt3K,EAAAs3K,aACA1iL,aAGA,IAAAugL,EAAAF,EAAAE,aAAAF,EAAAE,cAAAp8K,IACA8a,EAAA7T,EAAA6T,WACA8iK,EAAA32K,EAAA22K,gBACAa,GAAA,EACA52D,EAAA5gH,EAAA4gH,gBAKA/sG,EACAlsE,EAAAmvO,oBAAAjjK,EAAA4jK,GACGd,EACHA,EAAAhvO,EAAAC,GAAA66B,KAAAg1M,IAMAD,GAAA,EACA/0M,EAAA96B,EAAAgnB,YAAA8oN,IAGA,SAAAA,EAAAj4M,GACA,IAAA+1M,EAAA/1M,EAAA05B,IACAk8K,EAAAD,EAAAntO,IAAAutO,GAEAH,IACAA,EAAAD,EAAAnsL,IAAAusL,EAAAnB,GACAtlO,MAAA4oO,EACAC,QAAAC,KAIA3C,EAAA7vO,SAGAgwO,EAAAtjL,SACAv2B,MAAAiE,EACAg4M,kBACA52D,mBAEAw0D,EAAAyC,MAAA5C,EACAG,EAAA0C,QAAAN,EACAnmC,EAAAz8I,EAAAp1B,EAAA41M,GAIA,IAAAmB,EAAA3hL,EAAAkhL,aACAX,EAAA1yM,KAAA,SAAA2yM,EAAAG,GACAgB,EAAAvuO,IAAAutO,KACAH,EAAArsO,UAGAksO,EAAA7vO,QACA+vO,EAAA3V,UAAA+V,MA/NAwC,CAAA/zO,KAAAyb,EAAAqjK,EAAAn7K,EAAAC,IACG5D,OAGHw3C,EAAAme,YAAA,SAAA7C,EAAAv7B,EAAA5zB,EAAAC,GACA,IAAAu0D,EAAArF,EAAAqF,WACArK,EAAAqK,EAAArK,QACAA,EAAAv2B,QACAu2B,EAAAnqD,UACAmqD,EAAAlqD,MACAu0D,EAAA27K,SAAAhhL,EAAA6a,yBACA0/H,EAAArtM,KAAAu3B,EAAA4gC,IAGA3gB,EAAA4Z,0BAAA,SAAAztD,EAAAigC,GAEA8sM,EAAA1wO,UAAAswO,uBAAA3sO,EAAAigC,GACA0tM,OAAA,KAOA95L,EAAA8Z,mBAAA,SAAA3tD,EAAAigC,EAAAhL,GACA83M,EAAA1wO,UAAAuwO,gBAAA5sO,EAAAigC,EAAAhL,IAyDA4e,EAAA2Z,mBAAA,SAAAxtD,GACA,IAAAusD,EACAvsD,EAAAqxD,WAAA,SAAAx5B,GAEA00B,GAAA10B,EAAAi3M,SAAAj6K,YAEAx4D,KAAAkwD,eAGA1Y,EAAAoe,KAAA,WAEA51D,KAAA8xO,aAAArzM,KAAA,SAAAozM,GACA,IAAAhB,EAAAgB,EAAAn2D,KAEA,GACA,GAAAm1D,EAAAiD,QAAA,CACAjC,EAAAK,WAAArB,EAAAoB,gBACA,MAGApB,IAAAmD,oBACKnD,MAIL,IAAAt4K,EAAA/gB,EAAA+gB,cAAA,SAAAs4K,EAAAjtM,GACA,WAAAA,IAAAitM,EAAA/iL,QAAAlqB,YAwHA,SAAA2vM,EAAAzlL,GACAA,EAAAwlL,aAAAxlL,EAAAnqD,QAAAmqD,EAAAlqD,IAAAkqD,EAAAlqB,SAGA,SAAA8vM,EAAA5lL,EAAAmmL,GACA,OAAAnmL,EAAA0lL,iBAAAU,EAGA,SAAAA,IACAl0O,KAAA6zO,MAAAzyO,QACApB,KAAAm0O,gBAAA/yO,QAGA,SAAAwyO,IACA5zO,KAAA6zO,OAAA7zO,KAAA6zO,MAAAzyO,QAGA,SAAA2xO,EAAAjlL,GACA,OAAAA,EAAA8H,MAAA9H,EAAA8H,KAAA9H,EAAAv2B,MAAAu2B,EAAAnqD,QAAAmqD,EAAAlqD,IAAAkqD,EAAAlqB,SAGA,SAAAovM,EAAAllL,GACAA,EAAAolL,gBACAplL,EAAAh9C,KAAAsjO,iBAGA,IAAAC,EAAAvmL,EAAAumL,aAAAn+K,EAAApI,EAAAhjD,MAAAgjD,EAAAv2B,MAAAu2B,EAAAnqD,QAAAmqD,EAAAlqD,IAAAkqD,EAAAlqB,UACA,OAAAywM,EAAApzO,OAAA,EAAA0P,EAAA0jO,EAAA,SAAAtnO,EAAAuzB,GACA,OAAAg0M,EAAAh0M,KACGi0M,EAGH,IAAAA,EAAAD,EAAA,GAEA,SAAAA,EAAAE,GACA,gBAAA7iN,EAAAm8B,GACA,IAAAh9C,EAAAg9C,EAAAh9C,KACA2jO,EAAA3mL,EAAAumL,aAAAG,GAEA,GAAAC,KAAA1kK,SACA,QAAAhvE,EAAA4wB,EAAAnvB,MAAgCzB,EAAA4wB,EAAAT,IAAgBnwB,IAChD0zO,EAAA1kK,SAAAj/D,EAAA/P,QAEK0zO,KAAA/xK,UACL+xK,EAAA/xK,SAAA/wC,EAAA7gB,IAKA,SAAAmiO,EAAAnlL,GACA,OAAAA,EAAAh9C,KAAAvO,QAGA,SAAA8qM,EAAAz8I,EAAAp1B,EAAAq1M,GACA,IAAAU,EAAA/1M,EAAA05B,IAEA28K,EAAAjhL,EAAAkhL,aAAA9tO,IAAAutO,IAEAM,EAAAp2D,OAAAo2D,EAAAp2D,KAAAo1D,GACAgB,EAAAn2D,MAAAm2D,EAAAn2D,KAAA2xB,KAAAwjC,GACAgB,EAAAn2D,KAAAm1D,EACAA,EAAAoB,gBAAAJ,EAAAtvO,QACAsuO,EAAAC,WAAAe,EAGArlL,EAAAyP,iBAAA,SAAAD,EAAAlI,GAUA,OATAn0D,EAAAq8D,KACAA,GACAs3K,aAAAt3K,EACA6T,WAiBA,SAAA6kK,GACA7kK,EAAA,KAEA,IAEA6kK,EAAAC,EAAAC,GACG,MAAAzwO,IAEH,OAAA0rE,EAzBAglK,CAAA74K,KAIAA,EAAA9G,IAAA6/H,EAAA,gBACAjhI,IAAAkI,EAAAlI,cACAkI,GAsBA,IAEA6T,EAFA8kK,KACAC,KAeA,SAAAE,EAAAv0O,EAAA46N,GACA,QAAAv4N,KAAAu4N,EAAAj7N,UAEAK,EAAAqC,GAAAy5D,EAhBAy4K,EAAAH,EAAA/oL,GACAkpL,EAAAF,EAAA/oL,GAEA8oL,EAAA/sC,iBAAA+sC,EAAA7B,oBAAA,SAAAtvO,GACAqsE,EAAArsE,GAGAmxO,EAAA9hL,cAAA,SAAAkiL,GACA,WAAAA,EAAAzlL,UAAAylL,EAAAj/K,UACA+Z,EAAAklK,EAAAj/K,UAWA,IAAA7yD,EAAAupD,EACAtpD,EAAAC,QAAAF,wBCjiBgB1D,EAAQ,QAoBxBs7M,yBAAA,sBAEA,yCCtBA,IAAAhhL,EAAat6B,EAAQ,QA0CrB,SAAAy1O,EAAA97K,GAGA,IAFA,IAAA74D,KAEA64D,IACAA,IAAA3sB,aACAlsC,EAAAkB,KAAA23D,GAGA,OAAA74D,EAAAknB,UA0BApkB,EAAA8xO,mBAxDA,SAAArxM,EAAAsxM,EAAA15M,GACA,GAAAoI,GAAA/J,EAAA/5B,QAAAo1O,EAAAtxM,EAAApgC,OAAA,GACA,IAAAq3C,EAAArf,EAAAtP,UAAA0+J,KAAA/vI,KACAuvJ,EAAAxmK,EAAAwmK,WAEA,GAAAA,GAAAvvJ,EAAA2I,SAAA4mJ,GACA,OACAlxI,KAAAkxI,GAIA,IAAA+qC,EAAAvxM,EAAAuxM,aAEA,SAAAA,IAAA/qC,EAAAvvJ,EAAAuuI,YAAA+rD,IACA,OACAj8K,KAAAkxI,KA0CAjnM,EAAA6xO,gBACA7xO,EAAAiyO,cAzBA,SAAAC,EAAAn8K,GACA,IAAAo8K,EAAAN,EAAAK,GACA,OAAAx7M,EAAA/5B,QAAAw1O,EAAAp8K,IAAA,GAwBA/1D,EAAAoyO,iBApBA,SAAAr8K,EAAA19B,GAGA,IAFA,IAAAg6M,KAEAt8K,GAAA,CACA,IAAAu8K,EAAAv8K,EAAA96B,UACAo3M,EAAAj0O,MACAqB,KAAAs2D,EAAAt2D,KACAw7B,UAAAq3M,EACAluO,MAAAi0B,EAAAs+K,YAAA27B,KAEAv8K,IAAA3sB,WAIA,OADAipM,EAAAjuN,UACAiuN,yBCzEA,IAAA37M,EAAat6B,EAAQ,QAErBi3G,EAAWj3G,EAAQ,QAInBmvK,EAFoBnvK,EAAQ,QAE5BmvK,iBAkJAxrK,EAAAC,QA9HA,SAAA8qD,EAAAtqD,GACA,IAAA+xO,EAAA/xO,EAAA07B,SAAA,QAEA,GAAAq2M,EAAA1xO,IAAA,QAEG,GAAA0xO,EAAA1xO,IAAA,eACHiqD,EAAAvnB,aAAA,aAAAgvM,EAAA1xO,IAAA,oBADG,CAKH,IAAA2xO,EAAA,EACAhyO,EAAAqxD,WAAA,SAAAx5B,EAAA8E,KACAq1M,GACG31O,MACH,IAGA41O,EAHAC,EAAAH,EAAA1xO,IAAA,qBACA8xO,EAAAJ,EAAA1xO,IAAA,uBACA+xO,EAAAhuO,KAAAC,IAAA2tO,EAAAG,GAGA,KAAAH,EAAA,IAIA,IAAAz7N,EAwFA,WACA,IAAAA,EAAAvW,EAAA07B,SAAA,SAAApiB,OAMA,OAJA/C,KAAAjZ,SACAiZ,IAAA,IAGAA,KAAAm3B,KA/FA2kM,GAGAJ,EADA17N,EACA3R,EAAA0tO,EAAA,sBACA/7N,UAGA+7N,EAAA,wBAGA,IAAAC,KAEAN,GAAArtO,EAAA0tO,EADAN,EAAA,oDAEA7T,YAAA6T,IAEAhyO,EAAAqxD,WAAA,SAAAx5B,EAAA8E,GACA,GAAAA,EAAAy1M,EAAA,CACA,IAAAI,EACA/jO,EAAAopB,EAAAx3B,IAAA,QACAoyO,EAAA,WAAAT,EAAA,2BAEAQ,EAAA5tO,EADA4tO,EAAAF,EAAA7jO,EAAAgkO,EAAA,WAAAA,EAAA,gBAEA/xK,SAAA7oC,EAAArJ,YACA/f,WAAAopB,EAAAx3B,IAAA,QACA6rE,YA0EArsE,EA1EAg4B,EAAAs6B,QA2EA0gD,EAAAlkG,OAAA+jO,UAAA7yO,IAAA,UAzEA,IAAAsN,EAAA0qB,EAAAtP,UACAvc,OAAAmB,OAEAA,EAAAvO,QAAAszO,EAEAM,GAAA5tO,EAAA0tO,EAAA,qBACAK,WAAAT,IAGAM,GAAAF,EAAA,gBAKA,IAFA,IAAA3mN,KAEAvuB,EAAA,EAAuBA,EAAA+P,EAAAvO,QAAkBxB,IACzC,GAAAA,EAAA80O,EAAA,CACA,IAAAjzO,EAAAkO,EAAAqzD,QAAApjE,GACAwG,EAAAmnK,EAAA59J,EAAA/P,GACAuuB,EAAA/tB,KAAAgH,EAAA0tO,EAAArzO,EAAA,qCACAA,OACA2E,WAKA4uO,GAAA7mN,EAAAlpB,KAAA6vO,EAAA,0BAAAA,EAAA,sBACAC,EAAA30O,KAAA40O,GA8CA,IAAA3yO,IA3CAoyO,GAAAM,EAAA9vO,KAAA6vO,EAAA,qCAAAA,EAAA,iCACAhoL,EAAAvnB,aAAA,aAAAkvM,IAGA,SAAArtO,EAAA8nC,EAAAkmM,GACA,oBAAAlmM,EACA,OAAAA,EAGA,IAAAt/B,EAAAs/B,EAIA,OAHAxW,EAAA4E,KAAA83M,EAAA,SAAAhvO,EAAAwC,GACAgH,IAAAxI,QAAA,IAAAD,OAAA,UAA6CyB,EAAA,UAAsB,KAAAxC,KAEnEwJ,EAGA,SAAAklO,EAAA51O,GACA,IAAAm2O,EAAAd,EAAA1xO,IAAA3D,GAEA,SAAAm2O,EAAA,CAIA,IAHA,IAAA9pO,EAAArM,EAAAQ,MAAA,KACAkQ,EAAAylG,EAAAlqD,KAEAvrD,EAAA,EAAqBA,EAAA2L,EAAAzL,SAAoBF,EACzCgQ,IAAArE,EAAA3L,IAGA,OAAAgQ,EAEA,OAAAylO,0BCrIA,IAAAC,EAAel3O,EAAQ,QAEAA,EAAQ,QAgD/B0E,SAAA,YACAylC,OAzBA,SAAA/lC,EAAAC,GACA,IAAA6sD,KAoBA,OAnBA9sD,EAAAkvD,cAAA,oBAAAk2G,EAAAzoI,GACA,IAAAjF,EAAA,IAAAo7M,EAAA1tE,EAAAplK,EAAAC,GACAy3B,EAAAz4B,KAAA,YAAA09B,EACAjF,EAAA7e,OAAAusJ,EAAAnlK,GACAmlK,EAAA16I,iBAAAgN,EACAA,EAAA9D,MAAAwxI,EACAt4G,EAAAlvD,KAAA85B,KAGA13B,EAAAqxD,WAAA,SAAAx5B,GACA,gBAAAA,EAAAx3B,IAAA,qBACA,IAAA+kK,EAAAplK,EAAAgyL,iBACArmI,SAAA,WACA1iD,MAAA4uB,EAAAx3B,IAAA,iBACAtC,GAAA85B,EAAAx3B,IAAA,gBACO,GACPw3B,EAAAnN,iBAAA06I,EAAA16I,oBAGAoiC,2BC/CA,IAoBAxtD,EApBoB1D,EAAQ,QAoB5BmK,QACAlG,KAAA,oBAGAN,EAAAC,QAAAF,wBCxBA,IAAA42B,EAAat6B,EAAQ,QAoBrB,SAAA26C,EAAAC,EAAAC,GAEA,IAAA3kB,EAAAz1B,KAAA4sB,UACArf,EAAA6sC,aAAAvuC,MAAAuuC,EAAA,GAAAA,EACAE,GAAAH,aAAAtuC,MAAAsuC,EAAA,GAAAA,GAAA,EACA,mBAAA1kB,EAAAjyB,KAAAiyB,EAAA0D,eAAApxB,KAAAY,IAAA8sB,EAAAqB,YAAAvpB,EAAA+sC,GAAA7kB,EAAAqB,YAAAvpB,EAAA+sC,IAuBAp3C,EAAAC,QApBA,SAAAk4B,GACA,IAAA6M,EAAA7M,EAAAkoC,UACA,OACAloC,UACA73B,KAAA,aACAa,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACAyU,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,QAEArV,KACAw+B,MAAA,SAAA70B,GAEA,OAAA8tB,EAAA4O,YAAA18B,IAEAskB,KAAAgI,EAAArvB,KAAA0vC,EAAA7e,4BC3CA,IAAAq3J,EAAWnzL,EAAQ,QAoBnBo2N,EAAAjjC,EAAAijC,YAuIAxyN,EAAA2kE,YAnIA,SAAAw9G,EAAAJ,EAAAr6K,GAiBA,IAhBA,IAAAq9B,EAAAr9B,EAAAq9B,KACAlvB,EAAAkvB,EAAAlvB,MACAC,EAAAivB,EAAAjvB,OACA6K,GAAAokB,EAAA7jC,EAAA2U,EAAA,EAAAkvB,EAAA3jC,EAAA0U,EAAA,GAEAyuK,EAAA,MAAA78K,EAAA68K,QAAA,GAAA78K,EAAA68K,QAWA3mL,EAAA,EAAiBA,EAAAukL,EAAArkL,OAAkBF,IAAA,CACnC,IAAAq9C,EAAAknI,EAAAvkL,GAEAq9C,EAAAlN,IAgBAkN,EAAAlN,EAAAwhJ,EAAAhpJ,OAAA1wB,GAAAjR,KAAAstK,SAAA,IAAAvxJ,EAAA,GAAA7K,GAAAlR,KAAAstK,SAAA,IAAAvxJ,EAAA,KAGAs6B,EAAAs4L,GAAAhkD,EAAA1oJ,MAAAoU,EAAAlN,GACAkN,EAAA8mI,MAAA,KAMA,IAAAyxD,EAAA,GACA,OACAC,OAAA,WACAD,EAAA,IAEAE,SAAA,SAAAv2M,GACAglJ,EAAAhlJ,GAAA+gB,OAAA,GAEAy1L,WAAA,SAAAx2M,GACAglJ,EAAAhlJ,GAAA+gB,OAAA,GAEA/5B,KAAA,SAAAggD,GAIA,IAHA,IAAAyvK,KACAC,EAAA1xD,EAAArkL,OAEAF,EAAA,EAAqBA,EAAAmkL,EAAAjkL,OAAkBF,IAAA,CACvC,IAAAoD,EAAA+gL,EAAAnkL,GACA2wN,EAAAvtN,EAAAutN,GACAC,EAAAxtN,EAAAwtN,GACAj/B,EAAA/oL,IAAAotO,EAAAplB,EAAAzgL,EAAAwgL,EAAAxgL,GACA,IAAAziB,EAAAikK,EAAA7wL,IAAAk1O,GAAA5yO,EAAAsqB,EACAs1F,EAAA4tG,EAAA5tG,GAAA2tG,EAAA3tG,EAAA4tG,EAAA5tG,GAEAt5G,MAAAs5G,KACAA,EAAA,GAGA2uE,EAAA/iH,UAAAonK,MACArlB,EAAArwK,OAAAs0K,EAAAjE,EAAAxgL,EAAAwgL,EAAAxgL,EAAA6lM,EAAAhzH,EAAAt1F,EAAAkoN,IACAhlB,EAAAtwK,OAAAs0K,EAAAhE,EAAAzgL,EAAAygL,EAAAzgL,EAAA6lM,IAAA,EAAAhzH,GAAAt1F,EAAAkoN,GAIA,IAAA51O,EAAA,EAAqBA,EAAAi2O,EAAUj2O,KAC/Bq9C,EAAAknI,EAAAvkL,IAEAsgD,QACAqxI,EAAA/oL,IAAAotO,EAAAjzN,EAAAs6B,EAAAlN,GAIAykL,EAAAv3K,EAAAlN,EAAAkN,EAAAlN,EAAA6lM,EAAArvD,EAAAivD,IAMA,IAAA51O,EAAA,EAAqBA,EAAAi2O,EAAUj2O,IAC/B,CAAA2wN,EAAApsC,EAAAvkL,GAEA,IAFA,IAEAmyB,EAAAnyB,EAAA,EAA2BmyB,EAAA8jN,EAAU9jN,IAAA,CACrCy+L,EAAArsC,EAAApyJ,GACAw/J,EAAA/oL,IAAAotO,EAAAplB,EAAAzgL,EAAAwgL,EAAAxgL,GAGA,KAFAziB,EAAAikK,EAAA7wL,IAAAk1O,MAIArkD,EAAA1tI,IAAA+xL,EAAAhvO,KAAAstK,SAAA,GAAAttK,KAAAstK,SAAA,IACA5mJ,EAAA,GAGA,IAAAwoN,GAAAvlB,EAAAD,IAAAE,EAAAF,KAAAhjM,KACAijM,EAAArwK,OAAAs0K,EAAAjE,EAAAglB,GAAAhlB,EAAAglB,GAAAK,EAAAE,IACAtlB,EAAAtwK,OAAAs0K,EAAAhE,EAAA+kB,GAAA/kB,EAAA+kB,GAAAK,GAAAE,IAIA,IAAAlqO,KAEA,IAAAhM,EAAA,EAAqBA,EAAAi2O,EAAUj2O,IAAA,CAC/B,IAAAq9C,KAAAknI,EAAAvkL,IAEAsgD,QACAqxI,EAAA/oL,IAAAoD,EAAAqxC,EAAAlN,EAAAkN,EAAAs4L,IACA/gB,EAAAv3K,EAAAlN,EAAAkN,EAAAlN,EAAAnkC,EAAA4pO,GACAjkD,EAAAjpJ,KAAA2U,EAAAs4L,GAAAt4L,EAAAlN,IAIAylM,GAAA,KACArvK,KAAAg+G,EAAAJ,EAAAyxD,EAAA,2CCpJAxzO,EAAAiuE,YAAA,EACAjuE,EAAAk5D,KAMA,aALAl5D,EAAAkK,OAOA,SAAAlC,EAAApB,GACA,OAAAlH,EAAA6I,KAAAP,EAAApB,IAPA5G,EAAAg9D,SAiBA,SAAAv0D,GAEA,IADA,IAAAwD,KACArO,EAAA,EAAiBA,EAAA6K,EAAA3K,OAAgBF,IACjC6K,EAAA7K,IACA2I,EAAA0F,EAAAxD,EAAA7K,IAGA,OAAAqO,GAvBAjM,EAAA+zO,cA4CA,SAAA/rO,EAAA9K,EAAA82O,GAOA,IANA,IAAAC,EAAAjsO,EAIA8gE,GAFA5rE,GADAA,IAAAkI,QAAA,qBACAA,QAAA,WAEA1H,MAAA,KACAE,EAAA,EACAc,EAAAoqE,EAAAhrE,OAA+BF,EAAAc,EAAA,IAC/Bu1O,GAAAD,KAD4Cp2O,EAAA,CAE5C,IAAAgJ,EAAAkiE,EAAAlrE,GACA,KAAAgJ,KAAAqtO,GAEK,CACL,GAAAD,EACA,UAAA93K,MAAA,mDAEA,MALA+3K,IAAArtO,GAQA,OACAonE,EAAAimK,EACA3uN,EAAAwjD,EAAAlrE,GACAgM,EAAAqqO,IAAAnrK,EAAAlrE,IAAA,OAjEA,IAAA8B,EAAA+G,OAAA1J,UAAA2C,eAQA,SAAA6G,EAAAwtC,EAAAmgM,GACA,QAAAttO,KAAAstO,EACAngM,EAAAntC,GAAAstO,EAAAttO,GAEA,OAAAmtC,EAaA/zC,EAAAmgL,eAAA,SAAAjyG,EAAAvwE,GAKA,IAHA,IAAAw2O,GADAx2O,KAAA,IACAD,MAAA,KACA0jC,EAAA8sC,EACAtgE,EAAA,KACAhQ,EAAA,EAAAmyB,EAAAokN,EAAAr2O,OAAmCF,EAAAmyB,EAAOnyB,IAAA,CAC1C,IAAAV,EAAAi3O,EAAAv2O,GACA,IAAAwjC,EAAA,MAEA,GAAAxjC,IAAAmyB,EAAA,GACAniB,EAAAwzB,EAAAlkC,GACA,MAEAkkC,IAAAlkC,GAEA,OAAA0Q,GA6BA5N,EAAAkjN,WAAA,WACA,OAAAt+M,KAAAkwC,MAAA,IAAAlwC,KAAAstK,WAGAlyK,EAAAo0O,YAAA,SAAAhiO,EAAAC,GAEA,GAAAD,IAAAC,EAAA,SACA,KAAAD,aAAA1J,OAAA,SACA,KAAA2J,aAAA3J,OAAA,SACA,GAAA0J,EAAAtU,SAAAuU,EAAAvU,OAAA,SACA,QAAAF,EAAA,EAAiBA,IAAAwU,EAAAtU,SAAgBF,EACjC,GAAAwU,EAAAxU,KAAAyU,EAAAzU,GAAA,SAEA,UAGAoC,EAAA0gL,mBAAA,WACA,IAAAt8K,EAAAzC,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACA,OAAAqM,OAAA5J,GAAAgB,QAAA,sBAAsC,+BC9FtC,IAAA+uB,EAAa/3B,EAAQ,QA4OrB,SAAAi4O,EAAAt+K,GACA,IAAAqvH,EAAArvH,EAAAqvH,SACA,OAAAA,EAAAtnL,QAAAi4D,EAAA6wH,SAAAxB,IAAAtnL,OAAA,GAAAi4D,EAAAu+K,SAAAC,OAWA,SAAAC,EAAAz+K,GACA,IAAAqvH,EAAArvH,EAAAqvH,SACA,OAAAA,EAAAtnL,QAAAi4D,EAAA6wH,SAAAxB,EAAA,GAAArvH,EAAAu+K,SAAAC,OAYA,SAAAE,EAAAC,EAAA3+K,EAAA4+K,GACA,OAAAD,EAAAJ,SAAAK,SAAAvrM,aAAA2sB,EAAA3sB,WAAAsrM,EAAAJ,SAAAK,WAUA,SAAAC,EAAAC,EAAAC,EAAAzqM,GACA,IAAAy7L,EAAAz7L,GAAAyqM,EAAAR,SAAA12O,EAAAi3O,EAAAP,SAAA12O,GACAk3O,EAAAR,SAAAxO,UACAgP,EAAAR,SAAAjqM,SACAyqM,EAAAR,SAAAr7L,UAAA5O,EACAyqM,EAAAR,SAAAS,QAAA1qM,EACAwqM,EAAAP,SAAAxO,UAGA,SAAAkP,EAAArxD,EAAAE,GACA,OAAAF,EAAAv6I,aAAAy6I,EAAAz6I,WAAA,IAGAppC,EAAAqb,KAhQA,SAAAq8B,GACAA,EAAA48L,UACAW,gBAAA,KACAN,SAAAj9L,EACAq9L,OAAA,EACA97L,SAAA,EACA6sL,OAAA,EACAz7L,MAAA,EACAzsC,EAAA,EACA22O,OAAA,MAMA,IAJA,IACAx+K,EACAqvH,EAFAjD,GAAAzqI,GAIAqe,EAAAosH,EAAAxuH,OAIA,GAFAyxH,EAAArvH,EAAAqvH,SAEArvH,EAAA6wH,UAAAxB,EAAAtnL,OAGA,IAFA,IAEAF,EAFAwnL,EAAAtnL,OAEA,EAAyBF,GAAA,EAAQA,IAAA,CACjC,IAAAurC,EAAAi8I,EAAAxnL,GACAurC,EAAAmrM,UACAW,gBAAA,KACAN,SAAAxrM,EACA4rM,OAAA,EACA97L,SAAA,EACA6sL,OAAA,EACAz7L,MAAA,EACAzsC,IACA22O,OAAA,MAEApyD,EAAA/jL,KAAA+qC,KA+NAnpC,EAAAk1O,UAhNA,SAAAn/K,EAAAo/K,GACA,IAAA/vD,EAAArvH,EAAA6wH,SAAA7wH,EAAAqvH,YACAgwD,EAAAr/K,EAAA3sB,WAAAg8I,SACAiwD,EAAAt/K,EAAAu+K,SAAA12O,EAAAw3O,EAAAr/K,EAAAu+K,SAAA12O,EAAA,QAEA,GAAAwnL,EAAAtnL,OAAA,EAqEA,SAAAi4D,GAMA,IALA,IAAAqvH,EAAArvH,EAAAqvH,SACAnqI,EAAAmqI,EAAAtnL,OACAusC,EAAA,EACAy7L,EAAA,IAEA7qL,GAAA,IACA,IAAA9R,EAAAi8I,EAAAnqI,GACA9R,EAAAmrM,SAAAS,QAAA1qM,EACAlB,EAAAmrM,SAAAr7L,UAAA5O,EACAy7L,GAAA38L,EAAAmrM,SAAAxO,OACAz7L,GAAAlB,EAAAmrM,SAAAjqM,MAAAy7L,GA/EAwP,CAAAv/K,GACA,IAAAw/K,GAAAnwD,EAAA,GAAAkvD,SAAAS,OAAA3vD,IAAAtnL,OAAA,GAAAw2O,SAAAS,QAAA,EAEAM,GACAt/K,EAAAu+K,SAAAS,OAAAM,EAAAf,SAAAS,OAAAI,EAAAp/K,EAAAs/K,GACAt/K,EAAAu+K,SAAAr7L,SAAA8c,EAAAu+K,SAAAS,OAAAQ,GAEAx/K,EAAAu+K,SAAAS,OAAAQ,OAEGF,IACHt/K,EAAAu+K,SAAAS,OAAAM,EAAAf,SAAAS,OAAAI,EAAAp/K,EAAAs/K,IAGAt/K,EAAA3sB,WAAAkrM,SAAAW,gBAqFA,SAAAO,EAAAH,EAAAV,EAAAQ,GACA,GAAAE,EAAA,CAUA,IATA,IAAAI,EAAAD,EACAE,EAAAF,EACAG,EAAAD,EAAAtsM,WAAAg8I,SAAA,GACAsvD,EAAAW,EACAO,EAAAH,EAAAnB,SAAAr7L,SACA48L,EAAAH,EAAApB,SAAAr7L,SACA68L,EAAAH,EAAArB,SAAAr7L,SACA88L,EAAArB,EAAAJ,SAAAr7L,SAEAy7L,EAAAL,EAAAK,GAAAgB,EAAAlB,EAAAkB,GAAAhB,GAAAgB,GAAA,CACAD,EAAApB,EAAAoB,GACAE,EAAAnB,EAAAmB,GACAF,EAAAnB,SAAAK,SAAAa,EACA,IAAAnrM,EAAAqqM,EAAAJ,SAAAS,OAAAgB,EAAAL,EAAApB,SAAAS,OAAAc,EAAAV,EAAAT,EAAAgB,GAEArrM,EAAA,IACAuqM,EAAAH,EAAAC,EAAAc,EAAAb,GAAAa,EAAAnrM,GACAwrM,GAAAxrM,EACAurM,GAAAvrM,GAGA0rM,GAAArB,EAAAJ,SAAAr7L,SACA48L,GAAAH,EAAApB,SAAAr7L,SACA28L,GAAAH,EAAAnB,SAAAr7L,SACA68L,GAAAH,EAAArB,SAAAr7L,SAGAy7L,IAAAL,EAAAoB,KACAA,EAAAnB,SAAAC,OAAAG,EACAe,EAAAnB,SAAAr7L,UAAA88L,EAAAH,GAGAF,IAAAlB,EAAAmB,KACAA,EAAArB,SAAAC,OAAAmB,EACAC,EAAArB,SAAAr7L,UAAA48L,EAAAC,EACAnB,EAAAa,GAIA,OAAAb,EA9HAqB,CAAAjgL,EAAAs/K,EAAAt/K,EAAA3sB,WAAAkrM,SAAAW,iBAAAG,EAAA,GAAAD,IA8LAn1O,EAAAi2O,WAtLA,SAAAlgL,GACA,IAAAsxI,EAAAtxI,EAAAu+K,SAAAS,OAAAh/K,EAAA3sB,WAAAkrM,SAAAr7L,SACA8c,EAAAwwH,WACArlL,EAAAmmM,IACG,GACHtxI,EAAAu+K,SAAAr7L,UAAA8c,EAAA3sB,WAAAkrM,SAAAr7L,UAkLAj5C,EAAAm1O,WA/KA,SAAAhxK,GACA,OAAAxiE,UAAA7D,OAAAqmE,EAAA6wK,GA+KAh1O,EAAAk/L,iBArKA,SAAAh+L,EAAAE,GACA,IAAA80O,KAIA,OAHAh1O,GAAA0D,KAAAgwB,GAAA,EACAshN,EAAAh1O,EAAAE,EAAAwD,KAAA0jC,IAAApnC,GACAg1O,EAAA90O,IAAAwD,KAAA2jC,IAAArnC,GACAg1O,GAiKAl2O,EAAA2mC,YAvJA,SAAAtO,EAAA53B,GACA,OAAA0zB,EAAAwrC,cAAAtnC,EAAAouC,sBACA5wD,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,kDC9IA5uD,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAksO,EAAY93O,EAAQ,QAEpB+5O,GAEAnuO,EAFAksO,IAEsClsO,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,QAAA,SAAAnN,GACA,GAAAC,MAAAC,QAAAF,GAAA,CACA,QAAA7K,EAAA,EAAAw4O,EAAA1tO,MAAAD,EAAA3K,QAA6CF,EAAA6K,EAAA3K,OAAgBF,IAC7Dw4O,EAAAx4O,GAAA6K,EAAA7K,GAGA,OAAAw4O,EAEA,SAAAD,EAAAvgO,SAAAnN,0BClBA,IAAAiuB,EAAat6B,EAAQ,QAErBi6O,EAAgBj6O,EAAQ,QAExBklL,EAAWllL,EAAQ,QAEnBm4C,EAAiBn4C,EAAQ,QAEzBib,EAAcjb,EAAQ,QAEtBi5L,EAAmBj5L,EAAQ,QAuB3Bk6O,EAAA,SAAAj+M,EAAAH,EAAAq+M,EAAA/sO,GACA,IAAAgtO,EAAAnhD,EAAAW,cAAA39J,EAAA7uB,EAAA,IACAitO,EAAAphD,EAAAW,cAAA39J,EAAA7uB,EAAA,IACAq7D,EAAAnuC,EAAAmuC,SAEA6xK,EAAAF,EAAAv3M,MACA03M,EAAAF,EAAAx3M,MACAy3M,EAAA,GAAA7xK,EAAA6xK,EAAA,IAAApgM,KACAogM,EAAA,GAAA7xK,EAAA6xK,EAAA,IAAApgM,KACAqgM,EAAA,GAAA9xK,EAAA8xK,EAAA,GAAArgM,KACAqgM,EAAA,GAAA9xK,EAAA8xK,EAAA,GAAArgM,KAEA,IAAA1oC,EAAA8oB,EAAAo2K,aAAkC0pC,EAAAC,IAMlC,OALA7oO,EAAAqxB,OAAAu3M,EAAAv3M,MAAAw3M,EAAAx3M,OACArxB,EAAAggC,GAAA4oM,EAAAt1O,EACA0M,EAAAigC,GAAA2oM,EAAAp1O,EACAwM,EAAA0/B,GAAAmpM,EAAAv1O,EACA0M,EAAA2/B,GAAAkpM,EAAAr1O,EACAwM,GAGA,SAAAqoL,EAAA7rL,GACA,OAAA9C,MAAA8C,KAAA+wC,SAAA/wC,GAIA,SAAA8rL,EAAAjhK,EAAAkhK,EAAAC,EAAAl+J,GACA,IAAAm+J,EAAA,EAAAphK,EACA,OAAAghK,EAAAE,EAAAE,KAAAJ,EAAAG,EAAAC,IAGA,SAAAugD,EAAA1+M,EAAA1uB,GACA,IAAA2sL,EAAA3sL,EAAAy1B,MAAA,GACAm3J,EAAA5sL,EAAAy1B,MAAA,GAEA,wBAAA/G,EAAA73B,OAOA81L,IAAAC,IAAAF,EAAA,EAAAC,EAAAC,KAAAF,EAAA,EAAAC,EAAAC,MAKAf,EAAAmB,WAAAt+J,GACA+G,MAAAk3J,EACAj1L,EAAAsI,EAAAokC,GACAxsC,EAAAoI,EAAAqkC,MACGwnJ,EAAAmB,WAAAt+J,GACH+G,MAAAm3J,EACAl1L,EAAAsI,EAAA8jC,GACAlsC,EAAAoI,EAAA+jC,MAKA,SAAAspM,EAAAlpO,EAAAwvB,EAAA5vB,EAAA8qB,EAAA53B,GACA,IAEAymC,EAFAhP,EAAAG,EAAAnN,iBACA62C,EAAAp0D,EAAAq0D,aAAA7kC,GAEAw5J,EAAApiJ,EAAAhL,aAAAw4B,EAAAlhE,IAAA0M,EAAA,IAAA9M,EAAAkuD,YACAioI,EAAAriJ,EAAAhL,aAAAw4B,EAAAlhE,IAAA0M,EAAA,IAAA9M,EAAAmuD,aAEA,GAAAtnD,MAAAqvL,IAAArvL,MAAAsvL,GAEG,CAEH,GAAAv+J,EAAAw+J,kBAEA3vJ,EAAA7O,EAAAw+J,kBAAAlpL,EAAAmpL,UAAAvpL,EAAA4vB,QACK,CACL,IAEA5C,GAFAr5B,EAAAyM,EAAA9M,IAAA0M,EAAA,GAAA4vB,GACA/7B,EAAAuM,EAAA9M,IAAA0M,EAAA,GAAA4vB,IAEAjF,EAAAmhL,WAAAnhL,EAAAmhL,UAAA9+K,KACA2M,EAAAhP,EAAA4O,YAAAvM,GAAA,GAGA,mBAAArC,EAAA73B,KAAA,CACA,IAAAqS,EAAAwlB,EAAAzO,QAAA,KACAhX,EAAAylB,EAAAzO,QAAA,KACAvoB,EAAAyM,EAAA9M,IAAA0M,EAAA,GAAA4vB,GACA/7B,EAAAuM,EAAA9M,IAAA0M,EAAA,GAAA4vB,GAEA84J,EAAA/0L,GACAgmC,EAAA,GAAAx0B,EAAAghB,cAAAhhB,EAAAimB,YAAA,OAAAprB,EAAA,SACO0oL,EAAA70L,KACP8lC,EAAA,GAAAz0B,EAAAihB,cAAAjhB,EAAAkmB,YAAA,OAAAprB,EAAA,UAKAjG,MAAAqvL,KACAzvJ,EAAA,GAAAyvJ,GAGArvL,MAAAsvL,KACA1vJ,EAAA,GAAA0vJ,QAjCA1vJ,GAAAyvJ,EAAAC,GAqCA,OAAA1vJ,EAGA,IAAA4vM,IAAA,gDAhIiB16O,EAAQ,QAiIzBmK,QACAlG,KAAA,WAkBAgmC,gBAAA,SAAA0wM,EAAAv2O,EAAAC,GACAD,EAAAqxD,WAAA,SAAAx5B,GACA,IAAAk+M,EAAAl+M,EAAA0+M,cAEA,GAAAR,EAAA,CACA,IAAAS,EAAAT,EAAAxtN,UACAiuN,EAAA17M,KAAA,SAAA6B,GACA,IAAAlD,EAAAvD,EAAAlpB,IAAAspO,EAAA,SAAA5hN,GACA,OAAA2hN,EAAAG,EAAA75M,EAAAjI,EAAAmD,EAAA53B,KAGAu2O,EAAAxwD,cAAArpJ,EAAAlD,GACA+8M,EAAAr2M,iBAAAxD,GACAiB,SAAA,SAAAnE,OAGKp9B,OAELuxD,aAAA,SAAA/1B,EAAAk+M,EAAA/1O,EAAAC,GACA,IAAAy3B,EAAAG,EAAAnN,iBACAg2C,EAAA7oC,EAAA95B,GACA6mB,EAAAiT,EAAAtP,UACAkuN,EAAAp6O,KAAAs6L,eACA+/C,EAAAD,EAAAp2O,IAAAqgE,IAAA+1K,EAAAp1L,IAAAqf,GACArlC,MAAA,IAAAxkB,EAAAskB,QAEA9+B,KAAAg/B,MAAAC,IAAAo7M,EAAAr7M,OACAq7M,EAAAn/C,QAAA,EACA,IAAAi/C,EAoEA,SAAA9+M,EAAAG,EAAAk+M,GACA,IAAAl/C,EACA2/C,EAGA9+M,GACAm/J,EAAA3gK,EAAAlpB,IAAA0qB,KAAA0G,WAAA,SAAAH,GACA,IAAA9wB,EAAA0qB,EAAAtP,UACA4uD,EAAAhqE,EAAAmxB,iBAAAnxB,EAAA0tB,aAAAoD,QAEA,OAAA/H,EAAAmJ,UACApgC,KAAAg/B,GACOk5C,KAEPq/J,EAAA,IAAA11D,EAAA5qJ,EAAAlpB,KAXA,qBAWA,SAAA0nB,EAAAiI,GACA,OACA19B,KAAAy1B,EACA70B,KAAAg3L,EAAAl6J,EAAA,GAAA98B,QAEKk2O,IAMLS,EAAA,IAAA11D,EAJA+V,IACA53L,KAAA,QACAY,KAAA,UAEAk2O,GAGA,IAAAj/C,EAAA5gK,EAAAlpB,IAAA+oO,EAAA11O,IAAA,QAAA61B,EAAA0Q,MAAAkvM,EAAAj+M,EAAAH,EAAAq+M,IAEAr+M,IACAo/J,EAAA5gK,EAAAzS,OAAAqzK,EAAA5gK,EAAA0Q,MAAAwvM,EAAA1+M,KAGA,IAAAq/J,EAAAr/J,EAAA,SAAA1uB,EAAAm1B,EAAA1D,EAAAhG,GACA,OAAAzrB,EAAAy1B,MAAAr6B,KAAAkwC,MAAA7f,EAAA,IAAAA,EAAA,IACG,SAAAzrB,GACH,OAAAA,EAAApF,OAIA,OAFA4yO,EAAAltJ,SAAAwtG,EAAA,KAAAC,GACAy/C,EAAAnqK,eAAA,EACAmqK,EA7GAx/C,CAAAt/J,EAAAG,EAAAk+M,GAEAA,EAAA38D,QAAAo9D,GAEAA,EAAA17M,KAAA,SAAA6B,GAEA65M,EAAAxwD,cAAArpJ,EAAAzG,EAAAlpB,IAAAspO,EAAA,SAAA5hN,GACA,OAAA2hN,EAAAG,EAAA75M,EAAAjI,EAAAmD,EAAA53B,MAGAu2O,EAAAl4K,cAAA3hC,GACAn6B,MAAAoiB,EAAAoZ,UAAA,aAGAw4M,EAAA71M,KAAA+1M,EAAAC,QAAAr7M,IAAA,SAAAqB,GACA,IAAAR,EAAA,IAAAtlB,EAAA4f,SACArS,OACAqV,OAAA+8M,EAAA36M,cAAAc,MAGA65M,EAAAt5M,iBAAAP,EAAAR,GACAu6M,EAAAr7M,MAAAC,IAAAa,KACKyc,OAAA,SAAA0qB,EAAAC,GACL,IAAApnC,EAAAu6M,EAAAC,OAAAx2M,iBAAAojC,GAEA1sD,EAAAoqB,YAAA9E,GACA/X,OACAqV,OAAA+8M,EAAA36M,cAAAynC,KAEOyyK,EAAAzyK,GACPozK,EAAAr7M,MAAAC,IAAAa,GACAq6M,EAAAt5M,iBAAAomC,EAAAnnC,KACKr7B,OAAA,SAAA67B,GACL,IAAAR,EAAAu6M,EAAAC,OAAAx2M,iBAAAxD,GAEA+5M,EAAAr7M,MAAAv6B,OAAAq7B,KACKqnC,UACLgzK,EAAAx5M,kBAAA,SAAAb,EAAAQ,GACA,IAAA4kC,EAAAi1K,EAAAh1K,aAAA7kC,GACAylC,EAAAb,EAAA7lC,SAAA,SACA2mC,EAAAd,EAAA7lC,SAAA,kBACAl5B,EAAAg0O,EAAAjmL,cAAA5zB,EAAA,SACAR,EAAAiD,SAAAlJ,EAAAmJ,SAAAkiC,EAAA7lC,SAAA,aAAAimC,gBACA5tD,KAAA8hO,EAAAt6C,YAAA/4L,EAAA,IACA+8B,OAAA/8B,KAEA25B,EAAAylC,WAAAL,EAAA7lC,SAAA,sBAAAimC,eACA9qD,EAAA2rD,cAAArmC,EAAAvnB,MAAAunB,EAAAylC,WAAAQ,EAAAC,GACAI,aAAAszK,EACArzK,eAAA/lC,EACAgmC,YAAA6zK,EAAAh2K,QAAA7jC,IAAA,GACAo8J,YAAA,EACAn2H,UAAApgE,IAEAqU,EAAAmrD,cAAA7lC,MACAA,EAAAw6B,UAAAo/K,IAEAW,EAAAC,OAAAH,EACAE,EAAAr7M,MAAAmF,OAAAu1M,EAAA11O,IAAA,WAAAw3B,EAAAx3B,IAAA,mCCtPA,IAAAgoL,EAAuBzsL,EAAQ,QAE/B4sD,EAAkB5sD,EAAQ,QAE1Bs6B,EAAat6B,EAAQ,QA8HrB0D,EA1GAkpD,EAAAziD,QACAlG,KAAA,eACAolK,eAAA,SAAA3rJ,EAAAtZ,GACA,IAAA42O,EAAAt9N,EAAAnM,SAOA,OALA+oB,EAAA/tB,QAAAyuO,KACAA,OAGAt9N,EAAAnM,KAAAypO,EACAvuD,EAAAhsL,MAAA,WAEA00B,eACAC,OAAA,EACAC,EAAA,EAEA9Q,QAAA,aACAs6J,iBAAA,EACAz7J,OAAA,MACAyZ,WAAA,IACAC,UAAA,GACAC,WAAA,EAEAt0B,IAAA,EAEAC,IAAA,IAEA+f,YAAA,GAEA5iB,UAEAC,MAAA,EACAub,WAEAza,QAAA,4CACA6S,MAAA,KAIAzT,WAEAF,MAAA,EAEApE,OAAA,GAEA2f,WACAza,MAAA,OACA6S,MAAA,EACAxV,KAAA,UAIA8B,UAEAD,MAAA,EAEA2iB,YAAA,EAEA/mB,OAAA,EAEA2f,WACAza,MAAA,OACA6S,MAAA,EACAxV,KAAA,UAGA0N,WACA7L,MAAA,EACAgxC,SAAA,EAEAlwC,MAAA,QAEAixB,SACA/xB,MAAA,EACApE,OAAA,MACA+X,MAAA,GAEAxG,WACArM,MAAA,QAEA+T,OACA7U,MAAA,EAEAm1O,cAAA,UAEAr0O,MAAA,OACA0vB,SAAA,IAEAhC,QACAxuB,MAAA,EACAoV,gBAAA,gBACA6a,YAAA,EACAvC,YAAA,OACA/Z,MAAA,IACAC,OAAA,KAEAsc,SAAA,MAEAilN,cAAA,SAGAr0O,MAAA,OACA0vB,SAAA,OAKA3yB,EAAAC,QAAAF,qCCrHA,IAAAw3O,EAA2Bl7O,EAAQ,QAEnCm7O,EAAuBn7O,EAAQ,QAI/Bo7O,EAAA,GACAC,EAAA,GACAC,EAAA,IAsGA,SAAAC,EAAAvjL,GACA,IAAAwjL,EAAA,EAAAC,EAAA,EACAC,EAAA,EAAAC,EAAA,EAkCA,MA/BA,WAAA3jL,IAA+ByjL,EAAAzjL,EAAA1jC,QAC/B,eAAA0jC,IAA+ByjL,GAAAzjL,EAAA2lG,WAAA,KAC/B,gBAAA3lG,IAA+ByjL,GAAAzjL,EAAA4jL,YAAA,KAC/B,gBAAA5jL,IAA+BwjL,GAAAxjL,EAAA6jL,YAAA,KAG/B,SAAA7jL,KAAA9hC,OAAA8hC,EAAA8jL,kBACAN,EAAAC,EACAA,EAAA,GAGAC,EAAAF,EAAAJ,EACAO,EAAAF,EAAAL,EAEA,WAAApjL,IAA0B2jL,EAAA3jL,EAAA+jL,QAC1B,WAAA/jL,IAA0B0jL,EAAA1jL,EAAAgkL,SAE1BN,GAAAC,IAAA3jL,EAAAikL,YACA,GAAAjkL,EAAAikL,WACAP,GAAAL,EACAM,GAAAN,IAEAK,GAAAJ,EACAK,GAAAL,IAKAI,IAAAF,IAAkBA,EAAAE,EAAA,QAClBC,IAAAF,IAAkBA,EAAAE,EAAA,SAERO,MAAAV,EACVW,MAAAV,EACAW,OAAAV,EACAW,OAAAV,GASAJ,EAAAe,aAAA,WACA,OAAApB,EAAArpD,UACA,iBACAspD,EAAA,SACA,QACA,cAGAx3O,EAAAC,QAAA23O,wBCpLcv7O,EAAQ,QAEtBq6B,QAFA,IAIA/0B,EAAatF,EAAQ,QAErBk1L,EAAA5vL,EAAA4vL,UACA/oB,EAAA7mK,EAAA6mK,iBAIAowE,EAFmBv8O,EAAQ,QAE3Bu8O,0BAEAr8O,EAAYF,EAAQ,QAEpBw1D,EAAAt1D,EAAAs1D,cACAt2B,EAAAh/B,EAAAg/B,KACA9tB,EAAAlR,EAAAkR,IACA7E,EAAArM,EAAAqM,QACApM,EAAAD,EAAAC,SACAE,EAAAH,EAAAG,SACA6rK,EAAAhsK,EAAAgsK,aACA5rK,EAAAJ,EAAAI,YACA6J,EAAAjK,EAAAiK,OAGAmiK,GAFApsK,EAAAktD,OAEaptD,EAAQ,SAErBusK,EAAkBvsK,EAAQ,QAE1B0sK,EAAAH,EAAAG,uBACAD,EAAAF,EAAAE,yBACAE,EAAAJ,EAAAI,0BACA6vE,EAAAjwE,EAAAiwE,4BACAC,EAAAlwE,EAAAkwE,sBACAjwE,EAAAD,EAAAC,0BACAkwE,EAAAnwE,EAAAmwE,qBAoBAtnD,EAAAF,IA2NA,SAAAynD,EAAA1uE,GACA,GAAAA,EAAA,CAKA,IAAA4iC,EAAAr7I,IACA,OAAApkD,EAAA68J,EAAA,SAAA7gK,EAAAC,GAOA,UANAD,EAAAjD,KAAoB9J,EAAA+M,MACpB/J,KAAA+J,KAKA/J,KACA,OAAA+J,EAIAA,EAAA/J,MAAA,GAMA,MAAA+J,EAAAwvO,cACAxvO,EAAAwvO,YAAAxvO,EAAA/J,MAGA,IAAAk3N,EAAA1pB,EAAApsM,IAAA2I,EAAA/J,MAUA,OARAk3N,EAKAntN,EAAA/J,MAAA,IAAAk3N,EAAAv3N,QAJA6tM,EAAAprJ,IAAAr4C,EAAA/J,MACAL,MAAA,IAMAoK,KAIA,SAAAyvO,EAAA90K,EAAAslG,EAAA97J,EAAAurO,GAGA,GAFA,MAAAA,MAAA5iM,KAEAmzH,IAAAqvE,EACA,QAAAl7O,EAAA,EAAmBA,EAAA+P,EAAA7P,QAAAF,EAAAs7O,EAAgCt7O,IACnDumE,EAAAx2D,EAAA/P,GAAA+P,EAAA/P,GAAA,QAAAA,OAGA,KAAA8rO,EAAA/7N,EAAA,OAEA,IAAA/P,EAAA,EAAmBA,EAAA8rO,EAAA5rO,QAAAF,EAAAs7O,EAAkCt7O,IACrDumE,EAAAulK,EAAA9rO,OA4IA,SAAAu7O,EAAAxrO,EAAA07J,EAAAI,EAAAY,EAAA11D,EAAA1/E,GACA,IAAArnB,EAUA+wB,EANA,GAAA2pI,EAAA36J,GACA,SAYA,GALA08J,IACA1rI,EAAA0rI,EAAAp1I,GACA0J,EAAAliC,EAAAkiC,KAAAl/B,KAAAk/B,GAGA0qI,IAAAR,EACA,GAAAY,IAAAqvE,GAGA,IAFA,IAAA1pJ,EAAAzhF,EAAAsnB,GAEAr3B,EAAA,EAAqBA,GAAAwxF,OAAAtxF,QAAAF,EAnBrB,EAmB+DA,IAC/D,UAAAgQ,EAAAwrO,EAAAhqJ,EAAAulB,EAAA/2G,KACA,OAAAgQ,OAIA,IAAAhQ,EAAA,EAAqBA,EAAA+P,EAAA7P,QAAAF,EAzBrB,EAyBqDA,IAAA,CACrD,IAAAkQ,EAAAH,EAAAgnG,EAAA/2G,GAEA,GAAAkQ,GAAA,OAAAF,EAAAwrO,EAAAtrO,EAAAmnB,KACA,OAAArnB,OAIG,GAAAy7J,IAAAN,EAAA,CACH,IAAApqI,EACA,OAGA,IAAA/gC,EAAA,EAAmBA,EAAA+P,EAAA7P,QAAAF,EAtCnB,EAsCmDA,IAAA,CAGnD,IAFA4L,EAAAmE,EAAA/P,KAEA,OAAAgQ,EAAAwrO,EAAA5vO,EAAAm1B,KACA,OAAA/wB,QAGG,GAAAy7J,IAAAuvE,EAAA,CACH,IAAAj6M,EACA,OAKA,KAFAywD,EAAAzhF,EAAAgxB,KAEA2pI,EAAAl5E,GACA,SAGA,IAAAxxF,EAAA,EAAmBA,EAAAwxF,EAAAtxF,QAAAF,EAxDnB,EAwDqDA,IACrD,UAAAgQ,EAAAwrO,EAAAhqJ,EAAAxxF,KACA,OAAAgQ,OAGG,GAAAy7J,IAAAP,EACH,IAAAlrK,EAAA,EAAmBA,EAAA+P,EAAA7P,QAAAF,EA9DnB,EA8DmDA,IAAA,CACnD,IAAA4L,EAAAmE,EAAA/P,GACAwM,EAAAm+J,EAAA/+J,GAEA,IAAAb,EAAAyB,GACA,SAGA,UAAAwD,EAAAwrO,EAAAhvO,EAAA6qB,KACA,OAAArnB,EAKA,SAAAwrO,EAAAhvO,GAGA,aAAAA,IAAA+wC,SAAA/wC,IAAA,KAAAA,QAEK7N,EAAA6N,IAAA,MAAAA,SAAA,GAKL,SAGApK,EAAAoyN,mBAlfA,SAAAinB,GACA,IAAA1rO,EAAA0rO,EAAAv/N,OAAAxa,OACA+pK,EAAAwvE,EAEA,GAAAvwE,EAAA36J,GACA07J,EAAAT,OACG,GAAAjgK,EAAAgF,GAEH,QAAA/P,EAAA,EAAAc,EAAAiP,EAAA7P,OAAsCF,EAAAc,EAASd,IAAA,CAC/C,IAAA4L,EAAAmE,EAAA/P,GAEA,SAAA4L,EAAA,CAEO,GAAAb,EAAAa,GAAA,CACP6/J,EAAAR,EACA,MACO,GAAApsK,EAAA+M,GAAA,CACP6/J,EAAAN,EACA,aAGG,GAAAtsK,EAAAkR,IACH,QAAA/G,KAAA+G,EACA,GAAAA,EAAAjO,eAAAkH,IAAAlK,EAAAiR,EAAA/G,IAAA,CACAyiK,EAAAuvE,EACA,YAGG,SAAAjrO,EACH,UAAAuuD,MAAA,gBAGAs1H,EAAA6nD,GAAAhwE,gBAmdArpK,EAAA0lK,UAxbA,SAAArtI,GACA,OAAAm5J,EAAAn5J,GAAA/4B,QAwbAU,EAAAs5O,qBAhbA,SAAA94O,GAEAgxL,EAAAhxL,GAAA+4O,WAAA3nL,KA+aA5xD,EAAAw5O,cA3ZA,SAAAnhN,GACA,IAAAohN,EAAAphN,EAAAve,OACAnM,EAAA8rO,EAAA9rO,KACA07J,EAAAf,EAAA36J,GAAAi7J,EAAAE,EACA4wE,GAAA,EACAjwE,EAAAgwE,EAAAhwE,eACA6oD,EAAAmnB,EAAAnnB,aACAjoD,EAAAovE,EAAA76M,WACAy6M,EAuRA,SAAAhhN,GACA,IAAAve,EAAAue,EAAAve,OAQA,IAFAA,EAAAnM,KAGA,OAAA0qB,EAAA73B,QAAAG,aAAA,UAAAmZ,EAAA6/N,cAAA,GAjSAC,CAAAvhN,GAEA,GAAAghN,EAAA,CACA,IAAAQ,EAAAR,EAAAv/N,OACAnM,EAAAksO,EAAAv6O,OACA+pK,EAAAmoB,EAAA6nD,GAAAhwE,aACAqwE,GAAA,EAEAjwE,KAAAowE,EAAApwE,eACA,MAAA6oD,MAAAunB,EAAAvnB,cACAjoD,KAAAwvE,EAAAj7M,WAGA,IAAAk7M,EAqBA,SAAAnsO,EAAA07J,EAAAI,EAAA6oD,EAAAjoD,GACA,IAAA18J,EACA,OACA08J,iBAAA0uE,EAAA1uE,IAIA,IAAA0vE,EACAplI,EACAqlI,EAiDAC,EA/CA,GAAA5wE,IAAAR,EAKA,SAAAypD,GAAA,MAAAA,EACA2mB,EAAA,SAAA7uO,GAEA,MAAAA,GAAA,MAAAA,IACA7N,EAAA6N,GACA,MAAAuqG,MAAA,GAEAA,EAAA,IAIO80D,EAAA97J,EAAA,IAEPgnG,EAAA29G,EAAA,IAGAjoD,GAAA,IAAA11D,IACA01D,KACA4uE,EAAA,SAAA7uO,EAAAX,GACA4gK,EAAA5gK,GAAA,MAAAW,IAAA,IACOq/J,EAAA97J,IAGPosO,EAAA1vE,IAAAvsK,OAAA2rK,IAAAqvE,EAAAnrO,EAAA7P,OAAA6P,EAAA,GAAAA,EAAA,GAAA7P,OAAA,UACG,GAAAurK,IAAAN,EACHsB,IACAA,EAiGA,SAAA18J,GAIA,IAHA,IACA3F,EADAkyO,EAAA,EAGAA,EAAAvsO,EAAA7P,UAAAkK,EAAA2F,EAAAusO,QAGA,GAAAlyO,EAAA,CACA,IAAA42B,KAIA,OAHAtD,EAAAtzB,EAAA,SAAA5D,EAAAwC,GACAg4B,EAAAxgC,KAAAwI,KAEAg4B,GA7GAu7M,CAAAxsO,GACAqsO,GAAA,QAEG,GAAA3wE,IAAAuvE,EACHvuE,IACAA,KACA2vE,GAAA,EACA1+M,EAAA3tB,EAAA,SAAAysO,EAAAxzO,GACAyjK,EAAAjsK,KAAAwI,WAGG,GAAAyiK,IAAAP,EAAA,CACH,IAAA4gE,EAAAnhE,EAAA56J,EAAA,IACAosO,EAAApxO,EAAA+gO,MAAA5rO,QAAA,EAaA,OARAk8O,GACA1+M,EAAA+uI,EAAA,SAAAn1I,EAAAiI,GACA,UAAA1gC,EAAAy4B,KAAAz1B,KAAAy1B,KACA+kN,EAAA98M,MAMAw3E,aACA01D,iBAAA0uE,EAAA1uE,GACA0vE,wBACAE,yBA7FAI,CAAA1sO,EAAA07J,EAAAI,EAAA6oD,EAAAjoD,GAEA1E,EAAA8zE,EAAAa,QAEA30E,GAAA0zE,IACA1zE,EA8KA,SAAAttI,EAAAghN,EAAA1rO,EAAA07J,EAAAI,EAAAqwE,GACA,IAAAS,EAAA5B,EAAAtgN,GACAiiN,KAGAE,KACAC,KACA/tK,EAAAr0C,EAAAs6B,QAKA+nL,EAAA9oL,GAAA,uBACA+oL,EAAA/oL,GAAA,gFAIA,GAAA2oL,GAAA,MAAAI,EAAA95O,IAAA6rE,GAAA,CACA,IAAAlsE,EAAA63B,EAAA73B,QACA+4O,EAAA/nD,EAAAhxL,GAAA+4O,WACA3yO,EAAAyyO,EAAAtnL,IAAA,IAAA03G,EACAmxE,EAAArB,EAAA14O,IAAA+F,IAAA2yO,EAAA13L,IAAAj7C,GACAi0O,eAAA,EACAC,YAAA,IAIAx/M,EAAAi/M,EAAAQ,aAAA,SAAAt8M,GAEA,SAAA87M,EAAAS,sBAAA,CACA,IAAAC,EAAAL,EAAAE,cACAR,EAAA77M,GAAAw8M,EAOAR,EAAAr8O,KAAA68O,QAGA,GAAAV,EAAAW,gBAAAr6O,IAAA49B,GACA67M,EAAA77M,GAAA,EACA+7M,EAAAp8O,KAAA,OAEA,CACA,IAAA68O,EAAAL,EAAAC,iBACAP,EAAA77M,GAAAw8M,EAGAR,EAAAr8O,KAAA68O,WAMA,SAAAP,EAAA75O,IAAA6rE,GAAA,CAIA,IAFA,IAAAyuK,EAEAv9O,EAAA,EAAqBA,EAAA,SAAAu9O,EAAkCv9O,IACvDu7O,EAAAxrO,EAAA07J,EAAAI,EAAAqwE,EAAAzvE,iBAAAyvE,EAAAnlI,WAAA/2G,KACAu9O,EAAAv9O,GAIA,SAAAu9O,EAAA,CACAb,EAAAl2O,MAAA+2O,EACA,IAAAC,EAAAtB,EAAAG,uBAAAr1O,KAAAE,IAAAq2O,EAAA,KAGAV,EAAAr8O,KAAAg9O,GACAZ,EAAAp8O,KAAAg9O,IAQA,OAFAZ,EAAA18O,SAAAw8O,EAAAjzN,SAAAmzN,GACAC,EAAA38O,SAAAw8O,EAAArrO,WAAAwrO,GACAH,EA9PAe,CAAAhjN,EAAAghN,EAAA1rO,EAAA07J,EAAAI,EAAAqwE,IAGAtoD,EAAAn5J,GAAA/4B,OAAA,IAAAopK,GACA/6J,OACA+rO,cACAjwE,iBACAJ,eACAgB,iBAAAyvE,EAAAzvE,iBACA11D,WAAAmlI,EAAAnlI,WACAolI,sBAAAD,EAAAC,sBACAp0E,kBAuXA3lK,EAAAs7O,aArGA,SAAAh8O,EAAA21B,GACA,OAAAkkN,EAAA75O,EAAAqO,KAAArO,EAAA+pK,aAAA/pK,EAAAmqK,eAAAnqK,EAAA+qK,iBAAA/qK,EAAAq1G,WAAA1/E,uCChdA,IAAAsmN,EAAUn/O,EAAQ,OAARA,EAAsB,GAGhCA,EAAQ,OAARA,CAAwB4R,OAAA,kBAAAwtO,GACxB3+O,KAAA+0E,GAAA5jE,OAAAwtO,GACA3+O,KAAA2mG,GAAA,GAEC,WACD,IAEAt8D,EAFAk2B,EAAAvgE,KAAA+0E,GACAnoE,EAAA5M,KAAA2mG,GAEA,OAAA/5F,GAAA2zD,EAAAt/D,QAAiCsG,WAAAmG,EAAArM,MAAA,IACjCgpC,EAAAq0M,EAAAn+K,EAAA3zD,GACA5M,KAAA2mG,IAAAt8D,EAAAppC,QACUsG,MAAA8iC,EAAAhpC,MAAA,yCCfVuI,OAAAwB,eAAAm5C,EAAA,cAAAh9C,OAAA,aAAAi9C;;;;;;AAOA,IAAAo6L,EAAAh1O,OAAAi1O,WAIA,SAAAC,EAAA/xO,GACA,YAAAW,IAAAX,GAAA,OAAAA,EAGA,SAAAgyO,EAAAhyO,GACA,YAAAW,IAAAX,GAAA,OAAAA,EAGA,SAAAiyO,EAAAjyO,GACA,WAAAA,EAUA,SAAA0+N,EAAAlkO,GACA,MACA,iBAAAA,GACA,iBAAAA,GAEA,iBAAAA,GACA,kBAAAA,EASA,SAAA3H,EAAAuL,GACA,cAAAA,GAAA,iBAAAA,EAMA,IAAA8zO,EAAAr1O,OAAA1J,UAAA0H,SAUA,SAAAs3O,EAAA/zO,GACA,0BAAA8zO,EAAAvzO,KAAAP,GAGA,SAAAg0O,EAAApyO,GACA,0BAAAkyO,EAAAvzO,KAAAqB,GAMA,SAAAqyO,EAAA7xO,GACA,IAAA6wC,EAAA54B,WAAArU,OAAA5D,IACA,OAAA6wC,GAAA,GAAAr2C,KAAAkwC,MAAAmG,QAAAE,SAAA/wC,GAMA,SAAA3F,EAAA2F,GACA,aAAAA,EACA,GACA,iBAAAA,EACAL,KAAAE,UAAAG,EAAA,QACA4D,OAAA5D,GAOA,SAAA8xO,EAAA9xO,GACA,IAAA6wC,EAAA54B,WAAAjY,GACA,OAAA9C,MAAA2zC,GAAA7wC,EAAA6wC,EAOA,SAAAkhM,EACAjvM,EACAkvM,GAIA,IAFA,IAAA5uO,EAAA/G,OAAA8/B,OAAA,MACA7c,EAAAwjB,EAAAxvC,MAAA,KACAE,EAAA,EAAiBA,EAAA8rB,EAAA5rB,OAAiBF,IAClC4P,EAAAkc,EAAA9rB,KAAA,EAEA,OAAAw+O,EACA,SAAAhyO,GAAsB,OAAAoD,EAAApD,EAAA+K,gBACtB,SAAA/K,GAAsB,OAAAoD,EAAApD,IAMtB,IAAAiyO,EAAAF,EAAA,qBAKAG,EAAAH,EAAA,8BAKA,SAAA76O,EAAAmH,EAAAe,GACA,GAAAf,EAAA3K,OAAA,CACA,IAAA2L,EAAAhB,EAAA9L,QAAA6M,GACA,GAAAC,GAAA,EACA,OAAAhB,EAAAtK,OAAAsL,EAAA,IAQA,IAAA/J,EAAA+G,OAAA1J,UAAA2C,eACA,SAAAwK,EAAAlC,EAAApB,GACA,OAAAlH,EAAA6I,KAAAP,EAAApB,GAMA,SAAA21O,EAAAzzO,GACA,IAAA0zO,EAAA/1O,OAAA8/B,OAAA,MACA,gBAAA2G,GAEA,OADAsvM,EAAAtvM,KACAsvM,EAAAtvM,GAAApkC,EAAAokC,KAOA,IAAAuvM,EAAA,SACAC,EAAAH,EAAA,SAAArvM,GACA,OAAAA,EAAA9nC,QAAAq3O,EAAA,SAAAzhO,EAAA+hD,GAAkD,OAAAA,IAAAluB,cAAA,OAMlD8tM,EAAAJ,EAAA,SAAArvM,GACA,OAAAA,EAAA6O,OAAA,GAAAlN,cAAA3B,EAAA/tC,MAAA,KAMAy9O,EAAA,aACAC,EAAAN,EAAA,SAAArvM,GACA,OAAAA,EAAA9nC,QAAAw3O,EAAA,OAAAznO,gBA8BA,IAAA9N,EAAA2O,SAAAjZ,UAAAsK,KAJA,SAAAyB,EAAA45B,GACA,OAAA55B,EAAAzB,KAAAq7B,IAfA,SAAA55B,EAAA45B,GACA,SAAAo6M,EAAA1qO,GACA,IAAAvU,EAAA8D,UAAA7D,OACA,OAAAD,EACAA,EAAA,EACAiL,EAAAM,MAAAs5B,EAAA/gC,WACAmH,EAAAP,KAAAm6B,EAAAtwB,GACAtJ,EAAAP,KAAAm6B,GAIA,OADAo6M,EAAAC,QAAAj0O,EAAAhL,OACAg/O,GAcA,SAAAt0O,EAAAkhB,EAAArqB,GACAA,KAAA,EAGA,IAFA,IAAAzB,EAAA8rB,EAAA5rB,OAAAuB,EACAm0E,EAAA,IAAA9qE,MAAA9K,GACAA,KACA41E,EAAA51E,GAAA8rB,EAAA9rB,EAAAyB,GAEA,OAAAm0E,EAMA,SAAAjtE,EAAAwtC,EAAAmgM,GACA,QAAAttO,KAAAstO,EACAngM,EAAAntC,GAAAstO,EAAAttO,GAEA,OAAAmtC,EAMA,SAAAipB,EAAAv0D,GAEA,IADA,IAAAwD,KACArO,EAAA,EAAiBA,EAAA6K,EAAA3K,OAAgBF,IACjC6K,EAAA7K,IACA2I,EAAA0F,EAAAxD,EAAA7K,IAGA,OAAAqO,EAQA,SAAAitD,EAAA9mD,EAAAC,EAAA0qD,IAKA,IAAAigL,EAAA,SAAA5qO,EAAAC,EAAA0qD,GAA6B,UAK7BwkJ,EAAA,SAAAvmM,GAA6B,OAAAA,GAe7B,SAAAiiO,EAAA7qO,EAAAC,GACA,GAAAD,IAAAC,EAAgB,SAChB,IAAA6qO,EAAAzgP,EAAA2V,GACA+qO,EAAA1gP,EAAA4V,GACA,IAAA6qO,IAAAC,EAsBG,OAAAD,IAAAC,GACHnvO,OAAAoE,KAAApE,OAAAqE,GAtBA,IACA,IAAA+qO,EAAA10O,MAAAC,QAAAyJ,GACAirO,EAAA30O,MAAAC,QAAA0J,GACA,GAAA+qO,GAAAC,EACA,OAAAjrO,EAAAtU,SAAAuU,EAAAvU,QAAAsU,EAAAsiG,MAAA,SAAA1zG,EAAApD,GACA,OAAAq/O,EAAAj8O,EAAAqR,EAAAzU,MAEO,GAAAw/O,GAAAC,EAQP,SAPA,IAAAC,EAAA72O,OAAAC,KAAA0L,GACAmrO,EAAA92O,OAAAC,KAAA2L,GACA,OAAAirO,EAAAx/O,SAAAy/O,EAAAz/O,QAAAw/O,EAAA5oI,MAAA,SAAA9tG,GACA,OAAAq2O,EAAA7qO,EAAAxL,GAAAyL,EAAAzL,MAMK,MAAA5F,GAEL,UASA,SAAAw8O,EAAA/0O,EAAA2B,GACA,QAAAxM,EAAA,EAAiBA,EAAA6K,EAAA3K,OAAgBF,IACjC,GAAAq/O,EAAAx0O,EAAA7K,GAAAwM,GAAkC,OAAAxM,EAElC,SAMA,SAAA+kF,EAAA75E,GACA,IAAAmpN,GAAA,EACA,kBACAA,IACAA,GAAA,EACAnpN,EAAAM,MAAAvM,KAAA8E,aAKA,IAAA87O,EAAA,uBAEAC,GACA,YACA,YACA,UAGAC,GACA,eACA,UACA,cACA,UACA,eACA,UACA,gBACA,YACA,YACA,cACA,iBAKA9gM,GAKA+gM,sBAAAn3O,OAAA8/B,OAAA,MAKAvF,QAAA,EAKA68M,eAAiB,EAKjBC,UAAY,EAKZn3I,aAAA,EAKAo3I,aAAA,KAKAC,YAAA,KAKAC,mBAMAC,SAAAz3O,OAAA8/B,OAAA,MAMA43M,cAAAnB,EAMAoB,eAAApB,EAMAqB,iBAAArB,EAKAsB,gBAAAplL,EAKAqlL,qBAAAh9B,EAMAi9B,YAAAxB,EAKAyB,gBAAAd,GAQA,SAAAe,EAAAxxM,GACA,IAAA6vB,GAAA7vB,EAAA,IAAAmxD,WAAA,GACA,YAAAthC,GAAA,KAAAA,EAMA,SAAA4hL,EAAA32O,EAAApB,EAAAwD,EAAAlC,GACAzB,OAAAwB,eAAAD,EAAApB,GACAxC,MAAAgG,EACAlC,eACAE,UAAA,EACAD,cAAA,IAOA,IAAAy2O,EAAA,UAkBA,IAiCAC,EAjCAC,EAAA,gBAGAC,EAAA,oBAAAvyO,OACAwyO,EAAA,oBAAAC,+BAAAC,SACAC,EAAAH,GAAAC,cAAAC,SAAA/pO,cACAiqO,EAAAL,GAAAvyO,OAAAkvC,UAAAC,UAAAxmC,cACAkqO,EAAAD,GAAA,eAAA5mL,KAAA4mL,GACAE,EAAAF,KAAAziP,QAAA,cACA4iP,EAAAH,KAAAziP,QAAA,WAEA6iP,GADAJ,KAAAziP,QAAA,WACAyiP,GAAA,uBAAA5mL,KAAA4mL,IAAA,QAAAD,GAIAM,GAHAL,GAAA,cAAA5mL,KAAA4mL,MAGqBhnO,OAErBsnO,IAAA,EACA,GAAAX,EACA,IACA,IAAAr3O,MACAjB,OAAAwB,eAAAP,GAAA,WACA7G,IAAA,WAEA6+O,IAAA,KAGAlzO,OAAAiP,iBAAA,oBAAA/T,IACG,MAAA1G,IAMH,IAAA2+O,GAAA,WAWA,YAVAp1O,IAAAs0O,IAOAA,GALAE,IAAAC,QAAA,IAAA39L,GAGA,WAAAA,EAAA,QAAA7Z,IAAAo4M,SAKAf,GAIAf,GAAAiB,GAAAvyO,OAAAqzO,6BAGA,SAAAC,GAAAvX,GACA,yBAAAA,GAAA,cAAA/vK,KAAA+vK,EAAA9jO,YAGA,IAIAs7O,GAJAC,GACA,oBAAAl4O,QAAAg4O,GAAAh4O,SACA,oBAAAm4O,SAAAH,GAAAG,QAAAC,SAMAH,GAFA,oBAAA93I,KAAA63I,GAAA73I,KAEAA,IAGA,WACA,SAAAA,IACAprG,KAAAglD,IAAAp7C,OAAA8/B,OAAA,MAYA,OAVA0hE,EAAAlrG,UAAAilD,IAAA,SAAAp7C,GACA,WAAA/J,KAAAglD,IAAAj7C,IAEAqhG,EAAAlrG,UAAA++B,IAAA,SAAAl1B,GACA/J,KAAAglD,IAAAj7C,IAAA,GAEAqhG,EAAAlrG,UAAAklD,MAAA,WACAplD,KAAAglD,IAAAp7C,OAAA8/B,OAAA,OAGA0hE,EAdA,GAoBA,IAAA11F,GAAA2mD,EA+FAnH,GAAA,EAMAouL,GAAA,WACAtjP,KAAA0B,GAAAwzD,KACAl1D,KAAAujP,SAGAD,GAAApjP,UAAAsjP,OAAA,SAAA75O,GACA3J,KAAAujP,KAAAhiP,KAAAoI,IAGA25O,GAAApjP,UAAAujP,UAAA,SAAA95O,GACAlF,EAAAzE,KAAAujP,KAAA55O,IAGA25O,GAAApjP,UAAAwjP,OAAA,WACAJ,GAAA/iP,QACA+iP,GAAA/iP,OAAAojP,OAAA3jP,OAIAsjP,GAAApjP,UAAA0jP,OAAA,WAGA,IADA,IAAAL,EAAAvjP,KAAAujP,KAAAjhP,QACAvB,EAAA,EAAAC,EAAAuiP,EAAAtiP,OAAkCF,EAAAC,EAAOD,IACzCwiP,EAAAxiP,GAAAw7C,UAOA+mM,GAAA/iP,OAAA,KACA,IAAAsjP,MAEA,SAAAC,GAAAr+E,GACA69E,GAAA/iP,QAAmBsjP,GAAAtiP,KAAA+hP,GAAA/iP,QACnB+iP,GAAA/iP,OAAAklK,EAGA,SAAAs+E,KACAT,GAAA/iP,OAAAsjP,GAAA/sL,MAKA,IAAAktL,GAAA,SACA74B,EACAr6M,EACAy3K,EACAl3I,EACA2jK,EACAlnJ,EACAm2L,EACAC,GAEAlkP,KAAAmrN,MACAnrN,KAAA8Q,OACA9Q,KAAAuoL,WACAvoL,KAAAqxC,OACArxC,KAAAg1M,MACAh1M,KAAAmkP,QAAAz2O,EACA1N,KAAA8tD,UACA9tD,KAAAokP,eAAA12O,EACA1N,KAAAqkP,eAAA32O,EACA1N,KAAAskP,eAAA52O,EACA1N,KAAA+J,IAAA+G,KAAA/G,IACA/J,KAAAikP,mBACAjkP,KAAAinN,uBAAAv5M,EACA1N,KAAAupC,YAAA77B,EACA1N,KAAAukP,KAAA,EACAvkP,KAAAwkP,UAAA,EACAxkP,KAAAykP,cAAA,EACAzkP,KAAA0kP,WAAA,EACA1kP,KAAA2kP,UAAA,EACA3kP,KAAA4kP,QAAA,EACA5kP,KAAAkkP,eACAlkP,KAAA6kP,eAAAn3O,EACA1N,KAAA8kP,oBAAA,GAGA//L,IAA0BzY,OAAShhC,cAAA,IAInCy5C,GAAAzY,MAAAtoC,IAAA,WACA,OAAAhE,KAAAinN,mBAGAr9M,OAAAy7C,iBAAA2+L,GAAA9jP,UAAA6kD,IAEA,IAAAggM,GAAA,SAAA1zM,QACA,IAAAA,MAAA,IAEA,IAAA6nB,EAAA,IAAA8qL,GAGA,OAFA9qL,EAAA7nB,OACA6nB,EAAAwrL,WAAA,EACAxrL,GAGA,SAAA8rL,GAAAz3O,GACA,WAAAy2O,QAAAt2O,gBAAAyD,OAAA5D,IAOA,SAAA03O,GAAAn+B,GACA,IAAAo+B,EAAA,IAAAlB,GACAl9B,EAAAqE,IACArE,EAAAh2M,KACAg2M,EAAAv+B,SACAu+B,EAAAz1K,KACAy1K,EAAA9R,IACA8R,EAAAh5J,QACAg5J,EAAAm9B,iBACAn9B,EAAAo9B,cAUA,OARAgB,EAAAf,GAAAr9B,EAAAq9B,GACAe,EAAAV,SAAA19B,EAAA09B,SACAU,EAAAn7O,IAAA+8M,EAAA/8M,IACAm7O,EAAAR,UAAA59B,EAAA49B,UACAQ,EAAAd,UAAAt9B,EAAAs9B,UACAc,EAAAb,UAAAv9B,EAAAu9B,UACAa,EAAAZ,UAAAx9B,EAAAw9B,UACAY,EAAAP,UAAA,EACAO,EAQA,IAAAha,GAAAr/N,MAAA3L,UACAilP,GAAAv7O,OAAA8/B,OAAAwhM,KAGA,OACA,MACA,QACA,UACA,SACA,OACA,WAMAphO,QAAA,SAAA4kC,GAEA,IAAAk/H,EAAAs9D,GAAAx8L,GACAozM,EAAAqD,GAAAz2M,EAAA,WAEA,IADA,IAAAtiC,KAAAvK,EAAAiD,UAAA7D,OACAY,KAAAuK,EAAAvK,GAAAiD,UAAAjD,GAEA,IAEAujP,EAFAr0O,EAAA68J,EAAArhK,MAAAvM,KAAAoM,GACAi5O,EAAArlP,KAAAslP,OAEA,OAAA52M,GACA,WACA,cACA02M,EAAAh5O,EACA,MACA,aACAg5O,EAAAh5O,EAAA9J,MAAA,GAMA,OAHA8iP,GAAmBC,EAAAE,aAAAH,GAEnBC,EAAAjkC,IAAAwiC,SACA7yO,MAMA,IAAAy0O,GAAA57O,OAAAqyL,oBAAAkpD,IAMAM,IAAA,EAEA,SAAAC,GAAAn+O,GACAk+O,GAAAl+O,EASA,IAAAo+O,GAAA,SAAAp+O,IACAvH,KAAAuH,QACAvH,KAAAohN,IAAA,IAAAkiC,GACAtjP,KAAA4lP,QAAA,EACA9D,EAAAv6O,EAAA,SAAAvH,MACA6L,MAAAC,QAAAvE,MACA06O,EACA4D,GACAC,IACAv+O,EAAA49O,GAAAK,IACAxlP,KAAAulP,aAAAh+O,IAEAvH,KAAA+lP,KAAAx+O,IA+BA,SAAAs+O,GAAAtlP,EAAAwP,EAAAlG,GAEAtJ,EAAA84G,UAAAtpG,EASA,SAAA+1O,GAAAvlP,EAAAwP,EAAAlG,GACA,QAAA9I,EAAA,EAAAC,EAAA6I,EAAA5I,OAAkCF,EAAAC,EAAOD,IAAA,CACzC,IAAAgJ,EAAAF,EAAA9I,GACA+gP,EAAAvhP,EAAAwJ,EAAAgG,EAAAhG,KASA,SAAAy9C,GAAAjgD,EAAAy+O,GAIA,IAAAX,EAHA,GAAAzlP,EAAA2H,mBAAAy8O,IAkBA,OAdA32O,EAAA9F,EAAA,WAAAA,EAAA+9O,kBAAAK,GACAN,EAAA99O,EAAA+9O,OAEAG,KACA3C,OACAj3O,MAAAC,QAAAvE,IAAA23O,EAAA33O,KACAqC,OAAA8mN,aAAAnpN,KACAA,EAAA0+O,SAEAZ,EAAA,IAAAM,GAAAp+O,IAEAy+O,GAAAX,GACAA,EAAAO,UAEAP,EAMA,SAAAa,GACA/6O,EACApB,EACAwD,EACA44O,EACAC,GAEA,IAAAhlC,EAAA,IAAAkiC,GAEAzlM,EAAAj0C,OAAA06C,yBAAAn5C,EAAApB,GACA,IAAA8zC,IAAA,IAAAA,EAAAvyC,aAAA,CAKA,IAAA4lE,EAAArzB,KAAA75C,IACAktE,GAAA,IAAApsE,UAAA7D,SACAsM,EAAApC,EAAApB,IAEA,IAAAs1L,EAAAxhJ,KAAAmH,IAEAqhM,GAAAD,GAAA5+L,GAAAj6C,GACA3D,OAAAwB,eAAAD,EAAApB,GACAsB,YAAA,EACAC,cAAA,EACAtH,IAAA,WACA,IAAAuD,EAAA2pE,IAAAxlE,KAAAP,GAAAoC,EAUA,OATA+1O,GAAA/iP,SACA6gN,EAAAsiC,SACA2C,IACAA,EAAAjlC,IAAAsiC,SACA73O,MAAAC,QAAAvE,IAoGA,SAAA++O,EAAA/+O,GACA,QAAApD,OAAA,EAAApD,EAAA,EAAAC,EAAAuG,EAAAtG,OAAiDF,EAAAC,EAAOD,KACxDoD,EAAAoD,EAAAxG,KACAoD,EAAAmhP,QAAAnhP,EAAAmhP,OAAAlkC,IAAAsiC,SACA73O,MAAAC,QAAA3H,IACAmiP,EAAAniP,GAxGAmiP,CAAA/+O,KAIAA,GAEAy9C,IAAA,SAAAm7I,GACA,IAAA54L,EAAA2pE,IAAAxlE,KAAAP,GAAAoC,EAEA4yL,IAAA54L,GAAA44L,MAAA54L,OAOA83L,EACAA,EAAA3zL,KAAAP,EAAAg1L,GAEA5yL,EAAA4yL,EAEAkmD,GAAAD,GAAA5+L,GAAA24I,GACAihB,EAAAwiC,cAUA,SAAA5+L,GAAAzkD,EAAAwJ,EAAAwD,GAMA,GAAA1B,MAAAC,QAAAvL,IAAA6+O,EAAAr1O,GAGA,OAFAxJ,EAAAU,OAAA8G,KAAAE,IAAA1H,EAAAU,OAAA8I,GACAxJ,EAAAe,OAAAyI,EAAA,EAAAwD,GACAA,EAEA,GAAAxD,KAAAxJ,KAAAwJ,KAAAH,OAAA1J,WAEA,OADAK,EAAAwJ,GAAAwD,EACAA,EAEA,IAAA83O,EAAA,EAAAC,OACA,OAAA/kP,EAAA0lP,QAAAZ,KAAAO,QAKAr4O,EAEA83O,GAIAa,GAAAb,EAAA99O,MAAAwC,EAAAwD,GACA83O,EAAAjkC,IAAAwiC,SACAr2O,IALAhN,EAAAwJ,GAAAwD,EACAA,GAUA,SAAAg5O,GAAAhmP,EAAAwJ,GAMA,GAAA8B,MAAAC,QAAAvL,IAAA6+O,EAAAr1O,GACAxJ,EAAAe,OAAAyI,EAAA,OADA,CAIA,IAAAs7O,EAAA,EAAAC,OACA/kP,EAAA0lP,QAAAZ,KAAAO,SAOAv4O,EAAA9M,EAAAwJ,YAGAxJ,EAAAwJ,GACAs7O,GAGAA,EAAAjkC,IAAAwiC,WAlMA+B,GAAAzlP,UAAA6lP,KAAA,SAAA56O,GAEA,IADA,IAAAtB,EAAAD,OAAAC,KAAAsB,GACApK,EAAA,EAAiBA,EAAA8I,EAAA5I,OAAiBF,IAClCmlP,GAAA/6O,EAAAtB,EAAA9I,KAOA4kP,GAAAzlP,UAAAqlP,aAAA,SAAArzO,GACA,QAAAnR,EAAA,EAAAC,EAAAkR,EAAAjR,OAAmCF,EAAAC,EAAOD,IAC1CymD,GAAAt1C,EAAAnR,KA8MA,IAAAylP,GAAAxmM,EAAA+gM,sBAoBA,SAAA0F,GAAAvvM,EAAAnrC,GACA,IAAAA,EAAc,OAAAmrC,EAGd,IAFA,IAAAntC,EAAA28O,EAAAC,EACA98O,EAAAD,OAAAC,KAAAkC,GACAhL,EAAA,EAAiBA,EAAA8I,EAAA5I,OAAiBF,IAElC2lP,EAAAxvM,EADAntC,EAAAF,EAAA9I,IAEA4lP,EAAA56O,EAAAhC,GACAsD,EAAA6pC,EAAAntC,GAEKm1O,EAAAwH,IAAAxH,EAAAyH,IACLF,GAAAC,EAAAC,GAFA3hM,GAAA9N,EAAAntC,EAAA48O,GAKA,OAAAzvM,EAMA,SAAA0vM,GACAC,EACAC,EACAC,GAEA,OAAAA,EAoBA,WAEA,IAAAC,EAAA,mBAAAF,EACAA,EAAAp7O,KAAAq7O,KACAD,EACAG,EAAA,mBAAAJ,EACAA,EAAAn7O,KAAAq7O,KACAF,EACA,OAAAG,EACAP,GAAAO,EAAAC,GAEAA,GA7BAH,EAGAD,EAQA,WACA,OAAAJ,GACA,mBAAAK,IAAAp7O,KAAA1L,WAAA8mP,EACA,mBAAAD,IAAAn7O,KAAA1L,WAAA6mP,IAVAC,EAHAD,EA2DA,SAAAK,GACAL,EACAC,GAEA,OAAAA,EACAD,EACAA,EAAA9xO,OAAA+xO,GACAj7O,MAAAC,QAAAg7O,GACAA,GACAA,GACAD,EAcA,SAAAM,GACAN,EACAC,EACAC,EACAh9O,GAEA,IAAAqF,EAAAxF,OAAA8/B,OAAAm9M,GAAA,MACA,OAAAC,EAEAp9O,EAAA0F,EAAA03O,GAEA13O,EA5DAo3O,GAAA11O,KAAA,SACA+1O,EACAC,EACAC,GAEA,OAAAA,EAcAH,GAAAC,EAAAC,EAAAC,GAbAD,GAAA,mBAAAA,EAQAD,EAEAD,GAAAC,EAAAC,IAsBAhG,EAAAh3O,QAAA,SAAAioE,GACAy0K,GAAAz0K,GAAAm1K,KAyBArG,EAAA/2O,QAAA,SAAAtG,GACAgjP,GAAAhjP,EAAA,KAAA2jP,KASAX,GAAAjrO,MAAA,SACAsrO,EACAC,EACAC,EACAh9O,GAMA,GAHA88O,IAAAjE,IAAkCiE,OAAAn5O,GAClCo5O,IAAAlE,IAAiCkE,OAAAp5O,IAEjCo5O,EAAkB,OAAAl9O,OAAA8/B,OAAAm9M,GAAA,MAIlB,IAAAA,EAAmB,OAAAC,EACnB,IAAAnwK,KAEA,QAAAywK,KADA19O,EAAAitE,EAAAkwK,GACAC,EAAA,CACA,IAAAv9M,EAAAotC,EAAAywK,GACA96M,EAAAw6M,EAAAM,GACA79M,IAAA19B,MAAAC,QAAAy9B,KACAA,OAEAotC,EAAAywK,GAAA79M,EACAA,EAAAx0B,OAAAu3B,GACAzgC,MAAAC,QAAAwgC,SAEA,OAAAqqC,GAMA6vK,GAAA1jP,MACA0jP,GAAAzqO,QACAyqO,GAAAnzK,OACAmzK,GAAA3qO,SAAA,SACAgrO,EACAC,EACAC,EACAh9O,GAKA,IAAA88O,EAAmB,OAAAC,EACnB,IAAAnwK,EAAA/sE,OAAA8/B,OAAA,MAGA,OAFAhgC,EAAAitE,EAAAkwK,GACAC,GAAiBp9O,EAAAitE,EAAAmwK,GACjBnwK,GAEA6vK,GAAAa,QAAAT,GAKA,IAAAU,GAAA,SAAAT,EAAAC,GACA,YAAAp5O,IAAAo5O,EACAD,EACAC,GA0HA,SAAAS,GACAh+M,EACA+C,EACAy6M,GAMA,mBAAAz6M,IACAA,IAAA7jC,SApGA,SAAAA,EAAAs+O,GACA,IAAAjkP,EAAA2F,EAAA3F,MACA,GAAAA,EAAA,CACA,IACA/B,EAAAwM,EADA6B,KAEA,GAAAvD,MAAAC,QAAAhJ,GAEA,IADA/B,EAAA+B,EAAA7B,OACAF,KAEA,iBADAwM,EAAAzK,EAAA/B,MAGAqO,EADAywO,EAAAtyO,KACqB/J,KAAA,YAKlB,GAAA07O,EAAAp8O,GACH,QAAAiH,KAAAjH,EACAyK,EAAAzK,EAAAiH,GAEAqF,EADAywO,EAAA91O,IACAm1O,EAAA3xO,GACAA,GACW/J,KAAA+J,GASX9E,EAAA3F,MAAAsM,GAwEAo4O,CAAAl7M,GAlEA,SAAA7jC,EAAAs+O,GACA,IAAA1zK,EAAA5qE,EAAA4qE,OACA,GAAAA,EAAA,CACA,IAAA2qH,EAAAv1L,EAAA4qE,UACA,GAAAxnE,MAAAC,QAAAunE,GACA,QAAAtyE,EAAA,EAAmBA,EAAAsyE,EAAApyE,OAAmBF,IACtCi9L,EAAA3qH,EAAAtyE,KAA+BgL,KAAAsnE,EAAAtyE,SAE5B,GAAAm+O,EAAA7rK,GACH,QAAAtpE,KAAAspE,EAAA,CACA,IAAA9lE,EAAA8lE,EAAAtpE,GACAi0L,EAAAj0L,GAAAm1O,EAAA3xO,GACA7D,GAAkBqC,KAAAhC,GAAYwD,IACnBxB,KAAAwB,KAsDXk6O,CAAAn7M,GAxCA,SAAA7jC,GACA,IAAAi/O,EAAAj/O,EAAA27K,WACA,GAAAsjE,EACA,QAAA39O,KAAA29O,EAAA,CACA,IAAA5F,EAAA4F,EAAA39O,GACA,mBAAA+3O,IACA4F,EAAA39O,IAAqBS,KAAAs3O,EAAAvlM,OAAAulM,KAmCrB6F,CAAAr7M,GACA,IAAAs7M,EAAAt7M,EAAAu7M,QAIA,GAHAD,IACAr+M,EAAAg+M,GAAAh+M,EAAAq+M,EAAAb,IAEAz6M,EAAAg2I,OACA,QAAAvhL,EAAA,EAAAC,EAAAsrC,EAAAg2I,OAAArhL,OAA4CF,EAAAC,EAAOD,IACnDwoC,EAAAg+M,GAAAh+M,EAAA+C,EAAAg2I,OAAAvhL,GAAAgmP,GAGA,IACAh9O,EADAtB,KAEA,IAAAsB,KAAAw/B,EACAu+M,EAAA/9O,GAEA,IAAAA,KAAAuiC,EACAj/B,EAAAk8B,EAAAx/B,IACA+9O,EAAA/9O,GAGA,SAAA+9O,EAAA/9O,GACA,IAAAg+O,EAAAvB,GAAAz8O,IAAAu9O,GACA7+O,EAAAsB,GAAAg+O,EAAAx+M,EAAAx/B,GAAAuiC,EAAAviC,GAAAg9O,EAAAh9O,GAEA,OAAAtB,EAQA,SAAAu/O,GACAv/O,EACAjF,EACA9B,EACAumP,GAGA,oBAAAvmP,EAAA,CAGA,IAAAwmP,EAAAz/O,EAAAjF,GAEA,GAAA6J,EAAA66O,EAAAxmP,GAA2B,OAAAwmP,EAAAxmP,GAC3B,IAAAymP,EAAAtI,EAAAn+O,GACA,GAAA2L,EAAA66O,EAAAC,GAAoC,OAAAD,EAAAC,GACpC,IAAAC,EAAAtI,EAAAqI,GACA,OAAA96O,EAAA66O,EAAAE,GAAqCF,EAAAE,GAErCF,EAAAxmP,IAAAwmP,EAAAC,IAAAD,EAAAE,IAYA,SAAAC,GACAt+O,EACAu+O,EACAC,EACAxB,GAEA,IAAAjmP,EAAAwnP,EAAAv+O,GACAy+O,GAAAn7O,EAAAk7O,EAAAx+O,GACAxC,EAAAghP,EAAAx+O,GAEA0+O,EAAAC,GAAAjvO,QAAA3Y,EAAA0C,MACA,GAAAilP,GAAA,EACA,GAAAD,IAAAn7O,EAAAvM,EAAA,WACAyG,GAAA,OACK,QAAAA,OAAAy4O,EAAAj2O,GAAA,CAGL,IAAA4+O,EAAAD,GAAAv3O,OAAArQ,EAAA0C,OACAmlP,EAAA,GAAAF,EAAAE,KACAphP,GAAA,GAKA,QAAAmG,IAAAnG,EAAA,CACAA,EAqBA,SAAAw/O,EAAAjmP,EAAAiJ,GAEA,IAAAsD,EAAAvM,EAAA,WACA,OAEA,IAAAghP,EAAAhhP,EAAAiY,QAEM,EAUN,GAAAguO,KAAA3uO,SAAAmwO,gBACA76O,IAAAq5O,EAAA3uO,SAAAmwO,UAAAx+O,SACA2D,IAAAq5O,EAAA6B,OAAA7+O,GAEA,OAAAg9O,EAAA6B,OAAA7+O,GAIA,yBAAA+3O,GAAA,aAAAh1O,GAAAhM,EAAA0C,MACAs+O,EAAAp2O,KAAAq7O,GACAjF,EAhDA+G,CAAA9B,EAAAjmP,EAAAiJ,GAGA,IAAA++O,EAAArD,GACAC,IAAA,GACAl+L,GAAAjgD,GACAm+O,GAAAoD,GASA,OAAAvhP,EAuHA,SAAAuF,GAAAb,GACA,IAAA9C,EAAA8C,KAAArE,WAAAuB,MAAA,sBACA,OAAAA,IAAA,MAGA,SAAA4/O,GAAAxzO,EAAAC,GACA,OAAA1I,GAAAyI,KAAAzI,GAAA0I,GAGA,SAAAkzO,GAAAllP,EAAAwlP,GACA,IAAAn9O,MAAAC,QAAAk9O,GACA,OAAAD,GAAAC,EAAAxlP,GAAA,KAEA,QAAAzC,EAAA,EAAAc,EAAAmnP,EAAA/nP,OAA6CF,EAAAc,EAASd,IACtD,GAAAgoP,GAAAC,EAAAjoP,GAAAyC,GACA,OAAAzC,EAGA,SAKA,SAAAkoP,GAAAxjK,EAAAshK,EAAAjsK,GACA,GAAAisK,EAEA,IADA,IAAAphO,EAAAohO,EACAphO,IAAAwmM,SAAA,CACA,IAAA+8B,EAAAvjO,EAAAvN,SAAA+wO,cACA,GAAAD,EACA,QAAAnoP,EAAA,EAAuBA,EAAAmoP,EAAAjoP,OAAkBF,IACzC,IAEA,IADA,IAAAmoP,EAAAnoP,GAAA2K,KAAAia,EAAA8/D,EAAAshK,EAAAjsK,GAC0B,OACf,MAAA32E,GACXilP,GAAAjlP,EAAAwhB,EAAA,uBAMAyjO,GAAA3jK,EAAAshK,EAAAjsK,GAGA,SAAAsuK,GAAA3jK,EAAAshK,EAAAjsK,GACA,GAAA96B,EAAAkhM,aACA,IACA,OAAAlhM,EAAAkhM,aAAAx1O,KAAA,KAAA+5E,EAAAshK,EAAAjsK,GACK,MAAA32E,GACLklP,GAAAllP,EAAA,4BAGAklP,GAAA5jK,EAAAshK,EAAAjsK,GAGA,SAAAuuK,GAAA5jK,EAAAshK,EAAAjsK,GAKA,IAAAonK,IAAAC,GAAA,oBAAA1sO,QAGA,MAAAgwE,EAFAhwE,QAAAslE,MAAA0K,GASA,IAoBA6jK,GACAC,GArBA/iH,MACArT,IAAA,EAEA,SAAAq2H,KACAr2H,IAAA,EACA,IAAAs2H,EAAAjjH,GAAAlkI,MAAA,GACAkkI,GAAAvlI,OAAA,EACA,QAAAF,EAAA,EAAiBA,EAAA0oP,EAAAxoP,OAAmBF,IACpC0oP,EAAA1oP,KAcA,IAAA2oP,IAAA,EAOA,uBAAAxsB,cAAA+lB,GAAA/lB,cACAqsB,GAAA,WACArsB,aAAAssB,UAEC,uBAAAnsB,iBACD4lB,GAAA5lB,iBAEA,uCAAAA,eAAAz1N,WAUA2hP,GAAA,WACAj9O,WAAAk9O,GAAA,QAVA,CACA,IAAAzqG,GAAA,IAAAs+E,eACAv1D,GAAA/oB,GAAA0+E,MACA1+E,GAAA2+E,MAAAC,UAAA6rB,GACAD,GAAA,WACAzhF,GAAA1jD,YAAA,IAWA,uBAAA31G,SAAAw0O,GAAAx0O,SAAA,CACA,IAAAyiC,GAAAziC,QAAAC,UACA46O,GAAA,WACAp4M,GAAA/hC,KAAAq6O,IAMA7G,GAAgBr2O,WAAA+vD,SAIhBitL,GAAAC,GAgBA,SAAA1wK,GAAAvR,EAAAzhC,GACA,IAAA8jN,EAqBA,GApBAnjH,GAAAjlI,KAAA,WACA,GAAA+lE,EACA,IACAA,EAAA57D,KAAAm6B,GACO,MAAA1hC,GACP8kP,GAAA9kP,EAAA0hC,EAAA,iBAEK8jN,GACLA,EAAA9jN,KAGAstF,KACAA,IAAA,EACAu2H,GACAH,KAEAD,OAIAhiL,GAAA,oBAAA74D,QACA,WAAAA,QAAA,SAAAC,GACAi7O,EAAAj7O,IA2GA,IAAAk7O,GAAA,IAAA1G,GAOA,SAAAvqL,GAAAprD,IAKA,SAAAs8O,EAAAt8O,EAAAu8O,GACA,IAAA/oP,EAAA8I,EACA,IAAAkgP,EAAAl+O,MAAAC,QAAAyB,GACA,IAAAw8O,IAAAnqP,EAAA2N,IAAA3D,OAAAogP,SAAAz8O,iBAAAy2O,GACA,OAEA,GAAAz2O,EAAA+3O,OAAA,CACA,IAAA2E,EAAA18O,EAAA+3O,OAAAlkC,IAAA1/M,GACA,GAAAooP,EAAA3kM,IAAA8kM,GACA,OAEAH,EAAA7qN,IAAAgrN,GAEA,GAAAF,EAEA,IADAhpP,EAAAwM,EAAAtM,OACAF,KAAiB8oP,EAAAt8O,EAAAxM,GAAA+oP,QAIjB,IAFAjgP,EAAAD,OAAAC,KAAA0D,GACAxM,EAAA8I,EAAA5I,OACAF,KAAiB8oP,EAAAt8O,EAAA1D,EAAA9I,IAAA+oP,GAvBjBD,CAAAt8O,EAAAq8O,IACAA,GAAAxkM,QA4BA,IAsaA7kD,GAtaAuxL,GAAA4tD,EAAA,SAAA98O,GACA,IAAAsnP,EAAA,MAAAtnP,EAAAs8C,OAAA,GAEAirM,EAAA,OADAvnP,EAAAsnP,EAAAtnP,EAAAN,MAAA,GAAAM,GACAs8C,OAAA,GAEA5Y,EAAA,OADA1jC,EAAAunP,EAAAvnP,EAAAN,MAAA,GAAAM,GACAs8C,OAAA,GAEA,OACAt8C,KAFAA,EAAA0jC,EAAA1jC,EAAAN,MAAA,GAAAM,EAGAkjF,KAAAqkK,EACA7jN,UACA4jN,aAIA,SAAAE,GAAAl1K,GACA,SAAAm1K,IACA,IAAAC,EAAAxlP,UAEAowE,EAAAm1K,EAAAn1K,IACA,IAAArpE,MAAAC,QAAAopE,GAOA,OAAAA,EAAA3oE,MAAA,KAAAzH,WALA,IADA,IAAAogP,EAAAhwK,EAAA5yE,QACAvB,EAAA,EAAqBA,EAAAmkP,EAAAjkP,OAAmBF,IACxCmkP,EAAAnkP,GAAAwL,MAAA,KAAA+9O,GAQA,OADAD,EAAAn1K,MACAm1K,EAGA,SAAAE,GACA7qO,EACA8qO,EACAvrN,EACAwrN,EACA1D,GAEA,IAAAnkP,EAAA+iB,EAAA+kO,EAAAnzL,EACA,IAAA30D,KAAA8c,EACAiG,EAAAjG,EAAA9c,GACA8nP,EAAAF,EAAA5nP,GACA20D,EAAAu6H,GAAAlvL,GAEAk8O,EAAAn5N,KAKKm5N,EAAA4L,IACL5L,EAAAn5N,EAAAuvD,OACAvvD,EAAAjG,EAAA9c,GAAAwnP,GAAAzkO,IAEAsZ,EAAAs4B,EAAA30D,KAAA+iB,EAAA4xC,EAAAuuB,KAAAvuB,EAAAjxB,QAAAixB,EAAA2yL,QAAA3yL,EAAA5lC,SACKhM,IAAA+kO,IACLA,EAAAx1K,IAAAvvD,EACAjG,EAAA9c,GAAA8nP,IAGA,IAAA9nP,KAAA4nP,EACA1L,EAAAp/N,EAAA9c,KAEA6nP,GADAlzL,EAAAu6H,GAAAlvL,IACAA,KAAA4nP,EAAA5nP,GAAA20D,EAAAjxB,SAOA,SAAAqkN,GAAA7I,EAAA8I,EAAA74K,GAIA,IAAAs4K,EAHAvI,aAAAkC,KACAlC,IAAAhxO,KAAAihE,OAAA+vK,EAAAhxO,KAAAihE,UAGA,IAAA84K,EAAA/I,EAAA8I,GAEA,SAAAE,IACA/4K,EAAAxlE,MAAAvM,KAAA8E,WAGAL,EAAA4lP,EAAAn1K,IAAA41K,GAGAhM,EAAA+L,GAEAR,EAAAD,IAAAU,IAGA/L,EAAA8L,EAAA31K,MAAA8pK,EAAA6L,EAAA5nG,SAEAonG,EAAAQ,GACA31K,IAAA3zE,KAAAupP,GAGAT,EAAAD,IAAAS,EAAAC,IAIAT,EAAApnG,QAAA,EACA6+F,EAAA8I,GAAAP,EA8CA,SAAAU,GACA37O,EACAiuC,EACAtzC,EACAihP,EACAC,GAEA,GAAAlM,EAAA1hM,GAAA,CACA,GAAAhwC,EAAAgwC,EAAAtzC,GAKA,OAJAqF,EAAArF,GAAAszC,EAAAtzC,GACAkhP,UACA5tM,EAAAtzC,IAEA,EACK,GAAAsD,EAAAgwC,EAAA2tM,GAKL,OAJA57O,EAAArF,GAAAszC,EAAA2tM,GACAC,UACA5tM,EAAA2tM,IAEA,EAGA,SA8BA,SAAAE,GAAA3iE,GACA,OAAAkjD,EAAAljD,IACAy8D,GAAAz8D,IACA18K,MAAAC,QAAAy8K,GASA,SAAA4iE,EAAA5iE,EAAA6iE,GACA,IAAAh8O,KACA,IAAArO,EAAAm/D,EAAAmwC,EAAAz5B,EACA,IAAA71E,EAAA,EAAaA,EAAAwnL,EAAAtnL,OAAqBF,IAElC+9O,EADA5+K,EAAAqoH,EAAAxnL,KACA,kBAAAm/D,IACAmwC,EAAAjhG,EAAAnO,OAAA,EACA21E,EAAAxnE,EAAAihG,GAEAxkG,MAAAC,QAAAo0D,GACAA,EAAAj/D,OAAA,IAGAoqP,IAFAnrL,EAAAirL,EAAAjrL,GAAAkrL,GAAA,QAAArqP,IAEA,KAAAsqP,GAAAz0K,KACAxnE,EAAAihG,GAAA20I,GAAApuK,EAAAvlC,KAAA6uB,EAAA,GAAA7uB,MACA6uB,EAAA1yB,SAEAp+B,EAAA7N,KAAAgL,MAAA6C,EAAA8wD,IAEKurK,EAAAvrK,GACLmrL,GAAAz0K,GAIAxnE,EAAAihG,GAAA20I,GAAApuK,EAAAvlC,KAAA6uB,GACO,KAAAA,GAEP9wD,EAAA7N,KAAAyjP,GAAA9kL,IAGAmrL,GAAAnrL,IAAAmrL,GAAAz0K,GAEAxnE,EAAAihG,GAAA20I,GAAApuK,EAAAvlC,KAAA6uB,EAAA7uB,OAGA2tM,EAAAz2D,EAAA+iE,WACAvM,EAAA7+K,EAAAirJ,MACA2zB,EAAA5+K,EAAAn2D,MACAg1O,EAAAqM,KACAlrL,EAAAn2D,IAAA,UAAAqhP,EAAA,IAAArqP,EAAA,MAEAqO,EAAA7N,KAAA2+D,KAIA,OAAA9wD,EArDA+7O,CAAA5iE,QACA76K,EAGA,SAAA29O,GAAAnyL,GACA,OAAA6lL,EAAA7lL,IAAA6lL,EAAA7lL,EAAA7nB,QAxoEA,IAwoEA6nB,EAAAwrL,UAqDA,SAAA6G,GAAAC,EAAAjzM,GAOA,OALAizM,EAAAp6K,YACA+xK,IAAA,WAAAqI,EAAAvgP,OAAAwgP,gBAEAD,IAAAzyO,SAEAnZ,EAAA4rP,GACAjzM,EAAA7uC,OAAA8hP,GACAA,EAwHA,SAAA1G,GAAA5rL,GACA,OAAAA,EAAAwrL,WAAAxrL,EAAAgrL,aAKA,SAAAn9B,GAAAx+B,GACA,GAAA18K,MAAAC,QAAAy8K,GACA,QAAAxnL,EAAA,EAAmBA,EAAAwnL,EAAAtnL,OAAqBF,IAAA,CACxC,IAAAm/D,EAAAqoH,EAAAxnL,GACA,GAAAg+O,EAAA7+K,KAAA6+K,EAAA7+K,EAAA+jL,mBAAAa,GAAA5kL,IACA,OAAAA,GAsBA,SAAAjhC,GAAAs4B,EAAAtrD,EAAA65E,GACAA,EACAvlF,GAAA+0N,MAAA/9J,EAAAtrD,GAEA1L,GAAA0jL,IAAA1sH,EAAAtrD,GAIA,SAAAy/O,GAAAn0L,EAAAtrD,GACA1L,GAAAorP,KAAAp0L,EAAAtrD,GAGA,SAAA2/O,GACA7E,EACAvhK,EACAqmK,GAEAtrP,GAAAwmP,EACAwD,GAAA/kK,EAAAqmK,MAA+C5sN,GAAAysN,IAC/CnrP,QAAAmN,EAgHA,SAAAo+O,GACAvjE,EACAz6H,GAEA,IAAAi+L,KACA,IAAAxjE,EACA,OAAAwjE,EAEA,QAAAhrP,EAAA,EAAAC,EAAAunL,EAAAtnL,OAAsCF,EAAAC,EAAOD,IAAA,CAC7C,IAAAurC,EAAAi8I,EAAAxnL,GACA+P,EAAAw7B,EAAAx7B,KAOA,GALAA,KAAAuG,OAAAvG,EAAAuG,MAAA20O,aACAl7O,EAAAuG,MAAA20O,KAIA1/M,EAAAwhB,aAAAxhB,EAAA83M,YAAAt2L,IACAh9C,GAAA,MAAAA,EAAAk7O,MAUAD,EAAAhzO,UAAAgzO,EAAAhzO,aAAAxX,KAAA+qC,OATA,CACA,IAAA1pC,EAAAkO,EAAAk7O,KACAA,EAAAD,EAAAnpP,KAAAmpP,EAAAnpP,OACA,aAAA0pC,EAAA6+K,IACA6gC,EAAAzqP,KAAAgL,MAAAy/O,EAAA1/M,EAAAi8I,cAEAyjE,EAAAzqP,KAAA+qC,IAOA,QAAA2/M,KAAAF,EACAA,EAAAE,GAAAp0I,MAAAq0I,YACAH,EAAAE,GAGA,OAAAF,EAGA,SAAAG,GAAAhzL,GACA,OAAAA,EAAAwrL,YAAAxrL,EAAAgrL,cAAA,MAAAhrL,EAAA7nB,KAGA,SAAA86M,GACAj3K,EACA9lE,GAEAA,QACA,QAAArO,EAAA,EAAiBA,EAAAm0E,EAAAj0E,OAAgBF,IACjC8K,MAAAC,QAAAopE,EAAAn0E,IACAorP,GAAAj3K,EAAAn0E,GAAAqO,GAEAA,EAAA8lE,EAAAn0E,GAAAgJ,KAAAmrE,EAAAn0E,GAAAkL,GAGA,OAAAmD,EAKA,IAAAg9O,GAAA,KAiQA,SAAAC,GAAAtF,GACA,KAAAA,QAAA56B,UACA,GAAA46B,EAAAuF,UAAuB,SAEvB,SAGA,SAAAC,GAAAxF,EAAAyF,GACA,GAAAA,GAEA,GADAzF,EAAA0F,iBAAA,EACAJ,GAAAtF,GACA,YAEG,GAAAA,EAAA0F,gBACH,OAEA,GAAA1F,EAAAuF,WAAA,OAAAvF,EAAAuF,UAAA,CACAvF,EAAAuF,WAAA,EACA,QAAAvrP,EAAA,EAAmBA,EAAAgmP,EAAA2F,UAAAzrP,OAAyBF,IAC5CwrP,GAAAxF,EAAA2F,UAAA3rP,IAEA4rP,GAAA5F,EAAA,cAoBA,SAAA4F,GAAA5F,EAAAh1K,GAEA+xK,KACA,IAAAz2D,EAAA05D,EAAA3uO,SAAA25D,GACA,GAAAs7G,EACA,QAAAtsL,EAAA,EAAAmyB,EAAAm6J,EAAApsL,OAAwCF,EAAAmyB,EAAOnyB,IAC/C,IACAssL,EAAAtsL,GAAA2K,KAAAq7O,GACO,MAAA5iP,GACP8kP,GAAA9kP,EAAA4iP,EAAAh1K,EAAA,SAIAg1K,EAAA6F,eACA7F,EAAA/oO,MAAA,QAAA+zD,GAEAgyK,KAMA,IAEAxmB,MACAsvB,MACA1nM,MAEA2nM,IAAA,EACAC,IAAA,EACAngP,GAAA,EAiBA,SAAAogP,KAEA,IAAA7tO,EAAAzd,EAcA,IAfAqrP,IAAA,EAWAxvB,GAAAjoN,KAAA,SAAAC,EAAAC,GAA8B,OAAAD,EAAA7T,GAAA8T,EAAA9T,KAI9BkL,GAAA,EAAiBA,GAAA2wN,GAAAt8N,OAAsB2L,KAEvClL,GADAyd,EAAAo+M,GAAA3wN,KACAlL,GACAyjD,GAAAzjD,GAAA,KACAyd,EAAAq+M,MAmBA,IAAAyvB,EAAAJ,GAAAvqP,QACA4qP,EAAA3vB,GAAAj7N,QAnDAsK,GAAA2wN,GAAAt8N,OAAA4rP,GAAA5rP,OAAA,EACAkkD,MAIA2nM,GAAAC,IAAA,EAmFA,SAAAxvB,GACA,QAAAx8N,EAAA,EAAiBA,EAAAw8N,EAAAt8N,OAAkBF,IACnCw8N,EAAAx8N,GAAAurP,WAAA,EACAC,GAAAhvB,EAAAx8N,IAAA,GAnCAosP,CAAAF,GAUA,SAAA1vB,GACA,IAAAx8N,EAAAw8N,EAAAt8N,OACA,KAAAF,KAAA,CACA,IAAAoe,EAAAo+M,EAAAx8N,GACAgmP,EAAA5nO,EAAA4nO,GACAA,EAAAqG,WAAAjuO,GAAA4nO,EAAAsG,YACAV,GAAA5F,EAAA,YAfAuG,CAAAJ,GAIAjM,IAAAjhM,EAAAihM,UACAA,GAAA37J,KAAA,SA+DA,IAAAioK,GAAA,EAOAC,GAAA,SACAzG,EACA0G,EACAnmL,EACA7+D,EACAilP,GAEA1tP,KAAA+mP,KACA2G,IACA3G,EAAAqG,SAAAptP,MAEA+mP,EAAA7nO,UAAA3d,KAAAvB,MAEAyI,GACAzI,KAAAwb,OAAA/S,EAAA+S,KACAxb,KAAA2tP,OAAAllP,EAAAklP,KACA3tP,KAAA4tP,OAAAnlP,EAAAmlP,KACA5tP,KAAAu3F,OAAA9uF,EAAA8uF,MAEAv3F,KAAAwb,KAAAxb,KAAA2tP,KAAA3tP,KAAA4tP,KAAA5tP,KAAAu3F,MAAA,EAEAv3F,KAAAsnE,KACAtnE,KAAA0B,KAAA6rP,GACAvtP,KAAA6tP,QAAA,EACA7tP,KAAAoB,MAAApB,KAAA4tP,KACA5tP,KAAA+1L,QACA/1L,KAAA8tP,WACA9tP,KAAA+tP,OAAA,IAAA7K,GACAljP,KAAAguP,UAAA,IAAA9K,GACAljP,KAAAof,WAEA,GAEA,mBAAAquO,EACAztP,KAAAkxE,OAAAu8K,GAEAztP,KAAAkxE,OAzlFA,SAAA7wE,GACA,IAAA0hP,EAAApmL,KAAAt7D,GAAA,CAGA,IAAA+/H,EAAA//H,EAAAQ,MAAA,KACA,gBAAAsK,GACA,QAAApK,EAAA,EAAmBA,EAAAq/H,EAAAn/H,OAAqBF,IAAA,CACxC,IAAAoK,EAAiB,OACjBA,IAAAi1H,EAAAr/H,IAEA,OAAAoK,IA+kFAi7K,CAAAqnE,GACAztP,KAAAkxE,SACAlxE,KAAAkxE,OAAA,eASAlxE,KAAAuH,MAAAvH,KAAA4tP,UACAlgP,EACA1N,KAAAgE,OAMAwpP,GAAAttP,UAAA8D,IAAA,WAEA,IAAAuD,EADAu8O,GAAA9jP,MAEA,IAAA+mP,EAAA/mP,KAAA+mP,GACA,IACAx/O,EAAAvH,KAAAkxE,OAAAxlE,KAAAq7O,KACG,MAAA5iP,GACH,IAAAnE,KAAA2tP,KAGA,MAAAxpP,EAFA8kP,GAAA9kP,EAAA4iP,EAAA,uBAAA/mP,KAAA,gBAIG,QAGHA,KAAAwb,MACAm9C,GAAApxD,GAEAw8O,KACA/jP,KAAAiuP,cAEA,OAAA1mP,GAMAimP,GAAAttP,UAAAyjP,OAAA,SAAAviC,GACA,IAAA1/M,EAAA0/M,EAAA1/M,GACA1B,KAAAguP,UAAA7oM,IAAAzjD,KACA1B,KAAAguP,UAAA/uN,IAAAv9B,GACA1B,KAAA8tP,QAAAvsP,KAAA6/M,GACAphN,KAAA+tP,OAAA5oM,IAAAzjD,IACA0/M,EAAAoiC,OAAAxjP,QAQAwtP,GAAAttP,UAAA+tP,YAAA,WAIA,IAHA,IAEAltP,EAAAf,KAAA+1L,KAAA90L,OACAF,KAAA,CACA,IAAAqgN,EAJAphN,KAIA+1L,KAAAh1L,GAJAf,KAKAguP,UAAA7oM,IAAAi8J,EAAA1/M,KACA0/M,EAAAqiC,UANAzjP,MASA,IAAA0vE,EAAA1vE,KAAA+tP,OACA/tP,KAAA+tP,OAAA/tP,KAAAguP,UACAhuP,KAAAguP,UAAAt+K,EACA1vE,KAAAguP,UAAA5oM,QACAsqB,EAAA1vE,KAAA+1L,KACA/1L,KAAA+1L,KAAA/1L,KAAA8tP,QACA9tP,KAAA8tP,QAAAp+K,EACA1vE,KAAA8tP,QAAA7sP,OAAA,GAOAusP,GAAAttP,UAAAq8C,OAAA,WAEAv8C,KAAA4tP,KACA5tP,KAAAoB,OAAA,EACGpB,KAAAu3F,KACHv3F,KAAAw9N,MA7JA,SAAAr+M,GACA,IAAAzd,EAAAyd,EAAAzd,GACA,SAAAyjD,GAAAzjD,GAAA,CAEA,GADAyjD,GAAAzjD,IAAA,EACAqrP,GAEK,CAIL,IADA,IAAAhsP,EAAAw8N,GAAAt8N,OAAA,EACAF,EAAA6L,IAAA2wN,GAAAx8N,GAAAW,GAAAyd,EAAAzd,IACAX,IAEAw8N,GAAAj8N,OAAAP,EAAA,IAAAoe,QARAo+M,GAAAh8N,KAAA4d,GAWA2tO,KACAA,IAAA,EACAj0K,GAAAm0K,MA6IAkB,CAAAluP,OAQAwtP,GAAAttP,UAAAs9N,IAAA,WACA,GAAAx9N,KAAA6tP,OAAA,CACA,IAAAtmP,EAAAvH,KAAAgE,MACA,GACAuD,IAAAvH,KAAAuH,OAIA3H,EAAA2H,IACAvH,KAAAwb,KACA,CAEA,IAAAsqN,EAAA9lO,KAAAuH,MAEA,GADAvH,KAAAuH,QACAvH,KAAA2tP,KACA,IACA3tP,KAAAsnE,GAAA57D,KAAA1L,KAAA+mP,GAAAx/O,EAAAu+N,GACS,MAAA3hO,GACT8kP,GAAA9kP,EAAAnE,KAAA+mP,GAAA,yBAAA/mP,KAAA,qBAGAA,KAAAsnE,GAAA57D,KAAA1L,KAAA+mP,GAAAx/O,EAAAu+N,MAUA0nB,GAAAttP,UAAAiuP,SAAA,WACAnuP,KAAAuH,MAAAvH,KAAAgE,MACAhE,KAAAoB,OAAA,GAMAosP,GAAAttP,UAAAwjP,OAAA,WAIA,IAHA,IAEA3iP,EAAAf,KAAA+1L,KAAA90L,OACAF,KAHAf,KAIA+1L,KAAAh1L,GAAA2iP,UAOA8J,GAAAttP,UAAAkuP,SAAA,WAGA,GAAApuP,KAAA6tP,OAAA,CAIA7tP,KAAA+mP,GAAAsH,mBACA5pP,EAAAzE,KAAA+mP,GAAA7nO,UAAAlf,MAGA,IADA,IAAAe,EAAAf,KAAA+1L,KAAA90L,OACAF,KAVAf,KAWA+1L,KAAAh1L,GAAA0iP,UAXAzjP,MAaAA,KAAA6tP,QAAA,IAMA,IAAAS,IACAjjP,YAAA,EACAC,cAAA,EACAtH,IAAAq4D,EACArX,IAAAqX,GAGA,SAAA5V,GAAAlmD,EAAAguP,EAAAxkP,GACAukP,GAAAtqP,IAAA,WACA,OAAAhE,KAAAuuP,GAAAxkP,IAEAukP,GAAAtpM,IAAA,SAAAz3C,GACAvN,KAAAuuP,GAAAxkP,GAAAwD,GAEA3D,OAAAwB,eAAA7K,EAAAwJ,EAAAukP,IAGA,SAAAE,GAAAzH,GACAA,EAAA7nO,aACA,IAAArU,EAAAk8O,EAAA3uO,SACAvN,EAAA/H,OAaA,SAAAikP,EAAA0H,GACA,IAAAlG,EAAAxB,EAAA3uO,SAAAmwO,cACAzlP,EAAAikP,EAAA6B,UAGA/+O,EAAAk9O,EAAA3uO,SAAAs2O,aACA3H,EAAA56B,SAGAu5B,IAAA,GAEA,IAAAplP,EAAA,SAAAyJ,GACAF,EAAAtI,KAAAwI,GACA,IAAAxC,EAAA8gP,GAAAt+O,EAAA0kP,EAAAlG,EAAAxB,GAuBAb,GAAApjP,EAAAiH,EAAAxC,GAKAwC,KAAAg9O,GACAtgM,GAAAsgM,EAAA,SAAAh9O,IAIA,QAAAA,KAAA0kP,EAAAnuP,EAAAyJ,GACA27O,IAAA,GA5DmBlpN,CAAAuqN,EAAAl8O,EAAA/H,OACnB+H,EAAAkR,SAgNA,SAAAgrO,EAAAhrO,GACAgrO,EAAA3uO,SAAAtV,MACA,QAAAiH,KAAAgS,EAsBAgrO,EAAAh9O,GAAA,MAAAgS,EAAAhS,GAAAsyD,EAAA7xD,EAAAuR,EAAAhS,GAAAg9O,GAxOqB4H,CAAA5H,EAAAl8O,EAAAkR,SACrBlR,EAAAiG,KA6DA,SAAAi2O,GACA,IAAAj2O,EAAAi2O,EAAA3uO,SAAAtH,KAIAouO,EAHApuO,EAAAi2O,EAAA9qO,MAAA,mBAAAnL,EAwCA,SAAAA,EAAAi2O,GAEAjD,KACA,IACA,OAAAhzO,EAAApF,KAAAq7O,KACG,MAAA5iP,GAEH,OADA8kP,GAAA9kP,EAAA4iP,EAAA,aAEG,QACHhD,MAhDA73N,CAAApb,EAAAi2O,GACAj2O,SAEAA,MAQA,IAAAjH,EAAAD,OAAAC,KAAAiH,GACAhO,EAAAikP,EAAA3uO,SAAAtV,MAEA/B,GADAgmP,EAAA3uO,SAAA2D,QACAlS,EAAA5I,QACA,KAAAF,KAAA,CACA,IAAAgJ,EAAAF,EAAA9I,GACQ,EAQR+B,GAAAuK,EAAAvK,EAAAiH,IAMK83O,EAAA93O,IACL08C,GAAAsgM,EAAA,QAAAh9O,GAIAy9C,GAAA12C,GAAA,GAnGAm8E,CAAA85J,GAEAv/L,GAAAu/L,EAAA9qO,UAAyB,GAEzBpR,EAAAgR,UAiHA,SAAAkrO,EAAAlrO,GAEA,IAAA+yO,EAAA7H,EAAA8H,kBAAAjlP,OAAA8/B,OAAA,MAEAolN,EAAAhM,KAEA,QAAA/4O,KAAA8R,EAAA,CACA,IAAAkzO,EAAAlzO,EAAA9R,GACAmnE,EAAA,mBAAA69K,MAAA/qP,IACQ,EAOR8qP,IAEAF,EAAA7kP,GAAA,IAAAyjP,GACAzG,EACA71K,GAAA7U,EACAA,EACA2yL,KAOAjlP,KAAAg9O,GACAkI,GAAAlI,EAAAh9O,EAAAglP,IA/IsBG,CAAAnI,EAAAl8O,EAAAgR,UACtBhR,EAAA0Q,OAAA1Q,EAAA0Q,QAAAqnO,GAqOA,SAAAmE,EAAAxrO,GACA,QAAAxR,KAAAwR,EAAA,CACA,IAAAE,EAAAF,EAAAxR,GACA,GAAA8B,MAAAC,QAAA2P,GACA,QAAA1a,EAAA,EAAqBA,EAAA0a,EAAAxa,OAAoBF,IACzCouP,GAAApI,EAAAh9O,EAAA0R,EAAA1a,SAGAouP,GAAApI,EAAAh9O,EAAA0R,IA5OA2zO,CAAArI,EAAAl8O,EAAA0Q,OA6GA,IAAAyzO,IAA8BpB,MAAA,GA2C9B,SAAAqB,GACA1uP,EACAwJ,EACAglP,GAEA,IAAAM,GAAAvM,KACA,mBAAAiM,GACAT,GAAAtqP,IAAAqrP,EACAC,GAAAvlP,GACAglP,EACAT,GAAAtpM,IAAAqX,IAEAiyL,GAAAtqP,IAAA+qP,EAAA/qP,IACAqrP,IAAA,IAAAN,EAAApP,MACA2P,GAAAvlP,GACAglP,EAAA/qP,IACAq4D,EACAiyL,GAAAtpM,IAAA+pM,EAAA/pM,IACA+pM,EAAA/pM,IACAqX,GAWAzyD,OAAAwB,eAAA7K,EAAAwJ,EAAAukP,IAGA,SAAAgB,GAAAvlP,GACA,kBACA,IAAAoV,EAAAnf,KAAA6uP,mBAAA7uP,KAAA6uP,kBAAA9kP,GACA,GAAAoV,EAOA,OANAA,EAAA/d,OACA+d,EAAAgvO,WAEA7K,GAAA/iP,QACA4e,EAAAukO,SAEAvkO,EAAA5X,OA8CA,SAAA4nP,GACApI,EACA0G,EACAhyO,EACAhT,GASA,OAPAy2O,EAAAzjO,KACAhT,EAAAgT,EACAA,aAEA,iBAAAA,IACAA,EAAAsrO,EAAAtrO,IAEAsrO,EAAAznO,OAAAmuO,EAAAhyO,EAAAhT,GAoFA,SAAA8mP,GAAAl8K,EAAA0zK,GACA,GAAA1zK,EAAA,CAUA,IARA,IAAAtiE,EAAAnH,OAAA8/B,OAAA,MACA7/B,EAAAs5O,GACAC,QAAAC,QAAAhwK,GAAAjsD,OAAA,SAAArd,GAEA,OAAAH,OAAA06C,yBAAA+uB,EAAAtpE,GAAAsB,aAEAzB,OAAAC,KAAAwpE,GAEAtyE,EAAA,EAAmBA,EAAA8I,EAAA5I,OAAiBF,IAAA,CAIpC,IAHA,IAAAgJ,EAAAF,EAAA9I,GACAyuP,EAAAn8K,EAAAtpE,GAAAgC,KACAtJ,EAAAskP,EACAtkP,GAAA,CACA,GAAAA,EAAAgtP,WAAApiP,EAAA5K,EAAAgtP,UAAAD,GAAA,CACAz+O,EAAAhH,GAAAtH,EAAAgtP,UAAAD,GACA,MAEA/sP,IAAA0pN,QAEA,IAAA1pN,EACA,eAAA4wE,EAAAtpE,GAAA,CACA,IAAA2lP,EAAAr8K,EAAAtpE,GAAAgP,QACAhI,EAAAhH,GAAA,mBAAA2lP,EACAA,EAAAhkP,KAAAq7O,GACA2I,OACmB,EAKnB,OAAA3+O,GASA,SAAA4+O,GACApiP,EACA9J,GAEA,IAAAkzE,EAAA51E,EAAAC,EAAA6I,EAAAE,EACA,GAAA8B,MAAAC,QAAAyB,IAAA,iBAAAA,EAEA,IADAopE,EAAA,IAAA9qE,MAAA0B,EAAAtM,QACAF,EAAA,EAAAC,EAAAuM,EAAAtM,OAA+BF,EAAAC,EAAOD,IACtC41E,EAAA51E,GAAA0C,EAAA8J,EAAAxM,WAEG,oBAAAwM,EAEH,IADAopE,EAAA,IAAA9qE,MAAA0B,GACAxM,EAAA,EAAeA,EAAAwM,EAASxM,IACxB41E,EAAA51E,GAAA0C,EAAA1C,EAAA,EAAAA,QAEG,GAAAnB,EAAA2N,GAGH,IAFA1D,EAAAD,OAAAC,KAAA0D,GACAopE,EAAA,IAAA9qE,MAAAhC,EAAA5I,QACAF,EAAA,EAAAC,EAAA6I,EAAA5I,OAAgCF,EAAAC,EAAOD,IACvCgJ,EAAAF,EAAA9I,GACA41E,EAAA51E,GAAA0C,EAAA8J,EAAAxD,KAAAhJ,GAMA,OAHAg+O,EAAApoK,KACA,EAAA20K,UAAA,GAEA30K,EAQA,SAAAi5K,GACAhtP,EACAitP,EACA/sP,EACAgtP,GAEA,IACAxqE,EADAyqE,EAAA/vP,KAAAgwP,aAAAptP,GAEA,GAAAmtP,EACAjtP,QACAgtP,IAOAhtP,EAAA4G,OAA8BomP,GAAAhtP,IAE9BwiL,EAAAyqE,EAAAjtP,IAAA+sP,MACG,CACH,IAAAI,EAAAjwP,KAAA8Y,OAAAlW,GAEAqtP,IAQAA,EAAAC,WAAA,GAEA5qE,EAAA2qE,GAAAJ,EAGA,IAAAtvP,EAAAuC,KAAAkpP,KACA,OAAAzrP,EACAP,KAAAiX,eAAA,YAA4C+0O,KAAAzrP,GAAe+kL,GAE3DA,EASA,SAAA6qE,GAAAzuP,GACA,OAAAsmP,GAAAhoP,KAAAoY,SAAA,UAAA1W,IAAAgjN,EAKA,SAAA0rC,GAAAC,EAAAC,GACA,OAAAzkP,MAAAC,QAAAukP,IACA,IAAAA,EAAAvwP,QAAAwwP,GAEAD,IAAAC,EASA,SAAAC,GACAC,EACAzmP,EACA0mP,EACAC,EACAC,GAEA,IAAAC,EAAA5wM,EAAAqhM,SAAAt3O,IAAA0mP,EACA,OAAAE,GAAAD,IAAA1wM,EAAAqhM,SAAAt3O,GACAqmP,GAAAO,EAAAD,GACGE,EACHR,GAAAQ,EAAAJ,GACGE,EACH1Q,EAAA0Q,KAAA3mP,OADG,EAUH,SAAA8mP,GACA//O,EACAq6M,EACA5jN,EACAupP,EACAllK,GAEA,GAAArkF,EACA,GAAA3H,EAAA2H,GAKK,CAIL,IAAA81C,EAHAxxC,MAAAC,QAAAvE,KACAA,EAAA44D,EAAA54D,IAGA,IAAAjH,EAAA,SAAAyJ,GACA,GACA,UAAAA,GACA,UAAAA,GACA01O,EAAA11O,GAEAszC,EAAAvsC,MACS,CACT,IAAAtN,EAAAsN,EAAAuG,OAAAvG,EAAAuG,MAAA7T,KACA65C,EAAAyzM,GAAA9wM,EAAA2hM,YAAAx2B,EAAA3nN,EAAAuG,GACA+G,EAAA+3N,WAAA/3N,EAAA+3N,aACA/3N,EAAAuG,QAAAvG,EAAAuG,UAEAtN,KAAAszC,IACAA,EAAAtzC,GAAAxC,EAAAwC,GAEA6hF,KACA96E,EAAA4O,KAAA5O,EAAA4O,QACA,UAAA3V,GAAA,SAAAw6K,GACAh9K,EAAAwC,GAAAw6K,MAMA,QAAAx6K,KAAAxC,EAAAjH,EAAAyJ,QAGA,OAAA+G,EAQA,SAAAigP,GACAnkP,EACAokP,GAEA,IAAAtR,EAAA1/O,KAAAixP,eAAAjxP,KAAAixP,iBACArmE,EAAA80D,EAAA9yO,GAGA,OAAAg+K,IAAAomE,EACApmE,GAQAsmE,GALAtmE,EAAA80D,EAAA9yO,GAAA5M,KAAAoY,SAAAT,gBAAA/K,GAAAlB,KACA1L,KAAAmxP,aACA,KACAnxP,MAEA,aAAA4M,GAAA,GACAg+K,GAOA,SAAAwmE,GACAxmE,EACAh+K,EACA7C,GAGA,OADAmnP,GAAAtmE,EAAA,WAAAh+K,GAAA7C,EAAA,IAAAA,EAAA,QACA6gL,EAGA,SAAAsmE,GACAtmE,EACA7gL,EACA66O,GAEA,GAAA/4O,MAAAC,QAAA8+K,GACA,QAAA7pL,EAAA,EAAmBA,EAAA6pL,EAAA3pL,OAAiBF,IACpC6pL,EAAA7pL,IAAA,iBAAA6pL,EAAA7pL,IACAswP,GAAAzmE,EAAA7pL,GAAAgJ,EAAA,IAAAhJ,EAAA6jP,QAIAyM,GAAAzmE,EAAA7gL,EAAA66O,GAIA,SAAAyM,GAAAn4L,EAAAnvD,EAAA66O,GACA1rL,EAAAsrL,UAAA,EACAtrL,EAAAnvD,MACAmvD,EAAA0rL,SAKA,SAAA0M,GAAAxgP,EAAAvJ,GACA,GAAAA,EACA,GAAA23O,EAAA33O,GAKK,CACL,IAAAmY,EAAA5O,EAAA4O,GAAA5O,EAAA4O,GAAAhW,KAA4CoH,EAAA4O,OAC5C,QAAA3V,KAAAxC,EAAA,CACA,IAAAirE,EAAA9yD,EAAA3V,GACAwnP,EAAAhqP,EAAAwC,GACA2V,EAAA3V,GAAAyoE,KAAAz9D,OAAAy9D,EAAA++K,WAIA,OAAAzgP,EAKA,SAAA0gP,GAAAjxP,GACAA,EAAAkxP,GAAAL,GACA7wP,EAAAmxP,GAAArS,EACA9+O,EAAA6jK,GAAAx8J,EACArH,EAAAkvE,GAAAkgL,GACApvP,EAAAw0E,GAAA66K,GACArvP,EAAAoxP,GAAAvR,EACA7/O,EAAAomG,GAAAg6I,EACApgP,EAAAqxP,GAAAb,GACAxwP,EAAAsxP,GAAA1B,GACA5vP,EAAAuxP,GAAAvB,GACAhwP,EAAAmoO,GAAAmoB,GACAtwP,EAAAsX,GAAAmtO,GACAzkP,EAAAu0E,GAAAiwK,GACAxkP,EAAAwxP,GAAA5F,GACA5rP,EAAAyxP,GAAAV,GAKA,SAAAW,GACAnhP,EACAhO,EACAylL,EACAh/I,EACAmiM,GAEA,IAGAwmB,EAHAzpP,EAAAijO,EAAAjjO,QAIA4E,EAAAk8B,EAAA,SACA2oN,EAAAtoP,OAAA8/B,OAAAH,IAEA4oN,UAAA5oN,GAKA2oN,EAAA3oN,EAEAA,IAAA4oN,WAEA,IAAAC,EAAApT,EAAAv2O,EAAAupE,WACAqgL,GAAAD,EAEApyP,KAAA8Q,OACA9Q,KAAA8C,QACA9C,KAAAuoL,WACAvoL,KAAAupC,SACAvpC,KAAAwlF,UAAA10E,EAAA4O,IAAAk/N,EACA5+O,KAAAsyP,WAAA/C,GAAA9mP,EAAA4qE,OAAA9pC,GACAvpC,KAAA+rP,MAAA,WAA4B,OAAAD,GAAAvjE,EAAAh/I,IAG5B6oN,IAEApyP,KAAAoY,SAAA3P,EAEAzI,KAAA8Y,OAAA9Y,KAAA+rP,QACA/rP,KAAAgwP,aAAAl/O,EAAAyhP,aAAA3T,GAGAn2O,EAAAypE,SACAlyE,KAAAkX,GAAA,SAAA3B,EAAAC,EAAA0qD,EAAAzxC,GACA,IAAAq4L,EAAAh3M,GAAAoiP,EAAA38O,EAAAC,EAAA0qD,EAAAzxC,EAAA4jO,GAKA,OAJAvrC,IAAAj7M,MAAAC,QAAAg7M,KACAA,EAAAw9B,UAAA77O,EAAAypE,SACA40I,EAAAs9B,UAAA76M,GAEAu9K,GAGA9mN,KAAAkX,GAAA,SAAA3B,EAAAC,EAAA0qD,EAAAzxC,GAAqC,OAAA3e,GAAAoiP,EAAA38O,EAAAC,EAAA0qD,EAAAzxC,EAAA4jO,IA+CrC,SAAAG,GAAA1rC,EAAAh2M,EAAAohP,EAAAzpP,GAIA,IAAAuhC,EAAAi7M,GAAAn+B,GAMA,OALA98K,EAAAo6M,UAAA8N,EACAloN,EAAAq6M,UAAA57O,EACAqI,EAAAk7O,QACAhiN,EAAAl5B,OAAAk5B,EAAAl5B,UAAmCk7O,KAAAl7O,EAAAk7O,MAEnChiN,EAGA,SAAAyoN,GAAAv7M,EAAAnrC,GACA,QAAAhC,KAAAgC,EACAmrC,EAAA2oM,EAAA91O,IAAAgC,EAAAhC,GA1DAynP,GAAAS,GAAA/xP,WAoFA,IAAAwyP,IACAl0O,KAAA,SACAsoM,EACA6rC,EACAC,EACAC,GAEA,GACA/rC,EAAAG,oBACAH,EAAAG,kBAAAnpM,cACAgpM,EAAAh2M,KAAAgiP,UACA,CAEA,IAAAC,EAAAjsC,EACA4rC,GAAAM,SAAAD,SACK,EACLjsC,EAAAG,kBAgKA,SACAH,EACAv9K,EACAqpN,EACAC,GAEA,IAAApqP,GACAwqP,cAAA,EACA1pN,SACA2pN,aAAApsC,EACAqsC,WAAAP,GAAA,KACAQ,QAAAP,GAAA,MAGAQ,EAAAvsC,EAAAh2M,KAAAuiP,eACAtU,EAAAsU,KACA5qP,EAAAhF,OAAA4vP,EAAA5vP,OACAgF,EAAAkP,gBAAA07O,EAAA17O,iBAEA,WAAAmvM,EAAAm9B,iBAAAvY,KAAAjjO,GAnLA6qP,CACAxsC,EACAslC,GACAwG,EACAC,IAEAtsC,OAAAosC,EAAA7rC,EAAA9R,SAAAtnM,EAAAilP,KAIAK,SAAA,SAAAO,EAAAzsC,GACA,IAAAr+M,EAAAq+M,EAAAm9B,kBAvzCA,SACA8C,EACAwB,EACA/iK,EACAguK,EACAC,GAQA,IAAAC,KACAD,GACA1M,EAAA3uO,SAAAu7O,iBACAH,EAAA1iP,KAAAyhP,aACAxL,EAAAiJ,eAAApR,GAkBA,GAfAmI,EAAA3uO,SAAA86O,aAAAM,EACAzM,EAAA50K,OAAAqhL,EAEAzM,EAAA6M,SACA7M,EAAA6M,OAAArqN,OAAAiqN,GAEAzM,EAAA3uO,SAAAu7O,gBAAAF,EAKA1M,EAAA7d,OAAAsqB,EAAA1iP,KAAAuG,OAAAunO,EACAmI,EAAA8M,WAAAruK,GAAAo5J,EAGA2J,GAAAxB,EAAA3uO,SAAAtV,MAAA,CACA4iP,IAAA,GAGA,IAFA,IAAA5iP,EAAAikP,EAAA6B,OACAkL,EAAA/M,EAAA3uO,SAAAs2O,cACA3tP,EAAA,EAAmBA,EAAA+yP,EAAA7yP,OAAqBF,IAAA,CACxC,IAAAgJ,EAAA+pP,EAAA/yP,GACAunP,EAAAvB,EAAA3uO,SAAAtV,MACAA,EAAAiH,GAAAs+O,GAAAt+O,EAAAu+O,EAAAC,EAAAxB,GAEArB,IAAA,GAEAqB,EAAA3uO,SAAAmwO,YAIA/iK,KAAAo5J,EACA,IAAAiN,EAAA9E,EAAA3uO,SAAA27O,iBACAhN,EAAA3uO,SAAA27O,iBAAAvuK,EACAomK,GAAA7E,EAAAvhK,EAAAqmK,GAGA6H,IACA3M,EAAAjuO,OAAAgzO,GAAA2H,EAAAD,EAAA1lM,SACAi5L,EAAAiN,gBA+vCAC,CADAntC,EAAAG,kBAAAssC,EAAAtsC,kBAGAx+M,EAAA8/O,UACA9/O,EAAA+8E,UACAshI,EACAr+M,EAAA8/K,WAIA3M,OAAA,SAAAkrC,GACA,IAnmCAigC,EAmmCAj5L,EAAAg5J,EAAAh5J,QACAm5J,EAAAH,EAAAG,kBACAA,EAAAomC,aACApmC,EAAAomC,YAAA,EACAV,GAAA1lC,EAAA,YAEAH,EAAAh2M,KAAAgiP,YACAhlM,EAAAu/L,aA1mCAtG,EAgnCA9/B,GA7mCAqlC,WAAA,EACAO,GAAAtrP,KAAAwlP,IA8mCAwF,GAAAtlC,GAAA,KAKA9nK,QAAA,SAAA2nK,GACA,IAAAG,EAAAH,EAAAG,kBACAA,EAAAnpM,eACAgpM,EAAAh2M,KAAAgiP,UA/vCA,SAAAoB,EAAAnN,EAAAyF,GACA,KAAAA,IACAzF,EAAA0F,iBAAA,EACAJ,GAAAtF,KAIAA,EAAAuF,WAAA,CACAvF,EAAAuF,WAAA,EACA,QAAAvrP,EAAA,EAAmBA,EAAAgmP,EAAA2F,UAAAzrP,OAAyBF,IAC5CmzP,EAAAnN,EAAA2F,UAAA3rP,IAEA4rP,GAAA5F,EAAA,gBAsvCAmN,CAAAjtC,GAAA,GAFAA,EAAAktC,cAQAC,GAAAxqP,OAAAC,KAAA6oP,IAEA,SAAA2B,GACA3oB,EACA56N,EACAg9C,EACAy6H,EACA4iC,GAEA,IAAA2zB,EAAApT,GAAA,CAIA,IAAA4oB,EAAAxmM,EAAA11C,SAAAm8O,MASA,GANA30P,EAAA8rO,KACAA,EAAA4oB,EAAA5qP,OAAAgiO,IAKA,mBAAAA,EAAA,CAQA,IAAAwY,EACA,GAAApF,EAAApT,EAAA8oB,WAGA9mP,KADAg+N,EA54DA,SACA1mO,EACAsvP,EACAxmM,GAEA,GAAAkxL,EAAAh6O,EAAA+1E,QAAAgkK,EAAA/5O,EAAAyvP,WACA,OAAAzvP,EAAAyvP,UAGA,GAAA1V,EAAA/5O,EAAA0vP,UACA,OAAA1vP,EAAA0vP,SAGA,GAAA1V,EAAAh6O,EAAA2T,UAAAomO,EAAA/5O,EAAA2vP,aACA,OAAA3vP,EAAA2vP,YAGA,IAAA5V,EAAA/5O,EAAA4vP,UAGG,CACH,IAAAA,EAAA5vP,EAAA4vP,UAAA9mM,GACAypC,GAAA,EAEAs9J,EAAA,WACA,QAAA9zP,EAAA,EAAAC,EAAA4zP,EAAA3zP,OAA0CF,EAAAC,EAAOD,IACjD6zP,EAAA7zP,GAAAizP,gBAIAtlP,EAAAo3E,EAAA,SAAA12E,GAEApK,EAAA0vP,SAAAnJ,GAAAn8O,EAAAklP,GAGA/8J,GACAs9J,MAIAlmP,EAAAm3E,EAAA,SAAA/lB,GAKAg/K,EAAA/5O,EAAAyvP,aACAzvP,EAAA+1E,OAAA,EACA85K,OAIAzlP,EAAApK,EAAA0J,EAAAC,GA6CA,OA3CA/O,EAAAwP,KACA,mBAAAA,EAAAD,KAEA2vO,EAAA95O,EAAA0vP,WACAtlP,EAAAD,KAAAT,EAAAC,GAEOowO,EAAA3vO,EAAAmlB,YAAA,mBAAAnlB,EAAAmlB,UAAAplB,OACPC,EAAAmlB,UAAAplB,KAAAT,EAAAC,GAEAowO,EAAA3vO,EAAA2rE,SACA/1E,EAAAyvP,UAAAlJ,GAAAn8O,EAAA2rE,MAAAu5K,IAGAvV,EAAA3vO,EAAAuJ,WACA3T,EAAA2vP,YAAApJ,GAAAn8O,EAAAuJ,QAAA27O,GACA,IAAAllP,EAAAnN,MACA+C,EAAA2T,SAAA,EAEArM,WAAA,WACAwyO,EAAA95O,EAAA0vP,WAAA5V,EAAA95O,EAAA+1E,SACA/1E,EAAA2T,SAAA,EACAk8O,MAEazlP,EAAAnN,OAAA,MAIb88O,EAAA3vO,EAAAwrG,UACAtuG,WAAA,WACAwyO,EAAA95O,EAAA0vP,WACA/lP,EAGA,OAGWS,EAAAwrG,WAKXrjB,GAAA,EAEAvyF,EAAA2T,QACA3T,EAAA2vP,YACA3vP,EAAA0vP,SA/EA1vP,EAAA4vP,SAAArzP,KAAAusD,GAy3DAgnM,CADA5Q,EAAAxY,EACA4oB,EAAAxmM,IAKA,OA95DA,SACA9oD,EACA8L,EACAg9C,EACAy6H,EACA4iC,GAEA,IAAAjyJ,EAAA6rL,KAGA,OAFA7rL,EAAAgrL,aAAAl/O,EACAk0D,EAAA2rL,WAAoB/zO,OAAAg9C,UAAAy6H,WAAA4iC,OACpBjyJ,EAo5DA67L,CACA7Q,EACApzO,EACAg9C,EACAy6H,EACA4iC,GAKAr6M,QAIAkkP,GAAAtpB,GAGAqT,EAAAjuO,EAAAymB,QAkFA,SAAA9uB,EAAAqI,GACA,IAAAhQ,EAAA2H,EAAA8uB,OAAA9uB,EAAA8uB,MAAAz2B,MAAA,QACAy2D,EAAA9uD,EAAA8uB,OAAA9uB,EAAA8uB,MAAAggC,OAAA,SAAgEzmD,EAAAhO,QAAAgO,EAAAhO,WAA+BhC,GAAAgQ,EAAAymB,MAAAhwB,MAC/F,IAAAmY,EAAA5O,EAAA4O,KAAA5O,EAAA4O,OACAq/N,EAAAr/N,EAAA63C,IACA73C,EAAA63C,IAAAzmD,EAAAymB,MAAAp1B,UAAA4S,OAAA2K,EAAA63C,IAEA73C,EAAA63C,GAAAzmD,EAAAymB,MAAAp1B,SAxFA8yP,CAAAvpB,EAAAjjO,QAAAqI,GAIA,IAAAy3O,EA3lEA,SACAz3O,EACA46N,EACAvgB,GAKA,IAAAm9B,EAAA5c,EAAAjjO,QAAA3F,MACA,IAAAg8O,EAAAwJ,GAAA,CAGA,IAAAl5O,KACAiI,EAAAvG,EAAAuG,MACAvU,EAAAgO,EAAAhO,MACA,GAAAi8O,EAAA1nO,IAAA0nO,EAAAj8O,GACA,QAAAiH,KAAAu+O,EAAA,CACA,IAAA0C,EAAAhL,EAAAj2O,GAiBAghP,GAAA37O,EAAAtM,EAAAiH,EAAAihP,GAAA,IACAD,GAAA37O,EAAAiI,EAAAtN,EAAAihP,GAAA,GAGA,OAAA57O,GAqjEA8lP,CAAApkP,EAAA46N,GAGA,GAAAsT,EAAAtT,EAAAjjO,QAAAwpE,YACA,OAzNA,SACAy5J,EACA6c,EACAz3O,EACAohP,EACA3pE,GAEA,IAAA9/K,EAAAijO,EAAAjjO,QACA3F,KACAwlP,EAAA7/O,EAAA3F,MACA,GAAAi8O,EAAAuJ,GACA,QAAAv+O,KAAAu+O,EACAxlP,EAAAiH,GAAAs+O,GAAAt+O,EAAAu+O,EAAAC,GAAA3J,QAGAG,EAAAjuO,EAAAuG,QAA4Bo7O,GAAA3vP,EAAAgO,EAAAuG,OAC5B0nO,EAAAjuO,EAAAhO,QAA4B2vP,GAAA3vP,EAAAgO,EAAAhO,OAG5B,IAAAqyP,EAAA,IAAAlD,GACAnhP,EACAhO,EACAylL,EACA2pE,EACAxmB,GAGA5kB,EAAAr+M,EAAAhF,OAAAiI,KAAA,KAAAypP,EAAAj+O,GAAAi+O,GAEA,GAAAruC,aAAAk9B,GACA,OAAAwO,GAAA1rC,EAAAh2M,EAAAqkP,EAAA5rN,OAAA9gC,GACG,GAAAoD,MAAAC,QAAAg7M,GAAA,CAGH,IAFA,IAAAsuC,EAAAlK,GAAApkC,OACA13M,EAAA,IAAAvD,MAAAupP,EAAAn0P,QACAF,EAAA,EAAmBA,EAAAq0P,EAAAn0P,OAAmBF,IACtCqO,EAAArO,GAAAyxP,GAAA4C,EAAAr0P,GAAA+P,EAAAqkP,EAAA5rN,OAAA9gC,GAEA,OAAA2G,GAoLAimP,CAAA3pB,EAAA6c,EAAAz3O,EAAAg9C,EAAAy6H,GAKA,IAAA/iG,EAAA10E,EAAA4O,GAKA,GAFA5O,EAAA4O,GAAA5O,EAAAwkP,SAEAtW,EAAAtT,EAAAjjO,QAAA8sP,UAAA,CAKA,IAAAvJ,EAAAl7O,EAAAk7O,KACAl7O,KACAk7O,IACAl7O,EAAAk7O,SA6CA,SAAAl7O,GAEA,IADA,IAAAo4O,EAAAp4O,EAAAihE,OAAAjhE,EAAAihE,SACAhxE,EAAA,EAAiBA,EAAAqzP,GAAAnzP,OAAyBF,IAAA,CAC1C,IAAAgJ,EAAAqqP,GAAArzP,GACAmoP,EAAAn/O,GAAA2oP,GAAA3oP,IA5CAyrP,CAAA1kP,GAGA,IAAAlO,EAAA8oO,EAAAjjO,QAAA7F,MAAAuoN,EAYA,OAXA,IAAA64B,GACA,iBAAAtY,EAAA,KAAA9oO,EAAA,IAAAA,EAAA,IACAkO,OAAApD,gBAAAogD,GACK49K,OAAA6c,YAAA/iK,YAAA2lI,MAAA5iC,YACL27D,KAuDA,IAAAuR,GAAA,EACAC,GAAA,EAIA,SAAA5lP,GACAg+C,EACAq9J,EACAr6M,EACAy3K,EACAotE,EACAl0K,GAUA,OARA51E,MAAAC,QAAAgF,IAAA26N,EAAA36N,MACA6kP,EAAAptE,EACAA,EAAAz3K,EACAA,OAAApD,GAEAsxO,EAAAv9J,KACAk0K,EAAAD,IAKA,SACA5nM,EACAq9J,EACAr6M,EACAy3K,EACAotE,GAEA,GAAA5W,EAAAjuO,IAAAiuO,EAAA,EAAAuG,QAMA,OAAAP,KAGAhG,EAAAjuO,IAAAiuO,EAAAjuO,EAAAoxM,MACAiJ,EAAAr6M,EAAAoxM,IAEA,IAAAiJ,EAEA,OAAA45B,KAGM,EAYNl5O,MAAAC,QAAAy8K,IACA,mBAAAA,EAAA,MAEAz3K,SACAyhP,aAAwBx5O,QAAAwvK,EAAA,IACxBA,EAAAtnL,OAAA,GAEA00P,IAAAD,GACAntE,EAAA2iE,GAAA3iE,GACGotE,IAAAF,KACHltE,EA3qEA,SAAAA,GACA,QAAAxnL,EAAA,EAAiBA,EAAAwnL,EAAAtnL,OAAqBF,IACtC,GAAA8K,MAAAC,QAAAy8K,EAAAxnL,IACA,OAAA8K,MAAA3L,UAAA6U,OAAAxI,SAAAg8K,GAGA,OAAAA,EAqqEAqtE,CAAArtE,IAEA,IAAAu+B,EAAAq9B,EACA,oBAAAh5B,EAAA,CACA,IAAAugB,EACAyY,EAAAr2L,EAAAqkB,QAAArkB,EAAAqkB,OAAAgyK,IAAAnkM,EAAAyhM,gBAAAt2B,GAGArE,EAFA9mK,EAAAshM,cAAAn2B,GAEA,IAAA64B,GACAhkM,EAAA0hM,qBAAAv2B,GAAAr6M,EAAAy3K,OACA76K,SAAAogD,GAEKixL,EAAArT,EAAAsc,GAAAl6L,EAAA11C,SAAA,aAAA+yM,IAELkpC,GAAA3oB,EAAA56N,EAAAg9C,EAAAy6H,EAAA4iC,GAKA,IAAA64B,GACA74B,EAAAr6M,EAAAy3K,OACA76K,SAAAogD,QAKAg5J,EAAAutC,GAAAlpC,EAAAr6M,EAAAg9C,EAAAy6H,GAEA,OAAA18K,MAAAC,QAAAg7M,GACAA,EACGi4B,EAAAj4B,IACHi4B,EAAAoF,IAQA,SAAA0R,EAAA/uC,EAAAq9B,EAAA58D,GACAu/B,EAAAq9B,KACA,kBAAAr9B,EAAAqE,MAEAg5B,OAAAz2O,EACA65K,GAAA,GAEA,GAAAw3D,EAAAj4B,EAAAv+B,UACA,QAAAxnL,EAAA,EAAAC,EAAA8lN,EAAAv+B,SAAAtnL,OAA8CF,EAAAC,EAAOD,IAAA,CACrD,IAAAurC,EAAAw6K,EAAAv+B,SAAAxnL,GACAg+O,EAAAzyM,EAAA6+K,OACA2zB,EAAAxyM,EAAA63M,KAAAnF,EAAAz3D,IAAA,QAAAj7I,EAAA6+K,MACA0qC,EAAAvpN,EAAA63M,EAAA58D,IApBoBsuE,CAAA/uC,EAAAq9B,GACpBpF,EAAAjuO,IA4BA,SAAAA,GACAlR,EAAAkR,EAAAyH,QACAogD,GAAA7nD,EAAAyH,OAEA3Y,EAAAkR,EAAAoH,QACAygD,GAAA7nD,EAAAoH,OAjCsB49O,CAAAhlP,GACtBg2M,GAEAi+B,KApFAgR,CAAAjoM,EAAAq9J,EAAAr6M,EAAAy3K,EAAAotE,GAmOA,IAAAK,GAAA,EAkFA,SAAAhB,GAAAtpB,GACA,IAAAjjO,EAAAijO,EAAAjjO,QACA,GAAAijO,EAAAuqB,MAAA,CACA,IAAAC,EAAAlB,GAAAtpB,EAAAuqB,OAEA,GAAAC,IADAxqB,EAAAwqB,aACA,CAGAxqB,EAAAwqB,eAEA,IAAAC,EAcA,SAAAzqB,GACA,IAAA0qB,EACAC,EAAA3qB,EAAAjjO,QACA6tP,EAAA5qB,EAAA6qB,cACAC,EAAA9qB,EAAA+qB,cACA,QAAA1sP,KAAAssP,EACAA,EAAAtsP,KAAAysP,EAAAzsP,KACAqsP,IAAsBA,MACtBA,EAAArsP,GAAA2sP,GAAAL,EAAAtsP,GAAAusP,EAAAvsP,GAAAysP,EAAAzsP,KAGA,OAAAqsP,EAzBAO,CAAAjrB,GAEAyqB,GACAzsP,EAAAgiO,EAAA6qB,cAAAJ,IAEA1tP,EAAAijO,EAAAjjO,QAAA8+O,GAAA2O,EAAAxqB,EAAA6qB,gBACA3zP,OACA6F,EAAA2rB,WAAA3rB,EAAA7F,MAAA8oO,IAIA,OAAAjjO,EAiBA,SAAAiuP,GAAAL,EAAAC,EAAAE,GAGA,GAAA3qP,MAAAC,QAAAuqP,GAAA,CACA,IAAAjnP,KACAonP,EAAA3qP,MAAAC,QAAA0qP,SACAF,EAAAzqP,MAAAC,QAAAwqP,SACA,QAAAv1P,EAAA,EAAmBA,EAAAs1P,EAAAp1P,OAAmBF,KAEtCu1P,EAAAx2P,QAAAu2P,EAAAt1P,KAAA,GAAAy1P,EAAA12P,QAAAu2P,EAAAt1P,IAAA,IACAqO,EAAA7N,KAAA80P,EAAAt1P,IAGA,OAAAqO,EAEA,OAAAinP,EAIA,SAAA/hO,GAAA7rB,GAMAzI,KAAAijE,MAAAx6D,GA0CA,SAAAmuP,GAAAtiO,GAMAA,EAAAkgO,IAAA,EACA,IAAAA,EAAA,EAKAlgO,EAAA5qB,OAAA,SAAA6sP,GACAA,QACA,IAAAM,EAAA72P,KACA82P,EAAAD,EAAArC,IACAuC,EAAAR,EAAAS,QAAAT,EAAAS,UACA,GAAAD,EAAAD,GACA,OAAAC,EAAAD,GAGA,IAAAl0P,EAAA2zP,EAAA3zP,MAAAi0P,EAAApuP,QAAA7F,KAKA,IAAAq0P,EAAA,SAAAxuP,GACAzI,KAAAijE,MAAAx6D,IA6CA,OA3CAwuP,EAAA/2P,UAAA0J,OAAA8/B,OAAAmtN,EAAA32P,YACAC,YAAA82P,EACAA,EAAAzC,QACAyC,EAAAxuP,QAAA8+O,GACAsP,EAAApuP,QACA8tP,GAEAU,EAAA,MAAAJ,EAKAI,EAAAxuP,QAAA3F,OAmCA,SAAAo0P,GACA,IAAAp0P,EAAAo0P,EAAAzuP,QAAA3F,MACA,QAAAiH,KAAAjH,EACA2jD,GAAAywM,EAAAh3P,UAAA,SAAA6J,GArCAotP,CAAAF,GAEAA,EAAAxuP,QAAAoT,UAuCA,SAAAq7O,GACA,IAAAr7O,EAAAq7O,EAAAzuP,QAAAoT,SACA,QAAA9R,KAAA8R,EACAozO,GAAAiI,EAAAh3P,UAAA6J,EAAA8R,EAAA9R,IAzCAqtP,CAAAH,GAIAA,EAAAvtP,OAAAmtP,EAAAntP,OACAutP,EAAAtvN,MAAAkvN,EAAAlvN,MACAsvN,EAAAI,IAAAR,EAAAQ,IAIAxW,EAAA/2O,QAAA,SAAAtG,GACAyzP,EAAAzzP,GAAAqzP,EAAArzP,KAGAZ,IACAq0P,EAAAxuP,QAAA2rB,WAAAxxB,GAAAq0P,GAMAA,EAAAf,aAAAW,EAAApuP,QACAwuP,EAAAV,gBACAU,EAAAR,cAAA/sP,KAAiCutP,EAAAxuP,SAGjCsuP,EAAAD,GAAAG,EACAA,GAoDA,SAAAK,GAAAzsP,GACA,OAAAA,MAAA6gO,KAAAjjO,QAAA7F,MAAAiI,EAAAsgN,KAGA,SAAAosC,GAAAC,EAAA50P,GACA,OAAAiJ,MAAAC,QAAA0rP,GACAA,EAAA13P,QAAA8C,IAAA,EACG,iBAAA40P,EACHA,EAAA32P,MAAA,KAAAf,QAAA8C,IAAA,IACGu8O,EAAAqY,IACHA,EAAA77L,KAAA/4D,GAMA,SAAA60P,GAAAC,EAAAtwO,GACA,IAAAu4N,EAAA+X,EAAA/X,MACA91O,EAAA6tP,EAAA7tP,KACA+pP,EAAA8D,EAAA9D,OACA,QAAA7pP,KAAA41O,EAAA,CACA,IAAAgY,EAAAhY,EAAA51O,GACA,GAAA4tP,EAAA,CACA,IAAA/0P,EAAA00P,GAAAK,EAAA1T,kBACArhP,IAAAwkB,EAAAxkB,IACAg1P,GAAAjY,EAAA51O,EAAAF,EAAA+pP,KAMA,SAAAgE,GACAjY,EACA51O,EACAF,EACA06B,GAEA,IAAAszN,EAAAlY,EAAA51O,IACA8tP,GAAAtzN,GAAAszN,EAAA1sC,MAAA5mL,EAAA4mL,KACA0sC,EAAA5wC,kBAAAktC,WAEAxU,EAAA51O,GAAA,KACAtF,EAAAoF,EAAAE,IA/VA,SAAAuqB,GACAA,EAAAp0B,UAAA+iE,MAAA,SAAAx6D,GACA,IAAAs+O,EAAA/mP,KAEA+mP,EAAA+Q,KAAA9B,KAWAjP,EAAAd,QAAA,EAEAx9O,KAAAwqP,aA0CA,SAAAlM,EAAAt+O,GACA,IAAAoC,EAAAk8O,EAAA3uO,SAAAxO,OAAA8/B,OAAAq9M,EAAA5mP,YAAAsI,SAEA+qP,EAAA/qP,EAAAyqP,aACAroP,EAAA0+B,OAAA9gC,EAAA8gC,OACA1+B,EAAAqoP,aAAAM,EACA3oP,EAAAsoP,WAAA1qP,EAAA0qP,WACAtoP,EAAAuoP,QAAA3qP,EAAA2qP,QAEA,IAAA2E,EAAAvE,EAAAvP,iBACAp5O,EAAA09O,UAAAwP,EAAAxP,UACA19O,EAAAkpP,iBAAAgE,EAAAvyK,UACA36E,EAAA8oP,gBAAAoE,EAAAxvE,SACA19K,EAAAwN,cAAA0/O,EAAA5sC,IAEA1iN,EAAAhF,SACAoH,EAAApH,OAAAgF,EAAAhF,OACAoH,EAAA8M,gBAAAlP,EAAAkP,iBAvDAqgP,CAAAjR,EAAAt+O,GAEAs+O,EAAA3uO,SAAAmvO,GACAyN,GAAAjO,EAAA5mP,aACAsI,MACAs+O,GAOAA,EAAAoK,aAAApK,EAGAA,EAAA5vO,MAAA4vO,EAn9DA,SAAAA,GACA,IAAAt+O,EAAAs+O,EAAA3uO,SAGAmxB,EAAA9gC,EAAA8gC,OACA,GAAAA,IAAA9gC,EAAA8sP,SAAA,CACA,KAAAhsN,EAAAnxB,SAAAm9O,UAAAhsN,EAAA4iL,SACA5iL,IAAA4iL,QAEA5iL,EAAAmjN,UAAAnrP,KAAAwlP,GAGAA,EAAA56B,QAAA5iL,EACAw9M,EAAAkR,MAAA1uN,IAAA0uN,MAAAlR,EAEAA,EAAA2F,aACA3F,EAAAtoO,SAEAsoO,EAAAqG,SAAA,KACArG,EAAAuF,UAAA,KACAvF,EAAA0F,iBAAA,EACA1F,EAAAsG,YAAA,EACAtG,EAAAjpO,cAAA,EACAipO,EAAAsH,mBAAA,EA67DA6J,CAAAnR,GAnqEA,SAAAA,GACAA,EAAA/hK,QAAAp7E,OAAA8/B,OAAA,MACAq9M,EAAA6F,eAAA,EAEA,IAAApnK,EAAAuhK,EAAA3uO,SAAA27O,iBACAvuK,GACAomK,GAAA7E,EAAAvhK,GA8pEA2yK,CAAApR,GAnJA,SAAAA,GACAA,EAAA6M,OAAA,KACA7M,EAAAkK,aAAA,KACA,IAAAxoP,EAAAs+O,EAAA3uO,SACAo7O,EAAAzM,EAAA50K,OAAA1pE,EAAAyqP,aACAiC,EAAA3B,KAAA1lM,QACAi5L,EAAAjuO,OAAAgzO,GAAArjP,EAAAkrP,gBAAAwB,GACApO,EAAAiJ,aAAApR,EAKAmI,EAAA7vO,GAAA,SAAA3B,EAAAC,EAAA0qD,EAAAzxC,GAAiC,OAAA3e,GAAAi3O,EAAAxxO,EAAAC,EAAA0qD,EAAAzxC,GAAA,IAGjCs4N,EAAA9vO,eAAA,SAAA1B,EAAAC,EAAA0qD,EAAAzxC,GAA6C,OAAA3e,GAAAi3O,EAAAxxO,EAAAC,EAAA0qD,EAAAzxC,GAAA,IAI7C,IAAA2pO,EAAA5E,KAAA1iP,KAWAo1O,GAAAa,EAAA,SAAAqR,KAAA/gP,OAAAunO,EAAA,SACAsH,GAAAa,EAAA,aAAAt+O,EAAAsrP,kBAAAnV,EAAA,SAqHAyZ,CAAAtR,GACA4F,GAAA5F,EAAA,gBAl+BA,SAAAA,GACA,IAAAh2O,EAAAw+O,GAAAxI,EAAA3uO,SAAAi7D,OAAA0zK,GACAh2O,IACA20O,IAAA,GACA97O,OAAAC,KAAAkH,GAAAjH,QAAA,SAAAC,GAYAm8O,GAAAa,EAAAh9O,EAAAgH,EAAAhH,MAGA27O,IAAA,IAg9BA4S,CAAAvR,GACAyH,GAAAzH,GA7+BA,SAAAA,GACA,IAAAM,EAAAN,EAAA3uO,SAAAivO,QACAA,IACAN,EAAA0I,UAAA,mBAAApI,EACAA,EAAA37O,KAAAq7O,GACAM,GAy+BAkR,CAAAxR,GACA4F,GAAA5F,EAAA,WASAA,EAAA3uO,SAAA3X,IACAsmP,EAAAxgC,OAAAwgC,EAAA3uO,SAAA3X,KA4FA+3P,CAAAlkO,IAtoCA,SAAAA,GAIA,IAAAmkO,GACAz0P,IAAA,WAA6B,OAAAhE,KAAAic,QAC7By8O,GACA10P,IAAA,WAA8B,OAAAhE,KAAA4oP,SAa9Bh/O,OAAAwB,eAAAkpB,EAAAp0B,UAAA,QAAAu4P,GACA7uP,OAAAwB,eAAAkpB,EAAAp0B,UAAA,SAAAw4P,GAEApkO,EAAAp0B,UAAAy4P,KAAA3zM,GACA1wB,EAAAp0B,UAAA04P,QAAArS,GAEAjyN,EAAAp0B,UAAAof,OAAA,SACAmuO,EACAnmL,EACA7+D,GAGA,GAAAy2O,EAAA53K,GACA,OAAA6nL,GAFAnvP,KAEAytP,EAAAnmL,EAAA7+D,IAEAA,SACAklP,MAAA,EACA,IAAAxuO,EAAA,IAAAquO,GANAxtP,KAMAytP,EAAAnmL,EAAA7+D,GAIA,OAHAA,EAAAisM,WACAptI,EAAA57D,KARA1L,KAQAmf,EAAA5X,OAEA,WACA4X,EAAAivO,aA6lCAyK,CAAAvkO,IA/uEA,SAAAA,GACA,IAAAwkO,EAAA,SACAxkO,EAAAp0B,UAAA+jL,IAAA,SAAA1sH,EAAAtrD,GAIA,GAAAJ,MAAAC,QAAAyrD,GACA,QAAAx2D,EAAA,EAAAC,EAAAu2D,EAAAt2D,OAAuCF,EAAAC,EAAOD,IAJ9Cf,KAKAikL,IAAA1sH,EAAAx2D,GAAAkL,QAHAjM,KAMAglF,QAAAztB,KANAv3D,KAMAglF,QAAAztB,QAAAh2D,KAAA0K,GAGA6sP,EAAAn9L,KAAApE,KATAv3D,KAUA4sP,eAAA,GAGA,OAbA5sP,MAgBAs0B,EAAAp0B,UAAAo1N,MAAA,SAAA/9J,EAAAtrD,GACA,IAAA86O,EAAA/mP,KACA,SAAA0f,IACAqnO,EAAA4E,KAAAp0L,EAAA73C,GACAzT,EAAAM,MAAAw6O,EAAAjiP,WAIA,OAFA4a,EAAAzT,KACA86O,EAAA9iE,IAAA1sH,EAAA73C,GACAqnO,GAGAzyN,EAAAp0B,UAAAyrP,KAAA,SAAAp0L,EAAAtrD,GACA,IAEA86O,EAAA/mP,KAEA,IAAA8E,UAAA7D,OAEA,OADA8lP,EAAA/hK,QAAAp7E,OAAA8/B,OAAA,MACAq9M,EAGA,GAAAl7O,MAAAC,QAAAyrD,GAAA,CACA,QAAAx2D,EAAA,EAAAC,EAAAu2D,EAAAt2D,OAAuCF,EAAAC,EAAOD,IAV9Cf,KAWA2rP,KAAAp0L,EAAAx2D,GAAAkL,GAEA,OAAA86O,EAGA,IAAAgS,EAAAhS,EAAA/hK,QAAAztB,GACA,IAAAwhM,EACA,OAAAhS,EAEA,IAAA96O,EAEA,OADA86O,EAAA/hK,QAAAztB,GAAA,KACAwvL,EAEA,GAAA96O,EAIA,IAFA,IAAAq7D,EACA0xL,EAAAD,EAAA93P,OACA+3P,KAEA,IADA1xL,EAAAyxL,EAAAC,MACA/sP,GAAAq7D,EAAAr7D,OAAA,CACA8sP,EAAAz3P,OAAA03P,EAAA,GACA,MAIA,OAAAjS,GAGAzyN,EAAAp0B,UAAA8d,MAAA,SAAAu5C,GACA,IAAAwvL,EAAA/mP,KAaA+4P,EAAAhS,EAAA/hK,QAAAztB,GACA,GAAAwhM,EAAA,CACAA,IAAA93P,OAAA,EAAA0K,EAAAotP,KAEA,IADA,IAAA3sP,EAAAT,EAAA7G,UAAA,GACA/D,EAAA,EAAAC,EAAA+3P,EAAA93P,OAAqCF,EAAAC,EAAOD,IAC5C,IACAg4P,EAAAh4P,GAAAwL,MAAAw6O,EAAA36O,GACS,MAAAjI,GACT8kP,GAAA9kP,EAAA4iP,EAAA,sBAAAxvL,EAAA,MAIA,OAAAwvL,GA8oEAkS,CAAA3kO,IAziEA,SAAAA,GACAA,EAAAp0B,UAAAosE,QAAA,SAAAw6I,EAAA6rC,GACA,IAAA5L,EAAA/mP,KACA+mP,EAAAsG,YACAV,GAAA5F,EAAA,gBAEA,IAAAzuE,EAAAyuE,EAAArqO,IACAw8O,EAAAnS,EAAA6M,OACAuF,EAAA/M,GACAA,GAAArF,EACAA,EAAA6M,OAAA9sC,EAGAoyC,EAYAnS,EAAArqO,IAAAqqO,EAAAqS,UAAAF,EAAApyC,IAVAigC,EAAArqO,IAAAqqO,EAAAqS,UACArS,EAAArqO,IAAAoqM,EAAA6rC,GAAA,EACA5L,EAAA3uO,SAAA+6O,WACApM,EAAA3uO,SAAAg7O,SAIArM,EAAA3uO,SAAA+6O,WAAApM,EAAA3uO,SAAAg7O,QAAA,MAKAhH,GAAA+M,EAEA7gF,IACAA,EAAA+gF,QAAA,MAEAtS,EAAArqO,MACAqqO,EAAArqO,IAAA28O,QAAAtS,GAGAA,EAAA50K,QAAA40K,EAAA56B,SAAA46B,EAAA50K,SAAA40K,EAAA56B,QAAAynC,SACA7M,EAAA56B,QAAAzvM,IAAAqqO,EAAArqO,MAMA4X,EAAAp0B,UAAA8zP,aAAA,WACAh0P,KACAotP,UADAptP,KAEAotP,SAAA7wM,UAIAjoB,EAAAp0B,UAAAi0P,SAAA,WACA,IAAApN,EAAA/mP,KACA,IAAA+mP,EAAAsH,kBAAA,CAGA1B,GAAA5F,EAAA,iBACAA,EAAAsH,mBAAA,EAEA,IAAA9kN,EAAAw9M,EAAA56B,SACA5iL,KAAA8kN,mBAAAtH,EAAA3uO,SAAAm9O,UACA9wP,EAAA8kC,EAAAmjN,UAAA3F,GAGAA,EAAAqG,UACArG,EAAAqG,SAAAgB,WAGA,IADA,IAAArtP,EAAAgmP,EAAA7nO,UAAAje,OACAF,KACAgmP,EAAA7nO,UAAAne,GAAAqtP,WAIArH,EAAA9qO,MAAAqpO,QACAyB,EAAA9qO,MAAAqpO,OAAAM,UAGAmB,EAAAjpO,cAAA,EAEAipO,EAAAqS,UAAArS,EAAA6M,OAAA,MAEAjH,GAAA5F,EAAA,aAEAA,EAAA4E,OAEA5E,EAAArqO,MACAqqO,EAAArqO,IAAA28O,QAAA,MAGAtS,EAAA50K,SACA40K,EAAA50K,OAAA5oC,OAAA,QAi9DA+vN,CAAAhlO,IA/NA,SAAAA,GAEAk9N,GAAAl9N,EAAAp0B,WAEAo0B,EAAAp0B,UAAAqc,UAAA,SAAAtQ,GACA,OAAA4sE,GAAA5sE,EAAAjM,OAGAs0B,EAAAp0B,UAAAq5P,QAAA,WACA,IAqBAzyC,EArBAigC,EAAA/mP,KACA4Y,EAAAmuO,EAAA3uO,SACA3U,EAAAmV,EAAAnV,OACAyvP,EAAAt6O,EAAAs6O,aAUAA,IACAnM,EAAAiJ,aAAAkD,EAAApiP,KAAAyhP,aAAA3T,GAKAmI,EAAA50K,OAAA+gL,EAGA,IACApsC,EAAArjN,EAAAiI,KAAAq7O,EAAAoK,aAAApK,EAAA9vO,gBACK,MAAA9S,GACL8kP,GAAA9kP,EAAA4iP,EAAA,UAgBAjgC,EAAAigC,EAAA6M,OAgBA,OAZA9sC,aAAAk9B,KAQAl9B,EAAAi+B,MAGAj+B,EAAAv9K,OAAA2pN,EACApsC,GA8JA0yC,CAAAllO,IA4MA,IAAAmlO,IAAAtoP,OAAA7I,OAAAuD,OAmFA6tP,IACAC,WAjFA/2P,KAAA,aACA2yP,UAAA,EAEAzyP,OACAsrN,QAAAqrC,GACAG,QAAAH,GACAxxP,KAAAkJ,OAAA4J,SAGA+E,QAAA,WACA9f,KAAA2/O,MAAA/1O,OAAA8/B,OAAA,MACA1pC,KAAA6J,SAGA09M,UAAA,WAGA,QAAAx9M,KAFA/J,KAEA2/O,MACAiY,GAHA53P,KAGA2/O,MAAA51O,EAHA/J,KAGA6J,OAIAkW,QAAA,WACA,IAAAgrC,EAAA/qD,KAEAA,KAAAsf,OAAA,mBAAA/R,GACAkqP,GAAA1sM,EAAA,SAAAnoD,GAA0C,OAAA20P,GAAAhqP,EAAA3K,OAE1C5C,KAAAsf,OAAA,mBAAA/R,GACAkqP,GAAA1sM,EAAA,SAAAnoD,GAA0C,OAAA20P,GAAAhqP,EAAA3K,QAI1Ca,OAAA,WACA,IAAAuoP,EAAAhsP,KAAA8Y,OAAAC,QACA+tM,EAAAC,GAAAilC,GACA/H,EAAAn9B,KAAAm9B,iBACA,GAAAA,EAAA,CAEA,IAAArhP,EAAA00P,GAAArT,GAEA71B,EADApuN,KACAouN,QACAwrC,EAFA55P,KAEA45P,QACA,GAEAxrC,KAAAxrN,IAAA20P,GAAAnpC,EAAAxrN,KAEAg3P,GAAAh3P,GAAA20P,GAAAqC,EAAAh3P,GAEA,OAAAkkN,EAGA,IACA64B,EADA3/O,KACA2/O,MACA91O,EAFA7J,KAEA6J,KACAE,EAAA,MAAA+8M,EAAA/8M,IAGAk6O,EAAAvY,KAAA8oB,KAAAvQ,EAAA94B,IAAA,KAAA84B,EAAA,QACAn9B,EAAA/8M,IACA41O,EAAA51O,IACA+8M,EAAAG,kBAAA04B,EAAA51O,GAAAk9M,kBAEAxiN,EAAAoF,EAAAE,GACAF,EAAAtI,KAAAwI,KAEA41O,EAAA51O,GAAA+8M,EACAj9M,EAAAtI,KAAAwI,GAEA/J,KAAAiI,KAAA4B,EAAA5I,OAAA24E,SAAA55E,KAAAiI,MACA2vP,GAAAjY,EAAA91O,EAAA,GAAAA,EAAA7J,KAAA4zP,SAIA9sC,EAAAh2M,KAAAgiP,WAAA,EAEA,OAAAhsC,GAAAklC,KAAA,OAUA,SAAA13N,GAEA,IAAAulO,GACA71P,IAAA,WAA+B,OAAAg8C,IAQ/Bp2C,OAAAwB,eAAAkpB,EAAA,SAAAulO,GAKAvlO,EAAAg/I,MACA59J,QACAhM,SACA69O,gBACArB,mBAGA5xN,EAAA0wB,OACA1wB,EAAA2wB,OAAAshM,GACAjyN,EAAAukD,YAEAvkD,EAAA7rB,QAAAmB,OAAA8/B,OAAA,MACAm3M,EAAA/2O,QAAA,SAAAtG,GACA8wB,EAAA7rB,QAAAjF,EAAA,KAAAoG,OAAA8/B,OAAA,QAKApV,EAAA7rB,QAAA8rP,MAAAjgO,EAEA5qB,EAAA4qB,EAAA7rB,QAAA2rB,WAAAslO,IArUA,SAAAplO,GACAA,EAAA+iO,IAAA,SAAAyC,GACA,IAAAC,EAAA/5P,KAAAg6P,oBAAAh6P,KAAAg6P,sBACA,GAAAD,EAAAj6P,QAAAg6P,IAAA,EACA,OAAA95P,KAIA,IAAAoM,EAAAT,EAAA7G,UAAA,GAQA,OAPAsH,EAAAu2B,QAAA3iC,MACA,mBAAA85P,EAAAzlO,QACAylO,EAAAzlO,QAAA9nB,MAAAutP,EAAA1tP,GACK,mBAAA0tP,GACLA,EAAAvtP,MAAA,KAAAH,GAEA2tP,EAAAx4P,KAAAu4P,GACA95P,MAuTAi6P,CAAA3lO,GAjTA,SAAAA,GACAA,EAAAqT,MAAA,SAAAA,GAEA,OADA3nC,KAAAyI,QAAA8+O,GAAAvnP,KAAAyI,QAAAk/B,GACA3nC,MA+SAk6P,CAAA5lO,GACAsiO,GAAAtiO,GA9MA,SAAAA,GAIAusN,EAAA/2O,QAAA,SAAAtG,GACA8wB,EAAA9wB,GAAA,SACA9B,EACAy4P,GAEA,OAAAA,GAOA,cAAA32P,GAAA07O,EAAAib,KACAA,EAAAv3P,KAAAu3P,EAAAv3P,MAAAlB,EACAy4P,EAAAn6P,KAAAyI,QAAA8rP,MAAA7qP,OAAAywP,IAEA,cAAA32P,GAAA,mBAAA22P,IACAA,GAAwB3vP,KAAA2vP,EAAA59M,OAAA49M,IAExBn6P,KAAAyI,QAAAjF,EAAA,KAAA9B,GAAAy4P,EACAA,GAdAn6P,KAAAyI,QAAAjF,EAAA,KAAA9B,MAqMA04P,CAAA9lO,GAGA+lO,CAAA/lO,IAEA1qB,OAAAwB,eAAAkpB,GAAAp0B,UAAA,aACA8D,IAAA8+O,KAGAl5O,OAAAwB,eAAAkpB,GAAAp0B,UAAA,eACA8D,IAAA,WAEA,OAAAhE,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,cAKAxoE,OAAAwB,eAAAkpB,GAAA,2BACA/sB,MAAA0qP,KAGA39N,GAAAgoC,QAAA,SAMA,IAAAilL,GAAAjC,EAAA,eAGAgb,GAAAhb,EAAA,yCACAqC,GAAA,SAAAx2B,EAAA3nN,EAAAT,GACA,MACA,UAAAA,GAAAu3P,GAAAnvC,IAAA,WAAA3nN,GACA,aAAAT,GAAA,WAAAooN,GACA,YAAApoN,GAAA,UAAAooN,GACA,UAAApoN,GAAA,UAAAooN,GAIAovC,GAAAjb,EAAA,wCAEAkb,GAAAlb,EACA,wYAQAmb,GAAA,+BAEAC,GAAA,SAAA93P,GACA,YAAAA,EAAAs8C,OAAA,cAAAt8C,EAAAN,MAAA,MAGAq4P,GAAA,SAAA/3P,GACA,OAAA83P,GAAA93P,KAAAN,MAAA,EAAAM,EAAA3B,QAAA,IAGA25P,GAAA,SAAArtP,GACA,aAAAA,IAAA,IAAAA,GAKA,SAAAstP,GAAA/zC,GAIA,IAHA,IAAAh2M,EAAAg2M,EAAAh2M,KACAy7B,EAAAu6K,EACAg0C,EAAAh0C,EACAi4B,EAAA+b,EAAA7zC,qBACA6zC,IAAA7zC,kBAAA2sC,SACAkH,EAAAhqP,OACAA,EAAAiqP,GAAAD,EAAAhqP,SAGA,KAAAiuO,EAAAxyM,IAAAhD,SACAgD,KAAAz7B,OACAA,EAAAiqP,GAAAjqP,EAAAy7B,EAAAz7B,OAGA,OAYA,SACAsG,EACA4jP,GAEA,GAAAjc,EAAA3nO,IAAA2nO,EAAAic,GACA,OAAAjmP,GAAAqC,EAAA6jP,GAAAD,IAGA,SApBAE,CAAApqP,EAAAsG,YAAAtG,EAAAoH,OAGA,SAAA6iP,GAAAzuN,EAAA/C,GACA,OACAnyB,YAAArC,GAAAu3B,EAAAl1B,YAAAmyB,EAAAnyB,aACAc,MAAA6mO,EAAAzyM,EAAAp0B,QACAo0B,EAAAp0B,MAAAqxB,EAAArxB,OACAqxB,EAAArxB,OAeA,SAAAnD,GAAAQ,EAAAC,GACA,OAAAD,EAAAC,EAAAD,EAAA,IAAAC,EAAAD,EAAAC,GAAA,GAGA,SAAAylP,GAAA1zP,GACA,OAAAsE,MAAAC,QAAAvE,GAaA,SAAAA,GAGA,IAFA,IACA4zP,EADA/rP,EAAA,GAEArO,EAAA,EAAAC,EAAAuG,EAAAtG,OAAmCF,EAAAC,EAAOD,IAC1Cg+O,EAAAoc,EAAAF,GAAA1zP,EAAAxG,MAAA,KAAAo6P,IACA/rP,IAAgBA,GAAA,KAChBA,GAAA+rP,GAGA,OAAA/rP,EArBAgsP,CAAA7zP,GAEA3H,EAAA2H,GAsBA,SAAAA,GACA,IAAA6H,EAAA,GACA,QAAArF,KAAAxC,EACAA,EAAAwC,KACAqF,IAAgBA,GAAA,KAChBA,GAAArF,GAGA,OAAAqF,EA7BAisP,CAAA9zP,GAEA,iBAAAA,EACAA,EAGA,GA4BA,IAAA+zP,IACAC,IAAA,6BACAC,KAAA,sCAGAC,GAAAnc,EACA,snBAeAoc,GAAApc,EACA,kNAGA,GAKAgC,GAAA,SAAAn2B,GACA,OAAAswC,GAAAtwC,IAAAuwC,GAAAvwC,IAGA,SAAAs2B,GAAAt2B,GACA,OAAAuwC,GAAAvwC,GACA,MAIA,SAAAA,EACA,YADA,EAKA,IAAAwwC,GAAA/xP,OAAA8/B,OAAA,MA0BA,IAAAkyN,GAAAtc,EAAA,6CAOA,SAAAvpL,GAAAt1D,GACA,oBAAAA,EAAA,CACA,IAAAiqB,EAAA7a,SAAA0zC,cAAA9iD,GACA,OAAAiqB,GAIA7a,SAAAC,cAAA,OAIA,OAAArP,EA+DA,IAAAo7P,GAAAjyP,OAAAi1O,QACA/uO,cA1DA,SAAAiiC,EAAA+0K,GACA,IAAA9R,EAAAnlM,SAAAC,cAAAiiC,GACA,iBAAAA,EACAijK,GAGA8R,EAAAh2M,MAAAg2M,EAAAh2M,KAAAuG,YAAA3J,IAAAo5M,EAAAh2M,KAAAuG,MAAA0rK,UACAiyB,EAAAtuK,aAAA,uBAEAsuK,IAkDA8mD,gBA/CA,SAAAC,EAAAhqN,GACA,OAAAliC,SAAAisP,gBAAAR,GAAAS,GAAAhqN,IA+CA8C,eA5CA,SAAAxD,GACA,OAAAxhC,SAAAglC,eAAAxD,IA4CA2qN,cAzCA,SAAA3qN,GACA,OAAAxhC,SAAAmsP,cAAA3qN,IAyCA6nI,aAtCA,SAAA3sI,EAAA0vN,EAAAC,GACA3vN,EAAA2sI,aAAA+iF,EAAAC,IAsCA1vN,YAnCA,SAAA0sB,EAAA5sB,GACA4sB,EAAA1sB,YAAAF,IAmCAr8B,YAhCA,SAAAipD,EAAA5sB,GACA4sB,EAAAjpD,YAAAq8B,IAgCAC,WA7BA,SAAA2sB,GACA,OAAAA,EAAA3sB,YA6BAyK,YA1BA,SAAAkiB,GACA,OAAAA,EAAAliB,aA0BAjF,QAvBA,SAAAmnB,GACA,OAAAA,EAAAnnB,SAuBAoqN,eApBA,SAAAjjM,EAAA7nB,GACA6nB,EAAAvY,YAAAtP,GAoBA+qN,cAjBA,SAAAljM,EAAAyY,GACAzY,EAAAxyB,aAAAirC,EAAA,OAqBA/4D,IACA8wB,OAAA,SAAAvrB,EAAA2oM,GACAu1C,GAAAv1C,IAEAvqK,OAAA,SAAAg3M,EAAAzsC,GACAysC,EAAAziP,KAAA8H,MAAAkuM,EAAAh2M,KAAA8H,MACAyjP,GAAA9I,GAAA,GACA8I,GAAAv1C,KAGA3nK,QAAA,SAAA2nK,GACAu1C,GAAAv1C,GAAA,KAIA,SAAAu1C,GAAAv1C,EAAAw1C,GACA,IAAAvyP,EAAA+8M,EAAAh2M,KAAA8H,IACA,GAAAmmO,EAAAh1O,GAAA,CAEA,IAAAg9O,EAAAjgC,EAAAh5J,QACAl1C,EAAAkuM,EAAAG,mBAAAH,EAAA9R,IACAorB,EAAA2mB,EAAAtoO,MACA69O,EACAzwP,MAAAC,QAAAs0N,EAAAr2N,IACAtF,EAAA27N,EAAAr2N,GAAA6O,GACKwnN,EAAAr2N,KAAA6O,IACLwnN,EAAAr2N,QAAA2D,GAGAo5M,EAAAh2M,KAAAyrP,SACA1wP,MAAAC,QAAAs0N,EAAAr2N,IAEOq2N,EAAAr2N,GAAAjK,QAAA8Y,GAAA,GAEPwnN,EAAAr2N,GAAAxI,KAAAqX,GAHAwnN,EAAAr2N,IAAA6O,GAMAwnN,EAAAr2N,GAAA6O,GAiBA,IAAA4jP,GAAA,IAAAxY,GAAA,UAEAkF,IAAA,iDAEA,SAAAuT,GAAAlnP,EAAAC,GACA,OACAD,EAAAxL,MAAAyL,EAAAzL,MAEAwL,EAAA41M,MAAA31M,EAAA21M,KACA51M,EAAAmvO,YAAAlvO,EAAAkvO,WACA3F,EAAAxpO,EAAAzE,QAAAiuO,EAAAvpO,EAAA1E,OAWA,SAAAyE,EAAAC,GACA,aAAAD,EAAA41M,IAA0B,SAC1B,IAAApqN,EACA27P,EAAA3d,EAAAh+O,EAAAwU,EAAAzE,OAAAiuO,EAAAh+O,IAAAsW,QAAAtW,EAAAyC,KACAm5P,EAAA5d,EAAAh+O,EAAAyU,EAAA1E,OAAAiuO,EAAAh+O,IAAAsW,QAAAtW,EAAAyC,KACA,OAAAk5P,IAAAC,GAAAf,GAAAc,IAAAd,GAAAe,GAfAC,CAAArnP,EAAAC,IAEAwpO,EAAAzpO,EAAAuvO,qBACAvvO,EAAA2uO,eAAA1uO,EAAA0uO,cACApF,EAAAtpO,EAAA0uO,aAAAnpK,QAcA,SAAA8hL,GAAAt0E,EAAAu0E,EAAAC,GACA,IAAAh8P,EAAAgJ,EACA4G,KACA,IAAA5P,EAAA+7P,EAAoB/7P,GAAAg8P,IAAah8P,EAEjCg+O,EADAh1O,EAAAw+K,EAAAxnL,GAAAgJ,OACqB4G,EAAA5G,GAAAhJ,GAErB,OAAA4P,EAqsBA,IAAAyzK,IACA16I,OAAAszN,GACAzgN,OAAAygN,GACA79M,QAAA,SAAA2nK,GACAk2C,GAAAl2C,EAAA01C,MAIA,SAAAQ,GAAAzJ,EAAAzsC,IACAysC,EAAAziP,KAAAszK,YAAA0iC,EAAAh2M,KAAAszK,aAKA,SAAAmvE,EAAAzsC,GACA,IAQA/8M,EAAAkzP,EAAA9hO,EARA+hO,EAAA3J,IAAAiJ,GACAW,EAAAr2C,IAAA01C,GACAY,EAAAC,GAAA9J,EAAAziP,KAAAszK,WAAAmvE,EAAAzlM,SACAwvM,EAAAD,GAAAv2C,EAAAh2M,KAAAszK,WAAA0iC,EAAAh5J,SAEAyvM,KACAC,KAGA,IAAAzzP,KAAAuzP,EACAL,EAAAG,EAAArzP,GACAoxB,EAAAmiO,EAAAvzP,GACAkzP,GAQA9hO,EAAA2qM,SAAAm3B,EAAA11P,MACAk2P,GAAAtiO,EAAA,SAAA2rL,EAAAysC,GACAp4N,EAAA2mN,KAAA3mN,EAAA2mN,IAAA4b,kBACAF,EAAAj8P,KAAA45B,KATAsiO,GAAAtiO,EAAA,OAAA2rL,EAAAysC,GACAp4N,EAAA2mN,KAAA3mN,EAAA2mN,IAAAsD,UACAmY,EAAAh8P,KAAA45B,IAYA,GAAAoiO,EAAAt8P,OAAA,CACA,IAAA08P,EAAA,WACA,QAAA58P,EAAA,EAAqBA,EAAAw8P,EAAAt8P,OAA2BF,IAChD08P,GAAAF,EAAAx8P,GAAA,WAAA+lN,EAAAysC,IAGA2J,EACAvS,GAAA7jC,EAAA,SAAA62C,GAEAA,IAIAH,EAAAv8P,QACA0pP,GAAA7jC,EAAA,uBACA,QAAA/lN,EAAA,EAAqBA,EAAAy8P,EAAAv8P,OAA8BF,IACnD08P,GAAAD,EAAAz8P,GAAA,mBAAA+lN,EAAAysC,KAKA,IAAA2J,EACA,IAAAnzP,KAAAqzP,EACAE,EAAAvzP,IAEA0zP,GAAAL,EAAArzP,GAAA,SAAAwpP,IAAA4J,GA1DA7wL,CAAAinL,EAAAzsC,GAgEA,IAAA82C,GAAAh0P,OAAA8/B,OAAA,MAEA,SAAA2zN,GACA3V,EACAX,GAEA,IAKAhmP,EAAAo6B,EALA/rB,EAAAxF,OAAA8/B,OAAA,MACA,IAAAg+M,EAEA,OAAAt4O,EAGA,IAAArO,EAAA,EAAaA,EAAA2mP,EAAAzmP,OAAiBF,KAC9Bo6B,EAAAusN,EAAA3mP,IACAw6C,YAEApgB,EAAAogB,UAAAqiN,IAEAxuP,EAAAyuP,GAAA1iO,MACAA,EAAA2mN,IAAAkG,GAAAjB,EAAA3uO,SAAA,aAAA+iB,EAAAv4B,MAGA,OAAAwM,EAGA,SAAAyuP,GAAA1iO,GACA,OAAAA,EAAAkpJ,SAAAlpJ,EAAA,SAAAvxB,OAAAC,KAAAsxB,EAAAogB,eAA4En1C,KAAA,KAG5E,SAAAq3P,GAAAtiO,EAAA42C,EAAA+0I,EAAAysC,EAAA4J,GACA,IAAAlxP,EAAAkvB,EAAA2mN,KAAA3mN,EAAA2mN,IAAA/vK,GACA,GAAA9lE,EACA,IACAA,EAAA66M,EAAA9R,IAAA75K,EAAA2rL,EAAAysC,EAAA4J,GACK,MAAAh5P,GACL8kP,GAAA9kP,EAAA2iN,EAAAh5J,QAAA,aAAA3yB,EAAA,SAAA42C,EAAA,UAKA,IAAA+rL,IACAllP,GACAwrK,IAKA,SAAA25E,GAAAxK,EAAAzsC,GACA,IAAAj8M,EAAAi8M,EAAAm9B,iBACA,KAAAlF,EAAAl0O,KAAA,IAAAA,EAAA6gO,KAAAjjO,QAAA67N,cAGAwa,EAAAyU,EAAAziP,KAAAuG,QAAAynO,EAAAh4B,EAAAh2M,KAAAuG,QAAA,CAGA,IAAAtN,EAAA4b,EACAqvL,EAAA8R,EAAA9R,IACAgpD,EAAAzK,EAAAziP,KAAAuG,UACAA,EAAAyvM,EAAAh2M,KAAAuG,UAMA,IAAAtN,KAJAg1O,EAAA1nO,EAAAiuO,UACAjuO,EAAAyvM,EAAAh2M,KAAAuG,MAAA3N,KAAwC2N,IAGxCA,EACAsO,EAAAtO,EAAAtN,GACAi0P,EAAAj0P,KACA4b,GACAs4O,GAAAjpD,EAAAjrM,EAAA4b,GASA,IAAA5b,KAHAy4O,GAAAE,IAAArrO,EAAA9P,QAAAy2P,EAAAz2P,OACA02P,GAAAjpD,EAAA,QAAA39L,EAAA9P,OAEAy2P,EACAlf,EAAAznO,EAAAtN,MACA2wP,GAAA3wP,GACAirM,EAAAkpD,kBAAAzD,GAAAE,GAAA5wP,IACOwwP,GAAAxwP,IACPirM,EAAA51J,gBAAAr1C,KAMA,SAAAk0P,GAAAx9P,EAAAsJ,EAAAxC,GACA9G,EAAAsxC,QAAAjyC,QAAA,QACAq+P,GAAA19P,EAAAsJ,EAAAxC,GACGizP,GAAAzwP,GAGH6wP,GAAArzP,GACA9G,EAAA2+C,gBAAAr1C,IAIAxC,EAAA,oBAAAwC,GAAA,UAAAtJ,EAAAsxC,QACA,OACAhoC,EACAtJ,EAAAimC,aAAA38B,EAAAxC,IAEGgzP,GAAAxwP,GACHtJ,EAAAimC,aAAA38B,EAAA6wP,GAAArzP,IAAA,UAAAA,EAAA,gBACGmzP,GAAA3wP,GACH6wP,GAAArzP,GACA9G,EAAAy9P,kBAAAzD,GAAAE,GAAA5wP,IAEAtJ,EAAA29P,eAAA3D,GAAA1wP,EAAAxC,GAGA42P,GAAA19P,EAAAsJ,EAAAxC,GAIA,SAAA42P,GAAA19P,EAAAsJ,EAAAxC,GACA,GAAAqzP,GAAArzP,GACA9G,EAAA2+C,gBAAAr1C,OACG,CAKH,GACAy4O,IAAAC,GACA,aAAAhiP,EAAAsxC,SACA,gBAAAhoC,IAAAtJ,EAAA49P,OACA,CACA,IAAAC,EAAA,SAAAn6P,GACAA,EAAAyoN,2BACAnsN,EAAAqe,oBAAA,QAAAw/O,IAEA79P,EAAAme,iBAAA,QAAA0/O,GAEA79P,EAAA49P,QAAA,EAEA59P,EAAAimC,aAAA38B,EAAAxC,IAIA,IAAA8P,IACAqyB,OAAAq0N,GACAxhN,OAAAwhN,IAKA,SAAAQ,GAAAhL,EAAAzsC,GACA,IAAArmN,EAAAqmN,EAAA9R,IACAlkM,EAAAg2M,EAAAh2M,KACA4vB,EAAA6yN,EAAAziP,KACA,KACAguO,EAAAhuO,EAAAsG,cACA0nO,EAAAhuO,EAAAoH,SACA4mO,EAAAp+M,IACAo+M,EAAAp+M,EAAAtpB,cACA0nO,EAAAp+M,EAAAxoB,SALA,CAYA,IAAAsmP,EAAA3D,GAAA/zC,GAGA23C,EAAAh+P,EAAAi+P,mBACA3f,EAAA0f,KACAD,EAAAzpP,GAAAypP,EAAAvD,GAAAwD,KAIAD,IAAA/9P,EAAAk+P,aACAl+P,EAAAimC,aAAA,QAAA83N,GACA/9P,EAAAk+P,WAAAH,IAIA,IAyUA38P,GACAwuC,GACAuuN,GACAC,GACAC,GACAC,GA9UAC,IACAt1N,OAAA60N,GACAhiN,OAAAgiN,IAKAU,GAAA,gBAEA,SAAAC,GAAAjmI,GACA,IAQA/4D,EAAAZ,EAAAv+D,EAAAqe,EAAA+/O,EARAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EACAC,EAAA,EAGA,IAAA5+P,EAAA,EAAaA,EAAAk4H,EAAAh4H,OAAgBF,IAG7B,GAFAu+D,EAAAY,EACAA,EAAA+4D,EAAAz3B,WAAAzgG,GACAq+P,EACA,KAAAl/L,GAAA,KAAAZ,IAAwC8/L,GAAA,QACnC,GAAAC,EACL,KAAAn/L,GAAA,KAAAZ,IAAwC+/L,GAAA,QACnC,GAAAC,EACL,KAAAp/L,GAAA,KAAAZ,IAAwCggM,GAAA,QACnC,GAAAC,EACL,KAAAr/L,GAAA,KAAAZ,IAAwCigM,GAAA,QACnC,GACL,MAAAr/L,GACA,MAAA+4D,EAAAz3B,WAAAzgG,EAAA,IACA,MAAAk4H,EAAAz3B,WAAAzgG,EAAA,IACAy+P,GAAAC,GAAAC,EASK,CACL,OAAAx/L,GACA,QAAAm/L,GAAA,EAAmC,MACnC,QAAAD,GAAA,EAAmC,MACnC,QAAAE,GAAA,EAA2C,MAC3C,QAAAI,IAA2B,MAC3B,QAAAA,IAA2B,MAC3B,QAAAD,IAA4B,MAC5B,QAAAA,IAA4B,MAC5B,SAAAD,IAA2B,MAC3B,SAAAA,IAEA,QAAAt/L,EAAA,CAIA,IAHA,IAAAhtC,EAAAnyB,EAAA,EACAmwC,OAAA,EAEche,GAAA,GAEd,OADAge,EAAA+nF,EAAA/5E,OAAAhsB,IADsBA,KAItBge,GAAA+tN,GAAAtjM,KAAAzqB,KACAquN,GAAA,cA5BA7xP,IAAA0R,GAEAugP,EAAA5+P,EAAA,EACAqe,EAAA65G,EAAA32H,MAAA,EAAAvB,GAAAygF,QAEAo+K,IAmCA,SAAAA,KACAT,WAAA59P,KAAA03H,EAAA32H,MAAAq9P,EAAA5+P,GAAAygF,QACAm+K,EAAA5+P,EAAA,EAGA,QAXA2M,IAAA0R,EACAA,EAAA65G,EAAA32H,MAAA,EAAAvB,GAAAygF,OACG,IAAAm+K,GACHC,IAQAT,EACA,IAAAp+P,EAAA,EAAeA,EAAAo+P,EAAAl+P,OAAoBF,IACnCqe,EAAAygP,GAAAzgP,EAAA+/O,EAAAp+P,IAIA,OAAAqe,EAGA,SAAAygP,GAAA5mI,EAAA7xG,GACA,IAAArmB,EAAAqmB,EAAAtnB,QAAA,KACA,GAAAiB,EAAA,EAEA,aAAAqmB,EAAA,MAAA6xG,EAAA,IAEA,IAAAr2H,EAAAwkB,EAAA9kB,MAAA,EAAAvB,GACAqL,EAAAgb,EAAA9kB,MAAAvB,EAAA,GACA,aAAA6B,EAAA,MAAAq2H,GAAA,MAAA7sH,EAAA,IAAAA,KAMA,SAAA0zP,GAAAxkL,GACA7lE,QAAAslE,MAAA,mBAAAO,GAGA,SAAAykL,GACAhvL,EACAhnE,GAEA,OAAAgnE,EACAA,EAAApgE,IAAA,SAAAgc,GAAgC,OAAAA,EAAA5iB,KAAiBqd,OAAA,SAAAjJ,GAAuB,OAAAA,OAIxE,SAAA6hP,GAAAv/P,EAAAmC,EAAA2E,IACA9G,EAAAqC,QAAArC,EAAAqC,WAAAvB,MAAsCqB,OAAA2E,UACtC9G,EAAAkzE,OAAA,EAGA,SAAAssL,GAAAx/P,EAAAmC,EAAA2E,IACA9G,EAAA4W,QAAA5W,EAAA4W,WAAA9V,MAAsCqB,OAAA2E,UACtC9G,EAAAkzE,OAAA,EAIA,SAAAusL,GAAAz/P,EAAAmC,EAAA2E,GACA9G,EAAA0/P,SAAAv9P,GAAA2E,EACA9G,EAAA2/P,UAAA7+P,MAAqBqB,OAAA2E,UAGrB,SAAA84P,GACA5/P,EACAmC,EACAyhL,EACA98K,EACA29E,EACA3pC,IAEA96C,EAAA2jL,aAAA3jL,EAAA2jL,gBAAA7iL,MAAgDqB,OAAAyhL,UAAA98K,QAAA29E,MAAA3pC,cAChD96C,EAAAkzE,OAAA,EAGA,SAAA2sL,GACA7/P,EACAmC,EACA2E,EACAg0C,EACAglN,EACA7qP,GA0CA,IAAA6D,GAxCAgiC,KAAAqjM,GAcAt4M,iBACAiV,EAAAjV,QACA1jC,EAAA,IAAAA,GAEA24C,EAAAuqC,cACAvqC,EAAAuqC,KACAljF,EAAA,IAAAA,GAGA24C,EAAA2uM,iBACA3uM,EAAA2uM,QACAtnP,EAAA,IAAAA,GAMA,UAAAA,IACA24C,EAAAz1C,OACAlD,EAAA,qBACA24C,EAAAz1C,OACKy1C,EAAA3d,SACLh7B,EAAA,YAKA24C,EAAAsvK,eACAtvK,EAAAsvK,OACAtxM,EAAA9Y,EAAA+/P,eAAA//P,EAAA+/P,kBAEAjnP,EAAA9Y,EAAA8Y,SAAA9Y,EAAA8Y,WAGA,IAAAuiI,GACAv0I,QAAAi6E,QAEAjmC,IAAAqjM,IACA9iG,EAAAvgG,aAGA,IAAA8xI,EAAA9zK,EAAA3W,GAEAiJ,MAAAC,QAAAuhL,GACAkzE,EAAAlzE,EAAA1qJ,QAAAm5G,GAAAuxC,EAAA9rL,KAAAu6I,GAEAviI,EAAA3W,GADGyqL,EACHkzE,GAAAzkH,EAAAuxC,MAAAvxC,GAEAA,EAGAr7I,EAAAkzE,OAAA,EAGA,SAAA8sL,GACAhgQ,EACAmC,EACA89P,GAEA,IAAAC,EACAC,GAAAngQ,EAAA,IAAAmC,IACAg+P,GAAAngQ,EAAA,UAAAmC,GACA,SAAA+9P,EACA,OAAAzB,GAAAyB,GACG,QAAAD,EAAA,CACH,IAAAG,EAAAD,GAAAngQ,EAAAmC,GACA,SAAAi+P,EACA,OAAA3zP,KAAAE,UAAAyzP,IASA,SAAAD,GACAngQ,EACAmC,EACAk+P,GAEA,IAAAvzP,EACA,UAAAA,EAAA9M,EAAA0/P,SAAAv9P,IAEA,IADA,IAAAiqB,EAAApsB,EAAA2/P,UACAr/P,EAAA,EAAAC,EAAA6rB,EAAA5rB,OAAoCF,EAAAC,EAAOD,IAC3C,GAAA8rB,EAAA9rB,GAAA6B,SAAA,CACAiqB,EAAAvrB,OAAAP,EAAA,GACA,MAOA,OAHA+/P,UACArgQ,EAAA0/P,SAAAv9P,GAEA2K,EAQA,SAAAwzP,GACAtgQ,EACA8G,EACAg0C,GAEA,IAAA3iC,EAAA2iC,MACAg4J,EAAA36L,EAAA26L,OAIAytD,EADA,MAFApoP,EAAA4oE,OAKAw/K,EACA,8CAIAztD,IACAytD,EAAA,MAAAA,EAAA,KAEA,IAAAC,EAAAC,GAAA35P,EAAAy5P,GAEAvgQ,EAAA82B,OACAhwB,MAAA,IAAAA,EAAA,IACA6X,WAAA,IAAA7X,EAAA,IACApF,SAAA,mBAAwD8+P,EAAA,KAOxD,SAAAC,GACA35P,EACA05P,GAEA,IAAA7xP,EAgCA,SAAA7B,GAMA,GAHAA,IAAAi0E,OACA3/E,GAAA0L,EAAAtM,OAEAsM,EAAAzN,QAAA,QAAAyN,EAAAq/B,YAAA,KAAA/qC,GAAA,EAEA,OADAg9P,GAAAtxP,EAAAq/B,YAAA,OACA,GAEAqsF,IAAA1rH,EAAAjL,MAAA,EAAAu8P,IACA90P,IAAA,IAAAwD,EAAAjL,MAAAu8P,GAAA,SAIA5lI,IAAA1rH,EACAxD,IAAA,MAKAsmC,GAAA9iC,EACAsxP,GAAAC,GAAAC,GAAA,EAEA,MAAAoC,MAGAC,GAFAxC,GAAAn6N,MAGA48N,GAAAzC,IACK,KAAAA,IACL0C,GAAA1C,IAIA,OACA3lI,IAAA1rH,EAAAjL,MAAA,EAAAw8P,IACA/0P,IAAAwD,EAAAjL,MAAAw8P,GAAA,EAAAC,KApEAwC,CAAAh6P,GACA,cAAA6H,EAAArF,IACAxC,EAAA,IAAA05P,EAEA,QAAA7xP,EAAA,SAAAA,EAAA,SAAA6xP,EAAA,IAoEA,SAAAx8N,KACA,OAAA4L,GAAAmxD,aAAAq9J,IAGA,SAAAsC,KACA,OAAAtC,IAAAh9P,GAGA,SAAAu/P,GAAAxC,GACA,YAAAA,GAAA,KAAAA,EAGA,SAAA0C,GAAA1C,GACA,IAAA4C,EAAA,EAEA,IADA1C,GAAAD,IACAsC,MAEA,GAAAC,GADAxC,EAAAn6N,MAEA48N,GAAAzC,QAKA,GAFA,KAAAA,GAAuB4C,IACvB,KAAA5C,GAAuB4C,IACvB,IAAAA,EAAA,CACAzC,GAAAF,GACA,OAKA,SAAAwC,GAAAzC,GAEA,IADA,IAAA6C,EAAA7C,GACAuC,OACAvC,EAAAn6N,QACAg9N,KAYA,IA6LAC,GA7LAC,GAAA,MACAC,GAAA,MAwMA,SAAAC,GACAtqM,EACA97C,EACA0uO,EACA7jN,EACA4jN,GA/nKA,IAAAj+O,EAioKAwP,GAjoKAxP,EAioKAwP,GAhoKAqmP,YAAA71P,EAAA61P,UAAA,WACApY,IAAA,EACA,IAAAt6O,EAAAnD,EAAAM,MAAA,KAAAzH,WAEA,OADA4kP,IAAA,EACAt6O,IA6nKA+6O,IAAgB1uO,EAlBhB,SAAAA,EAAA87C,EAAAjxB,GACA,IAAAm/H,EAAAi8F,GACA,gBAAAK,IAEA,OADAtmP,EAAAlP,MAAA,KAAAzH,YAEAk9P,GAAAzqM,EAAAwqM,EAAAz7N,EAAAm/H,IAagBw8F,CAAAxmP,EAAA87C,EAAAjxB,IAChBo7N,GAAA9iP,iBACA24C,EACA97C,EACAonO,IACSv8M,UAAA4jN,WACT5jN,GAIA,SAAA07N,GACAzqM,EACA97C,EACA6qB,EACAm/H,IAEAA,GAAAi8F,IAAA5iP,oBACAy4C,EACA97C,EAAAqmP,WAAArmP,EACA6qB,GAIA,SAAA47N,GAAA3O,EAAAzsC,GACA,IAAAg4B,EAAAyU,EAAAziP,KAAA4O,MAAAo/N,EAAAh4B,EAAAh2M,KAAA4O,IAAA,CAGA,IAAAA,EAAAonM,EAAAh2M,KAAA4O,OACA8qO,EAAA+I,EAAAziP,KAAA4O,OACAgiP,GAAA56C,EAAA9R,IAlEA,SAAAt1L,GAEA,GAAAq/N,EAAAr/N,EAAAiiP,KAAA,CAEA,IAAApqM,EAAAirL,EAAA,iBACA9iO,EAAA63C,MAAAxiD,OAAA2K,EAAAiiP,IAAAjiP,EAAA63C,eACA73C,EAAAiiP,IAKA5iB,EAAAr/N,EAAAkiP,OACAliP,EAAAupN,UAAAl0N,OAAA2K,EAAAkiP,IAAAliP,EAAAupN,mBACAvpN,EAAAkiP,KAsDAO,CAAAziP,GACA6qO,GAAA7qO,EAAA8qO,EAAAqX,GAAAG,GAAAl7C,EAAAh5J,SACA4zM,QAAAh0P,GAGA,IAAA6L,IACAmwB,OAAAw4N,GACA3lN,OAAA2lN,IAKA,SAAAE,GAAA7O,EAAAzsC,GACA,IAAAg4B,EAAAyU,EAAAziP,KAAA+3N,YAAAiW,EAAAh4B,EAAAh2M,KAAA+3N,UAAA,CAGA,IAAA9+N,EAAA4b,EACAqvL,EAAA8R,EAAA9R,IACAqtD,EAAA9O,EAAAziP,KAAA+3N,aACA/lO,EAAAgkN,EAAAh2M,KAAA+3N,aAMA,IAAA9+N,KAJAg1O,EAAAj8O,EAAAwiP,UACAxiP,EAAAgkN,EAAAh2M,KAAA+3N,SAAAn/N,KAA2C5G,IAG3Cu/P,EACAvjB,EAAAh8O,EAAAiH,MACAirM,EAAAjrM,GAAA,IAGA,IAAAA,KAAAjH,EAAA,CAKA,GAJA6iB,EAAA7iB,EAAAiH,GAIA,gBAAAA,GAAA,cAAAA,EAAA,CAEA,GADA+8M,EAAAv+B,WAA2Bu+B,EAAAv+B,SAAAtnL,OAAA,GAC3B0kB,IAAA08O,EAAAt4P,GAAkC,SAGlC,IAAAirM,EAAAyrB,WAAAx/N,QACA+zM,EAAAxoK,YAAAwoK,EAAAyrB,WAAA,IAIA,aAAA12N,EAAA,CAGAirM,EAAAstD,OAAA38O,EAEA,IAAA48O,EAAAzjB,EAAAn5N,GAAA,GAAAxU,OAAAwU,GACA68O,GAAAxtD,EAAAutD,KACAvtD,EAAAztM,MAAAg7P,QAGAvtD,EAAAjrM,GAAA4b,IAQA,SAAA68O,GAAAxtD,EAAAytD,GACA,OAAAztD,EAAA0tD,YACA,WAAA1tD,EAAAjjK,SAMA,SAAAijK,EAAAytD,GAGA,IAAAE,GAAA,EAGA,IAAOA,EAAA9yP,SAAA+yP,gBAAA5tD,EAA+C,MAAA7wM,IACtD,OAAAw+P,GAAA3tD,EAAAztM,QAAAk7P,EAZAI,CAAA7tD,EAAAytD,IAeA,SAAAztD,EAAA7U,GACA,IAAA54L,EAAAytM,EAAAztM,MACAg0C,EAAAy5J,EAAA8tD,YACA,GAAA/jB,EAAAxjM,GAAA,CACA,GAAAA,EAAAqyM,KAEA,SAEA,GAAAryM,EAAAg4J,OACA,OAAA8rC,EAAA93O,KAAA83O,EAAAl/C,GAEA,GAAA5kJ,EAAAimC,KACA,OAAAj6E,EAAAi6E,SAAA2+G,EAAA3+G,OAGA,OAAAj6E,IAAA44L,EA7BA4iE,CAAA/tD,EAAAytD,IAgCA,IAAA55B,IACAn/L,OAAA04N,GACA7lN,OAAA6lN,IAKAY,GAAAtjB,EAAA,SAAA1zM,GACA,IAAA58B,KAEA6zP,EAAA,QAOA,OANAj3N,EAAAnrC,MAFA,iBAEAiJ,QAAA,SAAA6C,GACA,GAAAA,EAAA,CACA,IAAA+iE,EAAA/iE,EAAA9L,MAAAoiQ,GACAvzL,EAAAzuE,OAAA,IAAAmO,EAAAsgE,EAAA,GAAA8R,QAAA9R,EAAA,GAAA8R,WAGApyE,IAIA,SAAA8zP,GAAApyP,GACA,IAAAyH,EAAA4qP,GAAAryP,EAAAyH,OAGA,OAAAzH,EAAAsyP,YACA15P,EAAAoH,EAAAsyP,YAAA7qP,GACAA,EAIA,SAAA4qP,GAAAE,GACA,OAAAx3P,MAAAC,QAAAu3P,GACAljM,EAAAkjM,GAEA,iBAAAA,EACAL,GAAAK,GAEAA,EAuCA,IAyBAC,GAzBAC,GAAA,MACAC,GAAA,iBACAC,GAAA,SAAAhjQ,EAAAmC,EAAA2K,GAEA,GAAAg2P,GAAA5nM,KAAA/4D,GACAnC,EAAA8X,MAAAmrP,YAAA9gQ,EAAA2K,QACG,GAAAi2P,GAAA7nM,KAAApuD,GACH9M,EAAA8X,MAAAmrP,YAAA9gQ,EAAA2K,EAAAhF,QAAAi7P,GAAA,qBACG,CACH,IAAA93E,EAAA/7G,GAAA/sE,GACA,GAAAiJ,MAAAC,QAAAyB,GAIA,QAAAxM,EAAA,EAAAc,EAAA0L,EAAAtM,OAAuCF,EAAAc,EAASd,IAChDN,EAAA8X,MAAAmzK,GAAAn+K,EAAAxM,QAGAN,EAAA8X,MAAAmzK,GAAAn+K,IAKAo2P,IAAA,qBAGAh0L,GAAA+vK,EAAA,SAAA5+O,GAGA,GAFAwiQ,OAAAzzP,SAAAC,cAAA,OAAAyI,MAEA,YADAzX,EAAA++O,EAAA/+O,KACAA,KAAAwiQ,GACA,OAAAxiQ,EAGA,IADA,IAAA8iQ,EAAA9iQ,EAAAo+C,OAAA,GAAAlN,cAAAlxC,EAAAwB,MAAA,GACAvB,EAAA,EAAiBA,EAAA4iQ,GAAA1iQ,OAAwBF,IAAA,CACzC,IAAA6B,EAAA+gQ,GAAA5iQ,GAAA6iQ,EACA,GAAAhhQ,KAAA0gQ,GACA,OAAA1gQ,KAKA,SAAAihQ,GAAAtQ,EAAAzsC,GACA,IAAAh2M,EAAAg2M,EAAAh2M,KACA4vB,EAAA6yN,EAAAziP,KAEA,KAAAguO,EAAAhuO,EAAAsyP,cAAAtkB,EAAAhuO,EAAAyH,QACAumO,EAAAp+M,EAAA0iO,cAAAtkB,EAAAp+M,EAAAnoB,QADA,CAMA,IAAAoN,EAAA/iB,EACAnC,EAAAqmN,EAAA9R,IACA8uD,EAAApjO,EAAA0iO,YACAW,EAAArjO,EAAAsjO,iBAAAtjO,EAAAnoB,UAGA0rP,EAAAH,GAAAC,EAEAxrP,EAAA4qP,GAAAr8C,EAAAh2M,KAAAyH,WAKAuuM,EAAAh2M,KAAAkzP,gBAAAjlB,EAAAxmO,EAAA+sO,QACA57O,KAAe6O,GACfA,EAEA,IAAA2rP,EApGA,SAAAp9C,EAAAq9C,GACA,IACAC,EADAh1P,KAGA,GAAA+0P,EAEA,IADA,IAAArJ,EAAAh0C,EACAg0C,EAAA7zC,oBACA6zC,IAAA7zC,kBAAA2sC,SAEAkH,EAAAhqP,OACAszP,EAAAlB,GAAApI,EAAAhqP,QAEApH,EAAA0F,EAAAg1P,IAKAA,EAAAlB,GAAAp8C,EAAAh2M,QACApH,EAAA0F,EAAAg1P,GAIA,IADA,IAAA73N,EAAAu6K,EACAv6K,IAAAhD,QACAgD,EAAAz7B,OAAAszP,EAAAlB,GAAA32N,EAAAz7B,QACApH,EAAA0F,EAAAg1P,GAGA,OAAAh1P,EAyEAyqE,CAAAitI,GAAA,GAEA,IAAAlkN,KAAAqhQ,EACAnlB,EAAAolB,EAAAthQ,KACA6gQ,GAAAhjQ,EAAAmC,EAAA,IAGA,IAAAA,KAAAshQ,GACAv+O,EAAAu+O,EAAAthQ,MACAqhQ,EAAArhQ,IAEA6gQ,GAAAhjQ,EAAAmC,EAAA,MAAA+iB,EAAA,GAAAA,IAKA,IAAApN,IACAmxB,OAAAm6N,GACAtnN,OAAAsnN,IASA,SAAA7pL,GAAAv5E,EAAA+9P,GAEA,GAAAA,QAAAh9K,QAKA,GAAA/gF,EAAAugD,UACAw9M,EAAA1+P,QAAA,QACA0+P,EAAA39P,MAAA,OAAAiJ,QAAA,SAAAo2D,GAA6C,OAAAz/D,EAAAugD,UAAA/hB,IAAAihC,KAE7Cz/D,EAAAugD,UAAA/hB,IAAAu/N,OAEG,CACH,IAAA74O,EAAA,KAAAllB,EAAAy6D,aAAA,kBACAv1C,EAAA7lB,QAAA,IAAA0+P,EAAA,QACA/9P,EAAAimC,aAAA,SAAA/gB,EAAA64O,GAAAh9K,SASA,SAAAjH,GAAA95E,EAAA+9P,GAEA,GAAAA,QAAAh9K,QAKA,GAAA/gF,EAAAugD,UACAw9M,EAAA1+P,QAAA,QACA0+P,EAAA39P,MAAA,OAAAiJ,QAAA,SAAAo2D,GAA6C,OAAAz/D,EAAAugD,UAAAv8C,OAAAy7D,KAE7Cz/D,EAAAugD,UAAAv8C,OAAA+5P,GAEA/9P,EAAAugD,UAAA//C,QACAR,EAAA2+C,gBAAA,aAEG,CAGH,IAFA,IAAAz5B,EAAA,KAAAllB,EAAAy6D,aAAA,kBACAmpM,EAAA,IAAA7F,EAAA,IACA74O,EAAA7lB,QAAAukQ,IAAA,GACA1+O,IAAApd,QAAA87P,EAAA,MAEA1+O,IAAA67D,QAEA/gF,EAAAimC,aAAA,QAAA/gB,GAEAllB,EAAA2+C,gBAAA,UAOA,SAAAklN,GAAAxiB,GACA,GAAAA,EAAA,CAIA,oBAAAA,EAAA,CACA,IAAA1yO,KAKA,OAJA,IAAA0yO,EAAAzhB,KACA32N,EAAA0F,EAAAm1P,GAAAziB,EAAAl/O,MAAA,MAEA8G,EAAA0F,EAAA0yO,GACA1yO,EACG,uBAAA0yO,EACHyiB,GAAAziB,QADG,GAKH,IAAAyiB,GAAA7kB,EAAA,SAAA98O,GACA,OACA4hQ,WAAA5hQ,EAAA,SACA6hQ,aAAA7hQ,EAAA,YACA8hQ,iBAAA9hQ,EAAA,gBACA+hQ,WAAA/hQ,EAAA,SACAgiQ,aAAAhiQ,EAAA,YACAiiQ,iBAAAjiQ,EAAA,mBAIAkiQ,GAAA5iB,IAAAO,EACAsiB,GAAA,aACAC,GAAA,YAGAC,GAAA,aACAC,GAAA,gBACAC,GAAA,YACAC,GAAA,eACAN,UAEAp3P,IAAAiC,OAAA01P,sBACA33P,IAAAiC,OAAA21P,wBAEAL,GAAA,mBACAC,GAAA,4BAEAx3P,IAAAiC,OAAA41P,qBACA73P,IAAAiC,OAAA61P,uBAEAL,GAAA,kBACAC,GAAA,uBAKA,IAAAK,GAAAvjB,EACAvyO,OAAA81C,sBACA91C,OAAA81C,sBAAAj7C,KAAAmF,QACArD,WACA,SAAAL,GAA8C,OAAAA,KAE9C,SAAAy5P,GAAAz5P,GACAw5P,GAAA,WACAA,GAAAx5P,KAIA,SAAA05P,GAAAllQ,EAAA+9P,GACA,IAAAoH,EAAAnlQ,EAAAi+P,qBAAAj+P,EAAAi+P,uBACAkH,EAAA9lQ,QAAA0+P,GAAA,IACAoH,EAAArkQ,KAAAi9P,GACAxkL,GAAAv5E,EAAA+9P,IAIA,SAAAqH,GAAAplQ,EAAA+9P,GACA/9P,EAAAi+P,oBACAj6P,EAAAhE,EAAAi+P,mBAAAF,GAEAjkL,GAAA95E,EAAA+9P,GAGA,SAAAsH,GACArlQ,EACAslQ,EACAz+L,GAEA,IAAA1uD,EAAAotP,GAAAvlQ,EAAAslQ,GACAviQ,EAAAoV,EAAApV,KACAo3G,EAAAhiG,EAAAgiG,QACAqrJ,EAAArtP,EAAAqtP,UACA,IAAAziQ,EAAc,OAAA8jE,IACd,IAAA/P,EAAA/zD,IAAAuhQ,GAAAG,GAAAE,GACAn7I,EAAA,EACA/4F,EAAA,WACAzwB,EAAAqe,oBAAAy4C,EAAA2uM,GACA5+L,KAEA4+L,EAAA,SAAA/hQ,GACAA,EAAA5D,SAAAE,KACAwpH,GAAAg8I,GACA/0O,KAIA5kB,WAAA,WACA29G,EAAAg8I,GACA/0O,KAEG0pF,EAAA,GACHn6G,EAAAme,iBAAA24C,EAAA2uM,GAGA,IAAAC,GAAA,yBAEA,SAAAH,GAAAvlQ,EAAAslQ,GACA,IAQAviQ,EARAq5C,EAAAltC,OAAAmtC,iBAAAr8C,GACA2lQ,EAAAvpN,EAAAooN,GAAA,SAAApkQ,MAAA,MACAwlQ,EAAAxpN,EAAAooN,GAAA,YAAApkQ,MAAA,MACAylQ,EAAAC,GAAAH,EAAAC,GACAG,EAAA3pN,EAAAsoN,GAAA,SAAAtkQ,MAAA,MACA4lQ,EAAA5pN,EAAAsoN,GAAA,YAAAtkQ,MAAA,MACA6lQ,EAAAH,GAAAC,EAAAC,GAGA7rJ,EAAA,EACAqrJ,EAAA,EA8BA,OA5BAF,IAAAhB,GACAuB,EAAA,IACA9iQ,EAAAuhQ,GACAnqJ,EAAA0rJ,EACAL,EAAAI,EAAAplQ,QAEG8kQ,IAAAf,GACH0B,EAAA,IACAljQ,EAAAwhQ,GACApqJ,EAAA8rJ,EACAT,EAAAQ,EAAAxlQ,QASAglQ,GALAziQ,GADAo3G,EAAA7yG,KAAAE,IAAAq+P,EAAAI,IACA,EACAJ,EAAAI,EACA3B,GACAC,GACA,MAEAxhQ,IAAAuhQ,GACAsB,EAAAplQ,OACAwlQ,EAAAxlQ,OACA,GAMAuC,OACAo3G,UACAqrJ,YACAU,aANAnjQ,IAAAuhQ,IACAoB,GAAAxqM,KAAA9e,EAAAooN,GAAA,cASA,SAAAsB,GAAAK,EAAAC,GAEA,KAAAD,EAAA3lQ,OAAA4lQ,EAAA5lQ,QACA2lQ,IAAA7xP,OAAA6xP,GAGA,OAAA7+P,KAAAE,IAAAsE,MAAA,KAAAs6P,EAAAl2P,IAAA,SAAA8d,EAAA1tB,GACA,OAAA+lQ,GAAAr4O,GAAAq4O,GAAAF,EAAA7lQ,OAIA,SAAA+lQ,GAAA3uP,GACA,WAAA4C,OAAA5C,EAAA7V,MAAA,OAKA,SAAAykQ,GAAAjgD,EAAAkgD,GACA,IAAAvmQ,EAAAqmN,EAAA9R,IAGA+pC,EAAAt+O,EAAAwmQ,YACAxmQ,EAAAwmQ,SAAAC,WAAA,EACAzmQ,EAAAwmQ,YAGA,IAAAn2P,EAAAwzP,GAAAx9C,EAAAh2M,KAAA4yJ,YACA,IAAAo7E,EAAAhuO,KAKAiuO,EAAAt+O,EAAA0mQ,WAAA,IAAA1mQ,EAAA44E,SAAA,CA4BA,IAxBA,IAAAgnJ,EAAAvvN,EAAAuvN,IACA78N,EAAAsN,EAAAtN,KACAghQ,EAAA1zP,EAAA0zP,WACAC,EAAA3zP,EAAA2zP,aACAC,EAAA5zP,EAAA4zP,iBACA0C,EAAAt2P,EAAAs2P,YACAC,EAAAv2P,EAAAu2P,cACAC,EAAAx2P,EAAAw2P,kBACAC,EAAAz2P,EAAAy2P,YACAR,EAAAj2P,EAAAi2P,MACAS,EAAA12P,EAAA02P,WACAC,EAAA32P,EAAA22P,eACAC,EAAA52P,EAAA42P,aACAC,EAAA72P,EAAA62P,OACAC,EAAA92P,EAAA82P,YACAC,EAAA/2P,EAAA+2P,gBACA76K,EAAAl8E,EAAAk8E,SAMAl/B,EAAAs+L,GACA0b,EAAA1b,GAAAj6K,OACA21L,KAAAv+N,QAEAukB,GADAg6M,IAAAv+N,QACAukB,QAGA,IAAAi6M,GAAAj6M,EAAAu/L,aAAAvmC,EAAA29B,aAEA,IAAAsjB,GAAAJ,GAAA,KAAAA,EAAA,CAIA,IAAAK,EAAAD,GAAAX,EACAA,EACA5C,EACAyD,EAAAF,GAAAT,EACAA,EACA5C,EACAwD,EAAAH,GAAAV,EACAA,EACA5C,EAEA0D,EAAAJ,GACAL,GACAH,EACAa,EAAAL,GACA,mBAAAJ,IACAZ,EACAsB,EAAAN,GACAH,GACAJ,EACAc,EAAAP,GACAF,GACAJ,EAEAc,EAAAlpB,EACAz/O,EAAAotF,GACAA,EAAA+5K,MACA/5K,GAGM,EAIN,IAAAw7K,GAAA,IAAAnoC,IAAAoiB,EACAgmB,EAAAC,GAAAN,GAEA9gM,EAAA7mE,EAAA0mQ,SAAArhL,EAAA,WACA0iL,IACA3C,GAAAplQ,EAAAynQ,GACArC,GAAAplQ,EAAAwnQ,IAEA3gM,EAAA4/L,WACAsB,GACA3C,GAAAplQ,EAAAunQ,GAEAM,KAAA7nQ,IAEA4nQ,KAAA5nQ,GAEAA,EAAA0mQ,SAAA,OAGArgD,EAAAh2M,KAAAzL,MAEAslP,GAAA7jC,EAAA,oBACA,IAAAv9K,EAAA9oC,EAAA8rC,WACAo8N,EAAAp/N,KAAAq/N,UAAAr/N,EAAAq/N,SAAA9hD,EAAA/8M,KACA4+P,GACAA,EAAAx9C,MAAArE,EAAAqE,KACAw9C,EAAA3zD,IAAAiyD,UAEA0B,EAAA3zD,IAAAiyD,WAEAmB,KAAA3nQ,EAAA6mE,KAKA6gM,KAAA1nQ,GACA+nQ,IACA7C,GAAAllQ,EAAAunQ,GACArC,GAAAllQ,EAAAwnQ,GACAvC,GAAA,WACAG,GAAAplQ,EAAAunQ,GACA1gM,EAAA4/L,YACAvB,GAAAllQ,EAAAynQ,GACAO,IACAI,GAAAN,GACAj8P,WAAAg7D,EAAAihM,GAEAzC,GAAArlQ,EAAA+C,EAAA8jE,QAOAw/I,EAAAh2M,KAAAzL,OACA2hQ,OACAoB,KAAA3nQ,EAAA6mE,IAGAkhM,GAAAC,GACAnhM,MAIA,SAAAwhM,GAAAhiD,EAAAiiD,GACA,IAAAtoQ,EAAAqmN,EAAA9R,IAGA+pC,EAAAt+O,EAAA0mQ,YACA1mQ,EAAA0mQ,SAAAD,WAAA,EACAzmQ,EAAA0mQ,YAGA,IAAAr2P,EAAAwzP,GAAAx9C,EAAAh2M,KAAA4yJ,YACA,GAAAo7E,EAAAhuO,IAAA,IAAArQ,EAAA44E,SACA,OAAA0vL,IAIA,IAAAhqB,EAAAt+O,EAAAwmQ,UAAA,CAIA,IAAA5mC,EAAAvvN,EAAAuvN,IACA78N,EAAAsN,EAAAtN,KACAmhQ,EAAA7zP,EAAA6zP,WACAC,EAAA9zP,EAAA8zP,aACAC,EAAA/zP,EAAA+zP,iBACAmE,EAAAl4P,EAAAk4P,YACAF,EAAAh4P,EAAAg4P,MACApiD,EAAA51M,EAAA41M,WACAuiD,EAAAn4P,EAAAm4P,eACAC,EAAAp4P,EAAAo4P,WACAl8K,EAAAl8E,EAAAk8E,SAEAw7K,GAAA,IAAAnoC,IAAAoiB,EACAgmB,EAAAC,GAAAI,GAEAK,EAAA9pB,EACAz/O,EAAAotF,GACAA,EAAA87K,MACA97K,GAGM,EAIN,IAAA1lB,EAAA7mE,EAAAwmQ,SAAAnhL,EAAA,WACArlF,EAAA8rC,YAAA9rC,EAAA8rC,WAAAq8N,WACAnoQ,EAAA8rC,WAAAq8N,SAAA9hD,EAAA/8M,KAAA,MAEAy+P,IACA3C,GAAAplQ,EAAAmkQ,GACAiB,GAAAplQ,EAAAokQ,IAEAv9L,EAAA4/L,WACAsB,GACA3C,GAAAplQ,EAAAkkQ,GAEAsE,KAAAxoQ,KAEAsoQ,IACAriD,KAAAjmN,IAEAA,EAAAwmQ,SAAA,OAGAiC,EACAA,EAAAE,GAEAA,IAGA,SAAAA,IAEA9hM,EAAA4/L,YAIApgD,EAAAh2M,KAAAzL,QACA5E,EAAA8rC,WAAAq8N,WAAAnoQ,EAAA8rC,WAAAq8N,cAA6D9hD,EAAA,KAAAA,GAE7DkiD,KAAAvoQ,GACA+nQ,IACA7C,GAAAllQ,EAAAkkQ,GACAgB,GAAAllQ,EAAAokQ,GACAa,GAAA,WACAG,GAAAplQ,EAAAkkQ,GACAr9L,EAAA4/L,YACAvB,GAAAllQ,EAAAmkQ,GACA6D,IACAI,GAAAM,GACA78P,WAAAg7D,EAAA6hM,GAEArD,GAAArlQ,EAAA+C,EAAA8jE,QAMAwhM,KAAAroQ,EAAA6mE,GACAkhM,GAAAC,GACAnhM,MAsBA,SAAAuhM,GAAAt7P,GACA,uBAAAA,IAAA9C,MAAA8C,GASA,SAAAm7P,GAAAz8P,GACA,GAAA6yO,EAAA7yO,GACA,SAEA,IAAAo9P,EAAAp9P,EAAAipE,IACA,OAAA6pK,EAAAsqB,GAEAX,GACA78P,MAAAC,QAAAu9P,GACAA,EAAA,GACAA,IAGAp9P,EAAAi0O,SAAAj0O,EAAAhL,QAAA,EAIA,SAAAqoQ,GAAAnrP,EAAA2oM,IACA,IAAAA,EAAAh2M,KAAAzL,MACA0hQ,GAAAjgD,GAIA,IA4BAyiD,GAj6EA,SAAAC,GACA,IAAAzoQ,EAAAmyB,EACA6lO,KAEAhoL,EAAAy4L,EAAAz4L,QACA8qL,EAAA2N,EAAA3N,QAEA,IAAA96P,EAAA,EAAaA,EAAAmoP,GAAAjoP,SAAkBF,EAE/B,IADAg4P,EAAA7P,GAAAnoP,OACAmyB,EAAA,EAAeA,EAAA69C,EAAA9vE,SAAoBiyB,EACnC6rN,EAAAhuK,EAAA79C,GAAAg2N,GAAAnoP,MACAg4P,EAAA7P,GAAAnoP,IAAAQ,KAAAwvE,EAAA79C,GAAAg2N,GAAAnoP,KAmBA,SAAA+hM,EAAAriM,GACA,IAAA8oC,EAAAsyN,EAAAtvN,WAAA9rC,GAEAs+O,EAAAx1M,IACAsyN,EAAArvN,YAAAjD,EAAA9oC,GAsBA,SAAAgpQ,EACA3iD,EACA4iD,EACA9W,EACAC,EACA8W,EACAC,EACAh9P,GAYA,GAVAmyO,EAAAj4B,EAAA9R,MAAA+pC,EAAA6qB,KAMA9iD,EAAA8iD,EAAAh9P,GAAAq4O,GAAAn+B,IAGAA,EAAA29B,cAAAklB,GAiDA,SAAA7iD,EAAA4iD,EAAA9W,EAAAC,GACA,IAAA9xP,EAAA+lN,EAAAh2M,KACA,GAAAiuO,EAAAh+O,GAAA,CACA,IAAA8oQ,EAAA9qB,EAAAj4B,EAAAG,oBAAAlmN,EAAA+xP,UAQA,GAPA/T,EAAAh+O,IAAAgxE,OAAAgtK,EAAAh+O,IAAAyd,OACAzd,EAAA+lN,GAAA,EAAA8rC,EAAAC,GAMA9T,EAAAj4B,EAAAG,mBAKA,OAJA6iD,EAAAhjD,EAAA4iD,GACA1qB,EAAA6qB,IA0BA,SAAA/iD,EAAA4iD,EAAA9W,EAAAC,GAOA,IANA,IAAA9xP,EAKAgpQ,EAAAjjD,EACAijD,EAAA9iD,mBAEA,GADA8iD,IAAA9iD,kBAAA2sC,OACA7U,EAAAh+O,EAAAgpQ,EAAAj5P,OAAAiuO,EAAAh+O,IAAA2iK,YAAA,CACA,IAAA3iK,EAAA,EAAmBA,EAAAg4P,EAAAiR,SAAA/oQ,SAAyBF,EAC5Cg4P,EAAAiR,SAAAjpQ,GAAAy7P,GAAAuN,GAEAL,EAAAnoQ,KAAAwoQ,GACA,MAKAnuF,EAAAg3E,EAAA9rC,EAAA9R,IAAA69C,GA5CAoX,CAAAnjD,EAAA4iD,EAAA9W,EAAAC,IAEA,GAhEAwB,CAAAvtC,EAAA4iD,EAAA9W,EAAAC,GAAA,CAIA,IAAA/hP,EAAAg2M,EAAAh2M,KACAy3K,EAAAu+B,EAAAv+B,SACA4iC,EAAArE,EAAAqE,IACA4zB,EAAA5zB,IAeArE,EAAA9R,IAAA8R,EAAAq9B,GACA0X,EAAAC,gBAAAh1C,EAAAq9B,GAAAh5B,GACA0wC,EAAA/rP,cAAAq7M,EAAArE,GACAojD,EAAApjD,GAIAqjD,EAAArjD,EAAAv+B,EAAAmhF,GACA3qB,EAAAjuO,IACAs5P,EAAAtjD,EAAA4iD,GAEA9tF,EAAAg3E,EAAA9rC,EAAA9R,IAAA69C,IAMK7T,EAAAl4B,EAAA49B,YACL59B,EAAA9R,IAAA6mD,EAAAG,cAAAl1C,EAAAz1K,MACAuqI,EAAAg3E,EAAA9rC,EAAA9R,IAAA69C,KAEA/rC,EAAA9R,IAAA6mD,EAAAhnN,eAAAiyK,EAAAz1K,MACAuqI,EAAAg3E,EAAA9rC,EAAA9R,IAAA69C,KAyBA,SAAAiX,EAAAhjD,EAAA4iD,GACA3qB,EAAAj4B,EAAAh2M,KAAAu5P,iBACAX,EAAAnoQ,KAAAgL,MAAAm9P,EAAA5iD,EAAAh2M,KAAAu5P,eACAvjD,EAAAh2M,KAAAu5P,cAAA,MAEAvjD,EAAA9R,IAAA8R,EAAAG,kBAAAvqM,IACA4tP,EAAAxjD,IACAsjD,EAAAtjD,EAAA4iD,GACAQ,EAAApjD,KAIAu1C,GAAAv1C,GAEA4iD,EAAAnoQ,KAAAulN,IA0BA,SAAAlrC,EAAAryI,EAAAyrK,EAAAu1D,GACAxrB,EAAAx1M,KACAw1M,EAAAwrB,GACAA,EAAAh+N,aAAAhD,GACAsyN,EAAA3iF,aAAA3vI,EAAAyrK,EAAAu1D,GAGA1O,EAAA5rP,YAAAs5B,EAAAyrK,IAKA,SAAAm1D,EAAArjD,EAAAv+B,EAAAmhF,GACA,GAAA79P,MAAAC,QAAAy8K,GAIA,QAAAxnL,EAAA,EAAqBA,EAAAwnL,EAAAtnL,SAAqBF,EAC1C0oQ,EAAAlhF,EAAAxnL,GAAA2oQ,EAAA5iD,EAAA9R,IAAA,QAAAzsB,EAAAxnL,QAEK0qO,EAAA3kB,EAAAz1K,OACLwqN,EAAA5rP,YAAA62M,EAAA9R,IAAA6mD,EAAAhnN,eAAA1jC,OAAA21M,EAAAz1K,QAIA,SAAAi5N,EAAAxjD,GACA,KAAAA,EAAAG,mBACAH,IAAAG,kBAAA2sC,OAEA,OAAA7U,EAAAj4B,EAAAqE,KAGA,SAAAi/C,EAAAtjD,EAAA4iD,GACA,QAAA1Q,EAAA,EAAqBA,EAAAD,EAAArvN,OAAAzoC,SAAyB+3P,EAC9CD,EAAArvN,OAAAsvN,GAAAwD,GAAA11C,GAGAi4B,EADAh+O,EAAA+lN,EAAAh2M,KAAAihE,QAEAgtK,EAAAh+O,EAAA2oC,SAA4B3oC,EAAA2oC,OAAA8yN,GAAA11C,GAC5Bi4B,EAAAh+O,EAAA66K,SAA4B8tF,EAAAnoQ,KAAAulN,IAO5B,SAAAojD,EAAApjD,GACA,IAAA/lN,EACA,GAAAg+O,EAAAh+O,EAAA+lN,EAAAw9B,WACAuX,EAAAO,cAAAt1C,EAAA9R,IAAAj0M,QAGA,IADA,IAAA+2O,EAAAhxB,EACAgxB,GACAiH,EAAAh+O,EAAA+2O,EAAAhqL,UAAAixL,EAAAh+O,IAAAqX,SAAA85D,WACA2pL,EAAAO,cAAAt1C,EAAA9R,IAAAj0M,GAEA+2O,IAAAvuM,OAIAw1M,EAAAh+O,EAAAqrP,KACArrP,IAAA+lN,EAAAh5J,SACA/sD,IAAA+lN,EAAAs9B,WACArF,EAAAh+O,IAAAqX,SAAA85D,WAEA2pL,EAAAO,cAAAt1C,EAAA9R,IAAAj0M,GAIA,SAAAypQ,EAAA5X,EAAAC,EAAAuC,EAAAqV,EAAA1N,EAAA2M,GACA,KAAUe,GAAA1N,IAAoB0N,EAC9BhB,EAAArU,EAAAqV,GAAAf,EAAA9W,EAAAC,GAAA,EAAAuC,EAAAqV,GAIA,SAAAC,EAAA5jD,GACA,IAAA/lN,EAAAmyB,EACApiB,EAAAg2M,EAAAh2M,KACA,GAAAiuO,EAAAjuO,GAEA,IADAiuO,EAAAh+O,EAAA+P,EAAAihE,OAAAgtK,EAAAh+O,IAAAo+C,UAAyDp+C,EAAA+lN,GACzD/lN,EAAA,EAAiBA,EAAAg4P,EAAA55M,QAAAl+C,SAAwBF,EAAOg4P,EAAA55M,QAAAp+C,GAAA+lN,GAEhD,GAAAi4B,EAAAh+O,EAAA+lN,EAAAv+B,UACA,IAAAr1J,EAAA,EAAiBA,EAAA4zL,EAAAv+B,SAAAtnL,SAA2BiyB,EAC5Cw3O,EAAA5jD,EAAAv+B,SAAAr1J,IAKA,SAAAy3O,EAAA/X,EAAAwC,EAAAqV,EAAA1N,GACA,KAAU0N,GAAA1N,IAAoB0N,EAAA,CAC9B,IAAAG,EAAAxV,EAAAqV,GACA1rB,EAAA6rB,KACA7rB,EAAA6rB,EAAAz/C,MACA0/C,EAAAD,GACAF,EAAAE,IAEA9nE,EAAA8nE,EAAA51D,OAMA,SAAA61D,EAAA/jD,EAAAiiD,GACA,GAAAhqB,EAAAgqB,IAAAhqB,EAAAj4B,EAAAh2M,MAAA,CACA,IAAA/P,EACAykF,EAAAuzK,EAAAt0P,OAAAxD,OAAA,EAaA,IAZA89O,EAAAgqB,GAGAA,EAAAvjL,aAGAujL,EArRA,SAAA+B,EAAAtlL,GACA,SAAA/gF,IACA,KAAAA,EAAA+gF,WACAs9G,EAAAgoE,GAIA,OADArmQ,EAAA+gF,YACA/gF,EA8QAsmQ,CAAAjkD,EAAA9R,IAAAxvH,GAGAu5J,EAAAh+O,EAAA+lN,EAAAG,oBAAA83B,EAAAh+O,IAAA6yP,SAAA7U,EAAAh+O,EAAA+P,OACA+5P,EAAA9pQ,EAAAgoQ,GAEAhoQ,EAAA,EAAiBA,EAAAg4P,EAAAt0P,OAAAxD,SAAuBF,EACxCg4P,EAAAt0P,OAAA1D,GAAA+lN,EAAAiiD,GAEAhqB,EAAAh+O,EAAA+lN,EAAAh2M,KAAAihE,OAAAgtK,EAAAh+O,IAAA0D,QACA1D,EAAA+lN,EAAAiiD,GAEAA,SAGAjmE,EAAAgkB,EAAA9R,KA8FA,SAAAg2D,EAAA9xM,EAAA+xM,EAAAzoQ,EAAA0uB,GACA,QAAAnwB,EAAAyB,EAAuBzB,EAAAmwB,EAASnwB,IAAA,CAChC,IAAAm/D,EAAA+qM,EAAAlqQ,GACA,GAAAg+O,EAAA7+K,IAAAu8L,GAAAvjM,EAAAgH,GAA2C,OAAAn/D,GAI3C,SAAAmqQ,EAAA3X,EAAAzsC,EAAA4iD,EAAAyB,GACA,GAAA5X,IAAAzsC,EAAA,CAIA,IAAA9R,EAAA8R,EAAA9R,IAAAu+C,EAAAv+C,IAEA,GAAAgqC,EAAAuU,EAAAzO,oBACA/F,EAAAj4B,EAAAo9B,aAAAwQ,UACA0W,EAAA7X,EAAAv+C,IAAA8R,EAAA4iD,GAEA5iD,EAAAg+B,oBAAA,OASA,GAAA9F,EAAAl4B,EAAA09B,WACAxF,EAAAuU,EAAA/O,WACA19B,EAAA/8M,MAAAwpP,EAAAxpP,MACAi1O,EAAAl4B,EAAA69B,WAAA3F,EAAAl4B,EAAA89B,SAEA99B,EAAAG,kBAAAssC,EAAAtsC,sBALA,CASA,IAAAlmN,EACA+P,EAAAg2M,EAAAh2M,KACAiuO,EAAAjuO,IAAAiuO,EAAAh+O,EAAA+P,EAAAihE,OAAAgtK,EAAAh+O,IAAAiyP,WACAjyP,EAAAwyP,EAAAzsC,GAGA,IAAAmkD,EAAA1X,EAAAhrE,SACAqiF,EAAA9jD,EAAAv+B,SACA,GAAAw2D,EAAAjuO,IAAAw5P,EAAAxjD,GAAA,CACA,IAAA/lN,EAAA,EAAiBA,EAAAg4P,EAAAx8M,OAAAt7C,SAAuBF,EAAOg4P,EAAAx8M,OAAAx7C,GAAAwyP,EAAAzsC,GAC/Ci4B,EAAAh+O,EAAA+P,EAAAihE,OAAAgtK,EAAAh+O,IAAAw7C,SAAwDx7C,EAAAwyP,EAAAzsC,GAExDg4B,EAAAh4B,EAAAz1K,MACA0tM,EAAAksB,IAAAlsB,EAAA6rB,GACAK,IAAAL,GA5IA,SAAAhY,EAAAqY,EAAAI,EAAA3B,EAAAyB,GAoBA,IAnBA,IAQAG,EAAAC,EAAAC,EARAC,EAAA,EACAC,EAAA,EACAC,EAAAV,EAAAhqQ,OAAA,EACA2qQ,EAAAX,EAAA,GACAY,EAAAZ,EAAAU,GACAG,EAAAT,EAAApqQ,OAAA,EACA8qQ,EAAAV,EAAA,GACAW,EAAAX,EAAAS,GAMAG,GAAAd,EAMAM,GAAAE,GAAAD,GAAAI,GACAhtB,EAAA8sB,GACAA,EAAAX,IAAAQ,GACO3sB,EAAA+sB,GACPA,EAAAZ,IAAAU,GACOlP,GAAAmP,EAAAG,IACPb,EAAAU,EAAAG,EAAArC,GACAkC,EAAAX,IAAAQ,GACAM,EAAAV,IAAAK,IACOjP,GAAAoP,EAAAG,IACPd,EAAAW,EAAAG,EAAAtC,GACAmC,EAAAZ,IAAAU,GACAK,EAAAX,IAAAS,IACOrP,GAAAmP,EAAAI,IACPd,EAAAU,EAAAI,EAAAtC,GACAuC,GAAApQ,EAAA3iF,aAAA05E,EAAAgZ,EAAA52D,IAAA6mD,EAAA7kN,YAAA60N,EAAA72D,MACA42D,EAAAX,IAAAQ,GACAO,EAAAX,IAAAS,IACOrP,GAAAoP,EAAAE,IACPb,EAAAW,EAAAE,EAAArC,GACAuC,GAAApQ,EAAA3iF,aAAA05E,EAAAiZ,EAAA72D,IAAA42D,EAAA52D,KACA62D,EAAAZ,IAAAU,GACAI,EAAAV,IAAAK,KAEA5sB,EAAAwsB,KAAmCA,EAAAzO,GAAAoO,EAAAQ,EAAAE,IAInC7sB,EAHAysB,EAAAxsB,EAAAgtB,EAAAhiQ,KACAuhQ,EAAAS,EAAAhiQ,KACAihQ,EAAAe,EAAAd,EAAAQ,EAAAE,IAEAlC,EAAAsC,EAAArC,EAAA9W,EAAAgZ,EAAA52D,KAAA,EAAAq2D,EAAAK,GAGAjP,GADA+O,EAAAP,EAAAM,GACAQ,IACAb,EAAAM,EAAAO,EAAArC,GACAuB,EAAAM,QAAA79P,EACAu+P,GAAApQ,EAAA3iF,aAAA05E,EAAA4Y,EAAAx2D,IAAA42D,EAAA52D,MAGAy0D,EAAAsC,EAAArC,EAAA9W,EAAAgZ,EAAA52D,KAAA,EAAAq2D,EAAAK,GAGAK,EAAAV,IAAAK,IAGAD,EAAAE,EAEAnB,EAAA5X,EADA9T,EAAAusB,EAAAS,EAAA,SAAAT,EAAAS,EAAA,GAAA92D,IACAq2D,EAAAK,EAAAI,EAAApC,GACKgC,EAAAI,GACLnB,EAAA/X,EAAAqY,EAAAQ,EAAAE,GAwE2BO,CAAAl3D,EAAAi2D,EAAAL,EAAAlB,EAAAyB,GACpBpsB,EAAA6rB,IACP7rB,EAAAwU,EAAAliN,OAAmCwqN,EAAAM,eAAAnnD,EAAA,IACnCw1D,EAAAx1D,EAAA,KAAA41D,EAAA,EAAAA,EAAA3pQ,OAAA,EAAAyoQ,IACO3qB,EAAAksB,GACPN,EAAA31D,EAAAi2D,EAAA,EAAAA,EAAAhqQ,OAAA,GACO89O,EAAAwU,EAAAliN,OACPwqN,EAAAM,eAAAnnD,EAAA,IAEKu+C,EAAAliN,OAAAy1K,EAAAz1K,MACLwqN,EAAAM,eAAAnnD,EAAA8R,EAAAz1K,MAEA0tM,EAAAjuO,IACAiuO,EAAAh+O,EAAA+P,EAAAihE,OAAAgtK,EAAAh+O,IAAAorQ,YAA2DprQ,EAAAwyP,EAAAzsC,KAI3D,SAAAslD,EAAAtlD,EAAAyW,EAAA8uC,GAGA,GAAArtB,EAAAqtB,IAAAttB,EAAAj4B,EAAAv9K,QACAu9K,EAAAv9K,OAAAz4B,KAAAu5P,cAAA9sC,OAEA,QAAAx8N,EAAA,EAAqBA,EAAAw8N,EAAAt8N,SAAkBF,EACvCw8N,EAAAx8N,GAAA+P,KAAAihE,KAAA6pG,OAAA2hD,EAAAx8N,IAKA,IAKAurQ,EAAAhtB,EAAA,2CAGA,SAAA8rB,EAAAp2D,EAAA8R,EAAA4iD,EAAA6C,GACA,IAAAxrQ,EACAoqN,EAAArE,EAAAqE,IACAr6M,EAAAg2M,EAAAh2M,KACAy3K,EAAAu+B,EAAAv+B,SAIA,GAHAgkF,KAAAz7P,KAAA4U,IACAohM,EAAA9R,MAEAgqC,EAAAl4B,EAAA49B,YAAA3F,EAAAj4B,EAAAo9B,cAEA,OADAp9B,EAAAg+B,oBAAA,GACA,EAQA,GAAA/F,EAAAjuO,KACAiuO,EAAAh+O,EAAA+P,EAAAihE,OAAAgtK,EAAAh+O,IAAAyd,OAAsDzd,EAAA+lN,GAAA,GACtDi4B,EAAAh+O,EAAA+lN,EAAAG,oBAGA,OADA6iD,EAAAhjD,EAAA4iD,IACA,EAGA,GAAA3qB,EAAA5zB,GAAA,CACA,GAAA4zB,EAAAx2D,GAEA,GAAAysB,EAAAw3D,gBAIA,GAAAztB,EAAAh+O,EAAA+P,IAAAiuO,EAAAh+O,IAAA8nO,WAAAkW,EAAAh+O,IAAA6zC,YACA,GAAA7zC,IAAAi0M,EAAApgK,UAWA,aAEW,CAIX,IAFA,IAAA63N,GAAA,EACA3R,EAAA9lD,EAAAj+J,WACAiiN,EAAA,EAA6BA,EAAAzwE,EAAAtnL,OAAuB+3P,IAAA,CACpD,IAAA8B,IAAAsQ,EAAAtQ,EAAAvyE,EAAAywE,GAAA0Q,EAAA6C,GAAA,CACAE,GAAA,EACA,MAEA3R,IAAA9jN,YAIA,IAAAy1N,GAAA3R,EAUA,cAxCAqP,EAAArjD,EAAAv+B,EAAAmhF,GA6CA,GAAA3qB,EAAAjuO,GAAA,CACA,IAAA47P,GAAA,EACA,QAAA3iQ,KAAA+G,EACA,IAAAw7P,EAAAviQ,GAAA,CACA2iQ,GAAA,EACAtC,EAAAtjD,EAAA4iD,GACA,OAGAgD,GAAA57P,EAAA,OAEA6nD,GAAA7nD,EAAA,aAGKkkM,EAAAlkM,OAAAg2M,EAAAz1K,OACL2jK,EAAAlkM,KAAAg2M,EAAAz1K,MAEA,SAcA,gBAAAkiN,EAAAzsC,EAAA6rC,EAAAwY,EAAAvY,EAAAC,GACA,IAAA/T,EAAAh4B,GAAA,CAKA,IA7kBA9R,EA6kBA23D,GAAA,EACAjD,KAEA,GAAA5qB,EAAAyU,GAEAoZ,GAAA,EACAlD,EAAA3iD,EAAA4iD,EAAA9W,EAAAC,OACK,CACL,IAAA+Z,EAAA7tB,EAAAwU,EAAAl6K,UACA,IAAAuzL,GAAAnQ,GAAAlJ,EAAAzsC,GAEAokD,EAAA3X,EAAAzsC,EAAA4iD,EAAAyB,OACO,CACP,GAAAyB,EAAA,CAQA,GAJA,IAAArZ,EAAAl6K,UAAAk6K,EAAAsZ,aAAAjsB,KACA2S,EAAAn0M,gBAAAwhM,GACA+R,GAAA,GAEA3T,EAAA2T,IACAyY,EAAA7X,EAAAzsC,EAAA4iD,GAEA,OADA0C,EAAAtlD,EAAA4iD,GAAA,GACAnW,EArmBAv+C,EAknBAu+C,IAjnBA,IAAAvP,GAAA6X,EAAA9pN,QAAAijK,GAAA18L,yBAA2D5K,EAAAsnM,GAqnB3D,IAAA83D,EAAAvZ,EAAAv+C,IACA+3D,EAAAlR,EAAAtvN,WAAAugO,GAcA,GAXArD,EACA3iD,EACA4iD,EAIAoD,EAAA7F,SAAA,KAAA8F,EACAlR,EAAA7kN,YAAA81N,IAIA/tB,EAAAj4B,EAAAv9K,QAGA,IAFA,IAAAuuM,EAAAhxB,EAAAv9K,OACAyjO,EAAA1C,EAAAxjD,GACAgxB,GAAA,CACA,QAAA/2O,EAAA,EAA2BA,EAAAg4P,EAAA55M,QAAAl+C,SAAwBF,EACnDg4P,EAAA55M,QAAAp+C,GAAA+2O,GAGA,GADAA,EAAA9iC,IAAA8R,EAAA9R,IACAg4D,EAAA,CACA,QAAAhU,EAAA,EAA+BA,EAAAD,EAAArvN,OAAAzoC,SAAyB+3P,EACxDD,EAAArvN,OAAAsvN,GAAAwD,GAAA1kB,GAKA,IAAAl8D,EAAAk8D,EAAAhnO,KAAAihE,KAAA6pG,OACA,GAAAA,EAAA34B,OAEA,QAAAgqH,EAAA,EAAiCA,EAAArxF,EAAA1mG,IAAAj0E,OAAyBgsQ,IAC1DrxF,EAAA1mG,IAAA+3L,UAIA5Q,GAAAvkB,GAEAA,IAAAvuM,OAKAw1M,EAAAguB,GACApC,EAAAoC,GAAAxZ,GAAA,KACSxU,EAAAwU,EAAApoC,MACTu/C,EAAAnX,IAMA,OADA6Y,EAAAtlD,EAAA4iD,EAAAiD,GACA7lD,EAAA9R,IAnGA+pC,EAAAwU,IAA4BmX,EAAAnX,IAw0D5B2Z,EAAiCrR,WAAA9qL,SAdjC15D,GACA2nP,GACAzlP,GACAsvN,GACAtwN,GAlBA2pO,GACAx4M,OAAA4/N,GACAU,SAAAV,GACA7kQ,OAAA,SAAAqiN,EAAAiiD,IAEA,IAAAjiD,EAAAh2M,KAAAzL,KACAyjQ,GAAAhiD,EAAAiiD,GAEAA,UAkBAh0P,OAAA+oP,MAUArb,GAEA5yO,SAAA+O,iBAAA,6BACA,IAAAne,EAAAoP,SAAA+yP,cACAniQ,KAAA0sQ,QACAl7P,GAAAxR,EAAA,WAKA,IAAA2sQ,IACAhoB,SAAA,SAAA3kP,EAAA4sQ,EAAAvmD,EAAAysC,GACA,WAAAzsC,EAAAqE,KAEAooC,EAAAv+C,MAAAu+C,EAAAv+C,IAAAs4D,UACA3iB,GAAA7jC,EAAA,uBACAsmD,GAAA1P,iBAAAj9P,EAAA4sQ,EAAAvmD,KAGAlgB,GAAAnmM,EAAA4sQ,EAAAvmD,EAAAh5J,SAEArtD,EAAA6sQ,aAAA38P,IAAAjF,KAAAjL,EAAAgI,QAAAghL,MACK,aAAAq9B,EAAAqE,KAAAywC,GAAAn7P,EAAA+C,SACL/C,EAAAqiQ,YAAAuK,EAAA9xN,UACA8xN,EAAA9xN,UAAAqyM,OACAntP,EAAAme,iBAAA,mBAAA2uP,IACA9sQ,EAAAme,iBAAA,iBAAA4uP,IAKA/sQ,EAAAme,iBAAA,SAAA4uP,IAEA/qB,IACAhiP,EAAA0sQ,QAAA,MAMAzP,iBAAA,SAAAj9P,EAAA4sQ,EAAAvmD,GACA,cAAAA,EAAAqE,IAAA,CACAvkB,GAAAnmM,EAAA4sQ,EAAAvmD,EAAAh5J,SAKA,IAAA2/M,EAAAhtQ,EAAA6sQ,UACAI,EAAAjtQ,EAAA6sQ,aAAA38P,IAAAjF,KAAAjL,EAAAgI,QAAAghL,IACA,GAAAikF,EAAAt6P,KAAA,SAAA+9D,EAAApwE,GAA2C,OAAAq/O,EAAAjvK,EAAAs8L,EAAA1sQ,OAG3CN,EAAAsiL,SACAsqF,EAAA9lQ,MAAA6L,KAAA,SAAArG,GAA6C,OAAA4gQ,GAAA5gQ,EAAA2gQ,KAC7CL,EAAA9lQ,QAAA8lQ,EAAAvnC,UAAA6nC,GAAAN,EAAA9lQ,MAAAmmQ,KAEAz7P,GAAAxR,EAAA,aAOA,SAAAmmM,GAAAnmM,EAAA4sQ,EAAAtmB,GACA6mB,GAAAntQ,EAAA4sQ,EAAAtmB,IAEAvE,GAAAE,IACAp2O,WAAA,WACAshQ,GAAAntQ,EAAA4sQ,EAAAtmB,IACK,GAIL,SAAA6mB,GAAAntQ,EAAA4sQ,EAAAtmB,GACA,IAAAx/O,EAAA8lQ,EAAA9lQ,MACAsmQ,EAAAptQ,EAAAsiL,SACA,IAAA8qF,GAAAhiQ,MAAAC,QAAAvE,GAAA,CASA,IADA,IAAAmjB,EAAAzN,EACAlc,EAAA,EAAAC,EAAAP,EAAAgI,QAAAxH,OAAwCF,EAAAC,EAAOD,IAE/C,GADAkc,EAAAxc,EAAAgI,QAAA1H,GACA8sQ,EACAnjP,EAAAi2N,EAAAp5O,EAAAkiL,GAAAxsK,KAAA,EACAA,EAAAyN,eACAzN,EAAAyN,iBAGA,GAAA01N,EAAA32D,GAAAxsK,GAAA1V,GAIA,YAHA9G,EAAAqtQ,gBAAA/sQ,IACAN,EAAAqtQ,cAAA/sQ,IAMA8sQ,IACAptQ,EAAAqtQ,eAAA,IAIA,SAAAH,GAAApmQ,EAAAkB,GACA,OAAAA,EAAAovG,MAAA,SAAA1mC,GAAqC,OAAAivK,EAAAjvK,EAAA5pE,KAGrC,SAAAkiL,GAAAxsK,GACA,iBAAAA,EACAA,EAAAqlP,OACArlP,EAAA1V,MAGA,SAAAgmQ,GAAAppQ,GACAA,EAAA5D,OAAAmiQ,WAAA,EAGA,SAAA8K,GAAArpQ,GAEAA,EAAA5D,OAAAmiQ,YACAv+P,EAAA5D,OAAAmiQ,WAAA,EACAzwP,GAAA9N,EAAA5D,OAAA,UAGA,SAAA0R,GAAAxR,EAAA+C,GACA,IAAAW,EAAA0L,SAAAynH,YAAA,cACAnzH,EAAAozH,UAAA/zH,GAAA,MACA/C,EAAA+2H,cAAArzH,GAMA,SAAA4pQ,GAAAjnD,GACA,OAAAA,EAAAG,mBAAAH,EAAAh2M,MAAAg2M,EAAAh2M,KAAA4yJ,WAEAojD,EADAinD,GAAAjnD,EAAAG,kBAAA2sC,QAIA,IAuDAoa,IACAz2O,MAAA61O,GACA/nQ,MAxDAmF,KAAA,SAAA/J,EAAAmY,EAAAkuM,GACA,IAAAv/M,EAAAqR,EAAArR,MAGA0mQ,GADAnnD,EAAAinD,GAAAjnD,IACAh2M,MAAAg2M,EAAAh2M,KAAA4yJ,WACAwqG,EAAAztQ,EAAA0tQ,mBACA,SAAA1tQ,EAAA8X,MAAAM,QAAA,GAAApY,EAAA8X,MAAAM,QACAtR,GAAA0mQ,GACAnnD,EAAAh2M,KAAAzL,MAAA,EACA0hQ,GAAAjgD,EAAA,WACArmN,EAAA8X,MAAAM,QAAAq1P,KAGAztQ,EAAA8X,MAAAM,QAAAtR,EAAA2mQ,EAAA,QAIA3xN,OAAA,SAAA97C,EAAAmY,EAAAkuM,GACA,IAAAv/M,EAAAqR,EAAArR,OAIAA,IAHAqR,EAAAktN,YAIAhf,EAAAinD,GAAAjnD,IACAh2M,MAAAg2M,EAAAh2M,KAAA4yJ,YAEAojD,EAAAh2M,KAAAzL,MAAA,EACAkC,EACAw/P,GAAAjgD,EAAA,WACArmN,EAAA8X,MAAAM,QAAApY,EAAA0tQ,qBAGArF,GAAAhiD,EAAA,WACArmN,EAAA8X,MAAAM,QAAA,UAIApY,EAAA8X,MAAAM,QAAAtR,EAAA9G,EAAA0tQ,mBAAA,SAIAC,OAAA,SACA3tQ,EACA4sQ,EACAvmD,EACAysC,EACA4J,GAEAA,IACA18P,EAAA8X,MAAAM,QAAApY,EAAA0tQ,uBAeAE,IACAzrQ,KAAAuO,OACAw2P,OAAAluP,QACA4mN,IAAA5mN,QACA4+G,KAAAlnH,OACA3N,KAAA2N,OACAqzP,WAAArzP,OACAwzP,WAAAxzP,OACAszP,aAAAtzP,OACAyzP,aAAAzzP,OACAuzP,iBAAAvzP,OACA0zP,iBAAA1zP,OACAi2P,YAAAj2P,OACAm2P,kBAAAn2P,OACAk2P,cAAAl2P,OACA67E,UAAAjyE,OAAA5J,OAAAvH,SAKA,SAAA0kQ,GAAAxnD,GACA,IAAAynD,EAAAznD,KAAAm9B,iBACA,OAAAsqB,KAAA7iC,KAAAjjO,QAAA8sP,SACA+Y,GAAAvnD,GAAAwnD,EAAAhmF,WAEAu+B,EAIA,SAAA0nD,GAAAhjB,GACA,IAAA16O,KACArI,EAAA+iP,EAAApzO,SAEA,QAAArO,KAAAtB,EAAA8/O,UACAz3O,EAAA/G,GAAAyhP,EAAAzhP,GAIA,IAAAy7E,EAAA/8E,EAAAsrP,iBACA,QAAA3M,KAAA5hK,EACA10E,EAAA+uO,EAAAuH,IAAA5hK,EAAA4hK,GAEA,OAAAt2O,EAGA,SAAAk3N,GAAA/vN,EAAAw2P,GACA,oBAAA9yM,KAAA8yM,EAAAtjD,KACA,OAAAlzM,EAAA,cACAnV,MAAA2rQ,EAAAxqB,iBAAAsE,YAiBA,IAAAmmB,IACA9rQ,KAAA,aACAE,MAAAurQ,GACA9Y,UAAA,EAEA9xP,OAAA,SAAAwU,GACA,IAAA8yC,EAAA/qD,KAEAuoL,EAAAvoL,KAAA8Y,OAAAC,QACA,GAAAwvK,IAKAA,IAAAnhK,OAAA,SAAA84C,GAA6C,OAAAA,EAAAirJ,KAAA25B,GAAA5kL,MAE7Cj/D,OAAA,CAKQ,EAQR,IAAAo3H,EAAAr4H,KAAAq4H,KAGQ,EASR,IAAAo2I,EAAAlmF,EAAA,GAIA,GAzDA,SAAAu+B,GACA,KAAAA,IAAAv9K,QACA,GAAAu9K,EAAAh2M,KAAA4yJ,WACA,SAsDAirG,CAAA3uQ,KAAAmyE,QACA,OAAAs8L,EAKA,IAAAniO,EAAAgiO,GAAAG,GAEA,IAAAniO,EACA,OAAAmiO,EAGA,GAAAzuQ,KAAA4uQ,SACA,OAAA5mC,GAAA/vN,EAAAw2P,GAMA,IAAA/sQ,EAAA,gBAAA1B,KAAA,SACAssC,EAAAviC,IAAA,MAAAuiC,EAAAviC,IACAuiC,EAAAo4M,UACAhjP,EAAA,UACAA,EAAA4qC,EAAA6+K,IACAsgB,EAAAn/L,EAAAviC,KACA,IAAAoH,OAAAm7B,EAAAviC,KAAAjK,QAAA4B,GAAA4qC,EAAAviC,IAAArI,EAAA4qC,EAAAviC,IACAuiC,EAAAviC,IAEA,IAAA+G,GAAAw7B,EAAAx7B,OAAAw7B,EAAAx7B,UAA8C4yJ,WAAA8qG,GAAAxuQ,MAC9C6uQ,EAAA7uQ,KAAA4zP,OACAkb,EAAAR,GAAAO,GAQA,GAJAviO,EAAAx7B,KAAAszK,YAAA93I,EAAAx7B,KAAAszK,WAAAhxK,KAAA,SAAAqb,GAA0E,eAAAA,EAAA7rB,SAC1E0pC,EAAAx7B,KAAAzL,MAAA,GAIAypQ,GACAA,EAAAh+P,OAzFA,SAAAw7B,EAAAwiO,GACA,OAAAA,EAAA/kQ,MAAAuiC,EAAAviC,KAAA+kQ,EAAA3jD,MAAA7+K,EAAA6+K,IAyFA4jD,CAAAziO,EAAAwiO,KACAhqB,GAAAgqB,MAEAA,EAAA7nD,oBAAA6nD,EAAA7nD,kBAAA2sC,OAAAlP,WACA,CAGA,IAAAhkN,EAAAouO,EAAAh+P,KAAA4yJ,WAAAh6J,KAAwDoH,GAExD,cAAAunH,EAOA,OALAr4H,KAAA4uQ,UAAA,EACAjkB,GAAAjqN,EAAA,wBACAqqB,EAAA6jN,UAAA,EACA7jN,EAAAipM,iBAEAhsB,GAAA/vN,EAAAw2P,GACO,cAAAp2I,EAAA,CACP,GAAAysH,GAAAx4M,GACA,OAAAuiO,EAEA,IAAAG,EACA5F,EAAA,WAAwC4F,KACxCrkB,GAAA75O,EAAA,aAAAs4P,GACAze,GAAA75O,EAAA,iBAAAs4P,GACAze,GAAAjqN,EAAA,sBAAAooO,GAAgEkG,EAAAlG,KAIhE,OAAA2F,KAiBA3rQ,GAAA4G,GACAyhN,IAAAh6M,OACA89P,UAAA99P,QACCk9P,IA6HD,SAAAa,GAAAhvM,GAEAA,EAAA80I,IAAAm6D,SACAjvM,EAAA80I,IAAAm6D,UAGAjvM,EAAA80I,IAAAmyD,UACAjnM,EAAA80I,IAAAmyD,WAIA,SAAAiI,GAAAlvM,GACAA,EAAApvD,KAAAykE,OAAArV,EAAA80I,IAAAr2J,wBAGA,SAAA0wN,GAAAnvM,GACA,IAAAsV,EAAAtV,EAAApvD,KAAA4gB,IACA6jD,EAAArV,EAAApvD,KAAAykE,OACAxnC,EAAAynC,EAAA3vE,KAAA0vE,EAAA1vE,KACAmoC,EAAAwnC,EAAAxjE,IAAAujE,EAAAvjE,IACA,GAAA+7B,GAAAC,EAAA,CACAkyB,EAAApvD,KAAAw+P,OAAA,EACA,IAAAn3P,EAAA+nD,EAAA80I,IAAAz8L,MACAJ,EAAA8f,UAAA9f,EAAAo3P,gBAAA,aAAAxhO,EAAA,MAAAC,EAAA,MACA71B,EAAAgd,mBAAA,aAnJAryB,GAAAu1H,KAuJA,IAAAm3I,IACAd,cACAe,iBAtJA3sQ,SAEAW,OAAA,SAAAwU,GAQA,IAPA,IAAAkzM,EAAAnrN,KAAAmrN,KAAAnrN,KAAAmyE,OAAArhE,KAAAq6M,KAAA,OACAx6M,EAAA/G,OAAA8/B,OAAA,MACAgmO,EAAA1vQ,KAAA0vQ,aAAA1vQ,KAAAuoL,SACAonF,EAAA3vQ,KAAA8Y,OAAAC,YACAwvK,EAAAvoL,KAAAuoL,YACAqnF,EAAApB,GAAAxuQ,MAEAe,EAAA,EAAmBA,EAAA4uQ,EAAA1uQ,OAAwBF,IAAA,CAC3C,IAAAm/D,EAAAyvM,EAAA5uQ,GACA,GAAAm/D,EAAAirJ,IACA,SAAAjrJ,EAAAn2D,KAAA,IAAAoH,OAAA+uD,EAAAn2D,KAAAjK,QAAA,WACAyoL,EAAAhnL,KAAA2+D,GACAvvD,EAAAuvD,EAAAn2D,KAAAm2D,GACWA,EAAApvD,OAAAovD,EAAApvD,UAAuB4yJ,WAAAksG,QASlC,GAAAF,EAAA,CAGA,IAFA,IAAAG,KACAp6L,KACAujL,EAAA,EAAuBA,EAAA0W,EAAAzuQ,OAA2B+3P,IAAA,CAClD,IAAA8W,EAAAJ,EAAA1W,GACA8W,EAAAh/P,KAAA4yJ,WAAAksG,EACAE,EAAAh/P,KAAA4gB,IAAAo+O,EAAA96D,IAAAr2J,wBACAhuC,EAAAm/P,EAAA/lQ,KACA8lQ,EAAAtuQ,KAAAuuQ,GAEAr6L,EAAAl0E,KAAAuuQ,GAGA9vQ,KAAA6vQ,KAAA53P,EAAAkzM,EAAA,KAAA0kD,GACA7vQ,KAAAy1E,UAGA,OAAAx9D,EAAAkzM,EAAA,KAAA5iC,IAGA+O,aAAA,WAEAt3L,KAAAo5P,UACAp5P,KAAA4zP,OACA5zP,KAAA6vQ,MACA,GACA,GAEA7vQ,KAAA4zP,OAAA5zP,KAAA6vQ,MAGAzoC,QAAA,WACA,IAAA7+C,EAAAvoL,KAAA0vQ,aACAT,EAAAjvQ,KAAAivQ,YAAAjvQ,KAAA4C,MAAA,aACA2lL,EAAAtnL,QAAAjB,KAAA+vQ,QAAAxnF,EAAA,GAAAysB,IAAAi6D,KAMA1mF,EAAAz+K,QAAAolQ,IACA3mF,EAAAz+K,QAAAslQ,IACA7mF,EAAAz+K,QAAAulQ,IAKArvQ,KAAAgwQ,QAAAngQ,SAAAG,KAAAmtC,aAEAorI,EAAAz+K,QAAA,SAAAo2D,GACA,GAAAA,EAAApvD,KAAAw+P,MAAA,CACA,IAAA7uQ,EAAAy/D,EAAA80I,IACA78L,EAAA1X,EAAA8X,MACAotP,GAAAllQ,EAAAwuQ,GACA92P,EAAA8f,UAAA9f,EAAAo3P,gBAAAp3P,EAAAgd,mBAAA,GACA10B,EAAAme,iBAAAsmP,GAAAzkQ,EAAA0uQ,QAAA,SAAA7nM,EAAAnjE,GACAA,IAAA,aAAAw3D,KAAAx3D,EAAA0jD,gBACApnD,EAAAqe,oBAAAomP,GAAA59L,GACA7mE,EAAA0uQ,QAAA,KACAtJ,GAAAplQ,EAAAwuQ,WAOAlzP,SACAg0P,QAAA,SAAAtvQ,EAAAwuQ,GAEA,IAAAnK,GACA,SAGA,GAAA9kQ,KAAAiwQ,SACA,OAAAjwQ,KAAAiwQ,SAOA,IAAAjmO,EAAAvpC,EAAAyvQ,YACAzvQ,EAAAi+P,oBACAj+P,EAAAi+P,mBAAA50P,QAAA,SAAA00P,GAAsDjkL,GAAAvwC,EAAAw0N,KAEtDxkL,GAAAhwC,EAAAilO,GACAjlO,EAAAzxB,MAAAM,QAAA,OACA7Y,KAAA0c,IAAAzM,YAAA+5B,GACA,IAAA8wC,EAAAkrL,GAAAh8N,GAEA,OADAhqC,KAAA0c,IAAA8vB,YAAAxC,GACAhqC,KAAAiwQ,SAAAn1L,EAAA6rL,iBAyCAryO,GAAA0rB,OAAA2hM,eACArtN,GAAA0rB,OAAAshM,iBACAhtN,GAAA0rB,OAAAuhM,kBACAjtN,GAAA0rB,OAAAyhM,mBACAntN,GAAA0rB,OAAAwhM,iBA7rGA,SAAAr2B,GAEA,IAAA+2B,EACA,SAEA,GAAAZ,GAAAn2B,GACA,SAIA,GAFAA,IAAA7yM,cAEA,MAAAqjP,GAAAxwC,GACA,OAAAwwC,GAAAxwC,GAEA,IAAA1qN,EAAAoP,SAAAC,cAAAq7M,GACA,OAAAA,EAAArrN,QAAA,QAEA67P,GAAAxwC,GACA1qN,EAAAN,cAAAwP,OAAAwgQ,oBACA1vQ,EAAAN,cAAAwP,OAAAygQ,YAGAzU,GAAAxwC,GAAA,qBAAAxvJ,KAAAl7D,EAAAmH,aA2qGA8B,EAAA4qB,GAAA7rB,QAAA27K,WAAA4pF,IACAtkQ,EAAA4qB,GAAA7rB,QAAA2rB,WAAAo7O,IAGAl7O,GAAAp0B,UAAAk5P,UAAAlX,EAAAqnB,GAAAltM,EAGA/nC,GAAAp0B,UAAAqmN,OAAA,SACA9lN,EACAkyP,GAGA,OAzqLA,SACA5L,EACAtmP,EACAkyP,GA8DA,OA5DA5L,EAAArqO,IAAAjc,EACAsmP,EAAA3uO,SAAA3U,SACAsjP,EAAA3uO,SAAA3U,OAAAshP,IAmBA4H,GAAA5F,EAAA,eA8BA,IAAAyG,GAAAzG,EARA,WACAA,EAAAz6K,QAAAy6K,EAAAwS,UAAA5G,IAOAt2L,EAAA,SACAs2L,GAAA,EAIA,MAAA5L,EAAA50K,SACA40K,EAAAsG,YAAA,EACAV,GAAA5F,EAAA,YAEAA,EAwmLAspB,CAAArwQ,KADAS,KAAAyhP,EAAAnsL,GAAAt1D,QAAAiN,EACAilP,IAKAzQ,GACA51O,WAAA,WACA0zC,EAAAihM,UACAA,IACAA,GAAA37J,KAAA,OAAAhxD,KAuBG,GAKH,IAAAg8O,GAAA,wBACAC,GAAA,yBAEAC,GAAA9wB,EAAA,SAAA+wB,GACA,IAAA3hQ,EAAA2hQ,EAAA,GAAAloQ,QAAAgoQ,GAAA,QACAz3L,EAAA23L,EAAA,GAAAloQ,QAAAgoQ,GAAA,QACA,WAAAjoQ,OAAAwG,EAAA,gBAAAgqE,EAAA,OAKA,SAAA43L,GACAr/N,EACAo/N,GAEA,IAAAE,EAAAF,EAAAD,GAAAC,GAAAH,GACA,GAAAK,EAAAh1M,KAAAtqB,GAAA,CAOA,IAJA,IAGAloC,EAAAyD,EAAAgkQ,EAHAp7N,KACAq7N,KACAxgK,EAAAsgK,EAAAtgK,UAAA,EAEAlnG,EAAAwnQ,EAAAxuL,KAAA9wC,IAAA,EACAzkC,EAAAzD,EAAAyD,OAEAyjG,IACAwgK,EAAAtvQ,KAAAqvQ,EAAAv/N,EAAA/uC,MAAA+tG,EAAAzjG,IACA4oC,EAAAj0C,KAAA2L,KAAAE,UAAAwjQ,KAGA,IAAA33I,EAAAimI,GAAA/1P,EAAA,GAAAq4E,QACAhsC,EAAAj0C,KAAA,MAAA03H,EAAA,KACA43I,EAAAtvQ,MAAoBuvQ,WAAA73I,IACpB5oB,EAAAzjG,EAAAzD,EAAA,GAAAlI,OAMA,OAJAovG,EAAAh/D,EAAApwC,SACA4vQ,EAAAtvQ,KAAAqvQ,EAAAv/N,EAAA/uC,MAAA+tG,IACA76D,EAAAj0C,KAAA2L,KAAAE,UAAAwjQ,MAGAxxP,WAAAo2B,EAAApvC,KAAA,KACAovC,OAAAq7N,IAwCA,IAAAE,IACAC,YAAA,eACAC,cApCA,SAAAxwQ,EAAAgI,GACAA,EAAAiN,KAAA,IACA0B,EAAAwpP,GAAAngQ,EAAA,SAYA2W,IACA3W,EAAA2W,YAAAlK,KAAAE,UAAAgK,IAEA,IAAA85P,EAAAzQ,GAAAhgQ,EAAA,YACAywQ,IACAzwQ,EAAAywQ,iBAkBAC,QAdA,SAAA1wQ,GACA,IAAAqQ,EAAA,GAOA,OANArQ,EAAA2W,cACAtG,GAAA,eAAArQ,EAAA,iBAEAA,EAAAywQ,eACApgQ,GAAA,SAAArQ,EAAA,kBAEAqQ,IA+CA,IAQAu8H,GARA+jI,IACAJ,YAAA,eACAC,cAtCA,SAAAxwQ,EAAAgI,GACAA,EAAAiN,KAAA,IACA0tP,EAAAxC,GAAAngQ,EAAA,SACA2iQ,IAaA3iQ,EAAA2iQ,YAAAl2P,KAAAE,UAAA41P,GAAAI,KAGA,IAAAiO,EAAA5Q,GAAAhgQ,EAAA,YACA4wQ,IACA5wQ,EAAA4wQ,iBAkBAF,QAdA,SAAA1wQ,GACA,IAAAqQ,EAAA,GAOA,OANArQ,EAAA2iQ,cACAtyP,GAAA,eAAArQ,EAAA,iBAEAA,EAAA4wQ,eACAvgQ,GAAA,UAAArQ,EAAA,mBAEAqQ,IAaAwgQ,GACA,SAAA1vN,GAGA,OAFAyrF,OAAAx9H,SAAAC,cAAA,QACA8kC,UAAAgN,EACAyrF,GAAA1sF,aAMA4wN,GAAAjyB,EACA,6FAMAkyB,GAAAlyB,EACA,2DAKAmyB,GAAAnyB,EACA,mSAmBAr+L,GAAA,4EAGAywN,GAAA,wBACAC,GAAA,OAAAD,GAAA,QAAAA,GAAA,IACAE,GAAA,IAAAtpQ,OAAA,KAAAqpQ,IACAE,GAAA,aACAC,GAAA,IAAAxpQ,OAAA,QAAAqpQ,GAAA,UACAI,GAAA,qBAEAC,GAAA,SACAC,GAAA,QAEAC,IAAA,EACA,IAAA3pQ,QAAA,kBAAAokB,EAAAyf,GACA8lO,GAAA,KAAA9lO,IAIA,IAAA+lO,GAAA7yB,EAAA,4BACA8yB,MAEAC,IACAC,OAAO,IACPC,OAAO,IACPC,SAAS,IACTC,QAAQ,IACRC,QAAQ,KACRC,OAAO,MAEPC,GAAA,wBACAC,GAAA,+BAGAC,GAAAxzB,EAAA,mBACAyzB,GAAA,SAAA5nD,EAAAvpK,GAAqD,OAAAupK,GAAA2nD,GAAA3nD,IAAA,OAAAvpK,EAAA,IAErD,SAAAoxN,GAAAzrQ,EAAA0rQ,GACA,IAAAlkH,EAAAkkH,EAAAJ,GAAAD,GACA,OAAArrQ,EAAAgB,QAAAwmJ,EAAA,SAAA5lJ,GAA6C,OAAAkpQ,GAAAlpQ,KAmQ7C,IAaA+pQ,GACAzC,GACA0C,GACAC,GACAC,GACAC,GACAC,GACAC,GApBAC,GAAA,YACAC,GAAA,YACAC,GAAA,+BACAC,GAAA,iCACAC,GAAA,WAEAC,GAAA,SACAC,GAAA,cACAC,GAAA,WAEAC,GAAAv0B,EAAA4xB,IAcA,SAAA4C,GACA/oD,EACA9zM,EACAkyB,GAEA,OACA/lC,KAAA,EACA2nN,MACAi1C,UAAA/oP,EACA8oP,SA2iBA,SAAA9oP,GAEA,IADA,IAAA1G,KACA5P,EAAA,EAAAC,EAAAqW,EAAApW,OAAmCF,EAAAC,EAAOD,IAO1C4P,EAAA0G,EAAAtW,GAAA6B,MAAAyU,EAAAtW,GAAAwG,MAEA,OAAAoJ,EAtjBAwjQ,CAAA98P,GACAkyB,SACAg/I,aAOA,SAAAp7K,GACAinQ,EACA3rQ,GAEAyqQ,GAAAzqQ,EAAAiN,MAAAoqP,GAEAwT,GAAA7qQ,EAAA4rQ,UAAAl0B,EACAozB,GAAA9qQ,EAAAk5O,aAAAxB,EACAqzB,GAAA/qQ,EAAAg5O,iBAAAtB,EAEAgzB,GAAApT,GAAAt3P,EAAAsoE,QAAA,iBACAqiM,GAAArT,GAAAt3P,EAAAsoE,QAAA,oBACAsiM,GAAAtT,GAAAt3P,EAAAsoE,QAAA,qBAEA0/L,GAAAhoQ,EAAAgoQ,WAEA,IAEA51N,EACAy5N,EAHAxmQ,KACAymQ,GAAA,IAAA9rQ,EAAA8rQ,mBAGAhI,GAAA,EACAiI,GAAA,EAUA,SAAAC,EAAAhuO,GAEAA,EAAA/gB,MACA6mP,GAAA,GAEA+G,GAAA7sO,EAAA0kL,OACAqpD,GAAA,GAGA,QAAAzzQ,EAAA,EAAmBA,EAAAsyQ,GAAApyQ,OAA2BF,IAC9CsyQ,GAAAtyQ,GAAA0lC,EAAAh+B,GAwLA,OA3gBA,SAAAm5C,EAAAn5C,GAOA,IANA,IAKAmuE,EAAA89L,EALA5mQ,KACA6mQ,EAAAlsQ,EAAAksQ,WACAC,EAAAnsQ,EAAA8oQ,YAAApxB,EACA00B,EAAApsQ,EAAA+oQ,kBAAArxB,EACAvzO,EAAA,EAEAg1C,GAAA,CAGA,GAFAg1B,EAAAh1B,EAEA8yN,GAAAvC,GAAAuC,GAgFK,CACL,IAAAI,EAAA,EACAC,EAAAL,EAAAp8P,cACA08P,EAAA5C,GAAA2C,KAAA3C,GAAA2C,GAAA,IAAAzsQ,OAAA,kBAAAysQ,EAAA,gBACAE,EAAArzN,EAAAr5C,QAAAysQ,EAAA,SAAA71M,EAAA9tB,EAAAygO,GAaA,OAZAgD,EAAAhD,EAAA7wQ,OACAkxQ,GAAA4C,IAAA,aAAAA,IACA1jO,IACA9oC,QAAA,4BACAA,QAAA,mCAEAwqQ,GAAAgC,EAAA1jO,KACAA,IAAA/uC,MAAA,IAEAmG,EAAA+mI,OACA/mI,EAAA+mI,MAAAn+F,GAEA,KAEAzkC,GAAAg1C,EAAA3gD,OAAAg0Q,EAAAh0Q,OACA2gD,EAAAqzN,EACAC,EAAAH,EAAAnoQ,EAAAkoQ,EAAAloQ,OArGA,CACA,IAAAuoQ,EAAAvzN,EAAA9hD,QAAA,KACA,OAAAq1Q,EAAA,CAEA,GAAAnD,GAAAr2M,KAAA/Z,GAAA,CACA,IAAAwzN,EAAAxzN,EAAA9hD,QAAA,UAEA,GAAAs1Q,GAAA,GACA3sQ,EAAA4sQ,mBACA5sQ,EAAAupQ,QAAApwN,EAAA4gC,UAAA,EAAA4yL,IAEAE,EAAAF,EAAA,GACA,UAKA,GAAAnD,GAAAt2M,KAAA/Z,GAAA,CACA,IAAA2zN,EAAA3zN,EAAA9hD,QAAA,MAEA,GAAAy1Q,GAAA,GACAD,EAAAC,EAAA,GACA,UAKA,IAAAC,EAAA5zN,EAAAz4C,MAAA4oQ,IACA,GAAAyD,EAAA,CACAF,EAAAE,EAAA,GAAAv0Q,QACA,SAIA,IAAAw0Q,EAAA7zN,EAAAz4C,MAAA2oQ,IACA,GAAA2D,EAAA,CACA,IAAAC,EAAA9oQ,EACA0oQ,EAAAG,EAAA,GAAAx0Q,QACAi0Q,EAAAO,EAAA,GAAAC,EAAA9oQ,GACA,SAIA,IAAA+oQ,EAAAC,IACA,GAAAD,EAAA,CACAE,EAAAF,GACA5C,GAAA2B,EAAA9yN,IACA0zN,EAAA,GAEA,UAIA,IAAAjkO,OAAA,EAAAykO,OAAA,EAAArxO,OAAA,EACA,GAAA0wO,GAAA,GAEA,IADAW,EAAAl0N,EAAAt/C,MAAA6yQ,KAEArD,GAAAn2M,KAAAm6M,IACAlE,GAAAj2M,KAAAm6M,IACA9D,GAAAr2M,KAAAm6M,IACA7D,GAAAt2M,KAAAm6M,KAGArxO,EAAAqxO,EAAAh2Q,QAAA,QACA,IACAq1Q,GAAA1wO,EACAqxO,EAAAl0N,EAAAt/C,MAAA6yQ,GAEA9jO,EAAAuQ,EAAA4gC,UAAA,EAAA2yL,GACAG,EAAAH,GAGAA,EAAA,IACA9jO,EAAAuQ,EACAA,EAAA,IAGAn5C,EAAA+mI,OAAAn+F,GACA5oC,EAAA+mI,MAAAn+F,GA0BA,GAAAuQ,IAAAg1B,EAAA,CACAnuE,EAAA+mI,OAAA/mI,EAAA+mI,MAAA5tF,GAIA,OAOA,SAAA0zN,EAAAl3N,GACAxxC,GAAAwxC,EACAwD,IAAA4gC,UAAApkC,GAGA,SAAAw3N,IACA,IAAApzQ,EAAAo/C,EAAAz4C,MAAAyoQ,IACA,GAAApvQ,EAAA,CACA,IAMA0uB,EAAAnuB,EANAoG,GACA4oC,QAAAvvC,EAAA,GACA6U,SACA7U,MAAAoK,GAIA,IAFA0oQ,EAAA9yQ,EAAA,GAAAvB,UAEAiwB,EAAA0wB,EAAAz4C,MAAA0oQ,OAAA9uQ,EAAA6+C,EAAAz4C,MAAA83C,MACAq0N,EAAAvyQ,EAAA,GAAA9B,QACAkI,EAAAkO,MAAA9V,KAAAwB,GAEA,GAAAmuB,EAIA,OAHA/nB,EAAA4sQ,WAAA7kP,EAAA,GACAokP,EAAApkP,EAAA,GAAAjwB,QACAkI,EAAA+nB,IAAAtkB,EACAzD,GAKA,SAAA0sQ,EAAA1sQ,GACA,IAAA4oC,EAAA5oC,EAAA4oC,QACAgkO,EAAA5sQ,EAAA4sQ,WAEApB,IACA,MAAAD,GAAAjD,GAAA1/N,IACAmjO,EAAAR,GAEAG,EAAA9iO,IAAA2iO,IAAA3iO,GACAmjO,EAAAnjO,IAQA,IAJA,IAAAikO,EAAApB,EAAA7iO,MAAAgkO,EAEA/0Q,EAAAmI,EAAAkO,MAAApW,OACAoW,EAAA,IAAAxL,MAAA7K,GACAD,EAAA,EAAmBA,EAAAC,EAAOD,IAAA,CAC1B,IAAAqL,EAAAjD,EAAAkO,MAAAtW,GAEAmxQ,KAAA,IAAA9lQ,EAAA,GAAAtM,QAAA,QACA,KAAAsM,EAAA,WAA6BA,EAAA,GAC7B,KAAAA,EAAA,WAA6BA,EAAA,GAC7B,KAAAA,EAAA,WAA6BA,EAAA,IAE7B,IAAA7E,EAAA6E,EAAA,IAAAA,EAAA,IAAAA,EAAA,OACA6mQ,EAAA,MAAAlhO,GAAA,SAAA3lC,EAAA,GACA3D,EAAAwtQ,4BACAxtQ,EAAAwqQ,qBACA57P,EAAAtW,IACA6B,KAAAwJ,EAAA,GACA7E,MAAAyrQ,GAAAzrQ,EAAA0rQ,IAIA+C,IACAloQ,EAAAvM,MAAkB4pN,IAAAp5K,EAAAmkO,cAAAnkO,EAAAz5B,cAAAjB,UAClBq9P,EAAA3iO,GAGAtpC,EAAAjG,OACAiG,EAAAjG,MAAAuvC,EAAA16B,EAAA2+P,EAAA7sQ,EAAA3G,MAAA2G,EAAA+nB,KAIA,SAAAgkP,EAAAnjO,EAAAvvC,EAAA0uB,GACA,IAAAQ,EAAAykP,EASA,GARA,MAAA3zQ,IAAwBA,EAAAoK,GACxB,MAAAskB,IAAsBA,EAAAtkB,GAEtBmlC,IACAokO,EAAApkO,EAAAz5B,eAIAy5B,EACA,IAAArgB,EAAA5jB,EAAA7M,OAAA,EAAkCywB,GAAA,GAClC5jB,EAAA4jB,GAAAwkP,gBAAAC,EAD4CzkP,UAO5CA,EAAA,EAGA,GAAAA,GAAA,GAEA,QAAA3wB,EAAA+M,EAAA7M,OAAA,EAAoCF,GAAA2wB,EAAU3wB,IAS9C0H,EAAAyoB,KACAzoB,EAAAyoB,IAAApjB,EAAA/M,GAAAoqN,IAAA3oN,EAAA0uB,GAKApjB,EAAA7M,OAAAywB,EACAgjP,EAAAhjP,GAAA5jB,EAAA4jB,EAAA,GAAAy5L,QACK,OAAAgrD,EACL1tQ,EAAAjG,OACAiG,EAAAjG,MAAAuvC,MAAA,EAAAvvC,EAAA0uB,GAEK,MAAAilP,IACL1tQ,EAAAjG,OACAiG,EAAAjG,MAAAuvC,MAAA,EAAAvvC,EAAA0uB,GAEAzoB,EAAAyoB,KACAzoB,EAAAyoB,IAAA6gB,EAAAvvC,EAAA0uB,IA5HAgkP,IA2NAkB,CAAAhC,GACA1+P,KAAAw9P,GACAyB,WAAAlsQ,EAAAksQ,WACApD,WAAA9oQ,EAAA8oQ,WACAC,iBAAA/oQ,EAAA+oQ,iBACAyB,qBAAAxqQ,EAAAwqQ,qBACAgD,4BAAAxtQ,EAAAwtQ,4BACAZ,kBAAA5sQ,EAAA4tQ,SACA7zQ,MAAA,SAAA2oN,EAAA9zM,EAAA2+P,GAGA,IAAA7xB,EAAAmwB,KAAAnwB,IAAAqvB,GAAAroD,GAIAq3B,GAAA,QAAA2B,IACA9sO,EAsgBA,SAAAA,GAEA,IADA,IAAAjI,KACArO,EAAA,EAAiBA,EAAAsW,EAAApW,OAAkBF,IAAA,CACnC,IAAAgC,EAAAsU,EAAAtW,GACAu1Q,GAAA36M,KAAA54D,EAAAH,QACAG,EAAAH,KAAAG,EAAAH,KAAA2F,QAAAguQ,GAAA,IACAnnQ,EAAA7N,KAAAwB,IAGA,OAAAqM,EA/gBAonQ,CAAAn/P,IAGA,IAqfA5W,EArfAgmC,EAAAytO,GAAA/oD,EAAA9zM,EAAAi9P,GACAnwB,IACA19M,EAAA09M,MAqfA,WAFA1jP,EAhfAgmC,GAkfA0kL,MACA,WAAA1qN,EAAA0qN,KACA1qN,EAAA0/P,SAAA38P,MACA,oBAAA/C,EAAA0/P,SAAA38P,OArfAs/O,OACAr8M,EAAAgwO,WAAA,GASA,QAAA11Q,EAAA,EAAqBA,EAAAqyQ,GAAAnyQ,OAA0BF,IAC/C0lC,EAAA2sO,GAAAryQ,GAAA0lC,EAAAh+B,IAAAg+B,EAuBA,SAAAiwO,EAAAj2Q,GACY,EAoCZ,GAzDA8rQ,KAiJA,SAAA9rQ,GACA,MAAAmgQ,GAAAngQ,EAAA,WACAA,EAAAilB,KAAA,GAlJAixP,CAAAlwO,GACAA,EAAA/gB,MACA6mP,GAAA,IAGA+G,GAAA7sO,EAAA0kL,OACAqpD,GAAA,GAEAjI,EA8IA,SAAA9rQ,GACA,IAAAO,EAAAP,EAAA2/P,UAAAn/P,OACA,GAAAD,EAEA,IADA,IAAAqW,EAAA5W,EAAA4W,MAAA,IAAAxL,MAAA7K,GACAD,EAAA,EAAmBA,EAAAC,EAAOD,IAC1BsW,EAAAtW,IACA6B,KAAAnC,EAAA2/P,UAAAr/P,GAAA6B,KACA2E,MAAA2F,KAAAE,UAAA3M,EAAA2/P,UAAAr/P,GAAAwG,aAGG9G,EAAAilB,MAEHjlB,EAAAkzE,OAAA,GAzJAijM,CAAAnwO,GACOA,EAAAowO,YAEPC,GAAArwO,GA+NA,SAAAhmC,GACA,IAAAw4H,EAAA2nI,GAAAngQ,EAAA,QACA,GAAAw4H,EACAx4H,EAAAs2Q,GAAA99I,EACA+9I,GAAAv2Q,GACAw4H,MACAq4G,MAAA7wO,QAEG,CACH,MAAAmgQ,GAAAngQ,EAAA,YACAA,EAAAw2Q,MAAA,GAEA,IAAAC,EAAAtW,GAAAngQ,EAAA,aACAy2Q,IACAz2Q,EAAAy2Q,WA5OAC,CAAA1wO,GAwRA,SAAAhmC,GAEA,MADAmgQ,GAAAngQ,EAAA,YAEAA,EAAAqlF,MAAA,GA1RAsxL,CAAA3wO,GAEA4wO,GAAA5wO,EAAAh+B,IAqBAoyC,EAGO/sC,EAAA7M,QAEP45C,EAAAk8N,KAAAtwO,EAAAywO,QAAAzwO,EAAAwwO,QACAP,IACAM,GAAAn8N,GACAo+E,IAAAxyF,EAAAywO,OACA5lC,MAAA7qM,MARAoU,EAAApU,EACAiwO,KAiBApC,IAAA7tO,EAAAgwO,UACA,GAAAhwO,EAAAywO,QAAAzwO,EAAAwwO,MAqMA,SAAAx2Q,EAAA8oC,GACA,IAAA+1B,EAcA,SAAAipH,GACA,IAAAxnL,EAAAwnL,EAAAtnL,OACA,KAAAF,KAAA,CACA,OAAAwnL,EAAAxnL,GAAAyC,KACA,OAAA+kL,EAAAxnL,GAQAwnL,EAAAzxH,OA1BAwgN,CAAA/tO,EAAAg/I,UACAjpH,KAAAy3M,IACAC,GAAA13M,GACA25D,IAAAx4H,EAAAy2Q,OACA5lC,MAAA7wO,IAzMA82Q,CAAA9wO,EAAA6tO,QACS,GAAA7tO,EAAA+wO,UAAA,CACTlD,EAAA3gM,OAAA,EACA,IAAA/wE,EAAA6jC,EAAAgxO,YAAA,aAAuDnD,EAAA/hB,cAAA+hB,EAAA/hB,iBAA6D3vP,GAAA6jC,OAEpH6tO,EAAA/rF,SAAAhnL,KAAAklC,GACAA,EAAA8C,OAAA+qO,EAGA0B,EAIAvB,EAAAhuO,IAHA6tO,EAAA7tO,EACA34B,EAAAvM,KAAAklC,KAMAvV,IAAA,WAEA,IAAAuV,EAAA34B,IAAA7M,OAAA,GACAy2Q,EAAAjxO,EAAA8hJ,SAAA9hJ,EAAA8hJ,SAAAtnL,OAAA,GACAy2Q,GAAA,IAAAA,EAAAl0Q,MAAA,MAAAk0Q,EAAArmO,OAAAmjO,GACA/tO,EAAA8hJ,SAAAzxH,MAGAhpD,EAAA7M,QAAA,EACAqzQ,EAAAxmQ,IAAA7M,OAAA,GACAwzQ,EAAAhuO,IAGA+oG,MAAA,SAAAn+F,GACA,GAAAijO,KAgBA9xB,GACA,aAAA8xB,EAAAnpD,KACAmpD,EAAAnU,SAAAn4B,cAAA32L,GAFA,CAMA,IA8WA5wC,EAxWA2O,EANAm5K,EAAA+rF,EAAA/rF,SAKA,GAJAl3I,EAAAmjO,GAAAnjO,EAAAmwC,OA8WA,YADA/gF,EA5WA6zQ,GA6WAnpD,KAAA,UAAA1qN,EAAA0qN,IA7WA95K,EAAA4iO,GAAA5iO,GAEAkjO,GAAAhsF,EAAAtnL,OAAA,QAGAsrQ,GAAA,MAAAl7N,IAAAjiC,EAAAshQ,GAAAr/N,EAAAo/N,KACAloF,EAAAhnL,MACAiC,KAAA,EACA4b,WAAAhQ,EAAAgQ,WACAo2B,OAAApmC,EAAAomC,OACAnE,SAES,MAAAA,GAAAk3I,EAAAtnL,QAAA,MAAAsnL,IAAAtnL,OAAA,GAAAowC,MACTk3I,EAAAhnL,MACAiC,KAAA,EACA6tC,WAKA2gO,QAAA,SAAA3gO,GACAijO,EAAA/rF,SAAAhnL,MACAiC,KAAA,EACA6tC,OACAqzM,WAAA,OAIA7pM,EAyBA,SAAAw8N,GAAA5wO,EAAAh+B,GAgBA,IAAAhI,EACAw4H,KAAAwnI,GADAhgQ,EAfAgmC,EAgBA,UAKAhmC,EAAAsJ,IAAAkvH,GAjBAxyF,EAAAktC,OAAAltC,EAAA18B,MAAA08B,EAAA25N,UAAAn/P,OAqBA,SAAAR,GACA,IAAAmY,EAAA6nP,GAAAhgQ,EAAA,OACAmY,IACAnY,EAAAmY,MACAnY,EAAA87P,SAsPA,SAAA97P,GACA,IAAA8oC,EAAA9oC,EACA,KAAA8oC,GAAA,CACA,QAAA77B,IAAA67B,EAAAm1B,IACA,SAEAn1B,WAEA,SA9PAouO,CAAAl3Q,IAvBAm3Q,CAAAnxO,GA+HA,SAAAhmC,GACA,YAAAA,EAAA0qN,IACA1qN,EAAAo3Q,SAAApX,GAAAhgQ,EAAA,YAQG,CACH,IAAA+2Q,EACA,aAAA/2Q,EAAA0qN,KACAqsD,EAAA5W,GAAAngQ,EAAA,SAWAA,EAAA+2Q,aAAA5W,GAAAngQ,EAAA,gBACK+2Q,EAAA5W,GAAAngQ,EAAA,iBAULA,EAAA+2Q,aAEA,IAAAC,EAAAhX,GAAAhgQ,EAAA,QACAg3Q,IACAh3Q,EAAAg3Q,WAAA,OAAAA,EAAA,YAAAA,EAGA,aAAAh3Q,EAAA0qN,KAAA1qN,EAAA+2Q,WACAvX,GAAAx/P,EAAA,OAAAg3Q,KAzKAK,CAAArxO,GA+KA,SAAAhmC,GACA,IAAA4sQ,GACAA,EAAA5M,GAAAhgQ,EAAA,SACAA,EAAA8zB,UAAA84O,GAEA,MAAAzM,GAAAngQ,EAAA,qBACAA,EAAA4yP,gBAAA,GApLA0kB,CAAAtxO,GACA,QAAA1lC,EAAA,EAAiBA,EAAAoyQ,GAAAlyQ,OAAuBF,IACxC0lC,EAAA0sO,GAAApyQ,GAAA0lC,EAAAh+B,IAAAg+B,GAsLA,SAAAhmC,GACA,IACAM,EAAAC,EAAA4B,EAAAyhL,EAAA98K,EAAAg0C,EAAAy8N,EADAnrP,EAAApsB,EAAA2/P,UAEA,IAAAr/P,EAAA,EAAAC,EAAA6rB,EAAA5rB,OAA8BF,EAAAC,EAAOD,IAAA,CAGrC,GAFA6B,EAAAyhL,EAAAx3J,EAAA9rB,GAAA6B,KACA2E,EAAAslB,EAAA9rB,GAAAwG,MACAmsQ,GAAA/3M,KAAA/4D,GAQA,GANAnC,EAAAw3Q,aAAA,GAEA18N,EAAA28N,GAAAt1Q,MAEAA,IAAA2F,QAAAyrQ,GAAA,KAEAD,GAAAp4M,KAAA/4D,GACAA,IAAA2F,QAAAwrQ,GAAA,IACAxsQ,EAAA23P,GAAA33P,GACAywQ,GAAA,EACAz8N,IACAA,EAAAz6C,OACAk3Q,GAAA,EAEA,eADAp1Q,EAAAi9O,EAAAj9O,MACuCA,EAAA,cAEvC24C,EAAA48N,QACAv1Q,EAAAi9O,EAAAj9O,IAEA24C,EAAAg8C,MACA+oK,GACA7/P,EACA,UAAAo/O,EAAAj9O,GACAs+P,GAAA35P,EAAA,YAIAywQ,IACAv3Q,EAAA8zB,WAAAg/O,GAAA9yQ,EAAA0qN,IAAA1qN,EAAA0/P,SAAA38P,KAAAZ,GAEAo9P,GAAAv/P,EAAAmC,EAAA2E,GAEA04P,GAAAx/P,EAAAmC,EAAA2E,QAEO,GAAAksQ,GAAA93M,KAAA/4D,GACPA,IAAA2F,QAAAkrQ,GAAA,IACAnT,GAAA7/P,EAAAmC,EAAA2E,EAAAg0C,GAAA,OACO,CAGP,IAAA68N,GAFAx1Q,IAAA2F,QAAAmrQ,GAAA,KAEAvqQ,MAAA2qQ,IACA5uL,EAAAkzL,KAAA,GACAlzL,IACAtiF,IAAAN,MAAA,IAAA4iF,EAAAjkF,OAAA,KAEAo/P,GAAA5/P,EAAAmC,EAAAyhL,EAAA98K,EAAA29E,EAAA3pC,QAkBA0kN,GAAAx/P,EAAAmC,EAAAsK,KAAAE,UAAA7F,KAGA9G,EAAA8zB,WACA,UAAA3xB,GACA2wQ,GAAA9yQ,EAAA0qN,IAAA1qN,EAAA0/P,SAAA38P,KAAAZ,IACAo9P,GAAAv/P,EAAAmC,EAAA,SAjQAy1Q,CAAA5xO,GAqBA,SAAAqwO,GAAAr2Q,GACA,IAAAw4H,EACA,GAAAA,EAAA2nI,GAAAngQ,EAAA,UACA,IAAA2O,EAaA,SAAA6pH,GACA,IAAAq/I,EAAAr/I,EAAA9vH,MAAAwqQ,IACA,IAAA2E,EAAiB,OACjB,IAAAlpQ,KACAA,EAAAsvD,IAAA45M,EAAA,GAAA92L,OACA,IAAA+2L,EAAAD,EAAA,GAAA92L,OAAAj5E,QAAAsrQ,GAAA,IACA2E,EAAAD,EAAApvQ,MAAAyqQ,IACA4E,GACAppQ,EAAAmpQ,QAAAhwQ,QAAAqrQ,GAAA,IACAxkQ,EAAAqpQ,UAAAD,EAAA,GAAAh3L,OACAg3L,EAAA,KACAppQ,EAAAspQ,UAAAF,EAAA,GAAAh3L,SAGApyE,EAAAmpQ,QAEA,OAAAnpQ,EA7BAupQ,CAAA1/I,GACA7pH,GACA1F,EAAAjJ,EAAA2O,IAiFA,SAAA4nQ,GAAAv2Q,EAAAu1D,GACAv1D,EAAAm4Q,eACAn4Q,EAAAm4Q,iBAEAn4Q,EAAAm4Q,aAAAr3Q,KAAAy0D,GAmKA,SAAAkiN,GAAAt1Q,GACA,IAAAuG,EAAAvG,EAAAuG,MAAA6qQ,IACA,GAAA7qQ,EAAA,CACA,IAAAwtE,KAEA,OADAxtE,EAAAW,QAAA,SAAA6iB,GAAgCgqD,EAAAhqD,EAAArqB,MAAA,SAChCq0E,GAiCA,IAAA2/L,GAAA,eACAC,GAAA,UAyGA,SAAAsC,GAAAp4Q,GACA,OAAAyzQ,GAAAzzQ,EAAA0qN,IAAA1qN,EAAA2/P,UAAA99P,QAAA7B,EAAA8oC,QAGA,IAIAuvO,IACA/H,GACAK,IALA2H,iBAnEA,SAAAt4Q,EAAAgI,GACA,aAAAhI,EAAA0qN,IAAA,CACA,IAKA6tD,EALAroQ,EAAAlQ,EAAA0/P,SACA,IAAAxvP,EAAA,WACA,OAWA,IAPAA,EAAA,UAAAA,EAAA,kBACAqoQ,EAAAvY,GAAAhgQ,EAAA,SAEAkQ,EAAAnN,MAAAw1Q,IAAAroQ,EAAA,YACAqoQ,EAAA,IAAAroQ,EAAA,oBAGAqoQ,EAAA,CACA,IAAAC,EAAArY,GAAAngQ,EAAA,WACAy4Q,EAAAD,EAAA,MAAAA,EAAA,OACAE,EAAA,MAAAvY,GAAAngQ,EAAA,aACA24Q,EAAAxY,GAAAngQ,EAAA,gBAEA44Q,EAAAR,GAAAp4Q,GAEAq2Q,GAAAuC,GACAnZ,GAAAmZ,EAAA,mBACAhC,GAAAgC,EAAA5wQ,GACA4wQ,EAAAxC,WAAA,EACAwC,EAAAtC,GAAA,IAAAiC,EAAA,iBAAAE,EACAlC,GAAAqC,GACApgJ,IAAAogJ,EAAAtC,GACAzlC,MAAA+nC,IAGA,IAAAC,EAAAT,GAAAp4Q,GACAmgQ,GAAA0Y,EAAA,YACApZ,GAAAoZ,EAAA,gBACAjC,GAAAiC,EAAA7wQ,GACAuuQ,GAAAqC,GACApgJ,IAAA,IAAA+/I,EAAA,cAAAE,EACA5nC,MAAAgoC,IAGA,IAAAC,EAAAV,GAAAp4Q,GAeA,OAdAmgQ,GAAA2Y,EAAA,YACArZ,GAAAqZ,EAAA,QAAAP,GACA3B,GAAAkC,EAAA9wQ,GACAuuQ,GAAAqC,GACApgJ,IAAAggJ,EACA3nC,MAAAioC,IAGAJ,EACAE,EAAApC,MAAA,EACOmC,IACPC,EAAAnC,OAAAkC,GAGAC,OAmCA,IAuBAG,GACAC,GAhBAC,IACA/E,YAAA,EACA5jM,QAAA+nM,GACA10F,YAVA7sJ,MA73FA,SACA92B,EACA06B,EACAw+O,GAEAA,EACA,IAAApyQ,EAAA4zB,EAAA5zB,MACAg0C,EAAApgB,EAAAogB,UACA4vK,EAAA1qN,EAAA0qN,IACA3nN,EAAA/C,EAAA0/P,SAAA38P,KAaA,GAAA/C,EAAA8zB,UAGA,OAFAwsO,GAAAtgQ,EAAA8G,EAAAg0C,IAEA,EACG,cAAA4vK,GAoEH,SACA1qN,EACA8G,EACAg0C,GAEA,IAOA2mF,EAAA,8KAPA3mF,KAAAg4J,OAIA,uBAIArxE,IAAA,IAAAg/H,GAAA35P,EAFA,6DAGA+4P,GAAA7/P,EAAA,SAAAyhI,EAAA,SAjFA03I,CAAAn5Q,EAAA8G,EAAAg0C,QACG,aAAA4vK,GAAA,aAAA3nN,GAuBH,SACA/C,EACA8G,EACAg0C,GAEA,IAAAg4J,EAAAh4J,KAAAg4J,OACAsmE,EAAApZ,GAAAhgQ,EAAA,iBACAq5Q,EAAArZ,GAAAhgQ,EAAA,sBACAs5Q,EAAAtZ,GAAAhgQ,EAAA,wBACAu/P,GAAAv/P,EAAA,UACA,iBAAA8G,EAAA,QACAA,EAAA,IAAAsyQ,EAAA,QACA,SAAAC,EACA,KAAAvyQ,EAAA,IACA,OAAAA,EAAA,IAAAuyQ,EAAA,MAGAxZ,GAAA7/P,EAAA,SACA,WAAA8G,EAAA,yCAEAuyQ,EAAA,MAAAC,EAAA,qCAEAxmE,EAAA,MAAAsmE,EAAA,IAAAA,GAAA,6CAEwB3Y,GAAA35P,EAAA,wCACZ25P,GAAA35P,EAAA,wDACD25P,GAAA35P,EAAA,WACX,SAjDAyyQ,CAAAv5Q,EAAA8G,EAAAg0C,QACG,aAAA4vK,GAAA,UAAA3nN,GAoDH,SACA/C,EACA8G,EACAg0C,GAEA,IAAAg4J,EAAAh4J,KAAAg4J,OACAsmE,EAAApZ,GAAAhgQ,EAAA,iBAEAu/P,GAAAv/P,EAAA,gBAAA8G,EAAA,KADAsyQ,EAAAtmE,EAAA,MAAAsmE,EAAA,IAAAA,GACA,KACAvZ,GAAA7/P,EAAA,SAAAygQ,GAAA35P,EAAAsyQ,GAAA,SA5DAI,CAAAx5Q,EAAA8G,EAAAg0C,QACG,aAAA4vK,GAAA,aAAAA,GA+EH,SACA1qN,EACA8G,EACAg0C,GAEA,IAAA/3C,EAAA/C,EAAA0/P,SAAA38P,KAgBAoV,EAAA2iC,MACAqyM,EAAAh1O,EAAAg1O,KACAr6C,EAAA36L,EAAA26L,OACA/xH,EAAA5oE,EAAA4oE,KACA04L,GAAAtsB,GAAA,UAAApqP,EACA+zD,EAAAq2L,EACA,SACA,UAAApqP,EACAm+P,GACA,QAEAX,EAAA,sBACAx/K,IACAw/K,EAAA,8BAEAztD,IACAytD,EAAA,MAAAA,EAAA,KAGA,IAAA9+H,EAAAg/H,GAAA35P,EAAAy5P,GACAkZ,IACAh4I,EAAA,qCAA8CA,GAG9C89H,GAAAv/P,EAAA,YAAA8G,EAAA,KACA+4P,GAAA7/P,EAAA82D,EAAA2qE,EAAA,UACA1gD,GAAA+xH,IACA+sD,GAAA7/P,EAAA,yBA9HA05Q,CAAA15Q,EAAA8G,EAAAg0C,QACG,IAAAyE,EAAAshM,cAAAn2B,GAGH,OAFA41C,GAAAtgQ,EAAA8G,EAAAg0C,IAEA,EAWA,UA80FAlK,KAhBA,SAAA5wC,EAAA06B,GACAA,EAAA5zB,OACAy4P,GAAAv/P,EAAA,oBAAA06B,EAAA,YAeAymB,KATA,SAAAnhD,EAAA06B,GACAA,EAAA5zB,OACAy4P,GAAAv/P,EAAA,kBAAA06B,EAAA,aAgBAk5O,SA79IA,SAAAlpD,GAA+B,cAAAA,GA89I/BomD,cACA5vB,eACA6vB,oBACAlwB,iBACAG,mBACAuvB,WAr1SA,SAAAjgM,GACA,OAAAA,EAAAtrD,OAAA,SAAA5b,EAAA8iB,GACA,OAAA9iB,EAAAkL,OAAA4X,EAAAqkP,qBACG5qQ,KAAA,KAk1SHg0Q,CAAAtB,KAQAuB,GAAA36B,EAuBA,SAAA71O,GACA,OAAAy1O,EACA,2DACAz1O,EAAA,IAAAA,EAAA,OAbA,SAAAywQ,GAAAz/N,EAAApyC,GACAoyC,IACA2+N,GAAAa,GAAA5xQ,EAAAuoQ,YAAA,IACAyI,GAAAhxQ,EAAA64O,eAAAnB,EAcA,SAAAo6B,EAAArhN,GACAA,EAAAshN,OA6DA,SAAAthN,GACA,OAAAA,EAAA11D,KACA,SAEA,OAAA01D,EAAA11D,KACA,SAEA,SAAA01D,EAAAxzC,MACAwzC,EAAA++M,aACA/+M,EAAA69M,IAAA79M,EAAAwF,KACA8gL,EAAAtmL,EAAAiyJ,OACAsuD,GAAAvgN,EAAAiyJ,MAMA,SAAAjyJ,GACA,KAAAA,EAAA3vB,QAAA,CAEA,iBADA2vB,IAAA3vB,QACA4hL,IACA,SAEA,GAAAjyJ,EAAAwF,IACA,SAGA,SAfA+7M,CAAAvhN,KACAtvD,OAAAC,KAAAqvD,GAAA2+C,MAAA2hK,MA1EAh1B,CAAAtrL,GACA,OAAAA,EAAA11D,KAAA,CAIA,IACAi2Q,GAAAvgN,EAAAiyJ,MACA,SAAAjyJ,EAAAiyJ,KACA,MAAAjyJ,EAAAinM,SAAA,mBAEA,OAEA,QAAAp/P,EAAA,EAAAC,EAAAk4D,EAAAqvH,SAAAtnL,OAA6CF,EAAAC,EAAOD,IAAA,CACpD,IAAAurC,EAAA4sB,EAAAqvH,SAAAxnL,GACAw5Q,EAAAjuO,GACAA,EAAAkuO,SACAthN,EAAAshN,QAAA,GAGA,GAAAthN,EAAA0/M,aACA,QAAA5f,EAAA,EAAA0hB,EAAAxhN,EAAA0/M,aAAA33Q,OAAuD+3P,EAAA0hB,EAAW1hB,IAAA,CAClE,IAAA1nB,EAAAp4K,EAAA0/M,aAAA5f,GAAA1nB,MACAipC,EAAAjpC,GACAA,EAAAkpC,SACAthN,EAAAshN,QAAA,KArCAD,CAAA1/N,GA4CA,SAAA8/N,EAAAzhN,EAAA83L,GACA,OAAA93L,EAAA11D,KAAA,CAOA,IANA01D,EAAAshN,QAAAthN,EAAA4sB,QACA5sB,EAAA0hN,YAAA5pB,GAKA93L,EAAAshN,QAAAthN,EAAAqvH,SAAAtnL,SACA,IAAAi4D,EAAAqvH,SAAAtnL,QACA,IAAAi4D,EAAAqvH,SAAA,GAAA/kL,MAGA,YADA01D,EAAA2hN,YAAA,GAKA,GAFA3hN,EAAA2hN,YAAA,EAEA3hN,EAAAqvH,SACA,QAAAxnL,EAAA,EAAAC,EAAAk4D,EAAAqvH,SAAAtnL,OAA+CF,EAAAC,EAAOD,IACtD45Q,EAAAzhN,EAAAqvH,SAAAxnL,GAAAiwP,KAAA93L,EAAAwF,KAGA,GAAAxF,EAAA0/M,aACA,QAAA5f,EAAA,EAAA0hB,EAAAxhN,EAAA0/M,aAAA33Q,OAAuD+3P,EAAA0hB,EAAW1hB,IAClE2hB,EAAAzhN,EAAA0/M,aAAA5f,GAAA1nB,MAAA0f,IAlEA2pB,CAAA9/N,GAAA,IAwGA,IAAAigO,GAAA,4CACAC,GAAA,+FAGA15B,IACA25B,IAAA,GACAC,IAAA,EACAlU,MAAA,GACAh8P,MAAA,GACAmwQ,GAAA,GACAr1Q,KAAA,GACAC,MAAA,GACAq1Q,KAAA,GACAl2N,QAAA,OAIAm2N,IACAJ,IAAA,SACAC,IAAA,MACAlU,MAAA,QACAh8P,MAAA,IAEAmwQ,IAAA,gBACAr1Q,MAAA,oBACAC,OAAA,sBACAq1Q,MAAA,oBACAl2N,QAAA,uBAMAo2N,GAAA,SAAArlN,GAAqC,YAAAA,EAAA,iBAErCslN,IACAx5Q,KAAA,4BACAy5Q,QAAA,2BACApvQ,KAAAkvQ,GAAA,0CACAG,KAAAH,GAAA,mBACA7tO,MAAA6tO,GAAA,oBACAvtI,IAAAutI,GAAA,kBACAvqD,KAAAuqD,GAAA,mBACAx1Q,KAAAw1Q,GAAA,6CACAz9O,OAAAy9O,GAAA,6CACAv1Q,MAAAu1Q,GAAA,8CAGA,SAAAI,GACAliQ,EACA0pO,EACAvtO,GAEA,IAAAtG,EAAA6zO,EAAA,aAAkC,OAClC,QAAArgP,KAAA2W,EACAnK,GAAA,IAAAxM,EAAA,KAAA84Q,GAAA94Q,EAAA2W,EAAA3W,IAAA,IAEA,OAAAwM,EAAA9M,MAAA,UAGA,SAAAo5Q,GACA94Q,EACA6Y,GAEA,IAAAA,EACA,qBAGA,GAAA5P,MAAAC,QAAA2P,GACA,UAAAA,EAAA9K,IAAA,SAAA8K,GAAmD,OAAAigQ,GAAA94Q,EAAA6Y,KAAoCrV,KAAA,SAGvF,IAAAu1Q,EAAAZ,GAAAp/M,KAAAlgD,EAAAlU,OACAq0Q,EAAAd,GAAAn/M,KAAAlgD,EAAAlU,OAEA,GAAAkU,EAAA8/B,UAMG,CACH,IAAA2mF,EAAA,GACA25I,EAAA,GACAhyQ,KACA,QAAAE,KAAA0R,EAAA8/B,UACA,GAAA+/N,GAAAvxQ,GACA8xQ,GAAAP,GAAAvxQ,GAEAs3O,GAAAt3O,IACAF,EAAAtI,KAAAwI,QAEO,aAAAA,EAAA,CACP,IAAAwxC,EAAA9/B,EAAA,UACAogQ,GAAAR,IACA,6BACAj0P,OAAA,SAAA00P,GAA4C,OAAAvgO,EAAAugO,KAC5CnrQ,IAAA,SAAAmrQ,GAAyC,gBAAAA,EAAA,QACzC11Q,KAAA,YAGAyD,EAAAtI,KAAAwI,GAgBA,OAbAF,EAAA5I,SACAihI,GAgBA,SAAAr4H,GACA,mCAAAA,EAAA8G,IAAAorQ,IAAA31Q,KAAA,sBAjBA41Q,CAAAnyQ,IAGAgyQ,IACA35I,GAAA25I,GAQA,oBAA8B35I,GAN9By5I,EACA,UAAAlgQ,EAAA,iBACAmgQ,EACA,WAAAngQ,EAAA,kBACAA,EAAAlU,OAE8B,IAzC9B,OAAAo0Q,GAAAC,EACAngQ,EAAAlU,MAGA,oBAA8BkU,EAAA,UA6C9B,SAAAsgQ,GAAAhyQ,GACA,IAAAkyQ,EAAAriM,SAAA7vE,EAAA,IACA,GAAAkyQ,EACA,0BAAAA,EAEA,IAAAC,EAAA76B,GAAAt3O,GACAoyQ,EAAAf,GAAArxQ,GACA,MACA,qBACAmD,KAAAE,UAAArD,GAAA,IACAmD,KAAAE,UAAA8uQ,GAAA,eAEAhvQ,KAAAE,UAAA+uQ,GACA,IAuBA,IAAAC,IACA18P,GAlBA,SAAAjf,EAAA06B,GAIA16B,EAAA47Q,cAAA,SAAAn6I,GAAsC,YAAAA,EAAA,IAAA/mG,EAAA,YAetC3wB,KAVA,SAAA/J,EAAA06B,GACA16B,EAAA67Q,SAAA,SAAAp6I,GACA,YAAAA,EAAA,KAAAzhI,EAAA,SAAA06B,EAAA,WAAAA,EAAAogB,WAAApgB,EAAAogB,UAAAz6C,KAAA,iBAAAq6B,EAAAogB,WAAApgB,EAAAogB,UAAAg8C,KAAA,kBASAglL,MAAAlgN,GAKAmgN,GAAA,SAAA/zQ,GACAzI,KAAAyI,UACAzI,KAAA0V,KAAAjN,EAAAiN,MAAAoqP,GACA9/P,KAAAmzQ,WAAApT,GAAAt3P,EAAAsoE,QAAA,iBACA/wE,KAAAy8Q,WAAA1c,GAAAt3P,EAAAsoE,QAAA,WACA/wE,KAAAokL,WAAA16K,OAAoC0yQ,IAAA3zQ,EAAA27K,YACpC,IAAAk9D,EAAA74O,EAAA64O,eAAAnB,EACAngP,KAAA08Q,eAAA,SAAAj8Q,GAAuC,OAAA6gP,EAAA7gP,EAAA0qN,MACvCnrN,KAAA28Q,OAAA,EACA38Q,KAAA2X,oBAKA,SAAAilQ,GACAC,EACAp0Q,GAEA,IAAAszC,EAAA,IAAAygO,GAAA/zQ,GAEA,OACAhF,OAAA,sBAFAo5Q,EAAAC,GAAAD,EAAA9gO,GAAA,aAEyB,IACzBpkC,gBAAAokC,EAAApkC,iBAIA,SAAAmlQ,GAAAr8Q,EAAAs7C,GACA,GAAAt7C,EAAAo6Q,aAAAp6Q,EAAAs8Q,gBACA,OAAAC,GAAAv8Q,EAAAs7C,GACG,GAAAt7C,EAAAqlF,OAAArlF,EAAAw8Q,cACH,OAAAC,GAAAz8Q,EAAAs7C,GACG,GAAAt7C,EAAAi+D,MAAAj+D,EAAA08Q,aACH,OAiGA,SACA18Q,EACAs7C,EACAqhO,EACAC,GAEA,IAAApkJ,EAAAx4H,EAAAi+D,IACA65M,EAAA93Q,EAAA83Q,MACAE,EAAAh4Q,EAAAg4Q,UAAA,IAAAh4Q,EAAA,aACAi4Q,EAAAj4Q,EAAAi4Q,UAAA,IAAAj4Q,EAAA,aAEM,EAeN,OADAA,EAAA08Q,cAAA,GACAE,GAAA,WAAApkJ,EAAA,cACAs/I,EAAAE,EAAAC,EAAA,aACA0E,GAAAN,IAAAr8Q,EAAAs7C,GACA,KA9HAuhO,CAAA78Q,EAAAs7C,GACG,GAAAt7C,EAAAs2Q,KAAAt2Q,EAAA88Q,YACH,OAAAC,GAAA/8Q,EAAAs7C,GACG,gBAAAt7C,EAAA0qN,KAAA1qN,EAAAg3Q,WAEA,aAAAh3Q,EAAA0qN,IACH,OAsWA,SAAA1qN,EAAAs7C,GACA,IAAA87N,EAAAp3Q,EAAAo3Q,UAAA,YACAtvF,EAAAk1F,GAAAh9Q,EAAAs7C,GACA3sC,EAAA,MAAAyoQ,GAAAtvF,EAAA,IAAAA,EAAA,IACAlxK,EAAA5W,EAAA4W,OAAA,IAA6B5W,EAAA4W,MAAA1G,IAAA,SAAA4E,GAAgC,OAAAsqO,EAAAtqO,EAAA3S,MAAA,IAAA2S,EAAA,QAAiDnP,KAAA,SAC9Gs3Q,EAAAj9Q,EAAA0/P,SAAA,WACA9oP,IAAAqmQ,GAAAn1F,IACAn5K,GAAA,SAEAiI,IACAjI,GAAA,IAAAiI,GAEAqmQ,IACAtuQ,IAAAiI,EAAA,gBAAAqmQ,GAEA,OAAAtuQ,EAAA,IArXAuuQ,CAAAl9Q,EAAAs7C,GAGA,IAAAmmF,EACA,GAAAzhI,EAAA8zB,UACA2tG,EAoXA,SACAqgD,EACA9hL,EACAs7C,GAEA,IAAAwsI,EAAA9nL,EAAA4yP,eAAA,KAAAoqB,GAAAh9Q,EAAAs7C,GAAA,GACA,YAAAwmI,EAAA,IAAAq7F,GAAAn9Q,EAAAs7C,IAAAwsI,EAAA,IAAAA,EAAA,QA1XAs1F,CAAAp9Q,EAAA8zB,UAAA9zB,EAAAs7C,OACK,CACL,IAAAjrC,EAAArQ,EAAAkzE,WAAAjmE,EAAAkwQ,GAAAn9Q,EAAAs7C,GAEAwsI,EAAA9nL,EAAA4yP,eAAA,KAAAoqB,GAAAh9Q,EAAAs7C,GAAA,GACAmmF,EAAA,OAAAzhI,EAAA,SAAAqQ,EAAA,IAAAA,EAAA,KAAAy3K,EAAA,IAAAA,EAAA,QAGA,QAAAxnL,EAAA,EAAmBA,EAAAg7C,EAAAo3N,WAAAlyQ,OAA6BF,IAChDmhI,EAAAnmF,EAAAo3N,WAAApyQ,GAAAN,EAAAyhI,GAEA,OAAAA,EAlBA,OAAAu7I,GAAAh9Q,EAAAs7C,IAAA,SAuBA,SAAAihO,GAAAv8Q,EAAAs7C,GAGA,OAFAt7C,EAAAs8Q,iBAAA,EACAhhO,EAAApkC,gBAAApW,KAAA,qBAA0Cu7Q,GAAAr8Q,EAAAs7C,GAAA,KAC1C,OAAAA,EAAApkC,gBAAA1W,OAAA,IAAAR,EAAAm6Q,YAAA,gBAIA,SAAAsC,GAAAz8Q,EAAAs7C,GAEA,GADAt7C,EAAAw8Q,eAAA,EACAx8Q,EAAAs2Q,KAAAt2Q,EAAA88Q,YACA,OAAAC,GAAA/8Q,EAAAs7C,GACG,GAAAt7C,EAAAm6Q,YAAA,CAGH,IAFA,IAAA7wQ,EAAA,GACAw/B,EAAA9oC,EAAA8oC,OACAA,GAAA,CACA,GAAAA,EAAAm1B,IAAA,CACA30D,EAAAw/B,EAAAx/B,IACA,MAEAw/B,WAEA,OAAAx/B,EAMA,MAAA+yQ,GAAAr8Q,EAAAs7C,GAAA,IAAAA,EAAA4gO,SAAA,IAAA5yQ,EAAA,IAFA+yQ,GAAAr8Q,EAAAs7C,GAIA,OAAAihO,GAAAv8Q,EAAAs7C,GAIA,SAAAyhO,GACA/8Q,EACAs7C,EACAqhO,EACAU,GAGA,OADAr9Q,EAAA88Q,aAAA,EAIA,SAAAQ,EACAC,EACAjiO,EACAqhO,EACAU,GAEA,IAAAE,EAAA/8Q,OACA,OAAA68Q,GAAA,OAGA,IAAA9nN,EAAAgoN,EAAAxwO,QACA,OAAAwoB,EAAAijE,IACA,IAAAjjE,EAAA,SAAAioN,EAAAjoN,EAAAs7K,OAAA,IAAAysC,EAAAC,EAAAjiO,EAAAqhO,EAAAU,GAEA,GAAAG,EAAAjoN,EAAAs7K,OAIA,SAAA2sC,EAAAx9Q,GACA,OAAA28Q,EACAA,EAAA38Q,EAAAs7C,GACAt7C,EAAAqlF,KACAo3L,GAAAz8Q,EAAAs7C,GACA+gO,GAAAr8Q,EAAAs7C,IA1BAgiO,CAAAt9Q,EAAAm4Q,aAAAt2Q,QAAAy5C,EAAAqhO,EAAAU,GA8DA,SAAAF,GAAAn9Q,EAAAs7C,GACA,IAAAjrC,EAAA,IAIA42O,EAyEA,SAAAjnP,EAAAs7C,GACA,IAAA2rM,EAAAjnP,EAAA2jL,WACA,IAAAsjE,EAAc,OACd,IAEA3mP,EAAAC,EAAAm6B,EAAA+iP,EAFA9uQ,EAAA,eACA+uQ,GAAA,EAEA,IAAAp9Q,EAAA,EAAAC,EAAA0mP,EAAAzmP,OAA8BF,EAAAC,EAAOD,IAAA,CACrCo6B,EAAAusN,EAAA3mP,GACAm9Q,GAAA,EACA,IAAAE,EAAAriO,EAAAqoI,WAAAjpJ,EAAAv4B,MACAw7Q,IAGAF,IAAAE,EAAA39Q,EAAA06B,EAAA4gB,EAAArmC,OAEAwoQ,IACAC,GAAA,EACA/uQ,GAAA,UAAe+rB,EAAA,mBAAAA,EAAA,aAAAA,EAAA5zB,MAAA,WAAA4zB,EAAA,sBAAAjuB,KAAAE,UAAA+tB,EAAA5zB,OAAA,KAAA4zB,EAAA+pD,IAAA,SAAA/pD,EAAA,aAAAA,EAAAogB,UAAA,cAAAruC,KAAAE,UAAA+tB,EAAAogB,WAAA,UAGf,GAAA4iO,EACA,OAAA/uQ,EAAA9M,MAAA,UA9FA+7Q,CAAA59Q,EAAAs7C,GACA2rM,IAAa52O,GAAA42O,EAAA,KAGbjnP,EAAAsJ,MACA+G,GAAA,OAAArQ,EAAA,SAGAA,EAAAmY,MACA9H,GAAA,OAAArQ,EAAA,SAEAA,EAAA87P,WACAzrP,GAAA,kBAGArQ,EAAAilB,MACA5U,GAAA,aAGArQ,EAAA8zB,YACAzjB,GAAA,QAAArQ,EAAA,UAGA,QAAAM,EAAA,EAAiBA,EAAAg7C,EAAA0gO,WAAAx7Q,OAA6BF,IAC9C+P,GAAAirC,EAAA0gO,WAAA17Q,GAAAN,GA+BA,GA5BAA,EAAA4W,QACAvG,GAAA,UAAoBwtQ,GAAA79Q,EAAA4W,OAAA,MAGpB5W,EAAAqC,QACAgO,GAAA,aAAuBwtQ,GAAA79Q,EAAAqC,OAAA,MAGvBrC,EAAA8Y,SACAzI,GAAA2qQ,GAAAh7Q,EAAA8Y,QAAA,EAAAwiC,EAAArmC,MAAA,KAEAjV,EAAA+/P,eACA1vP,GAAA2qQ,GAAAh7Q,EAAA+/P,cAAA,EAAAzkN,EAAArmC,MAAA,KAIAjV,EAAAg3Q,aAAAh3Q,EAAA+2Q,YACA1mQ,GAAA,QAAArQ,EAAA,gBAGAA,EAAA8xP,cACAzhP,GA+DA,SACAi7O,EACAhwM,GAEA,yBAAAnyC,OAAAC,KAAAkiP,GAAAp7O,IAAA,SAAA5G,GACA,OAAAw0Q,GAAAx0Q,EAAAgiP,EAAAhiP,GAAAgyC,KACK31C,KAAA,UArEL,CAAA3F,EAAA8xP,YAAAx2M,GAAA,KAGAt7C,EAAA82B,QACAzmB,GAAA,gBAAoBrQ,EAAA82B,MAAA,mBAAA92B,EAAA82B,MAAA,wBAAA92B,EAAA82B,MAAA,iBAGpB92B,EAAA4yP,eAAA,CACA,IAAAA,EA0CA,SAAA5yP,EAAAs7C,GACA,IAAA8gO,EAAAp8Q,EAAA8nL,SAAA,GACM,EAKN,OAAAs0F,EAAAr5Q,KAAA,CACA,IAAAg7Q,EAAA5B,GAAAC,EAAA9gO,EAAAtzC,SACA,2CAA+C+1Q,EAAA,6BAAiCA,EAAA7mQ,gBAAAhH,IAAA,SAAAuxH,GAA4E,oBAAqBA,EAAA,MAAkB97H,KAAA,WAnDnMq4Q,CAAAh+Q,EAAAs7C,GACAs3M,IACAviP,GAAAuiP,EAAA,KAYA,OATAviP,IAAAvI,QAAA,aAEA9H,EAAA67Q,WACAxrQ,EAAArQ,EAAA67Q,SAAAxrQ,IAGArQ,EAAA47Q,gBACAvrQ,EAAArQ,EAAA47Q,cAAAvrQ,IAEAA,EAkDA,SAAAytQ,GACAx0Q,EACAtJ,EACAs7C,GAEA,OAAAt7C,EAAAi+D,MAAAj+D,EAAA08Q,aAYA,SACApzQ,EACAtJ,EACAs7C,GAEA,IAAAk9E,EAAAx4H,EAAAi+D,IACA65M,EAAA93Q,EAAA83Q,MACAE,EAAAh4Q,EAAAg4Q,UAAA,IAAAh4Q,EAAA,aACAi4Q,EAAAj4Q,EAAAi4Q,UAAA,IAAAj4Q,EAAA,aAEA,OADAA,EAAA08Q,cAAA,EACA,OAAAlkJ,EAAA,cACAs/I,EAAAE,EAAAC,EAAA,YACA6F,GAAAx0Q,EAAAtJ,EAAAs7C,GACA,KAxBA2iO,CAAA30Q,EAAAtJ,EAAAs7C,GAQA,QAAYhyC,EAAA,QANZ,YAAAoH,OAAA1Q,EAAA+2Q,WAAA,aACA,aAAA/2Q,EAAA0qN,IACA1qN,EAAAs2Q,GACAt2Q,EAAA,QAAAg9Q,GAAAh9Q,EAAAs7C,IAAA,0BACA0hO,GAAAh9Q,EAAAs7C,IAAA,YACA+gO,GAAAr8Q,EAAAs7C,IAAA,KACY,IAmBZ,SAAA0hO,GACAh9Q,EACAs7C,EACA4iO,EACAC,EACAC,GAEA,IAAAt2F,EAAA9nL,EAAA8nL,SACA,GAAAA,EAAAtnL,OAAA,CACA,IAAA69Q,EAAAv2F,EAAA,GAEA,OAAAA,EAAAtnL,QACA69Q,EAAApgN,KACA,aAAAogN,EAAA3zD,KACA,SAAA2zD,EAAA3zD,IAEA,OAAAyzD,GAAA9B,IAAAgC,EAAA/iO,GAEA,IAAA45M,EAAAgpB,EAYA,SACAp2F,EACAm0F,GAGA,IADA,IAAAttQ,EAAA,EACArO,EAAA,EAAiBA,EAAAwnL,EAAAtnL,OAAqBF,IAAA,CACtC,IAAAN,EAAA8nL,EAAAxnL,GACA,OAAAN,EAAA+C,KAAA,CAGA,GAAAu7Q,GAAAt+Q,IACAA,EAAAm4Q,cAAAn4Q,EAAAm4Q,aAAAxlQ,KAAA,SAAA8sD,GAA+D,OAAA6+M,GAAA7+M,EAAAoxK,SAAsC,CACrGliO,EAAA,EACA,OAEAstQ,EAAAj8Q,IACAA,EAAAm4Q,cAAAn4Q,EAAAm4Q,aAAAxlQ,KAAA,SAAA8sD,GAA+D,OAAAw8M,EAAAx8M,EAAAoxK,YAC/DliO,EAAA,IAGA,OAAAA,EA/BA4vQ,CAAAz2F,EAAAxsI,EAAA2gO,gBACA,EACA0B,EAAAS,GAAAI,GACA,UAAA12F,EAAA53K,IAAA,SAAAuvD,GAA8C,OAAAk+M,EAAAl+M,EAAAnkB,KAAwB31C,KAAA,UAAAuvP,EAAA,IAAAA,EAAA,KA+BtE,SAAAopB,GAAAt+Q,GACA,YAAAiN,IAAAjN,EAAAi+D,KAAA,aAAAj+D,EAAA0qN,KAAA,SAAA1qN,EAAA0qN,IAGA,SAAA8zD,GAAA/lN,EAAAnd,GACA,WAAAmd,EAAA11D,KACAs5Q,GAAA5jN,EAAAnd,GACG,IAAAmd,EAAA11D,MAAA01D,EAAAwrL,WAaHstB,EAZA94M,EAaA,MAAAhsD,KAAAE,UAAA4kQ,EAAA3gO,MAAA,KANA,YADAA,EAJA6nB,GAKA11D,KACA6tC,EAAAjyB,WACA8/P,GAAAhyQ,KAAAE,UAAAikC,UAAA,IAHA,IAAAA,EAMA2gO,EAgCA,SAAAsM,GAAAx7Q,GAEA,IADA,IAAAsM,EAAA,GACArO,EAAA,EAAiBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CACnC,IAAAD,EAAAgC,EAAA/B,GAGAqO,GAAA,IAAAtO,EAAA,UAAAo+Q,GAAAp+Q,EAAAyG,OAAA,IAGA,OAAA6H,EAAA9M,MAAA,MAIA,SAAA48Q,GAAA7tO,GACA,OAAAA,EACA9oC,QAAA,qBACAA,QAAA,qBAOA,IAAAD,OAAA,uMAIAzH,MAAA,KAAAuF,KAAA,kBAGA,IAAAkC,OAAA,2BAEAzH,MAAA,KAAAuF,KAAA,8CAgGA,SAAA+4Q,GAAAj9I,EAAAj3C,GACA,IACA,WAAA9xE,SAAA+oH,GACG,MAAAz8C,GAEH,OADAwF,EAAA1pF,MAAiBkkF,MAAAy8C,SACjB7lE,GAmJA,IAvDA+iN,GA+EAC,GALAC,IA1EAF,GAuDA,SACAhL,EACA3rQ,GAEA,IAAAo0Q,EAAA1vQ,GAAAinQ,EAAA5yL,OAAA/4E,IACA,IAAAA,EAAA6xQ,UACAA,GAAAuC,EAAAp0Q,GAEA,IAAAy5H,EAAA06I,GAAAC,EAAAp0Q,GACA,OACAo0Q,MACAp5Q,OAAAy+H,EAAAz+H,OACAkU,gBAAAuqH,EAAAvqH,kBAlEA,SAAA+hQ,GACA,SAAA6F,EACAnL,EACA3rQ,GAEA,IAAA+2Q,EAAA51Q,OAAA8/B,OAAAgwO,GACAzuL,KACAw0L,KAKA,GAJAD,EAAA9pQ,KAAA,SAAA4lE,EAAAokM,IACAA,EAAAD,EAAAx0L,GAAA1pF,KAAA+5E,IAGA7yE,EAcA,QAAAsB,KAZAtB,EAAAsoE,UACAyuM,EAAAzuM,SACA2oM,EAAA3oM,aAAAh8D,OAAAtM,EAAAsoE,UAGAtoE,EAAA27K,aACAo7F,EAAAp7F,WAAA16K,EACAE,OAAA8/B,OAAAgwO,EAAAt1F,YAAA,MACA37K,EAAA27K,aAIA37K,EACA,YAAAsB,GAAA,eAAAA,IACAy1Q,EAAAz1Q,GAAAtB,EAAAsB,IAKA,IAAA41Q,EAAAP,GAAAhL,EAAAoL,GAMA,OAFAG,EAAA10L,SACA00L,EAAAF,OACAE,EAGA,OACAJ,UACAD,mBArIA,SAAAC,GACA,IAAA5/B,EAAA/1O,OAAA8/B,OAAA,MAEA,gBACA0qO,EACA3rQ,EACAs+O,IAEAt+O,EAAAiB,KAAuBjB,IACvBiN,YACAjN,EAAAiN,KAqBA,IAAA3L,EAAAtB,EAAAgoQ,WACAt/P,OAAA1I,EAAAgoQ,YAAA2D,EACAA,EACA,GAAAz0B,EAAA51O,GACA,OAAA41O,EAAA51O,GAIA,IAAA41Q,EAAAJ,EAAAnL,EAAA3rQ,GAiBA2G,KACAwwQ,KAyBA,OAxBAxwQ,EAAA3L,OAAA07Q,GAAAQ,EAAAl8Q,OAAAm8Q,GACAxwQ,EAAAuI,gBAAAgoQ,EAAAhoQ,gBAAAhH,IAAA,SAAAuxH,GACA,OAAAi9I,GAAAj9I,EAAA09I,KAsBAjgC,EAAA51O,GAAAqF,GAmDAywQ,CAAAN,MA4BA7F,IACA4F,mBAMA,SAAAQ,GAAAhyH,GAGA,OAFAuxH,OAAAxvQ,SAAAC,cAAA,QACA8kC,UAAAk5G,EAAA,iCACAuxH,GAAAzqO,UAAA90C,QAAA,SAAqC,EAIrC,IAAAmzQ,KAAA/wB,GAAA49B,IAAA,GAEA7J,KAAA/zB,GAAA49B,IAAA,GAIAC,GAAArgC,EAAA,SAAAh+O,GACA,IAAAjB,EAAAs1D,GAAAr0D,GACA,OAAAjB,KAAAm0C,YAGAs9G,GAAA59H,GAAAp0B,UAAAqmN,OACAjyL,GAAAp0B,UAAAqmN,OAAA,SACA9lN,EACAkyP,GAKA,IAHAlyP,KAAAs1D,GAAAt1D,MAGAoP,SAAAG,MAAAvP,IAAAoP,SAAAmuC,gBAIA,OAAAh+C,KAGA,IAAAyI,EAAAzI,KAAAoY,SAEA,IAAA3P,EAAAhF,OAAA,CACA,IAAA2wQ,EAAA3rQ,EAAA2rQ,SACA,GAAAA,EACA,oBAAAA,EACA,MAAAA,EAAAl1N,OAAA,KACAk1N,EAAA2L,GAAA3L,QASO,KAAAA,EAAA/6L,SAMP,OAAAr5E,KALAo0Q,IAAAx/N,eAOKn0C,IACL2zQ,EAiCA,SAAA3zQ,GACA,GAAAA,EAAAu/Q,UACA,OAAAv/Q,EAAAu/Q,UAEA,IAAAzyL,EAAA19E,SAAAC,cAAA,OAEA,OADAy9E,EAAAt9E,YAAAxP,EAAAyvQ,WAAA,IACA3iL,EAAA34C,UAvCAqrO,CAAAx/Q,IAEA,GAAA2zQ,EAAA,CAEU,EAIV,IAAAx7P,EAAA0mQ,GAAAlL,GACAnB,wBACAgD,+BACAxF,WAAAhoQ,EAAAgoQ,WACA4F,SAAA5tQ,EAAA4tQ,UACOr2Q,MACPyD,EAAAmV,EAAAnV,OACAkU,EAAAiB,EAAAjB,gBACAlP,EAAAhF,SACAgF,EAAAkP,mBASA,OAAAu6I,GAAAxmJ,KAAA1L,KAAAS,EAAAkyP,IAiBAr+N,GAAAirP,QAAAD,GAEe/6N,EAAA,iEC3sVfphD,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA+0Q,EAAe3gR,EAAQ,QAEvB4gR,GAEAh1Q,EAFA+0Q,IAEsC/0Q,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,QAAA,SAAA9M,GACA,kBACA,IAAAmyQ,EAAAnyQ,EAAAM,MAAAvM,KAAA8E,WACA,WAAAq7Q,EAAApnQ,QAAA,SAAArK,EAAAC,GAqBA,OApBA,SAAA2Y,EAAAvd,EAAAm7E,GACA,IACA,IAAApK,EAAAsjM,EAAAr0Q,GAAAm7E,GACA39E,EAAAuzE,EAAAvzE,MACS,MAAAwzE,GAET,YADApsE,EAAAosE,GAIA,IAAAD,EAAAz5E,KAGA,OAAA8+Q,EAAApnQ,QAAArK,QAAAnH,GAAA4H,KAAA,SAAA5H,GACA+f,EAAA,OAAA/f,IACW,SAAAk+E,GACXn+D,EAAA,QAAAm+D,KALA/2E,EAAAnH,GAUA+f,CAAA,kCCjCA,IAAA1nB,EAAeL,EAAQ,QAGvB2D,EAAAC,QAAA,SAAAu9D,EAAAw/F,GACA,IAAAtgK,EAAA8gE,GAAA,OAAAA,EACA,IAAAz0D,EAAAsB,EACA,GAAA2yJ,GAAA,mBAAAj0J,EAAAy0D,EAAA94D,YAAAhI,EAAA2N,EAAAtB,EAAAP,KAAAg1D,IAAA,OAAAnzD,EACA,sBAAAtB,EAAAy0D,EAAA0/M,WAAAxgR,EAAA2N,EAAAtB,EAAAP,KAAAg1D,IAAA,OAAAnzD,EACA,IAAA2yJ,GAAA,mBAAAj0J,EAAAy0D,EAAA94D,YAAAhI,EAAA2N,EAAAtB,EAAAP,KAAAg1D,IAAA,OAAAnzD,EACA,MAAAy2C,UAAA,+ECRA7gD,EAAAiuE,YAAA,EACA,IAAA9kB,QAEAA,EAAA+zN,MAAA/zN,EAAA+zN,UAUA/zN,EAAA+zN,MAAAC,qBAAA,SAAA75O,GACA,QAAA1lC,EAAA,EAAiBA,EAAA0lC,EAAAg6L,WAAAx/N,OAA+BF,IAAA,CAChD,IAAAurC,EAAA7F,EAAAg6L,WAAA1/N,GACA,GAAAurD,EAAA+zN,MAAAE,aAAAj0O,IAAAggB,EAAA+zN,MAAAC,qBAAAh0O,GACA,SAGA,UAWAggB,EAAA+zN,MAAAG,oBAAA,SAAA/5O,GACA,QAAA1lC,EAAA0lC,EAAAg6L,WAAAx/N,OAAA,EAA6CF,GAAA,EAAQA,IAAA,CACrD,IAAAurC,EAAA7F,EAAAg6L,WAAA1/N,GACA,GAAAurD,EAAA+zN,MAAAE,aAAAj0O,IAAAggB,EAAA+zN,MAAAG,oBAAAl0O,GACA,SAGA,UAUAggB,EAAA+zN,MAAAE,aAAA,SAAA95O,GACA,IAAA6lB,EAAA+zN,MAAAI,YAAAh6O,GACA,SAEA6lB,EAAA+zN,MAAAK,wBAAA,EACA,IACAj6O,EAAA8G,QACG,MAAAppC,IAEH,OADAmoD,EAAA+zN,MAAAK,wBAAA,EACA7wQ,SAAA+yP,gBAAAn8N,GAGA6lB,EAAA+zN,MAAAI,YAAA,SAAAh6O,GACA,GAAAA,EAAAk6O,SAAA,OAAAl6O,EAAAk6O,UAAA,OAAAl6O,EAAAy0B,aAAA,YACA,SAGA,GAAAz0B,EAAAitC,SACA,SAGA,OAAAjtC,EAAAmtI,UACA,QACA,QAAAntI,EAAAqnH,MAAA,WAAArnH,EAAAm6O,IACA,YACA,iBAAAn6O,EAAAjjC,MAAA,SAAAijC,EAAAjjC,KACA,aACA,aACA,eACA,SACA,QACA,WAWA8oD,EAAA+zN,MAAAv+E,aAAA,SAAAkT,EAAApyM,GACA,IAAA2jC,OAAA,EAGAA,EADA,eAAAo1B,KAAA/4D,GACA,cACG,OAAA+4D,KAAA/4D,GACH,gBAEA,aAIA,IAFA,IAAAwxE,EAAAvkE,SAAAynH,YAAA/wF,GAEA5mB,EAAA7a,UAAA7D,OAAA4J,EAAAgB,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAoFA,EAAAgC,EAAahC,IACjG9S,EAAA8S,EAAA,GAAA7Y,UAAA6Y,GAMA,OAHAy2D,EAAAmjD,UAAAhrH,MAAA6nE,GAAAxxE,GAAAmS,OAAAlK,IACAmqM,EAAAx9E,cAAAw9E,EAAAx9E,cAAApjD,GAAA4gI,EAAA6rE,UAAA,KAAAj+Q,EAAAwxE,GAEA4gI,GAGA1oJ,EAAA+zN,MAAAx2Q,MACAoxQ,IAAA,EACAlU,MAAA,GACAh8P,MAAA,GACAlF,KAAA,GACAq1Q,GAAA,GACAp1Q,MAAA,GACAq1Q,KAAA,IAGAh4Q,EAAA4V,QAAAuzC,EAAA+zN,4BC5HA,IAAA5gR,EAAYF,EAAQ,QAEpBk/B,EAAAh/B,EAAAg/B,KACA3yB,EAAArM,EAAAqM,QACAlM,EAAAH,EAAAG,SAEAkhR,EAAkBvhR,EAAQ,QAI1B22D,EAFa32D,EAAQ,QAErB22D,iBAwDA,SAAA6qN,EAAA9jQ,GACAwhB,EAAAuiP,EAAA,SAAAlgR,GACAA,EAAA,KAAAmc,KAAAnc,EAAA,KAAAmc,KACAA,EAAAnc,EAAA,IAAAmc,EAAAnc,EAAA,OAKA,IAAAkgR,IAAA,wDACAC,GAAA,sFA8CA/9Q,EAAAC,QA5CA,SAAA8Z,EAAAkyK,GACA2xF,EAAA7jQ,EAAAkyK,GAEAlyK,EAAA3K,OAAA4jD,EAAAj5C,EAAA3K,QACAmsB,EAAAxhB,EAAA3K,OAAA,SAAA88K,GACA,GAAAxvL,EAAAwvL,GAAA,CAIA,IAAAv/G,EAAAu/G,EAAA5rL,KAQA,GANA,QAAAqsE,GAAA,UAAAA,GACA,MAAAu/G,EAAA8xF,YACA9xF,EAAA9yJ,UAAA8yJ,EAAA8xF,WAIA,UAAArxM,EAAA,CACA,IAAAsxM,EAhEA,SAAAvoP,EAAAv4B,GACAA,IAAAQ,MAAA,KAGA,IAFA,IAAAsK,EAAAytB,EAEA73B,EAAA,EAAiBA,EAAAV,EAAAY,QAGjB,OAFAkK,OAAA9K,EAAAU,KADkCA,KAQlC,OAAAoK,EAoDAnH,CAAAorL,EAAA,iBACA,MAAA+xF,GAlDA,SAAAvoP,EAAAv4B,EAAAkN,EAAAq+N,GACAvrO,IAAAQ,MAAA,KAIA,IAHA,IACAkJ,EADAoB,EAAAytB,EAGA73B,EAAA,EAAiBA,EAAAV,EAAAY,OAAA,EAAqBF,IAGtC,MAAAoK,EAFApB,EAAA1J,EAAAU,MAGAoK,EAAApB,OAGAoB,IAAApB,IAGA6hO,GAAA,MAAAzgO,EAAA9K,EAAAU,OACAoK,EAAA9K,EAAAU,IAAAwM,GAkCAy3C,CAAAoqI,EAAA,yBAAA+xF,GAGAJ,EAAA3xF,MAGAnyK,EAAAmkQ,YACAnkQ,EAAAnD,UAAAmD,EAAAmkQ,WAGA3iP,EAAAwiP,EAAA,SAAA1+F,GACA,IAAA95K,EAAAwU,EAAAslK,GAEA95K,IACAqD,EAAArD,KACAA,OAGAg2B,EAAAh2B,EAAA,SAAAwU,GACA8jQ,EAAA9jQ,+BClHA,IAAAokQ,EAAU9hR,EAAQ,QAClB2D,EAAAC,QAAA0I,MAAAC,SAAA,SAAAo5E,GACA,eAAAm8L,EAAAn8L,0BCHA,IAAA9hF,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBorC,EAAUprC,EAAQ,QAElB+hR,EAAoB/hR,EAAQ,QAE5BohE,EAAoBphE,EAAQ,QAE5BgiR,EAAqBhiR,EAAQ,QAE7B06B,EAAgB16B,EAAQ,QAExBm4C,EAAiBn4C,EAAQ,QAoBzBygM,EAAAr/H,EAAAq/H,UACAD,EAAAp/H,EAAAo/H,WACAj0L,EAAA+tB,EAAA/tB,QACA2yB,EAAA5E,EAAA4E,KACAgyC,EAAA/4B,EAAA+4B,IACAgjF,EAAA/7G,EAAA+7G,UACAp3F,EAAAxiC,EAAAwiC,KAieAp5D,EAheAG,EAAAoxB,sBACAhxB,KAAA,YACAixB,cAAA,UAMAqsC,WAAA,wBAMA0gN,sBAAA,sDAQAC,YAAAhoO,SAMAo7I,YACArxL,KAAA,MACA62N,YAAA,GAMA3lM,eACArvB,MAAA,EACAsvB,OAAA,EACAC,EAAA,EACAzC,YAAA,MAKAnqB,IAAA,EAEAC,IAAA,IAEAsI,UAAA,KACA0d,QAAA,KAGA+nI,WAAA,KAIAnwJ,KAAA,EAEAC,MAAA,KAEAkM,IAAA,KAEA8C,OAAA,EAEAuxL,UAAA,KACAD,WAAA,KACA7pK,SAAA,EACAzf,OAAA,WAEArC,gBAAA,gBACAsY,YAAA,OAEA2uP,aAAA,UACAC,cAAA,OACArsP,YAAA,EAEAC,QAAA,EAGA4/H,QAAA,GAEA9rJ,UAAA,EAEAlD,MAAA,KAEAyH,UAAA,KACAyjC,KAAA,KAEA32B,WACAvU,MAAA,SAQAqY,KAAA,SAAAvB,EAAA6oK,EAAAniL,GAKA3D,KAAA4hR,YAKA5hR,KAAA6hR,iBAKA7hR,KAAA8hR,qBAKA9hR,KAAAu1J,eAOAv1J,KAAAo1J,SACAp1J,KAAAqlL,qBAAApoK,EAAAtZ,IAMA2xL,cAAA,SAAA3zH,EAAA+7G,GACA,IAAAh8G,EAAA1hE,KAAAid,OAIA0tB,EAAAiB,kBACA81B,EAAAoP,UAAA,IAGA4sG,GAAA6jG,EAAA9/M,oBAAAC,EAAAC,EAAA3hE,KAAAwhR,sBACAxhR,KAAAu1J,eAAAv1J,KAAAq/B,SAAA,aACAr/B,KAAAymM,gBACAzmM,KAAA2mM,wBAMAJ,YAAA,SAAAxlI,GACA,IAAAD,EAAA9gE,KAAA8gE,UACAC,EAAAlnC,EAAArvB,KAAAu2D,EAAA/gE,MACAA,KAAA8hR,kBAAAP,EAAA1gN,qBAAA7gE,KAAAid,OAAAotC,WAAAyW,EAAAC,GACA/gE,KAAA6hR,cAAAN,EAAA1gN,qBAAA7gE,KAAAid,OAAA1c,OAAAugE,EAAAC,IAOAghN,uBAAA,WACA,IAAAC,EAAAhiR,KAAAid,OAAAkV,YACA8vP,KAUA,OARA,MAAAD,GAAA,QAAAA,EACAhiR,KAAA2D,QAAAqxD,WAAA,SAAAx5B,EAAA5uB,GACAq1Q,EAAA1gR,KAAAqL,KAGAq1Q,EAAAhoP,EAAAi8B,iBAAA8rN,GAGAC,GAMAp7E,iBAAA,SAAA1kM,EAAA2rD,GACAj0B,EAAA4E,KAAAz+B,KAAA+hR,yBAAA,SAAA5vP,GACAhwB,EAAAuJ,KAAAoiD,EAAA9tD,KAAA2D,QAAAw2D,iBAAAhoC,KACKnyB,OAMLg7J,eAAA,SAAAx/H,GACA,IAAA0mL,GAAA,EAIA,OAHAliN,KAAA6mM,iBAAA,SAAAtvK,GACAA,IAAAiE,IAAA0mL,GAAA,KAEAA,GAiBA5oD,gBAAA,SAAA/xJ,EAAA67D,EAAA8+M,GACA,IAIAC,EACA1oH,EALAx8I,EAAAjd,KAAAid,OACA5T,EAAA4T,EAAA5T,UACAo4Q,EAAAzhR,KAAAyhR,UACA7zQ,EAAAqP,EAAArP,UAYA,OATAs0Q,MAAA,SAEAroP,EAAA/tB,QAAAvE,KACAA,IAAAjF,QACA6/Q,GAAA,GAGA1oH,EAAAr2F,EAAA77D,EAAA46Q,GAAA76Q,EAAAC,EAAA,IAAAD,EAAAC,EAAA,KAAAD,EAAAC,GAEAsyB,EAAAn6B,SAAAkO,GACAA,EAAArF,QAAA,UAAuC45Q,EAAA1oH,EAAA,GAAAA,GAAAlxJ,QAAA,WAAyD45Q,EAAA1oH,EAAA,GAAAA,GAC3F5/H,EAAAl6B,WAAAiO,GACLu0Q,EAAAv0Q,EAAArG,EAAA,GAAAA,EAAA,IAAAqG,EAAArG,GAGA46Q,EACA56Q,EAAA,KAAAk6Q,EAAA,GACAS,EAAA,OAAAzoH,EAAA,GACOlyJ,EAAA,KAAAk6Q,EAAA,GACPS,EAAA,OAAAzoH,EAAA,GAEAA,EAAA,SAAAA,EAAA,GAIAA,EAGA,SAAAnyJ,EAAAiG,GACA,OAAAA,IAAAk0Q,EAAA,SAAAl0Q,IAAAk0Q,EAAA,WAAAl0Q,GAAAjG,QAAAS,KAAAC,IAAAqB,EAAA,OAOAi9L,YAAA,WACA,IAAA5kI,EAAA1hE,KAAAid,OAIA+d,EAAAy1C,GAAA/O,EAAA15D,IAAA05D,EAAAz5D,MACAjI,KAAA4hR,YAAA5mP,GASAigI,iBAAA,SAAApuI,GACA,IAAAu1P,EAAApiR,KAAAid,OAAA1M,UACA8xQ,EAAAx1P,EAAAkV,WAEA,SAAAqgP,GAAAC,EAAAphR,OAAA,CAIA,SAAAmhR,EACA,OAAAv1P,EAAA81C,aAAAy/M,GAKA,IAFA,IAAArwE,EAAAllL,EAAAkV,WAEAhhC,EAAAgxM,EAAA9wM,OAAA,EAAqCF,GAAA,EAAQA,IAAA,CAC7C,IAAA+gC,EAAAiwK,EAAAhxM,GAGA,IAFA8rB,EAAAoV,iBAAAH,GAEAwgP,mBACA,OAAAxgP,KASAhG,UAAA,WACA,OAAA97B,KAAA4hR,YAAAt/Q,SAMAqkM,qBAAA,WACA,IAAAhjM,EAAA3D,KAAA2D,QACA+9D,EAAA1hE,KAAAid,OACAs7B,GACAtqB,QAAAyzC,EAAAzzC,QACA+nI,WAAAt0F,EAAAs0F,YAEAz1J,EAAAmhE,EAAAnhE,SAAAmhE,EAAAnhE,WACA8pD,EAAAqX,EAAArX,aAAAqX,EAAArX,eACAxwB,EAAA82C,MAAApwE,EAAAg4C,GAEA1e,EAAA82C,MAAAtmB,EAAA9R,GAEA,IAAA6qB,EAAApjE,KAAAojE,aAOA,SAAAm/M,EAAAhqO,GAKAzsC,EAAA41D,EAAAv7D,SAEAoyC,EAAAtqB,UACAsqB,EAAAtqB,SACA9nB,MAAAu7D,EAAAv7D,MAAA7D,QAAAilB,YAUAgxB,EAAAtqB,QAAAsqB,EAAAtqB,UACA9nB,MAAAxC,EAAAK,IAAA,kBAGAy6B,EAAAz+B,KAAA8gE,UAAA,SAAA/kB,GACA,IAAA+X,EAAAvb,EAAAwD,GAEA,GAAAliB,EAAAn6B,SAAAo0D,GAAA,CACA,IAAA0uN,EAAAlB,EAAAt9Q,IAAA8vD,EAAA,SAAAsP,GAEAo/M,GACAjqO,EAAAwD,MACAxD,EAAAwD,GAAA+X,GAAA0uN,UAGAjqO,EAAAwD,KAGO/7C,MA3CPuiR,EAAA72Q,KAAA1L,KAAAO,GACAgiR,EAAA72Q,KAAA1L,KAAAqqD,GA6CA,SAAA9R,EAAAkqO,EAAAC,GACA,IAAAC,EAAApqO,EAAAkqO,GACAG,EAAArqO,EAAAmqO,GAEAC,IAAAC,IACAA,EAAArqO,EAAAmqO,MACAjkP,EAAAkkP,EAAA,SAAAvhN,EAAAtN,GACA,GAAA6M,EAAAU,YAAAvN,GAAA,CAIA,IAAA0uN,EAAAlB,EAAAt9Q,IAAA8vD,EAAA,WAAAsP,GAEA,MAAAo/M,IACAI,EAAA9uN,GAAA0uN,EAIA,UAAA1uN,GAAA8uN,EAAA//Q,eAAA,YAAA+/Q,EAAA//Q,eAAA,gBACA+/Q,EAAA/vQ,SAAA,YA/DAnH,KAAA1L,KAAAO,EAAA,wBAsEA,SAAA8pD,GACA,IAAAw4N,GAAAx4N,EAAAp8B,aAAkDe,SAAAq7B,EAAA2rG,gBAAwChnI,OAC1F8zP,GAAAz4N,EAAAp8B,aAAsDgB,aAAAo7B,EAAA2rG,gBAA4C/mI,WAClG0yP,EAAA3hR,KAAAgE,IAAA,iBACAy6B,EAAAz+B,KAAA8gE,UAAA,SAAA/kB,GACA,IAAAq5G,EAAAp1J,KAAAo1J,SACA2tH,EAAA14N,EAAAtO,GAGAgnO,IACAA,EAAA14N,EAAAtO,IACA51C,MAAAi9D,EAAAu+M,QAKA,MAAAoB,EAAA/zP,SACA+zP,EAAA/zP,OAAA6zP,GAAAhpP,EAAAmQ,MAAA64O,KAAAz/M,EAAA,4BAGA,MAAA2/M,EAAA9zP,aACA8zP,EAAA9zP,WAAA6zP,GAAAjpP,EAAAmQ,MAAA84O,KAAA1/M,EAAAgyF,EAAA,IAAAA,EAAA,GAAAA,EAAA,MAIA2tH,EAAA/zP,OAAAgxK,EAAA+iF,EAAA/zP,OAAA,SAAAA,GACA,eAAAA,GAAA,WAAAA,EAAA,YAAAA,IAGA,IAAAC,EAAA8zP,EAAA9zP,WAEA,SAAAA,EAAA,CACA,IAAAhnB,GAAAwxC,IAEAsmJ,EAAA9wK,EAAA,SAAA1nB,GACAA,EAAAU,MAAAV,KAEAw7Q,EAAA9zP,WAAA+wK,EAAA/wK,EAAA,SAAA1nB,GACA,OAAAksJ,EAAAlsJ,GAAA,EAAAU,IAAA,EAAAmtJ,EAAA,YAGOp1J,OA7GP0L,KAAA1L,KAAAqqD,IAoHAo8I,cAAA,WACAzmM,KAAAo1J,UAAA5vI,WAAAxlB,KAAAgE,IAAA,cAAAwhB,WAAAxlB,KAAAgE,IAAA,iBAMAo/D,WAAA,WACA,QAAApjE,KAAAid,OAAAm0J,YAOAw1B,YAAAvqI,EASAwF,cAAAxF,EAiBA0qI,cAAA1qI,IAGAn5D,EAAAC,QAAAF,wBC1gBA1D,EAAQ,QACR,IAAAyjR,EAAczjR,EAAQ,QAAqBqK,OAC3C1G,EAAAC,QAAA,SAAAu9D,EAAA32D,EAAAs6C,GACA,OAAA2+N,EAAA53Q,eAAAs1D,EAAA32D,EAAAs6C,0BCHA,IAoBA4+N,EApBoB1jR,EAAQ,QAoB5BmK,QACAlG,KAAA,sBACAixB,cAAA,QACAC,eACA1F,OAAA,SAEAC,WAAA,KAEAC,aAAA,KACAg0P,eAAA,KAEA/zP,aAAA,KACAg0P,aAAA,KAGAC,cAAA,EAKAC,sBAAA,MAEAC,YAAA,EACAC,mBAAA,KAEAC,kBAAA,IAEA5wQ,OAAA,QAIA+2J,YAAA,EACAzmJ,gBAAA,GAGA0lJ,eAAA,SAAA3rJ,GAGA,OADAA,EAAAnP,MAAA,KACAm1Q,EAAAr+Q,WAAA5E,KAAA,iBAAA8E,cAGA7B,EAAAggR,EACA//Q,EAAAC,QAAAF,sBChBAC,EAAAC,QA5BA,SAAA0sE,GACA,OACAA,aACA/kE,MAAA,SAAA0wB,EAAA73B,GACA,IAAA8/Q,EAAA9/Q,EAAAutJ,gBACA5hG,SAAA,WAGA,GAAAm0N,KAAAxiR,OAAA,CAIA,IAAA6P,EAAA0qB,EAAAtP,UACApb,EAAA4yQ,WAAA,SAAApjP,GAGA,IAFA,IAAA19B,EAAAkO,EAAAqzD,QAAA7jC,GAEAv/B,EAAA,EAAuBA,EAAA0iR,EAAAxiR,OAAyBF,IAChD,IAAA0iR,EAAA1iR,GAAAwjE,WAAA3hE,GACA,SAIA,kDCtCAO,EAAAiuE,YAAA,EAEA,IAAAjjB,EAAW5uD,EAAQ,QAInB,IAAAmvQ,EAAA,WACA,SAAAA,KAHA,SAAAnvN,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAI3F6+B,CAAA7iF,KAAA0uQ,GAiEA,OA9DAA,EAAAxuQ,UAAAqnQ,YAAA,SAAA9mQ,IACA,EAAA0tD,EAAA6rB,UAAAv5E,EAAA,uBACAA,EAAAkjR,UAAAljR,EAAAkjR,YAEAljR,EAAAkjR,QAAAC,cAAAnjR,EAAA8X,MAAAsrQ,WACApjR,EAAAkjR,QAAAG,iBAAArjR,EAAA8X,MAAAwrQ,cAEAtjR,EAAA8X,MAAAU,OAAA,IACAxY,EAAA8X,MAAAsrQ,WAAA,EACApjR,EAAA8X,MAAAwrQ,cAAA,GAGArV,EAAAxuQ,UAAA6mQ,MAAA,SAAAtmQ,GACAA,EAAAkjR,QAAAK,YAAAvjR,EAAA8X,MAAAy7B,SACA,IAAAvzC,EAAAohD,cACAphD,EAAA8X,MAAAU,OAAAxY,EAAAohD,aAAA,KACAphD,EAAA8X,MAAAsrQ,WAAApjR,EAAAkjR,QAAAC,cACAnjR,EAAA8X,MAAAwrQ,cAAAtjR,EAAAkjR,QAAAG,mBAEArjR,EAAA8X,MAAAU,OAAA,GACAxY,EAAA8X,MAAAsrQ,WAAApjR,EAAAkjR,QAAAC,cACAnjR,EAAA8X,MAAAwrQ,cAAAtjR,EAAAkjR,QAAAG,kBAGArjR,EAAA8X,MAAAy7B,SAAA,UAGA06N,EAAAxuQ,UAAAsnQ,WAAA,SAAA/mQ,IAEA,EAAA0tD,EAAAosB,aAAA95E,EAAA,uBACAA,EAAA8X,MAAAU,OAAA,GACAxY,EAAA8X,MAAAy7B,SAAAvzC,EAAAkjR,QAAAK,aAGAtV,EAAAxuQ,UAAA8oQ,YAAA,SAAAvoQ,GACAA,EAAAkjR,UAAAljR,EAAAkjR,YACAljR,EAAAkjR,QAAAC,cAAAnjR,EAAA8X,MAAAsrQ,WACApjR,EAAAkjR,QAAAG,iBAAArjR,EAAA8X,MAAAwrQ,cACAtjR,EAAAkjR,QAAAK,YAAAvjR,EAAA8X,MAAAy7B,SAEAvzC,EAAA8X,MAAAU,OAAAxY,EAAAohD,aAAA,KACAphD,EAAA8X,MAAAy7B,SAAA,UAGA06N,EAAAxuQ,UAAA4oQ,MAAA,SAAAroQ,GACA,IAAAA,EAAAohD,gBAEA,EAAAsM,EAAA6rB,UAAAv5E,EAAA,uBACAA,EAAA8X,MAAAU,OAAA,EACAxY,EAAA8X,MAAAsrQ,WAAA,EACApjR,EAAA8X,MAAAwrQ,cAAA,IAIArV,EAAAxuQ,UAAAwmN,WAAA,SAAAjmN,IACA,EAAA0tD,EAAAosB,aAAA95E,EAAA,uBACAA,EAAA8X,MAAAU,OAAA,GACAxY,EAAA8X,MAAAy7B,SAAAvzC,EAAAkjR,QAAAK,YACAvjR,EAAA8X,MAAAsrQ,WAAApjR,EAAAkjR,QAAAC,cACAnjR,EAAA8X,MAAAwrQ,cAAAtjR,EAAAkjR,QAAAG,kBAGApV,EAnEA,GAsEAvrQ,EAAA4V,SACAnW,KAAA,uBACAqvE,YAAA,EACAxuE,OAAA,SAAAwU,EAAA/J,GACA,IAAAq6K,EAAAr6K,EAAAq6K,SAMA,OAAAtwK,EAAA,cAHAyH,GAAA,IAAAgvP,GAGAnmF,wCCtFA,IAAA07F,EAAkB1kR,EAAQ,QAS1B2D,EAAAC,QAAA,SAAAuL,EAAAC,EAAA+qG,GACA,IAAAwqK,EAAAxqK,EAAA15D,OAAAkkO,eAEAxqK,EAAAzjG,QAAAiuQ,MAAAxqK,EAAAzjG,QAGAtH,EAAAs1Q,EACA,mCAAAvqK,EAAAzjG,OACAyjG,EAAA15D,OACA,KACA05D,EAAAyqK,QACAzqK,IAPAhrG,EAAAgrG,uCCbA,IAAA12E,EAAezjC,EAAQ,QACvBy1E,EAAYz1E,EAAQ,QACpB6kR,EAAyB7kR,EAAQ,QACjC8kR,EAAsB9kR,EAAQ,QAO9B,SAAA+kR,EAAAC,GACAvkR,KAAAgjC,SAAAuhP,EACAvkR,KAAAwkR,cACAL,QAAA,IAAAC,EACA1qK,SAAA,IAAA0qK,GASAE,EAAApkR,UAAAikR,QAAA,SAAAnkO,GAGA,iBAAAA,IACAA,EAAAg1B,EAAArE,OACAxiE,IAAArJ,UAAA,IACKA,UAAA,MAGLk7C,EAAAg1B,EAAArE,MAAA3tC,GAAkC0L,OAAA,OAAc1uC,KAAAgjC,SAAAgd,IAChDtR,OAAAsR,EAAAtR,OAAAp2B,cAGA,IAAAmsQ,GAAAJ,OAAA32Q,GACAkyD,EAAAnxD,QAAAC,QAAAsxC,GAUA,IARAhgD,KAAAwkR,aAAAL,QAAAr6Q,QAAA,SAAA46Q,GACAD,EAAA9hP,QAAA+hP,EAAAC,UAAAD,EAAAE,YAGA5kR,KAAAwkR,aAAA9qK,SAAA5vG,QAAA,SAAA46Q,GACAD,EAAAljR,KAAAmjR,EAAAC,UAAAD,EAAAE,YAGAH,EAAAxjR,QACA2+D,IAAAzwD,KAAAs1Q,EAAAj3O,QAAAi3O,EAAAj3O,SAGA,OAAAoyB,GAIAoV,EAAAlrE,SAAA,0CAAA4kC,GAEA41O,EAAApkR,UAAAwuC,GAAA,SAAAvgC,EAAA6xC,GACA,OAAAhgD,KAAAmkR,QAAAnvM,EAAArE,MAAA3wB,OACAtR,SACAvgC,YAKA6mE,EAAAlrE,SAAA,+BAAA4kC,GAEA41O,EAAApkR,UAAAwuC,GAAA,SAAAvgC,EAAA2C,EAAAkvC,GACA,OAAAhgD,KAAAmkR,QAAAnvM,EAAArE,MAAA3wB,OACAtR,SACAvgC,MACA2C,aAKA5N,EAAAC,QAAAmhR,qCC5EAphR,EAAAC,QAAA,SAAAoE,GACA,SAAAA,MAAAs9Q,mCCHAtlR,EAAQ,OAARA,CAAuB,qCCAvB,SAAAilD,GAuBA,IAAAsgO,EAEA,oBAAAn1Q,OACAm1Q,EAAAn1Q,OAAAiqB,aAEA,IAAA4qB,IACAsgO,EAAAtgO,EAAA5qB,cAGA,IAAAkrP,IACAA,GAAA,GAGA,IAAAlrP,EAAAkrP,EACA3hR,EAAAy2B,oDCrCA,IAAAmrP,EAAgBxlR,EAAQ,QAExBylR,GACAC,kBAAA,GAGAC,GACA7wP,QAAA,SAAAC,GACAA,EAAAp0B,UAAAilR,iBAAAH,EACA1wP,EAAAp0B,UAAAklR,UAAA,SAAA/zO,EAAAk8C,GACA,WAAA9+E,QAAA,SAAAC,EAAAC,GACA,IAAA02Q,EAAAx1Q,SAAAC,cAAA,UACAw1Q,EAAA,IAAAP,EAAAM,GACAh0O,KAAA,WAA6B,OAAAA,GAC7BimB,OAAA,WAA+B,cAC/Bi2B,UAAA,iBAAAA,IAAA19E,SAAAG,OAEAs1Q,EAAA5lQ,GAAA,mBAAAvb,GACAmhR,EAAAnmO,UACAzwC,EAAAvK,KAEAmhR,EAAA5lQ,GAAA,iBAAAvb,GACAmhR,EAAAnmO,UACAxwC,EAAAxK,KAEAkhR,EAAAxwM,WAIAvgD,EAAA84O,UAAA,aACA5iQ,KAAA,SAAA/J,EAAA4sQ,EAAAvmD,GACA,eAAAumD,EAAAnoL,IACAzkF,EAAA8kR,qBAAAlY,EAAA9lQ,WACS,aAAA8lQ,EAAAnoL,IACTzkF,EAAA+kR,mBAAAnY,EAAA9lQ,UACS,CACT,IAAA+9Q,EAAA,IAAAP,EAAAtkR,GACA4wC,KAAA,WAA+B,OAAAg8N,EAAA9lQ,OAC/B+vD,OAAA,WAAiC,cAAA+1M,EAAAnoL,IAAA,cACjCqI,UAAAy3L,EAAAC,iBAAAxkR,OAAAiN,IAEA43Q,EAAA5lQ,GAAA,mBAAAvb,GACA,IAAAhC,EAAA1B,EAAA8kR,qBACApjR,KAAAgC,KAEAmhR,EAAA5lQ,GAAA,iBAAAvb,GACA,IAAAhC,EAAA1B,EAAA+kR,mBACArjR,KAAAgC,KAEA1D,EAAAglR,aAAAH,IAGA/oO,OAAA,SAAA97C,EAAA4sQ,GACA,YAAAA,EAAAnoL,IACAzkF,EAAA8kR,qBAAAlY,EAAA9lQ,MACS,UAAA8lQ,EAAAnoL,IACTzkF,EAAA+kR,mBAAAnY,EAAA9lQ,OAEA9G,EAAAglR,aAAAp0O,KAAA,WAA8C,OAAAg8N,EAAA9lQ,OAC9C9G,EAAAglR,aAAAnuN,OAAA,WAAgD,cAAA+1M,EAAAnoL,IAAA,gBAGhDkpL,OAAA,SAAA3tQ,EAAA4sQ,GACA,YAAAA,EAAAnoL,WACAzkF,EAAA8kR,qBACS,UAAAlY,EAAAnoL,WACTzkF,EAAA+kR,oBAEA/kR,EAAAglR,aAAAtmO,iBACA1+C,EAAAglR,kBAKAzlO,OAAAglO,GAIA9hR,EAAAC,QAAA+hR,sBCvEA,IAsCAjiR,EApCA,iBAAAyiR,IAAA,mBAAAA,GAAAC,mBAGA3rN,WACA4rN,MACA1sN,MAAA,EACA0+G,KAAA,EAEAhsI,iBAAA,EACAymB,cAAA,EACAwzN,sBAAA,GAEC,oBAAAh2Q,UAAA,oBAAA1D,MAGD6tD,WACA4rN,MACA1sN,MAAA,EACAg3F,QAAA,EACAtkH,iBAAA,GAEC,oBAAAiT,WAGDmb,WACA4rN,MACA1sN,MAAA,EACAg3F,QAAA,EAEAtkH,iBAAA,EACAymB,cAAA,GAUA,SAAAmgE,GACA,IACAx4D,KAeAo3H,EAAA5+D,EAAArpH,MAAA,qBAGA28Q,EAAAtzJ,EAAArpH,MAAA,mBACAqpH,EAAArpH,MAAA,6BACAw9K,EAAAn0D,EAAArpH,MAAA,kBAEA8wD,EAAA,kBAAA0B,KAAA62D,GAqBA4+D,IACAp3H,EAAAo3H,SAAA,EACAp3H,EAAAsC,QAAA80H,EAAA,IAKA00F,IACA9rN,EAAA8rN,IAAA,EACA9rN,EAAAsC,QAAAwpN,EAAA,IAGAn/F,IACA3sH,EAAA2sH,MAAA,EACA3sH,EAAAsC,QAAAqqH,EAAA,IAKA1sH,IACAD,EAAAC,QAAA,GAQA,OACAD,UACA4rN,MACA1sN,MAAA,EAGAttB,kBAAA/7B,SAAAC,cAAA,UAAA2qK,WACApoH,aAAA,oBAAA0zN,QAIAF,qBAAA,iBAAAl2Q,SAAAqqD,EAAA8rN,KAAA9rN,EAAA2sH,KAEAq/F,uBAAA,kBAAAr2Q,SAIAqqD,EAAA2sH,MAAA3sH,EAAA8rN,IAAA9rN,EAAAsC,SAAA,KAjGA2pN,CAAApnO,UAAAC,WAqHA57C,EAAAC,QAAAF,wBC/JA,IAAA89K,EAAWxhL,EAAQ,QACnBilD,EAAajlD,EAAQ,QAErBs/K,EAAAr6H,EADA,wBACAA,EADA,2BAGAthD,EAAAC,QAAA,SAAA4G,EAAAxC,GACA,OAAAs3K,EAAA90K,KAAA80K,EAAA90K,QAAA2D,IAAAnG,UACC,eAAAhG,MACD+6D,QAAAykH,EAAAzkH,QACA+7D,KAAQ94H,EAAQ,QAAY,gBAC5B2mR,UAAA,iECVA,IAAArsP,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAoBtBw4B,EAAAhwB,KAAAgwB,GAwFA70B,EAAAC,QA9EA,SAAAS,EAAAiH,GACAA,QACAgvB,EAAAmJ,SAAAn4B,GACAwmC,KAAA,UACAlrC,MAAA,UACAggR,UAAA,OACAC,UAAA,2BACAzxP,OAAA,IAEA,IAAAgtI,EAAA,IAAAnnJ,EAAAyiB,MACA1kB,OACAb,KAAA7M,EAAAu7Q,WAEAzxP,OAAA9pB,EAAA8pB,OACAC,EAAA,MAEAuyI,EAAA,IAAA3sJ,EAAA6rQ,KACAt+P,OACAqU,YAAArE,EAAA,EACAsE,UAAAtE,EAAA,KACAtgB,EAAA,IAEAc,OACA2qB,OAAAr4B,EAAA1E,MACAmgR,QAAA,QACAvpP,UAAA,GAEApI,OAAA9pB,EAAA8pB,OACAC,EAAA,QAEA2xP,EAAA,IAAA/rQ,EAAAyiB,MACA1kB,OACAb,KAAA,OACA25B,KAAAxmC,EAAAwmC,KACA+E,aAAA,QACAE,aAAA,GACAgB,SAAAzsC,EAAAs7Q,WAEAxxP,OAAA9pB,EAAA8pB,OACAC,EAAA,QAEAuyI,EAAAq/G,cAAA,GAAAxjR,KAAA,KACAq5B,SAAA,EAAAtE,EAAA,IACGv1B,MAAA,iBACH2kK,EAAAq/G,cAAA,GAAAxjR,KAAA,KACAo5B,WAAA,EAAArE,EAAA,IACG91B,MAAA,KAAAO,MAAA,iBACH,IAAAw8B,EAAA,IAAAxkB,EAAAskB,MA4BA,OA3BAE,EAAAC,IAAAkoI,GACAnoI,EAAAC,IAAAsnP,GACAvnP,EAAAC,IAAA0iI,GAEA3iI,EAAAxiB,OAAA,WACA,IAAAjF,EAAA3T,EAAAkuD,WAAA,EACAt6C,EAAA5T,EAAAmuD,YAAA,EACAo1G,EAAA5lI,UACAhqB,KACAC,OAEA,IAAAC,EAAA0vJ,EAAAp/I,MAAAtQ,EACA8uQ,EAAAhlP,UACAl9B,EAAAkT,EAAAE,EACAlT,EAAAiT,EAAAC,EACAuB,MAAA,EAAAvB,EACAwB,OAAA,EAAAxB,IAEAkqJ,EAAApgI,UACAl9B,EAAA,EACAE,EAAA,EACAyU,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,eAIA/yB,EAAAxiB,SACAwiB,yBC3GA,IAAAnF,EAAat6B,EAAQ,QAIrBk1L,EAFal1L,EAAQ,QAErBk1L,UAEAgyF,EAAkBlnR,EAAQ,QAE1BmnR,EAA0BnnR,EAAQ,QAoBlCk/B,EAAA5E,EAAA4E,KACA8L,EAAA1Q,EAAA0Q,MACAoqJ,EAAAF,IAmHA,SAAAkyF,EAAA9tF,EAAA+tF,EAAAC,EAAAC,EAAAC,GACA,IAAAtxP,EAAAojK,EAAApjK,KAEA,IAAAA,EAAAlkB,MAAAihK,WAAA/8I,EAAAgkK,YAAAmtF,GAIA,GAAA/tF,EAAAmuF,cAAA,CAMA,IAAAC,EAuBA,SAAA1/Q,EAAAsxL,GACA,IAAApjK,EAAAojK,EAAApjK,KACA4C,EAAA5C,EAAA4C,IACA6uP,EAAA3/Q,EACA4/Q,KACAC,EAAArsQ,OAAAqtM,UACAi/D,GAAA,EA+CA,OA9CA5oP,EAAAo6J,EAAA8oC,aAAA,SAAArvN,EAAAguB,GACA,IACAgnP,EACAxgF,EAFAs3C,EAAA9rO,EAAA4Z,UAAAsS,aAAAnG,GAAA,GAIA,GAAA/lB,EAAAi1Q,mBAAA,CACA,IAAAx2Q,EAAAuB,EAAAi1Q,mBAAAnpC,EAAA72O,EAAAkuB,GACAqxK,EAAA/1L,EAAA+1L,YACAwgF,EAAAv2Q,EAAAy2Q,iBACK,CAML,KALA1gF,EAAAx0L,EAAA4Z,UAAAu7P,iBAAArpC,EAAA,GAAA72O,EAGA,aAAAkuB,EAAAjyB,KAAA,UAEAvC,OACA,OAGAqmR,EAAAh1Q,EAAA4Z,UAAAloB,IAAAo6O,EAAA,GAAAt3C,EAAA,IAGA,SAAAwgF,GAAAhpO,SAAAgpO,GAAA,CAIA,IAAAhjP,EAAA/8B,EAAA+/Q,EACAzzF,EAAA9rL,KAAAY,IAAA27B,GAEAuvJ,GAAAuzF,KACAvzF,EAAAuzF,GAAA9iP,GAAA,GAAA+iP,EAAA,KACAD,EAAAvzF,EACAwzF,EAAA/iP,EACA4iP,EAAAI,EACAH,EAAAlmR,OAAA,GAGAw9B,EAAAqoK,EAAA,SAAA1oK,GACA+oP,EAAA5lR,MACA4wB,YAAA7f,EAAA6f,YACA6hC,gBAAA51B,EACAA,UAAA9rB,EAAA4Z,UAAAq9I,YAAAnrI,YAMA+oP,eACAD,eA9EAQ,CAAAd,EAAA/tF,GACAsuF,EAAAF,EAAAE,aACAD,EAAAD,EAAAC,YAGAC,EAAA,UAAAJ,EAAA50P,aACA0H,EAAAnwB,OAAAq9Q,EAAAI,EAAA,KAKAL,GAAAjuF,EAAAxX,MACA5rJ,EAAAgkK,YAAAytF,IAAA,MAAAA,IACAN,EAAAM,GAIAL,EAAAc,YAAA9uF,EAAA+tF,EAAAO,EAAAJ,GAGAF,EAAAe,YAAA/uF,EAAAouF,EAAAC,QAzBAL,EAAAc,YAAA9uF,EAAA+tF,GAuFA,SAAAe,EAAAE,EAAAhvF,EAAAtxL,EAAA4/Q,GACAU,EAAAhvF,EAAA9uL,MACAxC,QACA4/Q,gBAIA,SAAAS,EAAAE,EAAAjvF,EAAAouF,EAAA1/Q,GACA,IAAA4/Q,EAAAF,EAAAE,aACA1xP,EAAAojK,EAAApjK,KACAY,EAAAZ,EAAA8B,MACAjB,EAAAuiK,EAAAviK,iBAGA,GAAAuiK,EAAAvX,gBAAA6lG,EAAAlmR,OAAA,CAIA,IAAAqwJ,EAAAunC,EAAAx9J,SAAA9D,MACAwwP,EAAAtB,EAAAuB,QAAA12H,GACA22H,EAAAH,EAAAn3Q,IAAAo3Q,GAEAE,IACAA,EAAAH,EAAAn3Q,IAAAo3Q,IACAG,WAAA52H,EAAA5vJ,GACAymR,cAAA72H,EAAAp5F,eACAmwI,aAAA/2C,EAAA9tJ,KACA4kR,iBAAA92H,EAAAhiG,SACA+4N,eAEAP,EAAAj7P,KAAAtrB,KAAA0mR,IAGAA,EAAAI,WAAA9mR,MACAynK,QAAAvzI,EAAA4C,IACA8xC,UAAA9zC,EAAA6hC,eACA5M,SAAAj1B,EAAA7yB,KACA8kR,OAAAjyP,EAAA30B,GACA6F,QAKAghR,eACAl/Q,UAAAitB,EAAAtyB,IAAA,mBACA4J,UAAA0oB,EAAAtyB,IAAA,oBAEAwkR,kBAAArB,EAAA7kR,WA6GA,SAAAmmR,EAAA5vF,GACA,IAAAxiK,EAAAwiK,EAAApjK,KAAA8B,MACA5qB,KACA0rB,EAAA1rB,EAAAq8J,QAAA6vB,EAAApjK,KAAA4C,IAIA,OAHA1rB,EAAAw9D,UAAAx9D,EAAA0rB,EAAA,aAAAhC,EAAA6hC,eACAvrD,EAAAikE,SAAAjkE,EAAA0rB,EAAA,YAAAhC,EAAAzzB,KACA+J,EAAA27Q,OAAA37Q,EAAA0rB,EAAA,UAAAhC,EAAA30B,GACAiL,EAGA,SAAA+7Q,EAAAr+O,GACA,OAAAA,GAAA,MAAAA,EAAA,IAAA5/B,MAAA4/B,EAAA,WAAAA,EAAA,IAAA5/B,MAAA4/B,EAAA,IAGAnnC,EAAAC,QA/VA,SAAAygC,EAAAjgC,EAAAC,GACA,IAAAM,EAAA0/B,EAAA1/B,YACAmmC,GAAAzG,EAAAv/B,EAAAu/B,EAAAr/B,GACAmjC,EAAA9D,EACAx/B,EAAAw/B,EAAAx/B,gBAAAy1B,EAAArvB,KAAA5G,EAAAQ,eAAAR,GACAw9K,EAAAz9K,EAAAG,aAAA,eAAAs9K,iBAGA,GAAAA,EAAA,CAIAsnG,EAAAr+O,KAGAA,EAAAq8O,GACAv0P,YAAAuV,EAAAvV,YAGAiM,UAAAsJ,EAAAtJ,WACKz6B,GAAA0mC,OAGL,IAAAs+O,EAAAD,EAAAr+O,GAKAu+O,EAAAlhP,EAAAmhP,SACAA,EAAAznG,EAAAynG,SACAC,EAAA,UAAA5kR,GAAAwkR,EAAAr+O,GACA08O,KACAc,KACAC,GACAj7P,QACAlc,QAEAk2Q,GACAc,YAAAp9O,EAAAo9O,EAAAE,GACAD,YAAAr9O,EAAAq9O,EAAAE,IAGArpP,EAAA2iJ,EAAA2nG,YAAA,SAAA1tP,EAAA0sP,GAEA,IAAAiB,EAAAL,GAAAttP,EAAAoP,aAAAJ,GACA5L,EAAA2iJ,mBAAA2mG,GAAA,SAAAlvF,EAAA9uL,GACA,IAAA0rB,EAAAojK,EAAApjK,KACAwzP,EAwRA,SAAAL,EAAA/vF,GACA,QAAA93L,EAAA,EAAiBA,GAAA6nR,OAAA3nR,OAAkCF,IAAA,CACnD,IAAAkoR,EAAAL,EAAA7nR,GAEA,GAAA83L,EAAApjK,KAAA4C,MAAA4wP,EAAAjgH,SAAA6vB,EAAApjK,KAAA8B,MAAA2gC,iBAAA+wN,EAAA9+M,UACA,OAAA8+M,GA7RAC,CAAAN,EAAA/vF,GAEA,IAAAiwF,GAAAE,KAAAJ,GAAAK,GAAA,CACA,IAAA17Q,EAAA07Q,KAAA1hR,MAEA,MAAAgG,GAAAo7Q,IACAp7Q,EAAAkoB,EAAA2U,YAAAC,IAGA,MAAA98B,GAAAo5Q,EAAA9tF,EAAAtrL,EAAAs5Q,GAAA,EAAAE,QAKA,IAAAoC,KAsBA,OArBA1qP,EAAAoqP,EAAA,SAAAO,EAAAC,GACA,IAAAC,EAAAF,EAAAE,UAEAA,IAAAzB,EAAAwB,IACA5qP,EAAA6qP,EAAAT,SAAA,SAAAU,EAAAC,GACA,IAAAC,EAAA5B,EAAA2B,GAEA,GAAAD,IAAAH,GAAAK,EAAA,CACA,IAAAl8Q,EAAAk8Q,EAAAliR,MACA+hR,EAAAI,SAAAn8Q,EAAA67Q,EAAA3zP,KAAAlkB,MAAApE,MAAAm8Q,EAAAI,OAAAn8Q,EAAAk7Q,EAAAc,GAAAd,EAAAW,MACAD,EAAAC,EAAAr/Q,KAAAwD,OAKAkxB,EAAA0qP,EAAA,SAAA57Q,EAAA87Q,GACA1C,EAAAkC,EAAAQ,GAAA97Q,EAAAs5Q,GAAA,EAAAE,KA0JA,SAAAc,EAAAgB,EAAA9B,GACA,IAAA4C,EAAA5C,EAAA8B,YAEApqP,EAAAoqP,EAAA,SAAAhwF,EAAA9uL,GACA,IAAAkT,EAAA47K,EAAAviK,iBAAArZ,OACA2sQ,EAAA/B,EAAA99Q,GAEA6/Q,IACA/wF,EAAAjjC,YAAA34I,EAAAhH,OAAA,QACAgH,EAAA1V,MAAAqiR,EAAAriR,MAEA0V,EAAAurQ,mBAAAoB,EAAAzC,kBAAA7kR,UAMAu2L,EAAAjjC,YAAA34I,EAAAhH,OAAA,QAIA,SAAAgH,EAAAhH,QAAA0zQ,EAAApoR,MACAynK,QAAA6vB,EAAApjK,KAAA4C,IACA8xC,UAAA0uH,EAAApjK,KAAA8B,MAAA2gC,eACA3wD,MAAA0V,EAAA1V,UAhLAsiR,CAAAhC,EAAAgB,EAAA9B,GAqLA,SAAAe,EAAAz9O,EAAAzG,EAAAx/B,GAEA,IAAAskR,EAAAr+O,IAAAy9O,EAAAj7P,KAAA5rB,OAAA,CAWA,IAAA6oR,IAAAhC,EAAAj7P,KAAA,GAAAw7P,WAAA,QAA+DG,uBAAA,OAC/DpkR,GACAZ,KAAA,UACAgzD,eAAA,EACAnyD,EAAAgmC,EAAA,GACA9lC,EAAA8lC,EAAA,GACA5R,cAAAmL,EAAAnL,cACArqB,SAAAw1B,EAAAx1B,SACA4lD,gBAAA81N,EAAA91N,gBACA51B,UAAA0rP,EAAA1rP,UACAjM,YAAA23P,EAAA33P,YACA21P,iBAAAj7P,YArBAzoB,GACAZ,KAAA,YAxLAumR,CAAAjC,EAAAz9O,EAAAzG,EAAAx/B,GAgNA,SAAAykR,EAAAzkR,EAAAR,GAIA,IAAAlD,EAAAkD,EAAAe,QAEAqlR,EAAAr1F,EAAAj0L,GAAA,8BACAupR,EAAAt1F,EAAAj0L,GAAA,6BAGA+9B,EAAAoqP,EAAA,SAAAhwF,EAAA9uL,GACA,IAAAkT,EAAA47K,EAAAviK,iBAAArZ,OACA,SAAAA,EAAAhH,QAAAwoB,EAAAxhB,EAAAurQ,kBAAA,SAAAnxN,GACA,IAAAttD,EAAAstD,EAAAllC,YAAA,MAAAklC,EAAAj5B,UACA6rP,EAAAlgR,GAAAstD,MAIA,IAAA6yN,KACAC,KACAtwP,EAAA4E,KAAAurP,EAAA,SAAA3yN,EAAAttD,IACAkgR,EAAAlgR,IAAAogR,EAAA5oR,KAAA81D,KAEAx9B,EAAA4E,KAAAwrP,EAAA,SAAA5yN,EAAAttD,IACAigR,EAAAjgR,IAAAmgR,EAAA3oR,KAAA81D,KAEA8yN,EAAAlpR,QAAA2C,EAAAQ,gBACAZ,KAAA,WACAgzD,eAAA,EACAS,MAAAkzN,IAEAD,EAAAjpR,QAAA2C,EAAAQ,gBACAZ,KAAA,YACAgzD,eAAA,EACAS,MAAAizN,IAjPAE,CAAAvB,EAAAzkR,EAAAR,GACAmjR,0BC9IA,IAAAviE,EAAgBjlN,EAAQ,QACxB0I,EAAAF,KAAAE,IACAD,EAAAD,KAAAC,IACA9E,EAAAC,QAAA,SAAAyJ,EAAA3L,GAEA,OADA2L,EAAA43M,EAAA53M,IACA,EAAA3E,EAAA2E,EAAA3L,EAAA,GAAA+G,EAAA4E,EAAA3L,0BCLA,IAAA44B,EAAat6B,EAAQ,QAErB4sD,EAAkB5sD,EAAQ,QAE1BkpL,EAAWlpL,EAAQ,QAEnBolL,EAAYplL,EAAQ,QAEpB8qR,EAAc9qR,EAAQ,QAEtBqlL,EAAAylG,EAAAzlG,WACA6yC,EAAA4yD,EAAA5yD,UAIA8d,EAFkBh2O,EAAQ,QAE1Bg2O,iBAoBAtyO,EAAAkpD,EAAAziD,QACAlG,KAAA,iBACAqxL,WAAA,MACApgK,cAAA,gBAKA61P,UAAA,KACA51P,eAEAi1I,YAAA,EACA4gH,oBAAA9wO,IAGA5zC,KAAA,SACAmM,IAAA,SACAlM,MAAA,KACAgP,OAAA,KACAkE,MAAA,MACAC,OAAA,MACA3D,MAAA,EAGAk1Q,WAAA,SAEAC,YAAA,MAAA1iR,KAAAyjC,KAAA,IAEAk/O,UAAA,KAGAC,cAAA,IAGAC,gBAAA,MAGAjhQ,MAAA,EAEAkhQ,UAAA,aAKArpR,WAAA,EACAk0B,wBAAA,IACAk0I,gBAAA,eACA2lB,YACAlqL,MAAA,EACA4T,OAAA,GACApT,KAAA,SACAmM,IAAA,SAGA84Q,eAAA,GAEAt4Q,WACArM,MAAA,kBAEA4sB,YAAA,wBACAuC,YAAA,EACAgpJ,YAAA,sBACAl5I,WAAA,EACAC,cAAA,EACAC,cAAA,EACA5qB,WACAvU,MAAA,SAGAmgB,UACA5L,eAGAjI,OACApN,MAAA,EAEAgxC,SAAA,EACA9gB,QAAA,EACAnnB,SAAA,SAGAjI,MAAA,OACA4kR,UAAA,GAIAC,YAEA3lR,MAAA,EACA+I,UAAA,SACA6K,OAAA,GAEA9S,MAAA,OACA4kR,UAAA,EAEAryP,cAAA,UAEAlmB,WACArM,MAAA,KAEA84L,WAAA,KAEAF,gBAAA,KAEAzpK,YAAA,EACA21P,SAAA,EACAl4P,YAAA,OACAm4P,sBAAA,MAKA5kQ,UACA0kQ,YACA3lR,MAAA,EACA+I,UAAA,SACAjI,MAAA,OACA4kR,UAAA,EACAryP,cAAA,WAGAyyP,gBAAA,EAEAC,UAAA,KACAC,UAAA,KACAllR,SAWA84L,WAAA,KAEAF,gBAAA,KAEAusF,eAAA,QAEAC,WAAA,GAGAC,mBAAA,KAMAv2K,WAeA2zD,eAAA,SAAA3rJ,EAAAtZ,GAEA,IAAAk3C,GACAj4C,KAAAqa,EAAAra,KACA2lL,SAAAtrK,EAAAnM,OAuHA,SAAA26Q,EAAAxgG,GAIA,IAAA3mK,EAAA,EACAuV,EAAA4E,KAAAwsJ,EAAA1C,SAAA,SAAAj8I,GACAm/O,EAAAn/O,GACA,IAAAo/O,EAAAp/O,EAAA/kC,MACAsyB,EAAA/tB,QAAA4/Q,SAAA,IACApnQ,GAAAonQ,IAEA,IAAAC,EAAA1gG,EAAA1jL,MAEAsyB,EAAA/tB,QAAA6/Q,KACAA,IAAA,KAGA,MAAAA,GAAAlhR,MAAAkhR,MACAA,EAAArnQ,GAIAqnQ,EAAA,IACAA,EAAA,GAGA9xP,EAAA/tB,QAAAm/K,EAAA1jL,OAAA0jL,EAAA1jL,MAAA,GAAAokR,EAAA1gG,EAAA1jL,MAAAokR,EA/IAF,CAAA5wO,GACA,IAAAo6D,EAAAh4F,EAAAg4F,WACAA,EAAAh4F,EAAAg4F,OAoJA,SAAAA,EAAAtxG,GACA,IAOAioR,EAPAC,EAAAloR,EAAAK,IAAA,SAEA,IAAA6nR,EACA,OAcA,GAXA52K,QAEAp7E,EAAA4E,KAAAw2E,EAAA,SAAA6zE,GACA,IAAAvxJ,EAAA,IAAAotJ,EAAAmE,GACAgjG,EAAAv0P,EAAAvzB,IAAA,UAEAuzB,EAAAvzB,IAAA,oBAAA8nR,GAAA,SAAAA,KACAF,GAAA,MAIAA,EAAA,CACA,IAAAG,EAAA92K,EAAA,KAAAA,EAAA,OACA82K,EAAA5lR,MAAA0lR,EAAAvpR,QAGA,OAAA2yG,EA3KA+2K,CAAA/2K,EAAAtxG,GACA,IAAAsoR,KAKA,OAJAA,EAAAh3K,SAIAwzE,EAAAgC,WAAA5vI,EAAA76C,KAAAisR,GAAAn7Q,MAEAwkL,cAAA,WACAt1L,KAAAksR,iBAQAzlG,cAAA,SAAAroJ,GACA,IAAAttB,EAAA9Q,KAAAksB,UACA3kB,EAAAvH,KAAA85M,YAAA17K,GACA+tP,EAAAtyP,EAAA/tB,QAAAvE,GAAAkwN,EAAAlwN,EAAA,IAAAkwN,EAAAlwN,GACA3E,EAAAkO,EAAAqzD,QAAA/lC,GACA,OAAAwmJ,EAAAhiL,EAAA,KAAAupR,IAUA5xN,cAAA,SAAAn8B,GACA,IAAAzM,EAAAw6B,EAAAjsD,UAAAq6D,cAAAhuD,MAAAvM,KAAA8E,WACAo0D,EAAAl5D,KAAAksB,UAAA0+J,KAAAR,mBAAAhsJ,GAEA,OADAzM,EAAA6jN,aAAAD,EAAAr8K,EAAAl5D,MACA2xB,GAYAy6P,cAAA,SAAA/0P,GAKAr3B,KAAAq3B,WAAAr3B,KAAAq3B,eACAwC,EAAAnwB,OAAA1J,KAAAq3B,eAOAg1P,aAAA,SAAA3qR,GAaA,IAAA4qR,EAAAtsR,KAAAusR,YAEAD,IACAA,EAAAtsR,KAAAusR,YAAA1yP,EAAAk7B,gBAMA/0D,KAAAwsR,iBAAA,GAGA,IAAA5/Q,EAAA0/Q,EAAAtoR,IAAAtC,GAMA,OAJA,MAAAkL,GACA0/Q,EAAAtnO,IAAAtjD,EAAAkL,EAAA5M,KAAAwsR,oBAGA5/Q,GAEA6/Q,YAAA,WACA,OAAAzsR,KAAAsqR,WAMA4B,cAAA,SAAA72C,GACAA,EAAAr1O,KAAAsqR,UAAAj1C,IAAAr1O,KAAAsqR,UACA,IAAAzvO,EAAA76C,KAAAosL,aAAAxB,KAAA/vI,KAEAw6L,QAAAx6L,KAAA2I,SAAA6xL,MACAr1O,KAAAsqR,UAAAzvO,MAoEA33C,EAAAC,QAAAF,sBC7WA,SAAA0sE,EAAAp6D,GAKA,OAJAA,aAAA1J,QACA0J,SAGAA,EA8CArS,EAAAC,QA3CA,SAAAQ,GACAA,EAAAikM,iBAAA,iBAAApsK,GACA,IAAA0zI,EAAA1zI,EAAA8qJ,WACAd,EAAAhqJ,EAAA+qJ,cACAz2G,EAAAH,EAAAn0C,EAAAx3B,IAAA,eACAirB,EAAA0gD,EAAAn0C,EAAAx3B,IAAA,mBACA0oR,EAAA,kBAAA7rR,MAAA,KACA+uE,EAAA,oBAAA/uE,MAAA,KACA2kL,EAAAxjH,UAAA,aAAA8N,KAAA,IACA01G,EAAAxjH,UAAA,WAAA8N,KAAA,IACA01G,EAAAxjH,UAAA,iBAAA/yC,KAAA,IACAu2J,EAAAxjH,UAAA,eAAA/yC,KAAA,IACAu2J,EAAAxjH,UAAA,QAAAxmC,EAAAx3B,IAAA0oR,IACAlnG,EAAAxjH,UAAA,UAAAxmC,EAAAx3B,IAAA4rE,IACA41G,EAAA/mJ,KAAA,SAAA6B,GACA,IAAA4kC,EAAAsgH,EAAArgH,aAAA7kC,GACAqmJ,EAAAzX,EAAA0X,eAAAtmJ,GACAwvC,EAAAH,EAAAzK,EAAAG,WAAA,cACAp2C,EAAA0gD,EAAAzK,EAAAG,WAAA,kBAEAl/D,EAAA++D,EAAAlhE,IAAA0oR,GACA75Q,EAAAqyD,EAAAlhE,IAAA4rE,GAEA,OAAAzpE,GACA,aACAA,EAAAwgL,EAAAG,MAAAnlJ,UAAA,SACA,MAEA,aACAx7B,EAAAwgL,EAAAK,MAAArlJ,UAAA,SAIAmuC,EAAA,IAAA62G,EAAA3kH,UAAA,aAAA8N,EAAA,IACAA,EAAA,IAAA62G,EAAA3kH,UAAA,WAAA8N,EAAA,IACA7gD,EAAA,IAAA03J,EAAA3kH,UAAA,iBAAA/yC,EAAA,IACAA,EAAA,IAAA03J,EAAA3kH,UAAA,eAAA/yC,EAAA,IACA03J,EAAA3kH,UAAA,QAAA77D,GACAwgL,EAAA3kH,UAAA,UAAAnvD,8BChEA,IAEA85Q,EAFcptR,EAAQ,QAEtBotR,UAEAntR,EAAA,aAEA,IAAAmtR,EACAntR,EAAA,WACA,QAAAipB,KAAA3jB,UACA,UAAAu6D,MAAAv6D,UAAA2jB,KAGCkkQ,EAAA,IACDntR,EAAA,WACA,QAAAipB,KAAA3jB,UACA2Q,QAAAjW,IAAAsF,UAAA2jB,MAKA,IAAAxlB,EAAAzD,EACA0D,EAAAC,QAAAF,qCCnBAE,EAAAiuE,YAAA,EAEA,IAAApmE,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5IhI,EAAAypR,QAKA,SAAA1zN,GACA,cAAAA,GAAA,qBAAAA,EAAA,YAAAluD,EAAAkuD,MAAA,EAAAz5D,EAAA4N,QAAA6rD,EAAA,qBALA/1D,EAAA4jN,uBAQA,SAAAx+B,GACA,OAAAA,KAAAnhK,OAAA,SAAA84C,GACA,OAAAA,KAAAirJ,MACG,IATH,IAAA1rN,EAAYF,EAAQ,8BCTpB,IAAAstR,EAAgBttR,EAAQ,QAExBmzL,EAAWnzL,EAAQ,QAoBnButR,KACA1nE,KACA2nE,KACA74F,EAAA24F,EAAA34F,YACA84F,EAAAt6F,EAAAu6F,WACAC,EAAAnlR,KAAAY,IAEA,SAAAwkR,EAAAC,EAAAtpQ,EAAAnB,GASA,IARA,IAIA8lE,EAJA76C,EAAAw/O,EAAA,GACAxyP,EAAAwyP,EAAA,GACAvyP,EAAAuyP,EAAA,GACA3+P,EAAAgrB,IAEA4zO,EAAA1qQ,IACA+2B,EAAA,GAEAq7B,EAAA,GAAoBA,GAAA,GAAWA,GAAA,IAC/B+3M,EAAA,GAAA54F,EAAAtmJ,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAAk6C,GACA+3M,EAAA,GAAA54F,EAAAtmJ,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAAk6C,IACAzwC,EAAA4oP,EAAAF,EAAAF,EAAAhpQ,GAAAupQ,IAEA5+P,IACAA,EAAA6V,EACAmkD,EAAA1T,GAMA,QAAAh0E,EAAA,EAAiBA,EAAA,GAAQA,IAAA,CAEzB,IAAA0jC,EAAAgkD,EAAA/uC,EAGA0rK,EAAA,GAAAlxB,EAAAtmJ,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAA4tD,GACA28H,EAAA,GAAAlxB,EAAAtmJ,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAA4tD,GACAskM,EAAA,GAAA74F,EAAAtmJ,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAA4J,GACAsoP,EAAA,GAAA74F,EAAAtmJ,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAA4J,GACA,IAAAH,EAAA0oP,EAAA5nE,EAAAthM,GAAAupQ,EAEA,GAAAH,EAAA5oP,GAAA,IACA,MAIA,IAAAgpP,EAAAN,EAAAD,EAAAjpQ,GAAAupQ,EACA3zO,GAAA,EAEApV,EAAA,EACAgpP,GAAA,EACA7kM,GAAA/uC,EAEA+uC,GAAA/uC,EAGA4zO,GAAA,EACA7kM,GAAA/uC,EAEA+uC,GAAA/uC,EAKA,OAAA+uC,EA6FAvlF,EAAAC,QAzFA,SAAA+rK,EAAA39J,GACA,IAAAg8Q,KACAC,EAAAX,EAAAW,mBACA37L,aACA47L,UACA1gR,KAGA,SAAAsxB,EAAA66B,GACA,IAAAjqC,EAAAiqC,EAAAv3B,UAAA,cAMA,OAJA1S,aAAApjB,QACAojB,KAAA,GAAAA,EAAA,OAGAA,EATA1d,GAAA,EAYA29J,EAAAogE,SAAA,SAAA3oD,EAAArmJ,GACA,IAAAwlC,EAAA6gH,EAAAiD,YACAmR,EAAApU,EAAAhlJ,UAAA,cACAs5J,EAAAtU,EAAAhlJ,UAAA,YAEAmkC,EAAA4nN,aACA5nN,EAAA4nN,YAAAh7F,EAAA1oJ,MAAA87B,EAAA,IAAA4sH,EAAA1oJ,MAAA87B,EAAA,KAEAA,EAAA,IACAA,EAAA4nN,WAAAnsR,KAAAmxL,EAAA1oJ,MAAA87B,EAAA,MAIA,IAAA6nN,EAAA7nN,EAAA4nN,WAEA,SAAA5nN,EAAA,IAKA,GAJA4sH,EAAAjpJ,KAAAooD,EAAA,GAAA87L,EAAA,IACAj7F,EAAAjpJ,KAAAooD,EAAA,GAAA87L,EAAA,IACAj7F,EAAAjpJ,KAAAooD,EAAA,GAAA87L,EAAA,IAEA5yF,GAAA,QAAAA,EAAA,CACA,IAAA9rK,EAAAoP,EAAAsoJ,EAAAG,OACAr+F,EAAA0kM,EAAAt7L,EAAA87L,EAAA,GAAA1+P,EAAA1d,GAEAi8Q,EAAA37L,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAApJ,EAAA8kM,GACA17L,EAAA,MAAA07L,EAAA,GACA17L,EAAA,MAAA07L,EAAA,GACAC,EAAA37L,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAApJ,EAAA8kM,GACA17L,EAAA,MAAA07L,EAAA,GACA17L,EAAA,MAAA07L,EAAA,GAGAtyF,GAAA,QAAAA,IACAhsK,EAAAoP,EAAAsoJ,EAAAK,OACAv+F,EAAA0kM,EAAAt7L,EAAA87L,EAAA,GAAA1+P,EAAA1d,GAEAi8Q,EAAA37L,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAApJ,EAAA8kM,GACA17L,EAAA,MAAA07L,EAAA,GACA17L,EAAA,MAAA07L,EAAA,GACAC,EAAA37L,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAApJ,EAAA8kM,GACA17L,EAAA,MAAA07L,EAAA,GACA17L,EAAA,MAAA07L,EAAA,IAIA76F,EAAAjpJ,KAAAq8B,EAAA,GAAA+rB,EAAA,IACA6gG,EAAAjpJ,KAAAq8B,EAAA,GAAA+rB,EAAA,IACA6gG,EAAAjpJ,KAAAq8B,EAAA,GAAA+rB,EAAA,SAGA6gG,EAAAjpJ,KAAAgkP,EAAA,GAAAE,EAAA,IACAj7F,EAAAjpJ,KAAAgkP,EAAA,GAAAE,EAAA,IACAj7F,EAAA/oL,IAAAoD,EAAA0gR,EAAA,GAAAA,EAAA,IACA/6F,EAAA/iH,UAAA5iE,KAEAguL,GAAA,QAAAA,IACA9rK,EAAAoP,EAAAsoJ,EAAAG,OACA4L,EAAAijC,YAAA83D,EAAA,GAAAA,EAAA,GAAA1gR,EAAAkiB,EAAA1d,IAGA0pL,GAAA,QAAAA,IACAhsK,EAAAoP,EAAAsoJ,EAAAK,OACA0L,EAAAijC,YAAA83D,EAAA,GAAAA,EAAA,GAAA1gR,GAAAkiB,EAAA1d,IAGAmhL,EAAAjpJ,KAAAq8B,EAAA,GAAA2nN,EAAA,IACA/6F,EAAAjpJ,KAAAq8B,EAAA,GAAA2nN,EAAA,6BC7KA,IAAArqR,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBolL,EAAYplL,EAAQ,QAIpBquR,EAFaruR,EAAQ,QAErBquR,gBAoBAC,EAAAzqR,EAAAoxB,sBACAhxB,KAAA,eACAixB,cAAA,UACAogK,YACArxL,KAAA,MAQA62N,YAAA,GAEA77M,KAAA,SAAAvB,EAAA6oK,EAAAniL,GACA3D,KAAAqlL,qBAAApoK,EAAAtZ,GACAsZ,EAAAyN,SAAAzN,EAAAyN,cAEA06J,YAAA,SAAAnoK,GACA4wQ,EAAA1mG,UAAAnnL,KAAA,cAAAid,IAEAq4K,cAAA,WACAt1L,KAAA8tR,YAAA9tR,KAAA2D,SAEA,IAAA43L,EAAAv7L,KAAAic,MAEA,GAAAs/K,EAAA,eAAAv7L,KAAAgE,IAAA,iBAGA,IAFA,IAAA+pR,GAAA,EAEAhtR,EAAA,EAAqBA,EAAAw6L,EAAAt6L,OAAuBF,IAAA,CAC5C,IAAA6B,EAAA24L,EAAAx6L,GAAAiD,IAAA,QAEA,GAAAhE,KAAAukE,WAAA3hE,GAAA,CAEA5C,KAAA8iL,OAAAlgL,GACAmrR,GAAA,EACA,QAKAA,GAAA/tR,KAAA8iL,OAAAyY,EAAA,GAAAv3L,IAAA,WAGA8pR,YAAA,SAAAnqR,GACA,IAAAqqR,KACAC,KACAtqR,EAAAkvO,cAAA,SAAAr3M,GACA,IAEA0yP,EAFA97Q,EAAAopB,EAAA54B,KAIA,GAHAqrR,EAAA1sR,KAAA6Q,GAGAopB,EAAAupJ,mBAAA,CACA,IAAAj0K,EAAA0qB,EAAAupJ,qBACAopG,EAAAr9Q,EAAAyuB,SAAAzuB,EAAAqzD,SAEAxgE,EAAA+tO,iBAAAl2M,KACAyyP,IAAAl5Q,OAAAo5Q,IAGAA,EAAAltR,OACA+sR,IAAAj5Q,OAAAo5Q,GAEAD,GAAA,OAGAA,GAAA,EAGAA,GAAAN,EAAApyP,IACAwyP,EAAAzsR,KAAAi6B,EAAA54B,QAQA5C,KAAAouR,gBAAAH,EAGA,IAAArkL,EAAA5pG,KAAAgE,IAAA,SAAAgqR,EACAzyF,EAAA1hK,EAAAlpB,IAAAi5F,EAAA,SAAAxvD,GAQA,MANA,iBAAAA,GAAA,iBAAAA,IACAA,GACAx3C,KAAAw3C,IAIA,IAAAuqI,EAAAvqI,EAAAp6C,UAAA2D,UACK3D,MAMLA,KAAAic,MAAAs/K,GAMArvK,QAAA,WACA,OAAAlsB,KAAAic,OAMA6mK,OAAA,SAAAlgL,GACA,IAAA8nB,EAAA1qB,KAAAid,OAAAyN,SAGA,cAFA1qB,KAAAgE,IAAA,gBAEA,CACA,IAAA8M,EAAA9Q,KAAAic,MACA4d,EAAA4E,KAAA3tB,EAAA,SAAAspC,GACA1vB,EAAA0vB,EAAAp2C,IAAA,cAIA0mB,EAAA9nB,IAAA,GAMAq0M,SAAA,SAAAr0M,GACA,WAAA5C,KAAAgE,IAAA,kBACAhE,KAAAid,OAAAyN,SAAA9nB,IAAA,IAOAs0M,eAAA,SAAAt0M,GACA,IAAA8nB,EAAA1qB,KAAAid,OAAAyN,SAEAA,EAAA7nB,eAAAD,KACA8nB,EAAA9nB,IAAA,GAGA5C,KAAA0qB,EAAA9nB,GAAA,qBAAAA,IAMA2hE,WAAA,SAAA3hE,GACA,IAAA8nB,EAAA1qB,KAAAid,OAAAyN,SACA,QAAAA,EAAA7nB,eAAAD,KAAA8nB,EAAA9nB,KAAAi3B,EAAA/5B,QAAAE,KAAAouR,gBAAAxrR,IAAA,GAEA8xB,eAEAC,OAAA,EAEAC,EAAA,EACAvvB,MAAA,EAGAyX,OAAA,aACAjX,KAAA,SAEAmM,IAAA,EAKA2mB,MAAA,OACAle,gBAAA,gBAEAsY,YAAA,OACAsC,aAAA,EAEAC,YAAA,EAGAC,QAAA,EAGA84P,QAAA,GAEAhoF,UAAA,GAEAD,WAAA,GAEAu7E,cAAA,OACAjnQ,WAEAvU,MAAA,QAIA6c,cAAA,EAMAjN,SACA1Q,MAAA,MAIApC,EAAA4qR,EACA3qR,EAAAC,QAAAF,qCCxOA,IAAA40N,EAAct4N,EAAQ,QACtB+uR,EAA2B/uR,EAAQ,QACnCi5D,EAAcj5D,EAAQ,QAEtBs4N,IAAA33D,EAAA,WAA+BquH,IAAA,SAAAC,GAC/B,IAAAC,EAAAH,EAAAtrO,EAAAhjD,MACA+Q,EAAAynD,EAAAg2N,GAEA,OADAz9Q,EAAA5M,EAAAsqR,EAAA9/Q,OAAA8/Q,EAAA//Q,SAAAqC,EAAAhE,GACA0hR,EAAA7uN,iCCVArgE,EAAQ,QAER,IAsBA0D,EAtBqB1D,EAAQ,QAsB7BmK,QACAlG,KAAA,OACAixB,cAAA,iBACAogK,WAAA,MAKAxmK,iBAAA,KACAqG,eACArvB,MAAA,EACAsvB,OAAA,EACAC,EAAA,EACA/uB,KAAA,MACAmM,IAAA,GACAlM,MAAA,MACAgP,OAAA,GAEAlP,cAAA,EAGA6U,gBAAA,gBACA6a,YAAA,EACAvC,YAAA,UAIA7vB,EAAAC,QAAAF,wBCnDA,IAAAuiK,EAAWjmK,EAAQ,QAEnB4G,EAAY5G,EAAQ,QAIpBM,EAFYN,EAAQ,QAEpBM,YAKA6uR,EAAA7iR,MAAA3L,UAAAoC,MAEA,SAAAqsR,EAAApuR,EAAAwJ,GACA,OAAAxJ,EAAAwJ,GAGA,SAAA6kR,EAAAruR,EAAAwJ,EAAAxC,GACAhH,EAAAwJ,GAAAxC,EAUA,SAAAsnR,EAAAjhP,EAAAhT,EAAAxW,GACA,OAAAwW,EAAAgT,GAAAxpB,EAAAwpB,EAUA,SAAAkhP,EAAAlhP,EAAAhT,EAAAxW,GACA,OAAAA,EAAA,GAAAwW,EAAAgT,EAWA,SAAAmhP,EAAAnhP,EAAAhT,EAAAxW,EAAA+lB,EAAA6kP,GACA,IAAAntR,EAAA+rC,EAAA3sC,OAEA,MAAA+tR,EACA,QAAAjuR,EAAA,EAAmBA,EAAAc,EAASd,IAC5BopC,EAAAppC,GAAA8tR,EAAAjhP,EAAA7sC,GAAA65B,EAAA75B,GAAAqjB,OAGA,KAAA6qQ,EAAAptR,GAAA+rC,EAAA,GAAA3sC,OAEA,IAAAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5B,QAAAmyB,EAAA,EAAqBA,EAAA+7P,EAAU/7P,IAC/BiX,EAAAppC,GAAAmyB,GAAA27P,EAAAjhP,EAAA7sC,GAAAmyB,GAAA0H,EAAA75B,GAAAmyB,GAAA9O,IAQA,SAAA8qQ,EAAAC,EAAAC,EAAAJ,GACA,IAAAK,EAAAF,EAAAluR,OACAquR,EAAAF,EAAAnuR,OAEA,GAAAouR,IAAAC,EAIA,GAFAD,EAAAC,EAIAH,EAAAluR,OAAAquR,OAGA,QAAAvuR,EAAAsuR,EAA2BtuR,EAAAuuR,EAAavuR,IACxCouR,EAAA5tR,KAAA,IAAAytR,EAAAI,EAAAruR,GAAA2tR,EAAAhjR,KAAA0jR,EAAAruR,KAMA,IAAAkuR,EAAAE,EAAA,IAAAA,EAAA,GAAAluR,OAEA,IAAAF,EAAA,EAAiBA,EAAAouR,EAAAluR,OAAiBF,IAClC,OAAAiuR,EACAvkR,MAAA0kR,EAAApuR,MACAouR,EAAApuR,GAAAquR,EAAAruR,SAGA,QAAAmyB,EAAA,EAAqBA,EAAA+7P,EAAU/7P,IAC/BzoB,MAAA0kR,EAAApuR,GAAAmyB,MACAi8P,EAAApuR,GAAAmyB,GAAAk8P,EAAAruR,GAAAmyB,IAcA,SAAAq8P,EAAAJ,EAAAC,EAAAJ,GACA,GAAAG,IAAAC,EACA,SAGA,IAAAvtR,EAAAstR,EAAAluR,OAEA,GAAAY,IAAAutR,EAAAnuR,OACA,SAGA,OAAA+tR,GACA,QAAAjuR,EAAA,EAAmBA,EAAAc,EAASd,IAC5B,GAAAouR,EAAApuR,KAAAquR,EAAAruR,GACA,aAIA,KAAAkuR,EAAAE,EAAA,GAAAluR,OAEA,IAAAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5B,QAAAmyB,EAAA,EAAqBA,EAAA+7P,EAAU/7P,IAC/B,GAAAi8P,EAAApuR,GAAAmyB,KAAAk8P,EAAAruR,GAAAmyB,GACA,SAMA,SAgBA,SAAAs8P,EAAA5hP,EAAAhT,EAAAC,EAAAuY,EAAAq1C,EAAA4B,EAAAC,EAAAngD,EAAA6kP,GACA,IAAAntR,EAAA+rC,EAAA3sC,OAEA,MAAA+tR,EACA,QAAAjuR,EAAA,EAAmBA,EAAAc,EAASd,IAC5BopC,EAAAppC,GAAA0uR,EAAA7hP,EAAA7sC,GAAA65B,EAAA75B,GAAA85B,EAAA95B,GAAAqyC,EAAAryC,GAAA0nF,EAAA4B,EAAAC,OAGA,KAAA2kM,EAAArhP,EAAA,GAAA3sC,OAEA,IAAAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5B,QAAAmyB,EAAA,EAAqBA,EAAA+7P,EAAU/7P,IAC/BiX,EAAAppC,GAAAmyB,GAAAu8P,EAAA7hP,EAAA7sC,GAAAmyB,GAAA0H,EAAA75B,GAAAmyB,GAAA2H,EAAA95B,GAAAmyB,GAAAkgB,EAAAryC,GAAAmyB,GAAAu1D,EAAA4B,EAAAC,IAkBA,SAAAmlM,EAAA7hP,EAAAhT,EAAAC,EAAAuY,EAAAq1C,EAAA4B,EAAAC,GACA,IAAAolM,EAAA,IAAA70P,EAAA+S,GACAk/O,EAAA,IAAA15O,EAAAxY,GACA,UAAAA,EAAAC,GAAA60P,EAAA5C,GAAAxiM,IAAA,GAAA1vD,EAAAC,GAAA,EAAA60P,EAAA5C,GAAAziM,EAAAqlM,EAAAjnM,EAAA7tD,EAGA,SAAA+0P,EAAApoR,GACA,GAAA1H,EAAA0H,GAAA,CACA,IAAA1F,EAAA0F,EAAAtG,OAEA,GAAApB,EAAA0H,EAAA,KAGA,IAFA,IAAAovE,KAEA51E,EAAA,EAAqBA,EAAAc,EAASd,IAC9B41E,EAAAp1E,KAAAmtR,EAAAhjR,KAAAnE,EAAAxG,KAGA,OAAA41E,EAGA,OAAA+3M,EAAAhjR,KAAAnE,GAGA,OAAAA,EAGA,SAAAqoR,EAAAC,GAIA,OAHAA,EAAA,GAAA9nR,KAAAkwC,MAAA43O,EAAA,IACAA,EAAA,GAAA9nR,KAAAkwC,MAAA43O,EAAA,IACAA,EAAA,GAAA9nR,KAAAkwC,MAAA43O,EAAA,IACA,QAAAA,EAAAzpR,KAAA,SAQA,SAAA0pR,EAAA5uR,EAAAgB,EAAA6tR,EAAAC,EAAAlqP,EAAA1jC,GACA,IAAA8uE,EAAAhwE,EAAA+uR,QACA5wF,EAAAn+L,EAAAgvR,QACAC,EAAA,WAAAjuR,EACAkuR,EAAAJ,EAAA/uR,OAEA,GAAAmvR,EAAA,CAKA,IAMAC,EANAC,EAAAN,EAAA,GAAAzoR,MACAgpR,EAAA1wR,EAAAywR,GACAE,GAAA,EACAC,GAAA,EAEAzB,EAAAuB,EArBA,SAAAP,GACA,IAAAU,EAAAV,IAAA/uR,OAAA,GAAAsG,MACA,OAAA1H,EAAA6wR,KAAA,QAmBAC,CAAAX,GAAA,EAGAA,EAAA16Q,KAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAvT,KAAAwT,EAAAxT,OAEAquR,EAAAL,EAAAI,EAAA,GAAApuR,KAQA,IANA,IAAA4uR,KAEAC,KACAC,EAAAd,EAAA,GAAAzoR,MACAwpR,GAAA,EAEAhwR,EAAA,EAAiBA,EAAAqvR,EAAcrvR,IAAA,CAC/B6vR,EAAArvR,KAAAyuR,EAAAjvR,GAAAiB,KAAAquR,GAEA,IAAA9oR,EAAAyoR,EAAAjvR,GAAAwG,MAQA,GANAgpR,GAAAhB,EAAAhoR,EAAAupR,EAAA9B,KAAAuB,GAAAhpR,IAAAupR,IACAC,GAAA,GAGAD,EAAAvpR,EAEA,iBAAAA,EAAA,CACA,IAAAypR,EAAA7qR,EAAAgH,MAAA5F,GAEAypR,GACAzpR,EAAAypR,EACAR,GAAA,GAEAC,GAAA,EAIAI,EAAAtvR,KAAAgG,GAGA,GAAAnF,IAAA2uR,EAAA,CAIA,IAAAL,EAAAG,EAAAT,EAAA,GAEA,IAAArvR,EAAA,EAAiBA,EAAAqvR,EAAA,EAAkBrvR,IACnCwvR,EACArB,EAAA2B,EAAA9vR,GAAA2vR,EAAA1B,IAEAvkR,MAAAomR,EAAA9vR,KAAA0J,MAAAimR,IAAAD,GAAAD,IACAK,EAAA9vR,GAAA2vR,GAKAH,GAAArB,EAAAh+M,EAAAhwE,EAAAukK,QAAA3/H,GAAA4qP,EAAA1B,GAGA,IAGAjrK,EACAn2E,EACAhT,EACAC,EACAuY,EAPA69O,EAAA,EACAC,EAAA,EAQA,GAAAV,EACA,IAAAX,GAAA,SAGA,IAqFAr3G,EAAA,IAAAhT,GACAjlK,OAAAW,EAAAukK,QACAE,KAAA0qH,EACA/vR,KAAAY,EAAAwQ,MACAzP,MAAAf,EAAA0kK,OACAG,QA1FA,SAAAxlK,EAAA6jB,GAIA,IAAAm/D,EAEA,GAAAn/D,EAAA,EACAm/D,EAAA,OACK,GAAAn/D,EAAA8sQ,EAAA,CAKL,IAAA3tM,EAFAx7E,KAAAC,IAAAipR,EAAA,EAAAb,EAAA,GAEyB7sM,GAAA,KACzBqtM,EAAArtM,IAAAn/D,GADqCm/D,KAOrCA,EAAAx7E,KAAAC,IAAAu7E,EAAA6sM,EAAA,OACK,CACL,IAAA7sM,EAAA0tM,EAA6B1tM,EAAA6sM,KAC7BQ,EAAArtM,GAAAn/D,GAD+Cm/D,KAM/CA,EAAAx7E,KAAAC,IAAAu7E,EAAA,EAAA6sM,EAAA,GAGAa,EAAA1tM,EACA2tM,EAAA9sQ,EACA,IAAAg8F,EAAAwwK,EAAArtM,EAAA,GAAAqtM,EAAArtM,GAEA,OAAA68B,EAMA,GAHA2D,GAAA3/F,EAAAwsQ,EAAArtM,IAAA68B,EAGA+vK,EAMA,GALAv1P,EAAAi2P,EAAAttM,GACA31C,EAAAijP,EAAA,IAAAttM,MAAA,GACA1oD,EAAAg2P,EAAAttM,EAAA6sM,EAAA,EAAAA,EAAA,EAAA7sM,EAAA,GACAnwC,EAAAy9O,EAAAttM,EAAA6sM,EAAA,EAAAA,EAAA,EAAA7sM,EAAA,GAEAgtM,EACAf,EAAA5hP,EAAAhT,EAAAC,EAAAuY,EAAA2wE,YAAA7yC,EAAA3wE,EAAAulC,GAAAkpP,OACO,CAGP,GAAAwB,EACAjpR,EAAAioR,EAAA5hP,EAAAhT,EAAAC,EAAAuY,EAAA2wE,YAAA8rK,EAAA,GACAtoR,EAAAqoR,EAAAC,OACS,IAAAY,EAET,OAAA3B,EAAAl0P,EAAAC,EAAAkpF,GAEAx8G,EAAAkoR,EAAA7hP,EAAAhT,EAAAC,EAAAuY,EAAA2wE,aAGAs7E,EAAA9+L,EAAAulC,EAAAv+B,QAGA,GAAAgpR,EACAxB,EAAA8B,EAAAttM,GAAAstM,EAAAttM,EAAA,GAAAwgC,EAAA7yC,EAAA3wE,EAAAulC,GAAAkpP,OACO,CACP,IAAAznR,EAEA,GAAAipR,EACAzB,EAAA8B,EAAAttM,GAAAstM,EAAAttM,EAAA,GAAAwgC,EAAA8rK,EAAA,GACAtoR,EAAAqoR,EAAAC,OACS,IAAAY,EAET,OAAA3B,EAAA+B,EAAAttM,GAAAstM,EAAAttM,EAAA,GAAAwgC,GAEAx8G,EAAAsnR,EAAAgC,EAAAttM,GAAAstM,EAAAttM,EAAA,GAAAwgC,GAGAs7E,EAAA9+L,EAAAulC,EAAAv+B,KAWAy+J,UAAA+pH,IAOA,OAJA7tR,GAAA,WAAAA,IACAs2K,EAAAt2K,UAGAs2K,IAYA,IAAAl5K,EAAA,SAAAiB,EAAAD,EAAA4wE,EAAAmuH,GACAr/L,KAAAmxR,WACAnxR,KAAAylK,QAAAllK,EACAP,KAAA0R,MAAApR,IAAA,EACAN,KAAAiwR,QAAA/+M,GAAAy9M,EACA3uR,KAAAkwR,QAAA7wF,GAAAuvF,EACA5uR,KAAAoxR,WAAA,EACApxR,KAAA4lK,OAAA,EACA5lK,KAAAqxR,aACArxR,KAAAsxR,gBACAtxR,KAAAuxR,cAGAjyR,EAAAY,WAOA8C,KAAA,SAAAhB,EAEAc,GACA,IAAAqqF,EAAAntF,KAAAmxR,QAEA,QAAArrP,KAAAhjC,EACA,GAAAA,EAAAD,eAAAijC,GAAA,CAIA,IAAAqnD,EAAArnD,GAAA,CACAqnD,EAAArnD,MAEA,IAAAv+B,EAAAvH,KAAAiwR,QAAAjwR,KAAAylK,QAAA3/H,GAEA,SAAAv+B,EAEA,SAOA,IAAAvF,GACAmrF,EAAArnD,GAAAvkC,MACAS,KAAA,EACAuF,MAAAooR,EAAApoR,KAKA4lF,EAAArnD,GAAAvkC,MACAS,OACAuF,MAAAzE,EAAAgjC,KAIA,OAAA9lC,MAQAmB,OAAA,SAAAgB,GAGA,OAFAnC,KAAAsxR,aAAA/vR,KAAAY,GAEAnC,MAEA4vH,MAAA,WACA,QAAA7uH,EAAA,EAAmBA,EAAAf,KAAAuxR,UAAAtwR,OAA2BF,IAC9Cf,KAAAuxR,UAAAxwR,GAAA6uH,QAGA5vH,KAAAmmK,SAAA,GAEAS,OAAA,WACA,QAAA7lK,EAAA,EAAmBA,EAAAf,KAAAuxR,UAAAtwR,OAA2BF,IAC9Cf,KAAAuxR,UAAAxwR,GAAA6lK,SAGA5mK,KAAAmmK,SAAA,GAEAqrH,SAAA,WACA,QAAAxxR,KAAAmmK,SAEAsrH,cAAA,WAEAzxR,KAAAmxR,WAEAnxR,KAAAuxR,UAAAtwR,OAAA,EAIA,IAHA,IAAAywR,EAAA1xR,KAAAqxR,UACAxvR,EAAA6vR,EAAAzwR,OAEAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5B2wR,EAAA3wR,GAAA2K,KAAA1L,OAWAwC,MAAA,SAAAN,EAAAE,GACA,IAWAuvR,EAXAxlR,EAAAnM,KACA4xR,EAAA,EAEA7B,EAAA,aACA6B,GAGAzlR,EAAAslR,iBAMA,QAAA3rP,KAAA9lC,KAAAmxR,QACA,GAAAnxR,KAAAmxR,QAAAtuR,eAAAijC,GAAA,CAIA,IAAA0yI,EAAAs3G,EAAA9vR,KAAAkC,EAAA6tR,EAAA/vR,KAAAmxR,QAAArrP,KAAA1jC,GAEAo2K,IACAx4K,KAAAuxR,UAAAhwR,KAAAi3K,GAEAo5G,IAEA5xR,KAAAwB,WACAxB,KAAAwB,UAAAqwR,QAAAr5G,GAGAm5G,EAAAn5G,GAKA,GAAAm5G,EAAA,CACA,IAAAG,EAAAH,EAAA5rH,QAEA4rH,EAAA5rH,QAAA,SAAAxlK,EAAA6jB,GACA0tQ,EAAAvxR,EAAA6jB,GAEA,QAAArjB,EAAA,EAAuBA,EAAAoL,EAAAmlR,aAAArwR,OAA8BF,IACrDoL,EAAAmlR,aAAAvwR,GAAAR,EAAA6jB,IAYA,OAJAwtQ,GACA5xR,KAAAyxR,gBAGAzxR,MAOA8B,KAAA,SAAAF,GAIA,IAHA,IAAAmwR,EAAA/xR,KAAAuxR,UACA/vR,EAAAxB,KAAAwB,UAEAT,EAAA,EAAmBA,EAAAgxR,EAAA9wR,OAAqBF,IAAA,CACxC,IAAAy3K,EAAAu5G,EAAAhxR,GAEAa,GAEA42K,EAAAzS,QAAA/lK,KAAAylK,QAAA,GAGAjkK,KAAAwwR,WAAAx5G,GAGAu5G,EAAA9wR,OAAA,GAQAgB,MAAA,SAAAD,GAEA,OADAhC,KAAA4lK,OAAA5jK,EACAhC,MAQAqB,KAAA,SAAAimE,GAKA,OAJAA,GACAtnE,KAAAqxR,UAAA9vR,KAAA+lE,GAGAtnE,MAMAiyR,SAAA,WACA,OAAAjyR,KAAAuxR,YAGA,IAAAtuR,EAAA3D,EACA4D,EAAAC,QAAAF,wBCnoBA,IAAA42B,EAAat6B,EAAQ,QAErB8zJ,EAAgB9zJ,EAAQ,QAExBib,EAAcjb,EAAQ,QAEtBqnD,EAAernD,EAAQ,QAEvB0zN,EAAmB1zN,EAAQ,QAE3Bm4C,EAAiBn4C,EAAQ,QAEzB+3B,EAAa/3B,EAAQ,QAErBg0J,EAAiBh0J,EAAQ,QAoBzB09B,EAAAziB,EAAAyiB,KACAw2H,EAAA/7G,EAAA+7G,UACAhjF,EAAA/4B,EAAA+4B,IACAjmE,EAAAqvB,EAAArvB,KACAi0B,EAAA5E,EAAA4E,KAKAyzP,EAAA,aAEAC,EAAA,EACAC,GAAA,sCACAC,EAAAp/D,EAAAvpN,QACAlG,KAAA,kBACAgb,KAAA,SAAA7a,EAAAC,GAKA5D,KAAAsyR,iBAMAtyR,KAAAg0J,QAMAh0J,KAAAozN,OAMApzN,KAAA+zJ,YAOA/zJ,KAAAwsI,MAMAxsI,KAAAuyR,aAMAvyR,KAAAwyR,cAKAxyR,KAAAyyR,UAKAzyR,KAAAm0J,UAKAn0J,KAAA0yR,gBACA1yR,KAAA4D,OAMAH,OAAA,SAAAkuM,EAAAhuM,EAAAC,EAAAggC,GACAyuP,EAAAztR,WAAA5E,KAAA,SAAA8E,WACA8hD,EAAAq+G,eAAAjlK,KAAA,sBAAAA,KAAA2xM,cAAA3tM,IAAA,uBACAhE,KAAAg0J,QAAA29C,EAAA3tM,IAAA,WAEA,IAAAhE,KAAA2xM,cAAA3tM,IAAA,SAQA4/B,GAAA,aAAAA,EAAApgC,MAAAogC,EAAA73B,OAAA/L,KAAAk1D,KACAl1D,KAAAu0J,aAGAv0J,KAAA60J,eAXA70J,KAAAg/B,MAAAkG,aAiBAzgC,OAAA,WACA4tR,EAAAztR,WAAA5E,KAAA,SAAA8E,WACA8hD,EAAAxB,MAAAplD,KAAA,wBAMA+E,QAAA,WACAstR,EAAAztR,WAAA5E,KAAA,UAAA8E,WACA8hD,EAAAxB,MAAAplD,KAAA,wBAEAu0J,WAAA,WACA,IAAAC,EAAAx0J,KAAAg/B,MACAw1H,EAAAtvH,YAEAllC,KAAA2yR,iBAEA3yR,KAAAy0J,iBAEA,IAAAY,EAAAr1J,KAAAsyR,cAAAj9H,SAAA,IAAA76I,EAAAskB,MAEA9+B,KAAA4yR,oBAEA5yR,KAAA6yR,gBAEA7yR,KAAA8yR,oBAEAt+H,EAAAv1H,IAAAo2H,GAEAr1J,KAAA+yR,kBAMAJ,eAAA,WACA,IAAAhhF,EAAA3xM,KAAA2xM,cACA/tM,EAAA5D,KAAA4D,IAGAovR,EAAAhzR,KAAAizR,iBAEAC,GACAl6Q,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aAGAohO,EAAAnzR,KAAAg0J,UAAAk+H,GAGApsR,MAAAotR,EAAAl6Q,MAAAg6Q,EAAA3uR,EAAA2uR,EAAAh6Q,MACAhH,IAAAkhR,EAAAj6Q,OAlJA,GAFA,EAqJAD,MAAAg6Q,EAAAh6Q,MACAC,OApJA,KAuJAnT,MAzJA,EA0JAkM,IAAAghR,EAAAzuR,EACAyU,MAzJA,GA0JAC,OAAA+5Q,EAAA/5Q,QAIAglM,EAAA3mL,EAAA29J,gBAAA0c,EAAA10L,QAEA4c,EAAA4E,MAAA,yCAAA77B,GACA,OAAAq7M,EAAAr7M,KACAq7M,EAAAr7M,GAAAuwR,EAAAvwR,MAGA,IAAAwwR,EAAA97P,EAAAwrC,cAAAm7I,EAAAi1E,EAAAvhF,EAAAp8K,SACAv1B,KAAAyyR,WACApuR,EAAA+uR,EAAA/uR,EACAE,EAAA6uR,EAAA7uR,GAEAvE,KAAAwsI,OAAA4mJ,EAAAp6Q,MAAAo6Q,EAAAn6Q,QAxKA,aAyKAjZ,KAAAg0J,SAAAh0J,KAAAwsI,MAAAjlH,WAMAwrQ,eAAA,WACA,IAAAv+H,EAAAx0J,KAAAg/B,MACA6uH,EAAA7tJ,KAAAyyR,UACA31Q,EAAA9c,KAAAg0J,QAEAq/H,EAAArzR,KAAA2xM,cAAA2hF,0BACA/2P,EAAA82P,KAAArvR,IAAA,WACAqxJ,EAAAr1J,KAAAsyR,cAAAj9H,SACAk+H,GAAAvzR,KAAA0yR,qBAAsDa,iBAEtDl+H,EAAAtyJ,KAAA+Z,IAAAo1Q,GAAA31P,EAEKzf,IAAAo1Q,GAAA31P,GACLhrB,MAAAgiR,IAAA,cA5LA,aA6LKz2Q,GAAAyf,GAKLhrB,MAAAgiR,IAAA,aACA17P,SAAA9vB,KAAAgwB,GAAA,IALAxmB,MAAAgiR,GAAA,YACA17P,SAAA9vB,KAAAgwB,GAAA,IALAxmB,MAAAgiR,GAAA,cAYA,IAAArrP,EAAAssH,EAAA1sH,iBAAAutH,IACAb,EAAAzxJ,KAAA,YAAA8qJ,EAAAxpJ,EAAA6jC,EAAA7jC,EAAAwpJ,EAAAtpJ,EAAA2jC,EAAA3jC,KAMAivR,eAAA,WACA,SAAAxzR,KAAAwsI,MAAA,KAEAomJ,kBAAA,WACA,IAAAjhF,EAAA3xM,KAAA2xM,cACA9/K,EAAA7xB,KAAAwsI,MACA6oB,EAAAr1J,KAAAsyR,cAAAj9H,SACAA,EAAAp2H,IAAA,IAAAhC,GACAkH,QAAA,EACApc,OACA1jB,EAAA,EACAE,EAAA,EACAyU,MAAA6Y,EAAA,GACA5Y,OAAA4Y,EAAA,IAEAtZ,OACAb,KAAAi6L,EAAA3tM,IAAA,oBAEAogC,IAAA,MAGAixH,EAAAp2H,IAAA,IAAAhC,GACAlV,OACA1jB,EAAA,EACAE,EAAA,EACAyU,MAAA6Y,EAAA,GACA5Y,OAAA4Y,EAAA,IAEAtZ,OACAb,KAAA,eAEA0sB,GAAA,EACAsqL,QAAA70L,EAAArvB,KAAAxK,KAAAyzR,mBAAAzzR,UAGA8yR,kBAAA,WACA,IAAAh4M,EAAA96E,KAAA0yR,gBAAA1yR,KAAA0zR,yBAEA,GAAA54M,EAAA,CAIA,IAAAjpD,EAAA7xB,KAAAwsI,MACAhxG,EAAAs/C,EAAAxoE,OACAxB,EAAA0qB,EAAA4wJ,aACAunG,EAAAn4P,EAAA6gL,aAAA7gL,EAAA6gL,eACAvhI,EAAA64M,SAEA,SAAAA,EAAA,CAIA,IAAAC,EAAA9iR,EAAAygN,cAAAoiE,GAEAE,EAAA,IAAAD,EAAA,GAAAA,EAAA,IACAA,KAAA,GAAAC,EAAAD,EAAA,GAAAC,GACA,IAQAC,EARAC,GAAA,EAAAliQ,EAAA,IACAmiQ,GAAA,EAAAniQ,EAAA,IACAoiQ,IAAApiQ,EAAA,aACAi0C,KACAx+C,EAAA0sQ,EAAA,IAAAljR,EAAAvO,QAAA,GACA2xR,EAAA,EAEAC,EAAApsR,KAAAqC,MAAA0G,EAAAvO,QAAAsvB,EAAA,IAEA/gB,EAAA2tB,MAAAk1P,GAAA,SAAApsR,EAAAqF,GACA,GAAAunR,EAAA,GAAAvnR,EAAAunR,EACAD,GAAA5sQ,MADA,CASA,IAAA2Y,EAAA,MAAA14B,GAAAkD,MAAAlD,IAAA,KAAAA,EAEA6sR,EAAAn0P,EAAA,EAAAwzH,EAAAlsJ,EAAAqsR,EAAAG,GAAA,GAEA9zP,IAAA6zP,GAAAlnR,GACAqnR,EAAA1yR,MAAA0yR,IAAAhzR,OAAA,UACA6kE,EAAAvkE,MAAAukE,IAAA7kE,OAAA,YACOg/B,GAAA6zP,IACPG,EAAA1yR,MAAA2yR,EAAA,IACApuN,EAAAvkE,MAAA2yR,EAAA,KAGAD,EAAA1yR,MAAA2yR,EAAAE,IACAtuN,EAAAvkE,MAAA2yR,EAAAE,IACAF,GAAA5sQ,EACAwsQ,EAAA7zP,KAEA,IAAA0xK,EAAA3xM,KAAA2xM,cAEA3xM,KAAAsyR,cAAAj9H,SAAAp2H,IAAA,IAAAzkB,EAAA4f,SACArS,OACAqV,OAAA62P,GAEA17Q,MAAAshB,EAAAmJ,UACAtrB,KAAAi6L,EAAA3tM,IAAA,wBACO2tM,EAAAtyK,SAAA,4BAAAoE,gBACPU,QAAA,EACAC,IAAA,MAGApkC,KAAAsyR,cAAAj9H,SAAAp2H,IAAA,IAAAzkB,EAAA2f,UACApS,OACAqV,OAAA0oC,GAEAvtD,MAAAo5L,EAAAtyK,SAAA,4BAAA4D,eACAkB,QAAA,EACAC,IAAA,SAGAsvP,uBAAA,WACA,IAAA/hF,EAAA3xM,KAAA2xM,cACA0iF,EAAA1iF,EAAA3tM,IAAA,kBAEA,QAAAqwR,EAAA,CAKA,IAAAtjR,EACApN,EAAA3D,KAAA2D,QA+BA,OA9BAguM,EAAAG,eAAA,SAAAC,EAAA5nI,GACA,IAAAw3J,EAAAhwB,EAAA2iF,aAAAviF,EAAAnvM,KAAAunE,GAAAoqN,wBACA16P,EAAA4E,KAAAkjM,EAAA,SAAAnmM,GACA,KAAAzqB,IAIA,IAAAsjR,GAAAx6P,EAAA/5B,QAAAsyR,EAAA52P,EAAAx3B,IAAA,aAIA,IAEAuvR,EAFAiB,EAAA7wR,EAAAG,aAAAiuM,EAAAt8K,KAAA00C,GAAA10C,KACAk+P,GA+UAtvR,EAAA,IACAE,EAAA,IACAoe,OAAA,QACA2qB,MAAA,UAlVAykK,EAAAnvM,MAEAy4B,EAAAG,EAAAnN,iBAEA,MAAAslQ,GAAAt4P,EAAA3E,eACA68P,EAAAl4P,EAAA3E,aAAA89P,GAAAj4P,SAGAo3P,EAAAn4P,EAAAtP,UAAAsS,aAAAm1P,GACA5iR,GACAyjR,WACAliR,OAAAkpB,EACAi5P,QAAA1iF,EAAAnvM,KACA+wR,WACAJ,sBAEOvzR,OACFA,MACL+Q,IAEA8hR,cAAA,WACA,IAAA6B,EAAA10R,KAAAsyR,cACAqC,EAAAD,EAAAC,WACAp+H,EAAAm+H,EAAAn+H,gBACAlB,EAAAr1J,KAAAsyR,cAAAj9H,SACAxjI,EAAA7xB,KAAAwsI,MACAmlE,EAAA3xM,KAAA2xM,cACAt8C,EAAAp2H,IAAAy1P,EAAAE,OAAA,IAAA33P,GACAg6H,WAAA,EACA7nI,OAAA8mI,EAAAl2J,KAAAg0J,SACAxuC,MAAAh7G,EAAAxK,KAAA60R,YAAA70R,KAAA,OACAk3J,YAAA,SAAA/yJ,GAEAkvJ,EAAAvxJ,KAAAqC,EAAAozD,QAEAu9N,YAAAtqR,EAAAxK,KAAA+0R,cAAA/0R,MAAA,GACAm3J,UAAA3sJ,EAAAxK,KAAAg1R,WAAAh1R,MACAi1R,YAAAzqR,EAAAxK,KAAA+0R,cAAA/0R,MAAA,GACAk1R,WAAA1qR,EAAAxK,KAAA+0R,cAAA/0R,MAAA,GACAuY,OACAb,KAAAi6L,EAAA3tM,IAAA,eACAoyC,aAAA,aAIAi/G,EAAAp2H,IAAA,IAAAhC,EAAAziB,EAAA26Q,sBACAhxP,QAAA,EACApc,OACA1jB,EAAA,EACAE,EAAA,EACAyU,MAAA6Y,EAAA,GACA5Y,OAAA4Y,EAAA,IAEAtZ,OACA2qB,OAAAyuK,EAAA3tM,IAAA,wBAAA2tM,EAAA3tM,IAAA,eACA+4B,UAhZA,EAiZArlB,KAAA,qBAGA+mB,GAAA,cAAAk4H,GACA,IAAAt2J,EAAAma,EAAA46Q,WAAAzjF,EAAA3tM,IAAA,eACAorB,OAAA8mI,EAAAl2J,KAAAg0J,SACAiD,WAAA,EACAzxC,MAAAh7G,EAAAxK,KAAA60R,YAAA70R,KAAA22J,GACAO,YAAA,SAAA/yJ,GAEAkvJ,EAAAvxJ,KAAAqC,EAAAozD,QAEA4/F,UAAA3sJ,EAAAxK,KAAAg1R,WAAAh1R,MACAi1R,YAAAzqR,EAAAxK,KAAA+0R,cAAA/0R,MAAA,GACAk1R,WAAA1qR,EAAAxK,KAAA+0R,cAAA/0R,MAAA,KAEAqE,GAAA,EACAE,EAAA,EACAyU,MAAA,EACAC,OAAA,IAEAo8Q,EAAAh1R,EAAAynC,kBACA9nC,KAAAwyR,cAAA96O,EAAAhL,aAAAilK,EAAA3tM,IAAA,cAAAhE,KAAAwsI,MAAA,IACAxsI,KAAAuyR,aAAA8C,EAAAr8Q,MAAAq8Q,EAAAp8Q,OAAAjZ,KAAAwyR,cACAnyR,EAAAi8C,SAAAq1J,EAAAtyK,SAAA,eAAAimC,gBACA,IAAAgwN,EAAA3jF,EAAA3tM,IAAA,eAEA,MAAAsxR,IACAj1R,EAAAkY,MAAAb,KAAA49Q,GAGAjgI,EAAAp2H,IAAA01P,EAAAh+H,GAAAt2J,GACA,IAAAk1J,EAAAo8C,EAAAp8C,eACAv1J,KAAAg/B,MAAAC,IAAAs3H,EAAAI,GAAA,IAAAn8I,EAAA0wB,MACA/G,QAAA,EACAkzH,WAAA,EACA9+I,OACAlU,EAAA,EACAE,EAAA,EACA8sC,KAAA,GACAsE,kBAAA,SACAD,UAAA,SACA4B,SAAAi+G,EAAAE,eACAhhH,SAAA8gH,EAAAC,WAEApxH,GAAA,OAEKpkC,OAMLy0J,eAAA,WACA,IAAAr0C,EAAApgH,KAAAozN,OAAApzN,KAAA2xM,cAAA0hB,kBAEAkiE,EAAAv1R,KAAAwzR,iBAEAxzR,KAAA+zJ,aAAAN,EAAArzC,EAAA,WAAAm1K,GAAA,GAAA9hI,EAAArzC,EAAA,WAAAm1K,GAAA,KASA99H,gBAAA,SAAAd,EAAAz+H,GACA,IAAAy5K,EAAA3xM,KAAA2xM,cACAz5C,EAAAl4J,KAAA+zJ,YAEAyhI,EAAAx1R,KAAAwzR,iBAEA/jE,EAAA9d,EAAA+d,8BAAAC,gBACA8lE,GAAA,OACAliI,EAAAr7H,EAAAggI,EAAAs9H,EAAA7jF,EAAA3tM,IAAA,kBAAA2yJ,EAAA,MAAA84D,EAAA4E,QAAA5gE,EAAAg8D,EAAA4E,QAAAohE,EAAAD,GAAA,cAAA/lE,EAAA6E,QAAA7gE,EAAAg8D,EAAA6E,QAAAmhE,EAAAD,GAAA,SACA,IAAA5hE,EAAA5zN,KAAAozN,OACAhzG,EAAApgH,KAAAozN,OAAA3iJ,GAAAgjF,EAAAyE,EAAA,GAAAs9H,EAAAC,GAAA,GAAAhiI,EAAAyE,EAAA,GAAAs9H,EAAAC,GAAA,KACA,OAAA7hE,KAAA,KAAAxzG,EAAA,IAAAwzG,EAAA,KAAAxzG,EAAA,IAMAy0C,YAAA,SAAA6gI,GACA,IAAAhB,EAAA10R,KAAAsyR,cACAp6H,EAAAl4J,KAAA+zJ,YACA4hI,EAAAllN,EAAAynF,EAAA51J,SACAuvB,EAAA7xB,KAAAwsI,MACA/tG,GAAA,cAAAk4H,GAEA,IAAA6qB,EAAAkzG,EAAAC,QAAAh+H,GACAi/H,EAAA51R,KAAAwyR,cACAhxG,EAAAz+K,MACAwO,OAAAqkR,EAAA,EAAAA,EAAA,GACAxnR,UAAA8pJ,EAAAvB,GAAA9kI,EAAA,KAAA+jQ,EAAA,MAEK51R,MAEL00R,EAAAE,OAAArzP,UACAl9B,EAAAsxR,EAAA,GACApxR,EAAA,EACAyU,MAAA28Q,EAAA,GAAAA,EAAA,GACA18Q,OAAA4Y,EAAA,KAGA7xB,KAAA61R,gBAAAH,IAMAG,gBAAA,SAAAH,GACA,IAAA/jF,EAAA3xM,KAAA2xM,cACA+iF,EAAA10R,KAAAsyR,cACA/7H,EAAAm+H,EAAAn+H,aACAz5I,EAAA9c,KAAAg0J,QACA8hI,GAAA,OAGA,GAAAnkF,EAAA3tM,IAAA,eACA,IAAA+xR,EAAApkF,EAAA+d,8BAEA,GAAAqmE,EAAA,CACA,IAAAtgQ,EAAAsgQ,EAAAxmE,eAAA95L,KACA2qF,EAAApgH,KAAAozN,OACAt7D,EAAA49H,EACAK,EAAAC,qBACAxzR,MAAA49G,EAAA,GACAlvF,IAAAkvF,EAAA,KACS61K,YAAAF,EAAAG,qBACTJ,GAAA91R,KAAAm2R,aAAAr+H,EAAA,GAAAriI,GAAAz1B,KAAAm2R,aAAAr+H,EAAA,GAAAriI,KAIA,IAAA2gQ,EAAA3lN,EAAAzwE,KAAA+zJ,YAAAzxJ,SAIA,SAAAk6L,EAAA7lC,GAIA,IAAA0/H,EAAA77Q,EAAA6+I,aAAAq7H,EAAAC,QAAAh+H,GAAAptH,OAAAvpC,KAAAg/B,OACA8jB,EAAAtoC,EAAA87Q,mBAAA,IAAA3/H,EAAA,eAAA0/H,GACA3zP,EAAA1iC,KAAAuyR,aAAA,EAAAJ,EACA/4H,EAAA5+I,EAAAwsB,gBAAAovP,EAAAz/H,IAAA,IAAAA,GAAAj0H,KAAA1iC,KAAAwsI,MAAA,MAAA6pJ,GACA9/H,EAAAI,GAAAr6G,UACAj4C,EAAA+0J,EAAA,GACA70J,EAAA60J,EAAA,GACAzjH,kBAAA74B,IAAAo1Q,EAAA,SAAApvO,EACApN,UAAA54B,IAAAo1Q,EAAApvO,EAAA,SACAzR,KAAAykP,EAAAn/H,KAhBA6lC,EAAA9wL,KAAA1L,KAAA,GACAw8L,EAAA9wL,KAAA1L,KAAA,IAuBAm2R,aAAA,SAAA5uR,EAAAkuB,GACA,IAAAk8K,EAAA3xM,KAAA2xM,cACAx/B,EAAAw/B,EAAA3tM,IAAA,kBACAuyR,EAAA5kF,EAAA3tM,IAAA,kBAEA,MAAAuyR,GAAA,SAAAA,IACAA,EAAA9gQ,EAAA+gQ,qBAGA,IAAAC,EAAA,MAAAlvR,GAAAkD,MAAAlD,GAAA,GACA,aAAAkuB,EAAAjyB,MAAA,SAAAiyB,EAAAjyB,KAAAiyB,EAAAlkB,MAAA2nC,SAAAnxC,KAAAqC,MAAA7C,IACAA,EAAAD,QAAAS,KAAAC,IAAAuuR,EAAA,KACA,OAAA18P,EAAAl6B,WAAAwyK,KAAA5qK,EAAAkvR,GAAA58P,EAAAn6B,SAAAyyK,KAAA5pK,QAAA,UAAkJkuR,MAOlJ1B,cAAA,SAAA2B,GAEAA,EAAA12R,KAAAm0J,WAAAuiI,EACA,IAAAngI,EAAAv2J,KAAAsyR,cAAA/7H,aACAA,EAAA,GAAAxzJ,KAAA,aAAA2zR,GACAngI,EAAA,GAAAxzJ,KAAA,aAAA2zR,IAEA7B,YAAA,SAAAl+H,EAAA5oH,EAAAC,GACAhuC,KAAAm0J,WAAA,EAEA,IAAAkiI,EAAAr2R,KAAAsyR,cAAAj9H,SAAArsH,oBAEAwuH,EAAAh9I,EAAAwsB,gBAAA+G,EAAAC,GAAAqoP,GAAA,GAEAM,EAAA32R,KAAAy3J,gBAAAd,EAAAa,EAAA,IAEA1mF,EAAA9wE,KAAA2xM,cAAA3tM,IAAA,YAEAhE,KAAA60J,aAAA/jF,GAIA6lN,GAAA7lN,GAAA9wE,KAAA6uN,uBAEAmmE,WAAA,WACAh1R,KAAAm0J,WAAA,EAEAn0J,KAAA+0R,eAAA,IAIA/0R,KAAA2xM,cAAA3tM,IAAA,aACAhE,KAAA6uN,uBAEA4kE,mBAAA,SAAAtvR,GACA,IAAA0tB,EAAA7xB,KAAAwsI,MAEAoqJ,EAAA52R,KAAAsyR,cAAAj9H,SAAA8vD,sBAAAhhN,EAAAG,QAAAH,EAAAK,SAEA,KAAAoyR,EAAA,MAAAA,EAAA,GAAA/kQ,EAAA,IAAA+kQ,EAAA,MAAAA,EAAA,GAAA/kQ,EAAA,KAIA,IAAAqmI,EAAAl4J,KAAA+zJ,YACAjwI,GAAAo0I,EAAA,GAAAA,EAAA,MAEAy+H,EAAA32R,KAAAy3J,gBAAA,MAAAm/H,EAAA,GAAA9yQ,GAEA9jB,KAAA60J,cAEA8hI,GAAA32R,KAAA6uN,wBAOAA,oBAAA,WACA,IAAAzuG,EAAApgH,KAAAozN,OACApzN,KAAA4D,IAAAQ,gBACAZ,KAAA,WACAuI,KAAA/L,KAAAk1D,IACAyqH,WAAA3/K,KAAA2xM,cAAAjwM,GACAc,MAAA49G,EAAA,GACAlvF,IAAAkvF,EAAA,MAOA6yK,eAAA,WAEA,IAAA/qP,EAQA,GAPAzJ,EAAAz+B,KAAA4xM,qBAAA,SAAA0hB,GACA,IAAAprL,GAAAorL,EAAAryN,OAAA,CACA,IAAAo6B,EAAAi4L,EAAA,GAAA/7L,MAAAlJ,iBACA6Z,EAAA7M,EAAAkoC,SAAAloC,EAAAkoC,cAIAr7B,EAAA,CACA,IAAAlvB,EAAAhZ,KAAA4D,IAAAkuD,WACA74C,EAAAjZ,KAAA4D,IAAAmuD,YACA7pB,GACA7jC,EAAA,GAAA2U,EACAzU,EAAA,GAAA0U,EACAD,MAAA,GAAAA,EACAC,OAAA,GAAAA,GAIA,OAAAivB,KAgBA,SAAAguH,EAAAp5I,GACA,mBAAAA,EAAA,wBAGA,IAAA7Z,EAAAovR,EACAnvR,EAAAC,QAAAF,qCC5tBA,IAAA+xE,EAAYz1E,EAAQ,QAEpB,SAAA6kR,IACApkR,KAAAqtL,YAWA+2F,EAAAlkR,UAAAm3P,IAAA,SAAAstB,EAAAC,GAKA,OAJA5kR,KAAAqtL,SAAA9rL,MACAojR,YACAC,aAEA5kR,KAAAqtL,SAAApsL,OAAA,GAQAmjR,EAAAlkR,UAAA22R,MAAA,SAAAn1R,GACA1B,KAAAqtL,SAAA3rL,KACA1B,KAAAqtL,SAAA3rL,GAAA,OAYA0iR,EAAAlkR,UAAA4J,QAAA,SAAAmC,GACA+oE,EAAAlrE,QAAA9J,KAAAqtL,SAAA,SAAAp1K,GACA,OAAAA,GACAhM,EAAAgM,MAKA/U,EAAAC,QAAAihR,wBCnDA,IAAAhhR,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAAu3R,EAAqBv3R,EAAQ,QAoB7B6D,EAAAw4D,eAAAk7N,yBC5BA,IAAA3qO,EAAkB5sD,EAAQ,QAE1BmpK,EAA0BnpK,EAAQ,QAElC49D,EAAuB59D,EAAQ,QAoB/B0D,EAAAkpD,EAAAziD,QACAlG,KAAA,iBACAolK,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAA+kK,EAAA1oK,KAAA6oK,YAAA7oK,MACA+2R,cAAA,WAGAvkD,mBAAA,WACA,IAAAn1K,EAAAF,EAAAn5D,IAAAhE,KAAAgE,IAAA,qBAEA,GAAAq5D,KAAAt7B,WACA,cAAAs7B,EAAAt7B,WAAA,YAAAs7B,EAAAt7B,WAAA,IAGArN,eAEArG,iBAAA,cACAsG,OAAA,EACAC,EAAA,EAKA86K,SAAA,EACAniL,SAAA,GACAF,UAAA,GACA2pQ,WAAA,EACAC,WAAA,KAIA/zR,EAAAC,QAAAF,wBCvDA,IAAAq0B,EAAa/3B,EAAQ,QAErB23R,EAAc33R,EAAQ,QAEtBmtC,EAAAwqP,EAAAxqP,aACA+mH,EAAAyjI,EAAAzjI,UAgMAvwJ,EAAAC,QApFA,SAAAQ,EAAAC,EAAAggC,GACAjgC,EAAAikM,iBAAA,kBAAApsK,GACA,IAAA1qB,EAAA0qB,EAAAtP,UACAmU,EAAAvvB,EAAA0tB,aAAA,SACAlpB,EAAAkmB,EAAAx3B,IAAA,QACAyvK,EA7FA,SAAAj4I,EAAA53B,GACA,OAAA0zB,EAAAwrC,cAAAtnC,EAAAouC,sBACA5wD,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,cA0FAjoB,CAAAtO,EAAA53B,GACA8xE,EAvFA,SAAA5kE,EAAAwE,GAQA,IAPA,IAAA+qB,EAAAvvB,EAAA0tB,aAAA,SACA24P,EAAArmR,EAAAyuB,SAAAc,EAAA,SAAA9yB,GACA,OAAAA,IAEAmoE,KACA0hN,EAAA,cAAA9hR,EAEAvU,EAAA,EAAAc,EAAAiP,EAAAvO,QAAqCxB,EAAAc,EAASd,IAC9C20E,EAAA30E,KAYA,MARA,mBAAAuU,EACAogE,EAAApgE,QACG,SAAAA,GACHogE,EAAApgE,KAAA,SAAAC,EAAAC,GACA,OAAA4hR,EAAAD,EAAA5hR,GAAA4hR,EAAA3hR,GAAA2hR,EAAA3hR,GAAA2hR,EAAA5hR,KAIAmgE,EAkEA2hN,CAAAvmR,EAAAwE,GACA2iJ,GAAAvrH,EAAAlR,EAAAx3B,IAAA,WAAAyvK,EAAAz6J,OAAA0zB,EAAAlR,EAAAx3B,IAAA,WAAAyvK,EAAAz6J,QACAg/I,EAAAlnJ,EAAAygN,cAAAlxL,GACAr4B,EAAAwzB,EAAAx3B,IAAA,OACAiE,EAAAuzB,EAAAx3B,IAAA,OAEA,MAAAgE,IACAA,EAAAD,KAAAC,IAAAgwJ,EAAA,OAGA,MAAA/vJ,IACAA,EAAA+vJ,EAAA,IAGA,IAAA05C,EAAAl2K,EAAAx3B,IAAA,eACA8hK,EAAAtqI,EAAAx3B,IAAA,OACAoiM,GAAA3yB,EAAAx6J,OAAA6sJ,GAAAh1J,EAAAvO,QAAA,IAAAuO,EAAAvO,QACAgC,EAAAkvK,EAAAlvK,EAEA+yR,EAAA,SAAAh3P,EAAAi3P,GAEA,IAEAxmP,EAFAxjC,EAAAuD,EAAA9M,IAAAq8B,EAAAC,IAAA,EACA+lK,EAAA5yC,EAAAlmJ,GAAAvF,EAAAC,GAAAgwJ,GAAA,GAGA,OAAAy5C,GACA,WACA3gK,EAAA0iI,EAAApvK,EACA,MAEA,aACA0sC,EAAA0iI,EAAApvK,GAAAovK,EAAAz6J,MAAAqtL,GAAA,EACA,MAEA,YACAt1J,EAAA0iI,EAAApvK,EAAAovK,EAAAz6J,MAAAqtL,EAIA,QAAAt1J,EAAAwmP,IAAAxmP,EAAAs1J,EAAAkxF,KAGA,cAAAjiR,IAEA8wL,KACAtgC,KACAvhK,GAAAkvK,EAAAx6J,OACAy8D,IAAAnuD,WAGA,QAAAxmB,EAAA,EAAmBA,EAAA20E,EAAAz0E,OAAoBF,IAAA,CACvC,IAAAu/B,EAAAo1C,EAAA30E,GACAy1N,EAAA9gJ,EAAA30E,EAAA,GAEAkY,EADAnI,EAAAq0D,aAAA7kC,GACAt8B,IAAA,oBAEA,MAAAiV,EACAA,EAAAmtL,GAEAntL,EAAAyzB,EAAAzzB,EAAAw6J,EAAAx6J,QAEA,cAAA3D,IACA2D,OAIA,IAAAzW,EAAA80R,EAAAh3P,EAAA/7B,GACA2sB,EAAAomQ,EAAA9gE,EAAAjyN,EAAA0U,GACA1U,GAAA0U,EAAA6sJ,EACAh1J,EAAA64K,cAAArpJ,GACAlD,OAAA56B,EAAAuS,OAAAmc,EAAA5uB,QAAAilB,cArIA,SAAAzW,GACAA,EAAA2tB,KAAA,SAAA6B,GACA,IAOAoV,EACA8hP,EACAC,EACA3xN,EAVAZ,EAAAp0D,EAAAq0D,aAAA7kC,GAEAo3P,EADAxyN,EAAA7lC,SAAA,SACAr7B,IAAA,YACAiiE,EAAAf,EAAA7lC,SAAA,aACA/H,EAAAxmB,EAAA0uB,cAAAc,GACAlD,EAAA9F,EAAA8F,OACAu6P,EAAA,UAAAD,GAAA,WAAAA,GAAA,WAAAA,EAMA,GAAAC,EAGAjiP,EAAA,SACAowB,IAHA0xN,GAAAp6P,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,SACAq6P,GAAAr6P,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,WAEAo6P,EAAAC,QACK,CACL,IAAAhnP,EACAC,EACA7C,EACA+pP,EAAA3xN,EAAAjiE,IAAA,UAEA,SAAA0zR,GAEAjnP,GAAArT,EAAA,MAAAA,EAAA,SACAsT,GAAAtT,EAAA,MAAAA,EAAA,SAEAo6P,GADA3pP,EAAA4C,EAAAmnP,GACA,EACAliP,EAAA,UAGAjF,GAAArT,EAAA,MAAAA,EAAA,SACAsT,GAAAtT,EAAA,MAAAA,EAAA,SAEAo6P,GADA3pP,EAAA4C,EAAAmnP,GACA,EACAliP,EAAA,QAIAowB,IAAAr1B,EAAAC,IAAA7C,EADA6C,IAEA+mP,EAFA/mP,EAKApZ,EAAA7kB,OACAqzD,aACAzhE,EAAAmzR,EACAjzR,EAAAkzR,EACA/+P,cAAA,SACAgd,YACA+wB,OAAAkxN,KAqFA9xN,CAAA/0D,4BCjMcvR,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAErBolL,EAAYplL,EAAQ,QAEpBgsE,EAAiBhsE,EAAQ,QAEzBssK,EAAatsK,EAAQ,QAErBs4R,EAAoBt4R,EAAQ,QAE5B0uK,EAAA4pH,EAAA5pH,uBACA9B,EAAA0rH,EAAA1rH,oBAIA2rH,EAFuBv4R,EAAQ,QAE/Bu4R,oBAyBAl4R,EAAAi6B,EAAAj6B,SAIAm4R,EAAA,QACAC,GACAC,MALA,oBAKAC,aAAArsR,MAAAqsR,aACA9uR,IANA,oBAMA6gF,WAAAp+E,MAAAo+E,WAEAkuM,QAAAtsR,MACA0nM,OAAA1nM,MACA7J,KAAA6J,OAIAusR,EAdA,oBAcA/wM,YAAAx7E,MAAAw7E,YACAgxM,EAfA,oBAeAC,YAAAzsR,MAAAysR,YAEA,SAAAC,EAAA1rQ,GAEA,OAAAA,EAAA2rQ,UAAA,MAAAJ,EAAAC,EASA,IAAAI,GAAA,oKACAC,GAAA,6CAEA,SAAAC,EAAAp4R,EAAAkC,GACAo3B,EAAA4E,KAAAg6P,EAAA1jR,OAAAtS,EAAAm2R,sBAAA,SAAA9yP,GACArjC,EAAAI,eAAAijC,KACAvlC,EAAAulC,GAAArjC,EAAAqjC,MAGAvlC,EAAAq4R,iBAAAn2R,EAAAm2R,iBACA/+P,EAAA4E,KAAAi6P,EAAA,SAAA5yP,GACAvlC,EAAAulC,GAAAjM,EAAAmQ,MAAAvnC,EAAAqjC,MAEAvlC,EAAAs4R,iBAAAh/P,EAAAnwB,OAAAjH,EAAAo2R,kBAiBA,IAAAp0G,EAAA,SAAA1iJ,EAAAsC,GACAtC,MAAA,SAKA,IAJA,IAAA+2P,KACAC,KACAC,KAEAj4R,EAAA,EAAiBA,EAAAghC,EAAA9gC,OAAuBF,IAAA,CAExC,IAAAk4R,EAAAl3P,EAAAhhC,GAEA84B,EAAAn6B,SAAAu5R,KACAA,GACAr2R,KAAAq2R,IAIA,IAAAC,EAAAD,EAAAr2R,KACAq2R,EAAAz1R,KAAAy1R,EAAAz1R,MAAA,QAEAy1R,EAAAr3P,WACAq3P,EAAAr3P,SAAAs3P,EACAD,EAAAE,cAAA,GAGAF,EAAAG,UAAAH,EAAAG,cACAL,EAAAx3R,KAAA23R,GACAJ,EAAAI,GAAAD,EACAA,EAAArsR,MAAA7L,EAEAk4R,EAAAI,wBACAL,EAAAE,OASAl5R,KAAA+hC,WAAAg3P,EAMA/4R,KAAAouK,gBAAA0qH,EAKA94R,KAAAqkC,YAKArkC,KAAAqiB,SAQAriB,KAAAs5R,SAAA,KACAt5R,KAAAu5R,OAAA,EACAv5R,KAAAw4R,UAAA,EAOAx4R,KAAAw5R,YAKAx5R,KAAAy5R,aAKAz5R,KAAA05R,WAOA15R,KAAA25R,iBAOA35R,KAAA45R,WAOA55R,KAAAqrM,WAOArrM,KAAA65R,gBAOA75R,KAAA85R,iBAOA95R,KAAA+5R,gBAOA/5R,KAAAg6R,eAOAh6R,KAAAi6R,WAAA,IAMAj6R,KAAAk6R,YAAA,EAMAl6R,KAAAquK,SAUAruK,KAAAm6R,cAMAn6R,KAAA44C,WAQA54C,KAAAo6R,sBAOAp6R,KAAAq6R,mBAAAvC,EAAA93R,MAMAA,KAAAs6R,oBAAAtB,EAMAh5R,KAAA64R,qBAGA0B,EAAA91G,EAAAvkL,UAoTA,SAAAs6R,EAAA3tQ,EAAAuL,EAAAiyJ,GACA,IAAA98K,EAEA,SAAA6qB,EAAA,CACA,IAAAqiQ,EAAA5tQ,EAAAotQ,WACAS,EAAA3yR,KAAAkwC,MAAAoyI,EAAAowG,GACAE,EAAAtwG,EAAAowG,EACApiQ,EAAAxL,EAAAkV,WAAA3J,GACAwiQ,EAAA/tQ,EAAA2sQ,SAAAnhQ,GAAAqiQ,GAEA,GAAAE,EAAA,CACArtR,EAAAqtR,EAAAD,GACA,IAAApsH,EAAA1hJ,EAAAuhJ,gBAAA/1I,GAAAk2I,YAEAA,KAAA6C,WAAAnwK,SACAsM,EAAAghK,EAAA6C,WAAA7jK,KAKA,OAAAA,EAkeA,SAAAstR,EAAAv6P,GACA,OAAAA,EAGA,SAAAw6P,EAAAx6P,GACA,OAAAA,EAAAtgC,KAAAu5R,QAAAj5P,GAAA,EACAtgC,KAAAs5R,SAAAh5P,IAGA,EA6CA,SAAA+oJ,EAAAx8J,EAAAw9J,GACA,IAAA3oL,EAAAmrB,EAAA6sQ,QAAArvG,GAWA,OATA,MAAA3oL,IACAA,EAAA84R,EAAA3tQ,IAAAkuQ,UAAA1wG,IAGA,MAAA3oL,IAEAA,EAAAq2R,EAAA1tG,GAGA3oL,EAGA,SAAAs5R,EAAAj5P,GAKA,OAJAlI,EAAA/tB,QAAAi2B,KACAA,OAGAA,EAkTA,SAAAk5P,EAAArtH,EAAAstH,GACA,IAAAC,EAAAvtH,EAAA7rI,WACAlV,EAAA,IAAA43J,EAAA5qJ,EAAAlpB,IAAAwqR,EAAAvtH,EAAA3rI,iBAAA2rI,KAAAvpI,WAEAs0P,EAAA9rQ,EAAA+gJ,GAIA,IAHA,IAAAt7G,EAAAzlC,EAAA2sQ,YACA4B,EAAAxtH,EAAA4rH,SAEAz4R,EAAA,EAAiBA,EAAAo6R,EAAAl6R,OAA0BF,IAAA,CAC3C,IAAAs3B,EAAA8iQ,EAAAp6R,GAEAq6R,EAAA/iQ,KAGAwB,EAAA/5B,QAAAo7R,EAAA7iQ,IAAA,GACAi6B,EAAAj6B,GAAAgjQ,EAAAD,EAAA/iQ,IACAxL,EAAAstQ,WAAA9hQ,GAAAijQ,IACAzuQ,EAAA+rB,QAAAvgB,GAAA,MAGAi6B,EAAAj6B,GAAA+iQ,EAAA/iQ,IAKA,OAAAxL,EAGA,SAAAwuQ,EAAAE,GAGA,IAFA,IA36CAC,EACA9vD,EA06CA+vD,EAAA,IAAA5vR,MAAA0vR,EAAAt6R,QAEAiyB,EAAA,EAAiBA,EAAAqoQ,EAAAt6R,OAA6BiyB,IAC9CuoQ,EAAAvoQ,IA96CAsoQ,EA86CAD,EAAAroQ,GA76CAw4M,YAAA8vD,EAAAr7R,eAEA0L,MAAA2vR,EAAAl5R,QAAA,IAAAopO,EAAA8vD,IA86CA,OAAAC,EAGA,SAAAH,IACA,OAAA7hP,UA5sCA8gP,EAAA/2R,KAAA,OAMA+2R,EAAAvqN,eAAA,EASAuqN,EAAA53N,aAAA,SAAAtqC,GAKA,OAJA5tB,MAAA4tB,KACAA,EAAAr4B,KAAA+hC,WAAA1J,OAGAA,GAUAkiQ,EAAAt4P,iBAAA,SAAA5J,GAEA,OAAAr4B,KAAAouK,gBAAApuK,KAAA2iE,aAAAtqC,KAOAkiQ,EAAAmB,qBAAA,WACA,OAAA17R,KAAAq6R,mBAAAsB,gBAAAr5R,SAaAi4R,EAAA/7P,aAAA,SAAAoD,EAAAtB,GACA,IAAAs7P,EAAA57R,KAAAq6R,mBAEA,SAAA/5P,EACA,OAAAs7P,EAAAC,uBAAAj6P,GAGA,IAAAlxB,EAAAkrR,EAAAn+C,OAAA77M,GACA,WAAAtB,GACA5vB,OAAApO,QAAAoO,KAAA4vB,IAcAi6P,EAAAttM,SAAA,SAAAn8E,EAAAgrR,EAAAphG,IACA7uB,EAAAQ,WAAAv7J,IAAA+oB,EAAAh6B,YAAAiR,MAGAA,EAAA,IAAAq7J,EAAAr7J,EAAA9Q,KAAA+hC,WAAA9gC,SAGAjB,KAAAquK,SAAAv9J,EAEA9Q,KAAAw5R,YACAx5R,KAAAs5R,SAAA,KACAt5R,KAAAy5R,UAAAqC,MACA97R,KAAA05R,WACA15R,KAAA+7R,oBAEArhG,IACA16L,KAAAgwE,eAAA,GAOAhwE,KAAAg8R,sBAAA/tH,EAAAjuK,KAAAquK,SAAAxF,YAAA2D,cAEAxsK,KAAAi8R,gBAAAvhG,KAAA16L,KAAAg8R,sBAEAh8R,KAAAm6R,cAEAn6R,KAAAk8R,sBAAA,EAAAprR,EAAAvO,SAGAuO,EAAAg8J,OACA9sK,KAAAgwE,eAAA,IAIAuqN,EAAA5rH,YAAA,WACA,OAAA3uK,KAAAquK,UAGAksH,EAAArgO,WAAA,SAAAppD,GACA,IAAA84F,EAAA5pG,KAAAquK,SACA7rK,EAAAxC,KAAAuC,QACAqnG,EAAA1vC,WAAAppD,GACA,IAAAogB,EAAA04E,EAAArnG,QAEAqnG,EAAAmjE,aACA77I,GAAA1uB,GAGAxC,KAAAk8R,sBAAA15R,EAAA0uB,IAGAqpQ,EAAA2B,sBAAA,SAAA15R,EAAA0uB,GAEA,KAAA1uB,GAAA0uB,GAAA,CAkBA,IAdA,IAUAirQ,EAVA1B,EAAAz6R,KAAAi6R,WACArwL,EAAA5pG,KAAAquK,SACA/7G,EAAAtyD,KAAAw5R,SACAz3P,EAAA/hC,KAAA+hC,WACAq6P,EAAAr6P,EAAA9gC,OACAo7R,EAAAr8R,KAAAouK,gBACA0tH,EAAA97R,KAAAy5R,UACA6C,EAAAt8R,KAAA05R,QACA6C,EAAAv8R,KAAAm6R,WACAqC,EAAAx8R,KAAA+7R,oBAEAU,EAAAz8R,KAAAk6R,YACAwC,EAAAD,EAAA,EAEA17R,EAAA,EAAiBA,EAAAq7R,EAAYr7R,IAAA,CAG7Bw7R,EAFAlkQ,EAAA0J,EAAAhhC,MAGAw7R,EAAAlkQ,GAAAijQ,KAGA,IAAAt5P,EAAAq6P,EAAAhkQ,GAEA,IAAA2J,EAAAo3P,UAAA5uQ,WACA2xQ,EAAAn8R,KAAA28R,YAAA57R,GAGA,IAAAihC,EAAAo3P,UAAAwD,SACA58R,KAAA+6R,UAAAh6R,GAGA,IAAA87R,EAAA7E,EAAAh2P,EAAAx+B,MAEA8uD,EAAAj6B,KACAi6B,EAAAj6B,OAGA,IAAAykQ,EAAAxqO,EAAAj6B,GAAAqkQ,GAEA,GAAAI,KAAA77R,OAAAw5R,EAAA,CAIA,IAHA,IAAAsC,EAAA,IAAAF,EAAA90R,KAAAC,IAAAkpB,EAAAwrQ,EAAAjC,MAGAvnQ,EAAA,EAAqBA,EAAA4pQ,EAAA77R,OAA6BiyB,IAClD6pQ,EAAA7pQ,GAAA4pQ,EAAA5pQ,GAGAo/B,EAAAj6B,GAAAqkQ,GAAAK,EAIA,QAAAt0Q,EAAAg0Q,EAAAhC,EAAwChyQ,EAAAyI,EAASzI,GAAAgyQ,EACjDnoO,EAAAj6B,GAAA92B,KAAA,IAAAs7R,EAAA90R,KAAAC,IAAAkpB,EAAAzI,EAAAgyQ,KAGAz6R,KAAAk6R,YAAA5nO,EAAAj6B,GAAAp3B,OAKA,IAFA,IA0FA4rB,EACAmsQ,EA3FA5+O,EAAA,IAAAvuC,MAAAuwR,GAEA97P,EAAA99B,EAAuB89B,EAAApP,EAAWoP,IAAA,CAElC8Z,EAAAwvD,EAAAqjE,QAAA3sI,EAAA8Z,GAOA,IAAAsgP,EAAA3yR,KAAAkwC,MAAA3X,EAAAm6P,GACAE,EAAAr6P,EAAAm6P,EAEA,IAAAhyQ,EAAA,EAAmBA,EAAA2zQ,EAAY3zQ,IAAA,CAC/B,IAAA4P,EACA2kQ,EAAA1qO,EADAj6B,EAAA0J,EAAAtZ,IACAiyQ,GAEAntR,EAAAvN,KAAAi8R,gBAAA7hP,EAAA/hB,EAAAiI,EAAA7X,GAEAu0Q,EAAArC,GAAAptR,EACA,IAAA0vR,EAAAV,EAAAlkQ,GAEA9qB,EAAA0vR,EAAA,KACAA,EAAA,GAAA1vR,GAGAA,EAAA0vR,EAAA,KACAA,EAAA,GAAA1vR,GAMA,IAAAq8F,EAAAkjE,KAAA,CACA,IAAAlqK,EAAAk5R,EAAAx7P,GAEA,GAAA8Z,GAAA,MAAAx3C,EAGA,SAAAw3C,EAAAx3C,KAGAk5R,EAAAx7P,GAAA19B,EAAAw3C,EAAAx3C,UACS,SAAAu5R,EAAA,CACT,IAAAe,EAAAn7P,EAAAo6P,GACAgB,EAAA7qO,EAAA4qO,GAAAxC,GAEA,GAAAyC,EAAA,CACAv6R,EAAAu6R,EAAAxC,GACA,IAAApsH,EAAA8tH,EAAAa,GAAA3uH,YAEAA,KAAA6C,WAAAnwK,SACA2B,EAAA2rK,EAAA6C,WAAAxuK,KAQA,IAAAlB,EAAA,MAAA04C,EAAA,KAAAA,EAAA14C,GAEA,MAAAA,GAAA,MAAAkB,IAEA45R,EAAA55R,GAAA45R,EAAA55R,IAAA,EACAlB,EAAAkB,EAEA45R,EAAA55R,GAAA,IACAlB,GAAA,SAAA86R,EAAA55R,IAGA45R,EAAA55R,MAGA,MAAAlB,IAAA46R,EAAAh8P,GAAA5+B,KAIAkoG,EAAAmjE,YAAAnjE,EAAA/pF,OAEA+pF,EAAA/pF,QAGA7f,KAAAw4R,UAAAx4R,KAAAu5R,OAAAroQ,EAEAlxB,KAAA44C,WAKAogP,GADAnsQ,EAHA7sB,MAIAs6R,oBACAzgQ,EAAA4E,KAAAu6P,EAAA,SAAAoE,EAAA/kQ,GACA,IAAA2J,EAAAnV,EAAAuhJ,gBAAA/1I,GAEAk2I,EAAAvsI,EAAAusI,YAEA,GAAAA,EAAA,CACA6uH,EAAApE,EAAA3gQ,GAAA,IAAA+/P,EAAA7pH,EAAA6C,WAAAnwK,QAGA,QAAAF,EAAA,EAAqBA,EAAAq8R,EAAAn8R,OAA4BF,IACjDq8R,EAAAr8R,GAAA0tK,IAGA,QAAA1tK,EAAA,EAAqBA,EAAA8rB,EAAA0sQ,OAAiBx4R,IAEtCq8R,EAAAvwQ,EAAA7oB,IAAAq0B,EAAAt3B,WAiCAw5R,EAAAh4R,MAAA,WACA,OAAAvC,KAAAu5R,QAGAgB,EAAA8C,WAAA,WACA,IACA3nN,EAAA11E,KAAAs5R,SAEA,GAAA5jN,EAAA,CACA,IAAAg2J,EAAAh2J,EAAAv1E,YACAm9R,EAAAt9R,KAAAu5R,OAEA,GAAA7tD,IAAA7/N,MAAA,CACA0xR,EAAA,IAAA7xD,EAAA4xD,GAEA,QAAAv8R,EAAA,EAAqBA,EAAAu8R,EAAev8R,IACpCw8R,EAAAx8R,GAAA20E,EAAA30E,QAGAw8R,EAAA,IAAA7xD,EAAAh2J,EAAAgP,OAAA,EAAA44M,OAGA,KACAC,EAAA,IADA7xD,EAAA6sD,EAAAv4R,OACAA,KAAAuC,SAEA,IAAAxB,EAAA,EAAmBA,EAAAw8R,EAAAt8R,OAAuBF,IAC1Cw8R,EAAAx8R,KAIA,OAAAw8R,GAWAhD,EAAAv2R,IAAA,SAAAq0B,EAAAiI,GAGA,KAAAA,GAAA,GAAAA,EAAAtgC,KAAAu5R,QACA,OAAA9qH,IAGA,IAAAn8G,EAAAtyD,KAAAw5R,SAEA,IAAAlnO,EAAAj6B,GAEA,OAAAo2I,IAGAnuI,EAAAtgC,KAAAupK,YAAAjpI,GACA,IAAAo6P,EAAA3yR,KAAAkwC,MAAA3X,EAAAtgC,KAAAi6R,YACAU,EAAAr6P,EAAAtgC,KAAAi6R,WAqBA,OApBA3nO,EAAAj6B,GAAAqiQ,GACAC,IA4BAJ,EAAAiD,cAAA,SAAAnlQ,EAAAolQ,GACA,KAAAA,GAAA,GAAAA,EAAAz9R,KAAAw4R,WACA,OAAA/pH,IAGA,IAAAivH,EAAA19R,KAAAw5R,SAAAnhQ,GAEA,IAAAqlQ,EAEA,OAAAjvH,IAGA,IAAAisH,EAAA3yR,KAAAkwC,MAAAwlP,EAAAz9R,KAAAi6R,YACAU,EAAA8C,EAAAz9R,KAAAi6R,WAEA,OADAyD,EAAAhD,GACAC,IASAJ,EAAAoD,SAAA,SAAAtlQ,EAAAolQ,GACA,IAAA/C,EAAA3yR,KAAAkwC,MAAAwlP,EAAAz9R,KAAAi6R,YACAU,EAAA8C,EAAAz9R,KAAAi6R,WAEA,OADAj6R,KAAAw5R,SAAAnhQ,GAAAqiQ,GACAC,IAUAJ,EAAAtgG,UAAA,SAAAl4J,EAAAzB,GAGA,IAAAlP,KAEAyI,EAAA/tB,QAAAi2B,KAEAzB,EAAAyB,EACAA,EAAA/hC,KAAA+hC,YAGA,QAAAhhC,EAAA,EAAAc,EAAAkgC,EAAA9gC,OAA0CF,EAAAc,EAASd,IACnDqwB,EAAA7vB,KAAAvB,KAAAgE,IAAA+9B,EAAAhhC,GAAAu/B,IAKA,OAAAlP,GAWAmpQ,EAAAl9G,SAAA,SAAA/8I,GAIA,IAHA,IAAAq7P,EAAA37R,KAAAq6R,mBAAAsB,gBACA7C,EAAA94R,KAAAouK,gBAEArtK,EAAA,EAAAc,EAAA85R,EAAA16R,OAA+CF,EAAAc,EAASd,IACxD,GACA,YAAA+3R,EAAA6C,EAAA56R,IAAAyC,MACAiH,MAAAzK,KAAAgE,IAAA23R,EAAA56R,GAAAu/B,IACA,SAIA,UASAi6P,EAAAhpE,cAAA,SAAAl5L,GAIAA,EAAAr4B,KAAA2iE,aAAAtqC,GACA,IAAAulQ,EAAA59R,KAAAw5R,SAAAnhQ,GACAwlQ,EAAAvC,IAEA,IAAAsC,EACA,OAAAC,EAIA,IAQAC,EARAC,EAAA/9R,KAAAuC,QAUA,IAJAvC,KAAAs5R,SAKA,OAAAt5R,KAAAm6R,WAAA9hQ,GAAA/1B,QAKA,GAFAw7R,EAAA99R,KAAA44C,QAAAvgB,GAGA,OAAAylQ,EAAAx7R,QAOA,IAHA,IAAA0F,GADA81R,EAAAD,GACA,GACA51R,EAAA61R,EAAA,GAEA/8R,EAAA,EAAiBA,EAAAg9R,EAAah9R,IAAA,CAE9B,IAAAwG,EAAAvH,KAAA29R,SAAAtlQ,EAAAr4B,KAAAupK,YAAAxoK,IAEAwG,EAAAS,MAAAT,GACAA,EAAAU,MAAAV,GAKA,OAFAu2R,GAAA91R,EAAAC,GACAjI,KAAA44C,QAAAvgB,GAAAylQ,EACAA,GAUAvD,EAAAjhP,qBAAA,SAAAjhB,GAIA,OADAA,EAAAr4B,KAAA2iE,aAAAtqC,GACAr4B,KAAAo6R,mBAAA/hQ,IAAAr4B,KAAAuxN,cAAAl5L,IAKAkiQ,EAAAyD,qBAAA,SAAAhjQ,EAAA3C,GAGAA,EAAAr4B,KAAA2iE,aAAAtqC,GACAr4B,KAAAo6R,mBAAA/hQ,GAAA2C,EAAA14B,SAQAi4R,EAAAh3P,mBAAA,SAAAx5B,GACA,OAAA/J,KAAA64R,iBAAA9uR,IAQAwwR,EAAA0D,mBAAA,SAAAl0R,EAAAxC,GACA3H,EAAAmK,GAAA8vB,EAAAnwB,OAAA1J,KAAA64R,iBAAA9uR,GAAA/J,KAAA64R,iBAAA9uR,GAAAxC,GAQAgzR,EAAA/oF,OAAA,SAAAn5K,GAGA,IACA/T,EAAA,EAEA,GAHAtkB,KAAAw5R,SAAAnhQ,GAIA,QAAAt3B,EAAA,EAAAc,EAAA7B,KAAAuC,QAAuCxB,EAAAc,EAASd,IAAA,CAChD,IAAAwG,EAAAvH,KAAAgE,IAAAq0B,EAAAt3B,GAIA0J,MAAAlD,KACA+c,GAAA/c,GAKA,OAAA+c,GAQAi2Q,EAAA2D,UAAA,SAAA7lQ,GAGA,IAAA8lQ,KAEAn+R,KAAAy+B,KAAApG,EAAA,SAAA9qB,EAAA+yB,GACA71B,MAAA8C,IACA4wR,EAAA58R,KAAAgM,KAMA,IAAA6wR,KAAArpR,OAAAopR,GAAA7oR,KAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAC,IAEA3T,EAAA7B,KAAAuC,QAEA,WAAAV,EAAA,EAAAA,EAAA,KAAAu8R,GAAAv8R,EAAA,OAAAu8R,EAAAv8R,EAAA,GAAAu8R,EAAAv8R,EAAA,SAmCA04R,EAAA8D,WAAA,SAAAhmQ,EAAA9wB,GACA,IACA8iL,GADAhyJ,GAAAr4B,KAAAs6R,oBAAAjiQ,IACA9wB,GAEA,aAAA8iL,GAAA5/K,MAAA4/K,IACA,EAGAA,GAUAkwG,EAAA+D,YAAA,SAAA17R,GACA,QAAA7B,EAAA,EAAAc,EAAA7B,KAAAuC,QAAqCxB,EAAAc,EAASd,IAC9C,GAAAf,KAAAmkE,QAAApjE,KAAA6B,EACA,OAAA7B,EAIA,UAUAw5R,EAAAtmO,gBAAA,SAAAo2H,GACA,IAAArqL,KAAAs5R,SACA,OAAAjvG,EAGA,GAAAA,GAAArqL,KAAAw4R,WAAAnuG,EAAA,EACA,SAIA,IAAA30G,EAAA11E,KAAAs5R,SAEAiF,EAAA7oN,EAAA20G,GAEA,SAAAk0G,KAAAv+R,KAAAu5R,QAAAgF,IAAAl0G,EACA,OAAAA,EAMA,IAHA,IAAAxkL,EAAA,EACAC,EAAA9F,KAAAu5R,OAAA,EAEA1zR,GAAAC,GAAA,CACA,IAAAgtM,GAAAjtM,EAAAC,GAAA,IAEA,GAAA4vE,EAAAo9H,GAAAzoB,EACAxkL,EAAAitM,EAAA,MACK,MAAAp9H,EAAAo9H,GAAAzoB,GAGL,OAAAyoB,EAFAhtM,EAAAgtM,EAAA,GAMA,UAWAynF,EAAA9S,iBAAA,SAAApvP,EAAA9wB,EAAAi3R,GACA,IAEAC,KAEA,IAJAz+R,KAAAw5R,SACAnhQ,GAIA,OAAAomQ,EAGA,MAAAD,IACAA,EAAA/kP,KAMA,IAHA,IAAA2tO,EAAArsQ,OAAAqtM,UACAi/D,GAAA,EAEAtmR,EAAA,EAAAc,EAAA7B,KAAAuC,QAAqCxB,EAAAc,EAASd,IAAA,CAC9C,IAAAujC,EAAA/8B,EAAAvH,KAAAgE,IAAAq0B,EAAAt3B,GAGA8yL,EAAA9rL,KAAAY,IAAA27B,GAEAA,GAAAk6P,GAAA3qG,GAAAuzF,KAIAvzF,EAAAuzF,GAAA9iP,GAAA,GAAA+iP,EAAA,KACAD,EAAAvzF,EACAwzF,EAAA/iP,EACAm6P,EAAAx9R,OAAA,GAGAw9R,EAAAl9R,KAAAR,IAIA,OAAA09R,GASAlE,EAAAhxH,YAAAsxH,EAoBAN,EAAAl4N,eAAA,SAAA/hC,GACA,GAAAtgC,KAAAquK,SAAAtB,WAUA,OAAA/sK,KAAAquK,SAAApB,QAAAjtK,KAAAupK,YAAAjpI,IAPA,IAFA,IAAA/yB,KAEAxM,EAAA,EAAmBA,EAAAf,KAAA+hC,WAAA9gC,OAA4BF,IAAA,CAC/C,IAAAs3B,EAAAr4B,KAAA+hC,WAAAhhC,GACAwM,EAAAhM,KAAAvB,KAAAgE,IAAAq0B,EAAAiI,IAGA,OAAA/yB,GAYAgtR,EAAAp2N,QAAA,SAAA7jC,GACA,IAAA+pJ,EAAArqL,KAAAupK,YAAAjpI,GACA,OAAAtgC,KAAAy5R,UAAApvG,IAAAmwG,EAAAx6R,UAAA28R,YAAAtyG,IAAA,IASAkwG,EAAAlxG,MAAA,SAAA/oJ,GACA,OAAA+oJ,EAAArpL,UAAAupK,YAAAjpI,KAgDAi6P,EAAA97P,KAAA,SAAA/tB,EAAA42D,EAAAxZ,EAAA4wO,GACA,aAEA,GAAA1+R,KAAAu5R,OAAA,CAIA,mBAAA7oR,IACAguR,EAAA5wO,EACAA,EAAAwZ,EACAA,EAAA52D,EACAA,MAIAo9C,KAAA4wO,GAAA1+R,KAIA,IAFA,IAAAosK,GADA17J,EAAAmpB,EAAAlpB,IAAAqqR,EAAAtqR,GAAA1Q,KAAA2iE,aAAA3iE,OACAiB,OAEAF,EAAA,EAAiBA,EAAAf,KAAAuC,QAAkBxB,IAEnC,OAAAqrK,GACA,OACA9kG,EAAA57D,KAAAoiD,EAAA/sD,GACA,MAEA,OACAumE,EAAA57D,KAAAoiD,EAAA9tD,KAAAgE,IAAA0M,EAAA,GAAA3P,MACA,MAEA,OACAumE,EAAA57D,KAAAoiD,EAAA9tD,KAAAgE,IAAA0M,EAAA,GAAA3P,GAAAf,KAAAgE,IAAA0M,EAAA,GAAA3P,MACA,MAEA,QAIA,IAHA,IAAA0nB,EAAA,EACAlhB,KAEckhB,EAAA2jJ,EAAa3jJ,IAC3BlhB,EAAAkhB,GAAAzoB,KAAAgE,IAAA0M,EAAA+X,GAAA1nB,GAIAwG,EAAAkhB,GAAA1nB,EACAumE,EAAA/6D,MAAAuhD,EAAAvmD,MAYAgzR,EAAA7W,WAAA,SAAA3hP,EAAAulC,EAAAxZ,EAAA4wO,GACA,aAEA,GAAA1+R,KAAAu5R,OAAA,CAIA,mBAAAx3P,IACA28P,EAAA5wO,EACAA,EAAAwZ,EACAA,EAAAvlC,EACAA,MAIA+rB,KAAA4wO,GAAA1+R,KACA+hC,EAAAlI,EAAAlpB,IAAAqqR,EAAAj5P,GAAA/hC,KAAA2iE,aAAA3iE,MASA,IARA,IAAAuC,EAAAvC,KAAAuC,QAEAg7R,EAAA,IADAhF,EAAAv4R,MACA,CAAAuC,GACAgF,KACA6kK,EAAArqI,EAAA9gC,OACAyhC,EAAA,EACAi8P,EAAA58P,EAAA,GAEAhhC,EAAA,EAAiBA,EAAAwB,EAAWxB,IAAA,CAC5B,IAAA69R,EACAnB,EAAAz9R,KAAAupK,YAAAxoK,GAEA,OAAAqrK,EACAwyH,EAAAt3N,EAAA57D,KAAAoiD,EAAA/sD,QACK,OAAAqrK,EAAA,CACL,IAAA7+J,EAAAvN,KAAA29R,SAAAgB,EAAAlB,GAEAmB,EAAAt3N,EAAA57D,KAAAoiD,EAAAvgD,EAAAxM,OACK,CACL,QAAA0nB,EAAA,EAAqBA,EAAA2jJ,EAAa3jJ,IAClClhB,EAAAkhB,GAAAzoB,KAAA29R,SAAAgB,EAAAlB,GAGAl2R,EAAAkhB,GAAA1nB,EACA69R,EAAAt3N,EAAA/6D,MAAAuhD,EAAAvmD,GAGAq3R,IACArB,EAAA76P,KAAA+6P,GAaA,OARA/6P,EAAAngC,IACAvC,KAAAs5R,SAAAiE,GAGAv9R,KAAAu5R,OAAA72P,EAEA1iC,KAAA44C,WACA54C,KAAAupK,YAAAvpK,KAAAs5R,SAAAwB,EAAAD,EACA76R,OAQAu6R,EAAAsE,YAAA,SAAAz+K,GACA,aAEA,GAAApgH,KAAAu5R,OAAA,CAIA,IAAAx3P,KAEA,QAAA1J,KAAA+nF,EACAA,EAAAv9G,eAAAw1B,IACA0J,EAAAxgC,KAAA82B,GAIA,IAAA+zI,EAAArqI,EAAA9gC,OAEA,GAAAmrK,EAAA,CAIA,IAAA0yH,EAAA9+R,KAAAuC,QAEAg7R,EAAA,IADAhF,EAAAv4R,MACA,CAAA8+R,GACAp8P,EAAA,EACAi8P,EAAA58P,EAAA,GACA/5B,EAAAo4G,EAAAu+K,GAAA,GACA12R,EAAAm4G,EAAAu+K,GAAA,GACAI,GAAA,EAEA,IAAA/+R,KAAAs5R,SAAA,CAEA,IAAAh5P,EAAA,EAEA,OAAA8rI,EAAA,CAGA,IAFA,IAAA4wH,EAAAh9R,KAAAw5R,SAAAz3P,EAAA,IAEAtZ,EAAA,EAAqBA,EAAAzoB,KAAAk6R,YAAsBzxQ,IAI3C,IAHA,IAAAu2Q,EAAAhC,EAAAv0Q,GACA5mB,EAAAkG,KAAAC,IAAAhI,KAAAu5R,OAAA9wQ,EAAAzoB,KAAAi6R,WAAAj6R,KAAAi6R,YAEAl5R,EAAA,EAAuBA,EAAAc,EAASd,IAAA,GAChCwM,EAAAyxR,EAAAj+R,KAMAiH,GAAAuF,GAAAtF,GAAAwC,MAAA8C,MACAgwR,EAAA76P,KAAApC,GAGAA,IAIAy+P,GAAA,OACK,OAAA3yH,EAAA,CACL4wH,EAAAh9R,KAAAw5R,SAAAmF,GAAA,IACAM,EAAAj/R,KAAAw5R,SAAAz3P,EAAA,IACAsmL,EAAAjoG,EAAAr+E,EAAA,OACAumL,EAAAloG,EAAAr+E,EAAA,OAEA,IAAAtZ,EAAA,EAAqBA,EAAAzoB,KAAAk6R,YAAsBzxQ,IAC3C,CAAAu2Q,EAAAhC,EAAAv0Q,GAAA,IACAy2Q,EAAAD,EAAAx2Q,GAGA,IAFA5mB,EAAAkG,KAAAC,IAAAhI,KAAAu5R,OAAA9wQ,EAAAzoB,KAAAi6R,WAAAj6R,KAAAi6R,YAEAl5R,EAAA,EAAuBA,EAAAc,EAASd,IAAA,CAChC,IAAAwM,EAAAyxR,EAAAj+R,GACAo+R,EAAAD,EAAAn+R,IAEAwM,GAAAvF,GAAAuF,GAAAtF,GAAAwC,MAAA8C,MAAA4xR,GAAA92E,GAAA82E,GAAA72E,GAAA79M,MAAA00R,MACA5B,EAAA76P,KAAApC,GAGAA,KAIAy+P,GAAA,GAIA,IAAAA,EACA,OAAA3yH,EACA,IAAArrK,EAAA,EAAqBA,EAAA+9R,EAAmB/9R,IAAA,CACxC,IAAAspL,EAAArqL,KAAAupK,YAAAxoK,KAEAwM,EAAAvN,KAAA29R,SAAAgB,EAAAt0G,KAGAriL,GAAAuF,GAAAtF,GAAAwC,MAAA8C,MACAgwR,EAAA76P,KAAA2nJ,QAIA,IAAAtpL,EAAA,EAAqBA,EAAA+9R,EAAmB/9R,IAAA,CACxC,IAAA69R,GAAA,EAGA,IAFAv0G,EAAArqL,KAAAupK,YAAAxoK,GAEA0nB,EAAA,EAAuBA,EAAA2jJ,EAAa3jJ,IAAA,CACpC,IAAA22Q,EAAAr9P,EAAAtZ,KAEAlb,EAAAvN,KAAA29R,SAAAtlQ,EAAAgyJ,IAGAjqE,EAAAg/K,GAAA,IAAA7xR,EAAA6yG,EAAAg/K,GAAA,MACAR,GAAA,GAIAA,IACArB,EAAA76P,KAAA1iC,KAAAupK,YAAAxoK,IAeA,OARA2hC,EAAAo8P,IACA9+R,KAAAs5R,SAAAiE,GAGAv9R,KAAAu5R,OAAA72P,EAEA1iC,KAAA44C,WACA54C,KAAAupK,YAAAvpK,KAAAs5R,SAAAwB,EAAAD,EACA76R,QAWAu6R,EAAAh7P,SAAA,SAAAwC,EAAAulC,EAAAxZ,EAAA4wO,GACA,aAEA,mBAAA38P,IACA28P,EAAA5wO,EACAA,EAAAwZ,EACAA,EAAAvlC,EACAA,MAIA+rB,KAAA4wO,GAAA1+R,KACA,IAAA+Q,KAIA,OAHA/Q,KAAAy+B,KAAAsD,EAAA,WACAhxB,EAAAxP,KAAA+lE,KAAA/6D,MAAAvM,KAAA8E,aACGgpD,GACH/8C,GAsDAwpR,EAAA5pR,IAAA,SAAAoxB,EAAAulC,EAAAxZ,EAAA4wO,GACA,aAEA5wO,KAAA4wO,GAAA1+R,KAEA,IAAA6sB,EAAAouQ,EAAAj7R,KADA+hC,EAAAlI,EAAAlpB,IAAAqqR,EAAAj5P,GAAA/hC,KAAA2iE,aAAA3iE,OAIA6sB,EAAAysQ,SAAAt5R,KAAAs5R,SACAzsQ,EAAA08I,YAAA18I,EAAAysQ,SAAAwB,EAAAD,EASA,IARA,IAAAvoO,EAAAzlC,EAAA2sQ,SACA6F,KACA5E,EAAAz6R,KAAAi6R,WACA7tH,EAAArqI,EAAA9gC,OACAq+R,EAAAt/R,KAAAuC,QACA6uB,KACAmrQ,EAAA1vQ,EAAAstQ,WAEA/7P,EAAA,EAAyBA,EAAAkhQ,EAAuBlhQ,IAAA,CAChD,QAAAhG,EAAA,EAA0BA,EAAAg0I,EAAoBh0I,IAC9ChH,EAAAgH,GAAAp4B,KAAAgE,IAAA+9B,EAAA3J,GAAAgG,GAKAhN,EAAAg7I,GAAAhuI,EACA,IAAAmhQ,EAAAj4N,KAAA/6D,MAAAuhD,EAAA18B,GAEA,SAAAmuQ,EAAA,CAEA,iBAAAA,IACAF,EAAA,GAAAE,EACAA,EAAAF,GAOA,IAJA,IAAAh1G,EAAArqL,KAAAupK,YAAAnrI,GACAs8P,EAAA3yR,KAAAkwC,MAAAoyI,EAAAowG,GACAE,EAAAtwG,EAAAowG,EAEA15R,EAAA,EAAqBA,EAAAw+R,EAAAt+R,OAAqBF,IAAA,CAC1C,IAAAs3B,EAAA0J,EAAAhhC,GACAwM,EAAAgyR,EAAAx+R,GACAy+R,EAAAjD,EAAAlkQ,GACAqlQ,EAAAprO,EAAAj6B,GAEAqlQ,IACAA,EAAAhD,GAAAC,GAAAptR,GAGAA,EAAAiyR,EAAA,KACAA,EAAA,GAAAjyR,GAGAA,EAAAiyR,EAAA,KACAA,EAAA,GAAAjyR,KAMA,OAAAsf,GAWA0tQ,EAAAv9G,WAAA,SAAAzsK,EAAA40J,EAAAs6H,EAAAnoM,GAYA,IAXA,IAAAzqE,EAAAouQ,EAAAj7R,MAAAuQ,IACAmvR,EAAA7yQ,EAAA2sQ,SACAmG,KACAC,EAAA73R,KAAAkwC,MAAA,EAAAktH,GACAu4H,EAAAgC,EAAAnvR,GACA1O,EAAA7B,KAAAuC,QACAk4R,EAAAz6R,KAAAi6R,WACAuF,EAAA3yQ,EAAAstQ,WAAA5pR,GACAgtR,EAAA,IAAAhF,EAAAv4R,MAAA,CAAA6B,GACA6gC,EAAA,EAEA3hC,EAAA,EAAiBA,EAAAc,EAASd,GAAA6+R,EAAA,CAE1BA,EAAA/9R,EAAAd,IACA6+R,EAAA/9R,EAAAd,EACA4+R,EAAA1+R,OAAA2+R,GAGA,QAAAn3Q,EAAA,EAAmBA,EAAAm3Q,EAAen3Q,IAAA,CAClC,IAAAo3Q,EAAA7/R,KAAAupK,YAAAxoK,EAAA0nB,GACAq3Q,EAAA/3R,KAAAkwC,MAAA4nP,EAAApF,GACAsF,EAAAF,EAAApF,EACAkF,EAAAl3Q,GAAAi1Q,EAAAoC,GAAAC,GAGA,IAAAx4R,EAAAk4R,EAAAE,GACAK,EAAAhgS,KAAAupK,YAAAxhK,KAAAC,IAAAjH,EAAAu2F,EAAAqoM,EAAAp4R,IAAA,EAAA1F,EAAA,IAEAo+R,EAAAD,EAAAvF,EAEAiD,EAHA31R,KAAAkwC,MAAA+nP,EAAAvF,IAGAwF,GAAA14R,EAEAA,EAAAi4R,EAAA,KACAA,EAAA,GAAAj4R,GAGAA,EAAAi4R,EAAA,KACAA,EAAA,GAAAj4R,GAGAg2R,EAAA76P,KAAAs9P,EAMA,OAHAnzQ,EAAA0sQ,OAAA72P,EACA7V,EAAAysQ,SAAAiE,EACA1wQ,EAAA08I,YAAAuxH,EACAjuQ,GAUA0tQ,EAAAp1N,aAAA,SAAA7kC,GACA,IAAA+D,EAAArkC,KAAAqkC,UACA,WAAAsgJ,EAAA3kL,KAAAqiE,eAAA/hC,GAAA+D,OAAA1gC,UASA42R,EAAAj2P,KAAA,SAAA47P,GACA,IAAAC,EAAAngS,KACA,WAAAurE,EAAA20N,IAAA7C,gBAAAr9R,KAAAq9R,aAAA,SAAA/8P,GACA,OAAA+oJ,EAAA62G,EAAA5/P,IACG,SAAAA,GACH,OAAA+oJ,EAAA82G,EAAA7/P,MASAi6P,EAAA54P,UAAA,SAAA53B,GACA,IAAAw3D,EAAAvhE,KAAA45R,QACA,OAAAr4N,KAAAx3D,IAeAwwR,EAAAv4N,UAAA,SAAAj4D,EAAAwD,GACA,GAAA3N,EAAAmK,GACA,QAAAnH,KAAAmH,EACAA,EAAAlH,eAAAD,IACA5C,KAAAgiE,UAAAp/D,EAAAmH,EAAAnH,SAOA5C,KAAA45R,QAAA55R,KAAA45R,YACA55R,KAAA45R,QAAA7vR,GAAAwD,GASAgtR,EAAA7wG,UAAA,SAAA3/K,EAAAwD,GACA,GAAA3N,EAAAmK,GACA,QAAAnH,KAAAmH,EACAA,EAAAlH,eAAAD,IACA5C,KAAA0pL,UAAA9mL,EAAAmH,EAAAnH,SAOA5C,KAAAqrM,QAAAthM,GAAAwD,GASAgtR,EAAA3wG,UAAA,SAAA7/K,GACA,OAAA/J,KAAAqrM,QAAAthM,IAQAwwR,EAAA/6P,cAAA,SAAAc,GACA,OAAAtgC,KAAA+5R,aAAAz5P,IAUAi6P,EAAA5wG,cAAA,SAAArpJ,EAAAhJ,EAAAq5C,GACA3wE,KAAA+5R,aAAAz5P,GAAAqwC,EAAA92C,EAAAnwB,OAAA1J,KAAA+5R,aAAAz5P,OAA6EhJ,MAO7EijQ,EAAA/vG,iBAAA,WACAxqL,KAAA+5R,aAAA94R,OAAA,GAUAs5R,EAAArmO,cAAA,SAAA5zB,EAAAv2B,EAAAkgL,GACA,IAAAm2G,EAAApgS,KAAA65R,aAAAv5P,GACA/yB,EAAA6yR,KAAAr2R,GAEA,aAAAwD,GAAA08K,EAKA18K,EAHAvN,KAAA2hC,UAAA53B,IAoBAwwR,EAAAt4N,cAAA,SAAA3hC,EAAAv2B,EAAAxC,GACA,IAAA64R,EAAApgS,KAAA65R,aAAAv5P,OACAw5P,EAAA95R,KAAA85R,cAGA,GAFA95R,KAAA65R,aAAAv5P,GAAA8/P,EAEAxgS,EAAAmK,GACA,QAAAnH,KAAAmH,EACAA,EAAAlH,eAAAD,KACAw9R,EAAAx9R,GAAAmH,EAAAnH,GACAk3R,EAAAl3R,IAAA,QAOAw9R,EAAAr2R,GAAAxC,EACAuyR,EAAA/vR,IAAA,GAOAwwR,EAAAnmD,eAAA,WACAp0O,KAAA45R,WACA55R,KAAA65R,gBACA75R,KAAA85R,kBAGA,IAAAuG,EAAA,SAAA/zP,GACAA,EAAAna,YAAAnyB,KAAAmyB,YACAma,EAAAlO,UAAAp+B,KAAAo+B,UACAkO,EAAAjqB,SAAAriB,KAAAqiB,UASAk4Q,EAAA15P,iBAAA,SAAAP,EAAA7/B,GACA,IAAA4jC,EAAArkC,KAAAqkC,UAEA5jC,IAGAA,EAAA29B,UAAAkC,EACA7/B,EAAA4hB,SAAAriB,KAAAqiB,SACA5hB,EAAA0xB,YAAAkS,KAAAlS,YAEA,UAAA1xB,EAAA+C,MACA/C,EAAAk4D,SAAA0nO,EAAA5/R,IAIAT,KAAAg6R,YAAA15P,GAAA7/B,GAQA85R,EAAAz2P,iBAAA,SAAAxD,GACA,OAAAtgC,KAAAg6R,YAAA15P,IAQAi6P,EAAA55P,kBAAA,SAAA2mC,EAAAxZ,GACAj0B,EAAA4E,KAAAz+B,KAAAg6R,YAAA,SAAAv5R,EAAA6/B,GACA7/B,GACA6mE,KAAA57D,KAAAoiD,EAAArtD,EAAA6/B,MAUAi6P,EAAA+F,aAAA,SAAAzzQ,GACA,IAAAA,EAAA,CACA,IAAA0zQ,EAAA1mQ,EAAAlpB,IAAA3Q,KAAA+hC,WAAA/hC,KAAAiiC,iBAAAjiC,MACA6sB,EAAA,IAAA43J,EAAA87G,EAAAvgS,KAAAqkC,WAOA,GAHAxX,EAAA2sQ,SAAAx5R,KAAAw5R,SACAb,EAAA9rQ,EAAA7sB,MAEAA,KAAAs5R,SAAA,CACA,IAAA5tD,EAAA1rO,KAAAs5R,SAAAn5R,YACA0sB,EAAAysQ,SAAA,IAAA5tD,EAAA1rO,KAAAs5R,eAEAzsQ,EAAAysQ,SAAA,KAIA,OADAzsQ,EAAA08I,YAAA18I,EAAAysQ,SAAAwB,EAAAD,EACAhuQ,GASA0tQ,EAAA90G,WAAA,SAAAh+I,EAAA+4P,GACA,IAAAC,EAAAzgS,KAAAynC,GAEA,mBAAAg5P,IAIAzgS,KAAA44R,iBAAA54R,KAAA44R,qBAEA54R,KAAA44R,iBAAAr3R,KAAAkmC,GAEAznC,KAAAynC,GAAA,WACA,IAAAr4B,EAAAqxR,EAAAl0R,MAAAvM,KAAA8E,WACA,OAAA07R,EAAAj0R,MAAAvM,MAAAoP,GAAA2F,OAAA8kB,EAAAv3B,MAAAwC,gBAMAy1R,EAAAmG,sBAAA,mCAEAnG,EAAAoG,mBAAA,4BACA,IAAA19R,EAAAwhL,EACAvhL,EAAAC,QAAAF,sBCp1DAE,EAAAy9R,UApDA,SAAA/lP,EAAA14C,EAAAm2O,GAKA,IAJA,IAEAp/K,EAFAosH,GAAAzqI,GACApW,KAGAy0B,EAAAosH,EAAAxuH,OAIA,GAFAryB,EAAAljC,KAAA23D,GAEAA,EAAA6wH,SAAA,CACA,IAAAxB,EAAArvH,EAAAqvH,SAEA,GAAAA,EAAAtnL,OACA,QAAAF,EAAA,EAAuBA,EAAAwnL,EAAAtnL,OAAqBF,IAC5CukL,EAAA/jL,KAAAgnL,EAAAxnL,IAMA,KAAAm4D,EAAAz0B,EAAAqyB,OAEA30D,EAAA+2D,EAAAo/K,IA+BAn1O,EAAA09R,WArBA,SAAAhmP,EAAA14C,GAIA,IAHA,IACA+2D,EADAosH,GAAAzqI,GAGAqe,EAAAosH,EAAAxuH,OAIA,GAFA30D,EAAA+2D,GAEAA,EAAA6wH,SAAA,CACA,IAAAxB,EAAArvH,EAAAqvH,SAEA,GAAAA,EAAAtnL,OACA,QAAAF,EAAAwnL,EAAAtnL,OAAA,EAAyCF,GAAA,EAAQA,IACjDukL,EAAA/jL,KAAAgnL,EAAAxnL,4BCrEA,IAAA84B,EAAat6B,EAAQ,QAErBsnC,EAAmBtnC,EAAQ,QAE3Bw0M,EAAmBx0M,EAAQ,QAE3B2nC,EAAW3nC,EAAQ,QA6BnBuhS,GA3BgBvhS,EAAQ,QAELA,EAAQ,QAETA,EAAQ,QAEJA,EAAQ,SAiC9B,SAAAuvM,EAAAlsM,EAAA+N,EAAAmtD,EAAAx0C,EAAA8mL,GACAlpK,EAAAx7B,KAAA1L,KAAA4C,GAMA5C,KAAA2Q,MACA3Q,KAAA+gS,cAAAlnQ,EAAAk7B,gBACA/0D,KAAAghS,YAAAljO,EAAAx0C,EAAA8mL,GA2KA,SAAA5oK,EAAAC,EAAA9jC,EAAA+jC,EAAAngC,GACA,IAAAynM,EAAAtnK,EAAAsnK,SACAxzK,EAAAkM,EAAAlM,YACAH,EAAA2zK,IAAA3gL,iBAAAmN,IAAAnN,mBACAmN,EAAAivC,uBAAA,eAAwDp8C,iBAAA,KACxD,OAAAgN,IAAAr7B,KAAAq7B,EAAAoM,GAAAlgC,GAAA,KA7KAunM,EAAA5uM,WACAC,YAAA2uM,EACAtrM,KAAA,MAMAu+B,YAAA,aAOAk/P,aAAA,SAAA7+P,GAGA,IAFA,IAAAypJ,EAAA7rL,KAAA6rL,QAEA9qL,EAAA,EAAmBA,EAAA8qL,EAAA5qL,OAAoBF,IACvC,GAAA8qL,EAAA9qL,GAAA2pC,QAAAtI,GACA,SAIA,UAUA4+P,YAAA,SAAAljO,EAAAx0C,EAAA8mL,GAEA,IACApwM,KAAA6rL,QAAA/tH,EAAAi2I,EAAAj2I,MACK,MAAA35D,GACL,gCAAAA,EAAA27D,QAGAx2C,QACA8mL,QAIA,IAHA,IAAAvkB,EAAA7rL,KAAA6rL,QACAq1G,EAAArnQ,EAAAk7B,gBAEAh0D,EAAA,EAAmBA,EAAA8qL,EAAA5qL,OAAoBF,IAAA,CACvC,IAAAogS,EAAAt1G,EAAA9qL,GAAA6B,KAEAu+R,EAAA/wF,EAAAvtM,eAAAs+R,GAAA/wF,EAAA+wF,KACAt1G,EAAA9qL,GAAA6B,KAAAu+R,EACAD,EAAAl8O,IAAAm8O,EAAAt1G,EAAA9qL,IAEAf,KAAAsvM,YAAA6xF,EAAAt1G,EAAA9qL,GAAA+iB,QAGA,IAAAs9Q,EAAA93Q,EAAA63Q,GAEAC,GACAv1G,EAAA9qL,GAAAinC,YAAAo5P,EAAAv7R,KAAAu7R,EAAApvR,IAAAovR,EAAApoR,MAAAooR,EAAAnoR,QAIAjZ,KAAAqhS,YAAAH,EACAlhS,KAAA6nC,MAAA,KACAhO,EAAA4E,KAAAqiQ,EAAA,SAAAQ,GACAA,EAAAthS,OACKA,OAGLgoC,YAAA,SAAA3jC,EAAAE,EAAAyU,EAAAC,GACA,IAAAivB,EAAAloC,KAAA8nC,mBACAI,IAAA8B,SAEAzlC,GAAA2jC,EAAA3jC,EAAA2jC,EAAAjvB,OACA,IAAAqwB,EAAAtpC,KAAAqnC,kBACAiC,EAAArR,UAAAiQ,EAAAE,mBAAA,IAAAvB,EAAAxiC,EAAAE,EAAAyU,EAAAC,IACAqwB,EAAAjB,qBACA,IAAA92B,EAAA+3B,EAAA/3B,MACAA,EAAA,IAAAA,EAAA,GACA+3B,EAAAE,kBAEAxpC,KAAAsoC,oBAOAi5P,UAAA,SAAA3+R,GACA,OAAA5C,KAAAqhS,YAAAr9R,IAAApB,IAEA4+R,iBAAA,SAAAp/P,GAGA,IAFA,IAAAypJ,EAAA7rL,KAAA6rL,QAEA9qL,EAAA,EAAmBA,EAAA8qL,EAAA5qL,OAAoBF,IACvC,GAAA8qL,EAAA9qL,GAAA2pC,QAAAtI,GACA,OAAAypJ,EAAA9qL,IAUAuuM,YAAA,SAAA1sM,EAAAgpL,GACA5rL,KAAA+gS,cAAA/7O,IAAApiD,EAAAgpL,IAQA61G,YAAA,SAAA7+R,GACA,OAAA5C,KAAA+gS,cAAA/8R,IAAApB,IAGAklC,gBAAA,WACA,GAAA9nC,KAAA6nC,MACA,OAAA7nC,KAAA6nC,MAMA,IAHA,IAAAK,EACA2jJ,EAAA7rL,KAAA6rL,QAEA9qL,EAAA,EAAmBA,EAAA8qL,EAAA5qL,OAAoBF,IAAA,CACvC,IAAA2gS,EAAA71G,EAAA9qL,GAAA+mC,mBACAI,KAAAw5P,EAAA13P,SACAqpI,MAAAquH,GAIA,OAAA1hS,KAAA6nC,MAAAK,GAAA,IAAArB,EAAA,UASAoD,YAAA,SAAAn5B,EAAAo5B,EAAAC,GAMA,GALA,iBAAAr5B,IAEAA,EAAA9Q,KAAAyhS,YAAA3wR,IAGAA,EACA,OAAAo2B,EAAAhnC,UAAA+pC,YAAAv+B,KAAA1L,KAAA8Q,EAAAo5B,EAAAC,IAOAG,eAAAzQ,EAAA0Q,MAAA/C,EAAA,eAKAgD,iBAAA3Q,EAAA0Q,MAAA/C,EAAA,gBAEA3N,EAAA8N,MAAAmnK,EAAA5nK,GAUA,IAAAjkC,EAAA6rM,EACA5rM,EAAAC,QAAAF,sBCvJA,SAAA0+R,EAAAzpI,EAAAvB,GACA,IAAAk9B,EAAA37B,EAAAvB,GAAAuB,EAAA,EAAAvB,GAGA,OACAv9H,KAAArxB,KAAAY,IAAAkrL,GACA4rB,KAAA5rB,EAAA,KAAAA,EAAA,IAAAl9B,GAAA,KAIA,SAAAirI,EAAAr6R,EAAAmC,GACA,OAAA3B,KAAAC,IAAA0B,EAAA,GAAA3B,KAAAE,IAAAyB,EAAA,GAAAnC,IAGArE,EAAAC,QA3DA,SAAA+0B,EAAAggI,EAAAl9H,EAAA27H,EAAA09D,EAAAC,GAEAp8D,EAAA,GAAA0pI,EAAA1pI,EAAA,GAAAl9H,GACAk9H,EAAA,GAAA0pI,EAAA1pI,EAAA,GAAAl9H,GACA9C,KAAA,EACA,IAAA2pQ,EAAA7mQ,EAAA,GAAAA,EAAA,GAEA,MAAAq5L,IACAA,EAAAutE,EAAAvtE,GAAA,EAAAwtE,KAGA,MAAAvtE,IACAA,EAAAvsN,KAAAE,IAAAqsN,EAAA,MAAAD,IAAA,IAGA,QAAA19D,IACA09D,EAAAC,EAAAvsN,KAAAY,IAAAuvJ,EAAA,GAAAA,EAAA,IACAvB,EAAA,GAGA,IAAAmrI,EAAAH,EAAAzpI,EAAAvB,GACAuB,EAAAvB,IAAAz+H,EAEA,IAAA6pQ,EAAA1tE,GAAA,EACA2tE,EAAAhnQ,EAAA14B,QACAw/R,EAAAriF,KAAA,EAAAuiF,EAAA,IAAAD,EAAAC,EAAA,IAAAD,EACA7pI,EAAAvB,GAAAirI,EAAA1pI,EAAAvB,GAAAqrI,GAEA,IAAAC,EAAAN,EAAAzpI,EAAAvB,GAcA,OAZA,MAAA09D,IAAA4tE,EAAAxiF,OAAAqiF,EAAAriF,MAAAwiF,EAAA7oQ,KAAAi7L,KAEAn8D,EAAA,EAAAvB,GAAAuB,EAAAvB,GAAAmrI,EAAAriF,KAAA4U,GAIA4tE,EAAAN,EAAAzpI,EAAAvB,GAEA,MAAA29D,GAAA2tE,EAAA7oQ,KAAAk7L,IACAp8D,EAAA,EAAAvB,GAAAuB,EAAAvB,GAAAsrI,EAAAxiF,KAAA6U,GAGAp8D,yBClFA,IAAAz4J,EAAYF,EAAQ,QAEpB06M,EAAAx6M,EAAAw6M,UACAV,EAAA95M,EAAA85M,UACA96K,EAAAh/B,EAAAg/B,KACAmtK,EAAAnsM,EAAAmsM,kBACAlsM,EAAAD,EAAAC,SACAE,EAAAH,EAAAG,SAEAirC,EAAkBtrC,EAAQ,QAE1B2iS,EAAsB3iS,EAAQ,QAE9B4iS,EAAkB5iS,EAAQ,QAE1B6iS,EAAgB7iS,EAAQ,QAGxB8iS,GACAx8R,KAAA,EACAC,MAAA,EACAge,OAAA,GAEAw+Q,GACAtwR,IAAA,EACA8C,OAAA,EACA8oB,OAAA,GAaA,SAAA2kQ,EAAAhqR,GACA,GAAAA,EAAA,CACAA,EAAAm8B,KAAA7J,EAAA23P,SAAAjqR,GACA,IAAAm9B,EAAAn9B,EAAAm9B,UACA,WAAAA,MAAA,UACAn9B,EAAAm9B,UAAA,MAAAA,GAAA2sP,EAAA3sP,KAAA,OAEA,IAAAC,EAAAp9B,EAAAo9B,mBAAAp9B,EAAA2jN,aACA,WAAAvmL,MAAA,UACAp9B,EAAAo9B,kBAAA,MAAAA,GAAA2sP,EAAA3sP,KAAA,MACAp9B,EAAAkqR,cAGAlqR,EAAAkqR,YAAA72F,EAAArzL,EAAAkqR,eAmKA,SAAAC,EAAA78P,EAAAttB,EAAA2vB,EAAA7jC,EAAAE,GAEA,GAAA2jC,GAAA3vB,EAAA2rL,aAAA,CACA,IAAA96J,EAAA7wB,EAAA4rL,WAEA,WAAA/6J,GACA/kC,EAAA6jC,EAAAlvB,MAAA,EAAAkvB,EAAA7jC,EACAE,EAAA2jC,EAAAjvB,OAAA,EAAAivB,EAAA3jC,GACK6kC,IACL/kC,EAAA+kC,EAAA,GAAAlB,EAAA7jC,EACAE,EAAA6kC,EAAA,GAAAlB,EAAA3jC,GAGAshC,EAAAsnL,UAAA9oN,EAAAE,GAEAshC,EAAA4iI,QAAAlwJ,EAAA2rL,cACAr+J,EAAAsnL,WAAA9oN,GAAAE,IAIA,SAAAo+R,EAAAC,EAAA/8P,EAAAg6B,EAAAtnD,EAAAsqR,EAAAC,EAAAz+R,EAAAqxC,GACA,IAAAqtP,EAAAxqR,EAAA68B,KAAAyqB,EAAAuuH,eAGAz4I,EAAAkqB,EAAAlqB,kBACApxC,EAAAu+R,EAAAD,EAAA,EAEA,QAAAltP,EACApxC,EAAAu+R,EAAAjjO,EAAA5mD,OAAA,EACG,WAAA08B,IACHpxC,EAAAu+R,EAAAD,EAAAhjO,EAAA5mD,OAAA,IAGA4mD,EAAAmjO,cAAAC,EAAAF,IAAAG,EAAAN,EAAA/8P,EAAAk9P,EAAA,UAAArtP,EAAArxC,EAAAw7D,EAAA7mD,MAAA,WAAA08B,EAAArxC,EAAAw7D,EAAA7mD,MAAA,EAAA3U,EAAAE,EAAAs7D,EAAA5mD,OAAA,EAAA4mD,EAAA7mD,MAAA6mD,EAAA5mD,QACA,IAAAwpR,EAAA5iO,EAAA4iO,YAEAA,IACAp+R,EAAA8+R,EAAA9+R,EAAAqxC,EAAA+sP,GACAl+R,GAAAs7D,EAAA5mD,OAAA,EAAAwpR,EAAA,GAAA5iO,EAAAujO,WAAA,GAGAC,EAAAx9P,EAAA,aAAA0zK,EAAAwpF,EAAAx9P,eAAAhtB,EAAAgtB,eAAA,IACA89P,EAAAx9P,EAAA,cAAAk9P,EAAAO,iBAAA/qR,EAAA+qR,iBAAA,eACAD,EAAAx9P,EAAA,gBAAA0zK,EAAAwpF,EAAAv9P,kBAAAjtB,EAAAitB,kBAAA,IACA69P,EAAAx9P,EAAA,gBAAA0zK,EAAAwpF,EAAAt9P,kBAAAltB,EAAAktB,kBAAA,IACA49P,EAAAx9P,EAAA,YAAA6P,GAGA2tP,EAAAx9P,EAAA,yBACAw9P,EAAAx9P,EAAA,OAAAg6B,EAAAnrB,MAAA7J,EAAA04P,cACA,IAAAhsP,EAAAisP,EAAAT,EAAAxrP,YAAAh/B,EAAAg/B,WAAAksP,GACAnsP,EAAAosP,EAAAX,EAAAzrP,UAAA/+B,EAAA++B,UACAmsP,EAAAxpF,EAAA8oF,EAAAU,gBAAAlrR,EAAAkrR,iBAEAlsP,IACA8rP,EAAAx9P,EAAA,YAAA49P,GACAJ,EAAAx9P,EAAA,cAAA0R,GACA1R,EAAA89P,WAAA9jO,EAAAxuB,KAAAhtC,EAAAE,IAGA+yC,IACA+rP,EAAAx9P,EAAA,YAAAyR,GACAzR,EAAA+9P,SAAA/jO,EAAAxuB,KAAAhtC,EAAAE,IAIA,SAAA0+R,EAAA1qR,GACA,OAAAA,EAAAsrR,qBAAAtrR,EAAAurR,iBAAAvrR,EAAAwrR,gBAKA,SAAAb,EAAAN,EAAA/8P,EAAAttB,EAAAlU,EAAAE,EAAAyU,EAAAC,GACA,IAAA4qR,EAAAtrR,EAAAsrR,oBACAC,EAAAvrR,EAAAurR,gBACAC,EAAAxrR,EAAAwrR,gBACAC,EAAAtkS,EAAAmkS,GAMA,GALAR,EAAAx9P,EAAA,aAAAttB,EAAAmtB,mBAAA,GACA29P,EAAAx9P,EAAA,cAAAttB,EAAA0rR,oBAAA,eACAZ,EAAAx9P,EAAA,gBAAAttB,EAAAotB,sBAAA,GACA09P,EAAAx9P,EAAA,gBAAAttB,EAAAqtB,sBAAA,GAEAo+P,GAAAF,GAAAC,EAAA,CACAl+P,EAAA4J,YACA,IAAAy0P,EAAA3rR,EAAA2rR,iBAEAA,EAGAhC,EAAAxyP,UAAA7J,GACAxhC,IACAE,IACAyU,QACAC,SACAxB,EAAAysR,IAPAr+P,EAAAqC,KAAA7jC,EAAAE,EAAAyU,EAAAC,GAWA4sB,EAAA43I,YAGA,GAAAumH,EACAX,EAAAx9P,EAAA,YAAAg+P,GACAh+P,EAAAnuB,YACG,GAAA9X,EAAAikS,GAAA,CACH,IAAA/xP,EAAA+xP,EAAA/xP,OACAA,EAAAqwP,EAAAgC,oBAAAryP,EAAA,KAAA8wP,EAAAwB,EAAAP,KAEA1B,EAAAkC,aAAAvyP,IACAjM,EAAAqxI,UAAAplI,EAAAztC,EAAAE,EAAAyU,EAAAC,GAIA6qR,GAAAC,IACAV,EAAAx9P,EAAA,YAAAi+P,GACAT,EAAAx9P,EAAA,cAAAk+P,GACAl+P,EAAA3C,UAIA,SAAAkhQ,EAAAtyP,EAAA+xP,GAGAA,EAAA/xP,QAGA,SAAAwyP,EAAAC,EAAAhsR,EAAA2vB,GACA,IAAAs8P,EAAAjsR,EAAAlU,GAAA,EACAogS,EAAAlsR,EAAAhU,GAAA,EACAmxC,EAAAn9B,EAAAm9B,UACAC,EAAAp9B,EAAAo9B,kBAEA,GAAAzN,EAAA,CACA,IAAAkO,EAAA79B,EAAA69B,aAEA,GAAAA,aAAAvqC,MAEA24R,EAAAt8P,EAAA7jC,EAAAqoC,EAAA0J,EAAA,GAAAlO,EAAAlvB,OACAyrR,EAAAv8P,EAAA3jC,EAAAmoC,EAAA0J,EAAA,GAAAlO,EAAAjvB,YACK,CACL,IAAA7J,EAAAy7B,EAAA0L,yBAAAH,EAAAlO,EAAA3vB,EAAA+9B,cACAkuP,EAAAp1R,EAAA/K,EACAogS,EAAAr1R,EAAA7K,EAEAmxC,KAAAtmC,EAAAsmC,UACAC,KAAAvmC,EAAAumC,kBAKA,IAAA+uP,EAAAnsR,EAAAmsR,WAEAA,IACAF,GAAAE,EAAA,GACAD,GAAAC,EAAA,IAIA,OACAF,QACAC,QACA/uP,YACAC,qBAIA,SAAA0tP,EAAAx9P,EAAA/kC,EAAAyG,GAEA,OADAs+B,EAAA/kC,GAAAshS,EAAAv8P,EAAA/kC,EAAAyG,GACAs+B,EAAA/kC,GASA,SAAA0iS,EAAAtgQ,EAAAnG,GACA,aAAAmG,GAAAnG,GAAA,mBAAAmG,GAAA,SAAAA,EAAA,KACAA,EAAA4O,OAAA5O,EAAAhB,WAAA,OAAAgB,EAGA,SAAAwgQ,EAAAhsR,GACA,aAAAA,GAAA,SAAAA,EAAA,KACAA,EAAAo6B,OAAAp6B,EAAAwqB,WAAA,OAAAxqB,EAGA,SAAAg1B,EAAAnlC,EAAAolC,GACA,uBAAAplC,EACAA,EAAAqlC,YAAA,QACApnB,WAAAje,GAAA,IAAAolC,EAGAnnB,WAAAje,GAGAA,EAGA,SAAA47R,EAAA9+R,EAAAqxC,EAAA+sP,GACA,gBAAA/sP,EAAArxC,EAAAo+R,EAAA,cAAA/sP,EAAArxC,EAAAo+R,EAAA,KAAAA,EAAA,KAAAp+R,EAAAo+R,EAAA,GAaAt/R,EAAAgyC,mBA3YA,SAAA58B,GAGA,OAFAgqR,EAAAhqR,GACAkmB,EAAAlmB,EAAA68B,KAAAmtP,GACAhqR,GAyYApV,EAAAwhS,WA5WA,SAAA/B,EAAA/8P,EAAAwL,EAAA94B,EAAA2vB,GACA3vB,EAAA68B,KAyEA,SAAAwtP,EAAA/8P,EAAAwL,EAAA94B,EAAA2vB,GACA,IAAAmN,EAAAutP,EAAAgC,kBAEAvvP,IAAAutP,EAAA1tP,UACAG,EAAAutP,EAAAgC,kBAAA/5P,EAAAyK,cAAAjE,EAAA94B,IAMA,SAAAqqR,EAAA/8P,EAAAwP,EAAA98B,EAAA2vB,GACA,IAAA28P,EAAAxvP,EAAAr8B,MACAkL,EAAAmxB,EAAAnxB,WACA4gR,EAAAzvP,EAAAyvP,YACArC,EAAAlqR,EAAAkqR,YACAsC,EAAAT,EAAAQ,EAAAvsR,EAAA2vB,GACAs8P,EAAAO,EAAAP,MACAC,EAAAM,EAAAN,MACA/uP,EAAAqvP,EAAArvP,UACAC,EAAAovP,EAAApvP,kBAEA+sP,EAAA78P,EAAAttB,EAAA2vB,EAAAs8P,EAAAC,GACA,IAAAO,EAAAn6P,EAAA2L,YAAAguP,EAAAtgR,EAAAwxB,GACAuvP,EAAAp6P,EAAA4L,YAAAguP,EAAAK,EAAAnvP,GACAuvP,EAAAF,EACAlC,EAAAmC,EAEAxC,IACAyC,GAAAzC,EAAA,GACAK,GAAAL,EAAA,IAGA,IAAA0C,EAAAD,EAAAL,EACA5B,EAAA1qR,IAAA2qR,EAAAN,EAAA/8P,EAAAttB,EAAAysR,EAAAC,EAAA/gR,EAAA4gR,GAEA,QAAA/jS,EAAA,EAAiBA,EAAAs0C,EAAAE,MAAAt0C,OAA+BF,IAAA,CAYhD,IAXA,IASA8+D,EATAp6D,EAAA4vC,EAAAE,MAAAx0C,GACAy0C,EAAA/vC,EAAA+vC,OACA4vP,EAAA5vP,EAAAv0C,OACA4hS,EAAAp9R,EAAAo9R,WACAwC,EAAA5/R,EAAAuT,MACAssR,EAAA,EACAC,EAAAL,EACAM,EAAAL,EACAM,EAAAL,EAAA,EAGAE,EAAAF,MAAAvlO,EAAArqB,EAAA8vP,IAAA5vP,WAAA,SAAAmqB,EAAAnqB,YACAitP,EAAAC,EAAA/8P,EAAAg6B,EAAAtnD,EAAAsqR,EAAAC,EAAAyC,EAAA,QACAF,GAAAxlO,EAAA7mD,MACAusR,GAAA1lO,EAAA7mD,MACAssR,IAGA,KAAAG,GAAA,cAAA5lO,EAAArqB,EAAAiwP,IAAA/vP,WACAitP,EAAAC,EAAA/8P,EAAAg6B,EAAAtnD,EAAAsqR,EAAAC,EAAA0C,EAAA,SACAH,GAAAxlO,EAAA7mD,MACAwsR,GAAA3lO,EAAA7mD,MACAysR,IAMA,IAFAF,IAAAV,GAAAU,EAAAL,IAAAC,EAAAK,GAAAH,GAAA,EAEAC,GAAAG,GACA5lO,EAAArqB,EAAA8vP,GAEA3C,EAAAC,EAAA/8P,EAAAg6B,EAAAtnD,EAAAsqR,EAAAC,EAAAyC,EAAA1lO,EAAA7mD,MAAA,YACAusR,GAAA1lO,EAAA7mD,MACAssR,IAGAxC,GAAAD,GAjEA6C,CAAA9C,EAAA/8P,EAAAwP,EAAA98B,EAAA2vB,GAhFAy9P,CAAA/C,EAAA/8P,EAAAwL,EAAA94B,EAAA2vB,GAGA,SAAA06P,EAAA/8P,EAAAwL,EAAA94B,EAAA2vB,GACA,IAAAwM,EAAA2uP,EAAAx9P,EAAA,OAAAttB,EAAAm8B,MAAA7J,EAAA04P,cACAd,EAAAlqR,EAAAkqR,YACAptP,EAAAutP,EAAAgC,kBAEAvvP,IAAAutP,EAAA1tP,UACAG,EAAAutP,EAAAgC,kBAAA/5P,EAAA+6P,eAAAv0P,EAAAqD,EAAA+tP,EAAAlqR,EAAAstR,WAGA,IAAAf,EAAAzvP,EAAAyvP,YACAgB,EAAAzwP,EAAAE,MACAstP,EAAAxtP,EAAAwtP,WACAkC,EAAAT,EAAAQ,EAAAvsR,EAAA2vB,GACAs8P,EAAAO,EAAAP,MACAC,EAAAM,EAAAN,MACA/uP,EAAAqvP,EAAArvP,UACAC,EAAAovP,EAAApvP,kBAEA+sP,EAAA78P,EAAAttB,EAAA2vB,EAAAs8P,EAAAC,GACA,IAAAQ,EAAAp6P,EAAA4L,YAAAguP,EAAAK,EAAAnvP,GACA6hP,EAAAgN,EACA/M,EAAAwN,EACAc,EAAA9C,EAAA1qR,GAEA,GAAAwtR,GAAAtD,EAAA,CAEA,IAAAuD,EAAAn7P,EAAAinB,SAAAzgB,EAAAqD,GACAxwB,EAAA8hR,EACAvD,IAAAv+Q,GAAAu+Q,EAAA,GAAAA,EAAA,IACA,IAAAuC,EAAAn6P,EAAA2L,YAAAguP,EAAAtgR,EAAAwxB,GACAqwP,GAAA7C,EAAAN,EAAA/8P,EAAAttB,EAAAysR,EAAAC,EAAA/gR,EAAA4gR,GAEArC,IACAjL,EAAA2L,EAAAqB,EAAA9uP,EAAA+sP,GACAhL,GAAAgL,EAAA,IAIAY,EAAAx9P,EAAA,YAAA6P,GAAA,QAGA2tP,EAAAx9P,EAAA,yBAEAw9P,EAAAx9P,EAAA,aAAAttB,EAAAgtB,gBAAA,GACA89P,EAAAx9P,EAAA,cAAAttB,EAAA+qR,iBAAA,eACAD,EAAAx9P,EAAA,gBAAAttB,EAAAitB,mBAAA,GACA69P,EAAAx9P,EAAA,gBAAAttB,EAAAktB,mBAAA,GAEAgyP,GAAAoL,EAAA,EACA,IAAAY,EAAAlrR,EAAAkrR,gBACAlsP,EAAAisP,EAAAjrR,EAAAg/B,WAAAksP,GACAnsP,EAAAosP,EAAAnrR,EAAA++B,UAEAC,IACA8rP,EAAAx9P,EAAA,YAAA49P,GACAJ,EAAAx9P,EAAA,cAAA0R,IAGAD,GACA+rP,EAAAx9P,EAAA,YAAAyR,GAGA,QAAAv2C,EAAA,EAAiBA,EAAA+kS,EAAA7kS,OAAsBF,IAEvCw2C,GAAA1R,EAAA89P,WAAAmC,EAAA/kS,GAAAy2R,EAAAC,GACAngP,GAAAzR,EAAA+9P,SAAAkC,EAAA/kS,GAAAy2R,EAAAC,GACAA,GAAAoL,EArEAoD,CAAArD,EAAA/8P,EAAAwL,EAAA94B,EAAA2vB,IA4WA/kC,EAAAqgS,YACArgS,EAAAugS,UACAvgS,EAAA+iS,aARA,SAAA70P,EAAA94B,GACA,aAAA84B,OAAA94B,EAAAsrR,qBAAAtrR,EAAAurR,iBAAAvrR,EAAAwrR,iBAAAxrR,EAAAkqR,oCCzaA,IAAAr/R,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBkuN,EAAqBluN,EAAQ,QAoB7B4mS,EAAA/iS,EAAAoxB,sBACAhxB,KAAA,UACAqxL,YACArxL,KAAA,MACA62N,YAAA,GAEA/kC,cAAA,WACA6wG,EAAAvhS,WAAA5E,KAAA,gBAAA8E,WACA+0B,EAAA4E,KAAAz+B,KAAAid,OAAAozK,QAAA,SAAAC,EAAA81G,GACA,IAAAC,EAAA54E,EAAAzpN,IAAAoiS,GACAC,GAAAxsQ,EAAA82C,MAAA2/G,EAAA+1G,EAAA3xQ,kBAGAA,eACArvB,MAAA,EACAuvB,EAAA,EACAD,OAAA,EACA7X,OAAA,aACAjX,KAAA,QACAmM,IAAA,MAGAyI,gBAAA,cACAsY,YAAA,OACAsC,aAAA,EACAC,YAAA,EACAC,QAAA,EACA6/H,SAAA,GACAi5H,QAAA,EACAiY,WAAA,EACAx3H,WACA/7I,YAAA,OACA5sB,MAAA,QAEAmgB,UACAwoJ,WACA/7I,YAAA,eAOA9vB,EAAAkjS,EACAjjS,EAAAC,QAAAF,wBCpEA,IAAA42B,EAAat6B,EAAQ,QAoBrBgnS,GACAC,QAAA,OAEAC,MAAA,OACAC,MAAA,MACAC,OAAA,OAEAC,MAAA,MAeA1jS,EAAAC,QAZA,SAAAmX,GACAuf,EAAA4E,KAAAnkB,EAAAuxK,QAAA,SAAAt9C,GACA,IAAAs4J,EAAAN,EAAAh4J,EAAA3rI,MAEA,GAAAikS,EAAA,CACA,IAAAzhG,EAAA72D,EAAAzqH,OACAshL,EAAA,IAAAyhG,EAAA,QACAzhG,EAAA,KAAAyhG,EAAA,gCCrCA,IAoBA5jS,EApBkB1D,EAAQ,QAoB1BmK,QACAlG,KAAA,WACAkxB,eACAC,OAAA,EAEAC,EAAA,EACA7e,SACA9D,QAAA,QAGAzQ,WAAA,EACAiR,OACApN,MAAA,EACA+I,SAAA,OAEAoE,WAIA8iB,YAAA,GAEAhP,UACA7T,OACApN,MAAA,EACA+I,SAAA,WAMAlL,EAAAC,QAAAF,sBClDA,IAAAJ,KAAuBA,eACvBK,EAAAC,QAAA,SAAAu9D,EAAA32D,GACA,OAAAlH,EAAA6I,KAAAg1D,EAAA32D,4BCFAxK,EAAQ,QAERA,EAAQ,QAERA,EAAQ,8BCJR,IAAA4oL,EAAuB5oL,EAAQ,QAE/BklL,EAAWllL,EAAQ,QAEnBE,EAAYF,EAAQ,QAEpBmK,EAAAjK,EAAAiK,OACAoC,EAAArM,EAAAqM,QAgDA5I,EAAAC,QAXA,SAAAq4B,EAAA5C,EAAAkjQ,GACAljQ,EAAA9sB,EAAA8sB,KACAwyJ,gBAAAxyJ,IACGlvB,KAAakvB,GAChB,IAAAn2B,EAAA+4B,EAAAqtI,YACAsiB,EAAAhD,EAAA1lL,EAAAm2B,GACA/L,EAAA,IAAA43J,EAAA0G,EAAA3vJ,GAEA,OADA3O,EAAAogE,SAAAxqF,EAAAq5R,GACAjvQ,yBCpDcttB,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBunS,EAA6BvnS,EAAQ,QAwBrC02B,EAAA7yB,EAAAG,qBACAC,KAAA,OAKAujS,aAAA,KAMAr2F,iBAAA,KAKAjtM,OAAA,SAAA4yB,EAAA1yB,EAAAC,EAAAggC,GAMA5jC,KAAA0wM,kBAAAo2F,EAAAE,SAAA3wQ,GACAJ,EAAArxB,WAAA5E,KAAA,SAAA8E,WACAmiS,EAAAjnS,KAAAq2B,EAAA1yB,EAAAC,EAAAggC,GAAA,IAWAqjQ,kBAAA,SAAA5wQ,EAAA1yB,EAAAC,EAAAggC,EAAA2jJ,GACA0/G,EAAAjnS,KAAAq2B,EAAA1yB,EAAAC,EAAAggC,GAAA,IAMAn/B,OAAA,SAAAd,EAAAC,GACA,IAAAwW,EAAApa,KAAA+mS,aACA3sR,KAAA3V,OAAAb,GACAqyB,EAAArxB,WAAA5E,KAAA,SAAA8E,YAMAC,QAAA,SAAApB,EAAAC,GACAsjS,EAAAlnS,KAAA4D,GACAqyB,EAAArxB,WAAA5E,KAAA,UAAA8E,cAIA,SAAAmiS,EAAAE,EAAA9wQ,EAAA1yB,EAAAC,EAAAggC,EAAAixN,GACA,IAAA5+D,EAAAhgK,EAAAmxQ,oBAAAD,EAAAz2F,kBAEA,GAAAza,EAAA,CAIA,IAAA3/J,EAAAwwQ,EAAAO,oBAAAhxQ,GACAC,GAAA6wQ,EAAAJ,eAAAI,EAAAJ,aAAA,IAAA9wG,IAAAxyL,OAAA4yB,EAAAC,EAAA1yB,EAAAixP,GAAAqyC,EAAAC,EAAAvjS,IAGA,SAAAsjS,EAAAC,EAAAxjS,EAAAC,GACA,IAAAwW,EAAA+sR,EAAAJ,aACA3sR,KAAArV,QAAApB,EAAAC,GACAujS,EAAAJ,aAAA,KAGA,IAAAO,KAEArxQ,EAAAqD,yBAAA,SAAA91B,EAAAgpO,GACA86D,EAAA9jS,GAAAgpO,GAGAv2M,EAAAmxQ,oBAAA,SAAA5jS,GACA,OAAAA,GAAA8jS,EAAA9jS,IAGA,IAAAP,EAAAgzB,EACA/yB,EAAAC,QAAAF,wBCpHA,IAAA42B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBolL,EAAYplL,EAAQ,QAsBpBwxJ,GAAA,2DAEA,SAAAw2I,EAAA9rQ,EAAA+rQ,EAAAl6P,GACAk6P,EAAA,GAAAA,EAAA,KAAAA,IAAAllS,QAAAilB,WACA,IAAA/kB,EAAAi5B,EAAAif,cAAA8sP,EAAA,GAAAl6P,IACApc,EAAAuK,EAAAif,cAAA8sP,EAAA,GAAAl6P,IACA,OACAmD,GAAAjuC,EAAA,GACAkuC,GAAAluC,EAAA,GACAqrC,GAAA3c,EAAA,GACA4c,GAAA5c,EAAA,IAIA,SAAAu2Q,EAAAhsQ,GAEA,OADAA,EAAAI,gBACAU,QAAA,IAIA,SAAAmrQ,EAAA76Q,GACA,IAAA86Q,EAAA96Q,EAAA,GACA+6Q,EAAA/6Q,IAAA5rB,OAAA,GAEA0mS,GAAAC,GAAA7/R,KAAAY,IAAAZ,KAAAY,IAAAg/R,EAAAvlQ,MAAAwlQ,EAAAxlQ,OAAA,WACAvV,EAAAiqC,MAIA,IAAA7zD,EAjDe1D,EAAQ,QAiDvBmK,QACAlG,KAAA,YACAktM,iBAAA,mBACAjtM,OAAA,SAAAokS,EAAAlkS,GAGA,GAFA3D,KAAAg/B,MAAAkG,YAEA2iQ,EAAA7jS,IAAA,SAIA,IAAA03B,EAAAmsQ,EAAApyQ,KACAgG,EAAAC,EAAAD,MACAG,EAAAH,EAAAI,gBAAAC,YACAgsQ,EAAApsQ,EAAAw1K,iBACA62F,EAAAluQ,EAAAlpB,IAAA+qB,EAAAgD,gBAAA,SAAAC,GAGA,OAFAA,EAAA9E,EAAAmQ,MAAArL,IACAyD,MAAA1G,EAAA5E,YAAA6H,EAAAC,WACAD,IAEA+oQ,EAAAK,GACAL,EAAAI,GACAjuQ,EAAA4E,KAAAsyH,EAAA,SAAAnuJ,IACAilS,EAAA7jS,IAAApB,EAAA,UAAA84B,EAAAnqB,MAAAihK,WAAA,aAAA5vK,GACA5C,KAAA,IAAA4C,GAAAilS,EAAApsQ,EAAAqsQ,EAAAlsQ,EAAAmsQ,IAEK/nS,QAMLgoS,UAAA,SAAAH,EAAApsQ,EAAAqsQ,EAAAlsQ,GACA,IAAAwD,EAAAyoQ,EAAAxoQ,SAAA,sBACAw0C,EAAA,IAAAr5D,EAAAytR,QACAlgR,OACAxQ,GAAAkkB,EAAAlkB,GACAC,GAAAikB,EAAAjkB,GACAC,EAAAmkB,EAAA6rQ,EAAAhsQ,KAEAljB,MAAA6mB,EAAA6D,eACAmB,GAAA,EACAD,QAAA,IAEA0vC,EAAAt7D,MAAAb,KAAA,KACA1X,KAAAg/B,MAAAC,IAAA40C,IAMAq0N,UAAA,SAAAL,EAAApsQ,EAAAqsQ,EAAAlsQ,GACA,IAAAu1K,EAAA02F,EAAAxoQ,SAAA,YACA8oQ,GAAAh3F,EAAAntM,IAAA,gBAAAmtM,EAAAntM,IAAA,UACA2e,EAAAiZ,EAAA6rQ,EAAAhsQ,IACA8Z,EAAA1b,EAAAlpB,IAAAm3R,EAAA,SAAAM,GACA,WAAA5tR,EAAAqyD,MACA9kD,MAAAw/Q,EAAA9rQ,GAAA9Y,IAAAwlR,GAAAC,EAAAhmQ,WAGApiC,KAAAg/B,MAAAC,IAAAzkB,EAAA62L,UAAA97J,GACAh9B,MAAAshB,EAAAmJ,SAAAmuK,EAAA9xK,SAAA,aAAA4D,gBACAC,OAAA2kQ,EAAA7jS,IAAA,kCAQAqkS,WAAA,SAAAR,EAAApsQ,EAAAqsQ,EAAAlsQ,EAAAmsQ,GACA,IAAAO,EAAAT,EAAA72H,eAAA,GACAu3H,EAAAV,EAAAxoQ,SAAA,aACA1H,EAAA4wQ,EAAAvkS,IAAA,UAEA61B,EAAA4E,KAAAspQ,EAAA,SAAAppQ,EAAA2B,GACA,IAAAylC,EAAAwiO,EACA3pQ,EAAAD,EAAAC,UACAnnB,EAAAmkB,EAAA6rQ,EAAAhsQ,IACAyV,EAAAzV,EAAAif,cAAAjjC,EAAAkgB,EAAAgH,EAAAyD,QACA7qB,EAAAkkB,EAAAlkB,GACAC,EAAAikB,EAAAjkB,GACAgxR,EAAAzgS,KAAAY,IAAAuoC,EAAA,GAAA35B,GAAAE,EAAA,YAAAy5B,EAAA,GAAA35B,EAAA,eACAkxR,EAAA1gS,KAAAY,IAAAuoC,EAAA,GAAA15B,GAAAC,EAAA,YAAAy5B,EAAA,GAAA15B,EAAA,eAEA8wR,KAAA1pQ,IAAA0pQ,EAAA1pQ,GAAAlkB,YACAqrD,EAAA,IAAA4+G,EAAA2jH,EAAA1pQ,GAAAlkB,UAAA6tR,IAAA5kS,UAGA,IAAA+kS,EAAA,IAAAluR,EAAA0wB,MACA/G,QAAA,IAEAnkC,KAAAg/B,MAAAC,IAAAypQ,GACAluR,EAAA2/L,aAAAuuF,EAAAnwR,MAAAwtD,GACA1hE,EAAA6sC,EAAA,GACA3sC,EAAA2sC,EAAA,GACAoG,SAAAyuB,EAAA0vF,gBAAAoyI,EAAA7jS,IAAA,4BACAqtC,KAAA1S,EAAAgqQ,eACAjzP,UAAA8yP,EACA7yP,kBAAA8yP,KAEKzoS,OAML4wM,WAAA,SAAAi3F,EAAApsQ,EAAAqsQ,EAAAlsQ,GACA,IACAwD,EADAyoQ,EAAAxoQ,SAAA,aACAA,SAAA,aACAyxK,EAAA1xK,EAAAp7B,IAAA,SACAgtM,EAAA,EACAF,eAAAjlM,MAAAilM,MAGA,IAFA,IAAAC,KAEAhwM,EAAA,EAAmBA,EAAA+mS,EAAA7mS,OAAwBF,IAAA,CAC3C,IAAAu8I,EAAA0zD,IAAAF,EAAA7vM,OACA8vM,EAAAzzD,GAAAyzD,EAAAzzD,OACAyzD,EAAAzzD,GAAA/7I,KAAA,IAAAiZ,EAAAqyD,MACA9kD,MAAAw/Q,EAAA9rQ,EAAAG,EAAAksQ,EAAA/mS,GAAAqhC,UAMA,IAAArhC,EAAA,EAAmBA,EAAAgwM,EAAA9vM,OAAuBF,IAC1Cf,KAAAg/B,MAAAC,IAAAzkB,EAAA62L,UAAAN,EAAAhwM,IACAwX,MAAAshB,EAAAmJ,UACAE,OAAA4tK,EAAA/vM,EAAA+vM,EAAA7vM,SACSm+B,EAAA6D,gBACTkB,QAAA,EACAvP,EAAAizQ,EAAA7jS,IAAA,SAQAuzM,WAAA,SAAAswF,EAAApsQ,EAAAqsQ,EAAAlsQ,GACA,GAAAksQ,EAAA7mS,OAAA,CAIA,IACAq+B,EADAuoQ,EAAAxoQ,SAAA,aACAA,SAAA,aACAo4K,EAAAn4K,EAAAt7B,IAAA,SACAgtM,EAAA,EACAyG,eAAA5rM,MAAA4rM,MAQA,IAPA,IAAAmxF,KACA5sQ,EAAAj0B,KAAAgwB,GAAA,IACA8wQ,GAAAf,EAAA,GAAA1lQ,MAAApG,EACAG,EAAAp0B,KAAAC,IAAA4zB,EAAA,GAAAA,EAAA,IACAktQ,EAAA/gS,KAAAE,IAAA2zB,EAAA,GAAAA,EAAA,IACAU,EAAAurQ,EAAA7jS,IAAA,aAEAjD,EAAA,EAAmBA,EAAA+mS,EAAA7mS,OAAwBF,IAAA,CAC3C,IAAAu8I,EAAA0zD,IAAAyG,EAAAx2M,OACA2nS,EAAAtrJ,GAAAsrJ,EAAAtrJ,OACAsrJ,EAAAtrJ,GAAA/7I,KAAA,IAAAiZ,EAAA0hB,QACAnU,OACAxQ,GAAAkkB,EAAAlkB,GACAC,GAAAikB,EAAAjkB,GACA2kB,KACA1kB,EAAAqxR,EACA1sQ,WAAAysQ,EACAxsQ,UAAAyrQ,EAAA/mS,GAAAqhC,MAAApG,EACAM,aAEA6H,QAAA,KAEA0kQ,GAAAf,EAAA/mS,GAAAqhC,MAAApG,EAKA,IAAAj7B,EAAA,EAAmBA,EAAA6nS,EAAA3nS,OAAuBF,IAC1Cf,KAAAg/B,MAAAC,IAAAzkB,EAAA62L,UAAAu3F,EAAA7nS,IACAwX,MAAAshB,EAAAmJ,UACAtrB,KAAA+/L,EAAA12M,EAAA02M,EAAAx2M,SACSq+B,EAAAmE,gBACTU,QAAA,SAMAjhC,EAAAC,QAAAF,0BCjPA,IAAAi+N,EAAU3hO,EAAQ,QAClBwpS,EAAiBxpS,EAAQ,QACzB27K,EAAgB37K,EAAQ,QACxBypS,EAAkBzpS,EAAQ,QAC1B4lD,EAAU5lD,EAAQ,QAClB0pS,EAAqB1pS,EAAQ,QAC7B2pS,EAAAt/R,OAAA06C,yBAEAnhD,EAAA6/C,EAAYzjD,EAAQ,QAAgB2pS,EAAA,SAAA3oO,EAAA83J,GAGpC,GAFA93J,EAAA26G,EAAA36G,GACA83J,EAAA2wE,EAAA3wE,GAAA,GACA4wE,EAAA,IACA,OAAAC,EAAA3oO,EAAA83J,GACG,MAAAl0N,IACH,GAAAghD,EAAAob,EAAA83J,GAAA,OAAA0wE,GAAA7nE,EAAAl+K,EAAAt3C,KAAA60D,EAAA83J,GAAA93J,EAAA83J,yBCbA,IAAA8wE,EAAA,GACAC,EAAA,EAcA,SAAAC,EAAAjqO,EAAAwzI,EAAAC,EAAAy2F,GACA,IAAAC,EAAA32F,EAAA,EAEA,GAAA22F,IAAA12F,EACA,SAGA,GAAAy2F,EAAAlqO,EAAAmqO,KAAAnqO,EAAAwzI,IAAA,GACA,KAAA22F,EAAA12F,GAAAy2F,EAAAlqO,EAAAmqO,GAAAnqO,EAAAmqO,EAAA,OACAA,KAaA,SAAAnqO,EAAAwzI,EAAAC,GACAA,IAEA,KAAAD,EAAAC,GAAA,CACA,IAAApqH,EAAArpB,EAAAwzI,GACAxzI,EAAAwzI,KAAAxzI,EAAAyzI,GACAzzI,EAAAyzI,KAAApqH,GAhBA+gN,CAAApqO,EAAAwzI,EAAA22F,QAEA,KAAAA,EAAA12F,GAAAy2F,EAAAlqO,EAAAmqO,GAAAnqO,EAAAmqO,EAAA,QACAA,IAIA,OAAAA,EAAA32F,EAaA,SAAA62F,EAAArqO,EAAAwzI,EAAAC,EAAArwM,EAAA8mS,GAKA,IAJA9mS,IAAAowM,GACApwM,IAGQA,EAAAqwM,EAAYrwM,IAAA,CAMpB,IALA,IAGAswM,EAHA42F,EAAAtqO,EAAA58D,GACAqD,EAAA+sM,EACA9sM,EAAAtD,EAGAqD,EAAAC,GAGAwjS,EAAAI,EAAAtqO,EAFA0zI,EAAAjtM,EAAAC,IAAA,IAEA,EACAA,EAAAgtM,EAEAjtM,EAAAitM,EAAA,EAIA,IAAA10J,EAAA57C,EAAAqD,EAEA,OAAAu4C,GACA,OACAghB,EAAAv5D,EAAA,GAAAu5D,EAAAv5D,EAAA,GAEA,OACAu5D,EAAAv5D,EAAA,GAAAu5D,EAAAv5D,EAAA,GAEA,OACAu5D,EAAAv5D,EAAA,GAAAu5D,EAAAv5D,GACA,MAEA,QACA,KAAAu4C,EAAA,GACAghB,EAAAv5D,EAAAu4C,GAAAghB,EAAAv5D,EAAAu4C,EAAA,GACAA,IAKAghB,EAAAv5D,GAAA6jS,GAIA,SAAAC,EAAApiS,EAAA63D,EAAA58D,EAAAvB,EAAA2oS,EAAAN,GACA,IAAAO,EAAA,EACAC,EAAA,EACApnQ,EAAA,EAEA,GAAA4mQ,EAAA/hS,EAAA63D,EAAA58D,EAAAonS,IAAA,GAGA,IAFAE,EAAA7oS,EAAA2oS,EAEAlnQ,EAAAonQ,GAAAR,EAAA/hS,EAAA63D,EAAA58D,EAAAonS,EAAAlnQ,IAAA,GACAmnQ,EAAAnnQ,GACAA,EAAA,GAAAA,GAAA,KAEA,IACAA,EAAAonQ,GAIApnQ,EAAAonQ,IACApnQ,EAAAonQ,GAGAD,GAAAD,EACAlnQ,GAAAknQ,MACG,CAGH,IAFAE,EAAAF,EAAA,EAEAlnQ,EAAAonQ,GAAAR,EAAA/hS,EAAA63D,EAAA58D,EAAAonS,EAAAlnQ,KAAA,GACAmnQ,EAAAnnQ,GACAA,EAAA,GAAAA,GAAA,KAEA,IACAA,EAAAonQ,GAIApnQ,EAAAonQ,IACApnQ,EAAAonQ,GAGA,IAAAp6N,EAAAm6N,EACAA,EAAAD,EAAAlnQ,EACAA,EAAAknQ,EAAAl6N,EAKA,IAFAm6N,IAEAA,EAAAnnQ,GAAA,CACA,IAAA/V,EAAAk9Q,GAAAnnQ,EAAAmnQ,IAAA,GAEAP,EAAA/hS,EAAA63D,EAAA58D,EAAAmqB,IAAA,EACAk9Q,EAAAl9Q,EAAA,EAEA+V,EAAA/V,EAIA,OAAA+V,EAGA,SAAAqnQ,EAAAxiS,EAAA63D,EAAA58D,EAAAvB,EAAA2oS,EAAAN,GACA,IAAAO,EAAA,EACAC,EAAA,EACApnQ,EAAA,EAEA,GAAA4mQ,EAAA/hS,EAAA63D,EAAA58D,EAAAonS,IAAA,GAGA,IAFAE,EAAAF,EAAA,EAEAlnQ,EAAAonQ,GAAAR,EAAA/hS,EAAA63D,EAAA58D,EAAAonS,EAAAlnQ,IAAA,GACAmnQ,EAAAnnQ,GACAA,EAAA,GAAAA,GAAA,KAEA,IACAA,EAAAonQ,GAIApnQ,EAAAonQ,IACApnQ,EAAAonQ,GAGA,IAAAp6N,EAAAm6N,EACAA,EAAAD,EAAAlnQ,EACAA,EAAAknQ,EAAAl6N,MACG,CAGH,IAFAo6N,EAAA7oS,EAAA2oS,EAEAlnQ,EAAAonQ,GAAAR,EAAA/hS,EAAA63D,EAAA58D,EAAAonS,EAAAlnQ,KAAA,GACAmnQ,EAAAnnQ,GACAA,EAAA,GAAAA,GAAA,KAEA,IACAA,EAAAonQ,GAIApnQ,EAAAonQ,IACApnQ,EAAAonQ,GAGAD,GAAAD,EACAlnQ,GAAAknQ,EAKA,IAFAC,IAEAA,EAAAnnQ,GAAA,CACA,IAAA/V,EAAAk9Q,GAAAnnQ,EAAAmnQ,IAAA,GAEAP,EAAA/hS,EAAA63D,EAAA58D,EAAAmqB,IAAA,EACA+V,EAAA/V,EAEAk9Q,EAAAl9Q,EAAA,EAIA,OAAA+V,EAGA,SAAAsnQ,EAAA5qO,EAAAkqO,GACA,IACAroS,EAGAgpS,EACAC,EALAC,EAAAf,EAMAgB,EAAA,EACAnpS,EAAAm+D,EAAAn+D,OAMA,IAAAyuE,KAuCA,SAAA26N,EAAAtpS,GACA,IAAAupS,EAAAL,EAAAlpS,GACAwpS,EAAAL,EAAAnpS,GACAypS,EAAAP,EAAAlpS,EAAA,GACAksL,EAAAi9G,EAAAnpS,EAAA,GACAmpS,EAAAnpS,GAAAwpS,EAAAt9G,EAEAlsL,IAAAqpS,EAAA,IACAH,EAAAlpS,EAAA,GAAAkpS,EAAAlpS,EAAA,GACAmpS,EAAAnpS,EAAA,GAAAmpS,EAAAnpS,EAAA,IAGAqpS,IACA,IAAA3hR,EAAAshR,EAAA3qO,EAAAorO,GAAAprO,EAAAkrO,EAAAC,EAAA,EAAAjB,GACAgB,GAAA7hR,EAGA,KAFA8hR,GAAA9hR,IAQA,KAFAwkK,EAAA08G,EAAAvqO,EAAAkrO,EAAAC,EAAA,GAAAnrO,EAAAorO,EAAAv9G,IAAA,EAAAq8G,MAMAiB,GAAAt9G,EAOA,SAAAq9G,EAAAC,EAAAC,EAAAv9G,GACA,IAAAlsL,EAAA,EAEA,IAAAA,EAAA,EAAeA,EAAAwpS,EAAaxpS,IAC5B2uE,EAAA3uE,GAAAq+D,EAAAkrO,EAAAvpS,GAGA,IAAA0pS,EAAA,EACAC,EAAAF,EACAG,EAAAL,EAGA,GAFAlrO,EAAAurO,KAAAvrO,EAAAsrO,KAEA,KAAAz9G,EAAA,CACA,IAAAlsL,EAAA,EAAiBA,EAAAwpS,EAAaxpS,IAC9Bq+D,EAAAurO,EAAA5pS,GAAA2uE,EAAA+6N,EAAA1pS,GAGA,OAGA,OAAAwpS,EAAA,CACA,IAAAxpS,EAAA,EAAiBA,EAAAksL,EAAalsL,IAC9Bq+D,EAAAurO,EAAA5pS,GAAAq+D,EAAAsrO,EAAA3pS,GAIA,YADAq+D,EAAAurO,EAAA19G,GAAAv9G,EAAA+6N,IAIA,IACAG,EAAAC,EAAAC,EADAC,EAAAZ,EAGA,QACAS,EAAA,EACAC,EAAA,EACAC,GAAA,EAEA,GACA,GAAAxB,EAAAlqO,EAAAsrO,GAAAh7N,EAAA+6N,IAAA,GAKA,GAJArrO,EAAAurO,KAAAvrO,EAAAsrO,KACAG,IACAD,EAAA,EAEA,KAAA39G,EAAA,CACA69G,GAAA,EACA,YAOA,GAJA1rO,EAAAurO,KAAAj7N,EAAA+6N,KACAG,IACAC,EAAA,EAEA,KAAAN,EAAA,CACAO,GAAA,EACA,cAGOF,EAAAC,GAAAE,GAEP,GAAAD,EACA,MAGA,GAGA,QAFAF,EAAAb,EAAA3qO,EAAAsrO,GAAAh7N,EAAA+6N,EAAAF,EAAA,EAAAjB,IAEA,CACA,IAAAvoS,EAAA,EAAqBA,EAAA6pS,EAAY7pS,IACjCq+D,EAAAurO,EAAA5pS,GAAA2uE,EAAA+6N,EAAA1pS,GAOA,GAJA4pS,GAAAC,EACAH,GAAAG,GACAL,GAAAK,IAEA,GACAE,GAAA,EACA,OAMA,GAFA1rO,EAAAurO,KAAAvrO,EAAAsrO,KAEA,KAAAz9G,EAAA,CACA69G,GAAA,EACA,MAKA,QAFAD,EAAAlB,EAAAj6N,EAAA+6N,GAAArrO,EAAAsrO,EAAAz9G,EAAA,EAAAq8G,IAEA,CACA,IAAAvoS,EAAA,EAAqBA,EAAA8pS,EAAY9pS,IACjCq+D,EAAAurO,EAAA5pS,GAAAq+D,EAAAsrO,EAAA3pS,GAOA,GAJA4pS,GAAAE,EACAH,GAAAG,EAGA,KAFA59G,GAAA49G,GAEA,CACAC,GAAA,EACA,OAMA,GAFA1rO,EAAAurO,KAAAj7N,EAAA+6N,KAEA,KAAAF,EAAA,CACAO,GAAA,EACA,MAGAC,UACOH,GAAAxB,GAAAyB,GAAAzB,GAEP,GAAA0B,EACA,MAGAC,EAAA,IACAA,EAAA,GAGAA,GAAA,EAMA,IAHAZ,EAAAY,GACA,IAAAZ,EAAA,GAEA,IAAAI,EAAA,CACA,IAAAxpS,EAAA,EAAiBA,EAAAksL,EAAalsL,IAC9Bq+D,EAAAurO,EAAA5pS,GAAAq+D,EAAAsrO,EAAA3pS,GAGAq+D,EAAAurO,EAAA19G,GAAAv9G,EAAA+6N,OACK,QAAAF,EACL,UAAAlrO,MAEA,IAAAt+D,EAAA,EAAiBA,EAAAwpS,EAAaxpS,IAC9Bq+D,EAAAurO,EAAA5pS,GAAA2uE,EAAA+6N,EAAA1pS,IAjJAiqS,CAAAV,EAAAC,EAAAC,EAAAv9G,GAsJA,SAAAq9G,EAAAC,EAAAC,EAAAv9G,GACA,IAAAlsL,EAAA,EAEA,IAAAA,EAAA,EAAeA,EAAAksL,EAAalsL,IAC5B2uE,EAAA3uE,GAAAq+D,EAAAorO,EAAAzpS,GAGA,IAAA0pS,EAAAH,EAAAC,EAAA,EACAG,EAAAz9G,EAAA,EACA09G,EAAAH,EAAAv9G,EAAA,EACAg+G,EAAA,EACAC,EAAA,EAGA,GAFA9rO,EAAAurO,KAAAvrO,EAAAqrO,KAEA,KAAAF,EAAA,CAGA,IAFAU,EAAAN,GAAA19G,EAAA,GAEAlsL,EAAA,EAAiBA,EAAAksL,EAAalsL,IAC9Bq+D,EAAA6rO,EAAAlqS,GAAA2uE,EAAA3uE,GAGA,OAGA,OAAAksL,EAAA,CAMA,IAHAi+G,GAFAP,GAAAJ,GAEA,EACAU,GAFAR,GAAAF,GAEA,EAEAxpS,EAAAwpS,EAAA,EAA2BxpS,GAAA,EAAQA,IACnCq+D,EAAA8rO,EAAAnqS,GAAAq+D,EAAA6rO,EAAAlqS,GAIA,YADAq+D,EAAAurO,GAAAj7N,EAAAg7N,IAIA,IAAAK,EAAAZ,EAEA,QACA,IAAAS,EAAA,EACAC,EAAA,EACAC,GAAA,EAEA,GACA,GAAAxB,EAAA55N,EAAAg7N,GAAAtrO,EAAAqrO,IAAA,GAKA,GAJArrO,EAAAurO,KAAAvrO,EAAAqrO,KACAG,IACAC,EAAA,EAEA,KAAAN,EAAA,CACAO,GAAA,EACA,YAOA,GAJA1rO,EAAAurO,KAAAj7N,EAAAg7N,KACAG,IACAD,EAAA,EAEA,KAAA39G,EAAA,CACA69G,GAAA,EACA,cAGOF,EAAAC,GAAAE,GAEP,GAAAD,EACA,MAGA,GAGA,QAFAF,EAAAL,EAAAR,EAAAr6N,EAAAg7N,GAAAtrO,EAAAkrO,EAAAC,IAAA,EAAAjB,IAEA,CAOA,IAJAiB,GAAAK,EACAM,GAHAP,GAAAC,GAGA,EACAK,GAHAR,GAAAG,GAGA,EAEA7pS,EAAA6pS,EAAA,EAA8B7pS,GAAA,EAAQA,IACtCq+D,EAAA8rO,EAAAnqS,GAAAq+D,EAAA6rO,EAAAlqS,GAGA,OAAAwpS,EAAA,CACAO,GAAA,EACA,OAMA,GAFA1rO,EAAAurO,KAAAj7N,EAAAg7N,KAEA,KAAAz9G,EAAA,CACA69G,GAAA,EACA,MAKA,QAFAD,EAAA59G,EAAA08G,EAAAvqO,EAAAqrO,GAAA/6N,EAAA,EAAAu9G,IAAA,EAAAq8G,IAEA,CAOA,IAJAr8G,GAAA49G,EACAK,GAHAP,GAAAE,GAGA,EACAI,GAHAP,GAAAG,GAGA,EAEA9pS,EAAA,EAAqBA,EAAA8pS,EAAY9pS,IACjCq+D,EAAA8rO,EAAAnqS,GAAA2uE,EAAAu7N,EAAAlqS,GAGA,GAAAksL,GAAA,GACA69G,GAAA,EACA,OAMA,GAFA1rO,EAAAurO,KAAAvrO,EAAAqrO,KAEA,KAAAF,EAAA,CACAO,GAAA,EACA,MAGAC,UACOH,GAAAxB,GAAAyB,GAAAzB,GAEP,GAAA0B,EACA,MAGAC,EAAA,IACAA,EAAA,GAGAA,GAAA,GAGAZ,EAAAY,GAEA,IACAZ,EAAA,GAGA,OAAAl9G,EAAA,CAMA,IAHAi+G,GAFAP,GAAAJ,GAEA,EACAU,GAFAR,GAAAF,GAEA,EAEAxpS,EAAAwpS,EAAA,EAA2BxpS,GAAA,EAAQA,IACnCq+D,EAAA8rO,EAAAnqS,GAAAq+D,EAAA6rO,EAAAlqS,GAGAq+D,EAAAurO,GAAAj7N,EAAAg7N,OACK,QAAAz9G,EACL,UAAA5tH,MAIA,IAFA4rO,EAAAN,GAAA19G,EAAA,GAEAlsL,EAAA,EAAiBA,EAAAksL,EAAalsL,IAC9Bq+D,EAAA6rO,EAAAlqS,GAAA2uE,EAAA3uE,IArTAoqS,CAAAb,EAAAC,EAAAC,EAAAv9G,IAnEAg9G,KACAC,KA4XAlqS,KAAAorS,UApXA,WACA,KAAAhB,EAAA,IACA,IAAAhsP,EAAAgsP,EAAA,EAEA,GAAAhsP,GAAA,GAAA8rP,EAAA9rP,EAAA,IAAA8rP,EAAA9rP,GAAA8rP,EAAA9rP,EAAA,IAAAA,GAAA,GAAA8rP,EAAA9rP,EAAA,IAAA8rP,EAAA9rP,GAAA8rP,EAAA9rP,EAAA,GACA8rP,EAAA9rP,EAAA,GAAA8rP,EAAA9rP,EAAA,IACAA,SAEO,GAAA8rP,EAAA9rP,GAAA8rP,EAAA9rP,EAAA,GACP,MAGAisP,EAAAjsP,KAyWAp+C,KAAAqrS,eArWA,WACA,KAAAjB,EAAA,IACA,IAAAhsP,EAAAgsP,EAAA,EAEAhsP,EAAA,GAAA8rP,EAAA9rP,EAAA,GAAA8rP,EAAA9rP,EAAA,IACAA,IAGAisP,EAAAjsP,KA8VAp+C,KAAAsrS,QA5XA,SAAAC,EAAAC,GACAvB,EAAAG,GAAAmB,EACArB,EAAAE,GAAAoB,EACApB,GAAA,GA6aAlnS,EAAAC,QAjDA,SAAAi8D,EAAAkqO,EAAA12F,EAAAC,GACAD,IACAA,EAAA,GAGAC,IACAA,EAAAzzI,EAAAn+D,QAGA,IAAAwqS,EAAA54F,EAAAD,EAEA,KAAA64F,EAAA,IAIA,IAAAvB,EAAA,EAEA,GAAAuB,EAAAtC,EAEAM,EAAArqO,EAAAwzI,EAAAC,EAAAD,GADAs3F,EAAAb,EAAAjqO,EAAAwzI,EAAAC,EAAAy2F,IACAA,OAFA,CAMA,IAAAn7J,EAAA,IAAA67J,EAAA5qO,EAAAkqO,GACAoC,EAznBA,SAAAttP,GAGA,IAFA,IAAA3mC,EAAA,EAEA2mC,GAAA+qP,GACA1xR,GAAA,EAAA2mC,EACAA,IAAA,EAGA,OAAAA,EAAA3mC,EAinBAk0R,CAAAF,GAEA,GAGA,IAFAvB,EAAAb,EAAAjqO,EAAAwzI,EAAAC,EAAAy2F,IAEAoC,EAAA,CACA,IAAAnkH,EAAAkkH,EAEAlkH,EAAAmkH,IACAnkH,EAAAmkH,GAGAjC,EAAArqO,EAAAwzI,IAAArrB,EAAAqrB,EAAAs3F,EAAAZ,GACAY,EAAA3iH,EAGAp5C,EAAAm9J,QAAA14F,EAAAs3F,GACA/7J,EAAAi9J,YACAK,GAAAvB,EACAt3F,GAAAs3F,QACG,IAAAuB,GAEHt9J,EAAAk9J,0CCppBA,IAAA7mP,EAAajlD,EAAQ,QACrBqsS,EAAgBrsS,EAAQ,QAASylD,IACjC2gM,EAAAnhM,EAAAqB,kBAAArB,EAAAqnP,uBACA7uE,EAAAx4K,EAAAw4K,QACAvuN,EAAA+1C,EAAA/1C,QACAq9R,EAA6B,WAAhBvsS,EAAQ,OAARA,CAAgBy9N,GAE7B95N,EAAAC,QAAA,WACA,IAAAs4K,EAAA7kG,EAAAgtK,EAEAp1L,EAAA,WACA,IAAAjlB,EAAAt9B,EAEA,IADA6/R,IAAAviQ,EAAAyzL,EAAA+uE,SAAAxiQ,EAAAuhQ,OACArvH,GAAA,CACAxvK,EAAAwvK,EAAAxvK,GACAwvK,IAAAh3I,KACA,IACAx4B,IACO,MAAA9H,GAGP,MAFAs3K,EAAAmoE,IACAhtK,OAAAlpE,EACAvJ,GAEKyyE,OAAAlpE,EACL67B,KAAAw9N,SAIA,GAAA+kC,EACAloD,EAAA,WACA5mB,EAAAnkJ,SAAArqB,SAGG,IAAAm3L,GAAAnhM,EAAA3F,WAAA2F,EAAA3F,UAAAmtP,WAQA,GAAAv9R,KAAAC,QAAA,CAEH,IAAAkxD,EAAAnxD,EAAAC,aAAAhB,GACAk2O,EAAA,WACAhkL,EAAAzwD,KAAAq/C,SASAo1L,EAAA,WAEAgoD,EAAAlgS,KAAA84C,EAAAgK,QAvBG,CACH,IAAAy9O,GAAA,EACA/yO,EAAArpD,SAAAglC,eAAA,IACA,IAAA8wM,EAAAn3L,GAAAhH,QAAA0R,GAAuCxR,eAAA,IACvCk8L,EAAA,WACA1qL,EAAApoD,KAAAm7R,MAsBA,gBAAAhgS,GACA,IAAA4kO,GAAgB5kO,KAAAw4B,UAAA/2B,GAChBkpE,MAAAnyC,KAAAosM,GACAp1D,IACAA,EAAAo1D,EACA+S,KACKhtK,EAAAi6J,0BClEL,IAAAh3M,EAAat6B,EAAQ,QAErBqnC,EAAarnC,EAAQ,QAErBs5N,EAAiBt5N,EAAQ,QAEzBsjE,EAAiBtjE,EAAQ,QAEzB2sS,EAAmB3sS,EAAQ,QAE3Bib,EAAcjb,EAAQ,QAEtBm4C,EAAiBn4C,EAAQ,QAEzBg0J,EAAiBh0J,EAAQ,QAyBzBk/B,EAAA5E,EAAA4E,KACA00B,EAAAprD,KAAAC,IACA2jC,EAAA5jC,KAAAE,IACA+vC,EAAAjwC,KAAAkwC,MACAC,EAAAnwC,KAAAowC,KACA/tC,EAAAstC,EAAAttC,MACA2tB,EAAAhwB,KAAAgwB,GAEA,SAAA0+M,EAAA1tE,EAAAplK,EAAAC,GAMA5D,KAAA6oE,SAAAhvC,EAAAk7B,gBAQA/0D,KAAAmsS,eAOAnsS,KAAA+hC,WAAAgnI,EAAAhnI,WAKA/hC,KAAA6nC,MAKA7nC,KAAA6E,OAAAkkK,EAEA/oK,KAAAijE,MAAA8lG,EAAAplK,EAAAC,GAiXA,SAAAg+R,EAAA//R,EAAAm5B,GACA,OAAAm4B,EAAAxnB,EAAA9pC,EAAAm5B,EAAA,IAAAA,EAAA,IA/WAy7M,EAAAv2O,WACAsD,KAAA,WACArD,YAAAs2O,EAMAxzK,MAAA,SAAA8lG,EAAAplK,EAAAC,GACA,IAAAm+B,EAAAgnI,EAAAhnI,WACAqqQ,EAAArjI,EAAAqjI,kBACA3tQ,EAAAsD,EAAA,SAAA1J,EAAAiI,GACA,IAAA6pC,EAAAiiO,EAAA9rQ,GACAjK,EAAA1yB,EAAAG,aAAA,eAAAqmE,GAEA10C,EAAAz1B,KAAA6oE,SAAA7jB,IAAA3sB,EAAA,IAAA6zQ,EAAA7zQ,EAAAwqC,EAAAM,mBAAA9sC,IAAA,KAAAA,EAAAryB,IAAA,QAAAmmE,IAEA/G,EAAA,aAAA3tC,EAAAjyB,KACAiyB,EAAAwF,OAAAmoC,GAAA/sC,EAAAryB,IAAA,eACAyxB,EAAA8G,QAAAlG,EAAAryB,IAAA,WAEAqyB,EAAAZ,OACAA,EAAA8B,MAAAlB,EACAZ,EAAApH,iBAAAgI,EAAAhI,iBAAAruB,MACKA,OAQLu8C,OAAA,SAAA54C,EAAAC,GACA5D,KAAAqsS,sBAAArsS,KAAA6E,OAAAlB,IAMA8mC,aAAA,SAAAJ,GACA,IAAAhT,EAAAr3B,KAAAssS,kBAEAC,EAAAl1Q,EAAAk1Q,SACAC,EAAAn1Q,EAAAm1Q,WACAC,EAAAp1Q,EAAAo1Q,cACAC,EAAAriQ,EAAA,EAAAoiQ,GACAE,EAAAtiQ,EAAAoiQ,GACA,OAAAC,GAAAH,GAAAG,GAAAH,EAAAl1Q,EAAAq6I,YAAAi7H,GAAAH,GAAAG,GAAAH,EAAAn1Q,EAAAu1Q,cAEAvtQ,SAAA,WACA,OAAAr/B,KAAA6E,QAOAwnS,sBAAA,SAAAtjI,EAAAplK,GACAA,EAAAqxD,WAAA,SAAAx5B,GACA,GAAAutI,EAAAvlH,SAAAhoB,EAAA73B,GAAA,CAIA,IAAAmN,EAAA0qB,EAAAtP,UACAuS,EAAAz+B,KAAA+hC,WAAA,SAAA1J,GACA,IAAA5C,EAAAz1B,KAAA6oE,SAAA7kE,IAAAq0B,GAEA5C,EAAAlkB,MAAA8nC,oBAAAvoC,IAAA0tB,aAAAnG,IACAwqC,EAAAQ,gBAAA5tC,EAAAlkB,MAAAkkB,EAAA8B,QACOv3B,QACFA,OAQLwc,OAAA,SAAAusJ,EAAAnlK,GACA5D,KAAA6nC,MAAAgxL,EAAA/1J,cAAAimG,EAAAn/F,sBACA5wD,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,cAGA/xD,KAAA6sS,eAMAtpO,QAAA,WACA,OAAAvjE,KAAA6nC,OAMAykQ,gBAAA,WACA,IAgBAQ,EAhBA/jI,EAAA/oK,KAAA6E,OACAqjC,EAAAloC,KAAA6nC,MACAklQ,GAAA,SACA5yH,GAAA,kBACA7iJ,EAAAyxI,EAAA/kK,IAAA,UACAyoS,EAAA,eAAAn1Q,EAAA,IACAs1Q,EAAA1kQ,EAAAiyI,EAAAsyH,IACAO,GAAA,EAAAJ,GACAK,EAAAjtS,KAAA+hC,WAAA9gC,OACAisS,EAAAtL,EAAA74H,EAAA/kK,IAAA,mBAAAgpS,GACAG,EAAAvL,EAAA74H,EAAA/kK,IAAA,yBAAAipS,IACAG,EAAArkI,EAAA/kK,IAAA,mBAAAipS,EAAA,GAAAA,EAAAE,KAAA,GAAAD,EAAA,GAAAN,EAAA,EAIA/+G,EAAA9kB,EAAA/kK,IAAA,oBAGA6pL,GAMAi/G,EAAAlL,EAAA/zG,EAAA,GAAAA,EAAA,GAAAm/G,GACAn/G,EAAA,GAAAA,EAAA,GAAAi/G,IANAA,EAAAlL,EAAAsL,GAAAC,EAAA,GAAAH,IAEAn/G,GAAAq/G,GADAnkI,EAAA/kK,IAAA,qBAAAg0C,EAAAi1P,EAAA,IACAH,EAAA,IACA,GAAAj/G,EAAA,GAAAi/G,GAMA,IAAAO,GAAAT,EAAAE,IAAAG,EAAAE,GAEAE,EAAA,IAAAA,EAAA,GAEA,IAAAC,GAAAt1P,EAAA5tC,EAAAyjL,EAAA,GAAAq/G,EAAA,MAAAh1P,EAAA9tC,EAAAyjL,EAAA,GAAAq/G,EAAA,OAEAK,EAAAF,EAAAH,EAAAr/G,EAAA,GACA,OACAv2J,SACAm1Q,gBACAD,WAAAtkQ,EAAA6kQ,EAAAN,IACAG,eACAL,SAAArkQ,EAAA6kQ,EAAA,EAAAN,IACA/6H,WAAAxpI,EAAAiyI,EAAA,EAAAsyH,IACAW,iBACAF,kBACAG,oBACAx/G,mBACAo/G,YACAK,kBACAC,yBAOAV,YAAA,WACA,IAAA3kQ,EAAAloC,KAAA6nC,MACA4nJ,EAAAzvL,KAAA6oE,SACA9mC,EAAA/hC,KAAA+hC,WAEA1K,EAAAr3B,KAAAssS,kBAEAh1Q,EAAAD,EAAAC,OACAm4J,EAAAhxJ,KAAA,SAAAhJ,GACA,IAAA0C,GAAA,EAAAd,EAAAq6I,YACApxI,EAAA7K,EAAA8G,QAAA,IACA9G,EAAA0jB,UAAAhhB,EAAAmI,GAAAnI,EAAA,EAAAmI,MAEA7B,EAAAsD,EAAA,SAAA1J,EAAAiI,GACA,IAAAktQ,GAAAn2Q,EAAA+1Q,eAoNA,SAAAjjO,EAAA9yC,GACA,IAKAjpB,EAGAq/R,EARAb,EAAAv1Q,EAAAu1Q,aACAM,EAAA71Q,EAAA61Q,gBACAD,EAAA51Q,EAAA41Q,UACAI,EAAAh2Q,EAAAg2Q,kBACAC,EAAAj2Q,EAAAi2Q,gBAEAI,EAAAL,EACAM,GAAA,EAGAxjO,EAAAmjO,EAAA,IACAl/R,EAAA+7D,EAAAkjO,EACAI,EAAAJ,GACGljO,GAAAmjO,EAAA,IACHl/R,EAAAipB,EAAAk2Q,qBAAApjO,EAAA+iO,EAAA71Q,EAAAw2J,iBAAA,GACA6/G,EAAAR,EACAS,GAAA,IAEAv/R,EAAAw+R,GAAAK,EAAA,EAAA9iO,GAAAkjO,EACAI,EAAAJ,GAGA,OACAj/R,WACAs/R,yBACAC,gBACAF,yBApCA,SAAAtjO,EAAA9yC,GACA,IAAA/P,EAAA+P,EAAAu1Q,cAAAv1Q,EAAA41Q,UAAA,GACA,OACA7+R,SAAAkZ,EAAA6iD,EACAujO,uBAAApmR,EACAqmR,eAAA,KAhNArtQ,EAAAjJ,GACAu2Q,GACAvlI,YACAhkK,EAAAmpS,EAAAp/R,SACA7J,EAAA8yB,EAAAq6I,YAEAhjC,UACArqI,EAAA,EACAE,EAAAipS,EAAAp/R,WAGAy/R,GACAxlI,WAAAtwI,EAAA,EACA22G,SAAA,GAEAtgI,GAAAw/R,EAAAt2Q,GAAAjzB,EAAA6jC,EAAA7jC,EAAAupS,EAAAt2Q,GAAA/yB,EAAA2jC,EAAA3jC,GACAszB,EAAAg2Q,EAAAv2Q,GACAW,EAAA2O,EAAA8C,SACA9C,EAAA6hI,OAAAxwI,IAAAJ,GACA+O,EAAAumL,UAAAl1L,IAAA7pB,GAKApO,KAAAmsS,YAAA9zQ,IACAjqB,WACAypB,WACAI,YACAy1Q,uBAAAF,EAAAE,uBACAC,cAAAH,EAAAG,cACAF,qBAAAD,EAAAC,qBACAnlI,cAAA,EACAxwI,eAAA,IAEK93B,OAQL4sB,QAAA,SAAAyL,GACA,OAAAr4B,KAAA6oE,SAAA7kE,IAAAq0B,IASA4R,YAAA,SAAA1iC,EAAA8wB,GACA,OAAAr4B,KAAA8tS,iBAAA9tS,KAAA6oE,SAAA7kE,IAAAq0B,GAAAvB,YAAAvvB,GAAA8wB,IAWAgxI,gBAAA,SAAAv4J,EAAA3O,EAAAK,EAAA0uB,GACA,MAAA1uB,MAAA,GACA,MAAA0uB,MAAApgB,EAAAvO,SACA,IAAA2mE,EAAAlpE,KAAA6oE,SACA9mC,EAAA/hC,KAAA+hC,WACAgsQ,KACA97F,KACAp4K,EAAA4E,KAAAsD,EAAA,SAAAinI,GACA+kI,EAAAxsS,KAAAuP,EAAA0tB,aAAAwqI,IACAipC,EAAA1wM,KAAA2nE,EAAAllE,IAAAglK,GAAAzxI,SAIA,IAFA,IAAAy2Q,EAAAhuS,KAAAiuS,iBAEA7vQ,EAAA57B,EAA+B47B,EAAAlN,EAAiBkN,IAAA,CAChD,IAAAgrI,EAEA,GAAA4kI,EAEO,CACP5kI,EAAA,SAGA,IAFA,IAAAh4I,EAAAtgB,EAAAmpL,UAAA8zG,EAAA3vQ,GAEAlL,EAAA,EAAAg7Q,EAAAnsQ,EAAA9gC,OAAiDiyB,EAAAg7Q,EAAUh7Q,IAAA,CAG3D,gBAFA++K,EAAA/+K,GAAAw9C,eAAAt/C,EAAA8B,IAEA,CACAk2I,EAAA,WACA,aAVAA,EAAA,SAeAjnK,EAAAinK,EAAAhrI,KAQA6vQ,eAAA,WAKA,IAJA,IAAAlsQ,EAAA/hC,KAAA+hC,WACAmnC,EAAAlpE,KAAA6oE,SACAmlO,GAAA,EAEA96Q,EAAA,EAAAg7Q,EAAAnsQ,EAAA9gC,OAA6CiyB,EAAAg7Q,EAAUh7Q,IACvD,WAAAg2C,EAAAllE,IAAA+9B,EAAA7O,IAAAqE,MAAAm5C,mBACAs9N,GAAA,GAIA,OAAAA,GAUAF,iBAAA,SAAA1rQ,EAAA/J,GACA,IAAAm5H,EAAAxxJ,KAAAmsS,YAAA9zQ,GACA,OAAA7d,EAAAwsB,gBAAA5E,EAAA,GAAAovH,EAAAv5H,YAMAw5H,cAAA,SAAAp5H,GACA,OAAAwB,EAAAmQ,MAAAhqC,KAAAmsS,YAAA9zQ,KAOAs1J,0BAAA,SAAAtjJ,GACA,IAAAhT,EAAAr3B,KAAAssS,kBAEAG,EAAAp1Q,EAAAo1Q,cACA5+G,EAAAx2J,EAAAw2J,iBAAAvrL,QACAwqS,EAAAj/G,EAAA,GAAAA,EAAA,GACA7yJ,GAAA,EAAA3D,EAAA61Q,iBAAA71Q,EAAA41Q,UAAA,IAEA,IAAAjtS,KAAAyqC,aAAAJ,GACA,OACAujJ,SAAA,OACAC,oBAKA,IAGA31J,EAHAi2Q,EAAA9jQ,EAAAoiQ,GAAAp1Q,EAAAm1Q,WAAAn1Q,EAAAk2Q,qBAIA3/G,EAAA,QACAy/G,EAAAh2Q,EAAAg2Q,kBAEAe,EAAApuS,KAAA6E,OAAAb,IAAA,8BAGAqqS,EAAA,MAAAD,EAAA,GAEA,GAAAf,EACAgB,GAAAhB,GAAAc,EAAArB,EAAAsB,EAAA,IACAxgH,EAAA,OACA11J,EAAAi2Q,EAAArB,EAAAsB,EAAA,IACOC,GAAAhB,GAAAc,EAAArB,GAAA,EAAAsB,EAAA,KACPxgH,EAAA,OACA11J,EAAAi2Q,EAAArB,GAAA,EAAAsB,EAAA,MAEAl2Q,EAAAi2Q,EAAArB,EAAAsB,EAAA,SAAAl2Q,EAAAi2Q,EAAArB,GAAA,EAAAsB,EAAA,UAAAl2Q,EAAA,IAGAA,GAAAb,EAAA61Q,gBAAAG,GACA95I,EAAAr7H,EAAA21J,EAAA7yJ,EAAA,OACA4yJ,EAAA,WAEA,CACAk/G,EAAAj/G,EAAA,GAAAA,EAAA,IAEAA,GAAAliJ,EAAA,EADA3Q,EAAA,GAAAmzQ,EAAArB,EACAA,EAAA,KACA,GAAA35O,EAAAn4B,EAAA,GAAA6yJ,EAAA,GAAAi/G,GACAj/G,EAAA,GAAAA,EAAA,GAAAi/G,EAGA,OACAj/G,mBACAD,cAiDA,IAAA3qL,EAAAwzO,EACAvzO,EAAAC,QAAAF,wBC9eA,IAEAwyM,EAFuBl2M,EAAQ,QAE/Bk2M,mBAIA9kM,EAFYpR,EAAQ,QAEpBoR,IA6GAxN,EAAAo3B,qBAnFA,SAAAc,EAAAvqB,EAAAovB,GACA,IAWAouQ,EAXAhxQ,EAAAjC,EAAAyB,cACAt3B,EAAA61B,EAAA3E,aAAA4G,GACAixQ,EAuCA,SAAA/oS,EAAA06B,GACA,IAAAquQ,EAAA,EACAvzQ,EAAAx1B,EAAA+L,MAAAuqB,YAkBA,MAhBA,UAAAoE,EACAquQ,EAAAvzQ,EAAA,GACG,QAAAkF,EACHquQ,EAAAvzQ,EAAA,GAIAA,EAAA,KACAuzQ,EAAAvzQ,EAAA,GAEAA,EAAA,OACAuzQ,EAAAvzQ,EAAA,IAKAuzQ,EA3DAC,CAAAhpS,EAAA06B,GACAuuQ,EAAAnxQ,EAAAjF,IACAq2Q,EAAAlpS,EAAA6yB,IACAgI,EAAAvvB,EAAA0tB,aAAAkwQ,GACAC,EAAA79R,EAAA0tB,aAAAiwQ,GACAG,EAAA,MAAAF,GAAA,WAAAA,EAAA,IACAh+R,EAAAC,EAAA0qB,EAAA0G,WAAA,SAAAH,GACA,OAAA9wB,EAAA0tB,aAAAoD,KAGAitQ,EAAA/9R,EAAAyyB,mBAAA,wBAgBA,OAdA+qQ,GAAA74F,EAAA3kM,EAAAJ,EAAA,OAIAA,EAAA,GAAAm+R,IAGAP,GAAA74F,EAAA3kM,EAAAJ,EAAA,OAIAA,EAAA,GAAAm+R,IAIAvrF,iBAAA5yM,EACA69R,aACAG,eACAD,cACAH,YACAjuQ,WACAsuQ,UACAC,iBACAE,qBAAAh+R,EAAAyyB,mBAAA,0BA8CApgC,EAAAq3B,kBAnBA,SAAA4F,EAAA/E,EAAAvqB,EAAAwvB,GACA,IAAA/4B,EAAAknK,IAEAruI,EAAAkuQ,UACA/mS,EAAAuJ,EAAA9M,IAAA8M,EAAAyyB,mBAAA,wBAAAjD,IAGA71B,MAAAlD,KACAA,EAAA64B,EAAAmuQ,YAGA,IAAAK,EAAAxuQ,EAAAwuQ,eACAG,KAGA,OAFAA,EAAAH,GAAA99R,EAAA9M,IAAAo8B,EAAAuuQ,QAAAruQ,GACAyuQ,EAAA,EAAAH,GAAArnS,EACA8zB,EAAA4O,YAAA8kQ,0BChHA,IAAAv0R,EAAcjb,EAAQ,QAEtB+3B,EAAa/3B,EAAQ,QAErBs6B,EAAat6B,EAAQ,QAIrBg2O,EAFkBh2O,EAAQ,QAE1Bg2O,iBAsBAy5D,EAAA,EAEA,SAAAC,EAAAC,GAKAlvS,KAAAg/B,MAAA,IAAAxkB,EAAAskB,MACAowQ,EAAAjwQ,IAAAj/B,KAAAg/B,OA6GA,SAAAmwQ,EAAA9qS,EAAAE,EAAA8hM,EAAAD,EAAA3qB,EAAAC,GACA,IAAAt+I,IAAAq+I,EAAAp3K,IAAA2qS,EAAAzqS,IAAAF,EAAAgiM,EAAA9hM,IAAAF,EAAAgiM,EAAA9hM,EAAA6hM,IAAA3qB,EAAAp3K,IAAA2qS,EAAAzqS,EAAA6hM,IAGA,OAFA1qB,GAAAt+I,EAAA97B,OAAA,KAAA+C,EAAAgiM,EAAA2oG,EAAAzqS,EAAA6hM,EAAA,KACA3qB,GAAAr+I,EAAA77B,MAAA8C,EAAAE,EAAA6hM,EAAA,IACAhpK,EAIA,SAAAgyQ,EAAA3uS,EAAA+6B,EAAA6zQ,GACA5uS,EAAA+5D,WACA5H,cAAA,SACA5gC,iBAAA,UACAG,YAAAqJ,EAAA08B,eACA9lD,WAAAopB,EAAA54B,KACAitE,WAAA,UACAy/N,SAAA,aAEA/pH,UACAnnJ,UAAAixQ,KAAAjxQ,UACAx7B,KAAAysS,KAAAzsS,MAEA4yO,aAAA65D,GAAA95D,EAAA85D,EAAA7zQ,IA/HAyzQ,EAAA/uS,WACAC,YAAA8uS,EACAxrS,OAAA,SAAA+3B,EAAA53B,EAAAwmM,EAAAmlG,GACA,IAAAh4Q,EAAAiE,EAAA6D,SAAA,cACAm1H,EAAAx0J,KAAAg/B,MAGA,GAFAw1H,EAAAtvH,YAEA3N,EAAAvzB,IAAA,SAAAomM,EAAA,CAIA,IAAAolG,EAAAj4Q,EAAA8H,SAAA,aAEAk2H,EAAAi6I,EAAAnwQ,SAAA,aACAowQ,GACA/9Q,KACA7rB,KAAA0xB,EAAAvzB,IAAA,QACA8B,MAAAyxB,EAAAvzB,IAAA,SACAgO,IAAAulB,EAAAvzB,IAAA,OACA8Q,OAAAyiB,EAAAvzB,IAAA,WAEAu+F,KACAvpF,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aAEA+4N,eAAAvzP,EAAAvzB,IAAA,kBACA0rS,WAAA,EACA//C,eAGA3vP,KAAA2vS,SAAAvlG,EAAAqlG,EAAAl6I,GAEAv1J,KAAA4vS,eAAAp0Q,EAAAi0Q,EAAAD,EAAAj6I,EAAAg6I,GAEAj4Q,EAAAi0K,gBAAA/2C,EAAAi7I,EAAA/9Q,IAAA+9Q,EAAAltM,OAOAotM,SAAA,SAAAvlG,EAAAqlG,EAAAl6I,GACA,QAAAr8F,EAAAkxI,EAA+BlxI,EAAMA,IAAA3sB,WAAA,CACrC,IAAA8E,EAAA6nB,EAAA75B,WAAAr7B,IAAA,QACAgxC,EAAAugH,EAAAa,YAAA/kH,GACAg1J,EAAAt+L,KAAAE,IAAA+sC,EAAAh8B,MAAA62R,GAAAJ,EAAA3kB,gBACA2kB,EAAAC,YAAArpG,EA1DA,EA2DAopG,EAAA9/C,WAAApuP,MACA23D,OACA7nB,OACAr4B,MAAAqtL,MAQAupG,eAAA,SAAAp0Q,EAAAi0Q,EAAAD,EAAAj6I,EAAAg6I,GASA,IAPA,IAAAO,EAAA,EACAhlB,EAAA2kB,EAAA3kB,eACA7xQ,EAAAuiB,EAAAx3B,IAAA,qBACA+rS,EAAAz4Q,EAAA04Q,iBAAAP,EAAA/9Q,IAAA+9Q,EAAAltM,KACAmtM,EAAAD,EAAAC,WACA//C,EAAA8/C,EAAA9/C,WAEA5uP,EAAA4uP,EAAA1uP,OAAA,EAAuCF,GAAA,EAAQA,IAAA,CAC/C,IAAA4L,EAAAgjP,EAAA5uP,GACAsuS,EAAA1iS,EAAAusD,KACAmtI,EAAA15L,EAAAqM,MACAq4B,EAAA1kC,EAAA0kC,KAEAq+P,EAAAK,EAAA/2R,QACA02R,GAAArpG,EAAAykF,EACAzkF,EAAAykF,EACAz5O,EAAA,MAGA,IAAA5wC,EAAA,IAAA+Z,EAAA4f,SACArS,OACAqV,OAAA+xQ,EAAAW,EAAA,EAAAzpG,EAAAptL,EAAAlY,IAAA4uP,EAAA1uP,OAAA,MAAAF,IAEAwX,MAAAshB,EAAAmJ,SAAAwsQ,EAAAlqO,gBACAniC,SAAA,QACAkO,OACAiG,SAAAi+G,EAAAE,eACAhhH,SAAA8gH,EAAAC,YAEA5gI,EAAA,GACA85L,QAAA70L,EAAA0Q,MAAAglQ,EAAAF,KAEArvS,KAAAg/B,MAAAC,IAAAx+B,GACA2uS,EAAA3uS,EAAA+6B,EAAA6zQ,GACAS,GAAAzpG,EA1GA,IAiHA5hM,OAAA,WACAzE,KAAAg/B,MAAAkG,cA6BA,IAAAjiC,EAAAgsS,EACA/rS,EAAAC,QAAAF,wBC7KAC,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOAwnS,IACA,SAAA/sS,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA+kS,EAAA3wS,EAAA,KAEA4wS,GAEAhlS,EAFA+kS,IAEsC/kS,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EglS,EAAAp3R,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA47Q,EAAAp3R,QAAAnW,KAAAutS,EAAAp3R,UAGA5V,EAAA4V,QAAAo3R,EAAAp3R,SAIAq3R,IACA,SAAAltS,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA8oS,EAAA9wS,EAAA,KACA+wS,EAAA/wS,EAAA6+C,EAAAiyP,GACAE,EAAAhxS,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAm9N,EAAA/6R,EACAg7R,EAAA,GATA,EAEA,KAEA,KAEA,MAUAhsP,EAAA,QAAA2uB,EAAA,SAKAs9N,IACA,SAAAttS,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAyyJ,EAAA3sJ,EAFA33E,EAAA,IAMAkxS,EAAAv5N,EAFA33E,EAAA,KAMAmxS,EAAAx5N,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,gBACA0/K,SAAA,EAAAmuH,EAAA13R,SAAA,UACAs6D,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAGAqrK,YACAusH,YAAAD,EAAA33R,SAEAqb,YACAw8Q,QAAA/sE,EAAA9qN,SAEAjW,OACAwkB,MACA9jB,KAAAuX,OACAhC,QAAA,GAEA9Q,KACAzE,KAAAuX,OACAhC,QAAA0gC,KAEAzxC,KACAxE,KAAAuX,OACAhC,SAAA0gC,KAEAlyC,SACAmsE,SAAAj6D,QACAoY,KAAA1gB,OACA0/R,UACArtS,KAAAiW,QACAV,SAAA,GAEA+3R,kBACAttS,KAAA2N,OACA4H,QAAA,IAEAnW,KAAAuO,OACAsB,MAAAtB,OACA9H,WACA7F,KAAAuX,OACA8nJ,UAAA,SAAAt1J,GACA,OAAAA,GAAA,GAAAA,IAAAqsE,SAAArsE,EAAA,OAIAuD,KAAA,WACA,OACA8xK,aAAA,IAIArnK,OACAhU,OACAmtM,WAAA,EACAj5L,QAAA,SAAAlU,GACA,IAAA44L,OAAAzyL,IAAAnG,IAAAwT,OAAAxT,GACA,QAAAmG,IAAAyyL,EAAA,CACA,GAAA11L,MAAA01L,GACA,YAEAzyL,IAAA1N,KAAAqJ,YACA82L,EAAAngM,KAAA+wS,YAAA5wG,EAAAngM,KAAAqJ,YAGA82L,GAAAngM,KAAAiI,MAAAk4L,EAAAngM,KAAAiI,KACAk4L,GAAAngM,KAAAgI,MAAAm4L,EAAAngM,KAAAgI,KACAhI,KAAA4iL,aAAAud,EACAngM,KAAAge,MAAA,QAAAmiL,MAIAtkL,UACAm1R,YAAA,WACA,OAAAhxS,KAAAixS,UAAAjxS,KAAAuH,MAAAvH,KAAAsnB,MAAAtnB,KAAAgI,KAEAkpS,YAAA,WACA,OAAAlxS,KAAAmxS,UAAAnxS,KAAAuH,MAAAvH,KAAAsnB,MAAAtnB,KAAAiI,KAEAmpS,aAAA,WACA,IAAA7pS,EAAAvH,KAAAuH,MACA+f,EAAAtnB,KAAAsnB,KACA+pR,EAAArxS,KAAAqxS,aACAhoS,EAAArJ,KAAAqJ,UAEAioS,EAAAD,EAAA/pR,GACA,YAAA5Z,IAAArE,GACAioS,EAAAjoS,GACAoM,QAAAC,KAAA,2FAEArM,GAEAtB,KAAAE,IAAAopS,EAAA9pS,GAAA+pS,IAGAC,gBAAA,WACA,gBAAAvxS,KAAA8wS,kBAEAh9N,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCy9N,gBAAA,WACA,OAAAxxS,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtE4/Q,oBAAA,WACA,OAAAzxS,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAEhDg+N,kBAAA,WACA,IAAA9uH,EAAA5iL,KAAA4iL,aACA,uBAAAA,QAAAl1K,IAAA1N,KAAAqJ,UACAu5K,EAAAt7K,QAAAtH,KAAAqJ,WAEAu5K,IAIA7mK,SACAg1R,YAAA,SAAAriR,EAAArlB,GAEA,YADAqE,IAAArE,MAAArJ,KAAAoxS,cACA5rR,sBAAAzK,OAAA2T,GAAApnB,QAAA+B,MAEAgoS,aAAA,SAAA9pS,GACA,QAAAmG,IAAAnG,EAAA,SACA,IAAAoqS,EAAApqS,EAAAK,WACAgqS,EAAAD,EAAA7xS,QAAA,KACAuJ,EAAA,EAIA,OAHA,IAAAuoS,IACAvoS,EAAAsoS,EAAA1wS,OAAA2wS,EAAA,GAEAvoS,GAEA8nS,UAAA,SAAA5jS,EAAA+Z,GACA,oBAAA/Z,QAAAG,IAAAH,EAAA,OAAAvN,KAAA4iL,aAEA,IAAAivH,EAAA9pS,KAAAI,IAAA,GAAAnI,KAAAoxS,cAEA,OAAApxS,KAAA+wS,aAAAc,EAAAtkS,EAAAskS,EAAAvqR,GAAAuqR,IAEAZ,UAAA,SAAA1jS,EAAA+Z,GACA,oBAAA/Z,QAAAG,IAAAH,EAAA,OAAAvN,KAAA4iL,aAEA,IAAAivH,EAAA9pS,KAAAI,IAAA,GAAAnI,KAAAoxS,cAEA,OAAApxS,KAAA+wS,aAAAc,EAAAtkS,EAAAskS,EAAAvqR,GAAAuqR,IAEAC,SAAA,WACA,IAAA9xS,KAAAyxS,sBAAAzxS,KAAAkxS,YAAA,CACA,IAAA3pS,EAAAvH,KAAAuH,OAAA,EACA44L,EAAAngM,KAAAmxS,UAAA5pS,EAAAvH,KAAAsnB,MACAtnB,KAAA+lO,gBAAA5lC,KAEA4xG,SAAA,WACA,IAAA/xS,KAAAyxS,sBAAAzxS,KAAAgxS,YAAA,CACA,IAAAzpS,EAAAvH,KAAAuH,OAAA,EACA44L,EAAAngM,KAAAixS,UAAA1pS,EAAAvH,KAAAsnB,MACAtnB,KAAA+lO,gBAAA5lC,KAEAgnB,WAAA,SAAA5vJ,GACAv3D,KAAAge,MAAA,OAAAu5C,GACAv3D,KAAAye,MAAAvU,MAAA67N,gBAAA/lO,KAAA0xS,oBAEAxqF,YAAA,SAAA3vJ,GACAv3D,KAAAge,MAAA,QAAAu5C,IAEAwuK,gBAAA,SAAA5lC,GACA,IAAAhd,EAAAnjL,KAAA4iL,aACA,iBAAAud,QAAAzyL,IAAA1N,KAAAqJ,YACA82L,EAAAngM,KAAA+wS,YAAA5wG,EAAAngM,KAAAqJ,YAEA82L,GAAAngM,KAAAiI,MAAAk4L,EAAAngM,KAAAiI,KACAk4L,GAAAngM,KAAAgI,MAAAm4L,EAAAngM,KAAAgI,KACAm7K,IAAAgd,GAIAngM,KAAAge,MAAA,QAAAmiL,GACAngM,KAAAge,MAAA,SAAAmiL,EAAAhd,GACAnjL,KAAA4iL,aAAAud,GALAngM,KAAAye,MAAAvU,MAAA67N,gBAAA/lO,KAAA0xS,oBAOAM,kBAAA,SAAAzqS,GACA,IAAA44L,EAAA,KAAA54L,OAAAmG,EAAAqN,OAAAxT,GACAkD,MAAA01L,IAAA,KAAA54L,GACAvH,KAAA+lO,gBAAA5lC,KAIApgL,QAAA,WACA,IAAAkyR,EAAAjyS,KAAAye,MAAAvU,MAAAuU,MAAAvU,MACA+nS,EAAAvrQ,aAAA,qBACAurQ,EAAAvrQ,aAAA,gBAAA1mC,KAAAiI,KACAgqS,EAAAvrQ,aAAA,gBAAA1mC,KAAAgI,KACAiqS,EAAAvrQ,aAAA,gBAAA1mC,KAAA4iL,cACAqvH,EAAAvrQ,aAAA,gBAAA1mC,KAAAyxS,sBAEArqE,QAAA,WACApnO,KAAAye,OAAAze,KAAAye,MAAAvU,OACAlK,KAAAye,MAAAvU,MAAAuU,MAAAvU,MACAw8B,aAAA,gBAAA1mC,KAAA4iL,iBAkDAsvH,IACA,SAAAhvS,EAAAqhD,EAAAhlD,GAEA,aACA,IAQA+0E,GAAiB7wE,OARjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBgB,OAC1G,kBACAq8D,EAAAi9N,gBAAA,oBAAAj9N,EAAAi9N,gBAAA,IACKh9N,cAAAD,EAAAk9N,sBACAU,uBAAA59N,EAAAs8N,WACAuB,oBAAA79N,EAAAg9N,kBACL7xR,IAAQihN,UAAA,SAAAp8C,GAA6BA,EAAAoN,qBAA2Bp9G,EAAA,SAAAr9D,EAAA,QAA4BktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,4BAAAc,OAAiDs8D,cAAAD,EAAAy8N,aAA+B35R,OAAQ2sJ,KAAA,UAAgBtkJ,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAw9N,SAAAxtH,OAAuBrtK,EAAA,KAAUgB,MAAA,YAAAq8D,EAAAg9N,gBAAA,0BAAoEh9N,EAAAO,KAAAP,EAAA,SAAAr9D,EAAA,QAAuCktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,4BAAAc,OAAiDs8D,cAAAD,EAAA28N,aAA+B75R,OAAQ2sJ,KAAA,UAAgBtkJ,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAu9N,SAAAvtH,OAAuBrtK,EAAA,KAAUgB,MAAA,YAAAq8D,EAAAg9N,gBAAA,uBAAiEh9N,EAAAO,KAAA59D,EAAA,YAA4B0B,IAAA,QAAAvB,OAAmB9P,MAAAgtE,EAAAm9N,kBAAAh+N,SAAAa,EAAAk9N,oBAAA5/Q,KAAA0iD,EAAAi9N,gBAAAvpS,IAAAssE,EAAAtsE,IAAAD,IAAAusE,EAAAvsE,IAAApF,KAAA2xE,EAAA3xE,KAAA6P,MAAA8hE,EAAA9hE,OAA0JiN,IAAKumN,KAAA1xJ,EAAA4yI,WAAA55K,MAAAgnC,EAAA2yI,YAAA+hB,OAAA10J,EAAAy9N,mBAA6E18C,UAAW+8C,SAAA,SAAA9tH,GAA4B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAu9N,SAAAvtH,IAAqB,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAuE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAw9N,SAAAxtH,SAAwB,IAE5hD5sK,oBACjB4sC,EAAA,KAIAwxF,GACA,SAAA7yI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBgmN,EACA,SAAAriN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBi3I,GACA,SAAAtzI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAAjjB,EAAA5uD,EAAA,GAEA4D,EAAA4V,SACAvO,KAAA,SAAA/J,EAAA4sQ,EAAAvmD,GACA,IAAAptK,EAAA,KACAwX,OAAA,EACAz1C,EAAA,WACA,OAAAqrM,EAAAh5J,QAAAu/M,EAAAjuP,YAAA7S,SAEA64C,EAAA,WACA,IAAA31C,KAAAyhD,EAAA,KACAz1C,IAEA8sG,cAAA7uE,GACAA,EAAA,OAGA,EAAAyU,EAAAzuC,IAAAjf,EAAA,qBAAA0D,GACA,IAAAA,EAAAguL,SACAjhI,EAAA,IAAAzhD,MACA,EAAA0+C,EAAA23B,MAAAj2E,SAAA,UAAAu1C,GACAmjE,cAAA7uE,GACAA,EAAAgvE,YAAAjtG,EAAA,WAOAmjN,EACA,SAAA17N,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,+BCpkBzB2D,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOA6pS,IACA,SAAApvS,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAonS,EAAAhzS,EAAA,KAEAizS,GAEArnS,EAFAonS,IAEsCpnS,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EqnS,EAAAz5R,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAi+Q,EAAAz5R,QAAAnW,KAAA4vS,EAAAz5R,UAGA5V,EAAA4V,QAAAy5R,EAAAz5R,SAIA05R,IACA,SAAAvvS,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAmrS,EAAAnzS,EAAA,KACAozS,EAAApzS,EAAA6+C,EAAAs0P,GACAE,EAAArzS,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAw/N,EAAAp9R,EACAq9R,EAAA,GATA,EAEA,KAEA,KAEA,MAUAruP,EAAA,QAAA2uB,EAAA,SAKA2/N,IACA,SAAA3vS,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAmBAjuE,EAAA4V,SACAnW,KAAA,QACAE,OACAuuC,KAAAlgC,OACA2hS,SAAAr5R,QACAjW,KAAA2N,OACA4hS,IAAAt5R,QACAu5R,mBAAAv5R,QACAtT,MAAAgL,OACA0gB,KAAA1gB,QAEA4K,SACAk3R,YAAA,SAAA17O,GACAv3D,KAAAge,MAAA,QAAAu5C,KAGA17C,UACAq3R,QAAA,WACA,OAAAlzS,KAAA6xB,OAAA7xB,KAAAi0E,cAA8CpiD,SAO9CshR,IACA,SAAAjwS,EAAAqhD,EAAAhlD,GAEA,aACA,IAMA+0E,GAAiB7wE,OANjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA2xE,EAAAy+N,mBAAA,0BAA0D97R,EAAA,QAAaE,YAAA,SAAAc,OAC/Lq8D,EAAA/wE,KAAA,WAAA+wE,EAAA/wE,KAAA,GACA+wE,EAAA2+N,SAAA,WAAA3+N,EAAA2+N,SACOE,SAAA7+N,EAAAw+N,MACPx6R,OAAckC,gBAAA85D,EAAApuE,SAA6BouE,EAAAQ,GAAA,WAAAR,EAAA,SAAAr9D,EAAA,KAA2CE,YAAA,8BAAAsI,IAA8Cm1D,MAAA,SAAA0vG,GAAyBA,EAAAC,kBAAyBjwG,EAAA0+N,YAAA1uH,OAA0BhwG,EAAAO,MAAA,MAE/Ln9D,oBACjB4sC,EAAA,+BCzSArhD,EAAAC,QAAiB5D,EAAQ,4BCmHzB2D,EAAAC,SAhGA6W,SACAK,OACAH,OACAguB,KAAA,OACApI,QAAA,KACAovL,MAAA,OACAC,MAAA,OACAyvE,KAAA,OACAx5O,MAAA,SAGAiuP,UACAn5R,MAAA,OACAs8F,MAAA,mBAEAz8F,UACAG,OACA4P,KAAA,OACAgkM,KAAA,WAGAwlF,WACAp5R,OACAzU,KAAA,SACAojB,IAAA,SACA/a,MAAA,QACAylS,MAAA,UAGA/8H,SACAt8J,MAAA,MAEAs5R,aACAt5R,MAAA,QACAs8F,MAAA,aAGAlkG,QACA+jO,WACAvtN,IAAA,KACAD,IAAA,MACApjB,KAAA,MACAguS,QAAA,MACAC,cAAA,QACAv5R,MAAA,MACAywK,KAAA,KACA+oH,QAAA,OACAC,QAAA,MACAxkI,YAAA,MACA3mJ,EAAA,MACAorR,QAAA,MACAljS,IAAA,KACAg/K,SAAA,QACAp6I,MAAA,KACA25H,MAAA,MACA4kI,OAAA,MACA/qR,OAAA,MACAomJ,MAAA,OACA4kI,aAAA,OACAC,WAAA,QACAC,SAAA,QAGA3nP,MACA4nP,SACAC,UAAA,sBACAC,aAAA,WAEA9hS,QACA41J,QACAg/D,OAAA,GACAmtE,SAAA,oCACAC,YAAA,sBAEAvxH,UACAmkD,OAAA,0BACAmtE,SAAA,gDACAC,YAAA,iCACAC,WACA32Q,OAAA,IACA1M,IAAA,OAIApgB,MACA0jS,QAAA,SACAC,YAAA,uBACAJ,SAAA,oBACAC,YAAA,UACAC,WACA32Q,OAAA,IACA1M,IAAA,6BC9GA,IAAA9tB,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAAkoE,EAAmBloE,EAAQ,QAE3Bm1S,EAAiBn1S,EAAQ,QAoBzB6D,EAAAw4D,eAAA6L,EAAA,kBACArkE,EAAAm6D,eAAAm3O,yBC/BA,IAAAtxS,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBisM,EAAiBjsM,EAAQ,QAEzB+3B,EAAa/3B,EAAQ,QAErBohE,EAAoBphE,EAAQ,QAoB5B0D,EAAAG,EAAAG,qBACAC,KAAA,YAMAmxS,oBACA9uS,KAAA,EACAC,MAAA,EACAkM,IAAA,EACA8C,OAAA,GAEA0J,KAAA,SAAA7a,EAAAC,GAKA5D,KAAA2D,UAMA3D,KAAA4D,MAMA5D,KAAAs0J,gBAMA7wJ,OAAA,SAAA6wJ,EAAA3wJ,EAAAC,EAAAggC,GACA5jC,KAAAs0J,kBAEA,IAAAA,EAAAtwJ,IAAA,QAKAhE,KAAAq0J,SAAA9nJ,MAAAvM,KAAA8E,WAJA9E,KAAAg/B,MAAAkG,aAUA4vH,iBAAA,SAAA91H,GACA,IAAAs1H,EAAAt0J,KAAAs0J,eACA/+H,EAAAi2K,EAAAI,kBAAAt3C,EAAAtwJ,IAAA,eACAkkC,EAAAlJ,EAAA8I,kBACA9I,EAAAC,IAAA,IAAAzkB,EAAAyiB,MACAmH,IAAA,EAEAD,QAAA,EACApc,OACA1jB,EAAA6jC,EAAA7jC,EAAAkxB,EAAA,GACAhxB,EAAA2jC,EAAA3jC,EAAAgxB,EAAA,GACAvc,MAAAkvB,EAAAlvB,MAAAuc,EAAA,GAAAA,EAAA,GACAtc,OAAAivB,EAAAjvB,OAAAsc,EAAA,GAAAA,EAAA,IAEAhd,OACAb,KAAA48I,EAAAtwJ,IAAA,mBACAk/B,OAAAoxH,EAAAtwJ,IAAA,eACA+4B,UAAAu3H,EAAAtwJ,IAAA,oBAcAg1J,oBAAA,SAAA47I,EAAAC,EAAAhqS,GAEA,IAAA+tJ,GADA/tJ,SACA+tJ,WACAtE,EAAAt0J,KAAAs0J,eACAwgJ,KAMA,GAJA,WAAAD,IACAC,EAAA9lR,OAAAslI,EAAAtwJ,IAAA,eAGA,UAAA6wS,EAAA,CACA,IAAAE,EAAAzgJ,EAAAtwJ,IAAA,gBACA8wS,EAAA3uS,MAAA4uS,EAGA,SAAA7jO,EAAAnnE,GACA,OAAA+qS,EAAA/qS,GAGA,SAAAs1L,EAAAt1L,EAAAxC,GACAutS,EAAA/qS,GAAAxC,EAGA,IAAA25D,EAAAozF,EAAAwtH,kBAAAlpH,GAAAtE,EAAAzyF,cAAA+yO,IACAryO,EAAA5B,EAAA6B,mBAAAtB,GAaA,OAZArnC,EAAA4E,KAAA8jC,EAAA,SAAA/+D,GACA,IAAAwxS,EAAA9zO,EAAA19D,GAEAqH,EAAAguJ,uBAAA,YAAAr1J,IACAA,EAAA,aACAwxS,EAAA9zO,EAAAM,mBAGAb,EAAAmiC,UAAAt/F,EAAAqxS,IACAG,KAAApzO,YAAAgzO,EAAA1jO,EAAAmuH,KAGAy1G,EAAAD,IAMA5/I,cAAA,SAAAj2H,GACA,IAAAzH,EAAAv3B,KAAAs0J,eACA1wJ,EAAA5D,KAAA4D,IACA0zB,EAAAi0K,gBAAAvsK,EAAAzH,EAAAqyC,sBACA5wD,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,eAQAsiG,SAAAx6H,EAAAwiC,OAGAn5D,EAAAC,QAAAF,wBC1KA,IAyHAgyS,EAzHArkH,EAAerxL,EAAQ,QAEvBs6B,EAAA+2J,EAAAtd,KACA94J,EAAAo2K,EAAAp2K,QACAosB,EAAAgqJ,EAAAhqJ,OAsBA,SAAAsuQ,EAAA/3R,EAAAvZ,GACA5D,KAAAm1S,MAAAh4R,EACAnd,KAAA+hC,YAAA,aACA/hC,KAAA2tM,YAAA,KACA3tM,KAAAivD,KAAArrD,EACA5D,KAAAo1S,YAAA,IAAAC,KAAAC,mBA4EA,SAAAp7P,EAAAC,EAAAC,GAEA,OADAA,MAAA,KACAvgB,EAAAlpB,KAAA,cAAA0pC,GACA,IAAA9sC,EAAA6sC,EAAAC,GACAC,EAAAH,EAAAE,GAAA,EACAzf,KACAC,KAIA,OAHAD,EAAAyf,GAAA9sC,EAAA+sC,EACAzf,EAAAwf,GAAA9sC,EAAA+sC,EACA1f,EAAA,EAAAyf,GAAAxf,EAAA,EAAAwf,GAAAD,EAAA,EAAAC,GACAtyC,KAAAY,IAAA3I,KAAAiqC,YAAArP,GAAAyf,GAAAr6C,KAAAiqC,YAAApP,GAAAwf,KACGr6C,MApFHk1S,EAAAh1S,UAAA6hC,YAAA,aAEAmzQ,EAAAh1S,UAAAwoC,QAAA,SAAA5e,GACA9pB,KAAAunC,MAAAzd,GAGAorR,EAAAh1S,UAAAqoC,UAAA,SAAAzkB,GACA9jB,KAAAsnC,QAAAtnC,KAAAo1S,YAAAG,cAAA,IAAAF,KAAAG,MAAA1xR,EAAA,GAAAA,EAAA,MAGAoxR,EAAAh1S,UAAAqqK,aAAA,SAAAD,GACAtqK,KAAA2tM,WAAArjC,GAGA4qI,EAAAh1S,UAAA+pK,QAAA,WACA,OAAAjqK,KAAAm1S,OAGAD,EAAAh1S,UAAA+pC,YAAA,SAAAn5B,GACA,IAAAu5B,EAAA,IAAAgrQ,KAAAG,MAAA1kS,EAAA,GAAAA,EAAA,IAUA2kS,EAAAz1S,KAAAm1S,MAAAO,oBAAArrQ,GAEAigI,EAAAtqK,KAAA2tM,WACA,OAAA8nG,EAAApxS,EAAAimK,EAAA,GAAAmrI,EAAAlxS,EAAA+lK,EAAA,KAGA4qI,EAAAh1S,UAAAkqC,YAAA,SAAA1M,GACA,IAAA4sI,EAAAtqK,KAAA2tM,WAOA,QALAjwK,EAAA19B,KAAAm1S,MAAAQ,qBACAtxS,EAAAq5B,EAAA,GAAA4sI,EAAA,GACA/lK,EAAAm5B,EAAA,GAAA4sI,EAAA,MAGA4jC,IAAAxwK,EAAAywK,MAGA+mG,EAAAh1S,UAAA4pC,YAAA,WACA,IAAAlmC,EAAA5D,KAAAivD,KACA,WAAAz0C,EAAAqsB,aAAA,IAAAjjC,EAAAkuD,WAAAluD,EAAAmuD,cAGAmjP,EAAAh1S,UAAA6oC,iBAAA,WACA,OAAAnC,EAAA8C,UAGAwrQ,EAAAh1S,UAAA01S,eAAA,SAAA9kS,GACA,IAAAo3B,EAAAloC,KAAA8pC,cACA,OACAzO,UAEA73B,KAAA,OACAa,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACAyU,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,QAEArV,KACAw+B,MAAAvI,EAAArvB,KAAAxK,KAAAiqC,YAAAjqC,MACA6xB,KAAAgI,EAAArvB,KAAA0vC,EAAAl6C,SAqBAk1S,EAAAnzQ,WAAAmzQ,EAAAh1S,UAAA6hC,WA6BAmzQ,EAAAxrQ,OAAA,SAAA/lC,EAAAC,GACA,IAAAiyS,EACAh7P,EAAAj3C,EAAA4tD,SAEA7tD,EAAAkvD,cAAA,gBAAAijP,GACA,IAAA7jP,EAAAruD,EAAAe,QAAAstD,QACAi4G,EAAAj4G,EAAAk4G,kBAEA,uBAAAkrI,KACA,UAAAh2O,MAAA,0BAKA,GAFA41O,KAvCA,WACA,SAAAA,EAAAp6P,GACA76C,KAAA+1S,MAAAl7P,EAsBA,OAnBAo6P,EAAA/0S,UAAA,IAAAm1S,KAAAJ,QAQAA,EAAA/0S,UAAA81S,WAAA,SAAArlS,GAEA,OADAA,EAAAslS,WAAAC,UAAAjmS,YAAAjQ,KAAA+1S,OACA/1S,KAAA+1S,OAOAd,EAAA/0S,UAAA23K,KAAA,aAEAo9H,EAeAkB,GAEAN,EACA,UAAAx2O,MAAA,qCAGA,IAAAy2O,EAAAM,OAAA,CAEA,IAAAC,EAAAx7P,EAAA0I,cAAA,sBAEA8yP,IAGAnsI,EAAA3xJ,MAAA1S,KAAA,MACAqkK,EAAA3xJ,MAAAvG,IAAA,MACA6oC,EAAArO,YAAA6pQ,KAGAA,EAAAxmS,SAAAC,cAAA,QACAyI,MAAAyzB,QAAA,yBAEAqqQ,EAAAr1P,UAAA/hB,IAAA,qBACA4b,EAAA5qC,YAAAomS,GACA,IAAAl5R,EAAA24R,EAAAM,OAAA,IAAAf,KAAA3wP,IAAA2xP,GACArqE,EAAA,IAAAipE,EAAA/qI,GACA/sJ,EAAAm5R,WAAAtqE,GAEA/5K,EAAAijH,sBAAA,WACA,OACAz2H,WAAA,EACAC,UAAA,IAKAvhC,EAAA24R,EAAAM,OAAA,IAGAtyR,EAAAgyR,EAAA9xS,IAAA,UACA8lB,EAAAgsR,EAAA9xS,IAAA,QAEA,GAAA8f,GAAAgG,EAAA,CACA,IAAA4T,EAAA,IAAA23Q,KAAAG,MAAA1xR,EAAA,GAAAA,EAAA,IACA3G,EAAAo5R,cAAA74Q,EAAA5T,IAGA+rR,EAAA,IAAAX,EAAA/3R,EAAAvZ,IACA2mK,aAAAurI,EAAAtrI,cAAA,MACAqrI,EAAAntQ,QAAA5e,GACA+rR,EAAAttQ,UAAAzkB,GACAgyR,EAAAznR,iBAAAwnR,IAEAlyS,EAAAqxD,WAAA,SAAAx5B,GACA,SAAAA,EAAAx3B,IAAA,sBACAw3B,EAAAnN,iBAAAwnR,MAKA,IAAA5yS,EAAAiyS,EACAhyS,EAAAC,QAAAF,sBChOAC,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOAqpI,IACA,SAAA5uI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAqrS,EAAAj3S,EAAA,KAEAk3S,GAEAtrS,EAFAqrS,IAEsCrrS,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EsrS,EAAA19R,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkiR,EAAA19R,QAAAnW,KAAA6zS,EAAA19R,UAGA5V,EAAA4V,QAAA09R,EAAA19R,SAIAg5H,IACA,SAAA7uI,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAmvS,EAAAn3S,EAAA,KACAo3S,EAAAp3S,EAAA6+C,EAAAs4P,GACAE,EAAAr3S,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAwjO,EAAAphS,EACAqhS,EAAA,GATA,EAEA,KAEA,KAEA,MAUAryP,EAAA,QAAA2uB,EAAA,SAKA8+D,IACA,SAAA9uI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAOAjuE,EAAA4V,SACAnW,KAAA,kBAKAqvI,IACA,SAAA/uI,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,oBAAhFpX,KAA8G+0E,GAAA,gBAEvHp9D,oBACjB4sC,EAAA,6BCtQA,IAmEAo1L,EACAC,EACAi9D,EACAC,EAtEApkH,EAAWnzL,EAAQ,QAEnBqnC,EAAarnC,EAAQ,QAKrBwnC,EAAA2rJ,EAAA1rJ,eACAmsB,EAAAprD,KAAAC,IACA2jC,EAAA5jC,KAAAE,IAKA,SAAA4+B,EAAAxiC,EAAAE,EAAAyU,EAAAC,GACAD,EAAA,IACA3U,GAAA2U,EACAA,MAGAC,EAAA,IACA1U,GAAA0U,EACAA,MAOAjZ,KAAAqE,IAKArE,KAAAuE,IAKAvE,KAAAgZ,QAKAhZ,KAAAiZ,SAGA4tB,EAAA3mC,WACAC,YAAA0mC,EAKAwsI,MAAA,SAAAj7B,GACA,IAAA/zI,EAAA8uD,EAAAilF,EAAA/zI,EAAArE,KAAAqE,GACAE,EAAA4uD,EAAAilF,EAAA7zI,EAAAvE,KAAAuE,GACAvE,KAAAgZ,MAAA2yB,EAAAysG,EAAA/zI,EAAA+zI,EAAAp/H,MAAAhZ,KAAAqE,EAAArE,KAAAgZ,OAAA3U,EACArE,KAAAiZ,OAAA0yB,EAAAysG,EAAA7zI,EAAA6zI,EAAAn/H,OAAAjZ,KAAAuE,EAAAvE,KAAAiZ,QAAA1U,EACAvE,KAAAqE,IACArE,KAAAuE,KAOAyiC,gBACA2yM,KACAC,KACAi9D,KACAC,KACA,SAAAnqR,GAIA,GAAAA,EAAA,CAIAgtN,EAAA,GAAAk9D,EAAA,GAAA72S,KAAAqE,EACAs1O,EAAA,GAAAm9D,EAAA,GAAA92S,KAAAuE,EACAq1O,EAAA,GAAAk9D,EAAA,GAAA92S,KAAAqE,EAAArE,KAAAgZ,MACA4gO,EAAA,GAAAi9D,EAAA,GAAA72S,KAAAuE,EAAAvE,KAAAiZ,OACA8tB,EAAA4yM,IAAAhtN,GACAoa,EAAA6yM,IAAAjtN,GACAoa,EAAA8vQ,IAAAlqR,GACAoa,EAAA+vQ,IAAAnqR,GACA3sB,KAAAqE,EAAA8uD,EAAAwmL,EAAA,GAAAC,EAAA,GAAAi9D,EAAA,GAAAC,EAAA,IACA92S,KAAAuE,EAAA4uD,EAAAwmL,EAAA,GAAAC,EAAA,GAAAi9D,EAAA,GAAAC,EAAA,IACA,IAAAzjQ,EAAA1H,EAAAguM,EAAA,GAAAC,EAAA,GAAAi9D,EAAA,GAAAC,EAAA,IACAxjQ,EAAA3H,EAAAguM,EAAA,GAAAC,EAAA,GAAAi9D,EAAA,GAAAC,EAAA,IACA92S,KAAAgZ,MAAAq6B,EAAArzC,KAAAqE,EACArE,KAAAiZ,OAAAq6B,EAAAtzC,KAAAuE,KASA6jC,mBAAA,SAAA5yB,GACA,IAAAD,EAAAvV,KACA2wC,EAAAn7B,EAAAwD,MAAAzD,EAAAyD,MACA43B,EAAAp7B,EAAAyD,OAAA1D,EAAA0D,OACA0T,EAAAia,EAAA8C,SAKA,OAHA9C,EAAAumL,UAAAxgM,MAAApX,EAAAlR,GAAAkR,EAAAhR,IACAqiC,EAAAr1B,MAAAob,KAAAgkB,EAAAC,IACAhK,EAAAumL,UAAAxgM,KAAAnX,EAAAnR,EAAAmR,EAAAjR,IACAooB,GAOAsrJ,UAAA,SAAAziK,GACA,IAAAA,EACA,SAGAA,aAAAqxB,IAEArxB,EAAAqxB,EAAA6C,OAAAl0B,IAGA,IAAAD,EAAAvV,KACA+2S,EAAAxhS,EAAAlR,EACA2yS,EAAAzhS,EAAAlR,EAAAkR,EAAAyD,MACAi+R,EAAA1hS,EAAAhR,EACA2yS,EAAA3hS,EAAAhR,EAAAgR,EAAA0D,OACAk+R,EAAA3hS,EAAAnR,EACA+yS,EAAA5hS,EAAAnR,EAAAmR,EAAAwD,MACAq+R,EAAA7hS,EAAAjR,EACA+yS,EAAA9hS,EAAAjR,EAAAiR,EAAAyD,OACA,QAAA+9R,EAAAG,GAAAC,EAAAL,GAAAG,EAAAG,GAAAC,EAAAL,IAEAvsQ,QAAA,SAAArmC,EAAAE,GAEA,OAAAF,GADArE,KACAqE,MADArE,KACAqE,EADArE,KACAgZ,OAAAzU,GADAvE,KACAuE,MADAvE,KACAuE,EADAvE,KACAiZ,QAMA+wB,MAAA,WACA,WAAAnD,EAAA7mC,KAAAqE,EAAArE,KAAAuE,EAAAvE,KAAAgZ,MAAAhZ,KAAAiZ,SAMAwwB,KAAA,SAAA2uG,GACAp4I,KAAAqE,EAAA+zI,EAAA/zI,EACArE,KAAAuE,EAAA6zI,EAAA7zI,EACAvE,KAAAgZ,MAAAo/H,EAAAp/H,MACAhZ,KAAAiZ,OAAAm/H,EAAAn/H,QAEA06D,MAAA,WACA,OACAtvE,EAAArE,KAAAqE,EACAE,EAAAvE,KAAAuE,EACAyU,MAAAhZ,KAAAgZ,MACAC,OAAAjZ,KAAAiZ,UAaA4tB,EAAA6C,OAAA,SAAAxB,GACA,WAAArB,EAAAqB,EAAA7jC,EAAA6jC,EAAA3jC,EAAA2jC,EAAAlvB,MAAAkvB,EAAAjvB,SAGA,IAAAhW,EAAA4jC,EACA3jC,EAAAC,QAAAF,wBCrLA,IAAAw9D,EAAclhE,EAAQ,QACtB2D,EAAAC,QAAA,SAAAu9D,GACA,OAAA92D,OAAA62D,EAAAC,wCCSAx9D,EAAAC,QAAA,SAAA43E,EAAA/6B,EAAAkiF,EAAAiiJ,EAAAzqK,GAOA,OANA3+B,EAAA/6B,SACAkiF,IACAnnD,EAAAmnD,QAEAnnD,EAAAopM,UACAppM,EAAA2+B,WACA3+B,sCCjBA,IAAAv2B,EAAajlD,EAAQ,QACrB4lD,EAAU5lD,EAAQ,QAClB0hL,EAAkB1hL,EAAQ,QAC1Bs4N,EAAct4N,EAAQ,QACtBg4S,EAAeh4S,EAAQ,QACvBixN,EAAWjxN,EAAQ,QAAS4hL,IAC5Bq2H,EAAaj4S,EAAQ,QACrBk4S,EAAal4S,EAAQ,QACrB6nK,EAAqB7nK,EAAQ,QAC7B21D,EAAU31D,EAAQ,QAClBm4S,EAAUn4S,EAAQ,QAClBwuL,EAAaxuL,EAAQ,QACrBo4S,EAAgBp4S,EAAQ,QACxBq4S,EAAer4S,EAAQ,QACvBuM,EAAcvM,EAAQ,QACtBs4S,EAAet4S,EAAQ,QACvBK,EAAeL,EAAQ,QACvB27K,EAAgB37K,EAAQ,QACxBypS,EAAkBzpS,EAAQ,QAC1BwpS,EAAiBxpS,EAAQ,QACzBu4S,EAAcv4S,EAAQ,QACtBw4S,EAAcx4S,EAAQ,QACtBy4S,EAAYz4S,EAAQ,QACpB04S,EAAU14S,EAAQ,QAClBgzL,EAAYhzL,EAAQ,QACpB2pS,EAAA8O,EAAAh1P,EACAg+H,EAAAi3H,EAAAj1P,EACA+4I,EAAAg8G,EAAA/0P,EACAgrI,EAAAxpI,EAAAv5C,OACAitS,EAAA1zP,EAAAt3C,KACAirS,EAAAD,KAAA9qS,UAEAgrS,EAAAV,EAAA,WACAW,EAAAX,EAAA,eACAl2E,KAAe82E,qBACfC,EAAAd,EAAA,mBACAe,EAAAf,EAAA,WACAgB,EAAAhB,EAAA,cACAp3O,EAAAz2D,OAAA,UACA8uS,EAAA,mBAAA1qH,EACA2qH,EAAAn0P,EAAAm0P,QAEAt5G,GAAAs5G,MAAA,YAAAA,EAAA,UAAAC,UAGAC,EAAA53H,GAAAu2H,EAAA,WACA,OAEG,GAFHM,EAAA92H,KAAsB,KACtBh9K,IAAA,WAAsB,OAAAg9K,EAAAhhL,KAAA,KAAuBuH,MAAA,IAAWgO,MACrDA,IACF,SAAAmrD,EAAA32D,EAAA00J,GACD,IAAAq6I,EAAA5P,EAAA7oO,EAAAt2D,GACA+uS,UAAAz4O,EAAAt2D,GACAi3K,EAAAtgH,EAAA32D,EAAA00J,GACAq6I,GAAAp4O,IAAAL,GAAA2gH,EAAA3gH,EAAAt2D,EAAA+uS,IACC93H,EAEDwqC,EAAA,SAAAL,GACA,IAAA4tF,EAAAP,EAAArtF,GAAA2sF,EAAA9pH,EAAA,WAEA,OADA+qH,EAAAjnD,GAAA3mC,EACA4tF,GAGAC,EAAAN,GAAA,iBAAA1qH,EAAA9iL,SAAA,SAAAw1D,GACA,uBAAAA,GACC,SAAAA,GACD,OAAAA,aAAAstH,GAGAv9B,EAAA,SAAA/vF,EAAA32D,EAAA00J,GAKA,OAJA/9F,IAAAL,GAAAowF,EAAAgoJ,EAAA1uS,EAAA00J,GACAo5I,EAAAn3O,GACA32D,EAAAi/R,EAAAj/R,GAAA,GACA8tS,EAAAp5I,GACAt5G,EAAAqzP,EAAAzuS,IACA00J,EAAApzJ,YAIA85C,EAAAub,EAAA03O,IAAA13O,EAAA03O,GAAAruS,KAAA22D,EAAA03O,GAAAruS,IAAA,GACA00J,EAAAq5I,EAAAr5I,GAAsBpzJ,WAAA09R,EAAA,UAJtB5jP,EAAAub,EAAA03O,IAAAp3H,EAAAtgH,EAAA03O,EAAArP,EAAA,OACAroO,EAAA03O,GAAAruS,IAAA,GAIK8uS,EAAAn4O,EAAA32D,EAAA00J,IACFuiB,EAAAtgH,EAAA32D,EAAA00J,IAEHw6I,EAAA,SAAAv4O,EAAA23J,GACAw/E,EAAAn3O,GAKA,IAJA,IAGA32D,EAHAF,EAAA+tS,EAAAv/E,EAAAn9C,EAAAm9C,IACAt3N,EAAA,EACAC,EAAA6I,EAAA5I,OAEAD,EAAAD,GAAA0vJ,EAAA/vF,EAAA32D,EAAAF,EAAA9I,KAAAs3N,EAAAtuN,IACA,OAAA22D,GAKAw4O,EAAA,SAAAnvS,GACA,IAAAovS,EAAA33E,EAAA91N,KAAA1L,KAAA+J,EAAAi/R,EAAAj/R,GAAA,IACA,QAAA/J,OAAAqgE,GAAAlb,EAAAqzP,EAAAzuS,KAAAo7C,EAAAszP,EAAA1uS,QACAovS,IAAAh0P,EAAAnlD,KAAA+J,KAAAo7C,EAAAqzP,EAAAzuS,IAAAo7C,EAAAnlD,KAAAo4S,IAAAp4S,KAAAo4S,GAAAruS,KAAAovS,IAEAC,EAAA,SAAA14O,EAAA32D,GAGA,GAFA22D,EAAAw6G,EAAAx6G,GACA32D,EAAAi/R,EAAAj/R,GAAA,GACA22D,IAAAL,IAAAlb,EAAAqzP,EAAAzuS,IAAAo7C,EAAAszP,EAAA1uS,GAAA,CACA,IAAA00J,EAAAyqI,EAAAxoO,EAAA32D,GAEA,OADA00J,IAAAt5G,EAAAqzP,EAAAzuS,IAAAo7C,EAAAub,EAAA03O,IAAA13O,EAAA03O,GAAAruS,KAAA00J,EAAApzJ,YAAA,GACAozJ,IAEA46I,EAAA,SAAA34O,GAKA,IAJA,IAGA32D,EAHAokR,EAAApyF,EAAA7gB,EAAAx6G,IACA3vD,KACAhQ,EAAA,EAEAotR,EAAAltR,OAAAF,GACAokD,EAAAqzP,EAAAzuS,EAAAokR,EAAAptR,OAAAgJ,GAAAquS,GAAAruS,GAAAymN,GAAAz/M,EAAAxP,KAAAwI,GACG,OAAAgH,GAEHuoS,EAAA,SAAA54O,GAMA,IALA,IAIA32D,EAJAwvS,EAAA74O,IAAAL,EACA8tN,EAAApyF,EAAAw9G,EAAAd,EAAAv9H,EAAAx6G,IACA3vD,KACAhQ,EAAA,EAEAotR,EAAAltR,OAAAF,IACAokD,EAAAqzP,EAAAzuS,EAAAokR,EAAAptR,OAAAw4S,IAAAp0P,EAAAkb,EAAAt2D,IAAAgH,EAAAxP,KAAAi3S,EAAAzuS,IACG,OAAAgH,GAIH2nS,IAYAnB,GAXAvpH,EAAA,WACA,GAAAhuL,gBAAAguL,EAAA,MAAAhqI,UAAA,gCACA,IAAAmnK,EAAAj2J,EAAApwD,UAAA7D,OAAA,EAAA6D,UAAA,QAAA4I,GACAirP,EAAA,SAAApxP,GACAvH,OAAAqgE,GAAAs4L,EAAAjtP,KAAA+sS,EAAAlxS,GACA49C,EAAAnlD,KAAAo4S,IAAAjzP,EAAAnlD,KAAAo4S,GAAAjtF,KAAAnrN,KAAAo4S,GAAAjtF,IAAA,GACA0tF,EAAA74S,KAAAmrN,EAAA49E,EAAA,EAAAxhS,KAGA,OADA05K,GAAAoe,GAAAw5G,EAAAx4O,EAAA8qJ,GAAgE7/M,cAAA,EAAA05C,IAAA2zM,IAChEntC,EAAAL,KAEA,gCACA,OAAAnrN,KAAA8xP,KAGAkmD,EAAAh1P,EAAAo2P,EACAnB,EAAAj1P,EAAAytG,EACElxJ,EAAQ,QAAgByjD,EAAA+0P,EAAA/0P,EAAAq2P,EACxB95S,EAAQ,QAAeyjD,EAAAk2P,EACvB35S,EAAQ,QAAgByjD,EAAAs2P,EAE1Br4H,IAAsB1hL,EAAQ,SAC9Bg4S,EAAAl3O,EAAA,uBAAA64O,GAAA,GAGAnrH,EAAA/qI,EAAA,SAAApgD,GACA,OAAA4oN,EAAAksF,EAAA90S,MAIAi1N,IAAAK,EAAAL,EAAAY,EAAAZ,EAAAG,GAAA0gF,GAA0DztS,OAAA+iL,IAE1D,QAAAwrH,EAAA,iHAGA34S,MAAA,KAAAqyB,GAAA,EAAoBsmR,EAAAv4S,OAAAiyB,IAAuBwkR,EAAA8B,EAAAtmR,OAE3C,QAAAumR,GAAAlnH,EAAAmlH,EAAA74H,OAAAp2J,GAAA,EAAoDgxR,GAAAx4S,OAAAwnB,IAA6BkvR,EAAA8B,GAAAhxR,OAEjFovM,IAAA33D,EAAA23D,EAAAG,GAAA0gF,EAAA,UAEAh6O,IAAA,SAAA30D,GACA,OAAAo7C,EAAAozP,EAAAxuS,GAAA,IACAwuS,EAAAxuS,GACAwuS,EAAAxuS,GAAAikL,EAAAjkL,IAGA2vS,OAAA,SAAAX,GACA,IAAAC,EAAAD,GAAA,MAAA/0P,UAAA+0P,EAAA,qBACA,QAAAhvS,KAAAwuS,EAAA,GAAAA,EAAAxuS,KAAAgvS,EAAA,OAAAhvS,GAEA4vS,UAAA,WAA0Bt6G,GAAA,GAC1Bu6G,UAAA,WAA0Bv6G,GAAA,KAG1Bw4B,IAAA33D,EAAA23D,EAAAG,GAAA0gF,EAAA,UAEAhvQ,OA/FA,SAAAg3B,EAAA23J,GACA,YAAA3qN,IAAA2qN,EAAAy/E,EAAAp3O,GAAAu4O,EAAAnB,EAAAp3O,GAAA23J,IAgGAjtN,eAAAqlJ,EAEAprG,iBAAA4zP,EAEA30P,yBAAA80P,EAEAn9G,oBAAAo9G,EAEAQ,sBAAAP,IAIApB,GAAArgF,IAAA33D,EAAA23D,EAAAG,IAAA0gF,GAAAlB,EAAA,WACA,IAAAt3I,EAAA8tB,IAIA,gBAAAmqH,GAAAj4I,KAA2D,MAA3Di4I,GAAoD5iS,EAAA2qJ,KAAe,MAAAi4I,EAAAvuS,OAAAs2J,OAClE,QACD9yJ,UAAA,SAAAszD,GAIA,IAHA,IAEAo5O,EAAAC,EAFA3tS,GAAAs0D,GACA3/D,EAAA,EAEA+D,UAAA7D,OAAAF,GAAAqL,EAAA7K,KAAAuD,UAAA/D,MAEA,GADAg5S,EAAAD,EAAA1tS,EAAA,IACAxM,EAAAk6S,SAAApsS,IAAAgzD,KAAAs4O,EAAAt4O,GAMA,OALA50D,EAAAguS,OAAA,SAAA/vS,EAAAxC,GAEA,GADA,mBAAAwyS,IAAAxyS,EAAAwyS,EAAAruS,KAAA1L,KAAA+J,EAAAxC,KACAyxS,EAAAzxS,GAAA,OAAAA,IAEA6E,EAAA,GAAA0tS,EACA3B,EAAA5rS,MAAA2rS,EAAA9rS,MAKA4hL,EAAA,UAAAqqH,IAAoC94S,EAAQ,OAARA,CAAiByuL,EAAA,UAAAqqH,EAAArqH,EAAA,UAAAoyF,SAErDh5G,EAAA4mB,EAAA,UAEA5mB,EAAAr/J,KAAA,WAEAq/J,EAAA5iH,EAAAt3C,KAAA,8CCvOA,IAAA8nE,EAAYz1E,EAAQ,QACpBy6S,EAAoBz6S,EAAQ,QAC5B06S,EAAe16S,EAAQ,QACvByjC,EAAezjC,EAAQ,QACvB26S,EAAoB36S,EAAQ,QAC5B46S,EAAkB56S,EAAQ,QAK1B,SAAA66S,EAAAp6P,GACAA,EAAAq6P,aACAr6P,EAAAq6P,YAAAr6O,mBAUA98D,EAAAC,QAAA,SAAA68C,GAkCA,OAjCAo6P,EAAAp6P,GAGAA,EAAAshC,UAAA44N,EAAAl6P,EAAA7xC,OACA6xC,EAAA7xC,IAAAgsS,EAAAn6P,EAAAshC,QAAAthC,EAAA7xC,MAIA6xC,EAAAi1B,QAAAj1B,EAAAi1B,YAGAj1B,EAAAlvC,KAAAkpS,EACAh6P,EAAAlvC,KACAkvC,EAAAi1B,QACAj1B,EAAAs6P,kBAIAt6P,EAAAi1B,QAAAD,EAAArE,MACA3wB,EAAAi1B,QAAAslO,WACAv6P,EAAAi1B,QAAAj1B,EAAAtR,YACAsR,EAAAi1B,aAGAD,EAAAlrE,SACA,qDACA,SAAA4kC,UACAsR,EAAAi1B,QAAAvmC,MAIAsR,EAAAw6P,SAAAx3Q,EAAAw3Q,SAEAx6P,GAAA7wC,KAAA,SAAAuqG,GAUA,OATA0gM,EAAAp6P,GAGA05D,EAAA5oG,KAAAkpS,EACAtgM,EAAA5oG,KACA4oG,EAAAzkC,QACAj1B,EAAAy6P,mBAGA/gM,GACG,SAAA35C,GAcH,OAbAk6O,EAAAl6O,KACAq6O,EAAAp6P,GAGA+f,KAAA25C,WACA35C,EAAA25C,SAAA5oG,KAAAkpS,EACAj6O,EAAA25C,SAAA5oG,KACAivD,EAAA25C,SAAAzkC,QACAj1B,EAAAy6P,qBAKAhsS,QAAAE,OAAAoxD,8BCnFAxgE,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,8BCZQA,EAAQ,QAoBxBs7M,yBAAA,qBAAA59L,GAEA,OAAAA,EAAAm0J,aAAAn0J,EAAAmV,OAAAnV,EAAAmV,OAAAnxB,OAAA,EAAAgc,EAAA+K,YAAA,KAAA/K,EAAA+Q,WAAA,iDCtBA,IAAA6L,EAAat6B,EAAQ,QAErB2sD,EAAqB3sD,EAAQ,QAE7B2wE,EAAuB3wE,EAAQ,QAE/B4wE,EAA2B5wE,EAAQ,QAoBnCm7S,EAAAxuP,EAAAxiD,QACAlG,KAAA,YAKAiyB,KAAA,KAKAgzC,iBAAA,WACA,OAAAzoE,KAAA2D,QAAAgyL,iBACArmI,SAAA,QACA1iD,MAAA5M,KAAAid,OAAA09R,WACAj5S,GAAA1B,KAAAid,OAAA29R,UACK,MAGL/gR,EAAA82C,MAAA+pO,EAAAx6S,UAAAiwE,GACA,IAAA0qO,GAcA7yR,YAAA,GAIA,SAAA8yR,EAAA9xI,EAAA/rJ,GAEA,OAAAA,EAAAzZ,OAAAyZ,EAAAnM,KAAA,oBAGAo/D,EAAA,QAAAwqO,EAAAI,GAnBA1+Q,WAAA,GACAE,WAAA,EACAtU,YAAA,GACA9W,WACAu3J,QAAA,KAgBAv4F,EAAA,SAAAwqO,EAAAI,EAAAD,yBChEA,IAAA12S,IAA0M,WAAiB,gBAAAskF,GAAmB,SAAAtkF,EAAAgtE,GAAc,GAAA/yB,EAAA+yB,GAAA,OAAA/yB,EAAA+yB,GAAAhuE,QAA4B,IAAAsU,EAAA2mC,EAAA+yB,IAAYpwE,EAAAowE,EAAAnwE,GAAA,EAAAmC,YAAqB,OAAAslF,EAAAtX,GAAAzlE,KAAA+L,EAAAtU,QAAAsU,IAAAtU,QAAAgB,GAAAsT,EAAAzW,GAAA,EAAAyW,EAAAtU,QAA2D,IAAAi7C,KAAS,OAAAj6C,EAAAwoB,EAAA87D,EAAAtkF,EAAA+7D,EAAA9hB,EAAAj6C,EAAApD,EAAA,SAAA0nF,GAAmC,OAAAA,GAAStkF,EAAAsqB,EAAA,SAAAg6D,EAAArqC,EAAA+yB,GAAqBhtE,EAAAgtE,EAAAsX,EAAArqC,IAAAx0C,OAAAwB,eAAAq9E,EAAArqC,GAAqC9yC,cAAA,EAAAD,YAAA,EAAArH,IAAAmtE,KAAsChtE,EAAAi6C,EAAA,SAAAqqC,GAAiB,IAAArqC,EAAAqqC,KAAArX,WAAA,WAAiC,OAAAqX,EAAA1vE,SAAiB,WAAY,OAAA0vE,GAAU,OAAAtkF,EAAAsqB,EAAA2vB,EAAA,IAAAA,MAAsBj6C,EAAAgtE,EAAA,SAAAsX,EAAAtkF,GAAmB,OAAAyF,OAAA1J,UAAA2C,eAAA6I,KAAA+8E,EAAAtkF,IAAiDA,EAAA+sC,EAAA,GAAA/sC,IAAAgU,EAAA,GAAje,EAAkf,SAAAswE,EAAAtkF,EAAAi6C,GAAkB,IAAA+yB,EAAA15D,EAAA1W,EAAyB0W,GAAAgxE,EAAArqC,EAAA,cAAAr9C,EAAA,mBAAAowE,EAA+E,SAAAsX,EAAAtkF,GAAiB,aAA2G,IAAAgtE,EAAA,SAAAsX,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDtkF,GAAAsT,EAAA,mBAAAxM,QAAA,iBAAAA,OAAAC,SAAA,SAAAu9E,GAA8E,cAAAA,GAAgB,SAAAA,GAAa,OAAAA,GAAA,mBAAAx9E,QAAAw9E,EAAAtoF,cAAA8K,QAAAw9E,IAAAx9E,OAAA/K,UAAA,gBAAAuoF,GAAoG1nF,EAAA,WAAc,SAAA0nF,IAAAtkF,GAAgB,QAAAi6C,EAAA,EAAYA,EAAAj6C,EAAAlD,OAAWm9C,IAAA,CAAK,IAAA+yB,EAAAhtE,EAAAi6C,GAAW+yB,EAAA9lE,WAAA8lE,EAAA9lE,aAAA,EAAA8lE,EAAA7lE,cAAA,YAAA6lE,MAAA5lE,UAAA,GAAA3B,OAAAwB,eAAAq9E,EAAAtX,EAAApnE,IAAAonE,IAA+G,gBAAAhtE,EAAAi6C,EAAA+yB,GAAuB,OAAA/yB,GAAAqqC,EAAAtkF,EAAAjE,UAAAk+C,GAAA+yB,GAAAsX,EAAAtkF,EAAAgtE,GAAAhtE,GAA3M,GAAmPoR,EAAA,WAAgB,SAAAkzE,EAAAtkF,IAAvmB,SAAAskF,EAAAtkF,GAAgB,KAAAskF,aAAAtkF,GAAA,UAAA6/C,UAAA,sCAAqmB5F,CAAAp+C,KAAAyoF,GAAAzoF,KAAA+6S,eAAA52S,GAAAnE,KAAAg7S,gBAAsD,OAAAj6S,EAAA0nF,IAAa1+E,IAAA,iBAAAxC,MAAA,WAAsC,IAAAkhF,EAAA3jF,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,MAAgE9E,KAAAs3D,OAAAmxB,EAAAnxB,OAAAt3D,KAAAutF,UAAA9E,EAAA8E,UAAAvtF,KAAAomF,QAAAqC,EAAArC,QAAApmF,KAAAO,OAAAkoF,EAAAloF,OAAAP,KAAAqxC,KAAAo3C,EAAAp3C,KAAArxC,KAAAiS,QAAAw2E,EAAAx2E,QAAAjS,KAAA6+N,aAAA,MAA4J90N,IAAA,gBAAAxC,MAAA,WAAqCvH,KAAAqxC,KAAArxC,KAAAi7S,aAAAj7S,KAAAO,QAAAP,KAAAk7S,kBAAgEnxS,IAAA,aAAAxC,MAAA,WAAkC,IAAAkhF,EAAAzoF,KAAAmE,EAAA,OAAA0L,SAAAmuC,gBAAAkd,aAAA,OAAiEl7D,KAAAm7S,aAAAn7S,KAAAo7S,oBAAA,WAAsD,OAAA3yN,EAAA0yN,cAAsBn7S,KAAAq7S,YAAAr7S,KAAAutF,UAAA3uE,iBAAA,QAAA5e,KAAAo7S,uBAAA,EAAAp7S,KAAAs7S,SAAAzrS,SAAAC,cAAA,YAAA9P,KAAAs7S,SAAA/iS,MAAAsd,SAAA,OAAA71B,KAAAs7S,SAAA/iS,MAAAgjS,OAAA,IAAAv7S,KAAAs7S,SAAA/iS,MAAAgd,QAAA,IAAAv1B,KAAAs7S,SAAA/iS,MAAA2xD,OAAA,IAAAlqE,KAAAs7S,SAAA/iS,MAAAnK,SAAA,WAAApO,KAAAs7S,SAAA/iS,MAAApU,EAAA,0BAAmW,IAAAi6C,EAAAzuC,OAAA6rS,aAAA3rS,SAAAmuC,gBAAAE,UAA6Dl+C,KAAAs7S,SAAA/iS,MAAAvG,IAAAosC,EAAA,KAAAp+C,KAAAs7S,SAAA50Q,aAAA,eAAA1mC,KAAAs7S,SAAA/zS,MAAAvH,KAAAqxC,KAAArxC,KAAAutF,UAAAt9E,YAAAjQ,KAAAs7S,UAAAt7S,KAAA6+N,cAAA,EAAA1tJ,EAAAp4D,SAAA/Y,KAAAs7S,UAAAt7S,KAAAy7S,cAAmN1xS,IAAA,aAAAxC,MAAA,WAAkCvH,KAAAq7S,cAAAr7S,KAAAutF,UAAAzuE,oBAAA,QAAA9e,KAAAo7S,qBAAAp7S,KAAAq7S,YAAA,KAAAr7S,KAAAo7S,oBAAA,MAAAp7S,KAAAs7S,WAAAt7S,KAAAutF,UAAA/gD,YAAAxsC,KAAAs7S,UAAAt7S,KAAAs7S,SAAA,SAA8NvxS,IAAA,eAAAxC,MAAA,WAAoCvH,KAAA6+N,cAAA,EAAA1tJ,EAAAp4D,SAAA/Y,KAAAO,QAAAP,KAAAy7S,cAAgE1xS,IAAA,WAAAxC,MAAA,WAAgC,IAAAkhF,OAAA,EAAa,IAAIA,EAAA54E,SAAA6rS,YAAA17S,KAAAs3D,QAAoC,MAAAnzD,GAASskF,GAAA,EAAKzoF,KAAA27S,aAAAlzN,MAAwB1+E,IAAA,eAAAxC,MAAA,SAAAkhF,GAAqCzoF,KAAAomF,QAAAd,KAAAmD,EAAA,mBAAuCnxB,OAAAt3D,KAAAs3D,OAAAjmB,KAAArxC,KAAA6+N,aAAA5sN,QAAAjS,KAAAiS,QAAA2pS,eAAA57S,KAAA47S,eAAApxS,KAAAxK,WAAkH+J,IAAA,iBAAAxC,MAAA,WAAsCvH,KAAAiS,SAAAjS,KAAAiS,QAAAs7B,QAAA59B,OAAAksS,eAAAC,qBAA8E/xS,IAAA,UAAAxC,MAAA,WAA+BvH,KAAAm7S,gBAAqBpxS,IAAA,SAAAi7C,IAAA,WAA4B,IAAAyjC,EAAA3jF,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,UAAoE,GAAA9E,KAAA+7S,QAAAtzN,EAAA,SAAAzoF,KAAA+7S,SAAA,QAAA/7S,KAAA+7S,QAAA,UAAA18O,MAAA,uDAAoIr7D,IAAA,WAAgB,OAAAhE,KAAA+7S,WAAuBhyS,IAAA,SAAAi7C,IAAA,SAAAyjC,GAA6B,YAAAA,EAAA,CAAe,IAAAA,GAAA,qBAAAA,EAAA,YAAAhxE,EAAAgxE,KAAA,IAAAA,EAAApP,SAAA,UAAAha,MAAA,+CAA+H,YAAAr/D,KAAAs3D,QAAAmxB,EAAAokL,aAAA,sBAAAxtM,MAAA,qFAAyJ,WAAAr/D,KAAAs3D,SAAAmxB,EAAAokL,aAAA,aAAApkL,EAAAokL,aAAA,uBAAAxtM,MAAA,0GAA2Mr/D,KAAAylK,QAAAh9E,IAAgBzkF,IAAA,WAAgB,OAAAhE,KAAAylK,YAAqBh9E,EAA93F,GAAs4FA,EAAAtlF,QAAAoS,IAA1kH47D,EAAA5kE,MAAApI,EAAAsT,GAAA05D,KAAAsX,EAAAtlF,QAAApC,IAAwlH,SAAA0nF,EAAAtkF,EAAAi6C,GAAwvB,IAAA8hB,EAAA9hB,EAAA,GAAAqwJ,EAAArwJ,EAAA,GAAkBqqC,EAAAtlF,QAAzvB,SAAAslF,EAAAtkF,EAAAi6C,GAAkB,IAAAqqC,IAAAtkF,IAAAi6C,EAAA,UAAAihB,MAAA,8BAA4D,IAAAa,EAAA7oB,OAAAlzC,GAAA,UAAA6/C,UAAA,oCAAwE,IAAAkc,EAAAj0D,GAAAmyC,GAAA,UAAA4F,UAAA,qCAAqE,GAAAkc,EAAAhH,KAAAuvB,GAAA,OAA8L,SAAAA,EAAAtkF,EAAAi6C,GAAkB,OAAAqqC,EAAA7pE,iBAAAza,EAAAi6C,IAAgCe,QAAA,WAAmBspC,EAAA3pE,oBAAA3a,EAAAi6C,KAAnQ3mC,CAAAgxE,EAAAtkF,EAAAi6C,GAA6B,GAAA8hB,EAAA87O,SAAAvzN,GAAA,OAAmQ,SAAAA,EAAAtkF,EAAAi6C,GAAkB,OAAAvyC,MAAA3L,UAAA4J,QAAA4B,KAAA+8E,EAAA,SAAAA,GAAkDA,EAAA7pE,iBAAAza,EAAAi6C,MAA2Be,QAAA,WAAmBtzC,MAAA3L,UAAA4J,QAAA4B,KAAA+8E,EAAA,SAAAA,GAA2CA,EAAA3pE,oBAAA3a,EAAAi6C,OAAhar9C,CAAA0nF,EAAAtkF,EAAAi6C,GAAiC,GAAA8hB,EAAA7oB,OAAAoxC,GAAA,OAA8Z,SAAAA,EAAAtkF,EAAAi6C,GAAkB,OAAAqwJ,EAAA5+L,SAAAG,KAAAy4E,EAAAtkF,EAAAi6C,GAAhb7oC,CAAAkzE,EAAAtkF,EAAAi6C,GAA+B,UAAA4F,UAAA,+EAA6c,SAAAykC,EAAAtkF,GAAe,SAAAi6C,KAAcA,EAAAl+C,WAAawf,GAAA,SAAA+oE,EAAAtkF,EAAAi6C,GAAmB,IAAA+yB,EAAAnxE,KAAAmE,IAAAnE,KAAAmE,MAA0B,OAAAgtE,EAAAsX,KAAAtX,EAAAsX,QAAAlnF,MAA8B0K,GAAA9H,EAAA0hC,IAAAuY,IAAWp+C,MAAO8lF,KAAA,SAAA2C,EAAAtkF,EAAAi6C,GAAsB,SAAA+yB,IAAa15D,EAAA44C,IAAAo4B,EAAAtX,GAAAhtE,EAAAoI,MAAA6xC,EAAAt5C,WAAgC,IAAA2S,EAAAzX,KAAW,OAAAmxE,EAAAhzD,EAAAha,EAAAnE,KAAA0f,GAAA+oE,EAAAtX,EAAA/yB,IAA4BknC,KAAA,SAAAmD,GAA2G,IAAzF,IAAAtkF,KAAA7B,MAAAoJ,KAAA5G,UAAA,GAAAs5C,IAAAp+C,KAAAmE,IAAAnE,KAAAmE,OAAuDskF,QAAAnmF,QAAA6uE,EAAA,EAAA15D,EAAA2mC,EAAAn9C,OAAwCkwE,EAAA15D,EAAI05D,IAAA/yB,EAAA+yB,GAAAllE,GAAAM,MAAA6xC,EAAA+yB,GAAAtrC,IAAA1hC,GAA8B,OAAAnE,MAAYqwD,IAAA,SAAAo4B,EAAAtkF,GAAmB,IAAAi6C,EAAAp+C,KAAAmE,IAAAnE,KAAAmE,MAAwBgtE,EAAA/yB,EAAAqqC,GAAAhxE,KAAc,GAAA05D,GAAAhtE,EAAA,QAAApD,EAAA,EAAAwU,EAAA47D,EAAAlwE,OAA+BF,EAAAwU,EAAIxU,IAAAowE,EAAApwE,GAAAkL,KAAA9H,GAAAgtE,EAAApwE,GAAAkL,GAAAkS,IAAAha,GAAAsT,EAAAlW,KAAA4vE,EAAApwE,IAA6C,OAAA0W,EAAAxW,OAAAm9C,EAAAqqC,GAAAhxE,SAAA2mC,EAAAqqC,GAAAzoF,OAAyCyoF,EAAAtlF,QAAAi7C,GAAa,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAA+yB,EAAA15D,EAAA1W,EAAyB0W,GAAAgxE,EAAArqC,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAAr9C,EAAA,mBAAAowE,EAAyF,SAAAsX,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAa,SAAA15D,EAAAgxE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAukB,SAAAgmH,EAAAhmH,EAAAtkF,GAAgB,IAAAi6C,EAAA,kBAAAqqC,EAA0B,GAAAtkF,EAAA0oQ,aAAAzuN,GAAA,OAAAj6C,EAAA+2D,aAAA9c,GAA8C,IAAAp9C,EAAAyW,EAAAtT,GAAAgU,EAAAV,EAAA2mC,GAAA4E,EAAAvrC,EAAA05D,GAAA1iD,EAAA,mBAAAxjB,QAAA,iBAAAA,OAAAC,SAAA,SAAAu9E,GAAmG,cAAAA,GAAgB,SAAAA,GAAa,OAAAA,GAAA,mBAAAx9E,QAAAw9E,EAAAtoF,cAAA8K,QAAAw9E,IAAAx9E,OAAA/K,UAAA,gBAAAuoF,GAAoGxwE,EAAA,WAAc,SAAAwwE,IAAAtkF,GAAgB,QAAAi6C,EAAA,EAAYA,EAAAj6C,EAAAlD,OAAWm9C,IAAA,CAAK,IAAA+yB,EAAAhtE,EAAAi6C,GAAW+yB,EAAA9lE,WAAA8lE,EAAA9lE,aAAA,EAAA8lE,EAAA7lE,cAAA,YAAA6lE,MAAA5lE,UAAA,GAAA3B,OAAAwB,eAAAq9E,EAAAtX,EAAApnE,IAAAonE,IAA+G,gBAAAhtE,EAAAi6C,EAAA+yB,GAAuB,OAAA/yB,GAAAqqC,EAAAtkF,EAAAjE,UAAAk+C,GAAA+yB,GAAAsX,EAAAtkF,EAAAgtE,GAAAhtE,GAA3M,GAAmP+sC,EAAA,SAAAu3C,GAAiB,SAAAtkF,EAAAskF,EAAArqC,IAA5nC,SAAAqqC,EAAAtkF,GAAgB,KAAAskF,aAAAtkF,GAAA,UAAA6/C,UAAA,qCAA4nCjjD,CAAAf,KAAAmE,GAAU,IAAAgtE,EAAxjC,SAAAsX,EAAAtkF,GAAgB,IAAAskF,EAAA,UAAAswB,eAAA,6DAA4F,OAAA50G,GAAA,iBAAAA,GAAA,mBAAAA,EAAAskF,EAAAtkF,EAA48BoR,CAAAvV,MAAAmE,EAAAk1G,WAAAzvG,OAAA02D,eAAAn8D,IAAAuH,KAAA1L,OAAiE,OAAAmxE,EAAA4pO,eAAA38P,GAAA+yB,EAAA8qO,YAAAxzN,GAAAtX,EAA8C,OAApgC,SAAAsX,EAAAtkF,GAAgB,sBAAAA,GAAA,OAAAA,EAAA,UAAA6/C,UAAA,kEAAA7/C,GAA2HskF,EAAAvoF,UAAA0J,OAAA8/B,OAAAvlC,KAAAjE,WAA0CC,aAAaoH,MAAAkhF,EAAAp9E,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAAmDnH,IAAAyF,OAAAwvG,eAAAxvG,OAAAwvG,eAAA3wB,EAAAtkF,GAAAskF,EAAA4wB,UAAAl1G,GAA+wB+7D,CAAA/7D,EAAAskF,GAAAxwE,EAAA9T,IAAoB4F,IAAA,iBAAAxC,MAAA,WAAsC,IAAAkhF,EAAA3jF,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,MAAgE9E,KAAAs3D,OAAA,mBAAAmxB,EAAAnxB,OAAAmxB,EAAAnxB,OAAAt3D,KAAAk8S,cAAAl8S,KAAAO,OAAA,mBAAAkoF,EAAAloF,OAAAkoF,EAAAloF,OAAAP,KAAAm8S,cAAAn8S,KAAAqxC,KAAA,mBAAAo3C,EAAAp3C,KAAAo3C,EAAAp3C,KAAArxC,KAAAsmE,YAAAtmE,KAAAutF,UAAA,WAAA9+D,EAAAg6D,EAAA8E,WAAA9E,EAAA8E,UAAA19E,SAAAG,QAA0QjG,IAAA,cAAAxC,MAAA,SAAAkhF,GAAoC,IAAAtkF,EAAAnE,KAAWA,KAAA2lF,UAAA,EAAA3iC,EAAAjqC,SAAA0vE,EAAA,iBAAAA,GAAkD,OAAAtkF,EAAAi4S,QAAA3zN,QAAyB1+E,IAAA,UAAAxC,MAAA,SAAAkhF,GAAgC,IAAAtkF,EAAAskF,EAAA4zN,gBAAA5zN,EAAAs+C,cAAwC/mI,KAAAs8S,kBAAAt8S,KAAAs8S,gBAAA,MAAAt8S,KAAAs8S,gBAAA,IAAAt7S,EAAA+X,SAAsFu+C,OAAAt3D,KAAAs3D,OAAAnzD,GAAA5D,OAAAP,KAAAO,OAAA4D,GAAAktC,KAAArxC,KAAAqxC,KAAAltC,GAAAopF,UAAAvtF,KAAAutF,UAAAt7E,QAAA9N,EAAAiiF,QAAApmF,UAAmH+J,IAAA,gBAAAxC,MAAA,SAAAkhF,GAAsC,OAAAgmH,EAAA,SAAAhmH,MAAwB1+E,IAAA,gBAAAxC,MAAA,SAAAkhF,GAAsC,IAAAtkF,EAAAsqM,EAAA,SAAAhmH,GAAoB,GAAAtkF,EAAA,OAAA0L,SAAA0zC,cAAAp/C,MAAyC4F,IAAA,cAAAxC,MAAA,SAAAkhF,GAAoC,OAAAgmH,EAAA,OAAAhmH,MAAsB1+E,IAAA,UAAAxC,MAAA,WAA+BvH,KAAA2lF,SAAAxmC,UAAAn/C,KAAAs8S,kBAAAt8S,KAAAs8S,gBAAAn9P,UAAAn/C,KAAAs8S,gBAAA,WAA8GvyS,IAAA,cAAAxC,MAAA,WAAmC,IAAAkhF,EAAA3jF,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,kBAAAX,EAAA,iBAAAskF,QAAArqC,IAAAvuC,SAAA0sS,sBAA0I,OAAAp4S,EAAA2F,QAAA,SAAA2+E,GAA6BrqC,OAAAvuC,SAAA0sS,sBAAA9zN,KAAyCrqC,MAAKj6C,EAAzgD,CAA8gDgU,EAAAY,SAAY0vE,EAAAtlF,QAAA+tC,IAAnzFigC,EAAA5kE,MAAApI,EAAAsT,GAAA05D,KAAAsX,EAAAtlF,QAAApC,IAAi0F,SAAA0nF,EAAAtkF,GAA+H,IAAAgtE,EAAA,EAAQ,uBAAArwB,kBAAA5gD,UAAAq3P,QAAA,CAA4D,IAAA9/O,EAAAqpC,QAAA5gD,UAAwBuX,EAAA8/O,QAAA9/O,EAAA+kS,iBAAA/kS,EAAAglS,oBAAAhlS,EAAAilS,mBAAAjlS,EAAAklS,kBAAAllS,EAAAmlS,sBAAoHn0N,EAAAtlF,QAAhU,SAAAslF,EAAAtkF,GAAgB,KAAKskF,KAAApP,WAAAlI,GAAkB,CAAE,sBAAAsX,EAAA8uK,SAAA9uK,EAAA8uK,QAAApzP,GAAA,OAAAskF,EAAuDA,IAAAl8C,cAA4O,SAAAk8C,EAAAtkF,EAAAi6C,GAAiB,SAAA+yB,EAAAsX,EAAAtkF,EAAAi6C,EAAA+yB,EAAA15D,GAAsB,IAAAlC,EAAAxU,EAAAwL,MAAAvM,KAAA8E,WAA8B,OAAA2jF,EAAA7pE,iBAAAw/B,EAAA7oC,EAAAkC,IAAkC0nC,QAAA,WAAmBspC,EAAA3pE,oBAAAs/B,EAAA7oC,EAAAkC,KAA8S,SAAA1W,EAAA0nF,EAAAtkF,EAAAi6C,EAAA+yB,GAAoB,gBAAA/yB,GAAmBA,EAAAi+P,eAAA9mS,EAAA6oC,EAAA79C,OAAA4D,GAAAi6C,EAAAi+P,gBAAAlrO,EAAAzlE,KAAA+8E,EAAArqC,IAA8D,IAAA7oC,EAAA6oC,EAAA,GAAWqqC,EAAAtlF,QAA/X,SAAAslF,EAAAtkF,EAAAi6C,EAAA3mC,EAAA1W,GAAsB,yBAAA0nF,EAAA7pE,iBAAAuyD,EAAA5kE,MAAA,KAAAzH,WAAA,mBAAAs5C,EAAA+yB,EAAA3mE,KAAA,KAAAqF,UAAAtD,MAAA,KAAAzH,YAAA,iBAAA2jF,MAAA54E,SAAAgxC,iBAAA4nC,IAAA58E,MAAA3L,UAAAyQ,IAAAjF,KAAA+8E,EAAA,SAAAA,GAAkO,OAAAtX,EAAAsX,EAAAtkF,EAAAi6C,EAAA3mC,EAAA1W,QAAmJ,SAAA0nF,EAAAtkF,GAAeA,EAAA+0D,KAAA,SAAAuvB,GAAmB,gBAAAA,gBAAA2nL,aAAA,IAAA3nL,EAAApP,UAA4Dl1E,EAAA63S,SAAA,SAAAvzN,GAAwB,IAAArqC,EAAAx0C,OAAA1J,UAAA0H,SAAA8D,KAAA+8E,GAAwC,gBAAAA,IAAA,sBAAArqC,GAAA,4BAAAA,IAAA,WAAAqqC,IAAA,IAAAA,EAAAxnF,QAAAkD,EAAA+0D,KAAAuvB,EAAA,MAAwHtkF,EAAAkzC,OAAA,SAAAoxC,GAAsB,uBAAAA,gBAAAt3E,QAA8ChN,EAAA8H,GAAA,SAAAw8E,GAAkB,4BAAA7+E,OAAA1J,UAAA0H,SAAA8D,KAAA+8E,KAA+D,SAAAA,EAAAtkF,GAA8dskF,EAAAtlF,QAA/c,SAAAslF,GAAc,IAAAtkF,EAAM,cAAAskF,EAAAmrF,SAAAnrF,EAAAl7C,QAAAppC,EAAAskF,EAAAlhF,WAA6C,aAAAkhF,EAAAmrF,UAAA,aAAAnrF,EAAAmrF,SAAA,CAAuD,IAAAx1H,EAAAqqC,EAAAokL,aAAA,YAAiCzuN,GAAAqqC,EAAA/hD,aAAA,eAAA+hD,EAAAq6F,SAAAr6F,EAAAo0N,kBAAA,EAAAp0N,EAAAlhF,MAAAtG,QAAAm9C,GAAAqqC,EAAArpC,gBAAA,YAAAj7C,EAAAskF,EAAAlhF,UAA6H,CAAKkhF,EAAAokL,aAAA,oBAAApkL,EAAAl7C,QAA6C,IAAA4jC,EAAAxhE,OAAAksS,eAAApkS,EAAA5H,SAAAitS,cAAqDrlS,EAAAslS,mBAAAt0N,GAAAtX,EAAA2qO,kBAAA3qO,EAAA6rO,SAAAvlS,GAAAtT,EAAAgtE,EAAAvpE,WAAyE,OAAAzD,OAA/tUjB,EAAAC,QAAAgB,uCCJhEhB,EAAAiuE,YAAA,EAYAjuE,EAAA4V,SACAgD,SACAwhI,SAAA,SAAAglC,EAAAh8I,EAAA5U,GAIA,IAHA,IAAA4X,EAAAvpC,KAAAmsN,SAAAnsN,KAAAi4P,MACAr1P,EAAA2mC,EAAAnxB,SAAAmqK,cAEAh5I,KAAA3mC,OAAA2/K,KACAh5I,IAAA4iL,WAGAvpN,EAAA2mC,EAAAnxB,SAAAmqK,eAGAh5I,GACAA,EAAAvrB,MAAAzR,MAAAg9B,GAAAhD,GAAAxxB,OAAA4c,KAGAsrR,UAAA,SAAA16H,EAAAh8I,EAAA5U,IA5BA,SAAAurR,EAAA36H,EAAAh8I,EAAA5U,GACA3xB,KAAA0sP,UAAA5iP,QAAA,SAAAwiC,GACAA,EAAAl0B,SAAAmqK,gBAEAA,EACAj2I,EAAAtuB,MAAAzR,MAAA+/B,GAAA/F,GAAAxxB,OAAA4c,IAEAurR,EAAA3wS,MAAA+/B,GAAAi2I,EAAAh8I,GAAAxxB,QAAA4c,SAsBAjmB,KAAA1L,KAAAuiL,EAAAh8I,EAAA5U,4BChCA,IAAAvuB,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErB49S,EAAe59S,EAAQ,QAEvBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAqBR6D,EAAAm6D,eAAA1jC,EAAA0Q,MAAA4yQ,EAAA,QAEA/5S,EAAAG,qBACAC,KAAA,gCCtCAN,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOAk5K,EACA,SAAAz+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB69S,GACA,SAAAl6S,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB89S,GACA,SAAAn6S,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB0xI,IACA,SAAA/tI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi4K,EAAA7jL,EAAA,KAEA+9S,GAEAnyS,EAFAi4K,IAEsCj4K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EmyS,EAAAvkS,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA+oR,EAAAvkS,QAAAnW,KAAA06S,EAAAvkS,UAGA5V,EAAA4V,QAAAukS,EAAAvkS,SAIAm4H,IACA,SAAAhuI,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAg2S,EAAAh+S,EAAA,KACAi+S,EAAAj+S,EAAA6+C,EAAAm/P,GACAE,EAAAl+S,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAqqO,EAAAjoS,EACAkoS,EAAA,GATA,EAEA,KAEA,KAEA,MAUAl5P,EAAA,QAAA2uB,EAAA,SAKAoyI,GACA,SAAApiN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB4xI,IACA,SAAAjuI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAApmE,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAyI5Ik3K,EAAAnrG,EAFA33E,EAAA,IAMAkxS,EAAAv5N,EAFA33E,EAAA,KAMAm+S,EAAAxmO,EAFA33E,EAAA,IAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAo+S,EAAAzmO,EAFA33E,EAAA,MAMAsiL,EAAA3qG,EAFA33E,EAAA,KAMAizS,EAAAt7N,EAFA33E,EAAA,KAMAq+S,EAAA1mO,EAFA33E,EAAA,KAMAqmN,EAAA1uI,EAFA33E,EAAA,KAMAs+S,EAAA3mO,EAFA33E,EAAA,KAIA4uD,EAAA5uD,EAAA,GAEAmrN,EAAAnrN,EAAA,IAEAu+S,EAAAv+S,EAAA,IAIAw+S,EAAA7mO,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAIAy+S,EAAA9mO,EAFA33E,EAAA,MAIA8kO,EAAA9kO,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA8yS,GACAC,OAAA,GACAC,MAAA,GACAC,KAAA,IAGAj7S,EAAA4V,SACAupK,QAAAD,EAAAtpK,QAAA2kS,EAAA3kS,SAAA,EAAA03R,EAAA13R,SAAA,aAAAilS,EAAAjlS,SAEAnW,KAAA,WAEA2/K,cAAA,WAEAlvG,QACAC,QACAv6D,QAAA,IAGAw6D,YACAx6D,QAAA,KAIAsuO,QAAA,WACA,OACAvkE,OAAA9iL,OAKA6b,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnC8wJ,SAAA,WAEA,IAAA2d,GAAAxiP,KAAAk5E,YAAAzuE,MAAAsQ,OAAAlL,SAAAwuS,eACA,OAAAr+S,KAAAs+S,YAAAt+S,KAAA+iL,WAAAy/D,IAAAxiP,KAAAw3E,SAEAmsF,UAAA,WAEA,OADA3jK,KAAAmlO,YAAAnlO,KAAAu+S,gBAAAv+S,KAAAw+S,gBAAAx+S,KAAA+iL,eAAAr1K,IAAA1N,KAAAuH,OAAA,OAAAvH,KAAAuH,OAAA,KAAAvH,KAAAuH,MACA,6BAAAvH,KAAAkjL,QAAAljL,KAAAs+S,WAAA,eAEAtyS,SAAA,WACA,OAAAhM,KAAAkjL,OAAA,OAEAu7H,UAAA,WACA,OAAAz+S,KAAA2Y,QACA3Y,KAAA0+S,aAAA1+S,KAAAyoF,EAAA,uBAEAzoF,KAAAkjL,QAAA,KAAAljL,KAAA+1D,OAAA,IAAA/1D,KAAAyI,QAAAxH,UACAjB,KAAAs+S,YAAAt+S,KAAA+1D,OAAA/1D,KAAAyI,QAAAxH,OAAA,OAAAjB,KAAA8jL,qBACA9jL,KAAA2+S,aAAA3+S,KAAAyoF,EAAA,qBAEA,IAAAzoF,KAAAyI,QAAAxH,OACAjB,KAAA4+S,YAAA5+S,KAAAyoF,EAAA,oBAGA,OAEAo2N,cAAA,WACA,IAAAhiS,EAAA7c,KAEA8+S,EAAA9+S,KAAAyI,QAAA2e,OAAA,SAAAnK,GACA,OAAAA,EAAA6C,UACO1M,KAAA,SAAA6J,GACP,OAAAA,EAAA0lK,eAAA9lK,EAAAk5C,QAEA,OAAA/1D,KAAAs+S,YAAAt+S,KAAA++S,aAAA,KAAA/+S,KAAA+1D,QAAA+oP,GAEAE,WAAA,WACA,OAAAh/S,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtE0sR,eAAA,WACA,OAAAv+S,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAEhDurO,gBAAA,WACA,uBAAAn/S,QAAAE,KAAAg/S,aAAA,mBAIA5qR,YACAw8Q,QAAA/sE,EAAA9qN,QACAmmS,aAAAvB,EAAA5kS,QACAomS,SAAAt9H,EAAA9oK,QACAqmS,MAAA5M,EAAAz5R,QACAsmS,YAAAzB,EAAA7kS,SAGAqrK,YAAek7H,aAAAzB,EAAA9kS,SAEfjW,OACAF,KAAAuO,OACAzP,GAAAyP,OACA5J,OACAw7J,UAAA,GAEAgiE,cACAvhO,KAAA2N,OACA4H,QAAA,OAEAwmS,kBAAA9lS,QACAoY,KAAA1gB,OACAuiE,SAAAj6D,QACA0rN,UAAA1rN,QACA6kS,WAAA7kS,QACAslS,YAAAtlS,QACAd,QAAAc,QACAusM,YAAA70M,OACA+xK,OAAAzpK,QACAilS,YAAAvtS,OACAwtS,YAAAxtS,OACAytS,WAAAztS,OACAquS,aAAArmS,SACAsmS,aAAAtmS,SACA4pK,SAAAtpK,QACAwpK,eACAz/K,KAAAuX,OACAhC,QAAA,GAEAivN,aACAxkO,KAAA2N,OACA4H,QAAA,WACA,SAAA+kS,EAAAr1N,GAAA,2BAGAi3N,mBAAAjmS,QACAkmS,eAAAlmS,QACA4pK,UACA7/K,KAAA2N,OACA4H,QAAA,SAEA6mS,aAAAnmS,QACAomS,oBACAr8S,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACArI,WACAs7K,iBACA+7H,aAAA,KACAC,iBAAA,EACAr1R,SAAA1qB,KAAA+iL,eACAi9H,YAAA,GACAC,WAAA,EACAC,kBAAA,GACAl8H,aAAA,EACAF,qBAAA,EACAtsG,SAAA,EACA2oO,WAAA,EACAC,cAAA,GACA18H,YAAA,EACA3tH,MAAA,GACAsqP,cAAA,KACA7B,eAAA,EACA8B,mBAAA,GACAC,oBAAA,EACA77E,iBAAA,EACA87E,cAAA,IAKAjlS,OACAgjS,eAAA,WACA,IAAArgS,EAAAle,KAEAA,KAAAuc,UAAA,WACA2B,EAAAuiS,sBAGAz4E,YAAA,SAAAz6N,GACAvN,KAAAkgT,kBAAAlgT,KAAAsgT,mBAAA/yS,GAEAhG,MAAA,SAAAgG,EAAA41K,GACAnjL,KAAA+iL,WACA/iL,KAAAygT,mBACAlzS,EAAAtM,OAAA,GAAAjB,KAAAye,MAAAvU,OAAA,KAAAlK,KAAA+1D,MACA/1D,KAAAsgT,mBAAA,GAEAtgT,KAAAsgT,mBAAAtgT,KAAAkgT,kBAEAlgT,KAAAs+S,aAAAt+S,KAAA2/S,iBACA3/S,KAAA+1D,MAAA,GACA/1D,KAAA0gT,kBAAA1gT,KAAA+1D,SAGA/1D,KAAA4mM,cACA5mM,KAAAs+S,aAAAt+S,KAAA+iL,WACA/iL,KAAAggT,YAAA,KAEA,EAAAvgT,EAAA83O,aAAAhqO,EAAA41K,IACAnjL,KAAAu9I,SAAA,8BAAAhwI,IAGAiqE,QAAA,SAAAjqE,GACA,IAAAyR,EAAAhf,KAEAuN,GA2BAvN,KAAA2gT,iBACA3gT,KAAAi9S,UAAA,mCACAj9S,KAAAs+S,aACAt+S,KAAA+1D,MAAA/1D,KAAAkjL,OAAA,GAAAljL,KAAAogT,cACApgT,KAAA0gT,kBAAA1gT,KAAA+1D,OACA/1D,KAAA+iL,SACA/iL,KAAAye,MAAAvU,MAAAqjC,SAEAvtC,KAAAkjL,SACAljL,KAAAi9S,UAAA,6BACAj9S,KAAAi9S,UAAA,gCAEAj9S,KAAAi9S,UAAA,6BAtCAj9S,KAAA4gT,iBACA5gT,KAAAi9S,UAAA,oCACAj9S,KAAAye,MAAAvU,OACAlK,KAAAye,MAAAvU,MAAA+7N,OAEAjmO,KAAA+1D,MAAA,GACA/1D,KAAAqgT,cAAA,KACArgT,KAAAogT,cAAA,GACApgT,KAAAggT,YAAA,GACAhgT,KAAA6gT,kBACA7gT,KAAAuc,UAAA,WACAyC,EAAAP,MAAAvU,OAAA,KAAA8U,EAAAP,MAAAvU,MAAA3C,OAAA,IAAAyX,EAAA0L,SAAAzpB,SACA+d,EAAAshS,mBAAAthS,EAAAkhS,qBAGAlgT,KAAA+iL,UACA/iL,KAAA0qB,WACA1qB,KAAAs+S,YAAAt+S,KAAA++S,aAAA/+S,KAAA+/S,iBAAA//S,KAAA8/S,aACA9/S,KAAAogT,cAAApgT,KAAA8/S,aAEA9/S,KAAAogT,cAAApgT,KAAA0qB,SAAAi4J,aAEA3iL,KAAAs+S,aAAAt+S,KAAA+1D,MAAA/1D,KAAAogT,iBAoBApgT,KAAAge,MAAA,iBAAAzQ,IAEA9E,QAAA,WACA,IAAA8W,EAAAvf,KAEA,IAAAA,KAAAk5E,UAAA,CACAl5E,KAAAuc,UAAA,WACAgD,EAAA09R,UAAA,qCAEAj9S,KAAA+iL,UACA/iL,KAAAygT,mBAEA,IAAAK,EAAA9gT,KAAA0c,IAAAmkC,iBAAA,UACA,OAAA/gD,QAAA4L,KAAAo1S,EAAAjxS,SAAA+yP,gBACA5iQ,KAAA4mM,cAEA5mM,KAAA0/S,qBAAA1/S,KAAAs+S,YAAAt+S,KAAAkjL,SAAAljL,KAAA8jL,sBACA9jL,KAAA+gT,6BAKAhlS,SACAyqN,kBAAA,SAAAjvK,GACA,IAAAlmB,EAAAkmB,EAAAh3D,OAAAgH,MACA,sBAAAgwD,EAAA/zD,KACAxD,KAAA0kO,iBAAA,EACA1kO,KAAA0gT,kBAAArvQ,OACO,CACP,IAAAq1L,EAAAr1L,IAAApwC,OAAA,OACAjB,KAAA0kO,kBAAA,EAAAL,EAAAsC,UAAAD,KAGAg6E,kBAAA,SAAAnzS,GACA,IAAA+zG,EAAAthH,KAEA,GAAAA,KAAAqgT,gBAAA9yS,IAAAvN,KAAA0kO,gBACA,UAAA1kO,KAAAqgT,eAAA,mBAAArgT,KAAAy/S,cAAA,mBAAAz/S,KAAAw/S,aAAA,CASA,GALAx/S,KAAAqgT,cAAA9yS,EACAvN,KAAAuc,UAAA,WACA+kG,EAAA9pC,SAAA8pC,EAAA27L,UAAA,qCAEAj9S,KAAA0jL,YAAA,EACA1jL,KAAA+iL,UAAA/iL,KAAAs+S,WAAA,CACA,IAAAr9S,EAAA,GAAAjB,KAAAye,MAAAvU,MAAA3C,MAAAtG,OAAA,GACAjB,KAAAggT,YAAAhgT,KAAA4/S,aAAA73S,KAAAC,IAAA,GAAA/G,KACAjB,KAAAghT,oBACAhhT,KAAAygT,mBAEAzgT,KAAAkjL,QAAA,mBAAAljL,KAAAw/S,cACAx/S,KAAA0jL,YAAA,EACA1jL,KAAAw/S,aAAAjyS,IACO,mBAAAvN,KAAAy/S,cACPz/S,KAAAy/S,aAAAlyS,GACAvN,KAAAi9S,UAAA,iCAEAj9S,KAAA8jL,qBAAA9jL,KAAAgkL,aACAhkL,KAAAi9S,UAAA,yBAAA1vS,GACAvN,KAAAi9S,UAAA,gCAEAj9S,KAAA0/S,qBAAA1/S,KAAAs+S,YAAAt+S,KAAAkjL,SAAAljL,KAAA8jL,sBACA9jL,KAAA+gT,+BA1BA/gT,KAAAqgT,cAAA9yS,GA6BAqzS,eAAA,WACA,IAAAptO,EAAAxzE,KAAA0c,IAAA6mC,cAAA,mBACAiwB,IACA,EAAArlB,EAAAosB,aAAA/G,EAAA,eAGAmtO,eAAA,WACA,IAAAntO,EAAAxzE,KAAA0c,IAAA6mC,cAAA,mBACAiwB,KAAA,EAAArlB,EAAAurB,UAAAlG,EAAA,0BACA,EAAArlB,EAAA6rB,UAAAxG,EAAA,eAGAytO,eAAA,SAAAhkS,GACA,IAAA1c,EAAAsL,MAAAC,QAAAmR,MAAA,GAAAA,EAAA,GAAAP,IAAAO,EAAAP,IACA,GAAA1c,KAAAye,MAAAm9B,QAAAr7C,EAAA,CACA,IAAA2gT,EAAAlhT,KAAAye,MAAAm9B,OAAAl/B,IAAA6mC,cAAA,8BACA,EAAAw6P,EAAAhlS,SAAAmoS,EAAA3gT,GAEAP,KAAAye,MAAA0iS,WAAAnhT,KAAAye,MAAA0iS,UAAAt1F,gBAEAu1F,gBAAA,WACA,IAAAh2J,EAAAprJ,KAEAA,KAAAuc,UAAA,WACA,OAAA6uI,EAAA61J,eAAA71J,EAAA1gI,aAGA22R,WAAA,SAAA9zS,IACA,EAAA9N,EAAA83O,aAAAv3O,KAAAuH,MAAAgG,IACAvN,KAAAge,MAAA,SAAAzQ,IAGAskD,UAAA,SAAAtqD,GAKA,IAJA,IAAA0V,OAAA,EACArd,EAAA,oBAAAgK,OAAA1J,UAAA0H,SAAA8D,KAAAnE,GAAA+Q,cACAgpS,EAAA,kBAAA13S,OAAA1J,UAAA0H,SAAA8D,KAAAnE,GAAA+Q,cAEAvX,EAAAf,KAAA+jL,cAAA9iL,OAAA,EAAiDF,GAAA,EAAQA,IAAA,CACzD,IAAAwgT,EAAAvhT,KAAA+jL,cAAAhjL,GAEA,GADAnB,GAAA,EAAAH,EAAA6jL,gBAAAi+H,EAAAh6S,MAAAvH,KAAAqjL,aAAA,EAAA5jL,EAAA6jL,gBAAA/7K,EAAAvH,KAAAqjL,UAAAk+H,EAAAh6S,UACA,CACA0V,EAAAskS,EACA,OAGA,GAAAtkS,EAAA,OAAAA,EACA,IACA0kD,GACAp6D,QACAo7K,aAHA/iL,GAAA0hT,EAAA,GAAA/5S,GAQA,OAHAvH,KAAA+iL,WACAphH,EAAA8gH,UAAA,GAEA9gH,GAEAilI,YAAA,WACA,IAAAh7C,EAAA5rJ,KAEA,IAAAA,KAAA+iL,SAAA,CACA,IAAA9lK,EAAAjd,KAAA6xD,UAAA7xD,KAAAuH,OAUA,OATA0V,EAAA6C,SACA9f,KAAA8/S,aAAA7iS,EAAA0lK,aACA3iL,KAAA+/S,iBAAA,GAEA//S,KAAA+/S,iBAAA,EAEA//S,KAAAogT,cAAAnjS,EAAA0lK,aACA3iL,KAAA0qB,SAAAzN,OACAjd,KAAAs+S,aAAAt+S,KAAA+1D,MAAA/1D,KAAAogT,gBAGA,IAAArvS,KACAlF,MAAAC,QAAA9L,KAAAuH,QACAvH,KAAAuH,MAAAuC,QAAA,SAAAvC,GACAwJ,EAAAxP,KAAAqqJ,EAAA/5F,UAAAtqD,MAGAvH,KAAA0qB,SAAA3Z,EACA/Q,KAAAuc,UAAA,WACAqvI,EAAA60J,sBAGAv5F,YAAA,SAAA3vJ,GACAv3D,KAAAmgT,UAOAngT,KAAAmgT,WAAA,IANAngT,KAAAu/S,mBAAAv/S,KAAAs+S,cACAt+S,KAAAw3E,SAAA,EACAx3E,KAAAugT,oBAAA,GAEAvgT,KAAAge,MAAA,QAAAu5C,KAKA0uK,KAAA,WACAjmO,KAAAw3E,SAAA,EACAx3E,KAAAye,MAAAk9B,UAAAsqL,QAEA9e,WAAA,SAAA5vJ,GACA,IAAAiqP,EAAAxhT,KAEAsM,WAAA,WACAk1S,EAAAhB,aACAgB,EAAAhB,cAAA,EAEAgB,EAAAxjS,MAAA,OAAAu5C,IAEO,IACPv3D,KAAAmgT,WAAA,GAEAsB,gBAAA,SAAAlqP,GACAv3D,KAAA2jK,UAAA7jK,QAAA,oBACAE,KAAA0hT,eAAAnqP,IAGA69I,UAAA,WACAp1M,KAAAye,MAAAm9B,QAAA57C,KAAAye,MAAAm9B,OAAAw5J,aAEA69F,YAAA,WACAjzS,KAAAw3E,SAAA,GAEAmqO,yBAAA,SAAA5O,GACA,GAAAlnS,MAAAC,QAAA9L,KAAA0qB,UAAA,CACA,IAAAzN,EAAAjd,KAAA0qB,SAAA1qB,KAAA0qB,SAAAzpB,OAAA,GACA,GAAAgc,EAEA,WAAA81R,IAAA,IAAAA,GACA91R,EAAAwlK,SAAAswH,EACAA,IAGA91R,EAAAwlK,UAAAxlK,EAAAwlK,SACAxlK,EAAAwlK,YAEAm/H,cAAA,SAAAz9S,GACA,GAAAA,EAAA5D,OAAAgH,MAAAtG,QAAA,IAAAjB,KAAA2hT,2BAAA,CACA,IAAAp6S,EAAAvH,KAAAuH,MAAAjF,QACAiF,EAAAuvD,MACA92D,KAAAge,MAAA,QAAAzW,GACAvH,KAAAqhT,WAAA95S,KAGAy5S,kBAAA,WACA,KAAAhhT,KAAAsgT,qBACAtgT,KAAAsgT,mBAAAtgT,KAAAye,MAAAvU,MAAA3C,MAAA,GAAAvH,KAAAkgT,oBAGA2B,gBAAA,SAAA19S,GACA,IAAAA,EAAA+3Q,SAAAl8Q,KAAA2hT,0BAAA,GACA3hT,KAAAggT,YAAA,GAAAhgT,KAAAye,MAAAvU,MAAA3C,MAAAtG,OAAA,GACAjB,KAAAygT,oBAEAA,iBAAA,WACA,IAAAqB,EAAA9hT,KAEAA,KAAA4/S,eAAA5/S,KAAAs+S,YACAt+S,KAAAuc,UAAA,WACA,GAAAulS,EAAArjS,MAAAk9B,UAAA,CACA,IAAAomQ,EAAAD,EAAArjS,MAAAk9B,UAAAj/B,IAAA+jN,WACAv2N,KAAAkd,OAAA1b,KAAAq2S,EAAA,SAAAp1S,GACA,gBAAAA,EAAAolC,UACS,GACTiwQ,EAAAF,EAAArjS,MAAAujS,KACAC,EAAAhE,EAAA6D,EAAA9C,aAAA,GACA90S,EAAAqO,MAAAU,OAAA,IAAA6oS,EAAAp3R,SAAAzpB,OAAAghT,EAAA,KAAAl6S,KAAAE,IAAA+5S,IAAAplS,cAAAolS,EAAAplS,aAAAqlS,EAAA,OAAAA,GAAA,KACAH,EAAAtqO,UAAA,IAAAsqO,EAAArD,WACAqD,EAAA7E,UAAA,uCAIA4D,gBAAA,WACA,IAAAqB,EAAAliT,KAEAsM,WAAA,WACA41S,EAAAn/H,SAGAm/H,EAAAx3R,SAAAzpB,OAAA,EACAihT,EAAAx+H,WAAA37K,KAAAC,IAAAuE,MAAA,KAAA21S,EAAAx3R,SAAA/Z,IAAA,SAAAhE,GACA,OAAAu1S,EAAAz5S,QAAA3I,QAAA6M,MAGAu1S,EAAAx+H,YAAA,EAPAw+H,EAAAx+H,WAAAw+H,EAAAz5S,QAAA3I,QAAAoiT,EAAAx3R,WAUO,MAEPy3R,mBAAA,SAAAllS,EAAAmlS,GACA,IAAAC,EAAAriT,KAEA,GAAAA,KAAA+iL,SAAA,CACA,IAAAx7K,EAAAvH,KAAAuH,MAAAjF,QACAggT,EAAAtiT,KAAAuiT,cAAAh7S,EAAA0V,EAAA1V,OACA+6S,GAAA,EACA/6S,EAAAjG,OAAAghT,EAAA,IACStiT,KAAAijL,eAAA,GAAA17K,EAAAtG,OAAAjB,KAAAijL,gBACT17K,EAAAhG,KAAA0b,EAAA1V,OAEAvH,KAAAge,MAAA,QAAAzW,GACAvH,KAAAqhT,WAAA95S,GACA0V,EAAA6C,UACA9f,KAAA+1D,MAAA,GACA/1D,KAAA0gT,kBAAA,IACA1gT,KAAAggT,YAAA,IAEAhgT,KAAAs+S,YAAAt+S,KAAAye,MAAAvU,MAAAqjC,aAEAvtC,KAAAge,MAAA,QAAAf,EAAA1V,OACAvH,KAAAqhT,WAAApkS,EAAA1V,OACAvH,KAAAw3E,SAAA,EAEAx3E,KAAAwgT,aAAA4B,EACApiT,KAAAwiT,eACAxiT,KAAAw3E,SACAx3E,KAAAuc,UAAA,WACA8lS,EAAApB,eAAAhkS,MAGAulS,aAAA,WACAxiT,KAAAmgT,WAAA,EACA,IAAAj2S,EAAAlK,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAk9B,UACAzxC,GACAA,EAAAqjC,SAGAg1Q,cAAA,WACA,IAAAE,EAAAziT,KAEA4L,EAAA9G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACAyC,EAAAzC,UAAA,GAGA,KADA,oBAAA8E,OAAA1J,UAAA0H,SAAA8D,KAAAnE,GAAA+Q,eAEA,OAAA1M,EAAA9L,QAAAyH,GAEA,IACA87K,EACAz2K,EAFA22K,GACAF,EAAAo/H,EAAAp/H,SACAz2K,GAAA,EACAhB,EAAAwH,KAAA,SAAAzG,EAAA5L,GACA,SAAAtB,EAAA6jL,gBAAA32K,EAAA02K,MAAA,EAAA5jL,EAAA6jL,gBAAA/7K,EAAA87K,KACAz2K,EAAA7L,GACA,MAKAgM,EAAAH,IAIA,2BAAA22K,EAAA,YAAAv4K,EAAAu4K,MAAAx2K,OAAA,GAGA21S,WAAA,WACA1iT,KAAAu+S,iBACAv+S,KAAAugT,mBACAvgT,KAAAugT,oBAAA,EAEAvgT,KAAAw3E,SAAAx3E,KAAAw3E,QAEAx3E,KAAAw3E,UACAx3E,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAk9B,WAAApO,UAIAo1Q,aAAA,WACA3iT,KAAAw3E,QAGAx3E,KAAAyI,QAAAzI,KAAA0jL,aACA1jL,KAAAmiT,mBAAAniT,KAAAyI,QAAAzI,KAAA0jL,aAHA1jL,KAAA0iT,cAOAhB,eAAA,SAAAnqP,GACAA,EAAAitH,kBACAxkL,KAAAge,MAAA,YACAhe,KAAAqhT,WAAA,IACArhT,KAAAw3E,SAAA,EACAx3E,KAAAge,MAAA,UAEA4kS,UAAA,SAAArrP,EAAA4zJ,GACA,IAAAv+M,EAAA5M,KAAA0qB,SAAA5qB,QAAAqrN,GACA,GAAAv+M,GAAA,IAAA5M,KAAAu+S,eAAA,CACA,IAAAh3S,EAAAvH,KAAAuH,MAAAjF,QACAiF,EAAAjG,OAAAsL,EAAA,GACA5M,KAAAge,MAAA,QAAAzW,GACAvH,KAAAqhT,WAAA95S,GACAvH,KAAAge,MAAA,aAAAmtM,EAAA5jN,OAEAgwD,EAAAitH,mBAEAq+H,cAAA,WACA7iT,KAAAs+S,YAAAt+S,KAAA+1D,QAAA/1D,KAAAogT,gBACApgT,KAAA+1D,MAAA/1D,KAAAogT,cACApgT,KAAA0gT,kBAAA1gT,KAAA+1D,SAGAmuH,gBAAA,SAAAt3K,GACAA,GAAA,IACA5M,KAAAgkL,eACAhkL,KAAA8jL,uBACA9jL,KAAAyI,QAAAnH,OAAAsL,EAAA,KAGAk2S,gBAAA,WACA9iT,KAAAigT,WAAAjgT,KAAAye,MAAAk9B,UAAAj/B,IAAAiiC,wBAAA3lC,OAEA+pS,aAAA,WACA/iT,KAAA8iT,kBACA9iT,KAAA+iL,UAAA/iL,KAAAygT,oBAEAM,wBAAA,WACA/gT,KAAA0jL,YAAA,EAGA,IADA,IAAAs/H,GAAA,EACAjiT,EAAAf,KAAAyI,QAAAxH,OAAA,EAA2CF,GAAA,EAAQA,IACnD,GAAAf,KAAAyI,QAAA1H,GAAA+e,QAAA,CACAkjS,GAAA,EACAhjT,KAAA0jL,WAAA3iL,EACA,MAGA,IAAAiiT,EACA,QAAAr8M,EAAA,EAAsBA,IAAA3mG,KAAAyI,QAAAxH,SAA4B0lG,EAAA,CAClD,IAAA1pF,EAAAjd,KAAAyI,QAAAk+F,GACA,GAAA3mG,KAAA+1D,OAEA,IAAA94C,EAAAy2D,WAAAz2D,EAAAulK,eAAAvlK,EAAAu6D,QAAA,CACAx3E,KAAA0jL,WAAA/8E,EACA,YAIA,GAAA1pF,EAAA4lK,aAAA,CACA7iL,KAAA0jL,WAAA/8E,EACA,SAKAs8M,YAAA,SAAAt2S,GACA,0BAAA/C,OAAA1J,UAAA0H,SAAA8D,KAAAiB,EAAApF,OAAA+Q,cACA3L,EAAApF,OAEA,EAAA9H,EAAA6jL,gBAAA32K,EAAApF,MAAAvH,KAAAqjL,YAKAvjK,QAAA,WACA,IAAAojS,EAAAljT,KAEAA,KAAAkgT,kBAAAlgT,KAAAsgT,mBAAAtgT,KAAAgoO,YACAhoO,KAAA+iL,WAAAl3K,MAAAC,QAAA9L,KAAAuH,QACAvH,KAAAge,MAAA,aAEAhe,KAAA+iL,UAAAl3K,MAAAC,QAAA9L,KAAAuH,QACAvH,KAAAge,MAAA,YAGAhe,KAAAmjT,wBAAA,EAAAv9F,EAAA7sM,SAAA/Y,KAAAgM,SAAA,WACAk3S,EAAAL,kBAGA7iT,KAAAojT,sBAAA,EAAAx9F,EAAA7sM,SAAA/Y,KAAAgM,SAAA,SAAA7H,GACA++S,EAAAxC,kBAAAv8S,EAAA5D,OAAAgH,SAGAvH,KAAAikL,IAAA,oBAAAjkL,KAAAmiT,oBACAniT,KAAAikL,IAAA,cAAAjkL,KAAA4mM,cAEA7mL,QAAA,WACA,IAAAsjS,EAAArjT,KAEAA,KAAA+iL,UAAAl3K,MAAAC,QAAA9L,KAAAuH,QAAAvH,KAAAuH,MAAAtG,OAAA,IACAjB,KAAAsgT,mBAAA,KAEA,EAAA51F,EAAApsM,mBAAAte,KAAA0c,IAAA1c,KAAA+iT,cACA/iT,KAAAkjL,QAAAljL,KAAA+iL,UACA/iL,KAAAygT,mBAEAzgT,KAAAuc,UAAA,WACA8mS,EAAA5kS,MAAAk9B,WAAA0nQ,EAAA5kS,MAAAk9B,UAAAj/B,MACA2mS,EAAApD,WAAAoD,EAAA5kS,MAAAk9B,UAAAj/B,IAAAiiC,wBAAA3lC,SAGAhZ,KAAA4mM,eAEA5mL,cAAA,WACAhgB,KAAA0c,KAAA1c,KAAA+iT,eAAA,EAAAr4F,EAAAnsM,sBAAAve,KAAA0c,IAAA1c,KAAA+iT,iBAMA3xK,IACA,SAAAluI,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA+7S,EAAA/jT,EAAA,KACAgkT,EAAAhkT,EAAA6+C,EAAAklQ,GACAE,EAAAjkT,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAowO,EAAAhuS,EACAiuS,EAAA,GATA,EAEA,KAEA,KAEA,MAUAj/P,EAAA,QAAA2uB,EAAA,SAKAm+D,IACA,SAAAnuI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAs4S,EAAAlkT,EAAA,GAEAomN,GAEAx6M,EAFAs4S,IAEsCt4S,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,mBAEA2/K,cAAA,mBAEAD,QAAAqjC,EAAA5sM,SAEAjW,OACAi4C,WACAhiC,QAAA,gBAGAmiC,mBACAniC,QAAA,GAGAw7L,eACAx7L,QAAA,WACA,OACAiiC,iBAAA,KAKAq5J,cACAt7L,SAAA,GAGAu7L,cACA9wM,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACA4yS,SAAA,KAKA7nS,UACAmqM,YAAA,WACA,OAAAhmN,KAAAmsN,QAAAnG,cAIAzqM,OACAooS,qBAAA,WACA3jT,KAAA0jT,SAAA1jT,KAAAmsN,QAAAzvM,IAAAiiC,wBAAA3lC,MAAA,OAIA+G,QAAA,WACA,IAAAlD,EAAA7c,KAEAA,KAAA+0M,aAAA/0M,KAAAmsN,QAAA1tM,MAAAk9B,UAAAj/B,IACA1c,KAAAmsN,QAAArX,UAAA90M,KAAA80M,UAAA90M,KAAA0c,IACA1c,KAAAikL,IAAA,0BACApnK,EAAAsvM,QAAA30I,SAAA36D,EAAA83L,iBAEA30M,KAAAikL,IAAA,gBAAAjkL,KAAA40M,kBAcAtjE,IACA,SAAApuI,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,+BAAAc,QAAmD0rS,cAAnI5jT,KAAmImsN,QAAAppC,UAAnI/iL,KAAyKgmN,aAAAztM,OAA2BmrS,SAApM1jT,KAAoM0jT,YAApM1jT,KAA+N+0E,GAAA,gBAExOp9D,oBACjB4sC,EAAA,KAIAgtF,IACA,SAAAruI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4V,SACAjI,KAAA,WACA,OACA+yS,aAAA,IAKAhoS,UACAioS,mBAAA,WACA,OAAA9jT,KAAAyI,QAAA2e,OAAA,SAAAnK,GACA,OAAAA,EAAAu6D,UACOqgC,MAAA,SAAA56F,GACP,OAAAA,EAAAy2D,aAKAn4D,OACAmoK,WAAA,SAAAn2K,GACA,IAAAsP,EAAA7c,KAEA,iBAAAuN,MAAA,IACAvN,KAAA6jT,YAAA7jT,KAAAyI,QAAA8E,QAEAvN,KAAAyI,QAAAqB,QAAA,SAAAmT,GACAA,EAAAylK,MAAA7lK,EAAAgnS,cAAA5mS,MAKAlB,SACAgoS,gBAAA,SAAAjhQ,GACA,IAAA5kC,EAAAle,KAEA,GAAAA,KAAAw3E,SAIA,OAAAx3E,KAAAyI,QAAAxH,QAAA,IAAAjB,KAAA8jL,uBACA9jL,KAAA8jT,mBAAA,CACA,SAAAhhQ,GACA9iD,KAAA0jL,aACA1jL,KAAA0jL,aAAA1jL,KAAAyI,QAAAxH,SACAjB,KAAA0jL,WAAA,IAES,SAAA5gI,IACT9iD,KAAA0jL,aACA1jL,KAAA0jL,WAAA,IACA1jL,KAAA0jL,WAAA1jL,KAAAyI,QAAAxH,OAAA,IAGA,IAAAgc,EAAAjd,KAAAyI,QAAAzI,KAAA0jL,aACA,IAAAzmK,EAAAy2D,WAAA,IAAAz2D,EAAAulK,eAAAvlK,EAAAu6D,SACAx3E,KAAA+jT,gBAAAjhQ,GAEA9iD,KAAAuc,UAAA,WACA,OAAA2B,EAAA+iS,eAAA/iS,EAAA2lS,qBArBA7jT,KAAAw3E,SAAA,MA8BAg6D,IACA,SAAAtuI,EAAAqhD,EAAAhlD,GAEA,aACA,IAGA+0E,GAAiB7wE,OAHjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,YAAAn1D,WAAA,gBAA8FhI,YAAA,YAAAc,OAAAq8D,EAAAyqO,WAAA,cAAAzqO,EAAAyqO,WAAA,IAAAt/R,IAA2Fm1D,MAAA,SAAA0vG,GAAyBA,EAAAC,kBAAyBjwG,EAAAmuO,WAAAn+H,OAAyBhwG,EAAA,SAAAr9D,EAAA,OAA2B0B,IAAA,OAAAxB,YAAA,kBAAAmB,OAAiDyrS,YAAAzvO,EAAA0rO,WAAA,WAA4C1rO,EAAAqrO,cAAArrO,EAAA7pD,SAAAzpB,OAAAiW,EAAA,QAAAA,EAAA,UAAoEG,OAAOy7R,UAAAv+N,EAAAgqO,eAAA1sR,KAAA0iD,EAAA0qO,gBAAAlM,IAAAx+N,EAAA7pD,SAAA,GAAA+3J,SAAAj/K,KAAA,OAAAygT,sBAAA,IAAgIvkS,IAAKo5D,MAAA,SAAAyrG,GAAyBhwG,EAAAquO,UAAAr+H,EAAAhwG,EAAA7pD,SAAA,QAAyCxT,EAAA,QAAaE,YAAA,yBAAmCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA7pD,SAAA,GAAAi4J,mBAAApuG,EAAA7pD,SAAAzpB,OAAA,EAAAiW,EAAA,UAA0FG,OAAOy7R,UAAA,EAAAjhR,KAAA0iD,EAAA0qO,gBAAAz7S,KAAA,OAAAygT,sBAAA,MAAoF/sS,EAAA,QAAaE,YAAA,yBAAmCm9D,EAAA18D,GAAA,KAAA08D,EAAA6vF,GAAA7vF,EAAA7pD,SAAAzpB,OAAA,QAAAszE,EAAAO,MAAA,GAAAP,EAAAO,KAAAP,EAAAqrO,aAAggBrrO,EAAAO,KAAhgB59D,EAAA,oBAAoHwI,IAAIwkS,cAAA3vO,EAAAksO,mBAAoClsO,EAAA9E,GAAA8E,EAAA,kBAAA5nE,GAAsC,OAAAuK,EAAA,UAAoBnN,IAAAwqE,EAAA0uO,YAAAt2S,GAAA0K,OAAiCy7R,UAAAv+N,EAAAgqO,eAAA1sR,KAAA0iD,EAAA0qO,gBAAAlM,IAAApmS,EAAA81K,SAAAj/K,KAAA,OAAAygT,sBAAA,IAAqHvkS,IAAKo5D,MAAA,SAAAyrG,GAAyBhwG,EAAAquO,UAAAr+H,EAAA53K,OAA8BuK,EAAA,QAAaE,YAAA,yBAAmCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAAz3J,EAAAg2K,sBAAwCpuG,EAAA,WAAAr9D,EAAA,SAAyCktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoExG,IAAA,QAAAxB,YAAA,mBAAAc,OAAAq8D,EAAAyqO,WAAA,MAAAzqO,EAAAyqO,WAAA,IAAAzmS,OAA4GS,MAAAu7D,EAAAyrO,YAAA,KAAAgE,YAAAzvO,EAAA0rO,WAAA,SAAyE5oS,OAAS7T,KAAA,OAAAkwE,SAAAa,EAAAgqO,eAAA51E,aAAAp0J,EAAAwwJ,cAA4E8D,UAAWthO,MAAAgtE,EAAA,OAAoB70D,IAAK6tB,MAAAgnC,EAAA2yI,YAAA+e,KAAA,SAAA1hD,GAAgDhwG,EAAA4rO,WAAA,GAAsBtrO,MAAA,SAAA0vG,GAA0BA,EAAAC,mBAA0B2/H,MAAA5vO,EAAAysO,kBAAA3O,SAAA99N,EAAAstO,gBAAA,SAAAt9H,GAA+E,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAuE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAwvO,gBAAA,SAA4B,SAAAx/H,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAwvO,gBAAA,SAA4B,SAAAx/H,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAouO,aAAAp+H,IAAyB,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,SAAA33F,EAAAx6K,KAAsE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAiD,SAAA,GAAoB,SAAA+sG,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,gBAAA33F,EAAAx6K,KAA6E,YAAewqE,EAAAqtO,cAAAr9H,KAA0BukD,iBAAAv0J,EAAAiyJ,kBAAAuC,kBAAAx0J,EAAAiyJ,kBAAAwC,eAAAz0J,EAAAiyJ,kBAAAt8N,OAAA,SAAAq6K,GAAsJA,EAAAhkL,OAAAmiQ,YAAsCnuL,EAAAxe,MAAAwuH,EAAAhkL,OAAAgH,QAA8BgtE,EAAA6uO,yBAA4B7uO,EAAAO,MAAA,GAAAP,EAAAO,KAAA59D,EAAA,YAAuC0B,IAAA,YAAAV,OAAuBksS,WAAA7vO,EAAAiD,SAA0BngE,OAAQ7T,KAAA,OAAAwkO,YAAAzzJ,EAAA+rO,mBAAA19S,KAAA2xE,EAAA3xE,KAAAlB,GAAA6yE,EAAA7yE,GAAA2iT,gBAAA9vO,EAAAwwJ,aAAAlzM,KAAA0iD,EAAAyqO,WAAAtrO,SAAAa,EAAAgqO,eAAA15E,SAAAtwJ,EAAAswJ,SAAAy/E,kBAAA,GAAmN5kS,IAAK6tB,MAAAgnC,EAAA2yI,YAAA+e,KAAA1xJ,EAAA4yI,YAA8CmuC,UAAW6uD,MAAA,SAAA5/H,GAAyBhwG,EAAA4uO,uBAAA5+H,IAAmC8tH,SAAA,SAAA9tH,GAA6B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAuE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAwvO,gBAAA,SAA4B,SAAAx/H,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAwvO,gBAAA,SAA4B,SAAAx/H,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAouO,aAAAp+H,IAAyB,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,SAAA33F,EAAAx6K,KAAsE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAiD,SAAA,GAAoB,SAAA+sG,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAewqE,EAAAiD,SAAA,IAAoB+sO,MAAA,SAAAhgI,GAA2BhwG,EAAA4uO,uBAAA5+H,IAAmCD,WAAA,SAAAC,GAA+BhwG,EAAAiqO,eAAA,GAAyB73F,WAAA,SAAApiC,GAA+BhwG,EAAAiqO,eAAA,IAA2BjnR,OAAQhwB,MAAAgtE,EAAA,cAAApyE,SAAA,SAAAqiT,GAAmDjwO,EAAA6rO,cAAAoE,GAAsBplS,WAAA,mBAA6Bm1D,EAAAz7D,OAAA,OAAA5B,EAAA,YAAqCG,OAAO20O,KAAA,UAAgBA,KAAA,WAAez3K,EAAAQ,GAAA,cAAAR,EAAAO,KAAA59D,EAAA,KAAwCgB,OAAA,+CAAAq8D,EAAAovF,WAAAtsJ,OAAgF20O,KAAA,UAAgBtsO,IAAKm1D,MAAAN,EAAAktO,iBAA4Bz1D,KAAA,YAAe,GAAA90O,EAAA,cAAuBG,OAAOzU,KAAA,kBAAwB8c,IAAK+kS,eAAAlwO,EAAA6sO,gBAAA8C,cAAA3vO,EAAA6gI,aAAgEl+L,EAAA,kBAAuBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAAiD,UAAA,IAAAjD,EAAAkqO,UAAAr/R,WAAA,mCAAwHxG,IAAA,SAAAvB,OAAsBqtS,iBAAAnwO,EAAAsrO,sBAAyC3oS,EAAA,gBAAqBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA9rE,QAAAxH,OAAA,IAAAszE,EAAA57D,QAAAyG,WAAA,mCAAwHxG,IAAA,YAAAV,OAAyBysS,YAAApwO,EAAAwqO,aAAAxqO,EAAAxe,OAAA,IAAAwe,EAAAuvG,sBAA8EzsK,OAAQ8zM,IAAA,KAAAy5F,aAAA,2BAAAC,aAAA,8BAA4FtwO,EAAA,cAAAr9D,EAAA,aAAsCG,OAAO9P,MAAAgtE,EAAAxe,MAAAj2C,QAAA,MAAgCy0D,EAAAO,KAAAP,EAAAQ,GAAA,eAAAR,EAAAkqO,aAC5nLlqO,EAAAwqO,aAAAxqO,EAAA57D,SAAA47D,EAAAwqO,aAAA,IAAAxqO,EAAA9rE,QAAAxH,QAAAiW,EAAA,KAAuGE,YAAA,8BAAwCm9D,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAkqO,WAAA,cAAAlqO,EAAAO,MAAA,YAE9Hn9D,oBACjB4sC,EAAA,KAIAkxF,GACA,SAAAvyI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBm2I,GACA,SAAAxyI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBw2I,GACA,SAAA7yI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBgmN,EACA,SAAAriN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBs2I,GACA,SAAA3yI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB42I,GACA,SAAAjzI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB62I,GACA,SAAAlzI,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBuiL,EACA,SAAA5+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBwiL,GACA,SAAA7+K,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy6K,EAAAziL,EAAA,IACA0iL,EAAA1iL,EAAA6+C,EAAA4jI,GACAE,EAAA3iL,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8uG,EAAA1sK,EACA2sK,EAAA,GATA,EAEA,KAEA,KAEA,MAUA39H,EAAA,QAAA2uB,EAAA,SAKAivG,GACA,SAAAj/K,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAwBAjmE,EAxBAH,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAkB5Ii3K,EAAA7iL,EAAA,GAEA8iL,GAIAl3K,EAJAi3K,IAIsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7E1L,EAAAF,EAAA,GAIA4D,EAAA4V,SACAupK,QAAAD,EAAAtpK,SAEAnW,KAAA,WAEA2/K,cAAA,WAEAlvG,QAAA,UAEAvwE,OACAyE,OACAw7J,UAAA,GAEAtwJ,OAAAtB,OAAA4J,QACA+E,QAAArG,QACAi6D,UACAlwE,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACAlE,OAAA,EACA41K,eAAA,EACAhrG,SAAA,EACAirG,UAAA,EACAC,OAAA,IAKA7mK,UACAjc,SAAA,WACA,0BAAAgK,OAAA1J,UAAA0H,SAAA8D,KAAA1L,KAAAuH,OAAA+Q,eAEAqqK,aAAA,WACA,OAAA3iL,KAAAyS,QAAAzS,KAAAJ,SAAA,GAAAI,KAAAuH,QAEAq7K,aAAA,WACA,OAAA5iL,KAAAuH,OAAAvH,KAAAyS,OAAA,IAEAowK,aAAA,WACA,OAAA7iL,KAAA8iL,OAAAC,SAGA/iL,KAAAwjD,SAAAxjD,KAAA8iL,OAAAv7K,MAAAvH,KAAAuH,OAFAvH,KAAAqd,QAAArd,KAAAuH,MAAAvH,KAAA8iL,OAAAv7K,QAKAy7K,aAAA,WACA,QAAAhjL,KAAA8iL,OAAAC,YACA/iL,KAAA6iL,eAAA7iL,KAAA8iL,OAAAv7K,WAAAtG,QAAAjB,KAAA8iL,OAAAG,eAAAjjL,KAAA8iL,OAAAG,cAAA,KAOA1nK,OACAonK,aAAA,WACA3iL,KAAA8f,SAAA9f,KAAA8iL,OAAAI,QAAAljL,KAAAu9I,SAAA,2BAEAh2I,MAAA,SAAAgG,EAAA41K,GACA,IAAAC,EAAApjL,KAAA8iL,OACAI,EAAAE,EAAAF,OACAG,EAAAD,EAAAC,SAEA,IAAArjL,KAAA8f,UAAAojK,EAAA,CACA,GAAAG,GAAA,qBAAA91K,EAAA,YAAAvC,EAAAuC,KAAA,qBAAA41K,EAAA,YAAAn4K,EAAAm4K,KAAA51K,EAAA81K,KAAAF,EAAAE,GACA,OAEArjL,KAAAu9I,SAAA,6BAKAxhI,SACAsB,QAAA,SAAA9H,EAAAC,GACA,GAAAxV,KAAAJ,SAEO,CACP,IAAAyjL,EAAArjL,KAAA8iL,OAAAO,SACA,SAAA5jL,EAAA6jL,gBAAA/tK,EAAA8tK,MAAA,EAAA5jL,EAAA6jL,gBAAA9tK,EAAA6tK,GAHA,OAAA9tK,IAAAC,GAMAguC,SAAA,WACA,IAAA3mC,EAAA7c,KAEA4L,EAAA9G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACAvE,EAAAuE,UAAA,GAEA,IAAA9E,KAAAJ,SACA,OAAAgM,EAAA9L,QAAAS,IAAA,EAEA,IACA8iL,EADAE,GACAF,EAAAxmK,EAAAimK,OAAAO,UAEAt2K,EAAAnB,EAAAwH,KAAA,SAAAzG,GACA,SAAAlN,EAAA6jL,gBAAA32K,EAAA02K,MAAA,EAAA5jL,EAAA6jL,gBAAA/iL,EAAA8iL,OAKA,2BAAAE,EAAA,YAAAv4K,EAAAu4K,MAAAx2K,OAAA,GAGAy2K,oBAAA,SAAAj2K,GACAvN,KAAAwiL,cAAAj1K,GAEAk2K,UAAA,WACAzjL,KAAA0zE,UAAA1zE,KAAAwiL,gBACAxiL,KAAA8iL,OAAAY,WAAA1jL,KAAA8iL,OAAAr6K,QAAA3I,QAAAE,QAGA2jL,kBAAA,YACA,IAAA3jL,KAAA0zE,WAAA,IAAA1zE,KAAAwiL,eACAxiL,KAAAu9I,SAAA,gCAAAv9I,MAAA,KAGA4jL,YAAA,SAAA7tH,GACA/1D,KAAAw3E,QAAA,IAAAlvE,QAAA,EAAA7I,EAAAokL,oBAAA9tH,GAAA,KAAA4F,KAAA37D,KAAA2iL,eAAA3iL,KAAA8f,QACA9f,KAAAw3E,SACAx3E,KAAA8iL,OAAAgB,yBAKAhkK,QAAA,WACA9f,KAAA8iL,OAAAr6K,QAAAlH,KAAAvB,MACAA,KAAA8iL,OAAAiB,cAAAxiL,KAAAvB,MACAA,KAAA8iL,OAAAkB,eACAhkL,KAAA8iL,OAAAgB,uBAEA9jL,KAAAikL,IAAA,cAAAjkL,KAAA4jL,aACA5jL,KAAAikL,IAAA,sBAAAjkL,KAAAwjL,sBAEAxjK,cAAA,WACAhgB,KAAA8iL,OAAAoB,gBAAAlkL,KAAA8iL,OAAAr6K,QAAA3I,QAAAE,UAMAmkL,GACA,SAAAjhL,EAAAqhD,EAAAhlD,GAEA,aACA,IAMA+0E,GAAiB7wE,OANjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,MAAgBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,2BAAAc,OAC5LwS,SAAA6pD,EAAAsuG,aACAruG,cAAAD,EAAAb,UAAAa,EAAAiuG,eAAAjuG,EAAAyuG,aACAN,MAAAnuG,EAAAmuG,OACGhjK,IAAK4kK,WAAA/vG,EAAAkvG,UAAA5uG,MAAA,SAAA0vG,GAAoDA,EAAAC,kBAAyBjwG,EAAAovG,kBAAAY,OAAgChwG,EAAAQ,GAAA,WAAA79D,EAAA,QAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAouG,oBAAA,IAEpGhrK,oBACjB4sC,EAAA,KAIAo6K,EACA,SAAAz7N,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBq/N,EACA,SAAA17N,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBkoN,EACA,SAAAvkN,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,iCC9pDzB,IAoBA0D,EApBmB1D,EAAQ,QAoB3BmK,QACAlG,KAAA,oBAGAN,EAAAC,QAAAF,wBCxBA,IAEA6hT,EAAA,IAFUvlT,EAAQ,QAElB,KAiEA,SAAAwlT,IACA,IAAAC,EAAAhlT,KAAAilT,eACAjlT,KAAAgP,OAAAhP,KAAAilT,eAAA,KAEA,QAAAlkT,EAAA,EAAiBA,EAAAikT,EAAA7xL,QAAAlyH,OAAiCF,IAAA,CAClD,IAAAmkT,EAAAF,EAAA7xL,QAAApyH,GACAumE,EAAA49O,EAAA59O,GACAA,KAAAtnE,KAAAklT,EAAAC,WACAD,EAAAtiB,OAAAxhS,QAGA4jT,EAAA7xL,QAAAlyH,OAAA,EAGA,SAAAojS,EAAAvyP,GACA,OAAAA,KAAA94B,OAAA84B,EAAA74B,OAGA9V,EAAAiiT,eA7EA,SAAAC,GACA,oBAAAA,EAAA,CACA,IAAAL,EAAAF,EAAA9gT,IAAAqhT,GACA,OAAAL,KAAAlzQ,MAEA,OAAAuzQ,GAyEAliT,EAAAghS,oBAzDA,SAAAkhB,EAAAvzQ,EAAA8wP,EAAAt7N,EAAA69O,GACA,GAAAE,EAEG,qBAAAA,EAAA,CAEH,GAAAvzQ,KAAAwzQ,eAAAD,IAAAziB,EACA,OAAA9wP,EAKA,IAAAkzQ,EAAAF,EAAA9gT,IAAAqhT,GACAH,GACAtiB,SACAt7N,KACA69O,aAgBA,OAbAH,GAEA3gB,EADAvyP,EAAAkzQ,EAAAlzQ,QACAkzQ,EAAA7xL,QAAA5xH,KAAA2jT,KAEApzQ,MAAA,IAAAiC,OACAjC,EAAA9iC,OAAA+1S,EACAD,EAAAxoI,IAAA+oI,EAAAvzQ,EAAAmzQ,gBACAnzQ,QACAqhF,SAAA+xL,KAEApzQ,EAAA/hC,IAAA+hC,EAAAwzQ,aAAAD,GAGAvzQ,EAGA,OAAAuzQ,EAhCA,OAAAvzQ,GAwDA3uC,EAAAkhS,qCCvFA9kS,EAAQ,QAERA,EAAQ,8BCFR,IAAAsuR,EAAkBtuR,EAAQ,QAE1B8rM,EAAc9rM,EAAQ,QAEtB81L,EAAAgW,EAAAhW,iBACAJ,EAAAoW,EAAApW,gBAoBAswH,EAAA13B,EAAAnkR,QACAlG,KAAA,gBAKAo5M,mBAAA,SAAAD,GACA38M,KAAAid,OAAA0/L,mBAEAjoL,eACAioL,gBAAA,EACA6oG,kBAAA,EACAC,cAAA,KACAC,mBAAA,MAEAC,cAAA,oBAEAC,WACAv9I,YAAA,6CACA35B,UAAA,yCAEAm3K,cAAA,UACAC,sBAAA,OACAC,aAAA,GAEAC,eACA7/S,MAAA,QAEAuvB,wBAAA,KAMAlX,KAAA,SAAAvB,EAAA6oK,EAAAniL,EAAAmxL,GACA,IAAAE,EAAAC,EAAAh4K,GACAsoS,EAAAp+H,UAAAnnL,KAAA,OAAAid,EAAA6oK,EAAAniL,EAAAmxL,GACAmxH,EAAAjmT,KAAAid,EAAA+3K,IAMA5P,YAAA,SAAAnoK,EAAA63K,GACAywH,EAAAp+H,UAAAnnL,KAAA,cAAAid,EAAA63K,GACAmxH,EAAAjmT,UAAAid,WAEAwlL,UAAA,WACA,mBAAAziM,KAAAgE,IAAA,WACA4I,MAAA,EACAhK,KAAA,aAEAgK,MAAA,EACAhK,KAAA,iBAKA,SAAAqjT,EAAA3qH,EAAA/6L,EAAAgkP,GACA,IACAlqB,GAAA,KACAA,EAFA/+B,EAAAmH,YAEA71L,OAAA,EACAyoL,EAAA90L,EAAAgkP,GACA/gP,KAAA,MACA62N,eAIA,IAAAp3N,EAAAsiT,EACAriT,EAAAC,QAAAF,wBC9FA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBgiR,EAAqBhiR,EAAQ,QAE7BohE,EAAoBphE,EAAQ,QAoB5B2mT,EAAA9iT,EAAA4pD,SAAAI,OAAAI,UA8CA,SAAAw5I,EAAAxrK,EAAA84H,EAAA/sJ,EAAA+6D,GAQA,IAPA,IAAApB,EAAAozF,EAAAutH,cAAAv/M,GACAC,EAAA5B,EAAA6B,mBAAAtB,GACAilP,GACAhgT,MAAAq1B,EAAAtP,UAAAyV,UAAA,UAIA5gC,EAAA,EAAAc,EAAA0gE,EAAAthE,OAA2CF,EAAAc,EAASd,IAAA,CACpD,IAAAyC,EAAA++D,EAAAxhE,GACAqlT,EAAAllP,EAAA,YAAA19D,EAAA,oBAAAA,GACA4iT,KAAAxkP,YAAAr6D,EAAAo6B,EAAAqgC,GAGA,OAAAmkP,EAAAhgT,MAEA,SAAAw7B,EAAA53B,GACA,OAAAo8S,EAAAp8S,GAGA,SAAAi4D,EAAAj4D,EAAAxC,GACA4+S,EAAAp8S,GAAAxC,GAlEAnE,EAAAw4D,eAAAsqP,GACAtzE,mBAAA,EACA9nO,MAAA,SAAA0wB,EAAA73B,GACA,IAAA0wO,KAUA,OATA1wO,EAAAkvD,cAAA,qBAAAyhG,GACA,IAAApmF,EAAA1yC,EAAA0yC,iBAEAomF,EAAA0G,eAAAx/H,IAAA0yC,KAAAC,OAIAkmK,EAAA9yO,KAAAggR,EAAA9+M,uBAAA6xF,EAAAxzF,UAAAwzF,EAAAutH,cAAAhoP,EAAArvB,KAAA8pJ,EAAAzyF,cAAAyyF,KAAA2G,iBAAAz/H,EAAAtP,eAEAmoN,KAIAjxO,EAAAw4D,eAAAsqP,GACAtzE,mBAAA,EACA9nO,MAAA,SAAA0wB,EAAA73B,GACA,IAAAmN,EAAA0qB,EAAAtP,UACAwV,KACA/9B,EAAAkvD,cAAA,qBAAAyhG,GACA,GAAAA,EAAA0G,eAAAx/H,GAAA,CACA,IAAAqG,EAAAyyH,EAAAyyC,cAAAltK,EAAArvB,KAAAw8L,EAAA,KAAAxrK,EAAA84H,MACAnyH,SACAG,gBAEA+jR,EAAA/xJ,EAAA2G,iBAAAnqJ,GACAkxB,EAAAlxB,EAAAmxB,iBAAAokR,GAEA,MAAArkR,IAEAH,EAAAtxB,UAAAyxB,EAAAp1B,MACA80B,EAAAngC,KAAAsgC,OAKArG,EAAAtP,UAAA81C,UAAA,aAAAtgC,8BClEA,IAAA7H,EAAat6B,EAAQ,QAErB4rD,EAAW5rD,EAAQ,QAoBnB,SAAA+mT,EAAAjuR,EAAA9mB,EAAAqqB,GACAuvB,EAAAz/C,KAAA1L,KAAAq4B,EAAA9mB,EAAAqqB,GAUA57B,KAAAwD,KAAA,QACAxD,KAAAstC,MAAA,EAMAttC,KAAA4C,KAAA,GAKA5C,KAAAu3B,MAGAsC,EAAA2xB,SAAA86P,EAAAn7P,GACA,IAAAloD,EAAAqjT,EACApjT,EAAAC,QAAAF,0BClDA,IAAA42B,EAAat6B,EAAQ,QAErBsnC,EAAmBtnC,EAAQ,QAI3BmtC,EAFcntC,EAAQ,QAEtBmtC,aAEA8+J,EAAiBjsM,EAAQ,QAqBzBk/B,EAAA5E,EAAA4E,KAKA29L,GAAA,gDAKAmqF,IAAA,mDAEA,SAAAC,EAAA1pS,EAAAkiB,EAAA8mI,EAAA2gJ,EAAAv+E,GACA,IAAA7jO,EAAA,EACAE,EAAA,EAEA,MAAAkiT,IACAA,EAAAhtQ,KAGA,MAAAyuL,IACAA,EAAAzuL,KAGA,IAAAitQ,EAAA,EACA1nR,EAAAgoC,UAAA,SAAA16B,EAAAhM,GACA,IAIAqmR,EACAC,EALAx4S,EAAAk+B,EAAAl+B,SACA85B,EAAAoE,EAAAxE,kBACA++Q,EAAA7nR,EAAAimC,QAAA3kC,EAAA,GACAwmR,EAAAD,KAAA/+Q,kBAIA,kBAAAhrB,EAAA,CACA,IAAAwuM,EAAApjL,EAAAlvB,OAAA8tS,KAAAziT,EAAA6jC,EAAA7jC,EAAA,IACAsiT,EAAAtiT,EAAAinN,GAGAm7F,GAAAn6Q,EAAAy6Q,SACA1iT,EAAA,EACAsiT,EAAAr7F,EACA/mN,GAAAmiT,EAAA5gJ,EACA4gJ,EAAAx+Q,EAAAjvB,QAGAytS,EAAA3+S,KAAAE,IAAAy+S,EAAAx+Q,EAAAjvB,YAEK,CACL,IAAAsyM,EAAArjL,EAAAjvB,QAAA6tS,KAAAviT,EAAA2jC,EAAA3jC,EAAA,IACAqiT,EAAAriT,EAAAgnN,GAEA2c,GAAA57L,EAAAy6Q,SACA1iT,GAAAqiT,EAAA5gJ,EACAvhK,EAAA,EACAqiT,EAAAr7F,EACAm7F,EAAAx+Q,EAAAlvB,OAEA0tS,EAAA3+S,KAAAE,IAAAy+S,EAAAx+Q,EAAAlvB,OAIAszB,EAAAy6Q,UAIA34S,EAAA,GAAA/J,EACA+J,EAAA,GAAA7J,EACA,eAAAuY,EAAAzY,EAAAsiT,EAAA7gJ,EAAAvhK,EAAAqiT,EAAA9gJ,KAaA,IAAAvjE,EAAAikN,EASAQ,EAAAntR,EAAA0Q,MAAAi8Q,EAAA,YASAS,EAAAptR,EAAA0Q,MAAAi8Q,EAAA,cAoDA,SAAA1jP,EAAAqwN,EAAA+zB,EAAAh9O,GACAA,EAAAshI,EAAAI,kBAAA1hI,GAAA,GACA,IAAAi9O,EAAAD,EAAAluS,MACAouS,EAAAF,EAAAjuS,OACApT,EAAA6mC,EAAAymP,EAAAttR,KAAAshT,GACAn1S,EAAA06B,EAAAymP,EAAAnhR,IAAAo1S,GACAthT,EAAA4mC,EAAAymP,EAAArtR,MAAAqhT,GACAryS,EAAA43B,EAAAymP,EAAAr+Q,OAAAsyS,GACApuS,EAAA0zB,EAAAymP,EAAAn6Q,MAAAmuS,GACAluS,EAAAyzB,EAAAymP,EAAAl6Q,OAAAmuS,GACAC,EAAAn9O,EAAA,GAAAA,EAAA,GACAo9O,EAAAp9O,EAAA,GAAAA,EAAA,GACAq+H,EAAA4qF,EAAA5qF,OA8CA,OA5CA99L,MAAAuO,KACAA,EAAAmuS,EAAArhT,EAAAwhT,EAAAzhT,GAGA4E,MAAAwO,KACAA,EAAAmuS,EAAAtyS,EAAAuyS,EAAAr1S,GAGA,MAAAu2L,IAQA99L,MAAAuO,IAAAvO,MAAAwO,KACAsvL,EAAA4+G,EAAAC,EACApuS,EAAA,GAAAmuS,EAEAluS,EAAA,GAAAmuS,GAKA38S,MAAAuO,KACAA,EAAAuvL,EAAAtvL,GAGAxO,MAAAwO,KACAA,EAAAD,EAAAuvL,IAKA99L,MAAA5E,KACAA,EAAAshT,EAAArhT,EAAAkT,EAAAsuS,GAGA78S,MAAAuH,KACAA,EAAAo1S,EAAAtyS,EAAAmE,EAAAouS,GAIAl0B,EAAAttR,MAAAstR,EAAArtR,OACA,aACAD,EAAAshT,EAAA,EAAAnuS,EAAA,EAAAkxD,EAAA,GACA,MAEA,YACArkE,EAAAshT,EAAAnuS,EAAAsuS,EAIA,OAAAn0B,EAAAnhR,KAAAmhR,EAAAr+Q,QACA,aACA,aACA9C,EAAAo1S,EAAA,EAAAnuS,EAAA,EAAAixD,EAAA,GACA,MAEA,aACAl4D,EAAAo1S,EAAAnuS,EAAAouS,EAKAxhT,KAAA,EACAmM,KAAA,EAEAvH,MAAAuO,KAEAA,EAAAmuS,EAAAG,EAAAzhT,GAAAC,GAAA,IAGA2E,MAAAwO,KAEAA,EAAAmuS,EAAAC,EAAAr1S,GAAA8C,GAAA,IAGA,IAAAozB,EAAA,IAAArB,EAAAhhC,EAAAqkE,EAAA,GAAAl4D,EAAAk4D,EAAA,GAAAlxD,EAAAC,GAEA,OADAivB,EAAAgiC,SACAhiC,EAkNA,SAAAoyL,EAAA/5N,EAAAkC,GAIA,OAHAA,GAAAlC,GAAAk+B,EAAA29L,EAAA,SAAAx5N,GACAH,EAAAI,eAAAD,KAAArC,EAAAqC,GAAAH,EAAAG,MAEArC,EAGA4C,EAAAi5N,kBACAj5N,EAAAojT,WACApjT,EAAAo/F,MACAp/F,EAAA6jT,OACA7jT,EAAA8jT,OACA9jT,EAAA6sS,iBAhWA,SAAA7c,EAAA+zB,EAAAh9O,GACA,IAAAi9O,EAAAD,EAAAluS,MACAouS,EAAAF,EAAAjuS,OACA5U,EAAAqoC,EAAAymP,EAAA9uR,EAAA8iT,GACA5iT,EAAAmoC,EAAAymP,EAAA5uR,EAAA6iT,GACAv5Q,EAAAnB,EAAAymP,EAAAtlP,GAAAs5Q,GACAr5Q,EAAApB,EAAAymP,EAAArlP,GAAAs5Q,GAMA,OALA38S,MAAApG,IAAAoG,MAAA+a,WAAA2tQ,EAAA9uR,SAAA,IACAoG,MAAAojC,IAAApjC,MAAA+a,WAAA2tQ,EAAAtlP,UAAAs5Q,IACA18S,MAAAlG,IAAAkG,MAAA+a,WAAA2tQ,EAAA5uR,SAAA,IACAkG,MAAAqjC,IAAArjC,MAAA+a,WAAA2tQ,EAAArlP,UAAAs5Q,GACAl9O,EAAAshI,EAAAI,kBAAA1hI,GAAA,IAEAlxD,MAAAjR,KAAAE,IAAA4lC,EAAAxpC,EAAA6lE,EAAA,GAAAA,EAAA,MACAjxD,OAAAlR,KAAAE,IAAA6lC,EAAAvpC,EAAA2lE,EAAA,GAAAA,EAAA,QAmVA/mE,EAAA2/D,gBACA3/D,EAAAooM,gBAtLA,SAAA9qM,EAAA0yR,EAAA+zB,EAAAh9O,EAAAtxC,GACA,IAAA3gB,GAAA2gB,MAAA6hM,IAAA7hM,EAAA6hM,GAAA,GACA1tN,GAAA6rB,MAAA6hM,IAAA7hM,EAAA6hM,GAAA,GACAkC,EAAA/jM,KAAA+jM,cAAA,MAEA,GAAA1kN,GAAAlL,EAAA,CAIA,IAAAm7B,EAEA,WAAAy0L,EACAz0L,EAAA,UAAAznC,EAAA+C,KAAA,IAAAqjC,EAAA,KAAAssP,EAAAn6Q,OAAA,GAAAm6Q,EAAAl6Q,QAAA,GAAAxY,EAAAqnC,uBAIA,GAFAI,EAAAznC,EAAAqnC,kBAEArnC,EAAAqkN,qBAAA,CACA,IAAA7sL,EAAAx3B,EAAAuoC,qBAGAd,IAAA8B,SACAhD,eAAA/O,GAKAk7P,EAAArwN,EAAAjpC,EAAAmJ,UACAhqB,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,QACGk6Q,GAAA+zB,EAAAh9O,GAIH,IAAAq9O,EAAA9mT,EAAA2N,SACA2/B,EAAA91B,EAAAk7Q,EAAA9uR,EAAA6jC,EAAA7jC,EAAA,EACA2pC,EAAAjhC,EAAAomR,EAAA5uR,EAAA2jC,EAAA3jC,EAAA,EACA9D,EAAAsC,KAAA,mBAAA45N,GAAA5uL,EAAAC,IAAAu5Q,EAAA,GAAAx5Q,EAAAw5Q,EAAA,GAAAv5Q,MAmJA7qC,EAAAqkT,eA3IA,SAAAvqS,EAAAwqS,GACA,aAAAxqS,EAAAspS,EAAAkB,GAAA,WAAAxqS,EAAAspS,EAAAkB,GAAA,WAAAxqS,EAAAspS,EAAAkB,GAAA,KA2IAtkT,EAAAkyL,iBA9GA,SAAAqyH,EAAA/lP,EAAA/oC,IACAiB,EAAAj6B,SAAAg5B,WACA,IAAAyhM,EAAAzhM,EAAAyhM,YACAxgM,EAAA/tB,QAAAuuN,cACA,IAAAstF,EAAAh3O,EAAA41O,EAAA,MACAqB,EAAAj3O,EAAA41O,EAAA,MAIA,SAAA51O,EAAAw9M,EAAAs5B,GACA,IAAAI,KACAC,EAAA,EACA7kK,KACA8kK,EAAA,EAaA,GAXAtpR,EAAA0vP,EAAA,SAAAvrR,GACAqgJ,EAAArgJ,GAAA8kT,EAAA9kT,KAEA67B,EAAA0vP,EAAA,SAAAvrR,GAGAolT,EAAArmP,EAAA/+D,KAAAilT,EAAAjlT,GAAAqgJ,EAAArgJ,GAAA++D,EAAA/+D,IACAy6K,EAAAwqI,EAAAjlT,IAAAklT,IACAzqI,EAAAp6B,EAAArgJ,IAAAmlT,MAGA1tF,EAAAotF,GAQA,OANApqI,EAAA17G,EAAAwsN,EAAA,IACAlrI,EAAAkrI,EAAA,SACO9wG,EAAA17G,EAAAwsN,EAAA,MACPlrI,EAAAkrI,EAAA,UAGAlrI,EAOA,GA3BA,IA2BA8kK,GAAAD,EAKA,IAAAA,GAhCA,EAiCA,OAAAD,EAGA,QAAA9mT,EAAA,EAAuBA,EAAAotR,EAAAltR,OAAkBF,IAAA,CACzC,IAAA6B,EAAAurR,EAAAptR,GAEA,IAAAinT,EAAAH,EAAAjlT,IAAAolT,EAAAN,EAAA9kT,GAAA,CACAilT,EAAAjlT,GAAA8kT,EAAA9kT,GACA,OAIA,OAAAilT,EAjBA,OAAA5kK,EAqBA,SAAA+kK,EAAA78S,EAAAvI,GACA,OAAAuI,EAAAtI,eAAAD,GAGA,SAAAy6K,EAAAlyK,EAAAvI,GACA,aAAAuI,EAAAvI,IAAA,SAAAuI,EAAAvI,GAGA,SAAA6mC,EAAA0kP,EAAA5tR,EAAAkC,GACAg8B,EAAA0vP,EAAA,SAAAvrR,GACArC,EAAAqC,GAAAH,EAAAG,KAnEA6mC,EAAA88Q,EAAA,GAAAmB,EAAAC,GACAl+Q,EAAA88Q,EAAA,GAAAmB,EAAAE,IAwGAzkT,EAAA8xL,gBA3BA,SAAAxyL,GACA,OAAA63N,KAA4B73N,IA2B5BU,EAAAm3N,yCCtfA,IAAAl3N,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBorC,EAAUprC,EAAQ,QAElBgqN,EAAqBhqN,EAAQ,QAE7BisM,EAAiBjsM,EAAQ,QAEzBm4C,EAAiBn4C,EAAQ,QAEzBib,EAAcjb,EAAQ,QAEtBmnR,EAA0BnnR,EAAQ,QAElCs5N,EAAiBt5N,EAAQ,QAEzBolL,EAAYplL,EAAQ,QAEpB8D,EAAqB9D,EAAQ,QAE7BsjE,EAAiBtjE,EAAQ,QAEzB0oT,EAA4B1oT,EAAQ,QAoBpCiL,EAAAqvB,EAAArvB,KACAi0B,EAAA5E,EAAA4E,KACAiO,EAAAgL,EAAAhL,aACAw7Q,EAAA,IAAA1tS,EAAAyiB,MACAlV,OACA1jB,GAAA,EACAE,GAAA,EACAyU,MAAA,EACAC,OAAA,KAIAhW,EAAAG,EAAAG,qBACAC,KAAA,UACAgb,KAAA,SAAA7a,EAAAC,GACA,IAAA+mC,EAAAuuB,KAAA,CAIA,IAAAivP,EAAA,IAAA5+F,EAAA3lN,EAAA4tD,SAAA5tD,GACA5D,KAAAooT,gBAAAD,IAEA1kT,OAAA,SAAAulN,EAAArlN,EAAAC,GACA,IAAA+mC,EAAAuuB,OAAAvuB,EAAAitI,IAAA,CAKA53K,KAAAg/B,MAAAkG,YAMAllC,KAAAqoT,cAAAr/F,EAMAhpN,KAAAsoT,SAAA3kT,EAMA3D,KAAAivD,KAAArrD,EAOA5D,KAAAuoT,oBAAA,KAMAvoT,KAAAwoT,mBAAAx/F,EAAAhlN,IAAA,qBACA,IAAAmkT,EAAAnoT,KAAAooT,gBACAD,EAAA5rQ,SACA4rQ,EAAA/9F,aAAApB,EAAAhlN,IAAA,cAEAhE,KAAAyoT,sBAEAzoT,KAAA0oT,cAEAD,oBAAA,WACA,IACA1kT,EADA/D,KAAAqoT,cACArkT,IAAA,aACAX,EAAAY,SAAA,cAAAjE,KAAAivD,KAAAzkD,EAAA,SAAAtG,EAAAC,EAAAC,GAEA,SAAAL,IACAA,EAAAjE,QAAAoE,IAAA,EACAlE,KAAA2oT,SAAAxkT,EAAAC,GACS,UAAAF,GACTlE,KAAA4oT,MAAAxkT,KAGKpE,QAEL0oT,UAAA,WACA,IAAA1/F,EAAAhpN,KAAAqoT,cACA1kT,EAAA3D,KAAAsoT,SACA1kT,EAAA5D,KAAAivD,KAEA,SAAAjvD,KAAA6oT,QAAA,MAAA7oT,KAAA8oT,QAGA,SAAA9/F,EAAAhlN,IAAA,cACA,IAAAmI,EAAAnM,KACAqM,aAAArM,KAAA+oT,uBACA/oT,KAAA+oT,sBAAAz8S,WAAA,WAIAH,EAAA68S,gBAAAhgG,EAAArlN,EAAAC,GACAS,EAAA8H,EAAA08S,OACAtkT,EAAA4H,EAAA28S,aAsBAE,gBAAA,SAAAhgG,EAAArlN,EAAAC,EAAAggC,GACA,GAAAA,EAAA73B,OAAA/L,KAAAk1D,MAAAvqB,EAAAuuB,KAAA,CAIA,IAAA90D,EAAA6kT,EAAArlR,EAAAhgC,GAEA5D,KAAAkpT,QAAA,GAEA,IAAAphC,EAAAlkP,EAAAkkP,eAEA,GAAAlkP,EAAA7tB,SAAA,MAAA6tB,EAAAv/B,GAAA,MAAAu/B,EAAAr/B,EAAA,CACA,IAAA9D,EAAAynT,EACAznT,EAAA2N,UAAAw1B,EAAAv/B,EAAAu/B,EAAAr/B,GACA9D,EAAA87C,SACA97C,EAAAsV,QAAA6tB,EAAA7tB,QAEA/V,KAAA2oT,UACArkT,QAAAs/B,EAAAv/B,EACAG,QAAAo/B,EAAAr/B,EACAhE,OAAAE,GACO2D,QACF,GAAA0jR,EACL9nR,KAAA2oT,UACArkT,QAAAs/B,EAAAv/B,EACAG,QAAAo/B,EAAAr/B,EACA6J,SAAAw1B,EAAAx1B,SACAmpD,SACAuwN,eAAAlkP,EAAAkkP,eACArvP,cAAAmL,EAAAnL,eACOr0B,QACF,SAAAw/B,EAAAzR,YAAA,CACL,GAAAnyB,KAAAmpT,qBAAAngG,EAAArlN,EAAAC,EAAAggC,GACA,OAGA,IAAAwlR,EAAA1iC,EAAA9iP,EAAAjgC,GACA4T,EAAA6xS,EAAA/+Q,MAAA,GACA7yB,EAAA4xS,EAAA/+Q,MAAA,GAEA,MAAA9yB,GAAA,MAAAC,GACAxX,KAAA2oT,UACArkT,QAAAiT,EACA/S,QAAAgT,EACApJ,SAAAw1B,EAAAx1B,SACA7N,OAAA6oT,EAAA3oT,GACA82D,UACSnzD,QAEJ,MAAAw/B,EAAAv/B,GAAA,MAAAu/B,EAAAr/B,IAGLX,EAAAQ,gBACAZ,KAAA,oBACAa,EAAAu/B,EAAAv/B,EACAE,EAAAq/B,EAAAr/B,IAGAvE,KAAA2oT,UACArkT,QAAAs/B,EAAAv/B,EACAG,QAAAo/B,EAAAr/B,EACA6J,SAAAw1B,EAAAx1B,SACA7N,OAAAqD,EAAAe,QAAA0kT,UAAAzlR,EAAAv/B,EAAAu/B,EAAAr/B,GAAAhE,OACAg3D,UACOnzD,MAGPklT,gBAAA,SAAAtgG,EAAArlN,EAAAC,EAAAggC,GACA,IAAAukR,EAAAnoT,KAAAooT,iBAEApoT,KAAAwoT,oBAAAxoT,KAAAqoT,eACAF,EAAAp+F,UAAA/pN,KAAAqoT,cAAArkT,IAAA,cAGAhE,KAAA6oT,OAAA7oT,KAAA8oT,OAAA,KAEAllR,EAAA73B,OAAA/L,KAAAk1D,KACAl1D,KAAA4oT,MAAAK,EAAArlR,EAAAhgC,KAMAulT,qBAAA,SAAAngG,EAAArlN,EAAAC,EAAAggC,GACA,IAAAzR,EAAAyR,EAAAzR,YACAiM,EAAAwF,EAAAxF,UACAgjJ,EAAAz9K,EAAAG,aAAA,eAAAs9K,iBAEA,SAAAjvJ,GAAA,MAAAiM,GAAA,MAAAgjJ,EAAA,CAIA,IAAA5lJ,EAAA73B,EAAAw2D,iBAAAhoC,GAEA,GAAAqJ,EAOA,aAFAwtL,EAAAugG,GADA/tR,EAAAtP,UACAi5C,aAAA/mC,GAAA5C,KAAAnN,sBAAwHkJ,MAAAyxL,KAExHhlN,IAAA,WAUA,OANAJ,EAAAQ,gBACAZ,KAAA,oBACA2uB,cACAiM,YACAhwB,SAAAw1B,EAAAx1B,YAEA,IAEAu6S,SAAA,SAAAxkT,EAAAC,GACA,IAAA3D,EAAA0D,EAAA5D,OAGA,GAFAP,KAAAqoT,cAEA,CAKAroT,KAAA6oT,OAAA1kT,EAAAG,QACAtE,KAAA8oT,OAAA3kT,EAAAK,QACA,IAAAsjR,EAAA3jR,EAAA2jR,eAEAA,KAAA7mR,OACAjB,KAAAwpT,iBAAA1hC,EAAA3jR,GAEA1D,GAAA,MAAAA,EAAA29B,WACAp+B,KAAAuoT,oBAAA,KAEAvoT,KAAAypT,uBAAAtlT,EAAA1D,EAAA2D,IAEA3D,KAAAsV,SACA/V,KAAAuoT,oBAAA,KAEAvoT,KAAA0pT,0BAAAvlT,EAAA1D,EAAA2D,KAEApE,KAAAuoT,oBAAA,KAEAvoT,KAAA4oT,MAAAxkT,MAGAulT,YAAA,SAAA3gG,EAAA1hJ,GAKA,IAAArlE,EAAA+mN,EAAAhlN,IAAA,aACAsjE,EAAAztC,EAAArvB,KAAA88D,EAAAtnE,MACAqM,aAAArM,KAAA4pT,aACA3nT,EAAA,EAAAjC,KAAA4pT,YAAAt9S,WAAAg7D,EAAArlE,GAAAqlE,KAEAkiP,iBAAA,SAAA1hC,EAAA3jR,GACA,IAAAR,EAAA3D,KAAAsoT,SACAzkT,EAAA7D,KAAAqoT,cACAh+Q,GAAAlmC,EAAAG,QAAAH,EAAAK,SACAqlT,KACAC,KACAC,EAAAR,GAAAplT,EAAAs0B,cAAA50B,IACA46B,EAAAqpP,EAAA,SAAAkiC,GAWAvrR,EAAAurR,EAAA3hC,WAAA,SAAA17Q,GACA,IAAA0pB,EAAA1yB,EAAAG,aAAA6I,EAAAq8J,QAAA,OAAAr8J,EAAAw9D,WACAp4C,EAAAplB,EAAApF,MACA0iT,KAEA,GAAA5zR,GAAA,MAAAtE,EAAA,CAIA,IAAAm4R,EAAAjC,EAAAkC,cAAAp4R,EAAAsE,EAAAZ,KAAA9xB,EAAAgJ,EAAA67Q,kBAAA77Q,EAAA47Q,eACA1uP,EAAA4E,KAAA9xB,EAAA67Q,kBAAA,SAAA4hC,GACA,IAAA93S,EAAA3O,EAAAw2D,iBAAAiwP,EAAAj4R,aACAiM,EAAAgsR,EAAAp2P,gBACAq2P,EAAA/3S,KAAAioD,cAAAn8B,GACAisR,EAAArhJ,QAAAr8J,EAAAq8J,QACAqhJ,EAAAlgP,UAAAx9D,EAAAw9D,UACAkgP,EAAA/+P,SAAA3+C,EAAA2+C,SACA++P,EAAA/hC,OAAA37Q,EAAA27Q,OACA+hC,EAAAt4R,UAAA8wC,EAAAwvG,gBAAAh8I,EAAAZ,KAAA1D,GACAs4R,EAAAlpS,eAAA+oS,EAEAG,IACAP,EAAAvoT,KAAA8oT,GACAJ,EAAA1oT,KAAA+Q,EAAAm0K,cAAAroJ,GAAA,OAOA,IAAAksR,EAAAJ,EACAL,EAAAtoT,MAAA+oT,EAAA9+G,EAAA5mB,WAAA0lI,GAAA,aAAAL,EAAA7jT,KAAA,eAEKpG,MAEL6pT,EAAAtiS,UACAsiS,IAAAzjT,KAAA,gBACA,IAAAmkT,EAAApmT,EAAAiK,SAEApO,KAAA2pT,YAAAI,EAAA,WACA/pT,KAAAwqT,+BAAA1iC,GACA9nR,KAAAyqT,gBAAAV,EAAAQ,EAAAlgR,EAAA,GAAAA,EAAA,GAAArqC,KAAAooT,gBAAA0B,GAEA9pT,KAAA0qT,oBAAAX,EAAAF,EAAAC,EAAA/hT,KAAAstK,SAAAhrI,EAAA,GAAAA,EAAA,GAAAkgR,MAMAd,uBAAA,SAAAtlT,EAAA1D,EAAA2D,GACA,IAAAT,EAAA3D,KAAAsoT,SAIAn2R,EAAA1xB,EAAA0xB,YACAqJ,EAAA73B,EAAAw2D,iBAAAhoC,GAEAmoC,EAAA75D,EAAA65D,WAAA9+B,EACA4C,EAAA39B,EAAA29B,UACA/b,EAAA5hB,EAAA4hB,SACAvR,EAAAwpD,EAAApuC,UACA88L,EAAAugG,GAAAz4S,EAAAq0D,aAAA/mC,GAAAk8B,EAAA9+B,MAAAnN,sBAAqIkJ,MAAAv3B,KAAAqoT,gBACrIx5R,EAAAm6L,EAAAhlN,IAAA,WAEA,SAAA6qB,GAAA,SAAAA,EAAA,CAIA,IAAA8C,EAAA2oC,EAAAC,cAAAn8B,EAAA/b,GACAsoS,EAAArwP,EAAAmsH,cAAAroJ,GAAA,EAAA/b,GACAuoS,EAAA,QAAAtwP,EAAA13D,KAAA,IAAAw7B,EAEAp+B,KAAA2pT,YAAA3gG,EAAA,WACAhpN,KAAA0qT,oBAAA1hG,EAAA2hG,EAAAh5R,EAAAi5R,EAAAzmT,EAAAG,QAAAH,EAAAK,QAAAL,EAAAiK,SAAAjK,EAAA5D,UAKA6D,GACAZ,KAAA,UACAwwD,gBAAA51B,EACAA,UAAAttB,EAAAy4J,YAAAnrI,GACAjM,cACApmB,KAAA/L,KAAAk1D,QAGAw0P,0BAAA,SAAAvlT,EAAA1D,EAAA2D,GACA,IAAAymT,EAAApqT,EAAAsV,QAEA,oBAAA80S,EAAA,CAEAA,GACAzqQ,QAFAyqQ,EAIAj9S,UAJAi9S,GAQA,IAAAC,EAAA,IAAAnmI,EAAAkmI,EAAA7qT,KAAAqoT,cAAAroT,KAAAsoT,UACAqC,EAAAG,EAAA9mT,IAAA,WACA4mT,EAAA7iT,KAAAstK,SAIAr1K,KAAA2pT,YAAAmB,EAAA,WACA9qT,KAAA0qT,oBAAAI,EAAAH,EAAAG,EAAA9mT,IAAA,uBAAyG4mT,EAAAzmT,EAAAG,QAAAH,EAAAK,QAAAL,EAAAiK,SAAA3N,KAIzG2D,GACAZ,KAAA,UACAuI,KAAA/L,KAAAk1D,OAGAw1P,oBAAA,SAAA1hG,EAAA2hG,EAAAh5R,EAAAi5R,EAAAvmT,EAAAE,EAAAgmT,EAAA9pT,GAIA,GAFAT,KAAAkpT,QAAA,GAEAlgG,EAAAhlN,IAAA,gBAAAglN,EAAAhlN,IAAA,SAIA,IAAAmkT,EAAAnoT,KAAAooT,gBACAx6S,EAAAo7M,EAAAhlN,IAAA,aACAumT,KAAAvhG,EAAAhlN,IAAA,YACA,IAAA49C,EAAA+oQ,EAEA,GAAA/8S,GAAA,iBAAAA,EACAg0C,EAAA4pJ,EAAAu/G,UAAAn9S,EAAA+jB,GAAA,QACK,sBAAA/jB,EAAA,CACL,IAAAzL,EAAAqI,EAAA,SAAAwgT,EAAAppQ,GACAopQ,IAAAhrT,KAAAkpT,UACAf,EAAAh+F,WAAAvoK,GAEA5hD,KAAAyqT,gBAAAzhG,EAAAuhG,EAAAlmT,EAAAE,EAAA4jT,EAAAx2R,EAAAlxB,KAEOT,MACPA,KAAAkpT,QAAA0B,EACAhpQ,EAAAh0C,EAAA+jB,EAAAi5R,EAAAzoT,GAGAgmT,EAAAh+F,WAAAvoK,GACAumQ,EAAA9iT,KAAA2jN,GAEAhpN,KAAAyqT,gBAAAzhG,EAAAuhG,EAAAlmT,EAAAE,EAAA4jT,EAAAx2R,EAAAlxB,KAaAgqT,gBAAA,SAAAzhG,EAAAuhG,EAAAlmT,EAAAE,EAAA67C,EAAAzuB,EAAAlxB,GACA,IAAAioM,EAAA1oM,KAAAivD,KAAA6C,WAEA62I,EAAA3oM,KAAAivD,KAAA8C,YAEAw4P,KAAAvhG,EAAAhlN,IAAA,YACA,IAAAinT,EAAA7qQ,EAAAiqK,UACA1xL,EAAAqwL,EAAAhlN,IAAA,SACAknT,EAAAliG,EAAAhlN,IAAA,iBACAkkC,EAAAznC,KAAAqnC,kBAAAkC,QAWA,GAVAvpC,GAAAynC,EAAAlB,eAAAvmC,EAAAw3B,WAEA,mBAAAsyR,IAEAA,KAAAlmT,EAAAE,GAAAotB,EAAAyuB,EAAA3/C,GAAAynC,GACApW,UAAA42K,EAAAC,GACAsiH,cAAA3oT,WAIAu3B,EAAA/tB,QAAAy+S,GACAlmT,EAAAqoC,EAAA69Q,EAAA,GAAA7hH,GACAnkM,EAAAmoC,EAAA69Q,EAAA,GAAA5hH,QACK,GAAA9uK,EAAAj6B,SAAA2qT,GAAA,CACLA,EAAAvxS,MAAAiyS,EAAA,GACAV,EAAAtxS,OAAAgyS,EAAA,GACA,IAAA73B,EAAAv6D,EAAA/1J,cAAAynP,GACAvxS,MAAA0vL,EACAzvL,OAAA0vL,IAEAtkM,EAAA+uR,EAAA/uR,EACAE,EAAA6uR,EAAA7uR,EACAo0B,EAAA,KAGAuyR,EAAA,UAEA,oBAAAX,GAAA9pT,EAAA,CACA,IAAAixB,EA+JA,SAAAtjB,EAAA85B,EAAA+iR,GACA,IAAAE,EAAAF,EAAA,GACAG,EAAAH,EAAA,GAEA5mT,EAAA,EACAE,EAAA,EACAmpC,EAAAxF,EAAAlvB,MACA20B,EAAAzF,EAAAjvB,OAEA,OAAA7K,GACA,aACA/J,EAAA6jC,EAAA7jC,EAAAqpC,EAAA,EAAAy9Q,EAAA,EACA5mT,EAAA2jC,EAAA3jC,EAAAopC,EAAA,EAAAy9Q,EAAA,EACA,MAEA,UACA/mT,EAAA6jC,EAAA7jC,EAAAqpC,EAAA,EAAAy9Q,EAAA,EACA5mT,EAAA2jC,EAAA3jC,EAAA6mT,EAdA,EAeA,MAEA,aACA/mT,EAAA6jC,EAAA7jC,EAAAqpC,EAAA,EAAAy9Q,EAAA,EACA5mT,EAAA2jC,EAAA3jC,EAAAopC,EAnBA,EAoBA,MAEA,WACAtpC,EAAA6jC,EAAA7jC,EAAA8mT,EAvBA,EAwBA5mT,EAAA2jC,EAAA3jC,EAAAopC,EAAA,EAAAy9Q,EAAA,EACA,MAEA,YACA/mT,EAAA6jC,EAAA7jC,EAAAqpC,EA5BA,EA6BAnpC,EAAA2jC,EAAA3jC,EAAAopC,EAAA,EAAAy9Q,EAAA,EAGA,OAAA/mT,EAAAE,GAlMA8mT,CAAAd,EAAAriR,EAAA+iR,GACA5mT,EAAAqtB,EAAA,GACAntB,EAAAmtB,EAAA,OACO,CACPA,EAoGA,SAAArtB,EAAAE,EAAA9D,EAAAioM,EAAAC,EAAA2iH,EAAAC,GACA,IAAA15R,EAAA25R,EAAA/qT,GACAuY,EAAA6Y,EAAA7Y,MACAC,EAAA4Y,EAAA5Y,OAEA,MAAAqyS,IACAjnT,EAAA2U,EAAAsyS,EAAA5iH,EACArkM,GAAA2U,EAAAsyS,EAEAjnT,GAAAinT,GAIA,MAAAC,IACAhnT,EAAA0U,EAAAsyS,EAAA5iH,EACApkM,GAAA0U,EAAAsyS,EAEAhnT,GAAAgnT,GAIA,OAAAlnT,EAAAE,GAzHAknT,CAAApnT,EAAAE,EAAA67C,EAAA3/C,GAAAioM,EAAAC,EAAAhwK,EAAA,QAAAuyR,EAAA,SACA7mT,EAAAqtB,EAAA,GACAntB,EAAAmtB,EAAA,GAMA,GAHAiH,IAAAt0B,GAAAqnT,EAAA/yR,GAAAsyR,EAAA,eAAAtyR,EAAAsyR,EAAA,MACAC,IAAA3mT,GAAAmnT,EAAAR,GAAAD,EAAA,gBAAAC,EAAAD,EAAA,MAEAjiG,EAAAhlN,IAAA,YACA0tB,EAmHA,SAAArtB,EAAAE,EAAA9D,EAAAioM,EAAAC,GACA,IAAA92K,EAAA25R,EAAA/qT,GACAuY,EAAA6Y,EAAA7Y,MACAC,EAAA4Y,EAAA5Y,OAKA,OAJA5U,EAAA0D,KAAAC,IAAA3D,EAAA2U,EAAA0vL,GAAA1vL,EACAzU,EAAAwD,KAAAC,IAAAzD,EAAA0U,EAAA0vL,GAAA1vL,EACA5U,EAAA0D,KAAAE,IAAA5D,EAAA,GACAE,EAAAwD,KAAAE,IAAA1D,EAAA,IACAF,EAAAE,GA3HAonT,CAAAtnT,EAAAE,EAAA67C,EAAA3/C,GAAAioM,EAAAC,GACAtkM,EAAAqtB,EAAA,GACAntB,EAAAmtB,EAAA,GAGA0uB,EAAA2mH,OAAA1iK,EAAAE,IAIAimT,+BAAA,SAAA1iC,GACA,IAAA8jC,EAAA5rT,KAAAuoT,oBACAsD,IAAAD,KAAA3qT,SAAA6mR,EAAA7mR,OAkBA,OAjBA4qT,GAAAptR,EAAAmtR,EAAA,SAAAE,EAAAC,GACA,IAAAC,EAAAF,EAAAzjC,eAEA4jC,GADAnkC,EAAAikC,QACA1jC,gBACAwjC,GAAAG,EAAA/qT,SAAAgrT,EAAAhrT,SACAw9B,EAAAutR,EAAA,SAAApkB,EAAAskB,GACA,IAAAjrG,EAAAgrG,EAAAC,OACAC,EAAAvkB,EAAApf,sBACA+U,EAAAt8E,EAAAunE,uBACAqjC,GAAAjkB,EAAArgS,QAAA05M,EAAA15M,OAAAqgS,EAAAt8O,WAAA21J,EAAA31J,UAAAs8O,EAAAtf,SAAArnE,EAAAqnE,QAAA6jC,EAAAlrT,SAAAs8R,EAAAt8R,SACAw9B,EAAA0tR,EAAA,SAAAC,EAAAl5R,GACA,IAAAm5R,EAAA9uB,EAAArqQ,GACA24R,GAAAO,EAAAj6R,cAAAk6R,EAAAl6R,aAAAi6R,EAAAhuR,YAAAiuR,EAAAjuR,gBAIAp+B,KAAAuoT,oBAAAzgC,IACA+jC,GAEAjD,MAAA,SAAAxkT,GAKApE,KAAAuoT,oBAAA,KACAnkT,GACAZ,KAAA,UACAuI,KAAA/L,KAAAk1D,OAGAnwD,QAAA,SAAApB,EAAAC,GACA+mC,EAAAuuB,MAAAvuB,EAAAitI,MAIA53K,KAAAooT,gBAAAr8G,OAEA1oM,EAAAqB,WAAA,cAAAd,OASA,SAAA2lT,EAAA+C,GAGA,IAFA,IAAAC,EAAAD,EAAAx1P,MAEAw1P,EAAArrT,QAAA,CACA,IAAA4pT,EAAAyB,EAAAx1P,MAEA+zP,IACAlmI,EAAAtY,WAAAw+I,KACAA,IAAA7mT,IAAA,eAQA,iBAAA6mT,IACAA,GACAj9S,UAAAi9S,IAIA0B,EAAA,IAAA5nI,EAAAkmI,EAAA0B,IAAA5oT,UAIA,OAAA4oT,EAGA,SAAAtD,EAAArlR,EAAAhgC,GACA,OAAAggC,EAAAx/B,gBAAAy1B,EAAArvB,KAAA5G,EAAAQ,eAAAR,GAsCA,SAAA4nT,EAAA/qT,GACA,IAAAuY,EAAAvY,EAAAkc,YACA1D,EAAAxY,EAAAmc,aAGA,GAAA/M,SAAAs4C,aAAAt4C,SAAAs4C,YAAArL,iBAAA,CACA,IAAAy9H,EAAA1qK,SAAAs4C,YAAArL,iBAAAr8C,GAEA85K,IACAvhK,GAAA4gE,SAAA2gG,EAAAiyI,YAAA,IAAA5yO,SAAA2gG,EAAA5gG,aAAA,IAAAC,SAAA2gG,EAAAkyI,gBAAA,IAAA7yO,SAAA2gG,EAAAmyI,iBAAA,IACAzzS,GAAA2gE,SAAA2gG,EAAAspG,WAAA,IAAAjqM,SAAA2gG,EAAAwpG,cAAA,IAAAnqM,SAAA2gG,EAAAoyI,eAAA,IAAA/yO,SAAA2gG,EAAAqyI,kBAAA,KAIA,OACA5zS,QACAC,UA0CA,SAAAyyS,EAAA/yR,GACA,iBAAAA,GAAA,WAAAA,EAGAz1B,EAAAC,QAAAF,wBC7tBA,IAAA+nC,EAAkBzrC,EAAQ,QAE1Bs6B,EAAat6B,EAAQ,QAErB6rC,EAAgB7rC,EAAQ,QAExBstT,EAAkBttT,EAAQ,QAI1Bg7M,EAFch7M,EAAQ,QAEtBW,UAAAq6M,iBACA5xM,EAAAZ,KAAAY,IACAmkT,EAAA,IAAA1hR,GAAA,GAQA,SAAAD,EAAAtgC,GACAmgC,EAAAt/B,KAAA1L,KAAA6K,GAMA7K,KAAAK,KAAA,KAGA8qC,EAAAjrC,WACAC,YAAAgrC,EACA3nC,KAAA,OACAgsC,aAAA,EACAmiH,uBAAA,EACAt3I,MAAA,SAAAwrB,EAAAyyI,GACA,IAcApwI,EAdA3vB,EAAAvY,KAAAuY,MACAlY,EAAAL,KAAAK,MAAAysT,EACAnyI,EAAApiK,EAAAoiK,YACAoyI,EAAAx0S,EAAAw0S,UACAr1S,EAAAa,EAAAb,KACAwrB,EAAA3qB,EAAA2qB,OACA8pR,EAAAD,KAAAr1S,EAAAwqB,WACA+qR,EAAAtyI,KAAAz3I,EAAAhB,WACAgrR,EAAAH,KAAAr1S,EAAAo6B,MACAq7Q,EAAAxyI,KAAAz3I,EAAA4O,OACAv5B,EAAA/N,KAAAq7B,EAAA7lC,KAAAs4K,GACAt4K,KAAAu4K,aAAA1yI,GAEA7lC,KAAAk1C,WAGA83Q,IACA9kR,KAAAloC,KAAA8nC,kBACA9nC,KAAAotT,cAAA70S,EAAA80S,YAAAxnR,EAAAnuB,EAAAwwB,IAGA+kR,IACA/kR,KAAAloC,KAAA8nC,kBACA9nC,KAAAstT,gBAAA/0S,EAAA80S,YAAAxnR,EAAA3C,EAAAgF,KAKA8kR,EAEAnnR,EAAA0nR,UAAAvtT,KAAAotT,cACKF,IACLrnR,EAAA0nR,UAAAhzG,EAAA7uM,KAAAgM,EAAAmuB,IAGAonR,EACApnR,EAAA2nR,YAAAxtT,KAAAstT,gBACKH,IACLtnR,EAAA2nR,YAAAjzG,EAAA7uM,KAAAw3B,EAAA2C,IAGA,IAAAgJ,EAAAt2B,EAAAs2B,SACA4+Q,EAAAl1S,EAAAk1S,eACAC,IAAA7nR,EAAA8nR,YAEAp8S,EAAAvR,KAAAklN,iBACA7kN,EAAAutT,SAAAr8S,EAAA,GAAAA,EAAA,IAMAvR,KAAAwvC,aAAAX,IAAA6+Q,GAAA/yI,GACAt6K,EAAAovC,UAAA5J,GAEAgJ,IAAA6+Q,IACArtT,EAAAstT,YAAA9+Q,GACAxuC,EAAAwtT,kBAAAJ,IAGAztT,KAAA0vC,UAAArvC,EAAAL,KAAA+nB,OAAA,GAEA/nB,KAAAK,OACAL,KAAAwvC,aAAA,KAIA3J,EAAA4J,YACAzvC,KAAAK,KAAAsuO,YAAA9oM,IAGAknR,GAAA1sT,EAAAqX,KAAAmuB,GAEAgJ,GAAA6+Q,IACA7nR,EAAA8nR,YAAA9+Q,GACAhJ,EAAA4nR,kBAGA9yI,GAAAt6K,EAAA6iC,OAAA2C,GAEAgJ,GAAA6+Q,GAGA7nR,EAAA8nR,gBAIA,MAAAp1S,EAAA84B,OAEArxC,KAAAy4K,iBAAA5yI,GACA7lC,KAAAsxC,aAAAzL,EAAA7lC,KAAA8nC,qBAKA4H,UAAA,SAAA7J,EAAAioR,EAAAC,KACA/+E,gBAAA,WACAhvO,KAAAK,KAAA,IAAA+qC,GAEAtD,gBAAA,WACA,IAAAI,EAAAloC,KAAA6nC,MACAtvB,EAAAvY,KAAAuY,MACAy1S,GAAA9lR,EAEA,GAAA8lR,EAAA,CACA,IAAA3tT,EAAAL,KAAAK,KAEAA,IAEAA,EAAAL,KAAAK,KAAA,IAAA+qC,GAGAprC,KAAAwvC,cACAnvC,EAAAovC,YACAzvC,KAAA0vC,UAAArvC,EAAAL,KAAA+nB,OAAA,IAGAmgB,EAAA7nC,EAAAynC,kBAKA,GAFA9nC,KAAA6nC,MAAAK,EAEA3vB,EAAAoiK,YAAA,CAIA,IAAAszI,EAAAjuT,KAAAkuT,kBAAAluT,KAAAkuT,gBAAAhmR,EAAA8B,SAEA,GAAAhqC,KAAAk1C,SAAA84Q,EAAA,CACAC,EAAAxkR,KAAAvB,GAEA,IAAA67E,EAAAxrG,EAAAwkB,UAEAoxR,EAAA51S,EAAA82B,cAAArvC,KAAAouT,eAAA,EAEA71S,EAAAw0S,YACAhpM,EAAAh8G,KAAAE,IAAA87G,EAAA/jH,KAAA2xJ,wBAAA,IAKAw8J,EAAA,QACAF,EAAAj1S,OAAA+qG,EAAAoqM,EACAF,EAAAh1S,QAAA8qG,EAAAoqM,EACAF,EAAA5pT,GAAA0/G,EAAAoqM,EAAA,EACAF,EAAA1pT,GAAAw/G,EAAAoqM,EAAA,GAKA,OAAAF,EAGA,OAAA/lR,GAEAwC,QAAA,SAAArmC,EAAAE,GACA,IAAA8pT,EAAAruT,KAAAmlN,sBAAA9gN,EAAAE,GACA2jC,EAAAloC,KAAA8nC,kBACAvvB,EAAAvY,KAAAuY,MAIA,GAHAlU,EAAAgqT,EAAA,GACA9pT,EAAA8pT,EAAA,GAEAnmR,EAAAwC,QAAArmC,EAAAE,GAAA,CACA,IAAAkqO,EAAAzuO,KAAAK,KAAAyQ,KAEA,GAAAyH,EAAAoiK,YAAA,CACA,IAAA59I,EAAAxkB,EAAAwkB,UACAoxR,EAAA51S,EAAA82B,cAAArvC,KAAAouT,eAAA,EAEA,GAAAD,EAAA,QAEA51S,EAAAw0S,YACAhwR,EAAAh1B,KAAAE,IAAA80B,EAAA/8B,KAAA2xJ,yBAGAk7J,EAAAt9O,cAAAk/J,EAAA1xM,EAAAoxR,EAAA9pT,EAAAE,IACA,SAKA,GAAAgU,EAAAw0S,UACA,OAAAF,EAAAniR,QAAA+jM,EAAApqO,EAAAE,GAIA,UAMAnD,MAAA,SAAAktT,GACA,MAAAA,IACAA,GAAA,GAIAA,IACAtuT,KAAAwvC,YAAA8+Q,EACAtuT,KAAA6nC,MAAA,MAGA7nC,KAAAk1C,SAAA,EACAl1C,KAAAW,MAAAX,KAAAW,KAAAylD,UAEApmD,KAAAisM,cACAjsM,KAAAisM,aAAA7qM,SAQAolR,aAAA,SAAAlmR,GACA,OAAAN,KAAAI,QAAA,QAAAE,IAGAwrM,OAAA,SAAA/hM,EAAAxC,GAEA,UAAAwC,GACA/J,KAAAuhC,SAAAh6B,GACAvH,KAAAwvC,aAAA,EACAxvC,KAAA6nC,MAAA,MAEAmD,EAAA9qC,UAAA4rM,OAAApgM,KAAA1L,KAAA+J,EAAAxC,IAQAg6B,SAAA,SAAAx3B,EAAAxC,GACA,IAAAwgB,EAAA/nB,KAAA+nB,MAEA,GAAAA,EAAA,CACA,GAAA8R,EAAAj6B,SAAAmK,GACA,QAAAnH,KAAAmH,EACAA,EAAAlH,eAAAD,KACAmlB,EAAAnlB,GAAAmH,EAAAnH,SAIAmlB,EAAAhe,GAAAxC,EAGAvH,KAAAoB,OAAA,GAGA,OAAApB,MAEAouT,aAAA,WACA,IAAAzhS,EAAA3sB,KAAAi4B,UAKA,OAAAtL,GAAAhkB,EAAAgkB,EAAA,aAAAhkB,EAAAgkB,EAAA,YAAA5kB,KAAAyjC,KAAA7iC,EAAAgkB,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,SAcAwe,EAAAzhC,OAAA,SAAAs5B,GACA,IAAAi0N,EAAA,SAAApsP,GACAsgC,EAAAz/B,KAAA1L,KAAA6K,GAEAm4B,EAAAzqB,OAEAvY,KAAAuY,MAAAg2S,WAAAvrR,EAAAzqB,OAAA,GAIA,IAAAi2S,EAAAxrR,EAAAjb,MAEA,GAAAymS,EAAA,CACAxuT,KAAA+nB,MAAA/nB,KAAA+nB,UACA,IAAA0mS,EAAAzuT,KAAA+nB,MAEA,QAAAnlB,KAAA4rT,GACAC,EAAA5rT,eAAAD,IAAA4rT,EAAA3rT,eAAAD,KACA6rT,EAAA7rT,GAAA4rT,EAAA5rT,IAKAogC,EAAAxkB,MAAAwkB,EAAAxkB,KAAA9S,KAAA1L,KAAA6K,IAKA,QAAAjI,KAFAi3B,EAAA2xB,SAAAyrM,EAAA9rN,GAEAnI,EAEA,UAAApgC,GAAA,UAAAA,IACAq0P,EAAA/2P,UAAA0C,GAAAogC,EAAApgC,IAIA,OAAAq0P,GAGAp9N,EAAA2xB,SAAArgB,EAAAH,GACA,IAAA/nC,EAAAkoC,EACAjoC,EAAAC,QAAAF,wBC7VA,IAAAG,EAAc7D,EAAQ,QAEtBmvT,EAAmBnvT,EAAQ,QAE3BA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAwBR6D,EAAAg4D,qBAAAszP,yBCpCA,IAAA70R,EAAat6B,EAAQ,QAErB4sD,EAAkB5sD,EAAQ,QAE1BkpL,EAAWlpL,EAAQ,QAInBg2O,EAFkBh2O,EAAQ,QAE1Bg2O,iBAoBAtyO,EAAAkpD,EAAAziD,QACAlG,KAAA,kBAKA8mR,UAAA,KACA1hH,eAAA,SAAA3rJ,EAAAtZ,GAEA,IAAAk3C,GACAj4C,KAAAqa,EAAAra,KACA2lL,SAAAtrK,EAAAnM,OAiHA,SAAA26Q,EAAAxgG,GAIA,IAAA3mK,EAAA,EACAuV,EAAA4E,KAAAwsJ,EAAA1C,SAAA,SAAAj8I,GACAm/O,EAAAn/O,GACA,IAAAo/O,EAAAp/O,EAAA/kC,MACAsyB,EAAA/tB,QAAA4/Q,SAAA,IACApnQ,GAAAonQ,IAEA,IAAAC,EAAA1gG,EAAA1jL,MAEAsyB,EAAA/tB,QAAA6/Q,KACAA,IAAA,KAGA,MAAAA,GAAAlhR,MAAAkhR,MACAA,EAAArnQ,GAIAqnQ,EAAA,IACAA,EAAA,GAGA9xP,EAAA/tB,QAAAm/K,EAAA1jL,OAAA0jL,EAAA1jL,MAAA,GAAAokR,EAAA1gG,EAAA1jL,MAAAokR,EAzIAF,CAAA5wO,GACA,IAAAo6D,EAAAh4F,EAAAg4F,WAEAg3K,KAKA,OAJAA,EAAAh3K,SAIAwzE,EAAAgC,WAAA5vI,EAAA76C,KAAAisR,GAAAn7Q,MAEAwkL,cAAA,WACAt1L,KAAAksR,iBAMA3xN,cAAA,SAAAn8B,GACA,IAAAzM,EAAAw6B,EAAAjsD,UAAAq6D,cAAAhuD,MAAAvM,KAAA8E,WACAo0D,EAAAl5D,KAAAksB,UAAA0+J,KAAAR,mBAAAhsJ,GAEA,OADAzM,EAAA6jN,aAAAD,EAAAr8K,EAAAl5D,MACA2xB,GAEA+C,eACAC,OAAA,EACAC,EAAA,EAEA9Q,QAAA,aACAnB,QAAA,SAEA2Z,WAAA,EACAF,WAAA,GAEAwwJ,SAAA,EACAG,iBAAA,EAEAC,kBAAA,EAIA2hI,gBAAA,aAEA9jC,UAAA,aACA+jC,wBAAA,EACAn8S,OAEAg2J,OAAA,SACApjK,MAAA,EACAwN,QAAA,EAGA8lB,MAAA,SACAvqB,SAAA,SACAioC,SAAA,EACAlS,QAAA,EACA7d,aAEA9T,WACA8iB,YAAA,EACAvC,YAAA,QACAlgB,QAAA,EACAyT,YACAqd,WACA9wB,QAAA,GAEAqxB,UACArxB,QAAA,KAIAg0D,cAAA,YACA03G,kBAAA,IACA7oJ,wBAAA,IACAk0I,gBAAA,WACA94J,QACAmkG,UAaA3/F,KAAA,QAEAm3Q,YAAA,WACA,OAAAzsR,KAAAsqR,WAMA4B,cAAA,SAAA72C,GACAA,EAAAr1O,KAAAsqR,UAAAj1C,IAAAr1O,KAAAsqR,UACA,IAAAzvO,EAAA76C,KAAAosL,aAAAxB,KAAA/vI,KAEAw6L,QAAAx6L,KAAA2I,SAAA6xL,MACAr1O,KAAAsqR,UAAAzvO,MAsCA33C,EAAAC,QAAAF,wBCrLA,IAAA42B,EAAat6B,EAAQ,QAErB4rD,EAAW5rD,EAAQ,QA8BnBqjE,EAAA,SAAAvqC,EAAA9mB,EAAA85C,EAAAC,EAAAl9C,GACA+8C,EAAAz/C,KAAA1L,KAAAq4B,EAAA9mB,EAAA85C,GAUArrD,KAAAwD,KAAA8nD,GAAA,QAUAtrD,KAAAoO,YAAA,SAQApO,KAAA8c,OAAA,MAGA8lD,EAAA1iE,WACAC,YAAAyiE,EAMArrC,MAAA,KAMAsF,aAAA,WACA,IAAAzuB,EAAApO,KAAAoO,SACA,cAAAA,GAAA,WAAAA,GAMAg8B,YAAA,SAAAC,EAAAq7J,GACA,OAAA1lM,KAAAquB,iBAAA+b,YAAAC,EAAAq7J,GAAA,IASA7uK,cAAA,KAOA8sC,aAAA,MAEA9pC,EAAA2xB,SAAAoX,EAAAzX,GACA,IAAAloD,EAAA2/D,EACA1/D,EAAAC,QAAAF,wBC1GA1D,EAAQ,QAERA,EAAQ,QAERA,EAAQ,8BCJR,IAAAo2M,EAAyBp2M,EAAQ,QAgDjC2D,EAAAC,QAXA,SAAAV,EAAAm2B,GAEA,OAAA+8K,GADA/8K,SACAwyJ,oBAAA3oL,GACAosT,QAAAj2R,EAAA40I,kBAAA/qK,EAAA+qK,iBACAshJ,UAAAl2R,EAAAkwI,cAAArmK,EAAAqmK,aACAimJ,SAAAn2R,EAAAyyJ,gBACA0rG,cAAAn+P,EAAAm+P,cACAi4B,mBAAAp2R,EAAAo2R,4CC5CA,IAoBAvwR,EApBal/B,EAAQ,QAoBrBk/B,KACAigJ,EAAA,mBA0FA,SAAAC,EAAAh7K,GACA,IAAAk7K,EAAAl7K,EAAA+6K,GAMA,OAJAG,IACAA,EAAAl7K,EAAA+6K,SAGAG,EAGA17K,EAAA5B,KA9FA,SAAAoC,EAAAsrT,GACA,IAAApwI,EAAAF,EAAAh7K,GAGA86B,EAAAwwR,EAAA,SAAA53P,EAAAsoH,GAGA,IAFA,IAAA5+K,EAAA89K,EAAA59K,OAAA,EAEUF,GAAA,IACV89K,EAAA99K,GAEA4+K,GAHkB5+K,KAQlB,GAAAA,EAAA,GAEA,IAAA4wM,EAAAhuM,EAAAgyL,iBACArmI,SAAA,WACAwG,QAAA,SACAp0D,GAAAi+K,IACO,GAEP,GAAAgyB,EAAA,CACA,IAAAu9G,EAAAv9G,EAAA0hB,kBACAx0C,EAAA,GAAAc,IACAA,aACAn9K,MAAA0sT,EAAA,GACAh+R,IAAAg+R,EAAA,QAKArwI,EAAAt9K,KAAA0tT,IA8DA9rT,EAAA2zD,IAtDA,SAAAnzD,GACA,IAAAk7K,EAAAF,EAAAh7K,GACA83K,EAAAoD,IAAA59K,OAAA,GACA49K,EAAA59K,OAAA,GAAA49K,EAAA/nH,MAEA,IAAAg4J,KAWA,OAVArwL,EAAAg9I,EAAA,SAAApkH,EAAAsoH,GACA,QAAA5+K,EAAA89K,EAAA59K,OAAA,EAAkCF,GAAA,EAAQA,IAG1C,GAFAs2D,EAAAwnH,EAAA99K,GAAA4+K,GAEA,CACAmvC,EAAAnvC,GAAAtoH,EACA,SAIAy3J,GAuCA3rN,EAAAiiD,MAhCA,SAAAzhD,GACAA,EAAA+6K,GAAA,MAgCAv7K,EAAAZ,MAxBA,SAAAoB,GACA,OAAAg7K,EAAAh7K,GAAA1C,8BCrGA,IAEAw9B,EAFYl/B,EAAQ,QAEpBk/B,KAEAK,EAAYv/B,EAAQ,QAEpB+0L,EAAoB/0L,EAAQ,QAE5B4vT,EAAgB5vT,EAAQ,QAExB06B,EAAgB16B,EAAQ,QAIxB6wO,EAFY7wO,EAAQ,QAEpB6wO,WAEAzb,EAA0Bp1N,EAAQ,QAoBlCo1L,EAAA16J,EAAAw6J,YACA26H,EAAAz6F,IAEA,SAAA06F,IAKArvT,KAAAg/B,MAAA,IAAAF,EAMA9+B,KAAAk1D,IAAAo/H,EAAAS,OAAA,aACA/0L,KAAAm4D,WAAAi4K,GACAx6K,KAAA05P,EACAxkT,MAAAykT,IAEAvvT,KAAAm4D,WAAArK,SACAgF,KAAA9yD,MAIAqvT,EAAAnvT,WACAsD,KAAA,QAOAgb,KAAA,SAAA7a,EAAAC,KASAH,OAAA,SAAA+3B,EAAA73B,EAAAC,EAAAggC,KASAD,UAAA,SAAAnI,EAAA73B,EAAAC,EAAAggC,GACA4rR,EAAAh0R,EAAAtP,UAAA0X,EAAA,aAUAM,SAAA,SAAA1I,EAAA73B,EAAAC,EAAAggC,GACA4rR,EAAAh0R,EAAAtP,UAAA0X,EAAA,WAQAn/B,OAAA,SAAAd,EAAAC,GACA5D,KAAAg/B,MAAAkG,aAQAngC,QAAA,aASA4oE,yBAAA,KASAG,kBAAA,KAUAtkC,gBAAA,MAUA,IAAAimR,EAAAJ,EAAAnvT,UAYA,SAAAwvT,EAAAjvT,EAAAs7C,GACA,GAAAt7C,IACAA,EAAAwR,QAAA8pC,GAEA,UAAAt7C,EAAA+C,MACA,QAAAzC,EAAA,EAAqBA,EAAAN,EAAAkvT,aAAqB5uT,IAC1C2uT,EAAAjvT,EAAAwkE,QAAAlkE,GAAAg7C,GAYA,SAAAyzQ,EAAA1+S,EAAA8yB,EAAAmY,GACA,IAAA3d,EAAAnE,EAAA4J,eAAA/yB,EAAA8yB,GAEA,MAAAxF,EACAK,EAAAxE,EAAAi8B,iBAAA93B,GAAA,SAAAyhQ,GACA6vB,EAAA5+S,EAAAgzB,iBAAA+7P,GAAA9jP,KAGAjrC,EAAA6vB,kBAAA,SAAAlgC,GACAivT,EAAAjvT,EAAAs7C,KAgBA,SAAAuzQ,EAAAxhQ,GACA,OAAAshQ,EAAAthQ,EAAAv2B,OAGA,SAAAg4R,EAAAzhQ,GACA,IAAAtyB,EAAAsyB,EAAAv2B,MACA5zB,EAAAmqD,EAAAnqD,QACAC,EAAAkqD,EAAAlqD,IACAggC,EAAAkqB,EAAAlqB,QAEAwqC,EAAA5yC,EAAA0yC,gBAAAE,kBACAtb,EAAAhF,EAAAgF,KACA+D,EAAAjzB,GAAA+wJ,EAAA/wJ,GAAAizB,aACApvB,EAAA2mC,EAAA,2BAAAvX,GAAA/D,EAAA+D,KAEA,SAMA,MAJA,WAAApvB,GACAqrB,EAAArrB,GAAAjM,EAAA73B,EAAAC,EAAAggC,GAGAgsR,EAAAnoR,GA1EAgoR,EAAAp6P,WAAAo6P,EAAAj6P,aAAAi6P,EAAAl6P,aAAA,SAAA/5B,EAAA73B,EAAAC,EAAAggC,GACA5jC,KAAAyD,OAAA+3B,EAAA73B,EAAAC,EAAAggC,IA0CAurR,EAAAU,kBAAAR,GAAA,YAEAF,EAAA36H,sBAAA66H,GACAz5H,oBAAA,IAGAy5H,EAAA/5P,iBAAA,SAAA1xB,EAAA6D,GACAktJ,EAAA/wJ,GAAAizB,aAAApvB,GA2BA,IAAAmoR,GACAjiP,0BACAjL,SAAA,SAAA/wC,EAAAm8B,GACAA,EAAAgF,KAAAgb,kBAAAn8C,EAAAm8B,EAAAv2B,MAAAu2B,EAAAnqD,QAAAmqD,EAAAlqD,IAAAkqD,EAAAlqB,WAGAngC,QAKAqsT,oBAAA,EACAptP,SAAA,SAAA/wC,EAAAm8B,GACAA,EAAAgF,KAAArvD,OAAAqqD,EAAAv2B,MAAAu2B,EAAAnqD,QAAAmqD,EAAAlqD,IAAAkqD,EAAAlqB,YAIA3gC,EAAAosT,EACAnsT,EAAAC,QAAAF,wBC1PA,IAoBA8sT,EApBsBxwT,EAAQ,OAoB9B0wE,GAAA,sEACA,2IACAhtE,GACA8sT,gBAAA,SAAA5zH,GACA,IAAA5jL,EAAAw3S,EAAA/vT,KAAAm8L,GAEA,GAAAn8L,KAAA2oN,kBAAA,CACA,IAAA95K,EAAA7uC,KAAA2oN,oBACA95K,IAAAt2B,EAAAs2B,YAGA,OAAAt2B,IAGArV,EAAAC,QAAAF,qCChCAE,EAAAiuE,YAAA,EAEAjuE,EAAA4V,QAAA,SAAAxY,GACA,QAAAQ,EAAA,EAAAmyB,EAAApuB,UAAA7D,OAAuCF,EAAAmyB,EAAOnyB,IAAA,CAC9C,IAAA0B,EAAAqC,UAAA/D,OACA,QAAAD,KAAA2B,EACA,GAAAA,EAAAI,eAAA/B,GAAA,CACA,IAAAyG,EAAA9E,EAAA3B,QACA4M,IAAAnG,IACAhH,EAAAO,GAAAyG,IAMA,OAAAhH,2BCjBA,IAAAmyL,EAAWnzL,EAAQ,QAmCnB,SAAAywT,EAAA9gJ,GACAA,EAAAogE,SAAA,SAAA3oD,GACA,IAAAsB,EAAAtB,EAAAtnJ,WAAAr7B,IAAA,0BACA42B,EAAA83J,EAAA1oJ,MAAA28I,EAAAG,MAAA8C,aACA/uJ,EAAA63J,EAAA1oJ,MAAA28I,EAAAK,MAAA4C,aACAxsJ,GAAAxC,EAAAC,IAEAotJ,GACA7qJ,EAAA77B,OAAAq5B,EAAA,GAAAC,EAAA,OAAAD,EAAA,GAAAC,EAAA,IAAAotJ,GAAArtJ,EAAA,GAAAC,EAAA,OAAAA,EAAA,GAAAD,EAAA,IAAAqtJ,IAGAtB,EAAA+C,UAAAtsJ,KAIAj6B,EAAAykE,aA9BA,SAAApsC,GACA,IAAAH,EAAAG,EAAAnN,iBAEA,IAAAgN,GAAA,SAAAA,EAAA73B,KAAA,CAIA,IAAA0rK,EAAA1zI,EAAA8qJ,WACApX,EAAA+Z,SAAA,SAAA/vH,GACA,IAAA3hC,EAAA2hC,EAAA75B,WACA65B,EAAAwwH,YAAAnyJ,EAAAvzB,IAAA,MAAAuzB,EAAAvzB,IAAA,SAEAgsT,EAAA9gJ,KAmBA/rK,EAAA6sT,yCCnDA,IAAAllR,EAAiBvrC,EAAQ,QAQzBw1C,EAAA,IANmBx1C,EAAQ,SAQ3BwrC,EAAA,aAEAA,EAAA7qC,WACAC,YAAA4qC,EAOAuG,aAAA,SAAAzL,EAAAqC,GACA,IAAA3vB,EAAAvY,KAAAuY,MACA2vB,EAAA3vB,EAAAy8B,UAAA9M,EAEAloC,KAAAk1C,SAAApK,EAAAqK,mBAAA58B,GAAA,GACA,IAAA84B,EAAA94B,EAAA84B,KAIA,GAFA,MAAAA,OAAA,IAEAvG,EAAAo7P,aAAA70P,EAAA94B,GAAA,CAKAstB,EAAAuwI,OAEA,IAAAn+I,EAAAj4B,KAAAi4B,UAEA1f,EAAA03S,cAOAjwT,KAAAu4K,aAAA1yI,GANA5N,IACA8c,EAAAtL,KAAAvB,GACA6M,EAAA/N,eAAA/O,GACAiQ,EAAA6M,GAOAjK,EAAA65P,WAAA3kS,KAAA6lC,EAAAwL,EAAA94B,EAAA2vB,GACArC,EAAA2wI,aAGA,IAAAvzK,EAAA8nC,EACA7nC,EAAAC,QAAAF,sBC1BAE,EAAA8oK,uBATA,WAUA9oK,EAAA6oK,yBATA,YAUA7oK,EAAA+oK,0BATA,aAUA/oK,EAAA44O,4BATA,eAUA54O,EAAA64O,sBATA,UAUA74O,EAAA4oK,0BARA,aASA5oK,EAAAqyN,wBARA,SASAryN,EAAA84O,qBARA,8BC3BA,IAAAl7D,EAAWxhL,EAAQ,QACnB24S,EAAAn3H,EAAA7zK,OAAA6zK,EAAA7zK,MAAuCE,UAAAF,KAAAE,YACvClK,EAAAC,QAAA,SAAAu9D,GACA,OAAAw3O,EAAA9qS,UAAAb,MAAA2rS,EAAApzS,kCCFA,IAAA+yN,EAAct4N,EAAQ,QAEtBs4N,IAAA33D,EAAA,UACAz1J,MAAA,SAAA8oM,GAEA,OAAAA,4BCgBArwM,EAAAC,QAtBA,SAAA4tC,EAAAC,EAAAP,EAAAC,EAAArsC,EAAAE,GACA,GAAAA,EAAAysC,GAAAzsC,EAAAmsC,GAAAnsC,EAAAysC,GAAAzsC,EAAAmsC,EACA,SAIA,GAAAA,IAAAM,EACA,SAGA,IAAA7V,EAAAuV,EAAAM,EAAA,KACAy3C,GAAAlkF,EAAAysC,IAAAN,EAAAM,GAEA,IAAAy3C,GAAA,IAAAA,IACAttD,EAAAuV,EAAAM,EAAA,QAGA,IAAAk/Q,EAAAznO,GAAAh4C,EAAAM,KAEA,OAAAm/Q,IAAA7rT,EAAAo1C,IAAAy2Q,EAAA7rT,EAAA82B,EAAA,yBCnBA,IAAA/3B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QA4BrB,SAAA4wT,EAAAzhR,EAAAioB,GACAA,EAAApa,OAAA,aACAn5C,EAAAs4D,eAAA/E,EAAA,SAAA/yB,EAAAjgC,GACA,IAAA+mB,KAWA,OAVA/mB,EAAAkvD,eACAvD,SAAA,MACAyG,MAAAnyB,GACK,SAAAorK,GACLA,EAAAtgK,GAAA9K,EAAAhhC,MACA,IAAA0X,EAAA00L,EAAA3gL,iBACAwL,EAAA4E,KAAAnkB,EAAAuxK,QAAA,SAAAt9C,GACA7jH,EAAA6jH,EAAA3rI,MAAAosM,EAAAzqI,WAAAgqE,EAAA3rI,QAAA,OAIA8nB,WACA9nB,KAAAghC,EAAAhhC,QA1CArD,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAyCR4wT,EAAA,kBACA3sT,KAAA,kBACA+zD,MAAA,qBAEA44P,EAAA,UACA3sT,KAAA,YACA+zD,MAAA,gBAEA44P,EAAA,YACA3sT,KAAA,cACA+zD,MAAA,wCC7DA,IAAA19B,EAAat6B,EAAQ,QAErB4rD,EAAW5rD,EAAQ,QA6BnB2sS,EAAA,SAAA7zQ,EAAA9mB,EAAA85C,EAAAC,EAAA6e,GACAhf,EAAAz/C,KAAA1L,KAAAq4B,EAAA9mB,EAAA85C,GAUArrD,KAAAwD,KAAA8nD,GAAA,QAMAtrD,KAAAmqE,aAGA+hO,EAAAhsS,WACAC,YAAA+rS,EAMA30Q,MAAA,KAKAsF,aAAA,WACA,qBAAA78B,KAAAquB,iBAAAgR,WAAAr7B,IAAA,YAGA61B,EAAA2xB,SAAA0gP,EAAA/gP,GACA,IAAAloD,EAAAipS,EACAhpS,EAAAC,QAAAF,sBCrEA,IAAAqsE,EAAA,EAAAvnE,KAAAgwB,GAYA50B,EAAAksE,gBAVA,SAAA/hC,GAOA,OANAA,GAAAgiC,GAEA,IACAhiC,GAAAgiC,GAGAhiC,yBCTA,IAAA8iR,EAAgB7wT,EAAQ,QAExBs6B,EAAat6B,EAAQ,QAErBqnC,EAAarnC,EAAQ,QAerB,SAAA8wT,EAAAC,EAAAC,GACAH,EAAA1kT,KAAA1L,KAAAswT,EAAAC,EAAA,kCAGA12R,EAAA2xB,SAAA6kQ,EAAAD,GAOAC,EAAAnwT,UAAAq8C,OAAA,SAAAwc,GACA,IAAAy3P,EAAAxwT,KAAAywT,cAAA13P,GAEAy3P,GACAxwT,KAAA0wT,UAAAF,EAAAz3P,EAAAu9G,aAAA,GAGA,IAAAoyH,EAAA1oS,KAAA2wT,kBAAA53P,GAEA2vO,GAGA1oS,KAAA0wT,UAAAhoB,EAAA3vO,EAAAu9G,aAAA,GAGAt2K,KAAA4wT,SAAA73P,IAYAs3P,EAAAnwT,UAAAwwT,UAAA,SAAAj0F,EAAAtkD,EAAA04I,GACA,GAAA14I,KAAAl3K,OAAA,GAEA,IAEA6vT,EACApvT,EAHAqvT,EAAA/wT,KAAAgxT,SAAA,GACA/0R,EAAAk8I,EAAA,GAGAlqH,EAAA4iQ,EAAA,kBAEA50R,EAAAgyB,IAEAvsD,EAAAu6B,EAAAgyB,GAAAiN,aAAA,MACA41P,EAAA70R,EAAAgyB,GAEA8iQ,EAAAvtQ,SAAAstQ,IAGAC,EAAA9gT,YAAA6gT,KAIApvT,EAAA,KAAA1B,KAAAixT,MAAA,SAAAjxT,KAAAkxT,SACAlxT,KAAAkxT,QACAJ,EAAA9wT,KAAA8P,cAAA,aACA42B,aAAA,KAAAhlC,GACAqvT,EAAA9gT,YAAA6gT,GACA70R,EAAAgyB,GAAA6iQ,GAIA,IAAAK,EAAAnxT,KAAAoxT,YAAAn1R,GAEA,GAAAA,EAAAhE,WAAAgE,EAAAsN,OAAAK,eAAAinR,EAAA,CASA,IAAA54R,EAAApsB,MAAA3L,UAAAoC,MAAAoJ,KAAAuwB,EAAAhE,WAEA2O,EAAAo+K,IAAA/oL,EAAAhE,UAAAgE,EAAAsN,OAAAK,aAAA3N,EAAAhE,WACAk5R,EAAA92S,MAAA4hB,GAEAA,EAAAhE,iBAEAk5R,EAAA92S,MAAA4hB,GAGA,IAAAya,EAAA12C,KAAAywT,cAAAx0R,GACA60R,EAAAl8Q,UAAA,GAQAk8Q,EAAA7gT,YAAAymC,EAAAw5N,aACAzzC,EAAA/1L,aAAA,oBAAAhlC,EAAA,KAEAy2K,EAAAl3K,OAAA,GAEAjB,KAAA0wT,UAAAI,EAAA34I,EAAA71K,MAAA,GAAAuuT,QAIAp0F,GACAA,EAAA/1L,aAAA,qBAWA2pR,EAAAnwT,UAAA0wT,SAAA,SAAA73P,GACA,IAAAs4P,EAAArxT,KAEA+4D,EAAAu9G,aAAAv9G,EAAAu9G,YAAAr1K,OAAA,GACA44B,EAAA4E,KAAAs6B,EAAAu9G,YAAA,SAAAr6I,GACAA,EAAAkyB,MACAiiQ,EAAAlwT,UAAA0wT,SAAAllT,KAAA2lT,EAAAp1R,EAAAkyB,MAGAlyB,EAAAq1R,UACAlB,EAAAlwT,UAAA0wT,SAAAllT,KAAA2lT,EAAAp1R,EAAAq1R,aAMA,IAAAruT,EAAAotT,EACAntT,EAAAC,QAAAF,0BC3JA,IAAA42B,EAAat6B,EAAQ,QAmCrB,SAAAgyT,IACA,IAAA7yS,EAAAmb,EAAA65B,eACA1zD,KAAA0e,SACA1e,KAAAutB,SAAA,GACAvtB,KAAAqtB,UAAA,GACArtB,KAAAg3R,WAAA,EACAh3R,KAAAi3R,WAAA,EACAj3R,KAAAwxT,mBAGAD,EAAArxT,WAOAq8C,OAAA,SAAAzrC,EAAAkI,EAAAC,EAAA02D,EAAA8hP,EAAAC,GACA,IAAAr3S,EAAAra,KAAA2xT,YAEAC,EAAA5xT,KAAA6xT,aAAA/gT,EAAA2gT,EAAA,WAEAK,EAAA9xT,KAAA6xT,aAAA/gT,EAAA2gT,EAAA,cAEAh6S,EAAAzX,KAAAqtB,UAAArtB,KAAAutB,SACA7O,EAAA1e,KAAA0e,OACAmnB,EAAAnnB,EAAA+7J,WAAA,MACA54K,EAAAiP,EAAA7P,OACAyd,EAAA1F,QACA0F,EAAAzF,SAEA,QAAAlY,EAAA,EAAmBA,EAAAc,IAASd,EAAA,CAC5B,IAAAmwC,EAAApgC,EAAA/P,GACAsD,EAAA6sC,EAAA,GACA3sC,EAAA2sC,EAAA,GAGAiD,EAAAw7B,EAFAz+B,EAAA,IAIArL,EAAAksR,YAAA59Q,EACAtO,EAAAqxI,UAAA78J,EAAAhW,EAAAoT,EAAAlT,EAAAkT,GAGA,IAAAiH,EAAA1F,QAAA0F,EAAAzF,OAGA,OAAAyF,EAYA,IARA,IAAAszS,EAAAnsR,EAAAosR,aAAA,IAAAvzS,EAAA1F,MAAA0F,EAAAzF,QACAi5S,EAAAF,EAAAlhT,KACA4xB,EAAA,EACAyvR,EAAAD,EAAAjxT,OACAg2R,EAAAj3R,KAAAi3R,WAEAm7B,EADApyT,KAAAg3R,WACAC,EAEAv0P,EAAAyvR,GAAA,CACAh+Q,EAAA+9Q,EAAAxvR,EAAA,WACA2vR,EAAA,EAAAtqT,KAAAkwC,MAAA,IAAA9D,GAEA,GAAAA,EAAA,GACA,IAAAvR,EAAA8uR,EAAAv9Q,GAAAy9Q,EAAAE,EAEA39Q,EAAA,IAAAA,IAAAi+Q,EAAAn7B,GACAi7B,EAAAxvR,KAAAE,EAAAyvR,GACAH,EAAAxvR,KAAAE,EAAAyvR,EAAA,GACAH,EAAAxvR,KAAAE,EAAAyvR,EAAA,GACAH,EAAAxvR,KAAAE,EAAAyvR,EAAA,GAAAl+Q,EAAA,SAEAzR,GAAA,EAKA,OADAmD,EAAAysR,aAAAN,EAAA,KACAtzS,GAQAizS,UAAA,WACA,IAAAY,EAAAvyT,KAAAwyT,eAAAxyT,KAAAwyT,aAAA34R,EAAA65B,gBAEAj8C,EAAAzX,KAAAqtB,UAAArtB,KAAAutB,SACAkB,EAAA,EAAAhX,EACA86S,EAAAv5S,MAAAyV,EACA8jS,EAAAt5S,OAAAwV,EACA,IAAAoX,EAAA0sR,EAAA93I,WAAA,MAeA,OAdA50I,EAAAkxI,UAAA,IAAAtoJ,KAIAoX,EAAAR,cAAA5W,EACAoX,EAAAT,WAAAplC,KAAAutB,SAGAsY,EAAAy4I,YAAA,OAEAz4I,EAAA4J,YACA5J,EAAAshI,KAAA1vJ,IAAAzX,KAAAqtB,UAAA,IAAAtlB,KAAAgwB,IAAA,GACA8N,EAAA43I,YACA53I,EAAAnuB,OACA66S,GAOAV,aAAA,SAAA/gT,EAAA2gT,EAAA11Q,GAMA,IALA,IAAA02Q,EAAAzyT,KAAAwxT,gBACAkB,EAAAD,EAAA12Q,KAAA02Q,EAAA12Q,GAAA,IAAA42Q,kBAAA,OACAxsT,GAAA,SACAkqD,EAAA,EAEAtvD,EAAA,EAAmBA,EAAA,IAASA,IAC5B0wT,EAAA11Q,GAAAh7C,EAAA,OAAAoF,GACAusT,EAAAriQ,KAAAlqD,EAAA,GACAusT,EAAAriQ,KAAAlqD,EAAA,GACAusT,EAAAriQ,KAAAlqD,EAAA,GACAusT,EAAAriQ,KAAAlqD,EAAA,GAGA,OAAAusT,IAGA,IAAAzvT,EAAAsuT,EACAruT,EAAAC,QAAAF,0BCtKA,IAAA42B,EAAat6B,EAAQ,QAErBm4C,EAAiBn4C,EAAQ,QAIzBk2M,EAFuBl2M,EAAQ,QAE/Bk2M,mBAoBA31M,EAAA+5B,EAAA/5B,QAgCA,SAAA8yT,EAAAj6H,EAAA7nL,EAAA+hT,EAAAC,EAAAC,EAAAC,GACA,IAAAC,KAIAC,EAHAz9G,EAAA3kM,EAAAgiT,GAGAhiT,EAAAyyB,mBAAA,wBAAAuvR,EACAvrT,EAAAwxL,EAAAjoL,EAAAoiT,EAAAv6H,GACAv6J,EAAAttB,EAAA22Q,iBAAAyrC,EAAA3rT,GAAA,GACA0rT,EAAAF,GAAAjiT,EAAA9M,IAAA6uT,EAAAz0R,GACA60R,EAAAD,GAAAliT,EAAA9M,IAAA8uT,EAAA10R,GAEA,IAAA/0B,EAAAquC,EAAA25P,aAAAvgS,EAAA9M,IAAA8uT,EAAA10R,IAOA,OANA/0B,EAAAtB,KAAAC,IAAAqB,EAAA,MAEA,IACA4pT,EAAAD,IAAAC,EAAAD,GAAA1rT,QAAA+B,IAGA4pT,EAGA,IAAA1oR,EAAA1Q,EAAA0Q,MAEA4oR,GAOAnrT,IAAAuiC,EAAAqoR,EAAA,OAQA3qT,IAAAsiC,EAAAqoR,EAAA,OAQAn2I,QAAAlyI,EAAAqoR,EAAA,YAiDA,SAAA95H,EAAAnsL,EAAAmE,EAAAuqB,EAAAG,GACA,IAAAm7C,KAcA,OAZA,MAAAhqE,EAAAqsL,YAAA,MAAArsL,EAAA0zB,UACAs2C,EAAAiiH,aAAA,MAAAjsL,EAAAqsL,WAAAloL,EAAA6xD,aAAAh2D,EAAAqsL,YAAArsL,EAAA0zB,SACAs2C,EAAAnxE,UAAA61B,EAAAzO,QAaA,SAAA4O,EAAA4iN,GACA,IAAAttO,EAAA0qB,EAAAtP,UACA6V,EAAAjxB,EAAAixB,WACAq8M,EAAAttO,EAAA6xD,aAAAy7K,GAEA,QAAAr9O,EAAA,EAAiBA,EAAAghC,EAAA9gC,OAAuBF,IAAA,CACxC,IAAAqyT,EAAAtiT,EAAAmxB,iBAAAF,EAAAhhC,IAEA,GAAAqyT,EAAAxwT,OAAAw7O,EACA,OAAAg1E,EAAAxxR,UAtBAyxR,CAAA73R,EAAAm7C,EAAAiiH,eACAjiH,EAAAr5C,SAAAjC,EAAA3E,aAAAigD,EAAAnxE,WACAmxE,EAAA28O,YAAAxiT,EAAA0tB,aAAAm4C,EAAAr5C,SAAAjF,OAEAs+C,EAAAr5C,SAAA9B,EAAAsB,cACA65C,EAAAnxE,UAAA61B,EAAA3E,aAAAigD,EAAAr5C,UACAq5C,EAAA28O,YAAAxiT,EAAA0tB,aAAAm4C,EAAAr5C,SAAAjF,KACAs+C,EAAAiiH,aAAA9nL,EAAA0tB,aAAAm4C,EAAAnxE,UAAA6yB,MAGAs+C,EAuCA,SAAAoiH,EAAAjoL,EAAA8nL,EAAAp1L,GACA,eAAAA,EAAA,CACA,IAAA8gB,EAAA,EACA/hB,EAAA,EAOA,OANAuO,EAAA2tB,KAAAm6J,EAAA,SAAArrL,EAAA+yB,GACA71B,MAAA8C,KACA+W,GAAA/W,EACAhL,OAGA+hB,EAAA/hB,EACG,iBAAAiB,EACHsN,EAAAotR,UAAAtlG,GAGA9nL,EAAAygN,cAAA34B,GAAA,WAAAp1L,EAAA,KAIAL,EAAAg2L,cA9GA,SAAA39J,EAAA7uB,GACA,IAAAmE,EAAA0qB,EAAAtP,UACAmP,EAAAG,EAAAnN,iBAKA,GAAA1hB,IA3FA,SAAAA,GACA,OAAAlC,MAAA+a,WAAA7Y,EAAAtI,MAAAoG,MAAA+a,WAAA7Y,EAAApI,IA0FAgvT,CAAA5mT,KAAAktB,EAAA/tB,QAAAa,EAAAy1B,QAAA/G,EAAA,CACA,IAAA3qB,EAAA2qB,EAAA0G,WACA82J,EAAAC,EAAAnsL,EAAAmE,EAAAuqB,EAAAG,GAKA,IAFA7uB,EAAAktB,EAAAmQ,MAAAr9B,IAEAnJ,MAAA2vT,EAAAxmT,EAAAnJ,OAAAq1L,EAAAv7J,UAAAu7J,EAAArzL,UAAA,CACA,IAAAutT,EAAAjzT,EAAA4Q,EAAAmoL,EAAAv7J,SAAAjF,KACA26R,EAAAlzT,EAAA4Q,EAAAmoL,EAAArzL,UAAA6yB,KACA1rB,EAAAy1B,MAAA+wR,EAAAxmT,EAAAnJ,MAAAsN,EAAA+nL,EAAAy6H,YAAAz6H,EAAAD,aAAAm6H,EAAAC,GAEArmT,EAAApF,MAAAoF,EAAAy1B,MAAA4wR,OACK,CAIL,IAFA,IAAA5wR,GAAA,MAAAz1B,EAAAkJ,MAAAlJ,EAAAkJ,MAAAlJ,EAAA4tC,WAAA,MAAA5tC,EAAAiJ,MAAAjJ,EAAAiJ,MAAAjJ,EAAA+uB,WAEA36B,EAAA,EAAqBA,EAAA,EAAOA,IAC5BoyT,EAAA/wR,EAAArhC,MACAqhC,EAAArhC,GAAAg4L,EAAAjoL,IAAA0tB,aAAA9tB,EAAA3P,IAAAqhC,EAAArhC,KAIA4L,EAAAy1B,SAIA,OAAAz1B,GA6EAxJ,EAAA21L,cACA31L,EAAAw2L,WAnCA,SAAAt+J,EAAA1uB,GAEA,QAAA0uB,KAAAo+J,aAAA9sL,EAAAy1B,QAvKA,SAAAz1B,GACA,QAAAlC,MAAA+a,WAAA7Y,EAAAtI,KAAAoG,MAAA+a,WAAA7Y,EAAApI,KAsKAivT,CAAA7mT,KAAA0uB,EAAAo+J,YAAA9sL,EAAAy1B,QAkCAj/B,EAAAu3L,eA/BA,SAAA/tL,EAAAm1B,EAAA1D,EAAAhG,GAEA,OAAAA,EAAA,EACAzrB,EAAAy1B,OAAAz1B,EAAAy1B,MAAAhK,GAGAzrB,EAAApF,OA0BApE,EAAA41L,qCCtOAx5L,EAAQ,QACRA,EAAQ,QACR2D,EAAAC,QAAiB5D,EAAQ,QAAwByjD,EAAA,kCCFjD,IAAAnpB,EAAat6B,EAAQ,QAyDrB2D,EAAAC,QApCA,SAAA8Z,GACA,IAAAw2S,EAAAx2S,EAAAwe,MAEA,GAAAg4R,EAAA,CACA55R,EAAA/tB,QAAA2nT,KACAA,OAGA,IAAAC,KACA75R,EAAA4E,KAAAg1R,EAAA,SAAAE,EAAArzR,GACAqzR,EAAA7rS,WACA6rS,EAAAnwT,OAAAmwT,EAAA5rS,QACA4rS,EAAA5rS,MAAA4rS,EAAAnwT,MAGAyZ,EAAA9C,MAAA8C,EAAA9C,UAEA0f,EAAA/tB,QAAAmR,EAAA9C,SACA8C,EAAA9C,OAAA8C,EAAA9C,QAGA8C,EAAA9C,MAAA5Y,KAAAoyT,IAEAD,EAAAnyT,KAAAoyT,KAGA12S,EAAAwe,MAAAi4R,EAGA75R,EAAA4E,KAAAxhB,EAAA3K,OAAA,SAAA88K,GACAA,GAAA,UAAAA,EAAA5rL,MAAA4rL,EAAAurH,aACAvrH,EAAAwkI,WAAAxkI,EAAAurH,qCCpDA,IAAAkZ,EAAct0T,EAAQ,QAsBtB0D,EApBc1D,EAAQ,QAoBtBgE,qBACAC,KAAA,MACAgb,KAAA,SAAA7a,EAAAC,GACA,IAAAkwT,EAAA,IAAAD,EAAAjwT,GAAA,GACA5D,KAAA+zT,SAAAD,EACA9zT,KAAAg/B,MAAAC,IAAA60R,EAAA90R,QAEAv7B,OAAA,SAAAurM,EAAArrM,EAAAC,EAAAggC,GAEA,IAAAA,GAAA,oBAAAA,EAAApgC,MAAAogC,EAAA73B,OAAA/L,KAAAk1D,IAAA,CAIA,IAAA4+P,EAAA9zT,KAAA+zT,SAEA/kH,EAAAhrM,IAAA,QACA8vT,EAAAj8I,KAAAm3B,EAAArrM,EAAAC,EAAA5D,KAAA4jC,GAEA5jC,KAAA+zT,SAAA/0R,MAAAkG,YAGAllC,KAAAg/B,MAAAmF,OAAA6qK,EAAAhrM,IAAA,YAEAe,QAAA,WACA/E,KAAA+zT,UAAA/zT,KAAA+zT,SAAAtvT,YAIAvB,EAAAC,QAAAF,qCChDAE,EAAAiuE,YAAA,EAsBAjuE,EAAA4V,SACAgH,QAAA,aA8BAhE,SACAmqN,mBAAA,WACA,OACApjO,SACAyW,oCC3DA,IAAAs+M,EAAct4N,EAAQ,QAEtBs4N,IAAA33D,EAAA23D,EAAAG,GAAiCz4N,EAAQ,QAAgB,UAAc6L,eAAiB7L,EAAQ,QAAcyjD,0BCF9G,IAAAmJ,EAAkB5sD,EAAQ,QAE1BslL,EAA8BtlL,EAAQ,QAItCqlL,EAFcrlL,EAAQ,QAEtBqlL,WAyBAovI,EAAA7nQ,EAAAziD,QACAlG,KAAA,gBACA6zB,WAAA,KAQAuxI,eAAA,SAAA3rJ,GACA,IAAAqO,EAAArO,EAAAioK,OAAAjoK,EAAAqO,MACAg6J,EAAAroK,EAAAnM,MAAAmM,EAAAqoK,MAEA,GAAAA,GAAAh6J,EAEA,OADAu5J,EAAAS,EAAAh6J,EAAAtrB,MAAA,GACA8Q,MAGAmjT,gBAAA,SAAA71R,EAAA81R,GACA,IAAA95Q,EAAAp6C,KAAAid,OAAAnM,KAAAstB,GACAgc,EAAA81L,OAAAgkF,EAAA,GACA95Q,EAAA+1L,OAAA+jF,EAAA,IAQA5tI,SAAA,WACA,OAAAtmL,KAAAksB,UAAAgjJ,OAQAqX,YAAA,WACA,OAAAvmL,KAAAsmL,WAAAd,UAMAiB,cAAA,SAAAroJ,EAAAsoJ,EAAArkK,GAEA,YAAAA,EAAA,CACA,IAAAsP,EAAA3xB,KAAAu6D,cAAAn8B,EAAA/b,GACA8xS,EAAAxiS,EAAA7gB,KACA8wC,EAAAuyQ,EAAA1xT,OAAA,OAAA0xT,EAAA5zT,OAMA,OAJAoxB,EAAApqB,QACAq6C,GAAA,MAAAjwB,EAAApqB,OAGAq9K,EAAAhjI,GAGA,OAAAoyQ,EAAA7sI,UAAAnnL,KAAA,gBAAAo+B,EAAAsoJ,IAEAhyJ,eACAC,OAAA,EACAC,EAAA,EACAvG,iBAAA,OACAiJ,OAAA,KAEAzxB,KAAA,KACAmM,IAAA,KACAlM,MAAA,MACAgP,OAAA,KAEA80L,UAAA,GAEAZ,QAAA,EAEA/xC,WAAA,EAEAm9J,iBAAA,GACA3hT,OACApN,MAAA,EACA+I,SAAA,QACAjI,MAAA,OACA0vB,SAAA,IAEArjB,WACA8iB,YAAA,EACAvC,YAAA,QAEAnS,WACAza,MAAA,UACA0M,QAAA,GACAo1K,UAAA,IAEA3hK,UACA7T,OACApN,MAAA,GAEAub,WACA/N,QAAA,KAGA+2J,gBAAA,SACA2U,kBAAA,OAGAt7K,EAAA+wT,EACA9wT,EAAAC,QAAAF,wBC3IAC,EAAAC,SAAkB5D,EAAQ,UAAsBA,EAAQ,OAARA,CAAkB,WAClE,OAAuG,GAAvGqK,OAAAwB,eAA+B7L,EAAQ,OAARA,CAAuB,YAAgByE,IAAA,WAAmB,YAAcuR,0BCDvG,IAAAskB,EAAat6B,EAAQ,QAyHrB2D,EAAAC,QAhGA,WACA,IAAAkxT,KACAC,KAgEA,OAMAvqT,IAAA,SAAA0kB,GAEA,OADA4lS,EAAA9yT,KAAAktB,GACAzuB,MAOA2qM,SAAA,SAAAt1L,GAEA,OADAi/S,EAAAD,EAAApzT,OAAA,GAAAoU,EACArV,MAOAklD,QAAA,SAAAka,GACA,OAhDA,SAAAm1P,EAAAC,EAAAlsI,GACA,GAAAA,GAAA+rI,EAAApzT,OACA,OAAAuzT,EAGA,IAAAp1P,KACAq1P,EAAAH,EAAAhsI,KAQA,OAPAzuJ,EAAA4E,KAAA+1R,EAAA,SAAAjtT,EAAAwC,GACAq1D,EAAA79D,MACAwI,MACAqnB,OAAAmjS,EAAAhtT,EAAA+gL,OAIAmsI,EACAr1P,EAAA9pD,KAAA,SAAAC,EAAAC,GACA,OAAAi/S,EAAAl/S,EAAAxL,IAAAyL,EAAAzL,OAGAq1D,EA6BAm1P,CAlFA,SAAA5jT,EAAAyuD,EAAAkpH,GACA,GAAAA,GAAA+rI,EAAApzT,OACA,OAAAm+D,EASA,IANA,IAAAr+D,GAAA,EACAq9C,EAAAghB,EAAAn+D,OACAyzT,EAAAL,EAAA/rI,KACAksI,KACAG,OAEA5zT,EAAAq9C,GAAA,CACA,IAAAw2Q,EAAAF,EAAAt1P,EAAAr+D,IACAqwB,EAAAujS,EAAAC,GAEAxjS,EACAA,EAAA7vB,KAAA69D,EAAAr+D,IAEA4zT,EAAAC,IAAAx1P,EAAAr+D,IAOA,OAHA84B,EAAA4E,KAAAk2R,EAAA,SAAAptT,EAAAwC,GACAyqT,EAAAzqT,GAAA4G,EAAApJ,EAAA+gL,KAEAksI,EAyDA7jT,CAAAyuD,EAAA,+BCpHA,IAAAgxP,EAAgB7wT,EAAQ,QAExBs6B,EAAat6B,EAAQ,QAErBs1T,EAAYt1T,EAAQ,QAepB,SAAAu1T,EAAAxE,EAAAC,GACAH,EAAA1kT,KAAA1L,KAAAswT,EAAAC,GAAA,0DAGA12R,EAAA2xB,SAAAspQ,EAAA1E,GASA0E,EAAA50T,UAAA60T,iBAAA,SAAAC,EAAAj8P,GACA,GAAAA,KAAAxgD,MAAA,CACA,IAAA84S,EAAArxT,KACA65B,EAAA4E,MAAA,0BAAAw2R,GACA,GAAAl8P,EAAAxgD,MAAA08S,KAAA,WAAAl8P,EAAAxgD,MAAA08S,GAAAzxT,MAAA,WAAAu1D,EAAAxgD,MAAA08S,GAAAzxT,MAAA,CACA,IAGAyqD,EAHArrB,EAAAm2B,EAAAxgD,MAAA08S,GACAlE,EAAAM,EAAAL,SAAA,GAIApuR,EAAAurB,MAEAF,EAAArrB,EAAAurB,KAEA4iQ,EAAAvtQ,SAAA5gB,EAAAurB,OAEAkjQ,EAAA6D,OAAAjnQ,IAIAA,EAAAojQ,EAAApyR,IAAA2D,GAGAyuR,EAAAT,SAAA73P,GACA,IAAAr3D,EAAAusD,EAAAiN,aAAA,MACA85P,EAAAtuR,aAAAuuR,EAAA,QAAAvzT,EAAA,UAcAozT,EAAA50T,UAAA++B,IAAA,SAAA2D,GACA,IAAAqrB,EAEA,cAAArrB,EAAAp/B,KACAyqD,EAAAjuD,KAAA8P,cAAA,sBACG,eAAA8yB,EAAAp/B,KAIH,OADAqxT,EAAA,0BACA,KAHA5mQ,EAAAjuD,KAAA8P,cAAA,kBAeA,OAJA8yB,EAAAlhC,GAAAkhC,EAAAlhC,IAAA1B,KAAAkxT,SACAjjQ,EAAAvnB,aAAA,UAAA1mC,KAAAixT,MAAA,aAAAruR,EAAAlhC,IACA1B,KAAA0wT,UAAA9tR,EAAAqrB,GACAjuD,KAAAk1T,OAAAjnQ,GACAA,GASA6mQ,EAAA50T,UAAAq8C,OAAA,SAAA3Z,GACA,IAAAyuR,EAAArxT,KACAowT,EAAAlwT,UAAAq8C,OAAA7wC,KAAA1L,KAAA4iC,EAAA,WACA,IAAAp/B,EAAAo/B,EAAAp/B,KACAuuC,EAAAnP,EAAAurB,KAAApc,QAEA,WAAAvuC,GAAA,mBAAAuuC,GAAA,WAAAvuC,GAAA,mBAAAuuC,EAEAs/Q,EAAAX,UAAA9tR,IAAAurB,OAGAkjQ,EAAA8D,UAAAvyR,GACAyuR,EAAApyR,IAAA2D,OAaAkyR,EAAA50T,UAAAwwT,UAAA,SAAA9tR,EAAAqrB,GACA,cAAArrB,EAAAp/B,KACAyqD,EAAAvnB,aAAA,KAAA9D,EAAAv+B,GACA4pD,EAAAvnB,aAAA,KAAA9D,EAAAr+B,GACA0pD,EAAAvnB,aAAA,KAAA9D,EAAAiL,IACAogB,EAAAvnB,aAAA,KAAA9D,EAAAkL,QACG,eAAAlL,EAAAp/B,KAMH,YADAqxT,EAAA,0BAJA5mQ,EAAAvnB,aAAA,KAAA9D,EAAAv+B,GACA4pD,EAAAvnB,aAAA,KAAA9D,EAAAr+B,GACA0pD,EAAAvnB,aAAA,IAAA9D,EAAAnrB,GAMAmrB,EAAA4hB,OAEAyJ,EAAAvnB,aAAA,kCAGAunB,EAAAvnB,aAAA,qCAIAunB,EAAArZ,UAAA,GAIA,IAFA,IAAAp7B,EAAAopB,EAAAV,WAEAnhC,EAAA,EAAAc,EAAA2X,EAAAvY,OAAsCF,EAAAc,IAASd,EAAA,CAC/C,IAAAe,EAAA9B,KAAA8P,cAAA,QACAhO,EAAA4kC,aAAA,aAAAltB,EAAAzY,GAAA2hC,OAAA,KACA5gC,EAAA4kC,aAAA,aAAAltB,EAAAzY,GAAAoF,OACA8nD,EAAAh+C,YAAAnO,GAKA8gC,EAAAurB,KAAAF,GASA6mQ,EAAA50T,UAAA0wT,SAAA,SAAA73P,GACA,GAAAA,EAAAxgD,MAAA,CACA,IAAAqqB,EAAAm2B,EAAAxgD,MAAAb,KAEAkrB,KAAAurB,MACAiiQ,EAAAlwT,UAAA0wT,SAAAllT,KAAA1L,KAAA4iC,EAAAurB,OAGAvrB,EAAAm2B,EAAAxgD,MAAA2qB,SAEAN,EAAAurB,MACAiiQ,EAAAlwT,UAAA0wT,SAAAllT,KAAA1L,KAAA4iC,EAAAurB,QAKA,IAAAlrD,EAAA6xT,EACA5xT,EAAAC,QAAAF,sBC3KAC,EAAAC,QAAA,SAAAlB,EAAAmzT,EAAAjzT,EAAAkzT,GAKA,IAAAC,EAGAzwJ,EAAA,EA8DA,MA3DA,kBAAAuwJ,IACAC,EAAAlzT,EACAA,EAAAizT,EACAA,OAAA1nT,GAMA,WAEA,IAAAvB,EAAAnM,KACAu1T,EAAAx6S,OAAA,IAAAtL,MAAAo1J,EACAz4J,EAAAtH,UAGA,SAAAq9E,IACA0iF,EAAA9pJ,OAAA,IAAAtL,MACAtN,EAAAoK,MAAAJ,EAAAC,GASAipT,IAAAC,GAGAnzO,IAIAmzO,GACAjpT,aAAAipT,QAGA5nT,IAAA2nT,GAAAE,EAAAtzT,EAGAkgF,KAEG,IAAAizO,IAUHE,EAAAhpT,WAAA+oT,EA9BA,WACAC,OAAA5nT,GA6BAy0E,OAAAz0E,IAAA2nT,EAAApzT,EAAAszT,EAAAtzT,4BClFA,IAAAmB,EAAc7D,EAAQ,QAEtBu6B,EAAiBv6B,EAAQ,QAEzBi2T,EAAmBj2T,EAAQ,QAE3BqnC,EAAarnC,EAAQ,QAErBk2T,EAAmBl2T,EAAQ,QAoB3B0D,EAAAG,EAAAs6D,iBACAl6D,KAAA,gBACAgb,KAAA,WACAxe,KAAAk/B,YAAA,IAAApF,EAAA07R,IAEA/xT,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UACAwpS,EAAA11T,KAAAk/B,YACAw2R,EAAAz0R,WAAAnwB,GACA9Q,KAAAg/B,MAAAC,IAAAy2R,EAAA12R,QAEAwK,gBAAA,SAAAhO,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UACAlsB,KAAAg/B,MAAA59B,QACA,IAAAgO,EAAAqmT,IAAA3qT,MAAA0wB,GAEApsB,EAAAszD,UACAtzD,EAAAszD,UACAlgE,MAAA,EACA0uB,IAAApgB,EAAAvO,SACOuO,GAGP9Q,KAAAk/B,YAAAs2B,aAAA1kD,IAEA6kT,sBAAA,SAAAn6R,GACA,IAAAH,EAAAG,EAAAnN,iBAEAgN,KAAA0N,mBACA/oC,KAAAg/B,MAAA/G,UAAA2O,EAAAoD,MAAA3O,EAAA0N,oBACA/oC,KAAAg/B,MAAAqJ,uBAGA5jC,OAAA,SAAAd,EAAAC,GACA5D,KAAAk/B,aAAAl/B,KAAAk/B,YAAAz6B,OAAAb,IAEAmB,QAAA,eAGA7B,EAAAC,QAAAF,0BCnEA,IAAAm/R,EAAgB7iS,EAAQ,QAExBq2T,IAAA,0IAGAC,EAAA,SAAAhrT,EAAA+8J,GACA5nK,KAAAuuT,WAAA1jT,GAAA,GACA7K,KAAA4nK,QAGA,SAAAkuJ,EAAAjwR,EAAA16B,EAAA+8B,GACA,IAAA7jC,EAAA,MAAA8G,EAAA9G,EAAA,EAAA8G,EAAA9G,EACAwpC,EAAA,MAAA1iC,EAAA0iC,GAAA,EAAA1iC,EAAA0iC,GACAtpC,EAAA,MAAA4G,EAAA5G,EAAA,EAAA4G,EAAA5G,EACAupC,EAAA,MAAA3iC,EAAA2iC,GAAA,EAAA3iC,EAAA2iC,GAeA,OAbA3iC,EAAAq5C,SACAngD,IAAA6jC,EAAAlvB,MAAAkvB,EAAA7jC,EACAwpC,IAAA3F,EAAAlvB,MAAAkvB,EAAA7jC,EACAE,IAAA2jC,EAAAjvB,OAAAivB,EAAA3jC,EACAupC,IAAA5F,EAAAjvB,OAAAivB,EAAA3jC,GAIAF,EAAAoG,MAAApG,GAAA,EAAAA,EACAwpC,EAAApjC,MAAAojC,GAAA,EAAAA,EACAtpC,EAAAkG,MAAAlG,GAAA,EAAAA,EACAupC,EAAArjC,MAAAqjC,GAAA,EAAAA,EACAjI,EAAAiwR,qBAAAzxT,EAAAE,EAAAspC,EAAAC,GAIA,SAAAioR,EAAAlwR,EAAA16B,EAAA+8B,GACA,IAAAlvB,EAAAkvB,EAAAlvB,MACAC,EAAAivB,EAAAjvB,OACAjR,EAAAD,KAAAC,IAAAgR,EAAAC,GACA5U,EAAA,MAAA8G,EAAA9G,EAAA,GAAA8G,EAAA9G,EACAE,EAAA,MAAA4G,EAAA5G,EAAA,GAAA4G,EAAA5G,EACAkT,EAAA,MAAAtM,EAAAsM,EAAA,GAAAtM,EAAAsM,EASA,OAPAtM,EAAAq5C,SACAngD,IAAA2U,EAAAkvB,EAAA7jC,EACAE,IAAA0U,EAAAivB,EAAA3jC,EACAkT,GAAAzP,GAGA69B,EAAAkwR,qBAAA1xT,EAAAE,EAAA,EAAAF,EAAAE,EAAAkT,GA4YA,IAFA,IAAAu+S,EAtYAH,EAAA31T,WACAC,YAAA01T,EAKAjuJ,KAAA,KAKAlwJ,KAAA,OAKAwrB,OAAA,KAKArwB,QAAA,EAKAg8B,SAAA,KAKA4+Q,eAAA,EAKAroR,WAAA,EAKAC,cAAA,EAKAC,cAAA,EAKAvI,UAAA,EAMAsS,eAAA,EAOAgC,KAAA,KASAqD,KAAA,KAOAD,SAAA,KAMAmB,UAAA,KAMAK,WAAA,KAOApgB,SAAA,KAMAigB,WAAA,KAMAmgR,QAAA,KAKA3+Q,SAAA,OAKAC,WAAA,KAKAyuP,UAAA,KAMA5C,WAAA,KASAK,gBAAA,EAKAyyB,eAAA,KASA9/Q,aAAA,SAMApB,SAAA,KAMA0vP,WAAA,KAKAhvP,UAAA,KAKAC,kBAAA,KAKAW,aAAA,EAKAgtP,gBAAA,cAKA/9P,eAAA,EAKAC,kBAAA,EAKAC,kBAAA,EAKAw+P,mBAAA,cAKAv+P,kBAAA,EAKAC,qBAAA,EAKAC,qBAAA,EAOAqqR,eAAA,EAMA/rH,aAAA,EAUAC,WAAA,KAKA0/F,oBAAA,KAKAE,gBAAA,KAKAD,gBAAA,EAKAI,iBAAA,EAMAzB,YAAA,KAMArtP,KAAA,KAMAywP,SAAA,KAMAhtO,MAAA,KAKAruD,KAAA,SAAAq7B,EAAAplC,EAAA63K,GAKA,IAJA,IACA69I,EAAA79I,KAAA//J,MACA69S,GAAAD,EAEAp1T,EAAA,EAAmBA,EAAA60T,EAAA30T,OAA+BF,IAAA,CAClD,IAAAD,EAAA80T,EAAA70T,GACAqtL,EAAAttL,EAAA,IAEAs1T,GARAp2T,KAQAouL,KAAA+nI,EAAA/nI,MAEAvoJ,EAAAuoJ,GAAAg0G,EAAAv8P,EAAAuoJ,EAVApuL,KAUAouL,IAAAttL,EAAA,KAoBA,IAhBAs1T,GAdAp2T,KAcA0X,OAAAy+S,EAAAz+S,QACAmuB,EAAA0nR,UAfAvtT,KAeA0X,OAGA0+S,GAlBAp2T,KAkBAkjC,SAAAizR,EAAAjzR,UACA2C,EAAA2nR,YAnBAxtT,KAmBAkjC,SAGAkzR,GAtBAp2T,KAsBA6S,UAAAsjT,EAAAtjT,WACAgzB,EAAAksR,YAAA,MAvBA/xT,KAuBA6S,QAAA,EAvBA7S,KAuBA6S,UAGAujT,GA1BAp2T,KA0BA64D,QAAAs9P,EAAAt9P,SACAhzB,EAAAwwR,yBA3BAr2T,KA2BA64D,OAAA,eAGA74D,KAAA26K,YAAA,CACA,IAAA59I,EA/BA/8B,KA+BA+8B,UACA8I,EAAA9I,aAAA/8B,KAAAqvC,eAAA5uC,KAAA2tT,aAAA3tT,EAAA2tT,eAAA,KAGArB,QAAA,WACA,IAAAr1S,EAAA1X,KAAA0X,KACA,aAAAA,GAAA,SAAAA,GAEAijK,UAAA,WACA,IAAAz3I,EAAAljC,KAAAkjC,OACA,aAAAA,GAAA,SAAAA,GAAAljC,KAAA+8B,UAAA,GAUAwxR,WAAA,SAAA+H,EAAA1qF,GACA,GAAA0qF,EACA,QAAA1zT,KAAA0zT,GACAA,EAAAzzT,eAAAD,KAAA,IAAAgpO,KAAA,IAAAA,EAAA5rO,KAAA6C,eAAAD,GAAA,MAAA0zT,EAAA1zT,MACA5C,KAAA4C,GAAA0zT,EAAA1zT,KAWAoiD,IAAA,SAAA75C,EAAA5D,GACA,iBAAA4D,EACAnL,KAAAmL,GAAA5D,EAEAvH,KAAAuuT,WAAApjT,GAAA,IAQA6+B,MAAA,WACA,IAAAk6N,EAAA,IAAAlkQ,KAAAG,YAEA,OADA+jQ,EAAAqqD,WAAAvuT,MAAA,GACAkkQ,GAEAmpD,YAAA,SAAAxnR,EAAA16B,EAAA+8B,GAKA,IAJA,IACAquR,GADA,WAAAprT,EAAA3H,KAAAuyT,EAAAD,GACAjwR,EAAA16B,EAAA+8B,GACAhG,EAAA/2B,EAAA+2B,WAEAnhC,EAAA,EAAmBA,EAAAmhC,EAAAjhC,OAAuBF,IAC1Cw1T,EAAAC,aAAAt0R,EAAAnhC,GAAA2hC,OAAAR,EAAAnhC,GAAAoF,OAGA,OAAAowT,IAKAx1T,EAAA,EAAeA,EAAA60T,EAAA30T,OAA+BF,IAAA,CAC9C,IAAAD,EAAA80T,EAAA70T,GAEAD,EAAA,KAAAk1T,IACAA,EAAAl1T,EAAA,IAAAA,EAAA,IAKA+0T,EAAAxI,YAAA2I,EAAA3I,YACA,IAAApqT,EAAA4yT,EACA3yT,EAAAC,QAAAF,sBCrcA,IAAA8iC,EAAA,EAEA,oBAAAp2B,SACAo2B,EAAAh+B,KAAAE,IAAA0H,OAAA2+C,kBAAA,MAgBA,IAEAA,EAAAvoB,EACA5iC,EAAAwpR,UAHA,EAIAxpR,EAAAmrD,uCCvBA,IAAA1mD,KAAiBA,SAEjB1E,EAAAC,QAAA,SAAAu9D,GACA,OAAA94D,EAAA8D,KAAAg1D,GAAAp+D,MAAA,6BCHA,IAMAW,EANW1D,EAAQ,QAMnBmK,QACAlG,KAAA,OACAukB,OAEA0oB,GAAA,EACAC,GAAA,EAEA7C,GAAA,EACAC,GAAA,EACA1pB,QAAA,GAEA7L,OACA2qB,OAAA,OACAxrB,KAAA,MAEAg4B,UAAA,SAAA7J,EAAA9d,GACA,IAAA0oB,EAAA1oB,EAAA0oB,GACAC,EAAA3oB,EAAA2oB,GACA7C,EAAA9lB,EAAA8lB,GACAC,EAAA/lB,EAAA+lB,GACA1pB,EAAA2D,EAAA3D,QAEA,IAAAA,IAIAyhB,EAAAkhI,OAAAt2H,EAAAC,GAEAtsB,EAAA,IACAypB,EAAA4C,GAAA,EAAArsB,GAAAypB,EAAAzpB,EACA0pB,EAAA4C,GAAA,EAAAtsB,GAAA0pB,EAAA1pB,GAGAyhB,EAAAmhI,OAAAn5H,EAAAC,KAQA8qK,QAAA,SAAA1nK,GACA,IAAAnpB,EAAA/nB,KAAA+nB,MACA,OAAAA,EAAA0oB,IAAA,EAAAS,GAAAnpB,EAAA8lB,GAAAqD,EAAAnpB,EAAA2oB,IAAA,EAAAQ,GAAAnpB,EAAA+lB,GAAAoD,MAIAhuC,EAAAC,QAAAF,sBCpDA,IAAAk1C,EAAApwC,KAAAowC,KACAF,EAAAlwC,KAAAkwC,MACA/0C,EAAAC,QAAA,SAAAu9D,GACA,OAAAj2D,MAAAi2D,MAAA,GAAAA,EAAA,EAAAzoB,EAAAE,GAAAuoB,0BCJA,IAAAt9D,EAAc7D,EAAQ,QAItB66B,EAFY76B,EAAQ,QAEpB66B,QAEA5f,EAAcjb,EAAQ,QAEtBE,EAAYF,EAAQ,QAEpBiL,EAAA/K,EAAA+K,KACAd,EAAAjK,EAAAiK,OAEA6hE,EAAiBhsE,EAAQ,QAyBzB0D,EAAAG,EAAAs6D,iBACAl6D,KAAA,aACAgb,KAAA,WACAxe,KAAAm0K,YAEA1wK,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UACA8S,EAAAh/B,KAAAg/B,MACAy3R,EAAAj7R,EAAAk7R,iBACAr/R,EAAAvmB,EAAA84K,UAAA,cACA1hJ,EAAA7Q,EAAA6Q,KACAxV,EAAA2E,EAAA3E,YAGA,SAAAikS,EAAAhqT,GACA,OAAAA,EAAA/J,KAHAo8B,EAAAj8B,KAAA,cAAAmlC,EAAA3jC,EAAAmuB,EAAA,KAMA,IACAkkS,KAGA,SAAA55F,EAAA/mN,EAAAqqB,EAAA4mC,GACA,IAAA2vP,EAAA72T,KAAAm0K,QAEA,cAAAl+J,EAAA,CAUA,IALA,IAEA9P,EAaA25B,EACAuR,EAhBAylR,KACAp8R,KAEAg7C,EAAA+gP,EAAAn2R,GAAAo1C,QAEAxiD,EAAA,EAAqBA,EAAAwiD,EAAAz0E,OAAoBiyB,IAAA,CACzC,IAAAoE,EAAAxmB,EAAA0uB,cAAAk2C,EAAAxiD,IACA7uB,EAAAizB,EAAAjzB,EACA2sC,EAAA1Z,EAAA0Z,GACAzsC,EAAA+yB,EAAA/yB,EACAuyT,EAAAv1T,MAAA8C,EAAA2sC,IACAtW,EAAAn5B,MAAA8C,EAAA2sC,EAAAzsC,IACA4B,EAAA2K,EAAAojD,cAAAwhB,EAAAxiD,GAAA,SAKA,IAAA6jS,EAAAjmT,EAAA0uB,cAAAk2C,EAAA,IACAxQ,EAAAp0D,EAAAq0D,aAAAuQ,EAAAxiD,EAAA,IACA6yC,EAAAb,EAAA7lC,SAAA,SACA6qC,EAAAnE,EAAA/hE,IAAA,UAEA,WAAAiS,EAAA,CACA,IAAA+gT,EAAAJ,EAAAt2R,GAAA,IAAA9lB,EAAAskB,MACAgB,EAAA,IAAA1F,GACArS,OACAqV,OAAA05R,EACA32R,gBAAAzF,EACAh1B,OAAA,GACA89B,gBAAA,GACAszL,kBAAA,GAEA1yL,GAAA,IAEAiN,EAAA,IAAA72B,EAAA0wB,MACA3yB,OACAlU,EAAA0yT,EAAA1yT,EAAA6lE,EACA3lE,EAAAwyT,EAAA/lR,GAAA+lR,EAAAxyT,EAAA,KAGAyyT,EAAA/3R,IAAAa,GACAk3R,EAAA/3R,IAAAoS,GACArS,EAAAC,IAAA+3R,GACAl3R,EAAAkB,YA0CA,SAAAkH,EAAA1M,EAAA8rC,GACA,IAAAuiK,EAAA,IAAArvN,EAAAyiB,MACAlV,OACA1jB,EAAA6jC,EAAA7jC,EAAA,GACAE,EAAA2jC,EAAA3jC,EAAA,GACAyU,MAAA,EACAC,OAAAivB,EAAAjvB,OAAA,MASA,OANAuB,EAAAgiB,UAAAqtM,GACA9hN,OACA/O,MAAAkvB,EAAAlvB,MAAA,GACAC,OAAAivB,EAAAjvB,OAAA,KAEGuiB,EAAA8rC,GACHuiK,EAzDA3sM,CAAA4C,EAAAgI,kBAAAtM,EAAA,WACAsE,EAAAsnC,wBAEO,CACP4vP,EAAAH,EAAA3vP,GACApnC,EAAAk3R,EAAA/xP,QAAA,GACA5zB,EAAA2lR,EAAA/xP,QAAA,GACAjmC,EAAAC,IAAA+3R,GACAJ,EAAAt2R,GAAA02R,EACAx8S,EAAAoqB,YAAA9E,GACA/X,OACAqV,OAAA05R,EACA32R,gBAAAzF,IAESc,GACThhB,EAAAoqB,YAAAyM,GACA94B,OACAlU,EAAA0yT,EAAA1yT,EAAA6lE,EACA3lE,EAAAwyT,EAAA/lR,GAAA+lR,EAAAxyT,EAAA,IAESi3B,GAGT,IAAAy7R,EAAA/xP,EAAA7lC,SAAA,sBACAyoK,EAAA5iI,EAAA7lC,SAAA,aACA7kB,EAAA2/L,aAAA9oK,EAAA94B,MAAAwtD,GACA10B,KAAA00B,EAAA/hE,IAAA,QAAAw3B,EAAAo+K,kBAAAlkI,EAAAxiD,EAAA,cAAApiB,EAAAqzD,QAAAuR,EAAAxiD,EAAA,SACAyiB,kBAAA,WAEA7V,EAAAwc,SAAA5yC,GACAgO,KAAAvR,GACO2hM,EAAAxiI,cAAA,YACP9qD,EAAAmrD,cAAA7lC,EAAAm3R,EAAA3xP,qBA/EAtmC,EAAAv6B,OAAAoyT,EAAAv2R,IARA,IAAAirC,EAAAvrE,KAAAk3T,kBAAAT,EAAAE,KAEA13R,IAAAz0B,EAAAwyN,EAAAh9N,KAAA,QAAAu8C,OAAA/xC,EAAAwyN,EAAAh9N,KAAA,WAAAyE,OAAA+F,EAAAwyN,EAAAh9N,KAAA,WAAAmnE,UAwFAnnE,KAAAk3T,cAAAT,EACAz2T,KAAAm0K,QAAAyiJ,GAEA7xT,QAAA,eAsBA7B,EAAAC,QAAAF,wBC3KA,IAEA6M,EAFYvQ,EAAQ,QAEpBuQ,cAEAs7B,EAAgB7rC,EAAQ,QAExBsnC,EAAmBtnC,EAAQ,QAE3BqnC,EAAarnC,EAAQ,QAErBsrC,EAAkBtrC,EAAQ,QAE1BurC,EAAiBvrC,EAAQ,QAEzB2rC,EAAW3rC,EAAQ,QAKnBgsC,EAAAH,EAAAG,IACA4rR,EAAAtrT,MAAA3L,UAAAkG,KACAgxT,EAAA,OACAC,EAAAtvT,KAAAqC,MACA08J,EAAA/+J,KAAA2jC,IACAm7H,EAAA9+J,KAAA0jC,IACA1T,EAAAhwB,KAAAgwB,GACAu3C,EAAA,EAAAvnE,KAAAgwB,GACAu/R,EAAA,IAAAv/R,EACA4sL,EAAA,KAEA,SAAA4yG,EAAAhqT,GACA,OAAA8pT,EAAA,IAAA9pT,GAAA,IAGA,SAAAiqT,EAAAjqT,GACA,OAAAA,EAAAo3M,GAAAp3M,GAAAo3M,EAaA,SAAApsC,EAAAi4I,EAAA7jS,GACAA,GACA5pB,EAAAytT,EAAA,sBAAA2G,EAAAzrT,KAAAihB,EAAA,UAIA,SAAA5pB,EAAAtC,EAAAsJ,EAAAwD,KACAA,GAAA,WAAAA,EAAA/J,MAAA,WAAA+J,EAAA/J,QAEA,iBAAA+J,KAAAzN,QAAA,WACA2V,QAAAjW,IAAA+N,GAGA9M,EAAAimC,aAAA38B,EAAAwD,IAQA,SAAAkqT,EAAAjH,EAAAj4S,EAAAs4S,GACA,GAhCA,SAAAt4S,EAAAs4S,GACA,IAAAn5S,EAAAm5S,EAAAt4S,EAAA++B,SAAA/+B,EAAAb,KACA,aAAAA,OAAA0/S,EA8BAM,CAAAn/S,EAAAs4S,GAAA,CACA,IAAAn5S,EAAAm5S,EAAAt4S,EAAA++B,SAAA/+B,EAAAb,KACAA,EAAA,gBAAAA,EAAA0/S,EAAA1/S,EAiBA,SAAA84S,EAAAt1P,aAAA,cAAAxjD,IAAA0/S,IACA1/S,EAAA,wBAGA3U,EAAAytT,EAAA,OAAA94S,GACA3U,EAAAytT,EAAA,eAAAj4S,EAAA1F,cAEA9P,EAAAytT,EAAA,OAAA4G,GAGA,GAxDA,SAAA7+S,EAAAs4S,GACA,IAAA3tR,EAAA2tR,EAAAt4S,EAAAg/B,WAAAh/B,EAAA2qB,OACA,aAAAA,OAAAk0R,EAsDAO,CAAAp/S,EAAAs4S,GAAA,CACA,IAAA3tR,EAAA2tR,EAAAt4S,EAAAg/B,WAAAh/B,EAAA2qB,OAEAngC,EAAAytT,EAAA,SADAttR,EAAA,gBAAAA,EAAAk0R,EAAAl0R,GAIAngC,EAAAytT,EAAA,gBAFAK,EAAAt4S,EAAAkrR,gBAAAlrR,EAAAwkB,aACA8zR,GAAAt4S,EAAA82B,cAAA92B,EAAAqvJ,KAAAwmJ,eAAA,IAGArrT,EAAAytT,EAAA,cAAAK,EAAA,iBACA9tT,EAAAytT,EAAA,iBAAAj4S,EAAA1F,SACA0F,EAAAs2B,UAGA9rC,EAAAytT,EAAA,mBAAAj4S,EAAAs2B,SAAAzoC,KAAA,MACArD,EAAAytT,EAAA,oBAAA6G,EAAA9+S,EAAAk1S,gBAAA,KAEA1qT,EAAAytT,EAAA,uBAIAj4S,EAAA+tQ,SAAAvjR,EAAAytT,EAAA,iBAAAj4S,EAAA+tQ,SACA/tQ,EAAA4qB,UAAApgC,EAAAytT,EAAA,kBAAAj4S,EAAA4qB,UACA5qB,EAAAq/S,YAAA70T,EAAAytT,EAAA,oBAAAj4S,EAAAq/S,iBAEA70T,EAAAytT,EAAA,SAAA4G,GAkHA,IAAAS,KAEAA,EAAAx9S,MAAA,SAAA5Z,GACA,IAAA8X,EAAA9X,EAAA8X,MACAi4S,EAAA/vT,EAAAq3T,QAEAtH,IACAA,EAAA1gT,EAAA,QACArP,EAAAq3T,QAAAtH,GAGA/vT,EAAAJ,MACAI,EAAAuuO,kBAGA,IAAA3uO,EAAAI,EAAAJ,KAEA,GAAAI,EAAA+uC,YAAA,CACAnvC,EAAAovC,YACAhvC,EAAAivC,UAAArvC,EAAAI,EAAAsnB,OACAtnB,EAAA+uC,aAAA,EACA,IAAAuoR,EA/HA,SAAA13T,GAKA,IAJA,IAAAgwC,KACAv/B,EAAAzQ,EAAAyQ,KACAw/B,EAAAjwC,EAAAwB,MAEAd,EAAA,EAAiBA,EAAAuvC,GAAgB,CACjC,IACAT,EAAA,GACAmoR,EAAA,EAEA,OAJAlnT,EAAA/P,MAKA,KAAAwqC,EAAAyE,EACAH,EAAA,IACAmoR,EAAA,EACA,MAEA,KAAAzsR,EAAA2E,EACAL,EAAA,IACAmoR,EAAA,EACA,MAEA,KAAAzsR,EAAA6E,EACAP,EAAA,IACAmoR,EAAA,EACA,MAEA,KAAAzsR,EAAA0E,EACAJ,EAAA,IACAmoR,EAAA,EACA,MAEA,KAAAzsR,EAAA4E,EACA,IAAA54B,EAAAzG,EAAA/P,KACAyW,EAAA1G,EAAA/P,KACA8vC,EAAA//B,EAAA/P,KACA+vC,EAAAhgC,EAAA/P,KACAgtO,EAAAj9N,EAAA/P,KACAitO,EAAAl9N,EAAA/P,KACA0sO,EAAA38N,EAAA/P,KACAu7B,EAAAxrB,EAAA/P,KACAk3T,EAAAlwT,KAAAY,IAAAqlO,GACAkqF,EAAAV,EAAAS,EAAA3oP,KAAAkoP,EAAAS,GACA9pP,GAAA,EAGAA,EADA8pP,GAAA3oP,IAESkoP,EAAAS,KAGTjqF,GAAAj2M,GAAAi2M,EAAA,GAAAA,EAAAj2M,MAAAuE,EAGA,IAAAyU,EAAAwmR,EAAAhgT,EAAAs5B,EAAAg2H,EAAAknE,IACA/8L,EAAAumR,EAAA//S,EAAAs5B,EAAAg2H,EAAAinE,IAIAmqF,IAEAlqF,EADA1xM,EACAgzC,EAAA,KAEA,KAAAA,EAGAnB,GAAA,EAEA,IAAAptE,GAMAsvC,EAAA9uC,KAAA,IAAAwvC,EAAAC,IAIA,IAAA3sC,EAAAkzT,EAAAhgT,EAAAs5B,EAAAg2H,EAAAknE,EAAAC,IACAzpO,EAAAgzT,EAAA//S,EAAAs5B,EAAAg2H,EAAAinE,EAAAC,IAEA39L,EAAA9uC,KAAA,IAAAg2T,EAAA1mR,GAAA0mR,EAAAzmR,GAAAumR,EAAA5pF,EAAA6pF,IAAAnpP,GAAA7xC,EAAAj4B,EAAAE,GACA,MAEA,KAAAgnC,EAAAM,EACAgE,EAAA,IACA,MAEA,KAAAtE,EAAA0F,EACA5sC,EAAAkzT,EAAAzmT,EAAA/P,MACAwD,EAAAgzT,EAAAzmT,EAAA/P,MADA,IAEAgjH,EAAAwzM,EAAAzmT,EAAA/P,MACAkX,EAAAs/S,EAAAzmT,EAAA/P,MACAsvC,EAAA9uC,KAAA,IAAA8C,EAAAE,EAAA,IAAAF,EAAA0/G,EAAAx/G,EAAA,IAAAF,EAAA0/G,EAAAx/G,EAAA0T,EAAA,IAAA5T,EAAAE,EAAA0T,EAAA,IAAA5T,EAAAE,GAIAsrC,GAAAQ,EAAA9uC,KAAAsuC,GAEA,QAAA3c,EAAA,EAAmBA,EAAA8kS,EAAW9kS,IAE9Bmd,EAAA9uC,KAAAg2T,EAAAzmT,EAAA/P,OAIA,OAAAsvC,EAAAjqC,KAAA,KAwBA+qC,CAAA9wC,GAEA03T,EAAAj4T,QAAA,UAGAiD,EAAAytT,EAAA,IAAAuH,GAIAN,EAAAjH,EAAAj4S,GACAggK,EAAAi4I,EAAA/vT,EAAAw3B,WAEA,MAAA1f,EAAA84B,MACA8mR,EAAA13T,IAAAqnC,oBAQA,IAAAswR,GAEA/9S,MAAA,SAAA5Z,GACA,IAAA8X,EAAA9X,EAAA8X,MACAu5B,EAAAv5B,EAAAu5B,MAEAA,aAAAumR,mBAEAvmR,EADAA,EAAA/hC,KAIA,GAAA+hC,EAAA,CAIA,IAAAztC,EAAAkU,EAAAlU,GAAA,EACAE,EAAAgU,EAAAhU,GAAA,EACAiuC,EAAAj6B,EAAAS,MACAy5B,EAAAl6B,EAAAU,OACAu3S,EAAA/vT,EAAAq3T,QAEAtH,IACAA,EAAA1gT,EAAA,SACArP,EAAAq3T,QAAAtH,GAGA1+Q,IAAArxC,EAAA63T,cAhPA,SAAA73T,EAAAsJ,EAAAwD,GACA9M,EAAA29P,eAAA,+BAAAr0P,EAAAwD,GAgPAgrT,CAAA/H,EAAA,OAAA1+Q,GAEArxC,EAAA63T,WAAAxmR,GAGA/uC,EAAAytT,EAAA,QAAAh+Q,GACAzvC,EAAAytT,EAAA,SAAA/9Q,GACA1vC,EAAAytT,EAAA,IAAAnsT,GACAtB,EAAAytT,EAAA,IAAAjsT,GACAg0K,EAAAi4I,EAAA/vT,EAAAw3B,WAEA,MAAA1f,EAAA84B,MACA8mR,EAAA13T,IAAAqnC,sBAQA0wR,KACAzjR,EAAA,IAAAlO,EAEAsxR,EAAA,SAAA13T,EAAAynC,EAAA8M,GACA,IAAAz8B,EAAA9X,EAAA8X,MACA9X,EAAAy0C,SAAApK,EAAAqK,mBAAA58B,GAAA,GACA,IAAA84B,EAAA94B,EAAA84B,KAEA,SAAAA,EAAA,CAIAA,GAAA,GAGA,IAOAhtC,EACAE,EARAk0T,EAAAh4T,EAAAi4T,YAEAD,IACAA,EAAA3oT,EAAA,QACArP,EAAAi4T,YAAAD,GAKA,IAAAriR,EAAA79B,EAAA69B,aACAC,EAAA99B,EAAA+9B,aACA3d,EAAApgB,EAAAm9B,WAAA,OAEA,iBAAAn9B,EAAAsd,WACAtd,EAAAsd,UAAA,MAGA,IAAA6e,EAAAn8B,EAAAm8B,OAAAn8B,EAAAq9B,WAAA,GAAAr9B,EAAA09B,YAAA,GAAA19B,EAAAsd,UAAA,GAAAtd,EAAAu9B,YAAA,IAAA1vC,KAAA,MAAAykC,EAAA04P,aACA7qQ,EAAAigS,EAAApgT,EAAAo9B,mBAEAktP,GADA7tP,EAAAnK,EAAA/C,gBAAAuJ,EAAAqD,EAAA/b,EAAAD,IACAmqQ,WAEA,GAAAzsP,aAAAvqC,MACAxH,EAAA6jC,EAAA7jC,EAAA+xC,EAAA,GACA7xC,EAAA2jC,EAAA3jC,EAAA6xC,EAAA,OACG,CACH,IAAAm/B,EAAA1qC,EAAA0L,yBAAAH,EAAAlO,EAAAmO,GACAhyC,EAAAkxE,EAAAlxE,EACAE,EAAAgxE,EAAAhxE,EACAm0B,EAAAigS,EAAApjP,EAAA5/B,mBACAhd,EAAA48C,EAAA7/B,UAGA3yC,EAAA01T,EAAA,qBAAA//R,GAEAgc,IACA+jR,EAAAlgT,MAAAm8B,QAGA,IAAA+tP,EAAAlqR,EAAAkqR,YAMA,GAJA1/R,EAAA01T,EAAA,IAAAp0T,GACAtB,EAAA01T,EAAA,IAAAl0T,GACAkzT,EAAAgB,EAAAlgT,GAAA,GAEA9X,aAAAyqC,GAAAzqC,EAAA8X,MAAA03S,cAEA13I,EAAAkgJ,EAAAh4T,EAAAw3B,eACG,CACH,GAAAx3B,EAAAw3B,UACA8c,EAAAtL,KAAAvB,GACA6M,EAAA/N,eAAAvmC,EAAAw3B,WACAiQ,EAAA6M,MACK,CACL,IAAArjB,EAAAjxB,EAAA4kN,uBAAAn9K,EAAA7jC,EAAA6jC,EAAA3jC,GACA2jC,EAAA7jC,EAAAqtB,EAAA,GACAwW,EAAA3jC,EAAAmtB,EAAA,GAIA,IAAA0X,EAAA7wB,EAAA4rL,WAEA,WAAA/6J,GACA/kC,EAAA2wC,EAAAh8B,MAAA,EAAA3U,EACAE,EAAAywC,EAAA/7B,OAAA,EAAA1U,GACK6kC,IACL/kC,EAAA+kC,EAAA,GAAA/kC,EACAE,EAAA6kC,EAAA,GAAA7kC,GAGA,IAAAkkK,GAAAlwJ,EAAA2rL,cAAA,EACAjsK,EAAA2O,EAAA8C,SAEA9C,EAAA6hI,OAAAxwI,EAAAx3B,EAAAw3B,UAAAwwI,GACA8P,EAAAkgJ,EAAAxgS,GAGA,IAAA6tQ,EAAAz0P,EAAAxwC,MAAA,MACA+3T,EAAA9yB,EAAA7kS,OACA43T,EAAAlgS,EAEA,SAAAkgS,GACAA,EAAA,QACAp2B,IAAAp+R,GAAAo+R,EAAA,KACG,UAAAo2B,GACHA,EAAA,MACAp2B,IAAAp+R,GAAAo+R,EAAA,KACG,WAAAo2B,IACHA,EAAA,SACAp2B,IAAAp+R,IAAAo+R,EAAA,GAAAA,EAAA,QAGA,IAAAz0P,EAAA,EAaA,GAXA,aAAAtV,GACAsV,GAAAgH,EAAA/7B,OAAA4pR,EACAJ,IAAAz0P,GAAAy0P,EAAA,KACG,WAAA/pQ,GACHsV,IAAAgH,EAAA/7B,OAAA4pR,GAAA,EACAJ,IAAAl+R,IAAAk+R,EAAA,GAAAA,EAAA,QAEAA,IAAAz0P,GAAAy0P,EAAA,IAIAhiS,EAAAq4T,SAAAznR,GAAA5wC,EAAAs4T,aAAArkR,EAAA,CACA,IAAAskR,EAAAv4T,EAAAw4T,gBACAx4T,EAAAw4T,YAAAD,EAEA,QAAAj4T,EAAA,EAAmBA,EAAA63T,EAAgB73T,IAAA,EAEnCm4T,EAAAF,EAAAj4T,IAQAm4T,EAAAtkR,UAAA,IALAskR,EAAAF,EAAAj4T,GAAA+O,EAAA,SACA2oT,EAAAxoT,YAAAipT,GACAn2T,EAAAm2T,EAAA,qBAAAxgS,GACA31B,EAAAm2T,EAAA,cAAAL,IAKA91T,EAAAm2T,EAAA,IAAA70T,GACAtB,EAAAm2T,EAAA,IAAA30T,EAAAxD,EAAA8hS,EAAA70P,GACAkrR,EAAAjpT,YAAAJ,SAAAglC,eAAAixP,EAAA/kS,KAIA,KAAUA,EAAAi4T,EAAA/3T,OAAsBF,IAChC03T,EAAAjsR,YAAAwsR,EAAAj4T,IAGAi4T,EAAA/3T,OAAA23T,EACAn4T,EAAAq4T,OAAAznR,EACA5wC,EAAAs4T,WAAArkR,OACG,GAAAj0C,EAAAw4T,YAAAh4T,OAEH,KAAAY,EAAApB,EAAAw4T,YAAAh4T,OAEA,IAAAF,EAAA,EAAmBA,EAAAc,IAASd,EAAA,CAC5B,IAAAm4T,KAAAz4T,EAAAw4T,YAAAl4T,MAGAgC,EAAAm2T,EAAA,IAAA70T,GACAtB,EAAAm2T,EAAA,IAAA30T,EAAAxD,EAAA8hS,EAAA70P,QAMA,SAAA2qR,EAAAjgS,GACA,iBAAAA,EACA,SACG,WAAAA,EACH,WAEA,UAIA8/R,EAAAlnR,aAAA6mR,EAEAK,EAAAn+S,MAAA,SAAA5Z,GACA,IAAA8X,EAAA9X,EAAA8X,MAEA,MAAAA,EAAA84B,OAEA94B,EAAA69B,cAAA,KACA+hR,EAAA13T,GACA4D,EAAAkU,EAAAlU,GAAA,EACAE,EAAAgU,EAAAhU,GAAA,EACAyU,MAAA,EACAC,OAAA,GACKxY,EAAAqnC,qBAIL3kC,EAAA9C,KAAAw3T,EACA10T,EAAA2uC,MAAAsmR,EACAj1T,EAAAkuC,KAAAmnR,wBCxgBA,IAAA9vJ,EAA0BnpK,EAAQ,QAsBlC0D,EApBkB1D,EAAQ,QAoB1BmK,QACAlG,KAAA,uBACAixB,cAAA,gBACAm0I,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAA+kK,EAAA1oK,KAAA6oK,YAAA7oK,OAEAu5B,cAAA,QACA7E,eACArG,iBAAA,cACAsG,OAAA,EACAC,EAAA,EACAwpJ,iBAAA,EACA+6I,WAAA,SACAxvJ,YAAA,EAEAyvJ,aAAA,SAEAC,cACAjmI,OAAA,EAEA7hL,MAAA,IAEAqhJ,UAAA,QAUA3jI,WAAA,MAYA/rB,EAAAC,QAAAF,wBClEA,IAAA42B,EAAat6B,EAAQ,QAErB4vT,EAAgB5vT,EAAQ,QAExBib,EAAcjb,EAAQ,QAEtBunS,EAA6BvnS,EAAQ,QAErC8zJ,EAAgB9zJ,EAAQ,QAExBk/K,EAAmBl/K,EAAQ,QAwB3Bo1L,GAAAF,EAtBal1L,EAAQ,QAErBk1L,aAqBAzqJ,EAAAnQ,EAAAmQ,MACAx/B,EAAAqvB,EAAArvB,KAMA,SAAAsrB,KAmaA,SAAA8O,EAAAmtH,EAAAunK,EAAA74T,EAAAqC,IAQA,SAAAy2T,EAAAC,EAAAC,GACA,GAAA5/R,EAAAj6B,SAAA45T,IAAA3/R,EAAAj6B,SAAA65T,GAAA,CACA,IAAA7jP,GAAA,EAIA,OAHA/7C,EAAA4E,KAAAg7R,EAAA,SAAA9sT,EAAA5C,GACA6rE,KAAA2jP,EAAAC,EAAAzvT,GAAA4C,OAEAipE,EAEA,OAAA4jP,IAAAC,GAdAF,CAAA5kI,EAAAl0L,GAAAi5T,SAAA52T,KACA6xL,EAAAl0L,GAAAi5T,SAAA52T,EACAw2T,EAAA9+S,EAAAoqB,YAAAnkC,EAAAqC,EAAAivJ,IAAAtxJ,EAAAkB,gBAAAlB,EAAAsC,KAAAD,KAgBA,SAAA62T,EAAAC,EAAAtjS,GACAsjS,EAAAtjS,EAAAtyB,IAAA,+BAGA,SAAA61T,EAAAC,GACA,OACA1rT,SAAA0rT,EAAA1rT,SAAA9L,QACAu1B,SAAAiiS,EAAAjiS,UAAA,GAIA,SAAAkiS,EAAA/6R,EAAA1I,EAAA6N,GACA,IAAAvP,EAAA0B,EAAAtyB,IAAA,KACA2wB,EAAA2B,EAAAtyB,IAAA,UACAg7B,KAAA25B,SAAA,SAAAl4D,GACA,UAAAA,EAAA+C,OACA,MAAAoxB,IAAAn0B,EAAAm0B,KACA,MAAAD,IAAAl0B,EAAAk0B,UACAl0B,EAAA0jC,YAvcArO,EAAA51B,WAIA85T,OAAA,KAKAC,gBAAA,KAKAC,QAAA,KAKA/lK,WAAA,EAKAgmK,WAAA,KAKAC,YAAA,KAKAC,aAAA,KAOAC,mBAAA,GAKA72T,OAAA,SAAA4yB,EAAAC,EAAA1yB,EAAAixP,GACA,IAAAttP,EAAA+uB,EAAAtyB,IAAA,SACAiS,EAAAqgB,EAAAtyB,IAAA,UASA,GANAhE,KAAAu6T,WAAAlkS,EACAr2B,KAAAw6T,kBAAAlkS,EACAt2B,KAAAivD,KAAArrD,EAIAixP,GAAA70P,KAAAm6T,aAAA5yT,GAAAvH,KAAAo6T,cAAAnkT,EAAA,CAIAjW,KAAAm6T,WAAA5yT,EACAvH,KAAAo6T,YAAAnkT,EACA,IAAA+oB,EAAAh/B,KAAAg6T,OACAx4I,EAAAxhL,KAAAk6T,QAEA,IAAAjkT,GAAA,SAAAA,EAIA,OAFA+oB,KAAA+sK,YACAvqB,KAAAuqB,QAIA/sK,KAAA35B,OACAm8K,KAAAn8K,OAEA,IAAA+wB,KACAp2B,KAAAm2B,aAAAC,EAAA7uB,EAAA8uB,EAAAC,EAAA1yB,GAEA,IAAAuzB,EAAAf,EAAAe,WAEAA,IAAAn3B,KAAAi6T,iBACAj6T,KAAAolD,MAAAxhD,GAGA5D,KAAAi6T,gBAAA9iS,EACA,IAAAmiS,EAAAt5T,KAAAy6T,eAAAz6T,KAAA06T,mBAAArkS,EAAAC,GAEA,GAAA0I,EAKK,CACL,IAAA27R,EAAA9gS,EAAA0Q,MAAA3F,EAAAtO,EAAAgjS,GACAt5T,KAAA46T,gBAAA57R,EAAA5I,EAAAukS,EAAArkS,GACAt2B,KAAA66T,cAAA77R,EAAA5I,EAAAukS,EAAArkS,QAPA0I,EAAAh/B,KAAAg6T,OAAA,IAAAx/S,EAAAskB,MACA9+B,KAAA86T,gBAAA97R,EAAA5I,EAAAC,EAAAC,GACAt2B,KAAA+6T,cAAA/7R,EAAA5I,EAAAC,EAAAC,GACA1yB,EAAAe,QAAAs6B,IAAAD,GAOA+6R,EAAA/6R,EAAA1I,GAAA,GAEAt2B,KAAA6yR,cAAAtrR,KAMA9C,OAAA,SAAAb,GACA5D,KAAAolD,MAAAxhD,IAMAmB,QAAA,SAAAnB,GACA5D,KAAAolD,MAAAxhD,IAMA82T,mBAAA,SAAArkS,EAAAC,GACA,IAAA90B,EAAA80B,EAAAtyB,IAAA,aACAyxB,EAAAY,EAAAZ,KACAulS,EAAA,aAAAvlS,EAAAjyB,KACAy3T,EAAA3kS,EAAAtyB,IAAA,QAEA,IAAAi3T,IAAAD,EACA,SAGA,YAAAx5T,GAAA,MAAAA,EAAA,CACA,IAAA84T,EAAAt6T,KAAAs6T,mBAEA,GAAAU,GAAAvlS,EAAA0D,eAAAmhS,EACA,SAMA,GAAAW,EAAA,CACA,IAAAC,EAAAp0B,EAAAhuG,YAAAziK,GAAA6kS,gBACA/iS,EAAA1C,EAAAqG,YAEA,OAAA/zB,KAAAY,IAAAwvB,EAAA,GAAAA,EAAA,IAAA+iS,EAAAZ,EAGA,SAGA,WAAA94T,GAOA20B,aAAA,SAAAC,EAAA7uB,EAAA8uB,EAAAC,EAAA1yB,KAMAk3T,gBAAA,SAAA97R,EAAA5I,EAAAC,EAAAC,GACA,IAAAW,EAAAb,EAAAgB,QAEA,GAAAH,EAAA,CACA,IAAAkkS,EAAAxmI,EAAA31J,GAAAm8R,UAAA,IAAA3gT,EAAAyc,EAAAzzB,MAAAwmC,EAAA5T,EAAAgB,UACA4H,EAAAC,IAAAk8R,KAOAJ,cAAA,SAAA/7R,EAAA5I,EAAAC,EAAAC,GACA,GAAAF,EAAA3jB,MAAA,CACA,IAAAmnT,EAAAjlI,EAAA31J,GAAA46R,QAAA,IAAAp/S,EAAAyiB,KAAA+M,EAAA5T,EAAA3jB,QACAusB,EAAAC,IAAA26R,GACAD,EAAAC,EAAAtjS,KAOAskS,gBAAA,SAAA57R,EAAA5I,EAAAwO,GACA,IAAAu2R,EAAAxmI,EAAA31J,GAAAm8R,UAEAA,IACAA,EAAA7+Q,SAAAlmB,EAAAgB,QAAA7e,OACAqsB,EAAAu2R,GACApzS,MAAAqO,EAAAgB,QAAArP,UAQA8yS,cAAA,SAAA77R,EAAA5I,EAAAwO,EAAAtO,GACA,IAAAsjS,EAAAjlI,EAAA31J,GAAA46R,QAEAA,IACAA,EAAAt9Q,SAAAlmB,EAAA3jB,MAAA8F,OACAqsB,EAAAg1R,GAGA7xS,MAAAqO,EAAA3jB,MAAAsV,MACA3Z,SAAAgoB,EAAA3jB,MAAArE,WAEAurT,EAAAC,EAAAtjS,KAOAu8P,cAAA,SAAAtrR,GACA,IAAAvH,KAAAm0J,WAAAn0J,KAAAg4B,sBAAA,CAIA,IAcA0lJ,EAdApnJ,EAAAt2B,KAAAw6T,kBAEA95T,EAAAV,KAAAivD,KAAAtqD,QAEA68K,EAAAxhL,KAAAk6T,QACAkB,EAAA9kS,EAAA+I,SAAA,UACAppB,EAAAqgB,EAAAtyB,IAAA,UAEA,IAAAo3T,EAAAp3T,IAAA,UAAAiS,GAAA,SAAAA,EAGA,OAFAurK,GAAA9gL,EAAA+D,OAAA+8K,QACAxhL,KAAAk6T,QAAA,MAMAl6T,KAAAk6T,UACAx8I,GAAA,EACA8D,EAAAxhL,KAAAk6T,QAAA1/S,EAAA46Q,WAAAgmC,EAAAp3T,IAAA,SACAorB,OAAA,OACA6nI,WAAA,EACAC,YAAA,SAAA/yJ,GAEAkvJ,EAAAvxJ,KAAAqC,EAAAozD,QAEA8jQ,YAAA7wT,EAAAxK,KAAAs7T,kBAAAt7T,KAAA,KACAwlH,MAAAh7G,EAAAxK,KAAAs7T,kBAAAt7T,MACAm3J,UAAA3sJ,EAAAxK,KAAAu7T,iBAAAv7T,QAEAU,EAAAu+B,IAAAuiJ,IAGAu4I,EAAAv4I,EAAAlrJ,GAAA,GAGAkrJ,EAAAllI,SAAA8+Q,EAAA91P,aAAA,MADA,4GAGA,IAAAk2P,EAAAJ,EAAAp3T,IAAA,QAEA61B,EAAA/tB,QAAA0vT,KACAA,SAGAh6I,EAAAz+K,KAAA,SAAAy4T,EAAA,KAAAA,EAAA,OACA/8I,EAAAxZ,eAAAjlK,KAAA,yBAAAo7T,EAAAp3T,IAAA,0BAEAhE,KAAAy7T,mBAAAl0T,EAAAm2K,KAMA+9I,mBAAA,SAAAl0T,EAAAm2K,GACA94I,EAAA5kC,KAAAw6T,mBAAA98I,GAAA19K,KAAAy6T,eAAAz6T,KAAAk6T,QAAAL,EAAA75T,KAAAy3B,mBAAAlwB,EAAAvH,KAAAu6T,WAAAv6T,KAAAw6T,sBAMAc,kBAAA,SAAAvtR,EAAAC,GACA,IAAAwzI,EAAAxhL,KAAAk6T,QAEA,GAAA14I,EAAA,CAIAxhL,KAAAm0J,WAAA,EAEA,IAAA2lK,EAAA95T,KAAAg4B,sBAAA6hS,EAAAr4I,IAAAzzI,EAAAC,GAAAhuC,KAAAu6T,WAAAv6T,KAAAw6T,mBACAx6T,KAAAq6T,aAAAP,EACAt4I,EAAA7/K,gBACA6/K,EAAAz+K,KAAA82T,EAAAC,IACAnlI,EAAAnT,GAAAk4I,SAAA,KAEA15T,KAAA07T,2BAOAA,uBAAA,WAGA,GAFA17T,KAAAk6T,QAEA,CAIA,IAAAjzC,EAAAjnR,KAAAq6T,aACAhkS,EAAAr2B,KAAAu6T,WAEAv6T,KAAAivD,KAAA7qD,gBACAZ,KAAA,oBACAa,EAAA4iR,EAAAzuP,YAAA,GACAj0B,EAAA0iR,EAAAzuP,YAAA,GACAC,cAAAwuP,EAAAxuP,cACAowP,WACA7/G,QAAA3yI,EAAAZ,KAAA4C,IACA8xC,UAAA9zC,EAAA6hC,qBAQAqjQ,iBAAA,SAAAjC,GAIA,GAHAt5T,KAAAm0J,WAAA,EACAn0J,KAAAk6T,QAEA,CAIA,IAAA3yT,EAAAvH,KAAAw6T,kBAAAx2T,IAAA,SAKAhE,KAAAy7T,mBAAAl0T,GAIAvH,KAAAivD,KAAA7qD,gBACAZ,KAAA,cAYAi0B,mBAAA,KAWAO,sBAAA,KAKAotB,MAAA,SAAAxhD,GACA5D,KAAAm6T,WAAA,KACAn6T,KAAAo6T,YAAA,KACA,IAAA15T,EAAAkD,EAAAe,QACAq6B,EAAAh/B,KAAAg6T,OACAx4I,EAAAxhL,KAAAk6T,QAEAx5T,GAAAs+B,IACAh/B,KAAAi6T,gBAAA,KACAj7R,GAAAt+B,EAAA+D,OAAAu6B,GACAwiJ,GAAA9gL,EAAA+D,OAAA+8K,GACAxhL,KAAAg6T,OAAA,KACAh6T,KAAAk6T,QAAA,KACAl6T,KAAAq6T,aAAA,OAOAsB,QAAA,aASAC,WAAA,SAAA7uB,EAAA5yH,EAAA0hJ,GAEA,OACAx3T,EAAA0oS,EAFA8uB,KAAA,GAGAt3T,EAAAwoS,EAAA,EAAA8uB,GACA7iT,MAAAmhK,EAAA0hJ,GACA5iT,OAAAkhK,EAAA,EAAA0hJ,MAIA/lS,EAAA51B,UAAAC,YAAA21B,EA6CAq5R,EAAAU,kBAAA/5R,GACA,IAAA7yB,EAAA6yB,EACA5yB,EAAAC,QAAAF,wBC1fA,IAEA8xD,EAFYx1D,EAAQ,QAEpBw1D,cAmEA7xD,EAAAC,QA5CA,SAAA0sE,GACA,OACA8iK,gBAAA,SAAAhvO,GAEA,IAAAm4T,KACAC,EAAAhnQ,IAKA,OAJApxD,EAAAikM,iBAAA/3H,EAAA,SAAAr0C,GACAA,EAAAwgS,eAAAF,EACAC,EAAA/2Q,IAAAxpB,EAAA05B,IAAA15B,KAEAugS,GAEAjxT,MAAA,SAAA0wB,EAAA73B,GACA,IAAAs4T,EAAAzgS,EAAA4wJ,aACA61B,KACAnxM,EAAA0qB,EAAAtP,UACApb,EAAA2tB,KAAA,SAAA6B,GACA,IAAAm9P,EAAA3sR,EAAAy4J,YAAAjpI,GACA2hL,EAAAw7E,GAAAn9P,IAEA27R,EAAAx9R,KAAA,SAAAg/P,GACA,IAAAy+B,EAAAj6G,EAAAw7E,GAEA0+B,EAAA,MAAAD,GAAAprT,EAAAojD,cAAAgoQ,EAAA,YAEA,GAAAC,EAYAF,EAAAh6P,cAAAw7N,EAAA,QAAA0+B,OAZA,CAEA,IACAh2T,EADA81T,EAAA92P,aAAAs4N,GACAz5R,IAAA,oBAAAw3B,EAAAylK,oBAAAg7H,EAAA93P,QAAAs5N,MAAA,GAAAjiQ,EAAAwgS,eAAAC,EAAA15T,SAEA05T,EAAAh6P,cAAAw7N,EAAA,QAAAt3R,GAEA,MAAA+1T,GACAprT,EAAAmxD,cAAAi6P,EAAA,QAAA/1T,+BC1DA,IAAA00C,EAAWt7C,EAAQ,QAsBnB2D,EAAAC,QAJA,WACA,OAAA03C,EAAAprC,KAAAC,2BCDA,IAAA0sT,GACAhiT,YAAA,EACArE,QAAA,EACAsE,MAAA,GAcAlX,EAAA6yM,oBAPA,SAAA7xM,EAAAP,EAAAy4T,GACA,IAAA9kS,EAAA3zB,EAAAurD,sBAAAhrD,EAAAm4T,WAEAjhS,EAAA9D,KAAAlJ,iBACA,OAAAkJ,OAAA8kS,IAAAD,EAAA7kS,EAAA+3B,WAAAj0B,KAAA9D,QAAA8kS,yBChCA,IAAAz8T,EAAeL,EAAQ,QACvBy5S,EAAez5S,EAAQ,QAGvBg9T,EAAA,IAGAC,EAAA,aAGAC,EAAA,qBAGAC,EAAA,aAGAC,EAAA,cAGAC,EAAAhjP,SA8CA12E,EAAAC,QArBA,SAAAoE,GACA,oBAAAA,EACA,OAAAA,EAEA,GAAAyxS,EAAAzxS,GACA,OAAAg1T,EAEA,GAAA38T,EAAA2H,GAAA,CACA,IAAA6wI,EAAA,mBAAA7wI,EAAA64Q,QAAA74Q,EAAA64Q,UAAA74Q,EACAA,EAAA3H,EAAAw4I,KAAA,GAAAA,EAEA,oBAAA7wI,EACA,WAAAA,OAEAA,IAAAgB,QAAAi0T,EAAA,IACA,IAAAK,EAAAH,EAAA/gQ,KAAAp0D,GACA,OAAAs1T,GAAAF,EAAAhhQ,KAAAp0D,GACAq1T,EAAAr1T,EAAAjF,MAAA,GAAAu6T,EAAA,KACAJ,EAAA9gQ,KAAAp0D,GAAAg1T,GAAAh1T,uBC7DA,IAOAu1T,EACAC,EARA//F,EAAA95N,EAAAC,WAUA,SAAA65T,IACA,UAAA39P,MAAA,mCAEA,SAAA49P,IACA,UAAA59P,MAAA,qCAsBA,SAAA69P,EAAAC,GACA,GAAAL,IAAAxwT,WAEA,OAAAA,WAAA6wT,EAAA,GAGA,IAAAL,IAAAE,IAAAF,IAAAxwT,WAEA,OADAwwT,EAAAxwT,WACAA,WAAA6wT,EAAA,GAEA,IAEA,OAAAL,EAAAK,EAAA,GACK,MAAAh5T,GACL,IAEA,OAAA24T,EAAApxT,KAAA,KAAAyxT,EAAA,GACS,MAAAh5T,GAET,OAAA24T,EAAApxT,KAAA1L,KAAAm9T,EAAA,MAvCA,WACA,IAEAL,EADA,mBAAAxwT,WACAA,WAEA0wT,EAEK,MAAA74T,GACL24T,EAAAE,EAEA,IAEAD,EADA,mBAAA1wT,aACAA,aAEA4wT,EAEK,MAAA94T,GACL44T,EAAAE,GAjBA,GAwEA,IAEAG,EAFA7/F,KACA8/F,GAAA,EAEAC,GAAA,EAEA,SAAAC,IACAF,GAAAD,IAGAC,GAAA,EACAD,EAAAn8T,OACAs8N,EAAA6/F,EAAAroT,OAAAwoN,GAEA+/F,GAAA,EAEA//F,EAAAt8N,QACAu8T,KAIA,SAAAA,IACA,IAAAH,EAAA,CAGA,IAAAziN,EAAAsiN,EAAAK,GACAF,GAAA,EAGA,IADA,IAAAx7T,EAAA07N,EAAAt8N,OACAY,GAAA,CAGA,IAFAu7T,EAAA7/F,EACAA,OACA+/F,EAAAz7T,GACAu7T,GACAA,EAAAE,GAAA9/F,MAGA8/F,GAAA,EACAz7T,EAAA07N,EAAAt8N,OAEAm8T,EAAA,KACAC,GAAA,EAnEA,SAAAh8S,GACA,GAAA07S,IAAA1wT,aAEA,OAAAA,aAAAgV,GAGA,IAAA07S,IAAAE,IAAAF,IAAA1wT,aAEA,OADA0wT,EAAA1wT,aACAA,aAAAgV,GAEA,IAEA07S,EAAA17S,GACK,MAAAld,GACL,IAEA,OAAA44T,EAAArxT,KAAA,KAAA2V,GACS,MAAAld,GAGT,OAAA44T,EAAArxT,KAAA1L,KAAAqhB,KAgDAo8S,CAAA7iN,IAiBA,SAAA8iN,EAAAP,EAAA/9P,GACAp/D,KAAAm9T,MACAn9T,KAAAo/D,QAYA,SAAA/C,KA5BA2gK,EAAAnkJ,SAAA,SAAAskP,GACA,IAAA/wT,EAAA,IAAAP,MAAA/G,UAAA7D,OAAA,GACA,GAAA6D,UAAA7D,OAAA,EACA,QAAAF,EAAA,EAAuBA,EAAA+D,UAAA7D,OAAsBF,IAC7CqL,EAAArL,EAAA,GAAA+D,UAAA/D,GAGAw8N,EAAAh8N,KAAA,IAAAm8T,EAAAP,EAAA/wT,IACA,IAAAmxN,EAAAt8N,QAAAo8T,GACAH,EAAAM,IASAE,EAAAx9T,UAAAs9N,IAAA,WACAx9N,KAAAm9T,IAAA5wT,MAAA,KAAAvM,KAAAo/D,QAEA49J,EAAA9iN,MAAA,UACA8iN,EAAAhjK,SAAA,EACAgjK,EAAAryL,OACAqyL,EAAA2gG,QACA3gG,EAAA1gK,QAAA,GACA0gK,EAAA4gG,YAIA5gG,EAAAt9M,GAAA28C,EACA2gK,EAAAt3I,YAAArpB,EACA2gK,EAAAl3I,KAAAzpB,EACA2gK,EAAA3sK,IAAAgM,EACA2gK,EAAAh3I,eAAA3pB,EACA2gK,EAAA/2I,mBAAA5pB,EACA2gK,EAAA13I,KAAAjpB,EACA2gK,EAAA6gG,gBAAAxhQ,EACA2gK,EAAA8gG,oBAAAzhQ,EAEA2gK,EAAAx3I,UAAA,SAAA5iF,GAAqC,UAErCo6N,EAAAqwC,QAAA,SAAAzqQ,GACA,UAAAy8D,MAAA,qCAGA29J,EAAA+gG,IAAA,WAA2B,WAC3B/gG,EAAAghG,MAAA,SAAA7iS,GACA,UAAAkkC,MAAA,mCAEA29J,EAAAihG,MAAA,WAA4B,gCCtL5B,IAAAvnH,EAAgBn3M,EAAQ,QACxBk8L,EAAel8L,EAAQ,OAARA,CAAgB,YAC/B2+T,EAAAryT,MAAA3L,UAEAgD,EAAAC,QAAA,SAAAu9D,GACA,YAAAhzD,IAAAgzD,IAAAg2I,EAAA7qM,QAAA60D,GAAAw9P,EAAAziI,KAAA/6H,0BCNA,IAAA7mC,EAAat6B,EAAQ,QAoBrBm1B,GACArvB,MAAA,EACAsvB,OAAA,EACAC,EAAA,EAEA2H,SAAA,EAEA35B,KAAA,GAEAgO,aAAA,MAEAutT,WAAA,KACAC,cACA3X,SAAA,KACA17B,SAAA,MACA/iD,YAAA,KAGArmC,iBAEA9wL,QAAA,GAEAszB,QAAA,EAEA29J,cAAA,EACA/rL,SACA1Q,MAAA,GAEA+U,eACAhV,UACAC,MAAA,EACAotB,QAAA,EACA82C,gBAAA,KACA3oD,WACAza,MAAA,OACA6S,MAAA,EACAxV,KAAA,SAGAwrB,QAAA,eACAC,YAAA,QAEA3pB,UACAD,MAAA,EAEAohE,QAAA,EAEAxlE,OAAA,EACA2f,WACA5H,MAAA,IAGA9H,WACA7L,MAAA,EAEAohE,QAAA,EACAgiG,OAAA,EAEA41J,aAAA,KAEAC,aAAA,KACAp0P,OAAA,EAEAr0C,SAAA,IAEAtwB,WACAF,MAAA,EACAub,WACAza,OAAA,QACA6S,MAAA,EACAxV,KAAA,UAGAspB,WACAznB,MAAA,EACAwb,WACA1a,OAAA,oDAIAq7L,KACAA,EAAAr8L,aAAA00B,EAAA82C,OAEAj+C,aAAA,EAQA6rS,cAAA,KAIAh5T,WACAF,MAAA,GAEAC,UAEAk5T,gBAAA,EACA9kR,SAAA,QAEAxoC,WACAwoC,SAAA,SAEChlB,GACD8sK,EAAAh8L,UAAAq0B,EAAA82C,OAGAj+C,aAAA,KAsBA1K,YAAA,GAOC0M,GACD8sK,EAAAxyB,SAAAn1I,EAAAmJ,UACAzxB,OAAA,EACAvJ,IAAA,UACAC,IAAA,WACCu5L,EAAAh8L,WACDg8L,EAAAvyB,QAAAp1I,EAAAmJ,UACAzxB,OAAA,EACAktT,QAAA,IACCj9H,EAAAh8L,WACD,IAAAvC,EAAAu+L,EACAt+L,EAAAC,QAAAF,wBC1KgB1D,EAAQ,QAoBxBs7M,yBAAA,sBAEA,uCCtBA,IAEAlqM,EAFYpR,EAAQ,QAEpBoR,IAEAgkN,EAA0Bp1N,EAAQ,QAIlCk2M,EAFuBl2M,EAAQ,QAE/Bk2M,mBAuFAvyM,EAAAC,QAnEA,SAAA0sE,GACA,OACAA,aACAja,KAAA++J,IACA7pN,MAAA,SAAA0wB,GACA,IAAA1qB,EAAA0qB,EAAAtP,UACAmP,EAAAG,EAAAnN,iBAEAqwS,EADAljS,EAAA0yC,gBACAC,MAEA,GAAA9yC,EAAA,CAIA,IAAA3qB,EAAAC,EAAA0qB,EAAA0G,WAAA,SAAA1J,GACA,OAAAvnB,EAAA0tB,aAAAnG,KACO/1B,MAAA,KACP85R,EAAA1rR,EAAAzP,OACA4tS,EAAA/9R,EAAAyyB,mBAAA,wBA0CA,OAxCAkyK,EAAA3kM,EAAAJ,EAAA,MAGAA,EAAA,GAAAm+R,GAGAp5F,EAAA3kM,EAAAJ,EAAA,MAGAA,EAAA,GAAAm+R,GA+BAzS,IACA15N,SA7BA,SAAA/wC,EAAA7gB,GAIA,IAHA,IAAAgkN,EAAAnjM,EAAAT,IAAAS,EAAAnvB,MACA46B,EAAAshS,GAAA,IAAAzpG,aAAAH,EAAAsnE,GAEAr7R,EAAA4wB,EAAAnvB,MAAAkgC,EAAA,EAAAi8R,KAAAC,KAAuE79T,EAAA4wB,EAAAT,IAAgBnwB,IAAA,CACvF,IAAAspC,EAEA,OAAA+xP,EAAA,CACA,IAAA/3R,EAAAyM,EAAA9M,IAAA0M,EAAA,GAAA3P,GACAspC,GAAA5/B,MAAApG,IAAAg3B,EAAA4O,YAAA5lC,EAAA,KAAAu6T,OACW,CACXv6T,EAAAs6T,EAAA,GAAA7tT,EAAA9M,IAAA0M,EAAA,GAAA3P,GAAA,IACAwD,EAAAo6T,EAAA,GAAA7tT,EAAA9M,IAAA0M,EAAA,GAAA3P,GAEAspC,GAAA5/B,MAAApG,KAAAoG,MAAAlG,IAAA82B,EAAA4O,YAAA00R,EAAA,KAAAC,GAGAF,GACAthS,EAAAsF,KAAA2H,IAAA,GAAAokI,IACArxI,EAAAsF,KAAA2H,IAAA,GAAAokI,KAEA39J,EAAA64K,cAAA5oL,EAAAspC,KAAA/nC,UAAAmsK,UAIAiwJ,GAAA5tT,EAAA44K,UAAA,eAAAtsJ,+BCrFA,IAAAk2I,EAAW/zK,EAAQ,QAEnBmzL,EAAWnzL,EAAQ,QAEnBs/T,EAAgBt/T,EAAQ,QAExBosD,EAAepsD,EAAQ,QAEvBu/T,EAAA,SAuBA,SAAAC,KAEAA,EAAA7+T,UAAA6E,QAAA,aAEA,IAAAi6T,GAAA,4FAWAC,EAAA,SAAA3sQ,EAAAL,EAAAxL,EAAAy4Q,GACAvzQ,EAAAjgD,KAAA1L,MACAA,KAAAsyD,UACAtyD,KAAAiyD,UACAjyD,KAAAk/T,cACAz4Q,KAAA,IAAAs4Q,EAKA/+T,KAAAymD,MAAA,KAOAzmD,KAAAm/T,YAMAn/T,KAAAo/T,iBAMAp/T,KAAA6oT,OAMA7oT,KAAA8oT,OACA+V,EAAAnzT,KAAA1L,MACAA,KAAAq/T,gBAAA54Q,IAoNA,SAAA64Q,EAAAvmQ,EAAA10D,EAAAE,GACA,GAAAw0D,IAAAwmQ,UAAA,yBAAAl7T,EAAAE,GAAA,CAIA,IAHA,IACAi7T,EADA/+T,EAAAs4D,EAGAt4D,GAAA,CAIA,GAAAA,EAAAw7B,WAAAx7B,EAAAw7B,SAAAyO,QAAArmC,EAAAE,GACA,SAGA9D,EAAA0jC,SACAq7R,GAAA,GAGA/+T,IAAA8oC,OAGA,OAAAi2R,GAAAV,EAGA,SAxOAG,EAAA/+T,WACAC,YAAA8+T,EACAI,gBAAA,SAAA54Q,GACAzmD,KAAAymD,OACAzmD,KAAAymD,MAAA1hD,UAGA0hD,IACA6sH,EAAA70I,KAAAugS,EAAA,SAAAp8T,GACA6jD,EAAA/mC,IAAA+mC,EAAA/mC,GAAA9c,EAAA5C,KAAA4C,GAAA5C,OACOA,MAEPymD,EAAAhrC,QAAAzb,MAGAA,KAAAymD,SAEAi1G,UAAA,SAAAnkG,GACA,IAAAlzD,EAAAkzD,EAAA+5H,IACA/sL,EAAAgzD,EAAAg6H,IACAkuI,EAAAz/T,KAAAm/T,SACAO,EAAAD,EAAAl/T,OAKAm/T,MAAA/+T,OAEA++T,GADAD,EAAAz/T,KAAAqpT,UAAAoW,EAAAp7T,EAAAo7T,EAAAl7T,IACAhE,QAGA,IAAAo/T,EAAA3/T,KAAAm/T,SAAAn/T,KAAAqpT,UAAAhlT,EAAAE,GACAq7T,EAAAD,EAAAp/T,OACAkmD,EAAAzmD,KAAAymD,MACAA,EAAAsyF,WAAAtyF,EAAAsyF,UAAA6mL,IAAAxwS,OAAA,WAEAswS,GAAAE,IAAAF,GACA1/T,KAAA6/T,kBAAAJ,EAAA,WAAAloQ,GAIAv3D,KAAA6/T,kBAAAF,EAAA,YAAApoQ,GAEAqoQ,OAAAF,GACA1/T,KAAA6/T,kBAAAF,EAAA,YAAApoQ,IAGAspK,SAAA,SAAAtpK,GACAv3D,KAAA6/T,kBAAA7/T,KAAAm/T,SAAA,WAAA5nQ,GAMA,IACAuoQ,EADAr5R,EAAA8wB,EAAAwoQ,WAAAxoQ,EAAAyoQ,cAGA,GACAv5R,OAAA8F,iBACK9F,GAAA,GAAAA,EAAA4yC,YAAAymP,EAAAr5R,IAAAzmC,KAAAk/T,eAELY,GAAA9/T,KAAAiS,QAAA,aACAslD,WAOA/6C,OAAA,SAAA+6C,GACAv3D,KAAAm/T,aAQA5hL,SAAA,SAAAh3G,EAAA05R,GACA,IAAAxkT,EAAAzb,KAAAumC,GACA9qB,KAAA/P,KAAA1L,KAAAigU,IAMAl7T,QAAA,WACA/E,KAAAymD,MAAA1hD,UACA/E,KAAAsyD,QAAAtyD,KAAAymD,MAAAzmD,KAAAiyD,QAAA,MAOAiuQ,eAAA,SAAA16P,GACA,IAAA/e,EAAAzmD,KAAAymD,MACAA,EAAAsyF,WAAAtyF,EAAAsyF,UAAAvzE,IAWAq6P,kBAAA,SAAAxxG,EAAA9nL,EAAAgxB,GAEA,IAAA92D,GADA4tN,SACA9tN,OAEA,IAAAE,MAAA0jC,OAAA,CAOA,IAHA,IAAAg8R,EAAA,KAAA55R,EACA65R,EAjMA,SAAAC,EAAAhyG,EAAA92J,GACA,OACA/zD,KAAA68T,EACA9oQ,QAEAh3D,OAAA8tN,EAAA9tN,OAEA+7T,UAAAjuG,EAAAiuG,UACA1qI,cAAA,EACAttL,QAAAizD,EAAA+5H,IACA9sL,QAAA+yD,EAAAg6H,IACAz0B,aAAAvlG,EAAAulG,aACAO,OAAA9lG,EAAA8lG,OACAC,OAAA/lG,EAAA+lG,OACAF,WAAA7lG,EAAA6lG,WACAF,WAAA3lG,EAAA26H,QACAouI,UAAA/oQ,EAAA+oQ,UACAluI,MAAA76H,EAAA66H,OAgLAmuI,CAAAh6R,EAAA8nL,EAAA92J,GAEA92D,IACAA,EAAA0/T,KAAAC,EAAAxuI,aAAAnxL,EAAA0/T,GAAAz0T,KAAAjL,EAAA2/T,IACA3/T,EAAAwR,QAAAs0B,EAAA65R,GACA3/T,IAAA8oC,QAEA62R,EAAAxuI,gBAKAwuI,EAAAxuI,eAEA5xL,KAAAiS,QAAAs0B,EAAA65R,GAGApgU,KAAAiyD,SAAAjyD,KAAAiyD,QAAAmnH,eAAA,SAAA7D,GACA,mBAAAA,EAAA4qJ,IACA5qJ,EAAA4qJ,GAAAz0T,KAAA6pK,EAAA6qJ,GAGA7qJ,EAAAtjK,SACAsjK,EAAAtjK,QAAAs0B,EAAA65R,QAcA/W,UAAA,SAAAhlT,EAAAE,EAAAq1P,GAOA,IANA,IAAA/sO,EAAA7sB,KAAAsyD,QAAAC,iBACApoB,GACA9lC,IACAE,KAGAxD,EAAA8rB,EAAA5rB,OAAA,EAAiCF,GAAA,EAAQA,IAAA,CACzC,IAAAy/T,EAEA,GAAA3zS,EAAA9rB,KAAA64P,IACA/sO,EAAA9rB,GAAAijC,SAAAw8R,EAAAlB,EAAAzyS,EAAA9rB,GAAAsD,EAAAE,OACA4lC,EAAAmyR,YAAAnyR,EAAAmyR,UAAAzvS,EAAA9rB,IAEAy/T,IAAA1B,GAAA,CACA30R,EAAA5pC,OAAAssB,EAAA9rB,GACA,OAKA,OAAAopC,IAIAmpI,EAAA70I,MAAA,8EAAA77B,GACAq8T,EAAA/+T,UAAA0C,GAAA,SAAA20D,GAEA,IAAAooQ,EAAA3/T,KAAAqpT,UAAA9xP,EAAA+5H,IAAA/5H,EAAAg6H,KACAquI,EAAAD,EAAAp/T,OAEA,iBAAAqC,EACA5C,KAAAygU,QAAAb,EACA5/T,KAAA0gU,YAAAnpQ,EAAA+5H,IAAA/5H,EAAAg6H,KAEAvxL,KAAA2gU,MAAAf,OACK,eAAAh9T,EACL5C,KAAA2gU,MAAAf,OACK,aAAAh9T,EAAA,CACL,GAAA5C,KAAAygU,UAAAzgU,KAAA2gU,QAIA3gU,KAAA0gU,YACAhuI,EAAAmB,KAAA7zL,KAAA0gU,YAAAnpQ,EAAA+5H,IAAA/5H,EAAAg6H,MAAA,EACA,OAGAvxL,KAAA0gU,WAAA,KAGA1gU,KAAA6/T,kBAAAF,EAAA/8T,EAAA20D,MA8BA+7G,EAAA3rI,MAAAs3R,EAAAtzQ,GACA2nH,EAAA3rI,MAAAs3R,EAAAJ,GACA,IAAA57T,EAAAg8T,EACA/7T,EAAAC,QAAAF,wBCpUA,IAAAqwK,EAAW/zK,EAAQ,QAInB+uD,EAFc/uD,EAAQ,QAEtB+uD,iBAEAunQ,EAAYt2T,EAAQ,QAEpB86M,EAAc96M,EAAQ,QAMtB,SAAAqhU,IACA,SAYA,SAAAC,EAAAn/T,EAAAuwD,EAAAlsB,GACA,IAAA+6R,EAAAxtJ,EAAA5/G,eACA16C,EAAAi5C,EAAAH,WACA74C,EAAAg5C,EAAAF,YACAgvQ,EAAAD,EAAAvoT,MAcA,OAZAwoT,IAEAA,EAAA3yT,SAAA,WACA2yT,EAAAl7T,KAAA,EACAk7T,EAAA/uT,IAAA,EACA+uT,EAAA/nT,QAAA,KACA+nT,EAAA9nT,SAAA,KACA6nT,EAAAp6R,aAAA,iBAAAhlC,IAGAo/T,EAAA9nT,QAAA+sB,EACA+6R,EAAA7nT,SAAA8sB,EACA+6R,EAYA,IAAAvtJ,EAAA,SAAA7xK,EAAAuwD,EAAAlsB,GACA,IAAAkoB,EACAloB,KAAAuoB,EAEA,iBAAA5sD,EACAusD,EAAA4yQ,EAAAn/T,EAAAuwD,EAAAlsB,GAEAutI,EAAA1zK,SAAA8B,KAEAA,GADAusD,EAAAvsD,GACAA,IAGA1B,KAAA0B,KACA1B,KAAAiuD,MACA,IAAAi8J,EAAAj8J,EAAA11C,MAEA2xM,IAEAj8J,EAAA++J,cAAA4zG,EAEA12G,EAAA,8BACAA,EAAA,sBACAA,EAAA,gCACAA,EAAA,+CACAA,EAAA,UACAA,EAAA,SACAA,EAAA,mBAGAlqN,KAAAghU,QAAA,KACAhhU,KAAAihU,QAAA,KACAjhU,KAAAiyD,UACAjyD,KAAAggD,OAAA,KAQAhgD,KAAAw1K,WAAA,EAOAx1K,KAAAutE,YAAA,EAOAvtE,KAAAytE,eAAA,GAMAztE,KAAA+lC,OAGAwtI,EAAArzK,WACAC,YAAAozK,EACAr+H,SAAA,EACAqkI,QAAA,EACAjC,YAAA,EACAD,aAAA,EACAG,WAAA,EACApH,aAAA,EACAqJ,gBAAA,WACA,OAAAz5K,KAAAw3K,WAAAx3K,KAAAq3K,cAEA3C,YAAA,WACA10K,KAAA6lC,IAAA7lC,KAAAiuD,IAAAwsH,WAAA,MACAz6K,KAAA6lC,IAAAE,IAAA/lC,KAAA+lC,KAEAm7R,iBAAA,WACA,IAAAn7R,EAAA/lC,KAAA+lC,IACA/lC,KAAAghU,QAAAH,EAAA,QAAA7gU,KAAA0B,GAAA1B,KAAAiyD,QAAAlsB,GACA/lC,KAAAihU,QAAAjhU,KAAAghU,QAAAvmJ,WAAA,MAEA,GAAA10I,GACA/lC,KAAAihU,QAAA1vT,MAAAw0B,MAQAvpB,OAAA,SAAAxD,EAAAC,GACA,IAAA8sB,EAAA/lC,KAAA+lC,IACAkoB,EAAAjuD,KAAAiuD,IACAi8J,EAAAj8J,EAAA11C,MACAyoT,EAAAhhU,KAAAghU,QAEA92G,IACAA,EAAAlxM,QAAA,KACAkxM,EAAAjxM,SAAA,MAGAg1C,EAAAj1C,QAAA+sB,EACAkoB,EAAAh1C,SAAA8sB,EAEAi7R,IACAA,EAAAhoT,QAAA+sB,EACAi7R,EAAA/nT,SAAA8sB,EAEA,GAAAA,GACA/lC,KAAAihU,QAAA1vT,MAAAw0B,OAUAqf,MAAA,SAAA+7Q,EAAA3rJ,GACA,IAqBA4rJ,EArBAnzQ,EAAAjuD,KAAAiuD,IACApoB,EAAA7lC,KAAA6lC,IACA7sB,EAAAi1C,EAAAj1C,MACAC,EAAAg1C,EAAAh1C,OAEAooT,GADA7rJ,KAAAx1K,KAAAw1K,WACAx1K,KAAAutE,aAAA4zP,GACA1zP,EAAAztE,KAAAytE,eACA1nC,EAAA/lC,KAAA+lC,KAEAs7R,IACArhU,KAAAghU,SACAhhU,KAAAkhU,mBAGAlhU,KAAAihU,QAAA5K,yBAAA,OACAr2T,KAAAihU,QAAA/pJ,UAAAjpH,EAAA,IAAAj1C,EAAA+sB,EAAA9sB,EAAA8sB,IAGAF,EAAAkxI,UAAA,IAAA/9J,EAAAC,GAEAu8J,GAAA,gBAAAA,KAGAA,EAAAtzI,YAEAk/R,EAAA5rJ,EAAA8rJ,kBAAAzL,EAAAxI,YAAAxnR,EAAA2vI,GACAnxK,EAAA,EACAE,EAAA,EACAyU,QACAC,WAEAu8J,EAAA8rJ,iBAAAF,GAEA5rJ,EAAA1jI,QACAsvR,EAAA/mH,EAAAn6M,UAAAq6M,iBAAA7uM,KAAA8pK,EAAA3vI,IAGAA,EAAAuwI,OACAvwI,EAAA0nR,UAAA6T,GAAA5rJ,EACA3vI,EAAA07R,SAAA,IAAAvoT,EAAAC,GACA4sB,EAAA2wI,WAGA,GAAA6qJ,EAAA,CACA,IAAAL,EAAAhhU,KAAAghU,QACAn7R,EAAAuwI,OACAvwI,EAAAksR,YAAAtkP,EACA5nC,EAAAqxI,UAAA8pJ,EAAA,IAAAhoT,EAAAC,GACA4sB,EAAA2wI,aAIA,IAAAvzK,EAAAswK,EACArwK,EAAAC,QAAAF,wBCxOA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBisM,EAAiBjsM,EAAQ,QAEzBm4C,EAAiBn4C,EAAQ,QAoBzBiiU,GACAC,IAAA,yEACAC,IAAA,gEAEAC,GACAF,IAAA,6BACAC,IAAA,8BAGAz+T,EAAAG,EAAAG,qBACAC,KAAA,WAMAo+T,UAAA,KAMAC,UAAA,KAMAC,iBAAA,KAMAC,gBAAA,KACAt+T,OAAA,SAAAq5M,EAAAn5M,EAAAC,GACA,IAAAo7B,EAAAh/B,KAAAg/B,MACAA,EAAAkG,YACA,IAAA7J,EAAAyhL,EAAAzuL,iBAEA2zS,EAAA3mS,EAAA0hL,eACAjgM,EAAAue,EAAAonK,YAEAziM,KAAAiiU,eAAAnlH,EAAAklH,EAAAhjS,GAGAh/B,KAAAkiU,aAAAplH,EAAAklH,EAAAllT,EAAAkiB,GAEAh/B,KAAAmiU,gBAAArlH,EAAAklH,EAAAllT,EAAAkiB,GAEAh/B,KAAAoiU,iBAAAtlH,EAAAhgM,EAAAkiB,GAEAh/B,KAAAqiU,gBAAAvlH,EAAAklH,EAAAllT,EAAAkiB,IAGAijS,eAAA,SAAAnlH,EAAAklH,EAAAhjS,GAMA,IALA,IAAA3D,EAAAyhL,EAAAzuL,iBACAi0S,EAAAxlH,EAAAz9K,SAAA,aAAAimC,eACA5yB,EAAArX,EAAA4hL,eACArqK,EAAAvX,EAAA8hL,gBAEAp8M,EAAAihU,EAAAx/T,MAAAR,KAAsCjB,GAAAihU,EAAA9wS,IAAAlvB,KAAyBjB,EAAAs6B,EAAAoiL,YAAA18M,EAAA,GAAAiB,KAAA,CAC/D,IAAAqoC,EAAAhP,EAAAqjL,YAAA39M,IAAA,GAAA69M,GAEA12K,EAAA,IAAA1tB,EAAAyiB,MACAlV,OACA1jB,EAAAgmC,EAAA,GACA9lC,EAAA8lC,EAAA,GACArxB,MAAA05B,EACAz5B,OAAA25B,GAEAxjB,OAAA,UACA7W,MAAA+pT,IAEAtjS,EAAAC,IAAAiJ,KAIAg6R,aAAA,SAAAplH,EAAAklH,EAAAllT,EAAAkiB,GACA,IAAA7yB,EAAAnM,KACAq7B,EAAAyhL,EAAAzuL,iBACA+Q,EAAA09K,EAAAz9K,SAAA,uBAAA4D,eACA59B,EAAAy3M,EAAA94M,IAAA,kBACA+4B,EAAAqC,EAAArC,UACA/8B,KAAA4hU,aACA5hU,KAAA6hU,aACA7hU,KAAA8hU,oBACA9hU,KAAA+hU,mBAGA,IAFA,IAAA5iH,EAAA6iH,EAAAx/T,MAEAzB,EAAA,EAAmBo+M,EAAAn9M,MAAAggU,EAAA9wS,IAAAlvB,KAAqCjB,IAAA,CACxDwhU,EAAApjH,EAAA3B,cAEA,IAAAz8M,IACAo+M,EAAA9jL,EAAAkiL,YAAAykH,EAAAx/T,MAAA+B,EAAA,IAAAy9T,EAAAx/T,MAAAmqB,IAGA,IAAAu1I,EAAAi9C,EAAAj9C,KACAA,EAAAk9C,SAAAl9C,EAAA/C,WAAA,GACAggD,EAAA9jL,EAAAkiL,YAAAr7C,GAKA,SAAAqgK,EAAArgK,GACA/1J,EAAA21T,iBAAAvgU,KAAA85B,EAAAkiL,YAAAr7C,IAEA/1J,EAAA41T,gBAAAxgU,KAAA85B,EAAAqjL,YAAAx8C,IAAA,GAAA08C,IAEA,IAAAxhL,EAAAjxB,EAAAq2T,wBAAA1lH,EAAA56C,EAAAplJ,GAEA3Q,EAAAy1T,UAAArgU,KAAA67B,EAAA,IAEAjxB,EAAA01T,UAAAtgU,KAAA67B,IAAAn8B,OAAA,IAEAoE,GAAA8G,EAAAs2T,eAAArlS,EAAAgC,EAAAJ,GAbAujS,EAAAlnS,EAAAoiL,YAAAukH,EAAA9wS,IAAAlvB,KAAA,GAAAw7M,cAiBAn4M,GAAArF,KAAAyiU,eAAAt2T,EAAAu2T,gBAAAv2T,EAAAy1T,UAAA7kS,EAAAjgB,GAAAsiB,EAAAJ,GAEA35B,GAAArF,KAAAyiU,eAAAt2T,EAAAu2T,gBAAAv2T,EAAA01T,UAAA9kS,EAAAjgB,GAAAsiB,EAAAJ,IAGA0jS,gBAAA,SAAAtlS,EAAAL,EAAAjgB,GACA,IAAA6lT,GAAAvlS,EAAA,GAAA96B,QAAA86B,IAAAn8B,OAAA,GAAAqB,SACAg+B,EAAA,eAAAxjB,EAAA,IAIA,OAFA6lT,EAAA,GAAAriS,GAAAqiS,EAAA,GAAAriS,GAAAvD,EAAA,EACA4lS,EAAA,GAAAriS,GAAAqiS,EAAA,GAAAriS,GAAAvD,EAAA,EACA4lS,GAGAF,eAAA,SAAArlS,EAAAgC,EAAAJ,GACA,IAAA4jS,EAAA,IAAApoT,EAAA2f,UACAiK,GAAA,GACArc,OACAqV,UAEA7kB,MAAA6mB,IAEAJ,EAAAC,IAAA2jS,IAGAJ,wBAAA,SAAA1lH,EAAA56C,EAAAplJ,GACA,IAAAue,EAAAyhL,EAAAzuL,iBACA6zI,EAAA7mI,EAAAkiL,YAAAr7C,GAGA,IAFA,IAAA9kI,KAEAr8B,EAAA,EAAmBA,EAAA,EAAOA,IAAA,CAC1B,IAAA8hU,EAAAxnS,EAAAoiL,YAAAv7C,EAAAlgK,KAAAjB,GACAspC,EAAAhP,EAAAqjL,YAAAmkH,EAAA7gU,OAAA,GACAo7B,EAAA,EAAAylS,EAAApiK,KAAAp2H,EAAAu0K,GACAxhL,EAAA,EAAAylS,EAAApiK,IAAA,GAAAp2H,EAAA,eAAAvtB,EAAA,WAGA,OAAAsgB,GAEA0lS,gBAAA,SAAAl1T,EAAA+jB,GACA,uBAAA/jB,KACA49L,EAAAu3H,gBAAAn1T,EAAA+jB,GAGA,mBAAA/jB,EACAA,EAAA+jB,GAGAA,EAAAy+K,SAEA4yH,yBAAA,SAAAt6B,EAAAr+P,EAAAvtB,EAAA1O,EAAA87D,GACA7/B,IAAA/nC,QACA,IAAA2gU,GAAA,mBAEA,WAAA70T,GACAi8B,EAAA,IAAA6/B,EACA+4P,GAAA,iBACK,SAAA70T,EACLi8B,EAAA,IAAA6/B,EACK,UAAA97D,GACLi8B,EAAA,IAAA6/B,EACA+4P,GAAA,iBAGA54R,EAAA,IAAA6/B,EAGA,IAAAu+F,EAAA,EAMA,MAJA,SAAAr6J,GAAA,UAAAA,IACAq6J,EAAA1gK,KAAAgwB,GAAA,IAIAF,SAAA4wI,EACAr6J,SAAAi8B,EACA9xB,OACAm9B,UAAAutR,EAAA,GACAttR,kBAAAstR,EAAA,MAKAd,gBAAA,SAAArlH,EAAAklH,EAAAllT,EAAAkiB,GACA,IAAAkkS,EAAApmH,EAAAz9K,SAAA,aAEA,GAAA6jS,EAAAl/T,IAAA,SAIA,IAAAkmE,EAAAg5P,EAAAl/T,IAAA,UACA0tB,EAAAwxS,EAAAl/T,IAAA,YAEA0tB,IACAA,EAAA,eAAA5U,EAAA,cAGA,IAAAsgB,GAAAp9B,KAAA4hU,UAAA5hU,KAAA4hU,UAAA3gU,OAAA,GAAAjB,KAAA6hU,UAAA,IACAsB,GAAA/lS,EAAA,MAAAA,EAAA,SACAgmS,GAAAhmS,EAAA,MAAAA,EAAA,SACAkD,EAAA,eAAAxjB,EAAA,IACAumT,GACArxT,KAAAmxT,EAAA/lS,EAAAkD,GAAA,IACAxrB,QAAAquT,EAAA/lS,EAAA,EAAAkD,GAAA,IACAz6B,MAAAu3B,EAAA,EAAAkD,GAAA,GAAA8iS,GACAt9T,OAAAs3B,EAAAkD,GAAA,GAAA8iS,IAEAxgU,EAAAo/T,EAAAx/T,MAAA+B,GAEAy9T,EAAA9wS,IAAA3sB,GAAAy9T,EAAAx/T,MAAA+B,IACA3B,IAAA,IAAAo/T,EAAA9wS,IAAA3sB,GAGA,IAAAqJ,EAAAs1T,EAAAl/T,IAAA,aACA2tB,GACAnvB,MAAAw/T,EAAAx/T,MAAA+B,EACA2sB,IAAA8wS,EAAA9wS,IAAA3sB,EACA6rM,QAAAxtM,GAGAw9C,EAAApgD,KAAA8iU,gBAAAl1T,EAAA+jB,GAEA2xS,EAAA,IAAA9oT,EAAA0wB,MACA9G,GAAA,KAEA5pB,EAAA2/L,aAAAmpH,EAAA/qT,MAAA2qT,GACA7xR,KAAA+O,IACKkjR,EAAAvgU,KAAA/C,KAAAgjU,yBAAAM,EAAAD,EAAA3xS,GAAA5U,EAAA4U,EAAAw4C,IACLlrC,EAAAC,IAAAqkS,KAEAC,0BAAA,SAAAl5R,EAAAm5R,EAAA1mT,EAAA1O,EAAA87D,GACA,IAAAvxC,EAAA,OACAuyR,EAAA,MACA7mT,EAAAgmC,EAAA,GACA9lC,EAAA8lC,EAAA,GAwBA,MAtBA,eAAAvtB,GACAvY,GAAA2lE,EAEAs5P,IACA7qS,EAAA,UAGA,UAAAvqB,IACA88S,EAAA,YAGA7mT,GAAA6lE,EAEAs5P,IACAtY,EAAA,UAGA,UAAA98S,IACAuqB,EAAA,WAKAt0B,IACAE,IACAmxC,UAAA/c,EACAgd,kBAAAu1Q,IAIAkX,iBAAA,SAAAtlH,EAAAhgM,EAAAkiB,GACA,IAAAykS,EAAA3mH,EAAAz9K,SAAA,cAEA,GAAAokS,EAAAz/T,IAAA,SAIA,IAAAosM,EAAAqzH,EAAAz/T,IAAA,WACAkmE,EAAAu5P,EAAAz/T,IAAA,UACA0tB,EAAA+xS,EAAAz/T,IAAA,YACA20B,EAAA8qS,EAAAz/T,IAAA,SACA0/T,GAAA1jU,KAAA4hU,UAAA5hU,KAAA6hU,WAEAhoS,EAAAn6B,SAAA0wM,KACAA,EAAAoxH,EAAApxH,EAAAp+J,oBAGA,IAAA1R,EAAA,UAAA5O,EAAA,IACA+D,EAAA,eAAA3Y,EAAA,IACAotD,EAAA,UAAAx4C,GAAAw4C,IAGA,IAFA,IAAAs5P,EAAA,WAAA7qS,EAEA53B,EAAA,EAAmBA,EAAA2iU,EAAApjS,GAAAr/B,OAAA,EAAgCF,IAAA,CACnD,IAAA2uE,EAAAg0P,EAAApjS,GAAAv/B,GAAAuB,QACA68M,EAAAn/M,KAAA8hU,iBAAA/gU,GAEA,GAAAyiU,EAAA,CACA,IAAAG,EAAA3jU,KAAA+hU,gBAAAhhU,GACA2uE,EAAAj6C,IAAAkuS,EAAAluS,GAAAiuS,EAAA,GAAA3iU,EAAA,GAAA00B,IAAA,EAGA,IAAA7nB,EAAA61T,EAAAz/T,IAAA,aACApB,EAAAwtM,GAAA+O,EAAAxyL,EAAA,GACAgF,GACA8tI,KAAA0/C,EAAA56M,EACAg7J,IAAA4/C,EAAA56M,EAAA,IAAAjC,MAAA,GACA88J,GAAA+/C,EAAAxyL,EACAqjB,GAAAmvK,EAAAxyL,EACAyjL,QAAAxtM,GAGAw9C,EAAApgD,KAAA8iU,gBAAAl1T,EAAA+jB,GAEAiyS,EAAA,IAAAppT,EAAA0wB,MACA9G,GAAA,KAEAvK,EAAAnwB,OAAA8Q,EAAA2/L,aAAAypH,EAAArrT,MAAAkrT,GACApyR,KAAA+O,IACOpgD,KAAAujU,0BAAA7zP,EAAA8zP,EAAA1mT,EAAA4U,EAAAw4C,IACPlrC,EAAAC,IAAA2kS,MAGAC,yBAAA,SAAAx5R,EAAAvtB,EAAA1O,EAAA87D,EAAA8zI,GACA,IAAArlL,EAAA,SACAuyR,EAAA,SACA7mT,EAAAgmC,EAAA,GACA9lC,EAAA8lC,EAAA,GACAy5R,EAAA,UAAA11T,EAUA,MARA,eAAA0O,GACAzY,IAAA6lE,GAAA45P,EAAA,MAAA9lH,EAAA,KACArlL,EAAAmrS,EAAA,iBAEAv/T,IAAA2lE,GAAA45P,EAAA,MAAA9lH,EAAA,KACAktG,EAAA4Y,EAAA,iBAIAz/T,IACAE,IACAmxC,UAAA/c,EACAgd,kBAAAu1Q,IAIAmX,gBAAA,SAAAvlH,EAAAklH,EAAAllT,EAAAkiB,GACA,IAAA+kS,EAAAjnH,EAAAz9K,SAAA,YAEA,GAAA0kS,EAAA//T,IAAA,SAIA,IAAAq3B,EAAAyhL,EAAAzuL,iBACAqD,EAAAqyS,EAAA//T,IAAA,YACAosM,EAAA2zH,EAAA//T,IAAA,WACAkmE,EAAA65P,EAAA//T,IAAA,UACAggU,EAAA3oS,EAAAgiL,oBAEAxjL,EAAAn6B,SAAA0wM,KACAA,EAAAuxH,EAAAvxH,EAAAp+J,oBAGA,IAAAxvC,EAAA64B,EAAAoiL,YAAAukH,EAAA9wS,IAAAlvB,KAAA,EAAAggU,EAAAriH,OAAA39M,KACAg8M,GAAA3iL,EAAA4hL,eAAA5hL,EAAA8hL,iBACAjzI,EAAAxyB,EAAAhL,aAAAw9B,EAAA8zI,EAAA,eAAAlhM,EAAA,MAEA,UAAA4U,IACAlvB,EAAA64B,EAAAoiL,YAAAukH,EAAAx/T,MAAAR,OAAA,EAAAggU,EAAAtiH,QAAA19M,KACAkoE,MAGA,QAAAnpE,EAAA,EAAmBA,EAAA,EAAOA,IAAA,CAC1B,IAEA0/J,EAFAoiK,EAAAxnS,EAAAoiL,YAAAj7M,EAAAzB,GACAspC,EAAAhP,EAAAqjL,YAAAmkH,EAAA7gU,OAAA,GAAA8hB,OAEA28I,EAAA14J,KAAAY,KAAA5H,EAAAijU,GAAA,GACA,IAAAC,EAAA,IAAAzpT,EAAA0wB,MACA9G,GAAA,KAEAvK,EAAAnwB,OAAA8Q,EAAA2/L,aAAA8pH,EAAA1rT,MAAAwrT,GACA1yR,KAAA++J,EAAA3vC,KACOzgK,KAAA6jU,yBAAAx5R,EAAAvtB,EAAA4U,EAAAw4C,EAAA8zI,IACPh/K,EAAAC,IAAAglS,QAKA/gU,EAAAC,QAAAF,wBC9aA,IAAA42B,EAAat6B,EAAQ,QAoBrB,SAAA26C,EAAAC,EAAAC,GAEA,OADAA,MAAA,KACAvgB,EAAAlpB,KAAA,cAAA0pC,GACA,IAAA9sC,EAAA6sC,EAAAC,GACAC,EAAAH,EAAAE,GAAA,EACAzf,KACAC,KAIA,OAHAD,EAAAyf,GAAA9sC,EAAA+sC,EACAzf,EAAAwf,GAAA9sC,EAAA+sC,EACA1f,EAAA,EAAAyf,GAAAxf,EAAA,EAAAwf,GAAAD,EAAA,EAAAC,GACAtyC,KAAAY,IAAA3I,KAAAiqC,YAAArP,GAAAyf,GAAAr6C,KAAAiqC,YAAApP,GAAAwf,KACGr6C,MAyBHkD,EAAAC,QAtBA,SAAAk4B,GACA,IAAA6M,EAAA7M,EAAAyM,kBACA,OACAzM,UACA73B,KAAA,MACAa,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACAyU,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,QAEArV,KACAw+B,MAAA,SAAAtxB,GAIA,OAAAuqB,EAAA4O,YAAAn5B,IAEA+gB,KAAAgI,EAAArvB,KAAA0vC,EAAA7e,4BCnDA,IAAAj4B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBsrC,EAAkBtrC,EAAQ,QAE1BkuN,EAAqBluN,EAAQ,QAE7Bib,EAAcjb,EAAQ,QAEtBolL,EAAYplL,EAAQ,QAEpBgsE,EAAiBhsE,EAAQ,QAEzB2kU,EAA0B3kU,EAAQ,QAoBlC0D,EAAAG,EAAAG,qBACAC,KAAA,UACAC,OAAA,SAAA0gU,EAAAxgU,EAAAC,EAAAggC,GACA,IAAA5E,EAAAh/B,KAAAg/B,MAGA,GAFAA,EAAAkG,YAEAi/R,EAAAngU,IAAA,SAIA,IAAAoxJ,GAAA+uK,EAAAngU,IAAA,YACAogU,EAAAD,EAAAngU,IAAA,eACA+5D,EAAA/9D,KAAAqkU,YAAArkU,KAAAqkU,cACAC,KACAzqS,EAAA4E,KAAA2lS,EAAA,SAAAxrS,EAAAh2B,GACA0hU,EAAA/iU,KAAAqB,KAEA,IAAA2oE,EAAAvrE,KAAAukU,kBAAAD,GAAArlS,IAAAulS,GAAAjoR,OAAAioR,GAAA//T,OAAAo1B,EAAA0Q,MAAAi6R,EAAA,OAAAr9P,UAEAnnE,KAAAukU,cAAAD,EAiIAJ,EAAA5sS,OAAA0H,EAAAmlS,EAAAvgU,GAGAo7B,EAAAC,IAAAilS,EAAAv4H,eAAA3sK,EAAA8I,kBAAAq8R,IAEAnlS,EAAAgoC,UAAA,SAAAwM,GACA,IAAAixP,EAAAjxP,EAAAkxP,QACAn/P,EAAAiO,EAAAjO,WAEA,GAAAA,GAAAk/P,EAAA,CACA,IAAAv8R,EAAA2C,EAAA/C,gBAAA28R,EAAA55R,EAAA23P,SAAAj9N,IACAjhE,EAAAkvE,EAAAplE,SAAA,GAAA4wB,EAAA5wB,SAAA,GAEAu2T,GAAA,EADAnxP,EAAAplE,SAAA,GAAA4wB,EAAA5wB,SAAA,GAAAgnJ,EAGAltH,EAAAjvB,OAAArV,EAAAmuD,cACAwT,EAAAnvB,aAAA,MACAuuR,GAAA,GAGA,IAAAC,EAAAD,GAAA,EAAAz8R,EAAAjvB,OAAAm8I,EAAA,EAEA9wJ,EAAA4jC,EAAAlvB,MAAA,EAAApV,EAAAkuD,YACAyT,EAAAnvB,cAAA,OAAAwuR,GACAr/P,EAAA7vB,UAAA,SACSpxC,EAAA4jC,EAAAlvB,MAAA,MACTusD,EAAAnvB,cAAA,EAAAwuR,GACAr/P,EAAA7vB,UAAA,WA1JA,SAAA8uR,EAAAK,EAAAC,GACA,IAIAz0I,EAJA+1G,EAAAk+B,EAAAO,GACAE,EAAAT,EAAAQ,GACAx0I,EAAA8zI,EAAAh+B,GACAr4E,EAAA,IAAAppC,EAAA2L,EAAA6zI,IAAAxgU,SAGA,GAAAyiS,IAAA2+B,EAAA,CAEA,GA6KA,SAAA3+B,GACA,WAAAA,EAAAtmS,QAAA,MA9KAklU,CAAA5+B,GACA/1G,GACA94J,MAAAw2L,EACAW,QAAAX,EAAA9wM,OAAAyxM,QACA03E,mBAES,CACT,IAAAC,EAAA54E,EAAAzpN,IAAAoiS,GAEA,IAAAC,EACA,OAGAh2G,EAAA,IAAAg2G,EAAAt4E,EAAApqN,EAAAC,GAGAm6D,EAAAqoO,GAAA/1G,MACO,CAGP,KAFAA,EAAAtyH,EAAAgnQ,IAGA,OAGA10I,EAAA94J,MAAAw2L,EACA19B,EAAA1sL,UACA0sL,EAAAzsL,MAGAwiS,IAAA2+B,EAKAh3G,EAAA/pN,IAAA,UAAAqsL,EAAA40I,WAqBA,SAAAl3G,EAAA19B,EAAA+1G,GACA,IAAA8+B,EAAAn3G,EAAA1uL,SAAA,aACA8lS,EAAAp3G,EAAA1uL,SAAA,sBAYA+lS,EAAA/0I,EAAAg1I,SAAAh1I,EAAAg1I,WAAAt3G,EAAA/pN,IAAA,QACAshU,EAAAv3G,EAAA/pN,IAAA,aAEA,oBAAAohU,EAAA,CACA,IAAA5xP,EAAA4xP,EACAlrT,EAAAorT,EAEAA,MADAF,MAEAh/B,GAAA5yN,EACA8xP,EAAAl/B,GAAAlsR,EAGA,IAAAqrT,EAAAx3G,EAAAw3G,aACA1rS,EAAA4E,KAAA2mS,EAAA,SAAAI,EAAAC,GACA,IAAAplU,EAAAma,EAAA46Q,WAAAowC,MACAnhU,GAAA+wJ,EAAA,EACA7wJ,GAAA6wJ,EAAA,EACAp8I,MAAAo8I,EACAn8I,OAAAm8I,IAEA/0J,EAAAi8C,SAAA4oR,EAAA5/P,gBACAjlE,EAAAklE,WAAA4/P,EAAA7/P,eACA9qD,EAAAmrD,cAAAtlE,GAEA8jU,EAAAngU,IAAA,eACA3D,EAAAqkU,QAAAY,EAAAG,GACAplU,EAAAqf,GAAA,uBAEA,IAAA6lD,EAAA4/P,EAAA7/P,eACAjlE,EAAAi8C,UACAjL,KAAAi0R,EAAAG,GACArvR,aAAAmvB,EAAAnvB,cAAA,SACAkB,SAAAiuB,EAAA7tD,MAAA6tD,EAAAriC,QAAA,OACAwS,UAAA6vB,EAAA7vB,WAAA,aAEWh2B,GAAA,sBACXrf,EAAAi8C,UACAhF,SAAA,UAKAj3C,EAAA4R,QAAA87M,EAAA/pN,IAAA,cAAAyhU,IAAA,UACAzmS,EAAAC,IAAA5+B,GACAA,EAAAqf,GAAA,QAAAma,EAAArvB,KAAA6lL,EAAAq+B,QAAAr+B,EAAA1sL,EAAAC,EAAA6hU,IACAF,EAAAE,GAAAplU,IA3EAqlU,CAAA33G,EAAA19B,EAAA+1G,GAEAr4E,EAAAG,cAAA,SAAAu3G,EAAAxvT,GACA,IAAAgH,EAAAjd,KAAAid,OACAsoT,EAAAvlU,KAAAulU,UACAtoT,EAAA0oT,WAAA1oT,EAAA0oT,eACA1oT,EAAA0oT,WAAAF,GAAAxvT,EAEAsvT,EAAAE,IAAAF,EAAAE,GAAAxzT,QAAAgE,IAGAo6K,EAAA5sL,QACA4sL,EAAA5sL,OAAAsqN,EAAApqN,EAAAC,EAAAggC,IAhBAysJ,EAAA5rL,QAAA4rL,EAAA5rL,OAAAd,EAAAC,GALAysL,EAAAtrL,SAAAsrL,EAAAtrL,QAAApB,EAAAC,KAwHAyxD,WAAA,SAAA8uQ,EAAAxgU,EAAAC,EAAAggC,GACA/J,EAAA4E,KAAAz+B,KAAAqkU,UAAA,SAAAh0I,GACAA,EAAAh7H,YAAAg7H,EAAAh7H,WAAAg7H,EAAA94J,MAAA5zB,EAAAC,EAAAggC,MAQAn/B,OAAA,SAAAd,EAAAC,GACAi2B,EAAA4E,KAAAz+B,KAAAqkU,UAAA,SAAAh0I,GACAA,EAAA5rL,QAAA4rL,EAAA5rL,OAAAd,EAAAC,KAEA5D,KAAAg/B,MAAAkG,aAEAngC,QAAA,SAAApB,EAAAC,GACAi2B,EAAA4E,KAAAz+B,KAAAqkU,UAAA,SAAAh0I,GACAA,EAAAtrL,SAAAsrL,EAAAtrL,QAAApB,EAAAC,QASAV,EAAAC,QAAAF,wBCjPA,IAAAG,EAAc7D,EAAQ,QAEtBmvT,EAAmBnvT,EAAQ,QAE3BA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAwBR6D,EAAAg4D,qBAAAszP,yBCpCA,IAAAjX,EAAal4S,EAAQ,OAARA,CAAmB,QAChC21D,EAAU31D,EAAQ,QAClB2D,EAAAC,QAAA,SAAA4G,GACA,OAAA0tS,EAAA1tS,KAAA0tS,EAAA1tS,GAAAmrD,EAAAnrD,2BCHA,IAAA8vB,EAAat6B,EAAQ,QAiCrB2D,EAAAC,QAbA,SAAA8Z,GAEA,IAAA6yL,KACAj2K,EAAA4E,KAAAxhB,EAAA3K,OAAA,SAAA88K,GACAA,GAAA,QAAAA,EAAA5rL,OACAssM,EAAAvuM,KAAA6tL,GACAA,EAAAz+K,IAAAy+K,EAAAz+K,KAAAy+K,EAAA7kK,QAEAsP,EAAAmJ,SAAAosJ,IAAAw2I,qCCkBA,IAGAC,EAAAC,EAAAC,EAAAC,EAAAC,EAGAC,EAGAC,EAAAC,EAAAC,EAAAC,EAGAC,EAGAC,EAAAC,EAAAC,EAEAC,EAjBAC,GAAA,EAmBA,SAAAC,IACA,IAAAD,EAAA,CAIAA,GAAA,EAOA,IAAAE,EAAAjoR,UAAAC,UACA+0L,EAAA,iLAAA1xJ,KAAA2kP,GACAlhD,EAAA,+BAAAzjM,KAAA2kP,GAeA,GAbAN,EAAA,qBAAArkP,KAAA2kP,GACAL,EAAA,cAAAtkP,KAAA2kP,GACAR,EAAA,WAAAnkP,KAAA2kP,GACAJ,EAAA,cAAuBvkP,KAAA2kP,GACvBH,EAAA,UAAAxkP,KAAA2kP,GAOAP,IAAA,QAAApkP,KAAA2kP,GAEAjzF,EAAA,EACAgyF,EAAAhyF,EAAA,GAAAruN,WAAAquN,EAAA,IACAA,EAAA,GAAAruN,WAAAquN,EAAA,IAAAplE,MAEA5+J,mBAAAwuS,eACAwnB,EAAAh2T,SAAAwuS,cAGA,IAAA0oB,EAAA,yBAAA5kP,KAAA2kP,GACAZ,EAAAa,EAAAvhT,WAAAuhT,EAAA,MAAAlB,EAEAC,EAAAjyF,EAAA,GAAAruN,WAAAquN,EAAA,IAAAplE,IACAs3J,EAAAlyF,EAAA,GAAAruN,WAAAquN,EAAA,IAAAplE,KACAu3J,EAAAnyF,EAAA,GAAAruN,WAAAquN,EAAA,IAAAplE,MAKAolE,EAAA,yBAAA1xJ,KAAA2kP,GACAb,EAAApyF,KAAA,GAAAruN,WAAAquN,EAAA,IAAAplE,KAEAw3J,EAAAx3J,SAGAo3J,EAAAC,EAAAC,EAAAE,EAAAD,EAAAv3J,IAGA,GAAAm3G,EAAA,CACA,GAAAA,EAAA,IAMA,IAAAohD,EAAA,iCAAA7kP,KAAA2kP,GAEAX,GAAAa,GAAAxhT,WAAAwhT,EAAA,GAAAz+T,QAAA,eAEA49T,GAAA,EAEAC,IAAAxgD,EAAA,GACAygD,IAAAzgD,EAAA,QAEAugD,EAAAC,EAAAC,GAAA,GAIA,IAAA5rF,GAQAqrC,GAAA,WACA,OAAA+gD,KAAAhB,GASAoB,oBAAA,WACA,OAAAJ,KAAAX,EAAAL,GASAqB,KAAA,WACA,OAAAzsF,EAAAqrC,MAAAygD,GASAn1I,QAAA,WACA,OAAAy1I,KAAAf,GAUAqB,MAAA,WACA,OAAAN,KAAAd,GAUAqB,OAAA,WACA,OAAAP,KAAAb,GAOAqB,OAAA,WACA,OAAA5sF,EAAA2sF,UASAE,OAAA,WACA,OAAAT,KAAAZ,GASAsB,QAAA,WACA,OAAAV,KAAAT,GAUAoB,IAAA,WACA,OAAAX,KAAAV,GAQAsB,MAAA,WACA,OAAAZ,KAAAR,GASAqB,OAAA,WACA,OAAAb,KAAAL,GAGAmB,OAAA,WACA,OAAAd,KAAAL,GAAAC,GAAAH,GAAAK,GAGAiB,UAAA,WAEA,OAAAf,KAAAH,GAGAmB,QAAA,WACA,OAAAhB,KAAAP,GAGAwB,KAAA,WACA,OAAAjB,KAAAJ,IAIAvjU,EAAAC,QAAAs3O,wBCzRA,IAAA5gN,EAAat6B,EAAQ,QAErB2sD,EAAqB3sD,EAAQ,QAE7B2wE,EAAuB3wE,EAAQ,QAE/B4wE,EAA2B5wE,EAAQ,QAoBnC6wE,EAAAlkB,EAAAxiD,QACAlG,KAAA,aACAqxL,WAAA,MAKAp/J,KAAA,KAKApH,iBAAA,KAKAo6C,iBAAA,WACA,OAAAzoE,QAgDA65B,EAAA82C,MAAAP,EAAAlwE,UAAAiwE,GACAD,EAAA,SAAAE,EALA,SAAAQ,EAAA3zD,GACA,OAAAA,EAAAzZ,OAAAyZ,EAAAnM,KAAA,sBAzCAjL,KAAA,KACAmM,IAAA,KACAlM,MAAA,KACAgP,OAAA,KACAtR,KAAA,QACA4K,SAAA,SACA0O,OAAA,aACA1X,UACAC,MAAA,EACAub,WACA5H,MAAA,EACAxV,KAAA,UAMAuS,SACA1Q,MAAA,GAEAC,UACAD,MAAA,EACApE,OAAA,EACA2f,WACA5H,MAAA,IAGA9H,WACA7L,MAAA,EACAq0C,SAAA,QAEAn0C,WACAF,MAAA,EACAub,WACApd,KAAA,SACAqP,QAAA,OAWA,IAAA5P,EAAAmtE,EACAltE,EAAAC,QAAAF,wBC/FA,IAAAxD,EAAYF,EAAQ,QAEpByoE,EAAAvoE,EAAAuoE,SACAhlC,EAAAvjC,EAAAujC,SACAt5B,EAAAjK,EAAAiK,OACA+0B,EAAAh/B,EAAAg/B,KAEA+sK,EAAiBjsM,EAAQ,QAEzBib,EAAcjb,EAAQ,QAEtBolL,EAAYplL,EAAQ,QAEpB23R,EAAc33R,EAAQ,QAEtBwoU,EAAA7wC,EAAA6wC,mBACAC,EAAA9wC,EAAA8wC,UAIAv1I,EAFclzL,EAAQ,QAEtBkzL,aAEAw1I,EAAiB1oU,EAAQ,QAIzBwnC,EAFcxnC,EAAQ,QAEtBynC,eAoBAjP,EAAAhwB,KAAAgwB,GAEA,SAAAmwS,EAAA7xS,GACA,IAAAmkC,GACA5H,cAAAv8B,EAAAi5B,UAGA,OADAkL,EAAAnkC,EAAAi5B,SAAA,SAAAj5B,EAAA6hC,eACAsC,EA0CA,IAAAo2F,EAAA,SAAAv6H,EAAAuC,GAIA54B,KAAA44B,MAKA54B,KAAAq2B,YAEA2M,EAAApK,GACAuvS,YAAA,EACA5/J,cAAA,EACAD,cAAA,EACAxwI,eAAA,EACAqM,QAAA,IAMAnkC,KAAAg/B,MAAA,IAAAxkB,EAAAskB,MAEA,IAAAspS,EAAA,IAAA5tT,EAAAskB,OACA1wB,SAAAwqB,EAAAxqB,SAAA9L,QACAu1B,SAAAe,EAAAf,WAIAuwS,EAAA5+R,kBACAxpC,KAAAqoU,WAAAD,EAAAnwS,UACAj4B,KAAAsoU,WAAAF,GAGAx3K,EAAA1wJ,WACAC,YAAAywJ,EACA23K,WAAA,SAAA3lU,GACA,QAAA4lU,EAAA5lU,IAEAq8B,IAAA,SAAAr8B,GACA4lU,EAAA5lU,GAAA8I,KAAA1L,OAEA6xJ,SAAA,WACA,OAAA7xJ,KAAAg/B,QAGA,IAAAwpS,GAIApjU,SAAA,WACA,IAAAwzB,EAAA54B,KAAA44B,IACAvC,EAAAr2B,KAAAq2B,UAEA,GAAAA,EAAAryB,IAAA,kBAIA,IAAAg3B,EAAAh7B,KAAAq2B,UAAAZ,KAAAqG,YACA8K,EAAA5mC,KAAAqoU,WACAI,GAAAztS,EAAA,MACA0tS,GAAA1tS,EAAA,MAEA4L,IACAG,EAAA0hS,IAAA7hS,GACAG,EAAA2hS,IAAA9hS,IAGA,IAAAhmB,EAAAlX,GACA48Q,QAAA,SACKjwP,EAAAgJ,SAAA,sBAAA4D,gBACLjjC,KAAAg/B,MAAAC,IAAA,IAAAzkB,EAAAqyD,KAAAryD,EAAAwe,sBAEAs+K,KAAA,OACAvvL,OACA0oB,GAAAg4R,EAAA,GACA/3R,GAAA+3R,EAAA,GACA56R,GAAA66R,EAAA,GACA56R,GAAA46R,EAAA,IAEAnwT,MAAAqI,EACA+wI,uBAAA/4H,EAAA+4H,wBAAA,EACAxtH,QAAA,EACAC,GAAA,MAEA,IAAAukS,EAAAtyS,EAAAryB,IAAA,mBACA8/C,EAAAztB,EAAAryB,IAAA,uBACAs3C,EAAAjlB,EAAAryB,IAAA,4BAMA,GAJA,iBAAAs3C,IACAA,SAGA,MAAAqtR,EAAA,CACA,iBAAAA,IAEAA,SAGA,iBAAA7kR,GAAA,iBAAAA,IAEAA,SAGA,IAAA8kR,EAAA9kR,EAAA,GACA+kR,EAAA/kR,EAAA,GACArlB,IACAgqI,OAAA7vI,EAAAf,SAAA9vB,KAAAgwB,GAAA,EACA2K,OAAA4Y,EAAA,GACA7jC,EAAA,IAEAgxJ,OAAA7vI,EAAAf,SAAA9vB,KAAAgwB,GAAA,EACA2K,OAAA4Y,EAAA,GACA7jC,EAAA1P,KAAAyjC,MAAAi9R,EAAA,GAAAC,EAAA,KAAAD,EAAA,GAAAC,EAAA,KAAAD,EAAA,GAAAC,EAAA,KAAAD,EAAA,GAAAC,EAAA,OACO,SAAAr+R,EAAAz9B,GACP,YAAA+7T,EAAA/7T,IAAA,MAAA+7T,EAAA/7T,GAAA,CACA,IAAAoiB,EAAAyjK,EAAAk2I,EAAA/7T,IAAAg8T,EAAA,GAAAC,EAAA,EAAAD,EAAAC,EAAAjoT,EAAAsiB,QAAA,GAEAzrB,EAAA4yB,EAAA5yB,EAAA4yB,EAAA3H,OACAhR,GAAA+2S,EAAA,GAAAhxT,EAAA1P,KAAA0jC,IAAA7S,EAAAf,UAAA4wS,EAAA,GAAAhxT,EAAA1P,KAAA2jC,IAAA9S,EAAAf,WACA7I,EAAAjsB,MACA80B,SAAAwS,EAAAo+H,OACAr6J,SAAAsjB,EACAyS,QAAA,IAEAnkC,KAAAg/B,MAAAC,IAAAjQ,KAEOhvB,SAOP8oU,cAAA,WACA,IAAAzyS,EAAAr2B,KAAAq2B,UACAuC,EAAA54B,KAAA44B,IACAmwS,EAiQA,SAAAn3K,EAAAv7H,EAAAuC,GACA,IAAAnD,EAAAY,EAAAZ,KAEA,IAAAY,EAAAryB,IAAA,kBAAAyxB,EAAAlkB,MAAAihK,UACA,OAYA,IATA,IAAA2+B,EAAA96K,EAAAgJ,SAAA,YACAD,EAAA+xK,EAAA9xK,SAAA,aACA8oQ,EAAAh3F,EAAAntM,IAAA,UACAitM,EAAAx7K,EAAAy7K,iBACAu3H,KACAC,KACA9hS,EAAAgrH,EAAAy2K,WACAU,KAEAhoU,EAAA,EAAiBA,EAAAkwM,EAAAhwM,OAAwBF,IAAA,CACzC,IAAAqwM,EAAAH,EAAAlwM,GAAAqhC,MACAqmS,EAAA,GAAAr3H,EACAq3H,EAAA,KACAC,EAAA,GAAAt3H,EACAs3H,EAAA,GAAA9vS,EAAA0vI,cAAA6/H,EAEAvhQ,IACAG,EAAA0hS,IAAA7hS,GACAG,EAAA2hS,IAAA9hS,IAIA,IAAAoiS,EAAA,IAAAxuT,EAAAqyD,KAAAryD,EAAAwe,sBAEAs+K,KAAA,QAAArG,EAAAlwM,GAAA69B,UACA7W,OACA0oB,GAAAg4R,EAAA,GACA/3R,GAAA+3R,EAAA,GACA56R,GAAA66R,EAAA,GACA56R,GAAA46R,EAAA,IAEAnwT,MAAAyqB,EAAA5D,EAAA6D,gBACAC,OAAA7M,EAAAryB,IAAA,8BAEAogC,GAAA,EACAD,QAAA,KAEAytH,EAAA5yH,MAAAC,IAAA+pS,GACAD,EAAAxnU,KAAAynU,GAGA,OAAAD,EAjTAE,CAAAjpU,KAAAq2B,EAAAuC,IAyLA,SAAAvC,EAAA6yS,EAAAH,GAIA,IAAA1K,EAAAhoS,EAAAryB,IAAA,0BACAs6T,EAAAjoS,EAAAryB,IAAA,0BAGAklU,QACAH,QACA,IAAAI,EAAAD,EAAA,GACAE,EAAAF,EAAA,GACAG,EAAAH,IAAAjoU,OAAA,GACAqoU,EAAAJ,IAAAjoU,OAAA,GACAsoU,EAAAR,EAAA,GACAlwP,EAAAkwP,EAAA,GACAS,EAAAT,IAAA9nU,OAAA,GACAwoU,EAAAV,IAAA9nU,OAAA,IAEA,IAAAo9T,GACAqL,EAAAP,GACAO,EAAAH,IACGI,EAAAR,EAAAC,KACH/K,GACAqL,EAAAN,GACAM,EAAA7wP,KAEA6wP,EAAAP,GACAO,EAAAH,MAIA,IAAAjL,GACAoL,EAAAL,GACAK,EAAAF,IACGG,EAAAL,EAAAD,KACH/K,GACAoL,EAAAJ,GACAI,EAAAD,KAEAC,EAAAL,GACAK,EAAAF,KAhOAI,CAAAvzS,EAkTA,SAAAu7H,EAAAv7H,EAAAuC,GACA,IAAAnD,EAAAY,EAAAZ,KAGA,IAFAuyC,EAAApvC,EAAA+0Q,cAAAt3Q,EAAAryB,IAAA,oBAEAyxB,EAAAlkB,MAAAihK,UACA,OAGA,IAAAzsG,EAAA1vC,EAAAgJ,SAAA,aACA1H,EAAAouC,EAAA/hE,IAAA,UACA+jS,EAAAtyQ,EAAAiJ,gBAEA8pI,GAAAxgG,EAAApvC,EAAAixS,YAAA9jQ,EAAA/hE,IAAA,eAAA+zB,EAAA,IACA8tC,EAAAikQ,EAAAlxS,EAAAf,SAAA2wI,EAAA5vI,EAAAd,gBACAwwQ,EAAAjyQ,EAAA26I,eAAA,GACAk4J,KACA/kS,EAAAq7R,EAAAnpS,GACAyrK,EAAAzrK,EAAAryB,IAAA,gBAkDA,OAjDAy6B,EAAAspQ,EAAA,SAAAppQ,EAAA/xB,GACA,IAAAgyB,EAAAD,EAAAC,UACA+pQ,EAAAhqQ,EAAAgqQ,eACAohC,EAAAprS,EAAAorS,SACAC,EAAAjkQ,EAEAuiO,KAAA1pQ,IAAA0pQ,EAAA1pQ,GAAAlkB,YACAsvT,EAAA,IAAArlJ,EAAA2jH,EAAA1pQ,GAAAlkB,UAAAqrD,EAAA1vC,EAAA1yB,UAGA,IAAAwiR,EAAA6jD,EAAAv0K,gBAAAp/H,EAAAryB,IAAA,4BAEA0tB,GADA+D,EAAAqB,YAAA8H,GACAhG,EAAAuvS,YAAAvvS,EAAAd,eAAAH,GACA+wQ,EAAA,IAAAluR,EAAA0wB,MAEAosK,KAAA,SAAA14K,EACAxwB,SAAAsjB,EACAmG,SAAAguC,EAAAhuC,SACAsM,SACAC,GAAA,KAEA5pB,EAAA2/L,aAAAuuF,EAAAnwR,MAAAyxT,GACA34R,KAAAs3P,EACAjzP,UAAAs0R,EAAA3kQ,WAAA,aAAAQ,EAAAnwB,UACAC,kBAAAq0R,EAAA3kQ,WAAA,qBAAA2kQ,EAAA3kQ,WAAA,gBAAAQ,EAAAlwB,kBACA2B,SAAA,mBAAA6uO,IAOA,aAAA1wP,EAAAjyB,KAAAumU,EAAA,UAAAt0S,EAAAjyB,KAAAo7B,EAAA,GAAAA,EAAAhyB,GAAAu5Q,IAGArkF,IACA4mG,EAAAluO,UAAA0tQ,EAAA7xS,GACAqyQ,EAAAluO,UAAAyvQ,WAAA,YACAvhC,EAAAluO,UAAAjzD,MAAAwiU,GAIAn4K,EAAA02K,WAAArpS,IAAAypQ,GAEAA,EAAAl/P,kBACA0/R,EAAA3nU,KAAAmnS,GACA92I,EAAA5yH,MAAAC,IAAAypQ,GACAA,EAAArgQ,uBAEA6gS,EAtXAgB,CAAAlqU,KAAAq2B,EAAAuC,GACAmwS,IAMAn4P,SAAA,WACA,IAAAh4C,EAAA54B,KAAA44B,IACAvC,EAAAr2B,KAAAq2B,UACAzzB,EAAAolE,EAAApvC,EAAAg4C,SAAAv6C,EAAAryB,IAAA,SAEA,GAAApB,EAAA,CAIA,IASAijE,EAOA6nO,EAhBA98R,EAAAylB,EAAAryB,IAAA,gBACAukK,EAAA3vI,EAAA2vI,cACAhT,EAAAl/H,EAAAgJ,SAAA,iBACAymI,EAAAzvI,EAAAryB,IAAA,cACAg3B,EAAAh7B,KAAAq2B,UAAAZ,KAAAqG,YACAquS,EAAAnvS,EAAA,GAAAA,EAAA,QACAtJ,GAAA,UAAA9gB,EAAAoqB,EAAA,GAAAmvS,EAAArkK,EAAA,QAAAl1J,EAAAoqB,EAAA,GAAAmvS,EAAArkK,GAAA9qI,EAAA,GAAAA,EAAA,MAEAovS,EAAAx5T,GAAAgoB,EAAAuvS,YAAA5/J,EAAAzC,EAAA,GAEAukK,EAAAh0S,EAAAryB,IAAA,cAEA,MAAAqmU,IACAA,IAAAtyS,EAAA,KAKAqyS,EAAAx5T,GACAi1D,EAAAikQ,EAAAlxS,EAAAf,SAAA,MAAAwyS,IAAAzxS,EAAAf,SACA0wI,IAEA1iG,EA8GA,SAAAjtC,EAAAwd,EAAAk0R,EAAAtvS,GACA,IACA0a,EACAC,EAFA40R,EAAAvC,EAAAsC,EAAA1xS,EAAAf,UAGA0E,EAAAvB,EAAA,GAAAA,EAAA,GACAwvS,EAAA,UAAAp0R,IAAA7Z,GAAA,UAAA6Z,GAAA7Z,EAEAwrS,EAAAwC,EAAAxyS,EAAA,IACA4d,EAAA60R,EAAA,eACA90R,EAAA,UACGqyR,EAAAwC,EAAA,IAAAxyS,IACH4d,EAAA60R,EAAA,eACA90R,EAAA,WAEAC,EAAA,SAGAD,EADA60R,EAAA,IAAAxyS,GAAAwyS,EAAAxyS,EAAA,EACAyyS,EAAA,eAEAA,EAAA,gBAIA,OACA3yS,SAAA0yS,EACA70R,YACAC,qBAxIA80R,CAAA7xS,EAAAhoB,EAAAy5T,GAAA,EAAArvS,GAGA,OAFA0yQ,EAAA90Q,EAAA80Q,0BAGAA,EAAA3lS,KAAAY,IAAA+kS,EAAA3lS,KAAA2jC,IAAAm6B,EAAAhuC,YACAymB,SAAAovP,OAAA,QAIA,IAAAj5P,EAAA8gH,EAAAC,UACAk1K,EAAAr0S,EAAAryB,IAAA,uBACA+mR,EAAA2/C,EAAA3/C,SACA07B,EAAAz+O,EAAApvC,EAAA60Q,qBAAAi9B,EAAAjkB,SAAA/Y,GAGAi9B,EAAA,MAAA5/C,GAAA,MAAA07B,EAAAj7G,EAAAo/H,aAAAhoU,EAAA6jT,EAAAhyQ,EAAAs2O,GACA8/C,QAAA,EACA7iG,YAAA0iG,EAAA1iG,cACKplO,EACLioT,EAAAx0R,EAAAryB,IAAA,cACAsrD,EAAAj5B,EAAAi5B,SACAw7Q,GACAl4Q,cAAAtD,EACA1sD,OACA6pL,OAAA,SAEAq+I,EAAAx7Q,EAAA,SAAAj5B,EAAA6hC,eACA,IAAAwwO,EAAA,IAAAluR,EAAA0wB,MAEAosK,KAAA,OACAyzH,WAAAnoU,EACAooU,gBAAAL,EACAv8T,SAAAsjB,EACAmG,SAAAguC,EAAAhuC,SACAsM,OAAAq7R,EAAAnpS,GACA+N,GAAA,EACAruB,QAAA80S,KAAAxlT,KAAAqE,GACA02C,QAAAx9C,EACAgL,UAAA,WACA,OAAAhL,GAEAkoU,mBACOjgB,GAAA,OAEPrwS,EAAA2/L,aAAAuuF,EAAAnwR,MAAAg9I,GACAlkH,KAAAs5R,EACAl2R,WACA6C,SAAAi+G,EAAAE,gBAAAp/H,EAAAryB,IAAA,4BACA0xC,UAAAmwB,EAAAnwB,UACAC,kBAAAkwB,EAAAlwB,oBAGAtf,EAAAryB,IAAA,kBACA0kS,EAAAluO,UAAA0tQ,EAAA7xS,GACAqyQ,EAAAluO,UAAAyvQ,WAAA,WACAvhC,EAAAluO,UAAA53D,QAIA5C,KAAAsoU,WAAArpS,IAAAypQ,GAEAA,EAAAl/P,kBACAxpC,KAAAg/B,MAAAC,IAAAypQ,GACAA,EAAArgQ,wBAiBAyhS,EAAAl5K,EAAAk5K,gBAAA,SAAAmB,EAAA/mI,EAAAphJ,GACA,IACApN,EACAC,EAFA40R,EAAAvC,EAAA9jI,EAAA+mI,GAsBA,OAlBAlD,EAAAwC,IAEA50R,EAAAmN,EAAA,iBACApN,EAAA,UACGqyR,EAAAwC,EAAAxyS,IAEH4d,EAAAmN,EAAA,iBACApN,EAAA,WAEAC,EAAA,SAGAD,EADA60R,EAAA,GAAAA,EAAAxyS,EACA+qB,EAAA,iBAEAA,EAAA,mBAKAjrB,SAAA0yS,EACA70R,YACAC,sBAkCA,SAAA6pR,EAAAnpS,GACA,IAAAw0R,EAAAx0R,EAAAryB,IAAA,WACA,OAAAqyB,EAAAryB,IAAA,aACAqyB,EAAAryB,IAAA,iBAAA6mT,KAAAxlT,MAiDA,SAAAqkU,EAAAjpU,GACAA,MAAAujC,QAAA,GAGA,SAAA2lS,EAAAplS,EAAAE,EAAAohC,GAEA,IAAAqlQ,EAAA3mS,KAAAuD,kBAAAkC,QACAmhS,EAAA1mS,KAAAqD,kBAAAkC,QAEA,GAAAkhS,GAAAC,EAAA,CAMA,IAAAC,EAAAnD,EAAAvjH,aAIA,OAHAujH,EAAAx/J,OAAA2iK,KAAA7mS,EAAA1M,UACAqzS,EAAAlkS,eAAAihS,EAAAjjH,OAAAomH,EAAA7mS,EAAAyE,sBACAmiS,EAAAnkS,eAAAihS,EAAAjjH,OAAAomH,EAAA3mS,EAAAuE,sBACAkiS,EAAAjzJ,UAAAkzJ,IAGA,SAAAf,EAAAx5T,GACA,iBAAAA,GAAA,WAAAA,EA4HA,IAAA3N,EAAA2tJ,EACA1tJ,EAAAC,QAAAF,uCClmBAE,EAAAiuE,YAAA,EAEA,IAMAjmE,EANAotL,EAAWh5L,EAAQ,QAEnB03E,GAIA9rE,EAJAotL,IAIsCptL,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7EgjD,EAAW5uD,EAAQ,QAInB,IAAAy8S,KACAn2Q,EAAA,wBAEAwlS,OAAA,EACAC,EAAA,EAYA,SAAAC,EAAA9qU,EAAA4sQ,EAAAvmD,GACA,kBACA,IAAAlrD,EAAA92J,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACA02J,EAAA12J,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEAgiN,KAAAh5J,SAAA8tG,EAAAr7J,QAAAi7J,EAAAj7J,SAAAE,EAAA+iD,SAAAo4G,EAAAr7J,SAAAE,EAAA+iD,SAAAg4G,EAAAj7J,SAAAE,IAAAm7J,EAAAr7J,QAAAumN,EAAAh5J,QAAAgnJ,YAAAgS,EAAAh5J,QAAAgnJ,UAAAtxJ,SAAAo4G,EAAAr7J,SAAAumN,EAAAh5J,QAAAgnJ,UAAAtxJ,SAAAg4G,EAAAj7J,WAEA8sQ,EAAAjuP,YAAA3e,EAAAolC,GAAA4B,YAAAq/K,EAAAh5J,QAAArtD,EAAAolC,GAAA4B,YACAq/K,EAAAh5J,QAAArtD,EAAAolC,GAAA4B,cAEAhnC,EAAAolC,GAAA2lS,WAAA/qU,EAAAolC,GAAA2lS,eApBAv0P,EAAAl+D,QAAA7Y,UAAAg5E,YAAA,EAAA/qB,EAAAzuC,IAAA7P,SAAA,qBAAA1L,GACA,OAAAknU,EAAAlnU,KAGA8yE,EAAAl+D,QAAA7Y,UAAAg5E,YAAA,EAAA/qB,EAAAzuC,IAAA7P,SAAA,mBAAA1L,GACA63S,EAAAlyS,QAAA,SAAAovD,GACA,OAAAA,EAAArzB,GAAA4lS,gBAAAtnU,EAAAknU,OA2BAloU,EAAA4V,SACAvO,KAAA,SAAA/J,EAAA4sQ,EAAAvmD,GACAk1F,EAAAz6S,KAAAd,GACA,IAAAiB,EAAA4pU,IACA7qU,EAAAolC,IACAnkC,KACA+pU,gBAAAF,EAAA9qU,EAAA4sQ,EAAAvmD,GACAr/K,WAAA4lO,EAAAjuP,WACAosT,UAAAn+D,EAAA9lQ,QAGAg1C,OAAA,SAAA97C,EAAA4sQ,EAAAvmD,GACArmN,EAAAolC,GAAA4lS,gBAAAF,EAAA9qU,EAAA4sQ,EAAAvmD,GACArmN,EAAAolC,GAAA4B,WAAA4lO,EAAAjuP,WACA3e,EAAAolC,GAAA2lS,UAAAn+D,EAAA9lQ,OAEA6mQ,OAAA,SAAA3tQ,GAGA,IAFA,IAAAoB,EAAAm6S,EAAA/6S,OAEAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5B,GAAAi7S,EAAAj7S,GAAA8kC,GAAAnkC,KAAAjB,EAAAolC,GAAAnkC,GAAA,CACAs6S,EAAA16S,OAAAP,EAAA,GACA,aAGAN,EAAAolC,2BC5EA,IAAAhM,EAAat6B,EAAQ,QAoBrBk/B,EAAA5E,EAAA4E,KAsCA,SAAA0mB,EAAAh6C,EAAAvI,GACA,OAAAuI,KAAAtI,gBAAAsI,EAAAtI,eAAAD,GAGAM,EAAAC,QAxCA,SAAA8Z,GACA,IAAAnD,EAAAmD,KAAAnD,UAEA+f,EAAA/tB,QAAAgO,KACAA,YAGA2kB,EAAA3kB,EAAA,SAAA8e,GACA,GAAAA,EAAA,CAKAusB,EAAAvsB,EAAA,eAAAusB,EAAAvsB,EAAA,YACAA,EAAAxG,OAAAwG,EAAA8yS,iBACA9yS,EAAA8yS,WAGA,IAAAt5S,EAAAwG,EAAAxG,OAEAA,GAAAyH,EAAA/tB,QAAAsmB,IACAqM,EAAArM,EAAA,SAAAmrK,GACA1jK,EAAAj6B,SAAA29L,KACAp4I,EAAAo4I,EAAA,WAAAp4I,EAAAo4I,EAAA,SACAA,EAAAv1L,IAAAu1L,EAAA/6L,OAGA2iD,EAAAo4I,EAAA,SAAAp4I,EAAAo4I,EAAA,SACAA,EAAAt1L,IAAAs1L,EAAArsK,kCClDA3xB,EAAQ,OAARA,CAAuB,uCCAvB,IAAA6D,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAItBkzL,EAFclzL,EAAQ,QAEtBkzL,aAEAykG,EAAc33R,EAAQ,QAEtBmtC,EAAAwqP,EAAAxqP,aACAi/R,EAAAz0C,EAAAy0C,UAIAnvI,EAFcj9L,EAAQ,QAEtBi9L,SAoBAovI,GAAA,2BAEAC,IACA9+B,GAAA,IACA5yH,GAAA,QACAvtK,MAAA,EACAk/T,SAAA,kBAEA/+B,GAAA,IACA5yH,GAAA,SACAvtK,MAAA,EACAk/T,SAAA,kBAEAC,EAAA,IAAAvxT,EAAAytR,OAuFA,SAAA+jC,EAAAl7T,EAAAstB,EAAA8mC,EAAAtsC,GACA,IAAAtB,EAAAxmB,EAAA0uB,cAAApB,GACAglP,EAAAl+M,EAAAlhE,IAAA,gBACAs/Q,EAAAp+M,EAAAlhE,IAAA,cACAk/Q,EAAAh+M,EAAAlhE,IAAA,2BAEA6zB,GADAqtC,EAAAlhE,IAAA,iBACA,GAAA+D,KAAAgwB,GAAA,OACAyrP,EAAAt+M,EAAAlhE,IAAA,wBACAyhE,EAAAP,EAAAO,qBACAwmQ,GACA7tS,YACA9G,SACA4tC,YACA4K,WAAAh/D,EAAAojD,cAAA91B,EAAA,oBACAj4B,MAAA2K,EAAAojD,cAAA91B,EAAA,SACAklP,aACAF,eACAC,sBAAAn+M,EAAAlhE,IAAA,yBACAw/Q,oBACA3rP,WACAk6H,eAAAtsF,EAAAP,EAAA,KACAhiD,eAAAuiD,GAAAP,EAAAlhE,IAAA,kBACAogC,GAAA8gC,EAAAG,WAAA,aAiBA,SAAAH,EAAAk+M,EAAA9rP,EAAAsB,EAAAxwB,GACA,IAKA8jU,EALA7rS,EAAAzH,EAAAyH,SACAkjP,EAAAr+M,EAAAlhE,IAAA,sBACAwB,EAAAozB,EAAAyC,SAAA3E,aAAAkC,EAAAyC,SAAAyB,eACAqvS,EAAA3mU,EAAAqxB,cAAArxB,EAAAsxB,YAAA,IACAs1S,EAAA,IAAA90S,EAAA+I,EAAA85I,KAAA,GAGA,GAAAtgJ,EAAA/tB,QAAAy3Q,GAAA,CACA,IAAA8oD,GAAAC,EAAA9mU,EAAA+9Q,EAAA,IAAA4oD,EAAAG,EAAA9mU,EAAA+9Q,EAAA,IAAA4oD,GACAE,EAAA,GAAAA,EAAA,IAAAA,EAAA9kT,UACA2kT,EAAAG,EAAAD,QAEAF,EADG,MAAA3oD,EACH+oD,EAAA9mU,EAAA+9Q,GAAA4oD,EACG/oD,EACHxqP,EAAA2zS,eAAAlsS,EAAAzzB,OAAAw/T,GAAAD,EAEA70S,EAAA+I,EAAA85I,IAGA/xK,EAAA8jU,iBAEA9oD,IACAh7Q,EAAAokU,gBAAAl1S,EAAA+I,EAAA85I,KAGA/xK,EAAAqkU,OAAAP,EAAA,IAAAA,EAAA,OAzCAQ,CAAAxnQ,EAAAk+M,EAAA9rP,EAAAsB,EAAAqzS,GAiDA,SAAAn7T,EAAAstB,EAAA9G,EAAA8rP,EAAAE,EAAA4oD,EAAAO,EAAAjpD,EAAA5qP,EAAAxwB,GACA,IAAAi4B,EAAAzH,EAAAyH,SACAssS,EAAA/zS,EAAA+zS,YACAC,EAAA7kU,KAAAY,IAAA2uB,EAAAq1S,EAAAxyJ,KACAlrJ,EAAAne,EAAAojD,cAAA91B,EAAA,cAEAvE,EAAA/tB,QAAAmjB,GACAA,IAAA3sB,SAEA,MAAA2sB,IACAA,EAAA,QAGAA,SAOAA,EAAA09S,EAAA//T,OAAA8/B,EAAAzd,EAAA09S,EAAA//T,OAAAggU,GACA39S,EAAAoR,EAAAzzB,OAAA8/B,EAAAzd,EAAAoR,EAAAzzB,OAAAw2Q,EAAAwpD,EAAA7kU,KAAAY,IAAAujU,IACA9jU,EAAA6mB,cAEA7mB,EAAAykU,aAAA59S,EAAA,GAAAu0P,EAAAv0P,EAAA,GAAAu0P,IAEAnjP,EAAAzzB,SAAAgsB,EAAAiE,cAAA,KAAA4vS,EA1EAK,CAAAh8T,EAAAstB,EAAA9G,EAAA8rP,EAAAE,EAAA2oD,EAAAC,eAAAD,EAAAQ,OAAAjpD,EAAA5qP,EAAAqzS,GA6EA,SAAA/mQ,EAAA2nQ,EAAAh1S,EAAAe,EAAAxwB,GAIA,IAAA2kU,EAAA7nQ,EAAAlhE,IAAA4nU,IAAA,EAEAmB,IACAhB,EAAAhpU,MACAwO,MAAAs7T,EAAAvqU,QACAu1B,aAEAk0S,EAAAviS,kBACAujS,GAAAhB,EAAA3d,eACA2e,GAAAF,EAAAj0S,EAAAyH,SAAAzzB,QAGAxE,EAAA2kU,iBA5FAC,CAAA9nQ,EAAA+mQ,EAAAY,YAAAh1S,EAAAe,EAAAqzS,GACA,IAAAh9S,EAAAg9S,EAAAh9S,WACAE,EAAA+1C,EAAAlhE,IAAA,gBAOA,OALA61B,EAAA/tB,QAAAqjB,KACAA,GAAAud,EAAAvd,EAAA,GAAAF,EAAA,IAAAyd,EAAAvd,EAAA,GAAAF,EAAA,MA0FA,SAAAi2C,EAAAj2C,EAAAqI,EAAA8rP,EAAAE,EAAAn0P,EAAA+zP,EAAA6pD,EAAAb,EAAAM,EAAA5zS,EAAAxwB,GACA,IAAAukU,EAAA/zS,EAAA+zS,YACAtsS,EAAAzH,EAAAyH,SACAosS,EAAArkU,EAAAqkU,OACAQ,EAAAllU,KAAAE,IAAAgnB,EAAAoR,EAAAzzB,OAAAmgU,EAAA,GACAG,EAAAD,EAIA,GAAA7pD,EAAA,CACA,IAAA+pD,EAAAplU,KAAAY,IAAAujU,GACA/oD,EAAAtpP,EAAAmuC,SAAA9C,EAAAlhE,IAAA,0BACAopU,GAAA,EAEAjqD,EAAAv2O,YAAA,OAAAu2O,EAAAliR,OAAA,IACAmsU,GAAA,EACAjqD,IAAA7gR,MAAA,EAAA6gR,EAAAliR,OAAA,IAGAkiR,EAAAz2O,EAAAy2O,EAAAl0P,EAAAoR,EAAAzzB,QACA,IAAAygU,EAAAtlU,KAAAE,IAAAglU,EAAA,EAAA9pD,EAAA,GAGAmqD,EAAAF,EAAA,IAAAjqD,EAGAoqD,EAAA5B,EAAAvoD,GACAoqD,EAAAD,EAAAnqD,EAAAqqD,GAAAN,EAAAG,GAAAD,GAGAK,EAAAP,EAAAK,EAAAP,EAEAI,EAAAJ,EAAA,GADA9pD,EAAAuqD,EAAA,GAAAN,EAAAI,IAAA,IAEAF,EAAAF,EAAA,IAAAjqD,EAEAoqD,GAAA,UAAAnqD,IACAoqD,EAAAhB,EAAAiB,GAAA1lU,KAAAY,IAAA6jU,GAAAc,GAAAD,GAAA,GAGAH,EAAAM,EAAAH,EAAAC,EACAllU,EAAAolU,cACAplU,EAAA+6Q,eAGA,IAAAwqD,EAAAlB,GAAAS,EAAA,GACAU,EAAAxlU,EAAAwlU,gBACAA,EAAAjB,EAAA//T,OAAA0qB,EAAAq1S,EAAAxyJ,IAAA,EACAyzJ,EAAAvtS,EAAAzzB,OAAA,UAAAs2Q,EAAAyqD,EAAA,QAAAzqD,EAAAgpD,EAAAyB,EAAAzB,EAAA,EAEA/8S,IACAy+S,EAAA,IAAAz+S,EAAA,GACAy+S,EAAA,IAAAz+S,EAAA,IAGA,IAAA0+S,EAAAzlU,EAAAylU,kBACAA,EAAAlB,EAAA//T,OAAA0qB,EAAAq1S,EAAA5/B,IACA8gC,EAAAxtS,EAAAzzB,OAAA0qB,EAAA+I,EAAA0sQ,IACA,IAAA+gC,EAAA1lU,EAAA0lU,aAAAj0S,EAAAnwB,UAA2D4tB,GAC3Dw2S,EAAAztS,EAAA85I,IAAAsyJ,EAAA1kU,KAAAE,IAAAF,KAAAY,IAAA2uB,EAAA+I,EAAA85I,KAAApyK,KAAAY,IAAAilU,EAAAvtS,EAAAzzB,OAAA+gU,IACAG,EAAAnB,EAAAxyJ,IAAA7iJ,EAAAq1S,EAAAxyJ,IACA,IAAAh5I,EAAA/4B,EAAA+4B,aAEAA,EAAAwrS,EAAA5/B,KAAAz1Q,EAAAq1S,EAAA5/B,IACA5rQ,EAAAwrS,EAAAxyJ,IAAAvhJ,EAAAs6P,OAAAy5C,EAAAxyJ,IACAh5I,EAAAd,EAAA0sQ,IAAA,EACA5rQ,EAAAd,EAAA85I,IAAA7iJ,EAAA+I,EAAA85I,IAxJA4zJ,CAAA7oQ,EAAAj2C,EAAAqI,EAAA8rP,EAAAE,EAAAn0P,EAAA+zP,EAAA+oD,EAAAc,eAAAd,EAAAC,eAAAD,EAAAO,gBAAA5zS,EAAAqzS,GACAA,EAiCA,SAAAK,EAAA72S,EAAAluB,GACA,OAAAkuB,EAAAoB,cAAApB,EAAAqB,YAAArB,EAAAlkB,MAAApE,MAAA5F,KAwHA,SAAAymU,EAAA/B,GACA,IAAAzoD,EAAAyoD,EAAAzoD,kBACAnjR,EAAAoyL,EACAw5I,EAAAn8P,YAAA0zM,EAAA,GAAAA,EAAA,EAAAA,IAAAyoD,EAAA9lU,OAOA,OANA9F,EAAA0C,MACAi1K,SAAA,IAEA,UAAA33K,EAAAmD,MAAAnD,EAAAi8C,UACAjN,eAAA,IAEAhvC,EAGA,SAAA4tU,EAAAplT,EAAA+P,EAAAqzS,EAAAiC,GACA,IAAAC,EAAAtlT,EAAAulT,kBACAn/S,EAAAg9S,EAAAh9S,WACA89S,EAAAd,EAAAc,eACAa,EAAA3B,EAAA2B,aACAvtS,EAAAzH,EAAAyH,SACAmtS,EAAAvB,EAAAuB,aAAA,EACA5gU,EAAA,EACAyxC,EAAApvB,EAAA2J,EAAAyH,SAAAzzB,OAAAmgU,EAAA,EAAAd,EAAA9oD,aAmBA,IAlBAkrD,EAAAxlT,EAAA,SAAAxoB,GACAA,EAAAiuU,0BAAA1hU,EACAvM,EAAAkuU,uBAAAf,EAEA5gU,EAAA4gU,EACAgB,EAAAnuU,EAAA,KAAAouU,EAAA7hU,GAAAq/T,EAAAiC,GAEAM,EAAAnuU,EAAA,MACAkR,OAAA,MACO06T,EAAAiC,EAAA,WACPC,EAAA1pU,OAAApE,KAIAquU,EAAAruU,EAAA4rU,GACAr/T,MAGQA,EAAA4gU,EAAqB5gU,IAAA,CAC7B,IAAAvM,EAAA2tU,EAAA/B,GACA5rU,EAAAiuU,0BAAA1hU,EACAvM,EAAAkuU,uBAAAf,EACAW,EAAAlvS,IAAA5+B,GACA,IAAAE,EAAAkuU,EAAA7hU,GACA4hU,EAAAnuU,GACA+N,SAAA7N,EAAA6N,SACAmD,OAAA,OAEAA,MAAAhR,EAAAgR,MACAsmB,SAAAt3B,EAAAs3B,UACKo0S,EAAAiC,GAGL7tU,EAAAqf,GAAA,YAAAivT,GAAAjvT,GAAA,WAAAkvT,GACAF,EAAAruU,EAAA4rU,GAGA,SAAAwC,EAAA7hU,GACA,IAAAwB,EAAAw/T,EAAAtrU,QAGAmqU,EAAAR,EAAAQ,OACA1rU,EAAA6L,EAOA,OALA,UAAAq/T,EAAA5oD,sBAAAopD,EAAA,EAAAA,EAAA,KACA1rU,EAAAysU,EAAA,EAAA5gU,GAGAwB,EAAAiyB,EAAAzzB,OAAAyxC,GAAAt9C,EAAAysU,EAAA,MAAAI,EAAAvtS,EAAAzzB,QAEAwB,WACAmD,MAAA06T,EAAAY,YAAAvqU,QACAu1B,SAAAo0S,EAAAp0S,UAIA,SAAA82S,IACAN,EAAAxlT,EAAA,SAAAxoB,GACAA,EAAA4R,QAAA,cAIA,SAAA28T,IACAP,EAAAxlT,EAAA,SAAAxoB,GACAA,EAAA4R,QAAA,aAKA,SAAA48T,EAAAhmT,EAAA+P,EAAAqzS,EAAAiC,GACA,IAAAC,EAAAtlT,EAAAulT,kBACAU,EAAAjmT,EAAAkmT,oBAEAD,EAYAN,EAAAM,EAAA,MACA1gU,SAAA69T,EAAA2B,aAAAtrU,QACAiP,MAAA06T,EAAAY,YAAAvqU,QACAu1B,SAAAo0S,EAAAp0S,UACKo0S,EAAAiC,IAfLY,EAAAjmT,EAAAkmT,oBAAAf,EAAA/B,GACAkC,EAAAlvS,IAAA6vS,GACAN,EAAAM,GACA1gU,SAAA69T,EAAA2B,aAAAtrU,QACAiP,OAAA,KACAsmB,SAAAo0S,EAAAp0S,WAEAtmB,MAAA06T,EAAAY,YAAAvqU,SACK2pU,EAAAiC,GACLY,EAAApvT,GAAA,YAWA,WACA1f,KAAAiS,QAAA,cAZAyN,GAAA,WAeA,WACA1f,KAAAiS,QAAA,aAPAy8T,EAAAI,EAAA7C,GAYA,SAAA+C,EAAAnmT,EAAAojT,EAAAiC,GACA,IAAAe,EAAAp1S,EAAAnwB,UAAkCuiU,EAAA6B,cAClCoB,EAAArmT,EAAAsmT,mBAEAD,EAaAV,EAAAU,EAAA,MACAnnT,MAAAknT,GACKhD,EAAAiC,IAdLgB,EAAArmT,EAAAsmT,mBAAA,IAAA30T,EAAAyiB,MACAmH,GAAA,EACArc,MAAAknT,EACA9qS,QAAA,EACA5rB,OACA2qB,OAAA,cACAxrB,KAAA,cACAqlB,UAAA,KAGAlU,EAAAoW,IAAAiwS,IAQA,SAAAE,EAAAvmT,EAAA+P,EAAAqzS,EAAAiC,GAEA,GAAAjC,EAAA3oD,WAAA,CACA,IAAArnP,EAAApT,EAAAwmT,oBACAluS,EAAAtH,EAAAnwB,UAAoCuiU,EAAA9qS,WACpCd,EAAAzH,EAAAyH,SACA0xH,EAAAk6K,EAAAl6K,eACA3zH,EAAA6tS,EAAA7tS,UAEA,GAAAnC,EACAzhB,EAAAoqB,YAAA3I,GACAlU,MAAAoZ,GACO4wH,EAAA3zH,OACF,CACL+C,EAAAd,EAAA85I,IAAA,EACAl+I,EAAA,IAAAzhB,EAAAyiB,MACAlV,MAAAoZ,IAGAtY,EAAAulT,kBAAAptS,YAAA/E,GAEApT,EAAAwmT,oBAAApzS,EACA,IAAA17B,KACAA,EAAA8/B,EAAA85I,IAAA8xJ,EAAA9qS,UAAAd,EAAA85I,IACA3/J,EAAA0zT,EAAA,2BAAAjyS,GACAlU,MAAAxnB,GACOwxJ,EAAA3zH,KAKP,SAAA+mC,EAAAr0D,EAAAstB,GACA,IAAA8mC,EAAAp0D,EAAAq0D,aAAA/mC,GAGA,OAFA8mC,EAAAoqQ,0BACApqQ,EAAAO,qBACAP,EAGA,SAAAoqQ,EAAAjvU,GAEA,OACAuM,MAAAvM,EAAAiuU,0BACA/rU,MAAAlC,EAAAkuU,wBAIA,SAAA9oQ,IAEA,OAAAzlE,KAAA8lL,YAAArgH,wBAAAzlE,KAAAqlE,WAAA,aAGA,SAAAqpQ,EAAAruU,EAAA4rU,GACA5rU,EAAAgwD,IAAA,YAAAA,IAAA,UACA,IAAA9+C,EAAA06T,EAAAY,YAAAvqU,QACA2pU,EAAA/oT,gBAAA7iB,EAAAqf,GAAA,sBACA1f,KAAA+B,WACAwP,OAAA,IAAAA,EAAA,OAAAA,EAAA,KACK,oBACFmO,GAAA,oBACH1f,KAAA+B,WACAwP,QAAAjP,SACK,oBAIL,SAAAitU,EAAAz+T,EAAA8nB,EAAAqzS,EAAAiC,GAEA,IAAArlT,EAAA,IAAArO,EAAAskB,MAEAqvS,EAAA,IAAA3zT,EAAAskB,MAeA,OAdAjW,EAAAoW,IAAAkvS,GACAtlT,EAAAulT,kBAAAD,EACAA,EAAAprU,KAAA,WAAAkpU,EAAA4B,eAAAvrU,SAEA2pU,EAAA7oD,aACA6qD,EAAAplT,EAAA+P,EAAAqzS,GAEA4C,EAAAhmT,EAAA+P,EAAAqzS,GAGA+C,EAAAnmT,EAAAojT,EAAAiC,GACAkB,EAAAvmT,EAAA+P,EAAAqzS,EAAAiC,GACArlT,EAAA2mT,oBAAAC,EAAA3+T,EAAAm7T,GACApjT,EAAA6mT,sBAAAzD,EACApjT,EAqBA,SAAA8mT,EAAA7+T,EAAAstB,EAAA2zH,EAAAlpI,GAEA,IAAA09P,EAAA19P,EAAAsmT,mBACA5oD,MAAAhuQ,MAAA84B,KAAA,MACA,IAAAu+R,KACAvB,EAAAxlT,EAAA,SAAAxoB,GACAuvU,EAAAruU,KAAAlB,KAEAwoB,EAAAkmT,qBAAAa,EAAAruU,KAAAsnB,EAAAkmT,qBAEAlmT,EAAAwmT,sBAAAt9K,EAAA,MACAl4H,EAAA4E,KAAAmxS,EAAA,SAAAvvU,GACAma,EAAAoqB,YAAAvkC,GACAkR,OAAA,MACKwgJ,EAAA3zH,EAAA,WACLvV,EAAA0gB,QAAA1gB,EAAA0gB,OAAA9kC,OAAAokB,OAGA/X,EAAA+vB,iBAAAzC,EAAA,MAGA,SAAAqxS,EAAA3+T,EAAAm7T,GACA,OAAAn7T,EAAAojD,cAAA+3Q,EAAA7tS,UAAA,oBAAA6tS,EAAA7oD,eAAA6oD,EAAA3oD,YAAAl9Q,KAAA,KAGA,SAAAioU,EAAAxlT,EAAAy+C,EAAAxZ,GAEAj0B,EAAA4E,KAAA5V,EAAAulT,kBAAA7lJ,WAAA,SAAA9nL,GACAA,IAAAooB,EAAAsmT,oBAAA7nQ,EAAA57D,KAAAoiD,EAAArtD,KAIA,SAAA+tU,EAAA/tU,EAAAovU,EAAAC,EAAA7D,EAAAiC,EAAA5mQ,GACAuoQ,GAAApvU,EAAAsC,KAAA8sU,GAEA5D,EAAA3oD,aAAA4qD,EACA4B,GAAArvU,EAAAsC,KAAA+sU,GAEAA,GAAAt1T,EAAA0zT,EAAA,2BAAAztU,EAAAqvU,EAAA7D,EAAAl6K,eAAAk6K,EAAA7tS,UAAAkpC,GAIA,SAAAyoQ,EAAAlnT,EAAA+P,EAAAqzS,GACA,IAAA9lU,EAAA8lU,EAAA9lU,MACAi4B,EAAA6tS,EAAA7tS,UACA8mC,EAAA+mQ,EAAA/mQ,UAGAu3H,EAAAv3H,EAAA7lC,SAAA,aAAAimC,cAAA,UACAC,EAAAL,EAAA7lC,SAAA,sBAAAimC,eACAE,EAAAN,EAAAG,WAAA,UACAgpQ,EAAAxlT,EAAA,SAAAxoB,GAEAA,EAAA6yL,SAAA/sL,GACA9F,EAAAi8C,SAAAziB,EAAAmJ,UACAtrB,KAAAvR,EACA0M,QAAAo5T,EAAAp5T,SACK4pL,IACLjiL,EAAAmrD,cAAAtlE,EAAAklE,GACAC,IAAAnlE,EAAA+uB,OAAAo2C,GACAnlE,EAAA+jC,GAAA6nS,EAAA7nS,KAEA,IAAA4rS,KACAC,EAAAr3S,EAAAyH,SAAAyrS,UAAAG,EAAAC,eAAA,IACAgD,EAAArmT,EAAAsmT,mBACA3yI,EAAA0yI,EAAA32T,MAAAy3T,EAAA9qQ,EAAA/+D,EAAAyyB,EAAA4C,YAAA4C,EAAA6xS,GACAz1T,EAAAmrD,cAAAupQ,EAAAc,GAGA,SAAAvC,EAAAyC,GACA,IAAAC,EAAApoU,KAAAqC,MAAA8lU,GAEA,OAAAnoU,KAAAY,IAAAunU,EAAAC,GAAA,KAAAA,EAAApoU,KAAAowC,KAAA+3R,GAGA,IAAAjtU,EA5lBAG,EAAAs6D,iBACAl6D,KAAA,eACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAo7B,EAAAh/B,KAAAg/B,MACAluB,EAAA0qB,EAAAtP,UACAwU,EAAA1gC,KAAAic,MACAygB,EAAAlB,EAAAnN,iBAEAwO,IADAH,EAAAI,cACAD,eACAuzS,EAAA1zS,EAAA/2B,KAAA49D,UACA3qC,GACAs6P,QACAl6Q,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aAEAv2B,cACAH,SAAAqB,EACA6vS,iBAAA6D,EAAA/rU,EAAA+rU,EAAA/rU,EAAA+rU,EAAAp3T,QAAAo3T,EAAA7rU,EAAA6rU,EAAA7rU,EAAA6rU,EAAAn3T,SACA4jB,eACAwD,SAAAwrS,GAAAhvS,GACA8vS,YAAAd,EAAA,EAAAhvS,IA+CA,OA7CA/rB,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAb,GACA,GAAAttB,EAAAusK,SAAAj/I,GAAA,CAIA,IAAA8mC,EAAAC,EAAAr0D,EAAAstB,GACA6tS,EAAAD,EAAAl7T,EAAAstB,EAAA8mC,EAAAtsC,GACA/P,EAAA0mT,EAAAz+T,EAAA8nB,EAAAqzS,GACAn7T,EAAA+vB,iBAAAzC,EAAAvV,GACAmW,EAAAC,IAAApW,GACAknT,EAAAlnT,EAAA+P,EAAAqzS,MACK1vR,OAAA,SAAAsoR,EAAAC,GACL,IAAAj8S,EAAA6X,EAAAoD,iBAAAghS,GAEA,GAAAh0T,EAAAusK,SAAAwnJ,GAAA,CAKA,IAAA3/P,EAAAC,EAAAr0D,EAAA+zT,GACAoH,EAAAD,EAAAl7T,EAAA+zT,EAAA3/P,EAAAtsC,GACAy3S,EAAAZ,EAAA3+T,EAAAm7T,GAEApjT,GAAAwnT,IAAAxnT,EAAA2mT,sBACAxwS,EAAAv6B,OAAAokB,GACA/X,EAAA+vB,iBAAAgkS,EAAA,MACAh8S,EAAA,MAGAA,EA4cA,SAAAA,EAAA+P,EAAAqzS,GACA,IAAAl6K,EAAAk6K,EAAAl6K,eACA3zH,EAAA6tS,EAAA7tS,UACA+vS,EAAAtlT,EAAAulT,kBACA5zT,EAAAoqB,YAAAupS,GACA//T,SAAA69T,EAAA4B,eAAAvrU,SACGyvJ,EAAA3zH,GAEH6tS,EAAA7oD,aACA6qD,EAAAplT,EAAA+P,EAAAqzS,GAAA,GAEA4C,EAAAhmT,EAAA+P,EAAAqzS,GAAA,GAGA+C,EAAAnmT,EAAAojT,GAAA,GACAmD,EAAAvmT,EAAA+P,EAAAqzS,GAAA,GA1dAqE,CAAAznT,EAAA+P,EAAAqzS,GAEApjT,EAAA0mT,EAAAz+T,EAAA8nB,EAAAqzS,GAAA,GAGAn7T,EAAA+vB,iBAAAgkS,EAAAh8S,GACAA,EAAA6mT,sBAAAzD,EAEAjtS,EAAAC,IAAApW,GACAknT,EAAAlnT,EAAA+P,EAAAqzS,QAxBAjtS,EAAAv6B,OAAAokB,KAyBKpkB,OAAA,SAAA25B,GACL,IAAAvV,EAAA6X,EAAAoD,iBAAA1F,GACAvV,GAAA8mT,EAAAjvS,EAAAtC,EAAAvV,EAAA6mT,sBAAA39K,eAAAlpI,KACKs+C,UACLnnE,KAAAic,MAAAnL,EACA9Q,KAAAg/B,OAEAj6B,QAAA80B,EAAAwiC,KACA53D,OAAA,SAAAd,EAAAC,GACA,IAAAo7B,EAAAh/B,KAAAg/B,MACAluB,EAAA9Q,KAAAic,MAEAtY,EAAAK,IAAA,aACA8M,GACAA,EAAA6vB,kBAAA,SAAA9X,GACA8mT,EAAA7+T,EAAA+X,EAAAuV,UAAAz6B,EAAAklB,KAIAmW,EAAAkG,eA4gBAhiC,EAAAC,QAAAF,wBChpBA,IAoBAA,EApBoB1D,EAAQ,QAoB5BmK,QACAlG,KAAA,kBAKAkxB,eACAg/C,UAAA,EAEA+sG,UAAA,EAEApkB,kBAAA,EAEAC,iBAAA,EAEAC,yBAAA,KAIAr5J,EAAAC,QAAAF,qCCrCAE,EAAAiuE,YAAA,EAEA,IAAAm/P,EAAchxU,EAAQ,QAEtB4D,EAAA4V,SACAgD,SACA0sE,EAAA,WACA,QAAA9oE,EAAA7a,UAAA7D,OAAAmL,EAAAP,MAAA8T,GAAAhC,EAAA,EAAqEA,EAAAgC,EAAahC,IAClFvR,EAAAuR,GAAA7Y,UAAA6Y,GAGA,OAAA4yT,EAAA9nP,EAAAl8E,MAAAvM,KAAAoM,4BCbA,IAAAhJ,EAAc7D,EAAQ,QAEtBu6B,EAAiBv6B,EAAQ,QAEzBixU,EAAsBjxU,EAAQ,QAE9Bk2T,EAAmBl2T,EAAQ,QAoB3B6D,EAAAs6D,iBACAl6D,KAAA,UACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UAEAlsB,KAAAywU,kBAAA3/T,EAAA0qB,GAEAyF,WAAAnwB,GACA9Q,KAAA0tE,WAAA,GAEAC,yBAAA,SAAAnyC,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UAEAlsB,KAAAywU,kBAAA3/T,EAAA0qB,GAEAoyC,yBAAA98D,GACA9Q,KAAA0tE,WAAA,GAEAI,kBAAA,SAAAC,EAAAvyC,EAAA73B,GACA3D,KAAAk/B,YAAA+uC,kBAAAF,EAAAvyC,EAAAtP,WAEAlsB,KAAA0tE,UAAAK,EAAA78C,MAAAsK,EAAAtP,UAAA3pB,SAEAinC,gBAAA,SAAAhO,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UAKA,GAFAlsB,KAAAg/B,MAAA59B,SAEApB,KAAA0tE,WAAA58D,EAAAvO,QAAA,MAAAvC,KAAAk/B,YAAA+wI,eACA,OACA1zH,QAAA,GAGA,IAAAntC,EAAAqmT,IAAA3qT,MAAA0wB,GAEApsB,EAAAszD,UACAtzD,EAAAszD,UACAlgE,MAAA,EACA0uB,IAAApgB,EAAAvO,SACSuO,GAGT9Q,KAAAk/B,YAAAs2B,aAAA1kD,IAGA2/T,kBAAA,SAAA3/T,EAAA0qB,GACA,IAAAuD,EAAA/+B,KAAAk/B,YAEAqvC,EADA/yC,EAAA0yC,gBACAC,MAUA,OARApvC,GAAAwvC,IAAAvuE,KAAA0uE,eACA3vC,KAAAt6B,SACAs6B,EAAA/+B,KAAAk/B,YAAAqvC,EAAA,IAAAiiQ,EAAA,IAAA12S,EACA95B,KAAA0uE,aAAAH,EACAvuE,KAAAg/B,MAAAkG,aAGAllC,KAAAg/B,MAAAC,IAAAF,EAAAC,OACAD,GAEAt6B,OAAA,SAAAd,EAAAC,GACA5D,KAAAk/B,aAAAl/B,KAAAk/B,YAAAz6B,QAAA,GACAzE,KAAAk/B,YAAA,MAEAn6B,QAAA,qCC3FA,IAAA2rU,EAAkBnxU,EAAQ,QAE1Bib,EAAcjb,EAAQ,QAEtB86B,EAAgB96B,EAAQ,QAExB23R,EAAc33R,EAAQ,QAEtBmtC,EAAAwqP,EAAAxqP,aACAtiC,EAAA8sR,EAAA9sR,MACAqpJ,EAAAyjI,EAAAzjI,UAmCA,SAAAk9K,EAAAl+T,EAAA0/J,GASA,OARAA,IACA,iBAAAA,EACA1/J,EAAA0/J,EAAA5pK,QAAA,UAA6C,MAAAkK,IAAA,IACxC,mBAAA0/J,IACL1/J,EAAA0/J,EAAA1/J,KAIAA,EAGA,IAAA68D,EAAA,EAAAvnE,KAAAgwB,GAySA90B,EAxSAo3B,EAAA3wB,QACAlG,KAAA,QACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA5D,KAAAg/B,MAAAkG,YACA,IAAA2iK,EAAArsK,EAAAx3B,IAAA,4BACAwpS,EAjCA,SAAAhyQ,EAAA53B,GACA,IAAAkgB,EAAA0X,EAAAx3B,IAAA,UACAgV,EAAApV,EAAAkuD,WACA74C,EAAArV,EAAAmuD,YACAlgC,EAAA9pB,KAAAC,IAAAgR,EAAAC,GAIA,OACA1B,GAJAm1B,EAAA5oB,EAAA,GAAAlgB,EAAAkuD,YAKAt6C,GAJAk1B,EAAA5oB,EAAA,GAAAlgB,EAAAmuD,aAKAt6C,EAJAi1B,EAAAlR,EAAAx3B,IAAA,UAAA6tB,EAAA,IA0BA++S,CAAAp1S,EAAA53B,GAEA5D,KAAA6wU,YAAAr1S,EAAA73B,EAAAC,EAAAikM,EAAA2lG,IAEAzoS,QAAA,aACA8rU,YAAA,SAAAr1S,EAAA73B,EAAAC,EAAAikM,EAAA2lG,GAWA,IAVA,IAAAxuQ,EAAAh/B,KAAAg/B,MAEAI,EADA5D,EAAA6D,SAAA,YACAA,SAAA,aACA/C,EAAAd,EAAAx3B,IAAA,aACAo4B,GAAAZ,EAAAx3B,IAAA,kBAAA+D,KAAAgwB,GAEA+4S,IADAz0S,GAAAb,EAAAx3B,IAAA,gBAAA+D,KAAAgwB,IACAqE,GAAAkzC,EACAyhQ,EAAA30S,EACA40S,EAAA5xS,EAAAp7B,IAAA,SAEAjD,EAAA,EAAmBA,EAAA8mM,EAAA5mM,OAAsBF,IAAA,CAEzC,IACAs7B,EAAAD,EAAA00S,EADA/oU,KAAAC,IAAAD,KAAAE,IAAA4/L,EAAA9mM,GAAA,SAEA2jE,EAAA,IAAAlqD,EAAA0hB,QACAnU,OACAqU,WAAA20S,EACA10S,WACA9kB,GAAAi2R,EAAAj2R,GACAC,GAAAg2R,EAAAh2R,GACA8kB,YACAH,GAAAqxQ,EAAA/1R,EAAAu5T,EACAv5T,EAAA+1R,EAAA/1R,GAEA0sB,QAAA,IAEAugC,EAAApoB,UACA5kC,KAAAmwL,EAAA9mM,GAAA,KAEA2jE,EAAApoB,SAAAld,EAAA6D,cAEA,uCACAjE,EAAAC,IAAAylC,GACAqsQ,EAAA10S,EAGA,IAAA40S,EAAA,SAAA7sT,GAEA,GAAAA,GAAA,EACA,OAAAyjL,EAAA,MAGA,QAAA9mM,EAAA,EAAqBA,EAAA8mM,EAAA5mM,OAAsBF,IAC3C,GAAA8mM,EAAA9mM,GAAA,IAAAqjB,IAAA,IAAArjB,EAAA,EAAA8mM,EAAA9mM,EAAA,OAAAqjB,EACA,OAAAyjL,EAAA9mM,GAAA,GAKA,OAAA8mM,EAAA9mM,EAAA,OAGA,IAAAu7B,EAAA,CACA,IAAAozC,EAAAtzC,EACAA,EAAAC,EACAA,EAAAqzC,EAGA1vE,KAAAkxU,aAAA11S,EAAA73B,EAAAC,EAAAqtU,EAAAzjC,EAAApxQ,EAAAC,EAAAC,GAEAt8B,KAAAmxU,eAAA31S,EAAA73B,EAAAC,EAAAqtU,EAAAzjC,EAAApxQ,EAAAC,EAAAC,GAEAt8B,KAAAoxU,aAAA51S,EAAA73B,EAAAC,EAAAqtU,EAAAzjC,GAEAxtS,KAAAqxU,cAAA71S,EAAA73B,EAAAC,EAAAqtU,EAAAzjC,IAEA0jC,aAAA,SAAA11S,EAAA73B,EAAAC,EAAAqtU,EAAAzjC,EAAApxQ,EAAAC,EAAAC,GAoBA,IAnBA,IAAA0C,EAAAh/B,KAAAg/B,MACAznB,EAAAi2R,EAAAj2R,GACAC,EAAAg2R,EAAAh2R,GACAC,EAAA+1R,EAAA/1R,EACA65T,GAAA91S,EAAAx3B,IAAA,OACAutU,GAAA/1S,EAAAx3B,IAAA,OACA6sM,EAAAr1K,EAAA6D,SAAA,aACA8xK,EAAA31K,EAAA6D,SAAA,YACA0mC,EAAAvqC,EAAA6D,SAAA,aACArX,EAAAwT,EAAAx3B,IAAA,eACAwtU,EAAArgI,EAAAntM,IAAA,eACAytU,EAAA/kS,EAAAmkK,EAAA7sM,IAAA,UAAAyT,GACA0wR,EAAAz7P,EAAAykK,EAAAntM,IAAA,UAAAyT,GACA61B,EAAAlR,EACA9U,GAAA+U,EAAAD,GAAApU,EACA0pT,EAAApqT,EAAAkqT,EACAG,EAAA9gI,EAAAxxK,SAAA,aAAA4D,eACA2uS,EAAAzgI,EAAA9xK,SAAA,aAAA4D,eAEAliC,EAAA,EAAmBA,GAAAinB,EAAkBjnB,IAAA,CACrC,IAAAkmK,EAAAl/J,KAAA0jC,IAAA6B,GACA45H,EAAAn/J,KAAA2jC,IAAA4B,GAEA,GAAAujK,EAAA7sM,IAAA,SACA,IAAAuB,EAAA,IAAAiV,EAAAqyD,MACA9kD,OACA0oB,GAAAw2H,EAAAxvJ,EAAAF,EACAm5B,GAAAw2H,EAAAzvJ,EAAAD,EACAq2B,GAAAo5H,GAAAxvJ,EAAAg6T,GAAAl6T,EACAu2B,GAAAo5H,GAAAzvJ,EAAAg6T,GAAAj6T,GAEAe,MAAAo5T,EACAxtS,QAAA,IAGA,SAAAwtS,EAAAzuS,QACA39B,EAAA+2C,UACApZ,OAAA+tS,EAAAlwU,EAAAinB,KAIAgX,EAAAC,IAAA15B,GAIA,GAAAwgE,EAAA/hE,IAAA,SACA,IAAAyO,EAAAk+T,EAAAvmU,EAAArJ,EAAAinB,GAAAupT,EAAAD,MAAAvrQ,EAAA/hE,IAAA,cACAqyC,EAAA0vB,EAAA/hE,IAAA,YACAuiE,EAAA0qQ,EAAAlwU,EAAAinB,GACAgX,EAAAC,IAAA,IAAAzkB,EAAA0wB,MACA3yB,MAAAiC,EAAA2/L,gBAAwCp0I,GACxC10B,KAAA5+B,EACApO,EAAA4iK,GAAAxvJ,EAAAg6T,EAAAp7R,GAAA9+B,EACAhT,EAAA2iK,GAAAzvJ,EAAAg6T,EAAAp7R,GAAA7+B,EACAm+B,kBAAAuxH,GAAA,SAAAA,EAAA,qBACAxxH,UAAAuxH,GAAA,UAAAA,EAAA,sBAEA1gG,cAEApiC,QAAA,KAKA,GAAAgtK,EAAAntM,IAAA,SAAAjD,IAAAinB,EAAA,CACA,QAAAkL,EAAA,EAAuBA,GAAAs+S,EAAqBt+S,IAAA,CAC5C+zI,EAAAl/J,KAAA0jC,IAAA6B,GACA45H,EAAAn/J,KAAA2jC,IAAA4B,GADA,IAEAukS,EAAA,IAAAr3T,EAAAqyD,MACA9kD,OACA0oB,GAAAw2H,EAAAxvJ,EAAAF,EACAm5B,GAAAw2H,EAAAzvJ,EAAAD,EACAq2B,GAAAo5H,GAAAxvJ,EAAA0wR,GAAA5wR,EACAu2B,GAAAo5H,GAAAzvJ,EAAA0wR,GAAA3wR,GAEA2sB,QAAA,EACA5rB,MAAAq5T,IAGA,SAAAA,EAAA1uS,QACA2uS,EAAAv1R,UACApZ,OAAA+tS,GAAAlwU,EAAAmyB,EAAAs+S,GAAAxpT,KAIAgX,EAAAC,IAAA4yS,GACAvkS,GAAAokS,EAGApkS,GAAAokS,OAEApkS,GAAAhmB,IAIA6pT,eAAA,SAAA31S,EAAA73B,EAAAC,EAAAqtU,EAAAzjC,EAAApxQ,EAAAC,EAAAC,GACA,IAAA0C,EAAAh/B,KAAAg/B,MACA0B,EAAA1gC,KAAAic,MAEA,GAAAuf,EAAAx3B,IAAA,iBAQA,IAAA8tU,IAAAt2S,EAAAx3B,IAAA,QAAAw3B,EAAAx3B,IAAA,QACA+3B,GAAAK,EAAAC,GACAvrB,EAAA0qB,EAAAtP,UACAmU,EAAAvvB,EAAA0tB,aAAA,SACA1tB,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAqB,GACA,IAAAlJ,EAAA,IAAAs5S,GACA3oT,OACAulB,MAAAlR,KAGA5hB,EAAAgiB,UAAApF,GACArP,OACAulB,MAAAmmH,EAAA3iJ,EAAA9M,IAAAq8B,EAAAC,GAAAwxS,EAAA/1S,GAAA,KAEOP,GACPwD,EAAAC,IAAA7H,GACAtmB,EAAA+vB,iBAAAP,EAAAlJ,KACKmlB,OAAA,SAAA0qB,EAAAC,GACL,IAAA9vC,EAAAsJ,EAAAoD,iBAAAojC,GACA1sD,EAAAoqB,YAAAxN,GACArP,OACAulB,MAAAmmH,EAAA3iJ,EAAA9M,IAAAq8B,EAAA4mC,GAAA6qQ,EAAA/1S,GAAA,KAEOP,GACPwD,EAAAC,IAAA7H,GACAtmB,EAAA+vB,iBAAAomC,EAAA7vC,KACK3yB,OAAA,SAAA67B,GACL,IAAAlJ,EAAAsJ,EAAAoD,iBAAAxD,GACAtB,EAAAv6B,OAAA2yB,KACK+vC,UACLr2D,EAAA6vB,kBAAA,SAAAvJ,EAAAkJ,GACA,IAAA4kC,EAAAp0D,EAAAq0D,aAAA7kC,GACAyxS,EAAA7sQ,EAAA7lC,SAAA,WACAjI,EAAAmK,UACAl9B,EAAAmpS,EAAAj2R,GACAhT,EAAAipS,EAAAh2R,GACAwB,MAAA0zB,EAAAqlS,EAAA/tU,IAAA,SAAAwpS,EAAA/1R,GACAA,EAAAi1B,EAAAqlS,EAAA/tU,IAAA,UAAAwpS,EAAA/1R,KAEA2f,EAAA2L,SAAAmiC,EAAA7lC,SAAA,aAAAimC,gBAEA,SAAAluC,EAAA7e,MAAAb,MACA0f,EAAAklB,SAAA,OAAA20R,EAAAx9K,EAAA3iJ,EAAA9M,IAAAq8B,EAAAC,GAAAwxS,GAAA,WAGAt3T,EAAAmrD,cAAAvuC,EAAA8tC,EAAA7lC,SAAA,sBAAAimC,kBAEAtlE,KAAAic,MAAAnL,OArDA4vB,KAAAC,kBAAA,SAAAlgC,GACAu+B,EAAAv6B,OAAAhE,MAsDA2wU,aAAA,SAAA51S,EAAA73B,EAAAC,EAAAqtU,EAAAzjC,GACA,IAAA18R,EAAA0qB,EAAAtP,UACAmU,EAAAvvB,EAAA0tB,aAAA,SACAwzS,EAAAx2S,EAAA6D,SAAA,SAEA,GAAA2yS,EAAAhuU,IAAA,SACA,IAAAw2O,EAAAw3F,EAAAhuU,IAAA,gBACAK,EAAAmpS,EAAAj2R,GAAAm1B,EAAA8tM,EAAA,GAAAgzD,EAAA/1R,GACAlT,EAAAipS,EAAAh2R,GAAAk1B,EAAA8tM,EAAA,GAAAgzD,EAAA/1R,GACA65T,GAAA91S,EAAAx3B,IAAA,OACAutU,GAAA/1S,EAAAx3B,IAAA,OACAuD,EAAAi0B,EAAAtP,UAAAloB,IAAAq8B,EAAA,GACAkmC,EAAA0qQ,EAAAx9K,EAAAlsJ,GAAA+pU,EAAAC,IAAA,UACAvxU,KAAAg/B,MAAAC,IAAA,IAAAzkB,EAAA0wB,MACA/G,QAAA,EACA5rB,MAAAiC,EAAA2/L,gBAAsC63H,GACtC3tU,IACAE,IAEA8sC,KAAAvgC,EAAAqzD,QAAA,GACAzuB,UAAA,SACAC,kBAAA,WAEA4wB,YACA0rQ,WAAA,SAKAZ,cAAA,SAAA71S,EAAA73B,EAAAC,EAAAqtU,EAAAzjC,GACA,IAAA0kC,EAAA12S,EAAA6D,SAAA,UACAiyS,GAAA91S,EAAAx3B,IAAA,OACAutU,GAAA/1S,EAAAx3B,IAAA,OAEA,GAAAkuU,EAAAluU,IAAA,SACA,IAAAw2O,EAAA03F,EAAAluU,IAAA,gBACAK,EAAAmpS,EAAAj2R,GAAAm1B,EAAA8tM,EAAA,GAAAgzD,EAAA/1R,GACAlT,EAAAipS,EAAAh2R,GAAAk1B,EAAA8tM,EAAA,GAAAgzD,EAAA/1R,GACAuB,EAAA0zB,EAAAwlS,EAAAluU,IAAA,SAAAwpS,EAAA/1R,GACAwB,EAAAyzB,EAAAwlS,EAAAluU,IAAA,UAAAwpS,EAAA/1R,GACA3G,EAAA0qB,EAAAtP,UACA3kB,EAAAuJ,EAAA9M,IAAA8M,EAAA0tB,aAAA,YACA+nC,EAAA0qQ,EAAAx9K,EAAAlsJ,GAAA+pU,EAAAC,IAAA,UACAvxU,KAAAg/B,MAAAC,IAAA,IAAAzkB,EAAA0wB,MACA/G,QAAA,EACA5rB,MAAAiC,EAAA2/L,gBAAsC+3H,GACtC7tU,IACAE,IACA8sC,KAAAs/R,EACAppU,EAAA2qU,EAAAluU,IAAA,cACAgiS,UAAAv7R,MAAAuO,GAAA,KAAAA,EACAoqR,WAAA34R,MAAAwO,GAAA,KAAAA,EACAy8B,UAAA,SACAC,kBAAA,WAEA4wB,YACA0rQ,WAAA,WAOA/uU,EAAAC,QAAAF,wBCnWA,IAAA42B,EAAat6B,EAAQ,QAErBorC,EAAUprC,EAAQ,QAwBlBo1L,GAAAF,EAtBal1L,EAAQ,QAErBk1L,aAqBAh2J,EAAA5E,EAAA4E,KA4DA,SAAA0zS,EAAArzJ,EAAA36K,EAAAC,GACA06K,EAAArjK,QAAA,aAAArX,GAGA,SAAAguU,EAAAluU,EAAA46K,EAAA36K,EAAAC,GACA06K,EAAArjK,QAAAvX,EAAAC,EAAAC,GAgDAjB,EAAAc,SAxGA,SAAA8F,EAAAnG,EAAA6X,GACA,IAAAkvB,EAAAuuB,KAAA,CAIA,IAAAx4D,EAAAkD,EAAAe,QACAgwL,EAAAj0L,GAAA2xU,UAAA19I,EAAAj0L,GAAA2xU,YAMA,SAAA3xU,EAAAkD,GAWA,SAAA0uU,EAAA53Q,EAAA4M,GACA5mE,EAAAgf,GAAAg7C,EAAA,SAAAv2D,GACA,IAAAouU,EAkCA,SAAA3uU,GACA,IAAA4uU,GACAC,WACAC,YAOAtuU,EAAA,SAAAw/B,GACA,IAAA+uS,EAAAH,EAAA5uS,EAAApgC,MAEAmvU,EACAA,EAAApxU,KAAAqiC,IAEAA,EAAAx/B,iBACAR,EAAAQ,eAAAw/B,KAIA,OACAx/B,iBACAouU,YAzDAvpB,CAAArlT,GACA66B,EAAAk2J,EAAAj0L,GAAA2xU,QAAA,SAAAvzJ,GACAA,GAAAx3G,EAAAw3G,EAAA36K,EAAAouU,EAAAnuU,kBAOA,SAAAouU,EAAA5uU,GACA,IAEAgvU,EAFAC,EAAAL,EAAAC,QAAAxxU,OACA6xU,EAAAN,EAAAE,QAAAzxU,OAGA4xU,EACAD,EAAAJ,EAAAC,QAAAI,EAAA,GACGC,IACHF,EAAAJ,EAAAE,QAAAI,EAAA,IAGAF,IACAA,EAAAxuU,eAAA,KACAR,EAAAQ,eAAAwuU,IAlBAG,CAAAR,EAAAC,SAAA5uU,KAhBA+wL,EAAAj0L,GAAAsyU,cAIAr+I,EAAAj0L,GAAAsyU,aAAA,EACAV,EAAA,QAAAz4S,EAAA0Q,MAAA6nS,EAAA,UACAE,EAAA,YAAAz4S,EAAA0Q,MAAA6nS,EAAA,cAEAE,EAAA,YAAAH,IAdAc,CAAAvyU,EAAAkD,IACA+wL,EAAAj0L,GAAA2xU,QAAAtoU,KAAA4qL,EAAAj0L,GAAA2xU,QAAAtoU,QACA0R,YAgGAtY,EAAAuB,WAdA,SAAAqF,EAAAnG,GACA,IAAA+mC,EAAAuuB,KAAA,CAIA,IAAAx4D,EAAAkD,EAAAe,SACAgwL,EAAAj0L,GAAA2xU,aAAuCtoU,KAGvC4qL,EAAAj0L,GAAA2xU,QAAAtoU,GAAA,8BCxIA,IAAA8vB,EAAat6B,EAAQ,QAErBiiM,EAAkBjiM,EAAQ,QAE1B2sD,EAAqB3sD,EAAQ,QAE7B8rM,EAAc9rM,EAAQ,QAEtB01L,EAAAoW,EAAApW,gBACAI,EAAAgW,EAAAhW,iBAEA+W,EAAkB7sM,EAAQ,QAqB1B2zU,GAAA,iCAiEAhwU,EAAAC,QAxDA,SAAAytE,EAAAuiQ,EAAAC,EAAAC,GACAx5S,EAAA4E,KAAAy0S,EAAA,SAAA5nR,GACA6nR,EAAAzpU,QAIAlG,KAAAotE,EAAA,QAAAtlB,EACA+5H,qBAAA,SAAApoK,EAAAtZ,GACA,IAAAkxL,EAAA70L,KAAA60L,WACAG,EAAAH,EAAAI,EAAAh4K,MACAi4K,EAAAvxL,EAAAwxL,WACAt7J,EAAA82C,MAAA1zD,EAAAi4K,EAAAlxL,IAAAsnD,EAAA,SACAzxB,EAAA82C,MAAA1zD,EAAAjd,KAAAo1L,oBACAn4K,EAAAzZ,KAAA4vU,EAAAxiQ,EAAA3zD,GAEA43K,GACAQ,EAAAp4K,EAAA+3K,EAAAH,IAOAS,cAAA,WAGA,aAFAt1L,KAAAid,OAEAzZ,OACAxD,KAAAszU,cAAAlnI,EAAAmnI,kBAAAvzU,QAQAgxK,cAAA,SAAApnE,GACA,IAAA3sF,EAAAjd,KAAAid,OAGA,gBAAAA,EAAAzZ,KACA,OAAAomG,EACA3sF,EAAAnM,KAGA9Q,KAAAszU,cAAAliK,YAGAD,eAAA,WACA,OAAAnxK,KAAAszU,eAEA5+S,cAAAmF,EAAAo2K,aAAwCzO,EAAAl2I,EAAA,QAAA+nR,IAAA,OAGxCnnR,EAAA2uJ,yBAAAjqI,EAAA,OAAA/2C,EAAA0Q,MAAA6oS,EAAAxiQ,2BC7FA,IAAA4iQ,EAAgBj0U,EAAQ,QACxB2D,EAAAC,QAAA,SAAA8I,EAAAolT,EAAApwT,GAEA,GADAuyU,EAAAvnU,QACAyB,IAAA2jT,EAAA,OAAAplT,EACA,OAAAhL,GACA,uBAAAsU,GACA,OAAAtJ,EAAAP,KAAA2lT,EAAA97S,IAEA,uBAAAA,EAAAC,GACA,OAAAvJ,EAAAP,KAAA2lT,EAAA97S,EAAAC,IAEA,uBAAAD,EAAAC,EAAA0qD,GACA,OAAAj0D,EAAAP,KAAA2lT,EAAA97S,EAAAC,EAAA0qD,IAGA,kBACA,OAAAj0D,EAAAM,MAAA8kT,EAAAvsT,mCCjBA,IAAAg9O,EAAUviP,EAAQ,QAAcyjD,EAChCmC,EAAU5lD,EAAQ,QAClBk0U,EAAUl0U,EAAQ,OAARA,CAAgB,eAE1B2D,EAAAC,QAAA,SAAAu9D,EAAAyqJ,EAAAuoH,GACAhzQ,IAAAvb,EAAAub,EAAAgzQ,EAAAhzQ,IAAAxgE,UAAAuzU,IAAA3xF,EAAAphL,EAAA+yQ,GAAoEnoU,cAAA,EAAA/D,MAAA4jN,2BCLpE,IAAA1rN,EAAYF,EAAQ,QAEpBw1D,EAAAt1D,EAAAs1D,cACAt2B,EAAAh/B,EAAAg/B,KACA/+B,EAAAD,EAAAC,SACAsjC,EAAAvjC,EAAAujC,SACAt5B,EAAAjK,EAAAiK,OACA9J,EAAAH,EAAAG,SACAoqC,EAAAvqC,EAAAuqC,MAIAksB,EAFa32D,EAAQ,QAErB22D,iBAIAuoL,EAFoBl/O,EAAQ,QAE5Bk/O,aAEA5yE,EAAatsK,EAAQ,QAIrBo0U,EAFuBp0U,EAAQ,QAE/Bo0U,iBAgPA,SAAAC,EAAAhxU,EAAA+N,EAAAkjU,GACA,GAAAA,GAAA,MAAAljU,EAAA3M,IAAApB,GAAA,CAGA,IAFA,IAAA7B,EAAA,EAEA,MAAA4P,EAAA3M,IAAApB,EAAA7B,IACAA,IAGA6B,GAAA7B,EAIA,OADA4P,EAAAq0C,IAAApiD,GAAA,GACAA,EAGA,IAAAK,EAtLA,SAAA6wU,EAAArxU,EAAAm2B,GACAizI,EAAAQ,WAAA5pK,KACAA,EAAAopK,EAAAS,mBAAA7pK,IAGAm2B,QACAk7S,UAAAxxU,QASA,IARA,IAAAusT,GAAAj2R,EAAAi2R,aAAAvsT,QACAwsT,EAAA/5P,EAAAn8B,EAAAk2R,WACAilB,EAAAh/Q,IACAi/Q,EAAAj/Q,IAEAhkD,KACAg+S,EA+IA,SAAAtsT,EAAAqxU,EAAAjlB,EAAAolB,GAGA,IAAAllB,EAAAhnT,KAAAE,IAAAxF,EAAAy6O,uBAAA,EAAA42F,EAAA7yU,OAAA4tT,EAAA5tT,OAAAgzU,GAAA,GAKA,OAJAx1S,EAAAq1S,EAAA,SAAAI,GACA,IAAAC,EAAAD,EAAArlB,QACAslB,IAAAplB,EAAAhnT,KAAAE,IAAA8mT,EAAAolB,EAAAlzU,WAEA8tT,EAvJAqlB,CAAA3xU,EAAAqxU,EAAAjlB,EAAAj2R,EAAAm2R,UAEAhuT,EAAA,EAAiBA,EAAAguT,EAAchuT,IAAA,CAC/B,IAAAszU,EAAAxlB,EAAA9tT,GAAA2I,KAA2C9J,EAAAivT,EAAA9tT,IAAA8tT,EAAA9tT,IAC3C6B,KAAAisT,EAAA9tT,KAEAuzU,EAAAD,EAAAzxU,KACA+2N,EAAA5oN,EAAAhQ,IACAq4R,cAGA,MAAAk7C,GAAA,MAAAP,EAAA/vU,IAAAswU,KAIA36G,EAAA/2N,KAAA+2N,EAAAwiB,YAAAm4F,EACAP,EAAA/uR,IAAAsvR,EAAAvzU,IAGA,MAAAszU,EAAA7wU,OAAAm2N,EAAAn2N,KAAA6wU,EAAA7wU,MACA,MAAA6wU,EAAAl4F,cAAAxiB,EAAAwiB,YAAAk4F,EAAAl4F,aAIA2yE,EAAArwR,KAAA,SAAA81S,EAAA3yS,GACA2yS,EAAAr+Q,EAAAq+Q,GAAAjyU,QACA,IAAAkyU,EAAA1lB,EAAA9pQ,IAAApjB,MACAnD,EAAA81S,EAAA,SAAAE,EAAAn0S,GAEA5gC,EAAA+0U,OAAAV,EAAA/vU,IAAAywU,IAEA,MAAAA,KAAA1lB,IACAylB,EAAAl0S,GAAAm0S,EACAC,EAAA3jU,EAAA0jU,GAAA7yS,EAAAtB,QAKA,IAAAq0S,EAAA,EAqDA,SAAAD,EAAA/6G,EAAA/3L,EAAAu3P,GACA,MAAAw6C,EAAA3vU,IAAA49B,GACA+3L,EAAAy/D,UAAAx3P,GAAAu3P,GAEAx/D,EAAA/3L,WACA+3L,EAAAw/D,gBACA66C,EAAAhvR,IAAApjB,GAAA,IA1DAnD,EAAAq1S,EAAA,SAAAI,EAAAU,GACA,IAAAhzS,EAEAuyS,EACAU,EAEA,GAAAn1U,EAAAw0U,GACAtyS,EAAAsyS,EACAA,SACK,CACLtyS,EAAAsyS,EAAAtxU,KACA,IAAA2rK,EAAA2lK,EAAA3lK,YACA2lK,EAAA3lK,YAAA,MACA2lK,EAAAlqS,EAAAkqS,IACA3lK,cAEA4lK,EAAAD,EAAArlB,QACAgmB,EAAAX,EAAA96C,UACA86C,EAAAtxU,KAAAsxU,EAAAtyS,SAAAsyS,EAAA/6C,cAAA+6C,EAAArlB,QAAAqlB,EAAA96C,UAAA,KAGA,IAAAm7C,EAAAr+Q,EAAA44P,EAAA9qT,IAAA49B,IAEA,IAAA2yS,EAAAtzU,OACA,QAAAF,EAAA,EAAqBA,GAAAozU,KAAAlzU,QAAA,GAA0DF,IAAA,CAC/E,KAAA4zU,EAAA5jU,EAAA9P,QAAA,MAAA8P,EAAA4jU,GAAA/yS,UACA+yS,IAGAA,EAAA5jU,EAAA9P,QAAAszU,EAAAhzU,KAAAozU,KAKAl2S,EAAA81S,EAAA,SAAAE,EAAAt7C,GACA,IAAAx/D,EAAA5oN,EAAA0jU,GAGA,GAFAC,EAAA1xS,EAAA22L,EAAAu6G,GAAAtyS,EAAAu3P,GAEA,MAAAx/D,EAAA/2N,MAAAuxU,EAAA,CACA,IAAAW,EAAAX,EAAAh7C,IACAv5R,EAAAk1U,QACAlyU,KAAAkyU,IAEAn7G,EAAA/2N,KAAA+2N,EAAAwiB,YAAA24F,EAAAlyU,KACA+2N,EAAAx7C,eAAA22J,EAAA32J,eAIA02J,GAAA7xS,EAAA22L,EAAAy/D,UAAAy7C,OAeA,IAAA99C,EAAAn+P,EAAAm+P,cACAi4B,EAAAp2R,EAAAo2R,mBACA6kB,EAAA,MAAA7kB,EACAA,EAAAj4B,EAAAi4B,GAAA,IAGA,IAFA,IAAAl7S,EAAAijR,GAAA,QAEA09C,EAAA,EAA4BA,EAAA1lB,EAAyB0lB,IAIrD,OAHA96G,EAAA5oN,EAAA0jU,GAAA1jU,EAAA0jU,QACA7yS,WAGA+3L,EAAA/3L,SAAAgyS,EAAA9/T,EAAAkgU,EAAAH,GACAl6G,EAAAw/D,cAAA,IAEApC,GAAAi4B,GAAA,KACAr1F,EAAAo7G,cAAA,GAGA/lB,KAGA,MAAAr1F,EAAA/2N,OAAA+2N,EAAA/2N,KAAAgxU,EAAAj6G,EAAA/3L,SAAAmyS,IAEA,MAAAp6G,EAAAn2N,MAAAi7O,EAAAh8O,EAAAgyU,EAAA96G,EAAA/2N,QACA+2N,EAAAn2N,KAAA,WAIA,OAAAuN,GAwCA7N,EAAAC,QAAAF,wBCtRA,IAAAG,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAER,IAAAmvT,EAAmBnvT,EAAQ,QAE3By1U,EAAwBz1U,EAAQ,QAEhC01U,EAAwB11U,EAAQ,QAoBhC6D,EAAAg4D,qBAAAszP,GACAtrT,EAAAw4D,eAAAo5Q,GACA5xU,EAAAm6D,eAAA03Q,yBChCA,IAAAp7S,EAAat6B,EAAQ,QAErB+mT,EAAoB/mT,EAAQ,QAE5Bo4C,EAAoBp4C,EAAQ,QAE5Bm4C,EAAiBn4C,EAAQ,QAEzB0oE,EAAkB1oE,EAAQ,QAE1BoxK,EAAA1oG,EAAA0oG,eACAttG,EAAA4E,EAAA5E,gBAEAlG,EAAuB59D,EAAQ,QAqB/B,SAAA21U,EAAAC,EAAAxxU,EAAAC,GACA5D,KAAA6E,OAAAswU,EAMAn1U,KAAA+hC,cACA/hC,KAAAo1U,eAAAv7S,EAAAlpB,IAAAwkU,EAAAhzI,qBAAA,SAAAkzI,EAAA/0S,GACA,IAAAjI,EAAA,aAAAiI,EACAg1S,EAAA,IAAAhvB,EAAAjuR,EAAA,IAAAsf,GAMA,OALA29R,EAAA1yU,KAAAyyU,EAAArxU,IAAA,QAEAsxU,EAAA/9S,MAAA89S,EACAA,EAAA5/S,KAAA6/S,EACAt1U,KAAA+hC,WAAAxgC,KAAA82B,GACAi9S,GACGt1U,MACHA,KAAAwc,OAAA24T,EAAAvxU,GAMA5D,KAAAuX,GAMAvX,KAAAwX,GAMAxX,KAAAyX,EAMAzX,KAAAo8B,WAGA84S,EAAAh1U,UAAAq1U,iBAAA,WACA,OAAAv1U,KAAAo1U,gBAGAF,EAAAh1U,UAAA+pC,YAAA,SAAA1iC,EAAAiuU,GACA,IAAAF,EAAAt1U,KAAAo1U,eAAAI,GACA,OAAAx1U,KAAA06C,aAAA46R,EAAAx+S,YAAAvvB,GAAAiuU,IAGAN,EAAAh1U,UAAAw6C,aAAA,SAAAtY,EAAAozS,GACA,IACAloS,EADAttC,KAAAo1U,eAAAI,GACAloS,MAGA,OAFAttC,KAAAuX,GAAA6qB,EAAAr6B,KAAA0jC,IAAA6B,GACAttC,KAAAwX,GAAA4qB,EAAAr6B,KAAA2jC,IAAA4B,KAIA4nS,EAAAh1U,UAAAkqC,YAAA,SAAA1M,GACA,IAAAqQ,EAAArQ,EAAA,GAAA19B,KAAAuX,GACAy2B,EAAAtQ,EAAA,GAAA19B,KAAAwX,GACAmL,EAAA5a,KAAAyjC,KAAAuC,IAAAC,KACAD,GAAAprB,EACAqrB,GAAArrB,EAQA,IAPA,IAIA8yT,EAJAC,EAAA3tU,KAAAkmC,OAAAD,EAAAD,GAGA4nS,EAAAl8R,IAEAm8R,GAAA,EAEA70U,EAAA,EAAiBA,EAAAf,KAAAo1U,eAAAn0U,OAAgCF,IAAA,CACjD,IAAAu0U,EAAAt1U,KAAAo1U,eAAAr0U,GACAujC,EAAAv8B,KAAAY,IAAA+sU,EAAAJ,EAAAhoS,OAEAhJ,EAAAqxS,IACAF,EAAAH,EACAM,EAAA70U,EACA40U,EAAArxS,GAIA,OAAAsxS,IAAAH,KAAAI,WAAAlzT,MAGAuyT,EAAAh1U,UAAAsc,OAAA,SAAA24T,EAAAvxU,GACA,IAAAkgB,EAAAqxT,EAAAnxU,IAAA,UACA0kM,EAAA9kM,EAAAkuD,WACA62I,EAAA/kM,EAAAmuD,YACAjgC,EAAA/pB,KAAAC,IAAA0gM,EAAAC,GAAA,EACA3oM,KAAAuX,GAAAmgC,EAAAhL,aAAA5oB,EAAA,GAAA4kL,GACA1oM,KAAAwX,GAAAkgC,EAAAhL,aAAA5oB,EAAA,GAAA6kL,GACA3oM,KAAAo8B,WAAA+4S,EAAAnxU,IAAA,cAAA+D,KAAAgwB,GAAA,IACA/3B,KAAAyX,EAAAigC,EAAAhL,aAAAyoS,EAAAnxU,IAAA,UAAA8tB,GACA+H,EAAA4E,KAAAz+B,KAAAo1U,eAAA,SAAAE,EAAAh1S,GACAg1S,EAAAn8R,UAAA,EAAAn5C,KAAAyX,GACA,IAAA61B,EAAAttC,KAAAo8B,WAAAkE,EAAAv4B,KAAAgwB,GAAA,EAAA/3B,KAAAo1U,eAAAn0U,OAEAqsC,EAAAvlC,KAAAkmC,MAAAlmC,KAAA2jC,IAAA4B,GAAAvlC,KAAA0jC,IAAA6B,IACAgoS,EAAAhoS,SACGttC,OAGHk1U,EAAAh1U,UAAAq8C,OAAA,SAAA54C,EAAAC,GACA,IAAAkyU,EAAA91U,KAAAo1U,eACAD,EAAAn1U,KAAA6E,OACAg1B,EAAA4E,KAAAq3S,EAAA,SAAAR,GACAA,EAAA/jU,MAAA4nC,UAAAM,YAEA91C,EAAAikM,iBAAA,iBAAAmuI,EAAAz1S,GACA,aAAAy1S,EAAA/xU,IAAA,qBAAAL,EAAAG,aAAA,QAAAiyU,EAAA/xU,IAAA,iBAAAmxU,EAAA,CAIA,IAAArkU,EAAAilU,EAAA7pT,UACA2N,EAAA4E,KAAAq3S,EAAA,SAAAR,GACAA,EAAA/jU,MAAA8nC,oBAAAvoC,IAAA0tB,aAAA82S,EAAAj9S,UAEGr4B,MACH,IAAAgoB,EAAAmtT,EAAAnxU,IAAA,eAEA,SAAAgyU,EAAAt8R,GACA,IAAAu8R,EAAAluU,KAAAI,IAAA,GAAAJ,KAAAkwC,MAAAlwC,KAAAvI,IAAAk6C,GAAA3xC,KAAAmuU,OAEAlzR,EAAAtJ,EAAAu8R,EASA,OAPA,IAAAjzR,EACAA,EAAA,EAGAA,GAAA,EAGAA,EAAAizR,EAIAp8S,EAAA4E,KAAAq3S,EAAA,SAAAR,EAAAh1S,GACA,IAAAi8P,EAAA5rH,EAAA2kK,EAAA/jU,MAAA+jU,EAAA/9S,OACA8rC,EAAAiyQ,EAAA/jU,MAAA+jU,EAAA/9S,OACA,IAAAlB,EAAAi/S,EAAA/9S,MACAhmB,EAAA+jU,EAAA/jU,MACA4kU,EAAA9/S,EAAAy6I,SACAslK,EAAA//S,EAAA06I,SACAr3H,EAAAnoC,EAAA+lN,cAEA,SAAA6+G,GAAA,MAAAC,EAEA7kU,EAAA4nC,WAAAg9R,GAAAC,GACA7kU,EAAAm3G,aAAA0tN,EAAAD,GAAAnuT,QACK,SAAAmuT,EAAA,CACL,IAAAluU,EAEA,GACAA,EAAAkuU,EAAAz8R,EAAA1xB,EACAzW,EAAA4nC,WAAAg9R,EAAAluU,GAGAsJ,EAAAm3G,YAAAhvE,GACAA,EAAAs8R,EAAAt8R,SACOzxC,EAAAs0R,EAAA,IAAAj+O,SAAAr2C,IAAAq2C,SAAAi+O,EAAA,UACF,SAAA65C,EAAA,CACL,IAAApuU,EAEA,GACAA,EAAAouU,EAAA18R,EAAA1xB,EACAzW,EAAA4nC,UAAAnxC,GAAAouU,GACA7kU,EAAAm3G,YAAAhvE,GACAA,EAAAs8R,EAAAt8R,SACO1xC,EAAAu0R,EAAA,IAAAj+O,SAAAt2C,IAAAs2C,SAAAi+O,EAAA,SACF,CACLhrR,EAAAmnC,WAAAz3C,OAAA,EAEA+mB,IACA0xB,EAAAs8R,EAAAt8R,IAIA,IAAA51B,EAAA/b,KAAAqC,OAAAmyR,EAAA,GAAAA,EAAA,MAAA7iP,KACA28R,EAAAtuU,KAAAqC,MAAA4d,EAAA,GACAzW,EAAA4nC,UAAAzB,EAAAttC,MAAA0Z,EAAAuyT,EAAA38R,GAAAhC,EAAAttC,MAAA0Z,GAAAkE,EAAAquT,GAAA38R,IACAnoC,EAAAm3G,YAAAhvE,OAUAw7R,EAAAnzS,cAEAmzS,EAAAxrS,OAAA,SAAA/lC,EAAAC,GACA,IAAA0yU,KAYA,OAXA3yU,EAAAkvD,cAAA,iBAAAsiR,GACA,IAAAh7T,EAAA,IAAA+6T,EAAAC,EAAAxxU,EAAAC,GACA0yU,EAAA/0U,KAAA4Y,GACAg7T,EAAA9mT,iBAAAlU,IAEAxW,EAAAikM,iBAAA,iBAAAmuI,GACA,UAAAA,EAAA/xU,IAAA,sBAEA+xU,EAAA1nT,iBAAAioT,EAAAP,EAAA/xU,IAAA,qBAGAsyU,GAGAn5Q,EAAAl5D,SAAA,QAAAixU,GACA,IAAAjyU,EAAAiyU,EACAhyU,EAAAC,QAAAF,wBCzPA,IAEA4kE,EAF4BtoE,EAAQ,QAEpCsoE,eA4BA3kE,EAAAC,QARA,SAAAQ,GACAA,EAAAikM,iBAAA,iBAAApsK,GACA,aAAAA,EAAAx3B,IAAA,WACA6jE,EAAArsC,0BC2BAt4B,EAAAC,QAlCA,SAAAQ,GACA,IAAAm4T,KACAn4T,EAAAikM,iBAAA,iBAAApsK,GACA,IAAA0rJ,EAAA1rJ,EAAAgrJ,oBACA11K,EAAA0qB,EAAAtP,UACAqqT,KACArvJ,EAAAzoJ,KAAA,SAAA6B,GACA,IAAA19B,EAAAskL,EAAA/iH,QAAA7jC,GAEAi2S,EAAA,MAAA3zU,GAAA09B,EACA,IACAn6B,EADA+gL,EAAA/hH,aAAA7kC,GACAt8B,IAAA,oBAAAw3B,EAAAylK,oBAAAr+L,EAAAk5T,GACA50I,EAAAjlH,cAAA3hC,EAAA,QAAAn6B,KAGA+gL,EAAA3kL,SACAuO,EAAA2tB,KAAA,SAAA6B,GACA,IACA2mJ,EADAn2K,EAAAq0D,aAAA7kC,GACA+kC,WAAA,YAEA,MAAA4hH,IACA,iBAAAA,IACAA,EAAAsvJ,EAAA,MAAAtvJ,IAGAn2K,EAAAojD,cAAA5zB,EAAA,aACAxvB,EAAAmxD,cAAA3hC,EAAA,QAAA4mJ,EAAAhzH,cAAA+yH,EAAA,sCC5Cc1nL,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAIrBkzL,EAFclzL,EAAQ,QAEtBkzL,aAEAj4K,EAAcjb,EAAQ,QAItBosM,EAFqBpsM,EAAQ,QAE7BosM,eAEAktB,EAAiBt5N,EAAQ,QAoBzBgrC,EAAA1Q,EAAA0Q,MACA9L,EAAA5E,EAAA4E,KACAK,EAAAtkB,EAAAskB,MAEA77B,EAAAG,EAAAG,qBACAC,KAAA,eACAgzU,iBAAA,EAKAh4T,KAAA,WAKAxe,KAAAg/B,MAAAC,IAAAj/B,KAAAy2U,cAAA,IAAA33S,GAMA9+B,KAAA02U,eAMAC,gBAAA,WACA,OAAA32U,KAAAy2U,eAMAhzU,OAAA,SAAA63L,EAAA33L,EAAAC,GAGA,GAFA5D,KAAA42U,aAEAt7I,EAAAt3L,IAAA,YAIA,IAAA6xJ,EAAAylC,EAAAt3L,IAAA,SAEA6xJ,GAAA,SAAAA,IACAA,EAAA,UAAAylC,EAAAt3L,IAAA,sBAAAs3L,EAAAt3L,IAAA,0BAGAhE,KAAA62U,YAAAhhL,EAAAylC,EAAA33L,EAAAC,GAEA,IAAAuvR,EAAA73F,EAAA1xH,qBACA8hI,GACA1yL,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aAEAx8B,EAAA+lK,EAAAt3L,IAAA,WACAg4K,EAAA68C,EAAA/1J,cAAAqwN,EAAAznF,EAAAn2K,GACAuhT,EAAA92U,KAAA+2U,YAAAz7I,EAAAzlC,EAAAmmB,GAEAo3G,EAAAv6D,EAAA/1J,cAAAjpC,EAAAmJ,UACAhqB,MAAA89T,EAAA99T,MACAC,OAAA69T,EAAA79T,QACKk6Q,GAAAznF,EAAAn2K,GACLv1B,KAAAg/B,MAAAj8B,KAAA,YAAAqwR,EAAA/uR,EAAAyyU,EAAAzyU,EAAA+uR,EAAA7uR,EAAAuyU,EAAAvyU,IAEAvE,KAAAg/B,MAAAC,IAAAj/B,KAAA02U,cAAA/qI,EAAAmrI,EAAAx7I,MAMAs7I,WAAA,WACA52U,KAAA22U,kBAAAzxS,YACAllC,KAAA02U,eAAA12U,KAAAg/B,MAAAv6B,OAAAzE,KAAA02U,gBAMAG,YAAA,SAAAhhL,EAAAylC,EAAA33L,EAAAC,GACA,IAAAozU,EAAAh3U,KAAA22U,kBACAM,EAAAp9S,EAAAk7B,gBACAmiR,EAAA57I,EAAAt3L,IAAA,gBACAiyD,KACAtyD,EAAAkvO,cAAA,SAAAr3M,IACAA,EAAAx3B,IAAA,oBAAAiyD,EAAA10D,KAAAi6B,EAAA95B,MAEA+8B,EAAA68J,EAAApvK,UAAA,SAAAg5C,EAAA9mC,GACA,IAAAx7B,EAAAsiE,EAAAlhE,IAAA,QAEA,GAAAhE,KAAAw2U,iBAAA,KAAA5zU,GAAA,OAAAA,EAAA,CAQA,IAAA44B,EAAA73B,EAAAwzU,gBAAAv0U,GAAA,GAEA,IAAAq0U,EAAAjzU,IAAApB,GAMA,GAAA44B,EAAA,CACA,IAAA1qB,EAAA0qB,EAAAtP,UACA/lB,EAAA2K,EAAA6wB,UAAA,SAEA,mBAAAx7B,IAEAA,IAAAq1B,EAAA++B,cAAA,KAIA,IAAA68Q,EAAAtmU,EAAA6wB,UAAA,6BACAmuC,EAAAh/D,EAAA6wB,UAAA,UAEA3hC,KAAAq3U,YAAAz0U,EAAAw7B,EAAA8mC,EAAAo2H,EAAA87I,EAAAtnQ,EAAA+lF,EAAA1vJ,EAAA+wU,GAEAx3T,GAAA,QAAA6qB,EAAA+sS,EAAA10U,EAAAgB,IAAA8b,GAAA,YAAA6qB,EAAAgtS,EAAA/7S,EAAA,KAAA53B,EAAAqyD,IAAAv2C,GAAA,WAAA6qB,EAAAitS,EAAAh8S,EAAA,KAAA53B,EAAAqyD,IACAghR,EAAAjyR,IAAApiD,GAAA,QAGAe,EAAAkvO,cAAA,SAAAr3M,GAEA,IAAAy7S,EAAAjzU,IAAApB,IAIA44B,EAAAupJ,mBAAA,CACA,IAAAj0K,EAAA0qB,EAAAupJ,qBACAzkJ,EAAAxvB,EAAAwtR,YAAA17R,GAEA,GAAA09B,EAAA,EACA,OAGA,IAAAn6B,EAAA2K,EAAAojD,cAAA5zB,EAAA,SAGAtgC,KAAAq3U,YAAAz0U,EAAAw7B,EAAA8mC,EAAAo2H,EAFA,YAEA,KAAAzlC,EAAA1vJ,EAAA+wU,GAGAx3T,GAAA,QAAA6qB,EAAA+sS,EAAA10U,EAAAgB,IACA8b,GAAA,YAAA6qB,EAAAgtS,EAAA/7S,EAAA54B,EAAAgB,EAAAqyD,IAAAv2C,GAAA,WAAA6qB,EAAAitS,EAAAh8S,EAAA54B,EAAAgB,EAAAqyD,IACAghR,EAAAjyR,IAAApiD,GAAA,KAES5C,WA1DTg3U,EAAA/3S,IAAA,IAAAH,GACAioR,SAAA,MA2DK/mT,OAELq3U,YAAA,SAAAz0U,EAAAw7B,EAAA8mC,EAAAo2H,EAAA87I,EAAAtnQ,EAAA+lF,EAAA1vJ,EAAA+wU,GACA,IAAA7wI,EAAA/K,EAAAt3L,IAAA,aACAoiM,EAAA9K,EAAAt3L,IAAA,cACA29Q,EAAArmF,EAAAt3L,IAAA,iBACAyzU,EAAAn8I,EAAAt3L,IAAA,oBACAugE,EAAA+2H,EAAA/2H,WAAA3hE,GACA80U,EAAA,IAAA54S,EACAy2H,EAAArwF,EAAA7lC,SAAA,aACAs4S,EAAAzyQ,EAAAlhE,IAAA,QACAglN,EAAA9jJ,EAAA7lC,SAAA,WACAu4S,EAAA5uH,EAAAljC,YAOA,GALAsxJ,EAAAO,GAAAP,EACAM,EAAAz4S,IAAAwzJ,EAAA2kJ,EAAA,IAAA/wI,EAAAD,EAAA7hI,EAAAp+D,EAAAw7Q,EACA,MAAA81D,QAGAE,GAAA7nQ,IACAA,IAAAsnQ,GAAA,QAAAtnQ,GAAA,CACA,IAAAj+C,EAAA,GAAAu0K,EAEA,SAAAt2H,IACAA,EAAA,UAIA4nQ,EAAAz4S,IAAAwzJ,EAAA3iH,GAAAu2H,EAAAx0K,GAAA,GAAAu0K,EAAAv0K,GAAA,EAAAA,IAAA0yC,EAAAp+D,EAAAw7Q,EACA,MAAA81D,OAGA,IAAAjgD,EAAA,SAAA3hI,EAAAwwC,EAAA,KACA3wJ,EAAAmgH,EACAjoJ,EAAA0tL,EAAAt3L,IAAA,aACAo8C,EAAAx9C,EAEA,iBAAAgL,KACAwyC,EAAAxyC,EAAArF,QAAA,SAAyC,MAAA3F,IAAA,IACpC,mBAAAgL,IACLwyC,EAAAxyC,EAAAhL,IAGA80U,EAAAz4S,IAAA,IAAAzkB,EAAA0wB,MACA3yB,MAAAiC,EAAA2/L,gBAAoC5kD,GACpClkH,KAAA+O,EACA/7C,EAAAmzR,EACAjzR,EAAA6hM,EAAA,EACA9uJ,SAAAitB,EAAAgxF,EAAAE,eAAAksH,EACAjsO,YACAC,kBAAA,cAIA,IAAAkiS,EAAA,IAAAr9T,EAAAyiB,MACAlV,MAAA2vT,EAAA5vS,kBACAuvH,WAAA,EACAthJ,QAAAizM,EAAAhlN,IAAA,QAAA61B,EAAAnwB,QACA02C,QAAAx9C,EAEAgL,UAAAgqU,EAAA5zU,IAAA,4BACA,OAAApB,GAEAkoU,iBACAl4Q,cAAA,SACAklR,YAAAx8I,EAAApjI,eACAt1D,OACA6pL,OAAA,UAEOu8B,EAAA/rM,QAAA,OAUP,OARAy6T,EAAAz4S,IAAA44S,GACAH,EAAA1wQ,UAAA,SAAA16B,GACAA,EAAAnI,QAAA,IAEA0zS,EAAA1zS,QAAA+yS,EACAl3U,KAAA22U,kBAAA13S,IAAAy4S,GACAl9T,EAAAmrD,cAAA+xQ,GACAA,EAAAK,kBAAA35S,EACAs5S,GAMAX,YAAA,SAAAz7I,EAAAzlC,EAAAmmB,GACA,IAAAg7J,EAAAh3U,KAAA22U,kBAEA99G,EAAAt2H,IAAA+4F,EAAAt3L,IAAA,UAAAgzU,EAAA17I,EAAAt3L,IAAA,WAAAg4K,EAAAhjK,MAAAgjK,EAAA/iK,QACA,IAAAixC,EAAA8sR,EAAAlvS,kBAEA,OADAkvS,EAAAj0U,KAAA,aAAAmnD,EAAA7lD,GAAA6lD,EAAA3lD,IACAvE,KAAAg/B,MAAA8I,qBAIA,SAAAwvS,EAAA10U,EAAAgB,GACAA,EAAAQ,gBACAZ,KAAA,qBACAZ,SAIA,SAAA20U,EAAA/7S,EAAA9H,EAAA9vB,EAAAqyD,GAEA,IAAAx1D,EAAAmD,EAAAe,QAAA2tD,QAAAC,iBAAA,GAEA9xD,KAAA04D,eACAv1D,EAAAQ,gBACAZ,KAAA,YACA4O,WAAAopB,EAAA54B,KACAA,KAAA8wB,EACAuiC,oBAKA,SAAAuhR,EAAAh8S,EAAA9H,EAAA9vB,EAAAqyD,GAEA,IAAAx1D,EAAAmD,EAAAe,QAAA2tD,QAAAC,iBAAA,GAEA9xD,KAAA04D,eACAv1D,EAAAQ,gBACAZ,KAAA,WACA4O,WAAAopB,EAAA54B,KACAA,KAAA8wB,EACAuiC,oBAKA/yD,EAAAC,QAAAF,wBCtTA,IAAAmpC,EAAA,WAAqB,OAAApsC,KAArB,IAAmCmZ,SAAA,cAAAA,GAInC6+T,EAAA5rS,EAAA6rS,oBACAruU,OAAAqyL,oBAAA7vJ,GAAAtsC,QAAA,yBAGAo4U,EAAAF,GAAA5rS,EAAA6rS,mBAOA,GAJA7rS,EAAA6rS,wBAAAvqU,EAEAxK,EAAAC,QAAiB5D,EAAQ,QAEzBy4U,EAEA5rS,EAAA6rS,mBAAAC,OAGA,WACA9rS,EAAA6rS,mBACG,MAAA9zU,GACHioC,EAAA6rS,wBAAAvqU,uBChCAvK,EAAA6/C,KAAcs1P,2CCAd,IAAArtS,EAAa1L,EAAQ,QAGrB44U,EAAAvuU,OAAA1J,UAGA2C,EAAAs1U,EAAAt1U,eAOA+1N,EAAAu/G,EAAAvwU,SAGAwwU,EAAAntU,IAAAwgP,iBAAA/9O,EA6BAxK,EAAAC,QApBA,SAAAoE,GACA,IAAA8wU,EAAAx1U,EAAA6I,KAAAnE,EAAA6wU,GACAjtH,EAAA5jN,EAAA6wU,GAEA,IACA7wU,EAAA6wU,QAAA1qU,EACA,IAAA4qU,GAAA,EACG,MAAAn0U,IAEH,IAAA4M,EAAA6nN,EAAAltN,KAAAnE,GAQA,OAPA+wU,IACAD,EACA9wU,EAAA6wU,GAAAjtH,SAEA5jN,EAAA6wU,IAGArnU,yBC1CA,IAAA3N,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAoBR6D,EAAAg4D,qBAAA,SAAAxiC,GAEAA,EAAAhf,SAAAgf,EAAAhf,qCC1Bcra,EAAQ,QAoBtBm8D,gBACAl4D,KAAA,wBACA+zD,MAAA,wBACAhb,OAAA,UACC,SAAA3Y,EAAAjgC,GACDA,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA,OACAC,MAAAnyB,GACG,SAAApI,GACH,IAAA4C,EAAAwF,EAAAxF,UAEA86B,EADA19B,EAAAtP,UAAA0+J,KACAR,mBAAAhsJ,GACA86B,EAAA6wH,UAAA7wH,EAAA6wH,gDCxBA7mL,EAAAC,QAAA,SAAAm+E,EAAAC,GACA,OAAAA,EACAD,EAAA/4E,QAAA,eAAAg5E,EAAAh5E,QAAA,WACA+4E,yBCZA/hF,EAAQ,SAQRg5U,EANeh5U,EAAQ,QAEvBg5U,iBAIA,MAFch5U,EAAQ,+BCNRA,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAErBorC,EAAUprC,EAAQ,QAElB8qR,EAAc9qR,EAAQ,QAEtB+yM,EAAA+3E,EAAA/3E,WACA1tB,EAAAylG,EAAAzlG,WACA6yC,EAAA4yD,EAAA5yD,UACA+gH,EAAAnuD,EAAAmuD,iBAEAv+S,EAAgB16B,EAAQ,QAExB2sD,EAAqB3sD,EAAQ,QAE7Bk5U,EAAwBl5U,EAAQ,QAEhCm5U,EAAsBn5U,EAAQ,QAE9B8rM,EAAc9rM,EAAQ,QAEtB01L,EAAAoW,EAAApW,gBACAI,EAAAgW,EAAAhW,iBAIA+6C,EAFY7wO,EAAQ,QAEpB6wO,WAEAuoG,EAAoBp5U,EAAQ,QAE5Bo9O,EAAAg8F,EAAAh8F,cACA9zE,EAAA8vK,EAAA9vK,UAIA6F,EAFoBnvK,EAAQ,QAE5BmvK,iBAoBAimB,EAAA16J,EAAAw6J,YACAtoI,EAAAD,EAAAxiD,QACAlG,KAAA,kBAKA2uB,YAAA,EAEA9D,iBAAA,KAMAqG,cAAA,KAOAqwJ,mBAAA,KAKApc,sBAAA,kBAQAksB,WAAA,KACAr2K,KAAA,SAAAvB,EAAA6oK,EAAAniL,EAAAmxL,GAKA90L,KAAAmyB,YAAAnyB,KAAAk4D,eACAl4D,KAAAyyO,SAAArC,GACA7tO,MAAAq2U,EACA9tU,MAAA+tU,IAEA74U,KAAAyyO,SAAA3kL,SACAv2B,MAAAv3B,MAEAA,KAAAqlL,qBAAApoK,EAAAtZ,GACAg5O,EAAA38O,MACA,IAAA8Q,EAAA9Q,KAAA4oK,eAAA3rJ,EAAAtZ,GACA24Q,EAAAxrQ,EAAA9Q,MACAA,KAAAyyO,SAAA3kL,QAAAh9C,OAMA6jL,EAAA30L,MAAA84U,oBAAAhoU,EAWAioU,EAAA/4U,OAQAqlL,qBAAA,SAAApoK,EAAAtZ,GACA,IAAAkxL,EAAA70L,KAAA60L,WACAG,EAAAH,EAAAI,EAAAh4K,MAKA+7T,EAAAh5U,KAAA81D,QAEA5J,EAAAwtB,SAAAs/P,KACAA,GAAA,UAGAn/S,EAAA82C,MAAA1zD,EAAAtZ,EAAAwxL,WAAAnxL,IAAAhE,KAAA81D,UACAj8B,EAAA82C,MAAA1zD,EAAAjd,KAAAo1L,oBAEAn7J,EAAAyqJ,gBAAAznK,EAAA,kBACAjd,KAAAilL,kBAAAhoK,EAAAnM,MAEA+jL,GACAQ,EAAAp4K,EAAA+3K,EAAAH,IAGAzP,YAAA,SAAA6zJ,EAAAt1U,GAEAs1U,EAAAp/S,EAAA82C,MAAA3wE,KAAAid,OAAAg8T,GAAA,GACAj5U,KAAAilL,kBAAAg0J,EAAAnoU,MACA,IAAA+jL,EAAA70L,KAAA60L,WAEAA,GACAQ,EAAAr1L,KAAAid,OAAAg8T,EAAApkJ,GAGA8nD,EAAA38O,MACA,IAAA8Q,EAAA9Q,KAAA4oK,eAAAqwK,EAAAt1U,GACA24Q,EAAAxrQ,EAAA9Q,MACAA,KAAAyyO,SAAArxO,QACApB,KAAAyyO,SAAA3kL,QAAAh9C,OACA6jL,EAAA30L,MAAA84U,oBAAAhoU,EACAioU,EAAA/4U,OAEAilL,kBAAA,SAAAn0K,GAIA,GAAAA,IAAA+oB,EAAA4xI,aAAA36J,GAGA,IAFA,IAAAhO,GAAA,QAEA/B,EAAA,EAAqBA,EAAA+P,EAAA7P,OAAiBF,IACtC+P,EAAA/P,IAAA+P,EAAA/P,GAAA0R,OACAwnB,EAAAyqJ,gBAAA5zK,EAAA/P,GAAA,QAAA+B,IAUA8lK,eAAA,aAOA1uG,WAAA,SAAAvoC,GAIA3xB,KAAAosL,aACAlyH,WAAAvoC,EAAA7gB,OAWAob,QAAA,SAAA7J,GACA,IAAAwuN,EAAAqoG,EAAAl5U,MAEA,GAAA6wO,EAAA,CACA,IAAA//N,EAAA+/N,EAAA/iL,QAAAh9C,KACA,aAAAuR,EAAAvR,IAAAqoU,cAAA92T,GAMA,OAAAsyK,EAAA30L,MAAA8Q,MAOAisK,QAAA,SAAAjsK,GACA,IAAA+/N,EAAAqoG,EAAAl5U,MAEA,GAAA6wO,EAAA,CACA,IAAA/iL,EAAA+iL,EAAA/iL,QAEAA,EAAAh9C,UAAA+/N,EAAAj0D,iBACAi0D,EAAAuoG,aAAAtoU,EAAAvO,SAGAurD,EAAAurR,WAAAvoU,EASA+/N,IAAA7wO,KAAAyyO,WACA3kL,EAAAh9C,QAIA6jL,EAAA30L,MAAA8Q,QAOA+3J,UAAA,WACA,OAAAA,EAAA7oK,OAOAosL,WAAA,WACA,OAAAuI,EAAA30L,MAAA84U,qBASAh8S,YAAA,WACA,IAAAzB,EAAAr7B,KAAAquB,iBACA,OAAAgN,KAAAyB,aAAAzB,EAAAyB,eAWA2pJ,cAAA,SAAAroJ,EAAAsoJ,EAAArkK,GAkCA,SAAAi3T,EAAA/rU,GACA,OAAAq3K,EAAA6yC,EAAAlqN,IAGA,IAAAuD,EAAA9Q,KAAAksB,UACAqtT,EAAAzoU,EAAA0tB,aAAA,uBACAg7S,EAAAD,EAAAt4U,OACAsG,EAAAvH,KAAA85M,YAAA17K,GACAq7S,EAAA5/S,EAAA/tB,QAAAvE,GACApB,EAAA2K,EAAAojD,cAAA91B,EAAA,SAEAvE,EAAAj6B,SAAAuG,MAAA+7B,aACA/7B,KAAA+7B,WAAA,QAAwC/7B,OAGxCA,KAAA,cAEA,IAAAgmR,EAAAqtD,EAAA,GAAAC,IAAAD,EAlDA,SAAAjyU,GAGA,IAAAmyU,EAAA7/S,EAAApU,OAAAle,EAAA,SAAAmyU,EAAAnsU,EAAA+yB,GACA,IAAA8yR,EAAAtiT,EAAAmxB,iBAAA3B,GACA,OAAAo5S,GAAAtmB,IAAA,IAAAA,EAAAr9S,SAAA,MAAAq9S,EAAAj3E,cACO,GACPprO,KAMA,SAAA4oU,EAAApsU,EAAA8qB,GACA,IAAA2J,EAAAlxB,EAAAmxB,iBAAA5J,GAEA,GAAA2J,IAAA,IAAAA,EAAAo3P,UAAArjR,QAAA,CAIA,IAAAu4J,EAAAtsI,EAAAx+B,KACAo2U,EAAApB,GACAryU,QACA3C,KAAA,YAEAq2U,GAAAH,EAAAE,EAAAh1J,EAAA5iJ,EAAAm6M,aAAA,cACAv3D,EAAA,YAAAtW,EAAA/gK,EAAA,YAAA+gK,EAAAoY,EAAA,GAAA4rB,EAAA,sBAAA/kM,GAAAkqN,EAAAlqN,IACAssU,GAAA9oU,EAAAxP,KAAAs4U,IAGA,OAtBAN,EAAAt4U,OAAA44B,EAAA4E,KAAA86S,EAAA,SAAAlhT,GACAshT,EAAAjrK,EAAA59J,EAAAstB,EAAA/F,QAEAwB,EAAA4E,KAAAl3B,EAAAoyU,IAmBAD,EAAA,YAAA3oU,EAAA3K,KAAAszU,EAAA,cAoBAI,CAAAvyU,GAAA+xU,EAAAE,EAAA9qK,EAAA59J,EAAAstB,EAAAm7S,EAAA,IAAAE,EAAAlyU,EAAA,GAAAA,GACAwyU,EAAAvB,EAAAryU,GACAvD,EAAAkO,EAAAqzD,QAAA/lC,GACAhsB,EAAApS,KAAA4C,KAOA,OALAq3B,EAAA2zP,gBAAA5tR,QACAoS,EAAA,IAGAA,IAAAwyK,EAAAxyK,IAAAs0K,EAAA,iBACAA,EAAAqzJ,EAAA3nU,EAAA+5Q,EAAA/5Q,EAAA2nU,GAAAn3U,EAAAgiL,EAAAhiL,GAAA,KAAAupR,MAMA1mN,mBAAA,WACA,GAAA96B,EAAAuuB,KACA,SAGA,IAAA8gR,EAAAh6U,KAAAqlE,WAAA,aAQA,OANA20Q,GACAh6U,KAAAksB,UAAA3pB,QAAAvC,KAAAqlE,WAAA,wBACA20Q,GAAA,GAIAA,GAEAzlR,YAAA,WACAv0D,KAAAyyO,SAAArxO,SAEA6/L,oBAAA,SAAAr+L,EAAAk/D,EAAAo/H,GACA,IAAAv9L,EAAA3D,KAAA2D,QAEAwC,EAAAsyU,EAAAx3I,oBAAAv1L,KAAA1L,KAAA4C,EAAAk/D,EAAAo/H,GAMA,OAJA/6L,IACAA,EAAAxC,EAAAs9L,oBAAAr+L,EAAAk/D,EAAAo/H,IAGA/6L,GAOA8zU,kBAAA,SAAAr4S,GACA,OAAA5hC,KAAAosL,aAAA5tJ,aAAAoD,GAAA,IAOApI,eAAA,WACA,OAAAx5B,KAAAgE,IAAA,gBAOAy1B,wBAAA,WACA,OAAAz5B,KAAAgE,IAAA,yBAWAujR,mBAAA,KAQA2yD,mBAAA,KAKAC,SAAA,KAOA3nG,mBAAA,KAOAtkK,gBAAA,OAUA,SAAA6qQ,EAAAv9S,GAGA,IAAA54B,EAAA44B,EAAA54B,KAEAq3B,EAAA2zP,gBAAApyP,KACAA,EAAA54B,KAIA,SAAA44B,GACA,IAAA1qB,EAAA0qB,EAAA4wJ,aACAmoJ,EAAAzjU,EAAA0tB,aAAA,iBACA47S,KAKA,OAJAvgT,EAAA4E,KAAA81S,EAAA,SAAAn2F,GACA,IAAAp8M,EAAAlxB,EAAAmxB,iBAAAm8M,GACAp8M,EAAAm6M,aAAAi+F,EAAA74U,KAAAygC,EAAAm6M,eAEAi+F,EAAAh0U,KAAA,KAZAi0U,CAAA7+S,IAAA54B,GAeA,SAAAg2U,EAAA9qR,GACA,OAAAA,EAAAv2B,MAAA60J,aAAA7pL,QAGA,SAAAs2U,EAAA/qR,GACA,IAAAtyB,EAAAsyB,EAAAv2B,MAEA,OADAiE,EAAAuhJ,QAAAvhJ,EAAA4wJ,aAAAk0G,gBACAg6C,EAGA,SAAAA,EAAAC,EAAAzsR,GAEAysR,EAAArpT,IAAA48B,EAAAurR,WAAA92U,SACAurD,EAAAv2B,MAAA60J,aAAAk0G,aAAAxyO,EAAAurR,YAKA,SAAA/8D,EAAAxrQ,EAAA0qB,GACA3B,EAAA4E,KAAA3tB,EAAA6vR,kBAAA,SAAAl5P,GACA32B,EAAA20K,WAAAh+I,EAAA5N,EAAA0Q,MAAAiwS,EAAAh/S,MAIA,SAAAg/S,EAAAh/S,GACA,IAAAq1M,EAAAqoG,EAAA19S,GAEAq1M,GAEAA,EAAAuoG,aAAAp5U,KAAAuC,SAIA,SAAA22U,EAAA19S,GACA,IAAAo1B,GAAAp1B,EAAA73B,aAA4CitD,UAC5CihL,EAAAjhL,KAAAyhL,YAAA72M,EAAA05B,KAEA,GAAA28K,EAAA,CAGA,IAAAhB,EAAAgB,EAAA4oG,YAEA,GAAA5pG,EAAA,CACA,IAAAM,EAAAN,EAAAM,aAEAA,IACAN,EAAAM,EAAAntO,IAAAw3B,EAAA05B,MAIA,OAAA27K,GA/EAh3M,EAAA8N,MAAAwkB,EAAAusR,GACA7+S,EAAA8N,MAAAwkB,EAAAssR,GAkFA,IAAAx1U,EAAAkpD,EACAjpD,EAAAC,QAAAF,wBC9hBA,IAAAy3U,EAAcn7U,EAAQ,QACtBk8L,EAAel8L,EAAQ,OAARA,CAAgB,YAC/Bm3M,EAAgBn3M,EAAQ,QACxB2D,EAAAC,QAAiB5D,EAAQ,QAASo7U,kBAAA,SAAAj6Q,GAClC,QAAAhzD,GAAAgzD,EAAA,OAAAA,EAAA+6H,IACA/6H,EAAA,eACAg2I,EAAAgkI,EAAAh6Q,2BCNA,IAAAjhE,EAAYF,EAAQ,QAEpBw1D,EAAAt1D,EAAAs1D,cACA02G,EAAAhsK,EAAAgsK,aAIAmvK,EAFar7U,EAAQ,QAErBq7U,iBAEA9uK,EAAkBvsK,EAAQ,QAE1B0sK,EAAAH,EAAAG,uBACAupD,EAAA1pD,EAAA0pD,wBACAwmB,EAAAlwE,EAAAkwE,sBACAjwE,EAAAD,EAAAC,0BACAgwE,EAAAjwE,EAAAiwE,4BAqEA,SAAAlwE,EAAA2pB,GAIAx1L,KAAA68O,YAAArnD,EAAAqnD,YAMA78O,KAAA8Q,KAAA0kL,EAAA1kL,OAAA0kL,EAAAhpB,eAAAuvE,SAOA/7O,KAAAwsK,aAAAgpB,EAAAhpB,cAAAwvE,EAOAh8O,KAAA4sK,eAAA4oB,EAAA5oB,gBAAA4oD,EAOAx1N,KAAAwtK,iBAAAgoB,EAAAhoB,iBAOAxtK,KAAA8oK,aAAA0sB,EAAA1sB,cAAA/zG,EAAAygI,EAAA1sB,cAMA9oK,KAAA83G,WAAA09E,EAAA19E,YAAA,EAMA93G,KAAAk9O,sBAAA1nD,EAAA0nD,sBAOArxE,EAAAS,mBAAA,SAAAx7J,GACA,WAAA+6J,GACA/6J,OACA07J,aAAAf,EAAA36J,GAAAi7J,EAAAE,EACA4wE,aAAA,KAIA+9F,EAAA/uK,GACA,IAAA5oK,EAAA4oK,EACA3oK,EAAAC,QAAAF,wBCvJA,IAAAG,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAAm7M,EAAgBn7M,EAAQ,QAExBkoE,EAAmBloE,EAAQ,QAE3Bs7U,EAAkBt7U,EAAQ,QAE1Bo6L,EAAiBp6L,EAAQ,QAEzBysD,EAAqBzsD,EAAQ,QAqB7B6D,EAAAw4D,eAAA8+I,EAAA,UACAt3M,EAAAw4D,eAAA6L,EAAA,mBACArkE,EAAAm6D,eAAAs9Q,GACAz3U,EAAAk4D,kBAAAq+H,EAAA,UACAv2L,EAAAg4D,qBAAApP,yBCzCA,IAAA8uR,EAAcv7U,EAAQ,QAEtBw7U,EAAAD,EAAApxS,OACAsjP,EAAA8tD,EAAA7tD,WAOA70O,EAAArwC,KAAAI,IACA6kO,EAAAjlO,KAAAyjC,KACAm5K,EAAA,KACAq2H,EAAA,KACAC,EAAAjuG,EAAA,GACAkuG,EAAA,IAEAC,EAAAJ,IAEAK,EAAAL,IAEAM,EAAAN,IAEA,SAAAvjB,EAAAjqT,GACA,OAAAA,GAAAo3M,GAAAp3M,EAAAo3M,EAGA,SAAAC,EAAAr3M,GACA,OAAAA,EAAAo3M,GAAAp3M,GAAAo3M,EAcA,SAAAV,EAAAr2K,EAAAhT,EAAAC,EAAAuY,EAAAq1C,GACA,IAAA6yP,EAAA,EAAA7yP,EACA,OAAA6yP,OAAA1tS,EAAA,EAAA66C,EAAA7tD,GAAA6tD,OAAAr1C,EAAA,EAAAkoS,EAAAzgT,GA8RA,SAAAq5J,EAAAtmJ,EAAAhT,EAAAC,EAAA4tD,GACA,IAAA6yP,EAAA,EAAA7yP,EACA,OAAA6yP,KAAA1tS,EAAA,EAAA66C,EAAA7tD,GAAA6tD,IAAA5tD,EA4LA13B,EAAA8gN,UACA9gN,EAAAo4U,kBA/cA,SAAA3tS,EAAAhT,EAAAC,EAAAuY,EAAAq1C,GACA,IAAA6yP,EAAA,EAAA7yP,EACA,YAAA7tD,EAAAgT,GAAA0tS,EAAA,GAAAzgT,EAAAD,GAAA6tD,GAAA6yP,GAAAloS,EAAAvY,GAAA4tD,MA8cAtlF,EAAAq4U,YA/bA,SAAA5tS,EAAAhT,EAAAC,EAAAuY,EAAA7lC,EAAA6pL,GAEA,IAAA7hL,EAAA69B,EAAA,GAAAxY,EAAAC,GAAA+S,EACAp4B,EAAA,GAAAqlB,EAAA,EAAAD,EAAAgT,GACAsyB,EAAA,GAAAtlC,EAAAgT,GACAnf,EAAAmf,EAAArgC,EACA4iC,EAAA36B,IAAA,EAAAD,EAAA2qD,EACAq4J,EAAA/iN,EAAA0qD,EAAA,EAAA3qD,EAAAkZ,EACAwhB,EAAAiwB,IAAA,EAAA1qD,EAAAiZ,EACA2vB,EAAA,EAEA,GAAAo5Q,EAAArnR,IAAAqnR,EAAAj/F,GACAi/F,EAAAhiT,GACA4hL,EAAA,MAEAhtG,GAAAlqB,EAAA1qD,IAEA,GAAA40E,GAAA,IACAgtG,EAAAh5I,KAAAgsC,OAGG,CACH,IAAAqxP,EAAAljH,IAAA,EAAApoL,EAAAF,EAEA,GAAAunR,EAAAikB,GAAA,CACA,IAAAr6G,EAAA7I,EAAApoL,EAGAk6C,GAAA+2I,EAAA,GAFAh3I,GAAA50E,EAAAD,EAAA6rN,IAIA,GAAAh3I,GAAA,IACAgtG,EAAAh5I,KAAAgsC,GAGAC,GAAA,GAAAA,GAAA,IACA+sG,EAAAh5I,KAAAisC,QAEK,GAAAoxP,EAAA,GACL,IAAAC,EAAA1uG,EAAAyuG,GACAE,EAAAxrS,EAAA36B,EAAA,IAAAD,IAAAgjN,EAAAmjH,GACAE,EAAAzrS,EAAA36B,EAAA,IAAAD,IAAAgjN,EAAAmjH,IAcAtxP,IAAA50E,IAXAmmU,EADAA,EAAA,GACAvjS,GAAAujS,EAAAT,GAEA9iS,EAAAujS,EAAAT,KAIAU,EADAA,EAAA,GACAxjS,GAAAwjS,EAAAV,GAEA9iS,EAAAwjS,EAAAV,OAGA,EAAA3lU,KAEA,GAAA60E,GAAA,IACAgtG,EAAAh5I,KAAAgsC,OAEK,CACL,IAAAi3I,GAAA,EAAAlxL,EAAA36B,EAAA,EAAAD,EAAAgjN,IAAA,EAAAyU,EAAA78L,QACA49L,EAAAhmO,KAAAqlO,KAAA/L,GAAA,EACAw6G,EAAA7uG,EAAA78L,GACAu/B,EAAA3nE,KAAA0jC,IAAAsiM,GACA3jJ,IAAA50E,EAAA,EAAAqmU,EAAAnsQ,IAAA,EAAAn6D,GAEA+0E,GADAD,IAAA70E,EAAAqmU,GAAAnsQ,EAAAurQ,EAAAlzU,KAAA2jC,IAAAqiM,MAAA,EAAAx4N,KACAC,EAAAqmU,GAAAnsQ,EAAAurQ,EAAAlzU,KAAA2jC,IAAAqiM,MAAA,EAAAx4N,IAEA60E,GAAA,GAAAA,GAAA,IACAgtG,EAAAh5I,KAAAgsC,GAGAC,GAAA,GAAAA,GAAA,IACA+sG,EAAAh5I,KAAAisC,GAGAC,GAAA,GAAAA,GAAA,IACA8sG,EAAAh5I,KAAAksC,IAKA,OAAAlsC,GA8WAj7C,EAAA6gN,aAhWA,SAAAp2K,EAAAhT,EAAAC,EAAAuY,EAAA0oS,GACA,IAAAtmU,EAAA,EAAAqlB,EAAA,GAAAD,EAAA,EAAAgT,EACAr4B,EAAA,EAAAqlB,EAAA,EAAAwY,EAAA,EAAAxF,EAAA,EAAA/S,EACAqlC,EAAA,EAAAtlC,EAAA,EAAAgT,EACAwQ,EAAA,EAEA,GAAAo5Q,EAAAjiT,GACAqvM,EAAApvM,KACA40E,GAAAlqB,EAAA1qD,IAEA,GAAA40E,GAAA,IACA0xP,EAAA19R,KAAAgsC,OAGG,CACH,IAAAqxP,EAAAjmU,IAAA,EAAAD,EAAA2qD,EAEA,GAAAs3P,EAAAikB,GACAK,EAAA,IAAAtmU,GAAA,EAAAD,QACK,GAAAkmU,EAAA,GACL,IACArxP,EADAsxP,EAAA1uG,EAAAyuG,GAEApxP,IAAA70E,EAAAkmU,IAAA,EAAAnmU,IADA60E,IAAA50E,EAAAkmU,IAAA,EAAAnmU,KAGA,GAAA60E,GAAA,IACA0xP,EAAA19R,KAAAgsC,GAGAC,GAAA,GAAAA,GAAA,IACAyxP,EAAA19R,KAAAisC,IAKA,OAAAjsC,GA+TAj7C,EAAA44U,eAjTA,SAAAnuS,EAAAhT,EAAAC,EAAAuY,EAAAq1C,EAAAt+C,GACA,IAAA6xS,GAAAphT,EAAAgT,GAAA66C,EAAA76C,EACAquS,GAAAphT,EAAAD,GAAA6tD,EAAA7tD,EACAshT,GAAA9oS,EAAAvY,GAAA4tD,EAAA5tD,EACAshT,GAAAF,EAAAD,GAAAvzP,EAAAuzP,EACAI,GAAAF,EAAAD,GAAAxzP,EAAAwzP,EACAI,GAAAD,EAAAD,GAAA1zP,EAAA0zP,EAEAhyS,EAAA,GAAAyD,EACAzD,EAAA,GAAA6xS,EACA7xS,EAAA,GAAAgyS,EACAhyS,EAAA,GAAAkyS,EAEAlyS,EAAA,GAAAkyS,EACAlyS,EAAA,GAAAiyS,EACAjyS,EAAA,GAAA+xS,EACA/xS,EAAA,GAAAiJ,GAkSAjwC,EAAA6vN,kBA9QA,SAAAjiL,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,EAAAnsC,EAAAE,EAAA4lC,GAEA,IAAAs+C,EAGAnpB,EACA76B,EACA63S,EACAC,EALA7iS,EAAA,KACAjrB,EAAAgrB,IAKA0hS,EAAA,GAAA92U,EACA82U,EAAA,GAAA52U,EAGA,QAAAwwE,EAAA,EAAkBA,EAAA,EAAQA,GAAA,IAC1BqmQ,EAAA,GAAAn3H,EAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAAwkC,GACAqmQ,EAAA,GAAAn3H,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAukC,IACAunQ,EAAAtvD,EAAAmuD,EAAAC,IAEA3sT,IACAg6D,EAAA1T,EACAtmD,EAAA6tT,GAIA7tT,EAAAgrB,IAEA,QAAA14C,EAAA,EAAiBA,EAAA,MACjB24C,EAAAshS,GADyBj6U,IAKzBu+D,EAAAmpB,EAAA/uC,EACAjV,EAAAgkD,EAAA/uC,EAEA0hS,EAAA,GAAAn3H,EAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAA+uB,GACA87Q,EAAA,GAAAn3H,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAA8uB,GACAg9Q,EAAAtvD,EAAAouD,EAAAD,GAEA77Q,GAAA,GAAAg9Q,EAAA7tT,GACAg6D,EAAAnpB,EACA7wC,EAAA6tT,IAGAjB,EAAA,GAAAp3H,EAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAA9L,GACA42S,EAAA,GAAAp3H,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAA/L,GACA83S,EAAAvvD,EAAAquD,EAAAF,GAEA12S,GAAA,GAAA83S,EAAA9tT,GACAg6D,EAAAhkD,EACAhW,EAAA8tT,GAEA7iS,GAAA,IAYA,OANAvP,IACAA,EAAA,GAAA85K,EAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAAk4C,GACAt+C,EAAA,GAAA85K,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAi4C,IAIAukJ,EAAAv+M,IAgNAtrB,EAAA+wL,cACA/wL,EAAAgxL,sBAvLA,SAAAvmJ,EAAAhT,EAAAC,EAAA4tD,GACA,aAAAA,IAAA7tD,EAAAgT,GAAA66C,GAAA5tD,EAAAD,KAuLAz3B,EAAAq5U,gBA1KA,SAAA5uS,EAAAhT,EAAAC,EAAAttB,EAAA6pL,GACA,IAAA7hL,EAAAq4B,EAAA,EAAAhT,EAAAC,EACArlB,EAAA,GAAAolB,EAAAgT,GACAsyB,EAAAtyB,EAAArgC,EACA6wC,EAAA,EAEA,GAAAo5Q,EAAAjiT,GACAqvM,EAAApvM,KACA40E,GAAAlqB,EAAA1qD,IAEA,GAAA40E,GAAA,IACAgtG,EAAAh5I,KAAAgsC,OAGG,CACH,IAAAqxP,EAAAjmU,IAAA,EAAAD,EAAA2qD,EAEA,GAAAs3P,EAAAikB,IACArxP,GAAA50E,GAAA,EAAAD,KAEA,GAAA60E,GAAA,IACAgtG,EAAAh5I,KAAAgsC,QAEK,GAAAqxP,EAAA,GACL,IACArxP,EADAsxP,EAAA1uG,EAAAyuG,GAEApxP,IAAA70E,EAAAkmU,IAAA,EAAAnmU,IADA60E,IAAA50E,EAAAkmU,IAAA,EAAAnmU,KAGA,GAAA60E,GAAA,IACAgtG,EAAAh5I,KAAAgsC,GAGAC,GAAA,GAAAA,GAAA,IACA+sG,EAAAh5I,KAAAisC,IAKA,OAAAjsC,GAqIAj7C,EAAAghN,kBAzHA,SAAAv2K,EAAAhT,EAAAC,GACA,IAAA4hT,EAAA7uS,EAAA/S,EAAA,EAAAD,EAEA,WAAA6hT,EAEA,IAEA7uS,EAAAhT,GAAA6hT,GAmHAt5U,EAAAqqR,mBArGA,SAAA5/O,EAAAhT,EAAAC,EAAA4tD,EAAAt+C,GACA,IAAA6xS,GAAAphT,EAAAgT,GAAA66C,EAAA76C,EACAquS,GAAAphT,EAAAD,GAAA6tD,EAAA7tD,EACAuhT,GAAAF,EAAAD,GAAAvzP,EAAAuzP,EAEA7xS,EAAA,GAAAyD,EACAzD,EAAA,GAAA6xS,EACA7xS,EAAA,GAAAgyS,EAEAhyS,EAAA,GAAAgyS,EACAhyS,EAAA,GAAA8xS,EACA9xS,EAAA,GAAAtP,GA2FA13B,EAAAu5U,sBAzEA,SAAA3rS,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAAzpC,EAAAE,EAAA4lC,GAEA,IAAAs+C,EACA/uC,EAAA,KACAjrB,EAAAgrB,IACA0hS,EAAA,GAAA92U,EACA82U,EAAA,GAAA52U,EAGA,QAAAwwE,EAAA,EAAkBA,EAAA,EAAQA,GAAA,IAC1BqmQ,EAAA,GAAAlnJ,EAAAnjJ,EAAAN,EAAA5C,EAAAknC,GACAqmQ,EAAA,GAAAlnJ,EAAAljJ,EAAAN,EAAA5C,EAAAinC,IACAunQ,EAAAtvD,EAAAmuD,EAAAC,IAEA3sT,IACAg6D,EAAA1T,EACAtmD,EAAA6tT,GAIA7tT,EAAAgrB,IAEA,QAAA14C,EAAA,EAAiBA,EAAA,MACjB24C,EAAAshS,GADyBj6U,IAAA,CAKzB,IAAAu+D,EAAAmpB,EAAA/uC,EACAjV,EAAAgkD,EAAA/uC,EAEA0hS,EAAA,GAAAlnJ,EAAAnjJ,EAAAN,EAAA5C,EAAAyxB,GACA87Q,EAAA,GAAAlnJ,EAAAljJ,EAAAN,EAAA5C,EAAAwxB,GACA,IAAAg9Q,EAAAtvD,EAAAouD,EAAAD,GAEA,GAAA77Q,GAAA,GAAAg9Q,EAAA7tT,EACAg6D,EAAAnpB,EACA7wC,EAAA6tT,MACK,CAELjB,EAAA,GAAAnnJ,EAAAnjJ,EAAAN,EAAA5C,EAAApJ,GACA42S,EAAA,GAAAnnJ,EAAAljJ,EAAAN,EAAA5C,EAAArJ,GACA,IAAA83S,EAAAvvD,EAAAquD,EAAAF,GAEA12S,GAAA,GAAA83S,EAAA9tT,GACAg6D,EAAAhkD,EACAhW,EAAA8tT,GAEA7iS,GAAA,IAYA,OANAvP,IACAA,EAAA,GAAA+pJ,EAAAnjJ,EAAAN,EAAA5C,EAAA46C,GACAt+C,EAAA,GAAA+pJ,EAAAljJ,EAAAN,EAAA5C,EAAA26C,IAIAukJ,EAAAv+M,0BCrgBclvB,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAIrBq7U,EAFar7U,EAAQ,QAErBq7U,iBA4BA,SAAA+B,EAAAj7U,GACA,aAAAA,EASA,IAAAk7U,EAAA,SAAAC,GAMA78U,KAAA88U,UAAAD,IAAA,EAMA78U,KAAAslL,SAMAtlL,KAAAklL,SAMAllL,KAAA+8U,aAMA/8U,KAAAg9U,aAMAh9U,KAAA8Q,KAMA9Q,KAAAwlL,UAGAy3J,EAAAL,EAAA18U,UAqSA,SAAAg9U,EAAAx7U,EAAA08B,GAIAp+B,KAAA0B,GAAA,MAAAA,EAAA,GAAAA,EAKA1B,KAAAwpM,WAKAxpM,KAAAopM,YAKAppM,KAAAklL,SAKAllL,KAAAm9U,UAKAn9U,KAAAo+B,UAAA,MAAAA,GAAA,EAAAA,EAiDA,SAAAg/S,EAAA1rH,EAAAC,EAAAvzL,GAKAp+B,KAAA8mL,MAAA4qC,EAMA1xN,KAAAgnL,MAAA2qC,EACA3xN,KAAAo+B,UAAA,MAAAA,GAAA,EAAAA,EA1XA6+S,EAAAz5U,KAAA,QAMAy5U,EAAAI,WAAA,WACA,OAAAr9U,KAAA88U,WASAG,EAAAK,QAAA,SAAA57U,EAAA08B,GACA18B,KAAA,GAAA08B,EACA,IAAAm/S,EAAAv9U,KAAA+8U,UAEA,IAAAQ,EAAAZ,EAAAj7U,IAAA,CAIA,IAAAw3D,EAAA,IAAAgkR,EAAAx7U,EAAA08B,GAIA,OAHA86B,EAAAikR,UAAAn9U,KACAA,KAAAslL,MAAA/jL,KAAA23D,GACAqkR,EAAAZ,EAAAj7U,IAAAw3D,EACAA,IASA+jR,EAAAnrH,eAAA,SAAA1zL,GACA,IAAAq/P,EAAAz9R,KAAA8Q,KAAAy4J,YAAAnrI,GACA,OAAAp+B,KAAAslL,MAAAm4G,IASAw/C,EAAA7zJ,YAAA,SAAA1nL,GACA,OAAA1B,KAAA+8U,UAAAJ,EAAAj7U,KAWAu7U,EAAAO,QAAA,SAAA9rH,EAAAC,EAAAvzL,GACA,IAAAm/S,EAAAv9U,KAAA+8U,UACAU,EAAAz9U,KAAAg9U,UAkBA,GAhBA,iBAAAtrH,IACAA,EAAA1xN,KAAAslL,MAAAosC,IAGA,iBAAAC,IACAA,EAAA3xN,KAAAslL,MAAAqsC,IAGAurH,EAAA7wK,WAAAqlD,KACAA,EAAA6rH,EAAAZ,EAAAjrH,KAGAwrH,EAAA7wK,WAAAslD,KACAA,EAAA4rH,EAAAZ,EAAAhrH,KAGAD,GAAAC,EAAA,CAIA,IAAA5nN,EAAA2nN,EAAAhwN,GAAA,IAAAiwN,EAAAjwN,GAEA,IAAA+7U,EAAA1zU,GAAA,CAIA,IAAA48K,EAAA,IAAAy2J,EAAA1rH,EAAAC,EAAAvzL,GAgBA,OAfAuoJ,EAAAw2J,UAAAn9U,KAEAA,KAAA88U,YACAprH,EAAAtoB,SAAA7nM,KAAAolL,GACAgrC,EAAAnoB,QAAAjoM,KAAAolL,IAGA+qC,EAAAxsC,MAAA3jL,KAAAolL,GAEA+qC,IAAAC,GACAA,EAAAzsC,MAAA3jL,KAAAolL,GAGA3mL,KAAAklL,MAAA3jL,KAAAolL,GACA82J,EAAA1zU,GAAA48K,EACAA,KASAs2J,EAAAr2J,eAAA,SAAAxoJ,GACA,IAAAq/P,EAAAz9R,KAAAwlL,SAAAjc,YAAAnrI,GACA,OAAAp+B,KAAAklL,MAAAu4G,IAUAw/C,EAAAS,QAAA,SAAAhsH,EAAAC,GACAurH,EAAA7wK,WAAAqlD,KACAA,IAAAhwN,IAGAw7U,EAAA7wK,WAAAslD,KACAA,IAAAjwN,IAGA,IAAA+7U,EAAAz9U,KAAAg9U,UAEA,OAAAh9U,KAAA88U,UACAW,EAAA/rH,EAAA,IAAAC,GAEA8rH,EAAA/rH,EAAA,IAAAC,IAAA8rH,EAAA9rH,EAAA,IAAAD,IAUAurH,EAAAh0J,SAAA,SAAA3hH,EAAAxZ,GAIA,IAHA,IAAAw3H,EAAAtlL,KAAAslL,MACAzjL,EAAAyjL,EAAArkL,OAEAF,EAAA,EAAiBA,EAAAc,EAASd,IAC1BukL,EAAAvkL,GAAAq9B,WAAA,GACAkpC,EAAA57D,KAAAoiD,EAAAw3H,EAAAvkL,OAWAk8U,EAAA3tG,SAAA,SAAAhoK,EAAAxZ,GAIA,IAHA,IAAAo3H,EAAAllL,KAAAklL,MACArjL,EAAAqjL,EAAAjkL,OAEAF,EAAA,EAAiBA,EAAAc,EAASd,IAC1BmkL,EAAAnkL,GAAAq9B,WAAA,GAAA8mJ,EAAAnkL,GAAA+lL,MAAA1oJ,WAAA,GAAA8mJ,EAAAnkL,GAAAimL,MAAA5oJ,WAAA,GACAkpC,EAAA57D,KAAAoiD,EAAAo3H,EAAAnkL,OAaAk8U,EAAAU,qBAAA,SAAAr2Q,EAAAs2Q,EAAA96R,EAAAgL,GAKA,GAJAovR,EAAA7wK,WAAAuxK,KACAA,EAAA59U,KAAA+8U,UAAAJ,EAAAiB,KAGAA,EAAA,CAMA,IAFA,IAAAC,EAAA,QAAA/6R,EAAA,kBAAAA,EAAA,kBAEA/hD,EAAA,EAAiBA,EAAAf,KAAAslL,MAAArkL,OAAuBF,IACxCf,KAAAslL,MAAAvkL,GAAA+8U,WAAA,EAGA,IAAAx2Q,EAAA57D,KAAAoiD,EAAA8vR,EAAA,MAMA,IAFA,IAAArgH,GAAAqgH,GAEArgH,EAAAt8N,QACA,KAAA88U,EAAAxgH,EAAA/vL,QACA03I,EAAA64J,EAAAF,GAEA,IAAA98U,EAAA,EAAmBA,EAAAmkL,EAAAjkL,OAAkBF,IAAA,CACrC,IAAAoD,EAAA+gL,EAAAnkL,GACAi9U,EAAA75U,EAAA2iL,QAAAi3J,EAAA55U,EAAA6iL,MAAA7iL,EAAA2iL,MAEA,IAAAk3J,EAAAF,UAAA,CACA,GAAAx2Q,EAAA57D,KAAAoiD,EAAAkwR,EAAAD,GAEA,OAGAxgH,EAAAh8N,KAAAy8U,GACAA,EAAAF,WAAA,OAYAb,EAAA1gS,OAAA,WAMA,IALA,IAAAzrC,EAAA9Q,KAAA8Q,KACA00K,EAAAxlL,KAAAwlL,SACAF,EAAAtlL,KAAAslL,MACAJ,EAAAllL,KAAAklL,MAEAnkL,EAAA,EAAAc,EAAAyjL,EAAArkL,OAAqCF,EAAAc,EAASd,IAC9CukL,EAAAvkL,GAAAq9B,WAAA,EAGA,IAAAr9B,EAAA,EAAAc,EAAAiP,EAAAvO,QAAqCxB,EAAAc,EAASd,IAC9CukL,EAAAx0K,EAAAy4J,YAAAxoK,IAAAq9B,UAAAr9B,EAGAykL,EAAAk+F,WAAA,SAAApjP,GACA,IAAAqmJ,EAAAzB,EAAAM,EAAAjc,YAAAjpI,IACA,OAAAqmJ,EAAAG,MAAA1oJ,WAAA,GAAAuoJ,EAAAK,MAAA5oJ,WAAA,IAGA,IAAAr9B,EAAA,EAAAc,EAAAqjL,EAAAjkL,OAAqCF,EAAAc,EAASd,IAC9CmkL,EAAAnkL,GAAAq9B,WAAA,EAGA,IAAAr9B,EAAA,EAAAc,EAAA2jL,EAAAjjL,QAAyCxB,EAAAc,EAASd,IAClDmkL,EAAAM,EAAAjc,YAAAxoK,IAAAq9B,UAAAr9B,GAQAk8U,EAAAjzS,MAAA,WAKA,IAJA,IAAAklI,EAAA,IAAA0tK,EAAA58U,KAAA88U,WACAx3J,EAAAtlL,KAAAslL,MACAJ,EAAAllL,KAAAklL,MAEAnkL,EAAA,EAAiBA,EAAAukL,EAAArkL,OAAkBF,IACnCmuK,EAAAouK,QAAAh4J,EAAAvkL,GAAAW,GAAA4jL,EAAAvkL,GAAAq9B,WAGA,IAAAr9B,EAAA,EAAiBA,EAAAmkL,EAAAjkL,OAAkBF,IAAA,CACnC,IAAAoD,EAAA+gL,EAAAnkL,GACAmuK,EAAAsuK,QAAAr5U,EAAA2iL,MAAAplL,GAAAyC,EAAA6iL,MAAAtlL,GAAAyC,EAAAi6B,WAGA,OAAA8wI,GAuCAguK,EAAAh9U,WACAC,YAAA+8U,EAKA5lB,OAAA,WACA,OAAAt3T,KAAAklL,MAAAjkL,QAMAg9U,SAAA,WACA,OAAAj+U,KAAAwpM,QAAAvoM,QAMAi9U,UAAA,WACA,OAAAl+U,KAAAopM,SAAAnoM,QAOAo+B,SAAA,SAAAh/B,GACA,KAAAL,KAAAo+B,UAAA,GAMA,OAFAp+B,KAAAm9U,UACArsU,KAAAq0D,aAAAnlE,KAAAo+B,WACAiB,SAAAh/B,KA+BA+8U,EAAAl9U,UAAAm/B,SAAA,SAAAh/B,GACA,KAAAL,KAAAo+B,UAAA,GAMA,OAFAp+B,KAAAm9U,UACA33J,SAAArgH,aAAAnlE,KAAAo+B,WACAiB,SAAAh/B,IAGA,IAAA89U,EAAA,SAAAC,EAAA1qT,GACA,OAKA+1J,SAAA,SAAAl5K,GACA,IAAAO,EAAA9Q,KAAAo+U,GAAA1qT,GACA,OAAA5iB,EAAA9M,IAAA8M,EAAA6xD,aAAApyD,GAAA,SAAAvQ,KAAAo+B,YAOA4jC,UAAA,SAAAj4D,EAAAxC,GACAvH,KAAAo+B,WAAA,GAAAp+B,KAAAo+U,GAAA1qT,GAAAuuC,cAAAjiE,KAAAo+B,UAAAr0B,EAAAxC,IAOAo6B,UAAA,SAAA53B,EAAAkgL,GACA,OAAAjqL,KAAAo+U,GAAA1qT,GAAAwgC,cAAAl0D,KAAAo+B,UAAAr0B,EAAAkgL,IAOAP,UAAA,SAAApyJ,EAAAq5C,GACA3wE,KAAAo+B,WAAA,GAAAp+B,KAAAo+U,GAAA1qT,GAAAi2J,cAAA3pL,KAAAo+B,UAAA9G,EAAAq5C,IAMAi5G,UAAA,WACA,OAAA5pL,KAAAo+U,GAAA1qT,GAAA8L,cAAAx/B,KAAAo+B,YAMAigT,aAAA,WACA,OAAAr+U,KAAAo+U,GAAA1qT,GAAAoQ,iBAAA9jC,KAAAo+B,YAMAmrI,YAAA,WACA,OAAAvpK,KAAAo+U,GAAA1qT,GAAA61I,YAAAvpK,KAAAo+B,cAKAvE,EAAA8N,MAAAu1S,EAAAiB,EAAA,qBACAtkT,EAAA8N,MAAAy1S,EAAAe,EAAA,yBACAvB,EAAAM,OACAN,EAAAQ,OACAxC,EAAAsC,GACAtC,EAAAwC,GACA,IAAAn6U,EAAA25U,EACA15U,EAAAC,QAAAF,wBC7iBA,IAAA42B,EAAat6B,EAAQ,QAErB+zJ,EAAoB/zJ,EAAQ,QAE5Bib,EAAcjb,EAAQ,QAItBkzL,EAFclzL,EAAQ,QAEtBkzL,aAEAn7J,EAAa/3B,EAAQ,QAErBi0J,EAAaj0J,EAAQ,QA6MrB0D,EAzLAqwJ,EAAA5pJ,QACAlG,KAAA,sBAMA6wJ,SAAA,WACA,IAAAG,EAAAx0J,KAAAg/B,MACAw1H,EAAAtvH,YACA,IAAAovH,EAAAt0J,KAAAs0J,eACAa,EAAAb,EAAAtwJ,IAAA,WACAuxJ,EAAAjB,EAAAiB,eACA9gH,EAAA8gH,EAAAC,UACAl+G,EAAAi+G,EAAAE,eAEAI,EAAA71J,KAAAs+U,gBAEAlpL,EAAAd,EAAAc,SAEAmpL,EAAAv+U,KAAAw+U,eAEAC,EAAAF,EAAAE,SACA/kI,EAAA7/K,EAAAmuC,SAAAssF,EAAAtwJ,IAAA,iBAAAy6U,GACAA,GAAAz+U,KAAA40J,gBAAAJ,EAAAiqL,EAAA,GAAArpL,EAAAskD,EAAA7jD,GACAh8H,EAAA4E,KAAA8/S,EAAAG,cAMA,SAAA/xU,GACA,IAAA4wL,EAAA5wL,EAAA4wL,MACAm6I,EAAA,IAAAl9T,EAAAskB,MACA44S,EAAAhpH,QAAA70L,EAAArvB,KAAAxK,KAAA2+U,aAAA3+U,KAAAu9L,GAEAv9L,KAAA4+U,iBAAAlH,EAAA/qU,EAAAkyU,uBAEA,IAAAC,EAAAxqL,EAAAyqL,kBAAAxhJ,GAIA,GAFAv9L,KAAAg/U,kBAAAtH,EAAAoH,GAAA,IAAA1pL,EAAA,GAAAA,EAAA,KAEAskD,EAAA,CACA,IAAAulI,EAAAj/U,KAAAs0J,eAAAzyF,cAAAi9Q,GACApH,EAAAz4S,IAAA,IAAAzkB,EAAA0wB,MACA3yB,OACAlU,EAAA,UAAAwxJ,GAAAV,EAAAC,EAAA,GAAAD,EACA5wJ,EAAA6wJ,EAAA,KACA/jH,KAAAksJ,EAAAlsJ,KACAsE,kBAAA,SACAD,UAAAmgH,EACAphH,WACA6C,WACAzkC,QAAA,eAAAosU,EAAA,SAKAzqL,EAAAv1H,IAAAy4S,IAjCA13U,MACAy+U,GAAAz+U,KAAA40J,gBAAAJ,EAAAiqL,EAAA,GAAArpL,EAAAskD,EAAA7jD,GACAv+H,EAAAirE,IAAA+xD,EAAAtwJ,IAAA,UAAAwwJ,EAAAF,EAAAtwJ,IAAA,YACAhE,KAAA80J,iBAAAN,GACAx0J,KAAAi1J,cAAAT,IAoCAoqL,iBAAA,SAAAlH,EAAA/3I,GAGA,SAAAu/I,EAAAxwS,GACA,IAAA4lH,EAAAt0J,KAAAs0J,eACAA,EAAAr3I,OAAA88I,WAAA/5J,KAAA4D,IAAAQ,gBACAZ,KAAAkrC,EACAuoB,MAAAu8F,EAAAuH,iBAAAzG,EAAAqG,sBAAAglC,MANA+3I,EAAAh4T,GAAA,YAAAma,EAAArvB,KAAA00U,EAAAl/U,KAAA,cAAA0f,GAAA,WAAAma,EAAArvB,KAAA00U,EAAAl/U,KAAA,cAcAs+U,cAAA,WACA,IAAAhqL,EAAAt0J,KAAAs0J,eACA6qL,EAAA7qL,EAAAr3I,OAEA,gBAAAkiU,EAAAriU,OACA,OAAA02I,EAAAsC,aAAAxB,EAAAt0J,KAAA4D,IAAA0wJ,EAAAc,UAGA,IAAAz8H,EAAAwmT,EAAAxmT,MAMA,OAJAA,GAAA,SAAAA,IACAA,EAAA,QAGAA,GAOAi8H,gBAAA,SAAA51H,EAAAqS,EAAA+jH,EAAAskD,EAAA7jD,GACA,GAAAxkH,EAAA,CAIA,IAAAqmS,EAAA,IAAAl9T,EAAAskB,MACAy2H,EAAAv1J,KAAAs0J,eAAAiB,eACAmiL,EAAAz4S,IAAA,IAAAzkB,EAAA0wB,MACA3yB,OACAlU,EAAAq1M,EAAA,UAAA7jD,EAAAT,EAAA,KAAAA,EAAA,KACA7wJ,EAAA6wJ,EAAA,KACAz/G,kBAAA,SACAD,UAAAgkK,EAAA7jD,EAAA,SACAxkH,OACAoD,SAAA8gH,EAAAC,UACAl+G,SAAAi+G,EAAAE,mBAGAz2H,EAAAC,IAAAy4S,KAOA8G,aAAA,WACA,IAAAlqL,EAAAt0J,KAAAs0J,eACAoqL,EAAA7kT,EAAAlpB,IAAA2jJ,EAAA8qL,eAAA,SAAA7hJ,EAAA3wL,GACA,OACA2wL,QACAshJ,sBAAAjyU,KAGA6xU,EAAAnqL,EAAAtwJ,IAAA,QAEA8Y,EAAAw3I,EAAAtwJ,IAAA,UACAu4B,EAAA+3H,EAAAtwJ,IAAA,WASA,OAPA,eAAA8Y,EAAAyf,MACAmiT,EAAAn3T,UAEAk3T,IACAA,IAAAn8U,QAAAilB,YAIAm3T,gBACAD,aAOAO,kBAAA,SAAAhgT,EAAA8/S,EAAAO,GACArgT,EAAAC,IAAAwzJ,EAAAzyL,KAAAg5J,oBAAA8lL,EAAA,UAAAO,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAr/U,KAAAg5J,oBAAA8lL,EAAA,YAMAH,aAAA,SAAAphJ,GACA,IAAAjpC,EAAAt0J,KAAAs0J,eACAr3I,EAAAq3I,EAAAr3I,OACAyN,EAAAmP,EAAAmQ,MAAA/sB,EAAAyN,UACA40T,EAAAhrL,EAAAirL,kBAAAhiJ,GAEA,WAAAtgL,EAAA+F,cACA0H,EAAA40T,IAAA,EACAzlT,EAAA4E,KAAA/T,EAAA,SAAAymD,EAAApnE,GACA2gB,EAAA3gB,OAAAu1U,KAGA50T,EAAA40T,IAAA50T,EAAA40T,GAGAt/U,KAAA4D,IAAAQ,gBACAZ,KAAA,kBACAuI,KAAA/L,KAAAk1D,IACAwiG,YAAA13J,KAAAs0J,eAAA5yJ,GACAgpB,gBAKAxnB,EAAAC,QAAAF,wBC1NAC,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAA2B6xE,YAAA,yBCAjE,IAAAjlB,EAAkB5sD,EAAQ,QAE1B4oL,EAAuB5oL,EAAQ,QAI/BigV,EAFuBjgV,EAAQ,QAE/BigV,uBAEA/6J,EAAWllL,EAAQ,QAEnBs6B,EAAat6B,EAAQ,QAIrBqlL,EAFcrlL,EAAQ,QAEtBqlL,WAEAikB,EAAWtpM,EAAQ,QA0BnBkgV,EAAAtzR,EAAAziD,QACAlG,KAAA,oBACAixB,cAAA,cAMA27K,QAAA,KAKA5xL,KAAA,SAAAvB,GACAwiU,EAAA76U,WAAA5E,KAAA,OAAA8E,WAIA9E,KAAA+kL,mBAAA,WACA,OAAA/kL,KAAAosL,eAUAszJ,QAAA,SAAA5uU,GAiBA,IAhBA,IAAA6uU,EAAA7uU,EAAA7P,OAEA2+U,EAAA/2I,IAAA9+L,IAAA,SAAAqwC,GACA,OAAAA,EAAA,KACK8K,QAAAp0C,GAEL+uU,EAAAhmT,EAAAlpB,IAAAivU,EAAA,SAAAnxT,GACA,OACA7rB,KAAA6rB,EAAA1kB,IACA+1U,SAAArxT,EAAA2C,UAGA2uT,EAAAF,EAAA5+U,OACA++U,GAAA,EACApzU,GAAA,EAEA7L,EAAA,EAAmBA,EAAAg/U,IAAch/U,EAAA,CACjC,IAAAc,EAAAg+U,EAAA9+U,GAAA++U,SAAA7+U,OAEAY,EAAAm+U,IACAA,EAAAn+U,EACA+K,EAAA7L,GAIA,QAAA0nB,EAAA,EAAmBA,EAAAs3T,IAAct3T,EACjC,GAAAA,IAAA7b,EAMA,IAFA,IAAAhK,EAAAi9U,EAAAp3T,GAAA7lB,KAEAswB,EAAA,EAAqBA,EAAA8sT,IAAkB9sT,EAAA,CAKvC,IAJA,IAAA+sT,EAAAJ,EAAAjzU,GAAAkzU,SAAA5sT,GAAA,GACAjyB,EAAA4+U,EAAAp3T,GAAAq3T,SAAA7+U,OACAi/U,GAAA,EAEAl/U,EAAA,EAAuBA,EAAAC,IAAYD,EAAA,CAGnC,GAFA6+U,EAAAp3T,GAAAq3T,SAAA9+U,GAAA,KAEAi/U,EAAA,CACAC,EAAAl/U,EACA,QAIA,IAAAk/U,IACApvU,EAAA6uU,MACA7uU,EAAA6uU,GAAA,GAAAM,EACAnvU,EAAA6uU,GAAA,KACA7uU,EAAA6uU,GAAA,GAAA/8U,EACA+8U,KAKA,OAAA7uU,GASA83J,eAAA,SAAA3rJ,EAAAtZ,GAiBA,IAhBA,IAKA2nD,EALA3nD,EAAAgyL,iBACArmI,SAAA,aACA1iD,MAAA5M,KAAAgE,IAAA,mBACAtC,GAAA1B,KAAAgE,IAAA,kBACK,GACLA,IAAA,QAEAm8U,EAAAtmT,EAAAzS,OAAAnK,EAAAnM,KAAA,SAAAspC,GACA,YAAA1sC,IAAA0sC,EAAA,KAGAtpC,EAAA9Q,KAAA0/U,QAAAS,OACArkD,KACA1rF,EAAApwM,KAAAowM,QAAAv2K,EAAAk7B,gBACAxyD,EAAA,EAEAxB,EAAA,EAAmBA,EAAA+P,EAAA7P,SAAiBF,EACpC+6R,EAAAv6R,KAAAuP,EAAA/P,GAlHA,IAoHAqvM,EAAApsM,IAAA8M,EAAA/P,GApHA,MAqHAqvM,EAAAprJ,IAAAl0C,EAAA/P,GArHA,GAqHAwB,GACAA,KAIA,IAAA4oL,EAAAhD,EAAAr3K,GACAs6K,iBAAA,UACA5d,mBACA5qK,KAAA,OACAY,KAAAg8U,EAAAl0R,KAEA1oD,KAAA,QACAY,KAAA,UAEAZ,KAAA,OACAY,KAAA,YAEAslK,cACAZ,OAAA,EACA3gK,MAAA,EACAijB,SAAA,KAGAqC,EAAA,IAAA43J,EAAA0G,EAAAnrL,MAEA,OADA6sB,EAAAogE,SAAAn8E,GACA+b,GASA6pS,eAAA,WAKA,IAJA,IAAA5lT,EAAA9Q,KAAAksB,UACAk0T,EAAAtvU,EAAAvO,QACA89U,KAEAt/U,EAAA,EAAmBA,EAAAq/U,IAAcr/U,EACjCs/U,EAAAt/U,KAeA,IAXA,IAAA6+U,EAAA/2I,IAAA9+L,IAAA,SAAA6C,GACA,OAAAkE,EAAA9M,IAAA,OAAA4I,KACKs4C,QAAAm7R,GACL5pB,EAAA58R,EAAAlpB,IAAAivU,EAAA,SAAAnxT,GACA,OACA7rB,KAAA6rB,EAAA1kB,IACA2rE,QAAAjnD,EAAA2C,UAGAkvT,EAAAxvU,EAAA0tB,aAAA,UAEAtL,EAAA,EAAmBA,EAAAujS,EAAAx1T,SAAwBiyB,EAC3CujS,EAAAvjS,GAAAwiD,QAAApgE,KAAAirU,GAGA,SAAAA,EAAAC,EAAAC,GACA,OAAA3vU,EAAA9M,IAAAs8U,EAAAE,GAAA1vU,EAAA9M,IAAAs8U,EAAAG,GAGA,OAAAhqB,GAYAlvC,mBAAA,SAAAlvP,EAAA9wB,EAAA+1B,GACAzD,EAAA/tB,QAAAusB,KACAA,YASA,IANA,IAIAmvP,EAJA12Q,EAAA9Q,KAAAksB,UACAuqS,EAAAz2T,KAAA02T,iBACAhhP,KACAqqQ,EAAAtpB,EAAAx1T,OAGAF,EAAA,EAAmBA,EAAAg/U,IAAch/U,EAAA,CAKjC,IAJA,IAAAqmR,EAAArsQ,OAAAqtM,UACAs4H,GAAA,EACAC,EAAAlqB,EAAA11T,GAAA20E,QAAAz0E,OAEAiyB,EAAA,EAAqBA,EAAAytT,IAAcztT,EAAA,CACnC,IAAA0tT,EAAA9vU,EAAA9M,IAAAq0B,EAAA,GAAAo+R,EAAA11T,GAAA20E,QAAAxiD,IACA2gK,EAAA9rL,KAAAY,IAAAi4U,EAAAr5U,GAEAssL,GAAAuzF,IACAI,EAAAo5D,EACAx5D,EAAAvzF,EACA6sJ,EAAAjqB,EAAA11T,GAAA20E,QAAAxiD,IAIAwiD,EAAAn0E,KAAAm/U,GAGA,OACA55I,YAAApxH,EACA8xM,iBAQA/gG,cAAA,SAAAroJ,GACA,IAAAttB,EAAA9Q,KAAAksB,UACA20T,EAAA/vU,EAAAqzD,QAAA/lC,GACA0iT,EAAAhwU,EAAA9M,IAAA8M,EAAA0tB,aAAA,SAAAJ,GAMA,OAJA3zB,MAAAq2U,IAAA,MAAAA,KACAA,EAAA,KAGAl8J,EAAAi8J,EAAA,MAAAC,IAEApsT,eACAC,OAAA,EACAC,EAAA,EACAvG,iBAAA,aAEAqE,aAAA,aAEAquT,gBAAA,EACAn3K,gBAAA,SACAn3J,OACAy3D,OAAA,EACA7kE,MAAA,EACA+I,SAAA,OACAjI,MAAA,OACA0vB,SAAA,IAEAvP,UACA7T,OACApN,MAAA,OAKApC,EAAAw8U,EACAv8U,EAAAC,QAAAF,qCClTAE,EAAAiuE,YAAA,EACAjuE,EAAAob,qBAAApb,EAAAmb,uBAAA5Q,EAEA,IAIAvC,EAJA61U,EAA8BzhV,EAAQ,QAEtC0hV,GAEA91U,EAFA61U,IAEsC71U,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA+1U,EAAA,oBAAAvxU,OAGAkP,EAAA,SAAAqmC,GACA,IAAAi8R,EAAAj8R,EAAAk8R,EAAAv1U,MAAAC,QAAAq1U,GAAAx6O,EAAA,MAAAw6O,EAAAC,EAAAD,IAAAl2U,OAAAC,cAA8I,CAC9I,IAAAgD,EAEA,GAAAkzU,EAAA,CACA,GAAAz6O,GAAAw6O,EAAAlgV,OAAA,MACAiN,EAAAizU,EAAAx6O,SACK,CAEL,IADAA,EAAAw6O,EAAA18S,QACApjC,KAAA,MACA6M,EAAAy4F,EAAAp/F,MAGA,IAEAi+E,EAFAt3E,EAEA3N,OAAA8gV,wBACA77P,EAAAvkF,QACAukF,EAAA17E,QAAA,SAAAmC,GACAA,QAOA9I,EAAAmb,kBAAA,SAAAmoB,EAAAx6B,GACAi1U,IACAz6S,EAAA46S,sBACA56S,EAAA46S,uBACA56S,EAAA66S,OAAA,IAAAL,EAAAloU,QAAA8F,GACA4nB,EAAA66S,OAAA95R,QAAA/gB,IAEAA,EAAA46S,oBAAA9/U,KAAA0K,KAIA9I,EAAAob,qBAAA,SAAAkoB,EAAAx6B,GACAw6B,KAAA46S,sBACA56S,EAAA46S,oBAAA//U,OAAAmlC,EAAA46S,oBAAAvhV,QAAAmM,GAAA,GACAw6B,EAAA46S,oBAAApgV,QACAwlC,EAAA66S,OAAA15R,mCCtDA1kD,EAAAC,iCCAc5D,EAAQ,QAEtBq6B,QAFA,IAIAn6B,EAAYF,EAAQ,QAEpBk/B,EAAAh/B,EAAAg/B,KACArX,EAAA3nB,EAAA2nB,OACAzW,EAAAlR,EAAAkR,IACA7E,EAAArM,EAAAqM,QACAhM,EAAAL,EAAAK,QACAF,EAAAH,EAAAG,SACAF,EAAAD,EAAAC,SACAq1D,EAAAt1D,EAAAs1D,cACApI,EAAAltD,EAAAktD,OACA3iB,EAAAvqC,EAAAuqC,MACA2mC,EAAAlxE,EAAAkxE,MACAjnE,EAAAjK,EAAAiK,OACAi+B,EAAAloC,EAAAkoC,MAEA1N,EAAgB16B,EAAQ,QAExBolL,EAAYplL,EAAQ,QAEpB2sD,EAAqB3sD,EAAQ,QAE7BgiV,EAAoBhiV,EAAQ,QAE5Bk5U,EAAwBl5U,EAAQ,QAIhCk9O,EAFoBl9O,EAAQ,QAE5Bk9O,qBAuCA+kG,EAAA,cASA51R,EAAA+4H,EAAAj7K,QACA8U,KAAA,SAAAvB,EAAA6oK,EAAAnrK,EAAA+2C,GACA/2C,QACA3a,KAAAid,OAAA,KAOAjd,KAAAyuD,OAAA,IAAAk2H,EAAAhqK,GAKA3a,KAAAyhV,eAAA/vR,GAEA3zC,UAAA,SAAAd,EAAA00C,GACAhF,IAAA60R,KAAAvkU,GAAA,gCAEAjd,KAAAyhV,eAAA1jU,UAAAd,EAAA00C,GAEA3xD,KAAAy5D,YAAA,OAUAA,YAAA,SAAAj2D,GACA,IAAAg2D,GAAA,EACA9H,EAAA1xD,KAAAyhV,eAEA,IAAAj+U,GAAA,aAAAA,EAAA,CACA,IAAAk+U,EAAAhwR,EAAAiwR,YAAA,aAAAn+U,GAEAxD,KAAAid,QAAA,aAAAzZ,GAGAxD,KAAAu0D,cACAv0D,KAAAolL,YAAAs8J,IA2eA,SAAAA,GACAA,IAGA1hV,KAAAid,UACAjd,KAAAid,OAAAukU,GAAA,EAQAxhV,KAAA6uD,eAAAkG,GACAziD,YASAtS,KAAA4hV,eACA5hV,KAAA6hV,kBA9CA5kU,EA+CAykU,EA/CA/mU,EA+CA3a,KAAAyuD,OAAAxxC,OA5CA6kU,EAAA7kU,EAAA9W,QAAA8W,EAAAmyD,WACA3wC,EAAA9jB,EAAA,SAAAonU,EAAAn/U,GACA,eAAAA,GAAAk/U,GAKA51R,EAAAwtB,SAAA92E,KACA,iBAAAm/U,EACA9kU,EAAAra,GAAAqa,EAAAra,GAAA+tE,EAAA1zD,EAAAra,GAAAm/U,GAAA,GAAA/3S,EAAA+3S,GAEA,MAAA9kU,EAAAra,KACAqa,EAAAra,GAAAm/U,MAkCApxQ,EAAA+wQ,EAAAH,GAAA,GACAvhV,KAAAolL,YAAAs8J,GAlDA,IAAAzkU,EAAAtC,EAGAmnU,GA3dAp2U,KAAA1L,KAAA0hV,GAMAloR,GAAA,EAOA,GAJA,aAAAh2D,GAAA,UAAAA,GACAxD,KAAAu0D,eAGA/wD,GAAA,aAAAA,GAAA,aAAAA,EAAA,CACA,IAAAw+U,EAAAtwR,EAAAuwR,kBAAAjiV,MACAgiV,IAAAhiV,KAAAolL,YAAA48J,GAAAxoR,GAAA,GAGA,IAAAh2D,GAAA,aAAAA,GAAA,UAAAA,EAAA,CACA,IAAA0+U,EAAAxwR,EAAAywR,eAAAniV,UAAAivD,MAEAizR,EAAAjhV,QACAw9B,EAAAyjT,EAAA,SAAAE,GACApiV,KAAAolL,YAAAg9J,EAAA5oR,GAAA,IACSx5D,MAIT,OAAAw5D,GAMA4rH,YAAA,SAAAzjH,GACA,IAAA1kD,EAAAjd,KAAAid,OACAolU,EAAAriV,KAAA6uD,eACAyzR,KACA7lG,EAAAz8O,MAGAy+B,EAAAkjC,EAAA,SAAA4gR,EAAAjzR,GACA,MAAAizR,IAIAr2R,EAAAwtB,SAAApqB,GAGOA,GACPgzR,EAAA/gV,KAAA+tD,GAFAryC,EAAAqyC,GAAA,MAAAryC,EAAAqyC,GAAAtlB,EAAAu4S,GAAA5xQ,EAAA1zD,EAAAqyC,GAAAizR,GAAA,MAKAr2R,EAAA20J,kBAAAyhI,EAAAp2R,EAAAs2R,uBAEA,SAAAlzR,EAAA76B,GACA,IAAAguT,EAAAxoT,EAAAi8B,iBAAAyL,EAAArS,IACAozR,EAAAzoT,EAAAu/L,gBAAA6oH,EAAAr+U,IAAAsrD,GAAAmzR,GACAxoT,EAAAw/L,cAAAipH,GAEAjkT,EAAAikT,EAAA,SAAA/1U,EAAAC,GACA,IAAAgsB,EAAAjsB,EAAAsQ,OAEArd,EAAAg5B,KACAjsB,EAAAotN,QAAAzqK,WACA3iD,EAAAotN,QAAAjkK,QAkeA,SAAAxG,EAAAimI,EAAAotJ,GAIA,OAHAptJ,EAAA/xL,KAAA+xL,EAAA/xL,KAAAm/U,IAAA7sR,QACA5J,EAAAo0J,iBAAAhxJ,EAAAimI,GApeA+qB,CAAAhxJ,EAAA12B,EAAAjsB,EAAAmtN,UAGA,IAAAllC,EA+cA,SAAAytJ,EAAA1iP,GACA7zF,EAAA6zF,KACAA,YAGA,IAAAhpB,KAIA,OAHAl4C,EAAAkhE,EAAA,SAAAn8F,GACAmzE,EAAAnzE,IAAA6+U,EAAAr+U,IAAAR,QAAAlB,UAEAq0E,EAxdAisQ,CAAAP,EAAA5tT,GACAxX,EAAAqyC,MACA+yR,EAAAr9R,IAAAsK,MACA7wB,EAAAikT,EAAA,SAAA/oH,EAAA/sN,GACA,IAAAwnD,EAAAulK,EAAAG,MACAvkC,EAAAokC,EAAA18M,OAKA,GAJA0vC,EAAA/sD,EAAA21L,IAAAnhI,EAAA,8BAIAmhI,EAGS,CACT,IAAAstJ,EAAA32R,EAAA8L,SAAA1I,EAAAqqK,EAAAI,QAAAjkK,SAAA,GAEA,GAAA1B,gBAAAyuR,EACAzuR,EAAAxxD,KAAA+2N,EAAAI,QAAAn3N,KAEAwxD,EAAAgxH,YAAAmQ,EAAAv1L,MACAo0D,EAAAkhI,cAAAC,GAAA,OACW,CAEX,IAAAT,EAAAprL,GACAkrL,kBACA18H,eAAAtrD,GACa+sN,EAAAI,SACb3lK,EAAA,IAAAyuR,EAAAttJ,EAAAv1L,UAAA80L,GACAprL,EAAA0qD,EAAA0gI,GACA1gI,EAAA51C,KAAA+2K,EAAAv1L,UAAA80L,GAKA1gI,EAAAkhI,cAAA,eAvBAlhI,EAAAgxH,eAAuCplL,MACvCo0D,EAAAkhI,kBAAyC,GA0BzC+sJ,EAAAr+U,IAAAsrD,GAAA1iD,GAAAwnD,EACAn3C,EAAAqyC,GAAA1iD,GAAAwnD,EAAAn3C,QACOjd,MAEP,WAAAsvD,GACAwzR,EAAA9iV,KAAAqiV,EAAAr+U,IAAA,YA1DAhE,MA8DAA,KAAA6hV,kBAAA9sR,EAAA/0D,KAAA4hV,eAAA5hV,KAAA4hV,qBAQA/vR,UAAA,WACA,IAAA50C,EAAA+sB,EAAAhqC,KAAAid,QAgBA,OAfAwhB,EAAAxhB,EAAA,SAAApS,EAAAykD,GACA,GAAApD,EAAAwtB,SAAApqB,GAAA,CAGA,IAFA,IAEAvuD,GAFA8J,EAAAovB,EAAAi8B,iBAAArrD,IAEA5J,OAAA,EAAqCF,GAAA,EAAQA,IAE7Ck5B,EAAA8oT,UAAAl4U,EAAA9J,KACA8J,EAAAvJ,OAAAP,EAAA,GAIAkc,EAAAqyC,GAAAzkD,YAGAoS,EAAAukU,GACAvkU,GAMAk4K,SAAA,WACA,OAAAn1L,KAAAyuD,QAQA3qD,aAAA,SAAAwrD,EAAAhvB,GACA,IAAAzT,EAAA7sB,KAAA6uD,eAAA7qD,IAAAsrD,GAEA,GAAAziC,EACA,OAAAA,EAAAyT,GAAA,IAcAq1J,gBAAA,SAAA3/H,GACA,IAAA1G,EAAA0G,EAAA1G,SAEA,IAAAA,EACA,SAGA,IAUAv+C,EAVAnE,EAAAopD,EAAAppD,MACAlL,EAAAs0D,EAAAt0D,GACAkB,EAAAozD,EAAApzD,KAEAogV,EAAAhjV,KAAA6uD,eAAA7qD,IAAAsrD,GAEA,IAAA0zR,MAAA/hV,OACA,SAKA,SAAA2L,EACAd,EAAAc,KACAA,OAGAmE,EAAAqW,EAAAzW,EAAA/D,EAAA,SAAA0zB,GACA,OAAA0iT,EAAA1iT,KACO,SAAA/yB,GACP,QAAAA,SAEK,SAAA7L,EAAA,CACL,IAAAuhV,EAAAn3U,EAAApK,GACAqP,EAAAqW,EAAA47T,EAAA,SAAAE,GACA,OAAAD,GAAAnjV,EAAA4B,EAAAwhV,EAAAxhV,KAAA,IAAAuhV,GAAAC,EAAAxhV,cAEK,SAAAkB,EAAA,CACL,IAAAugV,EAAAr3U,EAAAlJ,GACAmO,EAAAqW,EAAA47T,EAAA,SAAAE,GACA,OAAAC,GAAArjV,EAAA8C,EAAAsgV,EAAAtgV,OAAA,IAAAugV,GAAAD,EAAAtgV,gBAIAmO,EAAAiyU,EAAA1gV,QAGA,OAAA8gV,EAAAryU,EAAAilD,IA+BAk7F,eAAA,SAAAl7F,GACA,IAMAqtR,EACAC,EACAC,EACAC,EAUAp0U,EAnBA2mD,EAAAC,EAAAD,MACAzG,EAAA0G,EAAA1G,SACAm0R,GAKAH,EAAAh0R,EAAA,QACAi0R,EAAAj0R,EAAA,KACAk0R,EAAAl0R,EAAA,SAHA+zR,EAJAttR,IAQA,MAAAstR,EAAAC,IAAA,MAAAD,EAAAE,IAAA,MAAAF,EAAAG,GAMO,MALPl0R,WAEA1iD,MAAAy2U,EAAAC,GACA5hV,GAAA2hV,EAAAE,GACA3gV,KAAAygV,EAAAG,KAZAzyU,EAAA0yU,EAAAzjV,KAAA21L,gBAAA8tJ,GAAAzjV,KAAA6uD,eAAA7qD,IAAAsrD,GACA,OAeAlgD,EAfAg0U,EAAAryU,EAAAilD,GAgBAA,EAAA5uC,SAAAhY,EAAA4mD,EAAA5uC,QAAAhY,GA2BAyjD,cAAA,SAAAvD,EAAAgY,EAAAxZ,GACA,IAAAu0R,EAAAriV,KAAA6uD,eAEA,sBAAAS,EACAxB,EAAAwZ,EACAA,EAAAhY,EACA+yR,EAAA5jT,KAAA,SAAArK,EAAAw+B,GACAn0B,EAAArK,EAAA,SAAAG,EAAA3nB,GACA06D,EAAA57D,KAAAoiD,EAAA8E,EAAAr+B,EAAA3nB,YAGK,GAAAlN,EAAA4vD,GACL7wB,EAAA4jT,EAAAr+U,IAAAsrD,GAAAgY,EAAAxZ,QACK,GAAAluD,EAAA0vD,GAAA,CACL,IAAAo0R,EAAA1jV,KAAAkxJ,eAAA5hG,GACA7wB,EAAAilT,EAAAp8Q,EAAAxZ,KAQAqpR,gBAAA,SAAAv0U,GACA,IAAA0P,EAAAtS,KAAA6uD,eAAA7qD,IAAA,UAEA,OAAAojB,EAAA9U,EAAA,SAAAqxU,GACA,OAAAA,EAAA/gV,YAQAu3D,iBAAA,SAAAhoC,GACA,OAAAnyB,KAAA6uD,eAAA7qD,IAAA,UAAAmuB,IAUAyxT,gBAAA,SAAA9tR,GACA,IAAAxjD,EAAAtS,KAAA6uD,eAAA7qD,IAAA,UAEA,OAAAojB,EAAA9U,EAAA,SAAAqxU,GACA,OAAAA,EAAA7tR,eAOAnrC,UAAA,WACA,OAAA3qB,KAAA6uD,eAAA7qD,IAAA,UAAA1B,SAMAuhV,eAAA,WACA,OAAA7jV,KAAA6uD,eAAA7qD,IAAA,UAAA/C,QAUA+zD,WAAA,SAAAsS,EAAAxZ,GAEArvB,EAAAz+B,KAAA4hV,eAAA,SAAAkC,GACA,IAAAxxU,EAAAtS,KAAA6uD,eAAA7qD,IAAA,UAAA8/U,GAEAx8Q,EAAA57D,KAAAoiD,EAAAx7C,EAAAwxU,IACK9jV,OASL6yO,cAAA,SAAAvrK,EAAAxZ,GACArvB,EAAAz+B,KAAA6uD,eAAA7qD,IAAA,UAAAsjE,EAAAxZ,IAWA85I,iBAAA,SAAA9xI,EAAAwR,EAAAxZ,GAEArvB,EAAAz+B,KAAA4hV,eAAA,SAAAkC,GACA,IAAAxxU,EAAAtS,KAAA6uD,eAAA7qD,IAAA,UAAA8/U,GAEAxxU,EAAAwjD,aACAwR,EAAA57D,KAAAoiD,EAAAx7C,EAAAwxU,IAEK9jV,OAUL8yO,oBAAA,SAAAh9K,EAAAwR,EAAAxZ,GACA,OAAArvB,EAAAz+B,KAAA4jV,gBAAA9tR,GAAAwR,EAAAxZ,IAMA4jL,iBAAA,SAAAl2M,GAEA,aAAAx7B,KAAA6hV,kBAAA79U,IAAAw3B,EAAA08B,iBAMA6rR,wBAAA,WACA,OAAA/jV,KAAA4hV,oBAAAt/U,SAOA0hV,aAAA,SAAA18Q,EAAAxZ,GAGAg1R,EAAA9iV,KADAonB,EAAApnB,KAAA6uD,eAAA7qD,IAAA,UAAAsjE,EAAAxZ,KAGAyG,YAAA,SAAA3wB,GACA,IAAAy+S,EAAAriV,KAAA6uD,eACAi0R,EAAA9iV,KAAAqiV,EAAAr+U,IAAA,WACA,IAAAigV,KACA5B,EAAA5jT,KAAA,SAAArK,EAAAw+B,GACAqxR,EAAA1iV,KAAAqxD,KAEA1G,EAAA20J,kBAAAojI,EAAA/3R,EAAAs2R,uBAAA,SAAA5vR,EAAAn+B,GACAgK,EAAA4jT,EAAAr+U,IAAA4uD,GAAA,SAAAr+B,IACA,WAAAq+B,IAMA,SAAAp3B,EAAAoI,GACA,GAAAA,EAAA,CACA,IAAAh3B,EAAAg3B,EAAAsgT,YACAxiV,EAAAkiC,EAAAygC,SACAzhE,EAAAghC,EAAAxxB,WACA,aAAAxF,GAAA4uB,EAAA08B,iBAAAtrD,GAAA,MAAAlL,GAAA85B,EAAA95B,QAAA,MAAAkB,GAAA44B,EAAA54B,UAXAuhV,CAAA5vT,EAAAqP,KAAArP,EAAAggC,qBAyGA,SAAAuuR,EAAAn/U,EAAAg+N,GACAh+N,EAAAk+U,kBAAA9sR,EAAApxD,EAAAi+U,eAAAjxU,EAAAgxN,EAAA,SAAArvN,GACA,OAAAA,EAAA4lD,sBAQA,SAAAkrR,EAAAhvT,EAAA4hC,GAGA,OAAAA,EAAAnzD,eAAA,WAAAukB,EAAAgN,EAAA,SAAA8uT,GACA,OAAAA,EAAAptR,UAAAE,EAAAF,UACG1hC,EASHuT,EAAAikB,EAAA6sR,GACA,IAAAx1U,EAAA2oD,EACA1oD,EAAAC,QAAAF,wBChsBA,IAAAxD,EAAYF,EAAQ,QAGpBuM,GADArM,EAAAktD,OACAltD,EAAAqM,SAEcvM,EAAQ,QAEtBq6B,QAsCA,SAAAwqT,EAAAC,GACAA,QACArkV,KAAAskV,OAAAD,EAAAv5U,MACA9K,KAAAukV,MAAAF,EAAAzuR,KACA51D,KAAAu5R,OAAA8qD,EAAA9hV,MACAvC,KAAAwkV,SAAAH,EAAA1wG,QACA3zO,KAAAykV,QAAA,EAGAzkV,KAAA8tD,QAGA,IAAA42R,EAAAN,EAAAlkV,UASAwkV,EAAAlsR,QAAA,SAAA64K,GACA,IAcAszG,EAdAC,EAAA5kV,KAAA6kV,UACArzG,EAAAH,KAAAG,KAIA,GAAAxxO,KAAAykV,QAAAG,EAAA,CACA,IAAA92R,EAAA9tD,KAAA8tD,QACAA,EAAAh9C,KAAAg9C,EAAAurR,WAAAuL,EAAA92R,QAAAurR,WAGAr5U,KAAA8wO,aACA9wO,KAAA8wO,WAAA2pG,YAAAz6U,MAKAA,KAAAukV,QAAA/yG,IACAmzG,EAAA3kV,KAAAukV,MAAAvkV,KAAA8tD,UAKA,IAeAgiQ,EAfAg1B,EAAAC,EAAA/kV,KAAAglV,QACAC,EAAAjlV,KAAAklV,eAAA,EACA9yG,EAAA2yG,EAAA1zG,KAAAe,OACAD,EAAAd,KAAAc,cAAA,EAMA,SAAA4yG,EAAAx3U,GAGA,QAFAA,GAAA,KAAAA,EAAA,GAEAA,EAPAu3U,IAAA1yG,GAAA6yG,IAAA9yG,IACAwyG,EAAA,UAWA3kV,KAAAykV,QAAA,UAAAE,KACA3kV,KAAAykV,QAAA,EACA30B,EAgGA,SAAAq1B,EAAA3zG,GAGA,IAAA9uK,EACAotP,EAHAq1B,EAAAC,UAAAD,EAAAE,cAAAF,EAAAG,QAAA,EACAH,EAAAI,iBAAA,MAIA/zG,GAAA2zG,EAAAb,UACA5hR,EAAAyiR,EAAAb,OAAAa,EAAAr3R,WAEA4U,aACAotP,EAAAptP,EAAAotP,mBACAptP,cAIA52D,EAAA42D,OAAAzhE,SACAyhE,EAAA,OAIAyiR,EAAA7iL,UAAA5/F,EACAyiR,EAAAH,OAAAG,EAAAD,cAAA,KACA,IAAAM,EAAAL,EAAAM,YAEA,OADAD,KAAApkV,QACA0uT,EAxHAhlT,CAAA9K,KAAAwxO,IAGAxxO,KAAAglV,OAAA5yG,EACApyO,KAAAklV,cAAA/yG,EACA,IAAA7qN,EAAA+pN,KAAA/pN,KAWA,GARAtnB,KAAAslV,QADAV,EACAA,EAAAS,cAGArlV,KAAAu5R,OAAAv5R,KAAAu5R,OAAAv5R,KAAA8tD,SAAArU,IAKAz5C,KAAAsiK,UAAA,CACA,IAAA9/J,EAAAxC,KAAAolV,UACAl0T,EAAAnpB,KAAAC,IAAA,MAAAsf,EAAAtnB,KAAAolV,UAAA99T,EAAAmyB,IAAAz5C,KAAAslV,SAEA,IAAA9zG,IAAAs+E,GAAAttT,EAAA0uB,GAAA,CACA,IAAAwxC,EAAA1iE,KAAAsiK,UAEA,GAAAx2J,EAAA42D,GACA,QAAA3hE,EAAA,EAAuBA,EAAA2hE,EAAAzhE,OAAqBF,IAC5C2kV,EAAA1lV,KAAA0iE,EAAA3hE,GAAAyB,EAAA0uB,EAAAkhN,EAAAD,QAGAuzG,EAAA1lV,KAAA0iE,EAAAlgE,EAAA0uB,EAAAkhN,EAAAD,GAIAnyO,KAAAolV,UAAAl0T,EAGA,IAAAy0T,EAAA,MAAA3lV,KAAAulV,iBAAAvlV,KAAAulV,iBAAAr0T,EACAlxB,KAAAqlV,cAAAM,OAKA3lV,KAAAolV,UAAAplV,KAAAqlV,cAAA,MAAArlV,KAAAulV,iBAAAvlV,KAAAulV,iBAAAvlV,KAAAslV,QAGA,OAAAtlV,KAAAkwD,cAGA,IAAAhlD,EAAA,WACA,IAAAgmB,EACAqT,EACA6tM,EACAD,EACAyzG,EACAllR,GACA51D,MAAA,SAAAqN,EAAAhU,EAAA0hV,EAAAC,GACAvhT,EAAApsB,EACA+Y,EAAA/sB,EACAiuO,EAAAyzG,EACA1zG,EAAA2zG,EACAF,EAAA79U,KAAAowC,KAAAg6L,EAAAC,GACA1xK,EAAAj8B,KAAA2tM,EAAA,GAAAD,EAAA,EAAA4zG,EAAAC,IAGA,OAAAtlR,EAEA,SAAAslR,IACA,OAAAzhT,EAAArT,EAAAqT,IAAA,KAGA,SAAAwhT,IACA,IAAA3nT,EAAAmG,EAAAqhT,EAAAxzG,EAAArqO,KAAAowC,KAAA5T,EAAAqhT,GACA70U,EAAAwzB,GAAArT,EAAA,KAAAkN,EAAA+zM,EAAA/zM,EAEAmG,EAEA,OADAA,IACAxzB,GA5BA,GAqCA,SAAA20U,EAAAP,EAAAziR,EAAAlgE,EAAA0uB,EAAAkhN,EAAAD,GACAjnO,EAAAJ,MAAAtI,EAAA0uB,EAAAkhN,EAAAD,GACAgzG,EAAAc,iBAAAvjR,EAEAyiR,EAAAc,kBACAzjV,QACA0uB,MACA3uB,MAAA2uB,EAAA1uB,EACAiiC,KAAAv5B,EAAAu5B,MACG0gT,EAAAr3R,SAdH42R,EAAAtjV,MAAA,WACApB,KAAAykV,QAAA,EACAzkV,KAAAwkV,UAAAxkV,KAAAwkV,SAAAxkV,KAAA8tD,UA8CA42R,EAAAx0R,WAAA,WACA,OAAAlwD,KAAAsiK,WAAAtiK,KAAAolV,UAAAplV,KAAAslV,SAQAZ,EAAAr3I,KAAA,SAAA64I,IAEAlmV,KAAAylV,cAAAS,GAAAlmV,KAAAykV,UACAzkV,KAAAylV,YAAAS,EACAA,EAAArB,UAAA7kV,KACAkmV,EAAA9kV,UAIAsjV,EAAA3/U,QAAA,WACA/E,KAAA2wD,YAIA3wD,KAAA6kV,YAAA7kV,KAAA6kV,UAAAY,YAAA,MACAzlV,KAAAylV,cAAAzlV,KAAAylV,YAAAZ,UAAA,MACA7kV,KAAAykV,QAAA,EACAzkV,KAAA2wD,WAAA,IAGA+zR,EAAA1wG,YAAA,WACA,OAAAh0O,KAAA6kV,WAGAH,EAAAvwG,cAAA,WACA,OAAAn0O,KAAAylV,aAGAf,EAAAtL,aAAA,SAAAloT,GAMAlxB,KAAAqlV,cAAArlV,KAAAulV,iBAAAr0T,GA8CA/tB,EAAAitO,WApSA,SAAAi0G,GACA,WAAAD,EAAAC,0BCjCA,IAEA8B,GACAC,aAAA,SACAC,WAAA,eACAC,cAAA,eACAC,MAAA,aACAC,YAAA,eACAC,OAAA,eACAC,OAAA,eACAC,QAAA,eACAC,OAAA,SACAC,gBAAA,eACAC,MAAA,WACAC,YAAA,cACAC,OAAA,aACAC,WAAA,eACAC,WAAA,cACAC,YAAA,aACAC,WAAA,cACAC,OAAA,cACAC,gBAAA,eACAC,UAAA,eACAC,SAAA,aACAC,MAAA,aACAC,UAAA,WACAC,UAAA,aACAC,eAAA,cACAC,UAAA,eACAC,WAAA,WACAC,UAAA,eACAC,WAAA,eACAC,aAAA,aACAC,gBAAA,aACAC,YAAA,aACAC,YAAA,cACAC,SAAA,WACAC,YAAA,eACAC,cAAA,eACAC,eAAA,aACAC,eAAA,YACAC,eAAA,YACAC,eAAA,aACAC,YAAA,aACAC,UAAA,cACAC,aAAA,aACAC,SAAA,eACAC,SAAA,eACAC,YAAA,cACAC,WAAA,aACAC,aAAA,eACAC,aAAA,aACAC,SAAA,aACAC,WAAA,eACAC,YAAA,eACAC,MAAA,aACAC,WAAA,cACAC,MAAA,eACAC,OAAA,WACAC,aAAA,cACAC,MAAA,eACAC,UAAA,eACAC,SAAA,eACAC,WAAA,aACAC,QAAA,YACAC,OAAA,eACAC,OAAA,eACAC,UAAA,eACAC,eAAA,eACAC,WAAA,aACAC,cAAA,eACAC,WAAA,eACAC,YAAA,eACAC,WAAA,eACAC,sBAAA,eACAC,WAAA,eACAC,YAAA,eACAC,WAAA,eACAC,WAAA,eACAC,aAAA,eACAC,eAAA,cACAC,cAAA,eACAC,gBAAA,eACAC,gBAAA,eACAC,gBAAA,eACAC,aAAA,eACAC,MAAA,WACAC,WAAA,aACAC,OAAA,eACAC,SAAA,aACAC,QAAA,WACAC,kBAAA,eACAC,YAAA,WACAC,cAAA,cACAC,cAAA,eACAC,gBAAA,cACAC,iBAAA,eACAC,mBAAA,aACAC,iBAAA,cACAC,iBAAA,cACAC,cAAA,aACAC,WAAA,eACAC,WAAA,eACAC,UAAA,eACAC,aAAA,eACAC,MAAA,WACAC,SAAA,eACAC,OAAA,aACAC,WAAA,cACAC,QAAA,aACAC,WAAA,YACAC,QAAA,eACAC,eAAA,eACAC,WAAA,eACAC,eAAA,eACAC,eAAA,eACAC,YAAA,eACAC,WAAA,eACAC,MAAA,cACAC,MAAA,eACAC,MAAA,eACAC,YAAA,eACAC,QAAA,aACAC,KAAA,WACAC,WAAA,eACAC,WAAA,cACAC,aAAA,aACAC,QAAA,eACAC,YAAA,cACAC,UAAA,aACAC,UAAA,eACAC,QAAA,aACAC,QAAA,eACAC,SAAA,eACAC,WAAA,cACAC,WAAA,eACAC,WAAA,eACAC,MAAA,eACAC,aAAA,aACAC,WAAA,cACAC,KAAA,eACAC,MAAA,aACAC,SAAA,eACAC,QAAA,aACAC,WAAA,cACAC,QAAA,eACAC,OAAA,eACAC,OAAA,eACAC,YAAA,eACAC,QAAA,aACAC,aAAA,eAGA,SAAAC,EAAAzuV,GAIA,OAFAA,EAAAgH,KAAAqC,MAAArJ,IAEA,IAAAA,EAAA,QAAAA,EAUA,SAAA0uV,EAAAzsS,GAEA,OAAAA,EAAA,IAAAA,EAAA,IAAAA,EAGA,SAAA0sS,EAAAr/S,GAEA,OAAAA,EAAApvC,QAAA,MAAAovC,EAAA6O,OAAA7O,EAAApvC,OAAA,GACAuuV,EAAAhqU,WAAA6qB,GAAA,SAGAm/S,EAAA51Q,SAAAvpC,EAAA,KAGA,SAAAs/S,EAAAt/S,GAEA,OAAAA,EAAApvC,QAAA,MAAAovC,EAAA6O,OAAA7O,EAAApvC,OAAA,GACAwuV,EAAAjqU,WAAA6qB,GAAA,KAGAo/S,EAAAjqU,WAAA6qB,IAGA,SAAAu/S,EAAAC,EAAAC,EAAA73U,GAOA,OANAA,EAAA,EACAA,GAAA,EACGA,EAAA,IACHA,GAAA,GAGA,EAAAA,EAAA,EACA43U,GAAAC,EAAAD,GAAA53U,EAAA,EAGA,EAAAA,EAAA,EACA63U,EAGA,EAAA73U,EAAA,EACA43U,GAAAC,EAAAD,IAAA,IAAA53U,GAAA,EAGA43U,EAGA,SAAAE,EAAAx6U,EAAAC,EAAA07B,GACA,OAAA37B,GAAAC,EAAAD,GAAA27B,EAGA,SAAA8+S,EAAA7lT,EAAA1yB,EAAA20B,EAAA52B,EAAAD,GAKA,OAJA40B,EAAA,GAAA1yB,EACA0yB,EAAA,GAAAiC,EACAjC,EAAA,GAAA30B,EACA20B,EAAA,GAAA50B,EACA40B,EAGA,SAAA8lT,EAAA9lT,EAAA50B,GAKA,OAJA40B,EAAA,GAAA50B,EAAA,GACA40B,EAAA,GAAA50B,EAAA,GACA40B,EAAA,GAAA50B,EAAA,GACA40B,EAAA,GAAA50B,EAAA,GACA40B,EAGA,IAAA+lT,EAAA,IAxOU3wV,EAAQ,QAwOlB,KACA4wV,EAAA,KAEA,SAAAC,EAAAC,EAAAC,GAEAH,GACAF,EAAAE,EAAAG,GAGAH,EAAAD,EAAA5zK,IAAA+zK,EAAAF,GAAAG,EAAAhuV,SAUA,SAAA6K,EAAAkjV,EAAAC,GACA,GAAAD,EAAA,CAIAC,QACA,IAAA5wG,EAAAwwG,EAAAlsV,IAAAqsV,GAEA,GAAA3wG,EACA,OAAAuwG,EAAAK,EAAA5wG,GAMA,IAsBAl5J,EAtBAn2C,GAFAggT,GAAA,IAEA9nV,QAAA,SAAA+P,cAEA,GAAA+3B,KAAA81S,EAGA,OAFA8J,EAAAK,EAAAnK,EAAA91S,IACA+/S,EAAAC,EAAAC,GACAA,EAIA,SAAAjgT,EAAA6O,OAAA,GACA,WAAA7O,EAAApvC,QACAulF,EAAA5M,SAAAvpC,EAAA0kE,OAAA,SAEA,GAAAvuB,GAAA,MAKAwpQ,EAAAM,GAAA,KAAA9pQ,IAAA,QAAAA,IAAA,MAAAA,GAAA,IAAAA,IAAA,KAAAA,GAAA,GAAAA,IAAA,KACA4pQ,EAAAC,EAAAC,GACAA,QANAN,EAAAM,EAAA,SAOK,IAAAjgT,EAAApvC,QACLulF,EAAA5M,SAAAvpC,EAAA0kE,OAAA,SAEA,GAAAvuB,GAAA,UAKAwpQ,EAAAM,GAAA,SAAA9pQ,IAAA,UAAAA,IAAA,MAAAA,EAAA,GACA4pQ,EAAAC,EAAAC,GACAA,QANAN,EAAAM,EAAA,cASA,EAGA,IAAAC,EAAAlgT,EAAAvwC,QAAA,KACA0wV,EAAAngT,EAAAvwC,QAAA,KAEA,QAAAywV,GAAAC,EAAA,IAAAngT,EAAApvC,OAAA,CACA,IAAAwvV,EAAApgT,EAAA0kE,OAAA,EAAAw7O,GACA5+T,EAAA0e,EAAA0kE,OAAAw7O,EAAA,EAAAC,GAAAD,EAAA,IAAA1vV,MAAA,KACAszC,EAAA,EAEA,OAAAs8S,GACA,WACA,OAAA9+T,EAAA1wB,OAEA,YADA+uV,EAAAM,EAAA,SAIAn8S,EAAAw7S,EAAAh+T,EAAAmlC,OAIA,UACA,WAAAnlC,EAAA1wB,YACA+uV,EAAAM,EAAA,UAIAN,EAAAM,EAAAZ,EAAA/9T,EAAA,IAAA+9T,EAAA/9T,EAAA,IAAA+9T,EAAA/9T,EAAA,IAAAwiB,GACAi8S,EAAAC,EAAAC,GACAA,GAEA,WACA,WAAA3+T,EAAA1wB,YACA+uV,EAAAM,EAAA,UAIA3+T,EAAA,GAAAg+T,EAAAh+T,EAAA,IACA++T,EAAA/+T,EAAA2+T,GACAF,EAAAC,EAAAC,GACAA,GAEA,UACA,WAAA3+T,EAAA1wB,YACA+uV,EAAAM,EAAA,UAIAI,EAAA/+T,EAAA2+T,GACAF,EAAAC,EAAAC,GACAA,GAEA,QACA,QAIAN,EAAAM,EAAA,UAUA,SAAAI,EAAAC,EAAA9gE,GACA,IAAA53Q,GAAAuN,WAAAmrU,EAAA,qBAIAx4U,EAAAw3U,EAAAgB,EAAA,IACA3vV,EAAA2uV,EAAAgB,EAAA,IACAb,EAAA9uV,GAAA,GAAAA,GAAAmX,EAAA,GAAAnX,EAAAmX,EAAAnX,EAAAmX,EACA03U,EAAA,EAAA7uV,EAAA8uV,EAQA,OANAE,EADAngE,QACA2/D,EAAA,IAAAI,EAAAC,EAAAC,EAAA73U,EAAA,MAAAu3U,EAAA,IAAAI,EAAAC,EAAAC,EAAA73U,IAAAu3U,EAAA,IAAAI,EAAAC,EAAAC,EAAA73U,EAAA,SAEA,IAAA04U,EAAA1vV,SACA4uR,EAAA,GAAA8gE,EAAA,IAGA9gE,EAsHA,SAAAvxF,EAAAsyJ,EAAAp3U,EAAA2wB,GACA,GAAA3wB,KAAAvY,QAAA2vV,GAAA,GAAAA,GAAA,GAIAzmT,QACA,IAAA5iC,EAAAqpV,GAAAp3U,EAAAvY,OAAA,GACAqkS,EAAAv9R,KAAAkwC,MAAA1wC,GACAk+R,EAAA19R,KAAAowC,KAAA5wC,GACAspV,EAAAr3U,EAAA8rR,GACAwrD,EAAAt3U,EAAAisR,GACAsrD,EAAAxpV,EAAA+9R,EAKA,OAJAn7P,EAAA,GAAAqlT,EAAAO,EAAAc,EAAA,GAAAC,EAAA,GAAAC,IACA5mT,EAAA,GAAAqlT,EAAAO,EAAAc,EAAA,GAAAC,EAAA,GAAAC,IACA5mT,EAAA,GAAAqlT,EAAAO,EAAAc,EAAA,GAAAC,EAAA,GAAAC,IACA5mT,EAAA,GAAAslT,EAAAM,EAAAc,EAAA,GAAAC,EAAA,GAAAC,IACA5mT,GAOA,IAAA6mT,EAAA1yJ,EAUA,SAAA2yJ,EAAAL,EAAAp3U,EAAA03U,GACA,GAAA13U,KAAAvY,QAAA2vV,GAAA,GAAAA,GAAA,GAIA,IAAArpV,EAAAqpV,GAAAp3U,EAAAvY,OAAA,GACAqkS,EAAAv9R,KAAAkwC,MAAA1wC,GACAk+R,EAAA19R,KAAAowC,KAAA5wC,GACAspV,EAAA1jV,EAAAqM,EAAA8rR,IACAwrD,EAAA3jV,EAAAqM,EAAAisR,IACAsrD,EAAAxpV,EAAA+9R,EACAn/R,EAAAiH,GAAAoiV,EAAAO,EAAAc,EAAA,GAAAC,EAAA,GAAAC,IAAAvB,EAAAO,EAAAc,EAAA,GAAAC,EAAA,GAAAC,IAAAvB,EAAAO,EAAAc,EAAA,GAAAC,EAAA,GAAAC,IAAAtB,EAAAM,EAAAc,EAAA,GAAAC,EAAA,GAAAC,KAAA,QACA,OAAAG,GACA/qV,QACAm/R,YACAG,aACAl+R,SACGpB,GAOH,IAAAgrV,EAAAF,EA4CA,SAAA7jV,EAAAgkV,EAAA5tV,GACA,GAAA4tV,KAAAnwV,OAAA,CAIA,IAAAovV,EAAAe,EAAA,OAAAA,EAAA,OAAAA,EAAA,GAMA,MAJA,SAAA5tV,GAAA,SAAAA,GAAA,SAAAA,IACA6sV,GAAA,IAAAe,EAAA,IAGA5tV,EAAA,IAAA6sV,EAAA,KAGAltV,EAAAgK,QACAhK,EAAAkuV,KAhKA,SAAAlrV,EAAAkd,GACA,IAAAypB,EAAA3/B,EAAAhH,GAEA,GAAA2mC,EAAA,CACA,QAAA/rC,EAAA,EAAmBA,EAAA,EAAOA,IAE1B+rC,EAAA/rC,GADAsiB,EAAA,EACAypB,EAAA/rC,IAAA,EAAAsiB,GAAA,GAEA,IAAAypB,EAAA/rC,IAAAsiB,EAAAypB,EAAA/rC,GAAA,EAGA+rC,EAAA/rC,GAAA,IACA+rC,EAAA/rC,GAAA,IACOoF,EAAApF,GAAA,IACP+rC,EAAA/rC,GAAA,GAIA,OAAAqM,EAAA0/B,EAAA,IAAAA,EAAA7rC,OAAA,gBA+IAkC,EAAAgmN,MArIA,SAAAhjN,GACA,IAAA2mC,EAAA3/B,EAAAhH,GAEA,GAAA2mC,EACA,gBAAAA,EAAA,SAAAA,EAAA,SAAAA,EAAA,IAAAllC,SAAA,IAAAtF,MAAA,IAkIAa,EAAAm7L,WACAn7L,EAAA6tV,iBACA7tV,EAAA8tV,OACA9tV,EAAAguV,aACAhuV,EAAA27L,UAvDA,SAAA34L,EAAA8R,EAAAE,EAAAnX,GAGA,GAFAmF,EAAAgH,EAAAhH,GAOA,OAJAA,EArLA,SAAA0pR,GACA,GAAAA,EAAA,CAKA,IAUAjwH,EACAM,EAXAjvH,EAAA4+O,EAAA,OACA33D,EAAA23D,EAAA,OACAt3D,EAAAs3D,EAAA,OACAyhE,EAAAvpV,KAAAC,IAAAipC,EAAAinL,EAAAK,GAEAg5H,EAAAxpV,KAAAE,IAAAgpC,EAAAinL,EAAAK,GAEArgM,EAAAq5T,EAAAD,EAEAphT,GAAAqhT,EAAAD,GAAA,EAIA,OAAAp5T,EACA0nI,EAAA,EACAM,EAAA,MACG,CAEHA,EADAhwH,EAAA,GACAhY,GAAAq5T,EAAAD,GAEAp5T,GAAA,EAAAq5T,EAAAD,GAGA,IAAAE,IAAAD,EAAAtgT,GAAA,EAAA/Y,EAAA,GAAAA,EACAu5T,IAAAF,EAAAr5H,GAAA,EAAAhgM,EAAA,GAAAA,EACAw5T,IAAAH,EAAAh5H,GAAA,EAAArgM,EAAA,GAAAA,EAEA+Y,IAAAsgT,EACA3xL,EAAA8xL,EAAAD,EACKv5H,IAAAq5H,EACL3xL,EAAA,IAAA4xL,EAAAE,EACKn5H,IAAAg5H,IACL3xL,EAAA,IAAA6xL,EAAAD,GAGA5xL,EAAA,IACAA,GAAA,GAGAA,EAAA,IACAA,GAAA,GAIA,IAAA+wL,GAAA,IAAA/wL,EAAAM,EAAAhwH,GAMA,OAJA,MAAA2/O,EAAA,IACA8gE,EAAApvV,KAAAsuR,EAAA,IAGA8gE,GA6HAgB,CAAAxrV,GACA,MAAA8R,IAAA9R,EAAA,IA9ZApF,EA8ZAkX,GA5ZAlX,EAAAgH,KAAAqC,MAAArJ,IAEA,IAAAA,EAAA,QAAAA,IA2ZA,MAAAoX,IAAAhS,EAAA,GAAAwpV,EAAAx3U,IACA,MAAAnX,IAAAmF,EAAA,GAAAwpV,EAAA3uV,IACAoM,EAAAsjV,EAAAvqV,GAAA,QAjaA,IAAApF,GAidAoC,EAAA+7L,YArCA,SAAA/4L,EAAAguC,GAGA,IAFAhuC,EAAAgH,EAAAhH,KAEA,MAAAguC,EAEA,OADAhuC,EAAA,GAAAspV,EAAAt7S,GACA/mC,EAAAjH,EAAA,SAiCAhD,EAAAiK,kCClnBA,IAAAi+B,EAAe9rC,EAAQ,QAoBvB0D,GACA2vO,mBAAA,EACAnB,kBAAA,EACA3mO,MAAA,SAAA0wB,EAAA73B,GACA,IAAAmN,EAAA0qB,EAAAtP,UACA0lU,GAAAp2T,EAAAmtI,uBAAA,mBAAA9nK,MAAA,KACAsF,EAAAq1B,EAAAx3B,IAAA4tV,IACAp2T,EAAAylK,oBACAzlK,EAAA54B,KAAA,KAAAe,EAAAkgV,kBAKA,GAFA/yU,EAAAkxD,UAAA,QAAA77D,IAEAxC,EAAA+tO,iBAAAl2M,GAAA,CACA,mBAAAr1B,gBAAAklC,GACAv6B,EAAA2tB,KAAA,SAAA6B,GACAxvB,EAAAmxD,cAAA3hC,EAAA,QAAAn6B,EAAAq1B,EAAA++B,cAAAj6B,OAcA,OACAyvC,SAAAj/D,EAAAk/D,cAVA,SAAAl/D,EAAAwvB,GACA,IACAn6B,EADA2K,EAAAq0D,aAAA7kC,GACAt8B,IAAA4tV,GAAA,GAEA,MAAAzrV,GACA2K,EAAAmxD,cAAA3hC,EAAA,QAAAn6B,IAKA,SAKAjD,EAAAC,QAAAF,wBCxDA,IAAA42B,EAAat6B,EAAQ,QAErBsyV,EAAoBtyV,EAAQ,QAE5Bm5U,EAAsBn5U,EAAQ,QAoB9BuyV,EAAAD,EAAAnoV,QACAlG,KAAA,kBAKAkxB,eACAja,gBAAA,gBAEAsY,YAAA,OAEAuC,YAAA,EAEAxY,OAAA,aAEAyf,SAAA,EACAxmB,SAEA9D,QAAA,QAGA+c,OAAA,cACAC,WAAA,GACArO,WACAvb,MAAA,EACA2T,MAAA,EACA7S,MAAA,WAEAsM,OAEArE,SAAA,OAKA/I,MAAA,EACAq0C,SAAA,OACA+uH,OAAA,EAGAtiK,MAAA,WAEAqM,WACArM,MAAA,UACAmvB,YAAA,GAEAy8T,iBACA/iU,OAAA,SACAC,WAAA,GACA9oB,MAAA,UACAmvB,YAAA,EACAvC,YAAA,uBACAvxB,WAAA,EACA+8K,kBAAA,IACA3U,gBAAA,gBAEAmF,cACA1pK,MAAA,EACA2sV,aAAA,EACAC,aAAA,EACAC,aAAA,EACA98L,SAAA,GACAi5H,QAAA,GACAjgR,SAAA,OAEA+jV,SAAA,4UAEAC,SAAA,idAEAC,SAAA,sTAEAC,SAAA,iTAEAnsV,MAAA,UACA4sB,YAAA,UACAuC,YAAA,GAEAhP,UACA7T,OACApN,MAAA,EAEAc,MAAA,WAEAqM,WACArM,MAAA,WAEA4oK,cACA5oK,MAAA,UACA4sB,YAAA,UACAuC,YAAA,IAGAxkB,WAGA+oB,EAAA8N,MAAAmqT,EAAApZ,GACA,IAAAz1U,EAAA6uV,EACA5uV,EAAAC,QAAAF,qCCvHAE,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAonV,EAAsBhzV,EAAQ,QAE9BizV,GAEArnV,EAFAonV,IAEsCpnV,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,QAAA,SAAA5N,EAAApB,EAAAxC,GAYA,OAXAwC,KAAAoB,GACA,EAAAqnV,EAAAz5U,SAAA5N,EAAApB,GACAxC,QACA8D,YAAA,EACAC,cAAA,EACAC,UAAA,IAGAJ,EAAApB,GAAAxC,EAGA4D,yBCtBAjI,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAAkC6xE,YAAA,yBCA1D7xE,EAAQ,QA0BtBm8D,gBALAl4D,KAAA,kBACA+zD,MAAA,oBAEAhb,OAAA,UAEA,SAAA3Y,EAAAjgC,GACAA,EAAAkvD,eACAvD,SAAA,YACAyG,MAAAnyB,GACG,SAAArM,GACHA,EAAAqvK,YAAAhjK,EAAAlZ,oCC/BA,IAAAtnB,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAER,IAAAkoE,EAAmBloE,EAAQ,QAE3BygN,EAAmBzgN,EAAQ,QAE3BkzV,EAAiBlzV,EAAQ,QAEzBA,EAAQ,QAqBR6D,EAAAw4D,eAAA6L,EAAA,yBACArkE,EAAAm6D,eAAAyiJ,EAAA,SAEA58M,EAAAk4D,kBAAAl4D,EAAA4pD,SAAAC,UAAAE,UAAAslS,EAAA,+BCpCA,IAAAhzV,EAAYF,EAAQ,QAEpBk/B,EAAAh/B,EAAAg/B,KACAs2B,EAAAt1D,EAAAs1D,cAyBA4+Q,GAxBAl0U,EAAAktD,OAEcptD,EAAQ,QAEtBq6B,QAoBAm7B,GAAA,sDA2GA5xD,EAAAwwU,mBACAxwU,EAAA20R,oBA1GA,SAAAhnR,GACA,IAAA4hV,KACAj1G,EAAAi1G,EAAAj1G,UACAk1G,EAAA59R,IACA69R,KACAC,KACAp0T,EAAA3tB,EAAAixB,WAAA,SAAAD,GACA,IAgFAwsI,EAhFA8kJ,EAAAtiT,EAAAmxB,iBAAAH,GACAF,EAAAwxR,EAAAxxR,SAEA,GAAAA,EAAA,CACA,IAAAkxT,EAAAr1G,EAAA77M,GAEA67M,EAAA56O,eAAA++B,KACAkxT,EAAAr1G,EAAA77M,OAGAkxT,EAAA1/B,EAAAj6B,eAAAr3P,EAEAsxR,EAAA2hB,eACA4d,EAAA3tS,IAAApjB,EAAA,GAsEA,aAHA0sI,EA9DA8kJ,EAAA5vT,OAiEA,SAAA8qK,IAhEAskL,EAAA,GAAA9wT,IAIAsxR,EAAAj1I,gBACA00K,EAAAtxV,KAAAugC,GAIA6xS,EAAAl1S,KAAA,SAAA1xB,EAAA4mR,GACA,IAAAo/D,EAAAt1G,EAAAk2C,GAEAl2C,EAAA56O,eAAA8wR,KACAo/D,EAAAt1G,EAAAk2C,OAGA,IAAAv7P,EAAAg7R,EAAAh6B,UAAAzF,GAEA,MAAAv7P,IAAA,IAAAA,IACA26T,EAAA36T,GAAAg7R,EAAAxwT,UAIA,IAAA+4R,KACAE,KACA82D,EAAAl0T,KAAA,SAAA1xB,EAAA60B,GACA,IAAAoxT,EAAAv1G,EAAA77M,GAIAi6P,EAAAj6P,GAAAoxT,EAAA,GAGAr3D,IAAA5mR,OAAAi+U,KAEAN,EAAA/2D,kBACA+2D,EAAA72D,yBACA,IAAAo3D,EAAAx1G,EAAAhrO,MAGAwgV,KAAAhyV,SACA2xV,EAAAK,EAAA3wV,SAGA,IAAA4wV,EAAAz1G,EAAA1nO,QAUA,OARAm9U,KAAAjyV,OACA4xV,EAAAK,EAAA5wV,QACGuwV,EAAA5xV,SACH4xV,EAAAD,EAAAtwV,SAGAm7O,EAAAm1G,iBACAn1G,EAAAo1G,mBACAH,GA2BAvvV,EAAAq8U,uBAxBA,SAAAl0R,GACA,mBAAAA,EAAA,mBAAAA,EAAA,sCClHA,IAAAzxB,EAAat6B,EAAQ,QAErB4zV,EAAe5zV,EAAQ,QAEvBqrC,EAAgBrrC,EAAQ,QAExBqnC,EAAarnC,EAAQ,QAErBonC,EAAapnC,EAAQ,QAErB4rC,EAAW5rC,EAAQ,QAEnBunC,EAAoBvnC,EAAQ,QAE5B0rC,EAAa1rC,EAAQ,QAErB4D,EAAA4wC,MAAA9I,EAEA,IAAAnM,EAAYv/B,EAAQ,QAEpB4D,EAAA27B,QAEA,IAAAoM,EAAW3rC,EAAQ,QAEnB4D,EAAA+nC,OAEA,IAAA+8P,EAAa1oS,EAAQ,QAErB4D,EAAA8kS,SAEA,IAAA/rQ,EAAa38B,EAAQ,QAErB4D,EAAA+4B,SAEA,IAAAk3T,EAAW7zV,EAAQ,QAEnB4D,EAAAiwV,OAEA,IAAAh5T,EAAc76B,EAAQ,QAEtB4D,EAAAi3B,UAEA,IAAAD,EAAe56B,EAAQ,QAEvB4D,EAAAg3B,WAEA,IAAA8C,EAAW19B,EAAQ,QAEnB4D,EAAA85B,OAEA,IAAA4vC,EAAWttE,EAAQ,QAEnB4D,EAAA0pE,OAEA,IAAAw3H,EAAkB9kM,EAAQ,QAE1B4D,EAAAkhM,cAEA,IAAAgiF,EAAU9mR,EAAQ,QAElB4D,EAAAkjR,MAEA,IAAAgtE,EAAmB9zV,EAAQ,QAE3B4D,EAAAkwV,eAEA,IAAAxwT,EAAqBtjC,EAAQ,QAE7B4D,EAAA0/B,iBAEA,IAAAywT,EAAqB/zV,EAAQ,QAE7B4D,EAAAmwV,iBAEA,IAAAzsT,EAAmBtnC,EAAQ,QAE3B4D,EAAA0jC,eAEA,IAAA0sT,EAA6Bh0V,EAAQ,QAErC4D,EAAAowV,yBAoBA,IAAAnpV,EAAArC,KAAAqC,MACAuhC,EAAA5jC,KAAAE,IACAkrD,EAAAprD,KAAAC,IACAwrV,KAyBA,SAAAC,EAAAhlH,EAAA5jO,EAAAq9B,EAAA5Q,GACA,IAAAj3B,EAAA8yV,EAAAvkH,iBAAAH,EAAA5jO,GACA2oD,EAAAnzD,EAAAynC,kBAUA,OARAI,IACA,WAAA5Q,IACA4Q,EAAAwrT,EAAAxrT,EAAAsrB,IAGAmgS,EAAAtzV,EAAA6nC,IAGA7nC,EAyCA,SAAAqzV,EAAAxrT,EAAAsrB,GAEA,IAEAv6C,EAFAsvL,EAAA/0I,EAAAx6C,MAAAw6C,EAAAv6C,OACAD,EAAAkvB,EAAAjvB,OAAAsvL,EAYA,OARAtvL,EADAD,GAAAkvB,EAAAlvB,MACAkvB,EAAAjvB,QAEAD,EAAAkvB,EAAAlvB,OACAuvL,GAMAlkM,EAHA6jC,EAAA7jC,EAAA6jC,EAAAlvB,MAAA,EAGAA,EAAA,EACAzU,EAHA2jC,EAAA3jC,EAAA2jC,EAAAjvB,OAAA,EAGAA,EAAA,EACAD,QACAC,UAIA,IAAAo4L,EAAA8hJ,EAAA9hJ,UAOA,SAAAsiJ,EAAAtzV,EAAA6nC,GACA,GAAA7nC,EAAA2mC,eAAA,CAIA,IACAra,EADAtsB,EAAAynC,kBACAM,mBAAAF,GACA7nC,EAAA2mC,eAAAra,IAqEA,SAAAinU,EAAAxlV,EAAA2uB,EAAA82T,GAGA,IAAAC,EAAA1pV,EAAA,EAAAgE,GACA,OAAA0lV,EAAA1pV,EAAA2yB,IAAA,KAAA+2T,EAAA,GAAAA,GAAAD,EAAA,SAGA,SAAAE,EAAA9+B,GACA,aAAAA,GAAA,QAAAA,EAGA,SAAA++B,EAAA7tV,GACA,uBAAAA,EAAAykC,EAAAymT,KAAAlrV,GAAA,IAAAA,EAOA,SAAA8tV,EAAAxzV,GACA,GAAAA,EAAAyzV,gBAAA,CACA,IAAAhxT,EAAAziC,EAAA8X,MAAA2qB,OACAxrB,EAAAjX,EAAA8X,MAAAb,KAEA6tD,EAAA9kE,EAAA0zV,WACA5uR,EAAA7tD,KAAA6tD,EAAA7tD,OAAAq8U,EAAAr8U,GAAAs8U,EAAAt8U,GAAA,MACA6tD,EAAAriC,OAAAqiC,EAAAriC,SAAA6wT,EAAA7wT,GAAA8wT,EAAA9wT,GAAA,MACA,IAAAu5J,KAEA,QAAA75L,KAAA2iE,EAEA,MAAAA,EAAA3iE,KACA65L,EAAA75L,GAAAnC,EAAA8X,MAAA3V,IAIAnC,EAAA2zV,YAAA33J,EACAh8L,EAAAyzV,iBAAA,GAQA,SAAAG,EAAA5zV,GACA,IAAAA,EAAA6zV,UAAA,CAMA,GAFAL,EAAAxzV,GAEAA,EAAA04D,cACA14D,EAAAE,MAAAF,EAAAE,KAAAg1K,SAAAl1K,IAAA0zV,gBACG,CACH,IAAA57U,EAAA9X,EAAA8X,MACAg8U,EAAAh8U,EAAAg8U,kBAIAA,GAkdA,SAAAh8U,GACA,IAAAi8U,EAAAj8U,EAAAi8U,eAEAA,IACAj8U,EAAA++B,SAAAk9S,EAAAl9S,SACA/+B,EAAAg/B,WAAAi9S,EAAAj9S,WACAh/B,EAAAkrR,gBAAA+wD,EAAA/wD,iBAxdAgxD,CAAAl8U,GAoBAA,EAAAg2S,WAAA9tT,EAAA0zV,YAEAI,IACAG,EAAAn8U,IAAAo8U,2BAAAJ,GAEA,MAAAh8U,EAAA++B,WACA/+B,EAAA++B,SAAAi9S,EAAAhuR,YAIA9lE,EAAAW,OAAA,GACAX,EAAA2jC,IAAA,EAGA3jC,EAAA6zV,WAAA,GAOA,SAAAM,EAAAn0V,GACA,GAAAA,EAAA6zV,UAAA,CAIA,IAAAO,EAAAp0V,EAAA2zV,YAEA3zV,EAAA04D,cACA14D,EAAAE,MAAAF,EAAAE,KAAAo1K,YAAAt1K,IAIAo0V,GAAAp0V,EAAA67C,SAAAu4S,GACAp0V,EAAA2jC,IAAA,GAGA3jC,EAAA6zV,WAAA,GAOA,SAAAQ,EAAAr0V,GACA,UAAAA,EAAA+C,KAAA/C,EAAAk4D,SAAA,SAAArsB,GACA,UAAAA,EAAA9oC,MACA6wV,EAAA/nT,KAEG+nT,EAAA5zV,GAGH,SAAAs0V,EAAAt0V,GACA,UAAAA,EAAA+C,KAAA/C,EAAAk4D,SAAA,SAAArsB,GACA,UAAAA,EAAA9oC,MACAoxV,EAAAtoT,KAEGsoT,EAAAn0V,GAOH,SAAAu0V,EAAAv0V,EAAAw0V,GAGAx0V,EAAA0zV,WAAA1zV,EAAA8kE,YAAA0vR,MACAx0V,EAAAyzV,iBAAA,EAEAzzV,EAAA6zV,WACAL,EAAAxzV,GAQA,SAAAy0V,EAAA/wV,GACAnE,KAAAm1V,sBAAAhxV,EAAAm8T,YAKAtgU,KAAAo1V,cAAAN,EAAA90V,MAOA,SAAAq1V,EAAAlxV,GACAnE,KAAAm1V,sBAAAhxV,EAAAm8T,YAKAtgU,KAAAo1V,cAAAL,EAAA/0V,MAOA,SAAAs1V,IACAt1V,KAAAo1V,cAAA,EACAN,EAAA90V,MAOA,SAAAu1V,IACAv1V,KAAAo1V,cAAA,EACAL,EAAA/0V,MAsGA,SAAAm6M,EAAAz/L,EAAA66I,EAAAigM,EAAA58T,EAAA68T,GAIA,OAHAC,EAAAh7U,EAAA66I,EAAA38H,EAAA68T,GACAD,GAAA37T,EAAAnwB,OAAAgR,EAAA86U,GACA96U,EAAAktJ,MAAAltJ,EAAAktJ,KAAAxmK,OAAAsZ,EAAAktJ,KAAAxmK,OAAA,GACAsZ,EA8CA,SAAAg7U,EAAAh7U,EAAA66I,EAAA38H,EAAA68T,GAIA,IAFA78T,KAAA46T,GAEA92J,WAAA,CACA,IAAAtmJ,EAAAm/G,EAAAlwF,WAAA,cAAAowR,EAAA,eAGA,YAAAr/S,MAAA,OACA17B,EAAA07B,eACA17B,EAAAgqR,WAAAnvI,EAAAlwF,WAAA,UACA,IAAAwkQ,EAAAt0K,EAAAlwF,WAAA,UACA,MAAAwkQ,OAAA9hU,KAAAgwB,GAAA,KACArd,EAAAwpL,aAAA2lI,EACAnvT,EAAA47B,aAAAzc,EAAAogL,UAAA1kD,EAAAlwF,WAAA,YAAAowR,EAAA,QAGA,IAiBAE,EAjBAhyV,EAAA4xJ,EAAA5xJ,QACAiyV,EAAAjyV,KAAAsZ,OAAAvC,UAeAm7U,EAwCA,SAAAtgM,GAEA,IAAAugM,EAEA,KAAAvgM,SAAA5xJ,SAAA,CACA,IAAAyxC,GAAAmgH,EAAAt4I,QAAAu2U,GAAAp+S,KAEA,GAAAA,EAGA,QAAAxyC,KAFAkzV,QAEA1gT,EACAA,EAAAvyC,eAAAD,KACAkzV,EAAAlzV,GAAA,GAKA2yJ,IAAAuwB,YAGA,OAAAgwK,EA5DAC,CAAAxgM,GAGA,GAAAsgM,EAGA,QAAAjzV,KAFA+yV,KAEAE,EACA,GAAAA,EAAAhzV,eAAAD,GAAA,CAEA,IAAAozV,EAAAzgM,EAAAl2H,UAAA,OAAAz8B,IAEAqzV,EAAAN,EAAA/yV,MAA+CozV,EAAAJ,EAAAh9T,EAAA68T,GAY/C,OAPA/6U,EAAA06B,KAAAugT,EACAM,EAAAv7U,EAAA66I,EAAAqgM,EAAAh9T,EAAA68T,GAAA,GAEA78T,EAAAq5S,YAAAr5S,EAAAle,YACAke,EAAAle,cAGAA,EAwCA,SAAAu7U,EAAAv7U,EAAA66I,EAAAqgM,EAAAh9T,EAAA68T,EAAA7jH,GAOA,GALAgkH,GAAAH,GAAAG,GAAApC,EACA94U,EAAA48B,SAAA4+S,EAAA3gM,EAAAlwF,WAAA,SAAAzsC,IAAAg9T,EAAAzvV,MACAuU,EAAA68B,WAAA2+S,EAAA3gM,EAAAlwF,WAAA,mBAAAzsC,IAAAg9T,EAAA7xD,gBACArpR,EAAA+oR,gBAAA5pQ,EAAAogL,UAAA1kD,EAAAlwF,WAAA,mBAAAuwR,EAAA9xD,kBAEA2xD,EAAA,CACA,GAAA7jH,EAAA,CAEA,IAAAukH,EAAAz7U,EAAA07B,aACA17B,EAAA85U,eAAAE,EAAAh6U,EAAAy7U,EAAAv9T,GAGAle,EAAAi6U,2BAAAwB,EACAz7U,EAAA65U,kBAAA37T,EAIA,MAAAle,EAAA48B,WACA58B,EAAA48B,SAAA1e,EAAA2tC,WAOA7rD,EAAAk7B,UAAA2/G,EAAAlwF,WAAA,cAAAuwR,EAAAhgT,UACAl7B,EAAAu7B,WAAAs/G,EAAAlwF,WAAA,eAAAuwR,EAAA3/S,WACAv7B,EAAAmb,SAAA0/H,EAAAlwF,WAAA,aAAAuwR,EAAA//T,SACAnb,EAAAo7B,WAAAy/G,EAAAlwF,WAAA,eAAAuwR,EAAA9/S,WACAp7B,EAAAg7B,UAAA6/G,EAAAlwF,WAAA,SACA3qD,EAAAi7B,kBAAA4/G,EAAAlwF,WAAA,kBAAAkwF,EAAAlwF,WAAA,YACA3qD,EAAAw7S,eAAA3gK,EAAAlwF,WAAA,cACA3qD,EAAAsrR,UAAAzwI,EAAAlwF,WAAA,SACA3qD,EAAA0oR,WAAA7tI,EAAAlwF,WAAA,UACA3qD,EAAAu7S,QAAA1gK,EAAAlwF,WAAA,OAEAusK,GAAAh5M,EAAAw9T,aACA17U,EAAAmpR,oBAAAqyD,EAAA3gM,EAAAlwF,WAAA,mBAAAzsC,GACAle,EAAA+nR,YAAAltI,EAAAlwF,WAAA,WACA3qD,EAAAqpR,gBAAAmyD,EAAA3gM,EAAAlwF,WAAA,eAAAzsC,GACAle,EAAAopR,gBAAAvuI,EAAAlwF,WAAA,eACA3qD,EAAAwpR,iBAAA3uI,EAAAlwF,WAAA,gBACA3qD,EAAAupR,mBAAA1uI,EAAAlwF,WAAA,eACA3qD,EAAAgrB,kBAAA6vH,EAAAlwF,WAAA,cACA3qD,EAAAirB,qBAAA4vH,EAAAlwF,WAAA,iBACA3qD,EAAAkrB,qBAAA2vH,EAAAlwF,WAAA,kBAGA3qD,EAAA4oR,gBAAA/tI,EAAAlwF,WAAA,oBAAAuwR,EAAAtyD,gBACA5oR,EAAA6qB,eAAAgwH,EAAAlwF,WAAA,mBAAAuwR,EAAArwT,eACA7qB,EAAA8qB,kBAAA+vH,EAAAlwF,WAAA,sBAAAuwR,EAAApwT,kBACA9qB,EAAA+qB,kBAAA8vH,EAAAlwF,WAAA,sBAAAuwR,EAAAnwT,kBAGA,SAAAywT,EAAA/vV,EAAAyyB,GACA,eAAAzyB,IAAAyyB,KAAA2tC,UAAA3tC,EAAA2tC,UAAA,KAGA,SAAAmuR,EAAAh6U,EAAA07B,EAAAxd,GACA,IACA47T,EADAhuR,EAAA5tC,EAAA4tC,eAkBA,OAfA,MAAA9rD,EAAA48B,WAAA,IAAAkvB,KAAA,IAAAA,GAAA5tC,EAAA8jK,YAAAtmJ,GACA,iBAAAA,KAAAt2C,QAAA,gBACA00V,GACAl9S,SAAA,KACAC,WAAA78B,EAAA68B,WACAksP,gBAAA/oR,EAAA+oR,iBAEA/oR,EAAA48B,SAAA,OAEA,MAAA58B,EAAA68B,aACA78B,EAAA68B,WAAA3e,EAAA2tC,UACA,MAAA7rD,EAAA+oR,kBAAA/oR,EAAA+oR,gBAAA,KAIA+wD,EAoBA,SAAA6B,EAAAnoB,EAAAztU,EAAAqC,EAAAwzV,EAAAl4T,EAAAkpC,GAWA,GAVA,mBAAAlpC,IACAkpC,EAAAlpC,EACAA,EAAA,MAMAk4T,KAAA7wR,qBAEA,CACA,IAAA8wR,EAAAroB,EAAA,YACAlhP,EAAAspQ,EAAAjxR,WAAA,oBAAAkxR,GACA3sL,EAAA0sL,EAAAjxR,WAAA,kBAAAkxR,GACAC,EAAAF,EAAAjxR,WAAA,iBAAAkxR,GAEA,mBAAAC,IACAA,IAAAp4T,EAAAk4T,EAAAhnB,wBAAAgnB,EAAAhnB,wBAAA7uU,EAAA29B,GAAA,OAGA,mBAAA4uD,IACAA,IAAA5uD,IAGA4uD,EAAA,EAAAvsF,EAAAsB,UAAAe,EAAAkqF,EAAAwpQ,GAAA,EAAA5sL,EAAAtiG,QAAA7mE,EAAAkB,gBAAAlB,EAAAsC,KAAAD,GAAAwkE,aAEA7mE,EAAAkB,gBACAlB,EAAAsC,KAAAD,GACAwkE,OA2BA,SAAA1iC,GAAAnkC,EAAAqC,EAAAwzV,EAAAl4T,EAAAkpC,GACA+uR,GAAA,EAAA51V,EAAAqC,EAAAwzV,EAAAl4T,EAAAkpC,GAmDA,SAAAtgC,GAAAzmC,EAAA03B,EAAA4R,GASA,OARA5R,IAAA4B,EAAAh6B,YAAAo4B,KACAA,EAAA6O,EAAAkC,kBAAA/Q,IAGA4R,IACA5R,EAAA2O,EAAAiD,UAAA5R,IAGA0O,EAAAK,kBAAAzmC,EAAA03B,GAyIA90B,EAAAisO,YAh9BA,SAAAvkO,GACA,OAAAsgC,EAAAzhC,OAAAmB,IAg9BA1H,EAAAszV,WAz8BA,SAAAhoH,EAAA5jO,GACA,OAAAsoV,EAAAtkH,iBAAAJ,EAAA5jO,IAy8BA1H,EAAAswV,WACAtwV,EAAAuzV,UAx6BA,SAAAC,EAAAzuT,EAAA5Q,GACA,IAAAj3B,EAAA,IAAA4qC,GACA1yB,OACAu5B,MAAA6kT,EACAtyV,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACAyU,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,QAEAjK,OAAA,SAAA6iC,GACA,cAAAva,EAAA,CACA,IAAAk8B,GACAx6C,MAAA64B,EAAA74B,MACAC,OAAA44B,EAAA54B,QAEA5Y,EAAAi8C,SAAAo3S,EAAAxrT,EAAAsrB,QAIA,OAAAnzD,GAs5BA8C,EAAAkuM,YACAluM,EAAAwwV,aACAxwV,EAAA61B,qBAv1BA,SAAAuhT,GACA,IAAAxyT,EAAAwyT,EAAAxyT,MACAgV,EAAAw9S,EAAAhiU,MAAAwkB,UAUA,OARA3yB,EAAA,EAAA2d,EAAA0oB,MAAArmC,EAAA,EAAA2d,EAAA8lB,MACA9lB,EAAA0oB,GAAA1oB,EAAA8lB,GAAA+lT,EAAA7rU,EAAA0oB,GAAA1T,GAAA,IAGA3yB,EAAA,EAAA2d,EAAA2oB,MAAAtmC,EAAA,EAAA2d,EAAA+lB,MACA/lB,EAAA2oB,GAAA3oB,EAAA+lB,GAAA8lT,EAAA7rU,EAAA2oB,GAAA3T,GAAA,IAGAw9S,GA40BAp3U,EAAAgyR,qBA3zBA,SAAAolD,GACA,IAAAxyT,EAAAwyT,EAAAxyT,MACAgV,EAAAw9S,EAAAhiU,MAAAwkB,UACAiyC,EAAAjnD,EAAA1jB,EACA6qE,EAAAnnD,EAAAxjB,EACAqyV,EAAA7uU,EAAA/O,MACA69U,EAAA9uU,EAAA9O,OAKA,OAJA8O,EAAA1jB,EAAAuvV,EAAA7rU,EAAA1jB,EAAA04B,GAAA,GACAhV,EAAAxjB,EAAAqvV,EAAA7rU,EAAAxjB,EAAAw4B,GAAA,GACAhV,EAAA/O,MAAAjR,KAAAE,IAAA2rV,EAAA5kR,EAAA4nR,EAAA75T,GAAA,GAAAhV,EAAA1jB,EAAA,IAAAuyV,EAAA,KACA7uU,EAAA9O,OAAAlR,KAAAE,IAAA2rV,EAAA1kR,EAAA2nR,EAAA95T,GAAA,GAAAhV,EAAAxjB,EAAA,IAAAsyV,EAAA,KACAtc,GAizBAp3U,EAAAywV,mBACAzwV,EAAAwiE,cA7kBA,SAAAllE,EAAA8kE,EAAA3sC,GACAn4B,EAAA00V,qBAAAv8T,KAAAk+T,mBACA,UAAAr2V,EAAA+C,KAAA/C,EAAAk4D,SAAA,SAAArsB,GACA,UAAAA,EAAA9oC,MACAwxV,EAAA1oT,EAAAi5B,KAEGyvR,EAAAv0V,EAAA8kE,GAEH9kE,EAAAif,GAAA,YAAAw1U,GAAAx1U,GAAA,WAAA21U,GAEA50V,EAAAif,GAAA,WAAA41U,GAAA51U,GAAA,SAAA61U,IAokBApyV,EAAAgjE,cAhjBA,SAAAs2H,EAAAs6J,EAAAC,EAAAC,EAAAr+T,EAAAs+T,EAAAC,GAEA,IAUA19I,EAVArzI,GADAxtC,KAAA46T,GACAptR,aACAC,EAAAztC,EAAAytC,eACA+wR,EAAAx+T,EAAAw+T,cAGAC,EAAAL,EAAA3xR,WAAA,QACAiyR,EAAAL,EAAA5xR,WAAA,SAMAgyR,GAAAC,KACAlxR,IACAqzI,EAAArzI,EAAAwzI,kBAAAvzI,EAAA,cAAA+wR,IAGA,MAAA39I,IACAA,EAAA5/K,EAAAl6B,WAAAi5B,EAAA0tC,aAAA1tC,EAAA0tC,YAAAD,EAAAztC,KAAA0tC,cAIA,IAAAixR,EAAAF,EAAA59I,EAAA,KACA+9I,EAAAF,EAAAz9T,EAAAogL,UAAA7zI,IAAAwzI,kBAAAvzI,EAAA,gBAAA+wR,GAAA,KAAA39I,GAAA,KAEA,MAAA89I,GAAA,MAAAC,IAOAr9I,EAAA1d,EAAAu6J,EAAAE,EAAAt+T,GACAuhL,EAAA48I,EAAAE,EAAAE,EAAAv+T,GAAA,IAGA6jK,EAAAprJ,KAAAkmT,EACAR,EAAA1lT,KAAAmmT,GA0gBAr0V,EAAAg3M,eACAh3M,EAAAs0V,QA/eA,SAAA/8U,EAAAqrD,EAAAgvO,GACA,IAGA0gD,EAHA78T,GACA8jK,YAAA,IAIA,IAAAq4G,EACA0gD,GAAA,EAGA78T,EAAA2tC,UAAAwuO,EAGA2gD,EAAAh7U,EAAAqrD,EAAAntC,EAAA68T,GACA/6U,EAAAktJ,MAAAltJ,EAAAktJ,KAAAxmK,OAAAsZ,EAAAktJ,KAAAxmK,OAAA,IAkeA+B,EAAAqyJ,QAlRA,SAAA58H,EAAAj1B,GAEA,IAAA+zV,EAAA/zV,KAAA07B,SAAA,aACA,OAAAxF,EAAA2nD,MACA5oD,EAAAgd,WAAA8hT,KAAAryR,WAAA,iBAAAzsC,EAAAqd,YAAAyhT,KAAAryR,WAAA,mBAAAzsC,EAAA/C,UAAA6hU,KAAAryR,WAAA,sBAAAzsC,EAAAkd,YAAA4hT,KAAAryR,WAAA,6BAAAj/D,KAAA,OA+QAjD,EAAAyhC,eACAzhC,EAAAq5B,UAlMA,SAAA/7B,EAAAqC,EAAAwzV,EAAAl4T,EAAAkpC,GACA+uR,GAAA,EAAA51V,EAAAqC,EAAAwzV,EAAAl4T,EAAAkpC,IAkMAnkE,EAAAk2J,aAvLA,SAAA94J,EAAAu3O,GAGA,IAFA,IAAA6/G,EAAA/wT,EAAA89K,aAEAnkN,OAAAu3O,GACAlxM,EAAAo+K,IAAA2yI,EAAAp3V,EAAAyoC,oBAAA2uT,GACAp3V,IAAAgpC,OAGA,OAAAouT,GAgLAx0V,EAAA6jC,kBACA7jC,EAAAmzR,mBAjJA,SAAAxzO,EAAA7qB,EAAA4R,GAEA,IAAA+tT,EAAA,IAAA3/T,EAAA,QAAAA,EAAA,QAAAA,EAAA,KAAAlwB,KAAAY,IAAA,EAAAsvB,EAAA,GAAAA,EAAA,IACA4/T,EAAA,IAAA5/T,EAAA,QAAAA,EAAA,QAAAA,EAAA,KAAAlwB,KAAAY,IAAA,EAAAsvB,EAAA,GAAAA,EAAA,IACAu/H,GAAA,SAAA10G,GAAA80S,EAAA,UAAA90S,EAAA80S,EAAA,UAAA90S,GAAA+0S,EAAA,WAAA/0S,EAAA+0S,EAAA,GAEA,OADArgM,EAAAxwH,GAAAwwH,EAAAv/H,EAAA4R,GACA9hC,KAAAY,IAAA6uJ,EAAA,IAAAzvJ,KAAAY,IAAA6uJ,EAAA,IAAAA,EAAA,oBAAAA,EAAA,qBA4IAr0J,EAAA6uJ,gBApIA,SAAA8lM,EAAAC,EAAAzB,EAAAhvR,GACA,GAAAwwR,GAAAC,EAAA,CA2BA,IAtBA98H,EAsBA+8H,GAtBA/8H,KAsBA68H,EArBAn/R,SAAA,SAAAl4D,IACAA,EAAAm4D,SAAAn4D,EAAA62M,OACA2jB,EAAAx6N,EAAA62M,MAAA72M,KAGAw6N,GAiBA88H,EAAAp/R,SAAA,SAAAl4D,GACA,IAAAA,EAAAm4D,SAAAn4D,EAAA62M,KAAA,CACA,IAAA2gJ,EAAAD,EAAAv3V,EAAA62M,MAEA,GAAA2gJ,EAAA,CACA,IAAAC,EAAAC,EAAA13V,GACAA,EAAAsC,KAAAo1V,EAAAF,IACArzT,GAAAnkC,EAAAy3V,EAAA5B,EAAA71V,EAAA29B,eArBA,SAAA+5T,EAAA13V,GACA,IAAA0K,GACAiD,SAAAu4B,EAAAqD,MAAAvpC,EAAA2N,UACAypB,SAAAp3B,EAAAo3B,UAOA,OAJAp3B,EAAAsnB,QACA5c,EAAA4c,MAAA8R,EAAAnwB,UAAkCjJ,EAAAsnB,QAGlC5c,IA4GAhI,EAAAizM,iBAhFA,SAAAh5K,EAAA8K,GACA,OAAArO,EAAAlpB,IAAAysB,EAAA,SAAAiN,GACA,IAAAhmC,EAAAgmC,EAAA,GACAhmC,EAAAsnC,EAAAtnC,EAAA6jC,EAAA7jC,GACAA,EAAA8uD,EAAA9uD,EAAA6jC,EAAA7jC,EAAA6jC,EAAAlvB,OACA,IAAAzU,EAAA8lC,EAAA,GAGA,OAFA9lC,EAAAonC,EAAApnC,EAAA2jC,EAAA3jC,IAEAF,EADAE,EAAA4uD,EAAA5uD,EAAA2jC,EAAA3jC,EAAA2jC,EAAAjvB,YA0EA9V,EAAAi1V,eA/DA,SAAAC,EAAAnwT,GACA,IAAA7jC,EAAAsnC,EAAA0sT,EAAAh0V,EAAA6jC,EAAA7jC,GACAwpC,EAAAslB,EAAAklS,EAAAh0V,EAAAg0V,EAAAr/U,MAAAkvB,EAAA7jC,EAAA6jC,EAAAlvB,OACAzU,EAAAonC,EAAA0sT,EAAA9zV,EAAA2jC,EAAA3jC,GACAupC,EAAAqlB,EAAAklS,EAAA9zV,EAAA8zV,EAAAp/U,OAAAivB,EAAA3jC,EAAA2jC,EAAAjvB,QAEA,GAAA40B,GAAAxpC,GAAAypC,GAAAvpC,EACA,OACAF,IACAE,IACAyU,MAAA60B,EAAAxpC,EACA4U,OAAA60B,EAAAvpC,IAqDApB,EAAAiyR,WAzCA,SAAAowC,EAAA5sS,EAAAsP,GAIA,IAAA3vB,GAHAqgB,EAAAiB,EAAAnwB,QACA61T,WAAA,GACG3mS,IACHrgB,OACA82B,eAAA,GASA,GAPAnH,MACA7jC,GAAA,EACAE,GAAA,EACAyU,MAAA,EACAC,OAAA,GAGAusT,EACA,WAAAA,EAAA1lU,QAAA,aAAAyY,EAAAu5B,MAAA0zR,EAAAljU,MAAA,GAAAu3B,EAAAmJ,SAAAzqB,EAAA2vB,GAAA,IAAA+C,EAAArS,IAAA66T,EAAAjuB,EAAAj9T,QAAA,cAAAqwB,EAAAsP,EAAA,iCCxjCA,IAAA9kC,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErB8zJ,EAAgB9zJ,EAAQ,QAExBi3G,EAAWj3G,EAAQ,QAEnBkuN,EAAqBluN,EAAQ,QAoB7B+4V,EAAA9hP,EAAAx8F,QAAAq5R,SACAklD,EAAA,IAAA1sV,MAAA,IAAAzF,KAAA,KACAoyV,EAAA,KA2HA,SAAAC,EAAA90V,GACA,IAnEA2O,EACAomV,EAkEA3nV,EAlHA,SAAApN,GACA,IAAAg1V,KACAC,KACA9nI,KA8BA,OA7BAntN,EAAAkvO,cAAA,SAAAr3M,GACA,IAAAH,EAAAG,EAAAnN,iBAEA,IAAAgN,GAAA,gBAAAA,EAAA73B,MAAA,UAAA63B,EAAA73B,KAuBAo1V,EAAAr3V,KAAAi6B,OAvBA,CACA,IAAA8B,EAAAjC,EAAAyB,cAEA,gBAAAQ,EAAA95B,KAAA,CACA,IAAAuG,EAAAuzB,EAAAjF,IAAA,IAAAiF,EAAA1wB,MAEA+rV,EAAA5uV,KACA4uV,EAAA5uV,IACA5E,aAAAm4B,EACA93B,UAAA61B,EAAA3E,aAAA4G,GACAhrB,WAEAw+M,EAAAvvN,MACAynK,QAAA1rI,EAAAjF,IACA8xC,UAAA7sC,EAAA1wB,SAIA+rV,EAAA5uV,GAAAuI,OAAA/Q,KAAAi6B,QAEAo9T,EAAAr3V,KAAAi6B,OAOAm9T,4BACAvgN,MAAAwgN,EACA9nI,QA8EA+nI,CAAAl1V,GACA,OACA4D,MAAAsyB,EAAAzS,SArEA9U,EAqEAvB,EAAA4nV,0BApEAD,KACA7+T,EAAA4E,KAAAnsB,EAAA,SAAA0sB,EAAAj1B,GACA,IAAA5E,EAAA65B,EAAA75B,aAEAupS,EADA1vQ,EAAAx5B,UACA6yB,IACA48C,GAAA,KAAAlgE,OAAA8kB,EAAAlpB,IAAAquB,EAAA1sB,OAAA,SAAAA,GACA,OAAAA,EAAA1P,QAEAgR,GAAAzO,EAAAoyB,MAAAy5I,iBACAn3I,EAAA4E,KAAAO,EAAA1sB,OAAA,SAAAA,GACAsB,EAAArS,KAAA+Q,EAAA85K,aAAA7sJ,SAAAmvQ,EAAA,SAAAnhS,GACA,OAAAA,OAMA,IAFA,IAAAgoC,GAAA0/B,EAAA7uE,KAAAoyV,IAEAz3V,EAAA,EAAmBA,EAAA6S,EAAA,GAAA3S,OAAuBF,IAAA,CAG1C,IAFA,IAAAmR,KAEAghB,EAAA,EAAqBA,EAAAtf,EAAA3S,OAAoBiyB,IACzChhB,EAAA3Q,KAAAqS,EAAAsf,GAAAnyB,IAGAw0C,EAAAh0C,KAAA2Q,EAAA9L,KAAAoyV,IAGAE,EAAAn3V,KAAAg0C,EAAAnvC,KAAA,SAEAsyV,EAAAtyV,KAAA,OAAAmyV,EAAA,SAUA,SAAAjmV,GACA,OAAAunB,EAAAlpB,IAAA2B,EAAA,SAAAA,GACA,IAAAxB,EAAAwB,EAAA85K,aACA72I,GAAAjjC,EAAA1P,MACA4rI,KAYA,OAXA19H,EAAA2tB,KAAA3tB,EAAAixB,WAAA,WAKA,IAJA,IAAA+2T,EAAAh0V,UAAA7D,OACAm9B,EAAAt5B,UAAAg0V,EAAA,GACAl2V,EAAAkO,EAAAqzD,QAAA/lC,GAEAr9B,EAAA,EAAqBA,EAAA+3V,EAAA,EAAgB/3V,IACrCytI,EAAAztI,GAAA+D,UAAA/D,GAGAw0C,EAAAh0C,MAAAqB,IAAA41V,EAAA,IAAAhqN,EAAApoI,KAAAoyV,MAEAjjT,EAAAnvC,KAAA,QACGA,KAAA,OAAAmyV,EAAA,QAYHQ,CAAAhoV,EAAAqnI,QAAA,SAAA/nG,GACA,OAAAA,EAAA9nC,QAAA,kBACKnC,KAAA,OAAAmyV,EAAA,QACLznI,KAAA//M,EAAA+/M,MAIA,SAAAtvI,EAAAnxC,GACA,OAAAA,EAAA9nC,QAAA,aAAAA,QAAA,aAgBA,IAAAywV,EAAA,IAAA1wV,OAAA,IAAAkwV,EAAA,UAqFA,SAAAS,EAAA5oT,EAAA6oT,GACA,IAAAC,EAAA9oT,EAAAxvC,MAAA,IAAAyH,OAAA,MAAAiwV,EAAA,YACA52R,GACArvD,WAoBA,OAlBAunB,EAAA4E,KAAA06T,EAAA,SAAA7nH,EAAAhxM,GACA,GApGA,SAAAgxM,GAIA,GAFAA,EAAAhvO,MAAA,EAAAgvO,EAAAxxO,QAAA,OAEAA,QAAA04V,IAAA,EACA,SA+FAY,CAAA9nH,GAAA,CACA,IAAAvgO,EAtFA,SAAAsoV,GAWA,IAVA,IAAAC,EAAAD,EAAAx4V,MAAA,QACAo0E,EAAAuM,EAAA83Q,EAAA9rT,SAAA3sC,MAAAm4V,GACA5nL,KACA9+J,EAAAunB,EAAAlpB,IAAAskE,EAAA,SAAA8c,GACA,OACAnvF,KAAAmvF,EACAjhF,WAIA/P,EAAA,EAAiBA,EAAAu4V,EAAAr4V,OAAqBF,IAAA,CACtC,IAAAmR,EAAAsvE,EAAA83Q,EAAAv4V,IAAAF,MAAAm4V,GACA5nL,EAAA7vK,KAAA2Q,EAAAs7B,SAEA,QAAAta,EAAA,EAAmBA,EAAAhhB,EAAAjR,OAAkBiyB,IACrC5gB,EAAA4gB,KAAA5gB,EAAA4gB,GAAApiB,KAAA/P,GAAAmR,EAAAghB,IAIA,OACA5gB,SACA8+J,cAgEAmoL,CAAAjoH,GACAkoH,EAAAN,EAAA54T,GACAm5T,EAAAD,EAAAxwL,QAAA,OAEAwwL,IACA73R,EAAA83R,GAAA93R,EAAA83R,OACA93R,EAAA83R,GAAAD,EAAArvR,YACAr5D,KAAAC,EAAAqgK,YAEAzvG,EAAArvD,OAAAqvD,EAAArvD,OAAAyC,OAAAhE,EAAAuB,aAEK,CACLvB,EAlEA,SAAAs/B,GAKA,IAJA,IAAAkF,EAAAlF,EAAAxvC,MAAA,QACAuR,EAAAovE,EAAAjsC,EAAA/H,SACA18B,KAEA/P,EAAA,EAAiBA,EAAAw0C,EAAAt0C,OAAkBF,IAAA,CACnC,IAEAwG,EAFA2K,EAAAsvE,EAAAjsC,EAAAx0C,IAAAF,MAAAm4V,GACAp2V,EAAA,GAEA82V,GAAA,EAEAjvV,MAAAyH,EAAA,KAEAwnV,GAAA,EACA92V,EAAAsP,EAAA,GACAA,IAAA5P,MAAA,GACAwO,EAAA/P,IACA6B,OACA2E,UAEAA,EAAAuJ,EAAA/P,GAAAwG,OAEAA,EAAAuJ,EAAA/P,MAGA,QAAAmyB,EAAA,EAAmBA,EAAAhhB,EAAAjR,OAAkBiyB,IACrC3rB,EAAAhG,MAAA2Q,EAAAghB,IAGA,IAAA3rB,EAAAtG,SACAy4V,EAAA5oV,EAAA/P,GAAAwG,QAAA,GAAAuJ,EAAA/P,GAAAwG,EAAA,IAIA,OACA3E,KAAAwP,EACAtB,QA8BA6oV,CAAAroH,GACA3vK,EAAArvD,OAAA/Q,KAAAwP,MAGA4wD,EASA,SAAAimB,EAAArwD,GACAv3B,KAAAmuD,KAAA,KACAnuD,KAAAu3B,QAGAqwD,EAAAlzD,eACArvB,MAAA,EACAu0V,UAAA,EACAC,gBAAA,KACAC,gBAAA,KACAtmR,KAAA,8GACAt5D,MAAA2f,EAAAmQ,MAAAsuT,EAAAp+U,OACAs8F,KAAA38E,EAAAmQ,MAAAsuT,EAAA9hP,MACA/7F,gBAAA,OACA0rQ,UAAA,OACA4zE,cAAA,OACAC,oBAAA,OACAC,YAAA,UACAC,gBAAA,QAGAtyQ,EAAA1nF,UAAAwuN,QAAA,SAAA/qN,EAAAC,GACA,IAAA2pF,EAAA3pF,EAAA4tD,SACAj6B,EAAAv3B,KAAAu3B,MAEAv3B,KAAAmuD,MACAo/B,EAAA/gD,YAAAxsC,KAAAmuD,MAGA,IAAAtT,EAAAhrC,SAAAC,cAAA,OACA+qC,EAAAtiC,MAAAyzB,QAAA,2DACA6O,EAAAtiC,MAAAkC,gBAAA8c,EAAAvzB,IAAA,2BAEA,IAAA+tF,EAAAliF,SAAAC,cAAA,MACA0mG,EAAAj/E,EAAAvzB,IAAA,YACA+tF,EAAAn9C,UAAA4hE,EAAA,IAAAj/E,EAAAvzB,IAAA,SACA+tF,EAAAx5E,MAAAyzB,QAAA,qBACA+lD,EAAAx5E,MAAApS,MAAAoxB,EAAAvzB,IAAA,aACA,IAAAm2V,EAAAtqV,SAAAC,cAAA,OACAk2N,EAAAn2N,SAAAC,cAAA,YACAqqV,EAAA5hV,MAAAyzB,QAAA,0CACA,IAAA6tT,EAAAtiU,EAAAvzB,IAAA,mBACA81V,EAAAviU,EAAAvzB,IAAA,mBACA+M,EAAA0nV,EAAA90V,GAEA,sBAAAk2V,EAAA,CACA,IAAAO,EAAAP,EAAAj2V,EAAAiuD,aAEA,iBAAAuoS,EACAD,EAAAvlT,UAAAwlT,EACKvgU,EAAA8xM,MAAAyuH,IACLD,EAAAlqV,YAAAmqV,QAIAD,EAAAlqV,YAAA+1N,GACAA,EAAA4zH,SAAAriU,EAAAvzB,IAAA,YACAgiO,EAAAztN,MAAAyzB,QAAA,kFACAg6L,EAAAztN,MAAApS,MAAAoxB,EAAAvzB,IAAA,aACAgiO,EAAAztN,MAAAwa,YAAAwE,EAAAvzB,IAAA,uBACAgiO,EAAAztN,MAAAkC,gBAAA8c,EAAAvzB,IAAA,iBACAgiO,EAAAz+N,MAAAwJ,EAAAxJ,MAGA,IAAA2xV,EAAAnoV,EAAA+/M,KACAupI,EAAAxqV,SAAAC,cAAA,OACAuqV,EAAA9hV,MAAAyzB,QAAA,6CACA,IAAAsuT,EAAA,4GACAC,EAAA1qV,SAAAC,cAAA,OACA0qV,EAAA3qV,SAAAC,cAAA,OACAwqV,GAAA,qBAAmB/iU,EAAAvzB,IAAA,eACnBs2V,GAAA,UAAmB/iU,EAAAvzB,IAAA,mBACnB,IAAAmI,EAAAnM,KAEA,SAAA84E,IACAyU,EAAA/gD,YAAAqO,GACA1uC,EAAAgiD,KAAA,KAGAklG,EAAAz0I,iBAAA27U,EAAA,QAAAzhR,GACAu6E,EAAAz0I,iBAAA47U,EAAA,mBACA,IAAA74R,EAEA,IAEAA,EADA,mBAAAm4R,EACAA,EAAAK,EAAAv2V,EAAAiuD,aAEAonS,EAAAjzH,EAAAz+N,MAAA2xV,GAEK,MAAA/0V,GAEL,MADA20E,IACA,IAAAzZ,MAAA,0BAAAl7D,GAGAw9D,GACA/9D,EAAAQ,gBACAZ,KAAA,iBACAm+D,cAIAmX,MAEAyhR,EAAA3lT,UAAA4hE,EAAA,GACAgkP,EAAA5lT,UAAA4hE,EAAA,GACAgkP,EAAAjiV,MAAAyzB,QAAAsuT,EACAC,EAAAhiV,MAAAyzB,QAAAsuT,GACA/iU,EAAAvzB,IAAA,aAAAq2V,EAAApqV,YAAAuqV,GACAH,EAAApqV,YAAAsqV,GAEAlnM,EAAAz0I,iBAAAonN,EAAA,mBAAA7hO,GACA,QAAAA,EAAA+3Q,SAAA/3Q,EAAAiuL,OAAA,CAEA,IAAA7kL,EAAAvN,KAAAuH,MACA/E,EAAAxC,KAAAy6V,eACAvpU,EAAAlxB,KAAA06V,aAEA16V,KAAAuH,MAAAgG,EAAAi1E,UAAA,EAAAhgF,GAAAg2V,EAAAjrV,EAAAi1E,UAAAtxD,GAEAlxB,KAAAy6V,eAAAz6V,KAAA06V,aAAAl4V,EAAA,EAEA6wJ,EAAAvxJ,KAAAqC,MAGA02C,EAAA5qC,YAAA8hF,GACAl3C,EAAA5qC,YAAAkqV,GACAt/S,EAAA5qC,YAAAoqV,GACAF,EAAA5hV,MAAAU,OAAAs0E,EAAA3wE,aAAA,QACA2wE,EAAAt9E,YAAA4qC,GACA76C,KAAAmuD,KAAAtT,GAGA+sC,EAAA1nF,UAAAuE,OAAA,SAAAd,EAAAC,GACA5D,KAAAmuD,MAAAvqD,EAAA4tD,SAAAhlB,YAAAxsC,KAAAmuD,OAGAy5B,EAAA1nF,UAAA6E,QAAA,SAAApB,EAAAC,GACA5D,KAAAyE,OAAAd,EAAAC,IA0BA6pN,EAAAxpN,SAAA,WAAA2jF,GACAxkF,EAAAs4D,gBACAl4D,KAAA,iBACA+zD,MAAA,kBACAhb,OAAA,oBACC,SAAA3Y,EAAAjgC,GACD,IAAAg3V,KACA9gU,EAAA4E,KAAAmF,EAAA+9B,UAAArvD,OAAA,SAAA88K,GACA,IAAA5zJ,EAAA73B,EAAAwzU,gBAAA/nJ,EAAAxsL,MAAA,GAEA,GAAA44B,EAOK,CACL,IAAAo/T,EAAAp/T,EAAAx3B,IAAA,QACA22V,EAAAp5V,MACAqB,KAAAwsL,EAAAxsL,KACAkO,KAxCA,SAAAksF,EAAA49P,GACA,OAAA/gU,EAAAlpB,IAAAqsF,EAAA,SAAAmjG,EAAA7/J,GACA,IAAAstI,EAAAgtL,KAAAt6T,GAEA,OAAAzG,EAAAj6B,SAAAguK,KAAA/zI,EAAA/tB,QAAA8hK,IACA/zI,EAAAj6B,SAAAugM,KAAAtmK,EAAA/tB,QAAAq0L,KACAA,IAAA54L,OAIAsyB,EAAAmJ,UACAz7B,MAAA44L,GACOvyB,IAEPuyB,IA0BA06J,CAAAzrK,EAAAt+K,KAAA8pV,UARAD,EAAAp5V,KAAAs4B,EAAAnwB,QAEAlG,KAAA,WACO4rL,MASPzrL,EAAAyhL,YAAAvrJ,EAAAmJ,UACA1wB,OAAAqoV,GACG/2T,EAAA+9B,cAEH,IAAA1+D,EAAA2kF,EACA1kF,EAAAC,QAAAF,wBC1eA1D,EAAQ,QAERA,EAAQ,8BCFR,IAAAs6B,EAAat6B,EAAQ,QAoBrBu7V,EAAA,KA8QA,IAAAC,EAAA,oIAyEA,SAAAC,EAAAztV,GACA,OAAAxF,KAAAkwC,MAAAlwC,KAAAvI,IAAA+N,GAAAxF,KAAAmuU,MA6HA/yU,EAAAswJ,UArcA,SAAAlmJ,EAAAw+R,EAAA3rL,EAAAslF,GACA,IAAAu1J,EAAAlvD,EAAA,GAAAA,EAAA,GACAmvD,EAAA96O,EAAA,GAAAA,EAAA,GAEA,OAAA66O,EACA,WAAAC,EAAA96O,EAAA,IAAAA,EAAA,GAAAA,EAAA,MAQA,GAAAslF,EACA,GAAAu1J,EAAA,GACA,GAAA1tV,GAAAw+R,EAAA,GACA,OAAA3rL,EAAA,GACO,GAAA7yG,GAAAw+R,EAAA,GACP,OAAA3rL,EAAA,OAEK,CACL,GAAA7yG,GAAAw+R,EAAA,GACA,OAAA3rL,EAAA,GACO,GAAA7yG,GAAAw+R,EAAA,GACP,OAAA3rL,EAAA,OAGG,CACH,GAAA7yG,IAAAw+R,EAAA,GACA,OAAA3rL,EAAA,GAGA,GAAA7yG,IAAAw+R,EAAA,GACA,OAAA3rL,EAAA,GAIA,OAAA7yG,EAAAw+R,EAAA,IAAAkvD,EAAAC,EAAA96O,EAAA,IAiaAj9G,EAAAupC,aArZA,SAAAtoB,EAAA+6C,GACA,OAAA/6C,GACA,aACA,aACAA,EAAA,MACA,MAEA,WACA,UACAA,EAAA,KACA,MAEA,YACA,aACAA,EAAA,OAIA,uBAAAA,GAjFAisB,EAkFAjsB,EAjFAisB,EAAA9nC,QAAA,WAAAA,QAAA,YAiFAY,MAAA,MACAqc,WAAApB,GAAA,IAAA+6C,EAGA35C,WAAApB,GAGA,MAAAA,EAAAqqJ,KAAArqJ,EAzFA,IAAAisB,GAqdAltC,EAAAiH,MA/WA,SAAA/F,EAAAgF,EAAA8xV,GAQA,OAPA,MAAA9xV,IACAA,EAAA,IAIAA,EAAAtB,KAAAC,IAAAD,KAAAE,IAAA,EAAAoB,GAAA,IACAhF,OAAAiD,QAAA+B,GACA8xV,EAAA92V,MAwWAlB,EAAAstE,IArWA,SAAA7kE,GAIA,OAHAA,EAAA0J,KAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAC,IAEA5J,GAkWAzI,EAAAkuS,aA1VA,SAAA9jS,GAGA,GAFAA,KAEA9C,MAAA8C,GACA,SAUA,IAHA,IAAApJ,EAAA,EACA5B,EAAA,EAEAwF,KAAAqC,MAAAmD,EAAApJ,OAAAoJ,GACApJ,GAAA,GACA5B,IAGA,OAAAA,GAwUAY,EAAA20C,iBAhUA,SAAAvqC,GACA,IAAA8iC,EAAA9iC,EAAA3F,WAEAwzV,EAAA/qT,EAAAvwC,QAAA,KAEA,GAAAs7V,EAAA,GACA,IAAA/xV,GAAAgnC,EAAA/tC,MAAA84V,EAAA,GACA,OAAA/xV,EAAA,GAAAA,EAAA,EAEA,IAAAgyV,EAAAhrT,EAAAvwC,QAAA,KACA,OAAAu7V,EAAA,IAAAhrT,EAAApvC,OAAA,EAAAo6V,GAuTAl4V,EAAAqzR,kBA3SA,SAAAx+H,EAAAsjM,GACA,IAAA97V,EAAAuI,KAAAvI,IACA02U,EAAAnuU,KAAAmuU,KACAqlB,EAAAxzV,KAAAkwC,MAAAz4C,EAAAw4J,EAAA,GAAAA,EAAA,IAAAk+K,GACAslB,EAAAzzV,KAAAqC,MAAA5K,EAAAuI,KAAAY,IAAA2yV,EAAA,GAAAA,EAAA,KAAAplB,GAEA7sU,EAAAtB,KAAAC,IAAAD,KAAAE,KAAAszV,EAAAC,EAAA,OACA,OAAAl9S,SAAAj1C,KAAA,IAqSAlG,EAAA8oL,wBAtRA,SAAAO,EAAAlsJ,EAAAj3B,GACA,IAAAmjL,EAAAlsJ,GACA,SAGA,IAAAhc,EAAAuV,EAAApU,OAAA+mK,EAAA,SAAAivK,EAAAluV,GACA,OAAAkuV,GAAAhxV,MAAA8C,GAAA,EAAAA,IACG,GAEH,OAAA+W,EACA,SAmBA,IAhBA,IAAAo3U,EAAA3zV,KAAAI,IAAA,GAAAkB,GACAsyV,EAAA9hU,EAAAlpB,IAAA67K,EAAA,SAAAj/K,GACA,OAAA9C,MAAA8C,GAAA,EAAAA,GAAA+W,EAAAo3U,EAAA,MAEAE,EAAA,IAAAF,EACAG,EAAAhiU,EAAAlpB,IAAAgrV,EAAA,SAAAG,GAEA,OAAA/zV,KAAAkwC,MAAA6jT,KAEAC,EAAAliU,EAAApU,OAAAo2U,EAAA,SAAAJ,EAAAluV,GACA,OAAAkuV,EAAAluV,GACG,GACHo5J,EAAA9sI,EAAAlpB,IAAAgrV,EAAA,SAAAG,EAAAx7T,GACA,OAAAw7T,EAAAD,EAAAv7T,KAGAy7T,EAAAH,GAAA,CAKA,IAHA,IAAA3zV,EAAA8S,OAAAihV,kBACAC,EAAA,KAEAl7V,EAAA,EAAAc,EAAA8kK,EAAA1lK,OAA2CF,EAAAc,IAASd,EACpD4lK,EAAA5lK,GAAAkH,IACAA,EAAA0+J,EAAA5lK,GACAk7V,EAAAl7V,KAKA86V,EAAAI,GACAt1L,EAAAs1L,GAAA,IACAF,EAGA,OAAAF,EAAAv7T,GAAAo7T,GAwOAv4V,EAAA4sG,iBApOA,iBAqOA5sG,EAAA6kU,UA9NA,SAAA0N,GACA,IAAAwmB,EAAA,EAAAn0V,KAAAgwB,GACA,OAAA29S,EAAAwmB,QA6NA/4V,EAAA4kU,mBArNA,SAAAx6T,GACA,OAAAA,GAAAutV,GAAAvtV,EAAAutV,GAqNA33V,EAAAyoK,UAhMA,SAAArkK,GACA,GAAAA,aAAAkI,KACA,OAAAlI,EACG,oBAAAA,EAAA,CAMH,IAAA4B,EAAA4xV,EAAA54Q,KAAA56E,GAEA,IAAA4B,EAEA,WAAAsG,KAAAg/J,KAIA,GAAAtlK,EAAA,GAWA,CACA,IAAAy3J,GAAAz3J,EAAA,MAMA,MAJA,MAAAA,EAAA,GAAA6oC,gBACA4uH,GAAAz3J,EAAA,GAAA7G,MAAA,MAGA,IAAAmN,UAAA2yJ,KAAAj5J,EAAA,KAAAA,EAAA,UAAAA,EAAA,MAAAy3J,IAAAz3J,EAAA,QAAAA,EAAA,OAAAA,EAAA,QAfA,WAAAsG,MAAAtG,EAAA,KAAAA,EAAA,UAAAA,EAAA,OAAAA,EAAA,QAAAA,EAAA,QAAAA,EAAA,OAAAA,EAAA,OAiBG,aAAA5B,EACH,IAAAkI,KAAAg/J,KAGA,IAAAh/J,KAAA1H,KAAAqC,MAAA7C,KAwJApE,EAAAw2C,SA9IA,SAAApsC,GACA,OAAAxF,KAAAI,IAAA,GAAA6yV,EAAAztV,KA8IApK,EAAA8vM,KA3HA,SAAA1lM,EAAAnD,GACA,IAAA+xV,EAAAnB,EAAAztV,GACA0oU,EAAAluU,KAAAI,IAAA,GAAAg0V,GACAn5S,EAAAz1C,EAAA0oU,EAiCA,OAHA1oU,GA1BAnD,EACA44C,EAAA,IACA,EACKA,EAAA,IACL,EACKA,EAAA,EACL,EACKA,EAAA,EACL,EAEA,GAGAA,EAAA,EACA,EACKA,EAAA,EACL,EACKA,EAAA,EACL,EACKA,EAAA,EACL,EAEA,IAIAizR,EAGAkmB,IAAA,IAAA5uV,EAAAjG,QAAA60V,EAAA,GAAAA,EAAA,GAAA5uV,GAwFApK,EAAAi5V,gBA9DA,SAAAvvU,GACAA,EAAAvX,KAAA,SAAAC,EAAAC,GACA,OA4BA,SAAAoqL,EAAArqL,EAAAC,EAAA6mV,GACA,OAAA9mV,EAAAmkC,SAAA2iT,GAAA7mV,EAAAkkC,SAAA2iT,IAAA9mV,EAAAmkC,SAAA2iT,KAAA7mV,EAAAkkC,SAAA2iT,KAAA9mV,EAAAujE,MAAAujR,GAAA7mV,EAAAsjE,MAAAujR,QAAA,OAAAA,GAAAz8J,EAAArqL,EAAAC,EAAA,IA7BAoqL,CAAArqL,EAAAC,EAAA,UAKA,IAHA,IAAAgxF,GAAA,IACA81P,EAAA,EAEAv7V,EAAA,EAAiBA,EAAA8rB,EAAA5rB,QAAiB,CAIlC,IAHA,IAAAy4C,EAAA7sB,EAAA9rB,GAAA24C,SACAo/B,EAAAjsD,EAAA9rB,GAAA+3E,MAEAujR,EAAA,EAAoBA,EAAA,EAAQA,IAC5B3iT,EAAA2iT,IAAA71P,IACA9sD,EAAA2iT,GAAA71P,EACA1tB,EAAAujR,KAAA,IAAAC,GAGA91P,EAAA9sD,EAAA2iT,GACAC,EAAAxjR,EAAAujR,GAGA3iT,EAAA,KAAAA,EAAA,IAAAo/B,EAAA,GAAAA,EAAA,MACAjsD,EAAAvrB,OAAAP,EAAA,GAEAA,IAIA,OAAA8rB,GAmCA1pB,EAAAwoU,UAnBA,SAAA5+T,GACA,OAAAA,EAAAyY,WAAAzY,IAAA,yBCreA,IAAAs0Q,EAAU9hR,EAAQ,QAClBk0U,EAAUl0U,EAAQ,OAARA,CAAgB,eAE1Bg9V,EAA+C,aAA/Cl7E,EAAA,WAA2B,OAAAv8Q,UAA3B,IASA5B,EAAAC,QAAA,SAAAu9D,GACA,IAAAH,EAAA8gK,EAAA9I,EACA,YAAA7qN,IAAAgzD,EAAA,mBAAAA,EAAA,OAEA,iBAAA2gK,EAVA,SAAA3gK,EAAA32D,GACA,IACA,OAAA22D,EAAA32D,GACG,MAAA5F,KAOHq4V,CAAAj8R,EAAA32D,OAAA82D,GAAA+yQ,IAAApyG,EAEAk7H,EAAAl7E,EAAA9gN,GAEA,WAAAg4J,EAAA8oD,EAAA9gN,KAAA,mBAAAA,EAAAk8R,OAAA,YAAAlkI,yBCrBA,IAAA1+L,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAoBtBm9V,GACAtlC,KAAA,OAEAulC,WAAA,aACAC,SAAA,WACAC,KAAA,QAEAC,EAAA,EACAC,EAAA,EAOA,SAAAC,EAAA9jS,EAAA19B,EAAA73B,GACA6W,EAAAskB,MAAApzB,KAAA1L,MACA,IAAA0kE,EAAA,IAAAlqD,EAAA0hB,QACAkI,GAAA04T,IAEAp4R,EAAAvyC,YAAAqJ,EAAArJ,YACA,IAAAkf,EAAA,IAAA72B,EAAA0wB,MACA9G,GAAA24T,EACA54T,OAAA+0B,EAAA75B,SAAA,SAAAr7B,IAAA,YAMA,SAAA2gE,IACAtzB,EAAArN,OAAAqN,EAAAuzB,YAGA,SAAAC,IACAxzB,EAAArN,OAAAqN,EAAAyzB,aATA9kE,KAAAi/B,IAAAylC,GACA1kE,KAAAi/B,IAAAoS,GACArxC,KAAAihC,YAAA,EAAAi4B,EAAA,SAAA19B,EAAA73B,GAUA3D,KAAA0f,GAAA,WAAAilD,GAAAjlD,GAAA,SAAAmlD,GAAAnlD,GAAA,YAAAilD,GAAAjlD,GAAA,WAAAmlD,GAGA,IAAAo4R,EAAAD,EAAA98V,UAEA+8V,EAAAh8T,WAAA,SAAA+jC,EAAA9L,EAAAnd,EAAAvgB,EAAA73B,GACA3D,KAAAk5D,OACAA,EAAAqkI,MAAAv9L,KACAw7B,KAAAx7B,KAAAk9V,aACAv5V,KAAA3D,KAAAsoT,SACA,IAAA5jP,EAAA1kE,KAAAilE,QAAA,GACAP,EAAAtmC,UAAA86B,EAAA96B,UACA,IAAA8mC,EAAAhM,EAAA75B,WACA/H,EAAA4hC,EAAA0wH,YAEAtyJ,GACA7hB,QAAAjW,IAAA05D,EAAA0wH,aAGA,IAAAxkH,EAAAvrC,EAAAnwB,UAAoC4tB,GACpC8tC,EAAA3yD,MAAA,KACA,IAEA8F,EAFAkpB,EAiOA,SAAAy3B,EAAA19B,EAAA73B,GAEA,IAAA89B,EAAAy3B,EAAAv3B,UAAA,SACAD,EAAAw3B,EAAAv3B,UAAA,cAEAD,GAAA,IAAAA,EAAAzgC,SAEAwgC,EAAA,MAIA,IAAAt7B,EAAA+yD,EAAA75B,SAAA,aAAAr7B,IAAA,SAEA,GAAAmC,EACA,OAAAA,EACG,GAAAs7B,EAEH,OAAAA,EACG,OAAAy3B,EAAAovH,MAEH,OAAA3kL,EAAAsZ,OAAA9W,MAAA,GAGA,IAAAlF,EAAA0C,EAAAsZ,OAAA9W,MAAAlF,OACAkF,EAAAxC,EAAAsZ,OAAA9W,MAaA,SAAA+yD,GACA,IAAA4+K,EAAA5+K,EAEA,KAAA4+K,EAAAxvD,MAAA,GACAwvD,IAAAvrM,WAGA,IAAA02J,EAAA/pI,EAAAowH,eAAA,GACA,OAAAzvJ,EAAA/5B,QAAAmjM,EAAA1a,SAAAuvD,GArBAqlH,CAAAjkS,GAAAj4D,GAGA,OAAAkF,EA5PAi3V,CAAAlkS,EAAA19B,EAAA73B,GACA84L,EAAAv3H,EAAA7lC,SAAA,aAAAimC,eAGA,cAAAvpB,EACAxjC,EAAAkkL,MACG,CACH,IAAA4gK,EAAAn4R,EAAA7lC,SAAA0c,EAAA,cAAAupB,eACA/sD,EAAAshB,EAAA82C,MAAA0sR,EAAA5gK,GAGAlkL,EAAAshB,EAAAmJ,UACAG,SAAA,QACAzrB,KAAAa,EAAAb,MAAA+pB,GACGlpB,GAEHysD,GACAN,EAAAnjC,SAAA6jC,GACAV,EAAA38C,MAAAtQ,EAAA6f,EAAA6E,GACA3hB,EAAAoqB,YAAA8/B,GACA38C,OACAtQ,EAAA6f,EAAA7f,IAEK+jB,EAAA09B,EAAA96B,WACLsmC,EAAA3hC,SAAAxqB,IACG,iBAAAA,EAAAb,MAAAa,EAAAb,KAAAlU,MAAA,iBAAAkhE,EAAAnsD,MAAAb,MAAAgtD,EAAAnsD,MAAAb,KAAAlU,MAGHgX,EAAAoqB,YAAA8/B,GACA38C,MAAAq9C,GACK5pC,GACLkpC,EAAA3hC,SAAAxqB,IAEAiC,EAAAoqB,YAAA8/B,GACA38C,MAAAq9C,EACA7sD,SACKijB,GAGLx7B,KAAA0lE,aAAAlqC,EAAAiG,EAAAsa,GAEA,IAAAypB,EAAAN,EAAAG,WAAA,UAGA,GAFAG,GAAAd,EAAA3hE,KAAA,SAAAyiE,GAEAR,EAAA,CACA,IAAA2pP,EAAAnzR,EAAA6pC,WAAA,mBAEArlE,KAAA6vD,YAAA6U,EAAAxL,EAAA19B,EAAAmzR,GAGA3uT,KAAAk9V,aAAA1hU,GAAAx7B,KAAAk9V,aACAl9V,KAAAsoT,SAAA3kT,GAAA3D,KAAAsoT,UAGA20C,EAAAt4R,WAAA,SAAAgqP,GACA,IAAA0C,EAAArxT,KACAA,KAAAk5D,KAAAmvH,SAAAxtI,KAAAouI,SAAA,SAAA7qI,GAyNA,IAAA8a,EAAAokS,EAAAC,EAxNAn/S,EAAAm/I,QACA8zH,EAAAn4P,OAAA9a,EACAA,EAAAm/I,MAAAt8J,YAAA,EAAAmd,EAAA,aAsNA8a,EArNO9a,EAqNPk/S,EArNOjsC,EAAAn4P,MAqNPqkS,EArNO5uC,KAsNP+tC,EAAAtlC,OAEGmmC,IAAAb,EAAAG,KACH3jS,IAAAokS,EACGC,IAAAb,EAAAE,SACH1jS,IAAAokS,GAAApkS,EAAAgxH,aAAAozK,GAEApkS,IAAAokS,GAAApkS,EAAAixH,eAAAmzK,IA5NAl/S,EAAAm/I,MAAAt4H,QAAA,GAAAhzD,QAAA,aACO08S,IAAA+tC,EAAAtlC,MACPh5Q,EAAAm/I,MAAAt4H,QAAA,GAAAhzD,QAAA,iBAMAgrV,EAAAp4R,SAAA,WACA7kE,KAAAk5D,KAAAmvH,SAAAxtI,KAAAouI,SAAA,SAAA7qI,GACAA,EAAAm/I,OACAn/I,EAAAm/I,MAAAt8J,YAAA,EAAAmd,EAAA,aAKA6+S,EAAAO,YAAA,WACAx9V,KAAAihC,YAAA,EAAAjhC,KAAAk5D,KAAA,cAGA+jS,EAAAQ,WAAA,WACAz9V,KAAAihC,YAAA,EAAAjhC,KAAAk5D,KAAA,aAGA+jS,EAAAv3R,aAAA,SAAAlqC,EAAAiG,EAAAsa,GACA,IAAAmpB,EAAAllE,KAAAk5D,KAAA75B,WACA23T,EAAA9xR,EAAA7lC,SAAA,SACA0mC,EAAA,WAAAhqB,GAAA,aAAAA,EAAAi7S,EAAA9xR,EAAA7lC,SAAA0c,EAAA,UACAiqB,EAAAd,EAAA7lC,SAAA,kBACAgS,EAAAxX,EAAAmuC,SAAAxsC,EAAAo+K,kBAAA55M,KAAAk5D,KAAA96B,UAAA,4BAAAp+B,KAAAk5D,KAAAt2D,OAEA,IAAA86V,EAAA,UACArsT,EAAA,IAGA,IAAA/Z,EAAAt3B,KAAAk5D,KAAA0wH,YACA+zK,EAAA53R,EAAA/hE,IAAA,YAEA,MAAA25V,IACAA,EAAA3G,EAAAhzV,IAAA,aAGA25V,IAAA,IAAA51V,KAAAgwB,GACA,IAAAuV,EAAAhW,EAAA+E,SAAA/E,EAAA8E,WAEA,MAAAuhU,GAAA51V,KAAAY,IAAA2kC,GAAAqwT,IAEAtsT,EAAA,IAGA,IAAA5+B,EAAAzS,KAAAilE,QAAA,GACAzqD,EAAA2rD,cAAA1zD,EAAA8F,MAAA9F,EAAA8yD,eAA2DyxR,EAAAhxR,GAC3DM,YAAAP,EAAAV,WAAA,QAAAh0B,EAAA,KACAk1B,UAAA9kC,EACA+kC,gBAAA,IAEA,IAGA/uD,EAHA+sD,GAAAltC,EAAA8E,WAAA9E,EAAA+E,UAAA,EACA0R,EAAAhmC,KAAA0jC,IAAA+4B,GACAx2B,EAAAjmC,KAAA2jC,IAAA84B,GAEAkzN,EAAAgmE,EAAA,YACAE,EAAAF,EAAA,eACAhoT,EAAAgoT,EAAA,SAEA,YAAAhmE,GACAjgR,EAAA6f,EAAA7f,EAAAmmV,EACAloT,EAAA8uB,EAAAz8D,KAAAgwB,GAAA,kBAEA2d,GAAA,WAAAA,EAGK,SAAAA,GACLj+B,EAAA6f,EAAA6E,GAAAyhU,EAEAp5R,EAAAz8D,KAAAgwB,GAAA,IACA2d,EAAA,UAEK,UAAAA,IACLj+B,EAAA6f,EAAA7f,EAAAmmV,EAEAp5R,EAAAz8D,KAAAgwB,GAAA,IACA2d,EAAA,UAZAj+B,GAAA6f,EAAA7f,EAAA6f,EAAA6E,IAAA,EACAuZ,EAAA,UAgBAjjC,EAAA1P,KAAA,SACAsuC,OACAqE,YACAC,kBAAA+nT,EAAA,2BACA7qV,QAAA6qV,EAAA,aAEA,IAAAlmE,EAAA//Q,EAAAs2B,EAAAzW,EAAA/f,GACAkgR,EAAAhgR,EAAAu2B,EAAA1W,EAAA9f,GACA/E,EAAA1P,KAAA,YAAAy0R,EAAAC,IACA,IAAAomE,EAAAH,EAAA,UACAj1L,EAAA,EAsBA,SAAAi1L,EAAA96V,GACA,IAAAk7V,EAAA/3R,EAAA/hE,IAAApB,GAEA,aAAAk7V,EACA9G,EAAAhzV,IAAApB,GAEAk7V,EA1BA,WAAAD,GACAp1L,GAAAjkG,IAEAz8D,KAAAgwB,GAAA,IACA0wI,GAAA1gK,KAAAgwB,IAEG,eAAA8lU,GACHp1L,EAAA1gK,KAAAgwB,GAAA,EAAAysC,GAEAz8D,KAAAgwB,GAAA,EACA0wI,GAAA1gK,KAAAgwB,GACK0wI,GAAA1gK,KAAAgwB,GAAA,IACL0wI,GAAA1gK,KAAAgwB,IAEG,iBAAA8lU,IACHp1L,EAAAo1L,EAAA91V,KAAAgwB,GAAA,KAGAtlB,EAAA1P,KAAA,WAAA0lK,IAaAw0L,EAAAptS,YAAA,SAAA6U,EAAAxL,EAAA19B,EAAAmzR,GACAjqP,EAAArU,IAAA,aAAAA,IAAA,YAAAA,IAAA,YAAAA,IAAA,UACA,IAAAghQ,EAAArxT,KAEA2kE,EAAA,WACA0sP,EAAA1sP,WAAAgqP,IAGA9pP,EAAA,WACAwsP,EAAAxsP,YAWArpC,EAAAiqC,sBACAf,EAAAhlD,GAAA,YAAAilD,GAAAjlD,GAAA,WAAAmlD,GAAAnlD,GAAA,WAAAilD,GAAAjlD,GAAA,SAAAmlD,GAAAnlD,GAAA,WATA,WACA2xS,EAAAosC,eAQA/9U,GAAA,YALA,WACA2xS,EAAAmsC,iBAQA3jU,EAAA2xB,SAAAwxS,EAAAxiV,EAAAskB,OACA,IAAA77B,EAAA+5V,EAqEA95V,EAAAC,QAAAF,wBC7WAC,EAAAC,QAAiB5D,EAAQ,2CCEzB,IAAAi0U,EAAgBj0U,EAAQ,QAaxB2D,EAAAC,QAAA6/C,EAAA,SAAA/S,GACA,WAZA,SAAAA,GACA,IAAAvhC,EAAAC,EACA3O,KAAA4/D,QAAA,IAAA3vB,EAAA,SAAA8tT,EAAAC,GACA,QAAAtwV,IAAAgB,QAAAhB,IAAAiB,EAAA,MAAAq1C,UAAA,2BACAt1C,EAAAqvV,EACApvV,EAAAqvV,IAEAh+V,KAAA0O,QAAA8kU,EAAA9kU,GACA1O,KAAA2O,OAAA6kU,EAAA7kU,GAIA,CAAAshC,wBCsCA/sC,EAAAC,QApCA,SAAAQ,GACA,IAAA8/Q,EAAA9/Q,EAAAutJ,gBACA5hG,SAAA,WAGAm0N,KAAAxiR,QAIA0C,EAAAikM,iBAAA,iBAAAupB,GACA,IAAAjqC,EAAAiqC,EAAA3qC,oBAEA11K,EADAqgN,EAAA7qC,WACAx1K,KACAmtV,EAAA/2K,EAAA3nJ,SAAA2nJ,EAAA/iH,SACArzD,EAAA4yQ,WAAA,SAAApjP,GACA,IACA2mJ,EADAn2K,EAAAq0D,aAAA7kC,GACA+kC,WAAA,YAEA,SAAA4hH,EAAA,CACA,iBAAAA,IACAA,EAAAg3K,EAAAh3K,IAIA,QAAAlmL,EAAA,EAAuBA,EAAA0iR,EAAAxiR,OAAyBF,IAChD,IAAA0iR,EAAA1iR,GAAAwjE,WAAA0iH,GACA,SAKA,YAEGjnL,6BCnDH,IAAAoD,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAEA+3B,EAFe/3B,EAAQ,QAEvB+3B,OAEAmwC,EAAmBloE,EAAQ,QAE3BA,EAAQ,QAqBR6D,EAAAm6D,eAAA1jC,EAAA0Q,MAAAjT,EAAA,iBACAl0B,EAAAw4D,eAAA6L,EAAA,qDCdA,IAAAxkE,EAxBc1D,EAAQ,QAwBtBi1B,sBACAhxB,KAAA,OACAymK,QAAA,WAEA,OAAAjqK,KAAAo2S,QAEAznG,iBAAA,SAAA7qL,EAAAgG,GACA9pB,KAAAid,OAAA6G,SACA9jB,KAAAid,OAAA6M,QAEA8kL,oBAAA,SAAA9qL,EAAAgG,GACA,IAfAvU,EAAAC,EAeAyH,EAAAjd,KAAAid,OACA,OAhBA1H,EAgBAuO,EAhBAtO,EAgBAyH,EAAA6G,SAfAvO,GAAAC,GAAAD,EAAA,KAAAC,EAAA,IAAAD,EAAA,KAAAC,EAAA,IAeAsU,IAAA7M,EAAA6M,OAEA4K,eACA5Q,QAAA,sBACAgG,KAAA,EACAo0U,YACAv0U,MAAA,KAIAzmB,EAAAC,QAAAF,wBC9CA,IAAAxD,EAAYF,EAAQ,QAEpBw1D,EAAAt1D,EAAAs1D,cACAn1D,EAAAH,EAAAG,SACA+Q,EAAAlR,EAAAkR,IA4BA,SAAAy7L,EAAAxzK,GAKA54B,KAAAoxK,WAAAx4I,EAAAw4I,eAMApxK,KAAAm+V,aAAAvlU,EAAAwlU,YAMAp+V,KAAAq+V,eAAAzlU,EAAA2lS,cAMAv+T,KAAAk8K,KAQAkwB,EAAAmnI,kBAAA,SAAAl9S,GACA,IAAApZ,EAAAoZ,EAAApZ,OACAnM,EAAAmM,EAAAnM,KACAsgK,EAAAtgK,GAAAH,EAAAG,EAAAqzD,GACA,WAAAioI,GACAh7B,aACAgtL,aAAAhtL,EAEAmtJ,eAAA,IAAAthT,EAAAqhV,gBAIA,IAAA9mT,EAAA40J,EAAAlsM,UA0DA,SAAAq+V,EAAAhwL,GACA,OAAAA,EAAA2N,OAAA3N,EAAA2N,KAAAnnH,EAAAw5G,EAAA6C,aAGA,SAAAjtG,EAAAh5D,GACA,OAAAvL,EAAAuL,IAAA,MAAAA,EAAA5D,MACA4D,EAAA5D,MAEA4D,EAAA,GA5DAqsC,EAAA80J,WAAA,SAAArlB,GACA,OAAAs3K,EAAAv+V,MAAAgE,IAAAijL,IAQAzvI,EAAAg3H,gBAAA,SAAAyY,GACA,IAAAr6K,EACAwxV,EAAAp+V,KAAAm+V,aAMA,oBAAAl3K,IAAAm3K,EACA,OAAAn3K,EAWA,GAAAm3K,IAAAp+V,KAAAq+V,eAGA,OAFAzxV,EAAA5M,KAAAoxK,WAAAnwK,OACAjB,KAAAoxK,WAAAxkK,GAAAq6K,EACAr6K,EAGA,IAAA+D,EAAA4tV,EAAAv+V,MAaA,OAVA,OAFA4M,EAAA+D,EAAA3M,IAAAijL,MAGAm3K,GACAxxV,EAAA5M,KAAAoxK,WAAAnwK,OACAjB,KAAAoxK,WAAAxkK,GAAAq6K,EACAt2K,EAAAq0C,IAAAiiI,EAAAr6K,IAEAA,EAAA6hK,KAIA7hK,GAgBA,IAAA3J,EAAAmpM,EACAlpM,EAAAC,QAAAF,sBCjJAC,EAAAC,QAAA,SAAA8I,EAAAG,EAAAilT,GACA,IAAAmtC,OAAA9wV,IAAA2jT,EACA,OAAAjlT,EAAAnL,QACA,cAAAu9V,EAAAvyV,IACAA,EAAAP,KAAA2lT,GACA,cAAAmtC,EAAAvyV,EAAAG,EAAA,IACAH,EAAAP,KAAA2lT,EAAAjlT,EAAA,IACA,cAAAoyV,EAAAvyV,EAAAG,EAAA,GAAAA,EAAA,IACAH,EAAAP,KAAA2lT,EAAAjlT,EAAA,GAAAA,EAAA,IACA,cAAAoyV,EAAAvyV,EAAAG,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAH,EAAAP,KAAA2lT,EAAAjlT,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACA,cAAAoyV,EAAAvyV,EAAAG,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAH,EAAAP,KAAA2lT,EAAAjlT,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACG,OAAAH,EAAAM,MAAA8kT,EAAAjlT,0BCdW7M,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBgiR,EAAqBhiR,EAAQ,QAE7BolL,EAAYplL,EAAQ,QAoBpBk/V,GAAA,QAqHA,SAAAC,EAAAzhV,EAAA25K,GACA,OAAA/8J,EAAA82C,OACAiiF,UAAA31I,EAAA21I,UACA+rM,UAAA1hV,EAAA0hV,UACAC,cAAA3hV,EAAA2hV,cACA/rM,WAAA,IAAA8xB,EAAA1nK,EAAA41I,YAAAvtF,eACAwtF,cAAA71I,EAAA61I,cACAl+H,EAAA3X,EAAA2X,GACGgiK,GAAA,GAGH,IAAA3zL,EA/HAG,EAAAoxB,sBACAhxB,KAAA,QACAixB,cAAA,kDAKAC,eAGA1a,QAAA,KAEA6kV,UAAA,KAGA1sU,YAAA,MAEAu9K,SAAA,KAEAn9K,WAAA,KACA1Q,WAAA,KACA+wI,UAAA,OAEA+rM,UAAA,SAEAC,eAAA,EAEA/rM,YAEAv9H,YAAA,EACAnvB,MAAA,wBACA4sB,YAAA,yBAEAqyI,aAAA,UAGA05L,cAAA,EAIAhsM,eAAA,EACAl+H,EAAA,KAOAwhK,SASAxjC,UAAA,KAQAgkC,eAMA08B,iBACAh+B,cAAA,SAAA3zH,EAAA+7G,GACA,IAAAh8G,EAAA1hE,KAAAid,QACAygK,GAAA6jG,EAAA9/M,oBAAAC,EAAAC,GAAA,yBACA,IAAAo9R,EAAAr9R,EAAAq9R,QAAAr9R,EAAAq9R,YAEAr9R,EAAAs9R,WAAAt9R,EAAAs9R,aACA74V,MAAAs4V,GAGAM,EAAAl8V,eAAA,WAGAk8V,EAAA3/J,MAAA,IASAjJ,SAAA,SAAAC,GAIAA,IAIAp2L,KAAAo2L,MAAAv8J,EAAAlpB,IAAAylL,EAAA,SAAA31K,GACA,OAAAi+U,EAAA1+V,KAAAid,OAAAwD,IACKzgB,QAOLi/V,eAAA,SAAAroK,GACA52L,KAAA42L,YAAA8nK,EAAA1+V,KAAAid,OAAA25K,GACA52L,KAAA4yJ,UAAA5yJ,KAAA42L,YAAAhkC,aAgBA1vJ,EAAAC,QAAAF,wBC/JA,IAAA+9K,EAASzhL,EAAQ,QACjBwpS,EAAiBxpS,EAAQ,QACzB2D,EAAAC,QAAiB5D,EAAQ,QAAgB,SAAA8xE,EAAAtnE,EAAAxC,GACzC,OAAAy5K,EAAAh+H,EAAAquB,EAAAtnE,EAAAg/R,EAAA,EAAAxhS,KACC,SAAA8pE,EAAAtnE,EAAAxC,GAED,OADA8pE,EAAAtnE,GAAAxC,EACA8pE,yBCNA,IAAAx3C,EAAat6B,EAAQ,QAuFrB4D,EAAAm0B,OAxDA,SAAAkxC,EAAAnyC,EAAAuC,GACAA,QACA,IAAAjzB,EAAA6iE,EAAAn6C,iBACAoH,EAAAY,EAAAZ,KACA6B,KACA4nU,EAAAzpU,EAAA2zC,kBAAA,GACA+1R,EAAA1pU,EAAArnB,SACA28D,EAAAm0R,EAAA,SAAAC,EACAn2L,EAAAvzI,EAAA4C,IACA6P,EAAAviC,EAAA49D,UACA4kG,GAAAjgI,EAAA7jC,EAAA6jC,EAAA7jC,EAAA6jC,EAAAlvB,MAAAkvB,EAAA3jC,EAAA2jC,EAAA3jC,EAAA2jC,EAAAjvB,QACAqnB,GACAz6B,KAAA,EACAC,MAAA,EACAkM,IAAA,EACA8C,OAAA,EACA2d,OAAA,GAEA2sU,EAAA/oU,EAAAryB,IAAA,aACAq7V,EAAA,MAAAr2L,GAAAb,EAAA,GAAAi3L,EAAAj3L,EAAA,GAAAi3L,IAAAj3L,EAAA,GAAAi3L,EAAAj3L,EAAA,GAAAi3L,GAEA,GAAAF,EAAA,CACA,IAAAI,EAAAJ,EAAAroU,cAAAqoU,EAAApoU,YAAA,IACAuoU,EAAA/+T,EAAA,QAAAv4B,KAAAE,IAAAF,KAAAC,IAAAs3V,EAAAD,EAAA,IAAAA,EAAA,IAIA/nU,EAAAlpB,UAAA,MAAA46J,EAAAq2L,EAAA/+T,EAAAyqC,IAAAo9F,EAAA,SAAAa,EAAAq2L,EAAA/+T,EAAAyqC,IAAAo9F,EAAA,IAEA7wI,EAAAO,SAAA9vB,KAAAgwB,GAAA,SAAAixI,EAAA,KAQA1xI,EAAAQ,eAAAR,EAAAgxI,cAAAhxI,EAAAixI,eALAv2J,KAAA,EACA8C,OAAA,EACAjP,MAAA,EACAC,MAAA,GAEAq5V,GACA7nU,EAAA6wS,YAAA+2B,EAAAG,EAAA/+T,EAAA6+T,IAAAE,EAAA/+T,EAAA,UAEAjK,EAAAryB,IAAA,qBACAszB,EAAAgxI,eAAAhxI,EAAAgxI,eAGAzuI,EAAAmuC,SAAApvC,EAAAlB,YAAArB,EAAAryB,IAAA,uBACAszB,EAAAQ,gBAAAR,EAAAQ,gBAIA,IAAA+xS,EAAAxzS,EAAAryB,IAAA,oBAIA,OAHAszB,EAAAuyS,YAAA,QAAA9+P,GAAA8+P,IAEAvyS,EAAA8M,GAAA,EACA9M,uBCpFAp0B,EAAAC,SAAA,wBCAA,IAAA07K,EAAYt/K,EAAQ,OAARA,CAAmB,OAC/B21D,EAAU31D,EAAQ,QAClB0L,EAAa1L,EAAQ,QAAW0L,OAChCs0V,EAAA,mBAAAt0V,GAEA/H,EAAAC,QAAA,SAAAP,GACA,OAAAi8K,EAAAj8K,KAAAi8K,EAAAj8K,GACA28V,GAAAt0V,EAAArI,KAAA28V,EAAAt0V,EAAAiqD,GAAA,UAAAtyD,MAGAi8K,8BCVA,IAAAhlJ,EAAat6B,EAAQ,QAErBklL,EAAWllL,EAAQ,QAEnB4oL,EAAuB5oL,EAAQ,QAI/B0sK,EAFkB1sK,EAAQ,QAE1B0sK,uBAIAuzK,EAFuBjgV,EAAQ,QAE/BigV,uBAIA9zK,EAFansK,EAAQ,QAErBmsK,iBAEAvuG,EAAuB59D,EAAQ,QAI/Bu8O,EAFmBv8O,EAAQ,QAE3Bu8O,0BAEAjwE,EAAatsK,EAAQ,QAIrBi2M,EAFuBj2M,EAAQ,QAE/Bi2M,gBAoHA,IAAAvyM,EAzFA,SAAAR,EAAA+4B,EAAA5C,GACAA,QAEAizI,EAAAQ,WAAA5pK,KACAA,EAAAopK,EAAAS,mBAAA7pK,IAGA,IAGA+8V,EAHAjsI,EAAA/3L,EAAAx3B,IAAA,oBACAy7V,EAAAtiS,EAAAn5D,IAAAuvN,GACAmqB,EAAA5B,EAAAtgN,GAGAkiN,IACA8hH,EAAA3lU,EAAAlpB,IAAA+sO,EAAAQ,aAAA,SAAA7lN,GACA,IAAA2J,GACAp/B,KAAAy1B,GAEAhC,EAAAqnN,EAAAgiH,QAAA17V,IAAAq0B,GAEA,GAAAhC,EAAA,CACA,IAAAi1B,EAAAj1B,EAAAryB,IAAA,QACAg+B,EAAAx+B,KAAAg8U,EAAAl0R,GAGA,OAAAtpB,KAIAw9T,IAEAA,EAAAC,MAAAniS,kBAAAmiS,EAAAniS,oBAAAmiS,EAAA19T,WAAAz/B,WAAA,UAGA,IAIA67O,EACAwhH,EALAC,EAAAz3K,EAAA1lL,GACA2oL,gBAAAo0K,EACAzoE,cAAAn+P,EAAAm+P,gBAIAr5C,GAAA7jN,EAAA4E,KAAAmhU,EAAA,SAAA59T,EAAA5J,GACA,IAAAwJ,EAAAI,EAAAJ,SACAi+T,EAAAniH,EAAAW,gBAAAr6O,IAAA49B,GAEAi+T,IACA,MAAA1hH,IACAA,EAAA/lN,GAGA4J,EAAAusI,YAAAsxL,EAAA1uL,kBAGA,MAAAnvI,EAAAo3P,UAAA5uQ,WACAm1U,GAAA,KAIAA,GAAA,MAAAxhH,IACAyhH,EAAAzhH,GAAAi7C,UAAA5uQ,SAAA,GAGA,IAAAs1U,EAAAtqJ,EAAAh6K,EAAAokU,GACA/yU,EAAA,IAAA43J,EAAAm7K,EAAApkU,GACA3O,EAAAoxQ,mBAAA6hE,GACA,IAAAplK,EAAA,MAAAyjD,GASA,SAAA17O,GACA,GAAAA,EAAA+pK,eAAAP,EAAA,CACA,IAAA69G,EAKA,SAAAh5Q,GAGA,IAFA,IAAA/P,EAAA,EAEAA,EAAA+P,EAAA7P,QAAA,MAAA6P,EAAA/P,IACAA,IAGA,OAAA+P,EAAA/P,GAZAg/V,CAAAt9V,EAAAqO,UACA,aAAAg5Q,IAAAjwP,EAAA/tB,QAAA4/J,EAAAo+G,KAZAk2E,CAAAv9V,GAAA,SAAAw9V,EAAAn+T,EAAA1D,EAAAhG,GAEA,OAAAA,IAAA+lN,EAAA//M,EAAAp+B,KAAAg8R,sBAAAikE,EAAAn+T,EAAA1D,EAAAhG,IACG,KAGH,OAFAvL,EAAAmjD,eAAA,EACAnjD,EAAAogE,SAAAxqF,EAAA,KAAAi4L,GACA7tK,GAqBA3pB,EAAAC,QAAAF,wBCjJA,IAAA8oM,EAAWxsM,EAAQ,QACnB2D,EAAAC,QAAA,SAAA5C,EAAAwP,EAAA8rL,GACA,QAAA9xL,KAAAgG,EACA8rL,GAAAt7L,EAAAwJ,GAAAxJ,EAAAwJ,GAAAgG,EAAAhG,GACAgiM,EAAAxrM,EAAAwJ,EAAAgG,EAAAhG,IACG,OAAAxJ,yBCuBH2C,EAAAC,QAJA,SAAAoE,GACA,aAAAA,GAAA,iBAAAA,yBCxBA,IAAAswS,EAAet4S,EAAQ,QACvB2gW,EAAU3gW,EAAQ,QAClBizL,EAAkBjzL,EAAQ,QAC1B6gE,EAAe7gE,EAAQ,OAARA,CAAuB,YACtC4gW,EAAA,aAIAC,EAAA,WAEA,IAIAC,EAJAC,EAAe/gW,EAAQ,OAARA,CAAuB,UACtCwB,EAAAyxL,EAAAvxL,OAcA,IAVAq/V,EAAA/nV,MAAAM,QAAA,OACEtZ,EAAQ,QAAS0Q,YAAAqwV,GACnBA,EAAAvwV,IAAA,eAGAswV,EAAAC,EAAAC,cAAA1wV,UACAf,OACAuxV,EAAAG,MAAA7mH,uCACA0mH,EAAAvnR,QACAsnR,EAAAC,EAAAroI,EACAj3N,YAAAq/V,EAAA,UAAA5tK,EAAAzxL,IACA,OAAAq/V,KAGAl9V,EAAAC,QAAAyG,OAAA8/B,QAAA,SAAA62B,EAAAkgS,GACA,IAAA1vV,EAQA,OAPA,OAAAwvD,GACA4/R,EAAA,UAAAtoD,EAAAt3O,GACAxvD,EAAA,IAAAovV,EACAA,EAAA,eAEApvV,EAAAqvD,GAAAG,GACGxvD,EAAAqvV,SACH1yV,IAAA+yV,EAAA1vV,EAAAmvV,EAAAnvV,EAAA0vV,0BCvCA,IAAAr9V,EAAc7D,EAAQ,QAEtBE,EAAYF,EAAQ,QAEpBw1D,EAAAt1D,EAAAs1D,cACAt2B,EAAAh/B,EAAAg/B,KAoBAr7B,EAAAk4D,mBAIAq3K,gBAAA,SAAAhvO,GACA,IAAA+8V,EAAA3rS,IASA,OARApxD,EAAAkvD,cAAA,oBAAA8+I,GACAA,EAAAG,eAAA,SAAAC,EAAA5nI,EAAAwnI,GACA,IAAAokF,EAAApkF,EAAA2iF,aAAAviF,EAAAnvM,KAAAunE,GACA1rC,EAAAs3P,EAAAxB,wBAAA,SAAA/4P,GACAklU,EAAA17S,IAAAxpB,EAAA05B,IAAA15B,SAIAklU,GAEA9jL,iBAAA,EAIA02D,aAAA,SAAA3vO,EAAAC,GACAD,EAAAkvD,cAAA,oBAAA8+I,GAIAA,EAAAG,eAAA,SAAAC,EAAA5nI,EAAAwnI,GACAA,EAAA2iF,aAAAviF,EAAAnvM,KAAAunE,GAAAr/D,MAAA6mM,EAAA/tM,KAgBA+tM,EAAAG,eAAA,SAAAC,EAAA5nI,EAAAwnI,GACAA,EAAA2iF,aAAAviF,EAAAnvM,KAAAunE,GAAAg2Q,WAAAxuI,EAAA/tM,OAGAD,EAAAkvD,cAAA,oBAAA8+I,GAGA,IAAAokF,EAAApkF,EAAA+d,8BACAw/F,EAAAn5B,EAAA4qE,uBACAnmM,EAAAu7H,EAAAG,qBACAvkF,EAAAivJ,aACAp+V,MAAA0sT,EAAA,GACAh+R,IAAAg+R,EAAA,GACAp/F,WAAAt1D,EAAA,GACAu1D,SAAAv1D,EAAA,KACO,8BClFP,IAAAqmM,EAAiBthW,EAAQ,QACzBuhW,EAAmBvhW,EAAQ,QAG3BwhW,EAAA,kBAwBA79V,EAAAC,QALA,SAAAoE,GACA,uBAAAA,GACAu5V,EAAAv5V,IAAAs5V,EAAAt5V,IAAAw5V,sCCVA,IAAA76T,IACA,oBAAAv2B,SACAA,OAAAE,WACAF,OAAAE,SAAAC,eASAm2B,GAEAC,YAEA86T,cAAA,oBAAAl9O,OAEAm9O,qBACA/6T,MAAAv2B,OAAAiP,mBAAAjP,OAAA0iL,aAEA6uK,eAAAh7T,KAAAv2B,OAAAusI,OAEAilN,YAAAj7T,GAIAhjC,EAAAC,QAAA8iC,wBC1CA,IAAAxmC,EAAYF,EAAQ,QAEpBk/B,EAAAh/B,EAAAg/B,KACA/+B,EAAAD,EAAAC,SAoIA,SAAA+1M,EAAA3kM,EAAAswV,GAKA,QAAAA,OAAAtwV,EAAAyyB,mBAAA,oBAmBApgC,EAAAqyM,gBAnHA,SAAAh6K,EAAA+kQ,EAAA3nQ,GAEA,IAIAyoU,EACAC,EACAC,EACAzyD,EAPA0yD,GADA5oU,SACA4oU,QACAC,EAAA7oU,EAAA6oU,sBAEAC,KAAAlmU,MAAAx3B,IAAA,UAkCA,GA7BAy6B,EAAA8hQ,EAAA,SAAAtH,EAAArsR,GACAlN,EAAAu5R,KACAsH,EAAA3zR,GAAAqsR,GACAr2R,KAAAq2R,IAIAyoE,IAAAzoE,EAAA87C,eAEAysB,GAAAH,IAAApoE,EAAA1qH,cACA8yL,EAAApoE,GAIAqoE,GAAA,YAAAroE,EAAAz1R,MAAA,SAAAy1R,EAAAz1R,MAAAi+V,OAAAxoE,EAAAr3P,WACA0/T,EAAAroE,OAKAqoE,GAAAE,GAAAH,IAGAG,GAAA,GAMAF,EAAA,CAEAC,EAAA,oBACAzyD,EAAA,oBAEAuyD,IACAA,EAAAhoE,uBAAA,GAGA,IAAAsoE,EAAAL,EAAA1/T,SACAggU,EAAAN,EAAA99V,KACAq+V,EAAA,EACApjU,EAAA8hQ,EAAA,SAAAtH,GACAA,EAAAr3P,WAAA+/T,GACAE,MAGAthE,EAAAh/R,MACAqB,KAAA2+V,EACA3/T,SAAA+/T,EACAxoE,cAAA0oE,EACAr+V,KAAAo+V,EACA7sB,cAAA,EACAzyD,oBAAA,IAEAu/E,IACAthE,EAAAh/R,MACAqB,KAAAksS,EAGAltQ,SAAAktQ,EACA3V,cAAA0oE,EACAr+V,KAAAo+V,EACA7sB,cAAA,EACAzyD,oBAAA,IAIA,OACAw/E,iBAAAR,KAAA1+V,KACAm/V,mBAAAV,KAAAz+V,KACAo/V,iBAAAR,EACA1yD,uBACAyyD,yBAkCAp+V,EAAAsyM,qBACAtyM,EAAAmlE,oBANA,SAAAx3D,EAAAmxV,GACA,OAAAxsJ,EAAA3kM,EAAAmxV,GAAAnxV,EAAAyyB,mBAAA,wBAAA0+T,yBC5JA,IAAA7+V,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBgxK,EAAehxK,EAAQ,QAEvB+3B,EAAAi5I,EAAAj5I,OACA4qU,EAAA3xL,EAAA2xL,YAEA3iW,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAqBR6D,EAAAm6D,eAAA1jC,EAAA0Q,MAAAjT,EAAA,QAEAl0B,EAAAm6D,eAAA2kS,GACA9+V,EAAAw4D,gBACAiU,WAAA,MACA/kE,MAAA,SAAA0wB,GAEAA,EAAAtP,UAAA81C,UAAA,qDC3CA,IAAAnyD,EAAetQ,EAAQ,QAAWsQ,SAClC3M,EAAAC,QAAA0M,KAAAmuC,mDCCA76C,EAAAiuE,YAAA,EAEA,IAMAjmE,EANAH,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5Ig3V,EAAiB5iW,EAAQ,QAEzB6iW,GAEAj3V,EAFAg3V,IAEsCh3V,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAmB7E,IACAk3V,EADA/1S,QAGAA,EAAAg2S,OAAA,SAAAC,EAAAC,EAAAC,GACA,IAAA5lV,EAAA7c,KAGA,GADAA,KAAA0iW,WAAAH,EACA,OAAAviW,KAAA0iW,YAAA,WAAA1iW,KAAA0iW,WAAAxnS,aAAA,QACA,UAAAmE,MAAA,6DAGA,iBAAAmjS,EACAxiW,KAAAwiW,iBAAA3yV,SAAA8yV,eAAAH,GACG,qBAAAA,EAAA,YAAAx3V,EAAAw3V,IACHxiW,KAAAwiW,mBAEAxiW,KAAAwiW,iBAAA,KAGA,iBAAAC,EACAziW,KAAAyiW,WAAA5yV,SAAA8yV,eAAAF,GACG,qBAAAA,EAAA,YAAAz3V,EAAAy3V,IACHziW,KAAAyiW,aAEAziW,KAAAyiW,WAAA,KAGAziW,KAAAyiW,WACAziW,KAAAyiW,WAAAl1T,QAEA60T,EAAArpV,QAAAunQ,qBAAAtgR,KAAA0iW,YAGA1iW,KAAA4iW,UAAA/yV,SAAA+yP,cACAy/F,EAAA,SAAAl+V,GACA0Y,EAAAgmV,UAAA1+V,IAEAnE,KAAA8iW,gBAGAx2S,EAAAg2S,OAAApiW,UAAA4iW,aAAA,WACAjzV,SAAA+O,iBAAA,QAAAyjV,GAAA,IAGA/1S,EAAAg2S,OAAApiW,UAAA6iW,gBAAA,WACAlzV,SAAAiP,oBAAA,QAAAujV,GAAA,IAGA/1S,EAAAg2S,OAAApiW,UAAA8iW,YAAA,WACA,IAAA9kV,EAAAle,KAEAA,KAAA+iW,kBACA/iW,KAAAwiW,kBACAl2V,WAAA,WACA4R,EAAAskV,iBAAAj1T,WAKA+e,EAAAg2S,OAAApiW,UAAA2iW,UAAA,SAAAtrS,GACA6qS,EAAArpV,QAAA2nQ,yBAGA1gR,KAAA0iW,WAAAl/S,SAAA+T,EAAAh3D,QACAP,KAAA4iW,UAAArrS,EAAAh3D,QAEA6hW,EAAArpV,QAAAunQ,qBAAAtgR,KAAA0iW,YACA1iW,KAAA4iW,YAAA/yV,SAAA+yP,eACAw/F,EAAArpV,QAAAynQ,oBAAAxgR,KAAA0iW,YAEA1iW,KAAA4iW,UAAA/yV,SAAA+yP,iBAIAz/P,EAAA4V,QAAAuzC,EAAAg2S,6BCvGA,IAAAzoU,EAAat6B,EAAQ,QAIrBkzL,EAFclzL,EAAQ,QAEtBkzL,aAEAj4K,EAAcjb,EAAQ,QAItBmtC,EAFcntC,EAAQ,QAEtBmtC,aAIA2vJ,EAFmB98L,EAAQ,QAE3B88L,gBAgCA,SAAAtiK,EAAAjpB,EAAAwvB,EAAAwvI,GACAt1J,EAAAskB,MAAApzB,KAAA1L,MACAA,KAAAihC,WAAAnwB,EAAAwvB,EAAAwvI,GAGA,IAAAmzL,EAAAlpU,EAAA75B,UASAm+B,EAAAtE,EAAAsE,cAAA,SAAAvtB,EAAAwvB,GACA,IAAArR,EAAAne,EAAAojD,cAAA5zB,EAAA,cACA,OAAArR,aAAApjB,MAAAojB,EAAA3sB,UAAA2sB,OAGA,SAAAi0U,EAAAj0U,GACA,OAAAA,EAAA,KAAAA,EAAA,MAGA,SAAAk0U,EAAAp1T,EAAAC,GACAhuC,KAAAupC,OAAAi8E,MAAAz3E,EAAAC,GAGAi1T,EAAAG,cAAA,SAAAtzR,EAAAh/D,EAAAwvB,EAAArR,EAAAo0U,GAEArjW,KAAAklC,YACA,IAAA/+B,EAAA2K,EAAAojD,cAAA5zB,EAAA,SAOAsjK,EAAAnR,EAAA3iH,GAAA,SAAA3pE,EAAAk9V,GACAz/J,EAAA7gM,MACAqhC,GAAA,IACA4zI,SAAA,EACAzmK,MAAA2xV,EAAAj0U,KAGA20K,EAAAp+E,MAAA29O,EACAnjW,KAAAizL,YAAAnjH,EACA9vE,KAAAi/B,IAAA2kK,IAQAq/J,EAAAh/T,oBAAA,SAAAq/T,GACAtjW,KAAAilE,QAAA,GAAAtjE,cAAA2hW,IAaAL,EAAAp/J,cAAA,WACA,OAAA7jM,KAAAilE,QAAA,IAQAg+R,EAAAC,SAAA,WACA,OAAAljW,KAAAilE,QAAA,GAAA1zD,OAOA0xV,EAAAt/T,UAAA,WACA3jC,KAAAilE,QAAA,GAAAhzD,QAAA,aAOAgxV,EAAA/+T,SAAA,WACAlkC,KAAAilE,QAAA,GAAAhzD,QAAA,WAQAgxV,EAAAl/T,KAAA,SAAApP,EAAAC,GACA,IAAAgvK,EAAA5jM,KAAAilE,QAAA,GACA2+H,EAAAjvK,SACAivK,EAAAhvK,KAGAquU,EAAAM,aAAA,SAAAtsM,GACA,IAAA2sC,EAAA5jM,KAAAilE,QAAA,GACA2+H,EAAA3sC,YACA2sC,EAAAx0K,OAAA6nI,EAAA,kBAqBAgsM,EAAAhiU,WAAA,SAAAnwB,EAAAwvB,EAAAwvI,GACA9vK,KAAAmkC,QAAA,EACA,IAAA2rC,EAAAh/D,EAAAojD,cAAA5zB,EAAA,oBACA9E,EAAA1qB,EAAAuzB,UACApV,EAAAoP,EAAAvtB,EAAAwvB,GACAo9I,EAAA5tG,IAAA9vE,KAAAizL,YAEA,GAAAvV,EAAA,CACA,IAAA2lL,EAAAvyV,EAAAojD,cAAA5zB,EAAA,oBAEAtgC,KAAAojW,cAAAtzR,EAAAh/D,EAAAwvB,EAAArR,EAAAo0U,OACG,EACHz/J,EAAA5jM,KAAAilE,QAAA,IACA9gC,QAAA,EACA3pB,EAAAoqB,YAAAg/J,GACAryL,MAAA2xV,EAAAj0U,IACKuM,EAAA8E,GAKL,GAFAtgC,KAAAwjW,cAAA1yV,EAAAwvB,EAAArR,EAAA6gJ,GAEA4N,EAAA,CACA,IAAAkmB,EAAA5jM,KAAAilE,QAAA,GACA29H,EAAA9yB,KAAA8yB,OACAriM,GACAgR,MAAAqyL,EAAAryL,MAAAjP,SAEAsgM,IAAAriM,EAAAgY,OACA1F,QAAA+wL,EAAArrL,MAAA1F,UAEA+wL,EAAAryL,OAAA,KACAqxL,IAAAgB,EAAArrL,MAAA1F,QAAA,GACA2H,EAAAgiB,UAAAonK,EAAArjM,EAAAi7B,EAAA8E,GAGAtgC,KAAAk9V,aAAA1hU,GAIA,IAAAioU,GAAA,aACAC,GAAA,wBACAC,GAAA,SACAC,GAAA,oBAQAX,EAAAO,cAAA,SAAA1yV,EAAAwvB,EAAArR,EAAA6gJ,GACA,IAAA8zB,EAAA5jM,KAAAilE,QAAA,GACAzpC,EAAA1qB,EAAAuzB,UACAl+B,EAAA2K,EAAAojD,cAAA5zB,EAAA,SAEA,UAAAsjK,EAAApgM,MACAogM,EAAA7gK,UACAsM,eAAA,IAIA,IAAA78B,EAAAs9J,KAAAt9J,UACAm9J,EAAAG,KAAAH,eACAzgJ,EAAA4gJ,KAAA5gJ,aACAC,EAAA2gJ,KAAA3gJ,aACA42C,EAAA+pG,KAAA/pG,WACA6pG,EAAAE,KAAAF,gBACA1sJ,EAAA4sJ,KAAA5sJ,eACAsiD,EAAAsqG,KAAAtqG,YAEA,IAAAsqG,GAAAh/J,EAAAk/D,cAAA,CACA,IAAA9K,EAAA4qG,KAAA5qG,UAAA4qG,EAAA5qG,UAAAp0D,EAAAq0D,aAAA7kC,GAGA9tB,EAAA0yD,EAAA7lC,SAAAokU,GAAAn+R,cAAA,UACAqqG,EAAAzqG,EAAA7lC,SAAAqkU,GAAAp+R,eACAp2C,EAAAg2C,EAAAG,WAAA,gBACAl2C,EAAA+1C,EAAAG,WAAA,gBACAU,EAAAb,EAAA7lC,SAAAskU,GACA/zL,EAAA1qG,EAAA7lC,SAAAukU,GACA1gV,EAAAgiD,EAAAG,WAAA,kBACAG,EAAAN,EAAAG,WAAA,eAEAsqG,EAAA91I,EAAAnwB,UAAqCimK,GAGrC,IAAA54I,EAAA6sK,EAAArrL,MACAqrL,EAAA7gM,KAAA,YAAAmsB,GAAA,GAAAnnB,KAAAgwB,GAAA,QAEA5I,GACAy0K,EAAA7gM,KAAA,YAAA2pC,EAAAvd,EAAA,GAAAF,EAAA,IAAAyd,EAAAvd,EAAA,GAAAF,EAAA,MAGAu2C,GAAAo+H,EAAA7gM,KAAA,SAAAyiE,GAEAo+H,EAAA1Q,SAAA/sL,EAAA2pK,KAAAkzB,kBACAY,EAAAtnJ,SAAA9pC,GACA,IAAAK,EAAA/B,EAAAojD,cAAA5zB,EAAA,WAEA,MAAAztB,IACAkkB,EAAAlkB,WAGA,IAAAusL,EAAAtuL,EAAAojD,cAAA5zB,EAAA,SACAujU,EAAAjgK,EAAAkgK,WAEA,MAAA1kK,EACA,MAAAykK,IACAjgK,EAAAkgK,WAAAlgK,EAAAx/J,GACAw/J,EAAAx/J,IAAAg7J,GAEG,MAAAykK,IACHjgK,EAAAx/J,GAAAy/T,EACAjgK,EAAAkgK,WAAA,MAGA,IAAAnhK,EAAA7yB,KAAA6yB,aACAnoL,EAAA2rD,cAAApvC,EAAA44I,EAAA5pG,EAAA6pG,GACAxpG,aAAA5qC,EACA6qC,eAAA/lC,EACAgmC,YAKA,SAAAhmC,EAAA1H,GACA,OAAA+pK,EAAA7xL,EAAAqzD,QAAA7jC,GAAA+7J,EAAAvrL,EAAAwvB,IALAo8J,YAAA,EACAn2H,UAAApgE,IAOAy9L,EAAAvzI,IAAA,aAAAA,IAAA,YAAAA,IAAA,YAAAA,IAAA,UACAuzI,EAAAr+H,WAAAoqG,EAGAn1J,EAAAmrD,cAAAi+H,GACA,IAAAryL,EAAA2xV,EAAAj0U,GAEA,GAAA/L,GAAAsY,EAAAiqC,qBAAA,CACA,IAAAd,EAAA,WAGA,IAAA3kE,KAAAowK,YAAA,CAIA,IAAA2zL,EAAAxyV,EAAA,GAAAA,EAAA,GACAvR,KAAA+B,WACAwP,OAAAxJ,KAAAE,IAAA,IAAAsJ,EAAA,GAAAA,EAAA,MAAAxJ,KAAAE,IAAA,IAAAsJ,EAAA,GAAAA,EAAA,KAAAwyV,KACO,oBAGPl/R,EAAA,WACA7kE,KAAAowK,aAIApwK,KAAA+B,WACAwP,SACO,mBAGPqyL,EAAAlkL,GAAA,YAAAilD,GAAAjlD,GAAA,WAAAmlD,GAAAnlD,GAAA,WAAAilD,GAAAjlD,GAAA,SAAAmlD,KAUAo+R,EAAAjzL,QAAA,SAAA1oG,EAAA1uC,GACA,IAAAgrK,EAAA5jM,KAAAilE,QAAA,GAEAjlE,KAAAmkC,OAAAy/J,EAAAz/J,QAAA,IAEAvL,MAAA2rK,aAAAX,EAAArrL,MAAA84B,KAAA,MACA72B,EAAAoqB,YAAAg/J,GACArrL,OACA1F,QAAA,GAEAtB,OAAA,MACGvR,KAAAk9V,aAAAl9V,KAAAo+B,UAAAkpC,IAGHztC,EAAA2xB,SAAAzxB,EAAAvf,EAAAskB,OACA,IAAA77B,EAAA82B,EACA72B,EAAAC,QAAAF,wBC5WA,IAEA6M,EAFYvQ,EAAQ,QAEpBuQ,cAEAwjK,EAAW/zK,EAAQ,QAEnBk/B,EAAA60I,EAAA70I,KAEAo2R,EAAYt1T,EAAQ,QAEpB4rC,EAAW5rC,EAAQ,QAEnB0rC,EAAa1rC,EAAQ,QAErBykW,EAAYzkW,EAAQ,QAEpBw3E,EAAgBx3E,EAAQ,QAExBu1T,EAAsBv1T,EAAQ,QAE9B8wT,EAAsB9wT,EAAQ,QAE9B0kW,EAAoB1kW,EAAQ,QAE5B2kW,EAAe3kW,EAAQ,QAEvBs4T,EAAAqsC,EAAA7jW,KACA+3T,EAAA8rC,EAAApyT,MACA0mR,EAAA0rC,EAAA7yT,KAMA,SAAAmiI,EAAAjmK,GACA,OAAAqsE,SAAArsE,EAAA,IAeA,SAAA42V,EAAA56T,EAAA+C,GACA,OAAAA,GAAA/C,GAAA+C,EAAAC,aAAAhD,EAGA,SAAA66T,EAAA76T,EAAA+C,EAAA+3T,GACA,GAAAF,EAAA56T,EAAA+C,IAAA+3T,EAAA,CACA,IAAArtT,EAAAqtT,EAAArtT,YACAA,EAAAzN,EAAA2vI,aAAA5sI,EAAA0K,GAAAzN,EAAAt5B,YAAAq8B,IAIA,SAAA+7L,EAAA9+L,EAAA+C,GACA,GAAA63T,EAAA56T,EAAA+C,GAAA,CACA,IAAAyK,EAAAxN,EAAAwN,WACAA,EAAAxN,EAAA2vI,aAAA5sI,EAAAyK,GAAAxN,EAAAt5B,YAAAq8B,IAUA,SAAA7nC,EAAA8kC,EAAA+C,GACAA,GAAA/C,GAAA+C,EAAAC,aAAAhD,GACAA,EAAAiD,YAAAF,GAIA,SAAAqkR,EAAA53P,GACA,OAAAA,EAAA2/P,YAGA,SAAAjI,EAAA13P,GACA,OAAAA,EAAA++P,QAWA,IAAAwsC,EAAA,SAAAzpT,EAAAyX,EAAAznD,EAAAylT,GACAtwT,KAAA66C,OACA76C,KAAAsyD,UACAtyD,KAAA6zK,MAAAhpK,EAAAyoK,EAAA5pK,UAAoCmB,OACpC,IAAA0lT,EAAAzgT,EAAA,OACAygT,EAAA7pR,aAAA,sCACA6pR,EAAA7pR,aAAA,iBACA6pR,EAAA7pR,aAAA,sBACA6pR,EAAAh4S,MAAAyzB,QAAA,mDACAhsC,KAAAukW,gBAAA,IAAAzvC,EAAAxE,EAAAC,GACAvwT,KAAAwkW,gBAAA,IAAAn0C,EAAAC,EAAAC,GACAvwT,KAAAykW,cAAA,IAAAR,EAAA3zC,EAAAC,GACA,IAAAm0C,EAAA70V,SAAAC,cAAA,OACA40V,EAAAnsV,MAAAyzB,QAAA,oCACAhsC,KAAA2kW,SAAAp0C,EACAvwT,KAAA4kW,UAAAF,EACA7pT,EAAA5qC,YAAAy0V,GACAA,EAAAz0V,YAAAsgT,GACAvwT,KAAAwc,OAAA3R,EAAAmO,MAAAnO,EAAAoO,QACAjZ,KAAA6kW,iBAGAP,EAAApkW,WACAC,YAAAmkW,EACAx3V,QAAA,WACA,aAEAq9J,gBAAA,WACA,OAAAnqK,KAAA4kW,WAEA1vL,sBAAA,WACA,IAAAhL,EAAAlqK,KAAAmqK,kBAEA,GAAAD,EACA,OACAzrH,WAAAyrH,EAAAzrH,YAAA,EACAC,UAAAwrH,EAAAxrH,WAAA,IAIA0H,QAAA,WACA,IAAAv5B,EAAA7sB,KAAAsyD,QAAAC,gBAAA,GAEAvyD,KAAAs1K,WAAAzoJ,IAEA4nC,mBAAA,SAAAh6C,GAEAza,KAAA4kW,UAAArsV,MAAAw/H,WAAAt9H,GAEA66J,WAAA,SAAAzoJ,GACA7sB,KAAAukW,gBAAAO,gBACA9kW,KAAAwkW,gBAAAM,gBACA9kW,KAAAykW,cAAAK,gBACA,IAIA/jW,EAnHAN,EA+GA8vT,EAAAvwT,KAAA2kW,SACAI,EAAA/kW,KAAA6kW,aACAG,EAAAn4U,EAAA5rB,OACAgkW,KAGA,IAAAlkW,EAAA,EAAeA,EAAAikW,EAAajkW,IAAA,CAC5B,IAAAg4D,EAAAlsC,EAAA9rB,GACAowT,GAvHA1wT,EAuHAs4D,aAtHA5tB,EACA0sR,EACGp3T,aAAAwqC,EACHmtR,EACG33T,aAAAujW,EACHxrC,EAEAX,EAgHA7C,EAAAvE,EAAA13P,IAAA43P,EAAA53P,GAEAA,EAAAs+F,YACAt+F,EAAA7jB,UACAi8Q,KAAA92S,MAAA0+C,GAEA/4D,KAAAwkW,gBAAAjoT,OAAAwc,GAEAA,EAAAxgD,QACAvY,KAAAukW,gBAAAhoT,OAAAwc,EAAAxgD,MAAAb,MACA1X,KAAAukW,gBAAAhoT,OAAAwc,EAAAxgD,MAAA2qB,QACAljC,KAAAykW,cAAAloT,OAAAy4Q,EAAAj8P,IAGAA,EAAA7jB,SAAA,GAGA+vT,EAAA1jW,KAAAw3D,IAIA,IACAmsS,EADA5gU,EAAAyyC,EAAAguR,EAAAE,GAIA,IAAAlkW,EAAA,EAAeA,EAAAujC,EAAArjC,OAAiBF,IAAA,CAGhC,IAFA4L,EAAA23B,EAAAvjC,IAEA00E,QACA,QAAAhtD,EAAA,EAAuBA,EAAA9b,EAAApK,MAAgBkmB,IAAA,CAEvCusS,EAAAvE,EADA13P,EAAAgsS,EAAAp4V,EAAA+oE,QAAAjtD,KAAA,IAEA08U,EAAAx0C,EAAA53P,GACAt0D,EAAA8rT,EAAAyE,GACAvwT,EAAA8rT,EAAA40C,IAKA,IAAApkW,EAAA,EAAeA,EAAAujC,EAAArjC,OAAiBF,IAAA,CAChC,IAAA4L,EAEA,IAFAA,EAAA23B,EAAAvjC,IAEA40E,MACA,IAAAltD,EAAA,EAAuBA,EAAA9b,EAAApK,MAAgBkmB,IAAA,CAEvCusS,EAAAvE,EADA13P,EAAAksS,EAAAt4V,EAAA+oE,QAAAjtD,KAEA08U,EAAAx0C,EAAA53P,GACAmsS,EAAAd,EAAA7zC,EAAAyE,EAAAkwC,GAAA78H,EAAAkoF,EAAAyE,GAEAA,EACAovC,EAAA7zC,EAAA40C,EAAAnwC,GACWkwC,EACXd,EAAA7zC,EAAA40C,EAAAD,GAEA78H,EAAAkoF,EAAA40C,GAIAf,EAAA7zC,EAAA40C,EAAAnwC,GACAkwC,EAAAC,GAAAnwC,GAAAkwC,EACAllW,KAAAukW,gBAAAxvC,iBAAAC,EAAAj8P,GACA/4D,KAAAykW,cAAA1vC,iBAAAmwC,EAAAnsS,GACA/4D,KAAAwkW,gBAAA5zC,SAAA73P,QAEO,IAAApsD,EAAA8oE,QACP,IAAAhtD,EAAA,EAAuBA,EAAA9b,EAAApK,MAAgBkmB,IAAA,CAEvCy8U,EAAAlwC,EAAArE,EADA53P,EAAAksS,EAAAt4V,EAAA+oE,QAAAjtD,MACAgoS,EAAA13P,IAAAmsS,EACAllW,KAAAukW,gBAAA3zC,SAAA73P,GACA/4D,KAAAukW,gBAAAxvC,iBAAAC,EAAAj8P,GACA/4D,KAAAykW,cAAA7zC,SAAA73P,GACA/4D,KAAAykW,cAAA1vC,iBAAAC,EAAAj8P,GACA/4D,KAAAwkW,gBAAA5zC,SAAA73P,IAKA/4D,KAAAukW,gBAAAa,eACAplW,KAAAwkW,gBAAAY,eACAplW,KAAAykW,cAAAW,eACAplW,KAAA6kW,aAAAI,GAEAI,SAAA,SAAAC,GACA,IAOAv0C,EAPAR,EAAAvwT,KAAA2kW,SAIA,YAFA5zC,EAAA/wT,KAAA2kW,SAAAx3T,qBAAA,SAEAlsC,OAEAqkW,IACAv0C,EAAAR,EAAAr3I,aAAAppK,EAAA,QACAygT,EAAAx5Q,aAGAyM,WAEAutQ,EAAAvtQ,SAAA,SAAA/iD,GACA,IAAA8nL,EAAAwoI,EAAAxoI,SAEA,IAAAA,EACA,SAGA,QAAAxnL,EAAAwnL,EAAAtnL,OAAA,EAA6CF,GAAA,IAAQA,EACrD,GAAAwnL,EAAAxnL,KAAAN,EACA,SAIA,WAIAswT,GAEA,KAGAA,EAAA,IAGAv0S,OAAA,SAAAxD,EAAAC,GACA,IAAAyrV,EAAA1kW,KAAA4kW,UAEAF,EAAAnsV,MAAAM,QAAA,OAEA,IAAAhO,EAAA7K,KAAA6zK,MAOA,GANA,MAAA76J,IAAAnO,EAAAmO,SACA,MAAAC,IAAApO,EAAAoO,UACAD,EAAAhZ,KAAA40K,SAAA,GACA37J,EAAAjZ,KAAA40K,SAAA,GACA8vL,EAAAnsV,MAAAM,QAAA,GAEA7Y,KAAAs0K,SAAAt7J,GAAAhZ,KAAAu0K,UAAAt7J,EAAA,CACAjZ,KAAAs0K,OAAAt7J,EACAhZ,KAAAu0K,QAAAt7J,EACA,IAAAssV,EAAAb,EAAAnsV,MACAgtV,EAAAvsV,QAAA,KACAusV,EAAAtsV,SAAA,KACA,IAAAs3S,EAAAvwT,KAAA2kW,SAEAp0C,EAAA7pR,aAAA,QAAA1tB,GACAu3S,EAAA7pR,aAAA,SAAAztB,KAOA64C,SAAA,WACA,OAAA9xD,KAAAs0K,QAMAviH,UAAA,WACA,OAAA/xD,KAAAu0K,SAEAK,SAAA,SAAAsF,GACA,IAAArvK,EAAA7K,KAAA6zK,MACAsG,GAAA,kBAAAD,GACAE,GAAA,8BAAAF,GACAG,GAAA,4BAAAH,GACAI,GAAA,gCAAAJ,GAEA,SAAArvK,EAAAsvK,IAAA,SAAAtvK,EAAAsvK,GACA,OAAA30J,WAAA3a,EAAAsvK,IAGA,IAAAt/H,EAAA76C,KAAA66C,KAEA0/H,EAAA1qK,SAAAs4C,YAAArL,iBAAAjC,GACA,OAAAA,EAAAu/H,IAAA5G,EAAA+G,EAAAJ,KAAA3G,EAAA34H,EAAAtiC,MAAA4hK,MAAA3G,EAAA+G,EAAAF,KAAA,IAAA7G,EAAA+G,EAAAD,KAAA,MAEAv1K,QAAA,WACA/E,KAAA66C,KAAAjG,UAAA,GACA50C,KAAA2kW,SAAA3kW,KAAA4kW,UAAA5kW,KAAAsyD,QAAA,MAEAlN,MAAA,WACAplD,KAAA4kW,WACA5kW,KAAA66C,KAAArO,YAAAxsC,KAAA4kW,YAGApyS,cAAA,WAGA,OAFAxyD,KAAAomD,UAEA,oCADApmD,KAAA2kW,SAAA3kF,YAYAvhP,GAAA,4JAAA77B,GAPA,IAAA8rC,EAQA41T,EAAApkW,UAAA0C,IARA8rC,EAQA9rC,EAPA,WACAiyT,EAAA,2CAAAnmR,EAAA,SAQA,IAAAzrC,EAAAqhW,EACAphW,EAAAC,QAAAF,wBCxWA,IAAAkB,EAAsX,oBAAAgI,WAAtXhI,EAAsX,SAAAskF,EAAAtkF,GAAkD,gBAAAskF,GAAmB,SAAAtkF,EAAAoR,GAAc,GAAAxU,EAAAwU,GAAA,OAAAxU,EAAAwU,GAAApS,QAA4B,IAAAsU,EAAA1W,EAAAwU,IAAYxU,EAAAwU,EAAAvU,GAAA,EAAAmC,YAAqB,OAAAslF,EAAAlzE,GAAA7J,KAAA+L,EAAAtU,QAAAsU,IAAAtU,QAAAgB,GAAAsT,EAAAzW,GAAA,EAAAyW,EAAAtU,QAA2D,IAAApC,KAAS,OAAAoD,EAAAwoB,EAAA87D,EAAAtkF,EAAA+7D,EAAAn/D,EAAAoD,EAAAsqB,EAAA,SAAAg6D,EAAA1nF,EAAAwU,GAAuCpR,EAAAgtE,EAAAsX,EAAA1nF,IAAA6I,OAAAwB,eAAAq9E,EAAA1nF,GAAqCuK,cAAA,EAAAD,YAAA,EAAArH,IAAAuR,KAAsCpR,EAAAi6C,EAAA,SAAAqqC,GAAiB,IAAA1nF,EAAA0nF,KAAArX,WAAA,WAAiC,OAAAqX,EAAA1vE,SAAiB,WAAY,OAAA0vE,GAAU,OAAAtkF,EAAAsqB,EAAA1tB,EAAA,IAAAA,MAAsBoD,EAAAgtE,EAAA,SAAAsX,EAAAtkF,GAAmB,OAAAyF,OAAA1J,UAAA2C,eAAA6I,KAAA+8E,EAAAtkF,IAAiDA,EAAA+sC,EAAA,GAAA/sC,IAAAgU,EAAA,IAAvc,EAAyd,SAAAswE,EAAAtkF,EAAApD,GAAkB,aAA6xBoD,EAAAoR,EAAhxB,SAAAkzE,EAAAtkF,EAAApD,EAAAwU,EAAAkC,EAAA2mC,EAAA+yB,EAAAh5D,GAAoC,IAAAnX,SAARynF,SAAQ1vE,QAAuB,WAAA/X,GAAA,aAAAA,IAAAynF,IAAA1vE,SAA4C,IAAiImnD,EAAjIuuI,EAAA,mBAAAhmH,IAAAhgF,QAAAggF,EAAuI,GAAhGtkF,IAAAsqM,EAAAhrM,OAAAU,EAAAsqM,EAAA92L,gBAAA5W,EAAA0tM,EAAAz8H,WAAA,GAAAz8D,IAAAk5L,EAAAx8H,YAAA,GAAA7zB,IAAAqwJ,EAAAv8H,SAAA9zB,GAAgG+yB,GAAAjR,EAAA,SAAAuoB,IAAoBA,KAAAzoF,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YAAApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAAA,oBAAAC,sBAAAoW,EAAApW,qBAAA56D,KAAA/L,KAAA1L,KAAAyoF,QAAAnW,uBAAAmW,EAAAnW,sBAAArzC,IAAAkyC,IAA0Ps9H,EAAAl8H,aAAArS,GAAAzoD,IAAAyoD,EAAA/nD,EAAA,WAAsCV,EAAA/L,KAAA1L,UAAAi4P,MAAA7/O,SAAAotV,aAA4C/tV,GAAAyoD,EAAA,GAAAuuI,EAAAx8H,WAAA,CAAuBw8H,EAAA/7H,cAAAxS,EAAkB,IAAAhvB,EAAAu9J,EAAAhrM,OAAegrM,EAAAhrM,OAAA,SAAAglF,EAAAtkF,GAAuB,OAAA+7D,EAAAx0D,KAAAvH,GAAA+sC,EAAAu3C,EAAAtkF,QAAyB,CAAK,IAAA8T,EAAAw2L,EAAAh8H,aAAqBg8H,EAAAh8H,aAAAx6D,KAAAlD,OAAAkD,EAAAioD,OAAoC,OAAO/8D,QAAAslF,EAAAhgF,QAAAgmM,KAA2B,SAAAhmH,EAAAtkF,GAAe,SAAApD,EAAA0nF,EAAAtkF,GAAgB,IAAApD,EAAA0nF,EAAA,OAAAhxE,EAAAgxE,EAAA,GAAsB,IAAAhxE,EAAA,OAAA1W,EAAe,GAAAoD,GAAA,mBAAA87N,KAAA,CAA+B,IAAA7hL,EAAiJ,SAAAqqC,GAAc,yEAAgEw3I,KAAAC,SAAA/yF,mBAAAjgI,KAAAE,UAAAq7E,MAAA,MAA/NlzE,CAAAkC,GAAW,OAAA1W,GAAAgU,OAAA0C,EAAAg3I,QAAA99I,IAAA,SAAA83E,GAA2C,uBAAAhxE,EAAA0oN,WAAA13I,EAAA,SAA4C1zE,QAAAqpC,IAAAh4C,KAAA,MAA0B,OAAArF,GAAAqF,KAAA,MAAwKqiF,EAAAtlF,QAAA,SAAAslF,GAAsB,IAAAtkF,KAAS,OAAAA,EAAAyD,SAAA,WAA6B,OAAA5H,KAAA2Q,IAAA,SAAAxM,GAA4B,IAAAoR,EAAAxU,EAAAoD,EAAAskF,GAAa,OAAAtkF,EAAA,aAAAA,EAAA,OAA6BoR,EAAA,IAAMA,IAAInP,KAAA,KAAWjC,EAAApD,EAAA,SAAA0nF,EAAA1nF,GAAmB,iBAAA0nF,QAAA,KAAAA,EAAA,MAAsC,QAAAlzE,KAAYkC,EAAA,EAAKA,EAAAzX,KAAAiB,OAAcwW,IAAA,CAAK,IAAA2mC,EAAAp+C,KAAAyX,GAAA,GAAiB,iBAAA2mC,IAAA7oC,EAAA6oC,IAAA,GAA8B,IAAA3mC,EAAA,EAAQA,EAAAgxE,EAAAxnF,OAAWwW,IAAA,CAAK,IAAA05D,EAAAsX,EAAAhxE,GAAW,iBAAA05D,EAAA,IAAA57D,EAAA47D,EAAA,MAAApwE,IAAAowE,EAAA,GAAAA,EAAA,GAAApwE,MAAAowE,EAAA,OAAAA,EAAA,aAAApwE,EAAA,KAAAoD,EAAA5C,KAAA4vE,MAAgGhtE,IAAI,SAAAskF,EAAAtkF,EAAApD,GAAiB,aAA4T,SAAA0W,EAAAgxE,GAAc,QAAAtkF,EAAA,EAAYA,EAAAskF,EAAAxnF,OAAWkD,IAAA,CAAK,IAAApD,EAAA0nF,EAAAtkF,GAAAoR,EAAA27B,EAAAnwC,EAAAW,IAAqB,GAAA6T,EAAA,CAAMA,EAAA6qN,OAAS,QAAA3oN,EAAA,EAAYA,EAAAlC,EAAAktE,MAAAxhF,OAAiBwW,IAAAlC,EAAAktE,MAAAhrE,GAAA1W,EAAA0hF,MAAAhrE,IAA2B,KAAKA,EAAA1W,EAAA0hF,MAAAxhF,OAAiBwW,IAAAlC,EAAAktE,MAAAlhF,KAAA4vE,EAAApwE,EAAA0hF,MAAAhrE,KAAgClC,EAAAktE,MAAAxhF,OAAAF,EAAA0hF,MAAAxhF,SAAAsU,EAAAktE,MAAAxhF,OAAAF,EAAA0hF,MAAAxhF,YAA+D,CAAK,IAAAm9C,KAAA,IAAA3mC,EAAA,EAAiBA,EAAA1W,EAAA0hF,MAAAxhF,OAAiBwW,IAAA2mC,EAAA78C,KAAA4vE,EAAApwE,EAAA0hF,MAAAhrE,KAA0By5B,EAAAnwC,EAAAW,KAASA,GAAAX,EAAAW,GAAA0+N,KAAA,EAAA39I,MAAArkC,KAA0B,SAAAA,IAAa,IAAAqqC,EAAA54E,SAAAC,cAAA,SAAsC,OAAA24E,EAAAjlF,KAAA,WAAAyU,EAAAhI,YAAAw4E,KAA4C,SAAAtX,EAAAsX,GAAc,IAAAtkF,EAAApD,EAAAwU,EAAA1F,SAAA0zC,cAAA,SAAAnX,EAAA,MAAAq8C,EAAA/mF,GAAA,MAA6D,GAAA6T,EAAA,CAAM,GAAAxI,EAAA,OAAAxI,EAAcgR,EAAAg3B,WAAAC,YAAAj3B,GAA4B,GAAAC,EAAA,CAAM,IAAAiC,EAAAurC,IAAUztC,EAAAkZ,MAAA2vB,KAAAj6C,EAAAgU,EAAA3N,KAAA,KAAA+K,EAAAkC,GAAA,GAAA1W,EAAAoX,EAAA3N,KAAA,KAAA+K,EAAAkC,GAAA,QAAyDlC,EAAA6oC,IAAAj6C,EAA6Y,SAAAskF,EAAAtkF,GAAgB,IAAApD,EAAAoD,EAAAk8N,IAAA9qN,EAAApR,EAAA6xG,MAAAv+F,EAAAtT,EAAAm8N,UAAoC,GAAA/qN,GAAAkzE,EAAA/hD,aAAA,QAAAnxB,GAAAoX,EAAA4zM,OAAA93I,EAAA/hD,aAAA0F,EAAAjoC,EAAAzC,IAAA+V,IAAA1W,GAAA,mBAAA0W,EAAAg3I,QAAA,SAAA1tJ,GAAA,uDAA8Jk/N,KAAAC,SAAA/yF,mBAAAjgI,KAAAE,UAAAqK,MAAA,OAAAgxE,EAAA+3I,WAAA/3I,EAAA+3I,WAAAx0L,QAAAjrC,MAA0G,CAAK,KAAK0nF,EAAA1xC,YAAa0xC,EAAAj8C,YAAAi8C,EAAA1xC,YAA6B0xC,EAAAx4E,YAAAJ,SAAAglC,eAAA9zC,MAA7vByJ,KAAA,KAAA+K,GAAAxU,EAAA,WAAyCwU,EAAAg3B,WAAAC,YAAAj3B,IAA6B,OAAApR,EAAAskF,GAAA,SAAAlzE,GAAwB,GAAAA,EAAA,CAAM,GAAAA,EAAA8qN,MAAA53I,EAAA43I,KAAA9qN,EAAAygG,QAAAvtB,EAAAutB,OAAAzgG,EAAA+qN,YAAA73I,EAAA63I,UAAA,OAAsEn8N,EAAAskF,EAAAlzE,QAAOxU,KAAU,SAAAoX,EAAAswE,EAAAtkF,EAAApD,EAAAwU,GAAoB,IAAAkC,EAAA1W,EAAA,GAAAwU,EAAA8qN,IAAiB,GAAA53I,EAAA+3I,WAAA/3I,EAAA+3I,WAAAx0L,QAAA3nC,EAAAF,EAAAsT,OAA4C,CAAK,IAAA2mC,EAAAvuC,SAAAglC,eAAAp9B,GAAA05D,EAAAsX,EAAAg4I,WAAgDtvJ,EAAAhtE,IAAAskF,EAAAj8C,YAAA2kC,EAAAhtE,IAAAgtE,EAAAlwE,OAAAwnF,EAAAywF,aAAA96H,EAAA+yB,EAAAhtE,IAAAskF,EAAAx4E,YAAAmuC,IAAuex0C,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAASpD,EAAA4U,QAAxwD,SAAA0vE,EAAAtkF,EAAApD,EAAAwU,GAAoBxI,EAAAhM,EAAA4rB,EAAApX,MAAY,IAAA6oC,EAAAx0C,OAAA6kM,EAAAl5L,EAAA3L,CAAA6+E,EAAAtkF,GAAuB,OAAAsT,EAAA2mC,GAAA,SAAAj6C,GAAwB,QAAApD,KAAAwU,EAAA,EAAiBA,EAAA6oC,EAAAn9C,OAAWsU,IAAA,CAAK,IAAA47D,EAAA/yB,EAAA7oC,IAAA4C,EAAA+4B,EAAAigC,EAAAzvE,KAAqB0+N,OAAAr/N,EAAAQ,KAAA4W,GAAoD,IAAjChU,EAAAsT,EAAA2mC,EAAAx0C,OAAA6kM,EAAAl5L,EAAA3L,CAAA6+E,EAAAtkF,IAAAi6C,KAAiC7oC,EAAA,EAAYA,EAAAxU,EAAAE,OAAWsU,IAAA,CAAK,IAAA4C,EAAW,QAAXA,EAAApX,EAAAwU,IAAW6qN,KAAA,CAAe,QAAAp/N,EAAA,EAAYA,EAAAmX,EAAAsqE,MAAAxhF,OAAiBD,IAAAmX,EAAAsqE,MAAAzhF,YAAiBkwC,EAAA/4B,EAAAzW,QAAy/C,IAAA+sM,EAAA1tM,EAAA,IAAAm/D,EAAA,oBAAArwD,SAA2C,uBAAAmnI,eAAA92E,EAAA,UAAAb,MAAA,2JAAmN,IAAAnuB,KAAQj5B,EAAAioD,IAAArwD,SAAA4rK,MAAA5rK,SAAAs9B,qBAAA,YAAA1e,EAAA,KAAAu0B,EAAA,EAAAj2C,GAAA,EAAAxI,EAAA,aAA8FooB,EAAA,KAAAyf,EAAA,kBAAA52B,EAAA,oBAAAqpC,WAAA,eAAA8c,KAAA9c,UAAAC,UAAAxmC,eAAAjU,EAAA,WAAiI,IAAAokF,KAAS,gBAAAtkF,EAAApD,GAAqB,OAAA0nF,EAAAtkF,GAAApD,EAAA0nF,EAAArhE,OAAA3N,SAAArT,KAAA,OAA/J,IAA8M,SAAAqiF,EAAAtkF,EAAApD,GAAiB,aAAsyB,SAAAq9C,EAAAqqC,GAAc,OAAAhzE,QAAAC,KAAA,iBAAA+yE,GAA0gBtkF,EAAAsqB,EAAjzC,SAAAg6D,GAAc,GAAAA,EAAA,CAAiE,QAAAtkF,GAA3DskF,IAAAlgF,QAAA,yBAAAkgF,EAAAtkF,GAA0C,OAAAA,EAAA,SAAiBtD,MAAA,MAAAE,KAAAwU,EAAApR,EAAAlD,OAAAwW,EAAA,EAA4CA,EAAAlC,EAAIkC,IAAA,CAAK,IAAA2mC,EAAAj6C,EAAAsT,GAAAtO,MAAA,qCAA8CgoE,EAAAhtE,EAAAsT,GAAAlP,QAAA,sCAAsD,IAAAA,QAAA,mCAA+C,IAAAA,QAAA,iBAAoC,GAAA61C,EAAA,QAAAjmC,EAAAimC,EAAAn9C,OAAAD,EAAA,EAA4BA,EAAAmX,EAAInX,IAAA,CAAK,IAAAytM,EAAA,mCAAmCtsH,KAAA/jC,EAAAp9C,IAAAytB,EAAA,GAAAggL,EAAA,GAAA70H,SAAA60H,EAAA,KAAAA,EAAA,GAAA70H,SAAA60H,EAAA,UAAAA,EAAA,OAAAxtM,OAAA,YAA2GF,EAAAQ,MAAAktB,EAAA0iD,KAAe,OAAApwE,EAAAuU,KAAA,SAAAmzE,EAAAtkF,GAA4B,OAAAskF,EAAA,GAAAtkF,EAAA,KAAiBpD,EAAI,UAAmwBoD,IAA1vB,SAAAskF,EAAAtkF,GAAgB,GAAAskF,IAAAtkF,EAAA,SAAkB,IAAApD,EAAA0nF,EAAA5nF,MAAA,KAAA8P,IAAAoK,QAAAxF,EAAAk5L,EAAA1tM,EAAA,GAAA0W,EAAAlC,EAAA,GAAA6oC,EAAA7oC,EAAA,GAAA47D,EAAA57D,EAAA,GAAA4C,EAAAhU,EAAAtD,MAAA,KAAA8P,IAAAoK,QAAA/Z,EAAAytM,EAAAt2L,EAAA,GAAA+nD,EAAAl/D,EAAA,GAAAkwC,EAAAlwC,EAAA,GAAAiX,EAAAjX,EAAA,GAAsH,GAAAyW,EAAAyoD,EAAA,SAAgB,GAAAzoD,IAAAyoD,EAAA,CAAU,GAAA9hB,EAAAlN,EAAA,SAAgB,GAAAkN,IAAAlN,GAAAigC,EAAAl5D,EAAA,SAAuB,UAAiiB9T,EAAA6+C,EAAA5E,EAAAj6C,EAAAoR,EAAle,SAAAkzE,EAAAtkF,EAAApD,GAAkB,OAAAq9C,EAAA,IAAAqqC,EAAA,0BAAAtkF,EAAA,kDAAApD,EAAA,cAAgdoD,EAAAqR,EAApW,SAAAizE,GAAc,QAAAtkF,EAAAskF,EAAAhqC,WAAA19C,EAAA0nF,EAAA1qC,aAAiD,OAAAh9C,GAASoD,GAAApD,EAAA09C,WAAA19C,IAAAg9C,aAAkC,OAAA55C,GAAA0L,SAAAG,KAAAmuC,WAAAtuC,SAAAmuC,gBAAAG,aAA0Ph6C,EAAA+7D,EAAhL,SAAAuoB,GAAc,QAAAtkF,EAAAskF,EAAA/pC,UAAA39C,EAAA0nF,EAAA1qC,aAAgD,OAAAh9C,GAASoD,GAAApD,EAAA29C,UAAA39C,IAAAg9C,aAAiC,OAAA55C,GAAA0L,SAAAG,KAAAkuC,UAAAruC,SAAAmuC,gBAAAE,YAA4G,IAAAuwJ,EAAA,WAA0P,gBAAAtqM,EAAApD,GAAqB,GAAA8K,MAAAC,QAAA3H,GAAA,OAAAA,EAA6B,GAAA8G,OAAAC,YAAAtB,OAAAzF,GAAA,OAA3R,SAAAskF,EAAAtkF,GAAgB,IAAApD,KAAAwU,GAAA,EAAAkC,GAAA,EAAA2mC,OAAA,EAA4B,IAAI,QAAA+yB,EAAAh5D,EAAAswE,EAAAx9E,OAAAC,cAAiCqK,GAAA47D,EAAAh5D,EAAAssB,QAAApjC,QAAAN,EAAAQ,KAAA4vE,EAAA5pE,QAAApD,GAAApD,EAAAE,SAAAkD,GAA2DoR,GAAA,IAAO,MAAAkzE,GAAShxE,GAAA,EAAA2mC,EAAAqqC,EAAS,QAAQ,KAAIlzE,GAAA4C,EAAAstV,QAAAttV,EAAAstV,SAAyB,QAAQ,GAAAhuV,EAAA,MAAA2mC,GAAc,OAAAr9C,EAA2D0nF,CAAAtkF,EAAApD,GAA8C,UAAAijD,UAAA,yDAA1V,IAA0a,SAAAykC,EAAAtkF,EAAApD,GAAiB,aAAiC,IAAA0W,EAAA1W,EAAA,GAAAq9C,EAAAr9C,EAAA,IAAAowE,EAAApwE,EAAA,GAAAoX,EAApB,SAAAswE,GAAc1nF,EAAA,KAAMC,EAAA4I,OAAAunE,EAAA57D,EAAA3L,CAAA6N,EAAAlC,EAAA6oC,EAAA7oC,EAAA6oC,EAAA5oC,GAAA,EAAA2C,EAAA,WAAwEhU,EAAAoR,EAAAvU,EAAAmC,SAAc,SAAAslF,EAAAtkF,EAAApD,GAAiB,aAAqI,IAAA0W,EAAA1W,EAAA,IAAAq9C,EAAAr9C,EAAAq9C,EAAA3mC,GAAA05D,EAAApwE,EAAA,IAAAoX,EAAApX,EAAA,IAAAC,EAAAD,EAAA,IAAA0tM,EAAA1tM,EAAA,IAAAm/D,EAAAn/D,EAAA,GAAAmwC,EAAA,WAAkT,gBAAA/sC,EAAApD,GAAqB,GAAA8K,MAAAC,QAAA3H,GAAA,OAAAA,EAA6B,GAAA8G,OAAAC,YAAAtB,OAAAzF,GAAA,OAA3R,SAAAskF,EAAAtkF,GAAgB,IAAApD,KAAAwU,GAAA,EAAAkC,GAAA,EAAA2mC,OAAA,EAA4B,IAAI,QAAA+yB,EAAAh5D,EAAAswE,EAAAx9E,OAAAC,cAAiCqK,GAAA47D,EAAAh5D,EAAAssB,QAAApjC,QAAAN,EAAAQ,KAAA4vE,EAAA5pE,QAAApD,GAAApD,EAAAE,SAAAkD,GAA2DoR,GAAA,IAAO,MAAAkzE,GAAShxE,GAAA,EAAA2mC,EAAAqqC,EAAS,QAAQ,KAAIlzE,GAAA4C,EAAAstV,QAAAttV,EAAAstV,SAAyB,QAAQ,GAAAhuV,EAAA,MAAA2mC,GAAc,OAAAr9C,EAA2D0nF,CAAAtkF,EAAApD,GAA8C,UAAAijD,UAAA,yDAAlZ,GAA+d/rC,GAAA,EAAAwW,EAAA7kB,OAAAs2D,EAAA/7D,EAAAyF,CAAAw0C,EAAA7oC,EAAA+mD,QAAA,YAAAtZ,KAAkDj2C,EAAA,KAAAxI,EAAW,OAAXA,EAAW,QAAXA,EAAW,YAAXA,EAAW,aAAXA,EAAW,aAA4GooB,GAAI/pB,KAAA,UAAA8iW,qBAAA,EAAAtxU,YAAkDuxU,UAAAx0R,EAAA57D,EAAAqwV,SAAA5kW,EAAAuU,EAAAswV,UAAA1tV,EAAA5C,EAAAuwV,OAAAr3J,EAAAl5L,GAAoDzS,OAAQijW,OAAOviW,KAAAoG,OAAAm5J,UAAA,EAAAF,UAAA,SAAAp6E,GAA8C,OAAAA,EAAAt6E,KAAAvE,OAAAs2D,EAAA3qD,EAAA3L,CAAA,iCAAA6+E,EAAAu9Q,QAAAp8V,OAAAs2D,EAAA3qD,EAAA3L,CAAA,uCAAA6+E,EAAA14E,KAAA04E,EAAAt6E,MAAsI0e,MAAOrpB,KAAAqI,MAAAkN,QAAA,WAA8B,WAAUqlS,MAAO56S,KAAAiW,QAAAV,SAAA,GAAwBktV,SAAUziW,KAAAiW,QAAAV,SAAA,GAAwBmtV,OAAQ1iW,KAAAiW,QAAAV,SAAA,GAAwB4B,OAAQnX,KAAA2N,OAAA4H,QAAA,WAA8BotV,cAAAh1V,OAAAi1V,YAAkC5iW,KAAAiW,QAAAV,SAAA,GAAwBk/Q,OAAQz0R,KAAAiW,QAAAV,SAAA,GAAwBstV,UAAW7iW,KAAAiW,QAAAV,SAAA,GAAwB83R,UAAWrtS,KAAAiW,QAAAV,SAAA,GAAwButV,OAAQ9iW,KAAAiW,QAAAV,SAAA,GAAwBwtV,QAAAp1V,OAAAq1V,QAAwBhjW,KAAAuX,OAAAhC,QAAA,GAAA8pJ,UAAA,SAAAp6E,GAA6C,OAAAA,GAAA,GAAAA,GAAA,IAAmBg+Q,SAAUjjW,KAAAiW,QAAAV,SAAA,GAAwBuhM,QAAS92M,KAAA2N,OAAA4H,QAAAxU,GAAgCmiW,eAAgBljW,KAAA2N,OAAA0xJ,UAAA,SAAAp6E,GAAkC,OAAAA,GAAA7+E,OAAAs2D,EAAA3qD,EAAA3L,CAAA,8CAAmE+8V,QAASnjW,KAAAiW,QAAAV,SAAA,EAAA8pJ,UAAA,SAAAp6E,GAA8C,OAAAA,GAAA7+E,OAAAs2D,EAAA3qD,EAAA3L,CAAA,8BAAmDg9V,SAAUpjW,KAAAiW,QAAAV,SAAA,EAAA8pJ,UAAA,SAAAp6E,GAA8C,OAAAA,GAAA7+E,OAAAs2D,EAAA3qD,EAAA3L,CAAA,mCAAwDkH,KAAA,WAAiB,OAAO+1V,cAAA7mW,KAAA+lW,MAAAe,WAAA,EAAAv8N,WAAA,EAAAw8N,yBAAA,EAAAC,SAAA,UAAArrS,KAAAhsD,OAAAkvC,UAAAC,WAAAmoT,UAA4Ij6Q,SAAA,EAAAk6Q,WAAA,EAAAC,WAAA,GAAqCC,UAAApnW,KAAAomW,WAAAiB,iBAAA54V,QAAAC,UAAA44V,aAAA,EAAAC,aAAA,EAAAC,gBAAA,EAAAC,eAAA,EAAAC,kBAAA,KAAAC,cAAA3nW,KAAAsmW,MAAAsB,eAAA5nW,KAAAwmW,OAAAqB,WAAA,EAAAC,gBAAA9nW,KAAAymW,QAAAsB,eAAA/nW,KAAAs6M,OAAA0tJ,kBAAgSnsV,UAAWuxE,MAAA,WAAiB,OAAAptF,KAAAye,MAAA2uE,OAAwB66Q,cAAejkW,IAAA,WAAe,OAAAhE,KAAA6mW,eAA0B7hT,IAAA,SAAAyjC,GAAiBh6D,GAAAzuB,KAAAge,MAAA,eAAAyqE,GAAAzoF,KAAA6mW,cAAAp+Q,IAAsDy/Q,WAAA,WAAuB,OAAAloW,KAAAo+S,MAAAp+S,KAAA2mW,QAA8BwB,cAAA,WAA0B,OAAAnoW,KAAAimW,SAAAjmW,KAAA4mW,SAAkCwB,aAAA,WAAyB,OAAApoW,KAAA0nW,mBAAA1nW,KAAAioW,aAAAttV,OAAA3a,KAAA2a,OAAmE0tV,YAAA,WAAwB,OAAAroW,KAAAi4R,QAAAj4R,KAAAgnW,UAAkCsB,eAAA,WAA2B,OAAAtoW,KAAAgnW,UAAAhnW,KAAAqmW,UAAoCkC,UAAA,WAAsB,OAAAvoW,KAAA6sB,MAAiB27U,yBAAA,WAAqC,UAASC,cAAA,WAA0B,OAAOxwU,UAAA,aAAAj4B,KAAAwnW,gBAAA,OAAAxnW,KAAAynW,eAAA,MAAAp6I,gBAAA,aAAArtN,KAAAwnW,gBAAA,OAAAxnW,KAAAynW,eAAA,QAAiKiB,mBAAA,WAA+B,OAAA1oW,KAAAioW,cAAAjoW,KAAAioW,aAAAU,KAAiDC,gBAAA,OAAA5oW,KAAAioW,aAAAU,IAAA,SAAqDE,aAAA,WAAyB,WAAA7oW,KAAAinW,SAAAj6Q,SAAA,EAAAhtF,KAAAinW,SAAAC,WAAAlnW,KAAAinW,SAAAj6Q,UAAoF87Q,aAAA,WAAyB,WAAA9oW,KAAAinW,SAAAj6Q,SAAA,EAAAhtF,KAAAinW,SAAAE,WAAAnnW,KAAAinW,SAAAj6Q,UAAoF+7Q,WAAY/kW,IAAA,WAAe,OAAAhE,KAAAgoW,aAAAloW,QAAAE,KAAAioW,eAAoDjjT,IAAA,SAAAyjC,GAAiBzoF,KAAAioW,aAAAjoW,KAAAgoW,aAAAv/Q,EAAAzoF,KAAAgoW,aAAA/mW,UAAiE+nW,aAAA,WAAyB,OAAAhpW,KAAAipW,aAAA1kW,GAAqC2kW,cAAellW,IAAA,WAAe,OAAAhE,KAAA2nW,eAA0B3iT,IAAA,SAAAyjC,GAAiBh6D,GAAAzuB,KAAAge,MAAA,eAAAyqE,GAAAzoF,KAAA2nW,cAAAl/Q,IAAsD0gR,aAAcnlW,IAAA,WAAe,OAAAhE,KAAA4nW,gBAA2B5iT,IAAA,SAAAyjC,GAAiBh6D,GAAAzuB,KAAAge,MAAA,gBAAAyqE,GAAAzoF,KAAA4nW,eAAAn/Q,IAAwD2gR,eAAgBplW,IAAA,WAAe,OAAAhE,KAAA8nW,iBAA4B9iT,IAAA,SAAAyjC,GAAiBh6D,GAAAzuB,KAAAge,MAAA,iBAAAyqE,GAAAzoF,KAAA8nW,gBAAAr/Q,IAA0DwgR,YAAajlW,IAAA,WAAe,OAAAhE,KAAA+nW,gBAA4B,KAAAxjW,EAAA,KAAAA,EAAA,OAAAA,EAAgD,KAAAA,EAAA,KAAAA,EAAA,OAAAA,EAAmD,eAAAA,IAA6BygD,IAAA,SAAAyjC,GAAiBh6D,GAAAzuB,KAAAge,MAAA,gBAAAyqE,GAAAzoF,KAAA+nW,eAAAt/Q,KAAyD1sE,SAAUstV,YAAA,WAAuBrpW,KAAAsnW,aAAAtnW,KAAAwnW,gBAAAxnW,KAAAunW,aAAAvnW,KAAAynW,gBAA6E6B,aAAA,SAAA7gR,GAA0B,IAAAtkF,EAAAskF,EAAAhqC,WAAA19C,EAAA0nF,EAAA/pC,UAAiC1+C,KAAAwnW,gBAAAxnW,KAAAsnW,aAAAnjW,EAAAnE,KAAAynW,eAAAznW,KAAAunW,aAAAxmW,GAAiFwoW,YAAA,WAAwBvpW,KAAAipW,aAAA1kW,EAAAvE,KAAAipW,WAAA1kW,EAAAvE,KAAAipW,aAAA1kW,EAAAvE,KAAAipW,WAAA1kW,EAAAvE,KAAAipW,WAAA1kW,GAAoJilW,SAAA,WAAqB,IAAA/gR,EAAAzoF,KAAWA,KAAAuc,UAAA,WAA0BksE,EAAAunC,UAAWi8K,OAAA,WAAmBjsS,KAAAotF,MAAAuiC,OAAA3vH,KAAAgwH,OAAAhwH,KAAA4vH,SAA2CI,KAAA,WAAiB,IAAAvnC,EAAAzoF,KAAWA,KAAAkmW,QAAAn5V,OAAA/M,MAAA+M,EAAA6iH,QAAA7iH,EAAA/M,MAA4C,IAAAmE,EAAAnE,KAAAotF,MAAA4iC,OAAwB,GAAA7rH,EAAA,OAAAnE,KAAAqnW,iBAAA,IAAA54V,QAAA,SAAA1N,EAAAwU,GAA4DkzE,EAAAghR,kBAAAl0V,EAAApR,EAAAgL,KAAA,SAAAhL,GAAyCskF,EAAAghR,kBAAA,KAAA1oW,EAAAoD,KAA8B8nF,MAAA/rB,EAAAld,MAAe4sE,MAAA,WAAkB,IAAAnnC,EAAAzoF,KAAWA,KAAAqnW,iBAAAl4V,KAAA,WAAsCs5E,EAAA2E,MAAAwiC,UAAgB3jC,MAAA,WAAmBxD,EAAA2E,MAAAwiC,UAAgB5vH,KAAAypW,oBAAAzpW,KAAAypW,oBAAAzpW,KAAAypW,kBAAA,OAAiFC,oBAAA,SAAAjhR,GAAiCzoF,KAAA+mW,wBAAA/mW,KAAA8mW,UAAA9mW,KAAA4vH,QAAA5vH,KAAAuqI,WAAA,EAAA9/H,MAAAzK,KAAAotF,MAAAJ,YAAAhtF,KAAAotF,MAAAy8B,YAAA7pH,KAAAotF,MAAAJ,SAAAvE,IAAsJkhR,mBAAA,SAAAlhR,GAAgCh+E,MAAAzK,KAAAotF,MAAAJ,UAAAhtF,KAAAinW,SAAAE,WAAA,EAAAnnW,KAAAotF,MAAAy8B,YAAA7pH,KAAAotF,MAAAJ,SAAAvE,GAAmGmhR,kBAAA,SAAAnhR,GAA+BzoF,KAAAuqI,WAAA,EAAAvqI,KAAA+mW,yBAAA/mW,KAAAwpW,YAAgEK,WAAA,WAAuB7pW,KAAA8pW,eAAA9pW,KAAAotF,MAAAk5Q,QAAsCwD,cAAA,SAAArhR,GAA2BzoF,KAAAotF,MAAAk5Q,MAAA79Q,GAAmBshR,eAAA,SAAAthR,GAA4BzoF,KAAAotF,MAAAo5Q,OAAA/9Q,IAAA,GAAAzoF,KAAA8pW,eAAA,IAAgDE,gBAAA,WAA4B,IAAAhqW,KAAA6sB,KAAA5rB,OAAA,OAAAjB,KAAA6mW,eAAgD,IAAAp+Q,KAAA1zE,OAAl9L,SAAA0zE,GAAc,GAAA58E,MAAAC,QAAA28E,GAAA,CAAqB,QAAAtkF,EAAA,EAAApD,EAAA8K,MAAA48E,EAAAxnF,QAA8BkD,EAAAskF,EAAAxnF,OAAWkD,IAAApD,EAAAoD,GAAAskF,EAAAtkF,GAAc,OAAApD,EAAS,OAAA8K,MAAAE,KAAA08E,GAA+2LlzE,CAAAvV,KAAA6sB,OAA8B,IAAA7sB,KAAA8nW,iBAAAr/Q,EAAAxnF,QAAA,SAAAwnF,EAA+C,IAAAtkF,EAAAskF,EAAA3oF,QAAAE,KAAA6mW,eAAoC,OAAAp+Q,EAAAxnF,SAAA,IAAAkD,EAAA,WAAAA,EAAAskF,GAAAzoF,KAAA6mW,cAAAp+Q,EAAA,IAAiE,QAAA1nF,EAAA0nF,EAAAxnF,OAAA,EAAqBF,EAAA,EAAIA,IAAA,CAAK,IAAA0W,EAAA1P,KAAAkwC,MAAAlwC,KAAAstK,UAAAt0K,EAAA,IAAAq9C,EAAAqqC,EAAA1nF,GAA6C0nF,EAAA1nF,GAAA0nF,EAAAhxE,GAAAgxE,EAAAhxE,GAAA2mC,EAAiB,QAAAj6C,GAAA,KAAAA,EAAAskF,EAAA3oF,QAAAE,KAAA6mW,gBAAA,CAAkD,IAAA11R,GAAAsX,EAAAtkF,GAAAskF,EAAA,IAAkBA,EAAA,GAAAtX,EAAA,GAAAsX,EAAAtkF,GAAAgtE,EAAA,GAAoB,OAAAsX,GAASwhR,aAAA,SAAAxhR,GAA0BzoF,KAAAioW,eAAAx/Q,EAAAzoF,KAAAisS,UAAAjsS,KAAAioW,aAAAx/Q,EAAAzoF,KAAAwpW,aAA0EU,YAAA,WAAwBlqW,KAAA8mW,WAAA,GAAkBqD,aAAA,WAAyBnqW,KAAA8mW,WAAA,GAAkBsD,eAAA,WAA2BpqW,KAAA6nW,WAAA,GAAkBwC,eAAA,WAA2BrqW,KAAA6nW,WAAA,GAAkByC,sBAAA,WAAkC,IAAAtqW,KAAAotF,MAAAJ,WAAAhtF,KAAAinW,SAAAj6Q,SAAAhtF,KAAAotF,MAAAJ,WAAsEu9Q,gBAAA,WAA4BvqW,KAAAotF,MAAAyyB,SAAA5+G,OAAAjB,KAAAinW,SAAAC,WAAAlnW,KAAAotF,MAAAyyB,SAAA3uF,IAAAlxB,KAAAotF,MAAAyyB,SAAA5+G,OAAA,GAAAjB,KAAAinW,SAAAC,WAAA,GAAqIsD,kBAAA,WAA8BxqW,KAAAinW,SAAAE,WAAAnnW,KAAAotF,MAAAy8B,aAAgD4gP,eAAA,WAA2BzqW,KAAAinW,SAAAE,WAAAnnW,KAAAotF,MAAAy8B,aAAgD6gP,cAAA,WAA0B1qW,KAAAinW,SAAAE,WAAAnnW,KAAAotF,MAAAy8B,aAAgD8gP,oBAAA,WAAgC3qW,KAAAmpW,YAAAnpW,KAAAotF,MAAAo5Q,OAAAxmW,KAAAkpW,aAAAlpW,KAAAotF,MAAAk5Q,OAAsEsE,aAAA,WAAyB5qW,KAAAipW,aAAA1kW,GAAAvE,KAAAopW,eAAAppW,KAAA+oW,YAAA/oW,KAAAgoW,aAAA/mW,OAAA,IAAAjB,KAAAgoW,aAAAhoW,KAAAgqW,mBAAAhqW,KAAA+oW,YAAA/oW,KAAAwpW,YAAAxpW,KAAAipW,aAAA1kW,EAAAvE,KAAAwpW,YAAAxpW,KAAA+oW,YAAA,IAAA/oW,KAAA+oW,UAAA/oW,KAAAwpW,WAAA,IAAAxpW,KAAAgoW,aAAA/mW,SAAAjB,KAAAotF,MAAAy8B,YAAA,KAA4UghP,UAAA,WAAsB,IAAApiR,EAAAzoF,KAAWA,KAAAotF,MAAAyjN,SAAA7wS,KAAAwoW,yBAAAxoW,KAAAotF,MAAAk5Q,MAAAtmW,KAAAsmW,MAAAtmW,KAAAotF,MAAAm5Q,QAAAvmW,KAAAumW,QAAAvmW,KAAAotF,MAAAo5Q,OAAAxmW,KAAAwmW,QAAA,uTAAA18V,QAAA,SAAA3F,GAAwdskF,EAAA2E,MAAAxuE,iBAAAza,EAAA,SAAApD,GAAuC,OAAA0nF,EAAAzqE,MAAA7Z,EAAApD,OAAsBf,KAAAotF,MAAAxuE,iBAAA,OAAA5e,KAAAkqW,aAAAlqW,KAAAotF,MAAAxuE,iBAAA,QAAA5e,KAAAmqW,cAAAnqW,KAAAotF,MAAAxuE,iBAAA,QAAA5e,KAAAmqW,cAAAnqW,KAAAotF,MAAAxuE,iBAAA,UAAA5e,KAAAoqW,gBAAApqW,KAAAotF,MAAAxuE,iBAAA,UAAA5e,KAAAqqW,gBAAArqW,KAAAotF,MAAAxuE,iBAAA,WAAA5e,KAAAuqW,iBAAAvqW,KAAAotF,MAAAxuE,iBAAA,iBAAA5e,KAAAsqW,uBAAAtqW,KAAAotF,MAAAxuE,iBAAA,UAAA5e,KAAAyqW,gBAAAzqW,KAAAotF,MAAAxuE,iBAAA,SAAA5e,KAAA0qW,eAAA1qW,KAAAotF,MAAAxuE,iBAAA,aAAA5e,KAAAwqW,mBAAAxqW,KAAAotF,MAAAxuE,iBAAA,eAAA5e,KAAA2qW,qBAAA3qW,KAAAotF,MAAAxuE,iBAAA,QAAA5e,KAAA4qW,cAAA5qW,KAAAioW,eAAAjoW,KAAAotF,MAAAr9E,IAAA/P,KAAAioW,aAAAl4V,KAAA/P,KAAAioW,aAAA95V,MAAmyB28V,qBAAA,WAAiC,IAAAriR,EAAAzoF,KAAW,YAAAA,KAAAioW,aAAAttV,OAAA3a,KAAA2a,OAAA,CAAkD,IAAAxW,EAAAnE,KAAAioW,aAAAU,IAA4B,GAAA3lT,EAAA7+C,GAAAnE,KAAA0nW,kBAAA1kT,EAAA7+C,QAAoC,KAAS,IAAA4mW,YAAAC,cAAA7mW,EAAA,SAAApD,GAA6C,IAAAwU,EAAA27B,EAAAnwC,EAAA,GAAA0W,EAAAlC,EAAA,GAAA6oC,EAAA7oC,EAAA,GAAA47D,EAAA57D,EAAA,GAAkCytC,EAAA7+C,GAAA,OAAAsT,EAAA,KAAA2mC,EAAA,KAAA+yB,EAAA,IAAAsX,EAAAi/Q,kBAAA,OAAAjwV,EAAA,KAAA2mC,EAAA,KAAA+yB,EAAA,MAAiF,MAAAsX,GAAS7+E,OAAAs2D,EAAAld,EAAAp5C,CAAA,gEAAuE5J,KAAA0nW,kBAAA,OAAkCnsV,OAAQwqV,MAAA,SAAAt9Q,GAAkBzoF,KAAA6mW,cAAAp+Q,GAAqBw/Q,cAAexsV,QAAA,SAAAgtE,GAAoBzoF,KAAA8qW,uBAA4B,IAAA3mW,EAAAskF,EAAA14E,KAAA04E,EAAAt6E,IAAmB,wBAAAwtD,KAAAx3D,GAAA,GAAAnE,KAAAotF,MAAA69Q,YAAA,0BAAAjrW,KAAAotF,MAAA69Q,YAAA,iCAAAjrW,KAAAotF,MAAAr9E,IAAA5L,OAA6J,IAAS,IAAAoR,EAAAxU,EAAA,IAAYwU,EAAAixB,eAAAxmC,KAAAurG,MAAAvrG,KAAAurG,IAAA,IAAAh2F,GAAAvV,KAAAurG,IAAAqiD,WAAAzpJ,GAAAnE,KAAAurG,IAAAoiD,YAAA3tJ,KAAAotF,SAAAxjF,OAAAs2D,EAAAld,EAAAp5C,CAAA,wCAAA5J,KAAAotF,MAAAr9E,IAAA5L,GAA4K,MAAAskF,GAAS7+E,OAAAs2D,EAAAld,EAAAp5C,CAAA,sCAAA5J,KAAAotF,MAAAr9E,IAAA5L,OAAmEnE,KAAAotF,MAAAr9E,IAAA5L,IAAuBqkW,yBAAA,SAAA//Q,GAAsCzoF,KAAAotF,MAAAyjN,SAAApoN,GAAsBygR,aAAA,SAAAzgR,GAA0BzoF,KAAAotF,MAAAk5Q,MAAA79Q,GAAmB89Q,QAAA,SAAA99Q,GAAqBzoF,KAAAotF,MAAAm5Q,QAAA99Q,GAAqB0gR,YAAA,SAAA1gR,GAAyBzoF,KAAAotF,MAAAo5Q,OAAA/9Q,GAAoB69Q,MAAA,SAAA79Q,GAAmBzoF,KAAA2nW,cAAAl/Q,GAAqB+9Q,OAAA,SAAA/9Q,GAAoBzoF,KAAA4nW,eAAAn/Q,GAAsBg+Q,QAAA,SAAAh+Q,GAAqBzoF,KAAA8nW,gBAAAr/Q,GAAuB6xH,OAAA,SAAA7xH,GAAoBzoF,KAAA+nW,eAAAt/Q,IAAuBhW,aAAA,WAAyB9lD,EAAA+4U,qBAAAztV,IAAAxC,QAAAjW,IAAA,uGAA4I,oDAAmDyY,GAAA,IAAS6H,QAAA,WAAoB9f,KAAAgoW,aAAAhoW,KAAAgqW,mBAAyCjqV,QAAA,WAAoB/f,KAAA6qW,YAAA7qW,KAAA8qW,uBAAA9qW,KAAAqmW,UAAArmW,KAAAgwH,QAAwEhwG,cAAA,WAA0BjT,IAAA/M,OAAA+M,EAAA,MAAA/M,KAAAurG,KAAAvrG,KAAAurG,IAAApsD,YAAkDh7C,EAAAoR,EAAAoX,GAAM,SAAA87D,EAAAtkF,EAAApD,GAAiB,aAAa,IAAAwU,EAAAxU,EAAA,GAAWoD,EAAAoR,GAAK6e,YAAY82U,WAAA31V,KAAezS,OAAQ6lW,IAAAx3V,OAAAwJ,MAAAxJ,OAAAg6V,SAAiC3nW,KAAAiW,QAAAV,SAAA,GAAwBqyV,YAAa5nW,KAAAiW,QAAAV,SAAA,IAAyBjI,KAAA,WAAiB,OAAOu6V,wBAAA,EAAAC,WAAA,EAAAC,WAAA,IAAqD1vV,UAAW6sV,mBAAA,WAA8B,OAAA1oW,KAAA2oW,KAAiBC,gBAAA,OAAA5oW,KAAA2oW,IAAA,IAAAluV,gBAAAza,KAAA2a,YAAoEoB,SAAUstV,YAAA,SAAA5gR,GAAwBzoF,KAAAorW,aAAAprW,KAAAqrW,wBAAA,EAAArrW,KAAAge,MAAA,aAAAhe,KAAAsrW,WAAA7iR,EAAAgpG,QAAAzxL,KAAAurW,WAAA9iR,EAAAipG,QAAA7hL,SAAA+O,iBAAA,YAAA5e,KAAAwrW,qBAAA37V,SAAA+O,iBAAA,UAAA5e,KAAAyrW,qBAA0PD,oBAAA,SAAA/iR,GAAiCzoF,KAAAqrW,wBAAA,EAAArrW,KAAAge,MAAA,YAAsDygC,WAAAgqC,EAAAgpG,QAAAzxL,KAAAsrW,WAAA5sT,UAAA+pC,EAAAipG,QAAA1xL,KAAAurW,cAA2EE,kBAAA,SAAAhjR,GAA+B54E,SAAAiP,oBAAA,UAAA9e,KAAAyrW,mBAAA57V,SAAAiP,oBAAA,YAAA9e,KAAAwrW,qBAAAxrW,KAAAge,MAAA,YAAwJo+R,QAAA,WAAoBp8S,KAAAqrW,wBAAArrW,KAAAge,MAAA,kBAAyD,SAAAyqE,EAAAtkF,EAAApD,GAAiB,aAAa,IAAAwU,EAAAxU,EAAA,GAAWoD,EAAAoR,GAAK6e,YAAYs3U,KAAAn2V,KAASzS,OAAA,UAAiB,SAAA2lF,EAAAtkF,EAAApD,GAAiB,aAAa,IAAAwU,EAAAxU,EAAA,GAAA0W,EAAA1W,EAAA,IAAAq9C,EAAAr9C,EAAA,GAAAowE,EAAAvnE,OAAAw0C,EAAA7oC,EAAA3L,CAAA2L,IAAAkC,EAAAlC,EAAAkC,EAAAjC,GAAA,kBAAuErR,EAAAoR,EAAA47D,EAAAhuE,SAAc,SAAAslF,EAAAtkF,EAAApD,GAAiB,aAAa,IAAAwU,EAAA,WAA0P,gBAAApR,EAAApD,GAAqB,GAAA8K,MAAAC,QAAA3H,GAAA,OAAAA,EAA6B,GAAA8G,OAAAC,YAAAtB,OAAAzF,GAAA,OAA3R,SAAAskF,EAAAtkF,GAAgB,IAAApD,KAAAwU,GAAA,EAAAkC,GAAA,EAAA2mC,OAAA,EAA4B,IAAI,QAAA+yB,EAAAh5D,EAAAswE,EAAAx9E,OAAAC,cAAiCqK,GAAA47D,EAAAh5D,EAAAssB,QAAApjC,QAAAN,EAAAQ,KAAA4vE,EAAA5pE,QAAApD,GAAApD,EAAAE,SAAAkD,GAA2DoR,GAAA,IAAO,MAAAkzE,GAAShxE,GAAA,EAAA2mC,EAAAqqC,EAAS,QAAQ,KAAIlzE,GAAA4C,EAAAstV,QAAAttV,EAAAstV,SAAyB,QAAQ,GAAAhuV,EAAA,MAAA2mC,GAAc,OAAAr9C,EAA2D0nF,CAAAtkF,EAAApD,GAA8C,UAAAijD,UAAA,yDAA1V,GAAuavsC,EAAA1W,EAAA,IAAAq9C,EAAA3mC,EAAA5N,OAAA4b,OAAA,SAAAgjE,EAAAtkF,GAA2C,IAAAi6C,EAAA3mC,EAAAtT,GAAAgF,MAAA,kEAAAgoE,EAAA57D,EAAA6oC,EAAA,GAAAjmC,GAAAg5D,EAAA,GAAAA,EAAA,IAAAnwE,EAAAmwE,EAAA,GAAqH,OAAAsX,EAAAtkF,EAAAgF,MAAA,yBAA0CmO,QAAAa,EAAAsW,EAAAztB,GAAcynF,OAAQtkF,EAAAoR,GAAKzS,OAAA,QAAA+Y,UAAyB0/O,IAAA,WAAyB,OAAVv7P,KAAAwD,KAAU,SAAAxD,KAAAwD,MAAAxD,KAAAwD,KAAA46C,EAAAp+C,KAAAwD,WAAsE+U,MAAA,WAAkB,YAAAvY,KAAAwD,KAAA,OAA6By0B,UAAA,sBAA+B,SAAAwwD,EAAAtkF,EAAApD,GAAiB,aAAaoD,EAAAoR,GAAKzS,OAAOuC,MAAM7B,KAAAiW,QAAAV,SAAA,GAAwBkvV,aAAAr+V,OAAA2+V,WAAgC/kW,KAAAqI,MAAAkN,QAAA,WAA8B,WAAUgwV,WAAYvlW,KAAAuX,OAAAhC,QAAA,GAAsB4B,MAAAxJ,OAAAu1V,cAAAv1V,QAAmC0K,UAAW8vV,gBAAA,WAA2B,OAAO1yV,OAAA,GAAAjZ,KAAAuoW,UAAAtnW,OAAA,OAAAinO,UAAAloO,KAAA0mW,eAAA,QAA4E,SAAAj+Q,EAAAtkF,EAAApD,GAAiB,aAAa,IAAAwU,EAAAxU,EAAA,GAAA0W,EAAA1W,EAAA,IAAAq9C,EAAAr9C,EAAA,IAA2BoD,EAAAoR,GAAK6e,YAAY82U,WAAA31V,IAAAq2V,UAAAn0V,EAAAlC,EAAAs2V,OAAAztT,EAAA7oC,GAAwCzS,OAAA,oDAAA+Y,UAAsEgtV,aAAA,WAAwB,WAAA7oW,KAAA0zU,KAAA1mP,SAAA,EAAAhtF,KAAA0zU,KAAAwzB,WAAAlnW,KAAA0zU,KAAA1mP,UAAwE87Q,aAAA,WAAyB,WAAA9oW,KAAA0zU,KAAA1mP,SAAA,EAAAhtF,KAAA0zU,KAAAyzB,WAAAnnW,KAAA0zU,KAAA1mP,WAAyEjxE,SAAU+vV,aAAA,SAAArjR,GAAyB,GAAAh+E,MAAAg+E,GAAA,cAA0B,IAAAtkF,EAAA,SAAAskF,GAAkB,OAAAA,EAAA,OAAAA,EAAA,GAAAA,GAAuB1nF,EAAAgH,KAAAgkW,MAAAtjR,EAAA,IAAAlzE,EAAAxN,KAAAgkW,MAAAtjR,EAAA,GAAA1nF,GAAA0W,EAAA1P,KAAAgkW,MAAAhrW,EAAA,IAAAq9C,EAAAr2C,KAAAgkW,MAAAtjR,EAAA,MAAA1gF,KAAAgkW,MAAAtjR,EAAA,QAAsG,OAAAA,GAAA,KAAAtkF,EAAAsT,GAAA,IAAAtT,EAAAi6C,GAAA,IAAAj6C,EAAAoR,GAAApR,EAAApD,GAAA,IAAAoD,EAAAoR,OAAuD,SAAAkzE,EAAAtkF,EAAApD,GAAiB,aAAa,IAAAwU,EAAAxU,EAAA,GAAA0W,EAAA1W,EAAA,GAAkBoD,EAAAoR,GAAK6e,YAAYs3U,KAAAj0V,EAAAlC,GAASzS,OAAA,uCAAAgO,KAAA,WAA+D,OAAOk7V,cAAA,IAAiBjwV,SAAUkwV,iBAAA,SAAAxjR,GAA6B,IAAAtkF,EAAAnE,KAAAye,MAAAytV,QAAAvvV,YAAA5b,GAAA0nF,EAAAgpG,QAAA7nL,OAAA2L,EAAAC,EAAA5L,CAAA5J,KAAAye,MAAAytV,UAAA/nW,EAAqFpD,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAf,KAAAge,MAAA,YAAAjd,GAAA8O,SAAA+O,iBAAA,YAAA5e,KAAAwrW,qBAAA37V,SAAA+O,iBAAA,UAAA5e,KAAAyrW,oBAA0KD,oBAAA,SAAA/iR,GAAiC,IAAAtkF,EAAAnE,KAAAye,MAAAytV,QAAAvvV,YAAA5b,GAAA0nF,EAAAgpG,QAAA7nL,OAAA2L,EAAAC,EAAA5L,CAAA5J,KAAAye,MAAAytV,UAAA/nW,EAAqFpD,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAf,KAAAge,MAAA,WAAAjd,IAA6C0qW,kBAAA,SAAAhjR,GAA+B54E,SAAAiP,oBAAA,UAAA9e,KAAAyrW,mBAAA57V,SAAAiP,oBAAA,YAAA9e,KAAAwrW,qBAAkI,IAAArnW,EAAAnE,KAAAye,MAAAytV,QAAAvvV,YAAA5b,GAAA0nF,EAAAgpG,QAAA7nL,OAAA2L,EAAAC,EAAA5L,CAAA5J,KAAAye,MAAAytV,UAAA/nW,EAAqFpD,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAf,KAAAge,MAAA,UAAAjd,IAA4CorW,kBAAA,SAAA1jR,GAA+B,IAAAtkF,EAAAnE,KAAAye,MAAAytV,QAAAvvV,YAAA5b,GAAA0nF,EAAAgpG,QAAA7nL,OAAA2L,EAAAC,EAAA5L,CAAA5J,KAAAye,MAAAytV,UAAA/nW,EAAqFpD,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAf,KAAAge,MAAA,YAAAjd,GAAA8O,SAAA+O,iBAAA,YAAA5e,KAAAosW,qBAAAv8V,SAAA+O,iBAAA,WAAA5e,KAAAqsW,qBAA4KD,oBAAA,SAAA3jR,GAAiC,IAAAtkF,EAAAskF,EAAAwpG,eAAA,GAAAlxL,EAAAf,KAAAye,MAAAytV,QAAAvvV,YAAAlF,GAAAtT,EAAAstL,QAAA7nL,OAAA2L,EAAAC,EAAA5L,CAAA5J,KAAAye,MAAAytV,UAAAnrW,EAA2G0W,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAzX,KAAAge,MAAA,WAAAvG,IAA6C40V,mBAAA,SAAA5jR,GAAgC54E,SAAAiP,oBAAA,WAAA9e,KAAAqsW,oBAAAx8V,SAAAiP,oBAAA,YAAA9e,KAAAosW,qBAAoI,IAAAjoW,EAAAskF,EAAAwpG,eAAA,GAAAlxL,EAAAf,KAAAye,MAAAytV,QAAAvvV,YAAAlF,GAAAtT,EAAAstL,QAAA7nL,OAAA2L,EAAAC,EAAA5L,CAAA5J,KAAAye,MAAAytV,UAAAnrW,EAA2G0W,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAzX,KAAAge,MAAA,UAAAvG,OAA+C,SAAAgxE,EAAAtkF,EAAApD,GAAiB,aAAa,IAAAwU,EAAAxU,EAAA,GAAA0W,EAAA1W,EAAA,GAAkBoD,EAAAoR,GAAK6e,YAAY82U,WAAA31V,KAAezS,OAAA,0BAAA+Y,UAA4CywV,WAAA,WAAsB,OAAAtsW,KAAAsmW,OAAAtmW,KAAAwmW,QAAA,eAAAxmW,KAAAwmW,QAAA,8BAAyFzqV,SAAUwwV,aAAA,SAAA9jR,GAAyB,IAAAtkF,GAAA,GAAAskF,EAAAipG,QAAA9nL,OAAA6N,EAAAyoD,EAAAt2D,CAAA5J,KAAAye,MAAAoK,MAAA,GAAoD1kB,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAnE,KAAAge,MAAA,YAAA7Z,IAA8CqoW,eAAA,WAA2B38V,SAAA+O,iBAAA,YAAA5e,KAAAwrW,qBAAA37V,SAAA+O,iBAAA,UAAA5e,KAAAyrW,oBAA4HD,oBAAA,SAAA/iR,GAAiC,IAAAtkF,GAAA,GAAAskF,EAAAipG,QAAA9nL,OAAA6N,EAAAyoD,EAAAt2D,CAAA5J,KAAAye,MAAAoK,MAAA,GAAoD1kB,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAnE,KAAAge,MAAA,YAAA7Z,IAA8CsnW,kBAAA,SAAAhjR,GAA+B54E,SAAAiP,oBAAA,UAAA9e,KAAAyrW,mBAAA57V,SAAAiP,oBAAA,YAAA9e,KAAAwrW,qBAAkI,IAAArnW,GAAA,GAAAskF,EAAAipG,QAAA9nL,OAAA6N,EAAAyoD,EAAAt2D,CAAA5J,KAAAye,MAAAoK,MAAA,GAAoD1kB,OAAA,EAAAA,EAAA,KAAAA,EAAA,EAAAnE,KAAAge,MAAA,YAAA7Z,OAAiD,SAAAskF,EAAAtkF,EAAApD,GAAiB,aAAa,IAAAwU,EAAAxU,EAAA,GAAWoD,EAAAoR,GAAKzS,OAAOmlW,cAAczkW,KAAAoG,OAAAm5J,UAAA,GAAwBkkM,UAAWzjW,KAAAoG,OAAAm5J,UAAA,IAAyBjyJ,KAAA,WAAiB,OAAO27V,WAAA,GAAAC,iBAAA,IAAkC7wV,UAAW8wV,SAAA,WAAoB,OAAA/iW,OAAA2L,EAAAkZ,EAAA7kB,CAAA5J,KAAAysW,aAAoCG,YAAA,WAAwB,OAAA5sW,KAAA0sW,iBAAA1sW,KAAA2sW,SAAA1rW,OAAA,OAAAjB,KAAA2sW,SAAA3sW,KAAA0sW,mBAA8FG,eAAA,WAA2B,OAAO50U,UAAA,kBAAAj4B,KAAA0sW,iBAAA,MAAAr/I,gBAAA,kBAAArtN,KAAA0sW,iBAAA,SAAwH3wV,SAAU+wV,SAAA,SAAArkR,GAAqB,eAAA9sB,KAAA8sB,GAAAzoF,KAAA+sW,SAAAtkR,GAAAzoF,KAAAysW,WAAAhkR,GAA0DskR,SAAA,SAAAtkR,GAAsB,IAAAtkF,EAAAnE,KAAWgtW,MAAAvkR,GAAAt5E,KAAA,SAAAs5E,GAA0B,OAAAA,EAAAp3C,SAAgBliC,KAAA,SAAAs5E,GAAmBtkF,EAAAsoW,WAAAhkR,KAAiBwkR,QAAA,WAAoBjtW,KAAAysW,WAAA,KAAoBlxV,OAAQ0sV,cAAcvzJ,WAAA,EAAAj5L,QAAA,SAAAgtE,GAAiCzoF,KAAA0sW,iBAAA,EAAAjkR,EAAAykR,IAAAltW,KAAA8sW,SAAArkR,EAAAykR,KAAAltW,KAAAitW,YAAmEE,sBAAA,SAAA1kR,GAAmC,QAAAtkF,EAAA,EAAYA,EAAAnE,KAAA2sW,SAAA1rW,OAAuBkD,IAAA,CAAK,IAAApD,EAAAf,KAAA2sW,SAAAxoW,GAAAoR,EAAAvV,KAAA2sW,SAAAxoW,EAAA,GAA4CskF,GAAA1nF,EAAA,MAAAwU,GAAAkzE,EAAAlzE,EAAA,MAAAvV,KAAA0sW,iBAAAvoW,QAAqD,SAAAskF,EAAAtkF,EAAApD,GAAiB,aAAiC6I,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAA1W,EAAA,GAAAq9C,EAAAr9C,EAAA,IAAAowE,EAAApwE,EAAA,GAAAoX,EAArE,SAAAswE,GAAc1nF,EAAA,KAAuDC,EAAA4I,OAAAunE,EAAA57D,EAAA3L,CAAA6N,EAAAlC,EAAA6oC,EAAA7oC,EAAA6oC,EAAA5oC,GAAA,EAAA2C,EAAA,WAAwEhU,EAAA4U,QAAA/X,EAAAmC,SAAoB,SAAAslF,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,IAAY,iBAAAwU,QAAAkzE,EAAA1nF,EAAAwU,EAAA,MAAAA,EAAAyqN,SAAAv3I,EAAAtlF,QAAAoS,EAAAyqN,SAAuFvoN,EAAnB1W,EAAA,GAAAgY,SAAmB,WAAAxD,GAAA,OAAsB,SAAAkzE,EAAAtkF,EAAApD,IAAiB0nF,EAAAtlF,QAAApC,EAAA,EAAAA,EAAA,IAAAQ,MAAAknF,EAAA1nF,EAAA,iiEAAgkE,MAAO,SAAA0nF,EAAAtkF,EAAApD,GAAiB,aAAkNoD,EAAAoR,EAArM,SAAAkzE,EAAAtkF,GAAgB,QAAApD,KAAAwU,KAAiBkC,EAAA,EAAKA,EAAAtT,EAAAlD,OAAWwW,IAAA,CAAK,IAAA2mC,EAAAj6C,EAAAsT,GAAA05D,EAAA/yB,EAAA,GAAA8hB,GAA0Cx+D,GAAA+mF,EAAA,IAAAhxE,EAAA4oN,IAA1CjiL,EAAA,GAA0C43D,MAA1C53D,EAAA,GAA0CkiL,UAA1CliL,EAAA,IAAgF7oC,EAAA47D,GAAA57D,EAAA47D,GAAAsR,MAAAlhF,KAAA2+D,GAAAn/D,EAAAQ,KAAAgU,EAAA47D,IAAqCzvE,GAAAyvE,EAAAsR,OAAAviB,KAAiB,OAAAn/D,IAAe,SAAAoD,EAAApD,GAAeoD,EAAAhB,QAAAslF,GAAY,SAAAA,EAAAtkF,EAAApD,GAAiB,aAAiC,IAAA0W,EAAA1W,EAAA,GAAAq9C,EAAAr9C,EAAA,IAAAowE,EAAApwE,EAAA,GAAAoX,EAApB,SAAAswE,GAAc1nF,EAAA,KAAMC,EAAA4I,OAAAunE,EAAA57D,EAAA3L,CAAA6N,EAAAlC,EAAA6oC,EAAA7oC,EAAA6oC,EAAA5oC,GAAA,EAAA2C,EAAA,WAAwEhU,EAAAoR,EAAAvU,EAAAmC,SAAc,SAAAslF,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,IAAY,iBAAAwU,QAAAkzE,EAAA1nF,EAAAwU,EAAA,MAAAA,EAAAyqN,SAAAv3I,EAAAtlF,QAAAoS,EAAAyqN,SAAuFvoN,EAAnB1W,EAAA,GAAAgY,SAAmB,WAAAxD,GAAA,OAAsB,SAAAkzE,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,KAAY0nF,EAAAtlF,QAAApC,EAAA,EAAAA,EAAA,IAAAQ,MAAAknF,EAAA1nF,EAAA,+JAAyKwU,EAAAxU,EAAA,g4BAAy5B,MAAO,SAAA0nF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,SAAAslF,GAAsB,uBAAAA,KAAA,eAAA9sB,KAAA8sB,SAAAnmF,MAAA,qBAAAq5D,KAAA8sB,GAAA,IAAAA,EAAAlgF,QAAA,YAAAA,QAAA,iBAAAkgF,KAAmJ,SAAAA,EAAAtkF,GAAeskF,EAAAtlF,QAAA,2sIAAotI,SAAAslF,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,IAAY,iBAAAwU,QAAAkzE,EAAA1nF,EAAAwU,EAAA,MAAAA,EAAAyqN,SAAAv3I,EAAAtlF,QAAAoS,EAAAyqN,SAAuFvoN,EAAnB1W,EAAA,GAAAgY,SAAmB,WAAAxD,GAAA,OAAsB,SAAAkzE,EAAAtkF,EAAApD,IAAiB0nF,EAAAtlF,QAAApC,EAAA,EAAAA,EAAA,IAAAQ,MAAAknF,EAAA1nF,EAAA,+TAA8V,MAAO,SAAA0nF,EAAAtkF,EAAApD,GAAiB,SAAAwU,EAAAkzE,GAAc,OAAA1nF,EAAA0W,EAAAgxE,IAAe,SAAAhxE,EAAAgxE,GAAc,IAAAtkF,EAAAi6C,EAAAqqC,GAAW,KAAAtkF,EAAA,aAAAk7D,MAAA,uBAAAopB,EAAA,MAAyD,OAAAtkF,EAAS,IAAAi6C,GAAOgvT,gBAAA,GAAAC,YAAA,GAAAC,aAAA,GAAAC,kBAAA,GAAAC,cAAA,GAAAC,aAAA,GAAAC,0BAAA,GAAAC,mBAAA,GAAAC,0BAAA,GAAAC,mBAAA,GAAAC,gBAAA,GAAAC,aAAA,GAAAC,oBAAA,GAAAC,mBAAA,GAAAC,kBAAA,IAAoT34V,EAAA1L,KAAA,WAAkB,OAAAD,OAAAC,KAAAu0C,IAAsB7oC,EAAA7G,QAAA+I,EAAAgxE,EAAAtlF,QAAAoS,IAAA7T,GAAA,IAAiC,SAAA+mF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,2PAAoQ,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,4kBAAqlB,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,udAAge,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,mWAA4W,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,+RAAwS,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,0PAAmQ,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,oUAA6U,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,kPAA2P,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,s+BAA++B,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,oSAA6S,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,8QAAuR,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,ukBAAglB,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,0lBAAmmB,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,2SAAoT,SAAAslF,EAAAtkF,GAAeskF,EAAAtlF,QAAA,uyCAAgzC,SAAAslF,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,OAAgBwX,MAAAkwE,EAAAlwE,MAAAlB,OAAqB82V,cAAA,+BAAAl1V,OAAA,OAAAqjD,QAAA,MAAAhlD,QAAAmxE,EAAA8yK,IAAAjkP,QAAA0B,MAAA,UAA6GjY,EAAA,OAAWsW,OAAO+2V,aAAA,sBAAiC3lR,EAAA5wE,GAAA,KAAA9W,EAAA,QAAsBqW,YAAA,eAAAC,OAAkCoX,EAAAg6D,EAAA8yK,IAAA9sO,QAAehX,MAAM,SAAAgxE,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,UAAmBqW,YAAA,eAAAC,OAAkC7T,KAAA,YAAezC,EAAA,QAAYsW,OAAO7T,KAAAilF,EAAAjV,SAAa,IAAM/7D,MAAM,SAAAgxE,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,OAAgBqW,YAAA,cAAAmB,MAAAkwE,EAAAigR,mBAAAhpV,IAAyD87I,UAAA/yE,EAAA4gR,YAAAx0R,MAAA4T,EAAA2zN,WAAyCr7S,EAAA,OAAWqW,YAAA,iBAAAc,MAAAuwE,EAAA0iR,QAAA,iCAA4EpqW,EAAA,eAAmBmX,MAAAuwE,EAAA0iR,QAAA,yCAAA9zV,OAAgEm8D,KAAAiV,EAAA0iR,QAAA,mBAA+B,MAAQ1zV,MAAM,SAAAgxE,EAAAtkF,EAAApD,GAAiB,aAAiC,IAAA0W,EAAA1W,EAAA,IAAAq9C,EAAAr9C,EAAA,IAAAowE,EAAApwE,EAAA,GAAAoX,EAApB,SAAAswE,GAAc1nF,EAAA,KAAMC,EAAA4I,OAAAunE,EAAA57D,EAAA3L,CAAA6N,EAAAlC,EAAA6oC,EAAA7oC,EAAA6oC,EAAA5oC,GAAA,EAAA2C,EAAA,WAAyEhU,EAAAoR,EAAAvU,EAAAmC,SAAc,SAAAslF,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,IAAY,iBAAAwU,QAAAkzE,EAAA1nF,EAAAwU,EAAA,MAAAA,EAAAyqN,SAAAv3I,EAAAtlF,QAAAoS,EAAAyqN,SAAuFvoN,EAAnB1W,EAAA,GAAAgY,SAAmB,WAAAxD,GAAA,OAAsB,SAAAkzE,EAAAtkF,EAAApD,IAAiB0nF,EAAAtlF,QAAApC,EAAA,EAAAA,EAAA,IAAAQ,MAAAknF,EAAA1nF,EAAA,uwDAAsyD,MAAO,SAAA0nF,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,cAAuBsW,OAAOzU,KAAA,aAAgB7B,EAAA,OAAWqjL,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAkhF,EAAApjF,KAAA+Z,WAAA,SAA4DxG,IAAA,OAAAxB,YAAA,eAAAmB,MAAAkwE,EAAAkjR,kBAAgE5qW,EAAA,MAAU6X,IAAA,KAAAL,MAAAkwE,EAAAkjR,iBAAiCljR,EAAAhZ,GAAAgZ,EAAA8/Q,UAAA,SAAApkW,EAAAoR,GAAgC,OAAAxU,EAAA,MAAegJ,IAAAwL,EAAA2C,OAAam2V,qBAAAlqW,IAAAskF,EAAAw/Q,cAAwCvoV,IAAKm1D,MAAA,SAAA9zE,GAAkB0nF,EAAAzqE,MAAA,aAAA7Z,OAA0BpD,EAAA,QAAYqW,YAAA,mBAAAmB,OAAsCw/H,WAAAtvD,EAAA9tE,SAAoB8tE,EAAA5wE,GAAA,KAAA9W,EAAA,QAAsBqW,YAAA,uBAAiCqxE,EAAA5wE,GAAA4wE,EAAA27E,GAAA7uJ,EAAA,MAAAkzE,EAAA5wE,GAAA,KAAA9W,EAAA,QAAwCqW,YAAA,uBAAiCqxE,EAAA5wE,GAAA4wE,EAAA27E,GAAAjgK,EAAA+V,OAAA,eAAAuuE,EAAA5wE,GAAA,KAAA9W,EAAA,QAAwDqW,YAAA,wBAAkCqxE,EAAA5wE,GAAA4wE,EAAA27E,GAAAjgK,EAAAmqW,QAAAnqW,EAAA6hW,QAAA,wBAAuDvuV,MAAM,SAAAgxE,EAAAtkF,EAAApD,GAAiB,aAAiC,IAAA0W,EAAA1W,EAAA,IAAAq9C,EAAAr9C,EAAA,IAAAowE,EAAApwE,EAAA,GAAAoX,EAApB,SAAAswE,GAAc1nF,EAAA,KAAMC,EAAA4I,OAAAunE,EAAA57D,EAAA3L,CAAA6N,EAAAlC,EAAA6oC,EAAA7oC,EAAA6oC,EAAA5oC,GAAA,EAAA2C,EAAA,WAAyEhU,EAAAoR,EAAAvU,EAAAmC,SAAc,SAAAslF,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,IAAY,iBAAAwU,QAAAkzE,EAAA1nF,EAAAwU,EAAA,MAAAA,EAAAyqN,SAAAv3I,EAAAtlF,QAAAoS,EAAAyqN,SAAuFvoN,EAAnB1W,EAAA,GAAAgY,SAAmB,WAAAxD,GAAA,OAAsB,SAAAkzE,EAAAtkF,EAAApD,IAAiB0nF,EAAAtlF,QAAApC,EAAA,EAAAA,EAAA,IAAAQ,MAAAknF,EAAA1nF,EAAA,qhCAAojC,MAAO,SAAA0nF,EAAAtkF,EAAApD,GAAiB,aAAiC,IAAA0W,EAAA1W,EAAA,IAAAq9C,EAAAr9C,EAAA,IAAAowE,EAAApwE,EAAA,GAAAoX,EAApB,SAAAswE,GAAc1nF,EAAA,KAAMC,EAAA4I,OAAAunE,EAAA57D,EAAA3L,CAAA6N,EAAAlC,EAAA6oC,EAAA7oC,EAAA6oC,EAAA5oC,GAAA,EAAA2C,EAAA,WAAyEhU,EAAAoR,EAAAvU,EAAAmC,SAAc,SAAAslF,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,IAAY,iBAAAwU,QAAAkzE,EAAA1nF,EAAAwU,EAAA,MAAAA,EAAAyqN,SAAAv3I,EAAAtlF,QAAAoS,EAAAyqN,SAAuFvoN,EAAnB1W,EAAA,GAAAgY,SAAmB,WAAAxD,GAAA,OAAsB,SAAAkzE,EAAAtkF,EAAApD,IAAiB0nF,EAAAtlF,QAAApC,EAAA,EAAAA,EAAA,IAAAQ,MAAAknF,EAAA1nF,EAAA,wkEAAumE,MAAO,SAAA0nF,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,OAAgB6X,IAAA,UAAAxB,YAAA,mBAAAsI,IAAiD87I,UAAA/yE,EAAAwjR,iBAAAsC,WAAA9lR,EAAA0jR,qBAA6DprW,EAAA,OAAWqW,YAAA,gBAA0BrW,EAAA,OAAWqW,YAAA,iBAAAmB,OAAoCS,MAAA,IAAAyvE,EAAAogR,aAAA,OAA8BpgR,EAAA5wE,GAAA,KAAA9W,EAAA,OAAqBqW,YAAA,iBAAAmB,OAAoCS,MAAA,IAAAyvE,EAAAqgR,aAAA,IAAA/wN,WAAAtvD,EAAA9tE,SAAiD5Z,EAAA,QAAY6X,IAAA,QAAAxB,YAAA,gBAAAmB,OAA+Cwa,YAAA01D,EAAA9tE,MAAAF,gBAAAguE,EAAAujR,aAAAvjR,EAAA9tE,MAAA,QAAkE+E,IAAKkhN,UAAA,SAAAz8N,GAAsBskF,EAAAujR,cAAA,GAAkBnrI,SAAA,SAAA18N,GAAsBskF,EAAAujR,cAAA,MAAoBjrW,EAAA,QAAYqW,YAAA,uBAAAmB,OAA0CkC,gBAAAguE,EAAA9tE,SAAyB5Z,EAAA,QAAYsW,OAAO7T,KAAA,cAAgB,YAAciU,MAAM,SAAAgxE,EAAAtkF,EAAApD,GAAiB,aAAiC,IAAA0W,EAAA1W,EAAA,IAAAq9C,EAAAr9C,EAAA,IAAAowE,EAAApwE,EAAA,GAAAoX,EAApB,SAAAswE,GAAc1nF,EAAA,KAAMC,EAAA4I,OAAAunE,EAAA57D,EAAA3L,CAAA6N,EAAAlC,EAAA6oC,EAAA7oC,EAAA6oC,EAAA5oC,GAAA,EAAA2C,EAAA,WAAyEhU,EAAAoR,EAAAvU,EAAAmC,SAAc,SAAAslF,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,IAAY,iBAAAwU,QAAAkzE,EAAA1nF,EAAAwU,EAAA,MAAAA,EAAAyqN,SAAAv3I,EAAAtlF,QAAAoS,EAAAyqN,SAAuFvoN,EAAnB1W,EAAA,GAAAgY,SAAmB,WAAAxD,GAAA,OAAsB,SAAAkzE,EAAAtkF,EAAApD,IAAiB0nF,EAAAtlF,QAAApC,EAAA,EAAAA,EAAA,IAAAQ,MAAAknF,EAAA1nF,EAAA,ugCAAsiC,MAAO,SAAA0nF,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,OAAgBqW,YAAA,wBAAkCrW,EAAA,eAAmBmX,MAAA,gBAAAuwE,EAAA6jR,WAAAj1V,OAA0Cm8D,KAAAiV,EAAA6jR,YAAkBh3G,UAAWzgL,MAAA,SAAA1wE,GAAkBskF,EAAAzqE,MAAA,kBAAwByqE,EAAA5wE,GAAA,KAAA9W,EAAA,OAAqBqW,YAAA,0BAAAsI,IAA0C87I,UAAA/yE,EAAA+jR,kBAA4BzrW,EAAA,OAAW6X,IAAA,MAAAxB,YAAA,uBAA2CrW,EAAA,OAAWqW,YAAA,iBAAAmB,OAAoCU,OAAAwvE,EAAA69Q,MAAA,EAAAv+V,KAAAgkW,MAAA,IAAAtjR,EAAA+9Q,QAAA,IAAAzuN,WAAAtvD,EAAA9tE,cAAkE,IAAUlD,MAAM,SAAAgxE,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,OAAgBqW,YAAA,uBAAiCrW,EAAA,cAAkBsW,OAAOwxV,aAAApgR,EAAAogR,aAAAC,aAAArgR,EAAAqgR,aAAAnuV,MAAA8tE,EAAA9tE,OAAsE+E,IAAK8uV,UAAA,SAAArqW,GAAsB,OAAAskF,EAAAzqE,MAAA,YAAA7Z,IAA8BsqW,QAAA,SAAAtqW,GAAqB,OAAAskF,EAAAzqE,MAAA,UAAA7Z,IAA4BuqW,SAAA,SAAAvqW,GAAsB,OAAAskF,EAAAzqE,MAAA,WAAA7Z,OAA+BskF,EAAA5wE,GAAA,KAAA9W,EAAA,OAAqBqW,YAAA,iBAA2BrW,EAAA,OAAWqW,YAAA,uBAAiCqxE,EAAA5wE,GAAA,cAAA9W,EAAA,QAA+BqW,YAAA,kBAA4BqxE,EAAA5wE,GAAA4wE,EAAA27E,GAAA37E,EAAAqjR,aAAArjR,EAAAirP,KAAAyzB,gBAAA1+Q,EAAA5wE,GAAA,OAAA9W,EAAA,QAAwEqW,YAAA,kBAA4BqxE,EAAA5wE,GAAA4wE,EAAA27E,GAAA37E,EAAAqjR,aAAArjR,EAAAirP,KAAA1mP,gBAAAvE,EAAA5wE,GAAA,KAAA4wE,EAAA0jI,QAAA66I,SAAAv+Q,EAAA3T,KAAA/zE,EAAA,UAAkGsW,OAAOmvV,OAAA/9Q,EAAA+9Q,OAAA7rV,MAAA8tE,EAAA9tE,MAAA2rV,MAAA79Q,EAAA69Q,OAA4C5mV,IAAKivV,WAAA,SAAAxqW,GAAuBskF,EAAAzqE,MAAA,eAAsB4wV,UAAA,SAAAzqW,GAAuB,OAAAskF,EAAAzqE,MAAA,YAAA7Z,OAAgCskF,EAAA5wE,GAAA,KAAA9W,EAAA,eAA6BqW,YAAA,oBAAAc,OAAuC22V,UAAApmR,EAAAg+Q,SAAoBpvV,OAAQm8D,KAAA,WAAe8hL,UAAWzgL,MAAA,SAAA1wE,GAAkBskF,EAAAzqE,MAAA,qBAA2ByqE,EAAA5wE,GAAA,KAAA9W,EAAA,eAA6BqW,YAAA,oBAAAc,OAAuC22V,SAAA,cAAApmR,EAAA6xH,QAAgCjjM,OAAQm8D,KAAA,eAAAiV,EAAA6xH,OAAA,2BAAuDg7C,UAAWzgL,MAAA,SAAA1wE,GAAkBskF,EAAAzqE,MAAA,gBAAsByqE,EAAA5wE,GAAA,KAAA9W,EAAA,eAA6BqW,YAAA,oBAAAc,OAAuC22V,UAAApmR,EAAA0jI,QAAAi7I,UAA6B/vV,OAAQm8D,KAAA,QAAY8hL,UAAWzgL,MAAA,SAAA1wE,GAAkBskF,EAAAzqE,MAAA,mBAAwB,QAAUvG,MAAM,SAAAgxE,EAAAtkF,EAAApD,GAAiB,aAAiC,IAAA0W,EAAA1W,EAAA,IAAAq9C,EAAAr9C,EAAA,IAAAowE,EAAApwE,EAAA,GAAAoX,EAApB,SAAAswE,GAAc1nF,EAAA,KAAMC,EAAA4I,OAAAunE,EAAA57D,EAAA3L,CAAA6N,EAAAlC,EAAA6oC,EAAA7oC,EAAA6oC,EAAA5oC,GAAA,EAAA2C,EAAA,WAAyEhU,EAAAoR,EAAAvU,EAAAmC,SAAc,SAAAslF,EAAAtkF,EAAApD,GAAiB,IAAAwU,EAAAxU,EAAA,IAAY,iBAAAwU,QAAAkzE,EAAA1nF,EAAAwU,EAAA,MAAAA,EAAAyqN,SAAAv3I,EAAAtlF,QAAAoS,EAAAyqN,SAAuFvoN,EAAnB1W,EAAA,GAAAgY,SAAmB,WAAAxD,GAAA,OAAsB,SAAAkzE,EAAAtkF,EAAApD,IAAiB0nF,EAAAtlF,QAAApC,EAAA,EAAAA,EAAA,IAAAQ,MAAAknF,EAAA1nF,EAAA,oyCAAm0C,MAAO,SAAA0nF,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,OAAgBqW,YAAA,gBAA0BrW,EAAA,OAAWqW,YAAA,uBAAAmB,MAAAkwE,EAAAokR,gBAA0DpkR,EAAAhZ,GAAAgZ,EAAAkkR,SAAA,SAAAxoW,EAAAoR,GAA+B,OAAAxU,EAAA,KAAcgJ,IAAAwL,EAAA2C,OAAa42V,sBAAAv5V,IAAAkzE,EAAAikR,oBAA8CjkR,EAAA5wE,GAAA,WAAA4wE,EAAA27E,GAAAjgK,EAAA,sBAA8CsT,MAAM,SAAAgxE,EAAA1nF,GAAe,YAAAoD,EAAA,CAAe,IAAAoR,EAAA,IAAA8pD,MAAA,kCAAkD,MAAA9pD,EAAA2sH,KAAA,mBAAA3sH,EAAkCkzE,EAAAtlF,QAAAgB,GAAY,SAAAskF,EAAAtkF,EAAApD,GAAiB,aAAaA,EAAA0tB,EAAAtqB,EAAA,eAAqB,OAAAoR,IAASxU,EAAA0tB,EAAAtqB,EAAA,eAAuB,OAAAsT,IAAW,IAAAlC,EAAA,WAAiB,IAAAkzE,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAlW,EAAA0nF,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAApD,EAAA,OAAgBqW,YAAA,UAAAc,OAA6B62V,iBAAAtmR,EAAAy/Q,WAAA8G,oBAAAvmR,EAAAy/Q,YAAAz/Q,EAAA8/Q,UAAAtnW,OAAA,EAAAguW,mBAAAxmR,EAAAy/Q,eAAAz/Q,EAAA3vE,OAAAD,SAAA4vE,EAAA0/Q,eAAA+G,gBAAAzmR,EAAA4/Q,YAAA8G,kBAAA1mR,EAAAq+Q,WAAAr+Q,EAAAo/Q,WAAqOtvV,MAAAkwE,EAAAggR,gBAAuB1nW,EAAA,OAAWqW,YAAA,iBAA2BrW,EAAA,aAAiBsW,OAAOsxV,IAAAlgR,EAAAw/Q,aAAAU,IAAAwC,QAAA1iR,EAAAq+Q,UAAAsI,cAAA3mR,EAAA4/Q,YAAA1tV,MAAA8tE,EAAA2/Q,cAA4F1oV,IAAK2vV,WAAA5mR,EAAAwjN,OAAAuiE,UAAA/lR,EAAA4gR,YAAAqF,SAAAjmR,EAAA6gR,gBAAqE7gR,EAAA5wE,GAAA,KAAA9W,EAAA,OAAqBqjL,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,OAAAkhF,EAAAy/Q,WAAA9oV,WAAA,gBAA0EhI,YAAA,iBAA6BrW,EAAA,OAAWqW,YAAA,kBAA4BrW,EAAA,QAAYqW,YAAA,kBAA4BqxE,EAAA5wE,GAAA4wE,EAAA27E,GAAA37E,EAAAw/Q,aAAA/tV,OAAA,eAAAuuE,EAAA5wE,GAAA,KAAA9W,EAAA,QAAqEqW,YAAA,mBAA6BqxE,EAAA5wE,GAAA4wE,EAAA27E,GAAA37E,EAAAw/Q,aAAAqG,QAAA7lR,EAAAw/Q,aAAAjC,QAAA,gBAAAv9Q,EAAA5wE,GAAA,KAAA4wE,EAAA1T,GAAA,WAAA0T,EAAA0/Q,cAAApnW,EAAA,UAAgIsW,OAAOi4V,gBAAA7mR,EAAAw/Q,aAAAsH,YAAA9mR,EAAAw+Q,YAAuDx+Q,EAAA3T,OAAWmzR,aAAAx/Q,EAAAw/Q,aAAAhB,SAAAx+Q,EAAAw+Q,WAAgDx+Q,EAAA5wE,GAAA,KAAA9W,EAAA,YAA0BsW,OAAOovV,QAAAh+Q,EAAA2gR,cAAA9uJ,OAAA7xH,EAAAwgR,WAAAv1B,KAAAjrP,EAAAw+Q,SAAAT,OAAA/9Q,EAAA0gR,YAAA7C,MAAA79Q,EAAAygR,aAAAvuV,MAAA8tE,EAAA2/Q,cAA2H1oV,IAAK8vV,cAAA,SAAArrW,GAA0BskF,EAAA2gR,eAAA3gR,EAAA2gR,eAAiCqG,WAAA,SAAAtrW,GAAwBskF,EAAA2+Q,UAAA3+Q,EAAA2+Q,UAAuBuH,WAAAlmR,EAAAohR,WAAA+E,UAAAnmR,EAAAshR,eAAAyE,UAAA/lR,EAAAihR,oBAAA+E,QAAAhmR,EAAAmhR,kBAAA8E,SAAAjmR,EAAAkhR,mBAAA+F,SAAAjnR,EAAA8gR,gBAAsK,OAAA9gR,EAAA5wE,GAAA,KAAA9W,EAAA,SAA+B6X,IAAA,UAAY6vE,EAAA5wE,GAAA,KAAA9W,EAAA,cAA4BsW,OAAOhS,KAAAojF,EAAA2+Q,WAAA3+Q,EAAAy/Q,WAAAoH,gBAAA7mR,EAAAw/Q,aAAA0H,aAAAlnR,EAAA8/Q,UAAAqH,aAAAnnR,EAAAsgR,UAAArC,cAAAj+Q,EAAAi+Q,eAAAj+Q,EAAA09Q,cAAAxrV,MAAA8tE,EAAA2/Q,cAAoL1oV,IAAKmwV,WAAApnR,EAAAwhR,iBAA2B,IAAMxyV,QAAMsB,SAAn7xD7V,EAAAC,QAAAgB,EAAkB5E,EAAQ,QAAK,WAAa,IAAI,OAAOA,EAAQ,QAAU,MAAAkpF,KAA1C,0BCA/F,IAAArlF,EAAc7D,EAAQ,QAEtBmvT,EAAmBnvT,EAAQ,QAE3BA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAwBR6D,EAAAg4D,qBAAAszP,yBClCA,IAAAtrT,EAAc7D,EAAQ,QAEtB21S,EAAmB31S,EAAQ,QAE3BA,EAAQ,QAERA,EAAQ,QAwBR6D,EAAA85D,yBAAA,OAAAg4O,GAEA9xS,EAAAs4D,gBACAl4D,KAAA,WACA+zD,MAAA,WACAhb,OAAA,gBACC,SAAA3Y,EAAAjgC,GACDA,EAAAkvD,cAAA,gBAAAk3G,GACA,IAAA5sJ,EAAA4sJ,EAAAE,UACAnmJ,EAAA3G,EAAA0rB,YACAkhI,EAAA4kC,kBAAA7qL,EAAAoqL,IAAApqL,EAAAqqL,KAAAhxL,EAAA2rB,eAIA3lC,EAAAm5D,QADA,8BC3Cc/8D,EAAQ,QAEtBq6B,QAFA,IAIA8uI,EAA0BnpK,EAAQ,QAsBlC0D,EApBkB1D,EAAQ,QAoB1BmK,QACAlG,KAAA,cACAixB,cAAA,gBACAm0I,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAA+kK,EAAA1oK,KAAA6oK,YAAA7oK,OAEA00B,eACAC,OAAA,EACAC,EAAA,EACAvG,iBAAA,cACA+vJ,iBAAA,EACAl7J,gBAAA,EAMA4sV,cAAA,EAEAr9V,OACArE,SAAA,OAIAwS,WACA5H,MAAA,EACAxV,KAAA,SAUA8jB,MAAA,EAEA5hB,QAAA,EACA09B,eAAA,KACApU,OAAA,cACAC,WAAA,EACAC,aAAA,KACAsR,YAAA,EAKAzC,cAAA,OAEAsF,cAAA,EAEAw5I,SAAA,OACAjT,gBAAA,SAEAD,YAAA,EACA4gH,oBAAA9wO,OAIAv2C,EAAAC,QAAAF,wBCtFA,IAAA42B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBsrC,EAAkBtrC,EAAQ,QAE1BisM,EAAiBjsM,EAAQ,QAEzBqnC,EAAarnC,EAAQ,QAErBsjE,EAAiBtjE,EAAQ,QAEzBqxJ,EAAkBrxJ,EAAQ,QA4C1B,SAAAwwW,EAAA35U,EAAAC,EAAAC,EAAA1yB,EAAAosW,GACA,IACA3+T,EAAA84Q,EADA7zR,EAAAtyB,IAAA,SACAqyB,EAAAZ,KAAAY,EAAA1yB,QAAA2yB,EAAAtyB,IAAA,sBACAqF,UAAAitB,EAAAtyB,IAAA,mBACA4J,UAAA0oB,EAAAtyB,IAAA,qBAEA+hE,EAAAzvC,EAAA+I,SAAA,SACAqpB,EAAA8iJ,EAAAI,kBAAA7lI,EAAA/hE,IAAA,eACA0wC,EAAAqxB,EAAAyvF,UACAxgH,EAAAnK,EAAA/C,gBAAAuJ,EAAAqD,GACAtmC,EAAA4hW,EAAA5hW,SACA4K,EAAAg8B,EAAAh8B,MAAA0vC,EAAA,GAAAA,EAAA,GACAzvC,EAAA+7B,EAAA/7B,OAAAyvC,EAAA,GAAAA,EAAA,GAEA/vB,EAAAq3U,EAAAr3U,MACA,UAAAA,IAAAvqB,EAAA,IAAA4K,GACA,WAAA2f,IAAAvqB,EAAA,IAAA4K,EAAA,GACA,IAAA0f,EAAAs3U,EAAAt3U,cACA,WAAAA,IAAAtqB,EAAA,IAAA6K,GACA,WAAAyf,IAAAtqB,EAAA,IAAA6K,EAAA,GAsCA,SAAA7K,EAAA4K,EAAAC,EAAArV,GACA,IAAA8kM,EAAA9kM,EAAAkuD,WACA62I,EAAA/kM,EAAAmuD,YACA3jD,EAAA,GAAArG,KAAAC,IAAAoG,EAAA,GAAA4K,EAAA0vL,GAAA1vL,EACA5K,EAAA,GAAArG,KAAAC,IAAAoG,EAAA,GAAA6K,EAAA0vL,GAAA1vL,EACA7K,EAAA,GAAArG,KAAAE,IAAAmG,EAAA,MACAA,EAAA,GAAArG,KAAAE,IAAAmG,EAAA,MA1CA6hW,CAAA7hW,EAAA4K,EAAAC,EAAArV,GACA,IAAAssW,EAAAnqS,EAAA/hE,IAAA,mBAEAksW,GAAA,SAAAA,IACAA,EAAA75U,EAAAryB,IAAA,6BAGAoyB,EAAA3jB,OACAsV,OACA1jB,EAAA,EACAE,EAAA,EACAyU,QACAC,SACAxB,EAAAsuD,EAAA/hE,IAAA,iBAEAoK,WAAA9L,QAEAiW,OACA84B,OACAoD,SAAAC,EACA4C,SAAAyuB,EAAA0vF,eACAr/G,aAAA,SACA1+B,KAAAw4V,EACAhtU,OAAA6iC,EAAA/hE,IAAA,8BACA+4B,UAAAgpC,EAAA/hE,IAAA,kBACAohC,WAAA2gC,EAAA/hE,IAAA,cACAs6K,YAAAv4G,EAAA/hE,IAAA,eACAqhC,cAAA0gC,EAAA/hE,IAAA,iBACAshC,cAAAygC,EAAA/hE,IAAA,kBAGAogC,GAAA,IAwBA,SAAA+lR,EAAA5iT,EAAAkuB,EAAA9xB,EAAA6kR,EAAA5vP,GACArxB,EAAAkuB,EAAAlkB,MAAApE,MAAA5F,GACA,IAAA8pC,EAAA5b,EAAAlkB,MAAA2nC,SAEA3xC,GACA8B,UAAAuvB,EAAAvvB,YAEAuE,EAAAgrB,EAAAhrB,UAEA,GAAAA,EAAA,CACA,IAAA+jB,GACApqB,MAAAs7D,EAAAwvG,gBAAA58I,EAAAluB,GACAghB,eAEAsR,EAAA4E,KAAA+pP,EAAA,SAAA4hC,GACA,IAAA93S,EAAA3O,EAAAw2D,iBAAAiwP,EAAAj4R,aACAiM,EAAAgsR,EAAAp2P,gBACAq2P,EAAA/3S,KAAAioD,cAAAn8B,GACAisR,GAAA14R,EAAApJ,WAAAhnB,KAAA8oT,KAGAxwR,EAAAn6B,SAAAkO,GACAyjC,EAAAzjC,EAAArF,QAAA,UAAuC8oC,GAClCxX,EAAAl6B,WAAAiO,KACLyjC,EAAAzjC,EAAA+jB,IAIA,OAAA0f,EAWA,SAAAzZ,EAAAnC,EAAAluB,EAAA8vB,GACA,IAAAY,EAAA2O,EAAA8C,SAGA,OAFA9C,EAAA6hI,OAAAxwI,IAAAZ,EAAAQ,UACA+O,EAAAumL,UAAAl1L,IAAAZ,EAAAjpB,UACAoM,EAAAwsB,gBAAAvR,EAAAqB,YAAAvvB,IAAA8vB,EAAA8wS,aAAA,IAAA9wS,EAAAS,gBAAA,IAAAT,EAAAM,aAAA,IAAAM,GAyDA90B,EAAA6zB,aApMA,SAAAV,GACA,IAEA/d,EAFAge,EAAAD,EAAAtyB,IAAA,QACAmsW,EAAA75U,EAAA+I,SAAA9I,EAAA,SAWA,MARA,SAAAA,GACAhe,EAAA43V,EAAAltU,gBACAvrB,KAAA,KACG,WAAA6e,KACHhe,EAAA43V,EAAA1sU,gBACAP,OAAA,MAGA3qB,GAwLApV,EAAA4sW,qBACA5sW,EAAAgnT,gBACAhnT,EAAAy0B,yBACAz0B,EAAAq0B,kCA1DA,SAAAjwB,EAAA6uB,EAAAiB,EAAAhB,EAAAC,EAAA1yB,GACA,IAAAmzT,EAAAnmK,EAAAk5K,gBAAAzyS,EAAAQ,SAAA,EAAAR,EAAAS,gBACAT,EAAAM,YAAArB,EAAAtyB,IAAA,gBACA+rW,EAAA35U,EAAAC,EAAAC,EAAA1yB,GACAwK,SAAAwpB,EAAAvB,EAAAZ,KAAAluB,EAAA8vB,GACAsB,MAAAo+R,EAAArhR,UACAhd,cAAAq+R,EAAAphR,qBAqDAxyC,EAAA21B,cA3CA,SAAA8B,EAAAC,EAAAghS,GAEA,OACAprR,GAAA7V,EAFAihS,KAAA,GAGAnrR,GAAA9V,EAAA,EAAAihS,GACAhuR,GAAAhT,EAAAghS,GACA/tR,GAAAjT,EAAA,EAAAghS,KAsCA14T,EAAAk2B,cA5BA,SAAA0zQ,EAAA5yH,EAAA0hJ,GAEA,OACAx3T,EAAA0oS,EAFA8uB,KAAA,GAGAt3T,EAAAwoS,EAAA,EAAA8uB,GACA7iT,MAAAmhK,EAAA0hJ,GACA5iT,OAAAkhK,EAAA,EAAA0hJ,KAuBA14T,EAAAitW,gBAnBA,SAAA74V,EAAAC,EAAA2kB,EAAA1kB,EAAA2kB,EAAAC,GACA,OACA9kB,KACAC,KACA2kB,KACA1kB,IACA2kB,aACAC,WACAC,WAAA,uCClOA,IAAA04C,EAAYz1E,EAAQ,QAIpB8wW,GACA,6DACA,kEACA,gEACA,sCAgBAntW,EAAAC,QAAA,SAAA8xE,GACA,IACAlrE,EACAwD,EACAxM,EAHAknK,KAKA,OAAAhzF,GAEAD,EAAAlrE,QAAAmrE,EAAAp0E,MAAA,eAAA4E,GAKA,GAJA1E,EAAA0E,EAAA3F,QAAA,KACAiK,EAAAirE,EAAAwM,KAAA/7E,EAAAsvG,OAAA,EAAAh0G,IAAAuX,cACA/K,EAAAynE,EAAAwM,KAAA/7E,EAAAsvG,OAAAh0G,EAAA,IAEAgJ,EAAA,CACA,GAAAk+J,EAAAl+J,IAAAsmW,EAAAvwW,QAAAiK,IAAA,EACA,OAGAk+J,EAAAl+J,GADA,eAAAA,GACAk+J,EAAAl+J,GAAAk+J,EAAAl+J,OAAAgL,QAAAxH,IAEA06J,EAAAl+J,GAAAk+J,EAAAl+J,GAAA,KAAAwD,OAKA06J,GAnBiBA,yBChCjB,IAAA7kK,EAAc7D,EAAQ,QAEtBiuN,EAAcjuN,EAAQ,QAEtBi3G,EAAWj3G,EAAQ,QAEnBkuN,EAAqBluN,EAAQ,QAoB7B+wW,EAAA95P,EAAAx8F,QAAAw8J,QAEA,SAAA+5L,EAAAh5U,GACAv3B,KAAAu3B,QAGAg5U,EAAA77U,eACArvB,MAAA,EACAmuE,KAAA,kLACAt5D,MAAAo2V,EAAAp2V,OAEAq2V,EAAArwW,UAEAwuN,QAAA,SAAA/qN,EAAAC,EAAAJ,GACAgqN,EAAApoK,MAAAzhD,GACAC,EAAAQ,gBACAZ,KAAA,UACAuI,KAAA/L,KAAAk1D,OAIAu4J,EAAAxpN,SAAA,UAAAssW,GACAntW,EAAAs4D,gBACAl4D,KAAA,UACA+zD,MAAA,UACAhb,OAAA,oBACC,SAAA3Y,EAAAjgC,GACDA,EAAA81D,YAAA,cAEA,IAAAx2D,EAAAstW,EACArtW,EAAAC,QAAAF,wBCxDA,IAAA42B,EAAat6B,EAAQ,QAErB06B,EAAgB16B,EAAQ,QAExB2sD,EAAqB3sD,EAAQ,QA0B7Bk/B,EAAA5E,EAAA4E,KACAuL,EAAAnQ,EAAAmQ,MACAr5B,EAAAkpB,EAAAlpB,IACAggE,EAAA92C,EAAA82C,MACA6/R,EAAA,mBAyDA,SAAAzkT,EAAAnoD,GAKA5D,KAAAivD,KAAArrD,EAMA5D,KAAAywW,oBAMAzwW,KAAA0wW,cAMA1wW,KAAA2wW,cAQA3wW,KAAA4wW,wBAMA5wW,KAAA6wW,cAMA7wW,KAAA8wW,eAoNA,SAAAC,EAAAh7S,EAAAi7S,EAAAC,GACA,IAAAC,GACAl4V,MAAAg4V,EACA/3V,OAAAg4V,EACAE,YAAAH,EAAAC,GAGAG,GAAA,EAeA,OAdAv3U,EAAA4E,KAAAs3B,EAAA,SAAAxuD,EAAAxE,GACA,IAAAu6C,EAAAv6C,EAAAoG,MAAAqnW,GAEA,GAAAlzT,KAAA,IAAAA,EAAA,IAIA,IAAA+zT,EAAA/zT,EAAA,GACAg0T,EAAAh0T,EAAA,GAAAhlC,eASA,SAAAi5V,EAAAlhH,EAAAghH,GACA,cAAAA,EACAE,GAAAlhH,EACG,QAAAghH,EACHE,GAAAlhH,EAGAkhH,IAAAlhH,GAdAi5C,CAAA4nE,EAAAI,GAAA/pW,EAAA8pW,KACAD,GAAA,MAGAA,EA/NArlT,EAAA7rD,WACAC,YAAA4rD,EASAhuC,UAAA,SAAAyzV,EAAA7/S,GACA6/S,GAEA33U,EAAA4E,KAAAxE,EAAAi8B,iBAAAs7S,EAAAl/V,QAAA,SAAAA,GACAA,KAAAxB,MAAA+oB,EAAA4xI,aAAAn5J,EAAAxB,OAAA+oB,EAAAu2B,eAAA99C,EAAAxB,QAOA0gW,EAAAxnU,EAAAwnU,GAAA,GAGA,IAgPAC,EAAA9vS,EAhPA+vS,EAAA1xW,KAAA6wW,cACAc,EA6GA,SAAAH,EAAA7/S,EAAAigT,GACA,IAEAC,EACAnwB,EAHAowB,KACAC,KAIA5hL,EAAAqhL,EAAAj3V,SAEAi3V,EAAA9vB,aACAA,EAAA8vB,EAAA9vB,aAIAvxJ,GAAAqhL,EAAA/oW,WACAi5U,QACAowB,GAAAN,EAAA/oW,aAAAnG,SAIA,GAAAkvW,EAAAx7P,MAAA,CACA0rO,QACA,IAAA1rO,EAAAw7P,EAAAx7P,MACAv3E,EAAAu3E,EAAA,SAAAg8P,GACAA,KAAA/0V,SACA+0V,EAAAj8S,MACAg8S,EAAAxwW,KAAAywW,GACSH,IAETA,EAAAG,MAOAtwB,IACAA,EAAA8vB,GAKA9vB,EAAAnnU,WACAmnU,EAAAnnU,SAAA41K,GAWA,OAPA1xJ,GAAAijT,GAAA3sU,OAAA+8V,GAAA/8V,OAAA8kB,EAAAlpB,IAAAohW,EAAA,SAAA/7P,GACA,OAAAA,EAAA/4F,UACG,SAAAA,GACHwhB,EAAAkzB,EAAA,SAAAsgT,GACAA,EAAAh1V,EAAA20V,QAIAlwB,aACAowB,kBACAD,eACAE,cAtKArmW,KAAA1L,KAAAwxW,EAAA7/S,GAAA+/S,GACA1xW,KAAA8wW,eAAAa,EAAAjwB,WAEAgwB,GA4OAD,EA1OAC,EAAAhwB,WA0OA//Q,EA1OAgwS,EAAAjwB,WA4OAjjT,EADAkjC,QACA,SAAAuwS,EAAA5iT,GACA,SAAA4iT,EAAA,CAIA,IAAAC,EAAAV,EAAAniT,GAEA,GAAApD,EAAAwtB,SAAApqB,GAEK,CACL4iT,EAAAj4U,EAAAi8B,iBAAAg8S,GACAC,EAAAl4U,EAAAi8B,iBAAAi8S,GACA,IAAAzvB,EAAAzoT,EAAAu/L,gBAAA24I,EAAAD,GACAT,EAAAniT,GAAA3+C,EAAA+xU,EAAA,SAAA/1U,GACA,OAAAA,EAAAsQ,QAAAtQ,EAAAmtN,MAAAnpJ,EAAAhkE,EAAAmtN,MAAAntN,EAAAsQ,QAAA,GAAAtQ,EAAAmtN,OAAAntN,EAAAsQ,cANAw0V,EAAAniT,GAAAqhB,EAAAwhS,EAAAD,GAAA,MAhPAP,EAAAG,gBAAA7wW,SACAywW,EAAAI,gBAAAH,EAAAG,iBAGAH,EAAAI,UAAA9wW,SACAywW,EAAAK,UAAAJ,EAAAI,WAGAJ,EAAAE,eACAH,EAAAG,aAAAF,EAAAE,eAGA7xW,KAAA6wW,cAAAc,GAQAhwB,YAAA,SAAAywB,GACA,IAAAC,EAAAryW,KAAA6wW,cAOA,OAJA7wW,KAAAywW,iBAAA9/V,EAAA0hW,EAAAP,gBAAA9nU,GACAhqC,KAAA0wW,WAAA//V,EAAA0hW,EAAAN,UAAA/nU,GACAhqC,KAAA2wW,cAAA3mU,EAAAqoU,EAAAR,cACA7xW,KAAA4wW,wBACA5mU,EAAAooU,EAKAC,EAAA3wB,WAAA1hV,KAAA8wW,iBAOA7uB,kBAAA,SAAAt+U,GACA,IAAAsZ,EACA60V,EAAA9xW,KAAAywW,iBAEA,GAAAqB,EAAA7wW,OAAA,CAGA,IAAAqxW,EAAA3uW,EAAAG,aAAA,YAEAwuW,IACAr1V,EAAA+sB,EAAA8nU,EAAAQ,EAAAC,oBAAA,IAIA,OAAAt1V,GAOAklU,eAAA,SAAAx+U,GACA,IA6IA6uW,EAAAC,EA7IAzB,EAAAhxW,KAAAivD,KAAA6C,WAEAm/S,EAAAjxW,KAAAivD,KAAA8C,YAEAggT,EAAA/xW,KAAA0wW,WACAmB,EAAA7xW,KAAA2wW,cACAj7R,KACA3kE,KAEA,IAAAghW,EAAA9wW,SAAA4wW,EACA,OAAA9gW,EAIA,QAAAhQ,EAAA,EAAAc,EAAAkwW,EAAA9wW,OAA2CF,EAAAc,EAASd,IACpDgwW,EAAAgB,EAAAhxW,GAAAg1D,MAAAi7S,EAAAC,IACAv7R,EAAAn0E,KAAAR,GAkBA,OAZA20E,EAAAz0E,QAAA4wW,IACAn8R,IAAA,IAGAA,EAAAz0E,SAmHAuxW,EAnHA98R,EAmHA+8R,EAnHAzyW,KAAA4wW,qBAqHA4B,EAAApsW,KAAA,OAAAqsW,EAAArsW,KAAA,QApHA2K,EAAAJ,EAAA+kE,EAAA,SAAA9oE,GACA,OAAAo9B,GAAA,IAAAp9B,EAAAilW,EAAA50V,OAAA80V,EAAAnlW,GAAAqQ,WAKAjd,KAAA4wW,qBAAAl7R,EACA3kE,IA4JA,IAAA9N,EAAA8oD,EACA7oD,EAAAC,QAAAF,sBC3aA,IAAAyvW,EAAA,KAMAxvW,EAAAC,QAJA,WACA,OAAAuvW,yBCRA,IAAAzvW,EAAA,oBAAA0M,gBAAA81C,uBAAA91C,OAAA81C,sBAAAj7C,KAAAmF,SACAA,OAAAgjW,yBAAAhjW,OAAAgjW,wBAAAnoW,KAAAmF,gBAAAijW,0BAAAjjW,OAAAkjW,8BAAA,SAAAv5S,GACAhtD,WAAAgtD,EAAA,KAGAp2D,EAAAC,QAAAF,wBCLA,IAEAw7B,EAFYl/B,EAAQ,QAEpBk/B,KAEAq0U,EAA0BvzW,EAAQ,QAElCqoE,EAAAkrS,EAAAlrS,aACAooP,EAAA8iD,EAAA9iD,iBA6DA9sT,EAAAC,QAzCA,SAAAQ,EAAAC,GACAD,EAAAikM,iBAAA,iBAAApsK,GACA,IAAAlE,EAAAkE,EAAAx3B,IAAA,UACAq3B,EAAAG,EAAAnN,iBAEA,GAAAgN,GAAA,SAAAA,EAAA73B,KAAA,CACA,IAAAsN,EAAA0qB,EAAAtP,UACA6V,KACAtD,EAAApD,EAAA0G,WAAA,SAAAH,GACAG,IAAAhtB,OAAAjE,EAAA0tB,aAAAoD,GAAA,MAGA,QAAAxD,EAAA,EAA6BA,EAAAttB,EAAAvO,QAA0B67B,IAAA,CAIvD,IAHA,IAAA72B,KACA81K,GAAA,EAEAt8K,EAAA,EAAuBA,EAAAghC,EAAA9gC,OAAuBF,IAAA,CAC9C,IAAAwM,EAAAuD,EAAA9M,IAAA+9B,EAAAhhC,GAAAq9B,GAEA3zB,MAAA8C,KACA8vK,GAAA,GAGA91K,EAAAhG,KAAAgM,GAGA8vK,EACAvsK,EAAA64K,cAAAvrJ,EAAA/C,EAAA4O,YAAA1iC,IAGAuJ,EAAA64K,cAAAvrJ,GAAAqwI,UAIAuhJ,EAAAl/S,EAAAo+J,YACK53I,GAAA,SAAAA,GACLswC,EAAApsC,4BC/DA,IAEAo4T,EAFer0V,EAAQ,QAEvBq0V,iBAEAj/H,EAA0Bp1N,EAAQ,QAIlCmtC,EAFcntC,EAAQ,QAEtBmtC,aAIAutK,EAFY16M,EAAQ,QAEpB06M,UAoBA84J,EAAA,oBAAA99I,0BAAAppN,MACA5I,GACA4sE,WAAA,cACAja,KAAA++J,IACA7pN,MAAA,SAAA0wB,GACA,IAAAH,EAAAG,EAAAnN,iBACAvd,EAAA0qB,EAAAtP,UACA8mV,EA4IA,SAAAx3U,EAAA1qB,GACA,IACAkqB,EADAsC,EAAA9B,EAAAsB,cAEA5D,EAAA,aAAAoE,EAAA95B,KAAA85B,EAAAnE,gBAAA6B,EAAAsC,EAAAxB,YAAA/zB,KAAAY,IAAAqyB,EAAA,GAAAA,EAAA,IAAAlqB,EAAAvO,SACAy5M,EAAAtvK,EAAAutK,EAAAz+K,EAAAx3B,IAAA,eAAAk1B,MACA+iL,EAAAvvK,EAAAutK,EAAAz+K,EAAAx3B,IAAA,kBAAAk1B,GACAgjL,EAAA1gL,EAAAx3B,IAAA,YACA,aAAAk4M,EAAAxvK,EAAAwvK,EAAAhjL,GACAnxB,KAAAE,IAAAF,KAAAC,IAAAkxB,EAAA,EAAA8iL,GAAAC,GApJAg3J,CAAAz3U,EAAA1qB,GACA0xN,EAAA,EACAC,EAAA,EACAC,GAAA,SACAC,EAAA7xN,EAAA0tB,aAAAkkM,EAAAF,IACAI,EAAA9xN,EAAA0tB,aAAAkkM,EAAAD,IAAA,GACAywI,EAAAtwI,EAAA,GACAuwI,EAAAvwI,EAAA,GACAwwI,EAAAxwI,EAAA,GACAywI,EAAAzwI,EAAA,GAOA,GANA9xN,EAAA44K,WACAspL,cAEAM,YAAAN,GAAA,QAGA,MAAArwI,GAAAC,EAAA3hO,OAAA,GAIA,OACAyhE,SAAAlnC,EAAA0yC,gBAAAC,MAiEA,SAAAx8C,EAAA7gB,GAEA,IAEAu5B,EAGAjM,EALAhB,EAAA,IAAA21U,EAAA,EAAAphV,EAAApvB,OACAmgC,EAAA,EAEAi8R,KACAC,KAGA,YAAAxgS,EAAAzM,EAAA8S,SAAA,CACA,IAAAo+L,EAAA/xN,EAAA9M,IAAA2+N,EAAAvkM,GACAm1U,EAAAziW,EAAA9M,IAAAkvW,EAAA90U,GACAo1U,EAAA1iW,EAAA9M,IAAAmvW,EAAA/0U,GACAq1U,EAAA3iW,EAAA9M,IAAAovW,EAAAh1U,GACAs1U,EAAA5iW,EAAA9M,IAAAqvW,EAAAj1U,GAEA3zB,MAAAo4N,IAAAp4N,MAAAgpW,IAAAhpW,MAAAipW,IACAt2U,EAAAsF,KAAA+rI,IACA/rI,GAAA,IAIAtF,EAAAsF,KAAAixU,EAAA7iW,EAAAstB,EAAAm1U,EAAAC,EAAAL,GACAx0C,EAAAn8F,GAAAK,EACA87F,EAAAl8F,GAAAgxI,EACAppU,EAAAhP,EAAA4O,YAAA00R,EAAA,KAAAC,GACAxhS,EAAAsF,KAAA2H,IAAA,GAAAokI,IACArxI,EAAAsF,KAAA2H,IAAA,GAAAokI,IACAkwJ,EAAAl8F,GAAAixI,EACArpU,EAAAhP,EAAA4O,YAAA00R,EAAA,KAAAC,GACAxhS,EAAAsF,KAAA2H,IAAA,GAAAokI,KAGA39J,EAAA44K,UAAA,cAAAtsJ,IA/FA,SAAAzL,EAAA7gB,GACA,IAAAstB,EAEA,YAAAA,EAAAzM,EAAA8S,SAAA,CACA,IAAAo+L,EAAA/xN,EAAA9M,IAAA2+N,EAAAvkM,GACAm1U,EAAAziW,EAAA9M,IAAAkvW,EAAA90U,GACAo1U,EAAA1iW,EAAA9M,IAAAmvW,EAAA/0U,GACAq1U,EAAA3iW,EAAA9M,IAAAovW,EAAAh1U,GACAs1U,EAAA5iW,EAAA9M,IAAAqvW,EAAAj1U,GACAw1U,EAAA7rW,KAAAC,IAAAurW,EAAAC,GACAK,EAAA9rW,KAAAE,IAAAsrW,EAAAC,GACAM,EAAA/wI,EAAA6wI,EAAA/wI,GACAkxI,EAAAhxI,EAAA8wI,EAAAhxI,GACAmxI,EAAAjxI,EAAA0wI,EAAA5wI,GACAoxI,EAAAlxI,EAAA2wI,EAAA7wI,GACA5gL,KACAmhL,EAAAnhL,EAAA8xT,EAAA,GACA3wI,EAAAnhL,EAAA6xT,EAAA,GACA7xT,EAAA1gD,KAAA2yW,EAAAD,GAAAC,EAAAH,GAAAG,EAAAF,GAAAE,EAAAJ,IACAhjW,EAAA64K,cAAAvrJ,GACAqhL,KAAAk0J,EAAA7iW,EAAAstB,EAAAm1U,EAAAC,EAAAL,GACAx1L,aAAA41L,EAAAC,EAAAO,EAAAtxI,GAAAqxI,EAAArxI,GAEAxgL,OACAs6J,UAAA43J,EAAAV,EAAAC,EAAA7wI,KAIA,SAAAE,EAAAx1N,EAAAs1N,GACA,IAAA3xL,KAGA,OAFAA,EAAAsxL,GAAAK,EACA3xL,EAAAuxL,GAAAl1N,EACA9C,MAAAo4N,IAAAp4N,MAAA8C,IAAAkhK,SAAApzI,EAAA4O,YAAAiH,GAGA,SAAAkyL,EAAAnhL,EAAA5X,EAAA7nC,GACA,IAAA8gO,EAAAj5L,EAAA/nC,QACAihO,EAAAl5L,EAAA/nC,QACAghO,EAAAd,GAAAoxH,EAAAtwH,EAAAd,GAAAwwI,EAAA,QACAzvI,EAAAf,GAAAoxH,EAAArwH,EAAAf,GAAAwwI,EAAA,QACAxwW,EAAAy/C,EAAA1gD,KAAA+hO,EAAAC,GAAAthL,EAAA1gD,KAAAgiO,EAAAD,GAGA,SAAA6wI,EAAAV,EAAAC,EAAA7wI,GACA,IAAAuxI,EAAArxI,EAAA0wI,EAAA5wI,GACAwxI,EAAAtxI,EAAA2wI,EAAA7wI,GAGA,OAFAuxI,EAAA5xI,IAAAwwI,EAAA,EACAqB,EAAA7xI,IAAAwwI,EAAA,GAEA3uW,EAAA+vW,EAAA,GACA7vW,EAAA6vW,EAAA,GACAp7V,MAAAypN,EAAAuwI,EAAAqB,EAAA,GAAAD,EAAA,GACAn7V,OAAAwpN,EAAA4xI,EAAA,GAAAD,EAAA,GAAApB,GAIA,SAAAkB,EAAA7pU,GAEA,OADAA,EAAAm4L,GAAAoxH,EAAAvpT,EAAAm4L,GAAA,GACAn4L,OA0CA,SAAAspU,EAAA7iW,EAAAstB,EAAAm1U,EAAAC,EAAAL,GAaA,OAVAI,EAAAC,GACA,EACGD,EAAAC,EACH,EAEAp1U,EAAA,EACAttB,EAAA9M,IAAAmvW,EAAA/0U,EAAA,IAAAo1U,EAAA,KACA,EAiBAtwW,EAAAC,QAAAF,wBChKA,IA9BA,IAAAG,EAAc7D,EAAQ,QAEtBi0J,EAAaj0J,EAAQ,QAwBrB88D,EAAA,aAEAi4S,GAAA,mDAEAvzW,EAAA,EAAeA,EAAAuzW,EAAArzW,OAAwBF,IACvCqC,EAAAs4D,gBACAl4D,KAAA8wW,EAAAvzW,GACAw7C,OAAA,cACG8f,GAGHj5D,EAAAs4D,gBACAl4D,KAAA,oBACA+4C,OAAA,cACC,SAAA3Y,EAAAjgC,GACDA,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA,UACAC,MAAAnyB,GAGA,SAAArM,EAAA3qB,GACA,IACAyhN,EAAA76D,EAAAyhF,mBAAArxM,GADA,yCACArM,GAEA,GAAA82L,EAAA,CACA,IAAAkmJ,EAAAh9U,EAAAk1P,cAEA8nF,IACA3wU,EAAAkf,UAAA0wG,EAAA4hF,cAAAm/H,EAAAlmJ,EAAAn1J,MAAA,sBAGA3hC,EAAA20P,cAAA79D,EAAAn1J,iCC1DA,IAAA1+C,EAAcjb,EAAQ,QAEtBg0V,EAA6Bh0V,EAAQ,QAErCi1W,EAAkBj1W,EAAQ,QAE1Bk1W,EAAuBl1W,EAAQ,QAqB/Bm1W,EAAAl6V,EAAA40N,aACArnN,OACA6X,UAAA,EACAqoJ,UAAA,EACA0sL,SAEAjlU,UAAA,SAAArvC,EAAA0nB,GACA,IAAA4sV,EAAA5sV,EAAA4sV,KACA1sL,EAAAlgK,EAAAkgK,UAEA,GAAAlgK,EAAA6X,SACA,QAAA7+B,EAAA,EAAqBA,EAAA4zW,EAAA1zW,QAAiB,CACtC,IAAAsB,EAAAoyW,EAAA5zW,KAEA,GAAAwB,EAAA,GACAlC,EAAA0mK,OAAA4tM,EAAA5zW,KAAA4zW,EAAA5zW,MAEA,QAAA0nB,EAAA,EAAyBA,EAAAlmB,EAAWkmB,IACpCpoB,EAAA2mK,OAAA2tM,EAAA5zW,KAAA4zW,EAAA5zW,YAKA,IAAAA,EAAA,EAAqBA,EAAA4zW,EAAA1zW,QAAiB,CACtC,IAAA8vC,EAAA4jU,EAAA5zW,KACAiwC,EAAA2jU,EAAA5zW,KACA0vC,EAAAkkU,EAAA5zW,KACA2vC,EAAAikU,EAAA5zW,KAGA,GAFAV,EAAA0mK,OAAAh2H,EAAAC,GAEAi3I,EAAA,GACA,IAAAp6I,GAAAkD,EAAAN,GAAA,GAAAO,EAAAN,GAAAu3I,EACAn6I,GAAAkD,EAAAN,GAAA,GAAAD,EAAAM,GAAAk3I,EACA5nL,EAAAu0W,iBAAA/mU,EAAAC,EAAA2C,EAAAC,QAEArwC,EAAA2mK,OAAAv2H,EAAAC,KAKAmkU,cAAA,SAAAxwW,EAAAE,GACA,IAAAwjB,EAAA/nB,KAAA+nB,MACA4sV,EAAA5sV,EAAA4sV,KACA1sL,EAAAlgK,EAAAkgK,UAEA,GAAAlgK,EAAA6X,SAGA,IAFA,IAAAxB,EAAA,EAEAr9B,EAAA,EAAqBA,EAAA4zW,EAAA1zW,QAAiB,CACtC,IAAAsB,EAAAoyW,EAAA5zW,KAEA,GAAAwB,EAAA,EAIA,IAHA,IAAAwuC,EAAA4jU,EAAA5zW,KACAiwC,EAAA2jU,EAAA5zW,KAEA0nB,EAAA,EAAyBA,EAAAlmB,EAAWkmB,IAAA,CACpC,IAAAgoB,EAAAkkU,EAAA5zW,KACA2vC,EAAAikU,EAAA5zW,KAEA,GAAAyzW,EAAAjlS,cAAAx+B,EAAAC,EAAAP,EAAAC,GACA,OAAAtS,EAKAA,SAKA,IAFAA,EAAA,EAEAr9B,EAAA,EAAqBA,EAAA4zW,EAAA1zW,QAAiB,CACtC8vC,EAAA4jU,EAAA5zW,KACAiwC,EAAA2jU,EAAA5zW,KACA0vC,EAAAkkU,EAAA5zW,KACA2vC,EAAAikU,EAAA5zW,KAEA,GAAAknL,EAAA,GACA,IAAAp6I,GAAAkD,EAAAN,GAAA,GAAAO,EAAAN,GAAAu3I,EACAn6I,GAAAkD,EAAAN,GAAA,GAAAD,EAAAM,GAAAk3I,EAEA,GAAAwsL,EAAAllS,cAAAx+B,EAAAC,EAAAnD,EAAAC,EAAA2C,EAAAC,GACA,OAAAtS,OAGA,GAAAo2U,EAAAjlS,cAAAx+B,EAAAC,EAAAP,EAAAC,GACA,OAAAtS,EAIAA,IAIA,YAIA,SAAA2uC,IACA/sE,KAAAg/B,MAAA,IAAAxkB,EAAAskB,MAGA,IAAAg2U,EAAA/nS,EAAA7sE,UAEA40W,EAAA7kM,aAAA,WACA,OAAAjwK,KAAA67M,cAQAi5J,EAAA7zU,WAAA,SAAAnwB,GACA9Q,KAAAg/B,MAAAkG,YACA,IAAA6vU,EAAA,IAAAL,GACAn1C,WAAA,EACAnwS,OAAA,YAEA2lV,EAAAxzU,UACAozU,KAAA7jW,EAAA84K,UAAA,iBAGA5pL,KAAAg1W,WAAAD,EAAAjkW,GAGA9Q,KAAAg/B,MAAAC,IAAA81U,GACA/0W,KAAA67M,aAAA,MAOAi5J,EAAAlnS,yBAAA,SAAA98D,GACA9Q,KAAAg/B,MAAAkG,YAEAllC,KAAA47M,oBAEA9qM,EAAAvO,QAAA,KACAvC,KAAA67M,eACA77M,KAAA67M,aAAA,IAAA03I,GACApvT,QAAA,KAIAnkC,KAAAg/B,MAAAC,IAAAj/B,KAAA67M,eAEA77M,KAAA67M,aAAA,MAQAi5J,EAAA7mS,kBAAA,SAAAF,EAAAj9D,GACA,IAAAikW,EAAA,IAAAL,EACAK,EAAAxzU,UACAozU,KAAA7jW,EAAA84K,UAAA,iBAGA5pL,KAAAg1W,WAAAD,EAAAjkW,IAAA9Q,KAAA67M,cAEA77M,KAAA67M,aAMA77M,KAAA67M,aAAAo5J,eAAAF,GAAA,IALAA,EAAAx1C,WAAA,EACAw1C,EAAA3lV,OAAA,UACA2lV,EAAA19L,aAAAtpG,EAAAvrE,MACAxC,KAAAg/B,MAAAC,IAAA81U,KAUAD,EAAArwW,OAAA,WACAzE,KAAA47M,oBAEA57M,KAAA67M,aAAA,KACA77M,KAAAg/B,MAAAkG,aAGA4vU,EAAAE,WAAA,SAAAD,EAAAjkW,EAAAokW,GACA,IAAA7wU,EAAAvzB,EAAAuzB,UACA0wU,EAAAxzU,UACA3B,SAAAyE,EAAArgC,IAAA,YACAikL,UAAA5jJ,EAAArgC,IAAA,yBAEA+wW,EAAAhyU,SAAAsB,EAAAhF,SAAA,aAAA4D,gBACA8xU,EAAAx8V,MAAA82B,eAAA,EACA,IAAA5N,EAAA3wB,EAAA6wB,UAAA,SAEAF,GACAszU,EAAAz4T,SAAA,SAAA7a,GAGAszU,EAAAz4T,SAAA,QAEA44T,IAGAH,EAAA5iV,YAAAkS,EAAAlS,YACA4iV,EAAAr1V,GAAA,qBAAAvb,GACA4wW,EAAA32U,UAAA,KACA,IAAAA,EAAA22U,EAAAF,cAAA1wW,EAAAG,QAAAH,EAAAK,SAEA45B,EAAA,IAEA22U,EAAA32U,YAAA22U,EAAA19L,kBAMAy9L,EAAAl5J,kBAAA,WACA,IAAAxrC,EAAApwK,KAAA67M,aAEAzrC,GACAA,EAAA0rC,oBAIA,IAAA74M,EAAA8pE,EACA7pE,EAAAC,QAAAF,wBC5PA,IAAA42B,EAAat6B,EAAQ,QAErBkuN,EAAqBluN,EAAQ,QAsB7B41W,EApBW51W,EAAQ,QAoBnBya,QAAAK,MAEA,SAAA+6V,EAAA79U,EAAA5zB,EAAAC,GACA5D,KAAAu3B,QACAv3B,KAAA2D,UACA3D,KAAA4D,MAMA5D,KAAAq1W,WAMAr1W,KAAAs1W,WAGAF,EAAA1gV,eACArvB,MAAA,EACA7B,MAAA,iDACAgwE,MACAtrC,KAAA,iQAEApI,QAAA,ubAEAovL,MAAA,iNAEAC,MAAA,gMAEAyvE,KAAA,4KAEAx5O,MAAA,0MAIAlrC,MAAA2f,EAAAmQ,MAAAmrU,EAAAj7V,QAEA,IAAAs9B,EAAA49T,EAAAl1W,UAEAs3C,EAAA/zC,OAAA+zC,EAAA6d,WAAA,SAAA04J,EAAApqN,EAAAC,GACA,IAAAgvJ,EACA+rM,EACA4W,EACA5xW,EAAAkvD,eACAvD,SAAA,SACG,SAAA4mI,GACHtjC,EAAAsjC,EAAAtjC,UACA+rM,EAAAzoK,EAAAU,YAAA+nK,WAAA,SACA4W,GAAAr/K,EAAAE,MAAAn1L,SAEAjB,KAAAq1W,WAAAziN,EACA5yJ,KAAAs1W,WAAA3W,EACA9kU,EAAA4E,KAAAsvL,EAAA/pN,IAAA,oBAAAR,GACAuqN,EAAAG,cAAA1qN,GAAA,SAAAA,EAAA,aAAAm7V,EAAA,UAAAn7V,EAAA+xW,EAAA/xW,IAAAovJ,GAAA,wBAIAp7G,EAAA6tR,SAAA,WACA,IAAA9tS,EAAAv3B,KAAAu3B,MACAi+U,EAAAj+U,EAAAvzB,IAAA,WACAohU,KAMA,OALAvrS,EAAA4E,KAAAlH,EAAAvzB,IAAA,oBAAAR,GACAgyW,EAAAhyW,KACA4hU,EAAA5hU,GAAAgyW,EAAAhyW,MAGA4hU,GAGA5tR,EAAAk3K,QAAA,SAAA/qN,EAAAC,EAAAJ,GACA,IAAAovJ,EAAA5yJ,KAAAq1W,WACA1W,EAAA3+V,KAAAs1W,WAEA,UAAA9xW,GAEAI,EAAAQ,gBACAZ,KAAA,iBACAgtE,eAEA5sE,EAAAQ,gBACAZ,KAAA,QACAiyW,QAAA,QAEAr/K,YAGAxyL,EAAAQ,gBACAZ,KAAA,mBACAuG,IAAA,QACA6sL,aACAhkC,UAAA,SAAApvJ,EAAAovJ,MAAApvJ,KACAm7V,UAAA,SAAAn7V,EAAA,aAAAm7V,EAAA,oBAAAA,MAMAlxI,EAAAxpN,SAAA,QAAAmxW,GACA,IAAAnyW,EAAAmyW,EACAlyW,EAAAC,QAAAF,wBC9HA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAoBrB0D,EAAAG,EAAAG,qBACAC,KAAA,SACAgb,KAAA,WAMAxe,KAAAs6L,eAAAzgK,EAAAk7B,iBAEAtxD,OAAA,SAAAiyW,EAAA/xW,EAAAC,GACA,IAAA02L,EAAAt6L,KAAAs6L,eACAA,EAAA77J,KAAA,SAAA9xB,GACAA,EAAAuuL,QAAA,IAEA,IAAAy6K,EAAA31W,KAAAwD,KAAA,QACAG,EAAAqxD,WAAA,SAAAx5B,GACA,IAAAk6U,EAAAl6U,EAAAm6U,GACAD,GAAA11W,KAAAuxD,aAAA/1B,EAAAk6U,EAAA/xW,EAAAC,IACK5D,MACLs6L,EAAA77J,KAAA,SAAA9xB,IACAA,EAAAuuL,QAAAl7L,KAAAg/B,MAAAv6B,OAAAkI,EAAAqyB,QACKh/B,OAELuxD,aAAA,eAGAruD,EAAAC,QAAAF,wBCjDA,IAYA2yW,EAZAjrU,EAAUprC,EAAQ,QAElBs2W,EAAA,gCACAC,EAAA,oBAAAnmW,OAAA,KAAAA,OACAomW,GAAA,EACAhjU,EAAA+iU,KAAAjmW,SASA,GAAAkjC,IAAApI,EAAAiB,gBACA,KACAmH,EAAAijU,WAAAC,OAAAljU,EAAAijU,WAAA/2U,IAAA,QAAA42U,GAEAD,EAAA,SAAA7jU,GACA,OAAAgB,EAAAjjC,cAAA,UAAAiiC,EAAA,oBAEG,MAAA5tC,GACHyxW,EAAA,SAAA7jU,GACA,OAAAgB,EAAAjjC,cAAA,IAAAiiC,EAAA,WAAA8jU,EAAA,qBAsBA1yW,EAAA4vC,MACA5vC,EAAAiqC,WAvCA,SAAA2E,GACA,OAAA6jU,EAAA7jU,IAuCA5uC,EAAA+yW,QAlBA,WACA,IAAAH,GAAAhjU,EAAA,CAIAgjU,GAAA,EACA,IAAAI,EAAApjU,EAAAojU,YAEAA,EAAAl1W,OAAA,GACA8xC,EAAAqjU,mBAAAC,QAAA,uCAGAF,EAAA,GAAAE,QAAA,+DCzCA,IAEA3pU,EAFcntC,EAAQ,QAEtBmtC,aAEA7S,EAAat6B,EAAQ,QAqBrBy8B,GADAj0B,KAAAgwB,GACAhwB,KAAAgwB,GAAA,KA0KA70B,EAAAC,QAxKA,SAAA0sE,EAAAlsE,EAAAC,EAAAggC,GACAjgC,EAAAikM,iBAAA/3H,EAAA,SAAAr0C,GACA,IAAA1X,EAAA0X,EAAAx3B,IAAA,UACA2e,EAAA6Y,EAAAx3B,IAAA,UAEA61B,EAAA/tB,QAAA6W,KACAA,GAAA,EAAAA,IAGAkX,EAAA/tB,QAAAgY,KACAA,SAGA,IAAA9K,EAAApV,EAAAkuD,WACA74C,EAAArV,EAAAmuD,YACAlgC,EAAA9pB,KAAAC,IAAAgR,EAAAC,GACA1B,EAAAm1B,EAAA5oB,EAAA,GAAA9K,GACAxB,EAAAk1B,EAAA5oB,EAAA,GAAA7K,GACAkjB,EAAAuQ,EAAA/pB,EAAA,GAAAkP,EAAA,GACApa,EAAAi1B,EAAA/pB,EAAA,GAAAkP,EAAA,GACAuK,GAAAZ,EAAAx3B,IAAA,cAAAg4B,EACA4wJ,EAAApxJ,EAAAx3B,IAAA,YAAAg4B,EACAinK,EAAAznK,EAAAtP,UAAA0+J,KAAA/vI,KACAy7T,EAAA96U,EAAAixP,cACA8pF,EAAAD,EAAAhuL,MACAhzK,EAAAkmB,EAAAx3B,IAAA,QAEA,MAAAsR,GA8GA,SAAAkhW,EAAAt9S,EAAAu9S,GACA,IAAAluL,EAAArvH,EAAAqvH,aACArvH,EAAAqvH,SAiBA,SAAAA,EAAAmuL,GACA,sBAAAA,EACA,OAAAnuL,EAAAjzK,KAAAohW,GAEA,IAAAD,EAAA,QAAAC,EACA,OAAAnuL,EAAAjzK,KAAA,SAAAC,EAAAC,GACA,IAAA8uB,GAAA/uB,EAAAk0K,WAAAj0K,EAAAi0K,aAAAgtL,EAAA,MACA,WAAAnyU,GAAA/uB,EAAA6oB,UAAA5oB,EAAA4oB,YAAAq4U,GAAA,KAAAnyU,IAxBAhvB,CAAAizK,EAAAkuL,GAEAluL,EAAAtnL,QACA44B,EAAA4E,KAAAy6B,EAAAqvH,SAAA,SAAAj8I,GACAkqU,EAAAlqU,EAAAmqU,KAnHAD,CAAAF,EAAAhhW,GAGA,IAAAqhW,EAAA,EACA98U,EAAA4E,KAAA63U,EAAA/tL,SAAA,SAAAj8I,IACA7hC,MAAA6hC,EAAAm9I,aAAAktL,MAEA,IAAAryV,EAAAgyV,EAAA7sL,WAEAmtL,EAAA7uW,KAAAgwB,IAAAzT,GAAAqyV,GAAA,EACAE,EAAAP,EAAAhuL,MAAA,EACArzE,EAAAqhQ,EAAAr9V,QAAA49V,GAAA,KACAC,GAAAr/V,EAAA0kB,IAAA84E,GAAA,GACA34E,EAAAd,EAAAx3B,IAAA,aACAgpL,EAAAxxJ,EAAAx3B,IAAA,oBAIAm3B,EAAAmB,EAAA,KAMAy6U,EAAA,SAAA79S,EAAA98B,GACA,GAAA88B,EAAA,CAIA,IAAA78B,EAAAD,EAEA,GAAA88B,IAAA+pI,EAAA,CAEA,IAAA17L,EAAA2xD,EAAAuwH,WACAn8I,EAAA,IAAAhpB,GAAA0oK,EAAA4pL,EAAArvW,EAAAqvW,EAEAtpU,EAAAs/I,IACAt/I,EAAAs/I,GAMAvwJ,EAAAD,EAAAjB,EAAAmS,EACA,IAAAg7I,EAAApvH,EAAAovH,MAAAiuL,GAAAM,GAAA,KACAG,EAAA76U,EAAA26U,EAAAxuL,EACA2uL,EAAA96U,EAAA26U,GAAAxuL,EAAA,GACApjH,EAAAhM,EAAA75B,WAEA,MAAA6lC,EAAAlhE,IAAA,QACAgzW,EAAAtqU,EAAAw4B,EAAAlhE,IAAA,MAAA6tB,EAAA,IAGA,MAAAqzC,EAAAlhE,IAAA,OACAizW,EAAAvqU,EAAAw4B,EAAAlhE,IAAA,KAAA6tB,EAAA,IAGAqnC,EAAAwwH,WACAp8I,QACAlR,aACAC,WACAC,YACA/kB,KACAC,KACA2kB,GAAA66U,EACAv/V,EAAAw/V,IAKA,GAAA/9S,EAAAqvH,UAAArvH,EAAAqvH,SAAAtnL,OAAA,CAEA,IAAAi2W,EAAA,EACAr9U,EAAA4E,KAAAy6B,EAAAqvH,SAAA,SAAArvH,GACAg+S,GAAAH,EAAA79S,EAAA98B,EAAA86U,KAIA,OAAA76U,EAAAD,IAIA,GAAAy6U,EAAA,CACA,IAAAG,EAAA76U,EACA86U,EAAA96U,EAAA26U,EACAxpU,EAAA,EAAAvlC,KAAAgwB,GACAkrK,EAAAvZ,WACAp8I,QACAlR,aACAC,SAAAD,EAAAkR,EACAhR,YACA/kB,KACAC,KACA2kB,GAAA66U,EACAv/V,EAAAw/V,IAIAF,EAAAT,EAAAl6U,4BCzJA,IAGAnxB,EAHW1L,EAAQ,QAGnB0L,OAEA/H,EAAAC,QAAA8H,wBCLc1L,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAErBosD,EAAepsD,EAAQ,QAEvBib,EAAcjb,EAAQ,QAEtB47J,EAAuB57J,EAAQ,QAE/BgsE,EAAiBhsE,EAAQ,QAoBzBgrC,EAAA1Q,EAAA0Q,MACA9L,EAAA5E,EAAA4E,KACA9tB,EAAAkpB,EAAAlpB,IACAwiD,EAAAprD,KAAAC,IACA2jC,EAAA5jC,KAAAE,IACAmwC,EAAArwC,KAAAI,IACAgvW,EAAA,IACAC,EAAA,EACAC,EAAA,EACAC,EAAA,YACAC,GACAxzP,GAAA,KACA5/G,GAAA,KACAi6C,GAAA,KACAjmC,GAAA,MAEAq/V,GACAzzP,EAAA,KACA5/G,EAAA,KACAi6C,EAAA,KACAjmC,EAAA,KACAs/V,GAAA,OACA/kU,GAAA,OACAglU,GAAA,OACAC,GAAA,QAEAC,GACA/kN,YACA91H,UAAA,EACAmG,OAAA,kBACAxrB,KAAA,mBAEAknV,eAAA,EACAD,UAAA,SACA7rM,eAAA,GAEA+kN,EAAA,EAiBA,SAAAhnN,EAAAnwJ,GACAirD,EAAAjgD,KAAA1L,MAMAA,KAAAouD,IAAA1tD,EAMAV,KAAAg/B,MAAA,IAAAxkB,EAAAskB,MAUA9+B,KAAAq1W,WAQAr1W,KAAA83W,aAMA93W,KAAA+3W,QAMA/3W,KAAAg4W,UAMAh4W,KAAAm0J,UAMAn0J,KAAAi4W,WAMAj4W,KAAAk4W,eAOAl4W,KAAAm4W,eAMAn4W,KAAAo4W,iBAUAp4W,KAAA83P,KAAA,mBAAA+/G,IAMA73W,KAAAotL,aACA3uJ,EAAA45U,EAAA,SAAA58V,EAAA8qB,GACAvmC,KAAAotL,UAAA7mJ,GAAA1M,EAAArvB,KAAAiR,EAAAzb,OACGA,MAqKH,SAAAs4W,EAAAjuT,EAAAusI,GACA,IAAA2hL,EAAAC,EAAA5hL,EAAAhkC,WAAA0lN,YAAAjuT,EAAAusI,GAIA,OAHA2hL,EAAAE,cAAA7hL,EACAv+H,EAAAkgT,EAAA3hL,GACAvsI,EAAArrB,MAAAC,IAAAs5U,GACAA,EAGA,SAAAG,EAAAruT,EAAAsuT,GACA,IAAAC,EAAAC,EAAAF,GAOA,OALAC,EAAAF,cACAE,EAAAF,YAAAruT,EAAAsuT,GACAtgT,EAAAsgT,IAAAF,gBAGAE,EAGA,SAAAG,EAAAzuT,EAAAkuT,GACA,IAAA3hL,EAAA2hL,EAAAE,cACAI,EAAAN,GAAAO,iBAAAzuT,EAAAkuT,EAAA3hL,EAAAx2E,MAAAw2E,GAGA,SAAAv+H,EAAAkgT,EAAA3hL,GACA,IAAAhiK,EAAAgiK,EAAAhiK,EACA,MAAAA,MAAAuiV,GACAoB,EAAA5/S,SAAA,SAAAl4D,GACAA,EAAAm0B,IACAn0B,EAAA2jC,GAAAxP,IAIA,SAAAmkV,EAAA1uT,EAAAkuT,GACAM,EAAAN,GAAAxoC,aAAA1lR,EAAAkuT,GACAO,EAAAzuT,EAAAkuT,GAGA,SAAAM,EAAAN,GACA,OAAAC,EAAAD,EAAAE,cAAA7lN,WAIA,SAAAomN,EAAA3uT,EAAAlmD,EAAAsyM,GACA,IAMAwiK,EANAC,EAAA7uT,EAAA0tT,QAEA,IAAAmB,EACA,SAIA,IAAAjhV,EAAAoyB,EAAAg+Q,WAIA,OAHA5pS,EAAAy6U,EAAA,SAAAC,GACAA,EAAA5mN,iBAAApuJ,EAAAsyM,EAAAx+K,KAAAghV,EAAAE,KAEAF,EAIA,SAAAG,EAAA/uT,EAAAkuT,GACA,IAAAW,EAAA7uT,EAAA0tT,QAEA,IAAAmB,EACA,SAGA,IAAA7mN,EAAAkmN,EAAAE,cAAApmN,QAGA,aAAAA,GAAA6mN,EAAA7mN,GAGA,SAAAgnN,EAAAhvT,GACA,IAAAivT,EAAAjvT,EAAA4tT,QACAsB,EAAAD,EAAAr4W,OAKA,OAJAw9B,EAAA66U,EAAA,SAAAf,GACAluT,EAAArrB,MAAAv6B,OAAA8zW,IACGluT,GACHivT,EAAAr4W,OAAA,IACAs4W,EAGA,SAAAtnW,EAAAo4C,EAAAzxB,GACA,IAAAw9J,EAAAzlL,EAAA05C,EAAA4tT,QAAA,SAAAM,GACA,IAAA3hL,EAAA2hL,EAAAE,cACAr4P,EAAAvmF,EAAAmQ,MAAA4sJ,EAAAx2E,OACA,OACAwyC,UAAAgkC,EAAAhkC,UACAP,QAAAukC,EAAAvkC,QACAjyC,WAGA/1D,EAAAp4C,QAAA,QAAAmkL,GACAjjC,QAAAv6H,EAAAu6H,MACAL,gBAAAl6H,EAAAk6H,gBAmBA,SAAA0mN,EAAAvoR,GACA,IAAAyqF,EAAAzqF,EAAAhwF,OAAA,EAEA,OADAy6K,EAAA,IAAAA,EAAA,IACAzqF,EAAA,GAAAA,EAAAyqF,IAGA,SAAA+9L,EAAAC,EAAArvT,EAAAusI,EAAA+iL,GACA,IAAApB,EAAA,IAAA/9V,EAAAskB,MA2BA,OA1BAy5U,EAAAt5U,IAAA,IAAAzkB,EAAAyiB,MACAr6B,KAAA,OACA2V,MAAAqhW,EAAAhjL,GACAzyJ,QAAA,EACA8yH,WAAA,EACA7nI,OAAA,OACAo2F,MAAAj7E,EAAAmvU,EAAArvT,EAAAkuT,EAAA,QACAphN,UAAA5sH,EAAAt4B,EAAAo4C,GACA8oG,OAAA,OAGA10H,EAAAk7U,EAAA,SAAA/2W,GACA21W,EAAAt5U,IAAA,IAAAzkB,EAAAyiB,MACAr6B,OACA2V,OACA1F,QAAA,GAEAokJ,WAAA,EACA9yH,QAAA,EACAkzH,WAAA,EACA7xC,MAAAj7E,EAAAmvU,EAAArvT,EAAAkuT,EAAA31W,GACAu0J,UAAA5sH,EAAAt4B,EAAAo4C,GACA8oG,OAAA,SAIAolN,EAGA,SAAAsB,EAAAxvT,EAAAkuT,EAAAuB,EAAAljL,GACA,IAAA75J,EAAA65J,EAAA/jC,WAAA91H,WAAA,EACAy+R,EAAA7vR,EAAA5O,EAAAs6U,GACAhzW,EAAAy1W,EAAA,MACAv1W,EAAAu1W,EAAA,MACAC,EAAA11W,EAAA04B,EAAA,EACAi9U,EAAAz1W,EAAAw4B,EAAA,EACA8Q,EAAAisU,EAAA,MACAhsU,EAAAgsU,EAAA,MACAG,EAAApsU,EAAA2tR,EAAAz+R,EAAA,EACAm9U,EAAApsU,EAAA0tR,EAAAz+R,EAAA,EACA/jB,EAAA60B,EAAAxpC,EACA4U,EAAA60B,EAAAvpC,EACA41W,EAAAnhW,EAAA+jB,EACAq9U,EAAAnhW,EAAA8jB,EACAs9U,EAAAhwT,EAAAkuT,EAAA,OAAAl0W,EAAAE,EAAAyU,EAAAC,GAEA29K,EAAAgoK,gBACAyb,EAAAhwT,EAAAkuT,EAAA,IAAAwB,EAAAC,EAAAx+C,EAAA4+C,GACAC,EAAAhwT,EAAAkuT,EAAA,IAAA0B,EAAAD,EAAAx+C,EAAA4+C,GACAC,EAAAhwT,EAAAkuT,EAAA,IAAAwB,EAAAC,EAAAG,EAAA3+C,GACA6+C,EAAAhwT,EAAAkuT,EAAA,IAAAwB,EAAAG,EAAAC,EAAA3+C,GACA6+C,EAAAhwT,EAAAkuT,EAAA,KAAAwB,EAAAC,EAAAx+C,KACA6+C,EAAAhwT,EAAAkuT,EAAA,KAAA0B,EAAAD,EAAAx+C,KACA6+C,EAAAhwT,EAAAkuT,EAAA,KAAAwB,EAAAG,EAAA1+C,KACA6+C,EAAAhwT,EAAAkuT,EAAA,KAAA0B,EAAAC,EAAA1+C,MAIA,SAAAuU,EAAA1lR,EAAAkuT,GACA,IAAA3hL,EAAA2hL,EAAAE,cACA7Z,EAAAhoK,EAAAgoK,cACA0b,EAAA/B,EAAAtzS,QAAA,GACAq1S,EAAAv3U,SAAA62U,EAAAhjL,IACA0jL,EAAAv3W,MACAohC,QAAAy6T,EACAxvU,OAAAwvU,EAAA,mBAEAngU,GAAA,8CAAA77B,GACA,IAAAnC,EAAA83W,EAAA//J,YAAA51M,GACA23W,EAgCA,SAAAC,EAAAnwT,EAAAowT,GACA,GAAAA,EAAAx5W,OAAA,GACAw5W,IAAA55W,MAAA,IACA,IAAA05W,GAAAC,EAAAnwT,EAAAowT,EAAA,IAAAD,EAAAnwT,EAAAowT,EAAA,KAEA,OADA,MAAAF,EAAA,UAAAA,EAAA,KAAAA,EAAAhzV,UACAgzV,EAAAn0W,KAAA,IAEA,IAYAm0W,EAAA//V,EAAA87Q,oBAXAvyK,EAAA,OACA5/G,EAAA,QACAi6C,EAAA,MACAjmC,EAAA,UAQAsiW,GAvBA,SAAApwT,GACA,OAAA7vC,EAAA6+I,aAAAhvG,EAAArrB,OAsBAq6H,CAAAhvG,IACA,OANAxkD,KAAA,IACAC,MAAA,IACAkM,IAAA,IACA8C,OAAA,KAGAylW,GApDAC,CAAAnwT,EAAAznD,GACAnC,KAAAsC,MACAohC,QAAAy6T,EACAvnM,WAAAunM,EACAxvU,OAAAwvU,EAAA4Y,EAAA+C,GAAA,mBAKA,SAAAF,EAAAhwT,EAAAkuT,EAAA31W,EAAAyB,EAAAE,EAAAw/G,EAAA9rG,GACA,IAsFAmlB,EACAs9U,EACAC,EACAC,EACAC,EA1FAp6W,EAAA83W,EAAA//J,YAAA51M,GACAnC,KAAA8gC,UAqFAnE,EArFA09U,EAAAzwT,EAAAkuT,IAAAl0W,EAAAE,IAAAF,EAAA0/G,EAAAx/G,EAAA0T,KAsFAyiW,EAAAvnT,EAAA/1B,EAAA,MAAAA,EAAA,OACAu9U,EAAAxnT,EAAA/1B,EAAA,MAAAA,EAAA,OACAw9U,EAAAjvU,EAAAvO,EAAA,MAAAA,EAAA,OACAy9U,EAAAlvU,EAAAvO,EAAA,MAAAA,EAAA,QAEA/4B,EAAAq2W,EACAn2W,EAAAo2W,EACA3hW,MAAA4hW,EAAAF,EACAzhW,OAAA4hW,EAAAF,KA3FA,SAAAf,EAAAhjL,GACA,OAAA/8J,EAAAmJ,UACAqM,eAAA,GACGunJ,EAAA/jC,YAGH,SAAAkoN,EAAA12W,EAAAE,EAAAspC,EAAAC,GACA,IAAA9lC,GAAAmrD,EAAA9uD,EAAAwpC,GAAAslB,EAAA5uD,EAAAupC,IACA7lC,GAAA0jC,EAAAtnC,EAAAwpC,GAAAlC,EAAApnC,EAAAupC,IACA,QAAA9lC,EAAA,GAAAC,EAAA,KACAD,EAAA,GAAAC,EAAA,KAgCA,SAAA+yW,EAAAC,EAAAC,EAAA7wT,EAAAkuT,EAAA31W,EAAAmrC,EAAAC,EAAA7pC,GACA,IAAAyyL,EAAA2hL,EAAAE,cACA0C,EAAAF,EAAArkL,EAAAx2E,OACAg7P,EAAAC,EAAAhxT,EAAAtc,EAAAC,GACAvP,EAAA77B,EAAA/B,MAAA,aAAAy6W,GACA,IAAAC,EAAAhE,EAAA+D,GACAH,EAAAI,EAAA,IAAAA,EAAA,KAAAH,EAAAG,EAAA,MAEA3kL,EAAAx2E,MAAA86P,EAAAH,EAAAI,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,QACApC,EAAA1uT,EAAAkuT,GACAtmW,EAAAo4C,GACA8oG,OAAA,IAIA,SAAAqoN,EAAAnxT,EAAAkuT,EAAAxqU,EAAAC,EAAA7pC,GACA,IAAAi8G,EAAAm4P,EAAAE,cAAAr4P,MACAg7P,EAAAC,EAAAhxT,EAAAtc,EAAAC,GACAvP,EAAA2hF,EAAA,SAAA/1E,GACAA,EAAA,IAAA+wU,EAAA,GACA/wU,EAAA,IAAA+wU,EAAA,KAEArC,EAAA1uT,EAAAkuT,GACAtmW,EAAAo4C,GACA8oG,OAAA,IAIA,SAAAkoN,EAAAhxT,EAAAtc,EAAAC,GACA,IAAAwmH,EAAAnqG,EAAArrB,MACAy8U,EAAAjnN,EAAA2wD,sBAAAp3K,EAAAC,GACA0tU,EAAAlnN,EAAA2wD,sBAAA,KACA,OAAAs2J,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,IAGA,SAAAZ,EAAAzwT,EAAAkuT,EAAAznW,GACA,IAAAmoW,EAAAG,EAAA/uT,EAAAkuT,GACA,OAAAU,IAAA,IAAAA,IAAAh9U,SAAAnrB,EAAAu5C,EAAAg+Q,YAAAxuS,EAAAmQ,MAAAl5B,GAwCA,SAAA6gL,EAAAxtL,GACA,IAAAw3W,EAAAx3W,EAAAozD,MACAokT,EAAAhqL,gBAAAgqL,EAAAhqL,iBAGA,SAAAiqL,EAAArD,EAAAl0W,EAAAE,GACA,OAAAg0W,EAAA//J,YAAA,QAAA9tK,QAAArmC,EAAAE,GAGA,SAAAs3W,EAAAxxT,EAAAlmD,EAAAsyM,EAAAtjD,GACA,IAGA2oN,EAHAnD,EAAAtuT,EAAA6tT,eACAe,EAAA5uT,EAAA8tT,eACA4D,EAAA1xT,EAAAytT,aAKA,GAFAztT,EAAA2tT,OAAAz2W,KAAAk1M,EAAAn0M,SAhPA,SAAA+nD,GACA,IAAA4mC,EAAA5mC,EAAA2tT,OAEA,IAAA/mR,EAAAhwF,OACA,SAGA,IAAA45B,EAAAo2D,IAAAhwF,OAAA,GACA25B,EAAAq2D,EAAA,GACAljD,EAAAlT,EAAA,GAAAD,EAAA,GACAoT,EAAAnT,EAAA,GAAAD,EAAA,GAEA,OADAwd,EAAArK,IAAAC,IAAA,IACAopU,EAsOA4E,CAAA3xT,IAAAsuT,EAAA,CACA,GAAAM,IAAAN,EAAA,CACA,WAAAoD,EAAApd,WAAA0a,EAAAhvT,GACA,IAAAusI,EAAA/8J,EAAAmQ,MAAA+xU,GACAnlL,EAAAhkC,UAAAqpN,EAAArlL,EAAAhkC,UAAAqmN,GACAriL,EAAAvkC,SAAA,IAAA4mN,EAAA,KAAAA,EAAA5mN,QACAsmN,EAAAtuT,EAAA6tT,eAAAI,EAAAjuT,EAAAusI,GAEAvsI,EAAA4tT,QAAA12W,KAAAo3W,GAGA,GAAAA,EAAA,CACA,IAAAC,EAAAJ,EAAAyD,EAAA5xT,EAAAgrT,WAAA4D,IACAN,EAAAF,cACAr4P,MAAAw4P,EAAAsD,iBAAApB,EAAAzwT,EAAAsuT,EAAAtuT,EAAA2tT,SAEA7kN,IACAulN,EAAAruT,EAAAsuT,GACAC,EAAA7oC,aAAA1lR,EAAAsuT,IAGAG,EAAAzuT,EAAAsuT,GACAmD,GACA3oN,eAGGA,GAAA,WAAA4oN,EAAApd,WAAAod,EAAAjpN,eAMHkmN,EAAA3uT,EAAAlmD,EAAAsyM,IAAA4iK,EAAAhvT,KACAyxT,GACA3oN,QACAL,eAAA,IAKA,OAAAgpN,EAGA,SAAAG,EAAArpN,EAAAqmN,GACA,eAAArmN,EACAqmN,EAAAkD,iBAGAvpN,EAtiBA/B,EAAA3wJ,WACAC,YAAA0wJ,EAmBA8B,YAAA,SAAAikC,GAqIA,IAAAvsI,EACA3pD,EAnIA,OAFAV,KAAAq1W,aAqIA30W,GADA2pD,EApIArqD,MAqIAouD,IACA+sG,EAAA6qC,QAAAtlM,EAAA42W,EAAAjtT,EAAAytM,MACAr5N,EAAA4rB,EAAA+iI,UAAA,SAAA3xK,EAAA8qB,GACA7lC,EAAA2vD,IAAA9pB,EAAA9qB,KAEA4uC,EAAAgrT,WAAAhrT,EAAAytT,aAAA,MAzIAlhL,EAAAhkC,WAqHA,SAAAvoG,EAAAusI,GACA,IAAAl2L,EAAA2pD,EAAA+D,IAEA/D,EAAA+tT,kBACAj9M,EAAA0qC,KAAAnlM,EAAA42W,EAAAjtT,EAAAytM,MAGAr5N,EAAA4rB,EAAA+iI,UAAA,SAAA3xK,EAAA8qB,GACA7lC,EAAAgf,GAAA6mB,EAAA9qB,KAEA4uC,EAAAgrT,WAAAz+K,EAAAhkC,UACAvoG,EAAAytT,aAAAj+U,EAAA82C,MAAA92C,EAAAmQ,MAAA4tU,GAAAhhL,GAAA,GAhIAwlL,CAAAp8W,KAAA42L,GACA52L,MAaAoyJ,UAAA,SAAAiqN,GACA,GAAAA,KAAAp7W,OAAA,CACA,IAAAi4W,EAAAl5W,KAAA+3W,WACAl+U,EAAA4E,KAAA49U,EAAA,SAAAA,GACAnD,EAAAmD,EAAAhqN,SAAAx4H,EAAAmQ,MAAAqyU,UAGAr8W,KAAA+3W,QAAA,KAGA,OAAA/3W,MAOAkyJ,MAAA,SAAAt5H,GACAA,QACA54B,KAAAo4W,iBAAAx/U,EAAAu5H,gBACA,IAAAqC,EAAAx0J,KAAAg/B,MAUA,OARAh/B,KAAAouD,IAAAnvB,IAAAu1H,GAEAA,EAAAzxJ,MACAqL,SAAAwqB,EAAAxqB,WAAA,KACAypB,SAAAe,EAAAf,UAAA,EACAtmB,MAAAqnB,EAAArnB,QAAA,OAEAvR,KAAAqoU,WAAA7zK,EAAAxrH,oBACAhpC,MAEAs8W,UAAA,SAAAh1S,EAAAxZ,GACArvB,EAAAz+B,KAAAi4W,QAAA3wS,EAAAxZ,IAgBAilG,aAAA,SAAAwpN,GACAA,EAAA1iV,EAAAlpB,IAAA4rW,EAAA,SAAA3lL,GACA,OAAA/8J,EAAA82C,MAAA92C,EAAAmQ,MAAA4tU,GAAAhhL,GAAA,KAEA,IAAA4lL,EAAA,kBACAC,EAAAz8W,KAAAi4W,QACAyE,EAAA18W,KAAAi4W,WACA5tT,EAAArqD,KACA24W,EAAA34W,KAAAk4W,eAEA,OADA,IAAA3sS,EAAAkxS,EAAAF,EAOA,SAAAhE,EAAA3rW,GACA,OAAA+vW,EAAApE,EAAAE,cAAA7rW,IARA+vW,GAAA19U,IAAA29U,GAAArgU,OAAAqgU,GAAAn4W,OAuBA,SAAAqgU,GACA23C,EAAA33C,KAAA6zC,GACAtuT,EAAArrB,MAAAv6B,OAAAg4W,EAAA33C,MAzBA39P,UACAnnE,KAEA,SAAA28W,EAAA/lL,EAAAhqL,GACA,aAAAgqL,EAAAl1L,GAAAk1L,EAAAl1L,GAAA86W,EAAA5vW,GAAA,IAAAgqL,EAAAhkC,UAOA,SAAAgqN,EAAA/3C,EAAAC,GACA,IAAA+3C,EAAAN,EAAA13C,GAGA,SAAAC,GAAA23C,EAAA33C,KAAA6zC,EACA+D,EAAA73C,GAAA43C,EAAA33C,OACO,CACP,IAAAyzC,EAAAmE,EAAA73C,GAAA,MAAAC,GAAA23C,EAAA33C,GAAA2zC,cAAAoE,EAAAJ,EAAA33C,IAAA4zC,EAAAruT,EAAAiuT,EAAAjuT,EAAAwyT,IACA9D,EAAA1uT,EAAAkuT,MAUA5pJ,QAAA,WAOA,OANA3uN,KAAA2yJ,aAAA,GAEA0mN,EAAAr5W,MAEAA,KAAAouD,IAAA3pD,OAAAzE,KAAAg/B,OAEAh/B,MAEA+E,QAAA,WACA/E,KAAA2uN,UACA3uN,KAAAqwD,QAGAx2B,EAAA8N,MAAAkpH,EAAAllG,GAgaA,IAAA0sT,GACA78M,UAAA,SAAAr3J,GACA,GAAAnE,KAAAm0J,UAGA2oN,EAAApxW,KAAA1L,KAAAmE,QACK,IAAAA,EAAA5D,SAAA4D,EAAA5D,OAAA02J,UAAA,CACL06B,EAAAxtL,GACA,IAAAsyM,EAAAz2M,KAAAg/B,MAAAmmL,sBAAAhhN,EAAAG,QAAAH,EAAAK,SACAxE,KAAAk4W,eAAA,MACAl4W,KAAAm4W,eAAAa,EAAAh5W,KAAAmE,EAAAsyM,MAGAz2M,KAAAm0J,WAAA,EACAn0J,KAAAg4W,QAAAvhK,EAAAn0M,YAIAo5J,UAAA,SAAAv3J,GACA,IAAAsyM,EAAAz2M,KAAAg/B,MAAAmmL,sBAAAhhN,EAAAG,QAAAH,EAAAK,SAGA,GAlHA,SAAA6lD,EAAAlmD,EAAAsyM,GAEA,GAAApsJ,EAAAgrT,WAAA,CAIA,IAAA30W,EAAA2pD,EAAA+D,IACAkrT,EAAAjvT,EAAA4tT,QACA8E,EAAA/D,EAAA3uT,EAAAlmD,EAAAsyM,GAEA,IAAApsJ,EAAA8pG,UACA,QAAApzJ,EAAA,EAAmBA,EAAAu4W,EAAAr4W,OAAmBF,IAAA,CACtC,IAAA61L,EAAA0iL,EAAAv4W,GAAA03W,cAEA,GAAAsE,KAAA,IAAAA,GAAAnmL,EAAAvkC,UAAA0qN,EAAA1qN,UAAAmmN,EAAA5hL,EAAAhkC,WAAAloH,QAAA4uU,EAAAv4W,GAAA01M,EAAA,GAAAA,EAAA,IAEA,OAKAsmK,GAAAr8W,EAAAw/T,eAAA,cA2FA88C,CAAAh9W,KAAAmE,EAAAsyM,GAEAz2M,KAAAm0J,UAAA,CACAw9B,EAAAxtL,GACA,IAAA23W,EAAAD,EAAA77W,KAAAmE,EAAAsyM,GAAA,GACAqlK,GAAA7pW,EAAAjS,KAAA87W,KAGAlgN,QAAAkhN,GAOA,SAAAA,EAAA34W,GACA,GAAAnE,KAAAm0J,UAAA,CACAw9B,EAAAxtL,GACA,IACA23W,EAAAD,EAAA77W,KAAAmE,EADAnE,KAAAg/B,MAAAmmL,sBAAAhhN,EAAAG,QAAAH,EAAAK,UACA,GACAxE,KAAAm0J,WAAA,EACAn0J,KAAAg4W,UACAh4W,KAAAk4W,eAAA,KAEA4D,GAAA7pW,EAAAjS,KAAA87W,IASA,IAAAtD,GACAtpJ,MAAA+tJ,EAAA,GACA9tJ,MAAA8tJ,EAAA,GACA/0U,MACAowU,YAAA,SAAAjuT,EAAAusI,GACA,OAAA6iL,EAAAlvU,EAAAywU,EAAA,SAAA56P,GACA,OAAAA,GACO,SAAAA,GACP,OAAAA,IACO/1D,EAAAusI,GAAA,uCAEPslL,iBAAA,SAAAgB,GACA,IAAAj7T,EAAAu3T,EAAA0D,GACA,OAAAnC,EAAA94T,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,QAEA62T,iBAAA,SAAAzuT,EAAAkuT,EAAAuB,EAAAljL,GACAijL,EAAAxvT,EAAAkuT,EAAAuB,EAAAljL,IAEAm5I,eACArlS,QAAAkxU,GAEA97U,SACAw4U,YAAA,SAAAjuT,EAAAusI,GACA,IAAA2hL,EAAA,IAAA/9V,EAAAskB,MAQA,OALAy5U,EAAAt5U,IAAA,IAAAzkB,EAAA2f,UACAv3B,KAAA,OACA2V,MAAAqhW,EAAAhjL,GACAzyJ,QAAA,KAEAo0U,GAEA2D,iBAAA,SAAAgB,GACA,OAAAA,GAEAxE,YAAA,SAAAruT,EAAAkuT,GACAA,EAAA9zW,OAAA8zW,EAAAtzS,QAAA,IAEAszS,EAAAt5U,IAAA,IAAAzkB,EAAA4f,SACAx3B,KAAA,OACAq0J,WAAA,EACAzxC,MAAAj7E,EAAAixU,EAAAnxT,EAAAkuT,GACAphN,UAAA5sH,EAAAt4B,EAAAo4C,GACA8oG,OAAA,QAIA2lN,iBAAA,SAAAzuT,EAAAkuT,EAAAuB,EAAAljL,GACA2hL,EAAAtzS,QAAA,GAAA1jC,UACAnE,OAAA09U,EAAAzwT,EAAAkuT,EAAAuB,MAGA/pC,eACArlS,QAAAkxU,IAIA,SAAAqB,EAAA3mK,GACA,OACAgiK,YAAA,SAAAjuT,EAAAusI,GACA,OAAA6iL,EAAAlvU,EAAAywU,EAAA,SAAA56P,GACA,IAAA+6P,GAAA/6P,GAAA,QAEA,OADAk2F,GAAA6kK,EAAA5zV,UACA4zV,GACO,SAAAA,GACP,OAAAA,EAAA7kK,KACOjsJ,EAAAusI,IAAA,oBAAA0f,KAEP4lK,iBAAA,SAAAgB,GACA,IAAAj7T,EAAAu3T,EAAA0D,GAGA,OAFA/pT,EAAAlR,EAAA,GAAAq0J,GAAAr0J,EAAA,GAAAq0J,IACA3qK,EAAAsW,EAAA,GAAAq0J,GAAAr0J,EAAA,GAAAq0J,MAGAwiK,iBAAA,SAAAzuT,EAAAkuT,EAAAuB,EAAAljL,GACA,IAAApgK,EAEAyiV,EAAAG,EAAA/uT,EAAAkuT,GAEA,QAAAU,KAAAxmN,0BACAj8H,EAAAyiV,EAAAxmN,0BAAA6jD,EAAAjsJ,EAAAg+Q,gBACO,CACP,IAAA3nU,EAAA2pD,EAAA+D,IACA53B,GAAA,GAAA91B,EAAAoxD,WAAApxD,EAAAqxD,aAAA,EAAAukJ,IAGA,IAAA6kK,GAAArB,EAAAtjV,GACA8/K,GAAA6kK,EAAA5zV,UACAsyV,EAAAxvT,EAAAkuT,EAAA4C,EAAAvkL,IAEAm5I,eACArlS,QAAAkxU,GAIA,IAAA34W,EAAA4tJ,EACA3tJ,EAAAC,QAAAF,wBCp3BA,IAAA42B,EAAat6B,EAAQ,QAErB2sD,EAAqB3sD,EAAQ,QAE7B8rM,EAAc9rM,EAAQ,QAEtB01L,EAAAoW,EAAApW,gBACAuyH,EAAAn8G,EAAAm8G,eACAnyH,EAAAgW,EAAAhW,iBAoBA8nL,EAAAjxT,EAAAxiD,QACAlG,KAAA,WAKA6qB,iBAAA,KACAqG,eACAC,OAAA,EACAC,EAAA,EACA/uB,KAAA,GACAmM,IAAA,GACAgsM,SAAA,GAEAlhM,OAAA,aAEAvX,WACAF,MAAA,EACAub,WACAza,MAAA,OACA6S,MAAA,EACAxV,KAAA,UAIAgP,WACArM,MAAA,OACAmvB,YAAA,EACAvC,YAAA,QAGAgxS,UACA1+T,MAAA,EAEA85M,SAAA,EAEA/wM,SAAA,QACA87D,OAAA,MAEAkmI,QAAA,KACAjqM,MAAA,QAGAs9T,YACAp+T,MAAA,EAEA+I,SAAA,QACA87D,OAAA,EAEAvxC,MAAA,SAEAy3K,QAAA,KACAxiM,UAAA,KACAzH,MAAA,QAGA+8T,WACA79T,MAAA,EAEA+I,SAAA,KACA87D,OAAA,GACAt8D,UAAA,KACAzH,MAAA,OACA2vC,WAAA,aACAG,WAAA,SACApgB,SAAA,KAOArX,KAAA,SAAAvB,EAAA6oK,EAAAniL,EAAAmxL,GACA,IAAAE,EAAAC,EAAAh4K,GACAkgW,EAAAv4W,WAAA5E,KAAA,OAAA8E,WACAmhT,EAAAhpS,EAAA+3K,IAMA5P,YAAA,SAAAnoK,EAAA63K,GACAqoL,EAAAv4W,WAAA5E,KAAA,cAAA8E,WACAmhT,EAAAjmT,KAAAid,aAIA,SAAAgpS,EAAA1lT,EAAAgkP,GAEA,IAAAvmC,EAAAz9M,EAAAy9M,SAEAnkL,EAAA/tB,QAAAkyM,GAEG,IAAAA,EAAA/8M,SACH+8M,EAAA,GAAAA,EAAA,IAFAA,EAAAz9M,EAAAy9M,eAKA,IAAAqc,EAAAxgM,EAAAlpB,KAAA,cAAA82S,GAQA,OAJAD,EAAAjjE,EAAAkjE,KACAzpG,EAAAypG,GAAA,QAGA,MAAAzpG,EAAAypG,IAAA,SAAAzpG,EAAAypG,KAEApyH,EAAA90L,EAAAgkP,GACA/gP,KAAA,MACA62N,eAIA,IAAAp3N,EAAAk6W,EACAj6W,EAAAC,QAAAF,wBC9IA1D,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,8BCNR,IAAAmzL,EAAWnzL,EAAQ,QA+DnB4D,EAAA0kE,eA3CA,SAAArsC,GACA,IAAAH,EAAAG,EAAAnN,iBAEA,IAAAgN,GAAA,SAAAA,EAAA73B,KAAA,CAIA,IAAA0kC,EAAA7M,EAAAyM,kBACAy9I,EAAA/pJ,EAAAtP,UACAgjJ,EAAAqW,EAAArW,MACA5hI,EAAA,EACAhpB,EAAAihK,EAAAisB,OAAA,SACA4rK,EAAA,EAAAr1W,KAAAgwB,IAAAzT,GAAAihK,EAAAhjL,SACAgV,EAAA2wB,EAAAlvB,MAAA,EAAAkvB,EAAA7jC,EACAmT,EAAA0wB,EAAAjvB,OAAA,EAAAivB,EAAA3jC,EACAkT,EAAA1P,KAAAC,IAAAkgC,EAAAlvB,MAAAkvB,EAAAjvB,QAAA,EACAi2J,EAAA+Z,SAAA,SAAA/vH,GACA,IAAA3xD,EAAA2xD,EAAAuwH,SAAA,SACAn8I,GAAA8vU,GAAA94V,EAAA/c,EAAA,KACA2xD,EAAAwwH,WAAAjyK,EAAA1P,KAAA0jC,IAAA6B,GAAA/1B,EAAAE,EAAA1P,KAAA2jC,IAAA4B,GAAA91B,IACA81B,GAAA8vU,GAAA94V,EAAA/c,EAAA,OAEAg+K,EAAAmE,WACAnyK,KACAC,OAEA03J,EAAAogE,SAAA,SAAA3oD,GACA,IAGAsN,EAHAhM,EAAAtB,EAAAtnJ,WAAAr7B,IAAA,0BACA42B,EAAA83J,EAAA1oJ,MAAA28I,EAAAG,MAAA8C,aACA/uJ,EAAA63J,EAAA1oJ,MAAA28I,EAAAK,MAAA4C,aAEAyzL,GAAAziV,EAAA,GAAAC,EAAA,MACAyiV,GAAA1iV,EAAA,GAAAC,EAAA,OAEAotJ,IAEAgM,GAAA18K,GADA0wK,GAAA,GACAo1L,GAAA,EAAAp1L,GAAAzwK,EAAAywK,EAAAq1L,GAAA,EAAAr1L,KAGAtB,EAAA+C,WAAA9uJ,EAAAC,EAAAo5J,2CCzDA9wL,EAAAiuE,YAAA,EACAjuE,EAAA4V,SACAtY,IACA88W,aACAC,QAAA,KACAp4T,MAAA,MAEAq4T,YACA/tW,IAAA,KACAyyJ,MAAA,KACAliG,OAAA,KACA7a,MAAA,KACAo4T,QAAA,KACAE,WAAA,OACAC,WAAA,OACAC,UAAA,OACA1sT,UAAA,OACA2sT,QAAA,OACAvzQ,QAAA,OACAwzQ,SAAA,MACAC,SAAA,MACAC,UAAA,MACAC,UAAA,MACAt9M,KAAA,IACAu9M,OAAA,MACAC,OAAA,MACAC,OAAA,MACAC,OAAA,MACAC,OAAA,MACAC,OAAA,MACAC,OAAA,MACAC,OAAA,MACAC,OAAA,MACAC,QAAA,OACAC,QAAA,OACAC,QAAA,OAEA/gK,OACAghK,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,IACAC,IAAA,KAEAC,QACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,KACAC,IAAA,MACAC,IAAA,QAGAn9L,QACAnqK,QAAA,MACAunW,QAAA,QACAC,OAAA,MACAn4I,YAAA,OAEAo4I,UACAF,QAAA,QACAvnW,QAAA,MACAqvN,YAAA,OAEAq4I,YACAC,KAAA,KACAC,SAAA,MACAntP,MAAA,cACAotP,eAAA,KAEAC,YACAvmW,MAAA,KACAsjW,QAAA,KACAv9S,OAAA,KACA8a,MAAA,aAEA2lS,QACAC,UAAA,gBACA17T,OAAA,KACA27T,QAAA,OACAC,SAAA,QAEAC,OACAriE,UAAA,OACAsiE,cAAA,KACAC,YAAA,KACAC,YAAA,KACAC,QAAA,MAEAt2L,MACA6zH,UAAA,QAEA0iE,UACAjB,QAAA,QACAC,OAAA,MACA76C,QAAA,eACA87C,kBAAA,UACAC,gBAAA,cACAC,iBAAA,kDC5GA,IAAAn8T,EAAU5lD,EAAQ,QAClB27K,EAAgB37K,EAAQ,QACxBgiX,EAAmBhiX,EAAQ,OAARA,EAA2B,GAC9C6gE,EAAe7gE,EAAQ,OAARA,CAAuB,YAEtC2D,EAAAC,QAAA,SAAAkuE,EAAA88M,GACA,IAGApkR,EAHAw2D,EAAA26G,EAAA7pG,GACAtwE,EAAA,EACAgQ,KAEA,IAAAhH,KAAAw2D,EAAAx2D,GAAAq2D,GAAAjb,EAAAob,EAAAx2D,IAAAgH,EAAAxP,KAAAwI,GAEA,KAAAokR,EAAAltR,OAAAF,GAAAokD,EAAAob,EAAAx2D,EAAAokR,EAAAptR,SACAwgX,EAAAxwW,EAAAhH,IAAAgH,EAAAxP,KAAAwI,IAEA,OAAAgH,uBCTA,IAAAywW,EAAA31W,MAAA3L,UAAAoC,MAOAqpD,EAAA,WACA3rD,KAAAyhX,eAGA91T,EAAAzrD,WACAC,YAAAwrD,EASA2E,IAAA,SAAAiH,EAAA97C,EAAAqyC,GACA,IAAA92C,EAAAhX,KAAAyhX,WAEA,IAAAhmW,IAAA87C,EACA,OAAAv3D,KAGAgX,EAAAugD,KACAvgD,EAAAugD,OAGA,QAAAx2D,EAAA,EAAmBA,EAAAiW,EAAAugD,GAAAt2D,OAAsBF,IACzC,GAAAiW,EAAAugD,GAAAx2D,GAAAkX,IAAAwD,EACA,OAAAzb,KAUA,OANAgX,EAAAugD,GAAAh2D,MACA0W,EAAAwD,EACA60C,KAAA,EACAzqB,IAAAioB,GAAA9tD,OAGAA,MASA0f,GAAA,SAAA63C,EAAA97C,EAAAqyC,GACA,IAAA92C,EAAAhX,KAAAyhX,WAEA,IAAAhmW,IAAA87C,EACA,OAAAv3D,KAGAgX,EAAAugD,KACAvgD,EAAAugD,OAGA,QAAAx2D,EAAA,EAAmBA,EAAAiW,EAAAugD,GAAAt2D,OAAsBF,IACzC,GAAAiW,EAAAugD,GAAAx2D,GAAAkX,IAAAwD,EACA,OAAAzb,KAUA,OANAgX,EAAAugD,GAAAh2D,MACA0W,EAAAwD,EACA60C,KAAA,EACAzqB,IAAAioB,GAAA9tD,OAGAA,MAQAw/T,SAAA,SAAAjoQ,GACA,IAAAvgD,EAAAhX,KAAAyhX,WACA,OAAAzqW,EAAAugD,IAAAvgD,EAAAugD,GAAAt2D,QAQAovD,IAAA,SAAAkH,EAAA97C,GACA,IAAAzE,EAAAhX,KAAAyhX,WAEA,IAAAlqT,EAEA,OADAv3D,KAAAyhX,cACAzhX,KAGA,GAAAyb,EAAA,CACA,GAAAzE,EAAAugD,GAAA,CAGA,IAFA,IAAA4hK,KAEAp4N,EAAA,EAAAC,EAAAgW,EAAAugD,GAAAt2D,OAA6CF,EAAAC,EAAOD,IACpDiW,EAAAugD,GAAAx2D,GAAA,GAAA0a,GACA09M,EAAA53N,KAAAyV,EAAAugD,GAAAx2D,IAIAiW,EAAAugD,GAAA4hK,EAGAniN,EAAAugD,IAAA,IAAAvgD,EAAAugD,GAAAt2D,eACA+V,EAAAugD,eAGAvgD,EAAAugD,GAGA,OAAAv3D,MAQAiS,QAAA,SAAAzO,GACA,GAAAxD,KAAAyhX,WAAAj+W,GAAA,CACA,IAAA4I,EAAAtH,UACAg0V,EAAA1sV,EAAAnL,OAEA63V,EAAA,IACA1sV,EAAAo1W,EAAA91W,KAAAU,EAAA,IAMA,IAHA,IAAA4K,EAAAhX,KAAAyhX,WAAAj+W,GACA3B,EAAAmV,EAAA/V,OAEAF,EAAA,EAAqBA,EAAAc,GAAS,CAE9B,OAAAi3V,GACA,OACA9hV,EAAAjW,GAAA,EAAA2K,KAAAsL,EAAAjW,GAAA,KAEA,MAEA,OACAiW,EAAAjW,GAAA,EAAA2K,KAAAsL,EAAAjW,GAAA,IAAAqL,EAAA,IAEA,MAEA,OACA4K,EAAAjW,GAAA,EAAA2K,KAAAsL,EAAAjW,GAAA,IAAAqL,EAAA,GAAAA,EAAA,IAEA,MAEA,QAEA4K,EAAAjW,GAAA,EAAAwL,MAAAyK,EAAAjW,GAAA,IAAAqL,GAKA4K,EAAAjW,GAAA,KACAiW,EAAA1V,OAAAP,EAAA,GAEAc,KAEAd,KAKA,OAAAf,MAOA0hX,mBAAA,SAAAl+W,GACA,GAAAxD,KAAAyhX,WAAAj+W,GAAA,CACA,IAAA4I,EAAAtH,UACAg0V,EAAA1sV,EAAAnL,OAEA63V,EAAA,IACA1sV,EAAAo1W,EAAA91W,KAAAU,EAAA,EAAAA,EAAAnL,OAAA,IAOA,IAJA,IAAA4kC,EAAAz5B,IAAAnL,OAAA,GACA+V,EAAAhX,KAAAyhX,WAAAj+W,GACA3B,EAAAmV,EAAA/V,OAEAF,EAAA,EAAqBA,EAAAc,GAAS,CAE9B,OAAAi3V,GACA,OACA9hV,EAAAjW,GAAA,EAAA2K,KAAAm6B,GAEA,MAEA,OACA7uB,EAAAjW,GAAA,EAAA2K,KAAAm6B,EAAAz5B,EAAA,IAEA,MAEA,OACA4K,EAAAjW,GAAA,EAAA2K,KAAAm6B,EAAAz5B,EAAA,GAAAA,EAAA,IAEA,MAEA,QAEA4K,EAAAjW,GAAA,EAAAwL,MAAAs5B,EAAAz5B,GAKA4K,EAAAjW,GAAA,KACAiW,EAAA1V,OAAAP,EAAA,GAEAc,KAEAd,KAKA,OAAAf,OAwFA,IAAAiD,EAAA0oD,EACAzoD,EAAAC,QAAAF,wBCvUA,IAAA42B,EAAat6B,EAAQ,QAmErB2D,EAAAC,QA/CA,SAAAQ,GACA,IAAAg+W,KACAh+W,EAAAikM,iBAAA,eAAAkI,GACA,IAAAvlL,EAAAulL,EAAAD,aAEA,IAAAC,EAAAF,oBAAA+xK,EAAAp3V,GAAA,CAIA,IAAAq3V,KACA/nV,EAAA4E,KAAAqxK,EAAA5iB,YAAA,SAAA20L,GACA,IAAAvnW,EAAAunW,EAAAxzV,iBACAvd,EAAA+wW,EAAAjnB,aAEAinB,EAAA79W,IAAA,qBAAAL,EAAAG,aAAA,WACAgN,EAAA2tB,KAAA3tB,EAAA0tB,aAAA,kBAAAj3B,EAAA+4B,GACA,IAAA19B,EAAAkO,EAAAqzD,QAAA7jC,GACAiuG,EAAAj0H,EAAAinR,UAAA3+R,GAIA,GAAA2rI,IAAA9jI,MAAAlD,GAAA,CAIA,IAAAm7B,EAAAk/U,EAAAh/W,IAAA,EACAynC,EAAA/vB,EAAA2vB,YAAAskG,EAAAzqH,QACA89V,EAAAh/W,GAAA8/B,EAAA,EACA5xB,EAAA64K,cAAArpJ,GACA+J,QACA3H,gBAMA,IAAA5xB,EAAAg/L,EAAA5jL,UACApb,EAAA2tB,KAAA,SAAA6B,GACA,IAAA19B,EAAAkO,EAAAqzD,QAAA7jC,GACAhJ,EAAAxmB,EAAA0uB,cAAAc,OACAhJ,EAAAoiL,WAAAkoK,EAAAh/W,GACAkO,EAAA64K,cAAArpJ,EAAAhJ,KAEAqqV,EAAAp3V,IAAA,wIC7DAu3V,EAAA,WAEOC,EAAA,aAeA,SAAAr5W,IACP,QAAAiX,EAAA7a,UAAA7D,OAAAmL,EAAAP,MAAA8T,GAAAhC,EAAA,EAAiEA,EAAAgC,EAAahC,IAC9EvR,EAAAuR,GAAA7Y,UAAA6Y,GAGA,IAAA5c,EAAA,EACAiiD,EAAA52C,EAAA,GACAvK,EAAAuK,EAAAnL,OACA,sBAAA+hD,EACA,OAAAA,EAAAz2C,MAAA,KAAAH,EAAA9J,MAAA,IAEA,oBAAA0gD,EAAA,CAwBA,IAvBA,IAAA3S,EAAAl/B,OAAA6xC,GAAAz6C,QAAAu5W,EAAA,SAAAz9W,GACA,UAAAA,EACA,UAEA,GAAAtD,GAAAc,EACA,OAAAwC,EAEA,OAAAA,GACA,SACA,OAAA8M,OAAA/E,EAAArL,MACA,SACA,OAAAga,OAAA3O,EAAArL,MACA,SACA,IACA,OAAAmM,KAAAE,UAAAhB,EAAArL,MACW,MAAAod,GACX,mBAEA,MACA,QACA,OAAA9Z,KAGA6gF,EAAA94E,EAAArL,GAA2BA,EAAAc,EAASqjF,EAAA94E,IAAArL,GACpCsvC,GAAA,IAAA60C,EAEA,OAAA70C,EAEA,OAAA2S,EAOO,SAAAg/T,EAAAz6W,EAAA/D,GACP,YAAAkK,IAAAnG,GAAA,OAAAA,MAGA,UAAA/D,IAAAqI,MAAAC,QAAAvE,MAAAtG,YARA,SAAAuC,GACA,iBAAAA,GAAA,QAAAA,GAAA,QAAAA,GAAA,UAAAA,GAAA,YAAAA,EAUAy+W,CAAAz+W,IAAA,iBAAA+D,OA4BA,SAAA26W,EAAAt2W,EAAA0tD,EAAAn3D,GACA,IAAAyK,EAAA,EACAu1W,EAAAv2W,EAAA3K,QAEA,SAAAwjC,EAAAwmD,GACA,GAAAA,KAAAhqF,OACAkB,EAAA8oF,OADA,CAIA,IAAA2iF,EAAAhhK,EACAA,GAAA,EACAghK,EAAAu0M,EACA7oT,EAAA1tD,EAAAgiK,GAAAnpI,GAEAtiC,OAIAsiC,KAWO,SAAA29U,EAAAC,EAAAplW,EAAAq8C,EAAAn3D,GACP,GAAA8a,EAAAwqL,MAEA,OAAAy6K,EAXA,SAAAG,GACA,IAAA1rS,KAIA,OAHA/sE,OAAAC,KAAAw4W,GAAAv4W,QAAA,SAAA2e,GACAkuD,EAAAp1E,KAAAgL,MAAAoqE,EAAA0rS,EAAA55V,MAEAkuD,EAKA2rS,CAAAD,GACA/oT,EAAAn3D,GAEA,IAAAogX,EAAAtlW,EAAAslW,iBACA,IAAAA,IACAA,EAAA34W,OAAAC,KAAAw4W,IAEA,IAAAG,EAAA54W,OAAAC,KAAAw4W,GACAI,EAAAD,EAAAvhX,OACAmyH,EAAA,EACArlC,KACAtpD,EAAA,SAAAwmD,GACA8C,EAAAxsF,KAAAgL,MAAAwhF,EAAA9C,KACAmoC,IACAqvP,GACAtgX,EAAA4rF,IAGAy0R,EAAA14W,QAAA,SAAAC,GACA,IAAA6B,EAAAy2W,EAAAt4W,IACA,IAAAw4W,EAAAziX,QAAAiK,GACAm4W,EAAAt2W,EAAA0tD,EAAA70B,GAtEA,SAAA74B,EAAA0tD,EAAAn3D,GACA,IAAA4rF,KACAqlC,EAAA,EACA+uP,EAAAv2W,EAAA3K,OAEA,SAAAsB,EAAA0oF,GACA8C,EAAAxsF,KAAAgL,MAAAwhF,EAAA9C,KACAmoC,IACA+uP,GACAhgX,EAAA4rF,GAIAniF,EAAA9B,QAAA,SAAAyL,GACA+jD,EAAA/jD,EAAAhT,KA0DAmgX,CAAA92W,EAAA0tD,EAAA70B,KAKO,SAAAk+U,EAAAC,GACP,gBAAAz0N,GACA,OAAAA,KAAAruF,SACAquF,EAAAvQ,MAAAuQ,EAAAvQ,OAAAglO,EAAAC,UACA10N,IAGAruF,QAAAquF,EACAvQ,MAAAuQ,EAAAvQ,OAAAglO,EAAAC,YAKO,SAAAC,EAAAviX,EAAAkC,GACP,GAAAA,EACA,QAAA0V,KAAA1V,EACA,GAAAA,EAAAI,eAAAsV,GAAA,CACA,IAAA5Q,EAAA9E,EAAA0V,GACiE,iBAAjE,IAAA5Q,EAAA,YAA0Dw7W,IAAOx7W,KAAgC,WAAPw7W,IAAOxiX,EAAA4X,IACjG5X,EAAA4X,GAAsB6qW,OAAWziX,EAAA4X,GAAA5Q,GAEjChH,EAAA4X,GAAA5Q,EAKA,OAAAhH,ECvKe,IAAA0iX,EANf,SAAAL,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,EAAAjF,IACAo/W,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,SAA8DokO,EAAiBz6W,EAAA/D,GAAAo/W,EAAAp/W,OAC/EynF,EAAA1pF,KAAgBmH,EAAWD,EAAAy6W,SAAAngN,SAAA6/M,EAAAC,aCIZ,IAAAM,EANf,SAAAP,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,IACA,QAAAkzD,KAAAp0D,IAAA,KAAAA,IACA0jF,EAAA1pF,KAAgBmH,EAAWD,EAAAy6W,SAAAE,WAAAR,EAAAC,aCT3BrrH,GAEA6rH,MAAA,yJACAl1W,IAAA,IAAA7F,OAAA,iZAAyY,KACzYg7W,IAAA,kCAGA3jR,GACAouC,QAAA,SAAAxmI,GACA,OAAAo4F,EAAA4zG,OAAAhsM,IAAAqyE,SAAAryE,EAAA,MAAAA,GAEA0wR,MAAA,SAAA1wR,GACA,OAAAo4F,EAAA4zG,OAAAhsM,KAAAo4F,EAAAouC,QAAAxmI,IAEA63D,MAAA,SAAA73D,GACA,OAAAsE,MAAAC,QAAAvE,IAEAgD,OAAA,SAAAhD,GACA,GAAAA,aAAAe,OACA,SAEA,IACA,YAAAA,OAAAf,GACK,MAAApD,GACL,WAGA+9J,KAAA,SAAA36J,GACA,yBAAAA,EAAAs6J,SAAA,mBAAAt6J,EAAA43J,UAAA,mBAAA53J,EAAAg8W,SAEAhwK,OAAA,SAAAhsM,GACA,OAAAkD,MAAAlD,IAGA,iBAAAA,GAEA8pE,OAAA,SAAA9pE,GACA,MAAgE,iBAAhE,IAAAA,EAAA,YAAyDw7W,IAAOx7W,MAAAo4F,EAAAvgC,MAAA73D,IAEhEmnC,OAAA,SAAAnnC,GACA,yBAAAA,GAEA87W,MAAA,SAAA97W,GACA,uBAAAA,OAAA4B,MAAAquP,EAAA6rH,QAAA97W,EAAAtG,OAAA,KAEAkN,IAAA,SAAA5G,GACA,uBAAAA,OAAA4B,MAAAquP,EAAArpP,MAEAm1W,IAAA,SAAA/7W,GACA,uBAAAA,OAAA4B,MAAAquP,EAAA8rH,OCEe,ICxDfE,EAAA,OC+Be,ICzBfC,GACA1gN,SAAYkgN,EACZG,WAAcD,EACd3/W,KJ4DA,SAAao/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACb,GAAAm6W,EAAA7/M,eAAAr1J,IAAAnG,EACI07W,EAAQL,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,OADZ,CAIA,IACAi7W,EAAAd,EAAAp/W,MADA,0FAEA1D,QAAA4jX,IAAA,EACA/jR,EAAA+jR,GAAAn8W,IACA0jF,EAAA1pF,KAAkBmH,EAAWD,EAAAy6W,SAAAvjR,MAAA+jR,GAAAd,EAAAC,UAAAD,EAAAp/W,OAG1BkgX,SAAA,IAAAn8W,EAAA,YAAoEw7W,IAAOx7W,MAAAq7W,EAAAp/W,MAC9EynF,EAAA1pF,KAAgBmH,EAAWD,EAAAy6W,SAAAvjR,MAAA+jR,GAAAd,EAAAC,UAAAD,EAAAp/W,SIxE3B48G,MHEA,SAAAwiQ,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACA,IAAA5G,EAAA,iBAAA+gX,EAAA/gX,IACAmG,EAAA,iBAAA46W,EAAA56W,IACAC,EAAA,iBAAA26W,EAAA36W,IAGAsF,EAAAhG,EACAwC,EAAA,KACA2kB,EAAA,iBAAAnnB,EACA8oC,EAAA,iBAAA9oC,EACAqE,EAAAC,MAAAC,QAAAvE,GAWA,GAVAmnB,EACA3kB,EAAA,SACGsmC,EACHtmC,EAAA,SACG6B,IACH7B,EAAA,UAKAA,EACA,SAEA6B,IACA2B,EAAAhG,EAAAtG,QAEAovC,IAEA9iC,EAAAhG,EAAAgB,QAxBA,kCAwBA,KAAAtH,QAEAY,EACA0L,IAAAq1W,EAAA/gX,KACAopF,EAAA1pF,KAAkBmH,EAAWD,EAAAy6W,SAAAn5W,GAAAlI,IAAA+gX,EAAAC,UAAAD,EAAA/gX,MAE1BmG,IAAAC,GAAAsF,EAAAq1W,EAAA56W,IACHijF,EAAA1pF,KAAgBmH,EAAWD,EAAAy6W,SAAAn5W,GAAA/B,IAAA46W,EAAAC,UAAAD,EAAA56W,MACxBC,IAAAD,GAAAuF,EAAAq1W,EAAA36W,IACHgjF,EAAA1pF,KAAgBmH,EAAWD,EAAAy6W,SAAAn5W,GAAA9B,IAAA26W,EAAAC,UAAAD,EAAA36W,MACxBD,GAAAC,IAAAsF,EAAAq1W,EAAA56W,KAAAuF,EAAAq1W,EAAA36W,MACHgjF,EAAA1pF,KAAgBmH,EAAWD,EAAAy6W,SAAAn5W,GAAAq2G,MAAAwiQ,EAAAC,UAAAD,EAAA56W,IAAA46W,EAAA36W,OGzC3B07W,KFEA,SAAAf,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACAm6W,EAAAY,GAAA33W,MAAAC,QAAA82W,EAAAY,IAAAZ,EAAAY,OACA,IAAAZ,EAAAY,GAAA1jX,QAAAyH,IACA0jF,EAAA1pF,KAAgBmH,EAAWD,EAAAy6W,SAAAM,GAAAZ,EAAAC,UAAAD,EAAAY,GAAAp9W,KAAA,SEJ3BoxP,QDAA,SAAgBorH,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GAChBm6W,EAAAprH,UACAorH,EAAAprH,mBAAAlvP,QAIAs6W,EAAAprH,QAAAnnJ,UAAA,EACAuyQ,EAAAprH,QAAA77L,KAAAp0D,IACA0jF,EAAA1pF,KAAoBmH,EAAWD,EAAAy6W,SAAA1rH,QAAAosH,SAAAhB,EAAAC,UAAAt7W,EAAAq7W,EAAAprH,WAE1B,iBAAAorH,EAAAprH,UACL,IAAAlvP,OAAAs6W,EAAAprH,SACA77L,KAAAp0D,IACA0jF,EAAA1pF,KAAoBmH,EAAWD,EAAAy6W,SAAA1rH,QAAAosH,SAAAhB,EAAAC,UAAAt7W,EAAAq7W,EAAAprH,cEEhB,IC1BXqsH,EAAI,OCiBO,IAAAC,EAhBf,SAAalB,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACb,IAAAi7W,EAAAd,EAAAp/W,KACAynF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,EAAAm8W,KAAAd,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,EAAAi7W,GACA1B,EAAYz6W,EAAAm8W,IACfD,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GAGXtG,EAAA8oF,ICDe84R,GACf1sU,OCHA,SAAAurU,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACA,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,EAAA,YAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,EAAA,UACAu5W,EAAYz6W,EAAA,YACfk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACLg7W,EAAKrjQ,MAAAwiQ,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACLg7W,EAAKjsH,QAAAorH,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,IACX,IAAAm6W,EAAAQ,YACQK,EAAKL,WAAAR,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,IAIbtG,EAAA8oF,IDbAv8C,OEJA,SAAAk0U,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACA,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,QACTiF,IAAAnG,GACMk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GAGXtG,EAAA8oF,IFPAsoH,OGLA,SAAAqvK,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACA,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,QACTiF,IAAAnG,IACMk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACLg7W,EAAKrjQ,MAAAwiQ,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,IAGXtG,EAAA8oF,IHPA+4R,QINA,SAAgBpB,EAAAr7W,EAAApF,EAAAM,EAAAgG,GAChB,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,QACTiF,IAAAnG,GACMk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GAGXtG,EAAA8oF,IJLA1gF,OKPA,SAAAq4W,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACA,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACAu5W,EAAYz6W,IACfk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GAGXtG,EAAA8oF,ILJA8iD,QMRA,SAAA60O,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACA,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,QACTiF,IAAAnG,IACMk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACLg7W,EAAKrjQ,MAAAwiQ,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,IAGXtG,EAAA8oF,INJAgtM,MOTA,SAAA2qF,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACA,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,QACTiF,IAAAnG,IACMk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACLg7W,EAAKrjQ,MAAAwiQ,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,IAGXtG,EAAA8oF,IPHA7rB,MQXA,SAAAwjT,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACA,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,EAAA,WAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,EAAA,SACAu5W,EAAYz6W,EAAA,WACfk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACLg7W,EAAKrjQ,MAAAwiQ,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,IAGXtG,EAAA8oF,IRDA5Z,OHXA,SAAeuxS,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACf,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,QACTiF,IAAAnG,GACMk8W,EAAKjgX,KAAAo/W,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GAGXtG,EAAA8oF,IGAA04R,KFXA,SAAmBf,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACnB,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACTlB,GACMk8W,EAAMI,GAAIjB,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GAGhBtG,EAAA8oF,IEAAusK,QSVA,SAAgBorH,EAAAr7W,EAAApF,EAAAM,EAAAgG,GAChB,IAAAwiF,KAEA,GADA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OACA,CACA,GAAQokO,EAAYz6W,EAAA,YAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAEIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GACAu5W,EAAYz6W,EAAA,WACfk8W,EAAKjsH,QAAAorH,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,GAGXtG,EAAA8oF,ITDAi3E,KUxBA,SAAA0gN,EAAAr7W,EAAApF,EAAAM,EAAAgG,GAEA,IAAAwiF,KAGA,GAFA23R,EAAA7/M,WAAA6/M,EAAA7/M,UAAAtgK,EAAAI,eAAA+/W,EAAAhlO,OAEA,CACA,GAAQokO,EAAYz6W,KAAAq7W,EAAA7/M,SACpB,OAAA5gK,IAGA,GADIshX,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,IACAu5W,EAAYz6W,GAAA,CACrB,IAAA08W,OAAA,EAGAA,EADA,iBAAA18W,EACA,IAAAkI,KAAAlI,GAEAA,EAGMk8W,EAAKjgX,KAAAo/W,EAAAqB,EAAAxhX,EAAAwoF,EAAAxiF,GACXw7W,GACQR,EAAKrjQ,MAAAwiQ,EAAAqB,EAAApiN,UAAAp/J,EAAAwoF,EAAAxiF,IAIbtG,EAAA8oF,IVAA98E,IAAO21W,EACPR,IAAOQ,EACPT,MAASS,EACT/gN,SW5BA,SAAiB6/M,EAAAr7W,EAAApF,EAAAM,EAAAgG,GACjB,IAAAwiF,KACAznF,EAAAqI,MAAAC,QAAAvE,GAAA,iBAAAA,EAAA,YAA2Fw7W,IAAOx7W,GAChGk8W,EAAK1gN,SAAA6/M,EAAAr7W,EAAA9E,EAAAwoF,EAAAxiF,EAAAjF,GACPrB,EAAA8oF,KCPO,SAAAi5R,IACP,OACAnrW,QAAA,+BACAgqJ,SAAA,iBACA4gN,KAAA,uBACAP,WAAA,qBACAlhN,MACAx5J,OAAA,sCACAyE,MAAA,8CACAg3W,QAAA,yBAEAxkR,OACAtoD,OAAA,iBACA3I,OAAA,4BACA0wB,MAAA,kBACAiS,OAAA,kBACAkiI,OAAA,iBACArxC,KAAA,iBACA8hN,QAAA,iBACAj2O,QAAA,kBACAkqJ,MAAA,iBACA1tR,OAAA,uBACA84W,MAAA,uBACAl1W,IAAA,uBACAm1W,IAAA,wBAEAjsU,QACAx1C,IAAA,mCACAmG,IAAA,oCACAC,IAAA,yCACAm4G,MAAA,2CAEAmzF,QACA1xM,IAAA,mBACAmG,IAAA,4BACAC,IAAA,+BACAm4G,MAAA,gCAEAhhD,OACAv9D,IAAA,kCACAmG,IAAA,sCACAC,IAAA,yCACAm4G,MAAA,0CAEAo3I,SACAosH,SAAA,yCAEA55U,MAAA,WACA,IAAAk7M,EAAAh4O,KAAAC,MAAAD,KAAAE,UAAApN,OAEA,OADAklP,EAAAl7M,MAAAhqC,KAAAgqC,MACAk7M,IAKO,IAAIk/H,EAAQF,IC3CnB,SAAAG,EAAAl4Q,GACAnsG,KAAAskX,MAAA,KACAtkX,KAAAukX,UAAmBH,EACnBpkX,KAAAqkV,OAAAl4O,GAGAk4Q,EAAAnkX,WACAgjX,SAAA,SAAAqB,GAIA,OAHAA,IACAvkX,KAAAukX,UAAuBzB,EAAUoB,IAAWK,IAE5CvkX,KAAAukX,WAEAlgC,OAAA,SAAAigC,GACA,IAAAA,EACA,UAAAjlT,MAAA,2CAEA,GAA6D,iBAA7D,IAAAilT,EAAA,YAAsDvB,IAAOuB,KAAAz4W,MAAAC,QAAAw4W,GAC7D,UAAAjlT,MAAA,2BAEAr/D,KAAAskX,SACA,IAAA1vV,OAAA,EACAjoB,OAAA,EACA,IAAAioB,KAAA0vV,EACAA,EAAAzhX,eAAA+xB,KACAjoB,EAAA23W,EAAA1vV,GACA50B,KAAAskX,MAAA1vV,GAAA/oB,MAAAC,QAAAa,WAIA63W,SAAA,SAAAC,GACA,IAAA5nW,EAAA7c,KAEAmxE,EAAArsE,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACA4/W,EAAA5/W,UAAA,GAEArC,EAAAgiX,EACAh8W,EAAA0oE,EACAhvE,EAAAuiX,EAKA,GAJA,mBAAAj8W,IACAtG,EAAAsG,EACAA,MAEAzI,KAAAskX,OAAA,IAAA16W,OAAAC,KAAA7J,KAAAskX,OAAArjX,OAAA,CAoCA,GAAAwH,EAAAy6W,SAAA,CACA,IAAAA,EAAAljX,KAAAkjX,WACAA,IAAuBkB,IACvBlB,EAAmBgB,KAEbpB,EAASI,EAAAz6W,EAAAy6W,UACfz6W,EAAAy6W,gBAEAz6W,EAAAy6W,SAAAljX,KAAAkjX,WAEA,IAAAt3W,OAAA,EACArE,OAAA,EACA+K,MACA7J,EAAAoB,MAAAD,OAAAC,KAAA7J,KAAAskX,QACAx6W,QAAA,SAAA8qB,GACAhpB,EAAAiR,EAAAynW,MAAA1vV,GACArtB,EAAA9E,EAAAmyB,GACAhpB,EAAA9B,QAAA,SAAA2N,GACA,IAAAmrW,EAAAnrW,EACA,mBAAAmrW,EAAA3qV,YACAx1B,IAAAgiX,IACAhiX,EAAqBugX,OAAWvgX,IAEhC8E,EAAA9E,EAAAmyB,GAAAguV,EAAA3qV,UAAA1wB,KAGAq7W,EADA,mBAAAA,GAEA//M,UAAA+/M,GAGiBI,OAAWJ,IAE5B//M,UAAAhmJ,EAAA8nW,oBAAA/B,GACAA,EAAAhlO,MAAAhpH,EACAguV,EAAAC,UAAAD,EAAAC,WAAAjuV,EACAguV,EAAAp/W,KAAAqZ,EAAA/P,QAAA81W,GACAA,EAAA//M,YAGAvwJ,EAAAsiB,GAAAtiB,EAAAsiB,OACAtiB,EAAAsiB,GAAArzB,MACAqhX,OACAr7W,QACA9E,SACAm7I,MAAAhpH,SAIA,IAAAgwV,KACIxC,EAAQ9vW,EAAA7J,EAAA,SAAAqI,EAAA+zW,GACZ,IAAAjC,EAAA9xW,EAAA8xW,KACApnW,IAAA,WAAAonW,EAAAp/W,MAAA,UAAAo/W,EAAAp/W,MAA8E,WAAPu/W,IAAOH,EAAAptL,SAAqC,WAAPutL,IAAOH,EAAAkC,eAGnH,SAAAC,EAAAh7W,EAAAi7W,GACA,OAAehC,OAAWgC,GAC1BnC,UAAAD,EAAAC,UAAA,IAAA94W,IAIA,SAAAu9D,IACA,IAEA2jB,EAFAnmF,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAeA,GAZA+G,MAAAC,QAAAm/E,KACAA,OAEAA,EAAAhqF,QACU8gX,EAAO,mBAAA92R,GAEjBA,EAAAhqF,QAAA2hX,EAAA9iT,UACAmrB,KAAAl2E,OAAA6tW,EAAA9iT,UAGAmrB,IAAAt6E,IAA4BgyW,EAAeC,IAE3Cn6W,EAAAg/L,OAAAx8G,EAAAhqF,OAEA,OADA2jX,EAAAhC,EAAAhlO,OAAA,EACAinO,EAAA55R,GAEA,GAAAzvE,EAES,CAIT,GAAAonW,EAAA7/M,WAAAjyJ,EAAAvJ,MAQA,OANA0jF,EADA23R,EAAA9iT,WACA/qD,OAAA6tW,EAAA9iT,SAAAnvD,IAAmDgyW,EAAeC,IACrDn6W,EAAAsyE,OACbtyE,EAAAsyE,MAAA6nS,EAA4Cl6W,EAAMD,EAAAy6W,SAAAngN,SAAA6/M,EAAAhlO,YAIlDinO,EAAA55R,GAGA,IAAAg6R,KACA,GAAArC,EAAAkC,aACA,QAAAr8V,KAAA3X,EAAAvJ,MACAuJ,EAAAvJ,MAAA1E,eAAA4lB,KACAw8V,EAAAx8V,GAAAm6V,EAAAkC,cAKA,QAAA9hU,KADAiiU,EAAyBjC,OAAWiC,EAAAn0W,EAAA8xW,KAAAptL,QAEpC,GAAAyvL,EAAApiX,eAAAmgD,GAAA,CACA,IAAAkiU,EAAAr5W,MAAAC,QAAAm5W,EAAAjiU,IAAAiiU,EAAAjiU,IAAAiiU,EAAAjiU,IACAiiU,EAAAjiU,GAAAkiU,EAAAv0W,IAAAo0W,EAAAv6W,KAAA,KAAAw4C,IAGA,IAAAgiU,EAAA,IAAAX,EAAAY,GACAD,EAAA9B,SAAAz6W,EAAAy6W,UACApyW,EAAA8xW,KAAAn6W,UACAqI,EAAA8xW,KAAAn6W,QAAAy6W,SAAAz6W,EAAAy6W,SACApyW,EAAA8xW,KAAAn6W,QAAAsyE,MAAAtyE,EAAAsyE,OAEAiqS,EAAAR,SAAA1zW,EAAAvJ,MAAAuJ,EAAA8xW,KAAAn6W,WAAA,SAAA08W,GACAN,EAAAM,KAAAlkX,OAAAgqF,EAAAl2E,OAAAowW,aAtCAN,EAAA55R,GA7BAzvE,MAAAonW,EAAA7/M,WAAA6/M,EAAA7/M,UAAAjyJ,EAAAvJ,OACAq7W,EAAAhlO,MAAA9sI,EAAA8sI,MAuEA,IAAAxuI,EAAAwzW,EAAA//M,UAAA+/M,EAAA9xW,EAAAvJ,MAAA+/D,EAAAx2D,EAAArO,OAAAgG,GACA2G,KAAAD,MACAC,EAAAD,KAAA,WACA,OAAAm4D,KACS,SAAAnjE,GACT,OAAAmjE,EAAAnjE,MAGK,SAAA4pF,IAlKL,SAAAA,GACA,IAKA5pF,EALApD,OAAA,EACA68I,OAAA,EACA3yD,KACAuqG,KAUA,IAAAz0L,EAAA,EAAiBA,EAAAgtF,EAAA9sF,OAAoBF,IARrCoD,EASA4pF,EAAAhtF,GARA8K,MAAAC,QAAA3H,GACA8mF,IAAAl2E,OAAAxI,MAAA0+E,EAAA9mF,GAEA8mF,EAAA1pF,KAAA4C,GAOA,GAAA8mF,EAAAhqF,OAIA,IAAAF,EAAA,EAAmBA,EAAAkqF,EAAAhqF,OAAmBF,IAEtCy0L,EADA53C,EAAA3yD,EAAAlqF,GAAA68I,OACA43C,EAAA53C,OACA43C,EAAA53C,GAAAr8I,KAAA0pF,EAAAlqF,SANAkqF,EAAA,KACAuqG,EAAA,KAQArzL,EAAA8oF,EAAAuqG,GAwIA4vL,CAAAr3R,UAxKA5rF,GACAA,KA0KA2K,QAAA,SAAA81W,GAIA,QAHAl1W,IAAAk1W,EAAAp/W,MAAAo/W,EAAAprH,mBAAAlvP,SACAs6W,EAAAp/W,KAAA,WAEA,mBAAAo/W,EAAA//M,WAAA+/M,EAAAp/W,OAA8DugX,EAAUlhX,eAAA+/W,EAAAp/W,MACxE,UAAA67D,MAAsB32D,EAAM,uBAAAk6W,EAAAp/W,OAE5B,OAAAo/W,EAAAp/W,MAAA,UAEAmhX,oBAAA,SAAA/B,GACA,sBAAAA,EAAA//M,UACA,OAAA+/M,EAAA//M,UAEA,IAAAh5J,EAAAD,OAAAC,KAAA+4W,GACAyC,EAAAx7W,EAAA/J,QAAA,WAIA,OAHA,IAAAulX,GACAx7W,EAAAvI,OAAA+jX,EAAA,GAEA,IAAAx7W,EAAA5I,QAAA,aAAA4I,EAAA,GACak6W,EAAUhhN,SAEZghN,EAAU/jX,KAAA8M,QAAA81W,MAAA,IAIrByB,EAAApgX,SAAA,SAAAT,EAAAq/J,GACA,sBAAAA,EACA,UAAAxjG,MAAA,oEAEE0kT,EAAUvgX,GAAAq/J,GAGZwhN,EAAAnB,SAAkBkB,EAEH7/T,EAAA,gCCrQf,IAAA1qB,EAAat6B,EAAQ,QAIrBmtC,EAFcntC,EAAQ,QAEtBmtC,aAIA+oK,EAFuBl2M,EAAQ,QAE/Bk2M,mBAoBA,SAAA6vK,EAAA9pV,GACA,OAAAA,EAAAx3B,IAAA,wBAAAw3B,EAAArJ,YAGA,SAAAozV,EAAA9vV,GACA,OAAAA,EAAA4C,IA0OA,IAAAp1B,EAjOA,SAAA4sE,EAAAlsE,EAAAC,GACA,IAAAoV,EAAApV,EAAAkuD,WACA74C,EAAArV,EAAAmuD,YACAyzT,KACAh0M,EAwHA,SAAAi0M,EAAA7hX,GAEA,IAAA8hX,KACA7rV,EAAA4E,KAAAgnV,EAAA,SAAAjqV,EAAA8E,GACA,IAAAxvB,EAAA0qB,EAAAtP,UACAuP,EAAAD,EAAAnN,iBACAiP,EAAA7B,EAAAqB,cACA3E,EAAAmF,EAAAxB,YACA5C,EAAA,aAAAoE,EAAA95B,KAAA85B,EAAAnE,eAAApxB,KAAAY,IAAAwvB,EAAA,GAAAA,EAAA,IAAArnB,EAAAvO,QACAojX,EAAAD,EAAAH,EAAAjoV,MACApE,YACA0sV,cAAA1sV,EACA2sV,eAAA,EACAC,YAAA,MACAhgN,IAAA,MACAigN,WAEAA,EAAAJ,EAAAI,OACAL,EAAAH,EAAAjoV,IAAAqoV,EACA,IAAAK,EAAAV,EAAA9pV,GAEAuqV,EAAAC,IACAL,EAAAE,iBAGAE,EAAAC,GAAAD,EAAAC,KACAhtW,MAAA,EACAytS,SAAA,GAEA,IAAAvqG,EAAAxvK,EAAAlR,EAAAx3B,IAAA,YAAAk1B,GACA8iL,EAAAtvK,EAAAlR,EAAAx3B,IAAA,eAAAk1B,GACAtmB,EAAA4oB,EAAAx3B,IAAA,UACAsP,EAAAkoB,EAAAx3B,IAAA,kBAEAk4M,IAAA6pK,EAAAC,GAAAhtW,QACAkjM,EAAAn0M,KAAAC,IAAA29W,EAAAC,cAAA1pK,GACA6pK,EAAAC,GAAAhtW,MAAAkjM,EACAypK,EAAAC,eAAA1pK,GAGAF,IAAA+pK,EAAAC,GAAAv/D,SAAAzqG,GACA,MAAAppM,IAAA+yW,EAAA7/M,IAAAlzJ,GACA,MAAAU,IAAAqyW,EAAAG,YAAAxyW,KAEA,IAAAvC,KAsDA,OArDA8oB,EAAA4E,KAAAinV,EAAA,SAAAC,EAAApyJ,GACAxiN,EAAAwiN,MACA,IAAAwyJ,EAAAJ,EAAAI,OACA7sV,EAAAysV,EAAAzsV,UACA4sV,EAAAp5U,EAAAi5U,EAAAG,YAAA5sV,GACA+sV,EAAAv5U,EAAAi5U,EAAA7/M,IAAA,GACA8/M,EAAAD,EAAAC,cACAC,EAAAF,EAAAE,eACAK,GAAAN,EAAAE,IAAAD,KAAA,GAAAI,GACAC,EAAAn+W,KAAAE,IAAAi+W,EAAA,GAEArsV,EAAA4E,KAAAsnV,EAAA,SAAAp4V,EAAA7f,GACA,IAAA24S,EAAA94R,EAAA84R,SAEAA,KAAAy/D,IACAz/D,EAAA1+S,KAAAC,IAAAy+S,EAAAm/D,GAEAj4V,EAAA3U,QACAytS,EAAA1+S,KAAAC,IAAAy+S,EAAA94R,EAAA3U,QAGA4sW,GAAAn/D,EACA94R,EAAA3U,MAAAytS,EACAo/D,OAIAK,GAAAN,EAAAE,IAAAD,KAAA,GAAAI,GACAC,EAAAn+W,KAAAE,IAAAi+W,EAAA,GACA,IACAC,EADAC,EAAA,EAEAvsV,EAAA4E,KAAAsnV,EAAA,SAAAp4V,EAAA2S,GACA3S,EAAA3U,QACA2U,EAAA3U,MAAAktW,GAGAC,EAAAx4V,EACAy4V,GAAAz4V,EAAA3U,OAAA,EAAAitW,KAGAE,IACAC,GAAAD,EAAAntW,MAAAitW,GAGA,IAAAvjV,GAAA0jV,EAAA,EACAvsV,EAAA4E,KAAAsnV,EAAA,SAAAp4V,EAAAq4V,GACAj1W,EAAAwiN,GAAAyyJ,GAAAj1W,EAAAwiN,GAAAyyJ,KACAtjV,SACA1pB,MAAA2U,EAAA3U,OAEA0pB,GAAA/U,EAAA3U,OAAA,EAAAitW,OAGAl1W,EA1NAs1W,CAAAxsV,EAAAzS,OAAAzjB,EAAAigV,gBAAA/zQ,GAAA,SAAAr0C,GACA,OAAA73B,EAAA+tO,iBAAAl2M,MAAAnN,kBAAA,UAAAmN,EAAAnN,iBAAA7qB,QAEAG,EAAAikM,iBAAA/3H,EAAA,SAAAr0C,GAEA,aAAAA,EAAAnN,iBAAA7qB,KAAA,CAIA,IAAAsN,EAAA0qB,EAAAtP,UACAuP,EAAAD,EAAAnN,iBACAiP,EAAA7B,EAAAqB,cACAkpV,EAAAV,EAAA9pV,GACA8qV,EAAA90M,EAAA+zM,EAAAjoV,IAAA0oV,GACAO,EAAAD,EAAA5jV,OACA8jV,EAAAF,EAAAttW,MACAxT,EAAAi2B,EAAA/E,aAAA4G,GACAxZ,EAAA0X,EAAAx3B,IAAA,yBACAuT,EAAAm1B,EAAA5oB,EAAA,GAAA9K,GACAxB,EAAAk1B,EAAA5oB,EAAA,GAAA7K,GACAwjM,EAAAjhL,EAAAx3B,IAAA,mBACA04M,EAAAlhL,EAAAx3B,IAAA,kBACAwhX,EAAAQ,GAAAR,EAAAQ,OAQA,IAPA,IAAA3lV,EAAAvvB,EAAA0tB,aAAAh5B,EAAA6yB,KACAs2Q,EAAA79R,EAAA0tB,aAAAlB,EAAAjF,KACAi2Q,EAAA74F,EAAA3kM,EAAAuvB,GAGAomV,EAAAjhX,EAAAs2B,YAAA,GAEAwE,EAAA,EAAAz+B,EAAAiP,EAAAvO,QAAyC+9B,EAAAz+B,EAAWy+B,IAAA,CACpD,IAAA/4B,EAAAuJ,EAAA9M,IAAAq8B,EAAAC,GACAomV,EAAA51W,EAAA9M,IAAA2qS,EAAAruQ,GAEA,IAAA71B,MAAAlD,GAAA,CAIA,IAmBA40B,EACA1kB,EACA2kB,EACAC,EAtBAojL,EAAAl4M,GAAA,UACAo/W,EAAAF,EAuBA,GAnBAn4E,IACAk3E,EAAAQ,GAAAU,KACAlB,EAAAQ,GAAAU,IACAx1U,EAAAu1U,EAEAroU,EAAAqoU,IAMAE,EAAAnB,EAAAQ,GAAAU,GAAAjnK,IAQA,WAAAj6M,EAAA6yB,IAAA,CACA,IAAAuuV,EAAAphX,EAAAg1C,aAAAjzC,GAAAk/W,EACAn5U,EAAAhQ,EAAAmd,YAAAisU,GAEA3+W,KAAAY,IAAAi+W,GAAAnqK,IACAmqK,KAAA,QAAAnqK,GAGAtgL,EAAAwqV,EACAlvW,EAAAkvW,EAAAC,EAEAvqV,GADAD,EAAAkR,EAAAi5U,GACAC,EACAl4E,IAAAk3E,EAAAQ,GAAAU,GAAAjnK,GAAAhoM,OAEA,CAEA,IAAAovW,EAAArhX,EAAAi1C,YAAAlzC,GAAA,GAAAk/W,EACA9jW,EAAA2a,EAAAkd,aAAAksU,GAEA3+W,KAAAY,IAAAk+W,GAAAnqK,IACAmqK,KAAA,QAAAnqK,GAIAjlM,GADA0kB,EAAAxZ,EAAA4jW,GACAC,EACApqV,EAAAuqV,EACAtqV,EAAAsqV,EAAAE,EAWAv4E,IAAAk3E,EAAAQ,GAAAU,GAAAjnK,GAAApjL,GAGAvrB,EAAA64K,cAAArpJ,GACA/oB,KACAC,KACA2kB,KACA1kB,IAGA2kB,cAAAr0B,KAAAgwB,GAAA,IACAsE,YAAAt0B,KAAAgwB,GAAA,UAGG/3B,OA6GHkD,EAAAC,QAAAF,wBC5QA,IAAA+9K,EAASzhL,EAAQ,QACjBs4S,EAAet4S,EAAQ,QACvByhO,EAAczhO,EAAQ,QAEtB2D,EAAAC,QAAiB5D,EAAQ,QAAgBqK,OAAAy7C,iBAAA,SAAAkb,EAAAkgS,GACzC5oD,EAAAt3O,GAKA,IAJA,IAGA83J,EAHAxuN,EAAAm3N,EAAAy/H,GACAx/V,EAAA4I,EAAA5I,OACAF,EAAA,EAEAE,EAAAF,GAAAigL,EAAAh+H,EAAAud,EAAA83J,EAAAxuN,EAAA9I,KAAA0/V,EAAApoI,IACA,OAAA93J,yBCXA,IAAA9gE,EAAYF,EAAQ,QAEpBk/B,EAAAh/B,EAAAg/B,KACA9tB,EAAAlR,EAAAkR,IAEAumR,EAAc33R,EAAQ,QAEtBk0J,EAAAyjI,EAAAzjI,UACA+iI,EAAAU,EAAAV,kBAEAswF,EAA4BvnX,EAAQ,QAEpCwnX,EAAAD,EAAAC,gBACAC,EAAAF,EAAAE,iBACAC,EAAAH,EAAAG,0BAoBAC,GAAA,KAMA/7T,EAAA,SAAA9yB,EAAA9mB,EAAAypB,GAKAh7B,KAAAq4B,MAMAr4B,KAAAuR,QAMAvR,KAAA44C,QAAA5d,IAAA,KAKAh7B,KAAAu8B,SAAA,EAMAv8B,KAAAi7B,QAAA,GAsMA,SAAAksV,EAAAnsV,EAAAosV,GACA,IAEAl9S,GAFAlvC,EAAA,GAAAA,EAAA,IACAosV,EACA,EACApsV,EAAA,IAAAkvC,EACAlvC,EAAA,IAAAkvC,EAxMA/e,EAAAjrD,WACAC,YAAAgrD,EAOAzgB,QAAA,SAAAtI,GACA,IAAApH,EAAAh7B,KAAA44C,QACA5wC,EAAAD,KAAAC,IAAAgzB,EAAA,GAAAA,EAAA,IACA/yB,EAAAF,KAAAE,IAAA+yB,EAAA,GAAAA,EAAA,IACA,OAAAoH,GAAAp6B,GAAAo6B,GAAAn6B,GAQAwxL,YAAA,SAAA3oL,GACA,OAAA9Q,KAAA0qC,QAAA1qC,KAAA82B,YAAAhmB,KAOAgrB,UAAA,WACA,OAAA97B,KAAA44C,QAAAt2C,SAQAk0R,kBAAA,SAAAx+H,GACA,OAAAw+H,EAAAx+H,GAAAh4J,KAAAuR,MAAAuqB,YAAA97B,KAAA44C,UAQAO,UAAA,SAAA32C,EAAA0uB,GACA,IAAA8J,EAAAh7B,KAAA44C,QACA5d,EAAA,GAAAx4B,EACAw4B,EAAA,GAAA9J,GASA4F,YAAA,SAAAhmB,EAAA40L,GACA,IAAA1qK,EAAAh7B,KAAA44C,QACArnC,EAAAvR,KAAAuR,MAQA,OAPAT,EAAAS,EAAAo+D,UAAA7+D,GAEA9Q,KAAAi7B,QAAA,YAAA1pB,EAAA/N,MAEA2jX,EADAnsV,IAAA14B,QACAiP,EAAAhP,SAGAkxJ,EAAA3iJ,EAAAo2W,EAAAlsV,EAAA0qK,IASA3hI,YAAA,SAAA3hC,EAAAsjK,GACA,IAAA1qK,EAAAh7B,KAAA44C,QACArnC,EAAAvR,KAAAuR,MAEAvR,KAAAi7B,QAAA,YAAA1pB,EAAA/N,MAEA2jX,EADAnsV,IAAA14B,QACAiP,EAAAhP,SAGA,IAAAkmF,EAAAgrE,EAAArxH,EAAApH,EAAAksV,EAAAxhL,GACA,OAAA1lM,KAAAuR,YAAAk3E,IASAr+C,YAAA,SAAAC,EAAAq7J,KAiBAwL,eAAA,SAAAt4K,GAEA,IAAAu4K,GADAv4K,SACAu4K,WAAAnxM,KAAAqnX,eACAt2W,EAAAg2W,EAAA/mX,KAAAmxM,GACA3E,EAAAz7L,EAAAy7L,MACAyE,EAAAtgM,EAAA67L,EAAA,SAAA5tK,GACA,OACAwD,MAAApiC,KAAA82B,YAAA8H,GACAA,cAEK5+B,MACLw+T,EAAArtH,EAAAntM,IAAA,kBAEA,OAsFA,SAAAyxB,EAAAw7K,EAAAq2K,EAAA9oD,EAAA94H,GACA,IAAA6hL,EAAAt2K,EAAAhwM,OAEA,IAAAw0B,EAAAwF,QAAAujS,IAAA+oD,EACA,OAGA,IACA3wS,EADAz+C,EAAA1C,EAAAqG,YAGA,OAAAyrV,EACAt2K,EAAA,GAAA7uK,MAAAjK,EAAA,GACAy+C,EAAAq6H,EAAA,IACA7uK,MAAAjK,EAAA,QAEG,CACH,IAAAqV,EAAAyjK,EAAA,GAAA7uK,MAAA6uK,EAAA,GAAA7uK,MACA3D,EAAAwyK,EAAA,SAAAu2K,GACAA,EAAAplV,OAAAoL,EAAA,EACA,IAAA85U,KAAA,EAEAA,EAAA,MACAE,EAAAplV,OAAAoL,GAAA,GAAA85U,EAAA,OAGA1wS,GACAx0C,MAAA6uK,EAAAs2K,EAAA,GAAAnlV,MAAAoL,GAEAyjK,EAAA1vM,KAAAq1E,GAGA,IAAAr6C,EAAApE,EAAA,GAAAA,EAAA,GAEAynK,EAAAqR,EAAA,GAAA7uK,MAAAjK,EAAA,MACAutK,EAAAuL,EAAA,GAAA7uK,MAAAjK,EAAA,GAAA84K,EAAAzjK,SAGAk4J,GAAA9F,EAAAznK,EAAA,GAAA84K,EAAA,GAAA7uK,QACA6uK,EAAAtuK,SACAP,MAAAjK,EAAA,KAIAynK,EAAAznK,EAAA,GAAAy+C,EAAAx0C,SACAsjK,EAAA9uH,EAAAx0C,MAAAjK,EAAA,GAAA84K,EAAAn6I,OAGA4uI,GAAA9F,EAAAhpH,EAAAx0C,MAAAjK,EAAA,KACA84K,EAAA1vM,MACA6gC,MAAAjK,EAAA,KAIA,SAAAynK,EAAArqL,EAAAC,GACA,OAAA+mB,EAAAhnB,EAAAC,EAAAD,EAAAC,GA7IAiyW,CAAAznX,KAAAixM,EAAAlgM,EAAAu2W,qBAAA9oD,EAAA5lS,EAAA8sK,OACAuL,GAUAvyK,cAAA,WACA,OAAAsoV,EAAAhnX,MAAA+nS,QAMAx8O,cAAA,WACA,OAAAvrD,KAAAu3B,MAAA8H,SAAA,cAWAgoV,aAAA,WACA,OAAArnX,KAAAu3B,MAAA8H,SAAA,aAOAlG,aAAA,WACA,IAAAhB,EAAAn4B,KAAA44C,QACAo/G,EAAAh4J,KAAAuR,MAAAuqB,YACAj6B,EAAAm2J,EAAA,GAAAA,EAAA,IAAAh4J,KAAAi7B,OAAA,KAEA,IAAAp5B,MAAA,GACA,IAAAgwB,EAAA9pB,KAAAY,IAAAwvB,EAAA,GAAAA,EAAA,IACA,OAAApwB,KAAAY,IAAAkpB,GAAAhwB,GAOAg7B,aAAA,KAMA6qV,UAAA,KAOAT,0BAAA,WACA,OAAAA,EAAAjnX,QA+EA,IAAAiD,EAAAkoD,EACAjoD,EAAAC,QAAAF,wBCtVc1D,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAItBi9L,EAFcj9L,EAAQ,QAEtBi9L,SAEA7X,EAAYplL,EAAQ,QAEpBooX,EAAmBpoX,EAAQ,QAE3B4rC,EAAW5rC,EAAQ,QAoBnBqsU,GAAA,8BAGA/xS,EAAAnwB,OAAAi7K,EAAAzkL,UAAAynX,GAEA,IAAA1kX,EAAAG,EAAAs6D,iBACAl6D,KAAA,MACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA5D,KAAA4nX,gBAAApsV,GAEA,IAAAqsV,EAAArsV,EAAAx3B,IAAA,oBAMA,MAJA,gBAAA6jX,GAAA,UAAAA,IACA7nX,KAAA0uE,aAAA1uE,KAAA8nX,aAAAtsV,EAAA73B,EAAAC,GAAA5D,KAAA+nX,cAAAvsV,EAAA73B,EAAAC,IAGA5D,KAAAg/B,OAEA2uC,yBAAA,SAAAnyC,EAAA73B,EAAAC,GACA5D,KAAA67N,SAEA77N,KAAA4nX,gBAAApsV,IAEAsyC,kBAAA,SAAAn8C,EAAA6J,EAAA73B,EAAAC,GAEA5D,KAAAgoX,wBAAAr2V,EAAA6J,IAEAosV,gBAAA,SAAApsV,GACA,IAAA+yC,EAAA/yC,EAAA0yC,gBAAAC,OAEA,MAAAnuE,KAAA0uE,cAAAH,EAAAvuE,KAAA0uE,gBACA1uE,KAAA0uE,aAAAH,EAEAvuE,KAAA67N,WAGAksJ,cAAA,SAAAvsV,EAAA73B,EAAAC,GACA,IAKAqkX,EALAjpV,EAAAh/B,KAAAg/B,MACAluB,EAAA0qB,EAAAtP,UACAwU,EAAA1gC,KAAAic,MACAmmB,EAAA5G,EAAAnN,iBACAiP,EAAA8E,EAAAtF,cAGA,gBAAAsF,EAAA5+B,KACAykX,EAAA3qV,EAAAT,eACK,UAAAuF,EAAA5+B,OACLykX,EAAA,UAAA3qV,EAAAjF,KAGA,IAAA05H,EAAAv2H,EAAAiqC,qBAAAjqC,EAAA,KACA1qB,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAb,GACA,GAAAttB,EAAAusK,SAAAj/I,GAAA,CAIA,IAAA8mC,EAAAp0D,EAAAq0D,aAAA/mC,GACA9G,EAAAsyJ,EAAAxnJ,EAAA5+B,MAAAsN,EAAAstB,EAAA8mC,GACAzkE,EAAAynX,EAAA9lV,EAAA5+B,MAAAsN,EAAAstB,EAAA8mC,EAAA5tC,EAAA2wV,EAAAl2N,GACAjhJ,EAAA+vB,iBAAAzC,EAAA39B,GACAu+B,EAAAC,IAAAx+B,GACAojQ,EAAApjQ,EAAAqQ,EAAAstB,EAAA8mC,EAAA5tC,EAAAkE,EAAAysV,EAAA,UAAA7lV,EAAA5+B,SACK+4C,OAAA,SAAAsoR,EAAAC,GACL,IAAArkU,EAAAigC,EAAAoD,iBAAAghS,GAEA,GAAAh0T,EAAAusK,SAAAwnJ,GAAA,CAKA,IAAA3/P,EAAAp0D,EAAAq0D,aAAA0/P,GACAvtS,EAAAsyJ,EAAAxnJ,EAAA5+B,MAAAsN,EAAA+zT,EAAA3/P,GAEAzkE,EACA+Z,EAAAoqB,YAAAnkC,GACAsnB,MAAAuP,GACSy6H,EAAA8yK,GAETpkU,EAAAynX,EAAA9lV,EAAA5+B,MAAAsN,EAAA+zT,EAAA3/P,EAAA5tC,EAAA2wV,EAAAl2N,GAAA,GAGAjhJ,EAAA+vB,iBAAAgkS,EAAApkU,GAEAu+B,EAAAC,IAAAx+B,GACAojQ,EAAApjQ,EAAAqQ,EAAA+zT,EAAA3/P,EAAA5tC,EAAAkE,EAAAysV,EAAA,UAAA7lV,EAAA5+B,WAlBAw7B,EAAAv6B,OAAAhE,KAmBKgE,OAAA,SAAA25B,GACL,IAAA39B,EAAAigC,EAAAoD,iBAAA1F,GAEA,gBAAAgE,EAAA5+B,KACA/C,GAAA0nX,EAAA/pV,EAAA2zH,EAAAtxJ,GAEAA,GAAA2nX,EAAAhqV,EAAA2zH,EAAAtxJ,KAEK0mE,UACLnnE,KAAAic,MAAAnL,GAEAg3W,aAAA,SAAAtsV,EAAA73B,EAAAC,GACA5D,KAAA67N,SAEAwsJ,EAAA7sV,EAAAx7B,KAAAg/B,QAEAgpV,wBAAA,SAAAr2V,EAAA6J,GACA6sV,EAAA7sV,EAAAx7B,KAAAg/B,OAAA,IAEAj6B,QAAA80B,EAAAwiC,KACA53D,OAAA,SAAAd,GACA3D,KAAA67N,OAAAl4N,IAEAk4N,OAAA,SAAAl4N,GACA,IAAAq7B,EAAAh/B,KAAAg/B,MACAluB,EAAA9Q,KAAAic,MAEAtY,KAAAK,IAAA,cAAA8M,IAAA9Q,KAAA0uE,aACA59D,EAAA6vB,kBAAA,SAAAlgC,GACA,WAAAA,EAAA+C,KACA4kX,EAAA3nX,EAAA29B,UAAAz6B,EAAAlD,GAEA0nX,EAAA1nX,EAAA29B,UAAAz6B,EAAAlD,KAIAu+B,EAAAkG,YAGAllC,KAAAic,MAAA,QAIAisW,GACAI,YAAA,SAAAx3W,EAAAstB,EAAA8mC,EAAA5tC,EAAAuF,EAAAk1H,EAAAm8K,GACA,IAAAhmS,EAAA,IAAA1tB,EAAAyiB,MACAlV,MAAA8R,EAAAnwB,UAA6B4tB,KAG7B,GAAAy6H,EAAA,CACA,IAAAk9K,EAAA/mS,EAAAngB,MACAwgW,EAAA1rV,EAAA,iBACA2rV,KACAv5C,EAAAs5C,GAAA,EACAC,EAAAD,GAAAjxV,EAAAixV,GACA/tW,EAAA0zT,EAAA,2BAAAhmS,GACAngB,MAAAygW,GACOz2N,EAAA3zH,GAGP,OAAA8J,GAEAzM,MAAA,SAAA3qB,EAAAstB,EAAA8mC,EAAA5tC,EAAAmxV,EAAA12N,EAAAm8K,GAKA,IAAA5xS,EAAAhF,EAAA8E,WAAA9E,EAAA+E,SACAqoC,EAAA,IAAAlqD,EAAA0hB,QACAnU,MAAA8R,EAAAmJ,UACA1G,aACOhF,KAGP,GAAAy6H,EAAA,CACA,IAAA3sF,EAAAV,EAAA38C,MACAwgW,EAAAE,EAAA,eACAD,KACApjT,EAAAmjT,GAAAE,EAAA,EAAAnxV,EAAA8E,WACAosV,EAAAD,GAAAjxV,EAAAixV,GACA/tW,EAAA0zT,EAAA,2BAAAxpQ,GACA38C,MAAAygW,GACOz2N,EAAA3zH,GAGP,OAAAsmC,IAIA,SAAAyjT,EAAA/pV,EAAA2zH,EAAAtxJ,GAEAA,EAAA8X,MAAA84B,KAAA,KACA72B,EAAAoqB,YAAAnkC,GACAsnB,OACA/O,MAAA,IAEG+4I,EAAA3zH,EAAA,WACH39B,EAAA8oC,QAAA9oC,EAAA8oC,OAAA9kC,OAAAhE,KAIA,SAAA2nX,EAAAhqV,EAAA2zH,EAAAtxJ,GAEAA,EAAA8X,MAAA84B,KAAA,KACA72B,EAAAoqB,YAAAnkC,GACAsnB,OACAtQ,EAAAhX,EAAAsnB,MAAAoU,KAEG41H,EAAA3zH,EAAA,WACH39B,EAAA8oC,QAAA9oC,EAAA8oC,OAAA9kC,OAAAhE,KAIA,IAAAmpL,GACA0+L,YAAA,SAAAx3W,EAAAstB,EAAA8mC,GACA,IAAA5tC,EAAAxmB,EAAA0uB,cAAApB,GACAsqV,EAkDA,SAAAxjT,EAAAyjT,GACA,IAAA5rV,EAAAmoC,EAAAlhE,IAAA4nU,IAAA,EACA,OAAA7jU,KAAAC,IAAA+0B,EAAAh1B,KAAAY,IAAAggX,EAAA3vW,OAAAjR,KAAAY,IAAAggX,EAAA1vW,SApDA2vW,CAAA1jT,EAAA5tC,GAEAuxV,EAAAvxV,EAAAte,MAAA,OACA8vW,EAAAxxV,EAAAre,OAAA,OACA,OACA5U,EAAAizB,EAAAjzB,EAAAwkX,EAAAH,EAAA,EACAnkX,EAAA+yB,EAAA/yB,EAAAukX,EAAAJ,EAAA,EACA1vW,MAAAse,EAAAte,MAAA6vW,EAAAH,EACAzvW,OAAAqe,EAAAre,OAAA6vW,EAAAJ,IAGAjtV,MAAA,SAAA3qB,EAAAstB,EAAA8mC,GACA,IAAA5tC,EAAAxmB,EAAA0uB,cAAApB,GACA,OACA7mB,GAAA+f,EAAA/f,GACAC,GAAA8f,EAAA9f,GACA2kB,GAAA7E,EAAA6E,GACA1kB,EAAA6f,EAAA7f,EACA2kB,WAAA9E,EAAA8E,WACAC,SAAA/E,EAAA+E,YAKA,SAAAwnO,EAAApjQ,EAAAqQ,EAAAstB,EAAA8mC,EAAA5tC,EAAAkE,EAAAqB,EAAAksV,GACA,IAAA5iX,EAAA2K,EAAAojD,cAAA91B,EAAA,SACAvrB,EAAA/B,EAAAojD,cAAA91B,EAAA,WACA0pK,EAAA5iI,EAAA7lC,SAAA,aACAkmC,EAAAL,EAAA7lC,SAAA,sBAAA0wR,kBAEAg5D,GACAtoX,EAAA8gC,SAAA,IAAAumK,EAAA9jM,IAAA,uBAGAvD,EAAAsiC,SAAAlJ,EAAAmJ,UACAtrB,KAAAvR,EACA0M,WACGi1L,EAAAioH,oBACH,IAAAvqP,EAAAN,EAAAG,WAAA,UACAG,GAAA/kE,EAAAsC,KAAA,SAAAyiE,GACA,IAAA+2H,EAAA1/J,EAAAvF,EAAAre,OAAA,iBAAAqe,EAAAte,MAAA,iBAEA+vW,GACAvsL,EAAA/7L,EAAA8X,MAAAgtD,EAAAL,EAAA/+D,EAAAq1B,EAAA4C,EAAAm+J,GAGA/hL,EAAAmrD,cAAAllE,EAAA8kE,GASA,IAAAyjT,EAAA79U,EAAAzhC,QACAlG,KAAA,WACAukB,OACAqV,WAEAsS,UAAA,SAAA7J,EAAA9d,GAOA,IAJA,IAAAqV,EAAArV,EAAAqV,OACA6rV,EAAAjpX,KAAAkpX,aACAC,EAAAnpX,KAAAopX,WAEAroX,EAAA,EAAmBA,EAAAq8B,EAAAn8B,OAAmBF,GAAA,EACtCkoX,EAAAjpX,KAAAopX,YAAAhsV,EAAAr8B,EAAAooX,GACAtjV,EAAAkhI,OAAAkiN,EAAA,GAAAA,EAAA,IACApjV,EAAAmhI,OAAA5pI,EAAAr8B,GAAAq8B,EAAAr8B,EAAA,OAKA,SAAAsnX,EAAA7sV,EAAAwD,EAAAoxI,GAEA,IAAAt/J,EAAA0qB,EAAAtP,UACA+8V,KACAE,EAAAr4W,EAAA84K,UAAA,2BACAq/L,EAAA,EAAAE,GAAAr4W,EAAA84K,UAAA,kBACA,IAAAnpL,EAAA,IAAAuoX,GACAjhW,OACAqV,OAAAtsB,EAAA84K,UAAA,gBAEAxZ,gBACA84M,aAAAD,EACAG,WAAAD,IAEAnqV,EAAAC,IAAAx+B,GAIA,SAAAA,EAAA+6B,EAAA1qB,GACA,IAAAiiB,EAAAjiB,EAAA6wB,UAAA,gBAAA7wB,EAAA6wB,UAAA,SACAnvB,EAAAgpB,EAAA6D,SAAA,aAAAimC,cAAA,wBACA7kE,EAAAsiC,SAAAvwB,GACA/R,EAAA8X,MAAAb,KAAA,KACAjX,EAAA8X,MAAA2qB,OAAAnQ,EACAtyB,EAAA8X,MAAAwkB,UAAAjsB,EAAA84K,UAAA,YATAy/L,CAAA5oX,EAAA+6B,EAAA1qB,GAYA5N,EAAAC,QAAAF,qCC7UA,SAAAu8D,EAAAM,GACA9/D,KAAA8/D,UAGAN,EAAAt/D,UAAA0H,SAAA,WACA,gBAAA5H,KAAA8/D,QAAA,KAAA9/D,KAAA8/D,QAAA,KAGAN,EAAAt/D,UAAA2kR,YAAA,EAEA3hR,EAAAC,QAAAq8D,wBClBA,IAAAr0B,EAAW5rC,EAAQ,QAEnBmzL,EAAWnzL,EAAQ,QAEnB+pX,EAAa/pX,EAAQ,QAErBiuR,EAAA87F,EAAA97F,mBACAuuD,EAAAutC,EAAAvtC,eACA7nJ,EAAAo1L,EAAAp1L,YACA+vB,EAAAqlK,EAAArlK,QACA9vB,EAAAm1L,EAAAn1L,sBACAonJ,EAAA+tC,EAAA/tC,kBAMApxS,KAEA,SAAAo/U,EAAAxhW,EAAA0gE,EAAA+gS,GACA,IAAA9kL,EAAA38K,EAAA28K,KACAC,EAAA58K,EAAA48K,KAEA,cAAAD,GAAA,OAAAC,IACA6kL,EAAAjuC,EAAAt3H,GAAAl8L,EAAA0oB,GAAA1oB,EAAAy8K,KAAAz8K,EAAA28K,KAAA38K,EAAA8lB,GAAA46C,IAAA+gS,EAAAjuC,EAAAt3H,GAAAl8L,EAAA2oB,GAAA3oB,EAAA08K,KAAA18K,EAAA48K,KAAA58K,EAAA+lB,GAAA26C,MAEA+gS,EAAAr1L,EAAAD,GAAAnsK,EAAA0oB,GAAA1oB,EAAAy8K,KAAAz8K,EAAA8lB,GAAA46C,IAAA+gS,EAAAr1L,EAAAD,GAAAnsK,EAAA2oB,GAAA3oB,EAAA08K,KAAA18K,EAAA+lB,GAAA26C,IAIA,IAAAxlF,EAAAkoC,EAAAzhC,QACAlG,KAAA,eACAukB,OACA0oB,GAAA,EACAC,GAAA,EACA7C,GAAA,EACAC,GAAA,EACA02J,KAAA,EACAC,KAAA,EAIArgL,QAAA,GAEA7L,OACA2qB,OAAA,OACAxrB,KAAA,MAEAg4B,UAAA,SAAA7J,EAAA9d,GACA,IAAA0oB,EAAA1oB,EAAA0oB,GACAC,EAAA3oB,EAAA2oB,GACA7C,EAAA9lB,EAAA8lB,GACAC,EAAA/lB,EAAA+lB,GACA02J,EAAAz8K,EAAAy8K,KACAC,EAAA18K,EAAA08K,KACAC,EAAA38K,EAAA28K,KACAC,EAAA58K,EAAA48K,KACAvgL,EAAA2D,EAAA3D,QAEA,IAAAA,IAIAyhB,EAAAkhI,OAAAt2H,EAAAC,GAEA,MAAAg0J,GAAA,MAAAC,GACAvgL,EAAA,IACAopQ,EAAA/8O,EAAA+zJ,EAAA32J,EAAAzpB,EAAA+lB,GACAq6J,EAAAr6J,EAAA,GACA0D,EAAA1D,EAAA,GACAqjP,EAAA98O,EAAA+zJ,EAAA32J,EAAA1pB,EAAA+lB,GACAs6J,EAAAt6J,EAAA,GACA2D,EAAA3D,EAAA,IAGAtE,EAAA+uU,iBAAApwK,EAAAC,EAAA52J,EAAAC,KAEA1pB,EAAA,IACA23T,EAAAtrS,EAAA+zJ,EAAAE,EAAA72J,EAAAzpB,EAAA+lB,GACAq6J,EAAAr6J,EAAA,GACAu6J,EAAAv6J,EAAA,GACA0D,EAAA1D,EAAA,GACA4xS,EAAArrS,EAAA+zJ,EAAAE,EAAA72J,EAAA1pB,EAAA+lB,GACAs6J,EAAAt6J,EAAA,GACAw6J,EAAAx6J,EAAA,GACA2D,EAAA3D,EAAA,IAGAtE,EAAA0wL,cAAA/xB,EAAAC,EAAAC,EAAAC,EAAA92J,EAAAC,MASA8qK,QAAA,SAAAnwH,GACA,OAAA8gS,EAAAvpX,KAAA+nB,MAAA0gE,GAAA,IAQAswH,UAAA,SAAAtwH,GACA,IAAAv3C,EAAAq4U,EAAAvpX,KAAA+nB,MAAA0gE,GAAA,GACA,OAAAiqG,EAAA/iH,UAAAz+B,QAIAhuC,EAAAC,QAAAF,wBChHA,IAAA42B,EAAat6B,EAAQ,QAErB06B,EAAgB16B,EAAQ,QAExB2sD,EAAqB3sD,EAAQ,QAE7BolL,EAAYplL,EAAQ,QAEpBkqX,EAAsBlqX,EAAQ,QAE9BgwM,EAAiBhwM,EAAQ,QAoBzBmqX,EAAAx9T,EAAAxiD,QACAlG,KAAA,MAKA6qB,iBAAA,KACAwmK,WAAA,MACAr2K,KAAA,SAAAvB,GACAivC,EAAAhsD,UAAAse,KAAAjS,MAAAvM,KAAA8E,WAEAm1B,EAAAyqJ,gBAAAznK,EAAA,mBAEAq4K,cAAA,WACA,IAAAr4K,EAAAjd,KAAAid,OACA9Q,EAAAnM,KACAid,EAAA4uK,QAAA0jB,EAAAW,iBAAAjzL,EAAA4uK,QAAA5uK,EAAAtM,IAAAsM,EAAAmzL,SACApwM,KAAA2pX,gBAAA9vV,EAAApU,OAAAxI,EAAA4uK,YAAA,SAAA+9L,EAAAC,GAKA,OAJAA,EAAAjnX,MACAgnX,EAAA5kU,IAAA6kU,EAAAjnX,KAAA,IAAA+hL,EAAAklM,EAAA19W,IAGAy9W,GACK/vV,EAAAk7B,iBACL/0D,KAAAqsL,kBAAApvK,EAAA4uK,UAEAn3J,eACAC,OAAA,EACAC,EAAA,EACAvvB,MAAA,EACAQ,KAAA,SACAmM,IAAA,SAOA4X,YAAA,IAMAua,QAAA,EAEAxzB,IAAA,GAGAkZ,eAAA,KAEA/F,OAAA,KACAgG,KAAA,EACAC,WAAA,KAEAtX,OACApN,MAAA,EACAc,MAAA,QAEAqM,WAEA8iB,YAAA,GACAvC,YAAA,OACA5sB,MAAA,QAEAmgB,UACA7T,OACApN,MAAA,EACAc,MAAA,gBAEAqM,WACArM,MAAA,wBAGA0lL,YAQAi+L,eAAA,SAAAlnX,GACA,OAAA5C,KAAA2pX,gBAAA3lX,IAAApB,IAAA,IAAA+hL,EAAA,KAAA3kL,UAAA2D,UASAi2M,kBAAA,SAAAh3M,EAAAqT,GACA,IACArI,EADA5N,KAAA8pX,eAAAlnX,GACAoB,IAAA,SAAAiS,EAAA,cACA0b,GACA/uB,QAGA,yBAAAgL,GACA+jB,EAAA1b,SACArI,EAAA+jB,IACK,iBAAA/jB,EACLA,EAAArF,QAAA,MAAmC,MAAA3F,IAAA,SAD9B,GAIL8lC,QAAA,SAAA5e,GACA9pB,KAAAid,OAAA6M,QAEAye,UAAA,SAAAzkB,GACA9jB,KAAAid,OAAA6G,YAGA+V,EAAA8N,MAAA+hV,EAAAD,GACA,IAAAxmX,EAAAymX,EACAxmX,EAAAC,QAAAF,sBC3GAC,EAAAC,QApBA,SAAAQ,GACA,IAAA8/Q,EAAA9/Q,EAAAutJ,gBACA5hG,SAAA,WAGAm0N,KAAAxiR,QACA0C,EAAAqgV,aAAA,SAAA1xU,GAGA,QAAAvR,EAAA,EAAqBA,EAAA0iR,EAAAxiR,OAAyBF,IAC9C,IAAA0iR,EAAA1iR,GAAAwjE,WAAAjyD,EAAA1P,MACA,SAIA,oCCjCA,IAAAi3B,EAAat6B,EAAQ,QAIrBkzL,EAFclzL,EAAQ,QAEtBkzL,aAIA3zJ,EAFev/B,EAAQ,QAEvBu/B,MAIA4N,EAFcntC,EAAQ,QAEtBmtC,aAEA3S,EAAgBx6B,EAAQ,QAmCxB,SAAAwqX,EAAAC,EAAAC,GACAD,EAAAhjT,UAAA,SAAAkjT,GACAA,EAAAnnX,MACA6xB,EAAAq1V,EAAAr1V,EACAD,OAAAs1V,EAAAt1V,OACApc,OACA2qB,OAAA,WAAA+mV,EAAAr3N,UAAAq3N,EAAA9jX,MAAA,KACAuR,KAAA,SAAAuyW,EAAAr3N,UAAAq3N,EAAA9jX,MAAA,UAaA,SAAAqvT,EAAA1kT,EAAAwvB,GACAxB,EAAApzB,KAAA1L,MACA,IAAAgvB,EAAA,IAAA+K,EAAAjpB,EAAAwvB,GACA0pV,EAAA,IAAAlrV,EACA9+B,KAAAi/B,IAAAjQ,GACAhvB,KAAAi/B,IAAA+qV,GAEAA,EAAA1yL,aAAA,WACAt3L,KAAA+C,KAAAisB,EAAAk0U,aAGAljW,KAAAihC,WAAAnwB,EAAAwvB,GAGA,IAAA6pV,EAAA30D,EAAAt1T,UAEAiqX,EAAAC,oBAAA,WACApqX,KAAAilE,QAAA,GAAA//B,aAGAilV,EAAAE,qBAAA,SAAAJ,GAKA,IAJA,IAAAn6S,EAAAm6S,EAAAn6S,WACA3pE,EAAA8jX,EAAA9jX,MACA6jX,EAAAhqX,KAAAilE,QAAA,GAEAlkE,EAAA,EAAiBA,EAvDjB,EAuD2CA,IAAA,CAO3C,IAAAmpX,EAAAz3L,EAAA3iH,GAAA,SAAA3pE,GACA+jX,EAAAnnX,MACAwV,OACA82B,eAAA,GAEAjL,GAAA,GACAD,QAAA,EACA5yB,OAAA,SAEA,IAAAtP,GAAAlB,EAvEA,EAuEAkpX,EAAA72L,OAAA62L,EAAAK,aAEAJ,EAAA9pX,QAAA,OAAA4C,KAAAinX,EAAA72L,QACA7hL,OAAA04W,EAAAM,YAAA,EAAAN,EAAAM,YAAA,KACKtoX,SAAAO,QACL0nX,EAAAM,cAAA,GAAAxnX,KAAAinX,EAAA72L,QACAvgL,QAAA,IACK5Q,SAAAO,QACLwnX,EAAA/qV,IAAAirV,GAGAH,EAAAC,EAAAC,IAOAE,EAAAM,sBAAA,SAAAR,GAMA,IALA,IAAAS,EAAA1qX,KAAA2qX,WACAX,EAAAhqX,KAAAilE,QAAA,GAEA2lT,GAAA,qCAEA7pX,EAAA,EAAiBA,EAAA6pX,EAAA3pX,OAA4BF,IAAA,CAC7C,IAAA+kC,EAAA8kV,EAAA7pX,GAEA,GAAA2pX,EAAA5kV,KAAAmkV,EAAAnkV,GAGA,OAFA9lC,KAAAoqX,2BACApqX,KAAAqqX,qBAAAJ,GAKAF,EAAAC,EAAAC,IAOAE,EAAAxmV,UAAA,WACA3jC,KAAAiS,QAAA,aAOAk4W,EAAAjmV,SAAA,WACAlkC,KAAAiS,QAAA,WASAk4W,EAAAlpV,WAAA,SAAAnwB,EAAAwvB,GACA,IAAA9E,EAAA1qB,EAAAuzB,UACArkC,KAAAilE,QAAA,GAAAhkC,WAAAnwB,EAAAwvB,GACA,IAAA0pV,EAAAhqX,KAAAilE,QAAA,GACAC,EAAAp0D,EAAAq0D,aAAA7kC,GACAwvC,EAAAh/D,EAAAojD,cAAA5zB,EAAA,UACArR,EAtIA,SAAAA,GAKA,OAJA4K,EAAA/tB,QAAAmjB,KACAA,WAGAA,EAiIA47V,CAAA/5W,EAAAojD,cAAA5zB,EAAA,eACAn6B,EAAA2K,EAAAojD,cAAA5zB,EAAA,SACA0pV,EAAAjnX,KAAA,QAAAksB,GACA+6V,EAAArxT,SAAA,SAAAuxT,GACAA,EAAAnnX,MACA2U,KAAAvR,MAGA,IAAAgpB,EAAA+1C,EAAAG,WAAA,gBAEA,GAAAl2C,EAAA,CACA,IAAAuC,EAAAs4V,EAAA57W,SACAsjB,EAAA,GAAAgb,EAAAvd,EAAA,GAAAF,EAAA,IACAyC,EAAA,GAAAgb,EAAAvd,EAAA,GAAAF,EAAA,IAGA+6V,EAAAnyV,UAAAqtC,EAAAG,WAAA,oBAAAt9D,KAAAgwB,GAAA,OACA,IAAAkyV,KAYA,GAXAA,EAAA7wD,aAAA59R,EAAAx3B,IAAA,gBACAimX,EAAAM,YAAArlT,EAAAlhE,IAAA,sBACAimX,EAAAr3N,UAAA1tF,EAAAlhE,IAAA,0BACAimX,EAAA72L,OAAA,IAAAluH,EAAAlhE,IAAA,uBACAimX,EAAAK,aAAAhqV,EAAAxvB,EAAAvO,QACA0nX,EAAAr1V,EAAAswC,EAAAG,WAAA,QACA4kT,EAAAt1V,OAAAuwC,EAAAG,WAAA,aACA4kT,EAAAn6S,aACAm6S,EAAA9jX,QACAnG,KAAAqwD,IAAA,aAAAA,IAAA,YAAAA,IAAA,YAAAA,IAAA,UAEA,WAAA45T,EAAA7wD,aACAp5T,KAAA2qX,WAAA3qX,KAAAyqX,sBAAAR,GAAAjqX,KAAAqqX,qBAAAJ,GACAjqX,KAAA2qX,WAAAV,MACG,CAEHjqX,KAAA2qX,WAAA,KACA3qX,KAAAoqX,sBACA,IAAAp7V,EAAAhvB,KAAAilE,QAAA,GAEAN,EAAA,WACA31C,EAAA2U,YAEA,WAAAsmV,EAAA7wD,cACAp5T,KAAAqqX,qBAAAJ,IAIAplT,EAAA,WACA71C,EAAAkV,WAEA,WAAA+lV,EAAA7wD,cACAp5T,KAAAoqX,uBAIApqX,KAAA0f,GAAA,YAAAilD,EAAA3kE,MAAA0f,GAAA,WAAAmlD,EAAA7kE,MAAA0f,GAAA,WAAAilD,EAAA3kE,MAAA0f,GAAA,SAAAmlD,EAAA7kE,MAGAA,KAAA2qX,WAAAV,GAGAE,EAAAn6M,QAAA,SAAA1oG,GACAtnE,KAAAqwD,IAAA,aAAAA,IAAA,YAAAA,IAAA,YAAAA,IAAA,UACAiX,QAGAztC,EAAA2xB,SAAAgqQ,EAAA12R,GACA,IAAA77B,EAAAuyT,EACAtyT,EAAAC,QAAAF,sBC9OA,IAAA6nX,EAAA,oBAAA71J,aAAAppN,MAAAopN,aAMA,SAAAvrL,IACA,IAAAS,EAAA,IAAA2gV,EAAA,GAEA,OADApmK,EAAAv6K,GACAA,EAQA,SAAAu6K,EAAAv6K,GAOA,OANAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EAAA,KACAA,EASA,SAAAV,EAAAU,EAAAxd,GAOA,OANAwd,EAAA,GAAAxd,EAAA,GACAwd,EAAA,GAAAxd,EAAA,GACAwd,EAAA,GAAAxd,EAAA,GACAwd,EAAA,GAAAxd,EAAA,GACAwd,EAAA,GAAAxd,EAAA,GACAwd,EAAA,GAAAxd,EAAA,GACAwd,EAkIAhnC,EAAAumC,SACAvmC,EAAAuhN,WACAvhN,EAAAsmC,OACAtmC,EAAA6hN,IA3HA,SAAA76K,EAAA0lT,EAAAC,GAIA,IAAAi7B,EAAAl7B,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GACAjyM,EAAAgyM,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GACAhyM,EAAA+xM,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GACAk7B,EAAAn7B,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GACAm7B,EAAAp7B,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GAAAD,EAAA,GACAq7B,EAAAr7B,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAOA,OANA1lT,EAAA,GAAA4gV,EACA5gV,EAAA,GAAA0zG,EACA1zG,EAAA,GAAA2zG,EACA3zG,EAAA,GAAA6gV,EACA7gV,EAAA,GAAA8gV,EACA9gV,EAAA,GAAA+gV,EACA/gV,GA4GAhnC,EAAAgqN,UAlGA,SAAAhjL,EAAA50B,EAAAxI,GAOA,OANAo9B,EAAA,GAAA50B,EAAA,GACA40B,EAAA,GAAA50B,EAAA,GACA40B,EAAA,GAAA50B,EAAA,GACA40B,EAAA,GAAA50B,EAAA,GACA40B,EAAA,GAAA50B,EAAA,GAAAxI,EAAA,GACAo9B,EAAA,GAAA50B,EAAA,GAAAxI,EAAA,GACAo9B,GA4FAhnC,EAAAslK,OAlFA,SAAAt+H,EAAA50B,EAAAuuL,GACA,IAAAqnL,EAAA51W,EAAA,GACA61W,EAAA71W,EAAA,GACA81W,EAAA91W,EAAA,GACA+1W,EAAA/1W,EAAA,GACAg2W,EAAAh2W,EAAA,GACAi2W,EAAAj2W,EAAA,GACAk2W,EAAA1jX,KAAA2jC,IAAAo4J,GACA4nL,EAAA3jX,KAAA0jC,IAAAq4J,GAOA,OANA35J,EAAA,GAAAghV,EAAAO,EAAAJ,EAAAG,EACAthV,EAAA,IAAAghV,EAAAM,EAAAH,EAAAI,EACAvhV,EAAA,GAAAihV,EAAAM,EAAAH,EAAAE,EACAthV,EAAA,IAAAihV,EAAAK,EAAAC,EAAAH,EACAphV,EAAA,GAAAuhV,EAAAL,EAAAI,EAAAD,EACArhV,EAAA,GAAAuhV,EAAAF,EAAAC,EAAAJ,EACAlhV,GAoEAhnC,EAAAoO,MA1DA,SAAA44B,EAAA50B,EAAAxI,GACA,IAAA4+W,EAAA5+W,EAAA,GACA6+W,EAAA7+W,EAAA,GAOA,OANAo9B,EAAA,GAAA50B,EAAA,GAAAo2W,EACAxhV,EAAA,GAAA50B,EAAA,GAAAq2W,EACAzhV,EAAA,GAAA50B,EAAA,GAAAo2W,EACAxhV,EAAA,GAAA50B,EAAA,GAAAq2W,EACAzhV,EAAA,GAAA50B,EAAA,GAAAo2W,EACAxhV,EAAA,GAAA50B,EAAA,GAAAq2W,EACAzhV,GAkDAhnC,EAAA0mC,OAzCA,SAAAM,EAAA50B,GACA,IAAA41W,EAAA51W,EAAA,GACA61W,EAAA71W,EAAA,GACA81W,EAAA91W,EAAA,GACA+1W,EAAA/1W,EAAA,GACAg2W,EAAAh2W,EAAA,GACAi2W,EAAAj2W,EAAA,GACA+5B,EAAA67U,EAAAI,EAAAD,EAAAF,EAEA,OAAA97U,GAIAA,EAAA,EAAAA,EACAnF,EAAA,GAAAohV,EAAAj8U,EACAnF,EAAA,IAAAmhV,EAAAh8U,EACAnF,EAAA,IAAAihV,EAAA97U,EACAnF,EAAA,GAAAghV,EAAA77U,EACAnF,EAAA,IAAAihV,EAAAI,EAAAD,EAAAF,GAAA/7U,EACAnF,EAAA,IAAAmhV,EAAAD,EAAAF,EAAAK,GAAAl8U,EACAnF,GAVA,MAgCAhnC,EAAA6mC,MAdA,SAAAz0B,GACA,IAAAC,EAAAk0B,IAEA,OADAD,EAAAj0B,EAAAD,GACAC,yBC3KA,IAAAqkB,EAAat6B,EAAQ,QAErB2zE,EAAgB3zE,EAAQ,QAExBA,EAAQ,QAoBR,IAAA0D,EAAAiwE,EAAAxpE,QACAlG,KAAA,WACAixB,cAAA,gBAKApG,iBAAA,KAOA0T,WAAA,KAOAqqQ,kBAAA,KACAv3G,WAAA,MACAngK,eACAC,OAAA,EACAC,EAAA,EACA/uB,KAAA,GACAmM,IAAA,GACAlM,MAAA,GACAgP,OAAA,GAGAwiB,OAAA,aAIA81Q,gBAAA,EACAy+E,iBAAA,KACA1+E,gBAAA,EACAD,gBAAA,GAEA4+E,eAAA,GACAC,mBAAA,GAGAC,6BAAA,YACAC,oBAAA,QAEAp8L,oBAAA,MAMArxK,KAAA,WACA00D,EAAAhzE,UAAAse,KAAAjS,MAAAvM,KAAA8E,WACA9E,KAAAolL,iBAMAA,YAAA,SAAAzjH,GACA,IAAAD,EAAA1hE,KAAAid,OACA0kD,GAAA9nC,EAAA82C,MAAAjP,EAAAC,GAAA,GAEA3hE,KAAAksX,mBAQA1oU,SAAA,SAAAjsB,EAAA5zB,GACA,IAAA6lK,EAAAjyI,EAAAvzB,IAAA,iBACA,aAAAwlK,GAAA7lK,EAAAG,aAAA,WAAA0lK,KAAAxpK,MAEAyrL,cAAA,SAAA7yJ,GACAiB,EAAA4E,MAAA,qGAAA77B,GACAg2B,EAAA/1B,eAAAD,KACA5C,KAAAid,OAAAra,GAAAg2B,EAAAh2B,KAEK5C,OAMLksX,gBAAA,WACA,IAAAnqV,EAAA/hC,KAAA+hC,cACAqqQ,EAAApsS,KAAAosS,qBACAn6F,EAAAp4K,EAAAzS,OAAApnB,KAAA40L,gBAAAu3L,aAAA,SAAA91V,GAGA,OAAAA,EAAAryB,IAAA,uBAAAhE,KAAAk4D,gBACKl4D,MACL65B,EAAA4E,KAAAwzK,EAAA,SAAA57K,GACA0L,EAAAxgC,KAAA,MAAA80B,EAAAryB,IAAA,QACAooS,EAAA7qS,KAAA80B,EAAA6hC,qBAKAh1D,EAAAC,QAAAF,wBChIA,IAAA42B,EAAat6B,EAAQ,QAErB2sD,EAAqB3sD,EAAQ,QAE7BklL,EAAWllL,EAAQ,QAEnB06B,EAAgB16B,EAAQ,QAoBxBsyV,EAAA3lS,EAAAxiD,QACAlG,KAAA,WACAqxL,WAAA,MAKAngK,eACAC,OAAA,EAEAC,EAAA,EAEAvvB,MAAA,EACAimD,SAAA,OAEAwlB,UAAA,EACAjrE,KAAA,MACAmM,IAAA,KACAlM,MAAA,MACAgP,OAAA,EACAkE,MAAA,KACAC,OAAA,GACAsc,QAAA,EACAwyL,gBAAA,OAEAqkK,UAAA,EACAC,QAAA,EAEA/rX,MAAA,EACAgsX,aAAA,IAEAvqQ,aAAA,EACAvvG,aACAC,OACAtM,MAAA,QAEA2K,SAMA0N,KAAA,SAAAvB,EAAA6oK,EAAAniL,GAKA3D,KAAAic,MAMAjc,KAAAusX,OACAvsX,KAAAqlL,qBAAApoK,EAAAtZ,GAEA3D,KAAAwsX,aAMApnM,YAAA,SAAAnoK,GACA40U,EAAAjtV,WAAA5E,KAAA,cAAA8E,WAEA9E,KAAAwsX,aAMAC,gBAAA,SAAA1qQ,GACA,MAAAA,IACAA,EAAA/hH,KAAAid,OAAA8kG,cAGA,IAAAx/G,EAAAvC,KAAAic,MAAA1Z,QAEAvC,KAAAid,OAAA3c,KACAyhH,KAAAx/G,QAEAw/G,GAAAx/G,IAAAw/G,EAAAx/G,EAAA,GACAw/G,EAAA,IAAAA,EAAA,IAGA/hH,KAAAid,OAAA8kG,gBAMAwwP,gBAAA,WACA,OAAAvyW,KAAAid,OAAA8kG,cAMA2qQ,WAAA,WACA,OAAA1sX,KAAAuyW,mBAAAvyW,KAAAic,MAAA1Z,QAAA,GAMAoqX,aAAA,SAAA5wU,GACA/7C,KAAAid,OAAAmvW,WAAArwU,GAMA6wU,aAAA,WACA,QAAA5sX,KAAAid,OAAAmvW,UAMAI,UAAA,WACA,IAAA9qT,EAAA1hE,KAAAid,OACA4vW,EAAAnrT,EAAA5wD,SACAw6C,EAAAoW,EAAApW,SACA6iO,EAAAnuR,KAAAusX,UAEA,gBAAAjhU,EAAA,CACA,IAAAwhU,KACAjzV,EAAA4E,KAAAouV,EAAA,SAAAlgX,EAAAC,GACA,IACAmgX,EADAxlX,EAAA0yB,EAAAyxI,iBAAA/+J,GAGAktB,EAAAj6B,SAAA+M,IACAogX,EAAAlzV,EAAAmQ,MAAAr9B,IACApF,MAAAqF,EAEAmgX,EAAAngX,EAGAkgX,EAAAvrX,KAAAwrX,GAEAlzV,EAAAn6B,SAAA6H,IAAA,MAAAA,IAAAkD,MAAAlD,KACAA,EAAA,IAGA4mR,EAAA5sR,KAAAgG,EAAA,MAEAslX,EAAAC,EAGA,IAAAx+M,GACA2Y,SAAA,UACAjlL,KAAA,QACKspD,IAAA,UACLtrD,KAAAic,MAAA,IAAAwoK,IACA7hL,KAAA,QACAY,KAAA8qK,IACKtuK,OACLitF,SAAA4/R,EAAA1+F,IAEAjiQ,QAAA,WACA,OAAAlsB,KAAAic,OAOA+0J,cAAA,WACA,gBAAAhxK,KAAAgE,IAAA,YACA,OAAAhE,KAAAusX,OAAAjqX,WAIAW,EAAA4uV,EACA3uV,EAAAC,QAAAF,wBCxMA,IAAA40N,EAAct4N,EAAQ,QAEtBs4N,IAAA33D,EAAA23D,EAAAG,GAAiCz4N,EAAQ,QAAgB,UAAc8lD,iBAAmB9lD,EAAQ,gCCFlG,IAAAs6B,EAAat6B,EAAQ,QAErBuhD,EAAcvhD,EAAQ,QAEtBsnC,EAAmBtnC,EAAQ,QA2B3Bu/B,EAAA,SAAAj0B,GAIA,QAAAd,KAHAc,QACAi2C,EAAAp1C,KAAA1L,KAAA6K,GAEAA,EACAA,EAAAhI,eAAAkH,KACA/J,KAAA+J,GAAAc,EAAAd,IAIA/J,KAAA23L,aACA33L,KAAA63L,UAAA,KACA73L,KAAAk1C,SAAA,GAGApW,EAAA5+B,WACAC,YAAA2+B,EACA85B,SAAA,EAKAp1D,KAAA,QAQA2gC,QAAA,EAKAokJ,SAAA,WACA,OAAAvoL,KAAA23L,UAAAr1L,SAQA2iE,QAAA,SAAA3kC,GACA,OAAAtgC,KAAA23L,UAAAr3J,IAQAk4K,YAAA,SAAA51M,GAGA,IAFA,IAAA2lL,EAAAvoL,KAAA23L,UAEA52L,EAAA,EAAmBA,EAAAwnL,EAAAtnL,OAAqBF,IACxC,GAAAwnL,EAAAxnL,GAAA6B,SACA,OAAA2lL,EAAAxnL,IAQA4uT,WAAA,WACA,OAAA3vT,KAAA23L,UAAA12L,QAOAg+B,IAAA,SAAAqN,GAOA,OANAA,OAAAtsC,MAAAssC,EAAA/C,SAAAvpC,OACAA,KAAA23L,UAAAp2L,KAAA+qC,GAEAtsC,KAAAgtX,OAAA1gV,IAGAtsC,MAQAitX,UAAA,SAAA3gV,EAAA0K,GACA,GAAA1K,OAAAtsC,MAAAssC,EAAA/C,SAAAvpC,MAAAg3C,KAAAzN,SAAAvpC,KAAA,CACA,IAAAuoL,EAAAvoL,KAAA23L,UACAr3J,EAAAioJ,EAAAzoL,QAAAk3C,GAEA1W,GAAA,IACAioJ,EAAAjnL,OAAAg/B,EAAA,EAAAgM,GAEAtsC,KAAAgtX,OAAA1gV,IAIA,OAAAtsC,MAEAgtX,OAAA,SAAA1gV,GACAA,EAAA/C,QACA+C,EAAA/C,OAAA9kC,OAAA6nC,GAGAA,EAAA/C,OAAAvpC,KACA,IAAAsyD,EAAAtyD,KAAA63L,UACAn3L,EAAAV,KAAAW,KAEA2xD,OAAAhmB,EAAAurJ,YACAvlI,EAAAylI,aAAAzrJ,GAEAA,aAAAxN,GACAwN,EAAAwrJ,qBAAAxlI,IAIA5xD,KAAA0lD,WAOA3hD,OAAA,SAAA6nC,GACA,IAAA5rC,EAAAV,KAAAW,KACA2xD,EAAAtyD,KAAA63L,UACAtP,EAAAvoL,KAAA23L,UACAr3J,EAAAzG,EAAA/5B,QAAAyoL,EAAAj8I,GAEA,OAAAhM,EAAA,EACAtgC,MAGAuoL,EAAAjnL,OAAAg/B,EAAA,GACAgM,EAAA/C,OAAA,KAEA+oB,IACAA,EAAA4lI,eAAA5rJ,GAEAA,aAAAxN,GACAwN,EAAA2rJ,uBAAA3lI,IAIA5xD,KAAA0lD,UACApmD,OAMAklC,UAAA,WACA,IAEAoH,EACAvrC,EAHAwnL,EAAAvoL,KAAA23L,UACArlI,EAAAtyD,KAAA63L,UAIA,IAAA92L,EAAA,EAAeA,EAAAwnL,EAAAtnL,OAAqBF,IACpCurC,EAAAi8I,EAAAxnL,GAEAuxD,IACAA,EAAA4lI,eAAA5rJ,GAEAA,aAAAxN,GACAwN,EAAA2rJ,uBAAA3lI,IAIAhmB,EAAA/C,OAAA,KAIA,OADAg/I,EAAAtnL,OAAA,EACAjB,MAQAgnE,UAAA,SAAAM,EAAAxZ,GAGA,IAFA,IAAAy6H,EAAAvoL,KAAA23L,UAEA52L,EAAA,EAAmBA,EAAAwnL,EAAAtnL,OAAqBF,IAAA,CACxC,IAAAurC,EAAAi8I,EAAAxnL,GACAumE,EAAA57D,KAAAoiD,EAAAxhB,EAAAvrC,GAGA,OAAAf,MAQA24D,SAAA,SAAA2O,EAAAxZ,GACA,QAAA/sD,EAAA,EAAmBA,EAAAf,KAAA23L,UAAA12L,OAA2BF,IAAA,CAC9C,IAAAurC,EAAAtsC,KAAA23L,UAAA52L,GACAumE,EAAA57D,KAAAoiD,EAAAxhB,GAEA,UAAAA,EAAA9oC,MACA8oC,EAAAqsB,SAAA2O,EAAAxZ,GAIA,OAAA9tD,MAEA83L,qBAAA,SAAAxlI,GACA,QAAAvxD,EAAA,EAAmBA,EAAAf,KAAA23L,UAAA12L,OAA2BF,IAAA,CAC9C,IAAAurC,EAAAtsC,KAAA23L,UAAA52L,GACAuxD,EAAAylI,aAAAzrJ,GAEAA,aAAAxN,GACAwN,EAAAwrJ,qBAAAxlI,KAIA2lI,uBAAA,SAAA3lI,GACA,QAAAvxD,EAAA,EAAmBA,EAAAf,KAAA23L,UAAA12L,OAA2BF,IAAA,CAC9C,IAAAurC,EAAAtsC,KAAA23L,UAAA52L,GACAuxD,EAAA4lI,eAAA5rJ,GAEAA,aAAAxN,GACAwN,EAAA2rJ,uBAAA3lI,KAIAlxD,MAAA,WAGA,OAFApB,KAAAk1C,SAAA,EACAl1C,KAAAW,MAAAX,KAAAW,KAAAylD,UACApmD,MAMA8nC,gBAAA,SAAAolV,GAOA,IALA,IAAAhlV,EAAA,KACA6M,EAAA,IAAAlO,EAAA,SACA0hJ,EAAA2kM,GAAAltX,KAAA23L,UACAw1L,KAEApsX,EAAA,EAAmBA,EAAAwnL,EAAAtnL,OAAqBF,IAAA,CACxC,IAAAurC,EAAAi8I,EAAAxnL,GAEA,IAAAurC,EAAAtI,SAAAsI,EAAA+qH,UAAA,CAIA,IAAA+1N,EAAA9gV,EAAAxE,kBACA7P,EAAAqU,EAAAtD,kBAAAmkV,GAQAl1V,GACA8c,EAAAtL,KAAA2jV,GACAr4U,EAAA/N,eAAA/O,IACAiQ,KAAA6M,EAAA/K,SACAqpI,MAAAt+H,KAEA7M,KAAAklV,EAAApjV,SACAqpI,MAAA+5M,IAIA,OAAAllV,GAAA6M,IAGAlb,EAAA2xB,SAAA1sB,EAAAgiB,GACA,IAAA79C,EAAA67B,EACA57B,EAAAC,QAAAF,wBCvTA,IAAAG,EAAc7D,EAAQ,QAEtBi0J,EAAaj0J,EAAQ,QAwBrB8tX,EAAA,qBACAjqX,EAAAs4D,gBACAl4D,KAAA6pX,EACA9wU,OAAA,cACC,SAAA3Y,EAAAjgC,GACDA,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA,WACAC,MAAAnyB,GAGA,SAAArM,EAAA3qB,GACA,IAAAyhN,EAAA76D,EAAAyhF,mBAAArxM,GAAAypV,GAAA91V,GAEA,GAAA82L,EAAA,CACA,IAAAkmJ,EAAAh9U,EAAAk1P,cAEA8nF,IACA3wU,EAAAkf,UAAA0wG,EAAA4hF,cAAAm/H,EAAAlmJ,EAAAn1J,MAAA,sBAGA3hC,EAAA20P,cAAA79D,EAAAn1J,WAIA,IAAAo0T,EAAA,oBACAlqX,EAAAs4D,gBACAl4D,KAAA8pX,EACA/wU,OAAA,cACC,SAAA3Y,EAAAjgC,GACDA,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA,WACAC,MAAAnyB,GAGA,SAAArM,EAAA3qB,GACA,IAAAyhN,EAAA76D,EAAAyhF,mBAAArxM,GAAA0pV,GAAA/1V,GAEA82L,IACAzqL,EAAAD,UAAA0qL,EAAAn1J,UAKA91D,EAAAs4D,gBACAl4D,KAFA,sBAGA+4C,OAAA,cACC,SAAA3Y,EAAAjgC,GACDA,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA,WACAC,MAAAnyB,GAGA,SAAArM,EAAA3qB,GACAg3B,EAAA2pV,aAAA,0BChEA,IAAAC,GAAA,2BAyBAtqX,EAAAC,QAvBA,SAAAQ,EAAAC,GACA,IAAA6pX,EAAA9pX,EAAAK,IAAA,SACAL,EAAAmvO,oBAAA,mBAAAt3M,GACA,IAAAkyV,EAAAD,EAAAjyV,EAAArJ,YAAAs7V,EAAAxsX,QACA6P,EAAA0qB,EAAAtP,UACApb,EAAAkxD,WACA2rT,aAAA,YAGAxnX,MAAAq1B,EAAAx3B,IAAAwpX,IAAAE,IAGA/pX,EAAA+tO,iBAAAl2M,IACA1qB,EAAA2tB,KAAA,SAAA6B,GACA,IAAA4kC,EAAAp0D,EAAAq0D,aAAA7kC,GACAxvB,EAAAmxD,cAAA3hC,GACAn6B,MAAA++D,EAAAlhE,IAAAwpX,GAAA,8BClBA,IAAAnrI,EAAA,GAEA,oBAAAxjM,YACAwjM,EAAAxjM,UAAAwjM,UAAA,IAGA,IAAAp/O,GAQAkD,OAAA,+GACAynX,eAAA,+BAGAlzW,WAIAo7B,WAAAusM,EAAAl5O,MAAA,uCAEA0sB,SAAA,GACA+f,UAAA,SACAK,WAAA,UAKAyiB,UAAA,KACAl3D,UAAA,OACA+8K,kBAAA,IACA7oJ,wBAAA,IACAk0I,gBAAA,iBACAj0I,sBAAA,WACA2kS,mBAAA,IAEA5gS,qBAAA,IACAiwI,YAAA,IAMA4gH,oBAAA,IAEAj3E,QAAA,GAEApwM,EAAAC,QAAAF,sBC9CA,IAAAm6B,KAAA,sMAeAl6B,EAAAC,QAbA,SAAAmX,GACA,aAAAA,EAAA3J,IACA,QAAA5P,EAAA,EAAAc,EAAAyY,EAAAuxK,QAAA5qL,OAA6CF,EAAAc,IAASd,EACtD,OAAAuZ,EAAAuxK,QAAA9qL,GAAA6B,MACA0X,EAAAuxK,QAAA9qL,GAAAmnN,WAAA3mN,MACAiC,KAAA,UACAsoL,SAAA1uJ,EAAA,4BC9BA,IAAAvD,EAAat6B,EAAQ,QAErBsuX,EAAgBtuX,EAAQ,QAoBxB,SAAA6oE,EAAAxlE,GACAirX,EAAAniX,KAAA1L,KAAA4C,GAGAwlE,EAAAloE,WACAC,YAAAioE,EACA5kE,KAAA,cAMAu+B,YAAA,SAOAjF,YAAA,WACA,OAAA98B,KAAAi+B,eAAA,eAAAj+B,KAAAi+B,eAAA,YAAAj+B,KAAA4sB,QAAA,MAQA6d,aAAA,SAAAJ,GACA,IAAAyjV,EAAA9tX,KAAA4sB,QAAA,KACAmhW,EAAA/tX,KAAA4sB,QAAA,KACA,OAAAkhW,EAAApjV,QAAAojV,EAAAnqT,aAAAt5B,EAAA,MAAA0jV,EAAArjV,QAAAqjV,EAAApqT,aAAAt5B,EAAA,MAQAovJ,YAAA,SAAA3oL,GACA,OAAA9Q,KAAA4sB,QAAA,KAAA6sK,YAAA3oL,EAAA,KAAA9Q,KAAA4sB,QAAA,KAAA6sK,YAAA3oL,EAAA,KAQAm5B,YAAA,SAAAn5B,EAAAk9W,EAAA7jV,GACA,IAAAt0B,EAAA7V,KAAA4sB,QAAA,KACAhX,EAAA5V,KAAA4sB,QAAA,KAIA,OAHAud,SACA,GAAAt0B,EAAAghB,cAAAhhB,EAAAihB,YAAAhmB,EAAA,KACAq5B,EAAA,GAAAv0B,EAAAihB,cAAAjhB,EAAAkhB,YAAAhmB,EAAA,KACAq5B,GAQAqyK,UAAA,SAAA1rM,EAAAq5B,GACA,IAAA8jV,EAAAjuX,KAAA4sB,QAAA,KAAArb,MACA28W,EAAAluX,KAAA4sB,QAAA,KAAArb,MACA48W,EAAAF,EAAAnyV,YACAsyV,EAAAF,EAAApyV,YACAz3B,EAAA4pX,EAAA9gX,MAAA2D,EAAA,IACAvM,EAAA2pX,EAAA/gX,MAAA2D,EAAA,IAIA,OAHAq5B,SACA,GAAApiC,KAAAC,IAAAD,KAAAE,IAAAF,KAAAC,IAAAmmX,EAAA,GAAAA,EAAA,IAAA9pX,GAAA0D,KAAAE,IAAAkmX,EAAA,GAAAA,EAAA,KACAhkV,EAAA,GAAApiC,KAAAC,IAAAD,KAAAE,IAAAF,KAAAC,IAAAomX,EAAA,GAAAA,EAAA,IAAA7pX,GAAAwD,KAAAE,IAAAmmX,EAAA,GAAAA,EAAA,KACAjkV,GAQAC,YAAA,SAAAC,EAAAF,GACA,IAAAt0B,EAAA7V,KAAA4sB,QAAA,KACAhX,EAAA5V,KAAA4sB,QAAA,KAIA,OAHAud,SACA,GAAAt0B,EAAAkuD,YAAAluD,EAAA8tD,aAAAt5B,EAAA,KACAF,EAAA,GAAAv0B,EAAAmuD,YAAAnuD,EAAA+tD,aAAAt5B,EAAA,KACAF,GAOAzT,aAAA,SAAAjB,GACA,OAAAz1B,KAAA4sB,QAAA,MAAA6I,EAAA4C,IAAA,WAGAwB,EAAA2xB,SAAA4c,EAAAylT,GACA,IAAA5qX,EAAAmlE,EACAllE,EAAAC,QAAAF,wBCzHA,IAEAwxL,EAFal1L,EAAQ,QAErBk1L,UAqCAvxL,EAAAC,QAbA,WACA,IAAAwxL,EAAAF,IACA,gBAAAj5J,GACA,IAAAg6J,EAAAb,EAAAn5J,GACA0yC,EAAA1yC,EAAA0yC,gBACAmgT,EAAA74L,EAAArnH,MACAmgT,EAAA94L,EAAApnH,kBACAD,EAAAqnH,EAAArnH,MAAAD,EAAAC,MACAw7F,EAAA6rB,EAAApnH,kBAAAF,EAAAE,kBACA,SAAAigT,EAAAlgT,GAAAmgT,EAAA3kN,IAAA,gCCnCA,IAAA4kN,EAAuBhvX,EAAQ,QAE/BqhS,EAAA2tF,EAAA3tF,UACAC,EAAA0tF,EAAA1tF,WAEA2tF,EAAoBjvX,EAAQ,QAE5Bif,EAAAgwW,EAAAhwW,KACA65N,EAAAm2I,EAAAn2I,UACAe,EAAAo1I,EAAAp1I,WACA0mI,EAAA0O,EAAAl2I,WACAj2C,EAAAmsL,EAAAnsL,iBACAv4J,EAAA0kV,EAAA1kV,YA4HA5mC,EAAAC,QAxGA,SAAAQ,EAAAC,GACAD,EAAAikM,iBAAA,gBAAApsK,IAKA,SAAAA,EAAA53B,GACA,IAAAyzB,EAAAyS,EAAAtO,EAAA53B,GACA43B,EAAAnE,aACA,IAAAC,EAAAkE,EAAAx3B,IAAA,UACAgV,EAAA,EACAC,EAAA,EACAq/N,EAAA,KAEA,WAAAhhN,GACAte,EAAA,EAAAjR,KAAAgwB,GACA9e,EAAAlR,KAAAC,IAAAqvB,EAAApe,OAAAoe,EAAAre,OAAA,EACAs/N,EAAAwnI,EAAA,SAAAh5L,EAAAE,GACA,OAAAF,EAAAv6I,aAAAy6I,EAAAz6I,WAAA,KAAAu6I,EAAAwB,UAGAtvK,EAAAqe,EAAAre,MACAC,EAAAoe,EAAApe,OACAq/N,EAAAwnI,KAGA,IAAA78K,EAAAznK,EAAAtP,UAAA0+J,KAAA/vI,KACAmpJ,EAAAf,EAAA1a,SAAA,GAEA,GAAAyb,EAAA,CACAxlL,EAAAykL,GACA29F,EAAA58F,EAAAq0C,EAAAC,GACAr1C,EAAAw0C,SAAAr7L,UAAA4nJ,EAAAyzC,SAAAS,OACA2oD,EAAA78F,EAAAo1C,GACA,IAAAvzO,EAAAm+L,EACAl+L,EAAAk+L,EACAlvL,EAAAkvL,EACA68F,EAAA78F,EAAA,SAAA9qI,GACA,IAAA70D,EAAA60D,EAAA0wH,YAAAvlL,EAEAA,EAAAwB,EAAA+jL,YAAAvlL,IACAwB,EAAAqzD,GAGA70D,EAAAyB,EAAA8jL,YAAAvlL,IACAyB,EAAAozD,GAGAA,EAAAovH,MAAAxzK,EAAAwzK,QACAxzK,EAAAokD,KAGA,IAAAhhC,EAAAryB,IAAAC,EAAA,EAAAwyO,EAAAzyO,EAAAC,GAAA,EACAsuL,EAAAl8J,EAAAryB,EAAA+jL,YAAAvlL,EACAkmM,EAAA,EACAM,EAAA,EACA4jL,EAAA,EACAC,EAAA,EAEA,cAAAp3V,EACAizK,EAAAvxL,GAAAlT,EAAA8jL,YAAAvlL,EAAA6zB,EAAAk8J,GAEAyW,EAAA5xL,GAAAnE,EAAAwzK,MAAA,MACAu4G,EAAA78F,EAAA,SAAA9qI,GACAu1T,GAAAv1T,EAAA0wH,YAAAvlL,EAAA+vL,GAAAmW,EACAmkL,GAAAx1T,EAAAovH,MAAA,GAAAuiB,EACA,IAAA8jL,EAAAtsL,EAAAosL,EAAAC,GACAx1T,EAAAwwH,WACArlL,EAAAsqX,EAAAtqX,EACAE,EAAAoqX,EAAApqX,EACA8+L,KAAAorL,EACAlrL,KAAAmrL,IACS,SAEJ,CACL,IAAA5xW,EAAA0e,EAAAinK,YAEA,OAAA3lL,GAAA,OAAAA,GACA+tL,EAAA5xL,GAAAnT,EAAA8jL,YAAAvlL,EAAA6zB,EAAAk8J,GACAmW,EAAAvxL,GAAAlE,EAAAwzK,MAAA,MACAu4G,EAAA78F,EAAA,SAAA9qI,GACAw1T,GAAAx1T,EAAA0wH,YAAAvlL,EAAA+vL,GAAAyW,EACA4jL,EAAA,OAAA3xW,GAAAo8C,EAAAovH,MAAA,GAAAiiB,EAAAvxL,GAAAkgD,EAAAovH,MAAA,GAAAiiB,EACArxI,EAAAwwH,WACArlL,EAAAoqX,EACAlqX,EAAAmqX,IACW,MAEJ,OAAA5xW,GAAA,OAAAA,IACPytL,EAAAvxL,GAAAlT,EAAA8jL,YAAAvlL,EAAA6zB,EAAAk8J,GACAyW,EAAA5xL,GAAAnE,EAAAwzK,MAAA,MACAu4G,EAAA78F,EAAA,SAAA9qI,GACAu1T,GAAAv1T,EAAA0wH,YAAAvlL,EAAA+vL,GAAAmW,EACAmkL,EAAA,OAAA5xW,GAAAo8C,EAAAovH,MAAA,GAAAuiB,EAAA5xL,GAAAigD,EAAAovH,MAAA,GAAAuiB,EACA3xI,EAAAwwH,WACArlL,EAAAoqX,EACAlqX,EAAAmqX,IACW,QA/FXE,CAAApzV,EAAA53B,0BClCAV,EAAAC,QAAA,SAAA0rX,EAAAtnX,GACA,OACA8D,aAAA,EAAAwjX,GACAvjX,eAAA,EAAAujX,GACAtjX,WAAA,EAAAsjX,GACAtnX,8BC6DApE,EAAA2rX,gBAzCA,SAAAC,EAAAhhV,EAAAC,GACA,IAAAztC,EAAAwuX,EAAAxuX,OACAmxB,EAAAnxB,EAAA6N,SACAsjB,EAAA,IAAAqc,EACArc,EAAA,IAAAsc,EACAztC,EAAAa,SAqCA+B,EAAA6rX,iBAzBA,SAAAD,EAAA5xN,EAAAI,EAAAC,GACA,IAAAj9J,EAAAwuX,EAAAxuX,OACA4mC,EAAA4nV,EAAA5nV,UACAzV,EAAAnxB,EAAA6N,SACAmD,EAAAhR,EAAAgR,MACA09W,EAAAF,EAAAjlW,KAAAilW,EAAAjlW,MAAA,EAGA,GAFAmlW,GAAA9xN,EAEAh2H,EAAA,CACA,IAAA0nC,EAAA1nC,EAAAn/B,KAAA,EACA8mE,EAAA3nC,EAAAl/B,KAAAwxC,IACAw1U,EAAAlnX,KAAAE,IAAAF,KAAAC,IAAA8mE,EAAAmgT,GAAApgT,GAGA,IAAAqgT,EAAAD,EAAAF,EAAAjlW,KACAilW,EAAAjlW,KAAAmlW,EAEAv9V,EAAA,KAAA6rI,EAAA7rI,EAAA,KAAAw9V,EAAA,GACAx9V,EAAA,KAAA8rI,EAAA9rI,EAAA,KAAAw9V,EAAA,GACA39W,EAAA,IAAA29W,EACA39W,EAAA,IAAA29W,EACA3uX,EAAAa,iCC/DA,IAAA4pC,EAAkBzrC,EAAQ,QAE1Bs6B,EAAat6B,EAAQ,QAErBsrC,EAAkBtrC,EAAQ,QAE1BurC,EAAiBvrC,EAAQ,QAQzB2rC,EAAA,SAAArgC,GAEAmgC,EAAAt/B,KAAA1L,KAAA6K,IAGAqgC,EAAAhrC,WACAC,YAAA+qC,EACA1nC,KAAA,OACA6W,MAAA,SAAAwrB,EAAAyyI,GACA,IAAA//J,EAAAvY,KAAAuY,MAEAvY,KAAAk1C,SAAApK,EAAAqK,mBAAA58B,GAAA,GAEAA,EAAAb,KAAAa,EAAA2qB,OAAA3qB,EAAA6sB,WAAA7sB,EAAA+lK,YAAA/lK,EAAA8sB,cAAA9sB,EAAA+sB,cAAA,KACA,IAAA+L,EAAA94B,EAAA84B,KAEA,MAAAA,OAAA,IAEA94B,EAAA/N,KAAAq7B,EAAA7lC,KAAAs4K,GAEAxtI,EAAAo7P,aAAA70P,EAAA94B,KAIAvY,KAAAu4K,aAAA1yI,GACAiF,EAAA65P,WAAA3kS,KAAA6lC,EAAAwL,EAAA94B,GACAvY,KAAAy4K,iBAAA5yI,KAEAiC,gBAAA,WACA,IAAAvvB,EAAAvY,KAAAuY,MAIA,GAFAvY,KAAAk1C,SAAApK,EAAAqK,mBAAA58B,GAAA,IAEAvY,KAAA6nC,MAAA,CACA,IAAAwJ,EAAA94B,EAAA84B,KACA,MAAAA,KAAA,GAAAA,EAAA,GACA,IAAAnJ,EAAA2C,EAAA/C,gBAAAvvB,EAAA84B,KAAA,GAAA94B,EAAAm8B,KAAAn8B,EAAAm9B,UAAAn9B,EAAAo9B,kBAAAp9B,EAAAkqR,YAAAlqR,EAAA68B,MAIA,GAHAlN,EAAA7jC,GAAAkU,EAAAlU,GAAA,EACA6jC,EAAA3jC,GAAAgU,EAAAhU,GAAA,EAEAumC,EAAA04P,UAAAjrR,EAAAg/B,WAAAh/B,EAAAkrR,iBAAA,CACA,IAAA1/K,EAAAxrG,EAAAkrR,gBACAv7P,EAAA7jC,GAAA0/G,EAAA,EACA77E,EAAA3jC,GAAAw/G,EAAA,EACA77E,EAAAlvB,OAAA+qG,EACA77E,EAAAjvB,QAAA8qG,EAGA/jH,KAAA6nC,MAAAK,EAGA,OAAAloC,KAAA6nC,QAGAhO,EAAA2xB,SAAAtgB,EAAAF,GACA,IAAA/nC,EAAAioC,EACAhoC,EAAAC,QAAAF,wBCtEA,IAAA4jC,EAAmBtnC,EAAQ,QAE3B4iS,EAAkB5iS,EAAQ,QAE1BE,EAAYF,EAAQ,QAEpBk7K,EAAAh7K,EAAAg7K,WACA/wK,EAAAjK,EAAAiK,OACAuwM,EAAAx6M,EAAAw6M,UACAV,EAAA95M,EAAA85M,UACA/3H,EAAA/hF,EAAA+hF,KACA2tS,KACAC,EAAA,EACAC,EAAA,IACAC,EAAA,gCACA/rF,EAAA,kBAEAxnR,KAaA,SAAA+1C,EAAAzgB,EAAAqD,GAEA,IAAA3qC,EAAAsnC,EAAA,KADAqD,KAAA6uP,GAGA,GAAA4rF,EAAAplX,GACA,OAAAolX,EAAAplX,GAMA,IAHA,IAAA+7R,GAAAz0P,EAAA,IAAAxwC,MAAA,MACAmY,EAAA,EAEAjY,EAAA,EAAAC,EAAA8kS,EAAA7kS,OAAuCF,EAAAC,EAAOD,IAE9CiY,EAAAjR,KAAAE,IAAAsnX,EAAAzpF,EAAA/kS,GAAA2zC,GAAA17B,SAUA,OAPAo2W,EAAAC,IACAD,EAAA,EACAD,MAGAC,IACAD,EAAAplX,GAAAiP,EACAA,EA0DA,SAAAw9B,EAAAnyC,EAAA2U,EAAA08B,GAQA,MANA,UAAAA,EACArxC,GAAA2U,EACG,WAAA08B,IACHrxC,GAAA2U,EAAA,GAGA3U,EAWA,SAAAoyC,EAAAlyC,EAAA0U,EAAA08B,GAOA,MANA,WAAAA,EACApxC,GAAA0U,EAAA,EACG,WAAA08B,IACHpxC,GAAA0U,GAGA1U,EAkIA,SAAAqmU,EAAAv5R,EAAA81Q,EAAAzyQ,EAAAq2O,EAAAtiR,GACA,IAAA0+S,EACA,SAGA,IAAArhB,GAAAz0P,EAAA,IAAAxwC,MAAA,MACA4H,EAAA+mX,EAAAroE,EAAAzyQ,EAAAq2O,EAAAtiR,GAGA,QAAA1H,EAAA,EAAAc,EAAAikS,EAAA7kS,OAAyCF,EAAAc,EAASd,IAClD+kS,EAAA/kS,GAAA0uX,EAAA3pF,EAAA/kS,GAAA0H,GAGA,OAAAq9R,EAAA1/R,KAAA,MAGA,SAAAopX,EAAAroE,EAAAzyQ,EAAAq2O,EAAAtiR,IACAA,EAAAiB,KAAqBjB,IACrBisC,OACAq2O,EAAA9wE,EAAA8wE,EAAA,OACAtiR,EAAAinX,cAAAz1K,EAAAxxM,EAAAinX,cAAA,GACA,IAAA7kD,EAAApiU,EAAAoiU,QAAA5wH,EAAAxxM,EAAAoiU,QAAA,GAGApiU,EAAAknX,YAAA79T,EAAA,IAAApd,GAGA,IAAAk7U,EAAAnnX,EAAAmnX,aAAA99T,EAAA,IAAApd,GACAjsC,EAAAu/N,YAAA/tB,EAAAxxM,EAAAu/N,YAAA,IAKA,IAFA,IAAA68D,EAAAsiB,EAAAp/S,KAAAE,IAAA,EAAAk/S,EAAA,GAEApmT,EAAA,EAAiBA,EAAA8pU,GAAAhmC,GAAA+qF,EAA6C7uX,IAC9D8jS,GAAA+qF,EAGA,IAAAC,EAAA/9T,EAAAi5N,GAYA,OAVA8kG,EAAAhrF,IACA9Z,EAAA,GACA8kG,EAAA,GAGAhrF,EAAAsiB,EAAA0oE,EACApnX,EAAAsiR,WACAtiR,EAAAonX,gBACApnX,EAAAo8R,eACAp8R,EAAA0+S,iBACA1+S,EAGA,SAAAgnX,EAAAh6U,EAAAhtC,GACA,IAAA0+S,EAAA1+S,EAAA0+S,eACAzyQ,EAAAjsC,EAAAisC,KACAmwP,EAAAp8R,EAAAo8R,aAEA,IAAAsiB,EACA,SAGA,IAAApqR,EAAA+0B,EAAArc,EAAAf,GAEA,GAAA3X,GAAAoqR,EACA,OAAA1xQ,EAGA,QAAAviB,EAAA,GAAkBA,IAAA,CAClB,GAAA6J,GAAA8nQ,GAAA3xQ,GAAAzqB,EAAAinX,cAAA,CACAj6U,GAAAhtC,EAAAsiR,SACA,MAGA,IAAA+kG,EAAA,IAAA58V,EAAA68V,EAAAt6U,EAAAovP,EAAAp8R,EAAAmnX,aAAAnnX,EAAAknX,aAAA5yV,EAAA,EAAAh1B,KAAAkwC,MAAAxC,EAAAx0C,OAAA4jS,EAAA9nQ,GAAA,EAEAA,EAAA+0B,EADArc,IAAAs/D,OAAA,EAAA+6Q,GACAp7U,GAOA,MAJA,KAAAe,IACAA,EAAAhtC,EAAAu/N,aAGAvyL,EAGA,SAAAs6U,EAAA1+U,EAAAwzP,EAAA+qF,EAAAD,GAIA,IAHA,IAAA32W,EAAA,EACAjY,EAAA,EAEAc,EAAAwvC,EAAApwC,OAA6BF,EAAAc,GAAAmX,EAAA6rR,EAAiC9jS,IAAA,CAC9D,IAAAs0I,EAAAhkG,EAAAmwD,WAAAzgG,GACAiY,GAAA,GAAAq8H,MAAA,IAAAu6O,EAAAD,EAGA,OAAA5uX,EASA,SAAAivX,EAAAt7U,GAEA,OAAAod,EAAA,IAAApd,GAUA,SAAA66U,EAAAl+U,EAAAqD,GACA,OAAA34B,EAAAwzW,YAAAl+U,EAAAqD,GAmBA,SAAAkxP,EAAAv0P,EAAAqD,EAAAnf,EAAAswQ,GACA,MAAAx0P,OAAA,IACA,IAAAwxP,EAAAmtF,EAAAt7U,GACAa,EAAAlE,IAAAxwC,MAAA,SACAoY,EAAAs8B,EAAAt0C,OAAA4hS,EACAiC,EAAA7rR,EAMA,GAJAsc,IACAuvQ,GAAAvvQ,EAAA,GAAAA,EAAA,IAGA8b,GAAAw0P,EAAA,CACA,IAAAoqF,EAAApqF,EAAAf,YACAorF,EAAArqF,EAAA3hR,WAEA,SAAA+rW,GAAAnrF,EAAAmrF,EACA5+U,EAAA,GACAkE,UACK,SAAA26U,EAOL,IANA,IAAAznX,EAAA+mX,EAAAU,GAAA36V,IAAA,GAAAA,EAAA,MAAAmf,EAAAmxP,EAAA9a,UACA8/C,QAAAhlC,EAAAglC,QACA7iG,YAAA69D,EAAA79D,cAIAjnO,EAAA,EAAAc,EAAA0zC,EAAAt0C,OAAyCF,EAAAc,EAASd,IAClDw0C,EAAAx0C,GAAA0uX,EAAAl6U,EAAAx0C,GAAA0H,GAKA,OACA8sC,QACAt8B,SACA6rR,cACAjC,cAmCA,SAAAvtP,EAAAjE,EAAA94B,GACA,IAAA88B,GACAE,SACAv8B,MAAA,EACAC,OAAA,GAIA,GAFA,MAAAo4B,OAAA,KAEAA,EACA,OAAAgE,EAMA,IAHA,IACAtkC,EADAs/F,EAAAi/Q,EAAAj/Q,UAAA,EAGA,OAAAt/F,EAAAu+W,EAAAntS,KAAA9wC,KAAA,CACA,IAAA8+U,EAAAp/W,EAAAnE,MAEAujX,EAAA9/Q,GACA+/Q,EAAA/6U,EAAAhE,EAAAmxC,UAAA6tB,EAAA8/Q,IAGAC,EAAA/6U,EAAAtkC,EAAA,GAAAA,EAAA,IACAs/F,EAAAi/Q,EAAAj/Q,UAGAA,EAAAh/D,EAAApwC,QACAmvX,EAAA/6U,EAAAhE,EAAAmxC,UAAA6tB,EAAAh/D,EAAApwC,SAGA,IAAAs0C,EAAAF,EAAAE,MACA86U,EAAA,EACAxrF,EAAA,EAEA8tC,KACA29C,EAAA/3W,EAAAkqR,YACAoD,EAAAttR,EAAAstR,SACA0qF,EAAA1qF,KAAA3hR,WACAssW,EAAA3qF,KAAAf,YAEAwrF,IACA,MAAAC,OAAAD,EAAA,GAAAA,EAAA,IACA,MAAAE,OAAAF,EAAA,GAAAA,EAAA,KAIA,QAAAvvX,EAAA,EAAiBA,EAAAw0C,EAAAt0C,OAAkBF,IAAA,CAKnC,IAJA,IAAA0E,EAAA8vC,EAAAx0C,GACA8hS,EAAA,EACA9lQ,EAAA,EAEA7J,EAAA,EAAmBA,EAAAztB,EAAA+vC,OAAAv0C,OAAwBiyB,IAAA,CAC3C,IACA6vQ,GADAljO,EAAAp6D,EAAA+vC,OAAAtiB,IACAk7J,WAAA71K,EAAA68B,KAAAyqB,EAAAuuH,eAEAq0G,EAAA5iO,EAAA4iO,YAAAM,EAAAN,YAEA/tP,EAAAmrB,EAAAnrB,KAAAquP,EAAAruP,MAAAn8B,EAAAm8B,KAEA+7U,EAAA5wT,EAAAujO,WAAAnpF,EAEA8oF,EAAAK,WAAA4sF,EAAAt7U,IAOA,GANA+tP,IAAAguF,GAAAhuF,EAAA,GAAAA,EAAA,IACA5iO,EAAA5mD,OAAAw3W,EACA5wT,EAAAgjO,WAAAtpF,EAAAwpF,EAAAmzB,eAAA39S,EAAA29S,eAAAu6D,GACA5wT,EAAAnqB,UAAAqtP,KAAArtP,WAAAn9B,EAAAm9B,UACAmqB,EAAAlqB,kBAAAotP,KAAAptP,mBAAA,SAEA,MAAA66U,GAAAH,EAAAxwT,EAAAgjO,WAAA2tF,EACA,OACAj7U,SACAv8B,MAAA,EACAC,OAAA,GAIA4mD,EAAAmmO,UAAAl0O,EAAA+N,EAAAxuB,KAAAqD,GACA,IAAAg8U,EAAA3tF,EAAAiD,UACA2qF,EAAA,MAAAD,GAAA,SAAAA,EAGA,oBAAAA,GAAA,MAAAA,EAAAxxU,OAAAwxU,EAAAzvX,OAAA,GACA4+D,EAAA+wT,aAAAF,EACA/9C,EAAApxU,KAAAs+D,GACA6wT,EAAA,MAEO,CACP,GAAAC,EAAA,CACAD,EAAA7wT,EAAAmmO,UAGA,IAAAnC,EAAAd,EAAAc,oBACAgtF,EAAAhtF,KAAA/xP,MAWA++U,IACAA,EAAA1uF,EAAAijB,eAAAyrE,GAEA1uF,EAAAkC,aAAAwsF,KACAH,EAAA3oX,KAAAE,IAAAyoX,EAAAG,EAAA73W,MAAAy3W,EAAAI,EAAA53W,UAKA,IAAA63W,EAAAruF,IAAA,GAAAA,EAAA,KACAiuF,GAAAI,EACA,IAAAC,EAAA,MAAAR,IAAAxzV,EAAA,KAEA,MAAAg0V,KAAAL,KACAC,GAAAI,EAAAD,GACAjxT,EAAAxuB,KAAA,GACAwuB,EAAAmmO,UAAA0qF,EAAA,IAEA7wT,EAAAxuB,KAAAu5R,EAAA/qQ,EAAAxuB,KAAA0/U,EAAAD,EAAAp8U,EAAAmxP,EAAA9a,UACA8/C,QAAAhlC,EAAAglC,UAEAhrQ,EAAAmmO,UAAAl0O,EAAA+N,EAAAxuB,KAAAqD,GACAg8U,EAAA7wT,EAAAmmO,UAAA8qF,IAKA/zV,GAAA8iC,EAAA7mD,MAAA03W,EACA3tF,IAAAF,EAAA96R,KAAAE,IAAA46R,EAAAhjO,EAAAgjO,aAGAp9R,EAAAuT,MAAA+jB,EACAt3B,EAAAo9R,aACAwtF,GAAAxtF,EACAgC,EAAA98R,KAAAE,IAAA48R,EAAA9nQ,GAGAsY,EAAAnxB,WAAAmxB,EAAAr8B,MAAAihM,EAAA1hM,EAAAytR,UAAAnB,GACAxvP,EAAAyvP,YAAAzvP,EAAAp8B,OAAAghM,EAAA1hM,EAAA6qR,WAAAitF,GAEAC,IACAj7U,EAAAnxB,YAAAosW,EAAA,GAAAA,EAAA,GACAj7U,EAAAyvP,aAAAwrF,EAAA,GAAAA,EAAA,IAGA,IAAAvvX,EAAA,EAAiBA,EAAA4xU,EAAA1xU,OAAwBF,IAAA,CACzC,IAAA8+D,EACA+wT,GADA/wT,EAAA8yQ,EAAA5xU,IACA6vX,aAEA/wT,EAAA7mD,MAAA4gE,SAAAg3S,EAAA,QAAA/rF,EAGA,OAAAxvP,EAGA,SAAA+6U,EAAA9+I,EAAAjhM,EAAA+9I,GAKA,IAJA,IAAA4iM,EAAA,KAAA3gV,EACA4gV,EAAA5gV,EAAAxvC,MAAA,MACA00C,EAAA+7L,EAAA/7L,MAEAx0C,EAAA,EAAiBA,EAAAkwX,EAAAhwX,OAAiBF,IAAA,CAClC,IAAAswC,EAAA4/U,EAAAlwX,GACA8+D,GACAuuH,YACA/8I,OACA2xP,cAAA3xP,IAAA2/U,GAGA,GAAAjwX,EAkBAw0C,EAAAh0C,MACAi0C,QAAAqqB,SAnBA,CACA,IAAArqB,GAAAD,IAAAt0C,OAAA,KAAAs0C,EAAA,IACAC,aACOA,OAQP07U,EAAA17U,EAAAv0C,OACA,IAAAiwX,GAAA17U,EAAA,GAAAwtP,aAAAxtP,EAAA,GAAAqqB,GAEAxuB,IAAA6/U,GAAAF,IAAAx7U,EAAAj0C,KAAAs+D,KA9QA9jD,EAAAwzW,YAAA,SAAAl+U,EAAAqD,GACA,IAAA7O,EAAA40I,IAEA,OADA50I,EAAA6O,QAAA6uP,EACA19P,EAAA0pV,YAAAl+U,IA8RAluC,EAAAogS,eACApgS,EAAAqxC,UAlpBA,SAAA5xC,EAAAqJ,GACA8P,EAAAnZ,GAAAqJ,GAkpBA9I,EAAA2uD,WACA3uD,EAAA2kC,gBAnmBA,SAAAuJ,EAAAqD,EAAAgB,EAAAC,EAAA8sP,EAAArtP,EAAAywP,GACA,OAAAzwP,EAmBA,SAAA/D,EAAAqD,EAAAgB,EAAAC,EAAA8sP,EAAArtP,EAAAywP,GACA,IAAAxwP,EAAAC,EAAAjE,GACA+D,OACAywP,WACAnxP,OACAgB,YACA+sP,gBAEAv+Q,EAAAmxB,EAAAnxB,WACA4gR,EAAAzvP,EAAAyvP,YACAzgS,EAAAmyC,EAAA,EAAAtyB,EAAAwxB,GACAnxC,EAAAkyC,EAAA,EAAAquP,EAAAnvP,GACA,WAAA9O,EAAAxiC,EAAAE,EAAA2f,EAAA4gR,GA/BAqsF,CAAA9/U,EAAAqD,EAAAgB,EAAAC,EAAA8sP,EAAArtP,EAAAywP,GAGA,SAAAx0P,EAAAqD,EAAAgB,EAAAC,EAAA8sP,EAAAoD,GACA,IAAAxwP,EAAAuwP,EAAAv0P,EAAAqD,EAAA+tP,EAAAoD,GACA3hR,EAAA4tC,EAAAzgB,EAAAqD,GAEA+tP,IACAv+Q,GAAAu+Q,EAAA,GAAAA,EAAA,IAGA,IAAAqC,EAAAzvP,EAAAyvP,YACAzgS,EAAAmyC,EAAA,EAAAtyB,EAAAwxB,GACAnxC,EAAAkyC,EAAA,EAAAquP,EAAAnvP,GACAzN,EAAA,IAAArB,EAAAxiC,EAAAE,EAAA2f,EAAA4gR,GAEA,OADA58P,EAAA26P,WAAAxtP,EAAAwtP,WACA36P,EAhBAkpV,CAAA//U,EAAAqD,EAAAgB,EAAAC,EAAA8sP,EAAAoD,IAmmBA1iS,EAAAqzC,cACArzC,EAAAszC,cACAtzC,EAAAozC,yBAthBA,SAAAH,EAAAlO,EAAAmO,GACA,IAAAhyC,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACA0U,EAAAivB,EAAAjvB,OACAD,EAAAkvB,EAAAlvB,MACAq4W,EAAAp4W,EAAA,EACAy8B,EAAA,OACAC,EAAA,MAEA,OAAAS,GACA,WACA/xC,GAAAgyC,EACA9xC,GAAA8sX,EACA37U,EAAA,QACAC,EAAA,SACA,MAEA,YACAtxC,GAAAgyC,EAAAr9B,EACAzU,GAAA8sX,EACA17U,EAAA,SACA,MAEA,UACAtxC,GAAA2U,EAAA,EACAzU,GAAA8xC,EACAX,EAAA,SACAC,EAAA,SACA,MAEA,aACAtxC,GAAA2U,EAAA,EACAzU,GAAA0U,EAAAo9B,EACAX,EAAA,SACA,MAEA,aACArxC,GAAA2U,EAAA,EACAzU,GAAA8sX,EACA37U,EAAA,SACAC,EAAA,SACA,MAEA,iBACAtxC,GAAAgyC,EACA9xC,GAAA8sX,EACA17U,EAAA,SACA,MAEA,kBACAtxC,GAAA2U,EAAAq9B,EACA9xC,GAAA8sX,EACA37U,EAAA,QACAC,EAAA,SACA,MAEA,gBACAtxC,GAAA2U,EAAA,EACAzU,GAAA8xC,EACAX,EAAA,SACA,MAEA,mBACArxC,GAAA2U,EAAA,EACAzU,GAAA0U,EAAAo9B,EACAX,EAAA,SACAC,EAAA,SACA,MAEA,oBACAtxC,GAAAgyC,EACA9xC,GAAA8xC,EACA,MAEA,qBACAhyC,GAAA2U,EAAAq9B,EACA9xC,GAAA8xC,EACAX,EAAA,QACA,MAEA,uBACArxC,GAAAgyC,EACA9xC,GAAA0U,EAAAo9B,EACAV,EAAA,SACA,MAEA,wBACAtxC,GAAA2U,EAAAq9B,EACA9xC,GAAA0U,EAAAo9B,EACAX,EAAA,QACAC,EAAA,SAIA,OACAtxC,IACAE,IACAmxC,YACAC,sBAqbAxyC,EAAAynU,eACAznU,EAAA6sX,gBACA7sX,EAAAosX,cACApsX,EAAAyiS,iBACAziS,EAAAmyC,gBACAnyC,EAAAq/R,SApBA,SAAAjqR,GAGA,IAAAm8B,GAAAn8B,EAAAsd,UAAAtd,EAAAu9B,cAAAv9B,EAAAq9B,UAAAr9B,EAAA09B,YAAA19B,EAAAsd,UAAA,SACAtd,EAAAu9B,YAAA,cAAA1vC,KAAA,KACA,OAAAsuC,GAAA8sC,EAAA9sC,IAAAn8B,EAAAk8B,UAAAl8B,EAAAm8B,4BCjqBA,IAAAtxC,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBi0J,EAAaj0J,EAAQ,QAoBrB6D,EAAAs4D,eAAA,oBAAA93B,EAAAjgC,GACA,IAAA2tX,EAAA99N,EAAA+9N,wBAAA13V,EAAArvB,KAAA7G,EAAAkvD,cAAAlvD,EAAA,YAAA6vJ,EAAAg+N,YAAA,SAAAj6V,EAAAw6K,GACA,OAAAx6K,EAAAvzB,IAAA+tM,EAAA5nI,aAEAsnT,KACA9tX,EAAAkvD,eACAvD,SAAA,WACAyG,MAAAnyB,GACG,SAAArM,EAAA3qB,GACH6kX,EAAAlwX,KAAAgL,MAAAklX,EAAAH,EAAA/5V,GAAA+tJ,SAEAzrJ,EAAA4E,KAAAgzV,EAAA,SAAA9/K,EAAA/kM,GACA+kM,EAAAivJ,aACAp+V,MAAAohC,EAAAphC,MACA0uB,IAAA0S,EAAA1S,IACA4+L,WAAAlsL,EAAAksL,WACAC,SAAAnsL,EAAAmsL,uCCxCA,IAEA2hK,EAFcnyX,EAAQ,QAEtB82C,SAaA,SAAAs7U,EAAA/jV,EAAAhT,EAAAC,EAAAuY,EAAAq1C,EAAA4B,EAAAC,GACA,IAAAolM,EAAA,IAAA70P,EAAA+S,GACAk/O,EAAA,IAAA15O,EAAAxY,GACA,UAAAA,EAAAC,GAAA60P,EAAA5C,GAAAxiM,IAAA,GAAA1vD,EAAAC,GAAA,EAAA60P,EAAA5C,GAAAziM,EAAAqlM,EAAAjnM,EAAA7tD,EAiDA13B,EAAAC,QAvCA,SAAAi6B,EAAAw0V,GAKA,IAJA,IAAA/vX,EAAAu7B,EAAAn8B,OACA01E,KACAtgC,EAAA,EAEAt1C,EAAA,EAAiBA,EAAAc,EAASd,IAC1Bs1C,GAAAq7U,EAAAt0V,EAAAr8B,EAAA,GAAAq8B,EAAAr8B,IAGA,IAAA4zW,EAAAt+T,EAAA,EAGA,IAFAs+T,IAAA9yW,IAAA8yW,EAEA5zW,EAAA,EAAiBA,EAAA4zW,EAAU5zW,IAAA,CAC3B,IAGA6sC,EAEA/S,EACAuY,EANA1hB,EAAA3wB,GAAA4zW,EAAA,IAAAid,EAAA/vX,IAAA,GACAy+B,EAAAv4B,KAAAkwC,MAAAvmB,GACAqyF,EAAAryF,EAAA4O,EAEA1F,EAAAwC,EAAAkD,EAAAz+B,GAIA+vX,GAKAhkV,EAAAxQ,GAAAkD,EAAA,EAAAz+B,MACAg5B,EAAAuC,GAAAkD,EAAA,GAAAz+B,GACAuxC,EAAAhW,GAAAkD,EAAA,GAAAz+B,KANA+rC,EAAAxQ,EAAA,IAAAkD,MAAA,GACAzF,EAAAuC,EAAAkD,EAAAz+B,EAAA,EAAAA,EAAA,EAAAy+B,EAAA,GACA8S,EAAAhW,EAAAkD,EAAAz+B,EAAA,EAAAA,EAAA,EAAAy+B,EAAA,IAOA,IAAAuxV,EAAA9tQ,IACA+tQ,EAAA/tQ,EAAA8tQ,EACAl7S,EAAAp1E,MAAAowX,EAAA/jV,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAAuY,EAAA,GAAA2wE,EAAA8tQ,EAAAC,GAAAH,EAAA/jV,EAAA,GAAAhT,EAAA,GAAAC,EAAA,GAAAuY,EAAA,GAAA2wE,EAAA8tQ,EAAAC,KAGA,OAAAn7S,2BChEA,IAAA98C,EAAat6B,EAAQ,QAIrBmtC,EAFcntC,EAAQ,QAEtBmtC,aAIA+oK,EAFuBl2M,EAAQ,QAE/Bk2M,mBAEAkf,EAA0Bp1N,EAAQ,QAoBlCwyX,EAAA,cAEAhf,EAAA,oBAAA99I,0BAAAppN,MAEA,SAAAy5W,EAAA9pV,GACA,OAAAA,EAAAx3B,IAAA,UAAA+tX,EAAAv2V,EAAArJ,YAGA,SAAAozV,EAAA9vV,GACA,OAAAA,EAAA4C,IAAA5C,EAAA7oB,MA6CA,SAAA4jK,EAAA3gG,EAAAlsE,GACA,IAAAg+N,KAOA,OANAh+N,EAAAikM,iBAAA/3H,EAAA,SAAAr0C,GAEAw2V,EAAAx2V,KAAAy2V,EAAAz2V,IACAmmM,EAAApgO,KAAAi6B,KAGAmmM,EAGA,SAAAlxD,EAAAg1M,GACA,IAAAyM,KAqBA,OApBAr4V,EAAA4E,KAAAgnV,EAAA,SAAAjqV,GACA,IAAA1qB,EAAA0qB,EAAAtP,UAEAoR,EADA9B,EAAAnN,iBACAyO,cACA3E,EAAAmF,EAAAxB,YACA5C,EAAA,aAAAoE,EAAA95B,KAAA85B,EAAAnE,eAAApxB,KAAAY,IAAAwvB,EAAA,GAAAA,EAAA,IAAArnB,EAAAvO,QACA25M,EAAAxvK,EAAAlR,EAAAx3B,IAAA,YAAAk1B,GACA8iL,EAAAtvK,EAAAlR,EAAAx3B,IAAA,eAAAk1B,GACAtmB,EAAA4oB,EAAAx3B,IAAA,UACAsP,EAAAkoB,EAAAx3B,IAAA,kBACAkuX,EAAA3wX,MACA23B,YACAgjL,WACAF,cACAppM,SACAU,iBACAmmV,QAAA8rB,EAAAjoV,GACA0oV,QAAAV,EAAA9pV,OAGA22V,EAAAD,GAGA,SAAAC,EAAAD,GAEA,IAAAxM,KACA7rV,EAAA4E,KAAAyzV,EAAA,SAAAE,EAAA9xV,GACA,IAAAm5T,EAAA24B,EAAA34B,QACAvgU,EAAAk5V,EAAAl5V,UACAysV,EAAAD,EAAAjsB,KACAvgU,YACA0sV,cAAA1sV,EACA2sV,eAAA,EACAC,YAAA,MACAhgN,IAAA,MACAigN,WAEAA,EAAAJ,EAAAI,OACAL,EAAAjsB,GAAAksB,EACA,IAAAK,EAAAoM,EAAApM,QAEAD,EAAAC,IACAL,EAAAE,iBAGAE,EAAAC,GAAAD,EAAAC,KACAhtW,MAAA,EACAytS,SAAA,GAOA,IAAAvqG,EAAAk2K,EAAAl2K,SAEAA,IAAA6pK,EAAAC,GAAAhtW,QAEA+sW,EAAAC,GAAAhtW,MAAAkjM,EACAA,EAAAn0M,KAAAC,IAAA29W,EAAAC,cAAA1pK,GACAypK,EAAAC,eAAA1pK,GAGA,IAAAF,EAAAo2K,EAAAp2K,YACAA,IAAA+pK,EAAAC,GAAAv/D,SAAAzqG,GACA,IAAAppM,EAAAw/W,EAAAx/W,OACA,MAAAA,IAAA+yW,EAAA7/M,IAAAlzJ,GACA,IAAAU,EAAA8+W,EAAA9+W,eACA,MAAAA,IAAAqyW,EAAAG,YAAAxyW,KAEA,IAAAvC,KAsDA,OArDA8oB,EAAA4E,KAAAinV,EAAA,SAAAC,EAAApyJ,GACAxiN,EAAAwiN,MACA,IAAAwyJ,EAAAJ,EAAAI,OACA7sV,EAAAysV,EAAAzsV,UACA4sV,EAAAp5U,EAAAi5U,EAAAG,YAAA5sV,GACA+sV,EAAAv5U,EAAAi5U,EAAA7/M,IAAA,GACA8/M,EAAAD,EAAAC,cACAC,EAAAF,EAAAE,eACAK,GAAAN,EAAAE,IAAAD,KAAA,GAAAI,GACAC,EAAAn+W,KAAAE,IAAAi+W,EAAA,GAEArsV,EAAA4E,KAAAsnV,EAAA,SAAAp4V,EAAA7f,GACA,IAAA24S,EAAA94R,EAAA84R,SAEAA,KAAAy/D,IACAz/D,EAAA1+S,KAAAC,IAAAy+S,EAAAm/D,GAEAj4V,EAAA3U,QACAytS,EAAA1+S,KAAAC,IAAAy+S,EAAA94R,EAAA3U,QAGA4sW,GAAAn/D,EACA94R,EAAA3U,MAAAytS,EACAo/D,OAIAK,GAAAN,EAAAE,IAAAD,KAAA,GAAAI,GACAC,EAAAn+W,KAAAE,IAAAi+W,EAAA,GACA,IACAC,EADAC,EAAA,EAEAvsV,EAAA4E,KAAAsnV,EAAA,SAAAp4V,EAAA2S,GACA3S,EAAA3U,QACA2U,EAAA3U,MAAAktW,GAGAC,EAAAx4V,EACAy4V,GAAAz4V,EAAA3U,OAAA,EAAAitW,KAGAE,IACAC,GAAAD,EAAAntW,MAAAitW,GAGA,IAAAvjV,GAAA0jV,EAAA,EACAvsV,EAAA4E,KAAAsnV,EAAA,SAAAp4V,EAAAq4V,GACAj1W,EAAAwiN,GAAAyyJ,GAAAj1W,EAAAwiN,GAAAyyJ,KACAtjV,SACA1pB,MAAA2U,EAAA3U,OAEA0pB,GAAA/U,EAAA3U,OAAA,EAAAitW,OAGAl1W,EAUA,SAAA2/J,EAAAc,EAAA/7I,EAAA+F,GACA,GAAAg2I,GAAA/7I,EAAA,CACA,IAAA1kB,EAAAygK,EAAA+zM,EAAA9vV,IAMA,OAJA,MAAA1kB,GAAA,MAAAyqB,IACAzqB,IAAAu0W,EAAA9pV,KAGAzqB,GA6GA,IAAAmxV,GACAryR,WAAA,MACAja,KAAA++J,IACA7pN,MAAA,SAAA0wB,GACA,GAAAw2V,EAAAx2V,IAAAy2V,EAAAz2V,GAAA,CAIA,IAAA1qB,EAAA0qB,EAAAtP,UACAwQ,EAAAlB,EAAAnN,iBACAiP,EAAAZ,EAAAI,cACAt3B,EAAAk3B,EAAAhG,aAAA4G,GACA+C,EAAAvvB,EAAA0tB,aAAAh5B,EAAA6yB,KACAs2Q,EAAA79R,EAAA0tB,aAAAlB,EAAAjF,KACAg6V,EAAA7sX,EAAAq3B,eACAy1V,EAAAD,EAAA,IACAn2K,EAAAxrC,EAAAD,GAAAj1I,IAAA8B,EAAA9B,GAAAxiB,MAOA,OALAkjM,EA/UA,KAiVAA,EAjVA,KAqVAx5I,SAGA,SAAA/wC,EAAA7gB,GACA,IACAstB,EADAm0V,EAAA,IAAAxf,EAAA,EAAAphV,EAAApvB,OAEA6/B,KACAowV,KACA9vV,EAAA,EAEA,YAAAtE,EAAAzM,EAAA8S,SACA+tV,EAAAF,GAAAxhX,EAAA9M,IAAAq8B,EAAAjC,GACAo0V,EAAA,EAAAF,GAAAxhX,EAAA9M,IAAA2qS,EAAAvwQ,GACAgE,EAAA1F,EAAAuN,YAAAuoV,EAAA,KAAApwV,GACAmwV,EAAA7vV,KAAAN,EAAA,GACAmwV,EAAA7vV,KAAAN,EAAA,GAGAtxB,EAAA44K,WACA6oM,cACAr2K,WACAuqK,eAAAgM,EAAAn1V,EAAA93B,GAAA,GACA6sX,6BAMA,SAAAL,EAAAx2V,GACA,OAAAA,EAAAnN,kBAAA,gBAAAmN,EAAAnN,iBAAA7qB,KAGA,SAAAyuX,EAAAz2V,GACA,OAAAA,EAAA0yC,iBAAA1yC,EAAA0yC,gBAAAC,MAGA,SAAAskT,EAAAn1V,EAAA93B,EAAA8oS,GACA,OAAAz0Q,EAAA/5B,QAAAw9B,EAAA8rC,kBAAA5jE,IAAA,GAAA8oS,EAAA9oS,EAAAqxB,cAAArxB,EAAAsxB,YAAA,IAAAtxB,EAAAmxB,kBAAA,GAGAxzB,EAAAuvX,gBAvWA,SAAA95V,GACA,IAAAjH,KACA2L,EAAA1E,EAAAnD,KAGA,gBAAA6H,EAAA95B,KAAA,CAMA,IAFA,IAAA01B,EAAAoE,EAAAnE,eAEAp4B,EAAA,EAAiBA,EAAA63B,EAAAr2B,MAAoBxB,IACrC4wB,EAAApwB,KAAAs4B,EAAAmJ,UACA9J,YACAugU,QAXA,QAYAusB,QAAA+L,EAAAhxX,GACK63B,IAGL,IAAA+5V,EAAAR,EAAAxgW,GACA5gB,KAEA,IAAAhQ,EAAA,EAAiBA,EAAA63B,EAAAr2B,MAAexB,IAAA,CAChC,IAAA4L,EAAAgmX,EAAA,MAAAZ,EAAAhxX,GACA4L,EAAA6tO,aAAA7tO,EAAA+1B,OAAA/1B,EAAAqM,MAAA,EACAjI,EAAAxP,KAAAoL,GAGA,OAAAoE,IA4UA5N,EAAAqtK,yBACArtK,EAAAstK,mBACAttK,EAAAutK,uBACAvtK,EAAAm0B,OAxKA,SAAAu4C,EAAAlsE,GACA,IAAAg+N,EAAAnxD,EAAA3gG,EAAAlsE,GACA6tK,EAAAf,EAAAkxD,GACA6jJ,KACAoN,KACA/4V,EAAA4E,KAAAkjM,EAAA,SAAAnmM,GACA,IAAA1qB,EAAA0qB,EAAAtP,UACAwQ,EAAAlB,EAAAnN,iBACAiP,EAAAZ,EAAAI,cACAkpV,EAAAV,EAAA9pV,GACA8qV,EAAA90M,EAAA+zM,EAAAjoV,IAAA0oV,GACAO,EAAAD,EAAA5jV,OACA8jV,EAAAF,EAAAttW,MACAxT,EAAAk3B,EAAAhG,aAAA4G,GACAm/K,EAAAjhL,EAAAx3B,IAAA,mBACAwhX,EAAAQ,GAAAR,EAAAQ,OACA4M,EAAA5M,GAAA4M,EAAA5M,OAEAl1W,EAAA44K,WACAhnJ,OAAA6jV,EACA10V,KAAA20V,IAUA,IARA,IAAAnmV,EAAAvvB,EAAA0tB,aAAAh5B,EAAA6yB,KACAs2Q,EAAA79R,EAAA0tB,aAAAlB,EAAAjF,KACAi2Q,EAAA74F,EAAA3kM,EAAAuvB,GAGAwyV,EAAArtX,EAAAq3B,eACA4pV,EAAAgM,EAAAn1V,EAAA93B,EAAA8oS,GAEAhuQ,EAAA,EAAAz+B,EAAAiP,EAAAvO,QAAyC+9B,EAAAz+B,EAAWy+B,IAAA,CACpD,IAAA/4B,EAAAuJ,EAAA9M,IAAAq8B,EAAAC,GACAomV,EAAA51W,EAAA9M,IAAA2qS,EAAAruQ,GAEA,IAAA71B,MAAAlD,GAAA,CAIA,IAmBAlD,EACAE,EACAyU,EACAC,EAeAmpB,EArCAq9K,EAAAl4M,GAAA,UACAo/W,EAAAF,EAGAn4E,IAEAk3E,EAAAQ,GAAAU,KACAlB,EAAAQ,GAAAU,IACAx1U,EAAAu1U,EAEAroU,EAAAqoU,IAMAE,EAAAnB,EAAAQ,GAAAU,GAAAjnK,IAQAozK,GAEAxuX,EAAAsiX,EACApiX,GAFA69B,EAAA1F,EAAAuN,aAAA1iC,EAAAm/W,KAEA,GAAAH,EACAvtW,EAAAopB,EAAA,GAAAqkV,EACAxtW,EAAAutW,EAEAz+W,KAAAY,IAAAqQ,GAAAyjM,IACAzjM,KAAA,QAAAyjM,GAGA6xF,IAAAk3E,EAAAQ,GAAAU,GAAAjnK,IAAAzmM,KAGA3U,GADA+9B,EAAA1F,EAAAuN,aAAAy8U,EAAAn/W,KACA,GAAAg/W,EACAhiX,EAAAoiX,EACA3tW,EAAAwtW,EACAvtW,EAAAmpB,EAAA,GAAAqkV,EAEA1+W,KAAAY,IAAAsQ,GAAAwjM,IAEAxjM,MAAA,QAAAwjM,GAGA6xF,IAAAk3E,EAAAQ,GAAAU,GAAAjnK,IAAAxmM,IAGAnI,EAAA64K,cAAArpJ,GACAj8B,IACAE,IACAyU,QACAC,cAGGjZ,OAyEHmD,EAAA++V,iDC/ZA,IAAA4wB,EAAmBvzX,EAAQ,QAY3B2D,EAAAC,QAAA,SAAA28D,EAAA9f,EAAAkiF,EAAAiiJ,EAAAzqK,GACA,IAAA3+B,EAAA,IAAA1b,MAAAS,GACA,OAAAgzT,EAAA/3S,EAAA/6B,EAAAkiF,EAAAiiJ,EAAAzqK,0BChBA,IAAAt2G,EAAc7D,EAAQ,QAEtBib,EAAcjb,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBw4M,EAAiBx4M,EAAQ,QA4BzB,IAAA0D,EAAAG,EAAAs6D,iBACAl6D,KAAA,QACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAA63B,EAAAD,EAAAnN,iBACA2Q,EAAAh/B,KAAAg/B,MACAluB,EAAA0qB,EAAAtP,UACAwU,EAAA1gC,KAAAic,MAEA,SAAAw2K,EAAA3hL,EAAAwvB,GACA,IAAAwvC,EAAAh/D,EAAAojD,cAAA5zB,EAAA,oBACAn6B,EAAA2K,EAAAojD,cAAA5zB,EAAA,SAEA,YAAAwvC,EAAA,CAIA,IAAA7gD,EAxBA,SAAAA,GAKA,OAJA4K,EAAA/tB,QAAAmjB,KACAA,WAGAA,EAmBA47V,CAAA/5W,EAAAojD,cAAA5zB,EAAA,eACAsjK,EAAAmU,EAAAtlB,aAAA3iH,GAAA,SAAA3pE,GAQA,OAPAy9L,EAAA7gM,MACAwV,OACA82B,eAAA,GAEAjL,GAAA,IACA7yB,OAAA0d,EAAA,KAAAA,EAAA,QAEA20K,GAGA,SAAAmvL,EAAAC,EAAAC,EAAAC,EAAApiX,EAAAwvB,EAAAo9I,GAEAw1M,EAAAhuV,YAEA,QAAAnkC,EAAA,EAAqBA,EAAAkyX,EAAAhyX,OAAA,EAA0BF,IAAA,CAC/C,IAAA6iM,EAAAnR,EAAA3hL,EAAAwvB,GAEAsjK,IACAA,EAAAuvL,SAAApyX,EAEAiyX,EAAAjyX,IACA6iM,EAAA7gM,KAAA,WAAAiwX,EAAAjyX,IACAyZ,EAAAkjK,EAAA,2BAAAkmB,GACAx1L,SAAA6kX,EAAAlyX,IACay6B,EAAA8E,IAEbsjK,EAAA7gM,KAAA,WAAAkwX,EAAAlyX,IAGAmyX,EAAAj0V,IAAA2kK,KAKA,SAAAwvL,EAAAh2V,GACA,OAAAvD,EAAAlpB,IAAAysB,EAAA,SAAAM,GACA,OAAAjC,EAAAlkB,GAAAkkB,EAAAjkB,MAIA1G,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAqB,GACA,IAAAlD,EAAAtsB,EAAA0uB,cAAAc,GAEA,GAAAlD,EAAA,CAIA,IAAA0C,EAAA,IAAAtlB,EAAA4f,QACAwF,EAAA,IAAAplB,EAAA2f,SACA55B,GACAwnB,OACAqV,WAGA0C,EAAA/X,MAAAqV,OAAAg2V,EAAAh2V,GACAwC,EAAA7X,MAAAqV,OAAAg2V,EAAAh2V,GACA5iB,EAAAgiB,UAAAsD,EAAAv/B,EAAAi7B,EAAA8E,GACA9lB,EAAAgiB,UAAAoD,EAAAr/B,EAAAi7B,EAAA8E,GACA,IAAAo3S,EAAA,IAAAl9T,EAAAskB,MACAo0V,EAAA,IAAA14W,EAAAskB,MACA44S,EAAAz4S,IAAAW,GACA83S,EAAAz4S,IAAAa,GACA43S,EAAAz4S,IAAAi0V,GACAH,EAAAnzV,EAAA7X,MAAAqV,SAAA81V,EAAApiX,EAAAwvB,GAAA,GACAxvB,EAAA+vB,iBAAAP,EAAAo3S,MACKn7R,OAAA,SAAA0qB,EAAAC,GACL,IAAAwwQ,EAAAh3S,EAAAoD,iBAAAojC,GACAtnC,EAAA83S,EAAAzyQ,QAAA,GACAnlC,EAAA43S,EAAAzyQ,QAAA,GACAiuT,EAAAx7C,EAAAzyQ,QAAA,GACA1kE,GACAwnB,OACAqV,OAAAtsB,EAAA0uB,cAAAynC,KAIA1mE,EAAAwnB,MAAAqV,SAIA21V,EAAAnzV,EAAA7X,MAAAqV,OAAA78B,EAAAwnB,MAAAqV,OAAA81V,EAAApiX,EAAAm2D,GAAA,GACAzsD,EAAAoqB,YAAAhF,EAAAr/B,EAAAi7B,GACAhhB,EAAAoqB,YAAA9E,EAAAv/B,EAAAi7B,GACA1qB,EAAA+vB,iBAAAomC,EAAAywQ,MACKjzU,OAAA,SAAA67B,GACLtB,EAAAv6B,OAAAi8B,EAAAoD,iBAAAxD,MACK6mC,UACLr2D,EAAA6vB,kBAAA,SAAA+2S,EAAAp3S,GACA,IAAA4kC,EAAAp0D,EAAAq0D,aAAA7kC,GACAV,EAAA83S,EAAAzyQ,QAAA,GACAnlC,EAAA43S,EAAAzyQ,QAAA,GACAiuT,EAAAx7C,EAAAzyQ,QAAA,GACA9+D,EAAA2K,EAAAojD,cAAA5zB,EAAA,SACAtB,EAAAC,IAAAy4S,GACA93S,EAAAmD,SAAAlJ,EAAAmJ,SAAAkiC,EAAA7lC,SAAA,aAAA4D,gBACAvrB,KAAA,OACAwrB,OAAA/8B,KAEAy5B,EAAA2lC,WAAAL,EAAA7lC,SAAA,sBAAA4D,eACA,IAAA3D,EAAA4lC,EAAA7lC,SAAA,aACAg0V,EAAAnuT,EAAA7lC,SAAA,sBACAi0V,EAAAh0V,EAAAW,WAAAX,EAAAwmJ,YAAA7lJ,UACAszV,EAAAF,EAAApzV,WAAAozV,EAAAvtM,YAAA7lJ,UACAszV,KAAAD,EACAxzV,EAAAkE,OAAAsvV,EACAxzV,EAAAiD,SAAAlJ,EAAAmJ,SAAA1D,EAAAmE,gBACA/rB,KAAAvR,EACA0M,QAAA,MAEAitB,EAAAylC,WAAA8tT,EAAA5vV,eACA,IAAAjxB,EAAA0yD,EAAA7lC,SAAA,aAAAimC,cAAA,UACAkuT,EAAAtuT,EAAA7lC,SAAA,sBAAAimC,eACAS,EAAAb,EAAA7lC,SAAA,SACA2mC,EAAAd,EAAA7lC,SAAA,kBAcA,SAAAslC,IACA7kC,EAAA/8B,KAAA,SAAAwwX,GAGA,SAAA1uT,IACA/kC,EAAA/8B,KAAA,SAAAuwX,GAlBAJ,EAAAlsT,UAAA,SAAA48H,GACAA,EAAAtnJ,SAAA9pC,GACAoxL,EAAAr+H,WAAA1rC,EAAAmQ,MAAAwpV,GACAh5W,EAAA2rD,cAAAy9H,EAAArrL,MAAAqrL,EAAAr+H,WAAAQ,EAAAC,GACAI,aAAAt1D,EAAAuzB,UACAgiC,eAAA/lC,EACA82T,cAAAxzJ,EAAAuvL,SACA7sT,YAAAx1D,EAAA9M,IAAA8M,EAAAixB,WAAA6hK,EAAAuvL,UAAA7yV,GACAimC,UAAApgE,EACAu2L,YAAA,MAYAg7I,EAAArnR,IAAA,aAAAA,IAAA,YAAAA,IAAA,UAAAA,IAAA,YACAqnR,EAAAh4T,GAAA,WAAAilD,GAAAjlD,GAAA,YAAAilD,GAAAjlD,GAAA,SAAAmlD,GAAAnlD,GAAA,WAAAmlD,GACArqD,EAAAmrD,cAAA+xQ,KAEA13U,KAAAic,MAAAnL,GAEArM,OAAA,WACAzE,KAAAg/B,MAAAkG,YACAllC,KAAAic,MAAA,MAEAlX,QAAA,eAGA7B,EAAAC,QAAAF,wBCxMA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBunS,EAA6BvnS,EAAQ,QAErCk0X,EAAkBl0X,EAAQ,QAE1BA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAuBR6D,EAAAg4D,qBAAA,SAAAn+C,GAEA,GAAAA,EAAA,GACAA,EAAA7C,aAAA,IAAA6C,EAAA7C,YAAAnZ,UAAAgc,EAAA7C,gBACA,IAAA5L,EAAAyO,EAAA7C,YAAA5L,KAIAA,IAAAqrB,EAAA/tB,QAAA0C,KACAyO,EAAA7C,YAAA5L,aAMApL,EAAAk4D,kBAAAl4D,EAAA4pD,SAAAC,UAAAE,UAAA,SAAAxpD,EAAAC,GAGAD,EAAAG,aAAA,eAAAs9K,iBAAA0lH,EAAA4sF,QAAA/vX,EAAAC,KAGAR,EAAAs4D,gBACAl4D,KAAA,oBACA+zD,MAAA,oBACAhb,OAAA,sBACCk3U,yBC5DD,IAAArwX,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAoBrB6D,EAAAs4D,gBACAl4D,KAAA,iBACA+zD,MAAA,kBACAhb,OAAA,oBACC,SAAA3Y,EAAAjgC,GACD,IAAA2uW,EAAA3uW,EAAAG,aAAA,YAYA,OAVAwuW,GAAA,MAAA1uU,EAAAm+E,eACAuwP,EAAAma,gBAAA7oV,EAAAm+E,eAEAuwP,EAAAtuW,IAAA,YAAAsuW,EAAAoa,cACApa,EAAAqa,cAAA,IAKAhpX,EAAA81D,YAAA,YACA5/B,EAAAmJ,UACA++E,aAAAuwP,EAAAr1V,OAAA8kG,cACGn+E,KAEHxgC,EAAAs4D,gBACAl4D,KAAA,qBACA+zD,MAAA,sBACAhb,OAAA,UACC,SAAA3Y,EAAAjgC,GACD,IAAA2uW,EAAA3uW,EAAAG,aAAA,YAEAwuW,GAAA,MAAA1uU,EAAA+vV,WACArhB,EAAAqa,aAAA/oV,EAAA+vV,iDCnDA,SAAA32J,GAEA,IAAAhoJ,EAAYz1E,EAAQ,QACpBq0X,EAA0Br0X,EAAQ,QAElCs0X,GACAC,eAAA,qCAGA,SAAAC,EAAA9+S,EAAA1tE,IACAytE,EAAAmQ,YAAAlQ,IAAAD,EAAAmQ,YAAAlQ,EAAA,mBACAA,EAAA,gBAAA1tE,GAgBA,IAXAizS,EAWAx3Q,GACAw3Q,SAXA,oBAAA3rS,eAEA2rS,EAAcj7S,EAAQ,aACnB,IAAAy9N,IAEHw9E,EAAcj7S,EAAQ,SAEtBi7S,GAMAF,kBAAA,SAAAxpS,EAAAmkE,GAEA,OADA2+S,EAAA3+S,EAAA,gBACAD,EAAA43H,WAAA97L,IACAkkE,EAAA23H,cAAA77L,IACAkkE,EAAAw7G,SAAA1/K,IACAkkE,EAAAo4H,SAAAt8L,IACAkkE,EAAAk4H,OAAAp8L,IACAkkE,EAAAm4H,OAAAr8L,GAEAA,EAEAkkE,EAAA83H,kBAAAh8L,GACAA,EAAA4zE,OAEA1P,EAAAs4H,kBAAAx8L,IACAijX,EAAA9+S,EAAA,mDACAnkE,EAAAlJ,YAEAotE,EAAAp1E,SAAAkR,IACAijX,EAAA9+S,EAAA,kCACA/nE,KAAAE,UAAA0D,IAEAA,IAGA2pS,mBAAA,SAAA3pS,GAEA,oBAAAA,EACA,IACAA,EAAA5D,KAAAC,MAAA2D,GACO,MAAA3M,IAEP,OAAA2M,IAOA8pG,QAAA,EAEAo5Q,eAAA,aACAC,eAAA,eAEAC,kBAAA,EAEAhwG,eAAA,SAAAjuQ,GACA,OAAAA,GAAA,KAAAA,EAAA,MAIA+sB,EAAAiyC,SACAslO,QACA45E,OAAA,sCAIAn/S,EAAAlrE,SAAA,gCAAA4kC,GACA1L,EAAAiyC,QAAAvmC,QAGAsmC,EAAAlrE,SAAA,+BAAA4kC,GACA1L,EAAAiyC,QAAAvmC,GAAAsmC,EAAArE,MAAAkjT,KAGA3wX,EAAAC,QAAA6/B,4CC/FA,IAoBA//B,EApBkB1D,EAAQ,QAoB1BmK,QACAlG,KAAA,YACAkxB,eACAC,OAAA,EACAC,EAAA,EACA5F,OAAA,MACAC,WAAA,GAGAlZ,SACA9D,QAAA,QAEAQ,OACApN,MAAA,EACA+I,SAAA,UAEAoE,WACA8iB,YAAA,GAEAhP,UACA7T,OACApN,MAAA,OAMAnC,EAAAC,QAAAF,qCC7CAE,EAAAiuE,YAAA,EAEA,IAEAgjT,EAAAl9S,EAFgB33E,EAAQ,SAMxB80X,EAAAn9S,EAFc33E,EAAQ,SAItByL,EAAA,mBAAAqpX,EAAAt7W,SAAA,iBAAAq7W,EAAAr7W,QAAA,SAAA5N,GAAiH,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAkpX,EAAAt7W,SAAA5N,EAAAhL,cAAAk0X,EAAAt7W,SAAA5N,IAAAkpX,EAAAt7W,QAAA7Y,UAAA,gBAAAiL,GAEzJ,SAAA+rE,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,QAAA,mBAAAs7W,EAAAt7W,SAAA,WAAA/N,EAAAopX,EAAAr7W,SAAA,SAAA5N,GACA,gBAAAA,EAAA,YAAAH,EAAAG,IACC,SAAAA,GACD,OAAAA,GAAA,mBAAAkpX,EAAAt7W,SAAA5N,EAAAhL,cAAAk0X,EAAAt7W,SAAA5N,IAAAkpX,EAAAt7W,QAAA7Y,UAAA,kBAAAiL,EAAA,YAAAH,EAAAG,0BCnBA,IAAAigC,EAAgB7rC,EAAQ,QAExBkG,EAAWlG,EAAQ,QAEnB+0X,EAAY/0X,EAAQ,QAEpBg1X,EAAgBh1X,EAAQ,QAExB4nK,EAAU5nK,EAAQ,QAIlB8vE,EAFY9vE,EAAQ,QAEpB8vE,gBAEAu0I,EAAYrkN,EAAQ,QAEpBi1X,EAAkBj1X,EAAQ,QAE1BgsC,EAAAH,EAAAG,IACA+jC,EAAA,EAAAvnE,KAAAgwB,GACA4sL,EAAA,KAOA,IAAAvtB,IAAA,SACA0kJ,IAAA,MAQA,SAAA24C,EAAA1jV,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,EAAAnsC,EAAAE,GAEA,GAAAA,EAAAysC,GAAAzsC,EAAAmsC,GAAAnsC,EAAAupC,GAAAvpC,EAAAisC,GAAAjsC,EAAAysC,GAAAzsC,EAAAmsC,GAAAnsC,EAAAupC,GAAAvpC,EAAAisC,EACA,SAGA,IAXAk/B,EAWAglT,EAAA9wK,EAAA43H,YAAAxqS,EAAAN,EAAA5C,EAAA0C,EAAAjsC,EAAA6yL,GAEA,OAAAs9L,EACA,SAMA,IAJA,IAEAC,EAAAC,EAFA7wQ,EAAA,EACA8wQ,GAAA,EAGA9zX,EAAA,EAAmBA,EAAA2zX,EAAY3zX,IAAA,CAC/B,IAAA0nF,EAAA2uG,EAAAr2L,GAEAs9C,EAAA,IAAAoqC,GAAA,IAAAA,EAAA,KACAm7H,EAAAK,QAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAAk4C,GAEApkF,IAKAwwX,EAAA,IACAA,EAAAjxK,EAAAI,aAAAhzK,EAAAN,EAAA5C,EAAA0C,EAAAsrS,GAEAA,EAAA,GAAAA,EAAA,IAAA+4C,EAAA,SAlCAnlT,IAAAosQ,EAAA,GACAA,EAAA,GAAAA,EAAA,GACAA,EAAA,GAAApsQ,GAoCAilT,EAAA/wK,EAAAK,QAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAsrS,EAAA,IAEA+4C,EAAA,IACAD,EAAAhxK,EAAAK,QAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAsrS,EAAA,MAIA,GAAA+4C,EAEApsS,EAAAqzP,EAAA,GACA/3N,GAAA4wQ,EAAA3jV,EAAAqN,KACSoqC,EAAAqzP,EAAA,GACT/3N,GAAA6wQ,EAAAD,EAAAt2U,KAEA0lE,GAAAvzE,EAAAokV,EAAAv2U,KAIAoqC,EAAAqzP,EAAA,GACA/3N,GAAA4wQ,EAAA3jV,EAAAqN,KAEA0lE,GAAAvzE,EAAAmkV,EAAAt2U,MAKA,OAAA0lE,EAIA,SAAA+wQ,EAAA/jV,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAAzpC,EAAAE,GAEA,GAAAA,EAAAysC,GAAAzsC,EAAAmsC,GAAAnsC,EAAAupC,GAAAvpC,EAAAysC,GAAAzsC,EAAAmsC,GAAAnsC,EAAAupC,EACA,SAGA,IAAA4mV,EAAA9wK,EAAA44H,gBAAAxrS,EAAAN,EAAA5C,EAAAvpC,EAAA6yL,GAEA,OAAAs9L,EACA,SAEA,IAAAjsS,EAAAm7H,EAAAO,kBAAAnzK,EAAAN,EAAA5C,GAEA,GAAA26C,GAAA,GAAAA,GAAA,GAIA,IAHA,IAAAs7B,EAAA,EACAgxQ,EAAAnxK,EAAA1vB,YAAAljJ,EAAAN,EAAA5C,EAAA26C,GAEA1nF,EAAA,EAAqBA,EAAA2zX,EAAY3zX,IAAA,CAEjC,IAAAs9C,EAAA,IAAA+4I,EAAAr2L,IAAA,IAAAq2L,EAAAr2L,GAAA,KACA6iN,EAAA1vB,YAAAnjJ,EAAAN,EAAA5C,EAAAupJ,EAAAr2L,IAEAsD,IAKA+yL,EAAAr2L,GAAA0nF,EACAs7B,GAAAgxQ,EAAA/jV,EAAAqN,KAEA0lE,GAAAj2E,EAAAinV,EAAA12U,MAIA,OAAA0lE,EAGA1lE,EAAA,IAAA+4I,EAAA,QAAAA,EAAA,QAGA,OAFAwsB,EAAA1vB,YAAAnjJ,EAAAN,EAAA5C,EAAAupJ,EAAA,IAEA/yL,EAEA,EAGAypC,EAAAkD,EAAAqN,KAOA,SAAA22U,EAAAz9W,EAAAC,EAAAC,EAAA2kB,EAAAC,EAAAmzC,EAAAnrE,EAAAE,GAGA,IAFAA,GAAAiT,GAEAC,GAAAlT,GAAAkT,EACA,SAGA,IAAAi4D,EAAA3nE,KAAAyjC,KAAA/zB,IAAAlT,KACA6yL,EAAA,IAAA1nH,EACA0nH,EAAA,GAAA1nH,EACA,IAAAprC,EAAAv8B,KAAAY,IAAAyzB,EAAAC,GAEA,GAAAiI,EAAA,KACA,SAGA,GAAAA,EAAAgrC,EAAA,MAEAlzC,EAAA,EACAC,EAAAizC,EACA,IAAAn0C,EAAAq0C,EAAA,KAEA,OAAAnrE,GAAA+yL,EAAA,GAAA7/K,GAAAlT,GAAA+yL,EAAA,GAAA7/K,EACA4jB,EAEA,EAIA,GAAAq0C,EAAA,CACAE,EAAAtzC,EACAA,EAAAizC,EAAAhzC,GACAA,EAAAgzC,EAAAK,QAEAtzC,EAAAizC,EAAAjzC,GACAC,EAAAgzC,EAAAhzC,GAGAD,EAAAC,IACAA,GAAAizC,GAKA,IAFA,IAAAy0C,EAAA,EAEAhjH,EAAA,EAAiBA,EAAA,EAAOA,IAAA,CACxB,IAAAmvT,EAAA94H,EAAAr2L,GAEA,GAAAmvT,EAAA34S,EAAAlT,EAAA,CACA,IAAAipC,EAAAvlC,KAAAkmC,MAAA1pC,EAAA2rT,GACA/0R,EAAAq0C,EAAA,KAEAliC,EAAA,IACAA,EAAAgiC,EAAAhiC,IAGAA,GAAAlR,GAAAkR,GAAAjR,GAAAiR,EAAAgiC,GAAAlzC,GAAAkR,EAAAgiC,GAAAjzC,KACAiR,EAAAvlC,KAAAgwB,GAAA,GAAAuV,EAAA,IAAAvlC,KAAAgwB,KACAoD,MAGA4oF,GAAA5oF,IAKA,OAAA4oF,EAGA,SAAAkxQ,EAAAnkX,EAAAisB,EAAAm4V,EAAA7wX,EAAAE,GAOA,IANA,IAtMAgR,EAAAC,EAsMAuuG,EAAA,EACAj0E,EAAA,EACAC,EAAA,EACAgB,EAAA,EACAC,EAAA,EAEAjwC,EAAA,EAAiBA,EAAA+P,EAAA7P,QAAiB,CAClC,IAAA8jC,EAAAj0B,EAAA/P,KAwBA,OAtBAgkC,IAAAwG,EAAAyE,GAAAjvC,EAAA,IAEAm0X,IACAnxQ,GAAAywQ,EAAA1kV,EAAAC,EAAAgB,EAAAC,EAAA3sC,EAAAE,KAQA,GAAAxD,IAOAgwC,EAFAjB,EAAAh/B,EAAA/P,GAGAiwC,EAFAjB,EAAAj/B,EAAA/P,EAAA,IAKAgkC,GACA,KAAAwG,EAAAyE,EAKAF,EAFAiB,EAAAjgC,EAAA/P,KAGAgvC,EAFAiB,EAAAlgC,EAAA/P,KAGA,MAEA,KAAAwqC,EAAA2E,EACA,GAAAglV,GACA,GAAAzvX,EAAA8pE,cAAAz/B,EAAAC,EAAAj/B,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAg8B,EAAA14B,EAAAE,GACA,cAIAw/G,GAAAywQ,EAAA1kV,EAAAC,EAAAj/B,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAsD,EAAAE,IAAA,EAGAurC,EAAAh/B,EAAA/P,KACAgvC,EAAAj/B,EAAA/P,KACA,MAEA,KAAAwqC,EAAA0E,EACA,GAAAilV,GACA,GAAAZ,EAAA/kT,cAAAz/B,EAAAC,EAAAj/B,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAg8B,EAAA14B,EAAAE,GACA,cAGAw/G,GAAA0wQ,EAAA3kV,EAAAC,EAAAj/B,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAsD,EAAAE,IAAA,EAGAurC,EAAAh/B,EAAA/P,KACAgvC,EAAAj/B,EAAA/P,KACA,MAEA,KAAAwqC,EAAA6E,EACA,GAAA8kV,GACA,GAAAX,EAAAhlT,cAAAz/B,EAAAC,EAAAj/B,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAg8B,EAAA14B,EAAAE,GACA,cAGAw/G,GAAA+wQ,EAAAhlV,EAAAC,EAAAj/B,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAsD,EAAAE,IAAA,EAGAurC,EAAAh/B,EAAA/P,KACAgvC,EAAAj/B,EAAA/P,KACA,MAEA,KAAAwqC,EAAA4E,EAEA,IAAA54B,EAAAzG,EAAA/P,KACAyW,EAAA1G,EAAA/P,KACA8vC,EAAA//B,EAAA/P,KACA+vC,EAAAhgC,EAAA/P,KACAgtO,EAAAj9N,EAAA/P,KACAitO,EAAAl9N,EAAA/P,KAGAyuE,GADA1+D,EAAA/P,KACA,EAAA+P,EAAA/P,MACA0vC,EAAA1oC,KAAA0jC,IAAAsiM,GAAAl9L,EAAAt5B,EACAm5B,EAAA3oC,KAAA2jC,IAAAqiM,GAAAj9L,EAAAt5B,EAEAzW,EAAA,EACAgjH,GAAAywQ,EAAA1kV,EAAAC,EAAAU,EAAAC,EAAArsC,EAAAE,IAGAwsC,EAAAN,EACAO,EAAAN,GAIA,IAAAk4E,GAAAvkH,EAAAkT,GAAAu5B,EAAAD,EAAAt5B,EAEA,GAAA29W,GACA,GAAA/tN,EAAA53F,cAAAh4D,EAAAC,EAAAs5B,EAAAi9L,IAAAC,EAAAx+J,EAAAzyC,EAAA6rF,EAAArkH,GACA,cAGAw/G,GAAAixQ,EAAAz9W,EAAAC,EAAAs5B,EAAAi9L,IAAAC,EAAAx+J,EAAAo5C,EAAArkH,GAGAurC,EAAA/nC,KAAA0jC,IAAAsiM,EAAAC,GAAAn9L,EAAAt5B,EACAw4B,EAAAhoC,KAAA2jC,IAAAqiM,EAAAC,GAAAl9L,EAAAt5B,EACA,MAEA,KAAA+zB,EAAA0F,EACAF,EAAAjB,EAAAh/B,EAAA/P,KACAiwC,EAAAjB,EAAAj/B,EAAA/P,KAGA0vC,EAAAM,EAFAjgC,EAAA/P,KAGA2vC,EAAAM,EAFAlgC,EAAA/P,KAIA,GAAAm0X,GACA,GAAAzvX,EAAA8pE,cAAAx+B,EAAAC,EAAAP,EAAAO,EAAAjU,EAAA14B,EAAAE,IAAAkB,EAAA8pE,cAAA9+B,EAAAO,EAAAP,EAAAC,EAAA3T,EAAA14B,EAAAE,IAAAkB,EAAA8pE,cAAA9+B,EAAAC,EAAAK,EAAAL,EAAA3T,EAAA14B,EAAAE,IAAAkB,EAAA8pE,cAAAx+B,EAAAL,EAAAK,EAAAC,EAAAjU,EAAA14B,EAAAE,GACA,cAIAw/G,GAAAywQ,EAAA/jV,EAAAO,EAAAP,EAAAC,EAAArsC,EAAAE,GACAw/G,GAAAywQ,EAAAzjV,EAAAL,EAAAK,EAAAC,EAAA3sC,EAAAE,GAGA,MAEA,KAAAgnC,EAAAM,EACA,GAAAqpV,GACA,GAAAzvX,EAAA8pE,cAAAz/B,EAAAC,EAAAgB,EAAAC,EAAAjU,EAAA14B,EAAAE,GACA,cAIAw/G,GAAAywQ,EAAA1kV,EAAAC,EAAAgB,EAAAC,EAAA3sC,EAAAE,GAOAurC,EAAAiB,EACAhB,EAAAiB,GASA,OAJAkkV,IApWA3/W,EAoWAw6B,EApWAv6B,EAoWAw7B,EAnWAjpC,KAAAY,IAAA4M,EAAAC,GAAAmvM,KAoWA5gG,GAAAywQ,EAAA1kV,EAAAC,EAAAgB,EAAAC,EAAA3sC,EAAAE,IAAA,GAGA,IAAAw/G,EAWA5gH,EAAAunC,QARA,SAAA+jM,EAAApqO,EAAAE,GACA,OAAA0wX,EAAAxmJ,EAAA,KAAApqO,EAAAE,IAQApB,EAAAosE,cALA,SAAAk/J,EAAA1xM,EAAA14B,EAAAE,GACA,OAAA0wX,EAAAxmJ,EAAA1xM,GAAA,EAAA14B,EAAAE,0BCtYA,IAAAs1B,EAAat6B,EAAQ,QAErBm4C,EAAiBn4C,EAAQ,QA6DzB,SAAA41X,EAAArkX,EAAA0qB,EAAAviB,GACA,GAAAnI,EAAAvO,QAyBA,IArBA,IAmBA6yX,EAnBA/5V,EAAAG,EAAAnN,iBAEAooS,EAAAj7R,EAAAk7R,iBAEA4pB,EAAAxvU,EAAA0tB,aAAA,UACA6B,EAAAvvB,EAAA0tB,aAAA,SACA62V,EAAAx7V,EAAAlpB,IAAA8lT,EAAA,SAAA6+D,GACA,OAAAz7V,EAAAlpB,IAAA2kX,EAAA5/S,QAAA,SAAAp1C,GACA,IAAA5C,EAAArC,EAAA4O,YAAAn5B,EAAA9M,IAAAs8U,EAAAhgT,IAEA,OADA5C,EAAA,GAAA5sB,EAAA9M,IAAAq8B,EAAAC,GACA5C,MAGA6a,EAqCA,SAAAznC,GASA,IARA,IAAAivU,EAAAjvU,EAAA7P,OACA0/U,EAAA7vU,EAAA,GAAA7P,OACAs0X,KACAvkV,KACA/oC,EAAA,EAEAswC,KAEAx3C,EAAA,EAAiBA,EAAA4/U,IAAc5/U,EAAA,CAC/B,QAAAmyB,EAAA,EAAAsiW,EAAA,EAA6BtiW,EAAA6sT,IAAc7sT,EAC3CsiW,GAAA1kX,EAAAoiB,GAAAnyB,GAAA,GAGAy0X,EAAAvtX,IACAA,EAAAutX,GAGAD,EAAAh0X,KAAAi0X,GAGA,QAAA/sW,EAAA,EAAiBA,EAAAk4T,IAAcl4T,EAC/BuoB,EAAAvoB,IAAAxgB,EAAAstX,EAAA9sW,IAAA,EAGAxgB,EAAA,EAEA,QAAAjH,EAAA,EAAiBA,EAAA2/U,IAAc3/U,EAAA,CAC/B,IAAAsjB,EAAAixW,EAAAv0X,GAAAgwC,EAAAhwC,GAEAsjB,EAAArc,IACAA,EAAAqc,GAMA,OAFAi0B,EAAAvH,KACAuH,EAAAtwC,MACAswC,EA1EAk9U,CAAAJ,GACAK,EAAAn9U,EAAAvH,GACA65J,EAAA5xL,EAAAs/B,EAAAtwC,IAEAm2C,EAAAq4Q,EAAAx1T,OACA0rB,EAAA8pS,EAAA,GAAA/gP,QAAAz0E,OAGAiyB,EAAA,EAAiBA,EAAAvG,IAAOuG,EAAA,CACxBkiW,EAAAM,EAAAxiW,GAAA23K,EACA/5L,EAAA64K,cAAA8sI,EAAA,GAAA/gP,QAAAxiD,IACAyiW,WAAA,EACAtxX,EAAAgxX,EAAA,GAAAniW,GAAA,GACA8d,GAAAokV,EACA7wX,EAAA8wX,EAAA,GAAAniW,GAAA,GAAA23K,IAGA,QAAA9pM,EAAA,EAAmBA,EAAAq9C,IAAOr9C,EAC1Bq0X,GAAAC,EAAAt0X,EAAA,GAAAmyB,GAAA,GAAA23K,EACA/5L,EAAA64K,cAAA8sI,EAAA11T,GAAA20E,QAAAxiD,IACAyiW,WAAA50X,EACAsD,EAAAgxX,EAAAt0X,GAAAmyB,GAAA,GACA8d,GAAAokV,EACA7wX,EAAA8wX,EAAAt0X,GAAAmyB,GAAA,GAAA23K,KAsDA3nM,EAAAC,QAnIA,SAAAQ,EAAAC,GACAD,EAAAikM,iBAAA,sBAAApsK,GACA,IAAA1qB,EAAA0qB,EAAAtP,UACAg8I,EAAA1sI,EAAAnN,iBACAgJ,KAEA6Q,EAAAggI,EAAA3kG,UACAlsC,EAAA6Q,OACA,IAAAxV,EAAA8I,EAAAx3B,IAAA,eACAyxB,EAAAyyI,EAAAt7I,UACAyK,EAAA3E,cAEA,eAAA+C,EAAA3Y,QACA4V,EAAA,GAAAglB,EAAAhL,aAAAha,EAAA,GAAAwV,EAAAjvB,QACAyZ,EAAA,GAAAglB,EAAAhL,aAAAha,EAAA,GAAAwV,EAAAjvB,QAEAk8W,EAAArkX,EAAA0qB,EADA0M,EAAAjvB,OAAAyZ,EAAA,GAAAA,EAAA,MAGAA,EAAA,GAAAglB,EAAAhL,aAAAha,EAAA,GAAAwV,EAAAlvB,OACA0Z,EAAA,GAAAglB,EAAAhL,aAAAha,EAAA,GAAAwV,EAAAlvB,OAEAm8W,EAAArkX,EAAA0qB,EADA0M,EAAAlvB,MAAA0Z,EAAA,GAAAA,EAAA,KAIA5hB,EAAA44K,UAAA,aAAAryJ,4BCnDc93B,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAErB0mM,EAAqB1mM,EAAQ,QAE7BohE,EAAoBphE,EAAQ,QAE5B+hR,EAAoB/hR,EAAQ,QAI5B68V,EAFc78V,EAAQ,QAEtB68V,gBAoBAw5B,EAAA3vL,EAAAv8L,QACAlG,KAAA,sBAyBAkxB,eACAhK,SAAA,KAKAmrW,SAAA,EAEAC,SAAA,EAEAn9V,MAAA,OAEA0tK,UAAA,GAGAD,WAAA,GAGA2vL,WAAA,YACA14L,UAAA,KAMAjsB,WAAA,KAGAppJ,YAAA,EAKAhF,aAAA,WAEAqrQ,QAAA,GAEAt0H,WAAA,EAEA2/C,UAAA,MAQApkB,cAAA,SAAA3zH,EAAA+7G,GACAk4M,EAAAhxX,WAAA5E,KAAA,gBAAA8E,WAQA9E,KAAAg2X,cACAh2X,KAAAsmM,cAMA,IAAAjuE,EAAAr4H,KAAAi2X,MAAAj2X,KAAAk2X,iBAEAC,EAAAn2X,KAAAi2X,OAAAvqX,KAAA1L,MAEAA,KAAAo2X,eAAAz0T,EAAA+7G,GAEA,IAAAtM,EAAApxK,KAAAid,OAAAm0J,WACApxK,KAAAumM,YAAA,SAAAjlI,EAAAvlB,GACA,eAAAs8E,GACA/2D,EAAAu7H,cAAA,WACAv7H,EAAA8vG,WAAAv3I,EAAAmQ,MAAAonI,KAEA9vG,EAAA02F,WAAAh4J,KAAA87B,YACAwlC,EAAAu7H,cAAA,YACAv7H,EAAA+7H,UAAAxjK,EAAAlpB,IAAA3Q,KAAAg2X,WAAA,SAAAz4L,GACAA,EAAA1jK,EAAAmQ,MAAAuzJ,GAQA,MANA,YAAAxhJ,IAGAwhJ,EAAAh8H,OAAA,MAGAg8H,QAUAoJ,qBAAA,WAQA,IAAA1pL,EAAAjd,KAAAid,OACAo5W,KACA9zT,EAAA5B,EAAAk/H,kBACAz8H,EAAApjE,KAAAojE,aAkBA,SAAAje,EAAAh6C,EAAA4wC,EAAA+X,GACA,OAAA3oD,KAAA4wC,KAAAliB,EAAAj6B,SAAAuL,EAAA4wC,IAAA5wC,EAAA4wC,GAAAl5C,eAAAixD,GAAA3oD,EAAA4wC,KAAA+X,GAlBAj6B,EAAA4E,KAAAxhB,EAAAmV,OAAA,SAAAmrK,GACA1jK,EAAA4E,KAAA8jC,EAAA,SAAAzO,GACAypI,EAAA16L,eAAAixD,KACAuiU,EAAAviU,GAAA,OAIAj6B,EAAA4E,KAAA43V,EAAA,SAAAtpX,EAAA+mD,GACA,IAAAwiU,EAAA,EACAz8V,EAAA4E,KAAAz+B,KAAA8gE,UAAA,SAAA/kB,GACAu6U,GAAAnxU,EAAAloC,EAAA8+B,EAAA+X,IAAA3O,EAAAloC,EAAA1c,OAAAw7C,EAAA+X,IACO9zD,OACPs2X,GAAAz8V,EAAA4E,KAAAz+B,KAAA8gE,UAAA,SAAA/kB,IACA9+B,EAAA8+B,KAAA9+B,EAAA8+B,QAA6C+X,GAAAwtN,EAAAt9Q,IAAA8vD,EAAA,YAAA/X,EAAA,oBAAAqnB,MAExCpjE,MAOLimM,EAAA/lM,UAAAymM,qBAAAp6L,MAAAvM,KAAA8E,YAEAsxX,eAAA,SAAAz0T,EAAA+7G,GACA,IAAAh8G,EAAA1hE,KAAAid,OACAogL,EAAAr9L,KAAAg2X,WAEAtrW,GAAAgzJ,EAAAh8G,EAAAC,GAAAj3C,aAWA,GAVAg3C,EAAAh3C,WAEAmP,EAAA4E,KAAA4+J,EAAA,SAAAE,EAAA3wL,GACA,IAAA7C,EAAA/J,KAAAu/U,kBAAAhiJ,GAEA7yK,EAAA7nB,eAAAkH,KACA2gB,EAAA3gB,IAAA,IAEK/J,MAEL,WAAA0hE,EAAA1+C,aAAA,CAEA,IAAAuzW,GAAA,EACA18V,EAAA4E,KAAA4+J,EAAA,SAAAE,EAAA3wL,GACA,IAAA7C,EAAA/J,KAAAu/U,kBAAAhiJ,GAEA7yK,EAAA3gB,KACAwsX,EAAA7rW,EAAA3gB,IAAA,EAAAwsX,GAAA,IAEOv2X,QAQPu/U,kBAAA,SAAAhiJ,GACA,qBAAAv9L,KAAAi2X,MAAA14L,EAAAh2L,MAAA,GAAAg2L,EAAA3wL,MAAA,IAMAwyU,aAAA,WACA,OAAAp/U,KAAAg2X,YAOAE,eAAA,WACA,IAAAj5W,EAAAjd,KAAAid,OACA,OAAAA,EAAAmV,QAAAnV,EAAAmV,OAAAnxB,OAAA,WAAAjB,KAAAid,OAAAm0J,WAAA,4BAOAw1B,YAAA,SAAAl8K,GACA1qB,KAAAid,OAAAyN,SAAAmP,EAAAmQ,MAAAtf,IAOAm3C,cAAA,SAAAt6D,GACA,IAAAqF,EAAA+zD,EAAA++H,eAAAn4L,EAAAvH,KAAAg2X,YACA,aAAAppX,GAAA5M,KAAAid,OAAAyN,SAAA1qB,KAAAu/U,kBAAAv/U,KAAAg2X,WAAAppX,KAAA,wBAQA+tJ,sBAAA,SAAAglC,GACA,IAAA5uL,KAcA,OAbA/Q,KAAA6mM,iBAAA,SAAArrK,GACA,IAAAsrK,KACAh2L,EAAA0qB,EAAAtP,UACApb,EAAA2tB,KAAAz+B,KAAAi7J,iBAAAnqJ,GAAA,SAAAvJ,EAAA62B,GAEAuiC,EAAA++H,eAAAn4L,EAAAvH,KAAAg2X,cACAr2L,GAAAmH,EAAAvlM,KAAA68B,IACOp+B,MACP+Q,EAAAxP,MACA8iE,SAAA7oC,EAAA95B,GACA08B,UAAA0oK,KAEK9mM,MACL+Q,GAQAguU,kBAAA,SAAAxhJ,GACA,IAAAuhJ,EAEA,GAAA9+U,KAAAojE,aACA07Q,EAAAvhJ,EAAAh2L,WAEA,SAAAg2L,EAAAh2L,MACAu3U,EAAAvhJ,EAAAh2L,UACO,CACP,IAAAivX,EAAAj5L,EAAA7jJ,aACAolS,EAAA03C,EAAA,MAAA/8U,KAAA+8U,EAAA,KAAA/8U,IAAA,GAAA+8U,EAAA,GAAAA,EAAA,MAIA,OAAA13C,GAEA/3I,cAAA,SAAAC,GAEA,IAAAhnM,KAAAojE,aAAA,CAIA,IAAAjhC,KACAG,KACAgyH,EAAAt0J,KA6BAq9L,EAAAr9L,KAAAg2X,WAAA1zX,QAEA,GAAA+6L,EAAAp8L,OAIK,CACL,IAAA0lL,EAAA0W,EAAA,GAAA3jJ,SAAA,GACAitI,KAAAltI,KAAA4jJ,EAAA16J,SACA+W,WAAAD,IAAAktI,MAEAA,EAAA0W,IAAAp8L,OAAA,GAAAy4C,SAAA,MACAD,KAAA4jJ,EAAA97L,MACAm4C,UAAAitI,EAAAltI,YAVA4jJ,EAAA97L,MACAm4C,WAAAD,WAaA,IAAA+sD,GAAA/sD,IAWA,OAVA5f,EAAA4E,KAAA4+J,EAAA,SAAAE,GACA,IAAA7jJ,EAAA6jJ,EAAA7jJ,SAEAA,IAEAA,EAAA,GAAA8sD,GAAA4gG,GAAA5gG,EAAA9sD,EAAA,kBACA0tJ,EAAA1tJ,EAAAp3C,SACAkkG,EAAA9sD,EAAA,KAEK15C,OAELmiC,QACAG,eAzDA,SAAA8kK,EAAA1tJ,EAAA4oB,GACA,IAAAw8Q,EAAAxqL,EAAAyqL,mBACArlS,aAGA4oB,IACAA,EAAAgyF,EAAAzyF,cAAAi9Q,IAGA,IAAA34U,EAAA6gM,EAAA83I,EAAAx8Q,GAEA5oB,EAAA,MAAAD,IACAnX,EAAA,GAAAn8B,EACOuzC,EAAA,KAAAD,IACPnX,EAAA,GAAAn8B,EAEAg8B,EAAA5gC,MACAgG,MAAAmyC,EAAA,GACAvzC,UAEAoB,MAAAmyC,EAAA,GACAvzC,cA8CAgwX,GACAnuW,YAAA,WACA,IAAA05C,EAAA1hE,KAAAid,OACAogL,EAAAr9L,KAAAg2X,WACA3sX,EAAAtB,KAAAC,IAAA05D,EAAAr4D,UAAA,IACA2uJ,EAAAh4J,KAAA87B,YACA9T,EAAA05C,EAAA15C,YACAA,EAAAjgB,KAAAE,IAAA2xE,SAAA5xD,EAAA,OACA05C,EAAA15C,cAGA,IAFA,IAAAyuW,GAAAz+N,EAAA,GAAAA,EAAA,IAAAhwI,GAEAyuW,EAAAnvX,QAAA+B,KAAAotX,GAAAptX,EAAA,GACAA,IAGAq4D,EAAAr4D,YACAotX,KAAAnvX,QAAA+B,GACA,IAAAuD,EAAA,EAEA80D,EAAAm0T,SACAx4L,EAAA97L,MACAqL,UACA8sC,WAAAD,IAAAu+G,EAAA,IACAl/E,OAAA,OAIA,QAAA0tB,EAAAwxD,EAAA,GAAAn2J,EAAA+K,EAAAob,EAA6Dpb,EAAA/K,EAAa2kG,GAAAiwR,EAAA,CAC1E,IAAAxuX,EAAA2E,IAAAob,EAAA,EAAAgwI,EAAA,GAAAxxD,EAAAiwR,EACAp5L,EAAA97L,MACAqL,UACA8sC,UAAA8sD,EAAAv+F,GACA6wE,OAAA,OAIApX,EAAAo0T,SACAz4L,EAAA97L,MACAqL,UACA8sC,UAAAs+G,EAAA,GAAAv+G,KACAq/B,OAAA,OAIAsjR,EAAA/+J,GACAxjK,EAAA4E,KAAA4+J,EAAA,SAAAE,GACAA,EAAAlsJ,KAAArxC,KAAAs5J,gBAAAikC,EAAA7jJ,WACK15C,OAELoxK,WAAA,WACA,IAAA1vG,EAAA1hE,KAAAid,OACA4c,EAAA4E,KAAAijC,EAAA0vG,WAAA,SAAAusB,GAGA39L,KAAAg2X,WAAAz0X,MACA8vC,KAAArxC,KAAAs5J,gBAAAqkC,GAAA,GACAp2L,MAAAo2L,KAEK39L,MAEL02X,EAAAh1T,EAAA1hE,KAAAg2X,aAEA5jW,OAAA,WACA,IAAAsvC,EAAA1hE,KAAAid,OACAogL,EAAAr9L,KAAAg2X,WACAn8V,EAAA4E,KAAAijC,EAAAtvC,OAAA,SAAAukW,EAAA/pX,GACAitB,EAAAj6B,SAAA+2X,KACAA,GACApvX,MAAAovX,IAIA,IAAAhqX,GACA0kC,KAAA,GACAzkC,SAOA,GAJA,MAAA+pX,EAAAlkX,QACA9F,EAAA0kC,KAAAslV,EAAAlkX,OAGAkkX,EAAA9zX,eAAA,UACA,IAAA0E,EAAAoF,EAAApF,MAAAovX,EAAApvX,MACAoF,EAAA+sC,UAAAnyC,KACAoF,EAAAmsE,OAAA,SACO,CASP,IANA,IAAAp/B,EAAA/sC,EAAA+sC,YACAo/B,EAAAnsE,EAAAmsE,OAAA,KACA89S,GAAA,OACAC,IAAAp9U,SACAq9U,KAEAz6B,EAAA,EAAwBA,EAAA,EAAQA,IAAA,CAGhC,IAFA,IAAAluE,IAAA,sCAAAkuE,GAEAt7V,EAAA,EAAyBA,EAAA,SAAA24C,EAAA2iT,GAA+Bt7V,IACxD24C,EAAA2iT,GAAAs6B,EAAAxoG,EAAAptR,IACA+3E,EAAAujR,GAAAu6B,EAAA71X,GACA+1X,EAAAz6B,GAAA,IAAAt7V,EAGA,MAAA24C,EAAA2iT,KAAA3iT,EAAA2iT,GAAAw6B,EAAAx6B,IAGAy6B,EAAA,IAAAp9U,EAAA,KAAAD,MAAAq/B,EAAA,MACAg+S,EAAA,IAAAp9U,EAAA,MAAAD,MAAAq/B,EAAA,MAEAp/B,EAAA,KAAAA,EAAA,IAAAo/B,EAAA,IAAAA,EAAA,KAGAnsE,EAAApF,MAAAmyC,EAAA,IAIA/sC,EAAA40D,OAAAZ,EAAAy/H,gBAAAu2L,GACAt5L,EAAA97L,KAAAoL,IACK3M,MAEL02X,EAAAh1T,EAAA27H,GAEA++J,EAAA/+J,GACAxjK,EAAA4E,KAAA4+J,EAAA,SAAAE,GACA,IAAAzkH,EAAAykH,EAAAzkH,MACAopM,IAAA,SAAAppM,EAAA,cAAAA,EAAA,KACAykH,EAAAlsJ,KAAAksJ,EAAAlsJ,MAAArxC,KAAAs5J,gBAAA,MAAAikC,EAAAh2L,MAAAg2L,EAAAh2L,MAAAg2L,EAAA7jJ,UAAA,EAAAwoO,IACKliR,QAIL,SAAA02X,EAAAh1T,EAAA27H,GACA,IAAA9gK,EAAAmlC,EAAAnlC,SAEA,aAAAmlC,EAAA5kD,QAAAyf,MACA8gK,EAAA91K,UAIA,IAAAtkB,EAAA2yX,EACA1yX,EAAAC,QAAAF,wBC1gBA,IAoBAA,EApBkB1D,EAAQ,QAoB1BmK,QACAlG,KAAA,WACAkxB,eACAC,OAAA,EACAC,EAAA,EACA5F,QAAA,kBACAC,YAAA,MAEA5lB,UAAA,EACA0M,SACA9D,QAAA,QAEAQ,OACApN,MAAA,EACA+I,SAAA,OAEAwS,WACApd,KAAA,UAEA8iB,UACA7T,OACApN,MAAA,GAEAub,WACA5H,MAAA,IAGA4wJ,gBAAA,YAIA1mK,EAAAC,QAAAF,0BCnDA,IAAA42B,EAAat6B,EAAQ,QAoBrBw3X,KAEA,SAAAjrU,IACA9rD,KAAAg3X,sBAGAlrU,EAAA5rD,WACAC,YAAA2rD,EACApiB,OAAA,SAAA/lC,EAAAC,GACA,IAAAqzX,KACAp9V,EAAA4E,KAAAs4V,EAAA,SAAAG,EAAA1zX,GACA,IAAAqpB,EAAAqqW,EAAAxtV,OAAA/lC,EAAAC,GACAqzX,IAAAliX,OAAA8X,SAEA7sB,KAAAg3X,mBAAAC,GAEA16U,OAAA,SAAA54C,EAAAC,GACAi2B,EAAA4E,KAAAz+B,KAAAg3X,mBAAA,SAAA37V,GACAA,EAAAkhB,QAAAlhB,EAAAkhB,OAAA54C,EAAAC,MAGAsrD,qBAAA,WACA,OAAAlvD,KAAAg3X,mBAAA10X,UAIAwpD,EAAA7nD,SAAA,SAAAT,EAAA2zX,GACAJ,EAAAvzX,GAAA2zX,GAGArrU,EAAA9nD,IAAA,SAAAR,GACA,OAAAuzX,EAAAvzX,IAGA,IAAAP,EAAA6oD,EACA5oD,EAAAC,QAAAF,wBCvDA,IAAA42B,EAAat6B,EAAQ,QAErBysL,EAAuBzsL,EAAQ,QAE/B4sD,EAAkB5sD,EAAQ,QAE1B8qR,EAAc9qR,EAAQ,QAEtBqlL,EAAAylG,EAAAzlG,WACA6yC,EAAA4yD,EAAA5yD,UAEAvrC,EAA0B3sL,EAAQ,QAIlCqvK,EAFoBrvK,EAAQ,QAE5BqvK,gBAEA2gC,EAAiBhwM,EAAQ,QAoBzB63X,EAAAjrU,EAAAziD,QACAlG,KAAA,aACAixB,cAAA,OACAogK,WAAA,MAMAwiM,cAAA,EAMAnqM,eACA1uK,KAAA,SAAAvB,GAGAm6W,EAAAxyX,WAAA5E,KAAA,OAAA8E,WACA9E,KAAAqsL,kBAAArsL,KAAAssL,0BAEA1jB,eAAA,SAAA3rJ,GACA,OAAA+uK,EAAAhsL,MAAA,WAEAolL,YAAA,SAAAzjH,GAEAy1T,EAAAxyX,WAAA5E,KAAA,cAAA8E,WACA9E,KAAAqsL,kBAAArsL,KAAAssL,0BAEAA,sBAAA,WAKA,IAJA,IAAAx7K,EAAA9Q,KAAAosL,aACA/rJ,EAAAvvB,EAAA0tB,aAAA,SACAs9B,KAEA/6D,EAAA,EAAAc,EAAAiP,EAAAvO,QAAuCxB,EAAAc,EAASd,IAChD+6D,EAAAv6D,MACAqB,KAAAkO,EAAAqzD,QAAApjE,GACAwG,MAAAuJ,EAAA9M,IAAAq8B,EAAAt/B,GACA2pB,SAAAkkJ,EAAA99J,EAAA/P,EAAA,cAKA,OADA+6D,EAAAyzI,EAAAW,iBAAAp0I,EAAA97D,KAAA6vM,aAAA7vM,KAAAid,OAAAmzL,UAQAR,gBAAA,WACA,IAAAF,EAAA1vM,KAAAid,OAAAyyL,SACA,aAAAA,EAAA1vM,KAAA40L,gBAAAt6K,IAAAo1L,GAAA,MAEAG,WAAA,WACA,OAAA7vM,KAAA4vM,mBAAA5vM,MAAAid,OAAAtM,KAEA2mX,YAAA,SAAAr6W,EAAA4gD,KAKAi8I,YAAA,SAAA17K,GAGA,IAAAttB,EAAA9Q,KAAAksB,UACA,OAAApb,EAAA9M,IAAA8M,EAAA0tB,aAAA,SAAAJ,IAQA0rV,eAAA,SAAA3oF,GACA,IAAArwR,EAAA9Q,KAAAksB,UACA,OAAApb,EAAAq0D,aAAAr0D,EAAAwtR,YAAA6C,KAQA16G,cAAA,SAAAroJ,GAQA,IANA,IAAAttB,EAAA9Q,KAAAksB,UACAigQ,EAAA10D,EAAAz3N,KAAA85M,YAAA17K,IACAx7B,EAAAkO,EAAAqzD,QAAA/lC,GACA8uJ,EAAAltL,KAAAktL,YACAqqM,KAEAx2X,EAAA,EAAmBA,EAAAmsL,EAAAjsL,OAAwBF,IAAA,CAC3C,IAAAy2X,EAAAtqM,EAAAnsL,GAAA65V,aAAAt8D,YAAA17R,GACAy9B,EAAAvvB,EAAA0tB,aAAA,SAEA/zB,MAAAyiL,EAAAnsL,GAAA65V,aAAA52V,IAAAq8B,EAAAm3V,KACAD,EAAAh2X,KAAAqjL,EAAAsI,EAAAnsL,GAAA6B,OAIA,OAAA20X,EAAAnxX,KAAA,eAAAw+K,EAAAhiL,EAAA,MAAAupR,IAMA+tD,mBAAA,SAAA97S,GACA,SAAAA,EAAA,CACA,IAAAx7B,EAAA5C,KAAAksB,UAAAi4C,QAAA/lC,GACA9jB,EAAAta,KAAAquB,iBACAkgH,EAAAj0H,EAAAinR,UAAA3+R,GACA,OAAA2rI,GAAAj0H,EAAA2vB,YAAAskG,EAAAzqH,UAGA4kB,QAAA,SAAA5e,GACA9pB,KAAAid,OAAA6M,QAEAye,UAAA,SAAAzkB,GACA9jB,KAAAid,OAAA6G,UAEA4Q,eAEAC,OAAA,EAEAC,EAAA,EACAvG,iBAAA,MAEA1d,IAAA,GAMA9K,KAAA,SAEAmM,IAAA,SAOA4X,YAAA,IAYA6tW,kBAAA,EAGAC,oBAAA,EAMA7tW,eAAA,KAEA/F,OAAA,KACAgG,KAAA,EACAC,WAAA,KACAtX,OACApN,MAAA,EACAc,MAAA,QAGAqM,WACA8iB,YAAA,GACAvC,YAAA,OACAg1K,UAAA,QAEAzhL,UACA7T,OACApN,MAAA,EACAc,MAAA,gBAEAqM,WACAu1L,UAAA,2BAKAluK,EAAA8N,MAAAyvV,EAAAlrM,GACA,IAAAjpL,EAAAm0X,EACAl0X,EAAAC,QAAAF,wBCtOA,IAAAG,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAoBR6D,EAAAG,qBACAC,KAAA,8CC7BAL,EAAAiuE,YAAA,EACAjuE,EAAA02E,SAAA12E,EAAA2iF,KAAA3iF,EAAAktD,IAAAltD,EAAAuc,QAAAhS,EAEA,IAAA1C,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5IhI,EAAAu2E,WACAv2E,EAAA62E,SAmFA,SAAAv5E,EAAA+9P,GACA,IAAA/9P,EAAA,OAIA,IAHA,IAAAk3X,EAAAl3X,EAAAsgD,UACA62U,GAAAp5H,GAAA,IAAA39P,MAAA,KAEAE,EAAA,EAAAmyB,EAAA0kW,EAAA32X,OAAqCF,EAAAmyB,EAAOnyB,IAAA,CAC5C,IAAA82X,EAAAD,EAAA72X,GACA82X,IAEAp3X,EAAAugD,UACAvgD,EAAAugD,UAAA/hB,IAAA44V,GACKn+S,EAAAj5E,EAAAo3X,KACLF,GAAA,IAAAE,IAGAp3X,EAAAugD,YACAvgD,EAAAsgD,UAAA42U,IAlGAx0X,EAAAo3E,YAuGA,SAAA95E,EAAA+9P,GACA,IAAA/9P,IAAA+9P,EAAA,OAIA,IAHA,IAAAo5H,EAAAp5H,EAAA39P,MAAA,KACA82X,EAAA,IAAAl3X,EAAAsgD,UAAA,IAEAhgD,EAAA,EAAAmyB,EAAA0kW,EAAA32X,OAAqCF,EAAAmyB,EAAOnyB,IAAA,CAC5C,IAAA82X,EAAAD,EAAA72X,GACA82X,IAEAp3X,EAAAugD,UACAvgD,EAAAugD,UAAAv8C,OAAAozX,GACKn+S,EAAAj5E,EAAAo3X,KACLF,IAAApvX,QAAA,IAAAsvX,EAAA,WAGAp3X,EAAAugD,YACAvgD,EAAAsgD,UAAAygC,EAAAm2S,KAtHAx0X,EAAAm5C,SAgKA,SAAAA,EAAA7V,EAAA2nJ,EAAA7mL,GACA,IAAAk/B,IAAA2nJ,EAAA,OAEA,wBAAAA,EAAA,YAAApjL,EAAAojL,IACA,QAAAttL,KAAAstL,EACAA,EAAAvrL,eAAA/B,IACAw7C,EAAA7V,EAAA3lC,EAAAstL,EAAAttL,QAKA,aADAstL,EAAAi7B,EAAAj7B,KACA0pM,EAAA,EACArxV,EAAAluB,MAAA6O,OAAA3c,MAAAlD,GAAA,wBAAAA,EAAA,IAEAk/B,EAAAluB,MAAA61K,GAAA7mL,GA5KA,IAIA4D,EAJAotL,EAAWh5L,EAAQ,QAMnB,IAAA2hV,IAFA/1U,EAFAotL,IAEsCptL,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,IAE7E4N,QAAA7Y,UAAAg5E,UACA6+S,EAAA,kBACAC,EAAA,cACAF,EAAA52C,EAAA,EAAAnmU,OAAAlL,SAAAwuS,cAGA78N,EAAA,SAAAnqC,GACA,OAAAA,GAAA,IAAA9uC,QAAA,kCAGA8gN,EAAA,SAAAzmN,GACA,OAAAA,EAAA2F,QAAAwvX,EAAA,SAAA55W,EAAAo2R,EAAA0jF,EAAAv1V,GACA,OAAAA,EAAAu1V,EAAAjmV,cAAAimV,IACG1vX,QAAAyvX,EAAA,UAIHt4W,EAAAvc,EAAAuc,IACAwhU,GAAArxU,SAAA+O,iBACA,SAAA6nB,EAAA8wB,EAAA97C,GACAgrB,GAAA8wB,GAAA97C,GACAgrB,EAAA7nB,iBAAA24C,EAAA97C,GAAA,IAIA,SAAAgrB,EAAA8wB,EAAA97C,GACAgrB,GAAA8wB,GAAA97C,GACAgrB,EAAA4rJ,YAAA,KAAA96H,EAAA97C,IAOA40C,EAAAltD,EAAAktD,KACA6wR,GAAArxU,SAAAiP,oBACA,SAAA2nB,EAAA8wB,EAAA97C,GACAgrB,GAAA8wB,GACA9wB,EAAA3nB,oBAAAy4C,EAAA97C,GAAA,IAIA,SAAAgrB,EAAA8wB,EAAA97C,GACAgrB,GAAA8wB,GACA9wB,EAAA6rJ,YAAA,KAAA/6H,EAAA97C,IAOAtY,EAAA2iF,KAAA,SAAArlF,EAAA82D,EAAAtrD,GAOAyT,EAAAjf,EAAA82D,EANA,SAAAouB,IACA15E,GACAA,EAAAM,MAAAvM,KAAA8E,WAEAurD,EAAA5vD,EAAA82D,EAAAouB,MAMA,SAAAjM,EAAAj5E,EAAA+9P,GACA,IAAA/9P,IAAA+9P,EAAA,SACA,QAAAA,EAAA1+P,QAAA,eAAAu/D,MAAA,uCACA,OAAA5+D,EAAAugD,UACAvgD,EAAAugD,UAAAwC,SAAAg7M,IAEA,IAAA/9P,EAAAsgD,UAAA,KAAAjhD,QAAA,IAAA0+P,EAAA,QA+CAr7P,EAAA02E,SAAAi+S,EAAA,WAAArxV,EAAA2nJ,GACA,IAAA8yJ,EAAA,CACA,IAAAz6S,IAAA2nJ,EAAA,YAEA,WADAA,EAAAi7B,EAAAj7B,MAEAA,EAAA,cAEA,IACA,OAAAA,GACA,cACA,IACA,OAAA3nJ,EAAA04N,QAAAxyP,KAAA,SAAAkG,QAAA,IACS,MAAA1O,GACT,SAEA,QACA,OAAAsiC,EAAAluB,MAAA61K,IAAA3nJ,EAAAwjL,aAAAxjL,EAAAwjL,aAAA77B,GAAA,MAEG,MAAAjqL,GACH,OAAAsiC,EAAAluB,MAAA61K,MAEC,SAAA3nJ,EAAA2nJ,GACD,IAAA8yJ,EAAA,CACA,IAAAz6S,IAAA2nJ,EAAA,YAEA,WADAA,EAAAi7B,EAAAj7B,MAEAA,EAAA,YAEA,IACA,IAAAvyK,EAAAhM,SAAAs4C,YAAArL,iBAAArW,EAAA,IACA,OAAAA,EAAAluB,MAAA61K,IAAAvyK,IAAAuyK,GAAA,KACG,MAAAjqL,GACH,OAAAsiC,EAAAluB,MAAA61K,0BCxHAlrL,EAAAC,QA3BA,SAAAk4B,GACA,IAAA6M,EAAA7M,EAAAkoC,UACAq8I,EAAAvkL,EAAA0hL,eACA,OACA1hL,UACA73B,KAAA,WACAa,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACAyU,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,OACAi/W,UAAA78V,EAAA4hL,eACAk7K,WAAA98V,EAAA8hL,gBACAyC,WACAp9M,MAAAo9M,EAAAp9M,MACA0uB,IAAA0uL,EAAA1uL,IACA4sL,MAAA8B,EAAA9B,MACA7qL,SAAA2sL,EAAAN,SAGA17M,KACAw+B,MAAA,SAAAtxB,EAAA40L,GACA,OAAArqK,EAAA4O,YAAAn5B,EAAA40L,6BCvCA,IAAA16J,EAAkBzrC,EAAQ,QAE1BsnC,EAAmBtnC,EAAQ,QAE3Bs6B,EAAat6B,EAAQ,QAErB4iS,EAAkB5iS,EAAQ,QAQ1B,SAAA0rC,EAAApgC,GACAmgC,EAAAt/B,KAAA1L,KAAA6K,GAGAogC,EAAA/qC,WACAC,YAAA8qC,EACAznC,KAAA,QACA6W,MAAA,SAAAwrB,EAAAyyI,GACA,IAAA//J,EAAAvY,KAAAuY,MACAxI,EAAAwI,EAAAu5B,MAEAv5B,EAAA/N,KAAAq7B,EAAA7lC,KAAAs4K,GACA,IAAAxmI,EAAA9xC,KAAAo4X,OAAAj2F,EAAAgC,oBAAAp0R,EAAA/P,KAAAo4X,OAAAp4X,UAAAgP,QAEA,GAAA8iC,GAAAqwP,EAAAkC,aAAAvyP,GAAA,CAWA,IAAAztC,EAAAkU,EAAAlU,GAAA,EACAE,EAAAgU,EAAAhU,GAAA,EACAyU,EAAAT,EAAAS,MACAC,EAAAV,EAAAU,OACAsvL,EAAAz2J,EAAA94B,MAAA84B,EAAA74B,OAeA,GAbA,MAAAD,GAAA,MAAAC,EAEAD,EAAAC,EAAAsvL,EACK,MAAAtvL,GAAA,MAAAD,EACLC,EAAAD,EAAAuvL,EACK,MAAAvvL,GAAA,MAAAC,IACLD,EAAA84B,EAAA94B,MACAC,EAAA64B,EAAA74B,QAIAjZ,KAAAu4K,aAAA1yI,GAEAttB,EAAAo6B,QAAAp6B,EAAAs6B,QAAA,CACA,IAAAlC,EAAAp4B,EAAAo4B,IAAA,EACAC,EAAAr4B,EAAAq4B,IAAA,EACA/K,EAAAqxI,UAAAplI,EAAAnB,EAAAC,EAAAr4B,EAAAo6B,OAAAp6B,EAAAs6B,QAAAxuC,EAAAE,EAAAyU,EAAAC,QACK,GAAAV,EAAAo4B,IAAAp4B,EAAAq4B,GAAA,CACL,IAEA+B,EAAA35B,GAFA23B,EAAAp4B,EAAAo4B,IAGAkC,EAAA55B,GAFA23B,EAAAr4B,EAAAq4B,IAGA/K,EAAAqxI,UAAAplI,EAAAnB,EAAAC,EAAA+B,EAAAE,EAAAxuC,EAAAE,EAAAyU,EAAAC,QAEA4sB,EAAAqxI,UAAAplI,EAAAztC,EAAAE,EAAAyU,EAAAC,GAIA,MAAAV,EAAA84B,OAEArxC,KAAAy4K,iBAAA5yI,GACA7lC,KAAAsxC,aAAAzL,EAAA7lC,KAAA8nC,sBAGAA,gBAAA,WACA,IAAAvvB,EAAAvY,KAAAuY,MAMA,OAJAvY,KAAA6nC,QACA7nC,KAAA6nC,MAAA,IAAAhB,EAAAtuB,EAAAlU,GAAA,EAAAkU,EAAAhU,GAAA,EAAAgU,EAAAS,OAAA,EAAAT,EAAAU,QAAA,IAGAjZ,KAAA6nC,QAGAhO,EAAA2xB,SAAAvgB,EAAAD,GACA,IAAA/nC,EAAAgoC,EACA/nC,EAAAC,QAAAF,wBC3FA,IAAAuX,EAAcjb,EAAQ,QAItBkzL,EAFclzL,EAAQ,QAEtBkzL,aAEA8gK,EAA6Bh0V,EAAQ,QAsBrC84X,EAAA79W,EAAA40N,aACArnN,OACAqV,OAAA,MAEAk7V,YAAA,KACA5oV,UAAA,SAAArvC,EAAA0nB,GACA,IAAAqV,EAAArV,EAAAqV,OACAvL,EAAA9J,EAAA8J,KACAymW,EAAAt4X,KAAAs4X,YACAC,EAAAD,EAAAvwW,MAIA,MAHA1nB,EAAAo6K,WAAAp6K,EAAAo6K,aAAAp6K,IACAwxB,EAAA,GAZA,GAkBA,QAAA9wB,EAAA,EAAmBA,EAAAq8B,EAAAn8B,QAAmB,CACtC,IAAAoD,EAAA+4B,EAAAr8B,KACAwD,EAAA64B,EAAAr8B,KAEA0J,MAAApG,IAAAoG,MAAAlG,KAIAg0X,EAAAl0X,IAAAwtB,EAAA,KACA0mW,EAAAh0X,IAAAstB,EAAA,KACA0mW,EAAAv/W,MAAA6Y,EAAA,GACA0mW,EAAAt/W,OAAA4Y,EAAA,GACAymW,EAAA5oV,UAAArvC,EAAAk4X,GAAA,MAGA3/M,WAAA,SAAA/yI,GACA,IAAA9d,EAAA/nB,KAAA+nB,MACAqV,EAAArV,EAAAqV,OACAvL,EAAA9J,EAAA8J,KAGA,GAFAA,EAAA,GArCA,EAuCA,CAIA7xB,KAAAu4K,aAAA1yI,GAEA,QAAA9kC,EAAA,EAAmBA,EAAAq8B,EAAAn8B,QAAmB,CACtC,IAAAoD,EAAA+4B,EAAAr8B,KACAwD,EAAA64B,EAAAr8B,KAEA0J,MAAApG,IAAAoG,MAAAlG,IAMAshC,EAAA07R,SAAAl9T,EAAAwtB,EAAA,KAAAttB,EAAAstB,EAAA,KAAAA,EAAA,GAAAA,EAAA,IAGA7xB,KAAAy4K,iBAAA5yI,KAEAgvU,cAAA,SAAAxwW,EAAAE,GAWA,IARA,IAAAwjB,EAAA/nB,KAAA+nB,MACAqV,EAAArV,EAAAqV,OACAvL,EAAA9J,EAAA8J,KACAkyF,EAAAh8G,KAAAE,IAAA4pB,EAAA,MACA5Z,EAAAlQ,KAAAE,IAAA4pB,EAAA,MAIAyO,EAAAlD,EAAAn8B,OAAA,IAAyCq/B,GAAA,EAAUA,IAAA,CACnD,IAAAv/B,EAAA,EAAAu/B,EACAyQ,EAAA3T,EAAAr8B,GAAAgjH,EAAA,EACA/yE,EAAA5T,EAAAr8B,EAAA,GAAAkX,EAAA,EAEA,GAAA5T,GAAA0sC,GAAAxsC,GAAAysC,GAAA3sC,GAAA0sC,EAAAgzE,GAAAx/G,GAAAysC,EAAA/4B,EACA,OAAAqoB,EAIA,YAIA,SAAAkwS,IACAxwU,KAAAg/B,MAAA,IAAAxkB,EAAAskB,MAGA,IAAA05V,EAAAhoD,EAAAtwU,UAEAs4X,EAAAvoN,aAAA,WACA,OAAAjwK,KAAA67M,cAQA28K,EAAAv3V,WAAA,SAAAnwB,GACA9Q,KAAAg/B,MAAAkG,YACA,IAAA6qI,EAAA,IAAAsoN,GACA94D,WAAA,EACAnwS,OAAA,YAEA2gJ,EAAAxuI,UACAnE,OAAAtsB,EAAA84K,UAAA,kBAGA5pL,KAAAg1W,WAAAjlM,EAAAj/J,GAEA9Q,KAAAg/B,MAAAC,IAAA8wI,GACA/vK,KAAA67M,aAAA,MAGA28K,EAAAhjU,aAAA,SAAA1kD,GACA,IAAA9Q,KAAA67M,aAAA,CAIA,IAAAz+K,EAAAtsB,EAAA84K,UAAA,gBACA5pL,KAAAg/B,MAAAgoC,UAAA,SAAA16B,GACA,SAAAA,EAAAwrE,WAAA,CACA,IAAAj2G,EAAA,GAAAyqC,EAAAmsV,SAAAnsV,EAAAwrE,YACApgB,EAAA,EAAAprD,EAAAwrE,WAAA,EACA16E,EAAA,IAAA63L,aAAA73L,EAAAsnD,OAAAgT,EAAA71F,GAGAyqC,EAAA/K,SAAA,SAAAnE,OAIAo7V,EAAA5qT,yBAAA,SAAA98D,GACA9Q,KAAAg/B,MAAAkG,YAEAllC,KAAA47M,oBAIA9qM,EAAAvO,QAAA,KACAvC,KAAA67M,eACA77M,KAAA67M,aAAA,IAAA03I,GACApvT,QAAA,KAIAnkC,KAAAg/B,MAAAC,IAAAj/B,KAAA67M,eAEA77M,KAAA67M,aAAA,MAIA28K,EAAAvqT,kBAAA,SAAAF,EAAAj9D,GACA,IAAAi/J,EAEA/vK,KAAA67M,cACA9rC,EAAA,IAAAsoN,EAEAr4X,KAAA67M,aAAAo5J,eAAAllM,GAAA,MAEAA,EAAA,IAAAsoN,GACA94D,WAAA,EACAnwS,OAAA,UACA0oF,WAAA/pC,EAAAvrE,MACAi2X,SAAA1qT,EAAA78C,OAEAk/I,aAAA,EACApwK,KAAAg/B,MAAAC,IAAA8wI,IAGAA,EAAAxuI,UACAnE,OAAAtsB,EAAA84K,UAAA,kBAGA5pL,KAAAg1W,WAAAjlM,EAAAj/J,IAAA9Q,KAAA67M,eAGA28K,EAAAxjB,WAAA,SAAAjlM,EAAAj/J,EAAAokW,GACA,IAAA7wU,EAAAvzB,EAAAuzB,UAYAxS,EAAA/gB,EAAA6wB,UAAA,cACAouI,EAAAxuI,SAAA,OAAA1P,aAAAhmB,MAAAgmB,SAGAk+I,EAAAuoN,YAAA7lM,EAAA3hL,EAAA6wB,UAAA,mBAEAouI,EAAAmjB,SAAAnjB,EAAAuoN,YAAAplM,SACA,IAAAwlM,EAAA3oN,EAAAhoJ,MAAA8J,KAAA,GAtMA,EAuMAk+I,EAAAhtI,SACAsB,EAAAhF,SAAA,aAAAimC,aAAAozT,GAAA,gDACA,IAAAj3V,EAAA3wB,EAAA6wB,UAAA,SAEAF,GACAsuI,EAAAmjB,SAAAzxJ,GAGAyzU,IAGAnlM,EAAA59I,YAAAkS,EAAAlS,YACA49I,EAAArwJ,GAAA,qBAAAvb,GACA4rK,EAAA3xI,UAAA,KACA,IAAAA,EAAA2xI,EAAA8kM,cAAA1wW,EAAAG,QAAAH,EAAAK,SAEA45B,GAAA,IAEA2xI,EAAA3xI,aAAA2xI,EAAAj4D,YAAA,QAMA0gR,EAAA/zX,OAAA,WACAzE,KAAA47M,oBAEA57M,KAAA67M,aAAA,KACA77M,KAAAg/B,MAAAkG,aAGAszV,EAAA58K,kBAAA,WACA,IAAAxrC,EAAApwK,KAAA67M,aAEAzrC,GACAA,EAAA0rC,oBAIA,IAAA74M,EAAAutU,EACAttU,EAAAC,QAAAF,wBC1QA1D,EAAQ,SAQRg5U,EANeh5U,EAAQ,QAEvBg5U,iBAIA,MAFch5U,EAAQ,6BCNtB4D,EAAA6/C,EAAAp5C,OAAAiwS,4CCAA,IAAAz2S,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAAo5X,EAAoBp5X,EAAQ,QAE5Bq5X,EAAoBr5X,EAAQ,QAoB5B6D,EAAAw4D,eAAA+8T,GACAv1X,EAAAm6D,eAAAq7T,yBC/Bcr5X,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAErBs5X,EAAYt5X,EAAQ,QAIpBmtC,EAFcntC,EAAQ,QAEtBmtC,aAEAu7B,EAAkB1oE,EAAQ,QAE1B4jE,EAAA8E,EAAA9E,mBACAE,EAAA4E,EAAA5E,gBAEAlG,EAAuB59D,EAAQ,QAI/B+oE,EAFuB/oE,EAAQ,QAE/B+oE,oBA6CA,SAAAwwT,EAAAn1X,EAAAC,GACA,IAAA63B,EAAAz7B,KACA07B,EAAAD,EAAAE,eACA4e,EAAA9e,EAAAI,gBAkBA,GAhBAH,EAAAnqB,MAAA4nC,UAAAM,UACAc,EAAAhpC,MAAA4nC,UAAAM,UACA91C,EAAAqxD,WAAA,SAAAx5B,GACA,GAAAA,EAAAnN,mBAAAoN,EAAA,CACA,IAAA3qB,EAAA0qB,EAAAtP,UACA2N,EAAA4E,KAAA3tB,EAAA0tB,aAAA,sBAAAnG,GACAkiB,EAAAhpC,MAAA8nC,oBAAAvoC,EAAAw3D,EAAAx3D,EAAAunB,MAEAwB,EAAA4E,KAAA3tB,EAAA0tB,aAAA,qBAAAnG,GACAqD,EAAAnqB,MAAA8nC,oBAAAvoC,EAAAw3D,EAAAx3D,EAAAunB,SAIAgrC,EAAA3nC,EAAAnqB,MAAAmqB,EAAAnE,OACA8rC,EAAA9oB,EAAAhpC,MAAAgpC,EAAAhjB,OAEA,aAAAmE,EAAAl4B,OAAAk4B,EAAAT,OAAA,CACA,IAAAD,EAAAU,EAAAI,YACAwI,EAAA,IAAA5I,EAAAnqB,MAAAhP,QACAm5B,EAAAa,QAAAvB,EAAA,IAAAsJ,EAAAtJ,EAAA,IAAAsJ,EACA5I,EAAAyd,UAAAne,EAAA,GAAAA,EAAA,KAWA,SAAA+9V,EAAAtjW,EAAAY,GAMA,GALAZ,EAAAjyB,KAAA6yB,EAAAryB,IAAA,QACAyxB,EAAAlkB,MAAA4xD,EAAA9sC,GACAZ,EAAAwF,OAAA5E,EAAAryB,IAAA,6BAAAyxB,EAAAjyB,KACAiyB,EAAA8G,QAAAlG,EAAAryB,IAAA,WAEA,cAAAqyB,EAAAi5B,SAAA,CACA75B,EAAA8G,SAAAlG,EAAAryB,IAAA,aACA,IAAAo4B,EAAA/F,EAAAryB,IAAA,cACAyxB,EAAA0jB,UAAA/c,KAAA3G,EAAA8G,SAAA,UAIAlG,EAAAZ,OACAA,EAAA8B,MAAAlB,EA7FA92B,EAAQ,QAgGR,IAAAy5X,GACAj3V,WAAA82V,EAAA34X,UAAA6hC,WACA2H,OAAA,SAAA/lC,EAAAC,GACA,IAAAq1X,KA2BA,OA1BAt1X,EAAAkvD,cAAA,iBAAAqmU,EAAA54V,GACA,IAAA7E,EAAA,IAAAo9V,EAAAv4V,GAEA7E,EAAA8gB,OAAAu8U,EACA,IAAAv+U,EAAA9e,EAAAI,gBACAH,EAAAD,EAAAE,eACAw9V,EAAAD,EAAAp4J,cAAA,cACA+mE,EAAAqxF,EAAAp4J,cAAA,aACAi4J,EAAAx+U,EAAA4+U,GACAJ,EAAAr9V,EAAAmsQ,GAlFA,SAAApsQ,EAAAy9V,EAAAt1X,GACA,IAAAkgB,EAAAo1W,EAAAl1X,IAAA,UACAgV,EAAApV,EAAAkuD,WACA74C,EAAArV,EAAAmuD,YACAt2B,EAAAlkB,GAAAm1B,EAAA5oB,EAAA,GAAA9K,GACAyiB,EAAAjkB,GAAAk1B,EAAA5oB,EAAA,GAAA7K,GACA,IAAAshC,EAAA9e,EAAAI,gBACAhK,EAAA9pB,KAAAC,IAAAgR,EAAAC,GAAA,EACA0J,EAAA+pB,EAAAwsV,EAAAl1X,IAAA,UAAA6tB,GACA0oB,EAAAhe,QAAAge,EAAApB,UAAAx2B,EAAA,GAAA43B,EAAApB,UAAA,EAAAx2B,GA0EAy2W,CAAA39V,EAAAy9V,EAAAt1X,GACAq1X,EAAA13X,KAAAk6B,GACAy9V,EAAA7qW,iBAAAoN,EACAA,EAAAlE,MAAA2hW,IAGAv1X,EAAAqxD,WAAA,SAAAx5B,GACA,aAAAA,EAAAx3B,IAAA,qBACA,IAAAk1X,EAAAv1X,EAAAgyL,iBACArmI,SAAA,QACA1iD,MAAA4uB,EAAAx3B,IAAA,cACAtC,GAAA85B,EAAAx3B,IAAA,aACS,GACTw3B,EAAAnN,iBAAA6qW,EAAA7qW,oBAGA4qW,IAGA97T,EAAAl5D,SAAA,QAAA+0X,yBCxJA,IAAA51X,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAER,IAAAkoE,EAAmBloE,EAAQ,QAE3BygN,EAAmBzgN,EAAQ,QAoB3B6D,EAAAw4D,eAAA6L,EAAA,2BACArkE,EAAAm6D,eAAAyiJ,EAAA,wCC7BA,IAAAnmL,EAAat6B,EAAQ,QAErB4rD,EAAW5rD,EAAQ,QAoBnB,SAAA85X,EAAA9nX,EAAAqqB,GACAuvB,EAAAz/C,KAAA1L,KAAA,SAAAuR,EAAAqqB,GAUA57B,KAAAwD,KAAA,WAGA61X,EAAAn5X,WACAC,YAAAk5X,EAKAjvV,YAAA,SAAAC,EAAAq7J,GACA,OAAA1lM,KAAAy7B,MAAA2O,YAAAC,EAAAq7J,GAAA,WAAA1lM,KAAAq4B,IAAA,MAEAmiB,aAAA2Q,EAAAjrD,UAAA42B,YACAwiW,aAAAnuU,EAAAjrD,UAAA6jE,aAEAlqC,EAAA2xB,SAAA6tU,EAAAluU,GACA,IAAAloD,EAAAo2X,EACAn2X,EAAAC,QAAAF,wBClDA,IAAA42B,EAAat6B,EAAQ,QAErBolL,EAAYplL,EAAQ,QAoBpBk/B,EAAA5E,EAAA4E,KACA8L,EAAA1Q,EAAA0Q,MAgNA,SAAAgvV,EAAAC,EAAAC,GACA,cAAAD,GAAA3/V,EAAA/tB,QAAA0tX,IAAA3/V,EAAA/5B,QAAA05X,EAAAC,IAAA,GAAAD,IAAAC,EAiDA,SAAA3gM,EAAAziK,GACA,IAAA+qJ,GAAA/qJ,EAAA1yB,QAAAG,aAAA,oBAA6Es9K,iBAC7E,OAAAA,KAAAynG,SAAAb,EAAA3xP,IAQA,SAAAqjW,EAAApjW,GACA,QAAAA,EAAAtyB,IAAA,eAQA,SAAAgkR,EAAAzwP,GACA,OAAAA,EAAA/zB,KAAA,KAAA+zB,EAAA71B,GAGAyB,EAAAuwX,QAtRA,SAAA/vX,EAAAC,GACA,IAAAmN,GAcA83Q,YACA8wG,gBAAA,EAMAv4M,oBACA2nG,gBAKA,OAGA,SAAAh4Q,EAAApN,EAAAC,GACA,IAAAC,EAAAF,EAAAG,aAAA,WACAJ,EAAAC,EAAAG,aAAA,eAEA81X,EAAAl2X,EAAAM,IAAA,eACA61X,KAEAp7V,EAAA76B,EAAAsrD,uBAAA,SAAA7zB,GAEA,GAAAA,EAAA6nC,mBAAA,CAIA,IAAA6kN,EAAAC,EAAA3sP,EAAA9D,OACAuiW,EAAA/oX,EAAAqwK,iBAAA2mG,MACAh3Q,EAAAg4Q,YAAAhB,GAAA1sP,EAGA,IAAAi2H,EAAAj2H,EAAA9D,MACAwiW,EAAAzoO,EAAAjyH,SAAA,UAAAx7B,GAIA,GAHA46B,EAAApD,EAAAuoC,UAAAr5B,EAAAyvV,GAAA,SAGA3+V,EAAAwoC,gBAAAhgE,GAEAk2X,EAAA/1X,IAAA,SAGA,IAAAi2X,EAAA,SAAAF,EAAA/1X,IAAA,WACAk2X,EAAA,UAAAH,EAAA/1X,IAAA,oBACAm2X,EAAA9+V,EAAAwoC,eAAAk2T,EAAA/1X,IAAA,sBAEAi2X,GAAAC,IACAz7V,EAAA07V,EAAAr2T,SAAAv5B,EAAAyvV,GAAAE,GAAA,QAAAD,IAGAC,GACAz7V,EAAA07V,EAAA7wT,UAAA/+B,EAAAyvV,EAAA,cAMA,SAAAA,EAAAI,EAAA94M,EAAA7rJ,GACA,IAAAa,EAAAb,EAAA8B,MAAA8H,SAAA,cAAA37B,GACA22X,EAAA/jW,EAAAtyB,IAAA,QAEA,GAAAq2X,IAAA,SAAAA,GAAAD,GAAAV,EAAApjW,IAAA,CAIA,MAAAgrJ,IACAA,EAAAhrJ,EAAAtyB,IAAA,mBAIA,IAAAq9K,GADA/qJ,EAAA8jW,EAgCA,SAAA3kW,EAAAskW,EAAAr2X,EAAAC,EAAAy2X,EAAA94M,GACA,IAAAg5M,EAAAP,EAAA16V,SAAA,eACAk7V,KACA97V,GAAA,4HAAAm/G,GACA28O,EAAA38O,GAAA/jH,EAAAmQ,MAAAswV,EAAAt2X,IAAA45I,MAKA28O,EAAAl5M,KAAA,aAAA5rJ,EAAAjyB,QAAA89K,EAGA,UAAAg5M,EAAAt2X,IAAA,UACAu2X,EAAA/2X,KAAA,QAGA,IAAAg3X,EAAAD,EAAA9nX,QAAA8nX,EAAA9nX,UAIA,GAFA,MAAA+nX,EAAAn1X,OAAAm1X,EAAAn1X,MAAA,GAEA,UAAA+0X,EAAA,CAEA,IAAAK,EAAAH,EAAAt2X,IAAA,cAIA,GAHAw2X,EAAAn1X,KAAA,MAAAo1X,MAGAn5M,EAAA,CACA,IAAA1rJ,EAAA2kW,EAAA35W,UAAA05W,EAAAt2X,IAAA,cACA4xB,GAAAiE,EAAAmJ,SAAAw3V,EAAA5kW,EAAAlb,YAIA,OAAA+a,EAAA8B,MAAA8H,SAAA,kBAAAslJ,EAAA41M,EAAA72X,EAAAC,IAhEA+2X,CAAAjlW,EAAAskW,EAAAr2X,EAAAC,EAAAy2X,EAAA94M,GAAAhrJ,GACAtyB,IAAA,QACA+F,EAAAi+Q,EAAAvyP,EAAA8B,OACAyvP,EAAA1lG,GAAAD,GAAA,aAAA5rJ,EAAAjyB,KAEAq1L,EAAA9nL,EAAA83Q,SAAA9+Q,IACAA,MACA0rB,OACA4F,WACA/E,mBACAgrJ,iBACA0lG,gBACA3lG,OACAzrB,UAAA8jO,EAAApjW,GACAqrM,iBAEAm4J,EAAA/vX,GAAA8uL,EACA9nL,EAAA4oX,gBAAA3yG,EACA,IAAA2zG,EAwFA,SAAAf,EAAAnkW,GAIA,IAHA,IAAAY,EAAAZ,EAAA8B,MACAc,EAAA5C,EAAA4C,IAEAt3B,EAAA,EAAiBA,EAAA64X,EAAA34X,OAAwBF,IAAA,CACzC,IAAA65X,EAAAhB,EAAA74X,OAEA,GAAAw4X,EAAAqB,EAAAviW,EAAA,UAAAhC,EAAA30B,KAAA63X,EAAAqB,EAAAviW,EAAA,aAAAhC,EAAA6hC,iBAAAqhU,EAAAqB,EAAAviW,EAAA,YAAAhC,EAAAzzB,MACA,OAAA7B,GAhGA85X,CAAAjB,EAAAnkW,GAEA,SAAAklW,EAAA,CACA,IAAArxG,EAAAuwG,EAAAc,KAAAd,EAAAc,IACA9xG,cAEAS,EAAAT,SAAA9+Q,GAAA8uL,EACAywF,EAAAI,OAAAkwG,EAAAe,GAAAjxG,OACA7wF,EAAAywF,iBAvFAwxG,CAAA/pX,EAAApN,EAAAC,GAEAmN,EAAA4oX,gBA8HA,SAAA5oX,EAAApN,GAEAA,EAAAqxD,WAAA,SAAAx5B,GAEA,IAAAH,EAAAG,EAAAnN,iBACA0sW,EAAAv/V,EAAAx3B,IAAA,sBACAg3X,EAAAx/V,EAAAx3B,IAAA,mBAEAq3B,GAAA,SAAA0/V,IAAA,IAAAA,GAAA,SAAAA,IAAA,IAAAC,IAAA,IAAAx/V,EAAAx3B,IAAA,wBAIAy6B,EAAA1tB,EAAAqwK,iBAAA4mG,EAAA3sP,EAAA9D,QAAA,SAAAshK,GACA,IAAApjK,EAAAojK,EAAApjK,KAEA4F,EAAAzO,QAAA6I,EAAA4C,OAAA5C,IACAojK,EAAA8oC,aAAApgO,KAAAi6B,GACA,MAAAq9J,EAAAqiI,kBAAAriI,EAAAqiI,gBAAA,GACAriI,EAAAqiI,iBAAA1/R,EAAAtP,UAAA3pB,YAGGvC,MAnJHi7X,CAAAlqX,EAAApN,GACAoN,GA2PA5N,EAAA6jS,SAtEA,SAAA3wQ,GACA,IAAAwiK,EAAAC,EAAAziK,GAEA,GAAAwiK,EAAA,CAIA,IAAAviK,EAAAuiK,EAAAviK,iBACA/kB,EAAAsnL,EAAApjK,KAAAlkB,MACA0L,EAAAqZ,EAAArZ,OACAhH,EAAAqgB,EAAAtyB,IAAA,UACAuD,EAAA+uB,EAAAtyB,IAAA,SAEA,MAAAuD,IACAA,EAAAgK,EAAApE,MAAA5F,IAGA,IAAAquJ,EAAA8jO,EAAApjW,GAGA,MAAArgB,IACAgH,EAAAhH,OAAA2/I,EAAA,eAGA,IAAA56H,EAAAzpB,EAAAuqB,YAAAx5B,QACA04B,EAAA,GAAAA,EAAA,IAAAA,EAAAzT,WAGA,MAAAhgB,GAEAA,EAAAyzB,EAAA,MAEAzzB,EAAAyzB,EAAA,IAGAzzB,EAAAyzB,EAAA,KACAzzB,EAAAyzB,EAAA,IAGA/d,EAAA1V,QAEAquJ,IACA34I,EAAAhH,OAAA4iL,EAAApjK,KAAAlkB,MAAAihK,UAAA,iBA6BArvK,EAAA21L,cACA31L,EAAAkkS,oBArBA,SAAAhxQ,GACA,IAAAwiK,EAAAC,EAAAziK,GACA,OAAAwiK,KAAAviK,kBAoBAnzB,EAAA6kR,gCCpTA,IAAAnuP,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBqxJ,EAAkBrxJ,EAAQ,QAsB1BixM,GAAA,uCACA2G,GAAA,yBAEAl0M,EAvBe1D,EAAQ,QAuBvBmK,QACAlG,KAAA,aACAktM,iBAAA,mBACAjtM,OAAA,SAAA01X,EAAAx1X,GAGA,GAFA3D,KAAAg/B,MAAAkG,YAEAi0V,EAAAn1X,IAAA,SAIA,IAAAu2C,EAAA4+U,EAAA1jW,KACAgG,EAAA8e,EAAA9e,MACAC,EAAAD,EAAAE,eACAs1K,EAAA12J,EAAA22J,iBACAgqL,EAAAx/V,EAAAI,YAAA,GACAF,EAAA2e,EAAAze,YACAxE,EAkGA,SAAAmE,EAAA09V,EAAA+B,GACA,OACA9sX,UAAAqtB,EAAAlkB,GAAAkkB,EAAAjkB,IACAqgB,SAAAqjW,EAAA,IAAAnzX,KAAAgwB,GACAD,gBAAA,EACAwwI,eAAA,EACAC,cAAA,EACAshK,YAAAsvD,EAAA95V,SAAA,aAAAr7B,IAAA,UAEAogC,GAAA,GA3GA+2V,CAAA1/V,EAAA09V,EAAA+B,GACAtpO,EAAA,IAAAhB,EAAAuoO,EAAA7hW,GACAuC,EAAA4E,KAAA+xK,EAAA5+C,EAAA3yH,IAAA2yH,GACA5xJ,KAAAg/B,MAAAC,IAAA2yH,EAAAC,YACAh4H,EAAA4E,KAAA04K,EAAA,SAAAv0M,GACAu2X,EAAAn1X,IAAApB,EAAA,WAAA23C,EAAAhpC,MAAAihK,WACAxyK,KAAA,IAAA4C,GAAAu2X,EAAA19V,EAAAy/V,EAAAt/V,EAAAq1K,IAEKjxM,QAML4wM,WAAA,SAAAuoL,EAAA19V,EAAAy/V,EAAAt/V,EAAAq1K,GACA,IACA7xK,EADA+5V,EAAA95V,SAAA,aACAA,SAAA,aACAyxK,EAAA1xK,EAAAp7B,IAAA,SACAgtM,EAAA,EACAF,eAAAjlM,MAAAilM,MAGA,IAFA,IAAAC,KAEAhwM,EAAA,EAAmBA,EAAAkwM,EAAAhwM,OAAwBF,IAAA,CAC3C,IAAAu8I,EAAA0zD,IAAAF,EAAA7vM,OACA8vM,EAAAzzD,GAAAyzD,EAAAzzD,OACAyzD,EAAAzzD,GAAA/7I,KAAA,IAAAiZ,EAAAytR,QACAlgR,OACAxQ,GAAAkkB,EAAAlkB,GACAC,GAAAikB,EAAAjkB,GACAC,EAAAw5L,EAAAlwM,GAAAqhC,OAEA+B,QAAA,KAMA,IAAApjC,EAAA,EAAmBA,EAAAgwM,EAAA9vM,OAAuBF,IAC1Cf,KAAAg/B,MAAAC,IAAAzkB,EAAA62L,UAAAN,EAAAhwM,IACAwX,MAAAshB,EAAAmJ,UACAE,OAAA4tK,EAAA/vM,EAAA+vM,EAAA7vM,QACAyW,KAAA,MACS0nB,EAAA6D,gBACTkB,QAAA,MAQAozK,WAAA,SAAA4hL,EAAA19V,EAAAy/V,EAAAt/V,EAAAq1K,GACA,GAAAA,EAAAhwM,OAAA,CAIA,IACAq+B,EADA65V,EAAA95V,SAAA,aACAA,SAAA,aACAo4K,EAAAn4K,EAAAt7B,IAAA,SACAgtM,EAAA,EACAyG,eAAA5rM,MAAA4rM,MAIA,IAHA,IAAAmxF,KACAwyF,EAAAnqL,EAAA,GAAA7uK,MAEArhC,EAAA,EAAmBA,EAAAkwM,EAAAhwM,OAAwBF,IAAA,CAC3C,IAAAu8I,EAAA0zD,IAAAyG,EAAAx2M,OACA2nS,EAAAtrJ,GAAAsrJ,EAAAtrJ,OACAsrJ,EAAAtrJ,GAAA/7I,KAAA,IAAAiZ,EAAA0hB,QACAnU,OACAxQ,GAAAkkB,EAAAlkB,GACAC,GAAAikB,EAAAjkB,GACA2kB,GAAAi/V,EACA3jX,EAAAw5L,EAAAlwM,GAAAqhC,MACAhG,WAAA,EACAC,SAAA,EAAAt0B,KAAAgwB,IAEAoM,QAAA,KAEAi3V,EAAAnqL,EAAAlwM,GAAAqhC,MAKA,IAAArhC,EAAA,EAAmBA,EAAA6nS,EAAA3nS,OAAuBF,IAC1Cf,KAAAg/B,MAAAC,IAAAzkB,EAAA62L,UAAAu3F,EAAA7nS,IACAwX,MAAAshB,EAAAmJ,UACAtrB,KAAA+/L,EAAA12M,EAAA02M,EAAAx2M,SACSq+B,EAAAmE,gBACTU,QAAA,SAuBAjhC,EAAAC,QAAAF,wBC5JA1D,EAAQ,QACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,QACR2D,EAAAC,QAAiB5D,EAAQ,QAAkBkP,8BCN3C,IAAAkyD,EAAoBphE,EAAQ,QAE5Bo9L,EAAcp9L,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAoBrBuM,EAAA+tB,EAAA/tB,QACAuvX,EAAA,YACAp4X,GACA4sE,WAAA,UACA/kE,MAAA,SAAA0wB,EAAA73B,EAAAC,EAAAggC,GACA,IAAAgnJ,EAAApvJ,EAAAtP,UAAA0+J,KACA/vI,EAAA+vI,EAAA/vI,KACAygV,EAAA9/V,EAAA6D,SAAAg8V,GAEAxgV,EAAAmuI,aAYA,SAAAuyM,EAAAriU,EAAAsiU,EAAAC,EAAAH,EAAAI,EAAAlgW,GACA,IAAAmgW,EAAAziU,EAAA75B,WACA,IAAAu8V,EAAA1iU,EAAA0wH,YAEA,IAAAgyM,KAAAvkO,YAAAukO,EAAAC,SACA,OAGA,IAAAC,EAAA5iU,EAAA75B,SAAAg8V,GACA,IAAAU,EAAAN,EAAAviU,EAAAovH,OACA,IAAAy6F,EAgCA,SAAA+4G,EAAAN,EAAAO,EAAAT,GACA,IAAAv4G,EAAAlpP,EAAAnwB,UAAgC8xX,GAUhC,OATA3hW,EAAA4E,MAAA,iDAAAu9V,GAEA,IAAAzuX,EAAAuuX,EAAA93X,IAAAg4X,GAAA,GAEA,MAAAzuX,GAAAwuX,IAAAxuX,EAAAwuX,EAAAC,IACA,MAAAzuX,MAAAiuX,EAAAQ,IACA,MAAAzuX,MAAA+tX,EAAAt3X,IAAAg4X,IACA,MAAAzuX,IAAAw1Q,EAAAi5G,GAAAzuX,KAEAw1Q,EA3CAk5G,CAAAH,EAAAN,EAAAO,EAAAT,GAEA,IAAAvoW,EAAA+oW,EAAA93X,IAAA,eACA,IAAAknR,EAAA4wG,EAAA93X,IAAA,yBACA,IAAAk4X,EAEA,MAAAhxG,IAEAgxG,EAAAC,EAAAp5G,GACAhwP,EAwDA,SAAAm4P,EAAAgxG,GACA,aAAAA,EAAAv/L,EAAAmC,UAAAo9L,EAAA,UAAAhxG,GAAA,KAzDAkxG,CAAAlxG,EAAAgxG,IAGAhjU,EAAA8I,UAAA,cAAAjvC,GACA,IAAAy1J,EAAAtvH,EAAAsvH,aAEA,GAAAA,KAAAvnL,OAIG,CACH,IAAAmlT,EAyDA,SAAAltP,EAAAyiU,EAAAC,EAAAE,EAAA/4G,EAAAv6F,GACA,IAAAA,MAAAvnL,OACA,OAGA,IAAAo7X,EAAAC,EAAAX,EAAA,gBAAA54G,EAAA58Q,OAAA,SAAA48Q,EAAA58Q,QAAAm2X,EAAAX,EAAA,eAAAW,EAAAX,EAAA,oBAEA,IAAAU,EACA,OAGA,IAAAjxG,EAAAuwG,EAAA33X,IAAA,aACAqnR,EAAAswG,EAAA33X,IAAA,aACAg0J,EAAA4jO,EAAA5jO,WAAA11J,QACA,MAAA8oR,KAAApzH,EAAA,KAAAA,EAAA,GAAAozH,GACA,MAAAC,KAAArzH,EAAA,KAAAA,EAAA,GAAAqzH,GACA,IAAAC,EAAAqwG,EAAA33X,IAAA,kBACA40B,GACAp1B,KAAA64X,EAAAz5X,KACAo1J,aACAz2F,OAAA86T,EAAAj8Q,OAGA,UAAAxnF,EAAAp1B,MAAA,UAAA8nR,GAAA,OAAAA,EAIA1yP,EAAAikK,cAAA,UAHAjkK,EAAAikK,cAAA,WACAjkK,EAAAt4B,MAAA,GAKA,IAAA8lT,EAAA,IAAAzlP,EAAA/nC,GAEA,OADAwtR,EAAAm2E,mBAAAjxG,EACA86B,EAzFAo2E,CAAAtjU,EAAAyiU,EAAAC,EAAAE,EAAA/4G,EAAAv6F,GAEA3uJ,EAAA4E,KAAA+pJ,EAAA,SAAAl8I,EAAA1/B,GAEA,GAAA0/B,EAAAg8I,OAAAozM,EAAAz6X,QAAAqrC,IAAAovV,EAAApvV,EAAAg8I,OAAA,CACA,IAAAm0M,EAwGA,SAAAd,EAAA54G,EAAAz2O,EAAA1/B,EAAAw5S,EAAA5qR,GACA,IAAAkhW,EAAA7iW,EAAAnwB,UAAqCq5Q,GAErC,GAAAqjC,EAAA,CACA,IAAAu2E,EAAAv2E,EAAA5iT,KACA8nR,EAAA,UAAAqxG,GAAAv2E,EAAAm2E,mBACAh1X,EAAA,UAAA+jR,EAAA1+Q,EAAA,OAAA0+Q,EAAA9vP,EAAA6wP,aAAA//O,EAAA+8I,SAAA/8I,EAAAm9I,SAAAkyM,EAAA33X,IAAA,oBACA04X,EAAAC,GAAAv2E,EAAAroH,iBAAAx2L,GAGA,OAAAm1X,EAlHA18L,CAAA27L,EAAA54G,EAAAz2O,EAAA1/B,EAAAw5S,EAAA5qR,GACA+/V,EAAAjvV,EAAAmwV,EAAAhB,EAAAH,EAAAI,EAAAlgW,WAVA0gW,EAAAC,EAAAp5G,GAEA7pN,EAAA8I,UAAA,QAAAk6T,GAjCAX,CAAA1gV,KAHAhhB,EAAAlpB,IAAAi6K,EAAA/B,YAAA,SAAAgB,GACA,OAAAA,IAAA7lL,IAAAq3X,GAAA,OAGMC,EAAA9/V,EAAAixP,cAAAnjG,eAAA9tJ,KA4DN,SAAA2gW,EAAAp5G,GACA,IAAA58Q,EAAAy2X,EAAA75G,EAAA,SAEA,GAAA58Q,EAAA,CACA,IAAA84L,EAAA29L,EAAA75G,EAAA,cACAhkF,EAAA69L,EAAA75G,EAAA,mBAUA,OARAhkF,IACA54L,EAAAw2L,EAAAmC,UAAA34L,EAAA,UAAA44L,IAGAE,IACA94L,EAAAw2L,EAAAuC,YAAA/4L,EAAA84L,IAGA94L,GAQA,SAAAy2X,EAAA75G,EAAAngR,GACA,IAAA2E,EAAAw7Q,EAAAngR,GAEA,SAAA2E,GAAA,SAAAA,EACA,OAAAA,EA8CA,SAAA+0X,EAAAX,EAAA/4X,GAGA,IAAAw9G,EAAAu7Q,EAAA33X,IAAApB,GACA,OAAAkJ,EAAAs0G,MAAAn/G,QACA2B,OACAw9G,SACG,KAgBHl9G,EAAAC,QAAAF,wBCpMA,IAAA40N,EAAct4N,EAAQ,QAEtBs4N,IAAA33D,EAAA23D,EAAAG,EAAA,UAA0CvsN,OAASlM,EAAQ,gCCH3D,IAAA6rC,EAAgB7rC,EAAQ,QAIxBwnC,EAFcxnC,EAAQ,QAEtBynC,eACAuE,EAAAH,EAAAG,IACAnO,aACA4vM,EAAAjlO,KAAAyjC,KACAqxV,EAAA90X,KAAAkmC,MA2FA/qC,EAAAC,QAzFA,SAAA9C,EAAAssB,GACA,IACAoY,EACA6K,EACA7uC,EACAmyB,EACAzK,EALA3X,EAAAzQ,EAAAyQ,KAOAk/B,EAAAzE,EAAAyE,EACAC,EAAA1E,EAAA0E,EACAC,EAAA3E,EAAA2E,EACAe,EAAA1F,EAAA0F,EACAd,EAAA5E,EAAA4E,EACAC,EAAA7E,EAAA6E,EAEA,IAAArvC,EAAA,EAAAmyB,EAAA,EAAoBnyB,EAAA+P,EAAA7P,QAAiB,CAKrC,OAJA8jC,EAAAj0B,EAAA/P,KACAmyB,EAAAnyB,EACA6uC,EAAA,EAEA7K,GACA,KAAAiL,EAIA,KAAAE,EACAN,EAAA,EACA,MAEA,KAAAK,EACAL,EAAA,EACA,MAEA,KAAAQ,EACAR,EAAA,EACA,MAEA,KAAAO,EACA,IAAA9rC,EAAAsoB,EAAA,GACApoB,EAAAooB,EAAA,GACAgkB,EAAAq8L,EAAArgN,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACAikB,EAAAo8L,EAAArgN,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IACA2gB,EAAAuvV,GAAAlwW,EAAA,GAAAikB,EAAAjkB,EAAA,GAAAgkB,GAEA7/B,EAAA/P,IAAA4vC,EACA7/B,EAAA/P,MAAAsD,EAEAyM,EAAA/P,IAAA6vC,EACA9/B,EAAA/P,MAAAwD,EAGAuM,EAAA/P,MAAA4vC,EACA7/B,EAAA/P,MAAA6vC,EAEA9/B,EAAA/P,MAAAusC,EAEAx8B,EAAA/P,MAAAusC,EAGApa,EADAnyB,GAAA,EAEA,MAEA,KAAAkwC,EAEAC,EAAA,GAAApgC,EAAA/P,KACAmwC,EAAA,GAAApgC,EAAA/P,KACAgmC,EAAAmK,IAAAvkB,GACA7b,EAAAoiB,KAAAge,EAAA,GACApgC,EAAAoiB,KAAAge,EAAA,GAEAA,EAAA,IAAApgC,EAAA/P,KACAmwC,EAAA,IAAApgC,EAAA/P,KACAgmC,EAAAmK,IAAAvkB,GACA7b,EAAAoiB,KAAAge,EAAA,GACApgC,EAAAoiB,KAAAge,EAAA,GAGA,IAAAzoB,EAAA,EAAeA,EAAAmnB,EAAYnnB,IAAA,CAC3B,IAAAyoB,KAAA9T,EAAA3U,IACA,GAAA3X,EAAA/P,KACAmwC,EAAA,GAAApgC,EAAA/P,KACAgmC,EAAAmK,IAAAvkB,GAEA7b,EAAAoiB,KAAAge,EAAA,GACApgC,EAAAoiB,KAAAge,EAAA,4BC9FA,IAAArX,EAAat6B,EAAQ,QAwBrBk/B,EAAA5E,EAAA4E,KACAq+V,EAAA,iBACAC,EAAA,oBAmDA,SAAAC,EAAApkW,EAAAxpB,GACA,IA0CA0B,EA1CA9Q,MA2CA+8X,KAAAjsX,EA3CA,CAEA,IAAAmsX,EAAApjW,EAAAnwB,UAAgC1J,KAAA88X,IAChCG,EAAAj9X,KAAAqiB,UAAAjT,EACA8tX,EAAA9tX,EAAA6tX,EAAArkW,QAGAukW,EAAA/tX,EAAApP,KAAAqiB,SAAAriB,KAAA+8X,GAAAnkW,GAmCA,IAAA9nB,EAhCA,OAAA1B,EAGA,SAAAguX,EAAAxkW,EAAAxpB,GAEA,OADAwpB,EAAA0yJ,QAAA1yJ,EAAA0yJ,OAAA/uI,OAAAv8C,MACAoP,EAGA,SAAAiuX,EAAAzkW,EAAAxpB,GAQA,OAHAqvB,EAAArvB,EAAA0tX,GAAA,SAAAhsX,EAAAuR,GACAvR,IAAA1B,GAAA+tX,EAAArsX,EAAAwvR,eAAAj+Q,EAAAjT,EAAAwpB,KAEAxpB,EAWA,SAAA+pU,EAAA92T,GACA,IAAA+D,EAAApmB,KAAA+8X,GACA,aAAA16W,GAAA,MAAA+D,MAAA02W,GAAAz6W,GAOA,SAAA66W,EAAA92W,EAAA62W,EAAArkW,GACAxS,EAAA02W,MACAr+V,EAAAw+V,EAAA,SAAAnsX,EAAAuR,GACA86W,EAAArsX,EAAAuR,EAAA+D,EAAAwS,KAIA,SAAAukW,EAAArsX,EAAAuR,EAAA+D,EAAAwS,GACAxS,EAAA02W,GAAAz6W,GAAAvR,EACAA,EAAAisX,GAAA32W,EACAtV,EAAAuR,WAEAuW,EAAA0yJ,SACAx6K,EAAA8nB,EAAA2yJ,YAAA3yJ,EAAA0yJ,OACA1yJ,EAAA0yJ,OAAA1yJ,EAAA0kW,UAAAj7W,IAAAvR,GAIAA,EAAAqoU,gBAGA,IAAAl2U,EApGA,SAAA21B,GACA,IAAAxS,EAAAwS,EAAAxS,SACA62W,EAAArkW,EAAAqkW,MAEAA,IACAA,GACAzlU,KAAApxC,GAEAwS,EAAA0kW,WACA9lU,KAAA,SAIA5+B,EAAAqkW,MAAArkW,EAAAxS,SAAA,KACA82W,EAAA92W,EAAA62W,EAAArkW,GAEA6F,EAAAw+V,EAAA,SAAAnsX,GACA2tB,EAAArY,EAAAs6Q,qBAAA,SAAAj5P,GACA32B,EAAA20K,WAAAh+I,EAAA5N,EAAA0Q,MAAAyyV,EAAApkW,QAIAxS,EAAAq/J,WAAA,eAAA5rJ,EAAA0Q,MAAA8yV,EAAAzkW,IAGA6F,EAAArY,EAAAu6Q,kBAAA,SAAAl5P,GACArhB,EAAAq/J,WAAAh+I,EAAA5N,EAAA0Q,MAAA6yV,EAAAxkW,MAGAiB,EAAA8yB,OAAAswU,EAAA72W,EAAA/D,YAAA+D,IAwEAljB,EAAAC,QAAAF,qCC1IAC,EAAAC,QAAA,SAAAgL,GAIA,sCAAAwtD,KAAAxtD,4BCZA,IAAA03B,EAAUtmC,EAAQ,QAClBmM,EAAWnM,EAAQ,QACnBg+X,EAAkBh+X,EAAQ,QAC1Bs4S,EAAet4S,EAAQ,QACvB47K,EAAe57K,EAAQ,QACvBi+X,EAAgBj+X,EAAQ,QACxBk+X,KACAC,MACAv6X,EAAAD,EAAAC,QAAA,SAAAw6X,EAAAz4U,EAAAj5C,EAAAolT,EAAA51H,GACA,IAGAx6L,EAAAqmB,EAAApc,EAAA6F,EAHA6sX,EAAAniM,EAAA,WAAuC,OAAAkiM,GAAmBH,EAAAG,GAC1D36U,EAAAnd,EAAA55B,EAAAolT,EAAAnsQ,EAAA,KACAt4C,EAAA,EAEA,sBAAAgxX,EAAA,MAAA55U,UAAA25U,EAAA,qBAEA,GAAAJ,EAAAK,IAAA,IAAA38X,EAAAk6K,EAAAwiN,EAAA18X,QAAmEA,EAAA2L,EAAgBA,IAEnF,IADAmE,EAAAm0C,EAAAlC,EAAA60P,EAAAvwR,EAAAq2W,EAAA/wX,IAAA,GAAA0a,EAAA,IAAA07B,EAAA26U,EAAA/wX,OACA6wX,GAAA1sX,IAAA2sX,EAAA,OAAA3sX,OACG,IAAA7F,EAAA0yX,EAAAlyX,KAAAiyX,KAA4Cr2W,EAAApc,EAAAu5B,QAAApjC,MAE/C,IADA0P,EAAArF,EAAAR,EAAA83C,EAAA17B,EAAA/f,MAAA29C,MACAu4U,GAAA1sX,IAAA2sX,EAAA,OAAA3sX,IAGA0sX,QACAt6X,EAAAu6X,+BCxBA,IAAA7jW,EAAat6B,EAAQ,QAwBrB+hR,GAIAt9Q,IAAA,SAAA8vD,EAAA/pD,EAAAq5D,GACA,IAAA77D,EAAAsyB,EAAAmQ,OAAAtV,EAAAo/B,QAA6D/pD,IAC7D,OAAAq5D,GAAAvpC,EAAA/tB,QAAAvE,OAAAtG,OAAA,GAAAsG,IAGAmtB,GACAvuB,OACA0nP,QAAA,qBACAghH,UAAA,kBAEAjwK,UACAivD,QAAA,OACAghH,UAAA,MAEA9vK,iBACA8uD,QAAA,MACAghH,UAAA,MAEA7vK,gBACA6uD,QAAA,OACAghH,UAAA,MAEA5vK,YACA4uD,QAAA,MACAghH,UAAA,MAEAh8V,SACAg7O,QAAA,MACAghH,UAAA,MAEA7/U,QACA6+N,QAAA,gCACAghH,UAAA,SAEA5/U,YACA4+N,QAAA,OACAghH,UAAA,OAGA5rW,EAAAq+Q,EACAp+Q,EAAAC,QAAAF,uBC7DA,SAAAuhD,GACA,aAEA,IAEA92C,EAFAmwX,EAAAj0X,OAAA1J,UACAmN,EAAAwwX,EAAAh7X,eAEAmrL,EAAA,mBAAA/iL,iBACA6yX,EAAA9vM,EAAA9iL,UAAA,aACA6yX,EAAA/vM,EAAAgwM,eAAA,kBACAC,EAAAjwM,EAAAy9D,aAAA,gBAEAyyI,EAAA,iBAAAh7X,EACAi7X,EAAA35U,EAAAyzR,mBACA,GAAAkmD,EACAD,IAGAh7X,EAAAC,QAAAg7X,OAJA,EAaAA,EAAA35U,EAAAyzR,mBAAAimD,EAAAh7X,EAAAC,YAcAqoN,OAoBA,IAAA4yK,EAAA,iBACAC,EAAA,iBACAC,EAAA,YACAC,EAAA,YAIAC,KAYAn3N,KACAA,EAAAy2N,GAAA,WACA,OAAA99X,MAGA,IAAAy+X,EAAA70X,OAAA02D,eACAo+T,EAAAD,OAAArtW,QACAstW,GACAA,IAAAb,GACAxwX,EAAA3B,KAAAgzX,EAAAZ,KAGAz2N,EAAAq3N,GAGA,IAAAC,EAAAC,EAAA1+X,UACA2+X,EAAA3+X,UAAA0J,OAAA8/B,OAAA29H,GACAy3N,EAAA5+X,UAAAy+X,EAAAx+X,YAAAy+X,EACAA,EAAAz+X,YAAA2+X,EACAF,EAAAX,GACAa,EAAA3iJ,YAAA,oBAYAgiJ,EAAAY,oBAAA,SAAAC,GACA,IAAA58L,EAAA,mBAAA48L,KAAA7+X,YACA,QAAAiiM,IACAA,IAAA08L,GAGA,uBAAA18L,EAAA+5C,aAAA/5C,EAAAx/L,QAIAu7X,EAAAc,KAAA,SAAAD,GAUA,OATAp1X,OAAAwvG,eACAxvG,OAAAwvG,eAAA4lR,EAAAJ,IAEAI,EAAA3lR,UAAAulR,EACAX,KAAAe,IACAA,EAAAf,GAAA,sBAGAe,EAAA9+X,UAAA0J,OAAA8/B,OAAAi1V,GACAK,GAOAb,EAAAe,MAAA,SAAAh6S,GACA,OAAYi6S,QAAAj6S,IA8EZk6S,EAAAC,EAAAn/X,WACAm/X,EAAAn/X,UAAA69X,GAAA,WACA,OAAA/9X,MAEAm+X,EAAAkB,gBAKAlB,EAAAmB,MAAA,SAAAC,EAAAC,EAAArzX,EAAAszX,GACA,IAAA3jM,EAAA,IAAAujM,EACA7zK,EAAA+zK,EAAAC,EAAArzX,EAAAszX,IAGA,OAAAtB,EAAAY,oBAAAS,GACA1jM,EACAA,EAAAr3J,OAAAt1B,KAAA,SAAA4B,GACA,OAAAA,EAAA1P,KAAA0P,EAAAxJ,MAAAu0L,EAAAr3J,UAsKA26V,EAAAT,GAEAA,EAAAV,GAAA,YAOAU,EAAAb,GAAA,WACA,OAAA99X,MAGA2+X,EAAA/2X,SAAA,WACA,4BAkCAu2X,EAAAt0X,KAAA,SAAAwnE,GACA,IAAAxnE,KACA,QAAAE,KAAAsnE,EACAxnE,EAAAtI,KAAAwI,GAMA,OAJAF,EAAA0d,UAIA,SAAAkd,IACA,KAAA56B,EAAA5I,QAAA,CACA,IAAA8I,EAAAF,EAAAitD,MACA,GAAA/sD,KAAAsnE,EAGA,OAFA5sC,EAAAl9B,MAAAwC,EACA06B,EAAApjC,MAAA,EACAojC,EAQA,OADAA,EAAApjC,MAAA,EACAojC,IAsCA05V,EAAA/sW,SAMAsuW,EAAAx/X,WACAC,YAAAu/X,EAEA50X,MAAA,SAAA60X,GAcA,GAbA3/X,KAAAs/D,KAAA,EACAt/D,KAAAykC,KAAA,EAGAzkC,KAAA4/X,KAAA5/X,KAAA6/X,MAAAnyX,EACA1N,KAAAqB,MAAA,EACArB,KAAA8/X,SAAA,KAEA9/X,KAAA0uC,OAAA,OACA1uC,KAAAklF,IAAAx3E,EAEA1N,KAAA+/X,WAAAj2X,QAAAk2X,IAEAL,EACA,QAAA/8X,KAAA5C,KAEA,MAAA4C,EAAAs8C,OAAA,IACA7xC,EAAA3B,KAAA1L,KAAA4C,KACA6H,OAAA7H,EAAAN,MAAA,MACAtC,KAAA4C,GAAA8K,IAMA5L,KAAA,WACA9B,KAAAqB,MAAA,EAEA,IACA4+X,EADAjgY,KAAA+/X,WAAA,GACAG,WACA,aAAAD,EAAAz8X,KACA,MAAAy8X,EAAA/6S,IAGA,OAAAllF,KAAAmgY,MAGAC,kBAAA,SAAAC,GACA,GAAArgY,KAAAqB,KACA,MAAAg/X,EAGA,IAAAvyU,EAAA9tD,KACA,SAAAwhL,EAAA8+M,EAAAC,GAYA,OAXAzhN,EAAAt7K,KAAA,QACAs7K,EAAA55F,IAAAm7S,EACAvyU,EAAArpB,KAAA67V,EAEAC,IAGAzyU,EAAApf,OAAA,OACAof,EAAAo3B,IAAAx3E,KAGA6yX,EAGA,QAAAx/X,EAAAf,KAAA+/X,WAAA9+X,OAAA,EAA8CF,GAAA,IAAQA,EAAA,CACtD,IAAA6jD,EAAA5kD,KAAA+/X,WAAAh/X,GACA+9K,EAAAl6H,EAAAs7U,WAEA,YAAAt7U,EAAA47U,OAIA,OAAAh/M,EAAA,OAGA,GAAA58H,EAAA47U,QAAAxgY,KAAAs/D,KAAA,CACA,IAAAmhU,EAAApzX,EAAA3B,KAAAk5C,EAAA,YACA87U,EAAArzX,EAAA3B,KAAAk5C,EAAA,cAEA,GAAA67U,GAAAC,EAAA,CACA,GAAA1gY,KAAAs/D,KAAA1a,EAAA+7U,SACA,OAAAn/M,EAAA58H,EAAA+7U,UAAA,GACa,GAAA3gY,KAAAs/D,KAAA1a,EAAAg8U,WACb,OAAAp/M,EAAA58H,EAAAg8U,iBAGW,GAAAH,GACX,GAAAzgY,KAAAs/D,KAAA1a,EAAA+7U,SACA,OAAAn/M,EAAA58H,EAAA+7U,UAAA,OAGW,KAAAD,EAMX,UAAArhU,MAAA,0CALA,GAAAr/D,KAAAs/D,KAAA1a,EAAAg8U,WACA,OAAAp/M,EAAA58H,EAAAg8U,gBAUAC,OAAA,SAAAr9X,EAAA0hF,GACA,QAAAnkF,EAAAf,KAAA+/X,WAAA9+X,OAAA,EAA8CF,GAAA,IAAQA,EAAA,CACtD,IAAA6jD,EAAA5kD,KAAA+/X,WAAAh/X,GACA,GAAA6jD,EAAA47U,QAAAxgY,KAAAs/D,MACAjyD,EAAA3B,KAAAk5C,EAAA,eACA5kD,KAAAs/D,KAAA1a,EAAAg8U,WAAA,CACA,IAAAE,EAAAl8U,EACA,OAIAk8U,IACA,UAAAt9X,GACA,aAAAA,IACAs9X,EAAAN,QAAAt7S,GACAA,GAAA47S,EAAAF,aAGAE,EAAA,MAGA,IAAAhiN,EAAAgiN,IAAAZ,cAIA,OAHAphN,EAAAt7K,OACAs7K,EAAA55F,MAEA47S,GACA9gY,KAAA0uC,OAAA,OACA1uC,KAAAykC,KAAAq8V,EAAAF,WACApC,GAGAx+X,KAAAolX,SAAAtmM,IAGAsmM,SAAA,SAAAtmM,EAAAiiN,GACA,aAAAjiN,EAAAt7K,KACA,MAAAs7K,EAAA55F,IAcA,MAXA,UAAA45F,EAAAt7K,MACA,aAAAs7K,EAAAt7K,KACAxD,KAAAykC,KAAAq6I,EAAA55F,IACO,WAAA45F,EAAAt7K,MACPxD,KAAAmgY,KAAAngY,KAAAklF,IAAA45F,EAAA55F,IACAllF,KAAA0uC,OAAA,SACA1uC,KAAAykC,KAAA,OACO,WAAAq6I,EAAAt7K,MAAAu9X,IACP/gY,KAAAykC,KAAAs8V,GAGAvC,GAGAwC,OAAA,SAAAJ,GACA,QAAA7/X,EAAAf,KAAA+/X,WAAA9+X,OAAA,EAA8CF,GAAA,IAAQA,EAAA,CACtD,IAAA6jD,EAAA5kD,KAAA+/X,WAAAh/X,GACA,GAAA6jD,EAAAg8U,eAGA,OAFA5gY,KAAAolX,SAAAxgU,EAAAs7U,WAAAt7U,EAAAm8U,UACAf,EAAAp7U,GACA45U,IAKAvyS,MAAA,SAAAu0S,GACA,QAAAz/X,EAAAf,KAAA+/X,WAAA9+X,OAAA,EAA8CF,GAAA,IAAQA,EAAA,CACtD,IAAA6jD,EAAA5kD,KAAA+/X,WAAAh/X,GACA,GAAA6jD,EAAA47U,WAAA,CACA,IAAA1hN,EAAAl6H,EAAAs7U,WACA,aAAAphN,EAAAt7K,KAAA,CACA,IAAAy9X,EAAAniN,EAAA55F,IACA86S,EAAAp7U,GAEA,OAAAq8U,GAMA,UAAA5hU,MAAA,0BAGA6hU,cAAA,SAAAvD,EAAAwD,EAAAC,GAaA,OAZAphY,KAAA8/X,UACA50X,SAAAkmB,EAAAusW,GACAwD,aACAC,WAGA,SAAAphY,KAAA0uC,SAGA1uC,KAAAklF,IAAAx3E,GAGA8wX,IA3qBA,SAAAhzK,EAAA+zK,EAAAC,EAAArzX,EAAAszX,GAEA,IAAA4B,EAAA7B,KAAAt/X,qBAAA2+X,EAAAW,EAAAX,EACAyC,EAAA13X,OAAA8/B,OAAA23V,EAAAnhY,WACA4tD,EAAA,IAAA4xU,EAAAD,OAMA,OAFA6B,EAAAC,QA0MA,SAAAhC,EAAApzX,EAAA2hD,GACA,IAAA/R,EAAAqiV,EAEA,gBAAA1vV,EAAAw2C,GACA,GAAAnpC,IAAAuiV,EACA,UAAAj/T,MAAA,gCAGA,GAAAtjB,IAAAwiV,EAAA,CACA,aAAA7vV,EACA,MAAAw2C,EAKA,OAAAs8S,IAMA,IAHA1zU,EAAApf,SACAof,EAAAo3B,QAEA,CACA,IAAA46S,EAAAhyU,EAAAgyU,SACA,GAAAA,EAAA,CACA,IAAA2B,EAAAC,EAAA5B,EAAAhyU,GACA,GAAA2zU,EAAA,CACA,GAAAA,IAAAjD,EAAA,SACA,OAAAiD,GAIA,YAAA3zU,EAAApf,OAGAof,EAAA8xU,KAAA9xU,EAAA+xU,MAAA/xU,EAAAo3B,SAES,aAAAp3B,EAAApf,OAAA,CACT,GAAAqN,IAAAqiV,EAEA,MADAriV,EAAAwiV,EACAzwU,EAAAo3B,IAGAp3B,EAAAsyU,kBAAAtyU,EAAAo3B,SAES,WAAAp3B,EAAApf,QACTof,EAAA+yU,OAAA,SAAA/yU,EAAAo3B,KAGAnpC,EAAAuiV,EAEA,IAAAx/M,EAAA6iN,EAAApC,EAAApzX,EAAA2hD,GACA,cAAAgxH,EAAAt7K,KAAA,CAOA,GAJAu4C,EAAA+R,EAAAzsD,KACAk9X,EACAF,EAEAv/M,EAAA55F,MAAAs5S,EACA,SAGA,OACAj3X,MAAAu3K,EAAA55F,IACA7jF,KAAAysD,EAAAzsD,MAGS,UAAAy9K,EAAAt7K,OACTu4C,EAAAwiV,EAGAzwU,EAAApf,OAAA,QACAof,EAAAo3B,IAAA45F,EAAA55F,OAlRA08S,CAAArC,EAAApzX,EAAA2hD,GAEAwzU,EAcA,SAAAK,EAAA11X,EAAAd,EAAA+5E,GACA,IACA,OAAc1hF,KAAA,SAAA0hF,IAAAj5E,EAAAP,KAAAP,EAAA+5E,IACT,MAAAO,GACL,OAAcjiF,KAAA,QAAA0hF,IAAAO,IAiBd,SAAAo5S,KACA,SAAAC,KACA,SAAAF,KA4BA,SAAAQ,EAAAl/X,IACA,yBAAA4J,QAAA,SAAA4kC,GACAxuC,EAAAwuC,GAAA,SAAAw2C,GACA,OAAAllF,KAAAuhY,QAAA7yV,EAAAw2C,MAoCA,SAAAm6S,EAAAiC,GAwCA,IAAAO,EAgCA7hY,KAAAuhY,QA9BA,SAAA7yV,EAAAw2C,GACA,SAAA48S,IACA,WAAArzX,QAAA,SAAAC,EAAAC,IA3CA,SAAAmuN,EAAApuL,EAAAw2C,EAAAx2E,EAAAC,GACA,IAAAmwK,EAAA6iN,EAAAL,EAAA5yV,GAAA4yV,EAAAp8S,GACA,aAAA45F,EAAAt7K,KAEO,CACP,IAAAuN,EAAA+tK,EAAA55F,IACA39E,EAAAwJ,EAAAxJ,MACA,OAAAA,GACA,iBAAAA,GACA8F,EAAA3B,KAAAnE,EAAA,WACAkH,QAAAC,QAAAnH,EAAA43X,SAAAhwX,KAAA,SAAA5H,GACAu1N,EAAA,OAAAv1N,EAAAmH,EAAAC,IACW,SAAA82E,GACXq3I,EAAA,QAAAr3I,EAAA/2E,EAAAC,KAIAF,QAAAC,QAAAnH,GAAA4H,KAAA,SAAA4yX,GAgBAhxX,EAAAxJ,MAAAw6X,EACArzX,EAAAqC,IACSpC,GAhCTA,EAAAmwK,EAAA55F,KAyCA43I,CAAApuL,EAAAw2C,EAAAx2E,EAAAC,KAIA,OAAAkzX,EAaAA,IAAA1yX,KACA2yX,EAGAA,GACAA,KA+GA,SAAAJ,EAAA5B,EAAAhyU,GACA,IAAApf,EAAAoxV,EAAA50X,SAAA4iD,EAAApf,QACA,GAAAA,IAAAhhC,EAAA,CAKA,GAFAogD,EAAAgyU,SAAA,KAEA,UAAAhyU,EAAApf,OAAA,CACA,GAAAoxV,EAAA50X,SAAAu6V,SAGA33S,EAAApf,OAAA,SACAof,EAAAo3B,IAAAx3E,EACAg0X,EAAA5B,EAAAhyU,GAEA,UAAAA,EAAApf,QAGA,OAAA8vV,EAIA1wU,EAAApf,OAAA,QACAof,EAAAo3B,IAAA,IAAAlhC,UACA,kDAGA,OAAAw6U,EAGA,IAAA1/M,EAAA6iN,EAAAjzV,EAAAoxV,EAAA50X,SAAA4iD,EAAAo3B,KAEA,aAAA45F,EAAAt7K,KAIA,OAHAsqD,EAAApf,OAAA,QACAof,EAAAo3B,IAAA45F,EAAA55F,IACAp3B,EAAAgyU,SAAA,KACAtB,EAGA,IAAA1jT,EAAAgkG,EAAA55F,IAEA,OAAApK,EAOAA,EAAAz5E,MAGAysD,EAAAgyU,EAAAqB,YAAArmT,EAAAvzE,MAGAumD,EAAArpB,KAAAq7V,EAAAsB,QAQA,WAAAtzU,EAAApf,SACAof,EAAApf,OAAA,OACAof,EAAAo3B,IAAAx3E,GAUAogD,EAAAgyU,SAAA,KACAtB,GANA1jT,GA3BAhtB,EAAApf,OAAA,QACAof,EAAAo3B,IAAA,IAAAlhC,UAAA,oCACA8J,EAAAgyU,SAAA,KACAtB,GAoDA,SAAAwD,EAAAC,GACA,IAAAr9U,GAAiB47U,OAAAyB,EAAA,IAEjB,KAAAA,IACAr9U,EAAA+7U,SAAAsB,EAAA,IAGA,KAAAA,IACAr9U,EAAAg8U,WAAAqB,EAAA,GACAr9U,EAAAm8U,SAAAkB,EAAA,IAGAjiY,KAAA+/X,WAAAx+X,KAAAqjD,GAGA,SAAAo7U,EAAAp7U,GACA,IAAAk6H,EAAAl6H,EAAAs7U,eACAphN,EAAAt7K,KAAA,gBACAs7K,EAAA55F,IACAtgC,EAAAs7U,WAAAphN,EAGA,SAAA4gN,EAAAD,GAIAz/X,KAAA+/X,aAAwBS,OAAA,SACxBf,EAAA31X,QAAAk4X,EAAAhiY,MACAA,KAAA8K,OAAA,GA8BA,SAAAsmB,EAAAusW,GACA,GAAAA,EAAA,CACA,IAAAuE,EAAAvE,EAAAG,GACA,GAAAoE,EACA,OAAAA,EAAAx2X,KAAAiyX,GAGA,sBAAAA,EAAAl5V,KACA,OAAAk5V,EAGA,IAAAlzX,MAAAkzX,EAAA18X,QAAA,CACA,IAAAF,GAAA,EAAA0jC,EAAA,SAAAA,IACA,OAAA1jC,EAAA48X,EAAA18X,QACA,GAAAoM,EAAA3B,KAAAiyX,EAAA58X,GAGA,OAFA0jC,EAAAl9B,MAAAo2X,EAAA58X,GACA0jC,EAAApjC,MAAA,EACAojC,EAOA,OAHAA,EAAAl9B,MAAAmG,EACA+2B,EAAApjC,MAAA,EAEAojC,GAGA,OAAAA,UAKA,OAAYA,KAAA+8V,GAIZ,SAAAA,IACA,OAAYj6X,MAAAmG,EAAArM,MAAA,IAhgBZ,CA8sBA,WAAe,OAAArB,KAAf,IAA6BmZ,SAAA,cAAAA,0BCptB7B,IAAA6nN,EAAczhO,EAAQ,QACtB0hO,EAAW1hO,EAAQ,QACnB2hO,EAAU3hO,EAAQ,QAClB2D,EAAAC,QAAA,SAAAu9D,GACA,IAAA3vD,EAAAiwN,EAAAtgK,GACA6gK,EAAAN,EAAAj+K,EACA,GAAAu+K,EAKA,IAJA,IAGAx3N,EAHAo4X,EAAA5gK,EAAA7gK,GACA8gK,EAAAN,EAAAl+K,EACAjiD,EAAA,EAEAohY,EAAAlhY,OAAAF,GAAAygO,EAAA91N,KAAAg1D,EAAA32D,EAAAo4X,EAAAphY,OAAAgQ,EAAAxP,KAAAwI,GACG,OAAAgH,yBCZH,IAAA8mS,EAAet4S,EAAQ,QACvB2D,EAAAC,QAAA,SAAA+H,EAAAe,EAAA1E,EAAA29C,GACA,IACA,OAAAA,EAAAj5C,EAAA4rS,EAAAtwS,GAAA,GAAAA,EAAA,IAAA0E,EAAA1E,GAEG,MAAApD,GACH,IAAAwyE,EAAAzrE,EAAA,OAEA,WADAwC,IAAAipE,GAAAkhO,EAAAlhO,EAAAjrE,KAAAR,IACA/G,0BCTA,IAAAf,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBs0T,EAAct0T,EAAQ,QAoBtB0D,EAAAG,EAAAs6D,iBACAl6D,KAAA,MACAC,OAAA,SAAA2+X,EAAAz+X,EAAAC,EAAAggC,GAEA,IAAAA,GAAA,oBAAAA,EAAApgC,MAAAogC,EAAA73B,OAAA/L,KAAAk1D,IAAA,CAIA,IAAAl2B,EAAAh/B,KAAAg/B,MAGA,GAFAA,EAAAkG,aAEAk9V,EAAAxyL,kBAAA,CAKA,GAAAhsK,GAAA,YAAAA,EAAApgC,MAAA,WAAAogC,EAAAgvB,eAAAhvB,EAAAygC,WAAA+9T,EAAA1gY,IAYAoyT,EAAA9zT,KAAA+zT,WACA/0R,EAAAC,IAAA60R,EAAA90R,YAZA,GAAAojW,EAAA/K,aAAA,CACA,IAAAvjE,EAAA9zT,KAAA+zT,UAAA,IAAAF,EAAAjwT,GAAA,GACAo7B,EAAAC,IAAA60R,EAAA90R,OACA80R,EAAAj8I,KAAAuqN,EAAAz+X,EAAAC,EAAA5D,KAAA4jC,GACA5jC,KAAA+zT,SAAAD,OAGA9zT,KAAA+zT,UAAA/zT,KAAA+zT,SAAAtvT,SACAzE,KAAA+zT,SAAA,KAOAquE,EAAAp+X,IAAA,qBAAAL,EAAAG,aAAA,WAAA9D,KAAAqiY,eAAAD,EAAAz+X,EAAAC,MAEAa,OAAA,WACAzE,KAAA+zT,UAAA/zT,KAAA+zT,SAAAtvT,SACAzE,KAAA+zT,SAAA,KACA/zT,KAAAg/B,MAAAkG,aAEAngC,QAAA,WACA/E,KAAA+zT,UAAA/zT,KAAA+zT,SAAAtvT,SACAzE,KAAA+zT,SAAA,MAEAsuE,eAAA,SAAAD,EAAAz+X,EAAAC,GACA,IAAAg3V,EAAAwnC,EAAAxnC,aACA57T,EAAAh/B,KAAAg/B,MACA47T,EAAAn8T,KAAAm8T,EAAAp8T,aAAA,kBAAAj3B,EAAA+4B,GACA,IAAA71B,MAAAlD,GAAA,CAIA,IAAA+vB,EAAAsjU,EAAAp7T,cAAAc,GAEA,GAAAhJ,KAAA+S,MAAA,CAKA,IAAAA,EAAA/S,EAAA+S,MACA3H,EAAApL,EAAAoL,OACAmxC,EAAA,IAAAr5D,EAAAytR,QACA1vR,OAMAb,KAAA0qX,EAAAl2W,UAAAyV,UAAA,UAEA5Z,OACAxQ,GAAA8yB,EAAA,KAAA3H,EACAlrB,GAAA6yB,EAAA,GACA5yB,EAAA,GAEA0sB,QAAA,EAEAC,GAAA1B,EAAA,OAGA,IAAAA,EAAA,CACA,IAAA4/V,EAAAF,EAAAG,WAAAr2W,UACAtpB,EAAAg4V,EAAAz2R,QAAA7jC,GACAkiW,EAAAF,EAAAhkG,YAAA17R,GACAsiE,EAAA01R,EAAAz1R,aAAA7kC,GACAylC,EAAAb,EAAA7lC,SAAA,SACAuwI,EAAA1qG,EAAA7lC,SAAA,kBACAojW,EAAAH,EAAAx+V,iBAAA0+V,GACAzoL,EAAAlgL,EAAAogL,UAAAmoL,EAAAxoL,kBAAAt5K,EAAA,UAAA19B,GACAo3M,EAAAngL,EAAAogL,UAAAmoL,EAAAxoL,kBAAAt5K,EAAA,YAAAy5K,GAEAp1I,EAAA,WACA,IAAAY,EAAA/qD,EAAA2/L,gBAAkDvqC,GAClDv+H,KAAAu+H,EAAA5rK,IAAA,QAAAg2M,EAAA,OAEAtd,YAAA,EACAl2H,gBAAA,IACW,GACXqN,EAAAt7D,MAAAg2S,WAAAhpP,GAEAsO,EAAA6uT,gBAAA7uT,EAAAzvC,GACAyvC,EAAAzvC,IAAA,GAGAygC,EAAA,WACArqD,EAAA2/L,aAAAtmI,EAAAt7D,MAAAwtD,GACA10B,KAAA00B,EAAA/hE,IAAA,QAAA+1M,EAAA,KACA3jK,aAAA2vB,EAAAV,WAAA,wBAEAq3H,YAAA,EACAl2H,gBAAA,IAGA,MAAAqN,EAAA6uT,kBACA7uT,EAAAzvC,GAAAyvC,EAAA6uT,gBACA7uT,EAAA6uT,gBAAA,OAIAD,EAAA/iX,GAAA,YAAAilD,GAAAjlD,GAAA,WAAAmlD,GAAAnlD,GAAA,WAAAilD,GAAAjlD,GAAA,SAAAmlD,GACAA,IAGA7lC,EAAAC,IAAA40C,UAKA3wE,EAAAC,QAAAF,wBCzJA,IAAA42B,EAAat6B,EAAQ,QA0BrB,SAAAojY,EAAAtqW,GACA,OAAAr4B,KAAA4iY,MAAAvqW,GAQA,IAAAw1V,EAAA,SAAAjrX,GACA5C,KAAA4iY,SACA5iY,KAAA6iY,YAKA7iY,KAAA4C,QAAA,IAGAirX,EAAA3tX,WACAC,YAAA0tX,EACArqX,KAAA,YAOAopB,QAAA,SAAAyL,GACA,OAAAr4B,KAAA4iY,MAAAvqW,IAOAurC,QAAA,WACA,OAAA/pC,EAAAlpB,IAAA3Q,KAAA6iY,SAAAF,EAAA3iY,OAMAi+B,eAAA,SAAA4yI,GAEA,OADAA,IAAAv4J,cACAuhB,EAAAzS,OAAApnB,KAAA4jE,UAAA,SAAAnuC,GACA,OAAAA,EAAAlkB,MAAA/N,OAAAqtK,KAQA7lG,QAAA,SAAAv1C,GACA,IAAA4C,EAAA5C,EAAA4C,IACAr4B,KAAA4iY,MAAAvqW,GAAA5C,EAEAz1B,KAAA6iY,SAAAthY,KAAA82B,IAQAvB,YAAA,SAAAvpB,GACA,OAAAvN,KAAA8iY,kBAAAv1X,EAAA,gBAQAw2D,YAAA,SAAAx2D,GACA,OAAAvN,KAAA8iY,kBAAAv1X,EAAA,gBAEAu1X,kBAAA,SAAA54X,EAAAwkC,GAIA,IAHA,IAAAq0V,EAAA/iY,KAAA6iY,SACAz6X,EAAA8B,aAAA2B,YAEA9K,EAAA,EAAmBA,EAAAgiY,EAAA9hY,OAAoBF,IAAA,CACvC,IAAAs3B,EAAA0qW,EAAAhiY,GACA00B,EAAAz1B,KAAA4iY,MAAAvqW,GACAjwB,EAAAiwB,GAAA5C,EAAAiZ,GAAAxkC,EAAAmuB,IAGA,OAAAjwB,IAGA,IAAAnF,EAAA4qX,EACA3qX,EAAAC,QAAAF,wBCtHA,IAAA0nC,EAAUprC,EAAQ,QAElBi3G,EAAWj3G,EAAQ,QAEnBkuN,EAAqBluN,EAAQ,QAoB7ByjY,EAAAxsR,EAAAx8F,QAAAw5R,YAEA,SAAAyvF,EAAA1rW,GACAv3B,KAAAu3B,QAGA0rW,EAAAvuW,eACArvB,MAAA,EACAmuE,KAAA,mFACAt5D,MAAA8oX,EAAA9oX,MACA1W,KAAA,MAGAZ,KAAA,GACA8vD,mBAAA,WACAP,WAAA,EACAqkD,KAAAwsR,EAAAxsR,KAAAl0G,SAEA2gY,EAAA/iY,UAAA+kU,UAAAt6R,EAAAiB,gBACAq3V,EAAA/iY,UAEAwuN,QAAA,SAAA/qN,EAAAC,GACA,IAAA2zB,EAAAv3B,KAAAu3B,MACArd,EAAAqd,EAAAvzB,IAAA,SAAAL,EAAAK,IAAA,2BACAk/X,EAAArzX,SAAAC,cAAA,KACAtM,EAAA+zB,EAAAvzB,IAAA,kBACAk/X,EAAAC,SAAAjpX,EAAA,IAAA1W,EACA0/X,EAAA3iY,OAAA,SACA,IAAA4N,EAAAvK,EAAAqvD,qBACAzvD,OACAiX,gBAAA8c,EAAAvzB,IAAA,uBAAAL,EAAAK,IAAA,2BACA0uD,kBAAAn7B,EAAAvzB,IAAA,qBACAmuD,WAAA56B,EAAAvzB,IAAA,gBAIA,GAFAk/X,EAAAp1O,KAAA3/I,EAEA,mBAAAi1X,YAAAz4V,EAAAqvB,QAAA8rN,IAAAn7O,EAAAqvB,QAAA2sH,KASA,GAAAh3K,OAAAkvC,UAAAwkV,iBAAA,CAKA,IAJA,IAAAC,EAAAC,KAAAp1X,EAAAtN,MAAA,SACAu9C,EAAAklV,EAAAriY,OACAuiY,EAAA,IAAAp/S,WAAAhmC,GAEAA,KACAolV,EAAAplV,GAAAklV,EAAA9hS,WAAApjD,GAGA,IAAAuxG,EAAA,IAAAC,MAAA4zO,IACA7zX,OAAAkvC,UAAAwkV,iBAAA1zO,EAAAz1I,EAAA,IAAA1W,OACO,CACP,IAAAgzG,EAAAj/E,EAAAvzB,IAAA,QACA49C,EAAA,qCAA+CzzC,EAAA,qCAAoDqoG,KAAA,sBACnG7mG,OAAAb,OACAe,SAAA2wV,MAAA5+S,OAxBA,CACA,IAAAwyB,EAAA,IAAAgvT,WAAA,SACAtwU,KAAAnjD,OACA8zX,SAAA,EACAC,YAAA,IAEAR,EAAA1rQ,cAAApjD,KAuBAq5I,EAAAxpN,SAAA,cAAAg/X,GACA,IAAAhgY,EAAAggY,EACA//X,EAAAC,QAAAF,wBC3FA,IAAA42B,EAAat6B,EAAQ,QAErB86B,EAAgB96B,EAAQ,QAExBib,EAAcjb,EAAQ,QAEtB4rC,EAAW5rC,EAAQ,QAoBnB09K,GAAA,aACAC,GAAA,wBACAymN,GAAA,+CACAC,EAAAvpW,EAAA3wB,QACAlG,KAAA,cACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA5D,KAAA4nX,gBAAApsV,GAEAx7B,KAAA0uE,aAAA1uE,KAAA8nX,aAAAtsV,GAAAx7B,KAAA+nX,cAAAvsV,IAEAmyC,yBAAA,SAAAnyC,EAAA73B,EAAAC,GACA5D,KAAA67N,SAEA77N,KAAA4nX,gBAAApsV,IAEAsyC,kBAAA,SAAAn8C,EAAA6J,EAAA73B,EAAAC,GACA5D,KAAA0uE,aAAA1uE,KAAAgoX,wBAAAr2V,EAAA6J,GAAAx7B,KAAA6jY,yBAAAlyW,EAAA6J,IAEAosV,gBAAA,SAAApsV,GACA,IAAA+yC,EAAA/yC,EAAA0yC,gBAAAC,OAEA,MAAAnuE,KAAA0uE,cAAAH,EAAAvuE,KAAA0uE,gBACA1uE,KAAA0uE,aAAAH,EAEAvuE,KAAA67N,WAGAksJ,cAAA,SAAAvsV,GACA,IAAA1qB,EAAA0qB,EAAAtP,UACAwU,EAAA1gC,KAAAic,MACA+iB,EAAAh/B,KAAAg/B,MACAs0U,EAAAxiW,EAAA84K,UAAA,eAGA5pL,KAAAic,OACA+iB,EAAAkG,YAGAp0B,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAgoC,GACA,GAAAn2D,EAAAusK,SAAAp2G,GAAA,CACA,IAAAxmE,EACA8mE,EAAAz2D,EAAA0uB,cAAAynC,GACAxmE,EAAA68K,EAAA/1G,EAAAN,GAAA,GACAzsD,EAAAgiB,UAAA/7B,GACAsnB,OACAqV,OAAAmqC,EAAAtlB,OAESzmB,EAAAyrC,GACT68T,EAAArjY,EAAAqQ,EAAAm2D,EAAAqsS,GACAt0U,EAAAC,IAAAx+B,GACAqQ,EAAA+vB,iBAAAomC,EAAAxmE,MAEK87C,OAAA,SAAA0qB,EAAAC,GACL,IAAAzmE,EAAAigC,EAAAoD,iBAAAojC,GAEA,GAAAp2D,EAAAusK,SAAAp2G,GAAA,CAKA,IAAAM,EAAAz2D,EAAA0uB,cAAAynC,GAEAxmE,EAGA+Z,EAAAoqB,YAAAnkC,GACAsnB,OACAqV,OAAAmqC,EAAAtlB,OAESzmB,EAAAyrC,GANTxmE,EAAA68K,EAAA/1G,EAAAN,GASA68T,EAAArjY,EAAAqQ,EAAAm2D,EAAAqsS,GACAt0U,EAAAC,IAAAx+B,GACAqQ,EAAA+vB,iBAAAomC,EAAAxmE,QAlBAu+B,EAAAv6B,OAAAhE,KAmBKgE,OAAA,SAAAyiE,GACL,IAAAzmE,EAAAigC,EAAAoD,iBAAAojC,GACAzmE,GAAAu+B,EAAAv6B,OAAAhE,KACK0mE,UACLnnE,KAAAic,MAAAnL,GAEAg3W,aAAA,SAAAtsV,GACAx7B,KAAA67N,SAEAwsJ,EAAA7sV,EAAAx7B,KAAAg/B,QAEA6kW,yBAAA,SAAAlyW,EAAA6J,GAKA,IAJA,IAEA4C,EAFAttB,EAAA0qB,EAAAtP,UACAonV,EAAAxiW,EAAA84K,UAAA,eAGA,OAAAxrJ,EAAAzM,EAAA8S,SAAA,CACA,IAAAhkC,EAGAqjY,EADArjY,EAAA68K,EADAxsK,EAAA0uB,cAAApB,GACAA,GACAttB,EAAAstB,EAAAk1U,GACA7yW,EAAA2vK,aAAA,EACApwK,KAAAg/B,MAAAC,IAAAx+B,KAGAunX,wBAAA,SAAAr2V,EAAA6J,GACA6sV,EAAA7sV,EAAAx7B,KAAAg/B,OAAA,IAEAv6B,OAAA,SAAAd,GACA3D,KAAA67N,UAEAA,OAAA,WACA77N,KAAAg/B,MAAAkG,YACAllC,KAAAic,MAAA,MAEAlX,QAAA80B,EAAAwiC,OAEA0nU,EAAA54V,EAAAzhC,QACAlG,KAAA,uBACAukB,SACA2nB,UAAA,SAAA7J,EAAA9d,GACA,IAAAk6B,EAAAl6B,EAAAqV,OAEAp9B,KAAAgkY,aACAn+V,EAAAkhI,OAAA9kH,EAAA,MAAAA,EAAA,OACApc,EAAAmhI,OAAA/kH,EAAA,MAAAA,EAAA,SAEApc,EAAAkhI,OAAA9kH,EAAA,MAAAA,EAAA,OACApc,EAAAmhI,OAAA/kH,EAAA,MAAAA,EAAA,OACApc,EAAAmhI,OAAA/kH,EAAA,MAAAA,EAAA,OACApc,EAAAmhI,OAAA/kH,EAAA,MAAAA,EAAA,OACApc,EAAA43I,YACA53I,EAAAkhI,OAAA9kH,EAAA,MAAAA,EAAA,OACApc,EAAAmhI,OAAA/kH,EAAA,MAAAA,EAAA,OACApc,EAAAkhI,OAAA9kH,EAAA,MAAAA,EAAA,OACApc,EAAAmhI,OAAA/kH,EAAA,MAAAA,EAAA,WAKA,SAAAq7H,EAAA/1G,EAAAnpC,EAAAs/I,GACA,IAAAz7H,EAAAslB,EAAAtlB,KACA,WAAA8hV,GACAh8W,OACAqV,OAAAsgJ,EAuBA,SAAAtgJ,EAAAmqC,GACA,OAAA1tC,EAAAlpB,IAAAysB,EAAA,SAAAiN,GAGA,OAFAA,IAAA/nC,SACA,GAAAilE,EAAAo2G,aACAtzI,IA3BAuzI,CAAA37H,EAAAslB,GAAAtlB,GAEA7d,GAAA,MAIA,SAAA0/V,EAAArjY,EAAAqQ,EAAAstB,EAAAk1U,GACA,IAAApuS,EAAAp0D,EAAAq0D,aAAA/mC,GACAy/I,EAAA34G,EAAA7lC,SAAA49I,GACA92K,EAAA2K,EAAAojD,cAAA91B,EAAA,SACArL,EAAAjiB,EAAAojD,cAAA91B,EAAA,gBAAAj4B,EAGAqM,EAAAqrK,EAAAv4G,aAAAq+T,GACAljY,EAAAsiC,SAAAvwB,GACA/R,EAAA8X,MAAA82B,eAAA,EACA5uC,EAAA8X,MAAAb,KAAAvR,EACA1F,EAAA8X,MAAA2qB,OAAAnQ,EACAtyB,EAAAujY,YAAA1wB,EACA,IAAA/tS,EAAAL,EAAA7lC,SAAA69I,GAAA53G,eACA9qD,EAAAmrD,cAAAllE,EAAA8kE,GAWA,IAAA0+T,EAAA94V,EAAAzhC,QACAlG,KAAA,sBACAukB,SACA2nB,UAAA,SAAA7J,EAAA9d,GAKA,IAFA,IAAAqV,EAAArV,EAAAqV,OAEAr8B,EAAA,EAAmBA,EAAAq8B,EAAAn8B,QACnB,GAAAjB,KAAAkkY,SAAA9mW,EAAAr8B,KAAA,CACA,IAAAsD,EAAA+4B,EAAAr8B,KACA8kC,EAAAkhI,OAAA1iK,EAAA+4B,EAAAr8B,MACA8kC,EAAAmhI,OAAA3iK,EAAA+4B,EAAAr8B,WAEAA,GAAA,KAMA,SAAAsnX,EAAA7sV,EAAAwD,EAAAoxI,GACA,IAAAt/J,EAAA0qB,EAAAtP,UACAqmW,EAAAzhX,EAAA84K,UAAA,eACAu6M,EAAA,IAAAF,GACAl8W,OACAqV,OAAAm1V,GAEA2R,OAAA,IAEAllW,EAAAC,IAAAklW,GACA,IAAAC,EAAA,IAAAH,GACAl8W,OACAqV,OAAAm1V,GAEA2R,QAAA,IAEAllW,EAAAC,IAAAmlW,GACA/a,EAAA,EAAA8a,EAAA3oW,EAAA1qB,GACAu4W,GAAA,EAAA+a,EAAA5oW,EAAA1qB,GAEAs/J,IACA+zN,EAAA/zN,aAAA,EACAg0N,EAAAh0N,aAAA,GAIA,SAAAi5M,EAAA5pK,EAAAh/M,EAAA+6B,EAAA1qB,GACA,IAAAm2N,EAAAxnB,EAAA,UACA1sL,EAAAjiB,EAAA6wB,UAAA,cAAAslM,IAAAn2N,EAAA6wB,UAAA,QAAAslM,GAGAz0N,EAAAgpB,EAAA6D,SAAA49I,GAAA33G,aAAAq+T,GACAljY,EAAAsiC,SAAAvwB,GACA/R,EAAA8X,MAAAb,KAAA,KACAjX,EAAA8X,MAAA2qB,OAAAnQ,EAIA,IAAA9vB,EAAA2gY,EACA1gY,EAAAC,QAAAF,wBC/PA1D,EAAQ,QACR,IAAAyjR,EAAczjR,EAAQ,QAAqBqK,OAC3C1G,EAAAC,QAAA,SAAAk+N,EAAA5iE,GACA,OAAAukH,EAAA39N,iBAAAg8K,EAAA5iE,0BCHA,IAAAy4H,EAAc33R,EAAQ,QAEtBmtC,EAAAwqP,EAAAxqP,aACA+mH,EAAAyjI,EAAAzjI,UAEA5tF,EAAkBtmE,EAAQ,QAE1Bs6B,EAAat6B,EAAQ,QAoBrB+vE,EAAA,EAAAvnE,KAAAgwB,GACAiE,EAAAj0B,KAAAgwB,GAAA,IA0HA70B,EAAAC,QAxHA,SAAA0sE,EAAAlsE,EAAAC,EAAAggC,GACAjgC,EAAAikM,iBAAA/3H,EAAA,SAAAr0C,GACA,IAAA1qB,EAAA0qB,EAAAtP,UACAmU,EAAAvvB,EAAA0tB,aAAA,SACA1a,EAAA0X,EAAAx3B,IAAA,UACA2e,EAAA6Y,EAAAx3B,IAAA,UAEA61B,EAAA/tB,QAAA6W,KACAA,GAAA,EAAAA,IAGAkX,EAAA/tB,QAAAgY,KACAA,SAGA,IAAA9K,EAAApV,EAAAkuD,WACA74C,EAAArV,EAAAmuD,YACAlgC,EAAA9pB,KAAAC,IAAAgR,EAAAC,GACA1B,EAAAm1B,EAAA5oB,EAAA,GAAA9K,GACAxB,EAAAk1B,EAAA5oB,EAAA,GAAA7K,GACAkjB,EAAAuQ,EAAA/pB,EAAA,GAAAkP,EAAA,GACApa,EAAAi1B,EAAA/pB,EAAA,GAAAkP,EAAA,GACAuK,GAAAZ,EAAAx3B,IAAA,cAAAg4B,EACA4wJ,EAAApxJ,EAAAx3B,IAAA,YAAAg4B,EACA26U,EAAA,EACA7lW,EAAA2tB,KAAA4B,EAAA,SAAA94B,IACAkD,MAAAlD,IAAAovW,MAEA,IAAAryV,EAAAxT,EAAA0gM,OAAAnxK,GAEAu2U,EAAA7uW,KAAAgwB,IAAAzT,GAAAqyV,GAAA,EACAr6U,EAAAd,EAAAx3B,IAAA,aACAye,EAAA+Y,EAAAx3B,IAAA,YACAgpL,EAAAxxJ,EAAAx3B,IAAA,oBAEAg3B,EAAAlqB,EAAAygN,cAAAlxL,GACArF,EAAA,KAEA,IAAAqpW,EAAA/0T,EACAg1T,EAAA,EACAC,EAAAnoW,EACAjB,EAAAmB,EAAA,KA+CA,GA9CAxrB,EAAA2tB,KAAA4B,EAAA,SAAA94B,EAAA+4B,GACA,IAAAgN,EAEA,GAAA7iC,MAAAlD,GACAuJ,EAAA64K,cAAArpJ,GACAgN,MAAAmhI,IACAryI,WAAAqyI,IACApyI,SAAAoyI,IACAnyI,YACA/kB,KACAC,KACA2kB,KACA1kB,EAAAgL,EAAAgsJ,IAAAh3J,QATA,EAgBA61B,EADA,SAAA7qB,EACA,IAAA6B,GAAA0oK,EAAA4pL,EAAArvW,EAAAqvW,EAEAtnS,EAAAqnS,GAGA/pL,GACAt/I,EAAAs/I,EACAy3M,GAAAz3M,GAEA03M,GAAA/8X,EAGA,IAAA80B,EAAAkoW,EAAAppW,EAAAmS,EACAx8B,EAAA64K,cAAArpJ,GACAgN,QACAlR,WAAAmoW,EACAloW,WACAC,YACA/kB,KACAC,KACA2kB,KACA1kB,EAAAgL,EAAAgxI,EAAAlsJ,EAAAyzB,GAAAmB,EAAA1kB,QAEA8sX,EAAAloW,KAIAgoW,EAAA/0T,GAAAqnS,EAGA,GAAA0tB,GAAA,MACA,IAAA/2V,EAAAgiC,EAAAqnS,EACA7lW,EAAA2tB,KAAA4B,EAAA,SAAA94B,EAAA+4B,GACA,IAAA71B,MAAAlD,GAAA,CACA,IAAA+vB,EAAAxmB,EAAA0uB,cAAAc,GACAhJ,EAAAgW,QACAhW,EAAA8E,aAAAjB,EAAAmF,EAAAgN,EACAhW,EAAA+E,SAAAD,EAAAjB,GAAAmF,EAAA,GAAAgN,UAIAspU,EAAAytB,EAAAC,EACAC,EAAAnoW,EACAtrB,EAAA2tB,KAAA4B,EAAA,SAAA94B,EAAA+4B,GACA,IAAA71B,MAAAlD,GAAA,CACA,IAAA+vB,EAAAxmB,EAAA0uB,cAAAc,GACAgN,EAAAhW,EAAAgW,QAAAs/I,IAAArlL,EAAAqvW,EACAt/U,EAAA8E,WAAAmoW,EACAjtW,EAAA+E,SAAAkoW,EAAAppW,EAAAmS,EACAi3V,GAAAppW,EAAAmS,KAMAu4B,EAAArqC,EAAA/jB,EAAAuB,EAAAC,yCC9IA,IAAAu2H,EAAA,oEAEA,SAAA2pK,IACAn5S,KAAA8/D,QAAA,uCAEAq5O,EAAAj5S,UAAA,IAAAm/D,MACA85O,EAAAj5S,UAAAgiI,KAAA,EACAi3K,EAAAj5S,UAAA0C,KAAA,wBAwBAM,EAAAC,QAtBA,SAAA+G,GAGA,IAFA,IAIAonO,EAAAj8F,EAJAhlG,EAAAl/B,OAAAjH,GACA9B,EAAA,GAGAk4B,EAAA,EAAA3vB,EAAA6+H,EAIAn/F,EAAA6O,OAAA,EAAA5e,KAAA3vB,EAAA,IAAA2vB,EAAA,GAEAl4B,GAAAuI,EAAAuuC,OAAA,GAAAoyL,GAAA,EAAAhxM,EAAA,KACA,CAEA,IADA+0G,EAAAhlG,EAAAmxD,WAAAlhE,GAAA,MACA,IACA,UAAA64Q,EAEA7nE,KAAA,EAAAj8F,EAEA,OAAAjtI,yBChCAlF,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAA+B6xE,YAAA,sCCCrE,IAAAq/E,EAAsBlxJ,EAAQ,QAC9BwpS,EAAiBxpS,EAAQ,QAEzB2D,EAAAC,QAAA,SAAAkuE,EAAAzkE,EAAArF,GACAqF,KAAAykE,EAAAo/E,EAAAztG,EAAAquB,EAAAzkE,EAAAm8R,EAAA,EAAAxhS,IACA8pE,EAAAzkE,GAAArF,yBCNchI,EAAQ,QAEtBq6B,QAFA,IAIAn6B,EAAYF,EAAQ,QAEpBw1D,EAAAt1D,EAAAs1D,cAEAt2B,GADAh/B,EAAAuoE,SACAvoE,EAAAg/B,MA+DA,IAAA+lW,GACAlc,YAAA,SAAA9sV,EAAAzqB,EAAA2uV,EAAArhH,GACA,IAAA7zK,EAAAhvC,EAAAivC,uBAAA,YACAC,EAAAlvC,EAAAivC,uBAAA,YACA15D,EAAAmtO,cAAA,SACAwhH,EAAA16S,IAAA,IAAAwlB,GACAk1R,EAAA16S,IAAA,IAAA0lB,GAEAtH,EAAAoH,KACA6zK,EAAAr5L,IAAA,IAAAwlB,GACAz5D,EAAAotO,sBAAA,GAGA/6K,EAAAsH,KACA2zK,EAAAr5L,IAAA,IAAA0lB,GACA35D,EAAAotO,sBAAA,IAGAzpB,WAAA,SAAAl5L,EAAAzqB,EAAA2uV,EAAArhH,GACA,IAAA31B,EAAAltL,EAAAivC,uBAAA,iBACA15D,EAAAmtO,cAAA,UACAwhH,EAAA16S,IAAA,SAAA0jK,GAEAtlJ,EAAAslJ,KACA21B,EAAAr5L,IAAA,SAAA0jK,GACA33M,EAAAotO,sBAAA,IAGA1iN,MAAA,SAAAD,EAAAzqB,EAAA2uV,EAAArhH,GACA,IAAA66I,EAAA19V,EAAAivC,uBAAA,YACA0uT,EAAAD,EAAAp4J,cAAA,cACA+mE,EAAAqxF,EAAAp4J,cAAA,aACA/vN,EAAAmtO,cAAA,kBACAwhH,EAAA16S,IAAA,SAAAm0U,GACAz5B,EAAA16S,IAAA,QAAA6iP,GAEAzkO,EAAA+1T,KACA96I,EAAAr5L,IAAA,SAAAm0U,GACApoX,EAAAotO,sBAAA,GAGA/6K,EAAAykO,KACAxpD,EAAAr5L,IAAA,QAAA6iP,GACA92R,EAAAotO,sBAAA,IAGA7jO,IAAA,SAAAkhB,EAAAzqB,EAAA2uV,EAAArhH,GACAttO,EAAAmtO,cAAA,cAEAvuD,SAAA,SAAAn0J,EAAAzqB,EAAA2uV,EAAArhH,GACA,IAAA16O,EAAA63B,EAAA73B,QACAolK,EAAAplK,EAAAG,aAAA,WAAA03B,EAAAx3B,IAAA,kBACAk6O,EAAAntO,EAAAmtO,aAAAn1E,EAAAhnI,WAAAz/B,QACAm8B,EAAAsqI,EAAAqjI,kBAAA,SAAAjiO,EAAAv9D,GACA,IAAAypB,EAAA1yB,EAAAG,aAAA,eAAAqmE,GACA6+F,EAAAk1E,EAAAtxO,GACA8yV,EAAA16S,IAAAgkH,EAAA3yI,GAEA+sC,EAAA/sC,IAAA,MAAAtlB,EAAAotO,wBACAE,EAAAr5L,IAAAgkH,EAAA3yI,GACAtlB,EAAAotO,sBAAAvxO,OAMA,SAAAw2D,EAAA/sC,GACA,mBAAAA,EAAAryB,IAAA,QAGAb,EAAA24O,0BAtFA,SAAAtgN,GACA,IAAA+3L,EAAA/3L,EAAAx3B,IAAA,oBACA+M,GACAwiN,eACA2qB,gBACAwhH,QAAA3qS,IACAspL,gBAAAtpL,KAEAi4S,EAAAw3B,EAAAjxK,GAEA,GAAAy5I,EAEA,OADAA,EAAAxxU,EAAAzqB,IAAA2uV,QAAA3uV,EAAAstO,iBACAttO,yBCnEA,IAAAq/S,EAAgB7wT,EAAQ,QAiBxB,SAAA0kW,EAAA3zC,EAAAC,GACAH,EAAA1kT,KAAA1L,KAAAswT,EAAAC,GAAA,4CAmKA,SAAAk0E,EAAAlsX,GAEA,OAAAA,MAAA6sB,YAAA7sB,EAAA8sB,eAAA9sB,EAAA+sB,eAAA/sB,EAAAgtB,gBAAAhtB,EAAAitB,mBAAAjtB,EAAAktB,mBArLalmC,EAAQ,QAmBrBisD,SAAAy4S,EAAA7zC,GASA6zC,EAAA/jW,UAAA60T,iBAAA,SAAAC,EAAAj8P,GACA,GAAAA,GAAA0rU,EAAA1rU,EAAAxgD,OAAA,CACA,IAEA01C,EAFA11C,EAAAwgD,EAAAxgD,MAIA,GAAAA,EAAAmsX,WAEAz2U,EAAA11C,EAAAmsX,WACA1kY,KAAAgxT,SAAA,GAEAxtQ,SAAAjrC,EAAAmsX,aAEA1kY,KAAAk1T,OAAAjnQ,QAIAA,EAAAjuD,KAAAi/B,IAAA85B,GAGA/4D,KAAA4wT,SAAA73P,GACA,IAAAr3D,EAAAusD,EAAAiN,aAAA,MACA85P,EAAAz8S,MAAA6O,OAAA,QAAA1lB,EAAA,MAWAuiW,EAAA/jW,UAAA++B,IAAA,SAAA85B,GACA,IAAA9K,EAAAjuD,KAAA8P,cAAA,UACAyI,EAAAwgD,EAAAxgD,MAUA,OAJAA,EAAAosX,aAAApsX,EAAAosX,cAAA3kY,KAAAkxT,SACAjjQ,EAAAvnB,aAAA,UAAA1mC,KAAAixT,MAAA,WAAA14S,EAAAosX,cACA3kY,KAAA0wT,UAAA33P,EAAA9K,GACAjuD,KAAAk1T,OAAAjnQ,GACAA,GASAg2S,EAAA/jW,UAAAq8C,OAAA,SAAAy4Q,EAAAj8P,GACA,IAAAxgD,EAAAwgD,EAAAxgD,MAEA,GAAAksX,EAAAlsX,GAAA,CACA,IAAA84S,EAAArxT,KACAowT,EAAAlwT,UAAAq8C,OAAA7wC,KAAA1L,KAAA+4D,EAAA,SAAAxgD,GACA84S,EAAAX,UAAA33P,EAAAxgD,EAAAmsX,mBAIA1kY,KAAAyE,OAAAuwT,EAAAz8S,IAQA0rV,EAAA/jW,UAAAuE,OAAA,SAAAuwT,EAAAz8S,GACA,MAAAA,EAAAosX,eACA3kY,KAAAm1T,UAAA58S,GACAy8S,EAAAz8S,MAAA6O,OAAA,KAWA68U,EAAA/jW,UAAAwwT,UAAA,SAAA33P,EAAA9K,GACA,IAAA22U,EAAA32U,EAAA9gB,qBAAA,gBAGAy3V,EADA,IAAAA,EAAA3jY,OACAjB,KAAA8P,cAAA,gBAEA80X,EAAA,GAGA,IAIAtgY,EAAAE,EAAAyhO,EAAA9/N,EAJAoS,EAAAwgD,EAAAxgD,MACA26B,EAAA6lB,EAAAxnD,OAAAwnD,EAAAxnD,MAAA,MACA4hC,EAAA4lB,EAAAxnD,OAAAwnD,EAAAxnD,MAAA,MAIA,GAAAgH,EAAA6sB,YAAA7sB,EAAA8sB,eAAA9sB,EAAA+sB,cACAhhC,EAAAiU,EAAA8sB,eAAA,EACA7gC,EAAA+T,EAAA+sB,eAAA,EACA2gM,EAAA1tN,EAAA6sB,WACAj/B,EAAAoS,EAAA+lK,gBACG,KAAA/lK,EAAAgtB,eAQH,YADAvlC,KAAAm1T,UAAAlnQ,EAAA11C,GANAjU,EAAAiU,EAAAitB,mBAAA,EACAhhC,EAAA+T,EAAAktB,mBAAA,EACAwgM,EAAA1tN,EAAAgtB,eACAp/B,EAAAoS,EAAA+qR,gBAOAshG,EAAAl+V,aAAA,KAAApiC,EAAA4uC,GACA0xV,EAAAl+V,aAAA,KAAAliC,EAAA2uC,GACAyxV,EAAAl+V,aAAA,cAAAvgC,GAGA,IAEA0+X,EAFA5+J,EAAA,EAAA/yL,EAEA,IADA+yL,EAAA,EAAA9yL,EAEAyxV,EAAAl+V,aAAA,eAAAm+V,GAEA52U,EAAAvnB,aAAA,aACAunB,EAAAvnB,aAAA,aACAunB,EAAAvnB,aAAA,QAAA3+B,KAAAowC,KAAA8tL,EAAA,YACAh4K,EAAAvnB,aAAA,SAAA3+B,KAAAowC,KAAA8tL,EAAA,YACAh4K,EAAAh+C,YAAA20X,GAGArsX,EAAAmsX,WAAAz2U,GASAg2S,EAAA/jW,UAAA0wT,SAAA,SAAA73P,GACA,IAAAxgD,EAAAwgD,EAAAxgD,MAEAA,KAAAmsX,YACAt0E,EAAAlwT,UAAA0wT,SAAAllT,KAAA1L,KAAAuY,EAAAmsX,aASA,IAAAzhY,EAAAghW,EACA/gW,EAAAC,QAAAF,wBC3LA,IAEA6M,EAFYvQ,EAAQ,QAEpBuQ,cAEA+pB,EAAat6B,EAAQ,QAErB4rC,EAAW5rC,EAAQ,QAEnB0rC,EAAa1rC,EAAQ,QAErBykW,EAAYzkW,EAAQ,QAEpB2kW,EAAe3kW,EAAQ,QAEvBs4T,EAAAqsC,EAAA7jW,KACA+3T,EAAA8rC,EAAApyT,MACA0mR,EAAA0rC,EAAA7yT,KAqBA,SAAA++Q,EAAAE,EAAAC,EAAAu0E,EAAAC,EAAAC,GACAhlY,KAAAixT,MAAAX,EACAtwT,KAAA2kW,SAAAp0C,EACAvwT,KAAAilY,UAAA,iBAAAH,QACA9kY,KAAAklY,WAAAH,EACA/kY,KAAAmlY,SAAAH,GAAA,OACAhlY,KAAAkxT,OAAA,EAGAd,EAAAlwT,UAAA4P,gBASAsgT,EAAAlwT,UAAA8wT,QAAA,SAAAs0C,GACA,IAAA/0C,EAAAvwT,KAAA2kW,SAEA5zC,EAAA/wT,KAAA2kW,SAAAx3T,qBAAA,QAEA,WAAA4jR,EAAA9vT,OAEAqkW,IACAv0C,EAAAR,EAAAr3I,aAAAl5K,KAAA8P,cAAA,QACAygT,EAAAx5Q,aAGAyM,WAEAutQ,EAAAvtQ,SAAA,SAAA/iD,GACA,IAAA8nL,EAAAwoI,EAAAxoI,SAEA,IAAAA,EACA,SAGA,QAAAxnL,EAAAwnL,EAAAtnL,OAAA,EAA2CF,GAAA,IAAQA,EACnD,GAAAwnL,EAAAxnL,KAAAN,EACA,SAIA,WAIAswT,GAEA,KAGAA,EAAA,IAYAX,EAAAlwT,UAAAq8C,OAAA,SAAA9V,EAAAsZ,GACA,GAAAtZ,EAAA,CAIA,IAAAsqR,EAAA/wT,KAAAgxT,SAAA,GAEA,GAAAvqR,EAAAzmC,KAAAmlY,WAAAp0E,EAAAvtQ,SAAA/c,EAAAzmC,KAAAmlY,WAEA,mBAAAplV,GACAA,EAAAtZ,OAEG,CAEH,IAAAwnB,EAAAjuD,KAAAi/B,IAAAwH,GAEAwnB,IACAxnB,EAAAzmC,KAAAmlY,UAAAl3U,MAWAmiQ,EAAAlwT,UAAAg1T,OAAA,SAAAjnQ,GACAjuD,KAAAgxT,SAAA,GACA/gT,YAAAg+C,IASAmiQ,EAAAlwT,UAAAi1T,UAAA,SAAA1uR,GACA,IAAAsqR,EAAA/wT,KAAAgxT,SAAA,GAEAD,GAAAtqR,EAAAzmC,KAAAmlY,YACAp0E,EAAAvkR,YAAA/F,EAAAzmC,KAAAmlY,WACA1+V,EAAAzmC,KAAAmlY,UAAA,OAUA/0E,EAAAlwT,UAAAklY,QAAA,WACA,IAAAr0E,EAAA/wT,KAAAgxT,SAAA,GAEA,IAAAD,EAEA,SAGA,IAAAs0E,KAQA,OAPAxrW,EAAA4E,KAAAz+B,KAAAilY,UAAA,SAAAlzV,GACA,IAAAiwQ,EAAA+O,EAAA5jR,qBAAA4E,GAIAszV,IAAAtwX,UAAAzS,MAAAoJ,KAAAs2S,MAEAqjF,GAQAj1E,EAAAlwT,UAAA4kW,cAAA,WACA,IAAAugC,EAAArlY,KAAAolY,UACA/zE,EAAArxT,KACA65B,EAAA4E,KAAA4mW,EAAA,SAAAp3U,GACAA,EAAAojQ,EAAA6zE,YAlKA,OA4KA90E,EAAAlwT,UAAA0wT,SAAA,SAAA3iQ,GACAA,IACAA,EAAAjuD,KAAAklY,YA7KA,MAqLA90E,EAAAlwT,UAAAklW,aAAA,WACA,IAAAr0C,EAAA/wT,KAAAgxT,SAAA,GAEA,GAAAD,EAAA,CAKA,IAAAs0E,EAAArlY,KAAAolY,UACA/zE,EAAArxT,KACA65B,EAAA4E,KAAA4mW,EAAA,SAAAp3U,GA/LA,MAgMAA,EAAAojQ,EAAA6zE,aAEAn0E,EAAAvkR,YAAAyhB,OAYAmiQ,EAAAlwT,UAAAkxT,YAAA,SAAAr4P,GACA,OAAAA,aAAA5tB,EACA0sR,EACG9+P,aAAA9tB,EACHmtR,EACGr/P,aAAAirS,EACHxrC,EAEAX,GAWAzH,EAAAlwT,UAAAywT,kBAAA,SAAA53P,GACA,OAAAA,EAAA2/P,aAUAtI,EAAAlwT,UAAAuwT,cAAA,SAAA13P,GACA,OAAAA,EAAA++P,SAGA,IAAA70T,EAAAmtT,EACAltT,EAAAC,QAAAF,wBCzQA,IAAA42B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBsnC,EAAmBtnC,EAAQ,QA0B3B+lY,EAAA9qX,EAAA40N,aACA5rO,KAAA,WACAukB,OACAxQ,GAAA,EACAC,GAAA,EACAwB,MAAA,EACAC,OAAA,GAEAy2B,UAAA,SAAArvC,EAAA0nB,GACA,IAAAxQ,EAAAwQ,EAAAxQ,GACAC,EAAAuQ,EAAAvQ,GACAwB,EAAA+O,EAAA/O,MAAA,EACAC,EAAA8O,EAAA9O,OAAA,EACA5Y,EAAA0mK,OAAAxvJ,EAAAC,EAAAyB,GACA5Y,EAAA2mK,OAAAzvJ,EAAAyB,EAAAxB,EAAAyB,GACA5Y,EAAA2mK,OAAAzvJ,EAAAyB,EAAAxB,EAAAyB,GACA5Y,EAAAo9K,eAQA8nN,EAAA/qX,EAAA40N,aACA5rO,KAAA,UACAukB,OACAxQ,GAAA,EACAC,GAAA,EACAwB,MAAA,EACAC,OAAA,GAEAy2B,UAAA,SAAArvC,EAAA0nB,GACA,IAAAxQ,EAAAwQ,EAAAxQ,GACAC,EAAAuQ,EAAAvQ,GACAwB,EAAA+O,EAAA/O,MAAA,EACAC,EAAA8O,EAAA9O,OAAA,EACA5Y,EAAA0mK,OAAAxvJ,EAAAC,EAAAyB,GACA5Y,EAAA2mK,OAAAzvJ,EAAAyB,EAAAxB,GACAnX,EAAA2mK,OAAAzvJ,EAAAC,EAAAyB,GACA5Y,EAAA2mK,OAAAzvJ,EAAAyB,EAAAxB,GACAnX,EAAAo9K,eAQA+nN,EAAAhrX,EAAA40N,aACA5rO,KAAA,MACAukB,OAEA1jB,EAAA,EACAE,EAAA,EACAyU,MAAA,EACAC,OAAA,GAEAy2B,UAAA,SAAArvC,EAAA0nB,GACA,IAAA1jB,EAAA0jB,EAAA1jB,EACAE,EAAAwjB,EAAAxjB,EACAw/G,EAAAh8F,EAAA/O,MAAA,IAEAf,EAAAlQ,KAAAE,IAAA87G,EAAAh8F,EAAA9O,QACAxB,EAAAssG,EAAA,EAEA/1E,EAAAv2B,KAAAQ,EAAAR,GACAD,EAAAjT,EAAA0T,EAAAR,EAAAu2B,EACAV,EAAAvlC,KAAA09X,KAAAz3V,EAAAv2B,GAEAs2B,EAAAhmC,KAAA0jC,IAAA6B,GAAA71B,EACAiuX,EAAA39X,KAAA2jC,IAAA4B,GACAq4V,EAAA59X,KAAA0jC,IAAA6B,GACAs4V,EAAA,GAAAnuX,EACAouX,EAAA,GAAApuX,EACApX,EAAA0mK,OAAA1iK,EAAA0pC,EAAAv2B,EAAAw2B,GACA3tC,EAAA8mK,IAAA9iK,EAAAmT,EAAAC,EAAA1P,KAAAgwB,GAAAuV,EAAA,EAAAvlC,KAAAgwB,GAAAuV,GACAjtC,EAAAk2N,cAAAlyN,EAAA0pC,EAAA23V,EAAAE,EAAApuX,EAAAw2B,EAAA23V,EAAAC,EAAAvhY,EAAAE,EAAAshY,EAAAxhY,EAAAE,GACAlE,EAAAk2N,cAAAlyN,EAAAE,EAAAshY,EAAAxhY,EAAA0pC,EAAA23V,EAAAE,EAAApuX,EAAAw2B,EAAA23V,EAAAC,EAAAvhY,EAAA0pC,EAAAv2B,EAAAw2B,GACA3tC,EAAAo9K,eAQAqoN,EAAAtrX,EAAA40N,aACA5rO,KAAA,QACAukB,OACA1jB,EAAA,EACAE,EAAA,EACAyU,MAAA,EACAC,OAAA,GAEAy2B,UAAA,SAAA7J,EAAA9d,GACA,IAAA9O,EAAA8O,EAAA9O,OACAD,EAAA+O,EAAA/O,MACA3U,EAAA0jB,EAAA1jB,EACAE,EAAAwjB,EAAAxjB,EACAwpC,EAAA/0B,EAAA,IACA6sB,EAAAkhI,OAAA1iK,EAAAE,GACAshC,EAAAmhI,OAAA3iK,EAAA0pC,EAAAxpC,EAAA0U,GACA4sB,EAAAmhI,OAAA3iK,EAAAE,EAAA0U,EAAA,KACA4sB,EAAAmhI,OAAA3iK,EAAA0pC,EAAAxpC,EAAA0U,GACA4sB,EAAAmhI,OAAA3iK,EAAAE,GACAshC,EAAA43I,eAQAsoN,GACAtgY,KAAA+U,EAAAqyD,KACA3kC,KAAA1tB,EAAAyiB,KACA+oW,UAAAxrX,EAAAyiB,KACAwiO,OAAAjlP,EAAAyiB,KACA42C,OAAAr5D,EAAAytR,OACAg+F,QAAAV,EACAW,IAAAV,EACA5kV,MAAAklV,EACAK,SAAAb,GAEAc,GACA3gY,KAAA,SAAApB,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GAEAA,EAAA0oB,GAAApsC,EACA0jB,EAAA2oB,GAAAnsC,EAAA0T,EAAA,EACA8P,EAAA8lB,GAAAxpC,EAAA0/G,EACAh8F,EAAA+lB,GAAAvpC,EAAA0T,EAAA,GAEAiwB,KAAA,SAAA7jC,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GACAA,EAAA1jB,IACA0jB,EAAAxjB,IACAwjB,EAAA/O,MAAA+qG,EACAh8F,EAAA9O,OAAAhB,GAEA+tX,UAAA,SAAA3hY,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GACAA,EAAA1jB,IACA0jB,EAAAxjB,IACAwjB,EAAA/O,MAAA+qG,EACAh8F,EAAA9O,OAAAhB,EACA8P,EAAAtQ,EAAA1P,KAAAC,IAAA+7G,EAAA9rG,GAAA,GAEAwnP,OAAA,SAAAp7P,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GACA,IAAA8J,EAAA9pB,KAAAC,IAAA+7G,EAAA9rG,GACA8P,EAAA1jB,IACA0jB,EAAAxjB,IACAwjB,EAAA/O,MAAA6Y,EACA9J,EAAA9O,OAAA4Y,GAEAgiD,OAAA,SAAAxvE,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GAEAA,EAAAxQ,GAAAlT,EAAA0/G,EAAA,EACAh8F,EAAAvQ,GAAAjT,EAAA0T,EAAA,EACA8P,EAAAtQ,EAAA1P,KAAAC,IAAA+7G,EAAA9rG,GAAA,GAEAguX,QAAA,SAAA5hY,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GACAA,EAAAxQ,GAAAlT,EAAA0/G,EAAA,EACAh8F,EAAAvQ,GAAAjT,EAAA0T,EAAA,EACA8P,EAAA/O,MAAA+qG,EACAh8F,EAAA9O,OAAAhB,GAEAiuX,IAAA,SAAA7hY,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GACAA,EAAA1jB,IAAA0/G,EAAA,EACAh8F,EAAAxjB,IAAA0T,EAAA,EACA8P,EAAA/O,MAAA+qG,EACAh8F,EAAA9O,OAAAhB,GAEA2oC,MAAA,SAAAv8C,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GACAA,EAAA1jB,IAAA0/G,EAAA,EACAh8F,EAAAxjB,IAAA0T,EAAA,EACA8P,EAAA/O,MAAA+qG,EACAh8F,EAAA9O,OAAAhB,GAEAkuX,SAAA,SAAA9hY,EAAAE,EAAAw/G,EAAA9rG,EAAA8P,GACAA,EAAAxQ,GAAAlT,EAAA0/G,EAAA,EACAh8F,EAAAvQ,GAAAjT,EAAA0T,EAAA,EACA8P,EAAA/O,MAAA+qG,EACAh8F,EAAA9O,OAAAhB,IAGAouX,KACAxsW,EAAA4E,KAAAsnW,EAAA,SAAAr6J,EAAA9oO,GACAyjY,EAAAzjY,GAAA,IAAA8oO,IAEA,IAAA3xM,EAAAvf,EAAA40N,aACA5rO,KAAA,SACAukB,OACA+nD,WAAA,GACAzrE,EAAA,EACAE,EAAA,EACAyU,MAAA,EACAC,OAAA,GAEA0/J,YAAA,WACA,IAAApgK,EAAAvY,KAAAuY,MAGA,QAFAvY,KAAA+nB,MAEA+nD,YAAA,WAAAv3D,EAAA69B,eACA79B,EAAA69B,cAAA,aACA79B,EAAAm9B,UAAA,SACAn9B,EAAAo9B,kBAAA,WAGAjG,UAAA,SAAA7J,EAAA9d,EAAAgmS,GACA,IAAAj+O,EAAA/nD,EAAA+nD,WACAw2T,EAAAD,EAAAv2T,GAEA,SAAA/nD,EAAA+nD,aACAw2T,IAGAA,EAAAD,EADAv2T,EAAA,SAIAs2T,EAAAt2T,GAAA/nD,EAAA1jB,EAAA0jB,EAAAxjB,EAAAwjB,EAAA/O,MAAA+O,EAAA9O,OAAAqtX,EAAAv+W,OACAu+W,EAAA52V,UAAA7J,EAAAygW,EAAAv+W,MAAAgmS,OAKA,SAAAw4E,EAAApgY,EAAAqgY,GACA,aAAAxmY,KAAAwD,KAAA,CACA,IAAAijY,EAAAzmY,KAAAuY,MACAmuX,EAAA1mY,KAAA+nB,MAEA2+W,GAAA,SAAAA,EAAA52T,WACA22T,EAAAvjW,OAAA/8B,EACKnG,KAAA2mY,gBACLF,EAAAvjW,OAAA/8B,EACAsgY,EAAA/uX,KAAA8uX,GAAA,SAGAC,EAAA/uX,OAAA+uX,EAAA/uX,KAAAvR,GACAsgY,EAAAvjW,SAAAujW,EAAAvjW,OAAA/8B,IAGAnG,KAAAoB,OAAA,IAgDA+B,EAAAsvL,aAhCA,SAAA3iH,EAAAzrE,EAAAE,EAAAw/G,EAAA9rG,EAAA9R,EAAAk9V,GAEA,IAMAz/J,EANA3jK,EAAA,IAAA6vC,EAAAhwE,QAAA,SA2BA,OAzBAmgC,IACA6vC,IAAAilC,OAAA,KAAAz8F,cAAAw3D,EAAAilC,OAAA,KAMA6uF,EADA,IAAA9zH,EAAAhwE,QAAA,YACA0a,EAAAk8U,UAAA5mR,EAAAxtE,MAAA,OAAAukC,EAAAxiC,EAAAE,EAAAw/G,EAAA9rG,GAAAorV,EAAA,kBACG,IAAAvzR,EAAAhwE,QAAA,WACH0a,EAAAi5U,SAAA3jR,EAAAxtE,MAAA,MAAyD,IAAAukC,EAAAxiC,EAAAE,EAAAw/G,EAAA9rG,GAAAorV,EAAA,kBAEzD,IAAAtpU,GACAhS,OACA+nD,aACAzrE,IACAE,IACAyU,MAAA+qG,EACA9qG,OAAAhB,MAKA0uX,eAAA1mW,EACA2jK,EAAA1Q,SAAAqzM,EACA3iM,EAAA1Q,SAAA/sL,GACAy9L,uBC7OA1gM,EAAAC,QA5DA,SAAA0sE,EAAA+2T,EAAAjZ,GAEA,OACA99S,aAEA4hK,kBAAA,EACA3mO,MAAA,SAAA0wB,EAAA73B,EAAAC,GACA,IAAAkN,EAAA0qB,EAAAtP,UACA4jD,EAAAt0C,EAAAx3B,IAAA,WAAA4iY,EACA33W,EAAAuM,EAAAx3B,IAAA,cACAq/V,EAAA7nU,EAAAx3B,IAAA,oBAQA,GAPA8M,EAAAkxD,WACA2rT,gBAAA79S,EACA9gD,OAAA8gD,EACA7gD,aACAwoT,iBAAA4rB,KAGA1/V,EAAA+tO,iBAAAl2M,GAAA,CAIA,IAAAqrW,EAAA,mBAAA53W,EA+BA,OACA8gD,SAAAj/D,EAAAk/D,eAAA62T,EA9BA,SAAA/1X,EAAAwvB,GACA,sBAAArR,EAAA,CACA,IAAA63W,EAAAtrW,EAAAs+K,YAAAx5K,GAEA3O,EAAA6J,EAAA++B,cAAAj6B,GACAxvB,EAAAmxD,cAAA3hC,EAAA,aAAArR,EAAA63W,EAAAn1W,IAGA,GAAA7gB,EAAAk/D,cAAA,CACA,IAAA9K,EAAAp0D,EAAAq0D,aAAA7kC,GACAymW,EAAA7hU,EAAAG,WAAA,aACA2hU,EAAA9hU,EAAAG,WAAA,iBACA4hU,EAAA/hU,EAAAG,WAAA,uBAEA,MAAA0hU,GACAj2X,EAAAmxD,cAAA3hC,EAAA,SAAAymW,GAGA,MAAAC,GAEAl2X,EAAAmxD,cAAA3hC,EAAA,aAAA0mW,GAGA,MAAAC,GACAn2X,EAAAmxD,cAAA3hC,EAAA,mBAAA2mW,KAMA,gCCxEA,IAAAh/K,EAAqB1oN,EAAQ,QAE7BsnC,EAAmBtnC,EAAQ,QAgE3B,SAAA2nY,EAAA5wL,GACA,IAAAy2F,GAAA,SACA5yH,GAAA,kBACA,OACA9vI,MAAA,SAAAk9B,EAAA+0I,EAAA77L,GACA,GAAA8mD,EAAA,CACA,IAAA64C,EAAA3/F,EAAA2/F,MAEA,OAAA+mR,EADA5/T,EAAA+uI,GACAl2F,KAGAl4E,KAAA,SAAAq/B,EAAA+0I,EAAA77L,GACA,GAAA8mD,EAAA,CACA,IAAA64C,EAAA3/F,EAAA2/F,MACAgnR,GAAA7/T,EAAAwlO,EAAAz2F,IAAA/uI,EAAAwlO,EAAAz2F,IAAA/uI,EAAA4yG,EAAAm8B,KAEA,OADA8wL,EAAA,GAAAA,EAAA,IAAAA,EAAA7/W,UACA4/W,EAAAC,EAAA,GAAAhnR,IAAA+mR,EAAAC,EAAA,GAAAhnR,IAAA+mR,EAAA/mR,EAAA,GAAAgnR,IAAAD,EAAA/mR,EAAA,GAAAgnR,MAMA,SAAAD,EAAAj2V,EAAAkvE,GACA,OAAAA,EAAA,IAAAlvE,MAAAkvE,EAAA,GAGA,SAAAinR,EAAAC,EAAAC,EAAAC,EAAAC,EAAArqW,GACA,QAAAr8B,EAAA,EAAA85B,EAAAuC,IAAAn8B,OAAA,GAAiDF,EAAAq8B,EAAAn8B,OAAmBF,IAAA,CACpE,IAAAmwC,EAAA9T,EAAAr8B,GAEA,GAAA2mY,EAAAJ,EAAAC,EAAAC,EAAAC,EAAAv2V,EAAA,GAAAA,EAAA,GAAArW,EAAA,GAAAA,EAAA,IACA,SAGAA,EAAAqW,GAMA,SAAAw2V,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACA,IAsBA36X,EAtBA2qB,EAAAiwW,EAAAN,EAAAF,EAAAI,EAAAE,EAAAH,EAAAF,EAAAI,EAAAE,GAEA,IAoBA36X,EApBA2qB,IAqBA,MAAA3qB,IAAA,KAnBA,SAGA,IAAA66X,EAAAD,EAAAJ,EAAAJ,EAAAI,EAAAE,EAAAD,EAAAJ,EAAAI,EAAAE,GAAAhwW,EAEA,GAAAkwW,EAAA,GAAAA,EAAA,EACA,SAGA,IAAAC,EAAAF,EAAAN,EAAAF,EAAAI,EAAAJ,EAAAG,EAAAF,EAAAI,EAAAJ,GAAA1vW,EAEA,QAAAmwW,EAAA,GAAAA,EAAA,GAWA,SAAAF,EAAAr7G,EAAA1nE,EAAA2nE,EAAAu7G,GACA,OAAAx7G,EAAAw7G,EAAAljL,EAAA2nE,EAGA,IAAA9pR,GAzGAisN,MAAAg4K,EAAA,GACA/3K,MAAA+3K,EAAA,GACAh/V,MACAmC,MAAA,SAAAk9B,EAAA+0I,EAAA77L,GACA,OAAA8mD,GAAA9mD,EAAA+yC,aAAA9oB,QAAA68B,EAAA,GAAAA,EAAA,KAEAr/B,KAAA,SAAAq/B,EAAA+0I,EAAA77L,GACA,OAAA8mD,GAAA9mD,EAAA+yC,aAAAykH,UAAA1wG,KAGAznC,SACAuK,MAAA,SAAAk9B,EAAA+0I,EAAA77L,GACA,OAAA8mD,GAAA9mD,EAAA+yC,aAAA9oB,QAAA68B,EAAA,GAAAA,EAAA,KAAA0gJ,EAAAv9K,QAAAjqB,EAAA2/F,MAAA74C,EAAA,GAAAA,EAAA,KAEAr/B,KAAA,SAAAq/B,EAAA+0I,EAAA77L,GACA,IAAA2c,EAAA3c,EAAA2/F,MAEA,IAAA74C,GAAAnqC,EAAAn8B,QAAA,EACA,SAGA,IAAAoD,EAAAkjE,EAAAljE,EACAE,EAAAgjE,EAAAhjE,EACAyU,EAAAuuD,EAAAvuD,MACAC,EAAAsuD,EAAAtuD,OACAi4B,EAAA9T,EAAA,GAEA,SAAA6qL,EAAAv9K,QAAAtN,EAAA/4B,EAAAE,IAAA0jN,EAAAv9K,QAAAtN,EAAA/4B,EAAA2U,EAAAzU,IAAA0jN,EAAAv9K,QAAAtN,EAAA/4B,EAAAE,EAAA0U,IAAAgvM,EAAAv9K,QAAAtN,EAAA/4B,EAAA2U,EAAAzU,EAAA0U,IAAA4tB,EAAA6C,OAAA69B,GAAA78B,QAAAwG,EAAA,GAAAA,EAAA,KAAAm2V,EAAAhjY,EAAAE,EAAAF,EAAA2U,EAAAzU,EAAA64B,IAAAiqW,EAAAhjY,EAAAE,EAAAF,EAAAE,EAAA0U,EAAAmkB,IAAAiqW,EAAAhjY,EAAA2U,EAAAzU,EAAAF,EAAA2U,EAAAzU,EAAA0U,EAAAmkB,IAAAiqW,EAAAhjY,EAAAE,EAAA0U,EAAA5U,EAAA2U,EAAAzU,EAAA0U,EAAAmkB,UAAA,KA+EAl6B,EAAAC,QAAAF,sBCvIA,IAAAooC,EAAA,SAAAnJ,GACAliC,KAAAkiC,kBAGAmJ,EAAAnrC,WACAC,YAAAkrC,EACAmrR,aAAA,SAAA9zR,EAAAv8B,GACAnG,KAAAkiC,WAAA3gC,MACAmhC,SACAv8B,YAIA,IAAAlD,EAAAooC,EACAnoC,EAAAC,QAAAF,wBCjBA,IAAAuhN,EAAgBjlN,EAAQ,QACxBkhE,EAAclhE,EAAQ,QAGtB2D,EAAAC,QAAA,SAAAolY,GACA,gBAAAl3E,EAAA3/R,GACA,IAGAnc,EAAAC,EAHA2C,EAAAhH,OAAAsvD,EAAA4wP,IACAtwT,EAAAyjN,EAAA9yL,GACA1wB,EAAAmX,EAAAlX,OAEA,OAAAF,EAAA,GAAAA,GAAAC,EAAAunY,EAAA,QAAA76X,GACA6H,EAAA4C,EAAAqpF,WAAAzgG,IACA,OAAAwU,EAAA,OAAAxU,EAAA,IAAAC,IAAAwU,EAAA2C,EAAAqpF,WAAAzgG,EAAA,WAAAyU,EAAA,MACA+yX,EAAApwX,EAAA+mC,OAAAn+C,GAAAwU,EACAgzX,EAAApwX,EAAA7V,MAAAvB,IAAA,GAAAyU,EAAA,OAAAD,EAAA,yCCdArS,EAAAC,QAAiB5D,EAAQ,2CCEzB,IAAAy1E,EAAYz1E,EAAQ,QACpBipY,EAAajpY,EAAQ,QACrBkpY,EAAelpY,EAAQ,QACvBmpY,EAAmBnpY,EAAQ,QAC3BopY,EAAsBppY,EAAQ,QAC9B0kR,EAAkB1kR,EAAQ,QAC1B0gO,EAAA,oBAAAtwN,eAAAswN,MAAAtwN,OAAAswN,KAAAz1N,KAAAmF,SAAyFpQ,EAAQ,QAEjG2D,EAAAC,QAAA,SAAA68C,GACA,WAAAvxC,QAAA,SAAAC,EAAAC,GACA,IAAAi6X,EAAA5oV,EAAAlvC,KACA+3X,EAAA7oV,EAAAi1B,QAEAD,EAAA43H,WAAAg8L,WACAC,EAAA,gBAGA,IAAA1kH,EAAA,IAAAt1Q,eACAi6X,EAAA,qBACAC,GAAA,EAiBA,GAXA,oBAAAp5X,SACAA,OAAAq5X,gBAAA,oBAAA7kH,GACAwkH,EAAA3oV,EAAA7xC,OACAg2Q,EAAA,IAAAx0Q,OAAAq5X,eACAF,EAAA,SACAC,GAAA,EACA5kH,EAAAr9I,WAAA,aACAq9I,EAAA8kH,UAAA,cAIAjpV,EAAAkpV,KAAA,CACA,IAAAC,EAAAnpV,EAAAkpV,KAAAC,UAAA,GACAC,EAAAppV,EAAAkpV,KAAAE,UAAA,GACAP,EAAAQ,cAAA,SAAAppK,EAAAkpK,EAAA,IAAAC,GA+DA,GA5DAjlH,EAAAr1Q,KAAAkxC,EAAAtR,OAAAsD,cAAAy2V,EAAAzoV,EAAA7xC,IAAA6xC,EAAAruB,OAAAquB,EAAAspV,mBAAA,GAGAnlH,EAAAvpK,QAAA56D,EAAA46D,QAGAupK,EAAA2kH,GAAA,WACA,GAAA3kH,IAAA,IAAAA,EAAAj6J,YAAA6+Q,KAQA,IAAA5kH,EAAAluQ,QAAAkuQ,EAAAn9I,aAAA,IAAAm9I,EAAAn9I,YAAAlnI,QAAA,WAKA,IAAAypY,EAAA,0BAAAplH,EAAAukH,EAAAvkH,EAAAqlH,yBAAA,KAEA9vR,GACA5oG,KAFAkvC,EAAAu7D,cAAA,SAAAv7D,EAAAu7D,aAAA4oK,EAAAzqK,SAAAyqK,EAAAl1Q,aAIAgH,OAAA,OAAAkuQ,EAAAluQ,OAAA,IAAAkuQ,EAAAluQ,OACAgxH,WAAA,OAAAk9I,EAAAluQ,OAAA,aAAAkuQ,EAAAl9I,WACAhyD,QAAAs0T,EACAvpV,SACAmkO,WAGAqkH,EAAA95X,EAAAC,EAAA+qG,GAGAyqK,EAAA,OAIAA,EAAAj1Q,QAAA,WAGAP,EAAAs1Q,EAAA,gBAAAjkO,EAAA,KAAAmkO,IAGAA,EAAA,MAIAA,EAAA8kH,UAAA,WACAt6X,EAAAs1Q,EAAA,cAAAjkO,EAAA46D,QAAA,cAAA56D,EAAA,eACAmkO,IAGAA,EAAA,MAMAnvM,EAAAsyF,uBAAA,CACA,IAAAmiO,EAAoBlqY,EAAQ,QAG5BmqY,GAAA1pV,EAAA2pV,iBAAAhB,EAAA3oV,EAAA7xC,OAAA6xC,EAAAg0U,eACAyV,EAAAG,KAAA5pV,EAAAg0U,qBACAtmX,EAEAg8X,IACAb,EAAA7oV,EAAAi0U,gBAAAyV,GAuBA,GAlBA,qBAAAvlH,GACAnvM,EAAAlrE,QAAA++X,EAAA,SAAAt7X,EAAAxD,QACA,IAAA6+X,GAAA,iBAAA7+X,EAAAuO,qBAEAuwX,EAAA9+X,GAGAo6Q,EAAAx9I,iBAAA58H,EAAAwD,KAMAyyC,EAAA2pV,kBACAxlH,EAAAwlH,iBAAA,GAIA3pV,EAAAu7D,aACA,IACA4oK,EAAA5oK,aAAAv7D,EAAAu7D,aACO,MAAAp3G,GAGP,YAAA67C,EAAAu7D,aACA,MAAAp3G,EAMA,mBAAA67C,EAAA6pV,oBACA1lH,EAAAvlQ,iBAAA,WAAAohC,EAAA6pV,oBAIA,mBAAA7pV,EAAA8pV,kBAAA3lH,EAAAu8F,QACAv8F,EAAAu8F,OAAA9hW,iBAAA,WAAAohC,EAAA8pV,kBAGA9pV,EAAAq6P,aAEAr6P,EAAAq6P,YAAAz6O,QAAAzwD,KAAA,SAAA8wD,GACAkkN,IAIAA,EAAAzpK,QACA/rG,EAAAsxD,GAEAkkN,EAAA,aAIAz2Q,IAAAk7X,IACAA,EAAA,MAIAzkH,EAAAp1Q,KAAA65X,4BCjLA,IAAA/wF,EAAet4S,EAAQ,QACvB0pS,EAAqB1pS,EAAQ,QAC7BypS,EAAkBzpS,EAAQ,QAC1ByhL,EAAAp3K,OAAAwB,eAEAjI,EAAA6/C,EAAYzjD,EAAQ,QAAgBqK,OAAAwB,eAAA,SAAAm1D,EAAA83J,EAAA0xK,GAIpC,GAHAlyF,EAAAt3O,GACA83J,EAAA2wE,EAAA3wE,GAAA,GACAw/E,EAAAkyF,GACA9gG,EAAA,IACA,OAAAjoH,EAAAzgH,EAAA83J,EAAA0xK,GACG,MAAA5lY,IACH,WAAA4lY,GAAA,QAAAA,EAAA,MAAA/lV,UAAA,4BAEA,MADA,UAAA+lV,IAAAxpU,EAAA83J,GAAA0xK,EAAAxiY,OACAg5D,2BCdA,IAAA1mC,EAAat6B,EAAQ,QAErBsrC,EAAkBtrC,EAAQ,QAI1Bk1L,EAFal1L,EAAQ,QAErBk1L,UAIAviB,EAFkB3yK,EAAQ,QAE1B2yK,mBAoBAyiB,EAAAF,IA2CA,SAAAu1M,EAAAv0W,EAAAswC,GACA,IASAkkU,EATAC,EAAAC,EAAA10W,EAAA,UACA20W,EAAAC,EAAAtkU,GACAh1D,EAAAu5X,EAAAJ,EAAAE,GAEA,OAAAr5X,GAeAw5X,EAAAL,EAAAE,GACAriG,OATAluQ,EAAAl6B,WAAAyqY,GACAI,EAAA/0W,EAAA20W,GAGAK,EAAAh1W,EADAw0W,EAAA,SAAAG,EAyFA,SAAA30W,GACA,IAAA1kB,EAAA4jL,EAAAl/J,GAAAi1W,aACA,aAAA35X,IAAA4jL,EAAAl/J,GAAAi1W,aAAAj1W,EAAAwxV,4BA3FA0jB,CAAAl1W,GAAA20W,GAOAQ,sBAAAX,IA6DA,SAAAE,EAAA10W,EAAA30B,GAEA,OAAA6zL,EAAAl/J,GAAA30B,KAAA6zL,EAAAl/J,GAAA30B,OAGA,SAAAwpY,EAAA3qJ,EAAA51O,GACA,QAAAhJ,EAAA,EAAiBA,EAAA4+O,EAAA1+O,OAAkBF,IACnC,GAAA4+O,EAAA5+O,GAAAgJ,QACA,OAAA41O,EAAA5+O,GAAAwG,MAKA,SAAAgjY,EAAA5qJ,EAAA51O,EAAAxC,GAKA,OAJAo4O,EAAAp+O,MACAwI,MACAxC,UAEAA,EA6FA,SAAAkjY,EAAAh1W,EAAAo1W,EAAAC,GACA,IAAA34N,EAAAD,EAAAz8I,GACAs1W,EAAAt1W,EAAAlkB,MACAy5X,EAAAD,EAAAjvW,YACAiqC,EAAAtwC,EAAA81B,gBACAx6C,KAEAuW,EAAAvf,KAAAE,KAAA4iY,GAAA,QACAI,EAAAD,EAAA,GACAt4N,EAAAq4N,EAAAxoY,QAKA,IAAA0oY,GAAA3jX,EAAA,GAAAorJ,EAAAprJ,EAAA,IACA2jX,EAAAljY,KAAAqC,MAAArC,KAAAowC,KAAA8yV,EAAA3jX,OAQA,IAAA4jX,EACAnlU,EAAA/hE,IAAA,gBADAknY,EAEAnlU,EAAA/hE,IAAA,gBAGAknY,GAAAD,IAAAD,EAAA,IACAG,EAAAH,EAAA,IAMA,IAFA,IAAApsW,EAAAqsW,EAEQrsW,GAAAosW,EAAA,GAA+BpsW,GAAAtX,EACvC6jX,EAAAvsW,GAOA,SAAAusW,EAAAC,GACAr6X,EAAAxP,KAAAupY,EAAAM,GACAziG,eAAAx2H,EAAAi5N,GACArhE,SAAAghE,EAAA7xV,SAAAkyV,GACAxsW,UAAAwsW,IAIA,OAZAF,GAAAtsW,IAAAosW,EAAA,IACAG,EAAAH,EAAA,IAWAj6X,EAKA,SAAAy5X,EAAA/0W,EAAAo1W,EAAAC,GACA,IAAAC,EAAAt1W,EAAAlkB,MACA4gK,EAAAD,EAAAz8I,GACA1kB,KAYA,OAXA8oB,EAAA4E,KAAAssW,EAAAryV,WAAA,SAAA9Z,GACA,IAAAmrS,EAAAghE,EAAA7xV,SAAAta,GAEAisW,EAAAjsW,EAAAmrS,IACAh5T,EAAAxP,KAAAupY,EAAAlsW,GACA+pQ,eAAAx2H,EAAAvzI,GACAmrS,WACAnrS,gBAIA7tB,EAIA,SAAAs5X,EAAA9yW,GACA,IAAAmiB,EAAAniB,EAAAvzB,IAAA,YACA,aAAA01C,EAAA,OAAAA,EAGAv2C,EAAA6jX,iBAhTA,SAAAvxV,GAEA,mBAAAA,EAAAjyB,KAmBA,SAAAiyB,GACA,IAAAswC,EAAAtwC,EAAA81B,gBACAx6C,EAAAi5X,EAAAv0W,EAAAswC,GACA,OAAAA,EAAA/hE,IAAA,SAAAyxB,EAAAlkB,MAAAihK,WACAu1H,UACA6iG,sBAAA75X,EAAA65X,uBACG75X,EAzBHs6X,CAAA51W,GA8FA,SAAAA,GACA,IAAA+2K,EAAA/2K,EAAAlkB,MAAAmnC,WACAy5H,EAAAD,EAAAz8I,GACA,OACAsyQ,OAAAluQ,EAAAlpB,IAAA67L,EAAA,SAAA5tK,EAAA0B,GACA,OACAqoQ,eAAAx2H,EAAAvzI,EAAA0B,GACAypS,SAAAt0S,EAAAlkB,MAAA2nC,SAAAta,GACAA,gBAtGA0sW,CAAA71W,IA+SAtyB,EAAA4jX,gBAnSA,SAAAtxV,EAAA07K,GAEA,mBAAA17K,EAAAjyB,KAwCA,SAAAiyB,EAAA07K,GACA,IAQA3E,EACA86K,EATAikB,EAAApB,EAAA10W,EAAA,SACA+1W,EAAAnB,EAAAl5L,GACApgM,EAAAu5X,EAAAiB,EAAAC,GAEA,GAAAz6X,EACA,OAAAA,EAWA,GAJAogM,EAAAntM,IAAA,UAAAyxB,EAAAlkB,MAAAihK,YACAg6B,MAGA3yK,EAAAl6B,WAAA6rY,GACAh/L,EAAAg+L,EAAA/0W,EAAA+1W,GAAA,QAIA,YAAAA,EAAA,CACA,IAAAC,EAAAzB,EAAAv0W,IAAA81B,iBACA+7T,EAAAmkB,EAAAb,sBACAp+L,EAAA3yK,EAAAlpB,IAAA86X,EAAA1jG,OAAA,SAAAppQ,GACA,OAAAA,EAAAC,iBAIA4tK,EAAAi+L,EAAAh1W,EADA6xV,EAAAkkB,GACA,GAIA,OAAAjB,EAAAgB,EAAAC,GACAh/L,QACA86K,yBA5EAokB,CAAAj2W,EAAA07K,IACA3E,MAAA/2K,EAAAlkB,MAAAmnC,aAiSAv1C,EAAA8jX,0BAjKA,SAAAxxV,GACA,IAAA9D,EAqEA,SAAA8D,GACA,IAAAswC,EAAAtwC,EAAA81B,gBACA,OACAogV,WAAAl2W,EAAAiyV,UAAAjyV,EAAAiyV,YAAAjyV,EAAAoH,eAAApH,EAAAoH,eAAA,KACAgtS,YAAA9jQ,EAAA/hE,IAAA,aACA0wC,KAAAqxB,EAAAyvF,WA1EAo2O,CAAAn2W,GACA08I,EAAAD,EAAAz8I,GACAoC,GAAAlG,EAAAg6W,WAAAh6W,EAAAk4S,aAAA,IAAA9hU,KAAAgwB,GACAgzW,EAAAt1W,EAAAlkB,MACAy5X,EAAAD,EAAAjvW,YAIA42I,EAAAq4N,EAAAxoY,QAEA,GAAAyoY,EAAA,GAAAA,EAAA,KACA,SAGA,IAAA1jX,EAAA,EAEAorJ,EAAA,KACAprJ,EAAAvf,KAAAE,IAAA,EAAAF,KAAAkwC,MAAAy6H,EAAA,MAWA,IARA,IAAA9zI,EAAAosW,EAAA,GACAa,EAAAp2W,EAAAqB,YAAA8H,EAAA,GAAAnJ,EAAAqB,YAAA8H,GACAktW,EAAA/jY,KAAAY,IAAAkjY,EAAA9jY,KAAA0jC,IAAA5T,IACAk0W,EAAAhkY,KAAAY,IAAAkjY,EAAA9jY,KAAA2jC,IAAA7T,IACAm0W,EAAA,EACAC,EAAA,EAGQrtW,GAAAosW,EAAA,GAA+BpsW,GAAAtX,EAAA,CACvC,IAAAtO,EACAC,EAIAivB,EAAA2C,EAAA/C,gBAAAqqI,EAAAvzI,GAAAjN,EAAA+iB,KAAA,gBAEA17B,EAAA,IAAAkvB,EAAAlvB,MACAC,EAAA,IAAAivB,EAAAjvB,OAEA+yX,EAAAjkY,KAAAE,IAAA+jY,EAAAhzX,EAAA,GACAizX,EAAAlkY,KAAAE,IAAAgkY,EAAAhzX,EAAA,GAGA,IAAAu5B,EAAAw5V,EAAAF,EACAr5V,EAAAw5V,EAAAF,EAEAthY,MAAA+nC,OAAAiH,KACAhvC,MAAAgoC,OAAAgH,KACA,IAAAC,EAAA3xC,KAAAE,IAAA,EAAAF,KAAAkwC,MAAAlwC,KAAAC,IAAAwqC,EAAAC,KACAktM,EAAAhrD,EAAAl/J,EAAA8B,OACA20W,EAAAvsJ,EAAAusJ,iBACAC,EAAAxsJ,EAAAwsJ,cAeA,OAXA,MAAAD,GAAA,MAAAC,GAAApkY,KAAAY,IAAAujY,EAAAxyV,IAAA,GAAA3xC,KAAAY,IAAAwjY,EAAAz5N,IAAA,GAEAw5N,EAAAxyV,EACAA,EAAAwyV,GAIAvsJ,EAAAwsJ,cAAAz5N,EACAitE,EAAAusJ,iBAAAxyV,GAGAA,yBC/PA,IAEAg1H,EAFoBnvK,EAAQ,QAE5BmvK,iBA4CAvrK,EAAAk5L,gBAlBA,SAAAvrL,EAAAstB,GACA,IAAAguW,EAAAt7X,EAAA0tB,aAAA,qBACA38B,EAAAuqY,EAAAnrY,OAEA,OAAAY,EACA,OAAA6sK,EAAA59J,EAAAstB,EAAAguW,EAAA,IACG,GAAAvqY,EAAA,CAGH,IAFA,IAAA2sI,KAEAztI,EAAA,EAAmBA,EAAAqrY,EAAAnrY,OAAsBF,IAAA,CACzC,IAAAwM,EAAAmhK,EAAA59J,EAAAstB,EAAAguW,EAAArrY,IACAytI,EAAAjtI,KAAAgM,GAGA,OAAAihI,EAAApoI,KAAA,6BC1CA,IAAAhD,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBsnC,EAAmBtnC,EAAQ,QAE3BgiR,EAAqBhiR,EAAQ,QAE7B8sY,EAAe9sY,EAAQ,QAEvBk/K,EAAmBl/K,EAAQ,QAE3BguN,EAAyBhuN,EAAQ,QAoBjC+sY,GAAA,wBACAC,EAAA,kBACAC,EAAA,yBACAC,EAAArpY,EAAA4pD,SAAAI,OAAAK,MA+KA,SAAAi/U,EAAA9oY,EAAA+oY,GACA,IAAA/oY,EAAA+2D,aAAA,CACA,IAAAj6D,EAAAkD,EAAAe,QACAjE,EAAA8rY,IAAA,EACA5oY,EAAAQ,gBACAZ,KAAA,cACAyzD,MAAA01U,IAEAjsY,EAAA8rY,IAAA,GAIA,SAAAI,EAAAC,EAAAC,EAAAh8X,EAAAstB,GACA,QAAAr9B,EAAA,EAAAc,EAAAirY,EAAA7rY,OAA6CF,EAAAc,EAASd,IAAA,CACtD,IAAA0f,EAAAqsX,EAAA/rY,GAEA,GAAA8rY,EAAApsX,EAAAmyI,WAAAx0H,EAAAttB,EAAA2P,EAAA67L,UAAA77L,GACA,UAKA,SAAAssX,EAAAvxW,GACA,IAAAjC,EAAAiC,EAAAjC,cAEA,GAAAM,EAAAn6B,SAAA65B,GAAA,CACA,IAAAyzW,KAOA,OANAnzW,EAAA4E,KAAA4tW,EAAA,SAAAY,EAAAr6O,GACAo6O,EAAAp6O,GAAA,SAAAx0H,EAAAttB,EAAAwrM,EAAA77L,GACA,IAAA8mD,EAAAz2D,EAAA0uB,cAAApB,GACA,OAAA6uW,EAAA1zW,GAAAguC,EAAA+0I,EAAA77L,MAGAusX,EACG,GAAAnzW,EAAAl6B,WAAA45B,GAAA,CACH,IAAA2zW,KAIA,OAHArzW,EAAA4E,KAAA4tW,EAAA,SAAAc,EAAAv6O,GACAs6O,EAAAt6O,GAAAr5H,IAEA2zW,EAGA,OAAA3zW,EApNAn2B,EAAAm6D,eAAAkvU,EAAA,SAAA9oY,EAAAC,EAAAggC,GACAjgC,EAAAkvD,eACAvD,SAAA,SACG,SAAA4mI,GACHtyJ,GAAA,qBAAAA,EAAApgC,MAAA0yL,EAAA+oK,eAAA,UAAAr7T,EAAA75B,IAAA65B,EAAAgzJ,aACAhkC,WAAA,KAEAsjC,EAAAK,mBAAA,IAAAg3B,EAAAr3B,EAAAj5K,OAAAtZ,IACAypY,eAAAl3M,EAAAE,MAAAzyL,OAOAP,EAAAw4D,eAAA6wU,EAAA,SAAA9oY,EAAAC,EAAAggC,GACA,IACAwhI,EACA05L,EAFA6tC,KAGAhpY,EAAAkvD,eACAvD,SAAA,SACG,SAAA4mI,EAAAm3M,GACH,IAAAC,GACA72M,QAAAP,EAAAx0L,GACA2rY,aACAE,UAAAr3M,EAAAtzL,KACAwzL,MAAAv8J,EAAAmQ,MAAAksJ,EAAAE,OACA1rK,aAIAiiX,EAAAprY,KAAA+rY,GACA,IAAA12M,EAAAV,EAAAj5K,OACA4hV,EAAAjoK,EAAAioK,UACA2uC,KACAC,KACAC,KACAC,EAAA,EAEAN,IAEAjoO,EAAAwxB,EAAAxxB,aACA05L,EAAAloK,EAAAkoK,eAIA,IAAA1oK,EAAAv8J,EAAAlpB,IAAAulL,EAAAE,MAAA,SAAA31K,GACA,OA6KA,SAAAA,GACA,IAAA67L,EAAA77L,EAAA67L,aAOA,OANAziL,EAAA4E,KAAA4tW,EAAA5rX,EAAAmyI,WAAA,SAAAg7O,EAAAC,GAEAvxL,EAAAuxL,GAAA,SAAAtmU,GACA,OAAAqmU,EAAArmU,EAAA+0I,EAAA77L,MAGAA,EArLAqtX,CAAAj0W,EAAAmJ,UACAwwB,aAAAu6U,EAAAttX,EAAAmyI,WAAAnyI,IACOA,MAEPugD,EAAAugN,EAAA1gN,qBAAAq1H,EAAAj5K,OAAAqvX,EAAA,SAAAhrU,GACAA,EAAAu7H,cAAA,UAMA,SAAAmxM,EAAA77W,GACA,cAAA0sU,GAAA2uC,EAAAr7W,GAKA,SAAA87W,EAAAnB,GACA,QAAAA,EAAA7rY,OAXA44B,EAAA/tB,QAAA+yV,IAAAhlU,EAAA4E,KAAAogU,EAAA,SAAA1sU,GACAq7W,EAAAr7W,GAAA,IA2BAxuB,EAAAqxD,WAAA,SAAAx5B,EAAArJ,GACA,IAAA26W,EAAAY,EAAAv7W,MACA,aAAAqJ,EAAAs6B,QAGA,SAAAt6B,EAAArJ,GACA,IAAAkJ,EAAAG,EAAAnN,iBACAs/W,GAAAtyW,EAAA4yQ,iBACA+/F,EAAA77W,IAAAkJ,EAAAguI,gBAAA7tI,EAAAtP,UAAA,SAAAk9I,EAAAhrI,GACA,WAAAgrI,IAAAqkO,EAAArvW,GAAA,KAPA8vW,CAAA1yW,EAAArJ,GAWA,SAAAqJ,EAAArJ,EAAA26W,GACA,IAAAD,EAAAE,EAAAvxW,GAEA,IAAAqxW,GAqHA,SAAA32M,EAAA/jK,GACA,IAAA8vP,EAAA/rF,EAAAj5K,OAAAkV,YACA,aAAA8vP,GAAA,QAAAA,IAAApoP,EAAA/tB,QAAAm2Q,GAAApoP,EAAA/5B,QAAAmiR,EAAA9vP,GAAA,EAAAA,IAAA8vP,GAvHAksH,CAAAj4M,EAAA/jK,GACA,OAQA,GALA0H,EAAA4E,KAAA23J,EAAA,SAAA31K,GACAosX,EAAApsX,EAAAmyI,YAAAsjC,EAAAK,mBAAA63M,cAAA3tX,EAAA+a,EAAA73B,IAAAmpY,EAAAvrY,KAAAkf,GACAktX,GAAAM,EAAAnB,KAGAkB,EAAA77W,IAAA87W,EAAAnB,GAAA,CACA,IAAAh8X,EAAA0qB,EAAAtP,UACApb,EAAA2tB,KAAA,SAAAL,GACAwuW,EAAAC,EAAAC,EAAAh8X,EAAAstB,KACAqvW,EAAArvW,GAAA,MA3BAiwW,CAAA7yW,EAAArJ,EAAA26W,KAkCAnpY,EAAAqxD,WAAA,SAAAx5B,EAAArJ,GACA,IAAAm8W,GACAjqU,SAAA7oC,EAAA95B,GACAywB,cACA/f,WAAAopB,EAAA54B,KACAw7B,cAIAkvW,EAAA5iX,SAAAnpB,KAAA+sY,GACA,IAAAzB,EAAAE,EAAAvxW,GACAsxW,EAAAY,EAAAv7W,GACArhB,EAAA0qB,EAAAtP,UACA21C,EAAAmsU,EAAA77W,GAAA,SAAAiM,GACA,OAAAqvW,EAAArvW,IAAAkwW,EAAAlwW,UAAA78B,KAAAuP,EAAAy4J,YAAAnrI,IAAA,yBACO,SAAAA,GACP,OAAAwuW,EAAAC,EAAAC,EAAAh8X,EAAAstB,IAAAkwW,EAAAlwW,UAAA78B,KAAAuP,EAAAy4J,YAAAnrI,IAAA,0BAGA4vW,EAAA77W,GAAAw7W,EAAAM,EAAAnB,KAAAvrH,EAAA3/M,YAAA0qU,EAAAtrU,EAAAlwD,EAAA+wD,OAMA,SAAAj+D,EAAAwhK,EAAA05L,EAAA6tC,EAAA/oW,GASA,IAAAA,EACA,OAGA,IAAAljC,EAAAkD,EAAAe,QAEA,GAAAjE,EAAA8rY,GACA,OAGA9rY,EAAA6rY,KACA7rY,EAAA6rY,GAAAG,GAGAjuN,EAAAxZ,eAAAvkK,EAAA6rY,EAAAztC,EAAA15L,EACAn5J,CAAArI,EAAA+oY,GA3BAvoY,CAAAR,EAAAwhK,EAAA05L,EAAA6tC,EAAA/oW,KA2FA,IAAAmqW,GACA7+K,MAAAr1L,EAAAwiC,KACA8yJ,MAAAt1L,EAAAwiC,KACAn0B,KAAA,SAAAznB,GACA,OAAA8tX,EAAA9tX,EAAA2/F,QAEAtgF,QAAA,SAAArf,GAIA,IAHA,IAAA2uM,EACAhvG,EAAA3/F,EAAA2/F,MAEAr/G,EAAA,EAAAc,EAAAu+G,EAAAn/G,OAAuCF,EAAAc,EAASd,IAAA,CAChDquN,OAAA31K,sBACA,IAAAylK,EAAA9+F,EAAAr/G,GACAm+M,EAAA,GAAAkQ,EAAA,QAAAA,EAAA,MAAAlQ,EAAA,IACAA,EAAA,GAAAkQ,EAAA,QAAAA,EAAA,MAAAlQ,EAAA,IACAA,EAAA,GAAAkQ,EAAA,QAAAA,EAAA,MAAAlQ,EAAA,IACAA,EAAA,GAAAkQ,EAAA,QAAAA,EAAA,MAAAlQ,EAAA,IAGA,OAAAkQ,GAAAm/K,EAAAn/K,KAIA,SAAAm/K,EAAAn/K,GACA,WAAAvoL,EAAAuoL,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,8BCvSA,IAAA97C,EAAW/zK,EAAQ,QAInBuxL,EAFavxL,EAAQ,QAErBuxL,WAEArrI,EAA4BlmD,EAAQ,QAEpCD,EAAeC,EAAQ,QAwCvBivY,EAAA,SAAA/lY,GACAA,QACAzI,KAAAyuY,MAAAhmY,EAAAgmY,UAEAzuY,KAAA+lK,QAAAt9J,EAAAs9J,SAAA,aAGA/lK,KAAA0uY,UACA1uY,KAAA2uY,UAAA,EACA3uY,KAAA4uY,MACA5uY,KAAAkmK,YACAlmK,KAAA6uY,YACA7uY,KAAAmmK,SAAA,EACA2qB,EAAAplL,KAAA1L,OAGAwuY,EAAAtuY,WACAC,YAAAquY,EAMA38G,QAAA,SAAAr5G,GACAx4K,KAAA0uY,OAAAntY,KAAAi3K,IAOA/2K,YAAA,SAAAP,GACAA,EAAAM,UAAAxB,KAGA,IAFA,IAAA8uY,EAAA5tY,EAAA+wR,WAEAlxR,EAAA,EAAmBA,EAAA+tY,EAAA7tY,OAAkBF,IACrCf,KAAA6xR,QAAAi9G,EAAA/tY,KAQAixR,WAAA,SAAAx5G,GACA,IAAAl4I,EAAAgzI,EAAAxzK,QAAAE,KAAA0uY,OAAAl2N,GAEAl4I,GAAA,GACAtgC,KAAA0uY,OAAAptY,OAAAg/B,EAAA,IAQA6rK,eAAA,SAAAjrM,GAGA,IAFA,IAAA4tY,EAAA5tY,EAAA+wR,WAEAlxR,EAAA,EAAmBA,EAAA+tY,EAAA7tY,OAAkBF,IACrCf,KAAAgyR,WAAA88G,EAAA/tY,IAGAG,EAAAM,UAAA,MAEA8qE,QAAA,WASA,IARA,IAAAtqE,GAAA,IAAAyN,MAAAoyJ,UAAA7hK,KAAAkmK,YAEAhuI,EAAAl2B,EAAAhC,KAAA4uY,MACAE,EAAA9uY,KAAA0uY,OACA7sY,EAAAitY,EAAA7tY,OACA8tY,KACAC,KAEAjuY,EAAA,EAAmBA,EAAAc,EAASd,IAAA,CAC5B,IAAAy3K,EAAAs2N,EAAA/tY,GACAoD,EAAAq0K,EAAAlxJ,KAAAtlB,EAAAk2B,GAGA/zB,IACA4qY,EAAAxtY,KAAA4C,GACA6qY,EAAAztY,KAAAi3K,IAKA,IAAAz3K,EAAA,EAAmBA,EAAAc,GACnBitY,EAAA/tY,GAAA2lK,cACAooO,EAAA/tY,GAAA+tY,EAAAjtY,EAAA,GACAitY,EAAAh4U,MACAj1D,KAEAd,IAIAc,EAAAktY,EAAA9tY,OAEA,IAAAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5BiuY,EAAAjuY,GAAAylK,KAAAuoO,EAAAhuY,IAGAf,KAAA4uY,MAAA5sY,EACAhC,KAAA+lK,QAAA7tI,GAIAl4B,KAAAiS,QAAA,QAAAimB,GAEAl4B,KAAAyuY,MAAAlyV,QACAv8C,KAAAyuY,MAAAlyV,UAGA0yV,WAAA,WACA,IAAA9iY,EAAAnM,KACAA,KAAA2uY,UAAA,EASAlpV,EAPA,SAAAn+B,IACAnb,EAAAwiY,WACAlpV,EAAAn+B,IACAnb,EAAAg6J,SAAAh6J,EAAAmgE,cAUA9pE,MAAA,WACAxC,KAAA4uY,OAAA,IAAAn/X,MAAAoyJ,UACA7hK,KAAAkmK,YAAA,EAEAlmK,KAAAivY,cAMAntY,KAAA,WACA9B,KAAA2uY,UAAA,GAMA/+Q,MAAA,WACA5vH,KAAAmmK,UACAnmK,KAAA6uY,aAAA,IAAAp/X,MAAAoyJ,UACA7hK,KAAAmmK,SAAA,IAOAS,OAAA,WACA5mK,KAAAmmK,UACAnmK,KAAAkmK,cAAA,IAAAz2J,MAAAoyJ,UAAA7hK,KAAA6uY,YACA7uY,KAAAmmK,SAAA,IAOA/gH,MAAA,WACAplD,KAAA0uY,WAMAz+U,WAAA,WACA,OAAAjwD,KAAA0uY,OAAAztY,QAcAb,QAAA,SAAAG,EAAAkI,GAEA,IAAAvH,EAAA,IAAA5B,EAAAiB,GADAkI,SACAnI,KAAAmI,EAAAyoE,OAAAzoE,EAAA42L,QAEA,OADAr/L,KAAAyB,YAAAP,GACAA,IAGAoyK,EAAA3rI,MAAA6mW,EAAA19M,GACA,IAAA7tL,EAAAurY,EACAtrY,EAAAC,QAAAF,wBCtPAC,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAA2C6xE,YAAA,yBCAjF,IAAAzQ,EAAoBphE,EAAQ,QAE5Bs6B,EAAat6B,EAAQ,QAiErB2D,EAAAC,QAxCA,SAAAQ,EAAAigC,GACAjgC,EAAAikM,iBAAA,kBAAApsK,GACA,IACA8pJ,EADA9pJ,EAAA8qJ,WACAhB,MAEA,GAAAA,EAAArkL,OAAA,CACA,IAAAiuY,EAAAz1V,IACA9M,GAAA,IACA9S,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACA,IAAAi2U,EAAAj2U,EAAA0wH,YAAAriL,MAEA4nY,EAAAD,IACAA,EAAAC,GAGAA,EAAAxiW,IACAA,EAAAwiW,KAGAt1W,EAAA4E,KAAA6mJ,EAAA,SAAApsH,GACA,IAMAk2U,EANA,IAAAzuU,GACAn9D,KAAA,QACAq5L,cAAA,SACA7kC,YAAAk3O,EAAAviW,GACA40B,OAAA/lC,EAAAx3B,IAAA,WAEA+5L,iBAAA7kI,EAAA0wH,YAAAriL,OACA2xD,EAAA8I,UAAA,QAAAotU,GAEA,IACAC,EADAn2U,EAAA75B,WACAr7B,IAAA,mBAEA,MAAAqrY,GACAn2U,EAAA8I,UAAA,QAAAqtU,6BC5DA,IAAAvkB,EAAA,oBAAA71J,aAAAppN,MAAAopN,aA8GA,SAAApzN,EAAAkL,GACA,OAAAhF,KAAAyjC,KAAA8jW,EAAAviY,IAGA,IAAA9L,EAAAY,EAQA,SAAAytY,EAAAviY,GACA,OAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAGA,IAAAwiY,EAAAD,EA8EA,SAAAj5V,EAAAy2O,EAAA1nE,GACA,OAAAr9M,KAAAyjC,MAAAshP,EAAA,GAAA1nE,EAAA,KAAA0nE,EAAA,GAAA1nE,EAAA,KAAA0nE,EAAA,GAAA1nE,EAAA,KAAA0nE,EAAA,GAAA1nE,EAAA,KAGA,IAAAvxB,EAAAx9I,EAQA,SAAAm5V,EAAA1iH,EAAA1nE,GACA,OAAA0nE,EAAA,GAAA1nE,EAAA,KAAA0nE,EAAA,GAAA1nE,EAAA,KAAA0nE,EAAA,GAAA1nE,EAAA,KAAA0nE,EAAA,GAAA1nE,EAAA,IAGA,IAAA6nE,EAAAuiH,EAoEArsY,EAAAumC,OAxRA,SAAArlC,EAAAE,GACA,IAAA4lC,EAAA,IAAA2gV,EAAA,GAYA,OAVA,MAAAzmX,IACAA,EAAA,GAGA,MAAAE,IACAA,EAAA,GAGA4lC,EAAA,GAAA9lC,EACA8lC,EAAA,GAAA5lC,EACA4lC,GA4QAhnC,EAAAsmC,KAlQA,SAAAU,EAAAp9B,GAGA,OAFAo9B,EAAA,GAAAp9B,EAAA,GACAo9B,EAAA,GAAAp9B,EAAA,GACAo9B,GAgQAhnC,EAAA6mC,MAvPA,SAAAj9B,GACA,IAAAo9B,EAAA,IAAA2gV,EAAA,GAGA,OAFA3gV,EAAA,GAAAp9B,EAAA,GACAo9B,EAAA,GAAAp9B,EAAA,GACAo9B,GAoPAhnC,EAAA6hD,IAzOA,SAAA7a,EAAA50B,EAAAC,GAGA,OAFA20B,EAAA,GAAA50B,EACA40B,EAAA,GAAA30B,EACA20B,GAuOAhnC,EAAA87B,IA7NA,SAAAkL,EAAA2iP,EAAA1nE,GAGA,OAFAj7K,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GACAj7K,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GACAj7K,GA2NAhnC,EAAAwyN,YAhNA,SAAAxrL,EAAA2iP,EAAA1nE,EAAA7vM,GAGA,OAFA40B,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GAAA7vM,EACA40B,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GAAA7vM,EACA40B,GA8MAhnC,EAAAwG,IApMA,SAAAwgC,EAAA2iP,EAAA1nE,GAGA,OAFAj7K,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GACAj7K,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GACAj7K,GAkMAhnC,EAAAtB,MACAsB,EAAAlC,SACAkC,EAAAmsY,YACAnsY,EAAAosY,eACApsY,EAAA6hN,IArKA,SAAA76K,EAAA2iP,EAAA1nE,GAGA,OAFAj7K,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GACAj7K,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GACAj7K,GAmKAhnC,EAAAk8Q,IAzJA,SAAAl1O,EAAA2iP,EAAA1nE,GAGA,OAFAj7K,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GACAj7K,EAAA,GAAA2iP,EAAA,GAAA1nE,EAAA,GACAj7K,GAuJAhnC,EAAAssY,IA7IA,SAAA3iH,EAAA1nE,GACA,OAAA0nE,EAAA,GAAA1nE,EAAA,GAAA0nE,EAAA,GAAA1nE,EAAA,IA6IAjiN,EAAAoO,MAnIA,SAAA44B,EAAAp9B,EAAAoL,GAGA,OAFAgyB,EAAA,GAAAp9B,EAAA,GAAAoL,EACAgyB,EAAA,GAAAp9B,EAAA,GAAAoL,EACAgyB,GAiIAhnC,EAAAwsE,UAxHA,SAAAxlC,EAAAp9B,GACA,IAAA0hB,EAAA5sB,EAAAkL,GAUA,OARA,IAAA0hB,GACA0b,EAAA,KACAA,EAAA,OAEAA,EAAA,GAAAp9B,EAAA,GAAA0hB,EACA0b,EAAA,GAAAp9B,EAAA,GAAA0hB,GAGA0b,GA8GAhnC,EAAAkzC,WACAlzC,EAAA0wL,OACA1wL,EAAAqsY,iBACArsY,EAAA8pR,aACA9pR,EAAAusY,OAjFA,SAAAvlW,EAAAp9B,GAGA,OAFAo9B,EAAA,IAAAp9B,EAAA,GACAo9B,EAAA,IAAAp9B,EAAA,GACAo9B,GA+EAhnC,EAAA8tV,KApEA,SAAA9mT,EAAA2iP,EAAA1nE,EAAA38H,GAGA,OAFAt+C,EAAA,GAAA2iP,EAAA,GAAArkM,GAAA28H,EAAA,GAAA0nE,EAAA,IACA3iP,EAAA,GAAA2iP,EAAA,GAAArkM,GAAA28H,EAAA,GAAA0nE,EAAA,IACA3iP,GAkEAhnC,EAAA6jC,eAxDA,SAAAmD,EAAAp9B,EAAA4f,GACA,IAAAtoB,EAAA0I,EAAA,GACAxI,EAAAwI,EAAA,GAGA,OAFAo9B,EAAA,GAAAxd,EAAA,GAAAtoB,EAAAsoB,EAAA,GAAApoB,EAAAooB,EAAA,GACAwd,EAAA,GAAAxd,EAAA,GAAAtoB,EAAAsoB,EAAA,GAAApoB,EAAAooB,EAAA,GACAwd,GAoDAhnC,EAAA6E,IA1CA,SAAAmiC,EAAA2iP,EAAA1nE,GAGA,OAFAj7K,EAAA,GAAApiC,KAAAC,IAAA8kR,EAAA,GAAA1nE,EAAA,IACAj7K,EAAA,GAAApiC,KAAAC,IAAA8kR,EAAA,GAAA1nE,EAAA,IACAj7K,GAwCAhnC,EAAA8E,IA9BA,SAAAkiC,EAAA2iP,EAAA1nE,GAGA,OAFAj7K,EAAA,GAAApiC,KAAAE,IAAA6kR,EAAA,GAAA1nE,EAAA,IACAj7K,EAAA,GAAApiC,KAAAE,IAAA6kR,EAAA,GAAA1nE,EAAA,IACAj7K,yBC7RA,IAAAgiB,EAAkB5sD,EAAQ,QAE1BkpL,EAAWlpL,EAAQ,QAInBqlL,EAFcrlL,EAAQ,QAEtBqlL,WAwBA3hL,EAAAkpD,EAAAziD,QACAlG,KAAA,cACA6zB,WAAA,KAGAw9J,WAAA,MAOAjsB,eAAA,SAAA3rJ,GAEA,IAAA49B,GACAj4C,KAAAqa,EAAAra,KACA2lL,SAAAtrK,EAAAnM,MAEA+5K,EAAA5tK,EAAA4tK,WACAohG,KACAA,EAAAphG,SACA,IAAAD,EAAAnC,EAAAgC,WAAA5vI,EAAA76C,KAAAisR,GACA0jH,EAAA,EACA/kN,EAAA3B,SAAA,oBAAA/vH,GACAA,EAAAovH,MAAAqnN,IACAA,EAAAz2U,EAAAovH,SAGA,IACAsnN,EADA3yX,EAAAulL,mBACAvlL,EAAA4yX,kBAAA,EAAA5yX,EAAA4yX,iBAAAF,EAMA,OALA/kN,EAAA/vI,KAAAouI,SAAA,oBAAA/vH,GACA,IAAAvsD,EAAAusD,EAAAmvH,SAAAv3K,KAAAuxD,eAAAnJ,EAAA96B,WAEA86B,EAAA6wH,SAAAp9K,GAAA,MAAAA,EAAAmjY,WAAAnjY,EAAAmjY,UAAA52U,EAAAovH,OAAAsnN,IAEAhlN,EAAA95K,MAOA2xL,UAAA,WACA,IAAA3lL,EAAA9c,KAAAgE,IAAA,UAQA,MANA,eAAA8Y,EACAA,EAAA,KACK,aAAAA,IACLA,EAAA,MAGAA,GAOA2pK,cAAA,SAAAroJ,GAOA,IANA,IAAAwsJ,EAAA5qL,KAAAksB,UAAA0+J,KACAoZ,EAAApZ,EAAA/vI,KAAA0tI,SAAA,GACArvH,EAAA0xH,EAAAR,mBAAAhsJ,GACA72B,EAAA2xD,EAAAuwH,WACA7mL,EAAAs2D,EAAAt2D,KAEAs2D,OAAA8qI,GACAphM,EAAAs2D,EAAA3sB,WAAA3pC,KAAA,IAAAA,EACAs2D,IAAA3sB,WAGA,OAAAq4I,EAAAhiL,GAAA6H,MAAAlD,IAAA,MAAAA,EAAA,SAAAA,KAEAmtB,eACAC,OAAA,EACAC,EAAA,EAEA/uB,KAAA,MACAmM,IAAA,MACAlM,MAAA,MACAgP,OAAA,MAEAwiB,OAAA,aAGAxa,OAAA,KACAkS,OAAA,cACAC,WAAA,EACAuzK,mBAAA,EACAqtM,iBAAA,EACAjvX,WACAza,MAAA,OACA6S,MAAA,IACAivK,UAAA,IAEAz1K,WACArM,MAAA,iBACA4sB,YAAA,UACAuC,YAAA,KAEA7iB,OACApN,MAAA,EACAc,MAAA,QAEA0kL,QACAp4K,OACApN,MAAA,IAGAukK,gBAAA,SACA2U,kBAAA,IACA7oJ,wBAAA,OAIAxyB,EAAAC,QAAAF,wBChJc1D,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErB02M,EAAkB12M,EAAQ,QAI1B88L,EAFmB98L,EAAQ,QAE3B88L,gBAEA3zB,EAA0BnpK,EAAQ,QAIlCmzX,EAFenzX,EAAQ,QAEvBmzX,gBAEAnnT,EAAiBhsE,EAAQ,QA8BzBwwY,GAAA,aACAC,GAAA,wBACAC,GAAA,SACAC,GAAA,oBAGAC,EAAA,QAaAv6F,GACA0yE,YAhDyB/oX,EAAQ,QAiDjC+a,IA/CiB/a,EAAQ,QAgDzBm1N,WA9CwBn1N,EAAQ,QA+ChCk8B,MA7CmBl8B,EAAQ,QA8C3BuwL,SA5CsBvwL,EAAQ,SAwN9B,SAAA6wY,EAAAtvY,EAAAuvY,EAAAp0K,EAAAq0K,EAAA5yN,GACA,MAAAu+C,EAAAn7N,IAAA48K,IACA2yN,EAAAvvY,GAAAm7N,EAAAn7N,GACAm7N,EAAAn7N,GAAAwvY,EAAAxvY,IAIA,SAAAyvY,EAAAC,EAAA1/X,EAAAnN,EAAAC,GACA,IAAA6sY,EAAAD,EAAAxsY,IAAA,cACAq3B,EAAAm1W,EAAAniX,iBACAqiX,KAEAr1W,IACAq1W,EAAAr1W,EAAAu6Q,eAAAv6Q,EAAAu6Q,mBAAAv6Q,EAAA73B,MAAA63B,IAGA,IAuBAs1W,EAEAC,EACAC,EACAC,EACAC,EA5BAC,EAAAn3W,EAAAmJ,UACA8uB,SAAAluD,EAAAkuD,SACAC,UAAAnuD,EAAAmuD,UACAptD,MAAAf,EAAAe,MACAqtD,oBAAApuD,EAAAouD,oBACAzqD,MAoDA,SAAA8wB,EAAA27B,GAEA,OADA,MAAAA,MAAA28U,GACA7/X,EAAA9M,IAAA8M,EAAA6xD,aAAAtqC,GAAA,GAAA27B,IArDAz7C,MAkEA,SAAAzE,EAAAkgD,GACA,MAAAA,MAAA28U,GACAM,EAAAj9U,GACA,IAAAxhD,EAAAo+X,EAAAvxW,SAAA0wW,GAAAzqU,eACA,MAAAyrU,IAAAv+X,EAAAkF,KAAAq5X,GACA,IAAAl+X,EAAA/B,EAAAojD,cAAAF,EAAA,WAQA,OAPA,MAAAnhD,IAAAL,EAAAK,WACAojM,EAAAkE,aAAA3nM,EAAAq+X,EAAA,MACAtqU,UAAAwqU,EACAr0M,YAAA,IAEAlqL,EAAA6+B,KAAAw/V,EAAAxrU,WAAA,QAAAxrC,EAAAogL,UAAAu2L,EAAA52L,kBAAA5lJ,EAAA,UAAAqoI,EAAAvrL,EAAAkjD,IAAA,KACAlgD,GAAA+lB,EAAAnwB,OAAA8I,EAAAsB,GACAtB,GA9EA0+X,cAuFA,SAAAp9X,EAAAkgD,GACA,MAAAA,MAAA28U,GACAM,EAAAj9U,GACA,IAAAxhD,EAAAo+X,EAAAvxW,SAAA2wW,GAAA1qU,eAMA,OALA2wI,EAAAkE,aAAA3nM,EAAAs+X,EAAA,MACAp0M,YAAA,IACK,GACLlqL,EAAA6+B,KAAAy/V,EAAAzrU,WAAA,QAAAxrC,EAAA0/K,UAAAi3L,EAAA52L,kBAAA5lJ,EAAA,YAAAw8U,EAAA52L,kBAAA5lJ,EAAA,UAAAqoI,EAAAvrL,EAAAkjD,IAAA,KACAlgD,GAAA+lB,EAAAnwB,OAAA8I,EAAAsB,GACAtB,GA/FA+uD,OAwGA,SAAAzN,EAAAE,GAEA,OADA,MAAAA,MAAA28U,GACA7/X,EAAAojD,cAAAF,EAAAF,IAzGAq9U,UAsHA,SAAAv4W,GACA,GAAAyC,EAAAyB,YAAA,CACA,IAAAQ,EAAAjC,EAAAyB,cACA,OAAA41V,EAAA74V,EAAAmJ,UACAvN,KAAA6H,GACO1E,GAAAh1B,KA1HPwtY,qBAmIA,WACA,OAAAztY,EAAAogV,2BAnIArvS,KAgJA,SAAA9b,GACA,OAAAq9K,EAAAzgD,QAAA58H,EAAAj1B,KAhJG+sY,EAAA9sY,SACHytY,GACAvjV,WACAuW,SAAAmsU,EAAA9uY,GACA0Q,WAAAo+X,EAAA5tY,KACAuvB,YAAAq+W,EAAAr+W,YACAkJ,SAAAq1W,EAAAr1W,SACAi2W,iBAAAxgY,EAAAvO,QACAk7O,OA4IA,SAAA3sO,GACA,IAAAg+S,KAUA,OATAj1R,EAAA4E,KAAA3tB,EAAAixB,WAAA,SAAAD,EAAAmnI,GACA,IAAAjnI,EAAAlxB,EAAAmxB,iBAAAH,GAEA,IAAAE,EAAA+yS,aAAA,CACA,IAAAnzS,EAAAI,EAAAJ,UACAktR,EAAAltR,GAAAktR,EAAAltR,QACAI,EAAAm3P,eAAAlwH,KAGA6lJ,EAvJAyiF,CAAAf,EAAAtkX,YAIAslX,GAAA,EAKA,gBAAAx9U,GAGA,OAFA28U,EAAA38U,EACAw9U,GAAA,EACAf,KAAA52W,EAAAmJ,UACAgxB,kBACA51B,UAAAttB,EAAAy4J,YAAAv1G,IACKq9U,GAAAL,QAGL,SAAAC,EAAAj9U,GACA,MAAAA,MAAA28U,GAEAa,IACAZ,EAAA9/X,EAAAq0D,aAAAnR,GACA68U,EAAAD,EAAAvxW,SAAA4wW,GACAa,EAAAF,EAAAvxW,SAAA6wW,GACAa,EAAAjgY,EAAAojD,cAAAF,EAAA,SACAw9U,GAAA,IAgIA,SAAAvsO,EAAAxkK,EAAA29B,EAAAhI,EAAAkgU,EAAAt3T,EAAAluB,GAGA,OAFArQ,EAAAgxY,EAAAhxY,EAAA29B,EAAAhI,EAAAkgU,EAAAt3T,EAAAluB,KACAA,EAAA+vB,iBAAAzC,EAAA39B,GACAA,EAGA,SAAAgxY,EAAAhxY,EAAA29B,EAAAhI,EAAAkgU,EAAAt3T,EAAAluB,GACA,IAAA4gY,EAAAt7W,EAAA5yB,KAQA,IANA/C,GAAAixY,IAAAjxY,EAAAkxY,qBAAA,SAAAD,GAAAt7W,EAAAq4M,WAAAhuO,EAAAmxY,kBAAA,UAAAF,GAAAt7W,EAAA7d,MAAAu5B,QAAArxC,EAAAoxY,mBAAA,SAAAH,GAAAt7W,EAAA7d,MAAA84B,OAAA5wC,EAAAqxY,eACA9yW,EAAAv6B,OAAAhE,GACAA,EAAA,MAIA,MAAAixY,EAAA,CAIA,IAoCA5jV,EApCA4vH,GAAAj9K,EAIA,IAHAA,MAvSA,SAAA21B,GACA,IACA31B,EADAy6N,EAAA9kM,EAAA5yB,KAGA,YAAA03N,EAAA,CACA,IAAAnzM,EAAAqO,EAAArO,OACAtnB,EAAAw1M,EAAAw9I,SAAA1rU,EAAA0mN,SAAA,MACApqO,EAAA0jB,EAAA1jB,GAAA,EACAE,EAAAwjB,EAAAxjB,GAAA,EACAyU,MAAA+O,EAAA/O,OAAA,EACAC,OAAA8O,EAAA9O,QAAA,GACK,WACL24X,iBAAAx7W,EAAAq4M,aACG,UAAAvT,GACHz6N,EAAA,IAAAw1M,EAAAliK,WACA89V,kBAAAz7W,EAAA7d,MAAAu5B,MACG,SAAAopL,GACHz6N,EAAA,IAAAw1M,EAAA/qK,UACA4mW,aAAA17W,EAAA7d,MAAA84B,KAGA5wC,EAAA,IAAA06N,EADAllB,EAAAilB,EAAAh8K,OAAA,GAAAlN,cAAAkpL,EAAA54N,MAAA,KAMA,OAFA7B,EAAAkxY,oBAAAz2K,EACAz6N,EAAAmC,KAAAwzB,EAAAxzB,KACAnC,EA6QAs6N,CAAA3kM,IA1QA,SAAA31B,EAAA29B,EAAAhI,EAAAkgU,EAAAxlV,EAAA4sK,GACA,IAAAq0N,KACA91K,EAAA7lM,EAAA7d,UAOA,GANA6d,EAAArO,QAAAgqX,EAAAhqX,MAAA8R,EAAAmQ,MAAA5T,EAAArO,QACAqO,EAAAhoB,WAAA2jY,EAAA3jY,SAAAgoB,EAAAhoB,SAAA9L,SACA8zB,EAAA7kB,QAAAwgY,EAAAxgY,MAAA6kB,EAAA7kB,MAAAjP,SACA8zB,EAAAgT,SAAA2oW,EAAA3oW,OAAAhT,EAAAgT,OAAA9mC,SACA8zB,EAAAyB,WAAAk6W,EAAAl6W,SAAAzB,EAAAyB,UAEA,UAAAp3B,EAAA+C,MAAA4yB,EAAA7d,MAAA,CACA,IAAA83X,EAAA0B,EAAAx5X,SACAshB,EAAA4E,MAAA,mCAAA39B,GACAsvY,EAAAtvY,EAAAuvY,EAAAp0K,EAAAx7N,EAAA8X,MAAAmlK,KAIA,SAAAj9K,EAAA+C,MAAA4yB,EAAA7d,QACA83X,EAAA0B,EAAAx5X,SACAshB,EAAA4E,MAAA,kBAAA39B,GACAsvY,EAAAtvY,EAAAuvY,EAAAp0K,EAAAx7N,EAAA8X,MAAAmlK,MAIAu+C,EAAAp5N,eAAA,aAAAo5N,EAAAvkN,OAAAukN,EAAA3kL,SAAA2kL,EAAAvkN,OACAukN,EAAAp5N,eAAA,eAAAo5N,EAAA/4L,SAAA+4L,EAAA1kL,WAAA0kL,EAAA/4L,SAGA,aAAAziC,EAAA+C,OACA/C,EAAAsiC,SAAAk5L,GAEAv+C,GAAA,CACAj9K,EAAA8X,MAAA1F,QAAA,EACA,IAAAm/X,EAAA/1K,EAAAppN,QACA,MAAAm/X,MAAA,GACA/7L,EAAAz5K,UAAA/7B,GACA8X,OACA1F,QAAAm/X,IAEO17C,EAAAl4T,GAIPs/I,EACAj9K,EAAAsC,KAAAgvY,GAEA97L,EAAArxK,YAAAnkC,EAAAsxY,EAAAz7C,EAAAl4T,GAIA39B,EAAAsC,MACAqhC,GAAAhO,EAAAgO,IAAA,EACAD,OAAA/N,EAAA+N,UAEA,IAAA/N,EAAA86W,eAAAj7L,EAAAtwI,cAAAllE,EAAA21B,EAAA86W,eAsNAe,CAAAxxY,EAAA29B,EAAAhI,EAAAkgU,EAAAxlV,EAAA4sK,GAEA,UAAAg0N,EAAA,CACA,IAAAQ,EAAAzxY,EAAA8nL,eACA4pN,EAAA/7W,EAAAmyJ,aAEA,GAAAnyJ,EAAAg8W,mBA6BA,IAAA7mU,GADAzd,GAzBAokV,cACAC,cACA/zW,YACAk4T,kBACAt3T,MAAAv+B,EACAqQ,SAqBAohY,YAAApkV,EAAAqkV,YAAAx1B,IAAA7uT,GAAA7uB,IAAAozW,GAAA91V,OAAA81V,GAAA5tY,OAAA6tY,GAAAnrU,cAnBK,CAIL,IAFA,IAAAv6D,EAAA,EAEYA,EAAAulY,EAAAlxY,OAA4B2L,IACxC6kY,EAAAhxY,EAAAwkE,QAAAr4D,GAAAwxB,EAAA+zW,EAAAvlY,GAAA0pV,EAAA71V,EAAAqQ,GAGA,KAAYlE,EAAAslY,EAAAjxY,OAA4B2L,IACxCslY,EAAAtlY,IAAAnM,EAAAgE,OAAAytY,EAAAtlY,KAMA,OADAoyB,EAAAC,IAAAx+B,GACAA,GAOA,SAAAk8W,EAAAhwW,EAAA2zB,GACA,IAAA19B,EAAA+J,KAAA/J,KACA,aAAAA,IAAAutY,EAAA7vW,EAGA,SAAA+xW,EAAAxtE,EAAAC,GACA,IAAAh3Q,EAAA9tD,KAAA8tD,QACAykV,EAAA,MAAA1tE,EAAA/2Q,EAAAqkV,YAAAttE,GAAA,KAEA4sE,EADA,MAAA3sE,EAAAh3Q,EAAAokV,YAAAptE,GAAA,KACAh3Q,EAAA1vB,UAAAm0W,EAAAzkV,EAAAwoS,gBAAAxoS,EAAA9uB,MAAA8uB,EAAAh9C,MAGA,SAAAwhY,EAAAxtE,GACA,IAAAh3Q,EAAA9tD,KAAA8tD,QACAxhB,EAAAwhB,EAAAokV,YAAAptE,GACAx4R,GAAAwhB,EAAA9uB,MAAAv6B,OAAA6nC,GA/aAlpC,EAAAq6D,mBACAj6D,KAAA,gBACAixB,cAAA,8CACAC,eACArG,iBAAA,cAEAsG,OAAA,EACAC,EAAA,EACAwpJ,iBAAA,GAWAxV,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAA+kK,EAAA1oK,KAAA6oK,YAAA7oK,SAMAoD,EAAAs6D,iBACAl6D,KAAA,SAMAyY,MAAA,KAKAxY,OAAA,SAAA+sY,EAAA7sY,EAAAC,GACA,IAAA88B,EAAA1gC,KAAAic,MACAnL,EAAA0/X,EAAAtkX,UACA8S,EAAAh/B,KAAAg/B,MACAyxW,EAAAF,EAAAC,EAAA1/X,EAAAnN,EAAAC,GACA5D,KAAAg/B,MAAAkG,YACAp0B,EAAAwzB,KAAA5D,GAAAzB,IAAA,SAAAgoC,GACAg+F,EAAA,KAAAh+F,EAAAwpU,EAAAxpU,GAAAupU,EAAAxxW,EAAAluB,KACKyrC,OAAA,SAAA0qB,EAAAC,GAEL+9F,EADAvkI,EAAAoD,iBAAAojC,GACAD,EAAAwpU,EAAAxpU,GAAAupU,EAAAxxW,EAAAluB,KACKrM,OAAA,SAAAyiE,GACL,IAAAzmE,EAAAigC,EAAAoD,iBAAAojC,GACAzmE,GAAAu+B,EAAAv6B,OAAAhE,KACK0mE,UACLnnE,KAAAic,MAAAnL,GAEA68D,yBAAA,SAAA6iU,EAAA7sY,EAAAC,GACA5D,KAAAg/B,MAAAkG,YACAllC,KAAAic,MAAA,MAEA6xD,kBAAA,SAAAn8C,EAAA6+W,EAAA7sY,EAAAC,GACA,IAAAkN,EAAA0/X,EAAAtkX,UACAukX,EAAAF,EAAAC,EAAA1/X,EAAAnN,EAAAC,GAEA,SAAA4uY,EAAA/xY,GACAA,EAAAm4D,UACAn4D,EAAA2vK,aAAA,EACA3vK,EAAA04D,eAAA,GAIA,QAAA74B,EAAA3O,EAAAnvB,MAAgC89B,EAAA3O,EAAAT,IAAkBoP,IAAA,CAClD2kI,EAAA,KAAA3kI,EAAAmwW,EAAAnwW,GAAAkwW,EAAAxwY,KAAAg/B,MAAAluB,GACA6nD,SAAA65U,KAOAztY,QAAA80B,EAAAwiC,6BC9JA,IAAAliC,EAAe56B,EAAQ,QAEvBs6B,EAAat6B,EAAQ,QAErBqtE,EAAiBrtE,EAAQ,QAEzBmzL,EAAWnzL,EAAQ,QA+BnB,SAAAutE,EAAA8lH,EAAAtyJ,EAAAwvI,GACAljG,EAAAlhE,KAAA1L,KAAA4yL,EAAAtyJ,EAAAwvI,GACA9vK,KAAAyyY,WAAA,EACAzyY,KAAA0yY,kBAAA,EAGA,IAAAC,EAAA7lU,EAAA5sE,UAEAyyY,EAAA9/M,WAAA,SAAAD,EAAAtyJ,EAAAwvI,GACA,WAAA31I,EAAAy4J,EAAAtyJ,EAAAwvI,IAIA6iO,EAAAn/M,sBAAA,SAAAxkK,EAAAoO,GACAp9B,KAAAqhC,QAAAjE,EAIA,IAHA,IAAAw1W,GAAA,GACA/wY,EAAA,EAEAd,EAAA,EAAiBA,EAAAq8B,EAAAn8B,OAAmBF,IAAA,CACpC,IAAA65B,EAAAwC,EAAAr8B,EAAA,GACA85B,EAAAuC,EAAAr8B,GACAc,GAAA6wL,EAAAmB,KAAAj5J,EAAAC,GACA+3W,EAAArxY,KAAAM,GAGA,OAAAA,EAAA,CAIA,IAAAd,EAAA,EAAiBA,EAAA6xY,EAAA3xY,OAAsBF,IACvC6xY,EAAA7xY,IAAAc,EAGA7B,KAAA6yY,SAAAD,EACA5yY,KAAAkgP,QAAAr+O,IAIA8wY,EAAAl/M,cAAA,SAAAzkK,GACA,OAAAhvB,KAAAkgP,SAIAyyJ,EAAA/+M,qBAAA,SAAA5kK,GACA,IAAAy5D,EAAAz5D,EAAA2kK,IACAv2J,EAAAp9B,KAAAqhC,QACAoc,EAAAz9C,KAAA6yY,SACAhxY,EAAAu7B,EAAAn8B,OAEA,GAAAw8C,EAAA,CAKA,IAAAwzO,EAAAjxR,KAAAyyY,WAGA,GAAAhqT,EAAAzoF,KAAA0yY,kBAAA,CAKA,IAAAnvT,EAFAx7E,KAAAC,IAAAipR,EAAA,EAAApvR,EAAA,GAEuB0hF,GAAA,KACvB9lC,EAAA8lC,IAAAkF,GADmClF,KAOnCA,EAAAx7E,KAAAC,IAAAu7E,EAAA1hF,EAAA,OACG,CACH,QAAA0hF,EAAA0tM,EAA+B1tM,EAAA1hF,KAC/B47C,EAAA8lC,GAAAkF,GAD4ClF,KAM5CA,EAAAx7E,KAAAC,IAAAu7E,EAAA,EAAA1hF,EAAA,GAGA6wL,EAAAu+J,KAAAjiU,EAAA5gB,SAAAgvB,EAAAmmD,GAAAnmD,EAAAmmD,EAAA,IAAAkF,EAAAhrC,EAAA8lC,KAAA9lC,EAAA8lC,EAAA,GAAA9lC,EAAA8lC,KACA,IAAA6wG,EAAAh3J,EAAAmmD,EAAA,MAAAnmD,EAAAmmD,GAAA,GACA8wG,EAAAj3J,EAAAmmD,EAAA,MAAAnmD,EAAAmmD,GAAA,GACAv0D,EAAA6I,UAAA9vB,KAAAkmC,MAAAomJ,EAAAD,GAAArsL,KAAAgwB,GAAA,EACA/3B,KAAAyyY,WAAAlvT,EACAvjF,KAAA0yY,kBAAAjqT,EACAz5D,EAAAgV,QAAA,IAGAnK,EAAA2xB,SAAAshB,EAAAF,GACA,IAAA3pE,EAAA6pE,EACA5pE,EAAAC,QAAAF,wBC/HA,IAAAo+Q,EAAU9hR,EAAQ,QAElB2D,EAAAC,QAAAyG,OAAA,KAAA0uS,qBAAA,GAAA1uS,OAAA,SAAA82D,GACA,gBAAA2gN,EAAA3gN,KAAA7/D,MAAA,IAAA+I,OAAA82D,4BCJA,IAAAt9D,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAAuzY,EAAsBvzY,EAAQ,QAE9BygM,EAAgBzgM,EAAQ,QAExBwzY,EAAuBxzY,EAAQ,QAE/BysD,EAAqBzsD,EAAQ,QAE7Bk7M,EAA6Bl7M,EAAQ,QAoBrC6D,EAAAm6D,eAAAu1U,GACA1vY,EAAAw4D,eAAAokI,GACA58L,EAAAk4D,kBAAAl4D,EAAA4pD,SAAAC,UAAAE,UAAA4lV,GACA3vY,EAAAg4D,qBAAApP,GACAyuJ,EAAA,QACAj3M,KAAA,kBACA+zD,MAAA,mBACA7oB,OAAA,mBAEAlrC,KAAA,YACA+zD,MAAA,cACA7oB,OAAA,WAEAlrC,KAAA,cACA+zD,MAAA,gBACA7oB,OAAA,oCCrDA,IAAA5P,EAAYv/B,EAAQ,QAEpB+0L,EAAoB/0L,EAAQ,QAE5B4vT,EAAgB5vT,EAAQ,QAoBxB2zE,EAAA,WAKAlzE,KAAAg/B,MAAA,IAAAF,EAMA9+B,KAAAk1D,IAAAo/H,EAAAS,OAAA,kBASAi+M,EANA9/T,EAAAhzE,WACAC,YAAA+yE,EACA10D,KAAA,SAAA7a,EAAAC,KACAH,OAAA,SAAA2wD,EAAAzwD,EAAAC,EAAAggC,KACA7+B,QAAA,cAIAiuY,EAAA39U,WAAA29U,EAAAx9U,aAAAw9U,EAAAz9U,aAAA,SAAA/5B,EAAA73B,EAAAC,EAAAggC,KAIAurR,EAAAU,kBAAA38O,GAEAi8O,EAAA36H,sBAAAthH,GACA0iH,oBAAA,IAEA,IAAA3yL,EAAAiwE,EACAhwE,EAAAC,QAAAF,uCCtDA,IAAA+xE,EAAYz1E,EAAQ,QAEpB2D,EAAAC,QACA6xE,EAAAsyF,wBAKAk5L,MAAA,SAAA59V,EAAA2E,EAAA0rY,EAAA5yY,EAAA0rS,EAAAmnG,GACA,IAAAC,KACAA,EAAA5xY,KAAAqB,EAAA,IAAAuqI,mBAAA5lI,IAEAytE,EAAAg4H,SAAAimM,IACAE,EAAA5xY,KAAA,eAAAkO,KAAAwjY,GAAAG,eAGAp+T,EAAAt1E,SAAAW,IACA8yY,EAAA5xY,KAAA,QAAAlB,GAGA20E,EAAAt1E,SAAAqsS,IACAonG,EAAA5xY,KAAA,UAAAwqS,IAGA,IAAAmnG,GACAC,EAAA5xY,KAAA,UAGAsO,SAAAsjY,SAAA/sY,KAAA,OAGAwjY,KAAA,SAAAhnY,GACA,IAAAuG,EAAA0G,SAAAsjY,OAAAhqY,MAAA,IAAAb,OAAA,aAA0D1F,EAAA,cAC1D,OAAAuG,EAAA+jI,mBAAA/jI,EAAA,UAGA1E,OAAA,SAAA7B,GACA5C,KAAAwgW,MAAA59V,EAAA,GAAA6M,KAAAC,MAAA,UAQA8wV,MAAA,aACAopC,KAAA,WAA6B,aAC7BnlY,OAAA,oCCjDAvB,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOAk5K,EACA,SAAAz+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBkxI,IACA,SAAAvtI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAkoY,EAAA9zY,EAAA,KAEA+zY,GAEAnoY,EAFAkoY,IAEsCloY,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EmoY,EAAAv6X,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA++W,EAAAv6X,QAAAnW,KAAA0wY,EAAAv6X,UAGA5V,EAAA4V,QAAAu6X,EAAAv6X,SAIA23H,IACA,SAAAxtI,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAgsY,EAAAh0Y,EAAA,KACAi0Y,EAAAj0Y,EAAA6+C,EAAAm1V,GACAE,EAAAl0Y,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAqgU,EAAAj+X,EACAk+X,EAAA,GATA,EAEA,KAEA,KAEA,MAUAlvV,EAAA,QAAA2uB,EAAA,SAKAy9D,IACA,SAAAztI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,kBAEA2/K,cAAA,kBAEAD,QAAAD,EAAAtpK,SAEAs6D,QACAE,YACAx6D,QAAA,KAIAjW,OACAyE,SACAmsE,SAAAj6D,QACAzR,IAAA+S,OACA9S,IAAA8S,OACA8W,KAAA1gB,OACAuG,KAAAvG,OACAg1Q,UAAAh1Q,QAGA0K,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnC2/T,kBAAA,WACA,OAAA1zY,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,OAItEtW,OACAhU,MAAA,SAAA+6P,GACAtiQ,KAAAu9I,SAAA,+BAAA+kH,QAOA1xH,IACA,SAAA1tI,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,oBAAAC,OAAuC2sJ,KAAA,QAAA4kE,aAAA,oBAAvH5oO,KAAqK+0E,GAAA,gBAE9Kp9D,oBACjB4sC,EAAA,6BCjTchlD,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBib,EAAcjb,EAAQ,QAEtBo0Y,EAAmBp0Y,EAAQ,QAE3Bs6B,EAAat6B,EAAQ,QAsErB,IAAA0D,EAAAG,EAAAs6D,iBACAl6D,KAAA,UACAC,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAgwY,EACAjwY,EAAAkvD,cAAA,qBAAA/4C,GACAA,EAAA+sL,iBAAA,SAAAgtM,GACAA,IAAAr4W,IACAo4W,EAAA95X,OAIA9Z,KAAAg/B,MAAAkG,YACAllC,KAAA8zY,wBAAA,KACA,IAAAz4W,EAAAG,EAAAnN,iBAEA,gBAAAgN,EAAA73B,MAAA,aAAA63B,EAAA73B,KACAxD,KAAA+zY,8BAAAv4W,EAAA53B,EAAA,EAAA43B,EAAAtP,UAAA3pB,SAtBA,SAAA84B,GACA,IAAA0G,EAAA1G,EAAA0G,WAEA,cAAAA,EAAA,YAAAA,EAAA,GAoBKiyW,CAAA34W,IACLr7B,KAAAi0Y,aAAA54W,EAAAG,EAAAo4W,EAAAhwY,IAGA+pE,yBAAA,SAAAnyC,EAAA73B,EAAAC,GACA5D,KAAAg/B,MAAAkG,aAEA4oC,kBAAA,SAAAn8C,EAAA6J,EAAA73B,EAAAC,GACA43B,EAAAnN,kBAGAruB,KAAA+zY,8BAAAv4W,EAAA53B,EAAA+tB,EAAAnvB,MAAAmvB,EAAAT,KAAA,IAGA6iX,8BAAA,SAAAv4W,EAAA53B,EAAApB,EAAA0uB,EAAAk/I,GACA,IACAp3J,EACAC,EAFAoiB,EAAAG,EAAAnN,iBAIA,mBAAAgN,EAAA73B,KAAA,CACA,IAAAqS,EAAAwlB,EAAAzO,QAAA,KACAhX,EAAAylB,EAAAzO,QAAA,KACA5T,EAAAnD,EAAAsjB,eACAlgB,EAAArD,EAAAujB,eAgBA,IAbA,IAAA6F,EAAAh/B,KAAAg/B,MACAluB,EAAA0qB,EAAAtP,UAKA3T,EAAAijB,EAAA6D,SAJA,aAIAimC,cAAA,UACA2vR,EAAAz5T,EAAA6D,SAJA,sBAIAimC,eACAS,EAAAvqC,EAAA6D,SAJA,SAKAuwI,EAAAp0I,EAAA6D,SAJA,kBAKAgpK,EAAAhtK,EAAA73B,KACA+wU,EAAA,gBAAAlsI,GAAAv3L,EAAA0tB,aAAA,KAAA1tB,EAAA0tB,aAAA,KAAA1tB,EAAA0tB,aAAA,WAAA1tB,EAAA0tB,aAAA,QAAA1tB,EAAA0tB,aAAA,UAEA8B,EAAA99B,EAAyB89B,EAAApP,EAAWoP,IAAA,CACpC,IAAA4H,EAEA,mBAAAmgK,EAAA,CAEA,GAAA59L,MAAAqG,EAAA9M,IAAAuwU,EAAA,GAAAj0S,IACA,SAGA,IAAA+J,EAAAhP,EAAA4O,aAAAn5B,EAAA9M,IAAAuwU,EAAA,GAAAj0S,GAAAxvB,EAAA9M,IAAAuwU,EAAA,GAAAj0S,KACA4H,EAAA,IAAA1tB,EAAAyiB,MACAlV,OACA1jB,EAAAgmC,EAAA,GAAArxB,EAAA,EACAzU,EAAA8lC,EAAA,GAAApxB,EAAA,EACAD,QACAC,UAEAV,OACAb,KAAA5G,EAAAojD,cAAA5zB,EAAA,SACAztB,QAAA/B,EAAAojD,cAAA5zB,EAAA,kBAGO,CAEP,GAAA71B,MAAAqG,EAAA9M,IAAAuwU,EAAA,GAAAj0S,IACA,SAGA4H,EAAA,IAAA1tB,EAAAyiB,MACAmH,GAAA,EACArc,MAAAsT,EAAAqjL,YAAA5tM,EAAA9M,IAAAuwU,EAAA,GAAAj0S,KAAAq+K,aACApmM,OACAb,KAAA5G,EAAAojD,cAAA5zB,EAAA,SACAztB,QAAA/B,EAAAojD,cAAA5zB,EAAA,cAKA,IAAA4kC,EAAAp0D,EAAAq0D,aAAA7kC,GAEAxvB,EAAAk/D,gBACAz3D,EAAA2sD,EAAA7lC,SApDA,aAoDAimC,cAAA,UACA2vR,EAAA/vR,EAAA7lC,SApDA,sBAoDAimC,eACAS,EAAAb,EAAA7lC,SApDA,SAqDAuwI,EAAA1qG,EAAA7lC,SApDA,mBAuDA,IAAAynW,EAAAtrW,EAAAs+K,YAAAx5K,GACAgmC,EAAA,IAEAwgU,GAAA,MAAAA,EAAA,KACAxgU,EAAAwgU,EAAA,IAGAtsX,EAAA2rD,cAAA5tD,EAAA08U,EAAAlvR,EAAA6pG,GACAxpG,aAAA5qC,EACA6qC,eAAA/lC,EACAgmC,cACAo2H,YAAA,IAEAx0J,EAAAoU,SAAA/jC,GACAiC,EAAAmrD,cAAAz9B,EAAAp3B,EAAAk/D,cAAAilR,EAAAp7T,EAAAnwB,UAAkFurV,IAClF/sT,EAAAkoI,cAEAA,IAEAloI,EAAAixB,eAAA,GAGAn6B,EAAAC,IAAAiJ,GACAp3B,EAAA+vB,iBAAAP,EAAA4H,KAGA+rW,aAAA,SAAA35X,EAAAkhB,EAAA84H,EAAA1wJ,GACA,IAAAswY,EAAA5/O,EAAAutH,cAAA5zP,QACAkmX,EAAA7/O,EAAAutH,cAAA7rH,WAIAllJ,EAAA0qB,EAAAtP,UACAkoX,EAAAp0Y,KAAAq0Y,UAAAr0Y,KAAAq0Y,UAAA,IAAAV,EACAS,EAAA7mX,SAAAiO,EAAAx3B,IAAA,YACAowY,EAAA/mX,UAAAmO,EAAAx3B,IAAA,aACAowY,EAAAn9G,WAAAz7P,EAAAx3B,IAAA,cACAowY,EAAAp9G,WAAAx7P,EAAAx3B,IAAA,cACA,IAAAkkC,EAAA5tB,EAAAwvB,cAAAE,QACAd,EAAA5uB,EAAAyuB,mBACAb,EAAAlB,eAAAkC,GAEA,IAAA7kC,EAAA0D,KAAAE,IAAAigC,EAAA7jC,EAAA,GACAE,EAAAwD,KAAAE,IAAAigC,EAAA3jC,EAAA,GACAspC,EAAA9lC,KAAAC,IAAAkgC,EAAAlvB,MAAAkvB,EAAA7jC,EAAAT,EAAAkuD,YACAhkB,EAAA/lC,KAAAC,IAAAkgC,EAAAjvB,OAAAivB,EAAA3jC,EAAAX,EAAAmuD,aACA/4C,EAAA60B,EAAAxpC,EACA4U,EAAA60B,EAAAvpC,EACAmM,GAAAI,EAAA0tB,aAAA,OAAA1tB,EAAA0tB,aAAA,OAAA1tB,EAAA0tB,aAAA,UACApB,EAAAtsB,EAAAyuB,SAAA7uB,EAAA,SAAAw9L,EAAAC,EAAA5mM,GACA,IAAAm2B,EAAApjB,EAAA2vB,aAAAikK,EAAAC,IAIA,OAHAzwK,EAAA,IAAAr5B,EACAq5B,EAAA,IAAAn5B,EACAm5B,EAAAn8B,KAAAgG,GACAm2B,IAEAs6H,EAAA1D,EAAAx4H,YACA41R,EAAA,yBAAAp9J,EAAA9wJ,KA9KA,SAAAw0J,EAAA53C,GACA,IAAAk0R,EAAAt8O,EAAA,GAAAA,EAAA,GAEA,OADA53C,MAAA,GAAA43C,EAAA,IAAAs8O,GAAAl0R,EAAA,GAAA43C,EAAA,IAAAs8O,GACA,SAAA/mY,GACA,OAAAA,GAAA6yG,EAAA,IAAA7yG,GAAA6yG,EAAA,IA0KAm0R,CAAAv8O,EAAA1D,EAAAr3I,OAAAmjG,OAlNA,SAAA43C,EAAAqlC,EAAA3yK,GACA,IAAA4pX,EAAAt8O,EAAA,GAAAA,EAAA,GAMAn2J,GALAw7L,EAAAxjK,EAAAlpB,IAAA0sL,EAAA,SAAAE,GACA,OACA7jJ,WAAA6jJ,EAAA7jJ,SAAA,GAAAs+G,EAAA,IAAAs8O,GAAA/2M,EAAA7jJ,SAAA,GAAAs+G,EAAA,IAAAs8O,OAGArzY,OACAovG,EAAA,EACA,gBAAA9iG,GAEA,QAAAxM,EAAAsvG,EAA2BtvG,EAAAc,EAASd,IAGpC,IAFA24C,EAAA2jJ,EAAAt8L,GAAA24C,UAEA,IAAAnsC,MAAAmsC,EAAA,IACA22D,EAAAtvG,EACA,MAIA,GAAAA,IAAAc,EAEA,IAAAd,EAAAsvG,EAAA,EAAiCtvG,GAAA,EAAQA,IAAA,CACzC,IAAA24C,EAEA,IAFAA,EAAA2jJ,EAAAt8L,GAAA24C,UAEA,IAAAnsC,MAAAmsC,EAAA,IACA22D,EAAAtvG,EACA,OAKA,OAAAA,GAAA,GAAAA,EAAAc,GAAA6oB,EAAA3pB,IAkLAyzY,CAAAx8O,EAAA1D,EAAA8qL,eAAA9qL,EAAAr3I,OAAAyN,UACA0pX,EAAA73V,OAAAnf,EAAApkB,EAAAC,EAAAi7X,EAAA/tY,MAAA83L,iBACAhwK,QAAAimX,EAAA/tY,MAAA+2L,iBACAlnC,WAAAm+O,EAAAhuY,MAAA+2L,kBACKw0H,GACL,IAAA7/Q,EAAA,IAAAr3B,EAAAu5B,OACAx7B,OACAS,QACAC,SACA5U,IACAE,IACAutC,MAAAsiW,EAAA11X,QAEAylB,QAAA,IAEAnkC,KAAAg/B,MAAAC,IAAA4S,IAEA9sC,QAAA,eAGA7B,EAAAC,QAAAF,wBCpQA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBu6B,EAAiBv6B,EAAQ,QAEzBotE,EAAeptE,EAAQ,QAEvB67J,EAAqB77J,EAAQ,QAE7Bk1Y,EAAiBl1Y,EAAQ,QAIzBy2M,EAFoBz2M,EAAQ,QAE5By2M,oBAEAx7L,EAAcjb,EAAQ,QAEtBm1Y,EAAiBn1Y,EAAQ,QAoBzBo1Y,GAAA,uBACAC,GAAA,uBAEA,SAAAC,EAAAloY,EAAAmoY,GACA,OAAAnoY,EAAAg1B,UAAA,YAAAh1B,EAAA0yB,WAAAr7B,IAAA8wY,GAGA,SAAAC,EAAApoY,EAAAmoY,EAAAE,GACA,IAAAv0Y,EAAAkM,EAAA0xU,eACAxrU,EAAAgiY,EAAAloY,EAAAmoY,GAEA,MAAAE,IACA,MAAAniY,MAAA,GACAA,GAAAmiY,GAGAv0Y,EAAAyjC,UAAAzjC,EAAAyjC,WACAzjC,EAAAk4D,SAAA,SAAArsB,GACA,UAAAA,EAAA9oC,MACA8oC,EAAAgQ,SAAA,UAAAzpC,KAKA,SAAAoiY,EAAAtoY,EAAAmoY,GACA,IAAAjiY,EAAAgiY,EAAAloY,EAAAmoY,GACAr0Y,EAAAkM,EAAA0xU,eACA59U,EAAAkjC,WAAAljC,EAAAkjC,YACAljC,EAAAk4D,SAAA,SAAArsB,GACA,UAAAA,EAAA9oC,MACA8oC,EAAAgQ,SAAA,UAAAzpC,KAKA,IAAA5P,EAAAG,EAAAs6D,iBACAl6D,KAAA,QACAgb,KAAA,SAAA7a,EAAAC,GACA,IAAAm7B,EAAA,IAAAjF,EACAkzC,EAAA,IAAAL,EACA3tC,EAAAh/B,KAAAg/B,MACAh/B,KAAAk1Y,YAAA,IAAA95O,EAAAx3J,EAAAe,SACA3E,KAAAm1Y,iBACA50Y,OAAAy+B,GAEAA,EAAAC,IAAAF,EAAAC,OACAA,EAAAC,IAAA+tC,EAAAhuC,OACAh/B,KAAAk/B,YAAAH,EACA/+B,KAAAguE,UAAAhB,EACAhtE,KAAAo1Y,cAAA,GAEA3xY,OAAA,SAAA+3B,EAAA73B,EAAAC,GACA,IAAAy3B,EAAAG,EAAAnN,iBACAruB,KAAA6E,OAAA22B,EACAx7B,KAAAq1Y,gBAAA75W,EAAAx3B,IAAA,kBACA,IAAA+6B,EAAA/+B,KAAAk/B,YACA8tC,EAAAhtE,KAAAguE,UACAhvC,EAAAh/B,KAAAg/B,MAEA,YAAA3D,EAAA73B,KAAA,CACA,IAAA8xY,GACAlnY,SAAAitB,EAAAjtB,SACAmD,MAAA8pB,EAAA9pB,OAGAvR,KAAAo1Y,aACAp2W,EAAAj8B,KAAAuyY,GAEA96X,EAAAoqB,YAAA5F,EAAAs2W,EAAA95W,GAKAk5W,EAAAl5W,EAAA8qJ,WAAAtmL,KAAAu1Y,oBAAA/5W,IACA,IAAA1qB,EAAA0qB,EAAAtP,UACA6S,EAAAkC,WAAAnwB,GACA,IAAA00K,EAAAhqJ,EAAA+qJ,cACAv5G,EAAA/rC,WAAAukJ,GAEAxlL,KAAAw1Y,0BAEAx1Y,KAAAy1Y,kBAAAj6W,EAAA73B,EAAAC,GAEAyI,aAAArM,KAAA01Y,gBACA,IAAA5tU,EAAAtsC,EAAAssC,YACA8/G,EAAApsJ,EAAAx3B,IAAA,yBAEA8jE,GACA9nE,KAAA21Y,2BAAA7tU,EAAA8/G,GAGA92K,EAAA6vB,kBAAA,SAAAlgC,EAAA6/B,GACA,IAAA4kC,EAAAp0D,EAAAq0D,aAAA7kC,GAEA7/B,EAAA4vD,IAAA,QAAAA,IAAA,WACA,IAAA4mG,EAAAnmJ,EAAAq0D,aAAA7kC,GAAAt8B,IAAA,aAEAizJ,GACAx2J,EAAAif,GAAA,kBACAooD,IACAA,EAAA8uK,UACA52O,KAAA41Y,YAAA51Y,KAAA21Y,2BAAA7tU,EAAA8/G,GACA9/G,EAAA+uK,SAAAv2M,GAEAxvB,EAAA64K,cAAArpJ,EAAA7/B,EAAA2N,YAESpO,MAAA0f,GAAA,qBACTooD,GACAA,EAAAgvK,WAAAx2M,IAEStgC,MAGTS,EAAA8iW,aAAAtsM,GAAAnvF,GACArnE,EAAA4vD,IAAA,YAAA5vD,EAAAo1Y,sBACAp1Y,EAAA4vD,IAAA,WAAA5vD,EAAAq1Y,wBAEA5wU,EAAAlhE,IAAA,wBACAvD,EAAAif,GAAA,YAAAjf,EAAAo1Y,qBAAA,WACAjyY,EAAAQ,gBACAZ,KAAA,qBACA6gE,SAAA7oC,EAAA95B,GACA08B,UAAA39B,EAAA29B,cAGA39B,EAAAif,GAAA,WAAAjf,EAAAq1Y,uBAAA,WACAlyY,EAAAQ,gBACAZ,KAAA,uBACA6gE,SAAA7oC,EAAA95B,SAIK1B,MACL8Q,EAAAo+J,MAAAogE,SAAA,SAAA3oD,GACA,IAAAlmL,EAAAkmL,EAAA03J,eACA59U,EAAA4vD,IAAA,YAAA5vD,EAAAo1Y,sBACAp1Y,EAAA4vD,IAAA,WAAA5vD,EAAAq1Y,wBAEAnvN,EAAAtnJ,WAAAr7B,IAAA,wBACAvD,EAAAif,GAAA,YAAAjf,EAAAo1Y,qBAAA,WACAjyY,EAAAQ,gBACAZ,KAAA,qBACA6gE,SAAA7oC,EAAA95B,GACAq0Y,cAAApvN,EAAAvoJ,cAGA39B,EAAAif,GAAA,WAAAjf,EAAAq1Y,uBAAA,WACAlyY,EAAAQ,gBACAZ,KAAA,uBACA6gE,SAAA7oC,EAAA95B,UAKA,IAAAs0Y,EAAA,aAAAx6W,EAAAx3B,IAAA,WAAAw3B,EAAAx3B,IAAA,wBACAuT,EAAAzG,EAAA84K,UAAA,MACApyK,EAAA1G,EAAA84K,UAAA,MACA94K,EAAA6vB,kBAAA,SAAAlgC,EAAA6/B,GACA,IAAAsjK,EAAAnjM,EAAAojM,gBAEA,GAAAmyM,EAAA,CACA,IAAAtkX,EAAA5gB,EAAA0uB,cAAAc,GACAwjK,EAAA/7L,KAAAkmC,MAAAvc,EAAA,GAAAla,EAAAka,EAAA,GAAAna,GAEAusL,EAAA,IACAA,EAAA,EAAA/7L,KAAAgwB,GAAA+rK,GAGA,IAAAC,EAAAryK,EAAA,GAAAna,EAEAwsL,IACAD,GAAA/7L,KAAAgwB,IAGA,IAAAqe,EAAA2tJ,EAAA,eACAH,EAAAtnJ,UACA4nJ,cAAAJ,EACA1tJ,eACA+tJ,WAAA,WAEAP,EAAAr+H,aAAAq+H,EAAAr+H,WAAAnvB,qBAEAwtJ,EAAAtnJ,UACA4nJ,aAAA,MAIAlkM,KAAAo1Y,cAAA,GAEArwY,QAAA,WACA/E,KAAAk1Y,aAAAl1Y,KAAAk1Y,YAAAnwY,UACA/E,KAAAm1Y,oBAEA/tN,mBAAA,SAAA5rJ,EAAA73B,EAAAC,EAAAggC,GACA,IAEAsrI,EAFAlvK,KAAA6E,OAAAqnB,UAEAgjJ,MACA9wI,EAAAwF,EAAAxF,UACA23W,EAAAnyW,EAAAmyW,cACA78U,EAAAg2G,EAAA4iD,eAAA1zL,GACAuoJ,EAAAzX,EAAA0X,eAAAmvN,IAEA78U,GAAAytH,KAIAzX,EAAA+Z,SAAA,SAAA/vH,GACA67U,EAAA77U,EAAAy7U,EAAA,MAEAzlO,EAAAogE,SAAA,SAAA3oD,GACAouN,EAAApuN,EAAAiuN,EAAA,MAGA17U,IACA+7U,EAAA/7U,EAAAy7U,GACA96W,EAAA4E,KAAAy6B,EAAAgsH,MAAA,SAAA+wN,GACAA,EAAA73W,UAAA,IAIA62W,EAAAgB,EAAArB,GACAK,EAAAgB,EAAAnvN,MAAA6tN,GACAM,EAAAgB,EAAAjvN,MAAA2tN,OAIAhuN,IACAsuN,EAAAtuN,EAAAiuN,GACAK,EAAAtuN,EAAAG,MAAA6tN,GACAM,EAAAtuN,EAAAK,MAAA2tN,MAGAuB,qBAAA,SAAA16W,EAAA73B,EAAAC,EAAAggC,GACA,IAAAsrI,EAAAlvK,KAAA6E,OAAAqnB,UAAAgjJ,MAEAA,EAAA+Z,SAAA,SAAA/vH,GACA67U,EAAA77U,EAAAy7U,KAEAzlO,EAAAogE,SAAA,SAAA3oD,GACAouN,EAAApuN,EAAAiuN,MAGAe,2BAAA,SAAA7tU,EAAA8/G,GACA,IAAAz7K,EAAAnM,MAEA,SAAAsnB,IACAwgD,EAAAxgD,KAAA,SAAAyqM,GACA5lN,EAAAqpD,aAAArpD,EAAAtH,SACAsH,EAAAypY,YAAA7jL,KAAAnqC,EAAAz7K,EAAAupY,eAAAppY,WAAAgb,EAAA,IAAAA,OAHA,IAOAmuX,kBAAA,SAAAj6W,EAAA73B,EAAAC,GACA,IAAAymD,EAAArqD,KAAAk1Y,YACAnmB,EAAA/uX,KAAAm1Y,gBACAn2W,EAAAh/B,KAAAg/B,MACAqrB,EAAA4xG,kBAAA,SAAA93J,EAAAE,EAAAE,GACA,IAAA2jC,EAAAlJ,EAAA8I,kBAEA,OADAI,EAAAlB,eAAAhI,EAAA/G,WACAiQ,EAAAwC,QAAArmC,EAAAE,KAAAyxM,EAAA7xM,EAAAP,EAAA43B,KAGA,SAAAA,EAAAnN,iBAAA7qB,MAKA6mD,EAAA6xG,OAAA1gI,EAAAx3B,IAAA,SACA+qX,EAAA5nV,UAAA3L,EAAAx3B,IAAA,cACA+qX,EAAAjlW,KAAA0R,EAAAnN,iBAAAya,UACAuhB,EAAAgG,IAAA,OAAAA,IAAA,QAAA3wC,GAAA,eAAAquB,EAAAC,GACAymW,EAAA3lB,gBAAAC,EAAAhhV,EAAAC,GACApqC,EAAAQ,gBACAigE,SAAA7oC,EAAA95B,GACA8B,KAAA,YACAuqC,KACAC,SAEKtuB,GAAA,gBAAAoK,EAAAw1J,EAAAC,GACLk1N,EAAAzlB,iBAAAD,EAAAjlW,EAAAw1J,EAAAC,GACA37K,EAAAQ,gBACAigE,SAAA7oC,EAAA95B,GACA8B,KAAA,YACAsmB,OACAklD,QAAAswG,EACApwG,QAAAqwG,IAGAv/K,KAAAw1Y,0BAEAd,EAAAl5W,EAAA8qJ,WAAAtmL,KAAAu1Y,oBAAA/5W,IAEAx7B,KAAAguE,UAAAxY,gBACKx1D,OA9BLqqD,EAAA+xG,WAgCAo5O,wBAAA,WACA,IAAAh6W,EAAAx7B,KAAA6E,OACAiM,EAAA0qB,EAAAtP,UAEAiqX,EAAAn2Y,KAAAu1Y,oBAAA/5W,GAEAk9K,GAAAy9L,KACArlY,EAAA6vB,kBAAA,SAAAlgC,EAAA6/B,GACA7/B,EAAAsC,KAAA,QAAA21M,MAGA68L,oBAAA,SAAA/5W,GACA,IAAAH,EAAAG,EAAAnN,iBAEA,YAAAgN,EAAA73B,KACA,SAGA,IAAAwkL,EAAAhoL,KAAAq1Y,gBACAe,EAAA/6W,EAAA9pB,MACA8kY,EAAAD,KAAA,MAIA,QAFA/6W,EAAAyN,UACA,GAAAk/I,EAAA,GACAquN,GAEA7gV,aAAA,SAAAh6B,GACAk5W,EAAAl5W,EAAA8qJ,WAAAtmL,KAAAu1Y,oBAAA/5W,IAEAx7B,KAAAk/B,YAAAs2B,eAEAx1D,KAAAguE,UAAAxY,gBAEA/wD,OAAA,SAAAd,EAAAC,GACA5D,KAAAk/B,aAAAl/B,KAAAk/B,YAAAz6B,SACAzE,KAAAguE,WAAAhuE,KAAAguE,UAAAvpE,YAIAvB,EAAAC,QAAAF,wBCpXc1D,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtB06B,EAAgB16B,EAAQ,QAExBuxJ,EAAkBvxJ,EAAQ,QAoB1Bk/B,EAAA5E,EAAA4E,KACA3+B,EAAA+5B,EAAA/5B,QACAyqC,EAAA1Q,EAAA0Q,MACA+rW,GAAA,6BAGAC,GAAA,8EA4DA,SAAAhpL,EAAAtwM,EAAAtZ,EAAAi1B,GAKA,IAAA49W,EAAAx2Y,KAAAy2Y,mBACA37T,KACA47T,EAAAhmV,EAAA/sD,EAAAsZ,GACAwhB,EAAAk4W,EAAA,SAAAC,EAAApzY,KACAo1B,MAAAw1L,SAAAtuN,EAAA84B,EAAAw1L,QAAA5qN,IAAA,IACAozY,EAAAF,EAAAF,EAAA17T,KAKA,IAAAtjC,EAAA+1K,EAAArtN,UA6GA,SAAA22Y,EAAAznL,GAEA,OADAA,EAAA,GAAAA,EAAA,IAAAA,EAAA7nM,UACA6nM,EAGA,SAAA1+J,EAAA/sD,EAAAsZ,GACA,OAAAgd,EAAAy2B,YAAA/sD,EAAAsZ,GACA65X,iBAAAP,IAlHA/+V,EAAAg/I,gBAAA,SAAAJ,EAAAzyL,GACA3D,KAAA+uN,kBAAA34B,EAAAzyL,EAAA,SAAA8c,EAAAuuM,EAAA3zL,GAGA,IAFA5a,EAAAs2X,cAAAt2X,EAAAs2X,iBAAAx1Y,KAAAytN,IAEAvuM,EAAAuuM,WAAA,CACAvuM,EAAAuuM,aAMA,IAAAj+M,EAAAimY,EAAAv2X,EAAAmyI,WAAA,EAAAv3H,EAAA2zL,GACAvuM,EAAAw2X,eACAv0W,OAAAw0W,EAAAz2X,EAAAmyI,WAAA7hJ,EAAAqgB,OAAA3Q,EAAA2/F,OAAA,MACA+2R,SAAApmY,EAAAomY,cAMA3/V,EAAAu3K,kBAAA,SAAA34B,EAAAzyL,EAAA2jE,GACA7oC,EAAA23J,EAAA,SAAA31K,GACA,IAAA4tM,EAAAruN,KAAAo3Y,eAAA32X,EAAA9c,GAEA0qN,IAAA,IAAAA,GACAx0L,EAAA4E,KAAA4vL,EAAAgpL,WAAA,SAAAh8W,GACA,IAAAtqB,EAAAimY,EAAAv2X,EAAAmyI,WAAA,EAAAv3H,EAAA5a,EAAA2/F,OACA94C,EAAA7mD,EAAA1P,EAAAqgB,OAAAiK,EAAA13B,MAGG3D,OAGHw3C,EAAA41V,eAAA,SAAAh3M,EAAAzyL,GACA86B,EAAA23J,EAAA,SAAA31K,GACA,IA2OA62X,EAAAC,EACAC,EACAC,EACAC,EA9OArpL,EAAAruN,KAAAo3Y,eAAA32X,EAAA9c,GAGA,GAFA8c,EAAA2/F,MAAA3/F,EAAA2/F,UAEAiuG,IAAA,IAAAA,EAAA,CACA5tM,EAAA4xI,QAAAg8D,EAAAh8D,QAOA,IAAAthJ,EAAAimY,EAAAv2X,EAAAmyI,WAAA,EAAAy7D,EAAAhzL,SAAA5a,EAAAuuM,YACA2oL,EAAAl3X,EAAAw2X,cACAx2X,EAAA2/F,MAAAu3R,EAAAT,EAAAz2X,EAAAmyI,WAAA7hJ,EAAAqgB,OAAAumX,EAAAj1W,QA8NA40W,EA9NAvmY,EAAAomY,SA8NAI,EA9NAI,EAAAR,SA+NAK,EAAAntL,EAAAitL,GACAG,EAAAptL,EAAAktL,GACAG,GAAAF,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,IACAhtY,MAAAitY,EAAA,MAAAA,EAAA,MACAjtY,MAAAitY,EAAA,MAAAA,EAAA,MACAA,IApOA3mY,EAAAqgB,SAEGpxB,OAGHw3C,EAAAm/I,cAAA,SAAA/yL,EAAAg0Y,GACA,OAAA/9W,EAAAlpB,IAAA3Q,KAAAy2Y,gBAAA,SAAApoL,GACA,IAAAnmL,EAAAmmL,EAAAwpL,eACA,OACAxlP,QAAAg8D,EAAAh8D,QACA8pN,iBAAAy7B,KAAAvpL,GACApyL,SAAA60H,EAAAwB,sBAAApqH,GACAqqH,iBAAAzB,EAAA0B,yBAAAtqH,EAAAtkC,EAAAyqN,EAAA/8D,eACAmB,0BAAA3B,EAAA4B,2BAAAxqH,OAKAsP,EAAA42V,cAAA,SAAA3tX,EAAA+a,EAAA73B,GAGA,IAAA0qN,EAAAruN,KAAAo3Y,eAAA32X,EAAA9c,GACA,WAAA0qN,MAAAvuN,EAAAuuN,EAAAgpL,WAAA77W,EAAAnN,mBAAA,GAaAmpB,EAAA4/V,eAAA,SAAA32X,EAAA9c,GAIA,IAHA,IAAA6yY,EAAAx2Y,KAAAy2Y,gBACAC,EAAAhmV,EAAA/sD,EAAA8c,GAEA1f,EAAA,EAAiBA,EAAAy1Y,EAAAv1Y,OAA2BF,IAAA,CAC5C,IAAAstN,EAAAmoL,EAAAz1Y,GACA+2Y,EAAAr3X,EAAA4xI,QAEA,GAAAylP,GACA,GAAAzpL,EAAAh8D,UAAAylP,EACA,OAAAzpL,OAGA,IAAAttN,EAAA,EAAqBA,EAAAg3Y,EAAA92Y,OAA+BF,IACpD,GAAAg3Y,EAAAh3Y,GAAA21Y,EAAAroL,GACA,OAAAA,EAMA,UAcA,IAAAsoL,GACAhxY,KAAA,SAAA+wY,EAAAF,GACA,IAAAwB,EAAAtB,EAAAsB,YACAC,EAAAvB,EAAAuB,YACAC,EAAAxB,EAAAwB,WAEAC,EAAAt+W,EAAAk7B,gBACAqjV,KACAC,MAEAL,GAAAC,GAAAC,KAIAz5W,EAAAu5W,EAAA,SAAA3hX,GACA,IAAAmyC,EAAAnyC,EAAAZ,KAAA9vB,KAAA4xB,MACA4gX,EAAAnzV,IAAAwjB,EAAA9mE,GAAA8mE,GACA4vU,EAAA5vU,EAAA9mE,KAAA,IAEA+8B,EAAAw5W,EAAA,SAAA5hX,GACA,IAAAmyC,EAAAnyC,EAAAZ,KAAA9vB,KAAA4xB,MACA4gX,EAAAnzV,IAAAwjB,EAAA9mE,GAAA8mE,GACA6vU,EAAA7vU,EAAA9mE,KAAA,IAEA+8B,EAAAy5W,EAAA,SAAA1vU,GACA2vU,EAAAnzV,IAAAwjB,EAAA9mE,GAAA8mE,GACA4vU,EAAA5vU,EAAA9mE,KAAA,EACA22Y,EAAA7vU,EAAA9mE,KAAA,IAEAy2Y,EAAA15W,KAAA,SAAA+pC,GACA,IAAA7iE,EAAA6iE,EAAAn6C,iBACAiqX,KACA75W,EAAA94B,EAAA2kE,gBAAA,SAAA5tC,EAAA9vB,IACA9M,EAAAk4Y,EAAAt7W,EAAA9P,QAAA,KAAA2K,QAAA,GAAAz3B,EAAAm4Y,EAAAv7W,EAAA9P,QAAA,KAAA2K,QAAA,IACA+gX,EAAA/2Y,KAAAm7B,KAGA85W,EAAAj1Y,MACA8wJ,QAAA,SAAA7pF,EAAA9mE,GACA8mE,YACA8oF,cAAA9oF,EAEAntC,SAAAi9W,EAAA,GACAjB,WAAAiB,EACAT,aAAAU,EAAA5yY,KACA2oN,cAAA8pL,EAAA5vU,EAAA9mE,IACA6sN,cAAA8pL,EAAA7vU,EAAA9mE,UAIA4Y,IAAA,SAAAo8X,EAAAF,GACA/3W,EAAAi4W,EAAA8B,UAAA,SAAAxpM,GACA,IAAA3zK,EAAA2zK,EAAA3gL,iBACAmoX,EAAAj1Y,MACA8wJ,QAAA,QAAA28C,EAAAttM,GACAstM,WACA19C,cAAA09C,EACA3zK,WACAg8W,YAAAh8W,GACAw8W,aAAAU,EAAAj+X,UAKAy9X,GACA,SAAArB,EAAAroL,GACA,IAAA7jJ,EAAAksU,EAAAlsU,WACAE,EAAAgsU,EAAAhsU,WACAlC,EAAAkuU,EAAAluU,UAGA,OAFAA,GAAAgC,IAAAhC,EAAAgC,EAAA/0C,KAAA9vB,KAAA4xB,QACAixC,GAAAkC,IAAAlC,EAAAkC,EAAAj1C,KAAA9vB,KAAA4xB,OACAixC,OAAA6lJ,EAAA7lJ,WAEA,SAAAkuU,EAAAroL,GACA,IAAArf,EAAA0nM,EAAA1nM,SACA,OAAAA,OAAAqf,EAAArf,WAEAupM,GACA5yY,KAAA,WAEA,OAAA3F,KAAAq7B,SAAA11B,KAAA49D,UAAAv5B,SAEA1vB,IAAA,WACA,IAAA+gB,EAAAr7B,KAAAq7B,SACA6M,EAAA7M,EAAAyM,kBAAAkC,QAGA,OADA9B,EAAAlB,eAAAxsB,EAAA6+I,aAAAh+H,IACA6M,IAGA8uW,GACA9nL,MAAA3kL,EAAAkuW,EAAA,GACAtpL,MAAA5kL,EAAAkuW,EAAA,GACAvwW,KAAA,SAAAgP,EAAA7b,EAAAq9W,GACA,IAAAC,EAAAt9W,EAAAi7W,EAAAp/V,KAAAwhW,EAAA,MAAAA,EAAA,QACAE,EAAAv9W,EAAAi7W,EAAAp/V,KAAAwhW,EAAA,MAAAA,EAAA,QACAtnX,GAAAylX,GAAA8B,EAAA,GAAAC,EAAA,KAAA/B,GAAA8B,EAAA,GAAAC,EAAA,MACA,OACAxnX,SACA+lX,SAAA/lX,IAGA0O,QAAA,SAAAoX,EAAA7b,EAAAq9W,GACA,IAAAvB,IAAA19V,sBASA,OACAroB,OATAyI,EAAAlpB,IAAA+nY,EAAA,SAAA/rY,GACA,IAAAukC,EAAA7V,EAAAi7W,EAAAp/V,IAAAvqC,GAKA,OAJAwqY,EAAA,MAAApvY,KAAAC,IAAAmvY,EAAA,MAAAjmW,EAAA,IACAimW,EAAA,MAAApvY,KAAAC,IAAAmvY,EAAA,MAAAjmW,EAAA,IACAimW,EAAA,MAAApvY,KAAAE,IAAAkvY,EAAA,MAAAjmW,EAAA,IACAimW,EAAA,MAAApvY,KAAAE,IAAAkvY,EAAA,MAAAjmW,EAAA,IACAA,IAIAimW,cAKA,SAAAsB,EAAAI,EAAA3hW,EAAA7b,EAAAq9W,GACA,IAAAjjX,EAAA4F,EAAAzO,SAAA,SAAAisX,IACAznX,EAAAylX,EAAAh9W,EAAAlpB,KAAA,cAAA5P,GACA,OAAAm2C,EAAAzhB,EAAAsuC,YAAAtuC,EAAAkuC,aAAA+0U,EAAA33Y,KAAA00B,EAAAoB,cAAApB,EAAAqB,YAAA4hX,EAAA33Y,QAEAo2Y,KAGA,OAFAA,EAAA0B,GAAAznX,EACA+lX,EAAA,EAAA0B,IAAApqO,UAEAr9I,SACA+lX,YAIA,IAAAD,GACAhoL,MAAA3kL,EAAAuuW,EAAA,GACA3pL,MAAA5kL,EAAAuuW,EAAA,GACA5wW,KAAA,SAAA9W,EAAA2nX,EAAArB,GACA,QAAAtmX,EAAA,MAAAsmX,EAAA,GAAAqB,EAAA,MAAA3nX,EAAA,MAAAsmX,EAAA,GAAAqB,EAAA,QAAA3nX,EAAA,MAAAsmX,EAAA,GAAAqB,EAAA,MAAA3nX,EAAA,MAAAsmX,EAAA,GAAAqB,EAAA,SAEAj5W,QAAA,SAAA1O,EAAA2nX,EAAArB,GACA,OAAA79W,EAAAlpB,IAAAygB,EAAA,SAAAzkB,EAAA2zB,GACA,OAAA3zB,EAAA,GAAA+qY,EAAA,GAAAqB,EAAAz4W,GAAA,GAAA3zB,EAAA,GAAA+qY,EAAA,GAAAqB,EAAAz4W,GAAA,QAKA,SAAAw4W,EAAAD,EAAAznX,EAAA2nX,EAAArB,GACA,OAAAtmX,EAAA,GAAAsmX,EAAAmB,GAAAE,EAAA,GAAA3nX,EAAA,GAAAsmX,EAAAmB,GAAAE,EAAA,IAcA,SAAA1uL,EAAA8sL,GACA,OAAAA,KAAA,MAAAA,EAAA,MAAAA,EAAA,MAAAA,EAAA,QAAA1oO,SAGA,IAAAxrK,EAAAsqN,EACArqN,EAAAC,QAAAF,wBC7YA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAuDrB2D,EAAAC,QAnCA,SAAA0sE,EAAAmpU,GACAn/W,EAAA4E,KAAAu6W,EAAA,SAAAriV,GACAA,EAAApa,OAAA,aAOAn5C,EAAAs4D,eAAA/E,EAAA,SAAA/yB,EAAAjgC,GACA,IAAA+mB,KAiBA,OAhBA/mB,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA+Z,EACA9Z,MAAAnyB,GACO,SAAApI,GACPA,EAAAm7B,EAAAjoB,SACAlT,EAAAm7B,EAAAjoB,QAAA9K,EAAAhhC,KAAAghC,EAAAxF,WAGA,IAAAttB,EAAA0qB,EAAAtP,UAEApb,EAAA2tB,KAAA,SAAA6B,GACA,IAAA19B,EAAAkO,EAAAqzD,QAAA7jC,GACA5V,EAAA9nB,GAAA44B,EAAA+oC,WAAA3hE,KAAA,OAIAA,KAAAghC,EAAAhhC,KACA8nB,uCCnDA,IAAAyhC,EAAkB5sD,EAAQ,QAE1BysL,EAAuBzsL,EAAQ,QAE/Bs6B,EAAat6B,EAAQ,QAIrBqlL,EAFcrlL,EAAQ,QAEtBqlL,WAoBAq0N,EAAA9sV,EAAAziD,QACAlG,KAAA,eACAixB,cAAA,SAEAjW,KAAA,SAAAvB,GACAg8X,EAAAr0Y,WAAA5E,KAAA,OAAA8E,WAGA9E,KAAA+kL,mBAAA,WACA,OAAA/kL,KAAAosL,eAGAxjB,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAAqoL,EAAAhsL,MACA+2R,cAAA,aACAi4B,mBAAAv1Q,OAGAgtI,cAAA,SAAAroJ,GACA,IAAAttB,EAAA9Q,KAAAksB,UAEA4pT,EADA91U,KAAAquB,iBACAknT,mBACA3yU,EAAA5C,KAAAksB,UAAAi4C,QAAA/lC,GACA,OAAAwmJ,EAAA,KAAAhiL,EAAA5C,KAAA4C,QAAA,QAAAi3B,EAAAlpB,IAAAmlU,EAAA,SAAArgT,EAAA6K,GACA,IAAA/yB,EAAAuD,EAAA9M,IAAA8M,EAAA0tB,aAAA/I,EAAA4C,KAAA+F,GACA,OAAAwmJ,EAAAnvJ,EAAA7yB,KAAA,MAAA2K,KACKnH,KAAA,WAELsuB,eACAC,OAAA,EACAC,EAAA,EACAvG,iBAAA,QACA+vJ,iBAAA,EACAw1I,WAAA,EACAhzS,WACA5H,MAAA,EACAxV,KAAA,SAEAiP,OACArE,SAAA,OAKA4gB,OAAA,cACAC,WAAA,KAIAhsB,EAAAg2Y,EACA/1Y,EAAAC,QAAAF,wBC9Ec1D,EAAQ,QAEtBq6B,QAFA,IAIAuyB,EAAkB5sD,EAAQ,QAE1BklL,EAAWllL,EAAQ,QAEnBE,EAAYF,EAAQ,QAEpButO,EAAArtO,EAAAqtO,YACA78B,EAAAxwM,EAAAwwM,SACAt/L,EAAAlR,EAAAkR,IAIAi0K,EAFcrlL,EAAQ,QAEtBqlL,WAsBAs0N,GApBuB35Y,EAAQ,QAoB/B,oBAAA8nF,YAAAx7E,MAAAw7E,aACA8xT,EAAA,oBAAAjhH,aAAArsR,MAAAqsR,aAEA,SAAAkhH,EAAAhqN,GACA,IAAAt+K,EAAAs+K,EAAAt+K,KAEAA,KAAA,IAAAA,EAAA,OAAAA,EAAA,MAAAsxB,QACAgtJ,EAAAt+K,KAAAH,EAAAG,EAAA,SAAAmvV,GACA,IACA1/V,GACA42C,QAFA8oT,EAAA,GAAA79T,MAAA69T,EAAA,GAAA79T,QAaA,OARA69T,EAAA,GAAAr9V,OACArC,EAAA84Y,SAAAp5C,EAAA,GAAAr9V,MAGAq9V,EAAA,GAAAr9V,OACArC,EAAA+4Y,OAAAr5C,EAAA,GAAAr9V,MAGAqtM,GAAA1vM,EAAA0/V,EAAA,GAAAA,EAAA,QAKA,IAAAs5C,EAAAptV,EAAAziD,QACAlG,KAAA,eACAixB,cAAA,gBACAk0I,sBAAA,kBACAnqJ,KAAA,SAAAvB,GAEAA,EAAAnM,KAAAmM,EAAAnM,SAEAsoY,EAAAn8X,GAEA,IAAAlM,EAAA/Q,KAAAw5Y,wBAAAv8X,EAAAnM,MAEA9Q,KAAAy5Y,YAAA1oY,EAAA2oY,WACA15Y,KAAA25Y,kBAAA5oY,EAAA6oY,iBAEA7oY,EAAA2oY,aACAz8X,EAAAnM,KAAA,IAAAmkN,aAAAlkN,EAAAxO,QAGAg3Y,EAAA30Y,WAAA5E,KAAA,OAAA8E,YAEAsgL,YAAA,SAAAnoK,GAKA,GAHAA,EAAAnM,KAAAmM,EAAAnM,SACAsoY,EAAAn8X,GAEAA,EAAAnM,KAAA,CAEA,IAAAC,EAAA/Q,KAAAw5Y,wBAAAv8X,EAAAnM,MAEA9Q,KAAAy5Y,YAAA1oY,EAAA2oY,WACA15Y,KAAA25Y,kBAAA5oY,EAAA6oY,iBAEA7oY,EAAA2oY,aACAz8X,EAAAnM,KAAA,IAAAmkN,aAAAlkN,EAAAxO,QAIAg3Y,EAAA30Y,WAAA5E,KAAA,cAAA8E,YAEAo1D,WAAA,SAAAvoC,GACA,IAAA5gB,EAAA/Q,KAAAw5Y,wBAAA7nX,EAAA7gB,MAEAC,EAAA2oY,aACA15Y,KAAAy5Y,aAIAz5Y,KAAAy5Y,YAAA3sK,EAAA9sO,KAAAy5Y,YAAA1oY,EAAA2oY,YACA15Y,KAAA25Y,kBAAA7sK,EAAA9sO,KAAA25Y,kBAAA5oY,EAAA6oY,oBAJA55Y,KAAAy5Y,YAAA1oY,EAAA2oY,WACA15Y,KAAA25Y,kBAAA5oY,EAAA6oY,kBAMAjoX,EAAA7gB,KAAA,IAAAmkN,aAAAlkN,EAAAxO,QAGAvC,KAAAosL,aAAAlyH,WAAAvoC,EAAA7gB,OAEA+oY,wBAAA,SAAAv5W,GACA,IAAA4kC,EAAAllE,KAAAksB,UAAAi5C,aAAA7kC,GAEA,OADA4kC,EAAAjoD,kBAAApR,MAAAq5D,EAAAjoD,OAAAioD,EAAAG,WAAA,WAGA2vJ,mBAAA,SAAA10L,GACA,OAAAtgC,KAAA25Y,kBACA35Y,KAAA25Y,kBAAA,EAAAr5W,EAAA,GAEAtgC,KAAA65Y,wBAAAv5W,GAAAr/B,QAGAi0N,cAAA,SAAA50L,EAAA6J,GACA,GAAAnqC,KAAA25Y,kBAAA,CAIA,IAHA,IAAAj3W,EAAA1iC,KAAA25Y,kBAAA,EAAAr5W,GACAz+B,EAAA7B,KAAA25Y,kBAAA,EAAAr5W,EAAA,GAEAv/B,EAAA,EAAqBA,EAAAc,EAASd,IAC9BopC,EAAAppC,GAAAopC,EAAAppC,OACAopC,EAAAppC,GAAA,GAAAf,KAAAy5Y,YAAA/2W,EAAA,EAAA3hC,GACAopC,EAAAppC,GAAA,GAAAf,KAAAy5Y,YAAA/2W,EAAA,EAAA3hC,EAAA,GAGA,OAAAc,EAEA,IAAAs1C,EAAAn3C,KAAA65Y,wBAAAv5W,GAEA,IAAAv/B,EAAA,EAAqBA,EAAAo2C,EAAAl2C,OAAmBF,IACxCopC,EAAAppC,GAAAopC,EAAAppC,OACAopC,EAAAppC,GAAA,GAAAo2C,EAAAp2C,GAAA,GACAopC,EAAAppC,GAAA,GAAAo2C,EAAAp2C,GAAA,GAGA,OAAAo2C,EAAAl2C,QAGAu4Y,wBAAA,SAAA1oY,GACA,IAAAy/G,EAAA,EAQA,GANAvwH,KAAAy5Y,cACAlpR,EAAAvwH,KAAAy5Y,YAAAx4Y,QAKA,iBAAA6P,EAAA,IASA,IARA,IAAAjP,EAAAiP,EAAA7P,OAEA64Y,EAAA,IAAAZ,EAAAr3Y,GACAk4Y,EAAA,IAAAZ,EAAAt3Y,GACAm4Y,EAAA,EACAC,EAAA,EACA36G,EAAA,EAEAv+R,EAAA,EAAqBA,EAAAc,GAAS,CAC9By9R,IACA,IAAA/8R,EAAAuO,EAAA/P,KAEA+4Y,EAAAG,KAAAD,EAAAzpR,EAEAupR,EAAAG,KAAA13Y,EAEA,QAAAkmB,EAAA,EAAuBA,EAAAlmB,EAAWkmB,IAAA,CAClC,IAAApkB,EAAAyM,EAAA/P,KACAwD,EAAAuM,EAAA/P,KACAg5Y,EAAAC,KAAA31Y,EACA01Y,EAAAC,KAAAz1Y,GAMA,OACAq1Y,iBAAA,IAAAvyT,YAAAyyT,EAAAp1T,OAAA,EAAAu1T,GACAP,WAAAK,EACAx3Y,MAAA+8R,GAIA,OACAs6G,iBAAA,KACAF,WAAA,KACAn3Y,MAAAuO,EAAA7P,SAGA2nK,eAAA,SAAA3rJ,EAAAtZ,GACA,IAAAivL,EAAA,IAAAnO,GAAA,SAAAzkL,MAeA,OAdA4yL,EAAA5iH,eAAA,EACA4iH,EAAA3lG,SAAAhwE,EAAAnM,QAAA,SAAAspC,EAAAtY,EAAA1D,EAAAhG,GAEA,GAAAgiB,aAAAvuC,MACA,OAAA4iK,IAEAmkB,EAAA5iH,eAAA,EACA,IAAAzoE,EAAA6yC,EAAA7yC,MAEA,aAAAA,EACAA,aAAAsE,MAAAtE,EAAA6wB,GAAA7wB,OADA,IAKAqrL,GAEAnM,cAAA,SAAAroJ,GACA,IACA8mC,EADAllE,KAAAksB,UACAi5C,aAAA/mC,GACAx7B,EAAAsiE,EAAAlhE,IAAA,QAEA,GAAApB,EACA,OAAAA,EAGA,IAAAy2Y,EAAAn0U,EAAAlhE,IAAA,YACAs1Y,EAAAp0U,EAAAlhE,IAAA,UACA49C,KAGA,OAFA,MAAAy3V,GAAAz3V,EAAArgD,KAAA83Y,GACA,MAAAC,GAAA13V,EAAArgD,KAAA+3Y,GACA10N,EAAAhjI,EAAAx7C,KAAA,SAEAosO,mBAAA,WACA,QAAAxyO,KAAAgE,IAAA,gBAEAw1B,eAAA,WACA,IAAAmwI,EAAA3pK,KAAAid,OAAA0sJ,YAEA,aAAAA,EACA3pK,KAAAid,OAAAkxD,MAAA,IAAAnuE,KAAAgE,IAAA,eAGA2lK,GAEAlwI,wBAAA,WACA,IAAAC,EAAA15B,KAAAid,OAAAyc,qBAEA,aAAAA,EACA15B,KAAAid,OAAAkxD,MAAA,IAAAnuE,KAAAgE,IAAA,wBAGA01B,GAEAhF,eACArG,iBAAA,MACAsG,OAAA,EACAC,EAAA,EACAwpJ,iBAAA,EACAl7J,gBAAA,EAEAqP,WAAA,EACA1Q,WAAA,EACAmN,QAAA,eACAC,YAAA,OAEAygL,SAAA,EACAqW,QACA1gN,MAAA,EACA+tL,OAAA,EAKAC,cAAA,EACArkK,OAAA,SACAC,WAAA,EACA3uB,MAAA,EAEA4sE,YAAA,IAIAiB,OAAA,EAEAx0C,eAAA,IAGAiG,UAAA,EACAntB,OACApN,MAAA,EACA+I,SAAA,OAIAwS,WACA/N,QAAA,OAIA5P,EAAAs2Y,EACAr2Y,EAAAC,QAAAF,qCClTA,IAAA40N,EAAct4N,EAAQ,QACtBwhL,EAAWxhL,EAAQ,QACnBilD,EAAajlD,EAAQ,QACrB26Y,EAAyB36Y,EAAQ,QACjC46Y,EAAqB56Y,EAAQ,QAE7Bs4N,IAAAQ,EAAAR,EAAA5mL,EAAA,WAA2CmpW,QAAA,SAAAC,GAC3C,IAAApqW,EAAAiqW,EAAAl6Y,KAAA+gL,EAAAtyK,SAAA+1C,EAAA/1C,SACA9O,EAAA,mBAAA06Y,EACA,OAAAr6Y,KAAAmP,KACAxP,EAAA,SAAA0E,GACA,OAAA81Y,EAAAlqW,EAAAoqW,KAAAlrY,KAAA,WAA8D,OAAA9K,KACzDg2Y,EACL16Y,EAAA,SAAAwE,GACA,OAAAg2Y,EAAAlqW,EAAAoqW,KAAAlrY,KAAA,WAA8D,MAAAhL,KACzDk2Y,4BCjBL,IAAAxgX,EAAat6B,EAAQ,QAErB06B,EAAgB16B,EAAQ,QAoExB2D,EAAAC,QAhDA,SAAA8Z,IAUA,SAAAA,GACA,IAAAA,EAAA0yK,SAAA,CAIA,IAAA2qN,GAAA,EACAzgX,EAAA4E,KAAAxhB,EAAA3K,OAAA,SAAA88K,GACAA,GAAA,aAAAA,EAAA5rL,OACA82Y,GAAA,KAIAA,IACAr9X,EAAA0yK,gBAtBA4qN,CAAAt9X,GA+BA,SAAAA,GACA,IAAAwyK,EAAAx1J,EAAAi8B,iBAAAj5C,EAAAkvW,cACAtyV,EAAA4E,KAAAgxJ,EAAA,SAAA+qN,GACA,GAAA3gX,EAAAj6B,SAAA46Y,GAAA,CAIA,IAAAhxO,EAAAgxO,EAAAhxO,eAAA,EACAixO,EAAAxgX,EAAAi8B,iBAAAj5C,EAAA0yK,UAAAnmB,GAEAixO,KAAA5qN,qBACAh2J,EAAA82C,MAAA6pU,EAAAC,EAAA5qN,qBAAA,MAzCA6qN,CAAAz9X,0BCxBA,IAAAu3W,EAAkBj1X,EAAQ,QAE1BolN,EAAA,KAEA,SAAAg2L,EAAAplY,EAAAC,GACA,OAAAzN,KAAAY,IAAA4M,EAAAC,GAAAmvM,EA2BAxhN,EAAAunC,QAxBA,SAAAtN,EAAA/4B,EAAAE,GACA,IAAAw/G,EAAA,EACA7yE,EAAA9T,EAAA,GAEA,IAAA8T,EACA,SAGA,QAAAnwC,EAAA,EAAiBA,EAAAq8B,EAAAn8B,OAAmBF,IAAA,CACpC,IAAA85B,EAAAuC,EAAAr8B,GACAgjH,GAAAywQ,EAAAtjV,EAAA,GAAAA,EAAA,GAAArW,EAAA,GAAAA,EAAA,GAAAx2B,EAAAE,GACA2sC,EAAArW,EAIA,IAAA+S,EAAAxQ,EAAA,GAMA,OAJAu9W,EAAAzpW,EAAA,GAAAtD,EAAA,KAAA+sW,EAAAzpW,EAAA,GAAAtD,EAAA,MACAm2E,GAAAywQ,EAAAtjV,EAAA,GAAAA,EAAA,GAAAtD,EAAA,GAAAA,EAAA,GAAAvpC,EAAAE,IAGA,IAAAw/G,2BC7BA,IAAAioE,EAAuBzsL,EAAQ,QAE/Bs6B,EAAat6B,EAAQ,QAIrBigV,EAFuBjgV,EAAQ,QAE/BigV,uBAoBAxhK,GAKA48N,aAAA,KAKAhyO,eAAA,SAAA3rJ,EAAAtZ,GAIA,IAAA4qK,EAKAssO,EAJArwU,EAAA7mE,EAAAG,aAAA,QAAA9D,KAAAgE,IAAA,eACA0mE,EAAA/mE,EAAAG,aAAA,QAAA9D,KAAAgE,IAAA,eACAgR,EAAAw1D,EAAAxmE,IAAA,QACAiR,EAAAy1D,EAAA1mE,IAAA,QAIA,aAAAgR,GACAiI,EAAAqa,OAAA,aACAi3I,EAAA/jG,EAAA2mG,iBACA0pO,GAAA,GACK,aAAA5lY,GACLgI,EAAAqa,OAAA,WACAi3I,EAAA7jG,EAAAymG,iBACA0pO,GAAA,GAEA59X,EAAAqa,OAAAra,EAAAqa,QAAA,aAGA,IAAAorM,GAAA,SACAo4K,EAAA,eAAA79X,EAAAqa,OAAA,IACAm3Q,EAAAzuS,KAAA46Y,aAAAl4K,EAAAo4K,GACA3xU,EAAAu5J,EAAA,EAAAo4K,GACA7oM,GAAAznI,EAAAE,GACAqwU,EAAA9oM,EAAA6oM,GAAA92Y,IAAA,QACAg3Y,EAAA/oM,EAAA,EAAA6oM,GAAA92Y,IAAA,QACA8M,EAAAmM,EAAAnM,KAGA,GAAAA,GAAA+pY,EAAA,CACA,IAAAI,KACAphX,EAAA4E,KAAA3tB,EAAA,SAAAnE,EAAAC,GACA,IAAAmgX,EAEApgX,EAAApF,OAAAsyB,EAAA/tB,QAAAa,EAAApF,QACAwlX,EAAApgX,EAAApF,MAAAjF,QACAqK,EAAApF,MAAAo7B,QAAA/1B,IACSitB,EAAA/tB,QAAAa,IACTogX,EAAApgX,EAAArK,QACAqK,EAAAg2B,QAAA/1B,IAEAmgX,EAAApgX,EAGAsuY,EAAA15Y,KAAAwrX,KAEA9vW,EAAAnM,KAAAmqY,EAGA,IAAA/8N,EAAAl+K,KAAAk+K,uBACA,OAAA8N,EAAAhsL,MACAorL,kBACAxoL,KAAA6rS,EACAjrS,KAAAg8U,EAAAu7D,GACAxsO,cACA6qH,WACArjR,SAAA,EACAyU,SAAA,GAEAqkS,SAAA,UAEAjsT,KAAAumE,EACA3lE,KAAAg8U,EAAAw7D,GACAnsF,QAAA3wI,EAAA57K,UAEA+oL,gBAAAnN,EAAAj9K,OAAA,KAQA67B,YAAA,WACA,IAAAzE,EAAAr4B,KAAA46Y,aACA,OAAA56Y,KAAA2D,QAAAG,aAAAu0B,EAAA,OAAAr4B,KAAAgE,IAAAq0B,EAAA,cAAA5C,OAGAtyB,EAAA66K,yCCvHA,IAAAnkJ,EAAat6B,EAAQ,QAErB2sD,EAAqB3sD,EAAQ,QAE7B2wE,EAAuB3wE,EAAQ,QAE/B4wE,EAA2B5wE,EAAQ,QAoBnC6wE,EAAAlkB,EAAAxiD,QACAlG,KAAA,kBAKAiyB,KAAA,KAKAjX,KAAA,WACA4xD,EAAAxrE,WAAA5E,KAAA,OAAA8E,WACA9E,KAAA0sM,cAMAtnB,YAAA,WACAh1G,EAAAxrE,WAAA5E,KAAA,cAAA8E,WACA9E,KAAA0sM,cAMAn4I,YAAA,WACA6b,EAAAxrE,WAAA5E,KAAA,cAAA8E,WACA9E,KAAA0sM,cAOAjkI,iBAAA,WACA,OAAAzoE,KAAA2D,QAAAgyL,iBACArmI,SAAA,OACA1iD,MAAA5M,KAAAid,OAAA0V,UACAjxB,GAAA1B,KAAAid,OAAAi+X,SACK,MAIL,SAAApgG,EAAA9xI,EAAA/rJ,GAEA,OAAAA,EAAAzZ,OAAAyZ,EAAAnM,KAAA,oBAGA+oB,EAAA82C,MAAAP,EAAAlwE,UAAAiwE,GACA,IAAAgrU,GAIAz4W,OAAA,GAEAwtC,EAAA,IAAAE,EAAA0qO,EAAAqgG,GACAjrU,EAAA,IAAAE,EAAA0qO,EAAAqgG,GACA,IAAAl4Y,EAAAmtE,EACAltE,EAAAC,QAAAF,wBCtFA,IAoBAA,EApBoB1D,EAAQ,QAoB5BmK,QACAlG,KAAA,aAGAN,EAAAC,QAAAF,wBCxBA,IAAA42B,EAAat6B,EAAQ,QAErBs2T,EAAYt2T,EAAQ,QAEpBuhD,EAAcvhD,EAAQ,QAEtBwrC,EAAexrC,EAAQ,QAavB,SAAAyrC,EAAAngC,GAIA,QAAAjI,KAHAiI,QACAi2C,EAAAp1C,KAAA1L,KAAA6K,GAEAA,EACAA,EAAAhI,eAAAD,IAAA,UAAAA,IACA5C,KAAA4C,GAAAiI,EAAAjI,IAQA5C,KAAAuY,MAAA,IAAAs9S,EAAAhrT,EAAA0N,MAAAvY,MACAA,KAAA6nC,MAAA,KAEA7nC,KAAAs2K,eAIAtrI,EAAA9qC,WACAC,YAAA6qC,EACAxnC,KAAA,cAQA0xC,SAAA,EASAmiH,WAAA,EAOAziI,EAAA,EAOAwP,GAAA,EAQAzP,OAAA,EAQAsiI,WAAA,EAQAy3M,UAAA,EAQAvqU,QAAA,EAOA6zI,SAAA,EAOA5oJ,OAAA,UAOAmwS,WAAA,EAOA51J,aAAA,EAKAyG,aAAA,EAEAgrO,SAAA,EACAziO,YAAA,SAAA9yI,KACA+yI,WAAA,SAAA/yI,KAOAxrB,MAAA,SAAAwrB,EAAAyyI,KAOAxwI,gBAAA,aASA4C,QAAA,SAAArmC,EAAAE,GACA,OAAAvE,KAAAq7Y,YAAAh3Y,EAAAE,IAOAo0D,SAAA,SAAA2O,EAAAxZ,GACAwZ,EAAA57D,KAAAoiD,EAAA9tD,OAUAq7Y,YAAA,SAAAh3Y,EAAAE,GACA,IAAA69B,EAAApiC,KAAAmlN,sBAAA9gN,EAAAE,GAEA,OADAvE,KAAA8nC,kBACA4C,QAAAtI,EAAA,GAAAA,EAAA,KAOAhhC,MAAA,WACApB,KAAAk1C,SAAA,EACAl1C,KAAA6nC,MAAA,KACA7nC,KAAAW,MAAAX,KAAAW,KAAAylD,WAuBAokU,aAAA,SAAAlqX,GACA,OAAAN,KAAAI,QAAA,QAAAE,IAEAwrM,OAAA,SAAA/hM,EAAAxC,GACA,UAAAwC,EACA+2C,EAAA5gD,UAAA4rM,OAAApgM,KAAA1L,KAAA+J,EAAAxC,GAEAvH,KAAAuY,MAAAysC,IAAAz9C,IAQA+0C,SAAA,SAAAvyC,EAAAxC,GAGA,OAFAvH,KAAAuY,MAAAysC,IAAAj7C,EAAAxC,GACAvH,KAAAoB,OAAA,GACApB,MAOA+iC,SAAA,SAAA53B,GAGA,OAFAnL,KAAAuY,MAAA,IAAAs9S,EAAA1qT,EAAAnL,MACAA,KAAAoB,OAAA,GACApB,OAGA65B,EAAA2xB,SAAAxgB,EAAA8V,GACAjnB,EAAA8N,MAAAqD,EAAAD,GAEA,IAAA9nC,EAAA+nC,EACA9nC,EAAAC,QAAAF,wBC/PA1D,EAAQ,QAERA,EAAQ,8BCFR,IAAAs6B,EAAat6B,EAAQ,QAErB8rC,EAAe9rC,EAAQ,QAUvB+zV,EAAA,SAAAjvV,EAAAE,EAAAkT,EAAAyqB,EAAAquJ,GAIAvwL,KAAAqE,EAAA,MAAAA,EAAA,GAAAA,EACArE,KAAAuE,EAAA,MAAAA,EAAA,GAAAA,EACAvE,KAAAyX,EAAA,MAAAA,EAAA,GAAAA,EAEAzX,KAAAwD,KAAA,SAEAxD,KAAAwkD,OAAA+rI,IAAA,EACAllJ,EAAA3/B,KAAA1L,KAAAkiC,IAGAoxT,EAAApzV,WACAC,YAAAmzV,GAEAz5T,EAAA2xB,SAAA8nS,EAAAjoT,GACA,IAAApoC,EAAAqwV,EACApwV,EAAAC,QAAAF,wBC/BA,IAAA42B,EAAat6B,EAAQ,QAoBrB,SAAA26C,EAAAC,EAAAC,GAGA,OADAA,MAAA,KACAvgB,EAAAlpB,KAAA,kBAAA0nB,EAAAgiB,GACA,IAAA5kB,EAAAz1B,KAAA4sB,QAAAyL,GACA9qB,EAAA6sC,EAAAC,GACAC,EAAAH,EAAAE,GAAA,EACA,mBAAA5kB,EAAAjyB,KAAAiyB,EAAA0D,eAAApxB,KAAAY,IAAA8sB,EAAAqB,YAAAvpB,EAAA+sC,GAAA7kB,EAAAqB,YAAAvpB,EAAA+sC,KACGt6C,MAwBHkD,EAAAC,QArBA,SAAAk4B,GACA,IAAA6M,EAAA7M,EAAA11B,KAAA49D,UACA,OACAloC,UAEA73B,KAAA,cACAa,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACAyU,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,QAEArV,KACAw+B,MAAA,SAAAtxB,GAEA,OAAAuqB,EAAA4O,YAAAn5B,IAEA+gB,KAAAgI,EAAArvB,KAAA0vC,EAAA7e,4BC/Cc97B,EAAQ,QAoBtBm8D,gBACAl4D,KAAA,WACA+zD,MAAA,WAEAhb,OAAA,UACC,SAAA3Y,EAAAjgC,GACDA,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA,SACAC,MAAAnyB,GACG,SAAApI,GACHA,EAAAy4R,gBAAArwR,EAAAxF,WAAAwF,EAAAssM,OAAAtsM,EAAAusM,mCC/BA,IAEAusG,EAFan9U,EAAQ,QAErBm9U,sBA8BAv5U,EAAAosE,cAfA,SAAAx+B,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAA/Q,EAAA14B,EAAAE,GACA,OAAAw4B,EACA,SAGA,IAAA0yC,EAAA1yC,EAEA,QAAAx4B,EAAAysC,EAAAy+B,GAAAlrE,EAAAmsC,EAAA++B,GAAAlrE,EAAAupC,EAAA2hC,GAAAlrE,EAAAysC,EAAAy+B,GAAAlrE,EAAAmsC,EAAA++B,GAAAlrE,EAAAupC,EAAA2hC,GAAAprE,EAAA0sC,EAAA0+B,GAAAprE,EAAAosC,EAAAg/B,GAAAprE,EAAAwpC,EAAA4hC,GAAAprE,EAAA0sC,EAAA0+B,GAAAprE,EAAAosC,EAAAg/B,GAAAprE,EAAAwpC,EAAA4hC,IAIAitQ,EAAA3rS,EAAAC,EAAAP,EAAAC,EAAA7C,EAAAC,EAAAzpC,EAAAE,EAAA,OACAkrE,EAAA,yBC7BA,IAsFAxsE,EAtFoB1D,EAAQ,QAoB5BmK,QACAlG,KAAA,kBACAqxL,WAAA,MAKAngK,eACArvB,MAAA,EAGAS,MAAA,KAEAkM,IAAA,KAEAgH,MAAA,KAEAC,OAAA,KAEApT,KAAA,KAEAiP,OAAA,KAEA2F,gBAAA,mBAKA6gY,gBACA16X,WACAza,MAAA,UACA6S,MAAA,GACAnG,QAAA,IAEAgO,WACA1a,MAAA,qBACA0M,QAAA,KAGAkgB,YAAA,OAIAwoX,YAAA,wBAIAC,WAAA,0HAEAhgF,WAAA,OACAigF,aACAt1Y,MAAA,WAEAowR,eAAA,KACApkH,eAAA,KACAupO,YAAA,EACArnH,eAAA,OAEAvjN,UAAA,EACA2vG,UAAA,EAEA/lK,WACAvU,MAAA,WAKAjD,EAAAC,QAAAF,wBCrFA,IAAA2jD,EAAernD,EAAQ,QAgBvB2D,EAAAC,QAAA,SAAAlB,EAAA05Y,EAAAx5Y,GACA,YAAAuL,IAAAvL,EAAAykD,EAAA3kD,EAAA05Y,GAAA,GAAA/0V,EAAA3kD,EAAAE,GAAA,IAAAw5Y,0BCnBA,IAAAl8Y,EAAYF,EAAQ,QAEpBw1D,EAAAt1D,EAAAs1D,cACAt2B,EAAAh/B,EAAAg/B,KAuDA,SAAAm9W,EAAAC,GACAp9W,EAAAo9W,EAAA,SAAAC,EAAAC,GACA,IAAAC,KACAC,GAAAxtO,SACA/9J,GAAAorY,EAAAv6C,qBAAAu6C,EAAAhtG,sBACAotG,EAAAJ,EAAAhrY,KACAkxV,EAAA85C,EAAA95C,iBAGAhlQ,EAAAk/S,EAAAvrY,IAAAD,EAAA,SAAAg/Q,EAAA5C,EAAA1uP,GACA,IAOA+9W,EACAC,EARA93X,EAAA43X,EAAAl4Y,IAAA83Y,EAAAh6C,iBAAA1jU,GAGA,GAAA3zB,MAAA6Z,GACA,OAAA23X,EAMAj6C,EACAo6C,EAAAF,EAAA3yO,YAAAnrI,GAEA+9W,EAAAD,EAAAl4Y,IAAA83Y,EAAA/5C,mBAAA3jU,GAMA,IAFA,IAAAi+W,EAAA5tO,IAEAv7I,EAAA6oX,EAAA,EAAkC7oX,GAAA,EAAQA,IAAA,CAC1C,IAAAopX,EAAAT,EAAA3oX,GAMA,GAJA8uU,IACAo6C,EAAAE,EAAAxrY,KAAAutR,WAAAi+G,EAAAv6C,mBAAAo6C,IAGAC,GAAA,GACA,IAAA7uY,EAAA+uY,EAAAxrY,KAAA0sR,cAAA8+G,EAAA/6C,qBAAA66C,GAEA,GAAA93X,GAAA,GAAA/W,EAAA,GACA+W,GAAA,GAAA/W,EAAA,EACA,CACA+W,GAAA/W,EACA8uY,EAAA9uY,EACA,QAOA,OAFAyuY,EAAA,GAAA13X,EACA03X,EAAA,GAAAK,EACAL,IAEAE,EAAA73W,UAAA04I,QAAA//E,GAEA8+S,EAAAhrY,KAAAksF,IAIA95F,EAAAC,QAzFA,SAAAQ,GACA,IAAA44Y,EAAAxnV,IACApxD,EAAAqxD,WAAA,SAAAx5B,GACA,IAAA1tB,EAAA0tB,EAAAx3B,IAAA,SAEA,GAAA8J,EAAA,CACA,IAAA+tY,EAAAU,EAAAv4Y,IAAA8J,IAAAyuY,EAAAv3V,IAAAl3C,MACAgD,EAAA0qB,EAAAtP,UACAowX,GAEA/6C,qBAAAzwV,EAAAyyB,mBAAA,wBACAurQ,qBAAAh+R,EAAAyyB,mBAAA,wBACAu+T,iBAAAhxV,EAAAyyB,mBAAA,oBACAw+T,mBAAAjxV,EAAAyyB,mBAAA,sBACAy+T,iBAAAlxV,EAAAyyB,mBAAA,oBACAzyB,OACA0qB,eAGA,IAAA8gX,EAAAx6C,mBAAAw6C,EAAAt6C,mBAAAs6C,EAAAv6C,mBACA,OAGA85C,EAAA56Y,QAAA6P,EAAAmtR,mBAAA,kBAAA49G,IAAA56Y,OAAA,GAAAu6B,aACAqgX,EAAAt6Y,KAAA+6Y,MAGAC,EAAA99W,KAAAm9W,0BCvDA,IAEApwV,EAFYjsD,EAAQ,QAEpBisD,SAEAgxV,EAAiBj9Y,EAAQ,QAEzBsnC,EAAmBtnC,EAAQ,QAU3B,SAAAk9Y,EAAA5xY,GACA2xY,EAAA9wY,KAAA1L,KAAA6K,GACA7K,KAAAsyR,iBACAtyR,KAAA08Y,0BACA18Y,KAAA28Y,QAAA,EACA38Y,KAAA03K,UAAA,EAGA+kO,EAAAv8Y,UAAAkwK,aAAA,EAEAqsO,EAAAv8Y,UAAA47M,iBAAA,WACA97M,KAAAsyR,iBACAtyR,KAAA08Y,0BACA18Y,KAAA28Y,QAAA,EACA38Y,KAAAoB,QACApB,KAAA03K,UAAA,GAGA+kO,EAAAv8Y,UAAA+0W,eAAA,SAAAl8S,EAAA6jV,GACAA,EACA58Y,KAAA08Y,uBAAAn7Y,KAAAw3D,GAEA/4D,KAAAsyR,cAAA/wR,KAAAw3D,GAGA/4D,KAAAoB,SAGAq7Y,EAAAv8Y,UAAA28Y,gBAAA,SAAAC,EAAAF,GACAA,MAAA,EAEA,QAAA77Y,EAAA,EAAiBA,EAAA+7Y,EAAA77Y,OAAyBF,IAC1Cf,KAAAi1W,eAAA6nC,EAAA/7Y,GAAA67Y,IAIAH,EAAAv8Y,UAAA44D,uBAAA,SAAAwO,GACA,QAAAvmE,EAAAf,KAAA28Y,QAA4B57Y,EAAAf,KAAAsyR,cAAArxR,OAA+BF,IAC3DumE,KAAAtnE,KAAAsyR,cAAAvxR,IAGA,IAAAA,EAAA,EAAiBA,EAAAf,KAAA08Y,uBAAAz7Y,OAAwCF,IACzDumE,KAAAtnE,KAAA08Y,uBAAA37Y,KAIA07Y,EAAAv8Y,UAAAq8C,OAAA,WACAv8C,KAAAwpC,kBAEA,QAAAzoC,EAAAf,KAAA28Y,QAA4B57Y,EAAAf,KAAAsyR,cAAArxR,OAA+BF,IAAA,EAC3Dg4D,EAAA/4D,KAAAsyR,cAAAvxR,IAEAwoC,OAAAvpC,KACA+4D,EAAAxc,SACAwc,EAAAxvB,OAAA,KAGA,IAAAxoC,EAAA,EAAiBA,EAAAf,KAAA08Y,uBAAAz7Y,OAAwCF,IAAA,CACzD,IAAAg4D,KAAA/4D,KAAA08Y,uBAAA37Y,IAEAwoC,OAAAvpC,KACA+4D,EAAAxc,SACAwc,EAAAxvB,OAAA,OAIAkzW,EAAAv8Y,UAAAma,MAAA,SAAAwrB,EAAAyyI,GAEA,QAAAv3K,EAAAf,KAAA28Y,QAA4B57Y,EAAAf,KAAAsyR,cAAArxR,OAA+BF,IAAA,EAC3Dg4D,EAAA/4D,KAAAsyR,cAAAvxR,IACA43K,aAAA5/G,EAAA4/G,YAAA9yI,GACAkzB,EAAA1+C,MAAAwrB,EAAA9kC,IAAAf,KAAA28Y,QAAA,KAAA38Y,KAAAsyR,cAAAvxR,EAAA,IACAg4D,EAAA6/G,YAAA7/G,EAAA6/G,WAAA/yI,GAGA7lC,KAAA28Y,QAAA57Y,EAEA,IAAAA,EAAA,EAAiBA,EAAAf,KAAA08Y,uBAAAz7Y,OAAwCF,IAAA,CACzD,IAAAg4D,KAAA/4D,KAAA08Y,uBAAA37Y,IACA43K,aAAA5/G,EAAA4/G,YAAA9yI,GACAkzB,EAAA1+C,MAAAwrB,EAAA,IAAA9kC,EAAA,KAAAf,KAAA08Y,uBAAA37Y,EAAA,IACAg4D,EAAA6/G,YAAA7/G,EAAA6/G,WAAA/yI,GAGA7lC,KAAA08Y,0BACA18Y,KAAA03K,UAAA,GAGA,IAAA/qJ,KAEA8vX,EAAAv8Y,UAAA4nC,gBAAA,WACA,IAAA9nC,KAAA6nC,MAAA,CAGA,IAFA,IAAAK,EAAA,IAAArB,EAAA4S,mBAEA14C,EAAA,EAAmBA,EAAAf,KAAAsyR,cAAArxR,OAA+BF,IAAA,CAClD,IAAAg4D,EAAA/4D,KAAAsyR,cAAAvxR,GACAqsX,EAAAr0T,EAAAjxB,kBAAAkC,QAEA+uB,EAAA+rJ,sBACAsoK,EAAApmV,eAAA+xB,EAAA/vB,kBAAArc,IAGAub,EAAAmrI,MAAA+5M,GAGAptX,KAAA6nC,MAAAK,EAGA,OAAAloC,KAAA6nC,OAGA40W,EAAAv8Y,UAAAwqC,QAAA,SAAArmC,EAAAE,GACA,IAAA8pT,EAAAruT,KAAAmlN,sBAAA9gN,EAAAE,GAGA,GAFAvE,KAAA8nC,kBAEA4C,QAAA2jR,EAAA,GAAAA,EAAA,IACA,QAAAttT,EAAA,EAAmBA,EAAAf,KAAAsyR,cAAArxR,OAA+BF,IAAA,CAGlD,GAFAf,KAAAsyR,cAAAvxR,GAEA2pC,QAAArmC,EAAAE,GACA,SAKA,UAGAinD,EAAAixV,EAAAD,GACA,IAAAv5Y,EAAAw5Y,EACAv5Y,EAAAC,QAAAF,sBClJA,IAAAvB,EAAA,EACA+zS,EAAA1tS,KAAAstK,SACAnyK,EAAAC,QAAA,SAAA4G,GACA,gBAAAgL,YAAArH,IAAA3D,EAAA,GAAAA,EAAA,QAAArI,EAAA+zS,GAAA7tS,SAAA,4BCHA,IAAA4S,EAAcjb,EAAQ,QAEtBmzL,EAAWnzL,EAAQ,QAwBnBw9Y,EAAAviY,EAAAqyD,KAAA3sE,UACA88Y,EAAAxiY,EAAA6pL,YAAAnkM,UAEA,SAAA+8Y,EAAAl1X,GACA,OAAAtd,OAAAsd,EAAAy8K,OAAA/5L,OAAAsd,EAAA08K,MAGA,IAAAxhM,EAAAuX,EAAA40N,aACA5rO,KAAA,UACA+U,OACA2qB,OAAA,OACAxrB,KAAA,MAEAqQ,OACA0oB,GAAA,EACAC,GAAA,EACA7C,GAAA,EACAC,GAAA,EACA1pB,QAAA,EACAogL,KAAA,KACAC,KAAA,MAEA/0J,UAAA,SAAA7J,EAAA9d,IACAk1X,EAAAl1X,GAAAg1X,EAAAC,GAAAttW,UAAA7J,EAAA9d,IAEA6wL,QAAA,SAAAnwH,GACA,OAAAw0T,EAAAj9Y,KAAA+nB,OAAAg1X,EAAAnkM,QAAAltM,KAAA1L,KAAAyoF,GAAAu0T,EAAApkM,QAAAltM,KAAA1L,KAAAyoF,IAEAswH,UAAA,SAAAtwH,GACA,IAAA1gE,EAAA/nB,KAAA+nB,MACAmpB,EAAA+rW,EAAAl1X,MAAA8lB,GAAA9lB,EAAA0oB,GAAA1oB,EAAA+lB,GAAA/lB,EAAA2oB,IAAAssW,EAAAjkM,UAAArtM,KAAA1L,KAAAyoF,GACA,OAAAiqG,EAAA/iH,UAAAz+B,QAIAhuC,EAAAC,QAAAF,wBC7DA,IAAA4nC,EAAkBtrC,EAAQ,QAE1B02M,EAAkB12M,EAAQ,QAoB1B29Y,GAAA,qBACAj6Y,GAMAwyJ,aAAA,SAAAggM,GACA,IAAA9xV,EAAA3D,KAAA2D,QACA,OAAA3D,KAAAqlE,WAAA,YAAAowR,GAAA9xV,IAAAK,IAAAk5Y,GAAA,OAOA1nP,QAAA,WACA,OAAAygD,EAAAzgD,SACA5/G,UAAA51C,KAAAqlE,WAAA,aACApvB,WAAAj2C,KAAAqlE,WAAA,cACAxvC,SAAA71B,KAAAqlE,WAAA,YACAvvB,WAAA91C,KAAAqlE,WAAA,eACKrlE,KAAA2D,UAELyyJ,YAAA,SAAA/kH,GACA,OAAAxG,EAAA/C,gBAAAuJ,EAAArxC,KAAAw1J,UAAAx1J,KAAAqlE,WAAA,SAAArlE,KAAAqlE,WAAA,kBAAArlE,KAAAqlE,WAAA,YAAArlE,KAAAqlE,WAAA,WAAArlE,KAAAqlE,WAAA,QAAArlE,KAAAqlE,WAAA,mBAGAniE,EAAAC,QAAAF,sBCHAC,EAAAC,QA7BA,SAAAQ,GACAA,EAAAikM,iBAAA,iBAAApsK,GACA,IAAA1qB,EAAA0qB,EAAAtP,UACAkR,KACA/B,EAAAG,EAAAnN,iBAEA,GAAAgN,EAAA,CAWA,IAFA,IAAAo0J,EAAAp0J,EAAAk6S,mBAEAx0U,EAAA,EAAmBA,EAAA0uL,EAAAxuL,OAAiBF,IACpC+P,EAAA2tB,KAAA3tB,EAAA0tB,aAAAixJ,EAAA1uL,GAAAs3B,KAAA8kX,GAGArsY,EAAA2tB,KAAA,SAAA6B,GAEAlD,EAAAkD,GAAA,IAAAlD,EAAAkD,GAAA/+B,KAAA67B,EAAAkD,GAAA,GAAAh+B,SACAwO,EAAA64K,cAAArpJ,EAAAlD,EAAAkD,MAdA,SAAA68W,EAAA5vY,EAAA+yB,GACAlD,EAAAkD,GAAAlD,EAAAkD,OACAlD,EAAAkD,GAAAv/B,GAAAs6B,EAAA4O,YAAA18B,EAAAxM,0CC7BA,IAwBAq8Y,EAAAC,EAAAC,EAAAC,EAxBAzvN,EAAcvuL,EAAQ,QACtBilD,EAAajlD,EAAQ,QACrBsmC,EAAUtmC,EAAQ,QAClBm7U,EAAcn7U,EAAQ,QACtBs4N,EAAct4N,EAAQ,QACtBK,EAAeL,EAAQ,QACvBi0U,EAAgBj0U,EAAQ,QACxBi+Y,EAAiBj+Y,EAAQ,QACzBk+Y,EAAYl+Y,EAAQ,QACpB26Y,EAAyB36Y,EAAQ,QACjCsxO,EAAWtxO,EAAQ,QAASylD,IAC5B04V,EAAgBn+Y,EAAQ,OAARA,GAChBo+Y,EAAiCp+Y,EAAQ,QACzCi5D,EAAcj5D,EAAQ,QACtBu/C,EAAgBv/C,EAAQ,QACxB46Y,EAAqB56Y,EAAQ,QAE7BykD,EAAAQ,EAAAR,UACAg5K,EAAAx4K,EAAAw4K,QACA4gG,EAAA5gG,KAAA4gG,SACAggF,EAAAhgF,KAAAggF,IAAA,GACAC,EAAAr5V,EAAA,QACAsnP,EAAA,WAAA4uC,EAAA19G,GACAlkF,EAAA,aAEAw1I,EAAA+uH,EAAAM,EAAA36V,EAEA01P,IAAA,WACA,IAEA,IAAA94O,EAAAi+U,EAAAnvY,QAAA,GACAovY,GAAAl+U,EAAAz/D,gBAAiDZ,EAAQ,OAARA,CAAgB,qBAAA4iF,GACjEA,EAAA22D,MAGA,OAAAgzJ,GAAA,mBAAAiyG,wBACAn+U,EAAAzwD,KAAA2pI,aAAAglQ,GAIA,IAAAF,EAAA99Y,QAAA,SACA,IAAAg/C,EAAAh/C,QAAA,aACG,MAAAqE,KAfH,GAmBA65Y,EAAA,SAAAt9U,GACA,IAAAvxD,EACA,SAAAvP,EAAA8gE,IAAA,mBAAAvxD,EAAAuxD,EAAAvxD,WAEAy0O,EAAA,SAAAhkL,EAAAq+U,GACA,IAAAr+U,EAAA8xL,GAAA,CACA9xL,EAAA8xL,IAAA,EACA,IAAA+yB,EAAA7kN,EAAA1oD,GACAwmY,EAAA,WAoCA,IAnCA,IAAAn2Y,EAAAq4D,EAAA/nD,GACAqmY,EAAA,GAAAt+U,EAAAwkG,GACArjK,EAAA,EACAy8N,EAAA,SAAA2gL,GACA,IAIAptY,EAAA5B,EAAAivY,EAJA3iY,EAAAyiY,EAAAC,EAAAD,GAAAC,EAAAE,KACA3vY,EAAAyvY,EAAAzvY,QACAC,EAAAwvY,EAAAxvY,OACAo9R,EAAAoyG,EAAApyG,OAEA,IACAtwR,GACAyiY,IACA,GAAAt+U,EAAA5oD,IAAAsnY,EAAA1+U,GACAA,EAAA5oD,GAAA,IAEA,IAAAyE,EAAA1K,EAAAxJ,GAEAwkS,KAAAhlC,QACAh2P,EAAA0K,EAAAlU,GACAwkS,IACAA,EAAAjB,OACAszG,GAAA,IAGArtY,IAAAotY,EAAAv+U,QACAjxD,EAAAq1C,EAAA,yBACW70C,EAAA6uY,EAAAjtY,IACX5B,EAAAzD,KAAAqF,EAAArC,EAAAC,GACWD,EAAAqC,IACFpC,EAAApH,GACF,MAAApD,GACP4nS,IAAAqyG,GAAAryG,EAAAjB,OACAn8R,EAAAxK,KAGAsgR,EAAAxjR,OAAAF,GAAAy8N,EAAAinD,EAAA1jR,MACA6+D,EAAA1oD,MACA0oD,EAAA8xL,IAAA,EACAusJ,IAAAr+U,EAAA5oD,IAAAunY,EAAA3+U,OAGA2+U,EAAA,SAAA3+U,GACAixK,EAAAnlO,KAAA84C,EAAA,WACA,IAEAzzC,EAAA0K,EAAAhG,EAFAlO,EAAAq4D,EAAA/nD,GACA2mY,EAAAC,EAAA7+U,GAeA,GAbA4+U,IACAztY,EAAAynD,EAAA,WACAszO,EACA9uE,EAAA13I,KAAA,qBAAA/9E,EAAAq4D,IACSnkD,EAAA+oC,EAAAk6V,sBACTjjY,GAAmBmkD,UAAAG,OAAAx4D,KACVkO,EAAA+uC,EAAA/uC,YAAAslE,OACTtlE,EAAAslE,MAAA,8BAAAxzE,KAIAq4D,EAAA5oD,GAAA80R,GAAA2yG,EAAA7+U,GAAA,KACKA,EAAAs3J,QAAAxpN,EACL8wY,GAAAztY,EAAA5M,EAAA,MAAA4M,EAAAhE,KAGA0xY,EAAA,SAAA7+U,GACA,WAAAA,EAAA5oD,IAAA,KAAA4oD,EAAAs3J,IAAAt3J,EAAA1oD,IAAAjW,QAEAq9Y,EAAA,SAAA1+U,GACAixK,EAAAnlO,KAAA84C,EAAA,WACA,IAAA/oC,EACAqwR,EACA9uE,EAAA13I,KAAA,mBAAA1lB,IACKnkD,EAAA+oC,EAAAm6V,qBACLljY,GAAemkD,UAAAG,OAAAH,EAAA/nD,QAIf+mY,EAAA,SAAAr3Y,GACA,IAAAq4D,EAAA5/D,KACA4/D,EAAAi/U,KACAj/U,EAAAi/U,IAAA,GACAj/U,IAAAk/U,IAAAl/U,GACA/nD,GAAAtQ,EACAq4D,EAAAwkG,GAAA,EACAxkG,EAAAs3J,KAAAt3J,EAAAs3J,GAAAt3J,EAAA1oD,GAAA5U,SACAshP,EAAAhkL,GAAA,KAEAm/U,EAAA,SAAAx3Y,GACA,IACA4H,EADAywD,EAAA5/D,KAEA,IAAA4/D,EAAAi/U,GAAA,CACAj/U,EAAAi/U,IAAA,EACAj/U,IAAAk/U,IAAAl/U,EACA,IACA,GAAAA,IAAAr4D,EAAA,MAAAy8C,EAAA,qCACA70C,EAAA6uY,EAAAz2Y,IACAm2Y,EAAA,WACA,IAAAsB,GAAuBF,GAAAl/U,EAAAi/U,IAAA,GACvB,IACA1vY,EAAAzD,KAAAnE,EAAAs+B,EAAAk5W,EAAAC,EAAA,GAAAn5W,EAAA+4W,EAAAI,EAAA,IACS,MAAA76Y,GACTy6Y,EAAAlzY,KAAAszY,EAAA76Y,OAIAy7D,EAAA/nD,GAAAtQ,EACAq4D,EAAAwkG,GAAA,EACAw/E,EAAAhkL,GAAA,IAEG,MAAAz7D,GACHy6Y,EAAAlzY,MAAkBozY,GAAAl/U,EAAAi/U,IAAA,GAAyB16Y,MAK3Cu0S,IAEAmlG,EAAA,SAAAn+U,GACA89U,EAAAx9Y,KAAA69Y,EA3JA,UA2JA,MACArqE,EAAA9zQ,GACA09U,EAAA1xY,KAAA1L,MACA,IACA0/D,EAAA75B,EAAAk5W,EAAA/+Y,KAAA,GAAA6lC,EAAA+4W,EAAA5+Y,KAAA,IACK,MAAAylF,GACLm5T,EAAAlzY,KAAA1L,KAAAylF,MAIA23T,EAAA,SAAA19U,GACA1/D,KAAAkX,MACAlX,KAAAk3N,QAAAxpN,EACA1N,KAAAokK,GAAA,EACApkK,KAAA6+Y,IAAA,EACA7+Y,KAAA6X,QAAAnK,EACA1N,KAAAgX,GAAA,EACAhX,KAAA0xP,IAAA,IAEAxxP,UAAuBX,EAAQ,OAARA,CAAyBs+Y,EAAA39Y,WAEhDiP,KAAA,SAAA8vY,EAAAC,GACA,IAAAf,EAAA7vH,EAAA4rH,EAAAl6Y,KAAA69Y,IAOA,OANAM,EAAAD,GAAA,mBAAAe,KACAd,EAAAE,KAAA,mBAAAa,KACAf,EAAApyG,OAAAD,EAAA9uE,EAAA+uE,YAAAr+R,EACA1N,KAAAkX,GAAA3V,KAAA48Y,GACAn+Y,KAAAk3N,IAAAl3N,KAAAk3N,GAAA31N,KAAA48Y,GACAn+Y,KAAAokK,IAAAw/E,EAAA5jP,MAAA,GACAm+Y,EAAAv+U,SAGAqsB,MAAA,SAAAizT,GACA,OAAAl/Y,KAAAmP,UAAAzB,EAAAwxY,MAGA5B,EAAA,WACA,IAAA19U,EAAA,IAAAw9U,EACAp9Y,KAAA4/D,UACA5/D,KAAA0O,QAAAm3B,EAAAk5W,EAAAn/U,EAAA,GACA5/D,KAAA2O,OAAAk3B,EAAA+4W,EAAAh/U,EAAA,IAEA+9U,EAAA36V,EAAAsrO,EAAA,SAAAr+O,GACA,OAAAA,IAAA4tW,GAAA5tW,IAAAstW,EACA,IAAAD,EAAArtW,GACAotW,EAAAptW,KAIA4nL,IAAAK,EAAAL,EAAAY,EAAAZ,EAAAG,GAAA0gF,GAA0DjqS,QAAAovY,IAC1Dt+Y,EAAQ,OAARA,CAA8Bs+Y,EA7M9B,WA8MAt+Y,EAAQ,OAARA,CA9MA,WA+MAg+Y,EAAUh+Y,EAAQ,QAAS,QAG3Bs4N,IAAA33D,EAAA23D,EAAAG,GAAA0gF,EAlNA,WAoNA/pS,OAAA,SAAA8I,GACA,IAAA0nY,EAAA7wH,EAAAtuR,MAGA,OADAg+V,EADAmhD,EAAAxwY,QACA8I,GACA0nY,EAAAv/U,WAGAi4J,IAAA33D,EAAA23D,EAAAG,GAAAlqC,IAAA4qH,GA3NA,WA6NAhqS,QAAA,SAAArK,GACA,OAAA81Y,EAAArsN,GAAA9tL,OAAAu9Y,EAAAM,EAAA79Y,KAAAqE,MAGAwzN,IAAA33D,EAAA23D,EAAAG,IAAA0gF,GAAgDn5S,EAAQ,OAARA,CAAwB,SAAAu8L,GACxE+hN,EAAA1+U,IAAA28H,GAAA,MAAAhjD,MAlOA,WAqOA35E,IAAA,SAAAw+T,GACA,IAAA1tV,EAAAjwC,KACAm/Y,EAAA7wH,EAAAr+O,GACAvhC,EAAAywY,EAAAzwY,QACAC,EAAAwwY,EAAAxwY,OACAoC,EAAAynD,EAAA,WACA,IAAApnC,KACAxkB,EAAA,EACA6+R,EAAA,EACAgyG,EAAA9f,GAAA,WAAA/9T,GACA,IAAAw/U,EAAAxyY,IACAyyY,GAAA,EACAjuX,EAAA7vB,UAAAmM,GACA+9R,IACAx7P,EAAAvhC,QAAAkxD,GAAAzwD,KAAA,SAAA5H,GACA83Y,IACAA,GAAA,EACAjuX,EAAAguX,GAAA73Y,IACAkkS,GAAA/8R,EAAA0iB,KACSziB,OAET88R,GAAA/8R,EAAA0iB,KAGA,OADArgB,EAAA5M,GAAAwK,EAAAoC,EAAAhE,GACAoyY,EAAAv/U,SAGA0/U,KAAA,SAAA3hB,GACA,IAAA1tV,EAAAjwC,KACAm/Y,EAAA7wH,EAAAr+O,GACAthC,EAAAwwY,EAAAxwY,OACAoC,EAAAynD,EAAA,WACAilV,EAAA9f,GAAA,WAAA/9T,GACA3vB,EAAAvhC,QAAAkxD,GAAAzwD,KAAAgwY,EAAAzwY,QAAAC,OAIA,OADAoC,EAAA5M,GAAAwK,EAAAoC,EAAAhE,GACAoyY,EAAAv/U,iCC3RA,IAAA/lC,EAAat6B,EAAQ,QAmDrB2D,EAAAC,QA7BA,SAAAotM,GAEA,QAAAxvM,EAAA,EAAiBA,EAAAwvM,EAAAtvM,OAAuBF,IACxCwvM,EAAAxvM,GAAA,KACAwvM,EAAAxvM,GAAA,GAAAwvM,EAAAxvM,GAAA,IAIA,gBAAAw2B,EAAA4kK,EAAAC,GAGA,IAFA,IAAA7jL,KAEAxX,EAAA,EAAmBA,EAAAwvM,EAAAtvM,OAAuBF,IAAA,CAC1C,IAAA+kC,EAAAyqK,EAAAxvM,GAAA,GAEA,KAAAo7L,GAAAtiK,EAAA/5B,QAAAq8L,EAAAr2J,IAAA,GAAAs2J,GAAAviK,EAAA/5B,QAAAs8L,EAAAt2J,GAAA,IAIA,IAAAv4B,EAAAgqB,EAAA8tC,WAAAv/B,GAEA,MAAAv4B,IACAgL,EAAAg4L,EAAAxvM,GAAA,IAAAwM,IAIA,OAAAgL,0BC/CAhZ,EAAQ,QACRA,EAAQ,QACR2D,EAAAC,QAAiB5D,EAAQ,QAAqBsM,MAAAE,2BCF9C,IAAA8tB,EAAat6B,EAAQ,QAErBsnC,EAAmBtnC,EAAQ,QAE3BqnC,EAAarnC,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtB+3B,EAAa/3B,EAAQ,QAErBggZ,EAAmBhgZ,EAAQ,QAE3B6rD,EAAmB7rD,EAAQ,QAI3BkzL,EAFclzL,EAAQ,QAEtBkzL,aAEA5vH,EAAiBtjE,EAAQ,QAEzBm4C,EAAiBn4C,EAAQ,QAIzBqlL,EAFcrlL,EAAQ,QAEtBqlL,WAoBAp6K,EAAAqvB,EAAArvB,KACAi0B,EAAA5E,EAAA4E,KACA1G,EAAAhwB,KAAAgwB,GAEA90B,EAAAs8Y,EAAA71Y,QACAlG,KAAA,kBACAgb,KAAA,SAAA7a,EAAAC,GACA5D,KAAA4D,MAMA5D,KAAAgjE,MAMAhjE,KAAAioC,UAKAjoC,KAAAw/Y,OAKAx/Y,KAAAy/Y,gBAKAz/Y,KAAAuiM,WAKAviM,KAAA0/Y,aAMAj8Y,OAAA,SAAA6uW,EAAA3uW,EAAAC,EAAAggC,GAMA,GALA5jC,KAAAu3B,MAAA+6U,EACAtyW,KAAA4D,MACA5D,KAAA2D,UACA3D,KAAAg/B,MAAAkG,YAEAotU,EAAAtuW,IAAA,YACA,IAAAqzB,EAAAr3B,KAAAqrM,QAAAinK,EAAA1uW,GAEA+7Y,EAAA3/Y,KAAA4/Y,aAAA,aAEAC,EAAA7/Y,KAAA4/Y,aAAA,cAOAnqX,EAAAz1B,KAAAgjE,MAAAhjE,KAAA8/Y,YAAAzoX,EAAAi7U,GAEAA,EAAA7rL,cAAA,SAAAroJ,GACA,OAAAwmJ,EAAAnvJ,EAAAlkB,MAAA2nC,SAAA9a,KAGAK,GAAA,2DAAA77B,GACA5C,KAAA,UAAA4C,GAAAy0B,EAAAsoX,EAAAlqX,EAAA68U,IACOtyW,MAEPA,KAAA+/Y,iBAAA1oX,EAAAwoX,EAAApqX,EAAA68U,GAEAtyW,KAAAssI,UAAAj1G,EAAAi7U,GAGAtyW,KAAAggZ,eAMAv7Y,OAAA,WACAzE,KAAAigZ,cAEAjgZ,KAAAg/B,MAAAkG,aAMAngC,QAAA,WACA/E,KAAAigZ,eAEA50M,QAAA,SAAAinK,EAAA1uW,GACA,IAAAs8Y,EAAA5tC,EAAAtuW,IAAA,kBACA8Y,EAAAw1V,EAAAtuW,IAAA,UACAyvK,EAkZA,SAAAl8I,EAAA3zB,GACA,OAAA0zB,EAAAwrC,cAAAvrC,EAAAqyC,sBACA5wD,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aACGx6B,EAAAvzB,IAAA,YAtZH8lC,CAAAwoU,EAAA1uW,GAEA,MAAAs8Y,GAAA,SAAAA,EACAA,EAAA,eAAApjY,EAAA22J,EAAAlvK,EAAAkvK,EAAAx6J,OAAA,EAAArV,EAAAmuD,YAAA,UAAA0hH,EAAApvK,EAAAovK,EAAAz6J,MAAA,EAAApV,EAAAkuD,WAAA,UACKrnD,MAAAy1Y,KACLA,GACA73O,YACAr2J,IAAA,IACA8C,OAAA,KAEA45H,UACA7oI,KAAA,IACAC,MAAA,MAEOgX,GAAAojY,IAGP,IAuBAC,EACAC,EACAC,EACAloX,EA1BAmoX,GACAj4O,WAAA,SACA35B,SAAAwxQ,GAAA,SAAAA,EAAA,gBAEAK,GACAl4O,WAAA63O,GAAA,SAAAA,EAAA,eACAxxQ,SAAA,UAEA8xQ,GACAn4O,WAAA,EACA35B,SAAA32G,EAAA,GAGA0oX,EAAA,aAAA3jY,EAAA22J,EAAAx6J,OAAAw6J,EAAAz6J,MACA0nY,EAAApuC,EAAAjzU,SAAA,gBACAshX,EAAAD,EAAA18Y,IAAA,WACA48Y,EAAAD,EAAAD,EAAA18Y,IAAA,cACA68Y,EAAAF,EAAAD,EAAA18Y,IAAA,aACA88Y,EAAAF,EAAAC,EAEAr4O,EAAA8pM,EAAAtuW,IAAA,mBACAwkK,IAAAzwI,EAAA,IAMA,IAAAgwL,EAAA24L,EAAA18Y,IAAA,eACAguV,EAAA2uD,GAAAD,EAAA18Y,IAAA,kBACAiuV,EAAA0uD,GAAAD,EAAA18Y,IAAA,kBACAkuV,EAAAyuD,GAAAD,EAAA18Y,IAAA,kBACAkhS,EAAA,EACAC,EAAAs7G,EAmBA,MAjBA,SAAA14L,GAAA,WAAAA,GACAiqI,IAAAmuD,GAAA,KAAAj7G,GAAA47G,GACA7uD,IAAAmuD,GAAAl7G,EAAA,GAAAA,GAAA47G,GACA5uD,IAAAmuD,GAAAl7G,EAAAy7G,EAAA,GAAAz7G,GAAA27G,KAGA9uD,IAAAmuD,GAAAh7G,EAAAy7G,EAAA,GAAAz7G,GAAA27G,GACA7uD,IAAAmuD,GAAA,KAAAl7G,GAAA47G,GACA5uD,IAAAmuD,GAAAl7G,EAAAy7G,EAAA,GAAAz7G,GAAA27G,IAGA3oX,GAAA+sQ,EAAAC,GAEAmtE,EAAAtuW,IAAA,YACAm0B,EAAA5Q,WAIAksJ,WACAgtO,aACA3jY,SACA+a,SAAA2oX,EAAA1jY,GACA0rJ,gBACA03O,cACAa,WAAAzuC,EAAAtuW,IAAA,gBAAAs8Y,EAAAxjY,GACAkkY,cAAA1uC,EAAAtuW,IAAA,wBAAAsuW,EAAAtuW,IAAA,mBAAAu8Y,EAAAzjY,GAEAqjY,eACAC,kBACAC,kBACAloX,aACAyoX,cACAC,eAGAv0Q,UAAA,SAAAj1G,EAAAi7U,GAMA,IAAAqtC,EAAA3/Y,KAAAuiM,WACAs9M,EAAA7/Y,KAAA0/Y,YACAjsO,EAAAp8I,EAAAo8I,SAEA,gBAAAp8I,EAAAva,OAAA,CAEA,IAAA6P,EAAAia,EAAA8C,SACAu3W,EAAAxtO,EAAApvK,EACA68Y,EAAAztO,EAAAlvK,EAAAkvK,EAAAx6J,OACA2tB,EAAAumL,UAAAxgM,MAAAs0X,GAAAC,IACAt6W,EAAA6hI,OAAA97I,KAAAoL,EAAA,GACA6O,EAAAumL,UAAAxgM,KAAAs0X,EAAAC,KACAztO,IAAAzpI,SACAhD,eAAAra,GAGA,IAAAw0X,EAAAC,EAAA3tO,GACA4tO,EAAAD,EAAAzB,EAAA73W,mBACAw5W,EAAAF,EAAAvB,EAAA/3W,mBACAy5W,EAAA5B,EAAAvxY,SACAozY,EAAA3B,EAAAzxY,SACAozY,EAAA,GAAAD,EAAA,GAAAJ,EAAA,MACA,IAQAM,EARAvB,EAAA7oX,EAAA6oX,YAEAz1Y,MAAAy1Y,IAGAwB,EAAAH,EAAAF,EAAAF,EAAA,EADAM,EAAA,MAAAvB,EAAA,KAEAwB,EAAAF,EAAAF,EAAAH,EAAA,IAAAM,KAGAC,EAAAH,EAAAF,EAAAF,EAAA,EADAM,EAAAvB,GAAA,OAEAsB,EAAA,GAAAD,EAAA,GAAArB,GASA,SAAAyB,EAAAjsP,GACA,IAAAhkI,EAAAgkI,EAAAtnJ,SACAsnJ,EAAAtsH,QAAA+3W,EAAA,MAAAzvX,EAAA,GAAAyvX,EAAA,MAAAzvX,EAAA,IAGA,SAAA0vX,EAAAl5W,GAEA,QAAAA,EAAA7jC,EAAA6jC,EAAA7jC,EAAA6jC,EAAAlvB,QAAAkvB,EAAA3jC,EAAA2jC,EAAA3jC,EAAA2jC,EAAAjvB,SAGA,SAAAyoY,EAAA/oM,EAAA5sM,EAAAmrC,EAAAmD,EAAAunW,GACAjpM,EAAAt+J,IAAAnD,EAAAmD,GAAAunW,GAAA71Y,EAAAsuC,GAAAunW,GAjBAjC,EAAA58Y,KAAA,WAAAw+Y,GACA1B,EAAA98Y,KAAA,WAAAy+Y,GACA7B,EAAA9nX,SAAAgoX,EAAAhoX,SAAAR,EAAAQ,SACA8pX,EAAAhC,GACAgC,EAAA9B,IAgBAC,YAAA,SAAAzoX,EAAAi7U,GACA,IAAAxhW,EAAAwhW,EAAApmV,UACAo/B,EAAAgnT,EAAAtuW,IAAA,YACAuN,EAAAsxD,EAAAM,mBAAAmvS,EAAAhnT,GAEA/5C,EAAAmnC,SAAA,WACA,OAAA5nC,EAAAyuB,UAAA,kBAAAh4B,GACA,OAAAA,KAIA,IAAAywJ,EAAAlnJ,EAAAygN,cAAA,SACAhgN,EAAA4nC,UAAA6+G,EAAA,GAAAA,EAAA,IACAzmJ,EAAAgoC,YACA,IAAA9jB,EAAA,IAAA21B,EAAA,QAAA75C,EAAA8lB,EAAAc,WAAAmzB,GAEA,OADA71B,EAAA8B,MAAA+6U,EACA78U,GAEAmqX,aAAA,SAAAh9Y,GACA,IAAAi/Y,EAAA7hZ,KAAA,IAAA4C,GAAA,IAAA4X,EAAAskB,MAEA,OADA9+B,KAAAg/B,MAAAC,IAAA4iX,GACAA,GAEAC,gBAAA,SAAAzqX,EAAA2H,EAAAvJ,EAAA68U,GACA,IAAAn6U,EAAA1C,EAAAqG,YAEAw2U,EAAAtuW,IAAA,mBAIAg7B,EAAAC,IAAA,IAAAzkB,EAAAqyD,MACA9kD,OACA0oB,GAAAtY,EAAA,GACAuY,GAAA,EACA7C,GAAA1V,EAAA,GACA2V,GAAA,GAEAv1B,MAAAshB,EAAAnwB,QACA48Q,QAAA,SACOgsF,EAAAjzU,SAAA,aAAA4D,gBACPkB,QAAA,EACAC,GAAA,MAOA29W,gBAAA,SAAA1qX,EAAA2H,EAAAvJ,EAAA68U,GACA,IAAAxhW,EAAAwhW,EAAApmV,UAEAsgL,EAAA/2K,EAAAlkB,MAAAmnC,WAEAja,EAAA+tK,EAAA,SAAAjlM,GACA,IAAA6pM,EAAA37K,EAAAqB,YAAAvvB,GACA29D,EAAAp0D,EAAAq0D,aAAA59D,GACAugM,EAAA5iI,EAAA7lC,SAAA,aACA2iX,EAAA98U,EAAA7lC,SAAA,sBACA4iX,GACA7zY,UAAAgjM,EAAA,GACAsd,QAAAlkN,EAAAxK,KAAAkiZ,gBAAAliZ,KAAAuH,IAEA9G,EAAA0hZ,EAAAj9U,EAAA4iI,EAAA9oK,EAAAijX,GACAznY,EAAAmrD,cAAAllE,EAAAuhZ,EAAA18U,gBAEAJ,EAAAlhE,IAAA,YACAvD,EAAA29B,UAAA72B,EACA9G,EAAA65D,UAAAg4S,GAEA7xW,EAAA29B,UAAA39B,EAAA65D,UAAA,MAEKt6D,OAML+/Y,iBAAA,SAAA1oX,EAAA2H,EAAAvJ,EAAA68U,GAGA,GAFA78U,EAAA81B,gBAEAvnD,IAAA,SAIA,IAAA8M,EAAAwhW,EAAApmV,UACA67Q,EAAAtyQ,EAAAiJ,gBACAD,EAAAspQ,EAAA,SAAAppQ,GAEA,IAAAP,EAAAO,EAAAC,UACAsmC,EAAAp0D,EAAAq0D,aAAA/mC,GACAgkX,EAAAl9U,EAAA7lC,SAAA,SACAuwI,EAAA1qG,EAAA7lC,SAAA,kBACA+xK,EAAA37K,EAAAqB,YAAA6H,EAAAC,WACA8pQ,EAAA,IAAAluR,EAAA0wB,MACA98B,UAAAgjM,EAAA,GACAv5K,SAAAR,EAAAmxI,cAAAnxI,EAAAQ,SACA62L,QAAAlkN,EAAAxK,KAAAkiZ,gBAAAliZ,KAAAo+B,GACA+F,QAAA,IAEA3pB,EAAA2/L,aAAAuuF,EAAAnwR,MAAA6pY,GACA/wW,KAAA1S,EAAAgqQ,eACAjzP,UAAAre,EAAA0pX,WACAprW,kBAAAte,EAAA2pX,gBAEAhiX,EAAAC,IAAAypQ,GACAluR,EAAAmrD,cAAA+iO,EAAAluR,EAAA2/L,gBAA2DvqC,KACtD5vK,QAMLqiZ,eAAA,SAAAhrX,EAAA2H,EAAAvJ,EAAA68U,GACA,IAAAsuC,EAAAvpX,EAAAupX,YACA/oX,EAAAR,EAAAQ,SACArlB,EAAA8/V,EAAAjzU,SAAA,gBAAAimC,eACAC,EAAA+sS,EAAAjzU,SAAA,yBAAAimC,eACAp9B,GAAA,GAAA04W,EAAA,EAAAA,KACAjtB,EAAArhB,EAAAsa,eACArwV,EAAA+1U,EAAAtuW,IAAA,cAKA,SAAAs+Y,EAAAl0Y,EAAAm0Y,EAAA7zL,EAAA8zL,GACA,GAAAp0Y,EAAA,CAIA,IAQAq0Y,EA6HA,SAAAnwC,EAAAowC,EAAAx6W,EAAAr9B,GAEA,OADA2P,EAAAi5U,SAAA6e,EAAAtuW,IAAA0+Y,GAAAn6Y,QAAA,iBAAAsxB,EAAAmQ,MAAAn/B,OAA2G,IAAAg8B,EAAAqB,EAAA,GAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,cA9H3Gy6W,CAAArwC,EAAAiwC,EAAAr6W,GAPA95B,WACAg7B,QAAAw3W,EAAA,KACA/oX,SAAA2qX,GAAA3qX,EAAA,EACA0nS,WAAA,EACAhnT,MAAA/F,EACAk8M,YAGA1vL,EAAAC,IAAAwjX,GACAjoY,EAAAmrD,cAAA88U,EAAAl9U,IAnBA+8U,EAAAjrX,EAAAgpX,gBAAA,wBAAA71Y,EAAAxK,KAAAkiZ,gBAAAliZ,KAAAu8B,EAAA,UACA+lX,EAAAjrX,EAAA+oX,gBAAA,wBAAA51Y,EAAAxK,KAAAkiZ,gBAAAliZ,KAAAu8B,EAAA,UACA+lX,EAAAjrX,EAAA8oX,aAAA,iBAAAxsB,EAAA,uBAAAnpX,EAAAxK,KAAA4iZ,iBAAA5iZ,MAAA2zX,IAAA,IAoBAkvB,sBAAA,SAAAxrX,EAAA2H,EAAAvJ,EAAA68U,GACA,IAAAxhW,EAAAwhW,EAAApmV,UACA61F,EAAAuwP,EAAAC,kBACAxgC,EAAAjhU,EAAAq0D,aAAA48C,GAAA1iF,SAAA,mBACAyjX,EAAA9iZ,KACAmC,GACA29C,SAAA,SAAA1oB,GACAA,EAAA6/H,WAAA,EACA7/H,EAAAouF,MAAAh7G,EAAAs4Y,EAAAC,mBAAAD,GACA1rX,EAAA+/H,UAAA3sJ,EAAAs4Y,EAAAE,sBAAAF,GACAG,EAAA7rX,EAAA2qF,EAAAtsF,EAAA68U,GAAA,IAEAvyT,SAAA,SAAA3oB,GACA6rX,EAAA7rX,EAAA2qF,EAAAtsF,EAAA68U,KAIAtyW,KAAAy/Y,gBAAA0C,EAAApwE,IAAA/xU,KAAAuiM,cAAqFviM,KAAAy/Y,gBAAAt9Y,IAErFygZ,iBAAA,SAAA3uR,GACAj0H,KAAAigZ,cAEAjgZ,KAAA4D,IAAAQ,gBACAZ,KAAA,qBACAmwX,UAAA1/P,EACAloH,KAAA/L,KAAAk1D,OAGA6tV,mBAAA,SAAAh1W,EAAAC,EAAA7pC,GACAnE,KAAAigZ,cAEAjgZ,KAAAkjZ,wBAAA/+Y,EAAAG,QAAAH,EAAAK,WAEAw+Y,sBAAA,SAAA7+Y,GACAnE,KAAAkjZ,wBAAA/+Y,EAAAG,QAAAH,EAAAK,UAAA,IAEA0+Y,uBAAA,SAAAC,EAAAlxY,GACA,IAAAsnL,EAAAv5L,KAAAojZ,aAAAD,GAAA,GAEA1tX,EAAAz1B,KAAAgjE,MACA7qC,EAAAuf,EAAA+4B,IAAAh7C,EAAAqG,YAAAx5B,SACAi3L,EAAAphK,EAAA,KAAAohK,EAAAphK,EAAA,IACAohK,EAAAphK,EAAA,KAAAohK,EAAAphK,EAAA,IACAn4B,KAAAy/Y,gBAAArxY,SAAA,GAAAmrL,EAEAv5L,KAAAy/Y,gBAAAr+Y,QAEA,IAAAiiZ,EAAArjZ,KAAAsjZ,iBAAA/pN,GAEA+4K,EAAAtyW,KAAAu3B,OAEAtlB,GAAAoxY,IAAA/wC,EAAAC,mBAAAD,EAAAtuW,IAAA,cACAhE,KAAAkiZ,gBAAAmB,IAGArD,YAAA,WACAhgZ,KAAAigZ,cAEAjgZ,KAAAu3B,MAAAq1V,iBACA5sX,KAAAw/Y,OAAAlzY,WAAA9B,EAGA,WAEA,IAAA8nW,EAAAtyW,KAAAu3B,MAEAv3B,KAAAkiZ,gBAAA5vC,EAAAC,mBAAAD,EAAAtuW,IAAA,qBAPAhE,WAAAu3B,MAAAvzB,IAAA,mBAUAo/Y,aAAA,SAAA5rP,GACA,IAAAsiK,EAAA95T,KAAAuiM,WAAAv5J,oBAEA,OAAAxuB,EAAAwsB,eAAAwwH,EAAAsiK,GAAA,IAEAwpF,iBAAA,SAAAC,GACA,IAEAF,EAFAvyY,EAAA9Q,KAAAu3B,MAAArL,UACA2nK,EAAAp6I,IAEAhkB,EAAAz1B,KAAAgjE,MAUA,OATAlyD,EAAA2tB,MAAA,kBAAAl3B,EAAA62B,GACA,IAAAgE,EAAA3M,EAAAqB,YAAAvvB,GACAknB,EAAA1mB,KAAAY,IAAAy5B,EAAAmhX,GAEA90X,EAAAolK,IACAA,EAAAplK,EACA40X,EAAAjlX,KAGAilX,GAEApD,YAAA,WACAjgZ,KAAAw/Y,SACAnzY,aAAArM,KAAAw/Y,QACAx/Y,KAAAw/Y,OAAA,OAGA0C,gBAAA,SAAA/9V,GACA,IAAA49D,EAAA/hH,KAAAu3B,MAAAg7U,kBAEA,MAAApuT,EACAA,EAAA49D,EAAA,EACK,MAAA59D,IACLA,EAAA49D,EAAA,GAGA/hH,KAAA4D,IAAAQ,gBACAZ,KAAA,iBACAu+G,aAAA59D,EACAp4C,KAAA/L,KAAAk1D,SAsBA,SAAAitV,EAAA99W,EAAAyjK,EAAA9oK,EAAApG,EAAA5J,EAAA7sB,GACA,IAAAgE,EAAA2hM,EAAA9jM,IAAA,SAEA,GAAAgrB,EAOAA,EAAAkkK,SAAA/sL,GACA64B,EAAAC,IAAAjQ,GAEA7sB,KAAA49C,SAAA/wB,OAVA,CACA,IAAA8gD,EAAAzrC,EAAArgC,IAAA,WACAgrB,EAAAyjK,EAAA3iH,GAAA,SAAA3pE,IACAm2C,SAAA,oBACAtd,EAAAC,IAAAjQ,GACA7sB,KAAA29C,SAAA9wB,GASA,IAAAxc,EAAAs1L,EAAAxiI,cAAA,gCACAt2C,EAAAstB,SAAA9pC,GAEAomB,EAAAiB,EAAA82C,OACA4uP,WAAA,EACAn7R,GAAA,KACGxL,GAAA,GACH,IAAA3J,EAAAoV,EAAArgC,IAAA,eACAirB,eAAApjB,MAAAojB,EAAA3sB,UAAA2sB,OACA,MACAA,EAAA,MACA2J,EAAArnB,MAAA0d,EACA,IAAAE,EAAAkV,EAAArgC,IAAA,gBAEA,GAAAmrB,EAAA,CACA,IAAAuC,EAAAkH,EAAAxqB,SAAAwqB,EAAAxqB,WAAA,KACAsjB,EAAA,IAAAgmB,EAAAhL,aAAAvd,EAAA,GAAAF,EAAA,IACAyC,EAAA,IAAAgmB,EAAAhL,aAAAvd,EAAA,GAAAF,EAAA,IAGA,IAAAC,EAAAmV,EAAArgC,IAAA,gBAUA,OATA40B,EAAAf,UAAA3I,GAAA,GAAAnnB,KAAAgwB,GAAA,OACA/I,EAAAjsB,KAAA61B,GAOA5J,EAAAwa,kBACAxa,EAGA,SAAAi0X,EAAA7rX,EAAAgH,EAAA3I,EAAA68U,EAAAkxC,GACA,IAAApsX,EAAAs3U,SAAA,CAIA,IAAA38B,EAAAugC,EAAAjzU,SAAA,mBACAk6J,EAAA9jK,EAAAqB,YAAAw7U,EAAApmV,UAAAloB,KAAA,SAAAo6B,IAEAolX,IAAAzxE,EAAA/tU,IAAA,gBACAozB,EAAAr0B,MACAqL,UAAAmrL,EAAA,MAGAniK,EAAAz1B,eAAA,GACAy1B,EAAAr1B,WACAqM,UAAAmrL,EAAA,IACKw4I,EAAA/tU,IAAA,wBAAA+tU,EAAA/tU,IAAA,yBAILd,EAAAC,QAAAF,wBCxnBA,IAAAG,EAAc7D,EAAQ,QAEtBib,EAAcjb,EAAQ,QAItBujE,EAFcvjE,EAAQ,QAEtBujE,cAqBA1/D,EAAAoxB,sBACAhxB,KAAA,QACAqxL,YACArxL,KAAA,MACA62N,YAAA,GAEA3lM,eAEAC,OAAA,EAEAC,EAAA,EACAvvB,MAAA,EACAgsC,KAAA,GAIA9wC,OAAA,QACAkjZ,QAAA,GAIAC,UAAA,QAGA79Y,KAAA,EAGAmM,IAAA,EAUAyI,gBAAA,gBAEAsY,YAAA,OAEAuC,YAAA,EAGAC,QAAA,EAEA84P,QAAA,GACA3zQ,WACAmb,SAAA,GACAogB,WAAA,SACA9vC,MAAA,QAEAw9Y,cACAx9Y,MAAA,WAKA/C,EAAAG,qBACAC,KAAA,QACAC,OAAA,SAAAuuU,EAAAruU,EAAAC,GAGA,GAFA5D,KAAAg/B,MAAAkG,YAEA8sS,EAAAhuU,IAAA,SAIA,IAAAg7B,EAAAh/B,KAAAg/B,MACAu2H,EAAAy8K,EAAA3yS,SAAA,aACAukX,EAAA5xE,EAAA3yS,SAAA,gBACAqW,EAAAs8R,EAAAhuU,IAAA,aACAk4N,EAAA81G,EAAAhuU,IAAA,gBACA0kS,EAAA,IAAAluR,EAAA0wB,MACA3yB,MAAAiC,EAAA2/L,gBAAoC5kD,GACpClkH,KAAA2gS,EAAAhuU,IAAA,QACAszC,SAAAi+G,EAAAE,iBAEA2gM,YAAA,IAEAhyT,GAAA,KAEA4Q,EAAA0zP,EAAA5gQ,kBACA+7W,EAAA7xE,EAAAhuU,IAAA,WACA8/Y,EAAA,IAAAtpY,EAAA0wB,MACA3yB,MAAAiC,EAAA2/L,gBAAoCypM,GACpCvyW,KAAAwyW,EACAvsW,SAAAssW,EAAAnuP,eACAlxJ,EAAAywC,EAAA/7B,OAAA+4T,EAAAhuU,IAAA,WACA2xC,kBAAA,QAEAygT,YAAA,IAEAhyT,GAAA,KAEA51B,EAAAwjU,EAAAhuU,IAAA,QACA+/Y,EAAA/xE,EAAAhuU,IAAA,WACA0kS,EAAAvkQ,QAAA31B,EACAs1Y,EAAA3/W,QAAA4/W,EAEAv1Y,GACAk6R,EAAAhpR,GAAA,mBACA/P,OAAAb,KAAAN,EAAA,IAAAwjU,EAAAhuU,IAAA,aAIA+/Y,GACAD,EAAApkY,GAAA,mBACA/P,OAAAb,KAAAi1Y,EAAA,IAAA/xE,EAAAhuU,IAAA,gBAIAg7B,EAAAC,IAAAypQ,GACAm7G,GAAA7kX,EAAAC,IAAA6kX,GAEA,IAAAE,EAAAhlX,EAAA8I,kBACAm8W,EAAAjyE,EAAApoQ,qBACAq6U,EAAAjrY,MAAAgrY,EAAAhrY,MACAirY,EAAAhrY,OAAA+qY,EAAA/qY,OACA,IAAAm6Q,EAAAtwN,EAAAmhV,GACAjrY,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aACKigR,EAAAhuU,IAAA,YAEL0xC,IAIA,YAFAA,EAAAs8R,EAAAhuU,IAAA,SAAAguU,EAAAhuU,IAAA,YAGA0xC,EAAA,UAIA,UAAAA,EACA09O,EAAA/uR,GAAA+uR,EAAAp6Q,MACO,WAAA08B,IACP09O,EAAA/uR,GAAA+uR,EAAAp6Q,MAAA,IAIAkjN,IAGA,YAFAA,EAAA81G,EAAAhuU,IAAA,QAAAguU,EAAAhuU,IAAA,aAGAk4N,EAAA,UAGA,WAAAA,EACAk3D,EAAA7uR,GAAA6uR,EAAAn6Q,OACO,WAAAijN,IACPk3D,EAAA7uR,GAAA6uR,EAAAn6Q,OAAA,GAGAijN,KAAA,OAGAl9L,EAAAj8B,KAAA,YAAAqwR,EAAA/uR,EAAA+uR,EAAA7uR,IACA,IAAA2/Y,GACAxuW,YACAC,kBAAAumL,GAEAwsE,EAAApsP,SAAA4nW,GACAJ,EAAAxnW,SAAA4nW,GAGAF,EAAAhlX,EAAA8I,kBACA,IAAAvS,EAAA69P,EAAAlpN,OACA3xD,EAAAy5T,EAAA1sQ,cAAA,oBACA/sD,EAAAb,KAAAs6T,EAAAhuU,IAAA,mBACA,IAAAkkC,EAAA,IAAA1tB,EAAAyiB,MACAlV,OACA1jB,EAAA2/Y,EAAA3/Y,EAAAkxB,EAAA,GACAhxB,EAAAy/Y,EAAAz/Y,EAAAgxB,EAAA,GACAvc,MAAAgrY,EAAAhrY,MAAAuc,EAAA,GAAAA,EAAA,GACAtc,OAAA+qY,EAAA/qY,OAAAsc,EAAA,GAAAA,EAAA,GACA9d,EAAAu6T,EAAAhuU,IAAA,iBAEAuU,QACA4rB,QAAA,IAEA3pB,EAAA26Q,qBAAAjtP,GACAlJ,EAAAC,IAAAiJ,6BC/MA,IAAAiD,EAAW5rC,EAAQ,QAEnBm2N,EAAwBn2N,EAAQ,QAMhC0D,EAAAkoC,EAAAzhC,QACAlG,KAAA,SACAukB,OACAxQ,GAAA,EACAC,GAAA,EACA2kB,GAAA,EACA1kB,EAAA,EACA2kB,WAAA,EACAC,SAAA,EAAAt0B,KAAAgwB,GACAuE,WAAA,GAEAjiB,MAAAq7M,EAAAvqL,EAAAjrC,UAAAma,OACAq1B,UAAA,SAAA7J,EAAA9d,GACA,IAAA1jB,EAAA0jB,EAAAxQ,GACAhT,EAAAwjB,EAAAvQ,GACA2kB,EAAAp0B,KAAAE,IAAA8f,EAAAoU,IAAA,KACA1kB,EAAA1P,KAAAE,IAAA8f,EAAAtQ,EAAA,GACA2kB,EAAArU,EAAAqU,WACAC,EAAAtU,EAAAsU,SACAC,EAAAvU,EAAAuU,UACA2qI,EAAAl/J,KAAA0jC,IAAArP,GACA8qI,EAAAn/J,KAAA2jC,IAAAtP,GACAyJ,EAAAkhI,OAAAE,EAAA9qI,EAAA93B,EAAA6iK,EAAA/qI,EAAA53B,GACAshC,EAAAmhI,OAAAC,EAAAxvJ,EAAApT,EAAA6iK,EAAAzvJ,EAAAlT,GACAshC,EAAAshI,IAAA9iK,EAAAE,EAAAkT,EAAA2kB,EAAAC,GAAAC,GACAuJ,EAAAmhI,OAAAj/J,KAAA0jC,IAAApP,GAAAF,EAAA93B,EAAA0D,KAAA2jC,IAAArP,GAAAF,EAAA53B,GAEA,IAAA43B,GACA0J,EAAAshI,IAAA9iK,EAAAE,EAAA43B,EAAAE,EAAAD,EAAAE,GAGAuJ,EAAA43I,eAIAv6K,EAAAC,QAAAF,wBC3CA,IAAA42B,EAAat6B,EAAQ,QAErBsnC,EAAmBtnC,EAAQ,QAE3B23R,EAAc33R,EAAQ,QAEtBmtC,EAAAwqP,EAAAxqP,aACAqjE,EAAAmnL,EAAAnnL,iBAEAz4E,EAAa/3B,EAAQ,QAErBi0J,EAAaj0J,EAAQ,QAoBrBosC,EAAA5jC,KAAAE,IACAkrD,EAAAprD,KAAAC,IACAm8Y,EAAAtqX,EAAAmuC,SACAvpC,EAAA5E,EAAA4E,KACA2lX,GAAA,2BACAC,GAAA,wBACAC,GAAA,qBACAC,GAAA,uBAKAthZ,GACA4sE,WAAA,UACA/kE,MAAA,SAAA0wB,EAAA73B,EAAAC,EAAAggC,GAGA,IAAAotU,EAAAptW,EAAAkuD,WACAm/S,EAAArtW,EAAAmuD,YACA6qL,EAAAphN,EAAAve,OACAoa,EAAAC,EAAAwrC,cAAAtnC,EAAAouC,sBACA5wD,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,cAEAlgC,EAAA+qN,EAAA/qN,SAEAs1R,EAAAz6Q,EAAAy3W,EAAA9sX,EAAAre,MAAA6Y,EAAA,IAAAm/U,GACA5pD,EAAA16Q,EAAAy3W,EAAA9sX,EAAApe,OAAA4Y,EAAA,IAAAo/U,GAEA16S,EAAA3yB,KAAApgC,KAEA6qN,EAAA76D,EAAAyhF,mBAAArxM,GADA,yCACApI,GACAgpX,EAAA,kBAAAjuV,GAAA,gBAAAA,EAAA3yB,EAAA4gX,SAAA,KACAnvK,EAAA75M,EAAAixP,cACAg4H,EAAAjxP,EAAAwhF,cAAAK,GAEA,mBAAA9+K,EAAA,CACA,IAAAmuV,EAAA,sBAAAnuV,EA2VA,SAAA/6B,EAAA6yL,EAAAgnB,EAAA8xE,EAAAC,GAGA,IAOA79Q,EAPAo7W,GAAAt2L,OAAkCn1J,KAClC0rV,GAAAz9F,EAAAC,GAEA,IAAAu9F,OAAAtvK,EACA,OAAAuvK,EAIA,IAAAC,EAAA19F,EAAAC,EACA3mS,EAAAokY,EAAArpX,EAAAve,OAAA2tQ,gBAEA,KAAArhP,EAAAo7W,EAAAp4W,YAAA,CAKA,IAHA,IAAAjoB,EAAA,EACAi0N,EAAAhvM,EAAAg/I,SAEAxnL,EAAA,EAAAc,EAAA02O,EAAAt3O,OAA0CF,EAAAc,EAASd,IACnDujB,GAAAi0N,EAAAx3O,GAAA0oL,WAGA,IAAAq7N,EAAAH,EAAAl7N,WAEA,OAAAq7N,EACA,OAAAF,EAGAnkY,GAAA6D,EAAAwgY,EAEA,IAAAh/N,EAAAv8I,EAAAlK,WACA/J,EAAAwwJ,EAAA9hL,IAAAogZ,GACAW,EAAAh9Y,KAAAE,IAAAqtB,EAAA0vX,EAAAl/N,KACArlK,GAAA,EAAA6U,KAAA,EAAAA,EAAAyvX,GAAAh9Y,KAAAI,IAAAsY,EAAA,KACAsvF,IAAAtvF,EAAAsvF,GACA40S,EAAAp7W,EAGA9oB,EAAAokY,IAAApkY,EAAAokY,GACA,IAAAtzY,EAAAxJ,KAAAI,IAAAsY,EAAAokY,EAAA,IACA,OAAA19F,EAAA51S,EAAA61S,EAAA71S,GApYA0zY,CAAAzpX,EAAA6yL,EAAAgnB,EAAA8xE,EAAAC,GAAAo9F,KAAAxrY,MAAAwrY,EAAAvrY,SAAAkuS,EAAAC,GACA9xS,EAAAsnO,EAAAtnO,KAEAA,GAAA,QAAAA,GAAA,SAAAA,IACAA,EAAA,QAGA,IAAA7M,GACAgiR,YAAA7tC,EAAA6tC,YACAn1Q,OACAo1Q,UAAA9tC,EAAA8tC,WAGAr1C,EAAAhtD,SAAAkC,eAKA,IAAA26N,GACA7gZ,EAAA,EACAE,EAAA,EACAyU,MAAA0rY,EAAA,GACAzrY,OAAAyrY,EAAA,GACAjkY,KAAAikY,EAAA,GAAAA,EAAA,IAEArvK,EAAA3rD,UAAAw7N,GAqCA,SAAAC,EAAAjsV,EAAAzwD,EAAA28Y,EAAA98N,GACA,IAAAtvK,EACA,IAAAC,EAEA,GAAAigD,EAAA8vH,YACA,OAGA,IAAAq8N,EAAAnsV,EAAA0wH,YACA5wK,EAAAqsY,EAAArsY,MACAC,EAAAosY,EAAApsY,OAEA,IAAA0iX,EAAAziU,EAAA75B,WACA,IAAA/J,EAAAqmW,EAAA33X,IAAAogZ,GACA,IAAAkB,EAAA3pB,EAAA33X,IAAAqgZ,GAAA,EACA,IAAAkB,EAAAP,EAAArpB,GACA,IAAAopB,EAAAh9Y,KAAAE,IAAAqtB,EAAAiwX,GACA,IAAAC,EAAAlwX,EAAAgwX,EACA,IAAAG,EAAAV,EAAAO,EACA,IAAA3pB,EAAAziU,EAAA75B,WACA65B,EAAAwwH,WACAp0J,cACAyvX,cACAQ,qBACG,GACHvsY,EAAA2yB,EAAA3yB,EAAA,EAAAwsY,EAAA,GACAvsY,EAAA0yB,EAAA1yB,EAAAusY,EAAAC,EAAA,GACA,IAAAC,EAAA1sY,EAAAC,EACA,IAAAuvK,EA0DA,SAAAtvH,EAAAyiU,EAAA+pB,EAAAj9Y,EAAA28Y,EAAA98N,GACA,IAAAE,EAAAtvH,EAAAqvH,aACAo9N,EAAAl9Y,EAAA6M,KACA,QAAAqwY,GAAA,SAAAA,MAAA,MACA,IAAAC,EAAA,MAAAn9Y,EAAAiiR,WAAAjiR,EAAAiiR,WAAApiG,EAEA,GAAA88N,IAAAQ,EACA,OAAA1sV,EAAAsvH,iBA0EA,SAAAA,EAAAm9N,GACAA,GACAn9N,EAAAlzK,KAAA,SAAAC,EAAAC,GACA,IAAA8uB,EAAA,QAAAqhX,EAAApwY,EAAAk0K,WAAAj0K,EAAAi0K,WAAAj0K,EAAAi0K,WAAAl0K,EAAAk0K,WACA,WAAAnlJ,EAAA,QAAAqhX,EAAApwY,EAAA6oB,UAAA5oB,EAAA4oB,UAAA5oB,EAAA4oB,UAAA7oB,EAAA6oB,UAAAkG,IAvEAhvB,CAHAkzK,EAAA3uJ,EAAAzS,OAAAohK,EAAA,SAAAl8I,GACA,OAAAA,EAAA08I,cAEA28N,GACA,IAAA7qU,EAiFA,SAAA6gT,EAAApzM,EAAAo9N,GAIA,IAFA,IAAArhY,EAAA,EAEAvjB,EAAA,EAAAc,EAAA0mL,EAAAtnL,OAAwCF,EAAAc,EAASd,IACjDujB,GAAAikK,EAAAxnL,GAAA0oL,WAOA,IAAAl5K,EAAAorX,EAAA33X,IAAA,mBAGA,GAAAukL,KAAAtnL,OAEG,aAAAsP,GAAAo1Y,EACH3tP,GAAAuwB,IAAAtnL,OAAA,GAAAwoL,WAAAlB,EAAA,GAAAkB,YACA,QAAAk8N,GAAA3tP,EAAAzwI,cAEA,CACA,IAAAywI,GAAAv+G,UACAhb,EAAA8pJ,EAAA,SAAAj8I,GACA,IAAA/kC,EAAA+kC,EAAAm9I,SAAAl5K,GACAhJ,EAAAywJ,EAAA,KAAAA,EAAA,GAAAzwJ,GACAA,EAAAywJ,EAAA,KAAAA,EAAA,GAAAzwJ,UAVAywJ,GAAAyW,SAcA,OACAnqJ,MACA0zI,cAjHA6tP,CAAAlqB,EAAAnzM,EAAAm9N,GAEA,OAAA7qU,EAAAx2D,IACA,OAAA40C,EAAAsvH,gBAKA,GAFA1tG,EAAAx2D,IAiCA,SAAAq3W,EAAA+pB,EAAAphY,EAAAqhY,EAAAG,GAEA,IAAAH,EACA,OAAArhY,EAOA,IAJA,IAAAinQ,EAAAowG,EAAA33X,IAAA,cACAnC,EAAAikZ,EAAA7kZ,OACA8kZ,EAAAlkZ,EAEAd,EAAAc,EAAA,EAAuBd,GAAA,EAAQA,IAAA,CAC/B,IAAAwG,EAAAu+Y,EAAA,QAAAH,EAAA9jZ,EAAAd,EAAA,EAAAA,GAAA0oL,WAEAliL,EAAA+c,EAAAohY,EAAAn6H,IACAw6H,EAAAhlZ,EACAujB,GAAA/c,GAKA,MADA,QAAAo+Y,EAAAG,EAAAxkZ,OAAA,EAAAO,EAAAkkZ,GAAAD,EAAAxkZ,OAAAykZ,EAAAlkZ,EAAAkkZ,GACAzhY,EArDA0hY,CAAArqB,EAAA+pB,EAAA5qU,EAAAx2D,IAAAqhY,EAAAn9N,GAEA,IAAA1tG,EAAAx2D,IACA,OAAA40C,EAAAsvH,gBAIA,QAAAznL,EAAA,EAAAc,EAAA2mL,EAAAvnL,OAA4CF,EAAAc,EAASd,IAAA,CACrD,IAAA0f,EAAA+nK,EAAAznL,GAAA0oL,WAAA3uG,EAAAx2D,IAAAohY,EAEAl9N,EAAAznL,GAAA2oL,WACAjpK,SAIAmlY,IACAp9N,EAAAvnL,QAAAi4D,EAAAwwH,WACAu8N,YAAA,IACK,GACLz9N,EAAAvnL,OAAA,GAOA,OAJAi4D,EAAAsvH,eACAtvH,EAAAwwH,WACA1xB,WAAAl9E,EAAAk9E,aACG,GACHwwB,EAzGAguL,CAAAt9S,EAAAyiU,EAAA+pB,EAAAj9Y,EAAA28Y,EAAA98N,GAEA,IAAAE,EAAAvnL,OACA,OAGA,IAAAinC,GACA7jC,EAAAmhZ,EACAjhZ,EAAAkhZ,EACAzsY,QACAC,UAEA,IAAAitY,EAAA/yV,EAAAn6C,EAAAC,GACA,IAAAktY,EAAA1sW,IAEA,IAAAxoC,KACAA,EAAAwP,KAAA,EAEA,QAAA1f,EAAA,EAAAc,EAAA2mL,EAAAvnL,OAA4CF,EAAAc,GAAS,CACrD,IAAAyqC,EAAAk8I,EAAAznL,GACAkQ,EAAA1P,KAAA+qC,GACAr7B,EAAAwP,MAAA6rB,EAAAs9I,YAAAnpK,KACA,IAAA2lY,EAAAC,EAAAp1Y,EAAAi1Y,EAAAz9Y,EAAAgiR,aAEA27H,GAAAD,GACAplZ,IACAolZ,EAAAC,IAGAn1Y,EAAAwP,MAAAxP,EAAA6lD,MAAA8yH,YAAAnpK,KACArS,EAAA6C,EAAAi1Y,EAAAh+W,EAAAo9W,GAAA,GACAY,EAAA/yV,EAAAjrB,EAAAlvB,MAAAkvB,EAAAjvB,QACAhI,EAAAhQ,OAAAgQ,EAAAwP,KAAA,EACA0lY,EAAA1sW,KAIAxoC,EAAAhQ,QACAmN,EAAA6C,EAAAi1Y,EAAAh+W,EAAAo9W,GAAA,GAGA,IAAAF,EAAA,CACA,IAAA55H,EAAAmwG,EAAA33X,IAAA,sBAEA,MAAAwnR,GAAAk6H,EAAAl6H,IACA45H,GAAA,GAIA,QAAArkZ,EAAA,EAAAc,EAAA2mL,EAAAvnL,OAA4CF,EAAAc,EAASd,IACrDokZ,EAAA38N,EAAAznL,GAAA0H,EAAA28Y,EAAA98N,EAAA,GAlHA68N,CAAA9vK,EAAA5sO,GAAA,KAEAy8Y,EAAA7vK,EAAAzrD,YACAnrJ,EAAAgmX,EAAA,SAAAvrV,EAAAtsD,GACA,IAAA8+Q,GAAA+4H,EAAA73Y,EAAA,IAAAyoO,GAAA5rD,WACAvwH,EAAAwwH,UAAA7vJ,EAAAnwB,QACAsuJ,YAAA0zH,KACAp2P,YAAA,EACAyvX,YAAA,GACSG,MAIT,IAAA5uC,EAAA96U,EAAAtP,UAAA0+J,KAAA/vI,KACAy7T,EAAA5sL,UAgWA,SAAAryJ,EAAAmtX,EAAAn2L,GACA,GAAAm2L,EACA,OACAngZ,EAAAmgZ,EAAAngZ,EACAE,EAAAigZ,EAAAjgZ,GAIA,IAAA+hZ,GACAjiZ,EAAA,EACAE,EAAA,GAGA,IAAA8pN,EACA,OAAAi4L,EAMA,IAAAl8M,EAAAikB,EAAAn1J,KACA5hC,EAAA8yK,EAAAxgB,YAEA,IAAAtyJ,EACA,OAAAgvX,EAIA,IAAAC,GAAAjvX,EAAAte,MAAA,EAAAse,EAAAre,OAAA,GACAigD,EAAAkxI,EAEA,KAAAlxI,GAAA,CACA,IAAA0iU,EAAA1iU,EAAA0wH,YACA28N,EAAA,IAAA3qB,EAAAv3X,EACAkiZ,EAAA,IAAA3qB,EAAAr3X,EACA20D,IAAA3sB,WAGA,OACAloC,EAAAgzB,EAAAre,MAAA,EAAAutY,EAAA,GACAhiZ,EAAA8yB,EAAApe,OAAA,EAAAstY,EAAA,IAxYAC,CAAAnvX,EAAAmtX,EAAAn2L,IAAA,GACA7yL,EAAA4wP,cAAA/0P,GA6YA,SAAAovX,EAAAvtV,EAAAwtV,EAAAjC,EAAApvK,EAAA/sD,GACA,IAAAszM,EAAA1iU,EAAA0wH,YACA,IAAA+8N,EAAAlC,EAAAn8N,GACA,IAAAs+N,EAAAD,OAAAztV,EAEA,GAAAytV,IAAAC,GAAAt+N,IAAAm8N,EAAAxjZ,QAAAi4D,IAAAm8K,EACA,OAGAn8K,EAAAwwH,WAEAmyM,UAAA,EAGAxkO,WAAAuvP,IAAAF,EAAAzuO,UAAA2jN,GACAgrB,oBACG,GAEH,IAAAC,EAAA,IAAAhgX,EAAA6/W,EAAAriZ,EAAAu3X,EAAAv3X,EAAAqiZ,EAAAniZ,EAAAq3X,EAAAr3X,EAAAmiZ,EAAA1tY,MAAA0tY,EAAAztY,QACAwlB,EAAAy6B,EAAAsvH,iBAAA,SAAAl8I,GACAm6W,EAAAn6W,EAAAu6W,EAAApC,EAAApvK,EAAA/sD,EAAA,KA9ZAm+N,CAAAnwC,EACA,IAAAzvU,GAAAxP,EAAAhzB,GAAAgzB,EAAA9yB,EAAAysW,EAAAC,GAAAwzC,EAAApvK,EAAA,KAgPA,SAAAgxK,EAAAp1Y,EAAAi1Y,EAAAniD,GAIA,IAHA,IAGAtjV,EAHAqmY,EAAA,EACAC,EAAAttW,IAEA14C,EAAA,EAAAc,EAAAoP,EAAAhQ,OAAyCF,EAAAc,EAASd,KAClD0f,EAAAxP,EAAAlQ,GAAA6oL,YAAAnpK,QAGAA,EAAAsmY,MAAAtmY,GACAA,EAAAqmY,MAAArmY,IAIA,IAAAumY,EAAA/1Y,EAAAwP,KAAAxP,EAAAwP,KACAuiC,EAAAkjW,IAAAniD,EACA,OAAAijD,EAAAr7W,EAAAqX,EAAA8jW,EAAAE,KAAAhkW,EAAA+jW,IAAAttW,IAOA,SAAArrC,EAAA6C,EAAAi1Y,EAAAh+W,EAAAo9W,EAAA92V,GASA,IAAAy4V,EAAAf,IAAAh+W,EAAAlvB,MAAA,IACAkuY,EAAA,EAAAD,EACAl6G,GAAA,SACA5yH,GAAA,kBACAvjG,EAAA1uC,EAAA6kQ,EAAAk6G,IACAE,EAAAjB,EAAAj1Y,EAAAwP,KAAAylY,EAAA,GAEA13V,GAAA24V,EAAAj/W,EAAAiyI,EAAA+sO,OACAC,EAAAj/W,EAAAiyI,EAAA+sO,KAGA,QAAAnmZ,EAAA,EAAAqmZ,EAAAn2Y,EAAAhQ,OAAsCF,EAAAqmZ,EAAYrmZ,IAAA,CAClD,IAAAm4D,EAAAjoD,EAAAlQ,GACA66X,KACAt0W,EAAA6/X,EAAAjuV,EAAA0wH,YAAAnpK,KAAA0mY,EAAA,EACAE,EAAAzrB,EAAAzhN,EAAA+sO,IAAAv7W,EAAAw7W,EAAA,EAAA7B,EAAA,GAEAgC,EAAAp/W,EAAA6kQ,EAAAk6G,IAAA/+W,EAAAiyI,EAAA8sO,IAAArwU,EACA2wU,EAAAxmZ,IAAAqmZ,EAAA,GAAAE,EAAAhgY,EAAAggY,EAAAhgY,EACAkgY,EAAA5rB,EAAAzhN,EAAA8sO,IAAAt7W,EAAA47W,EAAA,EAAAjC,EAAA,GACA1pB,EAAA7uF,EAAAm6G,IAAAh/W,EAAA6kQ,EAAAm6G,IAAA/zV,EAAAmyV,EAAA+B,EAAA,GACAzrB,EAAA7uF,EAAAk6G,IAAArwU,EAAAzjB,EAAAmyV,EAAAkC,EAAA,GACA5wU,GAAA2wU,EACAruV,EAAAwwH,UAAAkyM,GAAA,GAGA1zV,EAAA6kQ,EAAAm6G,KAAAC,EACAj/W,EAAAiyI,EAAA+sO,KAAAC,EAuHA,SAAAnC,EAAAztX,GACA,OAAAA,EAAAvzB,IAAAsgZ,GAAA/sX,EAAAvzB,IAAAugZ,GAAA,EAGArhZ,EAAAC,QAAAF,wBCthBA,IAAA4oM,EAAWtsM,EAAQ,QAEnBorC,EAAUprC,EAAQ,QAElBs6B,EAAat6B,EAAQ,QAErB0/T,EAAc1/T,EAAQ,QAEtBu3L,EAAcv3L,EAAQ,QAEtBm0K,EAAcn0K,EAAQ,QAEtBivY,EAAgBjvY,EAAQ,QAExBkoZ,EAAmBloZ,EAAQ,QAW3BmoZ,GAAA/8W,EAAAiB,gBACA+7W,GACAjpY,OAAAg1J,GAEApgH,KA+EA,IAAAs0V,EAAA,SAAAlmZ,EAAAusD,EAAApjD,GACAA,QAKA7K,KAAAiuD,MAKAjuD,KAAA0B,KACA,IAAAyK,EAAAnM,KACAsyD,EAAA,IAAAwkI,EACA+wN,EAAAh9Y,EAAAwjD,SAEA,GAAAq5V,EAAA,CACA,IAAAC,EAAAG,IACA,UAAAzoV,MAAA,wDAGAwoV,EAAA,WACGA,GAAAF,EAAAE,KACHA,EAAA,UAGA,IAAA51V,EAAA,IAAA01V,EAAAE,GAAA55V,EAAAqE,EAAAznD,EAAAnJ,GACA1B,KAAAsyD,UACAtyD,KAAAiyD,UACA,IAAA81V,EAAAp9W,EAAAuuB,MAAAvuB,EAAAulH,OAAA,SAAAu3P,EAAAx1V,EAAAk4G,mBACAnqK,KAAAyb,QAAA,IAAAwjT,EAAA3sQ,EAAAL,EAAA81V,EAAA91V,EAAApX,MAKA76C,KAAAwB,UAAA,IAAAgtY,GACAC,OACAlyV,OAAA1iB,EAAArvB,KAAAxK,KAAAwuD,MAAAxuD,SAGAA,KAAAwB,UAAAgB,QAMAxC,KAAAgoZ,cAGA,IAAAC,EAAA31V,EAAA4lI,eACAgwN,EAAA51V,EAAAylI,aAEAzlI,EAAA4lI,eAAA,SAAAz3L,GACAwnZ,EAAAv8Y,KAAA4mD,EAAA7xD,GACAA,KAAAyrM,iBAAA//L,IAGAmmD,EAAAylI,aAAA,SAAAt3L,GACAynZ,EAAAx8Y,KAAA4mD,EAAA7xD,GACAA,EAAAurM,YAAA7/L,KAIAy7Y,EAAA1nZ,WACAC,YAAAynZ,EAMAv+N,MAAA,WACA,OAAArpL,KAAA0B,IAOAu9B,IAAA,SAAAx+B,GACAT,KAAAsyD,QAAAslI,QAAAn3L,GACAT,KAAAgoZ,eAAA,GAOAvjZ,OAAA,SAAAhE,GACAT,KAAAsyD,QAAA0lI,QAAAv3L,GACAT,KAAAgoZ,eAAA,GAWA16U,YAAA,SAAA66U,EAAAnoW,GACAhgD,KAAAiyD,QAAAqb,aACAttE,KAAAiyD,QAAAqb,YAAA66U,EAAAnoW,GAGAhgD,KAAAgoZ,eAAA,GAOAvzV,mBAAA,SAAAh6C,GACAza,KAAAiyD,QAAAwC,oBACAz0D,KAAAiyD,QAAAwC,mBAAAh6C,GAGAza,KAAAgoZ,eAAA,GAMAr0V,mBAAA,WAIA3zD,KAAAgoZ,eAAA,EACAhoZ,KAAAiyD,QAAA7L,UAKApmD,KAAAgoZ,eAAA,GAUA5hW,QAAA,WACApmD,KAAAgoZ,eAAA,GAMAx5V,MAAA,WACA,IAAA45V,EAEApoZ,KAAAgoZ,gBACAI,GAAA,EACApoZ,KAAA2zD,sBAGA3zD,KAAAqoZ,qBACAD,GAAA,EACApoZ,KAAAsoZ,2BAGAF,GAAApoZ,KAAAiS,QAAA,aAQA0jK,SAAA,SAAAl1K,EAAA8X,GACAvY,KAAAiyD,QAAA0jH,WACA31K,KAAAiyD,QAAA0jH,SAAAl1K,EAAA8X,GACAvY,KAAA01K,iBAQAK,YAAA,SAAAt1K,GACAT,KAAAiyD,QAAA8jH,cACA/1K,KAAAiyD,QAAA8jH,YAAAt1K,GACAT,KAAA01K,iBAQAO,WAAA,WACAj2K,KAAAiyD,QAAAgkH,aACAj2K,KAAAiyD,QAAAgkH,aACAj2K,KAAA01K,iBAOAA,aAAA,WACA11K,KAAAqoZ,oBAAA,GAMAC,wBAAA,WACAtoZ,KAAAqoZ,oBAAA,EACAroZ,KAAAiyD,QAAAyjH,cAAA11K,KAAAiyD,QAAAyjH,gBAUAl5J,OAAA,SAAA3R,GACAA,QACA7K,KAAAiyD,QAAAz1C,OAAA3R,EAAAmO,MAAAnO,EAAAoO,QACAjZ,KAAAyb,QAAAe,UAMA+rY,eAAA,WACAvoZ,KAAAwB,UAAA4jD,SAMA0M,SAAA,WACA,OAAA9xD,KAAAiyD,QAAAH,YAMAC,UAAA,WACA,OAAA/xD,KAAAiyD,QAAAF,aAsBAyoH,YAAA,SAAAr2K,EAAA4hC,GACA,OAAA/lC,KAAAiyD,QAAAuoH,YAAAr2K,EAAA4hC,IAOAm6R,eAAA,SAAA16P,GACAxlE,KAAAyb,QAAAykT,eAAA16P,IASA6jP,UAAA,SAAAhlT,EAAAE,GACA,OAAAvE,KAAAyb,QAAA4tS,UAAAhlT,EAAAE,IAUAmb,GAAA,SAAA6mB,EAAA45R,EAAAryQ,GACA9tD,KAAAyb,QAAAiE,GAAA6mB,EAAA45R,EAAAryQ,IAQAuC,IAAA,SAAA9pB,EAAA45R,GACAngU,KAAAyb,QAAA40C,IAAA9pB,EAAA45R,IASAluT,QAAA,SAAAs0B,EAAAgxB,GACAv3D,KAAAyb,QAAAxJ,QAAAs0B,EAAAgxB,IAMAnS,MAAA,WACAplD,KAAAsyD,QAAA0lI,UACAh4L,KAAAiyD,QAAA7M,SAMArgD,QAAA,WA/VA,IAAArD,EAgWA1B,KAAAwB,UAAAM,OACA9B,KAAAolD,QACAplD,KAAAsyD,QAAAvtD,UACA/E,KAAAiyD,QAAAltD,UACA/E,KAAAyb,QAAA1W,UACA/E,KAAAwB,UAAAxB,KAAAsyD,QAAAtyD,KAAAiyD,QAAAjyD,KAAAyb,QAAA,KArWA/Z,EAsWA1B,KAAA0B,UArWA4xD,EAAA5xD,KAwWAyB,EAAAm5D,QA9ZA,QA+ZAn5D,EAAAqb,KAnZA,SAAAyvC,EAAApjD,GACA,IAAAnK,EAAA,IAAAknZ,EAAA/7M,IAAA59I,EAAApjD,GAEA,OADAyoD,EAAA5yD,EAAAgB,IAAAhB,EACAA,GAiZAyC,EAAA4B,QAzYA,SAAArE,GACA,GAAAA,EACAA,EAAAqE,cACG,CACH,QAAAgF,KAAAupD,EACAA,EAAAzwD,eAAAkH,IACAupD,EAAAvpD,GAAAhF,UAIAuuD,KAGA,OAAAtzD,MA6XAmD,EAAA2kD,YApXA,SAAApmD,GACA,OAAA4xD,EAAA5xD,IAoXAyB,EAAAo1U,gBAjXA,SAAA31U,EAAA8oO,GACAi8K,EAAA/kZ,GAAA8oO,2BCrFA,IAAA2tJ,EAAiB95X,EAAQ,QAEzBkmM,EAAgBlmM,EAAQ,QA8BxBs5X,EAAA,SAAAj2X,GAIA5C,KAAA4C,QAAA,GAMA5C,KAAAuX,GAAA,EAMAvX,KAAAwX,GAAA,EAMAxX,KAAAwoZ,YAAA,IAAAnvB,EAMAr5X,KAAAyoZ,WAAA,IAAAhjN,EACAzlM,KAAAwoZ,YAAA/sX,MAAAz7B,KAAAyoZ,WAAAhtX,MAAAz7B,MAGA64X,EAAA34X,WACAsD,KAAA,QACA0/D,oBAAA,EACA/iE,YAAA04X,EAMA92V,YAAA,kBAKAxK,MAAA,KAOAkT,aAAA,SAAAJ,GACA,IAAAjI,EAAApiC,KAAAy0N,aAAApqL,GACA,OAAArqC,KAAAwoZ,YAAA99W,QAAAtI,EAAA,KAAApiC,KAAAyoZ,WAAA/9W,QAAAtI,EAAA,KAQAq3J,YAAA,SAAA3oL,GACA,OAAA9Q,KAAAwoZ,YAAA/uN,YAAA3oL,EAAA,KAAA9Q,KAAAyoZ,WAAAhvN,YAAA3oL,EAAA,KAOA8b,QAAA,SAAAyL,GACA,OAAAr4B,KAAA,IAAAq4B,EAAA,SAMAurC,QAAA,WACA,OAAA5jE,KAAAwoZ,YAAAxoZ,KAAAyoZ,aAQAxqX,eAAA,SAAA4yI,GACA,IAAA4e,KACA/zJ,EAAA17B,KAAAyoZ,WACAluW,EAAAv6C,KAAAwoZ,YAGA,OAFA9sX,EAAAnqB,MAAA/N,OAAAqtK,GAAA4e,EAAAluL,KAAAm6B,GACA6e,EAAAhpC,MAAA/N,OAAAqtK,GAAA4e,EAAAluL,KAAAg5C,GACAk1I,GAMA9zJ,aAAA,WACA,OAAA37B,KAAAyoZ,YAMA5sX,cAAA,WACA,OAAA77B,KAAAwoZ,aAOA9xX,aAAA,SAAAjB,GACA,IAAAiG,EAAA17B,KAAAyoZ,WACA,OAAAhzX,IAAAiG,EAAA17B,KAAAwoZ,YAAA9sX,GAQAoB,YAAA,WACA,OAAA98B,KAAAi+B,eAAA,eAAAj+B,KAAAi+B,eAAA,YAAAj+B,KAAA27B,gBAOAkoC,eAAA,SAAAxrC,GACA,IAAAiF,EAAA,MAAAjF,GAAA,SAAAA,EAAAr4B,KAAA4sB,QAAAyL,GAAAr4B,KAAA88B,cACA,OACAgnC,UAAAxmC,GACAgsC,WAAAtpE,KAAA02B,aAAA4G,MAWA2M,YAAA,SAAAn5B,EAAA40L,GACA,OAAA1lM,KAAA06C,cAAA16C,KAAAwoZ,YAAAhuW,aAAA1pC,EAAA,GAAA40L,GAAA1lM,KAAAyoZ,WAAAhuW,YAAA3pC,EAAA,GAAA40L,MASAt7J,YAAA,SAAAC,EAAAq7J,GACA,IAAAtjK,EAAApiC,KAAAy0N,aAAApqL,GACA,OAAArqC,KAAAwoZ,YAAAlvB,aAAAl3V,EAAA,GAAAsjK,GAAA1lM,KAAAyoZ,WAAA9iN,YAAAvjK,EAAA,GAAAsjK,KAQA+uB,aAAA,SAAApqL,GACA,IAAA0D,EAAA1D,EAAA,GAAArqC,KAAAuX,GACAy2B,EAAA3D,EAAA,GAAArqC,KAAAwX,GACAkkB,EAAA17B,KAAA27B,eACAX,EAAAU,EAAAI,YACA8wJ,EAAA7kL,KAAAC,IAAAgzB,EAAA,GAAAA,EAAA,IACA0tX,EAAA3gZ,KAAAE,IAAA+yB,EAAA,GAAAA,EAAA,IAGAU,EAAAa,QAAAqwJ,EAAA87N,EAAA,IAAAA,EAAA97N,EAAA,IACA,IAAAjqK,EAAA5a,KAAAyjC,KAAAuC,IAAAC,KACAD,GAAAprB,EACAqrB,GAAArrB,EAKA,IAJA,IAAA+yT,EAAA3tU,KAAAkmC,OAAAD,EAAAD,GAAAhmC,KAAAgwB,GAAA,IAEAoD,EAAAu6S,EAAA9oJ,EAAA,KAEA8oJ,EAAA9oJ,GAAA8oJ,EAAAgzE,GACAhzE,GAAA,IAAAv6S,EAGA,OAAAxY,EAAA+yT,IAQAh7R,aAAA,SAAAtY,GACA,IAAAzf,EAAAyf,EAAA,GACAszS,EAAAtzS,EAAA,OAAAr6B,KAAAgwB,GAIA,OAHAhwB,KAAA0jC,IAAAiqS,GAAA/yT,EAAA3iB,KAAAuX,IAEAxP,KAAA2jC,IAAAgqS,GAAA/yT,EAAA3iB,KAAAwX,MAIA,IAAAvU,EAAA41X,EACA31X,EAAAC,QAAAF,sBC7OAC,EAAAC,QAAA,SAAAu9D,GACA,QAAAhzD,GAAAgzD,EAAA,MAAA1c,UAAA,yBAAA0c,GACA,OAAAA,yBCHA,IAAA7mC,EAAat6B,EAAQ,QAErBu6B,EAAiBv6B,EAAQ,QAEzBm4C,EAAiBn4C,EAAQ,QAEzBklL,EAAWllL,EAAQ,QAEnBi5L,EAAmBj5L,EAAQ,QAsB3B,SAAAopZ,EAAAt5N,EAAA7zJ,EAAA53B,GACA,IAAAy3B,EAAAG,EAAAnN,iBACAghK,EAAA5wJ,KAAA,SAAA6B,GACA,IACA+J,EADA66B,EAAAmqH,EAAAlqH,aAAA7kC,GAEAw5J,EAAApiJ,EAAAhL,aAAAw4B,EAAAlhE,IAAA,KAAAJ,EAAAkuD,YACAioI,EAAAriJ,EAAAhL,aAAAw4B,EAAAlhE,IAAA,KAAAJ,EAAAmuD,aAEA,GAAAtnD,MAAAqvL,IAAArvL,MAAAsvL,IAGA,GAAAv+J,EAAAw+J,kBAEA3vJ,EAAA7O,EAAAw+J,kBAAA3K,EAAA4K,UAAA5K,EAAAttJ,WAAAzB,SACO,GAAAjF,EAAA,CACP,IAAAh3B,EAAAgrL,EAAArrL,IAAAq3B,EAAA0G,WAAA,GAAAzB,GACA/7B,EAAA8qL,EAAArrL,IAAAq3B,EAAA0G,WAAA,GAAAzB,GACA+J,EAAAhP,EAAA4O,aAAA5lC,EAAAE,UARA8lC,GAAAyvJ,EAAAC,GAYAtvL,MAAAqvL,KACAzvJ,EAAA,GAAAyvJ,GAGArvL,MAAAsvL,KACA1vJ,EAAA,GAAA0vJ,GAGA1K,EAAA1F,cAAArpJ,EAAA+J,KAIA,IAAApnC,EArDiB1D,EAAQ,QAqDzBmK,QACAlG,KAAA,YAUAgmC,gBAAA,SAAAo/W,EAAAjlZ,EAAAC,GACAD,EAAAqxD,WAAA,SAAAx5B,GACA,IAAAqtX,EAAArtX,EAAAotX,eAEAC,IACAF,EAAAE,EAAA38X,UAAAsP,EAAA53B,GACA5D,KAAAs6L,eAAAt2L,IAAAw3B,EAAA95B,IAAA8zD,aAAAqzV,KAEK7oZ,OAELuxD,aAAA,SAAA/1B,EAAAqtX,EAAAllZ,EAAAC,GACA,IAAAy3B,EAAAG,EAAAnN,iBACAg2C,EAAA7oC,EAAA95B,GACA6mB,EAAAiT,EAAAtP,UACA48X,EAAA9oZ,KAAAs6L,eACAv7J,EAAA+pX,EAAA9kZ,IAAAqgE,IAAAykV,EAAA9jW,IAAAqf,EAAA,IAAAvqC,GACAu1J,EAyCA,SAAAh0J,EAAAG,EAAAqtX,GACA,IAAAruN,EAGAA,EADAn/J,EACAxB,EAAAlpB,IAAA0qB,KAAA0G,WAAA,SAAAH,GACA,IAAAk5C,EAAAt/C,EAAAtP,UAAA+V,iBAAAzG,EAAAtP,UAAAsS,aAAAoD,QAEA,OAAA/H,EAAAmJ,UACApgC,KAAAg/B,GACOk5C,OAIPl4E,KAAA,QACAY,KAAA,UAIA,IAAA6rL,EAAA,IAAA5K,EAAA+V,EAAAquN,GACAtuK,EAAA1gN,EAAAlpB,IAAAk4Y,EAAA7kZ,IAAA,QAAA61B,EAAA0Q,MAAAiuJ,EAAAW,cAAA39J,IAEAH,IACAk/M,EAAA1gN,EAAAzS,OAAAmzN,EAAA1gN,EAAA0Q,MAAAiuJ,EAAAmB,WAAAt+J,KAMA,OAHAg0J,EAAApiG,SAAAstJ,EAAA,KAAAl/M,EAAAm9J,EAAAkC,eAAA,SAAA/tL,GACA,OAAAA,EAAApF,QAEA8nL,EArEAsL,CAAAt/J,EAAAG,EAAAqtX,GAEAA,EAAA9rO,QAAAsS,GACAs5N,EAAAE,EAAA38X,UAAAsP,EAAA53B,GACAyrL,EAAA5wJ,KAAA,SAAA6B,GACA,IAAA4kC,EAAAmqH,EAAAlqH,aAAA7kC,GACArR,EAAAi2C,EAAAG,WAAA,cAEA,mBAAAp2C,IAEAA,IAAA45X,EAAA/uM,YAAAx5K,GAAAuoX,EAAAtuV,cAAAj6B,KAGA+uJ,EAAAptH,cAAA3hC,GACArR,aACA9oB,MAAA++D,EAAAlhE,IAAA,oBAAAukB,EAAAoZ,UAAA,SACA3S,OAAAk2C,EAAAG,WAAA,cAIAtmC,EAAAkC,WAAAouJ,GACArvL,KAAAg/B,MAAAC,IAAAF,EAAAC,OAGAqwJ,EAAA1uJ,kBAAA,SAAAlgC,GACAA,EAAAk4D,SAAA,SAAArsB,GACAA,EAAAguB,UAAAuuV,MAGA9pX,EAAAm8J,QAAA,EACAn8J,EAAAC,MAAAmF,OAAA0kX,EAAA7kZ,IAAA,WAAAw3B,EAAAx3B,IAAA,aA0CAd,EAAAC,QAAAF,wBClKA,IAAAkoC,EAAW5rC,EAAQ,QAEnBwpZ,EAAiBxpZ,EAAQ,QAKzB0D,EAAAkoC,EAAAzhC,QACAlG,KAAA,WACAukB,OACAqV,OAAA,KACA13B,QAAA,EACAoxN,iBAAA,MAEAv+M,OACA2qB,OAAA,OACAxrB,KAAA,MAEAg4B,UAAA,SAAA7J,EAAA9d,GACAghY,EAAAr5W,UAAA7J,EAAA9d,GAAA,MAIA7kB,EAAAC,QAAAF,wBCvBA,IACA47C,EADat/C,EAAQ,QACrBs/C,UAEA37C,EAAAC,QAAA07C,KAAAC,WAAA,yBCFA,IAAA+4P,EAAet4S,EAAQ,QACvBi0U,EAAgBj0U,EAAQ,QACxB2hL,EAAc3hL,EAAQ,OAARA,CAAgB,WAC9B2D,EAAAC,QAAA,SAAAo9D,EAAAk+F,GACA,IACAyB,EADAjwH,EAAA4nQ,EAAAt3O,GAAApgE,YAEA,YAAAuN,IAAAuiC,QAAAviC,IAAAwyJ,EAAA23I,EAAA5nQ,GAAAixI,IAAAziB,EAAA+0K,EAAAtzK,0BCPA,IAAArmI,EAAat6B,EAAQ,QAoBrBypZ,GAAA,iCAwDA9lZ,EAAAC,QAtDA,SAAA8Z,EAAA20V,GACA,IAAAq3C,EAAAhsY,KAAA5C,MAMA,GAJAwf,EAAA/tB,QAAAm9Y,KACAA,YAGAA,EAAAhoZ,OAAA,CAIA,IAAAioZ,KACArvX,EAAA4E,KAAAwqX,EAAA,SAAAE,GACA,IAAAC,EAAAD,EAAAtmZ,eAAA,WAAAsmZ,EAAAnvY,WAEAovY,aAAAv9Y,QACAq9Y,IAAAn0Y,OAAAq0Y,MAGA,IAAApvY,EAAAiD,KAAAjD,QAEA6f,EAAA/tB,QAAAkO,KACAA,IAAA,IAGAA,IACAA,GACAq2K,YAEApzK,EAAAjD,aAGA,IAWApO,EACA+E,EAZA04Y,EAAArvY,EAAAq2K,UAAAr2K,EAAAq2K,YACAi5N,EAAAD,EAAAhvY,QAAAgvY,EAAAhvY,UACAkvY,EAAAD,EAAA9lZ,OAAA8lZ,EAAA9lZ,SACA+lZ,EAAAhoZ,KAAAgL,MAAAg9Y,EAAAL,GAQAt9Y,EAPA29Y,EAQA54Y,KACAkpB,EAAA4E,KAAA7yB,EAAA,SAAA2B,GACAoD,EAAApD,GAAA,IAEA3B,EAAA3K,OAAA,EACA44B,EAAA4E,KAAA9tB,EAAA,SAAA64Y,EAAAj8Y,GACA3B,EAAArK,KAAAgM,KAZAqkW,IAAA23C,EAAAtoZ,QACAsoZ,EAAAhoZ,KAAAgL,MAAAg9Y,EAAAP,2BC7DA,IAAAnvX,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBs5N,EAAiBt5N,EAAQ,QAEzBkqZ,EAAiBlqZ,EAAQ,QAwBzBu/B,EAAAtkB,EAAAskB,MACAopK,GAAA,kBACAD,GAAA,SACAyhN,EAAAD,EAAA//Y,QACAlG,KAAA,gBACAgzU,iBAAA,EACAh4T,KAAA,WACAkrY,EAAAviO,UAAAnnL,KAAA,QAMAA,KAAA2pZ,cAAA,EAMA3pZ,KAAAg/B,MAAAC,IAAAj/B,KAAA4pZ,gBAAA,IAAA9qX,GAEA9+B,KAAA4pZ,gBAAA3qX,IAAAj/B,KAAA22U,mBAOA32U,KAAAg/B,MAAAC,IAAAj/B,KAAA6pZ,iBAAA,IAAA/qX,GAMA9+B,KAAA8pZ,iBAMAlzE,WAAA,WACA8yE,EAAAviO,UAAAnnL,KAAA,cAEAA,KAAA6pZ,iBAAA3kX,YAEAllC,KAAA4pZ,gBAAAxiV,iBAEApnE,KAAA4pZ,gBAAAG,WAAA,MAMAlzE,YAAA,SAAAhhL,EAAAylC,EAAA33L,EAAAC,GACA,IAAAk/Y,EAAA9iZ,KAEA0pZ,EAAAviO,UAAAnnL,KAAA,cAAA61J,EAAAylC,EAAA33L,EAAAC,GACA,IAAAomZ,EAAAhqZ,KAAA6pZ,iBACA9jG,EAAAzqH,EAAAt3L,IAAA,mBAEA61B,EAAA/tB,QAAAi6S,KACAA,SAGAkkG,EAAA,cACA,IAAAC,EAAA5uN,EAAAj8J,SAAA,iBAaA,SAAA4qX,EAAArnZ,EAAAunZ,GACA,IAAAC,EAAAxnZ,EAAA,YACA4wE,EAAAh5D,EAAA46Q,WAAA95F,EAAAt3L,IAAA,gBAAAs3L,EAAAmH,YAAA7/L,MAAAunZ,IAGAz7L,QAAA70L,EAAArvB,KAAAs4Y,EAAAuH,QAAAvH,EAAAsH,EAAA9uN,EAAA13L,KAEAS,GAAA0hT,EAAA,KACAxhT,GAAAwhT,EAAA,KACA/sS,MAAA+sS,EAAA,GACA9sS,OAAA8sS,EAAA,KAEAvyO,EAAA5wE,OACAonZ,EAAA/qX,IAAAu0C,GAzBAw2U,EAAA/qX,IAAA,IAAAzkB,EAAA0wB,MACAtoC,KAAA,WACA2V,OACA++B,SAAA4yW,EAAAz0P,eACA/gH,KAAAw1W,EAAA10P,UACA7/G,kBAAA,SACAD,UAAA,UAEAvR,QAAA,KAEA8lX,EAAA,eAsBAlzE,YAAA,SAAAz7I,EAAAzlC,EAAAmmB,GACA,IAAAg7J,EAAAh3U,KAAA22U,kBACAznC,EAAAlvS,KAAA4pZ,gBACAI,EAAAhqZ,KAAA6pZ,iBACAS,EAAAhvN,EAAAmH,YAAA71L,MACAutK,EAAA+tB,EAAAoiN,GACAC,EAAAriN,EAAA,EAAAoiN,GACAE,EAAAviN,EAAA,EAAAqiN,GAEAzxL,EAAAt2H,IAAA+4F,EAAAt3L,IAAA,UAAAgzU,EAAA17I,EAAAt3L,IAAA,WAAAsmZ,EAAAtuO,EAAAhjK,MAAA,KAAAsxY,EAAA,KAAAtuO,EAAA/iK,QACA4/M,EAAAt2H,IACA,aAAAynT,EAAA1uN,EAAAt3L,IAAA,yBACA,IAAAkmD,EAAA8sR,EAAAlvS,kBACA2iX,EAAAT,EAAAliX,kBACA4iX,EAAA1qZ,KAAA8pZ,gBAAA5/V,EAAAiwH,GAAA6B,EAAA7B,GACAwwO,IAAAzgW,EAAA7lD,GAAA6lD,EAAA3lD,GAEAomZ,EAAAL,GAAAtzE,EAAA5oU,SAAAk8Y,GAEA,IAAAM,GAAA,KACAC,IAAAJ,EAAApmZ,GAAAomZ,EAAAlmZ,GACAkhT,EAAA5rR,EAAAogL,UAAA3e,EAAAt3L,IAAA,oBAAAs3L,EAAAt3L,IAAA,eAEA0mZ,IAGA,QAFApvN,EAAAt3L,IAAA,yBAGA6mZ,EAAAP,IAAAtuO,EAAA7B,GAAAswO,EAAAtwO,GAGAywO,EAAAN,IAAAG,EAAAtwO,GAAAsrI,GAKAolG,EAAA,EAAAP,IAAApgW,EAAAqgW,GAAA,EAAAE,EAAAF,GAAA,EACAvzE,EAAAj0U,KAAA,WAAA4nZ,GACAz7G,EAAAnsS,KAAA,WAAA6nZ,GACAZ,EAAAjnZ,KAAA,WAAA8nZ,GAIA,IAAA/zE,EAAA92U,KAAAg/B,MAAA8I,kBAYA,IAXAgvS,GACAzyU,EAAA,EACAE,EAAA,IAGA41K,GAAAuwO,EAAA1uO,EAAA7B,GAAAjwH,EAAAiwH,GACA28J,EAAAyzE,GAAAxiZ,KAAAE,IAAAiiD,EAAAqgW,GAAAE,EAAAF,IAEAzzE,EAAA0zE,GAAAziZ,KAAAC,IAAA,EAAAyiZ,EAAAD,GAAAK,EAAA,EAAAP,IACAp7G,EAAA66G,WAAA/tO,EAAA7B,GAEAuwO,EAAA,CACA,IAAAvpX,GACA98B,EAAA,EACAE,EAAA,GAEA48B,EAAAg5I,GAAApyK,KAAAE,IAAA+zK,EAAA7B,GAAAswO,EAAAtwO,GAAAsrI,EAAA,GACAtkR,EAAAopX,GAAAzzE,EAAAyzE,GACAr7G,EAAAluQ,YAAA,IAAAxmB,EAAAyiB,MACAlV,MAAAoZ,KAIA+tQ,EAAA66G,WAAA5oX,EAAAg5I,QAGA6vO,EAAAhjV,UAAA,SAAA16B,GACAA,EAAAvpC,MACAs0J,WAAA,EACAlzH,QAAA,MAMA,IAAA2mX,EAAA9qZ,KAAA+qZ,aAAAzvN,GAUA,OARA,MAAAwvN,EAAAE,WAAAxwY,EAAAoqB,YAAAoyS,GACA5oU,SAAA08Y,EAAAG,mBAGAP,GAAApvN,GAEAt7L,KAAAkrZ,oBAAA5vN,EAAAwvN,GAEAh0E,GAEAuzE,QAAA,SAAAnzW,EAAAokJ,EAAA13L,GACA,IAAA+4M,EAAA38M,KAAA+qZ,aAAAzvN,GAAApkJ,GAEA,MAAAylK,GAAA/4M,EAAAQ,gBACAZ,KAAA,eACAm5M,kBACAwuM,SAAA7vN,EAAA55L,MAGAwpZ,oBAAA,SAAA5vN,EAAAwvN,GACA,IAAAd,EAAAhqZ,KAAA6pZ,iBACAhwX,EAAA4E,MAAA,gCAAA77B,GACA,IAAAwoZ,EAAA,MAAAN,EAAAloZ,EAAA,aACA4wE,EAAAw2U,EAAAxxM,YAAA51M,GAEA4wE,IACAA,EAAAl3B,SAAA,OAAA8uW,EAAA9vN,EAAAt3L,IAAA,oBAAAs3L,EAAAt3L,IAAA,6BACAwvE,EAAApkD,OAAAg8X,EAAA,uBAGA,IAAAC,EAAArB,EAAAxxM,YAAA,YACAmtG,EAAArqH,EAAAt3L,IAAA,iBACAgnZ,EAAAF,EAAAE,UACAzmX,EAAA,MAAAymX,IAAA,IACA53R,EAAA03R,EAAAQ,UACAD,GAAA1lG,GAAA0lG,EAAA/uW,SAAA,OAAAziB,EAAAn6B,SAAAimT,KAAAp9S,QAAA,YAA4Hg8B,GAAAh8B,QAAA,UAA4B6qH,GAAAuyL,GACxJphR,UACA6uF,YAcA23R,aAAA,SAAAzvN,GAEA,IASA0vN,EACAO,EACAC,EACAC,EAZAC,EAAApwN,EAAAt3L,IAAA,sBACAgzU,EAAAh3U,KAAA22U,kBACAzsR,EAAA8sR,EAAAlvS,kBACA6jX,EAAA3rZ,KAAA4pZ,gBAAAG,WACAO,EAAAhvN,EAAAmH,YAAA71L,MACAutK,EAAA+tB,EAAAoiN,GACAC,EAAAriN,EAAA,EAAAoiN,GACAv9G,EAAA9kG,EAAAqiN,GACAK,EAAA3zE,EAAA5oU,SAAA9L,QAMAtC,KAAA8pZ,gBACA9yE,EAAAhwQ,UAAA,SAAA16B,GACAA,EAAAyrS,oBAAA2zE,IACAD,EAAAn/W,KAIAm/W,EAAAz0E,EAAA/xQ,QAAA,GAGA,IAAAqmV,EAAAK,EAAA5jZ,KAAAowC,KAAA+R,EAAAiwH,GAAAwxO,GAAA,EAEA,GAAAF,EAAA,CACA,IAAAG,EAAAH,EAAA3jX,kBACA+jX,EAAAJ,EAAAr9Y,SAAAk8Y,GAAAsB,EAAA7+G,GACA49G,EAAAL,IAAAuB,EAAA3hW,EAAA6iP,GACAi+G,EAAAjjZ,KAAAkwC,MAAAqzW,GAAAO,EAAAD,EAAA7+G,GAAA4+G,EAAA,GAAAzhW,EAAAiwH,IACA6wO,EAAA9gW,EAAAiwH,IAAAmxO,EAAAvjZ,KAAAE,IAAA,EAAAF,KAAAC,IAAAsjZ,EAAA,EAAAN,KAAA,EACA,IAOAvgJ,EAPAqhJ,GACAznZ,EAAA,EACAE,EAAA,GAEAunZ,EAAA3xO,GAAAwxO,EACAG,EAAAvB,GAAArgW,EAAAqgW,GACAuB,EAAA/+G,IAAA49G,EAAAL,GAAApgW,EAAA6iP,GAEA,IAAAxkH,EAAAyuJ,EAAAzuJ,WAkBA,GAjBAyuJ,EAAAhwQ,UAAA,SAAA16B,EAAA1/B,GACA,IAAAg/Y,EAAAG,EAAAz/W,GAEAs/W,EAAA3zO,UAAA6zO,KACA,MAAArhJ,MAAA79P,GAGA4+Y,EAAAl/W,EAAAyrS,mBAIAnrU,IAAA27K,EAAAtnL,OAAA,GAAA2qZ,EAAA7+G,GAAA6+G,EAAAzxO,IAAA2xO,EAAA/+G,GAAA++G,EAAA3xO,KACAqxO,EAAA,QAKA,MAAA/gJ,EAAA,CACA,IACAuhJ,EAAAD,EADAxjO,EAAAkiF,IAIA,GAFAqhJ,EAAA/+G,GAAAi/G,EAAAj/G,GAAAi/G,EAAA7xO,GAAA2xO,EAAA3xO,GAEAswF,GAAA,GAAAuhJ,EAAAj/G,IAAA++G,EAAA/+G,GACAw+G,EAAA,SACS,CACT,KAAA9gJ,EAAA,GAAAshJ,EAAAxjO,EAAAkiF,EAAA,IAAAxyF,UAAA6zO,IACArhJ,IAGA8gJ,EAAAhjO,EAAAkiF,GAAAstE,oBAKA,OACAkzE,gBAAAN,EACAK,YACAM,YACAC,oBACAC,qBAGA,SAAAO,EAAAtrZ,GACA,IAAAmrZ,EAAAnrZ,EAAAqnC,kBAAAkC,QAEA,OADA4hX,EAAA7+G,IAAAtsS,EAAA2N,SAAAk8Y,GACAsB,MAIA3oZ,EAAAymZ,EACAxmZ,EAAAC,QAAAF,wBChWAC,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAA4B6xE,YAAA,yBCAlE,IAAAv3C,EAAat6B,EAAQ,QAErBklL,EAAWllL,EAAQ,QAEnBq9U,EAAYr9U,EAAQ,QAEpB2oL,EAAe3oL,EAAQ,QAEvB4oL,EAAuB5oL,EAAQ,QAE/B49D,EAAuB59D,EAAQ,QAE/BmpK,EAA0BnpK,EAAQ,QAyFlC2D,EAAAC,QArEA,SAAAmiL,EAAAJ,EAAA1pJ,EAAAqhT,EAAAovE,GAKA,IAFA,IAAA/8O,EAAA,IAAA0tK,EAAAC,GAEA97U,EAAA,EAAiBA,EAAAukL,EAAArkL,OAAkBF,IACnCmuK,EAAAouK,QAAAzjT,EAAAmuC,SACAs9G,EAAAvkL,GAAAW,GAAA4jL,EAAAvkL,GAAA6B,KAAA7B,MAGA,IAAAmrZ,KACAC,KACAC,EAAA,EAEA,IAAArrZ,EAAA,EAAiBA,EAAAmkL,EAAAjkL,OAAkBF,IAAA,CACnC,IAAAyN,EAAA02K,EAAAnkL,GACA0B,EAAA+L,EAAA/L,OACAlC,EAAAiO,EAAAjO,OAEA2uK,EAAAsuK,QAAA/6U,EAAAlC,EAAA6rZ,KACAD,EAAA5qZ,KAAAiN,GACA09Y,EAAA3qZ,KAAAs4B,EAAAmuC,SAAAx5D,EAAA9M,GAAAe,EAAA,MAAAlC,IACA6rZ,KAIA,IACA7mO,EADAlqJ,EAAAG,EAAAx3B,IAAA,oBAGA,mBAAAq3B,GAAA,UAAAA,EACAkqJ,EAAA7c,EAAA4c,EAAA9pJ,OACG,CACH,IAAA6wX,EAAAlvV,EAAAn5D,IAAAq3B,GACA+vJ,EAAAihO,GAAA,SAAAA,EAAA7oZ,MAAA6oZ,EAAAtqX,eAIAlI,EAAA/5B,QAAAsrL,EAAA,YACAA,EAAAr2K,QAAA,UAGA,IAAAgkR,EAAA5wG,EAAA7C,GACA8F,qBAEA7F,EAAA,IAAAd,EAAAs0G,EAAAv9P,IACAyxD,SAAAq4F,GAGA,IAAAE,EAAA,IAAAf,GAAA,SAAAjpJ,GAkBA,OAjBAgqJ,EAAAv4F,SAAAk/T,EAAAD,GACAD,KAAA1mO,EAAAC,GACA0C,GACA9hK,SAAAm/J,EACA+F,OAAApc,EACAqc,WAAA,QACA0xM,OACA/jU,KAAAqsH,EACAoB,KAAAnB,GAEA83M,WACApkU,KAAA,OACAytH,KAAA,cAIAzX,EAAA3yH,SACA2yH,yBClGA,IAAA05C,EAAgBrpN,EAAQ,QAKxB+sZ,EAAA,WAKAtsZ,KAAAg4W,WAkDA,SAAAnkL,EAAA04N,GACA,IAAAx+W,EAAAw+W,EAAA,MAAAA,EAAA,MACAv+W,EAAAu+W,EAAA,MAAAA,EAAA,MACA,OAAAxkZ,KAAAyjC,KAAAuC,IAAAC,KAlDAs+W,EAAApsZ,WACAC,YAAAmsZ,EACAE,UAAA,SAAAj1V,EAAAh3D,EAAAs6C,GAGA,OAFA76C,KAAAysZ,SAAAl1V,EAAAh3D,EAAAs6C,GAEA76C,KAAA0sZ,WAAAn1V,IAEAnS,MAAA,WAEA,OADAplD,KAAAg4W,OAAA/2W,OAAA,EACAjB,MAEAysZ,SAAA,SAAAl1V,EAAAh3D,EAAAs6C,GACA,IAAA8xW,EAAAp1V,EAAAo1V,QAEA,GAAAA,EAAA,CAWA,IAPA,IAAAC,GACAxvX,UACAuvX,WACApsZ,SACAg3D,SAGAx2D,EAAA,EAAAc,EAAA8qZ,EAAA1rZ,OAAyCF,EAAAc,EAASd,IAAA,CAClD,IAAAgxL,EAAA46N,EAAA5rZ,GACA2wB,EAAAk3L,EAAA33B,cAAAp2I,EAAAk3I,MACA66N,EAAAxvX,OAAA77B,MAAAmwB,EAAA4/J,IAAA5/J,EAAA6/J,MACAq7N,EAAAD,QAAAprZ,KAAAwwL,GAGA/xL,KAAAg4W,OAAAz2W,KAAAqrZ,KAEAF,WAAA,SAAAn1V,GACA,QAAAhxB,KAAAsmX,EACA,GAAAA,EAAAhqZ,eAAA0jC,GAAA,CACA,IAAAumX,EAAAD,EAAAtmX,GAAAvmC,KAAAg4W,OAAAzgT,GAEA,GAAAu1V,EACA,OAAAA,KAiBA,IAAAD,GACA7wP,MAAA,SAAA/qE,EAAA15B,GACA,IAAA64N,EAAAn/L,EAAAhwF,OAEA,GAAAmvR,EAAA,CAIA,IAZAm8H,EAYAQ,GAAA97T,EAAAm/L,EAAA,QAA6ChzP,OAC7C4vX,GAAA/7T,EAAAm/L,EAAA,QAA6ChzP,QAAA2vX,EAE7C,GAAAC,KAAA/rZ,OAAA,GAAA8rZ,KAAA9rZ,OAAA,GACA,IAAAm8J,EAAAy2B,EAAAk5N,GAAAl5N,EAAAm5N,IACA1uW,SAAA8+G,OAAA,GACA7lG,EAAA6lG,aACA,IAAA6vP,KAnBAV,EAmBAQ,GAlBA,MAAAR,EAAA,UAAAA,EAAA,MAAAA,EAAA,UAqBA,OAFAh1V,EAAA8lG,OAAA4vP,EAAA,GACA11V,EAAA+lG,OAAA2vP,EAAA,IAEAzpZ,KAAA,QACAjD,OAAA0wF,EAAA,GAAA1wF,OACAg3D,aAMAt0D,EAAAqpZ,EACAppZ,EAAAC,QAAAF,wBClGA,IAAAuoM,EAAiBjsM,EAAQ,QAEzBu2B,EAAsBv2B,EAAQ,QAE9Bib,EAAcjb,EAAQ,QAEtBw2B,EAAiBx2B,EAAQ,QAEzBqnC,EAAarnC,EAAQ,QAErBqxJ,EAAkBrxJ,EAAQ,QAE1B02B,EAAe12B,EAAQ,QAoBvB2tZ,EAAAp3X,EAAApsB,QAIAysB,aAAA,SAAAC,EAAA7uB,EAAA8uB,EAAAC,EAAA1yB,GACA,IAAA6xB,EAAAY,EAAAZ,KAEA,UAAAA,EAAA4C,MACAr4B,KAAAs6T,mBAAAvyT,KAAAgwB,GAAA,IAGA,IAGAo1X,EAHA1xX,EAAAhG,EAAAgG,MAEAjF,EADAiF,EAAA/E,aAAAjB,GACAqG,YAEAqxX,EAAA13X,EAAA,SAAA+1K,EAAA4hN,aAAA33X,EAAA4C,MAAA9wB,GACA,IAAAgvB,EAAAD,EAAAtyB,IAAA,QAEA,GAAAuyB,GAAA,SAAAA,EAAA,CACA,IAAAQ,EAAAhB,EAAAiB,aAAAV,GACAW,EAAAC,EAAAX,GAAAd,EAAAgG,EAAA0xX,EAAA32X,EAAAO,GACAE,EAAA1e,MAAAwe,EACAX,EAAAe,WAAAF,EAAAzzB,KACA4yB,EAAAgB,QAAAH,EAGA,IACA+4U,EAMA,SAAAzoW,EAAA8uB,EAAAC,EAAAmF,EAAA9D,GACA,IAAAlC,EAAAY,EAAAZ,KACA2M,EAAA3M,EAAAqB,YAAAvvB,GACA2zX,EAAAz/V,EAAAE,eAAAG,YAAA,GACAo/V,IAAA,IAAAnzX,KAAAgwB,GACA,IACA3pB,EACAuqB,EACAD,EAHAkD,EAAAH,EAAAI,gBAAAC,YAKA,cAAArG,EAAA4C,IAAA,CACA,IAAAJ,EAAA2O,EAAA8C,SACA9C,EAAA6hI,OAAAxwI,IAAAijW,GACAt0V,EAAAumL,UAAAl1L,KAAAwD,EAAAlkB,GAAAkkB,EAAAjkB,KACApJ,EAAAoM,EAAAwsB,gBAAA5E,GAAAzK,GAAAM,GACA,IAAAuwI,EAAAnyI,EAAAgJ,SAAA,aAAAr7B,IAAA,aACA6hE,EAAA+qF,EAAAk5K,gBAAAoxD,EAAA1yN,EAAAzgK,KAAAgwB,GAAA,QACAY,EAAAktC,EAAAnwB,UACAhd,EAAAmtC,EAAAlwB,sBACG,CAEH,IAAAl+B,EAAAmkB,EAAA,GACAxtB,EAAAqtB,EAAAif,cAAAjjC,EAAAkgB,EAAAyK,IACA,IAAA7qB,EAAAkkB,EAAAlkB,GACAC,EAAAikB,EAAAjkB,GACAmhB,EAAA5wB,KAAAY,IAAAyF,EAAA,GAAAmJ,GAAAE,EAAA,YAAArJ,EAAA,GAAAmJ,EAAA,eACAmhB,EAAA3wB,KAAAY,IAAAyF,EAAA,GAAAoJ,GAAAC,EAAA,YAAArJ,EAAA,GAAAoJ,EAAA,eAGA,OACApJ,WACAuqB,QACAD,iBAtCA20X,CAAA9lZ,EAAA8uB,EAAAC,EAAAmF,EADAnF,EAAAtyB,IAAA,iBAEA+xB,EAAAg6U,mBAAA35U,EAAAC,EAAAC,EAAA1yB,EAAAosW,MAyCA,IAAA94U,GACAzxB,KAAA,SAAAgwB,EAAAgG,EAAA0xX,EAAA32X,EAAAO,GACA,gBAAAtB,EAAA4C,KACA70B,KAAA,OACAukB,MAAAgO,EAAA+C,cAAA2C,EAAAif,cAAAlkB,EAAA,GAAA22X,IAAA1xX,EAAAif,cAAAlkB,EAAA,GAAA22X,OAEA3pZ,KAAA,SACAukB,OACAxQ,GAAAkkB,EAAAlkB,GACAC,GAAAikB,EAAAjkB,GACAC,EAAA01Y,KAIAl0X,OAAA,SAAAxD,EAAAgG,EAAA0xX,EAAA32X,EAAAO,GACA,IAAAmC,EAAAnxB,KAAAE,IAAA,EAAAwtB,EAAA0D,gBACAu8S,EAAA3tU,KAAAgwB,GAAA,IACA,gBAAAtC,EAAA4C,KACA70B,KAAA,SACAukB,MAAAgO,EAAAq6U,gBAAA30U,EAAAlkB,GAAAkkB,EAAAjkB,GAAAgf,EAAA,GAAAA,EAAA,KACA22X,EAAAj0X,EAAA,GAAAw8S,GAAAx8S,EAAA,EAAAi0X,GAAAz3E,KAEAlyU,KAAA,SACAukB,MAAAgO,EAAAq6U,gBAAA30U,EAAAlkB,GAAAkkB,EAAAjkB,GAAA21Y,EAAAj0X,EAAA,EAAAi0X,EAAAj0X,EAAA,MAAAnxB,KAAAgwB,OAIA9B,EAAAqD,yBAAA,mBAAA4zX,GACA,IAAAjqZ,EAAAiqZ,EACAhqZ,EAAAC,QAAAF,wBClIA,IAAA4nC,EAAkBtrC,EAAQ,QAqB1B,SAAA+tZ,EAAAzgY,EAAAtV,EAAAC,EAAAC,EAAA0jB,EAAAutK,EAAAC,GAKA,SAAA4kN,EAAA/qZ,EAAA0uB,EAAAgH,EAAAiD,GACA,QAAAjI,EAAA1wB,EAAuB0wB,EAAAhC,EAASgC,IAGhC,GAFArG,EAAAqG,GAAA3uB,GAAA2zB,EAEAhF,EAAA1wB,GAAA0wB,EAAA,EAAAhC,GAAArE,EAAAqG,EAAA,GAAA3uB,EAAAsoB,EAAAqG,GAAA3uB,EAAAsoB,EAAAqG,GAAAja,OAEA,YADAu0Y,EAAAt6X,EAAAgF,EAAA,GAKAs1X,EAAAt8X,EAAA,EAAAgH,EAAA,GAIA,SAAAs1X,EAAAt8X,EAAAgH,GACA,QAAAhF,EAAAhC,EAAqBgC,GAAA,IACrBrG,EAAAqG,GAAA3uB,GAAA2zB,IAEAhF,EAAA,GAAArG,EAAAqG,GAAA3uB,EAAAsoB,EAAAqG,EAAA,GAAA3uB,EAAAsoB,EAAAqG,EAAA,GAAAja,SAH6Bia,MAS7B,SAAAu6X,EAAA5gY,EAAA6gY,EAAAn2Y,EAAAC,EAAAC,EAAA0jB,GAQA,IAPA,IAAAwyX,EAAAD,EACA3yY,OAAAqtM,UACA,EAKArnN,EAAA,EAAAC,EAAA6rB,EAAA5rB,OAAoCF,EAAAC,EAAOD,IAE3C,cAAA8rB,EAAA9rB,GAAAqN,SAAA,CAIA,IAAAktO,EAAAvzO,KAAAY,IAAAkkB,EAAA9rB,GAAAwD,EAAAiT,GACAvW,EAAA4rB,EAAA9rB,GAAAc,IACAorL,EAAApgK,EAAA9rB,GAAAkuR,KACA1zC,EAAAD,EAAA7jO,EAAAxW,EAAA8G,KAAAyjC,MAAA/zB,EAAAxW,EAAAgsL,IAAAx1K,EAAAxW,EAAAgsL,GAAAquD,KAAAvzO,KAAAY,IAAAkkB,EAAA9rB,GAAAsD,EAAAkT,GAEAm2Y,GAAAnyK,GAAAoyK,IAEApyK,EAAAoyK,EAAA,KAGAD,GAAAnyK,GAAAoyK,IAEApyK,EAAAoyK,EAAA,IAGA9gY,EAAA9rB,GAAAsD,EAAAkT,EAAAgkO,EAAApgN,EACAwyX,EAAApyK,GA1DA1uN,EAAAvX,KAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAhR,EAAAiR,EAAAjR,IAmEA,IANA,IACA2zB,EADA01X,EAAA,EAEA/rZ,EAAAgrB,EAAA5rB,OACA4sZ,KACAC,KAEA/sZ,EAAA,EAAiBA,EAAAc,EAASd,KAC1Bm3B,EAAArL,EAAA9rB,GAAAwD,EAAAqpZ,GAEA,GACAL,EAAAxsZ,EAAAc,GAAAq2B,GAGA01X,EAAA/gY,EAAA9rB,GAAAwD,EAAAsoB,EAAA9rB,GAAAkY,OAGA0vL,EAAAilN,EAAA,GACAJ,EAAA3rZ,EAAA,EAAA+rZ,EAAAjlN,GAGA,IAAA5nM,EAAA,EAAiBA,EAAAc,EAASd,IAC1B8rB,EAAA9rB,GAAAwD,GAAAiT,EACAs2Y,EAAAvsZ,KAAAsrB,EAAA9rB,IAEA8sZ,EAAAtsZ,KAAAsrB,EAAA9rB,IAIA0sZ,EAAAI,GAAA,EAAAt2Y,EAAAC,EAAAC,EAAA0jB,GACAsyX,EAAAK,GAAA,EAAAv2Y,EAAAC,EAAAC,EAAA0jB,GAmHAj4B,EAAAC,QA/EA,SAAAq4B,EAAA/jB,EAAAixL,EAAAC,GACA,IAEApxL,EACAC,EAHA1G,EAAA0qB,EAAAtP,UACA6hY,KAGAC,GAAA,EACAl9Y,EAAA2tB,KAAA,SAAA6B,GACA,IAWAk3P,EACAC,EACA3xN,EACApwB,EAdApe,EAAAxmB,EAAA0uB,cAAAc,GACA4kC,EAAAp0D,EAAAq0D,aAAA7kC,GACAylC,EAAAb,EAAA7lC,SAAA,SAEAq4P,EAAA3xN,EAAA/hE,IAAA,aAAAkhE,EAAAlhE,IAAA,2BACAiiE,EAAAf,EAAA7lC,SAAA,aACAu4P,EAAA3xN,EAAAjiE,IAAA,UACAiqZ,EAAAhoV,EAAAjiE,IAAA,WACAwgE,GAAAltC,EAAA8E,WAAA9E,EAAA+E,UAAA,EACA0R,EAAAhmC,KAAA0jC,IAAA+4B,GACAx2B,EAAAjmC,KAAA2jC,IAAA84B,GAKAjtD,EAAA+f,EAAA/f,GACAC,EAAA8f,EAAA9f,GACA,IAAAmgR,EAAA,WAAAD,GAAA,UAAAA,EAEA,cAAAA,EACAF,EAAAlgQ,EAAA/f,GACAkgR,EAAAngQ,EAAA9f,GACAk+B,EAAA,aACK,CACL,IAAAjF,GAAAknP,GAAArgQ,EAAA7f,EAAA6f,EAAA6E,IAAA,EAAA4R,EAAAzW,EAAA7f,EAAAs2B,GAAAx2B,EACAm5B,GAAAinP,GAAArgQ,EAAA7f,EAAA6f,EAAA6E,IAAA,EAAA6R,EAAA1W,EAAA7f,EAAAu2B,GAAAx2B,EAIA,GAHAggR,EAAA/mP,EAAA,EAAA1C,EACA0pP,EAAA/mP,EAAA,EAAA1C,GAEA2pP,EAAA,CAEA,IAAA9pP,EAAA4C,EAAA1C,GAAA6pP,EAAAngR,EAAA6f,EAAA7f,GACAq2B,EAAA4C,EAAA1C,GAAA4pP,EAAAngR,EAAA6f,EAAA7f,GACA84B,EAAA1C,GAAAE,EAAA,QAAAkgX,EAEAz2H,EAAAjnP,GAAAxC,EAAA,QACA0pP,EAFA3pP,EAGAg4B,IAAAr1B,EAAAC,IAAA7C,EAAAC,IAAAyC,EAHAzC,IAMA4H,EAAAiiP,EAAA,SAAA5pP,EAAA,iBAGA,IAAA2G,EAAAqxB,EAAAyvF,UACAq0K,EAAA9jQ,EAAA/hE,IAAA,UAAA+pC,EAAA,GAAAy2B,EAAAz8D,KAAAgwB,IAAAysC,EAAA,EACAnzB,EAAA7V,EAAAo+K,kBAAAt5K,EAAA,WAAAxvB,EAAAqzD,QAAA7jC,GACA0U,EAAAnK,EAAA/C,gBAAAuJ,EAAAqD,EAAAgB,EAAA,OACAs4W,IAAAnkF,EACAvyS,EAAA7kB,OACApO,EAAAmzR,EACAjzR,EAAAkzR,EACArpR,SAAAspR,EACAz+Q,OAAA+7B,EAAA/7B,OACApX,IAAA+1R,EACA3I,KAAAg/H,EACAnoV,aACApwB,YACAhd,cAAA,SACAb,SAAAgyS,EACApjQ,OAAAkxN,GAGAA,GACAo2H,EAAAxsZ,KAAA+1B,EAAA7kB,UAIAu7Y,GAAAxyX,EAAAx3B,IAAA,sBA3GA,SAAA+pZ,EAAAx2Y,EAAAC,EAAAC,EAAAixL,EAAAC,GAIA,IAHA,IAAAulN,KACAjtY,KAEAlgB,EAAA,EAAiBA,EAAAgtZ,EAAA9sZ,OAA4BF,IAC7CgtZ,EAAAhtZ,GAAAsD,EAAAkT,EACA22Y,EAAA3sZ,KAAAwsZ,EAAAhtZ,IAEAkgB,EAAA1f,KAAAwsZ,EAAAhtZ,IAOA,IAHAusZ,EAAArsY,EAAA1J,EAAAC,EAAAC,EAAA,EAAAixL,EAAAC,GACA2kN,EAAAY,EAAA32Y,EAAAC,EAAAC,GAAA,EAAAixL,EAAAC,GAEA5nM,EAAA,EAAiBA,EAAAgtZ,EAAA9sZ,OAA4BF,IAAA,CAC7C,IAAA+kE,EAAAioV,EAAAhtZ,GAAA+kE,WAEA,GAAAA,EAAA,CACA,IAAA+tH,EAAA/tH,EAAA,MAAAA,EAAA,MAEAioV,EAAAhtZ,GAAAsD,EAAAkT,EACAuuD,EAAA,MAAAioV,EAAAhtZ,GAAAsD,EAAA,EAEAyhE,EAAA,MAAAioV,EAAAhtZ,GAAAsD,EAAA,EAGAyhE,EAAA,MAAAA,EAAA,MAAAioV,EAAAhtZ,GAAAwD,EACAuhE,EAAA,MAAAA,EAAA,MAAA+tH,IAgFAs6N,CAAAJ,EAAAx2Y,EAAAC,EAAAC,EAAAixL,EAAAC,0BChOA,IAAAh+J,EAAUprC,EAAQ,QAgBlB6uZ,IAAA,gFAuCAlrZ,EAAAC,QArCA,SAAAkrZ,GAEA,OAAA1jX,EAAAqvB,QAAA8rN,IAAAn7O,EAAAqvB,QAAAsC,SAAA,cACA,IAEA85L,EAFAj+E,EAAAn4K,KAAAs2K,YACA/9J,EAAAvY,KAAAuY,MAGA,GAAA4/J,EACA,QAAAp3K,EAAA,EAAqBA,EAAAo3K,EAAAl3K,OAAsBF,IAAA,CAC3C,IAAAk7B,EAAAk8I,EAAAp3K,GACAgnB,EAAAkU,KAAAlU,MACAvkB,EAAAy4B,KAAAz4B,KAEA,GAAAukB,IAAA,WAAAvkB,GAAAukB,EAAAqU,aAAArU,EAAAsU,UAAA,SAAA74B,KAAAukB,EAAA/O,QAAA+O,EAAA9O,SAAA,CACA,QAAAia,EAAA,EAAyBA,EAAAk7X,EAAAntZ,OAAuBiyB,IAGhDk7X,EAAAl7X,GAAA,GAAA3a,EAAA61Y,EAAAl7X,GAAA,IACA3a,EAAA61Y,EAAAl7X,GAAA,IAAAk7X,EAAAl7X,GAAA,GAGAkjO,GAAA,EACA,OAOA,GAFAi4J,EAAA9hZ,MAAAvM,KAAA8E,WAEAsxP,EACA,IAAAljO,EAAA,EAAqBA,EAAAk7X,EAAAntZ,OAAuBiyB,IAC5C3a,EAAA61Y,EAAAl7X,GAAA,IAAAk7X,EAAAl7X,GAAA,IAGGm7X,uBClDH,SAAAxvF,IACA7+T,KAAA0f,GAAA,YAAA1f,KAAAsuZ,WAAAtuZ,MACAA,KAAA0f,GAAA,YAAA1f,KAAAuuZ,MAAAvuZ,MACAA,KAAA0f,GAAA,UAAA1f,KAAAwuZ,SAAAxuZ,MACAA,KAAA0f,GAAA,YAAA1f,KAAAwuZ,SAAAxuZ,MAgEA,SAAAu6U,EAAAh6U,EAAA4D,GACA,OACA5D,SACA+7T,UAAAn4T,KAAAm4T,WA7DAuC,EAAA3+T,WACAC,YAAA0+T,EACAyvF,WAAA,SAAAnqZ,GACA,IAAAsqZ,EAAAtqZ,EAAA5D,OAEAkuZ,KAAAx3P,YACAj3J,KAAA0uZ,gBAAAD,EACAA,EAAA//C,UAAA,EACA1uW,KAAA4oH,GAAAzkH,EAAAG,QACAtE,KAAA48J,GAAAz4J,EAAAK,QACAxE,KAAA6/T,kBAAA0a,EAAAk0E,EAAAtqZ,GAAA,YAAAA,EAAAozD,SAGAg3V,MAAA,SAAApqZ,GACA,IAAAsqZ,EAAAzuZ,KAAA0uZ,gBAEA,GAAAD,EAAA,CACA,IAAApqZ,EAAAF,EAAAG,QACAC,EAAAJ,EAAAK,QACAupC,EAAA1pC,EAAArE,KAAA4oH,GACA56E,EAAAzpC,EAAAvE,KAAA48J,GACA58J,KAAA4oH,GAAAvkH,EACArE,KAAA48J,GAAAr4J,EACAkqZ,EAAAjpS,MAAAz3E,EAAAC,EAAA7pC,GACAnE,KAAA6/T,kBAAA0a,EAAAk0E,EAAAtqZ,GAAA,OAAAA,EAAAozD,OACA,IAAAo3V,EAAA3uZ,KAAAqpT,UAAAhlT,EAAAE,EAAAkqZ,GAAAluZ,OACAquZ,EAAA5uZ,KAAA6uZ,YACA7uZ,KAAA6uZ,YAAAF,EAEAF,IAAAE,IACAC,GAAAD,IAAAC,GACA5uZ,KAAA6/T,kBAAA0a,EAAAq0E,EAAAzqZ,GAAA,YAAAA,EAAAozD,OAGAo3V,OAAAC,GACA5uZ,KAAA6/T,kBAAA0a,EAAAo0E,EAAAxqZ,GAAA,YAAAA,EAAAozD,UAKAi3V,SAAA,SAAArqZ,GACA,IAAAsqZ,EAAAzuZ,KAAA0uZ,gBAEAD,IACAA,EAAA//C,UAAA,GAGA1uW,KAAA6/T,kBAAA0a,EAAAk0E,EAAAtqZ,GAAA,UAAAA,EAAAozD,OAEAv3D,KAAA6uZ,aACA7uZ,KAAA6/T,kBAAA0a,EAAAv6U,KAAA6uZ,YAAA1qZ,GAAA,OAAAA,EAAAozD,OAGAv3D,KAAA0uZ,gBAAA,KACA1uZ,KAAA6uZ,YAAA,OAWA,IAAA5rZ,EAAA47T,EACA37T,EAAAC,QAAAF,wBC9EA,IAAA40S,EAAet4S,EAAQ,QACvBK,EAAeL,EAAQ,QACvB+uR,EAA2B/uR,EAAQ,QAEnC2D,EAAAC,QAAA,SAAA8sC,EAAA5rC,GAEA,GADAwzS,EAAA5nQ,GACArwC,EAAAyE,MAAAlE,cAAA8vC,EAAA,OAAA5rC,EACA,IAAAoqR,EAAAH,EAAAtrO,EAAA/S,GAGA,OADAvhC,EADA+/Q,EAAA//Q,SACArK,GACAoqR,EAAA7uN,+BCVA,IAAA8oG,EAA0BnpK,EAAQ,QAsBlC0D,EApBkB1D,EAAQ,QAoB1BmK,QACAlG,KAAA,iBACAixB,cAAA,8CACAm0I,eAAA,SAAA3rJ,EAAAtZ,GACA,OAAA+kK,EAAA1oK,KAAA6oK,YAAA7oK,OAEAu5B,cAAA,QACAC,eAAA,WACA,IAAAmwI,EAAA3pK,KAAAid,OAAA0sJ,YAEA,aAAAA,EAEA3pK,KAAAid,OAAAkxD,MAAA,IAAAnuE,KAAAgE,IAAA,eAGA2lK,GAEAlwI,wBAAA,WACA,IAAAC,EAAA15B,KAAAid,OAAAyc,qBAEA,aAAAA,EAEA15B,KAAAid,OAAAkxD,MAAA,IAAAnuE,KAAAgE,IAAA,wBAGA01B,GAEAhF,eACArG,iBAAA,cACAsG,OAAA,EACAC,EAAA,EACAwpJ,iBAAA,EACAl7J,gBAAA,EASA+L,WAAA,GAGAk/C,OAAA,EAEAx0C,eAAA,IAUAnnB,WACAK,QAAA,OAOA3P,EAAAC,QAAAF,wBCtFA,IAoBA6rZ,GAAA,2BACAC,GAAA,4BACAC,GAAA,qBACAC,GAAA,sBACAhsZ,GACA4sE,WAAA,cACAja,KA1B0Br2D,EAAQ,OA0BlCo1N,GAEA8c,kBAAA,EACA3mO,MAAA,SAAA0wB,EAAA73B,GACA,IAAAmN,EAAA0qB,EAAAtP,UACAwyS,EAAAljS,EAAA0yC,gBAAAC,MASA,GARAr9D,EAAAkxD,WACA2rT,aAAA,YACAuhC,OAAAj+E,EAAA,EAAAz1S,GACA2zX,OAAAl+E,GAAA,EAAAz1S,GACA4zX,aAAAC,EAAA,EAAA7zX,GACA8zX,aAAAD,GAAA,EAAA7zX,MAGA73B,EAAA+tO,iBAAAl2M,GAIA,OAAAkjS,IACAh8P,SAGA,SAAA/wC,EAAA7gB,GACA,IAAAstB,EAEA,YAAAA,EAAAzM,EAAA8S,SAAA,CACA,IAAAygC,EAAAp0D,EAAAq0D,aAAA/mC,GACAqhL,EAAA3uM,EAAA0uB,cAAApB,GAAAqhL,KACA3uM,EAAAmxD,cAAA7jC,GACAj4B,MAAA8qU,EAAAxxH,EAAAv6I,GACAnyC,YAAAs8X,EAAA5vM,EAAAv6I,QAKA,SAAA+rQ,EAAAxxH,EAAAloL,GACA,OAAAA,EAAAvzB,IAAAy7M,EAAA,EAAAuvM,EAAAC,GAGA,SAAAI,EAAA5vM,EAAAloL,GACA,OAAAA,EAAAvzB,IAAAy7M,EAAA,EAAAqvM,EAAAC,MAIA7rZ,EAAAC,QAAAF,wBCtEA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBib,EAAcjb,EAAQ,QAEtBgsE,EAAiBhsE,EAAQ,QAEzBi0J,EAAaj0J,EAAQ,QAErB0vS,EAAiB1vS,EAAQ,QAEzB67J,EAAqB77J,EAAQ,QAE7BsnC,EAAmBtnC,EAAQ,QAE3BqnC,EAAarnC,EAAQ,QAErBgwZ,EAAoBhwZ,EAAQ,QAE5B0wE,EAAsB1wE,EAAQ,QAoB9BiL,EAAAqvB,EAAArvB,KACAs0B,EAAAtkB,EAAAskB,MACA7B,EAAAziB,EAAAyiB,KACAwB,EAAA5E,EAAA4E,KAEA+wX,GAAA,SACAC,GAAA,oBACAC,GAAA,cACAC,GAAA,yBACAC,EAAA,GAEAC,EAAA,EACAC,EAAA,EACAC,EAAA9/U,IAAA,iBAEA,yHAEA+/U,EAAA,SAAAz4X,GAEA,IAAA/kB,EAAAu9Y,EAAAx4X,GAGA,OADA/kB,EAAA0wB,OAAA1wB,EAAAkF,KAAAlF,EAAAuqB,UAAA,KACAvqB,GAGAvP,EAAAG,EAAAs6D,iBACAl6D,KAAA,UAKAgb,KAAA,SAAA2yD,EAAAvtE,GAKA5D,KAAA4pZ,gBAMA5pZ,KAAAw5R,UAmiBAy2H,aACAl4Q,cACA33F,YA/hBApgD,KAAAsiM,SAMAtiM,KAAAkwZ,YAMAlwZ,KAAAk1Y,YAMAl1Y,KAAA6rH,OAAA,SAMApoH,OAAA,SAAA+3B,EAAA73B,EAAAC,EAAAggC,GACA,IAAAiwB,EAAAlwD,EAAAutJ,gBACA5hG,SAAA,SACAwG,QAAA,UACAC,MAAAnyB,IAGA,KAAA/J,EAAA/5B,QAAA+zD,EAAAr4B,GAAA,IAIAx7B,KAAAw7B,cACAx7B,KAAA4D,MACA5D,KAAA2D,UACA,IACA0qN,EAAA76D,EAAAyhF,mBAAArxM,GADA,yCACApI,GACA+6B,EAAA3yB,KAAApgC,KACA6zB,EAAAmE,EAAAnE,WACAqmJ,GAAA19K,KAAAsiM,SACA6tN,EAAAnwZ,KAAAw5R,SAEA42H,EAAA,sBAAA75V,GAAA83J,GAAA8hM,GACAE,cAAAF,EAAAF,UAAA5hM,EAAAn1J,KAAAqwG,eACAzmH,UAAAlf,EAAAkf,WACK,KAELosP,EAAAlvS,KAAAswZ,oBAAAj5X,GAEAk5X,EAAAvwZ,KAAAwwZ,UAAAthH,EAAA1zQ,EAAA40X,GAEA1yO,GAAAnnH,GAAA,sBAAAA,GAAA,sBAAAA,EAAAg6V,EAAAE,gBAAAzwZ,KAAA0wZ,aAAAxhH,EAAAqhH,EAAA/0X,EAAA40X,GAEApwZ,KAAA2wZ,iBAAA/sZ,GAEA5D,KAAA4wZ,kBAAAp1X,EAAA53B,EAAAyqN,KAMAiiM,oBAAA,SAAAj5X,GACA,IAAA63Q,EAAAlvS,KAAA4pZ,gBAaA,OAXA16G,IAGAA,EAAAlvS,KAAA4pZ,gBAAA,IAAA9qX,EAEA9+B,KAAA6vD,YAAAq/O,GAEAlvS,KAAAg/B,MAAAC,IAAAiwQ,IAGAA,EAAAnsS,KAAA,YAAAs0B,EAAAhzB,EAAAgzB,EAAA9yB,IACA2qS,GAMAshH,UAAA,SAAAthH,EAAA1zQ,EAAA40X,GACA,IAAAS,EAAAr1X,EAAAtP,UAAA0+J,KACAkmO,EAAA9wZ,KAAAsiM,SAEAyuN,GAqcAd,aACAl4Q,cACA33F,YAtcA+vW,GAocAF,aACAl4Q,cACA33F,YArcA4wW,EAAAhxZ,KAAAw5R,SACAy3H,KACAC,EAAAr3X,EAAA0Q,MAAAwsU,EAAAv7U,EAAA20X,EAAAa,EAAAZ,EAAAW,EAAAE,IAgBA,SAAAE,EAAAC,EAAAC,EAAAC,EAAAC,EAAAjpO,GAIAipO,GACAF,EAAAD,EACA3yX,EAAA2yX,EAAA,SAAA9kX,EAAA1/B,IACA0/B,EAAA08I,aAAAwoO,EAAA5kZ,QAKA,IAAA2+D,EAAA8lV,EAAAD,EAAAz0C,KAAA19U,IAAAuyX,GAAAj1W,OAAAi1W,GAAA/sZ,OAAAo1B,EAAA0Q,MAAAinX,EAAA,OAAArqV,UAGA,SAAAw1S,EAAAzjT,GAEA,OAAAA,EAAAmwH,QAGA,SAAAmoO,EAAA3sF,EAAAC,GACA,IAAA2sF,EAAA,MAAA5sF,EAAAusF,EAAAvsF,GAAA,KACA6sF,EAAA,MAAA5sF,EAAAusF,EAAAvsF,GAAA,KACA9lS,EAAAkyX,EAAAO,EAAAC,EAAAJ,EAAAhpO,GACAtpJ,GAAAmyX,EAAAM,KAAAjpO,iBAAAkpO,KAAAlpO,iBAAAxpJ,EAAAuyX,EAAAjpO,EAAA,IAnCA6oO,CAAAN,EAAAh2W,MAAAg2W,EAAAh2W,SAAAi2W,KAAAj2W,MAAAi2W,EAAAj2W,SAAAq0P,EAAA2hH,IAAAC,MAAA,GAEA,IAAAa,EAqCA,SAAAr/V,GACA,IAAAq/V,GAoZA1B,aACAl4Q,cACA33F,YA/YA,OANAkS,GAAA7zB,EAAA6zB,EAAA,SAAAusH,EAAA+yO,GACA,IAAAC,EAAAF,EAAAC,GACAnzX,EAAAogJ,EAAA,SAAAp+K,GACAA,IAAAoxZ,EAAAtwZ,KAAAd,KAAAqxZ,eAAA,OAGAH,EA7CAI,CAAAf,GAGA,OAFAhxZ,KAAAsiM,SAAAuuN,EACA7wZ,KAAAw5R,SAAA22H,GAEAY,oBACAY,gBACAlB,cA0CA,WACAhyX,EAAAkzX,EAAA,SAAA72L,GACAr8L,EAAAq8L,EAAA,SAAAr6N,GACAA,EAAA8oC,QAAA9oC,EAAA8oC,OAAA9kC,OAAAhE,OAGAg+B,EAAAwyX,EAAA,SAAAxwZ,GACAA,EAAA42J,WAAA,EAGA52J,EAAAW,aAQAsvZ,aAAA,SAAAxhH,EAAAqhH,EAAA/0X,EAAA40X,GACA,GAAA50X,EAAAx3B,IAAA,cAIA,IAAAgpF,EAAAxxD,EAAAx3B,IAAA,2BACA9B,EAAAs5B,EAAAx3B,IAAA,mBACAguZ,EAAAzC,EAAA0C,aAEAxzX,EAAA8xX,EAAAoB,cAAA,SAAA9yO,EAAA+yO,GACAnzX,EAAAogJ,EAAA,SAAAp+K,EAAA4pL,GACA,IAAA5pL,EAAA42J,UAAA,CAIA,IAEA92J,EAFAgpC,EAAA9oC,EAAA8oC,OAIA,GAAA6mX,GAAA,cAAAA,EAAAttW,UACAviD,EAAAgpC,IAAA6mX,EAAAC,eAIAtoY,OACA1jB,EAAA,EACAE,EAAA,EACAyU,MAAAuwB,EAAA2oX,cACAj5Y,OAAAswB,EAAA4oX,gBAEA55Y,OACA1F,QAAA,KAIA0F,OACA1F,QAAA,QAGS,CACT,IAAAu/Y,EAAA,EACAC,EAAA,EAEA9oX,EAAAuoX,iBAIAM,EAAA7oX,EAAA2oX,cAAA,EACAG,EAAA9oX,EAAA4oX,eAAA,GAGA5xZ,EAAA,cAAAqxZ,GACAxjZ,UAAAgkZ,EAAAC,GACA95Y,OACA1F,QAAA,KAGAkV,OACA1jB,EAAA+tZ,EACA7tZ,EAAA8tZ,EACAr5Y,MAAA,EACAC,OAAA,GAEAV,OACA1F,QAAA,IAKAtS,GAAAyxZ,EAAA/yX,IAAAx+B,EAAAF,EAAAysF,EAAA9qF,QAIAu8B,EAAAz+B,KAAAw5R,SAAA,SAAA36G,EAAA+yO,GACAnzX,EAAAogJ,EAAA,SAAAp+K,EAAA4pL,GACA,IAAAzzG,EAAA25U,EAAAQ,kBAAAa,GAAAvnO,GACA9pL,KAEAq2E,IAIA,cAAAg7U,EACAh7U,EAAA8zK,MACAnqP,EAAA6N,SAAA3N,EAAA2N,SAAA9L,QACA7B,EAAAsC,KAAA,WAAA6zE,EAAA8zK,OAGA9zK,EAAA8zK,MACAnqP,EAAAwnB,MAAA8R,EAAAnwB,UAA2CjJ,EAAAsnB,OAC3CtnB,EAAA8gC,SAAAq1C,EAAA8zK,MAGA9zK,EAAA07U,QACA7xZ,EAAA67C,SAAA,aACA/7C,EAAAgY,OACA1F,QAAA,IAIA,IAAApS,EAAA8X,MAAA1F,UACAtS,EAAAgY,OACA1F,QAAA,KAKAm/Y,EAAA/yX,IAAAx+B,EAAAF,EAAAysF,EAAA9qF,OAEKlC,MACLA,KAAA6rH,OAAA,YACAmmS,EAAA3wZ,KAAAmJ,EAAA,WACAxK,KAAA6rH,OAAA,QACA0kS,EAAAE,iBACKzwZ,OAAAwC,UAMLmuZ,iBAAA,SAAA/sZ,GACA,IAAAymD,EAAArqD,KAAAk1Y,YAEA7qV,KACAA,EAAArqD,KAAAk1Y,YAAA,IAAA95O,EAAAx3J,EAAAe,UACAu3J,OAAAl8J,KAAAw7B,YAAAx3B,IAAA,SACAqmD,EAAA3qC,GAAA,MAAAlV,EAAAxK,KAAA0zN,OAAA1zN,OACAqqD,EAAA3qC,GAAA,OAAAlV,EAAAxK,KAAA2zN,QAAA3zN,QAGA,IAAAkoC,EAAA,IAAArB,EAAA,IAAAjjC,EAAAkuD,WAAAluD,EAAAmuD,aACA1H,EAAA4xG,kBAAA,SAAA93J,EAAAE,EAAAE,GACA,OAAA2jC,EAAAwC,QAAArmC,EAAAE,MAOAguZ,iBAAA,WACA,IAAAloW,EAAArqD,KAAAk1Y,YAEA7qV,IACAA,EAAAtlD,UACAslD,EAAA,OAOAqpK,OAAA,SAAA3lL,EAAAC,GACA,iBAAAhuC,KAAA6rH,SAAA9jH,KAAAY,IAAAolC,GAzWA,GAyWAhmC,KAAAY,IAAAqlC,GAzWA,GAyWA,CAEA,IAAA6M,EAAA76C,KAAAw7B,YAAAtP,UAAA0+J,KAAA/vI,KAEA,IAAAA,EACA,OAGA,IAAAopJ,EAAAppJ,EAAA+uI,YAEA,IAAAqa,EACA,OAGAjkM,KAAA4D,IAAAQ,gBACAZ,KAAA,cACAuI,KAAA/L,KAAAk1D,IACAmP,SAAArkE,KAAAw7B,YAAA95B,GACA8iZ,UACAngZ,EAAA4/L,EAAA5/L,EAAA0pC,EACAxpC,EAAA0/L,EAAA1/L,EAAAypC,EACAh1B,MAAAirL,EAAAjrL,MACAC,OAAAgrL,EAAAhrL,YASA06M,QAAA,SAAApiN,EAAA+tK,EAAAC,GACA,iBAAAv/K,KAAA6rH,OAAA,CAEA,IAAAhxE,EAAA76C,KAAAw7B,YAAAtP,UAAA0+J,KAAA/vI,KAEA,IAAAA,EACA,OAGA,IAAAopJ,EAAAppJ,EAAA+uI,YAEA,IAAAqa,EACA,OAGA,IAAA/7J,EAAA,IAAArB,EAAAo9J,EAAA5/L,EAAA4/L,EAAA1/L,EAAA0/L,EAAAjrL,MAAAirL,EAAAhrL,QACAoe,EAAAr3B,KAAAw7B,YAAAnE,WAEAioJ,GAAAjoJ,EAAAhzB,EACAk7K,GAAAloJ,EAAA9yB,EAEA,IAAAooB,EAAAia,EAAA8C,SACA9C,EAAAumL,UAAAxgM,MAAA2yJ,GAAAC,IACA34I,EAAAr1B,MAAAob,KAAApb,MACAq1B,EAAAumL,UAAAxgM,KAAA2yJ,EAAAC,IACAr3I,EAAAlB,eAAAra,GACA3sB,KAAA4D,IAAAQ,gBACAZ,KAAA,gBACAuI,KAAA/L,KAAAk1D,IACAmP,SAAArkE,KAAAw7B,YAAA95B,GACA8iZ,UACAngZ,EAAA6jC,EAAA7jC,EACAE,EAAA2jC,EAAA3jC,EACAyU,MAAAkvB,EAAAlvB,MACAC,OAAAivB,EAAAjvB,YASA42C,YAAA,SAAAq/O,GACAA,EAAAxvR,GAAA,iBAAAvb,GACA,aAAAnE,KAAA6rH,OAAA,CAIA,IAAAg/J,EAAA7qR,KAAAw7B,YAAAx3B,IAAA,gBAEA,GAAA6mR,EAAA,CAIA,IAAAx8D,EAAAruN,KAAAwyZ,WAAAruZ,EAAAG,QAAAH,EAAAK,SAEA,GAAA6pN,EAAA,CAIA,IAAAn1J,EAAAm1J,EAAAn1J,KAEA,GAAAA,EAAA0wH,YAAAq8N,WACAjmZ,KAAAyyZ,YAAApkM,QAEA,kBAAAw8D,EACA7qR,KAAA0yZ,YAAArkM,QACS,YAAAw8D,EAAA,CACT,IAAA3lN,EAAAhM,EAAAmvH,SAAAv3K,KAAAq0D,aAAAjM,EAAA96B,WACA5vB,EAAA02D,EAAAlhE,IAAA,WACA2uZ,EAAAztV,EAAAlhE,IAAA,sBACAwK,GAAAmB,OAAAb,KAAAN,EAAAmkZ,QAGK3yZ,OAML4wZ,kBAAA,SAAAp1X,EAAA53B,EAAAyqN,GACAA,IACAA,EAAA,MAAA7yL,EAAAx3B,IAAA,iBACAk1D,KAAA19B,EAAAixP,eAIOzsR,KAAAwyZ,WAAA5uZ,EAAAkuD,WAAA,EAAAluD,EAAAmuD,YAAA,MAGPs8J,GACAn1J,KAAA19B,EAAAtP,UAAA0+J,KAAA/vI,QAKA76C,KAAAkwZ,cAAAlwZ,KAAAkwZ,YAAA,IAAAjhH,EAAAjvS,KAAAg/B,SAAAv7B,OAAA+3B,EAAA53B,EAAAyqN,EAAAn1J,KAAA1uD,EAEA,SAAA0uD,GACA,cAAAl5D,KAAA6rH,SACA2nC,EAAA4hF,cAAA55M,EAAAixP,cAAAvzN,GAAAl5D,KAAAyyZ,aACAv5V,SACSl5D,KAAA0yZ,aACTx5V,WAPAl5D,QAgBAyE,OAAA,WACAzE,KAAAuyZ,mBAEAvyZ,KAAA4pZ,iBAAA5pZ,KAAA4pZ,gBAAA1kX,YACAllC,KAAAw5R,UA4EAy2H,aACAl4Q,cACA33F,YA7EApgD,KAAA6rH,OAAA,QACA7rH,KAAAkwZ,aAAAlwZ,KAAAkwZ,YAAAzrZ,UAEAM,QAAA,WACA/E,KAAAuyZ,oBAMAG,YAAA,SAAArkM,GACAruN,KAAA4D,IAAAQ,gBACAZ,KAAA,oBACAuI,KAAA/L,KAAAk1D,IACAmP,SAAArkE,KAAAw7B,YAAA95B,GACA0oM,WAAAikB,EAAAn1J,QAOAu5V,YAAA,SAAApkM,GACAruN,KAAA4D,IAAAQ,gBACAZ,KAAA,oBACAuI,KAAA/L,KAAAk1D,IACAmP,SAAArkE,KAAAw7B,YAAA95B,GACA0oM,WAAAikB,EAAAn1J,QAaAs5V,WAAA,SAAAnuZ,EAAAE,GACA,IAAA8pN,EAwBA,OAvBAruN,KAAAw7B,YAAAixP,cACAxjG,UACAlmL,KAAA,eACAsS,MAAA,YACK,SAAA6jD,GACL,IAAA05V,EAAA5yZ,KAAAw5R,SAAAzhJ,WAAA7+E,EAAAqwG,eAGA,GAAAqpP,EAAA,CACA,IAAAvoX,EAAAuoX,EAAAztM,sBAAA9gN,EAAAE,GACAwjB,EAAA6qY,EAAA7qY,MAEA,KAAAA,EAAA1jB,GAAAgmC,EAAA,IAAAA,EAAA,IAAAtiB,EAAA1jB,EAAA0jB,EAAA/O,OAAA+O,EAAAxjB,GAAA8lC,EAAA,IAAAA,EAAA,IAAAtiB,EAAAxjB,EAAAwjB,EAAA9O,QAOA,SANAo1M,GACAn1J,OACA50D,QAAA+lC,EAAA,GACA7lC,QAAA6lC,EAAA,MAMKrqC,MACLquN,KAqBA,SAAA0oJ,EAAAv7U,EAAA20X,EAAAa,EAAAZ,EAAAW,EAAAE,EAAAQ,EAAAC,EAAAJ,EAAAhpO,GAEA,GAAAmpO,EAAA,CASA,IAAApM,EAAAoM,EAAA7nO,YAEA,GAAAy7N,KAAAxpB,SAAA,CAIA,IAAAg3B,EAAAxN,EAAArsY,MACA85Y,EAAAzN,EAAApsY,OACAqc,EAAA+vX,EAAA/vX,YACAy9X,EAAA1N,EAAAhuP,UACA27P,EAAAvB,EAAAloP,cACA0pP,EAAAvB,KAAAnoP,cACA6nP,EAAAK,EAAAjpO,aACAu8N,EAAAM,EAAAN,YACAmO,EAAA9B,KAAAnwZ,OACAkyZ,EAAA1B,EAAApyX,SAAA,aACA+zX,EAAA3B,EAAApyX,SAAA,sBAIAL,EAAAq0X,EAAA,YAAAv0X,GAEA,GAAAE,EAAA,CAUA,GANAsyX,EAAAryX,IAAAD,GAEAA,EAAAj8B,KAAA,YAAAsiZ,EAAAhhZ,GAAA,EAAAghZ,EAAA9gZ,GAAA,IACAy6B,EAAAkzX,cAAAW,EACA7zX,EAAAmzX,eAAAW,EAEAzN,EAAAuB,gBACA,OAAA5nX,EAIA,IAAAs0X,EAAAD,EAAA,aAAAp2X,EAAAqrJ,EAAAunO,GAGA,GAFAyD,GAWA,SAAAt0X,EAAAs0X,EAAAC,GAEAD,EAAAl1X,UAAAqzX,EAAArzX,UACAk1X,EAAAnhY,YAAAqJ,EAAArJ,YACAmhY,EAAA/xX,UACAl9B,EAAA,EACAE,EAAA,EACAyU,MAAA65Y,EACA55Y,OAAA65Y,IAEA,IAAAU,EAAA/B,EAAA9vX,UAAA,kBACA8xX,EAAAL,EAAApvZ,IAAA,eACA6/P,EAAAyvJ,EAAA,WACA,IAAA72N,EAAAuzN,EAAAmD,GACA12N,EAAA/kL,KAAA87Y,EACA,IAAAz8D,EAAAg5D,EAAAqD,GAGA,GAFAr8D,EAAAr/U,KAAA+7Y,EAEAF,EAAA,CACA,IAAAG,EAAAb,EAAA,EAAAv9X,EACAq+X,EAAAl3N,EAAAs6J,EAAAy8D,EAAAE,EAAA3O,GACA1gZ,EAAAixB,EACA/wB,EAAA,EACAyU,MAAA06Y,EACAz6Y,OAAA8rY,SAIAtoN,EAAAprJ,KAAA0lT,EAAA1lT,KAAA,KAGAiiX,EAAAh3W,SAAAmgJ,GACAjiL,EAAAmrD,cAAA2tV,EAAAv8D,KAEA/3T,EAAAC,IAAAq0X,GA7CAx+P,CAAA91H,EAAAs0X,EAAAJ,GAAA7N,EAAAN,cAEAmO,EAAA,CACA,IAAA9yW,EAAAizW,EAAA,UAAAp2X,EAAAqrJ,EAAAwnO,GACA1vW,GA4CA,SAAAphB,EAAAohB,GAEAA,EAAAhiB,UAAAqzX,EAAArzX,UACAgiB,EAAAjuB,YAAAqJ,EAAArJ,YACA,IAAA0yQ,EAAA98R,KAAAE,IAAA4qZ,EAAA,EAAAv9X,EAAA,GACA+6V,EAAAtoX,KAAAE,IAAA6qZ,EAAA,EAAAx9X,EAAA,GACA8qB,EAAA43H,SAAA,EACA53H,EAAA7e,UACAl9B,EAAAixB,EACA/wB,EAAA+wB,EACAtc,MAAA6rR,EACA5rR,OAAAo3W,IAEA,IAAA5uV,EAAAgwX,EAAA9vX,UAAA,YACAkiO,EAAAzjN,EAAA,WACA,IAAAq8I,EAAAuzN,EAAAmD,GACA12N,EAAA/kL,KAAA+pB,EACA,IAAAs1T,EAAAg5D,EAAAqD,GACAO,EAAAl3N,EAAAs6J,EAAAt1T,EAAAojQ,EAAAwrF,GACAjwU,EAAA9D,SAAAmgJ,GACAjiL,EAAAmrD,cAAAvlB,EAAA22S,KAEA/3T,EAAAC,IAAAmhB,GAlEAwzW,CAAA50X,EAAAohB,GAGA,OAAAphB,IAkEA,SAAA6kO,EAAAp9N,EAAA6gC,GACAyrV,GAYAtsX,EAAA4wH,WAAA45P,EAAA1vZ,KAAAklC,IARA6gC,IAEA7gC,EAAAotX,kBACAptX,EAAA4wH,WAAA,IASA,SAAAs8P,EAAAl3N,EAAAs6J,EAAAt1T,EAAAzoB,EAAAC,EAAA66Y,GACA,IAAAn4B,EAAA81B,EAAApyX,WACAgS,EAAAxX,EAAAmuC,SAAAxsC,EAAAo+K,kBAAA63M,EAAArzX,UAAA,mBAAA01X,EAAA,sBAAAn4B,EAAA33X,IAAA,SAEA,IAAA8vZ,GAAAzO,EAAAY,WAAA,CACA,IAAA8N,EAAAv4X,EAAAx3B,IAAA,oBACAqtC,EAAA0iX,IAAA,IAAA1iX,IAGA,IAAA+wW,EAAAzmB,EAAAt8V,SAAAy0X,EAAApE,EAAAF,GACAwE,EAAAr4B,EAAAt8V,SAAAy0X,EAAAnE,EAAAF,GACAllM,EAAA63L,EAAA/8U,WAAA,QACA7qD,EAAA2rD,cAAAs2H,EAAAs6J,EAAAqrD,EAAA4R,GACA1tV,YAAAikJ,EAAAl5K,EAAA,KACAk1B,UAAA9kC,EACAi7J,YAAA,IAEAo3N,IAAAr3N,EAAAznJ,SAAAnb,EAAAmQ,MAAA8pX,IACAr3N,EAAAopG,SAAAt7E,GAAA63L,EAAAp+Y,IAAA,aACAkgB,WAAAlL,EACA8rR,YAAA7rR,EACA4xT,QAAA,GACK,KAGL,SAAAwoF,EAAAzB,EAAAlmL,EAAApjD,EAAA1zJ,GACA,IAAA6R,EAAA,MAAAwsX,GAAAjC,EAAAY,GAAAqB,GACAgB,EAAAlD,EAAAa,GAiBA,OAfAnrX,GAEAuqX,EAAAY,GAAAqB,GAAA,KAgBA,SAAAgB,EAAAxtX,EAAAmrX,IACAqC,EAAAjB,OACAtoK,IAAA,cAAAknK,EAAAnrX,EAAAr4B,SAAA9L,QAAAu3B,EAAAnwB,UAA2F+8B,EAAA1e,OAjB3FmsY,CAAAD,EAAAxtX,EAAAmrX,IAEAmB,KACAtsX,EAAA,IAAAilM,GACA92M,EAuDA,SAAA0zJ,EAAA6rO,GACA,IAAAC,EAAA9rO,EAAAsnO,EAAAuE,EACA,OAAAC,EAAA,GAAAA,EAzDAC,CAAA/rO,EAAA1zJ,MAEA0/X,UAAAhsO,EACA7hJ,EAAA8tX,gBAAA3C,EAeA,SAAAqC,EAAAxtX,EAAAmrX,GACA,IAAA4C,EAAAP,EAAAjB,MACAzmX,EAAAklX,EAAAllX,WAEA,GAAAA,KAAA6jX,GAAA,cAAAA,EAAAttW,WAAA,CACA,IAAA2xW,EAAA,EACAC,EAAA,EAGAC,EAAA5D,EAAAh5Q,WAAAxrG,EAAAg9H,gBAEA6mP,GAAAuE,KAAAjqK,MACA+pK,EAAAE,EAAAjqK,IAAA1xO,MACA07Y,EAAAC,EAAAjqK,IAAAzxO,QAKAu7Y,EAAA9pK,IAAA,cAAAknK,GAAA,EAAA8C,IACArwZ,EAAAowZ,EACAlwZ,EAAAmwZ,EACA17Y,MAAA,EACAC,OAAA,GAKAu7Y,EAAAlC,OAAA,cAAAV,EAzCAgD,CAAAX,EAAAxtX,EAAAmrX,IAIAzB,EAAAyB,GAAAoB,GAAAvsX,GAoDAvjC,EAAAC,QAAAF,wBC32BA1D,EAAQ,QACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,QACR2D,EAAAC,QAAiB5D,EAAQ,QAAqB0L,6BCJ9C1L,EAAQ,QAERA,EAAQ,4BCFR,IAAAs1Z,EAAA,+CA4CA,SAAAC,EAAAv/Y,EAAAC,GACA,kBACAD,KAAAhJ,MAAAvM,KAAA8E,WACA0Q,KAAAjJ,MAAAvM,KAAA8E,YA7CA5B,EAAAC,QAAA,SAAA4xZ,GACA,OAAAA,EAAAtvY,OAAA,SAAAlQ,EAAAC,GACA,IAAA21W,EAAA6pC,EAAAjrZ,EAAAkrZ,EAAAz/B,EACA,IAAAzrX,KAAAyL,EAGA,GAFA21W,EAAA51W,EAAAxL,GACAirZ,EAAAx/Y,EAAAzL,GACAohX,GAAA0pC,EAAAl5V,KAAA5xD,GAcA,GAZA,UAAAA,IACA,iBAAAohX,IACAqK,EAAArK,EACA51W,EAAAxL,GAAAohX,KACAA,EAAAqK,IAAA,GAEA,iBAAAw/B,IACAx/B,EAAAw/B,EACAx/Y,EAAAzL,GAAAirZ,KACAA,EAAAx/B,IAAA,IAGA,OAAAzrX,GAAA,aAAAA,GAAA,SAAAA,EAEA,IAAAkrZ,KAAAD,EACA7pC,EAAA8pC,GAAAH,EAAA3pC,EAAA8pC,GAAAD,EAAAC,SAES,GAAAppZ,MAAAC,QAAAq/W,GACT51W,EAAAxL,GAAAohX,EAAAp2W,OAAAigZ,QACS,GAAAnpZ,MAAAC,QAAAkpZ,GACTz/Y,EAAAxL,IAAAohX,GAAAp2W,OAAAigZ,QAEA,IAAAC,KAAAD,EACA7pC,EAAA8pC,GAAAD,EAAAC,QAIA1/Y,EAAAxL,GAAAyL,EAAAzL,GAGA,OAAAwL,8BCxCA,IAAAnS,EAAc7D,EAAQ,QAEtBmvT,EAAmBnvT,EAAQ,QAE3BA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAwBR6D,EAAAg4D,qBAAAszP,yBCnCAxrT,EAAAC,SAAkB5D,EAAQ,OAARA,CAAkB,WACpC,OAA0E,GAA1EqK,OAAAwB,kBAAiC,KAAQpH,IAAA,WAAmB,YAAcuR,0BCF1E,IAAA41B,EAAW5rC,EAAQ,QAEnBwpZ,EAAiBxpZ,EAAQ,QAMzB0D,EAAAkoC,EAAAzhC,QACAlG,KAAA,UACAukB,OACAqV,OAAA,KACA13B,QAAA,EACAoxN,iBAAA,MAEApnL,UAAA,SAAA7J,EAAA9d,GACAghY,EAAAr5W,UAAA7J,EAAA9d,GAAA,MAIA7kB,EAAAC,QAAAF,0BCpBAC,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,IA9DA,EAmEA,SAAAjV,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOA,SAAAvF,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA+xZ,kBAAA/xZ,EAAAgyZ,kBAAAhyZ,EAAA46W,SAAA56W,EAAA26W,SAAA36W,EAAA86W,UAAA96W,EAAA66W,UAAA76W,EAAAiyZ,4BAAAjyZ,EAAAkyZ,gBAAAlyZ,EAAAmyZ,eAAAnyZ,EAAAoyZ,kBAAApyZ,EAAAqyZ,UAAAryZ,EAAAsyZ,qBAAAtyZ,EAAAuyZ,WAAAvyZ,EAAAwyZ,WAAAxyZ,EAAAi9G,MAAAj9G,EAAAyyZ,cAAAzyZ,EAAA0yZ,cAAA1yZ,EAAA2yZ,oBAAA3yZ,EAAA4yZ,SAAA5yZ,EAAA6yZ,SAAA7yZ,EAAA8yZ,mBAAA9yZ,EAAA+yZ,kBAAA/yZ,EAAAgzZ,mBAAAhzZ,EAAAyoK,UAAAzoK,EAAAizZ,WAAAjzZ,EAAAkzZ,aAAAlzZ,EAAA8pM,OAAA9pM,EAAAmzZ,YAAA5oZ,EAEA,IAMAvC,EANAorZ,EAAAh3Z,EAAA,KAEAi3Z,GAIArrZ,EAJAorZ,IAIsCprZ,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7EolU,EAAAhxU,EAAA,IAIA,IAAAu+M,GAAA,2CACAuhK,GAAA,yEACAo3C,EAAA,WACA,OACAn4P,cAAAw/C,EAAAntM,IAAA,SAAA4tM,GACA,SAAAgyH,EAAA9nP,GAAA,uBAAA81H,KAEApgD,SAAA2/C,EAAAntM,IAAA,SAAA4tM,GACA,SAAAgyH,EAAA9nP,GAAA,uBAAA81H,KAEAlgD,gBAAAghN,EAAA1uW,IAAA,SAAAstJ,GACA,SAAAsyK,EAAA9nP,GAAA,wBAAAw1E,KAEAG,WAAAihN,EAAA1uW,IAAA,SAAAstJ,EAAArxJ,GACA,SAAA2jU,EAAA9nP,GAAA,uBAAA77E,EAAA,MAEA2xJ,MAAA,aAYA+3P,EAAAnzZ,EAAAmzZ,OAAA,SAAAp0P,GACA,OAAA+qC,EAAA/qC,GAAA,IAAAzyJ,KAAAyyJ,GAAA,MAGA+qC,EAAA9pM,EAAA8pM,OAAA,SAAA/qC,GACA,cAAAA,QAAAx0J,IAAAw0J,KACAz3J,MAAA,IAAAgF,KAAAyyJ,GAAAL,aACAh2J,MAAAC,QAAAo2J,KAcA0J,GAVAzoK,EAAAkzZ,aAAA,SAAA9oZ,GACA,OAAAA,aAAAkC,MAGAtM,EAAAizZ,WAAA,SAAAl0P,EAAAx5J,GAEA,OADAw5J,EAAAo0P,EAAAp0P,IAEAs0P,EAAAz9Y,QAAArQ,OAAAw5J,EAAAx5J,GAAA,aAAA+tZ,KADA,IAIAtzZ,EAAAyoK,UAAA,SAAAv0H,EAAA3uC,GACA,OAAA8tZ,EAAAz9Y,QAAA5L,MAAAkqC,EAAA3uC,GAAA,aAAA+tZ,OAGAN,EAAAhzZ,EAAAgzZ,mBAAA,SAAAx1P,EAAA1C,GACA,WAAAA,GAAA,IAAAA,GAAA,IAAAA,GAAA,KAAAA,EACA,GAGA,IAAAA,EACA0C,EAAA,MAAAA,EAAA,QAAAA,EAAA,OACA,GAEA,GAIA,IAiBAq1P,GAdA7yZ,EAAA+yZ,kBAAA,SAAAv1P,GAEA,OADAA,EAAA,QAAAA,EAAA,QAAAA,EAAA,KACA,SAGAx9J,EAAA8yZ,mBAAA,SAAA/zP,GACA,IAAAszN,EAAA,IAAA/lX,KAAAyyJ,EAAAL,WAEA,OADA2zN,EAAA93K,QAAA,GACA83K,EAAA52N,UAMAz7J,EAAA6yZ,SAAA,SAAA9zP,GACA,IAAAw0P,EAAA5xZ,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KAEA,WAAA2K,KAAAyyJ,EAAA1C,cAAA0C,EAAA/C,WAAA+C,EAAAnD,UAAA23P,KAiEAf,GA9DAxyZ,EAAA4yZ,SAAA,SAAA7zP,GACA,IAAAw0P,EAAA5xZ,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KAEA,WAAA2K,KAAAyyJ,EAAA1C,cAAA0C,EAAA/C,WAAA+C,EAAAnD,UAAA23P,IAGAvzZ,EAAA2yZ,oBAAA,SAAAn1P,EAAA1C,GACA,IAAAltJ,EAAA,IAAAtB,KAAAkxJ,EAAA1C,EAAA,GACAwC,EAAA1vJ,EAAA6tJ,SAEA,OACAo3P,EAAAjlZ,EADA,IAAA0vJ,EACA,EAEAA,IAIAt9J,EAAA0yZ,cAAA,SAAA9lZ,GACA,IAAAk9L,EAAAl9L,GAAA,YACA,IAAAmyJ,EAAA,IAAAzyJ,KAAAM,EAAA8xJ,WACAK,EAAAy0P,SAAA,SAEAz0P,EAAAw7C,QAAAx7C,EAAAnD,UAAA,GAAAmD,EAAAtD,SAAA,MAEA,IAAAg4P,EAAA,IAAAnnZ,KAAAyyJ,EAAA1C,cAAA,KAGA,SAAAz3J,KAAAqC,QAAA83J,EAAAL,UAAA+0P,EAAA/0P,WAAA,SAAA+0P,EAAAh4P,SAAA,UAGAz7J,EAAAyyZ,cAAA,SAAA5yQ,GACA,IAAAxB,KACAq1Q,KAUA,IARA7zQ,OAAAl5I,QAAA,SAAAs2G,GACA,IAAA74G,EAAA64G,EAAAzvG,IAAA,SAAAuxJ,GACA,OAAAA,EAAAxC,aAGAm3P,IAAA9hZ,OA5GA,SAAAvS,EAAA0uB,GAEA,IADA,IAAAngB,KACAhQ,EAAAyB,EAAqBzB,GAAAmwB,EAAUnwB,IAC/BgQ,EAAAxP,KAAAR,GAEA,OAAAgQ,EAuGA82E,CAAAtgF,EAAA,GAAAA,EAAA,OAGAsvZ,EAAA51Z,OACA,QAAAF,EAAA,EAAmBA,EAAA,GAAQA,IAC3BygJ,EAAAzgJ,IAAA,IAAA81Z,EAAA/2Z,QAAAiB,QAGA,QAAA4lG,EAAA,EAAoBA,EAAA,GAASA,IAC7B66C,EAAA76C,IAAA,EAIA,OAAA66C,GAGAr+I,EAAAi9G,MAAA,SAAAhiE,GAEA,OAAAvyC,MAAAU,MAAA,MAA4BtL,OAAAm9C,IAAYztC,IAAA,SAAAwN,EAAAigC,GACxC,OAAAA,KAIAj7C,EAAAwyZ,WAAA,SAAAzzP,EAAA39J,EAAAooB,EAAA8B,GACA,WAAAhf,KAAAlL,EAAAooB,EAAA8B,EAAAyzI,EAAAxC,WAAAwC,EAAApC,aAAAoC,EAAAlC,aAAAkC,EAAA/B,qBAGAu1P,EAAAvyZ,EAAAuyZ,WAAA,SAAAxzP,EAAAjqJ,EAAA0U,EAAAxU,GACA,WAAA1I,KAAAyyJ,EAAA1C,cAAA0C,EAAA/C,WAAA+C,EAAAnD,UAAA9mJ,EAAA0U,EAAAxU,EAAA+pJ,EAAA/B,oBAmBAm1P,GAhBAnyZ,EAAAsyZ,qBAAA,SAAAvzP,EAAAlgK,GACA,aAAAkgK,GAAAlgK,GAGAA,EAAA4pK,EAAA5pK,EAAA,YACA0zZ,EAAAxzP,EAAAlgK,EAAA09J,WAAA19J,EAAA89J,aAAA99J,EAAAg+J,eAHAkC,GAMA/+J,EAAAqyZ,UAAA,SAAAtzP,GACA,WAAAzyJ,KAAAyyJ,EAAA1C,cAAA0C,EAAA/C,WAAA+C,EAAAnD,YAGA57J,EAAAoyZ,kBAAA,SAAArzP,GACA,WAAAzyJ,KAAAyyJ,EAAA1C,cAAA0C,EAAA/C,WAAA+C,EAAAnD,UAAAmD,EAAAxC,WAAAwC,EAAApC,aAAAoC,EAAAlC,aAAA,IAGA78J,EAAAmyZ,eAAA,SAAApzP,EAAAlf,GACA,IAAAt6I,EAAA5D,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,cAGA,OAAAk+I,EAAA/hJ,OAAA,OAAAihK,EACA,IAAA40P,EAAA,SAAA50P,GACA,OAAAs0P,EAAAz9Y,QAAA5L,MAAAqpZ,EAAAz9Y,QAAArQ,OAAAw5J,EAAAx5J,OAEAquZ,EAAAD,EAAA50P,GACA80P,EAAAh0Q,EAAAryI,IAAA,SAAAyvG,GACA,OAAAA,EAAAzvG,IAAAmmZ,KAEA,GAAAE,EAAA5jZ,KAAA,SAAA6jZ,GACA,OAAAF,GAAAE,EAAA,IAAAF,GAAAE,EAAA,KACG,OAAA/0P,EAEH,IAAAg1P,EAAAF,EAAA,MACAG,EAAAH,EAAA,MASA,OAPAA,EAAAltZ,QAAA,SAAAmtZ,GACAC,EAAA,IAAAznZ,KAAA1H,KAAAC,IAAAivZ,EAAA,GAAAC,IACAC,EAAA,IAAA1nZ,KAAA1H,KAAAE,IAAAgvZ,EAAA,GAAAC,MAKAvB,EAFAoB,EAAAG,IAAAC,EAEAj1P,EAAA1C,cAAA0C,EAAA/C,WAAA+C,EAAAnD,aAQAq2P,GALAjyZ,EAAAkyZ,gBAAA,SAAAnzP,EAAAk1P,EAAA1uZ,GAEA,OADA4sZ,EAAApzP,EAAAk1P,EAAA1uZ,GACAm5J,YAAAK,EAAAL,WAGA1+J,EAAAiyZ,4BAAA,SAAAlzP,EAAAvB,EAAA1C,GAGA,IAAAo5P,EAAAtvZ,KAAAC,IAAAk6J,EAAAnD,UAAAo3P,EAAAx1P,EAAA1C,IACA,OAAA03P,EAAAzzP,EAAAvB,EAAA1C,EAAAo5P,KAGAl0Z,EAAA66W,UAAA,SAAA97M,GACA,IAAAvB,EAAAuB,EAAA1C,cACAvB,EAAAiE,EAAA/C,WACA,WAAAlB,EAAAm3P,EAAAlzP,EAAAvB,EAAA,MAAAy0P,EAAAlzP,EAAAvB,EAAA1C,EAAA,IAGA96J,EAAA86W,UAAA,SAAA/7M,GACA,IAAAvB,EAAAuB,EAAA1C,cACAvB,EAAAiE,EAAA/C,WACA,YAAAlB,EAAAm3P,EAAAlzP,EAAAvB,EAAA,KAAAy0P,EAAAlzP,EAAAvB,EAAA1C,EAAA,IAGA96J,EAAA26W,SAAA,SAAA57M,GACA,IAAAw0P,EAAA5xZ,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KAEA67J,EAAAuB,EAAA1C,cACAvB,EAAAiE,EAAA/C,WACA,OAAAi2P,EAAAlzP,EAAAvB,EAAA+1P,EAAAz4P,IAGA96J,EAAA46W,SAAA,SAAA77M,GACA,IAAAw0P,EAAA5xZ,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KAEA67J,EAAAuB,EAAA1C,cACAvB,EAAAiE,EAAA/C,WACA,OAAAi2P,EAAAlzP,EAAAvB,EAAA+1P,EAAAz4P,IAGA96J,EAAAgyZ,kBAAA,SAAAzsZ,GACA,OAAAA,EAAAH,QAAA,mBAAkC,IAAAA,QAAA,6BAA0C,IAAAi5E,QAG5Er+E,EAAA+xZ,kBAAA,SAAAxsZ,GACA,OAAAA,EAAAH,QAAA,iDAAsE,IAAAi5E,SAKtE,SAAAt+E,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACA,IAAAkmV,EAAAn0Z,EAAAm0Z,SAAA,cAEAn0Z,EAAAo0Z,aAAA,SAAAr+V,EAAApoD,GACAA,MAAAwmZ,IACA1tZ,OAAAwB,eAAA0F,EAAAwmZ,GACA/vZ,MAAA2xD,EAAAx3D,GACA2J,YAAA,EACAC,cAAA,EACAC,UAAA,KAIApI,EAAAq0Z,WAAA,SAAAztZ,EAAA+G,GACA,OAAA/G,EACA+G,EAAA/G,GADA+G,EAAAwmZ,IAIAn0Z,EAAAs0Z,qBAAA,SAAAhxX,EAAA87I,GAEA,IADA,IAAAhiL,EAAAkmC,EACAlmC,GAAA,SAAAA,EAAAwxC,SAAA,CACA,GAAAxxC,EAAA84P,SAAA94P,EAAA84P,QAAAjhP,SAAAxV,OAAA2/K,EACA,OAAAhiL,EAAA84P,QAEA94P,IAAAgsC,WAEA,cAKA,SAAArpC,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4V,SACA+G,QAAA,WACA9f,KAAA03Z,YAAA7wW,YAAA7mD,OAEAunN,UAAA,WACAvnN,KAAA03Z,YAAA1wW,eAAAhnD,OAIA6b,UACA67Y,YAAA,WACA,IAAApgY,EAAAt3B,KAAAs3B,OAIA,IAHAA,GAAAt3B,KAAA8gX,QACAxpV,EAAAt3B,KAAA8gX,MAAAxpV,SAEAA,EACA,UAAA+nC,MAAA,8BAEA,OAAA/nC,IAIAvX,QAAA,WACA/f,KAAA23Z,gBAAA33Z,KAAA03Z,aACA13Z,KAAA43Z,mBAAA53Z,KAAA03Z,cAEAtwL,QAAA,WACApnO,KAAA63Z,cACA73Z,KAAA23Z,gBAAA33Z,KAAA03Z,aACA13Z,KAAA43Z,mBAAA53Z,KAAA03Z,aACA13Z,KAAA63Z,aAAA,IAIA97Y,SACA47Y,gBAAA,WACA,IAAAG,EAAA93Z,KAAA0c,IAAAmkC,iBAAA,kBACA,GAAAi3W,EAAA72Z,OAAA,CACA,IACAykX,KADA1lX,KAAA03Z,YAAAK,oBAEAjuZ,QAAA,SAAA6jB,GACA+3V,EAAA/3V,EAAAjsB,IAAAisB,IAEA,QAAA5sB,EAAA,EAAAmyB,EAAA4kY,EAAA72Z,OAAsCF,EAAAmyB,EAAOnyB,IAAA,CAC7C,IAAA0sK,EAAAqqP,EAAA/2Z,GACA6B,EAAA6qK,EAAAvyG,aAAA,QACAvtC,EAAA+3V,EAAA9iX,GACA+qB,GACA8/I,EAAA/mI,aAAA,QAAA/Y,EAAAqqY,WAAArqY,EAAA3U,UAIA4+Y,mBAAA,SAAAtgY,GAEA,IADA,IAAAwgY,EAAA93Z,KAAA0c,IAAAmkC,iBAAA,+BACA9/C,EAAA,EAAAmyB,EAAA4kY,EAAA72Z,OAAsCF,EAAAmyB,EAAOnyB,IAAA,CAC7C+2Z,EAAA/2Z,GACA2lC,aAAA,QAAApP,EAAA2gY,QAAA3gY,EAAA4gY,YAAA,KAGA,IADA,IAAAC,EAAAn4Z,KAAA0c,IAAAmkC,iBAAA,aACA8lD,EAAA,EAAAU,EAAA8wT,EAAAl3Z,OAAuC0lG,EAAAU,EAASV,IAAA,CAChD,IAAAngG,EAAA2xZ,EAAAxxT,GACAngG,EAAA+R,MAAAS,MAAAse,EAAA2gY,QAAA3gY,EAAA4gY,YAAA,SACA1xZ,EAAA+R,MAAAM,QAAAye,EAAA2gY,QAAA,eAQA,SAAA/0Z,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA6wZ,EAAA74Z,EAAA,KACA84Z,EAAA94Z,EAAA6+C,EAAAg6W,GACAE,EAAA/4Z,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAklV,EAAA9iZ,EACA+iZ,EAAA,GATA,EAEA,KAEA,KAEA,MAUA/zW,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAgxZ,EAAAh5Z,EAAA,KACAi5Z,EAAAj5Z,EAAA6+C,EAAAm6W,GACAE,EAAAl5Z,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAqlV,EAAAjjZ,EACAkjZ,EAAA,GATA,EAEA,KAEA,KAEA,MAUAl0W,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEAjuE,EAAA4V,QAAA,SAAA0tB,EAAAh+B,GACA,IAAAwuE,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,CACA,IAAAw/U,EAAA,SAAAnhW,GACA9uD,EAAAkwZ,MACAlwZ,EAAAkwZ,KAAAphW,IAGAqhW,EAAA,SAAAA,EAAArhW,GACA1nD,SAAAiP,oBAAA,YAAA45Y,GACA7oZ,SAAAiP,oBAAA,UAAA85Y,GACA/oZ,SAAAm9M,cAAA,KACAn9M,SAAAilR,YAAA,KAEAt4H,GAAA,EAEA/zJ,EAAAyoB,KACAzoB,EAAAyoB,IAAAqmC,IAGA9wB,EAAA7nB,iBAAA,qBAAA24C,GACAilG,IACA3sJ,SAAAm9M,cAAA,WACA,UAEAn9M,SAAAilR,YAAA,WACA,UAGAjlR,SAAA+O,iBAAA,YAAA85Y,GACA7oZ,SAAA+O,iBAAA,UAAAg6Y,GACAp8P,GAAA,EAEA/zJ,EAAAjG,OACAiG,EAAAjG,MAAA+0D,QAKA,IAIApsD,EAJAotL,EAAAh5L,EAAA,GAEA03E,GAEA9rE,EAFAotL,IAEsCptL,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAqxJ,GAAA,GAIA,SAAAt5J,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACA,IAAA9kB,QAEAA,EAAA+zN,MAAA/zN,EAAA+zN,UAUA/zN,EAAA+zN,MAAAC,qBAAA,SAAA75O,GACA,QAAA1lC,EAAA,EAAiBA,EAAA0lC,EAAAg6L,WAAAx/N,OAA+BF,IAAA,CAChD,IAAAurC,EAAA7F,EAAAg6L,WAAA1/N,GACA,GAAAurD,EAAA+zN,MAAAE,aAAAj0O,IAAAggB,EAAA+zN,MAAAC,qBAAAh0O,GACA,SAGA,UAWAggB,EAAA+zN,MAAAG,oBAAA,SAAA/5O,GACA,QAAA1lC,EAAA0lC,EAAAg6L,WAAAx/N,OAAA,EAA6CF,GAAA,EAAQA,IAAA,CACrD,IAAAurC,EAAA7F,EAAAg6L,WAAA1/N,GACA,GAAAurD,EAAA+zN,MAAAE,aAAAj0O,IAAAggB,EAAA+zN,MAAAG,oBAAAl0O,GACA,SAGA,UAUAggB,EAAA+zN,MAAAE,aAAA,SAAA95O,GACA,IAAA6lB,EAAA+zN,MAAAI,YAAAh6O,GACA,SAEA6lB,EAAA+zN,MAAAK,wBAAA,EACA,IACAj6O,EAAA8G,QACG,MAAAppC,IAEH,OADAmoD,EAAA+zN,MAAAK,wBAAA,EACA7wQ,SAAA+yP,gBAAAn8N,GAGA6lB,EAAA+zN,MAAAI,YAAA,SAAAh6O,GACA,GAAAA,EAAAk6O,SAAA,OAAAl6O,EAAAk6O,UAAA,OAAAl6O,EAAAy0B,aAAA,YACA,SAGA,GAAAz0B,EAAAitC,SACA,SAGA,OAAAjtC,EAAAmtI,UACA,QACA,QAAAntI,EAAAqnH,MAAA,WAAArnH,EAAAm6O,IACA,YACA,iBAAAn6O,EAAAjjC,MAAA,SAAAijC,EAAAjjC,KACA,aACA,aACA,eACA,SACA,QACA,WAWA8oD,EAAA+zN,MAAAv+E,aAAA,SAAAkT,EAAApyM,GACA,IAAA2jC,OAAA,EAGAA,EADA,eAAAo1B,KAAA/4D,GACA,cACG,OAAA+4D,KAAA/4D,GACH,gBAEA,aAIA,IAFA,IAAAwxE,EAAAvkE,SAAAynH,YAAA/wF,GAEA5mB,EAAA7a,UAAA7D,OAAA4J,EAAAgB,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAoFA,EAAAgC,EAAahC,IACjG9S,EAAA8S,EAAA,GAAA7Y,UAAA6Y,GAMA,OAHAy2D,EAAAmjD,UAAAhrH,MAAA6nE,GAAAxxE,GAAAmS,OAAAlK,IACAmqM,EAAAx9E,cAAAw9E,EAAAx9E,cAAApjD,GAAA4gI,EAAA6rE,UAAA,KAAAj+Q,EAAAwxE,GAEA4gI,GAGA1oJ,EAAA+zN,MAAAx2Q,MACAoxQ,IAAA,EACAlU,MAAA,GACAh8P,MAAA,GACAlF,KAAA,GACAq1Q,GAAA,GACAp1Q,MAAA,GACAq1Q,KAAA,IAGAh4Q,EAAA4V,QAAAuzC,EAAA+zN,OAIA,SAAAn9Q,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4V,SACAs6D,QAAA,YACAx3D,UACAg9Y,UAAA,WAGA,IAFA,IAAAx4Z,GAAAL,KAAA4M,OACA28B,EAAAvpC,KAAAmsN,QACA,WAAA5iL,EAAAnxB,SAAAmqK,eACAh5I,EAAA38B,OACAvM,EAAAsiC,QAAA4G,EAAA38B,OAEA28B,IAAA4iL,QAEA,OAAA9rN,GAEAy4Z,WAAA,WAEA,IADA,IAAAvvX,EAAAvpC,KAAAmsN,QACA5iL,IAAA,2BAAAzpC,QAAAypC,EAAAnxB,SAAAmqK,gBACAh5I,IAAA4iL,QAEA,OAAA5iL,GAEAwvX,aAAA,WACA,gBAAA/4Z,KAAAg5Z,SAAA3gS,KAAA,SAEA,IAAA9iG,EAAA,GACAgU,EAAAvpC,KAAAmsN,QAEA,GAAAnsN,KAAAg5Z,SAAAC,SACA1jY,EAAA,QAEA,KAAAgU,GAAA,WAAAA,EAAAnxB,SAAAmqK,eACA,cAAAh5I,EAAAnxB,SAAAmqK,gBACAhtJ,GAAA,IAEAgU,IAAA4iL,QAGA,OAAcqgG,YAAAj3R,EAAA,UAOd,SAAAryB,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAAjjB,EAAA5uD,EAAA,GAEA4D,EAAA4V,SACAvO,KAAA,SAAA/J,EAAA4sQ,EAAAvmD,GACA,IAAAptK,EAAA,KACAwX,OAAA,EACAz1C,EAAA,WACA,OAAAqrM,EAAAh5J,QAAAu/M,EAAAjuP,YAAA7S,SAEA64C,EAAA,WACA,IAAA31C,KAAAyhD,EAAA,KACAz1C,IAEA8sG,cAAA7uE,GACAA,EAAA,OAGA,EAAAyU,EAAAzuC,IAAAjf,EAAA,qBAAA0D,GACA,IAAAA,EAAAguL,SACAjhI,EAAA,IAAAzhD,MACA,EAAA0+C,EAAA23B,MAAAj2E,SAAA,UAAAu1C,GACAmjE,cAAA7uE,GACAA,EAAAgvE,YAAAjtG,EAAA,WAOA,SAAAvY,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy6K,EAAAziL,EAAA,KACA0iL,EAAA1iL,EAAA6+C,EAAA4jI,GACAE,EAAA3iL,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8uG,EAAA1sK,EACA2sK,EAAA,GATA,EAEA,KAEA,KAEA,MAUA39H,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA+1Z,eAAA/1Z,EAAAg2Z,gBAAAh2Z,EAAAi2Z,cAAAj2Z,EAAAwiZ,QAAAxiZ,EAAAk2Z,aAAA3rZ,EAEA,IAAA1C,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5I1L,EAAAF,EAAA,GAeAK,GAbAuD,EAAAk2Z,QAAA,SAAA9hW,GAGA,IAFA,IAAA+hW,EAAA/hW,EAAAh3D,OAEA+4Z,GAAA,SAAAA,EAAAvnX,QAAAC,eAAA,CACA,UAAAsnX,EAAAvnX,QAAAC,cACA,OAAAsnX,EAEAA,IAAA/sX,WAGA,aAGA,SAAAphC,GACA,cAAAA,GAAA,qBAAAA,EAAA,YAAAH,EAAAG,MA8DAiuZ,GA3DAj2Z,EAAAwiZ,QAAA,SAAAvmV,EAAAm6V,EAAAhyY,EAAAiyY,EAAAC,GACA,IAAAF,IAAAC,KAAAC,GAAA5tZ,MAAAC,QAAA2tZ,OAAAx4Z,QACA,OAAAm+D,EAGA73C,EADA,iBAAAA,EACA,eAAAA,GAAA,IAEAA,KAAA,OAEA,IAAAo1V,EAAA68C,EAAA,cAAAjyZ,EAAAqF,GACA,OAAA6sZ,GACA5tZ,MAAAC,QAAA2tZ,KACAA,OAEAA,EAAA9oZ,IAAA,SAAA+oZ,GACA,uBAAAA,GACA,EAAAj6Z,EAAA6jL,gBAAA/7K,EAAAmyZ,GAEAA,EAAAnyZ,EAAAqF,EAAAwyD,OAIA,SAAAm6V,GACA35Z,EAAA2H,IAAA,WAAAA,QAAAoyZ,SAEA/5Z,EAAA2H,IAAA,EAAA9H,EAAA6jL,gBAAA/7K,EAAAgyZ,GAAAhyZ,KAgBA,OAAA63D,EAAAzuD,IAAA,SAAApJ,EAAAqF,GACA,OACArF,QACAqF,QACA7C,IAAA4yW,IAAAp1W,EAAAqF,GAAA,QAEG0I,KAAA,SAAAC,EAAAC,GACH,IAAAH,EArBA,SAAAE,EAAAC,GACA,GAAAgkZ,EACA,OAAAA,EAAAjkZ,EAAAhO,MAAAiO,EAAAjO,OAEA,QAAAxG,EAAA,EAAAc,EAAA0T,EAAAxL,IAAA9I,OAAuCF,EAAAc,EAASd,IAAA,CAChD,GAAAwU,EAAAxL,IAAAhJ,GAAAyU,EAAAzL,IAAAhJ,GACA,SAEA,GAAAwU,EAAAxL,IAAAhJ,GAAAyU,EAAAzL,IAAAhJ,GACA,SAGA,SASAuoS,CAAA/zR,EAAAC,GAKA,OAJAH,IAEAA,EAAAE,EAAA3I,MAAA4I,EAAA5I,OAEAyI,EAAAkS,IACG5W,IAAA,SAAAhE,GACH,OAAAA,EAAApF,SAIApE,EAAAi2Z,cAAA,SAAAt4C,EAAA84C,GACA,IAAAjsY,EAAA,KAMA,OALAmzV,EAAAltW,QAAA9J,QAAA,SAAA6C,GACAA,EAAAjL,KAAAk4Z,IACAjsY,EAAAhhB,KAGAghB,IAGAxqB,EAAAg2Z,gBAAA,SAAAr4C,EAAAw4C,GACA,IAAA/hK,GAAA+hK,EAAAv4W,WAAA,IAAA53C,MAAA,qBACA,OAAAouP,EACA6hK,EAAAt4C,EAAAvpH,EAAA,IAEA,MAGAp0P,EAAA+1Z,eAAA,SAAAjoZ,EAAA4oZ,GACA,IAAA5oZ,EAAA,UAAAouD,MAAA,yCACA,oBAAAw6V,EAAA,CACA,GAAAA,EAAA/5Z,QAAA,OACA,OAAAmR,EAAA4oZ,GAIA,IAFA,IAAA9vZ,EAAA8vZ,EAAAh5Z,MAAA,KACA0jC,EAAAtzB,EACAlQ,EAAA,EAAmBA,EAAAgJ,EAAA9I,OAAgBF,IACnCwjC,IAAAx6B,EAAAhJ,IAEA,OAAAwjC,EACG,sBAAAs1X,EACH,OAAAA,EAAAnuZ,KAAA,KAAAuF,KAMA,SAAA/N,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAuyZ,EAAAv6Z,EAAA,KACAw6Z,EAAAx6Z,EAAA6+C,EAAA07W,GACAE,EAAAz6Z,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA4mV,EAAAxkZ,EACAykZ,EAAA,GATA,EAEA,KAEA,KAEA,MAUAz1W,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA0yZ,EAAA16Z,EAAA,KACA26Z,EAAA36Z,EAAA6+C,EAAA67W,GACAE,EAAA56Z,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA+mV,EAAA3kZ,EACA4kZ,EAAA,GATA,EAEA,KAEA,KAEA,MAUA51W,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA6yZ,EAAA76Z,EAAA,KACA86Z,EAAA96Z,EAAA6+C,EAAAg8W,GACAE,EAAA/6Z,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAknV,EAAA9kZ,EACA+kZ,EAAA,GATA,EAEA,KAEA,KAEA,MAUA/1W,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAApmE,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAI5I,IAAAovZ,EAAA,SAAAC,EAAAp7C,EAAA7xW,GACA,OAAAitZ,EAAAp7C,EAAA7xW,IAAAitZ,GAAA,EAAAp7C,GAAA7xW,GAAA,EAAAitZ,EAAA,EAAAA,IAAA,EAAAA,EAAA,IAcAC,EAAA,SAAAlzZ,EAAAU,GATA,IAAAm2C,EACA,iBADAA,EAUA72C,KATA,IAAA62C,EAAAt+C,QAAA,UAAA0lB,WAAA44B,KASA72C,EAAA,QAEA,IAAAmzZ,EARA,SAAAt8W,GACA,uBAAAA,IAAA,IAAAA,EAAAt+C,QAAA,KAOA66Z,CAAApzZ,GASA,OARAA,EAAAQ,KAAAC,IAAAC,EAAAF,KAAAE,IAAA,EAAAud,WAAAje,KAGAmzZ,IACAnzZ,EAAAqyE,SAAAryE,EAAAU,EAAA,SAIAF,KAAAY,IAAApB,EAAAU,GAAA,KACA,EAIAV,EAAAU,EAAAud,WAAAvd,IAGA2yZ,GAAmBx9G,GAAA,IAAAy9G,GAAA,IAAAx9G,GAAA,IAAAy9G,GAAA,IAAAx1M,GAAA,IAAAy1M,GAAA,KAmBnBC,GAAmB7qX,EAAA,GAAAooL,EAAA,GAAAtoL,EAAA,GAAAwuH,EAAA,GAAA06I,EAAA,GAAAnhF,EAAA,IAEnBijM,EAAA,SAAA33C,GACA,WAAAA,EAAAriX,OACA,IAAA+5Z,EAAA13C,EAAA,GAAAtxU,iBAAAsxU,EAAA,KAAA03C,EAAA13C,EAAA,GAAAtxU,iBAAAsxU,EAAA,IAGA03C,EAAA13C,EAAA,GAAAtxU,iBAAAsxU,EAAA,IA4BA43C,EAAA,SAAAzjZ,EAAA20B,EAAA52B,GACAiC,EAAAgjZ,EAAAhjZ,EAAA,KACA20B,EAAAquX,EAAAruX,EAAA,KACA52B,EAAAilZ,EAAAjlZ,EAAA,KAEA,IAGA2C,EAHAlQ,EAAAF,KAAAE,IAAAwP,EAAA20B,EAAA52B,GACAxN,EAAAD,KAAAC,IAAAyP,EAAA20B,EAAA52B,GACAyC,OAAA,EAEAlL,EAAA9E,EAEAwmB,EAAAxmB,EAAAD,EAGA,GAFAmQ,EAAA,IAAAlQ,EAAA,EAAAwmB,EAAAxmB,EAEAA,IAAAD,EACAiQ,EAAA,MACG,CACH,OAAAhQ,GACA,KAAAwP,EACAQ,GAAAm0B,EAAA52B,GAAAiZ,GAAA2d,EAAA52B,EAAA,KACA,MACA,KAAA42B,EACAn0B,GAAAzC,EAAAiC,GAAAgX,EAAA,EACA,MACA,KAAAjZ,EACAyC,GAAAR,EAAA20B,GAAA3d,EAAA,EAGAxW,GAAA,EAGA,OAAUA,EAAA,IAAAA,EAAAE,EAAA,IAAAA,EAAApL,EAAA,IAAAA,IAOVouZ,EAAA,SAAAljZ,EAAAE,EAAApL,GACAkL,EAAA,EAAAwiZ,EAAAxiZ,EAAA,KACAE,EAAAsiZ,EAAAtiZ,EAAA,KACApL,EAAA0tZ,EAAA1tZ,EAAA,KAEA,IAAAhM,EAAAgH,KAAAkwC,MAAAhgC,GACA+qC,EAAA/qC,EAAAlX,EACAmwC,EAAAnkC,GAAA,EAAAoL,GACAkrU,EAAAt2U,GAAA,EAAAi2C,EAAA7qC,GACAswE,EAAA17E,GAAA,KAAAi2C,GAAA7qC,GACAijZ,EAAAr6Z,EAAA,EACA0W,GAAA1K,EAAAs2U,EAAAnyS,IAAAu3C,EAAA17E,GAAAquZ,GACAhvX,GAAAq8C,EAAA17E,IAAAs2U,EAAAnyS,KAAAkqX,GACA5lZ,GAAA07B,IAAAu3C,EAAA17E,IAAAs2U,GAAA+3E,GAEA,OACA3jZ,EAAA1P,KAAAqC,MAAA,IAAAqN,GACA20B,EAAArkC,KAAAqC,MAAA,IAAAgiC,GACA52B,EAAAzN,KAAAqC,MAAA,IAAAoL,KAIA6lZ,EAAA,WACA,SAAAA,EAAA5yZ,GAcA,QAAAwU,KAtKA,SAAAsiC,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAyJ3F6+B,CAAA7iF,KAAAq7Z,GAEAr7Z,KAAAs7Z,KAAA,EACAt7Z,KAAAu7Z,YAAA,IACAv7Z,KAAAsiQ,OAAA,IACAtiQ,KAAAw7Z,OAAA,IAEAx7Z,KAAAy7Z,aAAA,EACAz7Z,KAAA0I,OAAA,MACA1I,KAAAuH,MAAA,GAEAkB,QAGAA,EAAA5F,eAAAoa,KACAjd,KAAAid,GAAAxU,EAAAwU,IAIAjd,KAAA07Z,aAwLA,OArLAL,EAAAn7Z,UAAA8kD,IAAA,SAAAlkD,EAAAyG,GACA,OAAAzC,UAAA7D,QAAA,qBAAAH,EAAA,YAAAkK,EAAAlK,IAUAd,KAAA,IAAAc,GAAAyG,EACAvH,KAAA07Z,kBAVA,QAAAxqX,KAAApwC,EACAA,EAAA+B,eAAAquC,IACAlxC,KAAAglD,IAAA9T,EAAApwC,EAAAowC,KAWAmqX,EAAAn7Z,UAAA8D,IAAA,SAAAlD,GACA,OAAAd,KAAA,IAAAc,IAGAu6Z,EAAAn7Z,UAAAy7Z,MAAA,WACA,OAAAR,EAAAn7Z,KAAAs7Z,KAAAt7Z,KAAAu7Z,YAAAv7Z,KAAAsiQ,SAGA+4J,EAAAn7Z,UAAA07Z,WAAA,SAAAr0Z,GACA,IAAAsV,EAAA7c,KAEA,IAAAuH,EAMA,OALAvH,KAAAs7Z,KAAA,EACAt7Z,KAAAu7Z,YAAA,IACAv7Z,KAAAsiQ,OAAA,SAEAtiQ,KAAA07Z,aAIA,IAAAG,EAAA,SAAA5jZ,EAAAE,EAAApL,GACA8P,EAAAy+Y,KAAAvzZ,KAAAE,IAAA,EAAAF,KAAAC,IAAA,IAAAiQ,IACA4E,EAAA0+Y,YAAAxzZ,KAAAE,IAAA,EAAAF,KAAAC,IAAA,IAAAmQ,IACA0E,EAAAylP,OAAAv6P,KAAAE,IAAA,EAAAF,KAAAC,IAAA,IAAA+E,IAEA8P,EAAA6+Y,cAGA,QAAAn0Z,EAAAzH,QAAA,QACA,IAAA2iF,EAAAl7E,EAAAgB,QAAA,uBAAA1H,MAAA,SAAAumB,OAAA,SAAA7Z,GACA,WAAAA,IACOoD,IAAA,SAAApD,EAAAX,GACP,OAAAA,EAAA,EAAA4Y,WAAAjY,GAAAqsE,SAAArsE,EAAA,MAQA,GALA,IAAAk1E,EAAAxhF,OACAjB,KAAAw7Z,OAAAzzZ,KAAAkwC,MAAA,IAAAzyB,WAAAi9D,EAAA,KACO,IAAAA,EAAAxhF,SACPjB,KAAAw7Z,OAAA,KAEA/4U,EAAAxhF,QAAA,GACA,IAAA66Z,EArKA,SAAAtB,EAAAp7C,EAAA28C,GAEAA,GAAA,IACA,IAAAC,EAFA58C,GAAA,IAGA68C,EAAAl0Z,KAAAE,IAAA8zZ,EAAA,KAUA,OALA38C,IADA28C,GAAA,IACA,EAAAA,EAAA,EAAAA,EACAC,GAAAC,GAAA,EAAAA,EAAA,EAAAA,GAKAhkZ,EAAAuiZ,EACAriZ,EAAA,KAJA,IAAA4jZ,EAAA,EAAAC,GAAAC,EAAAD,GAAA,EAAA58C,GAAA28C,EAAA38C,IAKAryW,GANAgvZ,EAAA38C,GAAA,EAMA,KAoJA88C,CAAAz5U,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAKAo5U,EAJAC,EAAA7jZ,EACA6jZ,EAAA3jZ,EACA2jZ,EAAA/uZ,SAIK,QAAAxF,EAAAzH,QAAA,QACL,IAAAq8Z,EAAA50Z,EAAAgB,QAAA,uBAAA1H,MAAA,SAAAumB,OAAA,SAAA7Z,GACA,WAAAA,IACOoD,IAAA,SAAApD,EAAAX,GACP,OAAAA,EAAA,EAAA4Y,WAAAjY,GAAAqsE,SAAArsE,EAAA,MAGA,IAAA4uZ,EAAAl7Z,OACAjB,KAAAw7Z,OAAAzzZ,KAAAkwC,MAAA,IAAAzyB,WAAA22Y,EAAA,KACO,IAAAA,EAAAl7Z,SACPjB,KAAAw7Z,OAAA,KAEAW,EAAAl7Z,QAAA,GACA46Z,EAAAM,EAAA,GAAAA,EAAA,GAAAA,EAAA,SAEK,QAAA50Z,EAAAzH,QAAA,QACL,IAAAs8Z,EAAA70Z,EAAAgB,QAAA,uBAAA1H,MAAA,SAAAumB,OAAA,SAAA7Z,GACA,WAAAA,IACOoD,IAAA,SAAApD,EAAAX,GACP,OAAAA,EAAA,EAAA4Y,WAAAjY,GAAAqsE,SAAArsE,EAAA,MAQA,GALA,IAAA6uZ,EAAAn7Z,OACAjB,KAAAw7Z,OAAAzzZ,KAAAkwC,MAAA,IAAAzyB,WAAA42Y,EAAA,KACO,IAAAA,EAAAn7Z,SACPjB,KAAAw7Z,OAAA,KAEAY,EAAAn7Z,QAAA,GACA,IAAAo7Z,EAAAnB,EAAAkB,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAKAP,EAJAQ,EAAApkZ,EACAokZ,EAAAlkZ,EACAkkZ,EAAAtvZ,SAIK,QAAAxF,EAAAzH,QAAA,MACL,IAAAwjX,EAAA/7W,EAAAgB,QAAA,QAAAi5E,OACA/pE,OAAA,EACA20B,OAAA,EACA52B,OAAA,EAEA,IAAA8tW,EAAAriX,QACAwW,EAAAwjZ,EAAA33C,EAAA,GAAAA,EAAA,IACAl3U,EAAA6uX,EAAA33C,EAAA,GAAAA,EAAA,IACA9tW,EAAAylZ,EAAA33C,EAAA,GAAAA,EAAA,KACO,IAAAA,EAAAriX,QAAA,IAAAqiX,EAAAriX,SACPwW,EAAAwjZ,EAAA33C,EAAA9gS,UAAA,MACAp2C,EAAA6uX,EAAA33C,EAAA9gS,UAAA,MACAhtE,EAAAylZ,EAAA33C,EAAA9gS,UAAA,OAGA,IAAA8gS,EAAAriX,OACAjB,KAAAw7Z,OAAAzzZ,KAAAkwC,MAAAgjX,EAAA33C,EAAA9gS,UAAA,aACO,IAAA8gS,EAAAriX,QAAA,IAAAqiX,EAAAriX,SACPjB,KAAAw7Z,OAAA,KAGA,IAAAc,EAAApB,EAAAzjZ,EAAA20B,EAAA52B,GAKAqmZ,EAJAS,EAAArkZ,EACAqkZ,EAAAnkZ,EACAmkZ,EAAAvvZ,KAMAsuZ,EAAAn7Z,UAAAopS,QAAA,SAAAnjS,GACA,OAAA4B,KAAAY,IAAAxC,EAAAm1Z,KAAAt7Z,KAAAs7Z,MAAA,GAAAvzZ,KAAAY,IAAAxC,EAAAo1Z,YAAAv7Z,KAAAu7Z,aAAA,GAAAxzZ,KAAAY,IAAAxC,EAAAm8P,OAAAtiQ,KAAAsiQ,QAAA,GAAAv6P,KAAAY,IAAAxC,EAAAq1Z,OAAAx7Z,KAAAw7Z,QAAA,GAGAH,EAAAn7Z,UAAAw7Z,WAAA,WACA,IAAAJ,EAAAt7Z,KAAAs7Z,KACAC,EAAAv7Z,KAAAu7Z,YACAj5J,EAAAtiQ,KAAAsiQ,OACAk5J,EAAAx7Z,KAAAw7Z,OACA9yZ,EAAA1I,KAAA0I,OAGA,GAAA1I,KAAAy7Z,YACA,OAAA/yZ,GACA,UACA,IAAA6zZ,EAAAhC,EAAAe,EAAAC,EAAA,IAAAj5J,EAAA,KACAtiQ,KAAAuH,MAAA,QAAA+zZ,EAAA,KAAAvzZ,KAAAqC,MAAA,IAAAmyZ,EAAA,UAAAx0Z,KAAAqC,MAAA,IAAAmyZ,EAAA,UAAAf,EAAA,QACA,MACA,UACAx7Z,KAAAuH,MAAA,QAAA+zZ,EAAA,KAAAvzZ,KAAAqC,MAAAmxZ,GAAA,MAAAxzZ,KAAAqC,MAAAk4P,GAAA,MAAAk5J,EAAA,QACA,MACA,QACA,IAAAgB,EAAArB,EAAAG,EAAAC,EAAAj5J,GACA7qP,EAAA+kZ,EAAA/kZ,EACA20B,EAAAowX,EAAApwX,EACA52B,EAAAgnZ,EAAAhnZ,EAEAxV,KAAAuH,MAAA,QAAAkQ,EAAA,KAAA20B,EAAA,KAAA52B,EAAA,KAAAgmZ,EAAA,aAGA,OAAA9yZ,GACA,UACA,IAAA+zZ,EAAAlC,EAAAe,EAAAC,EAAA,IAAAj5J,EAAA,KACAtiQ,KAAAuH,MAAA,OAAA+zZ,EAAA,KAAAvzZ,KAAAqC,MAAA,IAAAqyZ,EAAA,UAAA10Z,KAAAqC,MAAA,IAAAqyZ,EAAA,SACA,MACA,UACAz8Z,KAAAuH,MAAA,OAAA+zZ,EAAA,KAAAvzZ,KAAAqC,MAAAmxZ,GAAA,MAAAxzZ,KAAAqC,MAAAk4P,GAAA,KACA,MACA,UACA,IAAAo6J,EAAAvB,EAAAG,EAAAC,EAAAj5J,GACAq6J,EAAAD,EAAAjlZ,EACAu6O,EAAA0qK,EAAAtwX,EACAs8L,EAAAg0L,EAAAlnZ,EAEAxV,KAAAuH,MAAA,OAAAo1Z,EAAA,KAAA3qK,EAAA,KAAAtpB,EAAA,IACA,MACA,QACA1oO,KAAAuH,MAxTA,SAAA2G,GACA,IAAAuJ,EAAAvJ,EAAAuJ,EACA20B,EAAAl+B,EAAAk+B,EACA52B,EAAAtH,EAAAsH,EAEAonZ,EAAA,SAAAr1Z,GACAA,EAAAQ,KAAAC,IAAAD,KAAAqC,MAAA7C,GAAA,KACA,IAAAs1Z,EAAA90Z,KAAAkwC,MAAA1wC,EAAA,IACAu1Z,EAAAv1Z,EAAA,GACA,UAAAqzZ,EAAAiC,QAAAjC,EAAAkC,QAGA,OAAAryZ,MAAAgN,IAAAhN,MAAA2hC,IAAA3hC,MAAA+K,GAAA,GAEA,IAAAonZ,EAAAnlZ,GAAAmlZ,EAAAxwX,GAAAwwX,EAAApnZ,GA0SA2zM,CAAAgyM,EAAAG,EAAAC,EAAAj5J,MAKA+4J,EA7MA,GAgNAl4Z,EAAA4V,QAAAsiZ,GAKA,SAAAn4Z,EAAAC,EAAA5D,GAEA2D,EAAAC,QAAA5D,EAAA,KAKA,SAAA2D,EAAAC,EAAA5D,GAEA,aAGA,IAEAw9Z,EAAA7lV,GAFA33E,EAAA,KAMAy9Z,EAAA9lV,GAFA33E,EAAA,KAMA09Z,EAAA/lV,GAFA33E,EAAA,KAMA29Z,EAAAhmV,GAFA33E,EAAA,KAMA49Z,EAAAjmV,GAFA33E,EAAA,KAMA69Z,EAAAlmV,GAFA33E,EAAA,KAMA89Z,EAAAnmV,GAFA33E,EAAA,KAMA+9Z,EAAApmV,GAFA33E,EAAA,KAMAg+Z,EAAArmV,GAFA33E,EAAA,KAMAi+Z,EAAAtmV,GAFA33E,EAAA,KAMAk+Z,EAAAvmV,GAFA33E,EAAA,KAMAm+Z,EAAAxmV,GAFA33E,EAAA,KAMAo+Z,EAAAzmV,GAFA33E,EAAA,MAMAq+Z,EAAA1mV,GAFA33E,EAAA,MAMAs+Z,EAAA3mV,GAFA33E,EAAA,MAMAu+Z,EAAA5mV,GAFA33E,EAAA,MAMAw+Z,EAAA7mV,GAFA33E,EAAA,MAMAy+Z,EAAA9mV,GAFA33E,EAAA,MAMA0+Z,EAAA/mV,GAFA33E,EAAA,MAMA2+Z,EAAAhnV,GAFA33E,EAAA,MAMA4+Z,EAAAjnV,GAFA33E,EAAA,MAMA6+Z,EAAAlnV,GAFA33E,EAAA,MAMA8+Z,EAAAnnV,GAFA33E,EAAA,MAMA++Z,EAAApnV,GAFA33E,EAAA,MAMAg/Z,EAAArnV,GAFA33E,EAAA,MAMAi/Z,EAAAtnV,GAFA33E,EAAA,MAMAk/Z,EAAAvnV,GAFA33E,EAAA,MAMAm/Z,EAAAxnV,GAFA33E,EAAA,MAMAo/Z,EAAAznV,GAFA33E,EAAA,MAMAq/Z,EAAA1nV,GAFA33E,EAAA,MAMAs/Z,EAAA3nV,GAFA33E,EAAA,MAMAu/Z,EAAA5nV,GAFA33E,EAAA,MAMAw/Z,EAAA7nV,GAFA33E,EAAA,MAMAy/Z,EAAA9nV,GAFA33E,EAAA,MAMA0/Z,EAAA/nV,GAFA33E,EAAA,MAMA2/Z,EAAAhoV,GAFA33E,EAAA,MAMA4/Z,EAAAjoV,GAFA33E,EAAA,MAMA6/Z,EAAAloV,GAFA33E,EAAA,MAMA8/Z,EAAAnoV,GAFA33E,EAAA,MAMA+/Z,EAAApoV,GAFA33E,EAAA,MAMAgga,EAAAroV,GAFA33E,EAAA,MAMAiga,EAAAtoV,GAFA33E,EAAA,MAMAkga,EAAAvoV,GAFA33E,EAAA,MAMAmga,EAAAxoV,GAFA33E,EAAA,MAMAoga,EAAAzoV,GAFA33E,EAAA,MAMAqga,EAAA1oV,GAFA33E,EAAA,MAMAsga,EAAA3oV,GAFA33E,EAAA,MAMAuga,EAAA5oV,GAFA33E,EAAA,MAMAwga,EAAA7oV,GAFA33E,EAAA,MAMAyga,EAAA9oV,GAFA33E,EAAA,MAMA0ga,EAAA/oV,GAFA33E,EAAA,MAMA2ga,GAAAhpV,GAFA33E,EAAA,MAMA4ga,GAAAjpV,GAFA33E,EAAA,MAMA6ga,GAAAlpV,GAFA33E,EAAA,MAMA8ga,GAAAnpV,GAFA33E,EAAA,MAMA+ga,GAAAppV,GAFA33E,EAAA,MAMAgha,GAAArpV,GAFA33E,EAAA,MAMAiha,GAAAtpV,GAFA33E,EAAA,MAMAkha,GAAAvpV,GAFA33E,EAAA,MAMAmha,GAAAxpV,GAFA33E,EAAA,MAMAoha,GAAAzpV,GAFA33E,EAAA,MAMAqha,GAAA1pV,GAFA33E,EAAA,MAMAsha,GAAA3pV,GAFA33E,EAAA,MAMAuha,GAAA5pV,GAFA33E,EAAA,MAMAwha,GAAA7pV,GAFA33E,EAAA,MAMAyha,GAAA9pV,GAFA33E,EAAA,MAMA0ha,GAAA/pV,GAFA33E,EAAA,MAMA2ha,GAAAhqV,GAFA33E,EAAA,MAMA4ha,GAAAjqV,GAFA33E,EAAA,MAMAm+S,GAAAxmO,GAFA33E,EAAA,KAMA6ha,GAAAlqV,GAFA33E,EAAA,KAIA,SAAA23E,GAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAipB,IAAA2oY,EAAAhkZ,QAAAikZ,EAAAjkZ,QAAAkkZ,EAAAlkZ,QAAAmkZ,EAAAnkZ,QAAAokZ,EAAApkZ,QAAAqkZ,EAAArkZ,QAAAskZ,EAAAtkZ,QAAAukZ,EAAAvkZ,QAAAwkZ,EAAAxkZ,QAAAykZ,EAAAzkZ,QAAA0kZ,EAAA1kZ,QAAA2kZ,EAAA3kZ,QAAA4kZ,EAAA5kZ,QAAA6kZ,EAAA7kZ,QAAA8kZ,EAAA9kZ,QAAA+kZ,EAAA/kZ,QAAAglZ,EAAAhlZ,QAAAilZ,EAAAjlZ,QAAAklZ,EAAAllZ,QAAAmlZ,EAAAnlZ,QAAAolZ,EAAAplZ,QAAAqlZ,EAAArlZ,QAAAslZ,EAAAtlZ,QAAAulZ,EAAAvlZ,QAAAwlZ,EAAAxlZ,QAAAylZ,EAAAzlZ,QAAA0lZ,EAAA1lZ,QAAA2lZ,EAAA3lZ,QAAA4lZ,EAAA5lZ,QAAA6lZ,EAAA7lZ,QAAA8lZ,EAAA9lZ,QAAAgmZ,EAAAhmZ,QAAAimZ,EAAAjmZ,QAAAkmZ,EAAAlmZ,QAAAmmZ,EAAAnmZ,QAAAomZ,EAAApmZ,QAAAqmZ,EAAArmZ,QAAAsmZ,EAAAtmZ,QAAAumZ,EAAAvmZ,QAAAwmZ,EAAAxmZ,QAAA0mZ,EAAA1mZ,QAAA4mZ,EAAA5mZ,QAAA6mZ,EAAA7mZ,QAAA8mZ,EAAA9mZ,QAAA+mZ,EAAA/mZ,QAAAgnZ,EAAAhnZ,QAAAinZ,EAAAjnZ,QAAAmnZ,GAAAnnZ,QAAAonZ,GAAApnZ,QAAAqnZ,GAAArnZ,QAAAsnZ,GAAAtnZ,QAAAunZ,GAAAvnZ,QAAAwnZ,GAAAxnZ,QAAAynZ,GAAAznZ,QAAA0nZ,GAAA1nZ,QAAA2nZ,GAAA3nZ,QAAA4nZ,GAAA5nZ,QAAA6nZ,GAAA7nZ,QAAA8nZ,GAAA9nZ,QAAA+nZ,GAAA/nZ,QAAAgoZ,GAAAhoZ,QAAAioZ,GAAAjoZ,QAAAkoZ,GAAAloZ,QAAAmoZ,GAAAnoZ,QAAAooZ,GAAApoZ,QAAAqoZ,GAAAroZ,SAEAsb,GAAA,SAAAC,GACA,IAAAzpB,EAAA/F,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEA44S,GAAA3kS,QAAAs+O,IAAAxsP,EAAAw2Z,QACA3jH,GAAA3kS,QAAAilJ,KAAAnzJ,EAAAmzJ,MAEA5pI,GAAAtqB,QAAA,SAAAyqB,GACAD,EAAAC,YAAA3xB,KAAA2xB,KAGAD,EAAA+iO,IAAAqoK,EAAA3mZ,QAAAq0P,WAEA94O,EAAAp0B,UAAA+zE,UACApiD,KAAAhnB,EAAAgnB,MAAA,GACAuf,OAAAvmC,EAAAumC,QAAA,KAGA9c,EAAAp0B,UAAAoha,SAAA5B,EAAA3mZ,QAAAwoZ,QACAjtY,EAAAp0B,UAAAsha,QAAA1C,EAAA/lZ,QACAub,EAAAp0B,UAAAuha,OAAA3C,EAAA/lZ,QAAA2oZ,MACAptY,EAAAp0B,UAAAyha,SAAA7C,EAAA/lZ,QAAAykW,QACAlpV,EAAAp0B,UAAA0ha,QAAA9C,EAAA/lZ,QAAA8oZ,OACAvtY,EAAAp0B,UAAA4ha,QAAAtC,EAAAzmZ,QACAub,EAAAp0B,UAAA6ha,SAAA9B,EAAAlnZ,SAIA,oBAAApJ,eAAA2kB,KACAD,GAAA1kB,OAAA2kB,KAGApxB,EAAAC,SACAm5D,QAAA,QACA+kW,OAAA3jH,GAAA3kS,QAAAs+O,IACAr5F,KAAA0/I,GAAA3kS,QAAAilJ,KACA3pI,WACA2tY,mBAAAZ,GAAAroZ,QACAhC,QAAA2oZ,EAAA3mZ,QACAkpZ,WAAAlF,EAAAhkZ,QACAupV,OAAA06D,EAAAjkZ,QACAmpZ,aAAAjF,EAAAlkZ,QACAopZ,SAAAjF,EAAAnkZ,QACAqpZ,aAAAjF,EAAApkZ,QACAspZ,aAAAjF,EAAArkZ,QACAupZ,KAAAjF,EAAAtkZ,QACAwpZ,QAAAjF,EAAAvkZ,QACAypZ,SAAAjF,EAAAxkZ,QACA0pZ,cAAAjF,EAAAzkZ,QACA2pZ,MAAAjF,EAAA1kZ,QACA4pZ,YAAAjF,EAAA3kZ,QACA6pZ,MAAAjF,EAAA5kZ,QACA8pZ,WAAAjF,EAAA7kZ,QACA+pZ,YAAAjF,EAAA9kZ,QACAgqZ,SAAAjF,EAAA/kZ,QACAiqZ,eAAAjF,EAAAhlZ,QACAkqZ,cAAAjF,EAAAjlZ,QACAmqZ,OAAAjF,EAAAllZ,QACAoqZ,OAAAjF,EAAAnlZ,QACAqqZ,OAAAjF,EAAAplZ,QACAsqZ,YAAAjF,EAAArlZ,QACAuqZ,OAAAjF,EAAAtlZ,QACAwqZ,YAAAjF,EAAAvlZ,QACAyqZ,MAAAjF,EAAAxlZ,QACA0qZ,YAAAjF,EAAAzlZ,QACA2qZ,WAAAjF,EAAA1lZ,QACA4qZ,WAAAjF,EAAA3lZ,QACA6qZ,WAAAjF,EAAA5lZ,QACA8qZ,QAAAjF,EAAA7lZ,QACA+qZ,QAAAjF,EAAA9lZ,QACAgrZ,WAAAjF,EAAA/lZ,QACAk2R,WAAA8vH,EAAAhmZ,QACAirZ,eAAAhF,EAAAjmZ,QACAkrZ,KAAAhF,EAAAlmZ,QACAmrZ,SAAAhF,EAAAnmZ,QACAorZ,KAAAhF,EAAApmZ,QACAqrZ,QAAAhF,EAAArmZ,QACAsrZ,IAAAhF,EAAAtmZ,QACA0vK,KAAA62O,EAAAvmZ,QACAurZ,MAAA/E,EAAAxmZ,QACAwrZ,aAAA/E,EAAAzmZ,QACAyrZ,OAAA/E,EAAA1mZ,QACA2yV,KAAAi0D,EAAA5mZ,QACA4/H,IAAAinR,EAAA7mZ,QACA0rZ,IAAA5E,EAAA9mZ,QACA2rZ,OAAA5E,EAAA/mZ,QACA4rZ,SAAA5E,EAAAhnZ,QACA6rZ,QAAA5E,EAAAjnZ,QACA8rZ,QAAA5E,EAAAlnZ,QACA+rZ,MAAA5E,GAAAnnZ,QACAgsZ,KAAA5E,GAAApnZ,QACAisZ,KAAA5E,GAAArnZ,QACAksZ,MAAA5E,GAAAtnZ,QACAmsZ,KAAA5E,GAAAvnZ,QACAosZ,SAAA5E,GAAAxnZ,QACAqsZ,UAAA5E,GAAAznZ,QACAssZ,aAAA5E,GAAA1nZ,QACAusZ,SAAA5E,GAAA3nZ,QACAwsZ,aAAA5E,GAAA5nZ,QACAysZ,SAAA5E,GAAA7nZ,QACA0sZ,YAAA5E,GAAA9nZ,QACA2sZ,SAAA5E,GAAA/nZ,QACA4sZ,UAAA5E,GAAAhoZ,QACA6sZ,OAAA5E,GAAAjoZ,QACA8sZ,MAAA5E,GAAAloZ,QACA+sZ,KAAA5E,GAAAnoZ,QACAgtZ,OAAA5E,GAAApoZ,SAGA7V,EAAAC,QAAA4V,QAAA7V,EAAAC,SAIA,SAAAD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA66Z,EAAAzma,EAAA,IAEA0ma,GAEA96Z,EAFA66Z,IAEsC76Z,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E86Z,EAAAltZ,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA0xY,EAAAltZ,QAAAnW,KAAAqja,EAAAltZ,UAGA5V,EAAA4V,QAAAktZ,EAAAltZ,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA80V,EAAAhvV,EAFA33E,EAAA,KAMA+9S,EAAApmO,EAFA33E,EAAA,KAMAsiL,EAAA3qG,EAFA33E,EAAA,KAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAm+S,EAAAxmO,EAFA33E,EAAA,IAIAE,EAAAF,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,eAEAE,OACAqja,UACA3ia,KAAAuX,OACAhC,QAAA,IAGAolS,MAAA1kS,QAEA25G,MAAAr4G,OAEAuwY,UAAAvwY,OAEAqrZ,YACA5ia,KAAAuX,OACA8nJ,UAAA,SAAAt7J,GACA,SAAAA,UAAA,GAAAA,EAAA,IAAAA,EAAA,MAGAwR,QAAA,GAGAstZ,aACA7ia,KAAAuX,OACAhC,QAAA,GAGAue,QACAve,QAAA,wCAGAutZ,WACA9ia,KAAAqI,MACAkN,QAAA,WACA,6BAIAitM,YAAA70M,OAEAo1Z,SAAAp1Z,OAEAq1Z,SAAAr1Z,OAEA4mI,WAAAt+H,QAEAi6D,SAAAj6D,SAGA3I,KAAA,WACA,OACA21Z,oBAAA,EACAC,iBAAA,EACAC,iBAAA,EACAC,oBAAA,IAGAnja,OAAA,SAAAwU,GACA,IAAAm8P,EAAAn8P,EACA,OACOC,OAAA,iBACP2uZ,gBAAA7ma,KAAA+3I,WACA+uR,uBAAA9ma,KAAAm+S,aAIA7mR,EAAAt3B,KAAAs3B,QAAA,GACA,GAAAA,EAAA,CACA,IAAAyvY,GACAznW,KAAArnD,EACA,OACA,SAGA+uZ,OAAA/uZ,EACA,SACA,SAGAgvZ,MAAAhvZ,EACA,SAEAZ,OAAkBgvZ,YAAArma,KAAAyma,oBAAAnb,UAAAtrZ,KAAAkna,kBAAAd,WAAApma,KAAAoma,WAAA1yV,SAAA1zE,KAAA0zE,UAClBh0D,IACAupN,OAAAjpO,KAAAmna,0BAKA1iY,KAAAxsB,EACA,OACA,SAGAmvZ,MAAAnvZ,EACA,SAEAZ,OAAkBivZ,UAAAtma,KAAAsma,gBAIlBt6K,KAAA/zO,EACA,UACA,SAGAm7G,MAAAn7G,EACA,QACA,UAIAmc,EAAAkD,EAAAz2B,MAAA,KAAA8P,IAAA,SAAAhE,GACA,OAAAA,EAAA60E,SAEA6lV,EAAApvZ,EACA,OACOC,MAAA,mCAGPovZ,GAAA,EAqBA,OAnBAlzJ,EAAA7rF,SAAA6rF,EAAA7rF,aACA8+O,EAAA9+O,SAAA8+O,EAAA9+O,aACAn0J,EAAAtqB,QAAA,SAAAy9Z,GACA,OAAAA,EAKAD,EAGAD,EAAA9+O,SAAAhnL,KAAAwla,EAAAQ,IAFAnzJ,EAAA7rF,SAAAhnL,KAAAwla,EAAAQ,IALAD,GAAA,IAWAA,GACAlzJ,EAAA7rF,SAAA5lJ,QAAA0kY,GAGAjzJ,IAIAhgP,YACAozY,QACA/ja,OAAA,SAAAwU,GACA,OAAAjY,KAAAmsN,QAAArzM,OAAAC,QAAA/Y,KAAAmsN,QAAArzM,OAAAC,QAAA,QAGA0uZ,MACAhka,OAAA,SAAAwU,GACA,OAAAA,EACA,UAEAZ,OACA7T,KAAA,SAEAkwE,SAAA1zE,KAAAmsN,QAAAz4I,UAAA1zE,KAAAmsN,QAAAs6M,qBAAA,GAEAvuZ,MAAA,WAAAwH,IACAm1D,MAAA70E,KAAAmsN,QAAA7sJ,QAGAt/D,KAAAmsN,QAAAo6M,SAAAtuZ,EACA,OACA,MACAjY,KAAAmsN,QAAAo6M,WACAtuZ,EACA,KACaC,MAAA,sCAObwvZ,MACAjka,OAAA,SAAAwU,GACA,OAAAA,EACA,UAEAZ,OACA7T,KAAA,SAEAkwE,SAAA1zE,KAAAmsN,QAAAz4I,UAAA1zE,KAAAmsN,QAAAs6M,sBAAAzma,KAAAmsN,QAAA+6M,mBAAA,IAAAlna,KAAAmsN,QAAA+6M,mBAEAhvZ,MAAA,WAAAwH,IACAm1D,MAAA70E,KAAAmsN,QAAA1nL,QAGAzkC,KAAAmsN,QAAAq6M,SAAAvuZ,EACA,OACA,MACAjY,KAAAmsN,QAAAq6M,WACAvuZ,EACA,KACaC,MAAA,uCAObyvZ,OACArlP,QAAAo7H,EAAA3kS,SAEAjW,OACAwja,UAAAz6Z,OAGA0P,OACA+qZ,WACA5xN,WAAA,EACAj5L,QAAA,SAAA0kL,EAAAhd,IACA,EAAA1jL,EAAA83O,aAAAp3C,EAAAhd,IACAt3K,MAAAC,QAAAq0L,KACAngM,KAAAmsN,QAAAu6M,iBAAAvmO,EAAArgM,QAAAE,KAAAmsN,QAAAg6M,WAAA,EAAAnma,KAAAmsN,QAAAg6M,SAAAnma,KAAAsma,UAAA,OAMA7ia,OAAA,SAAAwU,GACA,IAAA4E,EAAA7c,KAEA,OAAAiY,EACA,QACWC,MAAA,yBACXD,EACA,aAEAZ,OACA9P,MAAAvH,KAAAmsN,QAAAu6M,iBACA1gN,YAAAhmN,KAAAmsN,QAAAnG,aAAA,GACAn0L,KAAA,OAEA6hD,SAAA1zE,KAAAmsN,QAAAz4I,UACAh0D,IACAxV,MAAAlK,KAAA4mO,gBAGA5mO,KAAAsma,UAAA31Z,IAAA,SAAAhE,GACA,OAAAsL,EACA,aAEAZ,OACA9P,MAAAoF,EACA8F,MAAA9F,EAAAkQ,EAAA4rE,EAAA,uCAUAr0D,YACAwzY,SAAAtqH,EAAAvkS,QACAomS,SAAAt9H,EAAA9oK,SAGAgD,SACA6qN,aAAA,SAAAr5N,GACAA,IAAAvN,KAAAmsN,QAAAu6M,mBACA1ma,KAAAmsN,QAAAu6M,iBAAAn5Z,EAAAqsE,SAAArsE,EAAA,IACAvN,KAAAmsN,QAAAy6M,oBAAA,EACA5ma,KAAAmsN,QAAAnuM,MAAA,cAAAzQ,GACAvN,KAAAmsN,QAAAnuM,MAAA,kBAAAzQ,OAMAs6Z,QACAvlP,QAAAo7H,EAAA3kS,SAEAjI,KAAA,WACA,OACAg1N,SAAA,OAKA1xM,YAAmBw8Q,QAAA/sE,EAAA9qN,SAEnBwC,OACAusZ,2BAAA,WACA,IAAA5pZ,EAAAle,KAEAA,KAAAuc,UAAA,WACA2B,EAAAO,MAAAvU,MAAAwS,IAAA6mC,cAAA,SAAAh8C,MAAA2W,EAAAiuM,QAAAs6M,wBAKA1qZ,SACAmrM,YAAA,SAAA3vJ,GACAv3D,KAAA8lO,SAAAvuK,EAAAh3D,OAAAgH,OAEA4/M,WAAA,SAAAj5M,GACA,IAAA3N,EAAA2N,EAAA3N,OAEAP,KAAA+na,iBAAAxna,EAAAgH,OACAvH,KAAAgoa,iBAAAzna,EAAAgH,QAEA0ga,YAAA,SAAApyS,GACA,IAAAqmJ,EAAArmJ,EAAAqmJ,QACA37Q,EAAAs1H,EAAAt1H,OAEA,KAAA27Q,GAAAl8Q,KAAA8lO,UAAAvlO,EAAAgH,QAAAvH,KAAA8lO,UACA9lO,KAAA4mO,aAAArmO,EAAAgH,QAGAq/N,aAAA,SAAAr/N,GACAvH,KAAAmsN,QAAAs6M,oBAAAzma,KAAAmsN,QAAA+7M,oBAAA3ga,GACAvH,KAAAmsN,QAAAk1F,aACArhT,KAAA8lO,SAAA,KACA9lO,KAAA+na,iBAAAxga,IAEAwga,iBAAA,SAAAxga,GACA,IAAAmnB,EAAAkrD,SAAAryE,EAAA,IACAkD,MAAAikB,KACAA,EAAA,EACA1uB,KAAAye,MAAAvU,MAAA67N,gBAAA,GAEA/lO,KAAAgoa,iBAAAzga,KAIAyga,iBAAA,SAAAzga,GACA,IAAA2/Z,EAAAlna,KAAAmsN,QAAA+6M,mBACA3/Z,EAAA2/Z,GACAlna,KAAAye,MAAAvU,MAAA67N,gBAAAmhM,KAKAzja,OAAA,SAAAwU,GACA,OAAAA,EACA,QACWC,MAAA,wBACXlY,KAAAyoF,EAAA,sBAAAxwE,EACA,YAEAC,MAAA,yCACAb,OAAsBrP,IAAA,EACtBC,IAAAjI,KAAAmsN,QAAA+6M,kBACA3/Z,MAAAvH,KAAAmsN,QAAAs6M,oBAEAjja,KAAA,SAEAkwE,SAAA1zE,KAAAmsN,QAAAz4I,UAEAm1J,UACAthO,MAAAvH,KAAAmsN,QAAAs6M,qBAEA7tZ,IAAA,QAAA08O,UACA6uD,MAAAnkT,KAAAioa,aAEAvoZ,IACAupN,OAAAjpO,KAAA4mO,aACAr5L,MAAAvtC,KAAAknN,YACA+e,KAAAjmO,KAAAmnN,iBAIAnnN,KAAAyoF,EAAA,oCAKA0/U,OACA7lP,QAAAo7H,EAAA3kS,SAEAtV,OAAA,SAAAwU,GACA,uBAAAjY,KAAAmsN,QAAA/4F,MAAAn7G,EACA,QACWC,MAAA,yBACXlY,KAAAyoF,EAAA,uBAA0C2qC,MAAApzH,KAAAmsN,QAAA/4F,UAC1C,KAIAg1S,MAAAlC,EAAAntZ,SAGAgD,SACAorZ,oBAAA,SAAA55Z,GACAvN,KAAAyma,oBAAAzma,KAAAkoa,oBAAA36Z,GACAvN,KAAA4ma,oBAAA,EACA5ma,KAAAqhT,cAEA/hP,KAAA,WACA,IAAAt/D,KAAA0zE,SAAA,CACA,IAAAysH,EAAAngM,KAAAyma,oBAAA,EACAzma,KAAAyma,oBAAAzma,KAAAkoa,oBAAA/nO,GACAngM,KAAAge,MAAA,aAAAhe,KAAAyma,qBACAzma,KAAAqhT,eAEA58Q,KAAA,WACA,IAAAzkC,KAAA0zE,SAAA,CACA,IAAAysH,EAAAngM,KAAAyma,oBAAA,EACAzma,KAAAyma,oBAAAzma,KAAAkoa,oBAAA/nO,GACAngM,KAAAge,MAAA,aAAAhe,KAAAyma,qBACAzma,KAAAqhT,eAEA6mH,oBAAA,SAAA3ga,GACAA,EAAAqyE,SAAAryE,EAAA,IAEA,IAEA8ga,OAAA,EAiBA,MAnBA,iBAAAroa,KAAAkna,kBAMA3/Z,EAAA,EACA8ga,EAAA,EACS9ga,EAAAvH,KAAAkna,oBACTmB,EAAAroa,KAAAkna,oBALAz8Z,MAAAlD,MAAA,KAAA8ga,EAAA,QASA36Z,IAAA26Z,GAAA59Z,MAAAlD,GACA8ga,EAAA,EACO,IAAAA,IACPA,EAAA,QAGA36Z,IAAA26Z,EAAA9ga,EAAA8ga,GAEAhnH,WAAA,WACA,IAAAriS,EAAAhf,KAEAA,KAAAuc,UAAA,YACAyC,EAAAynZ,sBAAAznZ,EAAA2nZ,iBAAA3nZ,EAAA4nZ,sBACA5nZ,EAAAhB,MAAA,iBAAAgB,EAAAynZ,qBACAznZ,EAAA2nZ,gBAAA3nZ,EAAAynZ,oBACAznZ,EAAA4nZ,oBAAA,OAMA/qZ,UACAqrZ,kBAAA,WACA,uBAAAlna,KAAAozH,MACArrH,KAAAowC,KAAAn4C,KAAAozH,MAAApzH,KAAA0ma,kBACO,iBAAA1ma,KAAAsrZ,UACPtrZ,KAAAsrZ,UAEA,OAIA/vY,OACA8qZ,aACA3xN,WAAA,EACAj5L,QAAA,SAAAlO,GACAvN,KAAAyma,oBAAAl5Z,IAIA44Z,UACAzxN,WAAA,EACAj5L,QAAA,SAAAlO,GACAvN,KAAA0ma,iBAAAj8Z,MAAA8C,GAAA,GAAAA,IAIAk5Z,qBACA/xN,WAAA,EACAj5L,QAAA,SAAA0kL,EAAAhd,GACAgd,EAAAvmH,SAAAumH,EAAA,SASAzyL,KALAyyL,EADA11L,MAAA01L,GACAhd,GAAA,EAEAnjL,KAAAkoa,oBAAA/nO,KAIAngM,KAAAyma,oBAAAtmO,EACAhd,IAAAgd,GACAngM,KAAAge,MAAA,qBAAAmiL,IAGAngM,KAAAge,MAAA,qBAAAmiL,GAEAngM,KAAA2ma,iBAAA,IAIAO,kBAAA,SAAA/mO,GAEA,IAAAmoO,EAAAtoa,KAAAyma,oBACAtmO,EAAA,OAAAmoO,EACAtoa,KAAAyma,oBAAA,EACO6B,EAAAnoO,IACPngM,KAAAyma,oBAAA,IAAAtmO,EAAA,EAAAA,EACAngM,KAAA4ma,oBAAA5ma,KAAAqhT,cAEArhT,KAAA4ma,oBAAA,MAOA,SAAA1ja,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAgha,EAAAhpa,EAAA,IACAipa,EAAAjpa,EAAA6+C,EAAAmqX,GACAE,EAAAlpa,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAq1V,EAAAjzZ,EACAkzZ,EAAA,GATA,EAEA,KAEA,KAEA,MAUAlkX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAkCAjuE,EAAA4V,SACAnW,KAAA,UAEAE,OACAuja,YAAAtrZ,OAEAuwY,UAAAvwY,OAEAqrZ,WAAArrZ,OAEA24D,SAAAj6D,SAGA8B,OACAmtZ,aAAA,SAAAn7Z,GACAA,IAAAvN,KAAA2oa,mBAAA,iBAEAC,aAAA,SAAAr7Z,GACAA,IAAAvN,KAAA6oa,mBAAA,kBAIA9sZ,SACA+sZ,aAAA,SAAAvxW,GACA,IAAAh3D,EAAAg3D,EAAAh3D,OACA,UAAAA,EAAAwxC,UAAA/xC,KAAA0zE,SAAA,CAIA,IAAAq1V,EAAAhuZ,OAAAw8C,EAAAh3D,OAAAogD,aACA2qW,EAAAtrZ,KAAAsrZ,UACA+a,EAAArma,KAAAqma,YACA2C,EAAAhpa,KAAAoma,WAAA,GAEA,IAAA7la,EAAAwgD,UAAAjhD,QAAA,WACA,IAAAS,EAAAwgD,UAAAjhD,QAAA,aACAipa,EAAA1C,EAAA2C,GACS,IAAAzoa,EAAAwgD,UAAAjhD,QAAA,eACTipa,EAAA1C,EAAA2C,IAKAv+Z,MAAAs+Z,KACAA,EAAA,IACAA,EAAA,GAGAA,EAAAzd,IACAyd,EAAAzd,IAIAyd,IAAA1C,GACArma,KAAAge,MAAA,SAAA+qZ,KAGAE,aAAA,SAAAnmX,GACA9iD,KAAA0zE,WACA,SAAA5wB,EACA9iD,KAAA2oa,mBAAA,uBAEA3oa,KAAA6oa,mBAAA,2BAKAhtZ,UACAqtZ,OAAA,WACA,IAAA9C,EAAApma,KAAAoma,WACA+C,GAAA/C,EAAA,KAEAC,EAAAtrZ,OAAA/a,KAAAqma,aACA/a,EAAAvwY,OAAA/a,KAAAsrZ,WAEAod,GAAA,EACAE,GAAA,EAEAtd,EAAA8a,IACAC,EAAAD,EAAA+C,IACAT,GAAA,GAGArC,EAAA/a,EAAA6d,IACAP,GAAA,IAIA,IAAAxpW,KAEA,GAAAspW,IAAAE,EAEA,IADA,IACA7na,EADAuqZ,GAAA8a,EAAA,GAC+Brla,EAAAuqZ,EAAevqZ,IAC9Cq+D,EAAA79D,KAAAR,QAEO,IAAA2na,GAAAE,EACP,QAAAjiU,EAAA,EAAwBA,EAAAy/T,EAAiBz/T,IACzCvnC,EAAA79D,KAAAolG,QAEO,GAAA+hU,GAAAE,EAEP,IADA,IAAAlmY,EAAA36B,KAAAkwC,MAAAmuX,EAAA,KACAn/T,EAAAo/T,EAAA3jY,EAA4CukE,GAAAo/T,EAAA3jY,EAA6BukE,IACzE7nC,EAAA79D,KAAA0lG,QAGA,QAAAoC,EAAA,EAAyBA,EAAAiiT,EAAiBjiT,IAC1CjqC,EAAA79D,KAAA8nG,GAOA,OAHArpG,KAAA0oa,eACA1oa,KAAA4oa,eAEAxpW,IAIAtuD,KAAA,WACA,OACAyzB,QAAA,KACAmkY,cAAA,EACAE,cAAA,EACAC,mBAAA,eACAF,mBAAA,mBAOA,SAAAzla,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,MAAgBE,YAAA,WAAAsI,IAA2Bm1D,MAAAN,EAAAu0V,gBAA0Bv0V,EAAA+2U,UAAA,EAAAp0Y,EAAA,MAA+BE,YAAA,SAAAc,OAA4B21O,OAAA,IAAAt5K,EAAA8xV,YAAA3yV,SAAAa,EAAAb,YAAyDa,EAAA18D,GAAA,OAAA08D,EAAAO,KAAAP,EAAA,aAAAr9D,EAAA,MAAqDE,YAAA,6BAAAc,OAAAq8D,EAAAo0V,oBAAyEj1V,SAAAa,EAAAb,WAAyBh0D,IAAM4kK,WAAA,SAAAC,GAA8BhwG,EAAA00V,aAAA,SAAyBtiN,WAAA,SAAApiC,GAA+BhwG,EAAAo0V,mBAAA,mBAA0Cp0V,EAAAO,KAAAP,EAAA9E,GAAA8E,EAAA,gBAAA0yV,GAA+C,OAAA/vZ,EAAA,MAAgBnN,IAAAk9Z,EAAA7vZ,YAAA,SAAAc,OAAsC21O,OAAAt5K,EAAA8xV,cAAAY,EAAAvzV,SAAAa,EAAAb,YAA6Da,EAAA18D,GAAA08D,EAAA6vF,GAAA6iQ,QAA0B1yV,EAAA,aAAAr9D,EAAA,MAA8BE,YAAA,6BAAAc,OAAAq8D,EAAAs0V,oBAAyEn1V,SAAAa,EAAAb,WAAyBh0D,IAAM4kK,WAAA,SAAAC,GAA8BhwG,EAAA00V,aAAA,UAA0BtiN,WAAA,SAAApiC,GAA+BhwG,EAAAs0V,mBAAA,mBAA0Ct0V,EAAAO,KAAAP,EAAA+2U,UAAA,EAAAp0Y,EAAA,MAAwCE,YAAA,SAAAc,OAA4B21O,OAAAt5K,EAAA8xV,cAAA9xV,EAAA+2U,UAAA53U,SAAAa,EAAAb,YAAqEa,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA+2U,cAAA/2U,EAAAO,MAAA,IAE1mCn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi+Z,EAAA7pa,EAAA,IAEA8pa,GAEAl+Z,EAFAi+Z,IAEsCj+Z,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Ek+Z,EAAAtwZ,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA80Y,EAAAtwZ,QAAAnW,KAAAyma,EAAAtwZ,UAGA5V,EAAA4V,QAAAswZ,EAAAtwZ,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA+ha,EAAA/pa,EAAA,IACAgqa,EAAAhqa,EAAA6+C,EAAAkrX,GACAE,EAAAjqa,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAo2V,EAAAh0Z,EACAi0Z,EAAA,GATA,EAEA,KAEA,KAEA,MAUAjlX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAq4V,EAAAvyV,EAFA33E,EAAA,KAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAMA8iL,EAAAnrG,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,WAEA0/K,QAAAmnP,EAAA1wZ,QAAAspK,EAAAtpK,QAAAorN,EAAAprN,SAEAjW,OACAoX,OACA1W,KAAA2N,OACA4H,QAAA,IAGA4+D,OACAn0E,KAAAiW,QACAV,SAAA,GAGA++D,mBACAt0E,KAAAiW,QACAV,SAAA,GAGAu7L,cACA9wM,KAAAiW,QACAV,SAAA,GAGAg/D,YACAv0E,KAAAiW,QACAV,SAAA,GAGAk/D,mBACAz0E,KAAAiW,QACAV,SAAA,GAGAi/D,oBACAx0E,KAAAiW,QACAV,SAAA,GAGA2wZ,WACAlma,KAAAiW,QACAV,SAAA,GAGAC,MAAA7H,OAEAw4Z,WAAAlwZ,QAEAmwZ,aACApma,KAAA2N,OACA4H,QAAA,IAGA/G,KACAxO,KAAA2N,OACA4H,QAAA,QAEA8wZ,YAAA1wZ,SACA2K,QACAtgB,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACAg5Z,QAAA,IAKAvuZ,OACAi8D,QAAA,SAAAjqE,GACA,IAAAsP,EAAA7c,KAEAuN,GACAvN,KAAA8pa,QAAA,EACA9pa,KAAAge,MAAA,QACAhe,KAAA0c,IAAAkC,iBAAA,SAAA5e,KAAA20M,cACA30M,KAAAuc,UAAA,WACAM,EAAA4B,MAAA8jV,OAAArkT,UAAA,IAEAl+C,KAAAs0M,cACAzkM,SAAAG,KAAAC,YAAAjQ,KAAA0c,OAGA1c,KAAA0c,IAAAoC,oBAAA,SAAA9e,KAAA20M,cACA30M,KAAA8pa,QAAA9pa,KAAAge,MAAA,YAKAnC,UACAtD,MAAA,WACA,IAAAA,KAOA,OANAvY,KAAA2pa,aACApxZ,EAAAwkC,UAAA/8C,KAAAgS,IACAhS,KAAAgZ,QACAT,EAAAS,MAAAhZ,KAAAgZ,QAGAT,IAIAwD,SACAmqN,mBAAA,WACA,OACApjO,OACA+uB,KAAA,sBAIAk4Y,mBAAA,WACA/pa,KAAAi4E,mBACAj4E,KAAAizS,eAEAA,YAAA,WACA,mBAAAjzS,KAAA6pa,YACA7pa,KAAA6pa,YAAA7pa,KAAA+rM,MAEA/rM,KAAA+rM,QAGAA,KAAA,SAAA9rI,IACA,IAAAA,IACAjgE,KAAAge,MAAA,qBACAhe,KAAAge,MAAA,SACAhe,KAAA8pa,QAAA,IAGAn1N,aAAA,WACA30M,KAAAi9S,UAAA,mCACAj9S,KAAAi9S,UAAA,kCAEAv2F,WAAA,WACA1mN,KAAAge,MAAA,YAIA+B,QAAA,WACA/f,KAAAw3E,UACAx3E,KAAA24E,UAAA,EACA34E,KAAA8O,OACA9O,KAAAs0M,cACAzkM,SAAAG,KAAAC,YAAAjQ,KAAA0c,OAIA6qM,UAAA,WAEAvnN,KAAAs0M,cAAAt0M,KAAA0c,KAAA1c,KAAA0c,IAAA6vB,YACAvsC,KAAA0c,IAAA6vB,WAAAC,YAAAxsC,KAAA0c,QAsCA,SAAAxZ,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,eAAqB8c,IAAKwkS,cAAA3vO,EAAAmyI,cAA8BxvM,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,qBAAAsI,IAAuCm1D,MAAA,SAAA0vG,GAAyB,GAAAA,EAAAhkL,SAAAgkL,EAAAx9C,cAA2C,YAAexyD,EAAAw1V,mBAAAxlP,OAAiCrtK,EAAA,OAAY0B,IAAA,SAAAxB,YAAA,YAAAc,QAA6C8xZ,gBAAAz1V,EAAAo1V,WAAAM,oBAAA11V,EAAAzwD,QAAmEywD,EAAAq1V,aAAArxZ,MAAAg8D,EAAA,QAAqCr9D,EAAA,OAAYE,YAAA,sBAAgCm9D,EAAAQ,GAAA,SAAA79D,EAAA,QAA6BE,YAAA,qBAA+Bm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAr6D,YAAAq6D,EAAA,UAAAr9D,EAAA,UAA6DE,YAAA,uBAAAC,OAA0C7T,KAAA,SAAAolO,aAAA,SAAqClpN,IAAKm1D,MAAAN,EAAA0+N,eAAyB/7R,EAAA,KAAUE,YAAA,6CAAqDm9D,EAAAO,MAAA,GAAAP,EAAA,SAAAr9D,EAAA,OAA0CE,YAAA,oBAA8Bm9D,EAAAQ,GAAA,eAAAR,EAAAO,KAAAP,EAAAz7D,OAAA,OAAA5B,EAAA,OAA+DE,YAAA,sBAAgCm9D,EAAAQ,GAAA,cAAAR,EAAAO,YAEljCn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA++Z,EAAA3qa,EAAA,IAEA4qa,GAEAh/Z,EAFA++Z,IAEsC/+Z,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eg/Z,EAAApxZ,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA41Y,EAAApxZ,QAAAnW,KAAAuna,EAAApxZ,UAGA5V,EAAA4V,QAAAoxZ,EAAApxZ,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA6ia,EAAA7qa,EAAA,IACA8qa,EAAA9qa,EAAA6+C,EAAAgsX,GACAE,EAAA/qa,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAk3V,EAAA90Z,EACA+0Z,EAAA,GATA,EAEA,KAEA,KAEA,MAUA/lX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAw0I,EAAA1uI,EAFA33E,EAAA,KAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAs+S,EAAA3mO,EAFA33E,EAAA,IAMAgra,EAAArzV,EAFA33E,EAAA,KAMA8iL,EAAAnrG,EAFA33E,EAAA,IAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAIAE,EAAAF,EAAA,GAIAkxS,EAAAv5N,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GA4D7EhI,EAAA4V,SACAnW,KAAA,iBAEA0/K,QAAAD,EAAAtpK,SAAA,EAAA03R,EAAA13R,SAAA,SAAAorN,EAAAprN,SAEAurN,cAAA,EAEA/hD,cAAA,iBAEAnuJ,YACAw8Q,QAAA/sE,EAAA9qN,QACAyxZ,0BAAAD,EAAAxxZ,SAGAqrK,YAAek7H,aAAAzB,EAAA9kS,SAEfjW,OACAugL,UACA7/K,KAAA2N,OACA4H,QAAA,SAEAitM,YAAA70M,OACAojM,cAAA3qM,OACAo+N,YAAA72N,OACAuiE,SAAAj6D,QACA7W,KAAAuO,OACA0gB,KAAA1gB,OACA5J,MAAA4J,OACAs5Z,UAAA1vZ,OACA2vZ,UAAA3vZ,OACA64D,UAAAn6D,QACAkxZ,iBAAAxxZ,SACAyxZ,gBACApna,KAAAiW,QACAV,SAAA,GAEA8xZ,WAAA15Z,OACA25Z,qBACAtna,KAAAiW,QACAV,SAAA,GAEAmsN,WAAA/zN,OACA8zN,WAAA9zN,OACAsB,MAAAtB,OACAnF,UACAxI,KAAAuX,OACAhC,QAAA,KAEAgiC,WACAv3C,KAAA2N,OACA4H,QAAA,gBAEA6gD,YAAAngD,QACAomS,oBACAr8S,KAAAiW,QACAV,SAAA,IAGAjI,KAAA,WACA,OACAi6Z,WAAA,EACAC,eACAryZ,SAAA,EACAsyZ,kBAAA,EACAC,oBAAA,IAIArvZ,UACAsvZ,kBAAA,WACA,IAAAH,EAAAhra,KAAAgra,YAEA,OADAn/Z,MAAAC,QAAAk/Z,MAAA/pa,OAAA,GACAjB,KAAA2Y,UAAA3Y,KAAA+qa,WAEArpa,GAAA,WACA,4BAAAjC,EAAA4mN,gBAGA9qM,OACA4vZ,kBAAA,SAAA59Z,GACAvN,KAAAi9S,UAAA,uCAAA1vS,EAAAvN,KAAAye,MAAAvU,MAAAuU,MAAAvU,MAAA4qC,gBAGA/4B,SACAmqN,mBAAA,WACA,OACApjO,OACAsoa,cAAA,mDACAtoa,MAAA,8CAIAopB,QAAA,SAAAm/Y,GACA,IAAAxuZ,EAAA7c,KAEAA,KAAAkra,qBAGAlra,KAAA2Y,SAAA,EACA3Y,KAAA2qa,iBAAAU,EAAA,SAAAL,GACAnuZ,EAAAlE,SAAA,EACAkE,EAAAquZ,qBAGAr/Z,MAAAC,QAAAk/Z,GACAnuZ,EAAAmuZ,cAEAv1Z,QAAAslE,MAAA,+EAIA6rJ,aAAA,SAAAr/N,GAGA,GAFAvH,KAAAge,MAAA,QAAAzW,GACAvH,KAAAkra,oBAAA,GACAlra,KAAA4qa,iBAAArja,EAGA,OAFAvH,KAAAkra,oBAAA,OACAlra,KAAAgra,gBAGAhra,KAAAsra,iBAAA/ja,IAEA2/M,YAAA,SAAA3vJ,GACAv3D,KAAA+qa,WAAA,EACA/qa,KAAAge,MAAA,QAAAu5C,GACAv3D,KAAA4qa,gBACA5qa,KAAAsra,iBAAAtra,KAAAuH,QAGA4/M,WAAA,SAAA5vJ,GACAv3D,KAAAge,MAAA,OAAAu5C,IAEAuhB,MAAA,SAAA30E,GACAnE,KAAA+qa,WAAA,GAEAQ,eAAA,SAAApna,GACA,IAAA+Z,EAAAle,KAEAA,KAAAmra,mBAAAnra,KAAAira,kBAAA,GAAAjra,KAAAira,iBAAAjra,KAAAgra,YAAA/pa,QACAkD,EAAAwtL,iBACA3xL,KAAA8iL,OAAA9iL,KAAAgra,YAAAhra,KAAAira,oBACOjra,KAAA8qa,sBACP9qa,KAAAge,MAAA,UAA8BzW,MAAAvH,KAAAuH,QAC9BvH,KAAAuc,UAAA,SAAA4B,GACAD,EAAA8sZ,eACA9sZ,EAAA+sZ,kBAAA,MAIAnoP,OAAA,SAAAn2K,GACA,IAAAqS,EAAAhf,KAEAA,KAAAge,MAAA,QAAArR,EAAA3M,KAAAqjL,WACArjL,KAAAge,MAAA,SAAArR,GACA3M,KAAAuc,UAAA,SAAA4B,GACAa,EAAAgsZ,eACAhsZ,EAAAisZ,kBAAA,KAGAtnY,UAAA,SAAA/2B,GACA,GAAA5M,KAAAmra,oBAAAnra,KAAA2Y,QAGA,GAAA/L,EAAA,EACA5M,KAAAira,kBAAA,MADA,CAIAr+Z,GAAA5M,KAAAgra,YAAA/pa,SACA2L,EAAA5M,KAAAgra,YAAA/pa,OAAA,GAEA,IAAAuqa,EAAAxra,KAAAye,MAAAusZ,YAAAtuZ,IAAA6mC,cAAA,qCAGAkoX,EAFAD,EAAA3qX,iBAAA,wCAEAj0C,GACAsxC,EAAAstX,EAAAttX,UACAQ,EAAA+sX,EAAA/sX,UAEAA,EAAA+sX,EAAA5pX,aAAA3D,EAAAstX,EAAA5uZ,eACA4uZ,EAAAttX,WAAAutX,EAAA5pX,cAEAnD,EAAAR,IACAstX,EAAAttX,WAAAutX,EAAA5pX,cAEA7hD,KAAAira,iBAAAr+Z,EACA5M,KAAA0c,IAAA6mC,cAAA,oBAAA7c,aAAA,wBAAA1mC,KAAA0B,GAAA,SAAA1B,KAAAira,qBAGAlrZ,QAAA,WACA,IAAAR,EAAAvf,KAEAA,KAAAsra,kBAAA,EAAA1lN,EAAA7sM,SAAA/Y,KAAAgM,SAAAhM,KAAAksB,SACAlsB,KAAAikL,IAAA,sBAAAt3K,GACA4S,EAAAujK,OAAAn2K,KAEA,IAAA++Z,EAAA1ra,KAAA0c,IAAA6mC,cAAA,oBACAmoX,EAAAhlY,aAAA,kBACAglY,EAAAhlY,aAAA,4BACAglY,EAAAhlY,aAAA,sBACAglY,EAAAhlY,aAAA,wBAAA1mC,KAAA0B,GAAA,SAAA1B,KAAAira,mBAEAjrZ,cAAA,WACAhgB,KAAAye,MAAAusZ,YAAA72K,cAMA,SAAAjxP,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAoka,EAAApsa,EAAA,IACAqsa,EAAArsa,EAAA6+C,EAAAutX,GACAE,EAAAtsa,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAy4V,EAAAr2Z,EACAs2Z,EAAA,GATA,EAEA,KAEA,KAEA,MAUAtnX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAu0I,EAAAzuI,EAFA33E,EAAA,IAMA8iL,EAAAnrG,EAFA33E,EAAA,IAMAq+S,EAAA1mO,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAqb,YAAeirR,YAAAzB,EAAA7kS,SACfupK,QAAAqjC,EAAA5sM,QAAAspK,EAAAtpK,SAEAwpK,cAAA,4BAEAzxK,KAAA,WACA,OACAy4B,OAAAvpC,KAAAmsN,QACA2/M,cAAA,KAKAhpa,OACA2F,SACAsQ,QAAA,WACA,OACAiiC,iBAAA,KAIAt5C,GAAAyP,QAGA4K,SACA+mK,OAAA,SAAAn2K,GACA3M,KAAAu9I,SAAA,8BAAA5wI,KAIAy6N,QAAA,WACA,IAAAvqN,EAAA7c,KAEAA,KAAAuc,UAAA,SAAA4B,GACAtB,EAAAq4L,UAAAr4L,EAAA83L,kBAGA50L,QAAA,WACA/f,KAAAmsN,QAAArX,UAAA90M,KAAA80M,UAAA90M,KAAA0c,IACA1c,KAAA+0M,aAAA/0M,KAAAmsN,QAAA1tM,MAAAvU,MAAAuU,MAAAvU,MACAlK,KAAA+ra,cAAA/ra,KAAA0c,IAAA6mC,cAAA,qCACAvjD,KAAA+ra,cAAArlY,aAAA,kBACA1mC,KAAA+ra,cAAArlY,aAAA,KAAA1mC,KAAA0B,KAEAoe,QAAA,WACA,IAAA5B,EAAAle,KAEAA,KAAAikL,IAAA,mBAAA12K,EAAA0yS,GACA/hS,EAAA4tZ,cAAA7rH,EAAA,KACA/hS,EAAAs2L,WAAAjnM,OAyBA,SAAArK,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,kBAAwB8c,IAAKwkS,cAAA3vO,EAAA6gI,aAA6Bl+L,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,WAAAn1D,WAAA,eAA4EhI,YAAA,uCAAAc,OAA4Du8D,cAAAF,EAAAhrC,OAAAqwB,aAAA2a,EAAAhrC,OAAA5wB,SAA8DJ,OAASS,MAAAu7D,EAAAu3V,eAA2Bz0Z,OAAS2sJ,KAAA,YAAiB9sJ,EAAA,gBAAqBG,OAAO8zM,IAAA,KAAAy5F,aAAA,mCAAAC,aAAA,uCAA4GtwO,EAAAhrC,OAAAqwB,aAAA2a,EAAAhrC,OAAA5wB,QAAAzB,EAAA,MAAAA,EAAA,KAAmEE,YAAA,sBAA8Bm9D,EAAAQ,GAAA,sBAEvqBp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAkFhI,YAAA,kBAAAC,OAAuC20Z,gBAAA,UAAAhoQ,KAAA,WAAAioQ,gBAAA13V,EAAA42V,kBAAAe,YAAA33V,EAAA7yE,MAAsGwV,EAAA,WAAAq9D,EAAAm0J,IAAwB9vN,IAAA,QAAA8G,IAAgBxV,MAAAqqE,EAAAqyJ,aAAAr5L,MAAAgnC,EAAA2yI,YAAA+e,KAAA1xJ,EAAA4yI,YAAuEmuC,UAAW+8C,SAAA,SAAA9tH,GAA4B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAew6K,EAAAoN,iBAAwBp9G,EAAA5wC,UAAA4wC,EAAA02V,iBAAA,IAAwC,SAAA1mP,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAuE,YAAew6K,EAAAoN,iBAAwBp9G,EAAA5wC,UAAA4wC,EAAA02V,iBAAA,IAAwC,SAAA1mP,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAg3V,eAAAhnP,IAA2B,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAewqE,EAAAuE,MAAAyrG,OAAqB,YAAAhwG,EAAAl1D,OAAAk1D,EAAA20J,SAAA,IAAA30J,EAAAz7D,OAAA,QAAA5B,EAAA,YAAiFG,OAAO20O,KAAA,WAAiBA,KAAA,YAAgBz3K,EAAAQ,GAAA,eAAAR,EAAAO,KAAAP,EAAAz7D,OAAA,OAAA5B,EAAA,YAAoEG,OAAO20O,KAAA,UAAgBA,KAAA,WAAez3K,EAAAQ,GAAA,cAAAR,EAAAO,KAAAP,EAAAz7D,OAAA,OAAA5B,EAAA,YAAmEG,OAAO20O,KAAA,UAAgBA,KAAA,WAAez3K,EAAAQ,GAAA,cAAAR,EAAAO,KAAAP,EAAAz7D,OAAA,OAAA5B,EAAA,YAAmEG,OAAO20O,KAAA,UAAgBA,KAAA,WAAez3K,EAAAQ,GAAA,cAAAR,EAAAO,MAAA,GAAA59D,EAAA,+BAAsE0B,IAAA,cAAAV,OAAAq8D,EAAAyxI,YAAAzxI,EAAAyxI,YAAA,IAAA3uM,OAAwE80Z,gBAAA,GAAAC,iBAAA73V,EAAAggI,cAAAmwG,iBAAAnwO,EAAAsrO,mBAAA9kQ,UAAAw5B,EAAAx5B,UAAAr5C,GAAA6yE,EAAA7yE,KAAqI6yE,EAAA9E,GAAA8E,EAAA,qBAAA5nE,EAAAC,GAA+C,OAAAsK,EAAA,MAAgBnN,IAAA6C,EAAAsL,OAAiBm0Z,YAAA93V,EAAA02V,mBAAAr+Z,GAA8CyK,OAAQ3V,GAAA6yE,EAAA7yE,GAAA,SAAAkL,EAAAo3J,KAAA,SAAAsoQ,gBAAA/3V,EAAA02V,mBAAAr+Z,GAAgG8S,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAuuG,OAAAn2K,OAAmB4nE,EAAAQ,GAAA,WAAAR,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAAz3J,EAAA4nE,EAAA8uG,WAAA,cAAiF12K,UAAU,OAAM,IAEtlEgL,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAoha,EAAAhta,EAAA,IAEAita,GAEArha,EAFAoha,IAEsCpha,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eqha,EAAAzzZ,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAi4Y,EAAAzzZ,QAAAnW,KAAA4pa,EAAAzzZ,UAGA5V,EAAA4V,QAAAyzZ,EAAAzzZ,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAkla,EAAAlta,EAAA,IACAmta,EAAAnta,EAAA6+C,EAAAquX,GAcAv5V,EAbA3zE,EAAA,EAaA4zE,CACAu5V,EAAAn3Z,EAVA,MAEA,EAEA,KAEA,KAEA,MAUAgvC,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAysO,EAAA3mO,EAFA33E,EAAA,IAMA8iL,EAAAnrG,EAFA33E,EAAA,IAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAMAszE,EAAAqE,EAFA33E,EAAA,KAMAk3S,EAAAv/N,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,aAEA2/K,cAAA,aAEAD,QAAAD,EAAAtpK,QAAAorN,EAAAprN,SAEAqrK,YAAek7H,aAAAzB,EAAA9kS,SAEfqb,YACAu4Y,SAAA95V,EAAA95D,QACA6zZ,cAAAn2H,EAAA19R,SAGAsuO,QAAA,WACA,OACAwlL,SAAA7sa,OAKA8C,OACAmP,SACAzO,KAAA2N,OACA4H,QAAA,SAEAvV,KAAA2N,OACA0gB,MACAruB,KAAA2N,OACA4H,QAAA,IAEA+zZ,YAAArzZ,QACAszZ,aACAvpa,KAAAiW,QACAV,SAAA,GAEAgiC,WACAv3C,KAAA2N,OACA4H,QAAA,cAEAs7L,cACAt7L,SAAA,GAEAi0Z,aACAxpa,KAAAuX,OACAhC,QAAA,KAEAk0Z,aACAzpa,KAAAuX,OACAhC,QAAA,MAIAjI,KAAA,WACA,OACA8pG,QAAA,KACApjC,SAAA,EACA01V,WAAA,KACAC,UAAA,KACAC,eAAA,KACAC,YAAA,KACAlnN,UAAA,EACAmnN,OAAA,oBAAA7ta,EAAA4mN,gBAKAxqM,UACA0xZ,aAAA,WACA,OAAAvta,KAAA6xB,OAAA7xB,KAAAi0E,cAA8CpiD,OAI9C9R,QAAA,WACA/f,KAAAikL,IAAA,kBAAAjkL,KAAAwta,qBACAxta,KAAAu3H,YACAv3H,KAAAyta,YAIAlyZ,OACAi8D,QAAA,SAAAjqE,GACAvN,KAAAi9S,UAAA,2BAAA1vS,GACAvN,KAAAge,MAAA,iBAAAzQ,IAEA44M,SAAA,SAAA54M,GACA,IAAAmga,EAAA1ta,KAAA0c,IAAA6mC,cAAA,2BACAmqX,IAEAnga,EACAmga,EAAA3sX,WAAA,YAEA2sX,EAAA3sX,UAAA2sX,EAAA3sX,UAAAx4C,QAAA,kBAMAwT,SACAmqN,mBAAA,WACA,OACApjO,OACA6qa,aAAA,yCAIAtoa,KAAA,WACA,IAAAwX,EAAA7c,KAEAA,KAAAkta,WAAAx5V,WACArnE,aAAArM,KAAA46G,SACA56G,KAAA46G,QAAAtuG,WAAA,WACAuQ,EAAA26D,SAAA,GACO,UAAAx3E,KAAAiS,QAAA,EAAAjS,KAAAgta,eAEPjhO,KAAA,WACA,IAAA7tL,EAAAle,KAEAA,KAAAkta,WAAAx5V,WACA1zE,KAAA4ta,iBACA5ta,KAAA6ta,cAAA7ta,KAAAkta,YACA7ga,aAAArM,KAAA46G,SACA56G,KAAA46G,QAAAtuG,WAAA,WACA4R,EAAAs5D,SAAA,GACO,UAAAx3E,KAAAiS,QAAA,EAAAjS,KAAAita,eAEP94V,YAAA,WACAn0E,KAAAkta,WAAAx5V,WACA1zE,KAAAw3E,QACAx3E,KAAA+rM,OAEA/rM,KAAAqF,SAGAyoa,qBAAA,SAAAtuZ,GACA,IAAA08P,EAAA18P,EAAA08P,SACA,OAAAp8Q,QAAAo8Q,IAAA,GAEAl8Q,KAAA4ta,iBACA5ta,KAAA6ta,cAAA7ta,KAAAmta,UAAA,IACAnta,KAAAmta,UAAA,GAAA5/X,QACA/tB,EAAAmyK,iBACAnyK,EAAAglK,mBACO,KAAA03F,EAEPl8Q,KAAAm0E,eACO,MAAAr0E,QAAAo8Q,IAAA,GAEPl8Q,KAAA+rM,QAIAgiO,kBAAA,SAAAvuZ,GACA,IAAA08P,EAAA18P,EAAA08P,QACA37Q,EAAAif,EAAAjf,OACAwhH,EAAA/hH,KAAAota,eAAAtta,QAAAS,GACA0H,EAAAjI,KAAAota,eAAAnsa,OAAA,EACAkjD,OAAA,GACA,OAAArkD,QAAAo8Q,IAAA,GAIA/3N,EAFA,KAAA+3N,EAEA,IAAAn6J,IAAA,IAGAA,EAAA95G,EAAA85G,EAAA,EAAA95G,EAEAjI,KAAA4ta,iBACA5ta,KAAA6ta,cAAA7ta,KAAAmta,UAAAhpX,IACAnkD,KAAAmta,UAAAhpX,GAAA5W,QACA/tB,EAAAmyK,iBACAnyK,EAAAglK,mBACO,KAAA03F,GAEPl8Q,KAAAkta,WAAA3/X,QACAhtC,EAAAs0E,QACA70E,KAAA+sa,cAEA/sa,KAAAw3E,SAAA,KAEO,MAAA13E,QAAAo8Q,IAAA,IAEPl8Q,KAAA+rM,OACA/rM,KAAAkta,WAAA3/X,UAIAsgY,cAAA,SAAAG,GAEAhua,KAAA4ta,iBACAI,EAAAtnY,aAAA,iBAEAknY,eAAA,WACA5ta,KAAAkta,WAAAxmY,aAAA,iBACA1mC,KAAAota,eAAAtja,QAAA,SAAA6C,GACAA,EAAA+5B,aAAA,oBAGA+mY,SAAA,WACAzta,KAAAqta,YAAA3mY,aAAA,KAAA1mC,KAAAsta,QACAtta,KAAAkta,WAAAxmY,aAAA,wBACA1mC,KAAAkta,WAAAxmY,aAAA,gBAAA1mC,KAAAsta,QACAtta,KAAAmta,UAAAnta,KAAAqta,YAAAxsX,iBAAA,mBACA7gD,KAAAota,eAAAvha,MAAA3L,UAAAoC,MAAAoJ,KAAA1L,KAAAmta,WAEAnta,KAAA8sa,cAEA9sa,KAAAkta,WAAAxmY,aAAA,iBACA1mC,KAAAkta,WAAAxmY,aAAA,gBACA1mC,KAAAkta,WAAAxmY,aAAA,SAAA1mC,KAAAkta,WAAAhyW,aAAA,2CAGAq8D,UAAA,WACA,IAAAv4G,EAAAhf,KAEAiS,EAAAjS,KAAAiS,QACA5M,EAAArF,KAAAqF,KACA0mM,EAAA/rM,KAAA+rM,KACA53H,EAAAn0E,KAAAm0E,YACA24V,EAAA9sa,KAAA8sa,YACAgB,EAAA9ta,KAAA8ta,qBACAC,EAAA/ta,KAAA+ta,kBAEA/ta,KAAAkta,WAAAJ,EAAA9sa,KAAAye,MAAAxM,QAAAyK,IAAA1c,KAAA8Y,OAAAC,QAAA,GAAAi8L,IAEA,IAAAq4N,EAAArta,KAAAqta,YAAArta,KAAA8Y,OAAA+zZ,SAAA,GAAA73N,IAEAh1M,KAAAkta,WAAAtuZ,iBAAA,UAAAkvZ,GACAT,EAAAzuZ,iBAAA,UAAAmvZ,GAAA,GAEAjB,IACA9sa,KAAAkta,WAAAtuZ,iBAAA,mBACAI,EAAAmnM,UAAA,IAEAnmN,KAAAkta,WAAAtuZ,iBAAA,kBACAI,EAAAmnM,UAAA,IAEAnmN,KAAAkta,WAAAtuZ,iBAAA,mBACAI,EAAAmnM,UAAA,KAGA,UAAAl0M,GACAjS,KAAAkta,WAAAtuZ,iBAAA,aAAAvZ,GACArF,KAAAkta,WAAAtuZ,iBAAA,aAAAmtL,GACAshO,EAAAzuZ,iBAAA,aAAAvZ,GACAgoa,EAAAzuZ,iBAAA,aAAAmtL,IACO,UAAA95L,GACPjS,KAAAkta,WAAAtuZ,iBAAA,QAAAu1D,IAGAq5V,oBAAA,SAAA/3D,EAAAl2T,GACAv/C,KAAA+sa,cACA/sa,KAAAw3E,SAAA,GAEAx3E,KAAAge,MAAA,UAAAy3V,EAAAl2T,IAEAhS,MAAA,WACAvtC,KAAAkta,WAAA3/X,OAAAvtC,KAAAkta,WAAA3/X,UAIA9pC,OAAA,SAAAwU,GACA,IAAAsH,EAAAvf,KAEA+rM,EAAA/rM,KAAA+rM,KACA+gO,EAAA9sa,KAAA8sa,YACAtpa,EAAAxD,KAAAwD,KACA+pa,EAAAvta,KAAAuta,aAQAL,EAAAJ,EAAA70Z,EACA,kBACA,MACAA,EACA,aAEAZ,OAAkB7T,OAAAquB,KAAA07Y,GAClBj4K,UACAzgL,MAbA,SAAAtd,GACAh4C,EAAAvB,MAAA,QAAAu5C,GACAw0I,QAcA/rM,KAAA8Y,OAAAC,UACAd,EACA,aACSW,IAAA,UAAAvB,OAAyB7T,OAAAquB,KAAA07Y,GAClCr1Z,MAAA,8BACAD,EACA,KACWC,MAAA,gDAlBXlY,KAAA8Y,OAAAC,QAwBA,OAAAd,EACA,OACOC,MAAA,cAAAksK,aACPxhL,KAAA,eACA2E,MAAAwkM,MAGAmhO,EAAAlta,KAAA8Y,OAAA+zZ,cAOA,SAAA3pa,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA8ia,EAAA1ua,EAAA,IAEA2ua,GAEA/ia,EAFA8ia,IAEsC9ia,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E+ia,EAAAn1Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA25Y,EAAAn1Z,QAAAnW,KAAAsra,EAAAn1Z,UAGA5V,EAAA4V,QAAAm1Z,EAAAn1Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA4ma,EAAA5ua,EAAA,IACA6ua,EAAA7ua,EAAA6+C,EAAA+vX,GACAE,EAAA9ua,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAi7V,EAAA74Z,EACA84Z,EAAA,GATA,EAEA,KAEA,KAEA,MAUA9pX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAs4S,EAAAlkT,EAAA,GAEAomN,GAEAx6M,EAFAs4S,IAEsCt4S,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,iBAEA2/K,cAAA,iBAEAD,QAAAqjC,EAAA5sM,SAEAjW,OACAuxM,cACA7wM,KAAAiW,QACAV,SAAA,GAEAuiC,aACA93C,KAAAuX,OACAhC,QAAA,IAIAjI,KAAA,WACA,OACA+gB,KAAA7xB,KAAA6sa,SAAAU,eAKAl6V,QAAA,YAEAvzD,QAAA,WACA,IAAAjD,EAAA7c,KAEAA,KAAAikL,IAAA,0BACApnK,EAAA23L,YAAA33L,EAAA83L,iBAEA30M,KAAAikL,IAAA,mBAAA12K,GACAsP,EAAA23L,WAAAjnM,KAGAwS,QAAA,WACA/f,KAAAmsN,QAAArX,UAAA90M,KAAA80M,UAAA90M,KAAA0c,IACA1c,KAAA+0M,aAAA/0M,KAAAmsN,QAAAzvM,KAIAnB,OACA+yZ,sBACA55N,WAAA,EACAj5L,QAAA,SAAAlO,GACAvN,KAAAy0M,iBAAAlnM,OAcA,SAAArK,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAA0BC,EAAvClX,KAAuCmX,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,kBAAwB8c,IAAKwkS,cAA3HlkT,KAA2Ho1M,aAA6Bl+L,EAAA,MAAWktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAhLvH,KAAgL,WAAAof,WAAA,eAA4EhI,YAAA,6BAAAc,OAA5PlY,KAA4P6xB,MAAA,qBAA5P7xB,KAA4P6xB,QAA5P7xB,KAA6V+0E,GAAA,kBAEtWp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAoja,EAAAhva,EAAA,IAEAiva,GAEArja,EAFAoja,IAEsCpja,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eqja,EAAAz1Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAi6Y,EAAAz1Z,QAAAnW,KAAA4ra,EAAAz1Z,UAGA5V,EAAA4V,QAAAy1Z,EAAAz1Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAkna,EAAAlva,EAAA,IACAmva,EAAAnva,EAAA6+C,EAAAqwX,GACAE,EAAApva,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAu7V,EAAAn5Z,EACAo5Z,EAAA,GATA,EAEA,KAEA,KAEA,MAUApqX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,iBAEA0/K,QAAAD,EAAAtpK,SAEAjW,OACA2yW,WACA/hS,SAAAj6D,QACAm1Z,QAAAn1Z,SAGAsC,SACAo4D,YAAA,SAAAhwE,GACAnE,KAAAu9I,SAAA,gCAAAv9I,KAAAy1W,QAAAz1W,WAoBA,SAAAkD,EAAAqhD,EAAAhlD,GAEA,aACA,IAKA+0E,GAAiB7wE,OALjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,MAAgBI,YAAA,yBAAAc,OACzGs8D,cAD0Bx0E,KAC1B0zE,SACAm7V,kCAF0B7ua,KAE1B4ua,SACGv3Z,OAAQy3Z,gBAHe9ua,KAGf0zE,SAAA0xJ,SAHeplO,KAGf0zE,SAAA,SAAiEh0D,IAAKm1D,MAHvD70E,KAGuDm0E,eAHvDn0E,KAGgF+0E,GAAA,gBAEzFp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA4ja,EAAAxva,EAAA,IAEAyva,GAEA7ja,EAFA4ja,IAEsC5ja,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E6ja,EAAAj2Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAy6Y,EAAAj2Z,QAAAnW,KAAAosa,EAAAj2Z,UAGA5V,EAAA4V,QAAAi2Z,EAAAj2Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA0na,EAAA1va,EAAA,IACA2va,EAAA3va,EAAA6+C,EAAA6wX,GAcA/7V,EAbA3zE,EAAA,EAaA4zE,CACA+7V,EAAA35Z,EAVA,MAEA,EAEA,KAEA,KAEA,MAUAgvC,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAixG,EAAAnrG,EAFA33E,EAAA,IAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAMA4va,EAAAj4V,EAFA33E,EAAA,KAIA4uD,EAAA5uD,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,SAEAa,OAAA,SAAAwU,GACA,IAAAsc,EAAAtc,EACA,MAEAZ,OACA2sJ,KAAA,WAEAj6J,KAAA/J,KAAAi5Z,SACA1gZ,OAAgBkC,gBAAAza,KAAAya,iBAAA,IAChBvC,OACAk3Z,sBAAA,eAAApva,KAAAq4H,KACAg3S,oBAAArva,KAAAi5Z,SACAqW,WAAA,KAGAtva,KAAA8Y,OAAAC,UAGA,OAAA/Y,KAAAuva,mBACAt3Z,EACA,8BACA,MACAsc,IAGAA,GAKAguJ,cAAA,SAEAD,QAAAD,EAAAtpK,QAAAorN,EAAAprN,SAEAsuO,QAAA,WACA,OACA2xK,SAAAh5Z,OAKAo0B,YACAo7Y,+BACAv9V,YAAA,EACAxuE,OAAA,SAAAqM,EAAAg+C,GAyCA,OAAAh+C,EAAA,cAvCAhN,OACAu1H,KAAA,UAEA34G,IACA6nP,YAAA,SAAA9mQ,GACAA,EAAA8X,MAAA1F,QAAA,IAEAk0P,MAAA,SAAAtmQ,IACA,EAAA0tD,EAAA6rB,UAAAv5E,EAAA,yBACAA,EAAA8X,MAAA1F,QAAA,GAEA20P,WAAA,SAAA/mQ,IACA,EAAA0tD,EAAAosB,aAAA95E,EAAA,yBACAA,EAAA8X,MAAA1F,QAAA,IAEAm2P,YAAA,SAAAvoQ,GACAA,EAAAkjR,UAAAljR,EAAAkjR,aAEA,EAAAx1N,EAAAurB,UAAAj5E,EAAA,uBACA,EAAA0tD,EAAAosB,aAAA95E,EAAA,qBACAA,EAAAkjR,QAAAK,YAAAvjR,EAAA8X,MAAAy7B,SACAvzC,EAAAkjR,QAAA7hO,YAAArhD,EAAAkc,aACA,EAAAwxC,EAAA6rB,UAAAv5E,EAAA,wBAEA,EAAA0tD,EAAA6rB,UAAAv5E,EAAA,qBACAA,EAAAkjR,QAAAK,YAAAvjR,EAAA8X,MAAAy7B,SACAvzC,EAAAkjR,QAAA7hO,YAAArhD,EAAAkc,aACA,EAAAwxC,EAAAosB,aAAA95E,EAAA,sBAGAA,EAAA8X,MAAAS,MAAAvY,EAAAqhD,YAAA,KACArhD,EAAA8X,MAAAy7B,SAAA,UAEA80N,MAAA,SAAAroQ,IACA,EAAA0tD,EAAA6rB,UAAAv5E,EAAA,kCACAA,EAAA8X,MAAAS,MAAAvY,EAAAkjR,QAAA7hO,YAAA,QAIAgM,EAAAy6H,aAKAzlL,OACAu1H,MACA70H,KAAA2N,OACA4H,QAAA,YAEA02Z,eACAjsa,KAAA2N,OACA4H,QAAA,IAEA22Z,eAAA7ja,MACA8ja,aAAAl2Z,QACAm2Z,OAAAn2Z,QACAo2Z,aACArsa,KAAA2N,OACA4H,QAAA,SAEAkgZ,SAAAx/Y,QACAgB,gBAAAtJ,OACAg1Q,UAAAh1Q,OACA2+Z,gBAAA3+Z,OACAo+Z,oBACA/ra,KAAAiW,QACAV,SAAA,IAGAjI,KAAA,WACA,OACAi/Z,YAAA/va,KAAAyva,cACAO,YAAAhwa,KAAA0va,iBAAA1va,KAAAi5Z,SAAAj5Z,KAAA0va,eAAApta,MAAA,MACA4P,SACA+9Z,cAIAp0Z,UACAq0Z,gBAAA,WACA,OAAAlwa,KAAAya,gBAAAza,KAAAmwa,SAAAnwa,KAAAya,gBAAA,QAEA21Z,YAAA,WACA,qBAAApwa,KAAAq4H,MAAA,aAAAr4H,KAAAq4H,MAAAr4H,KAAAi5Z,WAGA19Y,OACAk0Z,cAAA,oBAEAC,eAAA,SAAAnoa,GACAvH,KAAAi5Z,WACAj5Z,KAAAgwa,YAAAzoa,IAGA0xZ,SAAA,SAAA1xZ,GACAA,IAAAvH,KAAAgwa,gBACAhwa,KAAAi9S,UAAA,8BAAA11S,KAGAwU,SACAs0Z,kBAAA,SAAA9ia,GACA,IAAAZ,EAAA3M,KAAAkS,MAAA3E,IAAAvN,KAAAkS,MAAAlS,KAAA+va,cAAA/va,KAAAkS,MAAAlS,KAAAyva,eACA9ia,GACA3M,KAAA+va,YAAApja,EAAAC,MACA5M,KAAAswa,kBAEAtwa,KAAA+va,YAAA,MAGA7pM,mBAAA,WACA,OACApjO,OACA6X,MAAA,uBAIA41Z,iBAAA,SAAApqa,GAEA,GADAA,IAAAoC,QAAA,QACA,mBAA0BozD,KAAAx1D,GAAA,CAC1BA,IAAAtF,MAAA,IACA,QAAAE,EAAA,EAAuBA,GAAA,EAAQA,IAC/BoF,EAAA7E,OAAAP,EAAA,EAAAoF,EAAApF,IAEAoF,IAAAC,KAAA,IAEA,yBAA0Bu1D,KAAAx1D,IAE1BynV,IAAAh0Q,SAAAzzE,EAAA7D,MAAA,SACAqnV,MAAA/vQ,SAAAzzE,EAAA7D,MAAA,SACAwkV,KAAAltQ,SAAAzzE,EAAA7D,MAAA,WAIAsrV,IAAA,IACAjE,MAAA,IACA7C,KAAA,MAIAqpF,SAAA,SAAAhqa,EAAAie,GACA,IAAAosZ,EAAAxwa,KAAAuwa,iBAAApqa,GACAynV,EAAA4iF,EAAA5iF,IACAjE,EAAA6mF,EAAA7mF,MACA7C,EAAA0pF,EAAA1pF,KAaA,OAXA1iU,EAAA,GAEAwpU,GAAA,EAAAxpU,EACAulU,GAAA,EAAAvlU,EACA0iU,GAAA,EAAA1iU,IAGAwpU,IAAA,IAAAA,GAAAxpU,EACAulU,IAAA,IAAAA,GAAAvlU,EACA0iU,IAAA,IAAAA,GAAA1iU,GAEA,OAAArc,KAAAqC,MAAAwjV,GAAA,KAAA7lV,KAAAqC,MAAAu/U,GAAA,KAAA5hV,KAAAqC,MAAA08U,GAAA,KAEAqkD,QAAA,SAAAx+X,GACA3M,KAAA24P,KAAA34P,KAAAkS,MAAAvF,EAAAC,MAAAD,IAEA8ja,WAAA,SAAA9ja,UACA3M,KAAAkS,MAAAvF,EAAAC,QAEA8ja,WAAA,SAAA/ja,GACA3M,KAAA24P,KAAA34P,KAAAiwa,SAAAtja,EAAAC,MAAAD,IAEAgka,cAAA,SAAAhka,UACA3M,KAAAiwa,SAAAtja,EAAAC,QAEAgka,SAAA,SAAAhka,EAAAisZ,GACA,IAAAmX,EAAAhwa,KAAAgwa,aACA,IAAAA,EAAAlwa,QAAA8M,KAGA5M,KAAA2va,eACA3va,KAAAgwa,cAAA5oZ,OAAA,SAAAxa,GACA,WAAAisZ,EAAA/4Z,QAAA8M,MAGA5M,KAAAgwa,YAAAzua,KAAAqL,KAEAika,UAAA,SAAAjka,GACA,IAAA7L,EAAAf,KAAAgwa,YAAAlwa,QAAA8M,IACA,IAAA7L,GACAf,KAAAgwa,YAAA1ua,OAAAP,EAAA,IAGA+va,mBAAA,SAAAC,GACA,IAAAnka,EAAAmka,EAAAnka,MACAisZ,EAAAkY,EAAAlY,WAEA,IAAA74Z,KAAAgwa,YAAAlwa,QAAA8M,IAGA5M,KAAA6wa,UAAAjka,GACA5M,KAAAge,MAAA,QAAApR,EAAAisZ,KAEA74Z,KAAA4wa,SAAAhka,EAAAisZ,GACA74Z,KAAAge,MAAA,OAAApR,EAAAisZ,KAGAmY,gBAAA,SAAArka,GACA,IAAAkQ,EAAA7c,KAEA4M,EAAAD,EAAAC,MACAisZ,EAAAlsZ,EAAAksZ,UAEAoY,EAAAjxa,KAAA+va,YAEA/va,KAAA+va,YAAApja,EAAAC,MACA5M,KAAAge,MAAA,SAAApR,EAAAisZ,EAAAlsZ,IAEA,eAAA3M,KAAAq4H,MAAAr4H,KAAAi5Z,YACAj5Z,KAAAgwa,gBAGAhwa,KAAA4va,QACA5va,KAAAkxa,YAAAvka,EAAA,SAAAouE,GACAl+D,EAAAkzZ,YAAAkB,EACAl2V,GAAAtlE,QAAAslE,YAOAu1V,eAAA,WACA,IAAApyZ,EAAAle,KAEA4M,EAAA5M,KAAA+va,YACAoB,EAAAnxa,KAAAkS,MAAAtF,GACAuka,GAAA,eAAAnxa,KAAAq4H,OAAAr4H,KAAAi5Z,UAEAkY,EAAAtY,UAIA/uZ,QAAA,SAAA8C,GACA,IAAAmka,EAAA7yZ,EAAA+xZ,SAAArja,GACAmka,GAAA7yZ,EAAA0yZ,SAAAhka,EAAAmka,EAAAlY,cAGAqY,YAAA,SAAAvka,EAAAivG,GACA,IAAAw1T,EAAAzka,EAAAyka,OAAAzka,EAAAC,MACA,IACA5M,KAAAqxa,QAAA9va,KAAA6va,EAAA,aAA+Cx1T,GACxC,MAAAz3G,GACPsR,QAAAslE,MAAA52E,KAGA2K,KAAA,SAAAlC,GACA,IAAAoS,EAAAhf,KAEA64Z,EAAA74Z,KAAAiwa,SAAArja,EAAAhF,YAAAixZ,UAEAA,EAAA/uZ,QAAA,SAAA/I,GACA,OAAAie,EAAA4xZ,SAAA7va,EAAA83Z,MAGA//U,MAAA,SAAAlsE,GACA5M,KAAA6wa,UAAAjka,KAGAmT,QAAA,WACA/f,KAAAswa,iBACAtwa,KAAAikL,IAAA,aAAAjkL,KAAAgxa,iBACAhxa,KAAAikL,IAAA,gBAAAjkL,KAAA8wa,oBACA,eAAA9wa,KAAAq4H,MACA,IAAA82S,EAAAp2Z,QAAA/Y,KAAA0c,KAEA1c,KAAAsf,OAAA,QAAAtf,KAAAqwa,sBAMA,SAAAnta,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAmma,EAAA/xa,EAAA,IAEAgya,GAEApma,EAFAmma,IAEsCnma,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAm3Z,EAAA,SAAAkP,GACAxxa,KAAAwxa,UACAxxa,KAAAwe,QAGA8jZ,EAAApia,UAAAse,KAAA,WACA,IAAAizZ,EAAAzxa,KAAAwxa,QAAA/wM,cACAr5M,OAAA1b,KAAA+la,EAAA,SAAAnlY,GACA,WAAAA,EAAA+sC,WACGvvE,QAAA,SAAAwiC,GACH,IAAAilY,EAAAx4Z,QAAAuzB,MAGAnpC,EAAA4V,QAAAupZ,GAIA,SAAAp/Z,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAgxR,EAAAlrR,EAFA33E,EAAA,KAMAmya,EAAAx6V,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAq3Z,EAAA,SAAAgP,GACAxxa,KAAAwxa,UACAxxa,KAAA+wa,QAAA,KACA/wa,KAAAwe,QAGAgkZ,EAAAtia,UAAAse,KAAA,WACAxe,KAAAwxa,QAAA9qY,aAAA,gBACA,IAAAirY,EAAA3xa,KAAAwxa,QAAAjuX,cAAA,YACAouX,IACA3xa,KAAA+wa,QAAA,IAAAW,EAAA34Z,QAAA/Y,KAAA2xa,IAEA3xa,KAAA8iW,gBAGA0/D,EAAAtia,UAAA4iW,aAAA,WACA,IAAAjmV,EAAA7c,KAEA6J,EAAAu4V,EAAArpV,QAAAlP,KACA7J,KAAAwxa,QAAA5yZ,iBAAA,mBAAA24C,GACA,IAAAq6W,GAAA,EACA,OAAAr6W,EAAA2kN,SACA,KAAAryQ,EAAAsxQ,KACAinF,EAAArpV,QAAA+oL,aAAAvqI,EAAAwvE,cAAA,cACAlqH,EAAAk0Z,SAAAl0Z,EAAAk0Z,QAAAc,aAAA,GACAD,GAAA,EACA,MACA,KAAA/na,EAAAqxQ,GACAknF,EAAArpV,QAAA+oL,aAAAvqI,EAAAwvE,cAAA,cACAlqH,EAAAk0Z,SAAAl0Z,EAAAk0Z,QAAAc,aAAAh1Z,EAAAk0Z,QAAAe,aAAA7wa,OAAA,GACA2wa,GAAA,EACA,MACA,KAAA/na,EAAAoxQ,IACAmnF,EAAArpV,QAAA+oL,aAAAvqI,EAAAwvE,cAAA,cACA,MACA,KAAAl9H,EAAAk9P,MACA,KAAAl9P,EAAAkB,MACA6ma,GAAA,EACAr6W,EAAAwvE,cAAAlyD,QAGA+8V,GACAr6W,EAAAo6H,oBAKAxuL,EAAA4V,QAAAypZ,GAIA,SAAAt/Z,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAg3V,EAAA5iW,EAAA,IAEA6iW,GAEAj3V,EAFAg3V,IAEsCh3V,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA4ma,EAAA,SAAAxoY,EAAAioY,GACAxxa,KAAAwxa,UACAxxa,KAAAupC,SACAvpC,KAAA8xa,gBACA9xa,KAAAgya,SAAA,EACAhya,KAAAwe,QAGAuzZ,EAAA7xa,UAAAse,KAAA,WACAxe,KAAA8xa,aAAA9xa,KAAAwxa,QAAA3wX,iBAAA,MACA7gD,KAAA8iW,gBAGAivE,EAAA7xa,UAAA2xa,aAAA,SAAAvxY,GACAA,IAAAtgC,KAAA8xa,aAAA7wa,OACAq/B,EAAA,EACGA,EAAA,IACHA,EAAAtgC,KAAA8xa,aAAA7wa,OAAA,GAEAjB,KAAA8xa,aAAAxxY,GAAAiN,QACAvtC,KAAAgya,SAAA1xY,GAGAyxY,EAAA7xa,UAAA4iW,aAAA,WACA,IAAAjmV,EAAA7c,KAEA6J,EAAAu4V,EAAArpV,QAAAlP,KACA0iC,EAAAvsC,KAAAupC,OAAAioY,QACA3la,MAAA3L,UAAA4J,QAAA4B,KAAA1L,KAAA8xa,aAAA,SAAArxa,GACAA,EAAAme,iBAAA,mBAAA24C,GACA,IAAAq6W,GAAA,EACA,OAAAr6W,EAAA2kN,SACA,KAAAryQ,EAAAsxQ,KACAt+P,EAAAg1Z,aAAAh1Z,EAAAm1Z,SAAA,GACAJ,GAAA,EACA,MACA,KAAA/na,EAAAqxQ,GACAr+P,EAAAg1Z,aAAAh1Z,EAAAm1Z,SAAA,GACAJ,GAAA,EACA,MACA,KAAA/na,EAAAoxQ,IACAmnF,EAAArpV,QAAA+oL,aAAAv1J,EAAA,cACA,MACA,KAAA1iC,EAAAk9P,MACA,KAAAl9P,EAAAkB,MACA6ma,GAAA,EACAr6W,EAAAwvE,cAAAlyD,QAOA,OAJA+8V,IACAr6W,EAAAo6H,iBACAp6H,EAAAitH,oBAEA,OAKArhL,EAAA4V,QAAAg5Z,GAIA,SAAA7ua,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA8ma,EAAA1ya,EAAA,IAEA2ya,GAEA/ma,EAFA8ma,IAEsC9ma,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E+ma,EAAAn5Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA29Y,EAAAn5Z,QAAAnW,KAAAsva,EAAAn5Z,UAGA5V,EAAA4V,QAAAm5Z,EAAAn5Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA4qa,EAAA5ya,EAAA,IACA6ya,EAAA7ya,EAAA6+C,EAAA+zX,GAcAj/V,EAbA3zE,EAAA,EAaA4zE,CACAi/V,EAAA78Z,EAVA,MAEA,EAEA,KAEA,KAEA,MAUAgvC,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAgwV,EAAAlqV,EAFA33E,EAAA,KAMA8ya,EAAAn7V,EAFA33E,EAAA,KAMA8iL,EAAAnrG,EAFA33E,EAAA,IAMAomN,EAAAzuI,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAmna,GACAxva,OACAsxM,iBACA5wM,MAAAiW,QAAAtI,QACA4H,SAAA,GAEA2pB,OAAAijL,EAAA5sM,QAAAjW,MAAA4/B,OACAwY,kBAAAyqK,EAAA5sM,QAAAjW,MAAAo4C,kBACAq5J,cAAAoR,EAAA5sM,QAAAjW,MAAAyxM,eAEAzjM,KAAA60M,EAAA5sM,QAAAjI,KACAiL,QAAA4pM,EAAA5sM,QAAAgD,QACAiE,cAAA2lM,EAAA5sM,QAAAiH,cACAs1L,YAAAqQ,EAAA5sM,QAAAu8L,aAGAnyM,EAAA4V,SACAnW,KAAA,YAEA2/K,cAAA,YAEAD,QAAA+vP,EAAAt5Z,QAAAspK,EAAAtpK,QAAAu5Z,GAEAl+Y,YAAem+Y,qBAAAnR,EAAAroZ,SAEfjW,OACA8J,OACApJ,KAAA2N,OACA4xJ,UAAA,GAEAiqQ,aACAxpa,KAAAuX,OACAhC,QAAA,KAEAk0Z,aACAzpa,KAAAuX,OACAhC,QAAA,KAEAitM,YAAA70M,OACAuiE,SAAAj6D,QACAomS,oBACAr8S,KAAAiW,QACAV,aAAArL,IAIAoD,KAAA,WACA,OACAokM,SAAA,KACAt6F,QAAA,KACA1oG,SACA+9Z,YACAuC,cAAA,IAIAj3Z,OACAg9D,OAAA,SAAAhrE,GACA,IAAAsP,EAAA7c,KAEAA,KAAAowa,aACApwa,KAAAuc,UAAA,SAAA4B,GACAtB,EAAA83L,mBAKA94L,UAEAy4L,aAAA,WACA,YAAA5mM,IAAA1N,KAAA6/S,mBAAA7/S,KAAAyya,aAAAzya,KAAA6/S,oBAEA6yH,mBAAA,WACA,OAAA1ya,KAAAg5Z,SAAAC,SAAA,oCAEA1gV,OAAA,WACA,OAAAv4E,KAAAg5Z,SAAAgX,YAAAlwa,QAAAE,KAAA4M,QAAA,GAEAihP,OAAA,WACA,IAAAhkM,GAAA,EACAomX,EAAAjwa,KAAAiwa,SACA/9Z,EAAAlS,KAAAkS,MAcA,OAZAtI,OAAAC,KAAAqI,GAAApI,QAAA,SAAA8C,GACAsF,EAAAtF,GAAAihP,SACAhkM,GAAA,KAIAjgD,OAAAC,KAAAoma,GAAAnma,QAAA,SAAA8C,GACAqja,EAAArja,GAAAihP,SACAhkM,GAAA,KAIAA,GAEAqmX,gBAAA,WACA,OAAAlwa,KAAAg5Z,SAAAkX,iBAEAz1Z,gBAAA,WACA,OAAAza,KAAAg5Z,SAAAv+Y,iBAAA,IAEAq1Z,gBAAA,WACA,OAAA9va,KAAAg5Z,SAAA8W,iBAAA,IAEA3pJ,UAAA,WACA,OAAAnmR,KAAAg5Z,SAAA7yI,WAAA,IAEA9tJ,KAAA,WACA,OAAAr4H,KAAAg5Z,SAAA3gS,MAEA+3S,YAAA,WACA,OAAApwa,KAAAg5Z,SAAAoX,aAEAuC,WAAA,WACA,qBAAA3ya,KAAAq4H,MAEAlyH,MAAAnG,KAAAmmR,YAIAysJ,kBAAA5ya,KAAA6tP,OAAA7tP,KAAAg5Z,SAAA8W,gBAAA9va,KAAA8va,gBAAA,iBACA3pa,MAAAnG,KAAA6tP,OAAA7tP,KAAA8va,gBAAA9va,KAAAmmR,YAGAssJ,aAAA,WAGA,IAFA,IAAAA,GAAA,EACAlpY,EAAAvpC,KAAAmsN,QACA5iL,OAAAvpC,KAAAg5Z,UAAA,CACA,mCAAAl5Z,QAAAypC,EAAAnxB,SAAAmqK,gBAAA,GACAkwP,GAAA,EACA,MAEAlpY,IAAA4iL,QAGA,OAAAsmN,IAGA12Z,SACA82Z,qBAAA,SAAAtra,GACAA,EACAvH,KAAA8ya,aAEA9ya,KAAAo1M,aAGA+1L,QAAA,SAAAx+X,GACA3M,KAAA24P,KAAA34P,KAAAkS,MAAAvF,EAAAC,MAAAD,IAEA8ja,WAAA,SAAA9ja,UACA3M,KAAAkS,MAAAvF,EAAAC,QAEA8ja,WAAA,SAAA/ja,GACA3M,KAAA24P,KAAA34P,KAAAiwa,SAAAtja,EAAAC,MAAAD,IAEAgka,cAAA,SAAAhka,UACA3M,KAAAiwa,SAAAtja,EAAAC,QAEAunE,YAAA,WACA,IAAA6kV,EAAAh5Z,KAAAg5Z,SACAtlV,EAAA1zE,KAAA0zE,SAEA,UAAAslV,EAAA6W,aAAA,eAAA7W,EAAA3gS,MAAA2gS,EAAAC,UAAA,aAAAD,EAAA3gS,MAAA3kD,GAGA1zE,KAAAu9I,SAAA,yBAAAv9I,OAEA+ya,iBAAA,WACA,IAAA70Z,EAAAle,KAEAg5Z,EAAAh5Z,KAAAg5Z,SACAtlV,EAAA1zE,KAAA0zE,SAEA,UAAAslV,EAAA6W,aAAA,eAAA7W,EAAA3gS,OAAA2gS,EAAAC,UAAA,aAAAD,EAAA3gS,MAAA3kD,IAGA1zE,KAAAu9I,SAAA,iCACAlxI,aAAArM,KAAA46G,SACA56G,KAAA46G,QAAAtuG,WAAA,WACA4R,EAAA86Y,SAAA4X,SAAA1yZ,EAAAtR,MAAAsR,EAAA26Y,YACO74Z,KAAAgta,eAEPgG,iBAAA,WACA,IAAAh0Z,EAAAhf,KAEAg5Z,EAAAh5Z,KAAAg5Z,SAEA,UAAAA,EAAA6W,aAAA,eAAA7W,EAAA3gS,OAAA2gS,EAAAC,UAAA,aAAAD,EAAA3gS,OAGAr4H,KAAAu9I,SAAA,iCACAlxI,aAAArM,KAAA46G,SACA56G,KAAA46G,QAAAtuG,WAAA,YACA0S,EAAAwzZ,cAAAxzZ,EAAAg6Y,SAAA6X,UAAA7xZ,EAAApS,QACO5M,KAAAita,eAEPgG,sBAAA,WACA,kBAAAjza,KAAAq4H,MAAAr4H,KAAAg5Z,SAAAv+Y,gBAAA,CACA,IAAAP,EAAAla,KAAAye,MAAA,iBACAvE,MAAA3B,MAAAkC,gBAAAza,KAAAg5Z,SAAAkX,mBAEAgD,sBAAA,WACA,kBAAAlza,KAAAq4H,MAAAr4H,KAAAg5Z,SAAAv+Y,gBAAA,CACA,IAAAP,EAAAla,KAAAye,MAAA,iBACAvE,MAAA3B,MAAAkC,gBAAAza,KAAAg5Z,SAAAv+Y,iBAAA,MAEA04Z,gBAAA,WACAnza,KAAAy0M,iBAAA,eAAAz0M,KAAAq4H,MAAAr4H,KAAAyya,aAAA,8BAEAK,WAAA,WACA9ya,KAAA+0M,aAAA/0M,KAAA0c,IACA1c,KAAA80M,UAAA90M,KAAAye,MAAAyiS,KACAlhT,KAAAmza,oBAGArzZ,QAAA,WACA,IAAAP,EAAAvf,KAEAA,KAAAikL,IAAA,kBAAAjkL,KAAA6ya,sBACA7ya,KAAAikL,IAAA,+BACA1kK,EAAAizZ,cAAA,EACAnma,aAAAkT,EAAAq7F,WAEA56G,KAAAikL,IAAA,+BACA1kK,EAAAizZ,cAAA,EACAnma,aAAAkT,EAAAq7F,YAGA76F,QAAA,WACA/f,KAAA84Z,WAAA4X,WAAA1wa,MACAA,KAAAg5Z,SAAA0X,WAAA1wa,MACAA,KAAA8ya,cAEA9yZ,cAAA,WACAhgB,KAAA84Z,WAAA6X,cAAA3wa,MACAA,KAAAg5Z,SAAA2X,cAAA3wa,OAEAyD,OAAA,SAAAwU,GACA,IAAA41O,EAAA7tP,KAAA6tP,OACAt1K,EAAAv4E,KAAAu4E,OACAwgV,EAAA/4Z,KAAA+4Z,aACA4Z,EAAA3ya,KAAA2ya,WACAl4Z,EAAAza,KAAAya,gBACAu+Y,EAAAh5Z,KAAAg5Z,SACAvkN,EAAAz0M,KAAAy0M,iBACAi+N,EAAA1ya,KAAA0ya,mBACAr6S,EAAAr4H,KAAAq4H,KACA3kD,EAAA1zE,KAAA0zE,SACAsyI,EAAAhmN,KAAAgmN,YACAltM,EAAA9Y,KAAA8Y,OACA25Z,EAAAzya,KAAAyya,aAGAW,EAAAn7Z,EACA,cAEAZ,OAAgBzU,KAAA8va,KAEhBz6Z,EACA,OAEAW,IAAA,OACAwrK,aACAxhL,KAAA,OACA2E,MAAAgxE,IAGArgE,OAAA,YAAAmgH,EAAA2tF,GACAtmM,IACA4kK,WAAAtkL,KAAA+ya,iBACApsN,WAAA3mN,KAAAgza,iBACAzlY,MAAAvtC,KAAA+ya,oBAGA96Z,EACA,MAEAZ,OACA2sJ,KAAA,QAEA9rJ,OAAA,2CAAAu8L,GACAl8L,OAAoBkC,gBAAAu+Y,EAAAv+Y,iBAAA,MACpB3B,EAAAC,cAKAs6Z,EAAAp7Z,EACA,yBACA,MACAA,EACA,MAEAZ,OACA2sJ,KAAA,QAEA9rJ,MAAA,0BACAksK,aACAxhL,KAAA,OACA2E,MAAAgxE,IAGAhgE,OAAkBkC,gBAAAu+Y,EAAAv+Y,iBAAA,MAClB3B,EAAAC,YAIAu6Z,EAAA,eAAAta,EAAA3gS,MAAAo6S,GAAA,aAAAzZ,EAAA3gS,OAAA2gS,EAAAC,SAAA,2CAEA,OAAAhhZ,EACA,MAEAC,OACAq7Z,cAAA,EACAC,YAAA3lL,EACA4lL,YAAAl7V,EACA/D,cAAAd,GAEAr8D,OAAgB2sJ,KAAA,WAChBgoQ,gBAAA,OACAC,gBAAA1zV,GAEA74D,IACA4kK,WAAAtkL,KAAA+ya,iBACApsN,WAAA3mN,KAAAgza,iBACAzlY,MAAAvtC,KAAA+ya,oBAGA96Z,EACA,OAEAC,MAAA,oBACAU,IAAA,gBACA8G,IACAm1D,MAAA70E,KAAAm0E,YACAmwG,WAAAtkL,KAAAiza,sBACAtsN,WAAA3mN,KAAAkza,uBAGA36Z,OAAAwgZ,EAAA4Z,GAA6Cl4Z,sBAE7C3B,EAAAoB,MAAAjC,EACA,KACWC,OAAA,yBAAAo7Z,UAGXtza,KAAAowa,YAAAgD,EAAAC,OAOA,SAAAnwa,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAuoa,EAAAn0a,EAAA,IAEAo0a,GAEAxoa,EAFAuoa,IAEsCvoa,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Ewoa,EAAA56Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAo/Y,EAAA56Z,QAAAnW,KAAA+wa,EAAA56Z,UAGA5V,EAAA4V,QAAA46Z,EAAA56Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAqsa,EAAAr0a,EAAA,IACAs0a,EAAAt0a,EAAA6+C,EAAAw1X,GACAE,EAAAv0a,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA0gW,EAAAt+Z,EACAu+Z,EAAA,GATA,EAEA,KAEA,KAEA,MAUAvvX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAihW,EAAAn7V,EAFA33E,EAAA,KAMAw0a,EAAA78V,EAFA33E,EAAA,KAMA8iL,EAAAnrG,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,aAEA2/K,cAAA,aAEAD,QAAA+vP,EAAAt5Z,QAAAspK,EAAAtpK,SAEAqb,YAAe4/Y,UAAAD,EAAAh7Z,SAEfjW,OACA8J,OACApJ,KAAA2N,OACA4xJ,UAAA,GAEAquQ,OAAAjga,OAAAvH,QACA8pE,SAAAj6D,SAEAoC,UACAgyO,OAAA,WACA,OAAA7tP,KAAA4M,QAAA5M,KAAAg5Z,SAAA+W,aAEAG,gBAAA,WACA,OAAAlwa,KAAAg5Z,SAAAkX,iBAEAz1Z,gBAAA,WACA,OAAAza,KAAAg5Z,SAAAv+Y,iBAAA,IAEAq1Z,gBAAA,WACA,OAAA9va,KAAAg5Z,SAAA8W,iBAAA,IAEA3pJ,UAAA,WACA,OAAAnmR,KAAAg5Z,SAAA7yI,WAAA,IAEA9tJ,KAAA,WACA,OAAAr4H,KAAAg5Z,SAAA3gS,MAEA7lH,UAAA,WACA,IAAA+F,GACApS,MAAAnG,KAAA6tP,OAAA7tP,KAAA8va,gBAAA9va,KAAAmmR,WAKA,MAHA,eAAAnmR,KAAAq4H,MAAAr4H,KAAAi0a,WACA17Z,EAAAq6Z,kBAAA5ya,KAAA6tP,OAAA7tP,KAAAg5Z,SAAA8W,gBAAA9va,KAAA8va,gBAAA,kBAEAv3Z,GAEA07Z,SAAA,WACA,OAAAj0a,KAAA84Z,aAAA94Z,KAAAg5Z,WAGAj9Y,SACAm4Z,aAAA,YACA,eAAAl0a,KAAAq4H,MAAAr4H,KAAAg5Z,SAAAv+Y,mBACAza,KAAA0c,IAAAnE,MAAAkC,gBAAAza,KAAAkwa,kBAEAiE,aAAA,YACA,eAAAn0a,KAAAq4H,MAAAr4H,KAAAg5Z,SAAAv+Y,mBACAza,KAAA0c,IAAAnE,MAAAkC,gBAAAza,KAAAya,kBAEA05D,YAAA,WACAn0E,KAAA0zE,WACA1zE,KAAAu9I,SAAA,sBAAAv9I,MACAA,KAAAge,MAAA,QAAAhe,SAIA+f,QAAA,WACA/f,KAAA84Z,WAAA3tB,QAAAnrY,MACAA,KAAAg5Z,SAAA7tB,QAAAnrY,OAEAggB,cAAA,WACAhgB,KAAA84Z,WAAA2X,WAAAzwa,MACAA,KAAAg5Z,SAAAyX,WAAAzwa,SAmCA,SAAAkD,EAAAqhD,EAAAhlD,GAEA,aACA,IAKA+0E,GAAiB7wE,OALjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,MAAgBE,YAAA,eAAAc,OACzGs7Z,YAAAj/V,EAAAs5K,OACAr5K,cAAAD,EAAAb,UACGn7D,OAAAg8D,EAAAwkV,aAAAxkV,EAAA/hE,WAA2CiI,gBAAA85D,EAAA95D,kBAAuCpD,OAAU2sJ,KAAA,WAAAohE,SAAA,MAAkC1lN,IAAKm1D,MAAAN,EAAAJ,YAAAmwG,WAAA/vG,EAAA2/V,aAAA3mY,MAAAgnC,EAAA2/V,aAAAjuM,KAAA1xJ,EAAA4/V,aAAAxtN,WAAApyI,EAAA4/V,gBAAsI,WAAA5/V,EAAAukV,WAAA1gZ,SAAAmqK,eAAAhuG,EAAAykV,SAAAC,UAAA1kV,EAAAz7D,OAAAoB,MAAAhD,EAAA,cAAqHG,OAAO0uM,OAAA,OAAAhrK,UAAA,WAAqC7jC,EAAA,OAAYG,OAAO20O,KAAA,WAAiBA,KAAA,YAAgBz3K,EAAAQ,GAAA,aAAA79D,EAAA,OAAgCksP,aAAah1P,SAAA,WAAAvI,KAAA,IAAAmM,IAAA,IAAAiH,OAAA,OAAAD,MAAA,OAAAH,QAAA,eAAAu7Z,aAAA,aAAA7+Y,QAAA,YAAiJg/C,EAAAQ,GAAA,kBAAAR,EAAAQ,GAAA,WAAAR,EAAAQ,GAAA,eAE9oBp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAkpa,EAAA90a,EAAA,IAEA+0a,GAEAnpa,EAFAkpa,IAEsClpa,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Empa,EAAAv7Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA+/Y,EAAAv7Z,QAAAnW,KAAA0xa,EAAAv7Z,UAGA5V,EAAA4V,QAAAu7Z,EAAAv7Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAgta,EAAAh1a,EAAA,IACAi1a,EAAAj1a,EAAA6+C,EAAAm2X,GACAE,EAAAl1a,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAqhW,EAAAj/Z,EACAk/Z,EAAA,GATA,EAEA,KAEA,KAEA,MAUAlwX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAaAjuE,EAAA4V,SACAnW,KAAA,kBAEA2/K,cAAA,kBAEAlvG,QAAA,YACAvwE,OACAoX,OACA1W,KAAA2N,SAGAL,KAAA,WACA,OACA07S,YAAA,KAIA3wS,UACA64Z,aAAA,WACA,IAAAn/Y,EAAA,GACAgU,EAAAvpC,KAAAmsN,QACA,GAAAnsN,KAAAg5Z,SAAAC,SAAA,UACA,KAAA1vX,GAAA,WAAAA,EAAAnxB,SAAAmqK,eACA,cAAAh5I,EAAAnxB,SAAAmqK,gBACAhtJ,GAAA,IAEAgU,IAAA4iL,QAEA,OAAA52L,MAOA,SAAAryB,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAA0BC,EAAvClX,KAAuCmX,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,MAAgBE,YAAA,uBAAiCF,EAAA,OAAYE,YAAA,4BAAAmB,OAAgDi0S,YAA5KxsT,KAA4K00a,aAAA,QAA5K10a,KAAmN8Y,OAAAoB,MAAnNla,KAAmN+0E,GAAA,UAAnN/0E,KAAmN6X,GAAnN7X,KAAmNokK,GAAnNpkK,KAAmNka,UAAA,GAAAhD,EAAA,MAAnNlX,KAAmN+0E,GAAA,kBAE5Np9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAy4N,EAAArkO,EAAA,IAEAskO,GAEA14N,EAFAy4N,IAEsCz4N,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E04N,EAAA9qN,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAsvM,EAAA9qN,QAAAnW,KAAAihO,EAAA9qN,UAGA5V,EAAA4V,QAAA8qN,EAAA9qN,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAw8N,EAAAxkO,EAAA,IACAykO,EAAAzkO,EAAA6+C,EAAA2lL,GACAE,EAAA1kO,EAAA,IAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA6wJ,EAAAzuN,EACA0uN,EAAA,GATA,EAEA,KAEA,KAEA,MAUA1/K,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAixG,EAAAnrG,EAFA33E,EAAA,IAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAMA6kO,EAAAltJ,EAFA33E,EAAA,KAMA43E,EAAAD,EAFA33E,EAAA,KAIA8kO,EAAA9kO,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,UAEA2/K,cAAA,UAEAD,QAAAD,EAAAtpK,QAAAorN,EAAAprN,SAEAurN,cAAA,EAEAjxJ,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAjI,KAAA,WACA,OACA8xK,kBAAAl1K,IAAA1N,KAAAuH,OAAA,OAAAvH,KAAAuH,MAAA,GAAAvH,KAAAuH,MACAg9N,qBACAC,UAAA,EACAC,SAAA,EACAC,iBAAA,EACAC,uBAAA,OAKA7hO,OACAyE,OAAA4J,OAAA4J,QACA8W,KAAA1gB,OACAqL,OAAArL,OACAyzN,KAAAzzN,OACAuiE,SAAAj6D,QACAorN,SAAAprN,QACAjW,MACAA,KAAA2N,OACA4H,QAAA,QAEA+rN,UACAthO,MAAAiW,QAAA7P,QACAmP,SAAA,GAEAgsN,cACAvhO,KAAA2N,OACA4H,QAAA,OAEAisN,eACAxhO,KAAAiW,QACAV,SAAA,GAEAksN,WAAA9zN,OACA+zN,WAAA/zN,OACAsB,MAAAtB,OACAg0N,WACA3hO,KAAAiW,QACAV,SAAA,GAEAqsN,SAAAj0N,QAGA0K,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCsxJ,cAAA,WACA,OAAArlO,KAAAuzE,WAAAvzE,KAAAuzE,WAAA8xJ,cAAA,IAEAC,eAAA,WACA,QAAAtlO,KAAAszE,QAAAtzE,KAAAszE,OAAAiyJ,YAEAC,aAAA,WACA,OACAC,WAAA,kBACArhF,QAAA,uBACArpE,MAAA,wBACO/6E,KAAAqlO,gBAEPK,cAAA,WACA,SAAAvuJ,EAAAp+D,YAAoC/Y,KAAAukO,mBAA2B/nN,OAAAxc,KAAAwc,UAE/DmpN,UAAA,WACA,OAAA3lO,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtE+zM,cAAA,WACA,OAAA5lO,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAEhDmyJ,UAAA,WACA,OAAA7lO,KAAAmlO,YAAAnlO,KAAA0zE,WAAA1zE,KAAA6kO,UAAA,KAAA7kO,KAAA4iL,eAAA5iL,KAAAykO,SAAAzkO,KAAAwkO,YAIAjpN,OACAhU,MAAA,SAAAgG,EAAAu4N,GACA9lO,KAAA+lO,gBAAAx4N,KAIAwO,SACAwxB,MAAA,YACAvtC,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAunN,UAAAz4L,SAEA04L,KAAA,YACAjmO,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAunN,UAAAC,QAEAC,mBAAA,WACA,OACApjO,OACA0wE,KAAA,0DACA2yJ,gBAAA,6BAEA5sN,QACAs7D,MAAA,uBAIAsyI,WAAA,SAAA5vJ,GACAv3D,KAAAykO,SAAA,EACAzkO,KAAAge,MAAA,OAAAu5C,GACAv3D,KAAAglO,eACAhlO,KAAAu9I,SAAA,6BAAAv9I,KAAA4iL,gBAGAE,OAAA,YACA9iL,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAunN,UAAAljD,UAEAsjD,eAAA,WACA,IAAApmO,KAAAk5E,UAAA,CACA,IAAA4rJ,EAAA9kO,KAAA8kO,SAGA,gBAFA9kO,KAAAwD,KAGA,GAAAshO,EAAA,CAMA,IAAAuB,EAAAvB,EAAAuB,QACAC,EAAAxB,EAAAwB,QAEAtmO,KAAAukO,mBAAA,EAAAH,EAAArrN,SAAA/Y,KAAAye,MAAAunN,SAAAK,EAAAC,QARAtmO,KAAAukO,mBACAgC,WAAA,EAAAnC,EAAArrN,SAAA/Y,KAAAye,MAAAunN,UAAAO,aASArf,YAAA,SAAA3vJ,GACAv3D,KAAAykO,SAAA,EACAzkO,KAAAge,MAAA,QAAAu5C,IAEAivK,kBAAA,SAAAjvK,GACA,sBAAAA,EAAA/zD,KACAxD,KAAA0kO,iBAAA,EACA1kO,KAAA4iL,aAAA5iL,KAAA2kO,uBACA3kO,KAAA2kO,uBAAA,KACA3kO,KAAAymO,YAAAlvK,OACO,CACP,IAAAlmB,EAAAkmB,EAAAh3D,OAAAgH,MACAm/N,EAAAr1L,IAAApwC,OAAA,OACAjB,KAAA0kO,kBAAA,EAAAL,EAAAsC,UAAAD,GACA1mO,KAAA0kO,iBAAA,qBAAAntK,EAAA/zD,OACAxD,KAAA2kO,uBAAAtzL,KAIAo1L,YAAA,SAAAlvK,GACA,IAAAhwD,EAAAgwD,EAAAh3D,OAAAgH,MACAvH,KAAA+lO,gBAAAx+N,GACAvH,KAAA0kO,iBACA1kO,KAAAge,MAAA,QAAAzW,IAEAq/N,aAAA,SAAArvK,GACAv3D,KAAAge,MAAA,SAAAu5C,EAAAh3D,OAAAgH,QAEAw+N,gBAAA,SAAAx+N,GACAvH,KAAA0kO,iBAAAn9N,IAAAvH,KAAA2kO,yBACA3kO,KAAA4iL,aAAAr7K,EACAvH,KAAA0kO,kBACA1kO,KAAAuc,UAAAvc,KAAAomO,gBACApmO,KAAAglO,eAAAhlO,KAAA4iL,eAAA5iL,KAAAuH,OACAvH,KAAAu9I,SAAA,+BAAAh2I,OAGAs/N,eAAA,SAAAC,GACA,IAAAC,KAAAzkO,MAAAoJ,KAAA1L,KAAA0c,IAAAmkC,iBAAA,cAAAimL,QACA,GAAAC,EAAA9lO,OAAA,CAEA,IADA,IAAAR,EAAA,KACAM,EAAA,EAAqBA,EAAAgmO,EAAA9lO,OAAmBF,IACxC,GAAAgmO,EAAAhmO,GAAAwrC,aAAAvsC,KAAA0c,IAAA,CACAjc,EAAAsmO,EAAAhmO,GACA,MAGA,GAAAN,EAAA,CACA,IAKAumO,GAJAC,OAAA,SACAC,OAAA,WAGAJ,GACA9mO,KAAA8Y,OAAAkuN,GACAvmO,EAAA8X,MAAA0f,UAAA,0BAAA6uM,EAAA,QAAA9mO,KAAA0c,IAAA6mC,cAAA,oBAAAyjL,GAAAlyL,YAAA,MAEAr0C,EAAA2+C,gBAAA,YAGA+nL,iBAAA,WACAnnO,KAAA6mO,eAAA,UACA7mO,KAAA6mO,eAAA,WAEAzhL,MAAA,WACAplD,KAAAge,MAAA,YACAhe,KAAAge,MAAA,aACAhe,KAAAge,MAAA,SACAhe,KAAA+lO,gBAAA,IACA/lO,KAAAutC,UAIAztB,QAAA,WACA9f,KAAAikL,IAAA,cAAAjkL,KAAA8iL,SAEA/iK,QAAA,WACA/f,KAAAomO,iBACApmO,KAAAmnO,oBAEAC,QAAA,WACApnO,KAAAuc,UAAAvc,KAAAmnO,qBAuGA,SAAAjkO,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4V,QAuBA,SAAAuuN,GACA,IAAAjB,EAAAvhO,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,KACAwhO,EAAAxhO,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,QAEAyiO,IACAA,EAAA13N,SAAAC,cAAA,YACAD,SAAAG,KAAAC,YAAAs3N,IAGA,IAAAC,EAzBA,SAAAF,GACA,IAAA/uN,EAAA5I,OAAAmtC,iBAAAwqL,GAEAx+K,EAAAvwC,EAAAkvN,iBAAA,cAEAC,EAAAliN,WAAAjN,EAAAkvN,iBAAA,mBAAAjiN,WAAAjN,EAAAkvN,iBAAA,gBAEAE,EAAAniN,WAAAjN,EAAAkvN,iBAAA,wBAAAjiN,WAAAjN,EAAAkvN,iBAAA,qBAMA,OAAUG,aAJVC,EAAAl3N,IAAA,SAAA/N,GACA,OAAAA,EAAA,IAAA2V,EAAAkvN,iBAAA7kO,KACGwD,KAAA,KAEOshO,cAAAC,aAAA7+K,aAYVg/K,CAAAR,GACAI,EAAAF,EAAAE,YACAC,EAAAH,EAAAG,WACA7+K,EAAA0+K,EAAA1+K,UACA8+K,EAAAJ,EAAAI,aAEAL,EAAA7gM,aAAA,QAAAkhM,EAAA,IAAwDG,GACxDR,EAAAhgO,MAAA+/N,EAAA//N,OAAA+/N,EAAAU,aAAA,GAEA,IAAA/uN,EAAAsuN,EAAA1lL,aACA9wC,KAEA,eAAA+3C,EACA7vC,GAAA0uN,EACG,gBAAA7+K,IACH7vC,GAAAyuN,GAGAH,EAAAhgO,MAAA,GACA,IAAA0gO,EAAAV,EAAA1lL,aAAA6lL,EAEA,UAAArB,EAAA,CACA,IAAAE,EAAA0B,EAAA5B,EACA,eAAAv9K,IACAy9K,IAAAmB,EAAAC,GAEA1uN,EAAAlR,KAAAE,IAAAs+N,EAAAttN,GACAlI,EAAAw1N,YAAA,KAEA,UAAAD,EAAA,CACA,IAAA4B,EAAAD,EAAA3B,EACA,eAAAx9K,IACAo/K,IAAAR,EAAAC,GAEA1uN,EAAAlR,KAAAC,IAAAkgO,EAAAjvN,GAKA,OAHAlI,EAAAkI,SAAA,KACAsuN,EAAAh7L,YAAAg7L,EAAAh7L,WAAAC,YAAA+6L,GACAA,EAAA,KACAx2N,GAtEA,IAAAw2N,OAAA,EAEAQ,EAAA,sMAEAF,GAAA,2NAuEA,SAAA3kO,EAAAqhD,EAAAhlD,GAEA,aACA,IAaA+0E,GAAiB7wE,OAbjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBgB,OAC1G,aAAAq8D,EAAA/wE,KAAA,yBACA+wE,EAAAoxJ,UAAA,aAAApxJ,EAAAoxJ,UAAA,IAEAnxJ,cAAAD,EAAAqxJ,cACAwC,iBAAA7zJ,EAAAz7D,OAAAuvN,SAAA9zJ,EAAAz7D,OAAAuzB,OACAi8L,yBAAA/zJ,EAAAz7D,OAAAuzB,OACAk8L,0BAAAh0J,EAAAz7D,OAAAuvN,QACAG,mBAAAj0J,EAAAz7D,OAAAouN,QAAA3yJ,EAAA2wJ,WACAuD,mBAAAl0J,EAAAz7D,OAAAmuN,QAAA1yJ,EAAA0wJ,YAAA1wJ,EAAA4wJ,YAEAzlN,IAAQ4kK,WAAA,SAAAC,GAA8BhwG,EAAAiwJ,UAAA,GAAoB7d,WAAA,SAAApiC,GAA+BhwG,EAAAiwJ,UAAA,MAAuB,aAAAjwJ,EAAA/wE,MAAA+wE,EAAAz7D,OAAA,QAAA5B,EAAA,OAA4DE,YAAA,4BAAsCm9D,EAAAQ,GAAA,eAAAR,EAAAO,KAAA,aAAAP,EAAA/wE,KAAA0T,EAAA,QAAAq9D,EAAAm0J,IAA8E9vN,IAAA,QAAAxB,YAAA,kBAAAC,OAAiD+tN,SAAA7wJ,EAAA6wJ,SAAA5hO,KAAA+wE,EAAA/wE,KAAAkwE,SAAAa,EAAAqxJ,cAAAf,SAAAtwJ,EAAAswJ,SAAA8D,aAAAp0J,EAAAwwJ,aAAA6D,aAAAr0J,EAAA9hE,OAAoJo2N,UAAWthO,MAAAgtE,EAAAquG,cAAyBljK,IAAKopN,iBAAAv0J,EAAAiyJ,kBAAAuC,kBAAAx0J,EAAAiyJ,kBAAAwC,eAAAz0J,EAAAiyJ,kBAAAt8N,MAAAqqE,EAAAkyJ,YAAAl5L,MAAAgnC,EAAA2yI,YAAA+e,KAAA1xJ,EAAA4yI,WAAA8hB,OAAA10J,EAAAqyJ,eAA2N,QAAAryJ,EAAA20J,QAAA,IAAA30J,EAAAO,KAAAP,EAAAz7D,OAAAouN,QAAA3yJ,EAAA2wJ,WAAAhuN,EAAA,QAAsFE,YAAA,qBAA+Bm9D,EAAAQ,GAAA,UAAAR,EAAA,WAAAr9D,EAAA,KAA4CE,YAAA,iBAAAc,MAAAq8D,EAAA2wJ,aAAkD3wJ,EAAAO,MAAA,GAAAP,EAAAO,KAAAP,EAAAz7D,OAAAmuN,QAAA1yJ,EAAA0wJ,YAAA1wJ,EAAAsxJ,WAAAtxJ,EAAA8wJ,eAAA9wJ,EAAA+wJ,eAAApuN,EAAA,QAAqIE,YAAA,qBAA+BF,EAAA,QAAaE,YAAA,2BAAqCm9D,EAAAsxJ,UAAgH3uN,EAAA,KAAoBE,YAAA,sDAAAsI,IAAsEm1D,MAAAN,EAAAnvB,UAA1MmvB,EAAAQ,GAAA,UAAAR,EAAA,WAAAr9D,EAAA,KAA8DE,YAAA,iBAAAc,MAAAq8D,EAAA0wJ,aAAkD1wJ,EAAAO,OAA6G,GAAAP,EAAA,cAAAr9D,EAAA,KAAkCE,YAAA,iBAAAc,OAAA,yBAAAq8D,EAAAixJ,gBAAgFjxJ,EAAAO,OAAAP,EAAAO,KAAAP,EAAAz7D,OAAA,OAAA5B,EAAA,OAAoDE,YAAA,2BAAqCm9D,EAAAQ,GAAA,cAAAR,EAAAO,MAAA59D,EAAA,WAAAq9D,EAAAm0J,IAAuD9vN,IAAA,WAAAxB,YAAA,qBAAAmB,MAAAg8D,EAAA,cAAAl9D,OAAiF+tN,SAAA7wJ,EAAA6wJ,SAAA1xJ,SAAAa,EAAAqxJ,cAAAf,SAAAtwJ,EAAAswJ,SAAA+D,aAAAr0J,EAAA9hE,OAAoGo2N,UAAWthO,MAAAgtE,EAAAquG,cAAyBljK,IAAKopN,iBAAAv0J,EAAAiyJ,kBAAAuC,kBAAAx0J,EAAAiyJ,kBAAAwC,eAAAz0J,EAAAiyJ,kBAAAt8N,MAAAqqE,EAAAkyJ,YAAAl5L,MAAAgnC,EAAA2yI,YAAA+e,KAAA1xJ,EAAA4yI,WAAA8hB,OAAA10J,EAAAqyJ,eAA2N,WAAAryJ,EAAA20J,QAAA,SAEzhEvxN,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA+kS,EAAA3wS,EAAA,KAEA4wS,GAEAhlS,EAFA+kS,IAEsC/kS,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EglS,EAAAp3R,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA47Q,EAAAp3R,QAAAnW,KAAAutS,EAAAp3R,UAGA5V,EAAA4V,QAAAo3R,EAAAp3R,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA8oS,EAAA9wS,EAAA,KACA+wS,EAAA/wS,EAAA6+C,EAAAiyP,GACAE,EAAAhxS,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAm9N,EAAA/6R,EACAg7R,EAAA,GATA,EAEA,KAEA,KAEA,MAUAhsP,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAyyJ,EAAA3sJ,EAFA33E,EAAA,IAMAkxS,EAAAv5N,EAFA33E,EAAA,KAMAmxS,EAAAx5N,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,gBACA0/K,SAAA,EAAAmuH,EAAA13R,SAAA,UACAs6D,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAGAqrK,YACAusH,YAAAD,EAAA33R,SAEAqb,YACAw8Q,QAAA/sE,EAAA9qN,SAEAjW,OACAwkB,MACA9jB,KAAAuX,OACAhC,QAAA,GAEA9Q,KACAzE,KAAAuX,OACAhC,QAAA0gC,KAEAzxC,KACAxE,KAAAuX,OACAhC,SAAA0gC,KAEAlyC,SACAmsE,SAAAj6D,QACAoY,KAAA1gB,OACA0/R,UACArtS,KAAAiW,QACAV,SAAA,GAEA+3R,kBACAttS,KAAA2N,OACA4H,QAAA,IAEAnW,KAAAuO,OACAsB,MAAAtB,OACA9H,WACA7F,KAAAuX,OACA8nJ,UAAA,SAAAt1J,GACA,OAAAA,GAAA,GAAAA,IAAAqsE,SAAArsE,EAAA,OAIAuD,KAAA,WACA,OACA8xK,aAAA,IAIArnK,OACAhU,OACAmtM,WAAA,EACAj5L,QAAA,SAAAlU,GACA,IAAA44L,OAAAzyL,IAAAnG,IAAAwT,OAAAxT,GACA,QAAAmG,IAAAyyL,EAAA,CACA,GAAA11L,MAAA01L,GACA,YAEAzyL,IAAA1N,KAAAqJ,YACA82L,EAAAngM,KAAA+wS,YAAA5wG,EAAAngM,KAAAqJ,YAGA82L,GAAAngM,KAAAiI,MAAAk4L,EAAAngM,KAAAiI,KACAk4L,GAAAngM,KAAAgI,MAAAm4L,EAAAngM,KAAAgI,KACAhI,KAAA4iL,aAAAud,EACAngM,KAAAge,MAAA,QAAAmiL,MAIAtkL,UACAm1R,YAAA,WACA,OAAAhxS,KAAAixS,UAAAjxS,KAAAuH,MAAAvH,KAAAsnB,MAAAtnB,KAAAgI,KAEAkpS,YAAA,WACA,OAAAlxS,KAAAmxS,UAAAnxS,KAAAuH,MAAAvH,KAAAsnB,MAAAtnB,KAAAiI,KAEAmpS,aAAA,WACA,IAAA7pS,EAAAvH,KAAAuH,MACA+f,EAAAtnB,KAAAsnB,KACA+pR,EAAArxS,KAAAqxS,aACAhoS,EAAArJ,KAAAqJ,UAEAioS,EAAAD,EAAA/pR,GACA,YAAA5Z,IAAArE,GACAioS,EAAAjoS,GACAoM,QAAAC,KAAA,2FAEArM,GAEAtB,KAAAE,IAAAopS,EAAA9pS,GAAA+pS,IAGAC,gBAAA,WACA,gBAAAvxS,KAAA8wS,kBAEAh9N,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCy9N,gBAAA,WACA,OAAAxxS,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtE4/Q,oBAAA,WACA,OAAAzxS,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAEhDg+N,kBAAA,WACA,IAAA9uH,EAAA5iL,KAAA4iL,aACA,uBAAAA,QAAAl1K,IAAA1N,KAAAqJ,UACAu5K,EAAAt7K,QAAAtH,KAAAqJ,WAEAu5K,IAIA7mK,SACAg1R,YAAA,SAAAriR,EAAArlB,GAEA,YADAqE,IAAArE,MAAArJ,KAAAoxS,cACA5rR,sBAAAzK,OAAA2T,GAAApnB,QAAA+B,MAEAgoS,aAAA,SAAA9pS,GACA,QAAAmG,IAAAnG,EAAA,SACA,IAAAoqS,EAAApqS,EAAAK,WACAgqS,EAAAD,EAAA7xS,QAAA,KACAuJ,EAAA,EAIA,OAHA,IAAAuoS,IACAvoS,EAAAsoS,EAAA1wS,OAAA2wS,EAAA,GAEAvoS,GAEA8nS,UAAA,SAAA5jS,EAAA+Z,GACA,oBAAA/Z,QAAAG,IAAAH,EAAA,OAAAvN,KAAA4iL,aAEA,IAAAivH,EAAA9pS,KAAAI,IAAA,GAAAnI,KAAAoxS,cAEA,OAAApxS,KAAA+wS,aAAAc,EAAAtkS,EAAAskS,EAAAvqR,GAAAuqR,IAEAZ,UAAA,SAAA1jS,EAAA+Z,GACA,oBAAA/Z,QAAAG,IAAAH,EAAA,OAAAvN,KAAA4iL,aAEA,IAAAivH,EAAA9pS,KAAAI,IAAA,GAAAnI,KAAAoxS,cAEA,OAAApxS,KAAA+wS,aAAAc,EAAAtkS,EAAAskS,EAAAvqR,GAAAuqR,IAEAC,SAAA,WACA,IAAA9xS,KAAAyxS,sBAAAzxS,KAAAkxS,YAAA,CACA,IAAA3pS,EAAAvH,KAAAuH,OAAA,EACA44L,EAAAngM,KAAAmxS,UAAA5pS,EAAAvH,KAAAsnB,MACAtnB,KAAA+lO,gBAAA5lC,KAEA4xG,SAAA,WACA,IAAA/xS,KAAAyxS,sBAAAzxS,KAAAgxS,YAAA,CACA,IAAAzpS,EAAAvH,KAAAuH,OAAA,EACA44L,EAAAngM,KAAAixS,UAAA1pS,EAAAvH,KAAAsnB,MACAtnB,KAAA+lO,gBAAA5lC,KAEAgnB,WAAA,SAAA5vJ,GACAv3D,KAAAge,MAAA,OAAAu5C,GACAv3D,KAAAye,MAAAvU,MAAA67N,gBAAA/lO,KAAA0xS,oBAEAxqF,YAAA,SAAA3vJ,GACAv3D,KAAAge,MAAA,QAAAu5C,IAEAwuK,gBAAA,SAAA5lC,GACA,IAAAhd,EAAAnjL,KAAA4iL,aACA,iBAAAud,QAAAzyL,IAAA1N,KAAAqJ,YACA82L,EAAAngM,KAAA+wS,YAAA5wG,EAAAngM,KAAAqJ,YAEA82L,GAAAngM,KAAAiI,MAAAk4L,EAAAngM,KAAAiI,KACAk4L,GAAAngM,KAAAgI,MAAAm4L,EAAAngM,KAAAgI,KACAm7K,IAAAgd,GAIAngM,KAAAge,MAAA,QAAAmiL,GACAngM,KAAAge,MAAA,SAAAmiL,EAAAhd,GACAnjL,KAAA4iL,aAAAud,GALAngM,KAAAye,MAAAvU,MAAA67N,gBAAA/lO,KAAA0xS,oBAOAM,kBAAA,SAAAzqS,GACA,IAAA44L,EAAA,KAAA54L,OAAAmG,EAAAqN,OAAAxT,GACAkD,MAAA01L,IAAA,KAAA54L,GACAvH,KAAA+lO,gBAAA5lC,KAIApgL,QAAA,WACA,IAAAkyR,EAAAjyS,KAAAye,MAAAvU,MAAAuU,MAAAvU,MACA+nS,EAAAvrQ,aAAA,qBACAurQ,EAAAvrQ,aAAA,gBAAA1mC,KAAAiI,KACAgqS,EAAAvrQ,aAAA,gBAAA1mC,KAAAgI,KACAiqS,EAAAvrQ,aAAA,gBAAA1mC,KAAA4iL,cACAqvH,EAAAvrQ,aAAA,gBAAA1mC,KAAAyxS,sBAEArqE,QAAA,WACApnO,KAAAye,OAAAze,KAAAye,MAAAvU,OACAlK,KAAAye,MAAAvU,MAAAuU,MAAAvU,MACAw8B,aAAA,gBAAA1mC,KAAA4iL,iBAkDA,SAAA1/K,EAAAqhD,EAAAhlD,GAEA,aACA,IAQA+0E,GAAiB7wE,OARjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBgB,OAC1G,kBACAq8D,EAAAi9N,gBAAA,oBAAAj9N,EAAAi9N,gBAAA,IACKh9N,cAAAD,EAAAk9N,sBACAU,uBAAA59N,EAAAs8N,WACAuB,oBAAA79N,EAAAg9N,kBACL7xR,IAAQihN,UAAA,SAAAp8C,GAA6BA,EAAAoN,qBAA2Bp9G,EAAA,SAAAr9D,EAAA,QAA4BktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,4BAAAc,OAAiDs8D,cAAAD,EAAAy8N,aAA+B35R,OAAQ2sJ,KAAA,UAAgBtkJ,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAw9N,SAAAxtH,OAAuBrtK,EAAA,KAAUgB,MAAA,YAAAq8D,EAAAg9N,gBAAA,0BAAoEh9N,EAAAO,KAAAP,EAAA,SAAAr9D,EAAA,QAAuCktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,4BAAAc,OAAiDs8D,cAAAD,EAAA28N,aAA+B75R,OAAQ2sJ,KAAA,UAAgBtkJ,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAu9N,SAAAvtH,OAAuBrtK,EAAA,KAAUgB,MAAA,YAAAq8D,EAAAg9N,gBAAA,uBAAiEh9N,EAAAO,KAAA59D,EAAA,YAA4B0B,IAAA,QAAAvB,OAAmB9P,MAAAgtE,EAAAm9N,kBAAAh+N,SAAAa,EAAAk9N,oBAAA5/Q,KAAA0iD,EAAAi9N,gBAAAvpS,IAAAssE,EAAAtsE,IAAAD,IAAAusE,EAAAvsE,IAAApF,KAAA2xE,EAAA3xE,KAAA6P,MAAA8hE,EAAA9hE,OAA0JiN,IAAKumN,KAAA1xJ,EAAA4yI,WAAA55K,MAAAgnC,EAAA2yI,YAAA+hB,OAAA10J,EAAAy9N,mBAA6E18C,UAAW+8C,SAAA,SAAA9tH,GAA4B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAu9N,SAAAvtH,IAAqB,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAuE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAw9N,SAAAxtH,SAAwB,IAE5hD5sK,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAwpa,EAAAp1a,EAAA,KAEAq1a,GAEAzpa,EAFAwpa,IAEsCxpa,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eypa,EAAA77Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAqgZ,EAAA77Z,QAAAnW,KAAAgya,EAAA77Z,UAGA5V,EAAA4V,QAAA67Z,EAAA77Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAsta,EAAAt1a,EAAA,KACAu1a,EAAAv1a,EAAA6+C,EAAAy2X,GACAE,EAAAx1a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA2hW,EAAAv/Z,EACAw/Z,EAAA,GATA,EAEA,KAEA,KAEA,MAUAxwX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,UAEA0/K,QAAAD,EAAAtpK,SAEAs6D,QACAC,QACAv6D,QAAA,IAGAw6D,YACAx6D,QAAA,KAIAwpK,cAAA,UAEAz/K,OACAyE,SACAkL,SACAihE,SAAAj6D,QACA7W,KAAAuO,OACAoqS,OAAA9hS,QACAoY,KAAA1gB,QAGAL,KAAA,WACA,OACAy8B,OAAA,IAIA1xB,UACA+8C,QAAA,WAEA,IADA,IAAArvB,EAAAvpC,KAAAmsN,QACA5iL,GAAA,CACA,oBAAAA,EAAAnxB,SAAAmqK,cAIA,OADAviL,KAAAg1a,YAAAzrY,GACA,EAHAA,IAAA4iL,QAMA,UAGA50L,OACAvzB,IAAA,WACA,OAAAhE,KAAA44D,QAAA54D,KAAAg1a,YAAAzta,MAAAvH,KAAAuH,OAEAy9C,IAAA,SAAAz3C,GACAvN,KAAA44D,QACA54D,KAAAu9I,SAAA,wBAAAhwI,IAEAvN,KAAAge,MAAA,QAAAzQ,KAIAumE,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCkhW,UAAA,WACA,IAAAC,EAAAl1a,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAkFpiD,KAClF,OAAA7xB,KAAA44D,SAAA54D,KAAAg1a,YAAAG,gBAAAD,GAEAE,WAAA,WACA,OAAAp1a,KAAA44D,QAAA54D,KAAAg1a,YAAAthW,UAAA1zE,KAAA0zE,WAAA1zE,KAAAszE,YAA4FI,SAAA1zE,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAE5IitM,SAAA,WACA,OAAA3gR,KAAAo1a,YAAA,EAAAp1a,KAAA44D,QAAA54D,KAAAu3B,QAAAv3B,KAAAyS,MAAA,SAIAsJ,SACA6qN,aAAA,WACA,IAAA/pN,EAAA7c,KAEAA,KAAAuc,UAAA,WACAM,EAAAmB,MAAA,SAAAnB,EAAA0a,OACA1a,EAAA+7C,SAAA/7C,EAAA0gI,SAAA,8BAAA1gI,EAAA0a,aAkDA,SAAAr0B,EAAAqhD,EAAAhlD,GAEA,aACA,IAWA+0E,GAAiB7wE,OAXjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAmBE,YAAA,WAAAc,OAC5Gq8D,EAAAgnO,QAAAhnO,EAAA0gW,UAAA,aAAA1gW,EAAA0gW,UAAA,IACKzgW,cAAAD,EAAA6gW,aACAhxH,WAAA7vO,EAAAhnC,QACA8nY,cAAA9gW,EAAAgnO,SACA+5H,aAAA/gW,EAAAh9C,QAAAg9C,EAAA9hE,QACL4E,OAAW2sJ,KAAA,QAAAuxQ,eAAAhhW,EAAAh9C,QAAAg9C,EAAA9hE,MAAAq8Z,gBAAAv6V,EAAA6gW,WAAAhwM,SAAA7wJ,EAAAosM,UAA6GjhQ,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAh9C,MAAAg9C,EAAA6gW,WAAA7gW,EAAAh9C,MAAAg9C,EAAA9hE,UAAqDyE,EAAA,QAAaE,YAAA,kBAAAc,OAClWs8D,cAAAD,EAAA6gW,WACAE,aAAA/gW,EAAAh9C,QAAAg9C,EAAA9hE,SACMyE,EAAA,QAAaE,YAAA,oBAA8BF,EAAA,SAAcktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoEhI,YAAA,qBAAAC,OAA0C7T,KAAA,QAAAqjN,cAAA,OAAAjkN,KAAA2xE,EAAA3xE,KAAA8wE,SAAAa,EAAA6gW,WAAAhwM,SAAA,MAA8FyD,UAAWthO,MAAAgtE,EAAA9hE,MAAA+ia,QAAAjhW,EAAAo9K,GAAAp9K,EAAAh9C,MAAAg9C,EAAA9hE,QAAwDiN,IAAK6tB,MAAA,SAAAg3I,GAAyBhwG,EAAAhnC,OAAA,GAAiB04L,KAAA,SAAA1hD,GAAyBhwG,EAAAhnC,OAAA,GAAkB07L,QAAA,SAAA1kD,GAA4BhwG,EAAAh9C,MAAAg9C,EAAA9hE,OAAoB8hE,EAAAqyJ,mBAAoB1vN,EAAA,QAAeE,YAAA,kBAAAsI,IAAkC2yR,QAAA,SAAA9tH,GAA2BA,EAAAC,sBAA4BjwG,EAAAQ,GAAA,WAAAR,EAAAz7D,OAAAC,QAAAw7D,EAAAO,MAAAP,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA9hE,UAAA,MAEhlBkF,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA6pa,EAAAz1a,EAAA,KAEAk2a,GAEAtqa,EAFA6pa,IAEsC7pa,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Esqa,EAAA18Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkhZ,EAAA18Z,QAAAnW,KAAA6ya,EAAA18Z,UAGA5V,EAAA4V,QAAA08Z,EAAA18Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAmua,EAAAn2a,EAAA,KACAo2a,EAAAp2a,EAAA6+C,EAAAs3X,GACAE,EAAAr2a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAwiW,EAAApga,EACAqga,EAAA,GATA,EAEA,KAEA,KAEA,MAUArxX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA+wQ,EAAAtyQ,OAAAi1O,QACAg3L,KAAA,GACAC,GAAA,GACAC,MAAA,GACAC,KAAA,KAWA7ya,EAAA4V,SACAnW,KAAA,eAEA2/K,cAAA,eAEAlvG,QACAE,YACAx6D,QAAA,KAIAupK,QAAAD,EAAAtpK,SAEAjW,OACAyE,SACAsqB,KAAA1gB,OACAuG,KAAAvG,OACAg1Q,UAAAh1Q,OACAuiE,SAAAj6D,SAGAoC,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCohW,eAAA,WACA,OAAAn1a,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,OAItE/R,QAAA,WACA,IAAAjD,EAAA7c,KAEAA,KAAAikL,IAAA,wBAAA18K,GACAsV,EAAAmB,MAAA,SAAAzW,MAGAwY,QAAA,WAEA,IAAAk2Z,EAAAj2a,KAAA0c,IAAAmkC,iBAAA,gBACAsoR,EAAAnpU,KAAA0c,IAAAmkC,iBAAA,uBACAztC,KAAA1H,KAAAuqa,EAAA,SAAAC,GACA,OAAAA,EAAAV,WACKrsG,IACLA,EAAAxoD,SAAA,IAIA5kQ,SACAo6Z,cAAA,SAAAhya,GAEA,IAAA5D,EAAA4D,EAAA5D,OACAwgD,EAAA,UAAAxgD,EAAAqzK,SAAA,8BACAqiQ,EAAAj2a,KAAA0c,IAAAmkC,iBAAAE,GACA9/C,EAAAg1a,EAAAh1a,OACA2L,KAAA9M,QAAA4L,KAAAuqa,EAAA11a,GACA61a,EAAAp2a,KAAA0c,IAAAmkC,iBAAA,gBACA,OAAA18C,EAAA+3Q,SACA,KAAAA,EAAA25J,KACA,KAAA35J,EAAA45J,GACA3xa,EAAAqgL,kBACArgL,EAAAwtL,iBACA,IAAA/kL,GACAwpa,EAAAn1a,EAAA,GAAA4zE,QACAuhW,EAAAn1a,EAAA,GAAAssC,UAEA6oY,EAAAxpa,EAAA,GAAAioE,QACAuhW,EAAAxpa,EAAA,GAAA2gC,SAEA,MACA,KAAA2uO,EAAA65J,MACA,KAAA75J,EAAA85J,KACAppa,IAAA3L,EAAA,GACAkD,EAAAqgL,kBACArgL,EAAAwtL,iBACAykP,EAAA,GAAAvhW,QACAuhW,EAAA,GAAA7oY,UAEA6oY,EAAAxpa,EAAA,GAAAioE,QACAuhW,EAAAxpa,EAAA,GAAA2gC,YAQAhyB,OACAhU,MAAA,SAAA+6P,GACAtiQ,KAAAu9I,SAAA,+BAAAv9I,KAAAuH,YAOA,SAAArE,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,iBAAAC,OAAoC2sJ,KAAA,cAAoBtkJ,IAAK2yR,QAA7IryS,KAA6Im2a,iBAA7In2a,KAA0K+0E,GAAA,gBAEnLp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAkra,EAAA92a,EAAA,KAEA+2a,GAEAnra,EAFAkra,IAEsClra,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Emra,EAAAv9Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA+hZ,EAAAv9Z,QAAAnW,KAAA0za,EAAAv9Z,UAGA5V,EAAA4V,QAAAu9Z,EAAAv9Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAgva,EAAAh3a,EAAA,KACAi3a,EAAAj3a,EAAA6+C,EAAAm4X,GACAE,EAAAl3a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAqjW,EAAAjha,EACAkha,EAAA,GATA,EAEA,KAEA,KAEA,MAUAlyX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,gBAEA0/K,QAAAD,EAAAtpK,SAEAs6D,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAjW,OACA2P,SACAihE,SAAAj6D,QACA7W,KAAAuO,QAEAL,KAAA,WACA,OACAy8B,OAAA,IAIA1xB,UACAtU,OACAvD,IAAA,WACA,OAAAhE,KAAAg1a,YAAAzta,OAEAy9C,IAAA,SAAAz9C,GACAvH,KAAAg1a,YAAAh3Z,MAAA,QAAAzW,KAGAyta,YAAA,WAEA,IADA,IAAAzrY,EAAAvpC,KAAAmsN,QACA5iL,GAAA,CACA,oBAAAA,EAAAnxB,SAAAmqK,cAGA,OAAAh5I,EAFAA,IAAA4iL,QAKA,UAEAuqN,YAAA,WACA,OACAj8Z,gBAAAza,KAAAg1a,YAAAt9Z,MAAA,GACAqb,YAAA/yB,KAAAg1a,YAAAt9Z,MAAA,GACAi/Z,UAAA32a,KAAAg1a,YAAAt9Z,KAAA,cAAA1X,KAAAg1a,YAAAt9Z,KAAA,GACAvR,MAAAnG,KAAAg1a,YAAA7uJ,WAAA,KAGAryM,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCliD,KAAA,WACA,OAAA7xB,KAAAg1a,YAAAG,gBAAAn1a,KAAA8zE,kBAAA9zE,KAAAi0E,cAA4FpiD,MAE5FujZ,WAAA,WACA,OAAAp1a,KAAA0zE,UAAA1zE,KAAAg1a,YAAAthW,WAAA1zE,KAAAszE,YAA6EI,UAE7EitM,SAAA,WACA,OAAA3gR,KAAAo1a,YAAA,EAAAp1a,KAAAg1a,YAAAh1a,KAAAuH,QAAAvH,KAAAyS,MAAA,SAIAsJ,SACA6qN,aAAA,WACA,IAAA/pN,EAAA7c,KAEAA,KAAAuc,UAAA,WACAM,EAAA0gI,SAAA,8BAAA1gI,EAAAtV,aA2CA,SAAArE,EAAAqhD,EAAAhlD,GAEA,aACA,IAOA+0E,GAAiB7wE,OAPjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAmBE,YAAA,kBAAAc,OAC5Gq8D,EAAA1iD,KAAA,oBAAA0iD,EAAA1iD,KAAA,IACK2hZ,YAAAj/V,EAAAhtE,QAAAgtE,EAAA9hE,QACA+hE,cAAAD,EAAA6gW,aACAhxH,WAAA7vO,EAAAhnC,QACLl2B,OAAW2sJ,KAAA,QAAAuxQ,eAAAhhW,EAAAhtE,QAAAgtE,EAAA9hE,MAAAq8Z,gBAAAv6V,EAAA6gW,WAAAhwM,SAAA7wJ,EAAAosM,UAA6GjhQ,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAhtE,MAAAgtE,EAAA6gW,WAAA7gW,EAAAhtE,MAAAgtE,EAAA9hE,UAAqDyE,EAAA,SAAcktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoEhI,YAAA,8BAAAC,OAAmD7T,KAAA,QAAAZ,KAAA2xE,EAAA3xE,KAAA8wE,SAAAa,EAAA6gW,WAAAhwM,SAAA,MAAyEyD,UAAWthO,MAAAgtE,EAAA9hE,MAAA+ia,QAAAjhW,EAAAo9K,GAAAp9K,EAAAhtE,MAAAgtE,EAAA9hE,QAAwDiN,IAAKupN,QAAA,SAAA1kD,GAA2BhwG,EAAAhtE,MAAAgtE,EAAA9hE,OAAoB8hE,EAAAqyJ,cAAAr5L,MAAA,SAAAg3I,GAA4ChwG,EAAAhnC,OAAA,GAAiB04L,KAAA,SAAA1hD,GAAyBhwG,EAAAhnC,OAAA,MAAoBr2B,EAAA,QAAaE,YAAA,yBAAAmB,MAAAg8D,EAAAhtE,QAAAgtE,EAAA9hE,MAAA8hE,EAAAmiW,YAAA,KAAAh3Z,IAAkG2yR,QAAA,SAAA9tH,GAA2BA,EAAAC,sBAA4BjwG,EAAAQ,GAAA,WAAAR,EAAAz7D,OAAAC,QAAAw7D,EAAAO,MAAAP,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA9hE,UAAA,MAEt6BkF,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAyra,EAAAr3a,EAAA,KAEAs3a,GAEA1ra,EAFAyra,IAEsCzra,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E0ra,EAAA99Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAsiZ,EAAA99Z,QAAAnW,KAAAi0a,EAAA99Z,UAGA5V,EAAA4V,QAAA89Z,EAAA99Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAuva,EAAAv3a,EAAA,KACAw3a,EAAAx3a,EAAA6+C,EAAA04X,GACAE,EAAAz3a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA4jW,EAAAxha,EACAyha,EAAA,GATA,EAEA,KAEA,KAEA,MAUAzyX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,aAEA0/K,QAAAD,EAAAtpK,SAEAs6D,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAwpK,cAAA,aAEAzxK,KAAA,WACA,OACAmma,WAAA,EACA1pY,OAAA,EACA2pY,iBAAA,IAKAr7Z,UACA0b,OACAvzB,IAAA,WACA,OAAAhE,KAAA44D,QAAA54D,KAAA6+K,WAAAnxK,IAAA1N,KAAAuH,MAAAvH,KAAAuH,MAAAvH,KAAAi3a,WAEAjyX,IAAA,SAAAz3C,GACAvN,KAAA44D,SACA54D,KAAAk3a,iBAAA,OACAxpa,IAAA1N,KAAAqzY,eAAArrY,KAAAuF,EAAAtM,OAAAjB,KAAAqzY,eAAArrY,MAAAhI,KAAAk3a,iBAAA,QAEAxpa,IAAA1N,KAAAqzY,eAAAprY,KAAAsF,EAAAtM,OAAAjB,KAAAqzY,eAAAprY,MAAAjI,KAAAk3a,iBAAA,IAEA,IAAAl3a,KAAAk3a,iBAAAl3a,KAAAu9I,SAAA,2BAAAhwI,MAEAvN,KAAAge,MAAA,QAAAzQ,GACAvN,KAAAi3a,UAAA1pa,KAKA4pa,UAAA,WACA,MAAY,wBAAAvva,SAAA8D,KAAA1L,KAAAu3B,OACZv3B,KAAAu3B,MACO1rB,MAAAC,QAAA9L,KAAAu3B,OACPv3B,KAAAu3B,MAAAz3B,QAAAE,KAAAyS,QAAA,EACO,OAAAzS,KAAAu3B,YAAA7pB,IAAA1N,KAAAu3B,MACPv3B,KAAAu3B,QAAAv3B,KAAAo3a,eADO,GAIPx+W,QAAA,WAEA,IADA,IAAArvB,EAAAvpC,KAAAmsN,QACA5iL,GAAA,CACA,uBAAAA,EAAAnxB,SAAAmqK,cAIA,OADAviL,KAAAqzY,eAAA9pW,GACA,EAHAA,IAAA4iL,QAMA,UAEAttC,MAAA,WACA,OAAA7+K,KAAAqzY,eAAArzY,KAAAqzY,eAAA9rY,MAAAvH,KAAAuH,OAEA6ta,WAAA,WACA,OAAAp1a,KAAA44D,QAAA54D,KAAAqzY,eAAA3/T,UAAA1zE,KAAA0zE,WAAA1zE,KAAAszE,YAA+FI,SAAA1zE,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAE/II,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCsjW,aAAA,WACA,IAAAC,EAAAt3a,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAqFpiD,KACrF,OAAA7xB,KAAA44D,SAAA54D,KAAAqzY,eAAAK,mBAAA4jC,IAIAx0a,OACAyE,SACAkL,SACA8ka,cAAA99Z,QACAi6D,SAAAj6D,QACA+7Z,QAAA/7Z,QACA7W,KAAAuO,OACAima,WAAAjma,OAAA4J,QACAy8Z,YAAArma,OAAA4J,QACArZ,GAAAyP,OACA0/R,SAAA1/R,OACAoqS,OAAA9hS,QACAoY,KAAA1gB,QAGA4K,SACA07Z,WAAA,WACA5ra,MAAAC,QAAA9L,KAAAu3B,SAAA,IAAAv3B,KAAAu3B,MAAAz3B,QAAAE,KAAAyS,OACAzS,KAAAu3B,MAAAh2B,KAAAvB,KAAAyS,OAEAzS,KAAAu3B,MAAAv3B,KAAAo3a,YAAA,GAGAxwM,aAAA,SAAApnN,GACA,IAAA3C,EAAA7c,KAEA,IAAAA,KAAAk3a,gBAAA,CACA,IAAA3va,OAAA,EAEAA,EADAiY,EAAAjf,OAAAi1a,aACA9na,IAAA1N,KAAAo3a,WAAAp3a,KAAAo3a,eAEA1pa,IAAA1N,KAAAw3a,YAAAx3a,KAAAw3a,WAEAx3a,KAAAge,MAAA,SAAAzW,EAAAiY,GACAxf,KAAAuc,UAAA,WACAM,EAAA+7C,SACA/7C,EAAA0gI,SAAA,4BAAA1gI,EAAAw2X,eAAA9rY,aAMAuY,QAAA,WACA9f,KAAAw1a,SAAAx1a,KAAAy3a,cAEA13Z,QAAA,WAEA/f,KAAAu3a,eACAv3a,KAAA0c,IAAAgqB,aAAA,gBAAA1mC,KAAA6wS,WAKAt1R,OACAhU,MAAA,SAAA+6P,GACAtiQ,KAAAu9I,SAAA,8BAAA+kH,OA8DA,SAAAp/P,EAAAqhD,EAAAhlD,GAEA,aACA,IAYA+0E,GAAiB7wE,OAZjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAmBE,YAAA,cAAAc,OAC5Gq8D,EAAAgnO,QAAAhnO,EAAA8iW,aAAA,gBAAA9iW,EAAA8iW,aAAA,IACK7iW,cAAAD,EAAA6gW,aACAC,cAAA9gW,EAAAgnO,SACA+5H,aAAA/gW,EAAA4iW,YACL9/Z,OAAW2sJ,KAAA,WAAAuxQ,eAAAhhW,EAAAgjW,cAAA,QAAAhjW,EAAA4iW,UAAArI,gBAAAv6V,EAAA6gW,WAAA1za,GAAA6yE,EAAA7yE,MAAwHwV,EAAA,QAAaE,YAAA,qBAAAc,OAChJs8D,cAAAD,EAAA6gW,WACAE,aAAA/gW,EAAA4iW,UACAO,mBAAAnjW,EAAAgjW,cACAnzH,WAAA7vO,EAAAhnC,OACKl2B,OAAQk+Z,eAAA,WAAwBr+Z,EAAA,QAAaE,YAAA,uBAAiCm9D,EAAA6iW,WAAA7iW,EAAAijW,WAAAtga,EAAA,SAAgDktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoEhI,YAAA,wBAAAC,OAA6C7T,KAAA,WAAAqjN,cAAA,OAAAjkN,KAAA2xE,EAAA3xE,KAAA8wE,SAAAa,EAAA6gW,WAAAuC,aAAApjW,EAAA6iW,UAAAQ,cAAArjW,EAAAijW,YAAyI3uM,UAAW2sM,QAAA3pa,MAAAC,QAAAyoE,EAAAh9C,OAAAg9C,EAAAoyB,GAAApyB,EAAAh9C,MAAA,SAAAg9C,EAAAo9K,GAAAp9K,EAAAh9C,MAAAg9C,EAAA6iW,YAA6F13Z,IAAKupN,QAAA,SAAA1kD,GAA2B,IAAAszP,EAAAtjW,EAAAh9C,MAAAugZ,EAAAvzP,EAAAhkL,OAAAw3a,EAAAD,EAAAtC,QAAAjhW,EAAA,UAAAA,EAAA,WAAuF,GAAA1oE,MAAAC,QAAA+ra,GAAA,CAAuB,IAAAG,EAAAzjW,EAAAoyB,GAAAkxU,EAAA,MAAiCC,EAAAtC,QAAiBwC,EAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAA9ia,QAAlD,QAA4Fija,GAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAAv1a,MAAA,EAAA01a,GAAAjja,OAAA8ia,EAAAv1a,MAAA01a,EAAA,UAAoEzjW,EAAAh9C,MAAAwgZ,GAAexjW,EAAAqyJ,cAAAr5L,MAAA,SAAAg3I,GAA4ChwG,EAAAhnC,OAAA,GAAiB04L,KAAA,SAAA1hD,GAAyBhwG,EAAAhnC,OAAA,MAAoBr2B,EAAA,SAAcktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoEhI,YAAA,wBAAAC,OAA6C7T,KAAA,WAAAqjN,cAAA,OAAAnzI,SAAAa,EAAA6gW,WAAAxya,KAAA2xE,EAAA3xE,MAAiFimO,UAAWthO,MAAAgtE,EAAA9hE,MAAA+ia,QAAA3pa,MAAAC,QAAAyoE,EAAAh9C,OAAAg9C,EAAAoyB,GAAApyB,EAAAh9C,MAAAg9C,EAAA9hE,QAAA,EAAA8hE,EAAA,OAAgG70D,IAAKupN,QAAA,SAAA1kD,GAA2B,IAAAszP,EAAAtjW,EAAAh9C,MAAAugZ,EAAAvzP,EAAAhkL,OAAAw3a,IAAAD,EAAAtC,QAAqE,GAAA3pa,MAAAC,QAAA+ra,GAAA,CAAuB,IAAArzH,EAAAjwO,EAAA9hE,MAAAula,EAAAzjW,EAAAoyB,GAAAkxU,EAAArzH,GAAsCszH,EAAAtC,QAAiBwC,EAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAA9ia,QAAAyvS,KAA0CwzH,GAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAAv1a,MAAA,EAAA01a,GAAAjja,OAAA8ia,EAAAv1a,MAAA01a,EAAA,UAAoEzjW,EAAAh9C,MAAAwgZ,GAAexjW,EAAAqyJ,cAAAr5L,MAAA,SAAAg3I,GAA4ChwG,EAAAhnC,OAAA,GAAiB04L,KAAA,SAAA1hD,GAAyBhwG,EAAAhnC,OAAA,QAAoBgnC,EAAAz7D,OAAAC,SAAAw7D,EAAA9hE,MAAAyE,EAAA,QAAiDE,YAAA,uBAAiCm9D,EAAAQ,GAAA,WAAAR,EAAAz7D,OAAAC,QAAAw7D,EAAAO,MAAAP,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA9hE,UAAA,GAAA8hE,EAAAO,QAE5rDn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA8sa,EAAA14a,EAAA,KAEA24a,GAEA/sa,EAFA8sa,IAEsC9sa,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E+sa,EAAAn/Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA2jZ,EAAAn/Z,QAAAnW,KAAAs1a,EAAAn/Z,UAGA5V,EAAA4V,QAAAm/Z,EAAAn/Z,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA4wa,EAAA54a,EAAA,KACA64a,EAAA74a,EAAA6+C,EAAA+5X,GACAE,EAAA94a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAilW,EAAA7ia,EACA8ia,EAAA,GATA,EAEA,KAEA,KAEA,MAUA9zX,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,mBAEA0/K,QAAAD,EAAAtpK,SAEAs6D,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAjI,KAAA,WACA,OACAmma,WAAA,EACA1pY,OAAA,EACA2pY,iBAAA,IAKAp0a,OACAyE,SACAkL,SACAihE,SAAAj6D,QACA+7Z,QAAA/7Z,QACA7W,KAAAuO,OACAima,WAAAjma,OAAA4J,QACAy8Z,YAAArma,OAAA4J,SAEAc,UACA0b,OACAvzB,IAAA,WACA,OAAAhE,KAAAqzY,eAAArzY,KAAA6+K,WAAAnxK,IAAA1N,KAAAuH,MAAAvH,KAAAuH,MAAAvH,KAAAi3a,WAEAjyX,IAAA,SAAAz3C,GACAvN,KAAAqzY,gBACArzY,KAAAk3a,iBAAA,OACAxpa,IAAA1N,KAAAqzY,eAAArrY,KAAAuF,EAAAtM,OAAAjB,KAAAqzY,eAAArrY,MAAAhI,KAAAk3a,iBAAA,QAEAxpa,IAAA1N,KAAAqzY,eAAAprY,KAAAsF,EAAAtM,OAAAjB,KAAAqzY,eAAAprY,MAAAjI,KAAAk3a,iBAAA,IAEA,IAAAl3a,KAAAk3a,iBAAAl3a,KAAAu9I,SAAA,2BAAAhwI,UACSG,IAAA1N,KAAAuH,MACTvH,KAAAge,MAAA,QAAAzQ,GAEAvN,KAAAi3a,UAAA1pa,IAKA4pa,UAAA,WACA,MAAY,wBAAAvva,SAAA8D,KAAA1L,KAAAu3B,OACZv3B,KAAAu3B,MACO1rB,MAAAC,QAAA9L,KAAAu3B,OACPv3B,KAAAu3B,MAAAz3B,QAAAE,KAAAyS,QAAA,EACO,OAAAzS,KAAAu3B,YAAA7pB,IAAA1N,KAAAu3B,MACPv3B,KAAAu3B,QAAAv3B,KAAAo3a,eADO,GAIP/jC,eAAA,WAEA,IADA,IAAA9pW,EAAAvpC,KAAAmsN,QACA5iL,GAAA,CACA,uBAAAA,EAAAnxB,SAAAmqK,cAGA,OAAAh5I,EAFAA,IAAA4iL,QAKA,UAEAttC,MAAA,WACA,OAAA7+K,KAAAqzY,eAAArzY,KAAAqzY,eAAA9rY,MAAAvH,KAAAuH,OAEAmva,YAAA,WACA,OACAj8Z,gBAAAza,KAAAqzY,eAAA37X,MAAA,GACAqb,YAAA/yB,KAAAqzY,eAAA37X,MAAA,GACAvR,MAAAnG,KAAAqzY,eAAAltH,WAAA,GACAmyJ,aAAA,cAAAt4a,KAAAqzY,eAAA37X,OAIAo8D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCliD,KAAA,WACA,OAAA7xB,KAAAqzY,eAAAK,mBAAA1zY,KAAA8zE,kBAAA9zE,KAAAi0E,cAAkGpiD,MAElGujZ,WAAA,WACA,OAAAp1a,KAAAqzY,eAAArzY,KAAAqzY,eAAA3/T,UAAA1zE,KAAA0zE,WAAA1zE,KAAAszE,YAAsGI,SAAA1zE,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,WAGtJ33D,SACA07Z,WAAA,WACA5ra,MAAAC,QAAA9L,KAAAu3B,SAAA,IAAAv3B,KAAAu3B,MAAAz3B,QAAAE,KAAAyS,OACAzS,KAAAu3B,MAAAh2B,KAAAvB,KAAAyS,OAEAzS,KAAAu3B,MAAAv3B,KAAAo3a,YAAA,GAGAxwM,aAAA,SAAApnN,GACA,IAAA3C,EAAA7c,KAEA,IAAAA,KAAAk3a,gBAAA,CACA,IAAA3va,OAAA,EAEAA,EADAiY,EAAAjf,OAAAi1a,aACA9na,IAAA1N,KAAAo3a,WAAAp3a,KAAAo3a,eAEA1pa,IAAA1N,KAAAw3a,YAAAx3a,KAAAw3a,WAEAx3a,KAAAge,MAAA,SAAAzW,EAAAiY,GACAxf,KAAAuc,UAAA,WACAM,EAAAw2X,gBACAx2X,EAAA0gI,SAAA,4BAAA1gI,EAAAw2X,eAAA9rY,aAMAuY,QAAA,WACA9f,KAAAw1a,SAAAx1a,KAAAy3a,gBAkDA,SAAAv0a,EAAAqhD,EAAAhlD,GAEA,aACA,IAMA+0E,GAAiB7wE,OANjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAmBE,YAAA,qBAAAc,OAC5Gq8D,EAAA1iD,KAAA,uBAAA0iD,EAAA1iD,KAAA,IACO2iD,cAAAD,EAAA6gW,aACAE,aAAA/gW,EAAA4iW,YACA/yH,WAAA7vO,EAAAhnC,QAAwBl2B,OAAU2sJ,KAAA,WAAAuxQ,eAAAhhW,EAAA4iW,UAAArI,gBAAAv6V,EAAA6gW,cAA+E7gW,EAAA6iW,WAAA7iW,EAAAijW,WAAAtga,EAAA,SAAgDktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoEhI,YAAA,+BAAAC,OAAoD7T,KAAA,WAAAZ,KAAA2xE,EAAA3xE,KAAA8wE,SAAAa,EAAA6gW,WAAAuC,aAAApjW,EAAA6iW,UAAAQ,cAAArjW,EAAAijW,YAAoH3uM,UAAW2sM,QAAA3pa,MAAAC,QAAAyoE,EAAAh9C,OAAAg9C,EAAAoyB,GAAApyB,EAAAh9C,MAAA,SAAAg9C,EAAAo9K,GAAAp9K,EAAAh9C,MAAAg9C,EAAA6iW,YAA6F13Z,IAAKupN,QAAA,SAAA1kD,GAA2B,IAAAszP,EAAAtjW,EAAAh9C,MAAAugZ,EAAAvzP,EAAAhkL,OAAAw3a,EAAAD,EAAAtC,QAAAjhW,EAAA,UAAAA,EAAA,WAAuF,GAAA1oE,MAAAC,QAAA+ra,GAAA,CAAuB,IAAAG,EAAAzjW,EAAAoyB,GAAAkxU,EAAA,MAAiCC,EAAAtC,QAAiBwC,EAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAA9ia,QAAlD,QAA4Fija,GAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAAv1a,MAAA,EAAA01a,GAAAjja,OAAA8ia,EAAAv1a,MAAA01a,EAAA,UAAoEzjW,EAAAh9C,MAAAwgZ,GAAexjW,EAAAqyJ,cAAAr5L,MAAA,SAAAg3I,GAA4ChwG,EAAAhnC,OAAA,GAAiB04L,KAAA,SAAA1hD,GAAyBhwG,EAAAhnC,OAAA,MAAoBr2B,EAAA,SAAcktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoEhI,YAAA,+BAAAC,OAAoD7T,KAAA,WAAAZ,KAAA2xE,EAAA3xE,KAAA8wE,SAAAa,EAAA6gW,YAA4DvsM,UAAWthO,MAAAgtE,EAAA9hE,MAAA+ia,QAAA3pa,MAAAC,QAAAyoE,EAAAh9C,OAAAg9C,EAAAoyB,GAAApyB,EAAAh9C,MAAAg9C,EAAA9hE,QAAA,EAAA8hE,EAAA,OAAgG70D,IAAKupN,QAAA,SAAA1kD,GAA2B,IAAAszP,EAAAtjW,EAAAh9C,MAAAugZ,EAAAvzP,EAAAhkL,OAAAw3a,IAAAD,EAAAtC,QAAqE,GAAA3pa,MAAAC,QAAA+ra,GAAA,CAAuB,IAAArzH,EAAAjwO,EAAA9hE,MAAAula,EAAAzjW,EAAAoyB,GAAAkxU,EAAArzH,GAAsCszH,EAAAtC,QAAiBwC,EAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAA9ia,QAAAyvS,KAA0CwzH,GAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAAv1a,MAAA,EAAA01a,GAAAjja,OAAA8ia,EAAAv1a,MAAA01a,EAAA,UAAoEzjW,EAAAh9C,MAAAwgZ,GAAexjW,EAAAqyJ,cAAAr5L,MAAA,SAAAg3I,GAA4ChwG,EAAAhnC,OAAA,GAAiB04L,KAAA,SAAA1hD,GAAyBhwG,EAAAhnC,OAAA,MAAoBgnC,EAAAz7D,OAAAC,SAAAw7D,EAAA9hE,MAAAyE,EAAA,QAA+CE,YAAA,4BAAAmB,MAAAg8D,EAAA4iW,UAAA5iW,EAAAmiW,YAAA,OAAuFniW,EAAAQ,GAAA,WAAAR,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA9hE,WAAA,GAAA8hE,EAAAO,QAEzvDn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAkoY,EAAA9zY,EAAA,KAEA+zY,GAEAnoY,EAFAkoY,IAEsCloY,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EmoY,EAAAv6X,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA++W,EAAAv6X,QAAAnW,KAAA0wY,EAAAv6X,UAGA5V,EAAA4V,QAAAu6X,EAAAv6X,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAgsY,EAAAh0Y,EAAA,KACAi0Y,EAAAj0Y,EAAA6+C,EAAAm1V,GACAE,EAAAl0Y,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAqgU,EAAAj+X,EACAk+X,EAAA,GATA,EAEA,KAEA,KAEA,MAUAlvV,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,kBAEA2/K,cAAA,kBAEAD,QAAAD,EAAAtpK,SAEAs6D,QACAE,YACAx6D,QAAA,KAIAjW,OACAyE,SACAmsE,SAAAj6D,QACAzR,IAAA+S,OACA9S,IAAA8S,OACA8W,KAAA1gB,OACAuG,KAAAvG,OACAg1Q,UAAAh1Q,QAGA0K,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnC2/T,kBAAA,WACA,OAAA1zY,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,OAItEtW,OACAhU,MAAA,SAAA+6P,GACAtiQ,KAAAu9I,SAAA,+BAAA+kH,QAOA,SAAAp/P,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,oBAAAC,OAAuC2sJ,KAAA,QAAA4kE,aAAA,oBAAvH5oO,KAAqK+0E,GAAA,gBAE9Kp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi+Z,EAAA7pa,EAAA,KAEA8pa,GAEAl+Z,EAFAi+Z,IAEsCj+Z,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Ek+Z,EAAAtwZ,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA80Y,EAAAtwZ,QAAAnW,KAAAyma,EAAAtwZ,UAGA5V,EAAA4V,QAAAswZ,EAAAtwZ,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA+ha,EAAA/pa,EAAA,KACAgqa,EAAAhqa,EAAA6+C,EAAAkrX,GACAiP,EAAAh5a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAo2V,EAAAh0Z,EACAgja,EAAA,GATA,EAEA,KAEA,KAEA,MAUAh0X,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAq/N,EAAAv5N,EAFA33E,EAAA,KAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAwC7EhI,EAAA4V,SACAnW,KAAA,WACA0/K,SAAA,EAAAmuH,EAAA13R,SAAA,SAAAorN,EAAAprN,SACAs6D,QACAC,QACAv6D,QAAA,KAGAjW,OACAyE,OACA/D,MAAAiW,QAAAtI,OAAA4J,QACAhC,SAAA,GAEA26D,UACAlwE,KAAAiW,QACAV,SAAA,GAEAC,OACAxV,KAAAuX,OACAhC,QAAA,IAEAy/Z,iBACAh1a,KAAA2N,OACA4H,QAAA,IAEA0/Z,mBACAj1a,KAAA2N,OACA4H,QAAA,IAEA2/Z,WAAAvna,OACAwna,aAAAxna,OACAyna,aACAp1a,KAAA2N,OACA4H,QAAA,IAEA4oQ,eACAn+Q,KAAA2N,OACA4H,QAAA,IAEA8/Z,aACAr1a,MAAAiW,QAAAtI,OAAA4J,QACAhC,SAAA,GAEA+/Z,eACAt1a,MAAAiW,QAAAtI,OAAA4J,QACAhC,SAAA,GAEAnW,MACAY,KAAA2N,OACA4H,QAAA,IAEArX,GAAAyP,QAEAL,KAAA,WACA,OACAioa,UAAA/4a,KAAAgZ,QAGA8G,QAAA,aACA9f,KAAA64a,YAAA74a,KAAA84a,eAAAh5a,QAAAE,KAAAuH,QACAvH,KAAAge,MAAA,QAAAhe,KAAA84a,gBAIAj9Z,UACA25Z,QAAA,WACA,OAAAx1a,KAAAuH,QAAAvH,KAAA64a,aAEAG,eAAA,WACA,OAAAh5a,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,WAGhDn4D,OACAi6Z,QAAA,WACAx1a,KAAAye,MAAAvU,MAAAsra,QAAAx1a,KAAAw1a,SACAx1a,KAAA44a,aAAA54a,KAAA2hR,gBACA3hR,KAAAy0D,uBAIA14C,SACA6qN,aAAA,SAAArvK,GACA,IAAA16C,EAAA7c,KAEAA,KAAAge,MAAA,QAAAhe,KAAAw1a,QAAAx1a,KAAA84a,cAAA94a,KAAA64a,aACA74a,KAAAge,MAAA,SAAAhe,KAAAw1a,QAAAx1a,KAAA84a,cAAA94a,KAAA64a,aACA74a,KAAAuc,UAAA,WAGAM,EAAA4B,MAAAvU,MAAAsra,QAAA34Z,EAAA24Z,WAGA/gX,mBAAA,WACA,IAAAwkX,EAAAj5a,KAAAw1a,QAAAx1a,KAAA44a,YAAA54a,KAAA2hR,cACA3hR,KAAAye,MAAAsiK,KAAAxoK,MAAAwa,YAAAkmZ,EACAj5a,KAAAye,MAAAsiK,KAAAxoK,MAAAkC,gBAAAw+Z,GAEAC,YAAA,YACAl5a,KAAAg5a,gBAAAh5a,KAAA4mO,gBAEAV,mBAAA,WACA,OACApjO,OACAq2a,WAAA,uCACAC,YAAA,0CACAC,UAAA,qCACAC,WAAA,wCACAC,WAAA,uCACAC,YAAA,0CACAC,gBAAA,iDACAC,iBAAA,wDAKA35Z,QAAA,WAEA/f,KAAA+4a,UAAA/4a,KAAAgZ,OAAA,IACAhZ,KAAA44a,aAAA54a,KAAA2hR,gBACA3hR,KAAAy0D,qBAEAz0D,KAAAye,MAAAvU,MAAAsra,QAAAx1a,KAAAw1a,WAMA,SAAAtya,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,YAAAc,OAA+Bs8D,cAAAD,EAAAykW,eAAA1D,aAAA/gW,EAAAihW,SAA+Dn+Z,OAAQ2sJ,KAAA,SAAAuxQ,eAAAhhW,EAAAihW,QAAA1G,gBAAAv6V,EAAAykW,gBAA8Et5Z,IAAKm1D,MAAAN,EAAA2kW,eAAyBhia,EAAA,SAAc0B,IAAA,QAAAxB,YAAA,mBAAAC,OAAkD7T,KAAA,WAAA9B,GAAA6yE,EAAA7yE,GAAAkB,KAAA2xE,EAAA3xE,KAAA+0a,aAAApjW,EAAAskW,YAAAjB,cAAArjW,EAAAukW,cAAAplW,SAAAa,EAAAykW,gBAAyIt5Z,IAAKupN,OAAA10J,EAAAqyJ,aAAAyrE,QAAA,SAAA9tH,GAAqD,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAA2kW,YAAA30P,OAA0BhwG,EAAAkkW,mBAAAlkW,EAAAokW,aAAAzha,EAAA,QAAyDgB,OAAA,4CAAAq8D,EAAAihW,QAAA,kBAAsFjhW,EAAA,kBAAAr9D,EAAA,KAAkCgB,OAAAq8D,EAAAkkW,qBAA8BlkW,EAAAO,MAAAP,EAAAkkW,mBAAAlkW,EAAAokW,aAAAzha,EAAA,QAAmEG,OAAOwvM,cAAAtyI,EAAAihW,WAA2BjhW,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAokW,iBAAApkW,EAAAO,OAAAP,EAAAO,KAAA59D,EAAA,QAAoE0B,IAAA,OAAAxB,YAAA,kBAAAmB,OAAiDS,MAAAu7D,EAAAwkW,UAAA,QAAkCxkW,EAAAikW,iBAAAjkW,EAAAmkW,WAAAxha,EAAA,QAAqDgB,OAAA,6CAAAq8D,EAAAihW,QAAA,kBAAsFjhW,EAAA,gBAAAr9D,EAAA,KAAgCgB,OAAAq8D,EAAAikW,mBAA4BjkW,EAAAO,MAAAP,EAAAikW,iBAAAjkW,EAAAmkW,WAAAxha,EAAA,QAA+DG,OAAOwvM,eAAAtyI,EAAAihW,WAA4BjhW,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAmkW,eAAAnkW,EAAAO,OAAAP,EAAAO,QAEn5Cn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi4K,EAAA7jL,EAAA,KAEA+9S,GAEAnyS,EAFAi4K,IAEsCj4K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EmyS,EAAAvkS,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA+oR,EAAAvkS,QAAAnW,KAAA06S,EAAAvkS,UAGA5V,EAAA4V,QAAAukS,EAAAvkS,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAg2S,EAAAh+S,EAAA,KACAi+S,EAAAj+S,EAAA6+C,EAAAm/P,GACAE,EAAAl+S,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAqqO,EAAAjoS,EACAkoS,EAAA,GATA,EAEA,KAEA,KAEA,MAUAl5P,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAApmE,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAyI5Ik3K,EAAAnrG,EAFA33E,EAAA,IAMAkxS,EAAAv5N,EAFA33E,EAAA,KAMAm+S,EAAAxmO,EAFA33E,EAAA,IAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAo+S,EAAAzmO,EAFA33E,EAAA,MAMAsiL,EAAA3qG,EAFA33E,EAAA,KAMAizS,EAAAt7N,EAFA33E,EAAA,KAMAq+S,EAAA1mO,EAFA33E,EAAA,KAMAqmN,EAAA1uI,EAFA33E,EAAA,KAMAs+S,EAAA3mO,EAFA33E,EAAA,IAIA4uD,EAAA5uD,EAAA,GAEAmrN,EAAAnrN,EAAA,IAEAu+S,EAAAv+S,EAAA,IAIAw+S,EAAA7mO,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAIAy+S,EAAA9mO,EAFA33E,EAAA,MAIA8kO,EAAA9kO,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA8yS,GACAC,OAAA,GACAC,MAAA,GACAC,KAAA,IAGAj7S,EAAA4V,SACAupK,QAAAD,EAAAtpK,QAAA2kS,EAAA3kS,SAAA,EAAA03R,EAAA13R,SAAA,aAAAilS,EAAAjlS,SAEAnW,KAAA,WAEA2/K,cAAA,WAEAlvG,QACAC,QACAv6D,QAAA,IAGAw6D,YACAx6D,QAAA,KAIAsuO,QAAA,WACA,OACAvkE,OAAA9iL,OAKA6b,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnC8wJ,SAAA,WAEA,IAAA2d,GAAAxiP,KAAAk5E,YAAAzuE,MAAAsQ,OAAAlL,SAAAwuS,eACA,OAAAr+S,KAAAs+S,YAAAt+S,KAAA+iL,WAAAy/D,IAAAxiP,KAAAw3E,SAEAmsF,UAAA,WAEA,OADA3jK,KAAAmlO,YAAAnlO,KAAAu+S,gBAAAv+S,KAAAw+S,gBAAAx+S,KAAA+iL,eAAAr1K,IAAA1N,KAAAuH,OAAA,OAAAvH,KAAAuH,OAAA,KAAAvH,KAAAuH,MACA,6BAAAvH,KAAAkjL,QAAAljL,KAAAs+S,WAAA,eAEAtyS,SAAA,WACA,OAAAhM,KAAAkjL,OAAA,OAEAu7H,UAAA,WACA,OAAAz+S,KAAA2Y,QACA3Y,KAAA0+S,aAAA1+S,KAAAyoF,EAAA,uBAEAzoF,KAAAkjL,QAAA,KAAAljL,KAAA+1D,OAAA,IAAA/1D,KAAAyI,QAAAxH,UACAjB,KAAAs+S,YAAAt+S,KAAA+1D,OAAA/1D,KAAAyI,QAAAxH,OAAA,OAAAjB,KAAA8jL,qBACA9jL,KAAA2+S,aAAA3+S,KAAAyoF,EAAA,qBAEA,IAAAzoF,KAAAyI,QAAAxH,OACAjB,KAAA4+S,YAAA5+S,KAAAyoF,EAAA,oBAGA,OAEAo2N,cAAA,WACA,IAAAhiS,EAAA7c,KAEA8+S,EAAA9+S,KAAAyI,QAAA2e,OAAA,SAAAnK,GACA,OAAAA,EAAA6C,UACO1M,KAAA,SAAA6J,GACP,OAAAA,EAAA0lK,eAAA9lK,EAAAk5C,QAEA,OAAA/1D,KAAAs+S,YAAAt+S,KAAA++S,aAAA,KAAA/+S,KAAA+1D,QAAA+oP,GAEAE,WAAA,WACA,OAAAh/S,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtE0sR,eAAA,WACA,OAAAv+S,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAEhDurO,gBAAA,WACA,uBAAAn/S,QAAAE,KAAAg/S,aAAA,mBAIA5qR,YACAw8Q,QAAA/sE,EAAA9qN,QACAmmS,aAAAvB,EAAA5kS,QACAomS,SAAAt9H,EAAA9oK,QACAqmS,MAAA5M,EAAAz5R,QACAsmS,YAAAzB,EAAA7kS,SAGAqrK,YAAek7H,aAAAzB,EAAA9kS,SAEfjW,OACAF,KAAAuO,OACAzP,GAAAyP,OACA5J,OACAw7J,UAAA,GAEAgiE,cACAvhO,KAAA2N,OACA4H,QAAA,OAEAwmS,kBAAA9lS,QACAoY,KAAA1gB,OACAuiE,SAAAj6D,QACA0rN,UAAA1rN,QACA6kS,WAAA7kS,QACAslS,YAAAtlS,QACAd,QAAAc,QACAusM,YAAA70M,OACA+xK,OAAAzpK,QACAilS,YAAAvtS,OACAwtS,YAAAxtS,OACAytS,WAAAztS,OACAquS,aAAArmS,SACAsmS,aAAAtmS,SACA4pK,SAAAtpK,QACAwpK,eACAz/K,KAAAuX,OACAhC,QAAA,GAEAivN,aACAxkO,KAAA2N,OACA4H,QAAA,WACA,SAAA+kS,EAAAr1N,GAAA,2BAGAi3N,mBAAAjmS,QACAkmS,eAAAlmS,QACA4pK,UACA7/K,KAAA2N,OACA4H,QAAA,SAEA6mS,aAAAnmS,QACAomS,oBACAr8S,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACArI,WACAs7K,iBACA+7H,aAAA,KACAC,iBAAA,EACAr1R,SAAA1qB,KAAA+iL,eACAi9H,YAAA,GACAC,WAAA,EACAC,kBAAA,GACAl8H,aAAA,EACAF,qBAAA,EACAtsG,SAAA,EACA2oO,WAAA,EACAC,cAAA,GACA18H,YAAA,EACA3tH,MAAA,GACAsqP,cAAA,KACA7B,eAAA,EACA8B,mBAAA,GACAC,oBAAA,EACA77E,iBAAA,EACA87E,cAAA,IAKAjlS,OACAgjS,eAAA,WACA,IAAArgS,EAAAle,KAEAA,KAAAuc,UAAA,WACA2B,EAAAuiS,sBAGAz4E,YAAA,SAAAz6N,GACAvN,KAAAkgT,kBAAAlgT,KAAAsgT,mBAAA/yS,GAEAhG,MAAA,SAAAgG,EAAA41K,GACAnjL,KAAA+iL,WACA/iL,KAAAygT,mBACAlzS,EAAAtM,OAAA,GAAAjB,KAAAye,MAAAvU,OAAA,KAAAlK,KAAA+1D,MACA/1D,KAAAsgT,mBAAA,GAEAtgT,KAAAsgT,mBAAAtgT,KAAAkgT,kBAEAlgT,KAAAs+S,aAAAt+S,KAAA2/S,iBACA3/S,KAAA+1D,MAAA,GACA/1D,KAAA0gT,kBAAA1gT,KAAA+1D,SAGA/1D,KAAA4mM,cACA5mM,KAAAs+S,aAAAt+S,KAAA+iL,WACA/iL,KAAAggT,YAAA,KAEA,EAAAvgT,EAAA83O,aAAAhqO,EAAA41K,IACAnjL,KAAAu9I,SAAA,8BAAAhwI,IAGAiqE,QAAA,SAAAjqE,GACA,IAAAyR,EAAAhf,KAEAuN,GA2BAvN,KAAA2gT,iBACA3gT,KAAAi9S,UAAA,mCACAj9S,KAAAs+S,aACAt+S,KAAA+1D,MAAA/1D,KAAAkjL,OAAA,GAAAljL,KAAAogT,cACApgT,KAAA0gT,kBAAA1gT,KAAA+1D,OACA/1D,KAAA+iL,SACA/iL,KAAAye,MAAAvU,MAAAqjC,SAEAvtC,KAAAkjL,SACAljL,KAAAi9S,UAAA,6BACAj9S,KAAAi9S,UAAA,gCAEAj9S,KAAAi9S,UAAA,6BAtCAj9S,KAAA4gT,iBACA5gT,KAAAi9S,UAAA,oCACAj9S,KAAAye,MAAAvU,OACAlK,KAAAye,MAAAvU,MAAA+7N,OAEAjmO,KAAA+1D,MAAA,GACA/1D,KAAAqgT,cAAA,KACArgT,KAAAogT,cAAA,GACApgT,KAAAggT,YAAA,GACAhgT,KAAA6gT,kBACA7gT,KAAAuc,UAAA,WACAyC,EAAAP,MAAAvU,OAAA,KAAA8U,EAAAP,MAAAvU,MAAA3C,OAAA,IAAAyX,EAAA0L,SAAAzpB,SACA+d,EAAAshS,mBAAAthS,EAAAkhS,qBAGAlgT,KAAA+iL,UACA/iL,KAAA0qB,WACA1qB,KAAAs+S,YAAAt+S,KAAA++S,aAAA/+S,KAAA+/S,iBAAA//S,KAAA8/S,aACA9/S,KAAAogT,cAAApgT,KAAA8/S,aAEA9/S,KAAAogT,cAAApgT,KAAA0qB,SAAAi4J,aAEA3iL,KAAAs+S,aAAAt+S,KAAA+1D,MAAA/1D,KAAAogT,iBAoBApgT,KAAAge,MAAA,iBAAAzQ,IAEA9E,QAAA,WACA,IAAA8W,EAAAvf,KAEA,IAAAA,KAAAk5E,UAAA,CACAl5E,KAAAuc,UAAA,WACAgD,EAAA09R,UAAA,qCAEAj9S,KAAA+iL,UACA/iL,KAAAygT,mBAEA,IAAAK,EAAA9gT,KAAA0c,IAAAmkC,iBAAA,UACA,OAAA/gD,QAAA4L,KAAAo1S,EAAAjxS,SAAA+yP,gBACA5iQ,KAAA4mM,cAEA5mM,KAAA0/S,qBAAA1/S,KAAAs+S,YAAAt+S,KAAAkjL,SAAAljL,KAAA8jL,sBACA9jL,KAAA+gT,6BAKAhlS,SACAyqN,kBAAA,SAAAjvK,GACA,IAAAlmB,EAAAkmB,EAAAh3D,OAAAgH,MACA,sBAAAgwD,EAAA/zD,KACAxD,KAAA0kO,iBAAA,EACA1kO,KAAA0gT,kBAAArvQ,OACO,CACP,IAAAq1L,EAAAr1L,IAAApwC,OAAA,OACAjB,KAAA0kO,kBAAA,EAAAL,EAAAsC,UAAAD,KAGAg6E,kBAAA,SAAAnzS,GACA,IAAA+zG,EAAAthH,KAEA,GAAAA,KAAAqgT,gBAAA9yS,IAAAvN,KAAA0kO,gBACA,UAAA1kO,KAAAqgT,eAAA,mBAAArgT,KAAAy/S,cAAA,mBAAAz/S,KAAAw/S,aAAA,CASA,GALAx/S,KAAAqgT,cAAA9yS,EACAvN,KAAAuc,UAAA,WACA+kG,EAAA9pC,SAAA8pC,EAAA27L,UAAA,qCAEAj9S,KAAA0jL,YAAA,EACA1jL,KAAA+iL,UAAA/iL,KAAAs+S,WAAA,CACA,IAAAr9S,EAAA,GAAAjB,KAAAye,MAAAvU,MAAA3C,MAAAtG,OAAA,GACAjB,KAAAggT,YAAAhgT,KAAA4/S,aAAA73S,KAAAC,IAAA,GAAA/G,KACAjB,KAAAghT,oBACAhhT,KAAAygT,mBAEAzgT,KAAAkjL,QAAA,mBAAAljL,KAAAw/S,cACAx/S,KAAA0jL,YAAA,EACA1jL,KAAAw/S,aAAAjyS,IACO,mBAAAvN,KAAAy/S,cACPz/S,KAAAy/S,aAAAlyS,GACAvN,KAAAi9S,UAAA,iCAEAj9S,KAAA8jL,qBAAA9jL,KAAAgkL,aACAhkL,KAAAi9S,UAAA,yBAAA1vS,GACAvN,KAAAi9S,UAAA,gCAEAj9S,KAAA0/S,qBAAA1/S,KAAAs+S,YAAAt+S,KAAAkjL,SAAAljL,KAAA8jL,sBACA9jL,KAAA+gT,+BA1BA/gT,KAAAqgT,cAAA9yS,GA6BAqzS,eAAA,WACA,IAAAptO,EAAAxzE,KAAA0c,IAAA6mC,cAAA,mBACAiwB,IACA,EAAArlB,EAAAosB,aAAA/G,EAAA,eAGAmtO,eAAA,WACA,IAAAntO,EAAAxzE,KAAA0c,IAAA6mC,cAAA,mBACAiwB,KAAA,EAAArlB,EAAAurB,UAAAlG,EAAA,0BACA,EAAArlB,EAAA6rB,UAAAxG,EAAA,eAGAytO,eAAA,SAAAhkS,GACA,IAAA1c,EAAAsL,MAAAC,QAAAmR,MAAA,GAAAA,EAAA,GAAAP,IAAAO,EAAAP,IACA,GAAA1c,KAAAye,MAAAm9B,QAAAr7C,EAAA,CACA,IAAA2gT,EAAAlhT,KAAAye,MAAAm9B,OAAAl/B,IAAA6mC,cAAA,8BACA,EAAAw6P,EAAAhlS,SAAAmoS,EAAA3gT,GAEAP,KAAAye,MAAA0iS,WAAAnhT,KAAAye,MAAA0iS,UAAAt1F,gBAEAu1F,gBAAA,WACA,IAAAh2J,EAAAprJ,KAEAA,KAAAuc,UAAA,WACA,OAAA6uI,EAAA61J,eAAA71J,EAAA1gI,aAGA22R,WAAA,SAAA9zS,IACA,EAAA9N,EAAA83O,aAAAv3O,KAAAuH,MAAAgG,IACAvN,KAAAge,MAAA,SAAAzQ,IAGAskD,UAAA,SAAAtqD,GAKA,IAJA,IAAA0V,OAAA,EACArd,EAAA,oBAAAgK,OAAA1J,UAAA0H,SAAA8D,KAAAnE,GAAA+Q,cACAgpS,EAAA,kBAAA13S,OAAA1J,UAAA0H,SAAA8D,KAAAnE,GAAA+Q,cAEAvX,EAAAf,KAAA+jL,cAAA9iL,OAAA,EAAiDF,GAAA,EAAQA,IAAA,CACzD,IAAAwgT,EAAAvhT,KAAA+jL,cAAAhjL,GAEA,GADAnB,GAAA,EAAAH,EAAA6jL,gBAAAi+H,EAAAh6S,MAAAvH,KAAAqjL,aAAA,EAAA5jL,EAAA6jL,gBAAA/7K,EAAAvH,KAAAqjL,UAAAk+H,EAAAh6S,UACA,CACA0V,EAAAskS,EACA,OAGA,GAAAtkS,EAAA,OAAAA,EACA,IACA0kD,GACAp6D,QACAo7K,aAHA/iL,GAAA0hT,EAAA,GAAA/5S,GAQA,OAHAvH,KAAA+iL,WACAphH,EAAA8gH,UAAA,GAEA9gH,GAEAilI,YAAA,WACA,IAAAh7C,EAAA5rJ,KAEA,IAAAA,KAAA+iL,SAAA,CACA,IAAA9lK,EAAAjd,KAAA6xD,UAAA7xD,KAAAuH,OAUA,OATA0V,EAAA6C,SACA9f,KAAA8/S,aAAA7iS,EAAA0lK,aACA3iL,KAAA+/S,iBAAA,GAEA//S,KAAA+/S,iBAAA,EAEA//S,KAAAogT,cAAAnjS,EAAA0lK,aACA3iL,KAAA0qB,SAAAzN,OACAjd,KAAAs+S,aAAAt+S,KAAA+1D,MAAA/1D,KAAAogT,gBAGA,IAAArvS,KACAlF,MAAAC,QAAA9L,KAAAuH,QACAvH,KAAAuH,MAAAuC,QAAA,SAAAvC,GACAwJ,EAAAxP,KAAAqqJ,EAAA/5F,UAAAtqD,MAGAvH,KAAA0qB,SAAA3Z,EACA/Q,KAAAuc,UAAA,WACAqvI,EAAA60J,sBAGAv5F,YAAA,SAAA3vJ,GACAv3D,KAAAmgT,UAOAngT,KAAAmgT,WAAA,IANAngT,KAAAu/S,mBAAAv/S,KAAAs+S,cACAt+S,KAAAw3E,SAAA,EACAx3E,KAAAugT,oBAAA,GAEAvgT,KAAAge,MAAA,QAAAu5C,KAKA0uK,KAAA,WACAjmO,KAAAw3E,SAAA,EACAx3E,KAAAye,MAAAk9B,UAAAsqL,QAEA9e,WAAA,SAAA5vJ,GACA,IAAAiqP,EAAAxhT,KAEAsM,WAAA,WACAk1S,EAAAhB,aACAgB,EAAAhB,cAAA,EAEAgB,EAAAxjS,MAAA,OAAAu5C,IAEO,IACPv3D,KAAAmgT,WAAA,GAEAsB,gBAAA,SAAAlqP,GACAv3D,KAAA2jK,UAAA7jK,QAAA,oBACAE,KAAA0hT,eAAAnqP,IAGA69I,UAAA,WACAp1M,KAAAye,MAAAm9B,QAAA57C,KAAAye,MAAAm9B,OAAAw5J,aAEA69F,YAAA,WACAjzS,KAAAw3E,SAAA,GAEAmqO,yBAAA,SAAA5O,GACA,GAAAlnS,MAAAC,QAAA9L,KAAA0qB,UAAA,CACA,IAAAzN,EAAAjd,KAAA0qB,SAAA1qB,KAAA0qB,SAAAzpB,OAAA,GACA,GAAAgc,EAEA,WAAA81R,IAAA,IAAAA,GACA91R,EAAAwlK,SAAAswH,EACAA,IAGA91R,EAAAwlK,UAAAxlK,EAAAwlK,SACAxlK,EAAAwlK,YAEAm/H,cAAA,SAAAz9S,GACA,GAAAA,EAAA5D,OAAAgH,MAAAtG,QAAA,IAAAjB,KAAA2hT,2BAAA,CACA,IAAAp6S,EAAAvH,KAAAuH,MAAAjF,QACAiF,EAAAuvD,MACA92D,KAAAge,MAAA,QAAAzW,GACAvH,KAAAqhT,WAAA95S,KAGAy5S,kBAAA,WACA,KAAAhhT,KAAAsgT,qBACAtgT,KAAAsgT,mBAAAtgT,KAAAye,MAAAvU,MAAA3C,MAAA,GAAAvH,KAAAkgT,oBAGA2B,gBAAA,SAAA19S,GACA,IAAAA,EAAA+3Q,SAAAl8Q,KAAA2hT,0BAAA,GACA3hT,KAAAggT,YAAA,GAAAhgT,KAAAye,MAAAvU,MAAA3C,MAAAtG,OAAA,GACAjB,KAAAygT,oBAEAA,iBAAA,WACA,IAAAqB,EAAA9hT,KAEAA,KAAA4/S,eAAA5/S,KAAAs+S,YACAt+S,KAAAuc,UAAA,WACA,GAAAulS,EAAArjS,MAAAk9B,UAAA,CACA,IAAAomQ,EAAAD,EAAArjS,MAAAk9B,UAAAj/B,IAAA+jN,WACAv2N,KAAAkd,OAAA1b,KAAAq2S,EAAA,SAAAp1S,GACA,gBAAAA,EAAAolC,UACS,GACTiwQ,EAAAF,EAAArjS,MAAAujS,KACAC,EAAAhE,EAAA6D,EAAA9C,aAAA,GACA90S,EAAAqO,MAAAU,OAAA,IAAA6oS,EAAAp3R,SAAAzpB,OAAAghT,EAAA,KAAAl6S,KAAAE,IAAA+5S,IAAAplS,cAAAolS,EAAAplS,aAAAqlS,EAAA,OAAAA,GAAA,KACAH,EAAAtqO,UAAA,IAAAsqO,EAAArD,WACAqD,EAAA7E,UAAA,uCAIA4D,gBAAA,WACA,IAAAqB,EAAAliT,KAEAsM,WAAA,WACA41S,EAAAn/H,SAGAm/H,EAAAx3R,SAAAzpB,OAAA,EACAihT,EAAAx+H,WAAA37K,KAAAC,IAAAuE,MAAA,KAAA21S,EAAAx3R,SAAA/Z,IAAA,SAAAhE,GACA,OAAAu1S,EAAAz5S,QAAA3I,QAAA6M,MAGAu1S,EAAAx+H,YAAA,EAPAw+H,EAAAx+H,WAAAw+H,EAAAz5S,QAAA3I,QAAAoiT,EAAAx3R,WAUO,MAEPy3R,mBAAA,SAAAllS,EAAAmlS,GACA,IAAAC,EAAAriT,KAEA,GAAAA,KAAA+iL,SAAA,CACA,IAAAx7K,EAAAvH,KAAAuH,MAAAjF,QACAggT,EAAAtiT,KAAAuiT,cAAAh7S,EAAA0V,EAAA1V,OACA+6S,GAAA,EACA/6S,EAAAjG,OAAAghT,EAAA,IACStiT,KAAAijL,eAAA,GAAA17K,EAAAtG,OAAAjB,KAAAijL,gBACT17K,EAAAhG,KAAA0b,EAAA1V,OAEAvH,KAAAge,MAAA,QAAAzW,GACAvH,KAAAqhT,WAAA95S,GACA0V,EAAA6C,UACA9f,KAAA+1D,MAAA,GACA/1D,KAAA0gT,kBAAA,IACA1gT,KAAAggT,YAAA,IAEAhgT,KAAAs+S,YAAAt+S,KAAAye,MAAAvU,MAAAqjC,aAEAvtC,KAAAge,MAAA,QAAAf,EAAA1V,OACAvH,KAAAqhT,WAAApkS,EAAA1V,OACAvH,KAAAw3E,SAAA,EAEAx3E,KAAAwgT,aAAA4B,EACApiT,KAAAwiT,eACAxiT,KAAAw3E,SACAx3E,KAAAuc,UAAA,WACA8lS,EAAApB,eAAAhkS,MAGAulS,aAAA,WACAxiT,KAAAmgT,WAAA,EACA,IAAAj2S,EAAAlK,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAk9B,UACAzxC,GACAA,EAAAqjC,SAGAg1Q,cAAA,WACA,IAAAE,EAAAziT,KAEA4L,EAAA9G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACAyC,EAAAzC,UAAA,GAGA,KADA,oBAAA8E,OAAA1J,UAAA0H,SAAA8D,KAAAnE,GAAA+Q,eAEA,OAAA1M,EAAA9L,QAAAyH,GAEA,IACA87K,EACAz2K,EAFA22K,GACAF,EAAAo/H,EAAAp/H,SACAz2K,GAAA,EACAhB,EAAAwH,KAAA,SAAAzG,EAAA5L,GACA,SAAAtB,EAAA6jL,gBAAA32K,EAAA02K,MAAA,EAAA5jL,EAAA6jL,gBAAA/7K,EAAA87K,KACAz2K,EAAA7L,GACA,MAKAgM,EAAAH,IAIA,2BAAA22K,EAAA,YAAAv4K,EAAAu4K,MAAAx2K,OAAA,GAGA21S,WAAA,WACA1iT,KAAAu+S,iBACAv+S,KAAAugT,mBACAvgT,KAAAugT,oBAAA,EAEAvgT,KAAAw3E,SAAAx3E,KAAAw3E,QAEAx3E,KAAAw3E,UACAx3E,KAAAye,MAAAvU,OAAAlK,KAAAye,MAAAk9B,WAAApO,UAIAo1Q,aAAA,WACA3iT,KAAAw3E,QAGAx3E,KAAAyI,QAAAzI,KAAA0jL,aACA1jL,KAAAmiT,mBAAAniT,KAAAyI,QAAAzI,KAAA0jL,aAHA1jL,KAAA0iT,cAOAhB,eAAA,SAAAnqP,GACAA,EAAAitH,kBACAxkL,KAAAge,MAAA,YACAhe,KAAAqhT,WAAA,IACArhT,KAAAw3E,SAAA,EACAx3E,KAAAge,MAAA,UAEA4kS,UAAA,SAAArrP,EAAA4zJ,GACA,IAAAv+M,EAAA5M,KAAA0qB,SAAA5qB,QAAAqrN,GACA,GAAAv+M,GAAA,IAAA5M,KAAAu+S,eAAA,CACA,IAAAh3S,EAAAvH,KAAAuH,MAAAjF,QACAiF,EAAAjG,OAAAsL,EAAA,GACA5M,KAAAge,MAAA,QAAAzW,GACAvH,KAAAqhT,WAAA95S,GACAvH,KAAAge,MAAA,aAAAmtM,EAAA5jN,OAEAgwD,EAAAitH,mBAEAq+H,cAAA,WACA7iT,KAAAs+S,YAAAt+S,KAAA+1D,QAAA/1D,KAAAogT,gBACApgT,KAAA+1D,MAAA/1D,KAAAogT,cACApgT,KAAA0gT,kBAAA1gT,KAAA+1D,SAGAmuH,gBAAA,SAAAt3K,GACAA,GAAA,IACA5M,KAAAgkL,eACAhkL,KAAA8jL,uBACA9jL,KAAAyI,QAAAnH,OAAAsL,EAAA,KAGAk2S,gBAAA,WACA9iT,KAAAigT,WAAAjgT,KAAAye,MAAAk9B,UAAAj/B,IAAAiiC,wBAAA3lC,OAEA+pS,aAAA,WACA/iT,KAAA8iT,kBACA9iT,KAAA+iL,UAAA/iL,KAAAygT,oBAEAM,wBAAA,WACA/gT,KAAA0jL,YAAA,EAGA,IADA,IAAAs/H,GAAA,EACAjiT,EAAAf,KAAAyI,QAAAxH,OAAA,EAA2CF,GAAA,EAAQA,IACnD,GAAAf,KAAAyI,QAAA1H,GAAA+e,QAAA,CACAkjS,GAAA,EACAhjT,KAAA0jL,WAAA3iL,EACA,MAGA,IAAAiiT,EACA,QAAAr8M,EAAA,EAAsBA,IAAA3mG,KAAAyI,QAAAxH,SAA4B0lG,EAAA,CAClD,IAAA1pF,EAAAjd,KAAAyI,QAAAk+F,GACA,GAAA3mG,KAAA+1D,OAEA,IAAA94C,EAAAy2D,WAAAz2D,EAAAulK,eAAAvlK,EAAAu6D,QAAA,CACAx3E,KAAA0jL,WAAA/8E,EACA,YAIA,GAAA1pF,EAAA4lK,aAAA,CACA7iL,KAAA0jL,WAAA/8E,EACA,SAKAs8M,YAAA,SAAAt2S,GACA,0BAAA/C,OAAA1J,UAAA0H,SAAA8D,KAAAiB,EAAApF,OAAA+Q,cACA3L,EAAApF,OAEA,EAAA9H,EAAA6jL,gBAAA32K,EAAApF,MAAAvH,KAAAqjL,YAKAvjK,QAAA,WACA,IAAAojS,EAAAljT,KAEAA,KAAAkgT,kBAAAlgT,KAAAsgT,mBAAAtgT,KAAAgoO,YACAhoO,KAAA+iL,WAAAl3K,MAAAC,QAAA9L,KAAAuH,QACAvH,KAAAge,MAAA,aAEAhe,KAAA+iL,UAAAl3K,MAAAC,QAAA9L,KAAAuH,QACAvH,KAAAge,MAAA,YAGAhe,KAAAmjT,wBAAA,EAAAv9F,EAAA7sM,SAAA/Y,KAAAgM,SAAA,WACAk3S,EAAAL,kBAGA7iT,KAAAojT,sBAAA,EAAAx9F,EAAA7sM,SAAA/Y,KAAAgM,SAAA,SAAA7H,GACA++S,EAAAxC,kBAAAv8S,EAAA5D,OAAAgH,SAGAvH,KAAAikL,IAAA,oBAAAjkL,KAAAmiT,oBACAniT,KAAAikL,IAAA,cAAAjkL,KAAA4mM,cAEA7mL,QAAA,WACA,IAAAsjS,EAAArjT,KAEAA,KAAA+iL,UAAAl3K,MAAAC,QAAA9L,KAAAuH,QAAAvH,KAAAuH,MAAAtG,OAAA,IACAjB,KAAAsgT,mBAAA,KAEA,EAAA51F,EAAApsM,mBAAAte,KAAA0c,IAAA1c,KAAA+iT,cACA/iT,KAAAkjL,QAAAljL,KAAA+iL,UACA/iL,KAAAygT,mBAEAzgT,KAAAuc,UAAA,WACA8mS,EAAA5kS,MAAAk9B,WAAA0nQ,EAAA5kS,MAAAk9B,UAAAj/B,MACA2mS,EAAApD,WAAAoD,EAAA5kS,MAAAk9B,UAAAj/B,IAAAiiC,wBAAA3lC,SAGAhZ,KAAA4mM,eAEA5mL,cAAA,WACAhgB,KAAA0c,KAAA1c,KAAA+iT,eAAA,EAAAr4F,EAAAnsM,sBAAAve,KAAA0c,IAAA1c,KAAA+iT,iBAMA,SAAA7/S,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA+7S,EAAA/jT,EAAA,KACAgkT,EAAAhkT,EAAA6+C,EAAAklQ,GACAE,EAAAjkT,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAowO,EAAAhuS,EACAiuS,EAAA,GATA,EAEA,KAEA,KAEA,MAUAj/P,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAs4S,EAAAlkT,EAAA,GAEAomN,GAEAx6M,EAFAs4S,IAEsCt4S,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,mBAEA2/K,cAAA,mBAEAD,QAAAqjC,EAAA5sM,SAEAjW,OACAi4C,WACAhiC,QAAA,gBAGAmiC,mBACAniC,QAAA,GAGAw7L,eACAx7L,QAAA,WACA,OACAiiC,iBAAA,KAKAq5J,cACAt7L,SAAA,GAGAu7L,cACA9wM,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACA4yS,SAAA,KAKA7nS,UACAmqM,YAAA,WACA,OAAAhmN,KAAAmsN,QAAAnG,cAIAzqM,OACAooS,qBAAA,WACA3jT,KAAA0jT,SAAA1jT,KAAAmsN,QAAAzvM,IAAAiiC,wBAAA3lC,MAAA,OAIA+G,QAAA,WACA,IAAAlD,EAAA7c,KAEAA,KAAA+0M,aAAA/0M,KAAAmsN,QAAA1tM,MAAAk9B,UAAAj/B,IACA1c,KAAAmsN,QAAArX,UAAA90M,KAAA80M,UAAA90M,KAAA0c,IACA1c,KAAAikL,IAAA,0BACApnK,EAAAsvM,QAAA30I,SAAA36D,EAAA83L,iBAEA30M,KAAAikL,IAAA,gBAAAjkL,KAAA40M,kBAcA,SAAA1xM,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,+BAAAc,QAAmD0rS,cAAnI5jT,KAAmImsN,QAAAppC,UAAnI/iL,KAAyKgmN,aAAAztM,OAA2BmrS,SAApM1jT,KAAoM0jT,YAApM1jT,KAA+N+0E,GAAA,gBAExOp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAwBAjmE,EAxBAH,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAkB5Ii3K,EAAA7iL,EAAA,GAEA8iL,GAIAl3K,EAJAi3K,IAIsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7E1L,EAAAF,EAAA,GAIA4D,EAAA4V,SACAupK,QAAAD,EAAAtpK,SAEAnW,KAAA,WAEA2/K,cAAA,WAEAlvG,QAAA,UAEAvwE,OACAyE,OACAw7J,UAAA,GAEAtwJ,OAAAtB,OAAA4J,QACA+E,QAAArG,QACAi6D,UACAlwE,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACAlE,OAAA,EACA41K,eAAA,EACAhrG,SAAA,EACAirG,UAAA,EACAC,OAAA,IAKA7mK,UACAjc,SAAA,WACA,0BAAAgK,OAAA1J,UAAA0H,SAAA8D,KAAA1L,KAAAuH,OAAA+Q,eAEAqqK,aAAA,WACA,OAAA3iL,KAAAyS,QAAAzS,KAAAJ,SAAA,GAAAI,KAAAuH,QAEAq7K,aAAA,WACA,OAAA5iL,KAAAuH,OAAAvH,KAAAyS,OAAA,IAEAowK,aAAA,WACA,OAAA7iL,KAAA8iL,OAAAC,SAGA/iL,KAAAwjD,SAAAxjD,KAAA8iL,OAAAv7K,MAAAvH,KAAAuH,OAFAvH,KAAAqd,QAAArd,KAAAuH,MAAAvH,KAAA8iL,OAAAv7K,QAKAy7K,aAAA,WACA,QAAAhjL,KAAA8iL,OAAAC,YACA/iL,KAAA6iL,eAAA7iL,KAAA8iL,OAAAv7K,WAAAtG,QAAAjB,KAAA8iL,OAAAG,eAAAjjL,KAAA8iL,OAAAG,cAAA,KAOA1nK,OACAonK,aAAA,WACA3iL,KAAA8f,SAAA9f,KAAA8iL,OAAAI,QAAAljL,KAAAu9I,SAAA,2BAEAh2I,MAAA,SAAAgG,EAAA41K,GACA,IAAAC,EAAApjL,KAAA8iL,OACAI,EAAAE,EAAAF,OACAG,EAAAD,EAAAC,SAEA,IAAArjL,KAAA8f,UAAAojK,EAAA,CACA,GAAAG,GAAA,qBAAA91K,EAAA,YAAAvC,EAAAuC,KAAA,qBAAA41K,EAAA,YAAAn4K,EAAAm4K,KAAA51K,EAAA81K,KAAAF,EAAAE,GACA,OAEArjL,KAAAu9I,SAAA,6BAKAxhI,SACAsB,QAAA,SAAA9H,EAAAC,GACA,GAAAxV,KAAAJ,SAEO,CACP,IAAAyjL,EAAArjL,KAAA8iL,OAAAO,SACA,SAAA5jL,EAAA6jL,gBAAA/tK,EAAA8tK,MAAA,EAAA5jL,EAAA6jL,gBAAA9tK,EAAA6tK,GAHA,OAAA9tK,IAAAC,GAMAguC,SAAA,WACA,IAAA3mC,EAAA7c,KAEA4L,EAAA9G,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACAvE,EAAAuE,UAAA,GAEA,IAAA9E,KAAAJ,SACA,OAAAgM,EAAA9L,QAAAS,IAAA,EAEA,IACA8iL,EADAE,GACAF,EAAAxmK,EAAAimK,OAAAO,UAEAt2K,EAAAnB,EAAAwH,KAAA,SAAAzG,GACA,SAAAlN,EAAA6jL,gBAAA32K,EAAA02K,MAAA,EAAA5jL,EAAA6jL,gBAAA/iL,EAAA8iL,OAKA,2BAAAE,EAAA,YAAAv4K,EAAAu4K,MAAAx2K,OAAA,GAGAy2K,oBAAA,SAAAj2K,GACAvN,KAAAwiL,cAAAj1K,GAEAk2K,UAAA,WACAzjL,KAAA0zE,UAAA1zE,KAAAwiL,gBACAxiL,KAAA8iL,OAAAY,WAAA1jL,KAAA8iL,OAAAr6K,QAAA3I,QAAAE,QAGA2jL,kBAAA,YACA,IAAA3jL,KAAA0zE,WAAA,IAAA1zE,KAAAwiL,eACAxiL,KAAAu9I,SAAA,gCAAAv9I,MAAA,KAGA4jL,YAAA,SAAA7tH,GACA/1D,KAAAw3E,QAAA,IAAAlvE,QAAA,EAAA7I,EAAAokL,oBAAA9tH,GAAA,KAAA4F,KAAA37D,KAAA2iL,eAAA3iL,KAAA8f,QACA9f,KAAAw3E,SACAx3E,KAAA8iL,OAAAgB,yBAKAhkK,QAAA,WACA9f,KAAA8iL,OAAAr6K,QAAAlH,KAAAvB,MACAA,KAAA8iL,OAAAiB,cAAAxiL,KAAAvB,MACAA,KAAA8iL,OAAAkB,eACAhkL,KAAA8iL,OAAAgB,uBAEA9jL,KAAAikL,IAAA,cAAAjkL,KAAA4jL,aACA5jL,KAAAikL,IAAA,sBAAAjkL,KAAAwjL,sBAEAxjK,cAAA,WACAhgB,KAAA8iL,OAAAoB,gBAAAlkL,KAAA8iL,OAAAr6K,QAAA3I,QAAAE,UAMA,SAAAkD,EAAAqhD,EAAAhlD,GAEA,aACA,IAMA+0E,GAAiB7wE,OANjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,MAAgBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,2BAAAc,OAC5LwS,SAAA6pD,EAAAsuG,aACAruG,cAAAD,EAAAb,UAAAa,EAAAiuG,eAAAjuG,EAAAyuG,aACAN,MAAAnuG,EAAAmuG,OACGhjK,IAAK4kK,WAAA/vG,EAAAkvG,UAAA5uG,MAAA,SAAA0vG,GAAoDA,EAAAC,kBAAyBjwG,EAAAovG,kBAAAY,OAAgChwG,EAAAQ,GAAA,WAAA79D,EAAA,QAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAouG,oBAAA,IAEpGhrK,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4V,SACAjI,KAAA,WACA,OACA+yS,aAAA,IAKAhoS,UACAioS,mBAAA,WACA,OAAA9jT,KAAAyI,QAAA2e,OAAA,SAAAnK,GACA,OAAAA,EAAAu6D,UACOqgC,MAAA,SAAA56F,GACP,OAAAA,EAAAy2D,aAKAn4D,OACAmoK,WAAA,SAAAn2K,GACA,IAAAsP,EAAA7c,KAEA,iBAAAuN,MAAA,IACAvN,KAAA6jT,YAAA7jT,KAAAyI,QAAA8E,QAEAvN,KAAAyI,QAAAqB,QAAA,SAAAmT,GACAA,EAAAylK,MAAA7lK,EAAAgnS,cAAA5mS,MAKAlB,SACAgoS,gBAAA,SAAAjhQ,GACA,IAAA5kC,EAAAle,KAEA,GAAAA,KAAAw3E,SAIA,OAAAx3E,KAAAyI,QAAAxH,QAAA,IAAAjB,KAAA8jL,uBACA9jL,KAAA8jT,mBAAA,CACA,SAAAhhQ,GACA9iD,KAAA0jL,aACA1jL,KAAA0jL,aAAA1jL,KAAAyI,QAAAxH,SACAjB,KAAA0jL,WAAA,IAES,SAAA5gI,IACT9iD,KAAA0jL,aACA1jL,KAAA0jL,WAAA,IACA1jL,KAAA0jL,WAAA1jL,KAAAyI,QAAAxH,OAAA,IAGA,IAAAgc,EAAAjd,KAAAyI,QAAAzI,KAAA0jL,aACA,IAAAzmK,EAAAy2D,WAAA,IAAAz2D,EAAAulK,eAAAvlK,EAAAu6D,SACAx3E,KAAA+jT,gBAAAjhQ,GAEA9iD,KAAAuc,UAAA,WACA,OAAA2B,EAAA+iS,eAAA/iS,EAAA2lS,qBArBA7jT,KAAAw3E,SAAA,MA8BA,SAAAt0E,EAAAqhD,EAAAhlD,GAEA,aACA,IAGA+0E,GAAiB7wE,OAHjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,YAAAn1D,WAAA,gBAA8FhI,YAAA,YAAAc,OAAAq8D,EAAAyqO,WAAA,cAAAzqO,EAAAyqO,WAAA,IAAAt/R,IAA2Fm1D,MAAA,SAAA0vG,GAAyBA,EAAAC,kBAAyBjwG,EAAAmuO,WAAAn+H,OAAyBhwG,EAAA,SAAAr9D,EAAA,OAA2B0B,IAAA,OAAAxB,YAAA,kBAAAmB,OAAiDyrS,YAAAzvO,EAAA0rO,WAAA,WAA4C1rO,EAAAqrO,cAAArrO,EAAA7pD,SAAAzpB,OAAAiW,EAAA,QAAAA,EAAA,UAAoEG,OAAOy7R,UAAAv+N,EAAAgqO,eAAA1sR,KAAA0iD,EAAA0qO,gBAAAlM,IAAAx+N,EAAA7pD,SAAA,GAAA+3J,SAAAj/K,KAAA,OAAAygT,sBAAA,IAAgIvkS,IAAKo5D,MAAA,SAAAyrG,GAAyBhwG,EAAAquO,UAAAr+H,EAAAhwG,EAAA7pD,SAAA,QAAyCxT,EAAA,QAAaE,YAAA,yBAAmCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA7pD,SAAA,GAAAi4J,mBAAApuG,EAAA7pD,SAAAzpB,OAAA,EAAAiW,EAAA,UAA0FG,OAAOy7R,UAAA,EAAAjhR,KAAA0iD,EAAA0qO,gBAAAz7S,KAAA,OAAAygT,sBAAA,MAAoF/sS,EAAA,QAAaE,YAAA,yBAAmCm9D,EAAA18D,GAAA,KAAA08D,EAAA6vF,GAAA7vF,EAAA7pD,SAAAzpB,OAAA,QAAAszE,EAAAO,MAAA,GAAAP,EAAAO,KAAAP,EAAAqrO,aAAggBrrO,EAAAO,KAAhgB59D,EAAA,oBAAoHwI,IAAIwkS,cAAA3vO,EAAAksO,mBAAoClsO,EAAA9E,GAAA8E,EAAA,kBAAA5nE,GAAsC,OAAAuK,EAAA,UAAoBnN,IAAAwqE,EAAA0uO,YAAAt2S,GAAA0K,OAAiCy7R,UAAAv+N,EAAAgqO,eAAA1sR,KAAA0iD,EAAA0qO,gBAAAlM,IAAApmS,EAAA81K,SAAAj/K,KAAA,OAAAygT,sBAAA,IAAqHvkS,IAAKo5D,MAAA,SAAAyrG,GAAyBhwG,EAAAquO,UAAAr+H,EAAA53K,OAA8BuK,EAAA,QAAaE,YAAA,yBAAmCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAAz3J,EAAAg2K,sBAAwCpuG,EAAA,WAAAr9D,EAAA,SAAyCktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoExG,IAAA,QAAAxB,YAAA,mBAAAc,OAAAq8D,EAAAyqO,WAAA,MAAAzqO,EAAAyqO,WAAA,IAAAzmS,OAA4GS,MAAAu7D,EAAAyrO,YAAA,KAAAgE,YAAAzvO,EAAA0rO,WAAA,SAAyE5oS,OAAS7T,KAAA,OAAAkwE,SAAAa,EAAAgqO,eAAA51E,aAAAp0J,EAAAwwJ,cAA4E8D,UAAWthO,MAAAgtE,EAAA,OAAoB70D,IAAK6tB,MAAAgnC,EAAA2yI,YAAA+e,KAAA,SAAA1hD,GAAgDhwG,EAAA4rO,WAAA,GAAsBtrO,MAAA,SAAA0vG,GAA0BA,EAAAC,mBAA0B2/H,MAAA5vO,EAAAysO,kBAAA3O,SAAA99N,EAAAstO,gBAAA,SAAAt9H,GAA+E,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAuE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAwvO,gBAAA,SAA4B,SAAAx/H,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAwvO,gBAAA,SAA4B,SAAAx/H,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAouO,aAAAp+H,IAAyB,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,SAAA33F,EAAAx6K,KAAsE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAiD,SAAA,GAAoB,SAAA+sG,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,gBAAA33F,EAAAx6K,KAA6E,YAAewqE,EAAAqtO,cAAAr9H,KAA0BukD,iBAAAv0J,EAAAiyJ,kBAAAuC,kBAAAx0J,EAAAiyJ,kBAAAwC,eAAAz0J,EAAAiyJ,kBAAAt8N,OAAA,SAAAq6K,GAAsJA,EAAAhkL,OAAAmiQ,YAAsCnuL,EAAAxe,MAAAwuH,EAAAhkL,OAAAgH,QAA8BgtE,EAAA6uO,yBAA4B7uO,EAAAO,MAAA,GAAAP,EAAAO,KAAA59D,EAAA,YAAuC0B,IAAA,YAAAV,OAAuBksS,WAAA7vO,EAAAiD,SAA0BngE,OAAQ7T,KAAA,OAAAwkO,YAAAzzJ,EAAA+rO,mBAAA19S,KAAA2xE,EAAA3xE,KAAAlB,GAAA6yE,EAAA7yE,GAAA2iT,gBAAA9vO,EAAAwwJ,aAAAlzM,KAAA0iD,EAAAyqO,WAAAtrO,SAAAa,EAAAgqO,eAAA15E,SAAAtwJ,EAAAswJ,SAAAy/E,kBAAA,GAAmN5kS,IAAK6tB,MAAAgnC,EAAA2yI,YAAA+e,KAAA1xJ,EAAA4yI,YAA8CmuC,UAAW6uD,MAAA,SAAA5/H,GAAyBhwG,EAAA4uO,uBAAA5+H,IAAmC8tH,SAAA,SAAA9tH,GAA6B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAuE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAwvO,gBAAA,SAA4B,SAAAx/H,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAwvO,gBAAA,SAA4B,SAAAx/H,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAouO,aAAAp+H,IAAyB,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,SAAA33F,EAAAx6K,KAAsE,YAAew6K,EAAAC,kBAAyBD,EAAAoN,iBAAwBp9G,EAAAiD,SAAA,GAAoB,SAAA+sG,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAewqE,EAAAiD,SAAA,IAAoB+sO,MAAA,SAAAhgI,GAA2BhwG,EAAA4uO,uBAAA5+H,IAAmCD,WAAA,SAAAC,GAA+BhwG,EAAAiqO,eAAA,GAAyB73F,WAAA,SAAApiC,GAA+BhwG,EAAAiqO,eAAA,IAA2BjnR,OAAQhwB,MAAAgtE,EAAA,cAAApyE,SAAA,SAAAqiT,GAAmDjwO,EAAA6rO,cAAAoE,GAAsBplS,WAAA,mBAA6Bm1D,EAAAz7D,OAAA,OAAA5B,EAAA,YAAqCG,OAAO20O,KAAA,UAAgBA,KAAA,WAAez3K,EAAAQ,GAAA,cAAAR,EAAAO,KAAA59D,EAAA,KAAwCgB,OAAA,+CAAAq8D,EAAAovF,WAAAtsJ,OAAgF20O,KAAA,UAAgBtsO,IAAKm1D,MAAAN,EAAAktO,iBAA4Bz1D,KAAA,YAAe,GAAA90O,EAAA,cAAuBG,OAAOzU,KAAA,kBAAwB8c,IAAK+kS,eAAAlwO,EAAA6sO,gBAAA8C,cAAA3vO,EAAA6gI,aAAgEl+L,EAAA,kBAAuBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAAiD,UAAA,IAAAjD,EAAAkqO,UAAAr/R,WAAA,mCAAwHxG,IAAA,SAAAvB,OAAsBqtS,iBAAAnwO,EAAAsrO,sBAAyC3oS,EAAA,gBAAqBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA9rE,QAAAxH,OAAA,IAAAszE,EAAA57D,QAAAyG,WAAA,mCAAwHxG,IAAA,YAAAV,OAAyBysS,YAAApwO,EAAAwqO,aAAAxqO,EAAAxe,OAAA,IAAAwe,EAAAuvG,sBAA8EzsK,OAAQ8zM,IAAA,KAAAy5F,aAAA,2BAAAC,aAAA,8BAA4FtwO,EAAA,cAAAr9D,EAAA,aAAsCG,OAAO9P,MAAAgtE,EAAAxe,MAAAj2C,QAAA,MAAgCy0D,EAAAO,KAAAP,EAAAQ,GAAA,eAAAR,EAAAkqO,aAC5nLlqO,EAAAwqO,aAAAxqO,EAAA57D,SAAA47D,EAAAwqO,aAAA,IAAAxqO,EAAA9rE,QAAAxH,QAAAiW,EAAA,KAAuGE,YAAA,8BAAwCm9D,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAkqO,WAAA,cAAAlqO,EAAAO,MAAA,YAE9Hn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAy2K,EAAAriL,EAAA,IAEAsiL,GAEA12K,EAFAy2K,IAEsCz2K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E02K,EAAA9oK,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAstJ,EAAA9oK,QAAAnW,KAAAi/K,EAAA9oK,UAGA5V,EAAA4V,QAAA8oK,EAAA9oK,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAwua,EAAAp6a,EAAA,KAEAq6a,GAEAzua,EAFAwua,IAEsCxua,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eyua,EAAA7ga,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAqlZ,EAAA7ga,QAAAnW,KAAAg3a,EAAA7ga,UAGA5V,EAAA4V,QAAA6ga,EAAA7ga,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAsya,EAAAt6a,EAAA,KACAu6a,EAAAv6a,EAAA6+C,EAAAy7X,GACAE,EAAAx6a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA2mW,EAAAvka,EACAwka,EAAA,GATA,EAEA,KAEA,KAEA,MAUAx1X,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAupK,QAAAD,EAAAtpK,SAEAnW,KAAA,gBAEA2/K,cAAA,gBAEAz/K,OACA2P,MAAAtB,OACAuiE,UACAlwE,KAAAiW,QACAV,SAAA,IAIAjI,KAAA,WACA,OACA0mE,SAAA,IAKAj8D,OACAm4D,SAAA,SAAAnmE,GACAvN,KAAAi9S,UAAA,iCAAA1vS,KAIAwO,SACA6nK,YAAA,WACA5jL,KAAAw3E,QAAAx3E,KAAA0sP,WAAA7gP,MAAAC,QAAA9L,KAAA0sP,YAAA1sP,KAAA0sP,UAAAt5O,KAAA,SAAA6J,GACA,WAAAA,EAAAu6D,YAKA13D,QAAA,WACA9f,KAAAikL,IAAA,cAAAjkL,KAAA4jL,cAEA7jK,QAAA,WACA/f,KAAA0zE,UACA1zE,KAAAi9S,UAAA,iCAAAj9S,KAAA0zE,aAiBA,SAAAxwE,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAA0BC,EAAvClX,KAAuCmX,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,MAAgBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAA5FvH,KAA4F,QAAAof,WAAA,YAAsEhI,YAAA,0BAAsCF,EAAA,MAAWE,YAAA,2BAAnNpX,KAAwP6X,GAAxP7X,KAAwPokK,GAAxPpkK,KAAwPyS,UAAAyE,EAAA,MAAAA,EAAA,MAAgDE,YAAA,oBAAxSpX,KAAsU+0E,GAAA,oBAE/Up9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAynE,EAAArzE,EAAA,KAEAszE,GAEA1nE,EAFAynE,IAEsCznE,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E0nE,EAAA95D,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAs+C,EAAA95D,QAAAnW,KAAAiwE,EAAA95D,UAGA5V,EAAA4V,QAAA85D,EAAA95D,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAwrE,EAAAxzE,EAAA,KACAyzE,EAAAzzE,EAAA6+C,EAAA20B,GACAE,EAAA1zE,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAH,EAAAz9D,EACA09D,EAAA,GATA,EAEA,KAEA,KAEA,MAUA1uB,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EA0BAjuE,EAAA4V,SACAnW,KAAA,WAEAywE,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAjW,OACAU,MACAA,KAAA2N,OACA4H,QAAA,WAEA8Y,KAAA1gB,OACAqiE,MACAhwE,KAAA2N,OACA4H,QAAA,IAEA06D,YACAjwE,KAAA2N,OACA4H,QAAA,UAEAJ,QAAAc,QACAi6D,SAAAj6D,QACAk6D,MAAAl6D,QACAm6D,UAAAn6D,QACArP,MAAAqP,QACAo6D,OAAAp6D,SAGAoC,UACAi4D,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCC,WAAA,WACA,OAAAh0E,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtEqiD,eAAA,WACA,OAAAl0E,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,WAIhD33D,SACAo4D,YAAA,SAAAC,GACAp0E,KAAAge,MAAA,QAAAo2D,OAOA,SAAAlxE,EAAAqhD,EAAAhlD,GAEA,aACA,IAYA+0E,GAAiB7wE,OAZjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,UAAoBE,YAAA,YAAAc,OAC7Gq8D,EAAA/wE,KAAA,cAAA+wE,EAAA/wE,KAAA,GACA+wE,EAAAP,WAAA,cAAAO,EAAAP,WAAA,IAEAQ,cAAAD,EAAAL,eACAO,aAAAF,EAAA57D,QACA+7D,WAAAH,EAAAZ,MACAgB,WAAAJ,EAAAnqE,MACAwqE,YAAAL,EAAAV,SAEAx8D,OAAWq8D,SAAAa,EAAAL,gBAAAK,EAAA57D,QAAAi7D,UAAAW,EAAAX,UAAApwE,KAAA+wE,EAAAd,YAA6F/zD,IAAKm1D,MAAAN,EAAAJ,eAAyBI,EAAA,QAAAr9D,EAAA,KAAwBE,YAAA,oBAA8Bm9D,EAAAO,KAAAP,EAAAf,OAAAe,EAAA57D,QAAAzB,EAAA,KAA8CgB,MAAAq8D,EAAAf,OAAee,EAAAO,KAAAP,EAAAz7D,OAAA,QAAA5B,EAAA,QAAAq9D,EAAAQ,GAAA,eAAAR,EAAAO,QAExOn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAqrS,EAAAj3S,EAAA,KAEAk3S,GAEAtrS,EAFAqrS,IAEsCrrS,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EsrS,EAAA19R,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkiR,EAAA19R,QAAAnW,KAAA6zS,EAAA19R,UAGA5V,EAAA4V,QAAA09R,EAAA19R,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAmvS,EAAAn3S,EAAA,KACAo3S,EAAAp3S,EAAA6+C,EAAAs4P,GACAE,EAAAr3S,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAwjO,EAAAphS,EACAqhS,EAAA,GATA,EAEA,KAEA,KAEA,MAUAryP,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAOAjuE,EAAA4V,SACAnW,KAAA,kBAKA,SAAAM,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,oBAAhFpX,KAA8G+0E,GAAA,gBAEvHp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA6ua,EAAAz6a,EAAA,KAEA06a,GAEA9ua,EAFA6ua,IAEsC7ua,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E8ua,EAAAlha,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA0lZ,EAAAlha,QAAAnW,KAAAq3a,EAAAlha,UAGA5V,EAAA4V,QAAAkha,EAAAlha,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA2ya,EAAA36a,EAAA,KACA46a,EAAA56a,EAAA6+C,EAAA87X,GACAE,EAAA76a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAgnW,EAAA5ka,EACA6ka,EAAA,GATA,EAEA,KAEA,KAEA,MAUA71X,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAylW,EAAA3/V,EAFA33E,EAAA,KAMAqmN,EAAA1uI,EAFA33E,EAAA,KAIAmrN,EAAAnrN,EAAA,IAIA86a,EAAAnjW,EAFA33E,EAAA,MAMAm+S,EAAAxmO,EAFA33E,EAAA,IAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAMA+6a,EAAApjW,EAFA33E,EAAA,MAMAg7a,EAAArjW,EAFA33E,EAAA,MAMAi7a,EAAAtjW,EAFA33E,EAAA,MAMAk7a,EAAAvjW,EAFA33E,EAAA,MAMAm7a,EAAAxjW,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAwva,EAAA,EAuNAx3a,EAAA4V,SACAnW,KAAA,UAEA0/K,QAAAo7H,EAAA3kS,QAAAorN,EAAAprN,SAEAqrK,YACAw2P,WAAAP,EAAAtha,SAGAjW,OACAgO,MACAtN,KAAAqI,MACAkN,QAAA,WACA,WAIA8Y,KAAA1gB,OAEA6H,OAAA7H,OAAA4J,QAEA9B,QAAA9H,OAAA4J,QAEAmtN,WAAA/2N,OAAA4J,QAEA8/Z,KACAr3a,KAAAiW,QACAV,SAAA,GAGA+ha,OAAArha,QAEA8hS,OAAA9hS,QAEAogZ,QAAA1oZ,OAAAgI,UAEA20C,WAEAitX,YACAv3a,KAAAiW,QACAV,SAAA,GAGAiia,YAAAvha,QAEAynW,QAAA/vW,OAEA8pa,cAAA9ha,SAEA+ha,cAAA/pa,OAAAgI,UAEAgia,UAAAvxa,OAAAuP,UAEAiia,eAAAjqa,OAAAgI,UAEAkia,WAAAzxa,OAAAuP,UAEAmia,oBAAAnqa,OAAAgI,UAEAoia,gBAAA3xa,OAAAuP,UAEAqia,qBAAArqa,OAAAgI,UAEAsia,iBAAA7xa,OAAAuP,UAEAuia,oBAAAjia,QAEAkia,eAAAxqa,OAAA4J,QAEA0jS,UAAAttS,OAEAyqa,cAAA/va,MAEAgwa,iBAAApia,QAEAqia,YAAAlya,OAEAmya,cAAA5qa,OAEA6qa,WAAA7ia,SAEA8ia,uBACAz4a,KAAAiW,QACAV,SAAA,IAIAqb,YACA8nZ,YAAAzB,EAAA1ha,QACAoja,YAAAzB,EAAA3ha,QACAqja,UAAA5B,EAAAzha,QACAsja,WAAAxF,EAAA99Z,SAGAgD,SACAmqN,mBAAA,WACA,OACA3sN,QACA+ia,OAAA,wCAIAC,cAAA,SAAAtra,GACAjR,KAAA6+K,MAAA29P,OAAA,gBAAAvra,IAEAwra,mBAAA,SAAAxra,EAAAyZ,GACA1qB,KAAA6+K,MAAA49P,mBAAAxra,EAAAyZ,GACA1qB,KAAA6+K,MAAA69P,qBAEAC,mBAAA,SAAA1ra,EAAA2ra,GACA58a,KAAA6+K,MAAA89P,mBAAA1ra,EAAA2ra,IAEAhhI,eAAA,WACA57S,KAAA6+K,MAAA+8H,kBAEAqlE,YAAA,WACAjhX,KAAA6+K,MAAAoiM,eAEA47D,UAAA,WACA78a,KAAA6+K,MAAAg+P,aAEAC,iBAAA,WACA98a,KAAA6+K,MAAA29P,OAAA,oBACAx8a,KAAA+8a,aAAA/8a,KAAA+8a,WAAA,OAEAC,cAAA,WACAh9a,KAAAs3B,OAAA0lZ,gBACAh9a,KAAAs3B,OAAA2lZ,sBAEAC,sBAAA,SAAA3lX,EAAAzmD,GACA,IAAAqsa,EAAAn9a,KAAAm9a,YACA,GAAAp1a,KAAAY,IAAAmI,EAAA4qO,OAAA,GACA,IAAA0hM,EAAAD,EAAAj/X,UACAptC,EAAA8qO,OAAA,OAAAwhM,GACA7lX,EAAAo6H,iBAEA7gL,EAAA8qO,OAAA,GAAAuhM,EAAAt7X,aAAAs7X,EAAAvga,aAAAwga,GACA7lX,EAAAo6H,iBAEAwrP,EAAAj/X,WAAAn2C,KAAAowC,KAAArnC,EAAA8qO,OAAA,QAEAuhM,EAAAh/X,YAAAp2C,KAAAowC,KAAArnC,EAAA6qO,OAAA,IAGA0hM,6BAAA,SAAA9lX,EAAAzmD,GACA,IAAA6qO,EAAA7qO,EAAA6qO,OACAC,EAAA9qO,EAAA8qO,OAEA7zO,KAAAY,IAAAgzO,IAAA5zO,KAAAY,IAAAizO,KACArkL,EAAAo6H,iBACA3xL,KAAAm9a,YAAAh/X,YAAArtC,EAAA6qO,OAAA,IAGA2hM,WAAA,WACA,IAAAC,EAAAv9a,KAAAye,MACA++Z,EAAAD,EAAAC,cACAC,EAAAF,EAAAE,cAEAr9M,EAAApgO,KAAAye,MACAtS,EAAAnM,KAEAA,KAAAm9a,YAAAv+Z,iBAAA,oBACA4+Z,MAAAr/X,WAAAn+C,KAAAm+C,YACAs/X,MAAAt/X,WAAAn+C,KAAAm+C,YACAiiL,EAAAs9M,mBAAAt9M,EAAAs9M,iBAAAx/X,UAAAl+C,KAAAk+C,WACAkiL,EAAAu9M,wBAAAv9M,EAAAu9M,sBAAAz/X,UAAAl+C,KAAAk+C,WACA,IAAA0/X,EAAA59a,KAAA8hD,YAAA9hD,KAAA80C,YAAA,EACAqJ,EAAAn+C,KAAAm+C,WAEAhyC,EAAA0xa,eADA1/X,GAAAy/X,EACA,QACS,IAAAz/X,EACT,OAEA,WAIAn+C,KAAA66a,MACA,EAAAnwN,EAAApsM,mBAAAte,KAAA0c,IAAA1c,KAAA89a,iBAGAA,eAAA,WACA,GAAA99a,KAAA+9a,OAAA,CACA,IAAAC,GAAA,EACAv9a,EAAAT,KAAA0c,IACAuha,EAAAj+a,KAAAk+a,YACAC,EAAAF,EAAAjla,MACAola,EAAAH,EAAAhla,OAGAD,EAAAvY,EAAAq0C,YACAqpY,IAAAnla,IACAgla,GAAA,GAGA,IAAA/ka,EAAAxY,EAAA08C,cACAn9C,KAAAiZ,QAAAjZ,KAAAq+a,qBAAAD,IAAAnla,IACA+ka,GAAA,GAGAA,IACAh+a,KAAAk+a,YAAAlla,QACAhZ,KAAAk+a,YAAAjla,SACAjZ,KAAAs+a,cAGAA,SAAA,WACAt+a,KAAAs3B,OAAA2lZ,qBACAj9a,KAAAq+a,oBACAr+a,KAAAs3B,OAAAinZ,mBAGAjpa,KAAA,SAAAxU,EAAAuU,GACArV,KAAA6+K,MAAA29P,OAAA,QAAiC17a,OAAAuU,WAEjCmpa,mBAAA,WACAx+a,KAAA6+K,MAAA29P,OAAA,wBAIA18Z,QAAA,WACA,IAAAjD,EAAA7c,KAEAA,KAAAy+a,QAAA,YAAA9D,IACA36a,KAAA0+a,uBAAA,EAAA94N,EAAA7sM,SAAA,cACA,OAAA8D,EAAAyha,cAKAzia,UACA8ia,UAAA,WACA,OAAA3+a,KAAA6xB,OAAA7xB,KAAAi0E,cAA8CpiD,MAE9CsrZ,YAAA,WACA,OAAAn9a,KAAAye,MAAA0+Z,aAEAkB,mBAAA,WACA,OAAAr+a,KAAAiZ,QAAAjZ,KAAAkoO,WAAAloO,KAAA4+a,aAAA39a,OAAA,GAAAjB,KAAA6+a,kBAAA59a,OAAA,GAEA69a,UAAA,WACA,OAAA9+a,KAAA6+K,MAAAkgQ,OAAAD,WAEAlra,QAAA,WACA,OAAA5T,KAAA6+K,MAAAkgQ,OAAAnra,SAEAora,UAAA,WACA,OAAAh/a,KAAA6+K,MAAAkgQ,OAAAjua,MAEA8ta,aAAA,WACA,OAAA5+a,KAAA6+K,MAAAkgQ,OAAAH,cAEAC,kBAAA,WACA,OAAA7+a,KAAA6+K,MAAAkgQ,OAAAF,mBAEAI,UAAA,WACA,IAAA5zO,EAAArrM,KAAAs3B,OACA2nZ,EAAA5zO,EAAA4zO,UACAhnB,EAAA5sN,EAAA4sN,QACAC,EAAA7sN,EAAA6sN,YAEA,OAAA+mB,KAAAhnB,EAAAC,EAAA,YAEAgnB,WAAA,WACA,OAAAl/a,KAAAiZ,QAEAA,OAAAjZ,KAAAs3B,OAAA4nZ,WAAAl/a,KAAAs3B,OAAA4nZ,WAAA,SAEOl/a,KAAAkoO,WAEPi3M,cAAAn/a,KAAA+6a,WAAA/6a,KAAAkoO,UAAAloO,KAAAs3B,OAAA8nZ,aAAAp/a,KAAAs3B,OAAA+nZ,aAAAr/a,KAAAkoO,UAAAloO,KAAAs3B,OAAA+nZ,cAAA,UAKAC,gBAAA,WACA,GAAAt/a,KAAAiZ,OACA,OACAA,OAAAjZ,KAAAs3B,OAAAgoZ,gBAAAt/a,KAAAs3B,OAAAgoZ,gBAAA,SAEO,GAAAt/a,KAAAkoO,UAAA,CACP,IAAAA,EAAAloO,KAAAs3B,OAAAioZ,QAAAv/a,KAAAkoO,UAAAloO,KAAAs3B,OAAA4gY,YAAAl4Z,KAAAkoO,UAQA,OANAloO,KAAA+6a,aACA7yM,GAAAloO,KAAAs3B,OAAA8nZ,eAMAD,cAHAj3M,GAAAloO,KAAAs3B,OAAA+nZ,cAGA,MAIA,UAEAG,YAAA,WACA,OAAAx/a,KAAAkoO,UACAloO,KAAAg7a,aAEAlma,OAAA,IAIAA,OAAA9U,KAAAs3B,OAAAioZ,SAAAv/a,KAAA8Q,KAAA7P,OAAAjB,KAAAs3B,OAAA4gY,YAAA,SAGAl4Z,KAAAg7a,aAEA/ha,OAAAjZ,KAAAs3B,OAAAmoZ,YAAAz/a,KAAAs3B,OAAAmoZ,YAAA,UAIAxma,OAAAjZ,KAAAs3B,OAAAooZ,eAAA1/a,KAAAs3B,OAAAooZ,eAAA,WAMAnka,OACAtC,QACAy7L,WAAA,EACAj5L,QAAA,SAAAlU,GACAvH,KAAAs3B,OAAAqoZ,UAAAp4a,KAIA2gO,WACAxzB,WAAA,EACAj5L,QAAA,SAAAlU,GACAvH,KAAAs3B,OAAAsoZ,aAAAr4a,KAIAo0a,cAAA,SAAAx7O,GACAngM,KAAA6+K,MAAAghQ,iBAAA1/O,IAIArvL,MACA4jM,WAAA,EACAj5L,QAAA,SAAAlU,GACA,IAAA2W,EAAAle,KAEAA,KAAA6+K,MAAA29P,OAAA,UAAAj1a,GACAvH,KAAA+9a,QACA/9a,KAAAuc,UAAA,WACA2B,EAAAoga,eAMA1C,eACAlnO,WAAA,EACAj5L,QAAA,SAAA0kL,GACAA,GACAngM,KAAA6+K,MAAAihQ,iBAAA3/O,MAMAonB,UAAA,WACAvnN,KAAA89a,iBAAA,EAAApzN,EAAAnsM,sBAAAve,KAAA0c,IAAA1c,KAAA89a,iBAEA/9Z,QAAA,WACA,IAAAf,EAAAhf,KAEAA,KAAAs9a,aACAt9a,KAAA6+K,MAAAkhQ,gBACA//a,KAAAs+a,WAEAt+a,KAAAk+a,aACAlla,MAAAhZ,KAAA0c,IAAAo4B,YACA77B,OAAAjZ,KAAA0c,IAAAygC,cAIAn9C,KAAA6+K,MAAAkgQ,OAAAnra,QAAA9J,QAAA,SAAA6jB,GACAA,EAAAqyZ,eAAAryZ,EAAAqyZ,cAAA/+a,QACA+d,EAAA6/J,MAAA29P,OAAA,gBACA7uZ,SACAyD,OAAAzD,EAAAqyZ,cACA77Y,QAAA,MAKAnkC,KAAA+9a,QAAA,GAEAjta,KAAA,WACA,IAAA+tK,EAAA,IAAAy7P,EAAAvha,QAAA/Y,MACA65Z,OAAA75Z,KAAA65Z,OACAgiB,iBAAA77a,KAAA67a,iBACAI,sBAAAj8a,KAAAi8a,wBAQA,OACA3kZ,OAPA,IAAAijZ,EAAAxha,SACA8lK,QACAiiM,MAAA9gX,KACA66a,IAAA76a,KAAA66a,IACAE,WAAA/6a,KAAA+6a,aAIAl8P,QACAohQ,UAAA,EACAC,eAAA,KACAC,oBAAA,EACAjC,aACAlla,MAAA,KACAC,OAAA,MAGA2/C,SAAA,EACAilX,eAAA,WAOA,SAAA36a,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi1a,EAAA7gb,EAAA,KAEA8gb,GAEAl1a,EAFAi1a,IAEsCj1a,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAm1a,EAAA,oBAAAzhY,qBAAAC,UAAAxmC,cAAAxY,QAAA,cAWAqD,EAAA4V,SACAvO,KAAA,SAAA/J,EAAA4sQ,GAVA,IAAA5mO,EAAAtkC,EAAAskC,EAWAhmC,EAXA0B,EAWAkrQ,EAAA9lQ,MAVAk/B,KAAA7nB,kBACA6nB,EAAA7nB,iBAAA0ha,EAAA,uCAAA/oX,GACA,IAAAymI,GAAA,EAAAqiP,EAAAtna,SAAAw+C,GACAp1D,KAAAoK,MAAAvM,MAAAu3D,EAAAymI,SAaA,SAAA96L,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA6F,EAAAC,EAFA33E,EAAA,IAMAqmN,EAAA1uI,EAFA33E,EAAA,KAMA43E,EAAAD,EAFA33E,EAAA,KAIA4uD,EAAA5uD,EAAA,GAEAE,EAAAF,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAo1a,EAAA,SAAAzva,EAAAiua,GACA,IAAAyB,EAAAzB,EAAAyB,cACA,OAAAA,GAAA,iBAAAA,EAAAC,UAGA,EAAAhhb,EAAAkmZ,SAAA70Y,EAAAiua,EAAA2B,SAAA3B,EAAAroE,UAAA8pE,EAAAhnB,WAAAgnB,EAAA/mB,QAFA3oZ,GAKA6va,EAAA,SAAAvhX,EAAAy6V,GACA,IAAA+mB,KAIA,OAHAxhX,OAAAt1D,QAAA,SAAAmH,EAAArE,GACAg0a,GAAA,EAAAnhb,EAAAy5Z,gBAAAjoZ,EAAA4oZ,KAAwD5oZ,MAAArE,WAExDg0a,GAGAnE,EAAA,SAAAsC,EAAA9ta,EAAAyZ,GACA,IAAAisQ,GAAA,EACAmoJ,EAAAC,EAAAD,UACAlya,EAAAkya,EAAAh/a,QAAAmR,GAmBA,YAlBA,IAAAyZ,GACA,IAAA9d,GACAkya,EAAAv9a,KAAA0P,GACA0lR,GAAA,IAEAmoJ,EAAAx9a,OAAAsL,EAAA,GACA+pR,GAAA,GAGAjsQ,IAAA,IAAA9d,GACAkya,EAAAv9a,KAAA0P,GACA0lR,GAAA,IACKjsQ,GAAA9d,GAAA,IACLkya,EAAAx9a,OAAAsL,EAAA,GACA+pR,GAAA,GAIAA,GAiCAkqJ,EAAA,SAAA//D,GACA,IAAAggE,EAAAh8a,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEA,IAAAg8W,EACA,UAAAzhT,MAAA,sBAmCA,QAAAv+D,KAjCAd,KAAA8gX,QAEA9gX,KAAA++a,QACAllB,OAAA,KACAknB,YACAC,iBACApta,WACAgra,gBACAC,qBACAoC,eACAC,oBACAC,yBACAC,kBAAA,EACAC,uBAAA,EACAC,4BAAA,EACAC,WAAA,EACAC,aAAA,KACA1wa,KAAA,KACA0va,cAAA,KACAE,SAAA,KACAhqE,UAAA,KACA+qE,eAAA,EACA3C,aACA4C,kBAAA,EACAC,WAAA,KACAC,WAAA,KACAC,SAAA,KACA1iL,WACA2iL,cACAjG,kBAAA,EACAI,uBAAA,GAGA6E,EACAA,EAAAj+a,eAAA/B,IAAAd,KAAA++a,OAAAl8a,eAAA/B,KACAd,KAAA++a,OAAAj+a,GAAAggb,EAAAhgb,KAKA+/a,EAAA3gb,UAAA6hb,WACAhlQ,QAAA,SAAAgiQ,EAAAjua,GACA,IAAA+L,EAAA7c,KAEAgib,EAAAjD,EAAA9ia,QAAAnL,EACAiua,EAAA9ia,MAAAnL,EAEAlH,OAAAC,KAAAk1a,EAAA5/K,SAAAr1P,QAAA,SAAA8vZ,GACA,IAAAxoY,EAAA2tZ,EAAA5/K,QAAAy6J,GACA,GAAAxoY,GAAA,IAAAA,EAAAnwB,OAAA,CACA,IAAA0sB,GAAA,EAAAluB,EAAA25Z,eAAAv8Y,EAAAkia,OAAAnlB,GACAjsY,KAAA8xR,eACA3uS,IAAAsW,OAAA,SAAAnW,GACA,OAAAmgB,EAAAhe,KAAA,SAAA7L,GACA,OAAAomB,EAAA8xR,aAAA/zS,KAAA,KAAAnE,EAAA0J,EAAA0c,WAMAoxZ,EAAAyC,aAAA1wa,EACAiua,EAAAjua,KAAAyva,EAAAzva,MAAAiua,GAEA/+a,KAAAiib,mBAEA,IAYAnD,EACA1jP,EAbAy+N,EAAAklB,EAAAllB,OA+BA,GA7BAklB,EAAA2C,iBAQA7nB,GAEAilB,EAAAC,EAAAD,UACA1jP,EAAAulP,EAAA7B,EAAAjlB,GAEAklB,EAAAjua,KAAAhH,QAAA,SAAAmH,GACA,IAAAixa,GAAA,EAAAzib,EAAAy5Z,gBAAAjoZ,EAAA4oZ,GACAsoB,EAAA/mP,EAAA8mP,GACAC,IACArD,EAAAqD,EAAAv1a,OAAAqE,KAIA4L,EAAA6/Z,qBAGAjna,QAAAC,KAAA,gEAvBAssa,EACAhib,KAAA47S,iBAEA57S,KAAAoib,iBAEApib,KAAA08a,qBAsBAqC,EAAAlD,iBAEA77a,KAAA++a,OAAA+C,YAAA/C,EAAAjua,UAAAxO,MAAA,QACK,GAAAu3Z,EAAA,CAEL,IAAAwoB,EAAA1B,EAAA3gb,KAAA++a,OAAA+C,WAAAjoB,GACAioB,KACA3gG,EAAA49F,EAAAjua,KAAAswU,EAAAv1U,MAAAC,QAAAq1U,GAAAx6O,EAAA,MAAAw6O,EAAAC,EAAAD,IAAAl2U,OAAAC,cAAsJ,CACtJ,IAAAgD,EAEA,GAAAkzU,EAAA,CACA,GAAAz6O,GAAAw6O,EAAAlgV,OAAA,MACAiN,EAAAizU,EAAAx6O,SACS,CAET,IADAA,EAAAw6O,EAAA18S,QACApjC,KAAA,MACA6M,EAAAy4F,EAAAp/F,MAGA,IAAA0J,EAAA/C,EAGAm0a,GADA,EAAA5ib,EAAAy5Z,gBAAAjoZ,EAAA4oZ,KAEAioB,EAAAvgb,KAAA0P,GAGAjR,KAAA++a,OAAA+C,kBAGA9hb,KAAA++a,OAAA+C,cAGA7qW,EAAAl+D,QAAA8/D,SAAA,WACA,OAAAh8D,EAAAikW,MAAAk8D,mBAGAsF,oBAAA,SAAAvD,EAAAt2a,GACA,IAAAyV,EAAAle,KAEA++a,EAAAjua,KAAAyva,EAAAxB,EAAAyC,cAAAzC,EAAA9ia,UAAA8ia,GAEA,IAAA/E,EAAAh6a,KAAA8gX,MACApkW,EAAAs9Z,EAAAt9Z,IACAg/Z,EAAA1B,EAAA0B,oBAEA,GAAAh/Z,GAAAg/Z,EAAA,CACA,IAAA5qa,EAAAiua,EAAAjua,KACAnK,EAAA+V,EAAA6mC,cAAA,SAAAglI,SACA70K,KAAA0T,OAAA1b,KAAA/E,EAAA,SAAAsK,GACA,SAAAk9C,EAAAurB,UAAAzoE,EAAA,mBAEAA,EAAAyC,EAAA5C,EAAAhR,QAAAi/a,EAAA6C,gBAEA93a,QAAA4B,KAAAgI,EAAA,SAAAzC,GACA,SAAAk9C,EAAAosB,aAAAtpE,EAAA,kBAEA,EAAAk9C,EAAA6rB,UAAA/oE,EAAA,eAGAxI,KAAA07B,QACAnkC,KAAA8gX,MAAA9iW,MAAA,eACA2P,OAAA3tB,KAAA++a,OAAAyB,cACA1/a,KAAAd,KAAA++a,OAAA2B,SACArra,MAAArV,KAAA++a,OAAAroE,YAIAz/R,EAAAl+D,QAAA8/D,SAAA,WACA,OAAA36D,EAAA4iW,MAAAk8D,mBAGA1na,KAAA,SAAAypa,EAAAt2a,GACA,IAAAuW,EAAAhf,KAEAc,EAAA2H,EAAA3H,KACAuU,EAAA5M,EAAA4M,MAEAvU,IACAi+a,EAAA2B,SAAA5/a,EACAi+a,EAAAroE,UAAArhW,GAAA,YACA4hE,EAAAl+D,QAAA8/D,SAAA,WACA,QAAA93E,EAAA,EAAAE,EAAA89a,EAAAnra,QAAA3S,OAAuDF,EAAAE,EAAYF,IAAA,CACnE,IAAA4sB,EAAAoxZ,EAAAnra,QAAA7S,GACA,GAAA4sB,EAAAkwB,WAAAkhY,EAAA2B,SAAA,CACA/yZ,EAAAtY,MAAA0pa,EAAAroE,UACAqoE,EAAAyB,cAAA7yZ,EACA,OAIAoxZ,EAAAyB,eACAxha,EAAAw9Z,OAAA,2BAKA+F,aAAA,SAAAxD,EAAAt2a,GACA,IAAA8W,EAAAvf,KAEA2tB,EAAAllB,EAAAklB,OACAyD,EAAA3oB,EAAA2oB,OACA+S,EAAA17B,EAAA07B,OAEA/S,IAAAvlB,MAAAC,QAAAslB,KACAA,OAGA,IACA+tO,KADAxxO,EAAAkwB,WAIAkhY,EAAA5/K,QAAAxxO,EAAAjsB,IAAA0vB,EACA+tO,EAAAxxO,EAAA60Z,WAAA70Z,EAAAjsB,IAAA0vB,GAGA,IAAAtgB,EAAAiua,EAAA9ia,MAEArS,OAAAC,KAAAk1a,EAAA5/K,SAAAr1P,QAAA,SAAA8vZ,GACA,IAAAxoY,EAAA2tZ,EAAA5/K,QAAAy6J,GACA,GAAAxoY,GAAA,IAAAA,EAAAnwB,OAAA,CACA,IAAA0sB,GAAA,EAAAluB,EAAA25Z,eAAA75Y,EAAAw/Z,OAAAnlB,GACAjsY,KAAA8xR,eACA3uS,IAAAsW,OAAA,SAAAnW,GACA,OAAAmgB,EAAAhe,KAAA,SAAA7L,GACA,OAAAomB,EAAA8xR,aAAA/zS,KAAA,KAAAnE,EAAA0J,EAAA0c,WAMAoxZ,EAAAyC,aAAA1wa,EACAiua,EAAAjua,KAAAyva,EAAAzva,EAAAiua,GAEA56Y,GACAnkC,KAAA8gX,MAAA9iW,MAAA,gBAAAmhP,GAGAloL,EAAAl+D,QAAA8/D,SAAA,WACA,OAAAt5D,EAAAuhW,MAAAk8D,mBAGAyF,aAAA,SAAA1D,EAAApxZ,EAAA/gB,EAAA28B,GACA,IAAA61B,EAAA2/W,EAAAgC,SACAx3Y,KACA61B,EAAA71B,EAAAg/I,YACAnpH,EAAA71B,EAAAg/I,mBAGA,IAAA37K,EACAwyD,EAAA99D,OAAAsL,EAAA,EAAA+gB,GAEAyxC,EAAA79D,KAAAosB,GAGA,cAAAA,EAAAnqB,OACAu7a,EAAA4C,WAAAh0Z,EAAAg0Z,WACA5C,EAAA2C,iBAAA/zZ,EAAA+zZ,kBAGA1hb,KAAA8gX,MAAAi9D,SACA/9a,KAAA+/a,gBACA//a,KAAA0ib,mBAGAC,aAAA,SAAA5D,EAAApxZ,EAAA4b,GACA,IAAA61B,EAAA2/W,EAAAgC,SACAx3Y,KACA61B,EAAA71B,EAAAg/I,YACAnpH,EAAA71B,EAAAg/I,cAEAnpH,GACAA,EAAA99D,OAAA89D,EAAAt/D,QAAA6tB,GAAA,GAGA3tB,KAAA8gX,MAAAi9D,SACA/9a,KAAA+/a,gBACA//a,KAAA0ib,mBAGAE,YAAA,SAAA7D,EAAA9ta,GACA8ta,EAAA8C,SAAA5wa,GAEAsra,cAAA,SAAAwC,EAAA9ta,GACA,IAAA4xa,EAAA9D,EAAA6C,WACA7C,EAAA6C,WAAA3wa,EAEA4xa,IAAA5xa,GACAjR,KAAA8gX,MAAA9iW,MAAA,iBAAA/M,EAAA4xa,IAGAC,mBAAA,SAAA/D,EAAA9ta,GACA,IAAA0lR,EAAA8lJ,EAAAsC,EAAA9ta,GACA6ta,EAAAC,EAAAD,UAEA,GAAAnoJ,EAAA,CACA,IAAAmqF,EAAA9gX,KAAA8gX,MACAA,EAAA9iW,MAAA,mBAAA8ga,IAAAx8a,YACAw+W,EAAA9iW,MAAA,SAAA8ga,EAAA7ta,GAGAjR,KAAA08a,qBAIA8B,oBAAA,EAAA54N,EAAA7sM,SAAA,YAAAgma,GACA,IAAAjua,EAAAiua,EAAAjua,SACA,OAAAA,EAAA7P,OAAA,CACA,IAAA69a,EAAA9+a,KAAA++a,OAAAD,UAGAv3a,EAAAw3a,EAAA9C,uBAAA8C,EAAA0C,gBAAA1C,EAAA0C,eAAA3C,EAAA79a,QACA8hb,GAAA,EAEAjya,EAAAhH,QAAA,SAAA6C,EAAAC,GACAmya,EAAA4C,WACA5C,EAAA4C,WAAAj2a,KAAA,KAAAiB,EAAAC,IAAA6va,EAAAsC,EAAApya,EAAApF,KACAw7a,GAAA,GAGAtG,EAAAsC,EAAApya,EAAApF,KACAw7a,GAAA,KAKA,IAAAjiE,EAAA9gX,KAAA8gX,MACAiiE,GACAjiE,EAAA9iW,MAAA,mBAAA8ga,IAAAx8a,YAEAw+W,EAAA9iW,MAAA,aAAA8ga,GACAC,EAAA0C,cAAAl6a,MAIA,IAAAy7a,EAAA,SAAAA,EAAApva,GACA,IAAA7C,KAQA,OAPA6C,EAAA9J,QAAA,SAAA6jB,GACAA,EAAA46J,SACAx3K,EAAAxP,KAAAgL,MAAAwE,EAAAiya,EAAAr1Z,EAAA46J,WAEAx3K,EAAAxP,KAAAosB,KAGA5c,GAGA8va,EAAA3gb,UAAA6/a,cAAA,WACA,IAAAhB,EAAA/+a,KAAA++a,OACAgC,EAAAhC,EAAAgC,aACAhC,EAAAH,aAAAmC,EAAA35Z,OAAA,SAAAuG,GACA,WAAAA,EAAA0zB,OAAA,SAAA1zB,EAAA0zB,QAEA09X,EAAAF,kBAAAkC,EAAA35Z,OAAA,SAAAuG,GACA,gBAAAA,EAAA0zB,QAGA09X,EAAAH,aAAA39a,OAAA,GAAA8/a,EAAA,kBAAAA,EAAA,GAAAv9a,OAAAu9a,EAAA,GAAA1/X,QACA0/X,EAAA,GAAA1/X,OAAA,EACA09X,EAAAH,aAAAj8Y,QAAAo+Y,EAAA,KAGA,IAAAkC,EAAAlC,EAAA35Z,OAAA,SAAAuG,GACA,OAAAA,EAAA0zB,QAEA09X,EAAAiC,iBAAAjsa,OAAAgqa,EAAAH,cAAA7pa,OAAAkua,GAAAlua,OAAAgqa,EAAAF,mBAEA,IAAAoC,EAAA+B,EAAAC,GACA/B,EAAA8B,EAAAjE,EAAAH,cACAuC,EAAA6B,EAAAjE,EAAAF,mBAEAE,EAAAqC,kBAAAH,EAAAhgb,OACA89a,EAAAsC,uBAAAH,EAAAjgb,OACA89a,EAAAuC,4BAAAH,EAAAlgb,OAEA89a,EAAAnra,WAAAmB,OAAAmsa,GAAAnsa,OAAAksa,GAAAlsa,OAAAosa,GACApC,EAAAwC,UAAAxC,EAAAH,aAAA39a,OAAA,GAAA89a,EAAAF,kBAAA59a,OAAA,GAGA4/a,EAAA3gb,UAAAqkE,WAAA,SAAAtzD,GACA,OAAAjR,KAAA++a,OAAAD,eAAAh/a,QAAAmR,IAAA,GAGA4va,EAAA3gb,UAAA07S,eAAA,WACA,IAAAmjI,EAAA/+a,KAAA++a,OACAA,EAAA0C,eAAA,EACA,IAAAyB,EAAAnE,EAAAD,UACAC,EAAAD,UAAA79a,SACA89a,EAAAD,cAEAoE,EAAAjib,OAAA,GACAjB,KAAA8gX,MAAA9iW,MAAA,mBAAA+ga,EAAAD,UAAAC,EAAAD,UAAAx8a,aAIAu+a,EAAA3gb,UAAA4/a,iBAAA,SAAAqD,GACA,IAAArB,KACAhxa,EAAA9Q,KAAA++a,OAAAjua,KACA+oZ,EAAA75Z,KAAA++a,OAAAllB,OACA,IAAAA,EAAA,UAAAx6V,MAAA,6CACA,IAAA+jX,EAAAzC,EAAA7va,EAAA+oZ,GACAspB,EAAAr5a,QAAA,SAAAC,GACA,IAAA+wE,EAAAsoW,EAAAr5a,GACA+wE,GACAgnW,EAAAvgb,KAAAu5E,EAAA7pE,OAIAjR,KAAA++a,OAAA+C,cAGAjB,EAAA3gb,UAAAu8a,mBAAA,SAAAxra,EAAAyZ,GACA+xZ,EAAAz8a,KAAA++a,OAAA9ta,EAAAyZ,IAEA1qB,KAAA8gX,MAAA9iW,MAAA,mBAAAhe,KAAA++a,OAAAD,UAAA9+a,KAAA++a,OAAAD,UAAAx8a,aAIAu+a,EAAA3gb,UAAAy8a,mBAAA,SAAA1ra,EAAA2ra,IAhcA,SAAAmC,EAAA9ta,EAAA2ra,GACA,IAAAjmJ,GAAA,EACAmrJ,EAAA/C,EAAA+C,WACA,YAAAlF,EAAA,CACA,IAAAhwa,EAAAk1a,EAAAhib,QAAAmR,GACA2ra,GACA,IAAAhwa,IACAk1a,EAAAvgb,KAAA0P,GACA0lR,GAAA,IAGA,IAAA/pR,IACAk1a,EAAAxgb,OAAAsL,EAAA,GACA+pR,GAAA,OAGG,CACH,IAAA0sJ,EAAAvB,EAAAhib,QAAAmR,IACA,IAAAoya,GACAvB,EAAAvgb,KAAA0P,GACA0lR,GAAA,IAEAmrJ,EAAAxgb,OAAA+hb,EAAA,GACA1sJ,GAAA,GAIA,OAAAA,GAsaAgmJ,CAAA38a,KAAA++a,OAAA9ta,EAAA2ra,KAEA58a,KAAA8gX,MAAA9iW,MAAA,gBAAA/M,EAAAjR,KAAA++a,OAAA+C,YACA9hb,KAAA0ib,mBAIA7B,EAAA3gb,UAAAojb,cAAA,SAAArya,GACA,IAAAsya,EAAAvjb,KAAA++a,OACAyE,EAAAD,EAAAzB,WACAA,OAAAp0a,IAAA81a,OACA3pB,EAAA0pB,EAAA1pB,OAEA,OAAAA,IACA8mB,EAAAmB,EAAAjoB,IACA,EAAAp6Z,EAAAy5Z,gBAAAjoZ,EAAA4oZ,KAEA,IAAAioB,EAAAhib,QAAAmR,IAGA4va,EAAA3gb,UAAAkib,eAAA,WACA,IAAAtD,EAAA9+a,KAAA++a,OAAAD,cACAhua,EAAA9Q,KAAA++a,OAAAjua,KACA+oZ,EAAA75Z,KAAA++a,OAAAllB,OACA4pB,OAAA,EACA,GAAA5pB,EAAA,CACA4pB,KACA,IAAAroP,EAAAulP,EAAA7B,EAAAjlB,GACA/tY,EAAA60Z,EAAA7va,EAAA+oZ,GACA,QAAA9vZ,KAAAqxL,EACAA,EAAAv4L,eAAAkH,KAAA+hB,EAAA/hB,IACA05a,EAAAlib,KAAA65L,EAAArxL,GAAAkH,UAIAwya,EAAA3E,EAAA13Z,OAAA,SAAAza,GACA,WAAAmE,EAAAhR,QAAA6M,KAIA82a,EAAA35a,QAAA,SAAA45a,GACA5E,EAAAx9a,OAAAw9a,EAAAh/a,QAAA4jb,GAAA,KAGAD,EAAAxib,QACAjB,KAAA8gX,MAAA9iW,MAAA,mBAAA8ga,IAAAx8a,aAIAu+a,EAAA3gb,UAAA+gX,YAAA,WACA,IAAA89D,EAAA/+a,KAAA++a,OACA4E,EAAA3jb,KAAA8gX,MAAAriW,MACAmla,EAAAD,EAAAC,YACAC,EAAAF,EAAAE,iBACAC,EAAAH,EAAAG,sBAEA5qE,KAEA0qE,IAAA1qE,GAAA,EAAA/hS,EAAAp+D,SAAAmgW,EAAA0qE,EAAAG,eACAF,IAAA3qE,GAAA,EAAA/hS,EAAAp+D,SAAAmgW,EAAA2qE,EAAAE,eACAD,IAAA5qE,GAAA,EAAA/hS,EAAAp+D,SAAAmgW,EAAA4qE,EAAAC,eAEA,IAAAl6a,EAAAD,OAAAC,KAAAqvW,GACArvW,EAAA5I,SAEA4I,EAAAC,QAAA,SAAAC,GACAmvW,EAAAnvW,GAAAi2a,mBAGAjB,EAAA5/K,WAEAn/P,KAAAw8a,OAAA,gBACA7uZ,UACAyD,UACA+S,QAAA,MAIA08Y,EAAA3gb,UAAA28a,UAAA,WACA,IAAAkC,EAAA/+a,KAAA++a,OACAA,EAAAyB,gBACAzB,EAAAyB,cAAAnra,MAAA,KACA0pa,EAAA2B,SAAA,KACA3B,EAAAroE,UAAA,KAEA12W,KAAAw8a,OAAA,uBACAr4Y,QAAA,MAIA08Y,EAAA3gb,UAAAw8a,kBAAA,WACA,IAAAqC,EAAA/+a,KAAA++a,OACAD,EAAAC,EAAAD,UACAjlB,EAAAklB,EAAAllB,OACA8nB,EAAA5C,EAAA4C,WACA7wa,EAAAiua,EAAAjua,KAEA,GAAAA,GAAA,IAAAA,EAAA7P,OAAA,CAKA,IAAAm6L,OAAA,EACAy+N,IACAz+N,EAAAulP,EAAA5B,EAAAD,UAAAjlB,IAaA,IAVA,IAAA5oZ,EAQAwwa,GAAA,EACAuC,EAAA,EACAjjb,EAAA,EAAAmyB,EAAApiB,EAAA7P,OAAkCF,EAAAmyB,EAAOnyB,IAAA,CACzC,IAAA4L,EAAAmE,EAAA/P,GACAkjb,EAAAtC,KAAAj2a,KAAA,KAAAiB,EAAA5L,GACA,GAbAkQ,EAaAtE,EAZAyuL,EACAA,GAAA,EAAA37L,EAAAy5Z,gBAAAjoZ,EAAA4oZ,KAEA,IAAAilB,EAAAh/a,QAAAmR,GAeA+ya,SALA,IAAArC,GAAAsC,EAAA,CACAxC,GAAA,EACA,OAOA,IAAAuC,IAAAvC,GAAA,GAEA1C,EAAA0C,qBAlCA1C,EAAA0C,eAAA,GAqCAZ,EAAA3gb,UAAAwib,eAAA,SAAA3C,GACAA,GACA//a,KAAA+/a,gBAEA//a,KAAA8gX,MAAA49D,yBAGAmC,EAAA3gb,UAAA2/a,iBAAA,SAAA91a,GACA,IAAAg1a,EAAA/+a,KAAA++a,OACAllB,EAAAklB,EAAAllB,OACA,IAAAA,EAAA,UAAAx6V,MAAA,wCACA,IAAAvuD,EAAAiua,EAAAjua,SAEAgqE,EADA6lW,EAAA7va,EAAA+oZ,GACA9vZ,GACAg1a,EAAA6C,WAAA9mW,IAAA7pE,IAAA,MAGA4va,EAAA3gb,UAAA+hb,iBAAA,WACA,IAAAlD,EAAA/+a,KAAA++a,OACAj+D,EAAA9gX,KAAA8gX,MACAhwW,EAAAiua,EAAAjua,SACA+xa,EAAA9D,EAAA6C,YAEA,IAAA9wa,EAAAhR,QAAA+ib,KACA9D,EAAA6C,WAAA,KAEA7C,EAAA6C,aAAAiB,GACA/hE,EAAA9iW,MAAA,sBAAA6ka,KAKAhC,EAAA3gb,UAAAs8a,OAAA,SAAA55a,GACA,IAAAm/a,EAAA/hb,KAAA+hb,UACA,IAAAA,EAAAn/a,GAOA,UAAAy8D,MAAA,qBAAAz8D,GANA,QAAA+c,EAAA7a,UAAA7D,OAAAmL,EAAAP,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAsFA,EAAAgC,EAAahC,IACnGvR,EAAAuR,EAAA,GAAA7Y,UAAA6Y,GAGAoka,EAAAn/a,GAAA2J,MAAAvM,WAAA++a,QAAAhqa,OAAA3I,KAMAjJ,EAAA4V,QAAA8na,GAIA,SAAA39a,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAiG,EAAAH,EAFA33E,EAAA,KAMA03E,EAAAC,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAI7E,IAAA+4a,EAAA,WACA,SAAAA,EAAAz7a,GAyBA,QAAA7F,KA5BA,SAAA28C,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAI3F6+B,CAAA7iF,KAAAkkb,GAEAlkb,KAAAinD,aACAjnD,KAAA8gX,MAAA,KACA9gX,KAAA6+K,MAAA,KACA7+K,KAAA4T,QAAA,KACA5T,KAAA66a,KAAA,EACA76a,KAAA+6a,YAAA,EAEA/6a,KAAAiZ,OAAA,KACAjZ,KAAAu/a,SAAA,EACAv/a,KAAAi4Z,SAAA,EACAj4Z,KAAAi/a,UAAA,KACAj/a,KAAAmkb,WAAA,KACAnkb,KAAAokb,gBAAA,KACApkb,KAAAy/a,YAAA,KACAz/a,KAAAo/a,aAAA,GACAp/a,KAAAqkb,aAAA,EACArkb,KAAAq/a,aAAA,GACAr/a,KAAA0/a,eAAA,KACA1/a,KAAAk/a,WAAA,KACAl/a,KAAAs/a,gBAAA,KACAt/a,KAAAk4Z,aAAA,EAAA7gV,EAAAt+D,WAEAtQ,EACAA,EAAA5F,eAAAD,KACA5C,KAAA4C,GAAA6F,EAAA7F,IAIA,IAAA5C,KAAA8gX,MACA,UAAAzhT,MAAA,sCAEA,IAAAr/D,KAAA6+K,MACA,UAAAx/G,MAAA,sCA2NA,OAvNA6kX,EAAAhkb,UAAA88a,cAAA,WACA,IAAA/ja,EAAAjZ,KAAAiZ,OACA,oBAAAA,GAAA,iBAAAA,EAAA,CACA,IAAAkka,EAAAn9a,KAAA8gX,MAAAq8D,YACA,GAAAn9a,KAAA8gX,MAAApkW,KAAAyga,EAAA,CACA,IAAAnta,EAAAmta,EAAA55X,cAAA,mBACAvjD,KAAAi4Z,QAAAjoZ,EAAAmtC,aAAAn9C,KAAAk/a,cAIAgF,EAAAhkb,UAAAy/a,UAAA,SAAAp4a,GACA,IAAAsV,EAAA7c,KAEAc,EAAAgE,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,YAEA,IAAAmyE,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,CACA,IAAAz4E,EAAAT,KAAA8gX,MAAApkW,IAMA,GALA,iBAAAnV,GAAA,QAAAo0D,KAAAp0D,KACAA,EAAAwT,OAAAxT,IAEAvH,KAAAiZ,OAAA1R,GAEA9G,IAAA8G,GAAA,IAAAA,GAAA,OAAA0vE,EAAAl+D,QAAA8/D,SAAA,WACA,OAAAh8D,EAAA8ia,UAAAp4a,EAAAzG,KAGA,iBAAAyG,GACA9G,EAAA8X,MAAAzX,GAAAyG,EAAA,KAEAvH,KAAAu+a,mBACK,iBAAAh3a,IACL9G,EAAA8X,MAAAzX,GAAAyG,EACAvH,KAAAu+a,qBAIA2F,EAAAhkb,UAAA0/a,aAAA,SAAAr4a,GACA,OAAAvH,KAAA2/a,UAAAp4a,EAAA,eAGA28a,EAAAhkb,UAAAq+a,gBAAA,WACA,IAAArga,EAAAle,KAEA,IAAAA,KAAA8gX,MAAAi9D,OAAA,OAAA9mW,EAAAl+D,QAAA8/D,SAAA,WACA,OAAA36D,EAAAqga,oBAEA,IAAAoF,EAAA3jb,KAAA8gX,MAAAriW,MACA++Z,EAAAmG,EAAAnG,cACA8G,EAAAX,EAAAW,cACA7G,EAAAkG,EAAAlG,cAIA,GAFAz9a,KAAAqkb,aAAAC,IAAAnnY,aAAA,GAEAn9C,KAAA+6a,YAAAyC,EAAA,CACA,IAAA4B,EAAAp/a,KAAAo/a,aAAAp/a,KAAA+6a,WAAAyC,EAAArgY,aAAA,EACA,GAAAn9C,KAAA+6a,YAAAyC,EAAA1oY,YAAA,IAAA90C,KAAA8gX,MAAAltW,aAAA3S,OAAA,GAAAm+a,EAAA,EACA,OAAAnoW,EAAAl+D,QAAA8/D,SAAA,WACA,OAAA36D,EAAAqga,oBAGA,IAAAkB,EAAAz/a,KAAAy/a,YAAAz/a,KAAA8gX,MAAApkW,IAAAE,aACA,UAAA5c,KAAAiZ,UAAAxO,MAAAzK,KAAAiZ,SAAA,iBAAAjZ,KAAAiZ,QAAA,CACA,IAAAoma,EAAAr/a,KAAAq/a,aAAA5B,IAAAtgY,aAAA,EACAn9C,KAAAk/a,WAAAO,EAAAL,EAAAC,GAAA5B,EAAA,KAEAz9a,KAAAs/a,gBAAAt/a,KAAAu/a,QAAAv/a,KAAAk/a,WAAAl/a,KAAAk4Z,YAAAl4Z,KAAAk/a,WAEA,IAAA/+D,GAAAngX,KAAA8gX,MAAAhwW,MAAA,IAAA9Q,KAAA8gX,MAAAhwW,KAAA7P,OACAjB,KAAA0/a,eAAA1/a,KAAAu/a,QAAAE,GAAAt/D,EAAA,EAAAngX,KAAAk4Z,aAAAunB,EAEAz/a,KAAAg9a,gBACAh9a,KAAAukb,gBAAA,gBAGAL,EAAAhkb,UAAA63Z,kBAAA,WACA,IAAAysB,KAUA,OATAxkb,KAAA8gX,MAAAltW,QACA9J,QAAA,SAAA6jB,GACAA,EAAA82Z,cACAD,EAAAjjb,KAAAgL,MAAAi4a,EAAA72Z,EAAA/Z,SAEA4wa,EAAAjjb,KAAAosB,KAIA62Z,GAGAN,EAAAhkb,UAAA+8a,mBAAA,WACA,IAAAhmW,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,CACA,IA+BAwrW,EAGAC,EACAC,EAnCA/J,EAAA76a,KAAA66a,IACAoE,EAAAj/a,KAAA8gX,MAAApkW,IAAAC,YACAkoa,EAAA,EAEAL,EAAAxkb,KAAA+3Z,oBACA+sB,EAAAN,EAAAp9Z,OAAA,SAAAuG,GACA,uBAAAA,EAAA3U,QAQA,GALAwra,EAAA16a,QAAA,SAAA6jB,GAEA,iBAAAA,EAAA3U,OAAA2U,EAAAqqY,YAAArqY,EAAAqqY,UAAA,QAGA8sB,EAAA7jb,OAAA,GAAA45a,EAAA,CACA2J,EAAA16a,QAAA,SAAA6jB,GACAk3Z,GAAAl3Z,EAAA3U,OAAA2U,EAAA+1R,UAAA,KAGA,IAAAqhI,EAAA/kb,KAAAi4Z,QAAAj4Z,KAAAk4Z,YAAA,EAEA,GAAA2sB,GAAA5F,EAAA8F,EAAA,CAEA/kb,KAAAu/a,SAAA,EAEA,IAAAyF,EAAA/F,EAAA8F,EAAAF,EAEA,IAAAC,EAAA7jb,OACA6jb,EAAA,GAAA9sB,WAAA8sB,EAAA,GAAAphI,UAAA,IAAAshI,GAGAN,EAAAI,EAAAr/Z,OAAA,SAAA65C,EAAA3xC,GACA,OAAA2xC,GAAA3xC,EAAA+1R,UAAA,KACa,GACbihI,EAAAK,EAAAN,EACAE,EAAA,EAEAE,EAAAh7a,QAAA,SAAA6jB,EAAA/gB,GACA,OAAAA,EAAA,CACA,IAAAq4a,EAAAl9a,KAAAkwC,OAAAtqB,EAAA+1R,UAAA,IAAAihI,GACAC,GAAAK,EACAt3Z,EAAAqqY,WAAArqY,EAAA+1R,UAAA,IAAAuhI,KAGAH,EAAA,GAAA9sB,WAAA8sB,EAAA,GAAAphI,UAAA,IAAAshI,EAAAJ,QAKA5kb,KAAAu/a,SAAA,EACAuF,EAAAh7a,QAAA,SAAA6jB,GACAA,EAAAqqY,UAAArqY,EAAA+1R,WAIA1jT,KAAAi/a,UAAAl3a,KAAAE,IAAA48a,EAAA5F,GACAj/a,KAAA8gX,MAAAo9D,YAAAlla,MAAAhZ,KAAAi/a,eAEAuF,EAAA16a,QAAA,SAAA6jB,GACAA,EAAA3U,OAAA2U,EAAA+1R,SAGA/1R,EAAAqqY,UAAArqY,EAAA3U,OAAA2U,EAAA+1R,SAFA/1R,EAAAqqY,UAAA,GAKA6sB,GAAAl3Z,EAAAqqY,YAEAh4Z,KAAAu/a,QAAAsF,EAAA5F,EAEAj/a,KAAAi/a,UAAA4F,EAGA,IAAAjG,EAAA5+a,KAAA6+K,MAAAkgQ,OAAAH,aAEA,GAAAA,EAAA39a,OAAA,GACA,IAAAkjb,EAAA,EACAvF,EAAA90a,QAAA,SAAA6jB,GACAw2Z,GAAAx2Z,EAAAqqY,WAAArqY,EAAA3U,QAGAhZ,KAAAmkb,aAGA,IAAAtF,EAAA7+a,KAAA6+K,MAAAkgQ,OAAAF,kBACA,GAAAA,EAAA59a,OAAA,GACA,IAAAmjb,EAAA,EACAvF,EAAA/0a,QAAA,SAAA6jB,GACAy2Z,GAAAz2Z,EAAAqqY,WAAArqY,EAAA3U,QAGAhZ,KAAAokb,kBAGApkb,KAAAukb,gBAAA,aAGAL,EAAAhkb,UAAA2mD,YAAA,SAAAC,GACA9mD,KAAAinD,UAAA1lD,KAAAulD,IAGAo9X,EAAAhkb,UAAA8mD,eAAA,SAAAF,GACA,IAAAl6C,EAAA5M,KAAAinD,UAAAnnD,QAAAgnD,IACA,IAAAl6C,GACA5M,KAAAinD,UAAA3lD,OAAAsL,EAAA,IAIAs3a,EAAAhkb,UAAAqkb,gBAAA,SAAAhtX,GACA,IAAAv4C,EAAAhf,KAEAA,KAAAinD,UACAn9C,QAAA,SAAAg9C,GACA,OAAAyQ,GACA,cACAzQ,EAAA6wW,gBAAA34Y,GACA,MACA,iBACA8nC,EAAA8wW,mBAAA54Y,GACA,MACA,QACA,UAAAqgD,MAAA,iCAAA9H,EAAA,SAKA2sX,EA/PA,GAkQA/gb,EAAA4V,QAAAmra,GAIA,SAAAhhb,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAApmE,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5I1L,EAAAF,EAAA,IAEA4uD,EAAA5uD,EAAA,GAIAs3a,EAAA3/V,EAFA33E,EAAA,KAMAw0a,EAAA78V,EAFA33E,EAAA,KAMAqmN,EAAA1uI,EAFA33E,EAAA,KAMA2lb,EAAAhuW,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,cAEA0/K,QAAA4iQ,EAAAnsa,SAEAqb,YACAioZ,WAAAxF,EAAA99Z,QACAi7Z,UAAAD,EAAAh7Z,SAGAjW,OACA+7K,OACA9b,UAAA,GAEA+3Q,OAAArha,QACAq0C,WACAotX,cAAA/pa,OAAAgI,UACAgia,UAAAvxa,OAAAuP,UACAkoC,MAAAlwC,OACAwyB,UAAAlqB,SAGAhW,OAAA,SAAAwU,GACA,IAAA4E,EAAA7c,KAEAmlb,EAAAnlb,KAAA4T,QAAAjD,IAAA,SAAAgd,EAAA/gB,GACA,OAAAiQ,EAAAuoa,eAAAx4a,KAEA,OAAAqL,EACA,SAEAC,MAAA,iBACAb,OAAgBgua,YAAA,IAChBC,YAAA,IACA/pI,OAAA,OAEAtjS,EACA,WACA,MACAjY,KAAAyvE,GAAAzvE,KAAA4T,QAAA,SAAA+Z,GACA,OAAA1V,EACA,OAEAZ,OAAsBzU,KAAA+qB,EAAAjsB,aAKtBuW,EACA,QACA,MACAjY,KAAAyvE,GAAAzvE,KAAA8Q,KAAA,SAAAG,EAAAmuY,GACA,OAAAnnY,EACA,MAEAM,MAAAsE,EAAAs+Z,SAAAt+Z,EAAA0oa,YAAAt0a,EAAAmuY,GAAA,KACAr1Y,IAAA8S,EAAAikW,MAAA+4C,OAAAh9Y,EAAA2oa,YAAAv0a,EAAAmuY,KACA1/X,IACA+la,SAAA,SAAAlhQ,GACA,OAAA1nK,EAAA6oa,kBAAAnhQ,EAAAtzK,IAEA4jE,MAAA,SAAA0vG,GACA,OAAA1nK,EAAAs3D,YAAAowG,EAAAtzK,IAEA00a,YAAA,SAAAphQ,GACA,OAAA1nK,EAAA+oa,kBAAArhQ,EAAAtzK,IAEAqzK,WAAA,SAAAnmK,GACA,OAAAtB,EAAAgpa,iBAAAzmC,IAEAz4L,WAAA,SAAAxoM,GACA,OAAAtB,EAAAiga,qBAIA5ka,OAAA2E,EAAAipa,YAAA70a,EAAAmuY,MACAviY,EAAA4yD,GAAA5yD,EAAAjJ,QAAA,SAAA+Z,EAAAo4Z,GACA,IAAAC,EAAAnpa,EAAAopa,QAAAh1a,EAAA0c,EAAAyxX,EAAA2mC,GACAG,EAAAF,EAAAE,QACAxlN,EAAAslN,EAAAtlN,QAEA,OAAAwlN,GAAAxlN,EAGAzoN,EACA,MAEAM,MAAAsE,EAAAspa,aAAA/mC,EAAA2mC,EAAA90a,EAAA0c,GACAzV,MAAA2E,EAAAupa,aAAAhnC,EAAA2mC,EAAA90a,EAAA0c,GACAtW,OAA4B6ua,UAC5BxlN,WAEAhhN,IACA4kK,WAAA,SAAAC,GACA,OAAA1nK,EAAAwpa,qBAAA9hQ,EAAAtzK,IAEA01M,WAAA9pM,EAAAypa,wBAGA34Z,EAAA44Z,WAAA76a,KAAAmR,EAAAs0O,aAAAl5O,GACAhH,MACA0c,SACAyxX,SACAvgO,MAAAhiK,EAAAgiK,MACA1nK,MAAA0F,EAAAixC,SAAAjxC,EAAAikW,MAAA3uS,OAAArkB,SACmBq3X,EAAAY,MAvBnB,OA2BAlpa,EAAAgiK,MAAAykQ,cAAArya,GAAAgH,EACA,KACA,MACAA,EACA,MAEAZ,OAAwBqpN,QAAA7jN,EAAAjJ,QAAA3S,QACxBiX,MAAA,4BACA2E,EAAAikW,MAAAo/D,eAAArja,EAAAikW,MAAAo/D,eAAAjoa,GAA2EhH,MAAAmuY,SAAAvgO,MAAAhiK,EAAAgiK,QAA+C,OAE1H,MACS9pK,OAAAkD,EACT,cAEAZ,OAAoB0uM,OAAA/lN,KAAA8gX,MAAAi7D,cAAAhhY,UAAA,MAAAqF,QAAApgD,KAAAmoT,gBACpBvvS,IAAA,qBAQA2C,OACAira,wBAAA,SAAArmP,EAAAhd,GACA,GAAAnjL,KAAA6+K,MAAAkgQ,OAAAwC,UAAA,CACA,IAAA9gb,EAAAT,KAAA0c,IACA,GAAAjc,EAAA,CACA,IAAAkG,EAAAlG,EAAA8iD,cAAA,SAAAglI,SACA70K,KAAA0T,OAAA1b,KAAA/E,EAAA,SAAAsK,GACA,SAAAk9C,EAAAurB,UAAAzoE,EAAA,mBAEAw1a,EAAA/ya,EAAAyvK,GACAlpC,EAAAvmI,EAAAysL,GACAsmP,IACA,EAAAt4X,EAAAosB,aAAAksW,EAAA,aAEAxsS,IACA,EAAA9rF,EAAA6rB,UAAAigE,EAAA,gBAGAysS,0BAAA,SAAAvmP,EAAAhd,GACA,GAAAnjL,KAAA2jC,UAAA,CACA,IAAAljC,EAAAT,KAAA0c,IACA,GAAAjc,EAAA,CACA,IAAAqQ,EAAA9Q,KAAA6+K,MAAAkgQ,OAAAjua,KACAnK,EAAAlG,EAAA8iD,cAAA,SAAAglI,SACA70K,KAAA0T,OAAA1b,KAAA/E,EAAA,SAAAsK,GACA,SAAAk9C,EAAAurB,UAAAzoE,EAAA,mBAEAw1a,EAAA/ya,EAAA5C,EAAAhR,QAAAqjL,IACAlpC,EAAAvmI,EAAA5C,EAAAhR,QAAAqgM,IACAsmP,GACA,EAAAt4X,EAAAosB,aAAAksW,EAAA,kBAEA38a,QAAA4B,KAAAgI,EAAA,SAAAzC,GACA,SAAAk9C,EAAAosB,aAAAtpE,EAAA,iBAGAgpI,IACA,EAAA9rF,EAAA6rB,UAAAigE,EAAA,mBAKAp+H,UACAilW,MAAA,WACA,OAAA9gX,KAAAmsN,SAEAr7M,KAAA,WACA,OAAA9Q,KAAA6+K,MAAAkgQ,OAAAjua,MAEA61a,aAAA,WACA,OAAA3mb,KAAA6+K,MAAAkgQ,OAAAnra,QAAA3S,QAEA2lb,mBAAA,WACA,OAAA5mb,KAAA6+K,MAAAkgQ,OAAAsC,wBAEAwF,oBAAA,WACA,OAAA7mb,KAAA6+K,MAAAkgQ,OAAAuC,6BAEAwF,eAAA,WACA,OAAA9mb,KAAA6+K,MAAAkgQ,OAAAH,aAAA39a,QAEA8lb,gBAAA,WACA,OAAA/mb,KAAA6+K,MAAAkgQ,OAAAF,kBAAA59a,QAEA2S,QAAA,WACA,OAAA5T,KAAA6+K,MAAAkgQ,OAAAnra,UAIA9C,KAAA,WACA,OACAq3S,eAAA,KAGAroS,QAAA,WACA9f,KAAAgnb,iBAAA,EAAAphO,EAAA7sM,SAAA,YAAAhD,GACA,OAAAA,EAAAsxM,sBAKAtrM,SACAypa,YAAA,SAAAv0a,EAAArE,GACA,IAAAitZ,EAAA75Z,KAAA8gX,MAAA+4C,OACA,OAAAA,GACA,EAAAp6Z,EAAAy5Z,gBAAAjoZ,EAAA4oZ,GAEAjtZ,GAEAw4a,eAAA,SAAAx4a,GACA,WAAA5M,KAAAqhD,OAAA,SAAArhD,KAAAqhD,MACAz0C,GAAA5M,KAAA4mb,mBACO,UAAA5mb,KAAAqhD,MACPz0C,EAAA5M,KAAA2mb,aAAA3mb,KAAA6mb,oBAEAj6a,EAAA5M,KAAA4mb,oBAAAh6a,GAAA5M,KAAA2mb,aAAA3mb,KAAA6mb,qBAGAZ,QAAA,SAAAh1a,EAAA0c,EAAAs5Z,EAAAC,GACA,IAAAhB,EAAA,EACAxlN,EAAA,EAEAz0N,EAAAjM,KAAA8gX,MAAAk7D,WACA,sBAAA/va,EAAA,CACA,IAAA8E,EAAA9E,GACAgF,MACA0c,SACAs5Z,WACAC,gBAGAr7a,MAAAC,QAAAiF,IACAm1a,EAAAn1a,EAAA,GACA2vN,EAAA3vN,EAAA,IACS,qBAAAA,EAAA,YAAA/F,EAAA+F,MACTm1a,EAAAn1a,EAAAm1a,QACAxlN,EAAA3vN,EAAA2vN,SAIA,OACAwlN,UACAxlN,YAGA6kN,YAAA,SAAAt0a,EAAAg2a,GACA,IAAA9L,EAAAn7a,KAAA8gX,MAAAq6D,SACA,yBAAAA,EACAA,EAAAzva,KAAA,MACAuF,MACAg2a,aAGA9L,GAEA2K,YAAA,SAAA70a,EAAAg2a,GACA,IAAArvD,GAAA,iBACA53X,KAAA8gX,MAAA46D,qBAAAzqa,IAAAjR,KAAA6+K,MAAAkgQ,OAAA6C,YACAhqD,EAAAr2X,KAAA,eAGAvB,KAAA86a,QAAAmM,EAAA,MACArvD,EAAAr2X,KAAA,0BAEA,IAAA25a,EAAAl7a,KAAA8gX,MAAAo6D,aAcA,MAbA,iBAAAA,EACAtjD,EAAAr2X,KAAA25a,GACO,mBAAAA,GACPtjD,EAAAr2X,KAAA25a,EAAAxva,KAAA,MACAuF,MACAg2a,cAIAjnb,KAAA6+K,MAAAkgQ,OAAA+C,WAAAhib,QAAAmR,IAAA,GACA2mX,EAAAr2X,KAAA,YAGAq2X,EAAAxxX,KAAA,MAEA+/a,aAAA,SAAAc,EAAAC,EAAAj2a,EAAA0c,GACA,IAAA0tZ,EAAAr7a,KAAA8gX,MAAAu6D,UACA,yBAAAA,EACAA,EAAA3va,KAAA,MACAu7a,WACAC,cACAj2a,MACA0c,WAGA0tZ,GAEA+K,aAAA,SAAAa,EAAAC,EAAAj2a,EAAA0c,GACA,IAAAiqW,GAAAjqW,EAAAjsB,GAAAisB,EAAAgL,MAAAhL,EAAAozB,WAEA/gD,KAAAolb,eAAA8B,IACAtvD,EAAAr2X,KAAA,aAGA,IAAA65a,EAAAp7a,KAAA8gX,MAAAs6D,cAYA,MAXA,iBAAAA,EACAxjD,EAAAr2X,KAAA65a,GACO,mBAAAA,GACPxjD,EAAAr2X,KAAA65a,EAAA1va,KAAA,MACAu7a,WACAC,cACAj2a,MACA0c,YAIAiqW,EAAAxxX,KAAA,MAEAigb,qBAAA,SAAA9uX,EAAAtmD,GACA,IAAA6vW,EAAA9gX,KAAA8gX,MACAw4C,GAAA,EAAA75Z,EAAA45Z,SAAA9hW,GAEA,GAAA+hW,EAAA,CACA,IAAA3rY,GAAA,EAAAluB,EAAA05Z,iBAAAr4C,EAAAw4C,GACAyjB,EAAAj8D,EAAAi8D,YAA6CzjB,OAAA3rY,SAAA1c,OAC7C6vW,EAAA9iW,MAAA,mBAAA++Z,EAAA9ra,IAAA8ra,EAAApvZ,OAAAovZ,EAAAzjB,KAAA/hW,GAIA,IAAA4vX,EAAA5vX,EAAAh3D,OAAAgjD,cAAA,SACA,MAAA4K,EAAAurB,UAAAytW,EAAA,eAKA,IAAA/mU,EAAAvwG,SAAAitS,cAKA,GAJA18L,EAAAgnU,SAAAD,EAAA,GACA/mU,EAAAinU,OAAAF,IAAA1mN,WAAAx/N,SACAm/G,EAAAzhE,wBAAA3lC,QACA4gE,UAAA,EAAAzrB,EAAA0rB,UAAAstW,EAAA,wBAAAvtW,UAAA,EAAAzrB,EAAA0rB,UAAAstW,EAAA,yBACAA,EAAAryY,aAAAqyY,EAAArlY,YAAAqlY,EAAAryY,cAAA90C,KAAAye,MAAA1I,QAAA,CACA,IAAAA,EAAA/V,KAAAye,MAAA1I,QAEA/V,KAAAmoT,eAAAmxG,EAAA34W,aAAA24W,EAAAguB,UACAvxa,EAAAg/L,aAAAukN,EACAvjZ,EAAA0I,MAAAm9B,SAAA7lC,EAAA0I,MAAAm9B,OAAArjC,MAAAM,QAAA,QACA9C,EAAAq/L,YACAr/L,EAAA6wM,kBAAA,GACA5mN,KAAAgnb,gBAAAjxa,MAGAuwa,qBAAA,SAAA/uX,GACA,IAAAxhD,EAAA/V,KAAAye,MAAA1I,QAMA,GALAA,IACAA,EAAA6wM,kBAAA,GACA7wM,EAAA0wM,sBAEA,EAAAhnN,EAAA45Z,SAAA9hW,GACA,CAEA,IAAAgwX,EAAAvnb,KAAA8gX,MAAAi8D,eACA/8a,KAAA8gX,MAAA9iW,MAAA,mBAAAupa,EAAAt2a,IAAAs2a,EAAA55Z,OAAA45Z,EAAAjuB,KAAA/hW,KAEAsuX,iBAAA,SAAAj5a,GACA5M,KAAA6+K,MAAA29P,OAAA,cAAA5va,IAEAkwa,iBAAA,WACA98a,KAAA6+K,MAAA29P,OAAA,qBAEAoJ,kBAAA,SAAAruX,EAAAtmD,GACAjR,KAAAwnb,YAAAjwX,EAAAtmD,EAAA,gBAEAy0a,kBAAA,SAAAnuX,EAAAtmD,GACAjR,KAAAwnb,YAAAjwX,EAAAtmD,EAAA,aAEAkjE,YAAA,SAAA5c,EAAAtmD,GACAjR,KAAA6+K,MAAA29P,OAAA,gBAAAvra,GACAjR,KAAAwnb,YAAAjwX,EAAAtmD,EAAA,UAEAu2a,YAAA,SAAAjwX,EAAAtmD,EAAArO,GACA,IAAAk+W,EAAA9gX,KAAA8gX,MACAw4C,GAAA,EAAA75Z,EAAA45Z,SAAA9hW,GACA5pC,OAAA,EACA2rY,IACA3rY,GAAA,EAAAluB,EAAA05Z,iBAAAr4C,EAAAw4C,KAEAx4C,EAAA9iW,MAAA,QAAApb,EAAAqO,EAAA0c,EAAA2rY,EAAA/hW,GAGAupT,EAAA9iW,MAAA,OAAApb,EAAAqO,EAAAsmD,EAAA5pC,IAEA85Z,kBAAA,SAAAx2a,EAAA9M,GACAA,EAAAqgL,kBACAxkL,KAAA6+K,MAAA89P,mBAAA1ra,OAOA,SAAA/N,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAAjjB,EAAA5uD,EAAA,GAIAs3a,EAAA3/V,EAFA33E,EAAA,KAMAizS,EAAAt7N,EAFA33E,EAAA,KAMA03E,EAAAC,EAFA33E,EAAA,IAMAmob,EAAAxwW,EAFA33E,EAAA,MAMA2lb,EAAAhuW,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAaAw8a,EAAA,SAAA3G,GACA,IAAA4G,EAAA,EAoBA5G,EAAAl3a,QAAA,SAAA6jB,GACAA,EAAAtK,MAAA,EApBA,SAAAs1C,EAAAhrC,EAAA4b,GAOA,GANAA,IACA5b,EAAAtK,MAAAkmB,EAAAlmB,MAAA,EACAuka,EAAAj6Z,EAAAtK,QACAuka,EAAAj6Z,EAAAtK,QAGAsK,EAAA46J,SAAA,CACA,IAAAs/P,EAAA,EACAl6Z,EAAA46J,SAAAz+K,QAAA,SAAAg+a,GACAnvX,EAAAmvX,EAAAn6Z,GACAk6Z,GAAAC,EAAAD,UAEAl6Z,EAAAk6Z,eAEAl6Z,EAAAk6Z,QAAA,EAMAlvX,CAAAhrC,KAIA,IADA,IAAAja,KACA3S,EAAA,EAAiBA,EAAA6mb,EAAc7mb,IAC/B2S,EAAAnS,SAcA,OAvDA,SAAAwmb,EAAAn0a,GACA,IAAA7C,KASA,OARA6C,EAAA9J,QAAA,SAAA6jB,GACAA,EAAA46J,UACAx3K,EAAAxP,KAAAosB,GACA5c,EAAAxP,KAAAgL,MAAAwE,EAAAg3a,EAAAp6Z,EAAA46J,YAEAx3K,EAAAxP,KAAAosB,KAGA5c,EAkCAg3a,CAAA/G,GAEAl3a,QAAA,SAAA6jB,GACAA,EAAA46J,SAGA56J,EAAAq6Z,QAAA,EAFAr6Z,EAAAq6Z,QAAAJ,EAAAj6Z,EAAAtK,MAAA,EAIA3P,EAAAia,EAAAtK,MAAA,GAAA9hB,KAAAosB,KAGAja,GAGAvQ,EAAA4V,SACAnW,KAAA,gBAEA0/K,QAAA4iQ,EAAAnsa,SAEAtV,OAAA,SAAAwU,GACA,IAAA4E,EAAA7c,KAEAghb,EAAAhhb,KAAA6+K,MAAAkgQ,OAAAiC,cACAiH,EAAAN,EAAA3G,EAAAhhb,KAAA4T,SAEAglD,EAAAqvX,EAAAhnb,OAAA,EAEA,OADA23D,IAAA54D,KAAAmsN,QAAAvzJ,SAAA,GACA3gD,EACA,SAEAC,MAAA,mBACAb,OAAgBgua,YAAA,IAChBC,YAAA,IACA/pI,OAAA,OAEAtjS,EACA,WACA,MACAjY,KAAAyvE,GAAAzvE,KAAA4T,QAAA,SAAA+Z,GACA,OAAA1V,EACA,OAEAZ,OAAsBzU,KAAA+qB,EAAAjsB,WAIb1B,KAAAkob,UAAAjwa,EACT,OAEAZ,OAAoBzU,KAAA,eAGpB,KACAqV,EACA,SACSC,QAAYiwa,WAAAvvX,EAAAwvX,aAAApob,KAAAkob,cACrBlob,KAAAyvE,GAAAw4W,EAAA,SAAAr0a,EAAAqza,GACA,OAAAhva,EACA,MAEAM,MAAAsE,EAAAwra,kBAAApB,GACA/ua,MAAA2E,EAAAyra,kBAAArB,KAEApqa,EAAA4yD,GAAA77D,EAAA,SAAA+Z,EAAAo4Z,GACA,OAAA9ta,EACA,MAEAZ,OACAqpN,QAAA/yM,EAAAk6Z,QACA3B,QAAAv4Z,EAAAq6Z,SAEAtoa,IACAg8I,UAAA,SAAA6oB,GACA,OAAA1nK,EAAA0ra,gBAAAhkQ,EAAA52J,IAEAkzM,SAAAhkN,EAAA2ra,eACAhtR,UAAA,SAAA+oB,GACA,OAAA1nK,EAAA4ra,gBAAAlkQ,EAAA52J,IAEAknD,MAAA,SAAA0vG,GACA,OAAA1nK,EAAA6ra,kBAAAnkQ,EAAA52J,IAEAg4Z,YAAA,SAAAphQ,GACA,OAAA1nK,EAAA8ra,wBAAApkQ,EAAA52J,KAIApV,MAAAsE,EAAA+ra,mBAAA3B,EAAAlB,EAAAnya,EAAA+Z,GACAzV,MAAA2E,EAAAgsa,mBAAA5B,EAAAlB,EAAAnya,EAAA+Z,KACA1V,EACA,OACmBC,OAAA,OAAAyV,EAAAqyZ,eAAAryZ,EAAAqyZ,cAAA/+a,OAAA,iBAAA0sB,EAAAm7Z,kBACnBn7Z,EAAAo7Z,aAAAp7Z,EAAAo7Z,aAAAr9a,KAAAmR,EAAAs0O,aAAAl5O,GAA0F0V,SAAAyxX,OAAA2mC,EAAAlnQ,MAAAhiK,EAAAgiK,MAAA1nK,MAAA0F,EAAAsvM,QAAAh6I,OAAArkB,UAA6FngC,EAAAlb,MAAAkb,EAAA8yZ,SAAAxoa,EACvL,QACqBC,MAAA,gBAAAwH,IACrBm1D,MAAA,SAAA0vG,GACA,OAAA1nK,EAAAmsa,gBAAAzkQ,EAAA52J,OAIA1V,EACA,KACuBC,MAAA,uBAAAwH,IACvBm1D,MAAA,SAAA0vG,GACA,OAAA1nK,EAAAmsa,gBAAAzkQ,EAAA52J,EAAA,oBAKA1V,EACA,KACuBC,MAAA,wBAAAwH,IACvBm1D,MAAA,SAAA0vG,GACA,OAAA1nK,EAAAmsa,gBAAAzkQ,EAAA52J,EAAA,uBAMA,GAAAA,EAAAwxO,SAAAxxO,EAAAwxO,QAAAl+P,QAAA0sB,EAAA8xR,aAAAxnS,EACA,QACqBC,MAAA,kCAAAwH,IACrBm1D,MAAA,SAAA0vG,GACA,OAAA1nK,EAAAosa,kBAAA1kQ,EAAA52J,OAIA1V,EACA,KACuBC,OAAA,qBAAAyV,EAAAu7Z,aAAA,8BAGvB,SAGarsa,EAAAqra,UAAAjwa,EACb,MACeC,MAAA,cAEf,YAQApV,OACAu+C,MAAAlwC,OACA0tK,OACA9b,UAAA,GAEAw4I,OAAA9hS,QACAqia,aACAt4a,KAAAoG,OACAmP,QAAA,WACA,OACAjY,KAAA,GACAuU,MAAA,OAMA+e,YACAioZ,WAAAxF,EAAA99Z,QACAqmS,MAAA5M,EAAAz5R,SAGA8C,UACAilW,MAAA,WACA,OAAA9gX,KAAAmsN,SAEAs1N,cAAA,WACA,OAAAzhb,KAAA6+K,MAAAkgQ,OAAA0C,eAEAkF,aAAA,WACA,OAAA3mb,KAAA6+K,MAAAkgQ,OAAAnra,QAAA3S,QAEA6lb,eAAA,WACA,OAAA9mb,KAAA6+K,MAAAkgQ,OAAAH,aAAA39a,QAEA8lb,gBAAA,WACA,OAAA/mb,KAAA6+K,MAAAkgQ,OAAAF,kBAAA59a,QAEA2lb,mBAAA,WACA,OAAA5mb,KAAA6+K,MAAAkgQ,OAAAsC,wBAEAwF,oBAAA,WACA,OAAA7mb,KAAA6+K,MAAAkgQ,OAAAuC,6BAEA1ta,QAAA,WACA,OAAA5T,KAAA6+K,MAAAkgQ,OAAAnra,SAEAs0a,UAAA,WACA,OAAAlob,KAAAqhD,OAAArhD,KAAA03Z,YAAAQ,cAIAp4Y,QAAA,WACA9f,KAAA+jb,iBAEAhka,QAAA,WACA,IAAAopa,EAAAnpb,KAAA87a,YACAh7a,EAAAqob,EAAArob,KACAuU,EAAA8za,EAAA9za,MAEArV,KAAA6+K,MAAA29P,OAAA,QAA+B17a,OAAAuU,WAE/B2K,cAAA,WACA,IAAAk5V,EAAAl5W,KAAA+jb,aACA,QAAAjjb,KAAAo4W,EACAA,EAAAr2W,eAAA/B,IAAAo4W,EAAAp4W,IACAo4W,EAAAp4W,GAAAqzP,UAAA,IAMAp4O,SACAqta,aAAA,SAAAx8a,EAAAgH,GAEA,IADA,IAAApR,EAAA,EACAzB,EAAA,EAAqBA,EAAA6L,EAAW7L,IAChCyB,GAAAoR,EAAA7S,GAAA8mb,QAEA,IAAAwB,EAAA7mb,EAAAoR,EAAAhH,GAAAi7a,QAAA,EACA,WAAA7nb,KAAAqhD,OAAA,SAAArhD,KAAAqhD,MACAgoY,GAAArpb,KAAA4mb,mBACO,UAAA5mb,KAAAqhD,MACP7+C,EAAAxC,KAAA2mb,aAAA3mb,KAAA6mb,oBAEAwC,EAAArpb,KAAA4mb,oBAAApkb,GAAAxC,KAAA2mb,aAAA3mb,KAAA6mb,qBAGAwB,kBAAA,SAAApB,GACA,IAAA1L,EAAAv7a,KAAA8gX,MAAAy6D,eACA,yBAAAA,EACAA,EAAA7va,KAAA,MAA0Cu7a,aAE1C1L,GAEA+M,kBAAA,SAAArB,GACA,IAAArvD,KAEA0jD,EAAAt7a,KAAA8gX,MAAAw6D,mBAOA,MANA,iBAAAA,EACA1jD,EAAAr2X,KAAA+5a,GACO,mBAAAA,GACP1jD,EAAAr2X,KAAA+5a,EAAA5va,KAAA,MAAoDu7a,cAGpDrvD,EAAAxxX,KAAA,MAEAwib,mBAAA,SAAA3B,EAAAC,EAAAj2a,EAAA0c,GACA,IAAA8tZ,EAAAz7a,KAAA8gX,MAAA26D,gBACA,yBAAAA,EACAA,EAAA/va,KAAA,MACAu7a,WACAC,cACAj2a,MACA0c,WAGA8tZ,GAEAoN,mBAAA,SAAA5B,EAAAC,EAAAj2a,EAAA0c,GACA,IAAAiqW,GAAAjqW,EAAAjsB,GAAAisB,EAAAtY,MAAAsY,EAAA27Z,YAAA37Z,EAAAozB,UAAApzB,EAAAm7Z,gBAEA,IAAA7B,GAAAjnb,KAAAopb,aAAAlC,EAAAj2a,IACA2mX,EAAAr2X,KAAA,aAGAosB,EAAA46J,UACAqvM,EAAAr2X,KAAA,WAGAosB,EAAA8yZ,UACA7oD,EAAAr2X,KAAA,eAGA,IAAAi6a,EAAAx7a,KAAA8gX,MAAA06D,oBAYA,MAXA,iBAAAA,EACA5jD,EAAAr2X,KAAAi6a,GACO,mBAAAA,GACP5jD,EAAAr2X,KAAAi6a,EAAA9va,KAAA,MACAu7a,WACAC,cACAj2a,MACA0c,YAIAiqW,EAAAxxX,KAAA,MAEAo4a,mBAAA,WACAx+a,KAAA6+K,MAAA29P,OAAA,uBAEAyM,kBAAA,SAAA1xX,EAAA5pC,GACA4pC,EAAAitH,kBACA,IAAAjkL,EAAAg3D,EAAAh3D,OACA+4Z,EAAA,OAAA/4Z,EAAAwxC,QAAAxxC,IAAAgsC,WACA+sX,IAAA/1W,cAAA,qCAAA+1W,EACA,IAAAx4C,EAAA9gX,KAAAmsN,QAEAo9N,EAAAvpb,KAAA+jb,aAAAp2Z,EAAAjsB,IAEA6nb,GAAA57Z,EAAAu7Z,aACAK,EAAA/0O,YAAA,GAIA+0O,IACAA,EAAA,IAAAtyW,EAAAl+D,QAAA2ua,EAAA3ua,SACA/Y,KAAA+jb,aAAAp2Z,EAAAjsB,IAAA6nb,EACA57Z,EAAA67Z,kBACAD,EAAAxuY,UAAAptB,EAAA67Z,iBAEAD,EAAAzoE,QACAyoE,EAAAjwB,OACAiwB,EAAA57Z,UACA3tB,KAAAk5E,WAAAqwW,EAAAhjO,OAAA12M,SAAAC,cAAA,SAGAxD,WAAA,WACAi9a,EAAA/0O,YAAA,GACO,MAEPk0O,kBAAA,SAAAnxX,EAAA5pC,IACAA,EAAAwxO,SAAAxxO,EAAA8yZ,SACAzgb,KAAAgpb,gBAAAzxX,EAAA5pC,GACOA,EAAA2wR,aAAA3wR,EAAA8yZ,UACPzgb,KAAAipb,kBAAA1xX,EAAA5pC,GAGA3tB,KAAAmsN,QAAAnuM,MAAA,eAAA2P,EAAA4pC,IAEAoxX,wBAAA,SAAApxX,EAAA5pC,GACA3tB,KAAAmsN,QAAAnuM,MAAA,qBAAA2P,EAAA4pC,IAEAkxX,gBAAA,SAAAlxX,EAAA5pC,GACA,IAAAzP,EAAAle,KAEAA,KAAAk5E,WACAvrD,EAAA46J,UAAA56J,EAAA46J,SAAAtnL,OAAA,GAEAjB,KAAAypb,gBAAAzpb,KAAAu7S,QACA,WACAr9R,EAAAwwV,UAAA,EAEAxwV,EAAAiuM,QAAAg0N,oBAAA,EAEA,IAAAr/D,EAAA5iW,EAAAiuM,QAEAu9N,EADA5oE,EAAApkW,IACAiiC,wBAAA94C,KACA8jb,EAAAzra,EAAAxB,IAAA6mC,cAAA,MAAA51B,EAAAjsB,IACAkob,EAAAD,EAAAhrY,wBACAkrY,EAAAD,EAAA/jb,KAAA6jb,EAAA,IAEA,EAAAv7X,EAAA6rB,UAAA2vW,EAAA,WAEAzra,EAAA4ra,WACAC,eAAAxyX,EAAAk6H,QACAu4P,UAAAJ,EAAA9jb,MAAA4jb,EACAO,gBAAAL,EAAA/jb,KAAA6jb,EACAA,aAGA,IAAAQ,EAAAppE,EAAAriW,MAAAyra,YACAA,EAAA3xa,MAAA1S,KAAAqY,EAAA4ra,UAAAE,UAAA,KAEAn6a,SAAAm9M,cAAA,WACA,UAEAn9M,SAAAilR,YAAA,WACA,UAGA,IAAAyzJ,EAAA,SAAAhxX,GACA,IAAA4yX,EAAA5yX,EAAAk6H,QAAAvzK,EAAA4ra,UAAAC,eACAK,EAAAlsa,EAAA4ra,UAAAE,UAAAG,EAEAD,EAAA3xa,MAAA1S,KAAAkC,KAAAE,IAAA4hb,EAAAO,GAAA,MAkCAv6a,SAAA+O,iBAAA,YAAA2pa,GACA14a,SAAA+O,iBAAA,UAhCA,SAAAyra,IACA,GAAAnsa,EAAAwwV,SAAA,CACA,IAAA47E,EAAApsa,EAAA4ra,UACAG,EAAAK,EAAAL,gBACAD,EAAAM,EAAAN,UAGAxjE,EADA5sS,SAAAswW,EAAA3xa,MAAA1S,KAAA,IACAokb,EACAt8Z,EAAA3U,MAAA2U,EAAAqqY,UAAAxxC,EACA1F,EAAA9iW,MAAA,iBAAA2P,EAAA3U,MAAAgxa,EAAAC,EAAAt8Z,EAAA4pC,GAEAr5C,EAAA2gK,MAAA6jQ,iBAEA7ya,SAAAG,KAAAuI,MAAA6W,OAAA,GACAlR,EAAAwwV,UAAA,EACAxwV,EAAAura,eAAA,KACAvra,EAAA4ra,aAEAhpE,EAAAq/D,oBAAA,EAGAtwa,SAAAiP,oBAAA,YAAAypa,GACA14a,SAAAiP,oBAAA,UAAAura,GACAx6a,SAAAm9M,cAAA,KACAn9M,SAAAilR,YAAA,KAEAxoR,WAAA,YACA,EAAA6hD,EAAAosB,aAAAovW,EAAA,YACa,KAlEb,IA0EApB,gBAAA,SAAAhxX,EAAA5pC,GACA,KAAAA,EAAA46J,UAAA56J,EAAA46J,SAAAtnL,OAAA,IAEA,IADA,IAAAV,EAAAg3D,EAAAh3D,OACAA,GAAA,OAAAA,EAAAwxC,SACAxxC,IAAAgsC,WAGA,GAAA5e,KAAA48Z,YAEAvqb,KAAA0uW,UAAA1uW,KAAAu7S,OAAA,CACA,IAAArzQ,EAAA3nC,EAAAo+C,wBAEA6rY,EAAA36a,SAAAG,KAAAuI,MACA2vB,EAAAlvB,MAAA,IAAAkvB,EAAApiC,MAAAyxD,EAAAkzX,MAAA,GACAD,EAAAp7Z,OAAA,cACA,EAAA++B,EAAAurB,UAAAn5E,EAAA,iBACAA,EAAAgY,MAAA6W,OAAA,cAEApvB,KAAAypb,eAAA97Z,GACS3tB,KAAA0uW,WACT87E,EAAAp7Z,OAAA,IACA,EAAA++B,EAAAurB,UAAAn5E,EAAA,iBACAA,EAAAgY,MAAA6W,OAAA,WAEApvB,KAAAypb,eAAA,SAIAjB,eAAA,WACAxob,KAAAk5E,YACArpE,SAAAG,KAAAuI,MAAA6W,OAAA,KAEAs7Z,YAAA,SAAAx8a,GACA,IAAAmH,EAAAnH,EAAAmH,MACAs1a,EAAAz8a,EAAAy8a,WAEA,QAAAt1a,EAAA,OAAAs1a,EAAA,GACA,IAAA/9a,EAAA+9a,EAAA7qb,QAAAuV,GAAA,MACA,OAAAs1a,EAAA/9a,EAAA+9a,EAAA1pb,OAAA,IAAA2L,EAAA,IAEAo8a,gBAAA,SAAAzxX,EAAA5pC,EAAAi9Z,GACArzX,EAAAitH,kBAIA,IAHA,IAAAnvK,EAAAu1a,GAAA5qb,KAAA0qb,YAAA/8Z,GAEAptB,EAAAg3D,EAAAh3D,OACAA,GAAA,OAAAA,EAAAwxC,SACAxxC,IAAAgsC,WAGA,GAAAhsC,GAAA,OAAAA,EAAAwxC,UACA,EAAAoc,EAAAurB,UAAAn5E,EAAA,YACA,EAAA4tD,EAAAosB,aAAAh6E,EAAA,gBAKA,GAAAotB,EAAA8yZ,SAAA,CAEA,IAAA1B,EAAA/+a,KAAA6+K,MAAAkgQ,OACA2B,EAAA3B,EAAA2B,SACAhqE,OAAA,EACA8pE,EAAAzB,EAAAyB,eAEAA,IAAA7yZ,GAAA6yZ,IAAA7yZ,GAAA,OAAA6yZ,EAAAnra,SACAmra,IACAA,EAAAnra,MAAA,MAEA0pa,EAAAyB,cAAA7yZ,EACA+yZ,EAAA/yZ,EAAAkwB,UAGAxoC,EAKAqhW,EAAA/oV,EAAAtY,SAJAqhW,EAAA/oV,EAAAtY,MAAA,KACA0pa,EAAAyB,cAAA,KACAE,EAAA,MAKA3B,EAAA2B,WACA3B,EAAAroE,YAEA12W,KAAA6+K,MAAA29P,OAAA,0BAIA1ra,KAAA,WACA,OACA24a,eAAA,KACA/6E,UAAA,EACAo7E,iBAOA,SAAA5mb,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAsjb,EAAAtrb,EAAA,KACAurb,EAAAvrb,EAAA6+C,EAAAysY,GACAE,EAAAxrb,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA23W,EAAAv1a,EACAw1a,EAAA,GATA,EAEA,KAEA,KAEA,MAUAxmY,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAu0I,EAAAzuI,EAFA33E,EAAA,IAIA20M,EAAA30M,EAAA,IAIAm+S,EAAAxmO,EAFA33E,EAAA,IAMAs+S,EAAA3mO,EAFA33E,EAAA,IAMAita,EAAAt1V,EAFA33E,EAAA,MAMAs3a,EAAA3/V,EAFA33E,EAAA,KAMA+zY,EAAAp8T,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,qBAEA0/K,QAAAqjC,EAAA5sM,QAAA2kS,EAAA3kS,SAEAqrK,YACAk7H,aAAAzB,EAAA9kS,SAGAqb,YACAioZ,WAAAxF,EAAA99Z,QACAiya,gBAAA13C,EAAAv6X,SAGAjW,OACAi4C,WACAv3C,KAAA2N,OACA4H,QAAA,eAIAkya,aAAA,SAAAhza,GACA,OAAAA,EACA,OACOC,MAAA,oBACPD,EACA,OACSC,MAAA,gCAETD,EACA,OACSC,MAAA,4BACTD,EACA,UAEAyH,IACAm1D,MAAA70E,KAAAkrb,iBAGAlrb,KAAAyoF,EAAA,4BACAxwE,EACA,UAEAyH,IACAm1D,MAAA70E,KAAAmrb,eAGAnrb,KAAAyoF,EAAA,+BAOA1sE,SACA8tC,SAAA,SAAAziC,GACA,OAAAA,EAAA7f,QAAAvH,KAAAorb,aAEAC,mBAAA,WACA,IAAAxua,EAAA7c,KAEAsM,WAAA,WACAuQ,EAAA23L,YAAA,GACO,KAEP02O,cAAA,WACAlrb,KAAA+gX,cAAA/gX,KAAAggb,eACAhgb,KAAAqrb,sBAEAF,YAAA,WACAnrb,KAAAggb,iBACAhgb,KAAA+gX,cAAA/gX,KAAAggb,eACAhgb,KAAAqrb,sBAEAC,aAAA,SAAAF,GACAprb,KAAAorb,mBAEA,IAAAA,GAAA,OAAAA,EACAprb,KAAA+gX,cAAA/gX,KAAAggb,eAEAhgb,KAAA+gX,kBAGA/gX,KAAAqrb,sBAEAtqE,cAAA,SAAAi/D,GACAhgb,KAAA8gX,MAAAjiM,MAAA29P,OAAA,gBACA7uZ,OAAA3tB,KAAA2tB,OACAyD,OAAA4uZ,IAEAhgb,KAAA8gX,MAAAjiM,MAAA69P,sBAIA5ra,KAAA,WACA,OACAgwW,MAAA,KACAw4C,KAAA,KACA3rY,OAAA,OAKA9R,UACAsjP,QAAA,WACA,OAAAn/P,KAAA2tB,QAAA3tB,KAAA2tB,OAAAwxO,SAIAisL,aACApnb,IAAA,WACA,OAAAhE,KAAA2tB,OAAAqyZ,mBAAA,IAEAh7X,IAAA,SAAAz9C,GACAvH,KAAAggb,qBACA,IAAAz4a,GAAA,OAAAA,EACAvH,KAAAggb,cAAA1+a,OAAA,IAAAiG,GAEAvH,KAAAggb,cAAA1+a,OAAA,QAMA0+a,eACAh8a,IAAA,WACA,OAAAhE,KAAA2tB,QACA3tB,KAAA2tB,OAAAqyZ,mBAIAh7X,IAAA,SAAAz9C,GACAvH,KAAA2tB,SACA3tB,KAAA2tB,OAAAqyZ,cAAAz4a,KAKAw7K,SAAA,WACA,OAAA/iL,KAAA2tB,QACA3tB,KAAA2tB,OAAA49Z,iBAMAxra,QAAA,WACA,IAAA7B,EAAAle,KAEAA,KAAA80M,UAAA90M,KAAA0c,IACA1c,KAAA+0M,aAAA/0M,KAAAs5Z,KACAt5Z,KAAA8gX,MAAAq8D,YAAAv+Z,iBAAA,oBACAV,EAAAy2L,iBAGA30M,KAAAsf,OAAA,sBAAA/X,GACA2W,EAAAyP,SAAAzP,EAAAyP,OAAAu7Z,aAAA3hb,GACAA,EACAila,EAAAzzZ,QAAAjK,KAAAoP,GAEAsuZ,EAAAzzZ,QAAA+/D,MAAA56D,MAKA3C,OACAi5L,WAAA,SAAAjnM,IACA,IAAAA,GAAAqsE,SAAA55E,KAAAk1M,SAAAh5J,QAAA3jC,MAAA64B,OAAA,IAAA8iK,EAAAl9H,aAAA5lC,SACApxC,KAAAk1M,SAAAh5J,QAAA3jC,MAAA64B,OAAA8iK,EAAAl9H,aAAAyC,kBAmDA,SAAAv2E,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAotL,EAAAh5L,EAAA,GAMA,IAAAisb,QAFArgb,EAFAotL,IAEsCptL,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,IAI7E4N,QAAA7Y,UAAAg5E,WAAArpE,SAAA+O,iBAAA,iBAAA24C,GACAi0X,EAAA1hb,QAAA,SAAA+ia,GACA,IAAAtsa,EAAAg3D,EAAAh3D,OACAssa,KAAAnwZ,MACAnc,IAAAssa,EAAAnwZ,KAAAmwZ,EAAAnwZ,IAAA8mC,SAAAjjD,IAGAssa,EAAAwe,oBAAAxe,EAAAwe,mBAAA9zX,QAIAp0D,EAAA4V,SACAjK,KAAA,SAAAywC,GACAA,GACAisY,EAAAjqb,KAAAg+C,IAGAu5B,MAAA,SAAAv5B,IAEA,IADAisY,EAAA1rb,QAAAy/C,IAEAisY,EAAAlqb,OAAAi+C,EAAA,MAOA,SAAAr8C,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,oBAAyB2xE,EAAA,SAAAr9D,EAAA,OAA2BktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,mBAAAn1D,WAAA,uBAA8Gxc,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,WAAAn1D,WAAA,eAA4EhI,YAAA,oBAAgCF,EAAA,OAAYE,YAAA,6BAAuCF,EAAA,gBAAqBG,OAAOutS,aAAA,2BAAsC1tS,EAAA,qBAA0BE,YAAA,kCAAAmgB,OAAqDhwB,MAAAgtE,EAAA,cAAApyE,SAAA,SAAAqiT,GAAmDjwO,EAAAyrW,cAAAx7H,GAAsBplS,WAAA,kBAA6Bm1D,EAAA9E,GAAA8E,EAAA,iBAAAntD,GAAuC,OAAAlQ,EAAA,eAAyBnN,IAAAqd,EAAA7f,MAAA8P,OAAwB5E,MAAA2U,EAAA7f,SAAsBgtE,EAAA18D,GAAA08D,EAAA6vF,GAAAh9I,EAAAiqB,aAAgC,OAAAn6B,EAAA,OAAqBE,YAAA,4BAAsCF,EAAA,UAAegB,OAAOs8D,cAAA,IAAAD,EAAAyrW,cAAA/+a,QAAgDoW,OAAQq8D,SAAA,IAAAa,EAAAyrW,cAAA/+a,QAA0Cye,IAAKm1D,MAAAN,EAAA22W,iBAA2B32W,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,8BAAAvxE,EAAA,UAAiEwI,IAAIm1D,MAAAN,EAAA42W,eAAyB52W,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,gCAAAvxE,EAAA,OAAgEktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,mBAAAn1D,WAAA,uBAA8Gxc,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,WAAAn1D,WAAA,eAA4EhI,YAAA,oBAAgCF,EAAA,MAAWE,YAAA,0BAAoCF,EAAA,MAAWE,YAAA,6BAAAc,OAAgDs7Z,iBAAA9la,IAAA6mE,EAAA62W,aAAA,OAAA72W,EAAA62W,aAAyE1ra,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA+2W,aAAA,UAAyB/2W,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,4BAAAlU,EAAA9E,GAAA8E,EAAA,iBAAAntD,GAAwF,OAAAlQ,EAAA,MAAgBnN,IAAAqd,EAAA7f,MAAA6P,YAAA,6BAAAc,OAAiEs7Z,YAAAj/V,EAAA1qB,SAAAziC,IAAoC/P,OAAQ5E,MAAA2U,EAAA7f,OAAqBmY,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA+2W,aAAAlka,EAAA7f,WAAiCgtE,EAAA18D,GAAA08D,EAAA6vF,GAAAh9I,EAAAiqB,YAAgC,QAEr8D15B,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAsgb,EAAAlsb,EAAA,IAEA2lb,GAEA/5a,EAFAsgb,IAEsCtgb,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,gBAEA0/K,QAAA4iQ,EAAAnsa,SAEAtV,OAAA,SAAAwU,GACA,IAAA4E,EAAA7c,KAEAu1X,KAqCA,OApCAv1X,KAAAi7a,cACA1lD,EAAAv1X,KAAAi7a,eAAiCrna,QAAA5T,KAAA4T,QAAA9C,KAAA9Q,KAAA6+K,MAAAkgQ,OAAAjua,OAEjC9Q,KAAA4T,QAAA9J,QAAA,SAAA6jB,EAAA/gB,GACA,OAAAA,EAAA,CAIA,IAAAwkB,EAAAvU,EAAAgiK,MAAAkgQ,OAAAjua,KAAAH,IAAA,SAAAhE,GACA,OAAAoO,OAAApO,EAAAghB,EAAAkwB,aAEA6tY,KACAC,GAAA,EACAv6Z,EAAAtnB,QAAA,SAAAvC,GACA,IAAAkD,MAAAlD,GAAA,CACAokb,GAAA,EACA,IAAA5ib,GAAA,GAAAxB,GAAA1G,MAAA,QACA6qb,EAAAnqb,KAAAwH,IAAA9H,OAAA,MAGA,IAAAoI,EAAAtB,KAAAE,IAAAsE,MAAA,KAAAm/a,GAWAn2D,EAAA3oX,GAVA++a,EAUA,GATAv6Z,EAAA3L,OAAA,SAAA65C,EAAAknC,GACA,IAAAj/F,EAAAwT,OAAAyrF,GACA,OAAA/7F,MAAAlD,GAGA+3D,EAFA95C,YAAA85C,EAAAknC,GAAAl/F,QAAAS,KAAAC,IAAAqB,EAAA,OAIW,QAxBXksX,EAAA3oX,GAAAiQ,EAAAqkW,UA+BAjpW,EACA,SAEAC,MAAA,mBACAb,OAAgBgua,YAAA,IAChBC,YAAA,IACA/pI,OAAA,OAEAtjS,EACA,WACA,MACAjY,KAAAyvE,GAAAzvE,KAAA4T,QAAA,SAAA+Z,GACA,OAAA1V,EACA,OAEAZ,OAAsBzU,KAAA+qB,EAAAjsB,WAIb1B,KAAAkob,UAAAjwa,EACT,OAEAZ,OAAoBzU,KAAA,eAGpB,KACAqV,EACA,SACSC,QAAYkwa,aAAApob,KAAAkob,cACrBjwa,EACA,KACA,MACAjY,KAAAyvE,GAAAzvE,KAAA4T,QAAA,SAAA+Z,EAAAo4Z,GACA,OAAA9ta,EACA,MAEAZ,OACAqpN,QAAA/yM,EAAAk6Z,QACA3B,QAAAv4Z,EAAAq6Z,SAEA9va,OAAAyV,EAAAjsB,GAAAisB,EAAA27Z,YAAA37Z,EAAAozB,WAAA,GAAAlkC,EAAAusa,aAAArD,EAAAlpa,EAAAjJ,SAAA,eAAA+Z,EAAA46J,SAAA,aAAA56J,EAAAm7Z,kBACA7wa,EACA,OACiBC,OAAA,OAAAyV,EAAAm7Z,kBACjBvzD,EAAAwwD,SAGW/lb,KAAAkob,UAAAjwa,EACX,MACaC,MAAA,cAEb,UAOApV,OACAu+C,MAAAlwC,OACA0tK,OACA9b,UAAA,GAEAk4Q,cAAA9ha,SACA+nW,QAAA/vW,OACAoqS,OAAA9hS,QACAqia,aACAt4a,KAAAoG,OACAmP,QAAA,WACA,OACAjY,KAAA,GACAuU,MAAA,OAMAwG,UACAilW,MAAA,WACA,OAAA9gX,KAAAmsN,SAEAs1N,cAAA,WACA,OAAAzhb,KAAA6+K,MAAAkgQ,OAAA0C,eAEAkF,aAAA,WACA,OAAA3mb,KAAA6+K,MAAAkgQ,OAAAnra,QAAA3S,QAEA6lb,eAAA,WACA,OAAA9mb,KAAA6+K,MAAAkgQ,OAAAH,aAAA39a,QAEA8lb,gBAAA,WACA,OAAA/mb,KAAA6+K,MAAAkgQ,OAAAF,kBAAA59a,QAEA2S,QAAA,WACA,OAAA5T,KAAA6+K,MAAAkgQ,OAAAnra,SAEAs0a,UAAA,WACA,OAAAlob,KAAAqhD,OAAArhD,KAAA03Z,YAAAQ,cAIAn8Y,SACAqta,aAAA,SAAAx8a,EAAAgH,GACA,QAAA5T,KAAAqhD,OAAA,SAAArhD,KAAAqhD,MACA,OAAAz0C,GAAA5M,KAAA8mb,eACO,aAAA9mb,KAAAqhD,MAAA,CAEP,IADA,IAAAuqY,EAAA,EACA7qb,EAAA,EAAuBA,EAAA6L,EAAW7L,IAClC6qb,GAAAh4a,EAAA7S,GAAA8mb,QAEA,OAAA+D,EAAA5rb,KAAA2mb,aAAA3mb,KAAA+mb,gBAEA,OAAAn6a,EAAA5M,KAAA8mb,gBAAAl6a,GAAA5M,KAAA2mb,aAAA3mb,KAAA+mb,oBAQA,SAAA7jb,EAAAqhD,EAAAhlD,GAEA,aACA,IAmDA+0E,GAAiB7wE,OAnDjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,WAAAc,QAC1G2za,gBAAAt3W,EAAAsmW,IACAiR,oBAAAv3W,EAAAumW,OACAiR,mBAAAx3W,EAAAgnO,QAAAhnO,EAAA3b,QACAozX,mBAAAz3W,EAAA0rW,SACAgM,kBAAA13W,EAAA3b,QACAszX,yBAAA33W,EAAA2zJ,UACAikN,yBAAA53W,EAAAj9C,OAAAioZ,QACA6M,yBAAA73W,EAAAj9C,OAAA2gY,QACAo0B,8BAAA93W,EAAAsqG,MAAAkgQ,OAAAwC,UACA+K,kCAAA,KAAA/3W,EAAAsqG,MAAAkgQ,OAAAjua,UAAA7P,SAAAszE,EAAAsqG,MAAAkgQ,OAAAjua,UAAA7P,OAAA,KACGszE,EAAAoqW,UAAA,aAAApqW,EAAAoqW,UAAA,IAAAj/Z,IAA2DinM,WAAA,SAAApiC,GAA8BhwG,EAAAuoW,iBAAAv4P,OAA+BrtK,EAAA,OAAY0B,IAAA,gBAAAxB,YAAA,mBAAiDm9D,EAAAQ,GAAA,eAAAR,EAAA,WAAAr9D,EAAA,OAAmDktK,aAAaxhL,KAAA,aAAAyhL,QAAA,eAAA98K,MAAAgtE,EAAA,6BAAAn1D,WAAA,iCAA4HxG,IAAA,gBAAAxB,YAAA,6BAA6DF,EAAA,gBAAqB0B,IAAA,cAAAL,OACtcS,MAAAu7D,EAAAj9C,OAAA2nZ,UAAA1qW,EAAAj9C,OAAA2nZ,UAAA,SACO5na,OAASwnK,MAAAtqG,EAAAsqG,MAAA08H,OAAAhnO,EAAAgnO,OAAAgxI,eAAAh4W,EAAAunW,gBAAsE,GAAAvnW,EAAAO,KAAA59D,EAAA,OAAyB0B,IAAA,cAAAxB,YAAA,yBAAAc,OAAAq8D,EAAAj9C,OAAAioZ,QAAA,gBAAAhrW,EAAAspW,eAAA,qBAAAtla,OAAAg8D,EAAA2qW,cAA0Khoa,EAAA,cAAmBqB,OAC5SS,MAAAu7D,EAAA0qW,WACO5na,OAASy2C,QAAAymB,EAAAzmB,QAAA+wH,MAAAtqG,EAAAsqG,MAAAi8P,OAAAvmW,EAAAumW,OAAA0R,iBAAAj4W,EAAA2mW,aAAAuR,YAAAl4W,EAAA4mW,SAAAx3Y,UAAA4wC,EAAAmnW,uBAA4JnnW,EAAAzjE,MAAA,IAAAyjE,EAAAzjE,KAAA7P,OAEnHszE,EAAAO,KAFmH59D,EAAA,OAAiD0B,IAAA,aAAAxB,YAAA,wBAAAmB,OAC7NS,MAAAu7D,EAAA0qW,aACS/na,EAAA,QAAaE,YAAA,yBAAmCm9D,EAAAQ,GAAA,SAAAR,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkqO,WAAAlqO,EAAAkU,EAAA,gCAAAlU,EAAAz7D,OAAA,OAAA5B,EAAA,OAA8H0B,IAAA,gBAAAxB,YAAA,6BAA2Dm9D,EAAAQ,GAAA,cAAAR,EAAAO,MAAA,GAAAP,EAAA,YAAAr9D,EAAA,OAAgEktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAAzjE,MAAAyjE,EAAAzjE,KAAA7P,OAAA,EAAAme,WAAA,4BAA4Gxc,KAAA,aAAAyhL,QAAA,eAAA98K,MAAAgtE,EAAA,6BAAAn1D,WAAA,iCAA4HxG,IAAA,gBAAAxB,YAAA,6BAA6DF,EAAA,gBAAqBqB,OACznBS,MAAAu7D,EAAAj9C,OAAA2nZ,UAAA1qW,EAAAj9C,OAAA2nZ,UAAA,SACO5na,OAASwnK,MAAAtqG,EAAAsqG,MAAA08H,OAAAhnO,EAAAgnO,OAAAmxI,WAAAn4W,EAAA2sS,SAAA3sS,EAAAkU,EAAA,oBAAAkkW,iBAAAp4W,EAAA0mW,cAAAsR,eAAAh4W,EAAAunW,gBAA6J,GAAAvnW,EAAAO,KAAAP,EAAAqqW,aAAA39a,OAAA,EAAAiW,EAAA,OAAuDktK,aAAaxhL,KAAA,aAAAyhL,QAAA,eAAA98K,MAAAgtE,EAAA,sBAAAn1D,WAAA,0BAA8GxG,IAAA,eAAAxB,YAAA,kBAAAmB,QAC/VS,MAAAu7D,EAAAj9C,OAAA6sZ,WAAA5vW,EAAAj9C,OAAA6sZ,WAAA,SAEA5vW,EAAAirW,eAAsBjrW,EAAA,WAAAr9D,EAAA,OAA6B0B,IAAA,qBAAAxB,YAAA,mCAAsEF,EAAA,gBAAqB0B,IAAA,mBAAAL,OAC9IS,MAAAu7D,EAAA0qW,WACS5na,OAASgqC,MAAA,OAAAk6P,OAAAhnO,EAAAgnO,OAAA18H,MAAAtqG,EAAAsqG,UAAsD,GAAAtqG,EAAAO,KAAA59D,EAAA,OAAyB0B,IAAA,mBAAAxB,YAAA,+BAAAmB,QACjGvG,IAAAuiE,EAAAj9C,OAAA8nZ,aAAA,MAEA7qW,EAAA+qW,mBAA4Bpoa,EAAA,cAAmBqB,OAC/CS,MAAAu7D,EAAA0qW,WACS5na,OAASgqC,MAAA,OAAAw9H,MAAAtqG,EAAAsqG,MAAAi8P,OAAAvmW,EAAAumW,OAAAn3Y,UAAA4wC,EAAAmnW,oBAAA8Q,iBAAAj4W,EAAA2mW,aAAAuR,YAAAl4W,EAAA4mW,YAAqJ5mW,EAAAz7D,OAAA,OAAA5B,EAAA,OAAgCE,YAAA,0BAAAmB,OACvMU,OAAAs7D,EAAAj9C,OAAA+sZ,aAAA,QACW9vW,EAAAO,MAAA,GAAAP,EAAA,YAAAr9D,EAAA,OAA2CktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAAzjE,MAAAyjE,EAAAzjE,KAAA7P,OAAA,EAAAme,WAAA,4BAA0GxG,IAAA,qBAAAxB,YAAA,mCAAwEF,EAAA,gBAAqBqB,OAC1QS,MAAAu7D,EAAA0qW,WACS5na,OAASgqC,MAAA,OAAAk6P,OAAAhnO,EAAAgnO,OAAAmxI,WAAAn4W,EAAA2sS,SAAA3sS,EAAAkU,EAAA,oBAAAkkW,iBAAAp4W,EAAA0mW,cAAAp8P,MAAAtqG,EAAAsqG,UAA6I,GAAAtqG,EAAAO,OAAAP,EAAAO,KAAAP,EAAAsqW,kBAAA59a,OAAA,EAAAiW,EAAA,OAAuEktK,aAAaxhL,KAAA,aAAAyhL,QAAA,eAAA98K,MAAAgtE,EAAA,sBAAAn1D,WAAA,0BAA8GxG,IAAA,oBAAAxB,YAAA,wBAAAmB,QACjWS,MAAAu7D,EAAAj9C,OAAA8sZ,gBAAA7vW,EAAAj9C,OAAA8sZ,gBAAA,QACAt+a,MAAAyuE,EAAAj9C,OAAA2gY,SAAA1jV,EAAAgnO,OAAAhnO,EAAAj9C,OAAA4gY,YAAA3jV,EAAAj9C,OAAA4gY,aAAA,YAEA3jV,EAAAirW,eAAsBjrW,EAAA,WAAAr9D,EAAA,OAA6B0B,IAAA,0BAAAxB,YAAA,mCAA2EF,EAAA,gBAAqB0B,IAAA,wBAAAL,OACnJS,MAAAu7D,EAAA0qW,WACS5na,OAASgqC,MAAA,QAAAk6P,OAAAhnO,EAAAgnO,OAAA18H,MAAAtqG,EAAAsqG,UAAuD,GAAAtqG,EAAAO,KAAA59D,EAAA,OAAyB0B,IAAA,wBAAAxB,YAAA,+BAAAmB,QAClGvG,IAAAuiE,EAAAj9C,OAAA8nZ,aAAA,MAEA7qW,EAAA+qW,mBAA4Bpoa,EAAA,cAAmBqB,OAC/CS,MAAAu7D,EAAA0qW,WACS5na,OAASgqC,MAAA,QAAAw9H,MAAAtqG,EAAAsqG,MAAAi8P,OAAAvmW,EAAAumW,OAAA0R,iBAAAj4W,EAAA2mW,aAAAuR,YAAAl4W,EAAA4mW,SAAAx3Y,UAAA4wC,EAAAmnW,wBAAsJ,GAAAnnW,EAAA,YAAAr9D,EAAA,OAAkCktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAAzjE,MAAAyjE,EAAAzjE,KAAA7P,OAAA,EAAAme,WAAA,4BAA0GxG,IAAA,0BAAAxB,YAAA,mCAA6EF,EAAA,gBAAqBqB,OACnaS,MAAAu7D,EAAA0qW,WACS5na,OAASgqC,MAAA,QAAAk6P,OAAAhnO,EAAAgnO,OAAAmxI,WAAAn4W,EAAA2sS,SAAA3sS,EAAAkU,EAAA,oBAAAkkW,iBAAAp4W,EAAA0mW,cAAAp8P,MAAAtqG,EAAAsqG,UAA8I,GAAAtqG,EAAAO,OAAAP,EAAAO,KAAAP,EAAAsqW,kBAAA59a,OAAA,EAAAiW,EAAA,OAAuE0B,IAAA,kBAAAxB,YAAA,8BAAAmB,OACvOS,MAAAu7D,EAAAj9C,OAAA2gY,QAAA1jV,EAAAj9C,OAAA4gY,YAAA,SACAj/Y,OAAAs7D,EAAAj9C,OAAA8nZ,aAAA,QACO7qW,EAAAO,KAAA59D,EAAA,OAAqBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,mBAAAn1D,WAAA,uBAA4FxG,IAAA,cAAAxB,YAAA,qCAEpHO,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAyhb,EAAArtb,EAAA,KAEAstb,GAEA1hb,EAFAyhb,IAEsCzhb,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E0hb,EAAA9za,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAs4Z,EAAA9za,QAAAnW,KAAAiqb,EAAA9za,UAGA5V,EAAA4V,QAAA8za,EAAA9za,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAylW,EAAA3/V,EAFA33E,EAAA,KAMAizS,EAAAt7N,EAFA33E,EAAA,KAMA43E,EAAAD,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA2hb,EAAA,EAEA9pZ,GACAjqB,SACA1D,MAAA,IAEAypa,WACA9la,MAAA,GACA0qS,SAAA,GACAs0G,UAAA,GACA3iZ,MAAA,GACA0rC,UAAA,8BAEAu7X,QACAtja,MAAA,GACA0qS,SAAA,GACAs0G,UAAA,GACA3iZ,MAAA,IAEAzI,OACAoM,MAAA,GACA0qS,SAAA,GACAs0G,UAAA,GACA3iZ,MAAA,KAIAghG,GACAyoU,WACAiK,aAAA,SAAA9wa,EAAA/J,GACA,IAAA2wK,EAAA3wK,EAAA2wK,MAEA,OAAA5mK,EACA,eAEAZ,OACAq8D,SAAAmrG,EAAAkgQ,OAAAjua,MAAA,IAAA+tK,EAAAkgQ,OAAAjua,KAAA7P,OACAs2a,cAAA14P,EAAAkgQ,OAAAD,UAAA79a,OAAA,IAAAjB,KAAAyhb,cAEAl6a,MAAAvH,KAAAyhb,eACAnsL,UACAzgL,MAAA70E,KAAAw+a,0BAMA+H,WAAA,SAAAtua,EAAA49G,GACA,IAAA5kH,EAAA4kH,EAAA5kH,IACA0c,EAAAkoG,EAAAloG,OACAkxJ,EAAAhpD,EAAAgpD,MACAugO,EAAAvpR,EAAAupR,OAEA,OAAAnnY,EACA,eAEAq9O,UACAzgL,MAAA,SAAAtd,GACA,OAAAA,EAAAitH,oBAGAntK,OACA9P,MAAAs3K,EAAAt6G,WAAAtzD,GACAyiE,WAAA/lD,EAAAg0Z,aAAAh0Z,EAAAg0Z,WAAAj2a,KAAA,KAAAuF,EAAAmuY,IAEA1/X,IACAxV,MAAA,WACA20K,EAAA29P,OAAA,qBAAAvra,WAOAwva,UAAA,EACA8J,WAAA,GAEA39a,OACAm8a,aAAA,SAAA9wa,EAAAy+G,GAGA,OAFAA,EAAA/oG,OAEAlb,OAAA,KAEA8za,WAAA,SAAAtua,EAAA80a,GACA,IAAA3tC,EAAA2tC,EAAA3tC,OAGAr+Y,EAAAq+Y,EAAA,EACAxyY,EAHAmgb,EAAAp/Z,OAGA/gB,MAQA,MANA,iBAAAA,EACA7L,EAAAq+Y,EAAAxyY,EACO,mBAAAA,IACP7L,EAAA6L,EAAAwyY,IAGAnnY,EACA,MACA,MACAlX,KAGA0/a,UAAA,GAEAnE,QACAyM,aAAA,SAAA9wa,EAAA+0a,GAGA,OAFAA,EAAAr/Z,OAEAlb,OAAA,IAEA8za,WAAA,SAAAtua,EAAAg1a,EAAAxmY,GACA,IAAAx1C,EAAAg8a,EAAAh8a,IAIA,OAAAgH,EACA,OACSC,MAAA,0BALT+0a,EAAApuQ,MAEAkgQ,OAAA+C,WAAAhib,QAAAmR,IAAA,EAGS,sCACTyO,IACAm1D,MAAA,SAAA1wE,GACA,OAAAsiD,EAAAghY,kBAAAx2a,EAAA9M,OAIA8T,EACA,KACWC,MAAA,sCAKXuoa,UAAA,EACA8J,WAAA,EACAxpY,UAAA,4BA2BAmsY,EAAA,SAAAj1a,EAAAk1a,GACA,IAAAl8a,EAAAk8a,EAAAl8a,IACA0c,EAAAw/Z,EAAAx/Z,OACAyxX,EAAA+tC,EAAA/tC,OAEAvhW,EAAAlwB,EAAAkwB,SACAt2C,EAAAs2C,IAAA,EAAAp+C,EAAAy3O,eAAAjmO,EAAA4sC,GAAA9wC,EACA,OAAA4gB,KAAA/f,UACA+f,EAAA/f,UAAAqD,EAAA0c,EAAApmB,EAAA63Y,GAEA73Y,GAGA6lb,EAAA,SAAAp0a,GAOA,YANAtL,IAAAsL,IACAA,EAAA4gE,SAAA5gE,EAAA,IACAvO,MAAAuO,KACAA,EAAA,OAGAA,GAGAq0a,EAAA,SAAA3pI,GAOA,YANAh2S,IAAAg2S,IACAA,EAAA9pO,SAAA8pO,EAAA,IACAj5S,MAAAi5S,KACAA,EAAA,KAGAA,GAGAvgT,EAAA4V,SACAnW,KAAA,gBAEAE,OACAU,MACAA,KAAA2N,OACA4H,QAAA,WAEAtG,MAAAtB,OACA4vC,UAAA5vC,OACA23a,eAAA33a,OACA0sC,SAAA1sC,OACArQ,KAAAqQ,OACA6H,SACA0qS,YACAqlI,aAAA5va,SACAsna,UACAj9a,MAAA2N,OAAAsI,SACAV,SAAA,GAEAygZ,WAAArgZ,SACAsgZ,QAAAtoZ,OAAAgI,SAAAtN,OACA0+a,WACA/mb,KAAAiW,QACAV,SAAA,GAEA+0C,WACA00X,UAAArxa,OACAwnB,MAAAxnB,OACAm4a,YAAAn4a,OACAm8a,wBAAA7za,QACA8za,oBAAA9za,QACA4nC,OAAA5nC,QAAAtI,QACAvD,UAAAuL,SACAwoa,WAAAxoa,SACAuoa,iBAAAjoa,QACAgmS,aAAAtmS,SACA6ma,cAAAn0a,MACAszP,QAAAtzP,MACA29a,gBAAAr4a,OACAo6a,gBACA/nb,KAAAiW,QACAV,SAAA,GAEAnM,OAAAmO,OAAA5B,UACAwxa,YACAnnb,KAAAqI,MACAkN,QAAA,WACA,uCAEA8pJ,UAAA,SAAAt1J,GACA,OAAAA,EAAAsqG,MAAA,SAAAxiG,GACA,sCAAAvV,QAAAuV,IAAA,OAMAvE,KAAA,WACA,OACA08a,aAAA,EACA55a,aAGA6+D,aAAA,WACAzyE,KAAAiR,OACAjR,KAAA2tB,UACA3tB,KAAAo/Y,OAAA,GAIAhrX,YACAioZ,WAAAxF,EAAA99Z,QACAqmS,MAAA5M,EAAAz5R,SAGA8C,UACA0oE,MAAA,WAEA,IADA,IAAAh7C,EAAAvpC,KAAAmsN,QACA5iL,MAAAk1Y,SACAl1Y,IAAA4iL,QAEA,OAAA5iL,GAEAkkZ,oBAAA,WAEA,IADA,IAAAlkZ,EAAAvpC,KAAAmsN,QACA5iL,MAAAk1Y,UAAAl1Y,EAAAqwX,UACArwX,IAAA4iL,QAEA,OAAA5iL,IAIAzpB,QAAA,WACA,IAAAjD,EAAA7c,KAEAA,KAAAirb,aAAAjrb,KAAAoY,SAAA3U,OACAzD,KAAAoY,SAAA3U,OAAA,SAAAwU,GACA,OAAAA,EAAA,MAAA4E,EAAA/D,OAAAC,UAGA,IAAAwwB,EAAAvpC,KAAAytb,oBACAlpW,EAAAvkF,KAAAukF,MACAvkF,KAAAwtb,YAAAjpW,IAAAh7C,EACAvpC,KAAA45Z,UAAArwX,EAAAk1Y,SAAAl1Y,EAAAqwX,UAAA,WAAAkzB,IAEA,IAAAtpb,EAAAxD,KAAAwD,KAEAwV,EAAAo0a,EAAAptb,KAAAgZ,OACA0qS,EAAA2pI,EAAArtb,KAAA0jT,UAIA/1R,EAzKA,SAAAnqB,EAAAiF,GACA,IAAAklB,KAIA,QAAA/qB,KAFA,EAAAu0E,EAAAp+D,SAAA4U,EAAAqV,EAAAx/B,GAAA,YAEAiF,EACA,GAAAA,EAAA5F,eAAAD,GAAA,CACA,IAAA2E,EAAAkB,EAAA7F,QACA,IAAA2E,IACAomB,EAAA/qB,GAAA2E,GAWA,OANAomB,EAAA+1R,WACA/1R,EAAA+1R,SAAA,IAGA/1R,EAAAqqY,eAAAtqZ,IAAAigB,EAAA3U,MAAA2U,EAAA+1R,SAAA/1R,EAAA3U,MAEA2U,EAqJA+/Z,CAAAlqb,GACA9B,GAAA1B,KAAA45Z,SACA4oB,UAAAxib,KAAAwib,UACA/va,MAAAzS,KAAAyS,MACAsuC,UAAA/gD,KAAA+gD,UACA+nY,eAAA9ob,KAAA8ob,eACAjrY,SAAA79C,KAAAc,MAAAd,KAAA69C,SACAr6C,OACA+ib,WAAA,KACAwC,aAAA/ob,KAAA+ob,aACArlI,WACA1qS,QACAyra,eAdA,EAeA32X,QAAA9tD,KAAA8tD,QACAn1B,MAAA34B,KAAA24B,MAAA,MAAA34B,KAAA24B,MAAA,KACA2wZ,YAAAtpb,KAAAspb,YAAA,MAAAtpb,KAAAspb,YAAAtpb,KAAA24B,MAAA,MAAA34B,KAAA24B,MAAA,KACA8nZ,SAAA,KAAAzgb,KAAAygb,UAAAzgb,KAAAygb,SACAjnB,WAAAx5Z,KAAAw5Z,WACAC,OAAAz5Z,KAAAy5Z,OACA8wB,UAAAvqb,KAAAuqb,UACAgD,oBAAAvtb,KAAAutb,qBAAAvtb,KAAAstb,wBACA1/a,UAAA5N,KAAA4N,UACA+za,WAAA3hb,KAAA2hb,WACAD,iBAAA1hb,KAAA0hb,iBACArgY,MAAA,KAAArhD,KAAAqhD,OAAArhD,KAAAqhD,MACAo+P,aAAAz/S,KAAAy/S,aACAtgD,QAAAn/P,KAAAm/P,QACAm/C,WAAAt+S,KAAAm/P,SAAAn/P,KAAAm/P,QAAAl+P,QAAAjB,KAAAy/S,aACA8rI,eAAAvrb,KAAAurb,eACArC,cAAA,EACAlJ,cAAAhgb,KAAAggb,kBACAwJ,gBAAAxpb,KAAAwpb,iBAAA,GACA58a,MAAA5M,KAAA4M,MACA+9a,WAAA3qb,KAAA2qb,aAGAlob,EAAA4zG,EAAA7yG,OACA,QAAA1C,KAAA2B,EACA,GAAAA,EAAAI,eAAA/B,GAAA,CACA,IAAAyG,EAAA9E,EAAA3B,QACA4M,IAAAnG,IACAomB,EAAA7sB,GAAA,cAAAA,EAAA6sB,EAAA7sB,GAAA,IAAAyG,KAKAvH,KAAA2tb,aAAAhga,EAEA,IAAA44Z,EAAA54Z,EAAA44Z,WACApva,EAAAnX,KAEA,cAAAwD,EAaA,OAZA+gF,EAAA27V,eAAA,SAAAjoa,EAAAnH,GACA,OAAAqG,EAAA64O,aAAAj3O,QAAA5B,EAAA64O,aAAAj3O,QAAAjI,GAAAqG,EAAA2B,OAAAC,cAGA4U,EAAA44Z,WAAA,SAAAtua,EAAAnH,GACA,OAAAmH,EACA,OACWC,MAAA,SACXqua,EAAAtua,EAAAnH,EAAA9Q,KAAAmxP,kBAOAxjO,EAAA44Z,WAAA,SAAAtua,EAAAnH,GAWA,OAVAqG,EAAA64O,aAAAj3O,UACAwta,EAAA,WACA,OAAApva,EAAA64O,aAAAj3O,QAAAjI,KAIAy1a,IACAA,EAAA2G,GAGA/1a,EAAAo2a,qBAAAp2a,EAAAm2a,wBAAAr1a,EACA,OACSC,MAAA,kBAAAK,OAAqCS,OAAAlI,EAAA6c,OAAAqqY,WAAAlnZ,EAAA6c,OAAA3U,OAAA,UAC9Cuta,EAAAtua,EAAAnH,KACAmH,EACA,OACSC,MAAA,SACTqua,EAAAtua,EAAAnH,OAIAy2M,UAAA,WACA,GAAAvnN,KAAAmsN,QAAA,CACA,IAAA5iL,EAAAvpC,KAAAmsN,QACAnsN,KAAAukF,MAAAs6F,MAAA29P,OAAA,eAAAx8a,KAAA2tb,aAAA3tb,KAAAwtb,YAAAjkZ,EAAAokZ,aAAA,QAIApya,OACA9I,MAAA,SAAA0tL,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAAl7a,MAAA0tL,IAGAr/L,KAAA,SAAAq/L,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAA9vY,SAAAsiJ,IAGAtiJ,SAAA,SAAAsiJ,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAA9vY,SAAAsiJ,IAGAg/D,QAAA,SAAAh/D,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAAxuL,QAAAh/D,IAGAorP,eAAA,SAAAprP,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAApC,eAAAprP,IAGAxnK,MAAA,SAAAwnK,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAAh1Z,MAAAwnK,EAAA,MAAAA,EAAA,KAEAngM,KAAAspb,cACAtpb,KAAA2tb,aAAArE,YAAAnpP,EAAA,MAAAA,EAAA,QAIAmpP,YAAA,SAAAnpP,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAArE,YAAA,OAAAnpP,GAAAngM,KAAA24B,SAGA3f,MAAA,SAAAmnL,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAA30a,MAAAo0a,EAAAjtP,GACAngM,KAAAukF,MAAAs6F,MAAA6jQ,mBAGAh/H,SAAA,SAAAvjH,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAAjqI,SAAA2pI,EAAAltP,GACAngM,KAAAukF,MAAAs6F,MAAA6jQ,mBAGArhY,MAAA,SAAA8+I,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAAtsY,MAAA8+I,EACAngM,KAAAukF,MAAAs6F,MAAA6jQ,gBAAA,KAGAjC,SAAA,SAAAtgP,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAAlN,SAAAtgP,IAGAvzL,MAAA,SAAAuzL,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAA/gb,MAAAuzL,IAGAvyL,UAAA,SAAAuyL,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAA//a,UAAAuyL,IAGAp/I,UAAA,SAAAo/I,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAA5sY,UAAAo/I,IAGA2oP,eAAA,SAAA3oP,GACAngM,KAAA2tb,eACA3tb,KAAA2tb,aAAA7E,eAAA3oP,KAKApgL,QAAA,WACA,IAAAwkE,EAAAvkF,KAAAukF,MACAh7C,EAAAvpC,KAAAytb,oBACAvG,OAAA,EAKAA,EAHAlnb,KAAAwtb,eAGA1tb,QAAA4L,KAAA69B,EAAA7sB,IAAA6rK,SAAAvoL,KAAA0c,QAFA5c,QAAA4L,KAAA69B,EAAA9qB,MAAAmva,cAAArlQ,SAAAvoL,KAAA0c,KAKA6nE,EAAAs6F,MAAA29P,OAAA,eAAAx8a,KAAA2tb,aAAAzG,EAAAlnb,KAAAwtb,YAAAjkZ,EAAAokZ,aAAA,SAMA,SAAAzqb,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA0ib,EAAAtub,EAAA,KAEAuub,GAEA3ib,EAFA0ib,IAEsC1ib,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E2ib,EAAA/0a,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAu5Z,EAAA/0a,QAAAnW,KAAAkrb,EAAA/0a,UAGA5V,EAAA4V,QAAA+0a,EAAA/0a,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA28W,EAAA72W,EAFA33E,EAAA,KAMAi3Z,EAAAt/U,EAFA33E,EAAA,MAMAyub,EAAA92W,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA8ib,EAAA,SAAAzqb,GACA,oBAAAA,GAAA,kBAAAA,EACAwqb,EAAAj1a,QAEAy9Y,EAAAz9Y,SAGA5V,EAAA4V,SACAupK,QAAAyrQ,EAAAh1a,SAEAnW,KAAA,eAEAE,OACAU,MACAA,KAAA2N,OACA4H,QAAA,QAEAm1a,iBAAAz0a,SAGA8B,OACA/X,KAAA,SAAA2qb,GACAnub,KAAAoub,QACApub,KAAAqub,gBACArub,KAAAi5W,MAAAg1E,EAAAE,GACAnub,KAAAsub,eAEAtub,KAAAi5W,MAAAg1E,EAAAE,KAKArua,QAAA,WACA9f,KAAAi5W,MAAAg1E,EAAAjub,KAAAwD,SAMA,SAAAN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA6F,EAAAC,EAFA33E,EAAA,IAMAs+S,EAAA3mO,EAFA33E,EAAA,IAIAE,EAAAF,EAAA,IAIAomN,EAAAzuI,EAFA33E,EAAA,IAMA8iL,EAAAnrG,EAFA33E,EAAA,IAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMA43E,EAAAD,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAojb,GACAzrb,OACAwxM,aAAAqR,EAAA5sM,QAAAjW,MAAAwxM,aACA5xK,OAAAijL,EAAA5sM,QAAAjW,MAAA4/B,OACAwY,kBAAAyqK,EAAA5sM,QAAAjW,MAAAo4C,kBACAI,YAAAqqK,EAAA5sM,QAAAjW,MAAAw4C,aAEAv/B,QAAA4pM,EAAA5sM,QAAAgD,QACAjL,KAAA,WACA,SAAAqmE,EAAAp+D,UAAiCs7L,cAAA,GAAqBsR,EAAA5sM,QAAAjI,OAGtDkP,cAAA2lM,EAAA5sM,QAAAiH,eAmFAwua,GACAtsR,KAAA,aACAjE,MAAA,UACAwwR,SAAA,sBACAzsb,KAAA,WACAu8M,KAAA,UACAmwO,UAAA,WACAC,UAAA,aACAC,cAAA,sBACAjuR,KAAA,QAEAkuR,GAAA,8GACAC,EAAA,SAAAvnb,EAAAmB,GACA,oBAAAA,EAAAnB,EAAAs6J,WACA,EAAApiK,EAAA22Z,YAAA7uZ,EAAAmB,IAEAqmb,EAAA,SAAA19Y,EAAA3oC,GACA,oBAAAA,EAAA,IAAA+G,KAAAsL,OAAAs2B,KACA,EAAA5xC,EAAAmsK,WAAAv6H,EAAA3oC,IAEAsmb,EAAA,SAAAznb,EAAAmB,GACA,GAAAmD,MAAAC,QAAAvE,IAAA,IAAAA,EAAAtG,OAAA,CACA,IAAAuB,EAAA+E,EAAA,GACA2pB,EAAA3pB,EAAA,GAEA,GAAA/E,GAAA0uB,EACA,OAAA49Z,EAAAtsb,EAAAkG,GAAAomb,EAAA59Z,EAAAxoB,IAGA,UAEAumb,EAAA,SAAA7vX,EAAA12D,EAAA6rS,GAIA,GAHA1oS,MAAAC,QAAAszD,KACAA,IAAAv+D,MAAA0zS,IAEA,IAAAn1O,EAAAn+D,OAAA,CACA,IAAAiub,EAAA9vX,EAAA,GACA+vX,EAAA/vX,EAAA,GAEA,OAAA2vX,EAAAG,EAAAxmb,GAAAqmb,EAAAI,EAAAzmb,IAEA,UAEA0mb,GACAr2a,SACAnL,UAAA,SAAArG,GACA,OAAAA,EACA,GAAAA,EADA,IAGAs5I,OAAA,SAAAxvG,GACA,YAAA3jC,IAAA2jC,GAAA,KAAAA,EAAA,KACAA,IAGAktK,MACA3wM,UAAA,SAAArG,EAAAmB,GACA,IAAA61M,GAAA,EAAA9+M,EAAAo2Z,eAAAtuZ,GACA02J,EAAA12J,EAAA43J,WACAkwR,EAAA,IAAA5/a,KAAAlI,GACA,IAAAg3M,GAAA,KAAAtgD,IACAoxR,EAAA14B,SAAA,SACA04B,EAAA3xO,QAAA2xO,EAAAtwR,UAAA,GAAAswR,EAAAzwR,SAAA,OAEA,IAAAsD,GAAA,EAAAziK,EAAA22Z,YAAAi5B,EAAA3mb,GAGA,OADAw5J,EAAA,KAAAvmG,KAAAumG,KAAA35J,QAAA,KAAAg2M,EAAA,OAAAA,KAAAr8C,EAAA35J,QAAA,IAAAg2M,IAGA19D,OAAA,SAAAxvG,GACA,IAAA+tB,GAAA/tB,GAAA,IAAAxwC,MAAA,KACA,OAAAu+D,EAAAn+D,OAAA,CACA,IAAA0/J,EAAA5lJ,OAAAqkD,EAAA,IACA6+F,EAAAljJ,OAAAqkD,EAAA,IAEA,IAAA30D,MAAAk2J,KAAAl2J,MAAAwzJ,MAAA,GACA,OAAA5sH,EAGA,cAGA6wH,MACAt0J,UAAAkhb,EACAjuS,OAAAkuS,GAEAN,UACA7gb,UAAAkhb,EACAjuS,OAAAkuS,GAEAJ,WACA/gb,UAAAohb,EACAnuS,OAAAouS,GAEAL,eACAhhb,UAAAohb,EACAnuS,OAAAouS,GAEAP,WACA9gb,UAAAohb,EACAnuS,OAAAouS,GAEAjtb,MACA4L,UAAAkhb,EACAjuS,OAAAkuS,GAEA9wR,OACArwJ,UAAAkhb,EACAjuS,OAAAkuS,GAEApuR,MACA/yJ,UAAAkhb,EACAjuS,OAAAkuS,GAEAx7O,QACA3lM,UAAA,SAAArG,GACA,OAAAA,EACA,GAAAA,EADA,IAGAs5I,OAAA,SAAAxvG,GACA,IAAAtgC,EAAAgK,OAAAs2B,GAEA,OAAA5mC,MAAA4mC,GAGA,KAFAtgC,IAMAu+a,OACA1hb,UAAA,SAAArG,EAAAmB,GACA,OAAAnB,EAAAoJ,IAAA,SAAAuxJ,GACA,OAAA4sR,EAAA5sR,EAAAx5J,MAGAm4I,OAAA,SAAAt5I,EAAAmB,GACA,wBAAAnB,IAAA1G,MAAA,MAAA0G,GAAAoJ,IAAA,SAAAuxJ,GACA,OAAAA,aAAAzyJ,KAAAyyJ,EAAA6sR,EAAA7sR,EAAAx5J,QAKA6mb,GACA1pb,KAAA,eACAie,OAAA,SACAhe,MAAA,cAGA0pb,EAAA,SAAAjob,EAAAkob,EAAAjsb,GACA,IAAAksb,EAAA5qb,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,OAEA,OAAAyC,GAGAs5I,GAFAuuS,EAAA5rb,IAAA4rb,EAAA,SAAAvuS,QAEAt5I,EADAkob,GAAAjB,EAAAhrb,GACAksb,GAHA,MAMAC,EAAA,SAAApob,EAAAkob,EAAAjsb,GACA,OAAA+D,GAGAqG,GAFAwhb,EAAA5rb,IAAA4rb,EAAA,SAAAxhb,WAEArG,EADAkob,GAAAjB,EAAAhrb,IAFA,MAYA+zO,EAAA,SAAAhiO,EAAAC,GAEA,IAAAo6a,EAAA,SAAAr6a,EAAAC,GACA,IAAAq6a,EAAAt6a,aAAA9F,KACAqgb,EAAAt6a,aAAA/F,KACA,OAAAogb,GAAAC,EACAv6a,EAAAssJ,YAAArsJ,EAAAqsJ,WAEAguR,IAAAC,GACAv6a,IAAAC,GAKAu6a,EAAAx6a,aAAA1J,MACAmkb,EAAAx6a,aAAA3J,MACA,OAAAkkb,GAAAC,EACAz6a,EAAAtU,SAAAuU,EAAAvU,QAGAsU,EAAAsiG,MAAA,SAAAlrG,EAAAC,GACA,OAAAgjb,EAAAjjb,EAAA6I,EAAA5I,OAGAmjb,IAAAC,GACAJ,EAAAr6a,EAAAC,IAKA9V,EAAA,SAAA6N,GACA,uBAAAA,gBAAA4D,QAGA0xJ,EAAA,SAAAt1J,GAEA,cAAAA,QAAAG,IAAAH,GAAA7N,EAAA6N,IAAA1B,MAAAC,QAAAyB,IAAA,IAAAA,EAAAtM,QAAAsM,EAAAsqG,MAAAn4G,IAGAyD,EAAA4V,SACAupK,QAAAD,EAAAtpK,QAAAw1a,GAEAl7W,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAjW,OACA+uB,KAAA1gB,OACAzI,OAAAyI,OACA8+a,YAAA9+a,OACA0zN,SAAAprN,QACAuuN,YAAA72N,OACA++a,iBAAA/+a,OACAg/a,eAAAh/a,OACA+zN,WAAA/zN,OACAi/a,WACA5sb,KAAA2N,OACA4H,QAAA,wBAEAnW,MACAmW,QAAA,GACA8pJ,aAEAnvF,SAAAj6D,QACA0rN,WACA3hO,KAAAiW,QACAV,SAAA,GAEArX,IACAqX,QAAA,GACA8pJ,aAEAmjD,YAAA70M,OACAk/a,UACA7sb,KAAAiW,QACAV,SAAA,GAEA4f,OACAn1B,KAAA2N,OACA4H,QAAA,QAEAxR,SACA4L,gBACAm9a,eACAZ,gBACA32a,QAAA,KAEAw3a,iBACAC,aAAA/2a,SAGA2a,YAAew8Q,QAAA/sE,EAAA9qN,SAEfqrK,YAAek7H,aAAAzB,EAAA9kS,SAEfjI,KAAA,WACA,OACA2/a,eAAA,EACA/mB,WAAA,EACAgnB,UAAA,KACAC,YAAA,KACAC,qBAAA,OAKAr1a,OACAk1a,cAAA,SAAAljb,GACAvN,KAAA6kO,UAAA7kO,KAAA6wb,iBACAtjb,GACAvN,KAAA8wb,aACA9wb,KAAA2wb,YAAA9kb,MAAAC,QAAA9L,KAAAuH,UAAAwN,OAAA/U,KAAAuH,OAAAvH,KAAAuH,QAEAvH,KAAA+wb,aACA/wb,KAAAqhT,WAAArhT,KAAAuH,OACAvH,KAAA0wb,UAAA,KACA1wb,KAAAu9I,SAAA,6BACAv9I,KAAAge,MAAA,OAAAhe,MACAA,KAAAimO,UAIA+qN,aACAt8O,WAAA,EACAj5L,QAAA,SAAAlO,GACAvN,KAAAoub,SACApub,KAAAoub,OAAA7mb,MAAAgG,EACAvN,KAAAoub,OAAA6C,aAAAplb,MAAAC,QAAAyB,WAIA4F,aAAA,SAAA5F,GAEAvN,KAAAoub,SACApub,KAAAoub,OAAAj7a,aAAA5F,KAKAsO,UACAq1a,OAAA,WACA,OAAAlxb,KAAAwD,KAAA1D,QAAA,aAEA67C,UAAA,WACA,IAAAA,EAAA37C,KAAAye,MAAAk9B,UACA,OAAAA,EAAAj/B,KAAAi/B,GAEAw1Y,SAAA,WACA,OAAAnxb,KAAA27C,aACAr5C,MAAAoJ,KAAA1L,KAAA27C,UAAAkF,iBAAA,cAIAuwY,aAAA,WACA,IAAA7jb,EAAAvN,KAAAuH,MACA,GAAAsE,MAAAC,QAAAyB,IACA,QAAAxM,EAAA,EAAAc,EAAA0L,EAAAtM,OAAyCF,EAAAc,EAASd,IAClD,GAAAwM,EAAAxM,GACA,cAIA,GAAAwM,EACA,SAGA,UAEA8jb,aAAA,WACA,OAAArxb,KAAAklO,cAAA,IAAAllO,KAAAwD,KAAA1D,QAAA,wCAEAwxb,cAAA,WACA,eAAAtxb,KAAAwD,KACA,OACO,UAAAxD,KAAAwD,KACP,QACO,SAAAxD,KAAAwD,KACP,OACO,UAAAxD,KAAAwD,KACP,QAGA,OAEA+tb,YAAA,WACA,gBAAAvxb,KAAAwxb,YACAxxb,KAAAwxb,aAEA,IAAA3C,EAAA/ub,QAAAE,KAAAwD,OAEAiub,aAAA,WACA,IAAAtlK,EAAAwjK,EAAA3vb,KAAAgxb,YAAAhxb,KAAA0I,OAAA1I,KAAAwD,KAAAxD,KAAA0vb,gBACA,OAAA7jb,MAAAC,QAAA9L,KAAA0wb,YACA1wb,KAAA0wb,UAAA,IAAAvkK,KAAA,OAAAnsR,KAAA0wb,UAAA,IAAAvkK,KAAA,QACO,OAAAnsR,KAAA0wb,UACP1wb,KAAA0wb,UACOvkK,EACP,UAAAnsR,KAAAwD,KAAA2oR,EAAA/lR,KAAA,MAAA+lR,EAEA,IAGA6kK,YAAA,WACA,OAAAhxb,KAAAuH,MACA,gBAAAvH,KAAAwD,KAAAxD,KAAAuH,OAEA,EAAA9H,EAAA42Z,cAAAr2Z,KAAAuH,QAAAsE,MAAAC,QAAA9L,KAAAuH,QAAAvH,KAAAuH,MAAAswG,MAAAp4G,EAAA42Z,cAEAr2Z,KAAAuH,MAGAvH,KAAAiwb,YACAT,EAAAxvb,KAAAuH,MAAAvH,KAAAiwb,YAAAjwb,KAAAwD,KAAAxD,KAAA0vb,iBAAA1vb,KAAAuH,MAKAsE,MAAAC,QAAA9L,KAAAuH,OAAAvH,KAAAuH,MAAAoJ,IAAA,SAAApD,GACA,WAAAkC,KAAAlC,KACO,IAAAkC,KAAAzP,KAAAuH,OAhBPvH,KAAAuH,OAkBAusE,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnC29W,WAAA,WACA,OAAA1xb,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtEg/Z,eAAA,WACA,OAAA7wb,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAEhDi+W,aAAA,WACA,IAAAxmb,KACAzJ,OAAA,EAOA,OALAA,EADA1B,KAAAkxb,OACAlxb,KAAA0B,IAAA1B,KAAA0B,GAAA,GAEA1B,KAAA0B,MAEAyJ,EAAAzJ,MACAyJ,GAEAymb,cAAA,WACA,IAAAzmb,KACAzJ,OAAA,EAKA,OAJA1B,KAAAkxb,SACAxvb,EAAA1B,KAAA0B,IAAA1B,KAAA0B,GAAA,IAEAA,IAAAyJ,EAAAzJ,MACAyJ,IAIA2U,QAAA,WAEA9f,KAAAu0M,eACAr5J,kBAAA,EACAF,iBAAA,GAEAh7C,KAAA+6C,UAAAw0Y,EAAAvvb,KAAA24B,QAAA42Z,EAAA1pb,KAEA7F,KAAAikL,IAAA,aAAAjkL,KAAA6xb,mBAIA91a,SACAwxB,MAAA,WACAvtC,KAAAkxb,OAGAlxb,KAAAknN,cAFAlnN,KAAAye,MAAAk9B,UAAApO,SAKA04L,KAAA,WACAjmO,KAAAmxb,SAAArnb,QAAA,SAAAI,GACA,OAAAA,EAAA+7N,UAMA6rN,WAAA,SAAAvqb,GACA,IAAAwqb,GAAA,EAAAtyb,EAAA42Z,cAAA9uZ,IAAAsE,MAAAC,QAAAvE,MAAAswG,MAAAp4G,EAAA42Z,cACA,OAAAr2Z,KAAAiwb,cAAA8B,GACAvC,EAAAjob,EAAAvH,KAAAiwb,YAAAjwb,KAAAwD,KAAAxD,KAAA0vb,iBAEAnob,GAGAyqb,cAAA,SAAA9vR,GACA,IAAA+vR,GAAA,EAAAxyb,EAAA42Z,cAAAn0P,IAAAr2J,MAAAC,QAAAo2J,MAAArqD,MAAAp4G,EAAA42Z,cACA,OAAAr2Z,KAAAiwb,aAAAgC,EACAtC,EAAAztR,EAAAliK,KAAAiwb,YAAAjwb,KAAAwD,KAAAxD,KAAA0vb,gBAEAxtR,GAMAm/F,YAAA,SAAA95P,GACA,IAAA/D,EAAAqI,MAAAC,QAAAvE,GAAAvH,KAAAwD,KAAAxD,KAAAwD,KAAA+E,QAAA,YACA,OAAAinb,EAAAjob,EAAAvH,KAAA0I,OAAAlF,IAEA0ub,eAAA,SAAA3qb,GACA,IAAA/D,EAAAqI,MAAAC,QAAAvE,GAAAvH,KAAAwD,KAAAxD,KAAAwD,KAAA+E,QAAA,YACA,OAAAonb,EAAApob,EAAAvH,KAAA0I,OAAAlF,IAEAqib,iBAAA,WACA7lb,KAAA6kO,UAAA7kO,KAAA6wb,iBACA7wb,KAAAoxb,cAAApxb,KAAAmlO,YACAnlO,KAAA0pa,WAAA,IAGA9iM,aAAA,WACA,GAAA5mO,KAAA0wb,UAAA,CACA,IAAAnpb,EAAAvH,KAAAqhQ,YAAArhQ,KAAAyxb,cACAlqb,IACAvH,KAAAoub,OAAA7mb,QACAvH,KAAAmyb,aAAA5qb,KACAvH,KAAAoyb,UAAA7qb,GACAvH,KAAA0wb,UAAA,OAIA,KAAA1wb,KAAA0wb,YACA1wb,KAAAoyb,UAAA,MACApyb,KAAAqhT,WAAA,MACArhT,KAAA0wb,UAAA,OAGA2B,iBAAA,SAAA96X,GACAv3D,KAAA0wb,UACA1wb,KAAA0wb,WAAAn5X,EAAAh3D,OAAAgH,MAAAvH,KAAA0wb,UAAA,IAEA1wb,KAAA0wb,WAAAn5X,EAAAh3D,OAAAgH,MAAA,OAGA+qb,eAAA,SAAA/6X,GACAv3D,KAAA0wb,UACA1wb,KAAA0wb,WAAA1wb,KAAA0wb,UAAA,GAAAn5X,EAAAh3D,OAAAgH,OAEAvH,KAAA0wb,WAAA,KAAAn5X,EAAAh3D,OAAAgH,QAGAgrb,kBAAA,SAAAh7X,GACA,IAAAhwD,EAAAvH,KAAAqhQ,YAAArhQ,KAAA0wb,WAAA1wb,KAAA0wb,UAAA,IACA,GAAAnpb,EAAA,CACAvH,KAAA0wb,WAAA1wb,KAAAkyb,eAAA3qb,GAAAvH,KAAAyxb,aAAA,IACA,IAAA7qK,GAAAr/Q,EAAAvH,KAAAoub,OAAA7mb,OAAAvH,KAAAoub,OAAA7mb,MAAA,IACAvH,KAAAoub,OAAA7mb,MAAAq/Q,EACA5mR,KAAAmyb,aAAAvrK,KACA5mR,KAAAoyb,UAAAxrK,GACA5mR,KAAA0wb,UAAA,QAIA8B,gBAAA,SAAAj7X,GACA,IAAAhwD,EAAAvH,KAAAqhQ,YAAArhQ,KAAA0wb,WAAA1wb,KAAA0wb,UAAA,IACA,GAAAnpb,EAAA,CACAvH,KAAA0wb,WAAA1wb,KAAAyxb,aAAA,GAAAzxb,KAAAkyb,eAAA3qb,IACA,IAAAq/Q,GAAA5mR,KAAAoub,OAAA7mb,OAAAvH,KAAAoub,OAAA7mb,MAAA,GAAAA,GACAvH,KAAAoub,OAAA7mb,MAAAq/Q,EACA5mR,KAAAmyb,aAAAvrK,KACA5mR,KAAAoyb,UAAAxrK,GACA5mR,KAAA0wb,UAAA,QAIA+B,gBAAA,SAAAl7X,GACAv3D,KAAA6kO,UAAA7kO,KAAA6wb,iBACA7wb,KAAA0pa,WACA1pa,KAAA2wb,YAAA3wb,KAAAuH,MACAgwD,EAAAitH,kBACAxkL,KAAAoyb,UAAA,MACApyb,KAAAqhT,WAAA,MACArhT,KAAA0pa,WAAA,EACA1pa,KAAAoub,QAAA,mBAAApub,KAAAoub,OAAAsE,aACA1yb,KAAAoub,OAAAsE,eAGA1yb,KAAAywb,eAAAzwb,KAAAywb,gBAGAx9I,YAAA,WACA,GAAAjzS,KAAAywb,cAAA,CACAzwb,KAAAywb,eAAA,EACA,IAAAjtb,EAAAxD,KAAAwD,KACAmtb,EAAA3wb,KAAA2wb,YACAV,EAAAjwb,KAAAiwb,YACAP,EAAA1vb,KAAA0vb,eAEA,UAAAlsb,GAAAxD,KAAAoub,SACApub,KAAAoub,OAAA6C,aAAAzB,EAAAmB,EAAAV,EAAAzsb,EAAAksb,IAAAiB,EACA3wb,KAAAoyb,UAAApyb,KAAAoub,OAAA6C,iBAGAY,iBAAA,SAAAc,GACA3yb,KAAA0wb,UAAA,KAAAiC,EAAA,KAAAA,GAEAzrO,YAAA,WACA,IAAA1jN,EAAAxD,KAAAwD,MAEA,IAAAqrb,EAAA/ub,QAAA0D,IAAAxD,KAAAywb,gBACAzwb,KAAAywb,eAAA,GAEAzwb,KAAAge,MAAA,QAAAhe,OAEAm2a,cAAA,SAAA5+W,GACA,IAAA16C,EAAA7c,KAEAk8Q,EAAA3kN,EAAA2kN,QAGA,YAAAA,GACAl8Q,KAAAywb,eAAA,OACAl5X,EAAAitH,mBAKA,IAAA03F,EAoBA,KAAAA,IACA,KAAAl8Q,KAAA0wb,WAAA1wb,KAAAmyb,aAAAnyb,KAAAqhQ,YAAArhQ,KAAAyxb,kBACAzxb,KAAA4mO,eACA5mO,KAAAywb,cAAAzwb,KAAAoub,OAAA52W,SAAA,EACAx3E,KAAAimO,aAEA1uK,EAAAitH,wBAKAxkL,KAAA0wb,UACAn5X,EAAAitH,kBAKAxkL,KAAAoub,QAAApub,KAAAoub,OAAAjY,eACAn2a,KAAAoub,OAAAjY,cAAA5+W,SArCAv3D,KAAAkxb,OAOA5kb,WAAA,YACA,IAAAuQ,EAAAs0a,SAAArxb,QAAA+P,SAAA+yP,iBACA/lP,EAAA4za,eAAA,EACA5za,EAAAopN,OACA1uK,EAAAitH,oBAEW,IAZXxkL,KAAA4mO,eACA5mO,KAAAywb,cAAAzwb,KAAAoub,OAAA52W,SAAA,EACAx3E,KAAAimO,OACA1uK,EAAAitH,qBAoCAouQ,iBAAA,WACA,IAAApvb,EAAAxD,KAAAwD,MAEA,IAAAqrb,EAAA/ub,QAAA0D,IAAAxD,KAAAywb,gBACAzwb,KAAAywb,eAAA,GAEAzwb,KAAAge,MAAA,QAAAhe,OAEA+wb,WAAA,WACA/wb,KAAAoub,SACApub,KAAAoub,OAAAyE,WAAA7yb,KAAAoub,OAAAyE,YACA7yb,KAAAywb,cAAAzwb,KAAAoub,OAAA52W,SAAA,EACAx3E,KAAA40M,kBAGAk8O,WAAA,WACA,IAAA5ya,EAAAle,KAEAA,KAAAk5E,YACAl5E,KAAAoub,QACApub,KAAAsub,cAEAtub,KAAAywb,cAAAzwb,KAAAoub,OAAA52W,SAAA,EAEAx3E,KAAA20M,eAEA30M,KAAAoub,OAAA7mb,MAAAvH,KAAAgxb,YACAhxb,KAAAoub,OAAAyE,WAAA7yb,KAAAoub,OAAAyE,YAEA7yb,KAAAuc,UAAA,WACA2B,EAAAkwa,OAAA0E,gBAAA50a,EAAAkwa,OAAA0E,qBAGAxE,YAAA,WACA,IAAAtva,EAAAhf,KAEAA,KAAAoub,OAAA,IAAAn3W,EAAAl+D,QAAA/Y,KAAAi5W,OAAA1yJ,SACAvmN,KAAAoub,OAAAj7a,aAAAnT,KAAAmT,aACAnT,KAAAoub,OAAAkC,YAAAtwb,KAAAswb,YACAtwb,KAAAoub,OAAApoO,YAAAhmN,KAAAgmN,YACAhmN,KAAA80M,UAAA90M,KAAAoub,OAAA1xa,IACA1c,KAAAoub,OAAAp1a,MAAAhZ,KAAA27C,UAAAgD,wBAAA3lC,MACAhZ,KAAAoub,OAAA2E,SAAA,aAAA/yb,KAAAwD,MAAA,kBAAAxD,KAAAwD,KACAxD,KAAAoub,OAAAkD,cAAAtxb,KAAAsxb,cACAtxb,KAAAoub,OAAAoC,aAAAxwb,KAAAwwb,aACAxwb,KAAAoub,OAAA4E,aAAAhzb,KAAAgzb,cAAAhzb,KAAAkub,mBAAA,EACAlub,KAAAoub,OAAA6C,aAAAplb,MAAAC,QAAA9L,KAAAuH,QAAAvH,KAAAuH,UACAvH,KAAAsf,OAAA,kBAAA5W,GACAsW,EAAAova,OAAA1lb,WAGA,IAAAuqb,EAAA,WACA,IAIAjwS,EACAnC,EACAn4I,EANAD,EAAAuW,EAAAuxa,cAeA,QAAAtza,KAbAxU,KAAA2uZ,kBAEAp0Q,EAAAv6I,EAAA2uZ,gBACAv2Q,EAAAuuS,EAAAR,cAAA/tS,OACAn4I,EAAA8lb,EAAAE,UAEA1rS,EAAAn3I,MAAAC,QAAAk3I,SACAhkI,EAAAova,OAAAh3B,gBAAAp0Q,EAAAryI,IAAA,SAAAyvG,GACA,OAAAygC,EAAAzgC,EAAA13G,EAAAsW,EAAA0wa,mBAKAjnb,EACAA,EAAA5F,eAAAoa,IAEA,oBAAAA,IACA+B,EAAAova,OAAAnxa,GAAAxU,EAAAwU,IAKA+B,EAAAtW,SACAsW,EAAAova,OAAA1lb,OAAAsW,EAAAtW,SAGAuqb,IACAjzb,KAAA4wb,qBAAA5wb,KAAAsf,OAAA,2BACA,OAAA2za,MACUz3a,MAAA,IAEVxb,KAAA0c,IAAAzM,YAAAjQ,KAAAoub,OAAA1xa,KACA1c,KAAAoub,OAAAyE,WAAA7yb,KAAAoub,OAAAyE,YAEA7yb,KAAAoub,OAAAnqQ,IAAA,YAAAjkL,KAAAo1M,WACAp1M,KAAAoub,OAAAnqQ,IAAA,kBACA,IAAA/hB,EAAAp9J,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MACA0yE,EAAA1yE,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEAka,EAAA0xa,UAAA,KACA1xa,EAAAyxa,cAAAzxa,EAAAova,OAAA52W,UACAx4D,EAAAoza,UAAAlwR,GACAljJ,EAAAova,OAAAyE,WAAA7za,EAAAova,OAAAyE,cAGA7yb,KAAAoub,OAAAnqQ,IAAA,wBAAAzhL,EAAA0uB,EAAAQ,GACA,IAAA1S,EAAAmya,SAAAlwb,SACAywB,GAAA,QAAAA,EAGS,QAAAA,IACT1S,EAAAmya,SAAA,GAAAt0I,kBAAAr6S,EAAA0uB,GACAlS,EAAAmya,SAAA,GAAA5jZ,UAJAvuB,EAAAmya,SAAA,GAAAt0I,kBAAAr6S,EAAA0uB,GACAlS,EAAAmya,SAAA,GAAA5jZ,aAOA8gZ,cAAA,WACArub,KAAAoub,SACApub,KAAAoub,OAAAj6L,WACAn0P,KAAAoub,OAAAziM,OACA,mBAAA3rP,KAAA4wb,sBACA5wb,KAAA4wb,uBAEA5wb,KAAAoub,OAAA1xa,IAAA6vB,WAAAC,YAAAxsC,KAAAoub,OAAA1xa,OAGA2kS,WAAA,SAAA9zS,GAEAgqO,EAAAhqO,EAAAvN,KAAA2wb,eACA3wb,KAAAge,MAAA,SAAAzQ,GACAvN,KAAAu9I,SAAA,8BAAAhwI,GACAvN,KAAA2wb,YAAApjb,IAGA6kb,UAAA,SAAA7kb,GACA,IAAA2lb,EAAAlzb,KAAAgyb,cAAAzkb,GACAgqO,EAAAv3O,KAAAuH,MAAA2rb,IACAlzb,KAAAge,MAAA,QAAAk1a,IAGAf,aAAA,SAAA5qb,GAIA,OAHAvH,KAAAoub,QACApub,KAAAsub,eAEAtub,KAAAoub,OAAA+D,cACA5qb,GAAAvH,KAAAoub,OAAA+D,aAAA5qb,OAUA,SAAArE,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAqhD,EAAAhlD,GAEA,aACA,IAOA+0E,GAAiB7wE,OAPjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAu9D,EAAA28W,OAA2jCh6a,EAAA,OAAuBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,YAAAn1D,WAAA,gBAA8FxG,IAAA,YAAAxB,YAAA,iDAAAc,OACtxC,mBAAAq8D,EAAA/wE,KACA+wE,EAAAm9W,WAAA,oBAAAn9W,EAAAm9W,WAAA,GACAn9W,EAAAs8W,eAAA,iBACAt8W,EAAAk8W,cAAA,gBACA/wa,IAAQm1D,MAAAN,EAAAq+W,iBAAAtuQ,WAAA/vG,EAAAsxW,iBAAAl/N,WAAA,SAAApiC,GAA6FhwG,EAAAm1V,WAAA,GAAsBr3H,QAAA99N,EAAA4hW,iBAA8Bj/Z,EAAA,KAAUgB,OAAA,kCAAAq8D,EAAA88W,gBAA6Dn6a,EAAA,QAAAq9D,EAAAm0J,IAAqBtxN,YAAA,iBAAAC,OAAoC2wN,YAAAzzJ,EAAA27W,iBAAAx8W,SAAAa,EAAAs8W,eAAAhsN,UAAAtwJ,EAAA87W,UAAA97W,EAAAswJ,SAAAjiO,KAAA2xE,EAAA3xE,MAAA2xE,EAAA3xE,KAAA,IAAyIimO,UAAWthO,MAAAgtE,EAAAk9W,cAAAl9W,EAAAk9W,aAAA,IAAgD/xa,IAAKxV,MAAAqqE,EAAA89W,iBAAAppN,OAAA10J,EAAAg+W,kBAAAhlZ,MAAAgnC,EAAA2yI,cAAqF,QAAA3yI,EAAAo9W,cAAA,IAAAz6a,EAAA,QAA6CE,YAAA,uBAAiCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAm7W,mBAAAx4a,EAAA,QAAAq9D,EAAAm0J,IAA0DtxN,YAAA,iBAAAC,OAAoC2wN,YAAAzzJ,EAAA47W,eAAAz8W,SAAAa,EAAAs8W,eAAAhsN,UAAAtwJ,EAAA87W,UAAA97W,EAAAswJ,SAAAjiO,KAAA2xE,EAAA3xE,MAAA2xE,EAAA3xE,KAAA,IAAuIimO,UAAWthO,MAAAgtE,EAAAk9W,cAAAl9W,EAAAk9W,aAAA,IAAgD/xa,IAAKxV,MAAAqqE,EAAA+9W,eAAArpN,OAAA10J,EAAAi+W,gBAAAjlZ,MAAAgnC,EAAA2yI,cAAiF,QAAA3yI,EAAAq9W,eAAA,IAAAr9W,EAAA,YAAAr9D,EAAA,KAA6DE,YAAA,sCAAAc,OAAAq8D,EAAAm1V,UAAA,GAAAn1V,EAAA67W,UAAA,IAAA1wa,IAAsGm1D,MAAAN,EAAAk+W,mBAA6Bl+W,EAAAO,OALlmC59D,EAAA,WAAAq9D,EAAAm0J,IAA2CtkD,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,YAAAn1D,WAAA,gBAA8FxG,IAAA,YAAAxB,YAAA,iBAAAc,MAAA,mBAAAq8D,EAAA/wE,KAAA6T,OAA0FwtN,UAAAtwJ,EAAA87W,UAAA97W,EAAAswJ,UAAA,UAAAtwJ,EAAA/wE,KAAAkwE,SAAAa,EAAAs8W,eAAAh/Z,KAAA0iD,EAAAm9W,WAAA9ub,KAAA2xE,EAAA3xE,KAAAolO,YAAAzzJ,EAAAyzJ,YAAAzgO,MAAAgtE,EAAAk9W,aAAAzsN,eAAA,GAAkNtlN,IAAK6tB,MAAAgnC,EAAA2yI,YAAAh9M,MAAA,SAAA3C,GAAkD,OAAAgtE,EAAAm8W,UAAAnpb,GAAgC0hO,OAAA10J,EAAAqyJ,cAA2B0uB,UAAW+8C,QAAA,SAAA9tH,GAA2BhwG,EAAA4hW,cAAA5xP,IAA0BD,WAAA,SAAAC,GAA+BhwG,EAAAsxW,iBAAAthQ,IAA6BoiC,WAAA,SAAApiC,GAA+BhwG,EAAAm1V,WAAA,KAAwB,WAAAn1V,EAAAo9W,cAAA,IAAAz6a,EAAA,KAA6CE,YAAA,iBAAAc,MAAAq8D,EAAA88W,aAAAh6a,OAA2D20O,KAAA,UAAgBtsO,IAAKm1D,MAAAN,EAAA2yI,aAAwB8kC,KAAA,WAAez3K,EAAA,YAAAr9D,EAAA,KAA4BE,YAAA,iBAAAc,OAAAq8D,EAAAm1V,UAAA,GAAAn1V,EAAA67W,UAAA,IAAA/4a,OAAoF20O,KAAA,UAAgBtsO,IAAKm1D,MAAAN,EAAAk+W,iBAA4BzmM,KAAA,WAAez3K,EAAAO,QAOnoCn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA4rb,EAAA5zb,EAAA,KACA6zb,EAAA7zb,EAAA6+C,EAAA+0Y,GACAE,EAAA9zb,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAigX,EAAA79a,EACA89a,EAAA,GATA,EAEA,KAEA,KAEA,MAUA9uY,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAA3xE,EAAAF,EAAA,IAIAs+S,EAAA3mO,EAFA33E,EAAA,IAMAm+S,EAAAxmO,EAFA33E,EAAA,IAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAszE,EAAAqE,EAFA33E,EAAA,KAMA+zb,EAAAp8W,EAFA33E,EAAA,KAMAg0b,EAAAr8W,EAFA33E,EAAA,MAMAi0b,EAAAt8W,EAFA33E,EAAA,MAMAk0b,EAAAv8W,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAupK,QAAAo7H,EAAA3kS,SAEAqrK,YAAek7H,aAAAzB,EAAA9kS,SAEfwC,OACAw3a,SAAA,SAAAxlb,GACA,IAAAsP,EAAA7c,KAGAuN,GACAvN,KAAAuc,UAAA,SAAA4B,GACA,IAAAu1a,EAAA72a,EAAA4B,MAAAvU,MAAAwS,IACAg3a,IACA72a,EAAA82a,YAAAD,EAAA/0Y,wBAAA3lC,MAAA,OAIAzR,MAAA,SAAAgG,GACA,UAAAvN,KAAAsxb,eAAAtxb,KAAAuH,SACA,EAAA9H,EAAAwtM,QAAA1/L,GACAvN,KAAAkiK,KAAA,IAAAzyJ,KAAAlC,GAEAvN,KAAAkiK,KAAAliK,KAAA4zb,oBAGAzgb,aAAA,SAAA5F,IACA,EAAA9N,EAAAwtM,QAAAjtM,KAAAuH,SACAvH,KAAAkiK,KAAA30J,EAAA,IAAAkC,KAAAlC,GAAA,IAAAkC,OAGAokb,kBAAA,SAAAtmb,GACA,IAAA2Q,EAAAle,KAEAuN,GAAAvN,KAAAuc,UAAA,WACA,OAAA2B,EAAAO,MAAAq1a,WAAAhB,oBAGAxB,cAAA,SAAAnxP,GACA,UAAAA,EAEA,SAAAngM,KAAA+zb,aAAA,UAAA/zb,KAAA+zb,cACA/zb,KAAA+zb,YAAA,SAEO,UAAA5zP,IACPngM,KAAA+zb,YAAA,UAKAh4a,SACAi4a,8BAAA,WACA,IAEAC,EAFAj1a,EAAAhf,KAKAuH,EAAA,SAAA+6P,GACAtjP,EAAAP,MAAAq1a,WAAAvsb,MAAA+6P,GAEApgG,EAAA,SAAAq0P,GACAv3Y,EAAAP,MAAAq1a,WAAA5xR,KAAAq0P,GAGAv2Z,KAAAsf,OAAA,QAAA/X,GACAvH,KAAAsf,OAAA,OAAA4iJ,GAXA+xR,EAaAj0b,KAAAi0b,WAZAj1a,EAAAP,MAAAq1a,WAAAprb,OAAAurb,EAaA1sb,EAAAvH,KAAAuH,OACA26J,EAAAliK,KAAAkiK,OAEAwwR,YAAA,WACA1yb,KAAAkiK,KAAAliK,KAAA4zb,kBACA5zb,KAAAge,MAAA,cAEAsnE,KAAA,SAAA/9E,GAGA,IAFA,IAAAgY,EAAAvf,KAEA2f,EAAA7a,UAAA7D,OAAAmL,EAAAP,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAwFA,EAAAgC,EAAahC,IACrGvR,EAAAuR,EAAA,GAAA7Y,UAAA6Y,GAGA,GAAApW,EAEO,GAAAsE,MAAAC,QAAAvE,GAAA,CACP,IAAA+nb,EAAA/nb,EAAAoJ,IAAA,SAAAuxJ,GACA,OAAA3iJ,EAAAwza,UAAA,EAAAtzb,EAAA81Z,mBAAArzP,IAAA,EAAAziK,EAAA+1Z,WAAAtzP,KAEAliK,KAAAge,MAAAzR,MAAAvM,MAAA,OAAAsvb,GAAAv6a,OAAA3I,SAEApM,KAAAge,MAAAzR,MAAAvM,MAAA,OAAAA,KAAA+yb,UAAA,EAAAtzb,EAAA81Z,mBAAAhuZ,IAAA,EAAA9H,EAAA+1Z,WAAAjuZ,IAAAwN,OAAA3I,SAPApM,KAAAge,MAAAzR,MAAAvM,MAAA,OAAAuH,GAAAwN,OAAA3I,IASApM,KAAAk0b,cAAA,KACAl0b,KAAAm0b,cAAA,MAQAC,gBAAA,WACAp0b,KAAA+zb,YAAA,SAEAM,eAAA,WACAr0b,KAAA+zb,YAAA,QAaA/1E,UAAA,WACAh+W,KAAAkiK,MAAA,EAAAziK,EAAAu+W,WAAAh+W,KAAAkiK,OAEA+7M,UAAA,WACAj+W,KAAAkiK,MAAA,EAAAziK,EAAAw+W,WAAAj+W,KAAAkiK,OAEA47M,SAAA,WACA,SAAA99W,KAAA+zb,YACA/zb,KAAAkiK,MAAA,EAAAziK,EAAAq+W,UAAA99W,KAAAkiK,KAAA,IAEAliK,KAAAkiK,MAAA,EAAAziK,EAAAq+W,UAAA99W,KAAAkiK,OAGA67M,SAAA,WACA,SAAA/9W,KAAA+zb,YACA/zb,KAAAkiK,MAAA,EAAAziK,EAAAs+W,UAAA/9W,KAAAkiK,KAAA,IAEAliK,KAAAkiK,MAAA,EAAAziK,EAAAs+W,UAAA/9W,KAAAkiK,OAGAoyR,oBAAA,SAAAC,GACAA,EAAAn4I,SACAm4I,EAAAn4I,QAAAp8S,OAGAw0b,eAAA,SAAAjtb,EAAAiwE,EAAAiwH,GACA,MAAAhoM,EAAAwtM,QAAA1lM,GAAA,CACA,IAAAktb,EAAAz0b,KAAAuH,OAAA,EAAA9H,EAAAi2Z,YAAA11Z,KAAAuH,QAAAm4J,WAAAn4J,EAAAu4J,aAAAv4J,EAAAy4J,eAAA,EAAAvgK,EAAAg2Z,sBAAAz1Z,KAAA4zb,kBAAA5zb,KAAAswb,aACAtwb,KAAAkiK,KAAAuyR,EACAz0b,KAAAslF,KAAAtlF,KAAAkiK,MAAA,QAEAliK,KAAAslF,KAAA/9E,GAAA,GAEAkgM,IACAznM,KAAA6zb,kBAAAr8W,IAGAk9W,oBAAA,WACA10b,KAAA6zb,mBAAA,GAEAc,gBAAA,SAAA12R,GACA,UAAAj+J,KAAAsxb,eACAtxb,KAAAkiK,MAAA,EAAAziK,EAAAk2Z,YAAA31Z,KAAAkiK,KAAAliK,KAAA2gK,KAAA1C,EAAA,GACAj+J,KAAAslF,KAAAtlF,KAAAkiK,QAEAliK,KAAAkiK,MAAA,EAAAziK,EAAA21Z,6BAAAp1Z,KAAAkiK,KAAAliK,KAAA2gK,KAAA1C,GAGAj+J,KAAA+zb,YAAA,SAGAa,iBAAA,SAAArtb,GACA,UAAAvH,KAAAsxb,gBACAtxb,KAAAixb,aAAA1pb,IAGAstb,eAAA,SAAAttb,GACA,QAAAvH,KAAAsxb,eACAtxb,KAAAkiK,KAAAliK,KAAAuH,OAAA,EAAA9H,EAAAk2Z,YAAA31Z,KAAAuH,QAAAi4J,cAAAj4J,EAAA43J,WAAA53J,EAAAw3J,YAAA,EAAAt/J,EAAAg2Z,sBAAAluZ,EAAAvH,KAAAswb,aACAtwb,KAAAslF,KAAAtlF,KAAAkiK,KAAAliK,KAAA+yb,WACO,SAAA/yb,KAAAsxb,eACPtxb,KAAAslF,KAAA/9E,EAAA26J,OAGA4yR,eAAA,SAAAn0R,GACA,SAAA3gK,KAAAsxb,eACAtxb,KAAAkiK,MAAA,EAAAziK,EAAAk2Z,YAAA31Z,KAAAkiK,KAAAvB,EAAA,KACA3gK,KAAAslF,KAAAtlF,KAAAkiK,QAEAliK,KAAAkiK,MAAA,EAAAziK,EAAA21Z,6BAAAp1Z,KAAAkiK,KAAAvB,EAAA3gK,KAAAi+J,OAGAj+J,KAAA+zb,YAAA,UAGAgB,YAAA,WAGA/0b,KAAAg1b,cAAAh1b,KAAAg1b,aAAA,IAAAvlb,QACAzP,KAAAkiK,KAAA,IAAAzyJ,KACAzP,KAAAslF,KAAAtlF,KAAAkiK,QAGAs7M,QAAA,WACA,aAAAx9W,KAAAsxb,cACAtxb,KAAAslF,KAAAtlF,KAAAixb,kBACO,CAGP,IAAA1pb,EAAAvH,KAAAuH,MAAAvH,KAAAuH,OAAA,EAAA9H,EAAAg2Z,sBAAAz1Z,KAAA4zb,kBAAA5zb,KAAAswb,aACAtwb,KAAAkiK,KAAA,IAAAzyJ,KAAAlI,GACAvH,KAAAslF,KAAA/9E,KAGAsrb,UAAA,WACA,UAAA7yb,KAAAsxb,cACAtxb,KAAA+zb,YAAA,QACO,SAAA/zb,KAAAsxb,cACPtxb,KAAA+zb,YAAA,OAEA/zb,KAAA+zb,YAAA,QAGAkB,YAAA,WACAplb,SAAAG,KAAA4O,iBAAA,UAAA5e,KAAAm2a,gBAEA+e,YAAA,WACAl1b,KAAAge,MAAA,aACAnO,SAAAG,KAAA8O,oBAAA,UAAA9e,KAAAm2a,gBAEAA,cAAA,SAAA5+W,GACA,IAAA2kN,EAAA3kN,EAAA2kN,QAEAl8Q,KAAAw3E,UAAAx3E,KAAA6zb,qBACA,KAFA,aAEA/zb,QAAAo8Q,KACAl8Q,KAAAm1b,iBAAAj5K,GACA3kN,EAAAitH,kBACAjtH,EAAAo6H,kBAEA,KAAAuqF,GAAA,OAAAl8Q,KAAAk0b,eAAA,OAAAl0b,KAAAm0b,eAEAn0b,KAAAslF,KAAAtlF,KAAAkiK,MAAA,KAIAizR,iBAAA,SAAAj5K,GA2BA,IA1BA,IAAAkqC,GACAzlJ,MACA2sD,IAAA,EAAA8nO,GAAA,EAAAjxQ,IAAA,EAAAkxQ,GAAA,EAAA3yZ,OAAA,SAAAw/H,EAAA56I,GACA,OAAA46I,EAAAozR,YAAApzR,EAAA1C,cAAAl4I,KAGA22I,OACAqvD,IAAA,EAAA8nO,GAAA,EAAAjxQ,IAAA,EAAAkxQ,GAAA,EAAA3yZ,OAAA,SAAAw/H,EAAA56I,GACA,OAAA46I,EAAAk9C,SAAAl9C,EAAA/C,WAAA73I,KAGAi3L,MACA+O,IAAA,EAAA8nO,GAAA,EAAAjxQ,IAAA,EAAAkxQ,GAAA,EAAA3yZ,OAAA,SAAAw/H,EAAA56I,GACA,OAAA46I,EAAAw7C,QAAAx7C,EAAAnD,UAAA,EAAAz3I,KAGAm5I,KACA6sD,IAAA,EAAA8nO,GAAA,EAAAjxQ,IAAA,EAAAkxQ,GAAA,EAAA3yZ,OAAA,SAAAw/H,EAAA56I,GACA,OAAA46I,EAAAw7C,QAAAx7C,EAAAnD,UAAAz3I,MAIA+wG,EAAAr4H,KAAAsxb,cAEA5hb,EAAA1P,KAAAkiK,KAAAL,UACA4yR,EAAA,IAAAhlb,KAAAzP,KAAAkiK,KAAAL,WACA95J,KAAAY,IAAA+G,EAAA+kb,EAAA5yR,YAHA,SAGA,CACA,IAAAlxJ,EAAAy1S,EAAA/tL,GAEA,GADA1nH,EAAA+xB,OAAA+xZ,EAAA9jb,EAAAurQ,IACA,mBAAAl8Q,KAAAg1b,eAAAh1b,KAAAg1b,aAAAP,GAAA,CAGAz0b,KAAAkiK,KAAAuyR,EACAz0b,KAAAge,MAAA,OAAAy2a,GAAA,GACA,SAGAc,wBAAA,SAAAhub,GACA,IAAAvF,GAAA,EAAAvC,EAAAmsK,WAAArkK,EAAAvH,KAAAi0b,YACAjyb,IACAhC,KAAAkiK,MAAA,EAAAziK,EAAAk2Z,YAAA3zZ,EAAAhC,KAAA2gK,KAAA3gK,KAAAi+J,MAAAj+J,KAAAq3Z,WACAr3Z,KAAAm0b,cAAA,KACAn0b,KAAAye,MAAAq1a,WAAAvsb,MAAAvH,KAAAkiK,KACAliK,KAAA6zb,mBAAA,EACA7zb,KAAAslF,KAAAtlF,KAAAkiK,MAAA,KAGAszR,wBAAA,SAAAjub,GACA,IAAA26J,GAAA,EAAAziK,EAAAmsK,WAAArkK,EAAAvH,KAAAy1b,YACA,GAAAvzR,EAAA,CACA,sBAAAliK,KAAAg1b,cAAAh1b,KAAAg1b,aAAA9yR,GACA,OAEAliK,KAAAkiK,MAAA,EAAAziK,EAAAi2Z,YAAAxzP,EAAAliK,KAAAkiK,KAAAxC,WAAA1/J,KAAAkiK,KAAApC,aAAA9/J,KAAAkiK,KAAAlC,cACAhgK,KAAAk0b,cAAA,KACAl0b,KAAA6yb,YACA7yb,KAAAslF,KAAAtlF,KAAAkiK,MAAA,KAGAiwR,aAAA,SAAA5qb,GACA,OAAAA,IAAAkD,MAAAlD,KAAA,mBAAAvH,KAAAg1b,eAAAh1b,KAAAg1b,aAAAztb,KAEAqsb,gBAAA,WAGA,OAAA5zb,KAAAmT,aAAA,IAAA1D,KAAAzP,KAAAmT,cAAA,IAAA1D,OAIA2kB,YACAwvY,WAAA0vB,EAAAv6a,QAAA28a,UAAAnC,EAAAx6a,QAAA48a,WAAAnC,EAAAz6a,QAAA68a,UAAAnC,EAAA16a,QAAA63R,QAAA/sE,EAAA9qN,QAAA4zZ,SAAA95V,EAAA95D,SAGAjI,KAAA,WACA,OACAk1M,YAAA,GACA9jD,KAAA,IAAAzyJ,KACAlI,MAAA,GACA4L,aAAA,KACAm9a,YAAA,KACAyC,UAAA,EACAzB,cAAA,MACAuE,UAAA,GACAr+W,SAAA,EACAu8W,YAAA,OACAiB,aAAA,GACA/D,gBACAjtH,eAAA,EACA8xH,gBAAA,EACAjC,mBAAA,EACAnrb,OAAA,GACAsqb,cAAA,EACAkB,cAAA,KACAC,cAAA,OAKAt4a,UACA8kJ,KAAA,WACA,OAAA3gK,KAAAkiK,KAAA1C,eAEAvB,MAAA,WACA,OAAAj+J,KAAAkiK,KAAA/C,YAEAo/C,KAAA,WACA,SAAA9+M,EAAAo2Z,eAAA71Z,KAAAkiK,OAEAm1P,UAAA,WACA,OAAAr3Z,KAAAkiK,KAAAnD,WAEAg3R,cAAA,WACA,OAAA/1b,KAAA+yb,UAAA,UAAA/yb,KAAAsxb,eAEA0E,YAAA,WACA,cAAAh2b,KAAAm0b,cACAn0b,KAAAm0b,eAEA,EAAA10b,EAAA22Z,YAAAp2Z,KAAAuH,OAAAvH,KAAAmT,aAAAnT,KAAAi0b,aAGAgC,YAAA,WACA,cAAAj2b,KAAAk0b,cACAl0b,KAAAk0b,eAEA,EAAAz0b,EAAA22Z,YAAAp2Z,KAAAuH,OAAAvH,KAAAmT,aAAAnT,KAAAy1b,aAGAvyH,UAAA,WACA,IAAAgzH,EAAAl2b,KAAAyoF,EAAA,sBACA,YAAAzoF,KAAA+zb,YAAA,CACA,IAAAoC,EAAA,GAAApub,KAAAkwC,MAAAj4C,KAAA2gK,KAAA,IACA,OAAAu1R,EACAC,EAAA,IAAAD,EAAA,OAAAC,EAAA,OAAAD,EAEAC,EAAA,OAAAA,EAAA,GAEA,OAAAn2b,KAAA2gK,KAAA,IAAAu1R,GAEAjC,WAAA,WACA,OAAAj0b,KAAA0I,QACA,EAAAjJ,EAAAy1Z,mBAAAl1Z,KAAA0I,QAEA,YAGA+sb,WAAA,WACA,OAAAz1b,KAAA0I,QACA,EAAAjJ,EAAA01Z,mBAAAn1Z,KAAA0I,QAEA,iBAwJA,SAAAxF,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAA3xE,EAAAF,EAAA,IAIAm+S,EAAAxmO,EAFA33E,EAAA,IAMA62b,EAAAl/W,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAupK,QAAAo7H,EAAA3kS,SAEAqb,YACAiia,YAAAD,EAAAr9a,SAGAjW,OACA00E,QAAA/9D,QACAy0a,iBAAAz0a,SAGA8B,OACAi8D,QAAA,SAAAjqE,GACA,IAAAsP,EAAA7c,KAEAuN,GACAvN,KAAA8lO,SAAA9lO,KAAAuH,MACAvH,KAAAuc,UAAA,WACA,OAAAM,EAAA4B,MAAA63a,QAAAC,gBAAA,YAGAv2b,KAAAw2b,gBAAA,GAGAjvb,MAAA,SAAA44L,GACA,IAAAjiL,EAAAle,KAEAkiK,OAAA,EACAi+B,aAAA1wL,KACAyyJ,GAAA,EAAAziK,EAAA61Z,gBAAAn1N,EAAAngM,KAAAo3Z,gBAAAp3Z,KAAA0I,QACOy3L,IACPj+B,EAAAliK,KAAAmT,aAAA,IAAA1D,KAAAzP,KAAAmT,cAAA,IAAA1D,MAGAzP,KAAAkiK,OACAliK,KAAAw3E,SAAAx3E,KAAAw2b,iBACAx2b,KAAAuc,UAAA,SAAA4B,GACA,OAAAD,EAAA40a,mBAEA9yb,KAAAw2b,gBAAA,IAGAp/B,gBAAA,SAAA7pZ,GACAvN,KAAAye,MAAA63a,QAAAl/B,gBAAA7pZ,GAEA4F,aAAA,SAAA5F,IACA,EAAA9N,EAAAwtM,QAAAjtM,KAAAuH,SACAvH,KAAAkiK,KAAA30J,EAAA,IAAAkC,KAAAlC,GAAA,IAAAkC,QAKAqB,KAAA,WACA,OACAk1M,YAAA,GACAt9M,OAAA,WACAnB,MAAA,GACA4L,aAAA,KACA+uJ,KAAA,IAAAzyJ,KACAq2N,SAAA,IAAAr2N,KACA2nZ,mBACAq/B,gBAAA,KACA/iX,UAAA,EACAs/W,cAAA,EACAwD,gBAAA,IAKA36a,UACA66a,YAAA,WACA,YAAA12b,KAAA0I,QAAA,IAAA5I,QAAA,OAEA62b,SAAA,WACA,OAAA32b,KAAAgzb,cAAAhzb,KAAAkub,mBAAA,GAEA0I,SAAA,WACA,YAAA52b,KAAA0I,QAAA,IAAA5I,QAAA,UACA,KAAAE,KAAA0I,QAAA,IAAA5I,QAAA,SACA,KAIAic,SACA86a,aAAA,WACA72b,KAAAge,MAAA,OAAAhe,KAAA8lO,UAAA,IAEAc,aAAA,SAAA1kE,GAEAliK,KAAAw3E,UACAx3E,KAAAkiK,MAAA,EAAAziK,EAAA81Z,mBAAArzP,GAEAliK,KAAAmyb,aAAAnyb,KAAAkiK,OACAliK,KAAAge,MAAA,OAAAhe,KAAAkiK,MAAA,KAIA26I,kBAAA,SAAAr6S,EAAA0uB,GACAlxB,KAAAge,MAAA,eAAAxb,EAAA0uB,GACAlxB,KAAAy2b,gBAAAj0b,EAAA0uB,IAEAg6Z,cAAA,WACA,IAAA1zW,EAAA1yE,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GACA2iM,EAAA3iM,UAAA,GAEA,IAAA2iM,EAAA,CACA,IAAAvlC,GAAA,EAAAziK,EAAA81Z,oBAAA,EAAA91Z,EAAA61Z,gBAAAt1Z,KAAAkiK,KAAAliK,KAAAo3Z,gBAAAp3Z,KAAA0I,SACA1I,KAAAge,MAAA,OAAAkkJ,EAAA1qF,EAAAiwH,KAEA0uO,cAAA,SAAA5+W,GACA,IAAA2kN,EAAA3kN,EAAA2kN,QACAkqC,GAAqB94F,IAAA,EAAA8nO,GAAA,EAAAjxQ,IAAA,EAAAkxQ,GAAA,GAGrB,QAAAn5K,GAAA,KAAAA,EAAA,CACA,IAAA50P,EAAA8+R,EAAAlqC,GAGA,OAFAl8Q,KAAA82b,qBAAAxva,QACAiwC,EAAAo6H,iBAKA,QAAAuqF,GAAA,KAAAA,EAAA,CACA,IAAAp7O,EAAAslR,EAAAlqC,GAGA,OAFAl8Q,KAAAye,MAAA63a,QAAAS,WAAAj2Z,QACAy2B,EAAAo6H,mBAIAwgQ,aAAA,SAAAjwR,GACA,SAAAziK,EAAA41Z,iBAAAnzP,EAAAliK,KAAAo3Z,gBAAAp3Z,KAAA0I,SAEAoqb,eAAA,WACA,OAAA9yb,KAAAye,MAAA63a,QAAAxD,kBAEAgE,qBAAA,SAAAxva,GACA,IAAAuF,GAAA,KAAA9X,OAAA/U,KAAA02b,aAAA,OACAtwI,GAAA,mBAAArxS,OAAA/U,KAAA02b,aAAA,eAEAjyZ,GADA5X,EAAA/sB,QAAAE,KAAAy2b,eAAA,IACAnva,EAAAuF,EAAA5rB,QAAA4rB,EAAA5rB,OACAjB,KAAAye,MAAA63a,QAAAC,gBAAAnwI,EAAA3hR,MAIA1kB,QAAA,WACA,IAAAf,EAAAhf,KAEAA,KAAAuc,UAAA,WACA,OAAAyC,EAAAksa,eAAA,QAEAlrb,KAAAge,MAAA,cAqCA,SAAA9a,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAA3xE,EAAAF,EAAA,IAIAq+S,EAAA1mO,EAFA33E,EAAA,KAMAmxS,EAAAx5N,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAqb,YAAeirR,YAAAzB,EAAA7kS,SAEfqrK,YACAusH,YAAAD,EAAA33R,SAGAjW,OACAo/J,QACA/uJ,gBACAujb,aACAlzb,KAAAiW,QACAV,SAAA,GAEAi6a,aAAAv5a,QACAm9a,UACApzb,KAAA2N,OACA4H,QAAA,KAIA8C,UACA2lI,MAAA,WACA,OAAAxhJ,KAAAkiK,KAAAxC,YAEAuB,QAAA,WACA,OAAAjhK,KAAAkiK,KAAApC,cAEAk3R,QAAA,WACA,OAAAh3b,KAAAkiK,KAAAlC,cAEAi3R,UAAA,WACA,SAAAx3b,EAAAm2Z,eAAA51Z,KAAAo3Z,kBAEA8/B,cAAA,WACA,IAAA11S,EAAAxhJ,KAAAwhJ,MACA,OAAAA,EAAA,EAAAA,EAAA,OAAA9zI,EAAA8zI,IAAA,GAAAA,EAAA,OAAA9zI,IAEAypb,gBAAA,WACA,IAAAl2R,EAAAjhK,KAAAihK,QACA,OAAAA,EAAA,EAAAA,EAAA,OAAAvzJ,EAAAuzJ,IAAA,GAAAA,EAAA,OAAAvzJ,IAEA0pb,gBAAA,WACA,IAAAJ,EAAAh3b,KAAAg3b,QACA,OAAAA,EAAA,EAAAA,EAAA,OAAAtpb,EAAAspb,IAAA,GAAAA,EAAA,OAAAtpb,KAIAoD,KAAA,WACA,OACAsmZ,mBACAigC,iBAAA,OAGAt3a,QAAA,WACA,IAAAlD,EAAA7c,KAEAA,KAAAuc,UAAA,YACAM,EAAAm2a,cAAAn2a,EAAAy6a,qBAKAv7a,SACA+1R,SAAA,WACA9xS,KAAA+2b,WAAA,IAEAhlJ,SAAA,WACA/xS,KAAA+2b,YAAA,IAEAQ,gBAAA,SAAA/zb,EAAA+D,GACA,OAAA/D,GACA,YACAxD,KAAAge,MAAA,YAAAve,EAAAi2Z,YAAA11Z,KAAAkiK,KAAA36J,EAAAvH,KAAAihK,QAAAjhK,KAAAg3b,UAAoG,MACpG,cACAh3b,KAAAge,MAAA,YAAAve,EAAAi2Z,YAAA11Z,KAAAkiK,KAAAliK,KAAAwhJ,MAAAj6I,EAAAvH,KAAAg3b,UAAkG,MAClG,cACAh3b,KAAAge,MAAA,YAAAve,EAAAi2Z,YAAA11Z,KAAAkiK,KAAAliK,KAAAwhJ,MAAAxhJ,KAAAihK,QAAA15J,MAGA4sE,YAAA,SAAA3wE,EAAA0K,GACA,IAAA3G,EAAA2G,EAAA3G,MACA2G,EAAAwlE,WAGA1zE,KAAAu3b,gBAAA/zb,EAAA+D,GACAvH,KAAAu2b,gBAAA/yb,GACAxD,KAAAw3b,cAAAh0b,EAAA+D,KAGAgvb,gBAAA,SAAA/yb,GACA,UAAAA,EACAxD,KAAAge,MAAA,oBACO,YAAAxa,EACPxD,KAAAge,MAAA,oBACO,YAAAxa,GACPxD,KAAAge,MAAA,oBAEAhe,KAAAq3b,iBAAA7zb,GAEA8zb,gBAAA,WACA,IAAAp5a,EAAAle,KAEAy3b,EAAA,SAAAj0b,GACA0a,EAAAO,MAAAjb,GAAAgoN,KAAAksO,SAAA,SAAAvzb,GAGA+Z,EAAA2tM,aAAAroN,EAAAW,KAGAszb,EAAA,SACAA,EAAA,WACAA,EAAA,YAEA5rO,aAAA,SAAAroN,GACA,IAAA+D,EAAAQ,KAAAC,IAAAD,KAAAkwC,OAAAj4C,KAAAye,MAAAjb,GAAAgoN,KAAAttK,UAAA,oBAAA16C,EAAA,OACAxD,KAAAu3b,gBAAA/zb,EAAA+D,IAOAurb,eAAA,WACA9yb,KAAAw3b,cAAA,QAAAx3b,KAAAwhJ,OACAxhJ,KAAAw3b,cAAA,UAAAx3b,KAAAihK,SACAjhK,KAAAw3b,cAAA,UAAAx3b,KAAAg3b,UAEAW,qBAAA,SAAAn0b,GACAxD,KAAAw3b,cAAAh0b,EAAAxD,KAAAwD,KAEAg0b,cAAA,SAAAh0b,EAAA+D,GACA,IAAAvH,KAAAgzb,aAAA,CACA,IAAAvyb,EAAAT,KAAAye,MAAAjb,GAAAgoN,KACA/qN,IACAA,EAAAy9C,UAAAn2C,KAAAE,IAAA,MAAAV,EAAA,YAGAwvb,WAAA,SAAAzva,GACAtnB,KAAAq3b,kBACAr3b,KAAAu2b,gBAAA,SAGA,IAAA9jb,EAAAzS,KAAAq3b,iBACAJ,EAAAj3b,KAAAi3b,UACAvnb,EAAA1P,KAAAyS,GAEA,aAAAzS,KAAAq3b,iBAAA,CACA,IAAAjkU,EAAArrH,KAAAY,IAAA2e,GACAA,IAAA,OAEA,IADA,IAAArmB,EAAAg2b,EAAAh2b,OACAA,KAAAmyH,GAEA6jU,EADAvnb,KAAA4X,EAAA2va,EAAAh2b,QAAAg2b,EAAAh2b,SAIAmyH,IAEA,GAAA6jU,EAAAvnb,GAAA,YAEAA,KAAA4X,EAAA,OAGAtnB,KAAAu3b,gBAAA9kb,EAAA/C,GACA1P,KAAAw3b,cAAA/kb,EAAA/C,IAEA6uJ,KAAA,SAAAqC,GAEA,KADA,MAAA5gK,KAAA42b,SAAAt+a,eACA,SACA,IAAAs/a,EAAA,MAAA53b,KAAA42b,SACAx2Y,EAAAwgH,EAAA,eAEA,OADAg3R,IAAAx3Y,IAAApO,eACAoO,MA0GA,SAAAl9C,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,kBAAAc,OAAqC2/a,cAAAtjX,EAAAmiX,eAAkCniX,EAAAy+W,aAA+5Dz+W,EAAAO,MAA/5D59D,EAAA,gBAA0C0B,IAAA,QAAAxB,YAAA,2BAAAC,OAA0Dygb,aAAA,uBAAkCjzI,aAAA,wBAAA35F,SAAA,GAAAC,IAAA,MAAgEmqC,UAAWhxE,WAAA,SAAAC,GAA8BhwG,EAAAgiX,gBAAA,UAA6B76R,UAAA,SAAA6oB,GAA8BhwG,EAAAojX,qBAAA,YAAoCpjX,EAAA9E,GAAA8E,EAAA,mBAAAb,EAAAktF,GAAgD,OAAA1pJ,EAAA,MAAgBE,YAAA,wBAAAc,OAA2C21O,OAAAjtF,IAAArsF,EAAAitE,MAAA9tE,YAAqDh0D,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAJ,YAAA,SAA0B5sE,MAAAq5J,EAAAltF,iBAAsCa,EAAA18D,GAAA08D,EAAA6vF,IAAA,KAAA7vF,EAAAqiX,SAAAh2R,EAAA,OAAAA,IAAAt+J,OAAA,IAAAiyE,EAAA6vF,GAAA7vF,EAAAgqF,KAAAqC,UAAwG1pJ,EAAA,gBAAsB0B,IAAA,UAAAxB,YAAA,2BAAAC,OAA4Dygb,aAAA,uBAAkCjzI,aAAA,wBAAA35F,SAAA,GAAAC,IAAA,MAAgEmqC,UAAWhxE,WAAA,SAAAC,GAA8BhwG,EAAAgiX,gBAAA,YAA+B76R,UAAA,SAAA6oB,GAA8BhwG,EAAAojX,qBAAA,cAAsCpjX,EAAA9E,GAAA,YAAAoxF,EAAA92J,GAAkC,OAAAmN,EAAA,MAAgBE,YAAA,wBAAAc,OAA2C21O,OAAA9jP,IAAAwqE,EAAA0sF,SAAgCvhJ,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAJ,YAAA,WAA4B5sE,MAAAwC,EAAA2pE,UAAA,QAAkCa,EAAA18D,GAAA08D,EAAA6vF,IAAA,IAAAr6J,GAAAzH,OAAA,UAA0C4U,EAAA,gBAAsBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,YAAAn1D,WAAA,gBAA8ExG,IAAA,UAAAxB,YAAA,2BAAAC,OAA8Dygb,aAAA,uBAAkCjzI,aAAA,wBAAA35F,SAAA,GAAAC,IAAA,MAAgEmqC,UAAWhxE,WAAA,SAAAC,GAA8BhwG,EAAAgiX,gBAAA,YAA+B76R,UAAA,SAAA6oB,GAA8BhwG,EAAAojX,qBAAA,cAAsCpjX,EAAA9E,GAAA,YAAAqxF,EAAA/2J,GAAkC,OAAAmN,EAAA,MAAgBnN,MAAAqN,YAAA,wBAAAc,OAAmD21O,OAAA9jP,IAAAwqE,EAAAyiX,SAAgCt3a,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAJ,YAAA,WAA4B5sE,MAAAwC,EAAA2pE,UAAA,QAAkCa,EAAA18D,GAAA08D,EAAA6vF,IAAA,IAAAr6J,GAAAzH,OAAA,WAA0CiyE,EAAA,cAAAr9D,EAAA,OAA2CE,YAAA,oCAAAsI,IAAoD4kK,WAAA,SAAAC,GAA8BhwG,EAAAgiX,gBAAA,aAA+Br/a,EAAA,KAAUktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,4CAAwDF,EAAA,KAAUktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,8CAA0DF,EAAA,MAAW0B,IAAA,QAAAxB,YAAA,yBAAgDm9D,EAAA9E,GAAA8E,EAAA,uBAAAqsF,EAAA72J,GAA+C,OAAAmN,EAAA,MAAgBnN,MAAAqN,YAAA,wBAAAc,OAAmD21O,OAAAjtF,IAAArsF,EAAAitE,MAAA9tE,SAAAa,EAAA0iX,UAAAr2R,MAAiErsF,EAAA18D,GAAA08D,EAAA6vF,QAAA12J,IAAAkzJ,EAAA,SAAArsF,EAAAqiX,SAAAh2R,EAAA,OAAAA,IAAAt+J,OAAA,GAAAiyE,EAAAgqF,KAAAqC,YAA4H1pJ,EAAA,OAAeE,YAAA,oCAAAsI,IAAoD4kK,WAAA,SAAAC,GAA8BhwG,EAAAgiX,gBAAA,eAAiCr/a,EAAA,KAAUktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,4CAAwDF,EAAA,KAAUktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,8CAA0DF,EAAA,MAAW0B,IAAA,UAAAxB,YAAA,yBAAkDm9D,EAAA9E,GAAA8E,EAAA,yBAAAssF,EAAA92J,GAAmD,OAAAmN,EAAA,MAAgBnN,MAAAqN,YAAA,wBAAAc,OAAmD21O,OAAAhtF,IAAAtsF,EAAA0sF,WAAoC1sF,EAAA18D,GAAA,eAAA08D,EAAA6vF,QAAA12J,IAAAmzJ,EAAA,QAAAA,GAAAv+J,OAAA,yBAAqGiyE,EAAA,YAAAr9D,EAAA,OAAiCE,YAAA,oCAAAsI,IAAoD4kK,WAAA,SAAAC,GAA8BhwG,EAAAgiX,gBAAA,eAAiCr/a,EAAA,KAAUktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,4CAAwDF,EAAA,KAAUktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwFhI,YAAA,8CAA0DF,EAAA,MAAW0B,IAAA,UAAAxB,YAAA,yBAAkDm9D,EAAA9E,GAAA8E,EAAA,yBAAAusF,EAAA/2J,GAAmD,OAAAmN,EAAA,MAAgBnN,MAAAqN,YAAA,wBAAAc,OAAmD21O,OAAA/sF,IAAAvsF,EAAAyiX,WAAoCziX,EAAA18D,GAAA,eAAA08D,EAAA6vF,QAAA12J,IAAAozJ,EAAA,QAAAA,GAAAx+J,OAAA,yBAAqGiyE,EAAAO,MAAAP,EAAAO,MAAA,IAEn8In9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,kBAAwB8c,IAAKwkS,cAAA,SAAA3/H,GAA+BhwG,EAAAv2D,MAAA,iBAAyB9G,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,0BAAAc,MAAAq8D,EAAAyxI,cAA8D9uM,EAAA,OAAYE,YAAA,yBAAAc,OAA4C2/a,cAAAtjX,EAAAmiX,eAAkCx/a,EAAA,gBAAqB0B,IAAA,UAAAvB,OAAqB0gb,gBAAAxjX,EAAAoiX,SAAAqB,eAAAzjX,EAAAmiX,YAAAuB,aAAA1jX,EAAAqiX,SAAA10R,KAAA3tF,EAAA2tF,MAAsGxiJ,IAAKupN,OAAA10J,EAAAqyJ,aAAAsxN,eAAA3jX,EAAAsoO,sBAAgE,GAAA3lS,EAAA,OAAgBE,YAAA,0BAAoCF,EAAA,UAAeE,YAAA,4BAAAC,OAA+C7T,KAAA,UAAgBkc,IAAKm1D,MAAAN,EAAAsiX,gBAA0BtiX,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,4BAAAvxE,EAAA,UAA+DE,YAAA,qBAAAc,OAAwCslW,SAAAjpS,EAAAb,UAAuBr8D,OAAQ7T,KAAA,UAAgBkc,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA22W,oBAAsB32W,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,oCAEn/B9wE,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA4wb,EAAA54b,EAAA,KACA64b,EAAA74b,EAAA6+C,EAAA+5Y,GACAE,EAAA94b,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAilX,EAAA7ib,EACA8ib,EAAA,GATA,EAEA,KAEA,KAEA,MAUA9zY,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAAjjB,EAAA5uD,EAAA,GAEAE,EAAAF,EAAA,IAwDA4D,EAAA4V,SACAjW,OACAkyb,gBACAztb,SACA4L,cACA0vJ,UAAA,SAAAt1J,GAEA,cAAAA,gBAAAkC,OAAA,EAAAhQ,EAAAwtM,QAAA1/L,KAGA20J,SAGArmJ,UACAs6a,UAAA,WACA,UAAApub,KAAAkwC,MAAAj4C,KAAAkiK,KAAA1C,cAAA,MAIAzjJ,SACAoqa,aAAA,SAAAxlR,GACA,IAAApoJ,KACA4pJ,EAAA,IAAA1yJ,KAOA,OALA8I,EAAAm7D,SAAA,mBAAA1zE,KAAAg1b,cAhCA,SAAAr0R,GACA,IAAA23R,GAAA,EAAA74b,EAAAy2Z,mBAAAv1P,GACAw+C,EAAA,IAAA1vM,KAAAkxJ,EAAA,KACA,SAAAlhK,EAAA2gH,OAAAk4U,GAAA3nb,IAAA,SAAAytC,GACA,SAAA3+C,EAAAs2Z,UAAA52M,EAAA/gK,KA4BAm6Y,CAAA53R,GAAA9oD,MAAA73G,KAAAg1b,cACAz8a,EAAAgsB,QAAAvkC,KAAAuH,MAAAi4J,gBAAAmB,EACApoJ,EAAA4pJ,QAAA3C,gBAAAmB,EACApoJ,EAAAQ,QAAA/Y,KAAAmT,cAAAnT,KAAAmT,aAAAqsJ,gBAAAmB,EAEApoJ,GAEAigb,qBAAA,SAAAjhY,GACA,IAAAh3D,EAAAg3D,EAAAh3D,OACA,SAAAA,EAAAwxC,QAAA,CACA,MAAAoc,EAAAurB,UAAAn5E,EAAAgsC,WAAA,mBACA,IAAAo0H,EAAApgK,EAAAogD,aAAApgD,EAAA+mb,UACAtnb,KAAAge,MAAA,OAAAjD,OAAA4lJ,SAQA,SAAAz9J,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAmBE,YAAA,gBAAAsI,IAAgCm1D,MAAAN,EAAAikX,wBAAkCthb,EAAA,SAAAA,EAAA,MAAAA,EAAA,MAAgCE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,gBAAAj/a,EAAA,MAA6CE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,QAAAj/a,EAAA,MAAiDE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,QAAAj/a,EAAA,MAAiDE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,UAAAj/a,EAAA,MAAAA,EAAA,MAA4DE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,QAAAj/a,EAAA,MAAiDE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,QAAAj/a,EAAA,MAAiDE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,QAAAj/a,EAAA,MAAiDE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,UAAAj/a,EAAA,MAAAA,EAAA,MAA4DE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,QAAAj/a,EAAA,MAAiDE,YAAA,YAAAc,MAAAq8D,EAAA4xW,aAAA5xW,EAAA4hX,UAAA,KAAkEj/a,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA4hX,UAAA,QAAAj/a,EAAA,MAAAA,EAAA,aAE9jDS,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAkxb,EAAAl5b,EAAA,KACAm5b,EAAAn5b,EAAA6+C,EAAAq6Y,GACAE,EAAAp5b,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAulX,EAAAnjb,EACAojb,EAAA,GATA,EAEA,KAEA,KAEA,MAUAp0Y,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAQAjmE,EARAolU,EAAAhxU,EAAA,GAEAm+S,GAMAvyS,EANAolU,IAMsCplU,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAJ7E1L,EAAAF,EAAA,IAEA4uD,EAAA5uD,EAAA,GA4DA4D,EAAA4V,SACAjW,OACAkyb,gBACAztb,SACA4L,cACA0vJ,UAAA,SAAAt1J,GAEA,cAAAA,gBAAAkC,OAAA,EAAAhQ,EAAAwtM,QAAA1/L,KAGA20J,SAEAogB,QAAAo7H,EAAA3kS,SACAgD,SACAoqa,aAAA,SAAAloR,GACA,IAAA1lJ,KACAooJ,EAAA3gK,KAAAkiK,KAAA1C,cACA2C,EAAA,IAAA1yJ,KAOA,OALA8I,EAAAm7D,SAAA,mBAAA1zE,KAAAg1b,cA3EA,SAAAr0R,EAAA1C,GACA,IAAAq6R,GAAA,EAAA74b,EAAA02Z,oBAAAx1P,EAAA1C,GACAkhD,EAAA,IAAA1vM,KAAAkxJ,EAAA1C,EAAA,GACA,SAAAx+J,EAAA2gH,OAAAk4U,GAAA3nb,IAAA,SAAAytC,GACA,SAAA3+C,EAAAs2Z,UAAA52M,EAAA/gK,KAuEAw6Y,CAAAj4R,EAAA1C,GAAApmD,MAAA73G,KAAAg1b,cACAz8a,EAAAgsB,QAAAvkC,KAAAuH,MAAAi4J,gBAAAmB,GAAA3gK,KAAAuH,MAAA43J,aAAAlB,EACA1lJ,EAAA4pJ,QAAA3C,gBAAAmB,GAAAwB,EAAAhD,aAAAlB,EACA1lJ,EAAAQ,QAAA/Y,KAAAmT,cAAAnT,KAAAmT,aAAAqsJ,gBAAAmB,GAAA3gK,KAAAmT,aAAAgsJ,aAAAlB,EAEA1lJ,GAEAsgb,sBAAA,SAAAthY,GACA,IAAAh3D,EAAAg3D,EAAAh3D,OACA,SAAAA,EAAAwxC,WACA,EAAAoc,EAAAurB,UAAAn5E,EAAAgsC,WAAA,aACA,IAAA5e,EAAAptB,EAAAgsC,WAAAw5Y,UAEA9nR,EAAA,EADA19J,EAAAgsC,sBAAA06Y,SACAt5Z,EAEA3tB,KAAAge,MAAA,OAAAigJ,QAOA,SAAA/6J,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAmBE,YAAA,iBAAAsI,IAAiCm1D,MAAAN,EAAAskX,yBAAmC3hb,EAAA,SAAAA,EAAA,MAAAA,EAAA,MAAgCgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,oCAAAvxE,EAAA,MAAAA,EAAA,MAA4EgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,oCAAAvxE,EAAA,MAAAA,EAAA,MAA4EgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,KAA0Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,MAA2Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,kCAAAvxE,EAAA,MAAiEgB,MAAAq8D,EAAA4xW,aAAA,MAA2Bjva,EAAA,KAAUE,YAAA,SAAmBm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,yCAEtjD9wE,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAQAjmE,EARA1L,EAAAF,EAAA,IAEA4uD,EAAA5uD,EAAA,GAEAgxU,EAAAhxU,EAAA,GAEAm+S,GAEAvyS,EAFAolU,IAEsCplU,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA2tb,GAAA,2CAkCAC,EAAA,SAAA/2b,GACA,IAAAg3b,EAAA,IAAAvpb,KAAAzN,GAEA,OADAg3b,EAAAriC,SAAA,SACAqiC,EAAAn3R,WAGA1+J,EAAA4V,SACAupK,QAAAo7H,EAAA3kS,SAEAjW,OACAkhU,gBACAjrT,QAAA,EACAvV,KAAAuX,OACA8nJ,UAAA,SAAAt1J,GACA,OAAAA,GAAA,GAAAA,GAAA,IAIAhG,SAEA4L,cACA0vJ,UAAA,SAAAt1J,GAEA,cAAAA,IAAA,EAAA9N,EAAAwtM,QAAA1/L,IAAA1B,MAAAC,QAAAyB,MAAAsqG,MAAAp4G,EAAAwtM,UAIA/qC,QAEAovR,eACAv4a,QAAA,OAGA+8a,gBACAtyb,KAAAiW,QACAV,SAAA,GAGAi8a,gBAEA/D,cACAztb,KAAAqI,OAGAqrZ,WAEAC,WAEA8hC,YACAlgb,QAAA,WACA,OACA8kW,QAAA,KACAz/I,WAAA,EACAntN,IAAA,KACA0c,OAAA,SAMA9R,UACAq9a,UAAA,WACA,IAAA36O,EAAAv+M,KAAAgkU,eAEA,OAAAzlH,EAAA,IAAAA,MAEA46O,MAAA,WACA,IAAA56O,EAAAv+M,KAAAgkU,eACA,OAAA80H,EAAA/jb,OAAA+jb,GAAAx2b,MAAAi8M,IAAA,IAEA59C,KAAA,WACA,OAAA3gK,KAAAkiK,KAAA1C,eAEAvB,MAAA,WACA,OAAAj+J,KAAAkiK,KAAA/C,YAEAy+M,UAAA,WACA,SAAAn+W,EAAAq2Z,qBAAA91Z,KAAA2gK,KAAA3gK,KAAAi+J,QAEAvqJ,KAAA,WACA,IAAAmJ,EAAA7c,KAGAkiK,EAAA,IAAAzyJ,KAAAzP,KAAA2gK,KAAA3gK,KAAAi+J,MAAA,GACAwC,GAAA,EAAAhhK,EAAAw2Z,oBAAA/zP,GACAk3R,GAAA,EAAA35b,EAAA02Z,oBAAAj0P,EAAA1C,cAAA0C,EAAA/C,YACAk6R,GAAA,EAAA55b,EAAA02Z,oBAAAj0P,EAAA1C,cAAA,IAAA0C,EAAA/C,WAAA,GAAA+C,EAAA/C,WAAA,GAEAsB,EAAA,IAAAA,EAAA,EAAAA,EAYA,IAVA,IAAA/9H,EAAA1iC,KAAAk5b,UACAxlb,EAAA1T,KAAAs5b,UACA/2b,EAAA,EACAg3b,OAAA,EAEA37E,EAAA59W,KAAA49W,UACAo3E,EAAAh1b,KAAAg1b,aACA/D,EAAAjxb,KAAAixb,cAAAjxb,KAAAuH,MACAmI,EAAAqpb,EAAA,IAAAtpb,MAEA1O,EAAA,EAAqBA,EAAA,EAAOA,IAAA,CAC5B,IAAAkQ,EAAAyC,EAAA3S,GAEAf,KAAA81b,iBACA7kb,EAAA,KACAA,EAAA,IAAsBzN,KAAA,OAAA6tC,MAAA,EAAA5xC,EAAAo2Z,gBAAA,EAAAp2Z,EAAAs2Z,UAAAn4C,EAAA,EAAA78W,EAAA,OAsDtB,IAlDA,IAAA2Q,EAAA,SAAAwhB,GACA,IAAAomY,EAAAroZ,EAAA4L,EAAAi5a,eAAA5ia,EAAA,EAAAA,GACAomY,IACAA,GAAoBroZ,IAAAlQ,EAAA4sB,OAAAuF,EAAA1vB,KAAA,SAAAyqB,SAAA,EAAAzrB,OAAA,EAAA0uB,KAAA,IAGpBooY,EAAA91Z,KAAA,SAEA,IAAAoJ,EAAA,EAAA7L,EAAAmyB,EACAlxB,GAAA,EAAAvC,EAAAs2Z,UAAAn4C,EAAAhxW,EAAA81B,GAAAm/H,UACAy3P,EAAArrY,QAAAjsB,GAAA+2b,EAAAl8a,EAAAq6Y,UAAAl1Z,GAAA+2b,EAAAl8a,EAAAs6Y,SACAmC,EAAA92Z,MAAAqa,EAAAq6Y,SAAAl1Z,IAAA+2b,EAAAl8a,EAAAq6Y,SACAoC,EAAApoY,IAAArU,EAAAs6Y,SAAAn1Z,IAAA+2b,EAAAl8a,EAAAs6Y,SACAn1Z,IAAA0N,IAGA4pZ,EAAA91Z,KAAA,SAGAzC,GAAA,GAAAA,GAAA,EACAmyB,EAAA,EAAAnyB,GAAA0/J,EAAA/9H,GACA42X,EAAAjoX,KAAA9uC,IACA,IAAAA,IACAg3b,EAAA,EAAAx4b,EAAAmyB,KAGAomY,EAAAjoX,KAAAgoZ,GAAA54R,EAAA/9H,EAAAxP,EAAA,OAAAnyB,EACAu4Z,EAAA91Z,KAAA,cAGAjB,GAAA62b,GACA9/B,EAAAjoX,KAAA9uC,IACA,IAAAA,IACAg3b,EAAA,EAAAx4b,EAAAmyB,KAGAomY,EAAAjoX,KAAA9uC,IAAA62b,EACA9/B,EAAA91Z,KAAA,cAIA,IAAAixb,EAAA,IAAAhlb,KAAAzN,GACAs3Z,EAAA5lV,SAAA,mBAAAshX,KAAAP,GACAn7B,EAAA5uY,SAAA7e,MAAAC,QAAAmlb,MAAA7pa,OAAA,SAAA86I,GACA,OAAAA,EAAAt6J,aAAA6sb,EAAA7sb,aACW,GAEXiV,EAAA87O,KAAA1nP,EAAA4L,EAAAi5a,eAAA5ia,EAAA,EAAAA,EAAAomY,IAGApmY,EAAA,EAAuBA,EAAA,EAAOA,IAC9BxhB,EAAAwhB,GAGA,YAAAlzB,KAAAsxb,cAAA,CACA,IAAA9ub,EAAAxC,KAAA81b,eAAA,IACA5ka,EAAAlxB,KAAA81b,eAAA,IACA0D,EAAAx5b,KAAAw5b,aAAAvob,EAAAzO,EAAA,IAEAyO,EAAAzO,GAAAyrB,QAAAura,EACAvob,EAAAzO,SAAAg3b,EACAvob,EAAAigB,GAAAjD,QAAAura,EACAvob,EAAAigB,OAAAsoa,GAMA,OAFA9lb,EAAA6lb,mBAEA7lb,IAIA6H,OACAk+a,qBAAA,SAAAt5P,GACAngM,KAAA05b,UAAAv5P,IAEA+2N,QAAA,SAAA/2N,EAAAhd,GACAgd,IAAAhd,GACAnjL,KAAAi5b,WAAA76N,WAAA,EACAp+N,KAAA05b,UAAAv5P,IACOA,EAIPngM,KAAA05b,aAHA15b,KAAAi5b,WAAA76N,WAAA,EACAp+N,KAAA05b,UAAAv5P,KAKAg3N,QAAA,SAAAh3N,EAAAhd,GACAgd,IAAAhd,IACAnjL,KAAAi5b,WAAA76N,WAAA,EACAp+N,KAAA05b,UAAAv5P,MAKArvL,KAAA,WACA,OACAwob,gCAKAv9a,SACA49a,gBAAA,SAAArgC,EAAAp3P,GACA,IAAA36J,EAAA,IAAAkI,KAAAyyJ,GACA,OAAAliK,KAAA2gK,OAAAp5J,EAAAi4J,eAAAx/J,KAAAi+J,QAAA12J,EAAA43J,YAAApkJ,OAAAu+Y,EAAAjoX,QAAA9pC,EAAAw3J,WAEA66R,eAAA,SAAAtgC,GACA,IAAAp7Y,EAAAle,KAEAsxb,EAAAtxb,KAAAsxb,cACAn+a,EAAAnT,KAAAmT,aAAAtH,MAAAC,QAAA9L,KAAAmT,cAAAnT,KAAAmT,cAAAnT,KAAAmT,iBAEAykX,KAwCA,MAvCA,WAAA0hC,EAAA91Z,MAAA,UAAA81Z,EAAA91Z,MAAA81Z,EAAA5lV,SAMAkkT,EAAAr2X,KAAA+3Z,EAAA91Z,OALAo0X,EAAAr2X,KAAA,aACA,UAAA+3Z,EAAA91Z,MACAo0X,EAAAr2X,KAAA,UAMA,WAAA+3Z,EAAA91Z,MAAA2P,EAAAC,KAAA,SAAA8uJ,GACA,OAAAhkJ,EAAAy7a,gBAAArgC,EAAAp3P,MAEA01N,EAAAr2X,KAAA,WAGA,QAAA+vb,GAAA,WAAAh4B,EAAA91Z,MAAA,UAAA81Z,EAAA91Z,OAAAxD,KAAA25b,gBAAArgC,EAAAt5Z,KAAAuH,QACAqwX,EAAAr2X,KAAA,YAGA+3Z,EAAArrY,SAAA,WAAAqrY,EAAA91Z,MAAA,UAAA81Z,EAAA91Z,MAAA,SAAAxD,KAAAsxb,gBACA15D,EAAAr2X,KAAA,YAEA+3Z,EAAA92Z,OACAo1X,EAAAr2X,KAAA,cAGA+3Z,EAAApoY,KACA0mW,EAAAr2X,KAAA,aAIA+3Z,EAAA5lV,UACAkkT,EAAAr2X,KAAA,YAGA+3Z,EAAA5uY,UACAktW,EAAAr2X,KAAA,YAGAq2X,EAAAxxX,KAAA,MAEAyzb,cAAA,SAAA5ob,EAAA0c,GACA,IAAAmsa,EAAA,EAAA7ob,GAAA0c,GAAA3tB,KAAA81b,eAAA,MAAA91b,KAAAk5b,UACA,SAAAz5b,EAAAs2Z,UAAA/1Z,KAAA49W,UAAAk8E,IAEAN,aAAA,SAAAlgC,GACA,YAAAt5Z,KAAAsxb,cAAA,SACA,IAAAmD,EAAA,IAAAhlb,KAAAzP,KAAA2gK,KAAA3gK,KAAAi+J,MAAA,GACA0C,EAAA8zR,EAAAj1R,cACAvB,EAAAw2R,EAAAt1R,WAeA,MAbA,eAAAm6P,EAAA91Z,OACAixb,EAAAr1O,SAAA,IAAAnhD,EAAA,GAAAA,EAAA,GACAw2R,EAAAa,YAAA,IAAAr3R,EAAA0C,EAAA,EAAAA,IAGA,eAAA24P,EAAA91Z,OACAixb,EAAAr1O,SAAA,KAAAnhD,EAAA,EAAAA,EAAA,GACAw2R,EAAAa,YAAA,KAAAr3R,EAAA0C,EAAA,EAAAA,IAGA8zR,EAAA/2O,QAAA9jI,SAAA0/U,EAAAjoX,KAAA,KAGAsvH,MADA,EAAAlhK,EAAAwtM,QAAAjtM,KAAAuH,OAAAvH,KAAAuH,MAAAi4J,cAAA,QACA,EAAA//J,EAAAo2Z,eAAA4+B,MAAA,EAAAh1b,EAAAo2Z,eAAA71Z,KAAAuH,QAEAmyb,UAAA,SAAAviC,GACA,IAAAv5C,EAAA59W,KAAA49W,UACAu5C,IACAA,EAAAn3Z,KAAAm3Z,SAKA,IAFA,IAAAzjZ,EAAA1T,KAAA0T,KACAwjZ,EAAAl3Z,KAAAk3Z,QACAn2Z,EAAA,EAAA0nB,EAAA/U,EAAAzS,OAAsCF,EAAA0nB,EAAO1nB,IAE7C,IADA,IAAAkQ,EAAAyC,EAAA3S,GACAmyB,EAAA,EAAAlyB,EAAAiQ,EAAAhQ,OAAuCiyB,EAAAlyB,EAAOkyB,IAC9C,IAAAlzB,KAAA81b,gBAAA,IAAA5ia,EAAA,CAEA,IAAA6ma,EAAA9ob,EAAAiiB,GACAtmB,EAAA,EAAA7L,EAAAmyB,GAAAlzB,KAAA81b,gBAAA,KACA9zb,GAAA,EAAAvC,EAAAs2Z,UAAAn4C,EAAAhxW,EAAA5M,KAAAk5b,WAAAr3R,UAEAs1P,KAAAD,GACA6iC,EAAA9ra,QAAAipY,GAAAl1Z,GAAA+2b,EAAA5hC,IAAAn1Z,GAAA+2b,EAAA7hC,GACA6iC,EAAAv3b,MAAA20Z,GAAAn1Z,IAAA+2b,EAAA5hC,EAAAt1P,WACAk4R,EAAA7oa,IAAAgmY,GAAAl1Z,IAAA+2b,EAAA7hC,EAAAr1P,aAEAk4R,EAAA9ra,QAAAipY,GAAAl1Z,GAAA+2b,EAAA7hC,IAAAl1Z,GAAA+2b,EAAA5hC,GACA4iC,EAAAv3b,MAAA00Z,GAAAl1Z,IAAA+2b,EAAA7hC,EAAAr1P,WACAk4R,EAAA7oa,IAAAimY,GAAAn1Z,IAAA+2b,EAAA5hC,EAAAt1P,cAKA0mR,gBAAA,SAAAhxX,GACA,GAAAv3D,KAAAi5b,WAAA76N,UAAA,CAEAp+N,KAAAge,MAAA,eACAk5Y,QAAAl3Z,KAAAk3Z,QACAC,QAAAn3Z,KAAAm3Z,QACA8hC,WAAAj5b,KAAAi5b,aAGA,IAAA14b,EAAAg3D,EAAAh3D,OAOA,GANA,SAAAA,EAAAwxC,UACAxxC,IAAAgsC,uBAEA,QAAAhsC,EAAAwxC,UACAxxC,IAAAgsC,YAEA,OAAAhsC,EAAAwxC,QAAA,CAEA,IAAApkB,EAAAptB,EAAAwlb,UACA90a,EAAA1Q,EAAAgsC,WAAA06Y,SAAA,EACA+S,EAAAh6b,KAAAi5b,WACAxS,EAAAuT,EAAA/ob,IACAgpb,EAAAD,EAAArsa,OAGA84Z,IAAAx1a,GAAAgpb,IAAAtsa,IACA3tB,KAAAi5b,WAAAhob,MACAjR,KAAAi5b,WAAAtra,SAEA3tB,KAAAi5b,WAAAp7E,QAAA79W,KAAA65b,cAAA5ob,EAAA0c,OAGAwmD,YAAA,SAAA5c,GACA,IAAAv4C,EAAAhf,KAEAO,EAAAg3D,EAAAh3D,OAQA,GAPA,SAAAA,EAAAwxC,UACAxxC,IAAAgsC,uBAEA,QAAAhsC,EAAAwxC,UACAxxC,IAAAgsC,YAGA,OAAAhsC,EAAAwxC,WACA,EAAAoc,EAAAurB,UAAAn5E,EAAA,iBAAA4tD,EAAAurB,UAAAn5E,EAAA,SAEA,IAAA+wb,EAAAtxb,KAAAsxb,cAEA,SAAAA,IACA/wb,IAAAgsC,WAAA2tZ,MAAA,IAGA,IAiFAjJ,EAjFAtwR,EAAA5lJ,OAAA/a,KAAA2gK,MACA1C,EAAAljJ,OAAA/a,KAAAi+J,OAEA8nR,EAAAxlb,EAAAwlb,UACAkB,EAAA1mb,EAAAgsC,WAAA06Y,SAEA3tB,EAAAt5Z,KAAA0T,KAAAuza,EAAA,GAAAlB,GACA10Y,EAAAioX,EAAAjoX,KACA0P,EAAAxgD,EAAAwgD,UAEA0zY,EAAA,IAAAhlb,KAAAkxJ,EAAA1C,EAAA,GAwBA,IAtBA,IAAAl9G,EAAAjhD,QAAA,SACA,IAAAm+J,GACA0C,GAAA,EACA1C,EAAA,IAEAA,GAAA,EAEAw2R,EAAAa,YAAA30R,GACA8zR,EAAAr1O,SAAAnhD,KACO,IAAAl9G,EAAAjhD,QAAA,UACP,KAAAm+J,GACA0C,GAAA,EACA1C,EAAA,GAEAA,GAAA,EAEAw2R,EAAAa,YAAA30R,GACA8zR,EAAAr1O,SAAAnhD,IAGAw2R,EAAA/2O,QAAA9jI,SAAAvoC,EAAA,KAEA,UAAArxC,KAAAsxb,eACA,GAAAtxb,KAAAk3Z,SAAAl3Z,KAAAm3Z,QAAA,CACA,IAAAD,EAAA,IAAAznZ,KAAAglb,EAAA5yR,WAGA7hK,KAAAge,MAAA,QAA8Bk5Y,UAAAC,QAF9B,OAEmE,GACnEn3Z,KAAAi5b,WAAA76N,WAAA,EACAp+N,KAAA05b,UAAA15b,KAAAk3Z,SACAl3Z,KAAAuc,UAAA,WACAyC,EAAAupa,gBAAAhxX,UAES,GAAAv3D,KAAAk3Z,UAAAl3Z,KAAAm3Z,QACT,GAAAs9B,GAAAz0b,KAAAk3Z,QAAA,CACA,IAAAijC,EAAA,IAAA1qb,KAAAglb,EAAA5yR,WACA7hK,KAAAi5b,WAAA76N,WAAA,EAEAp+N,KAAAge,MAAA,QACAk5Y,QAAAl3Z,KAAAk3Z,QACAC,QAAAgjC,QAEW,CACX,IAAAC,EAAA,IAAA3qb,KAAAglb,EAAA5yR,WACA7hK,KAAAi5b,WAAA76N,WAAA,EAEAp+N,KAAAge,MAAA,QAAgCk5Y,QAAAkjC,EAAAjjC,QAAAn3Z,KAAAk3Z,eAEvB,IAAAl3Z,KAAAk3Z,QAAA,CACT,IAAAmjC,EAAA,IAAA5qb,KAAAglb,EAAA5yR,WAEA7hK,KAAAge,MAAA,QAA8Bk5Y,QAAAmjC,EAAAljC,QAAAn3Z,KAAAm3Z,UAA4C,GAC1En3Z,KAAAi5b,WAAA76N,WAAA,EACAp+N,KAAA05b,UAAA15b,KAAAk3Z,eAEO,WAAAo6B,EACPtxb,KAAAge,MAAA,OAAAy2a,QACO,YAAAnD,EAAA,CACP,IAAAgJ,GAAA,EAAA76b,EAAAo2Z,eAAA4+B,GAEAltb,EAAAktb,EAAAj1R,cAAA,IAAA86R,EACAt6b,KAAAge,MAAA,QACA2iJ,KAAA8zR,EAAAj1R,cACA++C,KAAA+7O,EACA/yb,QACA26J,KAAAuyR,QAEO,UAAAnD,IAEPL,EAAAjya,EAAAiya,aAEA33B,EAAA5uY,SAGAuma,EAAAnnb,QAAA,SAAAo4J,EAAAt1J,GACAs1J,EAAAt6J,aAAA6sb,EAAA7sb,YACAqpb,EAAA3vb,OAAAsL,EAAA,KAJAqkb,EAAA1vb,KAAAkzb,GASAz1a,EAAAhB,MAAA,SAAAiza,SASA,SAAA/tb,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAmBE,YAAA,gBAAAc,OAAmCqib,eAAA,SAAAhmX,EAAA+8W,eAA+Cj6a,OAAQgua,YAAA,IAAAC,YAAA,KAAoC5la,IAAKm1D,MAAAN,EAAAJ,YAAAunF,UAAAnnF,EAAAg0W,mBAAyDrxa,EAAA,SAAAA,EAAA,MAAAq9D,EAAA,eAAAr9D,EAAA,MAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,0BAAAlU,EAAAO,KAAAP,EAAA9E,GAAA8E,EAAA,eAAAgqI,EAAAx0M,GAAkJ,OAAAmN,EAAA,MAAgBnN,QAAQwqE,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,uBAAA81H,UAAyD,GAAAhqI,EAAA9E,GAAA8E,EAAA,cAAAtjE,EAAAlH,GAA0C,OAAAmN,EAAA,MAAgBnN,MAAAqN,YAAA,qBAAAc,OAAgDqsB,QAAAgwC,EAAAilX,aAAAvob,EAAA,MAAqCsjE,EAAA9E,GAAA,WAAA6pV,EAAAvvZ,GAAiC,OAAAmN,EAAA,MAAgBnN,MAAAmO,MAAAq8D,EAAAqlX,eAAAtgC,KAAuCpiZ,EAAA,OAAAA,EAAA,QAAAq9D,EAAA18D,GAAA,eAAA08D,EAAA6vF,GAAAk1P,EAAAjoX,MAAA,0BAAsF,MAEvzB15B,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAKA+0E,GAAiB7wE,OALjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,kBAAwB8c,IAAK86a,cAAAjmX,EAAA0gX,YAAA/wI,cAAA3vO,EAAA2gX,eAA6Dh+a,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,2CAAAc,QACjTuib,cAAAlmX,EAAAz7D,OAAA4hb,SAAAnmX,EAAAshX,UACA8E,WAAApmX,EAAAw+W,UACKx+W,EAAAyxI,eAAmB9uM,EAAA,OAAYE,YAAA,kCAA4Cm9D,EAAAQ,GAAA,WAAAR,EAAA,UAAAr9D,EAAA,OAA8CE,YAAA,4BAAuCm9D,EAAA9E,GAAA8E,EAAA,mBAAAggX,EAAAxqb,GAA+C,OAAAmN,EAAA,UAAoBnN,MAAAqN,YAAA,4BAAAC,OAAuD7T,KAAA,UAAgBkc,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA+/W,oBAAAC,OAAoChgX,EAAA18D,GAAA08D,EAAA6vF,GAAAmwR,EAAAljZ,YAAkCkjC,EAAAO,KAAA59D,EAAA,OAAsBE,YAAA,0BAAoCm9D,EAAA,SAAAr9D,EAAA,OAA2BE,YAAA,gCAA0CF,EAAA,QAAaE,YAAA,gCAA0CF,EAAA,YAAiBG,OAAO2wN,YAAAzzJ,EAAAkU,EAAA,4BAAAlhF,MAAAgtE,EAAA0hX,YAAApka,KAAA,SAAuFnS,IAAKxV,MAAA,SAAAqD,GAAwB,OAAAgnE,EAAA2/W,cAAA3mb,GAAkC07N,OAAA10J,EAAAihX,4BAAuC,GAAAt+a,EAAA,QAAiBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,oBAAAn1D,WAAA,wBAA8GhI,YAAA,gCAA4CF,EAAA,YAAiB0B,IAAA,QAAAvB,OAAmB2wN,YAAAzzJ,EAAAkU,EAAA,4BAAAlhF,MAAAgtE,EAAAyhX,YAAAnka,KAAA,SAAuFnS,IAAK6tB,MAAA,SAAAg3I,GAAyBhwG,EAAAs/W,mBAAA,GAA6B3pb,MAAA,SAAAqD,GAAyB,OAAAgnE,EAAA4/W,cAAA5mb,GAAkC07N,OAAA10J,EAAAghX,2BAAuCr+a,EAAA,eAAoB0B,IAAA,aAAAvB,OAAwBujb,qBAAArmX,EAAAy+W,aAAAx7W,QAAAjD,EAAAs/W,mBAAsEn0a,IAAKm7a,KAAAtmX,EAAAigX,eAAAz0a,QAAAw0D,EAAAy/W,kCAAuE,KAAAz/W,EAAAO,KAAA59D,EAAA,OAA2BktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,SAAAgtE,EAAAw/W,YAAA30a,WAAA,2BAAoGhI,YAAA,yBAAAc,OAA8C4ib,mCAAA,SAAAvmX,EAAAw/W,aAAA,UAAAx/W,EAAAw/W,eAAiG78a,EAAA,UAAeE,YAAA,0EAAAC,OAA6F7T,KAAA,SAAAolO,aAAAr0J,EAAAkU,EAAA,2BAA6D/oE,IAAKm1D,MAAAN,EAAAupS,YAAsB5mW,EAAA,UAAektK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,SAAAgtE,EAAAw/W,YAAA30a,WAAA,2BAAoGhI,YAAA,wEAAAC,OAA6F7T,KAAA,SAAAolO,aAAAr0J,EAAAkU,EAAA,4BAA8D/oE,IAAKm1D,MAAAN,EAAAypS,aAAuB9mW,EAAA,QAAaE,YAAA,+BAAAC,OAAkD2sJ,KAAA,UAAgBtkJ,IAAKm1D,MAAAN,EAAA8/W,kBAA4B9/W,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA2uP,cAAAhsT,EAAA,QAA6CktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,SAAAgtE,EAAAw/W,YAAA30a,WAAA,2BAAoGhI,YAAA,+BAAAc,OAAoD21O,OAAA,UAAAt5K,EAAAw/W,aAAsC18a,OAAQ2sJ,KAAA,UAAgBtkJ,IAAKm1D,MAAAN,EAAA6/W,mBAA6B7/W,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,uBAAAlU,EAAA0pF,MAAA,QAAA/mJ,EAAA,UAAkFE,YAAA,2EAAAC,OAA8F7T,KAAA,SAAAolO,aAAAr0J,EAAAkU,EAAA,2BAA6D/oE,IAAKm1D,MAAAN,EAAAwpS,YAAsB7mW,EAAA,UAAektK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,SAAAgtE,EAAAw/W,YAAA30a,WAAA,2BAAoGhI,YAAA,yEAAAC,OAA8F7T,KAAA,SAAAolO,aAAAr0J,EAAAkU,EAAA,4BAA8D/oE,IAAKm1D,MAAAN,EAAA0pS,eAAuB/mW,EAAA,OAAcE,YAAA,6BAAuCF,EAAA,cAAmBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,SAAAgtE,EAAAw/W,YAAA30a,WAAA,2BAAoG/H,OAAS0jb,iBAAAxmX,EAAA+8W,cAAA0J,oBAAAzmX,EAAAyvP,eAAAz8T,MAAA,IAAAkI,KAAA8kE,EAAAhtE,OAAA0zb,gBAAA1mX,EAAAphE,aAAA,IAAA1D,KAAA8kE,EAAAphE,cAAA,KAAA+uJ,KAAA3tF,EAAA2tF,KAAAg5R,gBAAA3mX,EAAAygX,aAAAmG,gBAAA5mX,EAAA08W,cAA6Pvxa,IAAKm7a,KAAAtmX,EAAAsgX,eAAA/xQ,OAAAvuG,EAAAqgX,oBAAyD19a,EAAA,cAAmBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,SAAAgtE,EAAAw/W,YAAA30a,WAAA,2BAAoG/H,OAAS9P,MAAA,IAAAkI,KAAA8kE,EAAAhtE,OAAA0zb,gBAAA1mX,EAAAphE,aAAA,IAAA1D,KAAA8kE,EAAAphE,cAAA,KAAA+uJ,KAAA3tF,EAAA2tF,KAAAg5R,gBAAA3mX,EAAAygX,cAAkJt1a,IAAKm7a,KAAAtmX,EAAAugX,kBAA2B59a,EAAA,eAAoBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,UAAAgtE,EAAAw/W,YAAA30a,WAAA,4BAAsG/H,OAAS9P,MAAA,IAAAkI,KAAA8kE,EAAAhtE,OAAA0zb,gBAAA1mX,EAAAphE,aAAA,IAAA1D,KAAA8kE,EAAAphE,cAAA,KAAA+uJ,KAAA3tF,EAAA2tF,KAAAg5R,gBAAA3mX,EAAAygX,cAAkJt1a,IAAKm7a,KAAAtmX,EAAAogX,oBAA4B,SAAAz9a,EAAA,OAAsBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAAwhX,eAAA,SAAAxhX,EAAAw/W,YAAA30a,WAAA,4CAA0IhI,YAAA,4BAAwCF,EAAA,aAAkBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,UAAAgtE,EAAA+8W,cAAAlya,WAAA,8BAA0GhI,YAAA,4BAAAC,OAAiDwa,KAAA,OAAAruB,KAAA,QAA4Bkc,IAAKm1D,MAAAN,EAAAwgX,eAAyBxgX,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,oCAAAvxE,EAAA,aAAuFE,YAAA,4BAAAC,OAA+Cs8D,MAAA,GAAA9hD,KAAA,QAAyBnS,IAAKm1D,MAAAN,EAAAipS,WAAqBjpS,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,iDAEp5J9wE,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA6zb,EAAA77b,EAAA,KACA87b,EAAA97b,EAAA6+C,EAAAg9Y,GACAE,EAAA/7b,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAkoX,EAAA9lb,EACA+lb,EAAA,GATA,EAEA,KAEA,KAEA,MAUA/2Y,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAA3xE,EAAAF,EAAA,IAIAs+S,EAAA3mO,EAFA33E,EAAA,IAMAm+S,EAAAxmO,EAFA33E,EAAA,IAMA+zb,EAAAp8W,EAFA33E,EAAA,KAMAk0b,EAAAv8W,EAFA33E,EAAA,KAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAszE,EAAAqE,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAowb,EAAA,SAAAr5R,EAAAw0P,GACA,WAAAjnZ,KAAA,IAAAA,KAAAyyJ,GAAAL,UAAA60P,IA4LA8kC,EAAA,SAAArob,GACA,OAAAtH,MAAAC,QAAAqH,IACA,IAAA1D,KAAA0D,EAAA,QAAA1D,KAAA0D,EAAA,KACGA,GACH,IAAA1D,KAAA0D,GAAAoob,EAAApob,EAAA,SAEA,IAAA1D,KAAA8rb,EAAA9rb,KAAAC,MAAA,SAIAvM,EAAA4V,SACAupK,QAAAo7H,EAAA3kS,SAEAqrK,YAAek7H,aAAAzB,EAAA9kS,SAEf8C,UACA4/a,YAAA,WACA,QAAAz7b,KAAAk3Z,SAAAl3Z,KAAAm3Z,UAAAn3Z,KAAAo+N,YAEAs9N,UAAA,WACA,OAAA17b,KAAA27b,SAAAn8R,cAAA,IAAAx/J,KAAAyoF,EAAA,0BAAAzoF,KAAAyoF,EAAA,uBAAAzoF,KAAA27b,SAAAx8R,WAAA,KAEAy8R,WAAA,WACA,OAAA57b,KAAA67b,UAAAr8R,cAAA,IAAAx/J,KAAAyoF,EAAA,0BAAAzoF,KAAAyoF,EAAA,uBAAAzoF,KAAA67b,UAAA18R,WAAA,KAEA28R,SAAA,WACA,OAAA97b,KAAA27b,SAAAn8R,eAEAu8R,UAAA,WACA,OAAA/7b,KAAA27b,SAAAx8R,YAEA68R,cAAA,WACA,OAAAh8b,KAAA27b,SAAA58R,WAEAk9R,UAAA,WACA,OAAAj8b,KAAA67b,UAAAr8R,eAEA08R,WAAA,WACA,OAAAl8b,KAAA67b,UAAA18R,YAEAg9R,eAAA,WACA,OAAAn8b,KAAA67b,UAAA98R,WAEAq9R,eAAA,WACA,OAAAp8b,KAAAk3Z,SAAA,EAAAz3Z,EAAA22Z,YAAAp2Z,KAAAk3Z,QAAAl3Z,KAAAy1b,YAAA,IAEA4G,eAAA,WACA,OAAAr8b,KAAAm3Z,SAAAn3Z,KAAAk3Z,SAAA,EAAAz3Z,EAAA22Z,YAAAp2Z,KAAAm3Z,SAAAn3Z,KAAAk3Z,QAAAl3Z,KAAAy1b,YAAA,IAEA6G,eAAA,WACA,OAAAt8b,KAAAk3Z,SAAA,EAAAz3Z,EAAA22Z,YAAAp2Z,KAAAk3Z,QAAAl3Z,KAAAi0b,YAAA,IAEAsI,eAAA,WACA,OAAAv8b,KAAAm3Z,SAAAn3Z,KAAAk3Z,SAAA,EAAAz3Z,EAAA22Z,YAAAp2Z,KAAAm3Z,SAAAn3Z,KAAAk3Z,QAAAl3Z,KAAAi0b,YAAA,IAEAA,WAAA,WACA,OAAAj0b,KAAA0I,QACA,EAAAjJ,EAAAy1Z,mBAAAl1Z,KAAA0I,QAEA,YAGA+sb,WAAA,WACA,OAAAz1b,KAAA0I,QACA,EAAAjJ,EAAA01Z,mBAAAn1Z,KAAA0I,QAEA,cAGA8zb,iBAAA,WACA,IAAAv+E,GAAAj+W,KAAA+7b,UAAA,MACAU,EAAAz8b,KAAA+7b,UAAA,UACA,OAAA/7b,KAAAwwb,cAAA,IAAA/gb,KAAAzP,KAAA87b,SAAAW,EAAAx+E,GAAA,IAAAxuW,KAAAzP,KAAAi8b,UAAAj8b,KAAAk8b,aAEAQ,gBAAA,WACA,OAAA18b,KAAAwwb,cAAA,GAAAxwb,KAAAi8b,UAAAj8b,KAAAk8b,YAAA,GAAAl8b,KAAA87b,SAAA97b,KAAA+7b,UAAA,SAIAjrb,KAAA,WACA,OACAk1M,YAAA,GACAz+M,SACA4L,aAAA,KACAm9a,YAAA,KACAp5B,QAAA,GACAC,QAAA,GACAwkC,SAAA,IAAAlsb,KACAosb,WAAA,EAAAp8b,EAAAw+W,WAAA,IAAAxuW,MACAwpb,YACAp7E,QAAA,KACAz/I,WAAA,EACAntN,IAAA,KACA0c,OAAA,MAEAola,UAAA,EACA8C,UAAA,GACAr+W,QAAA,GACAw9W,aAAA,GACAhxH,eAAA,EACA24H,sBAAA,EACAC,sBAAA,EACAl0b,OAAA,GACAsqb,cAAA,EACAxC,cAAA,IAKAj1a,OACA27Y,QAAA,SAAA3pZ,GACA,IAAAsP,EAAA7c,KAEAA,KAAAuc,UAAA,WACA,GAAAM,EAAA4B,MAAAo+a,eAAAhgb,EAAAs6Y,SAAAt6Y,EAAAs6Y,QAAAt6Y,EAAAq6Y,QAAA,CAEAr6Y,EAAA4B,MAAAo+a,cAAAzlC,mBAAA,EAAA33Z,EAAAmsK,YAAA,EAAAnsK,EAAA22Z,YAAAv5Y,EAAAq6Y,QADA,yBACA,EAAAz3Z,EAAAmsK,WAAA,WADA,iBAIAr+J,GAAAvN,KAAAye,MAAAq+a,gBACA98b,KAAAye,MAAAq+a,cAAA56R,KAAA30J,EACAvN,KAAAye,MAAAq+a,cAAAv1b,MAAAgG,IAGA4pZ,QAAA,SAAA5pZ,GACAA,GAAAvN,KAAAye,MAAAo+a,gBACA78b,KAAAye,MAAAo+a,cAAA36R,KAAA30J,EACAvN,KAAAye,MAAAo+a,cAAAt1b,MAAAgG,IAGAovb,qBAAA,SAAApvb,GACA,IAAA2Q,EAAAle,KAEAuN,GACAvN,KAAAuc,UAAA,WACA2B,EAAAO,MAAAq+a,cAAA56R,KAAAhkJ,EAAAg5Y,QACAh5Y,EAAAO,MAAAq+a,cAAAv1b,MAAA2W,EAAAg5Y,QACAh5Y,EAAAO,MAAAq+a,cAAAhK,oBAIA8J,qBAAA,SAAArvb,GACA,IAAAyR,EAAAhf,KAEAuN,GACAvN,KAAAuc,UAAA,WACAyC,EAAAP,MAAAo+a,cAAA36R,KAAAljJ,EAAAm4Y,QACAn4Y,EAAAP,MAAAo+a,cAAAt1b,MAAAyX,EAAAm4Y,QACAn4Y,EAAAP,MAAAo+a,cAAA/J,oBAIAvrb,MAAA,SAAA44L,GACA,GAAAA,GAGO,GAAAt0L,MAAAC,QAAAq0L,GAKP,GAJAngM,KAAAk3Z,SAAA,EAAAz3Z,EAAAwtM,QAAA9M,EAAA,QAAA1wL,KAAA0wL,EAAA,SACAngM,KAAAm3Z,SAAA,EAAA13Z,EAAAwtM,QAAA9M,EAAA,QAAA1wL,KAAA0wL,EAAA,SAGAngM,KAAAk3Z,QAEA,GADAl3Z,KAAA27b,SAAA37b,KAAAk3Z,QACAl3Z,KAAAwwb,cAAAxwb,KAAAm3Z,QAAA,CACA,IAAA4lC,EAAA/8b,KAAAk3Z,QAAA13P,cACAw9R,EAAAh9b,KAAAk3Z,QAAA/3P,WACA89R,EAAAj9b,KAAAm3Z,QAAA33P,cACA09R,EAAAl9b,KAAAm3Z,QAAAh4P,WACAn/J,KAAA67b,UAAAkB,IAAAE,GAAAD,IAAAE,GAAA,EAAAz9b,EAAAw+W,WAAAj+W,KAAAm3Z,SAAAn3Z,KAAAm3Z,aAEAn3Z,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA27b,eAGA37b,KAAA27b,SAAAH,EAAAx7b,KAAAmT,cAAA,GACAnT,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA27b,eApBA37b,KAAAk3Z,QAAA,KACAl3Z,KAAAm3Z,QAAA,MAuBAhkZ,aAAA,SAAA5F,GACA,IAAA1B,MAAAC,QAAA9L,KAAAuH,OAAA,CACA,IAAA41b,EAAA3B,EAAAjub,GACA1H,EAAAs3b,EAAA,GACAr3b,EAAAq3b,EAAA,GAEAn9b,KAAA27b,SAAA91b,EACA7F,KAAA67b,UAAAtub,KAAA,IAAAvN,KAAAwwb,aAAA1qb,GAAA,EAAArG,EAAAw+W,WAAAj+W,KAAA27b,aAKA5/a,SACA22a,YAAA,WACA1yb,KAAAk3Z,QAAA,KACAl3Z,KAAAm3Z,QAAA,KACAn3Z,KAAA27b,SAAAH,EAAAx7b,KAAAmT,cAAA,GACAnT,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA27b,UACA37b,KAAAge,MAAA,cAEAo/a,kBAAA,SAAA7vb,GACAvN,KAAAk3Z,QAAA3pZ,EAAA2pZ,QACAl3Z,KAAAm3Z,QAAA5pZ,EAAA4pZ,QACAn3Z,KAAAi5b,WAAA1rb,EAAA0rb,YAEAoE,gBAAA,SAAA9lY,EAAA/zD,GACA,IAAA+D,EAAAgwD,EAAAh3D,OAAAgH,MACA,GAAAA,EAAAtG,SAAAjB,KAAAy1b,WAAAx0b,OAAA,CACA,IAAA+vb,GAAA,EAAAvxb,EAAAmsK,WAAArkK,EAAAvH,KAAAy1b,YAEA,GAAAzE,EAAA,CACA,sBAAAhxb,KAAAg1b,cAAAh1b,KAAAg1b,aAAA,IAAAvlb,KAAAuhb,IACA,OAEA,QAAAxtb,GACAxD,KAAAk3Z,QAAA,IAAAznZ,KAAAuhb,GACAhxb,KAAA27b,SAAA,IAAAlsb,KAAAuhb,GACAhxb,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA27b,YAEA37b,KAAAm3Z,QAAA,IAAA1nZ,KAAAuhb,GACAhxb,KAAA27b,UAAA,EAAAl8b,EAAAu+W,WAAAgzE,GACAhxb,KAAA67b,UAAA,IAAApsb,KAAAuhb,OAIAsM,iBAAA,SAAA/lY,EAAA/zD,GACA,IAAA+D,EAAAgwD,EAAAh3D,OAAAgH,MACAypb,GAAA,EAAAvxb,EAAAmsK,WAAArkK,EAAAvH,KAAAy1b,YACAzE,IACA,QAAAxtb,GACAxD,KAAAk3Z,SAAA,EAAAz3Z,EAAAk2Z,YAAA31Z,KAAAk3Z,QAAA85B,EAAAxxR,cAAAwxR,EAAA7xR,WAAA6xR,EAAAjyR,WACA/+J,KAAAk3Z,QAAAl3Z,KAAAm3Z,UACAn3Z,KAAAm3Z,QAAAn3Z,KAAAk3Z,WAGAl3Z,KAAAm3Z,SAAA,EAAA13Z,EAAAk2Z,YAAA31Z,KAAAm3Z,QAAA65B,EAAAxxR,cAAAwxR,EAAA7xR,WAAA6xR,EAAAjyR,WACA/+J,KAAAm3Z,QAAAn3Z,KAAAk3Z,UACAl3Z,KAAAk3Z,QAAAl3Z,KAAAm3Z,YAKAomC,iBAAA,SAAAhmY,EAAA/zD,GACA,IAAA+D,EAAAgwD,EAAAh3D,OAAAgH,MACAypb,GAAA,EAAAvxb,EAAAmsK,WAAArkK,EAAAvH,KAAAi0b,YACAjD,IACA,QAAAxtb,GACAxD,KAAAk3Z,SAAA,EAAAz3Z,EAAAi2Z,YAAA11Z,KAAAk3Z,QAAA85B,EAAAtxR,WAAAsxR,EAAAlxR,aAAAkxR,EAAAhxR,cACAhgK,KAAAk3Z,QAAAl3Z,KAAAm3Z,UACAn3Z,KAAAm3Z,QAAAn3Z,KAAAk3Z,SAEAl3Z,KAAAye,MAAAq+a,cAAAv1b,MAAAvH,KAAAk3Z,QACAl3Z,KAAA28b,sBAAA,IAEA38b,KAAAm3Z,SAAA,EAAA13Z,EAAAi2Z,YAAA11Z,KAAAm3Z,QAAA65B,EAAAtxR,WAAAsxR,EAAAlxR,aAAAkxR,EAAAhxR,cACAhgK,KAAAm3Z,QAAAn3Z,KAAAk3Z,UACAl3Z,KAAAk3Z,QAAAl3Z,KAAAm3Z,SAEAn3Z,KAAAye,MAAAo+a,cAAAt1b,MAAAvH,KAAAk3Z,QACAl3Z,KAAA48b,sBAAA,KAIAY,gBAAA,SAAAjwb,GACA,IAAAgS,EAAAvf,KAEA84E,IAAAh0E,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,KAAAA,UAAA,GAEAwrb,EAAAtwb,KAAAswb,gBACAp5B,GAAA,EAAAz3Z,EAAAg2Z,sBAAAloZ,EAAA2pZ,QAAAo5B,EAAA,IACAn5B,GAAA,EAAA13Z,EAAAg2Z,sBAAAloZ,EAAA4pZ,QAAAm5B,EAAA,IAEAtwb,KAAAm3Z,aAAAn3Z,KAAAk3Z,cAGAl3Z,KAAAy9b,QAAAz9b,KAAAy9b,OAAAlwb,GACAvN,KAAAm3Z,UACAn3Z,KAAAk3Z,UAGA5qZ,WAAA,WACAiT,EAAA43Y,UACA53Y,EAAA23Y,WACO,IACPp+U,IAAA94E,KAAA+yb,UACA/yb,KAAAkrb,kBAEAoJ,oBAAA,SAAAC,GACAA,EAAAn4I,SACAm4I,EAAAn4I,QAAAp8S,OAGA09b,kBAAA,SAAAn2b,EAAAiwE,EAAAiwH,GACAznM,KAAAk3Z,QAAAl3Z,KAAAk3Z,SAAA,IAAAznZ,KACAlI,IACAvH,KAAAk3Z,SAAA,EAAAz3Z,EAAAi2Z,YAAA11Z,KAAAk3Z,QAAA3vZ,EAAAm4J,WAAAn4J,EAAAu4J,aAAAv4J,EAAAy4J,eAGAynC,IACAznM,KAAA28b,qBAAAnlX,KAGAx3E,KAAAm3Z,SAAAn3Z,KAAAm3Z,SAAAn3Z,KAAAm3Z,QAAAt1P,UAAA7hK,KAAAk3Z,QAAAr1P,aACA7hK,KAAAm3Z,QAAA,IAAA1nZ,KAAAzP,KAAAk3Z,WAGAymC,mBAAA,WACA39b,KAAA28b,sBAAA,GAEAiB,kBAAA,SAAAr2b,EAAAiwE,EAAAiwH,GACAznM,KAAAm3Z,SAAA5vZ,IACAvH,KAAAm3Z,SAAA,EAAA13Z,EAAAi2Z,YAAA11Z,KAAAm3Z,QAAA5vZ,EAAAm4J,WAAAn4J,EAAAu4J,aAAAv4J,EAAAy4J,eAGAynC,IACAznM,KAAA48b,qBAAAplX,GAGAx3E,KAAAm3Z,SAAAn3Z,KAAAk3Z,SAAAl3Z,KAAAk3Z,QAAAr1P,UAAA7hK,KAAAm3Z,QAAAt1P,YACA7hK,KAAAk3Z,QAAA,IAAAznZ,KAAAzP,KAAAm3Z,WAGA0mC,mBAAA,WACA79b,KAAA48b,sBAAA,GAKAkB,aAAA,WACA99b,KAAA27b,UAAA,EAAAl8b,EAAAq+W,UAAA99W,KAAA27b,UACA37b,KAAAwwb,eACAxwb,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA27b,YAGAoC,cAAA,WACA/9b,KAAA27b,UAAA,EAAAl8b,EAAAu+W,WAAAh+W,KAAA27b,UACA37b,KAAAwwb,eACAxwb,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA27b,YAGAqC,cAAA,WACAh+b,KAAAwwb,aAIAxwb,KAAA67b,WAAA,EAAAp8b,EAAAs+W,UAAA/9W,KAAA67b,YAHA77b,KAAA27b,UAAA,EAAAl8b,EAAAs+W,UAAA/9W,KAAA27b,UACA37b,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA27b,YAKAsC,eAAA,WACAj+b,KAAAwwb,aAIAxwb,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA67b,YAHA77b,KAAA27b,UAAA,EAAAl8b,EAAAw+W,WAAAj+W,KAAA27b,UACA37b,KAAA67b,WAAA,EAAAp8b,EAAAw+W,WAAAj+W,KAAA27b,YAQAuC,aAAA,WACAl+b,KAAA27b,UAAA,EAAAl8b,EAAAs+W,UAAA/9W,KAAA27b,WAEAwC,cAAA,WACAn+b,KAAA27b,UAAA,EAAAl8b,EAAAw+W,WAAAj+W,KAAA27b,WAEAyC,cAAA,WACAp+b,KAAA67b,WAAA,EAAAp8b,EAAAq+W,UAAA99W,KAAA67b,YAEAwC,eAAA,WACAr+b,KAAA67b,WAAA,EAAAp8b,EAAAu+W,WAAAh+W,KAAA67b,YAEA3Q,cAAA,WACA,IAAA1zW,EAAA1yE,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA9E,KAAAge,MAAA,QAAAhe,KAAAk3Z,QAAAl3Z,KAAAm3Z,SAAA3/U,IAEA26W,aAAA,SAAA5qb,GACA,OAAAsE,MAAAC,QAAAvE,SAAA,IAAAA,EAAA,OAAA9H,EAAAwtM,QAAA1lM,EAAA,QAAA9H,EAAAwtM,QAAA1lM,EAAA,KAAAA,EAAA,GAAAs6J,WAAAt6J,EAAA,GAAAs6J,YAAA,mBAAA7hK,KAAAg1b,eAAAh1b,KAAAg1b,aAAAztb,EAAA,MAAAvH,KAAAg1b,aAAAztb,EAAA,OAIA6sB,YAAewvY,WAAA0vB,EAAAv6a,QAAA68a,UAAAnC,EAAA16a,QAAA63R,QAAA/sE,EAAA9qN,QAAA4zZ,SAAA95V,EAAA95D,WAKf,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACA,IAKA+0E,GAAiB7wE,OALjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,kBAAwB8c,IAAKwkS,cAAA,SAAA3/H,GAA+BhwG,EAAAv2D,MAAA,iBAAyB9G,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,iDAAAc,QAC5Suib,cAAAlmX,EAAAz7D,OAAA4hb,SAAAnmX,EAAAshX,UACA8E,WAAApmX,EAAAw+W,UACKx+W,EAAAyxI,eAAmB9uM,EAAA,OAAYE,YAAA,kCAA4Cm9D,EAAAQ,GAAA,WAAAR,EAAA,UAAAr9D,EAAA,OAA8CE,YAAA,4BAAuCm9D,EAAA9E,GAAA8E,EAAA,mBAAAggX,EAAAxqb,GAA+C,OAAAmN,EAAA,UAAoBnN,MAAAqN,YAAA,4BAAAC,OAAuD7T,KAAA,UAAgBkc,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA+/W,oBAAAC,OAAoChgX,EAAA18D,GAAA08D,EAAA6vF,GAAAmwR,EAAAljZ,YAAkCkjC,EAAAO,KAAA59D,EAAA,OAAsBE,YAAA,0BAAoCm9D,EAAA,SAAAr9D,EAAA,OAA2BE,YAAA,sCAAgDF,EAAA,QAAaE,YAAA,uCAAiDF,EAAA,QAAaE,YAAA,2CAAqDF,EAAA,YAAiB0B,IAAA,WAAAxB,YAAA,+BAAAC,OAAiEwa,KAAA,QAAA6hD,SAAAa,EAAA0kX,WAAA76N,UAAA4J,YAAAzzJ,EAAAkU,EAAA,2BAAAlhF,MAAAgtE,EAAA6nX,gBAA6H9mM,UAAWprP,MAAA,SAAAq6K,GAAyBhwG,EAAA8oX,gBAAA94Q,EAAA,QAAmC0kD,OAAA,SAAA1kD,GAA2BhwG,EAAA+oX,iBAAA/4Q,EAAA,YAAsC,GAAArtK,EAAA,QAAiBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,mBAAAn1D,WAAA,uBAA4GhI,YAAA,2CAAuDF,EAAA,YAAiBE,YAAA,+BAAAC,OAAkDwa,KAAA,QAAA6hD,SAAAa,EAAA0kX,WAAA76N,UAAA4J,YAAAzzJ,EAAAkU,EAAA,2BAAAlhF,MAAAgtE,EAAA+nX,gBAA6H58a,IAAK6tB,MAAA,SAAAg3I,GAAyBhwG,EAAAooX,sBAAA,IAAiCrnM,UAAWrsB,OAAA,SAAA1kD,GAA0BhwG,EAAAgpX,iBAAAh5Q,EAAA,WAAsCrtK,EAAA,eAAoB0B,IAAA,gBAAAvB,OAA2Bujb,qBAAArmX,EAAAy+W,aAAAx7W,QAAAjD,EAAAooX,sBAAyEj9a,IAAKm7a,KAAAtmX,EAAAmpX,kBAAA39a,QAAA,SAAAwkK,GAAwDhwG,EAAA91D,MAAAq+a,cAAAp0b,OAAA6rE,EAAA0/W,gBAAgD,KAAA/8a,EAAA,QAAmBE,YAAA,wBAAkCF,EAAA,QAAaE,YAAA,gDAA0DF,EAAA,QAAaE,YAAA,2CAAqDF,EAAA,YAAiBE,YAAA,+BAAAC,OAAkDwa,KAAA,QAAA6hD,SAAAa,EAAA0kX,WAAA76N,UAAA4J,YAAAzzJ,EAAAkU,EAAA,yBAAAlhF,MAAAgtE,EAAA8nX,eAAAx3N,UAAAtwJ,EAAA2iV,SAAmJ5hK,UAAWprP,MAAA,SAAAq6K,GAAyBhwG,EAAA8oX,gBAAA94Q,EAAA,QAAmC0kD,OAAA,SAAA1kD,GAA2BhwG,EAAA+oX,iBAAA/4Q,EAAA,YAAsC,GAAArtK,EAAA,QAAiBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,mBAAAn1D,WAAA,uBAA4GhI,YAAA,2CAAuDF,EAAA,YAAiB0B,IAAA,WAAAxB,YAAA,+BAAAC,OAAiEwa,KAAA,QAAA6hD,SAAAa,EAAA0kX,WAAA76N,UAAA4J,YAAAzzJ,EAAAkU,EAAA,yBAAAlhF,MAAAgtE,EAAAgoX,eAAA13N,UAAAtwJ,EAAA2iV,SAAmJx3Y,IAAK6tB,MAAA,SAAAg3I,GAAyBhwG,EAAA2iV,UAAA3iV,EAAAqoX,sBAAA,KAAkDtnM,UAAWrsB,OAAA,SAAA1kD,GAA0BhwG,EAAAgpX,iBAAAh5Q,EAAA,WAAsCrtK,EAAA,eAAoB0B,IAAA,gBAAAvB,OAA2Bujb,qBAAArmX,EAAAy+W,aAAAx7W,QAAAjD,EAAAqoX,sBAAyEl9a,IAAKm7a,KAAAtmX,EAAAqpX,kBAAA79a,QAAA,SAAAwkK,GAAwDhwG,EAAA91D,MAAAo+a,cAAAn0b,OAAA6rE,EAAA0/W,gBAAgD,OAAA1/W,EAAAO,KAAA59D,EAAA,OAA6BE,YAAA,mEAA6EF,EAAA,OAAYE,YAAA,iCAA2CF,EAAA,UAAeE,YAAA,iDAAAC,OAAoE7T,KAAA,UAAgBkc,IAAKm1D,MAAAN,EAAAupX,gBAA0B5mb,EAAA,UAAeE,YAAA,+CAAAC,OAAkE7T,KAAA,UAAgBkc,IAAKm1D,MAAAN,EAAAwpX,iBAA2BxpX,EAAA,aAAAr9D,EAAA,UAAkCE,YAAA,kDAAAc,OAAqEs8D,eAAAD,EAAAmoX,iBAAsCrlb,OAAQ7T,KAAA,SAAAkwE,UAAAa,EAAAmoX,iBAAgDh9a,IAAKm1D,MAAAN,EAAA2pX,gBAA0B3pX,EAAAO,KAAAP,EAAA,aAAAr9D,EAAA,UAA2CE,YAAA,gDAAAc,OAAmEs8D,eAAAD,EAAAioX,kBAAuCnlb,OAAQ7T,KAAA,SAAAkwE,UAAAa,EAAAioX,kBAAiD98a,IAAKm1D,MAAAN,EAAA4pX,iBAA2B5pX,EAAAO,KAAA59D,EAAA,OAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAmnX,gBAAAxkb,EAAA,cAAwEG,OAAO0jb,iBAAA,QAAA74R,KAAA3tF,EAAAonX,SAAAV,gBAAA1mX,EAAAphE,aAAAmrb,WAAA/pX,EAAA2iV,QAAAqnC,WAAAhqX,EAAA4iV,QAAAqnC,cAAAjqX,EAAA0kX,WAAAiC,gBAAA3mX,EAAAygX,aAAAgG,oBAAAzmX,EAAAyvP,gBAAiOtkT,IAAK++a,YAAAlqX,EAAA6oX,kBAAAvC,KAAAtmX,EAAAipX,oBAAgE,GAAAtmb,EAAA,OAAgBE,YAAA,oEAA8EF,EAAA,OAAYE,YAAA,iCAA2Cm9D,EAAA,aAAAr9D,EAAA,UAAkCE,YAAA,iDAAAc,OAAoEs8D,eAAAD,EAAAmoX,iBAAsCrlb,OAAQ7T,KAAA,SAAAkwE,UAAAa,EAAAmoX,iBAAgDh9a,IAAKm1D,MAAAN,EAAA6pX,iBAA2B7pX,EAAAO,KAAAP,EAAA,aAAAr9D,EAAA,UAA2CE,YAAA,+CAAAc,OAAkEs8D,eAAAD,EAAAioX,kBAAuCnlb,OAAQ7T,KAAA,SAAAkwE,UAAAa,EAAAioX,kBAAiD98a,IAAKm1D,MAAAN,EAAA8pX,kBAA4B9pX,EAAAO,KAAA59D,EAAA,UAAwBE,YAAA,kDAAAC,OAAqE7T,KAAA,UAAgBkc,IAAKm1D,MAAAN,EAAAypX,iBAA2B9mb,EAAA,UAAeE,YAAA,gDAAAC,OAAmE7T,KAAA,UAAgBkc,IAAKm1D,MAAAN,EAAA0pX,kBAA4B/mb,EAAA,OAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAqnX,iBAAA1kb,EAAA,cAAgEG,OAAO0jb,iBAAA,QAAA74R,KAAA3tF,EAAAsnX,UAAAZ,gBAAA1mX,EAAAphE,aAAAmrb,WAAA/pX,EAAA2iV,QAAAqnC,WAAAhqX,EAAA4iV,QAAAqnC,cAAAjqX,EAAA0kX,WAAAiC,gBAAA3mX,EAAAygX,aAAAgG,oBAAAzmX,EAAAyvP,gBAAkOtkT,IAAK++a,YAAAlqX,EAAA6oX,kBAAAvC,KAAAtmX,EAAAipX,oBAAgE,SAAAjpX,EAAA,SAAAr9D,EAAA,OAAqCE,YAAA,4BAAsCF,EAAA,aAAkBE,YAAA,4BAAAC,OAA+Cwa,KAAA,OAAAruB,KAAA,QAA4Bkc,IAAKm1D,MAAAN,EAAAm+W,eAAyBn+W,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,sCAAAvxE,EAAA,aAAyFE,YAAA,4BAAAC,OAA+Cs8D,MAAA,GAAA9hD,KAAA,OAAA6hD,SAAAa,EAAAknX,aAAoD/7a,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA22W,oBAAsB32W,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,4CAAAlU,EAAAO,UAEt5Ln9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAuzb,EAAAn/b,EAAA,KAEAo/b,GAEAxzb,EAFAuzb,IAEsCvzb,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Ewzb,EAAA5lb,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAoqa,EAAA5lb,QAAAnW,KAAA+7b,EAAA5lb,UAGA5V,EAAA4V,QAAA4lb,EAAA5lb,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA28W,EAAA72W,EAFA33E,EAAA,KAMAo/b,EAAAznX,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAupK,QAAAyrQ,EAAAh1a,SAEAnW,KAAA,eAEA2/K,cAAA,eAEAz/K,OACAU,MACAA,KAAA2N,OACA4H,QAAA,gBAIA05D,aAAA,WACAzyE,KAAAi5W,MAAA0lF,EAAA5lb,WAMA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAq3b,EAAAr/b,EAAA,KACAs/b,EAAAt/b,EAAA6+C,EAAAwgZ,GACAE,EAAAv/b,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA0rX,EAAAtpb,EACAupb,EAAA,GATA,EAEA,KAEA,KAEA,MAUAv6Y,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAwsO,EAAA1mO,EAFA33E,EAAA,KAMAw+S,EAAA7mO,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAsB7E,IAAA4zb,EAAA,SAAA/8b,GACA,IAAAovB,GAAApvB,GAAA,IAAAnB,MAAA,KACA,OAAAuwB,EAAAnwB,QAAA,GAKAugJ,MAJA5nE,SAAAxoD,EAAA,OAKA6vI,QAJArnF,SAAAxoD,EAAA,QAQA,MAGA4ta,EAAA,SAAAC,EAAAC,GACA,IAAA9nV,EAAA2nV,EAAAE,GACA5nV,EAAA0nV,EAAAG,GAEAC,EAAA/nV,EAAA6pD,QAAA,GAAA7pD,EAAAoqC,MACA49S,EAAA/nV,EAAA4pD,QAAA,GAAA5pD,EAAAmqC,MAEA,OAAA29S,IAAAC,EACA,EAGAD,EAAAC,EAAA,MAOAC,EAAA,SAAAr9b,EAAAslB,GACA,IAAA24T,EAAA8+G,EAAA/8b,GACAs9b,EAAAP,EAAAz3a,GAEAmd,GACA+8G,MAAAy+L,EAAAz+L,MACAyf,QAAAg/K,EAAAh/K,SASA,OANAx8H,EAAAw8H,SAAAq+R,EAAAr+R,QACAx8H,EAAA+8G,OAAA89S,EAAA99S,MAEA/8G,EAAA+8G,OAAAz5I,KAAAkwC,MAAAxT,EAAAw8H,QAAA,IACAx8H,EAAAw8H,QAAAx8H,EAAAw8H,QAAA,GAjBA,SAAAj/J,GACA,OAAAA,EAAAw/I,MAAA,OAAAx/I,EAAAw/I,MAAAx/I,EAAAw/I,OAAA,KAAAx/I,EAAAi/J,QAAA,OAAAj/J,EAAAi/J,QAAAj/J,EAAAi/J,SAkBAqxC,CAAA7tK,IAGAthC,EAAA4V,SACAqb,YAAeirR,YAAAzB,EAAA7kS,SAEfwC,OACAhU,MAAA,SAAAgG,GACA,IAAAsP,EAAA7c,KAEAuN,GACAvN,KAAAuc,UAAA,WACA,OAAAM,EAAAokS,qBAKAllS,SACAo4D,YAAA,SAAAxnE,GACAA,EAAA+mE,UACA1zE,KAAAge,MAAA,OAAArR,EAAApF,QAGAmrb,YAAA,WACA1yb,KAAAge,MAAA,cAEAijS,eAAA,WACA,IAAAorF,EAAAvnY,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,eAEAo8S,EAAAlhT,KAAAye,MAAAm9B,OAAA2H,cAAA,8BACA,EAAAw6P,EAAAhlS,SAAAmoS,IAAA39P,cAAA8oV,KAEAjrF,gBAAA,WACA,IAAAljS,EAAAle,KAEA0qB,GAEO,IAFP1qB,KAAAkS,MAAAvB,IAAA,SAAAhE,GACA,OAAAA,EAAApF,QACOzH,QAAAE,KAAAuH,OACPg4b,GAEO,IAFPv/b,KAAAkS,MAAAvB,IAAA,SAAAhE,GACA,OAAAA,EAAApF,QACOzH,QAAAE,KAAAmT,cACP8J,GAAAyN,EAAA,YAAA60a,GAAA,gDACAv/b,KAAAuc,UAAA,WACA,OAAA2B,EAAA+iS,eAAAhkS,MAGA85a,WAAA,SAAAzva,GAOA,IANA,IAAApV,EAAAlS,KAAAkS,MACAjR,EAAAiR,EAAAjR,OACAmyH,EAAAlhH,EAAAjR,OACA2L,EAAAsF,EAAAvB,IAAA,SAAAhE,GACA,OAAAA,EAAApF,QACOzH,QAAAE,KAAAuH,OACP6rH,KAEA,IAAAlhH,EADAtF,KAAA0a,EAAArmB,MACAyyE,SAEA,YADA1zE,KAAAge,MAAA,OAAA9L,EAAAtF,GAAArF,OAAA,IAKA4qb,aAAA,SAAAjwR,GACA,OAIO,IAJPliK,KAAAkS,MAAAkV,OAAA,SAAAza,GACA,OAAAA,EAAA+mE,WACO/iE,IAAA,SAAAhE,GACP,OAAAA,EAAApF,QACOzH,QAAAoiK,IAEPi0Q,cAAA,SAAA5+W,GACA,IAAA2kN,EAAA3kN,EAAA2kN,QACA,QAAAA,GAAA,KAAAA,EAAA,CACA,IACAx5O,GADuB0yZ,GAAA,EAAA9nO,IAAA,GACvB4uD,EAAAt0Q,YAGA,OAFA5H,KAAA+2b,WAAAr0Z,QACA60B,EAAAitH,qBAMA1zK,KAAA,WACA,OACAk1M,YAAA,GACAxjN,MAAA,QACA0uB,IAAA,QACA5J,KAAA,QACA/f,MAAA,GACA4L,aAAA,GACAqkE,SAAA,EACAgoX,QAAA,GACAC,QAAA,GACAzmb,MAAA,IAKA6C,UACA3J,MAAA,WACA,IAAA1P,EAAAxC,KAAAwC,MACA0uB,EAAAlxB,KAAAkxB,IACA5J,EAAAtnB,KAAAsnB,KAEAvW,KAEA,GAAAvO,GAAA0uB,GAAA5J,EAEA,IADA,IAAAid,EAAA/hC,EACAw8b,EAAAz6Z,EAAArT,IAAA,GACAngB,EAAAxP,MACAgG,MAAAg9B,EACAmvC,SAAAsrX,EAAAz6Z,EAAAvkC,KAAAw/b,SAAA,aAAAR,EAAAz6Z,EAAAvkC,KAAAy/b,SAAA,gBAEAl7Z,EAAA86Z,EAAA96Z,EAAAjd,GAIA,OAAAvW,MAOA,SAAA7N,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,kBAAwB8c,IAAK+kS,eAAAlwO,EAAA6sO,gBAAA8C,cAAA,SAAA3/H,GAAkEhwG,EAAAv2D,MAAA,iBAAyB9G,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsExG,IAAA,SAAAxB,YAAA,wCAAAc,MAAAq8D,EAAAyxI,YAAAztM,OAAiGS,MAAAu7D,EAAAv7D,MAAA,QAA4B9B,EAAA,gBAAqBG,OAAO6zM,SAAA,GAAA05F,aAAA,6BAAuDrwO,EAAA9E,GAAA8E,EAAA,eAAA5nE,GAAmC,OAAAuK,EAAA,OAAiBE,YAAA,mBAAAc,OAAsCwS,SAAA6pD,EAAAhtE,QAAAoF,EAAApF,MAAAmsE,SAAA/mE,EAAA+mE,SAAA36D,QAAApM,EAAApF,QAAAgtE,EAAAphE,cAAwGkE,OAAQq8D,SAAA/mE,EAAA+mE,UAAyBh0D,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAJ,YAAAxnE,OAAwB4nE,EAAA18D,GAAA08D,EAAA6vF,GAAAz3J,EAAApF,cAA+B,MAEt0BoQ,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAu0b,EAAAngc,EAAA,KAEAogc,GAEAx0b,EAFAu0b,IAEsCv0b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Ew0b,EAAA5mb,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAora,EAAA5mb,QAAAnW,KAAA+8b,EAAA5mb,UAGA5V,EAAA4V,QAAA4mb,EAAA5mb,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA28W,EAAA72W,EAFA33E,EAAA,KAMA+zb,EAAAp8W,EAFA33E,EAAA,KAMAqgc,EAAA1oX,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAupK,QAAAyrQ,EAAAh1a,SAEAnW,KAAA,eAEAE,OACA82J,QAAAngJ,QACAu5a,aAAAv5a,SAGA3I,KAAA,WACA,OACAtN,KAAA,KAKA+X,OACAq+I,QAAA,SAAAimS,GACA7/b,KAAAoub,QACApub,KAAAqub,gBACArub,KAAAwD,KAAAq8b,EAAA,mBACA7/b,KAAAi5W,MAAA4mF,EAAAD,EAAA7mb,QAAAu6a,EAAAv6a,QACA/Y,KAAAsub,gBAEAtub,KAAAwD,KAAAq8b,EAAA,mBACA7/b,KAAAi5W,MAAA4mF,EAAAD,EAAA7mb,QAAAu6a,EAAAv6a,WAKA+G,QAAA,WACA9f,KAAAwD,KAAAxD,KAAA45J,QAAA,mBACA55J,KAAAi5W,MAAAj5W,KAAA45J,QAAAgmS,EAAA7mb,QAAAu6a,EAAAv6a,WAMA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAu4b,EAAAvgc,EAAA,KACAwgc,EAAAxgc,EAAA6+C,EAAA0hZ,GACAE,EAAAzgc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA4sX,EAAAxqb,EACAyqb,EAAA,GATA,EAEA,KAEA,KAEA,MAUAz7Y,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAA3xE,EAAAF,EAAA,IAIAm+S,EAAAxmO,EAFA33E,EAAA,IAMA62b,EAAAl/W,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA80b,GAAA,EAAAxgc,EAAAmsK,WAAA,uBA0DAs0R,GAAA,EAAAzgc,EAAAmsK,WAAA,uBAMAu0R,EAAA,SAAAj+R,GACA,SAAAziK,EAAAk2Z,YAAAuqC,EAAAh+R,EAAA1C,cAAA0C,EAAA/C,WAAA+C,EAAAnD,YAIAqhS,EAAA,SAAAl+R,EAAAw0P,GACA,WAAAjnZ,KAAA1H,KAAAC,IAAAk6J,EAAAL,UAAA60P,EAAAypC,EAAAj+R,GAAAL,aAGA1+J,EAAA4V,SACAupK,QAAAo7H,EAAA3kS,SAEAqb,YAAeiia,YAAAD,EAAAr9a,SAEf8C,UACA66a,YAAA,WACA,YAAA12b,KAAA0I,QAAA,IAAA5I,QAAA,OAEA4iC,OAAA,WACA,OAAA1iC,KAAA02b,YAAA,MAEAJ,QAAA,WACA,OAAAt2b,KAAAy2b,eAAA,GAAAz2b,KAAA0iC,OAAA1iC,KAAAye,MAAA4hb,WAAArgc,KAAAye,MAAA6hb,YAEA7E,YAAA,WACA,OAAAz7b,KAAAk3Z,QAAAr1P,UAAA7hK,KAAAm3Z,QAAAt1P,WAEA+0R,SAAA,WACA,YAAA52b,KAAA0I,QAAA,IAAA5I,QAAA,UACA,KAAAE,KAAA0I,QAAA,IAAA5I,QAAA,SACA,KAIAgR,KAAA,WACA,OACAk1M,YAAA,GACAkxM,QAAA,IAAAznZ,KACA0nZ,QAAA,IAAA1nZ,KACAlI,SACAu+N,UAAA,IAAAr2N,KAAA,IAAAA,MACA0D,aAAA,KACAzK,OAAA,WACA8uE,SAAA,EACAi/W,gBAAA,KACAzD,cAAA,IAKAz3a,OACAhU,MAAA,SAAA+6P,GACAz2P,MAAAC,QAAAw2P,IACAtiQ,KAAAk3Z,QAAA,IAAAznZ,KAAA6yP,EAAA,IACAtiQ,KAAAm3Z,QAAA,IAAA1nZ,KAAA6yP,EAAA,KAEAz2P,MAAAC,QAAA9L,KAAAmT,eACAnT,KAAAk3Z,QAAA,IAAAznZ,KAAAzP,KAAAmT,aAAA,IACAnT,KAAAm3Z,QAAA,IAAA1nZ,KAAAzP,KAAAmT,aAAA,KACSnT,KAAAmT,cACTnT,KAAAk3Z,QAAA,IAAAznZ,KAAAzP,KAAAmT,cACAnT,KAAAm3Z,QAAAipC,EAAA,IAAA3wb,KAAAzP,KAAAmT,cAAA,QAEAnT,KAAAk3Z,QAAA,IAAAznZ,KACAzP,KAAAm3Z,QAAAipC,EAAA,IAAA3wb,KAAA,QAIA+nE,QAAA,SAAAjqE,GACA,IAAAsP,EAAA7c,KAEAuN,IACAvN,KAAA8lO,SAAA9lO,KAAAuH,MACAvH,KAAAuc,UAAA,WACA,OAAAM,EAAA4B,MAAA4hb,WAAA9J,gBAAA,cAMAx6a,SACA22a,YAAA,WACA1yb,KAAAge,MAAA,cAEA64a,aAAA,WACA72b,KAAAge,MAAA,OAAAhe,KAAA8lO,WAEAy6N,gBAAA,SAAAr+R,GACAliK,KAAAk3Z,SAAA,EAAAz3Z,EAAA81Z,mBAAArzP,GACAliK,KAAA4mO,gBAEA45N,gBAAA,SAAAt+R,GACAliK,KAAAm3Z,SAAA,EAAA13Z,EAAA81Z,mBAAArzP,GACAliK,KAAA4mO,gBAEAA,aAAA,WAnGA,IAAA1kE,EAoGAliK,KAAAmyb,cAAAnyb,KAAAk3Z,QAAAl3Z,KAAAm3Z,YACAn3Z,KAAAye,MAAA4hb,WAAAjpC,mBArGAl1P,EAqGAliK,KAAAk3Z,SApGA,EAAAz3Z,EAAAk2Z,YAAAsqC,EAAA/9R,EAAA1C,cAAA0C,EAAA/C,WAAA+C,EAAAnD,YAoGA/+J,KAAAm3Z,UACAn3Z,KAAAye,MAAA6hb,WAAAlpC,kBAAAp3Z,KAAAk3Z,QAAAipC,EAAAngc,KAAAm3Z,WACAn3Z,KAAAge,MAAA,QAAAhe,KAAAk3Z,QAAAl3Z,KAAAm3Z,UAAA,KAGAspC,qBAAA,SAAAj+b,EAAA0uB,GACAlxB,KAAAge,MAAA,eAAAxb,EAAA0uB,EAAA,OACAlxB,KAAAy2b,gBAAAj0b,EAAA0uB,IAEAwva,qBAAA,SAAAl+b,EAAA0uB,GACAlxB,KAAAge,MAAA,eAAAxb,EAAA0uB,EAAA,OACAlxB,KAAAy2b,gBAAAj0b,EAAAxC,KAAA0iC,OAAAxR,EAAAlxB,KAAA0iC,SAEAwoZ,cAAA,WACA,IAAA1zW,EAAA1yE,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA67b,EAAA3gc,KAAAye,MAAA4hb,WAAAjpC,gBACAwpC,EAAA5gc,KAAAye,MAAA6hb,WAAAlpC,gBAEAp3Z,KAAAk3Z,SAAA,EAAAz3Z,EAAA61Z,gBAAAt1Z,KAAAk3Z,QAAAypC,EAAA3gc,KAAA0I,QACA1I,KAAAm3Z,SAAA,EAAA13Z,EAAA61Z,gBAAAt1Z,KAAAm3Z,QAAAypC,EAAA5gc,KAAA0I,QAEA1I,KAAAge,MAAA,QAAAhe,KAAAk3Z,QAAAl3Z,KAAAm3Z,SAAA3/U,IAEAs7W,eAAA,WACA9yb,KAAAye,MAAA4hb,WAAAvN,iBACA9yb,KAAAye,MAAA6hb,WAAAxN,kBAEAgE,qBAAA,SAAAxva,GACA,IAAAuF,EAAA7sB,KAAA02b,aAAA,2BACAtwI,GAAA,mBAAArxS,OAAA/U,KAAA02b,aAAA,eAEAjyZ,GADA5X,EAAA/sB,QAAAE,KAAAy2b,eAAA,IACAnva,EAAAuF,EAAA5rB,QAAA4rB,EAAA5rB,OACA4/b,EAAAh0a,EAAA5rB,OAAA,EACAwjC,EAAAo8Z,EACA7gc,KAAAye,MAAA4hb,WAAA9J,gBAAAnwI,EAAA3hR,IAEAzkC,KAAAye,MAAA6hb,WAAA/J,gBAAAnwI,EAAA3hR,EAAAo8Z,KAGA1O,aAAA,SAAAjwR,GACA,OAAAr2J,MAAAC,QAAAo2J,KAAA,EAAAziK,EAAA41Z,iBAAAr1Z,KAAAk3Z,QAAAl3Z,KAAAye,MAAA4hb,WAAAjpC,mBAAA,EAAA33Z,EAAA41Z,iBAAAr1Z,KAAAm3Z,QAAAn3Z,KAAAye,MAAA6hb,WAAAlpC,kBAEA+e,cAAA,SAAA5+W,GACA,IAAA2kN,EAAA3kN,EAAA2kN,QACAkqC,GAAqB94F,IAAA,EAAA8nO,GAAA,EAAAjxQ,IAAA,EAAAkxQ,GAAA,GAGrB,QAAAn5K,GAAA,KAAAA,EAAA,CACA,IAAA50P,EAAA8+R,EAAAlqC,GAGA,OAFAl8Q,KAAA82b,qBAAAxva,QACAiwC,EAAAo6H,iBAKA,QAAAuqF,GAAA,KAAAA,EAAA,CACA,IAAAp7O,EAAAslR,EAAAlqC,GAGA,OAFAl8Q,KAAAs2b,QAAAS,WAAAj2Z,QACAy2B,EAAAo6H,sBASA,SAAAzuL,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,kBAAwB8c,IAAKwkS,cAAA,SAAA3/H,GAA+BhwG,EAAAv2D,MAAA,iBAAyB9G,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,iDAAAc,MAAAq8D,EAAAyxI,cAAqF9uM,EAAA,OAAYE,YAAA,kCAA4CF,EAAA,OAAYE,YAAA,+BAAyCF,EAAA,OAAYE,YAAA,iCAA2Cm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,+BAAAvxE,EAAA,OAA+DE,YAAA,oDAAAc,OAAuE2/a,cAAAtjX,EAAAmiX,YAAAoK,WAAAvsX,EAAAy+W,gBAAgE97a,EAAA,gBAAqB0B,IAAA,aAAAvB,OAAwB2gb,eAAAzjX,EAAAmiX,YAAAuB,aAAA1jX,EAAAqiX,SAAAmB,gBAAAxjX,EAAAy+W,aAAA9wR,KAAA3tF,EAAA2iV,SAA6Gx3Y,IAAKupN,OAAA10J,EAAAgsX,gBAAArI,eAAA3jX,EAAAksX,yBAAsE,KAAAvpb,EAAA,OAAkBE,YAAA,+BAAyCF,EAAA,OAAYE,YAAA,iCAA2Cm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,6BAAAvxE,EAAA,OAA6DE,YAAA,oDAAAc,OAAuE2/a,cAAAtjX,EAAAmiX,YAAAoK,WAAAvsX,EAAAy+W,gBAAgE97a,EAAA,gBAAqB0B,IAAA,aAAAvB,OAAwB2gb,eAAAzjX,EAAAmiX,YAAAuB,aAAA1jX,EAAAqiX,SAAAmB,gBAAAxjX,EAAAy+W,aAAA9wR,KAAA3tF,EAAA4iV,SAA6Gz3Y,IAAKupN,OAAA10J,EAAAisX,gBAAAtI,eAAA3jX,EAAAmsX,yBAAsE,OAAAxpb,EAAA,OAAoBE,YAAA,0BAAoCF,EAAA,UAAeE,YAAA,4BAAAC,OAA+C7T,KAAA,UAAgBkc,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAsiX,mBAAqBtiX,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,4BAAAvxE,EAAA,UAA+DE,YAAA,6BAAAC,OAAgD7T,KAAA,SAAAkwE,SAAAa,EAAAknX,aAA2C/7a,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA22W,oBAAsB32W,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,oCAEj2D9wE,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAq0I,EAAAvuI,EAFA33E,EAAA,MAMAwhc,EAAA7pX,EAFA33E,EAAA,MAQA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7E+rE,EAFA33E,EAAA,IAMAwZ,QAAAq0P,UAAA,UAAA2zL,EAAAhob,SAGA0sM,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAA84O,UAAA,UAAA2zL,EAAAhob,SACAub,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAEA0sM,EAAA1sM,QAAAq0P,UAAA2zL,EAAAhob,QAEA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAE,EAAA3hc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACA2rb,EAAA,GATA,EAEA,KAEA,KAEA,MAUA38Y,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAQAjmE,EARAs4S,EAAAlkT,EAAA,GAEAomN,GAMAx6M,EANAs4S,IAMsCt4S,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAJ7EgjD,EAAA5uD,EAAA,GAEAE,EAAAF,EAAA,GA4BA4D,EAAA4V,SACAnW,KAAA,YAEA0/K,QAAAqjC,EAAA5sM,SAEAjW,OACAmP,SACAzO,KAAA2N,OACA4H,QAAA,QACA8pJ,UAAA,SAAAt7J,GACA,yCAAAzH,QAAAyH,IAAA,IAGAkwE,WACAj0E,KAAAuX,OACAhC,QAAA,GAEAmB,MAAA/I,OACAuiE,SAAAj6D,QACA2mC,QAAAjvC,OACAwqC,aACAqqK,YAAA70M,OACA6H,SACAq7L,cACAt7L,SAAA,GAEAuiC,aACA93C,KAAAuX,OACAhC,QAAA,GAEA2qJ,YACAlgK,KAAA2N,OACA4H,QAAA,mBAIA8C,UACAuqM,UAAA,WACA,uBAAA3mN,EAAA4mN,gBAGA9qM,OACAi5L,WAAA,SAAAjnM,GACAvN,KAAA0zE,WAGAnmE,EAAAvN,KAAAge,MAAA,QAAAhe,KAAAge,MAAA,WAIA+B,QAAA,WACA,IAAAlD,EAAA7c,KAEA27C,EAAA37C,KAAA+0M,aAAA/0M,KAAA27C,WAAA37C,KAAAye,MAAAk9B,UACAC,EAAA57C,KAAA47C,QAAA57C,KAAAye,MAAAm9B,QAEAD,GAAA37C,KAAA8Y,OAAA6iC,WAAA37C,KAAA8Y,OAAA6iC,UAAA,KACAA,EAAA37C,KAAA+0M,aAAA/0M,KAAA8Y,OAAA6iC,UAAA,GAAAq5J,KAGAr5J,KACA,EAAAwS,EAAA6rB,UAAAr+B,EAAA,yBACAA,EAAAjV,aAAA,mBAAA1mC,KAAAomN,WACAzqK,EAAAjV,aAAA,cACAkV,EAAAlV,aAAA,cAEA,UAAA1mC,KAAAiS,WACA,EAAAk8C,EAAAzuC,IAAAi8B,EAAA,qBACA9+B,EAAAqqM,cACA,IAAA3nK,EAAA5D,EAAA09M,QACA95M,GAAA,mBAAAA,EAAAhS,OACAgS,EAAAhS,WAGA,EAAA4gB,EAAAzuC,IAAAk8B,EAAA,UAAA57C,KAAAknN,cACA,EAAA/4J,EAAAzuC,IAAAi8B,EAAA,WAAA37C,KAAAmnN,aACA,EAAAh5J,EAAAzuC,IAAAk8B,EAAA,WAAA57C,KAAAmnN,cAEA,EAAAh5J,EAAAzuC,IAAAi8B,EAAA,UAAA37C,KAAAm2a,gBACA,EAAAhoX,EAAAzuC,IAAAi8B,EAAA,QAAA37C,KAAAm0E,cAEA,UAAAn0E,KAAAiS,UACA,EAAAk8C,EAAAzuC,IAAAi8B,EAAA,QAAA37C,KAAAmhc,WACA,EAAAhzY,EAAAzuC,IAAA7P,SAAA,QAAA7P,KAAAohc,sBACK,UAAAphc,KAAAiS,UACL,EAAAk8C,EAAAzuC,IAAAi8B,EAAA,aAAA37C,KAAA6lb,mBACA,EAAA13X,EAAAzuC,IAAAk8B,EAAA,aAAA57C,KAAA6lb,mBACA,EAAA13X,EAAAzuC,IAAAi8B,EAAA,aAAA37C,KAAA88a,mBACA,EAAA3uX,EAAAzuC,IAAAk8B,EAAA,aAAA57C,KAAA88a,mBACK,UAAA98a,KAAAiS,UACL0pC,EAAA4H,cAAA,qBACA,EAAA4K,EAAAzuC,IAAAi8B,EAAA,UAAA37C,KAAAqhc,SACA,EAAAlzY,EAAAzuC,IAAAi8B,EAAA,WAAA37C,KAAAo6E,YAEA,EAAAjsB,EAAAzuC,IAAAi8B,EAAA,YAAA37C,KAAAqhc,SACA,EAAAlzY,EAAAzuC,IAAAi8B,EAAA,UAAA37C,KAAAo6E,YAMAr+D,SACAolb,SAAA,WACAnhc,KAAAw0M,YAAAx0M,KAAAw0M,YAEA6sP,OAAA,WACArhc,KAAAw0M,YAAA,GAEAp6H,QAAA,WACAp6E,KAAAw0M,YAAA,GAEA0S,YAAA,YACA,EAAA/4J,EAAA6rB,UAAAh6E,KAAA+0M,aAAA,YACA,WAAA/0M,KAAAiS,UAAAjS,KAAAw0M,YAAA,IAEArgI,YAAA,YACA,EAAAhmB,EAAAosB,aAAAv6E,KAAA+0M,aAAA,aAEAoS,WAAA,YACA,EAAAh5J,EAAAosB,aAAAv6E,KAAA+0M,aAAA,YACA,WAAA/0M,KAAAiS,UAAAjS,KAAAw0M,YAAA,IAEAqxO,iBAAA,WACA,IAAA3na,EAAAle,KAEAqM,aAAArM,KAAAw/Y,QACAx/Y,KAAAy3E,UACAz3E,KAAAw/Y,OAAAlzY,WAAA,WACA4R,EAAAs2L,YAAA,GACSx0M,KAAAy3E,WAETz3E,KAAAw0M,YAAA,GAGA2hO,cAAA,SAAA32Z,GACA,KAAAA,EAAA08P,SAAA,WAAAl8Q,KAAAiS,SAEAjS,KAAAo6E,WAGA0iW,iBAAA,WACA,IAAA99Z,EAAAhf,KAEAqM,aAAArM,KAAAw/Y,QACAx/Y,KAAAw/Y,OAAAlzY,WAAA,WACA0S,EAAAw1L,YAAA,GACO,MAEP4sP,oBAAA,SAAAj9b,GACA,IAAAw3C,EAAA37C,KAAA27C,WAAA37C,KAAAye,MAAAk9B,UACAC,EAAA57C,KAAA47C,QAAA57C,KAAAye,MAAAm9B,QAEAD,GAAA37C,KAAA8Y,OAAA6iC,WAAA37C,KAAA8Y,OAAA6iC,UAAA,KACAA,EAAA37C,KAAA+0M,aAAA/0M,KAAA8Y,OAAA6iC,UAAA,GAAAq5J,KAEAh1M,KAAA0c,KAAAi/B,IAAA37C,KAAA0c,IAAA8mC,SAAAr/C,EAAA5D,UAAAo7C,EAAA6H,SAAAr/C,EAAA5D,SAAAq7C,MAAA4H,SAAAr/C,EAAA5D,UACAP,KAAAw0M,YAAA,IAEA8sP,iBAAA,WACAthc,KAAAge,MAAA,gBAEAujb,iBAAA,WACAvhc,KAAAge,MAAA,eACAhe,KAAAo1M,cAIAmS,UAAA,WACA,IAAA5rK,EAAA37C,KAAA27C,WAEA,EAAAwS,EAAAkC,KAAA1U,EAAA,QAAA37C,KAAAmhc,WACA,EAAAhzY,EAAAkC,KAAA1U,EAAA,UAAA37C,KAAAo6E,UACA,EAAAjsB,EAAAkC,KAAA1U,EAAA,YAAA37C,KAAAqhc,SACA,EAAAlzY,EAAAkC,KAAA1U,EAAA,UAAA37C,KAAAqhc,SACA,EAAAlzY,EAAAkC,KAAA1U,EAAA,WAAA37C,KAAAo6E,UACA,EAAAjsB,EAAAkC,KAAA1U,EAAA,YAAA37C,KAAAqhc,SACA,EAAAlzY,EAAAkC,KAAA1U,EAAA,UAAA37C,KAAAo6E,UACA,EAAAjsB,EAAAkC,KAAA1U,EAAA,aAAA37C,KAAA88a,mBACA,EAAA3uX,EAAAkC,KAAA1U,EAAA,aAAA37C,KAAA6lb,mBACA,EAAA13X,EAAAkC,KAAAxgD,SAAA,QAAA7P,KAAAohc,wBAMA,SAAAl+b,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,QAAAA,EAAA,cAAmCG,OAAOzU,KAAA2xE,EAAAmvF,YAAsBhkJ,IAAK86a,cAAAjmX,EAAA+sX,iBAAAp9I,cAAA3vO,EAAAgtX,oBAAuErqb,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,OAAAgtE,EAAAb,UAAAa,EAAAigI,WAAAp1L,WAAA,4BAA0GxG,IAAA,SAAAxB,YAAA,uBAAAc,OAAAq8D,EAAAyxI,YAAAzxI,EAAAn0B,SAAA,qBAAA7nC,OAAsHS,MAAAu7D,EAAAv7D,MAAA,MAA0B3B,OAAS2sJ,KAAA,UAAAtiK,GAAA6yE,EAAA6xI,UAAAS,cAAAtyI,EAAAb,WAAAa,EAAAigI,WAAA,kBAAwGjgI,EAAA,MAAAr9D,EAAA,OAAwBE,YAAA,oBAAAyxN,UAA0CloL,YAAA4zB,EAAA6vF,GAAA7vF,EAAAr6D,UAAiCq6D,EAAAO,KAAAP,EAAAQ,GAAA,WAAAR,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAn0B,aAAA,KAAAm0B,EAAAQ,GAAA,kBAE3rBp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACA,IAAAowX,EAAA,SAAA/gc,EAAA4sQ,EAAAvmD,GACA,IAAA54M,EAAAm/P,EAAAjuP,WAAAiuP,EAAA9lQ,MAAA8lQ,EAAAnoL,IACAtpC,EAAAkrK,EAAAh5J,QAAArvC,MAAAvQ,GACA0tC,IACA/vC,MAAAC,QAAA8vC,GACAA,EAAA,GAAAn9B,MAAAk9B,UAAAl7C,EAEAm7C,EAAAn9B,MAAAk9B,UAAAl7C,IAKA0C,EAAA4V,SACAvO,KAAA,SAAA/J,EAAA4sQ,EAAAvmD,GACA06O,EAAA/gc,EAAA4sQ,EAAAvmD,IAEAs+B,SAAA,SAAA3kP,EAAA4sQ,EAAAvmD,GACA06O,EAAA/gc,EAAA4sQ,EAAAvmD,MAMA,SAAA5jN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAu0I,EAAAzuI,EAFA33E,EAAA,IAMAqmN,EAAA1uI,EAFA33E,EAAA,KAIA4uD,EAAA5uD,EAAA,GAEAsmN,EAAAtmN,EAAA,IAEAE,EAAAF,EAAA,GAIA03E,EAAAC,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,YAEA0/K,QAAAqjC,EAAA5sM,SAEAjW,OACA20E,WACAj0E,KAAAuX,OACAhC,QAAA,GAEA26D,SAAAj6D,QACAqsM,OAAArsM,QACAssM,QACAviN,KAAA2N,OACA4H,QAAA,QAEAuiC,aACA93C,KAAAuX,OACAhC,QAAA,GAEAitM,YAAA70M,OACAivC,QAAAjvC,OACAkjM,cACAt7L,SAAA,GAEA2qJ,YACAlgK,KAAA2N,OACA4H,QAAA,qBAEAw7L,eACAx7L,QAAA,WACA,OACAmiC,kBAAA,GACAF,iBAAA,KAIA5lB,WACA5xB,KAAAiW,QACAV,SAAA,GAEAktM,WACAziN,KAAAuX,OACAhC,QAAA,IAIAjI,KAAA,WACA,OACAo1M,eAAA,KACAC,UAAA,IAIAtqM,UACAuqM,UAAA,WACA,uBAAA3mN,EAAA4mN,gBAGA5zI,aAAA,WACA,IAAA51D,EAAA7c,KAEAA,KAAAk5E,YAEAl5E,KAAAsmN,SAAA,IAAArvI,EAAAl+D,SACAjI,MAAaooD,KAAA,IACbz1D,OAAA,SAAAwU,GACA,OAAAjY,KAAAk5D,QAEKqtJ,SAELvmN,KAAAwmN,eAAA,EAAAZ,EAAA7sM,SAAA,eACA,OAAA8D,EAAA4pM,wBAGAhjN,OAAA,SAAAwU,GACA,IAAAiG,EAAAle,KAyCA,GAvCAA,KAAAsmN,WACAtmN,KAAAsmN,SAAAptJ,KAAAjhD,EACA,cAEAZ,OACAzU,KAAA5C,KAAA0jK,YAEAhkJ,IACAgnM,WAAA1mN,KAAAo1M,aAGAn9L,EACA,OAEAyH,IACAinM,WAAA,WACAzoM,EAAA0oM,kBAAA,GAA+C1oM,EAAAsoM,iBAE/CliC,WAAA,WACApmK,EAAA0oM,kBAAA,KAIAhuM,IAAA,SACAvB,OAAoB2sJ,KAAA,UACpBtiK,GAAA1B,KAAAomN,UACAS,cAAA7mN,KAAA0zE,WAAA1zE,KAAAw0M,WAAA,gBAEApwB,aACAxhL,KAAA,OACA2E,OAAAvH,KAAA0zE,UAAA1zE,KAAAw0M,aAGAt8L,OAAA,2BAAAlY,KAAA+lN,OAAA/lN,KAAAgmN,eACAhmN,KAAA8Y,OAAAsnC,SAAApgD,KAAAogD,cAKApgD,KAAA8Y,OAAAC,UAAA/Y,KAAA8Y,OAAAC,QAAA9X,OAAA,OAAAjB,KAAA8Y,OAAAC,QAEA,IAAA+tM,GAAA,EAAAjB,EAAAkB,wBAAA/mN,KAAA8Y,OAAAC,SAEA,IAAA+tM,EAAA,OAAAA,EAEA,IAAAh2M,EAAAg2M,EAAAh2M,KAAAg2M,EAAAh2M,SAGA,OAFAA,EAAAsG,YAAApX,KAAAgnN,YAAAl2M,EAAAsG,YAAA,cAEA0vM,GAEA/mM,QAAA,WACA,IAAAf,EAAAhf,KAEAA,KAAA+0M,aAAA/0M,KAAA0c,IACA,IAAA1c,KAAA0c,IAAA28D,WACAr5E,KAAA0c,IAAAgqB,aAAA,mBAAA1mC,KAAAomN,WACApmN,KAAA0c,IAAAgqB,aAAA,eACA,EAAAynB,EAAAzuC,IAAA1f,KAAA+0M,aAAA,aAAA/0M,KAAAqF,OACA,EAAA8oD,EAAAzuC,IAAA1f,KAAA+0M,aAAA,aAAA/0M,KAAA+rM,OACA,EAAA59I,EAAAzuC,IAAA1f,KAAA+0M,aAAA,mBACA,GAAA/1L,EAAAlG,OAAAC,SAAAiG,EAAAlG,OAAAC,QAAA9X,OAAA,CAIA,IAAAs+C,EAAAvgC,EAAAlG,OAAAC,QAAA,GAAAkuM,kBACA1nK,KAAAhS,MACAgS,EAAAhS,QAEAvuB,EAAAkoM,mBAPAloM,EAAAkoM,iBAUA,EAAA/4J,EAAAzuC,IAAA1f,KAAA+0M,aAAA,OAAA/0M,KAAAmnN,aACA,EAAAh5J,EAAAzuC,IAAA1f,KAAA+0M,aAAA,QAAA/0M,KAAAonN,kBAIA7rM,OACA4qM,SAAA,SAAA54M,GACAA,GACA,EAAA4gD,EAAA6rB,UAAAh6E,KAAA+0M,aAAA,aAEA,EAAA5mJ,EAAAosB,aAAAv6E,KAAA+0M,aAAA,cAIAh5L,SACA1W,KAAA,WACArF,KAAA4mN,kBAAA,GACA5mN,KAAAqnN,oBAEAtb,KAAA,WACA/rM,KAAA4mN,kBAAA,GACA5mN,KAAAwmN,iBAEAU,YAAA,WACAlnN,KAAAmmN,UAAA,EACAnmN,KAAAqF,QAEA8hN,WAAA,WACAnnN,KAAAmmN,UAAA,EACAnmN,KAAA+rM,QAEAqb,eAAA,WACApnN,KAAAmmN,UAAA,GAEAa,YAAA,SAAAzxM,EAAAC,GACA,OAAAD,KAAAzV,QAAA0V,IAAA,EAAAD,EACAA,EAAAC,EAAAD,EAAA,IAAAC,EAAAD,EAAAC,GAAA,IAEA6xM,iBAAA,WACA,IAAA9nM,EAAAvf,KAEAA,KAAAsnN,gBAAAtnN,KAAA8lN,SACAz5M,aAAArM,KAAA46G,SACA56G,KAAA46G,QAAAtuG,WAAA,WACAiT,EAAAi1L,YAAA,GACOx0M,KAAAy3E,WAEPz3E,KAAAimN,UAAA,IACAjmN,KAAAkmN,eAAA55M,WAAA,WACAiT,EAAAi1L,YAAA,GACSx0M,KAAAimN,cAGTQ,kBAAA,WACAzmN,KAAAo1B,WAAAp1B,KAAAsnN,eAAAtnN,KAAA8lN,SACAz5M,aAAArM,KAAA46G,SAEA56G,KAAAkmN,gBACA75M,aAAArM,KAAAkmN,gBAEAlmN,KAAAw0M,YAAA,EAEAx0M,KAAA0zE,UACA1zE,KAAAo1M,cAGAwR,iBAAA,SAAAU,IACA,IAAAA,GACAj7M,aAAArM,KAAAkmN,gBAEAlmN,KAAAsnN,kBAIAC,UAAA,WACA,IAAA5rK,EAAA37C,KAAA+0M,cACA,EAAA5mJ,EAAAkC,KAAA1U,EAAA,aAAA37C,KAAAqF,OACA,EAAA8oD,EAAAkC,KAAA1U,EAAA,aAAA37C,KAAA+rM,OACA,EAAA59I,EAAAkC,KAAA1U,EAAA,QAAA37C,KAAAknN,cACA,EAAA/4J,EAAAkC,KAAA1U,EAAA,OAAA37C,KAAAmnN,aACA,EAAAh5J,EAAAkC,KAAA1U,EAAA,QAAA37C,KAAAonN,mBAMA,SAAAlkN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4ga,gBAAAr2Z,EAEA,IAAA1C,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAI5I8rE,EAAAC,EAFA33E,EAAA,IAMAkmN,EAAAvuI,EAFA33E,EAAA,MAMA43E,EAAAD,EAFA33E,EAAA,KAIAsmN,EAAAtmN,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAA63B,GACA9oB,MAAA,KACA4lD,QAAA,GACAt8D,KAAA,GACAmgK,UAAA,GACA89R,WAAA,EACA/3B,WAAA,EACA9xV,WAAA,EACAG,YAAA,EACAE,mBAAA,EACAD,oBAAA,EACA0pX,mBAAA,EACAC,WAAA,KACAC,iBAAA,GACAC,UAAA,OACAC,aAAA,KACAC,eAAA,KACAC,kBAAA,GACAC,mBAAA,EACAC,kBAAA,EACAC,sBAAA,QACAC,wBAAA,EACAC,uBAAA,EACAC,kBAAA,GACAC,iBAAA,GACAC,mBAAA,GACAC,kBAAA,GACA74B,YAAA,GACAC,YAAA,KACA64B,0BAAA,EACA5+a,QAAA,EACA6+a,aAAA,EACAC,2BAAA,GAGAC,EAAA5rX,EAAAl+D,QAAArP,OAAA+7M,EAAA1sM,SAEA+pb,OAAA,EACAvjZ,OAAA,EACAwjZ,KAEAC,EAAA,SAAA1rY,GACA,GAAAwrY,EAAA,CACA,IAAA3gc,EAAA2gc,EAAA3gc,SACA,mBAAAA,IACAo9C,EAAAkiZ,UACAt/b,EAAAo9C,EAAAoiZ,WAAArqY,GAEAn1D,EAAAm1D,IAGAwrY,EAAAp0b,UACA,YAAA4oD,EACA/X,EAAAkiZ,UACAqB,EAAAp0b,SAA8BnH,MAAAg4C,EAAAoiZ,WAAArqY,WAE9BwrY,EAAAp0b,QAAA4oD,IAEOwrY,EAAAn0b,QAAA,WAAA2oD,GAAA,UAAAA,GACPwrY,EAAAn0b,OAAA2oD,MAcA2rY,EAAA,SAAAA,IACA1jZ,KARAA,EAAA,IAAAsjZ,GACApic,GAAAoP,SAAAC,cAAA,UAGA3N,SAAA6gc,GAOAzjZ,EAAA+X,OAAA,GAEA/X,EAAAi4B,UAAAj4B,EAAA2jZ,YACAH,EAAA9hc,OAAA,GACA,WAGA,IAAAwH,GAFAq6b,EAAAC,EAAAv1Z,SAEA/kC,QACA,QAAA3H,KAAA2H,EACAA,EAAA5F,eAAA/B,KACAy+C,EAAAz+C,GAAA2H,EAAA3H,SAGA4M,IAAAjF,EAAAtG,WACAo9C,EAAAp9C,SAAA6gc,GAGA,IAAAG,EAAA5jZ,EAAAp9C,SACAo9C,EAAAp9C,SAAA,SAAAm1D,EAAA/X,GACA4jZ,EAAA7rY,EAAA/X,GACA0jZ,MAEA,EAAAp9O,EAAA+mE,SAAArtO,EAAAugB,UACAvgB,EAAAzmC,OAAAC,SAAAwmC,EAAAugB,SACAvgB,EAAAugB,QAAA,aAEAvgB,EAAAzmC,OAAAC,SAEA,kFAAAjP,QAAA,SAAAhJ,QACA4M,IAAA6xC,EAAAz+C,KACAy+C,EAAAz+C,IAAA,KAGA+O,SAAAG,KAAAC,YAAAsvC,EAAA7iC,KAEAu6D,EAAAl+D,QAAA8/D,SAAA,WACAt5B,EAAAi4B,SAAA,IAhCA,IAuCAusV,EAAA,SAAAA,EAAAt7Z,EAAAtG,GACA,IAAA80E,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,CAYA,GAXA,iBAAAzwE,IAAA,EAAAo9M,EAAA+mE,SAAAnkR,IACAA,GACAq3D,QAAAr3D,GAEA,iBAAA3D,UAAA,KACA2D,EAAAyR,MAAApV,UAAA,KAEG2D,EAAAtG,eACHA,EAAAsG,EAAAtG,UAGA,oBAAAsM,QACA,WAAAA,QAAA,SAAAC,EAAAC,GAEAo0b,EAAAxhc,MACAkH,SAAA,EAAA0uE,EAAAp+D,YAAwCiqB,EAAA+gY,EAAA/gY,SAAAv6B,GACxCtG,WACAuM,UACAC,WAGAs0b,MAGAF,EAAAxhc,MACAkH,SAAA,EAAA0uE,EAAAp+D,YAAsCiqB,EAAA+gY,EAAA/gY,SAAAv6B,GACtCtG,aAGA8gc,MAIAl/B,EAAAq/B,YAAA,SAAApga,GACA+gY,EAAA/gY,YAGA+gY,EAAArC,MAAA,SAAA5hW,EAAA5lD,EAAAzR,GAOA,MANA,qBAAAyR,EAAA,YAAAlP,EAAAkP,KACAzR,EAAAyR,EACAA,EAAA,SACGxM,IAAAwM,IACHA,EAAA,IAEA6pZ,GAAA,EAAA5sV,EAAAp+D,UACAmB,QACA4lD,UACAujY,MAAA,QACArrX,oBAAA,EACAC,mBAAA,GACGxvE,KAGHs7Z,EAAAvmD,QAAA,SAAA19S,EAAA5lD,EAAAzR,GAOA,MANA,qBAAAyR,EAAA,YAAAlP,EAAAkP,KACAzR,EAAAyR,EACAA,EAAA,SACGxM,IAAAwM,IACHA,EAAA,IAEA6pZ,GAAA,EAAA5sV,EAAAp+D,UACAmB,QACA4lD,UACAujY,MAAA,UACAnB,kBAAA,GACGz5b,KAGHs7Z,EAAAlC,OAAA,SAAA/hW,EAAA5lD,EAAAzR,GAOA,MANA,qBAAAyR,EAAA,YAAAlP,EAAAkP,KACAzR,EAAAyR,EACAA,EAAA,SACGxM,IAAAwM,IACHA,EAAA,IAEA6pZ,GAAA,EAAA5sV,EAAAp+D,UACAmB,QACA4lD,UACAoiY,kBAAA,EACAT,WAAA,EACA4B,MAAA,UACG56b,KAGHs7Z,EAAAjrV,MAAA,WACAv5B,EAAA66B,UACA76B,EAAAi4B,SAAA,EACAurX,KACAD,EAAA,MAGA3/b,EAAA4V,QAAAgrZ,EACA5ga,EAAA4ga,cAIA,SAAA7ga,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAsC,EAAA/jc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACA+tb,EAAA,GATA,EAEA,KAEA,KAEA,MAUA/+Y,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAq4V,EAAAvyV,EAFA33E,EAAA,KAMAm+S,EAAAxmO,EAFA33E,EAAA,IAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAszE,EAAAqE,EAFA33E,EAAA,KAIA4uD,EAAA5uD,EAAA,GAEAu+S,EAAAv+S,EAAA,IAIAgkc,EAAArsX,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAq4b,OAAA,EA+EAC,GACAr/S,QAAA,UACAtpE,KAAA,OACAinS,QAAA,UACAhnS,MAAA,SAGA53E,EAAA4V,SACAupK,QAAAmnP,EAAA1wZ,QAAA2kS,EAAA3kS,SAEAjW,OACA60E,OACA5+D,SAAA,GAEAg/D,YACAh/D,SAAA,GAEA2wZ,WACAlma,KAAAiW,QACAV,SAAA,GAEAk/D,mBACAl/D,SAAA,GAEAi/D,oBACAj/D,SAAA,GAEA2ob,mBACA3ob,SAAA,GAEA+K,QACA/K,SAAA,EACAvV,KAAAiW,SAEAkpb,aACA5pb,SAAA,EACAvV,KAAAiW,UAIA2a,YACAw8Q,QAAA/sE,EAAA9qN,QACA4zZ,SAAA95V,EAAA95D,SAGA8C,UACA23D,KAAA,WACA,IAAAhwE,EAAAxD,KAAAwD,KAGA,OAFAxD,KAAA2jK,YAEAngK,GAAAigc,EAAAjgc,GAAA,WAAAigc,EAAAjgc,GAAA,KAEAkgc,qBAAA,WACA,4BAAA1jc,KAAAwic,oBAEAmB,oBAAA,WACA,SAAA3jc,KAAAyic,oBAIA1mb,SACA6nb,aAAA,WACA,IAAA/mb,EAAA7c,KAEA6jc,EAAA7jc,KAAAk1D,IACA,kBACAr4C,EAAAN,UAAA,WACAsnb,IAAAhnb,EAAAq4C,KAAAr4C,EAAAu9D,cAIAA,QAAA,WACA,IAAAl8D,EAAAle,KAEAA,KAAAw3E,UACAx3E,KAAAw3E,SAAA,EACAx3E,KAAAu5E,UAAA,EAEAv5E,KAAAq6E,SAAAr6E,KAAAq6E,UACAmpX,EAAAxgG,cACAhjW,KAAA+3E,YACAzrE,WAAAtM,KAAAs4E,iBAAA,KAEAt4E,KAAAu4E,QAAA,EACAv4E,KAAAs6E,eACAhuE,WAAA,WACA4R,EAAAo5C,QAAAp5C,EAAA/b,SAAA+b,EAAAo5C,OAAAp5C,OAGA6rZ,mBAAA,WACA/pa,KAAAi4E,mBACAj4E,KAAA8jc,aAAA9jc,KAAA4ic,0BAAA,mBAGAmB,iBAAA,WACA,gBAAA/jc,KAAA6hc,UACA,OAAA7hc,KAAA8jc,aAAA,YAGAA,aAAA,SAAAxsY,IACA,WAAAt3D,KAAAqjc,OAAA,YAAA/rY,GAAAt3D,KAAAwkX,cAGAxkX,KAAAs3D,SACA,mBAAAt3D,KAAA6pa,aACA7pa,KAAA84E,MAAA94E,KAAA4jc,eACA5jc,KAAA6pa,YAAAvyW,EAAAt3D,UAAA84E,QAEA94E,KAAAo6E,YAGAoqS,SAAA,WACA,cAAAxkX,KAAAqjc,MAAA,CACA,IAAAvB,EAAA9hc,KAAA8hc,aACA,GAAAA,MAAAnmY,KAAA37D,KAAA2hc,YAAA,IAGA,OAFA3hc,KAAAgkc,mBAAAhkc,KAAAgic,oBAAA,EAAAlkJ,EAAAr1N,GAAA,wBACA,EAAAt6B,EAAA6rB,UAAAh6E,KAAAikc,kBAAA,YACA,EAEA,IAAAlC,EAAA/hc,KAAA+hc,eACA,sBAAAA,EAAA,CACA,IAAAmC,EAAAnC,EAAA/hc,KAAA2hc,YACA,QAAAuC,EAGA,OAFAlkc,KAAAgkc,mBAAAhkc,KAAAgic,oBAAA,EAAAlkJ,EAAAr1N,GAAA,wBACA,EAAAt6B,EAAA6rB,UAAAh6E,KAAAikc,kBAAA,YACA,EAEA,oBAAAC,EAGA,OAFAlkc,KAAAgkc,mBAAAE,GACA,EAAA/1Y,EAAA6rB,UAAAh6E,KAAAikc,kBAAA,YACA,GAMA,OAFAjkc,KAAAgkc,mBAAA,IACA,EAAA71Y,EAAAosB,aAAAv6E,KAAAikc,kBAAA,YACA,GAEAE,cAAA,WACA,IAAA1hD,EAAAziZ,KAAA0c,IAAA6mC,cAAA,oCACArpC,EAAAla,KAAA0c,IAAA6mC,cAAA,gDACA,OAAAk/V,GAAAvoY,GAEA+pb,gBAAA,WACA,IAAAG,EAAApkc,KAAAye,MAAAvU,MAAAuU,MACA,OAAA2lb,EAAAl6b,OAAAk6b,EAAAp+N,WAIAzqN,OACAomb,YACAjtP,WAAA,EACAj5L,QAAA,SAAAlO,GACA,IAAAyR,EAAAhf,KAEAA,KAAAuc,UAAA,SAAA4B,GACA,WAAAa,EAAAqkb,OAAA,OAAA91b,GACAyR,EAAAwlW,eAMAhtS,QAAA,SAAAjqE,GACA,IAAAgS,EAAAvf,KAEAuN,IACAvN,KAAAk1D,MACA,UAAAl1D,KAAAqjc,OAAA,YAAArjc,KAAAqjc,OACArjc,KAAAuc,UAAA,WACAgD,EAAAd,MAAA++V,QAAA9gW,IAAA6wB,UAGAvtC,KAAAwiW,iBAAA3yV,SAAA+yP,cACA4gM,EAAA,IAAAD,EAAAxqb,QAAA/Y,KAAA0c,IAAA1c,KAAAwiW,iBAAAxiW,KAAAmkc,kBAIA,WAAAnkc,KAAAqjc,QACA91b,EACAjB,WAAA,WACAiT,EAAAd,MAAAvU,OAAAqV,EAAAd,MAAAvU,MAAAwS,KACA6C,EAAA0kb,kBAAA12Z,SAES,MAETvtC,KAAAgkc,mBAAA,IACA,EAAA71Y,EAAAosB,aAAAv6E,KAAAikc,kBAAA,eAKAlkb,QAAA,WACA,IAAAuhG,EAAAthH,KAEAA,KAAAuc,UAAA,WACA+kG,EAAAogV,mBACA/xb,OAAAiP,iBAAA,aAAA0iG,EAAAxoC,UAIA94D,cAAA,WACAhgB,KAAA0hc,mBACA/xb,OAAAmP,oBAAA,aAAA9e,KAAA84E,OAEAxsE,WAAA,WACAk3b,EAAAxgG,iBAGAlyV,KAAA,WACA,OACAokD,IAAA,EACAh7C,WAAAxM,EACAoyD,QAAA,GACAt8D,KAAA,GACAmgK,UAAA,GACAimQ,YAAA,GACA63B,WAAA,EACAE,WAAA,KACAC,iBAAA,GACAC,UAAA,OACAC,aAAA,KACAC,eAAA,KACAC,kBAAA,GACAC,mBAAA,EACAC,kBAAA,EACA5qY,OAAA,GACAgrY,kBAAA,GACAC,iBAAA,GACA8B,sBAAA,EACAC,qBAAA,EACA9B,mBAAA,GACA+B,uBAAA,EACA9B,kBAAA,GACAuB,mBAAA,KACA7hc,SAAA,KACAugc,0BAAA,EACAlgG,iBAAA,KACA99H,iBAAA,EACAk+N,2BAAA,MAOA,SAAA1/b,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,iBAAsBsU,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,0BAAAC,OAA+C+tN,SAAA,KAAAphE,KAAA,SAAAwgS,aAAA,OAAA57N,aAAAr0J,EAAAr6D,OAAA,UAAuFwF,IAAKm1D,MAAA,SAAA0vG,GAAyB,GAAAA,EAAAhkL,SAAAgkL,EAAAx9C,cAA2C,YAAexyD,EAAAw1V,mBAAAxlP,OAAiCrtK,EAAA,OAAYE,YAAA,iBAAAc,OAAAq8D,EAAAq1V,YAAAr1V,EAAAzwD,QAAA,4BAA6F,OAAAywD,EAAAr6D,MAAAhD,EAAA,OAAiCE,YAAA,2BAAqCF,EAAA,OAAYE,YAAA,0BAAoCm9D,EAAAf,MAAAe,EAAAzwD,OAAA5M,EAAA,OAAqCgB,OAAA,yBAAAq8D,EAAAf,QAA2Ce,EAAAO,KAAA59D,EAAA,QAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAr6D,YAAAq6D,EAAA,UAAAr9D,EAAA,UAAiFE,YAAA,4BAAAC,OAA+C7T,KAAA,SAAAolO,aAAA,SAAqClpN,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAuvX,aAAAvvX,EAAAquX,0BAAA,mBAAqEvwJ,QAAA,SAAA9tH,GAA4B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAuvX,aAAAvvX,EAAAquX,0BAAA,sBAAuE1rb,EAAA,KAAUE,YAAA,0CAAkDm9D,EAAAO,OAAAP,EAAAO,KAAA59D,EAAA,OAAkCE,YAAA,4BAAsCm9D,EAAAf,OAAAe,EAAAzwD,QAAA,KAAAywD,EAAAzU,QAAA5oD,EAAA,OAA4DgB,OAAA,yBAAAq8D,EAAAf,QAA2Ce,EAAAO,KAAA,KAAAP,EAAAzU,QAAA5oD,EAAA,OAA0CE,YAAA,4BAAsCm9D,EAAAQ,GAAA,WAAAR,EAAAmuX,yBAAAxrb,EAAA,KAAkG2xN,UAAUj0L,UAAA2/B,EAAA6vF,GAAA7vF,EAAAzU,YAA5G5oD,EAAA,KAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAzU,eAA6I,GAAAyU,EAAAO,KAAA59D,EAAA,OAA2BktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,UAAAn1D,WAAA,cAA0EhI,YAAA,0BAAsCF,EAAA,YAAiB0B,IAAA,QAAAvB,OAAmB7T,KAAA+wE,EAAAstX,UAAA75N,YAAAzzJ,EAAAqtX,kBAAwDtsM,UAAW+8C,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAwvX,iBAAAx/Q,KAA8BhtJ,OAAQhwB,MAAAgtE,EAAA,WAAApyE,SAAA,SAAAqiT,GAAgDjwO,EAAAotX,WAAAn9I,GAAmBplS,WAAA,gBAA0BlI,EAAA,OAAYE,YAAA,2BAAAmB,OAA+CqkC,WAAA23B,EAAAyvX,mBAAA,sBAAgEzvX,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAyvX,wBAAA,KAAA9sb,EAAA,OAA2DE,YAAA,yBAAmCm9D,EAAA,iBAAAr9D,EAAA,aAAyCgB,OAAAq8D,EAAAovX,qBAAAtsb,OAAyCsB,QAAA47D,EAAA+vX,oBAAAl6b,MAAAmqE,EAAAouX,YAAA9wa,KAAA,SAAyEnS,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAuvX,aAAA,YAA4BxuM,UAAWzgL,MAAA,SAAA0vG,GAAyBhwG,EAAAuvX,aAAA,cAA6BvvX,EAAA18D,GAAA,eAAA08D,EAAA6vF,GAAA7vF,EAAAguX,kBAAAhuX,EAAAkU,EAAA,yCAAAlU,EAAAO,KAAA59D,EAAA,aAA+HktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,kBAAAn1D,WAAA,sBAA0FxG,IAAA,UAAAV,OAAAq8D,EAAAmvX,sBAAArsb,OAA0DsB,QAAA47D,EAAA8vX,qBAAAj6b,MAAAmqE,EAAAouX,YAAA9wa,KAAA,SAA0EnS,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAAuvX,aAAA,aAA6BxuM,UAAWzgL,MAAA,SAAA0vG,GAAyBhwG,EAAAuvX,aAAA,eAA8BvvX,EAAA18D,GAAA,eAAA08D,EAAA6vF,GAAA7vF,EAAA+tX,mBAAA/tX,EAAAkU,EAAA,qDAEhxG9wE,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA+kZ,EAAA3wZ,EAAA,KAEAklc,GAEAt5b,EAFA+kZ,IAEsC/kZ,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es5b,EAAA1rb,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkwa,EAAA1rb,QAAAnW,KAAA6hc,EAAA1rb,UAGA5V,EAAA4V,QAAA0rb,EAAA1rb,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAm9b,EAAAnlc,EAAA,KACAolc,EAAAplc,EAAA6+C,EAAAsmZ,GACAE,EAAArlc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAwxX,EAAApvb,EACAqvb,EAAA,GATA,EAEA,KAEA,KAEA,MAUArgZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAOAjuE,EAAA4V,SACAnW,KAAA,eAEAE,OACAyxS,WACA/wS,KAAA2N,OACA4H,QAAA,KAEA8rb,gBACArhc,KAAA2N,OACA4H,QAAA,KAIAsuO,QAAA,WACA,OACAy9M,aAAA9kc,OAGA+f,QAAA,WACA,IAAA7N,EAAAlS,KAAA0c,IAAAmkC,iBAAA,wBACA3uC,EAAAjR,QACAiR,IAAAjR,OAAA,GAAAylC,aAAA,0BAOA,SAAAxjC,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,gBAAAC,OAAmCuxN,aAAA,aAAA5kE,KAAA,gBAAnHhkK,KAAkK+0E,GAAA,gBAE3Kp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA45b,EAAAxlc,EAAA,KAEAylc,GAEA75b,EAFA45b,IAEsC55b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E65b,EAAAjsb,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAywa,EAAAjsb,QAAAnW,KAAAoic,EAAAjsb,UAGA5V,EAAA4V,QAAAisb,EAAAjsb,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA09b,EAAA1lc,EAAA,KACA2lc,EAAA3lc,EAAA6+C,EAAA6mZ,GACAE,EAAA5lc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA+xX,EAAA3vb,EACA4vb,EAAA,GATA,EAEA,KAEA,KAEA,MAUA5gZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAcAjuE,EAAA4V,SACAnW,KAAA,mBACAE,OACAo0C,MACA3uC,QAAAkR,SAEA3I,KAAA,WACA,OACAyjS,UAAA,GACAswJ,eAAA,KAKAxxX,QAAA,gBAEAtzD,QAAA,WACA,IAAAlD,EAAA7c,KAEAA,KAAAu0S,UAAAv0S,KAAA8kc,aAAAvwJ,UACAv0S,KAAA6kc,eAAA7kc,KAAA8kc,aAAAD,eACA,IAAAr2b,EAAAxO,KAAAye,MAAAjQ,KACAA,EAAAk4B,aAAA,eACAl4B,EAAAoQ,iBAAA,iBAAAT,GACA,IAAA+4B,EAAAr6B,EAAAq6B,GACAm6X,EAAAx0Z,EAAAw0Z,QAEAn6X,GAAAm6X,IACAx0Z,EAAAtU,QAAA8oa,EAAA9oa,QAAA2uC,GAAAm6X,EAAA9va,KAAA21C,SAOA,SAAAh0C,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAA0BC,EAAvClX,KAAuCmX,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,QAAkBE,YAAA,wBAAkCF,EAAA,QAAa0B,IAAA,OAAAV,OAAA,uBAAhIlY,KAAgIk3C,GAAA,cAAA7/B,OAA0E2sJ,KAAA,UAA1MhkK,KAAyN+0E,GAAA,eAAzN/0E,KAAyN,eAAAkX,EAAA,KAAqDE,YAAA,2BAAAc,MAA9QlY,KAA8Q6kc,iBAAgE3tb,EAAA,QAAaE,YAAA,2BAAAC,OAA8C2sJ,KAAA,kBAAzYhkK,KAAga6X,GAAha7X,KAAgaokK,GAAhapkK,KAAgau0S,iBAEza58R,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi6b,EAAA7lc,EAAA,KAEA8lc,GAEAl6b,EAFAi6b,IAEsCj6b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Ek6b,EAAAtsb,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA8wa,EAAAtsb,QAAAnW,KAAAyic,EAAAtsb,UAGA5V,EAAA4V,QAAAssb,EAAAtsb,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA+9b,EAAA/lc,EAAA,KACAgmc,EAAAhmc,EAAA6+C,EAAAknZ,GACAE,EAAAjmc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAoyX,EAAAhwb,EACAiwb,EAAA,GATA,EAEA,KAEA,KAEA,MAUAjhZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAs6b,EAAAlmc,EAAA,IAEA43E,GAEAhsE,EAFAs6b,IAEsCt6b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,SAEA2/K,cAAA,SAEA8kE,QAAA,WACA,OACA/zK,OAAAtzE,OAKA8C,OACAy0B,MAAA3tB,OACA06W,MAAA16W,OACA8tR,cAAAvmR,OACAu0b,WAAAv0b,OACAw0b,aACAnic,KAAA2N,OACA4H,QAAA,IAEA6sb,OAAAnsb,QACAosb,cAAApsb,QACA8rN,WAAA9rN,QACAqsb,aACAtic,KAAAiW,QACAV,SAAA,GAEA8Y,KAAA1gB,OACAuiE,SAAAj6D,QACAssb,sBACAvic,KAAAiW,QACAV,SAAA,IAGAwC,OACA+oW,MAAA,WACAtkX,KAAA+lc,sBACA/lc,KAAAwkX,SAAA,gBAIA1zW,KAAA,WACA,OACA0kL,YAGA11K,QAAA,WACA,IAAAjD,EAAA7c,KAEAA,KAAAikL,IAAA,4BAAArmC,GACAA,GACA/gI,EAAA24K,OAAAj0L,KAAAq8I,KAIA59I,KAAAikL,IAAA,+BAAArmC,GACAA,EAAA98I,MACA+b,EAAA24K,OAAAl0L,OAAAub,EAAA24K,OAAA11L,QAAA89I,GAAA,MAKA7hI,SACAiqb,YAAA,WACAhmc,KAAAu3B,OAIAv3B,KAAAw1L,OAAA1rL,QAAA,SAAA8zI,GACAA,EAAAqoT,gBAGAC,cAAA,WACA,IAAApjc,EAAAgC,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,OAEAhC,EAAA7B,OAAAjB,KAAAw1L,OAAApuK,OAAA,SAAAw2H,GACA,OAAA96I,EAAAhD,QAAA89I,EAAA98I,OAAA,IACOd,KAAAw1L,QACP1rL,QAAA,SAAA8zI,GACAA,EAAAsoT,mBAGA1hF,SAAA,SAAAriX,GACA,IAAA+b,EAAAle,KAEA,GAAAA,KAAAu3B,MAAA,CAKA,IAAAqoC,OAAA,EAEA,mBAAAz9D,GAAAwN,OAAAlB,UACAmxD,EAAA,IAAAjwD,OAAAlB,QAAA,SAAAC,EAAAC,GACAxM,EAAA,SAAAgkc,GACAA,EAAAz3b,EAAAy3b,GAAAx3b,EAAAw3b,OAKA,IAAAA,GAAA,EACA5jc,EAAA,EAEA,IAAAvC,KAAAw1L,OAAAv0L,QAAAkB,GACAA,GAAA,GAEA,IAAAikc,KAaA,OAZApmc,KAAAw1L,OAAA1rL,QAAA,SAAA8zI,GACAA,EAAA4mO,SAAA,YAAA1kT,EAAA89E,GACA99E,IACAqmY,GAAA,GAEAC,GAAA,EAAAjvX,EAAAp+D,YAAiDqtb,EAAAxoT,GACjD,mBAAAz7I,KAAAI,IAAA2b,EAAAs3K,OAAAv0L,QACAkB,EAAAgkc,EAAAC,OAKAxmY,QAAA,EAjCAnqD,QAAAC,KAAA,gEAqCA2wb,cAAA,SAAAvlc,EAAAwmE,GACA,IAAAs2E,EAAA59I,KAAAw1L,OAAApuK,OAAA,SAAAw2H,GACA,OAAAA,EAAA98I,WACO,GACP,IAAA88I,EACA,UAAAv+E,MAAA,mDAGAu+E,EAAA4mO,SAAA,GAAAl9S,OAcA,SAAApkE,EAAAqhD,EAAAhlD,GAEA,aACA,IAKA+0E,GAAiB7wE,OALjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,QAAkBI,YAAA,UAAAc,OAAjFlY,KAC1B03R,cAAA,kBAD0B13R,KAC1B03R,cAAA,IACG4uK,kBAFuBtmc,KAEvB4lc,WAFuB5lc,KAGxB+0E,GAAA,gBAEep9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAo7b,EAAAhnc,EAAA,KAEAinc,GAEAr7b,EAFAo7b,IAEsCp7b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eq7b,EAAAztb,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAiya,EAAAztb,QAAAnW,KAAA4jc,EAAAztb,UAGA5V,EAAA4V,QAAAytb,EAAAztb,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAk/b,EAAAlnc,EAAA,KACAmnc,EAAAnnc,EAAA6+C,EAAAqoZ,GACAE,EAAApnc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAuzX,EAAAnxb,EACAoxb,EAAA,GATA,EAEA,KAEA,KAEA,MAUApiZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAw1X,EAAA1vX,EAFA33E,EAAA,MAMA8iL,EAAAnrG,EAFA33E,EAAA,IAMA43E,EAAAD,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAkC7EhI,EAAA4V,SACAnW,KAAA,aAEA2/K,cAAA,aAEAD,QAAAD,EAAAtpK,SAEAsuO,QAAA,WACA,OACA9zK,WAAAvzE,OAKAqzE,QAAA,UAEAvwE,OACA2P,MAAAtB,OACAu0b,WAAAv0b,OACArQ,KAAAqQ,OACA4xJ,UACAv/J,KAAAiW,QACAV,aAAArL,GAEA42W,OAAA16W,OAAAiC,OACAkvE,MAAA5pE,OACA+yQ,eAAA/yQ,OACAutD,IAAAvtD,OACA00b,eACAric,MAAA2N,OAAAsI,SACAV,QAAA,IAEA+sb,aACAtic,KAAAiW,QACAV,SAAA,GAEA8Y,KAAA1gB,QAEAoK,OACAw/D,OACA25H,WAAA,EACAj5L,QAAA,SAAAlU,GACAvH,KAAA6mc,gBAAAt/b,EACAvH,KAAAqlO,cAAA99N,EAAA,aAGA28Q,eAAA,SAAA38Q,GACAvH,KAAAqlO,cAAA99N,IAGAsU,UACAirb,SAAA,WACA,OAAA9mc,KAAA0+D,KAAA1+D,KAAAc,MAEAo5M,WAAA,WACA,IAAAvjI,KACA,WAAA32E,KAAA4kO,KAAA8yD,cAAA,OAAA/gN,EACA,IAAA+uX,EAAA1lc,KAAA0lc,YAAA1lc,KAAA4kO,KAAA8gO,WAIA,OAHAA,IACA/uX,EAAA39D,MAAA0sb,GAEA/uX,GAEAowX,aAAA,WACA,IAAApwX,KACAlkE,EAAAzS,KAAAyS,MACA,WAAAzS,KAAA4kO,KAAA8yD,eAAA13R,KAAA4kO,KAAAghO,OAAA,OAAAjvX,EACA,IAAAlkE,IAAAzS,KAAA0lc,YAAA1lc,KAAAi0a,SAAA,OAAAt9V,EACA,IAAA+uX,EAAA1lc,KAAA0lc,YAAA1lc,KAAA4kO,KAAA8gO,WAIA,OAHAA,IACA/uX,EAAA15B,WAAAyoZ,GAEA/uX,GAEAiuJ,KAAA,WAGA,IAFA,IAAAr7L,EAAAvpC,KAAAmsN,QACA66O,EAAAz9Z,EAAAnxB,SAAAmqK,cACA,WAAAykR,GACA,eAAAA,IACAhnc,KAAAi0a,UAAA,GAGA+yB,GADAz9Z,IAAA4iL,SACA/zM,SAAAmqK,cAEA,OAAAh5I,GAEA09Z,WAAA,WACA,IAAA1va,EAAAv3B,KAAA4kO,KAAArtM,MACA,GAAAA,GAAAv3B,KAAAc,KAAA,CAIA,IAAAT,EAAAL,KAAAc,KAKA,OAJA,IAAAT,EAAAP,QAAA,OACAO,IAAAkI,QAAA,WAGA,EAAA9I,EAAAy3O,eAAA3/M,EAAAl3B,GAAA,GAAA0M,IAEAm6b,WAAA,WACA,IAAA5iF,EAAAtkX,KAAAmnc,WACAD,GAAA,EAWA,OATA5iF,KAAArjX,QACAqjX,EAAAzsQ,MAAA,SAAA+qQ,GACA,OAAAA,EAAA7/M,WACAmkS,GAAA,GACA,KAKAA,GAEAE,UAAA,WACA,OAAApnc,KAAAszE,OAAAzhD,MAEAkiD,eAAA,WACA,OAAA/zE,KAAA6xB,MAAA7xB,KAAAonc,WAEAC,UAAA,WACA,OAAArnc,KAAA+zE,iBAAA/zE,KAAAi0E,cAAwDpiD,OAGxD/gB,KAAA,WACA,OACAu0N,cAAA,GACAwhO,gBAAA,GACAS,kBAAA,EACAzkS,aACAoxQ,UAAA,IAIAl4Z,SACAyoW,SAAA,SAAAvyW,GACA,IAAA4K,EAAA7c,KAEAmC,EAAA2C,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,GAAArF,EAAA48D,KAEAr8D,KAAAsnc,kBAAA,EACA,IAAAhjF,EAAAtkX,KAAAunc,gBAAAt1b,GACA,KAAAqyW,GAAA,IAAAA,EAAArjX,cAAAyM,IAAA1N,KAAA+iK,SAEA,OADA5gK,KACA,EAGAnC,KAAAqlO,cAAA,aAEA,IAAAl5H,KACAm4Q,KAAArjX,OAAA,GACAqjX,EAAAx6W,QAAA,SAAA84W,UACAA,EAAA3wW,UAGAk6F,EAAAnsG,KAAAc,MAAAwjX,EAEA,IAAAzhN,EAAA,IAAA+jS,EAAA7tb,QAAAozF,GACA50E,KAEAA,EAAAv3B,KAAAc,MAAAd,KAAAinc,WAEApkS,EAAA2hN,SAAAjtV,GAAiCgrV,aAAA,GAAoB,SAAAt3R,EAAAm7W,GACrDvpb,EAAAwoN,cAAAp6I,EAAA,kBACApuE,EAAAgqb,gBAAA57W,IAAA,GAAAnrB,QAAA,GAEA39D,EAAA0a,EAAAgqb,gBAAAT,GACAvpb,EAAAy2D,QAAAz2D,EAAAy2D,OAAAt1D,MAAA,WAAAnB,EAAA/b,MAAAmqF,MAGAi7W,cAAA,WACAlmc,KAAAqlO,cAAA,GACArlO,KAAA6mc,gBAAA,GACA7mc,KAAAsnc,kBAAA,GAEArB,WAAA,WACAjmc,KAAAqlO,cAAA,GACArlO,KAAA6mc,gBAAA,GAEA,IAAAtva,EAAAv3B,KAAA4kO,KAAArtM,MACAhwB,EAAAvH,KAAAinc,WACA5mc,EAAAL,KAAAc,MACA,IAAAT,EAAAP,QAAA,OACAO,IAAAkI,QAAA,UAGA,IAAAzH,GAAA,EAAArB,EAAAy3O,eAAA3/M,EAAAl3B,GAAA,GAEAL,KAAAsnc,kBAAA,EACAz7b,MAAAC,QAAAvE,GACAzG,EAAAqwE,EAAArwE,EAAA2nB,MAAA1T,OAAA/U,KAAA2yb,cAEA7xb,EAAAqwE,EAAArwE,EAAA2nB,GAAAzoB,KAAA2yb,aAGA3yb,KAAAi9S,UAAA,4BAAAj9S,KAAA2yb,eAEAwU,SAAA,WACA,IAAAK,EAAAxnc,KAAA4kO,KAAA0/I,MACAmjF,EAAAznc,KAAAskX,MACAojF,OAAAh6b,IAAA1N,KAAA+iK,UAAwDA,WAAA/iK,KAAA+iK,aAExDjiK,GAAA,EAAArB,EAAAy3O,eAAAswN,EAAAxnc,KAAAc,MAAA,IAGA,OAFA0mc,IAAA1mc,EAAAqwE,EAAAnxE,KAAAc,MAAA,KAAAA,EAAAiM,QAEAgI,OAAA0yb,GAAAD,OAAAzyb,OAAA2yb,IAEAH,gBAAA,SAAAt1b,GAGA,OAFAjS,KAAAmnc,WAEA//a,OAAA,SAAAw7V,GACA,OAAAA,EAAA3wW,SAAA,KAAAA,IACApG,MAAAC,QAAA82W,EAAA3wW,SACA2wW,EAAA3wW,QAAAnS,QAAAmS,IAAA,EAEA2wW,EAAA3wW,eAEOtB,IAAA,SAAAiyW,GACP,SAAAzrS,EAAAp+D,YAAsC6pW,MAGtC+kF,YAAA,WACA3nc,KAAAwkX,SAAA,SAEAojF,cAAA,WACA5nc,KAAAsnc,iBACAtnc,KAAAsnc,kBAAA,EAIAtnc,KAAAwkX,SAAA,YAGAzkW,QAAA,WACA,GAAA/f,KAAAc,KAAA,CACAd,KAAAu9I,SAAA,6BAAAv9I,OAEA,IAAA2yb,EAAA3yb,KAAAinc,WACAp7b,MAAAC,QAAA6mb,KACAA,KAAA59a,OAAA49a,IAEA/ob,OAAAwB,eAAApL,KAAA,gBACAuH,MAAAorb,KAGA3yb,KAAAmnc,WAEAlmc,aAAAyM,IAAA1N,KAAA+iK,YACA/iK,KAAAikL,IAAA,eAAAjkL,KAAA2nc,aACA3nc,KAAAikL,IAAA,iBAAAjkL,KAAA4nc,kBAIA5nb,cAAA,WACAhgB,KAAAu9I,SAAA,gCAAAv9I,UAMA,SAAAkD,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAqhD,EAAAhlD,GAEA,aACA,IAcA+0E,GAAiB7wE,OAdjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,eAAAc,QAC1G2vb,yBAAAtzX,EAAAjB,QAAAiB,EAAAjB,OAAAiyJ,WACAuiO,WAAA,UAAAvzX,EAAA8wJ,cACA0iO,gBAAA,eAAAxzX,EAAA8wJ,cACA2iO,aAAA,YAAAzzX,EAAA8wJ,cACA4iO,cAAA1zX,EAAA2yX,YAAA3yX,EAAAwuF,UAEAxuF,EAAA8yX,UAAA,iBAAA9yX,EAAA8yX,UAAA,MACE9yX,EAAA9hE,OAAA8hE,EAAAz7D,OAAArG,MAAAyE,EAAA,SAA8CE,YAAA,sBAAAmB,MAAAg8D,EAAA,WAAAl9D,OAAgEqnD,IAAA6V,EAAAuyX,YAAoBvyX,EAAAQ,GAAA,SAAAR,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA9hE,MAAA8hE,EAAAqwJ,KAAA+gO,iBAAA,GAAApxX,EAAAO,KAAA59D,EAAA,OAA4FE,YAAA,wBAAAmB,MAAAg8D,EAAA,eAA6DA,EAAAQ,GAAA,WAAA79D,EAAA,cAAqCG,OAAOzU,KAAA,oBAAyB,UAAA2xE,EAAA8wJ,eAAA9wJ,EAAAuxX,aAAAvxX,EAAAqwJ,KAAAkhO,YAAA5ub,EAAA,OAAuFE,YAAA,sBAAAc,OACzbgwb,8BAAA,kBAAA3zX,EAAAsxX,cACAtxX,EAAAsxX,cACAtxX,EAAAjB,QAAAiB,EAAAjB,OAAAuyX,gBAAA,KACUtxX,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAsyX,iBAAA,cAAAtyX,EAAAO,QAAA,MAEOn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAg9b,EAAA5oc,EAAA,KAEA6oc,GAEAj9b,EAFAg9b,IAEsCh9b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Ei9b,EAAArvb,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA6za,EAAArvb,QAAAnW,KAAAwlc,EAAArvb,UAGA5V,EAAA4V,QAAAqvb,EAAArvb,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA8gc,EAAA9oc,EAAA,KACA+oc,EAAA/oc,EAAA6+C,EAAAiqZ,GAcAn1X,EAbA3zE,EAAA,EAaA4zE,CACAm1X,EAAA/yb,EAVA,MAEA,EAEA,KAEA,KAEA,MAUAgvC,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAo9b,EAAAhpc,EAAA,KAEAipc,GAEAr9b,EAFAo9b,IAEsCp9b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,SAEAwxB,YACAq0a,OAAAD,EAAAzvb,SAGAjW,OACAU,KAAA2N,OACAu3b,WAAAv3b,OACA2hS,SAAAr5R,QACAkvb,QAAAlvb,QACAlS,SACA8ob,SAAA52a,QACAmvb,aACAplc,KAAA2N,OACA4H,QAAA,OAEAiwP,YAAA7vP,SACA0vb,QAAApvb,SAGA4tO,QAAA,WACA,OACAyhN,SAAA9oc,OAGA8Q,KAAA,WACA,OACAi4b,YAAA/oc,KAAAuH,OAAAvH,KAAA0oc,WACAM,WAKAztb,OACAmtb,WAAA,SAAAnhc,GACAvH,KAAAipc,eAAA1hc,IAEAA,MAAA,SAAA+6P,GACAtiQ,KAAAipc,eAAA3mM,IAEAymM,YAAA,SAAAxhc,GACA,IAAAsV,EAAA7c,KAEAA,KAAAye,MAAAyqb,KACAlpc,KAAAuc,UAAA,SAAA4B,GACAtB,EAAA4B,MAAAyqb,IAAAC,wBAMAptb,SACAqtb,eAAA,SAAAnuL,EAAAouL,EAAA9xY,GACA0jN,EAAAvnM,WACA1zE,KAAAipc,eAAAI,GACArpc,KAAAge,MAAA,YAAAi9P,EAAA1jN,KAEA+xY,gBAAA,SAAAC,EAAA/pb,GACA+pb,EAAA71X,WACAl0D,EAAAglK,kBACAxkL,KAAAge,MAAA,OAAAurb,EAAA3mc,KAAA,UACA5C,KAAAge,MAAA,aAAAurb,EAAA3mc,QAEA4mc,aAAA,WACAxpc,KAAAge,MAAA,mBACAhe,KAAAge,MAAA,YAEAirb,eAAA,SAAA1hc,GACA,IAAA2W,EAAAle,KAEAypc,EAAA,WACAvrb,EAAA6qb,YAAAxhc,EACA2W,EAAAF,MAAA,QAAAzW,IAEA,GAAAvH,KAAA+oc,cAAAxhc,GAAAvH,KAAAgpQ,YAAA,CACA,IAAA4iL,EAAA5rb,KAAAgpQ,YAAAzhQ,EAAAvH,KAAA+oc,aACAnd,KAAAz8a,KACAy8a,EAAAz8a,KAAA,WACAs6b,IAEAvrb,EAAAO,MAAAyqb,KAAAhrb,EAAAO,MAAAyqb,IAAAQ,iBAES,IAAA9d,GACT6d,SAGAA,KAGAE,SAAA,SAAAh9b,GACA,IAAAC,EAAA5M,KAAA8Y,OAAAC,QAAAjZ,QAAA6M,EAAAwlE,QACAnyE,KAAAgpc,MAAA1nc,OAAAsL,EAAA,EAAAD,IAEAi9b,YAAA,SAAAj9b,GACA,IAAAq8b,EAAAhpc,KAAAgpc,MACAp8b,EAAAo8b,EAAAlpc,QAAA6M,GACAC,GAAA,GACAo8b,EAAA1nc,OAAAsL,EAAA,KAIAnJ,OAAA,SAAAwU,GACA,IAAA/J,EAEA1K,EAAAxD,KAAAwD,KACA4lc,EAAAppc,KAAAopc,eACAE,EAAAtpc,KAAAspc,gBACAE,EAAAxpc,KAAAwpc,aACAT,EAAA/oc,KAAA+oc,YACAC,EAAAhpc,KAAAgpc,MACA3Y,EAAArwb,KAAAqwb,SACAsY,EAAA3oc,KAAA2oc,QACAC,EAAA5oc,KAAA4oc,YACAC,EAAA7oc,KAAA6oc,QAsCA92W,EAAA95E,EACA,OACOC,OAAA,wBAAA0wb,KArCPvY,GAAAsY,EAAA1wb,EACA,QAEAC,MAAA,mBACAwH,IACAm1D,MAAA20X,EACAn3J,QAAA,SAAA7yR,GACA,KAAAA,EAAA08P,SACAstL,MAIAnyb,OACA+tN,SAAA,OAGAntN,EACA,KACSC,MAAA,sBAGT,KAiBAD,EACA,WAfAnV,OACAimc,cACAc,WAAAT,EACAU,YAAAR,EACAjZ,WACA7sb,OACAwlc,QACAH,WAEAjwb,IAAA,aAWAsgW,EAAAjhW,EACA,OACOC,MAAA,qBACPlY,KAAA8Y,OAAAC,UAGA,OAAAd,EACA,OACOC,OAAAhK,GACP67b,WAAA,EACAC,gBAAA,SAAAxmc,GACS0K,EAAA,YAAA06b,IAAA,EAAA16b,EAAA,wCAAA1K,EAAA0K,KACT,WAAA06b,GAAA72W,EAAAmnR,MAAAnnR,MAGAjyE,QAAA,WACA9f,KAAA+oc,aACA/oc,KAAAipc,eAAA,QAOA,SAAA/lc,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA0ic,EAAA1qc,EAAA,KACA2qc,EAAA3qc,EAAA6+C,EAAA6rZ,GAcA/2X,EAbA3zE,EAAA,EAaA4zE,CACA+2X,EAAA30b,EAVA,MAEA,EAEA,KAEA,KAEA,MAUAgvC,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAMAjmE,EANAg/b,EAAA5qc,EAAA,KAEA6qc,GAIAj/b,EAJAg/b,IAIsCh/b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7Eu/M,EAAAnrN,EAAA,IAIA,SAAA88D,KACA,IAAAguY,EAAA,SAAAh6Z,GACA,OAAAA,EAAA/3B,cAAA/P,QAAA,uBAAA2nC,GACA,OAAAA,EAAA8B,iBAIA7uC,EAAA4V,SACAnW,KAAA,SAEAwxB,YACAk2a,OAAAF,EAAArxb,SAGAs6D,QAAA,YAEAvwE,OACAkmc,MAAAn9b,MACAk9b,YAAA53b,OACAk/a,SAAA52a,QACAowb,YACArmc,KAAA2V,SACAJ,QAAAsjD,GAEAytY,aACAtmc,KAAA2V,SACAJ,QAAAsjD,GAEA74D,KAAA2N,OACA03b,QAAApvb,SAGA3I,KAAA,WACA,OACAy5b,YAAA,EACAC,UAAA,EACAC,SAAA,EACAC,WAAA,IAKA7ub,UACA8ub,SAAA,WAEA,OACA1ya,UAAA,cAFA,qBAAAn4B,QAAAE,KAAA8oc,SAAAF,aAAA,SAEA,KAAA5oc,KAAAwqc,UAAA,QAGAI,SAAA,WACA,4BAAA9qc,QAAAE,KAAA8oc,SAAAF,aAAA,mBAIA7sb,SACA8ub,WAAA,WACA,IAAAC,EAAA9qc,KAAAye,MAAAssb,UAAA,SAAAV,EAAArqc,KAAA4qc,WACAI,EAAAhrc,KAAAwqc,UAEA,GAAAQ,EAAA,CAEA,IAAAj6W,EAAAi6W,EAAAF,EAAAE,EAAAF,EAAA,EAEA9qc,KAAAwqc,UAAAz5W,IAEAk6W,WAAA,WACA,IAAAC,EAAAlrc,KAAAye,MAAAyqb,IAAA,SAAAmB,EAAArqc,KAAA4qc,WACAE,EAAA9qc,KAAAye,MAAAssb,UAAA,SAAAV,EAAArqc,KAAA4qc,WACAI,EAAAhrc,KAAAwqc,UAEA,KAAAU,EAAAF,GAAAF,GAAA,CAEA,IAAA/5W,EAAAm6W,EAAAF,EAAA,EAAAF,EAAAE,EAAAF,EAAAI,EAAAJ,EAEA9qc,KAAAwqc,UAAAz5W,IAEAo4W,kBAAA,WACA,GAAAnpc,KAAAuqc,WAAA,CACA,IAAArB,EAAAlpc,KAAAye,MAAAyqb,IACAiC,EAAAnrc,KAAA0c,IAAA6mC,cAAA,cACA,GAAA4nZ,EAAA,CACA,IAAAJ,EAAA/qc,KAAAye,MAAAssb,UACAK,EAAAD,EAAAxsZ,wBACA0sZ,EAAAN,EAAApsZ,wBACA2sZ,EAAApC,EAAAvqZ,wBACAqsZ,EAAAhrc,KAAAwqc,UACAz5W,EAAAi6W,EAEAI,EAAAvlc,KAAAwlc,EAAAxlc,OACAkrF,EAAAi6W,GAAAK,EAAAxlc,KAAAulc,EAAAvlc,OAEAulc,EAAAtlc,MAAAulc,EAAAvlc,QACAirF,EAAAi6W,EAAAI,EAAAtlc,MAAAulc,EAAAvlc,OAEAwlc,EAAAxlc,MAAAulc,EAAAvlc,QACAirF,EAAAm4W,EAAAp0Z,YAAAu2Z,EAAAryb,OAEAhZ,KAAAwqc,UAAAzic,KAAAE,IAAA8oF,EAAA,MAEAx0C,OAAA,WACA,GAAAv8C,KAAAye,MAAAyqb,IAAA,CACA,IAAA0B,EAAA5qc,KAAA4qc,SACAM,EAAAlrc,KAAAye,MAAAyqb,IAAA,SAAAmB,EAAAO,IACAE,EAAA9qc,KAAAye,MAAAssb,UAAA,SAAAV,EAAAO,IACAI,EAAAhrc,KAAAwqc,UAEA,GAAAM,EAAAI,EAAA,CACA,IAAAK,EAAAvrc,KAAAwqc,UACAxqc,KAAAuqc,WAAAvqc,KAAAuqc,eACAvqc,KAAAuqc,WAAAjrY,KAAAisY,EACAvrc,KAAAuqc,WAAA9la,KAAA8ma,EAAAT,EAAAI,EACAA,EAAAK,EAAAT,IACA9qc,KAAAwqc,UAAAU,EAAAJ,QAGA9qc,KAAAuqc,YAAA,EACAS,EAAA,IACAhrc,KAAAwqc,UAAA,KAIAgB,UAAA,SAAArnc,GACA,IAAA+3Q,EAAA/3Q,EAAA+3Q,QACA/3N,OAAA,EACA49D,OAAA,EACA0pV,OAAA,GACA,kBAAA3rc,QAAAo8Q,KAEAuvL,EAAAtnc,EAAA4iI,cAAAlmF,iBAAA,cACAkhE,EAAAl2G,MAAA3L,UAAAJ,QAAA4L,KAAA+/b,EAAAtnc,EAAA5D,QAqBAkrc,EAbAtnZ,EAJA,KAAA+3N,GAAA,KAAAA,EAEA,IAAAn6J,EAEA0pV,EAAAxqc,OAAA,EAEA8gH,EAAA,EAIAA,EAAA0pV,EAAAxqc,OAAA,EAEA8gH,EAAA,EAEA,GAGAx0E,QACAk+Z,EAAAtnZ,GAAA0wB,QACA70E,KAAA0rc,aAEAA,SAAA,WACA1rc,KAAA0qc,YACA1qc,KAAAyqc,SAAA,IAGAf,YAAA,WACA1pc,KAAAyqc,SAAA,GAEAkB,wBAAA,WACA,IAAA9ub,EAAA7c,KAEA48C,EAAA/sC,SAAA+7b,gBACA,WAAAhvZ,EACA58C,KAAA0qc,WAAA,EACO,YAAA9tZ,GACPtwC,WAAA,WACAuQ,EAAA6tb,WAAA,GACS,KAGTmB,kBAAA,WACA7rc,KAAA0qc,WAAA,GAEAoB,mBAAA,WACA,IAAA5tb,EAAAle,KAEAsM,WAAA,WACA4R,EAAAwsb,WAAA,GACO,MAIPtjO,QAAA,WACApnO,KAAAu8C,UAEA94C,OAAA,SAAAwU,GACA,IAAA+G,EAAAhf,KAEAwD,EAAAxD,KAAAwD,KACAwlc,EAAAhpc,KAAAgpc,MACA3Y,EAAArwb,KAAAqwb,SACAwY,EAAA7oc,KAAA6oc,QACAgB,EAAA7pc,KAAA6pc,WACAC,EAAA9pc,KAAA8pc,YACAa,EAAA3qc,KAAA2qc,SACAJ,EAAAvqc,KAAAuqc,WACAU,EAAAjrc,KAAAirc,WACAJ,EAAA7qc,KAAA6qc,WACAW,EAAAxrc,KAAAwrc,UACAE,EAAA1rc,KAAA0rc,SACAhC,EAAA1pc,KAAA0pc,YAEAqC,EAAAxB,GAAAtyb,EACA,QACOC,OAAA,oBAAAqyb,EAAAjrY,KAAA,kBAAA5/C,IACPm1D,MAAAg2X,KAGA5yb,EACA,KACSC,MAAA,4BAGTD,EACA,QACOC,OAAA,oBAAAqyb,EAAA9la,KAAA,kBAAA/kB,IACPm1D,MAAAo2X,KAGAhzb,EACA,KACSC,MAAA,8BAGT,KAEA8zb,EAAAhsc,KAAAyvE,GAAAu5X,EAAA,SAAAO,EAAA38b,GACA,IAAAsB,EAEAm7b,EAAAE,EAAA3mc,MAAA2mc,EAAA38b,SACAkmS,EAAAy2J,EAAA0C,YAAA5b,EAEAkZ,EAAA38b,MAAA,GAAAA,EAEA,IAAAs/b,EAAAp5J,EAAA76R,EACA,QACSC,MAAA,gBAAAwH,IACTm1D,MAAA,SAAAr1D,GACAsqb,EAAAP,EAAA/pb,UAKA,KAEA2sb,EAAA5C,EAAAzwb,OAAArG,OAAA82b,EAAA92b,MACA2yN,EAAAmkO,EAAA17M,OAAA,KACA,OAAA51O,EACA,OAEAC,OAAAhK,GACAk+b,iBAAA,GACWl+b,EAAA,MAAA8Q,EAAA8pb,SAAAF,cAAA,EAAA16b,EAAA,aAAAq7b,EAAA17M,OAAA3/O,EAAA,eAAAq7b,EAAA71X,SAAAxlE,EAAA,eAAA4kS,EAAA5kS,EAAA,YAAA8Q,EAAAyrb,QAAAv8b,GACXmJ,OAAkB3V,GAAA,OAAA2nc,EAClBgD,gBAAA,QAAAhD,EACArlS,KAAA,MACAsoQ,gBAAAi9B,EAAA17M,OAEAzoB,YAEAxsN,IAAA,OAAA2jP,UAAA,EACA78O,IACA6tB,MAAA,WACAm+Z,KAEAzlO,KAAA,WACAyjO,KAEA70X,MAAA,SAAAr1D,GACAkqb,IAA4BG,EAAAN,EAAAF,EAAA7pb,IAE5B6yR,QAAA,SAAA7yR,IACAszR,GAAA,KAAAtzR,EAAA08P,SAAA,IAAA18P,EAAA08P,SACA4tL,EAAAP,EAAA/pb,OAKA2sb,EAAAD,MAGA,OAAAj0b,EACA,OACOC,OAAA,oBAAAqyb,EAAA,yBAAAvqc,KAAA8oc,SAAAF,eACPmD,EAAA9zb,EACA,OACSC,OAAA,uBAAAU,IAAA,cACTX,EACA,OAEAC,OAAA,qBAAAlY,KAAA8oc,SAAAF,YAAAC,IAAA,qBAAA/oc,QAAAE,KAAA8oc,SAAAF,aAAA,iBACAhwb,IAAA,MACAL,MAAAoyb,EACAtzb,OAAoB2sJ,KAAA,WAEpBtkJ,IACA2yR,QAAAm5J,KAGAhoc,EAMA,KANAyU,EACA,WAEAZ,OAAsB20b,KAAAhD,QAGtBgD,SAKAjsb,QAAA,YACA,EAAA2qM,EAAApsM,mBAAAte,KAAA0c,IAAA1c,KAAAu8C,QACA1sC,SAAA+O,iBAAA,mBAAA5e,KAAA2rc,yBACAh8b,OAAAiP,iBAAA,OAAA5e,KAAA6rc,mBACAl8b,OAAAiP,iBAAA,QAAA5e,KAAA8rc,qBAEA9rb,cAAA,WACAhgB,KAAA0c,KAAA1c,KAAAu8C,SAAA,EAAAmuK,EAAAnsM,sBAAAve,KAAA0c,IAAA1c,KAAAu8C,QACA1sC,SAAAiP,oBAAA,mBAAA9e,KAAA2rc,yBACAh8b,OAAAmP,oBAAA,OAAA9e,KAAA6rc,mBACAl8b,OAAAmP,oBAAA,QAAA9e,KAAA8rc,uBAMA,SAAA5oc,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA+kc,EAAA/sc,EAAA,KACAgtc,EAAAhtc,EAAA6+C,EAAAkuZ,GACAE,EAAAjtc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAo5X,EAAAh3b,EACAi3b,EAAA,GATA,EAEA,KAEA,KAEA,MAUAjoZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAKAjuE,EAAA4V,SACAnW,KAAA,SAEAE,OACAkpc,KAAAngc,OAGAwnE,QAAA,YAEAx3D,UACAsnJ,UACAw8E,OAAA,EACA37O,IAAA,WACA,IAAA6Y,EAAA7c,KAEA,IAAAA,KAAAmsN,QAAA1tM,MAAAutb,KAAA,SACA,IAAAzzb,KACAmqB,EAAA,EACA+pa,EAAA,EACA7B,GAAA,qBAAA9qc,QAAAE,KAAA8oc,SAAAF,aAAA,iBACA8D,EAAA,UAAA9B,EAAA,QACAP,EAAA,SAAAh6Z,GACA,OAAAA,EAAA/3B,cAAA/P,QAAA,uBAAA2nC,GACA,OAAAA,EAAA8B,iBAGAhyC,KAAAgsc,KAAAn0V,MAAA,SAAAojK,EAAAruQ,GACA,IAAA8P,EAAAG,EAAAsvM,QAAA1tM,MAAAutb,KAAAp/b,GACA,QAAA8P,IAIAu+P,EAAAptB,QAIA4+M,EAAA/vb,EAAA,SAAA2tb,EAAAO,IACA,UAAAA,GAAA/tb,EAAAmvb,KAAA/qc,OAAA,IACAwrc,GAAA,IAAA7/b,OAAAiQ,EAAAmvb,KAAA/qc,OAAA,UAEA,IAPAyhC,GAAAhmB,EAAA,SAAA2tb,EAAAO,KACA,MAUA,UAAAA,GAAA,IAAAloa,IACAA,GAAA,IAEA,IAAAzK,EAAA,YAAAoya,EAAAqC,GAAA,IAAAhqa,EAAA,MAMA,OALAnqB,EAAAqyb,GAAA6B,EAAA,KACAl0b,EAAA0f,YACA1f,EAAA60M,YAAAn1L,EACA1f,EAAA80M,gBAAAp1L,EAEA1f,OAQA,SAAArV,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,sBAAAc,MAAA,MAAhFlY,KAAgF8oc,SAAA,YAAAvwb,MAAhFvY,KAAgF,YAEzF2X,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAwhc,EAAAptc,EAAA,KAEAqtc,GAEAzhc,EAFAwhc,IAEsCxhc,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eyhc,EAAA7zb,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAq4a,EAAA7zb,QAAAnW,KAAAgqc,EAAA7zb,UAGA5V,EAAA4V,QAAA6zb,EAAA7zb,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAslc,EAAAttc,EAAA,KACAutc,EAAAvtc,EAAA6+C,EAAAyuZ,GACAE,EAAAxtc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA25X,EAAAv3b,EACAw3b,EAAA,GATA,EAEA,KAEA,KAEA,MAUAxoZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAeAjuE,EAAA4V,SACAnW,KAAA,YAEA2/K,cAAA,YAEAz/K,OACA2P,MAAAtB,OACA67b,aAAA7zb,SACAvW,KAAAuO,OACA2hS,SAAAr5R,QACAi6D,SAAAj6D,QACAm0O,KAAAn0O,SAGA3I,KAAA,WACA,OACAlE,MAAA,KACAqxG,QAAA,IAKApiG,UACAowb,WAAA,WACA,OAAAjsc,KAAA8yS,UAAA9yS,KAAAmsN,QAAA2mF,UAEAjlD,OAAA,WACA,IAAAA,EAAA7tP,KAAAmsN,QAAA48O,eAAA/oc,KAAA4C,MAAA5C,KAAA4M,OAIA,OAHAihP,IACA7tP,KAAAi+G,QAAA,GAEA4vI,GAEAo/M,SAAA,WACA,OAAAjtc,KAAA4C,MAAA5C,KAAA4M,QAIAmT,QAAA,WACA/f,KAAAmsN,QAAAw9O,SAAA3pc,OAEAunN,UAAA,WACAvnN,KAAA0c,KAAA1c,KAAA0c,IAAA6vB,YACAvsC,KAAA0c,IAAA6vB,WAAAC,YAAAxsC,KAAA0c,KAEA1c,KAAAmsN,QAAAy9O,YAAA5pc,OAIAub,OACA9I,MAAA,WACAzS,KAAAmsN,QAAA6nC,mBAOA,SAAA9wP,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAu9D,EAAAq5K,MAAAr5K,EAAA0pC,QAAA1pC,EAAAs5K,OAAA32O,EAAA,OAA2DktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,OAAAn1D,WAAA,WAAoEhI,YAAA,cAAAC,OAAmC2sJ,KAAA,WAAA6iD,eAAAtyI,EAAAs5K,OAAAnsP,GAAA,QAAA6yE,EAAA04X,SAAAC,kBAAA,OAAA34X,EAAA04X,YAAqH14X,EAAAQ,GAAA,eAAAR,EAAAO,MAE5Wn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAonS,EAAAhzS,EAAA,KAEAizS,GAEArnS,EAFAonS,IAEsCpnS,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7EqnS,EAAAz5R,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAi+Q,EAAAz5R,QAAAnW,KAAA4vS,EAAAz5R,UAGA5V,EAAA4V,QAAAy5R,EAAAz5R,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAmrS,EAAAnzS,EAAA,KACAozS,EAAApzS,EAAA6+C,EAAAs0P,GACAE,EAAArzS,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAw/N,EAAAp9R,EACAq9R,EAAA,GATA,EAEA,KAEA,KAEA,MAUAruP,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAmBAjuE,EAAA4V,SACAnW,KAAA,QACAE,OACAuuC,KAAAlgC,OACA2hS,SAAAr5R,QACAjW,KAAA2N,OACA4hS,IAAAt5R,QACAu5R,mBAAAv5R,QACAtT,MAAAgL,OACA0gB,KAAA1gB,QAEA4K,SACAk3R,YAAA,SAAA17O,GACAv3D,KAAAge,MAAA,QAAAu5C,KAGA17C,UACAq3R,QAAA,WACA,OAAAlzS,KAAA6xB,OAAA7xB,KAAAi0E,cAA8CpiD,SAO9C,SAAA3uB,EAAAqhD,EAAAhlD,GAEA,aACA,IAMA+0E,GAAiB7wE,OANjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA2xE,EAAAy+N,mBAAA,0BAA0D97R,EAAA,QAAaE,YAAA,SAAAc,OAC/Lq8D,EAAA/wE,KAAA,WAAA+wE,EAAA/wE,KAAA,GACA+wE,EAAA2+N,SAAA,WAAA3+N,EAAA2+N,SACOE,SAAA7+N,EAAAw+N,MACPx6R,OAAckC,gBAAA85D,EAAApuE,SAA6BouE,EAAAQ,GAAA,WAAAR,EAAA,SAAAr9D,EAAA,KAA2CE,YAAA,8BAAAsI,IAA8Cm1D,MAAA,SAAA0vG,GAAyBA,EAAAC,kBAAyBjwG,EAAA0+N,YAAA1uH,OAA0BhwG,EAAAO,MAAA,MAE/Ln9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAgic,EAAA5tc,EAAA,KAEA6tc,GAEAjic,EAFAgic,IAEsChic,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eiic,EAAAr0b,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA64a,EAAAr0b,QAAAnW,KAAAwqc,EAAAr0b,UAGA5V,EAAA4V,QAAAq0b,EAAAr0b,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA8lc,EAAA9tc,EAAA,KACA+tc,EAAA/tc,EAAA6+C,EAAAivZ,GACAE,EAAAhuc,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAm6X,EAAA/3b,EACAg4b,EAAA,GATA,EAEA,KAEA,KAEA,MAUAhpZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAo8X,EAAAt2X,EAFA33E,EAAA,MAIAE,EAAAF,EAAA,IAIAkuc,EAAAv2X,EAFA33E,EAAA,MAIAgxU,EAAAhxU,EAAA,IAIA8iL,EAAAnrG,EAFA33E,EAAA,IAIA4uD,EAAA5uD,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAkC7EhI,EAAA4V,SACAnW,KAAA,SAEA0/K,QAAAD,EAAAtpK,SAEAqb,YACAs5a,WAAAD,EAAA10b,SAGAjI,KAAA,WACA,OACA+tK,MAAA,KACAhkI,KAAA,KACAkjS,YAAA,KACA4vH,UAAA,KACAC,iBACA9jB,WACA+jB,mBAAA,EACAC,aAAA,KACAC,SAAA,KACAC,WAAA,KAMAlrc,OACAgO,MACAtN,KAAAqI,OAEA4yS,WACAj7S,KAAA2N,OACA4H,QAAA,WACA,SAAAw3T,EAAA9nP,GAAA,uBAGAwlX,mBACAzqc,KAAAiW,QACAV,SAAA,GAEAm1b,QAAA/8b,OACAg9b,cAAA10b,QACAoia,iBAAApia,QACA20b,mBACA5qc,KAAAiW,QACAV,SAAA,GAEAs1b,iBAAA50b,QACA60b,kBACA9qc,KAAAiW,QACAV,SAAA,GAEAw1b,kBACA/qc,KAAAiW,QACAV,SAAA,GAEAy1b,mBAAA3ic,MACA4ic,oBAAA5ic,MACA+nZ,cAAAz6Y,SACAu1b,cACAlrc,KAAAiW,QACAV,SAAA,GAEAk+I,WACAzzJ,KAAAiW,QACAV,SAAA,GAEA41b,UAAAx1b,SACA60b,UAAA70b,SACArW,OACAiW,QAAA,WACA,OACAwvK,SAAA,WACA91K,MAAA,QACA+gE,KAAA,OACAE,SAAA,cAIAk6K,MACApqP,KAAAiW,QACAV,SAAA,GAEA61b,iBAAAn1b,QACA4gG,KAAAlhG,SACA01b,iBAAA11b,SACA21b,UAAAr1b,QACA81H,QACA/rI,KAAAuX,OACAhC,QAAA,KAIA8C,UACA0sK,UACAvjI,IAAA,SAAAz9C,GACAvH,KAAA8Q,KAAAvJ,GAEAvD,IAAA,WACA,OAAAhE,KAAA8Q,OAIAi+b,cAAA,WACA,OAAAljc,MAAA3L,UAAAoC,MAAAoJ,KAAA1L,KAAA2tc,YAEA1ta,QAAA,WACA,IAAAwgM,EAAAzgO,KAAA66C,KAAA4lL,WAEA,OAAAA,GAAA,IAAAA,EAAAx/N,QAAAw/N,EAAA5oH,MAAA,SAAA3pG,GAEA,OADAA,EAAAspE,YAMAj8D,OACAizb,mBAAA,SAAAruQ,GACAngM,KAAA6+K,MAAAmwR,qBAAA7uQ,IAEAsuQ,oBAAA,SAAAtuQ,GACAngM,KAAA6+K,MAAA4vR,oBAAAtuQ,EACAngM,KAAA6+K,MAAAowR,uBAAA9uQ,IAEArvL,KAAA,SAAAqvL,GACAngM,KAAA6+K,MAAA9B,QAAAojB,IAEAytQ,cAAA,SAAArgc,GACA1B,MAAA3L,UAAA4J,QAAA4B,KAAA6B,EAAA,SAAA2hc,GACAA,EAAAxoa,aAAA,kBAGAyna,cAAA,SAAAhuQ,GACAngM,KAAA6+K,MAAAsvR,cAAAhuQ,IAIApkL,SACAqL,OAAA,SAAA7f,GACA,IAAAvH,KAAA6uc,iBAAA,UAAAxvY,MAAA,mDACAr/D,KAAA6+K,MAAAz3J,OAAA7f,IAEAiwZ,WAAA,SAAAt+V,GACA,SAAAz5D,EAAA+3Z,YAAAx3Z,KAAAkuc,QAAAh1Y,EAAApoD,OAEAq+b,YAAA,SAAAr+b,GACA,IAAA9Q,KAAAkuc,QAAA,UAAA7uY,MAAA,6CACA,IAAAnG,EAAAl5D,KAAA6+K,MAAAuwR,QAAAt+b,GACA,IAAAooD,EAAA,SAGA,IAFA,IAAA74D,GAAA64D,EAAApoD,MACAy4B,EAAA2vB,EAAA3vB,OACAA,OAAAvpC,KAAA66C,MACAx6C,EAAAkB,KAAAgoC,EAAAz4B,MACAy4B,WAEA,OAAAlpC,EAAAknB,WAEA8nb,gBAAA,SAAAC,EAAAC,GACA,OAAAvvc,KAAA6+K,MAAAwwR,gBAAAC,EAAAC,IAEAC,eAAA,SAAAF,GACA,OAAAtvc,KAAA6+K,MAAA2wR,eAAAF,IAEAG,eAAA,WACA,IAAA1xH,EAAA/9U,KAAA6+K,MAAA4wR,iBACA,OAAA1xH,IAAAjtU,KAAA,MAEA4+b,cAAA,WACA,IAAA1vc,KAAAkuc,QAAA,UAAA7uY,MAAA,+CACA,IAAA0+Q,EAAA/9U,KAAAyvc,iBACA,OAAA1xH,IAAA/9U,KAAAkuc,SAAA,MAEAyB,gBAAA,SAAArqR,EAAAgqR,GACA,IAAAtvc,KAAAkuc,QAAA,UAAA7uY,MAAA,iDACAr/D,KAAA6+K,MAAA8wR,gBAAArqR,EAAAgqR,IAEAM,eAAA,SAAA/lc,EAAAylc,GACA,IAAAtvc,KAAAkuc,QAAA,UAAA7uY,MAAA,gDACAr/D,KAAA6+K,MAAA+wR,eAAA/lc,EAAAylc,IAEAO,WAAA,SAAA/+b,EAAA0ka,EAAAh6Z,GACAxb,KAAA6+K,MAAAgxR,WAAA/+b,EAAA0ka,EAAAh6Z,IAEAs0b,oBAAA,WACA,OAAA9vc,KAAA6+K,MAAAixR,uBAEAC,mBAAA,WACA,OAAA/vc,KAAA6+K,MAAAkxR,sBAEAC,eAAA,SAAA92Y,GACA,IAAAl5D,KAAAkuc,QAAA,UAAA7uY,MAAA,gDACAr/D,KAAA6+K,MAAAoxR,mBAAA/2Y,IAEAg3Y,cAAA,SAAAnmc,GACA,IAAA/J,KAAAkuc,QAAA,UAAA7uY,MAAA,+CACAr/D,KAAA6+K,MAAAsxR,kBAAApmc,IAEAqlc,QAAA,SAAAt+b,GACA,OAAA9Q,KAAA6+K,MAAAuwR,QAAAt+b,IAEArM,OAAA,SAAAqM,GACA9Q,KAAA6+K,MAAAp6K,OAAAqM,IAEAu7B,OAAA,SAAAv7B,EAAAy7B,GACAvsC,KAAA6+K,MAAAxyI,OAAAv7B,EAAAy7B,IAEA2sI,aAAA,SAAApoK,EAAAs/b,GACApwc,KAAA6+K,MAAA3F,aAAApoK,EAAAs/b,IAEAhsG,YAAA,SAAAtzV,EAAAs/b,GACApwc,KAAA6+K,MAAAulL,YAAAtzV,EAAAs/b,IAEAC,iBAAA,SAAA9qR,EAAArsH,EAAA3Z,GACAv/C,KAAAi9S,UAAA,gCAAA/jP,GACAl5D,KAAAge,MAAA,cAAAunK,EAAArsH,EAAA3Z,IAEA+wZ,kBAAA,SAAAvmc,EAAA+G,GACA,IAAA9Q,KAAAkuc,QAAA,UAAA7uY,MAAA,gDACAr/D,KAAA6+K,MAAAqtF,eAAAniQ,EAAA+G,IAEAy/b,aAAA,WACAvwc,KAAA2tc,UAAA3tc,KAAA0c,IAAAmkC,iBAAA,gCACA7gD,KAAA4tc,cAAA5tc,KAAA0c,IAAAmkC,iBAAA,wBACA,IAAA2vZ,EAAAxwc,KAAA0c,IAAAmkC,iBAAA,8BACA2vZ,EAAAvvc,OACAuvc,EAAA,GAAA9pa,aAAA,cAGA1mC,KAAA2tc,UAAA,IAAA3tc,KAAA2tc,UAAA,GAAAjna,aAAA,eAEAyvY,cAAA,SAAA32Z,GACA,IAAAixb,EAAAjxb,EAAAjf,OACA,QAAAkwc,EAAA1vZ,UAAAjhD,QAAA,iBACA,IAAAo8Q,EAAA18P,EAAA08P,QACAl8Q,KAAA2tc,UAAA3tc,KAAA0c,IAAAmkC,iBAAA,gCACA,IAAAkhE,EAAA/hH,KAAA+uc,cAAAjvc,QAAA2wc,GACAtsZ,OAAA,GACA,OAAArkD,QAAAo8Q,IAAA,IAEA18P,EAAAmyK,iBAGAxtI,EAFA,KAAA+3N,EAEA,IAAAn6J,IAAA,IAEAA,EAAA/hH,KAAA+uc,cAAA9tc,OAAA,EAAA8gH,EAAA,IAEA/hH,KAAA+uc,cAAA5qZ,GAAA5W,UAEA,OAAAztC,QAAAo8Q,IAAA,IAEA18P,EAAAmyK,iBACA8+Q,EAAA57X,SAEA,IAAA67X,EAAAD,EAAAltZ,cAAA,sBACA,OAAAzjD,QAAAo8Q,IAAA,GAAAw0L,IAEAlxb,EAAAmyK,iBACA++Q,EAAA77X,YAKA/0D,QAAA,WACA,IAAAjD,EAAA7c,KAEAA,KAAA2wc,QAAA,EAEA3wc,KAAA6+K,MAAA,IAAA2uR,EAAAz0b,SACAhP,IAAA/J,KAAAkuc,QACAp9b,KAAA9Q,KAAA8Q,KACA88O,KAAA5tP,KAAA4tP,KACA9qP,MAAA9C,KAAA8C,MACAu3G,KAAAr6G,KAAAq6G,KACAu2V,eAAA5wc,KAAA4wc,eACAzC,cAAAnuc,KAAAmuc,cACAG,iBAAAtuc,KAAAsuc,iBACAE,mBAAAxuc,KAAAwuc,mBACAC,oBAAAzuc,KAAAyuc,oBACAF,iBAAAvuc,KAAAuuc,iBACA1yB,iBAAA77a,KAAA67a,iBACAgzB,iBAAA7uc,KAAA6uc,mBAGA7uc,KAAA66C,KAAA76C,KAAA6+K,MAAAhkI,KAEA,IAAAivY,EAAA9pb,KAAA8pb,UACA9pb,KAAAikL,IAAA,gCAAA1sH,EAAAs5Y,GACA,sBAAAh0b,EAAA8xb,YAAA9xb,EAAA8xb,UAAAkC,EAAA33Y,MAEA,OADA3B,EAAAo6H,kBACA,EAEAp6H,EAAAu5Y,aAAAC,cAAA,OAGA,IAGAx5Y,EAAAu5Y,aAAA/zR,QAAA,iBACO,MAAA54K,IACP2lb,EAAAgkB,aAAA+C,EACAh0b,EAAAmB,MAAA,kBAAA6yb,EAAA33Y,KAAA3B,KAGAv3D,KAAAikL,IAAA,+BAAA1sH,EAAAs5Y,GACA,IAAA9C,GAAA,EAAAtuc,EAAAg4Z,sBAAAlgW,EAAAh3D,OAAA,cACAywc,EAAAlnB,EAAAikB,SACAiD,OAAAjD,IACA,EAAA5/Y,EAAAosB,aAAAy2X,EAAAt0b,IAAA,iBAEA,IAAAoxb,EAAAhkB,EAAAgkB,aACA,GAAAA,GAAAC,EAAA,CAEA,IAAAkD,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACA,mBAAAv0b,EAAAmxb,YACAiD,EAAAp0b,EAAAmxb,UAAAF,EAAA50Y,KAAA60Y,EAAA70Y,KAAA,QACAk4Y,EAAAF,EAAAr0b,EAAAmxb,UAAAF,EAAA50Y,KAAA60Y,EAAA70Y,KAAA,SACAi4Y,EAAAt0b,EAAAmxb,UAAAF,EAAA50Y,KAAA60Y,EAAA70Y,KAAA,SAEA3B,EAAAu5Y,aAAAO,WAAAH,EAAA,eACAD,GAAAC,GAAAC,IAAAH,IAAAjD,IACAiD,GACAn0b,EAAAmB,MAAA,kBAAA8vb,EAAA50Y,KAAA83Y,EAAA93Y,KAAA3B,GAEA16C,EAAAmB,MAAA,kBAAA8vb,EAAA50Y,KAAA60Y,EAAA70Y,KAAA3B,KAGA05Y,GAAAC,GAAAC,KACArnB,EAAAikB,YAGAA,EAAA70Y,KAAAliB,cAAA82Z,EAAA50Y,OACAi4Y,GAAA,GAEApD,EAAA70Y,KAAAo4Y,kBAAAxD,EAAA50Y,OACA+3Y,GAAA,GAEAlD,EAAA70Y,KAAA1V,SAAAsqZ,EAAA50Y,MAAA,KACAg4Y,GAAA,IAEApD,EAAA50Y,OAAA60Y,EAAA70Y,MAAA40Y,EAAA50Y,KAAA1V,SAAAuqZ,EAAA70Y,SACA+3Y,GAAA,EACAC,GAAA,EACAC,GAAA,GAGA,IAAAI,EAAAxD,EAAArxb,IAAAiiC,wBACA6yZ,EAAA30b,EAAAH,IAAAiiC,wBAEA8yZ,OAAA,EACAC,EAAAT,EAAAC,EAAA,IAAAC,EAAA,SACAQ,EAAAR,EAAAD,EAAA,IAAAD,EAAA,QAEAW,GAAA,KACAv7Z,EAAAkhB,EAAAm6H,QAAA6/Q,EAAAv/b,IAEAy/b,EADAp7Z,EAAAk7Z,EAAAt4b,OAAAy4b,EACA,SACOr7Z,EAAAk7Z,EAAAt4b,OAAA04b,EACP,QACOT,EACP,QAEA,OAGA,IAAAW,EAAAh1b,EAAA4B,MAAAozb,cACA,WAAAJ,EACAG,EAAAL,EAAAv/b,IAAAw/b,EAAAx/b,IACO,UAAAy/b,IACPG,EAAAL,EAAAz8b,OAAA08b,EAAAx/b,KAEA6/b,EAAAt5b,MAAAvG,IAAA4/b,EAAA,KACAC,EAAAt5b,MAAA1S,KAAA0rc,EAAAzrc,MAAA0rc,EAAA3rc,KAAA,KAEA,UAAA4rc,GACA,EAAAtjZ,EAAA6rB,UAAA+zX,EAAArxb,IAAA,kBAEA,EAAAyxC,EAAAosB,aAAAwzX,EAAArxb,IAAA,iBAGAota,EAAA+jB,kBAAA,WAAA4D,GAAA,UAAAA,EACA3nB,EAAAkkB,UAAAlkB,EAAA+jB,mBAAAuD,EACAtnB,EAAA2nB,WACA50b,EAAAmB,MAAA,iBAAA8vb,EAAA50Y,KAAA60Y,EAAA70Y,KAAA3B,MAGAv3D,KAAAikL,IAAA,8BAAA1sH,GACA,IAAAu2Y,EAAAhkB,EAAAgkB,aACA2D,EAAA3nB,EAAA2nB,SACA1D,EAAAjkB,EAAAikB,SAKA,GAHAx2Y,EAAAo6H,iBACAp6H,EAAAu5Y,aAAAO,WAAA,OAEAvD,GAAAC,EAAA,CACA,IAAA+D,GAAgChhc,KAAAg9b,EAAA50Y,KAAApoD,MAChC,SAAA2gc,GACA3D,EAAA50Y,KAAAz0D,SAEA,WAAAgtc,EACA1D,EAAA70Y,KAAA3vB,OAAA2vI,aAAA44R,EAAA/D,EAAA70Y,MACS,UAAAu4Y,EACT1D,EAAA70Y,KAAA3vB,OAAA66T,YAAA0tG,EAAA/D,EAAA70Y,MACS,UAAAu4Y,GACT1D,EAAA70Y,KAAA64Y,YAAAD,GAEA,SAAAL,GACA50b,EAAAgiK,MAAAmzR,aAAAF,IAGA,EAAA3jZ,EAAAosB,aAAAwzX,EAAArxb,IAAA,iBAEAG,EAAAmB,MAAA,gBAAA8vb,EAAA50Y,KAAA60Y,EAAA70Y,KAAAu4Y,EAAAl6Y,GACA,SAAAk6Y,GACA50b,EAAAmB,MAAA,YAAA8vb,EAAA50Y,KAAA60Y,EAAA70Y,KAAAu4Y,EAAAl6Y,GAGAu2Y,IAAAC,GACAlxb,EAAAmB,MAAA,gBAAA8vb,EAAA50Y,KAAA,KAAAu4Y,EAAAl6Y,GAGAuyX,EAAA+jB,mBAAA,EACA/jB,EAAAgkB,aAAA,KACAhkB,EAAAikB,SAAA,KACAjkB,EAAAkkB,WAAA,KAGAjub,QAAA,WACA/f,KAAAuwc,eACAvwc,KAAA0c,IAAAkC,iBAAA,UAAA5e,KAAAm2a,gBAEA/uM,QAAA,WACApnO,KAAA2tc,UAAA3tc,KAAA0c,IAAAmkC,iBAAA,mBACA7gD,KAAA4tc,cAAA5tc,KAAA0c,IAAAmkC,iBAAA,2BAMA,SAAA39C,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAQAjmE,EARAH,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5I8mc,EAAA1yc,EAAA,KAEA2yc,GAIA/mc,EAJA8mc,IAIsC9mc,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7E1L,EAAAF,EAAA,IAMA,IAAA4yc,EAAA,WACA,SAAAA,EAAA1pc,GACA,IAAAoU,EAAA7c,KAOA,QAAAid,KAXA,SAAAsiC,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAM3F6+B,CAAA7iF,KAAAmyc,GAEAnyc,KAAA+9U,YAAA,KACA/9U,KAAA4wc,eAAA,KAEAnoc,EACAA,EAAA5F,eAAAoa,KACAjd,KAAAid,GAAAxU,EAAAwU,KAIAjd,KAAAu9U,YAEAv9U,KAAA66C,KAAA,IAAAq3Z,EAAAn5b,SACAjI,KAAA9Q,KAAA8Q,KACA+tK,MAAA7+K,OAGAA,KAAA4tP,MAAA5tP,KAAAq6G,OAEA+3V,EADApyc,KAAAq6G,MACAr6G,KAAA66C,KAAA,SAAA/pC,GACA+L,EAAAg+B,KAAAw3Z,iBAAAvhc,GACA+L,EAAAy1b,6BAGAtyc,KAAAsyc,2BAiVA,OA7UAH,EAAAjyc,UAAAknB,OAAA,SAAA7f,GACA,IAAAsnc,EAAA7uc,KAAA6uc,iBACAjhN,EAAA5tP,KAAA4tP,MACA,SAAAj1L,EAAAO,GACA,IAAAunK,EAAAvnK,EAAAre,KAAAqe,EAAAre,KAAA4lL,WAAAvnK,EAAAunK,WAQA,GANAA,EAAA32N,QAAA,SAAAwiC,GACAA,EAAAkrC,QAAAq3X,EAAAnjc,KAAA4gC,EAAA/kC,EAAA+kC,EAAAx7B,KAAAw7B,GAEAqsB,EAAArsB,MAGA4sB,EAAAse,SAAAipJ,EAAAx/N,OAAA,CACA,IAAAsxc,GAAA,EAEA9xO,EAAA32N,QAAA,SAAAwiC,GACAA,EAAAkrC,UAAA+6X,GAAA,KAGAr5Y,EAAAre,KACAqe,EAAAre,KAAA28B,SAAA,IAAA+6X,EAEAr5Y,EAAAse,SAAA,IAAA+6X,EAGAhrc,KAEA2xD,EAAAse,SAAAte,EAAAs5Y,QAAA5kN,GAAA10L,EAAAojX,UAGA3jX,CAAA34D,OAGAmyc,EAAAjyc,UAAA68K,QAAA,SAAAojB,GACAA,IAAAngM,KAAA66C,KAAA/pC,MAEA9Q,KAAA66C,KAAAkiI,QAAAojB,GACAngM,KAAAsyc,4BAEAtyc,KAAA66C,KAAAqxN,kBAIAimM,EAAAjyc,UAAAkvc,QAAA,SAAAt+b,GACA,GAAAA,aAAAohc,EAAAn5b,QAAA,OAAAjI,EACA,IAAA/G,EAAA,qBAAA+G,EAAA,YAAA9F,EAAA8F,OAAA,EAAArR,EAAA+3Z,YAAAx3Z,KAAA+J,IAAA+G,GACA,OAAA9Q,KAAAu9U,SAAAxzU,IAAA,MAGAooc,EAAAjyc,UAAAg5K,aAAA,SAAApoK,EAAA2hc,GACA,IAAArC,EAAApwc,KAAAovc,QAAAqD,GACArC,EAAA7ma,OAAA2vI,cAAiCpoK,QAAas/b,IAG9C+B,EAAAjyc,UAAAkkW,YAAA,SAAAtzV,EAAA2hc,GACA,IAAArC,EAAApwc,KAAAovc,QAAAqD,GACArC,EAAA7ma,OAAA66T,aAAgCtzV,QAAas/b,IAG7C+B,EAAAjyc,UAAAuE,OAAA,SAAAqM,GACA,IAAAooD,EAAAl5D,KAAAovc,QAAAt+b,GACAooD,KAAA3vB,QACA2vB,EAAA3vB,OAAAiD,YAAA0sB,IAIAi5Y,EAAAjyc,UAAAmsC,OAAA,SAAAv7B,EAAAsnP,GACA,IAAA7rN,EAAA6rN,EAAAp4P,KAAAovc,QAAAh3M,GAAAp4P,KAAA66C,KAEAtO,GACAA,EAAAwla,aAA8Bjhc,UAI9Bqhc,EAAAjyc,UAAAoyc,yBAAA,WACA,IAAAp0b,EAAAle,KAEAwuc,EAAAxuc,KAAAwuc,uBACAjxH,EAAAv9U,KAAAu9U,SAEAixH,EAAA1kc,QAAA,SAAA4oc,GACA,IAAAx5Y,EAAAqkR,EAAAm1H,GAEAx5Y,GACAA,EAAA22Y,YAAA,GAAA3xb,EAAAiwb,kBAKAgE,EAAAjyc,UAAAyyc,wBAAA,SAAAz5Y,IAGA,KAFAl5D,KAAAwuc,wBAEA1uc,QAAAo5D,EAAAnvD,MACAmvD,EAAA22Y,YAAA,GAAA7vc,KAAAmuc,gBAIAgE,EAAAjyc,UAAA8uc,qBAAA,SAAA7uQ,GACAA,IAAAngM,KAAAwuc,qBACAxuc,KAAAwuc,mBAAAruQ,EACAngM,KAAAsyc,6BAIAH,EAAAjyc,UAAA8xc,aAAA,SAAA94Y,GACAl5D,KAAA+J,KACAmvD,KAAApoD,YAGApD,IADAwrD,EAAAnvD,MACA/J,KAAAu9U,SAAArkR,EAAAnvD,KAAAmvD,KAGAi5Y,EAAAjyc,UAAA0yc,eAAA,SAAA15Y,GACA,IAAAl6C,EAAAhf,KAEAA,KAAA+J,KACAmvD,KAAApoD,OAEAooD,EAAAunK,WAAA32N,QAAA,SAAAwiC,GACAttB,EAAA4zb,eAAAtma,YAGAtsC,KAAAu9U,SAAArkR,EAAAnvD,OAGAooc,EAAAjyc,UAAAmvc,gBAAA,WACA,IAAAC,EAAAxqc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GACAyqc,EAAAzqc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA+tc,KAeA,OAdA,SAAAl6Y,EAAAO,IACAA,EAAAre,KAAAqe,EAAAre,KAAA4lL,WAAAvnK,EAAAunK,YAEA32N,QAAA,SAAAwiC,IACAA,EAAAkpY,SAAA+5B,GAAAjja,EAAAirY,kBAAA+3B,MAAAhja,EAAAkma,SACAK,EAAAtxc,KAAA+qC,EAAAx7B,MAGA6nD,EAAArsB,KAIAqsB,CAAA34D,MAEA6yc,GAGAV,EAAAjyc,UAAAsvc,eAAA,WACA,IAAAjwb,EAAAvf,KAEAsvc,EAAAxqc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA,OAAA9E,KAAAqvc,gBAAAC,GAAA3+b,IAAA,SAAAG,GACA,OAAAA,OAAwByO,EAAAxV,QAIxBooc,EAAAjyc,UAAA4vc,oBAAA,WACA,IAAAxqR,KAeA,OAdA,SAAA3sH,EAAAO,IACAA,EAAAre,KAAAqe,EAAAre,KAAA4lL,WAAAvnK,EAAAunK,YAEA32N,QAAA,SAAAwiC,GACAA,EAAAirY,eACAjyP,EAAA/jL,KAAA+qC,EAAAx7B,MAGA6nD,EAAArsB,KAIAqsB,CAAA34D,MAEAslL,GAGA6sR,EAAAjyc,UAAA6vc,mBAAA,WACA,IAAAzuV,EAAAthH,KAEA,OAAAA,KAAA8vc,sBAAAn/b,IAAA,SAAAG,GACA,OAAAA,OAAwBwwG,EAAAv3G,QAIxBooc,EAAAjyc,UAAA4yc,aAAA,WACA,IAAAC,KACAx1H,EAAAv9U,KAAAu9U,SACA,QAAA2wH,KAAA3wH,EACAA,EAAA16U,eAAAqrc,IACA6E,EAAAxxc,KAAAg8U,EAAA2wH,IAIA,OAAA6E,GAGAZ,EAAAjyc,UAAAgsQ,eAAA,SAAAniQ,EAAA+G,GACA,IAAAooD,EAAAl5D,KAAAu9U,SAAAxzU,GACA,GAAAmvD,EAAA,CAEA,IADA,IAAAunK,EAAAvnK,EAAAunK,WACA1/N,EAAA0/N,EAAAx/N,OAAA,EAAuCF,GAAA,EAAQA,IAAA,CAC/C,IAAAurC,EAAAm0L,EAAA1/N,GACAf,KAAAyE,OAAA6nC,EAAAx7B,MAEA,QAAA61F,EAAA,EAAAzzE,EAAApiB,EAAA7P,OAAqC0lG,EAAAzzE,EAAQyzE,IAAA,CAC7C,IAAAqsW,EAAAlic,EAAA61F,GACA3mG,KAAAqsC,OAAA2ma,EAAA95Y,EAAApoD,SAIAqhc,EAAAjyc,UAAA+yc,gBAAA,SAAAlpc,GACA,IAAAulc,EAAAxqc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GACAouc,EAAApuc,UAAA,GAEAiuc,EAAA/yc,KAAA8yc,eAAAx9b,KAAA,SAAAC,EAAAC,GACA,OAAAA,EAAA6N,MAAA9N,EAAA8N,QAEAs8N,EAAA/1O,OAAA8/B,OAAA,MACA7/B,EAAAD,OAAAC,KAAAqpc,GACAH,EAAAjpc,QAAA,SAAAovD,GACA,OAAAA,EAAA22Y,YAAA,QAEA,QAAA9uc,EAAA,EAAAmyB,EAAA6/a,EAAA9xc,OAAwCF,EAAAmyB,EAAOnyB,IAAA,CAC/C,IAAAm4D,EAAA65Y,EAAAhyc,GACAmtc,EAAAh1Y,EAAApoD,KAAA/G,GAAAnC,WAEA,GADAiC,EAAA/J,QAAAouc,IAAA,EACA,CAQA,IADA,IAAA3ka,EAAA2vB,EAAA3vB,OACAA,KAAAlmB,MAAA,GACAs8N,EAAAp2M,EAAAz4B,KAAA/G,KAAA,EACAw/B,WAGA2vB,EAAAs5Y,QAAAxyc,KAAAmuc,cACAj1Y,EAAA22Y,YAAA,OAGA32Y,EAAA22Y,YAAA,MAEAP,GACA,WACAp2Y,EAAA22Y,YAAA,OACA,SAAAl3Y,EAAAO,GACAA,EAAAunK,WACA32N,QAAA,SAAAwiC,GACAA,EAAAkma,QACAlma,EAAAuja,YAAA,MAEAl3Y,EAAArsB,KAGAqsB,CAAAO,GAXA,SAnBAA,EAAAs8W,UAAA71L,EAAAuuN,IACAh1Y,EAAA22Y,YAAA,QAmCAsC,EAAAjyc,UAAAyvc,gBAAA,SAAAvwY,GACA,IAAAkwY,EAAAxqc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEAiF,EAAA/J,KAAA+J,IACAmpc,KACA9zY,EAAAt1D,QAAA,SAAA6C,GACAumc,GAAAvmc,OAA6B5C,KAAA,IAG7B/J,KAAAizc,gBAAAlpc,EAAAulc,EAAA4D,IAGAf,EAAAjyc,UAAA0vc,eAAA,SAAA/lc,GACA,IAAAylc,EAAAxqc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA9E,KAAAwuc,mBAAA3kc,EACA,IAAAE,EAAA/J,KAAA+J,IACAmpc,KACArpc,EAAAC,QAAA,SAAAC,GACAmpc,EAAAnpc,IAAA,IAGA/J,KAAAizc,gBAAAlpc,EAAAulc,EAAA4D,IAGAf,EAAAjyc,UAAA+uc,uBAAA,SAAAplc,GACA,IAAAuhJ,EAAAprJ,KAEA6J,QACA7J,KAAAyuc,oBAAA5kc,EAEAA,EAAAC,QAAA,SAAAC,GACA,IAAAmvD,EAAAkyF,EAAAgkT,QAAArlc,GACAmvD,KAAAojX,OAAA,KAAAlxR,EAAAmjT,qBAIA4D,EAAAjyc,UAAA2vc,WAAA,SAAA/+b,EAAA0ka,EAAAh6Z,GACA,IAAA09C,EAAAl5D,KAAAovc,QAAAt+b,GAEAooD,GACAA,EAAA22Y,aAAAr6B,EAAAh6Z,IAIA22b,EAAAjyc,UAAAuvc,eAAA,WACA,OAAAzvc,KAAA+9U,aAGAo0H,EAAAjyc,UAAA8vc,eAAA,SAAA92Y,GACAl5D,KAAA+9U,YAAA7kR,GAGAi5Y,EAAAjyc,UAAA+vc,mBAAA,SAAA/2Y,GACA,IAAAnvD,EAAAmvD,EAAAl5D,KAAA+J,KACA46Y,EAAA3kZ,KAAAu9U,SAAAxzU,GACA/J,KAAAgwc,eAAArrD,IAGAwtD,EAAAjyc,UAAAiwc,kBAAA,SAAApmc,GACA,UAAAA,EAAA,CAIA,IAAAmvD,EAAAl5D,KAAAovc,QAAArlc,GACAmvD,IACAl5D,KAAA+9U,YAAA7kR,QALAl5D,KAAA+9U,YAAA,MASAo0H,EA9WA,GAiXAhvc,EAAA4V,QAAAo5b,GAKA,SAAAjvc,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAAgwc,mBAAAzlc,EAEA,IAUAvC,EAVAH,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5I+gG,EAAA,WAAgC,SAAA7mD,EAAA9kD,EAAAuC,GAA2C,QAAA/B,EAAA,EAAgBA,EAAA+B,EAAA7B,OAAkBF,IAAA,CAAO,IAAAorG,EAAArpG,EAAA/B,GAA2BorG,EAAA9gG,WAAA8gG,EAAA9gG,aAAA,EAAwD8gG,EAAA7gG,cAAA,EAAgC,UAAA6gG,MAAA5gG,UAAA,GAAuD3B,OAAAwB,eAAA7K,EAAA4rG,EAAApiG,IAAAoiG,IAA+D,gBAAAvpB,EAAAwpB,EAAAC,GAA2L,OAAlID,GAAA/mD,EAAAu9B,EAAA1iF,UAAAksG,GAAqEC,GAAAhnD,EAAAu9B,EAAAypB,GAA6DzpB,GAAxhB,GAEA6iX,EAAAlmc,EAAA,IAEA43E,GAIAhsE,EAJAs6b,IAIsCt6b,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7E1L,EAAAF,EAAA,IAMA,IAAA4zc,EAAAhwc,EAAAgwc,cAAA,SAAAj6Y,GAIA,IAHA,IAAAiG,GAAA,EACAi0Y,GAAA,EACAC,GAAA,EACAtyc,EAAA,EAAAmyB,EAAAgmC,EAAAj4D,OAAkCF,EAAAmyB,EAAOnyB,IAAA,CACzC,IAAAq9C,EAAA8a,EAAAn4D,KACA,IAAAq9C,EAAAo3X,SAAAp3X,EAAAm5X,iBACAp4W,GAAA,EACA/gB,EAAAs1B,WACA2/X,GAAA,MAGA,IAAAj1Z,EAAAo3X,SAAAp3X,EAAAm5X,iBACA67B,GAAA,GAIA,OAAUj0Y,MAAAi0Y,OAAAC,oBAAAxS,MAAA1hY,IAAAi0Y,IAGVE,EAAA,SAAAA,EAAAp6Y,GACA,OAAAA,EAAAunK,WAAAx/N,OAAA,CAEA,IAAAsyc,EAAAJ,EAAAj6Y,EAAAunK,YACAthK,EAAAo0Y,EAAAp0Y,IACAi0Y,EAAAG,EAAAH,KACAvS,EAAA0S,EAAA1S,KAEA1hY,GACAjG,EAAAs8W,SAAA,EACAt8W,EAAAq+W,eAAA,GACGspB,GACH3nY,EAAAs8W,SAAA,EACAt8W,EAAAq+W,eAAA,GACG67B,IACHl6Y,EAAAs8W,SAAA,EACAt8W,EAAAq+W,eAAA,GAGA,IAAAhuY,EAAA2vB,EAAA3vB,OACAA,GAAA,IAAAA,EAAAlmB,QAEA61C,EAAA2lH,MAAAsvR,eACAmF,EAAA/pa,MAIAiqa,EAAA,SAAAt6Y,EAAAp4D,GACA,IAAAgC,EAAAo2D,EAAA2lH,MAAA/7K,MACAgO,EAAAooD,EAAApoD,SACAkvC,EAAAl9C,EAAAhC,GAEA,sBAAAk/C,EACA,OAAAA,EAAAlvC,EAAAooD,GACG,oBAAAlZ,EACH,OAAAlvC,EAAAkvC,GACG,YAAAA,EAAA,CACH,IAAAyzZ,EAAA3ic,EAAAhQ,GACA,YAAA4M,IAAA+lc,EAAA,GAAAA,IAIAC,EAAA,EAEAx2H,EAAA,WACA,SAAAA,EAAAz0U,GAYA,QAAA7F,KA/EA,SAAA28C,EAAAqjC,GAAiD,KAAArjC,aAAAqjC,GAA0C,UAAA5+B,UAAA,qCAoE3F6+B,CAAA7iF,KAAAk9U,GAEAl9U,KAAA0B,GAAAgyc,IACA1zc,KAAAqxC,KAAA,KACArxC,KAAAw1a,SAAA,EACAx1a,KAAAu3a,eAAA,EACAv3a,KAAA8Q,KAAA,KACA9Q,KAAA48a,UAAA,EACA58a,KAAAupC,OAAA,KACAvpC,KAAAw3E,SAAA,EAEA/uE,EACAA,EAAA5F,eAAAD,KACA5C,KAAA4C,GAAA6F,EAAA7F,IAKA5C,KAAAqjB,MAAA,EACArjB,KAAAi+G,QAAA,EACAj+G,KAAAygO,cACAzgO,KAAA2Y,SAAA,EAEA3Y,KAAAupC,SACAvpC,KAAAqjB,MAAArjB,KAAAupC,OAAAlmB,MAAA,GAGA,IAAAw7J,EAAA7+K,KAAA6+K,MACA,IAAAA,EACA,UAAAx/G,MAAA,4BAEAw/G,EAAAmzR,aAAAhyc,MAEA,IAAA8C,EAAA+7K,EAAA/7K,MACA,GAAAA,QAAA,IAAAA,EAAA0vc,OAAA,CACA,IAAAA,EAAAgB,EAAAxzc,KAAA,UACA,kBAAAwyc,IACAxyc,KAAA2zc,aAAAnB,GAgBA,IAZA,IAAA3zR,EAAA+uE,MAAA5tP,KAAA8Q,MACA9Q,KAAA+8K,QAAA/8K,KAAA8Q,MAEA+tK,EAAAg9P,mBACA77a,KAAA48a,UAAA,IAEK58a,KAAAqjB,MAAA,GAAAw7J,EAAA+uE,MAAA/uE,EAAAg9P,kBACL77a,KAAAs8a,SAEAzwa,MAAAC,QAAA9L,KAAA8Q,QACA,EAAArR,EAAA83Z,cAAAv3Z,UAAA8Q,MAEA9Q,KAAA8Q,KAAA,CACA,IAAA29b,EAAA5vR,EAAA4vR,oBACA1kc,EAAA80K,EAAA90K,IACAA,GAAA0kc,IAAA,IAAAA,EAAA3uc,QAAAE,KAAA+J,MACA/J,KAAAs8a,OAAA,KAAAz9P,EAAA0vR,kBAGAxkc,QAAA2D,IAAAmxK,EAAA+xR,gBAAA5wc,KAAA+J,MAAA80K,EAAA+xR,iBACA/xR,EAAAk/J,YAAA/9U,MAGA6+K,EAAA+uE,MACA/uE,EAAA8zR,wBAAA3yc,MAGAA,KAAA4zc,mBA4YA,OAzYA12H,EAAAh9U,UAAA68K,QAAA,SAAAjsK,GACAjF,MAAAC,QAAAgF,KACA,EAAArR,EAAA83Z,cAAAv3Z,KAAA8Q,GAGA9Q,KAAA8Q,OACA9Q,KAAAygO,cASA,IAPA,IAAAl4C,OAAA,EAOAxnL,EAAA,EAAAmyB,GALAq1J,EADA,IAAAvoL,KAAAqjB,OAAArjB,KAAA8Q,gBAAAjF,MACA7L,KAAA8Q,KAEA0ic,EAAAxzc,KAAA,iBAGAiB,OAAwCF,EAAAmyB,EAAOnyB,IAC/Cf,KAAA+xc,aAAwBjhc,KAAAy3K,EAAAxnL,MAIxBm8U,EAAAh9U,UAAAsjD,SAAA,SAAAjjD,GACA,IAAAib,IAAA1W,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,KAAAA,UAAA,GAeA,OAbA,SAAAihP,EAAAx8M,GAGA,IAFA,IAAAg/I,EAAAh/I,EAAAk3L,eACA1vN,GAAA,EACAhQ,EAAA,EAAAmyB,EAAAq1J,EAAAtnL,OAA0CF,EAAAmyB,EAAOnyB,IAAA,CACjD,IAAAurC,EAAAi8I,EAAAxnL,GACA,GAAAurC,IAAA/rC,GAAAib,GAAAuqO,EAAAz5M,GAAA,CACAv7B,GAAA,EACA,OAGA,OAAAA,EAGAg1O,CAAA/lP,OAGAk9U,EAAAh9U,UAAAuE,OAAA,WACA,IAAA8kC,EAAAvpC,KAAAupC,OACAA,GACAA,EAAAiD,YAAAxsC,OAIAk9U,EAAAh9U,UAAA6xc,YAAA,SAAAzla,EAAA1/B,EAAAqqD,GACA,IAAA3qB,EAAA,UAAA+yB,MAAA,yCAEA,KAAA/yB,aAAA4wS,GAAA,CACA,IAAAjmR,EAAA,CACA,IAAAsxH,EAAAvoL,KAAA6zc,aAAA,IACA,IAAAtrR,EAAAzoL,QAAAwsC,EAAAx7B,aACA,IAAAlE,KAAA,EACA27K,EAAAhnL,KAAA+qC,EAAAx7B,MAEAy3K,EAAAjnL,OAAAsL,EAAA,EAAA0/B,EAAAx7B,QAIA,EAAAqmE,EAAAp+D,SAAAuzB,GACA/C,OAAAvpC,KACA6+K,MAAA7+K,KAAA6+K,QAEAvyI,EAAA,IAAA4wS,EAAA5wS,GAGAA,EAAAjpB,MAAArjB,KAAAqjB,MAAA,OAEA,IAAAzW,KAAA,EACA5M,KAAAygO,WAAAl/N,KAAA+qC,GAEAtsC,KAAAygO,WAAAn/N,OAAAsL,EAAA,EAAA0/B,GAGAtsC,KAAA4zc,mBAGA12H,EAAAh9U,UAAAg5K,aAAA,SAAA5sI,EAAA1zB,GACA,IAAAhM,OAAA,EACAgM,IACAhM,EAAA5M,KAAAygO,WAAA3gO,QAAA8Y,IAEA5Y,KAAA+xc,YAAAzla,EAAA1/B,IAGAswU,EAAAh9U,UAAAkkW,YAAA,SAAA93T,EAAA1zB,GACA,IAAAhM,OAAA,EACAgM,IAEA,KADAhM,EAAA5M,KAAAygO,WAAA3gO,QAAA8Y,MACAhM,GAAA,GAEA5M,KAAA+xc,YAAAzla,EAAA1/B,IAGAswU,EAAAh9U,UAAAssC,YAAA,SAAAF,GACA,IAAAi8I,EAAAvoL,KAAA6zc,kBACAz1a,EAAAmqJ,EAAAzoL,QAAAwsC,EAAAx7B,MACAstB,GAAA,GACAmqJ,EAAAjnL,OAAA88B,EAAA,GAGA,IAAAxxB,EAAA5M,KAAAygO,WAAA3gO,QAAAwsC,GAEA1/B,GAAA,IACA5M,KAAA6+K,OAAA7+K,KAAA6+K,MAAA+zR,eAAAtma,GACAA,EAAA/C,OAAA,KACAvpC,KAAAygO,WAAAn/N,OAAAsL,EAAA,IAGA5M,KAAA4zc,mBAGA12H,EAAAh9U,UAAA4zc,kBAAA,SAAAhjc,GAGA,IAFA,IAAAs5L,EAAA,KAEArpM,EAAA,EAAmBA,EAAAf,KAAAygO,WAAAx/N,OAA4BF,IAC/C,GAAAf,KAAAygO,WAAA1/N,KAAA+P,EAAA,CACAs5L,EAAApqM,KAAAygO,WAAA1/N,GACA,MAIAqpM,GACApqM,KAAAwsC,YAAA49J,IAIA8yI,EAAAh9U,UAAAo8a,OAAA,SAAAn6a,EAAA4xc,GACA,IAAAl3b,EAAA7c,KAEAqB,EAAA,WACA,GAAA0yc,EAEA,IADA,IAAAxqa,EAAA1sB,EAAA0sB,OACAA,EAAAlmB,MAAA,GACAkmB,EAAAqzY,UAAA,EACArzY,WAGA1sB,EAAA+/Z,UAAA,EACAz6a,QAGAnC,KAAAg0c,iBACAh0c,KAAAi0c,SAAA,SAAAnjc,GACAA,aAAAjF,QACAgR,EAAA24Z,QACA34Z,EAAAgzb,YAAA,MACWhzb,EAAAgiK,MAAAsvR,eACXmF,EAAAz2b,GAEAxb,OAIAA,KAIA67U,EAAAh9U,UAAAmyc,iBAAA,SAAAjzY,GACA,IAAAlhD,EAAAle,KAEAk0c,EAAApvc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEAs6D,EAAAt1D,QAAA,SAAA6C,GACAuR,EAAA6zb,aAAA,EAAA56X,EAAAp+D,UAA+CjI,KAAAnE,GAAaunc,QAAAxmc,GAAA,MAI5DwvU,EAAAh9U,UAAA+4Z,SAAA,WACAj5Z,KAAA48a,UAAA,GAGA1/F,EAAAh9U,UAAA8zc,eAAA,WACA,WAAAh0c,KAAA6+K,MAAA+uE,MAAA5tP,KAAA6+K,MAAAxkE,OAAAr6G,KAAAi+G,QAGAi/N,EAAAh9U,UAAA0zc,gBAAA,WACA,QAAA5zc,KAAA6+K,MAAA+uE,OAAA,IAAA5tP,KAAAi+G,aAAA,IAAAj+G,KAAA2zc,aAAA,CAIA,IAAAlzO,EAAAzgO,KAAAygO,YACAzgO,KAAA6+K,MAAA+uE,OAAA,IAAA5tP,KAAA6+K,MAAA+uE,OAAA,IAAA5tP,KAAAi+G,OACAj+G,KAAAwyc,QAAA/xO,GAAA,IAAAA,EAAAx/N,OAGAjB,KAAAwyc,QAAA,OARAxyc,KAAAwyc,OAAAxyc,KAAA2zc,cAWAz2H,EAAAh9U,UAAA2vc,WAAA,SAAAtoc,EAAAiU,EAAA24b,EAAAC,GACA,IAAAp1b,EAAAhf,KAKA,GAHAA,KAAAu3a,cAAA,SAAAhwa,EACAvH,KAAAw1a,SAAA,IAAAjua,GAEAvH,KAAA6+K,MAAAsvR,cAAA,CAEA,IAAAnuc,KAAAg0c,kBAAAh0c,KAAA6+K,MAAAyvR,iBAAA,CACA,IAAA/qR,EAAA,WACA,IAAA8wR,EAAAlB,EAAAn0b,EAAAyhN,YACAthK,EAAAk1Y,EAAAl1Y,IACAk0Y,EAAAgB,EAAAhB,kBAEAr0b,EAAAwzb,QAAArzY,IAAAk0Y,IACAr0b,EAAAw2Z,SAAA,EACAjua,GAAA,GAGA,IAAA+sc,EAAA,WACA,GAAA94b,EAAA,CAEA,IADA,IAAAilN,EAAAzhN,EAAAyhN,WACA1/N,EAAA,EAAAmyB,EAAAutM,EAAAx/N,OAAkDF,EAAAmyB,EAAOnyB,IAAA,CACzD,IAAAurC,EAAAm0L,EAAA1/N,GACAqzc,MAAA,IAAA7sc,EACA,IAAAgtc,EAAAjoa,EAAAonC,SAAApnC,EAAAkpY,QAAA4+B,EACA9na,EAAAuja,WAAA0E,EAAA/4b,GAAA,EAAA44b,GAGA,IAAAI,EAAArB,EAAA1yO,GACAogO,EAAA2T,EAAA3T,KACA4T,EAAAD,EAAAr1Y,IAEAs1Y,IACAz1b,EAAAw2Z,QAAAi/B,EACAz1b,EAAAu4Z,cAAAspB,KAKA,GAAA7hb,EAAAg1b,iBAQA,OANAh1b,EAAAi1b,SAAA,WACAK,IACAhB,EAAAt0b,KAEAw2Z,SAAA,IAAAjua,KAGAwF,OAAA,GAGAunc,IA3CA,GA+CA,wBAAA/wR,EAAA,YAAAv4K,EAAAu4K,IAAA,OAAAA,EAAAx2K,EAGA,IAAAw8B,EAAAvpC,KAAAupC,OACAA,GAAA,IAAAA,EAAAlmB,QAEA8wb,GACAb,EAAA/pa,MAIA2zS,EAAAh9U,UAAA2zc,YAAA,WACA,IAAAa,EAAA5vc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA,OAAA9E,KAAAqjB,MAAA,OAAArjB,KAAA8Q,KACA,IAAAA,EAAA9Q,KAAA8Q,KACA,IAAAA,EAAA,YAEA,IAAAhO,EAAA9C,KAAA6+K,MAAA/7K,MACAylL,EAAA,WAaA,OAZAzlL,IACAylL,EAAAzlL,EAAAylL,UAAA,iBAGA76K,IAAAoD,EAAAy3K,KACAz3K,EAAAy3K,GAAA,MAGAmsR,IAAA5jc,EAAAy3K,KACAz3K,EAAAy3K,OAGAz3K,EAAAy3K,IAGA20J,EAAAh9U,UAAAgsQ,eAAA,WACA,IAAA3sP,EAAAvf,KAEAg9F,EAAAh9F,KAAA6zc,kBACAnza,EAAA1gC,KAAAygO,WAAA9vN,IAAA,SAAAuoD,GACA,OAAAA,EAAApoD,OAGA6jc,KACAC,KAEA53W,EAAAlzF,QAAA,SAAA6C,EAAAC,GACAD,EAAAlN,EAAA63Z,UACAq9C,EAAAhoc,EAAAlN,EAAA63Z,YAA4C1qZ,QAAAkE,KAAAnE,GAE5Cioc,EAAArzc,MAAuBqL,QAAAkE,KAAAnE,MAIvB3M,KAAA6+K,MAAA+uE,MACAltN,EAAA52B,QAAA,SAAA6C,GACAgoc,EAAAhoc,EAAAlN,EAAA63Z,YAAA/3Y,EAAAu0b,kBAAAnnc,KAIAioc,EAAA9qc,QAAA,SAAAoE,GACA,IAAAtB,EAAAsB,EAAAtB,MACAkE,EAAA5C,EAAA4C,KAEAyO,EAAAwyb,aAA0Bjhc,QAAalE,KAGvC5M,KAAA4zc,mBAGA12H,EAAAh9U,UAAA+zc,SAAA,SAAA9xc,GACA,IAAAm/G,EAAAthH,KAEAk0c,EAAApvc,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEA,QAAA9E,KAAA6+K,MAAA+uE,OAAA5tP,KAAA6+K,MAAAxkE,MAAAr6G,KAAAi+G,QAAAj+G,KAAA2Y,UAAA/O,OAAAC,KAAAqqc,GAAAjzc,OAkBAkB,GACAA,EAAAuJ,KAAA1L,UAnBA,CACAA,KAAA2Y,SAAA,EAeA3Y,KAAA6+K,MAAAxkE,KAAAr6G,KAbA,SAAAuoL,GACAjnE,EAAArD,QAAA,EACAqD,EAAA3oG,SAAA,EACA2oG,EAAAm/G,cAEAn/G,EAAA+wV,iBAAA9pR,EAAA2rR,GAEA5yV,EAAAsyV,kBACAzxc,GACAA,EAAAuJ,KAAA41G,EAAAinE,OAYAr8E,EAAAgxO,IACAnzU,IAAA,QACA/F,IAAA,WACA,OAAAwvc,EAAAxzc,KAAA,YAGA+J,IAAA,OACA/F,IAAA,WACA,OAAAwvc,EAAAxzc,KAAA,WAGA+J,IAAA,MACA/F,IAAA,WACA,IAAAkqc,EAAAluc,KAAA6+K,MAAA90K,IACA,OAAA/J,KAAA8Q,KAAA9Q,KAAA8Q,KAAAo9b,GACA,QAGAnkc,IAAA,WACA/F,IAAA,WACA,OAAAwvc,EAAAxzc,KAAA,eAGA+J,IAAA,cACA/F,IAAA,WACA,IAAAulC,EAAAvpC,KAAAupC,OACA,GAAAA,EAAA,CACA,IAAA38B,EAAA28B,EAAAk3L,WAAA3gO,QAAAE,MACA,GAAA4M,GAAA,EACA,OAAA28B,EAAAk3L,WAAA7zN,EAAA,GAGA,eAGA7C,IAAA,kBACA/F,IAAA,WACA,IAAAulC,EAAAvpC,KAAAupC,OACA,GAAAA,EAAA,CACA,IAAA38B,EAAA28B,EAAAk3L,WAAA3gO,QAAAE,MACA,GAAA4M,GAAA,EACA,OAAAA,EAAA,EAAA28B,EAAAk3L,WAAA7zN,EAAA,QAGA,gBAIAswU,EAldA,GAqdA/5U,EAAA4V,QAAAmkU,GAIA,SAAAh6U,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAstc,EAAAt1c,EAAA,KACAu1c,EAAAv1c,EAAA6+C,EAAAy2Z,GACAE,EAAAx1c,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA2hY,EAAAv/b,EACAw/b,EAAA,GATA,EAEA,KAEA,KAEA,MAUAxwZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAgwV,EAAAlqV,EAFA33E,EAAA,KAMAs3a,EAAA3/V,EAFA33E,EAAA,KAMA8iL,EAAAnrG,EAFA33E,EAAA,IAIAE,EAAAF,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAuE7EhI,EAAA4V,SACAnW,KAAA,aAEA2/K,cAAA,aAEAD,QAAAD,EAAAtpK,SAEAjW,OACAo2D,MACAngD,QAAA,WACA,WAGAjW,SACA8wZ,cAAAz6Y,SACA80b,mBACAzqc,KAAAiW,QACAV,SAAA,IAIAqb,YACAm+Y,qBAAAnR,EAAAroZ,QACAsja,WAAAxF,EAAA99Z,QACAi8b,aACAlyc,OACAo2D,MACA6pG,UAAA,IAGAt/J,OAAA,SAAAwU,GACA,IAAAsxB,EAAAvpC,KAAAmsN,QACAvhC,EAAArhJ,EAAAqhJ,KACA1xH,EAAAl5D,KAAAk5D,KACApoD,EAAAooD,EAAApoD,KACA+tK,EAAA3lH,EAAA2lH,MAEA,OAAAt1I,EAAAqqX,cAAArqX,EAAAqqX,cAAAloZ,KAAA69B,EAAA4nN,aAAAl5O,GAAyFd,MAAAyzK,EAAAz4G,OAAArkB,QAAAoL,OAAApoD,OAAA+tK,UAAmE+L,EAAAolE,aAAAj3O,QAAA6xK,EAAAolE,aAAAj3O,SAA2DmgD,OAAApoD,SAAyBmH,EAChP,QACWC,MAAA,wBACXghD,EAAAzmD,WAMA3B,KAAA,WACA,OACA85K,KAAA,KACAgyP,UAAA,EACAq4B,mBAAA,EACAvG,cAAA,EACAwG,WAAA,KACAC,iBAAA,OAKA55b,OACA65b,qBAAA,SAAA7nc,GACAvN,KAAAq1c,mBAAAr1c,KAAAk5D,KAAAs8W,QAAAjoa,IAEA+nc,eAAA,SAAA/nc,GACAvN,KAAAq1c,mBAAA9nc,EAAAvN,KAAAk5D,KAAAq+W,gBAEAg+B,gBAAA,SAAAhoc,GACA,IAAAsP,EAAA7c,KAEAA,KAAAuc,UAAA,WACA,OAAAM,EAAA+/Z,SAAArva,IAEAA,IACAvN,KAAAi1c,mBAAA,KAKAl5b,SACAy7Y,WAAA,SAAAt+V,GACA,SAAAz5D,EAAA+3Z,YAAAx3Z,KAAA4qL,KAAAsjR,QAAAh1Y,EAAApoD,OAEAukc,mBAAA,SAAA7/B,EAAA+B,GACAv3a,KAAAk1c,aAAA1/B,GAAAx1a,KAAAm1c,mBAAA59B,GACAv3a,KAAA4qL,KAAA5sK,MAAA,eAAAhe,KAAAk5D,KAAApoD,KAAA0ka,EAAA+B,GAEAv3a,KAAAk1c,WAAA1/B,EACAx1a,KAAAu3a,iBAEApjW,YAAA,WACA,IAAA0qG,EAAA7+K,KAAA4qL,KAAA/L,MACAA,EAAAmxR,eAAAhwc,KAAAk5D,MACAl5D,KAAA4qL,KAAA5sK,MAAA,iBAAA6gK,EAAAk/J,YAAAl/J,EAAAk/J,YAAAjtU,KAAA,KAAA+tK,EAAAk/J,aACA/9U,KAAA4qL,KAAAmzJ,YAAA/9U,KACAA,KAAA4qL,KAAAwjR,mBACApuc,KAAAw1c,wBAEAx1c,KAAA4qL,KAAAyjR,mBAAAruc,KAAAk5D,KAAAwa,UACA1zE,KAAAy1c,kBAAA,MACAl1c,QAAmBi1a,SAAAx1a,KAAAk5D,KAAAs8W,WAGnBx1a,KAAA4qL,KAAA5sK,MAAA,aAAAhe,KAAAk5D,KAAApoD,KAAA9Q,KAAAk5D,KAAAl5D,OAEA4lb,kBAAA,SAAAruX,GACAv3D,KAAA4qL,KAAA5lG,QAAA,qBAAAhlF,KAAA4qL,KAAA5lG,QAAA,oBAAA/jF,OAAA,IACAs2D,EAAAitH,kBACAjtH,EAAAo6H,kBAEA3xL,KAAA4qL,KAAA5sK,MAAA,mBAAAu5C,EAAAv3D,KAAAk5D,KAAApoD,KAAA9Q,KAAAk5D,KAAAl5D,OAEAw1c,sBAAA,WACAx1c,KAAAk5D,KAAAs5Y,SACAxyc,KAAA48a,UACA58a,KAAA4qL,KAAA5sK,MAAA,gBAAAhe,KAAAk5D,KAAApoD,KAAA9Q,KAAAk5D,KAAAl5D,MACAA,KAAAk5D,KAAA+/V,aAEAj5Z,KAAAk5D,KAAAojX,SACAt8a,KAAAge,MAAA,cAAAhe,KAAAk5D,KAAApoD,KAAA9Q,KAAAk5D,KAAAl5D,SAGAy1c,kBAAA,SAAAluc,EAAAiY,GACA,IAAAtB,EAAAle,KAEAA,KAAAk5D,KAAA22Y,WAAArwb,EAAAjf,OAAAi1a,SAAAx1a,KAAA4qL,KAAAujR,eACAnuc,KAAAuc,UAAA,WACA,IAAAsiK,EAAA3gK,EAAA0sK,KAAA/L,MACA3gK,EAAA0sK,KAAA5sK,MAAA,QAAAE,EAAAg7C,KAAApoD,MACA+hc,aAAAh0R,EAAAwwR,kBACA6D,YAAAr0R,EAAA2wR,iBACAkG,iBAAA72R,EAAAixR,sBACA6F,gBAAA92R,EAAAkxR,0BAIA6F,sBAAA,SAAArwR,EAAArsH,EAAA3Z,GACAv/C,KAAAi9S,UAAA,gCAAA/jP,GACAl5D,KAAA4qL,KAAA5sK,MAAA,cAAAunK,EAAArsH,EAAA3Z,IAEAs2Z,gBAAA,SAAAt+Y,GACAv3D,KAAA4qL,KAAA3zB,WACAj3J,KAAA4qL,KAAA5sK,MAAA,uBAAAu5C,EAAAv3D,OAEA81c,eAAA,SAAAv+Y,GACAv3D,KAAA4qL,KAAA3zB,YACAj3J,KAAA4qL,KAAA5sK,MAAA,sBAAAu5C,EAAAv3D,MACAu3D,EAAAo6H,mBAEAokR,WAAA,SAAAx+Y,GACAA,EAAAo6H,kBAEAmrL,cAAA,SAAAvlT,GACAv3D,KAAA4qL,KAAA3zB,WACAj3J,KAAA4qL,KAAA5sK,MAAA,qBAAAu5C,EAAAv3D,QAIA8f,QAAA,WACA,IAAAd,EAAAhf,KAEAupC,EAAAvpC,KAAAmsN,QAEA5iL,EAAAona,OACA3wc,KAAA4qL,KAAArhJ,EAEAvpC,KAAA4qL,KAAArhJ,EAAAqhJ,KAGA,IAAAA,EAAA5qL,KAAA4qL,KACAA,GACAn1K,QAAAC,KAAA,6BAGA,IACAsgc,GADAprR,EAAA9nL,WACA,qBAEA9C,KAAAsf,OAAA,aAAA02b,EAAA,WACAh3b,EAAAk6C,KAAAgzM,mBAGAlsQ,KAAA0uc,aAAA9jR,EAAA8jR,aAEA1uc,KAAAk5D,KAAA0jX,WACA58a,KAAA48a,UAAA,EACA58a,KAAAi1c,mBAAA,GAGAj1c,KAAA4qL,KAAAkkR,WACA9uc,KAAAikL,IAAA,4BAAA/qH,GACAl6C,EAAAk6C,UACAl6C,EAAAk6C,KAAA+/V,gBASA,SAAA/1Z,EAAAqhD,EAAAhlD,GAEA,aACA,IAUA+0E,GAAiB7wE,OAVjB,WACA,IAAAsnD,EAAA/qD,KACAu0E,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAArb,KAAA,QAAA95C,WAAA,iBAAgFxG,IAAA,OAAAxB,YAAA,eAAAc,OAC7K+9b,cAAA1hY,EAAAqoW,SACAs5B,aAAA3hY,EAAAq2G,KAAA/L,MAAAk/J,cAAAxpQ,EAAArb,KACAi9Y,aAAA5hY,EAAArb,KAAAse,QACA4+X,gBAAA7hY,EAAArb,KAAAwa,SACA4hW,cAAA/gW,EAAArb,KAAAwa,UAAAa,EAAArb,KAAAs8W,SACGn+Z,OAAQ2sJ,KAAA,WAAAohE,SAAA,KAAA6mM,gBAAA13V,EAAAqoW,SAAA9N,gBAAAv6V,EAAArb,KAAAwa,SAAA6hW,eAAAhhW,EAAArb,KAAAs8W,QAAAv+Q,UAAA1iF,EAAAq2G,KAAA3zB,WAAgKv3I,IAAKm1D,MAAA,SAAA0vG,GAAyBA,EAAAC,kBAAyBjwG,EAAAJ,YAAAowG,IAAwBohQ,YAAA,SAAAphQ,GAAkC,OAAAx5H,EAAA66X,kBAAArhQ,IAA2Co8C,UAAA,SAAAp8C,GAA8BA,EAAAC,kBAAyBjwG,EAAAshY,gBAAAtxR,IAA4B8xR,SAAA,SAAA9xR,GAA6BA,EAAAC,kBAAyBjwG,EAAAuhY,eAAAvxR,IAA2BkqL,QAAA,SAAAlqL,GAA4BA,EAAAC,kBAAyBjwG,EAAAuoS,cAAAv4L,IAA0B+xR,KAAA,SAAA/xR,GAAyBA,EAAAC,kBAAyBjwG,EAAAwhY,WAAAxxR,OAAyBrtK,EAAA,OAAYE,YAAA,wBAAAmB,OAA4Cg+b,gBAAAhiY,EAAArb,KAAA71C,MAAA,GAAAkxD,EAAAq2G,KAAAr7C,OAAA,QAAkEr4H,EAAA,QAAaE,YAAA,gDAAAc,OAAmEs+b,UAAAjiY,EAAArb,KAAAs5Y,OAAA51B,UAAAroW,EAAArb,KAAAs5Y,QAAAj+X,EAAAqoW,UAAyEl9Z,IAAKm1D,MAAA,SAAA0vG,GAAyBA,EAAAC,kBAAyBjwG,EAAAihY,sBAAAjxR,OAAoChwG,EAAA,aAAAr9D,EAAA,eAAuCG,OAAOkga,cAAAhjW,EAAArb,KAAAq+W,cAAA7jW,WAAAa,EAAArb,KAAAwa,UAAsEh0D,IAAKupN,OAAA10J,EAAAkhY,mBAA+BngN,UAAWzgL,MAAA,SAAA0vG,GAAyBA,EAAAC,oBAA2BjtJ,OAAQhwB,MAAAgtE,EAAArb,KAAA,QAAA/2D,SAAA,SAAAqiT,GAAkDjwO,EAAAokL,KAAApkL,EAAArb,KAAA,UAAAsrP,IAAmCplS,WAAA,kBAA4Bm1D,EAAAO,KAAAP,EAAArb,KAAA,QAAAhiD,EAAA,QAAyCE,YAAA,+CAAyDm9D,EAAAO,KAAA59D,EAAA,gBAA8BG,OAAO6hD,KAAAqb,EAAArb,SAAiB,GAAAhiD,EAAA,2BAAAq9D,EAAA05X,mBAAA15X,EAAA0gY,kBAAA/9b,EAAA,OAA+FktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwEhI,YAAA,yBAAAC,OAA8C2sJ,KAAA,QAAAioQ,gBAAA13V,EAAAqoW,WAA6CroW,EAAA9E,GAAA8E,EAAArb,KAAA,oBAAA5sB,GAA8C,OAAAp1B,EAAA,gBAA0BnN,IAAAwqE,EAAAijV,WAAAlrX,GAAAj1B,OAAiCo/b,iBAAAliY,EAAAq/U,cAAA8iD,sBAAAniY,EAAA05X,kBAAA/0Y,KAAA5sB,GAA4F5sB,IAAKi3b,cAAApiY,EAAAqhY,4BAA2CrhY,EAAAO,QAAA,IAE98Dn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAOA+0E,GAAiB7wE,OAPjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,UAAAc,OAC1G0+b,6BAAAriY,EAAAq6X,iBACAiI,gBAAAtiY,EAAAu1W,UAAAgkB,aACAgJ,qBAAAviY,EAAAu1W,UAAAkkB,UACA+I,gBAAA,UAAAxiY,EAAAu1W,UAAA2nB,UACGp6b,OAAQ2sJ,KAAA,UAAezvF,EAAA9E,GAAA8E,EAAA15B,KAAA,oBAAAvO,GAA+C,OAAAp1B,EAAA,gBAA0BnN,IAAAwqE,EAAAijV,WAAAlrX,GAAAj1B,OAAiC6hD,KAAA5sB,EAAAxpC,MAAAyxE,EAAAzxE,MAAA4zc,sBAAAniY,EAAA05X,kBAAAwI,iBAAAliY,EAAAq/U,eAA8Gl0Y,IAAKi3b,cAAApiY,EAAA87X,sBAAsC97X,EAAA,QAAAr9D,EAAA,OAA0BE,YAAA,yBAAmCF,EAAA,QAAaE,YAAA,wBAAkCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkqO,gBAAAlqO,EAAAO,KAAA59D,EAAA,OAAuDktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAAu1W,UAAA,kBAAA1qa,WAAA,gCAA8GxG,IAAA,gBAAAxB,YAAA,6BAA4D,IAEtmBO,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAgW,EAAAz3c,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAyhc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAzyZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAsBA,IAAA6lY,GACA7yT,QAAA,kBACA29N,QAAA,kBACAhnS,MAAA,iBAEA53E,EAAA4V,SACAnW,KAAA,UAEAE,OACAoX,OACA1W,KAAA2N,OACA4H,QAAA,GACAgqJ,UAAA,GAEAp+E,aACAnhF,KAAA2N,OACA4H,QAAA,IAEAvV,MACAA,KAAA2N,OACA4H,QAAA,QAEA+5R,UACAtvS,KAAAiW,QACAV,SAAA,GAEAm+b,WACA1zc,KAAA2N,OACA4H,QAAA,IAEAo+b,SAAA19b,QACAqK,OAAArK,SAGA3I,KAAA,WACA,OACA0mE,SAAA,IAKAz7D,SACA+8D,MAAA,WACA94E,KAAAw3E,SAAA,EACAx3E,KAAAge,MAAA,WAIAnC,UACAu7b,UAAA,WACA,mBAAAp3c,KAAAwD,MAEAmgK,UAAA,WACA,OAAAszS,EAAAj3c,KAAAwD,OAAA,gBAEA6zc,UAAA,WACA,OAAAr3c,KAAA2kF,aAAA3kF,KAAA8Y,OAAAC,QAAA,aAEAu+b,YAAA,WACA,OAAAt3c,KAAA2kF,aAAA3kF,KAAA8Y,OAAAC,QAAA,iBAOA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,mBAAwBsU,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,WAAAc,OAAAq8D,EAAA6iY,UAAA7iY,EAAAzwD,OAAA,gBAAAzM,OAAqF2sJ,KAAA,WAAgBzvF,EAAA,SAAAr9D,EAAA,KAAyBE,YAAA,iBAAAc,OAAAq8D,EAAAovF,UAAApvF,EAAA8iY,aAAoE9iY,EAAAO,KAAA59D,EAAA,OAAqBE,YAAA,sBAAgCm9D,EAAA,MAAAr9D,EAAA,QAAyBE,YAAA,kBAAAc,OAAAq8D,EAAA+iY,eAAwD/iY,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAr6D,UAAAq6D,EAAAO,KAAAP,EAAAQ,GAAA,WAAAR,EAAA,YAAAr9D,EAAA,KAAmFE,YAAA,0BAAoCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAoQ,gBAAApQ,EAAAO,OAAA59D,EAAA,KAAuDktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwEhI,YAAA,qBAAAc,OAA0Cq/b,cAAA,KAAAhjY,EAAA2iY,UAAAM,gBAAA,KAAAjjY,EAAA2iY,WAA6Ex3b,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAuE,YAAcvE,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA2iY,eAAA,QAE58Bv/b,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA6F,EAAAC,EAFA33E,EAAA,IAMAkmN,EAAAvuI,EAFA33E,EAAA,MAIA20M,EAAA30M,EAAA,IAEAsmN,EAAAtmN,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAssc,EAAAxgY,EAAAl+D,QAAArP,OAAA+7M,EAAA1sM,SAEAwmC,OAAA,EACA+T,KACAg4Q,EAAA,EAEAi5F,EAAA,SAAAA,EAAA97Z,GACA,IAAAwuE,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,CAEA,IAAAw+X,GADAjvc,SACA4xE,QACA34E,EAAA,gBAAA4pU,IACAl9T,EAAA3F,EAAA2F,UAAA,YAEA3F,EAAA4xE,QAAA,WACAkqV,EAAAzrV,MAAAp3E,EAAAg2c,IAGAn4Z,EAAA,IAAAk4Z,GACA3mc,KAAArI,KAGA,EAAAo9M,EAAA+mE,SAAAnkR,EAAAq3D,WACAvgB,EAAAzmC,OAAAC,SAAAtQ,EAAAq3D,SACAr3D,EAAAq3D,QAAA,qBAEAvgB,EAAA79C,KACA69C,EAAAgnK,SACA12M,SAAAG,KAAAC,YAAAsvC,EAAA7iC,KACA6iC,EAAAi4B,SAAA,EACAj4B,EAAA0O,IAAA1O,EAAA7iC,IACA6iC,EAAA0O,IAAA11C,MAAA64B,OAAA8iK,EAAAl9H,aAAAyC,aAEA,IAAAk+X,EAAAlvc,EAAAi6B,QAAA,EASA,OARA4wB,EAAAlsC,OAAA,SAAAza,GACA,OAAAA,EAAAyB,eACGtE,QAAA,SAAA6C,GACHgrc,GAAAhrc,EAAA+P,IAAAygC,aAAA,KAEAw6Z,GAAA,GACAp4Z,EAAAo4Z,iBACArkZ,EAAA/xD,KAAAg+C,GACAA,KAGA,oCAAAz1C,QAAA,SAAAtG,GACA+ga,EAAA/ga,GAAA,SAAAiF,GAOA,OANA,iBAAAA,IAAA,EAAAo9M,EAAA+mE,SAAAnkR,MACAA,GACAq3D,QAAAr3D,IAGAA,EAAAjF,OACA+ga,EAAA97Z,MAIA87Z,EAAAzrV,MAAA,SAAAp3E,EAAAg2c,GACA,IAAA9qc,GAAA,EACA/K,EAAAyxD,EAAAryD,OACAs+C,EAAA+T,EAAAlsC,OAAA,SAAAm4B,EAAAx+C,GACA,OAAAw+C,EAAA79C,SACAkL,EAAA7L,GACA,KAGG,GACH,GAAAw+C,IAEA,mBAAAm4Z,GACAA,EAAAn4Z,GAEA+T,EAAAhyD,OAAAsL,EAAA,KAEA/K,GAAA,IAGA,IAFA,IAAAuM,EAAAmxC,EAAAnxC,SACAwpc,EAAAr4Z,EAAA0O,IAAA9Q,aACAp8C,EAAA6L,EAAqB7L,EAAAc,EAAA,EAAad,IAClCuyD,EAAAvyD,GAAAqN,eACAklD,EAAAvyD,GAAAktD,IAAA11C,MAAAgnC,EAAAs4Z,kBAAAj+X,SAAAtmB,EAAAvyD,GAAAktD,IAAA11C,MAAAgnC,EAAAs4Z,kBAAA,IAAAD,EAAA,UAKArzC,EAAAuzC,SAAA,WACA,QAAA/2c,EAAAuyD,EAAAryD,OAAA,EAAoCF,GAAA,EAAQA,IAC5CuyD,EAAAvyD,GAAA+3E,SAIA31E,EAAA4V,QAAAwrZ,GAIA,SAAArha,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACA+W,EAAAx4c,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAwic,EAAA,GATA,EAEA,KAEA,KAEA,MAUAxzZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAmCA,IAAAqyX,GACAr/S,QAAA,UACAtpE,KAAA,OACAinS,QAAA,UACAhnS,MAAA,SAGA53E,EAAA4V,SACAjI,KAAA,WACA,OACA0mE,SAAA,EACAt9D,MAAA,GACA4lD,QAAA,GACAktB,SAAA,KACAxpF,KAAA,GACAkma,WAAA,EACAE,YAAA,GACAjmQ,UAAA,GACAtpF,QAAA,KACA+hO,QAAA,KACA0tH,QAAA,EACA6tC,eAAA,EACAzrc,MAAA,KACAw2b,0BAAA,EACAt0b,SAAA,cAKAyN,UACAu7b,UAAA,WACA,OAAAp3c,KAAAwD,MAAAigc,EAAAzjc,KAAAwD,MAAA,WAAAigc,EAAAzjc,KAAAwD,MAAA,IAEAw0c,gBAAA,WACA,OAAAh4c,KAAAoO,SAAAtO,QAAA,4BAEA+3c,iBAAA,WACA,cAAAl8Y,KAAA37D,KAAAoO,UAAA,gBAGA6pc,cAAA,WACA,IAAA/pc,EAEA,OAAAA,MAAsBlO,KAAA63c,kBAAA73c,KAAA23c,eAAA,KAAAzpc,IAItBqN,OACAuuZ,OAAA,SAAA3pO,GACAA,IACAngM,KAAAw3E,SAAA,EACAx3E,KAAA0c,IAAAkC,iBAAA,gBAAA5e,KAAAk4c,mBAKAn8b,SACAm8b,eAAA,WACAl4c,KAAA0c,IAAAoC,oBAAA,gBAAA9e,KAAAk4c,gBACAl4c,KAAAm0P,UAAA,GACAn0P,KAAA0c,IAAA6vB,WAAAC,YAAAxsC,KAAA0c,MAEAm4D,MAAA,WACA,mBAAA70E,KAAAo8S,SACAp8S,KAAAo8S,WAGAtjO,MAAA,WACA94E,KAAA8pa,QAAA,EACA,mBAAA9pa,KAAAq6E,SACAr6E,KAAAq6E,WAGA06C,WAAA,WACA1oH,aAAArM,KAAAkM,QAEAisc,WAAA,WACA,IAAAt7b,EAAA7c,KAEAA,KAAAgtF,SAAA,IACAhtF,KAAAkM,MAAAI,WAAA,WACAuQ,EAAAitZ,QACAjtZ,EAAAi8D,SAES94E,KAAAgtF,YAGTqlN,QAAA,SAAAluS,GACA,KAAAA,EAAA+3Q,SAAA,IAAA/3Q,EAAA+3Q,QACAl8Q,KAAA+0H,aACO,KAAA5wH,EAAA+3Q,QAEPl8Q,KAAA8pa,QACA9pa,KAAA84E,QAGA94E,KAAAm4c,eAIAp4b,QAAA,WACA,IAAA7B,EAAAle,KAEAA,KAAAgtF,SAAA,IACAhtF,KAAAkM,MAAAI,WAAA,WACA4R,EAAA4rZ,QACA5rZ,EAAA46D,SAEO94E,KAAAgtF,WAEPn9E,SAAA+O,iBAAA,UAAA5e,KAAAqyS,UAEAryR,cAAA,WACAnQ,SAAAiP,oBAAA,UAAA9e,KAAAqyS,YAMA,SAAAnvS,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,0BAA+BsU,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsElH,OAAA,kBAAAq8D,EAAAq1V,YAAAr1V,EAAAyjY,iBAAAz/b,MAAAg8D,EAAA,cAAAl9D,OAAmG2sJ,KAAA,SAAetkJ,IAAK4kK,WAAA,SAAAC,GAA8BhwG,EAAAwgD,cAAiB4xF,WAAA,SAAApiC,GAA+BhwG,EAAA4jY,cAAiBtjY,MAAAN,EAAAM,SAAoBN,EAAA/wE,MAAA+wE,EAAAovF,UAAAzsJ,EAAA,KAAsCE,YAAA,wBAAAc,OAAAq8D,EAAA6iY,UAAA7iY,EAAAovF,aAA2EpvF,EAAAO,KAAA59D,EAAA,OAAqBE,YAAA,yBAAAc,OAA4Ckgc,eAAA7jY,EAAA6iY,WAAA7iY,EAAAovF,aAAkDzsJ,EAAA,MAAWE,YAAA,yBAAAyxN,UAA+CloL,YAAA4zB,EAAA6vF,GAAA7vF,EAAAr6D,UAAiChD,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,6BAAyCm9D,EAAAQ,GAAA,WAAAR,EAAAmuX,yBAAAxrb,EAAA,KAAkG2xN,UAAUj0L,UAAA2/B,EAAA6vF,GAAA7vF,EAAAzU,YAA5G5oD,EAAA,KAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAzU,eAA6I,GAAAyU,EAAA,UAAAr9D,EAAA,OAAkCE,YAAA,0CAAAsI,IAA0Dm1D,MAAA,SAAA0vG,GAAyBA,EAAAC,kBAAyBjwG,EAAAuE,MAAAyrG,OAAoBhwG,EAAAO,YAErsCn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAqX,EAAA94c,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACA8ic,EAAA,GATA,EAEA,KAEA,KAEA,MAUA9zZ,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA++N,EAAAj5N,EAFA33E,EAAA,MAMAszE,EAAAqE,EAFA33E,EAAA,MAMA8iL,EAAAnrG,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,WAEA0/K,QAAAD,EAAAtpK,SAEAs6D,QACAC,QACAv6D,QAAA,KAIAjW,OACAkF,KACAxE,KAAAuX,OACAhC,QAAA,GAEA9Q,KACAzE,KAAAuX,OACAhC,QAAA,KAEAuO,MACA9jB,KAAAuX,OACAhC,QAAA,GAEAxR,OACA/D,MAAAuX,OAAAlP,OACAkN,QAAA,GAEA0ob,WACAj+b,KAAAiW,QACAV,SAAA,GAEAu/b,mBACA90c,KAAAiW,QACAV,SAAA,GAEA4sN,WACAniO,KAAA2N,OACA4H,QAAA,SAEAw/b,WACA/0c,KAAAiW,QACAV,SAAA,GAEA6uQ,aACApkR,KAAAiW,QACAV,SAAA,GAEA0tK,cAAAttK,SACAu6D,UACAlwE,KAAAiW,QACAV,SAAA,GAEAqnG,OACA58G,KAAAiW,QACAV,SAAA,GAEA21H,UACAlrI,KAAAiW,QACAV,SAAA,GAEAE,QACAzV,KAAA2N,QAEAnF,UACAxI,KAAAuX,OACAhC,QAAA,KAEAtG,OACAjP,KAAA2N,QAEAqnc,aAAArnc,QAGAijB,YACAqkb,cAAAtoK,EAAAp3R,QACA2/b,aAAA7lY,EAAA95D,SAGAjI,KAAA,WACA,OACA6nc,WAAA,KACAC,YAAA,KACA9yO,SAAA,KACA4oI,UAAA,EACAmqG,WAAA,IAKAt9b,OACAhU,MAAA,SAAAgG,EAAA41K,GACAnjL,KAAA0uW,UAAA7iW,MAAAC,QAAAyB,IAAA1B,MAAAC,QAAAq3K,IAAA51K,EAAAsqG,MAAA,SAAAlrG,EAAAC,GACA,OAAAD,IAAAw2K,EAAAv2K,MAIA5M,KAAA84c,aAEApqG,SAAA,SAAAnhW,GACAA,GACAvN,KAAA84c,aAGAH,WAAA,SAAAprc,GACAvN,KAAAogH,MACApgH,KAAAge,MAAA,SAAAhe,KAAAkvY,SAAAlvY,KAAA2sC,WAEA3sC,KAAAge,MAAA,QAAAzQ,IAGAqrc,YAAA,WACA54c,KAAAogH,OACApgH,KAAAge,MAAA,SAAAhe,KAAAkvY,SAAAlvY,KAAA2sC,YAGA3kC,IAAA,WACAhI,KAAA84c,aAEA7wc,IAAA,WACAjI,KAAA84c,cAIA/8b,SACAg9b,aAAA,WACA,IAAAl8b,EAAA7c,KAEA,OAAAA,KAAAogH,QACApgH,KAAAkvY,SAAAlvY,KAAA2sC,UAAAkrE,MAAA,SAAAlrG,EAAAC,GACA,OAAAD,IAAAkQ,EAAAipN,SAAAl5N,KAGA5M,KAAAuH,QAAAvH,KAAA8lO,UAGAgzO,UAAA,WACA,GAAA94c,KAAAgI,IAAAhI,KAAAiI,IACAwN,QAAAslE,MAAA,kEADA,CAIA,IAAAxtE,EAAAvN,KAAAuH,MACAvH,KAAAogH,OAAAv0G,MAAAC,QAAAyB,GACAA,EAAA,GAAAvN,KAAAgI,IACAhI,KAAAge,MAAA,SAAAhe,KAAAgI,IAAAhI,KAAAgI,MACSuF,EAAA,GAAAvN,KAAAiI,IACTjI,KAAAge,MAAA,SAAAhe,KAAAiI,IAAAjI,KAAAiI,MACSsF,EAAA,GAAAvN,KAAAgI,IACThI,KAAAge,MAAA,SAAAhe,KAAAgI,IAAAuF,EAAA,KACSA,EAAA,GAAAvN,KAAAiI,IACTjI,KAAAge,MAAA,SAAAzQ,EAAA,GAAAvN,KAAAiI,OAEAjI,KAAA24c,WAAAprc,EAAA,GACAvN,KAAA44c,YAAArrc,EAAA,GACAvN,KAAA+4c,iBACA/4c,KAAAu9I,SAAA,+BAAAv9I,KAAAkvY,SAAAlvY,KAAA2sC,WACA3sC,KAAA8lO,SAAAv4N,EAAAjL,UAGOtC,KAAAogH,OAAA,iBAAA7yG,GAAA9C,MAAA8C,KACPA,EAAAvN,KAAAgI,IACAhI,KAAAge,MAAA,QAAAhe,KAAAgI,KACSuF,EAAAvN,KAAAiI,IACTjI,KAAAge,MAAA,QAAAhe,KAAAiI,MAEAjI,KAAA24c,WAAAprc,EACAvN,KAAA+4c,iBACA/4c,KAAAu9I,SAAA,8BAAAhwI,GACAvN,KAAA8lO,SAAAv4N,OAKAyrc,YAAA,SAAA50b,GACA,IAAAwwR,EAAA50S,KAAAgI,IAAAoc,GAAApkB,KAAAiI,IAAAjI,KAAAgI,KAAA,IACA,GAAAhI,KAAAogH,MAAA,CAIA,IAAA+xE,OAAA,EAEAA,EADApqL,KAAAY,IAAA3I,KAAAkvY,SAAAt6F,GAAA7sS,KAAAY,IAAA3I,KAAA2sC,SAAAioQ,GACA50S,KAAA24c,WAAA34c,KAAA44c,YAAA,oBAEA54c,KAAA24c,WAAA34c,KAAA44c,YAAA,oBAEA54c,KAAAye,MAAA0zK,GAAA6mR,YAAA50b,QATApkB,KAAAye,MAAAw6b,QAAAD,YAAA50b,IAWA80b,cAAA,SAAA3hZ,GACA,IAAAv3D,KAAAm5c,iBAAAn5c,KAAA0uW,SAAA,CAEA,GADA1uW,KAAAo5c,YACAp5c,KAAA0uI,SAAA,CACA,IAAA2qU,EAAAr5c,KAAAye,MAAA66b,OAAA36Z,wBAAA7pC,OACA9U,KAAAg5c,aAAAK,EAAA9hZ,EAAAm6H,SAAA1xL,KAAA64c,WAAA,SACO,CACP,IAAAU,EAAAv5c,KAAAye,MAAA66b,OAAA36Z,wBAAA94C,KACA7F,KAAAg5c,aAAAzhZ,EAAAk6H,QAAA8nR,GAAAv5c,KAAA64c,WAAA,KAEA74c,KAAAqhT,eAEA+3J,UAAA,WACAp5c,KAAAye,MAAA66b,SACAt5c,KAAA64c,WAAA74c,KAAAye,MAAA66b,OAAA,UAAAt5c,KAAA0uI,SAAA,qBAGA2yK,WAAA,WACA,IAAAnjS,EAAAle,KAEAA,KAAAuc,UAAA,WACA2B,EAAAF,MAAA,SAAAE,EAAAkiG,OAAAliG,EAAAgxX,SAAAhxX,EAAAyuB,UAAAzuB,EAAA3W,WAKAsU,UACAsmB,MAAA,WACA,IAAAnjB,EAAAhf,KAEA,IAAAA,KAAAu4c,WAAAv4c,KAAAgI,IAAAhI,KAAAiI,IAAA,SACA,OAAAjI,KAAAsnB,KAEA,SAKA,IAHA,IAAAkyb,GAAAx5c,KAAAiI,IAAAjI,KAAAgI,KAAAhI,KAAAsnB,KACAmyb,EAAA,IAAAz5c,KAAAsnB,MAAAtnB,KAAAiI,IAAAjI,KAAAgI,KACA+I,KACAhQ,EAAA,EAAqBA,EAAAy4c,EAAez4c,IACpCgQ,EAAAxP,KAAAR,EAAA04c,GAEA,OAAAz5c,KAAAogH,MACArvG,EAAAqW,OAAA,SAAAE,GACA,OAAAA,EAAA,KAAAtI,EAAAkwX,SAAAlwX,EAAAhX,MAAAgX,EAAA/W,IAAA+W,EAAAhX,MAAAsf,EAAA,KAAAtI,EAAA2tB,SAAA3tB,EAAAhX,MAAAgX,EAAA/W,IAAA+W,EAAAhX,OAGA+I,EAAAqW,OAAA,SAAAE,GACA,OAAAA,EAAA,KAAAtI,EAAA25b,WAAA35b,EAAAhX,MAAAgX,EAAA/W,IAAA+W,EAAAhX,QAIAknY,SAAA,WACA,OAAAnnY,KAAAC,IAAAhI,KAAA24c,WAAA34c,KAAA44c,cAEAjsa,SAAA,WACA,OAAA5kC,KAAAE,IAAAjI,KAAA24c,WAAA34c,KAAA44c,cAEAc,QAAA,WACA,OAAA15c,KAAAogH,MAAA,KAAApgH,KAAA2sC,SAAA3sC,KAAAkvY,WAAAlvY,KAAAiI,IAAAjI,KAAAgI,KAAA,SAAAhI,KAAA24c,WAAA34c,KAAAgI,MAAAhI,KAAAiI,IAAAjI,KAAAgI,KAAA,KAEA2xc,SAAA,WACA,OAAA35c,KAAAogH,MAAA,KAAApgH,KAAAkvY,SAAAlvY,KAAAgI,MAAAhI,KAAAiI,IAAAjI,KAAAgI,KAAA,UAEAqB,UAAA,WACA,IAAAqib,GAAA1rb,KAAAgI,IAAAhI,KAAAiI,IAAAjI,KAAAsnB,MAAA3W,IAAA,SAAAhE,GACA,IAAA5D,GAAA,GAAA4D,GAAA9L,MAAA,QACA,OAAAkI,IAAA9H,OAAA,IAEA,OAAA8G,KAAAE,IAAAsE,MAAA,KAAAm/a,IAEAkuB,YAAA,WACA,OAAA55c,KAAA0uI,UAA8Bz1H,OAAAjZ,KAAAiZ,YAE9BkqJ,SAAA,WACA,OAAAnjK,KAAA0uI,UACAz1H,OAAAjZ,KAAA05c,QACA5kc,OAAA9U,KAAA25c,WAEA3gc,MAAAhZ,KAAA05c,QACA7zc,KAAA7F,KAAA25c,WAGAR,eAAA,WACA,OAAAn5c,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,WAIhD3zD,QAAA,WACA,IAAA85b,OAAA,EACA75c,KAAAogH,OACAv0G,MAAAC,QAAA9L,KAAAuH,QACAvH,KAAA24c,WAAA5wc,KAAAE,IAAAjI,KAAAgI,IAAAhI,KAAAuH,MAAA,IACAvH,KAAA44c,YAAA7wc,KAAAC,IAAAhI,KAAAiI,IAAAjI,KAAAuH,MAAA,MAEAvH,KAAA24c,WAAA34c,KAAAgI,IACAhI,KAAA44c,YAAA54c,KAAAiI,KAEAjI,KAAA8lO,UAAA9lO,KAAA24c,WAAA34c,KAAA44c,aACAiB,EAAA75c,KAAA24c,WAAA,IAAA34c,KAAA44c,cAEA,iBAAA54c,KAAAuH,OAAAkD,MAAAzK,KAAAuH,OACAvH,KAAA24c,WAAA34c,KAAAgI,IAEAhI,KAAA24c,WAAA5wc,KAAAC,IAAAhI,KAAAiI,IAAAF,KAAAE,IAAAjI,KAAAgI,IAAAhI,KAAAuH,QAEAvH,KAAA8lO,SAAA9lO,KAAA24c,WACAkB,EAAA75c,KAAA24c,YAEA34c,KAAA0c,IAAAgqB,aAAA,iBAAAmza,GAGA75c,KAAA0c,IAAAgqB,aAAA,aAAA1mC,KAAAyS,MAAAzS,KAAAyS,MAAA,kBAAAzS,KAAAgI,IAAA,QAAAhI,KAAAiI,KAEAjI,KAAAo5c,YACAzpc,OAAAiP,iBAAA,SAAA5e,KAAAo5c,YAEAp5b,cAAA,WACArQ,OAAAmP,oBAAA,SAAA9e,KAAAo5c,cA6DA,SAAAl2c,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAwrE,EAAAxzE,EAAA,KACAyzE,EAAAzzE,EAAA6+C,EAAA20B,GACA+mY,EAAAv6c,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAH,EAAAz9D,EACAukc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAv1Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA4uc,EAAAx6c,EAAA,IAEAw0a,GAEA5oa,EAFA4uc,IAEsC5uc,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,iBAEAwxB,YACA4/Y,UAAAD,EAAAh7Z,SAGAjW,OACAyE,OACA/D,KAAAuX,OACAhC,QAAA,GAEA21H,UACAlrI,KAAAiW,QACAV,SAAA,GAEAy/b,aAAArnc,QAGAL,KAAA,WACA,OACA0zN,UAAA,EACAkqI,UAAA,EACAsrG,SAAA,EACA37O,OAAA,EACAI,SAAA,EACAH,OAAA,EACAI,SAAA,EACAxyG,cAAA,EACA+tV,YAAA,KACAn0O,SAAA9lO,KAAAuH,QAKAsU,UACA63D,SAAA,WACA,OAAA1zE,KAAAmsN,QAAAgtP,gBAEAlxc,IAAA,WACA,OAAAjI,KAAAmsN,QAAAlkN,KAEAD,IAAA,WACA,OAAAhI,KAAAmsN,QAAAnkN,KAEAsf,KAAA,WACA,OAAAtnB,KAAAmsN,QAAA7kM,MAEAsgQ,YAAA,WACA,OAAA5nR,KAAAmsN,QAAAy7D,aAEAv+Q,UAAA,WACA,OAAArJ,KAAAmsN,QAAA9iN,WAEA6wc,gBAAA,WACA,OAAAl6c,KAAAuH,MAAAvH,KAAAgI,MAAAhI,KAAAiI,IAAAjI,KAAAgI,KAAA,SAEAmyc,aAAA,WACA,OAAAn6c,KAAAmsN,QAAA1lC,yBAAAttK,UAEAihc,YAAA,WACA,OAAAp6c,KAAAm6c,cAAAn6c,KAAAmsN,QAAA1lC,cAAAzmL,KAAAuH,QAAAvH,KAAAuH,OAEA8yc,aAAA,WACA,OAAAr6c,KAAA0uI,UAA8B55H,OAAA9U,KAAAk6c,kBAAmCr0c,KAAA7F,KAAAk6c,mBAIjE3+b,OACAmzV,SAAA,SAAAnhW,GACAvN,KAAAmsN,QAAAuiJ,SAAAnhW,IAIAwO,SACAu+b,eAAA,WACAt6c,KAAAye,MAAA1I,UAAA/V,KAAAye,MAAA1I,QAAAy+L,YAAA,IAEA+lQ,YAAA,WACAv6c,KAAAye,MAAA1I,UAAA/V,KAAAye,MAAA1I,QAAAy+L,YAAA,IAEAqxO,iBAAA,WACA7lb,KAAAwkO,UAAA,EACAxkO,KAAAs6c,kBAEAx9B,iBAAA,WACA98a,KAAAwkO,UAAA,EACAxkO,KAAAu6c,eAEAC,aAAA,SAAAjjZ,GACAv3D,KAAA0zE,WACAnc,EAAAo6H,iBACA3xL,KAAAy6c,YAAAljZ,GACA5nD,OAAAiP,iBAAA,YAAA5e,KAAA06c,YACA/qc,OAAAiP,iBAAA,YAAA5e,KAAA06c,YACA/qc,OAAAiP,iBAAA,UAAA5e,KAAA62J,WACAlnJ,OAAAiP,iBAAA,WAAA5e,KAAA62J,WACAlnJ,OAAAiP,iBAAA,cAAA5e,KAAA62J,aAEA8jT,cAAA,WACA36c,KAAA0zE,WACA1zE,KAAAi6c,YAAAz0b,WAAAxlB,KAAAk6c,iBAAAl6c,KAAAsnB,MAAAtnB,KAAAiI,IAAAjI,KAAAgI,KAAA,IACAhI,KAAAg5c,YAAAh5c,KAAAi6c,eAEAW,eAAA,WACA56c,KAAA0zE,WACA1zE,KAAAi6c,YAAAz0b,WAAAxlB,KAAAk6c,iBAAAl6c,KAAAsnB,MAAAtnB,KAAAiI,IAAAjI,KAAAgI,KAAA,IACAhI,KAAAg5c,YAAAh5c,KAAAi6c,eAEAQ,YAAA,SAAAljZ,GACAv3D,KAAA0uW,UAAA,EACA1uW,KAAAg6c,SAAA,EACA,eAAAziZ,EAAA/zD,OACA+zD,EAAAm6H,QAAAn6H,EAAAo1V,QAAA,GAAAj7N,QACAn6H,EAAAk6H,QAAAl6H,EAAAo1V,QAAA,GAAAl7N,SAEAzxL,KAAA0uI,SACA1uI,KAAAs+N,OAAA/mK,EAAAm6H,QAEA1xL,KAAAq+N,OAAA9mK,EAAAk6H,QAEAzxL,KAAAksH,cAAA1mG,WAAAxlB,KAAAk6c,iBACAl6c,KAAAi6c,YAAAj6c,KAAAksH,eAEAwuV,WAAA,SAAAnjZ,GACA,GAAAv3D,KAAA0uW,SAAA,CACA1uW,KAAAg6c,SAAA,EACAh6c,KAAAs6c,iBACAt6c,KAAAmsN,QAAAitP,YACA,IAAA90a,EAAA,EACA,cAAAizB,EAAA/zD,OACA+zD,EAAAm6H,QAAAn6H,EAAAo1V,QAAA,GAAAj7N,QACAn6H,EAAAk6H,QAAAl6H,EAAAo1V,QAAA,GAAAl7N,SAEAzxL,KAAA0uI,UACA1uI,KAAA0+N,SAAAnnK,EAAAm6H,QACAptJ,GAAAtkC,KAAAs+N,OAAAt+N,KAAA0+N,UAAA1+N,KAAAmsN,QAAA0sP,WAAA,MAEA74c,KAAAy+N,SAAAlnK,EAAAk6H,QACAntJ,GAAAtkC,KAAAy+N,SAAAz+N,KAAAq+N,QAAAr+N,KAAAmsN,QAAA0sP,WAAA,KAEA74c,KAAAi6c,YAAAj6c,KAAAksH,cAAA5nF,EACAtkC,KAAAg5c,YAAAh5c,KAAAi6c,eAGApjT,UAAA,WACA,IAAAh6I,EAAA7c,KAEAA,KAAA0uW,WAKApiW,WAAA,WACAuQ,EAAA6xV,UAAA,EACA7xV,EAAA09b,cACA19b,EAAAm9b,UACAn9b,EAAAm8b,YAAAn8b,EAAAo9b,aACAp9b,EAAAsvM,QAAAk1F,eAES,GACT1xS,OAAAmP,oBAAA,YAAA9e,KAAA06c,YACA/qc,OAAAmP,oBAAA,YAAA9e,KAAA06c,YACA/qc,OAAAmP,oBAAA,UAAA9e,KAAA62J,WACAlnJ,OAAAmP,oBAAA,WAAA9e,KAAA62J,WACAlnJ,OAAAmP,oBAAA,cAAA9e,KAAA62J,aAGAmiT,YAAA,SAAAiB,GACA,IAAA/7b,EAAAle,KAEA,UAAAi6c,IAAAxvc,MAAAwvc,GAAA,CACAA,EAAA,EACAA,EAAA,EACOA,EAAA,MACPA,EAAA,KAEA,IAAAY,EAAA,MAAA76c,KAAAiI,IAAAjI,KAAAgI,KAAAhI,KAAAsnB,MAEA/f,EADAQ,KAAAqC,MAAA6vc,EAAAY,GACAA,GAAA76c,KAAAiI,IAAAjI,KAAAgI,KAAA,IAAAhI,KAAAgI,IACAT,EAAAie,WAAAje,EAAAD,QAAAtH,KAAAqJ,YACArJ,KAAAge,MAAA,QAAAzW,GACAvH,KAAAuc,UAAA,WACA2B,EAAAO,MAAA1I,SAAAmI,EAAAO,MAAA1I,QAAA4+L,iBAEA30M,KAAA0uW,UAAA1uW,KAAAuH,QAAAvH,KAAA8lO,WACA9lO,KAAA8lO,SAAA9lO,KAAAuH,YAoCA,SAAArE,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiB0B,IAAA,SAAAxB,YAAA,4BAAAc,OAA4DwqK,MAAAnuG,EAAAiwJ,SAAAkqI,SAAAn6R,EAAAm6R,UAAkDn2V,MAAAg8D,EAAA,aAAAl9D,OAAiC+tN,SAAA,KAAe1lN,IAAK4kK,WAAA/vG,EAAAsxW,iBAAAl/N,WAAApyI,EAAAuoW,iBAAAthR,UAAAjnF,EAAAimY,aAAAjsG,WAAAh6R,EAAAimY,aAAAjta,MAAAgnC,EAAAsxW,iBAAA5/M,KAAA1xJ,EAAAuoW,iBAAAzqI,SAAA,SAAA9tH,GAAoN,iBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAsF,WAAAw6K,GAAA,IAAAA,EAAA4N,OAA8C,UAAe59G,EAAAomY,cAAAp2R,GAA5E,MAAsG,SAAAA,GAAkB,iBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAuF,WAAAw6K,GAAA,IAAAA,EAAA4N,OAA8C,UAAe59G,EAAAqmY,eAAAr2R,GAA5E,MAAuG,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,UAAA33F,EAAAx6K,KAAuE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAomY,cAAAp2R,IAA0B,SAAAA,GAAkB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,QAAA33F,EAAAx6K,KAAqE,YAAew6K,EAAAoN,iBAAwBp9G,EAAAqmY,eAAAr2R,QAA8BrtK,EAAA,cAAmB0B,IAAA,UAAAvB,OAAqB0jC,UAAA,MAAA+/Z,eAAAvmY,EAAAikY,aAAA9kY,UAAAa,EAAAqzM,eAA+E1wQ,EAAA,QAAaG,OAAO20O,KAAA,WAAiBA,KAAA,YAAgBz3K,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA6lY,gBAAAljc,EAAA,OAA8CE,YAAA,oBAAAc,OAAuCwqK,MAAAnuG,EAAAiwJ,SAAAkqI,SAAAn6R,EAAAm6R,eAAmD,IAEx6C/2V,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,YAAAc,OAA+B6ic,cAAAxmY,EAAAm6D,SAAAssU,wBAAAzmY,EAAAktX,WAAsEpqb,OAAQ2sJ,KAAA,SAAAE,gBAAA3vF,EAAAvsE,IAAAm8J,gBAAA5vF,EAAAtsE,IAAAgzc,mBAAA1mY,EAAAm6D,SAAA,wBAAAogS,gBAAAv6V,EAAA4kY,kBAA+J5kY,EAAAktX,YAAAltX,EAAA6rC,MAAAlpG,EAAA,mBAAsD0B,IAAA,QAAAxB,YAAA,mBAAAC,OAAkDiQ,KAAAitD,EAAAjtD,KAAAosD,SAAAa,EAAA4kY,eAAAtoK,SAAAt8N,EAAA+jY,kBAAAtwc,IAAAusE,EAAAvsE,IAAAC,IAAAssE,EAAAtsE,IAAA+D,SAAAuoE,EAAAvoE,SAAA6lB,KAAA0iD,EAAAoxJ,WAAwJjmN,IAAKupN,OAAA,SAAA1kD,GAA0BhwG,EAAAh4D,UAAAg4D,EAAA8sO,cAA+B9pR,OAAQhwB,MAAAgtE,EAAA,WAAApyE,SAAA,SAAAqiT,GAAgDjwO,EAAAokY,WAAAn0J,GAAmBplS,WAAA,gBAA0Bm1D,EAAAO,KAAA59D,EAAA,OAAqB0B,IAAA,SAAAxB,YAAA,oBAAAc,OAAoDgjc,aAAA3mY,EAAAktX,UAAA/tX,SAAAa,EAAA4kY,gBAA8D5gc,MAAAg8D,EAAA,YAAA70D,IAA6Bm1D,MAAAN,EAAA2kY,iBAA2Bhic,EAAA,OAAYE,YAAA,iBAAAmB,MAAAg8D,EAAA,WAAkDr9D,EAAA,iBAAsB0B,IAAA,UAAAvB,OAAqBq3H,SAAAn6D,EAAAm6D,SAAAysU,gBAAA5mY,EAAAikY,cAAyDjhb,OAAQhwB,MAAAgtE,EAAA,WAAApyE,SAAA,SAAAqiT,GAAgDjwO,EAAAokY,WAAAn0J,GAAmBplS,WAAA,gBAA0Bm1D,EAAA,MAAAr9D,EAAA,iBAAkC0B,IAAA,UAAAvB,OAAqBq3H,SAAAn6D,EAAAm6D,SAAAysU,gBAAA5mY,EAAAikY,cAAyDjhb,OAAQhwB,MAAAgtE,EAAA,YAAApyE,SAAA,SAAAqiT,GAAiDjwO,EAAAqkY,YAAAp0J,GAAoBplS,WAAA,iBAA2Bm1D,EAAAO,KAAAP,EAAA9E,GAAA8E,EAAA,eAAA5nE,EAAA5C,GAAiD,OAAAwqE,EAAA,UAAAr9D,EAAA,OAAiCnN,MAAAqN,YAAA,kBAAAmB,MAAAg8D,EAAAm6D,UAA6D55H,OAAAnI,EAAA,MAA2B9G,KAAA8G,EAAA,OAAuB4nE,EAAAO,QAAW,QAElnDn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA2vX,EAAA7pX,EAFA33E,EAAA,MAMAw9Z,EAAA7lV,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAsb,QAAA,SAAAC,GACAA,EAAA+iO,IAAA0pM,EAAAhob,SACAub,EAAAp0B,UAAAoha,SAAAvE,EAAAhkZ,SAGAq0P,UAAA2zL,EAAAhob,QACAwoZ,QAAAxE,EAAAhkZ,UAKA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA6F,EAAAC,EAFA33E,EAAA,IAMA67c,EAAAlkY,EAFA33E,EAAA,KAIA4uD,EAAA5uD,EAAA,GAEA20M,EAAA30M,EAAA,IAIA87c,EAAAnkY,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAmwc,EAAArkY,EAAAl+D,QAAArP,OAAA0xc,EAAAric,SAEAwic,GACAlnb,QAAA,SAAAC,GACA,IAAAA,EAAAp0B,UAAAg5E,UAAA,CACA,IAAAsiY,EAAA,SAAA/6c,EAAA4sQ,GACAA,EAAA9lQ,MACA+sB,EAAAukD,SAAA,WACAw0L,EAAA9xN,UAAAouX,YACAlpa,EAAAg7c,kBAAA,EAAAttZ,EAAA0rB,UAAAhqE,SAAAG,KAAA,YACAvP,EAAAi7c,kBAAA,EAAAvtZ,EAAA0rB,UAAAhqE,SAAAG,KAAA,YACAvP,EAAAk7c,UAAAvqa,OAAA8iK,EAAAl9H,aAAAyC,cAEA,EAAAtrB,EAAA6rB,UAAAv5E,EAAAkhK,KAAA,iBACAi6S,EAAA/rc,SAAAG,KAAAvP,EAAA4sQ,MAEA,EAAAl/M,EAAAosB,aAAA95E,EAAAkhK,KAAA,iBAEA0rG,EAAA9xN,UAAAvrC,MACAvP,EAAAg7c,kBAAA,EAAAttZ,EAAA0rB,UAAAhqE,SAAAG,KAAA,aAEA,cAAAlG,QAAA,SAAA+zC,GACA,IAAA+tK,EAAA,QAAA/tK,EAAA,yBACAp9C,EAAAk7c,UAAA99Z,GAAAp9C,EAAAk+C,wBAAAd,GAAAhuC,SAAAG,KAAA47M,GAAA/7M,SAAAmuC,gBAAA4tK,GAAAhyI,UAAA,EAAAzrB,EAAA0rB,UAAAhqE,SAAAG,KAAA,UAAA6tC,GAAA,YAEA,kBAAA/zC,QAAA,SAAA+zC,GACAp9C,EAAAk7c,UAAA99Z,GAAAp9C,EAAAk+C,wBAAAd,GAAA,OAGA+9Z,EAAA/rc,SAAAG,KAAAvP,EAAA4sQ,KAEA5sQ,EAAAg7c,kBAAA,EAAAttZ,EAAA0rB,UAAAp5E,EAAA,YACAm7c,EAAAn7c,IAAA4sQ,SAKA,EAAAguM,EAAAtic,SAAAtY,EAAA8+C,SAAA,SAAAphC,GACA1d,EAAAo7c,YAAA,EACA,IAAAt7c,EAAA8sQ,EAAA9xN,UAAAouX,YAAAt8J,EAAA9xN,UAAAvrC,KAAAH,SAAAG,KAAAvP,GACA,EAAA0tD,EAAAosB,aAAAh6E,EAAA,gCACA,EAAA4tD,EAAAosB,aAAAh6E,EAAA,6BACAE,EAAA8+C,SAAAu8Z,QAAA,GACO,QACPr7c,EAAA8+C,SAAAi4B,SAAA,EACA/2E,EAAA8+C,SAAAu8Z,QAAA,IAGAF,EAAA,SAAArya,EAAA9oC,EAAA4sQ,GACA5sQ,EAAAo7c,YAAA,YAAA1tZ,EAAA0rB,UAAAp5E,EAAA,0BAAA0tD,EAAA0rB,UAAAp5E,EAAA,gBACAmJ,OAAAC,KAAApJ,EAAAk7c,WAAA7xc,QAAA,SAAA+zC,GACAp9C,EAAAkhK,KAAAppJ,MAAAslC,GAAAp9C,EAAAk7c,UAAA99Z,KAGA,aAAAp9C,EAAAg7c,kBAAA,UAAAh7c,EAAAg7c,mBACA,EAAAttZ,EAAA6rB,UAAAzwC,EAAA,+BAEA8jO,EAAA9xN,UAAAouX,YAAAt8J,EAAA9xN,UAAAwga,OACA,EAAA5tZ,EAAA6rB,UAAAzwC,EAAA,6BAEA9oC,EAAAo7c,YAAA,EAEAtya,EAAAt5B,YAAAxP,EAAAkhK,MACArtI,EAAAukD,SAAA,WACAp4E,EAAA8+C,SAAAu8Z,OACAr7c,EAAA8+C,SAAAvhC,MAAA,eAEAvd,EAAA8+C,SAAAi4B,SAAA,IAGA/2E,EAAAu7c,aAAA,IAIA1nb,EAAA84O,UAAA,WACA5iQ,KAAA,SAAA/J,EAAA4sQ,EAAAvmD,GACA,IAAAm1P,EAAAx7c,EAAAy6D,aAAA,wBACAghZ,EAAAz7c,EAAAy6D,aAAA,2BACAihZ,EAAA17c,EAAAy6D,aAAA,8BACAkhZ,EAAA37c,EAAAy6D,aAAA,gCACA6rL,EAAAjgC,EAAAh5J,QACA6zG,EAAA,IAAA25S,GACA76c,GAAAoP,SAAAC,cAAA,OACAgB,MACAugC,KAAA01M,KAAAk1N,MACA3lB,QAAAvvM,KAAAm1N,MACAnkU,WAAAgvG,KAAAo1N,MACAvyC,YAAA7iL,KAAAq1N,MACAzyC,aAAAt8J,EAAA9xN,UAAAouX,cAGAlpa,EAAA8+C,SAAAoiH,EACAlhK,EAAAkhK,OAAAjlJ,IACAjc,EAAAk7c,aAEAtuM,EAAA9lQ,OAAAi0c,EAAA/6c,EAAA4sQ,IAGA9wN,OAAA,SAAA97C,EAAA4sQ,GACA5sQ,EAAA8+C,SAAAk4S,QAAAh3V,EAAAy6D,aAAA,yBACAmyM,EAAAvnC,WAAAunC,EAAA9lQ,OACAi0c,EAAA/6c,EAAA4sQ,IAIAe,OAAA,SAAA3tQ,EAAA4sQ,GACA5sQ,EAAAu7c,cACAv7c,EAAAkhK,MAAAlhK,EAAAkhK,KAAAp1H,YAAA9rC,EAAAkhK,KAAAp1H,WAAAC,YAAA/rC,EAAAkhK,MACA65S,EAAA/6c,GAA2B8G,OAAA,EAAAg0C,UAAA8xN,EAAA9xN,mBAM3Bp4C,EAAA4V,QAAAwic,GAIA,SAAAr4c,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAoBAjuE,EAAA4V,SACAjI,KAAA,WACA,OACAugC,KAAA,KACAilZ,QAAA,KACAv+S,WAAA,KACA4xR,YAAA,EACAnyV,SAAA,EACAoyV,YAAA,KAKA7tZ,SACAwlb,iBAAA,WACAvhc,KAAAge,MAAA,gBAEAy5U,QAAA,SAAApmT,GACArxC,KAAAqxC,WAOA,SAAAnuC,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,mBAAyB8c,IAAKwkS,cAAA3vO,EAAAgtX,oBAAoCrqb,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsEhI,YAAA,kBAAAc,OAAAq8D,EAAAq1V,aAAyDI,gBAAAz1V,EAAAo1V,aAAkCpxZ,OAAUkC,gBAAA85D,EAAAwjE,YAAA,MAA0C7gI,EAAA,OAAYE,YAAA,uBAAiCm9D,EAAA+hX,QAAuKp/a,EAAA,KAAYgB,MAAAq8D,EAAA+hX,UAAnLp/a,EAAA,OAA2BE,YAAA,WAAAC,OAA8BC,QAAA,iBAAyBJ,EAAA,UAAeE,YAAA,OAAAC,OAA0BE,GAAA,KAAAC,GAAA,KAAAC,EAAA,KAAAC,KAAA,YAA0E68D,EAAA,KAAAr9D,EAAA,KAAqBE,YAAA,oBAA8Bm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAljC,SAAAkjC,EAAAO,YAE5rBn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA6F,EAAAC,EAFA33E,EAAA,IAMA67c,EAAAlkY,EAFA33E,EAAA,KAIA4uD,EAAA5uD,EAAA,GAEA20M,EAAA30M,EAAA,IAIA87c,EAAAnkY,EAFA33E,EAAA,KAMA43E,EAAAD,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAkxc,EAAAplY,EAAAl+D,QAAArP,OAAA0xc,EAAAric,SAEAiqB,GACAqO,KAAA,KACAs4X,YAAA,EACA35Z,MAAA,EACA+rc,MAAA,EACAnyC,YAAA,IAGA0yC,OAAA,EAEAD,EAAAn8c,UAAAu7c,iBAAA,GACAY,EAAAn8c,UAAAw7c,iBAAA,GAEAW,EAAAn8c,UAAA44E,MAAA,WACA,IAAAj8D,EAAA7c,KAEAA,KAAA2pa,aACA2yC,OAAA5uc,IAEA,EAAA2tc,EAAAtic,SAAA/Y,KAAA,SAAAme,GACA,IAAA5d,EAAAsc,EAAA8sZ,YAAA9sZ,EAAA7M,KAAAH,SAAAG,KAAA6M,EAAAtc,QACA,EAAA4tD,EAAAosB,aAAAh6E,EAAA,gCACA,EAAA4tD,EAAAosB,aAAAh6E,EAAA,6BACAsc,EAAAH,KAAAG,EAAAH,IAAA6vB,YACA1vB,EAAAH,IAAA6vB,WAAAC,YAAA3vB,EAAAH,KAEAG,EAAAs3O,YACG,KACHn0P,KAAAw3E,SAAA,GAmEAr0E,EAAA4V,QAzCA,WACA,IAAAtQ,EAAA3D,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEA,IAAAmyE,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,CAWA,GATA,iBADAzwE,GAAA,EAAA0uE,EAAAp+D,YAAmCiqB,EAAAv6B,IACnClI,SACAkI,EAAAlI,OAAAsP,SAAA0zC,cAAA96C,EAAAlI,SAEAkI,EAAAlI,OAAAkI,EAAAlI,QAAAsP,SAAAG,KACAvH,EAAAlI,SAAAsP,SAAAG,KACAvH,EAAAkha,YAAA,EAEAlha,EAAAuH,MAAA,EAEAvH,EAAAkha,YAAA2yC,EACA,OAAAA,EAGA,IAAA/ya,EAAA9gC,EAAAuH,KAAAH,SAAAG,KAAAvH,EAAAlI,OACAg/C,EAAA,IAAA88Z,GACA57c,GAAAoP,SAAAC,cAAA,OACAgB,KAAArI,IAiBA,OA7DA,SAAAA,EAAA8gC,EAAAgW,GACA,IAAAo8Z,KACAlzc,EAAAkha,YACApqX,EAAAk8Z,kBAAA,EAAAttZ,EAAA0rB,UAAAhqE,SAAAG,KAAA,YACAuvC,EAAAm8Z,kBAAA,EAAAvtZ,EAAA0rB,UAAAhqE,SAAAG,KAAA,YACA2rc,EAAAvqa,OAAA8iK,EAAAl9H,aAAAyC,cACGhxE,EAAAuH,MACHuvC,EAAAk8Z,kBAAA,EAAAttZ,EAAA0rB,UAAAhqE,SAAAG,KAAA,aACA,cAAAlG,QAAA,SAAA+zC,GACA,IAAA+tK,EAAA,QAAA/tK,EAAA,yBACA89Z,EAAA99Z,GAAAp1C,EAAAlI,OAAAo+C,wBAAAd,GAAAhuC,SAAAG,KAAA47M,GAAA/7M,SAAAmuC,gBAAA4tK,GAAA,QAEA,kBAAA9hN,QAAA,SAAA+zC,GACA89Z,EAAA99Z,GAAAp1C,EAAAlI,OAAAo+C,wBAAAd,GAAA,QAGA0B,EAAAk8Z,kBAAA,EAAAttZ,EAAA0rB,UAAAtwC,EAAA,YAEA3/B,OAAAC,KAAA8xc,GAAA7xc,QAAA,SAAA+zC,GACA0B,EAAA7iC,IAAAnE,MAAAslC,GAAA89Z,EAAA99Z,KA4BA0+Z,CAAA9zc,EAAA8gC,EAAAgW,GACA,aAAAA,EAAAk8Z,kBAAA,UAAAl8Z,EAAAk8Z,mBACA,EAAAttZ,EAAA6rB,UAAAzwC,EAAA,+BAEA9gC,EAAAkha,YAAAlha,EAAAszc,OACA,EAAA5tZ,EAAA6rB,UAAAzwC,EAAA,6BAEAA,EAAAt5B,YAAAsvC,EAAA7iC,KACAu6D,EAAAl+D,QAAA8/D,SAAA,WACAt5B,EAAAi4B,SAAA,IAEA/uE,EAAAkha,aACA2yC,EAAA/8Z,GAEAA,KAOA,SAAAr8C,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAqxc,EAAAj9c,EAAA,KAEAk9c,GAEAtxc,EAFAqxc,IAEsCrxc,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Esxc,EAAA1jc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkob,EAAA1jc,QAAAnW,KAAA65c,EAAA1jc,UAGA5V,EAAA4V,QAAA0jc,EAAA1jc,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAm1c,EAAAn9c,EAAA,KACAo9c,EAAAp9c,EAAA6+C,EAAAs+Z,GACAE,EAAAr9c,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAwpY,EAAApnc,EACAqnc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAr4Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAMAjuE,EAAA4V,SACAnW,KAAA,SAEAE,OACAF,KAAAuO,UAMA,SAAAjO,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,KAAekB,MAAA,WAA9ElY,KAA8E4C,QAEvF+U,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA0xc,EAAAt9c,EAAA,KAEAu9c,GAEA3xc,EAFA0xc,IAEsC1xc,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E2xc,EAAA/jc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAuob,EAAA/jc,QAAAnW,KAAAk6c,EAAA/jc,UAGA5V,EAAA4V,QAAA+jc,EAAA/jc,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4V,SACAnW,KAAA,QAEA2/K,cAAA,QAEAz/K,OACAqoN,KACA3nN,KAAA2N,OACA4H,QAAA,OAEA0yM,OAAA1wM,OACAvX,KAAA2N,OACA4rc,SACAv5c,KAAA2N,OACA4H,QAAA,SAEA4f,OACAn1B,KAAA2N,OACA4H,QAAA,QAIA8C,UACAtD,MAAA,WACA,IAAAo+D,KAOA,OALA32E,KAAAyrN,SACA90I,EAAA15B,WAAA,IAAAj9C,KAAAyrN,OAAA,OACA90I,EAAAz5B,YAAAy5B,EAAA15B,YAGA05B,IAIAlzE,OAAA,SAAAwU,GACA,OAAAA,EAAAjY,KAAAmrN,KACAjzM,OAAA,mBAAAlY,KAAA+8c,QAAA,cAAA/8c,KAAA+8c,QAAA,WAAA/8c,KAAA24B,MAAA,YAAA34B,KAAA24B,MAAA,IAA6Iqkb,eAAA,SAAAh9c,KAAAwD,OAC7I+U,MAAAvY,KAAAuY,OACKvY,KAAA8Y,OAAAC,YAML,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA8xc,EAAA19c,EAAA,KAEA29c,GAEA/xc,EAFA8xc,IAEsC9xc,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E+xc,EAAAnkc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA2ob,EAAAnkc,QAAAnW,KAAAs6c,EAAAnkc,UAGA5V,EAAA4V,QAAAmkc,EAAAnkc,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAApmE,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5IhI,EAAA4V,SACAnW,KAAA,QAEAE,OACAs2B,MACA51B,KAAAuX,OACAhC,QAAA,IAEAoyM,KACA3nN,KAAA2N,OACA4H,QAAA,OAEA2pB,OAAA3nB,OACAoic,KAAApic,OACAxZ,KAAAwZ,OACAqic,IAAAric,OAAAnR,QACAyzc,IAAAtic,OAAAnR,QACA0zc,IAAAvic,OAAAnR,QACAyyV,IAAAthV,OAAAnR,QACA2zc,IAAAxic,OAAAnR,SAGAiS,UACA4vM,OAAA,WAEA,IADA,IAAAliL,EAAAvpC,KAAAmsN,QACA5iL,GAAA,UAAAA,EAAAnxB,SAAAmqK,eACAh5I,IAAA4iL,QAEA,OAAA5iL,IAAAkiL,OAAA,IAGAhoN,OAAA,SAAAwU,GACA,IAAA4E,EAAA7c,KAEAghD,KACAzoC,KA0BA,OAxBAvY,KAAAyrN,SACAlzM,EAAAi0S,YAAAxsT,KAAAyrN,OAAA,OACAlzM,EAAAohE,aAAAphE,EAAAi0S,cAGA,+BAAA1iT,QAAA,SAAAhJ,IACA+b,EAAA/b,IAAA,IAAA+b,EAAA/b,KACAkgD,EAAAz/C,KAAA,SAAAT,EAAA,UAAAA,EAAA,IAAA+b,EAAA/b,GAAA,UAAA+b,EAAA/b,OAIA,0BAAAgJ,QAAA,SAAA+nB,GAIA,IACA/uB,EAJA,iBAAA+Z,EAAAgV,GACAmvB,EAAAz/C,KAAA,UAAAswB,EAAA,IAAAhV,EAAAgV,IACO,WAAA7mB,EAAA6R,EAAAgV,MAEP/uB,EAAA+Z,EAAAgV,GACAjoB,OAAAC,KAAA/G,GAAAgH,QAAA,SAAAhJ,GACAkgD,EAAAz/C,KAAA,SAAAT,EAAA,UAAA+wB,EAAA,IAAA/wB,EAAA,IAAAgC,EAAAhC,GAAA,UAAA+wB,EAAA,IAAA/uB,EAAAhC,SAMAmX,EAAAjY,KAAAmrN,KACAjzM,OAAA,SAAA8oC,GACAzoC,SACKvY,KAAA8Y,OAAAC,YAML,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAqyc,EAAAj+c,EAAA,KAEAk+c,GAEAtyc,EAFAqyc,IAEsCryc,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Esyc,EAAA1kc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkpb,EAAA1kc,QAAAnW,KAAA66c,EAAA1kc,UAGA5V,EAAA4V,QAAA0kc,EAAA1kc,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAm2c,EAAAn+c,EAAA,KACAo+c,EAAAp+c,EAAA6+C,EAAAs/Z,GAcAxqY,EAbA3zE,EAAA,EAaA4zE,CACAwqY,EAAApoc,EAVA,MAEA,EAEA,KAEA,KAEA,MAUAgvC,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAwsY,EAAA1mY,EAFA33E,EAAA,MAMAs+c,EAAA3mY,EAFA33E,EAAA,MAMAgjK,EAAArrF,EAFA33E,EAAA,KAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,SAAAkxD,KAEAl5D,EAAA4V,SACAnW,KAAA,WAEA0/K,QAAA6hD,EAAAprN,SAEAqb,YACA0pb,WAAAv7S,EAAAxpJ,QACAglc,WAAAH,EAAA7kc,QACA2rZ,OAAAm5C,EAAA9kc,SAGAsuO,QAAA,WACA,OACA22N,SAAAh+c,OAKAqzE,QACAC,QACAv6D,QAAA,KAIAjW,OACAw0D,QACA9zD,KAAA2N,OACA4xJ,UAAA,GAEA9tF,SACAzxE,KAAAoG,OACAmP,QAAA,WACA,WAGAjI,KAAAlH,OACAm5K,SAAAtpK,QACA7W,MACAY,KAAA2N,OACA4H,QAAA,QAEA4/Y,KAAAl/Y,QACAwkc,QAAAxkc,QACAkwX,gBAAAlwX,QACAykc,cACA16c,KAAAiW,QACAV,SAAA,GAEAolc,OAAAhtc,OACA3N,MACAA,KAAA2N,OACA4H,QAAA,UAEAqlc,aAAAjlc,SACAklc,aAAAllc,SACAq4B,UACAhuC,KAAA2V,SACAJ,QAAAsjD,GAEAiiZ,UACA96c,KAAA2V,SACAJ,QAAAsjD,GAEAkiZ,WACA/6c,KAAA2V,UAEAuiG,WACAl4G,KAAA2V,SACAJ,QAAAsjD,GAEAiiD,YACA96G,KAAA2V,SACAJ,QAAAsjD,GAEAu/C,SACAp4G,KAAA2V,SACAJ,QAAAsjD,GAEAmiZ,UACAh7c,KAAAqI,MACAkN,QAAA,WACA,WAGA0lc,YACAj7c,KAAAiW,QACAV,SAAA,GAEA2lc,UACAl7c,KAAA2N,OACA4H,QAAA,QAEA4lc,YAAAxlc,SACAu6D,SAAAj6D,QACAmlc,MAAA7jc,OACA8jc,UACAr7c,KAAA2V,SACAJ,QAAAsjD,IAIAvrD,KAAA,WACA,OACAguc,eACAC,UAAA,EACAC,SAAA,EACAC,UAAA,IAKApjc,UACAqjc,eAAA,WACA,OAAAl/c,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,WAIhDn4D,OACAijc,UACA9pQ,WAAA,EACAj5L,QAAA,SAAA+ic,GACA,IAAA3hc,EAAA7c,KAEAA,KAAA8+c,YAAAN,EAAA7tc,IAAA,SAAAhE,GAGA,OAFAA,EAAAuoD,IAAAvoD,EAAAuoD,KAAAzlD,KAAAC,MAAAmN,EAAAoic,YACAtyc,EAAAsJ,OAAAtJ,EAAAsJ,QAAA,UACAtJ,OAMAoP,SACAojc,YAAA,SAAAC,GACAA,EAAAlqZ,IAAAzlD,KAAAC,MAAA1P,KAAAi/c,YACA,IAAAI,GACAppc,OAAA,QACArT,KAAAw8c,EAAAx8c,KACAivB,KAAAutb,EAAAvtb,KACAixI,WAAA,EACA5tG,IAAAkqZ,EAAAlqZ,IACAqvL,IAAA66N,GAGA,IACAC,EAAAlxc,IAAAk2G,IAAA4b,gBAAAm/U,GACO,MAAA35X,GAEP,YADAhwE,QAAAslE,MAAA0K,GAIAzlF,KAAA8+c,YAAAv9c,KAAA89c,GACAr/c,KAAAs+c,SAAAe,EAAAr/c,KAAA8+c,cAEAQ,eAAA,SAAA9/b,EAAA4/b,GACA,IAAAC,EAAAr/c,KAAAu/c,QAAAH,GACAp/c,KAAAs+G,WAAA9+F,EAAA6/b,EAAAr/c,KAAA8+c,aACAO,EAAAppc,OAAA,YACAopc,EAAAv8S,WAAAtjJ,EAAA4E,SAAA,GAEAo7b,cAAA,SAAApwc,EAAAgwc,GACA,IAAAC,EAAAr/c,KAAAu/c,QAAAH,GAEAC,IACAA,EAAAppc,OAAA,UACAopc,EAAA3lW,SAAAtqG,EAEApP,KAAA07G,UAAAtsG,EAAAiwc,EAAAr/c,KAAA8+c,aACA9+c,KAAAs+c,SAAAe,EAAAr/c,KAAA8+c,eAGA71N,YAAA,SAAAxjK,EAAA25X,GACA,IAAAC,EAAAr/c,KAAAu/c,QAAAH,GACAZ,EAAAx+c,KAAA8+c,YAEAO,EAAAppc,OAAA,OAEAuoc,EAAAl9c,OAAAk9c,EAAA1+c,QAAAu/c,GAAA,GAEAr/c,KAAA47G,QAAAn2B,EAAA45X,EAAAr/c,KAAA8+c,aACA9+c,KAAAs+c,SAAAe,EAAAr/c,KAAA8+c,cAEAW,aAAA,SAAAJ,EAAA96N,GACA,IAAArmO,EAAAle,KAEAukP,IACA86N,EAAAr/c,KAAAu/c,QAAAh7N,IAEA,IAAAm7N,EAAA,WACAxhc,EAAAw8F,MAAA2kW,GACA,IAAAb,EAAAtgc,EAAA4gc,YACAN,EAAAl9c,OAAAk9c,EAAA1+c,QAAAu/c,GAAA,GACAnhc,EAAAszB,SAAA6ta,EAAAb,IAGA,GAAAx+c,KAAAq+c,cAEO,sBAAAr+c,KAAAq+c,aAAA,CACP,IAAAzyB,EAAA5rb,KAAAq+c,aAAAgB,EAAAr/c,KAAA8+c,aACAlzB,KAAAz8a,KACAy8a,EAAAz8a,KAAA,WACAuwc,KACWrjZ,IACF,IAAAuvX,GACT8zB,UARAA,KAYAH,QAAA,SAAAH,GACA,IACA7+c,OAAA,EAKA,OANAP,KAAA8+c,YAEAjnW,MAAA,SAAAlrG,GAEA,QADApM,EAAA6+c,EAAAlqZ,MAAAvoD,EAAAuoD,IAAAvoD,EAAA,QAGApM,GAEAm6G,MAAA,SAAA2kW,GACAr/c,KAAAye,MAAA,gBAAAi8F,MAAA2kW,IAEAM,WAAA,WACA3/c,KAAA8+c,gBAEAc,OAAA,WACA,IAAA5gc,EAAAhf,KAEAA,KAAA8+c,YAAA13b,OAAA,SAAAi4b,GACA,gBAAAA,EAAAppc,SACOnM,QAAA,SAAAu1c,GACPrgc,EAAAP,MAAA,gBAAAiiW,OAAA2+F,EAAA96N,QAGAre,mBAAA,WACA,OACApjO,OACA+8c,oBAAA,6CACAC,mBAAA,iDACAC,iBAAA,mLAMAt8c,OAAA,SAAAwU,GACA,IAAA+nc,OAAA,EAEAhgd,KAAAk+c,eACA8B,EAAA/nc,EACA2lc,EAAA7kc,SAEA1B,OACAq8D,SAAA1zE,KAAAk/c,eACAR,SAAA1+c,KAAA0+c,SACAuB,MAAAjgd,KAAA8+c,YAEAoB,cAAAlgd,KAAAu+c,WACA7+b,IACAjb,OAAAzE,KAAAy/c,oBAOA,IA8BAU,EAAAloc,EACA,UA9BAnV,OACAU,KAAAxD,KAAAwD,KACAm1Z,KAAA34Z,KAAA24Z,KACArhW,OAAAt3D,KAAAs3D,OACAyrH,SAAA/iL,KAAA+iL,SACAq9R,gBAAApgd,KAAAo+c,aACAiC,mBAAArgd,KAAA2pY,gBACA10T,QAAAj1E,KAAAi1E,QACAryE,KAAA5C,KAAA4C,KACAkO,KAAA9Q,KAAA8Q,KACAqtc,OAAAn+c,KAAAm+c,OACAK,SAAAx+c,KAAA8+c,YACAL,WAAAz+c,KAAAy+c,WACAC,SAAA1+c,KAAA0+c,SACAhrY,SAAA1zE,KAAAk/c,eACAN,MAAA5+c,KAAA4+c,MACA0B,YAAAtgd,KAAA6+c,SACA0B,WAAAvgd,KAAAm/c,YACAqB,cAAAxgd,KAAAs/c,eACAmB,aAAAzgd,KAAAw/c,cACAkB,WAAA1gd,KAAAipP,YACA03N,aAAA3gd,KAAAu+c,UACAqC,YAAA5gd,KAAAy/c,aACAoB,eAAA7gd,KAAA2+c,aAEA/lc,IAAA,iBAGA5Y,KAAA8Y,OAAA7G,SAAAjS,KAAA8Y,OAAAC,UAOA,OAAAd,EACA,MACA,MACA,iBAAAjY,KAAA0+c,SAAAsB,EAAA,GAAAhgd,KAAA8Y,OAAA7G,SAAAkuc,EAAAngd,KAAA8Y,OAAAC,SAAAonc,EAAAngd,KAAA8Y,OAAA4mQ,IAAA,iBAAA1/Q,KAAA0+c,SAAAsB,EAAA,QAOA,SAAA98c,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAu5c,EAAAvhd,EAAA,KACAwhd,EAAAxhd,EAAA6+C,EAAA0ia,GACAE,EAAAzhd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA4tY,EAAAxrc,EACAyrc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAz8Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAssO,EAAAxmO,EAFA33E,EAAA,IAMAgjK,EAAArrF,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAiE7EhI,EAAA4V,SACAupK,QAAAo7H,EAAA3kS,SAEAjI,KAAA,WACA,OACAq1M,UAAA,IAIA/xL,YAAe0pb,WAAAv7S,EAAAxpJ,SAEfjW,OACAm9c,OACAz8c,KAAAqI,MACAkN,QAAA,WACA,WAGA26D,UACAlwE,KAAAiW,QACAV,SAAA,GAEAmnc,cAAA/mc,SACAulc,SAAAvtc,QAEA4K,SACAklc,gBAAA,SAAA1zc,GACA,OAAAqsE,SAAArsE,EAAA,KAEA4mE,YAAA,SAAAkrY,GACAr/c,KAAAkgd,eAAAlgd,KAAAkgd,cAAAb,OAOA,SAAAn8c,EAAAqhD,EAAAhlD,GAEA,aACA,IAUA+0E,GAAiB7wE,OAVjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,oBAA8BgB,OACvH,iBACA,mBAAAq8D,EAAAmqY,UACKlqY,cAAAD,EAAAb,WACLr8D,OAAW8zM,IAAA,KAAAvoN,KAAA,YAA6B2xE,EAAA9E,GAAA8E,EAAA,eAAA8qY,EAAAzyc,GAAyC,OAAAsK,EAAA,MAAgBnN,IAAA6C,EAAAsL,OAAA,6BAAAmnc,EAAAppc,OAAAs+D,EAAA4xI,SAAA,eAAA9uM,OAAqG+tN,SAAA,KAAe1lN,IAAK2yR,QAAA,SAAA9tH,GAA2B,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,gBAAA33F,EAAAx6K,KAA6E,aAAewqE,EAAAb,UAAAa,EAAAv2D,MAAA,SAAAqhc,IAA2C9xa,MAAA,SAAAg3I,GAA0BhwG,EAAA4xI,UAAA,GAAoB8f,KAAA,SAAA1hD,GAAyBhwG,EAAA4xI,UAAA,GAAqBtxI,MAAA,SAAA0vG,GAA0BhwG,EAAA4xI,UAAA,MAAuB,cAAAk5P,EAAAppc,SAAA,0BAAAnW,QAAAy0E,EAAAmqY,WAAA,EAAAxnc,EAAA,OAAoGE,YAAA,iCAAAC,OAAoDtH,IAAAsvc,EAAAlxc,IAAA2/H,IAAA,MAAyBv5D,EAAAO,KAAA59D,EAAA,KAAmBE,YAAA,4BAAAsI,IAA4Cm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAJ,YAAAkrY,OAAwBnoc,EAAA,KAAUE,YAAA,qBAA+Bm9D,EAAA18D,GAAA08D,EAAA6vF,GAAAi7S,EAAAz8c,MAAA,YAAAsU,EAAA,SAAmDE,YAAA,sCAAgDF,EAAA,KAAUgB,OACh8Bgpc,0BAAA,EACAC,uBAAA,SAAA5sY,EAAAmqY,SACA0C,iBAAA,0BAAAthd,QAAAy0E,EAAAmqY,WAAA,OACQnqY,EAAAb,SAAiHa,EAAAO,KAAjH59D,EAAA,KAA4BE,YAAA,gBAAAsI,IAAgCm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAv2D,MAAA,SAAAqhc,OAA4B9qY,EAAAb,SAAmEa,EAAAO,KAAnE59D,EAAA,KAAmCE,YAAA,sBAAgCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,yCAAA42X,EAAAppc,OAAAiB,EAAA,eAA0GG,OAAO7T,KAAA,iBAAA+wE,EAAAmqY,SAAA,gBAAAr6S,eAAA,iBAAA9vF,EAAAmqY,SAAA,IAAA57S,WAAAvuF,EAAA0sY,gBAAA5B,EAAAv8S,eAAqKvuF,EAAAO,KAAA,iBAAAP,EAAAmqY,SAAAxnc,EAAA,QAAwDE,YAAA,iCAA2Cm9D,EAAA2rY,eAAA,iBAAA3rY,EAAAmqY,SAAAxnc,EAAA,QAAoEE,YAAA,+BAAAsI,IAA+Cm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA2rY,cAAAb,OAA0Bnoc,EAAA,KAAUE,YAAA,sBAA8Bm9D,EAAAO,KAAAP,EAAAb,SAAkLa,EAAAO,KAAlL59D,EAAA,QAAwCE,YAAA,8BAAAsI,IAA8Cm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAv2D,MAAA,SAAAqhc,OAA4Bnoc,EAAA,KAAUE,YAAA,uBAA6Bm9D,EAAAO,MAAA,OAEp6Bn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA85c,EAAA9hd,EAAA,KACA+hd,EAAA/hd,EAAA6+C,EAAAija,GAcAnuY,EAbA3zE,EAAA,EAaA4zE,CACAmuY,EAAA/rc,EAVA,MAEA,EAEA,KAEA,KAEA,MAUAgvC,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAmwY,EAAArqY,EAFA33E,EAAA,KAMAiid,EAAAtqY,EAFA33E,EAAA,MAMAkid,EAAAvqY,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAs6D,QAAA,YACAj/C,YACAstb,cAAAD,EAAA1oc,SAEAjW,OACAU,KAAA2N,OACAmmD,QACA9zD,KAAA2N,OACA4xJ,UAAA,GAEAngK,MACAY,KAAA2N,OACA4H,QAAA,QAEAjI,KAAAlH,OACAqrE,QAAArrE,OACA+/X,gBAAAlwX,QACAspK,SAAAtpK,QACA0kc,OAAAhtc,OACAwwc,QAAAxoc,SACAmlG,WAAAnlG,SACAuiG,UAAAviG,SACAyiG,QAAAziG,SACAilc,aAAAjlc,SACAw/Y,KAAAl/Y,QACA8kc,WACA/6c,KAAA2V,SACAJ,QAAA,cAEAy4B,UACAhuC,KAAA2V,SACAJ,QAAA,cAEAylc,SAAA3yc,MACA4yc,WAAAhlc,QACAilc,SAAAvtc,OACAwtc,aACAn7c,KAAA2V,SACAJ,QAAAyoc,EAAAzoc,SAEA26D,SAAAj6D,QACAmlc,MAAA7jc,OACA8jc,SAAA1lc,UAGArI,KAAA,WACA,OACA8vN,WAAA,EACAghP,UAKA7lc,SACA8lc,QAAA,SAAAxxa,GACA,WAAAA,EAAAvwC,QAAA,UAEA8mO,aAAA,SAAApnN,GACA,IAAAygc,EAAAzgc,EAAAjf,OAAA0/c,MAEAA,GACAjgd,KAAA8+c,YAAAmB,IAEAnB,YAAA,SAAAmB,GACA,IAAApjc,EAAA7c,KAEA,GAAAA,KAAA4+c,OAAA5+c,KAAAw+c,SAAAv9c,OAAAg/c,EAAAh/c,OAAAjB,KAAA4+c,MACA5+c,KAAA6+c,UAAA7+c,KAAA6+c,SAAAoB,EAAAjgd,KAAAw+c,cADA,CAKA,IAAAsD,EAAAj2c,MAAA3L,UAAAoC,MAAAoJ,KAAAu0c,GACAjgd,KAAA+iL,WACA++R,IAAAx/c,MAAA,MAGA,IAAAw/c,EAAA7gd,QAIA6gd,EAAAh4c,QAAA,SAAAs1c,GACAvic,EAAA8kc,QAAAvC,GACAvic,EAAA4hc,YAAA5hc,EAAA6jW,OAAA0+F,OAGA1+F,OAAA,SAAA0+F,GACA,IAAAlhc,EAAAle,KAIA,GAFAA,KAAAye,MAAAvU,MAAA3C,MAAA,MAEAvH,KAAAo+c,aACA,OAAAp+c,KAAA+hd,KAAA3C,GAGA,IAAAxzB,EAAA5rb,KAAAo+c,aAAAgB,GACAxzB,KAAAz8a,KACAy8a,EAAAz8a,KAAA,SAAA6yc,GACA,IAAAC,EAAAr4c,OAAA1J,UAAA0H,SAAA8D,KAAAs2c,GAEA,qBAAAC,GAAA,kBAAAA,EAAA,CAMA,QAAA/wa,IALA,kBAAA+wa,IACAD,EAAA,IAAAE,MAAAF,GAAA5C,EAAAx8c,MACAY,KAAA47c,EAAA57c,QAGA47c,EACAA,EAAAv8c,eAAAquC,KACA8wa,EAAA9wa,GAAAkua,EAAAlua,IAGAhzB,EAAA6jc,KAAAC,QAEA9jc,EAAA6jc,KAAA3C,IAES,WACTlhc,EAAAszB,SAAA,KAAA4ta,MAEO,IAAAxzB,EACP5rb,KAAA+hd,KAAA3C,GAEAp/c,KAAAwxC,SAAA,KAAA4ta,IAGA1kW,MAAA,SAAA2kW,GACA,IAAAuC,EAAA5hd,KAAA4hd,KAEA,GAAAvC,EAAA,CACA,IAAAnqZ,EAAAmqZ,EACAA,EAAAnqZ,QAAAmqZ,EAAAnqZ,KACA0sZ,EAAA1sZ,IACA0sZ,EAAA1sZ,GAAAwlD,aAGA9wG,OAAAC,KAAA+3c,GAAA93c,QAAA,SAAAorD,GACA0sZ,EAAA1sZ,IAAA0sZ,EAAA1sZ,GAAAwlD,eACAknW,EAAA1sZ,MAIA6sZ,KAAA,SAAA3C,GACA,IAAApgc,EAAAhf,KAEAk1D,EAAAkqZ,EAAAlqZ,IAEAzsD,GACAwsE,QAAAj1E,KAAAi1E,QACA00T,gBAAA3pY,KAAA2pY,gBACA01E,KAAAD,EACAtuc,KAAA9Q,KAAA8Q,KACAozG,SAAAlkH,KAAA4C,KACA00D,OAAAt3D,KAAAs3D,OACAgnD,WAAA,SAAAn6G,GACA6a,EAAAs/F,WAAAn6G,EAAAi7c,IAEA1jW,UAAA,SAAAtsG,GACA4P,EAAA08F,UAAAtsG,EAAAgwc,UACApgc,EAAA4ic,KAAA1sZ,IAEA0mD,QAAA,SAAAn2B,GACAzmE,EAAA48F,QAAAn2B,EAAA25X,UACApgc,EAAA4ic,KAAA1sZ,KAGAitZ,EAAAnid,KAAA2+c,YAAAl2c,GACAzI,KAAA4hd,KAAA1sZ,GAAAitZ,EACAA,KAAAhzc,MACAgzc,EAAAhzc,KAAA1G,EAAAizG,UAAAjzG,EAAAmzG,UAGAznC,YAAA,WACAn0E,KAAA0zE,WACA1zE,KAAAye,MAAAvU,MAAA3C,MAAA,KACAvH,KAAAye,MAAAvU,MAAA2qE,UAGAshW,cAAA,SAAAhya,GACAA,EAAA5D,SAAA4D,EAAA4iI,gBACA,KAAA5iI,EAAA+3Q,SAAA,KAAA/3Q,EAAA+3Q,SACAl8Q,KAAAm0E,iBAKA1wE,OAAA,SAAAwU,GACA,IAAAk8D,EAAAn0E,KAAAm0E,YACAwkV,EAAA34Z,KAAA24Z,KACA/1Z,EAAA5C,KAAA4C,KACAgkO,EAAA5mO,KAAA4mO,aACA7jD,EAAA/iL,KAAA+iL,SACAo7R,EAAAn+c,KAAAm+c,OACAO,EAAA1+c,KAAA0+c,SACAI,EAAA9+c,KAAA8+c,YACAprY,EAAA1zE,KAAA0zE,SAGA5iE,GACAoH,OACAkqc,aAAA,GAEA1ic,IACAm1D,MAAAV,EACAk+N,QARAryS,KAAAm2a,gBAYA,OADArla,EAAAoH,MAAA,cAAAwmc,IAAA,EACAzmc,EACA,OACA,EAAAspc,EAAAxoc,UAAAjI,GACAuG,OAAgB+tN,SAAA,SAEhBuzL,EAAA1gZ,EACA,kBAEAZ,OAAkBq8D,YAClBh0D,IACA2/b,KAAAP,KAGA9+c,KAAA8Y,OAAAC,UACA/Y,KAAA8Y,OAAAC,QAAAd,EACA,SACSC,MAAA,mBAAAb,OAAsC7T,KAAA,OAAAZ,OAAAmgL,WAAAo7R,UAC/Cvlc,IAAA,QAAA8G,IACAupN,OAAArC,aAWA,SAAA1jO,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAA4V,QA+BA,SAAAkE,GACA,uBAAApO,eACA,OAGA,IAAAD,EAAA,IAAAC,eACAyoD,EAAAr6C,EAAAq6C,OAEA1oD,EAAA8xW,SACA9xW,EAAA8xW,OAAA55O,WAAA,SAAA3iI,GACAA,EAAAivH,MAAA,IACAjvH,EAAAigB,QAAAjgB,EAAA85G,OAAA95G,EAAAivH,MAAA,KAEAn2G,EAAAqhG,WAAAn6G,KAIA,IAAAk+c,EAAA,IAAAx1Q,SAEA5vL,EAAAnM,MACAlH,OAAAC,KAAAoT,EAAAnM,MAAAhH,QAAA,SAAAC,GACAs4c,EAAAh2a,OAAAtiC,EAAAkT,EAAAnM,KAAA/G,MAIAs4c,EAAAh2a,OAAApvB,EAAAinG,SAAAjnG,EAAAoic,KAAApic,EAAAoic,KAAAz8c,MAEAgM,EAAAM,QAAA,SAAA/K,GACA8Y,EAAA2+F,QAAAz3G,IAGAyK,EAAAI,OAAA,WACA,GAAAJ,EAAAqH,OAAA,KAAArH,EAAAqH,QAAA,IACA,OAAAgH,EAAA2+F,QA/DA,SAAAtkD,EAAAr6C,EAAArO,GACA,IAAA0sE,OAAA,EAEAA,EADA1sE,EAAA8qG,SACA,IAAA9qG,EAAA8qG,SAAA3+B,OAAAnsE,EAAA8qG,UACG9qG,EAAAK,aACH,GAAAL,EAAAK,aAEA,gBAAAqoD,EAAA,IAAA1oD,EAAAqH,OAGA,IAAAwvE,EAAA,IAAApmB,MAAAic,GAIA,OAHAmK,EAAAxvE,OAAArH,EAAAqH,OACAwvE,EAAA/2C,OAAA,OACA+2C,EAAAt3E,IAAAmpD,EACAmuB,EAiDA68X,CAAAhrZ,EAAAr6C,EAAArO,IAGAqO,EAAAy+F,UAjDA,SAAA9sG,GACA,IAAAyiC,EAAAziC,EAAAK,cAAAL,EAAA8qG,SACA,IAAAroE,EACA,OAAAA,EAGA,IACA,OAAAnkC,KAAAC,MAAAkkC,GACG,MAAAltC,GACH,OAAAktC,GAwCAkxa,CAAA3zc,KAGAA,EAAAE,KAAA,OAAAwoD,GAAA,GAEAr6C,EAAA0sX,iBAAA,oBAAA/6X,IACAA,EAAA+6X,iBAAA,GAGA,IAAA10T,EAAAh4D,EAAAg4D,YAEA,QAAAtoE,KAAAsoE,EACAA,EAAApyE,eAAA8J,IAAA,OAAAsoE,EAAAtoE,IACAiC,EAAA+3H,iBAAAh6H,EAAAsoE,EAAAtoE,IAIA,OADAiC,EAAAG,KAAAszc,GACAzzc,IAKA,SAAA1L,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAi7c,EAAAjjd,EAAA,KACAkjd,EAAAljd,EAAA6+C,EAAAoka,GACAE,EAAAnjd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAsvY,EAAAltc,EACAmtc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAn+Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAeAjuE,EAAA4V,SACAnW,KAAA,eACAE,OACA4wE,SAAAj6D,SAEA45D,QACA2qY,UACAjlc,QAAA,KAGAjI,KAAA,WACA,OACAulc,UAAA,IAIAt6b,SACA4mc,WAAA,WACA3id,KAAA0zE,WACA1zE,KAAAq2c,UAAA,IAGAuM,OAAA,SAAAz+c,GACA,IAAAnE,KAAA0zE,UAAA1zE,KAAAg+c,SAAA,CACA,IAAAG,EAAAn+c,KAAAg+c,SAAAG,OACAn+c,KAAAq2c,UAAA,EACA8H,EAIAn+c,KAAAge,MAAA,UAAA1b,MAAAoJ,KAAAvH,EAAA2sc,aAAAmP,OAAA74b,OAAA,SAAAi4b,GACA,IAAA77c,EAAA67c,EAAA77c,KACAZ,EAAAy8c,EAAAz8c,KAEAigd,EAAAjgd,EAAA9C,QAAA,YAAA8C,EAAA/B,MAAA,KAAAi2D,MAAA,GACAgsZ,EAAAt/c,EAAA+E,QAAA,YACA,OAAA41c,EAAAt9c,MAAA,KAAA8P,IAAA,SAAAnN,GACA,OAAAA,EAAAg+E,SACSp6D,OAAA,SAAA5jB,GACT,OAAAA,IACS4P,KAAA,SAAA2vc,GACT,cAAApnZ,KAAAonZ,GACAF,IAAAE,EAEA,QAAApnZ,KAAAonZ,GACAD,IAAAC,EAAAx6c,QAAA,cAEA,mBAAAozD,KAAAonZ,IACAv/c,IAAAu/c,OArBA/id,KAAAge,MAAA,OAAA7Z,EAAA2sc,aAAAmP,YAgCA,SAAA/8c,EAAAqhD,EAAAhlD,GAEA,aACA,IAIA+0E,GAAiB7wE,OAJjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAAkD,OAAxBs9D,EAAAp9D,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,oBAAAc,OAC1G8qc,cAAAzuY,EAAA8hY,UACG32b,IAAK42b,KAAA,SAAA/xR,GAAwBA,EAAAoN,iBAAwBp9G,EAAAquY,OAAAr+R,IAAmB8xR,SAAA,SAAA9xR,GAA6BA,EAAAoN,iBAAwBp9G,EAAAouY,WAAAp+R,IAAuB0+R,UAAA,SAAA1+R,GAA8BA,EAAAoN,iBAAwBp9G,EAAA8hY,UAAA,MAAuB9hY,EAAAQ,GAAA,gBAEnNp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAm3J,EAAA/iK,EAAA,KAEAgjK,GAEAp3J,EAFAm3J,IAEsCn3J,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eo3J,EAAAxpJ,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAguI,EAAAxpJ,QAAAnW,KAAA2/J,EAAAxpJ,UAGA5V,EAAA4V,QAAAwpJ,EAAAxpJ,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAk7J,EAAAljK,EAAA,KACAmjK,EAAAnjK,EAAA6+C,EAAAqkH,GACAE,EAAApjK,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAuvF,EAAAntJ,EACAotJ,EAAA,GATA,EAEA,KAEA,KAEA,MAUAp+G,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAyCAjuE,EAAA4V,SACAnW,KAAA,aACAE,OACAU,MACAA,KAAA2N,OACA4H,QAAA,OACA8pJ,UAAA,SAAAt1J,GACA,wBAAAzN,QAAAyN,IAAA,IAGAu1J,YACAt/J,KAAAuX,OACAhC,QAAA,EACAgqJ,UAAA,EACAF,UAAA,SAAAt1J,GACA,OAAAA,GAAA,GAAAA,GAAA,MAGA0I,QACAzS,KAAA2N,QAEA6xJ,aACAx/J,KAAAuX,OACAhC,QAAA,GAEAkqJ,YACAz/J,KAAAiW,QACAV,SAAA,GAEAC,OACAxV,KAAAuX,OACAhC,QAAA,KAEAmqJ,UACA1/J,KAAAiW,QACAV,SAAA,GAEA5S,OACA3C,KAAA2N,OACA4H,QAAA,KAGA8C,UACAsnJ,SAAA,WACA,IAAA5qJ,KAGA,OAFAA,EAAAS,MAAAhZ,KAAA8iK,WAAA,IACAvqJ,EAAAkC,gBAAAza,KAAAmG,MACAoS,GAEA6qJ,oBAAA,WACA,OAAApjK,KAAAgjK,YAAAhjK,KAAAgZ,MAAA,KAAA1R,QAAA,IAEA+7J,UAAA,WACA,IAAA1gJ,EAAAi3D,SAAA,GAAAp0D,WAAAxlB,KAAAojK,qBAAA,MAEA,sBAAAzgJ,EAAA,MAAAA,EAAA,IAAAA,EAAA,cAAAA,EAAA,MAAAA,EAAA,IAAAA,EAAA,eAAAA,GAEA2gJ,UAAA,WACA,IAAA3gJ,EAAA,GAAA6C,WAAAxlB,KAAAojK,qBAAA,EACA,SAAAr7J,KAAAgwB,GAAApV,GAEA4gJ,gBAAA,WACA,IAAAD,EAAAtjK,KAAAsjK,UACA,OACAE,gBAAAF,EAAA,MAAAA,EAAA,KACAG,kBAAA,EAAAzjK,KAAA8iK,WAAA,KAAAQ,EAAA,KACAI,WAAA,qDAGAxgI,OAAA,WACA,IAAAyzC,OAAA,EACA,GAAA32E,KAAAmG,MACAwwE,EAAA32E,KAAAmG,WAEA,OAAAnG,KAAAiW,QACA,cACA0gE,EAAA,UACA,MACA,gBACAA,EAAA,UACA,MACA,QACAA,EAAA,UAGA,OAAAA,GAEAgtF,UAAA,WACA,eAAA3jK,KAAAwD,KACA,YAAAxD,KAAAiW,OAAA,8CAEA,YAAAjW,KAAAiW,OAAA,iCAGA2tJ,iBAAA,WACA,eAAA5jK,KAAAwD,KAAA,MAAAxD,KAAAgjK,YAAA,QAAAhjK,KAAAgZ,MAAA,MAOA,SAAA9V,EAAAqhD,EAAAhlD,GAEA,aACA,IASA+0E,GAAiB7wE,OATjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,cAAAc,OAC1G,gBAAAq8D,EAAA/wE,KACA+wE,EAAAt+D,OAAA,MAAAs+D,EAAAt+D,OAAA,IAEA6tJ,6BAAAvvF,EAAA2uF,SACAa,2BAAAxvF,EAAA0uF,aAEA5rJ,OAAW2sJ,KAAA,cAAAC,gBAAA1vF,EAAAuuF,WAAAoB,gBAAA,IAAAC,gBAAA,SAA+F,SAAA5vF,EAAA/wE,KAAA0T,EAAA,OAAkCE,YAAA,oBAA8BF,EAAA,OAAYE,YAAA,yBAAAmB,OAA6CU,OAAAs7D,EAAAyuF,YAAA,QAAiC9rJ,EAAA,OAAYE,YAAA,yBAAAmB,MAAAg8D,EAAA,WAA0DA,EAAA2uF,UAAA3uF,EAAA0uF,WAAA/rJ,EAAA,OAA6CE,YAAA,+BAAyCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAuuF,YAAA,OAAAvuF,EAAAO,WAAA59D,EAAA,OAAgEE,YAAA,qBAAAmB,OAAyCU,OAAAs7D,EAAAv7D,MAAA,KAAAA,MAAAu7D,EAAAv7D,MAAA,QAAoD9B,EAAA,OAAYG,OAAOC,QAAA,iBAAyBJ,EAAA,QAAaE,YAAA,4BAAAC,OAA+CoX,EAAA8lD,EAAA8uF,UAAAngI,OAAA,UAAAmhI,eAAA9vF,EAAA6uF,oBAAA1rJ,KAAA,UAA2FR,EAAA,QAAaE,YAAA,2BAAAmB,MAAAg8D,EAAA,gBAAAl9D,OAA0EoX,EAAA8lD,EAAA8uF,UAAAiB,iBAAA,QAAAphI,OAAAqxC,EAAArxC,OAAAmhI,eAAA9vF,EAAA6uF,oBAAA1rJ,KAAA,cAAqH68D,EAAA2uF,WAAA3uF,EAAA0uF,WAAA/rJ,EAAA,OAAkDE,YAAA,oBAAAmB,OAAwCsd,SAAA0+C,EAAAqvF,iBAAA,QAAwCrvF,EAAAt+D,OAAAiB,EAAA,KAA6DgB,MAAAq8D,EAAAovF,aAA7DpvF,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAuuF,YAAA,OAAiF,GAAAvuF,EAAAO,QAE9oCn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA+3c,EAAA3jd,EAAA,KAEA4jd,GAEAh4c,EAFA+3c,IAEsC/3c,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eg4c,EAAApqc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA4ub,EAAApqc,QAAAnW,KAAAugd,EAAApqc,UAGA5V,EAAA4V,QAAAoqc,EAAApqc,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA67c,EAAA7jd,EAAA,KACA8jd,EAAA9jd,EAAA6+C,EAAAgla,GACAE,EAAA/jd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAkwY,EAAA9tc,EACA+tc,EAAA,GATA,EAEA,KAEA,KAEA,MAUA/+Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EASAjuE,EAAA4V,SACAnW,KAAA,YACAE,OACAU,KAAA2N,OACAwR,QACAnf,KAAAuX,OACAhC,QAAA,KAEAiqJ,aACAx/J,KAAAuX,OACAhC,QAAA,GAEAwqc,aACA//c,KAAA2N,OACA4H,QAAA,cAOA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAA0BC,EAAvClX,KAAuCmX,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,QAAkBE,YAAA,eAAyBF,EAAA,OAAYE,YAAA,mBAAAmB,OAAuCS,MAA7JhZ,KAA6J2iB,OAAA,OAAA1J,OAA7JjZ,KAA6J2iB,OAAA,QAA0DtL,OAASC,QAAA,eAAuBJ,EAAA,UAAeE,YAAA,OAAAC,OAA0BE,GAAA,KAAAC,GAAA,KAAAC,EAAA,KAAAC,KAAA,OAAAwrB,OAAhSljC,KAAgSujd,YAAAl/S,eAAhSrkK,KAAgSgjK,oBAEzSrrJ,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA6F,EAAAC,EAFA33E,EAAA,IAMAkmN,EAAAvuI,EAFA33E,EAAA,MAIA20M,EAAA30M,EAAA,IAEAsmN,EAAAtmN,EAAA,IAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAq4c,EAAAvsY,EAAAl+D,QAAArP,OAAA+7M,EAAA1sM,SAEAwmC,OAAA,EACA+T,KACAg4Q,EAAA,EAEAu5F,EAAA,SAAAA,EAAAp8Z,GACA,IAAAwuE,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,CAEA,iBADAzwE,WAEAA,GACAq3D,QAAAr3D,IAGA,IAAAivc,EAAAjvc,EAAA4xE,QACA34E,EAAA,WAAA4pU,IAmBA,OAjBA7iU,EAAA4xE,QAAA,WACAwqV,EAAA/rV,MAAAp3E,EAAAg2c,KAEAn4Z,EAAA,IAAAika,GACA1yc,KAAArI,KAEA/G,MACA,EAAAmkN,EAAA+mE,SAAArtO,EAAAugB,WACAvgB,EAAAzmC,OAAAC,SAAAwmC,EAAAugB,SACAvgB,EAAAugB,QAAA,MAEAvgB,EAAAwnM,GAAAxnM,EAAAgnK,SACA12M,SAAAG,KAAAC,YAAAsvC,EAAAwnM,GAAArqO,KACA6iC,EAAAwnM,GAAAvvK,SAAA,EACAj4B,EAAA0O,IAAA1O,EAAAwnM,GAAArqO,IACA6iC,EAAA0O,IAAA11C,MAAA64B,OAAA8iK,EAAAl9H,aAAAyC,aACAnmB,EAAA/xD,KAAAg+C,GACAA,EAAAwnM,MAGA,oCAAAj9O,QAAA,SAAAtG,GACAqha,EAAArha,GAAA,SAAAiF,GAOA,MANA,iBAAAA,IACAA,GACAq3D,QAAAr3D,IAGAA,EAAAjF,OACAqha,EAAAp8Z,MAIAo8Z,EAAA/rV,MAAA,SAAAp3E,EAAAg2c,GACA,QAAA32c,EAAA,EAAAc,EAAAyxD,EAAAryD,OAAyCF,EAAAc,EAASd,IAClD,GAAAW,IAAA4xD,EAAAvyD,GAAAW,GAAA,CACA,mBAAAg2c,GACAA,EAAApkZ,EAAAvyD,IAEAuyD,EAAAhyD,OAAAP,EAAA,GACA,QAKA8ja,EAAAizC,SAAA,WACA,QAAA/2c,EAAAuyD,EAAAryD,OAAA,EAAoCF,GAAA,EAAQA,IAC5CuyD,EAAAvyD,GAAA+3E,SAIA31E,EAAA4V,QAAA8rZ,GAIA,SAAA3ha,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAyiB,EAAAlkd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAkuc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAl/Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EA2BA,IAAAqyX,GACAr/S,QAAA,UACAtpE,KAAA,OACAinS,QAAA,UACAhnS,MAAA,SAGA53E,EAAA4V,SACAjI,KAAA,WACA,OACA0mE,SAAA,EACA1X,QAAA,GACAktB,SAAA,IACAxpF,KAAA,OACAmgK,UAAA,GACAimQ,YAAA,GACAvvV,QAAA,KACAqvV,WAAA,EACAI,QAAA,EACA59Z,MAAA,KACAw2b,0BAAA,EACA5+a,QAAA,IAKAjI,UACAu7b,UAAA,WACA,OAAAp3c,KAAAwD,OAAAxD,KAAA2jK,UAAA,4BAAA8/R,EAAAzjc,KAAAwD,MAAA,KAIA+X,OACAuuZ,OAAA,SAAA3pO,GACAA,IACAngM,KAAAw3E,SAAA,EACAx3E,KAAA0c,IAAAkC,iBAAA,gBAAA5e,KAAAk4c,mBAKAn8b,SACAm8b,eAAA,WACAl4c,KAAA0c,IAAAoC,oBAAA,gBAAA9e,KAAAk4c,gBACAl4c,KAAAm0P,UAAA,GACAn0P,KAAA0c,IAAA6vB,WAAAC,YAAAxsC,KAAA0c,MAEAo8D,MAAA,WACA94E,KAAA8pa,QAAA,EACA,mBAAA9pa,KAAAq6E,SACAr6E,KAAAq6E,QAAAr6E,OAGA+0H,WAAA,WACA1oH,aAAArM,KAAAkM,QAEAisc,WAAA,WACA,IAAAt7b,EAAA7c,KAEAA,KAAAgtF,SAAA,IACAhtF,KAAAkM,MAAAI,WAAA,WACAuQ,EAAAitZ,QACAjtZ,EAAAi8D,SAES94E,KAAAgtF,YAGTqlN,QAAA,SAAAluS,GACA,KAAAA,EAAA+3Q,UAEAl8Q,KAAA8pa,QACA9pa,KAAA84E,WAKA/4D,QAAA,WACA/f,KAAAm4c,aACAtoc,SAAA+O,iBAAA,UAAA5e,KAAAqyS,UAEAryR,cAAA,WACAnQ,SAAAiP,oBAAA,UAAA9e,KAAAqyS,YAMA,SAAAnvS,EAAAqhD,EAAAhlD,GAEA,aACA,IAQA+0E,GAAiB7wE,OARjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,qBAA0BsU,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,QAAAn1D,WAAA,YAAsElH,OACjP,aACAq8D,EAAA/wE,OAAA+wE,EAAAovF,UAAA,eAAApvF,EAAA/wE,KAAA,GACA+wE,EAAAzwD,OAAA,eACAywD,EAAAm1V,UAAA,iBACAn1V,EAAAq1V,aACAvyZ,OAAa2sJ,KAAA,SAAetkJ,IAAK4kK,WAAA/vG,EAAAwgD,WAAA4xF,WAAApyI,EAAA4jY,cAAyD5jY,EAAA,UAAAr9D,EAAA,KAA0BgB,MAAAq8D,EAAAovF,YAAoBzsJ,EAAA,KAAUgB,MAAAq8D,EAAA6iY,YAAoB7iY,EAAAQ,GAAA,WAAAR,EAAAmuX,yBAA8Fxrb,EAAA,KAAwCE,YAAA,sBAAAyxN,UAA4Cj0L,UAAA2/B,EAAA6vF,GAAA7vF,EAAAzU,YAAlL5oD,EAAA,KAA4DE,YAAA,wBAAkCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAzU,cAAqHyU,EAAA,UAAAr9D,EAAA,KAA4BE,YAAA,qCAAAsI,IAAqDm1D,MAAAN,EAAAuE,SAAmBvE,EAAAO,MAAA,MAE5cn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACA0iB,EAAAnkd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAmuc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAn/Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAgBAjuE,EAAA4V,SACAnW,KAAA,UAEAE,OACAyE,SACAU,IAAA8S,OACA4oc,MAAAlqc,QACAmqc,OAAAnqc,SAGAoC,UACAukC,QAAA,WACA,IAAApgD,KAAA2jd,MAAA,CAEA,IAAAp8c,EAAAvH,KAAAuH,MACAU,EAAAjI,KAAAiI,IAEA,uBAAAV,GAAA,iBAAAU,GACAA,EAAAV,EAAAU,EAAA,IAGAV,OAOA,SAAArE,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,aAAuBm9D,EAAAQ,GAAA,WAAA79D,EAAA,cAAqCG,OAAOzU,KAAA,uBAA4BsU,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,OAAAgtE,EAAAqvY,SAAArvY,EAAAn0B,SAAA,IAAAm0B,EAAAn0B,SAAAm0B,EAAAovY,OAAAvkc,WAAA,mDAAgKhI,YAAA,oBAAAc,OAAyC2rc,WAAAtvY,EAAAz7D,OAAAC,QAAA+qc,SAAAvvY,EAAAovY,OAAsD96O,UAAWloL,YAAA4zB,EAAA6vF,GAAA7vF,EAAAn0B,eAAmC,IAE9fzoC,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACA+iB,EAAAxkd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAwuc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAx/Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAaAjuE,EAAA4V,SACAnW,KAAA,SACAE,OACAivF,UACAy4V,aACAvxZ,QACAz1B,KAAA2N,WAOA,SAAAjO,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,UAAAc,MAAAq8D,EAAAt7C,OAAA,MAAAs7C,EAAAt7C,OAAA,+BAA6Fs7C,EAAAz7D,OAAAi5E,QAAAxd,EAAAwd,OAAA76E,EAAA,OAA8CE,YAAA,oBAA8Bm9D,EAAAQ,GAAA,UAAAR,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAwd,YAAA,GAAAxd,EAAAO,KAAA59D,EAAA,OAAuEE,YAAA,gBAAAmB,MAAAg8D,EAAA,YAAkDA,EAAAQ,GAAA,kBAE3Xp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAgjB,EAAAzkd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAyuc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAz/Z,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAMAjmE,EANAgjD,EAAA5uD,EAAA,GAEA0kd,EAAA1kd,EAAA,GAEA4kO,GAEAh5N,EAFA84c,IAEsC94c,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAqC7EhI,EAAA4V,SACAnW,KAAA,SAEA0/K,QAAA6hD,EAAAprN,SAEAs6D,QACAC,QACAv6D,QAAA,KAIAjI,KAAA,WACA,OACAozc,mBAAA,EACAthS,aAAA5iL,KAAAuH,MACAm8K,YAAA,IAKA5gL,OACAyE,OACA/D,KAAAuX,OACAhC,QAAA,GAEAorc,cACA3gd,KAAAuX,OACAhC,QAAA,GAEAqrc,eACA5gd,KAAAuX,OACAhC,QAAA,GAEA9Q,KACAzE,KAAAuX,OACAhC,QAAA,GAEAS,QACAhW,KAAAqI,MACAkN,QAAA,WACA,wCAGAsrc,WACA7gd,KAAA2N,OACA4H,QAAA,WAEAurc,mBACA9gd,KAAA2N,OACA4H,QAAA,WAEAwrc,aACA/gd,KAAAqI,MACAkN,QAAA,WACA,gEAGAyrc,eACAhhd,KAAA2N,OACA4H,QAAA,oBAEA0rc,uBACAjhd,KAAA2N,OACA4H,QAAA,mBAEA26D,UACAlwE,KAAAiW,QACAV,SAAA,GAEA2rc,WACAlhd,KAAAiW,QACAV,SAAA,GAEAmqJ,UACA1/J,KAAAiW,QACAV,SAAA,GAEA4rc,WACAnhd,KAAAiW,QACAV,SAAA,GAEAotQ,WACA3iR,KAAA2N,OACA4H,QAAA,WAEA6rc,OACAphd,KAAAqI,MACAkN,QAAA,WACA,mCAGA8rc,eACArhd,KAAA2N,OACA4H,QAAA,YAIA8C,UACAw1B,KAAA,WACA,IAAAtgC,EAAA,GAMA,OALA/Q,KAAA2kd,UACA5zc,EAAA/Q,KAAA6kd,cAAAt8c,QAAA,kBAA4DvI,KAAA8kd,aAAA9kd,KAAAuH,MAAAvH,KAAA4iL,cACrD5iL,KAAAkjK,WACPnyJ,EAAA/Q,KAAA4kd,MAAA78c,KAAAowC,KAAAn4C,KAAA4iL,cAAA,IAEA7xK,GAEAg0c,aAAA,WACA,IAAA/rc,EAAA,GAOA,OANAhZ,KAAA8kd,eACA9rc,GAAAhZ,KAAAgld,aAAA,cAEAhld,KAAA0kd,YACA1rc,EAAA,QAGA7S,MAAAnG,KAAA44a,YACA5/Z,UAGAgsc,aAAA,WACA,WAAAhld,KAAAuH,MAAA,IAAAQ,KAAAkwC,MAAAj4C,KAAAuH,QAEA09c,iBAAA,WACA,OAAAjld,KAAAkld,gBAAAlld,KAAAuH,MAAAvH,KAAAmld,WAEAC,UAAA,WACA,OAAApld,KAAA8kd,aAAA9kd,KAAAmld,SAAAE,kBAAArld,KAAAmld,SAAAC,WAEAn9M,YAAA,WACA,OAAAjoQ,KAAAkld,gBAAAlld,KAAA4iL,aAAA5iL,KAAAmld,WAEAG,SAAA,WACA,OACAC,SAAAvld,KAAAwZ,OAAA,GACAgsc,YAAAxld,KAAAwZ,OAAA,GACAisc,UAAAzld,KAAAwZ,OAAA,GACA6qc,UAAArkd,KAAAqkd,UACAC,kBAAAtkd,KAAAskd,oBAGA1rC,YAAA,WACA,OAAA54a,KAAAkld,gBAAAlld,KAAA4iL,aAAA5iL,KAAAsld,WAEA1tF,QAAA,WACA,IAAA7mX,KACAhQ,EAAA,EACAuxO,EAAAtyO,KAAA4iL,aAIA,IAHA5iL,KAAA0kd,WAAA1kd,KAAA4iL,eAAA76K,KAAAkwC,MAAAj4C,KAAA4iL,eACA0vD,IAEYvxO,EAAAuxO,EAAevxO,IAC3BgQ,EAAAxP,KAAAvB,KAAAioQ,aAEA,KAAYlnQ,EAAAf,KAAAiI,IAAclH,IAC1BgQ,EAAAxP,KAAAvB,KAAAold,WAEA,OAAAr0c,GAEAo0c,SAAA,WACA,OACAO,SAAA1ld,KAAAukd,YAAA,GACAoB,YAAA3ld,KAAAukd,YAAA,GACAqB,UAAA5ld,KAAAukd,YAAA,GACAa,UAAApld,KAAAwkd,cACAa,kBAAArld,KAAAykd,wBAGAK,aAAA,WACA,OAAA9kd,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,WAIhDn4D,OACAhU,MAAA,SAAAgG,GACAvN,KAAA4iL,aAAAr1K,EACAvN,KAAAkkd,kBAAAlkd,KAAAuH,QAAAQ,KAAAkwC,MAAAj4C,KAAAuH,SAIAwU,SACAmqN,mBAAA,WACA,OACApjO,OACA+id,gBAAA,iDAIAX,gBAAA,SAAA39c,EAAAoJ,GASA,OAPApJ,GAAAvH,KAAAmkd,aACAxzc,EAAA40c,UAAA50c,EAAA+0c,SACOn+c,GAAAvH,KAAAokd,cACPzzc,EAAA80c,WAAA90c,EAAAi1c,UAEAj1c,EAAA60c,aAAA70c,EAAAg1c,aAIAG,gBAAA,SAAAn5c,GACA,IAAAo5c,EAAA/ld,KAAA8kd,cAAA9kd,KAAAgld,aAAA,GAAAr4c,EAAA,EAAA3M,KAAAuH,OAAAoF,EAAA3M,KAAAuH,MAEAy+c,EAAAhmd,KAAA0kd,WAAA1kd,KAAAkkd,mBAAAv3c,EAAA,IAAA3M,KAAA4iL,cAAAj2K,EAAA3M,KAAA4iL,aACA,OAAAmjS,GAAAC,GAEAC,aAAA,SAAAt5c,GACA,IAAA03c,EAAArkd,KAAA8kd,aAAA9kd,KAAAsld,SAAAhB,kBAAAtkd,KAAAsld,SAAAjB,UACA,OACAl+c,MAAAwG,GAAA3M,KAAA4iL,aAAA5iL,KAAA44a,YAAAyrC,IAGA6B,YAAA,SAAA3+c,GACAvH,KAAA8kd,eAGA9kd,KAAA0kd,WAAA1kd,KAAAkkd,mBACAlkd,KAAAge,MAAA,QAAAhe,KAAA4iL,cACA5iL,KAAAge,MAAA,SAAAhe,KAAA4iL,gBAEA5iL,KAAAge,MAAA,QAAAzW,GACAvH,KAAAge,MAAA,SAAAzW,MAGA4+c,UAAA,SAAAhid,GACA,IAAAnE,KAAA8kd,aAAA,CAGA,IAAAliS,EAAA5iL,KAAA4iL,aACAs5F,EAAA/3Q,EAAA+3Q,QACA,KAAAA,GAAA,KAAAA,GAEAl8Q,KAAA0kd,UACA9hS,GAAA,GAEAA,GAAA,EAEAz+K,EAAAqgL,kBACArgL,EAAAwtL,kBACO,KAAAuqF,GAAA,KAAAA,IACPl8Q,KAAA0kd,UACA9hS,GAAA,GAEAA,GAAA,EAEAz+K,EAAAqgL,kBACArgL,EAAAwtL,kBAGA/O,GADAA,IAAA,IAAAA,GACA5iL,KAAAiI,IAAAjI,KAAAiI,IAAA26K,EAEA5iL,KAAAge,MAAA,QAAA4kK,GACA5iL,KAAAge,MAAA,SAAA4kK,KAEAmjD,gBAAA,SAAAx+N,EAAAgwD,GACA,IAAAv3D,KAAA8kd,aAAA,CAIA,GAAA9kd,KAAA0kd,UAAA,CACA,IAAAnkd,EAAAg3D,EAAAh3D,QACA,EAAA4tD,EAAAurB,UAAAn5E,EAAA,mBACAA,IAAAgjD,cAAA,oBAEA,EAAA4K,EAAAurB,UAAAn5E,EAAA,sBACAA,IAAAgsC,YAEAvsC,KAAAkkd,kBAAA,EAAA3sZ,EAAAjzD,SAAA/D,EAAAoc,YACA3c,KAAA4iL,aAAA5iL,KAAAkkd,kBAAA38c,EAAA,GAAAA,OAEAvH,KAAA4iL,aAAAr7K,EAEAvH,KAAA0jL,WAAAn8K,IAEA6+c,kBAAA,WACApmd,KAAA8kd,eAGA9kd,KAAA0kd,YACA1kd,KAAAkkd,kBAAAlkd,KAAAuH,QAAAQ,KAAAkwC,MAAAj4C,KAAAuH,QAEAvH,KAAA4iL,aAAA5iL,KAAAuH,MACAvH,KAAA0jL,YAAA,KAIA5jK,QAAA,WACA9f,KAAAuH,OACAvH,KAAAge,MAAA,cAOA,SAAA9a,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,UAAAC,OAA6B2sJ,KAAA,SAAAC,gBAAA1vF,EAAAquG,aAAAyjS,iBAAA9xY,EAAAljC,KAAA6yH,gBAAA,IAAAC,gBAAA5vF,EAAAtsE,IAAAm9N,SAAA,KAAsI1lN,IAAK2yR,QAAA99N,EAAA4xY,aAAyB5xY,EAAA9E,GAAA8E,EAAA,aAAA5nE,EAAA5C,GAAsC,OAAAmN,EAAA,QAAkBnN,MAAAqN,YAAA,gBAAAmB,OAA4C6W,OAAAmlD,EAAAuwY,aAAA,kBAAgDplc,IAAMg8I,UAAA,SAAA6oB,GAA6BhwG,EAAAwxJ,gBAAAp5N,EAAA43K,IAAkCoiC,WAAApyI,EAAA6xY,kBAAAvxY,MAAA,SAAA0vG,GAA6DhwG,EAAA2xY,YAAAv5c,OAAwBuK,EAAA,KAAUE,YAAA,gBAAAc,OAAAq8D,EAAAqjT,QAAAjrX,EAAA,IAA2D+1K,MAAAnuG,EAAAmvG,aAAA/2K,IAAmC4L,MAAAg8D,EAAA0xY,aAAAt5c,KAAiC4nE,EAAAuxY,gBAAAn5c,GAAAuK,EAAA,KAAsCE,YAAA,mBAAAc,MAAAq8D,EAAA0wY,iBAAA1sc,MAAAg8D,EAAA,eAAmFA,EAAAO,WAAeP,EAAA2uF,UAAA3uF,EAAAowY,UAAAztc,EAAA,QAA6CE,YAAA,gBAAAmB,OAAoCpS,MAAAouE,EAAA4xM,aAAyB5xM,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAljC,SAAAkjC,EAAAO,MAAA,IAEn8Bn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAm7c,EAAA/md,EAAA,KAEAgnd,GAEAp7c,EAFAm7c,IAEsCn7c,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eo7c,EAAAxtc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAgyb,EAAAxtc,QAAAnW,KAAA2jd,EAAAxtc,UAGA5V,EAAA4V,QAAAwtc,EAAAxtc,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAi/c,EAAAjnd,EAAA,KACAknd,EAAAlnd,EAAA6+C,EAAAooa,GACAE,EAAAnnd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAszY,EAAAlxc,EACAmxc,EAAA,GATA,EAEA,KAEA,KAEA,MAUAnia,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA84c,EAAA1kd,EAAA,GAEA4kO,GAEAh5N,EAFA84c,IAEsC94c,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,UAEA0/K,QAAA6hD,EAAAprN,SAEAjW,OACAiI,OAAAgQ,OAAA5J,QACA08O,OAAA9yO,OACA+nC,WACAt/C,KAAA2N,OACA4H,QAAA,cAEA4tc,YAAAltc,QACAmtc,OAAAntc,QACAotc,cACArjd,KAAA2N,OACA4H,QAAA,UAEA+tc,eACAtjd,KAAA2N,OACA4H,QAAA,YAIAjI,KAAA,WACA,OACAi2c,SACAC,WAAA,IAKAjrc,SACAmqN,mBAAA,WACA,OACApjO,OACAghB,OAAA,yBAMAvI,OACAsyO,OAAA,SAAA1tD,EAAAhd,GACAnjL,KAAAge,MAAA,SAAAmiL,EAAAhd,IAEA4jS,MAAA,SAAAT,GACAA,EAAAx8c,QAAA,SAAAwiC,EAAA1/B,GACA0/B,EAAA1/B,cAkBA,SAAA1J,EAAAqhD,EAAAhlD,GAEA,aACA,IAKA+0E,GAAiB7wE,OALjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,WAAAc,QAAhFlY,KAC1B4md,QAAA,aAD0B5md,KAC1B8iD,UAD0B9iD,KAE1B4md,QAAA,sBAF0B5md,KAGrB+0E,GAAA,gBAEYp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA21B,EAAAvhC,EAAA,KAEA0nd,GAEA97c,EAFA21B,IAEsC31B,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E87c,EAAAluc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAA0yb,EAAAluc,QAAAnW,KAAAqkd,EAAAluc,UAGA5V,EAAA4V,QAAAkuc,EAAAluc,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA2/c,EAAA3nd,EAAA,KACA4nd,EAAA5nd,EAAA6+C,EAAA8oa,GACAE,EAAA7nd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAg0Y,EAAA5xc,EACA6xc,EAAA,GATA,EAEA,KAEA,KAEA,MAUA7ia,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAyDAjuE,EAAA4V,SACAnW,KAAA,SAEAE,OACAoX,MAAA/I,OACAqiE,KAAAriE,OACAwzE,YAAAxzE,OACA8E,OAAA9E,QAGAL,KAAA,WACA,OACAlE,OAAA,EACAgU,aACAymc,eAAA,KAGA50Y,aAAA,WACAzyE,KAAAmsN,QAAA46P,MAAAxld,KAAAvB,OAEAggB,cAAA,WACA,IAAA+mc,EAAA/md,KAAAmsN,QAAA46P,MACAn6c,EAAAm6c,EAAAjnd,QAAAE,MACA4M,GAAA,GACAm6c,EAAAzld,OAAAsL,EAAA,IAKAiP,UACAyrc,cAAA,WACA,OAAAtnd,KAAAiW,QAAAjW,KAAAqnd,gBAEAE,WAAA,WACA,IAAAC,EAAAxnd,KAAAmsN,QAAA46P,MAAA/md,KAAA4M,MAAA,GACA,OAAA46c,IAAAF,cAAA,QAEA9jJ,SAAA,WACA,OAAAxjU,KAAAmsN,QAAAw6P,aAEAjja,WAAA,WACA,mBAAA1jD,KAAAmsN,QAAArpK,WAEA2ka,SAAA,WACA,OAAAznd,KAAAmsN,QAAAy6P,QAEAc,OAAA,WACA,IAAAn+a,EAAAvpC,KAAAmsN,QACA,OAAA5iL,EAAAw9a,MAAAx9a,EAAAw9a,MAAA9ld,OAAA,KAAAjB,MAEA2nd,WAAA,WACA,OAAA3nd,KAAAmsN,QAAA46P,MAAA9ld,QAEA8J,MAAA,WACA,IAAA08c,EAAAznd,KAAAynd,SACA18c,EAAA/K,KAAAmsN,QAAAphN,MAEA,OAAA08c,EAAA,GAAA18c,GAGAwN,MAAA,WACA,IAAAA,KAEA1W,EADA7B,KAAAmsN,QACA46P,MAAA9ld,OAEA8J,EAAA,iBAAA/K,KAAA+K,MAAA/K,KAAA+K,MAAA,KAAA/K,KAAA+K,MAAA/K,KAAA+K,MAAA,KAAAlJ,GAAA7B,KAAAwjU,SAAA,UAEA,OADAjrT,EAAAqvc,UAAA78c,EACA/K,KAAA0jD,WAAAnrC,GACAvY,KAAA0nd,OACAnvc,EAAAkuS,SAAA,IAAAzmT,KAAA2nd,WAAA,IAEApvc,EAAA2kC,aAAAl9C,KAAAmsN,QAAA66P,WAAA,KAGAzuc,KAIAwD,SACA8rc,aAAA,SAAAt6c,GACA,IAAAu6c,EAAA9nd,KAAAmsN,QAAAugC,UAAA1sP,KAAA4M,MAAA,GAEAW,EAAAvN,KAAA4M,MACA5M,KAAAqnd,eAAArnd,KAAAmsN,QAAA06P,aACOt5c,IAAAvN,KAAA4M,OAAA,UAAA5M,KAAAund,WACPvnd,KAAAqnd,eAAArnd,KAAAmsN,QAAA26P,cAEA9md,KAAAqnd,eAAA,OAGAS,KAAAC,aAAA/nd,KAAAqnd,iBAEAU,aAAA,SAAA9xc,GACA,IAAAqR,EAAA,IACA/O,KAEAA,EAAAyvc,gBAAA,IAAAhod,KAAA4M,MAAA,KACAqJ,IAAAjW,KAAAmsN,QAAA26P,eACA9md,KAAAsnd,cAAAhgc,EAAA,GACO,SAAArR,IACPqR,EAAA,EACA/O,EAAAyvc,iBAAA,IAAAhod,KAAA4M,MAAA,MAGA2L,EAAA+c,YAAAhO,EAAA,QACA,aAAAtnB,KAAAmsN,QAAArpK,UAAAvqC,EAAAU,OAAAqO,EAAA,IAAA/O,EAAAS,MAAAsO,EAAA,IAEAtnB,KAAA4gB,UAAArI,IAIAwH,QAAA,WACA,IAAAlD,EAAA7c,KAEAiod,EAAAjod,KAAAsf,OAAA,iBAAA/R,GACAsP,EAAAyC,OAAA,iBAAAzC,EAAAgrc,cAA0DnzQ,WAAA,IAC1DuzQ,SAOA,SAAA/kd,EAAAqhD,EAAAhlD,GAEA,aACA,IAOA+0E,GAAiB7wE,OAPjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,UAAAc,QAC1Gq8D,EAAAkzY,UAAA,MAAAlzY,EAAA43I,QAAA,UACA53I,EAAAkzY,UAAA,YACAlzY,EAAAmzY,SAAAnzY,EAAAxpE,QAAAwpE,EAAAivP,UAAA,UACAjvP,EAAAivP,WAAAjvP,EAAA7wB,aAAA6wB,EAAAkzY,UAAA,aACAlvc,MAAAg8D,EAAA,QAAuBr9D,EAAA,OAAYE,YAAA,gBAAAc,MAAA,MAAAq8D,EAAA+yY,gBAA8Dpwc,EAAA,OAAYE,YAAA,gBAAAmB,MAAAg8D,EAAAmzY,OAAA,IAAsDxqa,YAAAq3B,EAAA43I,QAAA66P,WAAA,QAA+C9vc,EAAA,KAAUE,YAAA,sBAAAmB,MAAAg8D,EAAA,cAAwDr9D,EAAA,OAAcE,YAAA,gBAAAc,MAAA,OAAAq8D,EAAAf,KAAA,iBAAyE,YAAAe,EAAA+yY,eAAA,UAAA/yY,EAAA+yY,cAAA/yY,EAAAQ,GAAA,QAAAR,EAAA,KAAAr9D,EAAA,KAAuGE,YAAA,sBAAAc,OAAAq8D,EAAAf,QAAmDe,EAAAO,KAAAP,EAAAf,MAAAe,EAAAkzY,SAAoFlzY,EAAAO,KAApF59D,EAAA,OAAkDE,YAAA,wBAAkCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA3nE,MAAA,QAAAsK,EAAA,KAAqDE,YAAA,gCAAAc,OAAA,wBAAAq8D,EAAA+yY,cAAA,qBAAuH,KAAApwc,EAAA,OAAkBE,YAAA,kBAA4BF,EAAA,OAAY0B,IAAA,QAAAxB,YAAA,iBAAAc,OAAA,MAAAq8D,EAAA+yY,iBAA2E/yY,EAAAQ,GAAA,SAAAR,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAr6D,WAAA,GAAAq6D,EAAA,SAAAr9D,EAAA,OAA2EE,YAAA,mBAA6BF,EAAA,OAAYE,YAAA,uBAAAc,OAAA,MAAAq8D,EAAA+yY,iBAAqE/yY,EAAAQ,GAAA,eAAAR,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAoQ,iBAAA,QAEljChtE,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAknB,EAAA3od,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACA2yc,EAAA,GATA,EAEA,KAEA,KAEA,MAUA3ja,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAMAjmE,EANAqoM,EAAAj0M,EAAA,KAEA4od,GAIAh9c,EAJAqoM,IAIsCroM,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7Eu/M,EAAAnrN,EAAA,IAwDA4D,EAAA4V,SACAnW,KAAA,aAEAE,OACAsld,cACA5kd,KAAAuX,OACAhC,QAAA,GAEAE,OAAA9H,OACAc,SACAzO,KAAA2N,OACA4H,QAAA,SAEAstV,UACA7iW,KAAAiW,QACAV,SAAA,GAEA2gC,UACAl2C,KAAAuX,OACAhC,QAAA,KAEAsvc,kBAAAl3c,OACA2W,WACAtkB,KAAAiW,QACAV,SAAA,GAEA6nC,OACAp9C,KAAA2N,OACA4H,QAAA,SAEAvV,KAAA2N,QAGAL,KAAA,WACA,OACAoB,SACA69Z,aAAA,EACA5oH,eAAA,EACAj7S,MAAA,KACAw2K,OAAA,IAKA7mK,UACAysc,SAAA,WACA,OAAAtod,KAAAkS,MAAAkB,KAAA,SAAAzG,GACA,OAAAA,EAAA8F,MAAA7K,WAAA3G,OAAA,MAKAsa,OACArJ,MAAA,SAAA3E,GACAA,EAAAtM,OAAA,GAAAjB,KAAAuod,cAAAvod,KAAAood,eAEAr4C,YAAA,SAAAxia,EAAA41K,GACAnjL,KAAAwod,kBAAArlS,GACAnjL,KAAAge,MAAA,SAAAzQ,EAAA41K,IAEAkjL,SAAA,SAAA94V,GACAA,EAAAvN,KAAAm4c,aAAAn4c,KAAAyod,eAIA1sc,SACA8pa,iBAAA,WACA7lb,KAAA0iL,OAAA,EACA1iL,KAAAyod,cAEA3rC,iBAAA,WACA98a,KAAA0iL,OAAA,EACA1iL,KAAAm4c,cAEAuQ,YAAA,SAAA/7c,EAAAC,GACA,IAAA3L,EAAAjB,KAAAkS,MAAAjR,OACA,OAAA2L,IAAA3L,EAAA,GAAA0L,EAAAg8c,SAAA3od,KAAAkS,MAAA,GAAA27O,QAAAlhP,EAAAg8c,SAAA3od,KAAAkS,MAAAtF,EAAA,IAAA5M,KAAAkS,MAAAtF,EAAA,GAAAihP,OACA,UACO,IAAAjhP,GAAAD,EAAAg8c,SAAA3od,KAAAkS,MAAAjR,EAAA,GAAA4sP,QAAAlhP,EAAAg8c,SAAA3od,KAAAkS,MAAAtF,EAAA,IAAA5M,KAAAkS,MAAAtF,EAAA,GAAAihP,SACP,SAIA+6N,kBAAA,SAAAhoa,GACA,IAAA/jC,EAAA7c,KAEAA,KAAAkS,MAAApI,QAAA,SAAA6C,EAAAC,GACAg0C,IAAA/jC,EAAA6rc,YAAA/7c,EAAAC,KACAD,EAAA+1K,OAAA,MAIAmmS,kBAAA,WACA7od,KAAAkS,MAAApI,QAAA,SAAA6C,GACAA,EAAA+1K,OAAA,KAGAomS,YAAA,WACA9od,KAAAkS,MAAAlS,KAAA0sP,UAAAtlO,OAAA,SAAAklB,GACA,yBAAAA,EAAAl0B,SAAAxV,QAGA4ld,kBAAA,SAAA1jJ,GACA,IAAA5mT,EAAAle,KAEAA,KAAAkS,MAAApI,QAAA,SAAA6C,EAAAC,GACAD,EAAAo8c,cAAAn8c,EAAAsR,EAAA6xZ,YAAAjrG,MAGAkkJ,WAAA,WACAhpd,KAAA+va,YAAA/va,KAAAkS,MAAAjR,OAAA,EACAjB,KAAA+va,cAEA/va,KAAA+va,YAAA,GAGA04C,WAAA,WACAlgW,cAAAvoH,KAAAkM,QAEAisc,WAAA,WACAn4c,KAAA05C,UAAA,IAAA15C,KAAAqmW,WACArmW,KAAAkM,MAAAw8G,YAAA1oH,KAAAgpd,WAAAhpd,KAAA05C,YAEA6ua,cAAA,SAAA37c,GACA,oBAAAA,EAAA,CACA,IAAAq8c,EAAAjpd,KAAAkS,MAAAkV,OAAA,SAAAza,GACA,OAAAA,EAAA/J,OAAAgK,IAEAq8c,EAAAhod,OAAA,IACA2L,EAAA5M,KAAAkS,MAAApS,QAAAmpd,EAAA,KAIA,GADAr8c,EAAAmO,OAAAnO,IACAnC,MAAAmC,QAAA7E,KAAAkwC,MAAArrC,GAAA,CAIA,IAAA3L,EAAAjB,KAAAkS,MAAAjR,OACA6jU,EAAA9kU,KAAA+va,YAEA/va,KAAA+va,YADAnja,EAAA,EACA3L,EAAA,EACO2L,GAAA3L,EACP,EAEA2L,EAEAk4T,IAAA9kU,KAAA+va,aACA/va,KAAAwod,kBAAA1jJ,KAGAxlQ,KAAA,WACAt/D,KAAAuod,cAAAvod,KAAA+va,YAAA,IAEAtrY,KAAA,WACAzkC,KAAAuod,cAAAvod,KAAA+va,YAAA,IAEAm5C,qBAAA,SAAAt8c,GACA5M,KAAA+va,YAAAnja,GAEAu8c,qBAAA,SAAAv8c,GACA,UAAA5M,KAAAiS,SAAArF,IAAA5M,KAAA+va,cACA/va,KAAA+va,YAAAnja,KAKAkT,QAAA,WACA,IAAAd,EAAAhf,KAEAA,KAAAopd,qBAAA,EAAAjB,EAAApvc,SAAA,gBAAAnM,GACAoS,EAAAupc,cAAA37c,KAEA5M,KAAAqpd,yBAAA,EAAAlB,EAAApvc,SAAA,aAAAnM,GACAoS,EAAAmqc,qBAAAv8c,MAGAmT,QAAA,WACA,IAAAR,EAAAvf,KAEAA,KAAA8od,cACA9od,KAAAuc,UAAA,YACA,EAAAmuM,EAAApsM,mBAAAiB,EAAA7C,IAAA6C,EAAAipc,mBACAjpc,EAAA6oc,aAAA7oc,EAAArN,MAAAjR,QAAAse,EAAA6oc,cAAA,IACA7oc,EAAAwwZ,YAAAxwZ,EAAA6oc,cAEA7oc,EAAA44b,gBAGAn4b,cAAA,WACAhgB,KAAA0c,MAAA,EAAAguM,EAAAnsM,sBAAAve,KAAA0c,IAAA1c,KAAAwod,sBAMA,SAAAtld,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzB,SAAA2D,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,cAAAc,OAAiCoxc,oBAAA,SAAA/0Y,EAAA/wE,MAA2Ckc,IAAK4kK,WAAA,SAAAC,GAA8BA,EAAAC,kBAAyBjwG,EAAAsxW,iBAAAthQ,IAA6BoiC,WAAA,SAAApiC,GAA+BA,EAAAC,kBAAyBjwG,EAAAuoW,iBAAAv4P,OAA+BrtK,EAAA,OAAYE,YAAA,yBAAAmB,OAA6CU,OAAAs7D,EAAAt7D,UAAuB/B,EAAA,cAAmBG,OAAOzU,KAAA,yBAA8B,UAAA2xE,EAAA3zB,MAAA1pC,EAAA,UAAuCktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,WAAAgtE,EAAA3zB,OAAA2zB,EAAAmuG,MAAAtjK,WAAA,gCAAkHhI,YAAA,8CAAAC,OAAmE7T,KAAA,UAAgBkc,IAAK4kK,WAAA,SAAAC,GAA8BhwG,EAAAq0Y,kBAAA,SAA8BjiQ,WAAApyI,EAAAs0Y,kBAAAh0Y,MAAA,SAAA0vG,GAA6DA,EAAAC,kBAAyBjwG,EAAA60Y,oBAAA70Y,EAAAw7V,YAAA,OAA+C74Z,EAAA,KAAUE,YAAA,yBAAiCm9D,EAAAO,OAAA59D,EAAA,cAAgCG,OAAOzU,KAAA,0BAA+B,UAAA2xE,EAAA3zB,MAAA1pC,EAAA,UAAuCktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,WAAAgtE,EAAA3zB,OAAA2zB,EAAAmuG,MAAAtjK,WAAA,gCAAkHhI,YAAA,+CAAAC,OAAoE7T,KAAA,UAAgBkc,IAAK4kK,WAAA,SAAAC,GAA8BhwG,EAAAq0Y,kBAAA,UAA+BjiQ,WAAApyI,EAAAs0Y,kBAAAh0Y,MAAA,SAAA0vG,GAA6DA,EAAAC,kBAAyBjwG,EAAA60Y,oBAAA70Y,EAAAw7V,YAAA,OAA+C74Z,EAAA,KAAUE,YAAA,0BAAkCm9D,EAAAO,OAAAP,EAAAQ,GAAA,wBAAAR,EAAA8zY,kBAAAnxc,EAAA,MAAiFE,YAAA,0BAAAc,OAA6Cqxc,kCAAAh1Y,EAAA+zY,SAAAkB,mCAAA,YAAAj1Y,EAAA8zY,mBAAA,SAAA9zY,EAAA/wE,OAAmJ+wE,EAAA9E,GAAA8E,EAAA,eAAA5nE,EAAAC,GAAyC,OAAAsK,EAAA,MAAgBE,YAAA,yBAAAc,OAA4Cs7Z,YAAA5ma,IAAA2nE,EAAAw7V,aAAyCrwZ,IAAK4kK,WAAA,SAAAC,GAA8BhwG,EAAA80Y,wBAAAz8c,IAAmCioE,MAAA,SAAA0vG,GAA0BA,EAAAC,kBAAyBjwG,EAAA20Y,qBAAAt8c,OAAkCsK,EAAA,UAAeE,YAAA,wBAAkCm9D,EAAA,SAAAr9D,EAAA,QAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAAz3J,EAAA8F,UAAA8hE,EAAAO,YAAsEP,EAAAO,QAE3qEn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAAs5I,EAAAnrN,EAAA,IAIA83E,EAAAH,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAIAorN,EAAAzzI,EAFA33E,EAAA,MAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAK7EhI,EAAA4V,SACAnW,KAAA,cAEAwxB,YAAew2L,IAAAD,EAAA5xM,SAEfjW,OACA+nN,OAAApxM,QACAqxM,aACAC,aACAC,aACAC,aACAC,SAAAzxM,QACA0xM,KACA3nN,KAAA2N,OACA4H,QAAA,QAIAjI,KAAA,WACA,OACAs6M,UAAA,IACAC,WAAA,IACAC,MAAA,EACAC,MAAA,IAKA1vM,UACA2vM,KAAA,WACA,OAAAxrN,KAAAye,MAAA+sM,OAIA/nN,OAAA,SAAAwU,GACA,IAAAwzM,GAAA,EAAAp0I,EAAAt+D,WACAR,EAAAvY,KAAA8qN,UAEA,GAAAW,EAAA,CACA,IAAAC,EAAA,IAAAD,EAAA,KACAE,EAAA,kBAAAD,EAAA,mBAA2DA,EAAA,IAE3D7/M,MAAAC,QAAA9L,KAAA8qN,YACAvyM,GAAA,EAAA9Y,EAAA0gE,UAAAngE,KAAA8qN,YACA5tK,YAAA3kC,EAAAykC,aAAA0uK,EACO,iBAAA1rN,KAAA8qN,UACPvyM,GAAAozM,EAEApzM,EAAAozM,EAGA,IAAA74J,EAAA76C,EAAAjY,KAAAmrN,KACAjzM,OAAA,qBAAAlY,KAAAgrN,WACAzyM,MAAAvY,KAAAirN,UACAryM,IAAA,UACK5Y,KAAA8Y,OAAAC,SACLyyM,EAAAvzM,EACA,OAEAW,IAAA,OACAL,QACAmH,IACAksM,OAAA5rN,KAAA6rN,cAGA3zM,OAAAlY,KAAA+qN,UAAA,qBAAAU,EAAA,4CACA34J,KAiCA,OAAA76C,EAAA,OAAqBC,MAAA,gBA7BrBlY,KAAA6qN,QAoBA5yM,EACA,OAEAW,IAAA,OACAV,OAAAlY,KAAA+qN,UAAA,sBACAxyM,WACAu6C,OAzBA04J,EAAAvzM,EACA0yM,EAAA5xM,SAEA1B,OACAy0M,KAAA9rN,KAAAsrN,MACAz5L,KAAA7xB,KAAAorN,gBAGAnzM,EACA0yM,EAAA5xM,SAEA1B,OACAq3H,UAAA,EACAo9E,KAAA9rN,KAAAurN,MACA15L,KAAA7xB,KAAAqrN,oBAkBAtvM,SACA8vM,aAAA,WACA,IAAAL,EAAAxrN,KAAAwrN,KAEAxrN,KAAAurN,MAAA,IAAAC,EAAAttK,UAAAstK,EAAA5uM,aACA5c,KAAAsrN,MAAA,IAAAE,EAAArtK,WAAAqtK,EAAA7uM,aAEA4/B,OAAA,WACA,IAAAwvK,EACAC,EACAR,EAAAxrN,KAAAwrN,KACAA,IAEAO,EAAA,IAAAP,EAAA5uM,aAAA4uM,EAAA3pK,aACAmqK,EAAA,IAAAR,EAAA7uM,YAAA6uM,EAAA1pK,YAEA9hD,KAAAqrN,WAAAU,EAAA,IAAAA,EAAA,OACA/rN,KAAAorN,UAAAY,EAAA,IAAAA,EAAA,UAIAjsM,QAAA,WACA/f,KAAA6qN,SACA7qN,KAAAuc,UAAAvc,KAAAu8C,SACAv8C,KAAAkrN,WAAA,EAAAR,EAAApsM,mBAAAte,KAAAye,MAAAjC,OAAAxc,KAAAu8C,UAEAv8B,cAAA,WACAhgB,KAAA6qN,SACA7qN,KAAAkrN,WAAA,EAAAR,EAAAnsM,sBAAAve,KAAAye,MAAAjC,OAAAxc,KAAAu8C,WAMA,SAAAr5C,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAAAjjB,EAAA5uD,EAAA,GAEAE,EAAAF,EAAA,KAGA4D,EAAA4V,SACAnW,KAAA,MAEAE,OACA4rI,SAAAj1H,QACAoY,KAAA1gB,OACA26M,KAAA/wM,QAGAc,UACAgN,IAAA,WACA,OAAAppB,EAAAysN,QAAAlsN,KAAA0uI,SAAA,0BAEA88E,KAAA,WACA,OAAAxrN,KAAAmsN,QAAAX,OAIA/nN,OAAA,SAAAwU,GACA,IAAA4Z,EAAA7xB,KAAA6xB,KACAi6L,EAAA9rN,KAAA8rN,KACAjjM,EAAA7oB,KAAA6oB,IAGA,OAAA5Q,EACA,OAEAC,OAAA,0BAAA2Q,EAAA9e,KACA2V,IACA87I,UAAAx7J,KAAAosN,qBAGAn0M,EACA,OAEAW,IAAA,QACAV,MAAA,sBACAwH,IACA87I,UAAAx7J,KAAAqsN,mBAGA9zM,OAAA,EAAA9Y,EAAA6sN,mBAA8Cz6L,OAAAi6L,OAAAjjM,gBAO9C9M,SACAswM,kBAAA,SAAAloN,GACAnE,KAAAusN,UAAApoN,GACAnE,UAAA6oB,IAAA4M,MAAAtxB,EAAA4iI,cAAA/mI,KAAA6oB,IAAA6Z,SAAAv+B,EAAAnE,KAAA6oB,IAAA2jM,QAAAroN,EAAA4iI,cAAApoF,wBAAA3+C,KAAA6oB,IAAAi6B,aAEAspK,kBAAA,SAAAjoN,GACA,IAEAsoN,EAAA,KAFA1kN,KAAAY,IAAAxE,EAAA5D,OAAAo+C,wBAAA3+C,KAAA6oB,IAAAi6B,WAAA3+C,EAAAnE,KAAA6oB,IAAA2jM,SACAxsN,KAAAye,MAAAiuM,MAAA1sN,KAAA6oB,IAAA6Z,QAAA,GACA1iC,KAAA0c,IAAA1c,KAAA6oB,IAAA6Z,QAEA1iC,KAAAwrN,KAAAxrN,KAAA6oB,IAAA+iM,QAAAa,EAAAzsN,KAAAwrN,KAAAxrN,KAAA6oB,IAAA8jM,YAAA,KAEAJ,UAAA,SAAApoN,GACAA,EAAAyoN,2BACA5sN,KAAA6sN,YAAA,GAEA,EAAA1+J,EAAAzuC,IAAA7P,SAAA,YAAA7P,KAAA8sN,2BACA,EAAA3+J,EAAAzuC,IAAA7P,SAAA,UAAA7P,KAAA+sN,wBACAl9M,SAAAm9M,cAAA,WACA,WAGAF,yBAAA,SAAA3oN,GACA,QAAAnE,KAAA6sN,WAAA,CACA,IAAAI,EAAAjtN,UAAA6oB,IAAA4M,MAEA,GAAAw3L,EAAA,CAEA,IAEAR,EAAA,MAFA,GAAAzsN,KAAA0c,IAAAiiC,wBAAA3+C,KAAA6oB,IAAAi6B,WAAA3+C,EAAAnE,KAAA6oB,IAAA2jM,UACAxsN,KAAAye,MAAAiuM,MAAA1sN,KAAA6oB,IAAA6Z,QAAAuqL,IACAjtN,KAAA0c,IAAA1c,KAAA6oB,IAAA6Z,QAEA1iC,KAAAwrN,KAAAxrN,KAAA6oB,IAAA+iM,QAAAa,EAAAzsN,KAAAwrN,KAAAxrN,KAAA6oB,IAAA8jM,YAAA,OAEAI,uBAAA,SAAA5oN,GACAnE,KAAA6sN,YAAA,EACA7sN,UAAA6oB,IAAA4M,MAAA,GACA,EAAA04B,EAAAkC,KAAAxgD,SAAA,YAAA7P,KAAA8sN,0BACAj9M,SAAAm9M,cAAA,OAIAzF,UAAA,YACA,EAAAp5J,EAAAkC,KAAAxgD,SAAA,UAAA7P,KAAA+sN,2BAMA,SAAA7pN,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EACAjuE,EAAAmpN,iBAwBA,SAAAp+M,GACA,IAAA49M,EAAA59M,EAAA49M,KACAj6L,EAAA3jB,EAAA2jB,KACAhJ,EAAA3a,EAAA2a,IAEAtQ,KACA40M,EAAA,YAAAtkM,EAAA4M,KAAA,IAAAq2L,EAAA,KAOA,OALAvzM,EAAAsQ,EAAAgJ,QACAtZ,EAAA0f,UAAAk1L,EACA50M,EAAA60M,YAAAD,EACA50M,EAAA80M,gBAAAF,EAEA50M,GApCApV,EAAA+oN,SACAx9E,UACAhsG,OAAA,eACAkpL,OAAA,YACAe,WAAA,eACA96L,KAAA,SACA9nB,IAAA,WACA0rB,KAAA,IACA+2L,OAAA,UACA1pK,UAAA,OAEAulH,YACA3lI,OAAA,cACAkpL,OAAA,aACAe,WAAA,cACA96L,KAAA,QACA9nB,IAAA,aACA0rB,KAAA,IACA+2L,OAAA,UACA1pK,UAAA,UAsBA,SAAA5/C,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAs+c,EAAAlqd,EAAA,KAEAmqd,GAEAv+c,EAFAs+c,IAEsCt+c,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eu+c,EAAA3wc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAm1b,EAAA3wc,QAAAnW,KAAA8md,EAAA3wc,UAGA5V,EAAA4V,QAAA2wc,EAAA3wc,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAoid,EAAApqd,EAAA,KACAqqd,EAAArqd,EAAA6+C,EAAAura,GACAE,EAAAtqd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAy2Y,EAAAr0c,EACAs0c,EAAA,GATA,EAEA,KAEA,KAEA,MAUAtla,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EA6BAjuE,EAAA4V,SACAnW,KAAA,iBAEAE,OACAF,KAAAuO,OACAsB,OACAjP,MAAA2N,OAAA4J,QACAhC,QAAA,KAIAjI,KAAA,WACA,OACA4xK,OAAA,EACAyqC,UAAA,EACA57M,MAAA,EACAs8O,QAAA,EACAi8N,OAAA,EACAnB,SAAA,EACAoB,WAAA,IAKAhuc,SACAiuc,aAAA,SAAAp9c,EAAAmja,EAAA9ua,GACA,WAAA8ua,GAAAnja,IAAA3L,EAAA,GACA,EACO8ua,IAAA9ua,EAAA,OAAA2L,EACP3L,EACO2L,EAAAmja,EAAA,GAAAA,EAAAnja,GAAA3L,EAAA,EACPA,EAAA,EACO2L,EAAAmja,EAAA,GAAAnja,EAAAmja,GAAA9ua,EAAA,GACP,EAEA2L,GAEAq9c,mBAAA,SAAAr9c,EAAAmja,EAAAm6C,GACA,OAAAlqd,KAAA2od,QACAuB,GAAA,MAAAt9c,EAAAmja,GAAA,KACOnja,EAAAmja,GACP,KAAAm6C,EAAA,EAEA,KAAAA,EAAA,GAGAnB,cAAA,SAAAn8c,EAAAmja,EAAAjrG,GACA,IAAAolJ,EAAAlqd,KAAAmsN,QAAAzvM,IAAAo4B,YACA7zC,EAAAjB,KAAAmsN,QAAAj6M,MAAAjR,OACA,SAAAjB,KAAAmsN,QAAA3oN,WAAAkK,IAAAo3T,IACA9kU,KAAA+pd,UAAAn9c,IAAAmja,GAAAnja,IAAAk4T,GAEAl4T,IAAAmja,GAAA9ua,EAAA,IACA2L,EAAA5M,KAAAgqd,aAAAp9c,EAAAmja,EAAA9ua,IAEA,SAAAjB,KAAAmsN,QAAA3oN,MACAxD,KAAA2od,QAAA5gd,KAAAqC,MAAArC,KAAAY,IAAAiE,EAAAmja,KAAA,EACA/va,KAAA6tP,OAAAjhP,IAAAmja,EACA/va,KAAAmtN,UAAAntN,KAAAiqd,mBAAAr9c,EAAAmja,EAAAm6C,GACAlqd,KAAAuR,MAAAvR,KAAA6tP,OAAA,EA5DA,MA8DA7tP,KAAA6tP,OAAAjhP,IAAAmja,EACA/va,KAAAmtN,UAAA+8P,GAAAt9c,EAAAmja,IAEA/va,KAAA8pd,OAAA,GAEA94C,gBAAA,WACA,IAAAznY,EAAAvpC,KAAAmsN,QACA,GAAA5iL,GAAA,SAAAA,EAAA/lC,KAAA,CACA,IAAAoJ,EAAA28B,EAAAr3B,MAAApS,QAAAE,MACAupC,EAAAg/a,cAAA37c,MAKAkT,QAAA,WACA9f,KAAAmsN,SAAAnsN,KAAAmsN,QAAA28P,eAEAvhQ,UAAA,WACAvnN,KAAAmsN,SAAAnsN,KAAAmsN,QAAA28P,iBAMA,SAAA5ld,EAAAqhD,EAAAhlD,GAEA,aACA,IAYA+0E,GAAiB7wE,OAZjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAkEhI,YAAA,oBAAAc,OACzLs7Z,YAAAj/V,EAAAs5K,OACAs8N,0BAAA,SAAA51Y,EAAA43I,QAAA3oN,KACA4md,cAAA71Y,EAAAo0Y,QACA0B,WAAA91Y,EAAAmuG,MACA4nS,eAAA/1Y,EAAAw1Y,WACGxxc,OACH60M,YAAA,cAAA74I,EAAA44I,UAAA,aAAA54I,EAAAhjE,MAAA,IACA87M,gBAAA,cAAA94I,EAAA44I,UAAA,aAAA54I,EAAAhjE,MAAA,IACA0mB,UAAA,cAAAs8C,EAAA44I,UAAA,aAAA54I,EAAAhjE,MAAA,KACGmO,IAAMm1D,MAAAN,EAAAy8V,mBAA6B,SAAAz8V,EAAA43I,QAAA3oN,KAAA0T,EAAA,OAA0CktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,OAAAgtE,EAAAs5K,OAAAzuO,WAAA,YAAsEhI,YAAA,sBAAkCm9D,EAAAO,KAAAP,EAAAQ,GAAA,gBAEpLp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAo/c,EAAAhrd,EAAA,KAEAird,GAEAr/c,EAFAo/c,IAEsCp/c,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Eq/c,EAAAzxc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAi2b,EAAAzxc,QAAAnW,KAAA4nd,EAAAzxc,UAGA5V,EAAA4V,QAAAyxc,EAAAzxc,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAkjd,EAAAlrd,EAAA,KACAmrd,EAAAnrd,EAAA6+C,EAAAqsa,GACAE,EAAAprd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAu3Y,EAAAn1c,EACAo1c,EAAA,GATA,EAEA,KAEA,KAEA,MAUApma,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAOAjuE,EAAA4V,SACAnW,KAAA,aAEA2/K,cAAA,aAEAz/K,OACAgsc,UAAAr1b,QACAlS,OACA/D,MAAAqI,MAAAsF,OAAA4J,QACAhC,QAAA,WACA,YAKAjI,KAAA,WACA,OACA85c,eAAA71c,OAAA/U,KAAAuH,SAGA8/O,QAAA,WACA,OACA4xK,SAAAj5Z,OAKAub,OACAhU,MAAA,SAAA+6P,GACAtiQ,KAAA4qd,eAAA71c,OAAAutP,KAIAvmP,SACA8uc,eAAA,SAAAD,GACAA,KAAA71c,OAAA61c,GACA,IAAArjd,EAAAvH,KAAA8uc,UAAA8b,EAAA,GAAAA,EACA5qd,KAAA4qd,cACA5qd,KAAAge,MAAA,QAAAzW,GACAvH,KAAAge,MAAA,SAAAzW,IAEAypa,gBAAA,SAAArka,GACA,GAAA3M,KAAA8uc,UACA9uc,KAAA6qd,gBAAA7qd,KAAA4qd,YAAA,QAAA5qd,KAAA4qd,YAAA,IAAA5qd,KAAA4qd,YAAA,KAAAj+c,EAAA/J,KAAA+J,EAAA/J,KAAA,QACO,CACP,IAAAgod,EAAA5qd,KAAA4qd,YAAAtod,MAAA,GACAsK,EAAAg+c,EAAA9qd,QAAA6M,EAAA/J,MAEAgK,GAAA,EACAg+c,EAAAtpd,OAAAsL,EAAA,GAEAg+c,EAAArpd,KAAAoL,EAAA/J,MAEA5C,KAAA6qd,eAAAD,MAKA9qc,QAAA,WACA9f,KAAAikL,IAAA,aAAAjkL,KAAAgxa,oBAMA,SAAA9ta,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,OAAiBI,YAAA,cAAAC,OAAiC2sJ,KAAA,UAAA8mT,uBAAA,UAAjH9qd,KAAiK+0E,GAAA,gBAE1Kp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA4/c,EAAAxrd,EAAA,KAEAyrd,GAEA7/c,EAFA4/c,IAEsC5/c,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E6/c,EAAAjyc,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAy2b,EAAAjyc,QAAAnW,KAAAood,EAAAjyc,UAGA5V,EAAA4V,QAAAiyc,EAAAjyc,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA0jd,EAAA1rd,EAAA,KACA2rd,EAAA3rd,EAAA6+C,EAAA6sa,GACAE,EAAA5rd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA+3Y,EAAA31c,EACA41c,EAAA,GATA,EAEA,KAEA,KAEA,MAUA5ma,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAgwV,EAAAlqV,EAFA33E,EAAA,KAMA8iL,EAAAnrG,EAFA33E,EAAA,IAIAE,EAAAF,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,iBAEA2/K,cAAA,iBAEAD,QAAAD,EAAAtpK,SAEAqb,YAAem+Y,qBAAAnR,EAAAroZ,SAEfjI,KAAA,WACA,OACAs6c,kBACAnyc,OAAA,OACAJ,QAAA,SAEAw3W,cAAA,EACAlqK,UAAA,EACA6zP,SAAA,IAKA3mY,QAAA,YAEAvwE,OACAoX,MAAA/I,OACAvO,MACAY,MAAA2N,OAAA4J,QACAhC,QAAA,WACA,OAAA/Y,KAAA83P,QAKAj8O,UACAguC,SAAA,WACA,OAAA7pD,KAAAi5Z,SAAA2xD,YAAA9qd,QAAAE,KAAA4C,OAAA,GAEAlB,GAAA,WACA,SAAAjC,EAAA4mN,gBAIAtqM,SACAmrM,YAAA,WACA,IAAArqM,EAAA7c,KAEAsM,WAAA,WACAuQ,EAAAm9b,QAGAn9b,EAAAm9b,SAAA,EAFAn9b,EAAAspM,UAAA,GAIO,KAEPuiO,kBAAA,WACA1ob,KAAAu9I,SAAA,0BAAAv9I,MACAA,KAAAmmN,UAAA,EACAnmN,KAAAg6c,SAAA,GAEAqR,iBAAA,WACArrd,KAAAu9I,SAAA,0BAAAv9I,UAmDA,SAAAkD,EAAAqhD,EAAAhlD,GAEA,aACA,IAKA+0E,GAAiB7wE,OALjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,mBAAAc,OAAsCs7Z,YAAAj/V,EAAA1qB,YAA2B3yC,EAAA,OAAYG,OAAO2sJ,KAAA,MAAAioQ,gBAAA13V,EAAA1qB,SAAAwiZ,gBAAA,uBAAA93X,EAAA7yE,GAAA4pd,mBAAA,uBAAA/2Y,EAAA7yE,MAAkJwV,EAAA,OAAYE,YAAA,2BAAAc,OAC5ViuM,SAAA5xI,EAAA4xI,SACAqtN,YAAAj/V,EAAA1qB,UACOxyC,OAAQ2sJ,KAAA,SAAAtiK,GAAA,oBAAA6yE,EAAA7yE,GAAA0jO,SAAA,KAAmE1lN,IAAKm1D,MAAAN,EAAAm0W,kBAAAvkI,MAAA,SAAA5/H,GAAuD,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,MAAAwqE,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAsH,YAAew6K,EAAAC,kBAAyBjwG,EAAA82Y,iBAAA9mS,IAA6Bh3I,MAAAgnC,EAAA2yI,YAAA+e,KAAA,SAAA1hD,GAAiDhwG,EAAA4xI,UAAA,MAAuBjvM,EAAA,KAAUE,YAAA,8CAAAc,OAAiEs7Z,YAAAj/V,EAAA1qB,YAA2B0qB,EAAAQ,GAAA,SAAAR,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAr6D,WAAA,KAAAhD,EAAA,0BAAAA,EAAA,OAA2FktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,SAAAn1D,WAAA,aAAwEhI,YAAA,yBAAAC,OAA8C2sJ,KAAA,WAAA6iD,eAAAtyI,EAAA1qB,SAAAqjZ,kBAAA,oBAAA34X,EAAA7yE,MAAA,uBAAA6yE,EAAA7yE,MAAuIwV,EAAA,OAAYE,YAAA,8BAAwCm9D,EAAAQ,GAAA,wBAE/3Bp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAuqB,EAAAhsd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAg2c,EAAA,GATA,EAEA,KAEA,KAEA,MAUAhna,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEA6F,EAAAC,EAFA33E,EAAA,IAMAyva,EAAA93V,EAFA33E,EAAA,MAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAomN,EAAAzuI,EAFA33E,EAAA,IAMAs+S,EAAA3mO,EAFA33E,EAAA,IAMA8iL,EAAAnrG,EAFA33E,EAAA,IAMAm+S,EAAAxmO,EAFA33E,EAAA,IAIAu+S,EAAAv+S,EAAA,IAIAqmN,EAAA1uI,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAiE7E,IAAAqgd,GACA1od,OACAi4C,WACAv3C,KAAA2N,OACA4H,QAAA,gBAEAu7L,aAAAqR,EAAA5sM,QAAAjW,MAAAwxM,aACAh5J,YAAAqqK,EAAA5sM,QAAAjW,MAAAw4C,YACA5Y,OAAAijL,EAAA5sM,QAAAjW,MAAA4/B,OACAwY,kBAAAyqK,EAAA5sM,QAAAjW,MAAAo4C,kBACAq5J,cAAAoR,EAAA5sM,QAAAjW,MAAAyxM,eAEAx4L,QAAA4pM,EAAA5sM,QAAAgD,QACAjL,KAAA60M,EAAA5sM,QAAAjI,KACAkP,cAAA2lM,EAAA5sM,QAAAiH,eAGA7c,EAAA4V,SACAnW,KAAA,aAEAwhL,YAAek7H,aAAAzB,EAAA9kS,SAEfupK,QAAAkpS,EAAAnpS,EAAAtpK,QAAA2kS,EAAA3kS,SAEAs6D,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAqb,YACAw8Q,QAAA/sE,EAAA9qN,SAGAjW,OACA2F,SACAjF,KAAAqI,MACAk3J,UAAA,GAEAjgK,OACAU,KAAAoG,OACAmP,QAAA,WACA,OACAwvK,SAAA,WACA91K,MAAA,QACAlL,MAAA,QACAmsE,SAAA,cAIAnsE,OACA/D,KAAAqI,MACAkN,QAAA,WACA,WAGAw7R,WACA/wS,KAAA2N,OACA4H,QAAA,KAEAivN,aACAxkO,KAAA2N,OACA4H,QAAA,WACA,SAAA+kS,EAAAr1N,GAAA,6BAGA/U,SAAAj6D,QACA0rN,WACA3hO,KAAAiW,QACAV,SAAA,GAEA0yc,eAAAhyc,QACAusM,YAAA70M,OACAu6c,eACAlod,KAAA2N,OACA4H,QAAA,SAEAulS,WAAA7kS,QACAoY,KAAA1gB,OACAw6c,eACAnod,KAAAiW,QACAV,SAAA,GAEA/M,UACAxI,KAAAuX,OACAhC,QAAA,KAEA6yc,cACApod,KAAA2V,SACAJ,QAAA,WACA,sBAGA8yc,gBACArod,KAAAuX,OACAhC,QAAA,MAIAjI,KAAA,WACA,OACA8xK,aAAA5iL,KAAAuH,UACA25S,KAAA,KACA4qK,qBAAA,aAEAC,aAAA,EACAC,YAAA,EACArqB,WAAA,GACAsqB,YAAA,KACAvqd,IAAA,EAAAjC,EAAA4mN,cACA6lQ,WAAA,EACAxnP,iBAAA,IAKA7oN,UACAswc,SAAA,WACA,OAAAnsd,KAAA8C,MAAA2P,OAAA,SAEA4wK,SAAA,WACA,OAAArjL,KAAA8C,MAAAyE,OAAA,SAEAyuc,YAAA,WACA,OAAAh2c,KAAA8C,MAAAylL,UAAA,YAEA6jS,YAAA,WACA,OAAApsd,KAAA8C,MAAA4wE,UAAA,YAEA24Y,cAAA,WACA,IAAAxvc,EAAA7c,KAEAyI,EAAAzI,KAAAyI,QACAs/R,KAUA,OATA/nS,KAAA4iL,aAAA94K,QAAA,SAAAvC,GACA,IAAAmgT,EAAAj/S,KAAA2e,OAAA,SAAAnK,GACA,OAAAA,EAAAJ,EAAAwmK,YAAA97K,IACS,GACTmgT,IACA3f,EAAAxmS,KAAAmmT,EAAA7qS,EAAAsvc,WACA1jd,EAAAi/S,EAAA7qS,EAAAm5b,gBAGAjuK,GAEAj0N,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCu4Y,aAAA,WACA,OAAAtsd,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtE06b,iBAAA,WACA,OAAAvsd,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAEhDmxJ,SAAA,WACA,IAAA2d,GAAAxiP,KAAAk5E,YAAAzuE,MAAAsQ,OAAAlL,SAAAwuS,eACA,OAAAr+S,KAAAs+S,aAAA97D,IAAAxiP,KAAA+rd,cAIAxwc,OACAwwc,YAAA,SAAAxkd,GACAvH,KAAAye,MAAAvU,MAAAuU,MAAAvU,MAAAw8B,aAAA,gBAAAn/B,GACAA,EAAAvH,KAAAwsd,WAAAxsd,KAAAysd,YAEAlld,MAAA,SAAA+6P,GACAtiQ,KAAA4iL,aAAA0/E,GAEA1/E,aAAA,SAAAr7K,GACAvH,KAAAu9I,SAAA,+BAAAh2I,KAEA8kd,cAAA,SAAA9kd,GACA,IAAAmld,EAAA1sd,KAAA2rd,cAAApkd,EAAAnB,KAAA,KAAAmB,IAAAtG,OAAA,GACAjB,KAAAye,MAAAvU,MAAAuU,MAAAvU,MAAAw8B,aAAA,QAAAgmb,IAGAjkd,SACA+S,MAAA,EACAC,QAAA,SAAAlU,GACAvH,KAAAkhT,MACAlhT,KAAA2sd,WAEA3sd,KAAAisd,YAAAjsd,KAAA4sd,eAAA5sd,KAAAyI,SACAzI,KAAAkhT,KAAAz4S,QAAAlB,KAKAwU,SACA4wc,SAAA,WACA3sd,KAAAkhT,KAAA,IAAAjqO,EAAAl+D,QAAAi2Z,EAAAj2Z,SAAAwtM,SACAvmN,KAAAkhT,KAAAz4S,QAAAzI,KAAAyI,QACAzI,KAAAkhT,KAAAp+S,MAAA9C,KAAA8C,MACA9C,KAAAkhT,KAAAwqK,cAAA1rd,KAAA0rd,cACA1rd,KAAAkhT,KAAAuqK,eAAAzrd,KAAAyrd,eACAzrd,KAAAkhT,KAAAl7F,YAAAhmN,KAAAgmN,YACAhmN,KAAAkhT,KAAA2qK,eAAA7rd,KAAA6rd,eACA7rd,KAAA80M,UAAA90M,KAAAkhT,KAAAxkS,IACA1c,KAAAkhT,KAAAziS,MAAAouc,MAAA,GAAAnmb,aAAA,sBAAA1mC,KAAA0B,IACA1B,KAAAkhT,KAAAj9H,IAAA,OAAAjkL,KAAA8sd,YACA9sd,KAAAkhT,KAAAj9H,IAAA,mBAAAjkL,KAAA+sd,wBACA/sd,KAAAkhT,KAAAj9H,IAAA,YAAAjkL,KAAAo1M,WACAp1M,KAAAkhT,KAAAj9H,IAAA,cAAAjkL,KAAAgtd,qBAEAR,SAAA,WACA,IAAAtuc,EAAAle,KAEAA,KAAAkhT,MACAlhT,KAAA2sd,WAGA3sd,KAAAkhT,KAAA35S,MAAAvH,KAAA4iL,aAAAtgL,MAAA,GACAtC,KAAAkhT,KAAA1pO,SAAA,EACAx3E,KAAAkhT,KAAAz4S,QAAAzI,KAAAyI,QACAzI,KAAAuc,UAAA,SAAA4B,GACAD,EAAAy2L,eACAz2L,EAAAgjS,KAAAjB,WAAA/hS,EAAAO,MAAAvU,MAAAwS,IAAAo4B,YAAA,KAGA23a,SAAA,WACAzsd,KAAA2hc,WAAA,GACA3hc,KAAAkhT,KAAA1pO,SAAA,EACAx3E,KAAAksd,UACAlsd,KAAAye,MAAAvU,MAAAqjC,QAEAvtC,KAAAksd,WAAA,GAGAa,uBAAA,SAAAxld,GACA,IAAAyX,EAAAhf,KAEAA,KAAAuc,UAAA,SAAA4B,GACAa,EAAA21L,iBAEA30M,KAAAge,MAAA,qBAAAzW,IAEA4ua,cAAA,SAAAhya,GACA,IAAAob,EAAAvf,KAEAk8Q,EAAA/3Q,EAAA+3Q,QACA,KAAAA,EACAl8Q,KAAAm0E,cACO,KAAA+nM,GAEPl8Q,KAAA+rd,aAAA,EACAz/c,WAAA,WACAiT,EAAAu1L,UAAAj0J,iBAAA,wBACAA,iBAAA,sBAAAtT,UAEAppC,EAAAqgL,kBACArgL,EAAAwtL,kBACO,KAAAuqF,GAAA,IAAAA,IAEPl8Q,KAAA2hc,WAAA,GACA3hc,KAAAkhT,OAAAlhT,KAAAkhT,KAAA1pO,SAAA,KAGAs1Y,WAAA,SAAAvld,GACA,IAAAuxE,IAAAh0E,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,KAAAA,UAAA,GAEA9E,KAAA4iL,aAAAr7K,EACAvH,KAAAge,MAAA,QAAAzW,GACAvH,KAAAge,MAAA,SAAAzW,GAEAuxE,EACA94E,KAAA+rd,aAAA,EAEA/rd,KAAAuc,UAAAvc,KAAA20M,eAGAq9F,kBAAA,SAAAzqS,GACA,IAAA+5G,EAAAthH,KAEA,GAAAA,KAAA+rd,YAAA,CACA,IAAAE,EAAAjsd,KAAAisd,YAEA,IAAA1kd,EAGA,OAFAvH,KAAAkhT,KAAAz4S,QAAAzI,KAAAyI,aACAzI,KAAAuc,UAAAvc,KAAA20M,cAIA,IAAAs4Q,EAAAhB,EAAA7kc,OAAA,SAAA8lc,GACA,OAAAA,EAAA95c,KAAA,SAAA6J,GACA,WAAA3U,QAAA,EAAA7I,EAAAokL,oBAAAt8K,GAAA,KAAAo0D,KAAA1+C,EAAAqkG,EAAA6qW,eAKAc,EADAA,EAAAhsd,OAAA,EACAgsd,EAAAt8c,IAAA,SAAAw8c,GACA,OACAC,qBAAA,EACA7ld,MAAA4ld,EAAAx8c,IAAA,SAAAhE,GACA,OAAAA,EAAA20G,EAAA+hE,YAEA5wK,MAAA6uG,EAAA+rW,0BAAA9ld,EAAA4ld,GACAz5Y,SAAAy5Y,EAAA/5c,KAAA,SAAAzG,GACA,OAAAA,EAAA20G,EAAA8qW,oBAMAgB,qBAAA,EACA36c,MAAAzS,KAAAyoF,EAAA,uBACAlhF,MAAA,GACAmsE,UAAA,IAGA1zE,KAAAkhT,KAAAz4S,QAAAwkd,EACAjtd,KAAAuc,UAAAvc,KAAA20M,gBAEA04Q,0BAAA,SAAA1rB,EAAAurB,GACA,IAAA9hU,EAAAprJ,KAEA,OAAAktd,EAAAv8c,IAAA,SAAAsM,EAAArQ,GACA,IAAA6F,EAAAwK,EAAAmuI,EAAA+gU,UACAmB,EAAA76c,EAAA6F,cAAAxY,QAAA6hc,EAAArpb,eACAi1c,EAAA96c,EAAAnQ,MAAAgrd,EAAA3rB,EAAA1gc,OAAAqsd,GACAp0Z,EAAAo0Z,GAAA,EAAAliU,EAAAoiU,iBAAA/6c,EAAA86c,GAAA96c,EACA,WAAA7F,EAAAssD,GAAA,MAAAA,MAGAs0Z,iBAAA,SAAA/6c,EAAAg7c,GACA,IAAA7hU,EAAA5rJ,KAEAiY,EAAAjY,KAAAkX,GACA,OAAAzE,EAAA5R,MAAA4sd,GAAA98c,IAAA,SAAAuoD,EAAAtsD,GACA,WAAAA,EAAAssD,GAAAjhD,EAAA,QAAgDC,OAASw1c,mCAAA,KAA4C9hU,EAAA/zI,GAAA41c,KAAAv0Z,MAGrG0zZ,eAAA,SAAAnkd,GACA,IAAA+4S,EAAAxhT,KAEA83O,EAAAhzO,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEAmnd,KAYA,OAXAxjd,EAAAqB,QAAA,SAAAmT,GACA,IAAAiwc,EAAAp1O,EAAA/iO,OAAAkI,GACAA,EAAAukS,EAAAw0J,cAGAx0J,EAAAiqK,gBACAQ,EAAA1qd,KAAA2rd,GAEAjB,IAAAl3c,OAAAysS,EAAAorK,eAAA3vc,EAAAukS,EAAAw0J,aAAAkX,KALAjB,EAAA1qd,KAAA2rd,KAQAjB,GAEA0B,WAAA,SAAAnuc,GACAA,EAAAglK,kBACAxkL,KAAA8sd,eAAA,IAEAE,mBAAA,WACA,IAAAY,EAAA9od,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,IAAAA,UAAA,GAEA9E,KAAA+rd,cAAA6B,IACA5td,KAAAksd,WAAA,GAEAlsd,KAAA+rd,aAAA,GAEA53Y,YAAA,WACAn0E,KAAAusd,mBACAvsd,KAAAye,MAAAvU,MAAAqjC,QACAvtC,KAAAs+S,WACAt+S,KAAA+rd,aAAA,EAGA/rd,KAAA+rd,aAAA/rd,KAAA+rd,cAEA7kQ,YAAA,SAAA3vJ,GACAv3D,KAAAge,MAAA,QAAAu5C,IAEA4vJ,WAAA,SAAA5vJ,GACAv3D,KAAAge,MAAA,OAAAu5C,IAEAivK,kBAAA,SAAAjvK,GACAv3D,KAAA0kO,gBAAA,mBAAAntK,EAAA/zD,OAIAsc,QAAA,WACA,IAAAgiS,EAAA9hT,KAEAA,KAAA8rd,sBAAA,EAAAlmQ,EAAA7sM,SAAA/Y,KAAAgM,SAAA,SAAAzE,GACA,IAAAqkb,EAAA9pI,EAAA8pK,aAAArkd,GAEAqkb,KAAAz8a,MACA2yS,EAAAZ,KAAAz4S,UACA2kd,qBAAA,EACA36c,MAAAqvS,EAAAr5N,EAAA,uBACAlhF,MAAA,GACAmsE,UAAA,IAEAk4W,EAAAz8a,KAAA,WACA2yS,EAAAvlS,UAAA,WACAulS,EAAA9P,kBAAAzqS,SAGO,IAAAqkb,GACP9pI,EAAAvlS,UAAA,WACAulS,EAAA9P,kBAAAzqS,QAKAwY,QAAA,WACA/f,KAAAisd,YAAAjsd,KAAA4sd,eAAA5sd,KAAAyI,YAMA,SAAAvF,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA0na,EAAA1va,EAAA,KACA2va,EAAA3va,EAAA6+C,EAAA6wX,GAcA/7V,EAbA3zE,EAAA,EAaA4zE,CACA+7V,EAAA35Z,EAVA,MAEA,EAEA,KAEA,KAEA,MAUAgvC,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAmwY,EAAArqY,EAFA33E,EAAA,KAIA8kO,EAAA9kO,EAAA,IAIAw+S,EAAA7mO,EAFA33E,EAAA,KAIAE,EAAAF,EAAA,GAEA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GA0B7EhI,EAAA4V,SACAnW,KAAA,iBAEAkO,KAAA,WACA,OACAmvS,WAAA,EACAx3S,WACA3F,SACA00E,SAAA,EACAqhW,eACAtxa,SACAmkd,cAAA,QACAD,gBAAA,EACAzlQ,YAAA,GACA6nQ,WAAA,EACAC,UAAA,EACApsd,IAAA,EAAAjC,EAAA4mN,gBAKA9qM,OACAi8D,QAAA,SAAAjwE,GACAA,IACAvH,KAAA64a,YAAA74a,KAAAuH,QAIAA,OACAmtM,WAAA,EACAj5L,QAAA,SAAAlU,GACAvH,KAAA64a,YAAAtxa,KAKAsU,UACAkyc,eACApuO,OAAA,EACA37O,IAAA,WACA,IAAA6Y,EAAA7c,KAEA64a,EAAA74a,KAAA64a,YACAm1C,GAAA,uCAgCAC,EAnGA,SAAAC,EAAAtid,EAAA9I,GACA,IAAA8I,IAAAC,MAAAC,QAAAF,KAAA9I,EAAA,OAAA8I,EACA,IAAAmF,KACAi9c,GAAA,kDACAG,EAAArrd,EAAAylL,UAAA,WAiBA,OAhBA38K,EAAA9B,QAAA,SAAA6C,GACA,IAAAyhd,KACAJ,EAAAlkd,QAAA,SAAAhJ,GACA,IAAA8B,EAAAE,EAAAhC,GACAyG,EAAAoF,EAAA/J,QACA8K,IAAAnG,IAEAA,EAAAoF,EADA/J,EAAA9B,SAGA4M,IAAAnG,IAAA6md,EAAAxrd,GAAA2E,KAEAsE,MAAAC,QAAAa,EAAAwhd,MACAC,EAAAD,GAAAD,EAAAvhd,EAAAwhd,GAAArrd,IAEAiO,EAAAxP,KAAA6sd,KAEAr9c,EA8EAm9c,CAAAlud,KAAAyI,QAAAzI,KAAA8C,OAEA,OAhCA,SAAAurd,EAAA5ld,GACAA,EAAAqB,QAAA,SAAAmT,GACAA,EAAAmwc,sBACAY,EAAAlkd,QAAA,SAAAhJ,GACA,IAAAyG,EAAA0V,EAAAJ,EAAA/Z,MAAAhC,YACA4M,IAAAnG,IAAA0V,EAAAnc,GAAAyG,KAEAsE,MAAAC,QAAAmR,EAAAsrK,WACA8lS,EAAApxc,EAAAsrK,aAuBA8lS,CAAAJ,GAlBA,SAAAK,EAAA7ld,GACA,IAAAsld,EAAAjpd,UAAA7D,OAAA,QAAAyM,IAAA5I,UAAA,GAAAA,UAAA,MAEAue,EAAA0qc,EAAA9sd,OACA8sd,EAAA1qc,GAAA5a,EACA,IAAAolP,EAAAgrL,EAAAx1Z,GASA,OARA,EAAAghN,EAAA0a,OAAA8O,KACAplP,IAAA2e,OAAA,SAAAnK,GACA,OAAAA,EAAA1V,QAAAsmP,IACa,KACbplP,EAAA8/K,UACA+lS,EAAA7ld,EAAA8/K,SAAAwlS,GAGAA,EAKAO,CAAAL,MAKAlyc,SACA+mK,OAAA,SAAAn2K,EAAA4hd,GACA5hd,EAAAygd,oBACAptd,KAAA64a,YAAAlsa,EAAApF,MACOgnd,EACPvud,KAAA64a,YAAAv3a,OAAAitd,EAAAvud,KAAA64a,YAAA53a,OAAA,EAAA0L,EAAApF,OAEAvH,KAAA64a,aAAAlsa,EAAApF,OAEAvH,KAAAge,MAAA,OAAAhe,KAAA64a,YAAAv2a,UAEAksd,gBAAA,WACAxud,KAAAge,MAAA,cAEAmzZ,WAAA,SAAAxka,EAAA4hd,GACA,IAAA1sd,EAAA7B,KAAA+td,cAAA9sd,OACAjB,KAAA64a,YAAAv3a,OAAAitd,EAAA1sd,EAAA8K,EAAApF,OACAvH,KAAA+td,cAAAzsd,OAAAitd,EAAA,EAAA1sd,EAAA8K,EAAA47K,UACAvoL,KAAAyrd,eACAzrd,KAAAge,MAAA,OAAAhe,KAAA64a,YAAAv2a,SAAA,GAEAtC,KAAAge,MAAA,mBAAAhe,KAAA64a,cAGA41C,WAAA,SAAAvtK,IACA,EAAAnD,EAAAhlS,SAAAmoS,IAAAwtK,uBAAA,kBAEAttK,gBAAA,WACA,IAAAljS,EAAAle,KAEAA,KAAAuc,UAAA,WACA,OAAA2B,EAAAO,MAAAouc,MAAA/id,QAAA,SAAAo3S,GACA,OAAAhjS,EAAAuwc,WAAAvtK,SAMAz9S,OAAA,SAAAwU,GACA,IAAA+G,EAAAhf,KAEA64a,EAAA74a,KAAA64a,YACAk1C,EAAA/td,KAAA+td,cACAv2Y,EAAAx3E,KAAAw3E,QACAk0Y,EAAA1rd,KAAA0rd,cACA1lQ,EAAAhmN,KAAAgmN,YACA6lQ,EAAA7rd,KAAA6rd,eAEAjvL,EAAA,KACA+xL,EAAA,EAEAC,KACAC,EAAA,SAAA1qd,GACA,IAAA2qd,EAAAF,EAAAE,WACA,GAAAA,EAAA,CACA,IAAAxqd,EAAAH,EAAAG,QACA0U,EAAA81c,EAAAh6a,YACA77B,EAAA61c,EAAA3xa,aAEA,GAAAh5C,EAAA5D,SAAAqud,EAAAz9C,WAAA,CACA9ka,aAAA2S,EAAA6uc,YACA,IACA18C,EADAy9C,EACAz9C,WAEA49C,EAAA59C,EAAAzyX,UACAswa,EAAAD,EAAA59C,EAAAh0X,aAEAyxa,EAAAK,UAAAr6a,UAAA,0EAA2FtwC,EAAA,IAAAyqd,EAAA,KAAA/1c,EAAA,OAAA+1c,EAAA,gFAAsJzqd,EAAA,IAAA0qd,EAAA,KAAAh2c,EAAA,IAAAC,EAAA,KAAA+1c,EAAA,wBAEjPhwc,EAAA6uc,aACA7uc,EAAA6uc,WAAAvhd,WAAA,WACAsid,EAAAK,UAAAr6a,UAAA,IACWi3a,MAKXgB,EAAA7sd,KAAAyvE,GAAAs+Y,EAAA,SAAA7sK,EAAAqtK,GACA,IAAAW,GAAA,EACAC,EAAA,QAAAnwc,EAAAtd,GAAA,IAAA6sd,EACAa,EAAA,QAAApwc,EAAAtd,GAAA,KAAA6sd,EAAA,GACAr8c,EAAA8M,EAAAywD,GAAAyxO,EAAA,SAAAv0S,GACA,IAyDAm1L,EAIAutR,EA7DA91c,GACAmG,OAsGA,OAnGA/S,EAAAygd,sBAAA8B,GAAA,GAEAvid,EAAA+mE,WAEAn6D,EAAAmG,GAAA2yR,QAAA,SAAA7yR,GACA,IAAA08P,EAAA18P,EAAA08P,QACA,2BAAAp8Q,QAAAo8Q,GAAA,IAGA,IAAAozM,EAAA9vc,EAAAjf,OACAgvd,EAAAvwc,EAAAP,MAAAouc,MAAA0B,GACAiB,EAAAD,EAAA1ua,iBAAA,mBACAkhE,EAAAl2G,MAAA3L,UAAAJ,QAAA4L,KAAA8jd,EAAAF,GACAnra,OAAA,EAEA,WAAArkD,QAAAo8Q,IAAA,EACA,KAAAA,EAEA/3N,EAAA,IAAA49D,IAAA,EAAAA,EACe,KAAAm6J,IAEf/3N,EAAA49D,IAAAytW,EAAAvud,OAAA,EAAA8gH,EAAA,EAAAA,GAEAytW,EAAArra,GAAA5W,aACa,QAAA2uO,EAAA,CAEb,OAAAqyM,EACAvvc,EAAAP,MAAAouc,MAAA0B,EAAA,GACAhra,cAAA,wBAAAhW,aAEa,QAAA2uO,EAEbvvQ,EAAA47K,UAEAvpK,EAAAP,MAAAouc,MAAA0B,EAAA,GACA1ta,iBAAA,sBAAAtT,aAEa,QAAA2uO,GACb,IAAAvvQ,EAAA47K,SAAA,CACA,IAAA7mL,EAAA4td,EAAAp0Z,aAAA,MACAq0Z,EAAA7ob,aAAA,wBAAAhlC,GACAsd,EAAA8jK,OAAAn2K,EAAA4hd,GACAvvc,EAAAzC,UAAA,WACA,OAAAyC,EAAAyvc,WAAAzvc,EAAAP,MAAAouc,MAAA0B,YAGa,IAAAryM,GAAA,KAAAA,GAEbl9P,EAAAhB,MAAA,iBAGArR,EAAA47K,UAEAuZ,GACAjtH,MAAA,QACA6tG,MAAA,cACegpS,GACf2D,EAAA,WACArwc,EAAAmyZ,WAAAxka,EAAA4hd,GACAvvc,EAAAzC,UAAA,WAEAyC,EAAAyvc,WAAAzvc,EAAAP,MAAAouc,MAAA0B,IACAvvc,EAAAyvc,WAAAzvc,EAAAP,MAAAouc,MAAA0B,EAAA,OAGAh1c,EAAAmG,GAAAoiL,GAAAutR,EACA,eAAAvtR,GAAA9iL,EAAAysc,iBACAlyc,EAAAmG,GAAAm1D,MAAA,YACA,IAAA71D,EAAA65Z,YAAA/4a,QAAA6M,EAAApF,QACAyX,EAAAhB,MAAA,oBAIAzE,EAAAmG,GAAA,qBACAV,EAAA8uc,UAAA,GAEAv0c,EAAAmG,GAAA,iBAEAV,EAAA8uc,SACA9uc,EAAA8uc,UAAA,EAGAuB,MAIA91c,EAAAmG,GAAAm1D,MAAA,WACA71D,EAAA8jK,OAAAn2K,EAAA4hd,GACAvvc,EAAAzC,UAAA,WACA,OAAAyC,EAAAyvc,WAAAzvc,EAAAP,MAAAouc,MAAA0B,QAKA5hd,EAAA+mE,UAAA/mE,EAAA47K,WAEAq0G,EAAAuyL,EAAA,IAAAR,EACAA,KAEA12c,EACA,MACA,EAAAspc,EAAAxoc,WACAb,OACAu3c,0BAAA,EACAC,qCAAA/id,EAAA47K,SACAirP,YAAA7ma,EAAApF,QAAAsxa,EAAA01C,GACA/5Y,cAAA7nE,EAAA+mE,UAEA96D,IAAAjM,EAAApF,QAAAsxa,EAAA01C,GAAA,mBACWh1c,GACXlC,OACA+tN,SAAAz4N,EAAA+mE,SAAA,QACAswF,KAAA,WACAgoQ,kBAAAr/Z,EAAA47K,SACA0jP,gBAAAt/Z,EAAApF,QAAAsxa,EAAA01C,GACA7sd,GAAAk7R,EACAsvI,YAAAv/Z,EAAA47K,SAAA6mS,EAAA,UAGAzid,EAAA8F,UAGAk9c,KACAT,IACAS,EAAAjsK,SAAA1kS,EAAAihS,WAAA,MAGA,IAAA2vK,EAAA,UAAAlE,GAAA7yC,EAAA53a,OAAA,IAAAstd,EACAsB,GACAnwc,OAQA,OALAkwc,IACAC,EAAAnwc,GAAAg8I,UAAAmzT,EACAc,EAAAvhd,SAAA,YAGA6J,EACA,MACA,EAAAspc,EAAAxoc,WACAb,OACA43c,oBAAA,EACAC,6BAAAb,IAESW,GACTt3c,MAAAo3c,EACApzN,UAAA,EACA3jP,IAAA,QACAvB,OAAkB2sJ,KAAA,OAClBtiK,GAAAytd,OAGAj9c,EAAA09c,EAAA33c,EACA,OAEAW,IAAA,YACAL,OACAnK,SAAA,WACA4D,IAAA,EACAiH,OAAA,OACAD,MAAA,OACAnT,KAAA,EACAmqd,cAAA,aAIA,SAuBA,MAnBA,UAAAtE,GACA1rd,KAAAuc,UAAA,WACA,IAAA40Z,EAAAnyZ,EAAAP,MAAA0yZ,WAEA,GAAAA,EAAA,CACA,IAAA29C,EAAA39C,EAAA8+C,cACAhB,EAAAjwc,EAAAP,MAAAwwc,UAEAL,GACAE,aACA39C,aACA89C,kBAGAL,OAKA32c,EACA,cAEAZ,OAAgBzU,KAAA,kBAChB8c,IACA+kS,eAAAzkT,KAAAohT,gBACA8C,cAAAlkT,KAAAwud,mBAGAv2c,EACA,OAEAmsK,aACAxhL,KAAA,OACA2E,MAAAiwE,IAGAt/D,OAAA,8BAAA8tM,GACAptM,IAAA,YAEAX,EACA,OAEAZ,OAAoB64c,WAAA,GACpBh4c,MAAA,qBAEA20c,SAQA,SAAA3pd,EAAAqhD,EAAAhlD,GAEA,aACA,IAQA+0E,GAAiB7wE,OARjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,QAAkBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,mBAAAn1D,WAAA,uBAA4GxG,IAAA,YAAAxB,YAAA,cAAAc,QAEpOu7Z,YAAAl/V,EAAAw3Y,YACAv3Y,cAAAD,EAAAg4Y,kBAEAh4Y,EAAA+3Y,aAAA,gBAAA/3Y,EAAA+3Y,aAAA,IACA5sc,IAAQm1D,MAAAN,EAAAJ,YAAAmwG,WAAA,SAAAC,GAAsDhwG,EAAAy3Y,YAAA,GAAsBz+a,MAAA,SAAAg3I,GAA0BhwG,EAAAy3Y,YAAA,GAAsBrlQ,WAAA,SAAApiC,GAA+BhwG,EAAAy3Y,YAAA,GAAuB/lP,KAAA,SAAA1hD,GAAyBhwG,EAAAy3Y,YAAA,GAAuB35K,QAAA99N,EAAA4hW,iBAA8Bj/Z,EAAA,YAAiB0B,IAAA,QAAAvB,OAAmBwtN,SAAAtwJ,EAAAswJ,SAAAmD,YAAAzzJ,EAAA83Y,cAAAprd,YAAAyM,EAAA6mE,EAAAyzJ,YAAAs8E,kBAAA,EAAAzyR,KAAA0iD,EAAA1iD,KAAA6hD,SAAAa,EAAAg4Y,kBAAoK7sc,IAAKxV,MAAAqqE,EAAAu3Y,qBAAAv+a,MAAAgnC,EAAA2yI,YAAA+e,KAAA1xJ,EAAA4yI,YAA+EmuC,UAAWxsB,iBAAA,SAAAvkD,GAAoChwG,EAAAiyJ,kBAAAjiD,IAA8BykD,eAAA,SAAAzkD,GAAmChwG,EAAAiyJ,kBAAAjiD,KAA+BhtJ,OAAQhwB,MAAAgtE,EAAA,WAAApyE,SAAA,SAAAqiT,GAAgDjwO,EAAAotX,WAAAn9I,GAAmBplS,WAAA,gBAA0BlI,EAAA,YAAiBG,OAAO20O,KAAA,UAAgBA,KAAA,WAAez3K,EAAA4wJ,WAAA5wJ,EAAAy3Y,YAAAz3Y,EAAA83Y,cAAAprd,OAAAiW,EAAA,KAAwEnN,IAAA,IAAAqN,YAAA,6DAAAsI,IAAqFm1D,MAAAN,EAAAo5Y,cAAwBz2c,EAAA,KAAUnN,IAAA,IAAAqN,YAAA,oCAAAc,OAA+Di4c,aAAA57Y,EAAAw3Y,kBAAiC,GAAA70c,EAAA,QAAmBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,KAAAgtE,EAAAotX,aAAAptX,EAAAmwJ,gBAAAtlN,WAAA,0CAAsIhI,YAAA,uBAAmCm9D,EAAA,eAAAA,EAAA9E,GAAA8E,EAAA,uBAAA9hE,EAAA7F,GAAwE,OAAA2nE,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA3xJ,GAAA,cAAA7F,EAAA2nE,EAAA83Y,cAAAprd,OAAA,EAAAiW,EAAA,QAA0GnN,IAAA6C,IAAU2nE,EAAA18D,GAAA,IAAA08D,EAAA6vF,GAAA7vF,EAAAggO,WAAA,OAAAhgO,EAAAO,UAAoDP,EAAA18D,GAAA,WAAA08D,EAAA6vF,GAAA7vF,EAAA83Y,cAAA93Y,EAAA83Y,cAAAprd,OAAA,wBAEthD0W,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAovB,EAAA7wd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACA66c,EAAA,GATA,EAEA,KAEA,KAEA,MAUA7ra,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAi/Y,EAAAn5Y,EAFA33E,EAAA,KAMA+wd,EAAAp5Y,EAFA33E,EAAA,MAMAs+S,EAAA3mO,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,gBAEAE,OACAyE,MAAA4J,OACAo/c,UAAA92c,QACA+2c,YAAAr/c,OACAuiE,SAAAj6D,QACAoY,KAAA1gB,OACA60M,YAAA70M,OACAs/c,UAAA5kd,OAGAwnE,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAqrK,YAAek7H,aAAAzB,EAAA9kS,SAEf8C,UACA60c,eAAA,WACA,OAAA1wd,KAAAuH,OAAAvH,KAAA2wd,eAIA3wd,KAAA4wd,aAAA5wd,KAAAmG,MAAAnG,KAAAuwd,WAHA,eAKAz8Y,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnC88Y,UAAA,WACA,OAAA7wd,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAsEpiD,MAEtEi/b,cAAA,WACA,OAAA9wd,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,WAIhDn4D,OACAhU,MAAA,SAAAgG,GACAA,EAEOA,OAAAvN,KAAAmG,MAAAoB,OACPvH,KAAAmG,MAAAy1Z,WAAAruZ,GAFAvN,KAAA2wd,gBAAA,GAMAxqd,OACAqV,MAAA,EACAC,QAAA,WACAzb,KAAA2wd,gBAAA,IAGAD,eAAA,SAAAnjd,GACA,GAAAvN,KAAA8wb,WAAA,CACA,IAAAigC,EAAA,IAAAV,EAAAt3c,SACA0iZ,YAAAz7Z,KAAAuwd,UACA7nd,OAAA1I,KAAAwwd,cAEAO,EAAAn1D,WAAA57Z,KAAAuH,OAGAgG,IADAvN,KAAA4wd,aAAAG,EAAA/wd,KAAAuwd,YAEAvwd,KAAAge,MAAA,gBAAAzQ,MAKAwO,SACAi1c,cAAA,WACAhxd,KAAA8wd,gBACA9wd,KAAA8wb,YAAA9wb,KAAA8wb,aAEAmgC,aAAA,SAAA1pd,GACAvH,KAAAge,MAAA,QAAAhe,KAAAmG,MAAAoB,OACAvH,KAAAge,MAAA,SAAAhe,KAAAmG,MAAAoB,OACAvH,KAAA8wb,YAAA,GAEA68B,WAAA,WACA3td,KAAAge,MAAA,cACAhe,KAAAge,MAAA,eACAhe,KAAA2wd,gBAAA,EACA3wd,KAAA8wb,YAAA,EACA9wb,KAAAkxd,cAEAnlR,KAAA,WACA/rM,KAAA8wb,YAAA,EACA9wb,KAAAkxd,cAEAA,WAAA,WACA,IAAAr0c,EAAA7c,KAEAA,KAAAuc,UAAA,SAAA4B,GACAtB,EAAAtV,MACAsV,EAAA1W,MAAAy1Z,WAAA/+Y,EAAAtV,OAEAsV,EAAA8zc,gBAAA,KAIAC,aAAA,SAAAzqd,EAAAoqd,GACA,KAAApqd,aAAAkqd,EAAAt3c,SACA,MAAAsmD,MAAA,2CAGA,IAAA8xZ,EAAAhrd,EAAAw1Z,QACAlkZ,EAAA05c,EAAA15c,EACA20B,EAAA+kb,EAAA/kb,EACA52B,EAAA27c,EAAA37c,EAEA,OAAA+6c,EAAA,QAAA94c,EAAA,KAAA20B,EAAA,KAAA52B,EAAA,KAAArP,EAAAnC,IAAA,wBAAAyT,EAAA,KAAA20B,EAAA,KAAA52B,EAAA,MAIAuK,QAAA,WACA,IAAAxY,EAAAvH,KAAAuH,MACAA,GACAvH,KAAAmG,MAAAy1Z,WAAAr0Z,GAEAvH,KAAA80M,UAAA90M,KAAAye,MAAAouZ,SAAAnwZ,KAEA5L,KAAA,WAKA,OACA3K,MALA,IAAAkqd,EAAAt3c,SACA0iZ,YAAAz7Z,KAAAuwd,UACA7nd,OAAA1I,KAAAwwd,cAIA1/B,YAAA,EACA6/B,gBAAA,IAKAv8b,YACAg9b,eAAAd,EAAAv3c,WAqCA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA8pd,EAAA9xd,EAAA,KACA+xd,EAAA/xd,EAAA6+C,EAAAiza,GACAE,EAAAhyd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAm+Y,EAAA/7c,EACAg8c,EAAA,GATA,EAEA,KAEA,KAEA,MAUAhta,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAogZ,EAAAt6Y,EAFA33E,EAAA,MAMAkyd,EAAAv6Y,EAFA33E,EAAA,MAMAmyd,EAAAx6Y,EAFA33E,EAAA,MAMAoyd,EAAAz6Y,EAFA33E,EAAA,MAMAomN,EAAAzuI,EAFA33E,EAAA,IAMAm+S,EAAAxmO,EAFA33E,EAAA,IAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAszE,EAAAqE,EAFA33E,EAAA,KAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GA0C7EhI,EAAA4V,SACAnW,KAAA,2BAEA0/K,QAAAqjC,EAAA5sM,QAAA2kS,EAAA3kS,SAEAqb,YACAw9b,QAAAJ,EAAAz4c,QACA84c,UAAAJ,EAAA14c,QACA+4c,YAAAJ,EAAA34c,QACA63R,QAAA/sE,EAAA9qN,QACA4zZ,SAAA95V,EAAA95D,QACAg5c,UAAAJ,EAAA54c,SAGAjW,OACAqD,OACA48J,UAAA,GAEAwtT,UAAA92c,QACAg3c,UAAA5kd,OAGAiF,KAAA,WACA,OACAkhd,YAAA,KAKAn2c,UACAo2c,aAAA,WACA,IAAA1ob,EAAAvpC,KAAAmsN,QACA,OAAA5iL,EAAAhiC,OAAAgiC,EAAAonb,eAAApnb,EAAApjC,MAAAoB,MAAA,KAIAwU,SACAk1c,aAAA,WACAjxd,KAAAge,MAAA,SAEAkta,cAAA,WACAlrb,KAAAmG,MAAAy1Z,WAAA57Z,KAAAgyd,eAIAjyc,QAAA,WACA/f,KAAAmsN,QAAArX,UAAA90M,KAAA80M,UAAA90M,KAAA0c,IACA1c,KAAA+0M,aAAA/0M,KAAAmsN,QAAAzvM,KAIAnB,OACAi5L,WAAA,SAAAjnM,GACA,IAAAsP,EAAA7c,MAEA,IAAAuN,GACAvN,KAAAuc,UAAA,WACA,IAAAgha,EAAA1ga,EAAA4B,MACAyzc,EAAA30C,EAAA20C,GACA13D,EAAA+iB,EAAA/iB,IACArmX,EAAAopY,EAAAppY,MAEA+9a,KAAA31a,SACAi+W,KAAAj+W,SACApI,KAAAoI,YAIA01a,aAAA,SAAA1kd,GACAvN,KAAAgyd,YAAAzkd,MAOA,SAAArK,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAA4qd,EAAA5yd,EAAA,KACA6yd,EAAA7yd,EAAA6+C,EAAA+za,GACAE,EAAA9yd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAi/Y,EAAA78c,EACA88c,EAAA,GATA,EAEA,KAEA,KAEA,MAUA9ta,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAmnd,EAAA/yd,EAAA,IAEAgzd,GAEApnd,EAFAmnd,IAEsCnnd,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,cAEAE,OACAqD,OACA48J,UAAA,IAIAlnJ,UACA22c,WAAA,WAGA,OAAch4D,IAFdx6Z,KAAAmG,MAAAnC,IAAA,OAEcuD,MADdvH,KAAAmG,MAAAnC,IAAA,YAKAuX,OACAi3c,WAAA,WACAxyd,KAAAu8C,WAIAxgC,SACAwgC,OAAA,WACA,IAAAk2a,EAAAzyd,KAAAmG,MAAAnC,IAAA,cACAuD,EAAAvH,KAAAmG,MAAAnC,IAAA,SAIA0ud,EAFA1yd,KAAA0c,IAEAiiC,wBACA3lC,EAAA05c,EAAA15c,MACAC,EAAAy5c,EAAAz5c,OAEAA,MAAA,EAAAD,EAAA,GAEAhZ,KAAA2yd,WAAAF,EAAAz5c,EAAA,IACAhZ,KAAA4yd,WAAA,IAAArrd,GAAA0R,EAAA,IAEAjZ,KAAA+3I,WAAA,OAAA/3I,KAAAmG,MAAAnC,IAAA,uBAEA6ud,WAAA,SAAAt7Z,GACA,IACArvB,EADAloC,KAAA0c,IACAiiC,wBAEA94C,EAAA0xD,EAAAk6H,QAAAvpJ,EAAAriC,KACAmM,EAAAulD,EAAAm6H,QAAAxpJ,EAAAl2B,IACAnM,EAAAkC,KAAAE,IAAA,EAAApC,GACAA,EAAAkC,KAAAC,IAAAnC,EAAAqiC,EAAAlvB,OAEAhH,EAAAjK,KAAAE,IAAA,EAAA+J,GACAA,EAAAjK,KAAAC,IAAAgK,EAAAk2B,EAAAjvB,QAEAjZ,KAAA2yd,WAAA9sd,EACA7F,KAAA4yd,UAAA5gd,EACAhS,KAAAmG,MAAA6+C,KACAyta,WAAA5sd,EAAAqiC,EAAAlvB,MAAA,IACAzR,MAAA,IAAAyK,EAAAk2B,EAAAjvB,OAAA,QAKA8G,QAAA,WACA,IAAAlD,EAAA7c,MAEA,EAAAuyd,EAAAx5c,SAAA/Y,KAAA0c,KACAi8Y,KAAA,SAAAphW,GACA16C,EAAAg2c,WAAAt7Z,IAEArmC,IAAA,SAAAqmC,GACA16C,EAAAg2c,WAAAt7Z,MAIAv3D,KAAAu8C,UAEAzrC,KAAA,WACA,OACA8hd,UAAA,EACAD,WAAA,EACA56U,WAAA,wBAuBA,SAAA70I,EAAAqhD,EAAAhlD,GAEA,aACA,IAOA+0E,GAAiB7wE,OAPjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAA0BC,EAAvClX,KAAuCmX,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,mBAAAmB,OAC1GkC,gBAD0Bza,KAC1B+3I,cACO7gI,EAAA,OAAYE,YAAA,4BAAsCF,EAAA,OAAYE,YAAA,4BAAsCF,EAAA,OAAYE,YAAA,2BAAAmB,OACvHvG,IAH0BhS,KAG1B4yd,UAAA,KACA/sd,KAJ0B7F,KAI1B2yd,WAAA,QACOz7c,EAAA,YAEUS,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAurd,EAAAvzd,EAAA,KACAwzd,EAAAxzd,EAAA6+C,EAAA00a,GACAE,EAAAzzd,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA4/Y,EAAAx9c,EACAy9c,EAAA,GATA,EAEA,KAEA,KAEA,MAUAzua,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAmnd,EAAA/yd,EAAA,IAEAgzd,GAEApnd,EAFAmnd,IAEsCnnd,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,sBAEAE,OACAqD,OACA48J,UAAA,GAGAr0B,SAAAj1H,SAGA3I,KAAA,WACA,OACAmid,UAAA,EACAC,SAAA,IAKAr3c,UACAs3c,SAAA,WAEA,OADAnzd,KAAAmG,MAAAnC,IAAA,SAKAuX,OACA43c,SAAA,WACAnzd,KAAAu8C,WAIAxgC,SACAo4D,YAAA,SAAA5c,GACA,IAAAm1J,EAAA1sN,KAAAye,MAAAiuM,MACAn1J,EAAAh3D,SAEAmsN,GACA1sN,KAAA6yd,WAAAt7Z,IAGAs7Z,WAAA,SAAAt7Z,GACA,IAAArvB,EAAAloC,KAAA0c,IAAAiiC,wBACA+tK,EAAA1sN,KAAAye,MAAAiuM,MAEA8tM,OAAA,EAEA,GAAAx6Z,KAAA0uI,SAMO,CACP,IAAA18H,EAAAulD,EAAAm6H,QAAAxpJ,EAAAl2B,IACAA,EAAAjK,KAAAC,IAAAgK,EAAAk2B,EAAAjvB,OAAAyzM,EAAAvvK,aAAA,GACAnrC,EAAAjK,KAAAE,IAAAykN,EAAAvvK,aAAA,EAAAnrC,GAEAwoZ,EAAAzyZ,KAAAqC,OAAA4H,EAAA06M,EAAAvvK,aAAA,IAAAjV,EAAAjvB,OAAAyzM,EAAAvvK,cAAA,SAXA,CACA,IAAAt3C,EAAA0xD,EAAAk6H,QAAAvpJ,EAAAriC,KACAA,EAAAkC,KAAAC,IAAAnC,EAAAqiC,EAAAlvB,MAAA0zM,EAAA53K,YAAA,GACAjvC,EAAAkC,KAAAE,IAAAykN,EAAA53K,YAAA,EAAAjvC,GAEA20Z,EAAAzyZ,KAAAqC,OAAAvE,EAAA6mN,EAAA53K,YAAA,IAAA5M,EAAAlvB,MAAA0zM,EAAA53K,aAAA,KASA90C,KAAAmG,MAAA6+C,IAAA,MAAAw1W,IAEA44D,aAAA,WACA,GAAApzd,KAAA0uI,SAAA,SACA,IAAAjuI,EAAAT,KAAA0c,IACA89Y,EAAAx6Z,KAAAmG,MAAAnC,IAAA,OAEA,IAAAvD,EAAA,SACA,IAAAisN,EAAA1sN,KAAAye,MAAAiuM,MACA,OAAA3kN,KAAAqC,MAAAowZ,GAAA/5Z,EAAAq0C,YAAA43K,EAAA53K,YAAA,SAEAu+a,YAAA,WACA,IAAArzd,KAAA0uI,SAAA,SACA,IAAAjuI,EAAAT,KAAA0c,IACA89Y,EAAAx6Z,KAAAmG,MAAAnC,IAAA,OAEA,IAAAvD,EAAA,SACA,IAAAisN,EAAA1sN,KAAAye,MAAAiuM,MACA,OAAA3kN,KAAAqC,MAAAowZ,GAAA/5Z,EAAA08C,aAAAuvK,EAAAvvK,aAAA,SAEAZ,OAAA,WACAv8C,KAAAizd,UAAAjzd,KAAAozd,eACApzd,KAAAkzd,SAAAlzd,KAAAqzd,gBAIAtzc,QAAA,WACA,IAAAlD,EAAA7c,KAEAu9a,EAAAv9a,KAAAye,MACAoK,EAAA00Z,EAAA10Z,IACA6jM,EAAA6wN,EAAA7wN,MAGA4mQ,GACA36D,KAAA,SAAAphW,GACA16C,EAAAg2c,WAAAt7Z,IAEArmC,IAAA,SAAAqmC,GACA16C,EAAAg2c,WAAAt7Z,MAIA,EAAAg7Z,EAAAx5c,SAAA8P,EAAAyqc,IACA,EAAAf,EAAAx5c,SAAA2zM,EAAA4mQ,GACAtzd,KAAAu8C,YAkBA,SAAAr5C,EAAAqhD,EAAAhlD,GAEA,aACA,IAKA+0E,GAAiB7wE,OALjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAA0BC,EAAvClX,KAAuCmX,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,sBAAAc,OAAyC6ic,cAAzH/6c,KAAyH0uI,YAA+Bx3H,EAAA,OAAY0B,IAAA,MAAAxB,YAAA,2BAAAsI,IAAqDm1D,MAAzN70E,KAAyNm0E,eAAyBj9D,EAAA,OAAY0B,IAAA,QAAAxB,YAAA,6BAAAmB,OACxR1S,KAD0B7F,KAC1Bizd,UAAA,KACAjhd,IAF0BhS,KAE1Bkzd,SAAA,WAGiBv7c,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAgsd,EAAAh0d,EAAA,KACAi0d,EAAAj0d,EAAA6+C,EAAAm1a,GACAE,EAAAl0d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACAqgZ,EAAAj+c,EACAk+c,EAAA,GATA,EAEA,KAEA,KAEA,MAUAlva,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAmnd,EAAA/yd,EAAA,IAEAgzd,GAEApnd,EAFAmnd,IAEsCnnd,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,wBAEAE,OACAqD,OACA48J,UAAA,GAEAr0B,SAAAj1H,SAGA8B,OACAm4c,eAAA,WACA1zd,KAAAu8C,UAEAo3a,cAAA,WACA3zd,KAAAu8C,WAIAxgC,SACAo4D,YAAA,SAAA5c,GACA,IAAAm1J,EAAA1sN,KAAAye,MAAAiuM,MACAn1J,EAAAh3D,SAEAmsN,GACA1sN,KAAA6yd,WAAAt7Z,IAGAs7Z,WAAA,SAAAt7Z,GACA,IAAArvB,EAAAloC,KAAA0c,IAAAiiC,wBACA+tK,EAAA1sN,KAAAye,MAAAiuM,MAGA,GAAA1sN,KAAA0uI,SAMO,CACP,IAAA18H,EAAAulD,EAAAm6H,QAAAxpJ,EAAAl2B,IACAA,EAAAjK,KAAAE,IAAAykN,EAAAvvK,aAAA,EAAAnrC,GACAA,EAAAjK,KAAAC,IAAAgK,EAAAk2B,EAAAjvB,OAAAyzM,EAAAvvK,aAAA,GAEAn9C,KAAAmG,MAAA6+C,IAAA,QAAAj9C,KAAAqC,OAAA4H,EAAA06M,EAAAvvK,aAAA,IAAAjV,EAAAjvB,OAAAyzM,EAAAvvK,cAAA,UAXA,CACA,IAAAt3C,EAAA0xD,EAAAk6H,QAAAvpJ,EAAAriC,KACAA,EAAAkC,KAAAE,IAAAykN,EAAA53K,YAAA,EAAAjvC,GACAA,EAAAkC,KAAAC,IAAAnC,EAAAqiC,EAAAlvB,MAAA0zM,EAAA53K,YAAA,GAEA90C,KAAAmG,MAAA6+C,IAAA,QAAAj9C,KAAAqC,OAAAvE,EAAA6mN,EAAA53K,YAAA,IAAA5M,EAAAlvB,MAAA0zM,EAAA53K,aAAA,QASAs+a,aAAA,WACA,GAAApzd,KAAA0uI,SAAA,SACA,IAAAjuI,EAAAT,KAAA0c,IACAy3B,EAAAn0C,KAAAmG,MAAAq1Z,OAEA,IAAA/6Z,EAAA,SACA,IAAAisN,EAAA1sN,KAAAye,MAAAiuM,MACA,OAAA3kN,KAAAqC,MAAA+pC,GAAA1zC,EAAAq0C,YAAA43K,EAAA53K,YAAA,SAEAu+a,YAAA,WACA,IAAArzd,KAAA0uI,SAAA,SACA,IAAAjuI,EAAAT,KAAA0c,IACAy3B,EAAAn0C,KAAAmG,MAAAq1Z,OAEA,IAAA/6Z,EAAA,SACA,IAAAisN,EAAA1sN,KAAAye,MAAAiuM,MACA,OAAA3kN,KAAAqC,MAAA+pC,GAAA1zC,EAAA08C,aAAAuvK,EAAAvvK,aAAA,SAEAy2a,cAAA,WACA,GAAA5zd,KAAAmG,OAAAnG,KAAAmG,MAAAoB,MAAA,CACA,IAAA4pd,EAAAnxd,KAAAmG,MAAAw1Z,QACAlkZ,EAAA05c,EAAA15c,EACA20B,EAAA+kb,EAAA/kb,EACA52B,EAAA27c,EAAA37c,EAEA,wCAAAiC,EAAA,KAAA20B,EAAA,KAAA52B,EAAA,iBAAAiC,EAAA,KAAA20B,EAAA,KAAA52B,EAAA,aAEA,aAEA+mC,OAAA,WACAv8C,KAAAizd,UAAAjzd,KAAAozd,eACApzd,KAAAkzd,SAAAlzd,KAAAqzd,cACArzd,KAAA+3I,WAAA/3I,KAAA4zd,kBAIA9id,KAAA,WACA,OACAmid,UAAA,EACAC,SAAA,EACAn7U,WAAA,OAGAh4H,QAAA,WACA,IAAAlD,EAAA7c,KAEAu9a,EAAAv9a,KAAAye,MACAoK,EAAA00Z,EAAA10Z,IACA6jM,EAAA6wN,EAAA7wN,MAGA4mQ,GACA36D,KAAA,SAAAphW,GACA16C,EAAAg2c,WAAAt7Z,IAEArmC,IAAA,SAAAqmC,GACA16C,EAAAg2c,WAAAt7Z,MAIA,EAAAg7Z,EAAAx5c,SAAA8P,EAAAyqc,IACA,EAAAf,EAAAx5c,SAAA2zM,EAAA4mQ,GACAtzd,KAAAu8C,YAwBA,SAAAr5C,EAAAqhD,EAAAhlD,GAEA,aACA,IAOA+0E,GAAiB7wE,OAPjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAA0BC,EAAvClX,KAAuCmX,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,wBAAAc,OAA2C6ic,cAA3H/6c,KAA2H0uI,YAA+Bx3H,EAAA,OAAY0B,IAAA,MAAAxB,YAAA,6BAAAmB,OAChMw/H,WAD0B/3I,KAC1B+3I,YACQr4H,IAAMm1D,MAFY70E,KAEZm0E,eAAyBj9D,EAAA,OAAY0B,IAAA,QAAAxB,YAAA,+BAAAmB,OACnD1S,KAH0B7F,KAG1Bizd,UAAA,KACAjhd,IAJ0BhS,KAI1Bkzd,SAAA,WAGiBv7c,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAssd,EAAAt0d,EAAA,KACAu0d,EAAAv0d,EAAA6+C,EAAAy1a,GACAE,EAAAx0d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA2gZ,EAAAv+c,EACAw+c,EAAA,GATA,EAEA,KAEA,KAEA,MAUAxva,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJA6od,EAAAz0d,EAAA,IAEA8wd,GAEAlld,EAFA6od,IAEsC7od,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAjW,OACA0W,QAAahW,KAAAqI,MAAAk3J,UAAA,GACb58J,OAAY48J,UAAA,IAEZjyJ,KAAA,WACA,OACAmjd,WAAAj0d,KAAAk0d,YAAAl0d,KAAAwZ,OAAAxZ,KAAAmG,SAIA4V,SACAuva,aAAA,SAAA1+a,GACA5M,KAAAmG,MAAAy1Z,WAAA57Z,KAAAwZ,OAAA5M,KAEAsnd,YAAA,SAAA16c,EAAArT,GACA,OAAAqT,EAAA7I,IAAA,SAAApJ,GACA,IAAA24D,EAAA,IAAAmwZ,EAAAt3c,QAKA,OAJAmnD,EAAAu7V,aAAA,EACAv7V,EAAAx3D,OAAA,OACAw3D,EAAA07V,WAAAr0Z,GACA24D,EAAAx1C,SAAAw1C,EAAA34D,QAAApB,EAAAoB,MACA24D,MAIA3kD,OACA44c,uBAAA,SAAA5md,GACA,IAAApH,EAAA,IAAAkqd,EAAAt3c,QACA5S,EAAAy1Z,WAAAruZ,GAEAvN,KAAAi0d,WAAAnqd,QAAA,SAAA6C,GACAA,EAAA+d,SAAAvkB,EAAAmjS,QAAA38R,MAGA6M,OAAA,SAAA2mL,GACAngM,KAAAi0d,WAAAj0d,KAAAk0d,YAAA/zR,EAAAngM,KAAAmG,QAEAA,MAAA,SAAAg6L,GACAngM,KAAAi0d,WAAAj0d,KAAAk0d,YAAAl0d,KAAAwZ,OAAA2mL,OAqBA,SAAAj9L,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,uBAAiCF,EAAA,OAAYE,YAAA,8BAAyCm9D,EAAA9E,GAAA8E,EAAA,oBAAA5nE,EAAAC,GAA8C,OAAAsK,EAAA,OAAiBnN,IAAAwqE,EAAA/6D,OAAA5M,GAAAwK,YAAA,qCAAAc,OAA8EwS,SAAA/d,EAAA+d,SAAA0pc,WAAAznd,EAAA6uZ,OAAA,KAAuD97Y,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAA+2W,aAAA1+a,OAA0BsK,EAAA,OAAYqB,OAAQ87c,mBAAA1nd,EAAApF,iBAE/boQ,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,cAAwBG,OAAOzU,KAAA,kBAAwB8c,IAAKwkS,cAAA3vO,EAAA6gI,aAA6Bl+L,EAAA,OAAYktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,WAAAn1D,WAAA,eAA4EhI,YAAA,sBAAkCF,EAAA,OAAYE,YAAA,oCAA8CF,EAAA,cAAmB0B,IAAA,MAAAwqP,aAAuB60B,MAAA,SAAgB5gR,OAAQlR,MAAAouE,EAAApuE,MAAAuoI,SAAA,MAAiCx3H,EAAA,YAAiB0B,IAAA,KAAAvB,OAAgBlR,MAAAouE,EAAApuE,UAAmB,GAAAouE,EAAA,UAAAr9D,EAAA,gBAAyC0B,IAAA,QAAAvB,OAAmBlR,MAAAouE,EAAApuE,SAAmBouE,EAAAO,KAAAP,EAAA,UAAAr9D,EAAA,aAA2CG,OAAOlR,MAAAouE,EAAApuE,MAAAqT,OAAA+6D,EAAAk8Y,aAA0Cl8Y,EAAAO,KAAA59D,EAAA,OAAqBE,YAAA,4BAAsCF,EAAA,QAAaE,YAAA,6BAAuCF,EAAA,YAAiBG,OAAOwa,KAAA,QAAcnS,IAAKumN,KAAA1xJ,EAAA22W,eAAyB51L,UAAW6uD,MAAA,SAAA5/H,GAAyB,gBAAAA,IAAAhwG,EAAAu9K,GAAAvtE,EAAA23F,QAAA,WAAA33F,EAAAx6K,KAAwE,YAAewqE,EAAA22W,cAAA3mQ,KAA2BhtJ,OAAQhwB,MAAAgtE,EAAA,YAAApyE,SAAA,SAAAqiT,GAAiDjwO,EAAAy9Y,YAAAxtK,GAAoBplS,WAAA,kBAA2B,GAAAlI,EAAA,aAAsBE,YAAA,8BAAAC,OAAiDwa,KAAA,OAAAruB,KAAA,QAA4Bkc,IAAKm1D,MAAA,SAAA0vG,GAAyBhwG,EAAAv2D,MAAA,aAAqBu2D,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,uCAAAvxE,EAAA,aAA0FE,YAAA,yBAAAC,OAA4Cs8D,MAAA,GAAA9hD,KAAA,QAAyBnS,IAAKm1D,MAAAN,EAAA08Y,gBAA0B18Y,EAAA18D,GAAA,aAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,oDAEz6C9wE,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAQA+0E,GAAiB7wE,OARjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBktK,aAAaxhL,KAAA,eAAAyhL,QAAA,iBAAA98K,MAAAgtE,EAAA,KAAAn1D,WAAA,SAAgFlH,OACvM,kBACAq8D,EAAAu8Y,cAAA,iBACAv8Y,EAAAs8Y,UAAA,oBAAAt8Y,EAAAs8Y,UAAA,MACIt8Y,EAAA,cAAAr9D,EAAA,OAAgCE,YAAA,0BAAoCm9D,EAAAO,KAAA59D,EAAA,OAAqBE,YAAA,2BAAAsI,IAA2Cm1D,MAAAN,EAAAy8Y,iBAA2B95c,EAAA,QAAaE,YAAA,yBAAAc,OAA4Ck8c,WAAA7/Y,EAAAg8Y,aAA6Br5c,EAAA,QAAaE,YAAA,+BAAAmB,OACtQkC,gBAAA85D,EAAAm8Y,kBACWn8Y,EAAAhtE,OAAAgtE,EAAAo8Y,eAAoGp8Y,EAAAO,KAApG59D,EAAA,QAAiDE,YAAA,2CAAmDF,EAAA,QAAwBktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAAhtE,OAAAgtE,EAAAo8Y,eAAAvxc,WAAA,4BAA0GhI,YAAA,+CAAyDF,EAAA,mBAA0B0B,IAAA,WAAAV,OAAA,yBAAAq8D,EAAAyxI,aAAA,IAAA3uM,OAA8ElR,MAAAouE,EAAApuE,MAAAmud,aAAA//Y,EAAAg8Y,UAAAE,UAAAl8Y,EAAAk8Y,WAAuE/wc,IAAKm7a,KAAAtmX,EAAA08Y,aAAA7ra,MAAAmvB,EAAAo5Y,YAA+Cp2b,OAAQhwB,MAAAgtE,EAAA,WAAApyE,SAAA,SAAAqiT,GAAgDjwO,EAAAu8W,WAAAtsI,GAAmBplS,WAAA,iBAA0B,IAE9mBzH,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAuzB,EAAAh1d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAg/c,EAAA,GATA,EAEA,KAEA,KAEA,MAUAhwa,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAyB,EAAAqE,EAFA33E,EAAA,KAMA8iL,EAAAnrG,EAFA33E,EAAA,IAMAm+S,EAAAxmO,EAFA33E,EAAA,IAMAi1d,EAAAt9Y,EAFA33E,EAAA,MAMA4kO,EAAAjtJ,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,aAEA0/K,QAAAD,EAAAtpK,QAAA2kS,EAAA3kS,QAAAorN,EAAAprN,SAEAqb,YACAqgc,cAAAD,EAAAz7c,QACA4zZ,SAAA95V,EAAA95D,SAGAjW,OACAgO,MACAtN,KAAAqI,MACAkN,QAAA,WACA,WAGAusT,QACA9hU,KAAAqI,MACAkN,QAAA,WACA,WAGA27c,aACAlxd,KAAAqI,MACAkN,QAAA,WACA,WAGAqoW,mBACA59W,KAAA2N,OACA4H,QAAA,IAEA0mS,aAAAtmS,SACAw7c,oBACAnxd,KAAAqI,MACAkN,QAAA,WACA,WAGA67c,qBACApxd,KAAAqI,MACAkN,QAAA,WACA,WAGA66Y,cAAAz6Y,SACA5R,OACA/D,KAAAqI,MACAkN,QAAA,WACA,WAGArQ,QACAlF,KAAAoG,OACAmP,QAAA,WACA,WAGAulS,WAAA7kS,QACA3W,OACAU,KAAAoG,OACAmP,QAAA,WACA,OACAtG,MAAA,QACA1I,IAAA,MACA2pE,SAAA,cAIAmhZ,aACArxd,KAAA2N,OACA4H,QAAA,aAIAjI,KAAA,WACA,OACAgkd,eACAC,kBAKAl5c,UACAm5c,QAAA,WACA,IAAAjrd,EAAA/J,KAAA8C,MAAAiH,IACA,OAAA/J,KAAA8Q,KAAA2U,OAAA,SAAA0rD,EAAAxrD,GACA,OAAAwrD,EAAAxrD,EAAA5b,IAAA4b,IAAAwrD,QAGA8jZ,WAAA,WACA,IAAAp4c,EAAA7c,KAEA,OAAAA,KAAA8Q,KAAAsW,OAAA,SAAAza,GACA,WAAAkQ,EAAAtV,MAAAzH,QAAA6M,EAAAkQ,EAAA/Z,MAAAiH,SAGAmyY,WAAA,WACA,IAAAh+X,EAAAle,KAEA,mBAAAA,KAAA60d,YAAA70d,KAAA8Q,KAAAsW,OAAA,SAAAza,GACA,OAAAuR,EAAA3W,MAAAzH,QAAA6M,EAAAuR,EAAApb,MAAAiH,OAAA,IACO/J,KAAAuH,MAAAoJ,IAAA,SAAA5G,GACP,OAAAmU,EAAA82c,QAAAjrd,MAGAmrd,eAAA,WACA,WAAAl1d,KAAA00d,YAAAzzd,SAIAsa,OACAhU,MAAA,SAAAgG,GACAvN,KAAAu9I,SAAA,8BAAAhwI,KAIAwO,SACAmqN,mBAAA,WACA,OACApjO,OACAqyd,gBAAA,yCAIAC,sBAAA,SAAA7nd,EAAA8nd,GACAr1d,KAAA80d,YAAAvnd,OACAG,IAAA2nd,GACAr1d,KAAAge,MAAA,oBAAAzQ,EAAA8nd,IAEAC,sBAAA,SAAA/nd,EAAA8nd,GACAr1d,KAAA+0d,aAAAxnd,OACAG,IAAA2nd,GACAr1d,KAAAge,MAAA,qBAAAzQ,EAAA8nd,IAEAE,UAAA,WACA,IAAA3yS,EAAA5iL,KAAAuH,MAAAjF,QACAtC,KAAA+0d,aAAAjrd,QAAA,SAAA6C,GACA,IAAAC,EAAAg2K,EAAA9iL,QAAA6M,GACAC,GAAA,GACAg2K,EAAAthL,OAAAsL,EAAA,KAGA5M,KAAAge,MAAA,QAAA4kK,GACA5iL,KAAAge,MAAA,SAAA4kK,EAAA,OAAA5iL,KAAA+0d,eAEAS,WAAA,WACA,IAAAx2c,EAAAhf,KAEA4iL,EAAA5iL,KAAAuH,MAAAjF,QACAmzd,KACA1rd,EAAA/J,KAAA8C,MAAAiH,IACA/J,KAAA8Q,KAAAhH,QAAA,SAAA6C,GACA,IAAA+od,EAAA/od,EAAA5C,GACAiV,EAAA81c,YAAAh1d,QAAA41d,IAAA,QAAA12c,EAAAzX,MAAAzH,QAAA41d,IACAD,EAAAl0d,KAAAm0d,KAGA9yS,EAAA,YAAA5iL,KAAA60d,YAAAY,EAAA1gd,OAAA6tK,KAAA7tK,OAAA0gd,GACAz1d,KAAAge,MAAA,QAAA4kK,GACA5iL,KAAAge,MAAA,SAAA4kK,EAAA,QAAA5iL,KAAA80d,cAEAa,WAAA,SAAAvjS,GACA,SAAAA,EACApyL,KAAAye,MAAAm3c,UAAA7/Z,MAAA,GACO,UAAAq8H,IACPpyL,KAAAye,MAAAo3c,WAAA9/Z,MAAA,QAkDA,SAAA7yD,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAuud,EAAAv2d,EAAA,KACAw2d,EAAAx2d,EAAA6+C,EAAA03a,GACAE,EAAAz2d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA4iZ,EAAAxgd,EACAygd,EAAA,GATA,EAEA,KAEA,KAEA,MAUAzxa,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAEAkiU,EAAAp8T,EAFA33E,EAAA,KAMAs3a,EAAA3/V,EAFA33E,EAAA,KAMAskO,EAAA3sJ,EAFA33E,EAAA,IAMAm+S,EAAAxmO,EAFA33E,EAAA,IAIA,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAwD7EhI,EAAA4V,SACAupK,QAAAo7H,EAAA3kS,SAEAnW,KAAA,kBAEA2/K,cAAA,kBAEAnuJ,YACA42Z,gBAAA13C,EAAAv6X,QACAsja,WAAAxF,EAAA99Z,QACA63R,QAAA/sE,EAAA9qN,QACAk9c,eACAnzd,OACAma,OAAArT,QAEAnG,OAAA,SAAAwU,GACA,IASAghW,EATA,SAAAi9G,EAAAnvO,GACA,0BAAAA,EAAA3uO,SAAAmqK,cACAwkE,EACWA,EAAA56B,QACX+pQ,EAAAnvO,EAAA56B,SAEA46B,EAGAmvO,CAAAl2d,MACAmhX,EAAAlI,EAAA9sJ,SAAA8sJ,EACA,OAAAA,EAAA26C,cAAA36C,EAAA26C,cAAA37Y,EAAAjY,KAAAid,QAAAkkW,EAAAnxH,aAAAj3O,QAAAooW,EAAAnxH,aAAAj3O,SAA0IkE,OAAAjd,KAAAid,SAAsBhF,EAChK,OACA,MACAjY,KAAAid,OAAAg8V,EAAAk9G,YAAAn2d,KAAAid,OAAAg8V,EAAAm9G,cAMAtzd,OACAgO,MACAtN,KAAAqI,MACAkN,QAAA,WACA,WAGA66Y,cAAAz6Y,SACA6uN,YAAA72N,OACA+I,MAAA/I,OACAmtS,WAAA7kS,QACA/Q,OAAAkB,OACA61S,aAAAtmS,SACAk9c,eAAAxqd,MACA/I,MAAA8G,QAGAkH,KAAA,WACA,OACA0ka,WACA8gD,YAAA,EACAvga,MAAA,GACAi2Z,YAAA,EACAuK,mBAAA,IAKAh7c,OACAi6Z,QAAA,SAAAjoa,EAAA41K,GAEA,GADAnjL,KAAAw2d,mBACAx2d,KAAAu2d,kBAAA,CACA,IAAAlB,EAAA9nd,EAAAwH,OAAAouK,GAAA/7J,OAAA,SAAAra,GACA,WAAAQ,EAAAzN,QAAAiN,KAAA,IAAAo2K,EAAArjL,QAAAiN,KAEA/M,KAAAge,MAAA,iBAAAzQ,EAAA8nd,QAEAr1d,KAAAge,MAAA,iBAAAzQ,GACAvN,KAAAu2d,mBAAA,GAGAzld,KAAA,WACA,IAAA+L,EAAA7c,KAEAw1a,KACAihD,EAAAz2d,KAAAwhb,aAAA7wa,IAAA,SAAAhE,GACA,OAAAA,EAAAkQ,EAAAu5c,WAEAp2d,KAAAw1a,QAAA1ra,QAAA,SAAA6C,GACA8pd,EAAA32d,QAAA6M,IAAA,GACA6oa,EAAAj0a,KAAAoL,KAGA3M,KAAAu2d,mBAAA,EACAv2d,KAAAw1a,WAEAkhD,cAAA,WACA12d,KAAAw2d,oBAIAH,gBACA3hR,WAAA,EACAj5L,QAAA,SAAAlO,EAAA41K,GACA,IAAAjlK,EAAAle,KAEA,IAAAmjL,GAAA51K,EAAAtM,SAAAkiL,EAAAliL,SAAAsM,EAAAsqG,MAAA,SAAAlrG,GACA,OAAAw2K,EAAArjL,QAAA6M,IAAA,IADA,CAGA,IAAA6oa,KACAmhD,EAAA32d,KAAA02d,cAAA/ld,IAAA,SAAAhE,GACA,OAAAA,EAAAuR,EAAAk4c,WAEA7od,EAAAzD,QAAA,SAAA6C,GACAgqd,EAAA72d,QAAA6M,IAAA,GACA6oa,EAAAj0a,KAAAoL,KAGA3M,KAAAu2d,mBAAA,EACAv2d,KAAAw1a,cAKA35Z,UACA2la,aAAA,WACA,IAAAxia,EAAAhf,KAEA,OAAAA,KAAA8Q,KAAAsW,OAAA,SAAAza,GACA,yBAAAqS,EAAAygS,aACAzgS,EAAAygS,aAAAzgS,EAAA+2C,MAAAppD,IAEAA,EAAAqS,EAAAm3c,YAAAxpd,EAAAqS,EAAAo3c,SAAAxud,YACA0Q,cAAAxY,QAAAkf,EAAA+2C,MAAAz9C,gBAAA,KAIAo+c,cAAA,WACA,IAAAn3c,EAAAvf,KAEA,OAAAA,KAAAwhb,aAAAp6Z,OAAA,SAAAza,GACA,OAAAA,EAAA4S,EAAAq3c,iBAGAC,eAAA,WACA,IAAAC,EAAA92d,KAAAw1a,QAAAv0a,OACAqvC,EAAAtwC,KAAA8Q,KAAA7P,OACAopR,EAAArqR,KAAA0I,OACAqud,EAAA1sM,EAAA0sM,UACAC,EAAA3sM,EAAA2sM,WAEA,OAAAD,GAAAC,EACAF,EAAA,EAAAE,EAAAzud,QAAA,eAAkEuud,GAAAvud,QAAA,aAAqC+nC,GAAAymb,EAAAxud,QAAA,aAA8C+nC,GAErJwmb,EAAA,IAAAxmb,GAGA2mb,gBAAA,WACA,IAAAH,EAAA92d,KAAAw1a,QAAAv0a,OACA,OAAA61d,EAAA,GAAAA,EAAA92d,KAAA02d,cAAAz1d,QAEAi2d,WAAA,WACA,OAAAl3d,KAAA+1D,MAAA90D,OAAA,OAAAjB,KAAAwhb,aAAAvgb,QAEAk2d,UAAA,WACA,OAAAn3d,KAAA+1D,MAAA90D,OAAA,GAAAjB,KAAAgsd,WAAA,yBAEAmK,UAAA,WACA,OAAAn2d,KAAA8C,MAAA2P,OAAA,SAEA2jd,QAAA,WACA,OAAAp2d,KAAA8C,MAAAiH,KAAA,OAEA6sd,aAAA,WACA,OAAA52d,KAAA8C,MAAA4wE,UAAA,YAEA0jZ,UAAA,WACA,QAAAp3d,KAAA8Y,OAAAC,UAIAgD,SACAy6c,iBAAA,WACA,IAAAl1W,EAAAthH,KAEA22d,EAAA32d,KAAA02d,cAAA/ld,IAAA,SAAAhE,GACA,OAAAA,EAAA20G,EAAA80W,WAEAp2d,KAAAs2d,WAAAK,EAAA11d,OAAA,GAAA01d,EAAA9+W,MAAA,SAAAlrG,GACA,OAAA20G,EAAAk0T,QAAA11a,QAAA6M,IAAA,KAGA0qd,uBAAA,SAAA9vd,GACA,IAAA6jJ,EAAAprJ,KAEAA,KAAAw1a,QAAAjua,EAAAvH,KAAA02d,cAAA/ld,IAAA,SAAAhE,GACA,OAAAA,EAAAy+I,EAAAgrU,eAGAT,WAAA,WACA,iBAAA31d,KAAAm3d,YACAn3d,KAAA+1D,MAAA,QAQA,SAAA7yD,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,sBAAgCF,EAAA,KAAUE,YAAA,8BAAwCF,EAAA,eAAoBG,OAAOkga,cAAAhjW,EAAA0iZ,iBAAoCv3c,IAAKupN,OAAA10J,EAAA8iZ,wBAAoC9/b,OAAQhwB,MAAAgtE,EAAA,WAAApyE,SAAA,SAAAqiT,GAAgDjwO,EAAA+hZ,WAAA9xK,GAAmBplS,WAAA,gBAA0Bm1D,EAAA18D,GAAA,WAAA08D,EAAA6vF,GAAA7vF,EAAAr6D,OAAA,YAAAhD,EAAA,QAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAsiZ,sBAAA,GAAA3/c,EAAA,OAAkHgB,OAAA,0BAAAq8D,EAAA6iZ,UAAA,uBAAyE7iZ,EAAA,WAAAr9D,EAAA,YAAkCE,YAAA,4BAAAC,OAA+Cwa,KAAA,QAAAm2M,YAAAzzJ,EAAAyzJ,aAA6CstB,UAAWhxE,WAAA,SAAAC,GAA8BhwG,EAAAy3Y,YAAA,GAAsBrlQ,WAAA,SAAApiC,GAA+BhwG,EAAAy3Y,YAAA,IAAwBz0b,OAAQhwB,MAAAgtE,EAAA,MAAApyE,SAAA,SAAAqiT,GAA2CjwO,EAAAxe,MAAAyuP,GAAcplS,WAAA,WAAqBlI,EAAA,KAAUgB,OAAA,4BAAAq8D,EAAA4iZ,WAAA9/c,OAA4D20O,KAAA,UAAgBtsO,IAAKm1D,MAAAN,EAAAohZ,YAAuB3pO,KAAA,aAAez3K,EAAAO,KAAA59D,EAAA,qBAAqCktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,OAAAgtE,EAAA2iZ,YAAA3iZ,EAAAzjE,KAAA7P,OAAA,EAAAme,WAAA,mCAAwHhI,YAAA,0BAAAc,OAA+Co/c,gBAAA/iZ,EAAA+pO,YAAkC/mR,OAAQhwB,MAAAgtE,EAAA,QAAApyE,SAAA,SAAAqiT,GAA6CjwO,EAAAihW,QAAAhxH,GAAgBplS,WAAA,YAAuBm1D,EAAA9E,GAAA8E,EAAA,sBAAA5nE,GAA0C,OAAAuK,EAAA,eAAyBnN,IAAA4C,EAAA4nE,EAAA6hZ,SAAAh/c,YAAA,0BAAAC,OAAmE5E,MAAA9F,EAAA4nE,EAAA6hZ,SAAA1iZ,SAAA/mE,EAAA4nE,EAAAqiZ,iBAA6D1/c,EAAA,kBAAuBG,OAAO4F,OAAAtQ,MAAe,MAAMuK,EAAA,KAAWktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAgtE,EAAA,WAAAn1D,WAAA,eAA4EhI,YAAA,6BAAyCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,2BAAAvxE,EAAA,KAAyDktK,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAA,IAAAgtE,EAAAzjE,KAAA7P,SAAAszE,EAAA2iZ,WAAA93c,WAAA,qCAA4HhI,YAAA,6BAAyCm9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAkU,EAAA,8BAAAlU,EAAA,UAAAr9D,EAAA,KAA4EE,YAAA,8BAAwCm9D,EAAAQ,GAAA,eAAAR,EAAAO,QAEvjEn9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,gBAA0BF,EAAA,iBAAAq9D,EAAAm0J,IAA8B9vN,IAAA,YAAAvB,OAAuBvG,KAAAyjE,EAAA0gZ,WAAA/6c,MAAAq6D,EAAA+wP,OAAA,IAAA/wP,EAAAkU,EAAA,wBAAA8uY,kBAAAhjZ,EAAAogZ,mBAAA3sP,YAAAzzJ,EAAA6sS,mBAAA7sS,EAAAkU,EAAA,kCAAoM/oE,IAAK83c,iBAAAjjZ,EAAA6gZ,wBAA4C,iBAAA7gZ,EAAAl1D,QAAA,IAAAk1D,EAAAQ,GAAA,mBAAA79D,EAAA,OAAyEE,YAAA,yBAAmCF,EAAA,aAAkBgB,OAAA,sBAAAq8D,EAAA2gZ,eAAA,oBAAA79c,OAAgF7T,KAAA,UAAAkwE,SAAA,IAAAa,EAAAwgZ,aAAA9zd,QAA0Dq0P,UAAWzgL,MAAA,SAAA0vG,GAAyBhwG,EAAAghZ,UAAAhxS,OAAwBrtK,EAAA,KAAUE,YAAA,4BAAiC1J,IAAA6mE,EAAAmgZ,YAAA,GAAAx9c,EAAA,QAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAmgZ,YAAA,OAAAngZ,EAAAO,OAAA59D,EAAA,aAAgHgB,OAAA,sBAAAq8D,EAAA2gZ,eAAA,oBAAA79c,OAAgF7T,KAAA,UAAAkwE,SAAA,IAAAa,EAAAugZ,YAAA7zd,QAAyDq0P,UAAWzgL,MAAA,SAAA0vG,GAAyBhwG,EAAAihZ,WAAAjxS,YAAyB72K,IAAA6mE,EAAAmgZ,YAAA,GAAAx9c,EAAA,QAAAq9D,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAAmgZ,YAAA,OAAAngZ,EAAAO,KAAA59D,EAAA,KAAsGE,YAAA,2BAAkC,GAAAF,EAAA,iBAAAq9D,EAAAm0J,IAAoC9vN,IAAA,aAAAvB,OAAwBvG,KAAAyjE,EAAA2nU,WAAAhiY,MAAAq6D,EAAA+wP,OAAA,IAAA/wP,EAAAkU,EAAA,wBAAA8uY,kBAAAhjZ,EAAAqgZ,oBAAA5sP,YAAAzzJ,EAAA6sS,mBAAA7sS,EAAAkU,EAAA,kCAAqM/oE,IAAK83c,iBAAAjjZ,EAAA+gZ,wBAA4C,iBAAA/gZ,EAAAl1D,QAAA,IAAAk1D,EAAAQ,GAAA,yBAE5/Cp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACAy2B,EAAAl4d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAkid,EAAA,GATA,EAEA,KAEA,KAEA,MAUAlza,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAQAjuE,EAAA4V,SACAnW,KAAA,cAEA2/K,cAAA,cAEAz/K,OACAggD,UAAA3xC,QAGA0K,UACA6nC,WAAA,WACA,mBAAA1jD,KAAA8iD,WAEO,eAAA9iD,KAAA8iD,eAGP9iD,KAAA8Y,SAAA9Y,KAAA8Y,OAAAC,UAAA/Y,KAAA8Y,OAAAC,QAAA3F,KAAA,SAAA0zM,GACA,IAAAqE,EAAArE,EAAAm9B,kBAAAn9B,EAAAm9B,iBAAA94B,IACA,oBAAAA,GAAA,cAAAA,SAQA,SAAAjoN,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,WAAqBI,YAAA,eAAAc,OAAkC6ic,cAAtH/6c,KAAsH0jD,cAAtH1jD,KAAuJ+0E,GAAA,gBAEhKp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACA02B,EAAAn4d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAmid,EAAA,GATA,EAEA,KAEA,KAEA,MAUAnza,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAQAjuE,EAAA4V,SACAnW,KAAA,WAEA2/K,cAAA,WAEAz/K,OACAmW,QACAzV,KAAA2N,OACA4H,QAAA,WAOA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,UAAoBI,YAAA,YAAAmB,OAAgCU,OAAnHjZ,KAAmHiZ,UAAnHjZ,KAA0I+0E,GAAA,gBAEnJp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACA22B,EAAAp4d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAoid,EAAA,GATA,EAEA,KAEA,KAEA,MAUApza,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAQAjuE,EAAA4V,SACAnW,KAAA,UAEA2/K,cAAA,UAEAz/K,OACAkW,OACAxV,KAAA2N,OACA4H,QAAA,YAOA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,SAAmBI,YAAA,WAAAmB,OAA+BS,MAAjHhZ,KAAiHgZ,SAAjHhZ,KAAsI+0E,GAAA,gBAE/Ip9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACA42B,EAAAr4d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAqid,EAAA,GATA,EAEA,KAEA,KAEA,MAUArza,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAQAjuE,EAAA4V,SACAnW,KAAA,SACA2/K,cAAA,WAKA,SAAAr/K,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,QAAkBI,YAAA,YAAjFpX,KAAuG+0E,GAAA,gBAEhHp9D,oBACjB4sC,EAAA,KAIA,SAAArhD,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAq6M,EAAAjmN,EAAA,KAEAkmN,GAEAt6M,EAFAq6M,IAEsCr6M,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7Es6M,EAAA1sM,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAkxL,EAAA1sM,QAAAnW,KAAA6iN,EAAA1sM,UAGA5V,EAAA4V,QAAA0sM,EAAA1sM,SAIA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAy5b,EAAAzhc,EAAA,KACA0hc,EAAA1hc,EAAA6+C,EAAA4iZ,GACA62B,EAAAt4d,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA8tX,EAAA1rb,EACAsid,EAAA,GATA,EAEA,KAEA,KAEA,MAUAtza,EAAA,QAAA2uB,EAAA,SAKA,SAAAhwE,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAQAjuE,EAAA4V,SACAnW,KAAA,WAEA2/K,cAAA,WAEAz/K,OACAmW,QACAzV,KAAA2N,OACA4H,QAAA,WAOA,SAAA7V,EAAAqhD,EAAAhlD,GAEA,aACA,IAEA+0E,GAAiB7wE,OAFjB,WAA0B,IAAauT,EAAbhX,KAAaiX,eAAkD,OAA/DjX,KAAuCmX,MAAAD,IAAAF,GAAwB,UAAoBI,YAAA,YAAAmB,OAAgCU,OAAnHjZ,KAAmHiZ,UAAnHjZ,KAA0I+0E,GAAA,gBAEnJp9D,oBACjB4sC,EAAA,2BCv8+BArhD,EAAAC,QAAA,SAAAu9D,EAAAkiB,EAAAhgF,EAAAk1d,GACA,KAAAp3Z,aAAAkiB,SAAAl1E,IAAAoqd,QAAAp3Z,EACA,MAAA1c,UAAAphD,EAAA,2BACG,OAAA89D,uBCHH,IAAAq3Z,EAAA,6BAMA50d,EAAA2M,cAJA,SAAAlN,GACA,OAAAiN,SAAAisP,gBAAAi8N,EAAAn1d,uCCDAO,EAAAiuE,YAAA,EAEAjuE,EAAA4V,QAAA,SAAAH,GACA,OACAmD,SACAwxB,MAAA,WACAvtC,KAAAye,MAAA7F,GAAA20B,kCCRArqC,EAAAC,QACA,SAAA4tE,GAEA,IAAAC,KAGA,SAAAzxE,EAAA0xE,GAGA,GAAAD,EAAAC,GACA,OAAAD,EAAAC,GAAA9tE,QAGA,IAAAD,EAAA8tE,EAAAC,IACAlwE,EAAAkwE,EACAjwE,GAAA,EACAmC,YAUA,OANA4tE,EAAAE,GAAAvlE,KAAAxI,EAAAC,QAAAD,IAAAC,QAAA5D,GAGA2D,EAAAlC,GAAA,EAGAkC,EAAAC,QAqCA,OAhCA5D,EAAAotB,EAAAokD,EAGAxxE,EAAA2gE,EAAA8Q,EAGAzxE,EAAAkvB,EAAA,SAAAtrB,EAAAP,EAAAsuE,GACA3xE,EAAA4xE,EAAAhuE,EAAAP,IACAgH,OAAAwB,eAAAjI,EAAAP,GACA0I,cAAA,EACAD,YAAA,EACArH,IAAAktE,KAMA3xE,EAAA6+C,EAAA,SAAAl7C,GACA,IAAAguE,EAAAhuE,KAAAkuE,WACA,WAAmC,OAAAluE,EAAA,SACnC,WAAyC,OAAAA,GAEzC,OADA3D,EAAAkvB,EAAAyiD,EAAA,IAAAA,GACAA,GAIA3xE,EAAA4xE,EAAA,SAAAE,EAAAxzB,GAA8D,OAAAj0C,OAAA1J,UAAA2C,eAAA6I,KAAA2lE,EAAAxzB,IAG9Dt+C,EAAA2xC,EAAA,SAGA3xC,IAAA4Y,EAAA,KA9DA,EAmEAm5D,EACA,SAAApuE,EAAAC,GAQAD,EAAAC,QAAA,SACAouE,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EACAC,EAAAP,QAGA/tE,SAAA+tE,EAAAx4D,QACA,WAAAvV,GAAA,aAAAA,IACAquE,EAAAN,EACAO,EAAAP,EAAAx4D,SAIA,IAqBAg5D,EArBAtpE,EAAA,mBAAAqpE,EACAA,EAAArpE,QACAqpE,EA+CA,GA5CAN,IACA/oE,EAAAhF,OAAA+tE,EAAA/tE,OACAgF,EAAAkP,gBAAA65D,EAAA75D,gBACAlP,EAAAupE,WAAA,GAIAP,IACAhpE,EAAAwpE,YAAA,GAIAN,IACAlpE,EAAAypE,SAAAP,GAIAC,GACAG,EAAA,SAAAjkB,IAEAA,EACAA,GACA9tD,KAAAmyE,QAAAnyE,KAAAmyE,OAAAC,YACApyE,KAAAupC,QAAAvpC,KAAAupC,OAAA4oC,QAAAnyE,KAAAupC,OAAA4oC,OAAAC,aAEA,oBAAAC,sBACAvkB,EAAAukB,qBAGAX,GACAA,EAAAhmE,KAAA1L,KAAA8tD,GAGAA,KAAAwkB,uBACAxkB,EAAAwkB,sBAAArzC,IAAA2yC,IAKAnpE,EAAA8pE,aAAAR,GACGL,IACHK,EAAAL,GAGAK,EAAA,CACA,IAAAE,EAAAxpE,EAAAwpE,WACAO,EAAAP,EACAxpE,EAAAhF,OACAgF,EAAAgqE,aAEAR,GAQAxpE,EAAAiqE,cAAAX,EAEAtpE,EAAAhF,OAAA,SAAAwU,EAAA61C,GAEA,OADAikB,EAAArmE,KAAAoiD,GACA0kB,EAAAv6D,EAAA61C,KAVArlD,EAAAgqE,aAAAD,KACAz9D,OAAAy9D,EAAAT,IACAA,GAaA,OACAF,WACA1uE,QAAA2uE,EACArpE,aAOAk5K,EACA,SAAAz+K,EAAAC,GAEAD,EAAAC,QAAiB5D,EAAQ,SAIzBy4d,IACA,SAAA90d,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAyra,EAAAr3a,EAAA,KAEAs3a,GAEA1ra,EAFAyra,IAEsCzra,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAG7E0ra,EAAA99Z,QAAAsb,QAAA,SAAAC,GACAA,EAAAC,UAAAsiZ,EAAA99Z,QAAAnW,KAAAi0a,EAAA99Z,UAGA5V,EAAA4V,QAAA89Z,EAAA99Z,SAIAm3H,IACA,SAAAhtI,EAAAqhD,EAAAhlD,GAEA,aACAqK,OAAAwB,eAAAm5C,EAAA,cAA0Dh9C,OAAA,IAC1D,IAAAuva,EAAAv3a,EAAA,KACAw3a,EAAAx3a,EAAA6+C,EAAA04X,GACAE,EAAAz3a,EAAA,KAcA2zE,EAbA3zE,EAAA,EAaA4zE,CACA4jW,EAAAxha,EACAyha,EAAA,GATA,EAEA,KAEA,KAEA,MAUAzyX,EAAA,QAAA2uB,EAAA,SAKAi9D,IACA,SAAAjtI,EAAAC,EAAA5D,GAEA,aAGA4D,EAAAiuE,YAAA,EAEA,IAIAjmE,EAJAi3K,EAAA7iL,EAAA,GAEA8iL,GAEAl3K,EAFAi3K,IAEsCj3K,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7EhI,EAAA4V,SACAnW,KAAA,aAEA0/K,QAAAD,EAAAtpK,SAEAs6D,QACAC,QACAv6D,QAAA,IAEAw6D,YACAx6D,QAAA,KAIAwpK,cAAA,aAEAzxK,KAAA,WACA,OACAmma,WAAA,EACA1pY,OAAA,EACA2pY,iBAAA,IAKAr7Z,UACA0b,OACAvzB,IAAA,WACA,OAAAhE,KAAA44D,QAAA54D,KAAA6+K,WAAAnxK,IAAA1N,KAAAuH,MAAAvH,KAAAuH,MAAAvH,KAAAi3a,WAEAjyX,IAAA,SAAAz3C,GACAvN,KAAA44D,SACA54D,KAAAk3a,iBAAA,OACAxpa,IAAA1N,KAAAqzY,eAAArrY,KAAAuF,EAAAtM,OAAAjB,KAAAqzY,eAAArrY,MAAAhI,KAAAk3a,iBAAA,QAEAxpa,IAAA1N,KAAAqzY,eAAAprY,KAAAsF,EAAAtM,OAAAjB,KAAAqzY,eAAAprY,MAAAjI,KAAAk3a,iBAAA,IAEA,IAAAl3a,KAAAk3a,iBAAAl3a,KAAAu9I,SAAA,2BAAAhwI,MAEAvN,KAAAge,MAAA,QAAAzQ,GACAvN,KAAAi3a,UAAA1pa,KAKA4pa,UAAA,WACA,MAAY,wBAAAvva,SAAA8D,KAAA1L,KAAAu3B,OACZv3B,KAAAu3B,MACO1rB,MAAAC,QAAA9L,KAAAu3B,OACPv3B,KAAAu3B,MAAAz3B,QAAAE,KAAAyS,QAAA,EACO,OAAAzS,KAAAu3B,YAAA7pB,IAAA1N,KAAAu3B,MACPv3B,KAAAu3B,QAAAv3B,KAAAo3a,eADO,GAIPx+W,QAAA,WAEA,IADA,IAAArvB,EAAAvpC,KAAAmsN,QACA5iL,GAAA,CACA,uBAAAA,EAAAnxB,SAAAmqK,cAIA,OADAviL,KAAAqzY,eAAA9pW,GACA,EAHAA,IAAA4iL,QAMA,UAEAttC,MAAA,WACA,OAAA7+K,KAAAqzY,eAAArzY,KAAAqzY,eAAA9rY,MAAAvH,KAAAuH,OAEA6ta,WAAA,WACA,OAAAp1a,KAAA44D,QAAA54D,KAAAqzY,eAAA3/T,UAAA1zE,KAAA0zE,WAAA1zE,KAAAszE,YAA+FI,SAAA1zE,KAAA0zE,WAAA1zE,KAAAszE,YAAgDI,UAE/II,gBAAA,WACA,OAAA9zE,KAAAuzE,gBAAmCQ,gBAEnCsjW,aAAA,WACA,IAAAC,EAAAt3a,KAAA6xB,MAAA7xB,KAAA8zE,kBAAA9zE,KAAAi0E,cAAqFpiD,KACrF,OAAA7xB,KAAA44D,SAAA54D,KAAAqzY,eAAAK,mBAAA4jC,IAIAx0a,OACAyE,SACAkL,SACA8ka,cAAA99Z,QACAi6D,SAAAj6D,QACA+7Z,QAAA/7Z,QACA7W,KAAAuO,OACAima,WAAAjma,OAAA4J,QACAy8Z,YAAArma,OAAA4J,QACArZ,GAAAyP,OACA0/R,SAAA1/R,OACAoqS,OAAA9hS,QACAoY,KAAA1gB,QAGA4K,SACA07Z,WAAA,WACA5ra,MAAAC,QAAA9L,KAAAu3B,SAAA,IAAAv3B,KAAAu3B,MAAAz3B,QAAAE,KAAAyS,OACAzS,KAAAu3B,MAAAh2B,KAAAvB,KAAAyS,OAEAzS,KAAAu3B,MAAAv3B,KAAAo3a,YAAA,GAGAxwM,aAAA,SAAApnN,GACA,IAAA3C,EAAA7c,KAEA,IAAAA,KAAAk3a,gBAAA,CACA,IAAA3va,OAAA,EAEAA,EADAiY,EAAAjf,OAAAi1a,aACA9na,IAAA1N,KAAAo3a,WAAAp3a,KAAAo3a,eAEA1pa,IAAA1N,KAAAw3a,YAAAx3a,KAAAw3a,WAEAx3a,KAAAge,MAAA,SAAAzW,EAAAiY,GACAxf,KAAAuc,UAAA,WACAM,EAAA+7C,SACA/7C,EAAA0gI,SAAA,4BAAA1gI,EAAAw2X,eAAA9rY,aAMAuY,QAAA,WACA9f,KAAAw1a,SAAAx1a,KAAAy3a,cAEA13Z,QAAA,WAEA/f,KAAAu3a,eACAv3a,KAAA0c,IAAAgqB,aAAA,gBAAA1mC,KAAA6wS,WAKAt1R,OACAhU,MAAA,SAAA+6P,GACAtiQ,KAAAu9I,SAAA,8BAAA+kH,OA8DAlyH,IACA,SAAAltI,EAAAqhD,EAAAhlD,GAEA,aACA,IAYA+0E,GAAiB7wE,OAZjB,WAA0B,IAAA8wE,EAAAv0E,KAAagX,EAAAu9D,EAAAt9D,eAA0BC,EAAAq9D,EAAAp9D,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAmBE,YAAA,cAAAc,OAC5Gq8D,EAAAgnO,QAAAhnO,EAAA8iW,aAAA,gBAAA9iW,EAAA8iW,aAAA,IACK7iW,cAAAD,EAAA6gW,aACAC,cAAA9gW,EAAAgnO,SACA+5H,aAAA/gW,EAAA4iW,YACL9/Z,OAAW2sJ,KAAA,WAAAuxQ,eAAAhhW,EAAAgjW,cAAA,QAAAhjW,EAAA4iW,UAAArI,gBAAAv6V,EAAA6gW,WAAA1za,GAAA6yE,EAAA7yE,MAAwHwV,EAAA,QAAaE,YAAA,qBAAAc,OAChJs8D,cAAAD,EAAA6gW,WACAE,aAAA/gW,EAAA4iW,UACAO,mBAAAnjW,EAAAgjW,cACAnzH,WAAA7vO,EAAAhnC,OACKl2B,OAAQk+Z,eAAA,WAAwBr+Z,EAAA,QAAaE,YAAA,uBAAiCm9D,EAAA6iW,WAAA7iW,EAAAijW,WAAAtga,EAAA,SAAgDktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoEhI,YAAA,wBAAAC,OAA6C7T,KAAA,WAAAqjN,cAAA,OAAAjkN,KAAA2xE,EAAA3xE,KAAA8wE,SAAAa,EAAA6gW,WAAAuC,aAAApjW,EAAA6iW,UAAAQ,cAAArjW,EAAAijW,YAAyI3uM,UAAW2sM,QAAA3pa,MAAAC,QAAAyoE,EAAAh9C,OAAAg9C,EAAAoyB,GAAApyB,EAAAh9C,MAAA,SAAAg9C,EAAAo9K,GAAAp9K,EAAAh9C,MAAAg9C,EAAA6iW,YAA6F13Z,IAAKupN,QAAA,SAAA1kD,GAA2B,IAAAszP,EAAAtjW,EAAAh9C,MAAAugZ,EAAAvzP,EAAAhkL,OAAAw3a,EAAAD,EAAAtC,QAAAjhW,EAAA,UAAAA,EAAA,WAAuF,GAAA1oE,MAAAC,QAAA+ra,GAAA,CAAuB,IAAAG,EAAAzjW,EAAAoyB,GAAAkxU,EAAA,MAAiCC,EAAAtC,QAAiBwC,EAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAA9ia,QAAlD,QAA4Fija,GAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAAv1a,MAAA,EAAA01a,GAAAjja,OAAA8ia,EAAAv1a,MAAA01a,EAAA,UAAoEzjW,EAAAh9C,MAAAwgZ,GAAexjW,EAAAqyJ,cAAAr5L,MAAA,SAAAg3I,GAA4ChwG,EAAAhnC,OAAA,GAAiB04L,KAAA,SAAA1hD,GAAyBhwG,EAAAhnC,OAAA,MAAoBr2B,EAAA,SAAcktK,aAAaxhL,KAAA,QAAAyhL,QAAA,UAAA98K,MAAAgtE,EAAA,MAAAn1D,WAAA,UAAoEhI,YAAA,wBAAAC,OAA6C7T,KAAA,WAAAqjN,cAAA,OAAAnzI,SAAAa,EAAA6gW,WAAAxya,KAAA2xE,EAAA3xE,MAAiFimO,UAAWthO,MAAAgtE,EAAA9hE,MAAA+ia,QAAA3pa,MAAAC,QAAAyoE,EAAAh9C,OAAAg9C,EAAAoyB,GAAApyB,EAAAh9C,MAAAg9C,EAAA9hE,QAAA,EAAA8hE,EAAA,OAAgG70D,IAAKupN,QAAA,SAAA1kD,GAA2B,IAAAszP,EAAAtjW,EAAAh9C,MAAAugZ,EAAAvzP,EAAAhkL,OAAAw3a,IAAAD,EAAAtC,QAAqE,GAAA3pa,MAAAC,QAAA+ra,GAAA,CAAuB,IAAArzH,EAAAjwO,EAAA9hE,MAAAula,EAAAzjW,EAAAoyB,GAAAkxU,EAAArzH,GAAsCszH,EAAAtC,QAAiBwC,EAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAA9ia,QAAAyvS,KAA0CwzH,GAAA,IAAAzjW,EAAAh9C,MAAAsgZ,EAAAv1a,MAAA,EAAA01a,GAAAjja,OAAA8ia,EAAAv1a,MAAA01a,EAAA,UAAoEzjW,EAAAh9C,MAAAwgZ,GAAexjW,EAAAqyJ,cAAAr5L,MAAA,SAAAg3I,GAA4ChwG,EAAAhnC,OAAA,GAAiB04L,KAAA,SAAA1hD,GAAyBhwG,EAAAhnC,OAAA,QAAoBgnC,EAAAz7D,OAAAC,SAAAw7D,EAAA9hE,MAAAyE,EAAA,QAAiDE,YAAA,uBAAiCm9D,EAAAQ,GAAA,WAAAR,EAAAz7D,OAAAC,QAAAw7D,EAAAO,MAAAP,EAAA18D,GAAA08D,EAAA6vF,GAAA7vF,EAAA9hE,UAAA,GAAA8hE,EAAAO,QAE5rDn9D,oBACjB4sC,EAAA,0CCtdAphD,EAAAiuE,YAAA,EACAjuE,EAAA66J,KAAA76J,EAAAk0P,IAAAl0P,EAAAslF,OAAA/6E,EAEA,IAEAuqd,EAAA/gZ,EAFY33E,EAAQ,SAMpB03E,EAAAC,EAFW33E,EAAQ,SAMnB24d,EAAAhhZ,EAFiB33E,EAAQ,SAQzB,SAAA23E,EAAA/rE,GAAsC,OAAAA,KAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAE7E,IAAAzC,GAAA,EAJAwuE,EAFc33E,EAAQ,SAMtBwZ,SAAAk+D,EAAAl+D,SACAy9F,EAAAyhX,EAAAl/c,QACAkqI,GAAA,EACAk1U,EAAA,WACA,IAAAC,EAAAxud,OAAA02D,eAAAtgE,MAAAi3E,EAAAl+D,SAAAs/c,GACA,sBAAAD,GAAAnhZ,EAAAl+D,QAAAsoZ,OAKA,OAJAp+Q,IACAA,GAAA,EACAhsE,EAAAl+D,QAAAsoZ,OAAApqV,EAAAl+D,QAAAinC,OAAAw2D,MAAA,EAAA0hX,EAAAn/c,SAAAy9F,EAAAv/B,EAAAl+D,QAAAsoZ,OAAApqV,EAAAl+D,QAAAinC,OAAAw2D,WAA6IxsE,OAAA,MAE7Ioub,EAAA7rd,MAAAvM,KAAA8E,YAIA2jF,EAAAtlF,EAAAslF,EAAA,SAAApoF,EAAAoI,GACA,IAAAlB,EAAA4wd,EAAA5rd,MAAAvM,KAAA8E,WACA,UAAAyC,QAAAmG,IAAAnG,EAAA,OAAAA,EAKA,IAHA,IAAA63D,EAAA/+D,EAAAQ,MAAA,KACA0jC,EAAAiyE,EAEAz1G,EAAA,EAAAmyB,EAAAksC,EAAAn+D,OAAmCF,EAAAmyB,EAAOnyB,IAAA,CAG1C,GADAwG,EAAAg9B,EADA66B,EAAAr+D,IAEAA,IAAAmyB,EAAA,SAAAxqB,EAAAnB,EAAAkB,GACA,IAAAlB,EAAA,SACAg9B,EAAAh9B,EAEA,UAGA8vP,EAAAl0P,EAAAk0P,IAAA,SAAAr2P,GACAw1G,EAAAx1G,GAAAw1G,GAGAwnD,EAAA76J,EAAA66J,KAAA,SAAA/xJ,GACAksd,EAAAlsd,GAAAksd,GAGAh1d,EAAA4V,SAAmBs+O,MAAA5uK,IAAAu1E,8BC9DnB,IAAA/yJ,EAAa1L,EAAQ,QACrB+4d,EAAgB/4d,EAAQ,QACxBg5d,EAAqBh5d,EAAQ,QAG7Bi5d,EAAA,gBACAC,EAAA,qBAGArgJ,EAAAntU,IAAAwgP,iBAAA/9O,EAkBAxK,EAAAC,QATA,SAAAoE,GACA,aAAAA,OACAmG,IAAAnG,EAAAkxd,EAAAD,EAEApgJ,QAAAxuU,OAAArC,GACA+wd,EAAA/wd,GACAgxd,EAAAhxd,0BCxBA,IAAAsyB,EAAat6B,EAAQ,QA+FrB2D,EAAAC,QA1BA,SAAAQ,GACA,IAAA+0d,KACA/0d,EAAAikM,iBAAA,eAAApsK,GACA,IAAAm9b,EAAAn9b,EAAAo0K,kBACA7lM,EAAA4ud,EAAA,IAAAA,EAAAj3d,GAAA,IAAA85B,EAAAq0K,cACA6oR,EAAA3ud,GAAA2ud,EAAA3ud,QAAAxI,KAAAi6B,KAEA3B,EAAA4E,KAAAi6b,EAAA,SAAAE,EAAA7ud,GAKA,IAJA,IAlDAkzX,EAAA47F,EACAvoR,EAiDAx/L,GAlDAmsX,EAkDApjW,EAAAlpB,IAAAiod,EAAA,SAAAp9b,GACA,OAAAA,EAAAtP,YAnDA2sc,EAoDKD,EAAA,GAAA50d,IAAA,uBAnDLssM,KACAz2K,EAAA4E,KAAAw+V,EAAA,SAAAnsX,GACAA,EAAA2tB,KAAA3tB,EAAA0tB,aAAA,kBAAAj3B,EAAA+4B,GAEA,IAAAw4b,EAAA,MAAAhod,EAAAqzD,QAAA7jC,GACAgwK,EAAAwoR,GAAAxoR,EAAAwoR,OAEArud,MAAAlD,IACA+oM,EAAAwoR,GAAAv3d,KAAAgG,OAIA01X,EAAA,GAAAtsX,IAAAssX,EAAA,GAAAz+V,aAAA,kBAAAj3B,EAAA+4B,GAOA,IANA,IAYAvvB,EAZA+nd,EAAA,MAAA77F,EAAA,GAAA94T,QAAA7jC,GACAhc,EAAA,EACAtc,EAAAyxC,IACAxxC,GAAA,IACApG,EAAAyuM,EAAAwoR,GAAA73d,OAEAF,EAAA,EAAmBA,EAAAc,EAASd,IAC5BiH,EAAAD,KAAAC,MAAAsoM,EAAAwoR,GAAA/3d,IACAkH,EAAAF,KAAAE,MAAAqoM,EAAAwoR,GAAA/3d,IACAujB,GAAAgsL,EAAAwoR,GAAA/3d,GAeA,OATAgQ,EADA,QAAA8nd,EACA7wd,EACK,QAAA6wd,EACL5wd,EACK,YAAA4wd,EACLv0c,EAAAziB,EAEAyiB,EAGA,IAAAziB,EAAA4sK,IAAA19J,KAgBAhQ,EAAA,EAAmBA,EAAA63d,EAAA33d,OAAuBF,IAC1C63d,EAAA73d,GAAA65V,aAAAg+H,EAAA73d,GAAAmrB,UAIA,IAAAnrB,EAAA,EAAmBA,EAAA63d,EAAA33d,OAAuBF,IAC1C63d,EAAA73d,GAAAmsL,YAAA0rS,EACAA,EAAA73d,GAAAs2X,aAAA,IAAAt2X,IAAA63d,EAAA73d,GAAA6uM,kBACAgpR,EAAA73d,GAAAg8K,QAAAjsK,EAAAwvR,gBACAs4L,EAAA73d,GAAAwhY,WAAAq2F,EAAA,2CC1FAr5d,EAAAkvB,EAAA81B,EAAA,sBAAAmhC,IAAAnmF,EAAAkvB,EAAA81B,EAAA,sBAAAyhC,IAAA,IAAAy/K,EAAA,KAeA,IAAAszN,EAAA,KA6BA,SAAAjpd,EAAAiiC,EAAAjvC,MACA,IAAAk2d,EAAAnpd,SAAAC,cAAAiiC,GAIA,OAHAnoC,OAAAC,KAAA/G,GAAAgH,QAAAC,IACAivd,EAAAjvd,GAAAjH,EAAAiH,KAEAivd,EAGA,SAAAl8a,EAAAk8a,EAAAl4d,EAAAm4d,GAQA,OAJAtpd,OAAAmtC,iBAAAk8a,EAAAC,GAAA,QACApgd,QAAA,SAGA/X,GAGA,SAAAo4d,EAAAF,GACA,IAAAnpd,SAAAmuC,gBAAAwF,SAAAw1a,GACA,OACAG,UAAA,EACAxgZ,UAAA,GAIA,IAAAp0C,EAAAy0b,EACA,KAAAz0b,IAAA10B,UAAA,CACA,YAAAitC,EAAAvY,EAAA,WACA,OACA40b,UAAA,EACAxgZ,UAAA,GAGAp0C,IAAAgI,WAGA,OACA4sb,UAAA,EACAxgZ,UAAA,GAIA,IAAA0nJ,EAAA,uWAEA,IAAAjtG,EAAA,EACA76G,EAAA,KAEA,SAAAmtE,EAAAszY,EAAA72d,GAOA,GANA62d,EAAAI,8BACAJ,EAAAI,4BAuGA,WAEA,IAAAzgZ,SAAOA,EAAAwgZ,YAAqBD,EAAAl5d,MAC5B24E,IAAA34E,KAAAq5d,uBACAF,GAAAn5d,KAAAs5d,sBACAC,EAAAv5d,MACAA,KAAA4e,iBAAA,SAAAitM,GAAA,IAEA7rN,KAAAq5d,oBAAA1gZ,EACA6gZ,EAAAx5d,QAhHAwK,KAAAwud,KAGAA,EAAAS,qBAIA,GADAT,EAAAS,wBACA9pd,OAAAu7C,eAAA,CACA,IAAApW,YAAWA,EAAAqI,gBAA4B67a,EACvCU,EAAA,IAAAxua,eAAA,MACA8ta,EAAAW,gCACAX,EAAAW,+BAAA,EACAX,EAAAlkb,iBAAAkkb,EAAA77a,oBAIAq8a,EAAAR,MAIAG,SAAWA,EAAAxgZ,YAAqBugZ,EAAAF,GAChCA,EAAAW,+BAAA,IAAAR,IAAA,IAAAxgZ,EACAqgZ,EAAAY,oBAAAF,EACAA,EAAAlya,QAAAwxa,QACK,GAAAA,EAAA3mS,aAAA2mS,EAAAp6c,iBAELo6c,EAAAa,iCAAA,WACAL,EAAAR,IAEAA,EAAA3mS,YAAA,WAAA2mS,EAAAa,kCACAhqd,SAAA+O,iBAAA,qBAAAo6c,EAAAI,kCAQA,GANAhmW,IACA76G,EAjGA,SAAAuhd,GACA,IAAAvhd,EAAA1I,SAAAC,cAAA,SASA,OARAyI,EAAA/U,KAAA,WAEA+U,EAAAioN,WACAjoN,EAAAioN,WAAAx0L,QAAA8tb,EAEAvhd,EAAAtI,YAAAJ,SAAAglC,eAAAilb,KAEAjqd,SAAA0zC,cAAA,SAAA1zC,SAAAG,MAAAC,YAAAsI,GACAA,EAuFAwhd,CAAA15P,IAwGA,SAAA24P,GACA,IAAA5qd,EAAA0uC,EAAAk8a,EAAA,YACA5qd,GAAA,WAAAA,IACA4qd,EAAAzgd,MAAAnK,SAAA,YAGA4qd,EAAAgB,wBAAA5rd,EACA4qd,EAAAiB,mBAEA,IAAAC,EAAApqd,EAAA,OACAixC,UAAA,oBAEAu7X,EAAAxsa,EAAA,OACAixC,UAAA,0BAEAo5a,EAAArqd,EAAA,OACAsqd,EAAAtqd,EAAA,OACAixC,UAAA,4BAEAu7X,EAAArsa,YAAAkqd,GACAD,EAAAjqd,YAAAqsa,GACA49C,EAAAjqd,YAAAmqd,GACApB,EAAA/od,YAAAiqd,GAEAlB,EAAAM,qBACAY,WACA59C,SACA69C,cACAC,YAGAb,EAAAP,GACAA,EAAAp6c,iBAAA,SAAAitM,GAAA,GAEAmtQ,EAAAiB,iBACAjhd,MAAAggd,EAAAlkb,YACA77B,OAAA+/c,EAAA77a,cA1IAk9a,CAAArB,GAEAA,EAAAK,oBAAAH,EAAAF,GAAArgZ,SACAhpE,OAAAk2C,iBAAA,CACA,IAAAy0a,EAAA,IAAAz0a,iBAAAmza,EAAAI,6BACAkB,EAAA9ya,QAAA33C,UACAswC,YAAA,EACAsH,WAAA,EACAC,eAAA,EACAC,SAAA,IAEAqxa,EAAAuB,6BAAAD,EAKAtB,EAAAS,qBAAAl4d,KAAAY,GACAixH,IAGA,SAAAptC,EAAAgzY,EAAA72d,GAEA,GAAA62d,EAAA1mS,aAAA0mS,EAAAl6c,oBAGA,OAFAk6c,EAAA1mS,YAAA,WAAA0mS,EAAAa,uCACAhqd,SAAAiP,oBAAA,qBAAAk6c,EAAAI,6BAIA,IAAA5zY,EAAAwzY,EAAAS,qBACAj0Y,IAGAA,EAAAlkF,OAAAkkF,EAAA1lF,QAAAqC,GAAA,GAEAqjF,EAAAvkF,SACA+3d,EAAAY,qBACAZ,EAAAY,oBAAA/ua,UAAAmua,GACAA,EAAAY,oBAAAhya,aACAoxa,EAAAY,oBAAA,OAEAZ,EAAAuB,+BACAvB,EAAAuB,6BAAA3ya,aACAoxa,EAAAuB,6BAAA,MAEAvB,EAAAl6c,oBAAA,SAAA+sM,GACAmtQ,EAAAxsb,YAAAwsb,EAAAM,oBAAAY,UACAlB,EAAAM,oBAAA,MAEAN,EAAAS,qBAAA,SAGArmW,GAAA76G,GACAA,EAAAg0B,WAAAC,YAAAj0B,IA6BA,SAAAszM,IAnMA,IAAAnqN,EAfAS,EAoNAo3d,EAAAv5d,MACAA,KAAAw6d,iBAtMA94d,EAuMA1B,KAAAw6d,eAtMAzB,IACAA,GACAppd,OAAA8qd,sBACA9qd,OAAA+qd,4BACA/qd,OAAAgrd,yBACA,SAAAj5d,GACA2K,aAAA3K,KAEA8I,KAAAmF,SAGAopd,EAAAr3d,IA6LA1B,KAAAw6d,gBAxNAr4d,EAwNA,MACA,IAAAilO,EAhCA,SAAA4xP,GACA,IAAAhgd,MAAOA,EAAAC,UAAgB+/c,EAAAiB,iBACvBnlb,YAAOA,EAAAqI,gBAA4B67a,EACnC,OAAAlkb,IAAA97B,GAAAmkC,IAAAlkC,GAEAD,MAAA87B,EACA77B,OAAAkkC,GAGA,KAuBAy9a,CAAA56d,MACAonO,IACApnO,KAAAi6d,gBAAA7yP,EACAoyP,EAAAx5d,SA3NAylQ,IACAA,GACA91P,OAAA81C,uBACA91C,OAAAkjW,6BACAljW,OAAAijW,0BACA,SAAAzwW,GACA,OAAAmK,WAAAnK,EAAA,MAEAqI,KAAAmF,SAEA81P,EAAAtjQ,IAsNA,SAAAq3d,EAAAR,GACAA,EAAAS,qBAAA3vd,QAAA3H,IACAA,EAAAuJ,KAAAstd,KA4CA,SAAAO,EAAAP,GACA,IAAA18C,OAAOA,EAAA69C,cAAAC,YAAgCpB,EAAAM,qBAGhCx3a,YAAA+4a,EAAAh5a,aAAAi5a,GAAsCV,GACtCtlb,YAAAimb,EAAA59a,aAAA69a,EAAAl5a,YAAAm5a,EAAAp5a,aAAAq5a,GAA2E5+C,EAGlF89C,EAAAj8a,WAAA08a,EACAT,EAAAl8a,UAAA48a,EACAX,EAAA5hd,MAAAS,MAAA+hd,EAAA,OACAZ,EAAA5hd,MAAAU,OAAA+hd,EAAA,OACA1+C,EAAAn+X,WAAA88a,EACA3+C,EAAAp+X,UAAAg9a,yBC7RA,IAAArhc,EAAat6B,EAAQ,QAErBisM,EAAiBjsM,EAAQ,QAsBzB47d,GAAA,oCAmBA,SAAAC,EAAAjtM,EAAA92Q,GACA82Q,IAAA7rR,QACA,IAAA+4d,EAAAxhc,EAAAlpB,IAAAw9Q,EAAA3iF,EAAA4hN,cACA/1Y,UAAA/U,QACA,IAAAg5d,EAAAzhc,EAAAlpB,IAAA0G,EAAAm0L,EAAA4hN,cACA,gBAAAjrZ,EAAA2rD,GACAj0B,EAAA4E,KAAA0vP,EAAA,SAAAvrR,EAAAgK,GAMA,IALA,IAAA2ud,GACA34d,OACA44d,QAAAH,EAAAzud,IAGAsmB,EAAA,EAAqBA,EAAA7b,EAAApW,OAAkBiyB,IACvCqoc,EAAAlkd,EAAA6b,IAAAtwB,EAAA04d,EAAApoc,GAGA/wB,EAAAuJ,KAAAoiD,EAAAyta,MAoBA,IAAA/pG,EAAA4pG,GAzDA,wCAyDA,kCAsEAj4d,EAAAs4d,iBAvHA,SAAAC,GACA,OAAA7hc,EAAA/5B,QAAAq7d,EAAAO,IAAA,GAuHAv4d,EAAAi4d,iBACAj4d,EAAAquX,cACAruX,EAAAouX,wBA5DA,SAAAoqG,EAAAC,EAAAC,GACA,gBAAAC,GACA,IAcAC,EAdAhrd,GACAu0K,SACA+sJ,YAOA,GAJAupJ,EAAA,SAAA/9I,GACA9sU,EAAAshU,QAAAwL,EAAAj7U,YAGAk5d,EACA,OAAA/qd,EAGAird,EAAAF,EAAA/qd,GAGA,GACAgrd,GAAA,EACAJ,EAAAM,SACKF,GAEL,SAAAE,EAAA/ia,IAUA,SAAAA,EAAAnoD,GACA,OAAA8oB,EAAA/5B,QAAAiR,EAAAu0K,MAAApsH,IAAA,EAVAgja,CAAAhja,EAAAnoD,IAaA,SAAAmoD,EAAAnoD,GACA,IAAAord,GAAA,EAMA,OALAP,EAAA,SAAA/9I,GACAhkT,EAAA4E,KAAAo9b,EAAA3ia,EAAA2kR,OAAA,SAAAu+I,GACArrd,EAAAshU,QAAAwL,EAAAj7U,MAAAw5d,KAAAD,GAAA,OAGAA,EApBAE,CAAAnja,EAAAnoD,KACAird,EAAA9ia,EAAAnoD,GACAgrd,GAAA,GAIA,OAAAhrd,GAiBA,SAAAird,EAAA9ia,EAAAnoD,GACAA,EAAAu0K,MAAA/jL,KAAA23D,GACA0ia,EAAA,SAAA/9I,GACAhkT,EAAA4E,KAAAo9b,EAAA3ia,EAAA2kR,OAAA,SAAAu+I,GACArrd,EAAAshU,QAAAwL,EAAAj7U,MAAAw5d,IAAA,6CC9IA,IAAAtuS,EAAcvuL,EAAQ,QACtBs4N,EAAct4N,EAAQ,QACtBg4S,EAAeh4S,EAAQ,QACvBwsM,EAAWxsM,EAAQ,QACnBm3M,EAAgBn3M,EAAQ,QACxB+8d,EAAkB/8d,EAAQ,QAC1B6nK,EAAqB7nK,EAAQ,QAC7B+gE,EAAqB/gE,EAAQ,QAC7Bk8L,EAAel8L,EAAQ,OAARA,CAAgB,YAC/Bg9d,OAAA1yd,MAAA,WAAAA,QAKA2yd,EAAA,WAA8B,OAAAx8d,MAE9BkD,EAAAC,QAAA,SAAAs5d,EAAA9mX,EAAA/yB,EAAAn+C,EAAAyxE,EAAAwmX,EAAApmX,GACAgmX,EAAA15Y,EAAA+yB,EAAAlxE,GACA,IAeA1oB,EAAAhS,EAAAs9J,EAfAs1T,EAAA,SAAAryd,GACA,IAAAiyd,GAAAjyd,KAAAktC,EAAA,OAAAA,EAAAltC,GACA,OAAAA,GACA,IAVA,OAWA,IAVA,SAUA,kBAA6C,WAAAs4E,EAAA5iF,KAAAsK,IACxC,kBAA4B,WAAAs4E,EAAA5iF,KAAAsK,KAEjCmpU,EAAA99N,EAAA,YACAinX,EAdA,UAcA1mX,EACA2mX,GAAA,EACArlb,EAAAilb,EAAAv8d,UACA48d,EAAAtlb,EAAAikJ,IAAAjkJ,EAnBA,eAmBA0+D,GAAA1+D,EAAA0+D,GACA6mX,EAAAD,GAAAH,EAAAzmX,GACA8mX,EAAA9mX,EAAA0mX,EAAAD,EAAA,WAAAI,OAAArvd,EACAuvd,EAAA,SAAAtnX,GAAAn+D,EAAA0N,SAAA43a,EAwBA,GArBAG,IACA51T,EAAA/mG,EAAA28Z,EAAAvxd,KAAA,IAAA+wd,OACA7yd,OAAA1J,WAAAmnK,EAAA5iI,OAEA2iI,EAAAC,EAAAosK,GAAA,GAEA3lJ,GAAA,mBAAAzmB,EAAAo0B,IAAAsQ,EAAA1kC,EAAAo0B,EAAA+gS,IAIAI,GAAAE,GAjCA,WAiCAA,EAAAl6d,OACAi6d,GAAA,EACAE,EAAA,WAAkC,OAAAD,EAAApxd,KAAA1L,QAGlC8tL,IAAAx3E,IAAAimX,IAAAM,GAAArlb,EAAAikJ,IACAsQ,EAAAv0J,EAAAikJ,EAAAshS,GAGArmR,EAAA/gG,GAAAonX,EACArmR,EAAA+8H,GAAA+oJ,EACAtmX,EAMA,GALAn6F,GACAqV,OAAAwrc,EAAAG,EAAAJ,EA9CA,UA+CA9yd,KAAA6yd,EAAAK,EAAAJ,EAhDA,QAiDAz3a,QAAA83a,GAEA1mX,EAAA,IAAAvsG,KAAAgS,EACAhS,KAAAytC,GAAA+/P,EAAA//P,EAAAztC,EAAAgS,EAAAhS,SACK8tN,IAAAQ,EAAAR,EAAAG,GAAAukQ,GAAAM,GAAAlnX,EAAA55F,GAEL,OAAAA,yBCnEA,IAAA8d,EAAat6B,EAAQ,QAErB67J,EAAqB77J,EAAQ,QAE7Bk1Y,EAAiBl1Y,EAAQ,QAIzBy2M,EAFoBz2M,EAAQ,QAE5By2M,oBAEAx7L,EAAcjb,EAAQ,QAoBtB,SAAA29d,EAAA3lc,EAAAhmB,GACA,IAAAiB,EAAA+kB,EAAA+tC,eACAyiI,EAAAxwK,EAAAvzB,IAAA,aAOA,OAJA,MAAA+jM,IACAv1L,EAAAkF,KAAAqwL,GAGAv1L,EA2CA,SAAA2qd,EAAAC,EAAAp+b,GAEAA,EAAAgoC,UAAA,SAAAq2Z,GACAxjc,EAAA4E,KAAA4+b,EAAAC,UAAA,SAAA/uV,GACA8uV,EAAAprd,QAAAmrd,EAAA74Z,WAAAgqE,EAAA3rI,MAAA,yBAWA,SAAAixT,EAAAjwT,EAAA25d,GACA,IAAAv+b,EAAA,IAAAxkB,EAAAskB,MAMA9+B,KAAAk1Y,YAAA,IAAA95O,EAAAx3J,EAAAe,SAMA3E,KAAAm1Y,iBACA50Y,OAAAg9d,EAAAv+b,EAAA,MAOAh/B,KAAAg/B,QAMAh/B,KAAAw9d,aAAAD,EAQAv9d,KAAAy9d,eAGA5pK,EAAA3zT,WACAC,YAAA0zT,EACAh8I,KAAA,SAAAulT,EAAAz5d,EAAAC,EAAA85d,EAAA95b,GACA,IAAA+5b,EAAA,QAAAP,EAAA9ta,SAGAx+C,EAAAssd,EAAAlxc,SAAAkxc,EAAAlxc,UACAyxc,GAAAh6d,EAAAkvD,eACAvD,SAAA,SACAwG,QAAA,OACK,SAAAg6I,GACLh/L,GAAAg/L,EAAAF,oBAAAwtR,IACAtsd,EAAAg/L,EAAA5jL,aAGA,IAAA5R,EAAA8id,EAAA/uc,iBACA2Q,EAAAh/B,KAAAg/B,MACAztB,EAAA+I,EAAA/I,MACA+jY,GACAlnY,SAAAkM,EAAAlM,SACAmD,UAGAytB,EAAAimC,QAAA,IAAArhC,EACA5E,EAAAj8B,KAAAuyY,GAEA96X,EAAAoqB,YAAA5F,EAAAs2W,EAAA8nF,GAGAp+b,EAAAkG,YACA,IAAA04b,GAAA,aACAC,GAAA,wBACAC,GAAA,SACAC,GAAA,oBACA3tR,EAAAv2K,EAAAk7B,gBACAl7B,EAAA4E,KAAAnkB,EAAAuxK,QAAA,SAAAt9C,GAMA,IAAAyvV,EAAA5tR,EAAApsM,IAAAuqI,EAAA3rI,OAAAwtM,EAAAprJ,IAAAupF,EAAA3rI,KAAA,IAAA4X,EAAAskB,OACAm/b,EAAA,IAAAzjd,EAAA64U,cACAtrU,OACAuvN,YAGA0mP,EAAA/+b,IAAAg/b,GACA,IAOAp+L,EANA/3F,GADAo2R,EAAAd,EAAAtzG,eAAAv7O,EAAA3rI,OAAAw6d,GACA/9b,SAAAu+b,GACA3mK,EAAAinK,EAAA7+b,SAAAw+b,GACArrd,EAAA0qd,EAAAp1R,GACAn4B,EAAAutT,EAAAjmK,GACAlxP,EAAAm4Z,EAAA7+b,SAAAy+b,GACAluT,EAAAsuT,EAAA7+b,SAAA0+b,GAGA,GAAAjtd,EAAA,CACA+uR,EAAA/uR,EAAAwtR,YAAA/vJ,EAAA3rI,MAKA,IAAA6+B,EAAA3wB,EAAAojD,cAAA2rO,EAAA,YAEAp+P,IACAjvB,EAAAkF,KAAA+pB,GAIA5H,EAAA4E,KAAA8vG,EAAA25E,WAAA,SAAA0K,GACA,eAAAA,EAAApvN,KAAA,CAIAy6d,EAAAl2c,MAAAuvN,MAAA/1O,KAAA,IAAAiZ,EAAA4f,SACArS,OACAqV,OAAAw1L,EAAA9mC,aAIA,QAAA/qL,EAAA,EAAuBA,GAAA6xN,EAAApK,UAAAoK,EAAApK,UAAAvnN,OAAA,GAA0DF,IACjFk9d,EAAAl2c,MAAAuvN,MAAA/1O,KAAA,IAAAiZ,EAAA4f,SACArS,OACAqV,OAAAw1L,EAAApK,UAAAznN,UAKAk9d,EAAA3hb,SAAA9pC,GACAyrd,EAAA1ld,MAAA82B,eAAA,EACA4ub,EAAAjmT,SAAA,EAEA,IAAA0hC,EAAA3zI,EAAA/hE,IAAA,QACA21M,EAAA/pC,EAAA5rK,IAAA,QACAm6d,EAAArtd,GAAArG,MAAAqG,EAAA9M,IAAA8M,EAAA0tB,aAAA,SAAAqhQ,IACAt4N,EAAAz2D,KAAA0uB,cAAAqgQ,GAKA,GAAA89L,GAAAQ,IAAAzkR,GAAAC,IAAApyI,KAAAmyI,UAAA,CACA,IACAtzI,EADArQ,EAAA4na,EAAApvV,EAAA3rI,KAAAi9R,IAGA/uR,GAAA+uR,GAAA,KACAz5N,EAAAg3Z,GAGA,IAAA10L,EAAA,IAAAluR,EAAA0wB,MACA98B,SAAAmgI,EAAAzqH,OAAAxhB,QACAiP,OAAA,EAAAA,EAAA,KAAAA,EAAA,IACA6yB,GAAA,GACAD,QAAA,IAEA3pB,EAAA2rD,cAAAuiO,EAAAnwR,MAAAmwR,EAAAnjO,cAAkEQ,EAAA6pG,GAClExpG,eACAC,eAAAtQ,EACAuQ,YAAAioE,EAAA3rI,KACA4jE,gBAAA,IAEA9wB,UAAA,SACAC,kBAAA,WAEAqob,EAAA/+b,IAAAypQ,GAKA,GAAA53R,EACAA,EAAA+vB,iBAAAg/P,EAAAm+L,OACO,CACP,IAAAE,EAAAd,EAAAtzG,eAAAv7O,EAAA3rI,MAEAq7d,EAAAzja,WACA5H,cAAA,MACA88I,SAAA0tR,EAAAlla,eACAt1D,KAAA2rI,EAAA3rI,KACA2rI,OAAA2vV,KAAAjhd,aAIA+gd,EAAAV,YAAAU,EAAAV,eACA/7d,KAAAgtI,GACA/zH,EAAAmrD,cAAAq4Z,EAAAruT,GACAmnL,qBAAAsmI,EAAAp5d,IAAA,kBAEAg7B,EAAAC,IAAA++b,KAGAh+d,KAAAy1Y,kBAAA2nF,EAAAz5d,EAAAC,GAnPA,SAAAkwT,EAAAspK,EAAAp+b,EAAAp7B,EAAA85d,GACA1+b,EAAAqxB,IAAA,SACArxB,EAAAqxB,IAAA,aAEA+sa,EAAAp5d,IAAA,kBACAg7B,EAAAtf,GAAA,uBACAo0S,EAAA2pK,gBAAA,IAEAz+b,EAAAtf,GAAA,iBAAAvb,GACA,GAAA2vT,EAAA2pK,eAAA,CAIA3pK,EAAA2pK,gBAAA,EAGA,IAFA,IAAAh9d,EAAA0D,EAAA5D,QAEAE,EAAA68d,WACA78d,IAAA8oC,OAGA,GAAA9oC,EAAA,CAIA,IAAA62D,GACA9zD,MAAA,QAAA45d,EAAA9ta,SAAA,4BACA2H,MAAAp9B,EAAAlpB,IAAAlQ,EAAA68d,UAAA,SAAA/uV,GACA,OACA3rI,KAAA2rI,EAAA3rI,KACAmJ,KAAA2xd,EAAAxoa,QAIAoC,EAAA8la,EAAA9ta,SAAA,MAAA8ta,EAAA17d,GACAkC,EAAAQ,eAAAkzD,GACA6la,EAAAC,EAAAp+b,QAkNAo/b,CAAAp+d,KAAAo9d,EAAAp+b,EAAAp7B,EAAA85d,GACAP,EAAAC,EAAAp+b,IAEAv6B,OAAA,WACAzE,KAAAg/B,MAAAkG,YAEAllC,KAAAk1Y,YAAAnwY,UAEA/E,KAAAm1Y,oBAEAM,kBAAA,SAAA2nF,EAAAz5d,EAAAC,GACA,IAAA0W,EAAA8id,EAAA/uc,iBACAg8B,EAAArqD,KAAAk1Y,YACAnmB,EAAA/uX,KAAAm1Y,gBACApmB,EAAA5nV,UAAAi2b,EAAAp5d,IAAA,cACA+qX,EAAAjlW,KAAAxP,EAAAwuB,UAEAuhB,EAAA6xG,OAAAkhU,EAAAp5d,IAAA,aACA,IAAAsrD,EAAA8ta,EAAA9ta,SAEA,SAAA+ua,IACA,IAAA/ma,GACA9zD,KAAA,UACAovD,cAAAtD,GAGA,OADAgI,EAAAhI,EAAA,MAAA8ta,EAAA17d,GACA41D,EAGAjN,EAAAgG,IAAA,OAAA3wC,GAAA,eAAAquB,EAAAC,GACAhuC,KAAAy9d,gBAAA,EACAhpF,EAAA3lB,gBAAAC,EAAAhhV,EAAAC,GACApqC,EAAAQ,eAAAy1B,EAAAnwB,OAAA20d,KACAtwb,KACAC,SAEKhuC,MACLqqD,EAAAgG,IAAA,QAAA3wC,GAAA,gBAAAoK,EAAAw1J,EAAAC,GASA,GARAv/K,KAAAy9d,gBAAA,EACAhpF,EAAAzlB,iBAAAD,EAAAjlW,EAAAw1J,EAAAC,GACA37K,EAAAQ,eAAAy1B,EAAAnwB,OAAA20d,KACAv0c,OACAklD,QAAAswG,EACApwG,QAAAqwG,KAGAv/K,KAAAw9d,aAAA,CACA,IAAAx+b,EAAAh/B,KAAAg/B,MACAztB,EAAAytB,EAAAztB,MACAytB,EAAA25B,SAAA,SAAAl4D,GACA,SAAAA,EAAA+C,MACA/C,EAAAsC,KAAA,WAAAwO,EAAA,KAAAA,EAAA,SAIKvR,MACLqqD,EAAA4xG,kBAAA,SAAA93J,EAAAE,EAAAE,GACA,OAAA+V,EAAAyvB,uBAAAW,QAAArmC,EAAAE,KAAAyxM,EAAA7xM,EAAAP,EAAAw5d,OAIA,IAAAn6d,EAAA4wT,EACA3wT,EAAAC,QAAAF,uCC3VA,IAAA+xE,EAAYz1E,EAAQ,QAEpB,SAAAk+O,EAAAlwO,GACA,OAAA4/H,mBAAA5/H,GACAhF,QAAA,aACAA,QAAA,aACAA,QAAA,YACAA,QAAA,aACAA,QAAA,YACAA,QAAA,aACAA,QAAA,aAUArF,EAAAC,QAAA,SAAAgL,EAAAwjB,EAAA23W,GAEA,IAAA33W,EACA,OAAAxjB,EAGA,IAAAmwd,EACA,GAAAh1F,EACAg1F,EAAAh1F,EAAA33W,QACG,GAAAqjD,EAAAs4H,kBAAA37K,GACH2sc,EAAA3sc,EAAA/pB,eACG,CACH,IAAA66E,KAEAzN,EAAAlrE,QAAA6nB,EAAA,SAAApkB,EAAAxD,GACA,OAAAwD,QAAA,IAAAA,IAIAynE,EAAAlpE,QAAAyB,GACAxD,GAAA,KAEAwD,MAGAynE,EAAAlrE,QAAAyD,EAAA,SAAAR,GACAioE,EAAAi4H,OAAAlgM,GACAA,IAAAwxd,cACSvpZ,EAAAp1E,SAAAmN,KACTA,EAAAG,KAAAE,UAAAL,IAEA01E,EAAAlhF,KAAAk8O,EAAA1zO,GAAA,IAAA0zO,EAAA1wO,SAIAuxd,EAAA77Y,EAAAr8E,KAAA,KAOA,OAJAk4d,IACAnwd,KAAA,IAAAA,EAAArO,QAAA,cAAAw+d,GAGAnwd,yBChEA,IAAA0rB,EAAat6B,EAAQ,QAErBsrC,EAAkBtrC,EAAQ,QAE1Bm4C,EAAiBn4C,EAAQ,QAqDzB,IAAAqsM,EAAA/xK,EAAA+xK,kBACA4yR,EAAA,aACAC,GACAC,IAAA,QACAC,IAAA,OACAC,IAAA,OACAC,IAAA,SACAC,IAAA,SAGA,SAAAl6S,EAAAniL,GACA,aAAAA,EAAA,IAAAA,EAAA,IAAA8F,QAAAi2d,EAAA,SAAAnub,EAAA6vB,GACA,OAAAu+Z,EAAAv+Z,KAIA,IAAA6+Z,GAAA,6BAEAC,EAAA,SAAAC,EAAAC,GACA,UAAWD,GAAA,MAAAC,EAAA,GAAAA,GAAA,KA+EX,SAAAhhU,EAAA7tH,EAAAxuC,GAEA,aAAAkzG,OAAA,EAAAlzG,GADAwuC,GAAA,IACApvC,QAAAovC,EAyCA,IAAAu6R,EAAA//R,EAAA+/R,aACAx0K,EAAAvrH,EAAA/C,gBACA3kC,EAAAs0N,UA1KA,SAAApzN,GACA,OAAAoG,MAAApG,GACA,KAGAA,KAAA,IAAAxD,MAAA,MACA,GAAA0H,QAAA,iCAA2C,QAAAlE,EAAApD,OAAA,MAAAoD,EAAA,QAqK3ClB,EAAA0lN,YA5JA,SAAAx4K,EAAA8ub,GASA,OARA9ub,MAAA,IAAA/3B,cAAA/P,QAAA,iBAAAY,EAAAi2d,GACA,OAAAA,EAAAptb,gBAGAmtb,GAAA9ub,IACAA,IAAA6O,OAAA,GAAAlN,cAAA3B,EAAA/tC,MAAA,IAGA+tC,GAoJAltC,EAAAyoM,oBACAzoM,EAAAyhL,aACAzhL,EAAA4nT,UArHA,SAAA54S,EAAAktd,EAAA5hP,GACA5jN,EAAA/tB,QAAAuzd,KACAA,OAGA,IAAAC,EAAAD,EAAAp+d,OAEA,IAAAq+d,EACA,SAKA,IAFA,IAAA7yS,EAAA4yS,EAAA,GAAA5yS,UAEA1rL,EAAA,EAAiBA,EAAA0rL,EAAAxrL,OAAkBF,IAAA,CACnC,IAAAw3Q,EAAAwmN,EAAAh+d,GACAoR,IAAA5J,QAAAy2d,EAAAzmN,GAAAymN,EAAAzmN,EAAA,IAGA,QAAA2mN,EAAA,EAAyBA,EAAAI,EAAuBJ,IAChD,QAAAz2c,EAAA,EAAmBA,EAAAgkK,EAAAxrL,OAAkBwnB,IAAA,CACrC,IAAAlb,EAAA8xd,EAAAH,GAAAzyS,EAAAhkK,IACAtW,IAAA5J,QAAAy2d,EAAAD,EAAAt2c,GAAAy2c,GAAAzhP,EAAA74D,EAAAr3K,MAIA,OAAA4E,GA6FAhP,EAAA4/T,gBAjFA,SAAA5wT,EAAAooU,EAAA98F,GAIA,OAHA5jN,EAAA4E,KAAA87S,EAAA,SAAAhzU,EAAAwC,GACAoI,IAAA5J,QAAA,IAAwBwB,EAAA,IAAY0zO,EAAA74D,EAAAr9K,QAEpC4K,GA8EAhP,EAAAq1U,iBAnEA,SAAA5/S,EAAApD,GAKA,IAAArvB,GAJAyyB,EAAAiB,EAAAn6B,SAAAk5B,IACAzyB,MAAAyyB,EACApD,gBACGoD,OACHzyB,MACA3C,EAAAo1B,EAAAp1B,KAGA,OAFAgyB,EAAAoD,EAAApD,aAEArvB,EAIA,YAAA3C,EAAA,oJAAoKohL,EAAAz+K,GAAA,KAA2CqvB,GAAA,iIAA4IovJ,EAAAz+K,GAAA,KAA2CqvB,GAAA,gBAHtY,IA0DAryB,EAAAmvM,WArCA,SAAAngM,EAAA5K,EAAAg4d,GACA,SAAAptd,GAAA,UAAAA,GAAA,YAAAA,GAAA,cAAAA,GAAA,SAAAA,IACAA,EAAA,eAGA,IAAA+vJ,EAAAxqH,EAAAk0H,UAAArkK,GACAi4d,EAAAD,EAAA,SACAh7d,EAAA29J,EAAA,MAAAs9T,EAAA,cACAxvb,EAAAkyH,EAAA,MAAAs9T,EAAA,aACA/wc,EAAAyzI,EAAA,MAAAs9T,EAAA,UACAvnd,EAAAiqJ,EAAA,MAAAs9T,EAAA,WACA7yc,EAAAu1I,EAAA,MAAAs9T,EAAA,aACArnd,EAAA+pJ,EAAA,MAAAs9T,EAAA,aACAt/T,EAAAgC,EAAA,MAAAs9T,EAAA,kBAEA,OADArtd,IAAA5J,QAAA,KAAA21J,EAAAluH,EAAA,IAAAznC,QAAA,IAAAynC,GAAAznC,QAAA,OAAAhE,GAAAgE,QAAA,KAAAhE,EAAA,KAAAgE,QAAA,KAAA21J,EAAAzvI,EAAA,IAAAlmB,QAAA,IAAAkmB,GAAAlmB,QAAA,KAAA21J,EAAAjmJ,EAAA,IAAA1P,QAAA,IAAA0P,GAAA1P,QAAA,KAAA21J,EAAAvxI,EAAA,IAAApkB,QAAA,IAAAokB,GAAApkB,QAAA,KAAA21J,EAAA/lJ,EAAA,IAAA5P,QAAA,IAAA4P,GAAA5P,QAAA,MAAA21J,EAAAgC,EAAA,KAwBA/8J,EAAAiqZ,aAdA,SAAA/8W,GACA,OAAAA,IAAA6O,OAAA,GAAAlN,cAAA3B,EAAA0kE,OAAA,GAAA1kE,GAcAltC,EAAAynU,eACAznU,EAAAizJ,oCClNA,IAAAqpU,EAAalge,EAAQ,QAErBqf,EAAA6gd,EAAA7gd,iBACAE,EAAA2gd,EAAA3gd,oBACAgzK,EAAA2tS,EAAA3tS,eAEAj4J,EAAat6B,EAAQ,QAErBosD,EAAepsD,EAAQ,QAEvBorC,EAAUprC,EAAQ,QAElB+sZ,EAAiB/sZ,EAAQ,QAGzBmge,GAAA,4FACAC,GAAA,qCACAC,GACAC,YAAA,EACAC,UAAA,EACAC,YAAA,EACAC,WAAA,GAEAC,EAAApmc,EAAAlpB,IAAA+ud,EAAA,SAAA98d,GACA,IAAAs9d,EAAAt9d,EAAA2F,QAAA,mBACA,OAAAq3d,EAAAM,KAAAt9d,IAGA,SAAAu9d,EAAAv9d,GACA,qBAAAA,GAAA+nC,EAAAqvB,QAAAo3H,QAAA,iBAAAxuL,EAGA,SAAAw9d,EAAA35a,EAAA8Q,EAAAk3U,GACA,IAAA4xF,EAAA55a,EAAA65a,YACA,UAAA7xF,GAAA4xF,EAAAj7a,QACA,IAAA0nW,EAAAuzE,EAAA7zE,UAAAj1V,EAAA9Q,EAAAhrC,QAAA4tS,UAAA9xP,EAAA+5H,IAAA/5H,EAAAg6H,IAAA,MAAAhxL,OAAAkmD,EAAAwH,KAGA,GAFA,QAAAwgV,GAAA4xF,EAAAj7a,QAEA0nW,EAAA,CACA,IAAAtpZ,EAAAspZ,EAAAtpZ,KACA+zD,EAAAulG,aAAAt5J,EACAijD,EAAAhrC,QAAAokT,mBACAt/T,OAAAusZ,EAAAvsZ,QACKiD,EAAAspZ,EAAAv1V,QAwBL,SAAAgpa,EAAAhhb,GACAA,EAAAihb,WAAA,EACAn0d,aAAAkzC,EAAAkhb,aACAlhb,EAAAkhb,YAAAn0d,WAAA,WACAizC,EAAAihb,WAAA,GACG,KAGH,IAAAE,GAMAhlU,UAAA,SAAAnkG,GACAA,EAAAu6H,EAAA9xL,KAAAiuD,IAAAsJ,GACAv3D,KAAAiS,QAAA,YAAAslD,IAQAspK,SAAA,SAAAtpK,GAEA,IAAA9wB,GADA8wB,EAAAu6H,EAAA9xL,KAAAiuD,IAAAsJ,IACAwoQ,WAAAxoQ,EAAAyoQ,cAEA,GAAAv5R,GAAAzmC,KAAAiuD,IACA,KAAAxnB,GAAA,GAAAA,EAAA4yC,UAAA,CAEA,GAAA5yC,IAAAzmC,KAAAiuD,IACA,OAGAxnB,IAAA8F,WAIAvsC,KAAAiS,QAAA,WAAAslD,IAQAg3S,WAAA,SAAAh3S,IAGAA,EAAAu6H,EAAA9xL,KAAAiuD,IAAAsJ,IAGA+oQ,WAAA,EACAtgU,KAAAo/T,iBAAA,IAAA3vT,KACA2wd,EAAApge,KAAAu3D,EAAA,SAGAmpa,EAAAhlU,UAAAhwJ,KAAA1L,KAAAu3D,GACAmpa,EAAAllU,UAAA9vJ,KAAA1L,KAAAu3D,GACAgpa,EAAAvge,OAQA2ge,UAAA,SAAAppa,IACAA,EAAAu6H,EAAA9xL,KAAAiuD,IAAAsJ,IAGA+oQ,WAAA,EACA8/J,EAAApge,KAAAu3D,EAAA,UAIAmpa,EAAAhlU,UAAAhwJ,KAAA1L,KAAAu3D,GACAgpa,EAAAvge,OAQA4ge,SAAA,SAAArpa,IACAA,EAAAu6H,EAAA9xL,KAAAiuD,IAAAsJ,IAGA+oQ,WAAA,EACA8/J,EAAApge,KAAAu3D,EAAA,OACAmpa,EAAA9kU,QAAAlwJ,KAAA1L,KAAAu3D,IAUA,IAAA9nD,KAAAzP,KAAAo/T,iBA3JA,KA4JAshK,EAAA7rZ,MAAAnpE,KAAA1L,KAAAu3D,GAGAgpa,EAAAvge,OAEA6/d,YAAA,SAAAtoa,GACAmpa,EAAAllU,UAAA9vJ,KAAA1L,KAAAu3D,IAIAwoa,YAAA,SAAAxoa,GAMAspa,EAAAtpa,IACAmpa,EAAAhlU,UAAAhwJ,KAAA1L,KAAAu3D,IAGAuoa,UAAA,SAAAvoa,GACAmpa,EAAA9kU,QAAAlwJ,KAAA1L,KAAAu3D,IAEAyoa,WAAA,SAAAzoa,GAMAspa,EAAAtpa,IACAmpa,EAAA7/P,SAAAn1N,KAAA1L,KAAAu3D,KAKA,SAAAspa,EAAAtpa,GACA,IAAAupa,EAAAvpa,EAAAupa,YACA,cAAAA,GAAA,UAAAA,EA0CA,SAAAC,EAAA9ya,GAtBA,IAAA1O,EAiFA,SAAAyhb,EAAAhiK,EAAAz/Q,GACA1lB,EAAA4E,KAAAugS,EAAA,SAAAp8T,GACAgc,EAAAqvC,EAAAkya,EAAAv9d,GAAA28C,EAAA6tI,UAAAxqL,KACK28C,GA7DLoM,EAAAjgD,KAAA1L,MACAA,KAAAiuD,MAMAjuD,KAAAwge,WAAA,EAMAxge,KAAAyge,YAMAzge,KAAAsge,YAAA,IAAAh0E,EACAtsZ,KAAAotL,aA3CA7tI,EA4CAv/C,KA3CA65B,EAAA4E,KAAAkhc,EAAA,SAAA/8d,GACA28C,EAAA6tI,UAAAxqL,GAAAi3B,EAAArvB,KAAAk2d,EAAA99d,GAAA28C,KAEA1lB,EAAA4E,KAAAwhc,EAAA,SAAAr9d,GACA28C,EAAA6tI,UAAAxqL,GAAAi3B,EAAArvB,KAAAk2d,EAAA99d,GAAA28C,KAEA1lB,EAAA4E,KAAAihc,EAAA,SAAA98d,GACA28C,EAAA6tI,UAAAxqL,GAGA,SAAAqJ,EAAAszC,GACA,kBACA,IAAAA,EAAAihb,UAIA,OAAAv0d,EAAAM,MAAAgzC,EAAAz6C,YATAm8d,CAAAP,EAAA99d,GAAA28C,KAsCA5U,EAAAq7O,uBAQAg7M,EAAAf,EAAAjge,OAcA2qC,EAAAk7O,sBACAm7M,EAAArB,EAAA3/d,MASAghe,EAAAtB,EAAA1/d,OA3FA65B,EAAA4E,MAAA,8EAAA77B,GACA89d,EAAA99d,GAAA,SAAA20D,GACAA,EAAAu6H,EAAA9xL,KAAAiuD,IAAAsJ,GACAv3D,KAAAiS,QAAArP,EAAA20D,MAkGA,IAAA2pa,EAAAH,EAAA7ge,UAEAghe,EAAAn8d,QAAA,WAGA,IAFA,IAAAi6T,EAAA0gK,EAAA3qd,OAAA4qd,GAEA5+d,EAAA,EAAiBA,EAAAi+T,EAAA/9T,OAAyBF,IAAA,CAC1C,IAAA6B,EAAAo8T,EAAAj+T,GACA+d,EAAA9e,KAAAiuD,IAAAkya,EAAAv9d,GAAA5C,KAAAotL,UAAAxqL,MAIAs+d,EAAAnoV,UAAA,SAAAvzE,GACAxlE,KAAAiuD,IAAA11C,QAAAvY,KAAAiuD,IAAA11C,MAAA6W,OAAAo2C,GAAA,YAGA3rC,EAAA8N,MAAAo5b,EAAAp1a,GACA,IAAA1oD,EAAA89d,EACA79d,EAAAC,QAAAF,sBC1TA,IAAAivN,GAAA,gCACAjvN,GACA4sE,WAAA,WACA/kE,MAAA,SAAA0wB,EAAA73B,EAAAC,GACA,IAAAkkM,EAAAtsK,EAAA6D,SAAA,aACAD,EAAA5D,EAAA6D,SAAA,aACAouV,EAAA9pX,EAAAK,IAAA,SACAmC,EAAAi5B,EAAAp7B,IAAA,UAAA8jM,EAAA9jM,IAAA,UAAAypX,EAAAjyV,EAAArJ,YAAAs7V,EAAAxsX,QACAwoK,EAAAjuI,EAAAx3B,IAAA,mBACA0lK,EAAAluI,EAAAx3B,IAAA,iBACA4c,EAAA4a,EAAA6D,SAAA,aAAA4D,eACA5H,EAAAG,EAAAnN,iBACAvd,EAAA0qB,EAAAtP,UACAi1c,GACAv/c,OAAAhB,EAAA/N,QACAg7O,OAAAnkF,EACAmlM,SAAAplM,GAiBA,OAfA34J,EAAAkxD,UAAA,QAAA77D,IAgBAu8D,SAdA,SAAA/wC,EAAA7gB,GACAuqB,EAAAguI,gBAAAv4J,EAAA,SAAAs4J,EAAAhrI,GACA,IAAAvrB,EAAAsud,EAAA/3T,GAEA,cAAAA,GAAAt4J,EAAAk/D,cAAA,CACA,IAAA98D,EAAApC,EAAAq0D,aAAA/mC,GAAAp6B,IAAAkuN,GAAA,GACA,MAAAh/M,IAAAL,EAAAK,GAGApC,EAAAmxD,cAAA7jC,EAAA,UAAAvrB,IACO8e,EAAAnvB,MAAAmvB,EAAAT,SAQPhuB,EAAAC,QAAAF,sBCwBAE,EAAAusC,UAhFA,SAAA7J,EAAA9d,GACA,IAKA+gR,EACAs4L,EACAC,EACAC,EAkCAluW,EA1CA/uH,EAAA0jB,EAAA1jB,EACAE,EAAAwjB,EAAAxjB,EACAyU,EAAA+O,EAAA/O,MACAC,EAAA8O,EAAA9O,OACAxB,EAAAsQ,EAAAtQ,EAMAuB,EAAA,IACA3U,GAAA2U,EACAA,MAGAC,EAAA,IACA1U,GAAA0U,EACAA,MAGA,iBAAAxB,EACAqxR,EAAAs4L,EAAAC,EAAAC,EAAA7pd,EACGA,aAAA5L,MACH,IAAA4L,EAAAxW,OACA6nS,EAAAs4L,EAAAC,EAAAC,EAAA7pd,EAAA,GACK,IAAAA,EAAAxW,QACL6nS,EAAAu4L,EAAA5pd,EAAA,GACA2pd,EAAAE,EAAA7pd,EAAA,IACK,IAAAA,EAAAxW,QACL6nS,EAAArxR,EAAA,GACA2pd,EAAAE,EAAA7pd,EAAA,GACA4pd,EAAA5pd,EAAA,KAEAqxR,EAAArxR,EAAA,GACA2pd,EAAA3pd,EAAA,GACA4pd,EAAA5pd,EAAA,GACA6pd,EAAA7pd,EAAA,IAGAqxR,EAAAs4L,EAAAC,EAAAC,EAAA,EAKAx4L,EAAAs4L,EAAApod,IAEA8vR,GAAA9vR,GADAo6G,EAAA01K,EAAAs4L,GAEAA,GAAApod,EAAAo6G,GAGAiuW,EAAAC,EAAAtod,IAEAqod,GAAArod,GADAo6G,EAAAiuW,EAAAC,GAEAA,GAAAtod,EAAAo6G,GAGAguW,EAAAC,EAAApod,IAEAmod,GAAAnod,GADAm6G,EAAAguW,EAAAC,GAEAA,GAAApod,EAAAm6G,GAGA01K,EAAAw4L,EAAArod,IAEA6vR,GAAA7vR,GADAm6G,EAAA01K,EAAAw4L,GAEAA,GAAArod,EAAAm6G,GAGAvtF,EAAAkhI,OAAA1iK,EAAAykS,EAAAvkS,GACAshC,EAAAmhI,OAAA3iK,EAAA2U,EAAAood,EAAA78d,GACA,IAAA68d,GAAAv7b,EAAAshI,IAAA9iK,EAAA2U,EAAAood,EAAA78d,EAAA68d,KAAAr5d,KAAAgwB,GAAA,KACA8N,EAAAmhI,OAAA3iK,EAAA2U,EAAAzU,EAAA0U,EAAAood,GACA,IAAAA,GAAAx7b,EAAAshI,IAAA9iK,EAAA2U,EAAAqod,EAAA98d,EAAA0U,EAAAood,IAAA,EAAAt5d,KAAAgwB,GAAA,GACA8N,EAAAmhI,OAAA3iK,EAAAi9d,EAAA/8d,EAAA0U,GACA,IAAAqod,GAAAz7b,EAAAshI,IAAA9iK,EAAAi9d,EAAA/8d,EAAA0U,EAAAqod,IAAAv5d,KAAAgwB,GAAA,EAAAhwB,KAAAgwB,IACA8N,EAAAmhI,OAAA3iK,EAAAE,EAAAukS,GACA,IAAAA,GAAAjjQ,EAAAshI,IAAA9iK,EAAAykS,EAAAvkS,EAAAukS,IAAA/gS,KAAAgwB,GAAA,IAAAhwB,KAAAgwB,2BC7EAx4B,EAAQ,QACR2D,EAAAC,QAAiB5D,EAAQ,QAAqBqK,OAAA6B,6BCD9C,IAAAqvU,EAAcv7U,EAAQ,QAEtBgie,EAAAzmJ,EAAA9yU,IACAw5d,EAAA1mJ,EAAA7yU,IACAw5d,EAAA3mJ,EAAAvpU,MACAmgX,EAAA52C,EAAAzkS,SACAqrb,EAAA5mJ,EAAA77S,IACA0ic,EAAA7mJ,EAAA9wS,MACA43b,EAAA9mJ,EAAAnxU,IA+FAzG,EAAAC,QA1EA,SAAAi6B,EAAA13B,EAAAksX,EAAAiwG,GACA,IAIAC,EACAC,EACA/5d,EAAAC,EANA+5d,KACAj1d,KACA+/Q,KACA1nE,KAKA,GAAAy8Q,EAAA,CACA75d,GAAAyxC,SACAxxC,IAAA,UAEA,QAAAlH,EAAA,EAAAc,EAAAu7B,EAAAn8B,OAAwCF,EAAAc,EAASd,IACjDwge,EAAAv5d,IAAAo1B,EAAAr8B,IACAyge,EAAAv5d,IAAAm1B,EAAAr8B,IAIAwge,EAAAv5d,IAAA65d,EAAA,IACAL,EAAAv5d,IAAA45d,EAAA,IAGA,IAAA9ge,EAAA,EAAAc,EAAAu7B,EAAAn8B,OAAsCF,EAAAc,EAASd,IAAA,CAC/C,IAAAspC,EAAAjN,EAAAr8B,GAEA,GAAA6wX,EACAkwG,EAAA1kc,EAAAr8B,IAAA,EAAAc,EAAA,GACAkge,EAAA3kc,GAAAr8B,EAAA,GAAAc,OACK,CACL,OAAAd,OAAAc,EAAA,GACAmge,EAAAzge,KAAAoge,EAAAvkc,EAAAr8B,KACA,SAEA+ge,EAAA1kc,EAAAr8B,EAAA,GACAghe,EAAA3kc,EAAAr8B,EAAA,GAIA6ge,EAAA70d,EAAAg1d,EAAAD,GAEAL,EAAA10d,IAAArH,GACA,IAAAu8d,EAAAvwG,EAAArnV,EAAAy3b,GACAxlJ,EAAAo1C,EAAArnV,EAAA03b,GACAz9c,EAAA29c,EAAA3lJ,EAEA,IAAAh4T,IACA29c,GAAA39c,EACAg4T,GAAAh4T,GAGAm9c,EAAA30M,EAAA//Q,GAAAk1d,GACAR,EAAAr8Q,EAAAr4M,EAAAuvU,GACA,IAAAzmH,EAAA6rQ,KAAAr3b,EAAAyiP,GACA74F,EAAAytS,KAAAr3b,EAAA+6K,GAEAy8Q,IACAL,EAAA3rQ,IAAA7tN,GACAu5d,EAAA1rQ,IAAA5tN,GACAu5d,EAAAvtS,IAAAjsL,GACAu5d,EAAAttS,IAAAhsL,IAGA+5d,EAAAzge,KAAAs0N,GACAmsQ,EAAAzge,KAAA0yL,GAOA,OAJA29L,GACAowG,EAAAzge,KAAAyge,EAAAx0b,SAGAw0b,yBCpGA,IAAA5+d,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QA8BR6D,EAAAs4D,gBACAl4D,KAAA,UACA+zD,MAAA,UACAhb,OAAA,2BAEA,cACAn5C,EAAAs4D,gBACAl4D,KAAA,UACA+zD,MAAA,UACAhb,OAAA,2BAEA,oCC/CA,IAAA1iB,EAAat6B,EAAQ,QAoBrBk/B,EAAA5E,EAAA4E,KACA7+B,EAAAi6B,EAAAj6B,SACAkM,EAAA+tB,EAAA/tB,QAOAo2d,EAAA,WAOA,SAAAhsa,EAAA3uD,GACA,OAAAA,aAAAsE,MAAAtE,EAAA,MAAAA,SA0OA,SAAAw7U,EAAAo/I,GACA,OAAAvie,EAAAuie,MAAAzge,IAAA,KAAAyge,EAAAzge,GAAA,IAAA5B,QAAA,YA4GA,IAAAsie,EAAA,EAkFA,SAAAj9a,EAAAh6C,EAAArK,GACA,OAAAqK,KAAAtI,eAAA/B,GAWAqC,EAAA+yD,mBACA/yD,EAAAuhL,gBAnaA,SAAA9rJ,EAAA7uB,EAAAs4d,GAEA,GAAAzpc,EAAA,CACAA,EAAA7uB,GAAA6uB,EAAA7uB,OACA6uB,EAAAtS,SAAAsS,EAAAtS,aACAsS,EAAAtS,SAAAvc,GAAA6uB,EAAAtS,SAAAvc,OAEA,QAAAhJ,EAAA,EAAAc,EAAAwge,EAAAphe,OAAyCF,EAAAc,EAASd,IAAA,CAClD,IAAAuhe,EAAAD,EAAAthe,IAEA63B,EAAAtS,SAAAvc,GAAAlH,eAAAy/d,IAAA1pc,EAAA7uB,GAAAlH,eAAAy/d,KACA1pc,EAAAtS,SAAAvc,GAAAu4d,GAAA1pc,EAAA7uB,GAAAu4d,OAyZAn/d,EAAA4rL,oBAnZA,yXAoZA5rL,EAAAuoK,iBArYA,SAAAtxH,GACA,OAAAx6C,EAAAw6C,IAAAtuC,EAAAsuC,iBAAA3qC,KAAA2qC,IAAA7yC,OAqYApE,EAAAwoK,iBA5XA,SAAAvxH,GACA,OAAAx6C,EAAAw6C,mBAAAvuC,QA4XA1I,EAAAq2N,gBA9WA,SAAA88J,EAAAisG,GAOAA,UAAAjge,QACA,IAAAyO,EAAA8oB,EAAAlpB,IAAA2lX,MAAA,SAAAnrX,EAAAyB,GACA,OACAktN,MAAA3uN,KA+DA,OA3DAszB,EAAA8jc,EAAA,SAAAJ,EAAAv1d,GACA,GAAAhN,EAAAuie,GAAA,CAKA,QAAAphe,EAAA,EAAmBA,EAAAgQ,EAAA9P,OAAmBF,IACtC,IAAAgQ,EAAAhQ,GAAAkc,QACA,MAAAkld,EAAAzge,IAAAqP,EAAAhQ,GAAA+4N,MAAAp4N,KAAAyge,EAAAzge,GAAA,GAGA,OAFAqP,EAAAhQ,GAAAkc,OAAAkld,OACAI,EAAA31d,GAAA,MAKA,IAAA7L,EAAA,EAAmBA,EAAAgQ,EAAA9P,OAAmBF,IAAA,CACtC,IAAA+4N,EAAA/oN,EAAAhQ,GAAA+4N,MAEA,KAAA/oN,EAAAhQ,GAAAkc,QAEA,MAAA68M,EAAAp4N,IAAA,MAAAyge,EAAAzge,IAAA,MAAAyge,EAAAv/d,MAAAmgV,EAAAo/I,IAAAp/I,EAAAjpH,MAAAl3N,OAAAu/d,EAAAv/d,KAAA,IAGA,OAFAmO,EAAAhQ,GAAAkc,OAAAkld,OACAI,EAAA31d,GAAA,UAMA6xB,EAAA8jc,EAAA,SAAAJ,EAAAv1d,GACA,GAAAhN,EAAAuie,GAAA,CAMA,IAFA,IAAAphe,EAAA,EAEUA,EAAAgQ,EAAA9P,OAAmBF,IAAA,CAC7B,IAAA+4N,EAAA/oN,EAAAhQ,GAAA+4N,MAEA,IAAA/oN,EAAAhQ,GAAAkc,SAIA8lU,EAAAjpH,IAKA,MAAAqoQ,EAAAzge,GAAA,CACAqP,EAAAhQ,GAAAkc,OAAAkld,EACA,OAIAphe,GAAAgQ,EAAA9P,QACA8P,EAAAxP,MACA0b,OAAAkld,OAIApxd,GAsSA5N,EAAAs2N,cAzRA,SAAAipH,GAUA,IAAA8/I,EAAA3oc,EAAAk7B,gBACAt2B,EAAAikT,EAAA,SAAA/1U,EAAAC,GACA,IAAA61d,EAAA91d,EAAAmtN,MACA2oQ,GAAAD,EAAAx9a,IAAAy9a,EAAA/ge,GAAAiL,KAEA8xB,EAAAikT,EAAA,SAAA/1U,EAAAC,GACA,IAAAgsB,EAAAjsB,EAAAsQ,OACA4c,EAAA8yB,QAAA/zB,GAAA,MAAAA,EAAAl3B,KAAA8ge,EAAAx+d,IAAA40B,EAAAl3B,KAAA8ge,EAAAx+d,IAAA40B,EAAAl3B,MAAAiL,EAAA,mBAAAisB,KAAAl3B,KACAk3B,GAAA,MAAAA,EAAAl3B,IAAA8ge,EAAAx9a,IAAApsB,EAAAl3B,GAAAiL,IACAA,EAAAotN,UAAAptN,EAAAotN,cAGAt7L,EAAAikT,EAAA,SAAA/1U,EAAAC,GACA,IAAA61d,EAAA91d,EAAAmtN,MACAlhM,EAAAjsB,EAAAsQ,OACA88M,EAAAptN,EAAAotN,QAEA,GAAAn6N,EAAAg5B,GAAA,CAYA,GAJAmhM,EAAAn3N,KAAA,MAAAg2B,EAAAh2B,KAAAg2B,EAAAh2B,KAAA,GAAA6/d,IAAA7/d,KAEAs/d,EAAAt1d,EAEA61d,EACA1oQ,EAAAr4N,GAAA+ge,EAAA/ge,QACK,SAAAk3B,EAAAl3B,GACLq4N,EAAAr4N,GAAAk3B,EAAAl3B,GAAA,OACK,CAML,IAAAghe,EAAA,EAEA,GACA3oQ,EAAAr4N,GAAA,KAAAq4N,EAAAn3N,KAAA,KAAA8/d,UACOF,EAAAx+d,IAAA+1N,EAAAr4N,KAGP8ge,EAAAx9a,IAAA+0K,EAAAr4N,GAAAiL,OAkOAxJ,EAAAyqR,gBA9NA,SAAAx5N,GACA,IAAAxxD,EAAAwxD,EAAAxxD,KAEA,SAAAA,MAAA9C,QAAAoie,KA4NA/+d,EAAA4/U,YACA5/U,EAAA03J,gBAvMA,SAAA8nU,EAAAC,GACA,IAAAC,KACAC,KAGA,OAFAxjP,EAAAqjP,MAAAE,GACAvjP,EAAAsjP,MAAAE,EAAAD,IACAE,EAAAF,GAAAE,EAAAD,IAEA,SAAAxjP,EAAA0jP,EAAAryd,EAAAsyd,GACA,QAAAlie,EAAA,EAAAc,EAAAmhe,EAAA/he,OAA6CF,EAAAc,EAASd,IAKtD,IAJA,IAAAsjE,EAAA2+Z,EAAAjie,GAAAsjE,SACAyiI,EAAA5wI,EAAA8sa,EAAAjie,GAAAq9B,WACA8kc,EAAAD,KAAA5+Z,GAEAnxC,EAAA,EAAAg7Q,EAAApnG,EAAA7lM,OAAgDiyB,EAAAg7Q,EAAUh7Q,IAAA,CAC1D,IAAAkL,EAAA0oK,EAAA5zK,GAEAgwc,KAAA9kc,GACA8kc,EAAA9kc,GAAA,MAEAztB,EAAA0zD,KAAA1zD,EAAA0zD,QAA+CjmC,GAAA,GAM/C,SAAA2kc,EAAApyd,EAAAwyd,GACA,IAAApyd,KAEA,QAAAhQ,KAAA4P,EACA,GAAAA,EAAA9N,eAAA9B,IAAA,MAAA4P,EAAA5P,GACA,GAAAoie,EACApyd,EAAAxP,MAAAR,OACS,CACT,IAAA+lM,EAAAi8R,EAAApyd,EAAA5P,IAAA,GACA+lM,EAAA7lM,QAAA8P,EAAAxP,MACA8iE,SAAAtjE,EACAq9B,UAAA0oK,IAMA,OAAA/1L,IA8JA5N,EAAA0gC,eAnJA,SAAA/yB,EAAA8yB,GACA,aAAAA,EAAAowB,gBACApwB,EAAAowB,gBACG,MAAApwB,EAAAxF,UACHvE,EAAA/tB,QAAA83B,EAAAxF,WAAAvE,EAAAlpB,IAAAizB,EAAAxF,UAAA,SAAA72B,GACA,OAAAuJ,EAAAmjD,gBAAA1sD,KACKuJ,EAAAmjD,gBAAArwB,EAAAxF,WACF,MAAAwF,EAAAhhC,KACHi3B,EAAA/tB,QAAA83B,EAAAhhC,MAAAi3B,EAAAlpB,IAAAizB,EAAAhhC,KAAA,SAAA2E,GACA,OAAAuJ,EAAAwtR,YAAA/2R,KACKuJ,EAAAwtR,YAAA16P,EAAAhhC,WAHF,GA6IHO,EAAAsxL,UAjHA,WAEA,IAAA1qL,EAAA,gBAAAq4d,IAAA,IAAAr6d,KAAAstK,SAAA/tK,QAAA,GACA,gBAAA87d,GACA,OAAAA,EAAAr5d,KAAAq5d,EAAAr5d,SA8GA5G,EAAAutD,YArEA,SAAA/sD,EAAA+jC,EAAA9O,GACA,GAAAiB,EAAAn6B,SAAAgoC,GAAA,CACA,IAAAv8B,KACAA,EAAAu8B,EAAA,WACAA,EAAAv8B,EAGA,IAAA4oD,EAAAn7B,KAAAm7B,iBAEAA,GAAA5O,EAAAzd,EAAAqsB,EAAA,UAAA5O,EAAAzd,EAAAqsB,EAAA,OAAA5O,EAAAzd,EAAAqsB,EAAA,UACArsB,EAAAqsB,EAAA,YAGA,IAAAhjD,KA6BA,OA5BA0tB,EAAAiJ,EAAA,SAAAngC,EAAAwC,GAGA,GAFAxC,EAAAmgC,EAAA39B,GAEA,cAAAA,GAAA,oBAAAA,EAAA,CAKA,IAAAs5d,EAAAt5d,EAAAZ,MAAA,8BACAmmD,EAAA+za,EAAA,GACAC,GAAAD,EAAA,QAAA/qd,cAEA,MAAAg3C,IAAAg0a,GAAA,MAAA/7d,GAAA,UAAA+7d,GAAA,SAAA/7d,GAAAqxB,KAAAk+W,kBAAAj9W,EAAA/5B,QAAA84B,EAAAk+W,iBAAAxnV,GAAA,IAIA,IAAAi0a,GACAj0a,YAGA,UAAAg0a,GAAA,QAAA/7d,IACAg8d,EAAAD,GAAA/7d,GAGA,IAAAssD,EAAAlwD,EAAAgyL,gBAAA4tS,GACAxyd,EAAAu+C,EAAA,UAAAuE,EACA9iD,EAAAu+C,EAAA,SAAAuE,EAAA,SAtBA9iD,EAAAhH,GAAAxC,IAwBAwJ,GA4BA5N,EAAAujC,aArBA,SAAAunB,EAAAlkD,EAAAxC,GACA0mD,EAAAvnB,aAAAunB,EAAAvnB,aAAA38B,EAAAxC,GAAA0mD,EAAAlkD,GAAAxC,GAqBApE,EAAA+3D,aAlBA,SAAAjN,EAAAlkD,GACA,OAAAkkD,EAAAiN,aAAAjN,EAAAiN,aAAAnxD,GAAAkkD,EAAAlkD,wBCldA,IAAA7H,GAKAs8L,OAAA,SAAA/1K,GACA,OAAAA,GAOA+6c,YAAA,SAAA/6c,GACA,OAAAA,KAOAg7c,aAAA,SAAAh7c,GACA,OAAAA,GAAA,EAAAA,IAOAi7c,eAAA,SAAAj7c,GACA,OAAAA,GAAA,KACA,GAAAA,KAGA,MAAAA,KAAA,OAQAk7c,QAAA,SAAAl7c,GACA,OAAAA,OAOAm7c,SAAA,SAAAn7c,GACA,QAAAA,MAAA,GAOAo7c,WAAA,SAAAp7c,GACA,OAAAA,GAAA,KACA,GAAAA,MAGA,KAAAA,GAAA,GAAAA,IAAA,IAQAq7c,UAAA,SAAAr7c,GACA,OAAAA,SAOAs7c,WAAA,SAAAt7c,GACA,YAAAA,SAOAu7c,aAAA,SAAAv7c,GACA,OAAAA,GAAA,KACA,GAAAA,SAGA,KAAAA,GAAA,GAAAA,MAAA,IAQAw7c,UAAA,SAAAx7c,GACA,OAAAA,WAOAy7c,WAAA,SAAAz7c,GACA,QAAAA,UAAA,GAOA07c,aAAA,SAAA17c,GACA,OAAAA,GAAA,KACA,GAAAA,UAGA,KAAAA,GAAA,GAAAA,QAAA,IAQA27c,aAAA,SAAA37c,GACA,SAAA1gB,KAAA0jC,IAAAhjB,EAAA1gB,KAAAgwB,GAAA,IAOAssc,cAAA,SAAA57c,GACA,OAAA1gB,KAAA2jC,IAAAjjB,EAAA1gB,KAAAgwB,GAAA,IAOAusc,gBAAA,SAAA77c,GACA,YAAA1gB,KAAA0jC,IAAA1jC,KAAAgwB,GAAAtP,KAQA87c,cAAA,SAAA97c,GACA,WAAAA,EAAA,EAAA1gB,KAAAI,IAAA,KAAAsgB,EAAA,IAOA+7c,eAAA,SAAA/7c,GACA,WAAAA,EAAA,IAAA1gB,KAAAI,IAAA,MAAAsgB,IAOAg8c,iBAAA,SAAAh8c,GACA,WAAAA,EACA,EAGA,IAAAA,EACA,GAGAA,GAAA,KACA,GAAA1gB,KAAAI,IAAA,KAAAsgB,EAAA,GAGA,MAAA1gB,KAAAI,IAAA,OAAAsgB,EAAA,MAQAi8c,WAAA,SAAAj8c,GACA,SAAA1gB,KAAAyjC,KAAA,EAAA/iB,MAOAk8c,YAAA,SAAAl8c,GACA,OAAA1gB,KAAAyjC,KAAA,KAAA/iB,MAOAm8c,cAAA,SAAAn8c,GACA,OAAAA,GAAA,MACA,IAAA1gB,KAAAyjC,KAAA,EAAA/iB,KAAA,GAGA,IAAA1gB,KAAAyjC,KAAA,GAAA/iB,GAAA,GAAAA,GAAA,IAQAo8c,UAAA,SAAAp8c,GACA,IAAAtQ,EACA5C,EAAA,GAGA,WAAAkT,EACA,EAGA,IAAAA,EACA,IAGAlT,KAAA,GACAA,EAAA,EACA4C,EAAA+4B,IAEA/4B,EAdA,GAcApQ,KAAA09X,KAAA,EAAAlwX,IAAA,EAAAxN,KAAAgwB,KAGAxiB,EAAAxN,KAAAI,IAAA,MAAAsgB,GAAA,IAAA1gB,KAAA2jC,KAAAjjB,EAAAtQ,IAAA,EAAApQ,KAAAgwB,IAjBA,MAwBA+sc,WAAA,SAAAr8c,GACA,IAAAtQ,EACA5C,EAAA,GAGA,WAAAkT,EACA,EAGA,IAAAA,EACA,IAGAlT,KAAA,GACAA,EAAA,EACA4C,EAAA+4B,IAEA/4B,EAdA,GAcApQ,KAAA09X,KAAA,EAAAlwX,IAAA,EAAAxN,KAAAgwB,IAGAxiB,EAAAxN,KAAAI,IAAA,MAAAsgB,GAAA1gB,KAAA2jC,KAAAjjB,EAAAtQ,IAAA,EAAApQ,KAAAgwB,IAjBA,IAiBA,IAOAgtc,aAAA,SAAAt8c,GACA,IAAAtQ,EACA5C,EAAA,GAGA,WAAAkT,EACA,EAGA,IAAAA,EACA,IAGAlT,KAAA,GACAA,EAAA,EACA4C,EAAA+4B,IAEA/4B,EAdA,GAcApQ,KAAA09X,KAAA,EAAAlwX,IAAA,EAAAxN,KAAAgwB,KAGAtP,GAAA,KACAlT,EAAAxN,KAAAI,IAAA,MAAAsgB,GAAA,IAAA1gB,KAAA2jC,KAAAjjB,EAAAtQ,IAAA,EAAApQ,KAAAgwB,IAlBA,KAkBA,GAGAxiB,EAAAxN,KAAAI,IAAA,OAAAsgB,GAAA,IAAA1gB,KAAA2jC,KAAAjjB,EAAAtQ,IAAA,EAAApQ,KAAAgwB,IArBA,IAqBA,OAQAitc,OAAA,SAAAv8c,GACA,IAAAtQ,EAAA,QACA,OAAAsQ,MAAAtQ,EAAA,GAAAsQ,EAAAtQ,IAOA8sd,QAAA,SAAAx8c,GACA,IAAAtQ,EAAA,QACA,QAAAsQ,MAAAtQ,EAAA,GAAAsQ,EAAAtQ,GAAA,GAOA+sd,UAAA,SAAAz8c,GACA,IAAAtQ,EAAA,UAEA,OAAAsQ,GAAA,KACAA,MAAAtQ,EAAA,GAAAsQ,EAAAtQ,GAAA,GAGA,KAAAsQ,GAAA,GAAAA,IAAAtQ,EAAA,GAAAsQ,EAAAtQ,GAAA,IAQAgtd,SAAA,SAAA18c,GACA,SAAAvmB,EAAAkje,UAAA,EAAA38c,IAOA28c,UAAA,SAAA38c,GACA,OAAAA,EAAA,OACA,OAAAA,IACKA,EAAA,OACL,QAAAA,GAAA,UAAAA,EAAA,IACKA,EAAA,SACL,QAAAA,GAAA,WAAAA,EAAA,MAEA,QAAAA,GAAA,YAAAA,EAAA,SAQA48c,YAAA,SAAA58c,GACA,OAAAA,EAAA,GACA,GAAAvmB,EAAAije,SAAA,EAAA18c,GAGA,GAAAvmB,EAAAkje,UAAA,EAAA38c,EAAA,QAGAxlB,EAAAf,EACAgB,EAAAC,QAAAF,wBCzXA1D,EAAQ,QAERA,EAAQ,2CCAR4D,EAAAiuE,YAAA,EAEA,IAMAjmE,EANAotL,EAAWh5L,EAAQ,QAEnB03E,GAIA9rE,EAJAotL,IAIsCptL,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,GAF7EgjD,EAAW5uD,EAAQ,QAInB,IAAA+le,GAAA,EACAC,GAAA,EACAn0b,EAAA,IAEAo0b,EAAA,WACA,IAAAvuZ,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,CACA,IAAAusZ,EAAAzuZ,EAAAyuZ,SAkBA,OAjBAA,EACAH,GAAA,GAEAA,GAAA,EACAG,EAAA51d,SAAAC,cAAA,OACAknE,EAAAyuZ,WAEAA,EAAA7md,iBAAA,qBAAA24C,GACAA,EAAAo6H,iBACAp6H,EAAAitH,oBAGAihT,EAAA7md,iBAAA,mBACAo4D,EAAA0uZ,gBAAA1uZ,EAAA0uZ,oBAIAD,IAGAnya,KAEA0jB,GACAY,WAAA,EAEA9vB,YAAA,SAAApmD,GACA,OAAA4xD,EAAA5xD,IAGAuC,SAAA,SAAAvC,EAAA69C,GACA79C,GAAA69C,IACA+T,EAAA5xD,GAAA69C,IAIA64B,WAAA,SAAA12E,GACAA,IACA4xD,EAAA5xD,GAAA,YACA4xD,EAAA5xD,KAIA+3E,WAAA,WACA,OAAAzC,EAAA5lC,UAGAu0b,cAEAD,eAAA,WACA,IAAAE,EAAA5uZ,EAAA2uZ,WAAA3uZ,EAAA2uZ,WAAA1ke,OAAA,GACA,GAAA2ke,EAAA,CAEA,IAAArmb,EAAAy3B,EAAAlvB,YAAA89a,EAAAlke,IACA69C,KAAA04B,mBACA14B,EAAAu5B,UAIAU,UAAA,SAAA93E,EAAA0vC,EAAA6c,EAAA4pB,EAAAD,GACA,IAAAX,EAAAl+D,QAAA7Y,UAAAg5E,WACAx3E,QAAAgM,IAAA0jC,EAAA,CACApxC,KAAA43E,YAIA,IAFA,IAAA+tZ,EAAA3le,KAAA2le,WAEA5ke,EAAA,EAAAmyB,EAAAyyc,EAAA1ke,OAA0CF,EAAAmyB,EAAOnyB,IAAA,CAEjD,GADA4ke,EAAA5ke,GACAW,OACA,OAIA,IAAA+je,EAAAD,IAMA,IAJA,EAAAr3a,EAAA6rB,UAAAyrZ,EAAA,WACAzle,KAAA43E,YAAA0tZ,IACA,EAAAn3a,EAAA6rB,UAAAyrZ,EAAA,iBAEA5tZ,EACAA,EAAA2J,OAAA3gF,MAAA,OACAiJ,QAAA,SAAA6C,GACA,SAAAwhD,EAAA6rB,UAAAyrZ,EAAA94d,KAGAL,WAAA,YACA,EAAA6hD,EAAAosB,aAAAkrZ,EAAA,kBACK,KAELx3a,KAAA1hB,YAAA,KAAA0hB,EAAA1hB,WAAA8sC,SACAprB,EAAA1hB,WAAAt8B,YAAAw1d,GAEA51d,SAAAG,KAAAC,YAAAw1d,GAGAr0b,IACAq0b,EAAAltd,MAAA64B,UAEAq0b,EAAA9kN,SAAA,EACA8kN,EAAAltd,MAAAM,QAAA,GAEA7Y,KAAA2le,WAAApke,MAA0BG,KAAA0vC,SAAAymC,iBAG1BQ,WAAA,SAAA32E,GACA,IAAAike,EAAA3le,KAAA2le,WACAF,EAAAD,IAEA,GAAAG,EAAA1ke,OAAA,GACA,IAAA2ke,EAAAD,IAAA1ke,OAAA,GACA,GAAA2ke,EAAAlke,OAAA,CACA,GAAAkke,EAAA/tZ,WACA+tZ,EAAA/tZ,WAAA2J,OAAA3gF,MAAA,OACAiJ,QAAA,SAAA6C,GACA,SAAAwhD,EAAAosB,aAAAkrZ,EAAA94d,KAIAg5d,EAAA7ua,MACA6ua,EAAA1ke,OAAA,IACAwke,EAAAltd,MAAA64B,OAAAu0b,IAAA1ke,OAAA,GAAAmwC,aAGA,QAAArwC,EAAA4ke,EAAA1ke,OAAA,EAA2CF,GAAA,EAAQA,IACnD,GAAA4ke,EAAA5ke,GAAAW,OAAA,CACAike,EAAArke,OAAAP,EAAA,GACA,OAMA,IAAA4ke,EAAA1ke,SACAjB,KAAA43E,YACA,EAAAzpB,EAAA6rB,UAAAyrZ,EAAA,iBAEAn5d,WAAA,WACA,IAAAq5d,EAAA1ke,SACAwke,EAAAl5b,YAAAk5b,EAAAl5b,WAAAC,YAAAi5b,GACAA,EAAAltd,MAAAM,QAAA,OACAm+D,EAAAyuZ,cAAA/3d,IAEA,EAAAygD,EAAAosB,aAAAkrZ,EAAA,kBACO,QAKP77d,OAAAwB,eAAA4rE,EAAA,UACA1rE,cAAA,EACAtH,IAAA,WAKA,OAJAuhe,IACAn0b,GAAA6lC,EAAAl+D,QAAA7Y,UAAA+zE,cAAsD7iC,UACtDm0b,GAAA,GAEAn0b,GAEA4T,IAAA,SAAAz9C,GACA6pC,EAAA7pC,KAeA0vE,EAAAl+D,QAAA7Y,UAAAg5E,WAEAvpE,OAAAiP,iBAAA,mBAAA24C,GACA,QAAAA,EAAA2kN,QAAA,CACA,IAAA2pN,EAfA,WACA,IAAA5uZ,EAAAl+D,QAAA7Y,UAAAg5E,WACAlC,EAAA2uZ,WAAA1ke,OAAA,GACA,IAAA4ke,EAAA7uZ,EAAA2uZ,WAAA3uZ,EAAA2uZ,WAAA1ke,OAAA,GACA,IAAA4ke,EAAA,OAGA,OAFA7uZ,EAAAlvB,YAAA+9a,EAAAnke,KAUAoke,GAEAD,KAAA7tZ,qBACA6tZ,EAAA5yL,YAAA4yL,EAAA5yL,cAAA4yL,EAAA/hC,aAAA+hC,EAAA/hC,aAAA,UAAA+hC,EAAA/sZ,YAMA31E,EAAA4V,QAAAi+D,wBC5Mcz3E,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBqxJ,EAAkBrxJ,EAAQ,QAE1Bib,EAAcjb,EAAQ,QAoBtBixM,GAAA,uCAEAvtM,EAAAG,EAAAG,qBACAC,KAAA,QACAC,OAAA,SAAA0xU,EAAAxxU,EAAAC,GACA5D,KAAAg/B,MACAkG,YAEAllC,KAAA+le,WAAA5wJ,GAEAn1U,KAAAgme,uBAAA7wJ,IAEA4wJ,WAAA,SAAA5wJ,GACA,IAAAh7T,EAAAg7T,EAAA9mT,iBACAynT,EAAA37T,EAAAo7T,mBACA0wJ,EAAApsc,EAAAlpB,IAAAmlU,EAAA,SAAAR,GAQA,OAPA,IAAA1kL,EAAA0kL,EAAA/9S,OACAnpB,UAAA+L,EAAA5C,GAAA4C,EAAA3C,IACAqgB,SAAAy9S,EAAAhoS,MACAxV,gBAAA,EACAwwI,eAAA,EACAC,cAAA,MAIA1uI,EAAA4E,KAAAwnc,EAAA,SAAAr0U,GACA/3H,EAAA4E,KAAA+xK,EAAA5+C,EAAA3yH,IAAA2yH,GACA5xJ,KAAAg/B,MAAAC,IAAA2yH,EAAAC,aACK7xJ,OAELgme,uBAAA,SAAA7wJ,GACA,IAAAh7T,EAAAg7T,EAAA9mT,iBACAynT,EAAA37T,EAAAo7T,mBAEA,GAAAO,EAAA70U,OAAA,CAIA,IAAA8mB,EAAAotT,EAAAnxU,IAAA,SACA6sM,EAAAskI,EAAA91S,SAAA,aACAm4K,EAAA29H,EAAA91S,SAAA,aACAD,EAAAyxK,EAAAxxK,SAAA,aACAC,EAAAk4K,EAAAn4K,SAAA,aACA6mc,EAAAr1R,EAAA7sM,IAAA,QACAmie,EAAA3uR,EAAAxzM,IAAA,QACAoie,EAAAhnc,EAAAp7B,IAAA,SACAqie,EAAA/mc,EAAAt7B,IAAA,SACAoie,EAAAvsc,EAAA/tB,QAAAs6d,SACAC,EAAAxsc,EAAA/tB,QAAAu6d,SACA,IAAAt1R,KACA63F,KAQA,cAAA7gR,EAKA,IAJA,IAAAu+c,EAAAxwJ,EAAA,GAAA5kI,iBACA35L,EAAA4C,EAAA5C,GACAC,EAAA2C,EAAA3C,GAEAzW,EAAA,EAAqBA,EAAAule,EAAArle,OAAwBF,IAAA,CAC7C,GAAAmle,EAEAn1R,EADAw1R,EAAAx1R,EAAAq1R,EAAArle,IACAQ,KAAA,IAAAiZ,EAAAytR,QACAlgR,OACAxQ,KACAC,KACAC,EAAA6ud,EAAAvle,GAAAqhC,UAKA,GAAA+jc,GAAAple,EAAAule,EAAArle,OAAA,EAEA2nS,EADA29L,EAAA39L,EAAAy9L,EAAAtle,IACAQ,KAAA,IAAAiZ,EAAA44U,MACArrU,OACAxQ,KACAC,KACA2kB,GAAAmqc,EAAAvle,GAAAqhC,MACA3qB,EAAA6ud,EAAAvle,EAAA,GAAAqhC,cAOA,KAAAokc,EACAC,EAAA5sc,EAAAlpB,IAAAmlU,EAAA,SAAAR,EAAAh1S,GACA,IAAA2wK,EAAAqkI,EAAApkI,iBAEA,OADAs1R,EAAA,MAAAA,EAAAv1R,EAAAhwM,OAAA,EAAA8G,KAAAC,IAAAipM,EAAAhwM,OAAA,EAAAule,GACA3sc,EAAAlpB,IAAAsgM,EAAA,SAAAG,GACA,OAAAj3L,EAAAugC,aAAA02J,EAAAhvK,MAAA9B,OAGAomc,KAEA,IAAA3le,EAAA,EAAuBA,GAAAyle,EAAsBzle,IAAA,CAG7C,IAFA,IAAAq8B,KAEAlK,EAAA,EAAyBA,EAAA4iT,EAAA70U,OAA0BiyB,IACnDkK,EAAA77B,KAAAkle,EAAAvzc,GAAAnyB,IAQA,GAJAq8B,EAAA,IACAA,EAAA77B,KAAA67B,EAAA,GAAA96B,SAGA4je,EAEAn1R,EADAw1R,EAAAx1R,EAAAq1R,EAAArle,IACAQ,KAAA,IAAAiZ,EAAA2f,UACApS,OACAqV,aAKA,GAAA+oc,GAAAO,EAEA99L,EADA29L,EAAA39L,EAAAy9L,EAAAtle,EAAA,IACAQ,KAAA,IAAAiZ,EAAA4f,SACArS,OACAqV,SAAAroB,OAAA2xd,OAKAA,EAAAtpc,EAAA96B,QAAAilB,WAIA,IAAA3G,EAAAwe,EAAA6D,eACApiB,EAAAye,EAAAmE,eAEA5J,EAAA4E,KAAAmqQ,EAAA,SAAAA,EAAAtoQ,GACAtgC,KAAAg/B,MAAAC,IAAAzkB,EAAA62L,UAAAu3F,GACArwR,MAAAshB,EAAAmJ,UACAE,OAAA,OACAxrB,KAAA2ud,EAAA/lc,EAAA+lc,EAAAple,SACS4f,GACTsjB,QAAA,MAEKnkC,MACL65B,EAAA4E,KAAAsyK,EAAA,SAAAA,EAAAzwK,GACAtgC,KAAAg/B,MAAAC,IAAAzkB,EAAA62L,UAAAN,GACAx4L,MAAAshB,EAAAmJ,UACAtrB,KAAA,OACAwrB,OAAAkjc,EAAA9lc,EAAA8lc,EAAAnle,SACS2f,GACTujB,QAAA,MAEKnkC,MArGL,SAAAume,EAAAI,EAAAC,EAAAtmc,GACA,IAAAg9G,EAAAh9G,EAAAsmc,EAAA3le,OAEA,OADA0le,EAAArpV,GAAAqpV,EAAArpV,OACAA,MAsGAp6I,EAAAC,QAAAF,wBC3Lc1D,EAAQ,QAEtBq6B,QAFA,IAIAC,EAAat6B,EAAQ,QAoBrBsne,EAAA,IACAC,EAAA,iCAMA,SAAAl6a,EAAAgG,GACA,IAAA+jB,GACAnf,KAAA,GACA7tD,IAAA,IASA,OANAipD,IACAA,IAAA/xD,MAAAgme,GACAlwZ,EAAAnf,KAAA5E,EAAA,OACA+jB,EAAAhtE,IAAAipD,EAAA,QAGA+jB,EAuCA,IAAAowZ,EAAA,EAsBA,SAAA5/S,EAAAr5H,EAAArmB,GACA,IAAAr7B,EAAAytB,EAAAv3B,MAAAwC,UAAA,GACA,OAAA9E,KAAAm5G,WAAAj5G,UAAAunC,GAAAl7B,MAAAuhD,EAAA1hD,GAGA,SAAAxH,EAAAkpD,EAAArmB,EAAAr7B,GACA,OAAApM,KAAAm5G,WAAAj5G,UAAAunC,GAAAl7B,MAAAuhD,EAAA1hD,GAkJAjJ,EAAAypD,iBACAzpD,EAAA0sT,kBAvMA,SAAAm3K,EAAAC,GACAD,EAAAxub,aAAAwub,EAEAA,EAAAt9d,OAAA,SAAA8tC,GACA,IAAA2hE,EAAAn5G,KAEAkne,EAAA,WACA1vb,EAAAgB,aAGAhB,EAAAgB,aAAAjsC,MAAAvM,KAAA8E,WAFAq0G,EAAA5sG,MAAAvM,KAAA8E,YAYA,OANA+0B,EAAAnwB,OAAAw9d,EAAAhne,UAAAs3C,GACA0vb,EAAAx9d,OAAA1J,KAAA0J,OACAw9d,EAAA//S,YACA+/S,EAAAtie,aACAi1B,EAAA2xB,SAAA07a,EAAAlne,MACAkne,EAAA/tX,aACA+tX,IAoLA/je,EAAAy3U,iBAzKA,SAAAz/G,GACA,IAAAgsQ,GAAA,aAAAJ,IAAAh/d,KAAAstK,SAAA/tK,QAAA,IAAAlB,KAAA,KACA+0N,EAAAj7N,UAAAine,IAAA,EAEAhsQ,EAAA9uD,WAAA,SAAAlhK,GACA,SAAAA,MAAAg8d,MAqKAhke,EAAAqxL,sBA3IA,SAAA2rB,EAAA13M,GACAA,QAUA,IAAA6pD,KA2FA,GAzFA6tJ,EAAAinR,cAAA,SAAAnxS,EAAArjI,GAaA,OAZAA,IApFA,SAAAA,GACA/4B,EAAA8yB,OAAA,qCAAAgP,KAAA/I,GAAA,kBAAAA,EAAA,aAoFAy0a,CAAAz0a,IACAA,EAAAhG,EAAAgG,IAEAjpD,IAEOipD,EAAAjpD,MAAAm9d,KAuEP,SAAAl0a,GACA,IAAA26B,EAAAj7B,EAAAM,EAAA4E,MAOA,OALA+1B,KAAAu5Y,MACAv5Y,EAAAj7B,EAAAM,EAAA4E,UACAsva,IAAA,GAGAv5Y,EA9EA+5Y,CAAA10a,IACAA,EAAAjpD,KAAAssL,GAHA3jI,EAAAM,EAAA4E,MAAAy+H,GAOAA,GAGAkqB,EAAAnoJ,SAAA,SAAAuva,EAAAzxa,EAAA0xa,GACA,IAAAvxS,EAAA3jI,EAAAi1a,GAMA,GAJAtxS,KAAA6wS,KACA7wS,EAAAngI,EAAAmgI,EAAAngI,GAAA,MAGA0xa,IAAAvxS,EACA,UAAA52H,MAAAvJ,EAAA,aAAAyxa,EAAA,KAAAzxa,GAAA,kCAAAyxa,EAAA,8BAGA,OAAAtxS,GAGAkqB,EAAAnqB,qBAAA,SAAApjI,GACAA,EAAAhG,EAAAgG,GACA,IAAA7hD,KACA5F,EAAAmnD,EAAAM,EAAA4E,MAUA,OARArsD,KAAA27d,GACAjtc,EAAA4E,KAAAtzB,EAAA,SAAAgmE,EAAA3tE,GACAA,IAAAsje,GAAA/1d,EAAAxP,KAAA4vE,KAGApgE,EAAAxP,KAAA4J,GAGA4F,GAGAovM,EAAAzmI,SAAA,SAAA9mB,GAGA,OADAA,EAAAhG,EAAAgG,KACAN,EAAAM,EAAA4E,OAOA2oJ,EAAAqiI,qBAAA,WACA,IAAA7iP,KAIA,OAHA9lE,EAAA4E,KAAA6zB,EAAA,SAAAnnD,EAAA3H,GACAm8F,EAAAp+F,KAAAiC,KAEAm8F,GASAwgH,EAAAK,YAAA,SAAA5tJ,GACAA,EAAAhG,EAAAgG,GACA,IAAAznD,EAAAmnD,EAAAM,EAAA4E,MACA,OAAArsD,KAAA27d,IAGA3mR,EAAAvzJ,iBAaAnkD,EAAAmtL,mBAAA,CACA,IAAA6xS,EAAAtnR,EAAAz2M,OAEA+9d,IACAtnR,EAAAz2M,OAAA,SAAA8tC,GACA,IAAA0vb,EAAAO,EAAA/7d,KAAA1L,KAAAw3C,GACA,OAAA2oK,EAAAinR,cAAAF,EAAA1vb,EAAAh0C,QAKA,OAAA28M,GA2BAh9M,EAAAuke,YApBA,SAAAv8d,EAAAolM,2BChPA,IAMAttM,EANW1D,EAAQ,QAMnBmK,QACAlG,KAAA,OACAukB,OACAxQ,GAAA,EACAC,GAAA,EACAC,EAAA,EACA0kB,GAAA,GAEAuT,UAAA,SAAA7J,EAAA9d,GACA,IAAA1jB,EAAA0jB,EAAAxQ,GACAhT,EAAAwjB,EAAAvQ,GACA83D,EAAA,EAAAvnE,KAAAgwB,GACA8N,EAAAkhI,OAAA1iK,EAAA0jB,EAAAtQ,EAAAlT,GACAshC,EAAAshI,IAAA9iK,EAAAE,EAAAwjB,EAAAtQ,EAAA,EAAA63D,GAAA,GACAzpC,EAAAkhI,OAAA1iK,EAAA0jB,EAAAoU,GAAA53B,GACAshC,EAAAshI,IAAA9iK,EAAAE,EAAAwjB,EAAAoU,GAAA,EAAAmzC,GAAA,MAIApsE,EAAAC,QAAAF,wBCzBA,IAAA42B,EAAat6B,EAAQ,QAIrBujE,EAFcvjE,EAAQ,QAEtBujE,cAuEA3/D,EAAA2yJ,aA5CA,SAAAxB,EAAA1wJ,EAAAwxJ,GACA,IAAA+pL,EAAA7qL,EAAAr3I,OACA44I,EAAAspL,EAAAxmT,MAEA,SAAAk9H,GAAA,SAAAA,EACA,OAAAA,EAcA,IAVA,IAAAq9H,GACAl6Q,MAAApV,EAAAkuD,WACA74C,OAAArV,EAAAmuD,aAEA41a,EAAA,eAAAxoJ,EAAAriU,OAAA,IACA8qd,IAAA,mDACAC,EAAAD,EAAAD,GACAG,GAAA,WACAC,KAEAhne,EAAA,EAAiBA,EAAA,EAAOA,IACxBgne,EAAAH,EAAA,EAAAD,GAAA5me,IAAA+me,EAAA/me,GACAgne,EAAAF,EAAA9me,IAAA,IAAAA,EAAAq0J,EAAA,GAAA+pL,EAAA0oJ,EAAA9me,IAGA,IAAAine,IAAA,iCAAAL,GACAz/b,EAAA46B,EAAAila,EAAA70M,EAAAisD,EAAA5pT,SACA,OAAAsyc,GAAA3/b,EAAAgiC,OAAA89Z,EAAA,QAAA9/b,EAAA8/b,EAAA,OAAA9/b,EAAA8/b,EAAA,OAAA90M,EAAA80M,EAAA,UAmBA7ke,EAAA43J,iBAXA,SAAA9jG,GAOA,OANAp9B,EAAA4E,KAAAw4B,MAAA,SAAAI,GACA,MAAAJ,EAAA74B,YACA64B,EAAAjD,gBAAAiD,EAAA74B,UACA64B,EAAA74B,UAAA,QAGA64B,yBCxEA/zD,EAAAC,SAAkB4V,QAAYxZ,EAAQ,QAAkC6xE,YAAA,yBCAxE,IAAAv3C,EAAat6B,EAAQ,QAErBm4C,EAAiBn4C,EAAQ,QAEzBi0J,EAAaj0J,EAAQ,QAoBrBk/B,EAAA5E,EAAA4E,KACAgyC,EAAA/4B,EAAA+4B,IAWAw3Z,EAAA,SAAAnmc,EAAAqoC,EAAAwnI,EAAAhuM,GAKA3D,KAAAkoe,SAAApmc,EAKA9hC,KAAAmoe,WAAAh+Z,EAMAnqE,KAAAooe,aAMApoe,KAAAqoe,eAMAroe,KAAA4hR,YAOA5hR,KAAAsoe,YAMAtoe,KAAA2D,UAMA3D,KAAAuoe,eAAA52R,GAgWA,SAAA62R,EAAAzyM,EAAA0yM,GACA,IAAApyc,EAAA0/P,EAAAxmE,eACAm5Q,EAAA3yM,EAAAsyM,eACApyM,EAAAF,EAAAqyM,aAEA,GAAAM,EAAA,CAKA,IAAAr/d,EAAAquC,EAAA8+O,kBAAAP,GAAA,QACA5sR,EAAAtB,KAAAC,IAAAqB,EAAA,IAEA,IAAAs/d,EAAAF,GAAA,IAAAC,EAAA,UAAAA,EAAA,GACAryc,EAAAo2K,SAAAk8R,EAAA,MAAA1yM,EAAA,GAAA3uR,QAAA+B,GAAAs/d,EAAA,MAAA1yM,EAAA,GAAA3uR,QAAA+B,KAvWA4+d,EAAA/ne,WACAC,YAAA8ne,EASAW,SAAA,SAAAj3R,GACA,OAAA3xM,KAAAuoe,iBAAA52R,GAMAukF,mBAAA,WACA,OAAAl2R,KAAAooe,aAAA9le,SAMAq+V,qBAAA,WACA,OAAA3gW,KAAAqoe,eAAA/le,SAQAiyR,sBAAA,WACA,IAAA5yD,KACAh+N,EAAA3D,KAAA2D,QAeA,OAdAA,EAAAqxD,WAAA,SAAAx5B,GACA,GAAAg4H,EAAAioU,iBAAAjgc,EAAAx3B,IAAA,sBACA,IAAA89B,EAAA9hC,KAAAkoe,SACA7xc,EAAA1yB,EAAAgyL,iBACArmI,SAAAxtB,EAAA,OACAl1B,MAAA4uB,EAAAx3B,IAAA89B,EAAA,aACApgC,GAAA85B,EAAAx3B,IAAA89B,EAAA,YACS,GAET9hC,KAAAmoe,cAAA9xc,KAAA6hC,iBACAypK,EAAApgO,KAAAi6B,KAGKx7B,MACL2hO,GAEApS,aAAA,WACA,OAAAvvN,KAAA2D,QAAAG,aAAA9D,KAAAkoe,SAAA,OAAAloe,KAAAmoe,aAEAU,kBAAA,WACA,IAIA1/Z,EACA2/Z,EAUAC,EAfA//T,EAAAhpK,KAAAkoe,SACAvke,EAAA3D,KAAA2D,QACA0yB,EAAAr2B,KAAAuvN,eAmBA,MAlBA,MAAAvmD,GAAA,MAAAA,GAKA8/T,EAAA,YACA3/Z,EAAA,MAAA6/F,EAAA,UAEA8/T,EAAA,aACA3/Z,EAAA,UAAA6/F,EAAA,kBAIArlK,EAAAkvD,cAAAsW,EAAA,gBAAA6/Z,IACAA,EAAAhle,IAAA8ke,IAAA,MAAAzyc,EAAAryB,IAAA8ke,IAAA,KACAC,EAAAC,KAGAD,GAEAp5Q,cAAA,WACA,OAAA91L,EAAAmQ,MAAAhqC,KAAAsoe,cAYAtyM,oBAAA,SAAAp9P,GACA,IAAAo/H,EAAAh4J,KAAA4hR,YAEArwQ,EADAvR,KAAAuvN,eACA95L,KAAAlkB,MAEA03d,EAAAjpe,KAAAuoe,eAAAW,mBAEAzzM,GAAA,OACAizM,GAAA9vc,EAAAp2B,MAAAo2B,EAAA1H,KACA+kQ,KAsCA,OArCAx3P,GAAA,kCAAA39B,GACAm1R,EAAA10R,KAAA,MAAAq3B,EAAA93B,GAAAyQ,EAAApE,MAAAyrB,EAAA93B,IAAA,QAGA29B,GAAA,cAAA6B,GACA,IAAA6oc,EAAAlzM,EAAA31P,GACA8oc,EAAAV,EAAApoc,GAYA,YAAA2oc,EAAA3oc,IACA,MAAA8oc,IACAA,EAAA3zM,EAAAn1P,IAIA6oc,EAAA53d,EAAApE,MAAAuqC,EAAA+7G,UAAA21U,EAAA3zM,EAAAz9H,GAAA,KAKAoxU,EAAA1xb,EAAA+7G,UAAA01U,EAAAnxU,EAAAy9H,GAAA,GAKAQ,EAAA31P,GAAA6oc,EACAT,EAAApoc,GAAA8oc,KAGAnzM,YAAAxlN,EAAAwlN,GACAyyM,cAAAj4Z,EAAAi4Z,KAWA59d,MAAA,SAAA6mM,GACA,GAAAA,IAAA3xM,KAAAuoe,eAAA,CAIA,IAAA10F,EAAA7zY,KAAAu0R,wBAEAv0R,KAAA4hR,YAyHA,SAAAmU,EAAA/sH,EAAA24D,GACA,IAAA3pE,GAAAv+G,UACAhb,EAAAkjM,EAAA,SAAAnmM,GACA,IAAAjT,EAAAiT,EAAAtP,UAEA3D,GACAkW,EAAAlW,EAAAiW,aAAAwqI,GAAA,YAAA3wI,GACA,IAAAgxc,EAAA9gd,EAAA+wB,qBAAAjhB,GACAgxc,EAAA,GAAArxU,EAAA,KAAAA,EAAA,GAAAqxU,EAAA,IACAA,EAAA,GAAArxU,EAAA,KAAAA,EAAA,GAAAqxU,EAAA,QAKArxU,EAAA,GAAAA,EAAA,KACAA,GAAAyW,UAaA,OAGA,SAAAsnH,EAAA/9H,GACA,IAAA3hI,EAAA0/P,EAAAxmE,eACAvnN,EAAAquB,EAAAy6I,QAAA,GAGAkqJ,EAAA,aAAA3kS,EAAAryB,IAAA,QACA4sK,EAAAoqJ,GAAA3kS,EAAA26I,gBAAA/vK,OAEA,MAAA+G,GAAA,YAAAA,GAAA,mBAAAA,EACAgwJ,EAAA,GAAAhwJ,EACGgzT,IACHhjK,EAAA,GAAA4Y,EAAA,IAAAnC,KAGA,IAAAxmK,EAAAouB,EAAA06I,QAAA,GAEA,MAAA9oK,GAAA,YAAAA,GAAA,mBAAAA,EACA+vJ,EAAA,GAAA/vJ,EACG+yT,IACHhjK,EAAA,GAAA4Y,EAAA,EAAAA,EAAA,EAAAnC,KAGAp4I,EAAAryB,IAAA,cACAg0J,EAAA,OAAAA,EAAA,MACAA,EAAA,OAAAA,EAAA,OA5BAsxU,CAAAvzM,EAAA/9H,GACAA,EArJAuxU,CAAAvpe,UAAAkoe,SAAAr0F,GAUA,IAAA21F,EAAAxpe,KAAAg2R,oBAAArkF,EAAA10L,QACAjd,KAAAooe,aAAAoB,EAAAvzM,YACAj2R,KAAAqoe,eAAAmB,EAAAd,cA+LA,SAAA3yM,GACA,IAAAtmE,EAAAsmE,EAAAuyM,eACA32R,EAAAokF,EAAAwyM,eACA9pc,GAAA,sBAAA2wL,GACAK,EAAAL,EAAA,QAAAzd,EAAA3tM,IAAAorN,EAAA,QAEA,IAAAq6Q,EAAA93R,EAAA3tM,IAAAorN,EAAA,aAEA,SAAAq6Q,IACAh6Q,EAAAL,EAAA,aAAAq6Q,EAGA,OAFAA,EAAA1zM,EAAAxmE,eAAA95L,KAAAlkB,MAAApE,MAAAs8d,KAEA,CACA,IAAAzxU,EAAA+9H,EAAAnU,YACAnyD,EAAAL,EAAA,QAAA13K,EAAA+7G,UAAAuE,EAAA,GAAAyxU,EAAAzxU,GAAA,cA5MA0xU,CAAA1pe,MAEAwoe,EAAAxoe,QAMAw2K,QAAA,SAAAm7B,GACAA,IAAA3xM,KAAAuoe,iBAIAvoe,KAAAooe,aAAApoe,KAAAqoe,eAAA,KACAG,EAAAxoe,MAAA,KAMAmgV,WAAA,SAAAxuI,EAAA/tM,GACA,GAAA+tM,IAAA3xM,KAAAuoe,eAAA,CAIA,IAAAv/T,EAAAhpK,KAAAkoe,SACAvmQ,EAAA3hO,KAAAu0R,wBACAo1M,EAAAh4R,EAAA3tM,IAAA,cACAiyR,EAAAj2R,KAAAooe,aAEA,SAAAuB,GAwBAlrc,EAAAkjM,EAAA,SAAAnmM,GACA,IAAAjT,EAAAiT,EAAAtP,UACAqoT,EAAAhsT,EAAAiW,aAAAwqI,GAAA,GAEA,eAAA2gU,EACAphd,EAAAm7P,WAAA,SAAAtlP,GAKA,IAJA,IAAAwrc,EACAC,EACAxsT,EAEAt8K,EAAA,EAAyBA,EAAAwzU,EAAAtzU,OAAqBF,IAAA,CAC9C,IAAAwG,EAAAghB,EAAAvkB,IAAAuwU,EAAAxzU,GAAAq9B,GACA0rc,GAAAr/d,MAAAlD,GACAwie,EAAAxie,EAAA0uR,EAAA,GACA+zM,EAAAzie,EAAA0uR,EAAA,GAEA,GAAA6zM,IAAAC,IAAAC,EACA,SAGAF,IAAAzsT,GAAA,GACA0sT,IAAAH,GAAA,GACAI,IAAAH,GAAA,GAIA,OAAAxsT,GAAAusT,GAAAC,IAGAprc,EAAA81S,EAAA,SAAAl8S,GACA,aAAAsxc,EACAnuc,EAAAuhJ,QAAAx0J,EAAA5X,IAAA0nB,EAAA,SAAA9wB,GACA,OAgBA,SAAAA,GACA,OAAAA,GAAA0uR,EAAA,IAAA1uR,GAAA0uR,EAAA,GAjBAg0M,CAAA1ie,KAAAknK,WAEW,CACX,IAAAruD,KACAA,EAAA/nF,GAAA49P,EAEA1tQ,EAAAs2Q,YAAAz+K,MAKA3hF,EAAA81S,EAAA,SAAAl8S,GACA9P,EAAAy1Q,qBAAA/H,EAAA59P,UAgHA,IAAAp1B,EAAAgle,EACA/ke,EAAAC,QAAAF,wBCzdA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBi3G,EAAWj3G,EAAQ,QAEnBkuN,EAAqBluN,EAAQ,QAoB7B2qe,EAAA1zX,EAAAx8F,QAAAs5R,UAEA,SAAA62L,EAAA5yc,GACAv3B,KAAAu3B,QAGA4yc,EAAAz1c,eACArvB,MAAA,EACA7B,QAEAgwE,MACA/tE,KAAA,+DACAojB,IAAA,kFACA/a,MAAA,mYAEAylS,MAAA,sGAGAr5R,MAAA2f,EAAAmQ,MAAAkgc,EAAAhwd,OACA+C,UACAkV,gBAEA,IAAAqlB,EAAA2yb,EAAAjqe,UAEAs3C,EAAA6tR,SAAA,WACA,IAAA9tS,EAAAv3B,KAAAu3B,MACAi+U,EAAAj+U,EAAAvzB,IAAA,QACAohU,KAMA,OALAvrS,EAAA4E,KAAAlH,EAAAvzB,IAAA,iBAAAR,GACAgyW,EAAAhyW,KACA4hU,EAAA5hU,GAAAgyW,EAAAhyW,MAGA4hU,GAGA,IAAAglK,GACA3ke,KAAA,SAAAoqE,EAAAxL,EAAA7oC,EAAAjE,GACA,WAAAs4C,EACA,OAAAh2C,EAAA82C,OACAjvE,GAAA2iE,EACA7gE,KAAA,OAEAsN,KAAA0qB,EAAAx3B,IAAA,QACA8J,MAAA0tB,EAAAx3B,IAAA,SACA6V,UAAA2hB,EAAAx3B,IAAA,aACA2V,SAAA6hB,EAAAx3B,IAAA,aACOuzB,EAAAvzB,IAAA,oBAAgC,IAGvC6kB,IAAA,SAAAgnD,EAAAxL,EAAA7oC,EAAAjE,GACA,YAAAs4C,EACA,OAAAh2C,EAAA82C,OACAjvE,GAAA2iE,EACA7gE,KAAA,MAEAsN,KAAA0qB,EAAAx3B,IAAA,QACA8J,MAAA0tB,EAAAx3B,IAAA,SACA6V,UAAA2hB,EAAAx3B,IAAA,aACA2V,SAAA6hB,EAAAx3B,IAAA,aACOuzB,EAAAvzB,IAAA,mBAA+B,IAGtC8J,MAAA,SAAA+hE,EAAAxL,EAAA7oC,EAAAjE,GACA,YAAAs4C,GAAA,QAAAA,EACA,OAAAh2C,EAAA82C,OACAjvE,GAAA2iE,EACAv2D,MAAA,0BACOypB,EAAAvzB,IAAA,qBAAiC,IAGxCuvS,MAAA,SAAA1jO,EAAAxL,EAAA7oC,EAAAjE,GACA,YAAAs4C,GAAA,QAAAA,EACA,OAAAh2C,EAAA82C,OACAjvE,GAAA2iE,EACAv2D,MAAA,IACOypB,EAAAvzB,IAAA,qBAAiC,KAIxCqme,IAAA,iCAEA7yb,EAAAk3K,QAAA,SAAA/qN,EAAAC,EAAAJ,GACA,IAAA+zB,EAAAv3B,KAAAu3B,MACApF,EAAAoF,EAAAvzB,IAAA,eAAAR,GAEA,GAAA4me,EAAA5me,GAAA,CAIA,IAAAm+D,GACArvD,WAwCAunB,EAAA4E,KAAA4rc,EAAA,SAAAn0D,GACAr8Y,EAAA/5B,QAAAo2a,EAAA1ya,IAAA,GACAq2B,EAAA4E,KAAAy3Y,EAAA,SAAAvpa,GACA4qB,EAAA22L,cAAAvhN,EAAA,cAIA4qB,EAAA22L,cAAA1qN,EAAA,YACAG,EAAAkvD,eACAvD,SAAA,SACAyG,MAAA,MAAA5jC,EAAA,MACAA,gBAhDA,SAAAqJ,GACA,IAAAq0C,EAAAr0C,EAAAs6B,QACAuO,EAAA7oC,EAAA95B,GACA4oe,EAAAF,EAAA5me,GAAAqsE,EAAAxL,EAAA7oC,EAAAjE,GAEA+yc,IAEAzwc,EAAAmJ,SAAAsnc,EAAA9uc,EAAAve,QACA0kD,EAAArvD,OAAA/Q,KAAA+oe,IAIA,IAAAjvc,EAAAG,EAAAnN,iBAEA,GAAAgN,GAAA,gBAAAA,EAAA73B,OAAA,SAAAA,GAAA,QAAAA,GAAA,CACA,IAAA2B,EAAAk2B,EAAA4C,eAAA,cAEA,GAAA94B,EAAA,CACA,IACAmmD,EADAnmD,EAAAkzB,IACA,OAMA8xC,EALAxmE,EAAAgyL,iBACArmI,SAAAhE,EACA1+C,MAAA4uB,EAAAx3B,IAAApB,KAAA,SACAlB,GAAA85B,EAAAx3B,IAAApB,KAAA,QACS,GACTs1D,eACAyJ,EAAArW,GAAAqW,EAAArW,OAEA,QAAAvqD,EAAA,EAAuBA,GAAAopE,EAAgBppE,IACvC4gE,EAAArW,GAAA6e,GAAAxI,EAAArW,GAAA6e,OAGAxI,EAAArW,GAAA6e,GAAAz3C,YAAA,QAAAlvB,MAmBAI,EAAAQ,gBACAZ,KAAA,kBACA+me,YAAA/me,EACAm+D,gBAIAv+D,EAAAs4D,gBACAl4D,KAAA,kBACA+zD,MAAA,mBACAhb,OAAA,oBACC,SAAA3Y,EAAAjgC,GACDA,EAAAyhL,YAAAxhJ,EAAA+9B,aAEA8rJ,EAAAxpN,SAAA,YAAAkme,GACA,IAAAlne,EAAAkne,EACAjne,EAAAC,QAAAF,wBC3LA,IAAA42B,EAAat6B,EAAQ,QAErB06B,EAAgB16B,EAAQ,QAoExB2D,EAAAC,QA1CA,SAAAukC,EAAA/jC,GACA,IAEA63B,EAFA6O,KACAlY,EAAAuV,EAAAvV,YAGA,SAAAA,KAAAqJ,EAAA73B,EAAAw2D,iBAAAhoC,IACA,OACAkY,UAIA,IAAAv5B,EAAA0qB,EAAAtP,UACAkS,EAAAnE,EAAA4J,eAAA/yB,EAAA42B,GAEA,SAAAtJ,KAAA,GAAAvE,EAAA/tB,QAAAsyB,GACA,OACAiM,UAIA,IAAA5pC,EAAAqQ,EAAAgzB,iBAAA1F,GACA/C,EAAAG,EAAAnN,iBAEA,GAAAmN,EAAA0+S,mBACA7vS,EAAA7O,EAAA0+S,mBAAA97S,YACG,GAAA/C,KAAA4O,YACHI,EAAAhP,EAAA4O,YAAAn5B,EAAAmpL,UAAApgK,EAAAlpB,IAAA0qB,EAAA0G,WAAA,SAAA1J,GACA,OAAAvnB,EAAA0tB,aAAAnG,KACK+F,GAAA,aACF,GAAA39B,EAAA,CAEH,IAAAynC,EAAAznC,EAAAqnC,kBAAAkC,QACA9B,EAAAlB,eAAAvmC,EAAAw3B,WACAoS,GAAAnC,EAAA7jC,EAAA6jC,EAAAlvB,MAAA,EAAAkvB,EAAA3jC,EAAA2jC,EAAAjvB,OAAA,GAGA,OACAoxB,QACA5pC,6BClEA,IAAA2C,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAA41X,EAAuB51X,EAAQ,QAE/Bire,EAAuBjre,EAAQ,QAE/Bo6L,EAAiBp6L,EAAQ,QAoBzB6D,EAAAm6D,eAAA43T,GACA/xX,EAAAw4D,eAAA4ua,GACApne,EAAAk4D,kBAAAq+H,EAAA,qCClCA,IAAAv2L,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAoBR6D,EAAAg4D,qBAAA,SAAAxiC,GAEAA,EAAAjf,SAAAif,EAAAjf,kDCxBAxW,EAAAiuE,YAAA,EACAjuE,EAAA47O,MAEA,SAAAxxO,GACA,YAAAG,IAAAH,GAAA,OAAAA,GAFApK,EAAAwjO,SAIA,SAAAt1L,GAEA,MADA,yCACAsqB,KAAAtqB,0BCVA,IAEAq9H,EAFoBnvK,EAAQ,QAE5BmvK,iBAEA27G,EAAc9qR,EAAQ,QAEtBi5U,EAAAnuD,EAAAmuD,iBACAztB,EAAA1gC,EAAA0gC,UAoBA0/K,EAAA,cAEAxne,GAOAs3D,cAAA,SAAAn8B,EAAA/b,GACA,IAAAvR,EAAA9Q,KAAAksB,QAAA7J,GACAykX,EAAA9mY,KAAA85M,YAAA17K,EAAA/b,GACAk8Q,EAAAztR,EAAAy4J,YAAAnrI,GACAx7B,EAAAkO,EAAAqzD,QAAA/lC,GACA6hU,EAAAnvV,EAAAuxD,eAAAjkC,GACAj4B,EAAA2K,EAAAojD,cAAA91B,EAAA,SACA,OACAw0B,cAAA5yD,KAAAsvD,SACAt9B,iBAAAhyB,KAAA81D,QACA+Z,WAAA,WAAA7vE,KAAAsvD,SAAAtvD,KAAA81D,QAAA,KACA3jC,YAAAnyB,KAAAmyB,YACAkyC,SAAArkE,KAAA0B,GACA0Q,WAAApS,KAAA4C,KACAA,OACAw7B,UAAAmgQ,EACAztR,KAAAmvV,EACA59U,WACA9a,MAAAu/X,EACA3gY,QACAkb,OAAAm3T,EAAAryU,GAEAsmL,OAAA,+BAaAmtB,kBAAA,SAAAx7K,EAAAnoB,EAAAoM,EAAA+V,EAAA+9b,GACAlgd,KAAA,SACA,IAAAnF,EAAA9Q,KAAAksB,QAAA7J,GACA6iD,EAAAp0D,EAAAq0D,aAAA/mC,GACAzM,EAAA3xB,KAAAu6D,cAAAn8B,EAAA/b,GAEA,MAAA+V,GAAAzG,EAAApqB,iBAAAsE,QACA8lB,EAAApqB,MAAAoqB,EAAApqB,MAAA6wB,IAGA,IAAAxqB,EAAAs3D,EAAAlhE,IAAA,WAAAiS,GAAAkgd,GAAA,sBAAAlgd,EAAAkgd,GAAA,sBAEA,yBAAAvod,GACA+jB,EAAA1b,SACArI,EAAA+jB,IACK,iBAAA/jB,EACLm9S,EAAAn9S,EAAA+jB,GAGAppB,QAAAkie,EAAA,SAAArhc,EAAA/Q,GACA,IAAAx2B,EAAAw2B,EAAAp3B,OAMA,MAJA,MAAAo3B,EAAA6mB,OAAA,UAAA7mB,EAAA6mB,OAAAr9C,EAAA,KACAw2B,KAAA/1B,MAAA,EAAAT,EAAA,IAGA6sK,EAAA59J,EAAAstB,EAAA/F,UAXK,GAsBLyhL,YAAA,SAAAx5K,EAAAje,GACA,OAAAqsJ,EAAA1uK,KAAAksB,QAAA7J,GAAAie,IAUAmmJ,cAAA,cAGAvjL,EAAAC,QAAAF,wBC1HA,IAAAG,EAAc7D,EAAQ,QAItBovE,EAFkBpvE,EAAQ,QAE1BovE,oBAmCAvrE,EAAAs4D,gBAdAl4D,KAAA,YACA+zD,MAAA,YACAhb,OAAA,QAYA,SAAA3Y,EAAAjgC,GACAA,EAAAkvD,eACAvD,SAAA,SACAyG,MAAAnyB,GACG,SAAApI,GACH,IAAAH,EAAAG,EAAAnN,iBACAjf,EAAAu/D,EAAAtzC,EAAAuI,GACApI,EAAA+M,WAAA/M,EAAA+M,UAAAn5B,EAAA0U,QACA0X,EAAAkN,SAAAlN,EAAAkN,QAAAt5B,EAAA0a,UAWA1mB,EAAAs4D,gBACAl4D,KAAA,qBACA+zD,MAAA,qBACAhb,OAAA,mCACC,cAQDn5C,EAAAs4D,gBACAl4D,KAAA,uBACA+zD,MAAA,uBACAhb,OAAA,qCACC,oCC1ED,IAAA1iB,EAAat6B,EAAQ,QAErBorC,EAAUprC,EAAQ,QAIlBk1L,EAFal1L,EAAQ,QAErBk1L,UAEAF,EAAah1L,EAAQ,QAErBswT,EAAAt7H,EAAAs7H,kBACA+qB,EAAArmJ,EAAAqmJ,iBAEA8vJ,EAAqBnre,EAAQ,QAE7Bore,EAAqBpre,EAAQ,QAE7Bqre,EAAqBrre,EAAQ,QAE7Bsre,EAAqBtre,EAAQ,QAwB7BooC,EAAA9N,EAAA8N,MACAgtJ,EAAAF,IASA,SAAA9P,EAAA1nK,EAAA6oK,EAAAniL,GAKA3D,KAAA8lL,cAMA9lL,KAAA2D,UAMA3D,KAAAid,SA+GA,SAAA6td,EAAA3/d,EAAAuB,EAAAo5K,GACA,QAAA/kL,EAAA,EAAiBA,EAAA2L,EAAAzL,UAEjByL,EAAA3L,IAOA,OAFAoK,KAAA,iBAAAA,IAAAuB,EAAA3L,IAAA,OAPqCA,KAkBrC,OAJA,MAAAoK,GAAA26K,IACA36K,EAAA26K,EAAA9hL,IAAA0I,IAGAvB,EAIA,SAAA+qd,EAAA3+b,EAAAl3B,GACA,IAAA0qe,EAAAp2S,EAAAp9J,GAAA2+b,UACA,OAAA6U,IAAAr/d,KAAA6rB,EAAAl3B,GAAAk3B,EAAAuuJ,YA7HAnB,EAAAzkL,WACAC,YAAAwkL,EAMAnmK,KAAA,KAKA4mK,YAAA,SAAAnoK,GACA4c,EAAA82C,MAAA3wE,KAAAid,UAAA,IAQAjZ,IAAA,SAAA3D,EAAA4pL,GACA,aAAA5pL,EACAL,KAAAid,OAGA6td,EAAA9qe,KAAAid,OAAAjd,KAAAomL,UAAA/lL,IAAA4pL,GAAAisS,EAAAl2d,KAAAK,KAQAglE,WAAA,SAAAt7D,EAAAkgL,GACA,IAAAhtK,EAAAjd,KAAAid,OACA1P,EAAA,MAAA0P,MAAAlT,GACA+7K,GAAAmE,GAAAisS,EAAAl2d,KAAA+J,GAMA,OAJA,MAAAwD,GAAAu4K,IACAv4K,EAAAu4K,EAAAzgH,WAAAt7D,IAGAwD,GAQA8xB,SAAA,SAAAh/B,EAAAylL,GACA,IACAklT,EAEA,WAAArmT,EAHA,MAAAtkL,EAAAL,KAAAid,OAAA6td,EAAA9qe,KAAAid,OAAA5c,EAAAL,KAAAomL,UAAA/lL,IAEAylL,MAAAklT,EAAA9U,EAAAl2d,KAAAK,KAAA2qe,EAAA3rc,SAAAh/B,GACAL,KAAA2D,UAMAs8B,QAAA,WACA,aAAAjgC,KAAAid,QAEAs3C,YAAA,aAEAvqB,MAAA,WAEA,WAAA0hM,EADA1rO,KAAAG,aACA05B,EAAAmQ,MAAAhqC,KAAAid,UAEAyqd,YAAA,SAAAn3R,KAGAnqB,UAAA,SAAA/lL,GAKA,MAJA,iBAAAA,IACAA,IAAAQ,MAAA,MAGAR,GAQAgmL,mBAAA,SAAA0kT,GACAp2S,EAAA30L,MAAAk2d,UAAA6U,GAEAtla,mBAAA,WACA,IAAA96B,EAAAuuB,KAAA,CACA,SAAAl5D,KAAAid,OAAAzb,UACA,QAAAxB,KAAAid,OAAAzb,UACO,GAAAxB,KAAA8lL,YACP,OAAA9lL,KAAA8lL,YAAArgH,wBAmCAoqP,EAAAlrI,GACAi2J,EAAAj2J,GACAh9I,EAAAg9I,EAAA+lT,GACA/ic,EAAAg9I,EAAAgmT,GACAhjc,EAAAg9I,EAAAimT,GACAjjc,EAAAg9I,EAAAkmT,GACA,IAAA5ne,EAAA0hL,EACAzhL,EAAAC,QAAAF,wBCzNA,IAAA4xT,EAAYt1T,EAAQ,QAEpB+rC,EAAc/rC,EAAQ,QAItBk/B,EAFYl/B,EAAQ,QAEpBk/B,KAOA,SAAA+0I,EAAAjmK,GACA,OAAAqsE,SAAArsE,EAAA,IAOA,SAAA09d,EAAApwb,EAAAyX,GACAhnB,EAAA4qU,UACAl2W,KAAA66C,OACA76C,KAAAsyD,UACA,IAAA44a,EAAAr7d,SAAAC,cAAA,OACAm/B,EAAAp/B,SAAAC,cAAA,OACAo7d,EAAA3yd,MAAAyzB,QAAA,mFACAiD,EAAA12B,MAAAyzB,QAAA,kCACA6O,EAAA5qC,YAAAi7d,GACAlre,KAAAmre,SAAAl8b,EACAjvC,KAAAore,aAAAF,EACAlre,KAAAwc,SAEA,IAAAyrY,EAAA31V,EAAA4lI,eACAgwN,EAAA51V,EAAAylI,aAEAzlI,EAAA4lI,eAAA,SAAAz3L,GACAwnZ,EAAAv8Y,KAAA4mD,EAAA7xD,GAEAA,GACAA,EAAA+wC,UAAA/wC,EAAA+wC,SAAAvC,IAIAqjB,EAAAylI,aAAA,SAAAt3L,GAEAA,EAAAgxC,OAAAhxC,EAAAgxC,MAAAxC,GACAi5W,EAAAx8Y,KAAA4mD,EAAA7xD,IAGAT,KAAAqre,aAAA,EAGAJ,EAAA/qe,WACAC,YAAA8qe,EACAn+d,QAAA,WACA,aAMAq9J,gBAAA,WACA,OAAAnqK,KAAAore,cAEAl2T,sBAAA,WACA,IAAAhL,EAAAlqK,KAAAmqK,kBAEA,GAAAD,EACA,OACAzrH,WAAAyrH,EAAAzrH,YAAA,EACAC,UAAAwrH,EAAAxrH,WAAA,IAQA0H,QAAA,WACA,IAAAv5B,EAAA7sB,KAAAsyD,QAAAC,gBAAA,MAEAvyD,KAAAs1K,WAAAzoJ,IAEAyoJ,WAAA,SAAAzoJ,GAGA,IAFA,IAAAoiB,EAAAjvC,KAAAmre,SAEApqe,EAAA,EAAmBA,EAAA8rB,EAAA5rB,OAAiBF,IAAA,CACpC,IAAAN,EAAAosB,EAAA9rB,GAEAN,EAAA42J,WAAA52J,EAAAujC,QACAvjC,EAAA6qe,qBACA7qe,EAAA+wC,SAAAvC,GAIAxuC,EAAA6qe,qBAAA,IAEA7qe,EAAA6qe,qBACA7qe,EAAAgxC,MAAAxC,GAGAxuC,EAAA6qe,qBAAA,EAEA7qe,EAAAy0C,UACAz0C,EAAAk4K,aAAAl4K,EAAAk4K,eACAl4K,EAAAuuC,UAAAvuC,EAAA4Z,OAAA3O,KAAAjL,EAAAwuC,GACAxuC,EAAAm4K,YAAAn4K,EAAAm4K,eAIAn4K,EAAAy0C,SAAA,EAGAl1C,KAAAqre,cAIArre,KAAAore,aAAAn7d,YAAAg/B,GAEAjvC,KAAAqre,aAAA,IAGA7ud,OAAA,SAAAxD,EAAAC,GACAD,EAAA,MAAAA,EAAAhZ,KAAAure,YAAAvyd,EACAC,EAAA,MAAAA,EAAAjZ,KAAAwre,aAAAvyd,EAEA,GAAAjZ,KAAAs0K,QAAAt7J,GAAAhZ,KAAAu0K,SAAAt7J,EAAA,CACAjZ,KAAAs0K,OAAAt7J,EACAhZ,KAAAu0K,QAAAt7J,EACA,IAAAwyd,EAAAzre,KAAAore,aAAA7yd,MACAkzd,EAAAzyd,QAAA,KACAyyd,EAAAxyd,SAAA,OAGAlU,QAAA,WACA/E,KAAA66C,KAAAjG,UAAA,GACA50C,KAAAmre,SAAAnre,KAAAore,aAAApre,KAAAsyD,QAAA,MAEAR,SAAA,WACA,OAAA9xD,KAAAs0K,QAEAviH,UAAA,WACA,OAAA/xD,KAAAu0K,SAEAnvH,MAAA,WACAplD,KAAAore,cACApre,KAAA66C,KAAArO,YAAAxsC,KAAAore,eAGAG,UAAA,WACA,IAAA1wb,EAAA76C,KAAA66C,KACA0/H,EAAA1/H,EAAAovK,aACA,OAAApvK,EAAAl+B,aAAA62J,EAAA+G,EAAAvhK,QAAAw6J,EAAA+G,EAAAiyI,aAAAh5I,EAAA+G,EAAA5gG,cAAA,GAEA6xZ,WAAA,WACA,IAAA3wb,EAAA76C,KAAA66C,KACA0/H,EAAA1/H,EAAAovK,aACA,OAAApvK,EAAAj+B,cAAA42J,EAAA+G,EAAAthK,SAAAu6J,EAAA+G,EAAAspG,YAAArwG,EAAA+G,EAAAwpG,eAAA,IAWAtlP,GAAA,4JAAA77B,GAPA,IAAA8rC,EAQAu8b,EAAA/qe,UAAA0C,IARA8rC,EAQA9rC,EAPA,WACAiyT,EAAA,iDAAAnmR,EAAA,SAQA,IAAAzrC,EAAAgoe,EACA/ne,EAAAC,QAAAF,qCC5KAE,EAAAiuE,YAAA,EAEA,IAAApmE,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAC,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAAF,QAAAE,EAAAhL,cAAA8K,QAAAE,IAAAF,OAAA/K,UAAA,gBAAAiL,GAE5IhI,EAAA4V,QAAA,SAAAub,GAuCA,OA7BA,SAAA+iB,GACA,QAAA13B,EAAA7a,UAAA7D,OAAAmL,EAAAP,MAAA8T,EAAA,EAAAA,EAAA,KAAAhC,EAAA,EAAsFA,EAAAgC,EAAahC,IACnGvR,EAAAuR,EAAA,GAAA7Y,UAAA6Y,GAWA,OARA,IAAAvR,EAAAnL,QAAA,WAAA+J,EAAAoB,EAAA,MACAA,IAAA,IAGAA,KAAAvJ,iBACAuJ,MAGAirC,EAAA9uC,QAAAmje,EAAA,SAAAvie,EAAA+9N,EAAAnmO,EAAA6L,GACA,IAAAmE,OAAA,EAEA,YAAAsmC,EAAAzqC,EAAA,IAAkC,MAAAyqC,EAAAzqC,EAAAzD,EAAAlI,QAClCF,EAGA,QADAgQ,GAAA,EAAAtR,EAAA4N,QAAAjB,EAAArL,GAAAqL,EAAArL,GAAA,YACA2M,IAAAqD,EACA,GAGAA,MAQA,IAAAtR,EAAYF,EAAQ,QAEpBmse,EAAA,mDClDA,IAAAh0b,EAAiBn4C,EAAQ,QAwBzB43N,EAAAz/K,EAAAttC,MAoCA,SAAAmtN,EAAA79K,GAEA,OAAAhC,EAAAI,iBAAA4B,GAAA,EAGA,SAAAgsJ,EAAAkyB,EAAAt3L,EAAAtF,GACA48L,EAAAt3L,GAAAv4B,KAAAE,IAAAF,KAAAC,IAAA4vN,EAAAt3L,GAAAtF,EAAA,IAAAA,EAAA,IAIA,SAAAk4K,EAAA0kB,EAAA58L,IACAsjB,SAAAs5K,EAAA,MAAAA,EAAA,GAAA58L,EAAA,KACAsjB,SAAAs5K,EAAA,MAAAA,EAAA,GAAA58L,EAAA,IACA0qK,EAAAkyB,EAAA,EAAA58L,GACA0qK,EAAAkyB,EAAA,EAAA58L,GAEA48L,EAAA,GAAAA,EAAA,KACAA,EAAA,GAAAA,EAAA,IA6CAz0N,EAAAu0N,uBAxFA,SAAA18L,EAAAhT,EAAAsqJ,EAAAC,GACA,IAAAxhK,KACAqoB,EAAA4B,EAAA,GAAAA,EAAA,GACA0e,EAAA3oC,EAAA2oC,SAAAhC,EAAAu7J,KAAA75K,EAAApR,GAAA,GAEA,MAAAsqJ,GAAA54H,EAAA44H,IACA54H,EAAA3oC,EAAA2oC,SAAA44H,GAGA,MAAAC,GAAA74H,EAAA64H,IACA74H,EAAA3oC,EAAA2oC,SAAA64H,GAIA,IAAAlpK,EAAA0H,EAAA4mN,kBAAAJ,EAAA79K,GAIA,OADAw5J,EADAniM,EAAA6mN,gBAAAT,EAAApvN,KAAAowC,KAAAnd,EAAA,GAAA0e,KAAArwC,GAAA8tN,EAAApvN,KAAAkwC,MAAAjd,EAAA,GAAA0e,KAAArwC,IACA2xB,GACAjqB,GAuEA5N,EAAAo0N,uBACAp0N,EAAA+vM,YACA/vM,EAAAq0N,sBA5CA,SAAA99K,EAAA1e,EAAA48L,EAAAD,GACA,IAAAnrB,KAEA,IAAA9yJ,EACA,OAAA8yJ,EAMAxxK,EAAA,GAAA48L,EAAA,IACAprB,EAAAjrM,KAAAy5B,EAAA,IAKA,IAFA,IAAAotF,EAAAwvG,EAAA,GAEAxvG,GAAAwvG,EAAA,KACAprB,EAAAjrM,KAAA6mH,IAEAA,EAAA+uG,EAAA/uG,EAAA1uE,EAAAi+K,MAEAnrB,IAAAvrM,OAAA,KAMA,GAAAurM,EAAAvrM,OAnBA,IAoBA,SAUA,OAJA+5B,EAAA,IAAAwxK,EAAAvrM,OAAAurM,IAAAvrM,OAAA,GAAA22N,EAAA,KACAprB,EAAAjrM,KAAAy5B,EAAA,IAGAwxK,yBCvHA,IAAArhK,EAAW5rC,EAAQ,QAGnB0D,EAAAkoC,EAAAzhC,QACAlG,KAAA,WACAukB,OACAuvN,MAAA,MAEAq0P,iBAAA,WAIA,IAHA,IAAAr9K,EAAAtuT,KAAAwvC,YACA8nM,EAAAt3O,KAAA+nB,MAAAuvN,MAEAv2O,EAAA,EAAmBA,EAAAu2O,EAAAr2O,OAAkBF,IAErCutT,KAAAh3E,EAAAv2O,GAAAyuC,YAGAxvC,KAAAwvC,YAAA8+Q,EACAtuT,KAAAk1C,QAAAl1C,KAAAk1C,SAAAo5Q,GAEA31I,YAAA,WACA34K,KAAA2re,mBAKA,IAHA,IAAAr0P,EAAAt3O,KAAA+nB,MAAAuvN,UACA/lO,EAAAvR,KAAAklN,iBAEAnkN,EAAA,EAAmBA,EAAAu2O,EAAAr2O,OAAkBF,IACrCu2O,EAAAv2O,GAAAV,MACAi3O,EAAAv2O,GAAAiuO,kBAGAsI,EAAAv2O,GAAAV,KAAAutT,SAAAr8S,EAAA,GAAAA,EAAA,KAGAm+B,UAAA,SAAA7J,EAAA9d,GAGA,IAFA,IAAAuvN,EAAAvvN,EAAAuvN,UAEAv2O,EAAA,EAAmBA,EAAAu2O,EAAAr2O,OAAkBF,IACrCu2O,EAAAv2O,GAAA2uC,UAAA7J,EAAAyxM,EAAAv2O,GAAAgnB,OAAA,IAGA6wJ,WAAA,WAGA,IAFA,IAAA0+D,EAAAt3O,KAAA+nB,MAAAuvN,UAEAv2O,EAAA,EAAmBA,EAAAu2O,EAAAr2O,OAAkBF,IACrCu2O,EAAAv2O,GAAAyuC,aAAA,GAGA1H,gBAAA,WAGA,OAFA9nC,KAAA2re,mBAEAxgc,EAAAjrC,UAAA4nC,gBAAAp8B,KAAA1L,SAIAkD,EAAAC,QAAAF,wBCvDA,IAAAG,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBA,EAAQ,QAERA,EAAQ,QAERA,EAAQ,QAER,IAAAm7M,EAAgBn7M,EAAQ,QAExBqse,EAAqBrse,EAAQ,QAE7Bo6L,EAAiBp6L,EAAQ,QAoBzB6D,EAAAw4D,eAAA/hC,EAAA0Q,MAAAmwK,EAAA,aACAt3M,EAAAm6D,eAAA1jC,EAAA0Q,MAAAqhc,EAAA,aACAxoe,EAAAk4D,kBAAAzhC,EAAA0Q,MAAAovJ,EAAA,mCCpCA,IAAAw1H,EAAgB5vT,EAAQ,QA6BxB,SAAAk4C,EAAA16B,GACA/c,KAAA6re,SAAA9ud,MAOA/c,KAAA44C,SAAAa,UAOAz5C,KAAA65C,UAAA,EACA75C,KAAAwe,MAAAxe,KAAAwe,KAAAjS,MAAAvM,KAAA8E,WASA2yC,EAAAv3C,UAAAiN,MAAA,SAAAI,GAKA,OAAAA,GAGAkqC,EAAAv3C,UAAAqyM,WAAA,SAAA3vM,GACA,OAAA5C,KAAA6re,SAAAjpe,IAGA60C,EAAAv3C,UAAAwqC,QAAA,SAAAn9B,GACA,IAAAytB,EAAAh7B,KAAA44C,QACA,OAAArrC,GAAAytB,EAAA,IAAAztB,GAAAytB,EAAA,IASAyc,EAAAv3C,UAAAyvE,UAAA,SAAApiE,GACA,IAAAytB,EAAAh7B,KAAA44C,QAEA,OAAA5d,EAAA,KAAAA,EAAA,GACA,IAGAztB,EAAAytB,EAAA,KAAAA,EAAA,GAAAA,EAAA,KASAyc,EAAAv3C,UAAAqR,MAAA,SAAAhE,GACA,IAAAytB,EAAAh7B,KAAA44C,QACA,OAAArrC,GAAAytB,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAQAyc,EAAAv3C,UAAAk5C,YAAA,SAAAg/F,GACA,IAAAp9G,EAAAh7B,KAAA44C,QACAw/F,EAAA,GAAAp9G,EAAA,KAAAA,EAAA,GAAAo9G,EAAA,IACAA,EAAA,GAAAp9G,EAAA,KAAAA,EAAA,GAAAo9G,EAAA,KAUA3gG,EAAAv3C,UAAAm5C,oBAAA,SAAAvoC,EAAAunB,GACAr4B,KAAAo5C,YAAAtoC,EAAAwoC,qBAAAjhB,KAQAof,EAAAv3C,UAAA47B,UAAA,WACA,OAAA97B,KAAA44C,QAAAt2C,SASAm1C,EAAAv3C,UAAAi5C,UAAA,SAAA32C,EAAA0uB,GACA,IAAAmmM,EAAAr3N,KAAA44C,QAEAnuC,MAAAjI,KACA60N,EAAA,GAAA70N,GAGAiI,MAAAymB,KACAmmM,EAAA,GAAAnmM,IASAumB,EAAAv3C,UAAAsyK,QAAA,WACA,OAAAxyK,KAAA8re,UAMAr0b,EAAAv3C,UAAA+wK,SAAA,SAAAuB,GACAxyK,KAAA8re,SAAAt5T,GAQA/6H,EAAAv3C,UAAAg5C,SAAA,KACAi2Q,EAAAU,kBAAAp4Q,GACA03Q,EAAA36H,sBAAA/8I,GACAm+I,oBAAA,IAEA,IAAA3yL,EAAAw0C,EACAv0C,EAAAC,QAAAF,wBC9KA,IAAAG,EAAc7D,EAAQ,QAEtBA,EAAQ,QAERA,EAAQ,QAqBR6D,EAAAg4D,qBAAA,SAAAxiC,GAEAA,EAAA/e,UAAA+e,EAAA/e,sCC3BA,IAAAja,EAAeL,EAAQ,QACvBmQ,EAAUnQ,EAAQ,QAClB8/O,EAAe9/O,EAAQ,QAGvBwse,EAAA,sBAGAC,EAAAjke,KAAAE,IACAgke,EAAAlke,KAAAC,IAoLA9E,EAAAC,QA5HA,SAAAm2D,EAAA4ya,EAAAzje,GACA,IAAA0je,EACAC,EACAC,EACAt7d,EACAu7d,EACA/lb,EACAgmb,EAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EAEA,sBAAApza,EACA,UAAAtV,UAAA+nb,GAUA,SAAAY,EAAA3qe,GACA,IAAAoK,EAAA+/d,EACA3tT,EAAA4tT,EAKA,OAHAD,EAAAC,OAAA1+d,EACA6+d,EAAAvqe,EACA+O,EAAAuoD,EAAA/sD,MAAAiyK,EAAApyK,GAuBA,SAAAwge,EAAA5qe,GACA,IAAA6qe,EAAA7qe,EAAAukD,EAMA,YAAA74C,IAAA64C,GAAAsmb,GAAAX,GACAW,EAAA,GAAAJ,GANAzqe,EAAAuqe,GAMAF,EAGA,SAAAS,IACA,IAAA9qe,EAAA0N,IACA,GAAAk9d,EAAA5qe,GACA,OAAA+qe,EAAA/qe,GAGAsqe,EAAAhge,WAAAwge,EA3BA,SAAA9qe,GACA,IAEAgre,EAAAd,GAFAlqe,EAAAukD,GAIA,OAAAkmb,EACAR,EAAAe,EAAAX,GAJArqe,EAAAuqe,IAKAS,EAoBAC,CAAAjre,IAGA,SAAA+qe,EAAA/qe,GAKA,OAJAsqe,OAAA5+d,EAIAg/d,GAAAP,EACAQ,EAAA3qe,IAEAmqe,EAAAC,OAAA1+d,EACAqD,GAeA,SAAAm8d,IACA,IAAAlre,EAAA0N,IACAy9d,EAAAP,EAAA5qe,GAMA,GAJAmqe,EAAArne,UACAsne,EAAApse,KACAumD,EAAAvkD,EAEAmre,EAAA,CACA,QAAAz/d,IAAA4+d,EACA,OAzEA,SAAAtqe,GAMA,OAJAuqe,EAAAvqe,EAEAsqe,EAAAhge,WAAAwge,EAAAZ,GAEAM,EAAAG,EAAA3qe,GAAA+O,EAmEAq8d,CAAA7mb,GAEA,GAAAkmb,EAGA,OADAH,EAAAhge,WAAAwge,EAAAZ,GACAS,EAAApmb,GAMA,YAHA74C,IAAA4+d,IACAA,EAAAhge,WAAAwge,EAAAZ,IAEAn7d,EAIA,OA1GAm7d,EAAA7sP,EAAA6sP,IAAA,EACAtse,EAAA6I,KACA+je,IAAA/je,EAAA+je,QAEAH,GADAI,EAAA,YAAAhke,GACAuje,EAAA3sP,EAAA52O,EAAA4je,UAAA,EAAAH,GAAAG,EACAK,EAAA,aAAAjke,MAAAike,YAmGAQ,EAAAjta,OAnCA,gBACAvyD,IAAA4+d,GACAjge,aAAAige,GAEAC,EAAA,EACAJ,EAAA5lb,EAAA6lb,EAAAE,OAAA5+d,GA+BAw/d,EAAA1+a,MA5BA,WACA,YAAA9gD,IAAA4+d,EAAAv7d,EAAAg8d,EAAAr9d,MA4BAw9d,yBC1LA,IAAAtpR,EAAYrkN,EAAQ,QAEpBmzL,EAAWnzL,EAAQ,QAEnBgqD,EAAWhqD,EAAQ,QAEnBsnC,EAAmBtnC,EAAQ,QAI3BwmC,EAFcxmC,EAAQ,QAEtB+uD,iBAUA/iB,GACAyE,EAAA,EACAE,EAAA,EACAD,EAAA,EACAG,EAAA,EACAD,EAAA,EACAtE,EAAA,EAEAoF,EAAA,GAWAjpC,KACAC,KACAogN,KACAC,KACAn1J,EAAAprD,KAAAC,IACA2jC,EAAA5jC,KAAAE,IACA4+J,EAAA9+J,KAAA0jC,IACAq7H,EAAA/+J,KAAA2jC,IACAshM,EAAAjlO,KAAAyjC,KACA0hP,EAAAnlR,KAAAY,IACA0ke,EAAA,oBAAAp4Q,aAMA7pL,EAAA,SAAAkic,GACAtte,KAAAute,WAAAD,EAEAtte,KAAAute,YAKAvte,KAAA8Q,SAGA9Q,KAAAisO,KAAA,MAQA7gM,EAAAlrC,WACAC,YAAAirC,EACAoic,IAAA,EACAC,IAAA,EACAC,IAAA,EACAC,IAAA,EAEAC,IAAA,EACAC,IAAA,EACAlud,KAAA,EACAmud,UAAA,KACAC,YAAA,EACAC,SAAA,EACAC,SAAA,EAKArgL,SAAA,SAAAj9Q,EAAAC,GACA5wC,KAAA4te,IAAA1gN,EAAA,EAAAnnP,EAAA4K,IAAA,EACA3wC,KAAA6te,IAAA3gN,EAAA,EAAAnnP,EAAA6K,IAAA,GAEA6pI,WAAA,WACA,OAAAz6K,KAAAisO,MAOAx8L,UAAA,SAAA5J,GAcA,OAbA7lC,KAAAisO,KAAApmM,EACAA,KAAA4J,YACA5J,IAAA7lC,KAAA+lC,IAAAF,EAAAE,KAEA/lC,KAAAute,YACAvte,KAAA2f,KAAA,GAGA3f,KAAA8te,YACA9te,KAAA8te,UAAA,KACA9te,KAAA+te,YAAA,GAGA/te,MAQA+mK,OAAA,SAAA1iK,EAAAE,GAWA,OAVAvE,KAAAs+I,QAAA/yG,EAAAyE,EAAA3rC,EAAAE,GACAvE,KAAAisO,MAAAjsO,KAAAisO,KAAAllE,OAAA1iK,EAAAE,GAKAvE,KAAA0te,IAAArpe,EACArE,KAAA2te,IAAAppe,EACAvE,KAAAwte,IAAAnpe,EACArE,KAAAyte,IAAAlpe,EACAvE,MAQAgnK,OAAA,SAAA3iK,EAAAE,GACA,IAAA2pe,EAAAhhN,EAAA7oR,EAAArE,KAAAwte,KAAAxte,KAAA4te,KAAA1gN,EAAA3oR,EAAAvE,KAAAyte,KAAAzte,KAAA6te,KACA7te,KAAA2f,KAAA,EAYA,OAXA3f,KAAAs+I,QAAA/yG,EAAA2E,EAAA7rC,EAAAE,GAEAvE,KAAAisO,MAAAiiQ,IACAlue,KAAAmue,aAAAnue,KAAAoue,cAAA/pe,EAAAE,GAAAvE,KAAAisO,KAAAjlE,OAAA3iK,EAAAE,IAGA2pe,IACAlue,KAAAwte,IAAAnpe,EACArE,KAAAyte,IAAAlpe,GAGAvE,MAYAu2N,cAAA,SAAA9lL,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,GASA,OARAxwC,KAAAs+I,QAAA/yG,EAAA0E,EAAAQ,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,GAEAxwC,KAAAisO,OACAjsO,KAAAmue,aAAAnue,KAAAque,gBAAA59b,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,GAAAxwC,KAAAisO,KAAA1V,cAAA9lL,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,IAGAxwC,KAAAwte,IAAAj9b,EACAvwC,KAAAyte,IAAAj9b,EACAxwC,MAUA40W,iBAAA,SAAAnkU,EAAAC,EAAA7C,EAAAC,GASA,OARA9tC,KAAAs+I,QAAA/yG,EAAA6E,EAAAK,EAAAC,EAAA7C,EAAAC,GAEA9tC,KAAAisO,OACAjsO,KAAAmue,aAAAnue,KAAAsue,mBAAA79b,EAAAC,EAAA7C,EAAAC,GAAA9tC,KAAAisO,KAAA2oI,iBAAAnkU,EAAAC,EAAA7C,EAAAC,IAGA9tC,KAAAwte,IAAA3/b,EACA7tC,KAAAyte,IAAA3/b,EACA9tC,MAYAmnK,IAAA,SAAA5vJ,EAAAC,EAAAC,EAAA2kB,EAAAC,EAAAmzC,GAKA,OAJAxvE,KAAAs+I,QAAA/yG,EAAA4E,EAAA54B,EAAAC,EAAAC,IAAA2kB,EAAAC,EAAAD,EAAA,EAAAozC,EAAA,KACAxvE,KAAAisO,MAAAjsO,KAAAisO,KAAA9kE,IAAA5vJ,EAAAC,EAAAC,EAAA2kB,EAAAC,EAAAmzC,GACAxvE,KAAAwte,IAAA3mU,EAAAxqI,GAAA5kB,EAAAF,EACAvX,KAAAyte,IAAA3mU,EAAAzqI,GAAA5kB,EAAAF,EACAvX,MAGAuue,MAAA,SAAA99b,EAAAC,EAAA7C,EAAAC,EAAAnrB,GAKA,OAJA3iB,KAAAisO,MACAjsO,KAAAisO,KAAAsiQ,MAAA99b,EAAAC,EAAA7C,EAAAC,EAAAnrB,GAGA3iB,MAGAkoC,KAAA,SAAA7jC,EAAAE,EAAAw/G,EAAA9rG,GAGA,OAFAjY,KAAAisO,MAAAjsO,KAAAisO,KAAA/jM,KAAA7jC,EAAAE,EAAAw/G,EAAA9rG,GACAjY,KAAAs+I,QAAA/yG,EAAA0F,EAAA5sC,EAAAE,EAAAw/G,EAAA9rG,GACAjY,MAMAy9K,UAAA,WACAz9K,KAAAs+I,QAAA/yG,EAAAM,GACA,IAAAhG,EAAA7lC,KAAAisO,KACAl7L,EAAA/wC,KAAA0te,IACA18b,EAAAhxC,KAAA2te,IASA,OAPA9nc,IACA7lC,KAAAmue,cAAAnue,KAAAoue,cAAAr9b,EAAAC,GACAnL,EAAA43I,aAGAz9K,KAAAwte,IAAAz8b,EACA/wC,KAAAyte,IAAAz8b,EACAhxC,MASA0X,KAAA,SAAAmuB,GACAA,KAAAnuB,OACA1X,KAAA2vC,YAOAzM,OAAA,SAAA2C,GACAA,KAAA3C,SACAljC,KAAA2vC,YAQAg+Q,YAAA,SAAA9+Q,GACA,GAAAA,aAAAhjC,MAAA,CACA7L,KAAA8te,UAAAj/b,EACA7uC,KAAAgue,SAAA,EAGA,IAFA,IAAAQ,EAAA,EAEAzte,EAAA,EAAqBA,EAAA8tC,EAAA5tC,OAAqBF,IAC1Cyte,GAAA3/b,EAAA9tC,GAGAf,KAAAiue,SAAAO,EAGA,OAAAxue,MAQA6tT,kBAAA,SAAAnrR,GAEA,OADA1iC,KAAA+te,YAAArrc,EACA1iC,MAOA6B,IAAA,WACA,OAAA7B,KAAA2f,MAMAo9J,QAAA,SAAAjsK,GACA,IAAAjP,EAAAiP,EAAA7P,OAEAjB,KAAA8Q,MAAA9Q,KAAA8Q,KAAA7P,QAAAY,IAAAwre,IACArte,KAAA8Q,KAAA,IAAAmkN,aAAApzN,IAGA,QAAAd,EAAA,EAAmBA,EAAAc,EAASd,IAC5Bf,KAAA8Q,KAAA/P,GAAA+P,EAAA/P,GAGAf,KAAA2f,KAAA9d,GAOAqtO,WAAA,SAAA7uO,GACAA,aAAAwL,QACAxL,OAOA,IAJA,IAAAwB,EAAAxB,EAAAY,OACAwte,EAAA,EACA/rc,EAAA1iC,KAAA2f,KAEA5e,EAAA,EAAmBA,EAAAc,EAASd,IAC5B0te,GAAApue,EAAAU,GAAAc,MAGAwre,GAAArte,KAAA8Q,gBAAAmkN,eACAj1N,KAAA8Q,KAAA,IAAAmkN,aAAAvyL,EAAA+rc,IAGA,IAAA1te,EAAA,EAAmBA,EAAAc,EAASd,IAG5B,IAFA,IAAA2te,EAAArue,EAAAU,GAAA+P,KAEA2X,EAAA,EAAqBA,EAAAimd,EAAAzte,OAA2BwnB,IAChDzoB,KAAA8Q,KAAA4xB,KAAAgsc,EAAAjmd,GAIAzoB,KAAA2f,KAAA+iB,GAOA47G,QAAA,SAAAv5G,GACA,GAAA/kC,KAAAute,UAAA,CAIA,IAAAz8d,EAAA9Q,KAAA8Q,KAEA9Q,KAAA2f,KAAA7a,UAAA7D,OAAA6P,EAAA7P,SAGAjB,KAAA2ue,cAEA79d,EAAA9Q,KAAA8Q,MAGA,QAAA/P,EAAA,EAAmBA,EAAA+D,UAAA7D,OAAsBF,IACzC+P,EAAA9Q,KAAA2f,QAAA7a,UAAA/D,GAGAf,KAAA4ue,SAAA7pc,IAEA4pc,YAAA,WAEA,KAAA3ue,KAAA8Q,gBAAAjF,OAAA,CAGA,IAFA,IAAAmxF,KAEAj8F,EAAA,EAAqBA,EAAAf,KAAA2f,KAAe5e,IACpCi8F,EAAAj8F,GAAAf,KAAA8Q,KAAA/P,GAGAf,KAAA8Q,KAAAksF,IASAmxY,WAAA,WACA,OAAAnue,KAAA8te,WAEAM,cAAA,SAAA39b,EAAAC,GACA,IAWAm+b,EAEAvuc,EAbAwuc,EAAA9ue,KAAAiue,SACAvrc,EAAA1iC,KAAA+te,YACAl/b,EAAA7uC,KAAA8te,UACAjoc,EAAA7lC,KAAAisO,KACAl7L,EAAA/wC,KAAAwte,IACAx8b,EAAAhxC,KAAAyte,IACA1/b,EAAA0C,EAAAM,EACA/C,EAAA0C,EAAAM,EACA6iJ,EAAAm5C,EAAAj/L,IAAAC,KACA3pC,EAAA0sC,EACAxsC,EAAAysC,EAEA+9b,EAAAlgc,EAAA5tC,OAcA,IAZA8sC,GAAA8lJ,EACA7lJ,GAAA6lJ,EAEAnxJ,EAAA,IAEAA,EAAAosc,EAAApsc,GAIAr+B,IADAq+B,GAAAosc,GACA/gc,EACAxpC,GAAAm+B,EAAAsL,EAEAD,EAAA,GAAA1pC,GAAAosC,GAAA1C,EAAA,GAAA1pC,GAAAosC,GAAA,GAAA1C,IAAAC,EAAA,GAAAzpC,GAAAmsC,GAAA1C,EAAA,GAAAzpC,GAAAmsC,IAGArsC,GAAA0pC,GADA8gc,EAAAhgc,EADAvO,EAAAtgC,KAAAgue,WAGAzpe,GAAAypC,EAAA6gc,EACA7ue,KAAAgue,UAAA1tc,EAAA,GAAAyuc,EAEAhhc,EAAA,GAAA1pC,EAAA0sC,GAAAhD,EAAA,GAAA1pC,EAAA0sC,GAAA/C,EAAA,GAAAzpC,EAAAysC,GAAAhD,EAAA,GAAAzpC,EAAAysC,GAIAnL,EAAAvF,EAAA,qBAAAyN,GAAA,EAAAolB,EAAA9uD,EAAAosC,GAAA9E,EAAAtnC,EAAAosC,GAAAzC,GAAA,EAAAmlB,EAAA5uD,EAAAmsC,GAAA/E,EAAApnC,EAAAmsC,IAIA3C,EAAA1pC,EAAAosC,EACAzC,EAAAzpC,EAAAmsC,EACA1wC,KAAA+te,aAAA/gQ,EAAAj/L,IAAAC,MAGAqgc,gBAAA,SAAA59b,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,GACA,IAMAi4C,EACA16C,EACAC,EAKA3pC,EACAE,EAdAuqe,EAAA9ue,KAAAiue,SACAvrc,EAAA1iC,KAAA+te,YACAl/b,EAAA7uC,KAAA8te,UACAjoc,EAAA7lC,KAAAisO,KACAl7L,EAAA/wC,KAAAwte,IACAx8b,EAAAhxC,KAAAyte,IAIAxpR,EAAAL,EAAAK,QACA+qR,EAAA,EACA1uc,EAAAtgC,KAAAgue,SACAe,EAAAlgc,EAAA5tC,OAGAgue,EAAA,EASA,IAPAvsc,EAAA,IAEAA,EAAAosc,EAAApsc,GAGAA,GAAAosc,EAEArmZ,EAAA,EAAeA,EAAA,EAAOA,GAAA,GACtB16C,EAAAk2K,EAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAAk4C,EAAA,IAAAw7H,EAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAAk4C,GACAz6C,EAAAi2K,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAi4C,EAAA,IAAAw7H,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAi4C,GACAumZ,GAAAhiQ,EAAAj/L,IAAAC,KAIA,KAAU1N,EAAAyuc,MACVE,GAAApgc,EAAAvO,IAEAoC,GAHuBpC,KAUvB,IAFAmoD,GAAAwmZ,EAAAvsc,GAAAssc,EAEAvmZ,GAAA,GACApkF,EAAA4/M,EAAAlzK,EAAAN,EAAA5C,EAAA0C,EAAAk4C,GACAlkF,EAAA0/M,EAAAjzK,EAAAN,EAAA5C,EAAA0C,EAAAi4C,GAGAnoD,EAAA,EAAAuF,EAAAkhI,OAAA1iK,EAAAE,GAAAshC,EAAAmhI,OAAA3iK,EAAAE,GACAkkF,GAAA55C,EAAAvO,GAAA0uc,EACA1uc,KAAA,GAAAyuc,EAIAzuc,EAAA,MAAAuF,EAAAmhI,OAAAz2H,EAAAC,GACAzC,EAAAwC,EAAAlsC,EACA2pC,EAAAwC,EAAAjsC,EACAvE,KAAA+te,aAAA/gQ,EAAAj/L,IAAAC,MAEAsgc,mBAAA,SAAA79b,EAAAC,EAAA7C,EAAAC,GAEA,IAAAyC,EAAA1C,EACA2C,EAAA1C,EACAD,KAAA,EAAA4C,GAAA,EACA3C,KAAA,EAAA4C,GAAA,EACAD,GAAAzwC,KAAAwte,IAAA,EAAA/8b,GAAA,EACAC,GAAA1wC,KAAAyte,IAAA,EAAA/8b,GAAA,EAEA1wC,KAAAque,gBAAA59b,EAAAC,EAAA7C,EAAAC,EAAAyC,EAAAC,IAOAb,SAAA,WACA,IAAA7+B,EAAA9Q,KAAA8Q,KAEAA,aAAAjF,QACAiF,EAAA7P,OAAAjB,KAAA2f,KAEA0td,IACArte,KAAA8Q,KAAA,IAAAmkN,aAAAnkN,MAQAg3B,gBAAA,WACA9/B,EAAA,GAAAA,EAAA,GAAAqgN,EAAA,GAAAA,EAAA,GAAAttM,OAAAqtM,UACAngN,EAAA,GAAAA,EAAA,GAAAqgN,EAAA,GAAAA,EAAA,IAAAvtM,OAAAqtM,UAOA,IANA,IAAAt3M,EAAA9Q,KAAA8Q,KACAg/B,EAAA,EACAC,EAAA,EACAgB,EAAA,EACAC,EAAA,EAEAjwC,EAAA,EAAmBA,EAAA+P,EAAA7P,QAAiB,CACpC,IAAA8jC,EAAAj0B,EAAA/P,KAaA,OAXA,GAAAA,IAOAgwC,EAFAjB,EAAAh/B,EAAA/P,GAGAiwC,EAFAjB,EAAAj/B,EAAA/P,EAAA,IAKAgkC,GACA,KAAAwG,EAAAyE,EAKAF,EAFAiB,EAAAjgC,EAAA/P,KAGAgvC,EAFAiB,EAAAlgC,EAAA/P,KAGAsnN,EAAA,GAAAt3K,EACAs3K,EAAA,GAAAr3K,EACAs3K,EAAA,GAAAv3K,EACAu3K,EAAA,GAAAt3K,EACA,MAEA,KAAAzF,EAAA2E,EACAqZ,EAAAu6J,SAAAh0K,EAAAC,EAAAj/B,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAsnN,EAAAC,GACAx4K,EAAAh/B,EAAA/P,KACAgvC,EAAAj/B,EAAA/P,KACA,MAEA,KAAAwqC,EAAA0E,EACAsZ,EAAAw6J,UAAAj0K,EAAAC,EAAAj/B,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAsnN,EAAAC,GACAx4K,EAAAh/B,EAAA/P,KACAgvC,EAAAj/B,EAAA/P,KACA,MAEA,KAAAwqC,EAAA6E,EACAmZ,EAAA26J,cAAAp0K,EAAAC,EAAAj/B,EAAA/P,KAAA+P,EAAA/P,KAAA+P,EAAA/P,GAAA+P,EAAA/P,EAAA,GAAAsnN,EAAAC,GACAx4K,EAAAh/B,EAAA/P,KACAgvC,EAAAj/B,EAAA/P,KACA,MAEA,KAAAwqC,EAAA4E,EAEA,IAAA54B,EAAAzG,EAAA/P,KACAyW,EAAA1G,EAAA/P,KACA8vC,EAAA//B,EAAA/P,KACA+vC,EAAAhgC,EAAA/P,KACAq7B,EAAAtrB,EAAA/P,KACAs7B,EAAAvrB,EAAA/P,KAAAq7B,EAGAozC,GADA1+D,EAAA/P,KACA,EAAA+P,EAAA/P,MAEA,GAAAA,IAGAgwC,EAAA81H,EAAAzqI,GAAAyU,EAAAt5B,EACAy5B,EAAA81H,EAAA1qI,GAAA0U,EAAAt5B,GAGA+xC,EAAA66J,QAAA7sM,EAAAC,EAAAq5B,EAAAC,EAAA1U,EAAAC,EAAAmzC,EAAA64I,EAAAC,GACAx4K,EAAA+2H,EAAAxqI,GAAAwU,EAAAt5B,EACAw4B,EAAA+2H,EAAAzqI,GAAAyU,EAAAt5B,EACA,MAEA,KAAA+zB,EAAA0F,EACAF,EAAAjB,EAAAh/B,EAAA/P,KACAiwC,EAAAjB,EAAAj/B,EAAA/P,KACA,IAAAiY,EAAAlI,EAAA/P,KACAkY,EAAAnI,EAAA/P,KAEAwoD,EAAAu6J,SAAA/yK,EAAAC,EAAAD,EAAA/3B,EAAAg4B,EAAA/3B,EAAAovM,EAAAC,GACA,MAEA,KAAA/8K,EAAAM,EACAiE,EAAAiB,EACAhB,EAAAiB,EAKA0hJ,EAAA1qL,QAAAqgN,GACA31B,EAAAzqL,QAAAqgN,GAQA,OAJA,IAAAvnN,IACAiH,EAAA,GAAAA,EAAA,GAAAC,EAAA,GAAAA,EAAA,MAGA,IAAA4+B,EAAA7+B,EAAA,GAAAA,EAAA,GAAAC,EAAA,GAAAD,EAAA,GAAAC,EAAA,GAAAD,EAAA,KAQA2mO,YAAA,SAAA9oM,GASA,IARA,IACAkL,EAAAC,EACAlB,EAAAC,EACA1rC,EAAAE,EAHAkqB,EAAAzuB,KAAA8Q,KAIAo+d,EAAAlve,KAAA4te,IACAuB,EAAAnve,KAAA6te,IACAhse,EAAA7B,KAAA2f,KAEA5e,EAAA,EAAmBA,EAAAc,GAAS,CAC5B,IAAAkjC,EAAAtW,EAAA1tB,KAaA,OAXA,GAAAA,IAOAgwC,EAFAjB,EAAArhB,EAAA1tB,GAGAiwC,EAFAjB,EAAAthB,EAAA1tB,EAAA,IAKAgkC,GACA,KAAAwG,EAAAyE,EACAe,EAAAjB,EAAArhB,EAAA1tB,KACAiwC,EAAAjB,EAAAthB,EAAA1tB,KACA8kC,EAAAkhI,OAAAj3H,EAAAC,GACA,MAEA,KAAAxE,EAAA2E,EACA7rC,EAAAoqB,EAAA1tB,KACAwD,EAAAkqB,EAAA1tB,MAEAmsR,EAAA7oR,EAAAyrC,GAAAo/b,GAAAhiN,EAAA3oR,EAAAwrC,GAAAo/b,GAAApue,IAAAc,EAAA,KACAgkC,EAAAmhI,OAAA3iK,EAAAE,GACAurC,EAAAzrC,EACA0rC,EAAAxrC,GAGA,MAEA,KAAAgnC,EAAA0E,EACApK,EAAA0wL,cAAA9nM,EAAA1tB,KAAA0tB,EAAA1tB,KAAA0tB,EAAA1tB,KAAA0tB,EAAA1tB,KAAA0tB,EAAA1tB,KAAA0tB,EAAA1tB,MACA+uC,EAAArhB,EAAA1tB,EAAA,GACAgvC,EAAAthB,EAAA1tB,EAAA,GACA,MAEA,KAAAwqC,EAAA6E,EACAvK,EAAA+uU,iBAAAnmV,EAAA1tB,KAAA0tB,EAAA1tB,KAAA0tB,EAAA1tB,KAAA0tB,EAAA1tB,MACA+uC,EAAArhB,EAAA1tB,EAAA,GACAgvC,EAAAthB,EAAA1tB,EAAA,GACA,MAEA,KAAAwqC,EAAA4E,EACA,IAAA54B,EAAAkX,EAAA1tB,KACAyW,EAAAiX,EAAA1tB,KACA8vC,EAAApiB,EAAA1tB,KACA+vC,EAAAriB,EAAA1tB,KACAgtO,EAAAt/M,EAAA1tB,KACAitO,EAAAv/M,EAAA1tB,KACA0sO,EAAAh/M,EAAA1tB,KACAwsO,EAAA9+M,EAAA1tB,KACA0W,EAAAo5B,EAAAC,EAAAD,EAAAC,EACAoC,EAAArC,EAAAC,EAAA,EAAAD,EAAAC,EACAqC,EAAAtC,EAAAC,IAAAD,EAAA,EAEAxU,EAAA0xM,EAAAC,EADAjmO,KAAAY,IAAAkoC,EAAAC,GAAA,MAIAjL,EAAAsnL,UAAA51M,EAAAC,GACAquB,EAAA4iI,OAAAglE,GACA5nM,EAAAt0B,MAAA2hC,EAAAC,GACAtN,EAAAshI,IAAA,IAAA1vJ,EAAAs2N,EAAA1xM,EAAA,EAAAkxM,GACA1nM,EAAAt0B,MAAA,EAAA2hC,EAAA,EAAAC,GACAtN,EAAA4iI,QAAAglE,GACA5nM,EAAAsnL,WAAA51M,GAAAC,IAEAquB,EAAAshI,IAAA5vJ,EAAAC,EAAAC,EAAAs2N,EAAA1xM,EAAA,EAAAkxM,GAGA,GAAAxsO,IAGAgwC,EAAA81H,EAAAknE,GAAAl9L,EAAAt5B,EACAy5B,EAAA81H,EAAAinE,GAAAj9L,EAAAt5B,GAGAs4B,EAAA+2H,EAAAxqI,GAAAwU,EAAAt5B,EACAw4B,EAAA+2H,EAAAzqI,GAAAyU,EAAAt5B,EACA,MAEA,KAAA+zB,EAAA0F,EACAF,EAAAjB,EAAArhB,EAAA1tB,GACAiwC,EAAAjB,EAAAthB,EAAA1tB,EAAA,GACA8kC,EAAAqC,KAAAzZ,EAAA1tB,KAAA0tB,EAAA1tB,KAAA0tB,EAAA1tB,KAAA0tB,EAAA1tB,MACA,MAEA,KAAAwqC,EAAAM,EACAhG,EAAA43I,YACA3tI,EAAAiB,EACAhB,EAAAiB,MAKA5F,EAAAG,MACA,IAAAtoC,EAAAmoC,EACAloC,EAAAC,QAAAF,wBC1vBA,IAAAkoC,EAAW5rC,EAAQ,QAEnB2iS,EAAsB3iS,EAAQ,QAM9B0D,EAAAkoC,EAAAzhC,QACAlG,KAAA,OACAukB,OAMAtQ,EAAA,EACApT,EAAA,EACAE,EAAA,EACAyU,MAAA,EACAC,OAAA,GAEAy2B,UAAA,SAAA7J,EAAA9d,GACA,IAAA1jB,EAAA0jB,EAAA1jB,EACAE,EAAAwjB,EAAAxjB,EACAyU,EAAA+O,EAAA/O,MACAC,EAAA8O,EAAA9O,OAEA8O,EAAAtQ,EAGAyqR,EAAAxyP,UAAA7J,EAAA9d,GAFA8d,EAAAqC,KAAA7jC,EAAAE,EAAAyU,EAAAC,GAKA4sB,EAAA43I,eAKAv6K,EAAAC,QAAAF,wBCvCA,IAMAA,EANW1D,EAAQ,QAMnBmK,QACAlG,KAAA,SACAukB,OACAxQ,GAAA,EACAC,GAAA,EACAC,EAAA,GAEAi4B,UAAA,SAAA7J,EAAA9d,EAAAgmS,GAGAA,GACAloR,EAAAkhI,OAAAh/I,EAAAxQ,GAAAwQ,EAAAtQ,EAAAsQ,EAAAvQ,IAUAquB,EAAAshI,IAAAp/I,EAAAxQ,GAAAwQ,EAAAvQ,GAAAuQ,EAAAtQ,EAAA,IAAA1P,KAAAgwB,IAAA,MAIA70B,EAAAC,QAAAF,qCC9BA,IAAA4iC,EAAUtmC,EAAQ,QAClBs4N,EAAct4N,EAAQ,QACtB4gE,EAAe5gE,EAAQ,QACvBmM,EAAWnM,EAAQ,QACnBg+X,EAAkBh+X,EAAQ,QAC1B47K,EAAe57K,EAAQ,QACvB6ve,EAAqB7ve,EAAQ,QAC7Bi+X,EAAgBj+X,EAAQ,QAExBs4N,IAAA33D,EAAA23D,EAAAG,GAAiCz4N,EAAQ,OAARA,CAAwB,SAAAu8L,GAAmBjwL,MAAAE,KAAA+vL,KAAoB,SAEhG/vL,KAAA,SAAAsje,GACA,IAOApue,EAAA8P,EAAAuW,EAAApc,EAPAq1D,EAAAJ,EAAAkva,GACAp/b,EAAA,mBAAAjwC,UAAA6L,MACAy1N,EAAAx8N,UAAA7D,OACAque,EAAAhuQ,EAAA,EAAAx8N,UAAA,QAAA4I,EACA04S,OAAA14S,IAAA4he,EACA1ie,EAAA,EACAgxX,EAAAJ,EAAAj9T,GAIA,GAFA6lP,IAAAkpL,EAAAzpc,EAAAypc,EAAAhuQ,EAAA,EAAAx8N,UAAA,QAAA4I,EAAA,SAEAA,GAAAkwX,GAAA3tV,GAAApkC,OAAA0xX,EAAAK,GAMA,IAAA7sX,EAAA,IAAAk/B,EADAhvC,EAAAk6K,EAAA56G,EAAAt/D,SACkCA,EAAA2L,EAAgBA,IAClDwie,EAAAr+d,EAAAnE,EAAAw5S,EAAAkpL,EAAA/ua,EAAA3zD,MAAA2zD,EAAA3zD,SANA,IAAA1B,EAAA0yX,EAAAlyX,KAAA60D,GAAAxvD,EAAA,IAAAk/B,IAAuD3oB,EAAApc,EAAAu5B,QAAApjC,KAAgCuL,IACvFwie,EAAAr+d,EAAAnE,EAAAw5S,EAAA16S,EAAAR,EAAAoke,GAAAhod,EAAA/f,MAAAqF,IAAA,GAAA0a,EAAA/f,OASA,OADAwJ,EAAA9P,OAAA2L,EACAmE,wCChCA,IAAAikE,EAAYz1E,EAAQ,QACpBiL,EAAWjL,EAAQ,QACnB+kR,EAAY/kR,EAAQ,QACpByjC,EAAezjC,EAAQ,QAQvB,SAAAgwe,EAAAtvb,GACA,IAAA6N,EAAA,IAAAw2N,EAAArkO,GACAV,EAAA/0C,EAAA85Q,EAAApkR,UAAAikR,QAAAr2N,GAQA,OALAknB,EAAAtrE,OAAA61C,EAAA+kO,EAAApkR,UAAA4tD,GAGAknB,EAAAtrE,OAAA61C,EAAAuO,GAEAvO,EAIA,IAAAiwb,EAAAD,EAAAvsc,GAGAwsc,EAAAlrN,QAGAkrN,EAAA9lc,OAAA,SAAA66O,GACA,OAAAgrN,EAAAv6Z,EAAArE,MAAA3tC,EAAAuhP,KAIAirN,EAAAhwa,OAAejgE,EAAQ,QACvBiwe,EAAA/va,YAAoBlgE,EAAQ,QAC5Biwe,EAAAv1L,SAAiB16S,EAAQ,QAGzBiwe,EAAArwa,IAAA,SAAAswa,GACA,OAAAhhe,QAAA0wD,IAAAswa,IAEAD,EAAAE,OAAenwe,EAAQ,QAEvB2D,EAAAC,QAAAqse,EAGAtse,EAAAC,QAAA4V,QAAAy2d,wBCnDcjwe,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBorC,EAAUprC,EAAQ,QAElB06B,EAAgB16B,EAAQ,QAExBi0J,EAAaj0J,EAAQ,QAErB0oe,EAAgB1oe,EAAQ,QAoBxBk/B,EAAA5E,EAAA4E,KACA+yV,EAAAh+N,EAAAg+N,YAieA,SAAAm+G,EAAA1yd,GACA,IAAA05D,KAIA,OAHAl4C,GAAA,2DAAA77B,GACAqa,EAAApa,eAAAD,KAAA+zE,EAAA/zE,GAAAqa,EAAAra,MAEA+zE,EAGA,SAAAi5Z,EAAAj+R,EAAA6/J,GACA,IAAAy3H,EAAAt3R,EAAAk+R,eACAC,EAAAn+R,EAAA3tM,IAAA,aACAy6B,IAAA,mDAAA0vP,EAAAvhR,GACA,IAAAmje,EAAA,MAAAv+H,EAAArjF,EAAA,IACA6hN,EAAA,MAAAx+H,EAAArjF,EAAA,IAEA4hN,IAAAC,EACA/G,EAAAr8d,GAAA,WACKmje,GAAAC,EACL/G,EAAAr8d,GAAA,QACKkje,EACL7G,EAAAr8d,GAAAkje,EAAAlje,GACKmje,IAEL9G,EAAAr8d,GAAA,aAMA,IAAA3J,EA7fAG,EAAAoxB,sBACAhxB,KAAA,WACAixB,cAAA,wEAKAC,eACAC,OAAA,EACAC,EAAA,EAEA9X,OAAA,KAEAyV,WAAA,KAEA1Q,WAAA,KAEA8nd,WAAA,SAgBA/ib,SAAA,KAKApkD,MAAA,EAEA0uB,IAAA,IAEA4+L,WAAA,KAEAC,SAAA,KAEAsE,QAAA,KAEAC,QAAA,KAEA1E,aAAA,KAEAC,aAAA,KAEAogR,UAAA,MAOAzxd,KAAA,SAAAvB,EAAA6oK,EAAAniL,GAMA3D,KAAAkwe,uBAKAlwe,KAAAmwe,aAMAnwe,KAAAowe,gBAKApwe,KAAAu1J,eAKAv1J,KAAAqwe,eAAA,EAMArwe,KAAA6ve,gBAAA,qBACA,IAAAr+H,EAAAm+H,EAAA1yd,GACAjd,KAAAqlL,qBAAApoK,EAAAtZ,GACA3D,KAAAswe,OAAA9+H,IAMApsL,YAAA,SAAAzjH,GACA,IAAA6vS,EAAAm+H,EAAAhua,GAEA9nC,EAAA82C,MAAA3wE,KAAAid,OAAA0kD,GAAA,GACA3hE,KAAAswe,OAAA9+H,IAMA8+H,OAAA,SAAA9+H,GACA,IAAA9vS,EAAA1hE,KAAAid,OAEA0tB,EAAAiB,kBACA81B,EAAAoP,UAAA,GAGA9wE,KAAAuwe,oBAAA/+H,GAEAo+H,EAAA5ve,KAAAwxW,GACA/yU,IAAA,mDAAA0vP,EAAAvhR,GAIA,UAAA5M,KAAA6ve,eAAAjje,KACA80D,EAAAysN,EAAA,WAGKnuR,MACLA,KAAAu1J,eAAAv1J,KAAAq/B,SAAA,aAEAr/B,KAAAwwe,eAEAxwe,KAAAywe,oBAMAA,iBAAA,WACA,IAAAC,EAAA1we,KAAAowe,aACApwe,KAAA8xM,eAAA,SAAAC,EAAA5nI,EAAAwnI,EAAAhuM,GACA,IAAA0yB,EAAAr2B,KAAA40L,gBAAAmd,EAAAt8K,MAAA00C,GAEA4rN,EAAA1/P,EAAAs6c,gBACAt6c,EAAAs6c,cAAA,IAAA1I,EAAAl2R,EAAAnvM,KAAAunE,EAAAnqE,KAAA2D,IAGA+se,EAAA3+R,EAAAnvM,KAAA,IAAAunE,GAAA4rN,GACK/1R,OAMLwwe,aAAA,WACA,IAAA9ua,EAAA1hE,KAAAid,OAEA2zd,EAAA5we,KAAA6we,iBAEAr/G,EAAA,SAAAz/K,GACA,IAAA++R,EAAA/+R,EAAA5nI,UACAzI,EAAAova,GAAA72c,EAAAi8B,iBAAAwL,EAAAova,KACK9we,MAEL,cAAA4we,EACA5we,KAAA+we,oBACK,WAAAH,GACL5we,KAAAgxe,kBAOAH,eAAA,WAIA,IAAAnva,EAAA1hE,KAAAid,OACAg0d,GAAA,EACAz/G,EAAA,SAAAz/K,GAIA,MAAArwI,EAAAqwI,EAAA5nI,aACA8ma,GAAA,IAEKjxe,MACL,IAAA8c,EAAA4kD,EAAA5kD,OAEA,aAAAA,GAAAm0d,EACA,SACKA,OAAA,GACL,MAAAn0d,IACA4kD,EAAA5kD,OAAA,cAGA,cAOAi0d,kBAAA,WACA,IAAAG,GAAA,EACAp0d,EAAA9c,KAAAgE,IAAA,aACA09D,EAAA1hE,KAAAid,OACA23K,EAAA50L,KAAA40L,gBAEA,GAAAs8S,EAAA,CAEA,IAAApvc,EAAA,aAAAhlB,EAAA,QAEA83K,EAAA9yJ,EAAA,QAAA7gC,QACAygE,EAAA5/B,EAAA,iBACAovc,GAAA,GAEAzyc,EAAAm2J,EAAA8/B,WAAA,SAAAhM,GACAwoR,GAAAxoR,EAAA1kN,IAAA,eAAA8Y,IACA4kD,EAAAq/Q,iBAAAr4H,EAAAxwJ,gBACAg5a,GAAA,KAMAA,GAEA1/G,EAAA,SAAAz/K,GACA,GAAAm/R,EAAA,CAIA,IAAAC,KACAl/R,EAAAjyM,KAAA40L,gBAAAmd,EAAAt8K,MAEA,GAAAw8K,EAAAhxM,SAAAkwe,EAAAlwe,OACA,QAAAF,EAAA,EAAAc,EAAAowM,EAAAhxM,OAAkDF,EAAAc,EAASd,IAC3D,aAAAkxM,EAAAlxM,GAAAiD,IAAA,SACAmte,EAAA5ve,KAAAR,GAKA2gE,EAAAqwI,EAAA5nI,WAAAgna,EAEAA,EAAAlwe,SACAiwe,GAAA,KAEOlxe,MAGPkxe,GAOAlxe,KAAA2D,QAAAqxD,WAAA,SAAAx5B,GACAx7B,KAAAoxe,0BAAA51c,EAAA,UACAg2V,EAAA,SAAAz/K,GACA,IAAAo/R,EAAAzva,EAAAqwI,EAAA5nI,WACAA,EAAA3uC,EAAAx3B,IAAA+tM,EAAA5nI,WACAm+M,EAAA9sP,EAAAx3B,IAAA+tM,EAAAu2E,QAMAn+M,EALA3uC,EAAA73B,QAAAgyL,iBACArmI,SAAAyiJ,EAAAt8K,KACA7oB,MAAAu9D,EACAzoE,GAAA4mR,IACa,GACbpwN,eAEAr+B,EAAA/5B,QAAAqxe,EAAAhna,GAAA,GACAgna,EAAA5ve,KAAA4oE,MAIOnqE,OAOPgxe,eAAA,WACA,IAAA34c,EAEAr4B,KAAA8xM,eAAA,SAAAC,IACA15K,MAAA05K,EAAAnvM,OACK5C,MACLA,KAAAid,OAAAH,OAAA,MAAAub,EAAA,yBAMA+4c,0BAAA,SAAA51c,EAAA8vB,GAIA,IAAA42J,GAAA,EASA,OARAsvK,EAAA,SAAAz/K,GACA,IAAAs/R,EAAA71c,EAAAx3B,IAAA+tM,EAAA5nI,WACA9zC,EAAAr2B,KAAA40L,gBAAAmd,EAAAt8K,MAAA47c,GAEAh7c,KAAAryB,IAAA,UAAAsnD,IACA42J,GAAA,IAEKliN,MACLkiN,GAMAquR,oBAAA,SAAA/+H,GAMA,GAJAA,EAAA3uW,eAAA,cACA7C,KAAAqwe,eAAA,GAGArwe,KAAAqwe,cAAA,CACA,IAAAiB,EAAAtxe,KAAA2D,QAAAsZ,OACAjd,KAAAid,OAAA2pC,SAAA0qb,EAAA9ve,WAAA8ve,EAAA57c,wBAAA,WAOA49P,wBAAA,WACA,IAAAi+M,EAUA,OATA//G,EAAA,SAAAz/K,GACA,SAAAw/R,EAAA,CACA,IAAA77Z,EAAA11E,KAAAgE,IAAA+tM,EAAA5nI,WAEAuL,EAAAz0E,SACAswe,EAAAvxe,KAAA40L,gBAAAmd,EAAAt8K,MAAAigD,EAAA,OAGK11E,MACLuxe,GAOAz/R,eAAA,SAAA3vM,EAAA2rD,GACA,IAAAnqD,EAAA3D,KAAA2D,QACA6tX,EAAA,SAAAz/K,GACAtzK,EAAAz+B,KAAAgE,IAAA+tM,EAAA5nI,WAAA,SAAAA,GACAhoE,EAAAuJ,KAAAoiD,EAAAikJ,EAAA5nI,EAAAnqE,KAAA2D,IACO3D,OACFA,OAQLs0R,aAAA,SAAAxyP,EAAAqoC,GACA,OAAAnqE,KAAAowe,aAAAtuc,EAAA,IAAAqoC,IAQAolJ,aAAA,SAAAztL,EAAAqoC,GACA,IAAA4rN,EAAA/1R,KAAAs0R,aAAAxyP,EAAAqoC,GACA,OAAA4rN,KAAAxmE,gBAcAqxI,YAAA,SAAAhoU,EAAA44c,GACA,IAAAv0d,EAAAjd,KAAAid,OACAwhB,IAAA,mDAAA0vP,GAMA,MAAAv1P,EAAAu1P,EAAA,WAAAv1P,EAAAu1P,EAAA,MACAlxQ,EAAAkxQ,EAAA,IAAAv1P,EAAAu1P,EAAA,IACAlxQ,EAAAkxQ,EAAA,IAAAv1P,EAAAu1P,EAAA,MAEKnuR,OACLwxe,GAAA5B,EAAA5ve,KAAA44B,IAOAy6L,gBAAA,WACA,IAAA0iE,EAAA/1R,KAAA0vN,8BAEA,GAAAqmE,EACA,OAAAA,EAAA4qE,wBAYA8wI,cAAA,SAAAC,EAAAvna,GACA,SAAAuna,GAAA,MAAAvna,EAOA,OAAAnqE,KAAAs0R,aAAAo9M,EAAAvna,GAAA+rN,qBANA,IAAAH,EAAA/1R,KAAA0vN,8BAEA,OAAAqmE,EACAA,EAAAG,0BADA,GAcAxmE,4BAAA,SAAAr5L,GACA,GAAAA,EACA,OAAAA,EAAAs6c,cAIA,IAAAD,EAAA1we,KAAAowe,aAEA,QAAArme,KAAA2me,EACA,GAAAA,EAAA7te,eAAAkH,IAAA2me,EAAA3me,GAAA6+d,SAAA5oe,MACA,OAAA0we,EAAA3me,GASA,QAAAA,KAAA2me,EACA,GAAAA,EAAA7te,eAAAkH,KAAA2me,EAAA3me,GAAA6+d,SAAA5oe,MACA,OAAA0we,EAAA3me,IAQAm/d,iBAAA,WACA,OAAAlpe,KAAA6ve,eAAAvte,WAkCAY,EAAAC,QAAAF,sBCliBAC,EAAAC,QAAA,SAAA9B,EAAAkG,GACA,OAAUA,QAAAlG,8CCAV,IAAAswe,EAAuBpye,EAAQ,QAC/B+nB,EAAW/nB,EAAQ,QACnBm3M,EAAgBn3M,EAAQ,QACxB27K,EAAgB37K,EAAQ,QAMxB2D,EAAAC,QAAiB5D,EAAQ,OAARA,CAAwBsM,MAAA,iBAAA8yO,EAAAr0O,GACzCtK,KAAA+0E,GAAAmmG,EAAAyjE,GACA3+O,KAAA2mG,GAAA,EACA3mG,KAAA8xP,GAAAxnP,GAEC,WACD,IAAAi2D,EAAAvgE,KAAA+0E,GACAzqE,EAAAtK,KAAA8xP,GACAllP,EAAA5M,KAAA2mG,KACA,OAAApmC,GAAA3zD,GAAA2zD,EAAAt/D,QACAjB,KAAA+0E,QAAArnE,EACA4Z,EAAA,IAEAA,EAAA,UAAAhd,EAAAsC,EACA,UAAAtC,EAAAi2D,EAAA3zD,IACAA,EAAA2zD,EAAA3zD,MACC,UAGD8pM,EAAAk7R,UAAAl7R,EAAA7qM,MAEA8le,EAAA,QACAA,EAAA,UACAA,EAAA,iCCjCcpye,EAAQ,QAEtBq6B,QAFA,IAIAx2B,EAAc7D,EAAQ,QAEtBs6B,EAAat6B,EAAQ,QAErBorC,EAAUprC,EAAQ,QAElB06B,EAAgB16B,EAAQ,QAExBisM,EAAiBjsM,EAAQ,QAEzBm5U,EAAsBn5U,EAAQ,QAoB9Bk4N,EAAAjsB,EAAAisB,UACA7yC,EAAA4mB,EAAA5mB,WAEA,SAAAitT,EAAAj5c,GACAqB,EAAAyqJ,gBAAA9rJ,EAAA,kBAGA,IAAAk5c,EAAA1ue,EAAAoxB,sBACAhxB,KAAA,SACAixB,cAAA,+BAKAjW,KAAA,SAAAvB,EAAA6oK,EAAAniL,EAAAmxL,GACA90L,KAAAqlL,qBAAApoK,EAAAtZ,GACA3D,KAAAolL,YAAAnoK,EAAAtZ,EAAAmxL,EAAAi9S,eAAA,IAMAtsa,mBAAA,WACA,GAAA96B,EAAAuuB,KACA,SAGA,IAAA84a,EAAAhye,KAAAiye,aACA,OAAAjye,KAAAqlE,WAAA,cAAA2sa,KAAAvsa,sBAEA2/G,YAAA,SAAAkrC,EAAA3sN,EAAAoue,EAAAr0T,GACA,IAAAo0T,EAAA9xe,KAAAG,YACA+xe,EAAAlye,KAAAsvD,SAAA,QAEAyib,GACApue,EAAAqxD,WAAA,SAAAx5B,GACA,IAAA22c,EAAA32c,EAAAx3B,IAAAhE,KAAAsvD,UAAA,GACAomT,EAAAl6U,EAAA02c,GAEAC,KAAArhe,MAKA4kW,EAyBAA,EAAAtwL,YAAA+sT,EAAAxue,GAAA,IAxBA+5K,GAEAm0T,EAAAM,GAGAt4c,EAAA4E,KAAA0zc,EAAArhe,KAAA,SAAAnE,GAEAA,aAAAd,OACAgme,EAAAlle,EAAA,IACAkle,EAAAlle,EAAA,KAEAkle,EAAAlle,KAGA+oW,EAAA,IAAAo8H,EAAAK,EAAAnye,KAAA2D,GACAk2B,EAAAnwB,OAAAgsW,GACApmT,SAAAtvD,KAAAsvD,SAEAn9B,YAAAqJ,EAAArJ,YACAvvB,KAAA44B,EAAA54B,KACAmve,eAAA,IAEAr8H,EAAAu8H,aAAAz2c,GAKAA,EAAA02c,GAAAx8H,GAhCAl6U,EAAA02c,GAAA,MAiCOlye,OAGPymL,cAAA,SAAAroJ,GACA,IAAAttB,EAAA9Q,KAAAksB,UACA3kB,EAAAvH,KAAA85M,YAAA17K,GACA+tP,EAAAtyP,EAAA/tB,QAAAvE,GAAAsyB,EAAAlpB,IAAApJ,EAAAkwN,GAAArxN,KAAA,MAAAqxN,EAAAlwN,GACA3E,EAAAkO,EAAAqzD,QAAA/lC,GACAwjB,EAAAgjI,EAAA5kL,KAAA4C,MAkBA,OAhBA,MAAA2E,GAAA3E,KACAg/C,GAAA,UAGAh/C,IACAg/C,GAAAgjI,EAAAhiL,GAEA,MAAA2E,IACAq6C,GAAA,QAIA,MAAAr6C,IACAq6C,GAAAgjI,EAAAunG,IAGAvqO,GAEA11B,QAAA,WACA,OAAAlsB,KAAAic,OAEA8gK,QAAA,SAAAjsK,GACA9Q,KAAAic,MAAAnL,KAGA+oB,EAAA8N,MAAAmqc,EAAAp5J,GACA,IAAAz1U,EAAA6ue,EACA5ue,EAAAC,QAAAF,sBC/IAC,EAAAC,QAAA,gGAEAtC,MAAA,2BCHA,IAAAg5B,EAAat6B,EAAQ,QAqHrB4D,EAAA8uZ,WAjFA,WACA,IAEAmgF,EAFA9/a,KACA+/a,KAEA,OAmBApzc,IAAA,SAAAx+B,EAAAF,EAAAyB,EAAAC,EAAAC,GAMA,OALA23B,EAAAn6B,SAAAuC,KACAC,EAAAD,EACAA,EAAA,IAGAowe,EAAA5xe,EAAAiB,MAIA2we,EAAA5xe,EAAAiB,IAAA,EACA4wD,EAAA/wD,MACAd,KACAF,SACAyB,OACAC,QACAC,YAEA,IASAb,KAAA,SAAAc,GAEA,OADAiwe,EAAAjwe,EACAnC,MAMAwC,MAAA,WAGA,IAFA,IAAAD,EAAA+vD,EAAArxD,OAEAF,EAAA,EAAAc,EAAAywD,EAAArxD,OAA2CF,EAAAc,EAASd,IAAA,CACpD,IAAA4L,EAAA2lD,EAAAvxD,GACA4L,EAAAlM,GAAAsB,UAAA4K,EAAApM,OAAAoM,EAAA3K,KAAA2K,EAAA1K,MAAA0K,EAAAzK,OAAAb,GAGA,OAAArB,KAEA,SAAAqB,MACAkB,IAGA+vD,EAAArxD,OAAA,EACAoxe,KACAD;;;;;ICjGA,SAAA18d,EAAAsgD,EAAA8J,GACM,EAKN,SAAAwya,EAAA7sZ,GACA,OAAA77E,OAAA1J,UAAA0H,SAAA8D,KAAA+5E,GAAA3lF,QAAA,YAGA,IAAAonC,GACAtkC,KAAA,cACAqvE,YAAA,EACAnvE,OACAF,MACAY,KAAA2N,OACA4H,QAAA,YAGAtV,OAAA,SAAA0a,EAAAvF,GACA,IAAA9V,EAAA8V,EAAA9V,MACAylL,EAAA3vK,EAAA2vK,SACAh/I,EAAA3wB,EAAA2wB,OACAz4B,EAAA8H,EAAA9H,KAEAA,EAAAyhe,YAAA,EAaA,IATA,IAAAt6d,EAAAsxB,EAAAtyB,eACArU,EAAAE,EAAAF,KACAwua,EAAA7nY,EAAAipc,OACA7yP,EAAAp2M,EAAAkpc,mBAAAlpc,EAAAkpc,qBAIAnqT,EAAA,EACAumL,GAAA,EACAtlU,KAAAmpc,cAAAnpc,GACAA,EAAA4oC,QAAA5oC,EAAA4oC,OAAArhE,KAAAyhe,YACAjqT,IAEA/+I,EAAA+iN,YACAuiH,GAAA,GAEAtlU,IAAA4iL,QAKA,GAHAr7M,EAAA6he,gBAAArqT,EAGAumL,EACA,OAAA52V,EAAA0nO,EAAA/8O,GAAAkO,EAAAy3K,GAGA,IAAAjrI,EAAA8zX,EAAA9zX,QAAAgrI,GAEA,IAAAhrI,EAEA,OADAqiM,EAAA/8O,GAAA,KACAqV,IAGA,IAAAsc,EAAAorN,EAAA/8O,GAAA06C,EAAAlpB,WAAAxxB,GAIAkO,EAAA8he,sBAAA,SAAA7rP,EAAAx5O,GAEA,IAAAg3B,EAAA+Y,EAAAgW,UAAA1wD,IAEA2K,GAAAg3B,IAAAwiN,IACAx5O,GAAAg3B,IAAAwiN,KAEAzpM,EAAAgW,UAAA1wD,GAAA2K,KAMKuD,EAAAihE,OAAAjhE,EAAAihE,UAA6BihL,SAAA,SAAA70O,EAAA2oM,GAClCxpK,EAAAgW,UAAA1wD,GAAAkkN,EAAAG,mBAIA,IAAA4rR,EAAA/he,EAAAhO,MAkBA,SAAAsua,EAAApxX,GACA,cAAAA,GACA,gBACA,OACA,aACA,OAAAA,EACA,eACA,OAAAA,EAAAoxX,GACA,cACA,OAAApxX,EAAAoxX,EAAAz/Y,YAAAjkB,EACA,QACU,GA7BVole,CAAA1hE,EAAA9zX,EAAAx6C,OAAAw6C,EAAAx6C,MAAAF,IACA,GAAAiwe,EAAA,CAEAA,EAAA/he,EAAAhO,MAoCA,SAAAo0C,EAAAnrC,GACA,QAAAhC,KAAAgC,EACAmrC,EAAAntC,GAAAgC,EAAAhC,GAEA,OAAAmtC,EAxCAxtC,IAA0Cmpe,GAE1C,IAAAx7d,EAAAvG,EAAAuG,MAAAvG,EAAAuG,UACA,QAAAtN,KAAA8oe,EACAt+c,EAAAzxB,OAAAiH,KAAAwqB,EAAAzxB,QACAuU,EAAAtN,GAAA8oe,EAAA9oe,UACA8oe,EAAA9oe,IAKA,OAAAkO,EAAAsc,EAAAzjB,EAAAy3K,KAkCA,IAAAwqT,EAAA,WACAC,EAAA,SAAA9ya,GAA0C,UAAAA,EAAAshC,WAAA,GAAA55F,SAAA,KAC1Cqre,EAAA,OAKAx1P,EAAA,SAAAptM,GAA6B,OAAA88F,mBAAA98F,GAC7B9nC,QAAAwqe,EAAAC,GACAzqe,QAAA0qe,EAAA,MAEAhmW,EAAAC,mBAuBA,SAAAgmW,EAAAn9a,GACA,IAAA3mD,KAIA,OAFA2mD,IAAAyrB,OAAAj5E,QAAA,kBAMAwtD,EAAAl1D,MAAA,KAAAiJ,QAAA,SAAAywU,GACA,IAAA93P,EAAA83P,EAAAhyU,QAAA,WAAA1H,MAAA,KACAkJ,EAAAkjI,EAAAxqD,EAAAj1C,SACAjgC,EAAAk1E,EAAAxhF,OAAA,EACAgsI,EAAAxqD,EAAAr8E,KAAA,MACA,UAEAsH,IAAA0B,EAAArF,GACAqF,EAAArF,GAAAwD,EACK1B,MAAAC,QAAAsD,EAAArF,IACLqF,EAAArF,GAAAxI,KAAAgM,GAEA6B,EAAArF,IAAAqF,EAAArF,GAAAwD,KAIA6B,GAnBAA,EAsBA,SAAA+je,EAAAhoe,GACA,IAAAiE,EAAAjE,EAAAvB,OAAAC,KAAAsB,GAAAwF,IAAA,SAAA5G,GACA,IAAAwD,EAAApC,EAAApB,GAEA,QAAA2D,IAAAH,EACA,SAGA,UAAAA,EACA,OAAAkwO,EAAA1zO,GAGA,GAAA8B,MAAAC,QAAAyB,GAAA,CACA,IAAAwD,KAWA,OAVAxD,EAAAzD,QAAA,SAAAq1R,QACAzxR,IAAAyxR,IAGA,OAAAA,EACApuR,EAAAxP,KAAAk8O,EAAA1zO,IAEAgH,EAAAxP,KAAAk8O,EAAA1zO,GAAA,IAAA0zO,EAAA0hD,OAGApuR,EAAA3K,KAAA,KAGA,OAAAq3O,EAAA1zO,GAAA,IAAA0zO,EAAAlwO,KACG6Z,OAAA,SAAA/iB,GAAuB,OAAAA,EAAApD,OAAA,IAAuBmF,KAAA,UACjD,OAAAgJ,EAAA,IAAAA,EAAA,GAMA,IAAAgke,EAAA,OAEA,SAAAC,EACAv0T,EACAjxB,EACAylV,EACA1jE,GAEA,IAAA2jE,EAAA3jE,KAAAnna,QAAA0qe,eAEAp9a,EAAA83F,EAAA93F,UACA,IACAA,EAAA/rB,EAAA+rB,GACG,MAAA5xD,IAEH,IAAAita,GACAxua,KAAAirJ,EAAAjrJ,MAAAk8K,KAAAl8K,KACAkuN,KAAAhyC,KAAAgyC,SACAzwN,KAAAwtJ,EAAAxtJ,MAAA,IACAg9C,KAAAwwG,EAAAxwG,MAAA,GACA0Y,QACApkC,OAAAk8H,EAAAl8H,WACA6hd,SAAAC,EAAA5lV,EAAA0lV,GACAj2b,QAAAwhI,EA2BA,SAAAA,GACA,IAAA1vK,KACA,KAAA0vK,GACA1vK,EAAAuzB,QAAAm8I,GACAA,IAAAv1I,OAEA,OAAAn6B,EAjCAske,CAAA50T,OAKA,OAHAw0T,IACAliE,EAAAkiE,eAAAG,EAAAH,EAAAC,IAEA3pe,OAAAi1O,OAAAuyL,GAGA,SAAApnY,EAAAziC,GACA,GAAAsE,MAAAC,QAAAvE,GACA,OAAAA,EAAAoJ,IAAAq5B,GACG,GAAAziC,GAAA,iBAAAA,EAAA,CACH,IAAA6H,KACA,QAAArF,KAAAxC,EACA6H,EAAArF,GAAAigC,EAAAziC,EAAAwC,IAEA,OAAAqF,EAEA,OAAA7H,EAKA,IAAAose,EAAAN,EAAA,MACAhze,KAAA,MAYA,SAAAoze,EACA76d,EACAg7d,GAEA,IAAAvze,EAAAuY,EAAAvY,KACA01D,EAAAn9C,EAAAm9C,WAAwB,IAAAA,UACxB,IAAA1Y,EAAAzkC,EAAAykC,KAGA,YAHsB,IAAAA,MAAA,KAGtBh9C,GAAA,MADAuze,GAAAT,GACAp9a,GAAA1Y,EAGA,SAAAw2b,EAAAt+d,EAAAC,GACA,OAAAA,IAAAm+d,EACAp+d,IAAAC,IACGA,IAEAD,EAAAlV,MAAAmV,EAAAnV,KAEHkV,EAAAlV,KAAAkI,QAAA6qe,EAAA,MAAA59d,EAAAnV,KAAAkI,QAAA6qe,EAAA,KACA79d,EAAA8nC,OAAA7nC,EAAA6nC,MACAy2b,EAAAv+d,EAAAwgD,MAAAvgD,EAAAugD,UAEGxgD,EAAA3S,OAAA4S,EAAA5S,QAEH2S,EAAA3S,OAAA4S,EAAA5S,MACA2S,EAAA8nC,OAAA7nC,EAAA6nC,MACAy2b,EAAAv+d,EAAAwgD,MAAAvgD,EAAAugD,QACA+9a,EAAAv+d,EAAAoc,OAAAnc,EAAAmc,UAOA,SAAAmid,EAAAv+d,EAAAC,GAKA,QAJA,IAAAD,eACA,IAAAC,WAGAD,IAAAC,EAAiB,OAAAD,IAAAC,EACjB,IAAAu+d,EAAAnqe,OAAAC,KAAA0L,GACAy+d,EAAApqe,OAAAC,KAAA2L,GACA,OAAAu+d,EAAA9ye,SAAA+ye,EAAA/ye,QAGA8ye,EAAAl8X,MAAA,SAAA9tG,GACA,IAAAkqe,EAAA1+d,EAAAxL,GACAmqe,EAAA1+d,EAAAzL,GAEA,uBAAAkqe,GAAA,iBAAAC,EACAJ,EAAAG,EAAAC,GAEA/ie,OAAA8ie,KAAA9ie,OAAA+ie,KA0BA,IA0IAC,EA1IAC,GAAAjje,OAAAvH,QACAyqe,GAAAlje,OAAAtF,OAEAyoe,GACA1xe,KAAA,cACAE,OACAo0C,IACA1zC,KAAA4we,EACArxU,UAAA,GAEAooD,KACA3nN,KAAA2N,OACA4H,QAAA,KAEAw7d,MAAA96d,QACA4yB,OAAA5yB,QACAlR,QAAAkR,QACAwuP,YAAA92P,OACAqje,iBAAArje,OACAomD,OACA/zD,KAAA6we,EACAt7d,QAAA,UAGAtV,OAAA,SAAAwU,GACA,IAAA8yC,EAAA/qD,KAEA4va,EAAA5va,KAAAqxa,QACA9sY,EAAAvkC,KAAAwye,OACA55d,EAAAg3Z,EAAAlha,QAAA1O,KAAAk3C,GAAA3S,EAAAvkC,KAAAqsC,QACAwhH,EAAAj1I,EAAAi1I,SACAujR,EAAAx4Z,EAAAw4Z,MACAtjR,EAAAl1I,EAAAk1I,KAEA8pO,KACA68G,EAAA7kE,EAAAnna,QAAAise,gBACAC,EAAA/kE,EAAAnna,QAAAmse,qBAEAC,EAAA,MAAAJ,EACA,qBACAA,EACAK,EAAA,MAAAH,EACA,2BACAA,EACA1sO,EAAA,MAAAjoQ,KAAAioQ,YACA4sO,EACA70e,KAAAioQ,YACAusO,EAAA,MAAAx0e,KAAAw0e,iBACAM,EACA90e,KAAAw0e,iBACAO,EAAAlnV,EAAAxtJ,KACAgze,EAAA,KAAAxlV,EAAA,KAAA+hR,GACAwB,EAEAx5C,EAAA48G,GAAAX,EAAAtvc,EAAAwwc,GACAn9G,EAAA3vH,GAAAjoQ,KAAAu0e,MACA38G,EAAA48G,GA9EA,SAAAjwc,EAAAhkC,GACA,OAGA,IAFAgkC,EAAAlkC,KAAAkI,QAAA6qe,EAAA,KAAAtze,QACAS,EAAAF,KAAAkI,QAAA6qe,EAAA,SAEA7ye,EAAA88C,MAAA9Y,EAAA8Y,OAAA98C,EAAA88C,OAKA,SAAA9Y,EAAAhkC,GACA,QAAAwJ,KAAAxJ,EACA,KAAAwJ,KAAAw6B,GACA,SAGA,SAVAywc,CAAAzwc,EAAAwxB,MAAAx1D,EAAAw1D,OAyEAk/a,CAAA1wc,EAAAwwc,GAEA,IAAAt5d,EAAA,SAAAtX,GACA+we,EAAA/we,KACA4mD,EAAAxiD,QACAqna,EAAArna,QAAAslJ,GAEA+hR,EAAArua,KAAAssJ,KAKAnuI,GAAcm1D,MAAAqga,GACdrpe,MAAAC,QAAA9L,KAAAu3D,OACAv3D,KAAAu3D,MAAAztD,QAAA,SAAA3F,GAAuCub,EAAAvb,GAAAsX,IAEvCiE,EAAA1f,KAAAu3D,OAAA97C,EAGA,IAAA3K,GACAoH,MAAA0/W,GAGA,SAAA53X,KAAAmrN,IACAr6M,EAAA4O,KACA5O,EAAAuG,OAAoBy2I,YACf,CAEL,IAAAv4I,EAsCA,SAAA4/d,EAAA5sT,GACA,GAAAA,EAEA,IADA,IAAAj8I,EACAvrC,EAAA,EAAmBA,EAAAwnL,EAAAtnL,OAAqBF,IAAA,CAExC,UADAurC,EAAAi8I,EAAAxnL,IACAoqN,IACA,OAAA7+K,EAEA,GAAAA,EAAAi8I,WAAAj8I,EAAA6oc,EAAA7oc,EAAAi8I,WACA,OAAAj8I,GA/CA6oc,CAAAn1e,KAAA8Y,OAAAC,SACA,GAAAxD,EAAA,CAEAA,EAAAivO,UAAA,EACA,IAAA96O,EAAAyqe,EAAA7gU,KAAA5pK,QACA6L,EAAAzE,KAAApH,KAAsC6L,EAAAzE,OACtC4O,MACAnK,EAAAzE,KAAAuG,MAAA3N,KAA6C6L,EAAAzE,KAAAuG,QAC7Cy2I,YAGAh9I,EAAA4O,KAIA,OAAAzH,EAAAjY,KAAAmrN,IAAAr6M,EAAA9Q,KAAA8Y,OAAAC,WAIA,SAAAm8d,EAAA/we,GAEA,KAAAA,EAAAixe,SAAAjxe,EAAA6mP,QAAA7mP,EAAAkxe,SAAAlxe,EAAAmxe,UAEAnxe,EAAAoxe,uBAEA7ne,IAAAvJ,EAAAguL,QAAA,IAAAhuL,EAAAguL,QAAA,CAEA,GAAAhuL,EAAA4iI,eAAA5iI,EAAA4iI,cAAA7rE,aAAA,CACA,IAAA36D,EAAA4D,EAAA4iI,cAAA7rE,aAAA,UACA,iBAAAS,KAAAp7D,GAAqC,OAMrC,OAHA4D,EAAAwtL,gBACAxtL,EAAAwtL,kBAEA,GAoBA,SAAAt9J,EAAAC,GACA,IAAAD,EAAAmhd,WAAArB,IAAA7/c,EAAA,CACAD,EAAAmhd,WAAA,EAEArB,EAAA7/c,EAEA,IAAAyqN,EAAA,SAAAhyO,GAA4B,YAAAW,IAAAX,GAE5B0oe,EAAA,SAAA1uP,EAAA2uP,GACA,IAAA30e,EAAAgmP,EAAA3uO,SAAA86O,aACAnU,EAAAh+O,IAAAg+O,EAAAh+O,IAAA+P,OAAAiuO,EAAAh+O,IAAA6xe,wBACA7xe,EAAAgmP,EAAA2uP,IAIAphd,EAAAqT,OACA8qC,aAAA,WACAssK,EAAA/+O,KAAAoY,SAAAw3Z,SACA5va,KAAA0ye,YAAA1ye,KACAA,KAAA21e,QAAA31e,KAAAoY,SAAAw3Z,OACA5va,KAAA21e,QAAAn3d,KAAAxe,MACAs0B,EAAAg/I,KAAA4yE,eAAAlmP,KAAA,SAAAA,KAAA21e,QAAAnoR,QAAAjpL,UAEAvkC,KAAA0ye,YAAA1ye,KAAAmsN,SAAAnsN,KAAAmsN,QAAAumR,aAAA1ye,KAEAy1e,EAAAz1e,YAEAunN,UAAA,WACAkuR,EAAAz1e,SAIA4J,OAAAwB,eAAAkpB,EAAAp0B,UAAA,WACA8D,IAAA,WAA0B,OAAAhE,KAAA0ye,YAAAiD,WAG1B/re,OAAAwB,eAAAkpB,EAAAp0B,UAAA,UACA8D,IAAA,WAA0B,OAAAhE,KAAA0ye,YAAAkD,UAG1Bthd,EAAAC,UAAA,cAAA2S,GACA5S,EAAAC,UAAA,cAAA+/c,GAEA,IAAA9tP,EAAAlyN,EAAA0rB,OAAA+gM,sBAEAyF,EAAAqvP,iBAAArvP,EAAAsvP,iBAAAtvP,EAAAuvP,kBAAAvvP,EAAA1mO,SAKA,IAAAoiO,EAAA,oBAAAvyO,OAIA,SAAAqme,EACAC,EACA19b,EACAlM,GAEA,IAAA6pc,EAAAD,EAAA/2b,OAAA,GACA,SAAAg3b,EACA,OAAAD,EAGA,SAAAC,GAAA,MAAAA,EACA,OAAA39b,EAAA09b,EAGA,IAAAnoe,EAAAyqC,EAAA13C,MAAA,KAKAwrC,GAAAv+B,IAAA7M,OAAA,IACA6M,EAAAgpD,MAKA,IADA,IAAAspE,EAAA61W,EAAA1te,QAAA,UAAA1H,MAAA,KACAE,EAAA,EAAiBA,EAAAq/H,EAAAn/H,OAAqBF,IAAA,CACtC,IAAAggI,EAAAX,EAAAr/H,GACA,OAAAggI,EACAjzH,EAAAgpD,MACK,MAAAiqE,GACLjzH,EAAAvM,KAAAw/H,GASA,MAJA,KAAAjzH,EAAA,IACAA,EAAA60B,QAAA,IAGA70B,EAAA1H,KAAA,KA0BA,SAAA+ve,EAAA91e,GACA,OAAAA,EAAAkI,QAAA,aAGA,IAAA6te,EAAAvqe,MAAAC,SAAA,SAAAF,GACA,wBAAAhC,OAAA1J,UAAA0H,SAAA8D,KAAAE,IAMAyqe,EAAAC,EACAC,EAAAppe,EACAqpe,EAsGA,SAAAnmc,EAAA5nC,GACA,OAAAgue,EAAAtpe,EAAAkjC,EAAA5nC,KAtGAiue,EAAAD,EACAE,EAAAC,EAOAC,EAAA,IAAAvue,QAGA,UAOA,0GACAlC,KAAA,UASA,SAAA+G,EAAAkjC,EAAA5nC,GAQA,IAPA,IAKA2G,EALAomC,KACAzrC,EAAA,EACA6C,EAAA,EACAvM,EAAA,GACAy2e,EAAArue,KAAAsue,WAAA,IAGA,OAAA3ne,EAAAyne,EAAA10Z,KAAA9xC,KAAA,CACA,IAAA1jB,EAAAvd,EAAA,GACA4ne,EAAA5ne,EAAA,GACAszB,EAAAtzB,EAAAxC,MAKA,GAJAvM,GAAAgwC,EAAA/tC,MAAAsK,EAAA81B,GACA91B,EAAA81B,EAAA/V,EAAA1rB,OAGA+1e,EACA32e,GAAA22e,EAAA,OADA,CAKA,IAAAvyc,EAAA4L,EAAAzjC,GACAs6N,EAAA93N,EAAA,GACAxM,EAAAwM,EAAA,GACAk3B,EAAAl3B,EAAA,GACA4vB,EAAA5vB,EAAA,GACAgtC,EAAAhtC,EAAA,GACA6ne,EAAA7ne,EAAA,GAGA/O,IACAm1C,EAAAj0C,KAAAlB,GACAA,EAAA,IAGA,IAAAugH,EAAA,MAAAsmH,GAAA,MAAAziM,OAAAyiM,EACA5sB,EAAA,MAAAl+J,GAAA,MAAAA,EACA86b,EAAA,MAAA96b,GAAA,MAAAA,EACA26b,EAAA3ne,EAAA,IAAA0ne,EACAt/O,EAAAlxN,GAAAtH,EAEAwW,EAAAj0C,MACAqB,QAAAmH,IACAm9N,UAAA,GACA6vQ,YACAG,WACA58R,SACA15F,UACAq2X,aACAz/O,UAAA2/O,EAAA3/O,GAAAy/O,EAAA,UAAAG,EAAAL,GAAA,SAcA,OATAnqe,EAAAyjC,EAAApvC,SACAZ,GAAAgwC,EAAA0kE,OAAAnoG,IAIAvM,GACAm1C,EAAAj0C,KAAAlB,GAGAm1C,EAoBA,SAAA6hc,EAAAhnc,GACA,OAAAinc,UAAAjnc,GAAA9nC,QAAA,mBAAA23D,GACA,UAAAA,EAAAshC,WAAA,GAAA55F,SAAA,IAAAoqC,gBAmBA,SAAAykc,EAAAjhc,GAKA,IAHA,IAAA+hN,EAAA,IAAA1rP,MAAA2pC,EAAAv0C,QAGAF,EAAA,EAAiBA,EAAAy0C,EAAAv0C,OAAmBF,IACpC,iBAAAy0C,EAAAz0C,KACAw2P,EAAAx2P,GAAA,IAAAuH,OAAA,OAAAktC,EAAAz0C,GAAAy2P,QAAA,OAIA,gBAAArsP,EAAAN,GAMA,IALA,IAAAxK,EAAA,GACAyQ,EAAA3F,MAEAsyO,GADA5yO,OACA0se,OAAAF,EAAAlqW,mBAEApsI,EAAA,EAAmBA,EAAAy0C,EAAAv0C,OAAmBF,IAAA,CACtC,IAAA8+D,EAAArqB,EAAAz0C,GAEA,oBAAA8+D,EAAA,CAMA,IACAkhE,EADAx5H,EAAAuJ,EAAA+uD,EAAAj9D,MAGA,SAAA2E,EAAA,CACA,GAAAs4D,EAAAq3a,SAAA,CAEAr3a,EAAA+gD,UACAvgH,GAAAw/D,EAAAqnK,QAGA,SAEA,UAAAljL,UAAA,aAAA6b,EAAAj9D,KAAA,mBAIA,GAAAwze,EAAA7ue,GAAA,CACA,IAAAs4D,EAAAy6I,OACA,UAAAt2J,UAAA,aAAA6b,EAAAj9D,KAAA,kCAAAsK,KAAAE,UAAA7F,GAAA,KAGA,OAAAA,EAAAtG,OAAA,CACA,GAAA4+D,EAAAq3a,SACA,SAEA,UAAAlzb,UAAA,aAAA6b,EAAAj9D,KAAA,qBAIA,QAAAswB,EAAA,EAAuBA,EAAA3rB,EAAAtG,OAAkBiyB,IAAA,CAGzC,GAFA6tG,EAAA08G,EAAAl2O,EAAA2rB,KAEAqkO,EAAAx2P,GAAA46D,KAAAolE,GACA,UAAA/8E,UAAA,iBAAA6b,EAAAj9D,KAAA,eAAAi9D,EAAA23L,QAAA,oBAAAtqP,KAAAE,UAAA2zH,GAAA,KAGA1gI,IAAA,IAAA6yB,EAAA2sC,EAAAqnK,OAAArnK,EAAAk3a,WAAAh2W,OApBA,CA4BA,GAFAA,EAAAlhE,EAAAo3a,SA5EAK,UA4EA/ve,GA5EAgB,QAAA,iBAAA23D,GACA,UAAAA,EAAAshC,WAAA,GAAA55F,SAAA,IAAAoqC,gBA2EAyrM,EAAAl2O,IAEAgwP,EAAAx2P,GAAA46D,KAAAolE,GACA,UAAA/8E,UAAA,aAAA6b,EAAAj9D,KAAA,eAAAi9D,EAAA23L,QAAA,oBAAAz2H,EAAA,KAGA1gI,GAAAw/D,EAAAqnK,OAAAnmG,QArDA1gI,GAAAw/D,EAwDA,OAAAx/D,GAUA,SAAA+2e,EAAA/mc,GACA,OAAAA,EAAA9nC,QAAA,6BAAmC,QASnC,SAAA4ue,EAAAn4c,GACA,OAAAA,EAAAz2B,QAAA,wBAUA,SAAAive,EAAAzoV,EAAAllJ,GAEA,OADAklJ,EAAAllJ,OACAklJ,EASA,SAAAlsD,EAAAp6F,GACA,OAAAA,EAAAgve,UAAA,OAwEA,SAAAb,EAAAphc,EAAA3rC,EAAApB,GACA2te,EAAAvse,KACApB,EAAiCoB,GAAApB,EACjCoB,MAUA,IALA,IAAAstO,GAFA1uO,SAEA0uO,OACAjmN,GAAA,IAAAzoB,EAAAyoB,IACAkgZ,EAAA,GAGArwa,EAAA,EAAiBA,EAAAy0C,EAAAv0C,OAAmBF,IAAA,CACpC,IAAA8+D,EAAArqB,EAAAz0C,GAEA,oBAAA8+D,EACAuxW,GAAAgmE,EAAAv3a,OACK,CACL,IAAAqnK,EAAAkwQ,EAAAv3a,EAAAqnK,QACA5gM,EAAA,MAAAu5B,EAAA23L,QAAA,IAEA3tP,EAAAtI,KAAAs+D,GAEAA,EAAAy6I,SACAh0K,GAAA,MAAA4gM,EAAA5gM,EAAA,MAaA8qY,GANA9qY,EAJAu5B,EAAAq3a,SACAr3a,EAAA+gD,QAGAsmH,EAAA,IAAA5gM,EAAA,KAFA,MAAA4gM,EAAA,IAAA5gM,EAAA,MAKA4gM,EAAA,IAAA5gM,EAAA,KAOA,IAAAywc,EAAAK,EAAA3ue,EAAAsue,WAAA,KACAW,EAAAtmE,EAAA9ua,OAAAy0e,EAAA91e,UAAA81e,EAkBA,OAZA5/P,IACAi6L,GAAAsmE,EAAAtmE,EAAA9ua,MAAA,GAAAy0e,EAAA91e,QAAAmwa,GAAA,MAAA2lE,EAAA,WAIA3lE,GADAlgZ,EACA,IAIAimN,GAAAugQ,EAAA,SAAAX,EAAA,MAGAS,EAAA,IAAAlve,OAAA,IAAA8oa,EAAAvuU,EAAAp6F,IAAAoB,GAeA,SAAAyse,EAAAj2e,EAAAwJ,EAAApB,GAQA,OAPA2te,EAAAvse,KACApB,EAAiCoB,GAAApB,EACjCoB,MAGApB,QAEApI,aAAAiI,OAlJA,SAAAjI,EAAAwJ,GAEA,IAAA6qG,EAAAr0G,EAAAoC,OAAA0G,MAAA,aAEA,GAAAurG,EACA,QAAA3zG,EAAA,EAAmBA,EAAA2zG,EAAAzzG,OAAmBF,IACtC8I,EAAAtI,MACAqB,KAAA7B,EACAmmO,OAAA,KACA6vQ,UAAA,KACAG,UAAA,EACA58R,QAAA,EACA15F,SAAA,EACAq2X,UAAA,EACAz/O,QAAA,OAKA,OAAAggP,EAAAn3e,EAAAwJ,GAgIA8te,CAAAt3e,EAAkD,GAGlD+1e,EAAA/1e,GAxHA,SAAAA,EAAAwJ,EAAApB,GAGA,IAFA,IAAAg6E,KAEA1hF,EAAA,EAAiBA,EAAAV,EAAAY,OAAiBF,IAClC0hF,EAAAlhF,KAAA+0e,EAAAj2e,EAAAU,GAAA8I,EAAApB,GAAAhG,QAKA,OAAA+0e,EAFA,IAAAlve,OAAA,MAAAm6E,EAAAr8E,KAAA,SAAAy8F,EAAAp6F,IAEAoB,GAgHA+te,CAA2C,EAA8B,EAAAnve,GArGzE,SAAApI,EAAAwJ,EAAApB,GACA,OAAAmue,EAAAzpe,EAAA9M,EAAAoI,GAAAoB,EAAApB,GAuGAove,CAA0C,EAA8B,EAAApve,GAGxE4te,EAAAlpe,MAAAope,EACAF,EAAA92N,QAAAi3N,EACAH,EAAAI,iBAAAC,EACAL,EAAAO,eAAAD,EAKA,IAAAmB,EAAAlue,OAAA8/B,OAAA,MAEA,SAAAquc,EACA13e,EACAsxB,EACAqmd,GAEA,IAIA,OAFAF,EAAAz3e,KACAy3e,EAAAz3e,GAAAg2e,EAAA92N,QAAAl/Q,KACAsxB,OAAiC4ld,QAAA,IAC9B,MAAApze,GAIH,UAMA,SAAA8ze,EACAC,EACAC,EACAC,EACAC,GAGA,IAAAtpQ,EAAAopQ,MAEAG,EAAAF,GAAAxue,OAAA8/B,OAAA,MAEA0mK,EAAAioS,GAAAzue,OAAA8/B,OAAA,MAEAwuc,EAAApue,QAAA,SAAAsna,IAoBA,SAAAmnE,EACAxpQ,EACAupQ,EACAloS,EACAghO,EACA7nY,EACAivc,GAEA,IAAAn4e,EAAA+wa,EAAA/wa,KACA,IAAAuC,EAAAwua,EAAAxua,KACM,EASN,IAAA61e,EAAArnE,EAAAqnE,wBACA,IAAAC,EAuGA,SAAAr4e,EAAAkpC,EAAA4tM,GACAA,IAAgB92O,IAAAkI,QAAA,WAChB,SAAAlI,EAAA,GAAwB,OAAAA,EACxB,SAAAkpC,EAAuB,OAAAlpC,EACvB,OAAA81e,EAAA5sc,EAAA,SAAAlpC,GA3GAwhF,CACAxhF,EACAkpC,EACAkvc,EAAAthQ,QAGA,kBAAAi6L,EAAAunE,gBACAF,EAAAhB,UAAArmE,EAAAunE,eAGA,IAAA75T,GACAz+K,KAAAq4e,EACAE,MA+EA,SAAAv4e,EAAAo4e,GACA,IAAAG,EAAAvC,EAAAh2e,KAAAo4e,GAQA,OAAAG,EAxFAC,CAAAH,EAAAD,GACArkd,WAAAg9Y,EAAAh9Y,aAAqCrb,QAAAq4Z,EAAA78Y,WACrC++B,aACA1wD,OACA2mC,SACAivc,UACAM,SAAA1nE,EAAA0nE,SACAvxO,YAAA6pK,EAAA7pK,YACAz2C,KAAAsgN,EAAAtgN,SACAhuN,MAAA,MAAAsua,EAAAtua,SAEAsua,EAAAh9Y,WACAg9Y,EAAAtua,OACWiW,QAAAq4Z,EAAAtua,QAGXsua,EAAA7oP,UAgBA6oP,EAAA7oP,SAAAz+K,QAAA,SAAAwiC,GACA,IAAAysc,EAAAP,EACArC,EAAAqC,EAAA,IAAAlsc,EAAA,WACA5+B,EACA6qe,EAAAxpQ,EAAAupQ,EAAAloS,EAAA9jK,EAAAwyI,EAAAi6T,KAIA,QAAArre,IAAA0ja,EAAA74J,MAAA,CACA,IAAAygO,EAAAnte,MAAAC,QAAAsla,EAAA74J,OACA64J,EAAA74J,OACA64J,EAAA74J,OAEAygO,EAAAlve,QAAA,SAAAyuQ,GACA,IAAA0gO,GACA54e,KAAAk4Q,EACAhwF,SAAA6oP,EAAA7oP,UAEAgwT,EACAxpQ,EACAupQ,EACAloS,EACA6oS,EACA1vc,EACAu1I,EAAAz+K,MAAA,OAKAi4e,EAAAx5T,EAAAz+K,QACA0uO,EAAAxtO,KAAAu9K,EAAAz+K,MACAi4e,EAAAx5T,EAAAz+K,MAAAy+K,GAGAl8K,IACAwtM,EAAAxtM,KACAwtM,EAAAxtM,GAAAk8K,IAvHAy5T,CAAAxpQ,EAAAupQ,EAAAloS,EAAAghO,KAIA,QAAArwa,EAAA,EAAAC,EAAA+tO,EAAA9tO,OAAsCF,EAAAC,EAAOD,IAC7C,MAAAguO,EAAAhuO,KACAguO,EAAAxtO,KAAAwtO,EAAAztO,OAAAP,EAAA,OACAC,IACAD,KAIA,OACAguO,WACAupQ,UACAloS,WAyIA,SAAA8oS,EACA30P,EACAhgN,EACA8H,EACAujY,GAEA,IAAAnrY,EAAA,iBAAA8/M,GAAwClkP,KAAAkkP,GAAYA,EAEpD,GAAA9/M,EAAA7hC,MAAA6hC,EAAA00c,YACA,OAAA10c,EAIA,IAAAA,EAAApkC,MAAAokC,EAAA9S,QAAA4S,EAAA,EACAE,EAAAh5B,KAAoBg5B,IACpB00c,aAAA,EACA,IAAAxnd,EAAAlmB,OAAiC84B,EAAA5S,QAAA8S,EAAA9S,QACjC,GAAA4S,EAAA3hC,KACA6hC,EAAA7hC,KAAA2hC,EAAA3hC,KACA6hC,EAAA9S,cACK,GAAA4S,EAAA+Y,QAAAr8C,OAAA,CACL,IAAAm4e,EAAA70c,EAAA+Y,QAAA/Y,EAAA+Y,QAAAr8C,OAAA,GAAAZ,KACAokC,EAAApkC,KAAA03e,EAAAqB,EAAAznd,EAAA4S,EAAA,WACe,EAGf,OAAAE,EAGA,IAAA40c,EAzqBA,SAAAh5e,GACA,IAAAg9C,EAAA,GACA0Y,EAAA,GAEAujb,EAAAj5e,EAAAP,QAAA,KACAw5e,GAAA,IACAj8b,EAAAh9C,EAAAiC,MAAAg3e,GACAj5e,IAAAiC,MAAA,EAAAg3e,IAGA,IAAAC,EAAAl5e,EAAAP,QAAA,KAMA,OALAy5e,GAAA,IACAxjb,EAAA11D,EAAAiC,MAAAi3e,EAAA,GACAl5e,IAAAiC,MAAA,EAAAi3e,KAIAl5e,OACA01D,QACA1Y,QAspBA+oI,CAAA3hJ,EAAApkC,MAAA,IACAg2E,EAAA9xC,KAAAlkC,MAAA,IACAA,EAAAg5e,EAAAh5e,KACA21e,EAAAqD,EAAAh5e,KAAAg2E,EAAAhqC,GAAA5H,EAAA4H,QACAgqC,EAEAtgB,EAznCA,SACAA,EACAyjb,EACAC,QAEA,IAAAD,UAEA,IACAE,EADAvse,EAAAsse,GAAAvG,EAEA,IACAwG,EAAAvse,EAAA4oD,GAAA,IACG,MAAA5xD,GAEHu1e,KAEA,QAAA3ve,KAAAyve,EACAE,EAAA3ve,GAAAyve,EAAAzve,GAEA,OAAA2ve,EAumCAC,CACAN,EAAAtjb,MACAtxB,EAAAsxB,MACA65W,KAAAnna,QAAAyqe,YAGA71b,EAAA5Y,EAAA4Y,MAAAg8b,EAAAh8b,KAKA,OAJAA,GAAA,MAAAA,EAAA6B,OAAA,KACA7B,EAAA,IAAAA,IAIA87b,aAAA,EACA94e,OACA01D,QACA1Y,QAIA,SAAA5xC,EAAA8J,EAAAC,GACA,QAAAzL,KAAAyL,EACAD,EAAAxL,GAAAyL,EAAAzL,GAEA,OAAAwL,EAMA,SAAAqke,EACA1B,EACAtoE,GAEA,IAAAh3Z,EAAAq/d,EAAAC,GACAnpQ,EAAAn2N,EAAAm2N,SACAupQ,EAAA1/d,EAAA0/d,QACAloS,EAAAx3L,EAAAw3L,QAMA,SAAAjnM,EACAo7O,EACAs1P,EACAvG,GAEA,IAAAzlV,EAAAqrV,EAAA30P,EAAAs1P,GAAA,EAAAjqE,GACAhta,EAAAirJ,EAAAjrJ,KAEA,GAAAA,EAAA,CACA,IAAAk8K,EAAAsxB,EAAAxtM,GAIA,IAAAk8K,EAAoB,OAAAg7T,EAAA,KAAAjsV,GACpB,IAAAksV,EAAAj7T,EAAA85T,MAAA/ue,KACAud,OAAA,SAAArd,GAAgC,OAAAA,EAAAmte,WAChCvme,IAAA,SAAA5G,GAA6B,OAAAA,EAAAnH,OAM7B,GAJA,iBAAAirJ,EAAAl8H,SACAk8H,EAAAl8H,WAGAkod,GAAA,iBAAAA,EAAAlod,OACA,QAAA5nB,KAAA8ve,EAAAlod,SACA5nB,KAAA8jJ,EAAAl8H,SAAAood,EAAAj6e,QAAAiK,IAAA,IACA8jJ,EAAAl8H,OAAA5nB,GAAA8ve,EAAAlod,OAAA5nB,IAKA,GAAA+0K,EAEA,OADAjxB,EAAAxtJ,KAAA03e,EAAAj5T,EAAAz+K,KAAAwtJ,EAAAl8H,QACAmod,EAAAh7T,EAAAjxB,EAAAylV,QAEK,GAAAzlV,EAAAxtJ,KAAA,CACLwtJ,EAAAl8H,UACA,QAAA5wB,EAAA,EAAqBA,EAAAguO,EAAA9tO,OAAqBF,IAAA,CAC1C,IAAAV,EAAA0uO,EAAAhuO,GACAi5e,EAAA1B,EAAAj4e,GACA,GAAA45e,EAAAD,EAAApB,MAAA/qV,EAAAxtJ,KAAAwtJ,EAAAl8H,QACA,OAAAmod,EAAAE,EAAAnsV,EAAAylV,IAKA,OAAAwG,EAAA,KAAAjsV,GAGA,SAAAirV,EACAh6T,EACAjxB,GAEA,IAAAqsV,EAAAp7T,EAAAg6T,SACAA,EAAA,mBAAAoB,EACAA,EAAA7G,EAAAv0T,EAAAjxB,EAAA,KAAA+hR,IACAsqE,EAMA,GAJA,iBAAApB,IACAA,GAAkBz4e,KAAAy4e,KAGlBA,GAAA,iBAAAA,EAMA,OAAAgB,EAAA,KAAAjsV,GAGA,IAAAkB,EAAA+pV,EACAl2e,EAAAmsJ,EAAAnsJ,KACAvC,EAAA0uJ,EAAA1uJ,KACA01D,EAAA83F,EAAA93F,MACA1Y,EAAAwwG,EAAAxwG,KACA1rB,EAAAk8H,EAAAl8H,OAKA,GAJAokC,EAAAg5F,EAAAlsJ,eAAA,SAAAksJ,EAAAh5F,QACA1Y,EAAA0xG,EAAAlsJ,eAAA,QAAAksJ,EAAA1xG,OACA1rB,EAAAo9H,EAAAlsJ,eAAA,UAAAksJ,EAAAp9H,SAEA/uB,EAAA,CAEAwtM,EAAAxtM,GAIA,OAAAuG,GACAgwe,aAAA,EACAv2e,OACAmzD,QACA1Y,OACA1rB,eACOjkB,EAAAmgJ,GACF,GAAAxtJ,EAAA,CAEL,IAAA+4e,EAiFA,SAAA/4e,EAAAy+K,GACA,OAAAk3T,EAAA31e,EAAAy+K,EAAAv1I,OAAAu1I,EAAAv1I,OAAAlpC,KAAA,QAlFA85e,CAAA95e,EAAAy+K,GAIA,OAAA31K,GACAgwe,aAAA,EACA94e,KAJA03e,EAAAqB,EAAAznd,GAKAokC,QACA1Y,aACO3vC,EAAAmgJ,GAKP,OAAAisV,EAAA,KAAAjsV,GAuBA,SAAAisV,EACAh7T,EACAjxB,EACAylV,GAEA,OAAAx0T,KAAAg6T,SACAA,EAAAh6T,EAAAw0T,GAAAzlV,GAEAixB,KAAA05T,QA3BA,SACA15T,EACAjxB,EACA2qV,GAEA,IACA4B,EAAAjxe,GACAgwe,aAAA,EACA94e,KAHA03e,EAAAS,EAAA3qV,EAAAl8H,UAKA,GAAAyod,EAAA,CACA,IAAA98b,EAAA88b,EAAA98b,QACA+8b,EAAA/8b,IAAAr8C,OAAA,GAEA,OADA4sJ,EAAAl8H,OAAAyod,EAAAzod,OACAmod,EAAAO,EAAAxsV,GAEA,OAAAisV,EAAA,KAAAjsV,GAYA0qH,CAAAz5F,EAAAjxB,EAAAixB,EAAA05T,SAEAnF,EAAAv0T,EAAAjxB,EAAAylV,EAAA1jE,GAGA,OACAzma,QACAmxe,UAxJA,SAAApC,GACAD,EAAAC,EAAAnpQ,EAAAupQ,EAAAloS,KA2JA,SAAA6pS,EACArB,EACAv4e,EACAsxB,GAEA,IAAAhF,EAAAtsB,EAAA8I,MAAAyve,GAEA,IAAAjsd,EACA,SACG,IAAAgF,EACH,SAGA,QAAA5wB,EAAA,EAAAc,EAAA8qB,EAAA1rB,OAAiCF,EAAAc,IAASd,EAAA,CAC1C,IAAAgJ,EAAA6ue,EAAA/ue,KAAA9I,EAAA,GACAwM,EAAA,iBAAAof,EAAA5rB,GAAAmsI,mBAAAvgH,EAAA5rB,IAAA4rB,EAAA5rB,GACAgJ,IACA4nB,EAAA5nB,EAAAnH,MAAA2K,GAIA,SAUA,IAAAgte,EAAA3we,OAAA8/B,OAAA,MAEA,SAAA8wc,IAEA7qe,OAAA69M,QAAAitR,cAA+B1we,IAAA2we,MAAqB,IACpD/qe,OAAAiP,iBAAA,oBAAAza,GAuJA,IAAA4F,EAtJA4we,KACAx2e,EAAA43C,OAAA53C,EAAA43C,MAAAhyC,MAqJAA,EApJA5F,EAAA43C,MAAAhyC,IAqJA4T,GAAA5T,KAhJA,SAAA8hN,GACA+jN,EACA14X,EACAnrC,EACA6ue,GAEA,GAAAhrE,EAAAirE,IAAA,CAIA,IAAAjtT,EAAAgiP,EAAAnna,QAAAqye,eACAltT,GASAgiP,EAAAirE,IAAAt+d,UAAA,WACA,IAAAnO,EA+BA,WACA,IAAArE,EAAA2we,KACA,GAAA3we,EACA,OAAAwwe,EAAAxwe,GAlCAgxe,GACAC,EAAAptT,EAAA12I,EAAAnrC,EAAA6ue,EAAAxse,EAAA,MAEA4se,IAIA,mBAAAA,EAAA7re,KACA6re,EAAA7re,KAAA,SAAA6re,GACAC,GAAA,EAAA7se,KACO69E,MAAA,SAAAxG,GACK,IAKZw1Z,GAAAD,EAAA5se,OAKA,SAAAuse,KACA,IAAA5we,EAAA2we,KACA3we,IACAwwe,EAAAxwe,IACA1F,EAAAsL,OAAAure,YACA32e,EAAAoL,OAAA6rS,cAsBA,SAAA2/L,GAAAhwe,GACA,OAAA6hM,GAAA7hM,EAAA9G,IAAA2oM,GAAA7hM,EAAA5G,GAGA,SAAA62e,GAAAjwe,GACA,OACA9G,EAAA2oM,GAAA7hM,EAAA9G,GAAA8G,EAAA9G,EAAAsL,OAAAure,YACA32e,EAAAyoM,GAAA7hM,EAAA5G,GAAA4G,EAAA5G,EAAAoL,OAAA6rS,aAWA,SAAAxuG,GAAAjgM,GACA,uBAAAA,EAGA,SAAAkue,GAAAD,EAAA5se,GACA,IAZAjD,EAYAvL,EAAA,iBAAAo7e,EACA,GAAAp7e,GAAA,iBAAAo7e,EAAA3uG,SAAA,CACA,IAAA5rY,EAAAoP,SAAA0zC,cAAAy3b,EAAA3uG,UACA,GAAA5rY,EAAA,CACA,IAAAiiC,EAAAs4c,EAAAt4c,QAAA,iBAAAs4c,EAAAt4c,OAAAs4c,EAAAt4c,UAEAt0B,EAvCA,SAAA3N,EAAAiiC,GACA,IACA24c,EADAxre,SAAAmuC,gBACAW,wBACA/sB,EAAAnxB,EAAAk+C,wBACA,OACAt6C,EAAAutB,EAAA/rB,KAAAw1e,EAAAx1e,KAAA68B,EAAAr+B,EACAE,EAAAqtB,EAAA5f,IAAAqpe,EAAArpe,IAAA0wB,EAAAn+B,GAiCA+2e,CAAA76e,EADAiiC,GAfAr+B,EAAA2oM,IAFA7hM,EAiBAu3B,GAfAr+B,GAAA8G,EAAA9G,EAAA,EACAE,EAAAyoM,GAAA7hM,EAAA5G,GAAA4G,EAAA5G,EAAA,SAgBK42e,GAAAH,KACL5se,EAAAgte,GAAAJ,SAEGp7e,GAAAu7e,GAAAH,KACH5se,EAAAgte,GAAAJ,IAGA5se,GACAuB,OAAA4re,SAAAnte,EAAA/J,EAAA+J,EAAA7J,GAMA,IACAiuH,GADAgpX,GAAAt5P,MAIA,KAHA1vH,GAAA7iH,OAAAkvC,UAAAC,WAGAh/C,QAAA,oBAAA0yH,GAAA1yH,QAAA,iBACA,IAAA0yH,GAAA1yH,QAAA,mBACA,IAAA0yH,GAAA1yH,QAAA,YACA,IAAA0yH,GAAA1yH,QAAA,mBAKA6P,OAAA69M,SAAA,cAAA79M,OAAA69M,SAIAiuR,GAAAv5P,GAAAvyO,OAAAm6F,aAAAn6F,OAAAm6F,YAAAp6F,IACAC,OAAAm6F,YACAr6F,KAEAkO,GAAA+9d,KAEA,SAAAA,KACA,OAAAD,GAAA/re,MAAApI,QAAA,GAGA,SAAAoze,KACA,OAAA/8d,GAOA,SAAAg+d,GAAAxte,EAAA5F,GACAoye,KAGA,IAAAntR,EAAA79M,OAAA69M,QACA,IACAjlN,EACAilN,EAAAitR,cAA4B1we,IAAA4T,IAAY,GAAAxP,IAExCwP,GAAA+9d,KACAluR,EAAAmuR,WAAyB5xe,IAAA4T,IAAY,GAAAxP,IAElC,MAAAhK,GACHwL,OAAAk+I,SAAAtlJ,EAAA,oBAAA4F,IAIA,SAAAsse,GAAAtse,GACAwte,GAAAxte,GAAA,GAKA,SAAAyte,GAAAr+Q,EAAAtxN,EAAAq7D,GACA,IAAAhgD,EAAA,SAAA1a,GACAA,GAAA2wN,EAAAt8N,OACAqmE,IAEAi2J,EAAA3wN,GACAX,EAAAsxN,EAAA3wN,GAAA,WACA0a,EAAA1a,EAAA,KAGA0a,EAAA1a,EAAA,IAIA0a,EAAA,GAKA,SAAAu0d,GAAAv+b,GACA,gBAAApG,EAAAnrC,EAAA04B,GACA,IAAAq3c,GAAA,EACA3oX,EAAA,EACAp4C,EAAA,KAEAgha,GAAAz+b,EAAA,SAAAwkM,EAAA3jO,EAAAhV,EAAAY,GAMA,sBAAA+3O,QAAAp0O,IAAAo0O,EAAA0S,IAAA,CACAsnP,GAAA,EACA3oX,IAEA,IA0BA/jH,EA1BAV,EAAAo3E,GAAA,SAAAk2Z,GAuEA,IAAA7we,MAtEA6we,GAuEA5qa,YAAA+xK,IAAA,WAAAh4O,EAAAF,OAAAwgP,gBAtEAuwP,IAAAjje,SAGA+oO,EAAA4S,SAAA,mBAAAsnP,EACAA,EACA7H,EAAAzqe,OAAAsye,GACA7ye,EAAAirB,WAAArqB,GAAAiye,IACA7oX,GACA,GACA1uF,MAIA91B,EAAAm3E,GAAA,SAAA/lB,GACA,IAAAub,EAAA,qCAAAvxE,EAAA,KAAAg2D,EAEAgb,IACAA,EAAAu3Z,EAAAvya,GACAA,EACA,IAAAV,MAAAic,GACA72C,EAAAs2C,MAKA,IACA3rE,EAAA0yO,EAAApzO,EAAAC,GACS,MAAAxK,GACTwK,EAAAxK,GAEA,GAAAiL,EACA,sBAAAA,EAAAD,KACAC,EAAAD,KAAAT,EAAAC,OACW,CAEX,IAAA68O,EAAAp8O,EAAAmlB,UACAi3N,GAAA,mBAAAA,EAAAr8O,MACAq8O,EAAAr8O,KAAAT,EAAAC,OAOAmte,GAAoBr3c,KAIpB,SAAAs3c,GACAz+b,EACArxC,GAEA,OAAAgwe,GAAA3+b,EAAA3sC,IAAA,SAAAgc,GACA,OAAA/iB,OAAAC,KAAA8iB,EAAAyH,YAAAzjB,IAAA,SAAA5G,GAAyD,OAAAkC,EACzD0gB,EAAAyH,WAAArqB,GACA4iB,EAAA2mC,UAAAvpD,GACA4iB,EAAA5iB,QAKA,SAAAkye,GAAArwe,GACA,OAAAC,MAAA3L,UAAA6U,OAAAxI,SAAAX,GAGA,IAAAu3O,GACA,mBAAAl4O,QACA,iBAAAA,OAAAwgP,YAUA,SAAA3lK,GAAA75E,GACA,IAAAmpN,GAAA,EACA,kBAEA,IADA,IAAAhpN,KAAAvK,EAAAiD,UAAA7D,OACAY,KAAAuK,EAAAvK,GAAAiD,UAAAjD,GAEA,IAAAuzN,EAEA,OADAA,GAAA,EACAnpN,EAAAM,MAAAvM,KAAAoM,IAMA,IAAA8ve,GAAA,SAAAtsE,EAAAr3X,GACAv4C,KAAA4va,SACA5va,KAAAu4C,KAkKA,SAAAA,GACA,IAAAA,EACA,GAAA2pM,EAAA,CAEA,IAAAi6P,EAAAtse,SAAA0zC,cAAA,QAGAhL,GAFAA,EAAA4jc,KAAAjhb,aAAA,cAEA3yD,QAAA,8BAEAgwC,EAAA,IAIA,MAAAA,EAAA2G,OAAA,KACA3G,EAAA,IAAAA,GAGA,OAAAA,EAAAhwC,QAAA,UAnLA6ze,CAAA7jc,GAEAv4C,KAAAukC,QAAAovc,EACA3ze,KAAAmzH,QAAA,KACAnzH,KAAA8pd,OAAA,EACA9pd,KAAAq8e,YACAr8e,KAAAs8e,iBACAt8e,KAAAu8e,aAiMA,SAAAC,GACAnqK,EACAzvU,EACA4H,EACA+c,GAEA,IAAAk1d,EAAAV,GAAA1pK,EAAA,SAAAvwF,EAAAviM,EAAAp2C,EAAAY,GACA,IAAA2ye,EAUA,SACA56P,EACA/3O,GAEA,mBAAA+3O,IAEAA,EAAAqyP,EAAAzqe,OAAAo4O,IAEA,OAAAA,EAAAr5O,QAAAsB,GAlBA4ye,CAAA76P,EAAAl/O,GACA,GAAA85e,EACA,OAAA7we,MAAAC,QAAA4we,GACAA,EAAA/re,IAAA,SAAA+re,GAAsC,OAAAlye,EAAAkye,EAAAn9b,EAAAp2C,EAAAY,KACtCS,EAAAkye,EAAAn9b,EAAAp2C,EAAAY,KAGA,OAAAkye,GAAA10d,EAAAk1d,EAAAl1d,UAAAk1d,GAsBA,SAAAG,GAAAF,EAAAn9b,GACA,GAAAA,EACA,kBACA,OAAAm9b,EAAAnwe,MAAAgzC,EAAAz6C,YArOAo3e,GAAAh8e,UAAA28e,OAAA,SAAAv1a,GACAtnE,KAAAsnE,MAGA40a,GAAAh8e,UAAA48e,QAAA,SAAAx1a,EAAAy1a,GACA/8e,KAAA8pd,MACAxiZ,KAEAtnE,KAAAq8e,SAAA96e,KAAA+lE,GACAy1a,GACA/8e,KAAAs8e,cAAA/6e,KAAAw7e,KAKAb,GAAAh8e,UAAA07G,QAAA,SAAAmhY,GACA/8e,KAAAu8e,SAAAh7e,KAAAw7e,IAGAb,GAAAh8e,UAAA88e,aAAA,SAAAnvV,EAAAovV,EAAAC,GACA,IAAAnyb,EAAA/qD,KAEAoxa,EAAApxa,KAAA4va,OAAAzma,MAAA0kJ,EAAA7tJ,KAAAukC,SACAvkC,KAAAm9e,kBAAA/rE,EAAA,WACArmX,EAAAqyb,YAAAhsE,GACA6rE,KAAA7rE,GACArmX,EAAAsyb,YAGAtyb,EAAA++Z,QACA/+Z,EAAA++Z,OAAA,EACA/+Z,EAAAsxb,SAAAvye,QAAA,SAAAw9D,GAA6CA,EAAA8pW,OAE1C,SAAA3rV,GACHy3Z,GACAA,EAAAz3Z,GAEAA,IAAA16B,EAAA++Z,QACA/+Z,EAAA++Z,OAAA,EACA/+Z,EAAAuxb,cAAAxye,QAAA,SAAAw9D,GAAkDA,EAAAme,SAKlDy2Z,GAAAh8e,UAAAi9e,kBAAA,SAAA/rE,EAAA6rE,EAAAC,GACA,IAAAnyb,EAAA/qD,KAEAukC,EAAAvkC,KAAAukC,QACAm2E,EAAA,SAAAj1B,GACA6sZ,EAAA7sZ,KACA16B,EAAAwxb,SAAAt7e,OACA8pD,EAAAwxb,SAAAzye,QAAA,SAAAw9D,GAA+CA,EAAAme,MAE/C/vE,IACAD,QAAAslE,MAAA0K,KAGAy3Z,KAAAz3Z,IAEA,GACAouZ,EAAAziE,EAAA7sY,IAEA6sY,EAAA9zX,QAAAr8C,SAAAsjC,EAAA+Y,QAAAr8C,OAGA,OADAjB,KAAAq9e,YACA3iY,IAGA,IAAA9hG,EAwGA,SACA2rB,EACAE,GAEA,IAAA1jC,EACAkH,EAAAF,KAAAE,IAAAs8B,EAAAtjC,OAAAwjC,EAAAxjC,QACA,IAAAF,EAAA,EAAaA,EAAAkH,GACbs8B,EAAAxjC,KAAA0jC,EAAA1jC,GADsBA,KAKtB,OACAqmO,QAAA3iM,EAAAniC,MAAA,EAAAvB,GACAgqa,UAAAtmY,EAAAniC,MAAAvB,GACAu0M,YAAA/wK,EAAAjiC,MAAAvB,IAtHAu8e,CAAAt9e,KAAAukC,QAAA+Y,QAAA8zX,EAAA9zX,SACA8pL,EAAAxuN,EAAAwuN,QACA9xB,EAAA18L,EAAA08L,YACAy1N,EAAAnyZ,EAAAmyZ,UAEAxtM,KAAAxoN,OAiJA,SAAAugM,GACA,OAAAknS,GAAAlnS,EAAA,mBAAAsnS,IAAA,GAhJAW,CAAAjoS,GAEAt1M,KAAA4va,OAAA4tE,YAiJA,SAAAp2Q,GACA,OAAAo1Q,GAAAp1Q,EAAA,oBAAAw1Q,IAhJAa,CAAAr2Q,GAEA2jM,EAAAp6Z,IAAA,SAAAgc,GAAgC,OAAAA,EAAA46O,cAEhCs0O,GAAA9wE,IAGA/qa,KAAAmzH,QAAAi+S,EACA,IAAAlma,EAAA,SAAA6mE,EAAAttC,GACA,GAAAsmB,EAAAooE,UAAAi+S,EACA,OAAA12T,IAEA,IACA3oC,EAAAq/V,EAAA7sY,EAAA,SAAA2S,IACA,IAAAA,GAAAo7b,EAAAp7b,IAEA6T,EAAAsyb,WAAA,GACA3iY,EAAAxjE,IAEA,iBAAAA,GACA,iBAAAA,IACA,iBAAAA,EAAA72C,MACA,iBAAA62C,EAAAt0C,OAIA83G,IACA,iBAAAxjE,KAAA3uC,QACAwiD,EAAAxiD,QAAA2uC,GAEA6T,EAAAxpD,KAAA21C,IAIAzS,EAAAyS,KAGK,MAAA/yC,GACLu2G,EAAAv2G,KAIAy3e,GAAAr+Q,EAAAryN,EAAA,WACA,IAAAwye,KAMA9B,GA0GA,SACA7wE,EACAhyK,EACA/2F,GAEA,OAAAw6U,GAAAzxE,EAAA,4BAAA2xE,EAAAv+d,EAAAhV,EAAAY,GACA,OAIA,SACA2ye,EACAvze,EACAY,EACAgvP,EACA/2F,GAEA,gBAAA9qH,EAAAnrC,EAAA04B,GACA,OAAAi4c,EAAAxlc,EAAAnrC,EAAA,SAAAu7D,GACA7iC,EAAA6iC,GACA,mBAAAA,GACAyxL,EAAAx3P,KAAA,YAaA,SAAAooH,EACAriD,EACAhU,EACAvpD,EACAi4J,GAEA1uG,EAAAvpD,GACAu9D,EAAAhU,EAAAvpD,IACGi4J,KACH11J,WAAA,WACAq9G,EAAAriD,EAAAhU,EAAAvpD,EAAAi4J,IACK,IAlBLr4C,CAAAriD,EAAAn+D,EAAAmqD,UAAAvpD,EAAAi4J,QArBA27U,CAAAjB,EAAAvze,EAAAY,EAAAgvP,EAAA/2F,KAlHA47U,CAAA7yE,EAAA2yE,EAHA,WAA+B,OAAA3yb,EAAAxmB,UAAA6sY,IAI/Br8Z,OAAAg2C,EAAA6kX,OAAAiuE,cACA3ye,EAAA,WACA,GAAA6/C,EAAAooE,UAAAi+S,EACA,OAAA12T,IAEA3vD,EAAAooE,QAAA,KACA8pX,EAAA7rE,GACArmX,EAAA6kX,OAAAirE,KACA9vb,EAAA6kX,OAAAirE,IAAAt+d,UAAA,WACAmhe,EAAA5ze,QAAA,SAAAw9D,GAA8CA,aAO9C40a,GAAAh8e,UAAAk9e,YAAA,SAAAhsE,GACA,IAAA9xW,EAAAt/D,KAAAukC,QACAvkC,KAAAukC,QAAA6sY,EACApxa,KAAAsnE,IAAAtnE,KAAAsnE,GAAA8pW,GACApxa,KAAA4va,OAAAkuE,WAAAh0e,QAAA,SAAAioE,GACAA,KAAAq/V,EAAA9xW,MA0IA,IAAAy+a,GAAA,SAAAC,GACA,SAAAD,EAAAnuE,EAAAr3X,GACA,IAAAwS,EAAA/qD,KAEAg+e,EAAAtye,KAAA1L,KAAA4va,EAAAr3X,GAEA,IAAA0lc,EAAAruE,EAAAnna,QAAAqye,eAEAmD,GACAzD,IAGA,IAAA0D,EAAAC,GAAAn+e,KAAAu4C,MACA5oC,OAAAiP,iBAAA,oBAAAza,GACA,IAAAogC,EAAAwmB,EAAAxmB,QAIAspH,EAAAswV,GAAApzb,EAAAxS,MACAwS,EAAAxmB,UAAAovc,GAAA9lV,IAAAqwV,GAIAnzb,EAAAiyb,aAAAnvV,EAAA,SAAAujR,GACA6sE,GACApyR,GAAA+jN,EAAAwB,EAAA7sY,GAAA,OAiDA,OA3CAy5c,IAAAD,EAAA1kY,UAAA2kY,GACAD,EAAA79e,UAAA0J,OAAA8/B,OAAAs0c,KAAA99e,WACA69e,EAAA79e,UAAAC,YAAA49e,EAEAA,EAAA79e,UAAAk+e,GAAA,SAAAhgc,GACAzuC,OAAA69M,QAAA4wR,GAAAhgc,IAGA2/b,EAAA79e,UAAAqB,KAAA,SAAAssJ,EAAAovV,EAAAC,GACA,IAAAnyb,EAAA/qD,KAGAq+e,EADAr+e,KACAukC,QACAvkC,KAAAg9e,aAAAnvV,EAAA,SAAAujR,GACAuqE,GAAAxF,EAAAprb,EAAAxS,KAAA64X,EAAAoiE,WACA3nR,GAAA9gK,EAAA6kX,OAAAwB,EAAAitE,GAAA,GACApB,KAAA7rE,IACK8rE,IAGLa,EAAA79e,UAAAqI,QAAA,SAAAslJ,EAAAovV,EAAAC,GACA,IAAAnyb,EAAA/qD,KAGAq+e,EADAr+e,KACAukC,QACAvkC,KAAAg9e,aAAAnvV,EAAA,SAAAujR,GACAqpE,GAAAtE,EAAAprb,EAAAxS,KAAA64X,EAAAoiE,WACA3nR,GAAA9gK,EAAA6kX,OAAAwB,EAAAitE,GAAA,GACApB,KAAA7rE,IACK8rE,IAGLa,EAAA79e,UAAAm9e,UAAA,SAAA97e,GACA,GAAA48e,GAAAn+e,KAAAu4C,QAAAv4C,KAAAukC,QAAAivc,SAAA,CACA,IAAAjvc,EAAA4xc,EAAAn2e,KAAAu4C,KAAAv4C,KAAAukC,QAAAivc,UACAjye,EAAAo6e,GAAAp3c,GAAAk2c,GAAAl2c,KAIAw5c,EAAA79e,UAAAo+e,mBAAA,WACA,OAAAH,GAAAn+e,KAAAu4C,OAGAwlc,EA1EA,CA2EC7B,IAED,SAAAiC,GAAA5lc,GACA,IAAAl4C,EAAAsP,OAAAk+I,SAAAka,SAIA,OAHAxvH,GAAA,IAAAl4C,EAAAP,QAAAy4C,KACAl4C,IAAAiC,MAAAi2C,EAAAt3C,UAEAZ,GAAA,KAAAsP,OAAAk+I,SAAAlsC,OAAAhyG,OAAAk+I,SAAAxwG,KAMA,IAAAkhc,GAAA,SAAAP,GACA,SAAAO,EAAA3uE,EAAAr3X,EAAAs3M,GACAmuP,EAAAtye,KAAA1L,KAAA4va,EAAAr3X,GAEAs3M,GAiFA,SAAAt3M,GACA,IAAAs1G,EAAAswV,GAAA5lc,GACA,WAAAojB,KAAAkyF,GAIA,OAHAl+I,OAAAk+I,SAAAtlJ,QACA4te,EAAA59b,EAAA,KAAAs1G,KAEA,EAvFA2wV,CAAAx+e,KAAAu4C,OAGAkmc,KA2EA,OAxEAT,IAAAO,EAAAllY,UAAA2kY,GACAO,EAAAr+e,UAAA0J,OAAA8/B,OAAAs0c,KAAA99e,WACAq+e,EAAAr+e,UAAAC,YAAAo+e,EAIAA,EAAAr+e,UAAAw+e,eAAA,WACA,IAAA3zb,EAAA/qD,KAGAi+e,EADAj+e,KAAA4va,OACAnna,QAAAqye,eACA6D,EAAAnD,IAAAyC,EAEAU,GACAnE,IAGA7qe,OAAAiP,iBAAA48d,GAAA,mCACA,IAAAj3c,EAAAwmB,EAAAxmB,QACAk6c,MAGA1zb,EAAAiyb,aAAA4B,KAAA,SAAAxtE,GACAutE,GACA9yR,GAAA9gK,EAAA6kX,OAAAwB,EAAA7sY,GAAA,GAEAi3c,IACAqD,GAAAztE,EAAAoiE,eAMA+K,EAAAr+e,UAAAqB,KAAA,SAAAssJ,EAAAovV,EAAAC,GACA,IAAAnyb,EAAA/qD,KAGAq+e,EADAr+e,KACAukC,QACAvkC,KAAAg9e,aAAAnvV,EAAA,SAAAujR,GACA0tE,GAAA1tE,EAAAoiE,UACA3nR,GAAA9gK,EAAA6kX,OAAAwB,EAAAitE,GAAA,GACApB,KAAA7rE,IACK8rE,IAGLqB,EAAAr+e,UAAAqI,QAAA,SAAAslJ,EAAAovV,EAAAC,GACA,IAAAnyb,EAAA/qD,KAGAq+e,EADAr+e,KACAukC,QACAvkC,KAAAg9e,aAAAnvV,EAAA,SAAAujR,GACAytE,GAAAztE,EAAAoiE,UACA3nR,GAAA9gK,EAAA6kX,OAAAwB,EAAAitE,GAAA,GACApB,KAAA7rE,IACK8rE,IAGLqB,EAAAr+e,UAAAk+e,GAAA,SAAAhgc,GACAzuC,OAAA69M,QAAA4wR,GAAAhgc,IAGAmgc,EAAAr+e,UAAAm9e,UAAA,SAAA97e,GACA,IAAAgjC,EAAAvkC,KAAAukC,QAAAivc,SACAoL,OAAAr6c,IACAhjC,EAAAu9e,GAAAv6c,GAAAs6c,GAAAt6c,KAIAg6c,EAAAr+e,UAAAo+e,mBAAA,WACA,OAAAM,MAGAL,EAlFA,CAmFCrC,IAYD,SAAAuC,KACA,IAAAp+e,EAAAu+e,KACA,YAAAv+e,EAAA6+C,OAAA,KAGA2/b,GAAA,IAAAx+e,IACA,GAGA,SAAAu+e,KAGA,IAAA9wV,EAAAn+I,OAAAk+I,SAAAC,KACAlhJ,EAAAkhJ,EAAAhuJ,QAAA,KACA,WAAA8M,EAAA,GAAAkhJ,EAAAxrJ,MAAAsK,EAAA,GAGA,SAAAmye,GAAA1+e,GACA,IAAAytJ,EAAAn+I,OAAAk+I,SAAAC,KACA/sJ,EAAA+sJ,EAAAhuJ,QAAA,KAEA,OADAiB,GAAA,EAAA+sJ,EAAAxrJ,MAAA,EAAAvB,GAAA+sJ,GACA,IAAAztJ,EAGA,SAAAy+e,GAAAz+e,GACAm7e,GACAG,GAAAoD,GAAA1+e,IAEAsP,OAAAk+I,SAAAxwG,KAAAh9C,EAIA,SAAAw+e,GAAAx+e,GACAm7e,GACAf,GAAAsE,GAAA1+e,IAEAsP,OAAAk+I,SAAAtlJ,QAAAw2e,GAAA1+e,IAOA,IAAA2+e,GAAA,SAAAhB,GACA,SAAAgB,EAAApvE,EAAAr3X,GACAylc,EAAAtye,KAAA1L,KAAA4va,EAAAr3X,GACAv4C,KAAA8N,SACA9N,KAAA4M,OAAA,EAiDA,OA9CAoxe,IAAAgB,EAAA3lY,UAAA2kY,GACAgB,EAAA9+e,UAAA0J,OAAA8/B,OAAAs0c,KAAA99e,WACA8+e,EAAA9+e,UAAAC,YAAA6+e,EAEAA,EAAA9+e,UAAAqB,KAAA,SAAAssJ,EAAAovV,EAAAC,GACA,IAAAnyb,EAAA/qD,KAEAA,KAAAg9e,aAAAnvV,EAAA,SAAAujR,GACArmX,EAAAj9C,MAAAi9C,EAAAj9C,MAAAxL,MAAA,EAAAyoD,EAAAn+C,MAAA,GAAAmI,OAAAq8Z,GACArmX,EAAAn+C,QACAqwe,KAAA7rE,IACK8rE,IAGL8B,EAAA9+e,UAAAqI,QAAA,SAAAslJ,EAAAovV,EAAAC,GACA,IAAAnyb,EAAA/qD,KAEAA,KAAAg9e,aAAAnvV,EAAA,SAAAujR,GACArmX,EAAAj9C,MAAAi9C,EAAAj9C,MAAAxL,MAAA,EAAAyoD,EAAAn+C,OAAAmI,OAAAq8Z,GACA6rE,KAAA7rE,IACK8rE,IAGL8B,EAAA9+e,UAAAk+e,GAAA,SAAAhgc,GACA,IAAA2M,EAAA/qD,KAEAi/e,EAAAj/e,KAAA4M,MAAAwxC,EACA,KAAA6gc,EAAA,GAAAA,GAAAj/e,KAAA8N,MAAA7M,QAAA,CAGA,IAAAmwa,EAAApxa,KAAA8N,MAAAmxe,GACAj/e,KAAAm9e,kBAAA/rE,EAAA,WACArmX,EAAAn+C,MAAAqye,EACAl0b,EAAAqyb,YAAAhsE,OAIA4tE,EAAA9+e,UAAAo+e,mBAAA,WACA,IAAA/5c,EAAAvkC,KAAA8N,MAAA9N,KAAA8N,MAAA7M,OAAA,GACA,OAAAsjC,IAAAivc,SAAA,KAGAwL,EAAA9+e,UAAAm9e,UAAA,aAIA2B,EArDA,CAsDC9C,IAIDgD,GAAA,SAAAz2e,QACA,IAAAA,UAEAzI,KAAA66e,IAAA,KACA76e,KAAAm/e,QACAn/e,KAAAyI,UACAzI,KAAAw9e,eACAx9e,KAAA69e,gBACA79e,KAAA89e,cACA99e,KAAAo/e,QAAAxF,EAAAnxe,EAAAyve,WAAAl4e,MAEA,IAAAq4H,EAAA5vH,EAAA4vH,MAAA,OAUA,OATAr4H,KAAA6vP,SAAA,YAAAx3H,IAAAmjX,KAAA,IAAA/ye,EAAAonP,SACA7vP,KAAA6vP,WACAx3H,EAAA,QAEA6pH,IACA7pH,EAAA,YAEAr4H,KAAAq4H,OAEAA,GACA,cACAr4H,KAAAwtN,QAAA,IAAAuwR,GAAA/9e,KAAAyI,EAAA8vC,MACA,MACA,WACAv4C,KAAAwtN,QAAA,IAAA+wR,GAAAv+e,KAAAyI,EAAA8vC,KAAAv4C,KAAA6vP,UACA,MACA,eACA7vP,KAAAwtN,QAAA,IAAAwxR,GAAAh/e,KAAAyI,EAAA8vC,MACA,MACA,QACU,IAMVwM,IAA0B80b,cAAgBvue,cAAA,IAgJ1C,SAAA+ze,GAAAxyd,EAAA5gB,GAEA,OADA4gB,EAAAtrB,KAAA0K,GACA,WACA,IAAAlL,EAAA8rB,EAAA/sB,QAAAmM,GACAlL,GAAA,GAAiB8rB,EAAAvrB,OAAAP,EAAA,IAlJjBm+e,GAAAh/e,UAAAiJ,MAAA,SACAo7O,EACAhgN,EACA+uc,GAEA,OAAAtze,KAAAo/e,QAAAj2e,MAAAo7O,EAAAhgN,EAAA+uc,IAGAvub,GAAA80b,aAAA71e,IAAA,WACA,OAAAhE,KAAAwtN,SAAAxtN,KAAAwtN,QAAAjpL,SAGA26c,GAAAh/e,UAAAse,KAAA,SAAAq8d,GACA,IAAA9vb,EAAA/qD,KAWA,GAHAA,KAAAm/e,KAAA59e,KAAAs5e,IAGA76e,KAAA66e,IAAA,CAIA76e,KAAA66e,MAEA,IAAArtR,EAAAxtN,KAAAwtN,QAEA,GAAAA,aAAAuwR,GACAvwR,EAAAwvR,aAAAxvR,EAAA8wR,2BACG,GAAA9wR,aAAA+wR,GAAA,CACH,IAAAe,EAAA,WACA9xR,EAAAkxR,kBAEAlxR,EAAAwvR,aACAxvR,EAAA8wR,qBACAgB,EACAA,GAIA9xR,EAAAqvR,OAAA,SAAAzrE,GACArmX,EAAAo0b,KAAAr1e,QAAA,SAAA+we,GACAA,EAAAjF,OAAAxkE,QAKA8tE,GAAAh/e,UAAAq/e,WAAA,SAAAtze,GACA,OAAAoze,GAAAr/e,KAAAw9e,YAAAvxe,IAGAize,GAAAh/e,UAAAs/e,cAAA,SAAAvze,GACA,OAAAoze,GAAAr/e,KAAA69e,aAAA5xe,IAGAize,GAAAh/e,UAAAu/e,UAAA,SAAAxze,GACA,OAAAoze,GAAAr/e,KAAA89e,WAAA7xe,IAGAize,GAAAh/e,UAAA48e,QAAA,SAAAx1a,EAAAy1a,GACA/8e,KAAAwtN,QAAAsvR,QAAAx1a,EAAAy1a,IAGAmC,GAAAh/e,UAAA07G,QAAA,SAAAmhY,GACA/8e,KAAAwtN,QAAA5xG,QAAAmhY,IAGAmC,GAAAh/e,UAAAqB,KAAA,SAAAssJ,EAAAovV,EAAAC,GACAl9e,KAAAwtN,QAAAjsN,KAAAssJ,EAAAovV,EAAAC,IAGAgC,GAAAh/e,UAAAqI,QAAA,SAAAslJ,EAAAovV,EAAAC,GACAl9e,KAAAwtN,QAAAjlN,QAAAslJ,EAAAovV,EAAAC,IAGAgC,GAAAh/e,UAAAk+e,GAAA,SAAAhgc,GACAp+C,KAAAwtN,QAAA4wR,GAAAhgc,IAGA8gc,GAAAh/e,UAAA4tN,KAAA,WACA9tN,KAAAo+e,IAAA,IAGAc,GAAAh/e,UAAAw/e,QAAA,WACA1/e,KAAAo+e,GAAA,IAGAc,GAAAh/e,UAAAy/e,qBAAA,SAAAzoc,GACA,IAAAk6X,EAAAl6X,EACAA,EAAAoG,QACApG,EACAl3C,KAAA0O,QAAAwoC,GAAAk6X,MACApxa,KAAA65e,aACA,OAAAzoE,KAGAr8Z,OAAAxI,SAAA6ka,EAAA9zX,QAAA3sC,IAAA,SAAAgc,GACA,OAAA/iB,OAAAC,KAAA8iB,EAAAyH,YAAAzjB,IAAA,SAAA5G,GACA,OAAA4iB,EAAAyH,WAAArqB,YAKAm1e,GAAAh/e,UAAAwO,QAAA,SACAwoC,EACA3S,EACA8H,GAEA,IAAAwhH,EAAAqrV,EACAhic,EACA3S,GAAAvkC,KAAAwtN,QAAAjpL,QACA8H,EACArsC,MAEAoxa,EAAApxa,KAAAmJ,MAAA0kJ,EAAAtpH,GACAivc,EAAApiE,EAAAkiE,gBAAAliE,EAAAoiE,SAGA,OACA3lV,WACAujR,QACAtjR,KAwBA,SAAAv1G,EAAAi7b,EAAAn7W,GACA,IAAAh4H,EAAA,SAAAg4H,EAAA,IAAAm7W,IACA,OAAAj7b,EAAA49b,EAAA59b,EAAA,IAAAl4C,KA9BAu/e,CADA5/e,KAAAwtN,QAAAj1K,KACAi7b,EAAAxze,KAAAq4H,MAMAwnX,aAAAhyV,EACA6mG,SAAA08K,IAIA8tE,GAAAh/e,UAAAo6e,UAAA,SAAApC,GACAl4e,KAAAo/e,QAAA9E,UAAApC,GACAl4e,KAAAwtN,QAAAjpL,UAAAovc,GACA3ze,KAAAwtN,QAAAwvR,aAAAh9e,KAAAwtN,QAAA8wR,uBAIA10e,OAAAy7C,iBAAA65b,GAAAh/e,UAAA6kD,IAeAm6b,GAAA7qd,UACA6qd,GAAA5ib,QAAA,QAEA4lL,GAAAvyO,OAAA2kB,KACA3kB,OAAA2kB,IAAA+iO,IAAA6nP,IAGe36b,EAAA,2BC9jFf,IAAA1qB,EAAat6B,EAAQ,QAErB86B,EAAgB96B,EAAQ,QAExBy9V,EAAoBz9V,EAAQ,QAE5BgsE,EAAiBhsE,EAAQ,QAuNzB0D,EAlMAo3B,EAAA3wB,QACAlG,KAAA,WACAgb,KAAA,aACA/a,OAAA,SAAA+3B,EAAA73B,EAAAC,EAAAggC,GACA,IAAAytR,EAAArxT,KACAA,KAAAw7B,cACAx7B,KAAA4D,MACA5D,KAAA2D,UACA,IAAAmN,EAAA0qB,EAAAtP,UACA+2K,EAAAnyL,EAAA85K,KAAA/vI,KACAilc,EAAAtkd,EAAAixP,cACAztP,EAAAh/B,KAAAg/B,MACA4vR,EAAApzR,EAAAx3B,IAAA,0BACAmuY,KACA2tG,EAAA72T,SAAA,SAAA/vH,GACAi5U,EAAA5wY,KAAA23D,KAEA,IAAAg5U,EAAAlyY,KAAA+/e,iBAIA,GAmBA,SAAA5tG,EAAAD,GACA,OAAAC,EAAAlxY,QAAA,IAAAixY,EAAAjxY,OACA,OAKA,SAAA07W,EAAAzjT,GACA,OAAAA,EAAAmwH,QAGA,SAAAmoO,EAAAvpR,EAAA+3W,GACA,IAAA/jP,EAAA,MAAAh0H,EAAA,KAAAkqQ,EAAAlqQ,GACAypR,EAAA,MAAAsuF,EAAA,KAAA9tG,EAAA8tG,IAKA,SAAA/jP,EAAAy1J,GACA9iG,IAAA3yD,KAAAxyE,aAEAwyE,EAAA,MAGA,GAAAA,IAAAh5D,GAAAyuN,IAAAzuN,EACA,GAAAyuN,KAAAn0N,MACA0+D,GAEAy1J,EAAAn0N,MAAAt8J,YAAA,EAAAg7N,EAAA,SAAAzgO,EAAA73B,GAEAmN,EAAA+vB,iBAAAo7N,EAAA79N,UAAAszX,EAAAn0N,QAeA,SAAArkI,GACA,IAAAA,EACA,OAGAA,EAAAqkI,QACAv+J,EAAAv6B,OAAAy0D,EAAAqkI,OACArkI,EAAAqkI,MAAA,MAnBAuF,CAAA4uN,QAES,GAAAz1J,EAAA,CAET,IAAA1+D,EAAA,IAAAy/J,EAAA/gG,EAAAzgO,EAAA73B,GACAq7B,EAAAC,IAAAs+J,GAEAzsL,EAAA+vB,iBAAAo7N,EAAA79N,UAAAm/J,IA1BA2zN,CAAAj1J,EAAAy1J,GATA,IAAAnmV,EAAA2mU,EAAAC,EAAAx1B,KAAA19U,IAAAuyX,GAAAj1W,OAAAi1W,GAAA/sZ,OAAAo1B,EAAA0Q,MAAAinX,EAAA,OAAArqV,UA3BAgqV,CAAAhf,EAAAD,GA8EA,SAAAjvM,EAAAoyC,GACA,GAAAA,EAAA/sD,MAAA,GAEA+oI,EAAA4uL,aAEA5uL,EAAA4uL,aAAAh/c,YAAA,EAAAgiK,EAAA,SAAAznK,EAAA73B,IAGA0tT,EAAA4uL,aAAA,IAAAjjJ,EAAA/5J,EAAAznK,EAAA73B,GACAq7B,EAAAC,IAAAoyR,EAAA4uL,eAGA5qQ,EAAA93C,MAAA2iT,eACA7qQ,EAAA93C,MAAAltI,IAAA,QAAAglL,EAAA93C,MAAA2iT,eAGA,IAAA3ob,EAAA,SAAApzD,GACAktT,EAAAohG,YAAAp9K,EAAA9oM,aAGA8oM,EAAA93C,MAAA2iT,cAAA3ob,EACA85P,EAAA4uL,aAAAvge,GAAA,QAAA63C,QACO85P,EAAA4uL,eAEPjhd,EAAAv6B,OAAA4sT,EAAA4uL,cACA5uL,EAAA4uL,aAAA,MAtGAE,CAAAl9S,EAAA68S,GAEAl8c,KAAAD,WAAAC,EAAAD,UAAA45J,MAAA,CACA,IAAAoxH,EAAAnzR,EAAA6pC,WAAA,mBACAzhC,EAAAD,UAAA45J,MAAA54H,WAAAgqP,QACK,GAAA/qR,KAAA2pV,YAAA,CACL,IAAAhwL,EAAAv9L,KAAAigf,cAEA1iT,GAAA0F,EAAA1a,SAAAtnL,SACAs8L,EAAA0F,EAAA1a,SAAA,GAAAgV,OAGAA,GACAA,EAAA14H,WAIA7kE,KAAA6vD,cAEA7vD,KAAA+/e,aAAA5tG,GAuFAptY,QAAA,aAKA8qD,YAAA,WACA,IAAAwhQ,EAAArxT,KAEAu3D,EAAA,SAAApzD,GACA,IAAAi8e,GAAA,EACA/uL,EAAA71R,YAAAixP,cACAxjG,SAAA,SAAA/vH,GACA,IAAAknb,GAAAlnb,EAAAqkI,OAAArkI,EAAAqkI,MAAAt4H,QAAA,KAAA9gE,EAAA5D,OAAA,CACA,IAAAsqR,EAAA3xN,EAAA75B,WAAAr7B,IAAA,aAEA,kBAAA6mR,EACAwmC,EAAAohG,YAAAv5V,QACW,YAAA2xN,EAAA,CACX,IAAA3lN,EAAAhM,EAAA75B,WACA7wB,EAAA02D,EAAAlhE,IAAA,QAEA,GAAAwK,EAAA,CACA,IAAAmkZ,EAAAztV,EAAAlhE,IAAA,uBACA2L,OAAAb,KAAAN,EAAAmkZ,IAIAytF,GAAA,MAKApgf,KAAAg/B,MAAAkhd,eACAlgf,KAAAg/B,MAAAqxB,IAAA,QAAArwD,KAAAg/B,MAAAkhd,eAGAlgf,KAAAg/B,MAAAtf,GAAA,QAAA63C,GACAv3D,KAAAg/B,MAAAkhd,cAAA3ob,GAMAk7V,YAAA,SAAAv5V,GACAA,IAAAl5D,KAAAw7B,YAAAixP,eACAzsR,KAAA4D,IAAAQ,gBACAZ,KA5KA,qBA6KAuI,KAAA/L,KAAAk1D,IACAmP,SAAArkE,KAAAw7B,YAAA95B,GACA0oM,WAAAlxI,KAQAzuB,aAAA,SAAAJ,EAAA7O,GACA,IACA+rC,EADA/rC,EAAAtP,UACAsT,cAAA,GAEA,GAAA+nC,EAAA,CACA,IAAAx5B,EAAA1D,EAAA,GAAAk9B,EAAAhwD,GACAy2B,EAAA3D,EAAA,GAAAk9B,EAAA/vD,GACAmL,EAAA5a,KAAAyjC,KAAAuC,IAAAC,KACA,OAAArrB,GAAA4kD,EAAA9vD,GAAAkL,GAAA4kD,EAAAprC,OAKAj5B,EAAAC,QAAAF,qCC5NAE,EAAAiuE,YAAA,EACAjuE,EAAA4V,QAQA,SAAAw0E,EAAA7iE,GACA,GAAAusD,EAAAl+D,QAAA7Y,UAAAg5E,UAAA,OAEA,IAAAxuD,EAEA,YADA6iE,EAAArvC,UAAA,GAIA,IAAAmic,KACAjpd,EAAA1M,EAAAqzB,aACA,KAAA3mB,GAAAm2D,IAAAn2D,GAAAm2D,EAAA/pC,SAAApsB,IACAipd,EAAA9+e,KAAA61B,GACAA,IAAA2mB,aAEA,IAAA/rC,EAAA0Y,EAAAg0B,UAAA2hc,EAAA56d,OAAA,SAAA65C,EAAAknC,GACA,OAAAlnC,EAAAknC,EAAA9nD,WACG,GACH5pC,EAAA9C,EAAA0Y,EAAAyyB,aACAmjc,EAAA/yZ,EAAArvC,UACAqic,EAAAD,EAAA/yZ,EAAA3wE,aAEA5K,EAAAsue,EACA/yZ,EAAArvC,UAAAlsC,EACG8C,EAAAyre,IACHhzZ,EAAArvC,UAAAppC,EAAAy4E,EAAA3wE,eA9BA,IAIAzR,EAJAotL,EAAWh5L,EAAQ,QAEnB03E,GAEA9rE,EAFAotL,IAEsCptL,EAAAimE,WAAAjmE,GAAuC4N,QAAA5N,yBCT7E,IAAAhH,IAA0M,WAAiB,gBAAAskF,GAAmB,SAAAtkF,EAAApD,GAAc,GAAAq9C,EAAAr9C,GAAA,OAAAq9C,EAAAr9C,GAAAoC,QAA4B,IAAAguE,EAAA/yB,EAAAr9C,IAAYA,IAAAC,GAAA,EAAAmC,YAAqB,OAAAslF,EAAA1nF,GAAA2K,KAAAylE,EAAAhuE,QAAAguE,IAAAhuE,QAAAgB,GAAAgtE,EAAAnwE,GAAA,EAAAmwE,EAAAhuE,QAA2D,IAAAi7C,KAAS,OAAAj6C,EAAAwoB,EAAA87D,EAAAtkF,EAAA+7D,EAAA9hB,EAAAj6C,EAAApD,EAAA,SAAA0nF,GAAmC,OAAAA,GAAStkF,EAAAsqB,EAAA,SAAAg6D,EAAArqC,EAAAr9C,GAAqBoD,EAAAgtE,EAAAsX,EAAArqC,IAAAx0C,OAAAwB,eAAAq9E,EAAArqC,GAAqC9yC,cAAA,EAAAD,YAAA,EAAArH,IAAAjD,KAAsCoD,EAAAi6C,EAAA,SAAAqqC,GAAiB,IAAArqC,EAAAqqC,KAAArX,WAAA,WAAiC,OAAAqX,EAAA1vE,SAAiB,WAAY,OAAA0vE,GAAU,OAAAtkF,EAAAsqB,EAAA2vB,EAAA,IAAAA,MAAsBj6C,EAAAgtE,EAAA,SAAAsX,EAAAtkF,GAAmB,OAAAyF,OAAA1J,UAAA2C,eAAA6I,KAAA+8E,EAAAtkF,IAAiDA,EAAA+sC,EAAA,GAAA/sC,IAAAgU,EAAA,IAAje,EAAmf,SAAAswE,EAAAtkF,GAAgBskF,EAAAtlF,QAAA,SAAAslF,EAAAtkF,EAAAi6C,EAAAr9C,GAA4B,IAAAowE,EAAA57D,EAAAkzE,QAAehxE,SAAAgxE,EAAA1vE,QAAoB,WAAAtB,GAAA,aAAAA,IAAA05D,EAAAsX,EAAAlzE,EAAAkzE,EAAA1vE,SAAgD,IAAAZ,EAAA,mBAAA5C,IAAA9M,QAAA8M,EAAuC,GAAApR,IAAAgU,EAAA1U,OAAAU,EAAAV,OAAA0U,EAAAR,gBAAAxT,EAAAwT,iBAAAymC,IAAAjmC,EAAA+5D,SAAA9zB,GAAAr9C,EAAA,CAAmF,IAAAC,EAAAmX,EAAA0D,WAAA1D,EAAA0D,aAAkCjS,OAAAC,KAAA9I,GAAA+I,QAAA,SAAA2+E,GAAmC,IAAAtkF,EAAApD,EAAA0nF,GAAWznF,EAAAynF,GAAA,WAAgB,OAAAtkF,KAAY,OAAO0tE,SAAAV,EAAAhuE,QAAAoS,EAAA9M,QAAA0P,KAAiC,SAAAswE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,QAAA,KAAAoR,EAAA,mBAAAxU,EAA4E,SAAA0nF,EAAAtkF,GAAiB,aAA2G,SAAApD,IAAa,IAAA0nF,EAAAzoF,KAAAwgf,OAAAr8e,EAAAnE,KAAAygf,eAAAric,EAAAp+C,KAAAmsN,QAAuDhoN,GAAAi6C,EAAAsic,SAAAj4Z,IAAkB7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAA4pE,GAAOwva,SAASH,OAAA,iBAAuBjrU,OAAQirU,OAAA,mBAAyBx0Q,SAAUw0Q,OAAA,iBAAuBI,aAAcJ,OAAA,sBAA4Bjre,EAAA,SAAAkzE,EAAAtkF,GAAiB,OAAAA,EAAAoxP,UAAApxP,EAAAuY,MAAAvY,EAAAuoP,UAAA,GAAAhwO,IAAA+rE,EAAAtkF,EAAAgoN,SAAAhoN,GAA6DsT,EAAA,SAAAgxE,EAAAtkF,IAAtc,SAAAskF,EAAAtkF,GAAgB,KAAAskF,aAAAtkF,GAAA,UAAA6/C,UAAA,sCAAuc5F,CAAAp+C,KAAAyoF,GAAAzoF,KAAA+b,SAAwB+tc,MAAA,WAAiB,IAAArhY,EAAAlzE,EAAAvV,KAAAmsN,SAAAhoN,EAAAnE,KAAAq1S,KAAA5sN,EAAA4sN,KAAAj3P,EAAAp+C,KAAA2Q,IAAA83E,EAAA93E,IAA0D3Q,KAAAq6G,OAAAr6G,KAAAge,MAAA,SAAgCq3R,KAAAlxS,EAAAwM,IAAAytC,KAAeyic,cAAA,SAAAp4Z,GAA2BzoF,KAAAge,MAAAyqE,EAAAjlF,KAAA+E,QAAA,UAAAkgF,IAAuCi4Z,OAAA,WAAmB,IAAAj4Z,EAAAzoF,KAAWA,WAAAq1S,MAAAr1S,KAAAuc,UAAA,WAA2CksE,EAAA+3Z,SAAA/3Z,EAAAlsE,UAAAksE,EAAA4xB,SAAiCmmY,OAAA,WAAmB,IAAA/3Z,EAAAzoF,KAAA2Q,IAAAytC,EAAAp+C,KAAA8gf,eAAqC,IAAI,OAAA38e,EAAAX,MAAe,oBAAA46C,EAAA2ic,eAAqC,sCAAA3ic,EAAAr5C,UAAkD,6BAAAq5C,EAAA4ic,eAA8C,QAAAv4Z,EAAAtX,EAAAhtE,EAAAX,MAAAg9e,QAAApic,IAAgC,MAAAqqC,OAAYzoF,KAAA6b,UAAgB4ke,eAAA,WAA0B,OAAAzgf,KAAAmsN,QAAA80R,wBAA2Cjhf,KAAA+f,QAAA,WAAyB,IAAA0oE,EAAAlzE,EAAAvV,KAAAmsN,SAAAhoN,EAAAskF,EAAA93E,IAAAytC,EAAAp+C,KAAA8pd,MAA2C3ld,EAAAi6C,IAAAqqC,EAAAw7F,IAAA,QAAA7lI,IAAuBp+C,KAAAunN,UAAAxmN,EAAAf,KAAAggB,cAAAjf,GAAwCoD,EAAA4U,QAAA,SAAA0vE,GAAsB,WAAAhxE,GAAcjU,KAAAilF,KAASA,EAAAtlF,QAAAgB,EAAA4U,UAAh4ChY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAu5C,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAhtE,QAAA,KAAAoR,EAAA,mBAAAxU,EAA0E,SAAA0nF,GAAe,aAAa,SAAAtkF,EAAAskF,GAAc,IAAAtkF,EAAAW,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,MAA+Ds5C,EAAAj6C,EAAA+pM,IAAAntM,EAAAoD,EAAAgqM,IAAiB,WAAA1lH,EAAA+sN,MAAAp3P,EAAAr9C,GAAyQ,SAAAowE,EAAAsX,GAAc,IAAAtkF,EAAAW,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,MAA+Ds5C,EAAAj6C,EAAA6U,MAAAjY,EAAAoD,EAAA8U,OAAsB,WAAAwvE,EAAAy4Z,KAAA9ic,EAAAr9C,GAAgmB6I,OAAAwB,eAAAq9E,EAAA,cAAsClhF,OAAA,IAASkhF,EAAA04Z,YAAAh9e,EAAAskF,EAAA24Z,YAAn+B,SAAA34Z,GAAc,IAAAtkF,EAAAW,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,MAA+Ds5C,EAAAj6C,EAAAE,EAAAtD,EAAAoD,EAAAI,EAAa,WAAAkkF,EAAA44Z,MAAAjjc,EAAAr9C,IAAy4B0nF,EAAA64Z,aAAj3B,SAAA74Z,GAAc,IAAArqC,EAAAt5C,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,MAA+D/D,EAAAq9C,EAAA1L,GAAAy+B,EAAA/yB,EAAAq5T,GAAe,WAAAhvR,EAAA84Z,OAAAp9e,EAAAskF,EAAA1nF,GAAAoD,EAAAskF,EAAAtX,KAAqxBsX,EAAA+4Z,WAAArwa,EAAAsX,EAAA2sM,WAAxnB,SAAA3sM,GAAc,IAAAtkF,EAAAW,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,MAA+Ds5C,EAAAj6C,EAAAgK,IAAApN,EAAAoD,EAAA0tB,KAAAtc,EAAApR,EAAA0G,KAAA4M,OAAA,IAAAlC,KAA0CA,EAAG,WAAAkzE,EAAAijR,KAAAttT,EAAA+yB,EAAAsX,EAAA1nF,IAA4B0gf,OAAAhqe,EAAAgqe,QAAAtwa,EAAAsX,EAAAhxE,EAAAgqe,QAAAC,UAAAjqe,EAAAiqe,WAAAvwa,EAAAsX,EAAAhxE,EAAAiqe,WAAAC,YAAAlqe,EAAAkqe,aAAAxwa,EAAAsX,EAAAhxE,EAAAkqe,aAAAC,iBAAAnqe,EAAAmqe,kBAAAzwa,EAAAsX,EAAAhxE,EAAAmqe,kBAAAC,cAAApqe,EAAAoqe,iBAAkep5Z,EAAAq5Z,YAAhR,SAAAr5Z,GAAc,IAAArqC,EAAAt5C,UAAA7D,OAAA,YAAA6D,UAAA,GAAAA,UAAA,MAA+D/D,EAAAq9C,EAAAgC,QAAA7qC,EAAA6oC,EAAAvzC,KAAsB,WAAA49E,EAAAs5Z,MAAAhhf,GAAsB2hC,OAAAntB,EAAAmtB,QAAAyuC,EAAAsX,EAAAlzE,EAAAmtB,QAAAt0B,SAAAmH,EAAAnH,UAAAjK,EAAAskF,EAAAlzE,EAAAnH,UAAA4ze,gBAAAzse,EAAAyse,qBAAxiCjhf,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAkyC,SAAAkzE,EAAAtkF,GAAe,IAAAi6C,EAAMA,EAAA,WAAa,OAAAp+C,KAAb,GAA4B,IAAIo+C,KAAAjlC,SAAA,cAAAA,KAAA,EAAAm4L,MAAA,QAAiD,MAAA7oH,GAAS,iBAAA94E,SAAAyuC,EAAAzuC,QAAoC84E,EAAAtlF,QAAAi7C,GAAY,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,IAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAAuF,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,GAAqB,aAAa6I,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAASpD,EAAA4U,QAAA,SAAA0vE,EAAAtkF,GAA0B,IAAAi6C,EAAAp+C,KAAAuV,EAAApR,GAAAgtE,EAAAp4D,SAAA,EAAAhY,EAAAkhf,aAAAjif,KAAAoY,SAAAC,gBAA0E9C,KAAAzL,QAAA,SAAA3F,GAAyB,IAAApD,EAAA,OAAAoD,EAAA7B,MAAA,KAAA6uE,EAAApwE,EAAAoD,EAAA7B,MAAA,GAAA6B,EAAAoR,EAAA6oC,EAAAy1M,WAAA1iL,GAA6D57D,GAAAkzE,EAAA7pE,iBAAAza,EAAAoR,EAAA2/D,QAAkC,IAAA/D,EAAA,SAAAsX,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIqqC,EAAAtlF,QAAAgB,EAAA4U,UAA/bhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAqd,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAhtE,EAAAi6C,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA+E,SAAA0nF,EAAAtkF,GAAiB,aAAayF,OAAAwB,eAAAq9E,EAAA,cAAsClhF,OAAA,IAASkhF,EAAAy5Z,YAAAz5Z,EAAAw5Z,YAAAx5Z,EAAA05Z,UAAA15Z,EAAA25Z,aAAA,EAA2D,IAAAhkc,EAAAqqC,EAAA25Z,QAAA,SAAA35Z,GAA4B,OAAAA,EAAAylH,KAAAzlH,EAAA0lH,KAAqB1lH,EAAA05Z,UAAA,SAAA15Z,GAAwB,OAAA7+E,OAAA1J,UAAA0H,SAAA8D,KAAA+8E,GAAAnmF,MAAA,OAAqDmmF,EAAAw5Z,YAAA,SAAAx5Z,GAA2B,OAAAA,EAAAlgF,QAAA,kBAAAkgF,GAAsC,UAAAA,EAAAnwE,gBAA0B/P,QAAA,UAAmBkgF,EAAAy5Z,YAAA,SAAAz5Z,EAAA1nF,GAA6B,OAAAq9C,EAAAr9C,IAAA,EAAAoD,EAAAg9e,aAAA14Z,EAAA1nF,QAAheA,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAwgB,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,oBAAiCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAq9C,EAAA,EAAAA,GAAA,IAAAA,EAAA,eAAkCqqC,EAAAtlF,QAAApC,EAAAoC,SAAoB,SAAAslF,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,QAAA,KAAAoR,EAAA,mBAAAxU,EAA4E,SAAA0nF,EAAAtkF,GAAiB,aAAayF,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAASpD,EAAA4U,SAAaspe,aAAA,6ZAAAC,kBAAA,mCAAAC,mBAAA,8BAAAC,aAAA,2JAAAC,eAAA,uFAAAC,cAAA,uFAAAC,aAAA,uFAAAC,YAAA,uFAAAC,kBAAA,kDAAAC,aAAA,oBAAAC,oBAAA,2BAAAC,uBAAA,iCAAqxCv6Z,EAAAtlF,QAAAgB,EAAA4U,UAA37ChY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAk9C,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,QAAA,KAAAoR,EAAA,mBAAAxU,EAA4E,SAAA0nF,EAAAtkF,GAAiB,aAAa,SAAAi6C,EAAAqqC,GAAc,GAAA58E,MAAAC,QAAA28E,GAAA,CAAqB,QAAAtkF,EAAA,EAAAi6C,EAAAvyC,MAAA48E,EAAAxnF,QAA8BkD,EAAAskF,EAAAxnF,OAAWkD,IAAAi6C,EAAAj6C,GAAAskF,EAAAtkF,GAAc,OAAAi6C,EAAS,OAAAvyC,MAAAE,KAAA08E,GAAqB,SAAA1nF,EAAA0nF,EAAAtkF,EAAAi6C,GAAkB,OAAAj6C,KAAAskF,EAAA7+E,OAAAwB,eAAAq9E,EAAAtkF,GAAyCoD,MAAA62C,EAAA/yC,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAkDk9E,EAAAtkF,GAAAi6C,EAAAqqC,EAAyG7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,EAAAtkF,GAAoB,IAAAoR,EAAApR,EAAAowB,UAAA9c,EAAAtT,EAAArB,MAAAqV,EAAAhU,EAAAoV,OAAAvY,EAAAmD,EAAA8+e,WAAA/ib,EAAA/7D,EAAA++e,aAAnK,SAAAz6Z,EAAAtkF,GAAgB,KAAAskF,aAAAtkF,GAAA,UAAA6/C,UAAA,sCAAyNmtB,CAAAnxE,KAAAyoF,GAAAzoF,KAAAyD,OAAA,SAAAglF,GAAkC,IAAAtkF,EAAAnE,KAAW,OAAAyoF,EAAAlzE,GAAYzS,MAAA2U,EAAAgO,OAAA,SAAAgjE,EAAArqC,GAA6B,OAAAx0C,OAAA6B,OAAAg9E,EAAA1nF,KAA2Bq9C,EAAAj6C,EAAAi6C,UAAa1+B,GAAAvH,EAAAsN,OAAA,SAAAgjE,EAAArqC,GAA4B,OAAAx0C,OAAA6B,OAAAg9E,EAAA1nF,KAA2Bq9C,EAAAj6C,EAAA08e,wBAA4B7gf,KAAA8C,SAAAiS,OAAAqpC,EAAAp9C,GAAAo9C,EAAA3mC,EAAA2P,OAAA,SAAAqhE,GAAkD,OAAAvoB,EAAApgE,QAAA2oF,QAAyBtkF,EAAA4U,QAAA,SAAA0vE,GAAsB,WAAAlzE,EAAAkzE,IAAgBA,EAAAtlF,QAAAgB,EAAA4U,UAAr4BhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA45B,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAhtE,EAAAi6C,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,eAAA7oC,EAAA,mBAAAxU,EAAwR,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,EAAA57D,EAAAkC,EAAAU,EAAAnX,EAAAk/D,EAAAuuI,EAAAx2L,EAAAi5B,EAAAziB,EAAAu0B,EAAAr2B,EAAAyf,EAAA7nC,EAAAwI,EAAAoR,EAAA3I,EAAAnR,EAAA0/G,EAAA/zE,EAAAC,EAAAkzc,EAAA16d,EAAAy3I,EAAAq4D,EAAAF,EAAA93J,EAAA44O,EAAA93E,EAAAzsM,EAAA1B,EAAAgd,GAAqF,aAAa,SAAAC,EAAAs4C,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAq9E,EAAA,cAAsClhF,OAAA,IAASkhF,EAAA26Z,aAAA36Z,EAAA46Z,WAAA56Z,EAAA66Z,SAAA76Z,EAAA86Z,mBAAA96Z,EAAA+6Z,eAAA/6Z,EAAAg7Z,WAAAh7Z,EAAAi7Z,UAAAj7Z,EAAAk7Z,OAAAl7Z,EAAAm7Z,MAAAn7Z,EAAAo7Z,UAAAp7Z,EAAAq7Z,UAAAr7Z,EAAAs7Z,UAAAt7Z,EAAAu7Z,cAAAv7Z,EAAAw7Z,kBAAAx7Z,EAAAy7Z,cAAAz7Z,EAAA07Z,UAAA17Z,EAAA27Z,aAAA37Z,EAAA47Z,QAAA57Z,EAAA67Z,SAAA77Z,EAAA87Z,SAAA97Z,EAAA+7Z,UAAA/7Z,EAAAg8Z,WAAAh8Z,EAAAi8Z,kBAAAj8Z,EAAAk8Z,SAAAl8Z,EAAAm8Z,UAAAn8Z,EAAAo8Z,WAAAp8Z,EAAAq8Z,WAAAr8Z,EAAAs8Z,YAAAt8Z,EAAAu8Z,cAAAv8Z,EAAAw8Z,cAAAx8Z,EAAAy8Z,UAAAz8Z,EAAA08Z,aAAA18Z,EAAA28Z,QAAA38Z,EAAA48Z,OAAA58Z,EAAA68Z,cAAA,EAAwd,IAAAr0c,EAAAd,EAAAhsC,GAAA6zN,EAAA7nL,EAAAiO,GAAAmnc,EAAAp1c,EAAApvC,GAAA03N,EAAAtoL,EAAAghC,GAAAq0a,EAAAr1c,EAAA56B,GAAAkpJ,EAAAtuH,EAAA14B,GAAAo0B,EAAAsE,EAAAh4B,GAAAste,EAAAt1c,EAAAnvC,GAAA4+J,EAAAzvH,EAAA+vB,GAAAg4J,EAAA/nL,EAAAs+J,GAAAkqB,EAAAxoL,EAAAl4B,GAAAyte,EAAAv1c,EAAAe,GAAAkwL,EAAAjxL,EAAA1hB,GAAAk3d,EAAAx1c,EAAA6S,GAAAqgS,EAAAlzS,EAAAxjB,GAAAyjB,EAAAD,EAAA/D,GAAAw5c,EAAAz1c,EAAA5rC,GAAAshf,GAAA11c,EAAApjC,GAAA+4e,GAAA31c,EAAAhyB,GAAA4ne,GAAA51c,EAAA36B,GAAAkrD,GAAAvwB,EAAA9rC,GAAA2hf,GAAA71c,EAAA4zE,GAAAkiY,GAAA91c,EAAAH,GAAA8mQ,GAAA3mQ,EAAAF,GAAAw7U,GAAAt7U,EAAAgzc,GAAAxpQ,GAAAxpM,EAAA1nB,GAAAijW,GAAAv7U,EAAA+vH,GAAAgmV,GAAA/1c,EAAAooL,GAAA4tR,GAAAh2c,EAAAkoL,GAAA36L,GAAAyS,EAAAowB,GAAA6lb,GAAAj2c,EAAAgpQ,GAAAktM,GAAAl2c,EAAAkxL,GAAAilR,GAAAn2c,EAAAvb,GAAA2xd,GAAAp2c,EAAAjd,GAAAszd,GAAAr2c,EAAAD,GAA2Qu4C,EAAA1vE,SAAWsb,QAAA,SAAAo0D,EAAAtkF,GAAsB,IAAAi6C,EAAAj6C,EAAAsif,GAAWh+Z,EAAAvoF,UAAAwmf,MAAA,WAA6B,OAAOD,GAAAroc,IAAMqqC,EAAAl0D,UAAA,YAAA0c,EAAAl4B,SAAA0vE,EAAAl0D,UAAA,UAAAyjM,EAAAj/M,SAAA0vE,EAAAl0D,UAAA,WAAAgxd,EAAAxse,SAAA0vE,EAAAl0D,UAAA,gBAAAkkM,EAAA1/M,SAAA0vE,EAAAl0D,UAAA,cAAAixd,EAAAzse,SAAA0vE,EAAAl0D,UAAA,kBAAAkqI,EAAA1lJ,SAAA0vE,EAAAl0D,UAAA,iBAAAsX,EAAA9yB,SAAA0vE,EAAAl0D,UAAA,eAAAkxd,EAAA1se,SAAA0vE,EAAAl0D,UAAA,eAAAqrI,EAAA7mJ,SAAA0vE,EAAAl0D,UAAA,cAAA2jM,EAAAn/M,SAAA0vE,EAAAl0D,UAAA,aAAAokM,EAAA5/M,SAAA0vE,EAAAl0D,UAAA,YAAAmxd,EAAA3se,SAAA0vE,EAAAl0D,UAAA,sBAAA6sM,EAAAroN,SAAA0vE,EAAAl0D,UAAA,cAAAoxd,EAAA5se,SAAA0vE,EAAAl0D,UAAA,aAAA8uT,EAAAtqU,SAAA0vE,EAAAl0D,UAAA,YAAA6b,EAAAr3B,SAAA0vE,EAAAl0D,UAAA,YAAAqxd,EAAA7se,SAAA0vE,EAAAl0D,UAAA,WAAAsxd,GAAA9se,SAAA0vE,EAAAl0D,UAAA,iBAAAuxd,GAAA/se,SAAA0vE,EAAAl0D,UAAA,aAAAwxd,GAAAhte,SAAA0vE,EAAAl0D,UAAA,kBAAAmsC,GAAA3nD,SAAA0vE,EAAAl0D,UAAA,uBAAAyxd,GAAAjte,SAAA0vE,EAAAl0D,UAAA,kBAAA0xd,GAAAlte,SAAA0vE,EAAAl0D,UAAA,aAAAuiR,GAAA/9R,SAAA0vE,EAAAl0D,UAAA,aAAAk3V,GAAA1yW,SAAA0vE,EAAAl0D,UAAA,aAAAolN,GAAA5gO,SAAA0vE,EAAAl0D,UAAA,SAAAm3V,GAAA3yW,SAAA0vE,EAAAl0D,UAAA,UAAA2xd,GAAAnte,SAAA0vE,EAAAl0D,UAAA,aAAA4xd,GAAApte,SAAA0vE,EAAAl0D,UAAA,mBAAA6xd,GAAArte,SAAA0vE,EAAAl0D,UAAA,cAAAmJ,GAAA3kB,WAAqpC0vE,EAAA68Z,SAAAr0c,EAAAl4B,QAAA0vE,EAAA48Z,OAAArtR,EAAAj/M,QAAA0vE,EAAA28Z,QAAAG,EAAAxse,QAAA0vE,EAAA08Z,aAAA1sR,EAAA1/M,QAAA0vE,EAAAy8Z,UAAAM,EAAAzse,QAAA0vE,EAAAw8Z,cAAAxmV,EAAA1lJ,QAAA0vE,EAAAu8Z,cAAAn5c,EAAA9yB,QAAA0vE,EAAAs8Z,YAAAU,EAAA1se,QAAA0vE,EAAAq8Z,WAAAllV,EAAA7mJ,QAAA0vE,EAAAo8Z,WAAA3sR,EAAAn/M,QAAA0vE,EAAAm8Z,UAAAjsR,EAAA5/M,QAAA0vE,EAAAk8Z,SAAAe,EAAA3se,QAAA0vE,EAAAi8Z,kBAAAtjR,EAAAroN,QAAA0vE,EAAAg8Z,WAAAkB,EAAA5se,QAAA0vE,EAAA+7Z,UAAAnhK,EAAAtqU,QAAA0vE,EAAA87Z,SAAAn0c,EAAAr3B,QAAA0vE,EAAA67Z,SAAAsB,EAAA7se,QAAA0vE,EAAA47Z,QAAAwB,GAAA9se,QAAA0vE,EAAA27Z,aAAA0B,GAAA/se,QAAA0vE,EAAA07Z,UAAA4B,GAAAhte,QAAA0vE,EAAAy7Z,cAAAxjb,GAAA3nD,QAAA0vE,EAAAw7Z,kBAAA+B,GAAAjte,QAAA0vE,EAAAu7Z,cAAAiC,GAAAlte,QAAA0vE,EAAAs7Z,UAAAjtM,GAAA/9R,QAAA0vE,EAAAq7Z,UAAAr4H,GAAA1yW,QAAA0vE,EAAAo7Z,UAAAlqQ,GAAA5gO,QAAA0vE,EAAAm7Z,MAAAl4H,GAAA3yW,QAAA0vE,EAAAk7Z,OAAAuC,GAAAnte,QAAA0vE,EAAAi7Z,UAAAyC,GAAApte,QAAA0vE,EAAAg7Z,WAAA/ld,GAAA3kB,QAAA0vE,EAAA+6Z,eAAA4C,GAAArte,QAAA0vE,EAAA86Z,mBAAA8C,GAAAtte,QAAA0vE,EAAA66Z,SAAAgD,GAAAvte,QAAA0vE,EAAA46Z,WAAAkD,GAAAxte,QAAA0vE,EAAA26Z,aAAAoD,GAAAzte,UAA16EhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA4uG,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,QAAA,KAAAoR,EAAA,mBAAAxU,EAA4E,SAAA0nF,EAAAtkF,GAAiB,aAAayF,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAASpD,EAAA4U,SAAanW,KAAA,uBAAAE,OAAmCX,UAAUqB,KAAA2V,SAAAJ,QAAA,cAAmCs4B,MAAO7tC,KAAA2N,QAAYw1e,SAAUnjf,KAAA2N,QAAYzP,IAAK8B,KAAA2N,QAAYuiE,UAAWlwE,KAAAiW,SAAamte,WAAYpjf,KAAAiW,UAAcsC,SAAU2ke,OAAA,WAAkB1gf,KAAAmsN,QAAAx7M,KAAA3Q,KAAAmsN,QAAA9xG,SAAuC9+F,OAAQ81B,KAAA,WAAgBrxC,KAAA0gf,UAAciG,QAAA,WAAoB3mf,KAAA0gf,UAAch/e,GAAA,WAAe1B,KAAA0gf,UAAchta,SAAA,WAAqB1zE,KAAA0gf,UAAcmG,WAAA,WAAuB7mf,KAAA0gf,UAAcv+e,SAAA,WAAqBnC,KAAA0gf,WAAen5R,UAAA,WAAsBvnN,KAAA0gf,UAAc3ge,QAAA,WAAoB/f,KAAA0gf,WAAej4Z,EAAAtlF,QAAAgB,EAAA4U,UAA7rBhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAotB,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,cAAA7oC,EAAA,mBAAAxU,EAAiF,SAAA0nF,EAAAtkF,EAAAi6C,GAAmB,aAAax0C,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAxG,EAAA,SAAA0nF,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,kBAAAE,OAA8BkW,OAAOxV,KAAAuX,SAAaunK,SAAA,EAAAvhL,EAAAgY,SAAA,gBAAAgD,SAAgDs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAgZ,MAAA7U,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA2Q,IAAA5P,EAAAf,KAAAmsN,QAAAh7I,EAAAnxE,KAAAupC,OAAAxoC,EAAA+/e,gBAAA1ic,EAAyF+yB,EAAA21a,kBAAA9mf,KAAA8gf,gBAAyC,IAAAvre,EAAAvV,KAAA8gf,eAAA,IAAA38e,EAAA4if,YAAAtve,GAAA,EAAAU,GAAA,EAAAnX,OAAA,EAA+D,IAAI,QAAAk/D,EAAAuuI,EAAAzuM,KAAA0sP,UAAAzhP,OAAAC,cAA8CuM,GAAAyoD,EAAAuuI,EAAAhqK,QAAApjC,MAAuBoW,GAAA,GAAM,WAAY,IAAA1W,EAAAm/D,EAAA34D,MAAc,GAAAxG,EAAA6lf,UAAA,OAAArxe,EAAAyxe,eAAA,WAAkD,IAAAvve,EAAA,IAAAtT,EAAAq+Z,SAAAzha,EAAAswC,KAAA,SAAAo3C,EAAAlzE,GAA0CxU,EAAAoB,UAAYkoC,MAAAo+C,EAAAwrI,MAAA1+M,EAAA8/R,KAAAlxS,EAAAwM,IAAAytC,EAAA79C,OAAA4wE,MAA0Cn4D,MAAAyvE,EAAA/mF,GAAAX,EAAAW,GAAAilf,QAAA5lf,EAAA4lf,UAAoC5lf,EAAA2yE,SAAAj8D,EAAA2kJ,UAAA3kJ,EAAAykJ,SAAAn7J,EAAA+/e,eAAArpe,EAAAlC,EAAA41X,QAAA1zX,GAAhN,GAAuR,MAAAgxE,GAAStwE,GAAA,EAAAnX,EAAAynF,EAAS,QAAQ,KAAIhxE,GAAAg3L,EAAAg3J,QAAAh3J,EAAAg3J,SAAyB,QAAQ,GAAAttV,EAAA,MAAAnX,GAAcmwE,EAAA81a,eAAA1xe,MAAsBkzE,EAAAtlF,QAAAgB,EAAA4U,UAAp+BhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA2/B,SAAAkzE,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAAqG,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,eAAAa,OAAA,aAAuC6+K,SAAA,EAAA/sK,EAAAwD,SAAA,YAAAjW,OAA0C2+e,QAAQj+e,KAAA2N,QAAYuxB,QAASl/B,KAAAoG,SAAa2R,OAAQkme,OAAA,WAAkBzhf,KAAA0gf,UAAch+c,OAAA,WAAmB1iC,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAyhf,OAAAlse,EAAAvV,KAAA0iC,OAAAjrB,EAAAzX,KAA8DA,KAAA8gf,eAAA,IAAAr4Z,EAAAy+Z,iBAA2CzF,OAAA1gf,EAAAq9C,GAAA1b,OAAAntB,IAAA,EAAA47D,EAAAqwa,YAAA/4Z,EAAAlzE,GAAA4xe,eAAA,WAAsE1ve,EAAAuG,MAAA,iBAAwBope,cAAA,WAA0B3ve,EAAAuG,MAAA,kBAAwB7Z,EAAAkjf,WAAArnf,KAAA8gf,mBAAsCr4Z,EAAAtlF,QAAAgB,EAAA4U,SAA7uBxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAowB/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAAqG,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,aAAA0/K,SAAA,EAAA/sK,EAAAwD,SAAA,YAAAjW,OAAA,mBAAAyY,OAAqFkme,OAAA,SAAAh5Z,GAAmBzoF,KAAA8gf,eAAAwG,UAAA7+Z,IAAiC/lD,OAAA,SAAA+lD,GAAoBzoF,KAAA8gf,eAAAyG,UAAA9+Z,KAAkC1sE,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAyhf,OAAAlse,EAAAvV,KAAA0iC,OAAAjrB,EAAAzX,KAAA0c,IAAAvE,EAAA,WAA+EnY,KAAAwnf,cAAAzmf,EAAAq9C,GAAA,wBAAAp+C,KAAAynf,eAAA,EAAAt2a,EAAAqwa,YAAA/4Z,EAAAlzE,KAA0F4C,EAAAjY,UAAA,IAAAuoF,EAAAi/Z,SAAA1xM,WAAA,SAAAvtN,GAA6D,OAAAA,EAAAk/Z,eAAA13e,YAAAwH,IAAuCzX,KAAA8gf,eAAA,IAAA3oe,EAAAimC,EAAA7oC,GAAApR,EAAAkjf,WAAArnf,KAAA8gf,mBAAoEr4Z,EAAAtlF,QAAAgB,EAAA4U,SAAzxBxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAgzB/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAAqG,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,eAAAa,OAAA,aAAuC6+K,SAAA,EAAA/sK,EAAAwD,SAAA,YAAAjW,OAAA,+BAAAyY,OAAgFkme,OAAA,WAAkBzhf,KAAA0gf,UAAch+c,OAAA,WAAmB1iC,KAAA0gf,UAAcx6N,UAAA,WAAsBlmR,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAA0iC,OAAAntB,EAAAvV,KAAAyhf,OAAAhqe,EAAAzX,KAAA4nf,oBAAkF5nf,KAAA8gf,eAAA,IAAAr4Z,EAAAo/Z,kBAA4CpG,OAAA1gf,EAAAwU,GAAAmtB,OAAA0b,IAAA,EAAA+yB,EAAAqwa,YAAA/4Z,EAAArqC,KAA4C3mC,IAAAtT,EAAAkjf,WAAArnf,KAAA8gf,iBAAwC8G,oBAAA,WAAgC,IAAAn/Z,EAAAzoF,KAAAmE,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA2Q,IAAA5P,EAAAf,KAAA8gf,eAAA3va,EAAApwE,EAAA+mf,gBAAArwe,GAAAlC,EAAAxU,EAAAgnf,0BAA6Gtwe,KAAA3N,QAAA,SAAA2+E,GAAyBtX,EAAAsX,EAAA/mF,MAAQ1B,KAAAkmR,WAAAlmR,KAAAkmR,UAAAp8Q,QAAA,SAAA/I,GAAqD,IAAAowE,EAAApwE,EAAAinf,OAAA,IAAA7jf,EAAAo9e,OAAA,IAAAp9e,EAAAqxS,MAAAz0S,EAAAinf,OAAAt1c,GAAAw7J,IAAAntM,EAAAinf,OAAAt1c,GAAAy7J,KAAA,IAAAhqM,EAAAqxS,MAAAz0S,EAAAinf,OAAAvwI,GAAAvpK,IAAAntM,EAAAinf,OAAAvwI,GAAAtpK,MAAA/vJ,EAAA6pc,YAAqIx/Z,EAAAq4Z,eAAAoH,cAA+Bxmf,GAAAX,EAAAW,GAAA0+C,QAAAr/C,EAAAq/C,QAAA4nc,OAAA72a,IAAmCsX,EAAAq4Z,eAAAiH,8BAAgDt/Z,EAAAtlF,QAAAgB,EAAA4U,SAAlpCxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAyqC/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAA0G,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,EAAA57D,GAAuB,aAAa,SAAAkC,EAAAgxE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAA4Q,EAAAV,EAAA2mC,GAAAp9C,EAAAyW,EAAA05D,GAAkBhtE,EAAA4U,SAAWnW,KAAA,iBAAAa,OAAA,aAAyC6+K,SAAA,EAAAnqK,EAAAY,SAAA,YAAAjW,OAA0C2+e,QAAQj+e,KAAA2N,QAAYuxB,QAASl/B,KAAAoG,QAAYu+e,gBAAiB3kf,KAAAiW,SAAa2ue,cAAe5kf,KAAAiW,SAAa4ue,cAAe7kf,KAAAoG,SAAa2R,OAAQkme,OAAA,WAAkBzhf,KAAA0gf,UAAch+c,OAAA,WAAmB1iC,KAAA0gf,UAAcyH,eAAA,WAA2Bnof,KAAA0gf,UAAc0H,aAAA,WAAyBpof,KAAA0gf,UAAc2H,aAAA,WAAyBrof,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAyhf,OAAAtwa,EAAAnxE,KAAAmof,eAAA1we,EAAAzX,KAAAoof,aAAAjwe,EAAAnY,KAAAqof,aAAAnob,EAAAlgE,KAAA0iC,OAAqH1iC,KAAA8gf,eAAA,IAAAr4Z,EAAA6/Z,oBAA8C7G,OAAA1gf,EAAAq9C,GAAA+pc,eAAAh3a,EAAAo3a,mBAAA9we,EAAAirB,OAAAw9B,IAAA,EAAA3qD,EAAAise,YAAA/4Z,EAAAvoB,GAAAmob,aAAAlwe,IAAA,EAAA5C,EAAA6/Q,YAAA3sM,EAAAtwE,KAAwHnX,EAAA+X,QAAArN,KAAA1L,UAAA8gf,gBAAA38e,EAAAkjf,WAAArnf,KAAA8gf,mBAA+Er4Z,EAAAtlF,QAAAgB,EAAA4U,SAAvhCxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAA8iC/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAAqG,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,cAAAa,OAAA,aAAsC6+K,SAAA,EAAA/sK,EAAAwD,SAAA,YAAAjW,OAAA,qCAAAyY,OAAsFkme,OAAA,WAAkBzhf,KAAA0gf,UAAch+c,OAAA,WAAmB1iC,KAAA0gf,UAAcl9e,KAAA,WAAiBxD,KAAA0gf,UAAc8H,SAAA,WAAqBxof,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAyhf,OAAAlse,EAAAvV,KAAA0iC,OAAAjrB,EAAAzX,KAAAwD,KAAA2U,KAAwEnY,KAAAwof,UAAAxof,KAAAwof,SAAA1+e,QAAA,SAAA2+E,GAAiD,OAAAtwE,EAAA5W,KAAAR,EAAA0nF,MAAoBzoF,KAAA8gf,eAAA,IAAAr4Z,EAAAgga,gBAA4ChH,OAAA1gf,EAAAq9C,GAAA1b,OAAAntB,IAAA,EAAA47D,EAAAqwa,YAAA/4Z,EAAAlzE,GAAA/R,KAAAzC,EAAA0W,GAAA+we,SAAArwe,IAAiEhU,EAAAkjf,WAAArnf,KAAA8gf,mBAAsCr4Z,EAAAtlF,QAAAgB,EAAA4U,SAAzyBxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAg0B/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAAqG,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,gBAAAa,OAAA,aAAwC6+K,SAAA,EAAA/sK,EAAAwD,SAAA,YAAAjW,OAA0C2+e,QAAQj+e,KAAA2N,QAAYuxB,QAASl/B,KAAAoG,QAAYpG,MAAOA,KAAA2N,QAAYu3e,cAAellf,KAAAiW,SAAakve,mBAAoBnlf,KAAAiW,QAAAV,SAAA,IAAyBwC,OAAQkme,OAAA,WAAkBzhf,KAAA0gf,UAAch+c,OAAA,WAAmB1iC,KAAA0gf,UAAcl9e,KAAA,WAAiBxD,KAAA0gf,UAAcgI,aAAA,WAAyB1of,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAyhf,OAAAlse,EAAAvV,KAAA0iC,OAAAjrB,EAAAzX,KAAAwD,KAAA2U,EAAAnY,KAAA0of,aAAA1nf,EAAAhB,KAAA2of,kBAAgH3of,KAAA8gf,eAAA,IAAAr4Z,EAAAmga,mBAA6CnH,OAAA1gf,EAAAq9C,GAAA1b,OAAAntB,IAAA,EAAA47D,EAAAqwa,YAAA/4Z,EAAAlzE,GAAA/R,KAAAzC,EAAA0W,GAAAixe,aAAAvwe,EAAAwwe,kBAAA3nf,IAAyFmD,EAAAkjf,WAAArnf,KAAA8gf,mBAAsCr4Z,EAAAtlF,QAAAgB,EAAA4U,SAA54BxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAm6B/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAA0G,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,EAAA57D,GAAuB,aAAa,SAAAkC,EAAAgxE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAA4Q,EAAAV,EAAA05D,GAAAnwE,EAAAyW,EAAAlC,GAAkBpR,EAAA4U,SAAWnW,KAAA,kBAAA0/K,SAAA,EAAAnqK,EAAAY,SAAA,YAAAtV,OAAA,aAA4EX,OAAQ2+e,QAAQj+e,KAAA2N,QAAYuxB,QAASl/B,KAAAoG,QAAYioB,MAAOruB,KAAAoG,QAAYi/e,QAASrlf,KAAAiW,UAAc8B,OAAQkme,OAAA,WAAkBzhf,KAAA0gf,UAAch+c,OAAA,WAAmB1iC,KAAA0gf,UAAc7ud,KAAA,WAAiB7xB,KAAA0gf,UAAcmI,OAAA,WAAmB7of,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAwgE,EAAAnxE,KAAA6of,OAAAtze,EAAAvV,KAAA6xB,KAAApa,EAAAzX,KAAA0iC,OAAAvqB,EAAAnY,KAAAyhf,OAAAvhb,KAAsFlgE,KAAAwof,UAAAxof,KAAAwof,SAAA1+e,QAAA,SAAA2+E,GAAiDvoB,EAAA3+D,KAAAR,EAAA0nF,MAAazoF,KAAA8gf,eAAA,IAAAr4Z,EAAAqga,oBAAgDrH,OAAA1gf,EAAAoX,GAAAuqB,QAAA,EAAA0b,EAAAojc,YAAA/4Z,EAAAhxE,GAAAoa,MAAA,EAAAusB,EAAAojc,YAAA/4Z,EAAAlzE,GAAAsze,OAAA13a,IAA6EnwE,EAAA+X,QAAArN,KAAA1L,UAAA8gf,gBAAA38e,EAAAkjf,WAAArnf,KAAA8gf,mBAA+Er4Z,EAAAtlF,QAAAgB,EAAA4U,SAA36BxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAk8B/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAAqG,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,cAAA0/K,SAAA,EAAA/sK,EAAAwD,SAAA,YAAAtV,OAAA,aAAwEX,OAAA,mBAAAyY,OAAkCkme,OAAA,WAAkBzhf,KAAA0gf,UAAch+c,OAAA,WAAmB1iC,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAyhf,OAAAlse,EAAAvV,KAAA0iC,OAAuD1iC,KAAA8gf,eAAA,IAAAr4Z,EAAAsga,iBAA2CtH,OAAA1gf,EAAAq9C,GAAA1b,OAAAntB,IAAA,EAAA47D,EAAAqwa,YAAA/4Z,EAAAlzE,KAA4CpR,EAAAkjf,WAAArnf,KAAA8gf,mBAAsCr4Z,EAAAtlF,QAAAgB,EAAA4U,SAAzmBxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAgoB/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAAqG,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,WAAAa,OAAA,aAAmC6+K,SAAA,EAAA/sK,EAAAwD,SAAA,YAAAjW,OAA0C2+e,QAAQj+e,KAAA2N,QAAYuxB,QAASl/B,KAAAoG,SAAa2R,OAAQkme,OAAA,WAAkBzhf,KAAA0gf,UAAch+c,OAAA,WAAmB1iC,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAyhf,OAAAlse,EAAAvV,KAAA0iC,OAAuD1iC,KAAA8gf,eAAA,IAAAr4Z,EAAAuga,cAAwCvH,OAAA1gf,EAAAq9C,GAAA1b,OAAAntB,IAAA,EAAA47D,EAAAqwa,YAAA/4Z,EAAAlzE,KAA4CpR,EAAAkjf,WAAArnf,KAAA8gf,mBAAsCr4Z,EAAAtlF,QAAAgB,EAAA4U,SAA3nBxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAkpB/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,IAAAA,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAAiG,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,EAAA57D,GAAyB,aAAa,SAAAkC,EAAAgxE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAA4Q,EAAAV,EAAA2mC,GAAAp9C,EAAAyW,EAAA1W,GAAAm/D,EAAAzoD,EAAA05D,GAAAs9H,GAAA,uFAAmHtqM,EAAA4U,SAAWnW,KAAA,iBAAAa,OAAA,aAAyC6+K,SAAA,EAAAthL,EAAA+X,SAAA,YAAAjW,OAA0Cs6B,QAAQ55B,KAAAqI,MAAAkN,QAAAlN,OAAyB03c,aAAc//c,KAAA2N,QAAY83e,cAAezlf,KAAAuX,QAAYmue,eAAgB1lf,KAAAuX,QAAYyyS,aAAchqT,KAAA2N,QAAYg4e,WAAY3lf,KAAAiW,QAAAV,SAAA,GAAwB+0c,UAAWtqd,KAAAiW,QAAAV,SAAA,GAAwBqwe,SAAU5lf,KAAAiW,QAAAV,SAAA,IAAyBwC,OAAQ6hB,QAAQ3hB,QAAA,SAAAgtE,EAAAtkF,GAAsBnE,KAAA8gf,eAAAuI,iBAAArpf,KAAA0gf,UAAmDlle,MAAA,GAAS+nc,YAAA,SAAA96X,GAAyBzoF,KAAA8gf,eAAAwI,eAAA7ga,IAAsCyga,cAAA,SAAAzga,GAA2BzoF,KAAA8gf,eAAAyI,iBAAA9ga,IAAwCwga,aAAA,SAAAxga,GAA0BzoF,KAAA8gf,eAAAyI,iBAAA9ga,IAAwC+kO,YAAA,SAAA/kO,GAAyBzoF,KAAA8gf,eAAA0I,eAAA/ga,IAAsC2ga,QAAA,SAAA3ga,GAAqBA,EAAAzoF,KAAA8gf,eAAA2I,gBAAAzpf,KAAA8gf,eAAAuI,kBAA2EF,UAAA,SAAA1ga,GAAuBA,EAAAzoF,KAAA8gf,eAAAkB,kBAAAhif,KAAA8gf,eAAA4I,oBAA+E57B,SAAA,SAAArlY,GAAsBzoF,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAo9B,OAAAr8B,EAAAf,KAAAujd,YAAApyY,EAAAnxE,KAAAipf,aAAAxxe,EAAAzX,KAAAkpf,cAAAlof,EAAAhB,KAAAwtT,YAAAv1S,EAAAjY,KAAAopf,QAAAl4c,EAAAlxC,KAAAmpf,UAAA16d,EAAAzuB,KAAA8td,SAAA9qa,EAAA,IAAA7qC,EAAAY,QAAAqlC,EAAAztC,IAAA,SAAAxM,GAA0M,SAAAoR,EAAA4re,aAAA14Z,EAAAtkF,MAAgCo/c,YAAAxid,EAAAkof,aAAA93a,EAAA+3a,cAAAzxe,EAAA+1S,YAAAxsT,EAAAghf,gBAAA9wc,EAAAy4c,eAAAl7d,IAAgGxW,EAAA+qC,EAAAymc,gBAAAzmc,EAAAqmc,iBAAArpf,KAAA8gf,eAAA99b,EAAA7+C,EAAAmyS,WAAAtzP,GAAAkd,EAAAnnD,QAAArN,KAAA1L,KAAAgjD,EAAAyrJ,MAAwGhmH,EAAAtlF,QAAAgB,EAAA4U,UAA9sDhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAquD,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,eAAA7oC,EAAA,mBAAAxU,EAAuF,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,GAAqB,aAAa,SAAAowE,EAAAsX,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA47D,EAAA/yB,GAAA3mC,EAAA05D,EAAApwE,GAAkBoD,EAAA4U,SAAWnW,KAAA,cAAAa,OAAA,aAAsC6+K,SAAA,EAAA/sK,EAAAwD,SAAA,YAAAjW,OAA0CgO,MAAMtN,KAAAqI,MAAAkN,QAAAlN,OAAyB5D,KAAMzE,KAAAuX,QAAY4H,QAASnf,KAAAuX,QAAY6nB,UAAWp/B,KAAAoG,QAAYiJ,SAAUrP,KAAAuX,SAAaQ,OAAQzK,MAAM2K,QAAA,WAAmBzb,KAAA0gf,UAAclle,MAAA,GAASvT,IAAA,WAAgBjI,KAAA0gf,UAAc/9d,OAAA,SAAA8lE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA6S,QAAA9R,EAAAf,KAAA4iC,SAAyDz+B,EAAAyG,YAAc+X,OAAA8lE,EAAA51E,QAAAurC,EAAAxb,SAAA7hC,KAAgC6hC,UAAWnnB,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA2iB,OAAA5hB,EAAAf,KAAA6S,QAAuD1O,EAAAyG,YAAc+X,OAAAy7B,EAAAvrC,QAAA9R,EAAA6hC,SAAA6lD,KAAgCjtE,MAAA,GAAS3I,QAAA,SAAA41E,GAAqB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA2iB,OAAA5hB,EAAAf,KAAA4iC,SAAwDz+B,EAAAyG,YAAc+X,OAAAy7B,EAAAvrC,QAAA41E,EAAA7lD,SAAA7hC,MAAiCgb,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAA2Q,IAAAxM,EAAAnE,KAAA8Q,KAAAstC,EAAAp+C,KAAAiI,IAAAlH,EAAAf,KAAA2iB,OAAAwuD,EAAAnxE,KAAA6S,QAAA0C,EAAAvV,KAAA4iC,SAAAzqB,EAAAnY,KAAA8gf,eAAA,IAAArpe,EAAAsB,SAAwH4J,OAAA5hB,EAAA8R,QAAAs+D,EAAAvuC,SAAArtB,IAAgCkzE,EAAA6tN,WAAAn+R,KAAAyxe,YAA8B94e,KAAA3M,EAAA8D,IAAAm2C,OAAiBqqC,EAAAtlF,QAAAgB,EAAA4U,UAAznChY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAgpC,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,eAAA7oC,EAAA,mBAAAxU,EAA4F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAa,SAAA57D,EAAAkzE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAAlC,EAAA6oC,GAAAjmC,EAAA5C,EAAA47D,GAAkBhtE,EAAA4U,SAAWnW,KAAA,WAAAa,OAAA,SAAAglF,KAAoC65F,SAAA,EAAA7qK,EAAAsB,SAAA,UAAAjW,OAAwCzC,MAAMmD,KAAAqI,MAAAkN,YAAsB8we,cAAermf,KAAAqI,MAAAkN,QAAA,WAA8B,WAAUy6D,MAAOhwE,KAAAoG,QAAYurN,OAAQ3xN,KAAAuX,OAAAhC,QAAA,KAAwBqnC,SAAU58C,KAAA2N,OAAA4H,QAAA,IAAuB+we,UAAWtmf,KAAAiW,QAAAV,SAAA,GAAwB8e,UAAWr0B,KAAAiW,QAAAV,SAAA,GAAwBgxe,YAAavmf,KAAAiW,QAAAV,SAAA,GAAwBi3G,MAAOxsH,KAAAiW,QAAAV,SAAA,IAAyBwC,OAAQlb,MAAMob,QAAA,SAAAgtE,GAAoBzoF,KAAA0gf,UAAclle,MAAA,GAASque,cAAepue,QAAA,SAAAgtE,GAAoBzoF,KAAA0gf,UAAclle,MAAA,GAASg4D,MAAO/3D,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,GAAAp+C,KAAAogD,SAAA,EAAAr/C,EAAAq0R,YAAAigB,KAAA5sN,IAAoEtkF,EAAA0vK,MAAArgG,KAAAp1B,EAAAj6C,EAAA6lf,QAAA5rc,GAA2B5iC,MAAA,GAAS25M,MAAA,SAAA1sI,GAAmB,IAAAtkF,EAAAnE,KAAA8gf,eAA0B9gf,KAAAogD,QAAaj8C,EAAA0vK,MAAAshD,MAAA1sI,GAAgBroC,QAAA,SAAAqoC,GAAqB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA+pf,WAA4Ctha,GAAArqC,EAAAj6C,EAAA8lf,iBAAA9lf,EAAA+lf,iBAAA/lf,EAAA0vK,MAAAs2U,eAAA1ha,EAAAtkF,EAAAimf,UAAAjmf,EAAAimf,SAAAC,QAAA5ha,IAAsGqha,SAAA,SAAArha,GAAsB,IAAAtkF,EAAAnE,KAAA8gf,eAA0B9gf,KAAAogD,QAAaj8C,EAAA0vK,MAAAi2U,SAAArha,GAAmB5wD,SAAA,SAAA4wD,GAAsB,IAAAtkF,EAAAnE,KAAA8gf,eAA0B9gf,KAAAogD,QAAaj8C,EAAA0vK,MAAAy2U,eAAA7ha,GAAyBsha,WAAA,SAAAtha,GAAwB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAogD,QAAyCj8C,GAAAskF,GAAArqC,EAAAj6C,EAAA8lf,iBAAA9lf,EAAA+lf,kBAA8Cl6X,KAAA,SAAAvnC,GAAkB,IAAAtkF,EAAAnE,KAAA8gf,eAA0Br4Z,GAAAtkF,IAAA3B,SAAAxC,KAAAuqf,QAAApmf,EAAAyrH,UAAwC7zG,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA2Q,IAAAwgE,EAAAnxE,KAAAK,KAAAkV,EAAAvV,KAAA6pf,aAAApye,EAAAzX,KAAAwzE,KAAAxyE,EAAAhB,KAAAm1N,MAAAj1J,EAAAlgE,KAAAogD,QAAAquJ,EAAAzuM,KAAA8pf,SAAA7xe,EAAAjY,KAAA63B,SAAAqZ,EAAAlxC,KAAA+pf,WAAAt7d,EAAAzuB,KAAAgwH,KAAAhtE,EAAAhjD,KAAA8gf,eAAA,IAAA3oe,EAAAY,QAAAqlC,EAAA+yB,GAAiNm5a,eAAArye,EAAA4xe,aAAAt0e,EAAA00e,eAAA/4c,EAAAi5c,eAAAjqb,EAAAsT,KAAA/7D,IAAA,EAAA1W,EAAAq0R,YAAAjxR,EAAAsT,GAAA09M,MAAAn0N,EAAA8of,SAAAr7S,EAAA+7S,QAAA,SAAArmf,GAAuIskF,EAAA8ha,QAAA,EAAA9ha,EAAAzqE,MAAA,UAA6Byse,OAAA,SAAAtmf,GAAoBskF,EAAA8ha,QAAA,EAAA9ha,EAAAzqE,MAAA,SAA4B0se,QAAA,SAAAvmf,GAAqB,OAAAskF,EAAAzqE,MAAA,YAA2ByQ,GAAA0iD,EAAAlwE,QAAA+hD,EAAAxgD,MAAAxC,MAAAmxE,EAAAlwE,SAAAi/D,GAAAhvB,EAAA8R,EAAAinc,iBAAAjnc,EAAAknc,qBAAoFzha,EAAAtlF,QAAAgB,EAAA4U,UAAlhEhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAyiE,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,IAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA4F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAa,SAAA57D,EAAAkzE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAAlC,EAAA6oC,GAAAjmC,EAAA5C,EAAA47D,GAAkBhtE,EAAA4U,SAAWnW,KAAA,sBAAA0/K,SAAA,EAAAnqK,EAAAY,SAAA,oBAAAjW,OAA4E6nf,UAAUnnf,KAAAoG,QAAYghf,SAAUpnf,KAAAuX,QAAY8ve,gBAAiBrnf,KAAAoG,QAAYizC,QAASr5C,KAAAqI,MAAAkN,QAAA,WAA8B,WAAU+xe,eAAgBtnf,KAAAiW,QAAAV,SAAA,IAAyBwC,OAAQove,UAAUlve,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAAq1S,KAAgBr1S,KAAA8gf,eAAAiK,YAAA5mf,EAAAskF,EAAA93E,MAAyC6K,MAAA,GAASove,QAAA,SAAAnia,GAAqBzoF,KAAA8gf,eAAAkK,WAAAvia,IAAkCoia,gBAAiBpve,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAAq1S,KAAgBr1S,KAAA8gf,eAAAmK,mBAAA,EAAAlqf,EAAAygf,YAAAr9e,EAAAskF,KAA6DjtE,MAAA,GAASqhC,QAASphC,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA8gf,eAAA3va,EAAAjkE,KAAAC,MAAAD,KAAAE,UAAAq7E,IAAA93E,IAAA,SAAA83E,GAAsF,OAAAA,EAAA52D,KAAA42D,EAAA52D,OAAA,EAAA9wB,EAAAygf,YAAAr9e,EAAAskF,EAAA52D,MAAA42D,IAAqDrqC,EAAA65F,UAAA9mE,IAAe31D,MAAA,GAASsve,cAAA,SAAAria,GAA2BzoF,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA2Q,IAAAwgE,EAAAnxE,KAAA2qf,SAAAp1e,EAAAvV,KAAA6qf,eAAA1ye,EAAAnY,KAAA4qf,QAAA5pf,EAAAhB,KAAA68C,OAAAqjB,EAAAlgE,KAAA8qf,cAA0H9qf,KAAA8gf,eAAA,IAAArpe,EAAAsB,QAAAqlC,GAAqCusc,SAAAx5a,IAAA,EAAApwE,EAAAygf,YAAAr9e,EAAAgtE,GAAAy5a,QAAAzye,EAAA0ye,eAAAt1e,IAAA,EAAAxU,EAAAygf,YAAAr9e,EAAAoR,GAAAsnC,OAAA77C,EAAA2P,IAAA,SAAA83E,GAA6G,OAAAA,EAAA52D,MAAA,EAAA9wB,EAAAygf,YAAAr9e,EAAAskF,EAAA52D,MAAA42D,IAA2Cyia,gBAAAhrb,IAAoBlgE,KAAAuc,UAAA,WAA4B,IAAA6hC,EAAAqqC,EAAAikK,UAAA/7O,IAAA,SAAA83E,GAAkC,OAAAA,EAAAq4Z,iBAAwB15d,OAAA,SAAAqhE,GAAqB,OAAAA,aAAAtkF,EAAAgnf,SAA+B1ia,EAAAq4Z,eAAAsK,WAAAhtc,OAAkCq0B,aAAA,WAAyBzyE,KAAAihf,uBAAA,IAA+Bx4Z,EAAAtlF,QAAAgB,EAAA4U,UAA7jDhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAolD,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAAsF,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,GAAqB,aAAa6I,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAA4pE,EAAA,SAAAsX,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,UAAAa,OAAA,SAAAglF,KAAmC65F,SAAA,EAAAnxG,EAAAp4D,SAAA,UAAAjW,OAAwCuof,gBAAgB7nf,KAAAiW,SAAa6xe,iBAAkB9nf,KAAA2N,QAAY+0Q,aAAa90O,QAAS5tC,KAAAuX,SAAaQ,OAAQ8ve,eAAA,WAA0Brrf,KAAA0gf,UAAc4K,gBAAA,WAA4Btrf,KAAA0gf,UAAcx6N,UAAA,WAAsBlmR,KAAA0gf,UAActvc,OAAA,WAAmBpxC,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAqrf,eAAAl6a,EAAAnxE,KAAAsrf,gBAAA/1e,EAAAvV,KAAAkmR,UAAAzuQ,EAAAzX,KAAAoxC,OAAuGpxC,KAAA8gf,eAAA,IAAAr4Z,EAAA8ia,WAAqCF,eAAAjtc,EAAAktc,gBAAAn6a,EAAA+0M,UAAA3wQ,IAAiD7T,GAAA6T,EAAA7T,GAAA0+C,QAAA7qC,EAAA6qC,QAAA4nc,OAAAzye,EAAAyye,SAAA,EAAAjnf,EAAAugf,cAAA/re,EAAAyye,SAAwE52c,OAAA35B,IAAUtT,EAAAqnf,aAAAxrf,KAAA8gf,mBAAwCr4Z,EAAAtlF,QAAAgB,EAAA4U,UAAz4BhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAg6B,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,cAAA7oC,EAAA,mBAAAxU,EAAiF,SAAA0nF,EAAAtkF,EAAAi6C,GAAmB,aAAax0C,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAxG,EAAA,SAAA0nF,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,aAAAa,OAAA,SAAAglF,KAAsC65F,SAAA,EAAAvhL,EAAAgY,SAAA,UAAAjW,OAAwC2of,aAAajof,KAAAoG,SAAa2R,OAAQmwe,sBAAA,WAAiC1rf,KAAA0gf,UAAciL,mBAAA,WAA+B3rf,KAAA0gf,UAAckL,YAAA,WAAwB5rf,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAA4rf,YAAAznf,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA2Q,IAA8C3Q,KAAA8gf,eAAA,IAAA38e,EAAA0nf,cAAwCD,YAAAnja,IAAcrqC,EAAAotc,aAAAxrf,KAAA8gf,mBAAwCr4Z,EAAAtlF,QAAAgB,EAAA4U,UAAjoBhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAwpB,SAAAkzE,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAAqG,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,GAAqB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAIj6C,EAAA4U,SAAWnW,KAAA,SAAAE,OAAqB2jf,IAAIjjf,KAAA2N,QAAY2S,QAAStgB,MAAAoG,OAAAuH,SAAqB2Y,MAAOtmB,KAAAuX,QAAY+we,SAAUtof,KAAAuX,QAAY6ve,SAAUpnf,KAAAuX,QAAYgxe,gBAAiBvof,KAAAiW,QAAAV,SAAA,GAAwBize,UAAWxof,KAAAiW,QAAAV,SAAA,GAAwBwR,SAAU/mB,KAAA2N,QAAYu9V,UAAWlrW,KAAAiW,QAAAV,SAAA,GAAwBkze,iBAAkBzof,KAAAiW,QAAAV,SAAA,GAAwBmze,iBAAkB1of,KAAAiW,QAAAV,SAAA,GAAwBoze,UAAW3of,KAAAiW,QAAAV,SAAA,GAAwBqze,kBAAmB5of,KAAAiW,QAAAV,SAAA,GAAwBsze,gBAAiB7of,KAAAiW,QAAAV,SAAA,GAAwBuze,aAAc9of,KAAAiW,QAAAV,SAAA,GAAwBwze,YAAa/of,KAAAiW,QAAAV,SAAA,GAAwB4B,OAAQnX,KAAAqI,OAAWqyV,UAAW16V,KAAAoG,SAAa2R,OAAQuI,OAAA,SAAA2kE,EAAAtkF,GAAqB,IAAAi6C,EAAAp+C,KAAA2Q,IAAA5P,EAAAf,KAAA8pB,KAA2B,cAAAqnD,EAAAgxa,WAAA15Z,QAAAtkF,GAAAi6C,EAAAm4P,cAAA9tN,EAAA1nF,IAA2Dyrf,aAAA,SAAA/ja,EAAAtkF,GAA4B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAAf,KAAA2Q,IAAAwgE,EAAAnxE,KAAA8pB,KAAAvU,EAAAvV,KAAA8jB,OAAqD2kE,IAAAtkF,GAAAskF,IAAA,KAAAA,GAAA,KAAA1nF,EAAAw1S,cAAA,IAAAn4P,EAAAo3P,MAAA/sN,EAAAlzE,EAAA44L,KAAAh9H,IAAgEs7a,aAAA,SAAAhka,EAAAtkF,GAA4B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAAf,KAAA2Q,IAAAwgE,EAAAnxE,KAAA8pB,KAAAvU,EAAAvV,KAAA8jB,OAAqD2kE,IAAAtkF,GAAAskF,IAAA,IAAAA,GAAA,IAAA1nF,EAAAw1S,cAAA,IAAAn4P,EAAAo3P,MAAAjgS,EAAA24L,IAAAzlH,GAAAtX,IAA8DrnD,KAAA,SAAA2+D,EAAAtkF,GAAoB,IAAAi6C,EAAAp+C,KAAA2Q,IAAe83E,IAAAtkF,GAAAskF,GAAA,GAAAA,GAAA,IAAArqC,EAAA1V,QAAA+/C,IAAiCqja,QAAA,SAAArja,GAAqBzoF,KAAA2Q,IAAA+7e,WAAAjka,IAAuBmia,QAAA,SAAAnia,GAAqBzoF,KAAA2Q,IAAAq6e,WAAAvia,IAAuBsja,eAAA,WAA2B/rf,KAAA8K,SAAakhf,SAAA,WAAqBhsf,KAAA8K,SAAayf,QAAA,SAAAk+D,GAAqBzoF,KAAA2Q,IAAAg8e,WAAA5rf,EAAA0nF,KAA0BimR,SAAA,SAAAjmR,GAAsB,IAAAtkF,EAAAnE,KAAA2Q,IAAe83E,EAAAtkF,EAAAymK,iBAAAzmK,EAAA0mK,mBAAyCohV,gBAAA,SAAAxja,GAA6B,IAAAtkF,EAAAnE,KAAA2Q,IAAe83E,EAAAtkF,EAAA2mK,wBAAA3mK,EAAA8mK,0BAAuDihV,gBAAA,SAAAzja,GAA6B,IAAAtkF,EAAAnE,KAAA2Q,IAAe83E,EAAAtkF,EAAA4mK,wBAAA5mK,EAAA+mK,0BAAuDihV,SAAA,SAAA1ja,GAAsB,IAAAtkF,EAAAnE,KAAA2Q,IAAe83E,EAAAtkF,EAAAyof,iBAAAzof,EAAA0of,mBAAyCT,iBAAA,SAAA3ja,GAA8B,IAAAtkF,EAAAnE,KAAA2Q,IAAe83E,EAAAtkF,EAAA2of,yBAAA3of,EAAA4of,2BAAyDV,eAAA,SAAA5ja,GAA4B,IAAAtkF,EAAAnE,KAAA2Q,IAAe83E,EAAAtkF,EAAA6of,uBAAA7of,EAAA8of,yBAAqDX,YAAA,SAAA7ja,GAAyB,IAAAtkF,EAAAnE,KAAA2Q,IAAe83E,EAAAtkF,EAAA6mK,oBAAA7mK,EAAAgnK,sBAA+CohV,WAAA,SAAA9ja,GAAwB,IAAAtkF,EAAAnE,KAAA2Q,IAAe83E,EAAAtkF,EAAA+of,mBAAA/of,EAAAgpf,qBAA6Cxye,MAAA,SAAA8tE,GAAmBzoF,KAAA2Q,IAAA66J,aAAsB4hV,UAAA3ka,KAAc4ka,qBAAsB5xe,QAAA,SAAAgtE,EAAAtkF,GAAsB,IAAAi6C,EAAAp+C,KAAA2Q,IAAA5P,EAAAf,KAAAk+V,SAAA/sR,EAAApwE,EAAAwX,MAAAhD,EAAAxU,EAAAqsf,UAAuDhvc,EAAAotH,aAAe4hV,UAAA73e,EAAAwoD,SAAA0qB,EAAAlwE,MAAA44D,KAAiC31D,MAAA,GAAS8xe,iBAAA,SAAA7ka,EAAAtkF,GAAgC,IAAAi6C,EAAAp+C,KAAA2Q,IAAA5P,EAAAf,KAAAk+V,SAAA/sR,EAAApwE,EAAAg9D,SAAAxoD,EAAAxU,EAAAqsf,UAA0Dhvc,EAAAotH,aAAe4hV,UAAA73e,EAAAwoD,SAAAoT,EAAA54D,MAAAkwE,KAAiC8ka,sBAAuB9xe,QAAA,SAAAgtE,EAAAtkF,GAAsB,IAAAi6C,EAAAp+C,KAAA2Q,IAAA5P,EAAAf,KAAAk+V,SAAA/sR,EAAApwE,EAAAg9D,SAAAxoD,EAAAxU,EAAAwX,MAAsD6lC,EAAAotH,aAAe4hV,UAAA3ka,EAAA1qB,SAAAoT,EAAA54D,MAAAhD,KAAiCiG,MAAA,GAAS0iV,SAAA,SAAAz1Q,GAAsB,IAAAtkF,EAAAnE,KAAA2Q,KAAe3Q,KAAA2a,OAAAxW,EAAAqnK,YAAA/iF,KAA+B1sE,SAAUyxe,cAAA,WAAyB,IAAA/ka,EAAAzoF,KAAA2Q,IAAAxM,EAAAnE,KAAA8rf,QAAA1tc,EAAAp+C,KAAA4qf,QAAAz5a,EAAAnxE,KAAAuqB,QAAAhV,EAAAvV,KAAA0uW,SAAAj3V,EAAAzX,KAAAisf,gBAAA9ze,EAAAnY,KAAAksf,gBAAAlrf,EAAAhB,KAAAmsf,SAAAjsb,EAAAlgE,KAAAosf,iBAAA39S,EAAAzuM,KAAAqsf,eAAAp0e,EAAAjY,KAAAssf,YAAAp7c,EAAAlxC,KAAAusf,WAA6Npof,GAAAskF,EAAAika,WAAAvof,GAAAi6C,GAAAqqC,EAAAuia,WAAA5sc,GAAA+yB,GAAAsX,EAAAkka,WAAA5rf,EAAAowE,IAAA57D,EAAAkzE,EAAAmiF,iBAAAniF,EAAAoiF,kBAAApzJ,EAAAgxE,EAAAqiF,wBAAAriF,EAAAwiF,yBAAA9yJ,EAAAswE,EAAAsiF,wBAAAtiF,EAAAyiF,yBAAAlqK,EAAAynF,EAAAmka,iBAAAnka,EAAAoka,kBAAA3sb,EAAAuoB,EAAAqka,yBAAArka,EAAAska,0BAAAt+S,EAAAhmH,EAAAuka,uBAAAvka,EAAAwka,wBAAAh1e,EAAAwwE,EAAAuiF,oBAAAviF,EAAA0iF,qBAAAj6H,EAAAu3C,EAAAyka,mBAAAzka,EAAA0ka,qBAAsc3ue,KAAA,SAAAiqE,GAAkB,IAAAzoF,KAAA2Q,IAAA,CAAc,IAAAxM,EAAAnE,KAAAye,MAAAq0C,KAAA1U,GAAA,EAAAr9C,GAAA,EAAAowE,OAAA,EAAyC,IAAI,QAAA15D,EAAAU,GAAAnY,KAAA8Y,OAAAC,aAAA9N,OAAAC,cAAyDkzC,GAAA3mC,EAAAU,EAAAssB,QAAApjC,MAAuB+8C,GAAA,GAAM,IAAAp9C,EAAAyW,EAAAlQ,MAAcvG,EAAAijP,kBAAA,YAAAjjP,EAAAijP,iBAAA94B,MAAAnrN,KAAAytf,WAAA,EAAAtpf,EAAAnD,EAAAg0M,MAAqF,MAAAvsH,GAAS1nF,GAAA,EAAAowE,EAAAsX,EAAS,QAAQ,KAAIrqC,GAAAjmC,EAAAstV,QAAAttV,EAAAstV,SAAyB,QAAQ,GAAA1kW,EAAA,MAAAowE,GAAc,IAAAjR,EAAA,IAAAuoB,EAAA/jC,IAAAvgD,GAAmBupf,qBAAA1tf,KAAA+rf,eAAA4B,eAAA3tf,KAAAgsf,WAAwEhsf,KAAA2Q,IAAAuvD,EAAW,IAAAuuI,EAAAzuM,KAAAwtf,cAAAv1e,EAAAjY,KAAA8pB,KAAAonB,EAAAlxC,KAAA4tf,eAAAn/d,EAAAzuB,KAAA2a,MAAAqoC,EAAAhjD,KAAAk+V,SAAwFzvU,EAAAyxC,EAAAsrG,aAAiB4hV,UAAA3+d,IAAYyxC,EAAAsrG,YAAAxoH,GAAAyrJ,IAAAl5L,EAAAwD,QAAArN,KAAA1L,KAAAkgE,KAAAp1D,QAAAo1D,EAAAq2O,cAAArlQ,IAAAj5B,GAAAjY,KAAAge,MAAA,SAAmGq3R,KAAA5sN,EAAA93E,IAAAuvD,MAAgB0tb,eAAA,WAA2B,IAAAnla,EAAAzoF,KAAA8jB,OAAA3f,EAAAnE,KAAAq1S,KAA8B,UAAAlkO,EAAAgxa,WAAA15Z,IAA2B,oBAAAA,EAAsB,wBAAAtkF,EAAAqxS,MAAA/sN,EAAAylH,IAAAzlH,EAAA0lH,KAA6C,mBAAAhqM,EAAAqxS,QAA4Bq4M,QAAA,SAAApla,GAAqBzoF,KAAAq1S,KAAA5sN,EAAAzoF,KAAAwe,KAAAiqE,IAAyBqla,aAAA,WAAyB,GAAA/sf,EAAAs0S,KAAA,OAAAt0S,EAAAs0S,KAAA04M,WAAAhtf,EAAAs0S,KAAA04M,WAAAt/e,QAAAC,QAAA3N,EAAAs0S,MAA6E,IAAA5sN,EAAAzoF,KAAAymf,IAAAzmf,KAAA0mf,QAAAD,GAA+B,OAAA1lf,EAAAs0S,QAAgBt0S,EAAAs0S,KAAA04M,WAAA,IAAAt/e,QAAA,SAAAtK,EAAAi6C,GAA6Cr9C,EAAAitf,cAAA,WAA2B7pf,EAAApD,EAAAs0S,MAAAt0S,EAAA8O,SAAAG,KAAAw8B,YAAA2kC,GAAApwE,EAAAs0S,KAAA04M,WAAA,KAAAhtf,EAAAitf,cAAA,MAAsF,IAAA78a,EAAAthE,SAAAC,cAAA,UAAuC/O,EAAA8O,SAAAG,KAAAC,YAAAkhE,KAAAphE,IAAA,0CAAA04E,EAAA,4BAA2G1nF,EAAAs0S,KAAA04M,YAAoBjjf,MAAA,WAAkB,IAAA29E,EAAAzoF,KAAA8tf,aAAA3pf,EAAAnE,KAAA6tf,QAAuCpla,IAAAt5E,KAAAhL,KAAa4b,QAAA,WAAoB/f,KAAA8K,SAAagG,KAAA,WAAiB,OAAO28e,WAAA,KAAehla,EAAAtlF,QAAAgB,EAAA4U,SAA95JxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAq7J/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,QAAA,KAAAoR,EAAA,mBAAAxU,EAA4E,SAAA0nF,EAAAtkF,GAAiB,aAAayF,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAASpD,EAAA4U,SAAanW,KAAA,WAAe6lF,EAAAtlF,QAAAgB,EAAA4U,UAArLhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA4M,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,IAAAr9C,EAAsF,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,GAAqB,aAAa,SAAAowE,EAAAsX,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA47D,EAAA/yB,GAAA3mC,EAAA05D,EAAApwE,GAAkBoD,EAAA4U,SAAWnW,KAAA,kBAAA0/K,SAAA,EAAA/sK,EAAAwD,YAAAjW,OAAuD68F,OAAOn8F,KAAA2N,QAAY08I,UAAWrqJ,KAAA2N,QAAY88e,UAAWzqf,KAAAoG,OAAAmP,QAAA,WAA+B,YAAWwC,OAAQokF,MAAA,WAAiB3/F,KAAA0gf,UAAc7yV,SAAA,WAAqB7tJ,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA2Q,IAAA5P,EAAAf,KAAA0c,IAAAy0D,EAAAnxE,KAAA2/F,MAAApqF,EAAAvV,KAAA6tJ,SAAA11I,EAAAnY,KAAAiuf,SAAAjtf,EAAAD,EAAAwiD,cAAA,SAAqHviD,IAAAhB,KAAA8gf,eAAA,IAAA38e,EAAA+9Z,cAA4Ch4Z,MAAAlJ,EAAA2+F,MAAAxuB,EAAA08E,SAAAt4I,GAAA6oC,EAAA8vc,iBAAA,SAAA/pf,GAA2D,IAAAi6C,EAAAvuC,SAAAgxC,iBAAA,4BAAA9/C,GAAA,EAAAowE,GAAA,EAAA57D,OAAA,EAA+E,IAAI,QAAAkC,EAAAzW,EAAAo9C,EAAAnzC,OAAAC,cAAiCnK,GAAA0W,EAAAzW,EAAAyjC,QAAApjC,MAAuBN,GAAA,GAAM,IAAAm/D,EAAAzoD,EAAAlQ,MAAc,QAAAknM,KAAAt2L,EAAA+nD,EAAA3nD,MAAAk2L,GAAAt2L,EAAAs2L,GAAA7mM,YAA2C,MAAA6gF,GAAStX,GAAA,EAAA57D,EAAAkzE,EAAS,QAAQ,KAAI1nF,GAAAC,EAAAykW,QAAAzkW,EAAAykW,SAAyB,QAAQ,GAAAt0R,EAAA,MAAA57D,GAAckzE,EAAAzqE,MAAA,iBAAA7Z,MAA6BnE,KAAA8gf,eAAAlie,iBAAA,qBAAAza,GAA+D,IAAAi6C,EAAAj6C,EAAAwI,KAAApF,MAAmBkhF,EAAAzqE,MAAA,QAAAogC,EAAA+vc,SAAA/vc,EAAAgwc,KAAAhwc,EAAAiwc,SAAAjwc,EAAAkwc,OAAAlwc,EAAAmwc,YAAkE92e,EAAAsB,QAAArN,KAAA1L,UAAA8gf,oBAA8Cr4Z,EAAAtlF,QAAAgB,EAAA4U,cAAtsC,KAAAxD,EAAA,mBAAAxU,IAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA6tC,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,KAAAr9C,EAA4F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAa,SAAA57D,EAAAkzE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAAlC,EAAA6oC,GAAAjmC,EAAA5C,EAAAxU,GAAAC,EAAAuU,EAAA47D,GAAAjR,EAA+Q,SAAA/7D,EAAAi6C,GAAqB,GAAAvyC,MAAAC,QAAA3H,GAAA,OAAAA,EAA6B,GAAA8G,OAAAC,YAAAtB,OAAAzF,GAAA,OAA3R,SAAAskF,EAAAtkF,GAAgB,IAAAi6C,KAAAr9C,GAAA,EAAAowE,GAAA,EAAA57D,OAAA,EAA4B,IAAI,QAAAkC,EAAAU,EAAAswE,EAAAx9E,OAAAC,cAAiCnK,GAAA0W,EAAAU,EAAAssB,QAAApjC,QAAA+8C,EAAA78C,KAAAkW,EAAAlQ,QAAApD,GAAAi6C,EAAAn9C,SAAAkD,GAA2DpD,GAAA,IAAO,MAAA0nF,GAAStX,GAAA,EAAA57D,EAAAkzE,EAAS,QAAQ,KAAI1nF,GAAAoX,EAAAstV,QAAAttV,EAAAstV,SAAyB,QAAQ,GAAAt0R,EAAA,MAAA57D,GAAc,OAAA6oC,EAA2DqqC,CAAAtkF,EAAAi6C,GAA8C,UAAA4F,UAAA,yDAAgF7/C,EAAA4U,SAAWw8O,UAAA,EAAAjzE,SAAA,EAAAnqK,EAAAY,SAAA,eAAA/X,EAAA+X,UAA6Dwb,UAAA,aAAAzxB,OAAA,oHAAAmgf,YAAA,QAAAC,aAAA,QAAA3pe,QAAA,6EAA6QzI,KAAA,WAAmB,OAAOzQ,UAAS+zB,YAAaowd,UAAA/se,EAAAsB,SAAoBwC,OAAQ3Y,KAAA,WAAgB5C,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA4C,MAAmC,IAAAuB,EAAAqqf,UAAAxqf,IAAAo6C,EAAA,SAAAj6C,GAAmCskF,EAAApoF,MAAA8D,EAAAu7C,WAAA,QAAA7+C,MAAA,KAAqC8P,IAAA,SAAA83E,GAAmB,gBAAAA,GAAmB,IAAAtkF,EAAA+7D,EAAAuoB,EAAA,GAAa,OAAOylH,IAAA/pM,EAAA,GAAAgqM,IAAAhqM,EAAA,IAAvC,CAA0DskF,EAAA5nF,MAAA,KAAA8P,IAAA,SAAA83E,GAA8B,OAAAA,YAAkBA,EAAAtlF,QAAAgB,EAAA4U,cAAr2C,KAAAxD,EAAA,mBAAAxU,IAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA43C,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA2F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAa,SAAA57D,EAAAkzE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAAlC,EAAA6oC,GAAAjmC,EAAA5C,EAAAxU,GAAkBoD,EAAA4U,SAAWnW,KAAA,YAAAa,OAAA,aAAoC6+K,SAAA,EAAA7qK,EAAAsB,SAAA,YAAAjW,OAA0CghB,UAASnB,UAAU4gc,aAAc//c,KAAA2N,QAAY83e,cAAezlf,KAAAuX,QAAYmue,eAAgB1lf,KAAAuX,QAAYyyS,aAAchqT,KAAA2N,QAAYs9e,WAAYjrf,KAAA2N,QAAYu9e,aAAclrf,KAAAuX,QAAYoue,WAAY3lf,KAAAiW,QAAAV,SAAA,GAAwB+0c,UAAWtqd,KAAAiW,QAAAV,SAAA,GAAwBqwe,SAAU5lf,KAAAiW,QAAAV,SAAA,IAAyBwC,OAAQixe,aAAA,SAAA/ja,EAAAtkF,GAA2B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAAf,KAAA8gf,eAAAvre,EAAAvV,KAAA2uf,UAAAl3e,EAAAzX,KAAAqpf,eAAAlxe,EAAAnY,KAAAypf,cAAAzof,EAAAhB,KAAA8jB,OAAAo8C,EAAAlgE,KAAAopf,QAA+H,IAAA7ze,EAAA,CAAOkC,IAAI,IAAAg3L,EAAAhmH,EAAQA,EAAA7gF,aAAAzD,EAAAyD,YAAA6mM,IAAA,KAAAA,GAAA,KAAA1tM,EAAAwnC,WAAA,EAAA4oC,EAAAgwa,aAAA/ic,GAA+E8vJ,IAAAO,EAAAN,IAAAntM,EAAAmtM,OAAgBjuI,GAAA/nD,MAAWs0e,aAAA,SAAAhka,EAAAtkF,GAA4B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAAf,KAAA8gf,eAAAvre,EAAAvV,KAAA2uf,UAAAl3e,EAAAzX,KAAAqpf,eAAAlxe,EAAAnY,KAAAypf,cAAAzof,EAAAhB,KAAA8jB,OAAAo8C,EAAAlgE,KAAAopf,QAA+H,IAAA7ze,EAAA,CAAOkC,IAAI,IAAAg3L,EAAAhmH,EAAQA,EAAA7gF,aAAAzD,EAAAyD,YAAA6mM,IAAA,IAAAA,GAAA,IAAA1tM,EAAAwnC,WAAA,EAAA4oC,EAAAgwa,aAAA/ic,GAA6E8vJ,IAAAltM,EAAAktM,IAAAC,IAAAM,KAAgBvuI,GAAA/nD,MAAWwK,OAAA,SAAA8lE,EAAAtkF,GAAsB,IAAAi6C,EAAAp+C,KAAA8gf,eAAA//e,EAAAf,KAAA2uf,UAAAx9a,EAAAnxE,KAAAqpf,eAAA9ze,EAAAvV,KAAAypf,cAAAhye,EAAAzX,KAAAopf,QAAqGrof,IAAAowE,IAAA/yB,EAAAwwc,UAAAnma,GAAAhxE,GAAAlC,MAA+Bguc,YAAA,SAAA96X,GAAyBzoF,KAAA8gf,eAAAwI,eAAA7ga,IAAsCyga,cAAA,SAAAzga,GAA2BzoF,KAAA8gf,eAAAyI,iBAAA9ga,IAAwCwga,aAAA,SAAAxga,GAA0BzoF,KAAA8gf,eAAAyI,iBAAA9ga,IAAwC+kO,YAAA,SAAA/kO,GAAyBzoF,KAAA8gf,eAAA0I,eAAA/ga,IAAsCgma,UAAA,SAAAhma,GAAuBzoF,KAAA8gf,eAAA+N,aAAApma,IAAoCima,YAAA,SAAAjma,GAAyBzoF,KAAA8gf,eAAAgO,eAAArma,IAAsC2ga,QAAA,SAAA3ga,GAAqBA,EAAAzoF,KAAAypf,gBAAAzpf,KAAAqpf,kBAA6CF,UAAA,SAAA1ga,GAAuBA,EAAAzoF,KAAA8gf,eAAAkB,kBAAAhif,KAAA8gf,eAAA4I,oBAA+E57B,SAAA,SAAArlY,GAAsBzoF,KAAA0gf,WAAe3ke,SAAUgze,iBAAA,WAA4B/uf,KAAA2uf,WAAA,GAAkBK,eAAA,WAA2Bhvf,KAAA2uf,WAAA,EAAA3uf,KAAAivf,yBAA+CA,sBAAA,WAAkC,IAAAxma,EAAAzoF,KAAA8gf,eAAA38e,EAAAnE,KAAAkvf,WAAA9wc,EAAAp+C,KAAA+uf,iBAAAhuf,EAAAf,KAAAgvf,eAA0Fvma,EAAAtkF,GAAA2F,QAAA,SAAA2+E,GAAyBA,EAAA7pE,iBAAA,YAAAw/B,GAAAqqC,EAAA7pE,iBAAA,UAAA7d,MAAoE0of,cAAA,WAA0B,IAAAhha,EAAAzoF,KAAA8gf,eAAA38e,EAAAnE,KAAAivf,sBAAuDxma,EAAAgha,gBAAAtlf,KAAsBklf,eAAA,WAA2Brpf,KAAA8gf,eAAAuI,kBAAqC8F,cAAA,SAAA1ma,GAA2B,IAAAtkF,EAAAnE,KAAAo+C,KAAgBqqC,EAAAgha,gBAAAn9e,WAAA,WAAwC,QAAAvL,KAAA0nF,IAAA1nF,IAAA,IAAA0nF,EAAA1nF,GAAAE,QAAAm9C,EAAA78C,KAAAR,GAAmE,QAAAowE,KAAnBsX,EAAA4ga,iBAAmB5ga,IAAAtX,IAAA,IAAAsX,EAAAtX,GAAAlwE,SAAAm9C,EAAAt+C,QAAAqxE,KAAAhtE,EAAA+qf,WAAA/9a,IAAsE,IAAIkpC,KAAA,WAAiB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAA8jB,OAAA/iB,EAAAf,KAAA2iB,OAAApN,EAAAvV,KAAAujd,YAAA9rc,EAAAzX,KAAAipf,aAAAjof,EAAAhB,KAAAkpf,cAAAhpb,EAAAlgE,KAAAwtT,YAAA/+G,EAAAzuM,KAAAyuf,UAAAx2e,EAAAjY,KAAA0uf,YAAAx9c,EAAAlxC,KAAAopf,QAAA36d,EAAAzuB,KAAAmpf,UAAAnmc,EAAAhjD,KAAA8td,SAAAnhc,EAAA3sB,KAAAypf,cAAAr9c,EAAApsC,KAAAqpf,eAAA9kf,EAAAvE,KAAAmvf,cAAApif,EAAA/M,KAAAkvf,WAAA/we,EAAA,IAAAsqE,EAAAw/M,QAAA,EAAA92N,EAAAgwa,aAAA14Z,GAAgVylH,IAAA9vJ,EAAA8vJ,IAAAC,IAAA/vJ,EAAA+vJ,MAAoBptM,GAAKwid,YAAAhuc,EAAA0ze,aAAAxxe,EAAAyxe,cAAAlof,EAAAwsT,YAAAttP,EAAAuub,UAAAhgT,EAAAigT,YAAAz2e,EAAA+pe,gBAAAvzd,EAAAk7d,eAAA3mc,IAA0HhjD,KAAA8gf,eAAA3ie,EAAAha,EAAAmyS,WAAAn4R,GAAAhG,EAAAY,QAAArN,KAAA1L,KAAAme,IAAApR,GAAAxI,EAAA4Z,GAAA7R,WAAA,WAA4F4kC,EAAAvkB,IAAAyf,KAAU,MAAMq8C,EAAAtlF,QAAAgB,EAAA4U,UAAnsGhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA0tG,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA2F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAa,SAAA57D,EAAAkzE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAAlC,EAAA6oC,GAAAjmC,EAAA5C,EAAAxU,GAAkBoD,EAAA4U,SAAWnW,KAAA,YAAAa,OAAA,aAAoC6+K,SAAA,EAAA7qK,EAAAsB,SAAA,YAAAjW,OAA0Cklf,QAAQxkf,KAAAoG,QAAYiJ,SAAUrP,KAAAuX,QAAYq0e,UAAW5rf,KAAA2N,QAAYk+e,mBAAoB7rf,KAAAuX,QAAYu0e,mBAAoB9rf,KAAAuX,SAAaQ,OAAQyse,QAAQvse,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAAq1S,KAAgBr1S,KAAA8gf,eAAAyO,WAAA,EAAAp+a,EAAAmwa,cAAAn9e,EAAAskF,KAAuDjtE,MAAA,GAAS3I,QAAA,SAAA41E,GAAqBzoF,KAAA8gf,eAAA0O,WAAA/ma,IAAkC2ma,SAAA,SAAA3ma,GAAsBzoF,KAAA8gf,eAAA2O,YAAAhna,IAAmC4ma,kBAAA,SAAA5ma,GAA+BzoF,KAAA8gf,eAAA4O,qBAAAjna,IAA4C6ma,kBAAA,SAAA7ma,GAA+BzoF,KAAA8gf,eAAA6O,qBAAAlna,KAA6C1sE,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAgof,OAAAjnf,EAAAf,KAAA6S,QAAA0C,EAAAvV,KAAAovf,SAAA33e,EAAAzX,KAAAqvf,kBAAAruf,EAAAhB,KAAAsvf,kBAAApvb,EAAA,IAAAuoB,EAAAmna,cAAAxxc,IAAA,EAAA+yB,EAAAmwa,cAAA74Z,EAAArqC,IAA4KvrC,QAAA9R,EAAAquf,SAAA75e,EAAA+5e,kBAAAtuf,EAAAquf,kBAAA53e,IAA+DyoD,EAAAuvb,YAAAl6e,GAAAvV,KAAA8gf,eAAA5gb,EAAA/nD,EAAAY,QAAArN,KAAA1L,KAAAkgE,GAAA/7D,EAAAmyS,WAAAp2O,MAAgFuoB,EAAAtlF,QAAAgB,EAAA4U,UAAhqChY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAurC,SAAAkzE,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAA0G,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,EAAA57D,GAAuB,aAAa,SAAAkC,EAAAgxE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAA4Q,EAAAV,EAAA2mC,GAAAp9C,EAAAyW,EAAA05D,GAAkBhtE,EAAA4U,SAAWnW,KAAA,iBAAA0/K,SAAA,EAAAnqK,EAAAY,SAAA,YAAAjW,OAA+DuC,MAAM7B,KAAAiW,SAAarL,UAAW5K,KAAAoG,QAAYsQ,OAAQ1W,KAAA2N,QAAY6H,OAAQxV,KAAAuX,QAAY9B,QAASzV,KAAAuX,QAAY0rS,UAAWjjT,KAAAuX,QAAY2nB,QAASl/B,KAAAoG,QAAYimf,UAAWrsf,KAAAiW,SAAaq2e,SAAUtsf,KAAAiW,SAAas2e,cAAevsf,KAAAiW,QAAAV,SAAA,GAAwB+mD,SAAUt8D,KAAA2N,SAAaoK,OAAQlW,KAAA,SAAAojF,GAAiBA,EAAAzoF,KAAAgwf,iBAAAhwf,KAAAiwf,mBAA+CC,eAAA,SAAAzna,EAAAtkF,GAA8BnE,KAAA0gf,UAAcyP,eAAA,SAAA1na,EAAAtkF,GAA8BnE,KAAA0gf,UAAc0P,eAAA,SAAA3na,EAAAtkF,GAA8BnE,KAAA0gf,UAAc2P,gBAAA,SAAA5na,GAA6BzoF,KAAA0gf,UAAcj6L,SAAA,WAAqBzmT,KAAA0gf,UAAc1ne,MAAA,SAAAyvE,GAAmBzoF,KAAA8gf,eAAAwP,SAAA7na,IAAgCxvE,OAAA,SAAAwvE,GAAoBzoF,KAAA8gf,eAAAnhE,UAAAl3V,IAAiCvuE,MAAA,SAAAuuE,GAAmBzoF,KAAA8gf,eAAAyP,SAAA9na,IAAgCona,SAAA,SAAApna,GAAsBA,EAAAzoF,KAAA8gf,eAAA0P,iBAAAxwf,KAAA8gf,eAAA2P,mBAA6EX,QAAA,SAAArna,GAAqBA,EAAAzoF,KAAA8gf,eAAA4P,gBAAA1wf,KAAA8gf,eAAA6P,kBAA2EZ,aAAA,SAAAtna,GAA0BA,EAAAzoF,KAAA8gf,eAAA8P,qBAAA5wf,KAAA8gf,eAAA+P,wBAAsF90e,SAAU+0e,OAAA,WAAkB9wf,KAAA8gf,eAAAgQ,UAA6Bz2Y,KAAA,WAAiB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAqF,KAAAtE,EAAAf,KAAAka,MAAAi3D,EAAAnxE,KAAAgZ,MAAAvB,EAAAzX,KAAAiZ,OAAAd,EAAAnY,KAAAymT,SAAAvmP,EAAAlgE,KAAA0iC,OAAA+rK,EAAAzuM,KAAA8vf,QAAA73e,EAAAjY,KAAA+vf,aAAA7+c,EAAAlxC,KAAA8/D,QAAArxC,EAAAzuB,KAAA6vf,SAAA7sc,EAAAhjD,KAAA+wf,aAAApke,EAAA3sB,KAAAmsN,QAAA//K,EAAApsC,KAAA0c,IAAAnY,EAAA,IAAAkkF,EAAAuoa,WAAA5kd,GAAmPpzB,MAAAm4D,EAAAl4D,OAAAxB,EAAAyC,MAAAnZ,EAAA0lT,SAAAtuS,EAAAuqB,QAAA,EAAAntB,EAAAise,YAAA/4Z,EAAAvoB,GAAAwwb,cAAAjiT,EAAAmiT,mBAAA34e,EAAAg5e,mBAAA,IAAA//c,EAAA4uB,QAAA5uB,IAA2IziB,EAAAlqB,EAAAisf,iBAAAjsf,EAAAksf,kBAAAzvf,EAAA+X,QAAArN,KAAA1L,KAAAuE,GAAAvE,KAAA8gf,eAAAv8e,IAAAusf,YAAAhnf,QAAA4B,KAAA0gC,EAAAyU,iBAAA,gBAAA4nC,GAAuJA,EAAAz5E,OAAA,WAAoB,OAAAzK,EAAAusf,YAAmB9tc,IAAAhjD,KAAAkxf,WAAAvke,EAAAm0d,gBAAAn0d,EAAAm0d,eAAAkP,eAAArje,EAAAm0d,eAAA38e,EAAAi6C,GAAAp+C,KAAAgwf,kBAAoHe,aAAA,WAAyB,IAAAtoa,EAAA1nF,EAAA8kD,iBAAyB,GAAA4iC,EAAA,CAAM,IAAAtkF,EAAAnE,KAAA0c,IAAA0hC,EAAAp+C,KAAA8gf,eAAqC9gf,KAAA8mD,SAAA,IAAA2hC,EAAA,SAAAA,GAAgC,OAAArqC,EAAA0yc,WAAkB9wf,KAAA8mD,SAAAU,QAAArjD,GAA2Bg8C,YAAA,EAAAsH,WAAA,EAAAC,eAAA,EAAAC,SAAA,MAA0Dqoc,eAAA,WAA2B,IAAAvna,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAAkxf,WAAA9yc,EAAAp+C,KAAAoO,SAAArN,EAAAf,KAAA8gf,eAAwE38e,EAAA6rf,eAAAjvf,GAAA,EAAAwU,EAAA4re,aAAA14Z,EAAArqC,KAA2C6xc,gBAAA,WAA4Bjwf,KAAAkxf,WAAAjB,gBAAAjwf,KAAA8gf,mBAAuDr4Z,EAAAtlF,QAAAgB,EAAA4U,SAAt+ExD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAA6/E/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA2F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAa,SAAA57D,EAAAkzE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAAlC,EAAA6oC,GAAAjmC,EAAA5C,EAAAxU,GAAkBoD,EAAA4U,SAAWnW,KAAA,WAAAa,OAAA,aAAmC6+K,SAAA,EAAA7qK,EAAAsB,SAAA,YAAAjW,OAA0Cs9C,SAAS58C,KAAA2N,QAAY+I,OAAQ1W,KAAA2N,QAAYuxB,UAAUt0B,YAAY8rM,cAAc9oK,QAAS5tC,KAAAuX,OAAAhC,QAAA,GAAsBowe,WAAY3lf,KAAAiW,QAAAV,SAAA,IAAyBwC,OAAQ6kC,QAAA,SAAAqoC,GAAoBzoF,KAAA8gf,eAAA32R,WAAA1hI,IAAkCvuE,MAAA,SAAAuuE,GAAmBzoF,KAAA8gf,eAAAyP,SAAA9na,IAAgC2na,eAAA,SAAA3na,EAAAtkF,GAA8B,IAAAi6C,EAAAp+C,KAAAq1S,KAAgB5sN,EAAA7gF,aAAAzD,EAAAyD,YAAA5H,KAAA8gf,eAAAyG,WAAA,EAAAp2a,EAAAqwa,YAAApjc,GAA+EplC,MAAAyvE,EAAAxvE,OAAAjZ,KAAA0iC,OAAAzpB,WAAqCo3e,gBAAA,SAAA5na,EAAAtkF,GAA+B,IAAAi6C,EAAAp+C,KAAAq1S,KAAgB5sN,EAAA7gF,aAAAzD,EAAAyD,YAAA5H,KAAA8gf,eAAAyG,WAAA,EAAAp2a,EAAAqwa,YAAApjc,GAA+EplC,MAAAhZ,KAAA0iC,OAAA1pB,MAAAC,OAAAwvE,MAAoCyna,eAAA,SAAAzna,EAAAtkF,GAA8B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAA0nF,EAAoBA,EAAA7gF,aAAAzD,EAAAyD,YAAA7G,IAAA,KAAAA,GAAA,KAAAf,KAAA8gf,eAAAv4c,WAAA,EAAA4oC,EAAAgwa,aAAA/ic,GAAiG8vJ,IAAAntM,EAAAotM,IAAAnuM,KAAA8jB,OAAAqqL,QAA6BgiT,eAAA,SAAA1na,EAAAtkF,GAA8B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAA0nF,EAAoBA,EAAA7gF,aAAAzD,EAAAyD,YAAA7G,IAAA,IAAAA,GAAA,IAAAf,KAAA8gf,eAAAv4c,WAAA,EAAA4oC,EAAAgwa,aAAA/ic,GAA+F8vJ,IAAAluM,KAAA8jB,OAAAoqL,IAAAC,IAAAptM,MAA6Bm5M,YAAaz+L,QAAA,SAAAgtE,GAAoBzoF,KAAA8gf,eAAAxkc,SAAAmsC,IAAgCjtE,MAAA,GAAS41B,OAAA,SAAAq3C,GAAoBzoF,KAAA8gf,eAAAqQ,UAAA1oa,IAAiC0ga,UAAA,SAAA1ga,GAAuBA,EAAAzoF,KAAA8gf,eAAAkB,kBAAAhif,KAAA8gf,eAAA4I,qBAAgF3te,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAogD,QAAAr/C,EAAAf,KAAAka,MAAA3E,EAAAvV,KAAA0iC,OAAAjrB,EAAAzX,KAAAoO,SAAApN,EAAAhB,KAAAk6M,WAAAh6I,EAAAlgE,KAAAoxC,OAAAq9J,EAAAzuM,KAAAmpf,UAAAlxe,EAAAjY,KAAAmsN,QAAAj7K,EAAA,IAAAu3C,EAAAs5Z,MAAA3jc,GAAsK1b,QAAA,EAAAyuC,EAAAqwa,YAAA/4Z,EAAAlzE,GAAAnH,UAAA,EAAA+iE,EAAAgwa,aAAA14Z,EAAAhxE,GAAAuqe,gBAAAvzS,IAAiFzuM,KAAA8gf,eAAA5vc,EAAsB,IAAIj5B,EAAA6oe,eAAAtkT,SAAAtrJ,GAA6B,MAAAu3C,GAAStkF,EAAAmyS,WAAAplQ,GAAgBnwC,GAAAmwC,EAAAq/c,SAAAxvf,GAAAC,GAAAkwC,EAAAoL,SAAAt7C,GAAAk/D,GAAAhvB,EAAAigd,UAAAjxb,GAAA/nD,EAAAY,QAAArN,KAAA1L,KAAAkxC,MAA6Eu3C,EAAAtlF,QAAAgB,EAAA4U,UAAr4DhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA45D,SAAAkzE,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAA0G,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,EAAA57D,GAAuB,aAAa,SAAAkC,EAAAgxE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAA4Q,EAAAV,EAAA2mC,GAAAp9C,EAAAyW,EAAA05D,GAAkBhtE,EAAA4U,SAAWnW,KAAA,YAAA0/K,SAAA,EAAAnqK,EAAAY,SAAA,YAAAjW,OAA0DsL,YAAWs0B,UAAU8wC,QAAQ21a,WAAY3lf,KAAAiW,QAAAV,SAAA,GAAwB21V,UAAWlrW,KAAAiW,QAAAV,SAAA,GAAwB+0c,UAAWtqd,KAAAiW,QAAAV,SAAA,GAAwBq4e,aAAc5tf,KAAAiW,QAAAV,SAAA,GAAwBs4e,gBAAiB7tf,KAAA2N,QAAY0mB,UAAWr0B,KAAAuX,QAAYke,QAASz1B,KAAAoG,QAAYsQ,OAAQ1W,KAAA2N,QAAYsB,OAAQjP,KAAAoG,QAAYpI,WAAYgC,KAAA2N,QAAYa,KAAMxO,KAAAiW,QAAAV,SAAA,GAAwBq4B,QAAS5tC,KAAAuX,OAAAhC,QAAA,IAAuBwC,OAAQ20e,eAAA,SAAAzna,EAAAtkF,GAA6B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAAf,KAAA8gf,eAAA3va,EAAAnxE,KAAAoO,SAAAqJ,EAAAzX,KAAAygf,eAAAtoe,EAAAnY,KAAAmsN,QAA2F1jI,IAAAtkF,GAAAskF,IAAA,KAAAA,GAAA,KAAA1nF,EAAAi4c,aAAA,EAAAzjc,EAAA4re,aAAA/ic,GAA2D8vJ,IAAAzlH,EAAA0lH,IAAAh9H,EAAAg9H,OAAgB12L,GAAAU,EAAAuoe,UAAiByP,eAAA,SAAA1na,EAAAtkF,GAA8B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAAf,KAAA8gf,eAAA3va,EAAAnxE,KAAAoO,SAAAqJ,EAAAzX,KAAAygf,eAAAtoe,EAAAnY,KAAAmsN,QAA2F1jI,IAAAtkF,GAAAskF,IAAA,IAAAA,GAAA,IAAA1nF,EAAAi4c,aAAA,EAAAzjc,EAAA4re,aAAA/ic,GAAyD8vJ,IAAA/8H,EAAA+8H,IAAAC,IAAA1lH,KAAgBhxE,GAAAU,EAAAuoe,UAAiB0P,eAAA,SAAA3na,EAAAtkF,GAA8B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAAf,KAAA8gf,eAAsCr4Z,IAAAtkF,GAAApD,EAAAwmf,UAAA,IAAAnpc,EAAA8ic,KAAAz4Z,EAAAzoF,KAAA0iC,OAAAzpB,UAAqDo3e,gBAAA,SAAA5na,EAAAtkF,GAA+B,IAAAi6C,EAAAp+C,KAAAq1S,KAAAt0S,EAAAf,KAAA8gf,eAAsCr4Z,IAAAtkF,GAAApD,EAAAwmf,UAAA,IAAAnpc,EAAA8ic,KAAAlhf,KAAA0iC,OAAA1pB,MAAAyvE,KAAoDjV,MAAOh4D,MAAA,EAAAC,QAAA,SAAAgtE,GAA4B,IAAAtkF,EAAAnE,KAAAq1S,KAAAj3P,EAAAp+C,KAAA8gf,eAAA//e,EAAAf,KAAA63B,SAAsDumB,KAAAkzc,SAAA,EAAA/7e,EAAA6/Q,YAAAjxR,EAAAskF,IAAA1nF,GAAAq9C,KAAAmzc,YAAAxwf,KAA4Doof,UAAA,SAAA1ga,GAAuBA,EAAAzoF,KAAA8gf,eAAAkB,kBAAAhif,KAAA8gf,eAAA4I,oBAA+Eh7I,SAAA,SAAAjmR,GAAsBA,EAAAzoF,KAAA8gf,eAAAl2U,iBAAA5qK,KAAA8gf,eAAAj2U,mBAA6EijT,SAAA,WAAqB9td,KAAA0gf,UAAc0Q,YAAA,WAAwBpxf,KAAA0gf,UAAc2Q,eAAA,SAAA5oa,GAA4BzoF,KAAA8gf,eAAA0Q,kBAAA/oa,IAAyC5wD,SAAA,SAAA4wD,GAAsBzoF,KAAA8gf,eAAAyQ,YAAA9oa,IAAmCxvD,OAAA,SAAAwvD,GAAoBzoF,KAAA8gf,eAAA2Q,UAAAhpa,IAAiCvuE,MAAA,SAAAuuE,GAAmBzoF,KAAA8gf,eAAAyP,SAAA9na,IAAgCh2E,MAAA,SAAAg2E,GAAmBzoF,KAAA0gf,UAAcl/e,UAAA,SAAAinF,GAAuBzoF,KAAA8gf,eAAA9je,aAAAjc,EAAA0nF,KAAuCz2E,IAAA,SAAAy2E,GAAiBzoF,KAAA8gf,eAAA4Q,OAAAjpa,IAA8Br3C,OAAA,SAAAq3C,GAAoBzoF,KAAA8gf,eAAAqQ,UAAA1oa,KAAkC1sE,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAoO,SAAA+iE,EAAAnxE,KAAA0iC,OAAAjrB,EAAAzX,KAAAwzE,KAAAr7D,EAAAnY,KAAAmpf,UAAAjpb,EAAAlgE,KAAA0uW,SAAAjgK,EAAAzuM,KAAA8td,SAAA71c,EAAAjY,KAAAoxf,YAAAlgd,EAAAlxC,KAAAqxf,eAAA5ie,EAAAzuB,KAAA63B,SAAAmrB,EAAAhjD,KAAAi5B,OAAAtM,EAAA3sB,KAAAka,MAAAkyB,EAAApsC,KAAAyS,MAAAlO,EAAAvE,KAAAwB,UAAAuL,EAAA/M,KAAAgS,IAAAmM,EAAAne,KAAAygf,eAAAjre,EAAAxV,KAAAmsN,QAAA9nN,EAAArE,KAAAoxC,OAAA2yE,EAAA,IAAAt7B,EAAA0ia,OAAA,IAAA1ia,EAAA+sN,MAAAp3P,EAAA8vJ,IAAA9vJ,EAAA+vJ,MAA+UzrK,OAAAyuC,EAAAqC,KAAA/7D,IAAA,EAAAlC,EAAA6/Q,YAAA3sM,EAAAhxE,GAAAuqe,gBAAA7pe,EAAAyyJ,eAAA1qG,EAAAypb,eAAAl7S,EAAA2iT,YAAAn5e,EAAAo5e,eAAAngd,EAAArZ,SAAApJ,EAAAwK,OAAA+pB,EAAA9oC,MAAAyS,IAAwJ3sB,KAAA8gf,eAAA/8X,EAAA33E,GAAA23E,KAAAy4E,UAAA,EAAAjnL,EAAAuse,aAAAr5Z,EAAAr8C,IAAA23E,EAAA2tY,OAAA3kf,GAAAg3G,EAAAotY,UAAA9sf,GAAArD,EAAA+X,QAAArN,KAAA1L,KAAA+jH,GAAA5lG,EAAA3I,EAAAkre,SAAAv8e,EAAAmyS,WAAAvyL,KAAA/mG,aAAAjc,EAAAwD,OAAqKkkF,EAAAtlF,QAAAgB,EAAA4U,SAAt0FxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAA61F/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,cAAA7oC,EAAA,mBAAAxU,EAAiF,SAAA0nF,EAAAtkF,EAAAi6C,GAAmB,aAAykBx0C,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAA,SAAAgxE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDrqC,GAAAjmC,EAAA,WAAiB,SAAAswE,IAAAtkF,GAAgB,QAAAi6C,EAAA,EAAYA,EAAAj6C,EAAAlD,OAAWm9C,IAAA,CAAK,IAAAr9C,EAAAoD,EAAAi6C,GAAWr9C,EAAAsK,WAAAtK,EAAAsK,aAAA,EAAAtK,EAAAuK,cAAA,YAAAvK,MAAAwK,UAAA,GAAA3B,OAAAwB,eAAAq9E,EAAA1nF,EAAAgJ,IAAAhJ,IAA+G,gBAAAoD,EAAAi6C,EAAAr9C,GAAuB,OAAAq9C,GAAAqqC,EAAAtkF,EAAAjE,UAAAk+C,GAAAr9C,GAAA0nF,EAAAtkF,EAAApD,GAAAoD,GAA9M,GAAyPA,EAAA4U,SAAWnW,KAAA,aAAA0/K,SAAA,EAAA7qK,EAAAsB,SAAA,YAAAjW,OAA2Dymc,MAAM/lc,KAAA2N,SAAaoK,OAAQgub,KAAA,WAAgBvpc,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAA0c,IAAAjF,EAAAzX,KAAAupc,KAAAvoc,EAAAhB,KAAAge,MAAAxT,KAAAxK,MAAAkgE,EAAA,SAAAA,GAAwF,SAAAuuI,IAAa,OAA5pC,SAAAhmH,EAAAtkF,GAAgB,KAAAskF,aAAAtkF,GAAA,UAAA6/C,UAAA,qCAA4oCjjD,CAAAf,KAAAyuM,GAA9jC,SAAAhmH,EAAAtkF,GAAgB,IAAAskF,EAAA,UAAAswB,eAAA,6DAA4F,OAAA50G,GAAA,iBAAAA,GAAA,mBAAAA,EAAAskF,EAAAtkF,EAAk9BgtE,CAAAnxE,MAAAyuM,EAAAp1F,WAAAzvG,OAAA02D,eAAAmuI,IAAAliM,MAAAvM,KAAA8E,YAAuF,OAAl/B,SAAA2jF,EAAAtkF,GAAgB,sBAAAA,GAAA,OAAAA,EAAA,UAAA6/C,UAAA,kEAAA7/C,GAA2HskF,EAAAvoF,UAAA0J,OAAA8/B,OAAAvlC,KAAAjE,WAA0CC,aAAaoH,MAAAkhF,EAAAp9E,YAAA,EAAAE,UAAA,EAAAD,cAAA,KAAmDnH,IAAAyF,OAAAwvG,eAAAxvG,OAAAwvG,eAAA3wB,EAAAtkF,GAAAskF,EAAA4wB,UAAAl1G,GAA6vBoR,CAAAk5L,EAAAvuI,GAAA/nD,EAAAs2L,IAAoB1kM,IAAA,aAAAxC,MAAA,WAAkCvG,EAAA,cAAgBq0S,KAAA5sN,EAAA93E,IAAAxM,EAAA1D,GAAA29C,EAAA4tL,QAAAhsO,OAAiC,IAAImE,EAAA8xS,WAAAx+R,GAAAxH,YAAAmuC,GAA+B,MAAAqqC,IAAU,OAAArqC,KAAYr0C,IAAA,OAAAxC,MAAA,WAA4BvG,EAAA,QAAUq0S,KAAA5sN,EAAA93E,IAAAxM,EAAA1D,GAAA29C,EAAA4tL,QAAAhsO,WAAkCyuM,EAApa,CAAyahmH,EAAAwsN,SAAAxmG,EAAA,IAAAvuI,EAAoBlgE,KAAA8gf,eAAAryS,EAAAtqM,EAAAmyS,WAAA7nG,MAAwChmH,EAAAtlF,QAAAgB,EAAA4U,UAA7oDhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAoqD,SAAAkzE,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAA0G,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,EAAA57D,GAAuB,aAAa,SAAAkC,EAAAgxE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAA4Q,EAAAV,EAAA2mC,GAAAp9C,EAAAyW,EAAA05D,GAAkBhtE,EAAA4U,SAAWtV,OAAA,aAAmBb,KAAA,sBAAA0/K,SAAA,EAAAnqK,EAAAY,SAAA,YAAAjW,OAAqEs6B,QAAQ55B,KAAAqI,MAAAkN,QAAA,WAA8B,WAAUgP,OAAQvkB,KAAA2N,OAAA4H,QAAA,2BAA8C5S,OAAQ3C,KAAA2N,QAAY0gB,MAAOruB,KAAA2N,OAAA4H,QAAA,2BAA8CwC,OAAQwM,MAAA,SAAA0gE,GAAkB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAmG,MAAAgrE,EAAAnxE,KAAA6xB,KAAmD1tB,EAAA8zI,WAAalwH,MAAAhnB,EAAA0nF,GAAAtiF,MAAAi4C,EAAAvsB,KAAA9wB,EAAAowE,MAA+Bt/C,KAAA,SAAA42D,GAAkB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAmG,MAAAgrE,EAAAnxE,KAAA+nB,MAAoD5jB,EAAA8zI,WAAalwH,MAAAhnB,EAAAowE,GAAAhrE,MAAAi4C,EAAAvsB,KAAA9wB,EAAA0nF,MAA+BtiF,MAAA,SAAAsiF,GAAmB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA+nB,MAAAopD,EAAAnxE,KAAA6xB,KAAmD1tB,EAAA8zI,WAAalwH,MAAAhnB,EAAAq9C,GAAAj4C,MAAAsiF,EAAA52D,KAAA9wB,EAAAowE,MAA+B/zC,QAAS5hB,MAAA,EAAAC,QAAA,SAAAgtE,GAA4B,IAAAtkF,EAAAnE,KAAA8gf,eAA0B38e,EAAAihD,QAAAjhD,EAAAwtf,UAAAlpa,MAA2B1sE,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAo9B,OAAA+zC,EAAAnxE,KAAA+nB,MAAAtQ,EAAAzX,KAAAmG,MAAAgS,EAAAnY,KAAA6xB,KAAAquC,EAAAlgE,KAAA8gf,eAAA,IAAAr4Z,EAAAmpa,gBAAAxzc,EAAAztC,IAAA,SAAAxM,GAA6I,SAAAoR,EAAA4re,aAAA14Z,EAAAtkF,MAAgC4jB,MAAAhnB,EAAAowE,GAAAhrE,MAAAsR,EAAAoa,KAAA9wB,EAAAoX,KAA+BnX,EAAA+X,QAAArN,KAAA1L,KAAAkgE,GAAA/7D,EAAAmyS,WAAAp2O,MAAyCuoB,EAAAtlF,QAAAgB,EAAA4U,SAA7sCxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAouC/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA2F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAa,SAAA57D,EAAAkzE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAAlC,EAAA6oC,GAAAjmC,EAAA5C,EAAAxU,GAAkBoD,EAAA4U,SAAWnW,KAAA,aAAAa,OAAA,aAAqC6+K,SAAA,EAAA7qK,EAAAsB,SAAA,YAAAjW,OAA0CzC,MAAMmD,KAAAqI,MAAAkN,QAAA,WAA8B,WAAUwqc,aAAc//c,KAAA2N,QAAY83e,cAAezlf,KAAAuX,QAAYmue,eAAgB1lf,KAAAuX,QAAYyyS,aAAchqT,KAAA2N,QAAYs9e,WAAYjrf,KAAA2N,QAAYu9e,aAAclrf,KAAAuX,QAAYoue,WAAY3lf,KAAAiW,QAAAV,SAAA,GAAwB+0c,UAAWtqd,KAAAiW,QAAAV,SAAA,GAAwBqwe,SAAU5lf,KAAAiW,QAAAV,SAAA,IAAyBwC,OAAQlb,MAAMob,QAAA,SAAAgtE,EAAAtkF,GAAsBnE,KAAA0gf,UAAclle,MAAA,GAAS+nc,YAAA,SAAA96X,GAAyBzoF,KAAA8gf,eAAAwI,eAAA7ga,IAAsCyga,cAAA,SAAAzga,GAA2BzoF,KAAA8gf,eAAAyI,iBAAA9ga,IAAwCwga,aAAA,SAAAxga,GAA0BzoF,KAAA8gf,eAAAyI,iBAAA9ga,IAAwC+kO,YAAA,SAAA/kO,GAAyBzoF,KAAA8gf,eAAA0I,eAAA/ga,IAAsCgma,UAAA,SAAAhma,GAAuBzoF,KAAA8gf,eAAA+N,aAAApma,IAAoCima,YAAA,SAAAjma,GAAyBzoF,KAAA8gf,eAAAgO,eAAArma,IAAsC2ga,QAAA,SAAA3ga,GAAqBA,EAAAzoF,KAAA8gf,eAAA2I,gBAAAzpf,KAAA8gf,eAAAuI,kBAA2EF,UAAA,SAAA1ga,GAAuBA,EAAAzoF,KAAA8gf,eAAAkB,kBAAAhif,KAAA8gf,eAAA4I,oBAA+E57B,SAAA,SAAArlY,GAAsBzoF,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAK,KAAAU,EAAAf,KAAAujd,YAAAhuc,EAAAvV,KAAAipf,aAAAxxe,EAAAzX,KAAAkpf,cAAAlof,EAAAhB,KAAAwtT,YAAAttP,EAAAlgE,KAAAyuf,UAAAhgT,EAAAzuM,KAAA0uf,YAAAz2e,EAAAjY,KAAAopf,QAAAl4c,EAAAlxC,KAAAmpf,UAAA16d,EAAAzuB,KAAA8td,SAAA9qa,EAAA,IAAAylC,EAAAruD,QAAAgkB,EAAAztC,IAAA,SAAAxM,GAA4O,SAAAgtE,EAAAgwa,aAAA14Z,GAA2BylH,IAAA/pM,EAAA+pM,IAAAC,IAAAhqM,EAAAgqM,SAAyBo1Q,YAAAxid,EAAAkof,aAAA1ze,EAAA2ze,cAAAzxe,EAAA+1S,YAAAxsT,EAAAytf,UAAAvub,EAAAwub,YAAAjgT,EAAAuzS,gBAAA9wc,EAAAy4c,eAAAl7d,IAA0HzuB,KAAA8gf,eAAA99b,EAAA7+C,EAAAmyS,WAAAtzP,GAAA7qC,EAAAY,QAAArN,KAAA1L,KAAAgjD,GAAA/qC,EAAA+qC,EAAAymc,gBAAAzmc,EAAAqmc,oBAAsG5ga,EAAAtlF,QAAAgB,EAAA4U,UAAj0DhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAw1D,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA2F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAa,SAAA57D,EAAAkzE,GAAc,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAAW7+E,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAAlC,EAAA6oC,GAAAjmC,EAAA5C,EAAAxU,GAAkBoD,EAAA4U,SAAWnW,KAAA,cAAAa,OAAA,aAAsC6+K,SAAA,EAAA7qK,EAAAsB,SAAA,YAAAjW,OAA0CzC,MAAMmD,KAAAqI,OAAW03c,aAAc//c,KAAA2N,QAAY83e,cAAezlf,KAAAuX,QAAYmue,eAAgB1lf,KAAAuX,QAAYyyS,aAAchqT,KAAA2N,QAAYg4e,WAAY3lf,KAAAiW,QAAAV,SAAA,GAAwB+0c,UAAWtqd,KAAAiW,QAAAV,SAAA,GAAwBqwe,SAAU5lf,KAAAiW,QAAAV,SAAA,IAAyBwC,OAAQlb,MAAMob,QAAA,SAAAgtE,EAAAtkF,GAAsBnE,KAAA0gf,UAAclle,MAAA,GAAS+nc,YAAA,SAAA96X,GAAyBzoF,KAAA8gf,eAAAwI,eAAA7ga,IAAsCyga,cAAA,SAAAzga,GAA2BzoF,KAAA8gf,eAAAyI,iBAAA9ga,IAAwCwga,aAAA,SAAAxga,GAA0BzoF,KAAA8gf,eAAAyI,iBAAA9ga,IAAwC+kO,YAAA,SAAA/kO,GAAyBzoF,KAAA8gf,eAAA0I,eAAA/ga,IAAsC2ga,QAAA,SAAA3ga,GAAqBA,EAAAzoF,KAAA8gf,eAAA2I,gBAAAzpf,KAAA8gf,eAAAuI,kBAA2EF,UAAA,SAAA1ga,GAAuBA,EAAAzoF,KAAA8gf,eAAAkB,kBAAAhif,KAAA8gf,eAAA4I,oBAA+E57B,SAAA,SAAArlY,GAAsBzoF,KAAA0gf,WAAe3ke,SAAUs+F,KAAA,WAAgB,IAAA5xB,EAAAzoF,KAAAq1S,KAAAlxS,EAAAnE,KAAA2Q,IAAAytC,EAAAp+C,KAAAK,KAAAU,EAAAf,KAAAujd,YAAAhuc,EAAAvV,KAAAipf,aAAAxxe,EAAAzX,KAAAkpf,cAAAlof,EAAAhB,KAAAwtT,YAAAttP,EAAAlgE,KAAAopf,QAAA36S,EAAAzuM,KAAAmpf,UAAAlxe,EAAAjY,KAAA8td,SAAA58a,EAAA,IAAAu3C,EAAAtuD,SAAAikB,EAAAztC,IAAA,SAAAxM,GAAyM,SAAAgtE,EAAAgwa,aAAA14Z,GAA2BylH,IAAA/pM,EAAA+pM,IAAAC,IAAAhqM,EAAAgqM,SAAyBo1Q,YAAAxid,EAAAkof,aAAA1ze,EAAA2ze,cAAAzxe,EAAA+1S,YAAAxsT,EAAAyof,cAAAvpb,EAAA8hb,gBAAAvzS,EAAAk7S,eAAA1xe,IAAgHjY,KAAA8gf,eAAA5vc,EAAA/sC,EAAAmyS,WAAAplQ,GAAA/4B,EAAAY,QAAArN,KAAA1L,KAAAkxC,MAA+Du3C,EAAAtlF,QAAAgB,EAAA4U,UAAriDhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA4jD,SAAAkzE,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA2F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDtX,GAAIhtE,EAAA4U,SAAWnW,KAAA,SAAA0/K,SAAA,EAAA/sK,EAAAwD,SAAA,WAAAjW,OAAsD+qJ,UAAUrqJ,MAAAoG,OAAAuH,SAAqBs8c,SAAUjqd,KAAA2N,QAAY8nW,OAAQz1W,KAAAiW,QAAAV,SAAA,GAAwB84e,cAAeruf,KAAAuX,QAAY+2e,cAAetuf,KAAAiW,SAAas4e,mBAAoBvuf,KAAAiW,UAAc8B,OAAQsyI,UAAUpyI,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA2Q,IAAqCxM,EAAA6tf,YAAAvpa,GAAArqC,IAAoB5iC,MAAA,GAASiyc,QAAA,SAAAhlY,GAAqBzoF,KAAA2hH,OAAAl5B,IAAewwR,MAAA,WAAkBj5W,KAAA0gf,UAAcoR,aAAA,SAAArpa,GAA0BzoF,KAAA0gf,UAAcqR,kBAAA,SAAAtpa,GAA+BzoF,KAAA0gf,WAAe3ke,SAAU4lG,OAAA,SAAAl5B,GAAmBzoF,KAAA8gf,eAAAmR,WAAAxpa,IAAkC4xB,KAAA,WAAiB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAA6tJ,SAAA18E,EAAAnxE,KAAA+xf,kBAAAx8e,EAAAvV,KAAA8xf,aAAAr6e,EAAAzX,KAAAkyf,cAAA/5e,EAAAnY,KAAAytd,QAAAzsd,EAAAhB,KAAA2hH,OAAAzhD,EAAAlgE,KAAAq1S,KAAA5mG,EAAAzuM,KAAA2Q,IAAAsH,EAAAjY,KAAA8gf,eAAA5vc,EAAA/sC,GAAA,EAAApD,EAAAqhf,SAAAj+e,IAAA,EAAAi6C,EAAA+ic,aAAAjhb,EAAA/7D,KAAAsqM,EAAAhgL,EAAAzuB,KAAA8gf,eAAA,IAAA5gb,EAAAiyb,cAAAjhd,GAAoQkhd,eAAezhf,IAAA89L,EAAAwqK,MAAAj5W,KAAA0c,IAAAq1e,kBAAA5gb,EAAA2gb,aAAAv8e,EAAA28e,cAAAz6e,GAAwE46e,qBAAA,SAAAluf,GAAkC8T,OAAAwW,GAAAxW,EAAA8oe,eAAAt4Z,EAAAzqE,MAAA,qBAAA7Z,IAA2Dmuf,qBAAA,SAAAnuf,GAAkC8T,OAAAwW,GAAAxW,EAAA8oe,eAAAt4Z,EAAAzqE,MAAA,qBAAA7Z,IAA2Douf,iBAAA,SAAApuf,GAA8BskF,EAAAzqE,MAAA,iBAAA7Z,IAA4Bquf,iBAAA,SAAAruf,GAA8BskF,EAAAzqE,MAAA,iBAAA7Z,IAA4Bsuf,aAAA,SAAAtuf,GAA0BskF,EAAAzqE,MAAA,aAAA7Z,IAAwBuuf,eAAA,SAAAvuf,GAA4BskF,EAAAzqE,MAAA,eAAA7Z,MAA6BnD,EAAAmX,MAAOswE,EAAAtlF,QAAAgB,EAAA4U,UAAviDhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAA8jD,SAAAkzE,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAA0G,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,EAAA57D,GAAuB,aAAa3L,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAA,SAAAgxE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDlzE,GAAIpR,EAAA4U,SAAWnW,KAAA,aAAA0/K,SAAA,EAAA7qK,EAAAsB,SAAA,WAAAjW,OAA0D+qJ,UAAUrqJ,MAAAoG,OAAAuH,SAAqB3O,OAAQgB,MAAAoG,OAAAuH,SAAqB+f,KAAM1tB,MAAAoG,OAAAuH,SAAqBwhf,WAAYnvf,MAAA2N,OAAA4J,SAAqB63e,SAAUpvf,MAAA2N,OAAA4J,SAAqB83e,WAAYrvf,KAAAqI,OAAW0xV,QAAS/5V,KAAA2N,QAAY8nW,OAAQz1W,KAAAiW,QAAAV,SAAA,GAAwB+4e,cAAetuf,KAAAiW,SAAas4e,mBAAoBvuf,KAAAiW,UAAc8B,OAAQsyI,UAAUpyI,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA2Q,IAAqCxM,EAAA6tf,YAAAvpa,GAAArqC,IAAoB5iC,MAAA,GAAShZ,OAAQiZ,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAkxB,IAAAnwB,EAAAf,KAAA2yf,UAAAp9e,EAAAvV,KAAA4yf,QAAAn7e,EAAAzX,KAAA6yf,UAAA16e,EAAAnY,KAAAq1S,KAAAr0S,EAAAhB,KAAA8yf,aAAsH3uf,EAAAw9G,QAAA,EAAAxwC,EAAA+wa,aAAA/pe,EAAAswE,IAAA,EAAAtX,EAAA+wa,aAAA/pe,EAAAimC,IAAwDu0c,UAAA5xf,EAAA6xf,QAAAr9e,EAAAs9e,UAAA7xf,EAAAyW,MAAuC+D,MAAA,GAAS0V,KAAMzV,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAwC,MAAAzB,EAAAf,KAAA2yf,UAAAp9e,EAAAvV,KAAA4yf,QAAAn7e,EAAAzX,KAAA6yf,UAAA16e,EAAAnY,KAAAq1S,KAAAr0S,EAAAhB,KAAA8yf,aAAwH3uf,EAAAw9G,QAAA,EAAAxwC,EAAA+wa,aAAA/pe,EAAAimC,IAAA,EAAA+yB,EAAA+wa,aAAA/pe,EAAAswE,IAAwDkqa,UAAA5xf,EAAA6xf,QAAAr9e,EAAAs9e,UAAA7xf,EAAAyW,MAAuC+D,MAAA,GAASm3e,UAAA,SAAAlqa,GAAuB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAwC,MAAAzB,EAAAf,KAAAkxB,IAAAigD,EAAAnxE,KAAA4yf,QAAAr9e,EAAAvV,KAAA6yf,UAAAp7e,EAAAzX,KAAA8yf,aAAsG3uf,EAAAw9G,OAAAvjE,EAAAr9C,GAAcwM,IAAAk7E,EAAAmqa,QAAAzhb,EAAA0hb,UAAAp7e,EAAAlC,MAAiCq9e,QAAA,SAAAnqa,GAAqB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAwC,MAAAzB,EAAAf,KAAAkxB,IAAAigD,EAAAnxE,KAAA2yf,UAAAp9e,EAAAvV,KAAA6yf,UAAAp7e,EAAAzX,KAAA8yf,aAAwG3uf,EAAAw9G,OAAAvjE,EAAAr9C,GAAc4xf,UAAAxhb,EAAA5jE,IAAAk7E,EAAAoqa,UAAAp7e,EAAAlC,MAAmCs9e,WAAYp3e,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAwC,MAAAzB,EAAAf,KAAAkxB,IAAAigD,EAAAnxE,KAAA2yf,UAAAp9e,EAAAvV,KAAA4yf,QAAAn7e,EAAAzX,KAAA8yf,aAAsG3uf,EAAAw9G,OAAAvjE,EAAAr9C,GAAc4xf,UAAAxhb,EAAAyhb,QAAAr9e,EAAAs9e,UAAAp7e,EAAAgxE,MAAuCjtE,MAAA,GAASy9V,MAAA,WAAkBj5W,KAAA0gf,UAAcnjJ,OAAA,SAAA90Q,GAAoBzoF,KAAA0gf,UAAcoR,aAAA,WAAyB9xf,KAAA0gf,UAAcqR,kBAAA,WAA8B/xf,KAAA0gf,UAAcwR,cAAA,WAA0Blyf,KAAA0gf,WAAe3ke,SAAU4lG,OAAA,SAAAl5B,EAAAtkF,EAAAi6C,GAAuB,IAAAr9C,EAAAq9C,EAAAu0c,UAAAxhb,EAAA/yB,EAAAw0c,QAAAr9e,EAAA6oC,EAAAy0c,UAAAp7e,EAAAzX,KAAA8gf,eAAA3oe,EAAAnY,KAAA8yf,aAAsFr7e,EAAAkqG,OAAAl5B,EAAAtkF,GAAcwuf,UAAA5xf,EAAA6xf,QAAAzhb,EAAA0hb,UAAA16e,EAAA5C,MAAuCu9e,aAAA,SAAArqa,GAA0B,IAAAtkF,EAAAnE,KAAAq1S,KAAgB,GAAA5sN,EAAA,OAAAA,EAAA93E,IAAA,SAAA83E,GAA8B,SAAAtX,EAAA+wa,aAAA/9e,EAAAskF,MAA+B4xB,KAAA,WAAiB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAA2Q,IAAA4E,EAAAvV,KAAAq1S,KAAA59R,EAAAzX,KAAA6tJ,SAAA11I,EAAAnY,KAAAu9V,OAAAv8V,EAAAhB,KAAA+xf,kBAAA7xb,EAAAlgE,KAAA8xf,aAAArjT,EAAAzuM,KAAAkyf,cAAAj6e,EAAAjY,KAAA2hH,OAAAzwE,EAAAlxC,KAAAwC,MAAAisB,EAAAzuB,KAAAkxB,IAAA8xB,EAAAhjD,KAAA2yf,UAAAhme,EAAA3sB,KAAA4yf,QAAAxmd,EAAApsC,KAAA6yf,UAAAtuf,EAAAvE,KAAA8gf,eAAA/ze,EAAA/M,KAAA8yf,aAAA30e,EAAA1G,GAAA,EAAA05D,EAAAixa,SAAA3qe,IAAA,EAAA2mC,EAAA+ic,aAAA5re,EAAAkC,KAAAtT,EAAAqR,EAAAxV,KAAA8gf,eAAA,IAAAvre,EAAAw9e,aAAA50e,GAA+Vi0e,eAAezhf,IAAAxM,EAAA80W,MAAAj5W,KAAA0c,IAAAq1e,kBAAA/wf,EAAA8wf,aAAA5xb,EAAAgyb,cAAAzjT,GAAwE8uJ,OAAAx8V,EAAAoX,GAAA+1e,iBAAA,SAAA/pf,GAA0CI,OAAAiR,GAAAjR,EAAAw8e,eAAAt4Z,EAAAzqE,MAAA,iBAAA7Z,IAAuDsuf,aAAA,SAAAtuf,GAA0BskF,EAAAzqE,MAAA,aAAA7Z,IAAwB6uf,cAAA,SAAA7uf,GAA2BskF,EAAAzqE,MAAA,cAAA7Z,IAAyBuuf,eAAA,SAAAvuf,GAA4BskF,EAAAzqE,MAAA,eAAA7Z,IAA0B8uf,iBAAA,SAAA9uf,GAA8BskF,EAAAzqE,MAAA,iBAAA7Z,MAA+B8T,GAAA,EAAAk5D,EAAA+wa,aAAA3se,EAAA27B,IAAA,EAAAigC,EAAA+wa,aAAA3se,EAAAkZ,IAAiDkke,UAAA3vc,EAAA4vc,QAAAjme,EAAAkme,UAAA9lf,EAAAq/B,QAAyCq8C,EAAAtlF,QAAAgB,EAAA4U,SAAv/FxD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAA8gG/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA2F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDtX,GAAIhtE,EAAA4U,SAAWnW,KAAA,kBAAA0/K,SAAA,EAAA/sK,EAAAwD,SAAA,WAAAjW,OAA+D+qJ,UAAUrqJ,MAAAoG,OAAAuH,SAAqBs8c,SAAUjqd,MAAAqI,MAAAsF,SAAoB8nW,OAAQz1W,KAAAiW,QAAAV,SAAA,GAAwBm6e,YAAa1vf,KAAAiW,SAAa05e,YAAa3vf,KAAAoG,QAAYo+e,QAASxkf,KAAAoG,QAAYwpf,QAAS5vf,KAAAoG,QAAYiof,cAAeruf,KAAAuX,QAAY+2e,cAAetuf,KAAAiW,SAAas4e,mBAAoBvuf,KAAAiW,UAAc8B,OAAQsyI,UAAUpyI,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA2hH,OAAwCx9G,EAAA6tf,YAAAvpa,GAAAzoF,KAAA2Q,KAAAytC,KAA+B5iC,MAAA,GAASiyc,QAAA,WAAoBztd,KAAA2hH,UAAcqmY,QAASvse,QAAA,SAAAgtE,IAAoB,EAAAzoF,KAAAqzf,gBAAA5qa,IAA2BjtE,MAAA,GAAS43e,QAAS33e,QAAA,SAAAgtE,IAAoB,EAAAzoF,KAAAszf,cAAA7qa,IAAyBjtE,MAAA,GAAS03e,WAAA,WAAuBlzf,KAAA0gf,UAAcyS,YAAa33e,MAAA,EAAAC,QAAA,WAA2Bzb,KAAA0gf,WAAemR,aAAA,SAAAppa,GAA0BzoF,KAAA8gf,gBAAA9gf,KAAA8gf,eAAAyS,gBAAA9qa,IAA4Dqpa,aAAA,SAAArpa,GAA0BzoF,KAAA8gf,iBAAAr4Z,EAAAzoF,KAAA8gf,eAAA0S,qBAAAxzf,KAAA8gf,eAAA2S,wBAA4G1B,kBAAA,SAAAtpa,GAA+BzoF,KAAA8gf,iBAAAr4Z,EAAAzoF,KAAA8gf,eAAA4S,6BAAA1zf,KAAA8gf,eAAA6S,gCAA4HzB,cAAA,WAA0Blyf,KAAA0gf,WAAe3ke,SAAUu3e,aAAA,SAAA7qa,GAAyB,IAAAtkF,EAAAnE,KAAA8gf,eAAA//e,EAAAf,KAAAytd,QAAAt8Y,EAAAnxE,KAAAmzf,WAAA59e,EAAAvV,KAAAq1S,KAAuElxS,EAAAmvf,aAAAvyf,GAAA,EAAAq9C,EAAA+ic,aAAA5re,EAAAkzE,EAAA3kE,QAAA2kE,EAAA9lE,OAAAwuD,IAA2Dkib,eAAA,SAAA5qa,GAA4B,IAAAtkF,EAAAnE,KAAA8gf,eAAA//e,EAAAf,KAAAytd,QAAAt8Y,EAAAnxE,KAAAmzf,WAAA59e,EAAAvV,KAAAq1S,KAAuElxS,EAAAkvf,eAAAtyf,GAAA,EAAAq9C,EAAAkjc,cAAA/re,EAAAkzE,GAAAtX,IAA8CwwC,OAAA,WAAmB,IAAAl5B,EAAAzoF,KAAA8gf,eAAA38e,EAAAnE,KAAAytd,QAAArva,EAAAp+C,KAAAkzf,WAAAnyf,EAAAf,KAAAmzf,WAAAhib,EAAAnxE,KAAAozf,OAAA79e,EAAAvV,KAAAgof,OAAAvwe,EAAAzX,KAAAszf,aAAAn7e,EAAAnY,KAAAqzf,eAAmJlib,EAAA15D,EAAA05D,GAAA57D,EAAA4C,EAAA5C,GAAAkzE,EAAAk5B,OAAAx9G,GAA0B+uf,WAAA90c,EAAA+0c,WAAApyf,KAA4Bs5G,KAAA,WAAiB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAA2Q,IAAAwgE,EAAAnxE,KAAAq1S,KAAA9/R,EAAAvV,KAAA2hH,OAAAlqG,EAAAzX,KAAA6xf,aAAA15e,EAAAnY,KAAA8xf,aAAA9wf,EAAAhB,KAAA+xf,kBAAA7xb,EAAAlgE,KAAAkyf,cAAAzjT,EAAAzuM,KAAA6tJ,SAAA51I,EAAAjY,KAAA8gf,eAAA5vc,EAAAu9J,GAAA,EAAA1tM,EAAAqhf,SAAA3zS,IAAA,EAAArwJ,EAAA+ic,aAAAhwa,EAAAs9H,KAAAtqM,EAAAsqB,EAAAzuB,KAAA8gf,eAAA,IAAA3va,EAAAyib,YAAA1id,GAAuQuhd,aAAA,SAAAtuf,GAAyBskF,EAAAzqE,MAAA,aAAA7Z,IAAwB6uf,cAAA,SAAA7uf,GAA2BskF,EAAAzqE,MAAA,cAAA7Z,IAAyB8uf,iBAAA,SAAA9uf,GAA8BskF,EAAAzqE,MAAA,iBAAA7Z,IAA4B+pf,iBAAA,SAAA/pf,GAA8B8T,OAAAwW,GAAAxW,EAAA8oe,eAAAt4Z,EAAAzqE,MAAA,iBAAA7Z,IAAuD0tf,aAAAp6e,EAAA26e,eAA+Bzhf,IAAAxM,EAAA80W,MAAAj5W,KAAA0c,IAAAq1e,kBAAA/wf,EAAA8wf,aAAA35e,EAAA+5e,cAAAhyb,KAA2E3qD,OAAMkzE,EAAAtlF,QAAAgB,EAAA4U,UAA1+EhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAigF,SAAAkzE,EAAAtkF,EAAAi6C,IAAiB,SAAAr9C,GAAa,IAAAowE,EAAA57D,EAAAkC,EAAUU,IAA0G,SAAAswE,EAAAtkF,EAAAi6C,EAAA+yB,EAAA57D,GAAuB,aAAa3L,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAkQ,EAAA,SAAAgxE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDlzE,GAAIpR,EAAA4U,SAAWnW,KAAA,aAAA0/K,SAAA,EAAA7qK,EAAAsB,SAAA,WAAAjW,OAA0D+qJ,UAAUrqJ,MAAAoG,OAAAuH,SAAqB3O,OAAQgB,MAAAoG,OAAAuH,SAAqB+f,KAAM1tB,MAAAoG,OAAAuH,SAAqB8nW,OAAQz1W,KAAAiW,QAAAV,SAAA,GAAwBwkV,QAAS/5V,KAAA2N,QAAY0gf,cAAeruf,KAAAuX,QAAY+2e,cAAetuf,KAAAiW,SAAas4e,mBAAoBvuf,KAAAiW,UAAc8B,OAAQsyI,UAAUpyI,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA2Q,IAAqCxM,EAAA6tf,YAAAvpa,GAAArqC,IAAoB5iC,MAAA,GAAShZ,OAAQiZ,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAkxB,IAAAnwB,EAAAf,KAAAq1S,KAAiDlxS,EAAAw9G,QAAA,EAAAxwC,EAAA+wa,aAAAnhf,EAAA0nF,IAAA,EAAAtX,EAAA+wa,aAAAnhf,EAAAq9C,KAAwD5iC,MAAA,GAAS0V,KAAMzV,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAwC,MAAAzB,EAAAf,KAAAq1S,KAAmDlxS,EAAAw9G,QAAA,EAAAxwC,EAAA+wa,aAAAnhf,EAAAq9C,IAAA,EAAA+yB,EAAA+wa,aAAAnhf,EAAA0nF,KAAwDjtE,MAAA,GAASy9V,MAAA,WAAkBj5W,KAAA0gf,UAAcnjJ,OAAA,SAAA90Q,GAAoBzoF,KAAA8gf,eAAA+S,UAAA9yf,EAAA0nF,KAAoCopa,aAAA,SAAAppa,GAA0BzoF,KAAA8gf,gBAAA9gf,KAAA8gf,eAAAyS,gBAAA9qa,IAA4Dqpa,aAAA,SAAArpa,GAA0BzoF,KAAA8gf,iBAAAr4Z,EAAAzoF,KAAA8gf,eAAA0S,qBAAAxzf,KAAA8gf,eAAA2S,wBAA4G1B,kBAAA,WAA8B/xf,KAAA0gf,UAAcwR,cAAA,WAA0Blyf,KAAA0gf,WAAe3ke,SAAU4lG,OAAA,SAAAl5B,EAAAtkF,GAAqBnE,KAAA8gf,eAAAn/X,OAAAl5B,EAAAtkF,IAAgCk2G,KAAA,WAAiB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAA2Q,IAAA4E,EAAAvV,KAAAq1S,KAAA59R,EAAAzX,KAAA6tJ,SAAA11I,EAAAnY,KAAAu9V,OAAAv8V,EAAAhB,KAAA6xf,aAAA3xb,EAAAlgE,KAAA+xf,kBAAAtjT,EAAAzuM,KAAA8xf,aAAA75e,EAAAjY,KAAAkyf,cAAAhhd,EAAAlxC,KAAA2hH,OAAAlzF,EAAAzuB,KAAAwC,MAAAwgD,EAAAhjD,KAAAkxB,IAAAvE,EAAA3sB,KAAA8gf,eAAA10c,EAAA30B,GAAA,EAAA05D,EAAAixa,SAAA3qe,IAAA,EAAA2mC,EAAA+ic,aAAA5re,EAAAkC,KAAAtT,EAAAI,EAAAvE,KAAA8gf,eAAA,IAAAvre,EAAAu+e,aAAA1nd,GAA8Sgmd,eAAezhf,IAAAxM,EAAA80W,MAAAj5W,KAAA0c,IAAAq1e,kBAAA7xb,EAAA4xb,aAAArjT,EAAAyjT,cAAAj6e,GAAwEslV,OAAAx8V,EAAAoX,GAAA05e,aAAA7wf,EAAAktf,iBAAA,SAAA/pf,GAAyDwoB,OAAApoB,GAAAooB,EAAAo0d,eAAAt4Z,EAAAzqE,MAAA,iBAAA7Z,IAAuDsuf,aAAA,SAAAtuf,GAA0BskF,EAAAzqE,MAAA,aAAA7Z,IAAwB6uf,cAAA,SAAA7uf,GAA2BskF,EAAAzqE,MAAA,cAAA7Z,IAAyBuuf,eAAA,SAAAvuf,GAA4BskF,EAAAzqE,MAAA,eAAA7Z,IAA0B8uf,iBAAA,SAAA9uf,GAA8BskF,EAAAzqE,MAAA,iBAAA7Z,MAA+B+sC,GAAA,EAAAigC,EAAAixa,SAAA3zd,IAAA,EAAA2vB,EAAA+ic,aAAA5re,EAAAkZ,MAAA,EAAA0iD,EAAAixa,SAAAp/b,IAAA,EAAA5E,EAAA+ic,aAAA5re,EAAAytC,SAAyFylC,EAAAtlF,QAAAgB,EAAA4U,SAAzpExD,GAAAkzE,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA3mC,EAAA,mBAAA05D,EAAAh5D,GAAAg5D,EAAA5kE,MAAApI,EAAAoR,GAAA47D,KAAAsX,EAAAtlF,QAAAsU,KAAgrE/L,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,EAAAi6C,GAAiB,IAAAr9C,EAAAowE,EAAA57D,EAAyB47D,GAAAsX,EAAAtkF,EAAAi6C,EAAA,GAAAA,EAAA,GAAAA,EAAA,cAAA7oC,EAAA,mBAAAxU,EAA2F,SAAA0nF,EAAAtkF,EAAAi6C,EAAAr9C,EAAAowE,GAAuB,aAAavnE,OAAAwB,eAAAjH,EAAA,cAAsCoD,OAAA,IAAW,IAAAgO,EAAA,SAAAkzE,GAAkB,OAAAA,KAAArX,WAAAqX,GAA0B1vE,QAAA0vE,GAA5C,CAAuDtX,GAAIhtE,EAAA4U,SAAWnW,KAAA,aAAA0/K,SAAA,EAAA/sK,EAAAwD,SAAA,WAAAjW,OAA0D+qJ,UAAUrqJ,MAAAoG,OAAAuH,SAAqB3O,OAAQgB,MAAAoG,OAAAuH,SAAqB+f,KAAM1tB,MAAAoG,OAAAuH,SAAqB8nW,OAAQz1W,KAAAiW,QAAAV,SAAA,GAAwB84e,cAAeruf,KAAAuX,QAAY+2e,cAAetuf,KAAAiW,SAAas4e,mBAAoBvuf,KAAAiW,UAAc8B,OAAQsyI,UAAUpyI,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAA2Q,IAAqCxM,EAAA6tf,YAAAvpa,GAAArqC,IAAoB5iC,MAAA,GAAShZ,OAAQiZ,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAkxB,IAAAigD,EAAAnxE,KAAAq1S,KAAiDlxS,EAAAw9G,QAAA,EAAA5gH,EAAAmhf,aAAA/wa,EAAAsX,IAAA,EAAA1nF,EAAAmhf,aAAA/wa,EAAA/yB,KAAwD5iC,MAAA,GAAS0V,KAAMzV,QAAA,SAAAgtE,GAAoB,IAAAtkF,EAAAnE,KAAA8gf,eAAA1ic,EAAAp+C,KAAAwC,MAAA2uE,EAAAnxE,KAAAq1S,KAAmDlxS,EAAAw9G,QAAA,EAAA5gH,EAAAmhf,aAAA/wa,EAAA/yB,IAAA,EAAAr9C,EAAAmhf,aAAA/wa,EAAAsX,KAAwDjtE,MAAA,GAASy9V,MAAA,WAAkBj5W,KAAA0gf,UAAcoR,aAAA,SAAArpa,GAA0BzoF,KAAA0gf,UAAcqR,kBAAA,SAAAtpa,GAA+BzoF,KAAA0gf,UAAcwR,cAAA,WAA0Blyf,KAAA0gf,WAAe3ke,SAAU4lG,OAAA,SAAAl5B,EAAAtkF,GAAqBnE,KAAA8gf,eAAAn/X,OAAAl5B,EAAAtkF,IAAgCk2G,KAAA,WAAiB,IAAA5xB,EAAAzoF,KAAAmE,EAAAnE,KAAA2Q,IAAAwgE,EAAAnxE,KAAAq1S,KAAA9/R,EAAAvV,KAAA6tJ,SAAAp2I,EAAAzX,KAAA+xf,kBAAA55e,EAAAnY,KAAA8xf,aAAA9wf,EAAAhB,KAAAkyf,cAAAhyb,EAAAlgE,KAAA2hH,OAAA8sF,EAAAzuM,KAAAwC,MAAAyV,EAAAjY,KAAAkxB,IAAAggB,EAAAlxC,KAAA8gf,eAAAryd,EAAAlZ,GAAA,EAAAxU,EAAAqhf,SAAA7se,IAAA,EAAA6oC,EAAA+ic,aAAAhwa,EAAA57D,KAAApR,EAAA6+C,EAAAhjD,KAAA8gf,eAAA,IAAA3va,EAAA4ib,aAAAtle,GAA4Q2je,eAAezhf,IAAAxM,EAAA80W,MAAAj5W,KAAA0c,IAAAq1e,kBAAAt6e,EAAAq6e,aAAA35e,EAAA+5e,cAAAlxf,GAAwEktf,iBAAA,SAAA/pf,GAA8B+sC,OAAA8R,GAAA9R,EAAA6vc,eAAAt4Z,EAAAzqE,MAAA,iBAAA7Z,IAAuDsuf,aAAA,SAAAtuf,GAA0BskF,EAAAzqE,MAAA,aAAA7Z,IAAwB6uf,cAAA,SAAA7uf,GAA2BskF,EAAAzqE,MAAA,cAAA7Z,IAAyBuuf,eAAA,SAAAvuf,GAA4BskF,EAAAzqE,MAAA,eAAA7Z,IAA0B8uf,iBAAA,SAAA9uf,GAA8BskF,EAAAzqE,MAAA,iBAAA7Z,MAA+B+7D,GAAA,EAAAn/D,EAAAqhf,SAAA3zS,IAAA,EAAArwJ,EAAA+ic,aAAAhwa,EAAAs9H,MAAA,EAAA1tM,EAAAqhf,SAAAnqe,IAAA,EAAAmmC,EAAA+ic,aAAAhwa,EAAAl5D,SAAyFwwE,EAAAtlF,QAAAgB,EAAA4U,UAA51DhY,EAAAwL,MAAApI,EAAAgtE,GAAApwE,KAAA0nF,EAAAtlF,QAAAoS,IAAm3D,SAAAkzE,EAAAtkF,EAAAi6C,GAAgCqqC,EAAAtlF,QAAc,WAAkgC,SAAAgB,EAAAskF,GAAc,QAAAtkF,KAAApD,EAAA,EAAiBA,EAAA0nF,EAAAxnF,OAAA,EAAaF,IAAA,CAAK,IAAAowE,EAAA/yB,EAAAqqC,EAAA1nF,GAAA0nF,EAAA1nF,EAAA,IAAqBowE,KAAAlwE,OAAA,IAAAkD,IAAA4Q,OAAAo8D,IAA+B,OAAAhtE,EAAS,SAAAi6C,EAAAqqC,EAAAtkF,GAAgB,IAAAi6C,KAAS,KAAAqqC,GAAAtkF,GAAAskF,aAAA4sN,KAAAG,OAAArxS,aAAAkxS,KAAAG,OAAA,YAAyE,IAAAz0S,EAAAowE,EAAA57D,EAAAkC,EAAAU,EAAAnX,EAAAk/D,EAAA,SAAAuoB,GAA8B,WAAAA,OAAiBgmH,EAAA,SAAAhmH,GAAe,SAAAA,EAAA,EAAAA,KAAiBxwE,EAAA,SAAAwwE,GAAe,OAAAA,KAAWv3C,EAAA,EAAAziB,EAAA,EAAS,YAAAtqB,EAAA,CAA8C,IAAA6+C,EAAAx9B,WAAAijE,EAAA0lH,KAAAxhL,EAAAnH,WAAArhB,EAAAgqM,KAAA/hK,EAAA5mB,WAAAijE,EAAAylH,KAAA3pM,EAAAihB,WAAArhB,EAAA+pM,KAAoF,IAAA3pM,EAAA6nC,GAAA5mB,WAAAjhB,EAAA6nC,GAAA,KAAAA,EAAA,IAAAA,EAAA5mB,WAAA,IAAA4mB,MAAA7nC,GAAAihB,WAAA4mB,EAAA7nC,GAAA,KAAAA,EAAA,IAAAA,EAAAihB,WAAA,IAAAjhB,IAAAvD,EAAA,EAAA2rB,GAAAq2B,GAAAjiD,EAAA,EAAAowE,EAAA/kC,EAAA7nC,MAAA6nC,GAAArrC,EAAAgH,KAAAgwB,GAAA,EAAAo5C,EAAAnuB,EAAAr2B,IAAA5rB,EAAAgH,KAAAisf,MAAArne,EAAAq2B,IAAAz+C,EAAA6nC,IAAA+kC,GAAAxkD,EAAAq2B,GAAAj7C,KAAA2jC,IAAA3qC,IAAA,GAAAC,MAAAD,EAAAgH,KAAAgwB,GAAA,GAAA5f,GAAA5C,EAAA47D,EAAA,GAAAppE,KAAA0jC,IAAAzqC,GAAAorC,EAAA30B,EAAAlC,EAAAxN,KAAA2jC,IAAA1qC,GAAAgiD,EAAA9R,EAAA,EAAiRA,EAAA,GAAKA,IAAAkN,EAAA78C,KAAA,IAAA8zS,KAAAG,MAAAppQ,EAAA8zB,EAAAzxC,GAAAtW,EAAAs2L,EAAAhgL,GAAAlqB,EAAA0T,EAAAwW,GAAAu0B,EAAAkd,EAAAzxC,GAAAhX,EAAAg3L,EAAAhgL,GAAA9B,EAAA1U,EAAAwW,QAAA,KAA8E,OAAA2vB,OAAte,IAAAA,UAA+e,OAAryD,SAAAqqC,EAAArqC,GAAgB,IAAIi3P,KAAK,MAAA5sN,GAAS,MAAAppB,MAAA,sCAAkD,IAAAt+D,EAAAoD,EAAAskF,GAAAtX,EAAA,IAAAkkO,KAAAl7Q,SAAAp5B,EAAAq9C,GAAoC,OAAA+yB,EAAAvyD,iBAAA,wBAAkD5e,KAAA2uf,WAAA3uf,KAAAypf,kBAAqCt4a,EAAA8ib,aAAAxra,EAAAtX,EAAA+ib,eAAA/ib,EAAAs4a,cAAA,WAA+D,IAAAhha,EAAAzoF,KAAW,GAAAyoF,EAAA93E,IAAA,CAAU83E,EAAA4ga,iBAAmB,QAAAjrc,EAAA,EAAYA,EAAAqqC,EAAAwra,aAAAhzf,OAAwBm9C,IAAA,CAAK,IAAAr9C,EAAA,IAAAs0S,KAAA81M,OAAA1ia,EAAAwra,aAAA71c,IAAyCo1B,KAAA,IAAA6hO,KAAAq2D,KAAA,oEAAAr2D,KAAA6rM,KAAA,QAAAt2U,gBAAA,EAAAwmV,aAAA,IAA4Irwf,EAAA6d,iBAAA,qBAAwC6pE,EAAAwra,aAAAhzf,OAAA,EAAwB,QAAAm9C,EAAA,EAAYA,EAAAqqC,EAAAyra,YAAAjzf,OAAuBm9C,IAAAqqC,EAAAwra,aAAA1yf,KAAAknF,EAAAyra,YAAA91c,GAAA8jc,eAAwD,IAAAnhf,EAAAoD,EAAAskF,EAAAwra,cAAwBxra,EAAA0ra,QAAApzf,KAAaA,EAAA6L,MAAAwxC,EAAAqqC,EAAAyra,YAAA3yf,KAAAR,GAAA0nF,EAAA93E,IAAA2lS,WAAAv1S,IAAuD0nF,EAAAkma,WAAA,GAAex9a,EAAAk4a,eAAA,WAA6Brpf,KAAA2uf,WAAA,EAAkB,QAAAlma,EAAA,EAAYA,EAAAzoF,KAAAk0f,YAAAjzf,OAA0BwnF,IAAAzoF,KAAA2Q,IAAAyjf,cAAAp0f,KAAAk0f,YAAAzra,IAAAzoF,KAAAk0f,YAAAzra,GAAA,KAAyEzoF,KAAAk0f,YAAAjzf,OAAA,GAA0BkwE,EAAAkjb,QAAA,WAAsB,OAAAtzf,GAASowE,GAA7gC/yB,IAA40D,SAAAqqC,EAAAtkF,EAAAi6C,GAAgCqqC,EAAAtlF,QAAc,WAA8N,IAAAgB,EAAA,WAAiB,IAAAskF,EAAA,SAAAA,GAAkB,IAAAtkF,GAAO2M,QAAA+iS,QAAAprN,GAAmBzoF,KAAAiI,IAAA,EAAAjI,KAAAgE,IAAA,SAAAykF,GAAgC,OAAAtkF,EAAAskF,IAAYzoF,KAAAglD,IAAA,SAAAyjC,EAAArqC,GAAwBj6C,EAAAskF,GAAArqC,IAASqqC,EAAAvoF,WAAao0f,aAAA,SAAA7ra,EAAAtkF,GAA2B,KAAAskF,EAAA,GAAAtkF,EAAA,IAAgB,IAAAi6C,EAAAp+C,KAAAe,EAAAq9C,EAAAp6C,IAAA,WAAAmtE,EAAA/yB,EAAAp6C,IAAA,QAA8C,GAAAmtE,EAAAsX,KAAAtX,EAAAsX,OAAAtX,EAAAsX,GAAAtkF,KAAAgtE,EAAAsX,GAAAtkF,GAAA,GAAAgtE,EAAAsX,GAAAtkF,IAAAW,UAAA7D,OAAA,IAAA6D,UAAA,GAAAs5C,EAAA4G,IAAA,OAAAmsB,GAAA/yB,EAAAn2C,IAAAkpE,EAAAsX,GAAAtkF,GAAA,OAAApD,EAAAiD,IAAA,QAAA+yK,UAAA,IAAAh2K,EAAAiD,IAAA,SAAAjD,EAAAiD,IAAA,gBAAAo6C,EAAAwrc,YAAuM3hf,IAAAkpE,EAAAsX,GAAAtkF,GAAA2M,KAAAqgE,IAAmB,GAAKpwE,EAAAwzf,UAAA9ra,EAAAtkF,EAAAgtE,EAAAsX,GAAAtkF,IAAA,KAA6Bylf,WAAA,SAAAnha,EAAAtkF,GAA0B,IAAApD,EAAAf,KAAAgE,IAAA,WAAAmtE,KAAA57D,EAAAkzE,EAAA33E,KAAA2G,EAAAlC,EAAAtU,OAAuD,GAAAF,EAAAqkD,QAAAplD,KAAAiI,IAAAwgF,EAAAxgF,IAAAlH,EAAAiD,IAAA,WAAAjD,EAAAiD,IAAA,UAAAu4C,OAAAksC,EAAAxgF,KAAA,MAAA9D,MAAuF,QAAAgU,KAAA5C,EAAA,YAAA4C,EAAA,QAAAnX,KAAAuU,EAAA4C,QAAA,IAAAnX,GAAAD,EAAAwzf,UAAAp8e,EAAAnX,EAAAuU,EAAA4C,GAAAnX,IAAA,QAAuF,KAAUyW,KAAI,CAAE,IAAAyoD,EAAA3qD,EAAAkC,GAAW1W,EAAAwzf,UAAAr0b,EAAA77D,EAAA67D,EAAA37D,EAAA27D,EAAA39D,OAAA,GAAA4uE,EAAAjR,EAAA77D,KAAA8sE,EAAAjR,EAAA77D,OAAA8sE,EAAAjR,EAAA77D,GAAA67D,EAAA37D,KAAA4sE,EAAAjR,EAAA77D,GAAA67D,EAAA37D,GAAA,GAAA4sE,EAAAjR,EAAA77D,GAAA67D,EAAA37D,GAAA27D,EAAA39D,MAAqGxB,EAAAyzf,WAAAx0f,KAAAglD,IAAA,OAAAzvC,IAAgCk/e,cAAA,WAA0B,IAAAtwf,EAAAnE,KAAAgE,IAAA,QAAAo6C,KAAgC,QAAAr9C,KAAAoD,EAAA,YAAApD,EAAA,QAAAowE,KAAAhtE,EAAApD,QAAA,IAAAowE,GAAA/yB,EAAA78C,MAAmE8C,EAAAu1E,SAAA74E,EAAA,IAAAwD,EAAAq1E,SAAAzI,EAAA,IAAA5uE,MAAA4B,EAAApD,GAAAowE,KAAkD,OAAOlpE,IAA5JjI,KAA4JiI,IAAA6I,KAAAstC,IAAkBs2c,sBAAA,SAAAjsa,GAAmC,IAAAtkF,EAAAnE,KAAAgE,IAAA,WAAAo6C,EAAAj6C,EAAAH,IAAA,SAAAjD,EAAAoD,EAAAH,IAAA,UAAAmtE,KAAiE57D,EAAAxN,KAAAkwC,MAAA,IAAAlwC,KAAAstK,SAAA,GAAmClkG,EAAAlpE,IAAAsN,EAAQ,QAAAkC,KAAagxE,KAAIhxE,EAAAlW,MAAS8C,EAAA0D,KAAAkwC,MAAAlwC,KAAAstK,SAAAj3H,EAAA,GAAA75C,EAAAwD,KAAAkwC,MAAAlwC,KAAAstK,SAAAt0K,EAAA,GAAAwB,MAAAwF,KAAAkwC,MAAAlwC,KAAAstK,SAAA9/J,EAAA,KAAsG47D,EAAArgE,KAAA2G,EAAAzX,KAAA4pf,WAAAz4a,KAA8B,IAAAhtE,EAAA,SAAAskF,GAAkBzoF,KAAAggD,OAAAyoC,EAAc,IAAAtkF,GAAOsiC,QAAA,KAAAkud,SAAA,KAAAC,YAAA,KAAA/ud,IAAA,MAAsD7lC,KAAAgE,IAAA,SAAAykF,GAAqB,OAAAtkF,EAAAskF,IAAYzoF,KAAAglD,IAAA,SAAAyjC,EAAArqC,GAAwBj6C,EAAAskF,GAAArqC,GAAOp+C,KAAAwe,QAAcra,EAAAjE,WAAase,KAAA,WAAgB,IAAAiqE,EAAAtkF,EAAAi6C,EAAAp+C,KAAAe,EAAAq9C,EAAA4B,OAAAmxB,EAAApwE,EAAAmZ,OAAA,SAAA3E,EAAAxU,EAAAqN,SAAAqJ,EAAA1W,EAAA2hC,QAAA,GAAAvqB,GAAApX,EAAA6hC,SAAA/yB,SAAAC,cAAA,OAAA9O,EAAA,GAA2Ho9C,EAAAy2c,wBAAAt/e,EAAAzV,QAAA,QAAAkB,GAAA,OAAAyW,EAAA,MAA4DzW,GAAA,UAAAyW,EAAA,MAAqBlC,EAAAzV,QAAA,QAAAkB,GAAA,QAAAyW,EAAA,MAAqCzW,GAAA,SAAAyW,EAAA,OAAoBgxE,EAAA54E,SAAAC,cAAA,QAAAyI,MAAAyzB,QAAA,uCAAuFhrC,EAAA,uIAAyIynF,EAAA7zC,UAAA,oEAA8Eu8B,EAAA,QAAAh5D,EAAAI,MAAAyzB,QAAA,6GAAwI7nC,EAAA0L,SAAAC,cAAA,QAAAyI,MAAAyzB,SAAA,+GAA0IoS,EAAA02c,sBAAA,MAAmD1uf,KAAA,IAAAqiF,EAAAx4E,YAAAkI,GAAAswE,EAAAx4E,YAAA9L,GAAAi6C,EAAA4G,IAAA,UAAAyjC,GAAArqC,EAAA4G,IAAA,WAAA7sC,GAAAimC,EAAA7B,OAAA,IAAiGs4c,sBAAA,WAAkC,IAAA1wf,EAAAnE,KAAAggD,OAAApd,SAAAwb,KAAuC,QAAAr9C,KAAAoD,IAAAtB,eAAA9B,IAAAq9C,EAAA78C,MAA4CO,KAAAf,EAAAwG,MAAApD,EAAApD,KAAoBq9C,EAAA9oC,KAAA,SAAAmzE,EAAAtkF,GAAqB,OAAAskF,EAAA3mF,KAAAqC,EAAArC,OAAqBs8C,EAAAzb,SAAa7gC,KAAA,EAAAyF,MAAA,kBAA9JvH,KAA2LglD,IAAA,cAAA5G,IAAyB02c,oBAAA,WAAgC,IAAArsa,EAAArqC,EAAAp+C,KAAAgE,IAAA,eAAAjD,EAAAq9C,EAAAn9C,OAAAkwE,EAAAthE,SAAAC,cAAA,UAAAyF,EAAA47D,EAAAspG,WAAA,MAAuGtpG,EAAAn4D,MAAA,MAAAm4D,EAAAl4D,OAAA,KAAAwvE,EAAAlzE,EAAAugT,qBAAA,YAAiE,QAAAr+S,EAAA,EAAYA,EAAA1W,EAAI0W,IAAAgxE,EAAA+tO,aAAA,GAAAz1T,EAAA,GAAA0W,EAAA2mC,EAAA3mC,GAAAlQ,OAAyCgO,EAAAg4S,UAAA9kO,EAAAlzE,EAAAgsT,SAAA,YAAAhsT,EAAAi4S,YAAA,QAAAj4S,EAAAk6B,YAAyE,QAAAh4B,EAAA,EAAYA,EAAA1W,EAAI0W,IAAAlC,EAAAwxJ,OAAA,OAAAhmK,EAAA,GAAA0W,EAAA,WAAAlC,EAAAyxJ,OAAA,OAAAjmK,EAAA,GAAA0W,EAAA,WAAAA,EAAA,MAAgF,OAAAlC,EAAAwxJ,OAAA,SAAAxxJ,EAAAyxJ,OAAA,UAAAzxJ,EAAAwxJ,OAAA,WAAAxxJ,EAAAyxJ,OAAA,OAAAzxJ,EAAA2tB,SAA1YljC,KAA0YglD,IAAA,MAAAzvC,GAAA47D,EAAAne,aAAwH+hc,WAAA,WAAuB,OAAA/0f,KAAAgE,IAAA,YAA2Bu4C,OAAA,SAAAksC,GAAoB,QAAAtkF,EAAAi6C,EAAAr9C,EAAAf,KAAAmxE,EAAApwE,EAAAiD,IAAA,eAAAuR,EAAAxU,EAAAiD,IAAA,OAAAyT,EAAA1W,EAAAiD,IAAA,YAAAmU,EAAA,GAAAnX,EAAA,EAAsFA,EAAAmwE,EAAAlwE,OAAWD,IAAAmD,EAAAskF,EAAAtX,EAAAnwE,GAAAc,MAAA,EAAAs8C,EAAA7oC,EAAAg6W,YAAAprX,GAAA6U,MAAA,QAAAhY,IAAAo9C,EAAA,GAAAp9C,GAAAmwE,EAAAlwE,OAAA,IAAAm9C,GAAA,GAAAjmC,GAAA,wCAAsH,GAAAg5D,EAAAlwE,OAAA,GAAAD,EAAA,YAAAo9C,EAAA,WAAAj6C,EAAA,QAA8DsT,EAAAm9B,UAAAz8B,IAAgB,IAAAimC,EAAA,SAAAj6C,GAAkB,IAAAi6C,GAAOz7B,OAAA,GAAA8jB,WAAoB/nB,UAAUs2e,WAAWnvd,OAAOovd,QAAQn/e,OAAA,KAAA0hE,SAAA,EAAAx+D,MAAA,EAAAC,OAAA,EAAAhR,KAAA,EAAA26B,UAAA,EAAA/vB,QAAA,IAAAqif,kBAAA,EAAAlN,QAAoGhnf,EAAA,IAAAyW,EAAA,EAAAgxE,EAAA,IAAAjzE,EAAA,GAAoBqlE,OAAA,GAAW76E,KAAA6+K,MAAA,IAAAp2F,EAAAzoF,WAAAgE,IAAA,SAAAykF,GAA4C,OAAArqC,EAAAqqC,IAAYzoF,KAAAglD,IAAA,SAAAyjC,EAAAtkF,GAAwBi6C,EAAAqqC,GAAAtkF,GAAOnE,KAAAm1f,UAAAhxf,GAAAnE,KAAAwe,QAAgC,OAAA4/B,EAAAl+C,WAAoBi1f,UAAA,SAAA1sa,GAAsB,IAAArqC,EAAAp+C,KAAW,GAAAo+C,EAAA4G,IAAA,SAAAyjC,EAAA9lE,QAAA,IAAAy7B,EAAA4G,IAAA,UAAAyjC,EAAAhiD,mBAAA78B,OAAA6+E,EAAAhiD,QAAA52B,SAAA8yV,eAAAl6Q,EAAAhiD,UAAA2X,EAAA4G,IAAA,gBAAAyjC,EAAAjR,SAAAiR,EAAAjR,SAAAp5B,EAAA4G,IAAA,MAAAyjC,EAAAxgF,MAAA,GAAAm2C,EAAA4G,IAAA,WAAAyjC,EAAA7lD,WAA2Nwyd,IAAA,eAAAC,IAAA,iBAAAC,IAAA,eAAAC,IAAA,SAAA5zU,EAAA,iBAAyFvjI,EAAA4G,IAAA,UAAA40B,SAAA,SAAA6O,EAAA51E,SAAA,UAAAurC,EAAA4G,IAAA,QAAAyjC,EAAAzvE,OAAA,GAAAolC,EAAA4G,IAAA,SAAAyjC,EAAAxvE,QAAA,GAAAmlC,EAAA4G,IAAA,QAAAyjC,EAAA5N,OAAA4N,EAAA3yE,OAAA,CAAgJ,IAAA/U,EAAA0nF,EAAA3yE,OAAe/U,EAAA6hC,SAAAwb,EAAAp6C,IAAA,YAAAo6C,EAAA4G,IAAA,aAAA7gD,EAAApD,MAAuDyb,OAAA,WAAmB,IAAAisE,EAAAzoF,KAAAmE,EAAAskF,EAAAzkF,IAAA,WAAAo6C,EAAAqqC,EAAAzkF,IAAA,UAAAjD,EAAA0nF,EAAAzkF,IAAA,WAAmEo6C,EAAAplC,MAAAjY,EAAAiY,MAAAyvE,EAAAzkF,IAAA,UAAAG,EAAAoU,MAAAS,MAAAzQ,QAAA,UAAAkgF,EAAA32B,SAAA3tD,GAAAnE,KAAAglD,IAAA,QAAA5G,EAAAplC,OAAAolC,EAAAnlC,OAAAlY,EAAAkY,OAAAwvE,EAAAzkF,IAAA,WAAAG,EAAAoU,MAAAU,OAAA1Q,QAAA,UAAAkgF,EAAA12B,UAAA5tD,GAAAnE,KAAAglD,IAAA,SAAA5G,EAAAnlC,SAAuNuF,KAAA,WAAiB,IAAAiqE,EAAAzoF,KAAAmE,EAAA0L,SAAAC,cAAA,UAAAsuC,EAAAvuC,SAAAC,cAAA,UAAA/O,EAAAoD,EAAAs2K,WAAA,MAAAtpG,EAAA/yB,EAAAq8H,WAAA,MAAAllK,EAAAkzE,EAAAzkF,IAAA,WAA8IykF,EAAA+sa,mBAAA/sa,EAAAzjC,IAAA,SAAA7gD,GAAAskF,EAAAzjC,IAAA,MAAAjkD,GAAA0nF,EAAAzjC,IAAA,UAAA5G,GAAAqqC,EAAAzjC,IAAA,OAAAmsB,GAAAsX,EAAAjsE,SAAArY,EAAAoU,MAAAyzB,QAAAoS,EAAA7lC,MAAAyzB,QAAA,mDAAqLy8C,EAAAzkF,IAAA,aAAAG,EAAAoU,MAAAM,QAAA,QAAAtD,EAAAtF,YAAA9L,GAAAskF,EAAAzkF,IAAA,WAAAuR,EAAAtF,YAAAw4E,EAAAzkF,IAAA,UAAA+wf,cAAAtsa,EAAAzkF,IAAA,UAAA6L,SAAAG,KAAAC,YAAAmuC,GAAA+yB,EAAA9rC,cAAA,KAAA8rC,EAAA7rC,cAAA,KAAA6rC,EAAA/rC,WAAA,IAAkOowd,iBAAA,WAA6B,IAAA/sa,EAAAtkF,EAAAi6C,EAAAr9C,EAAAf,KAAAmxE,EAAAthE,SAAAC,cAAA,UAAAyF,EAAAxU,EAAAiD,IAAA,YAAwU,QAAAyT,KAAhQ05D,EAAAn4D,MAAA,IAAAm4D,EAAAl4D,OAAA,MAAAwvE,EAAAtX,EAAAspG,WAAA,MAAAt2K,EAAAskF,EAAAqtO,qBAAA,YAAA13Q,EAAAqqC,EAAAwpO,aAAA,UAAAnhT,KAAA,GAAAstC,EAAAttC,KAAA,MAAAstC,EAAAttC,KAAA,GAAAstC,EAAAttC,KAAA,KAAA23E,EAAA6pO,aAAAl0Q,EAAA,KAAAA,EAAAqqC,EAAAwpO,aAAA,SAAAlxT,EAAAikD,IAAA,mBAAA5G,EAAAttC,KAAA,OAAAstC,EAAAttC,KAAA,OAAgQyE,EAAApR,EAAAqyT,aAAA/+S,EAAAlC,EAAAkC,IAAsCgxE,EAAA8kO,UAAAppT,EAAAskF,EAAA84O,SAAA,WAAAxgU,EAAAikD,IAAA,WAAAyjC,EAAAwpO,aAAA,WAAAnhT,OAAqFghD,SAAA,SAAA22B,GAAsB,IAAAtkF,EAAAskF,EAAA3zC,YAAoB,OAAA2zC,EAAAlwE,MAAAi0S,cAAAroT,GAAAskF,EAAAlwE,MAAAi0S,aAAA/jO,EAAAlwE,MAAAohE,eAAAx1E,GAAAskF,EAAAlwE,MAAAohE,cAAAx1E,GAAuG4tD,UAAA,SAAA02B,GAAuB,IAAAtkF,EAAAskF,EAAAtrC,aAAqB,OAAAsrC,EAAAlwE,MAAAsrQ,aAAA1/Q,GAAAskF,EAAAlwE,MAAAsrQ,YAAAp7L,EAAAlwE,MAAAwrQ,gBAAA5/Q,GAAAskF,EAAAlwE,MAAAwrQ,eAAA5/Q,GAAuGqwf,SAAA,SAAA/ra,EAAAtkF,GAAwB,IAAAi6C,EAAAr9C,EAAAowE,EAAA57D,EAAAkC,EAAAU,EAAAnX,EAAAk/D,EAAAuuI,EAAAx2L,EAAAjY,KAAAkxC,EAAAj5B,EAAAjU,IAAA,SAAAyqB,EAAAxW,EAAAjU,IAAA,UAAAg/C,EAAA/qC,EAAAjU,IAAA,UAAA2oB,EAAA1U,EAAAjU,IAAA,QAAAooC,EAAAn0B,EAAAjU,IAAA,OAAAO,EAAA,EAAAkqB,EAAA1hB,EAAAkL,EAAAjU,IAAA,oBAAAma,EAAAlG,EAAAjU,IAAA,YAAAwR,EAAAyC,EAAAjU,IAAA,WAAAK,EAAA4T,EAAAjU,IAAA,UAA4M,MAAAykF,GAAA,MAAAtkF,GAAAskF,EAAAlkF,EAAA2sC,IAAAu3C,EAAAv3C,EAAA3sC,GAAAkkF,EAAA,IAAAA,EAAA,GAAAtkF,EAAA,IAAAA,EAAA,GAAAA,EAAAI,EAAAy+C,IAAA7+C,EAAA6+C,EAAAz+C,GAAA65C,EAAAqqC,EAAA1nF,EAAAoD,EAAAoR,EAAAkzE,EAAAlkF,EAAA4sE,EAAAhtE,EAAAI,IAAA65C,EAAA/5C,EAAArD,EAAA,IAAAqD,EAAArD,EAAAuU,EAAAlR,EAAAoT,EAAAy5B,IAAA7sC,EAAAoT,EAAA1W,EAAAsD,EAAAokF,EAAA,IAAApkF,EAAAokF,EAAAtX,EAAA9sE,EAAAmR,EAAAwtC,IAAA3+C,EAAAmR,GAAAiC,EAAAkV,EAAAslS,aAAA7zQ,EAAAr9C,EAAAwU,EAAA6oC,EAAA+yB,EAAApwE,GAAAoX,EAAAV,EAAA3G,KAAA7P,OAAmM,QAAA8iH,EAAA,EAAYA,EAAA5rG,EAAI4rG,GAAA,EAAA/iH,EAAAyW,EAAA3G,KAAAizG,IAAA7jD,EAAA,EAAAl/D,KAAAytM,EAAAztM,EAAAwU,EAAAxU,EAAAwU,EAAAiC,EAAA3G,KAAAizG,EAAA,GAAA5lG,EAAA+hD,GAAAzoD,EAAA3G,KAAAizG,EAAA,GAAA5lG,EAAA+hD,EAAA,GAAAzoD,EAAA3G,KAAAizG,EAAA,GAAA5lG,EAAA+hD,EAAA,GAAAnzD,IAAA0K,EAAA3G,KAAAizG,EAAA,QAAA0qF,EAAAh3L,EAAA3G,KAAAizG,EAAA,QAAA0qF,EAAAh3L,EAAA3G,KAAAizG,EAAA,QAAA0qF,GAAAh3L,EAAA3G,KAAAizG,GAAA0qF,GAAuKriK,EAAAkmR,aAAA76S,EAAA2mC,EAAAr9C,IAAsBwzf,UAAA,SAAA9ra,EAAAtkF,EAAAi6C,EAAAr9C,GAA6B,IAAAowE,EAAAnxE,KAAAuV,EAAA47D,EAAAntE,IAAA,UAAAyT,EAAA05D,EAAAntE,IAAA,QAAAmU,GAAAg5D,EAAAntE,IAAA,OAAAmtE,EAAAntE,IAAA,WAAAhD,EAAAynF,EAAA,IAAAlzE,GAAA,EAAA2qD,EAAA/7D,EAAA,IAAAoR,GAAA,EAAAk5L,EAAAhmH,EAAA,IAAAlzE,GAAA,EAAA0C,EAAA9T,EAAA,IAAAoR,GAAA,EAAkIkC,EAAA6mK,YAAA,eAAAlgI,IAAA+yB,EAAA0tG,MAAA52K,IAAA,WAAAwP,EAAA4tB,cAAA,KAAA5tB,EAAA6tB,cAAA,KAAA7tB,EAAA2tB,WAAA,GAAA3tB,EAAAg4B,YAAAh4B,EAAA0vJ,IAAA1+E,EAAA,KAAAtkF,EAAA,KAAAoR,EAAA,IAAAxN,KAAAgwB,IAAA,GAAAtgB,EAAAgmK,YAAAhmK,EAAAC,OAAA3W,EAAAowE,EAAAqjb,SAAAxzf,EAAAk/D,IAAAl/D,EAAAmX,EAAAnX,IAAAmX,EAAAnX,KAAAk/D,EAAA/nD,EAAAswE,IAAAtwE,EAAAswE,EAAAvoB,GAAAuuI,EAAAt2L,EAAAV,IAAAU,EAAAV,EAAAg3L,GAAAx2L,EAAAE,EAAA3C,IAAA2C,EAAA3C,EAAAyC,KAA6Q+uP,cAAA,WAA0B,IAAAv+K,EAAAzoF,KAAAmE,EAAAskF,EAAAzkF,IAAA,WAAAo6C,EAAAqqC,EAAAzkF,IAAA,UAAgDo6C,EAAA7lC,MAAAM,QAAA1U,EAAA,eAAAskF,EAAAzjC,IAAA,WAAA7gD,IAAqD8tT,aAAA,WAAyB,OAAAjyT,KAAAgE,IAAA,UAAAgvD,aAAsC5N,MAAA,WAAkB,IAAAqjC,EAAAzoF,KAAAmE,EAAAskF,EAAAzkF,IAAA,SAAAo6C,EAAAqqC,EAAAzkF,IAAA,UAA8CykF,EAAAo2F,MAAA75H,IAAA,WAAAyjC,EAAAzkF,IAAA,OAAA+yK,UAAA,IAAA5yK,EAAAi6C,GAAAqqC,EAAAzkF,IAAA,QAAA+yK,UAAA,IAAA5yK,EAAAi6C,IAAwFq3c,QAAA,WAAoBz1f,KAAWgE,IAAA,WAAAwoC,YAAXxsC,KAAWgE,IAAA,cAAiD0lC,OAAA,SAAA++C,GAAmB,WAAArqC,EAAAqqC,IAAgB6qF,MAAOoiV,cAAA,SAAAjta,GAA0B,IAAAtkF,EAAAi6C,EAAQ,GAAAqqC,EAAA4oG,QAAAltL,EAAAskF,EAAA4oG,OAAAjzI,EAAAqqC,EAAA+oG,QAAA/oG,EAAAnkF,UAAAH,EAAAskF,EAAAnkF,QAAA85C,EAAAqqC,EAAAjkF,cAAA,IAAAL,EAAA,OAAAA,EAAAi6C,MAAvqP,GAA0wPA,EAAA,SAAAj6C,GAAiB,IAAIkxS,KAAK,MAAA5sN,GAAS,MAAAppB,MAAA,sCAAkD,IAAAjhB,EAAAu3c,YAAA,CAAmBv3c,EAAAu3c,aAAA,EAAlkQ,SAAAlta,EAAAtkF,EAAAi6C,GAAkB,IAAAr9C,EAAAowE,EAAA57D,EAAAkzE,EAAAvoF,UAAAuX,EAAA,IAAA0B,SAAiF,IAAApY,KAA5C0W,EAAAvX,UAAAiE,EAAAjE,UAAAixE,EAAAsX,EAAAvoF,UAAA,IAAAuX,EAA4ClC,EAAA47D,EAAApwE,GAAAwU,EAAAxU,GAAqB0nF,EAAAvoF,UAAAC,YAAAsoF,IAAA0wB,WAAAh1G,EAAAjE,UAAA,iBAAAk+C,IAAA+yB,EAAAykb,WAAAx3c,GAA08PqqC,CAAArqC,EAAAi3P,KAAAJ,QAAA,kBAAoD,IAAAl0S,EAAA,IAAAq9C,EAAAj6C,GAAenE,KAAAq5G,UAAAt4G,EAAAs4G,UAA2Br5G,KAAA61f,KAAA1xf,EAAAnE,KAAA6zS,QAAA,KAAA7zS,KAAA81f,WAAA91f,KAAAgof,OAAA,KAAAhof,KAAA+1f,gBAAA/1f,KAAA+1f,gBAAAvrf,KAAAxK,OAAqH,OAAAo+C,EAAAl+C,UAAA81S,WAAA,SAAAvtN,GAA0CzoF,KAAAk8K,KAAAzzF,EAAY,IAAArqC,EAAAvuC,SAAAC,cAAA,OAAoC,OAAAsuC,EAAA7lC,MAAAnK,SAAA,WAAAgwC,EAAA7lC,MAAAvG,IAAA,EAAAosC,EAAA7lC,MAAA1S,KAAA,EAAAu4C,EAAA7lC,MAAAgjS,OAAA,EAAAn9P,EAAA7lC,MAAAS,MAAAhZ,KAAAk8K,KAAAmuC,UAAArxM,MAAA,KAAAolC,EAAA7lC,MAAAU,OAAAjZ,KAAAk8K,KAAAmuC,UAAApxM,OAAA,KAAAjZ,KAAA61f,KAAApvd,QAAA2X,EAAAqqC,EAAAwtN,WAAA+/M,QAAA/lf,YAAAmuC,GAAAp+C,KAAA6zS,QAAA1vS,EAAAulC,OAAA1pC,KAAA61f,MAAA71f,KAAAi2f,KAAA73c,KAAoRA,EAAAl+C,UAAA23K,KAAA,WAA6B,IAAApvF,EAAAzoF,KAAAk8K,KAAA+rU,YAA4B,IAAAx/Z,EAAA7S,OAAA51E,KAAAgof,QAAA,CAA2Bhof,KAAAgof,OAAAv/Z,EAAc,IAAAtkF,EAAAnE,KAAAk8K,KAAAw5H,oBAAAjtN,EAAAyta,gBAAA93c,EAAAp+C,KAAAk8K,KAAAw5H,oBAAAjtN,EAAA0ta,gBAAwG,GAAAhyf,GAAAi6C,EAAA,CAAS,IAAAr9C,EAAAoD,EAAAI,EAAA4sE,EAAA/yB,EAAA/5C,EAAAkR,EAAA6oC,EAAA75C,EAAAJ,EAAAI,EAAAkT,EAAAtT,EAAAE,EAAA+5C,EAAA/5C,EAAoC,GAAArE,KAAA61f,KAAApvd,QAAAluB,MAAA1S,KAAAsrE,EAAA,KAAAnxE,KAAA61f,KAAApvd,QAAAluB,MAAAvG,IAAAjR,EAAA,KAAAf,KAAA61f,KAAApvd,QAAAluB,MAAAS,MAAAvB,EAAA,KAAAzX,KAAA61f,KAAApvd,QAAAluB,MAAAU,OAAA1D,EAAA,KAAAvV,KAAA6zS,QAAAh1H,MAAA76K,IAAA,WAAAwY,SAAAxc,KAAA81f,QAAA70f,OAAA,GAAuNjB,KAAA6zS,QAAAzuP,QAAqB,QAAAjtC,EAAAnY,KAAA81f,QAAA70f,OAAAD,GAAiCiH,IAAAjI,KAAA6zS,QAAAh1H,MAAA52K,IAAA6I,SAAoCqH,KAAI,CAAE,IAAA+nD,EAAAlgE,KAAA81f,QAAA39e,GAAAi+e,OAA6B,GAAA3ta,EAAAk4F,cAAAzgH,GAAA,CAAuB,IAAAuuI,EAAAzuM,KAAAk8K,KAAAw5H,oBAAAx1O,GAAAjoD,EAAA,IAAAo9R,KAAAgsM,MAAA5yS,EAAApqM,EAAA8sE,EAAAs9H,EAAAlqM,EAAAxD,GAAAmwC,EAAAlxC,KAAAq2f,eAAAp+e,GAA8FjX,EAAA8P,KAAAvP,MAAa8C,EAAA6sC,EAAA7sC,EAAAE,EAAA2sC,EAAA3sC,EAAAhC,MAAAvC,KAAA81f,QAAA39e,GAAA+nD,KAAuClgE,KAAA6zS,QAAAh1H,MAAA+qU,WAAA5of,OAAoCo9C,EAAAl+C,UAAAm2f,eAAA,SAAA5ta,GAAwC,QAAAtkF,EAAAnE,KAAA6zS,QAAA7vS,IAAA,SAAAo6C,EAAAp+C,KAAA6zS,QAAA7vS,IAAA,UAAiEykF,EAAApkF,EAAA,GAAMokF,EAAApkF,GAAAF,EAAQ,KAAKskF,EAAApkF,EAAAF,GAAMskF,EAAApkF,GAAAF,EAAQ,KAAKskF,EAAAlkF,EAAA,GAAMkkF,EAAAlkF,GAAA65C,EAAQ,KAAKqqC,EAAAlkF,EAAA65C,GAAMqqC,EAAAlkF,GAAA65C,EAAQ,OAAAqqC,EAAApkF,EAAAokF,EAAApkF,GAAA,EAAAokF,EAAAlkF,EAAAkkF,EAAAlkF,GAAA,EAAAkkF,GAA+BrqC,EAAAl+C,UAAA61f,gBAAA,SAAAtta,GAAyCzoF,KAAA4pf,WAAA5pf,KAAAic,cAAAjc,KAAAic,MAAAjc,KAAAk8K,KAAAp9J,oBAAA,UAAA9e,KAAA+1f,kBAA4G33c,EAAAl+C,UAAA0pf,WAAA,SAAAnha,GAAoC,GAAAzoF,KAAAk8K,KAAA,CAAc,IAAA/3K,EAAAnE,KAAAk8K,KAAA+rU,YAAA7pc,EAAAp+C,KAAAk8K,KAAAw5H,oBAAAvxS,EAAA+xf,gBAAAn1f,EAAAf,KAAAk8K,KAAAw5H,oBAAAvxS,EAAAgyf,gBAAgI/3c,GAAAr9C,IAAAf,KAAAic,MAAAwsE,EAAAzoF,KAAAk8K,KAAAt9J,iBAAA,UAAA5e,KAAA+1f,kBAAgF,IAAA5kb,GAAOlpE,IAAAwgF,EAAAxgF,IAAA6I,SAAkByE,EAAAkzE,EAAA33E,KAAA2G,EAAAlC,EAAAtU,OAAqB,IAAAjB,KAAA81f,WAAoBr+e,KAAI,CAAE,IAAAU,EAAA,IAAAk9R,KAAAG,MAAAjgS,EAAAkC,GAAAy2L,IAAA34L,EAAAkC,GAAA02L,KAAwC,GAAAnuM,KAAA81f,QAAAv0f,MAAsB60f,OAAAj+e,EAAA+nD,EAAA3qD,EAAAkC,GAAAlV,QAAsB4B,EAAAw8K,cAAAxoK,GAAA,CAAsB,IAAAnX,EAAAhB,KAAAk8K,KAAAw5H,oBAAAv9R,GAAA+nD,EAAAlgE,KAAAk8K,KAAAw5H,oBAAAvxS,EAAAgyf,gBAAA9xf,EAAAoqM,EAAAzuM,KAAAk8K,KAAAw5H,oBAAAvxS,EAAA+xf,gBAAA3xf,EAAA0T,EAAA,IAAAo9R,KAAAgsM,MAAArgf,EAAAqD,EAAA67D,EAAAl/D,EAAAuD,EAAAkqM,GAAAv9J,EAAAlxC,KAAAq2f,eAAAp+e,GAAsMk5D,EAAArgE,KAAAvP,MAAa8C,EAAA6sC,EAAA7sC,EAAAE,EAAA2sC,EAAA3sC,EAAAhC,MAAAgT,EAAAkC,GAAAlV,SAAgCvC,KAAA6zS,QAAAzuP,QAAAplD,KAAA6zS,QAAAh1H,MAAA+qU,WAAAz4a,KAAuD/yB,EAAAl+C,UAAAo0f,aAAA,SAAA7ra,EAAAtkF,EAAAi6C,GAA0C,IAAAr9C,EAAA,IAAAs0S,KAAAG,MAAA/sN,EAAAtkF,GAAAgtE,EAAAnxE,KAAAq2f,eAAAr2f,KAAAk8K,KAAAw5H,oBAAA30S,IAAkFf,KAAA6zS,QAAAh1H,MAAAy1U,aAAAnjb,EAAA9sE,EAAA8sE,EAAA5sE,EAAA65C,GAAAp+C,KAAA81f,QAAAv0f,MAA8D60f,OAAAr1f,EAAAm/D,EAAA9hB,KAAeA,EAAAl+C,UAAA+rS,OAAA,WAA+BjsS,KAAA6zS,QAAA7sC,iBAA6B5oN,EAA9vVA,IAAmwV,SAAAqqC,EAAAtkF,EAAAi6C,GAAgCqqC,EAAAtlF,QAAc,WAAc,SAAAslF,IAAAtkF,GAAgBnE,KAAAs2f,OAAA7ta,EAAAzoF,KAAAu2f,MAAApyf,EAA2B,SAAAA,IAAaskF,EAAAvoF,UAAA,IAAAm1S,KAAAJ,QAAAxsN,EAAAvoF,UAAA81S,WAAA,SAAAvtN,GAAgE,IAAAtkF,EAAAnE,KAAAi2f,KAAA73c,EAAA6P,IAAAvkB,OAAA,OAAoCnxB,MAAA,uLAA6L,OAAApU,EAAAywC,UAAA50C,KAAAu2f,MAAA9ta,EAAAwtN,WAAAugN,UAAAvmf,YAAA9L,GAAAnE,KAAAk8K,KAAAzzF,EAAAtkF,GAAkFskF,EAAAvoF,UAAA23K,KAAA,WAA6B73K,KAAAg5c,YAAAh5c,KAAAy2f,UAAAzM,QAAA9H,cAAAlif,KAAAy2f,UAAAzM,QAAA0M,UAAA7ke,OAA6FusB,EAAAizB,OAAA3nE,OAAA++E,EAAAvoF,WAA8B84c,YAAA,SAAAvwX,EAAAtkF,GAA0B,IAAApD,EAAAf,KAAAk8K,KAAAw5H,oBAAAjtN,GAAAtX,EAAA/yB,EAAA6P,IAAA4rB,SAAA75E,KAAAi2f,KAAA,SAAA1gf,EAAA6oC,EAAA6P,IAAA4rB,SAAA75E,KAAAi2f,KAAA,UAAAx+e,EAAAmiE,SAAA55E,KAAAi2f,KAAAt5e,aAAAw0D,EAAA,IAAwJyI,SAAA55E,KAAAi2f,KAAAr5e,cAAArH,EAAA,IAAuCvV,KAAAi2f,KAAA19e,MAAA1S,KAAA9E,EAAAsD,EAAAoT,EAAA,OAAAzX,KAAAi2f,KAAA19e,MAAAzD,SAAA/T,EAAAwD,EAAAJ,EAAA8U,QAAA,MAA8Eoxe,QAAA,SAAA5ha,GAAqBzoF,KAAAi2f,KAAArhd,UAAA6zC,GAAsBkua,gBAAA,SAAAlua,GAA6BzoF,KAAAy2f,UAAAhua,KAAoB,IAAArqC,GAAS6P,QAAQ7P,EAAA6P,IAAA7hB,EAAA,SAAAq8C,GAAqB,uBAAAA,gBAAAt3E,OAAAtB,SAAA8yV,eAAAl6Q,QAAAmrF,WAAA,GAAAnrF,EAAApP,UAAA,GAAAoP,EAAApP,UAAAoP,EAAA,MAA8HrqC,EAAAhS,EAAAgS,EAAA85K,EAAA95K,EAAA6P,IAAA7hB,EAAAgS,EAAAo4D,KAAAp4D,EAAAo4D,SAAkCp4D,EAAAo4D,KAAA92G,SAAA,SAAA+oF,GAA6B,yBAAA7+E,OAAA1J,UAAA0H,SAAA8D,KAAA+8E,IAA2DrqC,EAAA1+C,SAAA0+C,EAAAo4D,KAAA92G,SAAA0+C,EAAA6P,IAAA+jM,GAAA,SAAAvpK,GAAiD,OAAArqC,EAAAo4D,KAAA92G,SAAA+oF,GAAA54E,SAAA8yV,eAAAl6Q,MAAuDrqC,EAAA4zM,GAAA5zM,EAAA6P,IAAA+jM,GAAA5zM,EAAA6P,IAAA2oc,YAAA,SAAAnua,GAA6C,WAAAA,EAAArqC,EAAA6P,IAAA7hB,EAAAq8C,IAAApP,SAAAoP,IAAAvgC,eAAAugC,EAAA54E,UAAgEuuC,EAAA4b,QAAA5b,EAAA4b,YAAwB5b,EAAA4b,QAAA8rN,GAAA1nO,EAAA0nO,GAAA,mBAAAnqN,KAAA9c,UAAAC,WAAAjvC,SAAAwuS,eAAA/1S,OAAAuuf,QAAA,EAAAz4c,EAAA6P,IAAAnR,iBAAA,SAAA2rC,EAAAtkF,GAA8IskF,EAAArqC,EAAA6P,IAAA+jM,GAAAvpK,GAAc,IAAA1nF,EAAAowE,EAAA/yB,EAAA6P,IAAA2oc,YAAAnua,GAA6B,OAAAtX,EAAAhpB,aAAAgpB,EAAAhpB,YAAArL,mBAAA/7C,EAAAowE,EAAAhpB,YAAArL,iBAAA2rC,EAAA,OAAA1nF,EAAAoD,IAAApD,EAAA0mO,iBAAAtjO,GAAA,IAAgIi6C,EAAA6P,IAAA6oc,YAAA14c,EAAA6P,IAAA6oc,gBAAwC14c,EAAA6P,IAAA8oc,aAAA34c,EAAA6P,IAAA8oc,iBAAA34c,EAAA6P,IAAA8oc,aAAA3ve,OAAA,SAAAqhE,EAAAtkF,EAAApD,GAAqF,QAAAowE,EAAA57D,EAAA,EAAAkC,EAAA2mC,EAAA6P,IAAA8oc,aAAmC5lb,EAAA15D,EAAAlC,GAAOA,KAAA47D,IAAApwE,MAAAoD,EAAAgtE,EAAAsX,EAAAtkF,IAAyB,OAAAA,GAASi6C,EAAA/G,OAAA+G,EAAA/G,WAAsB+G,EAAA/G,OAAAwxK,YAAA,SAAApgI,GAAkC,OAAAA,EAAA3oF,QAAA,QAAA2oF,EAAA3oF,QAAA,OAAA2oF,IAAAlgF,QAAA,sBAAAkgF,GAA+E,OAAAA,EAAAvpC,OAAA,GAAAlN,iBAAmCoM,EAAA6P,IAAA4rB,SAAA,SAAA4O,EAAAtkF,GAA8B,IAAApD,EAAAq9C,EAAA6P,IAAYw6B,EAAA1nF,EAAAqrC,EAAAq8C,GAAAtkF,EAAAi6C,EAAA/G,OAAAwxK,YAAA1kN,GAAmC,IAAAgtE,EAAAsX,EAAAlwE,MAAApU,KAAAskF,EAAAwhI,aAAAxhI,EAAAwhI,aAAA9lN,GAAA,KAAApD,EAAA+7C,iBAAA2rC,EAAAtkF,GAAiF,IAAAgtE,EAAA,CAAO,IAAA57D,EAAAxU,EAAA+1f,YAAA3yf,GAAuBoR,IAAA47D,EAAA57D,EAAAvR,IAAAuR,EAAAvR,IAAAykF,GAAArqC,EAAA6P,IAAA4rB,SAAA4O,EAAAlzE,IAA0C,OAAAA,EAAAxU,EAAAg2f,gBAAA5lb,EAAA57D,EAAA6R,OAAAjjB,EAAAgtE,EAAA,QAAAA,GAAoD/yB,EAAAy7B,SAAAz7B,EAAA6P,IAAA4rB,SAAAz7B,EAAA6P,IAAA+oc,YAAA,WAAwD,IAAAvua,GAAO68V,YAAA,cAAAD,YAAA,cAAA3kN,QAAA,UAAAwlN,QAAA,UAAA+wE,OAAA,SAAAC,OAAA,SAAAC,YAAA,eAAmJ,OAAA/4c,EAAA4b,QAAA8rN,GAAA,GAAAr9L,EAAA/pB,IAAA,UAAA+pB,EAAAvwE,MAAA,cAAAuwE,EAAA2ua,QAAA,MAAA3ua,EAAA1nC,UAAA,SAAA0nC,EAAlN,GAAsTrqC,EAAA6P,IAAAgwM,QAAA,SAAAx1K,EAAAtkF,EAAApD,GAAiC,OAAA0nF,EAAArqC,EAAA6P,IAAA7hB,EAAAq8C,GAAA,SAAAtkF,EAAAskF,EAAAlwE,MAAAyzB,QAAAjrC,GAAAoD,EAAAi6C,EAAA6P,IAAA+oc,YAAA7yf,MAAAskF,EAAA/hD,aAAAviC,EAAApD,IAAA0nF,GAAmGrqC,EAAA6/M,QAAA7/M,EAAA6P,IAAAgwM,QAAA7/M,EAAA6P,IAAAopc,SAAA,SAAA5ua,EAAAtkF,GAAmE,QAAApD,KAAb0nF,EAAArqC,EAAA6P,IAAA7hB,EAAAq8C,GAAatkF,EAAAi6C,EAAA6P,IAAAgwM,QAAAx1K,EAAA1nF,EAAAoD,EAAApD,IAAuC,OAAA0nF,GAASrqC,EAAAi5c,SAAAj5c,EAAA6P,IAAAopc,SAAAj5c,EAAA6P,IAAAvkB,OAAA,SAAA++C,EAAAtkF,GAAsD,IAAApD,EAAA8O,SAAAC,cAAA24E,GAAAtX,EAAAhtE,MAAwC,OAAAi6C,EAAA6P,IAAAopc,SAAAt2f,EAAAowE,IAA2B/yB,EAAAizB,OAAAjzB,EAAAizB,WAAsBjzB,EAAA10C,OAAA00C,EAAAizB,OAAA3nE,OAAA,SAAA++E,EAAAtkF,GAAwC,QAAAi6C,KAAAj6C,IAAAtB,eAAAu7C,KAAAqqC,EAAArqC,GAAAj6C,EAAAi6C,IAAgD,OAAAqqC,GAAU,IAAA1nF,EAAA,SAAA0nF,EAAAtkF,EAAAi6C,GAAsB,IAAIi3P,KAAK,MAAA5sN,GAAS,MAAAppB,MAAA,uCAAkDl7D,KAAAlD,OAAA,IAAAjB,KAAAk8K,KAAAzzF,EAAAzoF,KAAAs3f,MAAAnzf,EAAAnE,KAAAe,EAAA,EAAAf,KAAAu3f,oBAAAv3f,KAAAo1S,YAAAp1S,KAAAk8K,KAAA2zB,aAAA2nT,gBAAAx3f,KAAA6zK,OAAgJrgG,KAAA,KAAA2hJ,MAAA,IAAAg1R,eAAA,GAAAF,gBAAA,GAAwDjqf,KAAAy3f,YAAAr5c,GAAAp+C,KAAA03f,UAAA,GAAA13f,KAAA6zK,MAAArgG,gBAAA6hO,KAAAq2D,OAAA1rW,KAAA6zK,MAAArgG,KAAAmkb,eAA6G,OAAA52f,EAAAb,UAAAu3f,YAAA,SAAAhva,GAA2C,GAAAA,EAAA,QAAAtkF,KAAAskF,IAAA5lF,eAAAsB,KAAAnE,KAAA6zK,MAAA1vK,GAAAskF,EAAAtkF,KAA8DpD,EAAAb,UAAAsC,MAAA,WAA8B,IAAAimF,EAAAzoF,KAAAmE,EAAAskF,EAAA6ua,MAAAr2f,OAA4B,GAAAjB,KAAA6zK,MAAA22U,SAAAxqf,KAAA6zK,MAAA22U,QAAA/ha,KAAA1nF,GAAA0nF,EAAA1nF,EAAAoD,EAAA,GAA2D,IAAAskF,EAAAmva,WAAA,OAAwBnva,EAAAova,WAAApva,EAAAqva,YAAArva,EAAA1nF,QAAgC0nF,EAAAuha,SAAAvha,EAAAsva,aAAAtva,EAAAuva,aAAA1rf,WAAA,YAAoEm8E,EAAA2ha,UAAA3ha,EAAAwva,cAAAxva,EAAAqva,UAAArva,EAAA1nF,IAA8C,KAAMf,KAAA43f,YAAA,EAAA53f,KAAA63f,WAAA,GAAqC92f,EAAAb,UAAA4B,KAAA,WAA6B9B,KAAAe,EAAA,EAAAf,KAAA63f,WAAA,EAAAtvY,cAAAvoH,KAAAk4f,eAAAl4f,KAAAm4f,gBAAkF,QAAA1va,EAAA,EAAAtkF,EAAAnE,KAAA6zK,MAAAg2U,aAAAzrc,EAAAj6C,EAAAlD,OAAiDwnF,EAAArqC,EAAIqqC,IAAAtkF,EAAAskF,GAAA2va,OAAA,EAAkBp4f,KAAA6zK,MAAA42U,QAAAzqf,KAAA6zK,MAAA42U,OAAAzqf,OAA2Ce,EAAAb,UAAA0vH,MAAA,WAA8BrH,cAAAvoH,KAAAk4f,eAAAl4f,KAAA43f,YAAA,EAAA53f,KAAAm4f,gBAAAn4f,KAAA6zK,MAAA62U,SAAA1qf,KAAA6zK,MAAA62U,QAAA1qf,OAAuHe,EAAAb,UAAAgqf,eAAA,WAAuClqf,KAAA6zK,MAAAo2U,gBAAA,EAAAjqf,KAAAoqf,WAAApqf,KAAAoqf,SAAA6L,KAAA19e,MAAAqkC,WAAA,WAA2F77C,EAAAb,UAAA+pf,eAAA,WAAuCjqf,KAAA6zK,MAAAo2U,gBAAA,EAAAjqf,KAAAoqf,WAAApqf,KAAAoqf,SAAA6L,KAAA19e,MAAAqkC,WAAA,YAA4F77C,EAAAb,UAAA6E,QAAA,WAAgCwjH,cAAAvoH,KAAAk4f,eAAAl4f,KAAAu3f,kBAAAv3f,KAAAm4f,gBAAAn4f,KAAAk8K,OAAAl8K,KAAAk8K,KAAAk4U,cAAAp0f,KAAAoqf,UAAApqf,KAAAk8K,KAAAk4U,cAAAp0f,KAAAgqf,WAAwK5rc,EAAAizB,OAAA3nE,OAAA3I,EAAAb,WAA8B63f,WAAA,SAAAtva,GAAuBzoF,KAAAgqf,UAAAhqf,KAAA8B,OAAA9B,KAAAk8K,KAAAk4U,cAAAp0f,KAAAgqf,SAAA39e,aAAArM,KAAAg4f,eAAAh4f,KAAAoqf,UAAApqf,KAAAk8K,KAAAk4U,cAAAp0f,KAAAoqf,UAAwJ,IAAAjmf,EAAA,IAAAkxS,KAAA81M,OAAAnrf,KAAAs3f,MAAA,IAAqCt3f,KAAA6zK,MAAArgG,MAAArvE,EAAAmtf,QAAAtxf,KAAA6zK,MAAArgG,MAAAxzE,KAAAk8K,KAAAo6H,WAAAnyS,KAAA6Y,aAAAq7e,qBAAAr4f,KAAAgqf,QAAA7lf,GAAuH8zf,YAAA,YAAmCxva,EAAAvoF,UAAA81S,YAAA7xS,IAA6B,IAAApD,EAAA,IAAA0nF,EAAxCzoF,KAAwCgqf,QAAA9H,cAAxClif,KAAwC6zK,MAAAs2U,gBAA4Dppf,EAAA41f,gBAAA32f,WAAAoqf,SAAArpf,EAAAf,KAAAk8K,KAAAo6H,WAAAv1S,GAAAf,KAAA6zK,MAAAo2U,eAAAjqf,KAAAiqf,iBAAAjqf,KAAAkqf,kBAAsIoO,aAAA,SAAA7va,GAA0B,OAAAzoF,KAAAk8K,KAAA2zB,aAAA2nT,gBAAAjiN,cAAA9sN,IAA+D8va,aAAA,SAAA9va,EAAAtkF,GAA4B,OAAA4D,KAAAyjC,KAAAzjC,KAAAI,IAAAsgF,EAAApkF,EAAAF,EAAAE,EAAA,GAAA0D,KAAAI,IAAAsgF,EAAAlkF,EAAAJ,EAAAI,EAAA,KAA0Di0f,MAAA,SAAA/va,EAAAtkF,EAAAi6C,GAAuB,IAAAr9C,EAAAf,KAAAmxE,EAAA,EAAA57D,EAAAvV,KAAA6zK,MAAAshD,MAAA,IAAA19M,EAAAzX,KAAAo1S,YAAAG,cAAA9sN,GAAAtwE,EAAAnY,KAAAo1S,YAAAG,cAAApxS,GAAAnD,EAAA+G,KAAAqC,MAAArJ,EAAAw3f,aAAA9gf,EAAAU,GAAA5C,GAAkJvU,EAAA,EAAAD,EAAA+2f,YAAA/2f,KAAsCA,EAAAm3f,cAAAxvY,YAAA,WAAuC,GAAAv3C,GAAAnwE,EAAA,CAAS,GAAAunH,cAAAxnH,EAAAm3f,eAAAn3f,MAAAu2f,MAAAr2f,OAAA,OAA4DF,EAAA+2f,YAAA/2f,SAAmB,CAAKowE,IAAI,IAAA57D,EAAA6oC,EAAA3mC,EAAApT,EAAA8T,EAAA9T,EAAA8sE,EAAAnwE,GAAAk/D,EAAA9hB,EAAA3mC,EAAAlT,EAAA4T,EAAA5T,EAAA4sE,EAAAnwE,GAAAytM,EAAA1tM,EAAAq0S,YAAAqjN,cAAA,IAAApjN,KAAAgsM,MAAA9re,EAAA2qD,IAAyF,MAAAiR,EAAA,CAAS,IAAAl5D,EAAA,KAAWlX,IAAA,OAAAkX,EAAAlX,EAAAu2f,MAAAv2f,IAAA,OAAAA,EAAA8yK,MAAAy2U,gBAAAvpf,EAAAwwf,YAAAt5e,EAAAwwE,EAAAtkF,GAAApD,EAAA8yK,MAAAi2U,WAAA/of,EAAAm7K,KAAA+rU,YAAAtnU,cAAA8tB,IAAA1tM,EAAAm7K,KAAA3zI,UAAAkmK,IAA0J1tM,EAAAipf,QAAAhxC,YAAAvqQ,GAAA1tM,EAAA23f,YAAAjqT,KAA2C,KAAK8iT,YAAA,SAAA9oa,EAAAtkF,EAAAi6C,GAA6B,IAAAr9C,EAAAf,KAAAmxE,EAAA,EAAe,GAAAhtE,EAAApD,EAAAm7K,KAAAy8U,aAAAx0f,IAAAi6C,EAAAr9C,EAAAm7K,KAAAy8U,aAAAv6c,IAAA/5C,GAAAF,EAAAE,EAAA,CAA+D,IAAAkR,GAAA6oC,EAAA75C,EAAAJ,EAAAI,IAAA65C,EAAA/5C,EAAAF,EAAAE,GAA0B8sE,EAAA,IAAAppE,KAAAisf,KAAAz+e,IAAA,EAAAxN,KAAAgwB,IAAAo5C,EAAA/yB,EAAA/5C,EAAAF,EAAAE,EAAA,GAAA8sE,EAAA,IAAAA,EAAApwE,EAAAipf,QAAAuH,aAAApgb,OAA8E,CAAK,IAAA15D,EAAA2mC,EAAA75C,EAAAJ,EAAAI,EAAA4T,EAAA,EAAkBA,EAAAV,EAAA,OAAA1W,EAAAipf,QAAAuH,YAAA,IAAAp5e,KAAyCygf,gBAAA,SAAAnwa,EAAAtkF,GAA+B,OAAA4D,KAAAyjC,KAAAzjC,KAAAY,IAAA8/E,EAAApkF,EAAAF,EAAAE,GAAA0D,KAAAY,IAAA8/E,EAAApkF,EAAAF,EAAAE,GAAA0D,KAAAY,IAAA8/E,EAAAlkF,EAAAJ,EAAAI,GAAAwD,KAAAY,IAAA8/E,EAAAlkF,EAAAJ,EAAAI,KAA0Fs0f,aAAA,SAAApwa,EAAAtkF,GAA4B,OAAA4D,KAAAY,IAAA8/E,EAAApkF,EAAAF,EAAAE,GAAA0D,KAAAY,IAAA8/E,EAAApkF,EAAAF,EAAAE,GAAA0D,KAAAY,IAAA8/E,EAAAlkF,EAAAJ,EAAAI,GAAAwD,KAAAY,IAAA8/E,EAAAlkF,EAAAJ,EAAAI,IAA+Euzf,UAAA,SAAArva,GAAuB,IAAAtkF,EAAAnE,KAAWyoF,EAAAzoF,KAAAs3f,MAAAr2f,OAAA,EAAAkD,EAAAq0f,MAAAr0f,EAAAmzf,MAAA7ua,GAAAtkF,EAAAmzf,MAAA7ua,EAAA,GAAAtkF,EAAA20f,OAAAt6T,QAAAr6L,EAAArC,QAAgF42f,YAAA,SAAAjwa,GAAyB,IAAAtkF,EAAAnE,KAAWmE,EAAAimf,SAAApxC,YAAAvwX,EAAAtkF,EAAA6lf,QAAA0M,UAAA7ke,MAAmD,IAAAusB,EAAAj6C,EAAA40f,kBAAAtwa,IAA6B,GAAArqC,GAAAmqE,cAAApkH,EAAA+zf,eAAA/zf,EAAAimf,SAAAC,QAAAlmf,EAAA0vK,MAAAg2U,aAAAzrc,GAAAwD,MAAAz9C,EAAAimf,SAAApxC,YAAAvwX,EAAAtkF,EAAA6lf,QAAA0M,UAAA7ke,MAAA1tB,EAAA60f,cAAA56c,IAAAj6C,EAAAimf,SAAAC,QAAAlmf,EAAA0vK,MAAAs2U,iBAAyM6O,cAAA,SAAAvwa,GAA2B,IAAAtkF,EAAAnE,KAAAo+C,EAAA9xC,WAAA,WAAmCnI,EAAA2zf,YAAA3zf,EAAApD,IAAmB,IAAAoD,EAAA0vK,MAAAg2U,aAAApha,GAAAwwa,WAAwC90f,EAAAozf,iBAAAh2f,KAAA68C,IAA2B+5c,cAAA,WAA0B,QAAA1va,KAAAzoF,KAAAu3f,iBAAAlrf,aAAArM,KAAAu3f,iBAAA9ua,IAA0EzoF,KAAAu3f,iBAAAt2f,OAAA,GAA+B63f,QAASt6T,OAAA,SAAA/1G,EAAAtkF,EAAAi6C,EAAAr9C,GAAyB,OAAAoD,EAAAskF,GAAArqC,EAAAr9C,EAAA0nF,IAAmBswa,kBAAA,SAAAtwa,GAA+B,QAAAtkF,EAAAnE,KAAA6zK,MAAAg2U,aAAAzrc,EAAA,EAAAr9C,EAAAoD,EAAAlD,OAAiDm9C,EAAAr9C,EAAIq9C,IAAA,IAAAj6C,EAAAi6C,GAAAg6c,OAAAp4f,KAAAk8K,KAAAg9U,YAAA,IAAA7jN,KAAAG,MAAArxS,EAAAi6C,GAAA8vJ,IAAA/pM,EAAAi6C,GAAA+vJ,KAAA1lH,GAAA,UAAAtkF,EAAAi6C,GAAAg6c,OAAA,EAAAh6c,EAAyG,YAAUr9C,EAAvrPq9C,IAA6rP,SAAAqqC,EAAAtkF,EAAAi6C,IAAiB,SAAAj6C,GAAa,IAAApD,EAAAowE,GAAQ,SAAAhtE,EAAAi6C,GAAeqqC,EAAAtlF,QAAAi7C,IAAf,CAA6B,aAAc,aAAa,SAAAqqC,KAAczoF,KAAAm5f,iBAAA1wa,EAAAzoF,KAAAk8K,KAAAzzF,EAAAzqB,SAAAh+D,KAAAo5f,gBAAA3wa,EAAA4wa,oBAAAr5f,KAAAs5f,iBAAA7wa,EAAAyia,kBAAAlrf,KAAAsnC,QAAA,KAAAtnC,KAAAu5f,YAAAv5f,KAAAw5f,YAAA,KAAAx5f,KAAAy5f,SAAA,EAAAz5f,KAAA05f,eAAA,IAAAvhf,EAAAnY,KAAAsnC,QAAAtnC,KAAAu5f,SAAAt4f,QAAwQ47C,OAAA78C,KAAAm5f,iBAAAQ,cAA2C,oBAAAhqf,eAAA,IAAA8H,EAAA,SAAAgxE,EAAAtkF,GAA0E,OAAiD,SAAAskF,EAAAtkF,EAAAoR,GAAiBkC,EAAyH,WAAc,IAAAgxE,EAAAtkF,EAAAskF,EAAAtkF,IAAcm4D,QAAA,SAAgBle,KAAMj6C,EAAA0nM,KAAA,UAAAztJ,EAAAj6C,EAAA0nM,MAAAztJ,EAAAj6C,EAAA0nM,UAAwC1nM,EAAA8pD,IAAA9pD,EAAA8pD,QAAgB9pD,EAAA8pD,IAAA7hB,EAAA,SAAAq8C,GAAqB,uBAAAA,gBAAAt3E,OAAAtB,SAAA8yV,eAAAl6Q,QAAAmrF,WAAA,GAAAnrF,EAAApP,UAAA,GAAAoP,EAAApP,UAAAoP,EAAA,MAA8HtkF,EAAAioC,EAAAjoC,EAAA+zN,EAAA/zN,EAAA8pD,IAAA7hB,EAAAjoC,EAAA8pD,IAAA2oc,YAAA,SAAAnua,GAA+C,WAAAA,EAAAtkF,EAAA8pD,IAAA7hB,EAAAq8C,IAAApP,SAAAoP,IAAAvgC,eAAAugC,EAAA54E,UAAgE1L,EAAAqyG,KAAAryG,EAAAqyG,SAAkBryG,EAAAqyG,KAAA92G,SAAA,SAAA+oF,GAA6B,yBAAA7+E,OAAA1J,UAAA0H,SAAA8D,KAAA+8E,IAA2DtkF,EAAAzE,SAAAyE,EAAAqyG,KAAA92G,SAAAyE,EAAA8pD,IAAA+jM,GAAA,SAAAvpK,GAAiD,OAAAtkF,EAAAqyG,KAAA92G,SAAA+oF,GAAA54E,SAAA8yV,eAAAl6Q,MAAuDtkF,EAAA6tP,GAAA7tP,EAAA8pD,IAAA+jM,GAAA7tP,EAAA61D,QAAA71D,EAAA61D,YAAsC,kBAAA2B,KAAA9c,UAAAC,aAAA36C,EAAA61D,QAAA8rN,GAAA3hR,EAAA2hR,GAAAj2Q,SAAAwuS,eAAA/1S,OAAAuuf,IAAA1yf,EAAA8pD,IAAAnR,iBAAA,SAAA2rC,EAAArqC,GAAyIqqC,EAAAtkF,EAAA8pD,IAAA+jM,GAAAvpK,GAAc,IAAA1nF,EAAAowE,EAAAhtE,EAAA8pD,IAAA2oc,YAAAnua,GAA6B,OAAAtX,EAAAhpB,aAAAgpB,EAAAhpB,YAAArL,mBAAA/7C,EAAAowE,EAAAhpB,YAAArL,iBAAA2rC,EAAA,OAAA1nF,EAAAq9C,IAAAr9C,EAAA0mO,iBAAArpL,GAAA,IAAgIj6C,EAAA8pD,IAAA6oc,YAAA3yf,EAAA8pD,IAAA6oc,gBAAwC3yf,EAAA8pD,IAAA8oc,aAAA5yf,EAAA8pD,IAAA8oc,iBAAA5yf,EAAA8pD,IAAA8oc,aAAA3ve,OAAA,SAAAqhE,EAAArqC,EAAAr9C,GAAqF,QAAAowE,EAAA57D,EAAA,EAAAkC,EAAAtT,EAAA8pD,IAAA8oc,aAAmC5lb,EAAA15D,EAAAlC,GAAOA,KAAA47D,IAAApwE,MAAAq9C,EAAA+yB,EAAAsX,EAAArqC,IAAyB,OAAAA,GAASj6C,EAAAkzC,OAAAlzC,EAAAkzC,WAAsBlzC,EAAAkzC,OAAAwxK,YAAA,SAAApgI,GAAkC,OAAAA,EAAA3oF,QAAA,QAAA2oF,EAAA3oF,QAAA,OAAA2oF,IAAAlgF,QAAA,sBAAAkgF,GAA+E,OAAAA,EAAAvpC,OAAA,GAAAlN,iBAAmC7tC,EAAA8pD,IAAA4rB,SAAA,SAAA4O,EAAArqC,GAA8B,IAAAr9C,EAAAoD,EAAA8pD,IAAYw6B,EAAA1nF,EAAAqrC,EAAAq8C,GAAArqC,EAAAj6C,EAAAkzC,OAAAwxK,YAAAzqK,GAAmC,IAAA+yB,EAAAsX,EAAAlwE,MAAA6lC,KAAAqqC,EAAAwhI,aAAAxhI,EAAAwhI,aAAA7rK,GAAA,KAAAr9C,EAAA+7C,iBAAA2rC,EAAArqC,GAAiF,IAAA+yB,EAAA,CAAO,IAAA57D,EAAAxU,EAAA+1f,YAAA14c,GAAuB7oC,IAAA47D,EAAA57D,EAAAvR,IAAAuR,EAAAvR,IAAAykF,GAAAtkF,EAAA8pD,IAAA4rB,SAAA4O,EAAAlzE,IAA0C,OAAAA,EAAAxU,EAAAg2f,gBAAA5lb,EAAA57D,EAAA6R,OAAAg3B,EAAA+yB,EAAA,QAAAA,GAAoDhtE,EAAA01E,SAAA11E,EAAA8pD,IAAA4rB,SAAA,oBAAAle,KAAA9c,UAAAC,aAAA36C,EAAA61D,QAAAmtQ,OAAA7+T,OAAAuuf,IAAA1yf,EAAA61D,QAAA4/b,SAAA,UAAAj+b,KAAA9c,UAAAC,WAAA36C,EAAA61D,QAAA6/b,QAAA,SAAAl+b,KAAA9c,UAAAC,aAAA,cAAA6c,KAAA9c,UAAAC,WAAA36C,EAAA61D,QAAA8/b,SAAA,cAAAjqf,SAAAkqf,WAAA51f,EAAA8pD,IAAAi0b,YAAA,SAAAz5Z,GAAgVA,EAAAtkF,EAAA8pD,IAAA7hB,EAAAq8C,GAAa,IAAArqC,EAAAr9C,EAAAowE,EAAAhtE,EAAA8pD,IAAA2oc,YAAAnua,GAAAlzE,EAAApR,EAAA61D,QAAAviD,EAAAtT,EAAA8pD,IAAA4rB,SAAA1hE,GAAA5C,EAAAskf,QAAA,GAAA1ob,EAAA6ob,iBAAA,YAAAvif,EAAAgxE,EAAA,mBAAAA,EAAAlwE,MAAAvG,KAAAy2E,EAAAlwE,MAAA1S,OAA8JA,KAAA,EAAAmM,IAAA,IAAahR,EAAAuU,EAAAuwQ,KAAAvwQ,EAAAukf,SAAA3ob,EAAAnhE,KAAAmhE,EAAAnzB,gBAA+C,GAAAyqC,GAAAznF,EAAA,OAAAmX,EAAiB,GAAAswE,EAAA9pC,sBAAA,CAA4B59C,EAAA0nF,EAAA9pC,wBAAAxmC,EAAAtS,KAAAkC,KAAAkwC,MAAAl3C,EAAA8E,MAAAkC,KAAAE,IAAAkpE,EAAAnzB,gBAAAG,WAAAgzB,EAAAnhE,KAAAmuC,YAAAhmC,EAAAnG,IAAAjK,KAAAkwC,MAAAl3C,EAAAiR,KAAAjK,KAAAE,IAAAkpE,EAAAnzB,gBAAAE,UAAAizB,EAAAnhE,KAAAkuC,WAAA/lC,EAAAtS,MAAAsrE,EAAAnzB,gBAAAi8c,WAAA9hf,EAAAnG,KAAAm/D,EAAAnzB,gBAAAk8c,UAAsQ,IAAAh6b,EAAAiR,EAAAnhE,KAAAy+L,EAAA70H,SAAAniE,EAAAyoD,EAAA,oBAAAjoD,EAAA2hE,SAAAniE,EAAAyoD,EAAA,mBAAkF3qD,EAAAuwQ,KAAAvwQ,EAAAukf,WAAA3hf,EAAAtS,MAAA4E,MAAAgkM,GAAA,EAAAA,EAAAt2L,EAAAnG,KAAAvH,MAAAwN,GAAA,EAAAA,OAA8D,CAAKmmC,EAAAqqC,EAAI,GAAG,GAAAtwE,EAAAtS,MAAAu4C,EAAAK,WAAAtmC,EAAAnG,KAAAosC,EAAAM,UAAAnpC,EAAAqkf,SAAA,YAAAnif,EAAA2mC,EAAA,aAAmFjmC,EAAAtS,MAAAsrE,EAAAnhE,KAAAmuC,WAAAhmC,EAAAnG,KAAAm/D,EAAAnhE,KAAAkuC,UAAkD,MAAME,IAAAL,mBAAiBK,MAAAqqC,GAAe,KAAAlzE,EAAA4xT,MAAA,GAAA5xT,EAAAqkf,SAAA,eAAAnif,EAAAgxE,EAAA,eAAAtwE,EAAAnG,KAAAm/D,EAAAnhE,KAAA0uC,WAAAN,EAAAqqC,EAAA1qC,aAAuGK,MAAA+yB,EAAAnhE,MAAamI,EAAAtS,MAAAu4C,EAAAD,WAAA5oC,EAAA4xT,OAAA,MAAA/oR,EAAArM,UAAA55B,EAAAnG,KAAAosC,EAAAF,WAAAE,IAAAL,aAAsF,OAAA5lC,GAAShU,EAAAozD,MAAApzD,EAAAozD,UAAoBpzD,EAAAozD,MAAA4ic,WAAAh2f,EAAAozD,MAAA4ic,eAAAh2f,EAAAozD,MAAA73C,GAAA,SAAA+oE,EAAArqC,EAAAr9C,GAAsEq9C,IAAA71C,QAAA,WAAAkgF,EAAAtkF,EAAA8pD,IAAA+jM,GAAAvpK,GAAqC,IAAAtX,EAAA57D,EAAA,SAAApR,GAAoBpD,EAAA2K,KAAA+8E,EAAAtkF,IAAYsT,EAAAtT,EAAAozD,MAAA4ic,WAAAhif,EAAAhU,EAAAozD,MAAA6ic,aAAAp5f,EAAAo9C,EAAiD,OAAAA,IAAA9lC,cAAAH,KAAAimC,KAAA+yB,EAAAh5D,EAAAimC,GAAAqqC,EAAArqC,EAAA7oC,GAAAvU,EAAAmwE,EAAA3tE,KAAA+R,EAAA47D,EAAAwU,UAAA8C,EAAA7pE,iBAAA6pE,EAAA7pE,iBAAA5d,EAAAuU,GAAA,GAAAkzE,EAAA4pG,aAAA5pG,EAAA4pG,YAAA,KAAArxL,EAAAuU,GAAAkC,IAAAxW,SAAAwnF,EAAArqC,EAAAr9C,EAAAwU,EAAAvU,GAAAynF,GAAuLtkF,EAAAub,GAAAvb,EAAAozD,MAAA73C,GAAA,WAA4B,IAAA+oE,EAAArqC,EAAAj6C,EAAA0nM,MAAgB1nM,EAAAqyG,KAAAq1F,KAAA,WAAuB,mBAAApjH,EAAA4xa,YAAAzyf,SAAA,KAA8C6gF,EAAA4xa,SAAA5xa,EAAA4xa,UAAA,EAAjH,GAA2Ij8c,EAAAj6C,EAAA0nM,MAAAyuT,WAAAl8c,EAAAj6C,EAAA0nM,MAAAyuT,eAAgDn2f,EAAAqyG,KAAA72G,WAAA,SAAA8oF,GAA+B,2BAAA7+E,OAAA1J,UAAA0H,SAAA8D,KAAA+8E,IAA6DtkF,EAAAqyG,KAAAk/E,MAAA,SAAAjtG,GAA0BzoF,KAAA6rM,KAAApjH,GAAAtkF,EAAAqyG,KAAAq1F,OAAAztJ,EAAAj6C,EAAA0nM,MAAAyuT,WAAAt6f,KAAA6rM,MAAA7rM,MAAgEo+C,EAAAj6C,EAAA0nM,MAAAyuT,WAAAl8c,EAAAj6C,EAAA0nM,MAAAyuT,eAA8Cn2f,EAAAqyG,KAAAk/E,MAAAx1L,UAAA6E,QAAA,WAAkF,QAAA0jF,YAAvCrqC,EAAAj6C,EAAA0nM,MAAAyuT,WAAAt6f,KAAA6rM,MAAuC7rM,KAAAmE,EAAAqyG,KAAA72G,WAAAK,KAAAyoF,YAAAzoF,KAAAyoF,GAA6DzoF,KAAAu6f,UAAA,GAAiBp2f,EAAAqyG,KAAAk/E,MAAAx1L,UAAA0H,SAAA,WAA4C,kBAAA5H,KAAA41f,YAAA,eAAiDzxf,EAAAqyG,KAAA6gB,MAAA,SAAA5uC,EAAAtkF,GAA4BnE,KAAAwD,KAAAilF,EAAAzoF,KAAA6xL,aAAA,EAAA7xL,KAAAO,OAAA4D,GAAA,KAAAnE,KAAA+mI,cAAA,MAA4E5iI,EAAAqyG,KAAAk/E,MAAAx1L,UAAA0e,iBAAA,SAAA6pE,EAAArqC,EAAAr9C,GAAyD,GAAAoD,EAAAqyG,KAAA72G,WAAAy+C,GAAA,EAAyBp+C,KAAAw6f,cAAAx6f,KAAAw6f,gBAAyC,IAAArpb,EAAA57D,EAAAvV,KAAAw6f,YAAyB,oBAAAz5f,KAAA,CAA0B,aAAA46D,KAAA56D,GAAA,wBAAAA,EAA+Cq9C,EAAAq8c,SAAA15f,EAAAowE,EAAApwE,EAAiB,GAAA0nF,EAAA3oF,QAAA,QAAA2oF,EAAA,KAAAA,GAAA,iBAAAlzE,EAAAkzE,KAAAlzE,EAAAkzE,OAA8DtX,KAAAhtE,EAAAqyG,KAAAq1F,OAAAztJ,EAAAq8c,SAAAtpb,EAAA57D,EAAAkzE,GAAAtX,GAAA/yB,IAA6Cj6C,EAAAqyG,KAAAk/E,MAAAx1L,UAAA4e,oBAAA,SAAA2pE,EAAArqC,GAA0D,YAAAA,KAAAj6C,EAAAqyG,KAAA72G,WAAAy+C,SAAAq8c,YAAAt2f,EAAAqyG,KAAA92G,SAAA0+C,GAAA,EAA4Ep+C,KAAAw6f,cAAAx6f,KAAAw6f,gBAAuC,GAAA/xa,EAAA3oF,QAAA,QAAA2oF,EAAA,KAAAA,GAAiC,IAAA1nF,EAAAf,KAAAw6f,YAAuB,GAAAz5f,EAAA0nF,GAAA,YAAArqC,EAAAr9C,EAAA0nF,GAAArqC,WAAAr9C,EAAA0nF,GAAArqC,QAA8C,QAAA+yB,KAAApwE,EAAA0nF,UAAA1nF,EAAA0nF,GAAAtX,KAAuChtE,EAAAqyG,KAAAk/E,MAAAx1L,UAAAs3H,cAAA,SAAA/uC,EAAArqC,GAAiJ,QAAAr9C,KAA7FoD,EAAAqyG,KAAA92G,SAAA+oF,OAAA,IAAAtkF,EAAAqyG,KAAA6gB,MAAA5uC,KAAAzoF,KAAAw6f,cAAAx6f,KAAAw6f,gBAAmFp8c,QAAUqqC,EAAA1nF,GAAAq9C,EAAAr9C,GAAyB,IAAAowE,EAAAnxE,KAAAw6f,YAAAjlf,EAAAkzE,EAAAjlF,KAAkC,GAAAilF,EAAAloF,OAAAkoF,EAAAloF,QAAAP,KAAAyoF,EAAAs+C,cAAA/mI,KAAA,GAAAuV,EAAAzV,QAAA,QAAAyV,EAAA,KAAAA,GAAApR,EAAAqyG,KAAA72G,WAAAK,KAAAuV,KAAAvV,KAAAuV,GAAAhJ,MAAAvM,KAAA8E,WAAA,iBAAAqsE,EAAA57D,GAAA,IAAAxU,KAAAowE,EAAA57D,GAAA47D,EAAA57D,GAAAxU,GAAAwL,MAAAvM,KAAA8E,WAA2M,OAAA2jF,EAAAopG,aAAqB1tL,EAAAqyG,KAAAhrD,SAAA,SAAAi9B,EAAAtkF,EAAAi6C,GAAiC,IAAAr9C,EAAAowE,EAAA57D,EAAAkzE,EAAAvoF,UAAAuX,EAAA,IAAA0B,SAAiF,IAAApY,KAA5C0W,EAAAvX,UAAAiE,EAAAjE,UAAAixE,EAAAsX,EAAAvoF,UAAA,IAAAuX,EAA4ClC,EAAA47D,EAAApwE,GAAAwU,EAAAxU,GAAqB0nF,EAAAvoF,UAAAC,YAAAsoF,IAAA0wB,WAAAh1G,EAAAjE,UAAA,iBAAAk+C,IAAA+yB,EAAAykb,WAAAx3c,IAAwFj6C,EAAAqnD,SAAArnD,EAAAqyG,KAAAhrD,SAA4B,IAAAzqD,EAAA,SAAAoD,EAAAi6C,EAAA+yB,GAAsB,IAAIkkO,KAAK,MAAA5sN,GAAS,MAAAppB,MAAA,sCAAkDopB,EAAA+tB,KAAAhrD,SAAAzqD,EAAAs0S,KAAAJ,QAAA,mBAAAj1S,KAAAssI,UAAAnoI,EAAAnE,KAAAgsI,MAAA5tF,EAAAp+C,KAAAm8C,SAAAg1B,MAAmGnxE,KAAA06f,QAAA16f,KAAAm8C,SAAAU,YAAA78C,KAAA06f,QAAAz5f,QAAAjB,KAAA26f,uBAAyF,OAAA55f,EAAAb,UAAAy6f,oBAAA,WAAkD,QAAAlya,EAAAtkF,GAAA,gBAAAi6C,EAAA,EAAiCqqC,EAAAtkF,EAAAi6C,GAAOA,IAAAp+C,KAAA06f,QAAAn5f,MAAuB4M,IAAA,oEAAAiwC,EAAA,OAAAvsB,KAAA,IAAAwjR,KAAA6rM,KAAAz4Z,QAA2G1nF,EAAAb,UAAA81S,WAAA,SAAAvtN,GAAoC,OAAAzoF,KAAAk8K,KAAAzzF,EAAAzoF,KAAA46f,YAAA/qf,SAAAC,cAAA,OAAA9P,KAAA66f,aAAA76f,KAAA86f,cAAA96f,KAAAyqT,kBAAAzqT,KAAA+6f,QAAA/6f,KAAAk8K,KAAA+5H,WAAA+kN,kBAAA/qf,YAAAjQ,KAAA46f,aAAA56f,KAAA46f,aAAiO75f,EAAAb,UAAA23K,KAAA,WAA6B73K,KAAAk8K,MAAAl8K,KAAAyqT,mBAAkC1pT,EAAAb,UAAA+6f,QAAA,WAAgC,OAAAj7f,KAAAgsI,OAAkBjrI,EAAAb,UAAAu3V,QAAA,SAAAhvQ,IAAiCA,GAAAzoF,KAAAgsI,OAAAhsI,KAAAgsI,MAAApkI,YAAA6gF,EAAA7gF,aAAA5H,KAAAgsI,MAAAvjD,EAAAzoF,KAAA86f,cAAA96f,KAAA66f,aAAA76f,KAAAyqT,oBAAgI1pT,EAAAb,UAAAgif,YAAA,WAAoC,OAAAlif,KAAAssI,WAAsBvrI,EAAAb,UAAA84c,YAAA,SAAAvwX,IAAqCA,GAAAzoF,KAAAssI,WAAAtsI,KAAAssI,UAAA12D,OAAA6S,KAAAzoF,KAAAssI,UAAA7jD,EAAAzoF,KAAAyqT,oBAAwF1pT,EAAAb,UAAAg7f,eAAA,SAAAzya,EAAAtkF,GAA0C,IAAAi6C,EAAAw7B,SAAA6O,GAAA1nF,EAAA64E,SAAAx7B,EAAA,IAAmC,OAAAr9C,EAAAgH,KAAAE,IAAA,EAAAlH,KAAAgH,KAAAC,IAAAjH,EAAAoD,EAAAlD,OAAA,GAAAkD,EAAApD,IAAqDA,EAAAb,UAAA26f,WAAA,WAAmC,GAAA76f,KAAA46f,YAAA,CAAqB,IAAAnya,EAAAzoF,KAAAk7f,eAAAl7f,KAAAgsI,MAAAhsI,KAAA06f,SAAmD16f,KAAA46f,YAAArif,MAAAyzB,QAAAhsC,KAAAm7f,cAAA1ya,KAAsD1nF,EAAAb,UAAA46f,YAAA,WAAoC96f,KAAA46f,cAAA56f,KAAA46f,YAAAhmd,UAAA50C,KAAAgsI,QAA0DjrI,EAAAb,UAAAuqT,gBAAA,WAAwC,GAAAzqT,KAAA46f,aAAA56f,KAAAssI,UAAA,CAAqC,IAAA7jD,EAAAzoF,KAAA46f,YAAArif,MAAApU,EAAAnE,KAAAk8K,KAAAw5H,oBAAA11S,KAAAssI,WAA6EnoI,EAAAE,GAAA0D,KAAAowC,KAAAyhC,SAAA6O,EAAAzvE,OAAA,GAAA7U,EAAAI,GAAAwD,KAAAowC,KAAAyhC,SAAA6O,EAAAxvE,QAAA,GAAAwvE,EAAA5iF,KAAA1B,EAAAE,EAAA,KAAAokF,EAAAz2E,IAAA7N,EAAAI,EAAA,OAAyGxD,EAAAb,UAAAi7f,cAAA,SAAAh3f,GAAuC,IAAAi6C,EAAAj6C,EAAAgK,IAAApN,EAAAoD,EAAA0tB,KAAAs/C,EAAAhtE,EAAAs9e,OAAAlse,EAAApR,EAAAu+B,OAAAjrB,EAAAtT,EAAAgiR,WAAA,QAAAhuQ,EAAAhU,EAAAkyJ,UAAA,GAAAr1J,KAAwF,GAAAynF,EAAAzuB,QAAA8rN,GAAA,EAAA9kR,EAAAO,KAAA,qFAAA68C,EAAA,WAAuH,CAAKp9C,EAAAO,KAAA,wBAAA68C,EAAA,MAAuC,IAAA8hB,EAAA,MAAY3qD,aAAA8/R,KAAA6rM,OAAAhhb,EAAA3qD,EAAAyD,MAAA,MAAAzD,EAAA0D,OAAA,MAAAjY,EAAAO,KAAA,uBAAA2+D,EAAA,KAA6F,OAAAn/D,aAAAs0S,KAAA6rM,OAAA/va,aAAAkkO,KAAA6rM,MAAA/va,EAAAl4D,OAAA,GAAAk4D,EAAAl4D,OAAAlY,EAAAkY,QAAAjY,EAAAO,KAAA,WAAAR,EAAAkY,OAAAk4D,EAAAl4D,QAAA,mBAAgIk4D,EAAAl4D,OAAA,OAA4Bk4D,EAAAn4D,MAAA,GAAAm4D,EAAAn4D,MAAAjY,EAAAiY,OAAAhY,EAAAO,KAAA,UAAAR,EAAAiY,MAAAm4D,EAAAn4D,OAAA,oBAAqEm4D,EAAAn4D,MAAA,SAA4BhY,EAAAO,KAAA,UAAAR,EAAAkY,OAAA,mBAAmClY,EAAAkY,OAAA,OAA4BjY,EAAAO,KAAA,SAAAR,EAAAiY,MAAA,4BAAkDhY,EAAAO,KAAA,yBAA4BkW,EAAA,kCAAgCU,EAAA,sDAAiDnX,EAAAoF,KAAA,KAA+BrF,EAAAb,UAAA66f,MAAA,WAA8B,SAAA52f,IAAAi6C,GAAgB,IAAA+yB,EAAAhtE,EAAAi3f,YAAAj3f,EAAA5D,OAAAgV,EAAApR,EAAAstL,SAAAttL,EAAAsmb,MAAAhza,EAAAtT,EAAAutL,SAAAvtL,EAAAk3f,MAAuE,GAAAl3f,GAAAi6C,GAAA7oC,GAAAkC,GAAA05D,EAAA,CAAkB,IAAAh5D,EAAAswE,EAAAx6B,IAAAi0b,YAAAnhf,EAAA4mf,gBAA0Cvpc,EAAA61K,MAAA,IAAAohF,KAAAgsM,MAAA9re,EAAA4C,EAAAtS,KAAA4R,EAAAU,EAAAnG,KAAAosC,EAAA/T,MAAAtpC,EAAAu6f,aAAAl9c,EAAA61K,OAAyE,OAAA71K,EAAS,GAAAp+C,KAAA46f,YAAA,CAAqB,IAAAx8c,EAAAp+C,KAAAe,EAAAf,KAAAk8K,KAAA/qG,EAAAsX,EAAA+tB,KAAA6gB,MAAsC5uC,EAAAlxB,MAAA73C,GAAA1f,KAAA46f,YAAA,qBAAAnya,GAAoDrqC,EAAAo5E,cAAArzH,EAAAskF,EAAA,IAAAtX,EAAA,mBAA2CsX,EAAAlxB,MAAA73C,GAAA1f,KAAA46f,YAAA,oBAAAnya,GAAqDrqC,EAAAo5E,cAAArzH,EAAAskF,EAAA,IAAAtX,EAAA,kBAA0CsX,EAAAlxB,MAAA73C,GAAA1f,KAAA46f,YAAA,iBAAAnya,GAAkDrqC,EAAAo5E,cAAArzH,EAAAskF,EAAA,IAAAtX,EAAA,iBAA0CpwE,GAAzvR,iBAAAoD,EAAAskF,EAAAtlF,QAAAsU,SAAA,KAAA05D,EAAA,mBAAApwE,EAAA0W,GAAA1W,EAAA2K,KAAAvH,EAAAi6C,EAAAj6C,EAAAskF,GAAA1nF,KAAA0nF,EAAAtlF,QAAAguE,GAAf,IAAA15D,EAA7CgxE,CAArBtkF,GAAUhB,YAAWgB,EAAAhB,SAAAgB,EAAAhB,QAA/F,GAAy5RgV,EAAAV,GAAA,iBAAAA,GAAA,YAAAA,IAAAsB,QAAAtB,EAAAzW,EAAA,SAAAynF,EAAAtkF,EAAAi6C,GAAuEj6C,EAAA+7D,EAAA/7D,GAAO,IAAApD,EAAA0nF,EAAAkwa,aAAAx0f,EAAA+xf,gBAAA/kb,EAAAsX,EAAAkwa,aAAAx0f,EAAAgyf,gBAA0Ep1f,EAAAsD,GAAA+5C,EAAAr9C,EAAAwD,GAAA65C,EAAA+yB,EAAA9sE,GAAA+5C,EAAA+yB,EAAA5sE,GAAA65C,EAA4B,IAAA7oC,EAAAkzE,EAAA6ya,aAAAv6f,GAAA0W,EAAAgxE,EAAA6ya,aAAAnqb,GAA4C,WAAAkkO,KAAAksM,OAAA9pe,EAAAlC,IAA4B2qD,EAAA,SAAAuoB,GAAe,IAAAtkF,EAAAsqM,EAAAhmH,EAAAyta,eAAAhoT,KAAA,SAAA9vJ,EAAAqwJ,EAAAhmH,EAAA0ta,eAAAjoT,KAAA,SAAAntM,EAAA0tM,EAAAhmH,EAAAyta,eAAA/nT,KAAA,OAAAh9H,EAAAs9H,EAAAhmH,EAAA0ta,eAAAhoT,KAAA,OAA4I,WAAAknG,KAAAksM,OAAA,IAAAlsM,KAAAG,MAAAp3P,EAAA+yB,GAAA,IAAAkkO,KAAAG,MAAArxS,EAAApD,KAAgE0tM,EAAA,SAAAhmH,EAAAtkF,EAAAi6C,GAAmB,OAAAj6C,IAAAskF,EAAA1gF,KAAAE,IAAAwgF,EAAAtkF,IAAAi6C,IAAAqqC,EAAA1gF,KAAAC,IAAAygF,EAAArqC,IAAAqqC,GAAmDxwE,EAAA,SAAAwwE,GAAe,yBAAA7+E,OAAA1J,UAAA0H,SAAA8D,KAAA+8E,IAA2Dv3C,EAAA,SAAAu3C,EAAAtkF,GAAiB,IAAAi6C,GAAA,EAAS,GAAAnmC,EAAA9T,GAAA,GAAAA,EAAArE,QAAAs+C,EAAAj6C,EAAArE,QAAA2oF,QAAoC,QAAA1nF,EAAAowE,EAAA,EAAmBpwE,EAAAoD,EAAAgtE,GAAOA,IAAA,GAAApwE,IAAA0nF,EAAA,CAAcrqC,EAAA+yB,EAAI,MAAM,OAAA/yB,GAAS3vB,EAAA,SAAAg6D,EAAAtkF,GAAiB,IAAIkxS,KAAK,MAAA5sN,GAAS,MAAAppB,MAAA,sCAAkD,GAAAopB,EAAA,CAAMzoF,KAAAk8K,KAAAzzF,EAAAzoF,KAAAu5f,YAAAv5f,KAAAu7f,aAA+C,IAAAn9c,EAAAj6C,MAAYnE,KAAAw7f,UAAAp9c,EAAAusc,UAAA,GAAA3qf,KAAAy7f,SAAAr9c,EAAAwsc,SAAA,GAAA5qf,KAAAo5f,gBAAAh7c,EAAAysc,gBAAA,EAAA7qf,KAAAs5f,kBAAA,UAAAl7c,EAAA8sc,kBAAAlrf,KAAAs5f,iBAAAl7c,EAAA8sc,iBAAAlrf,KAAA06f,QAAAt8c,EAAAvB,WAA2N,IAAA97C,EAAAf,KAAWA,KAAAk8K,KAAAt9J,iBAAA,qBAAgD7d,EAAA26f,YAAY17f,KAAAk8K,KAAAt9J,iBAAA,qBAAkD7d,EAAA26f,YAAc,IAAAvqb,EAAA/yB,EAAAu9c,QAAgB1jf,EAAAk5D,IAAAnxE,KAAAorf,WAAAj6a,KAA2B,OAAA1iD,EAAAvuB,UAAAkrf,WAAA,SAAA3ia,GAA0C,GAAAA,EAAAxnF,OAAA,CAAa,QAAAkD,EAAA,EAAAi6C,EAAAqqC,EAAAxnF,OAAuBkD,EAAAi6C,EAAIj6C,IAAAnE,KAAA47f,cAAAnza,EAAAtkF,IAA6BnE,KAAA67f,oBAAwBpte,EAAAvuB,UAAA07f,cAAA,SAAAnza,IAAuC,IAAAv3C,EAAAu3C,EAAAzoF,KAAAu5f,YAAA9wa,EAAAqza,aAAA,EAAA97f,KAAAu5f,SAAAh4f,KAAAknF,KAAkEh6D,EAAAvuB,UAAA67f,UAAA,SAAAtza,GAAmCzoF,KAAA47f,cAAAnza,GAAAzoF,KAAA67f,mBAA6Cpte,EAAAvuB,UAAA27f,gBAAA,WAAwC,IAAApza,EAAAzoF,KAAAk8K,KAAA+rU,YAA4B,GAAAx/Z,EAAA5/C,YAAA,QAAA1kC,EAAAi6C,EAAAp9C,EAAAhB,KAAAk8K,KAAAzzF,EAAAzoF,KAAAw7f,WAAAz6f,EAAA,EAA+DoD,EAAAnE,KAAAu5f,SAAAx4f,GAAmBA,KAAAoD,EAAA23f,aAAA19c,EAAAuiI,cAAAx8K,EAAA+9e,gBAAAlif,KAAAg8f,qBAAA73f,IAAmFsqB,EAAAvuB,UAAA87f,qBAAA,SAAA73f,GAA8C,QAAApD,EAAA,IAAAowE,EAAA,KAAA57D,GAAApR,EAAA+9e,cAAA,GAA6C9jc,EAAAp+C,KAAAu7f,UAAAhmf,GAAoBA,IAAA,CAAK,IAAAkC,EAAA2mC,EAAAvV,YAAoB,GAAApxB,EAAA,CAAM,IAAAU,EAAAnY,KAAAk8K,KAAAg9U,YAAAzhf,EAAAtT,EAAA+9e,eAA+C/pe,EAAApX,MAAAoX,EAAAg5D,EAAA/yB,IAAuE,IAAAA,EAAvD+yB,KAAA8qb,wBAAA93f,GAAAgtE,EAAA4qb,UAAA53f,KAAuDi6C,EAAA,IAAAqqC,EAAAzoF,OAAkB+7f,UAAA53f,GAAAnE,KAAAu7f,UAAAh6f,KAAA68C,KAAuC3vB,EAAAvuB,UAAAg8f,mBAAA,WAA2C,QAAAzza,EAAAtkF,EAAA,EAAcskF,EAAAzoF,KAAAu7f,UAAAp3f,GAAoBA,IAAAskF,EAAAhkF,SAAezE,KAAAu7f,aAAAv7f,KAAAm8f,6BAAmD1te,EAAAvuB,UAAAi8f,0BAAA,WAAkD,QAAA1za,EAAAtkF,EAAA,EAAcskF,EAAAzoF,KAAAu5f,SAAAp1f,GAAmBA,IAAAskF,EAAAqza,aAAA,GAAqBrte,EAAAvuB,UAAAk8f,sBAAA,WAA8C,QAAA3za,EAAAtkF,EAAA,EAAcskF,EAAAzoF,KAAAu5f,SAAAp1f,GAAmBA,IAAA,CAAKskF,EAAAqza,aAAA,EAAiB,IAAA19c,EAAAqqC,EAAAvvC,WAAmBl5C,KAAAk8K,KAAAk4U,cAAA3ra,KAAA+zG,SAAAp+I,KAA0C3vB,EAAAvuB,UAAAm8f,cAAA,SAAA5za,GAAuC,IAAAtkF,EAAA+sC,EAAAu3C,EAAAzoF,KAAAu5f,UAAyB,WAAAp1f,IAAAnE,KAAAk8K,KAAAk4U,cAAA3ra,GAAAzoF,KAAAu5f,SAAAj4f,OAAA6C,EAAA,QAAwEsqB,EAAAvuB,UAAAo8f,aAAA,SAAA7za,GAAsC,IAAAtkF,EAAAnE,KAAAq8f,cAAA5za,GAA4B,OAAAtkF,IAAAnE,KAAAk8f,qBAAAl8f,KAAA67f,mBAAA13f,GAA+DsqB,EAAAvuB,UAAAq8f,cAAA,SAAA9za,GAAuC,QAAAtkF,GAAA,EAAAi6C,EAAA,EAAiBA,EAAAqqC,EAAAxnF,OAAWm9C,IAAA,CAAK,IAAAr9C,EAAAf,KAAAq8f,cAAA5za,EAAArqC,IAA+Bj6C,KAAApD,EAAO,OAAAoD,IAAAnE,KAAAk8f,qBAAAl8f,KAAA67f,mBAAA13f,GAA+DsqB,EAAAvuB,UAAA8gf,aAAA,WAAqChhf,KAAAk8f,qBAAAl8f,KAAAo8f,wBAAAp8f,KAAAu5f,aAAwE9qe,EAAAvuB,UAAAw7f,QAAA,WAAgC17f,KAAAk8f,qBAAAl8f,KAAA67f,mBAAiDpte,EAAAvuB,UAAAs8f,YAAA,WAAoC,OAAAx8f,KAAAw7f,WAAsB/se,EAAAvuB,UAAA6qf,YAAA,SAAAtia,GAAqCzoF,KAAAw7f,UAAA/ya,EAAAzoF,KAAA07f,WAAgCjte,EAAAvuB,UAAAu8f,WAAA,WAAmC,OAAAz8f,KAAAy7f,UAAqBhte,EAAAvuB,UAAA8qf,WAAA,SAAAvia,GAAoCzoF,KAAAy7f,SAAAhza,EAAAzoF,KAAA07f,WAA+Bjte,EAAAvuB,UAAAy5f,UAAA,WAAkC,OAAA35f,KAAA06f,SAAoBjse,EAAAvuB,UAAA+3I,UAAA,SAAAxvD,GAAmCzoF,KAAA06f,QAAAjya,EAAAzoF,KAAA07f,WAA8Bjte,EAAAvuB,UAAAm5f,kBAAA,WAA0C,OAAAr5f,KAAAo5f,iBAA4B3qe,EAAAvuB,UAAA+qf,kBAAA,SAAAxia,GAA2CzoF,KAAAo5f,gBAAA3wa,EAAAzoF,KAAA07f,WAAsCjte,EAAAvuB,UAAAgrf,gBAAA,WAAwC,OAAAlrf,KAAAs5f,kBAA6B7qe,EAAAvuB,UAAA89D,OAAA,WAA+B,OAAAh+D,KAAAk8K,MAAiBztJ,EAAAvuB,UAAAw8f,WAAA,WAAmC,OAAA18f,KAAAu5f,UAAqB9qe,EAAAvuB,UAAAy8f,iBAAA,WAAyC,QAAAl0a,EAAAtkF,EAAA,EAAAi6C,EAAA,EAAkBqqC,EAAAzoF,KAAAu7f,UAAAn9c,GAAoBA,IAAAqqC,EAAAm0a,UAAAz4f,IAAoB,OAAAA,GAASskF,EAAAvoF,UAAA67f,UAAA,SAAAtza,GAAmC,GAAAzoF,KAAA68f,kBAAAp0a,GAAA,SAAsC,GAAAzoF,KAAAsnC,SAAiB,GAAAtnC,KAAAs5f,iBAAA,CAA0B,IAAAn1f,EAAAnE,KAAAu5f,SAAAt4f,OAAA,EAAAm9C,GAAAp+C,KAAAsnC,QAAA6mK,KAAAhqM,EAAA,GAAAskF,EAAAy5Z,cAAA/zS,KAAAhqM,EAAApD,GAAAf,KAAAsnC,QAAA4mK,KAAA/pM,EAAA,GAAAskF,EAAAy5Z,cAAAh0S,KAAA/pM,EAA+HnE,KAAAsnC,QAAA,IAAA+tQ,KAAAG,MAAAz0S,EAAAq9C,GAAAp+C,KAAA88f,yBAA0D98f,KAAAsnC,QAAAmhD,EAAAy5Z,cAAAlif,KAAA88f,mBAA0Dr0a,EAAAqza,aAAA,EAAA97f,KAAAu5f,SAAAh4f,KAAAknF,GAAuC,IAAAtX,EAAAnxE,KAAAu5f,SAAAt4f,OAA2B,GAAAkwE,EAAAnxE,KAAAo5f,gBAAA,OAAAp5f,KAAAk8K,KAAAo6H,WAAA7tN,IAAA,EAA4D,GAAAtX,IAAAnxE,KAAAo5f,gBAAA,QAAA7jf,EAAA,EAAwCA,EAAA47D,EAAI57D,IAAA,CAAK,IAAAkC,EAAAzX,KAAAu5f,SAAAhkf,GAAA2jC,WAAkCl5C,KAAAu5f,SAAAhkf,GAAAyoD,UAAAh+D,KAAAk8K,KAAAk4U,cAAAp0f,KAAAu5f,SAAAhkf,IAAAvV,KAAAu5f,SAAAhkf,GAAAinL,SAAA/kL,GAAkG,OAAAzX,KAAAk8K,KAAAo6H,WAAAt2S,KAAA05f,gBAAA15f,KAAAy5f,SAAA,EAAAz5f,KAAA+8f,uBAAA,GAA+Ft0a,EAAAvoF,UAAA28f,kBAAA,SAAAp0a,GAA2C,GAAAzoF,KAAAu5f,SAAAz5f,QAAA,UAAAE,KAAAu5f,SAAAz5f,QAAA2oF,GAA4D,QAAAtkF,EAAAi6C,EAAA,EAAcj6C,EAAAnE,KAAAu5f,SAAAn7c,GAAmBA,IAAA,GAAAj6C,IAAAskF,EAAA,SAAsB,UAASA,EAAAvoF,UAAA+7f,wBAAA,SAAAxza,GAAiD,OAAAzoF,KAAAw5f,YAAA74U,cAAAl4F,EAAAy5Z,gBAAuDz5Z,EAAAvoF,UAAA08f,OAAA,SAAAn0a,GAAgC,OAAAzoF,KAAAy5f,SAAoBhxa,EAAAvoF,UAAA48f,iBAAA,WAAyC,IAAAr0a,EAAA,IAAA4sN,KAAAksM,OAAAvhf,KAAAsnC,QAAAtnC,KAAAsnC,SAAiDtnC,KAAAw5f,YAAAx4f,EAAAhB,KAAAk8K,KAAAzzF,EAAAzoF,KAAAm5f,iBAAAqD,gBAAoE/za,EAAAvoF,UAAA68f,oBAAA,WAA4C,GAAA/8f,KAAAk8K,KAAApzI,UAAA9oC,KAAAm5f,iBAAAsD,aAAA,CAA2Dz8f,KAAA05f,gBAAA15f,KAAAk8K,KAAAk4U,cAAAp0f,KAAA05f,gBAAkE,QAAAjxa,EAAAtkF,EAAA,EAAcskF,EAAAzoF,KAAAu5f,SAAAp1f,GAAmBA,IAAAnE,KAAAk8K,KAAAo6H,WAAA7tN,OAA4B,CAAK,GAAAzoF,KAAAu5f,SAAAt4f,OAAAjB,KAAAo5f,gBAAA,YAAAp5f,KAAA05f,eAAA3tT,OAAoF/rM,KAAA05f,eAAA1gD,YAAAh5c,KAAAsnC,SAAAtnC,KAAA05f,eAAAjiK,QAAAz3V,KAAAu5f,SAAAt4f,QAAAjB,KAAA05f,eAAA96e,mBAAA5e,KAAA05f,eAAAsD,gBAAAh9f,KAAA05f,eAAA96e,iBAAA,iBAAA6pE,GAAoOzoF,KAAA05f,eAAAsD,gBAAA,EAAAh9f,KAAAu5f,UAAAv5f,KAAAk8K,KAAA+gV,YAAAj9f,KAAAiof,cAA6Fz9e,KAAAxK,SAAcyoF,EAAAvoF,UAAAuE,OAAA,WAA+B,QAAAgkF,EAAA,EAAYzoF,KAAAu5f,SAAA9wa,GAAiBA,IAAA,CAAK,IAAAtkF,EAAAnE,KAAAu5f,SAAA9wa,GAAAvvC,WAAkCl5C,KAAAu5f,SAAA9wa,GAAAzqB,UAAAh+D,KAAAk8K,KAAAk4U,cAAAp0f,KAAAu5f,SAAA9wa,IAAAzoF,KAAAu5f,SAAA9wa,GAAA+zG,SAAAr4L,GAAkGnE,KAAAk8K,KAAAk4U,cAAAp0f,KAAA05f,gBAAA15f,KAAAu5f,SAAAt4f,OAAA,SAAAjB,KAAAu5f,UAAyF9wa,EAAAvoF,UAAA+nf,UAAA,WAAkC,QAAAx/Z,EAAAtkF,EAAA,IAAAkxS,KAAAksM,OAAAvhf,KAAAsnC,QAAAtnC,KAAAsnC,SAAA8W,EAAA,EAA2DqqC,EAAAzoF,KAAAu5f,SAAAn7c,GAAmBA,IAAAj6C,EAAAuF,OAAA++E,EAAAy5Z,eAA8B,OAAA/9e,GAASskF,EAAAvoF,UAAA2oC,UAAA,WAAkC,OAAA7oC,KAAAsnC,SAAoB7Y,MAAK/iB,KAAAvH,EAAAi6C,EAAA,KAAe,SAAAqqC,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAU,EAAAnE,KAAAiX,eAA8B,OAA9BjX,KAA8BmX,MAAAD,IAAA/S,GAAA,QAA6BwT,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAA6BigL,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAkhF,EAAApjF,KAAA+Z,WAAA,WAA8DqpE,EAAA1T,GAAA,gBAAsBp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAAAskF,EAAA1T,GAAA,gBAAiDp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAA6BigL,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAkhF,EAAAwwR,MAAA75V,WAAA,YAAgEqpE,EAAA1T,GAAA,gBAAsBp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAAAskF,EAAA1T,GAAA,gBAAiDp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAA6BigL,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAkhF,EAAAwwR,MAAA75V,WAAA,YAAgEqpE,EAAA1T,GAAA,gBAAsBp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,QAAAskF,EAAA1T,GAAA,gBAAkDp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,QAAAskF,EAAA1T,GAAA,gBAAkDp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAA6BigL,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAkhF,EAAAwwR,MAAA75V,WAAA,aAAkEzH,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAA6BigL,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAkhF,EAAAwwR,MAAA75V,WAAA,YAAgEqpE,EAAA1T,GAAA,gBAAsBp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAA6BigL,aAAaxhL,KAAA,OAAAyhL,QAAA,SAAA98K,MAAAkhF,EAAAwwR,MAAA75V,WAAA,YAAgEqpE,EAAA1T,GAAA,gBAAsBp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAAAskF,EAAA1T,GAAA,gBAAiDp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAmnC,EAAAqqC,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAAi6C,EAAA,QAAAqqC,EAAA1T,GAAA,WAAA32B,EAAA,gBAAkDzmC,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAA8B,OAAAwxE,EAAAtxE,MAAAD,IAAA/S,GAAA,OAAAskF,EAAA1T,GAAA,gBAAiDp9D,qBAAqB,SAAA8wE,EAAAtkF,GAAeskF,EAAAtlF,SAAWM,OAAA,WAAkB,IAAAglF,EAAAzoF,KAAAmE,EAAAskF,EAAAxxE,eAAAmnC,EAAAqqC,EAAAtxE,MAAAD,IAAA/S,EAA8C,OAAAi6C,EAAA,OAAAqqC,EAAAgla,UAAAhla,EAAA3T,KAAA12B,EAAA,OAA4CxlC,IAAA,OAAAwqP,aAAwBpqP,MAAA,OAAAC,OAAA,UAA4BwvE,EAAA5wE,GAAA,KAAA4wE,EAAA1T,GAAA,gBAAgCp9D,wBAA1p3GzU,EAAAC,QAAAgB","file":"static/js/vendor.99a6983ff19cf979eed3.js","sourcesContent":["var Animator = require(\"../animation/Animator\");\n\nvar log = require(\"../core/log\");\n\nvar _util = require(\"../core/util\");\n\nvar isString = _util.isString;\nvar isFunction = _util.isFunction;\nvar isObject = _util.isObject;\nvar isArrayLike = _util.isArrayLike;\nvar indexOf = _util.indexOf;\n\n/**\n * @alias modue:zrender/mixin/Animatable\n * @constructor\n */\nvar Animatable = function () {\n  /**\n   * @type {Array.<module:zrender/animation/Animator>}\n   * @readOnly\n   */\n  this.animators = [];\n};\n\nAnimatable.prototype = {\n  constructor: Animatable,\n\n  /**\n   * 鍔ㄧ敾\n   *\n   * @param {string} path The path to fetch value from object, like 'a.b.c'.\n   * @param {boolean} [loop] Whether to loop animation.\n   * @return {module:zrender/animation/Animator}\n   * @example:\n   *     el.animate('style', false)\n   *         .when(1000, {x: 10} )\n   *         .done(function(){ // Animation done })\n   *         .start()\n   */\n  animate: function (path, loop) {\n    var target;\n    var animatingShape = false;\n    var el = this;\n    var zr = this.__zr;\n\n    if (path) {\n      var pathSplitted = path.split('.');\n      var prop = el; // If animating shape\n\n      animatingShape = pathSplitted[0] === 'shape';\n\n      for (var i = 0, l = pathSplitted.length; i < l; i++) {\n        if (!prop) {\n          continue;\n        }\n\n        prop = prop[pathSplitted[i]];\n      }\n\n      if (prop) {\n        target = prop;\n      }\n    } else {\n      target = el;\n    }\n\n    if (!target) {\n      log('Property \"' + path + '\" is not existed in element ' + el.id);\n      return;\n    }\n\n    var animators = el.animators;\n    var animator = new Animator(target, loop);\n    animator.during(function (target) {\n      el.dirty(animatingShape);\n    }).done(function () {\n      // FIXME Animator will not be removed if use `Animator#stop` to stop animation\n      animators.splice(indexOf(animators, animator), 1);\n    });\n    animators.push(animator); // If animate after added to the zrender\n\n    if (zr) {\n      zr.animation.addAnimator(animator);\n    }\n\n    return animator;\n  },\n\n  /**\n   * 鍋滄鍔ㄧ敾\n   * @param {boolean} forwardToLast If move to last frame before stop\n   */\n  stopAnimation: function (forwardToLast) {\n    var animators = this.animators;\n    var len = animators.length;\n\n    for (var i = 0; i < len; i++) {\n      animators[i].stop(forwardToLast);\n    }\n\n    animators.length = 0;\n    return this;\n  },\n\n  /**\n   * Caution: this method will stop previous animation.\n   * So do not use this method to one element twice before\n   * animation starts, unless you know what you are doing.\n   * @param {Object} target\n   * @param {number} [time=500] Time in ms\n   * @param {string} [easing='linear']\n   * @param {number} [delay=0]\n   * @param {Function} [callback]\n   * @param {Function} [forceAnimate] Prevent stop animation and callback\n   *        immediently when target values are the same as current values.\n   *\n   * @example\n   *  // Animate position\n   *  el.animateTo({\n   *      position: [10, 10]\n   *  }, function () { // done })\n   *\n   *  // Animate shape, style and position in 100ms, delayed 100ms, with cubicOut easing\n   *  el.animateTo({\n   *      shape: {\n   *          width: 500\n   *      },\n   *      style: {\n   *          fill: 'red'\n   *      }\n   *      position: [10, 10]\n   *  }, 100, 100, 'cubicOut', function () { // done })\n   */\n  // TODO Return animation key\n  animateTo: function (target, time, delay, easing, callback, forceAnimate) {\n    // animateTo(target, time, easing, callback);\n    if (isString(delay)) {\n      callback = easing;\n      easing = delay;\n      delay = 0;\n    } // animateTo(target, time, delay, callback);\n    else if (isFunction(easing)) {\n        callback = easing;\n        easing = 'linear';\n        delay = 0;\n      } // animateTo(target, time, callback);\n      else if (isFunction(delay)) {\n          callback = delay;\n          delay = 0;\n        } // animateTo(target, callback)\n        else if (isFunction(time)) {\n            callback = time;\n            time = 500;\n          } // animateTo(target)\n          else if (!time) {\n              time = 500;\n            } // Stop all previous animations\n\n\n    this.stopAnimation();\n\n    this._animateToShallow('', this, target, time, delay); // Animators may be removed immediately after start\n    // if there is nothing to animate\n\n\n    var animators = this.animators.slice();\n    var count = animators.length;\n\n    function done() {\n      count--;\n\n      if (!count) {\n        callback && callback();\n      }\n    } // No animators. This should be checked before animators[i].start(),\n    // because 'done' may be executed immediately if no need to animate.\n\n\n    if (!count) {\n      callback && callback();\n    } // Start after all animators created\n    // Incase any animator is done immediately when all animation properties are not changed\n\n\n    for (var i = 0; i < animators.length; i++) {\n      animators[i].done(done).start(easing, forceAnimate);\n    }\n  },\n\n  /**\n   * @private\n   * @param {string} path=''\n   * @param {Object} source=this\n   * @param {Object} target\n   * @param {number} [time=500]\n   * @param {number} [delay=0]\n   *\n   * @example\n   *  // Animate position\n   *  el._animateToShallow({\n   *      position: [10, 10]\n   *  })\n   *\n   *  // Animate shape, style and position in 100ms, delayed 100ms\n   *  el._animateToShallow({\n   *      shape: {\n   *          width: 500\n   *      },\n   *      style: {\n   *          fill: 'red'\n   *      }\n   *      position: [10, 10]\n   *  }, 100, 100)\n   */\n  _animateToShallow: function (path, source, target, time, delay) {\n    var objShallow = {};\n    var propertyCount = 0;\n\n    for (var name in target) {\n      if (!target.hasOwnProperty(name)) {\n        continue;\n      }\n\n      if (source[name] != null) {\n        if (isObject(target[name]) && !isArrayLike(target[name])) {\n          this._animateToShallow(path ? path + '.' + name : name, source[name], target[name], time, delay);\n        } else {\n          objShallow[name] = target[name];\n          propertyCount++;\n        }\n      } else if (target[name] != null) {\n        // Attr directly if not has property\n        // FIXME, if some property not needed for element ?\n        if (!path) {\n          this.attr(name, target[name]);\n        } else {\n          // Shape or style\n          var props = {};\n          props[path] = {};\n          props[path][name] = target[name];\n          this.attr(props);\n        }\n      }\n    }\n\n    if (propertyCount > 0) {\n      this.animate(path, false).when(time == null ? 500 : time, objShallow).delay(delay || 0);\n    }\n\n    return this;\n  }\n};\nvar _default = Animatable;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/mixin/Animatable.js\n// module id = +17g\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar globalListener = require(\"./globalListener\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisPointerView = echarts.extendComponentView({\n  type: 'axisPointer',\n  render: function (globalAxisPointerModel, ecModel, api) {\n    var globalTooltipModel = ecModel.getComponent('tooltip');\n    var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click'; // Register global listener in AxisPointerView to enable\n    // AxisPointerView to be independent to Tooltip.\n\n    globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n      // If 'none', it is not controlled by mouse totally.\n      if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n        dispatchAction({\n          type: 'updateAxisPointer',\n          currTrigger: currTrigger,\n          x: e && e.offsetX,\n          y: e && e.offsetY\n        });\n      }\n    });\n  },\n\n  /**\n   * @override\n   */\n  remove: function (ecModel, api) {\n    globalListener.unregister(api.getZr(), 'axisPointer');\n    AxisPointerView.superApply(this._model, 'remove', arguments);\n  },\n\n  /**\n   * @override\n   */\n  dispose: function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n    AxisPointerView.superApply(this._model, 'dispose', arguments);\n  }\n});\nvar _default = AxisPointerView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/AxisPointerView.js\n// module id = +BVR\n// module chunks = 0","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('echarts/lib/echarts'), require('echarts/lib/component/tooltip'), require('echarts/lib/component/legend'), require('echarts/lib/chart/bar'), require('echarts/lib/chart/line'), require('echarts/lib/chart/pie'), require('echarts/lib/chart/funnel'), require('echarts/lib/chart/radar'), require('echarts/lib/chart/map'), require('echarts/extension/bmap/bmap'), require('echarts-amap'), require('echarts/lib/chart/sankey'), require('echarts/lib/chart/heatmap'), require('echarts/lib/component/visualMap'), require('echarts/lib/chart/scatter'), require('echarts/lib/chart/candlestick'), require('echarts/lib/component/dataZoom'), require('echarts/lib/chart/gauge'), require('echarts/lib/chart/tree')) :\n  typeof define === 'function' && define.amd ? define(['echarts/lib/echarts', 'echarts/lib/component/tooltip', 'echarts/lib/component/legend', 'echarts/lib/chart/bar', 'echarts/lib/chart/line', 'echarts/lib/chart/pie', 'echarts/lib/chart/funnel', 'echarts/lib/chart/radar', 'echarts/lib/chart/map', 'echarts/extension/bmap/bmap', 'echarts-amap', 'echarts/lib/chart/sankey', 'echarts/lib/chart/heatmap', 'echarts/lib/component/visualMap', 'echarts/lib/chart/scatter', 'echarts/lib/chart/candlestick', 'echarts/lib/component/dataZoom', 'echarts/lib/chart/gauge', 'echarts/lib/chart/tree'], factory) :\n  (global.VeIndex = factory(global.echarts));\n}(this, (function (echartsLib) { 'use strict';\n\n  echartsLib = echartsLib && echartsLib.hasOwnProperty('default') ? echartsLib['default'] : echartsLib;\n\n  var DEFAULT_THEME = {\n    categoryAxis: {\n      axisLine: { show: false },\n      axisTick: { show: false },\n      splitLine: { show: false }\n    },\n    valueAxis: {\n      axisLine: { show: false }\n    },\n    line: {\n      smooth: true\n    },\n    grid: {\n      containLabel: true,\n      left: 10,\n      right: 10\n    }\n  };\n\n  var DEFAULT_COLORS = ['#19d4ae', '#5ab1ef', '#fa6e86', '#ffb980', '#0067a6', '#c4b4e4', '#d87a80', '#9cbbff', '#d9d0c7', '#87a997', '#d49ea2', '#5b4947', '#7ba3a8'];\n\n  var HEAT_MAP_COLOR = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'];\n\n  var HEAT_BMAP_COLOR = ['blue', 'blue', 'green', 'yellow', 'red'];\n\n  var itemPoint = function itemPoint(color) {\n    return ['<span style=\"', 'background-color:' + color + ';', 'display: inline-block;', 'width: 10px;', 'height: 10px;', 'border-radius: 50%;', 'margin-right:2px;', '\"></span>'].join('');\n  };\n\n  var STATIC_PROPS = ['initOptions', 'loading', 'dataEmpty', 'judgeWidth', 'widthChangeDelay'];\n\n  var ECHARTS_SETTINGS = ['grid', 'dataZoom', 'visualMap', 'toolbox', 'title', 'legend', 'xAxis', 'yAxis', 'radar', 'tooltip', 'axisPointer', 'brush', 'geo', 'timeline', 'graphic', 'series', 'backgroundColor', 'textStyle'];\n\n  var ABBR = {\n    th: 3,\n    mi: 6,\n    bi: 9,\n    tr: 12\n  };\n\n  var DEFAULT_OPTIONS = {\n    zeroFormat: null,\n    nullFormat: null,\n    defaultFormat: '0,0',\n    scalePercentBy100: true,\n    abbrLabel: {\n      th: 'k',\n      mi: 'm',\n      bi: 'b',\n      tr: 't'\n    }\n  };\n\n  var TRILLION = 1e12;\n  var BILLION = 1e9;\n  var MILLION = 1e6;\n  var THOUSAND = 1e3;\n\n  function numIsNaN(value) {\n    return typeof value === 'number' && isNaN(value);\n  }\n\n  function toFixed(value, maxDecimals, roundingFunction, optionals) {\n    var splitValue = value.toString().split('.');\n    var minDecimals = maxDecimals - (optionals || 0);\n    var boundedPrecision = splitValue.length === 2 ? Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals) : minDecimals;\n    var power = Math.pow(10, boundedPrecision);\n    var output = (roundingFunction(value + 'e+' + boundedPrecision) / power).toFixed(boundedPrecision);\n\n    if (optionals > maxDecimals - boundedPrecision) {\n      var optionalsRegExp = new RegExp('\\\\.?0{1,' + (optionals - (maxDecimals - boundedPrecision)) + '}$');\n      output = output.replace(optionalsRegExp, '');\n    }\n\n    return output;\n  }\n\n  function numberToFormat(options, value, format, roundingFunction) {\n    var abs = Math.abs(value);\n    var negP = false;\n    var optDec = false;\n    var abbr = '';\n    var decimal = '';\n    var neg = false;\n    var abbrForce = void 0;\n    var signed = void 0;\n    format = format || '';\n\n    value = value || 0;\n\n    if (~format.indexOf('(')) {\n      negP = true;\n      format = format.replace(/[(|)]/g, '');\n    } else if (~format.indexOf('+') || ~format.indexOf('-')) {\n      signed = ~format.indexOf('+') ? format.indexOf('+') : value < 0 ? format.indexOf('-') : -1;\n      format = format.replace(/[+|-]/g, '');\n    }\n    if (~format.indexOf('a')) {\n      abbrForce = format.match(/a(k|m|b|t)?/);\n\n      abbrForce = abbrForce ? abbrForce[1] : false;\n\n      if (~format.indexOf(' a')) abbr = ' ';\n      format = format.replace(new RegExp(abbr + 'a[kmbt]?'), '');\n\n      if (abs >= TRILLION && !abbrForce || abbrForce === 't') {\n        abbr += options.abbrLabel.tr;\n        value = value / TRILLION;\n      } else if (abs < TRILLION && abs >= BILLION && !abbrForce || abbrForce === 'b') {\n        abbr += options.abbrLabel.bi;\n        value = value / BILLION;\n      } else if (abs < BILLION && abs >= MILLION && !abbrForce || abbrForce === 'm') {\n        abbr += options.abbrLabel.mi;\n        value = value / MILLION;\n      } else if (abs < MILLION && abs >= THOUSAND && !abbrForce || abbrForce === 'k') {\n        abbr += options.abbrLabel.th;\n        value = value / THOUSAND;\n      }\n    }\n    if (~format.indexOf('[.]')) {\n      optDec = true;\n      format = format.replace('[.]', '.');\n    }\n    var int = value.toString().split('.')[0];\n    var precision = format.split('.')[1];\n    var thousands = format.indexOf(',');\n    var leadingCount = (format.split('.')[0].split(',')[0].match(/0/g) || []).length;\n\n    if (precision) {\n      if (~precision.indexOf('[')) {\n        precision = precision.replace(']', '');\n        precision = precision.split('[');\n        decimal = toFixed(value, precision[0].length + precision[1].length, roundingFunction, precision[1].length);\n      } else {\n        decimal = toFixed(value, precision.length, roundingFunction);\n      }\n\n      int = decimal.split('.')[0];\n      decimal = ~decimal.indexOf('.') ? '.' + decimal.split('.')[1] : '';\n      if (optDec && +decimal.slice(1) === 0) decimal = '';\n    } else {\n      int = toFixed(value, 0, roundingFunction);\n    }\n    if (abbr && !abbrForce && +int >= 1000 && abbr !== ABBR.trillion) {\n      int = '' + +int / 1000;\n      abbr = ABBR.million;\n    }\n    if (~int.indexOf('-')) {\n      int = int.slice(1);\n      neg = true;\n    }\n    if (int.length < leadingCount) {\n      for (var i = leadingCount - int.length; i > 0; i--) {\n        int = '0' + int;\n      }\n    }\n\n    if (thousands > -1) {\n      int = int.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + ',');\n    }\n\n    if (!format.indexOf('.')) int = '';\n\n    var output = int + decimal + (abbr || '');\n\n    if (negP) {\n      output = (negP && neg ? '(' : '') + output + (negP && neg ? ')' : '');\n    } else {\n      if (signed >= 0) {\n        output = signed === 0 ? (neg ? '-' : '+') + output : output + (neg ? '-' : '+');\n      } else if (neg) {\n        output = '-' + output;\n      }\n    }\n\n    return output;\n  }\n\n  function extend(target, sub) {\n    Object.keys(sub).forEach(function (key) {\n      target[key] = sub[key];\n    });\n  }\n\n  var numerifyPercent = {\n    regexp: /%/,\n    format: function format(value, formatType, roundingFunction, numerify) {\n      var space = ~formatType.indexOf(' %') ? ' ' : '';\n      var output = void 0;\n\n      if (numerify.options.scalePercentBy100) value = value * 100;\n\n      formatType = formatType.replace(/\\s?%/, '');\n\n      output = numerify._numberToFormat(value, formatType, roundingFunction);\n\n      if (~output.indexOf(')')) {\n        output = output.split('');\n        output.splice(-1, 0, space + '%');\n        output = output.join('');\n      } else {\n        output = output + space + '%';\n      }\n\n      return output;\n    }\n  };\n\n  var options = {};\n  var formats = {};\n\n  extend(options, DEFAULT_OPTIONS);\n\n  function format(value, formatType, roundingFunction) {\n    formatType = formatType || options.defaultFormat;\n    roundingFunction = roundingFunction || Math.round;\n    var output = void 0;\n    var formatFunction = void 0;\n\n    if (value === 0 && options.zeroFormat !== null) {\n      output = options.zeroFormat;\n    } else if (value === null && options.nullFormat !== null) {\n      output = options.nullFormat;\n    } else {\n      for (var kind in formats) {\n        if (formats[kind] && formatType.match(formats[kind].regexp)) {\n          formatFunction = formats[kind].format;\n          break;\n        }\n      }\n      formatFunction = formatFunction || numberToFormat.bind(null, options);\n      output = formatFunction(value, formatType, roundingFunction, numerify);\n    }\n\n    return output;\n  }\n\n  function numerify(input, formatType, roundingFunction) {\n    var value = void 0;\n\n    if (input === 0 || typeof input === 'undefined') {\n      value = 0;\n    } else if (input === null || numIsNaN(input)) {\n      value = null;\n    } else if (typeof input === 'string') {\n      if (options.zeroFormat && input === options.zeroFormat) {\n        value = 0;\n      } else if (options.nullFormat && input === options.nullFormat || !input.replace(/[^0-9]+/g, '').length) {\n        value = null;\n      } else {\n        value = +input;\n      }\n    } else {\n      value = +input || null;\n    }\n\n    return format(value, formatType, roundingFunction);\n  }\n\n  numerify.options = options;\n  numerify._numberToFormat = numberToFormat.bind(null, options);\n  numerify.register = function (name, format) {\n    formats[name] = format;\n  };\n  numerify.unregister = function (name) {\n    formats[name] = null;\n  };\n  numerify.setOptions = function (opts) {\n    extend(options, opts);\n  };\n  numerify.reset = function () {\n    extend(options, DEFAULT_OPTIONS);\n  };\n\n  numerify.register('percentage', numerifyPercent);\n\n  var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  };\n\n  var defineProperty = function (obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n\n    return obj;\n  };\n\n  var _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  var toArray = function (arr) {\n    return Array.isArray(arr) ? arr : Array.from(arr);\n  };\n\n  function debounce(fn, delay) {\n    var timer = null;\n    return function () {\n      var self = this;\n      var args = arguments;\n      clearTimeout(timer);\n      timer = setTimeout(function () {\n        fn.apply(self, args);\n      }, delay);\n    };\n  }\n\n  function set$1(target, path, value) {\n    if (!path) return;\n    var targetTemp = target;\n    var pathArr = path.split('.');\n    pathArr.forEach(function (item, index) {\n      if (index === pathArr.length - 1) {\n        targetTemp[item] = value;\n      } else {\n        if (!targetTemp[item]) targetTemp[item] = {};\n        targetTemp = targetTemp[item];\n      }\n    });\n  }\n\n  function get$1(target, path, defaultValue) {\n    if (!path) return target;\n    var pathArr = path.split('.');\n    var targetTemp = target;\n    pathArr.some(function (item, index) {\n      if (targetTemp[item] === undefined) {\n        targetTemp = defaultValue;\n        return true;\n      } else {\n        targetTemp = targetTemp[item];\n      }\n    });\n    return targetTemp;\n  }\n\n  var _typeof$1 = typeof Symbol === \"function\" && _typeof(Symbol.iterator) === \"symbol\" ? function (obj) {\n    return typeof obj === 'undefined' ? 'undefined' : _typeof(obj);\n  } : function (obj) {\n    return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj === 'undefined' ? 'undefined' : _typeof(obj);\n  };\n\n  function getType(v) {\n    return Object.prototype.toString.call(v);\n  }\n\n  function getTypeof(v) {\n    return typeof v === 'undefined' ? 'undefined' : _typeof$1(v);\n  }\n\n  function isObject(v) {\n    return getType(v) === '[object Object]';\n  }\n\n  function isArray(v) {\n    return getType(v) === '[object Array]';\n  }\n\n  function isFunction(v) {\n    return getType(v) === '[object Function]';\n  }\n\n  function cloneDeep(v) {\n    return JSON.parse(JSON.stringify(v));\n  }\n\n  function camelToKebab(s) {\n    return s.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n  }\n\n  function hasOwn(source, target) {\n    return Object.prototype.hasOwnProperty.call(source, target);\n  }\n\n  function isEqual(alice, bob) {\n    if (alice === bob) return true;\n    if (alice === null || bob === null || getTypeof(alice) !== 'object' || getTypeof(bob) !== 'object') {\n      return alice === bob;\n    }\n\n    for (var key in alice) {\n      if (!hasOwn(alice, key)) continue;\n      var aliceValue = alice[key];\n      var bobValue = bob[key];\n      var aliceType = getTypeof(aliceValue);\n\n      if (getTypeof(bobValue) === 'undefined') {\n        return false;\n      } else if (aliceType === 'object') {\n        if (!isEqual(aliceValue, bobValue)) return false;\n      } else if (aliceValue !== bobValue) {\n        return false;\n      }\n    }\n    for (var _key in bob) {\n      if (!hasOwn(bob, _key)) continue;\n      if (getTypeof(alice)[_key] === 'undefined') return false;\n    }\n\n    return true;\n  }\n\n  var getFormated = function getFormated(val, type, digit) {\n    var defaultVal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '-';\n\n    if (isNaN(val)) return defaultVal;\n    if (!type) return val;\n    if (isFunction(type)) return type(val, numerify);\n\n    digit = isNaN(digit) ? 0 : ++digit;\n    var digitStr = '.[' + new Array(digit).join(0) + ']';\n    var formatter = type;\n    switch (type) {\n      case 'KMB':\n        formatter = digit ? '0,0' + digitStr + 'a' : '0,0a';\n        break;\n      case 'normal':\n        formatter = digit ? '0,0' + digitStr : '0,0';\n        break;\n      case 'percent':\n        formatter = digit ? '0,0' + digitStr + '%' : '0,0.[00]%';\n        break;\n    }\n    return numerify(val, formatter);\n  };\n\n  var getStackMap = function getStackMap(stack) {\n    var stackMap = {};\n    Object.keys(stack).forEach(function (item) {\n      stack[item].forEach(function (name) {\n        stackMap[name] = item;\n      });\n    });\n    return stackMap;\n  };\n\n  var $get = function $get(url) {\n    return new Promise(function (resolve, reject) {\n      var xhr = new XMLHttpRequest();\n      xhr.open('GET', url);\n      xhr.send(null);\n      xhr.onload = function () {\n        resolve(JSON.parse(xhr.responseText));\n      };\n      xhr.onerror = function () {\n        reject(JSON.parse(xhr.responseText));\n      };\n    });\n  };\n\n  var mapPromise = {};\n\n  var getMapJSON = function getMapJSON(_ref) {\n    var position = _ref.position,\n        positionJsonLink = _ref.positionJsonLink,\n        beforeRegisterMapOnce = _ref.beforeRegisterMapOnce,\n        mapURLProfix = _ref.mapURLProfix;\n\n    var link = positionJsonLink || '' + mapURLProfix + position + '.json';\n    if (!mapPromise[link]) {\n      mapPromise[link] = $get(link).then(function (res) {\n        if (beforeRegisterMapOnce) res = beforeRegisterMapOnce(res);\n        return res;\n      });\n    }\n    return mapPromise[link];\n  };\n\n  var bmapPromise = null;\n  var amapPromise = null;\n\n  var getBmap = function getBmap(key, v) {\n    if (!bmapPromise) {\n      bmapPromise = new Promise(function (resolve, reject) {\n        var callbackName = 'bmap' + Date.now();\n        window[callbackName] = resolve;\n        var script = document.createElement('script');\n        script.src = ['https://api.map.baidu.com/api?v=' + (v || '2.0'), 'ak=' + key, 'callback=' + callbackName].join('&');\n\n        document.body.appendChild(script);\n      });\n    }\n    return bmapPromise;\n  };\n\n  var getAmap = function getAmap(key, v) {\n    if (!amapPromise) {\n      amapPromise = new Promise(function (resolve, reject) {\n        var callbackName = 'amap' + Date.now();\n        window[callbackName] = resolve;\n        var script = document.createElement('script');\n        script.src = ['https://webapi.amap.com/maps?v=' + (v || '1.4.3'), 'key=' + key, 'callback=' + callbackName].join('&');\n\n        document.body.appendChild(script);\n      });\n    }\n    return amapPromise;\n  };\n\n  // default opacity of bar while dim-axis type is 'value'\n  var VALUE_AXIS_OPACITY = 0.5;\n\n  function getBarDimAxis(args) {\n    var innerRows = args.innerRows,\n        dimAxisName = args.dimAxisName,\n        dimension = args.dimension,\n        axisVisible = args.axisVisible,\n        dimAxisType = args.dimAxisType,\n        dims = args.dims;\n\n    return dimension.map(function (item) {\n      return {\n        type: 'category',\n        name: dimAxisName,\n        nameLocation: 'middle',\n        nameGap: 22,\n        data: dimAxisType === 'value' ? getValueAxisData(dims) : innerRows.map(function (row) {\n          return row[item];\n        }),\n        axisLabel: {\n          formatter: function formatter(v) {\n            return String(v);\n          }\n        },\n        show: axisVisible\n      };\n    });\n  }\n\n  function getValueAxisData(dims) {\n    var max = Math.max.apply(null, dims);\n    var min = Math.min.apply(null, dims);\n    var result = [];\n    for (var i = min; i <= max; i++) {\n      result.push(i);\n    }\n    return result;\n  }\n\n  function getBarMeaAxis(args) {\n    var meaAxisName = args.meaAxisName,\n        meaAxisType = args.meaAxisType,\n        axisVisible = args.axisVisible,\n        digit = args.digit,\n        scale = args.scale,\n        min = args.min,\n        max = args.max;\n\n    var meaAxisBase = {\n      type: 'value',\n      axisTick: {\n        show: false\n      },\n      show: axisVisible\n    };\n    var meaAxis = [];\n\n    var _loop = function _loop(i) {\n      if (meaAxisType[i]) {\n        meaAxis[i] = _extends({}, meaAxisBase, {\n          axisLabel: {\n            formatter: function formatter(val) {\n              return getFormated(val, meaAxisType[i], digit);\n            }\n          }\n        });\n      } else {\n        meaAxis[i] = _extends({}, meaAxisBase);\n      }\n      meaAxis[i].name = meaAxisName[i] || '';\n      meaAxis[i].scale = scale[i] || false;\n      meaAxis[i].min = min[i] || null;\n      meaAxis[i].max = max[i] || null;\n    };\n\n    for (var i = 0; i < 2; i++) {\n      _loop(i);\n    }\n\n    return meaAxis;\n  }\n\n  function getBarTooltip(args) {\n    var axisSite = args.axisSite,\n        isHistogram = args.isHistogram,\n        meaAxisType = args.meaAxisType,\n        digit = args.digit,\n        labelMap = args.labelMap;\n\n    var secondAxis = isHistogram ? axisSite.right || [] : axisSite.top || [];\n    if (labelMap) {\n      secondAxis = secondAxis.map(function (item) {\n        return labelMap[item] === undefined ? item : labelMap[item];\n      });\n    }\n    return {\n      trigger: 'axis',\n      formatter: function formatter(items) {\n        var tpl = [];\n        tpl.push(items[0].name + '<br>');\n        items.forEach(function (item) {\n          var seriesName = item.seriesName;\n          var type = ~secondAxis.indexOf(seriesName) ? meaAxisType[1] : meaAxisType[0];\n          tpl.push(itemPoint(item.color));\n          tpl.push(seriesName + ': ');\n          tpl.push(getFormated(item.value, type, digit));\n          tpl.push('<br>');\n        });\n\n        return tpl.join('');\n      }\n    };\n  }\n\n  function getValueData(seriesTemp, dims) {\n    var max = Math.max.apply(null, dims);\n    var min = Math.min.apply(null, dims);\n    var result = [];\n    for (var i = min; i <= max; i++) {\n      var index = dims.indexOf(i);\n      if (~index) {\n        result.push(seriesTemp[index]);\n      } else {\n        result.push(null);\n      }\n    }\n    return result;\n  }\n\n  function getBarSeries(args) {\n    var innerRows = args.innerRows,\n        metrics = args.metrics,\n        stack = args.stack,\n        axisSite = args.axisSite,\n        isHistogram = args.isHistogram,\n        labelMap = args.labelMap,\n        itemStyle = args.itemStyle,\n        label = args.label,\n        _args$showLine = args.showLine,\n        showLine = _args$showLine === undefined ? [] : _args$showLine,\n        dimAxisType = args.dimAxisType,\n        barGap = args.barGap,\n        opacity = args.opacity,\n        dims = args.dims;\n\n    var series = [];\n    var seriesTemp = {};\n    var secondAxis = isHistogram ? axisSite.right || [] : axisSite.top || [];\n    var secondDimAxisIndex = isHistogram ? 'yAxisIndex' : 'xAxisIndex';\n    var stackMap = stack && getStackMap(stack);\n    metrics.forEach(function (item) {\n      seriesTemp[item] = [];\n    });\n    innerRows.forEach(function (row) {\n      metrics.forEach(function (item) {\n        seriesTemp[item].push(row[item]);\n      });\n    });\n    series = Object.keys(seriesTemp).map(function (item, index) {\n      var data = dimAxisType === 'value' ? getValueData(seriesTemp[item], dims) : seriesTemp[item];\n      var seriesItem = defineProperty({\n        name: labelMap[item] != null ? labelMap[item] : item,\n        type: ~showLine.indexOf(item) ? 'line' : 'bar',\n        data: data\n      }, secondDimAxisIndex, ~secondAxis.indexOf(item) ? '1' : '0');\n\n      if (stack && stackMap[item]) seriesItem.stack = stackMap[item];\n\n      if (label) seriesItem.label = label;\n      if (itemStyle) seriesItem.itemStyle = itemStyle;\n\n      var itemOpacity = opacity || get$1(seriesItem, 'itemStyle.normal.opacity');\n      if (dimAxisType === 'value') {\n        seriesItem.barGap = barGap;\n        seriesItem.barCategoryGap = '1%';\n        if (itemOpacity == null) itemOpacity = VALUE_AXIS_OPACITY;\n      }\n\n      if (itemOpacity != null) {\n        set$1(seriesItem, 'itemStyle.normal.opacity', itemOpacity);\n      }\n\n      return seriesItem;\n    });\n\n    return series.length ? series : false;\n  }\n\n  function getLegend(args) {\n    var metrics = args.metrics,\n        labelMap = args.labelMap,\n        legendName = args.legendName;\n\n    if (!legendName && !labelMap) return { data: metrics };\n    var data = labelMap ? metrics.map(function (item) {\n      return labelMap[item] == null ? item : labelMap[item];\n    }) : metrics;\n    return {\n      data: data,\n      formatter: function formatter(name) {\n        return legendName[name] != null ? legendName[name] : name;\n      }\n    };\n  }\n\n  function getDims(rows, dimension) {\n    return rows.map(function (row) {\n      return row[dimension[0]];\n    });\n  }\n\n  var bar$1 = function bar$$1(columns, rows, settings, extra) {\n    var innerRows = cloneDeep(rows);\n    var _settings$axisSite = settings.axisSite,\n        axisSite = _settings$axisSite === undefined ? {} : _settings$axisSite,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? [columns[0]] : _settings$dimension,\n        _settings$stack = settings.stack,\n        stack = _settings$stack === undefined ? {} : _settings$stack,\n        _settings$axisVisible = settings.axisVisible,\n        axisVisible = _settings$axisVisible === undefined ? true : _settings$axisVisible,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        _settings$dataOrder = settings.dataOrder,\n        dataOrder = _settings$dataOrder === undefined ? false : _settings$dataOrder,\n        _settings$scale = settings.scale,\n        scale = _settings$scale === undefined ? [false, false] : _settings$scale,\n        _settings$min = settings.min,\n        min = _settings$min === undefined ? [null, null] : _settings$min,\n        _settings$max = settings.max,\n        max = _settings$max === undefined ? [null, null] : _settings$max,\n        _settings$legendName = settings.legendName,\n        legendName = _settings$legendName === undefined ? {} : _settings$legendName,\n        _settings$labelMap = settings.labelMap,\n        labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,\n        label = settings.label,\n        itemStyle = settings.itemStyle,\n        showLine = settings.showLine,\n        _settings$barGap = settings.barGap,\n        barGap = _settings$barGap === undefined ? '-100%' : _settings$barGap,\n        opacity = settings.opacity;\n    var tooltipVisible = extra.tooltipVisible,\n        legendVisible = extra.legendVisible;\n\n    var metrics = columns.slice();\n    if (axisSite.top && axisSite.bottom) {\n      metrics = axisSite.top.concat(axisSite.bottom);\n    } else if (axisSite.bottom && !axisSite.right) {\n      metrics = axisSite.bottom;\n    } else if (settings.metrics) {\n      metrics = settings.metrics;\n    } else {\n      metrics.splice(columns.indexOf(dimension[0]), 1);\n    }\n    var meaAxisType = settings.xAxisType || ['normal', 'normal'];\n    var dimAxisType = settings.yAxisType || 'category';\n    var meaAxisName = settings.xAxisName || [];\n    var dimAxisName = settings.yAxisName || '';\n    var isHistogram = false;\n\n    if (dataOrder) {\n      var _label = dataOrder.label,\n          order = dataOrder.order;\n\n      if (!_label || !order) {\n        console.warn('Need to provide name and order parameters');\n      } else {\n        innerRows.sort(function (a, b) {\n          if (order === 'desc') {\n            return a[_label] - b[_label];\n          } else {\n            return b[_label] - a[_label];\n          }\n        });\n      }\n    }\n    var dims = getDims(innerRows, dimension);\n\n    var legend$$1 = legendVisible && getLegend({ metrics: metrics, labelMap: labelMap, legendName: legendName });\n    var yAxis = getBarDimAxis({\n      innerRows: innerRows,\n      dimAxisName: dimAxisName,\n      dimension: dimension,\n      axisVisible: axisVisible,\n      dimAxisType: dimAxisType,\n      dims: dims\n    });\n    var xAxis = getBarMeaAxis({\n      meaAxisName: meaAxisName,\n      meaAxisType: meaAxisType,\n      axisVisible: axisVisible,\n      digit: digit,\n      scale: scale,\n      min: min,\n      max: max\n    });\n    var series = getBarSeries({\n      innerRows: innerRows,\n      metrics: metrics,\n      stack: stack,\n      axisSite: axisSite,\n      isHistogram: isHistogram,\n      labelMap: labelMap,\n      itemStyle: itemStyle,\n      label: label,\n      showLine: showLine,\n      dimAxisType: dimAxisType,\n      dimension: dimension,\n      barGap: barGap,\n      opacity: opacity,\n      dims: dims\n    });\n    var tooltipParams = { axisSite: axisSite, isHistogram: isHistogram, meaAxisType: meaAxisType, digit: digit, labelMap: labelMap };\n    var tooltip$$1 = tooltipVisible && getBarTooltip(tooltipParams);\n    var options = { legend: legend$$1, yAxis: yAxis, series: series, xAxis: xAxis, tooltip: tooltip$$1 };\n    return options;\n  };\n\n  var histogram = function histogram(columns, rows, settings, status) {\n    var innerRows = cloneDeep(rows);\n    var _settings$axisSite2 = settings.axisSite,\n        axisSite = _settings$axisSite2 === undefined ? {} : _settings$axisSite2,\n        _settings$dimension2 = settings.dimension,\n        dimension = _settings$dimension2 === undefined ? [columns[0]] : _settings$dimension2,\n        _settings$stack2 = settings.stack,\n        stack = _settings$stack2 === undefined ? {} : _settings$stack2,\n        _settings$axisVisible2 = settings.axisVisible,\n        axisVisible = _settings$axisVisible2 === undefined ? true : _settings$axisVisible2,\n        _settings$digit2 = settings.digit,\n        digit = _settings$digit2 === undefined ? 2 : _settings$digit2,\n        _settings$dataOrder2 = settings.dataOrder,\n        dataOrder = _settings$dataOrder2 === undefined ? false : _settings$dataOrder2,\n        _settings$scale2 = settings.scale,\n        scale = _settings$scale2 === undefined ? [false, false] : _settings$scale2,\n        _settings$min2 = settings.min,\n        min = _settings$min2 === undefined ? [null, null] : _settings$min2,\n        _settings$max2 = settings.max,\n        max = _settings$max2 === undefined ? [null, null] : _settings$max2,\n        _settings$labelMap2 = settings.labelMap,\n        labelMap = _settings$labelMap2 === undefined ? {} : _settings$labelMap2,\n        _settings$legendName2 = settings.legendName,\n        legendName = _settings$legendName2 === undefined ? {} : _settings$legendName2,\n        label = settings.label,\n        itemStyle = settings.itemStyle,\n        showLine = settings.showLine,\n        _settings$barGap2 = settings.barGap,\n        barGap = _settings$barGap2 === undefined ? '-100%' : _settings$barGap2,\n        opacity = settings.opacity;\n\n\n    if (dataOrder) {\n      var _label2 = dataOrder.label,\n          order = dataOrder.order;\n\n      if (!_label2 || !order) {\n        console.warn('Need to provide name and order parameters');\n      } else {\n        innerRows.sort(function (a, b) {\n          if (order === 'desc') {\n            return a[_label2] - b[_label2];\n          } else {\n            return b[_label2] - a[_label2];\n          }\n        });\n      }\n    }\n\n    var tooltipVisible = status.tooltipVisible,\n        legendVisible = status.legendVisible;\n\n    var metrics = columns.slice();\n    if (axisSite.left && axisSite.right) {\n      metrics = axisSite.left.concat(axisSite.right);\n    } else if (axisSite.left && !axisSite.right) {\n      metrics = axisSite.left;\n    } else if (settings.metrics) {\n      metrics = settings.metrics;\n    } else {\n      metrics.splice(columns.indexOf(dimension[0]), 1);\n    }\n    var meaAxisType = settings.yAxisType || ['normal', 'normal'];\n    var dimAxisType = settings.xAxisType || 'category';\n    var meaAxisName = settings.yAxisName || [];\n    var dimAxisName = settings.xAxisName || '';\n    var isHistogram = true;\n    var dims = getDims(innerRows, dimension);\n\n    var legend$$1 = legendVisible && getLegend({ metrics: metrics, labelMap: labelMap, legendName: legendName });\n    var xAxis = getBarDimAxis({\n      innerRows: innerRows,\n      dimAxisName: dimAxisName,\n      dimension: dimension,\n      axisVisible: axisVisible,\n      dimAxisType: dimAxisType,\n      dims: dims\n    });\n    var yAxis = getBarMeaAxis({\n      meaAxisName: meaAxisName,\n      meaAxisType: meaAxisType,\n      axisVisible: axisVisible,\n      digit: digit,\n      scale: scale,\n      min: min,\n      max: max\n    });\n    var series = getBarSeries({\n      innerRows: innerRows,\n      metrics: metrics,\n      stack: stack,\n      axisSite: axisSite,\n      isHistogram: isHistogram,\n      labelMap: labelMap,\n      itemStyle: itemStyle,\n      label: label,\n      showLine: showLine,\n      dimAxisType: dimAxisType,\n      dimension: dimension,\n      barGap: barGap,\n      opacity: opacity,\n      dims: dims\n    });\n    var tooltipParams = { axisSite: axisSite, isHistogram: isHistogram, meaAxisType: meaAxisType, digit: digit, labelMap: labelMap };\n    var tooltip$$1 = tooltipVisible && getBarTooltip(tooltipParams);\n    var options = { legend: legend$$1, yAxis: yAxis, series: series, xAxis: xAxis, tooltip: tooltip$$1 };\n    return options;\n  };\n\n  var Loading = { render: function render() {\n      var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"v-charts-component-loading\" }, [_c('div', { staticClass: \"loader\" }, [_c('div', { staticClass: \"loading-spinner\" }, [_c('svg', { staticClass: \"circular\", attrs: { \"viewBox\": \"25 25 50 50\" } }, [_c('circle', { staticClass: \"path\", attrs: { \"cx\": \"50\", \"cy\": \"50\", \"r\": \"20\", \"fill\": \"none\" } })])])])]);\n    }, staticRenderFns: []\n  };\n\n  var DataEmpty = { render: function render() {\n      var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"v-charts-data-empty\" }, [_vm._v(\" 鏆傛棤鏁版嵁 \")]);\n    }, staticRenderFns: []\n  };\n\n  function setExtend (options, extend) {\n    Object.keys(extend).forEach(function (attr) {\n      var value = extend[attr];\n      if (~attr.indexOf('.')) {\n        // eg: a.b.c a.1.b\n        set$1(options, attr, value);\n      } else if (typeof value === 'function') {\n        // get callback value\n        options[attr] = value(options[attr]);\n      } else {\n        // mixin extend value\n        if (isArray(options[attr]) && isObject(options[attr][0])) {\n          // eg: [{ xx: 1 }, { xx: 2 }]\n          options[attr].forEach(function (option, index) {\n            options[attr][index] = _extends({}, option, value);\n          });\n        } else if (isObject(options[attr])) {\n          // eg: { xx: 1, yy: 2 }\n          options[attr] = _extends({}, options[attr], value);\n        } else {\n          options[attr] = value;\n        }\n      }\n    });\n  }\n\n  function setMark (seriesItem, marks) {\n    Object.keys(marks).forEach(function (key) {\n      if (marks[key]) seriesItem[key] = marks[key];\n    });\n  }\n\n  function setAnimation (options, animation) {\n    Object.keys(animation).forEach(function (key) {\n      options[key] = animation[key];\n    });\n  }\n\n  var Core = {\n    render: function render(h) {\n      return h('div', {\n        class: [camelToKebab(this.$options.name || this.$options._componentTag)],\n        style: this.canvasStyle\n      }, [h('div', {\n        style: this.canvasStyle,\n        class: { 'v-charts-mask-status': this.dataEmpty || this.loading },\n        ref: 'canvas'\n      }), h(DataEmpty, {\n        style: { display: this.dataEmpty ? '' : 'none' }\n      }), h(Loading, {\n        style: { display: this.loading ? '' : 'none' }\n      }), this.$slots.default]);\n    },\n\n\n    props: {\n      data: { type: [Object, Array], default: function _default() {\n          return {};\n        }\n      },\n      settings: { type: Object, default: function _default() {\n          return {};\n        }\n      },\n      width: { type: String, default: 'auto' },\n      height: { type: String, default: '400px' },\n      beforeConfig: { type: Function },\n      afterConfig: { type: Function },\n      afterSetOption: { type: Function },\n      afterSetOptionOnce: { type: Function },\n      events: { type: Object },\n      grid: { type: [Object, Array] },\n      colors: { type: Array },\n      tooltipVisible: { type: Boolean, default: true },\n      legendVisible: { type: Boolean, default: true },\n      legendPosition: { type: String },\n      markLine: { type: Object },\n      markArea: { type: Object },\n      markPoint: { type: Object },\n      visualMap: { type: [Object, Array] },\n      dataZoom: { type: [Object, Array] },\n      toolbox: { type: [Object, Array] },\n      initOptions: { type: Object, default: function _default() {\n          return {};\n        }\n      },\n      title: [Object, Array],\n      legend: [Object, Array],\n      xAxis: [Object, Array],\n      yAxis: [Object, Array],\n      radar: Object,\n      tooltip: Object,\n      axisPointer: [Object, Array],\n      brush: [Object, Array],\n      geo: [Object, Array],\n      timeline: [Object, Array],\n      graphic: [Object, Array],\n      series: [Object, Array],\n      backgroundColor: [Object, String],\n      textStyle: [Object, Array],\n      animation: Object,\n      theme: Object,\n      themeName: String,\n      loading: Boolean,\n      dataEmpty: Boolean,\n      extend: Object,\n      judgeWidth: { type: Boolean, default: false },\n      widthChangeDelay: { type: Number, default: 300 },\n      tooltipFormatter: { type: Function },\n      resizeable: { type: Boolean, default: true },\n      resizeDelay: { type: Number, default: 200 },\n      changeDelay: { type: Number, default: 0 },\n      setOptionOpts: { type: [Boolean, Object], default: true },\n      cancelResizeCheck: Boolean,\n      notSetUnchange: Array\n    },\n\n    watch: {\n      data: {\n        deep: true,\n        handler: function handler(v) {\n          if (v) {\n            this.changeHandler();\n          }\n        }\n      },\n\n      settings: {\n        deep: true,\n        handler: function handler(v) {\n          if (v.type && this.chartLib) this.chartHandler = this.chartLib[v.type];\n          this.changeHandler();\n        }\n      },\n\n      width: 'nextTickResize',\n      height: 'nextTickResize',\n\n      events: {\n        deep: true,\n        handler: 'createEventProxy'\n      },\n\n      theme: {\n        deep: true,\n        handler: 'themeChange'\n      },\n\n      themeName: 'themeChange',\n\n      resizeable: 'resizeableHandler'\n    },\n\n    computed: {\n      canvasStyle: function canvasStyle() {\n        return {\n          width: this.width,\n          height: this.height,\n          position: 'relative'\n        };\n      },\n      chartColor: function chartColor() {\n        return this.colors || this.theme && this.theme.color || DEFAULT_COLORS;\n      }\n    },\n\n    methods: {\n      dataHandler: function dataHandler() {\n        if (!this.chartHandler) return;\n        var data = this.data;\n        var _data = data,\n            _data$columns = _data.columns,\n            columns = _data$columns === undefined ? [] : _data$columns,\n            _data$rows = _data.rows,\n            rows = _data$rows === undefined ? [] : _data$rows;\n\n        var extra = {\n          tooltipVisible: this.tooltipVisible,\n          legendVisible: this.legendVisible,\n          echarts: this.echarts,\n          color: this.chartColor,\n          tooltipFormatter: this.tooltipFormatter,\n          _once: this._once\n        };\n        if (this.beforeConfig) data = this.beforeConfig(data);\n\n        var options = this.chartHandler(columns, rows, this.settings, extra);\n        if (options) {\n          if (typeof options.then === 'function') {\n            options.then(this.optionsHandler);\n          } else {\n            this.optionsHandler(options);\n          }\n        }\n      },\n      nextTickResize: function nextTickResize() {\n        this.$nextTick(this.resize);\n      },\n      resize: function resize() {\n        if (!this.cancelResizeCheck) {\n          if (this.$el && this.$el.clientWidth && this.$el.clientHeight) {\n            this.echartsResize();\n          }\n        } else {\n          this.echartsResize();\n        }\n      },\n      echartsResize: function echartsResize() {\n        this.echarts && this.echarts.resize();\n      },\n      optionsHandler: function optionsHandler(options) {\n        var _this = this;\n\n        // legend\n        if (this.legendPosition && options.legend) {\n          options.legend[this.legendPosition] = 10;\n          if (~['left', 'right'].indexOf(this.legendPosition)) {\n            options.legend.top = 'middle';\n            options.legend.orient = 'vertical';\n          }\n        }\n        // color\n        options.color = this.chartColor;\n        // echarts self settings\n        ECHARTS_SETTINGS.forEach(function (setting) {\n          if (_this[setting]) options[setting] = _this[setting];\n        });\n        // animation\n        if (this.animation) setAnimation(options, this.animation);\n        // marks\n        if (this.markArea || this.markLine || this.markPoint) {\n          var marks = {\n            markArea: this.markArea,\n            markLine: this.markLine,\n            markPoint: this.markPoint\n          };\n          var series = options.series;\n          if (isArray(series)) {\n            series.forEach(function (item) {\n              setMark(item, marks);\n            });\n          } else if (isObject(series)) {\n            setMark(series, marks);\n          }\n        }\n        // change inited echarts settings\n        if (this.extend) setExtend(options, this.extend);\n        if (this.afterConfig) options = this.afterConfig(options);\n        var setOptionOpts = this.setOptionOpts;\n        // map chart not merge\n        if ((this.settings.bmap || this.settings.amap) && !isObject(setOptionOpts)) {\n          setOptionOpts = false;\n        }\n        // exclude unchange options\n        if (this.notSetUnchange && this.notSetUnchange.length) {\n          this.notSetUnchange.forEach(function (item) {\n            var value = options[item];\n            if (value) {\n              if (isEqual(value, _this._store[item])) {\n                options[item] = undefined;\n              } else {\n                _this._store[item] = cloneDeep(value);\n              }\n            }\n          });\n          if (isObject(setOptionOpts)) {\n            setOptionOpts.notMerge = false;\n          } else {\n            setOptionOpts = false;\n          }\n        }\n        if (this._isDestroyed) return;\n        this.echarts.setOption(options, setOptionOpts);\n        this.$emit('ready', this.echarts, options, echartsLib);\n        if (!this._once['ready-once']) {\n          this._once['ready-once'] = true;\n          this.$emit('ready-once', this.echarts, options, echartsLib);\n        }\n        if (this.judgeWidth) this.judgeWidthHandler(options);\n        if (this.afterSetOption) this.afterSetOption(this.echarts, options, echartsLib);\n        if (this.afterSetOptionOnce && !this._once['afterSetOptionOnce']) {\n          this._once['afterSetOptionOnce'] = true;\n          this.afterSetOptionOnce(this.echarts, options, echartsLib);\n        }\n      },\n      judgeWidthHandler: function judgeWidthHandler(options) {\n        var _this2 = this;\n\n        var widthChangeDelay = this.widthChangeDelay,\n            resize = this.resize;\n\n        if (this.$el.clientWidth || this.$el.clientHeight) {\n          resize();\n        } else {\n          this.$nextTick(function (_) {\n            if (_this2.$el.clientWidth || _this2.$el.clientHeight) {\n              resize();\n            } else {\n              setTimeout(function (_) {\n                resize();\n                if (!_this2.$el.clientWidth || !_this2.$el.clientHeight) {\n                  console.warn(' Can\\'t get dom width or height ');\n                }\n              }, widthChangeDelay);\n            }\n          });\n        }\n      },\n      resizeableHandler: function resizeableHandler(resizeable) {\n        if (resizeable && !this._once.onresize) this.addResizeListener();\n        if (!resizeable && this._once.onresize) this.removeResizeListener();\n      },\n      init: function init() {\n        if (this.echarts) return;\n        var themeName = this.themeName || this.theme || DEFAULT_THEME;\n        this.echarts = echartsLib.init(this.$refs.canvas, themeName, this.initOptions);\n        if (this.data) this.changeHandler();\n        this.createEventProxy();\n        if (this.resizeable) this.addResizeListener();\n      },\n      addResizeListener: function addResizeListener() {\n        window.addEventListener('resize', this.resizeHandler);\n        this._once.onresize = true;\n      },\n      removeResizeListener: function removeResizeListener() {\n        window.removeEventListener('resize', this.resizeHandler);\n        this._once.onresize = false;\n      },\n      addWatchToProps: function addWatchToProps() {\n        var _this3 = this;\n\n        var watchedVariable = this._watchers.map(function (watcher) {\n          return watcher.expression;\n        });\n        Object.keys(this.$props).forEach(function (prop) {\n          if (!~watchedVariable.indexOf(prop) && !~STATIC_PROPS.indexOf(prop)) {\n            var opts = {};\n            if (~['[object Object]', '[object Array]'].indexOf(getType(_this3.$props[prop]))) {\n              opts.deep = true;\n            }\n            _this3.$watch(prop, function () {\n              _this3.changeHandler();\n            }, opts);\n          }\n        });\n      },\n      createEventProxy: function createEventProxy() {\n        var _this4 = this;\n\n        // 鍙鐢ㄦ埛浣跨敤 on 鏂规硶缁戝畾鐨勪簨浠堕兘鍋氫竴灞備唬鐞嗭紝\n        // 鏄惁鐪熸鎵ц鐩稿簲鐨勪簨浠舵柟娉曞彇鍐充簬璇ユ柟娉曟槸鍚︿粛鐒跺瓨鍦� events 涓璡n        // 瀹炵幇 events 鐨勫姩鎬佸搷搴擻n        var self = this;\n        var keys = Object.keys(this.events || {});\n        keys.length && keys.forEach(function (ev) {\n          if (_this4.registeredEvents.indexOf(ev) === -1) {\n            _this4.registeredEvents.push(ev);\n            _this4.echarts.on(ev, function (ev) {\n              return function () {\n                if (ev in self.events) {\n                  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n                    args[_key] = arguments[_key];\n                  }\n\n                  self.events[ev].apply(null, args);\n                }\n              };\n            }(ev));\n          }\n        });\n      },\n      themeChange: function themeChange(theme) {\n        this.clean();\n        this.echarts = null;\n        this.init();\n      },\n      clean: function clean() {\n        if (this.resizeable) this.removeResizeListener();\n        this.echarts.dispose();\n      }\n    },\n\n    created: function created() {\n      this.echarts = null;\n      this.registeredEvents = [];\n      this._once = {};\n      this._store = {};\n      this.resizeHandler = debounce(this.resize, this.resizeDelay);\n      this.changeHandler = debounce(this.dataHandler, this.changeDelay);\n      this.addWatchToProps();\n    },\n    mounted: function mounted() {\n      this.init();\n    },\n    beforeDestroy: function beforeDestroy() {\n      this.clean();\n    },\n\n\n    _numerify: numerify\n  };\n\n  var VeBar = _extends({}, Core, {\n    name: 'VeBar',\n    data: function data() {\n      this.chartHandler = bar$1;\n      return {};\n    }\n  });\n\n  var VeHistogram = _extends({}, Core, {\n    name: 'VeHistogram',\n    data: function data() {\n      this.chartHandler = histogram;\n      return {};\n    }\n  });\n\n  function getLineXAxis(args) {\n    var dimension = args.dimension,\n        rows = args.rows,\n        xAxisName = args.xAxisName,\n        axisVisible = args.axisVisible,\n        xAxisType = args.xAxisType;\n\n    return dimension.map(function (item, index) {\n      return {\n        type: xAxisType,\n        nameLocation: 'middle',\n        nameGap: 22,\n        name: xAxisName[index] || '',\n        axisTick: { show: true, lineStyle: { color: '#eee' } },\n        data: rows.map(function (row) {\n          return row[item];\n        }),\n        show: axisVisible\n      };\n    });\n  }\n\n  function getLineSeries(args) {\n    var rows = args.rows,\n        axisSite = args.axisSite,\n        metrics = args.metrics,\n        area = args.area,\n        stack = args.stack,\n        nullAddZero = args.nullAddZero,\n        labelMap = args.labelMap,\n        label = args.label,\n        itemStyle = args.itemStyle,\n        lineStyle = args.lineStyle,\n        areaStyle = args.areaStyle,\n        dimension = args.dimension;\n\n    var series = [];\n    var dataTemp = {};\n    var stackMap = stack && getStackMap(stack);\n    metrics.forEach(function (item) {\n      dataTemp[item] = [];\n    });\n    rows.forEach(function (row) {\n      metrics.forEach(function (item) {\n        var value = null;\n        if (row[item] != null) {\n          value = row[item];\n        } else if (nullAddZero) {\n          value = 0;\n        }\n        dataTemp[item].push([row[dimension[0]], value]);\n      });\n    });\n    metrics.forEach(function (item) {\n      var seriesItem = {\n        name: labelMap[item] != null ? labelMap[item] : item,\n        type: 'line',\n        data: dataTemp[item]\n      };\n\n      if (area) seriesItem.areaStyle = { normal: {} };\n      if (axisSite.right) {\n        seriesItem.yAxisIndex = ~axisSite.right.indexOf(item) ? 1 : 0;\n      }\n\n      if (stack && stackMap[item]) seriesItem.stack = stackMap[item];\n\n      if (label) seriesItem.label = label;\n      if (itemStyle) seriesItem.itemStyle = itemStyle;\n      if (lineStyle) seriesItem.lineStyle = lineStyle;\n      if (areaStyle) seriesItem.areaStyle = areaStyle;\n\n      series.push(seriesItem);\n    });\n    return series;\n  }\n\n  function getLineYAxis(args) {\n    var yAxisName = args.yAxisName,\n        yAxisType = args.yAxisType,\n        axisVisible = args.axisVisible,\n        scale = args.scale,\n        min = args.min,\n        max = args.max,\n        digit = args.digit;\n\n    var yAxisBase = {\n      type: 'value',\n      axisTick: {\n        show: false\n      },\n      show: axisVisible\n    };\n    var yAxis = [];\n\n    var _loop = function _loop(i) {\n      if (yAxisType[i]) {\n        yAxis[i] = _extends({}, yAxisBase, {\n          axisLabel: {\n            formatter: function formatter(val) {\n              return getFormated(val, yAxisType[i], digit);\n            }\n          }\n        });\n      } else {\n        yAxis[i] = _extends({}, yAxisBase);\n      }\n      yAxis[i].name = yAxisName[i] || '';\n      yAxis[i].scale = scale[i] || false;\n      yAxis[i].min = min[i] || null;\n      yAxis[i].max = max[i] || null;\n    };\n\n    for (var i = 0; i < 2; i++) {\n      _loop(i);\n    }\n    return yAxis;\n  }\n\n  function getLineTooltip(args) {\n    var axisSite = args.axisSite,\n        yAxisType = args.yAxisType,\n        digit = args.digit,\n        labelMap = args.labelMap,\n        tooltipFormatter = args.tooltipFormatter;\n\n    var rightItems = axisSite.right || [];\n    var rightList = labelMap ? rightItems.map(function (item) {\n      return labelMap[item] === undefined ? item : labelMap[item];\n    }) : rightItems;\n    return {\n      trigger: 'axis',\n      formatter: function formatter(items) {\n        if (tooltipFormatter) {\n          return tooltipFormatter.apply(null, arguments);\n        }\n        var tpl = [];\n        var _items$ = items[0],\n            name = _items$.name,\n            axisValueLabel = _items$.axisValueLabel;\n\n        var title = name || axisValueLabel;\n        tpl.push(title + '<br>');\n        items.forEach(function (_ref) {\n          var seriesName = _ref.seriesName,\n              data = _ref.data,\n              marker = _ref.marker;\n\n          var showData = null;\n          var type = ~rightList.indexOf(seriesName) ? yAxisType[1] : yAxisType[0];\n          var itemData = isArray(data) ? data[1] : data;\n          showData = getFormated(itemData, type, digit);\n          tpl.push(marker);\n          tpl.push(seriesName + ': ' + showData);\n          tpl.push('<br>');\n        });\n        return tpl.join('');\n      }\n    };\n  }\n\n  function getLegend$1(args) {\n    var metrics = args.metrics,\n        legendName = args.legendName,\n        labelMap = args.labelMap;\n\n    if (!legendName && !labelMap) return { data: metrics };\n    var data = labelMap ? metrics.map(function (item) {\n      return labelMap[item] == null ? item : labelMap[item];\n    }) : metrics;\n    return {\n      data: data,\n      formatter: function formatter(name) {\n        return legendName[name] != null ? legendName[name] : name;\n      }\n    };\n  }\n\n  var line$1 = function line$$1(columns, rows, settings, extra) {\n    rows = isArray(rows) ? rows : [];\n    columns = isArray(columns) ? columns : [];\n    var _settings$axisSite = settings.axisSite,\n        axisSite = _settings$axisSite === undefined ? {} : _settings$axisSite,\n        _settings$yAxisType = settings.yAxisType,\n        yAxisType = _settings$yAxisType === undefined ? ['normal', 'normal'] : _settings$yAxisType,\n        _settings$xAxisType = settings.xAxisType,\n        xAxisType = _settings$xAxisType === undefined ? 'category' : _settings$xAxisType,\n        _settings$yAxisName = settings.yAxisName,\n        yAxisName = _settings$yAxisName === undefined ? [] : _settings$yAxisName,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? [columns[0]] : _settings$dimension,\n        _settings$xAxisName = settings.xAxisName,\n        xAxisName = _settings$xAxisName === undefined ? [] : _settings$xAxisName,\n        _settings$axisVisible = settings.axisVisible,\n        axisVisible = _settings$axisVisible === undefined ? true : _settings$axisVisible,\n        area = settings.area,\n        stack = settings.stack,\n        _settings$scale = settings.scale,\n        scale = _settings$scale === undefined ? [false, false] : _settings$scale,\n        _settings$min = settings.min,\n        min = _settings$min === undefined ? [null, null] : _settings$min,\n        _settings$max = settings.max,\n        max = _settings$max === undefined ? [null, null] : _settings$max,\n        _settings$nullAddZero = settings.nullAddZero,\n        nullAddZero = _settings$nullAddZero === undefined ? false : _settings$nullAddZero,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        _settings$legendName = settings.legendName,\n        legendName = _settings$legendName === undefined ? {} : _settings$legendName,\n        _settings$labelMap = settings.labelMap,\n        labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,\n        label = settings.label,\n        itemStyle = settings.itemStyle,\n        lineStyle = settings.lineStyle,\n        areaStyle = settings.areaStyle;\n    var tooltipVisible = extra.tooltipVisible,\n        legendVisible = extra.legendVisible,\n        tooltipFormatter = extra.tooltipFormatter;\n\n    var metrics = columns.slice();\n\n    if (axisSite.left && axisSite.right) {\n      metrics = axisSite.left.concat(axisSite.right);\n    } else if (axisSite.left && !axisSite.right) {\n      metrics = axisSite.left;\n    } else if (settings.metrics) {\n      metrics = settings.metrics;\n    } else {\n      metrics.splice(columns.indexOf(dimension[0]), 1);\n    }\n\n    var legend$$1 = legendVisible && getLegend$1({ metrics: metrics, legendName: legendName, labelMap: labelMap });\n    var tooltip$$1 = tooltipVisible && getLineTooltip({\n      axisSite: axisSite,\n      yAxisType: yAxisType,\n      digit: digit,\n      labelMap: labelMap,\n      xAxisType: xAxisType,\n      tooltipFormatter: tooltipFormatter\n    });\n    var xAxis = getLineXAxis({\n      dimension: dimension,\n      rows: rows,\n      xAxisName: xAxisName,\n      axisVisible: axisVisible,\n      xAxisType: xAxisType\n    });\n    var yAxis = getLineYAxis({\n      yAxisName: yAxisName,\n      yAxisType: yAxisType,\n      axisVisible: axisVisible,\n      scale: scale,\n      min: min,\n      max: max,\n      digit: digit\n    });\n    var series = getLineSeries({\n      rows: rows,\n      axisSite: axisSite,\n      metrics: metrics,\n      area: area,\n      stack: stack,\n      nullAddZero: nullAddZero,\n      labelMap: labelMap,\n      label: label,\n      itemStyle: itemStyle,\n      lineStyle: lineStyle,\n      areaStyle: areaStyle,\n      xAxisType: xAxisType,\n      dimension: dimension\n    });\n    var options = { legend: legend$$1, xAxis: xAxis, series: series, yAxis: yAxis, tooltip: tooltip$$1 };\n    return options;\n  };\n\n  var VeLine = _extends({}, Core, {\n    name: 'VeLine',\n    data: function data() {\n      this.chartHandler = line$1;\n      return {};\n    }\n  });\n\n  var pieRadius = 100;\n  var ringRadius = [80, 100];\n  var roseRingRadius = [20, 100];\n  var pieOffsetY = 200;\n\n  function getPieSeries(args) {\n    var innerRows = args.innerRows,\n        dataType = args.dataType,\n        percentShow = args.percentShow,\n        dimension = args.dimension,\n        metrics = args.metrics,\n        radius = args.radius,\n        offsetY = args.offsetY,\n        selectedMode = args.selectedMode,\n        hoverAnimation = args.hoverAnimation,\n        digit = args.digit,\n        roseType = args.roseType,\n        label = args.label,\n        level = args.level,\n        limitShowNum = args.limitShowNum,\n        isRing = args.isRing,\n        labelLine = args.labelLine,\n        itemStyle = args.itemStyle;\n\n\n    var series = [];\n    var levelTemp = {};\n    var rowsTemp = [];\n    if (level) {\n      level.forEach(function (levelItems, index) {\n        levelItems.forEach(function (item) {\n          levelTemp[item] = index;\n        });\n      });\n      innerRows.forEach(function (row) {\n        var itemLevel = levelTemp[row[dimension]];\n        if (itemLevel !== undefined) {\n          if (rowsTemp[itemLevel]) {\n            rowsTemp[itemLevel].push(row);\n          } else {\n            rowsTemp[itemLevel] = [row];\n          }\n        }\n      });\n    } else {\n      rowsTemp.push(innerRows);\n    }\n    var seriesBase = {\n      type: 'pie',\n      selectedMode: selectedMode,\n      hoverAnimation: hoverAnimation,\n      roseType: roseType,\n      center: ['50%', offsetY]\n    };\n    var rowsTempLength = rowsTemp.length;\n    rowsTemp.forEach(function (dataRows, index) {\n      var seriesItem = _extends({ data: [] }, seriesBase);\n      var centerWidth = radius / rowsTempLength;\n      if (!index) {\n        seriesItem.radius = isRing ? radius : centerWidth;\n      } else {\n        var outerWidth = centerWidth + radius / (2 * rowsTempLength) * (2 * index - 1);\n        var innerWidth = outerWidth + radius / (2 * rowsTempLength);\n        seriesItem.radius = [outerWidth, innerWidth];\n      }\n      if (rowsTempLength > 1 && index === 0) {\n        seriesItem.label = {\n          normal: { position: 'inner' }\n        };\n      }\n      if (label) seriesItem.label = label;\n      if (labelLine) seriesItem.labelLine = labelLine;\n      if (itemStyle) seriesItem.itemStyle = itemStyle;\n      if (percentShow) {\n        seriesItem.label = {\n          normal: {\n            show: true,\n            position: rowsTempLength > 1 && index === 0 ? 'inner' : 'outside',\n            formatter: function formatter(item) {\n              var tpl = [];\n              tpl.push(item.name + ':');\n              tpl.push(getFormated(item.value, dataType, digit));\n              tpl.push('(' + item.percent + '%)');\n              return tpl.join(' ');\n            }\n          }\n        };\n      }\n      seriesItem.data = dataRows.map(function (row) {\n        return {\n          name: row[dimension],\n          value: row[metrics]\n        };\n      });\n      series.push(seriesItem);\n    });\n    if (limitShowNum && limitShowNum < series[0].data.length) {\n      var firstData = series[0].data;\n      var remainArr = firstData.slice(limitShowNum, firstData.length);\n      var sum = 0;\n      remainArr.forEach(function (item) {\n        sum += item.value;\n      });\n      series[0].data = firstData.slice(0, limitShowNum);\n      series[0].data.push({ name: '鍏朵粬', value: sum });\n    }\n    return series;\n  }\n\n  function getPieLegend(args) {\n    var innerRows = args.innerRows,\n        dimension = args.dimension,\n        legendLimit = args.legendLimit,\n        legendName = args.legendName,\n        level = args.level,\n        limitShowNum = args.limitShowNum;\n\n    var legend$$1 = [];\n    var levelTemp = [];\n    if (level) {\n      level.forEach(function (levelItem) {\n        levelItem.forEach(function (item) {\n          levelTemp.push(item);\n        });\n      });\n      legend$$1 = levelTemp;\n    } else if (limitShowNum && limitShowNum < innerRows.length) {\n      for (var i = 0; i < limitShowNum; i++) {\n        legend$$1.push(innerRows[i][dimension]);\n      }\n      legend$$1.push('鍏朵粬');\n    } else {\n      legend$$1 = innerRows.map(function (row) {\n        return row[dimension];\n      });\n    }\n    if (legend$$1.length) {\n      return {\n        data: legend$$1,\n        show: legend$$1.length < legendLimit,\n        formatter: function formatter(name) {\n          return legendName[name] != null ? legendName[name] : name;\n        }\n      };\n    } else {\n      return false;\n    }\n  }\n\n  function getPieTooltip(args) {\n    var dataType = args.dataType,\n        innerRows = args.innerRows,\n        limitShowNum = args.limitShowNum,\n        digit = args.digit,\n        metrics = args.metrics,\n        dimension = args.dimension;\n\n    var sum = 0;\n    var remainArr = innerRows.map(function (row) {\n      sum += row[metrics];\n      return {\n        name: row[dimension],\n        value: row[metrics]\n      };\n    }).slice(limitShowNum, innerRows.length);\n    return {\n      formatter: function formatter(item) {\n        var tpl = [];\n        tpl.push(itemPoint(item.color));\n        if (limitShowNum && item.name === '鍏朵粬') {\n          tpl.push('鍏朵粬:');\n          remainArr.forEach(function (_ref) {\n            var name = _ref.name,\n                value = _ref.value;\n\n            var percent = getFormated(value / sum, 'percent');\n            tpl.push('<br>' + name + ':');\n            tpl.push(getFormated(value, dataType, digit));\n            tpl.push('(' + percent + ')');\n          });\n        } else {\n          tpl.push(item.name + ':');\n          tpl.push(getFormated(item.value, dataType, digit));\n          tpl.push('(' + item.percent + '%)');\n        }\n        return tpl.join(' ');\n      }\n    };\n  }\n\n  var pie$1 = function pie$$1(columns, rows, settings, extra, isRing) {\n    var innerRows = cloneDeep(rows);\n    var _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? 'normal' : _settings$dataType,\n        percentShow = settings.percentShow,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$metrics = settings.metrics,\n        metrics = _settings$metrics === undefined ? columns[1] : _settings$metrics,\n        _settings$roseType = settings.roseType,\n        roseType = _settings$roseType === undefined ? false : _settings$roseType,\n        _settings$radius = settings.radius,\n        radius = _settings$radius === undefined ? isRing ? roseType ? roseRingRadius : ringRadius : pieRadius : _settings$radius,\n        _settings$offsetY = settings.offsetY,\n        offsetY = _settings$offsetY === undefined ? pieOffsetY : _settings$offsetY,\n        _settings$legendLimit = settings.legendLimit,\n        legendLimit = _settings$legendLimit === undefined ? 30 : _settings$legendLimit,\n        _settings$selectedMod = settings.selectedMode,\n        selectedMode = _settings$selectedMod === undefined ? false : _settings$selectedMod,\n        _settings$hoverAnimat = settings.hoverAnimation,\n        hoverAnimation = _settings$hoverAnimat === undefined ? true : _settings$hoverAnimat,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        _settings$legendName = settings.legendName,\n        legendName = _settings$legendName === undefined ? {} : _settings$legendName,\n        _settings$label = settings.label,\n        label = _settings$label === undefined ? false : _settings$label,\n        _settings$level = settings.level,\n        level = _settings$level === undefined ? false : _settings$level,\n        _settings$limitShowNu = settings.limitShowNum,\n        limitShowNum = _settings$limitShowNu === undefined ? 0 : _settings$limitShowNu,\n        labelLine = settings.labelLine,\n        itemStyle = settings.itemStyle;\n    var tooltipVisible = extra.tooltipVisible,\n        legendVisible = extra.legendVisible;\n\n    if (limitShowNum) innerRows.sort(function (a, b) {\n      return b[metrics] - a[metrics];\n    });\n    var seriesParams = {\n      innerRows: innerRows,\n      dataType: dataType,\n      percentShow: percentShow,\n      dimension: dimension,\n      metrics: metrics,\n      radius: radius,\n      offsetY: offsetY,\n      selectedMode: selectedMode,\n      hoverAnimation: hoverAnimation,\n      digit: digit,\n      roseType: roseType,\n      label: label,\n      level: level,\n      legendName: legendName,\n      limitShowNum: limitShowNum,\n      isRing: isRing,\n      labelLine: labelLine,\n      itemStyle: itemStyle\n    };\n    var series = getPieSeries(seriesParams);\n    var legendParams = {\n      innerRows: innerRows,\n      dimension: dimension,\n      legendLimit: legendLimit,\n      legendName: legendName,\n      level: level,\n      limitShowNum: limitShowNum\n    };\n    var legend$$1 = legendVisible && getPieLegend(legendParams);\n    var tooltip$$1 = tooltipVisible && getPieTooltip({\n      dataType: dataType,\n      innerRows: innerRows,\n      limitShowNum: limitShowNum,\n      digit: digit,\n      metrics: metrics,\n      dimension: dimension\n    });\n    var options = { series: series, legend: legend$$1, tooltip: tooltip$$1 };\n    return options;\n  };\n\n  var ring = function ring(columns, rows, settings, extra) {\n    return pie$1(columns, rows, settings, extra, true);\n  };\n\n  var VePie = _extends({}, Core, {\n    name: 'VePie',\n    data: function data() {\n      this.chartHandler = pie$1;\n      return {};\n    }\n  });\n\n  var VeRing = _extends({}, Core, {\n    name: 'VeRing',\n    data: function data() {\n      this.chartHandler = ring;\n      return {};\n    }\n  });\n\n  function getWaterfallTooltip(dataType, digit) {\n    return {\n      trigger: 'axis',\n      axisPointer: { type: 'shadow' },\n      formatter: function formatter(items) {\n        var item = items[1];\n        return [item.name + '<br/>' + item.seriesName + ' :', '' + getFormated(item.value, dataType, digit)].join('');\n      }\n    };\n  }\n\n  function getWaterfallXAxis(args) {\n    var dimension = args.dimension,\n        rows = args.rows,\n        remainStatus = args.remainStatus,\n        totalName = args.totalName,\n        remainName = args.remainName,\n        labelMap = args.labelMap,\n        xAxisName = args.xAxisName,\n        axisVisible = args.axisVisible;\n\n    var xAxisData = [totalName].concat(rows.map(function (row) {\n      return row[dimension];\n    }));\n    if (remainStatus === 'have-remain') {\n      xAxisData = xAxisData.concat([remainName]);\n    }\n\n    return {\n      type: 'category',\n      name: labelMap && labelMap[xAxisName] || xAxisName,\n      splitLine: { show: false },\n      data: xAxisData,\n      show: axisVisible\n    };\n  }\n\n  function getWaterfallYAxis(args) {\n    var dataType = args.dataType,\n        yAxisName = args.yAxisName,\n        axisVisible = args.axisVisible,\n        digit = args.digit,\n        labelMap = args.labelMap;\n\n    return {\n      type: 'value',\n      name: labelMap[yAxisName] != null ? labelMap[yAxisName] : yAxisName,\n      axisTick: { show: false },\n      axisLabel: {\n        formatter: function formatter(val) {\n          return getFormated(val, dataType, digit);\n        }\n      },\n      show: axisVisible\n    };\n  }\n\n  function getWaterfallSeries(args) {\n    var dataType = args.dataType,\n        rows = args.rows,\n        metrics = args.metrics,\n        totalNum = args.totalNum,\n        remainStatus = args.remainStatus,\n        dataSum = args.dataSum,\n        digit = args.digit;\n\n    var seriesBase = { type: 'bar', stack: '鎬婚噺' };\n    var dataSumTemp = dataSum;\n    var totalNumTemp = totalNum;\n    var assistData = void 0;\n    var mainData = void 0;\n    var rowData = rows.map(function (row) {\n      return row[metrics];\n    });\n\n    if (remainStatus === 'have-remain') {\n      assistData = [0].concat(rows.map(function (row) {\n        totalNumTemp -= row[metrics];\n        return totalNumTemp;\n      })).concat([0]);\n      mainData = [totalNum].concat(rowData).concat([totalNum - dataSum]);\n    } else {\n      assistData = [0].concat(rows.map(function (row) {\n        dataSumTemp -= row[metrics];\n        return dataSumTemp;\n      }));\n      mainData = [dataSum].concat(rowData);\n    }\n    var series = [];\n\n    series.push(_extends({\n      name: '杈呭姪',\n      itemStyle: {\n        normal: { opacity: 0 },\n        emphasis: { opacity: 0 }\n      },\n      data: assistData\n    }, seriesBase));\n\n    series.push(_extends({\n      name: '鏁板��',\n      label: {\n        normal: {\n          show: true,\n          position: 'top',\n          formatter: function formatter(item) {\n            return getFormated(item.value, dataType, digit);\n          }\n        }\n      },\n      data: mainData\n    }, seriesBase));\n    return series;\n  }\n\n  function getWaterfallRemainStatus(dataSum, totalNum) {\n    if (!totalNum) return 'not-total';\n    return totalNum > dataSum ? 'have-remain' : 'none-remain';\n  }\n\n  var waterfall = function waterfall(columns, rows, settings, extra) {\n    var _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? 'normal' : _settings$dataType,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$totalName = settings.totalName,\n        totalName = _settings$totalName === undefined ? '鎬昏' : _settings$totalName,\n        totalNum = settings.totalNum,\n        _settings$remainName = settings.remainName,\n        remainName = _settings$remainName === undefined ? '鍏朵粬' : _settings$remainName,\n        _settings$xAxisName = settings.xAxisName,\n        xAxisName = _settings$xAxisName === undefined ? dimension : _settings$xAxisName,\n        _settings$labelMap = settings.labelMap,\n        labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,\n        _settings$axisVisible = settings.axisVisible,\n        axisVisible = _settings$axisVisible === undefined ? true : _settings$axisVisible,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit;\n    var tooltipVisible = extra.tooltipVisible;\n\n    var metricsTemp = columns.slice();\n    metricsTemp.splice(metricsTemp.indexOf(dimension), 1);\n    var metrics = metricsTemp[0];\n    var yAxisName = metrics;\n    var tooltip$$1 = tooltipVisible && getWaterfallTooltip(dataType, digit);\n    var dataSum = parseFloat(rows.reduce(function (pre, cur) {\n      return pre + Number(cur[metrics]);\n    }, 0).toFixed(digit));\n    var remainStatus = getWaterfallRemainStatus(dataSum, totalNum);\n    var xAxisParams = {\n      dimension: dimension,\n      rows: rows,\n      remainStatus: remainStatus,\n      totalName: totalName,\n      remainName: remainName,\n      xAxisName: xAxisName,\n      labelMap: labelMap,\n      axisVisible: axisVisible\n    };\n    var xAxis = getWaterfallXAxis(xAxisParams);\n    var yAxis = getWaterfallYAxis({ dataType: dataType, yAxisName: yAxisName, axisVisible: axisVisible, digit: digit, labelMap: labelMap });\n    var seriesParams = {\n      dataType: dataType,\n      rows: rows,\n      dimension: dimension,\n      metrics: metrics,\n      totalNum: totalNum,\n      remainStatus: remainStatus,\n      dataSum: dataSum,\n      digit: digit\n    };\n    var series = getWaterfallSeries(seriesParams);\n    var options = { tooltip: tooltip$$1, xAxis: xAxis, yAxis: yAxis, series: series };\n    return options;\n  };\n\n  var VeWaterfall = _extends({}, Core, {\n    name: 'VeWaterfall',\n    data: function data() {\n      this.chartHandler = waterfall;\n      return {};\n    }\n  });\n\n  function getFunnelTooltip(dataType, digit) {\n    return {\n      trigger: 'item',\n      formatter: function formatter(item) {\n        var tpl = [];\n        tpl.push(itemPoint(item.color));\n        tpl.push(item.name + ': ' + getFormated(item.data.realValue, dataType, digit));\n        return tpl.join('');\n      }\n    };\n  }\n\n  function getFunnelLegend(args) {\n    var data = args.data,\n        legendName = args.legendName;\n\n    return {\n      data: data,\n      formatter: function formatter(name) {\n        return legendName[name] != null ? legendName[name] : name;\n      }\n    };\n  }\n\n  function getFunnelSeries(args) {\n    var dimension = args.dimension,\n        metrics = args.metrics,\n        rows = args.rows,\n        sequence = args.sequence,\n        ascending = args.ascending,\n        label = args.label,\n        labelLine = args.labelLine,\n        itemStyle = args.itemStyle,\n        filterZero = args.filterZero,\n        useDefaultOrder = args.useDefaultOrder;\n\n    var series = { type: 'funnel' };\n    var innerRows = rows.sort(function (a, b) {\n      return sequence.indexOf(a[dimension]) - sequence.indexOf(b[dimension]);\n    });\n\n    if (filterZero) {\n      innerRows = innerRows.filter(function (row) {\n        return row[metrics];\n      });\n    }\n\n    var falseFunnel = false;\n    innerRows.some(function (row, index) {\n      if (index && row[metrics] > innerRows[index - 1][metrics]) {\n        falseFunnel = true;\n        return true;\n      }\n    });\n\n    var step = 100 / innerRows.length;\n\n    if (falseFunnel && !useDefaultOrder) {\n      series.data = innerRows.slice().reverse().map(function (row, index) {\n        return {\n          name: row[dimension],\n          value: (index + 1) * step,\n          realValue: row[metrics]\n        };\n      });\n    } else {\n      series.data = innerRows.map(function (row) {\n        return {\n          name: row[dimension],\n          value: row[metrics],\n          realValue: row[metrics]\n        };\n      });\n    }\n\n    if (ascending) series.sort = 'ascending';\n    if (label) series.label = label;\n    if (labelLine) series.labelLine = labelLine;\n    if (itemStyle) series.itemStyle = itemStyle;\n    return series;\n  }\n\n  var funnel$1 = function funnel$$1(outerColumns, outerRows, settings, extra) {\n    var columns = outerColumns.slice();\n    var rows = outerRows.slice();\n    var _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? 'normal' : _settings$dataType,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$sequence = settings.sequence,\n        sequence = _settings$sequence === undefined ? rows.map(function (row) {\n      return row[dimension];\n    }) : _settings$sequence,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        ascending = settings.ascending,\n        label = settings.label,\n        labelLine = settings.labelLine,\n        _settings$legendName = settings.legendName,\n        legendName = _settings$legendName === undefined ? {} : _settings$legendName,\n        itemStyle = settings.itemStyle,\n        filterZero = settings.filterZero,\n        useDefaultOrder = settings.useDefaultOrder;\n    var tooltipVisible = extra.tooltipVisible,\n        legendVisible = extra.legendVisible;\n\n    var metrics = void 0;\n    if (settings.metrics) {\n      metrics = settings.metrics;\n    } else {\n      var metricsTemp = columns.slice();\n      metricsTemp.splice(columns.indexOf(dimension), 1);\n      metrics = metricsTemp[0];\n    }\n\n    var tooltip$$1 = tooltipVisible && getFunnelTooltip(dataType, digit);\n    var legend$$1 = legendVisible && getFunnelLegend({ data: sequence, legendName: legendName });\n    var series = getFunnelSeries({\n      dimension: dimension,\n      metrics: metrics,\n      rows: rows,\n      sequence: sequence,\n      ascending: ascending,\n      label: label,\n      labelLine: labelLine,\n      itemStyle: itemStyle,\n      filterZero: filterZero,\n      useDefaultOrder: useDefaultOrder\n    });\n    var options = { tooltip: tooltip$$1, legend: legend$$1, series: series };\n    return options;\n  };\n\n  var VeFunnel = _extends({}, Core, {\n    name: 'VeFunnel',\n    data: function data() {\n      this.chartHandler = funnel$1;\n      return {};\n    }\n  });\n\n  function getRadarLegend(rows, dimension, legendName) {\n    var legendData = rows.map(function (row) {\n      return row[dimension];\n    });\n\n    return {\n      data: legendData,\n      formatter: function formatter(name) {\n        return legendName[name] != null ? legendName[name] : name;\n      }\n    };\n  }\n\n  function getRadarTooltip(dataType, radar$$1, digit) {\n    var typeTemp = [];\n    var nameTemp = [];\n    radar$$1.indicator.map(function (item, index) {\n      typeTemp[index] = dataType[item.name];\n      nameTemp[index] = item.name;\n    });\n    return {\n      formatter: function formatter(item) {\n        var tpl = [];\n        tpl.push(itemPoint(item.color));\n        tpl.push(item.name + '<br />');\n        item.data.value.forEach(function (val, index) {\n          tpl.push(nameTemp[index] + ': ');\n          tpl.push(getFormated(val, typeTemp[index], digit) + '<br />');\n        });\n        return tpl.join('');\n      }\n    };\n  }\n\n  function getRadarSetting(rows, metrics, labelMap) {\n    var settingBase = {\n      indicator: [],\n      shape: 'circle',\n      splitNumber: 5\n    };\n    var indicatorTemp = {};\n    rows.forEach(function (items) {\n      metrics.forEach(function (item) {\n        var key = labelMap[item] != null ? labelMap[item] : item;\n        if (!indicatorTemp[key]) {\n          indicatorTemp[key] = [items[item]];\n        } else {\n          indicatorTemp[key].push(items[item]);\n        }\n      });\n    });\n    settingBase.indicator = Object.keys(indicatorTemp).map(function (key) {\n      return {\n        name: key,\n        max: Math.max.apply(null, indicatorTemp[key])\n      };\n    });\n    return settingBase;\n  }\n\n  function getRadarSeries(args) {\n    var rows = args.rows,\n        dimension = args.dimension,\n        metrics = args.metrics,\n        radar$$1 = args.radar,\n        label = args.label,\n        itemStyle = args.itemStyle,\n        lineStyle = args.lineStyle,\n        labelMap = args.labelMap,\n        areaStyle = args.areaStyle;\n\n    var radarIndexObj = {};\n    radar$$1.indicator.forEach(function (item, index) {\n      var name = item.name;\n      radarIndexObj[name] = index;\n    });\n\n    var seriesData = rows.map(function (row) {\n      var serieData = {\n        value: [],\n        name: row[dimension]\n      };\n      Object.keys(row).forEach(function (key) {\n        if (~metrics.indexOf(key)) {\n          var k = labelMap[key] != null ? radarIndexObj[labelMap[key]] : radarIndexObj[key];\n          serieData.value[k] = row[key];\n        }\n      });\n      return serieData;\n    });\n    var result = {\n      name: dimension,\n      type: 'radar',\n      data: seriesData\n    };\n    if (label) result.label = label;\n    if (itemStyle) result.itemStyle = itemStyle;\n    if (lineStyle) result.lineStyle = lineStyle;\n    if (areaStyle) result.areaStyle = areaStyle;\n    return [result];\n  }\n\n  var radar$1 = function radar$$1(columns, rows, settings, extra) {\n    var _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? {} : _settings$dataType,\n        _settings$legendName = settings.legendName,\n        legendName = _settings$legendName === undefined ? {} : _settings$legendName,\n        _settings$labelMap = settings.labelMap,\n        labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        label = settings.label,\n        itemStyle = settings.itemStyle,\n        lineStyle = settings.lineStyle,\n        areaStyle = settings.areaStyle;\n    var tooltipVisible = extra.tooltipVisible,\n        legendVisible = extra.legendVisible;\n\n    var metrics = columns.slice();\n    if (settings.metrics) {\n      metrics = settings.metrics;\n    } else {\n      metrics.splice(columns.indexOf(dimension), 1);\n    }\n    var legend$$1 = legendVisible && getRadarLegend(rows, dimension, legendName);\n    var radar$$1 = getRadarSetting(rows, metrics, labelMap);\n    var tooltip$$1 = tooltipVisible && getRadarTooltip(dataType, radar$$1, digit);\n    var series = getRadarSeries({\n      rows: rows,\n      dimension: dimension,\n      metrics: metrics,\n      radar: radar$$1,\n      label: label,\n      itemStyle: itemStyle,\n      lineStyle: lineStyle,\n      labelMap: labelMap,\n      areaStyle: areaStyle\n    });\n    var options = { legend: legend$$1, tooltip: tooltip$$1, radar: radar$$1, series: series };\n    return options;\n  };\n\n  var VeRadar = _extends({}, Core, {\n    name: 'VeRadar',\n    data: function data() {\n      this.chartHandler = radar$1;\n      return {};\n    }\n  });\n\n  var VeChart = _extends({}, Core, {\n    name: 'VeChart',\n    data: function data() {\n      this.chartLib = {\n        bar: bar$1,\n        histogram: histogram,\n        line: line$1,\n        pie: pie$1,\n        ring: ring,\n        funnel: funnel$1,\n        radar: radar$1,\n        waterfall: waterfall\n      };\n      this.chartHandler = this.chartLib[this.settings.type];\n      return {};\n    }\n  });\n\n  function getTooltip(dataType, digit, dataStore, metrics, color, labelMap) {\n    return {\n      formatter: function formatter(item) {\n        var tpl = [];\n        if (!item.name) return '';\n        tpl.push(item.name + '<br>');\n        metrics.forEach(function (label, index) {\n          var title = labelMap[label] != null ? labelMap[label] : label;\n          tpl.push(itemPoint(color[index]) + ' ' + title + ' : ');\n          if (dataStore[item.name]) {\n            tpl.push(getFormated(dataStore[item.name][label], dataType[label], digit));\n          } else {\n            tpl.push('-');\n          }\n          tpl.push('<br>');\n        });\n        return tpl.join(' ');\n      }\n    };\n  }\n\n  function getSeries(args) {\n    var position = args.position,\n        selectData = args.selectData,\n        dimension = args.dimension,\n        metrics = args.metrics,\n        rows = args.rows,\n        label = args.label,\n        itemStyle = args.itemStyle,\n        selectedMode = args.selectedMode,\n        roam = args.roam,\n        center = args.center,\n        aspectScale = args.aspectScale,\n        boundingCoords = args.boundingCoords,\n        zoom = args.zoom,\n        labelMap = args.labelMap,\n        scaleLimit = args.scaleLimit,\n        mapGrid = args.mapGrid;\n\n    var result = [];\n    var mapBase = {\n      type: 'map',\n      mapType: position\n    };\n\n    metrics.forEach(function (itemName) {\n      var itemResult = _extends({\n        name: labelMap[itemName] != null ? labelMap[itemName] : itemName,\n        data: [],\n        selectedMode: selectedMode,\n        roam: roam,\n        center: center,\n        aspectScale: aspectScale,\n        boundingCoords: boundingCoords,\n        zoom: zoom,\n        scaleLimit: scaleLimit\n      }, mapBase);\n\n      if (mapGrid) {\n        Object.keys(mapGrid).forEach(function (key) {\n          itemResult[key] = mapGrid[key];\n        });\n      }\n\n      setGeoLabel(itemStyle, itemResult, 'itemStyle');\n      setGeoLabel(label, itemResult, 'label');\n\n      rows.forEach(function (row) {\n        itemResult.data.push({\n          name: row[dimension],\n          value: row[itemName],\n          selected: selectData\n        });\n      });\n      result.push(itemResult);\n    });\n\n    return result;\n  }\n\n  function setGeoLabel(value, target, label) {\n    if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n      target[label] = value;\n    } else if (value) {\n      target[label] = {\n        normal: { show: true },\n        emphasis: { show: true }\n      };\n    }\n  }\n\n  function getLegendMap(args) {\n    var metrics = args.metrics,\n        legendName = args.legendName,\n        labelMap = args.labelMap;\n\n    if (!legendName && !labelMap) return { data: metrics };\n    var data = labelMap ? metrics.map(function (item) {\n      return labelMap[item] == null ? item : labelMap[item];\n    }) : metrics;\n    return {\n      data: data,\n      formatter: function formatter(name) {\n        return legendName[name] != null ? legendName[name] : name;\n      }\n    };\n  }\n\n  function registerMap(args, mapOrigin) {\n    var _once = args._once,\n        registerSign = args.registerSign,\n        beforeRegisterMap = args.beforeRegisterMap,\n        beforeRegisterMapOnce = args.beforeRegisterMapOnce,\n        registerSignOnce = args.registerSignOnce,\n        position = args.position,\n        specialAreas = args.specialAreas;\n\n    if (!_once[registerSign]) {\n      if (beforeRegisterMap) mapOrigin = beforeRegisterMap(mapOrigin);\n      if (beforeRegisterMapOnce && !_once[registerSignOnce]) {\n        _once[registerSignOnce] = true;\n        mapOrigin = beforeRegisterMapOnce(mapOrigin);\n      }\n      _once[registerSign] = true;\n      echartsLib.registerMap(position, mapOrigin, specialAreas);\n    }\n  }\n\n  var map$1 = function map$$1(columns, rows, settings, extra) {\n    var _settings$position = settings.position,\n        position = _settings$position === undefined ? 'china' : _settings$position,\n        _settings$selectData = settings.selectData,\n        selectData = _settings$selectData === undefined ? false : _settings$selectData,\n        selectedMode = settings.selectedMode,\n        _settings$label = settings.label,\n        label = _settings$label === undefined ? true : _settings$label,\n        _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? {} : _settings$dataType,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        roam = settings.roam,\n        center = settings.center,\n        aspectScale = settings.aspectScale,\n        boundingCoords = settings.boundingCoords,\n        zoom = settings.zoom,\n        scaleLimit = settings.scaleLimit,\n        _settings$legendName = settings.legendName,\n        legendName = _settings$legendName === undefined ? {} : _settings$legendName,\n        _settings$labelMap = settings.labelMap,\n        labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,\n        mapGrid = settings.mapGrid,\n        itemStyle = settings.itemStyle,\n        positionJsonLink = settings.positionJsonLink,\n        beforeRegisterMap = settings.beforeRegisterMap,\n        beforeRegisterMapOnce = settings.beforeRegisterMapOnce,\n        _settings$mapURLProfi = settings.mapURLProfix,\n        mapURLProfix = _settings$mapURLProfi === undefined ? 'https://unpkg.com/echarts@3.6.2/map/json/' : _settings$mapURLProfi,\n        _settings$specialArea = settings.specialAreas,\n        specialAreas = _settings$specialArea === undefined ? {} : _settings$specialArea;\n\n    var mapOrigin = settings.mapOrigin;\n    var metrics = columns.slice();\n    if (settings.metrics) {\n      metrics = settings.metrics;\n    } else {\n      metrics.splice(columns.indexOf(dimension), 1);\n    }\n    var tooltipVisible = extra.tooltipVisible,\n        legendVisible = extra.legendVisible,\n        color = extra.color,\n        _once = extra._once;\n\n    var dataStore = {};\n    rows.forEach(function (row) {\n      dataStore[row[dimension]] = row;\n    });\n    var tooltip$$1 = tooltipVisible && getTooltip(dataType, digit, dataStore, metrics, color, labelMap);\n    var legend$$1 = legendVisible && getLegendMap({ metrics: metrics, legendName: legendName, labelMap: labelMap });\n    var seriesParams = {\n      position: position,\n      selectData: selectData,\n      label: label,\n      itemStyle: itemStyle,\n      dimension: dimension,\n      metrics: metrics,\n      rows: rows,\n      selectedMode: selectedMode,\n      roam: roam,\n      center: center,\n      aspectScale: aspectScale,\n      boundingCoords: boundingCoords,\n      zoom: zoom,\n      labelMap: labelMap,\n      scaleLimit: scaleLimit,\n      mapGrid: mapGrid\n    };\n    var series = getSeries(seriesParams);\n    var registerOptions = {\n      _once: _once,\n      beforeRegisterMap: beforeRegisterMap,\n      beforeRegisterMapOnce: beforeRegisterMapOnce,\n      registerSign: 'MAP_REGISTER_' + position,\n      registerSignOnce: 'ONCE_MAP_REGISTER_' + position,\n      position: position,\n      specialAreas: specialAreas\n    };\n    if (mapOrigin) {\n      registerMap(registerOptions, mapOrigin);\n      return { series: series, tooltip: tooltip$$1, legend: legend$$1 };\n    } else {\n      return getMapJSON({\n        position: position,\n        positionJsonLink: positionJsonLink,\n        beforeRegisterMapOnce: beforeRegisterMapOnce,\n        mapURLProfix: mapURLProfix\n      }).then(function (json) {\n        registerMap(registerOptions, json);\n        return { series: series, tooltip: tooltip$$1, legend: legend$$1 };\n      });\n    }\n  };\n\n  var VeMap = _extends({}, Core, {\n    name: 'VeMap',\n    data: function data() {\n      this.chartHandler = map$1;\n      return {};\n    }\n  });\n\n  var bmap$1 = function bmap$$1(_, __, settings, extra) {\n    var key = settings.key,\n        v = settings.v,\n        bmap$$1 = settings.bmap,\n        useOuterMap = settings.useOuterMap;\n    var _once = extra._once;\n\n    var registerSign = 'bmap_register';\n    if (!key && !useOuterMap) console.warn('settings.key must be a string.');\n    if (_once[registerSign]) return {};\n    _once[registerSign] = true;\n    if (useOuterMap) return { bmap: bmap$$1 };\n    return getBmap(key, v).then(function (_) {\n      return { bmap: bmap$$1 };\n    });\n  };\n\n  var VeBmap = _extends({}, Core, {\n    name: 'VeBmap',\n    data: function data() {\n      this.chartHandler = bmap$1;\n      return {};\n    }\n  });\n\n  var amap = function amap(_, __, settings, extra) {\n    var key = settings.key,\n        v = settings.v,\n        amap = settings.amap,\n        useOuterMap = settings.useOuterMap;\n    var _once = extra._once;\n\n    var registerSign = 'amap_register';\n    if (!key && !useOuterMap) console.warn('settings.key must be a string.');\n    if (_once[registerSign]) return {};\n    _once[registerSign] = true;\n    if (useOuterMap) return { amap: amap };\n    return getAmap(key, v).then(function (_) {\n      return { amap: amap };\n    });\n  };\n\n  var VeAmap = _extends({}, Core, {\n    name: 'VeAmap',\n    data: function data() {\n      this.chartHandler = amap;\n      return {};\n    }\n  });\n\n  function getTooltip$1(args) {\n    var itemDataType = args.itemDataType,\n        linksDataType = args.linksDataType,\n        digit = args.digit;\n\n    return {\n      trigger: 'item',\n      formatter: function formatter(item) {\n        var tpl = [];\n        var name = item.name,\n            data = item.data,\n            value = item.value,\n            color = item.color;\n\n        tpl.push(itemPoint(color));\n        tpl.push(name + ' : ');\n        if (data && data.source) {\n          tpl.push(getFormated(value, linksDataType, digit) + '<br />');\n        } else {\n          tpl.push(getFormated(value, itemDataType, digit) + '<br />');\n        }\n        return tpl.join('');\n      }\n    };\n  }\n\n  function getSeries$1(args) {\n    var rows = args.rows,\n        dimension = args.dimension,\n        metrics = args.metrics,\n        links = args.links,\n        valueFull = args.valueFull,\n        useDataValue = args.useDataValue,\n        label = args.label,\n        itemStyle = args.itemStyle,\n        lineStyle = args.lineStyle;\n\n    var dataMap = {};\n    var seriesData = rows.map(function (row) {\n      dataMap[row[dimension]] = row[metrics];\n      return { name: row[dimension], value: row[metrics] };\n    });\n    var innerLinks = null;\n    if (useDataValue) {\n      innerLinks = links.map(function (link) {\n        return _extends({}, link, { value: dataMap[link.target] });\n      });\n    } else if (!valueFull) {\n      innerLinks = links.map(function (link) {\n        return link.value == null ? _extends({}, link, { value: dataMap[link.target] }) : link;\n      });\n    } else {\n      innerLinks = links;\n    }\n\n    var result = {\n      type: 'sankey',\n      data: seriesData,\n      links: innerLinks\n    };\n    if (label) result.label = label;\n    if (itemStyle) result.itemStyle = itemStyle;\n    if (lineStyle) result.lineStyle = lineStyle;\n    return [result];\n  }\n\n  var sankey$1 = function sankey$$1(columns, rows, settings, extra) {\n    var links = settings.links,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$metrics = settings.metrics,\n        metrics = _settings$metrics === undefined ? columns[1] : _settings$metrics,\n        _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? ['normal', 'normal'] : _settings$dataType,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        _settings$valueFull = settings.valueFull,\n        valueFull = _settings$valueFull === undefined ? false : _settings$valueFull,\n        _settings$useDataValu = settings.useDataValue,\n        useDataValue = _settings$useDataValu === undefined ? false : _settings$useDataValu,\n        label = settings.label,\n        itemStyle = settings.itemStyle,\n        lineStyle = settings.lineStyle;\n\n\n    if (!links) {\n      console.warn('links is needed in settings!');\n      return;\n    }\n\n    var itemDataType = dataType[0];\n    var linksDataType = dataType[1];\n    var tooltip$$1 = getTooltip$1({\n      itemDataType: itemDataType,\n      linksDataType: linksDataType,\n      digit: digit\n    });\n    var series = getSeries$1({\n      rows: rows,\n      dimension: dimension,\n      metrics: metrics,\n      links: links,\n      valueFull: valueFull,\n      useDataValue: useDataValue,\n      label: label,\n      itemStyle: itemStyle,\n      lineStyle: lineStyle\n    });\n    return { tooltip: tooltip$$1, series: series };\n  };\n\n  var VeSankey = _extends({}, Core, {\n    name: 'VeSankey',\n    data: function data() {\n      this.chartHandler = sankey$1;\n      return {};\n    }\n  });\n\n  function getAxisList(rows, label) {\n    var result = [];\n    rows.forEach(function (row) {\n      if (!~result.indexOf(row[label])) result.push(row[label]);\n    });\n    return result;\n  }\n\n  function getData(args) {\n    var rows = args.rows,\n        innerXAxisList = args.innerXAxisList,\n        innerYAxisList = args.innerYAxisList,\n        xDim = args.xDim,\n        yDim = args.yDim,\n        metrics = args.metrics,\n        type = args.type,\n        extraMetrics = args.extraMetrics;\n\n    var result = null;\n    if (type === 'cartesian') {\n      result = rows.map(function (row) {\n        var xIndex = innerXAxisList.indexOf(row[xDim]);\n        var yIndex = innerYAxisList.indexOf(row[yDim]);\n        var value = metrics ? row[metrics] : 1;\n        var extraData = extraMetrics.map(function (m) {\n          return row[m] || '-';\n        });\n        return { value: [xIndex, yIndex, value].concat(extraData) };\n      });\n    } else {\n      result = rows.map(function (row) {\n        var value = metrics ? row[metrics] : 1;\n        return { value: [row[xDim], row[yDim], value] };\n      });\n    }\n    return result;\n  }\n\n  function getAxis(list, name) {\n    return {\n      type: 'category',\n      data: list,\n      name: name,\n      nameLocation: 'end',\n      splitArea: { show: true }\n    };\n  }\n\n  function getVisualMap(args) {\n    var min = args.innerMin,\n        max = args.innerMax,\n        type = args.type,\n        heatColor = args.heatColor,\n        series = args.series;\n\n    var result = {\n      min: min,\n      max: max,\n      calculable: true\n    };\n    var extra = null;\n    if (type === 'map') {\n      extra = {\n        orient: 'vertical',\n        left: 0,\n        bottom: 0,\n        inRange: { color: heatColor || HEAT_MAP_COLOR }\n      };\n      if (!series[0].data.length) extra.show = false;\n    } else if (type === 'bmap' || type === 'amap') {\n      extra = {\n        show: false,\n        orient: 'vertical',\n        left: 0,\n        bottom: 0,\n        inRange: { color: heatColor || HEAT_BMAP_COLOR }\n      };\n    } else {\n      extra = {\n        orient: 'horizontal',\n        left: 'center',\n        bottom: 10,\n        dimension: 2,\n        inRange: heatColor && { color: heatColor }\n      };\n    }\n\n    return _extends(result, extra);\n  }\n\n  function getSeries$2(args) {\n    var chartData = args.chartData;\n\n    return [{\n      type: 'heatmap',\n      data: chartData\n    }];\n  }\n\n  function getTooltip$2(args) {\n    var dataType = args.dataType,\n        innerXAxisList = args.innerXAxisList,\n        innerYAxisList = args.innerYAxisList,\n        digit = args.digit,\n        extraMetrics = args.extraMetrics,\n        metrics = args.metrics;\n\n\n    return {\n      trigger: 'item',\n      formatter: function formatter(_ref) {\n        var color = _ref.color,\n            _ref$data$value = toArray(_ref.data.value),\n            xDim = _ref$data$value[0],\n            yDim = _ref$data$value[1],\n            value = _ref$data$value[2],\n            extraData = _ref$data$value.slice(3);\n\n        var tpl = [];\n        tpl.push(innerXAxisList[xDim] + ' ~ ' + innerYAxisList[yDim] + '<br>');\n        extraMetrics.forEach(function (m, index) {\n          tpl.push(m + ': ' + extraData[index] + '<br>');\n        });\n        tpl.push(itemPoint(color) + ' ' + metrics + ': ' + getFormated(value, dataType, digit) + '<br>');\n        return tpl.join('');\n      }\n    };\n  }\n\n  var heatmap$1 = function heatmap$$1(columns, rows, settings, status) {\n    var _settings$type = settings.type,\n        type = _settings$type === undefined ? 'cartesian' : _settings$type,\n        xAxisList = settings.xAxisList,\n        yAxisList = settings.yAxisList,\n        _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? [columns[0], columns[1]] : _settings$dimension,\n        _settings$metrics = settings.metrics,\n        metrics = _settings$metrics === undefined ? columns[2] : _settings$metrics,\n        _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? 'normal' : _settings$dataType,\n        min = settings.min,\n        max = settings.max,\n        digit = settings.digit,\n        bmap$$1 = settings.bmap,\n        amap = settings.amap,\n        geo = settings.geo,\n        key = settings.key,\n        _settings$v = settings.v,\n        v = _settings$v === undefined ? '2.0' : _settings$v,\n        position = settings.position,\n        positionJsonLink = settings.positionJsonLink,\n        beforeRegisterMap = settings.beforeRegisterMap,\n        _settings$pointSize = settings.pointSize,\n        pointSize = _settings$pointSize === undefined ? 10 : _settings$pointSize,\n        _settings$blurSize = settings.blurSize,\n        blurSize = _settings$blurSize === undefined ? 5 : _settings$blurSize,\n        heatColor = settings.heatColor,\n        yAxisName = settings.yAxisName,\n        xAxisName = settings.xAxisName,\n        beforeRegisterMapOnce = settings.beforeRegisterMapOnce,\n        _settings$mapURLProfi = settings.mapURLProfix,\n        mapURLProfix = _settings$mapURLProfi === undefined ? 'https://unpkg.com/echarts@3.6.2/map/json/' : _settings$mapURLProfi,\n        _settings$specialArea = settings.specialAreas,\n        specialAreas = _settings$specialArea === undefined ? {} : _settings$specialArea;\n    var tooltipVisible = status.tooltipVisible;\n\n    var innerXAxisList = xAxisList;\n    var innerYAxisList = yAxisList;\n    var chartData = [];\n    // add extraMetrics prop for data which only display in tooltip\n    var extraMetrics = [];\n    var mainColumn = dimension.concat([metrics]);\n    columns.forEach(function (column) {\n      if (!~mainColumn.indexOf(column)) extraMetrics.push(column);\n    });\n\n    if (type === 'cartesian') {\n      if (!innerXAxisList || !innerXAxisList.length) {\n        innerXAxisList = getAxisList(rows, dimension[0]);\n      }\n      if (!innerYAxisList || !innerYAxisList.length) {\n        innerYAxisList = getAxisList(rows, dimension[1]);\n      }\n      chartData = getData({\n        rows: rows,\n        innerXAxisList: innerXAxisList,\n        innerYAxisList: innerYAxisList,\n        xDim: dimension[0],\n        yDim: dimension[1],\n        metrics: metrics,\n        type: type,\n        extraMetrics: extraMetrics\n      });\n    } else {\n      chartData = getData({\n        rows: rows,\n        xDim: dimension[0],\n        yDim: dimension[1],\n        metrics: metrics,\n        type: type,\n        extraMetrics: extraMetrics\n      });\n    }\n    var metricsList = metrics ? rows.map(function (row) {\n      return row[metrics];\n    }) : [0, 5];\n    if (!metricsList.length) metricsList = [0];\n    var innerMin = min || Math.min.apply(null, metricsList);\n    var innerMax = max || Math.max.apply(null, metricsList);\n\n    var xAxis = getAxis(innerXAxisList, xAxisName);\n    var yAxis = getAxis(innerYAxisList, yAxisName);\n    var series = getSeries$2({ chartData: chartData });\n    var visualMap$$1 = getVisualMap({ innerMin: innerMin, innerMax: innerMax, type: type, heatColor: heatColor, series: series });\n    var tooltip$$1 = tooltipVisible && getTooltip$2({\n      dataType: dataType,\n      innerXAxisList: innerXAxisList,\n      innerYAxisList: innerYAxisList,\n      digit: digit,\n      extraMetrics: extraMetrics,\n      metrics: metrics\n    });\n\n    var options = { visualMap: visualMap$$1, series: series };\n    if (type === 'bmap') {\n      _extends(options.series[0], { coordinateSystem: 'bmap', pointSize: pointSize, blurSize: blurSize });\n\n      return getBmap(key, v).then(function (_) {\n        return _extends({ bmap: bmap$$1 }, options);\n      });\n    } else if (type === 'map') {\n      options.series[0].coordinateSystem = 'geo';\n      return getMapJSON({\n        position: position,\n        positionJsonLink: positionJsonLink,\n        beforeRegisterMapOnce: beforeRegisterMapOnce,\n        mapURLProfix: mapURLProfix\n      }).then(function (json) {\n        var geoAttr = _extends({ map: position }, geo);\n        if (beforeRegisterMap) json = beforeRegisterMap(json);\n        echartsLib.registerMap(position, json, specialAreas);\n        return _extends({ geo: geoAttr }, options);\n      });\n    } else if (type === 'amap') {\n      _extends(options.series[0], { coordinateSystem: 'amap', pointSize: pointSize, blurSize: blurSize });\n\n      return getAmap(key, v).then(function (_) {\n        return _extends({ amap: amap }, options);\n      });\n    } else {\n      return _extends({ xAxis: xAxis, yAxis: yAxis, tooltip: tooltip$$1 }, options);\n    }\n  };\n\n  var VeHeatmap = _extends({}, Core, {\n    name: 'VeHeatmap',\n    data: function data() {\n      this.chartHandler = heatmap$1;\n      return {};\n    }\n  });\n\n  function getScatterLegend(dataLabels, legendName) {\n    return {\n      data: dataLabels,\n      formatter: function formatter(name) {\n        return legendName[name] != null ? legendName[name] : name;\n      }\n    };\n  }\n\n  function getScatterTooltip(args) {\n    var tooltipTrigger = args.tooltipTrigger;\n\n    return {\n      trigger: tooltipTrigger,\n      formatter: function formatter(item) {\n        if (isArray(item)) {\n          return item.map(function (i) {\n            return getTooltipContent(i, args);\n          }).join('');\n        } else {\n          return getTooltipContent(item, args);\n        }\n      }\n    };\n  }\n\n  function getTooltipContent(item, args) {\n    var labelMap = args.labelMap,\n        columns = args.columns,\n        dataType = args.dataType,\n        digit = args.digit;\n\n    var tpl = [];\n    var color = item.color,\n        seriesName = item.seriesName,\n        value = item.data.value;\n\n    tpl.push(itemPoint(color) + ' ' + seriesName + '<br>');\n    value.forEach(function (d, i) {\n      var name = labelMap[columns[i]] || columns[i];\n      var num = isNaN(d) ? d : getFormated(d, dataType[columns[i]], digit);\n      tpl.push(name + ': ' + num + '<br>');\n    });\n    return tpl.join('');\n  }\n\n  function getScatterXAxis(args) {\n    var xAxisName = args.xAxisName,\n        axisVisible = args.axisVisible,\n        xAxisType = args.xAxisType,\n        rows = args.rows,\n        dataLabels = args.dataLabels,\n        dimension = args.dimension;\n\n    var data = [];\n    dataLabels.forEach(function (dataLabel) {\n      var itemData = rows[dataLabel];\n      itemData.forEach(function (item) {\n        var name = item[dimension];\n        if (name && !~data.indexOf(name)) data.push(name);\n      });\n    });\n\n    return [{\n      type: xAxisType,\n      show: axisVisible,\n      name: xAxisName,\n      data: data\n    }];\n  }\n\n  function getScatterYAxis(args) {\n    var min = args.min,\n        max = args.max,\n        scale = args.scale,\n        yAxisName = args.yAxisName,\n        dataType = args.dataType,\n        metrics = args.metrics,\n        digit = args.digit,\n        axisVisible = args.axisVisible;\n\n\n    return {\n      type: 'value',\n      show: axisVisible,\n      scale: scale,\n      min: min,\n      max: max,\n      axisTick: { show: false },\n      name: yAxisName,\n      axisLabel: {\n        formatter: function formatter(val) {\n          return getFormated(val, dataType[metrics[0]], digit);\n        }\n      }\n    };\n  }\n\n  function getScatterSeries(args) {\n    var rows = args.rows,\n        dataLabels = args.dataLabels,\n        columns = args.columns,\n        metrics = args.metrics,\n        dimension = args.dimension,\n        label = args.label,\n        itemStyle = args.itemStyle,\n        symbol = args.symbol,\n        symbolSizeMax = args.symbolSizeMax,\n        symbolSize = args.symbolSize,\n        symbolRotate = args.symbolRotate,\n        symbolOffset = args.symbolOffset,\n        cursor = args.cursor;\n\n    var extraMetrics = columns.filter(function (column) {\n      return !~metrics.indexOf(column) && column !== dimension;\n    });\n    var numbers = [];\n    dataLabels.forEach(function (dataLabel) {\n      rows[dataLabel].forEach(function (row) {\n        numbers.push(row[metrics[1]]);\n      });\n    });\n    var maxNum = Math.max.apply(null, numbers);\n\n    var series = [];\n    dataLabels.forEach(function (dataLabel) {\n      var result = [];\n      var itemData = rows[dataLabel];\n      itemData.forEach(function (item) {\n        var itemResult = { value: [] };\n        itemResult.value.push(item[dimension], item[metrics[0]], item[metrics[1]]);\n        extraMetrics.forEach(function (ext) {\n          itemResult.value.push(item[ext]);\n        });\n        itemResult.symbolSize = symbolSize || item[metrics[1]] / maxNum * symbolSizeMax;\n        result.push(itemResult);\n      });\n      series.push({\n        type: 'scatter',\n        data: result,\n        name: dataLabel,\n        label: label,\n        itemStyle: itemStyle,\n        symbol: symbol,\n        symbolRotate: symbolRotate,\n        symbolOffset: symbolOffset,\n        cursor: cursor\n      });\n    });\n    return series;\n  }\n\n  var scatter$1 = function scatter$$1(columns, rows, settings, extra) {\n    var _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$metrics = settings.metrics,\n        metrics = _settings$metrics === undefined ? [columns[1], columns[2]] : _settings$metrics,\n        _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? {} : _settings$dataType,\n        _settings$xAxisType = settings.xAxisType,\n        xAxisType = _settings$xAxisType === undefined ? 'category' : _settings$xAxisType,\n        xAxisName = settings.xAxisName,\n        yAxisName = settings.yAxisName,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        _settings$legendName = settings.legendName,\n        legendName = _settings$legendName === undefined ? {} : _settings$legendName,\n        _settings$labelMap = settings.labelMap,\n        labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,\n        _settings$tooltipTrig = settings.tooltipTrigger,\n        tooltipTrigger = _settings$tooltipTrig === undefined ? 'item' : _settings$tooltipTrig,\n        _settings$axisVisible = settings.axisVisible,\n        axisVisible = _settings$axisVisible === undefined ? true : _settings$axisVisible,\n        _settings$symbolSizeM = settings.symbolSizeMax,\n        symbolSizeMax = _settings$symbolSizeM === undefined ? 50 : _settings$symbolSizeM,\n        symbol = settings.symbol,\n        symbolSize = settings.symbolSize,\n        symbolRotate = settings.symbolRotate,\n        symbolOffset = settings.symbolOffset,\n        cursor = settings.cursor,\n        min = settings.min,\n        max = settings.max,\n        scale = settings.scale,\n        label = settings.label,\n        itemStyle = settings.itemStyle;\n\n\n    if (isArray(rows)) {\n      var lineSettings = _extends({}, settings, {\n        xAxisName: xAxisName ? [xAxisName] : undefined,\n        yAxisName: yAxisName ? [yAxisName] : undefined,\n        scale: scale ? [scale] : undefined,\n        min: min ? [min] : undefined,\n        max: max ? [max] : undefined,\n        dimension: dimension ? [dimension] : undefined\n      });\n      var options = line$1(columns, rows, lineSettings, extra);\n      if (!options || !options.series) return {};\n      options.series.forEach(function (item) {\n        _extends(item, {\n          type: 'scatter',\n          symbol: symbol,\n          symbolSize: symbolSize || 10,\n          symbolRotate: symbolRotate,\n          symbolOffset: symbolOffset,\n          cursor: cursor,\n          label: label,\n          itemStyle: itemStyle\n        });\n      });\n      return options;\n    }\n\n    var tooltipVisible = extra.tooltipVisible,\n        legendVisible = extra.legendVisible;\n\n    var dataLabels = Object.keys(rows);\n\n    var legend$$1 = legendVisible && getScatterLegend(dataLabels, legendName);\n    var tooltip$$1 = tooltipVisible && getScatterTooltip({\n      tooltipTrigger: tooltipTrigger,\n      labelMap: labelMap,\n      columns: columns,\n      dataType: dataType,\n      digit: digit\n    });\n    var xAxis = getScatterXAxis({\n      xAxisName: xAxisName,\n      axisVisible: axisVisible,\n      xAxisType: xAxisType,\n      dataLabels: dataLabels,\n      dimension: dimension,\n      rows: rows\n    });\n    var yAxis = getScatterYAxis({\n      min: min,\n      max: max,\n      scale: scale,\n      yAxisName: yAxisName,\n      dataType: dataType,\n      metrics: metrics,\n      digit: digit,\n      axisVisible: axisVisible\n    });\n    var series = getScatterSeries({\n      rows: rows,\n      dataLabels: dataLabels,\n      columns: columns,\n      metrics: metrics,\n      dimension: dimension,\n      label: label,\n      itemStyle: itemStyle,\n      symbol: symbol,\n      symbolSizeMax: symbolSizeMax,\n      symbolSize: symbolSize,\n      symbolRotate: symbolRotate,\n      symbolOffset: symbolOffset,\n      cursor: cursor\n    });\n    return { legend: legend$$1, tooltip: tooltip$$1, xAxis: xAxis, yAxis: yAxis, series: series };\n  };\n\n  var VeScatter = _extends({}, Core, {\n    name: 'VeScatter',\n    data: function data() {\n      this.chartHandler = scatter$1;\n      return {};\n    }\n  });\n\n  var DEFAULT_MA = [5, 10, 20, 30];\n  var DEFAULT_K_NAME = '鏃';\n  var DEFAULT_DOWN_COLOR = '#ec0000';\n  var DEFAULT_UP_COLOR = '#00da3c';\n  var DEFAULT_START = 50;\n  var DEFAULT_END = 100;\n  var SHOW_FALSE = { show: false };\n\n  function getCandleLegend(args) {\n    var showMA = args.showMA,\n        MA = args.MA,\n        legendName = args.legendName,\n        labelMap = args.labelMap;\n\n    var data = [DEFAULT_K_NAME];\n    if (showMA) data = data.concat(MA.map(function (v) {\n      return 'MA' + v;\n    }));\n    if (labelMap) data = data.map(function (v) {\n      return labelMap[v] == null ? v : labelMap[v];\n    });\n    return {\n      data: data,\n      formatter: function formatter(name) {\n        return legendName[name] != null ? legendName[name] : name;\n      }\n    };\n  }\n\n  function getCandleTooltip(args) {\n    var metrics = args.metrics,\n        dataType = args.dataType,\n        digit = args.digit,\n        labelMap = args.labelMap;\n\n    return {\n      trigger: 'axis',\n      axisPointer: { type: 'cross' },\n      position: function position(pos, params, el, elRect, size) {\n        var result = { top: 10 };\n        var side = pos[0] < size.viewSize[0] / 2 ? 'right' : 'left';\n        result[side] = 60;\n        return result;\n      },\n      formatter: function formatter(options) {\n        var tpl = [];\n        tpl.push(options[0].axisValue + '<br>');\n        options.forEach(function (option) {\n          var data = option.data,\n              seriesName = option.seriesName,\n              componentSubType = option.componentSubType,\n              color = option.color;\n\n          var name = labelMap[seriesName] == null ? seriesName : labelMap[seriesName];\n          tpl.push(itemPoint(color) + ' ' + name + ': ');\n          if (componentSubType === 'candlestick') {\n            tpl.push('<br>');\n            metrics.slice(0, 4).forEach(function (m, i) {\n              var name = labelMap[m] != null ? labelMap[m] : m;\n              var val = getFormated(data[i + 1], dataType, digit);\n              tpl.push('- ' + name + ': ' + val + '<br>');\n            });\n          } else if (componentSubType === 'line') {\n            var val = getFormated(data, dataType, digit);\n            tpl.push(val + '<br>');\n          } else if (componentSubType === 'bar') {\n            var _val = getFormated(data[1], dataType, digit);\n            tpl.push(_val + '<br>');\n          }\n        });\n        return tpl.join('');\n      }\n    };\n  }\n\n  function getCandleVisualMap(args) {\n    var downColor = args.downColor,\n        upColor = args.upColor,\n        MA = args.MA,\n        showMA = args.showMA;\n\n    return {\n      show: false,\n      seriesIndex: showMA ? 1 + MA.length : 1,\n      dimension: 2,\n      pieces: [{ value: 1, color: downColor }, { value: -1, color: upColor }]\n    };\n  }\n\n  function getCandleGrid(args) {\n    var showVol = args.showVol;\n\n    return [{\n      left: '10%',\n      right: '8%',\n      top: '10%',\n      height: showVol ? '50%' : '65%',\n      containLabel: false\n    }, {\n      left: '10%',\n      right: '8%',\n      top: '65%',\n      height: '16%',\n      containLabel: false\n    }];\n  }\n\n  function getCandleXAxis(args) {\n    var data = args.dims;\n\n    var type = 'category';\n    var scale = true;\n    var boundaryGap = false;\n    var splitLine = SHOW_FALSE;\n    var axisLine = { onZero: false };\n    var axisTick = SHOW_FALSE;\n    var axisLabel = SHOW_FALSE;\n    var min = 'dataMin';\n    var max = 'dataMax';\n    var gridIndex = 1;\n\n    return [{ type: type, data: data, scale: scale, boundaryGap: boundaryGap, axisLine: axisLine, splitLine: splitLine, min: min, max: max }, { type: type, gridIndex: gridIndex, data: data, scale: scale, boundaryGap: boundaryGap, axisLine: axisLine, axisTick: axisTick, splitLine: splitLine, axisLabel: axisLabel, min: min, max: max }];\n  }\n\n  function getCandleYAxis(args) {\n    var dataType = args.dataType,\n        digit = args.digit;\n\n    var scale = true;\n    var gridIndex = 1;\n    var splitNumber = 2;\n    var axisLine = SHOW_FALSE;\n    var axisTick = SHOW_FALSE;\n    var axisLabel = SHOW_FALSE;\n    var splitLine = SHOW_FALSE;\n    var formatter = function formatter(val) {\n      return getFormated(val, dataType, digit);\n    };\n\n    return [{ scale: scale, axisTick: axisTick, axisLabel: { formatter: formatter } }, { scale: scale, gridIndex: gridIndex, splitNumber: splitNumber, axisLine: axisLine, axisTick: axisTick, splitLine: splitLine, axisLabel: axisLabel }];\n  }\n\n  function getCandleDataZoom(args) {\n    var start = args.start,\n        end = args.end;\n\n\n    return [{\n      type: 'inside',\n      xAxisIndex: [0, 1],\n      start: start,\n      end: end\n    }, {\n      show: true,\n      xAxisIndex: [0, 1],\n      type: 'slider',\n      top: '85%',\n      start: start,\n      end: end\n    }];\n  }\n\n  function getCandleSeries(args) {\n    var values = args.values,\n        volumes = args.volumes,\n        upColor = args.upColor,\n        downColor = args.downColor,\n        showMA = args.showMA,\n        MA = args.MA,\n        showVol = args.showVol,\n        labelMap = args.labelMap,\n        digit = args.digit,\n        itemStyle = args.itemStyle;\n\n    var style = itemStyle || {\n      normal: {\n        color: upColor,\n        color0: downColor,\n        borderColor: null,\n        borderColor0: null\n      }\n    };\n    var lineStyle = { normal: { opacity: 0.5 } };\n    var series = [{\n      name: labelMap[DEFAULT_K_NAME] == null ? DEFAULT_K_NAME : labelMap[DEFAULT_K_NAME],\n      type: 'candlestick',\n      data: values,\n      itemStyle: style\n    }];\n\n    if (showMA) {\n      MA.forEach(function (d) {\n        var name = 'MA' + d;\n        series.push({\n          name: labelMap[name] == null ? name : labelMap[name],\n          data: calculateMA(d, values, digit),\n          type: 'line',\n          lineStyle: lineStyle,\n          smooth: true\n        });\n      });\n    }\n\n    if (showVol) {\n      series.push({\n        name: 'Volume',\n        type: 'bar',\n        xAxisIndex: 1,\n        yAxisIndex: 1,\n        data: volumes\n      });\n    }\n\n    return series;\n  }\n\n  function calculateMA(dayCount, data, digit) {\n    var result = [];\n    data.forEach(function (d, i) {\n      if (i < dayCount) {\n        result.push('-');\n      } else {\n        var sum = 0;\n        for (var j = 0; j < dayCount; j++) {\n          sum += data[i - j][1];\n        }result.push(+(sum / dayCount).toFixed(digit));\n      }\n    });\n    return result;\n  }\n\n  var candle = function candle(columns, rows, settings, status) {\n    var _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$metrics = settings.metrics,\n        metrics = _settings$metrics === undefined ? columns.slice(1, 6) : _settings$metrics,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        itemStyle = settings.itemStyle,\n        _settings$labelMap = settings.labelMap,\n        labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,\n        _settings$legendName = settings.legendName,\n        legendName = _settings$legendName === undefined ? {} : _settings$legendName,\n        _settings$MA = settings.MA,\n        MA = _settings$MA === undefined ? DEFAULT_MA : _settings$MA,\n        _settings$showMA = settings.showMA,\n        showMA = _settings$showMA === undefined ? false : _settings$showMA,\n        _settings$showVol = settings.showVol,\n        showVol = _settings$showVol === undefined ? false : _settings$showVol,\n        _settings$showDataZoo = settings.showDataZoom,\n        showDataZoom = _settings$showDataZoo === undefined ? false : _settings$showDataZoo,\n        _settings$downColor = settings.downColor,\n        downColor = _settings$downColor === undefined ? DEFAULT_DOWN_COLOR : _settings$downColor,\n        _settings$upColor = settings.upColor,\n        upColor = _settings$upColor === undefined ? DEFAULT_UP_COLOR : _settings$upColor,\n        _settings$start = settings.start,\n        start = _settings$start === undefined ? DEFAULT_START : _settings$start,\n        _settings$end = settings.end,\n        end = _settings$end === undefined ? DEFAULT_END : _settings$end,\n        dataType = settings.dataType;\n    var tooltipVisible = status.tooltipVisible,\n        legendVisible = status.legendVisible;\n\n\n    var isLiteData = isArray(rows[0]);\n    var dims = [];\n    var values = [];\n    var volumes = [];\n    var candleMetrics = metrics.slice(0, 4);\n    var volumeMetrics = metrics[4];\n\n    if (isLiteData) {\n      rows.forEach(function (row) {\n        var itemResult = [];\n        dims.push(row[columns.indexOf(dimension)]);\n        candleMetrics.forEach(function (item) {\n          itemResult.push(row[columns.indexOf(item)]);\n        });\n        values.push(itemResult);\n        if (volumeMetrics) volumes.push(row[columns.indexOf(volumeMetrics)]);\n      });\n    } else {\n      rows.forEach(function (row, index) {\n        var itemResult = [];\n        dims.push(row[dimension]);\n        candleMetrics.forEach(function (item) {\n          itemResult.push(row[item]);\n        });\n        values.push(itemResult);\n        if (volumeMetrics) {\n          var _status = row[metrics[0]] > row[metrics[1]] ? 1 : -1;\n          volumes.push([index, row[volumeMetrics], _status]);\n        }\n      });\n    }\n\n    var legend$$1 = legendVisible && getCandleLegend({ showMA: showMA, MA: MA, legendName: legendName, labelMap: labelMap });\n    var tooltip$$1 = tooltipVisible && getCandleTooltip({ metrics: metrics, dataType: dataType, digit: digit, labelMap: labelMap });\n    var visualMap$$1 = showVol && getCandleVisualMap({ downColor: downColor, upColor: upColor, MA: MA, showMA: showMA });\n    var dataZoom$$1 = showDataZoom && getCandleDataZoom({ start: start, end: end });\n    var grid = getCandleGrid({ showVol: showVol });\n    var xAxis = getCandleXAxis({ dims: dims });\n    var yAxis = getCandleYAxis({ dataType: dataType, digit: digit });\n    var series = getCandleSeries({\n      values: values,\n      volumes: volumes,\n      upColor: upColor,\n      downColor: downColor,\n      showMA: showMA,\n      MA: MA,\n      showVol: showVol,\n      labelMap: labelMap,\n      digit: digit,\n      itemStyle: itemStyle\n    });\n    var axisPointer = { link: { xAxisIndex: 'all' } };\n    return { legend: legend$$1, tooltip: tooltip$$1, visualMap: visualMap$$1, grid: grid, xAxis: xAxis, yAxis: yAxis, dataZoom: dataZoom$$1, series: series, axisPointer: axisPointer };\n  };\n\n  var VeCandle = _extends({}, Core, {\n    name: 'VeCandle',\n    data: function data() {\n      this.chartHandler = candle;\n      return {};\n    }\n  });\n\n  function getTooltip$3(args) {\n    var tooltipFormatter = args.tooltipFormatter,\n        dataType = args.dataType,\n        digit = args.digit;\n\n    return {\n      formatter: function formatter(options) {\n        var seriesName = options.seriesName,\n            _options$data = options.data,\n            value = _options$data.value,\n            name = _options$data.name;\n\n        if (tooltipFormatter) {\n          return tooltipFormatter.apply(null, arguments);\n        }\n        var tpl = [];\n        tpl.push(seriesName + ': ');\n        tpl.push(getFormated(value, dataType[seriesName], digit) + ' ' + name);\n        return tpl.join('');\n      }\n    };\n  }\n\n  function getSeries$3(args) {\n    var rows = args.rows,\n        dimension = args.dimension,\n        metrics = args.metrics,\n        digit = args.digit,\n        dataType = args.dataType,\n        labelMap = args.labelMap,\n        seriesMap = args.seriesMap,\n        dataName = args.dataName;\n\n\n    var series = rows.map(function (row) {\n      var label = row[dimension];\n      var seriesItem = seriesMap[label];\n      var result = {\n        type: 'gauge',\n        name: labelMap[label] != null ? labelMap[label] : label,\n        data: [{\n          name: dataName[label] || '',\n          value: row[metrics]\n        }],\n        detail: {\n          formatter: function formatter(v) {\n            return getFormated(v, dataType[label], digit);\n          }\n        },\n        axisLabel: {\n          formatter: function formatter(v) {\n            return getFormated(v, dataType[label], digit);\n          }\n        }\n      };\n\n      if (seriesItem) {\n        Object.keys(seriesItem).forEach(function (key) {\n          if (isObject(result[key])) {\n            _extends(result[key], seriesItem[key]);\n          } else {\n            result[key] = seriesItem[key];\n          }\n        });\n      }\n\n      return result;\n    });\n\n    return series;\n  }\n\n  var gauge$1 = function gauge$$1(columns, rows, settings, extra) {\n    var _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$metrics = settings.metrics,\n        metrics = _settings$metrics === undefined ? columns[1] : _settings$metrics,\n        _settings$digit = settings.digit,\n        digit = _settings$digit === undefined ? 2 : _settings$digit,\n        _settings$dataType = settings.dataType,\n        dataType = _settings$dataType === undefined ? {} : _settings$dataType,\n        _settings$labelMap = settings.labelMap,\n        labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,\n        _settings$seriesMap = settings.seriesMap,\n        seriesMap = _settings$seriesMap === undefined ? {} : _settings$seriesMap,\n        _settings$dataName = settings.dataName,\n        dataName = _settings$dataName === undefined ? {} : _settings$dataName;\n    var tooltipFormatter = extra.tooltipFormatter,\n        tooltipVisible = extra.tooltipVisible;\n\n\n    var tooltip$$1 = tooltipVisible && getTooltip$3({\n      tooltipFormatter: tooltipFormatter,\n      dataType: dataType\n    });\n\n    var series = getSeries$3({\n      rows: rows,\n      dimension: dimension,\n      metrics: metrics,\n      digit: digit,\n      dataType: dataType,\n      labelMap: labelMap,\n      seriesMap: seriesMap,\n      dataName: dataName\n    });\n    return { tooltip: tooltip$$1, series: series };\n  };\n\n  var VeGauge = _extends({}, Core, {\n    name: 'VeGauge',\n    data: function data() {\n      this.chartHandler = gauge$1;\n      return {};\n    }\n  });\n\n  function getTreeLegend(args) {\n    var dimension = args.dimension,\n        rows = args.rows;\n\n    var result = rows.map(function (row) {\n      return row[dimension];\n    });\n    return { data: result };\n  }\n\n  function getTreeTooltip(args) {\n    var tooltipFormatter = args.tooltipFormatter;\n\n\n    return {\n      trigger: 'item',\n      triggerOn: 'mousemove',\n      formatter: tooltipFormatter\n    };\n  }\n\n  function getTreeSeries(args) {\n    var dimension = args.dimension,\n        metrics = args.metrics,\n        rows = args.rows,\n        seriesMap = args.seriesMap;\n\n\n    var series = [];\n    rows.forEach(function (row) {\n      var label = row[dimension];\n      var seriesItem = seriesMap[label];\n      var result = {\n        type: 'tree',\n        name: row[dimension],\n        data: row[metrics]\n      };\n      if (seriesMap[row[dimension]]) {\n        Object.keys(seriesItem).forEach(function (key) {\n          if (isObject(result[key])) {\n            _extends(result[key], seriesItem[key]);\n          } else {\n            result[key] = seriesItem[key];\n          }\n        });\n      }\n      series.push(result);\n    });\n\n    return series;\n  }\n\n  var tree$1 = function tree$$1(columns, rows, settings, extra) {\n    var _settings$dimension = settings.dimension,\n        dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,\n        _settings$metrics = settings.metrics,\n        metrics = _settings$metrics === undefined ? columns[1] : _settings$metrics,\n        _settings$seriesMap = settings.seriesMap,\n        seriesMap = _settings$seriesMap === undefined ? {} : _settings$seriesMap;\n    var legendVisible = extra.legendVisible,\n        tooltipFormatter = extra.tooltipFormatter,\n        tooltipVisible = extra.tooltipVisible;\n\n\n    var series = getTreeSeries({\n      dimension: dimension,\n      metrics: metrics,\n      rows: rows,\n      seriesMap: seriesMap\n    });\n    var legend$$1 = legendVisible && rows.length > 1 && getTreeLegend({\n      dimension: dimension,\n      rows: rows\n    });\n    var tooltip$$1 = tooltipVisible && getTreeTooltip({\n      tooltipFormatter: tooltipFormatter\n    });\n    return { series: series, legend: legend$$1, tooltip: tooltip$$1 };\n  };\n\n  var VeTree = _extends({}, Core, {\n    name: 'VeTree',\n    data: function data() {\n      this.chartHandler = tree$1;\n      return {};\n    }\n  });\n\n  var components = [VeBar, VeHistogram, VeLine, VePie, VeRing, VeWaterfall, VeFunnel, VeRadar, VeChart, VeMap, VeBmap, VeAmap, VeSankey, VeHeatmap, VeScatter, VeCandle, VeGauge, VeTree];\n\n  function install(Vue, _) {\n    components.forEach(function (component) {\n      Vue.component(component.name, component);\n    });\n  }\n\n  if (typeof window !== 'undefined' && window.Vue) {\n    install(window.Vue);\n  }\n\n  var index = {\n    VeBar: VeBar,\n    VeHistogram: VeHistogram,\n    VeRing: VeRing,\n    VeLine: VeLine,\n    VePie: VePie,\n    VeWaterfall: VeWaterfall,\n    VeFunnel: VeFunnel,\n    VeRadar: VeRadar,\n    VeChart: VeChart,\n    VeMap: VeMap,\n    VeBmap: VeBmap,\n    VeAmap: VeAmap,\n    VeSankey: VeSankey,\n    VeScatter: VeScatter,\n    VeCandle: VeCandle,\n    VeGauge: VeGauge,\n    VeTree: VeTree,\n    install: install\n  };\n\n  return index;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_v-charts@1.17.10@v-charts/lib/index.js\n// module id = +BxT\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentModel({\n  type: 'tooltip',\n  dependencies: ['axisPointer'],\n  defaultOption: {\n    zlevel: 0,\n    z: 8,\n    show: true,\n    // tooltip涓讳綋鍐呭\n    showContent: true,\n    // 'trigger' only works on coordinate system.\n    // 'item' | 'axis' | 'none'\n    trigger: 'item',\n    // 'click' | 'mousemove' | 'none'\n    triggerOn: 'mousemove|click',\n    alwaysShowContent: false,\n    displayMode: 'single',\n    // 'single' | 'multipleByCoordSys'\n    // 浣嶇疆 {Array} | {Function}\n    // position: null\n    // Consider triggered from axisPointer handle, verticalAlign should be 'middle'\n    // align: null,\n    // verticalAlign: null,\n    // 鏄惁绾︽潫 content 鍦� viewRect 涓�傞粯璁� false 鏄负浜嗗吋瀹逛互鍓嶇増鏈�俓n    confine: false,\n    // 鍐呭鏍煎紡鍣細{string}锛圱emplate锛� 娄 {Function}\n    // formatter: null\n    showDelay: 0,\n    // 闅愯棌寤惰繜锛屽崟浣峬s\n    hideDelay: 100,\n    // 鍔ㄧ敾鍙樻崲鏃堕棿锛屽崟浣峴\n    transitionDuration: 0.4,\n    enterable: false,\n    // 鎻愮ず鑳屾櫙棰滆壊锛岄粯璁や负閫忔槑搴︿负0.7鐨勯粦鑹瞈n    backgroundColor: 'rgba(50,50,50,0.7)',\n    // 鎻愮ず杈规棰滆壊\n    borderColor: '#333',\n    // 鎻愮ず杈规鍦嗚锛屽崟浣峱x锛岄粯璁や负4\n    borderRadius: 4,\n    // 鎻愮ず杈规绾垮锛屽崟浣峱x锛岄粯璁や负0锛堟棤杈规锛塡n    borderWidth: 0,\n    // 鎻愮ず鍐呰竟璺濓紝鍗曚綅px锛岄粯璁ゅ悇鏂瑰悜鍐呰竟璺濅负5锛孿n    // 鎺ュ彈鏁扮粍鍒嗗埆璁惧畾涓婂彸涓嬪乏杈硅窛锛屽悓css\n    padding: 5,\n    // Extra css text\n    extraCssText: '',\n    // 鍧愭爣杞存寚绀哄櫒锛屽潗鏍囪酱瑙﹀彂鏈夋晥\n    axisPointer: {\n      // 榛樿涓虹洿绾縗n      // 鍙�変负锛�'line' | 'shadow' | 'cross'\n      type: 'line',\n      // type 涓� line 鐨勬椂鍊欐湁鏁堬紝鎸囧畾 tooltip line 鎵�鍦ㄧ殑杞达紝鍙�塡n      // 鍙�� 'x' | 'y' | 'angle' | 'radius' | 'auto'\n      // 榛樿 'auto'锛屼細閫夋嫨绫诲瀷涓� category 鐨勮酱锛屽浜庡弻鏁板�艰酱锛岀瑳鍗″皵鍧愭爣绯讳細榛樿閫夋嫨 x 杞碶n      // 鏋佸潗鏍囩郴浼氶粯璁ら�夋嫨 angle 杞碶n      axis: 'auto',\n      animation: 'auto',\n      animationDurationUpdate: 200,\n      animationEasingUpdate: 'exponentialOut',\n      crossStyle: {\n        color: '#999',\n        width: 1,\n        type: 'dashed',\n        // TODO formatter\n        textStyle: {} // lineStyle and shadowStyle should not be specified here,\n        // otherwise it will always override those styles on option.axisPointer.\n\n      }\n    },\n    textStyle: {\n      color: '#fff',\n      fontSize: 14\n    }\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/tooltip/TooltipModel.js\n// module id = +HCW\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar BaseAxisPointer = require(\"./BaseAxisPointer\");\n\nvar viewHelper = require(\"./viewHelper\");\n\nvar cartesianAxisHelper = require(\"../../coord/cartesian/cartesianAxisHelper\");\n\nvar AxisView = require(\"../axis/AxisView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar CartesianAxisPointer = BaseAxisPointer.extend({\n  /**\n   * @override\n   */\n  makeElOption: function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisPointerType = axisPointerModel.get('type');\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent, elStyle);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  },\n\n  /**\n   * @override\n   */\n  getHandleTransform: function (value, axisModel, axisPointerModel) {\n    var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get('handle.margin');\n    return {\n      position: viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo),\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  },\n\n  /**\n   * @override\n   */\n  updateHandleTransform: function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisExtent = axis.getGlobalExtent(true);\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var dimIndex = axis.dim === 'x' ? 0 : 1;\n    var currPosition = transform.position;\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex]; // Make tooltip do not overlap axisPointer and in the middle of the grid.\n\n    var tooltipOptions = [{\n      verticalAlign: 'middle'\n    }, {\n      align: 'center'\n    }];\n    return {\n      position: currPosition,\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: tooltipOptions[dimIndex]\n    };\n  }\n});\n\nfunction getCartesian(grid, axis) {\n  var opt = {};\n  opt[axis.dim + 'AxisIndex'] = axis.index;\n  return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent, elStyle) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n    graphic.subPixelOptimizeLine({\n      shape: targetShape,\n      style: elStyle\n    });\n    return {\n      type: 'Line',\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent, elStyle) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n    };\n  }\n};\n\nfunction getAxisDimIndex(axis) {\n  return axis.dim === 'x' ? 0 : 1;\n}\n\nAxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\nvar _default = CartesianAxisPointer;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/CartesianAxisPointer.js\n// module id = +Th3\n// module chunks = 0","require(\"./gridSimple\");\n\nrequire(\"./axisPointer/CartesianAxisPointer\");\n\nrequire(\"./axisPointer\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/grid.js\n// module id = +ds/\n// module chunks = 0","require(\"../coord/polar/polarCreator\");\n\nrequire(\"./axis/RadiusAxisView\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/radiusAxis.js\n// module id = +hCq\n// module chunks = 0","var BaseBarSeries = require(\"./BaseBarSeries\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = BaseBarSeries.extend({\n  type: 'series.bar',\n  dependencies: ['grid', 'polar'],\n  brushSelector: 'rect',\n\n  /**\n   * @override\n   */\n  getProgressive: function () {\n    // Do not support progressive in normal mode.\n    return this.get('large') ? this.get('progressive') : false;\n  },\n\n  /**\n   * @override\n   */\n  getProgressiveThreshold: function () {\n    // Do not support progressive in normal mode.\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/BarSeries.js\n// module id = +hWa\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar SymbolDraw = require(\"../helper/SymbolDraw\");\n\nvar SymbolClz = require(\"../helper/Symbol\");\n\nvar lineAnimationDiff = require(\"./lineAnimationDiff\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar _poly = require(\"./poly\");\n\nvar Polyline = _poly.Polyline;\nvar Polygon = _poly.Polygon;\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar _number = require(\"../../util/number\");\n\nvar round = _number.round;\n\nvar _helper = require(\"./helper\");\n\nvar prepareDataCoordInfo = _helper.prepareDataCoordInfo;\nvar getStackedOnPoint = _helper.getStackedOnPoint;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME step not support polar\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    var p1 = points1[i];\n    var p2 = points2[i];\n\n    if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getAxisExtentWithGap(axis) {\n  var extent = axis.getGlobalExtent();\n\n  if (axis.onBand) {\n    // Remove extra 1px to avoid line miter in clipped edge\n    var halfBandWidth = axis.getBandWidth() / 2 - 1;\n    var dir = extent[1] > extent[0] ? 1 : -1;\n    extent[0] += dir * halfBandWidth;\n    extent[1] -= dir * halfBandWidth;\n  }\n\n  return extent;\n}\n/**\n * @param {module:echarts/coord/cartesian/Cartesian2D|module:echarts/coord/polar/Polar} coordSys\n * @param {module:echarts/data/List} data\n * @param {Object} dataCoordInfo\n * @param {Array.<Array.<number>>} points\n */\n\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var points = [];\n\n  for (var idx = 0, len = data.count(); idx < len; idx++) {\n    points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\n  }\n\n  return points;\n}\n\nfunction createGridClipShape(cartesian, hasAnimation, forSymbol, seriesModel) {\n  var xExtent = getAxisExtentWithGap(cartesian.getAxis('x'));\n  var yExtent = getAxisExtentWithGap(cartesian.getAxis('y'));\n  var isHorizontal = cartesian.getBaseAxis().isHorizontal();\n  var x = Math.min(xExtent[0], xExtent[1]);\n  var y = Math.min(yExtent[0], yExtent[1]);\n  var width = Math.max(xExtent[0], xExtent[1]) - x;\n  var height = Math.max(yExtent[0], yExtent[1]) - y; // Avoid float number rounding error for symbol on the edge of axis extent.\n  // See #7913 and `test/dataZoom-clip.html`.\n\n  if (forSymbol) {\n    x -= 0.5;\n    width += 0.5;\n    y -= 0.5;\n    height += 0.5;\n  } else {\n    var lineWidth = seriesModel.get('lineStyle.width') || 2; // Expand clip shape to avoid clipping when line value exceeds axis\n\n    var expandSize = seriesModel.get('clipOverflow') ? lineWidth / 2 : Math.max(width, height);\n\n    if (isHorizontal) {\n      y -= expandSize;\n      height += expandSize * 2;\n    } else {\n      x -= expandSize;\n      width += expandSize * 2;\n    }\n  }\n\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    clipPath.shape[isHorizontal ? 'width' : 'height'] = 0;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipShape(polar, hasAnimation, forSymbol, seriesModel) {\n  var angleAxis = polar.getAngleAxis();\n  var radiusAxis = polar.getRadiusAxis();\n  var radiusExtent = radiusAxis.getExtent().slice();\n  radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n  var angleExtent = angleAxis.getExtent();\n  var RADIAN = Math.PI / 180; // Avoid float number rounding error for symbol on the edge of axis extent.\n\n  if (forSymbol) {\n    radiusExtent[0] -= 0.5;\n    radiusExtent[1] += 0.5;\n  }\n\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: round(radiusExtent[0], 1),\n      r: round(radiusExtent[1], 1),\n      startAngle: -angleExtent[0] * RADIAN,\n      endAngle: -angleExtent[1] * RADIAN,\n      clockwise: angleAxis.inverse\n    }\n  });\n\n  if (hasAnimation) {\n    clipPath.shape.endAngle = -angleExtent[0] * RADIAN;\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: -angleExtent[1] * RADIAN\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipShape(coordSys, hasAnimation, forSymbol, seriesModel) {\n  return coordSys.type === 'polar' ? createPolarClipShape(coordSys, hasAnimation, forSymbol, seriesModel) : createGridClipShape(coordSys, hasAnimation, forSymbol, seriesModel);\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n\n  for (var i = 0; i < points.length - 1; i++) {\n    var nextPt = points[i + 1];\n    var pt = points[i];\n    stepPoints.push(pt);\n    var stepPt = [];\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex]; // default is start\n\n        stepPoints.push(stepPt);\n        break;\n\n      case 'middle':\n        // default is start\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt);\n        stepPoints.push(stepPt2);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex]; // default is start\n\n        stepPoints.push(stepPt);\n    }\n  } // Last points\n\n\n  points[i] && stepPoints.push(points[i]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    // When data.count() is 0, gradient range can not be calculated.\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim; // Can only be x or y\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    return;\n  } // If the area to be rendered is bigger than area defined by LinearGradient,\n  // the canvas spec prescribes that the color of the first stop and the last\n  // stop should be used. But if two stops are added at offset 0, in effect\n  // browsers use the color of the second stop to render area outside\n  // LinearGradient. So we can only infinitesimally extend area defined in\n  // LinearGradient to render `outerColors`.\n\n\n  var axis = coordSys.getAxis(coordDim); // dataToCoor mapping may not be linear, but must be monotonic.\n\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10; // Arbitrary value: 10px\n\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    // notice colorStops.length have been changed.\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  }); // zrUtil.each(colorStops, function (colorStop) {\n  //     // Make sure each offset has rounded px to avoid not sharp edge\n  //     colorStop.offset = (Math.round(colorStop.offset * (end - start) + start) - start) / (end - start);\n  // });\n\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  } // Note that category label interval strategy might bring some weird effect\n  // in some scenario: users may wonder why some of the symbols are not\n  // displayed. So we show all symbols as possible as we can.\n\n\n  if (isAuto // Simplify the logic, do not determine label overlap here.\n  && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  } // Otherwise follow the label interval strategy on category axis.\n\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    labelMap[labelItem.tickValue] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  // In mose cases, line is monotonous on category axis, and the label size\n  // is close with each other. So we check the symbol size and some of the\n  // label size alone with the category axis to estimate whether all symbol\n  // can be shown without overlap.\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0); // 0/0 is NaN.\n  // Sampling some points, max 5.\n\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex // Only for cartesian, where `isHorizontal` exists.\n    )[categoryAxis.isHorizontal() ? 1 : 0] // Empirical number\n    * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nvar _default = ChartView.extend({\n  type: 'line',\n  init: function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  },\n  render: function (seriesModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.mapArray(data.getItemLayout);\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys); // Remove temporary symbols\n\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    }); // Remove previous created symbols if showSymbol changed to false\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup); // FIXME step not support polar\n\n    var step = !isCoordSysPolar && seriesModel.get('step'); // Initialization animation or coordinate system changed\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: createClipShape(coordSys, false, true, seriesModel)\n      });\n\n      if (step) {\n        // TODO If stacked series is not step\n        points = turnPointsIntoStep(points, coordSys, step);\n        stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n      }\n\n      polyline = this._newPolyline(points, coordSys, hasAnimation);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints, coordSys, hasAnimation);\n      }\n\n      lineGroup.setClipPath(createClipShape(coordSys, true, false, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        // If areaStyle is added\n        polygon = this._newPolygon(points, stackedOnPoints, coordSys, hasAnimation);\n      } else if (polygon && !isAreaChart) {\n        // If areaStyle is removed\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      } // Update clipPath\n\n\n      lineGroup.setClipPath(createClipShape(coordSys, false, false, seriesModel)); // Always update, or it is wrong in the case turning on legend\n      // because points are not changed\n\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: createClipShape(coordSys, false, true, seriesModel)\n      }); // Stop symbol animation and sync with line points\n      // FIXME performance?\n\n      data.eachItemGraphicEl(function (el) {\n        el.stopAnimation(true);\n      }); // In the case data zoom triggerred refreshing frequently\n      // Data may not change if line has a category axis. So it should animate nothing\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          // Not do it in update with animation\n          if (step) {\n            // TODO If stacked series is not step\n            points = turnPointsIntoStep(points, coordSys, step);\n            stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('color');\n    polyline.useStyle(zrUtil.defaults( // Use color in lineStyle first\n    lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    var smooth = seriesModel.get('smooth');\n    smooth = getSmooth(seriesModel.get('smooth'));\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: seriesModel.get('smoothMonotone'),\n      connectNulls: seriesModel.get('connectNulls')\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel'\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: seriesModel.get('smoothMonotone'),\n        connectNulls: seriesModel.get('connectNulls')\n      });\n    }\n\n    this._data = data; // Save the coordinate system for transition animation when data changed\n\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  },\n  dispose: function () {},\n  highlight: function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        // Create a temporary symbol if it is not exists\n        var pt = data.getItemLayout(dataIndex);\n\n        if (!pt) {\n          // Null data\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.position = pt;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol); // Stop scale animation\n\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      // Highlight whole series\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  },\n  downplay: function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      // FIXME\n      // can not downplay completely.\n      // Downplay whole series\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  },\n\n  /**\n   * @param {module:zrender/container/Group} group\n   * @param {Array.<Array.<number>>} points\n   * @private\n   */\n  _newPolyline: function (points) {\n    var polyline = this._polyline; // Remove previous created polyline\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new Polyline({\n      shape: {\n        points: points\n      },\n      silent: true,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  },\n\n  /**\n   * @param {module:zrender/container/Group} group\n   * @param {Array.<Array.<number>>} stackedOnPoints\n   * @param {Array.<Array.<number>>} points\n   * @private\n   */\n  _newPolygon: function (points, stackedOnPoints) {\n    var polygon = this._polygon; // Remove previous created polygon\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new Polygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      silent: true\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  },\n\n  /**\n   * @private\n   */\n  // FIXME Two value axis\n  _updateAnimation: function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      // TODO If stacked series is not step\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    } // `diff.current` is subset of `current` (which should be ensured by\n    // turnPointsIntoStep), so points in `__points` can be updated when\n    // points in `current` are update during animation.\n\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    graphic.updateProps(polyline, {\n      shape: {\n        points: next\n      }\n    }, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      graphic.updateProps(polygon, {\n        shape: {\n          points: next,\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i // Index of points\n\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          el.attr('position', polyline.shape.__points[updatedDataInfo[i].ptIdx]);\n        }\n      });\n    }\n  },\n  remove: function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true); // Remove temporary created elements when highlighting\n\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._data = null;\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/line/LineView.js\n// module id = +jdH\n// module chunks = 0","var SHADOW_PROPS = {\n  'shadowBlur': 1,\n  'shadowOffsetX': 1,\n  'shadowOffsetY': 1,\n  'textShadowBlur': 1,\n  'textShadowOffsetX': 1,\n  'textShadowOffsetY': 1,\n  'textBoxShadowBlur': 1,\n  'textBoxShadowOffsetX': 1,\n  'textBoxShadowOffsetY': 1\n};\n\nfunction _default(ctx, propName, value) {\n  if (SHADOW_PROPS.hasOwnProperty(propName)) {\n    return value *= ctx.dpr;\n  }\n\n  return value;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/fixShadow.js\n// module id = +kxT\n// module chunks = 0","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule isEventSupported\n */\n\n'use strict';\n\nvar ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar useHasFeature;\nif (ExecutionEnvironment.canUseDOM) {\n  useHasFeature =\n    document.implementation &&\n    document.implementation.hasFeature &&\n    // always returns true in newer browsers as per the standard.\n    // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n    document.implementation.hasFeature('', '') !== true;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @param {?boolean} capture Check if the capture phase is supported.\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nfunction isEventSupported(eventNameSuffix, capture) {\n  if (!ExecutionEnvironment.canUseDOM ||\n      capture && !('addEventListener' in document)) {\n    return false;\n  }\n\n  var eventName = 'on' + eventNameSuffix;\n  var isSupported = eventName in document;\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n    // This is the only way to test support for the `wheel` event in IE9+.\n    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n  }\n\n  return isSupported;\n}\n\nmodule.exports = isEventSupported;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_normalize-wheel@1.0.1@normalize-wheel/src/isEventSupported.js\n// module id = +lh6\n// module chunks = 0","require(\"./dataZoom/typeDefaulter\");\n\nrequire(\"./dataZoom/DataZoomModel\");\n\nrequire(\"./dataZoom/DataZoomView\");\n\nrequire(\"./dataZoom/SliderZoomModel\");\n\nrequire(\"./dataZoom/SliderZoomView\");\n\nrequire(\"./dataZoom/InsideZoomModel\");\n\nrequire(\"./dataZoom/InsideZoomView\");\n\nrequire(\"./dataZoom/dataZoomProcessor\");\n\nrequire(\"./dataZoom/dataZoomAction\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom.js\n// module id = +pnm\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar vector = require(\"zrender/lib/core/vector\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar Transformable = require(\"zrender/lib/mixin/Transformable\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Simple view coordinate system\n * Mapping given x, y to transformd view x, y\n */\nvar v2ApplyTransform = vector.applyTransform; // Dummy transform node\n\nfunction TransformDummy() {\n  Transformable.call(this);\n}\n\nzrUtil.mixin(TransformDummy, Transformable);\n\nfunction View(name) {\n  /**\n   * @type {string}\n   */\n  this.name = name;\n  /**\n   * @type {Object}\n   */\n\n  this.zoomLimit;\n  Transformable.call(this);\n  this._roamTransformable = new TransformDummy();\n  this._rawTransformable = new TransformDummy();\n  this._center;\n  this._zoom;\n}\n\nView.prototype = {\n  constructor: View,\n  type: 'view',\n\n  /**\n   * @param {Array.<string>}\n   * @readOnly\n   */\n  dimensions: ['x', 'y'],\n\n  /**\n   * Set bounding rect\n   * @param {number} x\n   * @param {number} y\n   * @param {number} width\n   * @param {number} height\n   */\n  // PENDING to getRect\n  setBoundingRect: function (x, y, width, height) {\n    this._rect = new BoundingRect(x, y, width, height);\n    return this._rect;\n  },\n\n  /**\n   * @return {module:zrender/core/BoundingRect}\n   */\n  // PENDING to getRect\n  getBoundingRect: function () {\n    return this._rect;\n  },\n\n  /**\n   * @param {number} x\n   * @param {number} y\n   * @param {number} width\n   * @param {number} height\n   */\n  setViewRect: function (x, y, width, height) {\n    this.transformTo(x, y, width, height);\n    this._viewRect = new BoundingRect(x, y, width, height);\n  },\n\n  /**\n   * Transformed to particular position and size\n   * @param {number} x\n   * @param {number} y\n   * @param {number} width\n   * @param {number} height\n   */\n  transformTo: function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var rawTransform = this._rawTransformable;\n    rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransform.decomposeTransform();\n\n    this._updateTransform();\n  },\n\n  /**\n   * Set center of view\n   * @param {Array.<number>} [centerCoord]\n   */\n  setCenter: function (centerCoord) {\n    if (!centerCoord) {\n      return;\n    }\n\n    this._center = centerCoord;\n\n    this._updateCenterAndZoom();\n  },\n\n  /**\n   * @param {number} zoom\n   */\n  setZoom: function (zoom) {\n    zoom = zoom || 1;\n    var zoomLimit = this.zoomLimit;\n\n    if (zoomLimit) {\n      if (zoomLimit.max != null) {\n        zoom = Math.min(zoomLimit.max, zoom);\n      }\n\n      if (zoomLimit.min != null) {\n        zoom = Math.max(zoomLimit.min, zoom);\n      }\n    }\n\n    this._zoom = zoom;\n\n    this._updateCenterAndZoom();\n  },\n\n  /**\n   * Get default center without roam\n   */\n  getDefaultCenter: function () {\n    // Rect before any transform\n    var rawRect = this.getBoundingRect();\n    var cx = rawRect.x + rawRect.width / 2;\n    var cy = rawRect.y + rawRect.height / 2;\n    return [cx, cy];\n  },\n  getCenter: function () {\n    return this._center || this.getDefaultCenter();\n  },\n  getZoom: function () {\n    return this._zoom || 1;\n  },\n\n  /**\n   * @return {Array.<number}\n   */\n  getRoamTransform: function () {\n    return this._roamTransformable.getLocalTransform();\n  },\n\n  /**\n   * Remove roam\n   */\n  _updateCenterAndZoom: function () {\n    // Must update after view transform updated\n    var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n    var roamTransform = this._roamTransformable;\n    var defaultCenter = this.getDefaultCenter();\n    var center = this.getCenter();\n    var zoom = this.getZoom();\n    center = vector.applyTransform([], center, rawTransformMatrix);\n    defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n    roamTransform.origin = center;\n    roamTransform.position = [defaultCenter[0] - center[0], defaultCenter[1] - center[1]];\n    roamTransform.scale = [zoom, zoom];\n\n    this._updateTransform();\n  },\n\n  /**\n   * Update transform from roam and mapLocation\n   * @private\n   */\n  _updateTransform: function () {\n    var roamTransformable = this._roamTransformable;\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.parent = roamTransformable;\n    roamTransformable.updateTransform();\n    rawTransformable.updateTransform();\n    matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n    this._rawTransform = rawTransformable.getLocalTransform();\n    this.invTransform = this.invTransform || [];\n    matrix.invert(this.invTransform, this.transform);\n    this.decomposeTransform();\n  },\n\n  /**\n   * @return {module:zrender/core/BoundingRect}\n   */\n  getViewRect: function () {\n    return this._viewRect;\n  },\n\n  /**\n   * Get view rect after roam transform\n   * @return {module:zrender/core/BoundingRect}\n   */\n  getViewRectAfterRoam: function () {\n    var rect = this.getBoundingRect().clone();\n    rect.applyTransform(this.transform);\n    return rect;\n  },\n\n  /**\n   * Convert a single (lon, lat) data item to (x, y) point.\n   * @param {Array.<number>} data\n   * @param {boolean} noRoam\n   * @param {Array.<number>} [out]\n   * @return {Array.<number>}\n   */\n  dataToPoint: function (data, noRoam, out) {\n    var transform = noRoam ? this._rawTransform : this.transform;\n    out = out || [];\n    return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n  },\n\n  /**\n   * Convert a (x, y) point to (lon, lat) data\n   * @param {Array.<number>} point\n   * @return {Array.<number>}\n   */\n  pointToData: function (point) {\n    var invTransform = this.invTransform;\n    return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n  },\n\n  /**\n   * @implements\n   * see {module:echarts/CoodinateSystem}\n   */\n  convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n  /**\n   * @implements\n   * see {module:echarts/CoodinateSystem}\n   */\n  convertFromPixel: zrUtil.curry(doConvert, 'pointToData'),\n\n  /**\n   * @implements\n   * see {module:echarts/CoodinateSystem}\n   */\n  containPoint: function (point) {\n    return this.getViewRectAfterRoam().contain(point[0], point[1]);\n  }\n  /**\n   * @return {number}\n   */\n  // getScalarScale: function () {\n  //     // Use determinant square root of transform to mutiply scalar\n  //     var m = this.transform;\n  //     var det = Math.sqrt(Math.abs(m[0] * m[3] - m[2] * m[1]));\n  //     return det;\n  // }\n\n};\nzrUtil.mixin(View, Transformable);\n\nfunction doConvert(methodName, ecModel, finder, value) {\n  var seriesModel = finder.seriesModel;\n  var coordSys = seriesModel ? seriesModel.coordinateSystem : null; // e.g., graph.\n\n  return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nvar _default = View;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/View.js\n// module id = +sAc\n// module chunks = 0","var env = require(\"../core/env\");\n\nvar _vector = require(\"../core/vector\");\n\nvar applyTransform = _vector.applyTransform;\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar colorTool = require(\"../tool/color\");\n\nvar textContain = require(\"../contain/text\");\n\nvar textHelper = require(\"../graphic/helper/text\");\n\nvar RectText = require(\"../graphic/mixin/RectText\");\n\nvar Displayable = require(\"../graphic/Displayable\");\n\nvar ZImage = require(\"../graphic/Image\");\n\nvar Text = require(\"../graphic/Text\");\n\nvar Path = require(\"../graphic/Path\");\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar Gradient = require(\"../graphic/Gradient\");\n\nvar vmlCore = require(\"./core\");\n\n// http://www.w3.org/TR/NOTE-VML\n// TODO Use proxy like svg instead of overwrite brush methods\nvar CMD = PathProxy.CMD;\nvar round = Math.round;\nvar sqrt = Math.sqrt;\nvar abs = Math.abs;\nvar cos = Math.cos;\nvar sin = Math.sin;\nvar mathMax = Math.max;\n\nif (!env.canvasSupported) {\n  var comma = ',';\n  var imageTransformPrefix = 'progid:DXImageTransform.Microsoft';\n  var Z = 21600;\n  var Z2 = Z / 2;\n  var ZLEVEL_BASE = 100000;\n  var Z_BASE = 1000;\n\n  var initRootElStyle = function (el) {\n    el.style.cssText = 'position:absolute;left:0;top:0;width:1px;height:1px;';\n    el.coordsize = Z + ',' + Z;\n    el.coordorigin = '0,0';\n  };\n\n  var encodeHtmlAttribute = function (s) {\n    return String(s).replace(/&/g, '&amp;').replace(/\"/g, '&quot;');\n  };\n\n  var rgb2Str = function (r, g, b) {\n    return 'rgb(' + [r, g, b].join(',') + ')';\n  };\n\n  var append = function (parent, child) {\n    if (child && parent && child.parentNode !== parent) {\n      parent.appendChild(child);\n    }\n  };\n\n  var remove = function (parent, child) {\n    if (child && parent && child.parentNode === parent) {\n      parent.removeChild(child);\n    }\n  };\n\n  var getZIndex = function (zlevel, z, z2) {\n    // z 鐨勫彇鍊艰寖鍥翠负 [0, 1000]\n    return (parseFloat(zlevel) || 0) * ZLEVEL_BASE + (parseFloat(z) || 0) * Z_BASE + z2;\n  };\n\n  var parsePercent = function (value, maxValue) {\n    if (typeof value === 'string') {\n      if (value.lastIndexOf('%') >= 0) {\n        return parseFloat(value) / 100 * maxValue;\n      }\n\n      return parseFloat(value);\n    }\n\n    return value;\n  };\n  /***************************************************\n   * PATH\n   **************************************************/\n\n\n  var setColorAndOpacity = function (el, color, opacity) {\n    var colorArr = colorTool.parse(color);\n    opacity = +opacity;\n\n    if (isNaN(opacity)) {\n      opacity = 1;\n    }\n\n    if (colorArr) {\n      el.color = rgb2Str(colorArr[0], colorArr[1], colorArr[2]);\n      el.opacity = opacity * colorArr[3];\n    }\n  };\n\n  var getColorAndAlpha = function (color) {\n    var colorArr = colorTool.parse(color);\n    return [rgb2Str(colorArr[0], colorArr[1], colorArr[2]), colorArr[3]];\n  };\n\n  var updateFillNode = function (el, style, zrEl) {\n    // TODO pattern\n    var fill = style.fill;\n\n    if (fill != null) {\n      // Modified from excanvas\n      if (fill instanceof Gradient) {\n        var gradientType;\n        var angle = 0;\n        var focus = [0, 0]; // additional offset\n\n        var shift = 0; // scale factor for offset\n\n        var expansion = 1;\n        var rect = zrEl.getBoundingRect();\n        var rectWidth = rect.width;\n        var rectHeight = rect.height;\n\n        if (fill.type === 'linear') {\n          gradientType = 'gradient';\n          var transform = zrEl.transform;\n          var p0 = [fill.x * rectWidth, fill.y * rectHeight];\n          var p1 = [fill.x2 * rectWidth, fill.y2 * rectHeight];\n\n          if (transform) {\n            applyTransform(p0, p0, transform);\n            applyTransform(p1, p1, transform);\n          }\n\n          var dx = p1[0] - p0[0];\n          var dy = p1[1] - p0[1];\n          angle = Math.atan2(dx, dy) * 180 / Math.PI; // The angle should be a non-negative number.\n\n          if (angle < 0) {\n            angle += 360;\n          } // Very small angles produce an unexpected result because they are\n          // converted to a scientific notation string.\n\n\n          if (angle < 1e-6) {\n            angle = 0;\n          }\n        } else {\n          gradientType = 'gradientradial';\n          var p0 = [fill.x * rectWidth, fill.y * rectHeight];\n          var transform = zrEl.transform;\n          var scale = zrEl.scale;\n          var width = rectWidth;\n          var height = rectHeight;\n          focus = [// Percent in bounding rect\n          (p0[0] - rect.x) / width, (p0[1] - rect.y) / height];\n\n          if (transform) {\n            applyTransform(p0, p0, transform);\n          }\n\n          width /= scale[0] * Z;\n          height /= scale[1] * Z;\n          var dimension = mathMax(width, height);\n          shift = 2 * 0 / dimension;\n          expansion = 2 * fill.r / dimension - shift;\n        } // We need to sort the color stops in ascending order by offset,\n        // otherwise IE won't interpret it correctly.\n\n\n        var stops = fill.colorStops.slice();\n        stops.sort(function (cs1, cs2) {\n          return cs1.offset - cs2.offset;\n        });\n        var length = stops.length; // Color and alpha list of first and last stop\n\n        var colorAndAlphaList = [];\n        var colors = [];\n\n        for (var i = 0; i < length; i++) {\n          var stop = stops[i];\n          var colorAndAlpha = getColorAndAlpha(stop.color);\n          colors.push(stop.offset * expansion + shift + ' ' + colorAndAlpha[0]);\n\n          if (i === 0 || i === length - 1) {\n            colorAndAlphaList.push(colorAndAlpha);\n          }\n        }\n\n        if (length >= 2) {\n          var color1 = colorAndAlphaList[0][0];\n          var color2 = colorAndAlphaList[1][0];\n          var opacity1 = colorAndAlphaList[0][1] * style.opacity;\n          var opacity2 = colorAndAlphaList[1][1] * style.opacity;\n          el.type = gradientType;\n          el.method = 'none';\n          el.focus = '100%';\n          el.angle = angle;\n          el.color = color1;\n          el.color2 = color2;\n          el.colors = colors.join(','); // When colors attribute is used, the meanings of opacity and o:opacity2\n          // are reversed.\n\n          el.opacity = opacity2; // FIXME g_o_:opacity ?\n\n          el.opacity2 = opacity1;\n        }\n\n        if (gradientType === 'radial') {\n          el.focusposition = focus.join(',');\n        }\n      } else {\n        // FIXME Change from Gradient fill to color fill\n        setColorAndOpacity(el, fill, style.opacity);\n      }\n    }\n  };\n\n  var updateStrokeNode = function (el, style) {\n    // if (style.lineJoin != null) {\n    //     el.joinstyle = style.lineJoin;\n    // }\n    // if (style.miterLimit != null) {\n    //     el.miterlimit = style.miterLimit * Z;\n    // }\n    // if (style.lineCap != null) {\n    //     el.endcap = style.lineCap;\n    // }\n    if (style.lineDash != null) {\n      el.dashstyle = style.lineDash.join(' ');\n    }\n\n    if (style.stroke != null && !(style.stroke instanceof Gradient)) {\n      setColorAndOpacity(el, style.stroke, style.opacity);\n    }\n  };\n\n  var updateFillAndStroke = function (vmlEl, type, style, zrEl) {\n    var isFill = type == 'fill';\n    var el = vmlEl.getElementsByTagName(type)[0]; // Stroke must have lineWidth\n\n    if (style[type] != null && style[type] !== 'none' && (isFill || !isFill && style.lineWidth)) {\n      vmlEl[isFill ? 'filled' : 'stroked'] = 'true'; // FIXME Remove before updating, or set `colors` will throw error\n\n      if (style[type] instanceof Gradient) {\n        remove(vmlEl, el);\n      }\n\n      if (!el) {\n        el = vmlCore.createNode(type);\n      }\n\n      isFill ? updateFillNode(el, style, zrEl) : updateStrokeNode(el, style);\n      append(vmlEl, el);\n    } else {\n      vmlEl[isFill ? 'filled' : 'stroked'] = 'false';\n      remove(vmlEl, el);\n    }\n  };\n\n  var points = [[], [], []];\n\n  var pathDataToString = function (path, m) {\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    var str = [];\n    var nPoint;\n    var cmdStr;\n    var cmd;\n    var i;\n    var xi;\n    var yi;\n    var data = path.data;\n    var dataLength = path.len();\n\n    for (i = 0; i < dataLength;) {\n      cmd = data[i++];\n      cmdStr = '';\n      nPoint = 0;\n\n      switch (cmd) {\n        case M:\n          cmdStr = ' m ';\n          nPoint = 1;\n          xi = data[i++];\n          yi = data[i++];\n          points[0][0] = xi;\n          points[0][1] = yi;\n          break;\n\n        case L:\n          cmdStr = ' l ';\n          nPoint = 1;\n          xi = data[i++];\n          yi = data[i++];\n          points[0][0] = xi;\n          points[0][1] = yi;\n          break;\n\n        case Q:\n        case C:\n          cmdStr = ' c ';\n          nPoint = 3;\n          var x1 = data[i++];\n          var y1 = data[i++];\n          var x2 = data[i++];\n          var y2 = data[i++];\n          var x3;\n          var y3;\n\n          if (cmd === Q) {\n            // Convert quadratic to cubic using degree elevation\n            x3 = x2;\n            y3 = y2;\n            x2 = (x2 + 2 * x1) / 3;\n            y2 = (y2 + 2 * y1) / 3;\n            x1 = (xi + 2 * x1) / 3;\n            y1 = (yi + 2 * y1) / 3;\n          } else {\n            x3 = data[i++];\n            y3 = data[i++];\n          }\n\n          points[0][0] = x1;\n          points[0][1] = y1;\n          points[1][0] = x2;\n          points[1][1] = y2;\n          points[2][0] = x3;\n          points[2][1] = y3;\n          xi = x3;\n          yi = y3;\n          break;\n\n        case A:\n          var x = 0;\n          var y = 0;\n          var sx = 1;\n          var sy = 1;\n          var angle = 0;\n\n          if (m) {\n            // Extract SRT from matrix\n            x = m[4];\n            y = m[5];\n            sx = sqrt(m[0] * m[0] + m[1] * m[1]);\n            sy = sqrt(m[2] * m[2] + m[3] * m[3]);\n            angle = Math.atan2(-m[1] / sy, m[0] / sx);\n          }\n\n          var cx = data[i++];\n          var cy = data[i++];\n          var rx = data[i++];\n          var ry = data[i++];\n          var startAngle = data[i++] + angle;\n          var endAngle = data[i++] + startAngle + angle; // FIXME\n          // var psi = data[i++];\n\n          i++;\n          var clockwise = data[i++];\n          var x0 = cx + cos(startAngle) * rx;\n          var y0 = cy + sin(startAngle) * ry;\n          var x1 = cx + cos(endAngle) * rx;\n          var y1 = cy + sin(endAngle) * ry;\n          var type = clockwise ? ' wa ' : ' at ';\n\n          if (Math.abs(x0 - x1) < 1e-4) {\n            // IE won't render arches drawn counter clockwise if x0 == x1.\n            if (Math.abs(endAngle - startAngle) > 1e-2) {\n              // Offset x0 by 1/80 of a pixel. Use something\n              // that can be represented in binary\n              if (clockwise) {\n                x0 += 270 / Z;\n              }\n            } else {\n              // Avoid case draw full circle\n              if (Math.abs(y0 - cy) < 1e-4) {\n                if (clockwise && x0 < cx || !clockwise && x0 > cx) {\n                  y1 -= 270 / Z;\n                } else {\n                  y1 += 270 / Z;\n                }\n              } else if (clockwise && y0 < cy || !clockwise && y0 > cy) {\n                x1 += 270 / Z;\n              } else {\n                x1 -= 270 / Z;\n              }\n            }\n          }\n\n          str.push(type, round(((cx - rx) * sx + x) * Z - Z2), comma, round(((cy - ry) * sy + y) * Z - Z2), comma, round(((cx + rx) * sx + x) * Z - Z2), comma, round(((cy + ry) * sy + y) * Z - Z2), comma, round((x0 * sx + x) * Z - Z2), comma, round((y0 * sy + y) * Z - Z2), comma, round((x1 * sx + x) * Z - Z2), comma, round((y1 * sy + y) * Z - Z2));\n          xi = x1;\n          yi = y1;\n          break;\n\n        case CMD.R:\n          var p0 = points[0];\n          var p1 = points[1]; // x0, y0\n\n          p0[0] = data[i++];\n          p0[1] = data[i++]; // x1, y1\n\n          p1[0] = p0[0] + data[i++];\n          p1[1] = p0[1] + data[i++];\n\n          if (m) {\n            applyTransform(p0, p0, m);\n            applyTransform(p1, p1, m);\n          }\n\n          p0[0] = round(p0[0] * Z - Z2);\n          p1[0] = round(p1[0] * Z - Z2);\n          p0[1] = round(p0[1] * Z - Z2);\n          p1[1] = round(p1[1] * Z - Z2);\n          str.push( // x0, y0\n          ' m ', p0[0], comma, p0[1], // x1, y0\n          ' l ', p1[0], comma, p0[1], // x1, y1\n          ' l ', p1[0], comma, p1[1], // x0, y1\n          ' l ', p0[0], comma, p1[1]);\n          break;\n\n        case CMD.Z:\n          // FIXME Update xi, yi\n          str.push(' x ');\n      }\n\n      if (nPoint > 0) {\n        str.push(cmdStr);\n\n        for (var k = 0; k < nPoint; k++) {\n          var p = points[k];\n          m && applyTransform(p, p, m); // 涓� round 浼氶潪甯告參\n\n          str.push(round(p[0] * Z - Z2), comma, round(p[1] * Z - Z2), k < nPoint - 1 ? comma : '');\n        }\n      }\n    }\n\n    return str.join('');\n  }; // Rewrite the original path method\n\n\n  Path.prototype.brushVML = function (vmlRoot) {\n    var style = this.style;\n    var vmlEl = this._vmlEl;\n\n    if (!vmlEl) {\n      vmlEl = vmlCore.createNode('shape');\n      initRootElStyle(vmlEl);\n      this._vmlEl = vmlEl;\n    }\n\n    updateFillAndStroke(vmlEl, 'fill', style, this);\n    updateFillAndStroke(vmlEl, 'stroke', style, this);\n    var m = this.transform;\n    var needTransform = m != null;\n    var strokeEl = vmlEl.getElementsByTagName('stroke')[0];\n\n    if (strokeEl) {\n      var lineWidth = style.lineWidth; // Get the line scale.\n      // Determinant of this.m_ means how much the area is enlarged by the\n      // transformation. So its square root can be used as a scale factor\n      // for width.\n\n      if (needTransform && !style.strokeNoScale) {\n        var det = m[0] * m[3] - m[1] * m[2];\n        lineWidth *= sqrt(abs(det));\n      }\n\n      strokeEl.weight = lineWidth + 'px';\n    }\n\n    var path = this.path || (this.path = new PathProxy());\n\n    if (this.__dirtyPath) {\n      path.beginPath();\n      this.buildPath(path, this.shape);\n      path.toStatic();\n      this.__dirtyPath = false;\n    }\n\n    vmlEl.path = pathDataToString(path, this.transform);\n    vmlEl.style.zIndex = getZIndex(this.zlevel, this.z, this.z2); // Append to root\n\n    append(vmlRoot, vmlEl); // Text\n\n    if (style.text != null) {\n      this.drawRectText(vmlRoot, this.getBoundingRect());\n    } else {\n      this.removeRectText(vmlRoot);\n    }\n  };\n\n  Path.prototype.onRemove = function (vmlRoot) {\n    remove(vmlRoot, this._vmlEl);\n    this.removeRectText(vmlRoot);\n  };\n\n  Path.prototype.onAdd = function (vmlRoot) {\n    append(vmlRoot, this._vmlEl);\n    this.appendRectText(vmlRoot);\n  };\n  /***************************************************\n   * IMAGE\n   **************************************************/\n\n\n  var isImage = function (img) {\n    // FIXME img instanceof Image 濡傛灉 img 鏄竴涓瓧绗︿覆鐨勬椂鍊欙紝IE8 涓嬩細鎶ラ敊\n    return typeof img === 'object' && img.tagName && img.tagName.toUpperCase() === 'IMG'; // return img instanceof Image;\n  }; // Rewrite the original path method\n\n\n  ZImage.prototype.brushVML = function (vmlRoot) {\n    var style = this.style;\n    var image = style.image; // Image original width, height\n\n    var ow;\n    var oh;\n\n    if (isImage(image)) {\n      var src = image.src;\n\n      if (src === this._imageSrc) {\n        ow = this._imageWidth;\n        oh = this._imageHeight;\n      } else {\n        var imageRuntimeStyle = image.runtimeStyle;\n        var oldRuntimeWidth = imageRuntimeStyle.width;\n        var oldRuntimeHeight = imageRuntimeStyle.height;\n        imageRuntimeStyle.width = 'auto';\n        imageRuntimeStyle.height = 'auto'; // get the original size\n\n        ow = image.width;\n        oh = image.height; // and remove overides\n\n        imageRuntimeStyle.width = oldRuntimeWidth;\n        imageRuntimeStyle.height = oldRuntimeHeight; // Caching image original width, height and src\n\n        this._imageSrc = src;\n        this._imageWidth = ow;\n        this._imageHeight = oh;\n      }\n\n      image = src;\n    } else {\n      if (image === this._imageSrc) {\n        ow = this._imageWidth;\n        oh = this._imageHeight;\n      }\n    }\n\n    if (!image) {\n      return;\n    }\n\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var dw = style.width;\n    var dh = style.height;\n    var sw = style.sWidth;\n    var sh = style.sHeight;\n    var sx = style.sx || 0;\n    var sy = style.sy || 0;\n    var hasCrop = sw && sh;\n    var vmlEl = this._vmlEl;\n\n    if (!vmlEl) {\n      // FIXME 浣跨敤 group 鍦� left, top 閮戒笉鏄� 0 鐨勬椂鍊欏氨鏃犳硶鏄剧ず浜嗐�俓n      // vmlEl = vmlCore.createNode('group');\n      vmlEl = vmlCore.doc.createElement('div');\n      initRootElStyle(vmlEl);\n      this._vmlEl = vmlEl;\n    }\n\n    var vmlElStyle = vmlEl.style;\n    var hasRotation = false;\n    var m;\n    var scaleX = 1;\n    var scaleY = 1;\n\n    if (this.transform) {\n      m = this.transform;\n      scaleX = sqrt(m[0] * m[0] + m[1] * m[1]);\n      scaleY = sqrt(m[2] * m[2] + m[3] * m[3]);\n      hasRotation = m[1] || m[2];\n    }\n\n    if (hasRotation) {\n      // If filters are necessary (rotation exists), create them\n      // filters are bog-slow, so only create them if abbsolutely necessary\n      // The following check doesn't account for skews (which don't exist\n      // in the canvas spec (yet) anyway.\n      // From excanvas\n      var p0 = [x, y];\n      var p1 = [x + dw, y];\n      var p2 = [x, y + dh];\n      var p3 = [x + dw, y + dh];\n      applyTransform(p0, p0, m);\n      applyTransform(p1, p1, m);\n      applyTransform(p2, p2, m);\n      applyTransform(p3, p3, m);\n      var maxX = mathMax(p0[0], p1[0], p2[0], p3[0]);\n      var maxY = mathMax(p0[1], p1[1], p2[1], p3[1]);\n      var transformFilter = [];\n      transformFilter.push('M11=', m[0] / scaleX, comma, 'M12=', m[2] / scaleY, comma, 'M21=', m[1] / scaleX, comma, 'M22=', m[3] / scaleY, comma, 'Dx=', round(x * scaleX + m[4]), comma, 'Dy=', round(y * scaleY + m[5]));\n      vmlElStyle.padding = '0 ' + round(maxX) + 'px ' + round(maxY) + 'px 0'; // FIXME DXImageTransform 鍦� IE11 鐨勫吋瀹规ā寮忎笅涓嶈捣浣滅敤\n\n      vmlElStyle.filter = imageTransformPrefix + '.Matrix(' + transformFilter.join('') + ', SizingMethod=clip)';\n    } else {\n      if (m) {\n        x = x * scaleX + m[4];\n        y = y * scaleY + m[5];\n      }\n\n      vmlElStyle.filter = '';\n      vmlElStyle.left = round(x) + 'px';\n      vmlElStyle.top = round(y) + 'px';\n    }\n\n    var imageEl = this._imageEl;\n    var cropEl = this._cropEl;\n\n    if (!imageEl) {\n      imageEl = vmlCore.doc.createElement('div');\n      this._imageEl = imageEl;\n    }\n\n    var imageELStyle = imageEl.style;\n\n    if (hasCrop) {\n      // Needs know image original width and height\n      if (!(ow && oh)) {\n        var tmpImage = new Image();\n        var self = this;\n\n        tmpImage.onload = function () {\n          tmpImage.onload = null;\n          ow = tmpImage.width;\n          oh = tmpImage.height; // Adjust image width and height to fit the ratio destinationSize / sourceSize\n\n          imageELStyle.width = round(scaleX * ow * dw / sw) + 'px';\n          imageELStyle.height = round(scaleY * oh * dh / sh) + 'px'; // Caching image original width, height and src\n\n          self._imageWidth = ow;\n          self._imageHeight = oh;\n          self._imageSrc = image;\n        };\n\n        tmpImage.src = image;\n      } else {\n        imageELStyle.width = round(scaleX * ow * dw / sw) + 'px';\n        imageELStyle.height = round(scaleY * oh * dh / sh) + 'px';\n      }\n\n      if (!cropEl) {\n        cropEl = vmlCore.doc.createElement('div');\n        cropEl.style.overflow = 'hidden';\n        this._cropEl = cropEl;\n      }\n\n      var cropElStyle = cropEl.style;\n      cropElStyle.width = round((dw + sx * dw / sw) * scaleX);\n      cropElStyle.height = round((dh + sy * dh / sh) * scaleY);\n      cropElStyle.filter = imageTransformPrefix + '.Matrix(Dx=' + -sx * dw / sw * scaleX + ',Dy=' + -sy * dh / sh * scaleY + ')';\n\n      if (!cropEl.parentNode) {\n        vmlEl.appendChild(cropEl);\n      }\n\n      if (imageEl.parentNode != cropEl) {\n        cropEl.appendChild(imageEl);\n      }\n    } else {\n      imageELStyle.width = round(scaleX * dw) + 'px';\n      imageELStyle.height = round(scaleY * dh) + 'px';\n      vmlEl.appendChild(imageEl);\n\n      if (cropEl && cropEl.parentNode) {\n        vmlEl.removeChild(cropEl);\n        this._cropEl = null;\n      }\n    }\n\n    var filterStr = '';\n    var alpha = style.opacity;\n\n    if (alpha < 1) {\n      filterStr += '.Alpha(opacity=' + round(alpha * 100) + ') ';\n    }\n\n    filterStr += imageTransformPrefix + '.AlphaImageLoader(src=' + image + ', SizingMethod=scale)';\n    imageELStyle.filter = filterStr;\n    vmlEl.style.zIndex = getZIndex(this.zlevel, this.z, this.z2); // Append to root\n\n    append(vmlRoot, vmlEl); // Text\n\n    if (style.text != null) {\n      this.drawRectText(vmlRoot, this.getBoundingRect());\n    }\n  };\n\n  ZImage.prototype.onRemove = function (vmlRoot) {\n    remove(vmlRoot, this._vmlEl);\n    this._vmlEl = null;\n    this._cropEl = null;\n    this._imageEl = null;\n    this.removeRectText(vmlRoot);\n  };\n\n  ZImage.prototype.onAdd = function (vmlRoot) {\n    append(vmlRoot, this._vmlEl);\n    this.appendRectText(vmlRoot);\n  };\n  /***************************************************\n   * TEXT\n   **************************************************/\n\n\n  var DEFAULT_STYLE_NORMAL = 'normal';\n  var fontStyleCache = {};\n  var fontStyleCacheCount = 0;\n  var MAX_FONT_CACHE_SIZE = 100;\n  var fontEl = document.createElement('div');\n\n  var getFontStyle = function (fontString) {\n    var fontStyle = fontStyleCache[fontString];\n\n    if (!fontStyle) {\n      // Clear cache\n      if (fontStyleCacheCount > MAX_FONT_CACHE_SIZE) {\n        fontStyleCacheCount = 0;\n        fontStyleCache = {};\n      }\n\n      var style = fontEl.style;\n      var fontFamily;\n\n      try {\n        style.font = fontString;\n        fontFamily = style.fontFamily.split(',')[0];\n      } catch (e) {}\n\n      fontStyle = {\n        style: style.fontStyle || DEFAULT_STYLE_NORMAL,\n        variant: style.fontVariant || DEFAULT_STYLE_NORMAL,\n        weight: style.fontWeight || DEFAULT_STYLE_NORMAL,\n        size: parseFloat(style.fontSize || 12) | 0,\n        family: fontFamily || 'Microsoft YaHei'\n      };\n      fontStyleCache[fontString] = fontStyle;\n      fontStyleCacheCount++;\n    }\n\n    return fontStyle;\n  };\n\n  var textMeasureEl; // Overwrite measure text method\n\n  textContain.$override('measureText', function (text, textFont) {\n    var doc = vmlCore.doc;\n\n    if (!textMeasureEl) {\n      textMeasureEl = doc.createElement('div');\n      textMeasureEl.style.cssText = 'position:absolute;top:-20000px;left:0;' + 'padding:0;margin:0;border:none;white-space:pre;';\n      vmlCore.doc.body.appendChild(textMeasureEl);\n    }\n\n    try {\n      textMeasureEl.style.font = textFont;\n    } catch (ex) {// Ignore failures to set to invalid font.\n    }\n\n    textMeasureEl.innerHTML = ''; // Don't use innerHTML or innerText because they allow markup/whitespace.\n\n    textMeasureEl.appendChild(doc.createTextNode(text));\n    return {\n      width: textMeasureEl.offsetWidth\n    };\n  });\n  var tmpRect = new BoundingRect();\n\n  var drawRectText = function (vmlRoot, rect, textRect, fromTextEl) {\n    var style = this.style; // Optimize, avoid normalize every time.\n\n    this.__dirty && textHelper.normalizeTextStyle(style, true);\n    var text = style.text; // Convert to string\n\n    text != null && (text += '');\n\n    if (!text) {\n      return;\n    } // Convert rich text to plain text. Rich text is not supported in\n    // IE8-, but tags in rich text template will be removed.\n\n\n    if (style.rich) {\n      var contentBlock = textContain.parseRichText(text, style);\n      text = [];\n\n      for (var i = 0; i < contentBlock.lines.length; i++) {\n        var tokens = contentBlock.lines[i].tokens;\n        var textLine = [];\n\n        for (var j = 0; j < tokens.length; j++) {\n          textLine.push(tokens[j].text);\n        }\n\n        text.push(textLine.join(''));\n      }\n\n      text = text.join('\\n');\n    }\n\n    var x;\n    var y;\n    var align = style.textAlign;\n    var verticalAlign = style.textVerticalAlign;\n    var fontStyle = getFontStyle(style.font); // FIXME encodeHtmlAttribute ?\n\n    var font = fontStyle.style + ' ' + fontStyle.variant + ' ' + fontStyle.weight + ' ' + fontStyle.size + 'px \"' + fontStyle.family + '\"';\n    textRect = textRect || textContain.getBoundingRect(text, font, align, verticalAlign); // Transform rect to view space\n\n    var m = this.transform; // Ignore transform for text in other element\n\n    if (m && !fromTextEl) {\n      tmpRect.copy(rect);\n      tmpRect.applyTransform(m);\n      rect = tmpRect;\n    }\n\n    if (!fromTextEl) {\n      var textPosition = style.textPosition;\n      var distance = style.textDistance; // Text position represented by coord\n\n      if (textPosition instanceof Array) {\n        x = rect.x + parsePercent(textPosition[0], rect.width);\n        y = rect.y + parsePercent(textPosition[1], rect.height);\n        align = align || 'left';\n      } else {\n        var res = textContain.adjustTextPositionOnRect(textPosition, rect, distance);\n        x = res.x;\n        y = res.y; // Default align and baseline when has textPosition\n\n        align = align || res.textAlign;\n        verticalAlign = verticalAlign || res.textVerticalAlign;\n      }\n    } else {\n      x = rect.x;\n      y = rect.y;\n    }\n\n    x = textContain.adjustTextX(x, textRect.width, align);\n    y = textContain.adjustTextY(y, textRect.height, verticalAlign); // Force baseline 'middle'\n\n    y += textRect.height / 2; // var fontSize = fontStyle.size;\n    // 1.75 is an arbitrary number, as there is no info about the text baseline\n    // switch (baseline) {\n    // case 'hanging':\n    // case 'top':\n    //     y += fontSize / 1.75;\n    //     break;\n    //     case 'middle':\n    //         break;\n    //     default:\n    //     // case null:\n    //     // case 'alphabetic':\n    //     // case 'ideographic':\n    //     // case 'bottom':\n    //         y -= fontSize / 2.25;\n    //         break;\n    // }\n    // switch (align) {\n    //     case 'left':\n    //         break;\n    //     case 'center':\n    //         x -= textRect.width / 2;\n    //         break;\n    //     case 'right':\n    //         x -= textRect.width;\n    //         break;\n    // case 'end':\n    // align = elementStyle.direction == 'ltr' ? 'right' : 'left';\n    // break;\n    // case 'start':\n    // align = elementStyle.direction == 'rtl' ? 'right' : 'left';\n    // break;\n    // default:\n    //     align = 'left';\n    // }\n\n    var createNode = vmlCore.createNode;\n    var textVmlEl = this._textVmlEl;\n    var pathEl;\n    var textPathEl;\n    var skewEl;\n\n    if (!textVmlEl) {\n      textVmlEl = createNode('line');\n      pathEl = createNode('path');\n      textPathEl = createNode('textpath');\n      skewEl = createNode('skew'); // FIXME Why here is not cammel case\n      // Align 'center' seems wrong\n\n      textPathEl.style['v-text-align'] = 'left';\n      initRootElStyle(textVmlEl);\n      pathEl.textpathok = true;\n      textPathEl.on = true;\n      textVmlEl.from = '0 0';\n      textVmlEl.to = '1000 0.05';\n      append(textVmlEl, skewEl);\n      append(textVmlEl, pathEl);\n      append(textVmlEl, textPathEl);\n      this._textVmlEl = textVmlEl;\n    } else {\n      // 杩欓噷鏄湪鍓嶉潰 appendChild 淇濊瘉椤哄簭鐨勫墠鎻愪笅\n      skewEl = textVmlEl.firstChild;\n      pathEl = skewEl.nextSibling;\n      textPathEl = pathEl.nextSibling;\n    }\n\n    var coords = [x, y];\n    var textVmlElStyle = textVmlEl.style; // Ignore transform for text in other element\n\n    if (m && fromTextEl) {\n      applyTransform(coords, coords, m);\n      skewEl.on = true;\n      skewEl.matrix = m[0].toFixed(3) + comma + m[2].toFixed(3) + comma + m[1].toFixed(3) + comma + m[3].toFixed(3) + ',0,0'; // Text position\n\n      skewEl.offset = (round(coords[0]) || 0) + ',' + (round(coords[1]) || 0); // Left top point as origin\n\n      skewEl.origin = '0 0';\n      textVmlElStyle.left = '0px';\n      textVmlElStyle.top = '0px';\n    } else {\n      skewEl.on = false;\n      textVmlElStyle.left = round(x) + 'px';\n      textVmlElStyle.top = round(y) + 'px';\n    }\n\n    textPathEl.string = encodeHtmlAttribute(text); // TODO\n\n    try {\n      textPathEl.style.font = font;\n    } // Error font format\n    catch (e) {}\n\n    updateFillAndStroke(textVmlEl, 'fill', {\n      fill: style.textFill,\n      opacity: style.opacity\n    }, this);\n    updateFillAndStroke(textVmlEl, 'stroke', {\n      stroke: style.textStroke,\n      opacity: style.opacity,\n      lineDash: style.lineDash\n    }, this);\n    textVmlEl.style.zIndex = getZIndex(this.zlevel, this.z, this.z2); // Attached to root\n\n    append(vmlRoot, textVmlEl);\n  };\n\n  var removeRectText = function (vmlRoot) {\n    remove(vmlRoot, this._textVmlEl);\n    this._textVmlEl = null;\n  };\n\n  var appendRectText = function (vmlRoot) {\n    append(vmlRoot, this._textVmlEl);\n  };\n\n  var list = [RectText, Displayable, ZImage, Path, Text]; // In case Displayable has been mixed in RectText\n\n  for (var i = 0; i < list.length; i++) {\n    var proto = list[i].prototype;\n    proto.drawRectText = drawRectText;\n    proto.removeRectText = removeRectText;\n    proto.appendRectText = appendRectText;\n  }\n\n  Text.prototype.brushVML = function (vmlRoot) {\n    var style = this.style;\n\n    if (style.text != null) {\n      this.drawRectText(vmlRoot, {\n        x: style.x || 0,\n        y: style.y || 0,\n        width: 0,\n        height: 0\n      }, this.getBoundingRect(), true);\n    } else {\n      this.removeRectText(vmlRoot);\n    }\n  };\n\n  Text.prototype.onRemove = function (vmlRoot) {\n    this.removeRectText(vmlRoot);\n  };\n\n  Text.prototype.onAdd = function (vmlRoot) {\n    this.appendRectText(vmlRoot);\n  };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/vml/graphic.js\n// module id = +upV\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Scale = require(\"./Scale\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar IntervalScale = require(\"./Interval\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Log scale\n * @module echarts/scale/Log\n */\n// Use some method of IntervalScale\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\nvar LogScale = Scale.extend({\n  type: 'log',\n  base: 10,\n  $constructor: function () {\n    Scale.apply(this, arguments);\n    this._originalScale = new IntervalScale();\n  },\n\n  /**\n   * @return {Array.<number>}\n   */\n  getTicks: function () {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    return zrUtil.map(intervalScaleProto.getTicks.call(this), function (val) {\n      var powVal = numberUtil.round(mathPow(this.base, val)); // Fix #4158\n\n      powVal = val === extent[0] && originalScale.__fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && originalScale.__fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return powVal;\n    }, this);\n  },\n\n  /**\n   * @param {number} val\n   * @return {string}\n   */\n  getLabel: intervalScaleProto.getLabel,\n\n  /**\n   * @param  {number} val\n   * @return {number}\n   */\n  scale: function (val) {\n    val = scaleProto.scale.call(this, val);\n    return mathPow(this.base, val);\n  },\n\n  /**\n   * @param {number} start\n   * @param {number} end\n   */\n  setExtent: function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  },\n\n  /**\n   * @return {number} end\n   */\n  getExtent: function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]); // Fix #4158\n\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    originalScale.__fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    originalScale.__fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  },\n\n  /**\n   * @param  {Array.<number>} extent\n   */\n  unionExtent: function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  },\n\n  /**\n   * @override\n   */\n  unionExtentFromData: function (data, dim) {\n    // TODO\n    // filter value that <= 0\n    this.unionExtent(data.getApproximateExtent(dim));\n  },\n\n  /**\n   * Update interval and extent of intervals for nice ticks\n   * @param  {number} [approxTickNum = 10] Given approx tick number\n   */\n  niceTicks: function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval; // Filter ticks to get closer to the desired count.\n\n    if (err <= 0.5) {\n      interval *= 10;\n    } // Interval should be integer\n\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  },\n\n  /**\n   * Nice extent.\n   * @override\n   */\n  niceExtent: function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    var originalScale = this._originalScale;\n    originalScale.__fixMin = opt.fixMin;\n    originalScale.__fixMax = opt.fixMax;\n  }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n  LogScale.prototype[methodName] = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleProto[methodName].call(this, val);\n  };\n});\n\nLogScale.create = function () {\n  return new LogScale();\n};\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nvar _default = LogScale;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/scale/Log.js\n// module id = /3Wz\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n  // dataItem is necessary in log axis.\n  return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n    var axis = this['get' + dim + 'Axis']();\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var method = 'dataTo' + dim;\n    var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis[method](val - halfSize) - axis[method](val + halfSize));\n\n    if (dim === 'Angle') {\n      result = result * Math.PI / 180;\n    }\n\n    return result;\n  }, this);\n}\n\nfunction _default(coordSys) {\n  var radiusAxis = coordSys.getRadiusAxis();\n  var angleAxis = coordSys.getAngleAxis();\n  var radius = radiusAxis.getExtent();\n  radius[0] > radius[1] && radius.reverse();\n  return {\n    coordSys: {\n      type: 'polar',\n      cx: coordSys.cx,\n      cy: coordSys.cy,\n      r: radius[1],\n      r0: radius[0]\n    },\n    api: {\n      coord: zrUtil.bind(function (data) {\n        var radius = radiusAxis.dataToRadius(data[0]);\n        var angle = angleAxis.dataToAngle(data[1]);\n        var coord = coordSys.coordToPoint([radius, angle]);\n        coord.push(radius, angle * Math.PI / 180);\n        return coord;\n      }),\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/prepareCustom.js\n// module id = /4Ay\n// module chunks = 0","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version {{version}}\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n//\n// Cross module loader\n// Supported: Node, AMD, Browser globals\n//\n;(function (root, factory) {\n    if (typeof define === 'function' && define.amd) {\n        // AMD. Register as an anonymous module.\n        define(factory);\n    } else if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports) {\n        // Node. Does not work with strict CommonJS, but\n        // only CommonJS-like environments that support module.exports,\n        // like Node.\n        module.exports = factory();\n    } else {\n        // Browser globals (root is window)\n        root.Popper = factory();\n    }\n})(undefined, function () {\n\n    'use strict';\n\n    var root = window;\n\n    // default options\n    var DEFAULTS = {\n        // placement of the popper\n        placement: 'bottom',\n\n        gpuAcceleration: true,\n\n        // shift popper from its origin by the given amount of pixels (can be negative)\n        offset: 0,\n\n        // the element which will act as boundary of the popper\n        boundariesElement: 'viewport',\n\n        // amount of pixel used to define a minimum distance between the boundaries and the popper\n        boundariesPadding: 5,\n\n        // popper will try to prevent overflow following this order,\n        // by default, then, it could overflow on the left and on top of the boundariesElement\n        preventOverflowOrder: ['left', 'right', 'top', 'bottom'],\n\n        // the behavior used by flip to change the placement of the popper\n        flipBehavior: 'flip',\n\n        arrowElement: '[x-arrow]',\n\n        arrowOffset: 0,\n\n        // list of functions used to modify the offsets before they are applied to the popper\n        modifiers: ['shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle'],\n\n        modifiersIgnored: [],\n\n        forceAbsolute: false\n    };\n\n    /**\n     * Create a new Popper.js instance\n     * @constructor Popper\n     * @param {HTMLElement} reference - The reference element used to position the popper\n     * @param {HTMLElement|Object} popper\n     *      The HTML element used as popper, or a configuration used to generate the popper.\n     * @param {String} [popper.tagName='div'] The tag name of the generated popper.\n     * @param {Array} [popper.classNames=['popper']] Array of classes to apply to the generated popper.\n     * @param {Array} [popper.attributes] Array of attributes to apply, specify `attr:value` to assign a value to it.\n     * @param {HTMLElement|String} [popper.parent=window.document.body] The parent element, given as HTMLElement or as query string.\n     * @param {String} [popper.content=''] The content of the popper, it can be text, html, or node; if it is not text, set `contentType` to `html` or `node`.\n     * @param {String} [popper.contentType='text'] If `html`, the `content` will be parsed as HTML. If `node`, it will be appended as-is.\n     * @param {String} [popper.arrowTagName='div'] Same as `popper.tagName` but for the arrow element.\n     * @param {Array} [popper.arrowClassNames='popper__arrow'] Same as `popper.classNames` but for the arrow element.\n     * @param {String} [popper.arrowAttributes=['x-arrow']] Same as `popper.attributes` but for the arrow element.\n     * @param {Object} options\n     * @param {String} [options.placement=bottom]\n     *      Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -right),\n     *      left(-start, -end)`\n     *\n     * @param {HTMLElement|String} [options.arrowElement='[x-arrow]']\n     *      The DOM Node used as arrow for the popper, or a CSS selector used to get the DOM node. It must be child of\n     *      its parent Popper. Popper.js will apply to the given element the style required to align the arrow with its\n     *      reference element.\n     *      By default, it will look for a child node of the popper with the `x-arrow` attribute.\n     *\n     * @param {Boolean} [options.gpuAcceleration=true]\n     *      When this property is set to true, the popper position will be applied using CSS3 translate3d, allowing the\n     *      browser to use the GPU to accelerate the rendering.\n     *      If set to false, the popper will be placed using `top` and `left` properties, not using the GPU.\n     *\n     * @param {Number} [options.offset=0]\n     *      Amount of pixels the popper will be shifted (can be negative).\n     *\n     * @param {String|Element} [options.boundariesElement='viewport']\n     *      The element which will define the boundaries of the popper position, the popper will never be placed outside\n     *      of the defined boundaries (except if `keepTogether` is enabled)\n     *\n     * @param {Number} [options.boundariesPadding=5]\n     *      Additional padding for the boundaries\n     *\n     * @param {Array} [options.preventOverflowOrder=['left', 'right', 'top', 'bottom']]\n     *      Order used when Popper.js tries to avoid overflows from the boundaries, they will be checked in order,\n     *      this means that the last ones will never overflow\n     *\n     * @param {String|Array} [options.flipBehavior='flip']\n     *      The behavior used by the `flip` modifier to change the placement of the popper when the latter is trying to\n     *      overlap its reference element. Defining `flip` as value, the placement will be flipped on\n     *      its axis (`right - left`, `top - bottom`).\n     *      You can even pass an array of placements (eg: `['right', 'left', 'top']` ) to manually specify\n     *      how alter the placement when a flip is needed. (eg. in the above example, it would first flip from right to left,\n     *      then, if even in its new placement, the popper is overlapping its reference element, it will be moved to top)\n     *\n     * @param {Array} [options.modifiers=[ 'shift', 'offset', 'preventOverflow', 'keepTogether', 'arrow', 'flip', 'applyStyle']]\n     *      List of functions used to modify the data before they are applied to the popper, add your custom functions\n     *      to this array to edit the offsets and placement.\n     *      The function should reflect the @params and @returns of preventOverflow\n     *\n     * @param {Array} [options.modifiersIgnored=[]]\n     *      Put here any built-in modifier name you want to exclude from the modifiers list\n     *      The function should reflect the @params and @returns of preventOverflow\n     *\n     * @param {Boolean} [options.removeOnDestroy=false]\n     *      Set to true if you want to automatically remove the popper when you call the `destroy` method.\n     */\n    function Popper(reference, popper, options) {\n        this._reference = reference.jquery ? reference[0] : reference;\n        this.state = {};\n\n        // if the popper variable is a configuration object, parse it to generate an HTMLElement\n        // generate a default popper if is not defined\n        var isNotDefined = typeof popper === 'undefined' || popper === null;\n        var isConfig = popper && Object.prototype.toString.call(popper) === '[object Object]';\n        if (isNotDefined || isConfig) {\n            this._popper = this.parse(isConfig ? popper : {});\n        }\n        // otherwise, use the given HTMLElement as popper\n        else {\n                this._popper = popper.jquery ? popper[0] : popper;\n            }\n\n        // with {} we create a new object with the options inside it\n        this._options = Object.assign({}, DEFAULTS, options);\n\n        // refactoring modifiers' list\n        this._options.modifiers = this._options.modifiers.map(function (modifier) {\n            // remove ignored modifiers\n            if (this._options.modifiersIgnored.indexOf(modifier) !== -1) return;\n\n            // set the x-placement attribute before everything else because it could be used to add margins to the popper\n            // margins needs to be calculated to get the correct popper offsets\n            if (modifier === 'applyStyle') {\n                this._popper.setAttribute('x-placement', this._options.placement);\n            }\n\n            // return predefined modifier identified by string or keep the custom one\n            return this.modifiers[modifier] || modifier;\n        }.bind(this));\n\n        // make sure to apply the popper position before any computation\n        this.state.position = this._getPosition(this._popper, this._reference);\n        setStyle(this._popper, { position: this.state.position, top: 0 });\n\n        // fire the first update to position the popper in the right place\n        this.update();\n\n        // setup event listeners, they will take care of update the position in specific situations\n        this._setupEventListeners();\n        return this;\n    }\n\n    //\n    // Methods\n    //\n    /**\n     * Destroy the popper\n     * @method\n     * @memberof Popper\n     */\n    Popper.prototype.destroy = function () {\n        this._popper.removeAttribute('x-placement');\n        this._popper.style.left = '';\n        this._popper.style.position = '';\n        this._popper.style.top = '';\n        this._popper.style[getSupportedPropertyName('transform')] = '';\n        this._removeEventListeners();\n\n        // remove the popper if user explicity asked for the deletion on destroy\n        if (this._options.removeOnDestroy) {\n            this._popper.remove();\n        }\n        return this;\n    };\n\n    /**\n     * Updates the position of the popper, computing the new offsets and applying the new style\n     * @method\n     * @memberof Popper\n     */\n    Popper.prototype.update = function () {\n        var data = { instance: this, styles: {} };\n\n        // store placement inside the data object, modifiers will be able to edit `placement` if needed\n        // and refer to _originalPlacement to know the original value\n        data.placement = this._options.placement;\n        data._originalPlacement = this._options.placement;\n\n        // compute the popper and reference offsets and put them inside data.offsets\n        data.offsets = this._getOffsets(this._popper, this._reference, data.placement);\n\n        // get boundaries\n        data.boundaries = this._getBoundaries(data, this._options.boundariesPadding, this._options.boundariesElement);\n\n        data = this.runModifiers(data, this._options.modifiers);\n\n        if (typeof this.state.updateCallback === 'function') {\n            this.state.updateCallback(data);\n        }\n    };\n\n    /**\n     * If a function is passed, it will be executed after the initialization of popper with as first argument the Popper instance.\n     * @method\n     * @memberof Popper\n     * @param {Function} callback\n     */\n    Popper.prototype.onCreate = function (callback) {\n        // the createCallbacks return as first argument the popper instance\n        callback(this);\n        return this;\n    };\n\n    /**\n     * If a function is passed, it will be executed after each update of popper with as first argument the set of coordinates and informations\n     * used to style popper and its arrow.\n     * NOTE: it doesn't get fired on the first call of the `Popper.update()` method inside the `Popper` constructor!\n     * @method\n     * @memberof Popper\n     * @param {Function} callback\n     */\n    Popper.prototype.onUpdate = function (callback) {\n        this.state.updateCallback = callback;\n        return this;\n    };\n\n    /**\n     * Helper used to generate poppers from a configuration file\n     * @method\n     * @memberof Popper\n     * @param config {Object} configuration\n     * @returns {HTMLElement} popper\n     */\n    Popper.prototype.parse = function (config) {\n        var defaultConfig = {\n            tagName: 'div',\n            classNames: ['popper'],\n            attributes: [],\n            parent: root.document.body,\n            content: '',\n            contentType: 'text',\n            arrowTagName: 'div',\n            arrowClassNames: ['popper__arrow'],\n            arrowAttributes: ['x-arrow']\n        };\n        config = Object.assign({}, defaultConfig, config);\n\n        var d = root.document;\n\n        var popper = d.createElement(config.tagName);\n        addClassNames(popper, config.classNames);\n        addAttributes(popper, config.attributes);\n        if (config.contentType === 'node') {\n            popper.appendChild(config.content.jquery ? config.content[0] : config.content);\n        } else if (config.contentType === 'html') {\n            popper.innerHTML = config.content;\n        } else {\n            popper.textContent = config.content;\n        }\n\n        if (config.arrowTagName) {\n            var arrow = d.createElement(config.arrowTagName);\n            addClassNames(arrow, config.arrowClassNames);\n            addAttributes(arrow, config.arrowAttributes);\n            popper.appendChild(arrow);\n        }\n\n        var parent = config.parent.jquery ? config.parent[0] : config.parent;\n\n        // if the given parent is a string, use it to match an element\n        // if more than one element is matched, the first one will be used as parent\n        // if no elements are matched, the script will throw an error\n        if (typeof parent === 'string') {\n            parent = d.querySelectorAll(config.parent);\n            if (parent.length > 1) {\n                console.warn('WARNING: the given `parent` query(' + config.parent + ') matched more than one element, the first one will be used');\n            }\n            if (parent.length === 0) {\n                throw 'ERROR: the given `parent` doesn\\'t exists!';\n            }\n            parent = parent[0];\n        }\n        // if the given parent is a DOM nodes list or an array of nodes with more than one element,\n        // the first one will be used as parent\n        if (parent.length > 1 && parent instanceof Element === false) {\n            console.warn('WARNING: you have passed as parent a list of elements, the first one will be used');\n            parent = parent[0];\n        }\n\n        // append the generated popper to its parent\n        parent.appendChild(popper);\n\n        return popper;\n\n        /**\n         * Adds class names to the given element\n         * @function\n         * @ignore\n         * @param {HTMLElement} target\n         * @param {Array} classes\n         */\n        function addClassNames(element, classNames) {\n            classNames.forEach(function (className) {\n                element.classList.add(className);\n            });\n        }\n\n        /**\n         * Adds attributes to the given element\n         * @function\n         * @ignore\n         * @param {HTMLElement} target\n         * @param {Array} attributes\n         * @example\n         * addAttributes(element, [ 'data-info:foobar' ]);\n         */\n        function addAttributes(element, attributes) {\n            attributes.forEach(function (attribute) {\n                element.setAttribute(attribute.split(':')[0], attribute.split(':')[1] || '');\n            });\n        }\n    };\n\n    /**\n     * Helper used to get the position which will be applied to the popper\n     * @method\n     * @memberof Popper\n     * @param config {HTMLElement} popper element\n     * @param reference {HTMLElement} reference element\n     * @returns {String} position\n     */\n    Popper.prototype._getPosition = function (popper, reference) {\n        var container = getOffsetParent(reference);\n\n        if (this._options.forceAbsolute) {\n            return 'absolute';\n        }\n\n        // Decide if the popper will be fixed\n        // If the reference element is inside a fixed context, the popper will be fixed as well to allow them to scroll together\n        var isParentFixed = isFixed(reference, container);\n        return isParentFixed ? 'fixed' : 'absolute';\n    };\n\n    /**\n     * Get offsets to the popper\n     * @method\n     * @memberof Popper\n     * @access private\n     * @param {Element} popper - the popper element\n     * @param {Element} reference - the reference element (the popper will be relative to this)\n     * @returns {Object} An object containing the offsets which will be applied to the popper\n     */\n    Popper.prototype._getOffsets = function (popper, reference, placement) {\n        placement = placement.split('-')[0];\n        var popperOffsets = {};\n\n        popperOffsets.position = this.state.position;\n        var isParentFixed = popperOffsets.position === 'fixed';\n\n        //\n        // Get reference element position\n        //\n        var referenceOffsets = getOffsetRectRelativeToCustomParent(reference, getOffsetParent(popper), isParentFixed);\n\n        //\n        // Get popper sizes\n        //\n        var popperRect = getOuterSizes(popper);\n\n        //\n        // Compute offsets of popper\n        //\n\n        // depending by the popper placement we have to compute its offsets slightly differently\n        if (['right', 'left'].indexOf(placement) !== -1) {\n            popperOffsets.top = referenceOffsets.top + referenceOffsets.height / 2 - popperRect.height / 2;\n            if (placement === 'left') {\n                popperOffsets.left = referenceOffsets.left - popperRect.width;\n            } else {\n                popperOffsets.left = referenceOffsets.right;\n            }\n        } else {\n            popperOffsets.left = referenceOffsets.left + referenceOffsets.width / 2 - popperRect.width / 2;\n            if (placement === 'top') {\n                popperOffsets.top = referenceOffsets.top - popperRect.height;\n            } else {\n                popperOffsets.top = referenceOffsets.bottom;\n            }\n        }\n\n        // Add width and height to our offsets object\n        popperOffsets.width = popperRect.width;\n        popperOffsets.height = popperRect.height;\n\n        return {\n            popper: popperOffsets,\n            reference: referenceOffsets\n        };\n    };\n\n    /**\n     * Setup needed event listeners used to update the popper position\n     * @method\n     * @memberof Popper\n     * @access private\n     */\n    Popper.prototype._setupEventListeners = function () {\n        // NOTE: 1 DOM access here\n        this.state.updateBound = this.update.bind(this);\n        root.addEventListener('resize', this.state.updateBound);\n        // if the boundariesElement is window we don't need to listen for the scroll event\n        if (this._options.boundariesElement !== 'window') {\n            var target = getScrollParent(this._reference);\n            // here it could be both `body` or `documentElement` thanks to Firefox, we then check both\n            if (target === root.document.body || target === root.document.documentElement) {\n                target = root;\n            }\n            target.addEventListener('scroll', this.state.updateBound);\n            this.state.scrollTarget = target;\n        }\n    };\n\n    /**\n     * Remove event listeners used to update the popper position\n     * @method\n     * @memberof Popper\n     * @access private\n     */\n    Popper.prototype._removeEventListeners = function () {\n        // NOTE: 1 DOM access here\n        root.removeEventListener('resize', this.state.updateBound);\n        if (this._options.boundariesElement !== 'window' && this.state.scrollTarget) {\n            this.state.scrollTarget.removeEventListener('scroll', this.state.updateBound);\n            this.state.scrollTarget = null;\n        }\n        this.state.updateBound = null;\n    };\n\n    /**\n     * Computed the boundaries limits and return them\n     * @method\n     * @memberof Popper\n     * @access private\n     * @param {Object} data - Object containing the property \"offsets\" generated by `_getOffsets`\n     * @param {Number} padding - Boundaries padding\n     * @param {Element} boundariesElement - Element used to define the boundaries\n     * @returns {Object} Coordinates of the boundaries\n     */\n    Popper.prototype._getBoundaries = function (data, padding, boundariesElement) {\n        // NOTE: 1 DOM access here\n        var boundaries = {};\n        var width, height;\n        if (boundariesElement === 'window') {\n            var body = root.document.body,\n                html = root.document.documentElement;\n\n            height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n            width = Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth);\n\n            boundaries = {\n                top: 0,\n                right: width,\n                bottom: height,\n                left: 0\n            };\n        } else if (boundariesElement === 'viewport') {\n            var offsetParent = getOffsetParent(this._popper);\n            var scrollParent = getScrollParent(this._popper);\n            var offsetParentRect = getOffsetRect(offsetParent);\n\n            // Thanks the fucking native API, `document.body.scrollTop` & `document.documentElement.scrollTop`\n            var getScrollTopValue = function getScrollTopValue(element) {\n                return element == document.body ? Math.max(document.documentElement.scrollTop, document.body.scrollTop) : element.scrollTop;\n            };\n            var getScrollLeftValue = function getScrollLeftValue(element) {\n                return element == document.body ? Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) : element.scrollLeft;\n            };\n\n            // if the popper is fixed we don't have to substract scrolling from the boundaries\n            var scrollTop = data.offsets.popper.position === 'fixed' ? 0 : getScrollTopValue(scrollParent);\n            var scrollLeft = data.offsets.popper.position === 'fixed' ? 0 : getScrollLeftValue(scrollParent);\n\n            boundaries = {\n                top: 0 - (offsetParentRect.top - scrollTop),\n                right: root.document.documentElement.clientWidth - (offsetParentRect.left - scrollLeft),\n                bottom: root.document.documentElement.clientHeight - (offsetParentRect.top - scrollTop),\n                left: 0 - (offsetParentRect.left - scrollLeft)\n            };\n        } else {\n            if (getOffsetParent(this._popper) === boundariesElement) {\n                boundaries = {\n                    top: 0,\n                    left: 0,\n                    right: boundariesElement.clientWidth,\n                    bottom: boundariesElement.clientHeight\n                };\n            } else {\n                boundaries = getOffsetRect(boundariesElement);\n            }\n        }\n        boundaries.left += padding;\n        boundaries.right -= padding;\n        boundaries.top = boundaries.top + padding;\n        boundaries.bottom = boundaries.bottom - padding;\n        return boundaries;\n    };\n\n    /**\n     * Loop trough the list of modifiers and run them in order, each of them will then edit the data object\n     * @method\n     * @memberof Popper\n     * @access public\n     * @param {Object} data\n     * @param {Array} modifiers\n     * @param {Function} ends\n     */\n    Popper.prototype.runModifiers = function (data, modifiers, ends) {\n        var modifiersToRun = modifiers.slice();\n        if (ends !== undefined) {\n            modifiersToRun = this._options.modifiers.slice(0, getArrayKeyIndex(this._options.modifiers, ends));\n        }\n\n        modifiersToRun.forEach(function (modifier) {\n            if (isFunction(modifier)) {\n                data = modifier.call(this, data);\n            }\n        }.bind(this));\n\n        return data;\n    };\n\n    /**\n     * Helper used to know if the given modifier depends from another one.\n     * @method\n     * @memberof Popper\n     * @param {String} requesting - name of requesting modifier\n     * @param {String} requested - name of requested modifier\n     * @returns {Boolean}\n     */\n    Popper.prototype.isModifierRequired = function (requesting, requested) {\n        var index = getArrayKeyIndex(this._options.modifiers, requesting);\n        return !!this._options.modifiers.slice(0, index).filter(function (modifier) {\n            return modifier === requested;\n        }).length;\n    };\n\n    //\n    // Modifiers\n    //\n\n    /**\n     * Modifiers list\n     * @namespace Popper.modifiers\n     * @memberof Popper\n     * @type {Object}\n     */\n    Popper.prototype.modifiers = {};\n\n    /**\n     * Apply the computed styles to the popper element\n     * @method\n     * @memberof Popper.modifiers\n     * @argument {Object} data - The data object generated by `update` method\n     * @returns {Object} The same data object\n     */\n    Popper.prototype.modifiers.applyStyle = function (data) {\n        // apply the final offsets to the popper\n        // NOTE: 1 DOM access here\n        var styles = {\n            position: data.offsets.popper.position\n        };\n\n        // round top and left to avoid blurry text\n        var left = Math.round(data.offsets.popper.left);\n        var top = Math.round(data.offsets.popper.top);\n\n        // if gpuAcceleration is set to true and transform is supported, we use `translate3d` to apply the position to the popper\n        // we automatically use the supported prefixed version if needed\n        var prefixedProperty;\n        if (this._options.gpuAcceleration && (prefixedProperty = getSupportedPropertyName('transform'))) {\n            styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n            styles.top = 0;\n            styles.left = 0;\n        }\n        // othwerise, we use the standard `left` and `top` properties\n        else {\n                styles.left = left;\n                styles.top = top;\n            }\n\n        // any property present in `data.styles` will be applied to the popper,\n        // in this way we can make the 3rd party modifiers add custom styles to it\n        // Be aware, modifiers could override the properties defined in the previous\n        // lines of this modifier!\n        Object.assign(styles, data.styles);\n\n        setStyle(this._popper, styles);\n\n        // set an attribute which will be useful to style the tooltip (use it to properly position its arrow)\n        // NOTE: 1 DOM access here\n        this._popper.setAttribute('x-placement', data.placement);\n\n        // if the arrow modifier is required and the arrow style has been computed, apply the arrow style\n        if (this.isModifierRequired(this.modifiers.applyStyle, this.modifiers.arrow) && data.offsets.arrow) {\n            setStyle(data.arrowElement, data.offsets.arrow);\n        }\n\n        return data;\n    };\n\n    /**\n     * Modifier used to shift the popper on the start or end of its reference element side\n     * @method\n     * @memberof Popper.modifiers\n     * @argument {Object} data - The data object generated by `update` method\n     * @returns {Object} The data object, properly modified\n     */\n    Popper.prototype.modifiers.shift = function (data) {\n        var placement = data.placement;\n        var basePlacement = placement.split('-')[0];\n        var shiftVariation = placement.split('-')[1];\n\n        // if shift shiftVariation is specified, run the modifier\n        if (shiftVariation) {\n            var reference = data.offsets.reference;\n            var popper = getPopperClientRect(data.offsets.popper);\n\n            var shiftOffsets = {\n                y: {\n                    start: { top: reference.top },\n                    end: { top: reference.top + reference.height - popper.height }\n                },\n                x: {\n                    start: { left: reference.left },\n                    end: { left: reference.left + reference.width - popper.width }\n                }\n            };\n\n            var axis = ['bottom', 'top'].indexOf(basePlacement) !== -1 ? 'x' : 'y';\n\n            data.offsets.popper = Object.assign(popper, shiftOffsets[axis][shiftVariation]);\n        }\n\n        return data;\n    };\n\n    /**\n     * Modifier used to make sure the popper does not overflows from it's boundaries\n     * @method\n     * @memberof Popper.modifiers\n     * @argument {Object} data - The data object generated by `update` method\n     * @returns {Object} The data object, properly modified\n     */\n    Popper.prototype.modifiers.preventOverflow = function (data) {\n        var order = this._options.preventOverflowOrder;\n        var popper = getPopperClientRect(data.offsets.popper);\n\n        var check = {\n            left: function left() {\n                var left = popper.left;\n                if (popper.left < data.boundaries.left) {\n                    left = Math.max(popper.left, data.boundaries.left);\n                }\n                return { left: left };\n            },\n            right: function right() {\n                var left = popper.left;\n                if (popper.right > data.boundaries.right) {\n                    left = Math.min(popper.left, data.boundaries.right - popper.width);\n                }\n                return { left: left };\n            },\n            top: function top() {\n                var top = popper.top;\n                if (popper.top < data.boundaries.top) {\n                    top = Math.max(popper.top, data.boundaries.top);\n                }\n                return { top: top };\n            },\n            bottom: function bottom() {\n                var top = popper.top;\n                if (popper.bottom > data.boundaries.bottom) {\n                    top = Math.min(popper.top, data.boundaries.bottom - popper.height);\n                }\n                return { top: top };\n            }\n        };\n\n        order.forEach(function (direction) {\n            data.offsets.popper = Object.assign(popper, check[direction]());\n        });\n\n        return data;\n    };\n\n    /**\n     * Modifier used to make sure the popper is always near its reference\n     * @method\n     * @memberof Popper.modifiers\n     * @argument {Object} data - The data object generated by _update method\n     * @returns {Object} The data object, properly modified\n     */\n    Popper.prototype.modifiers.keepTogether = function (data) {\n        var popper = getPopperClientRect(data.offsets.popper);\n        var reference = data.offsets.reference;\n        var f = Math.floor;\n\n        if (popper.right < f(reference.left)) {\n            data.offsets.popper.left = f(reference.left) - popper.width;\n        }\n        if (popper.left > f(reference.right)) {\n            data.offsets.popper.left = f(reference.right);\n        }\n        if (popper.bottom < f(reference.top)) {\n            data.offsets.popper.top = f(reference.top) - popper.height;\n        }\n        if (popper.top > f(reference.bottom)) {\n            data.offsets.popper.top = f(reference.bottom);\n        }\n\n        return data;\n    };\n\n    /**\n     * Modifier used to flip the placement of the popper when the latter is starting overlapping its reference element.\n     * Requires the `preventOverflow` modifier before it in order to work.\n     * **NOTE:** This modifier will run all its previous modifiers everytime it tries to flip the popper!\n     * @method\n     * @memberof Popper.modifiers\n     * @argument {Object} data - The data object generated by _update method\n     * @returns {Object} The data object, properly modified\n     */\n    Popper.prototype.modifiers.flip = function (data) {\n        // check if preventOverflow is in the list of modifiers before the flip modifier.\n        // otherwise flip would not work as expected.\n        if (!this.isModifierRequired(this.modifiers.flip, this.modifiers.preventOverflow)) {\n            console.warn('WARNING: preventOverflow modifier is required by flip modifier in order to work, be sure to include it before flip!');\n            return data;\n        }\n\n        if (data.flipped && data.placement === data._originalPlacement) {\n            // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n            return data;\n        }\n\n        var placement = data.placement.split('-')[0];\n        var placementOpposite = getOppositePlacement(placement);\n        var variation = data.placement.split('-')[1] || '';\n\n        var flipOrder = [];\n        if (this._options.flipBehavior === 'flip') {\n            flipOrder = [placement, placementOpposite];\n        } else {\n            flipOrder = this._options.flipBehavior;\n        }\n\n        flipOrder.forEach(function (step, index) {\n            if (placement !== step || flipOrder.length === index + 1) {\n                return;\n            }\n\n            placement = data.placement.split('-')[0];\n            placementOpposite = getOppositePlacement(placement);\n\n            var popperOffsets = getPopperClientRect(data.offsets.popper);\n\n            // this boolean is used to distinguish right and bottom from top and left\n            // they need different computations to get flipped\n            var a = ['right', 'bottom'].indexOf(placement) !== -1;\n\n            // using Math.floor because the reference offsets may contain decimals we are not going to consider here\n            if (a && Math.floor(data.offsets.reference[placement]) > Math.floor(popperOffsets[placementOpposite]) || !a && Math.floor(data.offsets.reference[placement]) < Math.floor(popperOffsets[placementOpposite])) {\n                // we'll use this boolean to detect any flip loop\n                data.flipped = true;\n                data.placement = flipOrder[index + 1];\n                if (variation) {\n                    data.placement += '-' + variation;\n                }\n                data.offsets.popper = this._getOffsets(this._popper, this._reference, data.placement).popper;\n\n                data = this.runModifiers(data, this._options.modifiers, this._flip);\n            }\n        }.bind(this));\n        return data;\n    };\n\n    /**\n     * Modifier used to add an offset to the popper, useful if you more granularity positioning your popper.\n     * The offsets will shift the popper on the side of its reference element.\n     * @method\n     * @memberof Popper.modifiers\n     * @argument {Object} data - The data object generated by _update method\n     * @returns {Object} The data object, properly modified\n     */\n    Popper.prototype.modifiers.offset = function (data) {\n        var offset = this._options.offset;\n        var popper = data.offsets.popper;\n\n        if (data.placement.indexOf('left') !== -1) {\n            popper.top -= offset;\n        } else if (data.placement.indexOf('right') !== -1) {\n            popper.top += offset;\n        } else if (data.placement.indexOf('top') !== -1) {\n            popper.left -= offset;\n        } else if (data.placement.indexOf('bottom') !== -1) {\n            popper.left += offset;\n        }\n        return data;\n    };\n\n    /**\n     * Modifier used to move the arrows on the edge of the popper to make sure them are always between the popper and the reference element\n     * It will use the CSS outer size of the arrow element to know how many pixels of conjuction are needed\n     * @method\n     * @memberof Popper.modifiers\n     * @argument {Object} data - The data object generated by _update method\n     * @returns {Object} The data object, properly modified\n     */\n    Popper.prototype.modifiers.arrow = function (data) {\n        var arrow = this._options.arrowElement;\n        var arrowOffset = this._options.arrowOffset;\n\n        // if the arrowElement is a string, suppose it's a CSS selector\n        if (typeof arrow === 'string') {\n            arrow = this._popper.querySelector(arrow);\n        }\n\n        // if arrow element is not found, don't run the modifier\n        if (!arrow) {\n            return data;\n        }\n\n        // the arrow element must be child of its popper\n        if (!this._popper.contains(arrow)) {\n            console.warn('WARNING: `arrowElement` must be child of its popper element!');\n            return data;\n        }\n\n        // arrow depends on keepTogether in order to work\n        if (!this.isModifierRequired(this.modifiers.arrow, this.modifiers.keepTogether)) {\n            console.warn('WARNING: keepTogether modifier is required by arrow modifier in order to work, be sure to include it before arrow!');\n            return data;\n        }\n\n        var arrowStyle = {};\n        var placement = data.placement.split('-')[0];\n        var popper = getPopperClientRect(data.offsets.popper);\n        var reference = data.offsets.reference;\n        var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n        var len = isVertical ? 'height' : 'width';\n        var side = isVertical ? 'top' : 'left';\n        var translate = isVertical ? 'translateY' : 'translateX';\n        var altSide = isVertical ? 'left' : 'top';\n        var opSide = isVertical ? 'bottom' : 'right';\n        var arrowSize = getOuterSizes(arrow)[len];\n\n        //\n        // extends keepTogether behavior making sure the popper and its reference have enough pixels in conjuction\n        //\n\n        // top/left side\n        if (reference[opSide] - arrowSize < popper[side]) {\n            data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowSize);\n        }\n        // bottom/right side\n        if (reference[side] + arrowSize > popper[opSide]) {\n            data.offsets.popper[side] += reference[side] + arrowSize - popper[opSide];\n        }\n\n        // compute center of the popper\n        var center = reference[side] + (arrowOffset || reference[len] / 2 - arrowSize / 2);\n\n        var sideValue = center - popper[side];\n\n        // prevent arrow from being placed not contiguously to its popper\n        sideValue = Math.max(Math.min(popper[len] - arrowSize - 8, sideValue), 8);\n        arrowStyle[side] = sideValue;\n        arrowStyle[altSide] = ''; // make sure to remove any old style from the arrow\n\n        data.offsets.arrow = arrowStyle;\n        data.arrowElement = arrow;\n\n        return data;\n    };\n\n    //\n    // Helpers\n    //\n\n    /**\n     * Get the outer sizes of the given element (offset size + margins)\n     * @function\n     * @ignore\n     * @argument {Element} element\n     * @returns {Object} object containing width and height properties\n     */\n    function getOuterSizes(element) {\n        // NOTE: 1 DOM access here\n        var _display = element.style.display,\n            _visibility = element.style.visibility;\n        element.style.display = 'block';element.style.visibility = 'hidden';\n        var calcWidthToForceRepaint = element.offsetWidth;\n\n        // original method\n        var styles = root.getComputedStyle(element);\n        var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n        var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n        var result = { width: element.offsetWidth + y, height: element.offsetHeight + x };\n\n        // reset element styles\n        element.style.display = _display;element.style.visibility = _visibility;\n        return result;\n    }\n\n    /**\n     * Get the opposite placement of the given one/\n     * @function\n     * @ignore\n     * @argument {String} placement\n     * @returns {String} flipped placement\n     */\n    function getOppositePlacement(placement) {\n        var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n        return placement.replace(/left|right|bottom|top/g, function (matched) {\n            return hash[matched];\n        });\n    }\n\n    /**\n     * Given the popper offsets, generate an output similar to getBoundingClientRect\n     * @function\n     * @ignore\n     * @argument {Object} popperOffsets\n     * @returns {Object} ClientRect like output\n     */\n    function getPopperClientRect(popperOffsets) {\n        var offsets = Object.assign({}, popperOffsets);\n        offsets.right = offsets.left + offsets.width;\n        offsets.bottom = offsets.top + offsets.height;\n        return offsets;\n    }\n\n    /**\n     * Given an array and the key to find, returns its index\n     * @function\n     * @ignore\n     * @argument {Array} arr\n     * @argument keyToFind\n     * @returns index or null\n     */\n    function getArrayKeyIndex(arr, keyToFind) {\n        var i = 0,\n            key;\n        for (key in arr) {\n            if (arr[key] === keyToFind) {\n                return i;\n            }\n            i++;\n        }\n        return null;\n    }\n\n    /**\n     * Get CSS computed property of the given element\n     * @function\n     * @ignore\n     * @argument {Eement} element\n     * @argument {String} property\n     */\n    function getStyleComputedProperty(element, property) {\n        // NOTE: 1 DOM access here\n        var css = root.getComputedStyle(element, null);\n        return css[property];\n    }\n\n    /**\n     * Returns the offset parent of the given element\n     * @function\n     * @ignore\n     * @argument {Element} element\n     * @returns {Element} offset parent\n     */\n    function getOffsetParent(element) {\n        // NOTE: 1 DOM access here\n        var offsetParent = element.offsetParent;\n        return offsetParent === root.document.body || !offsetParent ? root.document.documentElement : offsetParent;\n    }\n\n    /**\n     * Returns the scrolling parent of the given element\n     * @function\n     * @ignore\n     * @argument {Element} element\n     * @returns {Element} offset parent\n     */\n    function getScrollParent(element) {\n        var parent = element.parentNode;\n\n        if (!parent) {\n            return element;\n        }\n\n        if (parent === root.document) {\n            // Firefox puts the scrollTOp value on `documentElement` instead of `body`, we then check which of them is\n            // greater than 0 and return the proper element\n            if (root.document.body.scrollTop || root.document.body.scrollLeft) {\n                return root.document.body;\n            } else {\n                return root.document.documentElement;\n            }\n        }\n\n        // Firefox want us to check `-x` and `-y` variations as well\n        if (['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-x')) !== -1 || ['scroll', 'auto'].indexOf(getStyleComputedProperty(parent, 'overflow-y')) !== -1) {\n            // If the detected scrollParent is body, we perform an additional check on its parentNode\n            // in this way we'll get body if the browser is Chrome-ish, or documentElement otherwise\n            // fixes issue #65\n            return parent;\n        }\n        return getScrollParent(element.parentNode);\n    }\n\n    /**\n     * Check if the given element is fixed or is inside a fixed parent\n     * @function\n     * @ignore\n     * @argument {Element} element\n     * @argument {Element} customContainer\n     * @returns {Boolean} answer to \"isFixed?\"\n     */\n    function isFixed(element) {\n        if (element === root.document.body) {\n            return false;\n        }\n        if (getStyleComputedProperty(element, 'position') === 'fixed') {\n            return true;\n        }\n        return element.parentNode ? isFixed(element.parentNode) : element;\n    }\n\n    /**\n     * Set the style to the given popper\n     * @function\n     * @ignore\n     * @argument {Element} element - Element to apply the style to\n     * @argument {Object} styles - Object with a list of properties and values which will be applied to the element\n     */\n    function setStyle(element, styles) {\n        function is_numeric(n) {\n            return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n        }\n        Object.keys(styles).forEach(function (prop) {\n            var unit = '';\n            // add unit if the value is numeric and is one of the following\n            if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && is_numeric(styles[prop])) {\n                unit = 'px';\n            }\n            element.style[prop] = styles[prop] + unit;\n        });\n    }\n\n    /**\n     * Check if the given variable is a function\n     * @function\n     * @ignore\n     * @argument {*} functionToCheck - variable to check\n     * @returns {Boolean} answer to: is a function?\n     */\n    function isFunction(functionToCheck) {\n        var getType = {};\n        return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n    }\n\n    /**\n     * Get the position of the given element, relative to its offset parent\n     * @function\n     * @ignore\n     * @param {Element} element\n     * @return {Object} position - Coordinates of the element and its `scrollTop`\n     */\n    function getOffsetRect(element) {\n        var elementRect = {\n            width: element.offsetWidth,\n            height: element.offsetHeight,\n            left: element.offsetLeft,\n            top: element.offsetTop\n        };\n\n        elementRect.right = elementRect.left + elementRect.width;\n        elementRect.bottom = elementRect.top + elementRect.height;\n\n        // position\n        return elementRect;\n    }\n\n    /**\n     * Get bounding client rect of given element\n     * @function\n     * @ignore\n     * @param {HTMLElement} element\n     * @return {Object} client rect\n     */\n    function getBoundingClientRect(element) {\n        var rect = element.getBoundingClientRect();\n\n        // whether the IE version is lower than 11\n        var isIE = navigator.userAgent.indexOf(\"MSIE\") != -1;\n\n        // fix ie document bounding top always 0 bug\n        var rectTop = isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top;\n\n        return {\n            left: rect.left,\n            top: rectTop,\n            right: rect.right,\n            bottom: rect.bottom,\n            width: rect.right - rect.left,\n            height: rect.bottom - rectTop\n        };\n    }\n\n    /**\n     * Given an element and one of its parents, return the offset\n     * @function\n     * @ignore\n     * @param {HTMLElement} element\n     * @param {HTMLElement} parent\n     * @return {Object} rect\n     */\n    function getOffsetRectRelativeToCustomParent(element, parent, fixed) {\n        var elementRect = getBoundingClientRect(element);\n        var parentRect = getBoundingClientRect(parent);\n\n        if (fixed) {\n            var scrollParent = getScrollParent(parent);\n            parentRect.top += scrollParent.scrollTop;\n            parentRect.bottom += scrollParent.scrollTop;\n            parentRect.left += scrollParent.scrollLeft;\n            parentRect.right += scrollParent.scrollLeft;\n        }\n\n        var rect = {\n            top: elementRect.top - parentRect.top,\n            left: elementRect.left - parentRect.left,\n            bottom: elementRect.top - parentRect.top + elementRect.height,\n            right: elementRect.left - parentRect.left + elementRect.width,\n            width: elementRect.width,\n            height: elementRect.height\n        };\n        return rect;\n    }\n\n    /**\n     * Get the prefixed supported property name\n     * @function\n     * @ignore\n     * @argument {String} property (camelCase)\n     * @returns {String} prefixed property (camelCase)\n     */\n    function getSupportedPropertyName(property) {\n        var prefixes = ['', 'ms', 'webkit', 'moz', 'o'];\n\n        for (var i = 0; i < prefixes.length; i++) {\n            var toCheck = prefixes[i] ? prefixes[i] + property.charAt(0).toUpperCase() + property.slice(1) : property;\n            if (typeof root.document.body.style[toCheck] !== 'undefined') {\n                return toCheck;\n            }\n        }\n        return null;\n    }\n\n    /**\n     * The Object.assign() method is used to copy the values of all enumerable own properties from one or more source\n     * objects to a target object. It will return the target object.\n     * This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway\n     * Source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n     * @function\n     * @ignore\n     */\n    if (!Object.assign) {\n        Object.defineProperty(Object, 'assign', {\n            enumerable: false,\n            configurable: true,\n            writable: true,\n            value: function value(target) {\n                if (target === undefined || target === null) {\n                    throw new TypeError('Cannot convert first argument to object');\n                }\n\n                var to = Object(target);\n                for (var i = 1; i < arguments.length; i++) {\n                    var nextSource = arguments[i];\n                    if (nextSource === undefined || nextSource === null) {\n                        continue;\n                    }\n                    nextSource = Object(nextSource);\n\n                    var keysArray = Object.keys(nextSource);\n                    for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n                        var nextKey = keysArray[nextIndex];\n                        var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n                        if (desc !== undefined && desc.enumerable) {\n                            to[nextKey] = nextSource[nextKey];\n                        }\n                    }\n                }\n                return to;\n            }\n        });\n    }\n\n    return Popper;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/popper.js\n// module id = /CiU\n// module chunks = 0","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = (function () {\n    if (typeof Map !== 'undefined') {\n        return Map;\n    }\n\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\n    function getIndex(arr, key) {\n        var result = -1;\n\n        arr.some(function (entry, index) {\n            if (entry[0] === key) {\n                result = index;\n\n                return true;\n            }\n\n            return false;\n        });\n\n        return result;\n    }\n\n    return (function () {\n        function anonymous() {\n            this.__entries__ = [];\n        }\n\n        var prototypeAccessors = { size: { configurable: true } };\n\n        /**\r\n         * @returns {boolean}\r\n         */\n        prototypeAccessors.size.get = function () {\n            return this.__entries__.length;\n        };\n\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\n        anonymous.prototype.get = function (key) {\n            var index = getIndex(this.__entries__, key);\n            var entry = this.__entries__[index];\n\n            return entry && entry[1];\n        };\n\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.set = function (key, value) {\n            var index = getIndex(this.__entries__, key);\n\n            if (~index) {\n                this.__entries__[index][1] = value;\n            } else {\n                this.__entries__.push([key, value]);\n            }\n        };\n\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.delete = function (key) {\n            var entries = this.__entries__;\n            var index = getIndex(entries, key);\n\n            if (~index) {\n                entries.splice(index, 1);\n            }\n        };\n\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.has = function (key) {\n            return !!~getIndex(this.__entries__, key);\n        };\n\n        /**\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.clear = function () {\n            this.__entries__.splice(0);\n        };\n\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\n        anonymous.prototype.forEach = function (callback, ctx) {\n            var this$1 = this;\n            if ( ctx === void 0 ) ctx = null;\n\n            for (var i = 0, list = this$1.__entries__; i < list.length; i += 1) {\n                var entry = list[i];\n\n                callback.call(ctx, entry[1], entry[0]);\n            }\n        };\n\n        Object.defineProperties( anonymous.prototype, prototypeAccessors );\n\n        return anonymous;\n    }());\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\nvar global$1 = (function () {\n    if (typeof global !== 'undefined' && global.Math === Math) {\n        return global;\n    }\n\n    if (typeof self !== 'undefined' && self.Math === Math) {\n        return self;\n    }\n\n    if (typeof window !== 'undefined' && window.Math === Math) {\n        return window;\n    }\n\n    // eslint-disable-next-line no-new-func\n    return Function('return this')();\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\nvar requestAnimationFrame$1 = (function () {\n    if (typeof requestAnimationFrame === 'function') {\n        // It's required to use a bounded function because IE sometimes throws\n        // an \"Invalid calling object\" error if rAF is invoked without the global\n        // object on the left hand side.\n        return requestAnimationFrame.bind(global$1);\n    }\n\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\n})();\n\n// Defines minimum timeout before adding a trailing call.\nvar trailingTimeout = 2;\n\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\nvar throttle = function (callback, delay) {\n    var leadingCall = false,\n        trailingCall = false,\n        lastCallTime = 0;\n\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\n    function resolvePending() {\n        if (leadingCall) {\n            leadingCall = false;\n\n            callback();\n        }\n\n        if (trailingCall) {\n            proxy();\n        }\n    }\n\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\n    function timeoutCallback() {\n        requestAnimationFrame$1(resolvePending);\n    }\n\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\n    function proxy() {\n        var timeStamp = Date.now();\n\n        if (leadingCall) {\n            // Reject immediately following calls.\n            if (timeStamp - lastCallTime < trailingTimeout) {\n                return;\n            }\n\n            // Schedule new call to be in invoked when the pending one is resolved.\n            // This is important for \"transitions\" which never actually start\n            // immediately so there is a chance that we might miss one if change\n            // happens amids the pending invocation.\n            trailingCall = true;\n        } else {\n            leadingCall = true;\n            trailingCall = false;\n\n            setTimeout(timeoutCallback, delay);\n        }\n\n        lastCallTime = timeStamp;\n    }\n\n    return proxy;\n};\n\n// Minimum delay before invoking the update of observers.\nvar REFRESH_DELAY = 20;\n\n// A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\n\n// Check if MutationObserver is available.\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\nvar ResizeObserverController = function() {\n    this.connected_ = false;\n    this.mutationEventsAdded_ = false;\n    this.mutationsObserver_ = null;\n    this.observers_ = [];\n\n    this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n    this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n};\n\n/**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n/**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n/**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n/**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\nResizeObserverController.prototype.addObserver = function (observer) {\n    if (!~this.observers_.indexOf(observer)) {\n        this.observers_.push(observer);\n    }\n\n    // Add listeners if they haven't been added yet.\n    if (!this.connected_) {\n        this.connect_();\n    }\n};\n\n/**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.removeObserver = function (observer) {\n    var observers = this.observers_;\n    var index = observers.indexOf(observer);\n\n    // Remove observer if it's present in registry.\n    if (~index) {\n        observers.splice(index, 1);\n    }\n\n    // Remove listeners if controller has no connected observers.\n    if (!observers.length && this.connected_) {\n        this.disconnect_();\n    }\n};\n\n/**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.refresh = function () {\n    var changesDetected = this.updateObservers_();\n\n    // Continue running updates if changes have been detected as there might\n    // be future ones caused by CSS transitions.\n    if (changesDetected) {\n        this.refresh();\n    }\n};\n\n/**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n *  dimensions of it's elements.\r\n */\nResizeObserverController.prototype.updateObservers_ = function () {\n    // Collect observers that have active observations.\n    var activeObservers = this.observers_.filter(function (observer) {\n        return observer.gatherActive(), observer.hasActive();\n    });\n\n    // Deliver notifications in a separate cycle in order to avoid any\n    // collisions between observers, e.g. when multiple instances of\n    // ResizeObserver are tracking the same element and the callback of one\n    // of them changes content dimensions of the observed target. Sometimes\n    // this may result in notifications being blocked for the rest of observers.\n    activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\n\n    return activeObservers.length > 0;\n};\n\n/**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.connect_ = function () {\n    // Do nothing if running in a non-browser environment or if listeners\n    // have been already added.\n    if (!isBrowser || this.connected_) {\n        return;\n    }\n\n    // Subscription to the \"Transitionend\" event is used as a workaround for\n    // delayed transitions. This way it's possible to capture at least the\n    // final state of an element.\n    document.addEventListener('transitionend', this.onTransitionEnd_);\n\n    window.addEventListener('resize', this.refresh);\n\n    if (mutationObserverSupported) {\n        this.mutationsObserver_ = new MutationObserver(this.refresh);\n\n        this.mutationsObserver_.observe(document, {\n            attributes: true,\n            childList: true,\n            characterData: true,\n            subtree: true\n        });\n    } else {\n        document.addEventListener('DOMSubtreeModified', this.refresh);\n\n        this.mutationEventsAdded_ = true;\n    }\n\n    this.connected_ = true;\n};\n\n/**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.disconnect_ = function () {\n    // Do nothing if running in a non-browser environment or if listeners\n    // have been already removed.\n    if (!isBrowser || !this.connected_) {\n        return;\n    }\n\n    document.removeEventListener('transitionend', this.onTransitionEnd_);\n    window.removeEventListener('resize', this.refresh);\n\n    if (this.mutationsObserver_) {\n        this.mutationsObserver_.disconnect();\n    }\n\n    if (this.mutationEventsAdded_) {\n        document.removeEventListener('DOMSubtreeModified', this.refresh);\n    }\n\n    this.mutationsObserver_ = null;\n    this.mutationEventsAdded_ = false;\n    this.connected_ = false;\n};\n\n/**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.onTransitionEnd_ = function (ref) {\n        var propertyName = ref.propertyName; if ( propertyName === void 0 ) propertyName = '';\n\n    // Detect whether transition may affect dimensions of an element.\n    var isReflowProperty = transitionKeys.some(function (key) {\n        return !!~propertyName.indexOf(key);\n    });\n\n    if (isReflowProperty) {\n        this.refresh();\n    }\n};\n\n/**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\nResizeObserverController.getInstance = function () {\n    if (!this.instance_) {\n        this.instance_ = new ResizeObserverController();\n    }\n\n    return this.instance_;\n};\n\nResizeObserverController.instance_ = null;\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\nvar defineConfigurable = (function (target, props) {\n    for (var i = 0, list = Object.keys(props); i < list.length; i += 1) {\n        var key = list[i];\n\n        Object.defineProperty(target, key, {\n            value: props[key],\n            enumerable: false,\n            writable: false,\n            configurable: true\n        });\n    }\n\n    return target;\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\nvar getWindowOf = (function (target) {\n    // Assume that the element is an instance of Node, which means that it\n    // has the \"ownerDocument\" property from which we can retrieve a\n    // corresponding global object.\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\n\n    // Return the local global object if it's not possible extract one from\n    // provided element.\n    return ownerGlobal || global$1;\n});\n\n// Placeholder of an empty content rectangle.\nvar emptyRect = createRectInit(0, 0, 0, 0);\n\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\nfunction toFloat(value) {\n    return parseFloat(value) || 0;\n}\n\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\nfunction getBordersSize(styles) {\n    var positions = [], len = arguments.length - 1;\n    while ( len-- > 0 ) positions[ len ] = arguments[ len + 1 ];\n\n    return positions.reduce(function (size, position) {\n        var value = styles['border-' + position + '-width'];\n\n        return size + toFloat(value);\n    }, 0);\n}\n\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\nfunction getPaddings(styles) {\n    var positions = ['top', 'right', 'bottom', 'left'];\n    var paddings = {};\n\n    for (var i = 0, list = positions; i < list.length; i += 1) {\n        var position = list[i];\n\n        var value = styles['padding-' + position];\n\n        paddings[position] = toFloat(value);\n    }\n\n    return paddings;\n}\n\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\nfunction getSVGContentRect(target) {\n    var bbox = target.getBBox();\n\n    return createRectInit(0, 0, bbox.width, bbox.height);\n}\n\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\nfunction getHTMLElementContentRect(target) {\n    // Client width & height properties can't be\n    // used exclusively as they provide rounded values.\n    var clientWidth = target.clientWidth;\n    var clientHeight = target.clientHeight;\n\n    // By this condition we can catch all non-replaced inline, hidden and\n    // detached elements. Though elements with width & height properties less\n    // than 0.5 will be discarded as well.\n    //\n    // Without it we would need to implement separate methods for each of\n    // those cases and it's not possible to perform a precise and performance\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n    // gives wrong results for elements with width & height less than 0.5.\n    if (!clientWidth && !clientHeight) {\n        return emptyRect;\n    }\n\n    var styles = getWindowOf(target).getComputedStyle(target);\n    var paddings = getPaddings(styles);\n    var horizPad = paddings.left + paddings.right;\n    var vertPad = paddings.top + paddings.bottom;\n\n    // Computed styles of width & height are being used because they are the\n    // only dimensions available to JS that contain non-rounded values. It could\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\n    var width = toFloat(styles.width),\n        height = toFloat(styles.height);\n\n    // Width & height include paddings and borders when the 'border-box' box\n    // model is applied (except for IE).\n    if (styles.boxSizing === 'border-box') {\n        // Following conditions are required to handle Internet Explorer which\n        // doesn't include paddings and borders to computed CSS dimensions.\n        //\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\n        // properties then it's either IE, and thus we don't need to subtract\n        // anything, or an element merely doesn't have paddings/borders styles.\n        if (Math.round(width + horizPad) !== clientWidth) {\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\n        }\n\n        if (Math.round(height + vertPad) !== clientHeight) {\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n        }\n    }\n\n    // Following steps can't be applied to the document's root element as its\n    // client[Width/Height] properties represent viewport area of the window.\n    // Besides, it's as well not necessary as the <html> itself neither has\n    // rendered scroll bars nor it can be clipped.\n    if (!isDocumentElement(target)) {\n        // In some browsers (only in Firefox, actually) CSS width & height\n        // include scroll bars size which can be removed at this step as scroll\n        // bars are the only difference between rounded dimensions + paddings\n        // and \"client\" properties, though that is not always true in Chrome.\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\n\n        // Chrome has a rather weird rounding of \"client\" properties.\n        // E.g. for an element with content width of 314.2px it sometimes gives\n        // the client width of 315px and for the width of 314.7px it may give\n        // 314px. And it doesn't happen all the time. So just ignore this delta\n        // as a non-relevant.\n        if (Math.abs(vertScrollbar) !== 1) {\n            width -= vertScrollbar;\n        }\n\n        if (Math.abs(horizScrollbar) !== 1) {\n            height -= horizScrollbar;\n        }\n    }\n\n    return createRectInit(paddings.left, paddings.top, width, height);\n}\n\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\nvar isSVGGraphicsElement = (function () {\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n    // interface.\n    if (typeof SVGGraphicsElement !== 'undefined') {\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\n    }\n\n    // If it's so, then check that element is at least an instance of the\n    // SVGElement and that it has the \"getBBox\" method.\n    // eslint-disable-next-line no-extra-parens\n    return function (target) { return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function'; };\n})();\n\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\nfunction isDocumentElement(target) {\n    return target === getWindowOf(target).document.documentElement;\n}\n\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\nfunction getContentRect(target) {\n    if (!isBrowser) {\n        return emptyRect;\n    }\n\n    if (isSVGGraphicsElement(target)) {\n        return getSVGContentRect(target);\n    }\n\n    return getHTMLElementContentRect(target);\n}\n\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\nfunction createReadOnlyRect(ref) {\n    var x = ref.x;\n    var y = ref.y;\n    var width = ref.width;\n    var height = ref.height;\n\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n    var rect = Object.create(Constr.prototype);\n\n    // Rectangle's properties are not writable and non-enumerable.\n    defineConfigurable(rect, {\n        x: x, y: y, width: width, height: height,\n        top: y,\n        right: x + width,\n        bottom: height + y,\n        left: x\n    });\n\n    return rect;\n}\n\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\nfunction createRectInit(x, y, width, height) {\n    return { x: x, y: y, width: width, height: height };\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\nvar ResizeObservation = function(target) {\n    this.broadcastWidth = 0;\n    this.broadcastHeight = 0;\n    this.contentRect_ = createRectInit(0, 0, 0, 0);\n\n    this.target = target;\n};\n\n/**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n/**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n\n/**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\nResizeObservation.prototype.isActive = function () {\n    var rect = getContentRect(this.target);\n\n    this.contentRect_ = rect;\n\n    return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n};\n\n/**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\nResizeObservation.prototype.broadcastRect = function () {\n    var rect = this.contentRect_;\n\n    this.broadcastWidth = rect.width;\n    this.broadcastHeight = rect.height;\n\n    return rect;\n};\n\nvar ResizeObserverEntry = function(target, rectInit) {\n    var contentRect = createReadOnlyRect(rectInit);\n\n    // According to the specification following properties are not writable\n    // and are also not enumerable in the native implementation.\n    //\n    // Property accessors are not being used as they'd require to define a\n    // private WeakMap storage which may cause memory leaks in browsers that\n    // don't support this type of collections.\n    defineConfigurable(this, { target: target, contentRect: contentRect });\n};\n\nvar ResizeObserverSPI = function(callback, controller, callbackCtx) {\n    this.activeObservations_ = [];\n    this.observations_ = new MapShim();\n\n    if (typeof callback !== 'function') {\n        throw new TypeError('The callback provided as parameter 1 is not a function.');\n    }\n\n    this.callback_ = callback;\n    this.controller_ = controller;\n    this.callbackCtx_ = callbackCtx;\n};\n\n/**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n/**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\n\n\n/**\r\n * Public ResizeObserver instance which will be passed to the callback\r\n * function and used as a value of it's \"this\" binding.\r\n *\r\n * @private {ResizeObserver}\r\n */\n\n/**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\nResizeObserverSPI.prototype.observe = function (target) {\n    if (!arguments.length) {\n        throw new TypeError('1 argument required, but only 0 present.');\n    }\n\n    // Do nothing if current environment doesn't have the Element interface.\n    if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n        return;\n    }\n\n    if (!(target instanceof getWindowOf(target).Element)) {\n        throw new TypeError('parameter 1 is not of type \"Element\".');\n    }\n\n    var observations = this.observations_;\n\n    // Do nothing if element is already being observed.\n    if (observations.has(target)) {\n        return;\n    }\n\n    observations.set(target, new ResizeObservation(target));\n\n    this.controller_.addObserver(this);\n\n    // Force the update of observations.\n    this.controller_.refresh();\n};\n\n/**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.unobserve = function (target) {\n    if (!arguments.length) {\n        throw new TypeError('1 argument required, but only 0 present.');\n    }\n\n    // Do nothing if current environment doesn't have the Element interface.\n    if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n        return;\n    }\n\n    if (!(target instanceof getWindowOf(target).Element)) {\n        throw new TypeError('parameter 1 is not of type \"Element\".');\n    }\n\n    var observations = this.observations_;\n\n    // Do nothing if element is not being observed.\n    if (!observations.has(target)) {\n        return;\n    }\n\n    observations.delete(target);\n\n    if (!observations.size) {\n        this.controller_.removeObserver(this);\n    }\n};\n\n/**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.disconnect = function () {\n    this.clearActive();\n    this.observations_.clear();\n    this.controller_.removeObserver(this);\n};\n\n/**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.gatherActive = function () {\n        var this$1 = this;\n\n    this.clearActive();\n\n    this.observations_.forEach(function (observation) {\n        if (observation.isActive()) {\n            this$1.activeObservations_.push(observation);\n        }\n    });\n};\n\n/**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.broadcastActive = function () {\n    // Do nothing if observer doesn't have active observations.\n    if (!this.hasActive()) {\n        return;\n    }\n\n    var ctx = this.callbackCtx_;\n\n    // Create ResizeObserverEntry instance for every active observation.\n    var entries = this.activeObservations_.map(function (observation) {\n        return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n    });\n\n    this.callback_.call(ctx, entries, ctx);\n    this.clearActive();\n};\n\n/**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.clearActive = function () {\n    this.activeObservations_.splice(0);\n};\n\n/**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\nResizeObserverSPI.prototype.hasActive = function () {\n    return this.activeObservations_.length > 0;\n};\n\n// Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\nvar ResizeObserver = function(callback) {\n    if (!(this instanceof ResizeObserver)) {\n        throw new TypeError('Cannot call a class as a function.');\n    }\n    if (!arguments.length) {\n        throw new TypeError('1 argument required, but only 0 present.');\n    }\n\n    var controller = ResizeObserverController.getInstance();\n    var observer = new ResizeObserverSPI(callback, controller, this);\n\n    observers.set(this, observer);\n};\n\n// Expose public methods of ResizeObserver.\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n    ResizeObserver.prototype[method] = function () {\n        return (ref = observers.get(this))[method].apply(ref, arguments);\n        var ref;\n    };\n});\n\nvar index = (function () {\n    // Export existing implementation if available.\n    if (typeof global$1.ResizeObserver !== 'undefined') {\n        return global$1.ResizeObserver;\n    }\n\n    return ResizeObserver;\n})();\n\nexport default index;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_resize-observer-polyfill@1.5.0@resize-observer-polyfill/dist/ResizeObserver.es.js\n// module id = /ItL\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../../coord/Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Extend axis 2d\n * @constructor module:echarts/coord/cartesian/Axis2D\n * @extends {module:echarts/coord/cartesian/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.<number>} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar TimelineAxis = function (dim, scale, coordExtent, axisType) {\n  Axis.call(this, dim, scale, coordExtent);\n  /**\n   * Axis type\n   *  - 'category'\n   *  - 'value'\n   *  - 'time'\n   *  - 'log'\n   * @type {string}\n   */\n\n  this.type = axisType || 'value';\n  /**\n   * Axis model\n   * @param {module:echarts/component/TimelineModel}\n   */\n\n  this.model = null;\n};\n\nTimelineAxis.prototype = {\n  constructor: TimelineAxis,\n\n  /**\n   * @override\n   */\n  getLabelModel: function () {\n    return this.model.getModel('label');\n  },\n\n  /**\n   * @override\n   */\n  isHorizontal: function () {\n    return this.model.get('orient') === 'horizontal';\n  }\n};\nzrUtil.inherits(TimelineAxis, Axis);\nvar _default = TimelineAxis;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/TimelineAxis.js\n// module id = /KmJ\n// module chunks = 0","var _config = require(\"./config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrender = require(\"zrender/lib/zrender\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar timsort = require(\"zrender/lib/core/timsort\");\n\nvar Eventful = require(\"zrender/lib/mixin/Eventful\");\n\nvar GlobalModel = require(\"./model/Global\");\n\nvar ExtensionAPI = require(\"./ExtensionAPI\");\n\nvar CoordinateSystemManager = require(\"./CoordinateSystem\");\n\nvar OptionManager = require(\"./model/OptionManager\");\n\nvar backwardCompat = require(\"./preprocessor/backwardCompat\");\n\nvar dataStack = require(\"./processor/dataStack\");\n\nvar ComponentModel = require(\"./model/Component\");\n\nvar SeriesModel = require(\"./model/Series\");\n\nvar ComponentView = require(\"./view/Component\");\n\nvar ChartView = require(\"./view/Chart\");\n\nvar graphic = require(\"./util/graphic\");\n\nvar modelUtil = require(\"./util/model\");\n\nvar _throttle = require(\"./util/throttle\");\n\nvar throttle = _throttle.throttle;\n\nvar seriesColor = require(\"./visual/seriesColor\");\n\nvar aria = require(\"./visual/aria\");\n\nvar loadingDefault = require(\"./loading/default\");\n\nvar Scheduler = require(\"./stream/Scheduler\");\n\nvar lightTheme = require(\"./theme/light\");\n\nvar darkTheme = require(\"./theme/dark\");\n\nrequire(\"./component/dataset\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar parseClassType = ComponentModel.parseClassType;\nvar version = '4.1.0';\nvar dependencies = {\n  zrender: '4.0.4'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000; // FIXME\n// necessary?\n\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH\n  }\n}; // Main process have three entries: `setOption`, `dispatchAction` and `resize`,\n// where they must not be invoked nestedly, except the only case: invoke\n// dispatchAction with updateMethod \"none\" in main process.\n// This flag is used to carry out this rule.\n// All events will be triggered out side main process (i.e. when !this[IN_MAIN_PROCESS]).\n\nvar IN_MAIN_PROCESS = '__flagInMainProcess';\nvar OPTION_UPDATED = '__optionUpdated';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\n\nfunction createRegisterEventWithLowercaseName(method) {\n  return function (eventName, handler, context) {\n    // Event name is all lowercase\n    eventName = eventName && eventName.toLowerCase();\n    Eventful.prototype[method].call(this, eventName, handler, context);\n  };\n}\n/**\n * @module echarts~MessageCenter\n */\n\n\nfunction MessageCenter() {\n  Eventful.call(this);\n}\n\nMessageCenter.prototype.on = createRegisterEventWithLowercaseName('on');\nMessageCenter.prototype.off = createRegisterEventWithLowercaseName('off');\nMessageCenter.prototype.one = createRegisterEventWithLowercaseName('one');\nzrUtil.mixin(MessageCenter, Eventful);\n/**\n * @module echarts~ECharts\n */\n\nfunction ECharts(dom, theme, opts) {\n  opts = opts || {}; // Get theme by name\n\n  if (typeof theme === 'string') {\n    theme = themeStorage[theme];\n  }\n  /**\n   * @type {string}\n   */\n\n\n  this.id;\n  /**\n   * Group id\n   * @type {string}\n   */\n\n  this.group;\n  /**\n   * @type {HTMLElement}\n   * @private\n   */\n\n  this._dom = dom;\n  var defaultRenderer = 'canvas';\n\n  /**\n   * @type {module:zrender/ZRender}\n   * @private\n   */\n  var zr = this._zr = zrender.init(dom, {\n    renderer: opts.renderer || defaultRenderer,\n    devicePixelRatio: opts.devicePixelRatio,\n    width: opts.width,\n    height: opts.height\n  });\n  /**\n   * Expect 60 pfs.\n   * @type {Function}\n   * @private\n   */\n\n  this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n  var theme = zrUtil.clone(theme);\n  theme && backwardCompat(theme, true);\n  /**\n   * @type {Object}\n   * @private\n   */\n\n  this._theme = theme;\n  /**\n   * @type {Array.<module:echarts/view/Chart>}\n   * @private\n   */\n\n  this._chartsViews = [];\n  /**\n   * @type {Object.<string, module:echarts/view/Chart>}\n   * @private\n   */\n\n  this._chartsMap = {};\n  /**\n   * @type {Array.<module:echarts/view/Component>}\n   * @private\n   */\n\n  this._componentsViews = [];\n  /**\n   * @type {Object.<string, module:echarts/view/Component>}\n   * @private\n   */\n\n  this._componentsMap = {};\n  /**\n   * @type {module:echarts/CoordinateSystem}\n   * @private\n   */\n\n  this._coordSysMgr = new CoordinateSystemManager();\n  /**\n   * @type {module:echarts/ExtensionAPI}\n   * @private\n   */\n\n  var api = this._api = createExtensionAPI(this); // Sort on demand\n\n  function prioritySortFunc(a, b) {\n    return a.__prio - b.__prio;\n  }\n\n  timsort(visualFuncs, prioritySortFunc);\n  timsort(dataProcessorFuncs, prioritySortFunc);\n  /**\n   * @type {module:echarts/stream/Scheduler}\n   */\n\n  this._scheduler = new Scheduler(this, api, dataProcessorFuncs, visualFuncs);\n  Eventful.call(this);\n  /**\n   * @type {module:echarts~MessageCenter}\n   * @private\n   */\n\n  this._messageCenter = new MessageCenter(); // Init mouse events\n\n  this._initEvents(); // In case some people write `window.onresize = chart.resize`\n\n\n  this.resize = zrUtil.bind(this.resize, this); // Can't dispatch action during rendering procedure\n\n  this._pendingActions = [];\n  zr.animation.on('frame', this._onframe, this);\n  bindRenderedEvent(zr, this); // ECharts instance can be used as value.\n\n  zrUtil.setAsPrimitive(this);\n}\n\nvar echartsProto = ECharts.prototype;\n\nechartsProto._onframe = function () {\n  if (this._disposed) {\n    return;\n  }\n\n  var scheduler = this._scheduler; // Lazy update\n\n  if (this[OPTION_UPDATED]) {\n    var silent = this[OPTION_UPDATED].silent;\n    this[IN_MAIN_PROCESS] = true;\n    prepare(this);\n    updateMethods.update.call(this);\n    this[IN_MAIN_PROCESS] = false;\n    this[OPTION_UPDATED] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  } // Avoid do both lazy update and progress in one frame.\n  else if (scheduler.unfinished) {\n      // Stream progress.\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel); // Currently dataProcessorFuncs do not check threshold.\n\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel); // Do not update coordinate system here. Because that coord system update in\n        // each frame is not a good user experience. So we follow the rule that\n        // the extent of the coordinate system is determin in the first frame (the\n        // frame is executed immedietely after task reset.\n        // this._coordSysMgr.update(ecModel, api);\n        // console.log('--- ec frame visual ---', remainTime);\n\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished); // Call flush explicitly for trigger finished event.\n\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      } // Else, zr flushing be ensue within the same frame,\n      // because zr flushing is after onframe event.\n\n    }\n};\n/**\n * @return {HTMLElement}\n */\n\n\nechartsProto.getDom = function () {\n  return this._dom;\n};\n/**\n * @return {module:zrender~ZRender}\n */\n\n\nechartsProto.getZr = function () {\n  return this._zr;\n};\n/**\n * Usage:\n * chart.setOption(option, notMerge, lazyUpdate);\n * chart.setOption(option, {\n *     notMerge: ...,\n *     lazyUpdate: ...,\n *     silent: ...\n * });\n *\n * @param {Object} option\n * @param {Object|boolean} [opts] opts or notMerge.\n * @param {boolean} [opts.notMerge=false]\n * @param {boolean} [opts.lazyUpdate=false] Useful when setOption frequently.\n */\n\n\nechartsProto.setOption = function (option, notMerge, lazyUpdate) {\n  var silent;\n\n  if (isObject(notMerge)) {\n    lazyUpdate = notMerge.lazyUpdate;\n    silent = notMerge.silent;\n    notMerge = notMerge.notMerge;\n  }\n\n  this[IN_MAIN_PROCESS] = true;\n\n  if (!this._model || notMerge) {\n    var optionManager = new OptionManager(this._api);\n    var theme = this._theme;\n    var ecModel = this._model = new GlobalModel(null, null, theme, optionManager);\n    ecModel.scheduler = this._scheduler;\n    ecModel.init(null, null, theme, optionManager);\n  }\n\n  this._model.setOption(option, optionPreprocessorFuncs);\n\n  if (lazyUpdate) {\n    this[OPTION_UPDATED] = {\n      silent: silent\n    };\n    this[IN_MAIN_PROCESS] = false;\n  } else {\n    prepare(this);\n    updateMethods.update.call(this); // Ensure zr refresh sychronously, and then pixel in canvas can be\n    // fetched after `setOption`.\n\n    this._zr.flush();\n\n    this[OPTION_UPDATED] = false;\n    this[IN_MAIN_PROCESS] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  }\n};\n/**\n * @DEPRECATED\n */\n\n\nechartsProto.setTheme = function () {\n  console.log('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n};\n/**\n * @return {module:echarts/model/Global}\n */\n\n\nechartsProto.getModel = function () {\n  return this._model;\n};\n/**\n * @return {Object}\n */\n\n\nechartsProto.getOption = function () {\n  return this._model && this._model.getOption();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getWidth = function () {\n  return this._zr.getWidth();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getHeight = function () {\n  return this._zr.getHeight();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getDevicePixelRatio = function () {\n  return this._zr.painter.dpr || window.devicePixelRatio || 1;\n};\n/**\n * Get canvas which has all thing rendered\n * @param {Object} opts\n * @param {string} [opts.backgroundColor]\n * @return {string}\n */\n\n\nechartsProto.getRenderedCanvas = function (opts) {\n  if (!env.canvasSupported) {\n    return;\n  }\n\n  opts = opts || {};\n  opts.pixelRatio = opts.pixelRatio || 1;\n  opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n  var zr = this._zr; // var list = zr.storage.getDisplayList();\n  // Stop animations\n  // Never works before in init animation, so remove it.\n  // zrUtil.each(list, function (el) {\n  //     el.stopAnimation(true);\n  // });\n\n  return zr.painter.getRenderedCanvas(opts);\n};\n/**\n * Get svg data url\n * @return {string}\n */\n\n\nechartsProto.getSvgDataUrl = function () {\n  if (!env.svgSupported) {\n    return;\n  }\n\n  var zr = this._zr;\n  var list = zr.storage.getDisplayList(); // Stop animations\n\n  zrUtil.each(list, function (el) {\n    el.stopAnimation(true);\n  });\n  return zr.painter.pathToDataUrl();\n};\n/**\n * @return {string}\n * @param {Object} opts\n * @param {string} [opts.type='png']\n * @param {string} [opts.pixelRatio=1]\n * @param {string} [opts.backgroundColor]\n * @param {string} [opts.excludeComponents]\n */\n\n\nechartsProto.getDataURL = function (opts) {\n  opts = opts || {};\n  var excludeComponents = opts.excludeComponents;\n  var ecModel = this._model;\n  var excludesComponentViews = [];\n  var self = this;\n  each(excludeComponents, function (componentType) {\n    ecModel.eachComponent({\n      mainType: componentType\n    }, function (component) {\n      var view = self._componentsMap[component.__viewId];\n\n      if (!view.group.ignore) {\n        excludesComponentViews.push(view);\n        view.group.ignore = true;\n      }\n    });\n  });\n  var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataUrl() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n  each(excludesComponentViews, function (view) {\n    view.group.ignore = false;\n  });\n  return url;\n};\n/**\n * @return {string}\n * @param {Object} opts\n * @param {string} [opts.type='png']\n * @param {string} [opts.pixelRatio=1]\n * @param {string} [opts.backgroundColor]\n */\n\n\nechartsProto.getConnectedDataURL = function (opts) {\n  if (!env.canvasSupported) {\n    return;\n  }\n\n  var groupId = this.group;\n  var mathMin = Math.min;\n  var mathMax = Math.max;\n  var MAX_NUMBER = Infinity;\n\n  if (connectedGroups[groupId]) {\n    var left = MAX_NUMBER;\n    var top = MAX_NUMBER;\n    var right = -MAX_NUMBER;\n    var bottom = -MAX_NUMBER;\n    var canvasList = [];\n    var dpr = opts && opts.pixelRatio || 1;\n    zrUtil.each(instances, function (chart, id) {\n      if (chart.group === groupId) {\n        var canvas = chart.getRenderedCanvas(zrUtil.clone(opts));\n        var boundingRect = chart.getDom().getBoundingClientRect();\n        left = mathMin(boundingRect.left, left);\n        top = mathMin(boundingRect.top, top);\n        right = mathMax(boundingRect.right, right);\n        bottom = mathMax(boundingRect.bottom, bottom);\n        canvasList.push({\n          dom: canvas,\n          left: boundingRect.left,\n          top: boundingRect.top\n        });\n      }\n    });\n    left *= dpr;\n    top *= dpr;\n    right *= dpr;\n    bottom *= dpr;\n    var width = right - left;\n    var height = bottom - top;\n    var targetCanvas = zrUtil.createCanvas();\n    targetCanvas.width = width;\n    targetCanvas.height = height;\n    var zr = zrender.init(targetCanvas);\n    each(canvasList, function (item) {\n      var img = new graphic.Image({\n        style: {\n          x: item.left * dpr - left,\n          y: item.top * dpr - top,\n          image: item.dom\n        }\n      });\n      zr.add(img);\n    });\n    zr.refreshImmediately();\n    return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n  } else {\n    return this.getDataURL(opts);\n  }\n};\n/**\n * Convert from logical coordinate system to pixel coordinate system.\n * See CoordinateSystem#convertToPixel.\n * @param {string|Object} finder\n *        If string, e.g., 'geo', means {geoIndex: 0}.\n *        If Object, could contain some of these properties below:\n *        {\n *            seriesIndex / seriesId / seriesName,\n *            geoIndex / geoId, geoName,\n *            bmapIndex / bmapId / bmapName,\n *            xAxisIndex / xAxisId / xAxisName,\n *            yAxisIndex / yAxisId / yAxisName,\n *            gridIndex / gridId / gridName,\n *            ... (can be extended)\n *        }\n * @param {Array|number} value\n * @return {Array|number} result\n */\n\n\nechartsProto.convertToPixel = zrUtil.curry(doConvertPixel, 'convertToPixel');\n/**\n * Convert from pixel coordinate system to logical coordinate system.\n * See CoordinateSystem#convertFromPixel.\n * @param {string|Object} finder\n *        If string, e.g., 'geo', means {geoIndex: 0}.\n *        If Object, could contain some of these properties below:\n *        {\n *            seriesIndex / seriesId / seriesName,\n *            geoIndex / geoId / geoName,\n *            bmapIndex / bmapId / bmapName,\n *            xAxisIndex / xAxisId / xAxisName,\n *            yAxisIndex / yAxisId / yAxisName\n *            gridIndex / gridId / gridName,\n *            ... (can be extended)\n *        }\n * @param {Array|number} value\n * @return {Array|number} result\n */\n\nechartsProto.convertFromPixel = zrUtil.curry(doConvertPixel, 'convertFromPixel');\n\nfunction doConvertPixel(methodName, finder, value) {\n  var ecModel = this._model;\n\n  var coordSysList = this._coordSysMgr.getCoordinateSystems();\n\n  var result;\n  finder = modelUtil.parseFinder(ecModel, finder);\n\n  for (var i = 0; i < coordSysList.length; i++) {\n    var coordSys = coordSysList[i];\n\n    if (coordSys[methodName] && (result = coordSys[methodName](ecModel, finder, value)) != null) {\n      return result;\n    }\n  }\n}\n/**\n * Is the specified coordinate systems or components contain the given pixel point.\n * @param {string|Object} finder\n *        If string, e.g., 'geo', means {geoIndex: 0}.\n *        If Object, could contain some of these properties below:\n *        {\n *            seriesIndex / seriesId / seriesName,\n *            geoIndex / geoId / geoName,\n *            bmapIndex / bmapId / bmapName,\n *            xAxisIndex / xAxisId / xAxisName,\n *            yAxisIndex / yAxisId / yAxisName,\n *            gridIndex / gridId / gridName,\n *            ... (can be extended)\n *        }\n * @param {Array|number} value\n * @return {boolean} result\n */\n\n\nechartsProto.containPixel = function (finder, value) {\n  var ecModel = this._model;\n  var result;\n  finder = modelUtil.parseFinder(ecModel, finder);\n  zrUtil.each(finder, function (models, key) {\n    key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n      var coordSys = model.coordinateSystem;\n\n      if (coordSys && coordSys.containPoint) {\n        result |= !!coordSys.containPoint(value);\n      } else if (key === 'seriesModels') {\n        var view = this._chartsMap[model.__viewId];\n\n        if (view && view.containPoint) {\n          result |= view.containPoint(value, model);\n        } else {}\n      } else {}\n    }, this);\n  }, this);\n  return !!result;\n};\n/**\n * Get visual from series or data.\n * @param {string|Object} finder\n *        If string, e.g., 'series', means {seriesIndex: 0}.\n *        If Object, could contain some of these properties below:\n *        {\n *            seriesIndex / seriesId / seriesName,\n *            dataIndex / dataIndexInside\n *        }\n *        If dataIndex is not specified, series visual will be fetched,\n *        but not data item visual.\n *        If all of seriesIndex, seriesId, seriesName are not specified,\n *        visual will be fetched from first series.\n * @param {string} visualType 'color', 'symbol', 'symbolSize'\n */\n\n\nechartsProto.getVisual = function (finder, visualType) {\n  var ecModel = this._model;\n  finder = modelUtil.parseFinder(ecModel, finder, {\n    defaultMainType: 'series'\n  });\n  var seriesModel = finder.seriesModel;\n  var data = seriesModel.getData();\n  var dataIndexInside = finder.hasOwnProperty('dataIndexInside') ? finder.dataIndexInside : finder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(finder.dataIndex) : null;\n  return dataIndexInside != null ? data.getItemVisual(dataIndexInside, visualType) : data.getVisual(visualType);\n};\n/**\n * Get view of corresponding component model\n * @param  {module:echarts/model/Component} componentModel\n * @return {module:echarts/view/Component}\n */\n\n\nechartsProto.getViewOfComponentModel = function (componentModel) {\n  return this._componentsMap[componentModel.__viewId];\n};\n/**\n * Get view of corresponding series model\n * @param  {module:echarts/model/Series} seriesModel\n * @return {module:echarts/view/Chart}\n */\n\n\nechartsProto.getViewOfSeriesModel = function (seriesModel) {\n  return this._chartsMap[seriesModel.__viewId];\n};\n\nvar updateMethods = {\n  prepareAndUpdate: function (payload) {\n    prepare(this);\n    updateMethods.update.call(this, payload);\n  },\n\n  /**\n   * @param {Object} payload\n   * @private\n   */\n  update: function (payload) {\n    // console.profile && console.profile('update');\n    var ecModel = this._model;\n    var api = this._api;\n    var zr = this._zr;\n    var coordSysMgr = this._coordSysMgr;\n    var scheduler = this._scheduler; // update before setOption\n\n    if (!ecModel) {\n      return;\n    }\n\n    scheduler.restoreData(ecModel, payload);\n    scheduler.performSeriesTasks(ecModel); // TODO\n    // Save total ecModel here for undo/redo (after restoring data and before processing data).\n    // Undo (restoration of total ecModel) can be carried out in 'action' or outside API call.\n    // Create new coordinate system each update\n    // In LineView may save the old coordinate system and use it to get the orignal point\n\n    coordSysMgr.create(ecModel, api);\n    scheduler.performDataProcessorTasks(ecModel, payload); // Current stream render is not supported in data process. So we can update\n    // stream modes after data processing, where the filtered data is used to\n    // deteming whether use progressive rendering.\n\n    updateStreamModes(this, ecModel); // We update stream modes before coordinate system updated, then the modes info\n    // can be fetched when coord sys updating (consider the barGrid extent fix). But\n    // the drawback is the full coord info can not be fetched. Fortunately this full\n    // coord is not requied in stream mode updater currently.\n\n    coordSysMgr.update(ecModel, api);\n    clearColorPalette(ecModel);\n    scheduler.performVisualTasks(ecModel, payload);\n    render(this, ecModel, api, payload); // Set background\n\n    var backgroundColor = ecModel.get('backgroundColor') || 'transparent'; // In IE8\n\n    if (!env.canvasSupported) {\n      var colorArr = colorTool.parse(backgroundColor);\n      backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n      if (colorArr[3] === 0) {\n        backgroundColor = 'transparent';\n      }\n    } else {\n      zr.setBackgroundColor(backgroundColor);\n    }\n\n    performPostUpdateFuncs(ecModel, api); // console.profile && console.profileEnd('update');\n  },\n\n  /**\n   * @param {Object} payload\n   * @private\n   */\n  updateTransform: function (payload) {\n    var ecModel = this._model;\n    var ecIns = this;\n    var api = this._api; // update before setOption\n\n    if (!ecModel) {\n      return;\n    } // ChartView.markUpdateMethod(payload, 'updateTransform');\n\n\n    var componentDirtyList = [];\n    ecModel.eachComponent(function (componentType, componentModel) {\n      var componentView = ecIns.getViewOfComponentModel(componentModel);\n\n      if (componentView && componentView.__alive) {\n        if (componentView.updateTransform) {\n          var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n          result && result.update && componentDirtyList.push(componentView);\n        } else {\n          componentDirtyList.push(componentView);\n        }\n      }\n    });\n    var seriesDirtyMap = zrUtil.createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n      if (chartView.updateTransform) {\n        var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n        result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n      } else {\n        seriesDirtyMap.set(seriesModel.uid, 1);\n      }\n    });\n    clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n    // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\n\n    this._scheduler.performVisualTasks(ecModel, payload, {\n      setDirty: true,\n      dirtyMap: seriesDirtyMap\n    }); // Currently, not call render of components. Geo render cost a lot.\n    // renderComponents(ecIns, ecModel, api, payload, componentDirtyList);\n\n\n    renderSeries(ecIns, ecModel, api, payload, seriesDirtyMap);\n    performPostUpdateFuncs(ecModel, this._api);\n  },\n\n  /**\n   * @param {Object} payload\n   * @private\n   */\n  updateView: function (payload) {\n    var ecModel = this._model; // update before setOption\n\n    if (!ecModel) {\n      return;\n    }\n\n    ChartView.markUpdateMethod(payload, 'updateView');\n    clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n\n    this._scheduler.performVisualTasks(ecModel, payload, {\n      setDirty: true\n    });\n\n    render(this, this._model, this._api, payload);\n    performPostUpdateFuncs(ecModel, this._api);\n  },\n\n  /**\n   * @param {Object} payload\n   * @private\n   */\n  updateVisual: function (payload) {\n    updateMethods.update.call(this, payload); // var ecModel = this._model;\n    // // update before setOption\n    // if (!ecModel) {\n    //     return;\n    // }\n    // ChartView.markUpdateMethod(payload, 'updateVisual');\n    // clearColorPalette(ecModel);\n    // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n    // this._scheduler.performVisualTasks(ecModel, payload, {visualType: 'visual', setDirty: true});\n    // render(this, this._model, this._api, payload);\n    // performPostUpdateFuncs(ecModel, this._api);\n  },\n\n  /**\n   * @param {Object} payload\n   * @private\n   */\n  updateLayout: function (payload) {\n    updateMethods.update.call(this, payload); // var ecModel = this._model;\n    // // update before setOption\n    // if (!ecModel) {\n    //     return;\n    // }\n    // ChartView.markUpdateMethod(payload, 'updateLayout');\n    // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n    // // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\n    // this._scheduler.performVisualTasks(ecModel, payload, {setDirty: true});\n    // render(this, this._model, this._api, payload);\n    // performPostUpdateFuncs(ecModel, this._api);\n  }\n};\n\nfunction prepare(ecIns) {\n  var ecModel = ecIns._model;\n  var scheduler = ecIns._scheduler;\n  scheduler.restorePipelines(ecModel);\n  scheduler.prepareStageTasks();\n  prepareView(ecIns, 'component', ecModel, scheduler);\n  prepareView(ecIns, 'chart', ecModel, scheduler);\n  scheduler.plan();\n}\n/**\n * @private\n */\n\n\nfunction updateDirectly(ecIns, method, payload, mainType, subType) {\n  var ecModel = ecIns._model; // broadcast\n\n  if (!mainType) {\n    // FIXME\n    // Chart will not be update directly here, except set dirty.\n    // But there is no such scenario now.\n    each(ecIns._componentsViews.concat(ecIns._chartsViews), callView);\n    return;\n  }\n\n  var query = {};\n  query[mainType + 'Id'] = payload[mainType + 'Id'];\n  query[mainType + 'Index'] = payload[mainType + 'Index'];\n  query[mainType + 'Name'] = payload[mainType + 'Name'];\n  var condition = {\n    mainType: mainType,\n    query: query\n  };\n  subType && (condition.subType = subType); // subType may be '' by parseClassType;\n\n  var excludeSeriesId = payload.excludeSeriesId;\n\n  if (excludeSeriesId != null) {\n    excludeSeriesId = zrUtil.createHashMap(modelUtil.normalizeToArray(excludeSeriesId));\n  } // If dispatchAction before setOption, do nothing.\n\n\n  ecModel && ecModel.eachComponent(condition, function (model) {\n    if (!excludeSeriesId || excludeSeriesId.get(model.id) == null) {\n      callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n    }\n  }, ecIns);\n\n  function callView(view) {\n    view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n  }\n}\n/**\n * Resize the chart\n * @param {Object} opts\n * @param {number} [opts.width] Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Can be 'auto' (the same as null/undefined)\n * @param {boolean} [opts.silent=false]\n */\n\n\nechartsProto.resize = function (opts) {\n  this._zr.resize(opts);\n\n  var ecModel = this._model; // Resize loading effect\n\n  this._loadingFX && this._loadingFX.resize();\n\n  if (!ecModel) {\n    return;\n  }\n\n  var optionChanged = ecModel.resetOption('media');\n  var silent = opts && opts.silent;\n  this[IN_MAIN_PROCESS] = true;\n  optionChanged && prepare(this);\n  updateMethods.update.call(this);\n  this[IN_MAIN_PROCESS] = false;\n  flushPendingActions.call(this, silent);\n  triggerUpdatedEvent.call(this, silent);\n};\n\nfunction updateStreamModes(ecIns, ecModel) {\n  var chartsMap = ecIns._chartsMap;\n  var scheduler = ecIns._scheduler;\n  ecModel.eachSeries(function (seriesModel) {\n    scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n  });\n}\n/**\n * Show loading effect\n * @param  {string} [name='default']\n * @param  {Object} [cfg]\n */\n\n\nechartsProto.showLoading = function (name, cfg) {\n  if (isObject(name)) {\n    cfg = name;\n    name = '';\n  }\n\n  name = name || 'default';\n  this.hideLoading();\n\n  if (!loadingEffects[name]) {\n    return;\n  }\n\n  var el = loadingEffects[name](this._api, cfg);\n  var zr = this._zr;\n  this._loadingFX = el;\n  zr.add(el);\n};\n/**\n * Hide loading effect\n */\n\n\nechartsProto.hideLoading = function () {\n  this._loadingFX && this._zr.remove(this._loadingFX);\n  this._loadingFX = null;\n};\n/**\n * @param {Object} eventObj\n * @return {Object}\n */\n\n\nechartsProto.makeActionFromEvent = function (eventObj) {\n  var payload = zrUtil.extend({}, eventObj);\n  payload.type = eventActionMap[eventObj.type];\n  return payload;\n};\n/**\n * @pubilc\n * @param {Object} payload\n * @param {string} [payload.type] Action type\n * @param {Object|boolean} [opt] If pass boolean, means opt.silent\n * @param {boolean} [opt.silent=false] Whether trigger events.\n * @param {boolean} [opt.flush=undefined]\n *                  true: Flush immediately, and then pixel in canvas can be fetched\n *                      immediately. Caution: it might affect performance.\n *                  false: Not not flush.\n *                  undefined: Auto decide whether perform flush.\n */\n\n\nechartsProto.dispatchAction = function (payload, opt) {\n  if (!isObject(opt)) {\n    opt = {\n      silent: !!opt\n    };\n  }\n\n  if (!actions[payload.type]) {\n    return;\n  } // Avoid dispatch action before setOption. Especially in `connect`.\n\n\n  if (!this._model) {\n    return;\n  } // May dispatchAction in rendering procedure\n\n\n  if (this[IN_MAIN_PROCESS]) {\n    this._pendingActions.push(payload);\n\n    return;\n  }\n\n  doDispatchAction.call(this, payload, opt.silent);\n\n  if (opt.flush) {\n    this._zr.flush(true);\n  } else if (opt.flush !== false && env.browser.weChat) {\n    // In WeChat embeded browser, `requestAnimationFrame` and `setInterval`\n    // hang when sliding page (on touch event), which cause that zr does not\n    // refresh util user interaction finished, which is not expected.\n    // But `dispatchAction` may be called too frequently when pan on touch\n    // screen, which impacts performance if do not throttle them.\n    this._throttledZrFlush();\n  }\n\n  flushPendingActions.call(this, opt.silent);\n  triggerUpdatedEvent.call(this, opt.silent);\n};\n\nfunction doDispatchAction(payload, silent) {\n  var payloadType = payload.type;\n  var escapeConnect = payload.escapeConnect;\n  var actionWrap = actions[payloadType];\n  var actionInfo = actionWrap.actionInfo;\n  var cptType = (actionInfo.update || 'update').split(':');\n  var updateMethod = cptType.pop();\n  cptType = cptType[0] != null && parseClassType(cptType[0]);\n  this[IN_MAIN_PROCESS] = true;\n  var payloads = [payload];\n  var batched = false; // Batch action\n\n  if (payload.batch) {\n    batched = true;\n    payloads = zrUtil.map(payload.batch, function (item) {\n      item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n      item.batch = null;\n      return item;\n    });\n  }\n\n  var eventObjBatch = [];\n  var eventObj;\n  var isHighDown = payloadType === 'highlight' || payloadType === 'downplay';\n  each(payloads, function (batchItem) {\n    // Action can specify the event by return it.\n    eventObj = actionWrap.action(batchItem, this._model, this._api); // Emit event outside\n\n    eventObj = eventObj || zrUtil.extend({}, batchItem); // Convert type to eventType\n\n    eventObj.type = actionInfo.event || eventObj.type;\n    eventObjBatch.push(eventObj); // light update does not perform data process, layout and visual.\n\n    if (isHighDown) {\n      // method, payload, mainType, subType\n      updateDirectly(this, updateMethod, batchItem, 'series');\n    } else if (cptType) {\n      updateDirectly(this, updateMethod, batchItem, cptType.main, cptType.sub);\n    }\n  }, this);\n\n  if (updateMethod !== 'none' && !isHighDown && !cptType) {\n    // Still dirty\n    if (this[OPTION_UPDATED]) {\n      // FIXME Pass payload ?\n      prepare(this);\n      updateMethods.update.call(this, payload);\n      this[OPTION_UPDATED] = false;\n    } else {\n      updateMethods[updateMethod].call(this, payload);\n    }\n  } // Follow the rule of action batch\n\n\n  if (batched) {\n    eventObj = {\n      type: actionInfo.event || payloadType,\n      escapeConnect: escapeConnect,\n      batch: eventObjBatch\n    };\n  } else {\n    eventObj = eventObjBatch[0];\n  }\n\n  this[IN_MAIN_PROCESS] = false;\n  !silent && this._messageCenter.trigger(eventObj.type, eventObj);\n}\n\nfunction flushPendingActions(silent) {\n  var pendingActions = this._pendingActions;\n\n  while (pendingActions.length) {\n    var payload = pendingActions.shift();\n    doDispatchAction.call(this, payload, silent);\n  }\n}\n\nfunction triggerUpdatedEvent(silent) {\n  !silent && this.trigger('updated');\n}\n/**\n * Event `rendered` is triggered when zr\n * rendered. It is useful for realtime\n * snapshot (reflect animation).\n *\n * Event `finished` is triggered when:\n * (1) zrender rendering finished.\n * (2) initial animation finished.\n * (3) progressive rendering finished.\n * (4) no pending action.\n * (5) no delayed setOption needs to be processed.\n */\n\n\nfunction bindRenderedEvent(zr, ecIns) {\n  zr.on('rendered', function () {\n    ecIns.trigger('rendered'); // The `finished` event should not be triggered repeatly,\n    // so it should only be triggered when rendering indeed happend\n    // in zrender. (Consider the case that dipatchAction is keep\n    // triggering when mouse move).\n\n    if ( // Although zr is dirty if initial animation is not finished\n    // and this checking is called on frame, we also check\n    // animation finished for robustness.\n    zr.animation.isFinished() && !ecIns[OPTION_UPDATED] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n      ecIns.trigger('finished');\n    }\n  });\n}\n/**\n * @param {Object} params\n * @param {number} params.seriesIndex\n * @param {Array|TypedArray} params.data\n */\n\n\nechartsProto.appendData = function (params) {\n  var seriesIndex = params.seriesIndex;\n  var ecModel = this.getModel();\n  var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n  seriesModel.appendData(params); // Note: `appendData` does not support that update extent of coordinate\n  // system, util some scenario require that. In the expected usage of\n  // `appendData`, the initial extent of coordinate system should better\n  // be fixed by axis `min`/`max` setting or initial data, otherwise if\n  // the extent changed while `appendData`, the location of the painted\n  // graphic elements have to be changed, which make the usage of\n  // `appendData` meaningless.\n\n  this._scheduler.unfinished = true;\n};\n/**\n * Register event\n * @method\n */\n\n\nechartsProto.on = createRegisterEventWithLowercaseName('on');\nechartsProto.off = createRegisterEventWithLowercaseName('off');\nechartsProto.one = createRegisterEventWithLowercaseName('one');\n/**\n * Prepare view instances of charts and components\n * @param  {module:echarts/model/Global} ecModel\n * @private\n */\n\nfunction prepareView(ecIns, type, ecModel, scheduler) {\n  var isComponent = type === 'component';\n  var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n  var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n  var zr = ecIns._zr;\n  var api = ecIns._api;\n\n  for (var i = 0; i < viewList.length; i++) {\n    viewList[i].__alive = false;\n  }\n\n  isComponent ? ecModel.eachComponent(function (componentType, model) {\n    componentType !== 'series' && doPrepare(model);\n  }) : ecModel.eachSeries(doPrepare);\n\n  function doPrepare(model) {\n    // Consider: id same and type changed.\n    var viewId = '_ec_' + model.id + '_' + model.type;\n    var view = viewMap[viewId];\n\n    if (!view) {\n      var classType = parseClassType(model.type);\n      var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n      view = new Clazz();\n      view.init(ecModel, api);\n      viewMap[viewId] = view;\n      viewList.push(view);\n      zr.add(view.group);\n    }\n\n    model.__viewId = view.__id = viewId;\n    view.__alive = true;\n    view.__model = model;\n    view.group.__ecComponentInfo = {\n      mainType: model.mainType,\n      index: model.componentIndex\n    };\n    !isComponent && scheduler.prepareView(view, model, ecModel, api);\n  }\n\n  for (var i = 0; i < viewList.length;) {\n    var view = viewList[i];\n\n    if (!view.__alive) {\n      !isComponent && view.renderTask.dispose();\n      zr.remove(view.group);\n      view.dispose(ecModel, api);\n      viewList.splice(i, 1);\n      delete viewMap[view.__id];\n      view.__id = view.group.__ecComponentInfo = null;\n    } else {\n      i++;\n    }\n  }\n} // /**\n//  * Encode visual infomation from data after data processing\n//  *\n//  * @param {module:echarts/model/Global} ecModel\n//  * @param {object} layout\n//  * @param {boolean} [layoutFilter] `true`: only layout,\n//  *                                 `false`: only not layout,\n//  *                                 `null`/`undefined`: all.\n//  * @param {string} taskBaseTag\n//  * @private\n//  */\n// function startVisualEncoding(ecIns, ecModel, api, payload, layoutFilter) {\n//     each(visualFuncs, function (visual, index) {\n//         var isLayout = visual.isLayout;\n//         if (layoutFilter == null\n//             || (layoutFilter === false && !isLayout)\n//             || (layoutFilter === true && isLayout)\n//         ) {\n//             visual.func(ecModel, api, payload);\n//         }\n//     });\n// }\n\n\nfunction clearColorPalette(ecModel) {\n  ecModel.clearColorPalette();\n  ecModel.eachSeries(function (seriesModel) {\n    seriesModel.clearColorPalette();\n  });\n}\n\nfunction render(ecIns, ecModel, api, payload) {\n  renderComponents(ecIns, ecModel, api, payload);\n  each(ecIns._chartsViews, function (chart) {\n    chart.__alive = false;\n  });\n  renderSeries(ecIns, ecModel, api, payload); // Remove groups of unrendered charts\n\n  each(ecIns._chartsViews, function (chart) {\n    if (!chart.__alive) {\n      chart.remove(ecModel, api);\n    }\n  });\n}\n\nfunction renderComponents(ecIns, ecModel, api, payload, dirtyList) {\n  each(dirtyList || ecIns._componentsViews, function (componentView) {\n    var componentModel = componentView.__model;\n    componentView.render(componentModel, ecModel, api, payload);\n    updateZ(componentModel, componentView);\n  });\n}\n/**\n * Render each chart and component\n * @private\n */\n\n\nfunction renderSeries(ecIns, ecModel, api, payload, dirtyMap) {\n  // Render all charts\n  var scheduler = ecIns._scheduler;\n  var unfinished;\n  ecModel.eachSeries(function (seriesModel) {\n    var chartView = ecIns._chartsMap[seriesModel.__viewId];\n    chartView.__alive = true;\n    var renderTask = chartView.renderTask;\n    scheduler.updatePayload(renderTask, payload);\n\n    if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n      renderTask.dirty();\n    }\n\n    unfinished |= renderTask.perform(scheduler.getPerformArgs(renderTask));\n    chartView.group.silent = !!seriesModel.get('silent');\n    updateZ(seriesModel, chartView);\n    updateBlend(seriesModel, chartView);\n  });\n  scheduler.unfinished |= unfinished; // If use hover layer\n\n  updateHoverLayerStatus(ecIns._zr, ecModel); // Add aria\n\n  aria(ecIns._zr.dom, ecModel);\n}\n\nfunction performPostUpdateFuncs(ecModel, api) {\n  each(postUpdateFuncs, function (func) {\n    func(ecModel, api);\n  });\n}\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n/**\n * @private\n */\n\nechartsProto._initEvents = function () {\n  each(MOUSE_EVENT_NAMES, function (eveName) {\n    this._zr.on(eveName, function (e) {\n      var ecModel = this.getModel();\n      var el = e.target;\n      var params; // no e.target when 'globalout'.\n\n      if (eveName === 'globalout') {\n        params = {};\n      } else if (el && el.dataIndex != null) {\n        var dataModel = el.dataModel || ecModel.getSeriesByIndex(el.seriesIndex);\n        params = dataModel && dataModel.getDataParams(el.dataIndex, el.dataType) || {};\n      } // If element has custom eventData of components\n      else if (el && el.eventData) {\n          params = zrUtil.extend({}, el.eventData);\n        }\n\n      if (params) {\n        params.event = e;\n        params.type = eveName;\n        this.trigger(eveName, params);\n      }\n    }, this);\n  }, this);\n  each(eventActionMap, function (actionType, eventType) {\n    this._messageCenter.on(eventType, function (event) {\n      this.trigger(eventType, event);\n    }, this);\n  }, this);\n};\n/**\n * @return {boolean}\n */\n\n\nechartsProto.isDisposed = function () {\n  return this._disposed;\n};\n/**\n * Clear\n */\n\n\nechartsProto.clear = function () {\n  this.setOption({\n    series: []\n  }, true);\n};\n/**\n * Dispose instance\n */\n\n\nechartsProto.dispose = function () {\n  if (this._disposed) {\n    return;\n  }\n\n  this._disposed = true;\n  modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n  var api = this._api;\n  var ecModel = this._model;\n  each(this._componentsViews, function (component) {\n    component.dispose(ecModel, api);\n  });\n  each(this._chartsViews, function (chart) {\n    chart.dispose(ecModel, api);\n  }); // Dispose after all views disposed\n\n  this._zr.dispose();\n\n  delete instances[this.id];\n};\n\nzrUtil.mixin(ECharts, Eventful);\n\nfunction updateHoverLayerStatus(zr, ecModel) {\n  var storage = zr.storage;\n  var elCount = 0;\n  storage.traverse(function (el) {\n    if (!el.isGroup) {\n      elCount++;\n    }\n  });\n\n  if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\n    storage.traverse(function (el) {\n      if (!el.isGroup) {\n        // Don't switch back.\n        el.useHoverLayer = true;\n      }\n    });\n  }\n}\n/**\n * Update chart progressive and blend.\n * @param {module:echarts/model/Series|module:echarts/model/Component} model\n * @param {module:echarts/view/Component|module:echarts/view/Chart} view\n */\n\n\nfunction updateBlend(seriesModel, chartView) {\n  var blendMode = seriesModel.get('blendMode') || null;\n  chartView.group.traverse(function (el) {\n    // FIXME marker and other components\n    if (!el.isGroup) {\n      // Only set if blendMode is changed. In case element is incremental and don't wan't to rerender.\n      if (el.style.blend !== blendMode) {\n        el.setStyle('blend', blendMode);\n      }\n    }\n\n    if (el.eachPendingDisplayable) {\n      el.eachPendingDisplayable(function (displayable) {\n        displayable.setStyle('blend', blendMode);\n      });\n    }\n  });\n}\n/**\n * @param {module:echarts/model/Series|module:echarts/model/Component} model\n * @param {module:echarts/view/Component|module:echarts/view/Chart} view\n */\n\n\nfunction updateZ(model, view) {\n  var z = model.get('z');\n  var zlevel = model.get('zlevel'); // Set z and zlevel\n\n  view.group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n    }\n  });\n}\n\nfunction createExtensionAPI(ecInstance) {\n  var coordSysMgr = ecInstance._coordSysMgr;\n  return zrUtil.extend(new ExtensionAPI(ecInstance), {\n    // Inject methods\n    getCoordinateSystems: zrUtil.bind(coordSysMgr.getCoordinateSystems, coordSysMgr),\n    getComponentByElement: function (el) {\n      while (el) {\n        var modelInfo = el.__ecComponentInfo;\n\n        if (modelInfo != null) {\n          return ecInstance._model.getComponent(modelInfo.mainType, modelInfo.index);\n        }\n\n        el = el.parent;\n      }\n    }\n  });\n}\n/**\n * @type {Object} key: actionType.\n * @inner\n */\n\n\nvar actions = {};\n/**\n * Map eventType to actionType\n * @type {Object}\n */\n\nvar eventActionMap = {};\n/**\n * Data processor functions of each stage\n * @type {Array.<Object.<string, Function>>}\n * @inner\n */\n\nvar dataProcessorFuncs = [];\n/**\n * @type {Array.<Function>}\n * @inner\n */\n\nvar optionPreprocessorFuncs = [];\n/**\n * @type {Array.<Function>}\n * @inner\n */\n\nvar postUpdateFuncs = [];\n/**\n * Visual encoding functions of each stage\n * @type {Array.<Object.<string, Function>>}\n */\n\nvar visualFuncs = [];\n/**\n * Theme storage\n * @type {Object.<key, Object>}\n */\n\nvar themeStorage = {};\n/**\n * Loading effects\n */\n\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = new Date() - 0;\nvar groupIdBase = new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nvar mapDataStores = {};\n\nfunction enableConnect(chart) {\n  var STATUS_PENDING = 0;\n  var STATUS_UPDATING = 1;\n  var STATUS_UPDATED = 2;\n  var STATUS_KEY = '__connectUpdateStatus';\n\n  function updateConnectedChartsStatus(charts, status) {\n    for (var i = 0; i < charts.length; i++) {\n      var otherChart = charts[i];\n      otherChart[STATUS_KEY] = status;\n    }\n  }\n\n  each(eventActionMap, function (actionType, eventType) {\n    chart._messageCenter.on(eventType, function (event) {\n      if (connectedGroups[chart.group] && chart[STATUS_KEY] !== STATUS_PENDING) {\n        if (event && event.escapeConnect) {\n          return;\n        }\n\n        var action = chart.makeActionFromEvent(event);\n        var otherCharts = [];\n        each(instances, function (otherChart) {\n          if (otherChart !== chart && otherChart.group === chart.group) {\n            otherCharts.push(otherChart);\n          }\n        });\n        updateConnectedChartsStatus(otherCharts, STATUS_PENDING);\n        each(otherCharts, function (otherChart) {\n          if (otherChart[STATUS_KEY] !== STATUS_UPDATING) {\n            otherChart.dispatchAction(action);\n          }\n        });\n        updateConnectedChartsStatus(otherCharts, STATUS_UPDATED);\n      }\n    });\n  });\n}\n/**\n * @param {HTMLElement} dom\n * @param {Object} [theme]\n * @param {Object} opts\n * @param {number} [opts.devicePixelRatio] Use window.devicePixelRatio by default\n * @param {string} [opts.renderer] Currently only 'canvas' is supported.\n * @param {number} [opts.width] Use clientWidth of the input `dom` by default.\n *                              Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Use clientHeight of the input `dom` by default.\n *                               Can be 'auto' (the same as null/undefined)\n */\n\n\nfunction init(dom, theme, opts) {\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    return existInstance;\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  return chart;\n}\n/**\n * @return {string|Array.<module:echarts~ECharts>} groupId\n */\n\n\nfunction connect(groupId) {\n  // Is array of charts\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null; // If any chart has group\n\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\n/**\n * @DEPRECATED\n * @return {string} groupId\n */\n\n\nfunction disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\n/**\n * @return {string} groupId\n */\n\n\nvar disconnect = disConnect;\n/**\n * Dispose a chart instance\n * @param  {module:echarts~ECharts|HTMLDomElement|string} chart\n */\n\nfunction dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    // Try to treat as dom\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\n/**\n * @param  {HTMLElement} dom\n * @return {echarts~ECharts}\n */\n\n\nfunction getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\n/**\n * @param {string} key\n * @return {echarts~ECharts}\n */\n\n\nfunction getInstanceById(key) {\n  return instances[key];\n}\n/**\n * Register theme\n */\n\n\nfunction registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\n/**\n * Register option preprocessor\n * @param {Function} preprocessorFunc\n */\n\n\nfunction registerPreprocessor(preprocessorFunc) {\n  optionPreprocessorFuncs.push(preprocessorFunc);\n}\n/**\n * @param {number} [priority=1000]\n * @param {Object|Function} processor\n */\n\n\nfunction registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_FILTER);\n}\n/**\n * Register postUpdater\n * @param {Function} postUpdateFunc\n */\n\n\nfunction registerPostUpdate(postUpdateFunc) {\n  postUpdateFuncs.push(postUpdateFunc);\n}\n/**\n * Usage:\n * registerAction('someAction', 'someEvent', function () { ... });\n * registerAction('someAction', function () { ... });\n * registerAction(\n *     {type: 'someAction', event: 'someEvent', update: 'updateView'},\n *     function () { ... }\n * );\n *\n * @param {(string|Object)} actionInfo\n * @param {string} actionInfo.type\n * @param {string} [actionInfo.event]\n * @param {string} [actionInfo.update]\n * @param {string} [eventName]\n * @param {Function} action\n */\n\n\nfunction registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0]; // Event name is all lowercase\n\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event; // Validate action type and event name.\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\n/**\n * @param {string} type\n * @param {*} CoordinateSystem\n */\n\n\nfunction registerCoordinateSystem(type, CoordinateSystem) {\n  CoordinateSystemManager.register(type, CoordinateSystem);\n}\n/**\n * Get dimensions of specified coordinate system.\n * @param {string} type\n * @return {Array.<string|Object>}\n */\n\n\nfunction getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\n/**\n * Layout is a special stage of visual encoding\n * Most visual encoding like color are common for different chart\n * But each chart has it's own layout algorithm\n *\n * @param {number} [priority=1000]\n * @param {Function} layoutTask\n */\n\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n/**\n * @param {number} [priority=3000]\n * @param {module:echarts/stream/Task} visualTask\n */\n\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n/**\n * @param {Object|Function} fn: {seriesType, createOnAllSeries, performRawSeries, reset}\n */\n\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n  return stageHandler;\n}\n/**\n * @param {string} name\n */\n\n\nfunction registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendComponentModel(opts\n/*, superClass*/\n) {\n  // var Clazz = ComponentModel;\n  // if (superClass) {\n  //     var classType = parseClassType(superClass);\n  //     Clazz = ComponentModel.getClass(classType.main, classType.sub, true);\n  // }\n  return ComponentModel.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendComponentView(opts\n/*, superClass*/\n) {\n  // var Clazz = ComponentView;\n  // if (superClass) {\n  //     var classType = parseClassType(superClass);\n  //     Clazz = ComponentView.getClass(classType.main, classType.sub, true);\n  // }\n  return ComponentView.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendSeriesModel(opts\n/*, superClass*/\n) {\n  // var Clazz = SeriesModel;\n  // if (superClass) {\n  //     superClass = 'series.' + superClass.replace('series.', '');\n  //     var classType = parseClassType(superClass);\n  //     Clazz = ComponentModel.getClass(classType.main, classType.sub, true);\n  // }\n  return SeriesModel.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendChartView(opts\n/*, superClass*/\n) {\n  // var Clazz = ChartView;\n  // if (superClass) {\n  //     superClass = superClass.replace('series.', '');\n  //     var classType = parseClassType(superClass);\n  //     Clazz = ChartView.getClass(classType.main, true);\n  // }\n  return ChartView.extend(opts);\n}\n/**\n * ZRender need a canvas context to do measureText.\n * But in node environment canvas may be created by node-canvas.\n * So we need to specify how to create a canvas instead of using document.createElement('canvas')\n *\n * Be careful of using it in the browser.\n *\n * @param {Function} creator\n * @example\n *     var Canvas = require('canvas');\n *     var echarts = require('echarts');\n *     echarts.setCanvasCreator(function () {\n *         // Small size is enough.\n *         return new Canvas(32, 32);\n *     });\n */\n\n\nfunction setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\n/**\n * @param {string} mapName\n * @param {Object|string} geoJson\n * @param {Object} [specialAreas]\n *\n * @example\n *     $.get('USA.json', function (geoJson) {\n *         echarts.registerMap('USA', geoJson);\n *         // Or\n *         echarts.registerMap('USA', {\n *             geoJson: geoJson,\n *             specialAreas: {}\n *         })\n *     });\n */\n\n\nfunction registerMap(mapName, geoJson, specialAreas) {\n  if (geoJson.geoJson && !geoJson.features) {\n    specialAreas = geoJson.specialAreas;\n    geoJson = geoJson.geoJson;\n  }\n\n  if (typeof geoJson === 'string') {\n    geoJson = typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(geoJson) : new Function('return (' + geoJson + ');')();\n  }\n\n  mapDataStores[mapName] = {\n    geoJson: geoJson,\n    specialAreas: specialAreas\n  };\n}\n/**\n * @param {string} mapName\n * @return {Object}\n */\n\n\nfunction getMap(mapName) {\n  return mapDataStores[mapName];\n}\n\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesColor);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_STATISTIC, dataStack);\nregisterLoading('default', loadingDefault); // Default actions\n\nregisterAction({\n  type: 'highlight',\n  event: 'highlight',\n  update: 'highlight'\n}, zrUtil.noop);\nregisterAction({\n  type: 'downplay',\n  event: 'downplay',\n  update: 'downplay'\n}, zrUtil.noop); // Default theme\n\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme); // For backward compatibility, where the namespace `dataTool` will\n// be mounted on `echarts` is the extension `dataTool` is imported.\n\nvar dataTool = {};\nexports.version = version;\nexports.dependencies = dependencies;\nexports.PRIORITY = PRIORITY;\nexports.init = init;\nexports.connect = connect;\nexports.disConnect = disConnect;\nexports.disconnect = disconnect;\nexports.dispose = dispose;\nexports.getInstanceByDom = getInstanceByDom;\nexports.getInstanceById = getInstanceById;\nexports.registerTheme = registerTheme;\nexports.registerPreprocessor = registerPreprocessor;\nexports.registerProcessor = registerProcessor;\nexports.registerPostUpdate = registerPostUpdate;\nexports.registerAction = registerAction;\nexports.registerCoordinateSystem = registerCoordinateSystem;\nexports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\nexports.registerLayout = registerLayout;\nexports.registerVisual = registerVisual;\nexports.registerLoading = registerLoading;\nexports.extendComponentModel = extendComponentModel;\nexports.extendComponentView = extendComponentView;\nexports.extendSeriesModel = extendSeriesModel;\nexports.extendChartView = extendChartView;\nexports.setCanvasCreator = setCanvasCreator;\nexports.registerMap = registerMap;\nexports.getMap = getMap;\nexports.dataTool = dataTool;\nvar ___ec_export = require(\"./export\");\n(function () {\n    for (var key in ___ec_export) {\n        if (___ec_export.hasOwnProperty(key)) {\n            exports[key] = ___ec_export[key];\n        }\n    }\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/echarts.js\n// module id = /MtV\n// module chunks = 0","module.exports = require('./src/normalizeWheel.js');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_normalize-wheel@1.0.1@normalize-wheel/index.js\n// module id = /Wj5\n// module chunks = 0","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n    return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n    var clone = optionsArgument && optionsArgument.clone === true;\n    return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n    var destination = target.slice();\n    source.forEach(function(e, i) {\n        if (typeof destination[i] === 'undefined') {\n            destination[i] = cloneIfNecessary(e, optionsArgument);\n        } else if (isMergeableObject(e)) {\n            destination[i] = deepmerge(target[i], e, optionsArgument);\n        } else if (target.indexOf(e) === -1) {\n            destination.push(cloneIfNecessary(e, optionsArgument));\n        }\n    });\n    return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n    var destination = {};\n    if (isMergeableObject(target)) {\n        Object.keys(target).forEach(function(key) {\n            destination[key] = cloneIfNecessary(target[key], optionsArgument);\n        });\n    }\n    Object.keys(source).forEach(function(key) {\n        if (!isMergeableObject(source[key]) || !target[key]) {\n            destination[key] = cloneIfNecessary(source[key], optionsArgument);\n        } else {\n            destination[key] = deepmerge(target[key], source[key], optionsArgument);\n        }\n    });\n    return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n    var sourceIsArray = Array.isArray(source);\n    var targetIsArray = Array.isArray(target);\n    var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n    var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n    if (!sourceAndTargetTypesMatch) {\n        return cloneIfNecessary(source, optionsArgument)\n    } else if (sourceIsArray) {\n        var arrayMerge = options.arrayMerge || defaultArrayMerge;\n        return arrayMerge(target, source, optionsArgument)\n    } else {\n        return mergeObject(target, source, optionsArgument)\n    }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n    if (!Array.isArray(array) || array.length < 2) {\n        throw new Error('first argument should be an array with at least two elements')\n    }\n\n    // we are sure there are at least 2 values, so it is safe to have no initial value\n    return array.reduce(function(prev, next) {\n        return deepmerge(prev, next, optionsArgument)\n    })\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_deepmerge@1.5.2@deepmerge/dist/cjs.js\n// module id = /ZBN\n// module chunks = 0","require(\"./toolbox/ToolboxModel\");\n\nrequire(\"./toolbox/ToolboxView\");\n\nrequire(\"./toolbox/feature/SaveAsImage\");\n\nrequire(\"./toolbox/feature/MagicType\");\n\nrequire(\"./toolbox/feature/DataView\");\n\nrequire(\"./toolbox/feature/DataZoom\");\n\nrequire(\"./toolbox/feature/Restore\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox.js\n// module id = /eGH\n// module chunks = 0","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/cancel/CancelToken.js\n// module id = /egZ\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gpo.js\n// module id = /gXo\n// module chunks = 0","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/number/is-nan.js\n// module id = /qLD\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_to-iobject.js\n// module id = /r4/\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapping = require(\"./VisualMapping\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual solution, for consistent option specification.\n */\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n  if (obj) {\n    for (var name in obj) {\n      if (obj.hasOwnProperty(name)) {\n        return true;\n      }\n    }\n  }\n}\n/**\n * @param {Object} option\n * @param {Array.<string>} stateList\n * @param {Function} [supplementVisualOption]\n * @return {Object} visualMappings <state, <visualType, module:echarts/visual/VisualMapping>>\n */\n\n\nfunction createVisualMappings(option, stateList, supplementVisualOption) {\n  var visualMappings = {};\n  each(stateList, function (state) {\n    var mappings = visualMappings[state] = createMappings();\n    each(option[state], function (visualData, visualType) {\n      if (!VisualMapping.isValidType(visualType)) {\n        return;\n      }\n\n      var mappingOption = {\n        type: visualType,\n        visual: visualData\n      };\n      supplementVisualOption && supplementVisualOption(mappingOption, state);\n      mappings[visualType] = new VisualMapping(mappingOption); // Prepare a alpha for opacity, for some case that opacity\n      // is not supported, such as rendering using gradient color.\n\n      if (visualType === 'opacity') {\n        mappingOption = zrUtil.clone(mappingOption);\n        mappingOption.type = 'colorAlpha';\n        mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n      }\n    });\n  });\n  return visualMappings;\n\n  function createMappings() {\n    var Creater = function () {}; // Make sure hidden fields will not be visited by\n    // object iteration (with hasOwnProperty checking).\n\n\n    Creater.prototype.__hidden = Creater.prototype;\n    var obj = new Creater();\n    return obj;\n  }\n}\n/**\n * @param {Object} thisOption\n * @param {Object} newOption\n * @param {Array.<string>} keys\n */\n\n\nfunction replaceVisualOption(thisOption, newOption, keys) {\n  // Visual attributes merge is not supported, otherwise it\n  // brings overcomplicated merge logic. See #2853. So if\n  // newOption has anyone of these keys, all of these keys\n  // will be reset. Otherwise, all keys remain.\n  var has;\n  zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      has = true;\n    }\n  });\n  has && zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      thisOption[key] = zrUtil.clone(newOption[key]);\n    } else {\n      delete thisOption[key];\n    }\n  });\n}\n/**\n * @param {Array.<string>} stateList\n * @param {Object} visualMappings <state, Object.<visualType, module:echarts/visual/VisualMapping>>\n * @param {module:echarts/data/List} list\n * @param {Function} getValueState param: valueOrIndex, return: state.\n * @param {object} [scope] Scope for getValueState\n * @param {string} [dimension] Concrete dimension, if used.\n */\n// ???! handle brush?\n\n\nfunction applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  var dataIndex;\n\n  function getVisual(key) {\n    return data.getItemVisual(dataIndex, key);\n  }\n\n  function setVisual(key, value) {\n    data.setItemVisual(dataIndex, key, value);\n  }\n\n  if (dimension == null) {\n    data.each(eachItem);\n  } else {\n    data.each([dimension], eachItem);\n  }\n\n  function eachItem(valueOrIndex, index) {\n    dataIndex = dimension == null ? valueOrIndex : index;\n    var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n\n    if (rawDataItem && rawDataItem.visualMap === false) {\n      return;\n    }\n\n    var valueState = getValueState.call(scope, valueOrIndex);\n    var mappings = visualMappings[valueState];\n    var visualTypes = visualTypesMap[valueState];\n\n    for (var i = 0, len = visualTypes.length; i < len; i++) {\n      var type = visualTypes[i];\n      mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n    }\n  }\n}\n/**\n * @param {module:echarts/data/List} data\n * @param {Array.<string>} stateList\n * @param {Object} visualMappings <state, Object.<visualType, module:echarts/visual/VisualMapping>>\n * @param {Function} getValueState param: valueOrIndex, return: state.\n * @param {number} [dim] dimension or dimension index.\n */\n\n\nfunction incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n\n  function progress(params, data) {\n    if (dim != null) {\n      dim = data.getDimension(dim);\n    }\n\n    function getVisual(key) {\n      return data.getItemVisual(dataIndex, key);\n    }\n\n    function setVisual(key, value) {\n      data.setItemVisual(dataIndex, key, value);\n    }\n\n    var dataIndex;\n\n    while ((dataIndex = params.next()) != null) {\n      var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n\n      if (rawDataItem && rawDataItem.visualMap === false) {\n        return;\n      }\n\n      var value = dim != null ? data.get(dim, dataIndex, true) : dataIndex;\n      var valueState = getValueState(value);\n      var mappings = visualMappings[valueState];\n      var visualTypes = visualTypesMap[valueState];\n\n      for (var i = 0, len = visualTypes.length; i < len; i++) {\n        var type = visualTypes[i];\n        mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n      }\n    }\n  }\n\n  return {\n    progress: progress\n  };\n}\n\nexports.createVisualMappings = createVisualMappings;\nexports.replaceVisualOption = replaceVisualOption;\nexports.applyVisual = applyVisual;\nexports.incrementalApplyVisual = incrementalApplyVisual;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/visual/visualSolution.js\n// module id = 01Ub\n// module chunks = 0","var SingleAxis = require(\"./SingleAxis\");\n\nvar axisHelper = require(\"../axisHelper\");\n\nvar _layout = require(\"../../util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Single coordinates system.\n */\n\n/**\n * Create a single coordinates system.\n *\n * @param {module:echarts/coord/single/AxisModel} axisModel\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\nfunction Single(axisModel, ecModel, api) {\n  /**\n   * @type {string}\n   * @readOnly\n   */\n  this.dimension = 'single';\n  /**\n   * Add it just for draw tooltip.\n   *\n   * @type {Array.<string>}\n   * @readOnly\n   */\n\n  this.dimensions = ['single'];\n  /**\n   * @private\n   * @type {module:echarts/coord/single/SingleAxis}.\n   */\n\n  this._axis = null;\n  /**\n   * @private\n   * @type {module:zrender/core/BoundingRect}\n   */\n\n  this._rect;\n\n  this._init(axisModel, ecModel, api);\n  /**\n   * @type {module:echarts/coord/single/AxisModel}\n   */\n\n\n  this.model = axisModel;\n}\n\nSingle.prototype = {\n  type: 'singleAxis',\n  axisPointerEnabled: true,\n  constructor: Single,\n\n  /**\n   * Initialize single coordinate system.\n   *\n   * @param  {module:echarts/coord/single/AxisModel} axisModel\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   * @private\n   */\n  _init: function (axisModel, ecModel, api) {\n    var dim = this.dimension;\n    var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n    var isCategory = axis.type === 'category';\n    axis.onBand = isCategory && axisModel.get('boundaryGap');\n    axis.inverse = axisModel.get('inverse');\n    axis.orient = axisModel.get('orient');\n    axisModel.axis = axis;\n    axis.model = axisModel;\n    axis.coordinateSystem = this;\n    this._axis = axis;\n  },\n\n  /**\n   * Update axis scale after data processed\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   */\n  update: function (ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.coordinateSystem === this) {\n        var data = seriesModel.getData();\n        each(data.mapDimension(this.dimension, true), function (dim) {\n          this._axis.scale.unionExtentFromData(data, dim);\n        }, this);\n        axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n      }\n    }, this);\n  },\n\n  /**\n   * Resize the single coordinate system.\n   *\n   * @param  {module:echarts/coord/single/AxisModel} axisModel\n   * @param  {module:echarts/ExtensionAPI} api\n   */\n  resize: function (axisModel, api) {\n    this._rect = getLayoutRect({\n      left: axisModel.get('left'),\n      top: axisModel.get('top'),\n      right: axisModel.get('right'),\n      bottom: axisModel.get('bottom'),\n      width: axisModel.get('width'),\n      height: axisModel.get('height')\n    }, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._adjustAxis();\n  },\n\n  /**\n   * @return {module:zrender/core/BoundingRect}\n   */\n  getRect: function () {\n    return this._rect;\n  },\n\n  /**\n   * @private\n   */\n  _adjustAxis: function () {\n    var rect = this._rect;\n    var axis = this._axis;\n    var isHorizontal = axis.isHorizontal();\n    var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n    var idx = axis.reverse ? 1 : 0;\n    axis.setExtent(extent[idx], extent[1 - idx]);\n\n    this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n  },\n\n  /**\n   * @param  {module:echarts/coord/single/SingleAxis} axis\n   * @param  {number} coordBase\n   */\n  _updateAxisTransform: function (axis, coordBase) {\n    var axisExtent = axis.getExtent();\n    var extentSum = axisExtent[0] + axisExtent[1];\n    var isHorizontal = axis.isHorizontal();\n    axis.toGlobalCoord = isHorizontal ? function (coord) {\n      return coord + coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n    axis.toLocalCoord = isHorizontal ? function (coord) {\n      return coord - coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n  },\n\n  /**\n   * Get axis.\n   *\n   * @return {module:echarts/coord/single/SingleAxis}\n   */\n  getAxis: function () {\n    return this._axis;\n  },\n\n  /**\n   * Get axis, add it just for draw tooltip.\n   *\n   * @return {[type]} [description]\n   */\n  getBaseAxis: function () {\n    return this._axis;\n  },\n\n  /**\n   * @return {Array.<module:echarts/coord/Axis>}\n   */\n  getAxes: function () {\n    return [this._axis];\n  },\n\n  /**\n   * @return {Object} {baseAxes: [], otherAxes: []}\n   */\n  getTooltipAxes: function () {\n    return {\n      baseAxes: [this.getAxis()]\n    };\n  },\n\n  /**\n   * If contain point.\n   *\n   * @param  {Array.<number>} point\n   * @return {boolean}\n   */\n  containPoint: function (point) {\n    var rect = this.getRect();\n    var axis = this.getAxis();\n    var orient = axis.orient;\n\n    if (orient === 'horizontal') {\n      return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n    } else {\n      return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n    }\n  },\n\n  /**\n   * @param {Array.<number>} point\n   * @return {Array.<number>}\n   */\n  pointToData: function (point) {\n    var axis = this.getAxis();\n    return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n  },\n\n  /**\n   * Convert the series data to concrete point.\n   *\n   * @param  {number|Array.<number>} val\n   * @return {Array.<number>}\n   */\n  dataToPoint: function (val) {\n    var axis = this.getAxis();\n    var rect = this.getRect();\n    var pt = [];\n    var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n    if (val instanceof Array) {\n      val = val[0];\n    }\n\n    pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n    pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n    return pt;\n  }\n};\nvar _default = Single;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/single/Single.js\n// module id = 035p\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./lines/LinesSeries\");\n\nrequire(\"./lines/LinesView\");\n\nvar linesLayout = require(\"./lines/linesLayout\");\n\nvar linesVisual = require(\"./lines/linesVisual\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(linesLayout);\necharts.registerVisual(linesVisual);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/lines.js\n// module id = 0CF4\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar ChartView = require(\"../../view/Chart\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/model/Series} seriesModel\n * @param {boolean} hasAnimation\n * @inner\n */\nfunction updateDataSelected(uid, seriesModel, hasAnimation, api) {\n  var data = seriesModel.getData();\n  var dataIndex = this.dataIndex;\n  var name = data.getName(dataIndex);\n  var selectedOffset = seriesModel.get('selectedOffset');\n  api.dispatchAction({\n    type: 'pieToggleSelect',\n    from: uid,\n    name: name,\n    seriesId: seriesModel.id\n  });\n  data.each(function (idx) {\n    toggleItemSelected(data.getItemGraphicEl(idx), data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), selectedOffset, hasAnimation);\n  });\n}\n/**\n * @param {module:zrender/graphic/Sector} el\n * @param {Object} layout\n * @param {boolean} isSelected\n * @param {number} selectedOffset\n * @param {boolean} hasAnimation\n * @inner\n */\n\n\nfunction toggleItemSelected(el, layout, isSelected, selectedOffset, hasAnimation) {\n  var midAngle = (layout.startAngle + layout.endAngle) / 2;\n  var dx = Math.cos(midAngle);\n  var dy = Math.sin(midAngle);\n  var offset = isSelected ? selectedOffset : 0;\n  var position = [dx * offset, dy * offset];\n  hasAnimation // animateTo will stop revious animation like update transition\n  ? el.animate().when(200, {\n    position: position\n  }).start('bounceOut') : el.attr('position', position);\n}\n/**\n * Piece of pie including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\n\n\nfunction PiePiece(data, idx) {\n  graphic.Group.call(this);\n  var sector = new graphic.Sector({\n    z2: 2\n  });\n  var polyline = new graphic.Polyline();\n  var text = new graphic.Text();\n  this.add(sector);\n  this.add(polyline);\n  this.add(text);\n  this.updateData(data, idx, true); // Hover to change label and labelLine\n\n  function onEmphasis() {\n    polyline.ignore = polyline.hoverIgnore;\n    text.ignore = text.hoverIgnore;\n  }\n\n  function onNormal() {\n    polyline.ignore = polyline.normalIgnore;\n    text.ignore = text.normalIgnore;\n  }\n\n  this.on('emphasis', onEmphasis).on('normal', onNormal).on('mouseover', onEmphasis).on('mouseout', onNormal);\n}\n\nvar piePieceProto = PiePiece.prototype;\n\npiePieceProto.updateData = function (data, idx, firstCreate) {\n  var sector = this.childAt(0);\n  var seriesModel = data.hostModel;\n  var itemModel = data.getItemModel(idx);\n  var layout = data.getItemLayout(idx);\n  var sectorShape = zrUtil.extend({}, layout);\n  sectorShape.label = null;\n\n  if (firstCreate) {\n    sector.setShape(sectorShape);\n    var animationType = seriesModel.getShallow('animationType');\n\n    if (animationType === 'scale') {\n      sector.shape.r = layout.r0;\n      graphic.initProps(sector, {\n        shape: {\n          r: layout.r\n        }\n      }, seriesModel, idx);\n    } // Expansion\n    else {\n        sector.shape.endAngle = layout.startAngle;\n        graphic.updateProps(sector, {\n          shape: {\n            endAngle: layout.endAngle\n          }\n        }, seriesModel, idx);\n      }\n  } else {\n    graphic.updateProps(sector, {\n      shape: sectorShape\n    }, seriesModel, idx);\n  } // Update common style\n\n\n  var visualColor = data.getItemVisual(idx, 'color');\n  sector.useStyle(zrUtil.defaults({\n    lineJoin: 'bevel',\n    fill: visualColor\n  }, itemModel.getModel('itemStyle').getItemStyle()));\n  sector.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && sector.attr('cursor', cursorStyle); // Toggle selected\n\n  toggleItemSelected(this, data.getItemLayout(idx), seriesModel.isSelected(null, idx), seriesModel.get('selectedOffset'), seriesModel.get('animation'));\n\n  function onEmphasis() {\n    // Sector may has animation of updating data. Force to move to the last frame\n    // Or it may stopped on the wrong shape\n    sector.stopAnimation(true);\n    sector.animateTo({\n      shape: {\n        r: layout.r + seriesModel.get('hoverOffset')\n      }\n    }, 300, 'elasticOut');\n  }\n\n  function onNormal() {\n    sector.stopAnimation(true);\n    sector.animateTo({\n      shape: {\n        r: layout.r\n      }\n    }, 300, 'elasticOut');\n  }\n\n  sector.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n  if (itemModel.get('hoverAnimation') && seriesModel.isAnimationEnabled()) {\n    sector.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal);\n  }\n\n  this._updateLabel(data, idx);\n\n  graphic.setHoverStyle(this);\n};\n\npiePieceProto._updateLabel = function (data, idx) {\n  var labelLine = this.childAt(1);\n  var labelText = this.childAt(2);\n  var seriesModel = data.hostModel;\n  var itemModel = data.getItemModel(idx);\n  var layout = data.getItemLayout(idx);\n  var labelLayout = layout.label;\n  var visualColor = data.getItemVisual(idx, 'color');\n  graphic.updateProps(labelLine, {\n    shape: {\n      points: labelLayout.linePoints || [[labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y]]\n    }\n  }, seriesModel, idx);\n  graphic.updateProps(labelText, {\n    style: {\n      x: labelLayout.x,\n      y: labelLayout.y\n    }\n  }, seriesModel, idx);\n  labelText.attr({\n    rotation: labelLayout.rotation,\n    origin: [labelLayout.x, labelLayout.y],\n    z2: 10\n  });\n  var labelModel = itemModel.getModel('label');\n  var labelHoverModel = itemModel.getModel('emphasis.label');\n  var labelLineModel = itemModel.getModel('labelLine');\n  var labelLineHoverModel = itemModel.getModel('emphasis.labelLine');\n  var visualColor = data.getItemVisual(idx, 'color');\n  graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {\n    labelFetcher: data.hostModel,\n    labelDataIndex: idx,\n    defaultText: data.getName(idx),\n    autoColor: visualColor,\n    useInsideStyle: !!labelLayout.inside\n  }, {\n    textAlign: labelLayout.textAlign,\n    textVerticalAlign: labelLayout.verticalAlign,\n    opacity: data.getItemVisual(idx, 'opacity')\n  });\n  labelText.ignore = labelText.normalIgnore = !labelModel.get('show');\n  labelText.hoverIgnore = !labelHoverModel.get('show');\n  labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show');\n  labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color\n\n  labelLine.setStyle({\n    stroke: visualColor,\n    opacity: data.getItemVisual(idx, 'opacity')\n  });\n  labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());\n  labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();\n  var smooth = labelLineModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.4;\n  }\n\n  labelLine.setShape({\n    smooth: smooth\n  });\n};\n\nzrUtil.inherits(PiePiece, graphic.Group); // Pie view\n\nvar PieView = ChartView.extend({\n  type: 'pie',\n  init: function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  },\n  render: function (seriesModel, ecModel, api, payload) {\n    if (payload && payload.from === this.uid) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var hasAnimation = ecModel.get('animation');\n    var isFirstRender = !oldData;\n    var animationType = seriesModel.get('animationType');\n    var onSectorClick = zrUtil.curry(updateDataSelected, this.uid, seriesModel, hasAnimation, api);\n    var selectedMode = seriesModel.get('selectedMode');\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx); // Default expansion animation\n\n      if (isFirstRender && animationType !== 'scale') {\n        piePiece.eachChild(function (child) {\n          child.stopAnimation(true);\n        });\n      }\n\n      selectedMode && piePiece.on('click', onSectorClick);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx);\n      piePiece.off('click');\n      selectedMode && piePiece.on('click', onSectorClick);\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      group.remove(piePiece);\n    }).execute();\n\n    if (hasAnimation && isFirstRender && data.count() > 0 // Default expansion animation\n    && animationType !== 'scale') {\n      var shape = data.getItemLayout(0);\n      var r = Math.max(api.getWidth(), api.getHeight()) / 2;\n      var removeClipPath = zrUtil.bind(group.removeClipPath, group);\n      group.setClipPath(this._createClipPath(shape.cx, shape.cy, r, shape.startAngle, shape.clockwise, removeClipPath, seriesModel));\n    }\n\n    this._data = data;\n  },\n  dispose: function () {},\n  _createClipPath: function (cx, cy, r, startAngle, clockwise, cb, seriesModel) {\n    var clipPath = new graphic.Sector({\n      shape: {\n        cx: cx,\n        cy: cy,\n        r0: 0,\n        r: r,\n        startAngle: startAngle,\n        endAngle: startAngle,\n        clockwise: clockwise\n      }\n    });\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: startAngle + (clockwise ? 1 : -1) * Math.PI * 2\n      }\n    }, seriesModel, cb);\n    return clipPath;\n  },\n\n  /**\n   * @implement\n   */\n  containPoint: function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  }\n});\nvar _default = PieView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/pie/PieView.js\n// module id = 0F8Y\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./graph/GraphSeries\");\n\nrequire(\"./graph/GraphView\");\n\nrequire(\"./graph/graphAction\");\n\nvar categoryFilter = require(\"./graph/categoryFilter\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar categoryVisual = require(\"./graph/categoryVisual\");\n\nvar edgeVisual = require(\"./graph/edgeVisual\");\n\nvar simpleLayout = require(\"./graph/simpleLayout\");\n\nvar circularLayout = require(\"./graph/circularLayout\");\n\nvar forceLayout = require(\"./graph/forceLayout\");\n\nvar createView = require(\"./graph/createView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerProcessor(categoryFilter);\necharts.registerVisual(visualSymbol('graph', 'circle', null));\necharts.registerVisual(categoryVisual);\necharts.registerVisual(edgeVisual);\necharts.registerLayout(simpleLayout);\necharts.registerLayout(circularLayout);\necharts.registerLayout(forceLayout); // Graph view coordinate system\n\necharts.registerCoordinateSystem('graphView', {\n  create: createView\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph.js\n// module id = 0OTd\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar isObject = _util.isObject;\nvar each = _util.each;\nvar map = _util.map;\nvar indexOf = _util.indexOf;\nvar retrieve = _util.retrieve;\n\nvar _layout = require(\"../../util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\n\nvar _axisHelper = require(\"../../coord/axisHelper\");\n\nvar createScaleByModel = _axisHelper.createScaleByModel;\nvar ifAxisCrossZero = _axisHelper.ifAxisCrossZero;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\nvar estimateLabelUnionRect = _axisHelper.estimateLabelUnionRect;\n\nvar Cartesian2D = require(\"./Cartesian2D\");\n\nvar Axis2D = require(\"./Axis2D\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nrequire(\"./GridModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Grid is a region which contains at most 4 cartesian systems\n *\n * TODO Default cartesian\n */\n// Depends on GridModel, AxisModel, which performs preprocess.\n\n/**\n * Check if the axis is used in the specified grid\n * @inner\n */\nfunction isAxisUsedInTheGrid(axisModel, gridModel, ecModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction Grid(gridModel, ecModel, api) {\n  /**\n   * @type {Object.<string, module:echarts/coord/cartesian/Cartesian2D>}\n   * @private\n   */\n  this._coordsMap = {};\n  /**\n   * @type {Array.<module:echarts/coord/cartesian/Cartesian>}\n   * @private\n   */\n\n  this._coordsList = [];\n  /**\n   * @type {Object.<string, module:echarts/coord/cartesian/Axis2D>}\n   * @private\n   */\n\n  this._axesMap = {};\n  /**\n   * @type {Array.<module:echarts/coord/cartesian/Axis2D>}\n   * @private\n   */\n\n  this._axesList = [];\n\n  this._initCartesian(gridModel, ecModel, api);\n\n  this.model = gridModel;\n}\n\nvar gridProto = Grid.prototype;\ngridProto.type = 'grid';\ngridProto.axisPointerEnabled = true;\n\ngridProto.getRect = function () {\n  return this._rect;\n};\n\ngridProto.update = function (ecModel, api) {\n  var axesMap = this._axesMap;\n\n  this._updateScale(ecModel, this.model);\n\n  each(axesMap.x, function (xAxis) {\n    niceScaleExtent(xAxis.scale, xAxis.model);\n  });\n  each(axesMap.y, function (yAxis) {\n    niceScaleExtent(yAxis.scale, yAxis.model);\n  });\n  each(axesMap.x, function (xAxis) {\n    fixAxisOnZero(axesMap, 'y', xAxis);\n  });\n  each(axesMap.y, function (yAxis) {\n    fixAxisOnZero(axesMap, 'x', yAxis);\n  }); // Resize again if containLabel is enabled\n  // FIXME It may cause getting wrong grid size in data processing stage\n\n  this.resize(this.model, api);\n};\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis) {\n  axis.getAxesOnZeroOf = function () {\n    // TODO: onZero of multiple axes.\n    return otherAxis ? [otherAxis] : [];\n  }; // onZero can not be enabled in these two situations:\n  // 1. When any other axis is a category axis.\n  // 2. When no axis is cross 0 point.\n\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxis;\n  var axisModel = axis.model;\n  var onZero = axisModel.get('axisLine.onZero');\n  var onZeroAxisIndex = axisModel.get('axisLine.onZeroAxisIndex');\n\n  if (!onZero) {\n    return;\n  } // If target axis is specified.\n\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxis = otherAxes[onZeroAxisIndex];\n    }\n\n    return;\n  } // Find the first available other axis.\n\n\n  for (var idx in otherAxes) {\n    if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx])) {\n      otherAxis = otherAxes[idx];\n      break;\n    }\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n/**\n * Resize the grid\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\ngridProto.resize = function (gridModel, api, ignoreContainLabel) {\n  var gridRect = getLayoutRect(gridModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n  this._rect = gridRect;\n  var axesList = this._axesList;\n  adjustAxes(); // Minus label size\n\n  if (!ignoreContainLabel && gridModel.get('containLabel')) {\n    each(axesList, function (axis) {\n      if (!axis.model.get('axisLabel.inside')) {\n        var labelUnionRect = estimateLabelUnionRect(axis);\n\n        if (labelUnionRect) {\n          var dim = axis.isHorizontal() ? 'height' : 'width';\n          var margin = axis.model.get('axisLabel.margin');\n          gridRect[dim] -= labelUnionRect[dim] + margin;\n\n          if (axis.position === 'top') {\n            gridRect.y += labelUnionRect.height + margin;\n          } else if (axis.position === 'left') {\n            gridRect.x += labelUnionRect.width + margin;\n          }\n        }\n      }\n    });\n    adjustAxes();\n  }\n\n  function adjustAxes() {\n    each(axesList, function (axis) {\n      var isHorizontal = axis.isHorizontal();\n      var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n      var idx = axis.inverse ? 1 : 0;\n      axis.setExtent(extent[idx], extent[1 - idx]);\n      updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n    });\n  }\n};\n/**\n * @param {string} axisType\n * @param {number} [axisIndex]\n */\n\n\ngridProto.getAxis = function (axisType, axisIndex) {\n  var axesMapOnDim = this._axesMap[axisType];\n\n  if (axesMapOnDim != null) {\n    if (axisIndex == null) {\n      // Find first axis\n      for (var name in axesMapOnDim) {\n        if (axesMapOnDim.hasOwnProperty(name)) {\n          return axesMapOnDim[name];\n        }\n      }\n    }\n\n    return axesMapOnDim[axisIndex];\n  }\n};\n/**\n * @return {Array.<module:echarts/coord/Axis>}\n */\n\n\ngridProto.getAxes = function () {\n  return this._axesList.slice();\n};\n/**\n * Usage:\n *      grid.getCartesian(xAxisIndex, yAxisIndex);\n *      grid.getCartesian(xAxisIndex);\n *      grid.getCartesian(null, yAxisIndex);\n *      grid.getCartesian({xAxisIndex: ..., yAxisIndex: ...});\n *\n * @param {number|Object} [xAxisIndex]\n * @param {number} [yAxisIndex]\n */\n\n\ngridProto.getCartesian = function (xAxisIndex, yAxisIndex) {\n  if (xAxisIndex != null && yAxisIndex != null) {\n    var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n    return this._coordsMap[key];\n  }\n\n  if (isObject(xAxisIndex)) {\n    yAxisIndex = xAxisIndex.yAxisIndex;\n    xAxisIndex = xAxisIndex.xAxisIndex;\n  } // When only xAxisIndex or yAxisIndex given, find its first cartesian.\n\n\n  for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n    if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n      return coordList[i];\n    }\n  }\n};\n\ngridProto.getCartesians = function () {\n  return this._coordsList.slice();\n};\n/**\n * @implements\n * see {module:echarts/CoodinateSystem}\n */\n\n\ngridProto.convertToPixel = function (ecModel, finder, value) {\n  var target = this._findConvertTarget(ecModel, finder);\n\n  return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n};\n/**\n * @implements\n * see {module:echarts/CoodinateSystem}\n */\n\n\ngridProto.convertFromPixel = function (ecModel, finder, value) {\n  var target = this._findConvertTarget(ecModel, finder);\n\n  return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n};\n/**\n * @inner\n */\n\n\ngridProto._findConvertTarget = function (ecModel, finder) {\n  var seriesModel = finder.seriesModel;\n  var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis')[0];\n  var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis')[0];\n  var gridModel = finder.gridModel;\n  var coordsList = this._coordsList;\n  var cartesian;\n  var axis;\n\n  if (seriesModel) {\n    cartesian = seriesModel.coordinateSystem;\n    indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n  } else if (xAxisModel && yAxisModel) {\n    cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n  } else if (xAxisModel) {\n    axis = this.getAxis('x', xAxisModel.componentIndex);\n  } else if (yAxisModel) {\n    axis = this.getAxis('y', yAxisModel.componentIndex);\n  } // Lowest priority.\n  else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n  return {\n    cartesian: cartesian,\n    axis: axis\n  };\n};\n/**\n * @implements\n * see {module:echarts/CoodinateSystem}\n */\n\n\ngridProto.containPoint = function (point) {\n  var coord = this._coordsList[0];\n\n  if (coord) {\n    return coord.containPoint(point);\n  }\n};\n/**\n * Initialize cartesian coordinate systems\n * @private\n */\n\n\ngridProto._initCartesian = function (gridModel, ecModel, api) {\n  var axisPositionUsed = {\n    left: false,\n    right: false,\n    top: false,\n    bottom: false\n  };\n  var axesMap = {\n    x: {},\n    y: {}\n  };\n  var axesCount = {\n    x: 0,\n    y: 0\n  }; /// Create axis\n\n  ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n  ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n  if (!axesCount.x || !axesCount.y) {\n    // Roll back when there no either x or y axis\n    this._axesMap = {};\n    this._axesList = [];\n    return;\n  }\n\n  this._axesMap = axesMap; /// Create cartesian2d\n\n  each(axesMap.x, function (xAxis, xAxisIndex) {\n    each(axesMap.y, function (yAxis, yAxisIndex) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      var cartesian = new Cartesian2D(key);\n      cartesian.grid = this;\n      cartesian.model = gridModel;\n      this._coordsMap[key] = cartesian;\n\n      this._coordsList.push(cartesian);\n\n      cartesian.addAxis(xAxis);\n      cartesian.addAxis(yAxis);\n    }, this);\n  }, this);\n\n  function createAxisCreator(axisType) {\n    return function (axisModel, idx) {\n      if (!isAxisUsedInTheGrid(axisModel, gridModel, ecModel)) {\n        return;\n      }\n\n      var axisPosition = axisModel.get('position');\n\n      if (axisType === 'x') {\n        // Fix position\n        if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n          // Default bottom of X\n          axisPosition = 'bottom';\n\n          if (axisPositionUsed[axisPosition]) {\n            axisPosition = axisPosition === 'top' ? 'bottom' : 'top';\n          }\n        }\n      } else {\n        // Fix position\n        if (axisPosition !== 'left' && axisPosition !== 'right') {\n          // Default left of Y\n          axisPosition = 'left';\n\n          if (axisPositionUsed[axisPosition]) {\n            axisPosition = axisPosition === 'left' ? 'right' : 'left';\n          }\n        }\n      }\n\n      axisPositionUsed[axisPosition] = true;\n      var axis = new Axis2D(axisType, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n      var isCategory = axis.type === 'category';\n      axis.onBand = isCategory && axisModel.get('boundaryGap');\n      axis.inverse = axisModel.get('inverse'); // Inject axis into axisModel\n\n      axisModel.axis = axis; // Inject axisModel into axis\n\n      axis.model = axisModel; // Inject grid info axis\n\n      axis.grid = this; // Index of axis, can be used as key\n\n      axis.index = idx;\n\n      this._axesList.push(axis);\n\n      axesMap[axisType][idx] = axis;\n      axesCount[axisType]++;\n    };\n  }\n};\n/**\n * Update cartesian properties from series\n * @param  {module:echarts/model/Option} option\n * @private\n */\n\n\ngridProto._updateScale = function (ecModel, gridModel) {\n  // Reset scale\n  each(this._axesList, function (axis) {\n    axis.scale.setExtent(Infinity, -Infinity);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (isCartesian2D(seriesModel)) {\n      var axesModels = findAxesModels(seriesModel, ecModel);\n      var xAxisModel = axesModels[0];\n      var yAxisModel = axesModels[1];\n\n      if (!isAxisUsedInTheGrid(xAxisModel, gridModel, ecModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel, ecModel)) {\n        return;\n      }\n\n      var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n      var data = seriesModel.getData();\n      var xAxis = cartesian.getAxis('x');\n      var yAxis = cartesian.getAxis('y');\n\n      if (data.type === 'list') {\n        unionExtent(data, xAxis, seriesModel);\n        unionExtent(data, yAxis, seriesModel);\n      }\n    }\n  }, this);\n\n  function unionExtent(data, axis, seriesModel) {\n    each(data.mapDimension(axis.dim, true), function (dim) {\n      axis.scale.unionExtentFromData( // For example, the extent of the orginal dimension\n      // is [0.1, 0.5], the extent of the `stackResultDimension`\n      // is [7, 9], the final extent should not include [0.1, 0.5].\n      data, getStackedDimension(data, dim));\n    });\n  }\n};\n/**\n * @param {string} [dim] 'x' or 'y' or 'auto' or null/undefined\n * @return {Object} {baseAxes: [], otherAxes: []}\n */\n\n\ngridProto.getTooltipAxes = function (dim) {\n  var baseAxes = [];\n  var otherAxes = [];\n  each(this.getCartesians(), function (cartesian) {\n    var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n    var otherAxis = cartesian.getOtherAxis(baseAxis);\n    indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n    indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n  });\n  return {\n    baseAxes: baseAxes,\n    otherAxes: otherAxes\n  };\n};\n/**\n * @inner\n */\n\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1]; // Fast transform\n\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nvar axesTypes = ['xAxis', 'yAxis'];\n/**\n * @inner\n */\n\nfunction findAxesModels(seriesModel, ecModel) {\n  return map(axesTypes, function (axisType) {\n    var axisModel = seriesModel.getReferringComponents(axisType)[0];\n    return axisModel;\n  });\n}\n/**\n * @inner\n */\n\n\nfunction isCartesian2D(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\n\nGrid.create = function (ecModel, api) {\n  var grids = [];\n  ecModel.eachComponent('grid', function (gridModel, idx) {\n    var grid = new Grid(gridModel, ecModel, api);\n    grid.name = 'grid_' + idx; // dataSampling requires axis extent, so resize\n    // should be performed in create stage.\n\n    grid.resize(gridModel, api, true);\n    gridModel.coordinateSystem = grid;\n    grids.push(grid);\n  }); // Inject the coordinateSystems into seriesModel\n\n  ecModel.eachSeries(function (seriesModel) {\n    if (!isCartesian2D(seriesModel)) {\n      return;\n    }\n\n    var axesModels = findAxesModels(seriesModel, ecModel);\n    var xAxisModel = axesModels[0];\n    var yAxisModel = axesModels[1];\n    var gridModel = xAxisModel.getCoordSysModel();\n    var grid = gridModel.coordinateSystem;\n    seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n  });\n  return grids;\n}; // For deciding which dimensions to use when creating list data\n\n\nGrid.dimensions = Grid.prototype.dimensions = Cartesian2D.prototype.dimensions;\nCoordinateSystem.register('cartesian2d', Grid);\nvar _default = Grid;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/Grid.js\n// module id = 0jPB\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction defaultKeyGetter(item) {\n  return item;\n}\n/**\n * @param {Array} oldArr\n * @param {Array} newArr\n * @param {Function} oldKeyGetter\n * @param {Function} newKeyGetter\n * @param {Object} [context] Can be visited by this.context in callback.\n */\n\n\nfunction DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context) {\n  this._old = oldArr;\n  this._new = newArr;\n  this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n  this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n  this.context = context;\n}\n\nDataDiffer.prototype = {\n  constructor: DataDiffer,\n\n  /**\n   * Callback function when add a data\n   */\n  add: function (func) {\n    this._add = func;\n    return this;\n  },\n\n  /**\n   * Callback function when update a data\n   */\n  update: function (func) {\n    this._update = func;\n    return this;\n  },\n\n  /**\n   * Callback function when remove a data\n   */\n  remove: function (func) {\n    this._remove = func;\n    return this;\n  },\n  execute: function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n    var i;\n    initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter', this);\n    initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter', this); // Travel by inverted order to make sure order consistency\n    // when duplicate keys exists (consider newDataIndex.pop() below).\n    // For performance consideration, these code below do not look neat.\n\n    for (i = 0; i < oldArr.length; i++) {\n      var key = oldDataKeyArr[i];\n      var idx = newDataIndexMap[key]; // idx can never be empty array here. see 'set null' logic below.\n\n      if (idx != null) {\n        // Consider there is duplicate key (for example, use dataItem.name as key).\n        // We should make sure every item in newArr and oldArr can be visited.\n        var len = idx.length;\n\n        if (len) {\n          len === 1 && (newDataIndexMap[key] = null);\n          idx = idx.unshift();\n        } else {\n          newDataIndexMap[key] = null;\n        }\n\n        this._update && this._update(idx, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var key = newDataKeyArr[i];\n\n      if (newDataIndexMap.hasOwnProperty(key)) {\n        var idx = newDataIndexMap[key];\n\n        if (idx == null) {\n          continue;\n        } // idx can never be empty array here. see 'set null' logic above.\n\n\n        if (!idx.length) {\n          this._add && this._add(idx);\n        } else {\n          for (var j = 0, len = idx.length; j < len; j++) {\n            this._add && this._add(idx[j]);\n          }\n        }\n      }\n    }\n  }\n};\n\nfunction initIndexMap(arr, map, keyArr, keyGetterName, dataDiffer) {\n  for (var i = 0; i < arr.length; i++) {\n    // Add prefix to avoid conflict with Object.prototype.\n    var key = '_ec_' + dataDiffer[keyGetterName](arr[i], i);\n    var existence = map[key];\n\n    if (existence == null) {\n      keyArr.push(key);\n      map[key] = i;\n    } else {\n      if (!existence.length) {\n        map[key] = existence = [existence];\n      }\n\n      existence.push(i);\n    }\n  }\n}\n\nvar _default = DataDiffer;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/DataDiffer.js\n// module id = 0jiU\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar LineDraw = require(\"../helper/LineDraw\");\n\nvar EffectLine = require(\"../helper/EffectLine\");\n\nvar Line = require(\"../helper/Line\");\n\nvar Polyline = require(\"../helper/Polyline\");\n\nvar EffectPolyline = require(\"../helper/EffectPolyline\");\n\nvar LargeLineDraw = require(\"../helper/LargeLineDraw\");\n\nvar linesLayout = require(\"./linesLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendChartView({\n  type: 'lines',\n  init: function () {},\n  render: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    var zlevel = seriesModel.get('zlevel');\n    var trailLength = seriesModel.get('effect.trailLength');\n    var zr = api.getZr(); // Avoid the drag cause ghost shadow\n    // FIXME Better way ?\n    // SVG doesn't support\n\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg) {\n      zr.painter.getLayer(zlevel).clear(true);\n    } // Config layer with motion blur\n\n\n    if (this._lastZlevel != null && !isSvg) {\n      zr.configLayer(this._lastZlevel, {\n        motionBlur: false\n      });\n    }\n\n    if (this._showEffect(seriesModel) && trailLength) {\n      if (!isSvg) {\n        zr.configLayer(zlevel, {\n          motionBlur: true,\n          lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n        });\n      }\n    }\n\n    lineDraw.updateData(data);\n    this._lastZlevel = zlevel;\n    this._finished = true;\n  },\n  incrementalPrepareRender: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    lineDraw.incrementalPrepareUpdate(data);\n\n    this._clearLayer(api);\n\n    this._finished = false;\n  },\n  incrementalRender: function (taskParams, seriesModel, ecModel) {\n    this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  },\n  updateTransform: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var pipelineContext = seriesModel.pipelineContext;\n\n    if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n      // TODO Don't have to do update in large mode. Only do it when there are millions of data.\n      return {\n        update: true\n      };\n    } else {\n      // TODO Use same logic with ScatterView.\n      // Manually update layout\n      var res = linesLayout.reset(seriesModel);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count()\n        }, data);\n      }\n\n      this._lineDraw.updateLayout();\n\n      this._clearLayer(api);\n    }\n  },\n  _updateLineDraw: function (data, seriesModel) {\n    var lineDraw = this._lineDraw;\n\n    var hasEffect = this._showEffect(seriesModel);\n\n    var isPolyline = !!seriesModel.get('polyline');\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n      if (lineDraw) {\n        lineDraw.remove();\n      }\n\n      lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n      this._hasEffet = hasEffect;\n      this._isPolyline = isPolyline;\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(lineDraw.group);\n    return lineDraw;\n  },\n  _showEffect: function (seriesModel) {\n    return !!seriesModel.get('effect.show');\n  },\n  _clearLayer: function (api) {\n    // Not use motion when dragging or zooming\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg && this._lastZlevel != null) {\n      zr.painter.getLayer(this._lastZlevel).clear(true);\n    }\n  },\n  remove: function (ecModel, api) {\n    this._lineDraw && this._lineDraw.remove();\n    this._lineDraw = null; // Clear motion when lineDraw is removed\n\n    this._clearLayer(api);\n  },\n  dispose: function () {}\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/lines/LinesView.js\n// module id = 0kSX\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/coord/View} view\n * @param {Object} payload\n * @param {Object} [zoomLimit]\n */\nfunction updateCenterAndZoom(view, payload, zoomLimit) {\n  var previousZoom = view.getZoom();\n  var center = view.getCenter();\n  var zoom = payload.zoom;\n  var point = view.dataToPoint(center);\n\n  if (payload.dx != null && payload.dy != null) {\n    point[0] -= payload.dx;\n    point[1] -= payload.dy;\n    var center = view.pointToData(point);\n    view.setCenter(center);\n  }\n\n  if (zoom != null) {\n    if (zoomLimit) {\n      var zoomMin = zoomLimit.min || 0;\n      var zoomMax = zoomLimit.max || Infinity;\n      zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n    } // Zoom on given point(originX, originY)\n\n\n    view.scale[0] *= zoom;\n    view.scale[1] *= zoom;\n    var position = view.position;\n    var fixX = (payload.originX - position[0]) * (zoom - 1);\n    var fixY = (payload.originY - position[1]) * (zoom - 1);\n    position[0] -= fixX;\n    position[1] -= fixY;\n    view.updateTransform(); // Get the new center\n\n    var center = view.pointToData(point);\n    view.setCenter(center);\n    view.setZoom(zoom * previousZoom);\n  }\n\n  return {\n    center: view.getCenter(),\n    zoom: view.getZoom()\n  };\n}\n\nexports.updateCenterAndZoom = updateCenterAndZoom;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/action/roamHelper.js\n// module id = 0mJF\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nvar _default = {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/theme/light.js\n// module id = 0wlW\n// module chunks = 0","var _util = require(\"./util\");\n\nvar normalizeRadian = _util.normalizeRadian;\nvar PI2 = Math.PI * 2;\n/**\n * 鍦嗗姬鎻忚竟鍖呭惈鍒ゆ柇\n * @param  {number}  cx\n * @param  {number}  cy\n * @param  {number}  r\n * @param  {number}  startAngle\n * @param  {number}  endAngle\n * @param  {boolean}  anticlockwise\n * @param  {number} lineWidth\n * @param  {number}  x\n * @param  {number}  y\n * @return {Boolean}\n */\n\nfunction containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n  if (lineWidth === 0) {\n    return false;\n  }\n\n  var _l = lineWidth;\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n\n  if (d - _l > r || d + _l < r) {\n    return false;\n  }\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    // Is a circle\n    return true;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  return angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle;\n}\n\nexports.containStroke = containStroke;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/arc.js\n// module id = 115t\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nvar opacityQuery = 'lineStyle.opacity'.split('.');\nvar _default = {\n  seriesType: 'lines',\n  reset: function (seriesModel, ecModel, api) {\n    var symbolType = normalize(seriesModel.get('symbol'));\n    var symbolSize = normalize(seriesModel.get('symbolSize'));\n    var data = seriesModel.getData();\n    data.setVisual('fromSymbol', symbolType && symbolType[0]);\n    data.setVisual('toSymbol', symbolType && symbolType[1]);\n    data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n    data.setVisual('opacity', seriesModel.get(opacityQuery));\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      var opacity = itemModel.get(opacityQuery);\n      symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n      symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n      symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n      data.setItemVisual(idx, 'opacity', opacity);\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/lines/linesVisual.js\n// module id = 19g+\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar makeStyleMapper = require(\"../../model/mixin/makeStyleMapper\");\n\nvar axisModelCreator = require(\"../axisModelCreator\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar axisModelCommonMixin = require(\"../axisModelCommonMixin\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisModel = ComponentModel.extend({\n  type: 'baseParallelAxis',\n\n  /**\n   * @type {module:echarts/coord/parallel/Axis}\n   */\n  axis: null,\n\n  /**\n   * @type {Array.<Array.<number>}\n   * @readOnly\n   */\n  activeIntervals: [],\n\n  /**\n   * @return {Object}\n   */\n  getAreaSelectStyle: function () {\n    return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));\n  },\n\n  /**\n   * The code of this feature is put on AxisModel but not ParallelAxis,\n   * because axisModel can be alive after echarts updating but instance of\n   * ParallelAxis having been disposed. this._activeInterval should be kept\n   * when action dispatched (i.e. legend click).\n   *\n   * @param {Array.<Array<number>>} intervals interval.length === 0\n   *                                          means set all active.\n   * @public\n   */\n  setActiveIntervals: function (intervals) {\n    var activeIntervals = this.activeIntervals = zrUtil.clone(intervals); // Normalize\n\n    if (activeIntervals) {\n      for (var i = activeIntervals.length - 1; i >= 0; i--) {\n        numberUtil.asc(activeIntervals[i]);\n      }\n    }\n  },\n\n  /**\n   * @param {number|string} [value] When attempting to detect 'no activeIntervals set',\n   *                         value can not be input.\n   * @return {string} 'normal': no activeIntervals set,\n   *                  'active',\n   *                  'inactive'.\n   * @public\n   */\n  getActiveState: function (value) {\n    var activeIntervals = this.activeIntervals;\n\n    if (!activeIntervals.length) {\n      return 'normal';\n    }\n\n    if (value == null || isNaN(value)) {\n      return 'inactive';\n    } // Simple optimization\n\n\n    if (activeIntervals.length === 1) {\n      var interval = activeIntervals[0];\n\n      if (interval[0] <= value && value <= interval[1]) {\n        return 'active';\n      }\n    } else {\n      for (var i = 0, len = activeIntervals.length; i < len; i++) {\n        if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n          return 'active';\n        }\n      }\n    }\n\n    return 'inactive';\n  }\n});\nvar defaultOption = {\n  type: 'value',\n\n  /**\n   * @type {Array.<number>}\n   */\n  dim: null,\n  // 0, 1, 2, ...\n  // parallelIndex: null,\n  areaSelectStyle: {\n    width: 20,\n    borderWidth: 1,\n    borderColor: 'rgba(160,197,232)',\n    color: 'rgba(160,197,232)',\n    opacity: 0.3\n  },\n  realtime: true,\n  // Whether realtime update view when select.\n  z: 10\n};\nzrUtil.merge(AxisModel.prototype, axisModelCommonMixin);\n\nfunction getAxisType(axisName, option) {\n  return option.type || (option.data ? 'category' : 'value');\n}\n\naxisModelCreator('parallel', AxisModel, getAxisType, defaultOption);\nvar _default = AxisModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/AxisModel.js\n// module id = 1BB8\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 151);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 151:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _button = __webpack_require__(152);\n\nvar _button2 = _interopRequireDefault(_button);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_button2.default.install = function (Vue) {\n  Vue.component(_button2.default.name, _button2.default);\n};\n\nexports.default = _button2.default;\n\n/***/ }),\n\n/***/ 152:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__ = __webpack_require__(153);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f35f4e9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__ = __webpack_require__(154);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f35f4e9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 153:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElButton',\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  props: {\n    type: {\n      type: String,\n      default: 'default'\n    },\n    size: String,\n    icon: {\n      type: String,\n      default: ''\n    },\n    nativeType: {\n      type: String,\n      default: 'button'\n    },\n    loading: Boolean,\n    disabled: Boolean,\n    plain: Boolean,\n    autofocus: Boolean,\n    round: Boolean,\n    circle: Boolean\n  },\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    buttonSize: function buttonSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    buttonDisabled: function buttonDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    }\n  },\n\n  methods: {\n    handleClick: function handleClick(evt) {\n      this.$emit('click', evt);\n    }\n  }\n};\n\n/***/ }),\n\n/***/ 154:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"el-button\",class:[\n    _vm.type ? 'el-button--' + _vm.type : '',\n    _vm.buttonSize ? 'el-button--' + _vm.buttonSize : '',\n    {\n      'is-disabled': _vm.buttonDisabled,\n      'is-loading': _vm.loading,\n      'is-plain': _vm.plain,\n      'is-round': _vm.round,\n      'is-circle': _vm.circle\n    }\n  ],attrs:{\"disabled\":_vm.buttonDisabled || _vm.loading,\"autofocus\":_vm.autofocus,\"type\":_vm.nativeType},on:{\"click\":_vm.handleClick}},[(_vm.loading)?_c('i',{staticClass:\"el-icon-loading\"}):_vm._e(),(_vm.icon && !_vm.loading)?_c('i',{class:_vm.icon}):_vm._e(),(_vm.$slots.default)?_c('span',[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/button.js\n// module id = 1HfM\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn(data, headers);\n  });\n\n  return data;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/core/transformData.js\n// module id = 1Rfl\n// module chunks = 0","// Myers' Diff Algorithm\n// Modified from https://github.com/kpdecker/jsdiff/blob/master/src/diff/base.js\nfunction Diff() {}\n\nDiff.prototype = {\n  diff: function (oldArr, newArr, equals) {\n    if (!equals) {\n      equals = function (a, b) {\n        return a === b;\n      };\n    }\n\n    this.equals = equals;\n    var self = this;\n    oldArr = oldArr.slice();\n    newArr = newArr.slice(); // Allow subclasses to massage the input prior to running\n\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var editLength = 1;\n    var maxEditLength = newLen + oldLen;\n    var bestPath = [{\n      newPos: -1,\n      components: []\n    }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n    var oldPos = this.extractCommon(bestPath[0], newArr, oldArr, 0);\n\n    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n      var indices = [];\n\n      for (var i = 0; i < newArr.length; i++) {\n        indices.push(i);\n      } // Identity per the equality and tokenizer\n\n\n      return [{\n        indices: indices,\n        count: newArr.length\n      }];\n    } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n    function execEditLength() {\n      for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n        var basePath;\n        var addPath = bestPath[diagonalPath - 1];\n        var removePath = bestPath[diagonalPath + 1];\n        var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n        if (addPath) {\n          // No one else is going to attempt to use this value, clear it\n          bestPath[diagonalPath - 1] = undefined;\n        }\n\n        var canAdd = addPath && addPath.newPos + 1 < newLen;\n        var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n\n        if (!canAdd && !canRemove) {\n          // If this path is a terminal then prune\n          bestPath[diagonalPath] = undefined;\n          continue;\n        } // Select the diagonal that we want to branch from. We select the prior\n        // path whose position in the new string is the farthest from the origin\n        // and does not pass the bounds of the diff graph\n\n\n        if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n          basePath = clonePath(removePath);\n          self.pushComponent(basePath.components, undefined, true);\n        } else {\n          basePath = addPath; // No need to clone, we've pulled it from the list\n\n          basePath.newPos++;\n          self.pushComponent(basePath.components, true, undefined);\n        }\n\n        oldPos = self.extractCommon(basePath, newArr, oldArr, diagonalPath); // If we have hit the end of both strings, then we are done\n\n        if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n          return buildValues(self, basePath.components, newArr, oldArr);\n        } else {\n          // Otherwise track this path as a potential candidate and continue.\n          bestPath[diagonalPath] = basePath;\n        }\n      }\n\n      editLength++;\n    }\n\n    while (editLength <= maxEditLength) {\n      var ret = execEditLength();\n\n      if (ret) {\n        return ret;\n      }\n    }\n  },\n  pushComponent: function (components, added, removed) {\n    var last = components[components.length - 1];\n\n    if (last && last.added === added && last.removed === removed) {\n      // We need to clone here as the component clone operation is just\n      // as shallow array clone\n      components[components.length - 1] = {\n        count: last.count + 1,\n        added: added,\n        removed: removed\n      };\n    } else {\n      components.push({\n        count: 1,\n        added: added,\n        removed: removed\n      });\n    }\n  },\n  extractCommon: function (basePath, newArr, oldArr, diagonalPath) {\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var newPos = basePath.newPos;\n    var oldPos = newPos - diagonalPath;\n    var commonCount = 0;\n\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n      newPos++;\n      oldPos++;\n      commonCount++;\n    }\n\n    if (commonCount) {\n      basePath.components.push({\n        count: commonCount\n      });\n    }\n\n    basePath.newPos = newPos;\n    return oldPos;\n  },\n  tokenize: function (value) {\n    return value.slice();\n  },\n  join: function (value) {\n    return value.slice();\n  }\n};\n\nfunction buildValues(diff, components, newArr, oldArr) {\n  var componentPos = 0;\n  var componentLen = components.length;\n  var newPos = 0;\n  var oldPos = 0;\n\n  for (; componentPos < componentLen; componentPos++) {\n    var component = components[componentPos];\n\n    if (!component.removed) {\n      var indices = [];\n\n      for (var i = newPos; i < newPos + component.count; i++) {\n        indices.push(i);\n      }\n\n      component.indices = indices;\n      newPos += component.count; // Common case\n\n      if (!component.added) {\n        oldPos += component.count;\n      }\n    } else {\n      var indices = [];\n\n      for (var i = oldPos; i < oldPos + component.count; i++) {\n        indices.push(i);\n      }\n\n      component.indices = indices;\n      oldPos += component.count;\n    }\n  }\n\n  return components;\n}\n\nfunction clonePath(path) {\n  return {\n    newPos: path.newPos,\n    components: path.components.slice(0)\n  };\n}\n\nvar arrayDiff = new Diff();\n\nfunction _default(oldArr, newArr, callback) {\n  return arrayDiff.diff(oldArr, newArr, callback);\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/arrayDiff2.js\n// module id = 1Vji\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.PopupManager = undefined;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _merge = require('element-ui/lib/utils/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _popupManager = require('element-ui/lib/utils/popup/popup-manager');\n\nvar _popupManager2 = _interopRequireDefault(_popupManager);\n\nvar _scrollbarWidth = require('../scrollbar-width');\n\nvar _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);\n\nvar _dom = require('../dom');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar idSeed = 1;\n\nvar scrollBarWidth = void 0;\n\nvar getDOM = function getDOM(dom) {\n  if (dom.nodeType === 3) {\n    dom = dom.nextElementSibling || dom.nextSibling;\n    getDOM(dom);\n  }\n  return dom;\n};\n\nexports.default = {\n  props: {\n    visible: {\n      type: Boolean,\n      default: false\n    },\n    openDelay: {},\n    closeDelay: {},\n    zIndex: {},\n    modal: {\n      type: Boolean,\n      default: false\n    },\n    modalFade: {\n      type: Boolean,\n      default: true\n    },\n    modalClass: {},\n    modalAppendToBody: {\n      type: Boolean,\n      default: false\n    },\n    lockScroll: {\n      type: Boolean,\n      default: true\n    },\n    closeOnPressEscape: {\n      type: Boolean,\n      default: false\n    },\n    closeOnClickModal: {\n      type: Boolean,\n      default: false\n    }\n  },\n\n  beforeMount: function beforeMount() {\n    this._popupId = 'popup-' + idSeed++;\n    _popupManager2.default.register(this._popupId, this);\n  },\n  beforeDestroy: function beforeDestroy() {\n    _popupManager2.default.deregister(this._popupId);\n    _popupManager2.default.closeModal(this._popupId);\n\n    this.restoreBodyStyle();\n  },\n  data: function data() {\n    return {\n      opened: false,\n      bodyPaddingRight: null,\n      computedBodyPaddingRight: 0,\n      withoutHiddenClass: true,\n      rendered: false\n    };\n  },\n\n\n  watch: {\n    visible: function visible(val) {\n      var _this = this;\n\n      if (val) {\n        if (this._opening) return;\n        if (!this.rendered) {\n          this.rendered = true;\n          _vue2.default.nextTick(function () {\n            _this.open();\n          });\n        } else {\n          this.open();\n        }\n      } else {\n        this.close();\n      }\n    }\n  },\n\n  methods: {\n    open: function open(options) {\n      var _this2 = this;\n\n      if (!this.rendered) {\n        this.rendered = true;\n      }\n\n      var props = (0, _merge2.default)({}, this.$props || this, options);\n\n      if (this._closeTimer) {\n        clearTimeout(this._closeTimer);\n        this._closeTimer = null;\n      }\n      clearTimeout(this._openTimer);\n\n      var openDelay = Number(props.openDelay);\n      if (openDelay > 0) {\n        this._openTimer = setTimeout(function () {\n          _this2._openTimer = null;\n          _this2.doOpen(props);\n        }, openDelay);\n      } else {\n        this.doOpen(props);\n      }\n    },\n    doOpen: function doOpen(props) {\n      if (this.$isServer) return;\n      if (this.willOpen && !this.willOpen()) return;\n      if (this.opened) return;\n\n      this._opening = true;\n\n      var dom = getDOM(this.$el);\n\n      var modal = props.modal;\n\n      var zIndex = props.zIndex;\n      if (zIndex) {\n        _popupManager2.default.zIndex = zIndex;\n      }\n\n      if (modal) {\n        if (this._closing) {\n          _popupManager2.default.closeModal(this._popupId);\n          this._closing = false;\n        }\n        _popupManager2.default.openModal(this._popupId, _popupManager2.default.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade);\n        if (props.lockScroll) {\n          this.withoutHiddenClass = !(0, _dom.hasClass)(document.body, 'el-popup-parent--hidden');\n          if (this.withoutHiddenClass) {\n            this.bodyPaddingRight = document.body.style.paddingRight;\n            this.computedBodyPaddingRight = parseInt((0, _dom.getStyle)(document.body, 'paddingRight'), 10);\n          }\n          scrollBarWidth = (0, _scrollbarWidth2.default)();\n          var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;\n          var bodyOverflowY = (0, _dom.getStyle)(document.body, 'overflowY');\n          if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) {\n            document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px';\n          }\n          (0, _dom.addClass)(document.body, 'el-popup-parent--hidden');\n        }\n      }\n\n      if (getComputedStyle(dom).position === 'static') {\n        dom.style.position = 'absolute';\n      }\n\n      dom.style.zIndex = _popupManager2.default.nextZIndex();\n      this.opened = true;\n\n      this.onOpen && this.onOpen();\n\n      this.doAfterOpen();\n    },\n    doAfterOpen: function doAfterOpen() {\n      this._opening = false;\n    },\n    close: function close() {\n      var _this3 = this;\n\n      if (this.willClose && !this.willClose()) return;\n\n      if (this._openTimer !== null) {\n        clearTimeout(this._openTimer);\n        this._openTimer = null;\n      }\n      clearTimeout(this._closeTimer);\n\n      var closeDelay = Number(this.closeDelay);\n\n      if (closeDelay > 0) {\n        this._closeTimer = setTimeout(function () {\n          _this3._closeTimer = null;\n          _this3.doClose();\n        }, closeDelay);\n      } else {\n        this.doClose();\n      }\n    },\n    doClose: function doClose() {\n      this._closing = true;\n\n      this.onClose && this.onClose();\n\n      if (this.lockScroll) {\n        setTimeout(this.restoreBodyStyle, 200);\n      }\n\n      this.opened = false;\n\n      this.doAfterClose();\n    },\n    doAfterClose: function doAfterClose() {\n      _popupManager2.default.closeModal(this._popupId);\n      this._closing = false;\n    },\n    restoreBodyStyle: function restoreBodyStyle() {\n      if (this.modal && this.withoutHiddenClass) {\n        document.body.style.paddingRight = this.bodyPaddingRight;\n        (0, _dom.removeClass)(document.body, 'el-popup-parent--hidden');\n      }\n      this.withoutHiddenClass = true;\n    }\n  }\n};\nexports.PopupManager = _popupManager2.default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/popup/index.js\n// module id = 1h8B\n// module chunks = 0","typeof window !== \"undefined\" &&\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Hls\"] = factory();\n\telse\n\t\troot[\"Hls\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return enableLogs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return logger; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__get_self_scope__ = __webpack_require__(4);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\nfunction noop() {}\n\nvar fakeLogger = {\n  trace: noop,\n  debug: noop,\n  log: noop,\n  warn: noop,\n  info: noop,\n  error: noop\n};\n\nvar exportedLogger = fakeLogger;\n\n// let lastCallTime;\n// function formatMsgWithTimeInfo(type, msg) {\n//   const now = Date.now();\n//   const diff = lastCallTime ? '+' + (now - lastCallTime) : '0';\n//   lastCallTime = now;\n//   msg = (new Date(now)).toISOString() + ' | [' +  type + '] > ' + msg + ' ( ' + diff + ' ms )';\n//   return msg;\n// }\n\nfunction formatMsg(type, msg) {\n  msg = '[' + type + '] > ' + msg;\n  return msg;\n}\n\nvar global = Object(__WEBPACK_IMPORTED_MODULE_0__get_self_scope__[\"a\" /* getSelfScope */])();\n\nfunction consolePrintFn(type) {\n  var func = global.console[type];\n  if (func) {\n    return function () {\n      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      if (args[0]) {\n        args[0] = formatMsg(type, args[0]);\n      }\n\n      func.apply(global.console, args);\n    };\n  }\n  return noop;\n}\n\nfunction exportLoggerFunctions(debugConfig) {\n  for (var _len2 = arguments.length, functions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    functions[_key2 - 1] = arguments[_key2];\n  }\n\n  functions.forEach(function (type) {\n    exportedLogger[type] = debugConfig[type] ? debugConfig[type].bind(debugConfig) : consolePrintFn(type);\n  });\n}\n\nvar enableLogs = function enableLogs(debugConfig) {\n  if (debugConfig === true || (typeof debugConfig === 'undefined' ? 'undefined' : _typeof(debugConfig)) === 'object') {\n    exportLoggerFunctions(debugConfig,\n    // Remove out from list here to hard-disable a log-level\n    // 'trace',\n    'debug', 'log', 'info', 'warn', 'error');\n    // Some browsers don't allow to use bind on console object anyway\n    // fallback to default if needed\n    try {\n      exportedLogger.log();\n    } catch (e) {\n      exportedLogger = fakeLogger;\n    }\n  } else {\n    exportedLogger = fakeLogger;\n  }\n};\n\nvar logger = exportedLogger;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/**\n * @readonly\n * @enum {string}\n */\nvar HlsEvents = {\n  // fired before MediaSource is attaching to media element - data: { media }\n  MEDIA_ATTACHING: 'hlsMediaAttaching',\n  // fired when MediaSource has been succesfully attached to media element - data: { }\n  MEDIA_ATTACHED: 'hlsMediaAttached',\n  // fired before detaching MediaSource from media element - data: { }\n  MEDIA_DETACHING: 'hlsMediaDetaching',\n  // fired when MediaSource has been detached from media element - data: { }\n  MEDIA_DETACHED: 'hlsMediaDetached',\n  // fired when we buffer is going to be reset - data: { }\n  BUFFER_RESET: 'hlsBufferReset',\n  // fired when we know about the codecs that we need buffers for to push into - data: {tracks : { container, codec, levelCodec, initSegment, metadata }}\n  BUFFER_CODECS: 'hlsBufferCodecs',\n  // fired when sourcebuffers have been created - data: { tracks : tracks }\n  BUFFER_CREATED: 'hlsBufferCreated',\n  // fired when we append a segment to the buffer - data: { segment: segment object }\n  BUFFER_APPENDING: 'hlsBufferAppending',\n  // fired when we are done with appending a media segment to the buffer - data : { parent : segment parent that triggered BUFFER_APPENDING, pending : nb of segments waiting for appending for this segment parent}\n  BUFFER_APPENDED: 'hlsBufferAppended',\n  // fired when the stream is finished and we want to notify the media buffer that there will be no more data - data: { }\n  BUFFER_EOS: 'hlsBufferEos',\n  // fired when the media buffer should be flushed - data { startOffset, endOffset }\n  BUFFER_FLUSHING: 'hlsBufferFlushing',\n  // fired when the media buffer has been flushed - data: { }\n  BUFFER_FLUSHED: 'hlsBufferFlushed',\n  // fired to signal that a manifest loading starts - data: { url : manifestURL}\n  MANIFEST_LOADING: 'hlsManifestLoading',\n  // fired after manifest has been loaded - data: { levels : [available quality levels], audioTracks : [ available audio tracks], url : manifestURL, stats : { trequest, tfirst, tload, mtime}}\n  MANIFEST_LOADED: 'hlsManifestLoaded',\n  // fired after manifest has been parsed - data: { levels : [available quality levels], firstLevel : index of first quality level appearing in Manifest}\n  MANIFEST_PARSED: 'hlsManifestParsed',\n  // fired when a level switch is requested - data: { level : id of new level }\n  LEVEL_SWITCHING: 'hlsLevelSwitching',\n  // fired when a level switch is effective - data: { level : id of new level }\n  LEVEL_SWITCHED: 'hlsLevelSwitched',\n  // fired when a level playlist loading starts - data: { url : level URL, level : id of level being loaded}\n  LEVEL_LOADING: 'hlsLevelLoading',\n  // fired when a level playlist loading finishes - data: { details : levelDetails object, level : id of loaded level, stats : { trequest, tfirst, tload, mtime} }\n  LEVEL_LOADED: 'hlsLevelLoaded',\n  // fired when a level's details have been updated based on previous details, after it has been loaded - data: { details : levelDetails object, level : id of updated level }\n  LEVEL_UPDATED: 'hlsLevelUpdated',\n  // fired when a level's PTS information has been updated after parsing a fragment - data: { details : levelDetails object, level : id of updated level, drift: PTS drift observed when parsing last fragment }\n  LEVEL_PTS_UPDATED: 'hlsLevelPtsUpdated',\n  // fired to notify that audio track lists has been updated - data: { audioTracks : audioTracks }\n  AUDIO_TRACKS_UPDATED: 'hlsAudioTracksUpdated',\n  // fired when an audio track switching is requested - data: { id : audio track id }\n  AUDIO_TRACK_SWITCHING: 'hlsAudioTrackSwitching',\n  // fired when an audio track switch actually occurs - data: { id : audio track id }\n  AUDIO_TRACK_SWITCHED: 'hlsAudioTrackSwitched',\n  // fired when an audio track loading starts - data: { url : audio track URL, id : audio track id }\n  AUDIO_TRACK_LOADING: 'hlsAudioTrackLoading',\n  // fired when an audio track loading finishes - data: { details : levelDetails object, id : audio track id, stats : { trequest, tfirst, tload, mtime } }\n  AUDIO_TRACK_LOADED: 'hlsAudioTrackLoaded',\n  // fired to notify that subtitle track lists has been updated - data: { subtitleTracks : subtitleTracks }\n  SUBTITLE_TRACKS_UPDATED: 'hlsSubtitleTracksUpdated',\n  // fired when an subtitle track switch occurs - data: { id : subtitle track id }\n  SUBTITLE_TRACK_SWITCH: 'hlsSubtitleTrackSwitch',\n  // fired when a subtitle track loading starts - data: { url : subtitle track URL, id : subtitle track id }\n  SUBTITLE_TRACK_LOADING: 'hlsSubtitleTrackLoading',\n  // fired when a subtitle track loading finishes - data: { details : levelDetails object, id : subtitle track id, stats : { trequest, tfirst, tload, mtime } }\n  SUBTITLE_TRACK_LOADED: 'hlsSubtitleTrackLoaded',\n  // fired when a subtitle fragment has been processed - data: { success : boolean, frag : the processed frag }\n  SUBTITLE_FRAG_PROCESSED: 'hlsSubtitleFragProcessed',\n  // fired when the first timestamp is found - data: { id : demuxer id, initPTS: initPTS, frag : fragment object }\n  INIT_PTS_FOUND: 'hlsInitPtsFound',\n  // fired when a fragment loading starts - data: { frag : fragment object }\n  FRAG_LOADING: 'hlsFragLoading',\n  // fired when a fragment loading is progressing - data: { frag : fragment object, { trequest, tfirst, loaded } }\n  FRAG_LOAD_PROGRESS: 'hlsFragLoadProgress',\n  // Identifier for fragment load aborting for emergency switch down - data: { frag : fragment object }\n  FRAG_LOAD_EMERGENCY_ABORTED: 'hlsFragLoadEmergencyAborted',\n  // fired when a fragment loading is completed - data: { frag : fragment object, payload : fragment payload, stats : { trequest, tfirst, tload, length } }\n  FRAG_LOADED: 'hlsFragLoaded',\n  // fired when a fragment has finished decrypting - data: { id : demuxer id, frag: fragment object, payload : fragment payload, stats : { tstart, tdecrypt } }\n  FRAG_DECRYPTED: 'hlsFragDecrypted',\n  // fired when Init Segment has been extracted from fragment - data: { id : demuxer id, frag: fragment object, moov : moov MP4 box, codecs : codecs found while parsing fragment }\n  FRAG_PARSING_INIT_SEGMENT: 'hlsFragParsingInitSegment',\n  // fired when parsing sei text is completed - data: { id : demuxer id, frag: fragment object, samples : [ sei samples pes ] }\n  FRAG_PARSING_USERDATA: 'hlsFragParsingUserdata',\n  // fired when parsing id3 is completed - data: { id : demuxer id, frag: fragment object, samples : [ id3 samples pes ] }\n  FRAG_PARSING_METADATA: 'hlsFragParsingMetadata',\n  // fired when data have been extracted from fragment - data: { id : demuxer id, frag: fragment object, data1 : moof MP4 box or TS fragments, data2 : mdat MP4 box or null}\n  FRAG_PARSING_DATA: 'hlsFragParsingData',\n  // fired when fragment parsing is completed - data: { id : demuxer id, frag: fragment object }\n  FRAG_PARSED: 'hlsFragParsed',\n  // fired when fragment remuxed MP4 boxes have all been appended into SourceBuffer - data: { id : demuxer id, frag : fragment object, stats : { trequest, tfirst, tload, tparsed, tbuffered, length, bwEstimate } }\n  FRAG_BUFFERED: 'hlsFragBuffered',\n  // fired when fragment matching with current media position is changing - data : { id : demuxer id, frag : fragment object }\n  FRAG_CHANGED: 'hlsFragChanged',\n  // Identifier for a FPS drop event - data: { curentDropped, currentDecoded, totalDroppedFrames }\n  FPS_DROP: 'hlsFpsDrop',\n  // triggered when FPS drop triggers auto level capping - data: { level, droppedlevel }\n  FPS_DROP_LEVEL_CAPPING: 'hlsFpsDropLevelCapping',\n  // Identifier for an error event - data: { type : error type, details : error details, fatal : if true, hls.js cannot/will not try to recover, if false, hls.js will try to recover,other error specific data }\n  ERROR: 'hlsError',\n  // fired when hls.js instance starts destroying. Different from MEDIA_DETACHED as one could want to detach and reattach a media to the instance of hls.js to handle mid-rolls for example - data: { }\n  DESTROYING: 'hlsDestroying',\n  // fired when a decrypt key loading starts - data: { frag : fragment object }\n  KEY_LOADING: 'hlsKeyLoading',\n  // fired when a decrypt key loading is completed - data: { frag : fragment object, payload : key payload, stats : { trequest, tfirst, tload, length } }\n  KEY_LOADED: 'hlsKeyLoaded',\n  // fired upon stream controller state transitions - data: { previousState, nextState }\n  STREAM_STATE_TRANSITION: 'hlsStreamStateTransition'\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (HlsEvents);\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return ErrorTypes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ErrorDetails; });\nvar ErrorTypes = {\n  // Identifier for a network error (loading error / timeout ...)\n  NETWORK_ERROR: 'networkError',\n  // Identifier for a media Error (video/parsing/mediasource error)\n  MEDIA_ERROR: 'mediaError',\n  // EME (encrypted media extensions) errors\n  KEY_SYSTEM_ERROR: 'keySystemError',\n  // Identifier for a mux Error (demuxing/remuxing)\n  MUX_ERROR: 'muxError',\n  // Identifier for all other errors\n  OTHER_ERROR: 'otherError'\n};\n\n/**\n * @enum {ErrorDetails}\n * @typedef {string} ErrorDetail\n */\nvar ErrorDetails = {\n  KEY_SYSTEM_NO_KEYS: 'keySystemNoKeys',\n  KEY_SYSTEM_NO_ACCESS: 'keySystemNoAccess',\n  KEY_SYSTEM_NO_SESSION: 'keySystemNoSession',\n  KEY_SYSTEM_LICENSE_REQUEST_FAILED: 'keySystemLicenseRequestFailed',\n  // Identifier for a manifest load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n  MANIFEST_LOAD_ERROR: 'manifestLoadError',\n  // Identifier for a manifest load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n  MANIFEST_LOAD_TIMEOUT: 'manifestLoadTimeOut',\n  // Identifier for a manifest parsing error - data: { url : faulty URL, reason : error reason}\n  MANIFEST_PARSING_ERROR: 'manifestParsingError',\n  // Identifier for a manifest with only incompatible codecs error - data: { url : faulty URL, reason : error reason}\n  MANIFEST_INCOMPATIBLE_CODECS_ERROR: 'manifestIncompatibleCodecsError',\n  // Identifier for a level load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n  LEVEL_LOAD_ERROR: 'levelLoadError',\n  // Identifier for a level load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n  LEVEL_LOAD_TIMEOUT: 'levelLoadTimeOut',\n  // Identifier for a level switch error - data: { level : faulty level Id, event : error description}\n  LEVEL_SWITCH_ERROR: 'levelSwitchError',\n  // Identifier for an audio track load error - data: { url : faulty URL, response : { code: error code, text: error text }}\n  AUDIO_TRACK_LOAD_ERROR: 'audioTrackLoadError',\n  // Identifier for an audio track load timeout - data: { url : faulty URL, response : { code: error code, text: error text }}\n  AUDIO_TRACK_LOAD_TIMEOUT: 'audioTrackLoadTimeOut',\n  // Identifier for fragment load error - data: { frag : fragment object, response : { code: error code, text: error text }}\n  FRAG_LOAD_ERROR: 'fragLoadError',\n  // Identifier for fragment load timeout error - data: { frag : fragment object}\n  FRAG_LOAD_TIMEOUT: 'fragLoadTimeOut',\n  // Identifier for a fragment decryption error event - data: {id : demuxer Id,frag: fragment object, reason : parsing error description }\n  FRAG_DECRYPT_ERROR: 'fragDecryptError',\n  // Identifier for a fragment parsing error event - data: { id : demuxer Id, reason : parsing error description }\n  // will be renamed DEMUX_PARSING_ERROR and switched to MUX_ERROR in the next major release\n  FRAG_PARSING_ERROR: 'fragParsingError',\n  // Identifier for a remux alloc error event - data: { id : demuxer Id, frag : fragment object, bytes : nb of bytes on which allocation failed , reason : error text }\n  REMUX_ALLOC_ERROR: 'remuxAllocError',\n  // Identifier for decrypt key load error - data: { frag : fragment object, response : { code: error code, text: error text }}\n  KEY_LOAD_ERROR: 'keyLoadError',\n  // Identifier for decrypt key load timeout error - data: { frag : fragment object}\n  KEY_LOAD_TIMEOUT: 'keyLoadTimeOut',\n  // Triggered when an exception occurs while adding a sourceBuffer to MediaSource - data : {  err : exception , mimeType : mimeType }\n  BUFFER_ADD_CODEC_ERROR: 'bufferAddCodecError',\n  // Identifier for a buffer append error - data: append error description\n  BUFFER_APPEND_ERROR: 'bufferAppendError',\n  // Identifier for a buffer appending error event - data: appending error description\n  BUFFER_APPENDING_ERROR: 'bufferAppendingError',\n  // Identifier for a buffer stalled error event\n  BUFFER_STALLED_ERROR: 'bufferStalledError',\n  // Identifier for a buffer full event\n  BUFFER_FULL_ERROR: 'bufferFullError',\n  // Identifier for a buffer seek over hole event\n  BUFFER_SEEK_OVER_HOLE: 'bufferSeekOverHole',\n  // Identifier for a buffer nudge on stall (playback is stuck although currentTime is in a buffered area)\n  BUFFER_NUDGE_ON_STALL: 'bufferNudgeOnStall',\n  // Identifier for an internal exception happening inside hls.js while handling an event\n  INTERNAL_EXCEPTION: 'internalException'\n};\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return isFiniteNumber; });\nvar isFiniteNumber = Number.isFinite || function (value) {\n  return typeof value === 'number' && isFinite(value);\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = getSelfScope;\nfunction getSelfScope() {\n  // see https://stackoverflow.com/a/11237259/589493\n  if (typeof window === 'undefined') {\n    /* eslint-disable-next-line no-undef */\n    return self;\n  } else {\n    return window;\n  }\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// see https://tools.ietf.org/html/rfc1808\r\n\r\n/* jshint ignore:start */\r\n(function(root) { \r\n/* jshint ignore:end */\r\n\r\n  var URL_REGEX = /^((?:[a-zA-Z0-9+\\-.]+:)?)(\\/\\/[^\\/\\;?#]*)?(.*?)??(;.*?)?(\\?.*?)?(#.*?)?$/;\r\n  var FIRST_SEGMENT_REGEX = /^([^\\/;?#]*)(.*)$/;\r\n  var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\r\n  var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/).*?(?=\\/)/g;\r\n\r\n  var URLToolkit = { // jshint ignore:line\r\n    // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\r\n    // E.g\r\n    // With opts.alwaysNormalize = false (default, spec compliant)\r\n    // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\r\n    // With opts.alwaysNormalize = true (not spec compliant)\r\n    // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\r\n    buildAbsoluteURL: function(baseURL, relativeURL, opts) {\r\n      opts = opts || {};\r\n      // remove any remaining space and CRLF\r\n      baseURL = baseURL.trim();\r\n      relativeURL = relativeURL.trim();\r\n      if (!relativeURL) {\r\n        // 2a) If the embedded URL is entirely empty, it inherits the\r\n        // entire base URL (i.e., is set equal to the base URL)\r\n        // and we are done.\r\n        if (!opts.alwaysNormalize) {\r\n          return baseURL;\r\n        }\r\n        var basePartsForNormalise = this.parseURL(baseURL);\r\n        if (!baseParts) {\r\n          throw new Error('Error trying to parse base URL.');\r\n        }\r\n        basePartsForNormalise.path = URLToolkit.normalizePath(basePartsForNormalise.path);\r\n        return URLToolkit.buildURLFromParts(basePartsForNormalise);\r\n      }\r\n      var relativeParts = this.parseURL(relativeURL);\r\n      if (!relativeParts) {\r\n        throw new Error('Error trying to parse relative URL.');\r\n      }\r\n      if (relativeParts.scheme) {\r\n        // 2b) If the embedded URL starts with a scheme name, it is\r\n        // interpreted as an absolute URL and we are done.\r\n        if (!opts.alwaysNormalize) {\r\n          return relativeURL;\r\n        }\r\n        relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\r\n        return URLToolkit.buildURLFromParts(relativeParts);\r\n      }\r\n      var baseParts = this.parseURL(baseURL);\r\n      if (!baseParts) {\r\n        throw new Error('Error trying to parse base URL.');\r\n      }\r\n      if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\r\n        // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\r\n        // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\r\n        var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\r\n        baseParts.netLoc = pathParts[1];\r\n        baseParts.path = pathParts[2];\r\n      }\r\n      if (baseParts.netLoc && !baseParts.path) {\r\n        baseParts.path = '/';\r\n      }\r\n      var builtParts = {\r\n        // 2c) Otherwise, the embedded URL inherits the scheme of\r\n        // the base URL.\r\n        scheme: baseParts.scheme,\r\n        netLoc: relativeParts.netLoc,\r\n        path: null,\r\n        params: relativeParts.params,\r\n        query: relativeParts.query,\r\n        fragment: relativeParts.fragment\r\n      };\r\n      if (!relativeParts.netLoc) {\r\n        // 3) If the embedded URL's <net_loc> is non-empty, we skip to\r\n        // Step 7.  Otherwise, the embedded URL inherits the <net_loc>\r\n        // (if any) of the base URL.\r\n        builtParts.netLoc = baseParts.netLoc;\r\n        // 4) If the embedded URL path is preceded by a slash \"/\", the\r\n        // path is not relative and we skip to Step 7.\r\n        if (relativeParts.path[0] !== '/') {\r\n          if (!relativeParts.path) {\r\n            // 5) If the embedded URL path is empty (and not preceded by a\r\n            // slash), then the embedded URL inherits the base URL path\r\n            builtParts.path = baseParts.path;\r\n            // 5a) if the embedded URL's <params> is non-empty, we skip to\r\n            // step 7; otherwise, it inherits the <params> of the base\r\n            // URL (if any) and\r\n            if (!relativeParts.params) {\r\n              builtParts.params = baseParts.params;\r\n              // 5b) if the embedded URL's <query> is non-empty, we skip to\r\n              // step 7; otherwise, it inherits the <query> of the base\r\n              // URL (if any) and we skip to step 7.\r\n              if (!relativeParts.query) {\r\n                builtParts.query = baseParts.query;\r\n              }\r\n            }\r\n          } else {\r\n            // 6) The last segment of the base URL's path (anything\r\n            // following the rightmost slash \"/\", or the entire path if no\r\n            // slash is present) is removed and the embedded URL's path is\r\n            // appended in its place.\r\n            var baseURLPath = baseParts.path;\r\n            var newPath = baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) + relativeParts.path;\r\n            builtParts.path = URLToolkit.normalizePath(newPath);\r\n          }\r\n        }\r\n      }\r\n      if (builtParts.path === null) {\r\n        builtParts.path = opts.alwaysNormalize ? URLToolkit.normalizePath(relativeParts.path) : relativeParts.path;\r\n      }\r\n      return URLToolkit.buildURLFromParts(builtParts);\r\n    },\r\n    parseURL: function(url) {\r\n      var parts = URL_REGEX.exec(url);\r\n      if (!parts) {\r\n        return null;\r\n      }\r\n      return {\r\n        scheme: parts[1] || '',\r\n        netLoc: parts[2] || '',\r\n        path: parts[3] || '',\r\n        params: parts[4] || '',\r\n        query: parts[5] || '',\r\n        fragment: parts[6] || ''\r\n      };\r\n    },\r\n    normalizePath: function(path) {\r\n      // The following operations are\r\n      // then applied, in order, to the new path:\r\n      // 6a) All occurrences of \"./\", where \".\" is a complete path\r\n      // segment, are removed.\r\n      // 6b) If the path ends with \".\" as a complete path segment,\r\n      // that \".\" is removed.\r\n      path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');\r\n      // 6c) All occurrences of \"<segment>/../\", where <segment> is a\r\n      // complete path segment not equal to \"..\", are removed.\r\n      // Removal of these path segments is performed iteratively,\r\n      // removing the leftmost matching pattern on each iteration,\r\n      // until no matching pattern remains.\r\n      // 6d) If the path ends with \"<segment>/..\", where <segment> is a\r\n      // complete path segment not equal to \"..\", that\r\n      // \"<segment>/..\" is removed.\r\n      while (path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length) {} // jshint ignore:line\r\n      return path.split('').reverse().join('');\r\n    },\r\n    buildURLFromParts: function(parts) {\r\n      return parts.scheme + parts.netLoc + parts.path + parts.params + parts.query + parts.fragment;\r\n    }\r\n  };\r\n\r\n/* jshint ignore:start */\r\n  if(true)\r\n    module.exports = URLToolkit;\r\n  else if(typeof define === 'function' && define.amd)\r\n    define([], function() { return URLToolkit; });\r\n  else if(typeof exports === 'object')\r\n    exports[\"URLToolkit\"] = URLToolkit;\r\n  else\r\n    root[\"URLToolkit\"] = URLToolkit;\r\n})(this);\r\n/* jshint ignore:end */\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return utf8ArrayToStr; });\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * ID3 parser\n */\nvar ID3 = function () {\n  function ID3() {\n    _classCallCheck(this, ID3);\n  }\n\n  /**\n   * Returns true if an ID3 header can be found at offset in data\n   * @param {Uint8Array} data - The data to search in\n   * @param {number} offset - The offset at which to start searching\n   * @return {boolean} - True if an ID3 header is found\n   */\n  ID3.isHeader = function isHeader(data, offset) {\n    /*\n    * http://id3.org/id3v2.3.0\n    * [0]     = 'I'\n    * [1]     = 'D'\n    * [2]     = '3'\n    * [3,4]   = {Version}\n    * [5]     = {Flags}\n    * [6-9]   = {ID3 Size}\n    *\n    * An ID3v2 tag can be detected with the following pattern:\n    *  $49 44 33 yy yy xx zz zz zz zz\n    * Where yy is less than $FF, xx is the 'flags' byte and zz is less than $80\n    */\n    if (offset + 10 <= data.length) {\n      // look for 'ID3' identifier\n      if (data[offset] === 0x49 && data[offset + 1] === 0x44 && data[offset + 2] === 0x33) {\n        // check version is within range\n        if (data[offset + 3] < 0xFF && data[offset + 4] < 0xFF) {\n          // check size is within range\n          if (data[offset + 6] < 0x80 && data[offset + 7] < 0x80 && data[offset + 8] < 0x80 && data[offset + 9] < 0x80) {\n            return true;\n          }\n        }\n      }\n    }\n\n    return false;\n  };\n\n  /**\n   * Returns true if an ID3 footer can be found at offset in data\n   * @param {Uint8Array} data - The data to search in\n   * @param {number} offset - The offset at which to start searching\n   * @return {boolean} - True if an ID3 footer is found\n   */\n\n\n  ID3.isFooter = function isFooter(data, offset) {\n    /*\n    * The footer is a copy of the header, but with a different identifier\n    */\n    if (offset + 10 <= data.length) {\n      // look for '3DI' identifier\n      if (data[offset] === 0x33 && data[offset + 1] === 0x44 && data[offset + 2] === 0x49) {\n        // check version is within range\n        if (data[offset + 3] < 0xFF && data[offset + 4] < 0xFF) {\n          // check size is within range\n          if (data[offset + 6] < 0x80 && data[offset + 7] < 0x80 && data[offset + 8] < 0x80 && data[offset + 9] < 0x80) {\n            return true;\n          }\n        }\n      }\n    }\n\n    return false;\n  };\n\n  /**\n   * Returns any adjacent ID3 tags found in data starting at offset, as one block of data\n   * @param {Uint8Array} data - The data to search in\n   * @param {number} offset - The offset at which to start searching\n   * @return {Uint8Array} - The block of data containing any ID3 tags found\n   */\n\n\n  ID3.getID3Data = function getID3Data(data, offset) {\n    var front = offset;\n    var length = 0;\n\n    while (ID3.isHeader(data, offset)) {\n      // ID3 header is 10 bytes\n      length += 10;\n\n      var size = ID3._readSize(data, offset + 6);\n      length += size;\n\n      if (ID3.isFooter(data, offset + 10)) {\n        // ID3 footer is 10 bytes\n        length += 10;\n      }\n\n      offset += length;\n    }\n\n    if (length > 0) {\n      return data.subarray(front, front + length);\n    }\n\n    return undefined;\n  };\n\n  ID3._readSize = function _readSize(data, offset) {\n    var size = 0;\n    size = (data[offset] & 0x7f) << 21;\n    size |= (data[offset + 1] & 0x7f) << 14;\n    size |= (data[offset + 2] & 0x7f) << 7;\n    size |= data[offset + 3] & 0x7f;\n    return size;\n  };\n\n  /**\n   * Searches for the Elementary Stream timestamp found in the ID3 data chunk\n   * @param {Uint8Array} data - Block of data containing one or more ID3 tags\n   * @return {number} - The timestamp\n   */\n\n\n  ID3.getTimeStamp = function getTimeStamp(data) {\n    var frames = ID3.getID3Frames(data);\n    for (var i = 0; i < frames.length; i++) {\n      var frame = frames[i];\n      if (ID3.isTimeStampFrame(frame)) {\n        return ID3._readTimeStamp(frame);\n      }\n    }\n\n    return undefined;\n  };\n\n  /**\n   * Returns true if the ID3 frame is an Elementary Stream timestamp frame\n   * @param {ID3 frame} frame\n   */\n\n\n  ID3.isTimeStampFrame = function isTimeStampFrame(frame) {\n    return frame && frame.key === 'PRIV' && frame.info === 'com.apple.streaming.transportStreamTimestamp';\n  };\n\n  ID3._getFrameData = function _getFrameData(data) {\n    /*\n    Frame ID       $xx xx xx xx (four characters)\n    Size           $xx xx xx xx\n    Flags          $xx xx\n    */\n    var type = String.fromCharCode(data[0], data[1], data[2], data[3]);\n    var size = ID3._readSize(data, 4);\n\n    // skip frame id, size, and flags\n    var offset = 10;\n\n    return { type: type, size: size, data: data.subarray(offset, offset + size) };\n  };\n\n  /**\n   * Returns an array of ID3 frames found in all the ID3 tags in the id3Data\n   * @param {Uint8Array} id3Data - The ID3 data containing one or more ID3 tags\n   * @return {ID3 frame[]} - Array of ID3 frame objects\n   */\n\n\n  ID3.getID3Frames = function getID3Frames(id3Data) {\n    var offset = 0;\n    var frames = [];\n\n    while (ID3.isHeader(id3Data, offset)) {\n      var size = ID3._readSize(id3Data, offset + 6);\n      // skip past ID3 header\n      offset += 10;\n      var end = offset + size;\n      // loop through frames in the ID3 tag\n      while (offset + 8 < end) {\n        var frameData = ID3._getFrameData(id3Data.subarray(offset));\n        var frame = ID3._decodeFrame(frameData);\n        if (frame) {\n          frames.push(frame);\n        }\n\n        // skip frame header and frame data\n        offset += frameData.size + 10;\n      }\n\n      if (ID3.isFooter(id3Data, offset)) {\n        offset += 10;\n      }\n    }\n\n    return frames;\n  };\n\n  ID3._decodeFrame = function _decodeFrame(frame) {\n    if (frame.type === 'PRIV') {\n      return ID3._decodePrivFrame(frame);\n    } else if (frame.type[0] === 'T') {\n      return ID3._decodeTextFrame(frame);\n    } else if (frame.type[0] === 'W') {\n      return ID3._decodeURLFrame(frame);\n    }\n\n    return undefined;\n  };\n\n  ID3._readTimeStamp = function _readTimeStamp(timeStampFrame) {\n    if (timeStampFrame.data.byteLength === 8) {\n      var data = new Uint8Array(timeStampFrame.data);\n      // timestamp is 33 bit expressed as a big-endian eight-octet number,\n      // with the upper 31 bits set to zero.\n      var pts33Bit = data[3] & 0x1;\n      var timestamp = (data[4] << 23) + (data[5] << 15) + (data[6] << 7) + data[7];\n      timestamp /= 45;\n\n      if (pts33Bit) {\n        timestamp += 47721858.84;\n      } // 2^32 / 90\n\n      return Math.round(timestamp);\n    }\n\n    return undefined;\n  };\n\n  ID3._decodePrivFrame = function _decodePrivFrame(frame) {\n    /*\n    Format: <text string>\\0<binary data>\n    */\n    if (frame.size < 2) {\n      return undefined;\n    }\n\n    var owner = ID3._utf8ArrayToStr(frame.data, true);\n    var privateData = new Uint8Array(frame.data.subarray(owner.length + 1));\n\n    return { key: frame.type, info: owner, data: privateData.buffer };\n  };\n\n  ID3._decodeTextFrame = function _decodeTextFrame(frame) {\n    if (frame.size < 2) {\n      return undefined;\n    }\n\n    if (frame.type === 'TXXX') {\n      /*\n      Format:\n      [0]   = {Text Encoding}\n      [1-?] = {Description}\\0{Value}\n      */\n      var index = 1;\n      var description = ID3._utf8ArrayToStr(frame.data.subarray(index));\n\n      index += description.length + 1;\n      var value = ID3._utf8ArrayToStr(frame.data.subarray(index));\n\n      return { key: frame.type, info: description, data: value };\n    } else {\n      /*\n      Format:\n      [0]   = {Text Encoding}\n      [1-?] = {Value}\n      */\n      var text = ID3._utf8ArrayToStr(frame.data.subarray(1));\n      return { key: frame.type, data: text };\n    }\n  };\n\n  ID3._decodeURLFrame = function _decodeURLFrame(frame) {\n    if (frame.type === 'WXXX') {\n      /*\n      Format:\n      [0]   = {Text Encoding}\n      [1-?] = {Description}\\0{URL}\n      */\n      if (frame.size < 2) {\n        return undefined;\n      }\n\n      var index = 1;\n      var description = ID3._utf8ArrayToStr(frame.data.subarray(index));\n\n      index += description.length + 1;\n      var value = ID3._utf8ArrayToStr(frame.data.subarray(index));\n\n      return { key: frame.type, info: description, data: value };\n    } else {\n      /*\n      Format:\n      [0-?] = {URL}\n      */\n      var url = ID3._utf8ArrayToStr(frame.data);\n      return { key: frame.type, data: url };\n    }\n  };\n\n  // http://stackoverflow.com/questions/8936984/uint8array-to-string-in-javascript/22373197\n  // http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt\n  /* utf.js - UTF-8 <=> UTF-16 convertion\n   *\n   * Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>\n   * Version: 1.0\n   * LastModified: Dec 25 1999\n   * This library is free.  You can redistribute it and/or modify it.\n   */\n\n\n  ID3._utf8ArrayToStr = function _utf8ArrayToStr(array) {\n    var exitOnNull = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var len = array.length;\n    var c = void 0;\n    var char2 = void 0;\n    var char3 = void 0;\n    var out = '';\n    var i = 0;\n    while (i < len) {\n      c = array[i++];\n      if (c === 0x00 && exitOnNull) {\n        return out;\n      } else if (c === 0x00 || c === 0x03) {\n        // If the character is 3 (END_OF_TEXT) or 0 (NULL) then skip it\n        continue;\n      }\n      switch (c >> 4) {\n        case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:\n          // 0xxxxxxx\n          out += String.fromCharCode(c);\n          break;\n        case 12:case 13:\n          // 110x xxxx   10xx xxxx\n          char2 = array[i++];\n          out += String.fromCharCode((c & 0x1F) << 6 | char2 & 0x3F);\n          break;\n        case 14:\n          // 1110 xxxx  10xx xxxx  10xx xxxx\n          char2 = array[i++];\n          char3 = array[i++];\n          out += String.fromCharCode((c & 0x0F) << 12 | (char2 & 0x3F) << 6 | (char3 & 0x3F) << 0);\n          break;\n        default:\n      }\n    }\n    return out;\n  };\n\n  return ID3;\n}();\n\nvar utf8ArrayToStr = ID3._utf8ArrayToStr;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (ID3);\n\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n  this._events = this._events || {};\n  this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n  if (!isNumber(n) || n < 0 || isNaN(n))\n    throw TypeError('n must be a positive number');\n  this._maxListeners = n;\n  return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n  var er, handler, len, args, i, listeners;\n\n  if (!this._events)\n    this._events = {};\n\n  // If there is no 'error' event listener then throw.\n  if (type === 'error') {\n    if (!this._events.error ||\n        (isObject(this._events.error) && !this._events.error.length)) {\n      er = arguments[1];\n      if (er instanceof Error) {\n        throw er; // Unhandled 'error' event\n      } else {\n        // At least give some kind of context to the user\n        var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n        err.context = er;\n        throw err;\n      }\n    }\n  }\n\n  handler = this._events[type];\n\n  if (isUndefined(handler))\n    return false;\n\n  if (isFunction(handler)) {\n    switch (arguments.length) {\n      // fast cases\n      case 1:\n        handler.call(this);\n        break;\n      case 2:\n        handler.call(this, arguments[1]);\n        break;\n      case 3:\n        handler.call(this, arguments[1], arguments[2]);\n        break;\n      // slower\n      default:\n        args = Array.prototype.slice.call(arguments, 1);\n        handler.apply(this, args);\n    }\n  } else if (isObject(handler)) {\n    args = Array.prototype.slice.call(arguments, 1);\n    listeners = handler.slice();\n    len = listeners.length;\n    for (i = 0; i < len; i++)\n      listeners[i].apply(this, args);\n  }\n\n  return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n  var m;\n\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  if (!this._events)\n    this._events = {};\n\n  // To avoid recursion in the case that type === \"newListener\"! Before\n  // adding it to the listeners, first emit \"newListener\".\n  if (this._events.newListener)\n    this.emit('newListener', type,\n              isFunction(listener.listener) ?\n              listener.listener : listener);\n\n  if (!this._events[type])\n    // Optimize the case of one listener. Don't need the extra array object.\n    this._events[type] = listener;\n  else if (isObject(this._events[type]))\n    // If we've already got an array, just append.\n    this._events[type].push(listener);\n  else\n    // Adding the second element, need to change to array.\n    this._events[type] = [this._events[type], listener];\n\n  // Check for listener leak\n  if (isObject(this._events[type]) && !this._events[type].warned) {\n    if (!isUndefined(this._maxListeners)) {\n      m = this._maxListeners;\n    } else {\n      m = EventEmitter.defaultMaxListeners;\n    }\n\n    if (m && m > 0 && this._events[type].length > m) {\n      this._events[type].warned = true;\n      console.error('(node) warning: possible EventEmitter memory ' +\n                    'leak detected. %d listeners added. ' +\n                    'Use emitter.setMaxListeners() to increase limit.',\n                    this._events[type].length);\n      if (typeof console.trace === 'function') {\n        // not supported in IE 10\n        console.trace();\n      }\n    }\n  }\n\n  return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  var fired = false;\n\n  function g() {\n    this.removeListener(type, g);\n\n    if (!fired) {\n      fired = true;\n      listener.apply(this, arguments);\n    }\n  }\n\n  g.listener = listener;\n  this.on(type, g);\n\n  return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n  var list, position, length, i;\n\n  if (!isFunction(listener))\n    throw TypeError('listener must be a function');\n\n  if (!this._events || !this._events[type])\n    return this;\n\n  list = this._events[type];\n  length = list.length;\n  position = -1;\n\n  if (list === listener ||\n      (isFunction(list.listener) && list.listener === listener)) {\n    delete this._events[type];\n    if (this._events.removeListener)\n      this.emit('removeListener', type, listener);\n\n  } else if (isObject(list)) {\n    for (i = length; i-- > 0;) {\n      if (list[i] === listener ||\n          (list[i].listener && list[i].listener === listener)) {\n        position = i;\n        break;\n      }\n    }\n\n    if (position < 0)\n      return this;\n\n    if (list.length === 1) {\n      list.length = 0;\n      delete this._events[type];\n    } else {\n      list.splice(position, 1);\n    }\n\n    if (this._events.removeListener)\n      this.emit('removeListener', type, listener);\n  }\n\n  return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n  var key, listeners;\n\n  if (!this._events)\n    return this;\n\n  // not listening for removeListener, no need to emit\n  if (!this._events.removeListener) {\n    if (arguments.length === 0)\n      this._events = {};\n    else if (this._events[type])\n      delete this._events[type];\n    return this;\n  }\n\n  // emit removeListener for all listeners on all events\n  if (arguments.length === 0) {\n    for (key in this._events) {\n      if (key === 'removeListener') continue;\n      this.removeAllListeners(key);\n    }\n    this.removeAllListeners('removeListener');\n    this._events = {};\n    return this;\n  }\n\n  listeners = this._events[type];\n\n  if (isFunction(listeners)) {\n    this.removeListener(type, listeners);\n  } else if (listeners) {\n    // LIFO order\n    while (listeners.length)\n      this.removeListener(type, listeners[listeners.length - 1]);\n  }\n  delete this._events[type];\n\n  return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n  var ret;\n  if (!this._events || !this._events[type])\n    ret = [];\n  else if (isFunction(this._events[type]))\n    ret = [this._events[type]];\n  else\n    ret = this._events[type].slice();\n  return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n  if (this._events) {\n    var evlistener = this._events[type];\n\n    if (isFunction(evlistener))\n      return 1;\n    else if (evlistener)\n      return evlistener.length;\n  }\n  return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n  return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// CONCATENATED MODULE: ./src/crypt/aes-crypto.js\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar AESCrypto = function () {\n  function AESCrypto(subtle, iv) {\n    _classCallCheck(this, AESCrypto);\n\n    this.subtle = subtle;\n    this.aesIV = iv;\n  }\n\n  AESCrypto.prototype.decrypt = function decrypt(data, key) {\n    return this.subtle.decrypt({ name: 'AES-CBC', iv: this.aesIV }, key, data);\n  };\n\n  return AESCrypto;\n}();\n\n/* harmony default export */ var aes_crypto = (AESCrypto);\n// CONCATENATED MODULE: ./src/crypt/fast-aes-key.js\nfunction fast_aes_key__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar FastAESKey = function () {\n  function FastAESKey(subtle, key) {\n    fast_aes_key__classCallCheck(this, FastAESKey);\n\n    this.subtle = subtle;\n    this.key = key;\n  }\n\n  FastAESKey.prototype.expandKey = function expandKey() {\n    return this.subtle.importKey('raw', this.key, { name: 'AES-CBC' }, false, ['encrypt', 'decrypt']);\n  };\n\n  return FastAESKey;\n}();\n\n/* harmony default export */ var fast_aes_key = (FastAESKey);\n// CONCATENATED MODULE: ./src/crypt/aes-decryptor.js\nfunction aes_decryptor__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// PKCS7\nfunction removePadding(buffer) {\n  var outputBytes = buffer.byteLength;\n  var paddingBytes = outputBytes && new DataView(buffer).getUint8(outputBytes - 1);\n  if (paddingBytes) {\n    return buffer.slice(0, outputBytes - paddingBytes);\n  } else {\n    return buffer;\n  }\n}\n\nvar AESDecryptor = function () {\n  function AESDecryptor() {\n    aes_decryptor__classCallCheck(this, AESDecryptor);\n\n    // Static after running initTable\n    this.rcon = [0x0, 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n    this.subMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)];\n    this.invSubMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)];\n    this.sBox = new Uint32Array(256);\n    this.invSBox = new Uint32Array(256);\n\n    // Changes during runtime\n    this.key = new Uint32Array(0);\n\n    this.initTable();\n  }\n\n  // Using view.getUint32() also swaps the byte order.\n\n\n  AESDecryptor.prototype.uint8ArrayToUint32Array_ = function uint8ArrayToUint32Array_(arrayBuffer) {\n    var view = new DataView(arrayBuffer);\n    var newArray = new Uint32Array(4);\n    for (var i = 0; i < 4; i++) {\n      newArray[i] = view.getUint32(i * 4);\n    }\n\n    return newArray;\n  };\n\n  AESDecryptor.prototype.initTable = function initTable() {\n    var sBox = this.sBox;\n    var invSBox = this.invSBox;\n    var subMix = this.subMix;\n    var subMix0 = subMix[0];\n    var subMix1 = subMix[1];\n    var subMix2 = subMix[2];\n    var subMix3 = subMix[3];\n    var invSubMix = this.invSubMix;\n    var invSubMix0 = invSubMix[0];\n    var invSubMix1 = invSubMix[1];\n    var invSubMix2 = invSubMix[2];\n    var invSubMix3 = invSubMix[3];\n\n    var d = new Uint32Array(256);\n    var x = 0;\n    var xi = 0;\n    var i = 0;\n    for (i = 0; i < 256; i++) {\n      if (i < 128) {\n        d[i] = i << 1;\n      } else {\n        d[i] = i << 1 ^ 0x11b;\n      }\n    }\n\n    for (i = 0; i < 256; i++) {\n      var sx = xi ^ xi << 1 ^ xi << 2 ^ xi << 3 ^ xi << 4;\n      sx = sx >>> 8 ^ sx & 0xff ^ 0x63;\n      sBox[x] = sx;\n      invSBox[sx] = x;\n\n      // Compute multiplication\n      var x2 = d[x];\n      var x4 = d[x2];\n      var x8 = d[x4];\n\n      // Compute sub/invSub bytes, mix columns tables\n      var t = d[sx] * 0x101 ^ sx * 0x1010100;\n      subMix0[x] = t << 24 | t >>> 8;\n      subMix1[x] = t << 16 | t >>> 16;\n      subMix2[x] = t << 8 | t >>> 24;\n      subMix3[x] = t;\n\n      // Compute inv sub bytes, inv mix columns tables\n      t = x8 * 0x1010101 ^ x4 * 0x10001 ^ x2 * 0x101 ^ x * 0x1010100;\n      invSubMix0[sx] = t << 24 | t >>> 8;\n      invSubMix1[sx] = t << 16 | t >>> 16;\n      invSubMix2[sx] = t << 8 | t >>> 24;\n      invSubMix3[sx] = t;\n\n      // Compute next counter\n      if (!x) {\n        x = xi = 1;\n      } else {\n        x = x2 ^ d[d[d[x8 ^ x2]]];\n        xi ^= d[d[xi]];\n      }\n    }\n  };\n\n  AESDecryptor.prototype.expandKey = function expandKey(keyBuffer) {\n    // convert keyBuffer to Uint32Array\n    var key = this.uint8ArrayToUint32Array_(keyBuffer);\n    var sameKey = true;\n    var offset = 0;\n\n    while (offset < key.length && sameKey) {\n      sameKey = key[offset] === this.key[offset];\n      offset++;\n    }\n\n    if (sameKey) {\n      return;\n    }\n\n    this.key = key;\n    var keySize = this.keySize = key.length;\n\n    if (keySize !== 4 && keySize !== 6 && keySize !== 8) {\n      throw new Error('Invalid aes key size=' + keySize);\n    }\n\n    var ksRows = this.ksRows = (keySize + 6 + 1) * 4;\n    var ksRow = void 0;\n    var invKsRow = void 0;\n\n    var keySchedule = this.keySchedule = new Uint32Array(ksRows);\n    var invKeySchedule = this.invKeySchedule = new Uint32Array(ksRows);\n    var sbox = this.sBox;\n    var rcon = this.rcon;\n\n    var invSubMix = this.invSubMix;\n    var invSubMix0 = invSubMix[0];\n    var invSubMix1 = invSubMix[1];\n    var invSubMix2 = invSubMix[2];\n    var invSubMix3 = invSubMix[3];\n\n    var prev = void 0;\n    var t = void 0;\n\n    for (ksRow = 0; ksRow < ksRows; ksRow++) {\n      if (ksRow < keySize) {\n        prev = keySchedule[ksRow] = key[ksRow];\n        continue;\n      }\n      t = prev;\n\n      if (ksRow % keySize === 0) {\n        // Rot word\n        t = t << 8 | t >>> 24;\n\n        // Sub word\n        t = sbox[t >>> 24] << 24 | sbox[t >>> 16 & 0xff] << 16 | sbox[t >>> 8 & 0xff] << 8 | sbox[t & 0xff];\n\n        // Mix Rcon\n        t ^= rcon[ksRow / keySize | 0] << 24;\n      } else if (keySize > 6 && ksRow % keySize === 4) {\n        // Sub word\n        t = sbox[t >>> 24] << 24 | sbox[t >>> 16 & 0xff] << 16 | sbox[t >>> 8 & 0xff] << 8 | sbox[t & 0xff];\n      }\n\n      keySchedule[ksRow] = prev = (keySchedule[ksRow - keySize] ^ t) >>> 0;\n    }\n\n    for (invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n      ksRow = ksRows - invKsRow;\n      if (invKsRow & 3) {\n        t = keySchedule[ksRow];\n      } else {\n        t = keySchedule[ksRow - 4];\n      }\n\n      if (invKsRow < 4 || ksRow <= 4) {\n        invKeySchedule[invKsRow] = t;\n      } else {\n        invKeySchedule[invKsRow] = invSubMix0[sbox[t >>> 24]] ^ invSubMix1[sbox[t >>> 16 & 0xff]] ^ invSubMix2[sbox[t >>> 8 & 0xff]] ^ invSubMix3[sbox[t & 0xff]];\n      }\n\n      invKeySchedule[invKsRow] = invKeySchedule[invKsRow] >>> 0;\n    }\n  };\n\n  // Adding this as a method greatly improves performance.\n\n\n  AESDecryptor.prototype.networkToHostOrderSwap = function networkToHostOrderSwap(word) {\n    return word << 24 | (word & 0xff00) << 8 | (word & 0xff0000) >> 8 | word >>> 24;\n  };\n\n  AESDecryptor.prototype.decrypt = function decrypt(inputArrayBuffer, offset, aesIV, removePKCS7Padding) {\n    var nRounds = this.keySize + 6;\n    var invKeySchedule = this.invKeySchedule;\n    var invSBOX = this.invSBox;\n\n    var invSubMix = this.invSubMix;\n    var invSubMix0 = invSubMix[0];\n    var invSubMix1 = invSubMix[1];\n    var invSubMix2 = invSubMix[2];\n    var invSubMix3 = invSubMix[3];\n\n    var initVector = this.uint8ArrayToUint32Array_(aesIV);\n    var initVector0 = initVector[0];\n    var initVector1 = initVector[1];\n    var initVector2 = initVector[2];\n    var initVector3 = initVector[3];\n\n    var inputInt32 = new Int32Array(inputArrayBuffer);\n    var outputInt32 = new Int32Array(inputInt32.length);\n\n    var t0 = void 0,\n        t1 = void 0,\n        t2 = void 0,\n        t3 = void 0;\n    var s0 = void 0,\n        s1 = void 0,\n        s2 = void 0,\n        s3 = void 0;\n    var inputWords0 = void 0,\n        inputWords1 = void 0,\n        inputWords2 = void 0,\n        inputWords3 = void 0;\n\n    var ksRow = void 0,\n        i = void 0;\n    var swapWord = this.networkToHostOrderSwap;\n\n    while (offset < inputInt32.length) {\n      inputWords0 = swapWord(inputInt32[offset]);\n      inputWords1 = swapWord(inputInt32[offset + 1]);\n      inputWords2 = swapWord(inputInt32[offset + 2]);\n      inputWords3 = swapWord(inputInt32[offset + 3]);\n\n      s0 = inputWords0 ^ invKeySchedule[0];\n      s1 = inputWords3 ^ invKeySchedule[1];\n      s2 = inputWords2 ^ invKeySchedule[2];\n      s3 = inputWords1 ^ invKeySchedule[3];\n\n      ksRow = 4;\n\n      // Iterate through the rounds of decryption\n      for (i = 1; i < nRounds; i++) {\n        t0 = invSubMix0[s0 >>> 24] ^ invSubMix1[s1 >> 16 & 0xff] ^ invSubMix2[s2 >> 8 & 0xff] ^ invSubMix3[s3 & 0xff] ^ invKeySchedule[ksRow];\n        t1 = invSubMix0[s1 >>> 24] ^ invSubMix1[s2 >> 16 & 0xff] ^ invSubMix2[s3 >> 8 & 0xff] ^ invSubMix3[s0 & 0xff] ^ invKeySchedule[ksRow + 1];\n        t2 = invSubMix0[s2 >>> 24] ^ invSubMix1[s3 >> 16 & 0xff] ^ invSubMix2[s0 >> 8 & 0xff] ^ invSubMix3[s1 & 0xff] ^ invKeySchedule[ksRow + 2];\n        t3 = invSubMix0[s3 >>> 24] ^ invSubMix1[s0 >> 16 & 0xff] ^ invSubMix2[s1 >> 8 & 0xff] ^ invSubMix3[s2 & 0xff] ^ invKeySchedule[ksRow + 3];\n        // Update state\n        s0 = t0;\n        s1 = t1;\n        s2 = t2;\n        s3 = t3;\n\n        ksRow = ksRow + 4;\n      }\n\n      // Shift rows, sub bytes, add round key\n      t0 = invSBOX[s0 >>> 24] << 24 ^ invSBOX[s1 >> 16 & 0xff] << 16 ^ invSBOX[s2 >> 8 & 0xff] << 8 ^ invSBOX[s3 & 0xff] ^ invKeySchedule[ksRow];\n      t1 = invSBOX[s1 >>> 24] << 24 ^ invSBOX[s2 >> 16 & 0xff] << 16 ^ invSBOX[s3 >> 8 & 0xff] << 8 ^ invSBOX[s0 & 0xff] ^ invKeySchedule[ksRow + 1];\n      t2 = invSBOX[s2 >>> 24] << 24 ^ invSBOX[s3 >> 16 & 0xff] << 16 ^ invSBOX[s0 >> 8 & 0xff] << 8 ^ invSBOX[s1 & 0xff] ^ invKeySchedule[ksRow + 2];\n      t3 = invSBOX[s3 >>> 24] << 24 ^ invSBOX[s0 >> 16 & 0xff] << 16 ^ invSBOX[s1 >> 8 & 0xff] << 8 ^ invSBOX[s2 & 0xff] ^ invKeySchedule[ksRow + 3];\n      ksRow = ksRow + 3;\n\n      // Write\n      outputInt32[offset] = swapWord(t0 ^ initVector0);\n      outputInt32[offset + 1] = swapWord(t3 ^ initVector1);\n      outputInt32[offset + 2] = swapWord(t2 ^ initVector2);\n      outputInt32[offset + 3] = swapWord(t1 ^ initVector3);\n\n      // reset initVector to last 4 unsigned int\n      initVector0 = inputWords0;\n      initVector1 = inputWords1;\n      initVector2 = inputWords2;\n      initVector3 = inputWords3;\n\n      offset = offset + 4;\n    }\n\n    return removePKCS7Padding ? removePadding(outputInt32.buffer) : outputInt32.buffer;\n  };\n\n  AESDecryptor.prototype.destroy = function destroy() {\n    this.key = undefined;\n    this.keySize = undefined;\n    this.ksRows = undefined;\n\n    this.sBox = undefined;\n    this.invSBox = undefined;\n    this.subMix = undefined;\n    this.invSubMix = undefined;\n    this.keySchedule = undefined;\n    this.invKeySchedule = undefined;\n\n    this.rcon = undefined;\n  };\n\n  return AESDecryptor;\n}();\n\n/* harmony default export */ var aes_decryptor = (AESDecryptor);\n// EXTERNAL MODULE: ./src/errors.js\nvar errors = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./src/utils/logger.js\nvar logger = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./src/events.js\nvar events = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./src/utils/get-self-scope.js\nvar get_self_scope = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./src/crypt/decrypter.js\nfunction decrypter__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\n\n\n\n\n\n\n// see https://stackoverflow.com/a/11237259/589493\nvar global = Object(get_self_scope[\"a\" /* getSelfScope */])(); // safeguard for code that might run both on worker and main thread\n\nvar decrypter_Decrypter = function () {\n  function Decrypter(observer, config) {\n    var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n        _ref$removePKCS7Paddi = _ref.removePKCS7Padding,\n        removePKCS7Padding = _ref$removePKCS7Paddi === undefined ? true : _ref$removePKCS7Paddi;\n\n    decrypter__classCallCheck(this, Decrypter);\n\n    this.logEnabled = true;\n    this.observer = observer;\n    this.config = config;\n    this.removePKCS7Padding = removePKCS7Padding;\n    // built in decryptor expects PKCS7 padding\n    if (removePKCS7Padding) {\n      try {\n        var browserCrypto = global.crypto;\n        if (browserCrypto) {\n          this.subtle = browserCrypto.subtle || browserCrypto.webkitSubtle;\n        }\n      } catch (e) {}\n    }\n    this.disableWebCrypto = !this.subtle;\n  }\n\n  Decrypter.prototype.isSync = function isSync() {\n    return this.disableWebCrypto && this.config.enableSoftwareAES;\n  };\n\n  Decrypter.prototype.decrypt = function decrypt(data, key, iv, callback) {\n    var _this = this;\n\n    if (this.disableWebCrypto && this.config.enableSoftwareAES) {\n      if (this.logEnabled) {\n        logger[\"b\" /* logger */].log('JS AES decrypt');\n        this.logEnabled = false;\n      }\n      var decryptor = this.decryptor;\n      if (!decryptor) {\n        this.decryptor = decryptor = new aes_decryptor();\n      }\n\n      decryptor.expandKey(key);\n      callback(decryptor.decrypt(data, 0, iv, this.removePKCS7Padding));\n    } else {\n      if (this.logEnabled) {\n        logger[\"b\" /* logger */].log('WebCrypto AES decrypt');\n        this.logEnabled = false;\n      }\n      var subtle = this.subtle;\n      if (this.key !== key) {\n        this.key = key;\n        this.fastAesKey = new fast_aes_key(subtle, key);\n      }\n\n      this.fastAesKey.expandKey().then(function (aesKey) {\n        // decrypt using web crypto\n        var crypto = new aes_crypto(subtle, iv);\n        crypto.decrypt(data, aesKey).catch(function (err) {\n          _this.onWebCryptoError(err, data, key, iv, callback);\n        }).then(function (result) {\n          callback(result);\n        });\n      }).catch(function (err) {\n        _this.onWebCryptoError(err, data, key, iv, callback);\n      });\n    }\n  };\n\n  Decrypter.prototype.onWebCryptoError = function onWebCryptoError(err, data, key, iv, callback) {\n    if (this.config.enableSoftwareAES) {\n      logger[\"b\" /* logger */].log('WebCrypto Error, disable WebCrypto API');\n      this.disableWebCrypto = true;\n      this.logEnabled = true;\n      this.decrypt(data, key, iv, callback);\n    } else {\n      logger[\"b\" /* logger */].error('decrypting error : ' + err.message);\n      this.observer.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].FRAG_DECRYPT_ERROR, fatal: true, reason: err.message });\n    }\n  };\n\n  Decrypter.prototype.destroy = function destroy() {\n    var decryptor = this.decryptor;\n    if (decryptor) {\n      decryptor.destroy();\n      this.decryptor = undefined;\n    }\n  };\n\n  return Decrypter;\n}();\n\n/* harmony default export */ var decrypter = __webpack_exports__[\"a\"] = (decrypter_Decrypter);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_logger__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events__ = __webpack_require__(1);\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * MP4 demuxer\n */\n\n\n\nvar UINT32_MAX = Math.pow(2, 32) - 1;\n\nvar MP4Demuxer = function () {\n  function MP4Demuxer(observer, remuxer) {\n    _classCallCheck(this, MP4Demuxer);\n\n    this.observer = observer;\n    this.remuxer = remuxer;\n  }\n\n  MP4Demuxer.prototype.resetTimeStamp = function resetTimeStamp(initPTS) {\n    this.initPTS = initPTS;\n  };\n\n  MP4Demuxer.prototype.resetInitSegment = function resetInitSegment(initSegment, audioCodec, videoCodec, duration) {\n    // jshint unused:false\n    if (initSegment && initSegment.byteLength) {\n      var initData = this.initData = MP4Demuxer.parseInitSegment(initSegment);\n\n      // default audio codec if nothing specified\n      // TODO : extract that from initsegment\n      if (audioCodec == null) {\n        audioCodec = 'mp4a.40.5';\n      }\n\n      if (videoCodec == null) {\n        videoCodec = 'avc1.42e01e';\n      }\n\n      var tracks = {};\n      if (initData.audio && initData.video) {\n        tracks.audiovideo = { container: 'video/mp4', codec: audioCodec + ',' + videoCodec, initSegment: duration ? initSegment : null };\n      } else {\n        if (initData.audio) {\n          tracks.audio = { container: 'audio/mp4', codec: audioCodec, initSegment: duration ? initSegment : null };\n        }\n\n        if (initData.video) {\n          tracks.video = { container: 'video/mp4', codec: videoCodec, initSegment: duration ? initSegment : null };\n        }\n      }\n      this.observer.trigger(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].FRAG_PARSING_INIT_SEGMENT, { tracks: tracks });\n    } else {\n      if (audioCodec) {\n        this.audioCodec = audioCodec;\n      }\n\n      if (videoCodec) {\n        this.videoCodec = videoCodec;\n      }\n    }\n  };\n\n  MP4Demuxer.probe = function probe(data) {\n    // ensure we find a moof box in the first 16 kB\n    return MP4Demuxer.findBox({ data: data, start: 0, end: Math.min(data.length, 16384) }, ['moof']).length > 0;\n  };\n\n  MP4Demuxer.bin2str = function bin2str(buffer) {\n    return String.fromCharCode.apply(null, buffer);\n  };\n\n  MP4Demuxer.readUint16 = function readUint16(buffer, offset) {\n    if (buffer.data) {\n      offset += buffer.start;\n      buffer = buffer.data;\n    }\n\n    var val = buffer[offset] << 8 | buffer[offset + 1];\n\n    return val < 0 ? 65536 + val : val;\n  };\n\n  MP4Demuxer.readUint32 = function readUint32(buffer, offset) {\n    if (buffer.data) {\n      offset += buffer.start;\n      buffer = buffer.data;\n    }\n\n    var val = buffer[offset] << 24 | buffer[offset + 1] << 16 | buffer[offset + 2] << 8 | buffer[offset + 3];\n    return val < 0 ? 4294967296 + val : val;\n  };\n\n  MP4Demuxer.writeUint32 = function writeUint32(buffer, offset, value) {\n    if (buffer.data) {\n      offset += buffer.start;\n      buffer = buffer.data;\n    }\n    buffer[offset] = value >> 24;\n    buffer[offset + 1] = value >> 16 & 0xff;\n    buffer[offset + 2] = value >> 8 & 0xff;\n    buffer[offset + 3] = value & 0xff;\n  };\n\n  // Find the data for a box specified by its path\n\n\n  MP4Demuxer.findBox = function findBox(data, path) {\n    var results = [],\n        i = void 0,\n        size = void 0,\n        type = void 0,\n        end = void 0,\n        subresults = void 0,\n        start = void 0,\n        endbox = void 0;\n\n    if (data.data) {\n      start = data.start;\n      end = data.end;\n      data = data.data;\n    } else {\n      start = 0;\n      end = data.byteLength;\n    }\n\n    if (!path.length) {\n      // short-circuit the search for empty paths\n      return null;\n    }\n\n    for (i = start; i < end;) {\n      size = MP4Demuxer.readUint32(data, i);\n      type = MP4Demuxer.bin2str(data.subarray(i + 4, i + 8));\n      endbox = size > 1 ? i + size : end;\n\n      if (type === path[0]) {\n        if (path.length === 1) {\n          // this is the end of the path and we've found the box we were\n          // looking for\n          results.push({ data: data, start: i + 8, end: endbox });\n        } else {\n          // recursively search for the next box along the path\n          subresults = MP4Demuxer.findBox({ data: data, start: i + 8, end: endbox }, path.slice(1));\n          if (subresults.length) {\n            results = results.concat(subresults);\n          }\n        }\n      }\n      i = endbox;\n    }\n\n    // we've finished searching all of data\n    return results;\n  };\n\n  MP4Demuxer.parseSegmentIndex = function parseSegmentIndex(initSegment) {\n    var moov = MP4Demuxer.findBox(initSegment, ['moov'])[0];\n    var moovEndOffset = moov ? moov.end : null; // we need this in case we need to chop of garbage of the end of current data\n\n    var index = 0;\n    var sidx = MP4Demuxer.findBox(initSegment, ['sidx']);\n    var references = void 0;\n\n    if (!sidx || !sidx[0]) {\n      return null;\n    }\n\n    references = [];\n    sidx = sidx[0];\n\n    var version = sidx.data[0];\n\n    // set initial offset, we skip the reference ID (not needed)\n    index = version === 0 ? 8 : 16;\n\n    var timescale = MP4Demuxer.readUint32(sidx, index);\n    index += 4;\n\n    // TODO: parse earliestPresentationTime and firstOffset\n    // usually zero in our case\n    var earliestPresentationTime = 0;\n    var firstOffset = 0;\n\n    if (version === 0) {\n      index += 8;\n    } else {\n      index += 16;\n    }\n\n    // skip reserved\n    index += 2;\n\n    var startByte = sidx.end + firstOffset;\n\n    var referencesCount = MP4Demuxer.readUint16(sidx, index);\n    index += 2;\n\n    for (var i = 0; i < referencesCount; i++) {\n      var referenceIndex = index;\n\n      var referenceInfo = MP4Demuxer.readUint32(sidx, referenceIndex);\n      referenceIndex += 4;\n\n      var referenceSize = referenceInfo & 0x7FFFFFFF;\n      var referenceType = (referenceInfo & 0x80000000) >>> 31;\n\n      if (referenceType === 1) {\n        console.warn('SIDX has hierarchical references (not supported)');\n        return;\n      }\n\n      var subsegmentDuration = MP4Demuxer.readUint32(sidx, referenceIndex);\n      referenceIndex += 4;\n\n      references.push({\n        referenceSize: referenceSize,\n        subsegmentDuration: subsegmentDuration, // unscaled\n        info: {\n          duration: subsegmentDuration / timescale,\n          start: startByte,\n          end: startByte + referenceSize - 1\n        }\n      });\n\n      startByte += referenceSize;\n\n      // Skipping 1 bit for |startsWithSap|, 3 bits for |sapType|, and 28 bits\n      // for |sapDelta|.\n      referenceIndex += 4;\n\n      // skip to next ref\n      index = referenceIndex;\n    }\n\n    return {\n      earliestPresentationTime: earliestPresentationTime,\n      timescale: timescale,\n      version: version,\n      referencesCount: referencesCount,\n      references: references,\n      moovEndOffset: moovEndOffset\n    };\n  };\n\n  /**\n   * Parses an MP4 initialization segment and extracts stream type and\n   * timescale values for any declared tracks. Timescale values indicate the\n   * number of clock ticks per second to assume for time-based values\n   * elsewhere in the MP4.\n   *\n   * To determine the start time of an MP4, you need two pieces of\n   * information: the timescale unit and the earliest base media decode\n   * time. Multiple timescales can be specified within an MP4 but the\n   * base media decode time is always expressed in the timescale from\n   * the media header box for the track:\n   * ```\n   * moov > trak > mdia > mdhd.timescale\n   * moov > trak > mdia > hdlr\n   * ```\n   * @param init {Uint8Array} the bytes of the init segment\n   * @return {object} a hash of track type to timescale values or null if\n   * the init segment is malformed.\n   */\n\n\n  MP4Demuxer.parseInitSegment = function parseInitSegment(initSegment) {\n    var result = [];\n    var traks = MP4Demuxer.findBox(initSegment, ['moov', 'trak']);\n\n    traks.forEach(function (trak) {\n      var tkhd = MP4Demuxer.findBox(trak, ['tkhd'])[0];\n      if (tkhd) {\n        var version = tkhd.data[tkhd.start];\n        var index = version === 0 ? 12 : 20;\n        var trackId = MP4Demuxer.readUint32(tkhd, index);\n\n        var mdhd = MP4Demuxer.findBox(trak, ['mdia', 'mdhd'])[0];\n        if (mdhd) {\n          version = mdhd.data[mdhd.start];\n          index = version === 0 ? 12 : 20;\n          var timescale = MP4Demuxer.readUint32(mdhd, index);\n\n          var hdlr = MP4Demuxer.findBox(trak, ['mdia', 'hdlr'])[0];\n          if (hdlr) {\n            var hdlrType = MP4Demuxer.bin2str(hdlr.data.subarray(hdlr.start + 8, hdlr.start + 12));\n            var type = { 'soun': 'audio', 'vide': 'video' }[hdlrType];\n            if (type) {\n              // extract codec info. TODO : parse codec details to be able to build MIME type\n              var codecBox = MP4Demuxer.findBox(trak, ['mdia', 'minf', 'stbl', 'stsd']);\n              if (codecBox.length) {\n                codecBox = codecBox[0];\n                var codecType = MP4Demuxer.bin2str(codecBox.data.subarray(codecBox.start + 12, codecBox.start + 16));\n                __WEBPACK_IMPORTED_MODULE_0__utils_logger__[\"b\" /* logger */].log('MP4Demuxer:' + type + ':' + codecType + ' found');\n              }\n              result[trackId] = { timescale: timescale, type: type };\n              result[type] = { timescale: timescale, id: trackId };\n            }\n          }\n        }\n      }\n    });\n    return result;\n  };\n\n  /**\n  * Determine the base media decode start time, in seconds, for an MP4\n  * fragment. If multiple fragments are specified, the earliest time is\n  * returned.\n  *\n  * The base media decode time can be parsed from track fragment\n  * metadata:\n  * ```\n  * moof > traf > tfdt.baseMediaDecodeTime\n  * ```\n  * It requires the timescale value from the mdhd to interpret.\n  *\n  * @param timescale {object} a hash of track ids to timescale values.\n  * @return {number} the earliest base media decode start time for the\n  * fragment, in seconds\n  */\n\n\n  MP4Demuxer.getStartDTS = function getStartDTS(initData, fragment) {\n    var trafs = void 0,\n        baseTimes = void 0,\n        result = void 0;\n\n    // we need info from two childrend of each track fragment box\n    trafs = MP4Demuxer.findBox(fragment, ['moof', 'traf']);\n\n    // determine the start times for each track\n    baseTimes = [].concat.apply([], trafs.map(function (traf) {\n      return MP4Demuxer.findBox(traf, ['tfhd']).map(function (tfhd) {\n        var id = void 0,\n            scale = void 0,\n            baseTime = void 0;\n\n        // get the track id from the tfhd\n        id = MP4Demuxer.readUint32(tfhd, 4);\n        // assume a 90kHz clock if no timescale was specified\n        scale = initData[id].timescale || 90e3;\n\n        // get the base media decode time from the tfdt\n        baseTime = MP4Demuxer.findBox(traf, ['tfdt']).map(function (tfdt) {\n          var version = void 0,\n              result = void 0;\n\n          version = tfdt.data[tfdt.start];\n          result = MP4Demuxer.readUint32(tfdt, 4);\n          if (version === 1) {\n            result *= Math.pow(2, 32);\n\n            result += MP4Demuxer.readUint32(tfdt, 8);\n          }\n          return result;\n        })[0];\n        // convert base time to seconds\n        return baseTime / scale;\n      });\n    }));\n\n    // return the minimum\n    result = Math.min.apply(null, baseTimes);\n    return isFinite(result) ? result : 0;\n  };\n\n  MP4Demuxer.offsetStartDTS = function offsetStartDTS(initData, fragment, timeOffset) {\n    MP4Demuxer.findBox(fragment, ['moof', 'traf']).map(function (traf) {\n      return MP4Demuxer.findBox(traf, ['tfhd']).map(function (tfhd) {\n        // get the track id from the tfhd\n        var id = MP4Demuxer.readUint32(tfhd, 4);\n        // assume a 90kHz clock if no timescale was specified\n        var timescale = initData[id].timescale || 90e3;\n\n        // get the base media decode time from the tfdt\n        MP4Demuxer.findBox(traf, ['tfdt']).map(function (tfdt) {\n          var version = tfdt.data[tfdt.start];\n          var baseMediaDecodeTime = MP4Demuxer.readUint32(tfdt, 4);\n          if (version === 0) {\n            MP4Demuxer.writeUint32(tfdt, 4, baseMediaDecodeTime - timeOffset * timescale);\n          } else {\n            baseMediaDecodeTime *= Math.pow(2, 32);\n            baseMediaDecodeTime += MP4Demuxer.readUint32(tfdt, 8);\n            baseMediaDecodeTime -= timeOffset * timescale;\n            baseMediaDecodeTime = Math.max(baseMediaDecodeTime, 0);\n            var upper = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1));\n            var lower = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1));\n            MP4Demuxer.writeUint32(tfdt, 4, upper);\n            MP4Demuxer.writeUint32(tfdt, 8, lower);\n          }\n        });\n      });\n    });\n  };\n\n  // feed incoming data to the front of the parsing pipeline\n\n\n  MP4Demuxer.prototype.append = function append(data, timeOffset, contiguous, accurateTimeOffset) {\n    var initData = this.initData;\n    if (!initData) {\n      this.resetInitSegment(data, this.audioCodec, this.videoCodec, false);\n      initData = this.initData;\n    }\n    var startDTS = void 0,\n        initPTS = this.initPTS;\n    if (initPTS === undefined) {\n      var _startDTS = MP4Demuxer.getStartDTS(initData, data);\n      this.initPTS = initPTS = _startDTS - timeOffset;\n      this.observer.trigger(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].INIT_PTS_FOUND, { initPTS: initPTS });\n    }\n    MP4Demuxer.offsetStartDTS(initData, data, initPTS);\n    startDTS = MP4Demuxer.getStartDTS(initData, data);\n    this.remuxer.remux(initData.audio, initData.video, null, null, startDTS, contiguous, accurateTimeOffset, data);\n  };\n\n  MP4Demuxer.prototype.destroy = function destroy() {};\n\n  return MP4Demuxer;\n}();\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MP4Demuxer);\n\n/***/ }),\n/* 10 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXTERNAL MODULE: ./src/events.js\nvar events = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./src/errors.js\nvar errors = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./src/crypt/decrypter.js + 3 modules\nvar crypt_decrypter = __webpack_require__(8);\n\n// EXTERNAL MODULE: ./src/polyfills/number-isFinite.js\nvar number_isFinite = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./src/utils/logger.js\nvar logger = __webpack_require__(0);\n\n// EXTERNAL MODULE: ./src/utils/get-self-scope.js\nvar get_self_scope = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./src/demux/adts.js\n/**\n *  ADTS parser helper\n */\n\n\n\n\n\n\n\nfunction getAudioConfig(observer, data, offset, audioCodec) {\n  var adtsObjectType = void 0,\n      // :int\n  adtsSampleingIndex = void 0,\n      // :int\n  adtsExtensionSampleingIndex = void 0,\n      // :int\n  adtsChanelConfig = void 0,\n      // :int\n  config = void 0,\n      userAgent = navigator.userAgent.toLowerCase(),\n      manifestCodec = audioCodec,\n      adtsSampleingRates = [96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350];\n  // byte 2\n  adtsObjectType = ((data[offset + 2] & 0xC0) >>> 6) + 1;\n  adtsSampleingIndex = (data[offset + 2] & 0x3C) >>> 2;\n  if (adtsSampleingIndex > adtsSampleingRates.length - 1) {\n    observer.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].FRAG_PARSING_ERROR, fatal: true, reason: 'invalid ADTS sampling index:' + adtsSampleingIndex });\n    return;\n  }\n  adtsChanelConfig = (data[offset + 2] & 0x01) << 2;\n  // byte 3\n  adtsChanelConfig |= (data[offset + 3] & 0xC0) >>> 6;\n  logger[\"b\" /* logger */].log('manifest codec:' + audioCodec + ',ADTS data:type:' + adtsObjectType + ',sampleingIndex:' + adtsSampleingIndex + '[' + adtsSampleingRates[adtsSampleingIndex] + 'Hz],channelConfig:' + adtsChanelConfig);\n  // firefox: freq less than 24kHz = AAC SBR (HE-AAC)\n  if (/firefox/i.test(userAgent)) {\n    if (adtsSampleingIndex >= 6) {\n      adtsObjectType = 5;\n      config = new Array(4);\n      // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n      // there is a factor 2 between frame sample rate and output sample rate\n      // multiply frequency by 2 (see table below, equivalent to substract 3)\n      adtsExtensionSampleingIndex = adtsSampleingIndex - 3;\n    } else {\n      adtsObjectType = 2;\n      config = new Array(2);\n      adtsExtensionSampleingIndex = adtsSampleingIndex;\n    }\n    // Android : always use AAC\n  } else if (userAgent.indexOf('android') !== -1) {\n    adtsObjectType = 2;\n    config = new Array(2);\n    adtsExtensionSampleingIndex = adtsSampleingIndex;\n  } else {\n    /*  for other browsers (Chrome/Vivaldi/Opera ...)\n        always force audio type to be HE-AAC SBR, as some browsers do not support audio codec switch properly (like Chrome ...)\n    */\n    adtsObjectType = 5;\n    config = new Array(4);\n    // if (manifest codec is HE-AAC or HE-AACv2) OR (manifest codec not specified AND frequency less than 24kHz)\n    if (audioCodec && (audioCodec.indexOf('mp4a.40.29') !== -1 || audioCodec.indexOf('mp4a.40.5') !== -1) || !audioCodec && adtsSampleingIndex >= 6) {\n      // HE-AAC uses SBR (Spectral Band Replication) , high frequencies are constructed from low frequencies\n      // there is a factor 2 between frame sample rate and output sample rate\n      // multiply frequency by 2 (see table below, equivalent to substract 3)\n      adtsExtensionSampleingIndex = adtsSampleingIndex - 3;\n    } else {\n      // if (manifest codec is AAC) AND (frequency less than 24kHz AND nb channel is 1) OR (manifest codec not specified and mono audio)\n      // Chrome fails to play back with low frequency AAC LC mono when initialized with HE-AAC.  This is not a problem with stereo.\n      if (audioCodec && audioCodec.indexOf('mp4a.40.2') !== -1 && (adtsSampleingIndex >= 6 && adtsChanelConfig === 1 || /vivaldi/i.test(userAgent)) || !audioCodec && adtsChanelConfig === 1) {\n        adtsObjectType = 2;\n        config = new Array(2);\n      }\n      adtsExtensionSampleingIndex = adtsSampleingIndex;\n    }\n  }\n  /* refer to http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Specific_Config\n      ISO 14496-3 (AAC).pdf - Table 1.13 鈥� Syntax of AudioSpecificConfig()\n    Audio Profile / Audio Object Type\n    0: Null\n    1: AAC Main\n    2: AAC LC (Low Complexity)\n    3: AAC SSR (Scalable Sample Rate)\n    4: AAC LTP (Long Term Prediction)\n    5: SBR (Spectral Band Replication)\n    6: AAC Scalable\n   sampling freq\n    0: 96000 Hz\n    1: 88200 Hz\n    2: 64000 Hz\n    3: 48000 Hz\n    4: 44100 Hz\n    5: 32000 Hz\n    6: 24000 Hz\n    7: 22050 Hz\n    8: 16000 Hz\n    9: 12000 Hz\n    10: 11025 Hz\n    11: 8000 Hz\n    12: 7350 Hz\n    13: Reserved\n    14: Reserved\n    15: frequency is written explictly\n    Channel Configurations\n    These are the channel configurations:\n    0: Defined in AOT Specifc Config\n    1: 1 channel: front-center\n    2: 2 channels: front-left, front-right\n  */\n  // audioObjectType = profile => profile, the MPEG-4 Audio Object Type minus 1\n  config[0] = adtsObjectType << 3;\n  // samplingFrequencyIndex\n  config[0] |= (adtsSampleingIndex & 0x0E) >> 1;\n  config[1] |= (adtsSampleingIndex & 0x01) << 7;\n  // channelConfiguration\n  config[1] |= adtsChanelConfig << 3;\n  if (adtsObjectType === 5) {\n    // adtsExtensionSampleingIndex\n    config[1] |= (adtsExtensionSampleingIndex & 0x0E) >> 1;\n    config[2] = (adtsExtensionSampleingIndex & 0x01) << 7;\n    // adtsObjectType (force to 2, chrome is checking that object type is less than 5 ???\n    //    https://chromium.googlesource.com/chromium/src.git/+/master/media/formats/mp4/aac.cc\n    config[2] |= 2 << 2;\n    config[3] = 0;\n  }\n  return { config: config, samplerate: adtsSampleingRates[adtsSampleingIndex], channelCount: adtsChanelConfig, codec: 'mp4a.40.' + adtsObjectType, manifestCodec: manifestCodec };\n}\n\nfunction isHeaderPattern(data, offset) {\n  return data[offset] === 0xff && (data[offset + 1] & 0xf6) === 0xf0;\n}\n\nfunction getHeaderLength(data, offset) {\n  return data[offset + 1] & 0x01 ? 7 : 9;\n}\n\nfunction getFullFrameLength(data, offset) {\n  return (data[offset + 3] & 0x03) << 11 | data[offset + 4] << 3 | (data[offset + 5] & 0xE0) >>> 5;\n}\n\nfunction isHeader(data, offset) {\n  // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n  // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n  // More info https://wiki.multimedia.cx/index.php?title=ADTS\n  if (offset + 1 < data.length && isHeaderPattern(data, offset)) {\n    return true;\n  }\n\n  return false;\n}\n\nfunction adts_probe(data, offset) {\n  // same as isHeader but we also check that ADTS frame follows last ADTS frame\n  // or end of data is reached\n  if (offset + 1 < data.length && isHeaderPattern(data, offset)) {\n    // ADTS header Length\n    var headerLength = getHeaderLength(data, offset);\n    // ADTS frame Length\n    var frameLength = headerLength;\n    if (offset + 5 < data.length) {\n      frameLength = getFullFrameLength(data, offset);\n    }\n\n    var newOffset = offset + frameLength;\n    if (newOffset === data.length || newOffset + 1 < data.length && isHeaderPattern(data, newOffset)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nfunction initTrackConfig(track, observer, data, offset, audioCodec) {\n  if (!track.samplerate) {\n    var config = getAudioConfig(observer, data, offset, audioCodec);\n    track.config = config.config;\n    track.samplerate = config.samplerate;\n    track.channelCount = config.channelCount;\n    track.codec = config.codec;\n    track.manifestCodec = config.manifestCodec;\n    logger[\"b\" /* logger */].log('parsed codec:' + track.codec + ',rate:' + config.samplerate + ',nb channel:' + config.channelCount);\n  }\n}\n\nfunction getFrameDuration(samplerate) {\n  return 1024 * 90000 / samplerate;\n}\n\nfunction parseFrameHeader(data, offset, pts, frameIndex, frameDuration) {\n  var headerLength = void 0,\n      frameLength = void 0,\n      stamp = void 0;\n  var length = data.length;\n\n  // The protection skip bit tells us if we have 2 bytes of CRC data at the end of the ADTS header\n  headerLength = getHeaderLength(data, offset);\n  // retrieve frame size\n  frameLength = getFullFrameLength(data, offset);\n  frameLength -= headerLength;\n\n  if (frameLength > 0 && offset + headerLength + frameLength <= length) {\n    stamp = pts + frameIndex * frameDuration;\n    // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n    return { headerLength: headerLength, frameLength: frameLength, stamp: stamp };\n  }\n\n  return undefined;\n}\n\nfunction appendFrame(track, data, offset, pts, frameIndex) {\n  var frameDuration = getFrameDuration(track.samplerate);\n  var header = parseFrameHeader(data, offset, pts, frameIndex, frameDuration);\n  if (header) {\n    var stamp = header.stamp;\n    var headerLength = header.headerLength;\n    var frameLength = header.frameLength;\n\n    // logger.log(`AAC frame, offset/length/total/pts:${offset+headerLength}/${frameLength}/${data.byteLength}/${(stamp/90).toFixed(0)}`);\n    var aacSample = {\n      unit: data.subarray(offset + headerLength, offset + headerLength + frameLength),\n      pts: stamp,\n      dts: stamp\n    };\n\n    track.samples.push(aacSample);\n    track.len += frameLength;\n\n    return { sample: aacSample, length: frameLength + headerLength };\n  }\n\n  return undefined;\n}\n// EXTERNAL MODULE: ./src/demux/id3.js\nvar id3 = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./src/demux/aacdemuxer.js\n\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * AAC demuxer\n */\n\n\n\n\nvar aacdemuxer_AACDemuxer = function () {\n  function AACDemuxer(observer, remuxer, config) {\n    _classCallCheck(this, AACDemuxer);\n\n    this.observer = observer;\n    this.config = config;\n    this.remuxer = remuxer;\n  }\n\n  AACDemuxer.prototype.resetInitSegment = function resetInitSegment(initSegment, audioCodec, videoCodec, duration) {\n    this._audioTrack = { container: 'audio/adts', type: 'audio', id: 0, sequenceNumber: 0, isAAC: true, samples: [], len: 0, manifestCodec: audioCodec, duration: duration, inputTimeScale: 90000 };\n  };\n\n  AACDemuxer.prototype.resetTimeStamp = function resetTimeStamp() {};\n\n  AACDemuxer.probe = function probe(data) {\n    if (!data) {\n      return false;\n    }\n\n    // Check for the ADTS sync word\n    // Look for ADTS header | 1111 1111 | 1111 X00X | where X can be either 0 or 1\n    // Layer bits (position 14 and 15) in header should be always 0 for ADTS\n    // More info https://wiki.multimedia.cx/index.php?title=ADTS\n    var id3Data = id3[\"a\" /* default */].getID3Data(data, 0) || [];\n    var offset = id3Data.length;\n\n    for (var length = data.length; offset < length; offset++) {\n      if (adts_probe(data, offset)) {\n        logger[\"b\" /* logger */].log('ADTS sync word found !');\n        return true;\n      }\n    }\n    return false;\n  };\n\n  // feed incoming data to the front of the parsing pipeline\n\n\n  AACDemuxer.prototype.append = function append(data, timeOffset, contiguous, accurateTimeOffset) {\n    var track = this._audioTrack;\n    var id3Data = id3[\"a\" /* default */].getID3Data(data, 0) || [];\n    var timestamp = id3[\"a\" /* default */].getTimeStamp(id3Data);\n    var pts = Object(number_isFinite[\"a\" /* isFiniteNumber */])(timestamp) ? timestamp * 90 : timeOffset * 90000;\n    var frameIndex = 0;\n    var stamp = pts;\n    var length = data.length;\n    var offset = id3Data.length;\n\n    var id3Samples = [{ pts: stamp, dts: stamp, data: id3Data }];\n\n    while (offset < length - 1) {\n      if (isHeader(data, offset) && offset + 5 < length) {\n        initTrackConfig(track, this.observer, data, offset, track.manifestCodec);\n        var frame = appendFrame(track, data, offset, pts, frameIndex);\n        if (frame) {\n          offset += frame.length;\n          stamp = frame.sample.pts;\n          frameIndex++;\n        } else {\n          logger[\"b\" /* logger */].log('Unable to parse AAC frame');\n          break;\n        }\n      } else if (id3[\"a\" /* default */].isHeader(data, offset)) {\n        id3Data = id3[\"a\" /* default */].getID3Data(data, offset);\n        id3Samples.push({ pts: stamp, dts: stamp, data: id3Data });\n        offset += id3Data.length;\n      } else {\n        // nothing found, keep looking\n        offset++;\n      }\n    }\n\n    this.remuxer.remux(track, { samples: [] }, { samples: id3Samples, inputTimeScale: 90000 }, { samples: [] }, timeOffset, contiguous, accurateTimeOffset);\n  };\n\n  AACDemuxer.prototype.destroy = function destroy() {};\n\n  return AACDemuxer;\n}();\n\n/* harmony default export */ var aacdemuxer = (aacdemuxer_AACDemuxer);\n// EXTERNAL MODULE: ./src/demux/mp4demuxer.js\nvar mp4demuxer = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./src/demux/mpegaudio.js\n/**\n *  MPEG parser helper\n */\n\nvar MpegAudio = {\n\n  BitratesMap: [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160],\n\n  SamplingRateMap: [44100, 48000, 32000, 22050, 24000, 16000, 11025, 12000, 8000],\n\n  SamplesCoefficients: [\n  // MPEG 2.5\n  [0, // Reserved\n  72, // Layer3\n  144, // Layer2\n  12 // Layer1\n  ],\n  // Reserved\n  [0, // Reserved\n  0, // Layer3\n  0, // Layer2\n  0 // Layer1\n  ],\n  // MPEG 2\n  [0, // Reserved\n  72, // Layer3\n  144, // Layer2\n  12 // Layer1\n  ],\n  // MPEG 1\n  [0, // Reserved\n  144, // Layer3\n  144, // Layer2\n  12 // Layer1\n  ]],\n\n  BytesInSlot: [0, // Reserved\n  1, // Layer3\n  1, // Layer2\n  4 // Layer1\n  ],\n\n  appendFrame: function appendFrame(track, data, offset, pts, frameIndex) {\n    // Using http://www.datavoyage.com/mpgscript/mpeghdr.htm as a reference\n    if (offset + 24 > data.length) {\n      return undefined;\n    }\n\n    var header = this.parseHeader(data, offset);\n    if (header && offset + header.frameLength <= data.length) {\n      var frameDuration = header.samplesPerFrame * 90000 / header.sampleRate;\n      var stamp = pts + frameIndex * frameDuration;\n      var sample = { unit: data.subarray(offset, offset + header.frameLength), pts: stamp, dts: stamp };\n\n      track.config = [];\n      track.channelCount = header.channelCount;\n      track.samplerate = header.sampleRate;\n      track.samples.push(sample);\n      track.len += header.frameLength;\n\n      return { sample: sample, length: header.frameLength };\n    }\n\n    return undefined;\n  },\n\n  parseHeader: function parseHeader(data, offset) {\n    var headerB = data[offset + 1] >> 3 & 3;\n    var headerC = data[offset + 1] >> 1 & 3;\n    var headerE = data[offset + 2] >> 4 & 15;\n    var headerF = data[offset + 2] >> 2 & 3;\n    var headerG = data[offset + 2] >> 1 & 1;\n    if (headerB !== 1 && headerE !== 0 && headerE !== 15 && headerF !== 3) {\n      var columnInBitrates = headerB === 3 ? 3 - headerC : headerC === 3 ? 3 : 4;\n      var bitRate = MpegAudio.BitratesMap[columnInBitrates * 14 + headerE - 1] * 1000;\n      var columnInSampleRates = headerB === 3 ? 0 : headerB === 2 ? 1 : 2;\n      var sampleRate = MpegAudio.SamplingRateMap[columnInSampleRates * 3 + headerF];\n      var channelCount = data[offset + 3] >> 6 === 3 ? 1 : 2; // If bits of channel mode are `11` then it is a single channel (Mono)\n      var sampleCoefficient = MpegAudio.SamplesCoefficients[headerB][headerC];\n      var bytesInSlot = MpegAudio.BytesInSlot[headerC];\n      var samplesPerFrame = sampleCoefficient * 8 * bytesInSlot;\n      var frameLength = parseInt(sampleCoefficient * bitRate / sampleRate + headerG, 10) * bytesInSlot;\n\n      return { sampleRate: sampleRate, channelCount: channelCount, frameLength: frameLength, samplesPerFrame: samplesPerFrame };\n    }\n\n    return undefined;\n  },\n\n  isHeaderPattern: function isHeaderPattern(data, offset) {\n    return data[offset] === 0xff && (data[offset + 1] & 0xe0) === 0xe0 && (data[offset + 1] & 0x06) !== 0x00;\n  },\n\n  isHeader: function isHeader(data, offset) {\n    // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n    // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n    // More info http://www.mp3-tech.org/programmer/frame_header.html\n    if (offset + 1 < data.length && this.isHeaderPattern(data, offset)) {\n      return true;\n    }\n\n    return false;\n  },\n\n  probe: function probe(data, offset) {\n    // same as isHeader but we also check that MPEG frame follows last MPEG frame\n    // or end of data is reached\n    if (offset + 1 < data.length && this.isHeaderPattern(data, offset)) {\n      // MPEG header Length\n      var headerLength = 4;\n      // MPEG frame Length\n      var header = this.parseHeader(data, offset);\n      var frameLength = headerLength;\n      if (header && header.frameLength) {\n        frameLength = header.frameLength;\n      }\n\n      var newOffset = offset + frameLength;\n      if (newOffset === data.length || newOffset + 1 < data.length && this.isHeaderPattern(data, newOffset)) {\n        return true;\n      }\n    }\n    return false;\n  }\n};\n\n/* harmony default export */ var mpegaudio = (MpegAudio);\n// CONCATENATED MODULE: ./src/demux/exp-golomb.js\nfunction exp_golomb__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Parser for exponential Golomb codes, a variable-bitwidth number encoding scheme used by h264.\n*/\n\n\n\nvar exp_golomb_ExpGolomb = function () {\n  function ExpGolomb(data) {\n    exp_golomb__classCallCheck(this, ExpGolomb);\n\n    this.data = data;\n    // the number of bytes left to examine in this.data\n    this.bytesAvailable = data.byteLength;\n    // the current word being examined\n    this.word = 0; // :uint\n    // the number of bits left to examine in the current word\n    this.bitsAvailable = 0; // :uint\n  }\n\n  // ():void\n\n\n  ExpGolomb.prototype.loadWord = function loadWord() {\n    var data = this.data,\n        bytesAvailable = this.bytesAvailable,\n        position = data.byteLength - bytesAvailable,\n        workingBytes = new Uint8Array(4),\n        availableBytes = Math.min(4, bytesAvailable);\n    if (availableBytes === 0) {\n      throw new Error('no bytes available');\n    }\n\n    workingBytes.set(data.subarray(position, position + availableBytes));\n    this.word = new DataView(workingBytes.buffer).getUint32(0);\n    // track the amount of this.data that has been processed\n    this.bitsAvailable = availableBytes * 8;\n    this.bytesAvailable -= availableBytes;\n  };\n\n  // (count:int):void\n\n\n  ExpGolomb.prototype.skipBits = function skipBits(count) {\n    var skipBytes = void 0; // :int\n    if (this.bitsAvailable > count) {\n      this.word <<= count;\n      this.bitsAvailable -= count;\n    } else {\n      count -= this.bitsAvailable;\n      skipBytes = count >> 3;\n      count -= skipBytes >> 3;\n      this.bytesAvailable -= skipBytes;\n      this.loadWord();\n      this.word <<= count;\n      this.bitsAvailable -= count;\n    }\n  };\n\n  // (size:int):uint\n\n\n  ExpGolomb.prototype.readBits = function readBits(size) {\n    var bits = Math.min(this.bitsAvailable, size),\n        // :uint\n    valu = this.word >>> 32 - bits; // :uint\n    if (size > 32) {\n      logger[\"b\" /* logger */].error('Cannot read more than 32 bits at a time');\n    }\n\n    this.bitsAvailable -= bits;\n    if (this.bitsAvailable > 0) {\n      this.word <<= bits;\n    } else if (this.bytesAvailable > 0) {\n      this.loadWord();\n    }\n\n    bits = size - bits;\n    if (bits > 0 && this.bitsAvailable) {\n      return valu << bits | this.readBits(bits);\n    } else {\n      return valu;\n    }\n  };\n\n  // ():uint\n\n\n  ExpGolomb.prototype.skipLZ = function skipLZ() {\n    var leadingZeroCount = void 0; // :uint\n    for (leadingZeroCount = 0; leadingZeroCount < this.bitsAvailable; ++leadingZeroCount) {\n      if ((this.word & 0x80000000 >>> leadingZeroCount) !== 0) {\n        // the first bit of working word is 1\n        this.word <<= leadingZeroCount;\n        this.bitsAvailable -= leadingZeroCount;\n        return leadingZeroCount;\n      }\n    }\n    // we exhausted word and still have not found a 1\n    this.loadWord();\n    return leadingZeroCount + this.skipLZ();\n  };\n\n  // ():void\n\n\n  ExpGolomb.prototype.skipUEG = function skipUEG() {\n    this.skipBits(1 + this.skipLZ());\n  };\n\n  // ():void\n\n\n  ExpGolomb.prototype.skipEG = function skipEG() {\n    this.skipBits(1 + this.skipLZ());\n  };\n\n  // ():uint\n\n\n  ExpGolomb.prototype.readUEG = function readUEG() {\n    var clz = this.skipLZ(); // :uint\n    return this.readBits(clz + 1) - 1;\n  };\n\n  // ():int\n\n\n  ExpGolomb.prototype.readEG = function readEG() {\n    var valu = this.readUEG(); // :int\n    if (0x01 & valu) {\n      // the number is odd if the low order bit is set\n      return 1 + valu >>> 1; // add 1 to make it even, and divide by 2\n    } else {\n      return -1 * (valu >>> 1); // divide by two then make it negative\n    }\n  };\n\n  // Some convenience functions\n  // :Boolean\n\n\n  ExpGolomb.prototype.readBoolean = function readBoolean() {\n    return this.readBits(1) === 1;\n  };\n\n  // ():int\n\n\n  ExpGolomb.prototype.readUByte = function readUByte() {\n    return this.readBits(8);\n  };\n\n  // ():int\n\n\n  ExpGolomb.prototype.readUShort = function readUShort() {\n    return this.readBits(16);\n  };\n  // ():int\n\n\n  ExpGolomb.prototype.readUInt = function readUInt() {\n    return this.readBits(32);\n  };\n\n  /**\n   * Advance the ExpGolomb decoder past a scaling list. The scaling\n   * list is optionally transmitted as part of a sequence parameter\n   * set and is not relevant to transmuxing.\n   * @param count {number} the number of entries in this scaling list\n   * @see Recommendation ITU-T H.264, Section 7.3.2.1.1.1\n   */\n\n\n  ExpGolomb.prototype.skipScalingList = function skipScalingList(count) {\n    var lastScale = 8,\n        nextScale = 8,\n        j = void 0,\n        deltaScale = void 0;\n    for (j = 0; j < count; j++) {\n      if (nextScale !== 0) {\n        deltaScale = this.readEG();\n        nextScale = (lastScale + deltaScale + 256) % 256;\n      }\n      lastScale = nextScale === 0 ? lastScale : nextScale;\n    }\n  };\n\n  /**\n   * Read a sequence parameter set and return some interesting video\n   * properties. A sequence parameter set is the H264 metadata that\n   * describes the properties of upcoming video frames.\n   * @param data {Uint8Array} the bytes of a sequence parameter set\n   * @return {object} an object with configuration parsed from the\n   * sequence parameter set, including the dimensions of the\n   * associated video frames.\n   */\n\n\n  ExpGolomb.prototype.readSPS = function readSPS() {\n    var frameCropLeftOffset = 0,\n        frameCropRightOffset = 0,\n        frameCropTopOffset = 0,\n        frameCropBottomOffset = 0,\n        profileIdc = void 0,\n        profileCompat = void 0,\n        levelIdc = void 0,\n        numRefFramesInPicOrderCntCycle = void 0,\n        picWidthInMbsMinus1 = void 0,\n        picHeightInMapUnitsMinus1 = void 0,\n        frameMbsOnlyFlag = void 0,\n        scalingListCount = void 0,\n        i = void 0,\n        readUByte = this.readUByte.bind(this),\n        readBits = this.readBits.bind(this),\n        readUEG = this.readUEG.bind(this),\n        readBoolean = this.readBoolean.bind(this),\n        skipBits = this.skipBits.bind(this),\n        skipEG = this.skipEG.bind(this),\n        skipUEG = this.skipUEG.bind(this),\n        skipScalingList = this.skipScalingList.bind(this);\n\n    readUByte();\n    profileIdc = readUByte(); // profile_idc\n    profileCompat = readBits(5); // constraint_set[0-4]_flag, u(5)\n    skipBits(3); // reserved_zero_3bits u(3),\n    levelIdc = readUByte(); // level_idc u(8)\n    skipUEG(); // seq_parameter_set_id\n    // some profiles have more optional data we don't need\n    if (profileIdc === 100 || profileIdc === 110 || profileIdc === 122 || profileIdc === 244 || profileIdc === 44 || profileIdc === 83 || profileIdc === 86 || profileIdc === 118 || profileIdc === 128) {\n      var chromaFormatIdc = readUEG();\n      if (chromaFormatIdc === 3) {\n        skipBits(1);\n      } // separate_colour_plane_flag\n\n      skipUEG(); // bit_depth_luma_minus8\n      skipUEG(); // bit_depth_chroma_minus8\n      skipBits(1); // qpprime_y_zero_transform_bypass_flag\n      if (readBoolean()) {\n        // seq_scaling_matrix_present_flag\n        scalingListCount = chromaFormatIdc !== 3 ? 8 : 12;\n        for (i = 0; i < scalingListCount; i++) {\n          if (readBoolean()) {\n            // seq_scaling_list_present_flag[ i ]\n            if (i < 6) {\n              skipScalingList(16);\n            } else {\n              skipScalingList(64);\n            }\n          }\n        }\n      }\n    }\n    skipUEG(); // log2_max_frame_num_minus4\n    var picOrderCntType = readUEG();\n    if (picOrderCntType === 0) {\n      readUEG(); // log2_max_pic_order_cnt_lsb_minus4\n    } else if (picOrderCntType === 1) {\n      skipBits(1); // delta_pic_order_always_zero_flag\n      skipEG(); // offset_for_non_ref_pic\n      skipEG(); // offset_for_top_to_bottom_field\n      numRefFramesInPicOrderCntCycle = readUEG();\n      for (i = 0; i < numRefFramesInPicOrderCntCycle; i++) {\n        skipEG();\n      } // offset_for_ref_frame[ i ]\n    }\n    skipUEG(); // max_num_ref_frames\n    skipBits(1); // gaps_in_frame_num_value_allowed_flag\n    picWidthInMbsMinus1 = readUEG();\n    picHeightInMapUnitsMinus1 = readUEG();\n    frameMbsOnlyFlag = readBits(1);\n    if (frameMbsOnlyFlag === 0) {\n      skipBits(1);\n    } // mb_adaptive_frame_field_flag\n\n    skipBits(1); // direct_8x8_inference_flag\n    if (readBoolean()) {\n      // frame_cropping_flag\n      frameCropLeftOffset = readUEG();\n      frameCropRightOffset = readUEG();\n      frameCropTopOffset = readUEG();\n      frameCropBottomOffset = readUEG();\n    }\n    var pixelRatio = [1, 1];\n    if (readBoolean()) {\n      // vui_parameters_present_flag\n      if (readBoolean()) {\n        // aspect_ratio_info_present_flag\n        var aspectRatioIdc = readUByte();\n        switch (aspectRatioIdc) {\n          case 1:\n            pixelRatio = [1, 1];break;\n          case 2:\n            pixelRatio = [12, 11];break;\n          case 3:\n            pixelRatio = [10, 11];break;\n          case 4:\n            pixelRatio = [16, 11];break;\n          case 5:\n            pixelRatio = [40, 33];break;\n          case 6:\n            pixelRatio = [24, 11];break;\n          case 7:\n            pixelRatio = [20, 11];break;\n          case 8:\n            pixelRatio = [32, 11];break;\n          case 9:\n            pixelRatio = [80, 33];break;\n          case 10:\n            pixelRatio = [18, 11];break;\n          case 11:\n            pixelRatio = [15, 11];break;\n          case 12:\n            pixelRatio = [64, 33];break;\n          case 13:\n            pixelRatio = [160, 99];break;\n          case 14:\n            pixelRatio = [4, 3];break;\n          case 15:\n            pixelRatio = [3, 2];break;\n          case 16:\n            pixelRatio = [2, 1];break;\n          case 255:\n            {\n              pixelRatio = [readUByte() << 8 | readUByte(), readUByte() << 8 | readUByte()];\n              break;\n            }\n        }\n      }\n    }\n    return {\n      width: Math.ceil((picWidthInMbsMinus1 + 1) * 16 - frameCropLeftOffset * 2 - frameCropRightOffset * 2),\n      height: (2 - frameMbsOnlyFlag) * (picHeightInMapUnitsMinus1 + 1) * 16 - (frameMbsOnlyFlag ? 2 : 4) * (frameCropTopOffset + frameCropBottomOffset),\n      pixelRatio: pixelRatio\n    };\n  };\n\n  ExpGolomb.prototype.readSliceType = function readSliceType() {\n    // skip NALu type\n    this.readUByte();\n    // discard first_mb_in_slice\n    this.readUEG();\n    // return slice_type\n    return this.readUEG();\n  };\n\n  return ExpGolomb;\n}();\n\n/* harmony default export */ var exp_golomb = (exp_golomb_ExpGolomb);\n// CONCATENATED MODULE: ./src/demux/sample-aes.js\nfunction sample_aes__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * SAMPLE-AES decrypter\n*/\n\n\n\nvar sample_aes_SampleAesDecrypter = function () {\n  function SampleAesDecrypter(observer, config, decryptdata, discardEPB) {\n    sample_aes__classCallCheck(this, SampleAesDecrypter);\n\n    this.decryptdata = decryptdata;\n    this.discardEPB = discardEPB;\n    this.decrypter = new crypt_decrypter[\"a\" /* default */](observer, config, { removePKCS7Padding: false });\n  }\n\n  SampleAesDecrypter.prototype.decryptBuffer = function decryptBuffer(encryptedData, callback) {\n    this.decrypter.decrypt(encryptedData, this.decryptdata.key.buffer, this.decryptdata.iv.buffer, callback);\n  };\n\n  // AAC - encrypt all full 16 bytes blocks starting from offset 16\n\n\n  SampleAesDecrypter.prototype.decryptAacSample = function decryptAacSample(samples, sampleIndex, callback, sync) {\n    var curUnit = samples[sampleIndex].unit;\n    var encryptedData = curUnit.subarray(16, curUnit.length - curUnit.length % 16);\n    var encryptedBuffer = encryptedData.buffer.slice(encryptedData.byteOffset, encryptedData.byteOffset + encryptedData.length);\n\n    var localthis = this;\n    this.decryptBuffer(encryptedBuffer, function (decryptedData) {\n      decryptedData = new Uint8Array(decryptedData);\n      curUnit.set(decryptedData, 16);\n\n      if (!sync) {\n        localthis.decryptAacSamples(samples, sampleIndex + 1, callback);\n      }\n    });\n  };\n\n  SampleAesDecrypter.prototype.decryptAacSamples = function decryptAacSamples(samples, sampleIndex, callback) {\n    for (;; sampleIndex++) {\n      if (sampleIndex >= samples.length) {\n        callback();\n        return;\n      }\n\n      if (samples[sampleIndex].unit.length < 32) {\n        continue;\n      }\n\n      var sync = this.decrypter.isSync();\n\n      this.decryptAacSample(samples, sampleIndex, callback, sync);\n\n      if (!sync) {\n        return;\n      }\n    }\n  };\n\n  // AVC - encrypt one 16 bytes block out of ten, starting from offset 32\n\n\n  SampleAesDecrypter.prototype.getAvcEncryptedData = function getAvcEncryptedData(decodedData) {\n    var encryptedDataLen = Math.floor((decodedData.length - 48) / 160) * 16 + 16;\n    var encryptedData = new Int8Array(encryptedDataLen);\n    var outputPos = 0;\n    for (var inputPos = 32; inputPos <= decodedData.length - 16; inputPos += 160, outputPos += 16) {\n      encryptedData.set(decodedData.subarray(inputPos, inputPos + 16), outputPos);\n    }\n\n    return encryptedData;\n  };\n\n  SampleAesDecrypter.prototype.getAvcDecryptedUnit = function getAvcDecryptedUnit(decodedData, decryptedData) {\n    decryptedData = new Uint8Array(decryptedData);\n    var inputPos = 0;\n    for (var outputPos = 32; outputPos <= decodedData.length - 16; outputPos += 160, inputPos += 16) {\n      decodedData.set(decryptedData.subarray(inputPos, inputPos + 16), outputPos);\n    }\n\n    return decodedData;\n  };\n\n  SampleAesDecrypter.prototype.decryptAvcSample = function decryptAvcSample(samples, sampleIndex, unitIndex, callback, curUnit, sync) {\n    var decodedData = this.discardEPB(curUnit.data);\n    var encryptedData = this.getAvcEncryptedData(decodedData);\n    var localthis = this;\n\n    this.decryptBuffer(encryptedData.buffer, function (decryptedData) {\n      curUnit.data = localthis.getAvcDecryptedUnit(decodedData, decryptedData);\n\n      if (!sync) {\n        localthis.decryptAvcSamples(samples, sampleIndex, unitIndex + 1, callback);\n      }\n    });\n  };\n\n  SampleAesDecrypter.prototype.decryptAvcSamples = function decryptAvcSamples(samples, sampleIndex, unitIndex, callback) {\n    for (;; sampleIndex++, unitIndex = 0) {\n      if (sampleIndex >= samples.length) {\n        callback();\n        return;\n      }\n\n      var curUnits = samples[sampleIndex].units;\n      for (;; unitIndex++) {\n        if (unitIndex >= curUnits.length) {\n          break;\n        }\n\n        var curUnit = curUnits[unitIndex];\n        if (curUnit.length <= 48 || curUnit.type !== 1 && curUnit.type !== 5) {\n          continue;\n        }\n\n        var sync = this.decrypter.isSync();\n\n        this.decryptAvcSample(samples, sampleIndex, unitIndex, callback, curUnit, sync);\n\n        if (!sync) {\n          return;\n        }\n      }\n    }\n  };\n\n  return SampleAesDecrypter;\n}();\n\n/* harmony default export */ var sample_aes = (sample_aes_SampleAesDecrypter);\n// CONCATENATED MODULE: ./src/demux/tsdemuxer.js\nfunction tsdemuxer__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * highly optimized TS demuxer:\n * parse PAT, PMT\n * extract PES packet from audio and video PIDs\n * extract AVC/H264 NAL units and AAC/ADTS samples from PES packet\n * trigger the remuxer upon parsing completion\n * it also tries to workaround as best as it can audio codec switch (HE-AAC to AAC and vice versa), without having to restart the MediaSource.\n * it also controls the remuxing process :\n * upon discontinuity or level switch detection, it will also notifies the remuxer so that it can reset its state.\n*/\n\n\n\n\n\n\n// import Hex from '../utils/hex';\n\n\n\n// We are using fixed track IDs for driving the MP4 remuxer\n// instead of following the TS PIDs.\n// There is no reason not to do this and some browsers/SourceBuffer-demuxers\n// may not like if there are TrackID \"switches\"\n// See https://github.com/video-dev/hls.js/issues/1331\n// Here we are mapping our internal track types to constant MP4 track IDs\n// With MSE currently one can only have one track of each, and we are muxing\n// whatever video/audio rendition in them.\nvar RemuxerTrackIdConfig = {\n  video: 1,\n  audio: 2,\n  id3: 3,\n  text: 4\n};\n\nvar tsdemuxer_TSDemuxer = function () {\n  function TSDemuxer(observer, remuxer, config, typeSupported) {\n    tsdemuxer__classCallCheck(this, TSDemuxer);\n\n    this.observer = observer;\n    this.config = config;\n    this.typeSupported = typeSupported;\n    this.remuxer = remuxer;\n    this.sampleAes = null;\n  }\n\n  TSDemuxer.prototype.setDecryptData = function setDecryptData(decryptdata) {\n    if (decryptdata != null && decryptdata.key != null && decryptdata.method === 'SAMPLE-AES') {\n      this.sampleAes = new sample_aes(this.observer, this.config, decryptdata, this.discardEPB);\n    } else {\n      this.sampleAes = null;\n    }\n  };\n\n  TSDemuxer.probe = function probe(data) {\n    var syncOffset = TSDemuxer._syncOffset(data);\n    if (syncOffset < 0) {\n      return false;\n    } else {\n      if (syncOffset) {\n        logger[\"b\" /* logger */].warn('MPEG2-TS detected but first sync word found @ offset ' + syncOffset + ', junk ahead ?');\n      }\n\n      return true;\n    }\n  };\n\n  TSDemuxer._syncOffset = function _syncOffset(data) {\n    // scan 1000 first bytes\n    var scanwindow = Math.min(1000, data.length - 3 * 188);\n    var i = 0;\n    while (i < scanwindow) {\n      // a TS fragment should contain at least 3 TS packets, a PAT, a PMT, and one PID, each starting with 0x47\n      if (data[i] === 0x47 && data[i + 188] === 0x47 && data[i + 2 * 188] === 0x47) {\n        return i;\n      } else {\n        i++;\n      }\n    }\n    return -1;\n  };\n\n  /**\n   * Creates a track model internal to demuxer used to drive remuxing input\n   *\n   * @param {string} type 'audio' | 'video' | 'id3' | 'text'\n   * @param {number} duration\n   * @return {object} TSDemuxer's internal track model\n   */\n\n\n  TSDemuxer.createTrack = function createTrack(type, duration) {\n    return {\n      container: type === 'video' || type === 'audio' ? 'video/mp2t' : undefined,\n      type: type,\n      id: RemuxerTrackIdConfig[type],\n      pid: -1,\n      inputTimeScale: 90000,\n      sequenceNumber: 0,\n      samples: [],\n      len: 0,\n      dropped: type === 'video' ? 0 : undefined,\n      isAAC: type === 'audio' ? true : undefined,\n      duration: type === 'audio' ? duration : undefined\n    };\n  };\n\n  /**\n   * Initializes a new init segment on the demuxer/remuxer interface. Needed for discontinuities/track-switches (or at stream start)\n   * Resets all internal track instances of the demuxer.\n   *\n   * @override Implements generic demuxing/remuxing interface (see DemuxerInline)\n   * @param {object} initSegment\n   * @param {string} audioCodec\n   * @param {string} videoCodec\n   * @param {number} duration (in TS timescale = 90kHz)\n   */\n\n\n  TSDemuxer.prototype.resetInitSegment = function resetInitSegment(initSegment, audioCodec, videoCodec, duration) {\n    this.pmtParsed = false;\n    this._pmtId = -1;\n\n    this._avcTrack = TSDemuxer.createTrack('video', duration);\n    this._audioTrack = TSDemuxer.createTrack('audio', duration);\n    this._id3Track = TSDemuxer.createTrack('id3', duration);\n    this._txtTrack = TSDemuxer.createTrack('text', duration);\n\n    // flush any partial content\n    this.aacOverFlow = null;\n    this.aacLastPTS = null;\n    this.avcSample = null;\n    this.audioCodec = audioCodec;\n    this.videoCodec = videoCodec;\n    this._duration = duration;\n  };\n\n  /**\n   *\n   * @override\n   */\n\n\n  TSDemuxer.prototype.resetTimeStamp = function resetTimeStamp() {};\n\n  // feed incoming data to the front of the parsing pipeline\n\n\n  TSDemuxer.prototype.append = function append(data, timeOffset, contiguous, accurateTimeOffset) {\n    var start = void 0,\n        len = data.length,\n        stt = void 0,\n        pid = void 0,\n        atf = void 0,\n        offset = void 0,\n        pes = void 0,\n        unknownPIDs = false;\n    this.contiguous = contiguous;\n    var pmtParsed = this.pmtParsed,\n        avcTrack = this._avcTrack,\n        audioTrack = this._audioTrack,\n        id3Track = this._id3Track,\n        avcId = avcTrack.pid,\n        audioId = audioTrack.pid,\n        id3Id = id3Track.pid,\n        pmtId = this._pmtId,\n        avcData = avcTrack.pesData,\n        audioData = audioTrack.pesData,\n        id3Data = id3Track.pesData,\n        parsePAT = this._parsePAT,\n        parsePMT = this._parsePMT,\n        parsePES = this._parsePES,\n        parseAVCPES = this._parseAVCPES.bind(this),\n        parseAACPES = this._parseAACPES.bind(this),\n        parseMPEGPES = this._parseMPEGPES.bind(this),\n        parseID3PES = this._parseID3PES.bind(this);\n\n    var syncOffset = TSDemuxer._syncOffset(data);\n\n    // don't parse last TS packet if incomplete\n    len -= (len + syncOffset) % 188;\n\n    // loop through TS packets\n    for (start = syncOffset; start < len; start += 188) {\n      if (data[start] === 0x47) {\n        stt = !!(data[start + 1] & 0x40);\n        // pid is a 13-bit field starting at the last bit of TS[1]\n        pid = ((data[start + 1] & 0x1f) << 8) + data[start + 2];\n        atf = (data[start + 3] & 0x30) >> 4;\n        // if an adaption field is present, its length is specified by the fifth byte of the TS packet header.\n        if (atf > 1) {\n          offset = start + 5 + data[start + 4];\n          // continue if there is only adaptation field\n          if (offset === start + 188) {\n            continue;\n          }\n        } else {\n          offset = start + 4;\n        }\n        switch (pid) {\n          case avcId:\n            if (stt) {\n              if (avcData && (pes = parsePES(avcData)) && pes.pts !== undefined) {\n                parseAVCPES(pes, false);\n              }\n\n              avcData = { data: [], size: 0 };\n            }\n            if (avcData) {\n              avcData.data.push(data.subarray(offset, start + 188));\n              avcData.size += start + 188 - offset;\n            }\n            break;\n          case audioId:\n            if (stt) {\n              if (audioData && (pes = parsePES(audioData)) && pes.pts !== undefined) {\n                if (audioTrack.isAAC) {\n                  parseAACPES(pes);\n                } else {\n                  parseMPEGPES(pes);\n                }\n              }\n              audioData = { data: [], size: 0 };\n            }\n            if (audioData) {\n              audioData.data.push(data.subarray(offset, start + 188));\n              audioData.size += start + 188 - offset;\n            }\n            break;\n          case id3Id:\n            if (stt) {\n              if (id3Data && (pes = parsePES(id3Data)) && pes.pts !== undefined) {\n                parseID3PES(pes);\n              }\n\n              id3Data = { data: [], size: 0 };\n            }\n            if (id3Data) {\n              id3Data.data.push(data.subarray(offset, start + 188));\n              id3Data.size += start + 188 - offset;\n            }\n            break;\n          case 0:\n            if (stt) {\n              offset += data[offset] + 1;\n            }\n\n            pmtId = this._pmtId = parsePAT(data, offset);\n            break;\n          case pmtId:\n            if (stt) {\n              offset += data[offset] + 1;\n            }\n\n            var parsedPIDs = parsePMT(data, offset, this.typeSupported.mpeg === true || this.typeSupported.mp3 === true, this.sampleAes != null);\n\n            // only update track id if track PID found while parsing PMT\n            // this is to avoid resetting the PID to -1 in case\n            // track PID transiently disappears from the stream\n            // this could happen in case of transient missing audio samples for example\n            // NOTE this is only the PID of the track as found in TS,\n            // but we are not using this for MP4 track IDs.\n            avcId = parsedPIDs.avc;\n            if (avcId > 0) {\n              avcTrack.pid = avcId;\n            }\n\n            audioId = parsedPIDs.audio;\n            if (audioId > 0) {\n              audioTrack.pid = audioId;\n              audioTrack.isAAC = parsedPIDs.isAAC;\n            }\n            id3Id = parsedPIDs.id3;\n            if (id3Id > 0) {\n              id3Track.pid = id3Id;\n            }\n\n            if (unknownPIDs && !pmtParsed) {\n              logger[\"b\" /* logger */].log('reparse from beginning');\n              unknownPIDs = false;\n              // we set it to -188, the += 188 in the for loop will reset start to 0\n              start = syncOffset - 188;\n            }\n            pmtParsed = this.pmtParsed = true;\n            break;\n          case 17:\n          case 0x1fff:\n            break;\n          default:\n            unknownPIDs = true;\n            break;\n        }\n      } else {\n        this.observer.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].FRAG_PARSING_ERROR, fatal: false, reason: 'TS packet did not start with 0x47' });\n      }\n    }\n    // try to parse last PES packets\n    if (avcData && (pes = parsePES(avcData)) && pes.pts !== undefined) {\n      parseAVCPES(pes, true);\n      avcTrack.pesData = null;\n    } else {\n      // either avcData null or PES truncated, keep it for next frag parsing\n      avcTrack.pesData = avcData;\n    }\n\n    if (audioData && (pes = parsePES(audioData)) && pes.pts !== undefined) {\n      if (audioTrack.isAAC) {\n        parseAACPES(pes);\n      } else {\n        parseMPEGPES(pes);\n      }\n\n      audioTrack.pesData = null;\n    } else {\n      if (audioData && audioData.size) {\n        logger[\"b\" /* logger */].log('last AAC PES packet truncated,might overlap between fragments');\n      }\n\n      // either audioData null or PES truncated, keep it for next frag parsing\n      audioTrack.pesData = audioData;\n    }\n\n    if (id3Data && (pes = parsePES(id3Data)) && pes.pts !== undefined) {\n      parseID3PES(pes);\n      id3Track.pesData = null;\n    } else {\n      // either id3Data null or PES truncated, keep it for next frag parsing\n      id3Track.pesData = id3Data;\n    }\n\n    if (this.sampleAes == null) {\n      this.remuxer.remux(audioTrack, avcTrack, id3Track, this._txtTrack, timeOffset, contiguous, accurateTimeOffset);\n    } else {\n      this.decryptAndRemux(audioTrack, avcTrack, id3Track, this._txtTrack, timeOffset, contiguous, accurateTimeOffset);\n    }\n  };\n\n  TSDemuxer.prototype.decryptAndRemux = function decryptAndRemux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset) {\n    if (audioTrack.samples && audioTrack.isAAC) {\n      var localthis = this;\n      this.sampleAes.decryptAacSamples(audioTrack.samples, 0, function () {\n        localthis.decryptAndRemuxAvc(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset);\n      });\n    } else {\n      this.decryptAndRemuxAvc(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset);\n    }\n  };\n\n  TSDemuxer.prototype.decryptAndRemuxAvc = function decryptAndRemuxAvc(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset) {\n    if (videoTrack.samples) {\n      var localthis = this;\n      this.sampleAes.decryptAvcSamples(videoTrack.samples, 0, 0, function () {\n        localthis.remuxer.remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset);\n      });\n    } else {\n      this.remuxer.remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset);\n    }\n  };\n\n  TSDemuxer.prototype.destroy = function destroy() {\n    this._initPTS = this._initDTS = undefined;\n    this._duration = 0;\n  };\n\n  TSDemuxer.prototype._parsePAT = function _parsePAT(data, offset) {\n    // skip the PSI header and parse the first PMT entry\n    return (data[offset + 10] & 0x1F) << 8 | data[offset + 11];\n    // logger.log('PMT PID:'  + this._pmtId);\n  };\n\n  TSDemuxer.prototype._parsePMT = function _parsePMT(data, offset, mpegSupported, isSampleAes) {\n    var sectionLength = void 0,\n        tableEnd = void 0,\n        programInfoLength = void 0,\n        pid = void 0,\n        result = { audio: -1, avc: -1, id3: -1, isAAC: true };\n    sectionLength = (data[offset + 1] & 0x0f) << 8 | data[offset + 2];\n    tableEnd = offset + 3 + sectionLength - 4;\n    // to determine where the table is, we have to figure out how\n    // long the program info descriptors are\n    programInfoLength = (data[offset + 10] & 0x0f) << 8 | data[offset + 11];\n    // advance the offset to the first entry in the mapping table\n    offset += 12 + programInfoLength;\n    while (offset < tableEnd) {\n      pid = (data[offset + 1] & 0x1F) << 8 | data[offset + 2];\n      switch (data[offset]) {\n        case 0xcf:\n          // SAMPLE-AES AAC\n          if (!isSampleAes) {\n            logger[\"b\" /* logger */].log('unkown stream type:' + data[offset]);\n            break;\n          }\n        /* falls through */\n\n        // ISO/IEC 13818-7 ADTS AAC (MPEG-2 lower bit-rate audio)\n        case 0x0f:\n          // logger.log('AAC PID:'  + pid);\n          if (result.audio === -1) {\n            result.audio = pid;\n          }\n\n          break;\n\n        // Packetized metadata (ID3)\n        case 0x15:\n          // logger.log('ID3 PID:'  + pid);\n          if (result.id3 === -1) {\n            result.id3 = pid;\n          }\n\n          break;\n\n        case 0xdb:\n          // SAMPLE-AES AVC\n          if (!isSampleAes) {\n            logger[\"b\" /* logger */].log('unkown stream type:' + data[offset]);\n            break;\n          }\n        /* falls through */\n\n        // ITU-T Rec. H.264 and ISO/IEC 14496-10 (lower bit-rate video)\n        case 0x1b:\n          // logger.log('AVC PID:'  + pid);\n          if (result.avc === -1) {\n            result.avc = pid;\n          }\n\n          break;\n\n        // ISO/IEC 11172-3 (MPEG-1 audio)\n        // or ISO/IEC 13818-3 (MPEG-2 halved sample rate audio)\n        case 0x03:\n        case 0x04:\n          // logger.log('MPEG PID:'  + pid);\n          if (!mpegSupported) {\n            logger[\"b\" /* logger */].log('MPEG audio found, not supported in this browser for now');\n          } else if (result.audio === -1) {\n            result.audio = pid;\n            result.isAAC = false;\n          }\n          break;\n\n        case 0x24:\n          logger[\"b\" /* logger */].warn('HEVC stream type found, not supported for now');\n          break;\n\n        default:\n          logger[\"b\" /* logger */].log('unkown stream type:' + data[offset]);\n          break;\n      }\n      // move to the next table entry\n      // skip past the elementary stream descriptors, if present\n      offset += ((data[offset + 3] & 0x0F) << 8 | data[offset + 4]) + 5;\n    }\n    return result;\n  };\n\n  TSDemuxer.prototype._parsePES = function _parsePES(stream) {\n    var i = 0,\n        frag = void 0,\n        pesFlags = void 0,\n        pesPrefix = void 0,\n        pesLen = void 0,\n        pesHdrLen = void 0,\n        pesData = void 0,\n        pesPts = void 0,\n        pesDts = void 0,\n        payloadStartOffset = void 0,\n        data = stream.data;\n    // safety check\n    if (!stream || stream.size === 0) {\n      return null;\n    }\n\n    // we might need up to 19 bytes to read PES header\n    // if first chunk of data is less than 19 bytes, let's merge it with following ones until we get 19 bytes\n    // usually only one merge is needed (and this is rare ...)\n    while (data[0].length < 19 && data.length > 1) {\n      var newData = new Uint8Array(data[0].length + data[1].length);\n      newData.set(data[0]);\n      newData.set(data[1], data[0].length);\n      data[0] = newData;\n      data.splice(1, 1);\n    }\n    // retrieve PTS/DTS from first fragment\n    frag = data[0];\n    pesPrefix = (frag[0] << 16) + (frag[1] << 8) + frag[2];\n    if (pesPrefix === 1) {\n      pesLen = (frag[4] << 8) + frag[5];\n      // if PES parsed length is not zero and greater than total received length, stop parsing. PES might be truncated\n      // minus 6 : PES header size\n      if (pesLen && pesLen > stream.size - 6) {\n        return null;\n      }\n\n      pesFlags = frag[7];\n      if (pesFlags & 0xC0) {\n        /* PES header described here : http://dvd.sourceforge.net/dvdinfo/pes-hdr.html\n            as PTS / DTS is 33 bit we cannot use bitwise operator in JS,\n            as Bitwise operators treat their operands as a sequence of 32 bits */\n        pesPts = (frag[9] & 0x0E) * 536870912 + // 1 << 29\n        (frag[10] & 0xFF) * 4194304 + // 1 << 22\n        (frag[11] & 0xFE) * 16384 + // 1 << 14\n        (frag[12] & 0xFF) * 128 + // 1 << 7\n        (frag[13] & 0xFE) / 2;\n        // check if greater than 2^32 -1\n        if (pesPts > 4294967295) {\n          // decrement 2^33\n          pesPts -= 8589934592;\n        }\n        if (pesFlags & 0x40) {\n          pesDts = (frag[14] & 0x0E) * 536870912 + // 1 << 29\n          (frag[15] & 0xFF) * 4194304 + // 1 << 22\n          (frag[16] & 0xFE) * 16384 + // 1 << 14\n          (frag[17] & 0xFF) * 128 + // 1 << 7\n          (frag[18] & 0xFE) / 2;\n          // check if greater than 2^32 -1\n          if (pesDts > 4294967295) {\n            // decrement 2^33\n            pesDts -= 8589934592;\n          }\n          if (pesPts - pesDts > 60 * 90000) {\n            logger[\"b\" /* logger */].warn(Math.round((pesPts - pesDts) / 90000) + 's delta between PTS and DTS, align them');\n            pesPts = pesDts;\n          }\n        } else {\n          pesDts = pesPts;\n        }\n      }\n      pesHdrLen = frag[8];\n      // 9 bytes : 6 bytes for PES header + 3 bytes for PES extension\n      payloadStartOffset = pesHdrLen + 9;\n\n      stream.size -= payloadStartOffset;\n      // reassemble PES packet\n      pesData = new Uint8Array(stream.size);\n      for (var j = 0, dataLen = data.length; j < dataLen; j++) {\n        frag = data[j];\n        var len = frag.byteLength;\n        if (payloadStartOffset) {\n          if (payloadStartOffset > len) {\n            // trim full frag if PES header bigger than frag\n            payloadStartOffset -= len;\n            continue;\n          } else {\n            // trim partial frag if PES header smaller than frag\n            frag = frag.subarray(payloadStartOffset);\n            len -= payloadStartOffset;\n            payloadStartOffset = 0;\n          }\n        }\n        pesData.set(frag, i);\n        i += len;\n      }\n      if (pesLen) {\n        // payload size : remove PES header + PES extension\n        pesLen -= pesHdrLen + 3;\n      }\n      return { data: pesData, pts: pesPts, dts: pesDts, len: pesLen };\n    } else {\n      return null;\n    }\n  };\n\n  TSDemuxer.prototype.pushAccesUnit = function pushAccesUnit(avcSample, avcTrack) {\n    if (avcSample.units.length && avcSample.frame) {\n      var samples = avcTrack.samples;\n      var nbSamples = samples.length;\n      // only push AVC sample if starting with a keyframe is not mandatory OR\n      //    if keyframe already found in this fragment OR\n      //       keyframe found in last fragment (track.sps) AND\n      //          samples already appended (we already found a keyframe in this fragment) OR fragment is contiguous\n      if (!this.config.forceKeyFrameOnDiscontinuity || avcSample.key === true || avcTrack.sps && (nbSamples || this.contiguous)) {\n        avcSample.id = nbSamples;\n        samples.push(avcSample);\n      } else {\n        // dropped samples, track it\n        avcTrack.dropped++;\n      }\n    }\n    if (avcSample.debug.length) {\n      logger[\"b\" /* logger */].log(avcSample.pts + '/' + avcSample.dts + ':' + avcSample.debug);\n    }\n  };\n\n  TSDemuxer.prototype._parseAVCPES = function _parseAVCPES(pes, last) {\n    var _this = this;\n\n    // logger.log('parse new PES');\n    var track = this._avcTrack,\n        units = this._parseAVCNALu(pes.data),\n        debug = false,\n        expGolombDecoder = void 0,\n        avcSample = this.avcSample,\n        push = void 0,\n        spsfound = false,\n        i = void 0,\n        pushAccesUnit = this.pushAccesUnit.bind(this),\n        createAVCSample = function createAVCSample(key, pts, dts, debug) {\n      return { key: key, pts: pts, dts: dts, units: [], debug: debug };\n    };\n    // free pes.data to save up some memory\n    pes.data = null;\n\n    // if new NAL units found and last sample still there, let's push ...\n    // this helps parsing streams with missing AUD (only do this if AUD never found)\n    if (avcSample && units.length && !track.audFound) {\n      pushAccesUnit(avcSample, track);\n      avcSample = this.avcSample = createAVCSample(false, pes.pts, pes.dts, '');\n    }\n\n    units.forEach(function (unit) {\n      switch (unit.type) {\n        // NDR\n        case 1:\n          push = true;\n          if (!avcSample) {\n            avcSample = _this.avcSample = createAVCSample(true, pes.pts, pes.dts, '');\n          }\n\n          if (debug) {\n            avcSample.debug += 'NDR ';\n          }\n\n          avcSample.frame = true;\n          var data = unit.data;\n          // only check slice type to detect KF in case SPS found in same packet (any keyframe is preceded by SPS ...)\n          if (spsfound && data.length > 4) {\n            // retrieve slice type by parsing beginning of NAL unit (follow H264 spec, slice_header definition) to detect keyframe embedded in NDR\n            var sliceType = new exp_golomb(data).readSliceType();\n            // 2 : I slice, 4 : SI slice, 7 : I slice, 9: SI slice\n            // SI slice : A slice that is coded using intra prediction only and using quantisation of the prediction samples.\n            // An SI slice can be coded such that its decoded samples can be constructed identically to an SP slice.\n            // I slice: A slice that is not an SI slice that is decoded using intra prediction only.\n            // if (sliceType === 2 || sliceType === 7) {\n            if (sliceType === 2 || sliceType === 4 || sliceType === 7 || sliceType === 9) {\n              avcSample.key = true;\n            }\n          }\n          break;\n        // IDR\n        case 5:\n          push = true;\n          // handle PES not starting with AUD\n          if (!avcSample) {\n            avcSample = _this.avcSample = createAVCSample(true, pes.pts, pes.dts, '');\n          }\n\n          if (debug) {\n            avcSample.debug += 'IDR ';\n          }\n\n          avcSample.key = true;\n          avcSample.frame = true;\n          break;\n        // SEI\n        case 6:\n          push = true;\n          if (debug && avcSample) {\n            avcSample.debug += 'SEI ';\n          }\n\n          expGolombDecoder = new exp_golomb(_this.discardEPB(unit.data));\n\n          // skip frameType\n          expGolombDecoder.readUByte();\n\n          var payloadType = 0;\n          var payloadSize = 0;\n          var endOfCaptions = false;\n          var b = 0;\n\n          while (!endOfCaptions && expGolombDecoder.bytesAvailable > 1) {\n            payloadType = 0;\n            do {\n              b = expGolombDecoder.readUByte();\n              payloadType += b;\n            } while (b === 0xFF);\n\n            // Parse payload size.\n            payloadSize = 0;\n            do {\n              b = expGolombDecoder.readUByte();\n              payloadSize += b;\n            } while (b === 0xFF);\n\n            // TODO: there can be more than one payload in an SEI packet...\n            // TODO: need to read type and size in a while loop to get them all\n            if (payloadType === 4 && expGolombDecoder.bytesAvailable !== 0) {\n              endOfCaptions = true;\n\n              var countryCode = expGolombDecoder.readUByte();\n\n              if (countryCode === 181) {\n                var providerCode = expGolombDecoder.readUShort();\n\n                if (providerCode === 49) {\n                  var userStructure = expGolombDecoder.readUInt();\n\n                  if (userStructure === 0x47413934) {\n                    var userDataType = expGolombDecoder.readUByte();\n\n                    // Raw CEA-608 bytes wrapped in CEA-708 packet\n                    if (userDataType === 3) {\n                      var firstByte = expGolombDecoder.readUByte();\n                      var secondByte = expGolombDecoder.readUByte();\n\n                      var totalCCs = 31 & firstByte;\n                      var byteArray = [firstByte, secondByte];\n\n                      for (i = 0; i < totalCCs; i++) {\n                        // 3 bytes per CC\n                        byteArray.push(expGolombDecoder.readUByte());\n                        byteArray.push(expGolombDecoder.readUByte());\n                        byteArray.push(expGolombDecoder.readUByte());\n                      }\n\n                      _this._insertSampleInOrder(_this._txtTrack.samples, { type: 3, pts: pes.pts, bytes: byteArray });\n                    }\n                  }\n                }\n              }\n            } else if (payloadSize < expGolombDecoder.bytesAvailable) {\n              for (i = 0; i < payloadSize; i++) {\n                expGolombDecoder.readUByte();\n              }\n            }\n          }\n          break;\n        // SPS\n        case 7:\n          push = true;\n          spsfound = true;\n          if (debug && avcSample) {\n            avcSample.debug += 'SPS ';\n          }\n\n          if (!track.sps) {\n            expGolombDecoder = new exp_golomb(unit.data);\n            var config = expGolombDecoder.readSPS();\n            track.width = config.width;\n            track.height = config.height;\n            track.pixelRatio = config.pixelRatio;\n            track.sps = [unit.data];\n            track.duration = _this._duration;\n            var codecarray = unit.data.subarray(1, 4);\n            var codecstring = 'avc1.';\n            for (i = 0; i < 3; i++) {\n              var h = codecarray[i].toString(16);\n              if (h.length < 2) {\n                h = '0' + h;\n              }\n\n              codecstring += h;\n            }\n            track.codec = codecstring;\n          }\n          break;\n        // PPS\n        case 8:\n          push = true;\n          if (debug && avcSample) {\n            avcSample.debug += 'PPS ';\n          }\n\n          if (!track.pps) {\n            track.pps = [unit.data];\n          }\n\n          break;\n        // AUD\n        case 9:\n          push = false;\n          track.audFound = true;\n          if (avcSample) {\n            pushAccesUnit(avcSample, track);\n          }\n\n          avcSample = _this.avcSample = createAVCSample(false, pes.pts, pes.dts, debug ? 'AUD ' : '');\n          break;\n        // Filler Data\n        case 12:\n          push = false;\n          break;\n        default:\n          push = false;\n          if (avcSample) {\n            avcSample.debug += 'unknown NAL ' + unit.type + ' ';\n          }\n\n          break;\n      }\n      if (avcSample && push) {\n        var _units = avcSample.units;\n        _units.push(unit);\n      }\n    });\n    // if last PES packet, push samples\n    if (last && avcSample) {\n      pushAccesUnit(avcSample, track);\n      this.avcSample = null;\n    }\n  };\n\n  TSDemuxer.prototype._insertSampleInOrder = function _insertSampleInOrder(arr, data) {\n    var len = arr.length;\n    if (len > 0) {\n      if (data.pts >= arr[len - 1].pts) {\n        arr.push(data);\n      } else {\n        for (var pos = len - 1; pos >= 0; pos--) {\n          if (data.pts < arr[pos].pts) {\n            arr.splice(pos, 0, data);\n            break;\n          }\n        }\n      }\n    } else {\n      arr.push(data);\n    }\n  };\n\n  TSDemuxer.prototype._getLastNalUnit = function _getLastNalUnit() {\n    var avcSample = this.avcSample,\n        lastUnit = void 0;\n    // try to fallback to previous sample if current one is empty\n    if (!avcSample || avcSample.units.length === 0) {\n      var track = this._avcTrack,\n          samples = track.samples;\n      avcSample = samples[samples.length - 1];\n    }\n    if (avcSample) {\n      var units = avcSample.units;\n      lastUnit = units[units.length - 1];\n    }\n    return lastUnit;\n  };\n\n  TSDemuxer.prototype._parseAVCNALu = function _parseAVCNALu(array) {\n    var i = 0,\n        len = array.byteLength,\n        value = void 0,\n        overflow = void 0,\n        track = this._avcTrack,\n        state = track.naluState || 0,\n        lastState = state;\n    var units = [],\n        unit = void 0,\n        unitType = void 0,\n        lastUnitStart = -1,\n        lastUnitType = void 0;\n    // logger.log('PES:' + Hex.hexDump(array));\n\n    if (state === -1) {\n      // special use case where we found 3 or 4-byte start codes exactly at the end of previous PES packet\n      lastUnitStart = 0;\n      // NALu type is value read from offset 0\n      lastUnitType = array[0] & 0x1f;\n      state = 0;\n      i = 1;\n    }\n\n    while (i < len) {\n      value = array[i++];\n      // optimization. state 0 and 1 are the predominant case. let's handle them outside of the switch/case\n      if (!state) {\n        state = value ? 0 : 1;\n        continue;\n      }\n      if (state === 1) {\n        state = value ? 0 : 2;\n        continue;\n      }\n      // here we have state either equal to 2 or 3\n      if (!value) {\n        state = 3;\n      } else if (value === 1) {\n        if (lastUnitStart >= 0) {\n          unit = { data: array.subarray(lastUnitStart, i - state - 1), type: lastUnitType };\n          // logger.log('pushing NALU, type/size:' + unit.type + '/' + unit.data.byteLength);\n          units.push(unit);\n        } else {\n          // lastUnitStart is undefined => this is the first start code found in this PES packet\n          // first check if start code delimiter is overlapping between 2 PES packets,\n          // ie it started in last packet (lastState not zero)\n          // and ended at the beginning of this PES packet (i <= 4 - lastState)\n          var lastUnit = this._getLastNalUnit();\n          if (lastUnit) {\n            if (lastState && i <= 4 - lastState) {\n              // start delimiter overlapping between PES packets\n              // strip start delimiter bytes from the end of last NAL unit\n              // check if lastUnit had a state different from zero\n              if (lastUnit.state) {\n                // strip last bytes\n                lastUnit.data = lastUnit.data.subarray(0, lastUnit.data.byteLength - lastState);\n              }\n            }\n            // If NAL units are not starting right at the beginning of the PES packet, push preceding data into previous NAL unit.\n            overflow = i - state - 1;\n            if (overflow > 0) {\n              // logger.log('first NALU found with overflow:' + overflow);\n              var tmp = new Uint8Array(lastUnit.data.byteLength + overflow);\n              tmp.set(lastUnit.data, 0);\n              tmp.set(array.subarray(0, overflow), lastUnit.data.byteLength);\n              lastUnit.data = tmp;\n            }\n          }\n        }\n        // check if we can read unit type\n        if (i < len) {\n          unitType = array[i] & 0x1f;\n          // logger.log('find NALU @ offset:' + i + ',type:' + unitType);\n          lastUnitStart = i;\n          lastUnitType = unitType;\n          state = 0;\n        } else {\n          // not enough byte to read unit type. let's read it on next PES parsing\n          state = -1;\n        }\n      } else {\n        state = 0;\n      }\n    }\n    if (lastUnitStart >= 0 && state >= 0) {\n      unit = { data: array.subarray(lastUnitStart, len), type: lastUnitType, state: state };\n      units.push(unit);\n      // logger.log('pushing NALU, type/size/state:' + unit.type + '/' + unit.data.byteLength + '/' + state);\n    }\n    // no NALu found\n    if (units.length === 0) {\n      // append pes.data to previous NAL unit\n      var _lastUnit = this._getLastNalUnit();\n      if (_lastUnit) {\n        var _tmp = new Uint8Array(_lastUnit.data.byteLength + array.byteLength);\n        _tmp.set(_lastUnit.data, 0);\n        _tmp.set(array, _lastUnit.data.byteLength);\n        _lastUnit.data = _tmp;\n      }\n    }\n    track.naluState = state;\n    return units;\n  };\n\n  /**\n   * remove Emulation Prevention bytes from a RBSP\n   */\n\n\n  TSDemuxer.prototype.discardEPB = function discardEPB(data) {\n    var length = data.byteLength,\n        EPBPositions = [],\n        i = 1,\n        newLength = void 0,\n        newData = void 0;\n\n    // Find all `Emulation Prevention Bytes`\n    while (i < length - 2) {\n      if (data[i] === 0 && data[i + 1] === 0 && data[i + 2] === 0x03) {\n        EPBPositions.push(i + 2);\n        i += 2;\n      } else {\n        i++;\n      }\n    }\n\n    // If no Emulation Prevention Bytes were found just return the original\n    // array\n    if (EPBPositions.length === 0) {\n      return data;\n    }\n\n    // Create a new array to hold the NAL unit data\n    newLength = length - EPBPositions.length;\n    newData = new Uint8Array(newLength);\n    var sourceIndex = 0;\n\n    for (i = 0; i < newLength; sourceIndex++, i++) {\n      if (sourceIndex === EPBPositions[0]) {\n        // Skip this byte\n        sourceIndex++;\n        // Remove this position index\n        EPBPositions.shift();\n      }\n      newData[i] = data[sourceIndex];\n    }\n    return newData;\n  };\n\n  TSDemuxer.prototype._parseAACPES = function _parseAACPES(pes) {\n    var track = this._audioTrack,\n        data = pes.data,\n        pts = pes.pts,\n        startOffset = 0,\n        aacOverFlow = this.aacOverFlow,\n        aacLastPTS = this.aacLastPTS,\n        frameDuration = void 0,\n        frameIndex = void 0,\n        offset = void 0,\n        stamp = void 0,\n        len = void 0;\n    if (aacOverFlow) {\n      var tmp = new Uint8Array(aacOverFlow.byteLength + data.byteLength);\n      tmp.set(aacOverFlow, 0);\n      tmp.set(data, aacOverFlow.byteLength);\n      // logger.log(`AAC: append overflowing ${aacOverFlow.byteLength} bytes to beginning of new PES`);\n      data = tmp;\n    }\n    // look for ADTS header (0xFFFx)\n    for (offset = startOffset, len = data.length; offset < len - 1; offset++) {\n      if (isHeader(data, offset)) {\n        break;\n      }\n    }\n    // if ADTS header does not start straight from the beginning of the PES payload, raise an error\n    if (offset) {\n      var reason = void 0,\n          fatal = void 0;\n      if (offset < len - 1) {\n        reason = 'AAC PES did not start with ADTS header,offset:' + offset;\n        fatal = false;\n      } else {\n        reason = 'no ADTS header found in AAC PES';\n        fatal = true;\n      }\n      logger[\"b\" /* logger */].warn('parsing error:' + reason);\n      this.observer.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].FRAG_PARSING_ERROR, fatal: fatal, reason: reason });\n      if (fatal) {\n        return;\n      }\n    }\n\n    initTrackConfig(track, this.observer, data, offset, this.audioCodec);\n    frameIndex = 0;\n    frameDuration = getFrameDuration(track.samplerate);\n\n    // if last AAC frame is overflowing, we should ensure timestamps are contiguous:\n    // first sample PTS should be equal to last sample PTS + frameDuration\n    if (aacOverFlow && aacLastPTS) {\n      var newPTS = aacLastPTS + frameDuration;\n      if (Math.abs(newPTS - pts) > 1) {\n        logger[\"b\" /* logger */].log('AAC: align PTS for overlapping frames by ' + Math.round((newPTS - pts) / 90));\n        pts = newPTS;\n      }\n    }\n\n    // scan for aac samples\n    while (offset < len) {\n      if (isHeader(data, offset) && offset + 5 < len) {\n        var frame = appendFrame(track, data, offset, pts, frameIndex);\n        if (frame) {\n          // logger.log(`${Math.round(frame.sample.pts)} : AAC`);\n          offset += frame.length;\n          stamp = frame.sample.pts;\n          frameIndex++;\n        } else {\n          // logger.log('Unable to parse AAC frame');\n          break;\n        }\n      } else {\n        // nothing found, keep looking\n        offset++;\n      }\n    }\n\n    if (offset < len) {\n      aacOverFlow = data.subarray(offset, len);\n      // logger.log(`AAC: overflow detected:${len-offset}`);\n    } else {\n      aacOverFlow = null;\n    }\n\n    this.aacOverFlow = aacOverFlow;\n    this.aacLastPTS = stamp;\n  };\n\n  TSDemuxer.prototype._parseMPEGPES = function _parseMPEGPES(pes) {\n    var data = pes.data;\n    var length = data.length;\n    var frameIndex = 0;\n    var offset = 0;\n    var pts = pes.pts;\n\n    while (offset < length) {\n      if (mpegaudio.isHeader(data, offset)) {\n        var frame = mpegaudio.appendFrame(this._audioTrack, data, offset, pts, frameIndex);\n        if (frame) {\n          offset += frame.length;\n          frameIndex++;\n        } else {\n          // logger.log('Unable to parse Mpeg audio frame');\n          break;\n        }\n      } else {\n        // nothing found, keep looking\n        offset++;\n      }\n    }\n  };\n\n  TSDemuxer.prototype._parseID3PES = function _parseID3PES(pes) {\n    this._id3Track.samples.push(pes);\n  };\n\n  return TSDemuxer;\n}();\n\n/* harmony default export */ var tsdemuxer = (tsdemuxer_TSDemuxer);\n// CONCATENATED MODULE: ./src/demux/mp3demuxer.js\nfunction mp3demuxer__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * MP3 demuxer\n */\n\n\n\n\nvar mp3demuxer_MP3Demuxer = function () {\n  function MP3Demuxer(observer, remuxer, config) {\n    mp3demuxer__classCallCheck(this, MP3Demuxer);\n\n    this.observer = observer;\n    this.config = config;\n    this.remuxer = remuxer;\n  }\n\n  MP3Demuxer.prototype.resetInitSegment = function resetInitSegment(initSegment, audioCodec, videoCodec, duration) {\n    this._audioTrack = { container: 'audio/mpeg', type: 'audio', id: -1, sequenceNumber: 0, isAAC: false, samples: [], len: 0, manifestCodec: audioCodec, duration: duration, inputTimeScale: 90000 };\n  };\n\n  MP3Demuxer.prototype.resetTimeStamp = function resetTimeStamp() {};\n\n  MP3Demuxer.probe = function probe(data) {\n    // check if data contains ID3 timestamp and MPEG sync word\n    var offset = void 0,\n        length = void 0;\n    var id3Data = id3[\"a\" /* default */].getID3Data(data, 0);\n    if (id3Data && id3[\"a\" /* default */].getTimeStamp(id3Data) !== undefined) {\n      // Look for MPEG header | 1111 1111 | 111X XYZX | where X can be either 0 or 1 and Y or Z should be 1\n      // Layer bits (position 14 and 15) in header should be always different from 0 (Layer I or Layer II or Layer III)\n      // More info http://www.mp3-tech.org/programmer/frame_header.html\n      for (offset = id3Data.length, length = Math.min(data.length - 1, offset + 100); offset < length; offset++) {\n        if (mpegaudio.probe(data, offset)) {\n          logger[\"b\" /* logger */].log('MPEG Audio sync word found !');\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n\n  // feed incoming data to the front of the parsing pipeline\n\n\n  MP3Demuxer.prototype.append = function append(data, timeOffset, contiguous, accurateTimeOffset) {\n    var id3Data = id3[\"a\" /* default */].getID3Data(data, 0);\n    var timestamp = id3[\"a\" /* default */].getTimeStamp(id3Data);\n    var pts = timestamp ? 90 * timestamp : timeOffset * 90000;\n    var offset = id3Data.length;\n    var length = data.length;\n    var frameIndex = 0,\n        stamp = 0;\n    var track = this._audioTrack;\n\n    var id3Samples = [{ pts: pts, dts: pts, data: id3Data }];\n\n    while (offset < length) {\n      if (mpegaudio.isHeader(data, offset)) {\n        var frame = mpegaudio.appendFrame(track, data, offset, pts, frameIndex);\n        if (frame) {\n          offset += frame.length;\n          stamp = frame.sample.pts;\n          frameIndex++;\n        } else {\n          // logger.log('Unable to parse Mpeg audio frame');\n          break;\n        }\n      } else if (id3[\"a\" /* default */].isHeader(data, offset)) {\n        id3Data = id3[\"a\" /* default */].getID3Data(data, offset);\n        id3Samples.push({ pts: stamp, dts: stamp, data: id3Data });\n        offset += id3Data.length;\n      } else {\n        // nothing found, keep looking\n        offset++;\n      }\n    }\n\n    this.remuxer.remux(track, { samples: [] }, { samples: id3Samples, inputTimeScale: 90000 }, { samples: [] }, timeOffset, contiguous, accurateTimeOffset);\n  };\n\n  MP3Demuxer.prototype.destroy = function destroy() {};\n\n  return MP3Demuxer;\n}();\n\n/* harmony default export */ var mp3demuxer = (mp3demuxer_MP3Demuxer);\n// CONCATENATED MODULE: ./src/remux/aac-helper.js\nfunction aac_helper__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n *  AAC helper\n */\n\nvar AAC = function () {\n  function AAC() {\n    aac_helper__classCallCheck(this, AAC);\n  }\n\n  AAC.getSilentFrame = function getSilentFrame(codec, channelCount) {\n    switch (codec) {\n      case 'mp4a.40.2':\n        if (channelCount === 1) {\n          return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x23, 0x80]);\n        } else if (channelCount === 2) {\n          return new Uint8Array([0x21, 0x00, 0x49, 0x90, 0x02, 0x19, 0x00, 0x23, 0x80]);\n        } else if (channelCount === 3) {\n          return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x8e]);\n        } else if (channelCount === 4) {\n          return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x80, 0x2c, 0x80, 0x08, 0x02, 0x38]);\n        } else if (channelCount === 5) {\n          return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x38]);\n        } else if (channelCount === 6) {\n          return new Uint8Array([0x00, 0xc8, 0x00, 0x80, 0x20, 0x84, 0x01, 0x26, 0x40, 0x08, 0x64, 0x00, 0x82, 0x30, 0x04, 0x99, 0x00, 0x21, 0x90, 0x02, 0x00, 0xb2, 0x00, 0x20, 0x08, 0xe0]);\n        }\n\n        break;\n      // handle HE-AAC below (mp4a.40.5 / mp4a.40.29)\n      default:\n        if (channelCount === 1) {\n          // ffmpeg -y -f lavfi -i \"aevalsrc=0:d=0.05\" -c:a libfdk_aac -profile:a aac_he -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n          return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x4e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x1c, 0x6, 0xf1, 0xc1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n        } else if (channelCount === 2) {\n          // ffmpeg -y -f lavfi -i \"aevalsrc=0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n          return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n        } else if (channelCount === 3) {\n          // ffmpeg -y -f lavfi -i \"aevalsrc=0|0|0:d=0.05\" -c:a libfdk_aac -profile:a aac_he_v2 -b:a 4k output.aac && hexdump -v -e '16/1 \"0x%x,\" \"\\n\"' -v output.aac\n          return new Uint8Array([0x1, 0x40, 0x22, 0x80, 0xa3, 0x5e, 0xe6, 0x80, 0xba, 0x8, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x6, 0xf1, 0xa1, 0xa, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e]);\n        }\n        break;\n    }\n    return null;\n  };\n\n  return AAC;\n}();\n\n/* harmony default export */ var aac_helper = (AAC);\n// CONCATENATED MODULE: ./src/remux/mp4-generator.js\nfunction mp4_generator__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Generate MP4 Box\n*/\n\nvar UINT32_MAX = Math.pow(2, 32) - 1;\n\nvar MP4 = function () {\n  function MP4() {\n    mp4_generator__classCallCheck(this, MP4);\n  }\n\n  MP4.init = function init() {\n    MP4.types = {\n      avc1: [], // codingname\n      avcC: [],\n      btrt: [],\n      dinf: [],\n      dref: [],\n      esds: [],\n      ftyp: [],\n      hdlr: [],\n      mdat: [],\n      mdhd: [],\n      mdia: [],\n      mfhd: [],\n      minf: [],\n      moof: [],\n      moov: [],\n      mp4a: [],\n      '.mp3': [],\n      mvex: [],\n      mvhd: [],\n      pasp: [],\n      sdtp: [],\n      stbl: [],\n      stco: [],\n      stsc: [],\n      stsd: [],\n      stsz: [],\n      stts: [],\n      tfdt: [],\n      tfhd: [],\n      traf: [],\n      trak: [],\n      trun: [],\n      trex: [],\n      tkhd: [],\n      vmhd: [],\n      smhd: []\n    };\n\n    var i = void 0;\n    for (i in MP4.types) {\n      if (MP4.types.hasOwnProperty(i)) {\n        MP4.types[i] = [i.charCodeAt(0), i.charCodeAt(1), i.charCodeAt(2), i.charCodeAt(3)];\n      }\n    }\n\n    var videoHdlr = new Uint8Array([0x00, // version 0\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, 0x00, 0x00, // pre_defined\n    0x76, 0x69, 0x64, 0x65, // handler_type: 'vide'\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x56, 0x69, 0x64, 0x65, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'VideoHandler'\n    ]);\n\n    var audioHdlr = new Uint8Array([0x00, // version 0\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, 0x00, 0x00, // pre_defined\n    0x73, 0x6f, 0x75, 0x6e, // handler_type: 'soun'\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x53, 0x6f, 0x75, 0x6e, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x00 // name: 'SoundHandler'\n    ]);\n\n    MP4.HDLR_TYPES = {\n      'video': videoHdlr,\n      'audio': audioHdlr\n    };\n\n    var dref = new Uint8Array([0x00, // version 0\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, 0x00, 0x01, // entry_count\n    0x00, 0x00, 0x00, 0x0c, // entry_size\n    0x75, 0x72, 0x6c, 0x20, // 'url' type\n    0x00, // version 0\n    0x00, 0x00, 0x01 // entry_flags\n    ]);\n\n    var stco = new Uint8Array([0x00, // version\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, 0x00, 0x00 // entry_count\n    ]);\n\n    MP4.STTS = MP4.STSC = MP4.STCO = stco;\n\n    MP4.STSZ = new Uint8Array([0x00, // version\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, 0x00, 0x00, // sample_size\n    0x00, 0x00, 0x00, 0x00 // sample_count\n    ]);\n    MP4.VMHD = new Uint8Array([0x00, // version\n    0x00, 0x00, 0x01, // flags\n    0x00, 0x00, // graphicsmode\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // opcolor\n    ]);\n    MP4.SMHD = new Uint8Array([0x00, // version\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, // balance\n    0x00, 0x00 // reserved\n    ]);\n\n    MP4.STSD = new Uint8Array([0x00, // version 0\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, 0x00, 0x01]); // entry_count\n\n    var majorBrand = new Uint8Array([105, 115, 111, 109]); // isom\n    var avc1Brand = new Uint8Array([97, 118, 99, 49]); // avc1\n    var minorVersion = new Uint8Array([0, 0, 0, 1]);\n\n    MP4.FTYP = MP4.box(MP4.types.ftyp, majorBrand, minorVersion, majorBrand, avc1Brand);\n    MP4.DINF = MP4.box(MP4.types.dinf, MP4.box(MP4.types.dref, dref));\n  };\n\n  MP4.box = function box(type) {\n    var payload = Array.prototype.slice.call(arguments, 1),\n        size = 8,\n        i = payload.length,\n        len = i,\n        result = void 0;\n    // calculate the total size we need to allocate\n    while (i--) {\n      size += payload[i].byteLength;\n    }\n\n    result = new Uint8Array(size);\n    result[0] = size >> 24 & 0xff;\n    result[1] = size >> 16 & 0xff;\n    result[2] = size >> 8 & 0xff;\n    result[3] = size & 0xff;\n    result.set(type, 4);\n    // copy the payload into the result\n    for (i = 0, size = 8; i < len; i++) {\n      // copy payload[i] array @ offset size\n      result.set(payload[i], size);\n      size += payload[i].byteLength;\n    }\n    return result;\n  };\n\n  MP4.hdlr = function hdlr(type) {\n    return MP4.box(MP4.types.hdlr, MP4.HDLR_TYPES[type]);\n  };\n\n  MP4.mdat = function mdat(data) {\n    return MP4.box(MP4.types.mdat, data);\n  };\n\n  MP4.mdhd = function mdhd(timescale, duration) {\n    duration *= timescale;\n    var upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n    var lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n    return MP4.box(MP4.types.mdhd, new Uint8Array([0x01, // version 1\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n    timescale >> 24 & 0xFF, timescale >> 16 & 0xFF, timescale >> 8 & 0xFF, timescale & 0xFF, // timescale\n    upperWordDuration >> 24, upperWordDuration >> 16 & 0xFF, upperWordDuration >> 8 & 0xFF, upperWordDuration & 0xFF, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xFF, lowerWordDuration >> 8 & 0xFF, lowerWordDuration & 0xFF, 0x55, 0xc4, // 'und' language (undetermined)\n    0x00, 0x00]));\n  };\n\n  MP4.mdia = function mdia(track) {\n    return MP4.box(MP4.types.mdia, MP4.mdhd(track.timescale, track.duration), MP4.hdlr(track.type), MP4.minf(track));\n  };\n\n  MP4.mfhd = function mfhd(sequenceNumber) {\n    return MP4.box(MP4.types.mfhd, new Uint8Array([0x00, 0x00, 0x00, 0x00, // flags\n    sequenceNumber >> 24, sequenceNumber >> 16 & 0xFF, sequenceNumber >> 8 & 0xFF, sequenceNumber & 0xFF // sequence_number\n    ]));\n  };\n\n  MP4.minf = function minf(track) {\n    if (track.type === 'audio') {\n      return MP4.box(MP4.types.minf, MP4.box(MP4.types.smhd, MP4.SMHD), MP4.DINF, MP4.stbl(track));\n    } else {\n      return MP4.box(MP4.types.minf, MP4.box(MP4.types.vmhd, MP4.VMHD), MP4.DINF, MP4.stbl(track));\n    }\n  };\n\n  MP4.moof = function moof(sn, baseMediaDecodeTime, track) {\n    return MP4.box(MP4.types.moof, MP4.mfhd(sn), MP4.traf(track, baseMediaDecodeTime));\n  };\n  /**\n  * @param tracks... (optional) {array} the tracks associated with this movie\n  */\n\n\n  MP4.moov = function moov(tracks) {\n    var i = tracks.length,\n        boxes = [];\n\n    while (i--) {\n      boxes[i] = MP4.trak(tracks[i]);\n    }\n\n    return MP4.box.apply(null, [MP4.types.moov, MP4.mvhd(tracks[0].timescale, tracks[0].duration)].concat(boxes).concat(MP4.mvex(tracks)));\n  };\n\n  MP4.mvex = function mvex(tracks) {\n    var i = tracks.length,\n        boxes = [];\n\n    while (i--) {\n      boxes[i] = MP4.trex(tracks[i]);\n    }\n\n    return MP4.box.apply(null, [MP4.types.mvex].concat(boxes));\n  };\n\n  MP4.mvhd = function mvhd(timescale, duration) {\n    duration *= timescale;\n    var upperWordDuration = Math.floor(duration / (UINT32_MAX + 1));\n    var lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n    var bytes = new Uint8Array([0x01, // version 1\n    0x00, 0x00, 0x00, // flags\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n    timescale >> 24 & 0xFF, timescale >> 16 & 0xFF, timescale >> 8 & 0xFF, timescale & 0xFF, // timescale\n    upperWordDuration >> 24, upperWordDuration >> 16 & 0xFF, upperWordDuration >> 8 & 0xFF, upperWordDuration & 0xFF, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xFF, lowerWordDuration >> 8 & 0xFF, lowerWordDuration & 0xFF, 0x00, 0x01, 0x00, 0x00, // 1.0 rate\n    0x01, 0x00, // 1.0 volume\n    0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // transformation: unity matrix\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined\n    0xff, 0xff, 0xff, 0xff // next_track_ID\n    ]);\n    return MP4.box(MP4.types.mvhd, bytes);\n  };\n\n  MP4.sdtp = function sdtp(track) {\n    var samples = track.samples || [],\n        bytes = new Uint8Array(4 + samples.length),\n        flags = void 0,\n        i = void 0;\n    // leave the full box header (4 bytes) all zero\n    // write the sample table\n    for (i = 0; i < samples.length; i++) {\n      flags = samples[i].flags;\n      bytes[i + 4] = flags.dependsOn << 4 | flags.isDependedOn << 2 | flags.hasRedundancy;\n    }\n\n    return MP4.box(MP4.types.sdtp, bytes);\n  };\n\n  MP4.stbl = function stbl(track) {\n    return MP4.box(MP4.types.stbl, MP4.stsd(track), MP4.box(MP4.types.stts, MP4.STTS), MP4.box(MP4.types.stsc, MP4.STSC), MP4.box(MP4.types.stsz, MP4.STSZ), MP4.box(MP4.types.stco, MP4.STCO));\n  };\n\n  MP4.avc1 = function avc1(track) {\n    var sps = [],\n        pps = [],\n        i = void 0,\n        data = void 0,\n        len = void 0;\n    // assemble the SPSs\n\n    for (i = 0; i < track.sps.length; i++) {\n      data = track.sps[i];\n      len = data.byteLength;\n      sps.push(len >>> 8 & 0xFF);\n      sps.push(len & 0xFF);\n\n      // SPS\n      sps = sps.concat(Array.prototype.slice.call(data));\n    }\n\n    // assemble the PPSs\n    for (i = 0; i < track.pps.length; i++) {\n      data = track.pps[i];\n      len = data.byteLength;\n      pps.push(len >>> 8 & 0xFF);\n      pps.push(len & 0xFF);\n\n      pps = pps.concat(Array.prototype.slice.call(data));\n    }\n\n    var avcc = MP4.box(MP4.types.avcC, new Uint8Array([0x01, // version\n    sps[3], // profile\n    sps[4], // profile compat\n    sps[5], // level\n    0xfc | 3, // lengthSizeMinusOne, hard-coded to 4 bytes\n    0xE0 | track.sps.length // 3bit reserved (111) + numOfSequenceParameterSets\n    ].concat(sps).concat([track.pps.length // numOfPictureParameterSets\n    ]).concat(pps))),\n        // \"PPS\"\n    width = track.width,\n        height = track.height,\n        hSpacing = track.pixelRatio[0],\n        vSpacing = track.pixelRatio[1];\n\n    return MP4.box(MP4.types.avc1, new Uint8Array([0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, // reserved\n    0x00, 0x01, // data_reference_index\n    0x00, 0x00, // pre_defined\n    0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // pre_defined\n    width >> 8 & 0xFF, width & 0xff, // width\n    height >> 8 & 0xFF, height & 0xff, // height\n    0x00, 0x48, 0x00, 0x00, // horizresolution\n    0x00, 0x48, 0x00, 0x00, // vertresolution\n    0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, 0x01, // frame_count\n    0x12, 0x64, 0x61, 0x69, 0x6C, // dailymotion/hls.js\n    0x79, 0x6D, 0x6F, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x68, 0x6C, 0x73, 0x2E, 0x6A, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // compressorname\n    0x00, 0x18, // depth = 24\n    0x11, 0x11]), // pre_defined = -1\n    avcc, MP4.box(MP4.types.btrt, new Uint8Array([0x00, 0x1c, 0x9c, 0x80, // bufferSizeDB\n    0x00, 0x2d, 0xc6, 0xc0, // maxBitrate\n    0x00, 0x2d, 0xc6, 0xc0])), // avgBitrate\n    MP4.box(MP4.types.pasp, new Uint8Array([hSpacing >> 24, // hSpacing\n    hSpacing >> 16 & 0xFF, hSpacing >> 8 & 0xFF, hSpacing & 0xFF, vSpacing >> 24, // vSpacing\n    vSpacing >> 16 & 0xFF, vSpacing >> 8 & 0xFF, vSpacing & 0xFF])));\n  };\n\n  MP4.esds = function esds(track) {\n    var configlen = track.config.length;\n    return new Uint8Array([0x00, // version 0\n    0x00, 0x00, 0x00, // flags\n\n    0x03, // descriptor_type\n    0x17 + configlen, // length\n    0x00, 0x01, // es_id\n    0x00, // stream_priority\n\n    0x04, // descriptor_type\n    0x0f + configlen, // length\n    0x40, // codec : mpeg4_audio\n    0x15, // stream_type\n    0x00, 0x00, 0x00, // buffer_size\n    0x00, 0x00, 0x00, 0x00, // maxBitrate\n    0x00, 0x00, 0x00, 0x00, // avgBitrate\n\n    0x05 // descriptor_type\n    ].concat([configlen]).concat(track.config).concat([0x06, 0x01, 0x02])); // GASpecificConfig)); // length + audio config descriptor\n  };\n\n  MP4.mp4a = function mp4a(track) {\n    var samplerate = track.samplerate;\n    return MP4.box(MP4.types.mp4a, new Uint8Array([0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, // reserved\n    0x00, 0x01, // data_reference_index\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, track.channelCount, // channelcount\n    0x00, 0x10, // sampleSize:16bits\n    0x00, 0x00, 0x00, 0x00, // reserved2\n    samplerate >> 8 & 0xFF, samplerate & 0xff, //\n    0x00, 0x00]), MP4.box(MP4.types.esds, MP4.esds(track)));\n  };\n\n  MP4.mp3 = function mp3(track) {\n    var samplerate = track.samplerate;\n    return MP4.box(MP4.types['.mp3'], new Uint8Array([0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, 0x00, // reserved\n    0x00, 0x01, // data_reference_index\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, track.channelCount, // channelcount\n    0x00, 0x10, // sampleSize:16bits\n    0x00, 0x00, 0x00, 0x00, // reserved2\n    samplerate >> 8 & 0xFF, samplerate & 0xff, //\n    0x00, 0x00]));\n  };\n\n  MP4.stsd = function stsd(track) {\n    if (track.type === 'audio') {\n      if (!track.isAAC && track.codec === 'mp3') {\n        return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp3(track));\n      }\n\n      return MP4.box(MP4.types.stsd, MP4.STSD, MP4.mp4a(track));\n    } else {\n      return MP4.box(MP4.types.stsd, MP4.STSD, MP4.avc1(track));\n    }\n  };\n\n  MP4.tkhd = function tkhd(track) {\n    var id = track.id,\n        duration = track.duration * track.timescale,\n        width = track.width,\n        height = track.height,\n        upperWordDuration = Math.floor(duration / (UINT32_MAX + 1)),\n        lowerWordDuration = Math.floor(duration % (UINT32_MAX + 1));\n    return MP4.box(MP4.types.tkhd, new Uint8Array([0x01, // version 1\n    0x00, 0x00, 0x07, // flags\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, // creation_time\n    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, // modification_time\n    id >> 24 & 0xFF, id >> 16 & 0xFF, id >> 8 & 0xFF, id & 0xFF, // track_ID\n    0x00, 0x00, 0x00, 0x00, // reserved\n    upperWordDuration >> 24, upperWordDuration >> 16 & 0xFF, upperWordDuration >> 8 & 0xFF, upperWordDuration & 0xFF, lowerWordDuration >> 24, lowerWordDuration >> 16 & 0xFF, lowerWordDuration >> 8 & 0xFF, lowerWordDuration & 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // reserved\n    0x00, 0x00, // layer\n    0x00, 0x00, // alternate_group\n    0x00, 0x00, // non-audio track volume\n    0x00, 0x00, // reserved\n    0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, // transformation: unity matrix\n    width >> 8 & 0xFF, width & 0xFF, 0x00, 0x00, // width\n    height >> 8 & 0xFF, height & 0xFF, 0x00, 0x00 // height\n    ]));\n  };\n\n  MP4.traf = function traf(track, baseMediaDecodeTime) {\n    var sampleDependencyTable = MP4.sdtp(track),\n        id = track.id,\n        upperWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime / (UINT32_MAX + 1)),\n        lowerWordBaseMediaDecodeTime = Math.floor(baseMediaDecodeTime % (UINT32_MAX + 1));\n    return MP4.box(MP4.types.traf, MP4.box(MP4.types.tfhd, new Uint8Array([0x00, // version 0\n    0x00, 0x00, 0x00, // flags\n    id >> 24, id >> 16 & 0XFF, id >> 8 & 0XFF, id & 0xFF]) // track_ID\n    ), MP4.box(MP4.types.tfdt, new Uint8Array([0x01, // version 1\n    0x00, 0x00, 0x00, // flags\n    upperWordBaseMediaDecodeTime >> 24, upperWordBaseMediaDecodeTime >> 16 & 0XFF, upperWordBaseMediaDecodeTime >> 8 & 0XFF, upperWordBaseMediaDecodeTime & 0xFF, lowerWordBaseMediaDecodeTime >> 24, lowerWordBaseMediaDecodeTime >> 16 & 0XFF, lowerWordBaseMediaDecodeTime >> 8 & 0XFF, lowerWordBaseMediaDecodeTime & 0xFF])), MP4.trun(track, sampleDependencyTable.length + 16 + // tfhd\n    20 + // tfdt\n    8 + // traf header\n    16 + // mfhd\n    8 + // moof header\n    8), // mdat header\n    sampleDependencyTable);\n  };\n\n  /**\n   * Generate a track box.\n   * @param track {object} a track definition\n   * @return {Uint8Array} the track box\n   */\n\n\n  MP4.trak = function trak(track) {\n    track.duration = track.duration || 0xffffffff;\n    return MP4.box(MP4.types.trak, MP4.tkhd(track), MP4.mdia(track));\n  };\n\n  MP4.trex = function trex(track) {\n    var id = track.id;\n    return MP4.box(MP4.types.trex, new Uint8Array([0x00, // version 0\n    0x00, 0x00, 0x00, // flags\n    id >> 24, id >> 16 & 0XFF, id >> 8 & 0XFF, id & 0xFF, // track_ID\n    0x00, 0x00, 0x00, 0x01, // default_sample_description_index\n    0x00, 0x00, 0x00, 0x00, // default_sample_duration\n    0x00, 0x00, 0x00, 0x00, // default_sample_size\n    0x00, 0x01, 0x00, 0x01 // default_sample_flags\n    ]));\n  };\n\n  MP4.trun = function trun(track, offset) {\n    var samples = track.samples || [],\n        len = samples.length,\n        arraylen = 12 + 16 * len,\n        array = new Uint8Array(arraylen),\n        i = void 0,\n        sample = void 0,\n        duration = void 0,\n        size = void 0,\n        flags = void 0,\n        cts = void 0;\n    offset += 8 + arraylen;\n    array.set([0x00, // version 0\n    0x00, 0x0f, 0x01, // flags\n    len >>> 24 & 0xFF, len >>> 16 & 0xFF, len >>> 8 & 0xFF, len & 0xFF, // sample_count\n    offset >>> 24 & 0xFF, offset >>> 16 & 0xFF, offset >>> 8 & 0xFF, offset & 0xFF // data_offset\n    ], 0);\n    for (i = 0; i < len; i++) {\n      sample = samples[i];\n      duration = sample.duration;\n      size = sample.size;\n      flags = sample.flags;\n      cts = sample.cts;\n      array.set([duration >>> 24 & 0xFF, duration >>> 16 & 0xFF, duration >>> 8 & 0xFF, duration & 0xFF, // sample_duration\n      size >>> 24 & 0xFF, size >>> 16 & 0xFF, size >>> 8 & 0xFF, size & 0xFF, // sample_size\n      flags.isLeading << 2 | flags.dependsOn, flags.isDependedOn << 6 | flags.hasRedundancy << 4 | flags.paddingValue << 1 | flags.isNonSync, flags.degradPrio & 0xF0 << 8, flags.degradPrio & 0x0F, // sample_flags\n      cts >>> 24 & 0xFF, cts >>> 16 & 0xFF, cts >>> 8 & 0xFF, cts & 0xFF // sample_composition_time_offset\n      ], 12 + 16 * i);\n    }\n    return MP4.box(MP4.types.trun, array);\n  };\n\n  MP4.initSegment = function initSegment(tracks) {\n    if (!MP4.types) {\n      MP4.init();\n    }\n\n    var movie = MP4.moov(tracks),\n        result = void 0;\n    result = new Uint8Array(MP4.FTYP.byteLength + movie.byteLength);\n    result.set(MP4.FTYP);\n    result.set(movie, MP4.FTYP.byteLength);\n    return result;\n  };\n\n  return MP4;\n}();\n\n/* harmony default export */ var mp4_generator = (MP4);\n// CONCATENATED MODULE: ./src/remux/mp4-remuxer.js\nfunction mp4_remuxer__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * fMP4 remuxer\n*/\n\n\n\n\n\n\n\n\n\n// 10 seconds\nvar MAX_SILENT_FRAME_DURATION = 10 * 1000;\n\nvar mp4_remuxer_MP4Remuxer = function () {\n  function MP4Remuxer(observer, config, typeSupported, vendor) {\n    mp4_remuxer__classCallCheck(this, MP4Remuxer);\n\n    this.observer = observer;\n    this.config = config;\n    this.typeSupported = typeSupported;\n    var userAgent = navigator.userAgent;\n    this.isSafari = vendor && vendor.indexOf('Apple') > -1 && userAgent && !userAgent.match('CriOS');\n    this.ISGenerated = false;\n  }\n\n  MP4Remuxer.prototype.destroy = function destroy() {};\n\n  MP4Remuxer.prototype.resetTimeStamp = function resetTimeStamp(defaultTimeStamp) {\n    this._initPTS = this._initDTS = defaultTimeStamp;\n  };\n\n  MP4Remuxer.prototype.resetInitSegment = function resetInitSegment() {\n    this.ISGenerated = false;\n  };\n\n  MP4Remuxer.prototype.remux = function remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset) {\n    // generate Init Segment if needed\n    if (!this.ISGenerated) {\n      this.generateIS(audioTrack, videoTrack, timeOffset);\n    }\n\n    if (this.ISGenerated) {\n      var nbAudioSamples = audioTrack.samples.length;\n      var nbVideoSamples = videoTrack.samples.length;\n      var audioTimeOffset = timeOffset;\n      var videoTimeOffset = timeOffset;\n      if (nbAudioSamples && nbVideoSamples) {\n        // timeOffset is expected to be the offset of the first timestamp of this fragment (first DTS)\n        // if first audio DTS is not aligned with first video DTS then we need to take that into account\n        // when providing timeOffset to remuxAudio / remuxVideo. if we don't do that, there might be a permanent / small\n        // drift between audio and video streams\n        var audiovideoDeltaDts = (audioTrack.samples[0].dts - videoTrack.samples[0].dts) / videoTrack.inputTimeScale;\n        audioTimeOffset += Math.max(0, audiovideoDeltaDts);\n        videoTimeOffset += Math.max(0, -audiovideoDeltaDts);\n      }\n      // Purposefully remuxing audio before video, so that remuxVideo can use nextAudioPts, which is\n      // calculated in remuxAudio.\n      // logger.log('nb AAC samples:' + audioTrack.samples.length);\n      if (nbAudioSamples) {\n        // if initSegment was generated without video samples, regenerate it again\n        if (!audioTrack.timescale) {\n          logger[\"b\" /* logger */].warn('regenerate InitSegment as audio detected');\n          this.generateIS(audioTrack, videoTrack, timeOffset);\n        }\n        var audioData = this.remuxAudio(audioTrack, audioTimeOffset, contiguous, accurateTimeOffset);\n        // logger.log('nb AVC samples:' + videoTrack.samples.length);\n        if (nbVideoSamples) {\n          var audioTrackLength = void 0;\n          if (audioData) {\n            audioTrackLength = audioData.endPTS - audioData.startPTS;\n          }\n\n          // if initSegment was generated without video samples, regenerate it again\n          if (!videoTrack.timescale) {\n            logger[\"b\" /* logger */].warn('regenerate InitSegment as video detected');\n            this.generateIS(audioTrack, videoTrack, timeOffset);\n          }\n          this.remuxVideo(videoTrack, videoTimeOffset, contiguous, audioTrackLength, accurateTimeOffset);\n        }\n      } else {\n        // logger.log('nb AVC samples:' + videoTrack.samples.length);\n        if (nbVideoSamples) {\n          var videoData = this.remuxVideo(videoTrack, videoTimeOffset, contiguous, 0, accurateTimeOffset);\n          if (videoData && audioTrack.codec) {\n            this.remuxEmptyAudio(audioTrack, audioTimeOffset, contiguous, videoData);\n          }\n        }\n      }\n    }\n    // logger.log('nb ID3 samples:' + audioTrack.samples.length);\n    if (id3Track.samples.length) {\n      this.remuxID3(id3Track, timeOffset);\n    }\n\n    // logger.log('nb ID3 samples:' + audioTrack.samples.length);\n    if (textTrack.samples.length) {\n      this.remuxText(textTrack, timeOffset);\n    }\n\n    // notify end of parsing\n    this.observer.trigger(events[\"a\" /* default */].FRAG_PARSED);\n  };\n\n  MP4Remuxer.prototype.generateIS = function generateIS(audioTrack, videoTrack, timeOffset) {\n    var observer = this.observer,\n        audioSamples = audioTrack.samples,\n        videoSamples = videoTrack.samples,\n        typeSupported = this.typeSupported,\n        container = 'audio/mp4',\n        tracks = {},\n        data = { tracks: tracks },\n        computePTSDTS = this._initPTS === undefined,\n        initPTS = void 0,\n        initDTS = void 0;\n\n    if (computePTSDTS) {\n      initPTS = initDTS = Infinity;\n    }\n\n    if (audioTrack.config && audioSamples.length) {\n      // let's use audio sampling rate as MP4 time scale.\n      // rationale is that there is a integer nb of audio frames per audio sample (1024 for AAC)\n      // using audio sampling rate here helps having an integer MP4 frame duration\n      // this avoids potential rounding issue and AV sync issue\n      audioTrack.timescale = audioTrack.samplerate;\n      logger[\"b\" /* logger */].log('audio sampling rate : ' + audioTrack.samplerate);\n      if (!audioTrack.isAAC) {\n        if (typeSupported.mpeg) {\n          // Chrome and Safari\n          container = 'audio/mpeg';\n          audioTrack.codec = '';\n        } else if (typeSupported.mp3) {\n          // Firefox\n          audioTrack.codec = 'mp3';\n        }\n      }\n      tracks.audio = {\n        container: container,\n        codec: audioTrack.codec,\n        initSegment: !audioTrack.isAAC && typeSupported.mpeg ? new Uint8Array() : mp4_generator.initSegment([audioTrack]),\n        metadata: {\n          channelCount: audioTrack.channelCount\n        }\n      };\n      if (computePTSDTS) {\n        // remember first PTS of this demuxing context. for audio, PTS = DTS\n        initPTS = initDTS = audioSamples[0].pts - audioTrack.inputTimeScale * timeOffset;\n      }\n    }\n\n    if (videoTrack.sps && videoTrack.pps && videoSamples.length) {\n      // let's use input time scale as MP4 video timescale\n      // we use input time scale straight away to avoid rounding issues on frame duration / cts computation\n      var inputTimeScale = videoTrack.inputTimeScale;\n      videoTrack.timescale = inputTimeScale;\n      tracks.video = {\n        container: 'video/mp4',\n        codec: videoTrack.codec,\n        initSegment: mp4_generator.initSegment([videoTrack]),\n        metadata: {\n          width: videoTrack.width,\n          height: videoTrack.height\n        }\n      };\n      if (computePTSDTS) {\n        initPTS = Math.min(initPTS, videoSamples[0].pts - inputTimeScale * timeOffset);\n        initDTS = Math.min(initDTS, videoSamples[0].dts - inputTimeScale * timeOffset);\n        this.observer.trigger(events[\"a\" /* default */].INIT_PTS_FOUND, { initPTS: initPTS });\n      }\n    }\n\n    if (Object.keys(tracks).length) {\n      observer.trigger(events[\"a\" /* default */].FRAG_PARSING_INIT_SEGMENT, data);\n      this.ISGenerated = true;\n      if (computePTSDTS) {\n        this._initPTS = initPTS;\n        this._initDTS = initDTS;\n      }\n    } else {\n      observer.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].FRAG_PARSING_ERROR, fatal: false, reason: 'no audio/video samples found' });\n    }\n  };\n\n  MP4Remuxer.prototype.remuxVideo = function remuxVideo(track, timeOffset, contiguous, audioTrackLength, accurateTimeOffset) {\n    var offset = 8,\n        timeScale = track.timescale,\n        mp4SampleDuration = void 0,\n        mdat = void 0,\n        moof = void 0,\n        firstPTS = void 0,\n        firstDTS = void 0,\n        nextDTS = void 0,\n        lastPTS = void 0,\n        lastDTS = void 0,\n        inputSamples = track.samples,\n        outputSamples = [],\n        nbSamples = inputSamples.length,\n        ptsNormalize = this._PTSNormalize,\n        initDTS = this._initDTS;\n\n    // for (let i = 0; i < track.samples.length; i++) {\n    //   let avcSample = track.samples[i];\n    //   let units = avcSample.units;\n    //   let unitsString = '';\n    //   for (let j = 0; j < units.length ; j++) {\n    //     unitsString += units[j].type + ',';\n    //     if (units[j].data.length < 500) {\n    //       unitsString += Hex.hexDump(units[j].data);\n    //     }\n    //   }\n    //   logger.log(avcSample.pts + '/' + avcSample.dts + ',' + unitsString + avcSample.units.length);\n    // }\n\n    // if parsed fragment is contiguous with last one, let's use last DTS value as reference\n    var nextAvcDts = this.nextAvcDts;\n\n    var isSafari = this.isSafari;\n\n    if (nbSamples === 0) {\n      return;\n    }\n\n    // Safari does not like overlapping DTS on consecutive fragments. let's use nextAvcDts to overcome this if fragments are consecutive\n    if (isSafari) {\n      // also consider consecutive fragments as being contiguous (even if a level switch occurs),\n      // for sake of clarity:\n      // consecutive fragments are frags with\n      //  - less than 100ms gaps between new time offset (if accurate) and next expected PTS OR\n      //  - less than 200 ms PTS gaps (timeScale/5)\n      contiguous |= inputSamples.length && nextAvcDts && (accurateTimeOffset && Math.abs(timeOffset - nextAvcDts / timeScale) < 0.1 || Math.abs(inputSamples[0].pts - nextAvcDts - initDTS) < timeScale / 5);\n    }\n\n    if (!contiguous) {\n      // if not contiguous, let's use target timeOffset\n      nextAvcDts = timeOffset * timeScale;\n    }\n\n    // PTS is coded on 33bits, and can loop from -2^32 to 2^32\n    // ptsNormalize will make PTS/DTS value monotonic, we use last known DTS value as reference value\n    inputSamples.forEach(function (sample) {\n      sample.pts = ptsNormalize(sample.pts - initDTS, nextAvcDts);\n      sample.dts = ptsNormalize(sample.dts - initDTS, nextAvcDts);\n    });\n\n    // sort video samples by DTS then PTS then demux id order\n    inputSamples.sort(function (a, b) {\n      var deltadts = a.dts - b.dts;\n      var deltapts = a.pts - b.pts;\n      return deltadts || deltapts || a.id - b.id;\n    });\n\n    // handle broken streams with PTS < DTS, tolerance up 200ms (18000 in 90kHz timescale)\n    var PTSDTSshift = inputSamples.reduce(function (prev, curr) {\n      return Math.max(Math.min(prev, curr.pts - curr.dts), -18000);\n    }, 0);\n    if (PTSDTSshift < 0) {\n      logger[\"b\" /* logger */].warn('PTS < DTS detected in video samples, shifting DTS by ' + Math.round(PTSDTSshift / 90) + ' ms to overcome this issue');\n      for (var i = 0; i < inputSamples.length; i++) {\n        inputSamples[i].dts += PTSDTSshift;\n      }\n    }\n\n    // compute first DTS and last DTS, normalize them against reference value\n    var sample = inputSamples[0];\n    firstDTS = Math.max(sample.dts, 0);\n    firstPTS = Math.max(sample.pts, 0);\n\n    // check timestamp continuity accross consecutive fragments (this is to remove inter-fragment gap/hole)\n    var delta = Math.round((firstDTS - nextAvcDts) / 90);\n    // if fragment are contiguous, detect hole/overlapping between fragments\n    if (contiguous) {\n      if (delta) {\n        if (delta > 1) {\n          logger[\"b\" /* logger */].log('AVC:' + delta + ' ms hole between fragments detected,filling it');\n        } else if (delta < -1) {\n          logger[\"b\" /* logger */].log('AVC:' + -delta + ' ms overlapping between fragments detected');\n        }\n\n        // remove hole/gap : set DTS to next expected DTS\n        firstDTS = nextAvcDts;\n        inputSamples[0].dts = firstDTS;\n        // offset PTS as well, ensure that PTS is smaller or equal than new DTS\n        firstPTS = Math.max(firstPTS - delta, nextAvcDts);\n        inputSamples[0].pts = firstPTS;\n        logger[\"b\" /* logger */].log('Video/PTS/DTS adjusted: ' + Math.round(firstPTS / 90) + '/' + Math.round(firstDTS / 90) + ',delta:' + delta + ' ms');\n      }\n    }\n    nextDTS = firstDTS;\n\n    // compute lastPTS/lastDTS\n    sample = inputSamples[inputSamples.length - 1];\n    lastDTS = Math.max(sample.dts, 0);\n    lastPTS = Math.max(sample.pts, 0, lastDTS);\n\n    // on Safari let's signal the same sample duration for all samples\n    // sample duration (as expected by trun MP4 boxes), should be the delta between sample DTS\n    // set this constant duration as being the avg delta between consecutive DTS.\n    if (isSafari) {\n      mp4SampleDuration = Math.round((lastDTS - firstDTS) / (inputSamples.length - 1));\n    }\n\n    var nbNalu = 0,\n        naluLen = 0;\n    for (var _i = 0; _i < nbSamples; _i++) {\n      // compute total/avc sample length and nb of NAL units\n      var _sample = inputSamples[_i],\n          units = _sample.units,\n          nbUnits = units.length,\n          sampleLen = 0;\n      for (var j = 0; j < nbUnits; j++) {\n        sampleLen += units[j].data.length;\n      }\n\n      naluLen += sampleLen;\n      nbNalu += nbUnits;\n      _sample.length = sampleLen;\n\n      // normalize PTS/DTS\n      if (isSafari) {\n        // sample DTS is computed using a constant decoding offset (mp4SampleDuration) between samples\n        _sample.dts = firstDTS + _i * mp4SampleDuration;\n      } else {\n        // ensure sample monotonic DTS\n        _sample.dts = Math.max(_sample.dts, firstDTS);\n      }\n      // ensure that computed value is greater or equal than sample DTS\n      _sample.pts = Math.max(_sample.pts, _sample.dts);\n    }\n\n    /* concatenate the video data and construct the mdat in place\n      (need 8 more bytes to fill length and mpdat type) */\n    var mdatSize = naluLen + 4 * nbNalu + 8;\n    try {\n      mdat = new Uint8Array(mdatSize);\n    } catch (err) {\n      this.observer.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MUX_ERROR, details: errors[\"a\" /* ErrorDetails */].REMUX_ALLOC_ERROR, fatal: false, bytes: mdatSize, reason: 'fail allocating video mdat ' + mdatSize });\n      return;\n    }\n    var view = new DataView(mdat.buffer);\n    view.setUint32(0, mdatSize);\n    mdat.set(mp4_generator.types.mdat, 4);\n\n    for (var _i2 = 0; _i2 < nbSamples; _i2++) {\n      var avcSample = inputSamples[_i2],\n          avcSampleUnits = avcSample.units,\n          mp4SampleLength = 0,\n          compositionTimeOffset = void 0;\n      // convert NALU bitstream to MP4 format (prepend NALU with size field)\n      for (var _j = 0, _nbUnits = avcSampleUnits.length; _j < _nbUnits; _j++) {\n        var unit = avcSampleUnits[_j],\n            unitData = unit.data,\n            unitDataLen = unit.data.byteLength;\n        view.setUint32(offset, unitDataLen);\n        offset += 4;\n        mdat.set(unitData, offset);\n        offset += unitDataLen;\n        mp4SampleLength += 4 + unitDataLen;\n      }\n\n      if (!isSafari) {\n        // expected sample duration is the Decoding Timestamp diff of consecutive samples\n        if (_i2 < nbSamples - 1) {\n          mp4SampleDuration = inputSamples[_i2 + 1].dts - avcSample.dts;\n        } else {\n          var config = this.config,\n              lastFrameDuration = avcSample.dts - inputSamples[_i2 > 0 ? _i2 - 1 : _i2].dts;\n          if (config.stretchShortVideoTrack) {\n            // In some cases, a segment's audio track duration may exceed the video track duration.\n            // Since we've already remuxed audio, and we know how long the audio track is, we look to\n            // see if the delta to the next segment is longer than maxBufferHole.\n            // If so, playback would potentially get stuck, so we artificially inflate\n            // the duration of the last frame to minimize any potential gap between segments.\n            var maxBufferHole = config.maxBufferHole,\n                gapTolerance = Math.floor(maxBufferHole * timeScale),\n                deltaToFrameEnd = (audioTrackLength ? firstPTS + audioTrackLength * timeScale : this.nextAudioPts) - avcSample.pts;\n            if (deltaToFrameEnd > gapTolerance) {\n              // We subtract lastFrameDuration from deltaToFrameEnd to try to prevent any video\n              // frame overlap. maxBufferHole should be >> lastFrameDuration anyway.\n              mp4SampleDuration = deltaToFrameEnd - lastFrameDuration;\n              if (mp4SampleDuration < 0) {\n                mp4SampleDuration = lastFrameDuration;\n              }\n\n              logger[\"b\" /* logger */].log('It is approximately ' + deltaToFrameEnd / 90 + ' ms to the next segment; using duration ' + mp4SampleDuration / 90 + ' ms for the last video frame.');\n            } else {\n              mp4SampleDuration = lastFrameDuration;\n            }\n          } else {\n            mp4SampleDuration = lastFrameDuration;\n          }\n        }\n        compositionTimeOffset = Math.round(avcSample.pts - avcSample.dts);\n      } else {\n        compositionTimeOffset = Math.max(0, mp4SampleDuration * Math.round((avcSample.pts - avcSample.dts) / mp4SampleDuration));\n      }\n\n      // console.log('PTS/DTS/initDTS/normPTS/normDTS/relative PTS : ${avcSample.pts}/${avcSample.dts}/${initDTS}/${ptsnorm}/${dtsnorm}/${(avcSample.pts/4294967296).toFixed(3)}');\n      outputSamples.push({\n        size: mp4SampleLength,\n        // constant duration\n        duration: mp4SampleDuration,\n        cts: compositionTimeOffset,\n        flags: {\n          isLeading: 0,\n          isDependedOn: 0,\n          hasRedundancy: 0,\n          degradPrio: 0,\n          dependsOn: avcSample.key ? 2 : 1,\n          isNonSync: avcSample.key ? 0 : 1\n        }\n      });\n    }\n    // next AVC sample DTS should be equal to last sample DTS + last sample duration (in PES timescale)\n    this.nextAvcDts = lastDTS + mp4SampleDuration;\n    var dropped = track.dropped;\n    track.len = 0;\n    track.nbNalu = 0;\n    track.dropped = 0;\n    if (outputSamples.length && navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {\n      var flags = outputSamples[0].flags;\n      // chrome workaround, mark first sample as being a Random Access Point to avoid sourcebuffer append issue\n      // https://code.google.com/p/chromium/issues/detail?id=229412\n      flags.dependsOn = 2;\n      flags.isNonSync = 0;\n    }\n    track.samples = outputSamples;\n    moof = mp4_generator.moof(track.sequenceNumber++, firstDTS, track);\n    track.samples = [];\n\n    var data = {\n      data1: moof,\n      data2: mdat,\n      startPTS: firstPTS / timeScale,\n      endPTS: (lastPTS + mp4SampleDuration) / timeScale,\n      startDTS: firstDTS / timeScale,\n      endDTS: this.nextAvcDts / timeScale,\n      type: 'video',\n      hasAudio: false,\n      hasVideo: true,\n      nb: outputSamples.length,\n      dropped: dropped\n    };\n    this.observer.trigger(events[\"a\" /* default */].FRAG_PARSING_DATA, data);\n    return data;\n  };\n\n  MP4Remuxer.prototype.remuxAudio = function remuxAudio(track, timeOffset, contiguous, accurateTimeOffset) {\n    var inputTimeScale = track.inputTimeScale,\n        mp4timeScale = track.timescale,\n        scaleFactor = inputTimeScale / mp4timeScale,\n        mp4SampleDuration = track.isAAC ? 1024 : 1152,\n        inputSampleDuration = mp4SampleDuration * scaleFactor,\n        ptsNormalize = this._PTSNormalize,\n        initDTS = this._initDTS,\n        rawMPEG = !track.isAAC && this.typeSupported.mpeg;\n\n    var offset = void 0,\n        mp4Sample = void 0,\n        fillFrame = void 0,\n        mdat = void 0,\n        moof = void 0,\n        firstPTS = void 0,\n        lastPTS = void 0,\n        inputSamples = track.samples,\n        outputSamples = [],\n        nextAudioPts = this.nextAudioPts;\n\n    // for audio samples, also consider consecutive fragments as being contiguous (even if a level switch occurs),\n    // for sake of clarity:\n    // consecutive fragments are frags with\n    //  - less than 100ms gaps between new time offset (if accurate) and next expected PTS OR\n    //  - less than 20 audio frames distance\n    // contiguous fragments are consecutive fragments from same quality level (same level, new SN = old SN + 1)\n    // this helps ensuring audio continuity\n    // and this also avoids audio glitches/cut when switching quality, or reporting wrong duration on first audio frame\n    contiguous |= inputSamples.length && nextAudioPts && (accurateTimeOffset && Math.abs(timeOffset - nextAudioPts / inputTimeScale) < 0.1 || Math.abs(inputSamples[0].pts - nextAudioPts - initDTS) < 20 * inputSampleDuration);\n\n    // compute normalized PTS\n    inputSamples.forEach(function (sample) {\n      sample.pts = sample.dts = ptsNormalize(sample.pts - initDTS, timeOffset * inputTimeScale);\n    });\n\n    // filter out sample with negative PTS that are not playable anyway\n    // if we don't remove these negative samples, they will shift all audio samples forward.\n    // leading to audio overlap between current / next fragment\n    inputSamples = inputSamples.filter(function (sample) {\n      return sample.pts >= 0;\n    });\n\n    // in case all samples have negative PTS, and have been filtered out, return now\n    if (inputSamples.length === 0) {\n      return;\n    }\n\n    if (!contiguous) {\n      if (!accurateTimeOffset) {\n        // if frag are mot contiguous and if we cant trust time offset, let's use first sample PTS as next audio PTS\n        nextAudioPts = inputSamples[0].pts;\n      } else {\n        // if timeOffset is accurate, let's use it as predicted next audio PTS\n        nextAudioPts = timeOffset * inputTimeScale;\n      }\n    }\n\n    // If the audio track is missing samples, the frames seem to get \"left-shifted\" within the\n    // resulting mp4 segment, causing sync issues and leaving gaps at the end of the audio segment.\n    // In an effort to prevent this from happening, we inject frames here where there are gaps.\n    // When possible, we inject a silent frame; when that's not possible, we duplicate the last\n    // frame.\n\n    if (track.isAAC) {\n      var maxAudioFramesDrift = this.config.maxAudioFramesDrift;\n      for (var i = 0, nextPts = nextAudioPts; i < inputSamples.length;) {\n        // First, let's see how far off this frame is from where we expect it to be\n        var sample = inputSamples[i],\n            delta;\n        var pts = sample.pts;\n        delta = pts - nextPts;\n\n        var duration = Math.abs(1000 * delta / inputTimeScale);\n\n        // If we're overlapping by more than a duration, drop this sample\n        if (delta <= -maxAudioFramesDrift * inputSampleDuration) {\n          logger[\"b\" /* logger */].warn('Dropping 1 audio frame @ ' + (nextPts / inputTimeScale).toFixed(3) + 's due to ' + Math.round(duration) + ' ms overlap.');\n          inputSamples.splice(i, 1);\n          track.len -= sample.unit.length;\n          // Don't touch nextPtsNorm or i\n        } // eslint-disable-line brace-style\n\n        // Insert missing frames if:\n        // 1: We're more than maxAudioFramesDrift frame away\n        // 2: Not more than MAX_SILENT_FRAME_DURATION away\n        // 3: currentTime (aka nextPtsNorm) is not 0\n        else if (delta >= maxAudioFramesDrift * inputSampleDuration && duration < MAX_SILENT_FRAME_DURATION && nextPts) {\n            var missing = Math.round(delta / inputSampleDuration);\n            logger[\"b\" /* logger */].warn('Injecting ' + missing + ' audio frame @ ' + (nextPts / inputTimeScale).toFixed(3) + 's due to ' + Math.round(1000 * delta / inputTimeScale) + ' ms gap.');\n            for (var j = 0; j < missing; j++) {\n              var newStamp = Math.max(nextPts, 0);\n              fillFrame = aac_helper.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n              if (!fillFrame) {\n                logger[\"b\" /* logger */].log('Unable to get silent frame for given audio codec; duplicating last frame instead.');\n                fillFrame = sample.unit.subarray();\n              }\n              inputSamples.splice(i, 0, { unit: fillFrame, pts: newStamp, dts: newStamp });\n              track.len += fillFrame.length;\n              nextPts += inputSampleDuration;\n              i++;\n            }\n\n            // Adjust sample to next expected pts\n            sample.pts = sample.dts = nextPts;\n            nextPts += inputSampleDuration;\n            i++;\n          } else {\n            // Otherwise, just adjust pts\n            if (Math.abs(delta) > 0.1 * inputSampleDuration) {\n              // logger.log(`Invalid frame delta ${Math.round(delta + inputSampleDuration)} at PTS ${Math.round(pts / 90)} (should be ${Math.round(inputSampleDuration)}).`);\n            }\n            sample.pts = sample.dts = nextPts;\n            nextPts += inputSampleDuration;\n            i++;\n          }\n      }\n    }\n\n    for (var _j2 = 0, _nbSamples = inputSamples.length; _j2 < _nbSamples; _j2++) {\n      var audioSample = inputSamples[_j2];\n      var unit = audioSample.unit;\n      var _pts = audioSample.pts;\n      // logger.log(`Audio/PTS:${Math.round(pts/90)}`);\n      // if not first sample\n      if (lastPTS !== undefined) {\n        mp4Sample.duration = Math.round((_pts - lastPTS) / scaleFactor);\n      } else {\n        var _delta = Math.round(1000 * (_pts - nextAudioPts) / inputTimeScale),\n            numMissingFrames = 0;\n        // if fragment are contiguous, detect hole/overlapping between fragments\n        // contiguous fragments are consecutive fragments from same quality level (same level, new SN = old SN + 1)\n        if (contiguous && track.isAAC) {\n          // log delta\n          if (_delta) {\n            if (_delta > 0 && _delta < MAX_SILENT_FRAME_DURATION) {\n              numMissingFrames = Math.round((_pts - nextAudioPts) / inputSampleDuration);\n              logger[\"b\" /* logger */].log(_delta + ' ms hole between AAC samples detected,filling it');\n              if (numMissingFrames > 0) {\n                fillFrame = aac_helper.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n                if (!fillFrame) {\n                  fillFrame = unit.subarray();\n                }\n\n                track.len += numMissingFrames * fillFrame.length;\n              }\n              // if we have frame overlap, overlapping for more than half a frame duraion\n            } else if (_delta < -12) {\n              // drop overlapping audio frames... browser will deal with it\n              logger[\"b\" /* logger */].log('drop overlapping AAC sample, expected/parsed/delta:' + (nextAudioPts / inputTimeScale).toFixed(3) + 's/' + (_pts / inputTimeScale).toFixed(3) + 's/' + -_delta + 'ms');\n              track.len -= unit.byteLength;\n              continue;\n            }\n            // set PTS/DTS to expected PTS/DTS\n            _pts = nextAudioPts;\n          }\n        }\n        // remember first PTS of our audioSamples\n        firstPTS = _pts;\n        if (track.len > 0) {\n          /* concatenate the audio data and construct the mdat in place\n            (need 8 more bytes to fill length and mdat type) */\n          var mdatSize = rawMPEG ? track.len : track.len + 8;\n          offset = rawMPEG ? 0 : 8;\n          try {\n            mdat = new Uint8Array(mdatSize);\n          } catch (err) {\n            this.observer.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MUX_ERROR, details: errors[\"a\" /* ErrorDetails */].REMUX_ALLOC_ERROR, fatal: false, bytes: mdatSize, reason: 'fail allocating audio mdat ' + mdatSize });\n            return;\n          }\n          if (!rawMPEG) {\n            var view = new DataView(mdat.buffer);\n            view.setUint32(0, mdatSize);\n            mdat.set(mp4_generator.types.mdat, 4);\n          }\n        } else {\n          // no audio samples\n          return;\n        }\n        for (var _i3 = 0; _i3 < numMissingFrames; _i3++) {\n          fillFrame = aac_helper.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n          if (!fillFrame) {\n            logger[\"b\" /* logger */].log('Unable to get silent frame for given audio codec; duplicating this frame instead.');\n            fillFrame = unit.subarray();\n          }\n          mdat.set(fillFrame, offset);\n          offset += fillFrame.byteLength;\n          mp4Sample = {\n            size: fillFrame.byteLength,\n            cts: 0,\n            duration: 1024,\n            flags: {\n              isLeading: 0,\n              isDependedOn: 0,\n              hasRedundancy: 0,\n              degradPrio: 0,\n              dependsOn: 1\n            }\n          };\n          outputSamples.push(mp4Sample);\n        }\n      }\n      mdat.set(unit, offset);\n      var unitLen = unit.byteLength;\n      offset += unitLen;\n      // console.log('PTS/DTS/initDTS/normPTS/normDTS/relative PTS : ${audioSample.pts}/${audioSample.dts}/${initDTS}/${ptsnorm}/${dtsnorm}/${(audioSample.pts/4294967296).toFixed(3)}');\n      mp4Sample = {\n        size: unitLen,\n        cts: 0,\n        duration: 0,\n        flags: {\n          isLeading: 0,\n          isDependedOn: 0,\n          hasRedundancy: 0,\n          degradPrio: 0,\n          dependsOn: 1\n        }\n      };\n      outputSamples.push(mp4Sample);\n      lastPTS = _pts;\n    }\n    var lastSampleDuration = 0;\n    var nbSamples = outputSamples.length;\n    // set last sample duration as being identical to previous sample\n    if (nbSamples >= 2) {\n      lastSampleDuration = outputSamples[nbSamples - 2].duration;\n      mp4Sample.duration = lastSampleDuration;\n    }\n    if (nbSamples) {\n      // next audio sample PTS should be equal to last sample PTS + duration\n      this.nextAudioPts = nextAudioPts = lastPTS + scaleFactor * lastSampleDuration;\n      // logger.log('Audio/PTS/PTSend:' + audioSample.pts.toFixed(0) + '/' + this.nextAacDts.toFixed(0));\n      track.len = 0;\n      track.samples = outputSamples;\n      if (rawMPEG) {\n        moof = new Uint8Array();\n      } else {\n        moof = mp4_generator.moof(track.sequenceNumber++, firstPTS / scaleFactor, track);\n      }\n\n      track.samples = [];\n      var start = firstPTS / inputTimeScale;\n      var end = nextAudioPts / inputTimeScale;\n      var audioData = {\n        data1: moof,\n        data2: mdat,\n        startPTS: start,\n        endPTS: end,\n        startDTS: start,\n        endDTS: end,\n        type: 'audio',\n        hasAudio: true,\n        hasVideo: false,\n        nb: nbSamples\n      };\n      this.observer.trigger(events[\"a\" /* default */].FRAG_PARSING_DATA, audioData);\n      return audioData;\n    }\n    return null;\n  };\n\n  MP4Remuxer.prototype.remuxEmptyAudio = function remuxEmptyAudio(track, timeOffset, contiguous, videoData) {\n    var inputTimeScale = track.inputTimeScale,\n        mp4timeScale = track.samplerate ? track.samplerate : inputTimeScale,\n        scaleFactor = inputTimeScale / mp4timeScale,\n        nextAudioPts = this.nextAudioPts,\n\n\n    // sync with video's timestamp\n    startDTS = (nextAudioPts !== undefined ? nextAudioPts : videoData.startDTS * inputTimeScale) + this._initDTS,\n        endDTS = videoData.endDTS * inputTimeScale + this._initDTS,\n\n    // one sample's duration value\n    sampleDuration = 1024,\n        frameDuration = scaleFactor * sampleDuration,\n\n\n    // samples count of this segment's duration\n    nbSamples = Math.ceil((endDTS - startDTS) / frameDuration),\n\n\n    // silent frame\n    silentFrame = aac_helper.getSilentFrame(track.manifestCodec || track.codec, track.channelCount);\n\n    logger[\"b\" /* logger */].warn('remux empty Audio');\n    // Can't remux if we can't generate a silent frame...\n    if (!silentFrame) {\n      logger[\"b\" /* logger */].trace('Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!');\n      return;\n    }\n\n    var samples = [];\n    for (var i = 0; i < nbSamples; i++) {\n      var stamp = startDTS + i * frameDuration;\n      samples.push({ unit: silentFrame, pts: stamp, dts: stamp });\n      track.len += silentFrame.length;\n    }\n    track.samples = samples;\n\n    this.remuxAudio(track, timeOffset, contiguous);\n  };\n\n  MP4Remuxer.prototype.remuxID3 = function remuxID3(track, timeOffset) {\n    var length = track.samples.length,\n        sample = void 0;\n    var inputTimeScale = track.inputTimeScale;\n    var initPTS = this._initPTS;\n    var initDTS = this._initDTS;\n    // consume samples\n    if (length) {\n      for (var index = 0; index < length; index++) {\n        sample = track.samples[index];\n        // setting id3 pts, dts to relative time\n        // using this._initPTS and this._initDTS to calculate relative time\n        sample.pts = (sample.pts - initPTS) / inputTimeScale;\n        sample.dts = (sample.dts - initDTS) / inputTimeScale;\n      }\n      this.observer.trigger(events[\"a\" /* default */].FRAG_PARSING_METADATA, {\n        samples: track.samples\n      });\n    }\n\n    track.samples = [];\n    timeOffset = timeOffset;\n  };\n\n  MP4Remuxer.prototype.remuxText = function remuxText(track, timeOffset) {\n    track.samples.sort(function (a, b) {\n      return a.pts - b.pts;\n    });\n\n    var length = track.samples.length,\n        sample = void 0;\n    var inputTimeScale = track.inputTimeScale;\n    var initPTS = this._initPTS;\n    // consume samples\n    if (length) {\n      for (var index = 0; index < length; index++) {\n        sample = track.samples[index];\n        // setting text pts, dts to relative time\n        // using this._initPTS and this._initDTS to calculate relative time\n        sample.pts = (sample.pts - initPTS) / inputTimeScale;\n      }\n      this.observer.trigger(events[\"a\" /* default */].FRAG_PARSING_USERDATA, {\n        samples: track.samples\n      });\n    }\n\n    track.samples = [];\n    timeOffset = timeOffset;\n  };\n\n  MP4Remuxer.prototype._PTSNormalize = function _PTSNormalize(value, reference) {\n    var offset = void 0;\n    if (reference === undefined) {\n      return value;\n    }\n\n    if (reference < value) {\n      // - 2^33\n      offset = -8589934592;\n    } else {\n      // + 2^33\n      offset = 8589934592;\n    }\n    /* PTS is 33bit (from 0 to 2^33 -1)\n      if diff between value and reference is bigger than half of the amplitude (2^32) then it means that\n      PTS looping occured. fill the gap */\n    while (Math.abs(value - reference) > 4294967296) {\n      value += offset;\n    }\n\n    return value;\n  };\n\n  return MP4Remuxer;\n}();\n\n/* harmony default export */ var mp4_remuxer = (mp4_remuxer_MP4Remuxer);\n// CONCATENATED MODULE: ./src/remux/passthrough-remuxer.js\nfunction passthrough_remuxer__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * passthrough remuxer\n*/\n\n\nvar passthrough_remuxer_PassThroughRemuxer = function () {\n  function PassThroughRemuxer(observer) {\n    passthrough_remuxer__classCallCheck(this, PassThroughRemuxer);\n\n    this.observer = observer;\n  }\n\n  PassThroughRemuxer.prototype.destroy = function destroy() {};\n\n  PassThroughRemuxer.prototype.resetTimeStamp = function resetTimeStamp() {};\n\n  PassThroughRemuxer.prototype.resetInitSegment = function resetInitSegment() {};\n\n  PassThroughRemuxer.prototype.remux = function remux(audioTrack, videoTrack, id3Track, textTrack, timeOffset, contiguous, accurateTimeOffset, rawData) {\n    var observer = this.observer;\n    var streamType = '';\n    if (audioTrack) {\n      streamType += 'audio';\n    }\n\n    if (videoTrack) {\n      streamType += 'video';\n    }\n\n    observer.trigger(events[\"a\" /* default */].FRAG_PARSING_DATA, {\n      data1: rawData,\n      startPTS: timeOffset,\n      startDTS: timeOffset,\n      type: streamType,\n      hasAudio: !!audioTrack,\n      hasVideo: !!videoTrack,\n      nb: 1,\n      dropped: 0\n    });\n    // notify end of parsing\n    observer.trigger(events[\"a\" /* default */].FRAG_PARSED);\n  };\n\n  return PassThroughRemuxer;\n}();\n\n/* harmony default export */ var passthrough_remuxer = (passthrough_remuxer_PassThroughRemuxer);\n// CONCATENATED MODULE: ./src/demux/demuxer-inline.js\nfunction demuxer_inline__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n *\n * inline demuxer: probe fragments and instantiate\n * appropriate demuxer depending on content type (TSDemuxer, AACDemuxer, ...)\n *\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n// see https://stackoverflow.com/a/11237259/589493\nvar global = Object(get_self_scope[\"a\" /* getSelfScope */])(); // safeguard for code that might run both on worker and main thread\nvar performance = global.performance;\n\nvar demuxer_inline_DemuxerInline = function () {\n  function DemuxerInline(observer, typeSupported, config, vendor) {\n    demuxer_inline__classCallCheck(this, DemuxerInline);\n\n    this.observer = observer;\n    this.typeSupported = typeSupported;\n    this.config = config;\n    this.vendor = vendor;\n  }\n\n  DemuxerInline.prototype.destroy = function destroy() {\n    var demuxer = this.demuxer;\n    if (demuxer) {\n      demuxer.destroy();\n    }\n  };\n\n  DemuxerInline.prototype.push = function push(data, decryptdata, initSegment, audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS) {\n    if (data.byteLength > 0 && decryptdata != null && decryptdata.key != null && decryptdata.method === 'AES-128') {\n      var decrypter = this.decrypter;\n      if (decrypter == null) {\n        decrypter = this.decrypter = new crypt_decrypter[\"a\" /* default */](this.observer, this.config);\n      }\n\n      var localthis = this;\n      // performance.now() not available on WebWorker, at least on Safari Desktop\n      var startTime = void 0;\n      try {\n        startTime = performance.now();\n      } catch (error) {\n        startTime = Date.now();\n      }\n      decrypter.decrypt(data, decryptdata.key.buffer, decryptdata.iv.buffer, function (decryptedData) {\n        var endTime = void 0;\n        try {\n          endTime = performance.now();\n        } catch (error) {\n          endTime = Date.now();\n        }\n        localthis.observer.trigger(events[\"a\" /* default */].FRAG_DECRYPTED, { stats: { tstart: startTime, tdecrypt: endTime } });\n        localthis.pushDecrypted(new Uint8Array(decryptedData), decryptdata, new Uint8Array(initSegment), audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS);\n      });\n    } else {\n      this.pushDecrypted(new Uint8Array(data), decryptdata, new Uint8Array(initSegment), audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS);\n    }\n  };\n\n  DemuxerInline.prototype.pushDecrypted = function pushDecrypted(data, decryptdata, initSegment, audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS) {\n    var demuxer = this.demuxer;\n    if (!demuxer ||\n    // in case of continuity change, or track switch\n    // we might switch from content type (AAC container to TS container, or TS to fmp4 for example)\n    // so let's check that current demuxer is still valid\n    (discontinuity || trackSwitch) && !this.probe(data)) {\n      var observer = this.observer;\n      var typeSupported = this.typeSupported;\n      var config = this.config;\n      // probing order is TS/AAC/MP3/MP4\n      var muxConfig = [{ demux: tsdemuxer, remux: mp4_remuxer }, { demux: mp4demuxer[\"a\" /* default */], remux: passthrough_remuxer }, { demux: aacdemuxer, remux: mp4_remuxer }, { demux: mp3demuxer, remux: mp4_remuxer }];\n\n      // probe for content type\n      for (var i = 0, len = muxConfig.length; i < len; i++) {\n        var mux = muxConfig[i];\n        var probe = mux.demux.probe;\n        if (probe(data)) {\n          var _remuxer = this.remuxer = new mux.remux(observer, config, typeSupported, this.vendor);\n          demuxer = new mux.demux(observer, _remuxer, config, typeSupported);\n          this.probe = probe;\n          break;\n        }\n      }\n      if (!demuxer) {\n        observer.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].FRAG_PARSING_ERROR, fatal: true, reason: 'no demux matching with content found' });\n        return;\n      }\n      this.demuxer = demuxer;\n    }\n    var remuxer = this.remuxer;\n\n    if (discontinuity || trackSwitch) {\n      demuxer.resetInitSegment(initSegment, audioCodec, videoCodec, duration);\n      remuxer.resetInitSegment();\n    }\n    if (discontinuity) {\n      demuxer.resetTimeStamp(defaultInitPTS);\n      remuxer.resetTimeStamp(defaultInitPTS);\n    }\n    if (typeof demuxer.setDecryptData === 'function') {\n      demuxer.setDecryptData(decryptdata);\n    }\n\n    demuxer.append(data, timeOffset, contiguous, accurateTimeOffset);\n  };\n\n  return DemuxerInline;\n}();\n\n/* harmony default export */ var demuxer_inline = __webpack_exports__[\"a\"] = (demuxer_inline_DemuxerInline);\n\n/***/ }),\n/* 11 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\nvar cues_namespaceObject = {};\n__webpack_require__.d(cues_namespaceObject, \"newCue\", function() { return newCue; });\n\n// EXTERNAL MODULE: ./node_modules/url-toolkit/src/url-toolkit.js\nvar url_toolkit = __webpack_require__(5);\nvar url_toolkit_default = /*#__PURE__*/__webpack_require__.n(url_toolkit);\n\n// EXTERNAL MODULE: ./src/errors.js\nvar errors = __webpack_require__(2);\n\n// EXTERNAL MODULE: ./src/polyfills/number-isFinite.js\nvar number_isFinite = __webpack_require__(3);\n\n// EXTERNAL MODULE: ./src/events.js\nvar events = __webpack_require__(1);\n\n// EXTERNAL MODULE: ./src/utils/logger.js\nvar logger = __webpack_require__(0);\n\n// CONCATENATED MODULE: ./src/event-handler.js\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*\n*\n* All objects in the event handling chain should inherit from this class\n*\n*/\n\n\n\n\n\nvar FORBIDDEN_EVENT_NAMES = new Set(['hlsEventGeneric', 'hlsHandlerDestroying', 'hlsHandlerDestroyed']);\n\nvar event_handler_EventHandler = function () {\n  function EventHandler(hls) {\n    _classCallCheck(this, EventHandler);\n\n    this.hls = hls;\n    this.onEvent = this.onEvent.bind(this);\n\n    for (var _len = arguments.length, events = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      events[_key - 1] = arguments[_key];\n    }\n\n    this.handledEvents = events;\n    this.useGenericHandler = true;\n\n    this.registerListeners();\n  }\n\n  EventHandler.prototype.destroy = function destroy() {\n    this.onHandlerDestroying();\n    this.unregisterListeners();\n    this.onHandlerDestroyed();\n  };\n\n  EventHandler.prototype.onHandlerDestroying = function onHandlerDestroying() {};\n\n  EventHandler.prototype.onHandlerDestroyed = function onHandlerDestroyed() {};\n\n  EventHandler.prototype.isEventHandler = function isEventHandler() {\n    return _typeof(this.handledEvents) === 'object' && this.handledEvents.length && typeof this.onEvent === 'function';\n  };\n\n  EventHandler.prototype.registerListeners = function registerListeners() {\n    if (this.isEventHandler()) {\n      this.handledEvents.forEach(function (event) {\n        if (FORBIDDEN_EVENT_NAMES.has(event)) {\n          throw new Error('Forbidden event-name: ' + event);\n        }\n\n        this.hls.on(event, this.onEvent);\n      }, this);\n    }\n  };\n\n  EventHandler.prototype.unregisterListeners = function unregisterListeners() {\n    if (this.isEventHandler()) {\n      this.handledEvents.forEach(function (event) {\n        this.hls.off(event, this.onEvent);\n      }, this);\n    }\n  };\n\n  /**\n   * arguments: event (string), data (any)\n   */\n\n\n  EventHandler.prototype.onEvent = function onEvent(event, data) {\n    this.onEventGeneric(event, data);\n  };\n\n  EventHandler.prototype.onEventGeneric = function onEventGeneric(event, data) {\n    var eventToFunction = function eventToFunction(event, data) {\n      var funcName = 'on' + event.replace('hls', '');\n      if (typeof this[funcName] !== 'function') {\n        throw new Error('Event ' + event + ' has no generic handler in this ' + this.constructor.name + ' class (tried ' + funcName + ')');\n      }\n\n      return this[funcName].bind(this, data);\n    };\n    try {\n      eventToFunction.call(this, event, data).call();\n    } catch (err) {\n      logger[\"b\" /* logger */].error('An internal error happened while handling event ' + event + '. Error message: \"' + err.message + '\". Here is a stacktrace:', err);\n      this.hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].OTHER_ERROR, details: errors[\"a\" /* ErrorDetails */].INTERNAL_EXCEPTION, fatal: false, event: event, err: err });\n    }\n  };\n\n  return EventHandler;\n}();\n\n/* harmony default export */ var event_handler = (event_handler_EventHandler);\n// EXTERNAL MODULE: ./src/demux/mp4demuxer.js\nvar mp4demuxer = __webpack_require__(9);\n\n// CONCATENATED MODULE: ./src/loader/level-key.js\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction level_key__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\nvar level_key_LevelKey = function () {\n  function LevelKey() {\n    level_key__classCallCheck(this, LevelKey);\n\n    this.method = null;\n    this.key = null;\n    this.iv = null;\n    this._uri = null;\n  }\n\n  _createClass(LevelKey, [{\n    key: 'uri',\n    get: function get() {\n      if (!this._uri && this.reluri) {\n        this._uri = url_toolkit_default.a.buildAbsoluteURL(this.baseuri, this.reluri, { alwaysNormalize: true });\n      }\n\n      return this._uri;\n    }\n  }]);\n\n  return LevelKey;\n}();\n\n/* harmony default export */ var level_key = (level_key_LevelKey);\n// CONCATENATED MODULE: ./src/loader/fragment.js\n\n\nvar fragment__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction fragment__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\nvar fragment_Fragment = function () {\n  function Fragment() {\n    var _elementaryStreams;\n\n    fragment__classCallCheck(this, Fragment);\n\n    this._url = null;\n    this._byteRange = null;\n    this._decryptdata = null;\n    this.tagList = [];\n    this.programDateTime = null;\n    this.rawProgramDateTime = null;\n\n    // Holds the types of data this fragment supports\n    this._elementaryStreams = (_elementaryStreams = {}, _elementaryStreams[Fragment.ElementaryStreamTypes.AUDIO] = false, _elementaryStreams[Fragment.ElementaryStreamTypes.VIDEO] = false, _elementaryStreams);\n  }\n\n  /**\n   * `type` property for this._elementaryStreams\n   *\n   * @enum\n   */\n\n\n  /**\n   * @param {ElementaryStreamType} type\n   */\n  Fragment.prototype.addElementaryStream = function addElementaryStream(type) {\n    this._elementaryStreams[type] = true;\n  };\n\n  /**\n   * @param {ElementaryStreamType} type\n   */\n\n\n  Fragment.prototype.hasElementaryStream = function hasElementaryStream(type) {\n    return this._elementaryStreams[type] === true;\n  };\n\n  /**\n   * Utility method for parseLevelPlaylist to create an initialization vector for a given segment\n   * @returns {Uint8Array}\n   */\n\n\n  Fragment.prototype.createInitializationVector = function createInitializationVector(segmentNumber) {\n    var uint8View = new Uint8Array(16);\n\n    for (var i = 12; i < 16; i++) {\n      uint8View[i] = segmentNumber >> 8 * (15 - i) & 0xff;\n    }\n\n    return uint8View;\n  };\n\n  /**\n   * Utility method for parseLevelPlaylist to get a fragment's decryption data from the currently parsed encryption key data\n   * @param levelkey - a playlist's encryption info\n   * @param segmentNumber - the fragment's segment number\n   * @returns {*} - an object to be applied as a fragment's decryptdata\n   */\n\n\n  Fragment.prototype.fragmentDecryptdataFromLevelkey = function fragmentDecryptdataFromLevelkey(levelkey, segmentNumber) {\n    var decryptdata = levelkey;\n\n    if (levelkey && levelkey.method && levelkey.uri && !levelkey.iv) {\n      decryptdata = new level_key();\n      decryptdata.method = levelkey.method;\n      decryptdata.baseuri = levelkey.baseuri;\n      decryptdata.reluri = levelkey.reluri;\n      decryptdata.iv = this.createInitializationVector(segmentNumber);\n    }\n\n    return decryptdata;\n  };\n\n  fragment__createClass(Fragment, [{\n    key: 'url',\n    get: function get() {\n      if (!this._url && this.relurl) {\n        this._url = url_toolkit_default.a.buildAbsoluteURL(this.baseurl, this.relurl, { alwaysNormalize: true });\n      }\n\n      return this._url;\n    },\n    set: function set(value) {\n      this._url = value;\n    }\n  }, {\n    key: 'byteRange',\n    get: function get() {\n      if (!this._byteRange && !this.rawByteRange) {\n        return [];\n      }\n\n      if (this._byteRange) {\n        return this._byteRange;\n      }\n\n      var byteRange = [];\n      if (this.rawByteRange) {\n        var params = this.rawByteRange.split('@', 2);\n        if (params.length === 1) {\n          var lastByteRangeEndOffset = this.lastByteRangeEndOffset;\n          byteRange[0] = lastByteRangeEndOffset || 0;\n        } else {\n          byteRange[0] = parseInt(params[1]);\n        }\n        byteRange[1] = parseInt(params[0]) + byteRange[0];\n        this._byteRange = byteRange;\n      }\n      return byteRange;\n    }\n\n    /**\n     * @type {number}\n     */\n\n  }, {\n    key: 'byteRangeStartOffset',\n    get: function get() {\n      return this.byteRange[0];\n    }\n  }, {\n    key: 'byteRangeEndOffset',\n    get: function get() {\n      return this.byteRange[1];\n    }\n  }, {\n    key: 'decryptdata',\n    get: function get() {\n      if (!this._decryptdata) {\n        this._decryptdata = this.fragmentDecryptdataFromLevelkey(this.levelkey, this.sn);\n      }\n\n      return this._decryptdata;\n    }\n  }, {\n    key: 'endProgramDateTime',\n    get: function get() {\n      if (!Object(number_isFinite[\"a\" /* isFiniteNumber */])(this.programDateTime)) {\n        return null;\n      }\n\n      var duration = !Object(number_isFinite[\"a\" /* isFiniteNumber */])(this.duration) ? 0 : this.duration;\n\n      return this.programDateTime + duration * 1000;\n    }\n  }, {\n    key: 'encrypted',\n    get: function get() {\n      return !!(this.decryptdata && this.decryptdata.uri !== null && this.decryptdata.key === null);\n    }\n  }], [{\n    key: 'ElementaryStreamTypes',\n    get: function get() {\n      return {\n        AUDIO: 'audio',\n        VIDEO: 'video'\n      };\n    }\n  }]);\n\n  return Fragment;\n}();\n\n/* harmony default export */ var loader_fragment = (fragment_Fragment);\n// CONCATENATED MODULE: ./src/loader/level.js\n\n\nvar level__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction level__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar level_Level = function () {\n  function Level(baseUrl) {\n    level__classCallCheck(this, Level);\n\n    // Please keep properties in alphabetical order\n    this.endCC = 0;\n    this.endSN = 0;\n    this.fragments = [];\n    this.initSegment = null;\n    this.live = true;\n    this.needSidxRanges = false;\n    this.startCC = 0;\n    this.startSN = 0;\n    this.startTimeOffset = null;\n    this.targetduration = 0;\n    this.totalduration = 0;\n    this.type = null;\n    this.url = baseUrl;\n    this.version = null;\n  }\n\n  level__createClass(Level, [{\n    key: \"hasProgramDateTime\",\n    get: function get() {\n      return !!(this.fragments[0] && Object(number_isFinite[\"a\" /* isFiniteNumber */])(this.fragments[0].programDateTime));\n    }\n  }]);\n\n  return Level;\n}();\n\n/* harmony default export */ var loader_level = (level_Level);\n// CONCATENATED MODULE: ./src/utils/attr-list.js\nfunction attr_list__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DECIMAL_RESOLUTION_REGEX = /^(\\d+)x(\\d+)$/; // eslint-disable-line no-useless-escape\nvar ATTR_LIST_REGEX = /\\s*(.+?)\\s*=((?:\\\".*?\\\")|.*?)(?:,|$)/g; // eslint-disable-line no-useless-escape\n\n// adapted from https://github.com/kanongil/node-m3u8parse/blob/master/attrlist.js\n\nvar AttrList = function () {\n  function AttrList(attrs) {\n    attr_list__classCallCheck(this, AttrList);\n\n    if (typeof attrs === 'string') {\n      attrs = AttrList.parseAttrList(attrs);\n    }\n\n    for (var attr in attrs) {\n      if (attrs.hasOwnProperty(attr)) {\n        this[attr] = attrs[attr];\n      }\n    }\n  }\n\n  AttrList.prototype.decimalInteger = function decimalInteger(attrName) {\n    var intValue = parseInt(this[attrName], 10);\n    if (intValue > Number.MAX_SAFE_INTEGER) {\n      return Infinity;\n    }\n\n    return intValue;\n  };\n\n  AttrList.prototype.hexadecimalInteger = function hexadecimalInteger(attrName) {\n    if (this[attrName]) {\n      var stringValue = (this[attrName] || '0x').slice(2);\n      stringValue = (stringValue.length & 1 ? '0' : '') + stringValue;\n\n      var value = new Uint8Array(stringValue.length / 2);\n      for (var i = 0; i < stringValue.length / 2; i++) {\n        value[i] = parseInt(stringValue.slice(i * 2, i * 2 + 2), 16);\n      }\n\n      return value;\n    } else {\n      return null;\n    }\n  };\n\n  AttrList.prototype.hexadecimalIntegerAsNumber = function hexadecimalIntegerAsNumber(attrName) {\n    var intValue = parseInt(this[attrName], 16);\n    if (intValue > Number.MAX_SAFE_INTEGER) {\n      return Infinity;\n    }\n\n    return intValue;\n  };\n\n  AttrList.prototype.decimalFloatingPoint = function decimalFloatingPoint(attrName) {\n    return parseFloat(this[attrName]);\n  };\n\n  AttrList.prototype.enumeratedString = function enumeratedString(attrName) {\n    return this[attrName];\n  };\n\n  AttrList.prototype.decimalResolution = function decimalResolution(attrName) {\n    var res = DECIMAL_RESOLUTION_REGEX.exec(this[attrName]);\n    if (res === null) {\n      return undefined;\n    }\n\n    return {\n      width: parseInt(res[1], 10),\n      height: parseInt(res[2], 10)\n    };\n  };\n\n  AttrList.parseAttrList = function parseAttrList(input) {\n    var match = void 0,\n        attrs = {};\n    ATTR_LIST_REGEX.lastIndex = 0;\n    while ((match = ATTR_LIST_REGEX.exec(input)) !== null) {\n      var value = match[2],\n          quote = '\"';\n\n      if (value.indexOf(quote) === 0 && value.lastIndexOf(quote) === value.length - 1) {\n        value = value.slice(1, -1);\n      }\n\n      attrs[match[1]] = value;\n    }\n    return attrs;\n  };\n\n  return AttrList;\n}();\n\n/* harmony default export */ var attr_list = (AttrList);\n// CONCATENATED MODULE: ./src/utils/codecs.js\n// from http://mp4ra.org/codecs.html\nvar sampleEntryCodesISO = {\n  audio: {\n    'a3ds': true,\n    'ac-3': true,\n    'ac-4': true,\n    'alac': true,\n    'alaw': true,\n    'dra1': true,\n    'dts+': true,\n    'dts-': true,\n    'dtsc': true,\n    'dtse': true,\n    'dtsh': true,\n    'ec-3': true,\n    'enca': true,\n    'g719': true,\n    'g726': true,\n    'm4ae': true,\n    'mha1': true,\n    'mha2': true,\n    'mhm1': true,\n    'mhm2': true,\n    'mlpa': true,\n    'mp4a': true,\n    'raw ': true,\n    'Opus': true,\n    'samr': true,\n    'sawb': true,\n    'sawp': true,\n    'sevc': true,\n    'sqcp': true,\n    'ssmv': true,\n    'twos': true,\n    'ulaw': true\n  },\n  video: {\n    'avc1': true,\n    'avc2': true,\n    'avc3': true,\n    'avc4': true,\n    'avcp': true,\n    'drac': true,\n    'dvav': true,\n    'dvhe': true,\n    'encv': true,\n    'hev1': true,\n    'hvc1': true,\n    'mjp2': true,\n    'mp4v': true,\n    'mvc1': true,\n    'mvc2': true,\n    'mvc3': true,\n    'mvc4': true,\n    'resv': true,\n    'rv60': true,\n    's263': true,\n    'svc1': true,\n    'svc2': true,\n    'vc-1': true,\n    'vp08': true,\n    'vp09': true\n  }\n};\n\nfunction isCodecType(codec, type) {\n  var typeCodes = sampleEntryCodesISO[type];\n  return !!typeCodes && typeCodes[codec.slice(0, 4)] === true;\n}\n\nfunction isCodecSupportedInMp4(codec, type) {\n  return window.MediaSource.isTypeSupported((type || 'video') + '/mp4;codecs=\"' + codec + '\"');\n}\n\n\n// CONCATENATED MODULE: ./src/loader/m3u8-parser.js\n\n\nfunction m3u8_parser__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\n\n\n\n\n\n/**\n * M3U8 parser\n * @module\n */\n\n// https://regex101.com is your friend\nvar MASTER_PLAYLIST_REGEX = /#EXT-X-STREAM-INF:([^\\n\\r]*)[\\r\\n]+([^\\r\\n]+)/g;\nvar MASTER_PLAYLIST_MEDIA_REGEX = /#EXT-X-MEDIA:(.*)/g;\n\nvar LEVEL_PLAYLIST_REGEX_FAST = new RegExp([/#EXTINF:\\s*(\\d*(?:\\.\\d+)?)(?:,(.*)\\s+)?/.source, // duration (#EXTINF:<duration>,<title>), group 1 => duration, group 2 => title\n/|(?!#)(\\S+)/.source, // segment URI, group 3 => the URI (note newline is not eaten)\n/|#EXT-X-BYTERANGE:*(.+)/.source, // next segment's byterange, group 4 => range spec (x@y)\n/|#EXT-X-PROGRAM-DATE-TIME:(.+)/.source, // next segment's program date/time group 5 => the datetime spec\n/|#.*/.source // All other non-segment oriented tags will match with all groups empty\n].join(''), 'g');\n\nvar LEVEL_PLAYLIST_REGEX_SLOW = /(?:(?:#(EXTM3U))|(?:#EXT-X-(PLAYLIST-TYPE):(.+))|(?:#EXT-X-(MEDIA-SEQUENCE): *(\\d+))|(?:#EXT-X-(TARGETDURATION): *(\\d+))|(?:#EXT-X-(KEY):(.+))|(?:#EXT-X-(START):(.+))|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DISCONTINUITY-SEQ)UENCE:(\\d+))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(VERSION):(\\d+))|(?:#EXT-X-(MAP):(.+))|(?:(#)([^:]*):(.*))|(?:(#)(.*))(?:.*)\\r?\\n?/;\n\nvar MP4_REGEX_SUFFIX = /\\.(mp4|m4s|m4v|m4a)$/i;\n\nvar m3u8_parser_M3U8Parser = function () {\n  function M3U8Parser() {\n    m3u8_parser__classCallCheck(this, M3U8Parser);\n  }\n\n  M3U8Parser.findGroup = function findGroup(groups, mediaGroupId) {\n    if (!groups) {\n      return null;\n    }\n\n    var matchingGroup = null;\n\n    for (var i = 0; i < groups.length; i++) {\n      var group = groups[i];\n      if (group.id === mediaGroupId) {\n        matchingGroup = group;\n      }\n    }\n\n    return matchingGroup;\n  };\n\n  M3U8Parser.convertAVC1ToAVCOTI = function convertAVC1ToAVCOTI(codec) {\n    var result = void 0,\n        avcdata = codec.split('.');\n    if (avcdata.length > 2) {\n      result = avcdata.shift() + '.';\n      result += parseInt(avcdata.shift()).toString(16);\n      result += ('000' + parseInt(avcdata.shift()).toString(16)).substr(-4);\n    } else {\n      result = codec;\n    }\n    return result;\n  };\n\n  M3U8Parser.resolve = function resolve(url, baseUrl) {\n    return url_toolkit_default.a.buildAbsoluteURL(baseUrl, url, { alwaysNormalize: true });\n  };\n\n  M3U8Parser.parseMasterPlaylist = function parseMasterPlaylist(string, baseurl) {\n    var levels = [],\n        result = void 0;\n    MASTER_PLAYLIST_REGEX.lastIndex = 0;\n\n    function setCodecs(codecs, level) {\n      ['video', 'audio'].forEach(function (type) {\n        var filtered = codecs.filter(function (codec) {\n          return isCodecType(codec, type);\n        });\n        if (filtered.length) {\n          var preferred = filtered.filter(function (codec) {\n            return codec.lastIndexOf('avc1', 0) === 0 || codec.lastIndexOf('mp4a', 0) === 0;\n          });\n          level[type + 'Codec'] = preferred.length > 0 ? preferred[0] : filtered[0];\n\n          // remove from list\n          codecs = codecs.filter(function (codec) {\n            return filtered.indexOf(codec) === -1;\n          });\n        }\n      });\n\n      level.unknownCodecs = codecs;\n    }\n\n    while ((result = MASTER_PLAYLIST_REGEX.exec(string)) != null) {\n      var level = {};\n\n      var attrs = level.attrs = new attr_list(result[1]);\n      level.url = M3U8Parser.resolve(result[2], baseurl);\n\n      var resolution = attrs.decimalResolution('RESOLUTION');\n      if (resolution) {\n        level.width = resolution.width;\n        level.height = resolution.height;\n      }\n      level.bitrate = attrs.decimalInteger('AVERAGE-BANDWIDTH') || attrs.decimalInteger('BANDWIDTH');\n      level.name = attrs.NAME;\n\n      setCodecs([].concat((attrs.CODECS || '').split(/[ ,]+/)), level);\n\n      if (level.videoCodec && level.videoCodec.indexOf('avc1') !== -1) {\n        level.videoCodec = M3U8Parser.convertAVC1ToAVCOTI(level.videoCodec);\n      }\n\n      levels.push(level);\n    }\n    return levels;\n  };\n\n  M3U8Parser.parseMasterPlaylistMedia = function parseMasterPlaylistMedia(string, baseurl, type) {\n    var audioGroups = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n\n    var result = void 0;\n    var medias = [];\n    var id = 0;\n    MASTER_PLAYLIST_MEDIA_REGEX.lastIndex = 0;\n    while ((result = MASTER_PLAYLIST_MEDIA_REGEX.exec(string)) !== null) {\n      var media = {};\n      var attrs = new attr_list(result[1]);\n      if (attrs.TYPE === type) {\n        media.groupId = attrs['GROUP-ID'];\n        media.name = attrs.NAME;\n        media.type = type;\n        media.default = attrs.DEFAULT === 'YES';\n        media.autoselect = attrs.AUTOSELECT === 'YES';\n        media.forced = attrs.FORCED === 'YES';\n        if (attrs.URI) {\n          media.url = M3U8Parser.resolve(attrs.URI, baseurl);\n        }\n\n        media.lang = attrs.LANGUAGE;\n        if (!media.name) {\n          media.name = media.lang;\n        }\n\n        if (audioGroups.length) {\n          var groupCodec = M3U8Parser.findGroup(audioGroups, media.groupId);\n          media.audioCodec = groupCodec ? groupCodec.codec : audioGroups[0].codec;\n        }\n        media.id = id++;\n        medias.push(media);\n      }\n    }\n    return medias;\n  };\n\n  M3U8Parser.parseLevelPlaylist = function parseLevelPlaylist(string, baseurl, id, type, levelUrlId) {\n    var currentSN = 0;\n    var totalduration = 0;\n    var level = new loader_level(baseurl);\n    var levelkey = new level_key();\n    var cc = 0;\n    var prevFrag = null;\n    var frag = new loader_fragment();\n    var result = void 0;\n    var i = void 0;\n\n    var firstPdtIndex = null;\n\n    LEVEL_PLAYLIST_REGEX_FAST.lastIndex = 0;\n\n    while ((result = LEVEL_PLAYLIST_REGEX_FAST.exec(string)) !== null) {\n      var duration = result[1];\n      if (duration) {\n        // INF\n        frag.duration = parseFloat(duration);\n        // avoid sliced strings    https://github.com/video-dev/hls.js/issues/939\n        var title = (' ' + result[2]).slice(1);\n        frag.title = title || null;\n        frag.tagList.push(title ? ['INF', duration, title] : ['INF', duration]);\n      } else if (result[3]) {\n        // url\n        if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.duration)) {\n          var sn = currentSN++;\n          frag.type = type;\n          frag.start = totalduration;\n          frag.levelkey = levelkey;\n          frag.sn = sn;\n          frag.level = id;\n          frag.cc = cc;\n          frag.urlId = levelUrlId;\n          frag.baseurl = baseurl;\n          // avoid sliced strings    https://github.com/video-dev/hls.js/issues/939\n          frag.relurl = (' ' + result[3]).slice(1);\n          assignProgramDateTime(frag, prevFrag);\n\n          level.fragments.push(frag);\n          prevFrag = frag;\n          totalduration += frag.duration;\n\n          frag = new loader_fragment();\n        }\n      } else if (result[4]) {\n        // X-BYTERANGE\n        frag.rawByteRange = (' ' + result[4]).slice(1);\n        if (prevFrag) {\n          var lastByteRangeEndOffset = prevFrag.byteRangeEndOffset;\n          if (lastByteRangeEndOffset) {\n            frag.lastByteRangeEndOffset = lastByteRangeEndOffset;\n          }\n        }\n      } else if (result[5]) {\n        // PROGRAM-DATE-TIME\n        // avoid sliced strings    https://github.com/video-dev/hls.js/issues/939\n        frag.rawProgramDateTime = (' ' + result[5]).slice(1);\n        frag.tagList.push(['PROGRAM-DATE-TIME', frag.rawProgramDateTime]);\n        if (firstPdtIndex === null) {\n          firstPdtIndex = level.fragments.length;\n        }\n      } else {\n        result = result[0].match(LEVEL_PLAYLIST_REGEX_SLOW);\n        for (i = 1; i < result.length; i++) {\n          if (result[i] !== undefined) {\n            break;\n          }\n        }\n\n        // avoid sliced strings    https://github.com/video-dev/hls.js/issues/939\n        var value1 = (' ' + result[i + 1]).slice(1);\n        var value2 = (' ' + result[i + 2]).slice(1);\n\n        switch (result[i]) {\n          case '#':\n            frag.tagList.push(value2 ? [value1, value2] : [value1]);\n            break;\n          case 'PLAYLIST-TYPE':\n            level.type = value1.toUpperCase();\n            break;\n          case 'MEDIA-SEQUENCE':\n            currentSN = level.startSN = parseInt(value1);\n            break;\n          case 'TARGETDURATION':\n            level.targetduration = parseFloat(value1);\n            break;\n          case 'VERSION':\n            level.version = parseInt(value1);\n            break;\n          case 'EXTM3U':\n            break;\n          case 'ENDLIST':\n            level.live = false;\n            break;\n          case 'DIS':\n            cc++;\n            frag.tagList.push(['DIS']);\n            break;\n          case 'DISCONTINUITY-SEQ':\n            cc = parseInt(value1);\n            break;\n          case 'KEY':\n            // https://tools.ietf.org/html/draft-pantos-http-live-streaming-08#section-3.4.4\n            var decryptparams = value1;\n            var keyAttrs = new attr_list(decryptparams);\n            var decryptmethod = keyAttrs.enumeratedString('METHOD'),\n                decrypturi = keyAttrs.URI,\n                decryptiv = keyAttrs.hexadecimalInteger('IV');\n            if (decryptmethod) {\n              levelkey = new level_key();\n              if (decrypturi && ['AES-128', 'SAMPLE-AES', 'SAMPLE-AES-CENC'].indexOf(decryptmethod) >= 0) {\n                levelkey.method = decryptmethod;\n                // URI to get the key\n                levelkey.baseuri = baseurl;\n                levelkey.reluri = decrypturi;\n                levelkey.key = null;\n                // Initialization Vector (IV)\n                levelkey.iv = decryptiv;\n              }\n            }\n            break;\n          case 'START':\n            var startParams = value1;\n            var startAttrs = new attr_list(startParams);\n            var startTimeOffset = startAttrs.decimalFloatingPoint('TIME-OFFSET');\n            // TIME-OFFSET can be 0\n            if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(startTimeOffset)) {\n              level.startTimeOffset = startTimeOffset;\n            }\n\n            break;\n          case 'MAP':\n            var mapAttrs = new attr_list(value1);\n            frag.relurl = mapAttrs.URI;\n            frag.rawByteRange = mapAttrs.BYTERANGE;\n            frag.baseurl = baseurl;\n            frag.level = id;\n            frag.type = type;\n            frag.sn = 'initSegment';\n            level.initSegment = frag;\n            frag = new loader_fragment();\n            frag.rawProgramDateTime = level.initSegment.rawProgramDateTime;\n            break;\n          default:\n            logger[\"b\" /* logger */].warn('line parsed but not handled: ' + result);\n            break;\n        }\n      }\n    }\n    frag = prevFrag;\n    // logger.log('found ' + level.fragments.length + ' fragments');\n    if (frag && !frag.relurl) {\n      level.fragments.pop();\n      totalduration -= frag.duration;\n    }\n    level.totalduration = totalduration;\n    level.averagetargetduration = totalduration / level.fragments.length;\n    level.endSN = currentSN - 1;\n    level.startCC = level.fragments[0] ? level.fragments[0].cc : 0;\n    level.endCC = cc;\n\n    if (!level.initSegment && level.fragments.length) {\n      // this is a bit lurky but HLS really has no other way to tell us\n      // if the fragments are TS or MP4, except if we download them :/\n      // but this is to be able to handle SIDX.\n      if (level.fragments.every(function (frag) {\n        return MP4_REGEX_SUFFIX.test(frag.relurl);\n      })) {\n        logger[\"b\" /* logger */].warn('MP4 fragments found but no init segment (probably no MAP, incomplete M3U8), trying to fetch SIDX');\n\n        frag = new loader_fragment();\n        frag.relurl = level.fragments[0].relurl;\n        frag.baseurl = baseurl;\n        frag.level = id;\n        frag.type = type;\n        frag.sn = 'initSegment';\n\n        level.initSegment = frag;\n        level.needSidxRanges = true;\n      }\n    }\n\n    /**\n     * Backfill any missing PDT values\n       \"If the first EXT-X-PROGRAM-DATE-TIME tag in a Playlist appears after\n       one or more Media Segment URIs, the client SHOULD extrapolate\n       backward from that tag (using EXTINF durations and/or media\n       timestamps) to associate dates with those segments.\"\n     * We have already extrapolated forward, but all fragments up to the first instance of PDT do not have their PDTs\n     * computed.\n     */\n    if (firstPdtIndex) {\n      backfillProgramDateTimes(level.fragments, firstPdtIndex);\n    }\n\n    return level;\n  };\n\n  return M3U8Parser;\n}();\n\n/* harmony default export */ var m3u8_parser = (m3u8_parser_M3U8Parser);\n\n\nfunction backfillProgramDateTimes(fragments, startIndex) {\n  var fragPrev = fragments[startIndex];\n  for (var i = startIndex - 1; i >= 0; i--) {\n    var frag = fragments[i];\n    frag.programDateTime = fragPrev.programDateTime - frag.duration * 1000;\n    fragPrev = frag;\n  }\n}\n\nfunction assignProgramDateTime(frag, prevFrag) {\n  if (frag.rawProgramDateTime) {\n    frag.programDateTime = Date.parse(frag.rawProgramDateTime);\n  } else if (prevFrag && prevFrag.programDateTime) {\n    frag.programDateTime = prevFrag.endProgramDateTime;\n  }\n\n  if (!Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.programDateTime)) {\n    frag.programDateTime = null;\n    frag.rawProgramDateTime = null;\n  }\n}\n// CONCATENATED MODULE: ./src/loader/playlist-loader.js\n\n\nvar playlist_loader__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction playlist_loader__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * PlaylistLoader - delegate for media manifest/playlist loading tasks. Takes care of parsing media to internal data-models.\n *\n * Once loaded, dispatches events with parsed data-models of manifest/levels/audio/subtitle tracks.\n *\n * Uses loader(s) set in config to do actual internal loading of resource tasks.\n *\n * @module\n *\n */\n\n\n\n\n\n\n\n\n\n\nvar _window = window,\n    performance = _window.performance;\n\n/**\n * `type` property values for this loaders' context object\n * @enum\n *\n */\n\nvar ContextType = {\n  MANIFEST: 'manifest',\n  LEVEL: 'level',\n  AUDIO_TRACK: 'audioTrack',\n  SUBTITLE_TRACK: 'subtitleTrack'\n};\n\n/**\n * @enum {string}\n */\nvar LevelType = {\n  MAIN: 'main',\n  AUDIO: 'audio',\n  SUBTITLE: 'subtitle'\n};\n\n/**\n * @constructor\n */\n\nvar playlist_loader_PlaylistLoader = function (_EventHandler) {\n  _inherits(PlaylistLoader, _EventHandler);\n\n  /**\n   * @constructs\n   * @param {Hls} hls\n   */\n  function PlaylistLoader(hls) {\n    playlist_loader__classCallCheck(this, PlaylistLoader);\n\n    var _this = _possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].MANIFEST_LOADING, events[\"a\" /* default */].LEVEL_LOADING, events[\"a\" /* default */].AUDIO_TRACK_LOADING, events[\"a\" /* default */].SUBTITLE_TRACK_LOADING));\n\n    _this.loaders = {};\n    return _this;\n  }\n\n  /**\n   * @param {ContextType} type\n   * @returns {boolean}\n   */\n  PlaylistLoader.canHaveQualityLevels = function canHaveQualityLevels(type) {\n    return type !== ContextType.AUDIO_TRACK && type !== ContextType.SUBTITLE_TRACK;\n  };\n\n  /**\n   * Map context.type to LevelType\n   * @param {{type: ContextType}} context\n   * @returns {LevelType}\n   */\n\n\n  PlaylistLoader.mapContextToLevelType = function mapContextToLevelType(context) {\n    var type = context.type;\n\n\n    switch (type) {\n      case ContextType.AUDIO_TRACK:\n        return LevelType.AUDIO;\n      case ContextType.SUBTITLE_TRACK:\n        return LevelType.SUBTITLE;\n      default:\n        return LevelType.MAIN;\n    }\n  };\n\n  PlaylistLoader.getResponseUrl = function getResponseUrl(response, context) {\n    var url = response.url;\n    // responseURL not supported on some browsers (it is used to detect URL redirection)\n    // data-uri mode also not supported (but no need to detect redirection)\n    if (url === undefined || url.indexOf('data:') === 0) {\n      // fallback to initial URL\n      url = context.url;\n    }\n    return url;\n  };\n\n  /**\n   * Returns defaults or configured loader-type overloads (pLoader and loader config params)\n   * Default loader is XHRLoader (see utils)\n   * @param {object} context\n   * @returns {XHRLoader} or other compatible configured overload\n   */\n\n\n  PlaylistLoader.prototype.createInternalLoader = function createInternalLoader(context) {\n    var config = this.hls.config;\n    var PLoader = config.pLoader;\n    var Loader = config.loader;\n    var InternalLoader = PLoader || Loader;\n\n    var loader = new InternalLoader(config);\n\n    context.loader = loader;\n    this.loaders[context.type] = loader;\n\n    return loader;\n  };\n\n  PlaylistLoader.prototype.getInternalLoader = function getInternalLoader(context) {\n    return this.loaders[context.type];\n  };\n\n  PlaylistLoader.prototype.resetInternalLoader = function resetInternalLoader(contextType) {\n    if (this.loaders[contextType]) {\n      delete this.loaders[contextType];\n    }\n  };\n\n  /**\n   * Call `destroy` on all internal loader instances mapped (one per context type)\n   */\n\n\n  PlaylistLoader.prototype.destroyInternalLoaders = function destroyInternalLoaders() {\n    for (var contextType in this.loaders) {\n      var loader = this.loaders[contextType];\n      if (loader) {\n        loader.destroy();\n      }\n\n      this.resetInternalLoader(contextType);\n    }\n  };\n\n  PlaylistLoader.prototype.destroy = function destroy() {\n    this.destroyInternalLoaders();\n\n    _EventHandler.prototype.destroy.call(this);\n  };\n\n  PlaylistLoader.prototype.onManifestLoading = function onManifestLoading(data) {\n    this.load(data.url, { type: ContextType.MANIFEST, level: 0, id: null });\n  };\n\n  PlaylistLoader.prototype.onLevelLoading = function onLevelLoading(data) {\n    this.load(data.url, { type: ContextType.LEVEL, level: data.level, id: data.id });\n  };\n\n  PlaylistLoader.prototype.onAudioTrackLoading = function onAudioTrackLoading(data) {\n    this.load(data.url, { type: ContextType.AUDIO_TRACK, level: null, id: data.id });\n  };\n\n  PlaylistLoader.prototype.onSubtitleTrackLoading = function onSubtitleTrackLoading(data) {\n    this.load(data.url, { type: ContextType.SUBTITLE_TRACK, level: null, id: data.id });\n  };\n\n  PlaylistLoader.prototype.load = function load(url, context) {\n    var config = this.hls.config;\n\n    logger[\"b\" /* logger */].debug('Loading playlist of type ' + context.type + ', level: ' + context.level + ', id: ' + context.id);\n\n    // Check if a loader for this context already exists\n    var loader = this.getInternalLoader(context);\n    if (loader) {\n      var loaderContext = loader.context;\n      if (loaderContext && loaderContext.url === url) {\n        // same URL can't overlap\n        logger[\"b\" /* logger */].trace('playlist request ongoing');\n        return false;\n      } else {\n        logger[\"b\" /* logger */].warn('aborting previous loader for type: ' + context.type);\n        loader.abort();\n      }\n    }\n\n    var maxRetry = void 0,\n        timeout = void 0,\n        retryDelay = void 0,\n        maxRetryDelay = void 0;\n\n    // apply different configs for retries depending on\n    // context (manifest, level, audio/subs playlist)\n    switch (context.type) {\n      case ContextType.MANIFEST:\n        maxRetry = config.manifestLoadingMaxRetry;\n        timeout = config.manifestLoadingTimeOut;\n        retryDelay = config.manifestLoadingRetryDelay;\n        maxRetryDelay = config.manifestLoadingMaxRetryTimeout;\n        break;\n      case ContextType.LEVEL:\n        // Disable internal loader retry logic, since we are managing retries in Level Controller\n        maxRetry = 0;\n        timeout = config.levelLoadingTimeOut;\n        // TODO Introduce retry settings for audio-track and subtitle-track, it should not use level retry config\n        break;\n      default:\n        maxRetry = config.levelLoadingMaxRetry;\n        timeout = config.levelLoadingTimeOut;\n        retryDelay = config.levelLoadingRetryDelay;\n        maxRetryDelay = config.levelLoadingMaxRetryTimeout;\n        break;\n    }\n\n    loader = this.createInternalLoader(context);\n\n    context.url = url;\n    context.responseType = context.responseType || ''; // FIXME: (should not be necessary to do this)\n\n    var loaderConfig = {\n      timeout: timeout,\n      maxRetry: maxRetry,\n      retryDelay: retryDelay,\n      maxRetryDelay: maxRetryDelay\n    };\n\n    var loaderCallbacks = {\n      onSuccess: this.loadsuccess.bind(this),\n      onError: this.loaderror.bind(this),\n      onTimeout: this.loadtimeout.bind(this)\n    };\n\n    logger[\"b\" /* logger */].debug('Calling internal loader delegate for URL: ' + url);\n\n    loader.load(context, loaderConfig, loaderCallbacks);\n\n    return true;\n  };\n\n  PlaylistLoader.prototype.loadsuccess = function loadsuccess(response, stats, context) {\n    var networkDetails = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n    if (context.isSidxRequest) {\n      this._handleSidxRequest(response, context);\n      this._handlePlaylistLoaded(response, stats, context, networkDetails);\n      return;\n    }\n\n    this.resetInternalLoader(context.type);\n\n    var string = response.data;\n\n    stats.tload = performance.now();\n    // stats.mtime = new Date(target.getResponseHeader('Last-Modified'));\n\n    // Validate if it is an M3U8 at all\n    if (string.indexOf('#EXTM3U') !== 0) {\n      this._handleManifestParsingError(response, context, 'no EXTM3U delimiter', networkDetails);\n      return;\n    }\n\n    // Check if chunk-list or master. handle empty chunk list case (first EXTINF not signaled, but TARGETDURATION present)\n    if (string.indexOf('#EXTINF:') > 0 || string.indexOf('#EXT-X-TARGETDURATION:') > 0) {\n      this._handleTrackOrLevelPlaylist(response, stats, context, networkDetails);\n    } else {\n      this._handleMasterPlaylist(response, stats, context, networkDetails);\n    }\n  };\n\n  PlaylistLoader.prototype.loaderror = function loaderror(response, context) {\n    var networkDetails = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n    this._handleNetworkError(context, networkDetails);\n  };\n\n  PlaylistLoader.prototype.loadtimeout = function loadtimeout(stats, context) {\n    var networkDetails = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n    this._handleNetworkError(context, networkDetails, true);\n  };\n\n  PlaylistLoader.prototype._handleMasterPlaylist = function _handleMasterPlaylist(response, stats, context, networkDetails) {\n    var hls = this.hls;\n    var string = response.data;\n\n    var url = PlaylistLoader.getResponseUrl(response, context);\n\n    var levels = m3u8_parser.parseMasterPlaylist(string, url);\n    if (!levels.length) {\n      this._handleManifestParsingError(response, context, 'no level found in manifest', networkDetails);\n      return;\n    }\n\n    // multi level playlist, parse level info\n\n    var audioGroups = levels.map(function (level) {\n      return {\n        id: level.attrs.AUDIO,\n        codec: level.audioCodec\n      };\n    });\n\n    var audioTracks = m3u8_parser.parseMasterPlaylistMedia(string, url, 'AUDIO', audioGroups);\n    var subtitles = m3u8_parser.parseMasterPlaylistMedia(string, url, 'SUBTITLES');\n\n    if (audioTracks.length) {\n      // check if we have found an audio track embedded in main playlist (audio track without URI attribute)\n      var embeddedAudioFound = false;\n      audioTracks.forEach(function (audioTrack) {\n        if (!audioTrack.url) {\n          embeddedAudioFound = true;\n        }\n      });\n\n      // if no embedded audio track defined, but audio codec signaled in quality level,\n      // we need to signal this main audio track this could happen with playlists with\n      // alt audio rendition in which quality levels (main)\n      // contains both audio+video. but with mixed audio track not signaled\n      if (embeddedAudioFound === false && levels[0].audioCodec && !levels[0].attrs.AUDIO) {\n        logger[\"b\" /* logger */].log('audio codec signaled in quality level, but no embedded audio track signaled, create one');\n        audioTracks.unshift({\n          type: 'main',\n          name: 'main'\n        });\n      }\n    }\n\n    hls.trigger(events[\"a\" /* default */].MANIFEST_LOADED, {\n      levels: levels,\n      audioTracks: audioTracks,\n      subtitles: subtitles,\n      url: url,\n      stats: stats,\n      networkDetails: networkDetails\n    });\n  };\n\n  PlaylistLoader.prototype._handleTrackOrLevelPlaylist = function _handleTrackOrLevelPlaylist(response, stats, context, networkDetails) {\n    var hls = this.hls;\n\n    var id = context.id,\n        level = context.level,\n        type = context.type;\n\n\n    var url = PlaylistLoader.getResponseUrl(response, context);\n\n    var levelUrlId = Object(number_isFinite[\"a\" /* isFiniteNumber */])(id) ? id : 0;\n    var levelId = Object(number_isFinite[\"a\" /* isFiniteNumber */])(level) ? level : levelUrlId;\n    var levelType = PlaylistLoader.mapContextToLevelType(context);\n\n    var levelDetails = m3u8_parser.parseLevelPlaylist(response.data, url, levelId, levelType, levelUrlId);\n\n    // set stats on level structure\n    levelDetails.tload = stats.tload;\n\n    // We have done our first request (Manifest-type) and receive\n    // not a master playlist but a chunk-list (track/level)\n    // We fire the manifest-loaded event anyway with the parsed level-details\n    // by creating a single-level structure for it.\n    if (type === ContextType.MANIFEST) {\n      var singleLevel = {\n        url: url,\n        details: levelDetails\n      };\n\n      hls.trigger(events[\"a\" /* default */].MANIFEST_LOADED, {\n        levels: [singleLevel],\n        audioTracks: [],\n        url: url,\n        stats: stats,\n        networkDetails: networkDetails\n      });\n    }\n\n    // save parsing time\n    stats.tparsed = performance.now();\n\n    // in case we need SIDX ranges\n    // return early after calling load for\n    // the SIDX box.\n    if (levelDetails.needSidxRanges) {\n      var sidxUrl = levelDetails.initSegment.url;\n      this.load(sidxUrl, {\n        isSidxRequest: true,\n        type: type,\n        level: level,\n        levelDetails: levelDetails,\n        id: id,\n        rangeStart: 0,\n        rangeEnd: 2048,\n        responseType: 'arraybuffer'\n      });\n      return;\n    }\n\n    // extend the context with the new levelDetails property\n    context.levelDetails = levelDetails;\n\n    this._handlePlaylistLoaded(response, stats, context, networkDetails);\n  };\n\n  PlaylistLoader.prototype._handleSidxRequest = function _handleSidxRequest(response, context) {\n    var sidxInfo = mp4demuxer[\"a\" /* default */].parseSegmentIndex(new Uint8Array(response.data));\n    sidxInfo.references.forEach(function (segmentRef, index) {\n      var segRefInfo = segmentRef.info;\n      var frag = context.levelDetails.fragments[index];\n\n      if (frag.byteRange.length === 0) {\n        frag.rawByteRange = String(1 + segRefInfo.end - segRefInfo.start) + '@' + String(segRefInfo.start);\n      }\n    });\n\n    context.levelDetails.initSegment.rawByteRange = String(sidxInfo.moovEndOffset) + '@0';\n  };\n\n  PlaylistLoader.prototype._handleManifestParsingError = function _handleManifestParsingError(response, context, reason, networkDetails) {\n    this.hls.trigger(events[\"a\" /* default */].ERROR, {\n      type: errors[\"b\" /* ErrorTypes */].NETWORK_ERROR,\n      details: errors[\"a\" /* ErrorDetails */].MANIFEST_PARSING_ERROR,\n      fatal: true,\n      url: response.url,\n      reason: reason,\n      networkDetails: networkDetails\n    });\n  };\n\n  PlaylistLoader.prototype._handleNetworkError = function _handleNetworkError(context, networkDetails) {\n    var timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    logger[\"b\" /* logger */].info('A network error occured while loading a ' + context.type + '-type playlist');\n\n    var details = void 0;\n    var fatal = void 0;\n\n    var loader = this.getInternalLoader(context);\n\n    switch (context.type) {\n      case ContextType.MANIFEST:\n        details = timeout ? errors[\"a\" /* ErrorDetails */].MANIFEST_LOAD_TIMEOUT : errors[\"a\" /* ErrorDetails */].MANIFEST_LOAD_ERROR;\n        fatal = true;\n        break;\n      case ContextType.LEVEL:\n        details = timeout ? errors[\"a\" /* ErrorDetails */].LEVEL_LOAD_TIMEOUT : errors[\"a\" /* ErrorDetails */].LEVEL_LOAD_ERROR;\n        fatal = false;\n        break;\n      case ContextType.AUDIO_TRACK:\n        details = timeout ? errors[\"a\" /* ErrorDetails */].AUDIO_TRACK_LOAD_TIMEOUT : errors[\"a\" /* ErrorDetails */].AUDIO_TRACK_LOAD_ERROR;\n        fatal = false;\n        break;\n      default:\n        // details = ...?\n        fatal = false;\n    }\n\n    if (loader) {\n      loader.abort();\n      this.resetInternalLoader(context.type);\n    }\n\n    this.hls.trigger(events[\"a\" /* default */].ERROR, {\n      type: errors[\"b\" /* ErrorTypes */].NETWORK_ERROR,\n      details: details,\n      fatal: fatal,\n      url: loader.url,\n      loader: loader,\n      context: context,\n      networkDetails: networkDetails\n    });\n  };\n\n  PlaylistLoader.prototype._handlePlaylistLoaded = function _handlePlaylistLoaded(response, stats, context, networkDetails) {\n    var type = context.type,\n        level = context.level,\n        id = context.id,\n        levelDetails = context.levelDetails;\n\n\n    if (!levelDetails.targetduration) {\n      this._handleManifestParsingError(response, context, 'invalid target duration', networkDetails);\n      return;\n    }\n\n    var canHaveLevels = PlaylistLoader.canHaveQualityLevels(context.type);\n    if (canHaveLevels) {\n      this.hls.trigger(events[\"a\" /* default */].LEVEL_LOADED, {\n        details: levelDetails,\n        level: level || 0,\n        id: id || 0,\n        stats: stats,\n        networkDetails: networkDetails\n      });\n    } else {\n      switch (type) {\n        case ContextType.AUDIO_TRACK:\n          this.hls.trigger(events[\"a\" /* default */].AUDIO_TRACK_LOADED, {\n            details: levelDetails,\n            id: id,\n            stats: stats,\n            networkDetails: networkDetails\n          });\n          break;\n        case ContextType.SUBTITLE_TRACK:\n          this.hls.trigger(events[\"a\" /* default */].SUBTITLE_TRACK_LOADED, {\n            details: levelDetails,\n            id: id,\n            stats: stats,\n            networkDetails: networkDetails\n          });\n          break;\n      }\n    }\n  };\n\n  playlist_loader__createClass(PlaylistLoader, null, [{\n    key: 'ContextType',\n    get: function get() {\n      return ContextType;\n    }\n  }, {\n    key: 'LevelType',\n    get: function get() {\n      return LevelType;\n    }\n  }]);\n\n  return PlaylistLoader;\n}(event_handler);\n\n/* harmony default export */ var playlist_loader = (playlist_loader_PlaylistLoader);\n// CONCATENATED MODULE: ./src/loader/fragment-loader.js\n\n\nfunction fragment_loader__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction fragment_loader__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction fragment_loader__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * Fragment Loader\n*/\n\n\n\n\n\n\nvar fragment_loader_FragmentLoader = function (_EventHandler) {\n  fragment_loader__inherits(FragmentLoader, _EventHandler);\n\n  function FragmentLoader(hls) {\n    fragment_loader__classCallCheck(this, FragmentLoader);\n\n    var _this = fragment_loader__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].FRAG_LOADING));\n\n    _this.loaders = {};\n    return _this;\n  }\n\n  FragmentLoader.prototype.destroy = function destroy() {\n    var loaders = this.loaders;\n    for (var loaderName in loaders) {\n      var loader = loaders[loaderName];\n      if (loader) {\n        loader.destroy();\n      }\n    }\n    this.loaders = {};\n\n    _EventHandler.prototype.destroy.call(this);\n  };\n\n  FragmentLoader.prototype.onFragLoading = function onFragLoading(data) {\n    var frag = data.frag,\n        type = frag.type,\n        loaders = this.loaders,\n        config = this.hls.config,\n        FragmentILoader = config.fLoader,\n        DefaultILoader = config.loader;\n\n    // reset fragment state\n    frag.loaded = 0;\n\n    var loader = loaders[type];\n    if (loader) {\n      logger[\"b\" /* logger */].warn('abort previous fragment loader for type: ' + type);\n      loader.abort();\n    }\n\n    loader = loaders[type] = frag.loader = config.fLoader ? new FragmentILoader(config) : new DefaultILoader(config);\n\n    var loaderContext = void 0,\n        loaderConfig = void 0,\n        loaderCallbacks = void 0;\n\n    loaderContext = { url: frag.url, frag: frag, responseType: 'arraybuffer', progressData: false };\n\n    var start = frag.byteRangeStartOffset,\n        end = frag.byteRangeEndOffset;\n\n    if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(start) && Object(number_isFinite[\"a\" /* isFiniteNumber */])(end)) {\n      loaderContext.rangeStart = start;\n      loaderContext.rangeEnd = end;\n    }\n\n    loaderConfig = {\n      timeout: config.fragLoadingTimeOut,\n      maxRetry: 0,\n      retryDelay: 0,\n      maxRetryDelay: config.fragLoadingMaxRetryTimeout\n    };\n\n    loaderCallbacks = {\n      onSuccess: this.loadsuccess.bind(this),\n      onError: this.loaderror.bind(this),\n      onTimeout: this.loadtimeout.bind(this),\n      onProgress: this.loadprogress.bind(this)\n    };\n\n    loader.load(loaderContext, loaderConfig, loaderCallbacks);\n  };\n\n  FragmentLoader.prototype.loadsuccess = function loadsuccess(response, stats, context) {\n    var networkDetails = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n    var payload = response.data,\n        frag = context.frag;\n    // detach fragment loader on load success\n    frag.loader = undefined;\n    this.loaders[frag.type] = undefined;\n    this.hls.trigger(events[\"a\" /* default */].FRAG_LOADED, { payload: payload, frag: frag, stats: stats, networkDetails: networkDetails });\n  };\n\n  FragmentLoader.prototype.loaderror = function loaderror(response, context) {\n    var networkDetails = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n    var frag = context.frag;\n    var loader = frag.loader;\n    if (loader) {\n      loader.abort();\n    }\n\n    this.loaders[frag.type] = undefined;\n    this.hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].NETWORK_ERROR, details: errors[\"a\" /* ErrorDetails */].FRAG_LOAD_ERROR, fatal: false, frag: context.frag, response: response, networkDetails: networkDetails });\n  };\n\n  FragmentLoader.prototype.loadtimeout = function loadtimeout(stats, context) {\n    var networkDetails = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n    var frag = context.frag;\n    var loader = frag.loader;\n    if (loader) {\n      loader.abort();\n    }\n\n    this.loaders[frag.type] = undefined;\n    this.hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].NETWORK_ERROR, details: errors[\"a\" /* ErrorDetails */].FRAG_LOAD_TIMEOUT, fatal: false, frag: context.frag, networkDetails: networkDetails });\n  };\n\n  // data will be used for progressive parsing\n\n\n  FragmentLoader.prototype.loadprogress = function loadprogress(stats, context, data) {\n    var networkDetails = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n    // jshint ignore:line\n    var frag = context.frag;\n    frag.loaded = stats.loaded;\n    this.hls.trigger(events[\"a\" /* default */].FRAG_LOAD_PROGRESS, { frag: frag, stats: stats, networkDetails: networkDetails });\n  };\n\n  return FragmentLoader;\n}(event_handler);\n\n/* harmony default export */ var fragment_loader = (fragment_loader_FragmentLoader);\n// CONCATENATED MODULE: ./src/loader/key-loader.js\nfunction key_loader__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction key_loader__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction key_loader__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * Decrypt key Loader\n*/\n\n\n\n\n\n\nvar key_loader_KeyLoader = function (_EventHandler) {\n  key_loader__inherits(KeyLoader, _EventHandler);\n\n  function KeyLoader(hls) {\n    key_loader__classCallCheck(this, KeyLoader);\n\n    var _this = key_loader__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].KEY_LOADING));\n\n    _this.loaders = {};\n    _this.decryptkey = null;\n    _this.decrypturl = null;\n    return _this;\n  }\n\n  KeyLoader.prototype.destroy = function destroy() {\n    for (var loaderName in this.loaders) {\n      var loader = this.loaders[loaderName];\n      if (loader) {\n        loader.destroy();\n      }\n    }\n    this.loaders = {};\n    event_handler.prototype.destroy.call(this);\n  };\n\n  KeyLoader.prototype.onKeyLoading = function onKeyLoading(data) {\n    var frag = data.frag,\n        type = frag.type,\n        loader = this.loaders[type],\n        decryptdata = frag.decryptdata,\n        uri = decryptdata.uri;\n    // if uri is different from previous one or if decrypt key not retrieved yet\n    if (uri !== this.decrypturl || this.decryptkey === null) {\n      var config = this.hls.config;\n\n      if (loader) {\n        logger[\"b\" /* logger */].warn('abort previous key loader for type:' + type);\n        loader.abort();\n      }\n      frag.loader = this.loaders[type] = new config.loader(config);\n      this.decrypturl = uri;\n      this.decryptkey = null;\n\n      var loaderContext = void 0,\n          loaderConfig = void 0,\n          loaderCallbacks = void 0;\n      loaderContext = { url: uri, frag: frag, responseType: 'arraybuffer' };\n      loaderConfig = { timeout: config.fragLoadingTimeOut, maxRetry: config.fragLoadingMaxRetry, retryDelay: config.fragLoadingRetryDelay, maxRetryDelay: config.fragLoadingMaxRetryTimeout };\n      loaderCallbacks = { onSuccess: this.loadsuccess.bind(this), onError: this.loaderror.bind(this), onTimeout: this.loadtimeout.bind(this) };\n      frag.loader.load(loaderContext, loaderConfig, loaderCallbacks);\n    } else if (this.decryptkey) {\n      // we already loaded this key, return it\n      decryptdata.key = this.decryptkey;\n      this.hls.trigger(events[\"a\" /* default */].KEY_LOADED, { frag: frag });\n    }\n  };\n\n  KeyLoader.prototype.loadsuccess = function loadsuccess(response, stats, context) {\n    var frag = context.frag;\n    this.decryptkey = frag.decryptdata.key = new Uint8Array(response.data);\n    // detach fragment loader on load success\n    frag.loader = undefined;\n    this.loaders[frag.type] = undefined;\n    this.hls.trigger(events[\"a\" /* default */].KEY_LOADED, { frag: frag });\n  };\n\n  KeyLoader.prototype.loaderror = function loaderror(response, context) {\n    var frag = context.frag,\n        loader = frag.loader;\n    if (loader) {\n      loader.abort();\n    }\n\n    this.loaders[context.type] = undefined;\n    this.hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].NETWORK_ERROR, details: errors[\"a\" /* ErrorDetails */].KEY_LOAD_ERROR, fatal: false, frag: frag, response: response });\n  };\n\n  KeyLoader.prototype.loadtimeout = function loadtimeout(stats, context) {\n    var frag = context.frag,\n        loader = frag.loader;\n    if (loader) {\n      loader.abort();\n    }\n\n    this.loaders[context.type] = undefined;\n    this.hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].NETWORK_ERROR, details: errors[\"a\" /* ErrorDetails */].KEY_LOAD_TIMEOUT, fatal: false, frag: frag });\n  };\n\n  return KeyLoader;\n}(event_handler);\n\n/* harmony default export */ var key_loader = (key_loader_KeyLoader);\n// CONCATENATED MODULE: ./src/controller/fragment-tracker.js\n\n\nfunction fragment_tracker__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction fragment_tracker__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction fragment_tracker__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\nvar FragmentState = {\n  NOT_LOADED: 'NOT_LOADED',\n  APPENDING: 'APPENDING',\n  PARTIAL: 'PARTIAL',\n  OK: 'OK'\n};\n\nvar fragment_tracker_FragmentTracker = function (_EventHandler) {\n  fragment_tracker__inherits(FragmentTracker, _EventHandler);\n\n  function FragmentTracker(hls) {\n    fragment_tracker__classCallCheck(this, FragmentTracker);\n\n    var _this = fragment_tracker__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].BUFFER_APPENDED, events[\"a\" /* default */].FRAG_BUFFERED, events[\"a\" /* default */].FRAG_LOADED));\n\n    _this.bufferPadding = 0.2;\n\n    _this.fragments = Object.create(null);\n    _this.timeRanges = Object.create(null);\n\n    _this.config = hls.config;\n    return _this;\n  }\n\n  FragmentTracker.prototype.destroy = function destroy() {\n    this.fragments = null;\n    this.timeRanges = null;\n    this.config = null;\n    event_handler.prototype.destroy.call(this);\n    _EventHandler.prototype.destroy.call(this);\n  };\n\n  /**\n   * Return a Fragment that match the position and levelType.\n   * If not found any Fragment, return null\n   * @param {number} position\n   * @param {LevelType} levelType\n   * @returns {Fragment|null}\n   */\n\n\n  FragmentTracker.prototype.getBufferedFrag = function getBufferedFrag(position, levelType) {\n    var fragments = this.fragments;\n    var bufferedFrags = Object.keys(fragments).filter(function (key) {\n      var fragmentEntity = fragments[key];\n      if (fragmentEntity.body.type !== levelType) {\n        return false;\n      }\n\n      if (!fragmentEntity.buffered) {\n        return false;\n      }\n\n      var frag = fragmentEntity.body;\n      return frag.startPTS <= position && position <= frag.endPTS;\n    });\n    if (bufferedFrags.length === 0) {\n      return null;\n    } else {\n      // https://github.com/video-dev/hls.js/pull/1545#discussion_r166229566\n      var bufferedFragKey = bufferedFrags.pop();\n      return fragments[bufferedFragKey].body;\n    }\n  };\n\n  /**\n   * Partial fragments effected by coded frame eviction will be removed\n   * The browser will unload parts of the buffer to free up memory for new buffer data\n   * Fragments will need to be reloaded when the buffer is freed up, removing partial fragments will allow them to reload(since there might be parts that are still playable)\n   * @param {String} elementaryStream The elementaryStream of media this is (eg. video/audio)\n   * @param {TimeRanges} timeRange TimeRange object from a sourceBuffer\n   */\n\n\n  FragmentTracker.prototype.detectEvictedFragments = function detectEvictedFragments(elementaryStream, timeRange) {\n    var _this2 = this;\n\n    var fragmentTimes = void 0,\n        time = void 0;\n    // Check if any flagged fragments have been unloaded\n    Object.keys(this.fragments).forEach(function (key) {\n      var fragmentEntity = _this2.fragments[key];\n      if (fragmentEntity.buffered === true) {\n        var esData = fragmentEntity.range[elementaryStream];\n        if (esData) {\n          fragmentTimes = esData.time;\n          for (var i = 0; i < fragmentTimes.length; i++) {\n            time = fragmentTimes[i];\n\n            if (_this2.isTimeBuffered(time.startPTS, time.endPTS, timeRange) === false) {\n              // Unregister partial fragment as it needs to load again to be reused\n              _this2.removeFragment(fragmentEntity.body);\n              break;\n            }\n          }\n        }\n      }\n    });\n  };\n\n  /**\n   * Checks if the fragment passed in is loaded in the buffer properly\n   * Partially loaded fragments will be registered as a partial fragment\n   * @param {Object} fragment Check the fragment against all sourceBuffers loaded\n   */\n\n\n  FragmentTracker.prototype.detectPartialFragments = function detectPartialFragments(fragment) {\n    var _this3 = this;\n\n    var fragKey = this.getFragmentKey(fragment);\n    var fragmentEntity = this.fragments[fragKey];\n    if (fragmentEntity) {\n      fragmentEntity.buffered = true;\n\n      Object.keys(this.timeRanges).forEach(function (elementaryStream) {\n        if (fragment.hasElementaryStream(elementaryStream)) {\n          var timeRange = _this3.timeRanges[elementaryStream];\n          // Check for malformed fragments\n          // Gaps need to be calculated for each elementaryStream\n          fragmentEntity.range[elementaryStream] = _this3.getBufferedTimes(fragment.startPTS, fragment.endPTS, timeRange);\n        }\n      });\n    }\n  };\n\n  FragmentTracker.prototype.getBufferedTimes = function getBufferedTimes(startPTS, endPTS, timeRange) {\n    var fragmentTimes = [];\n    var startTime = void 0,\n        endTime = void 0;\n    var fragmentPartial = false;\n    for (var i = 0; i < timeRange.length; i++) {\n      startTime = timeRange.start(i) - this.bufferPadding;\n      endTime = timeRange.end(i) + this.bufferPadding;\n      if (startPTS >= startTime && endPTS <= endTime) {\n        // Fragment is entirely contained in buffer\n        // No need to check the other timeRange times since it's completely playable\n        fragmentTimes.push({\n          startPTS: Math.max(startPTS, timeRange.start(i)),\n          endPTS: Math.min(endPTS, timeRange.end(i))\n        });\n        break;\n      } else if (startPTS < endTime && endPTS > startTime) {\n        // Check for intersection with buffer\n        // Get playable sections of the fragment\n        fragmentTimes.push({\n          startPTS: Math.max(startPTS, timeRange.start(i)),\n          endPTS: Math.min(endPTS, timeRange.end(i))\n        });\n        fragmentPartial = true;\n      } else if (endPTS <= startTime) {\n        // No need to check the rest of the timeRange as it is in order\n        break;\n      }\n    }\n\n    return {\n      time: fragmentTimes,\n      partial: fragmentPartial\n    };\n  };\n\n  FragmentTracker.prototype.getFragmentKey = function getFragmentKey(fragment) {\n    return fragment.type + '_' + fragment.level + '_' + fragment.urlId + '_' + fragment.sn;\n  };\n\n  /**\n   * Gets the partial fragment for a certain time\n   * @param {Number} time\n   * @returns {Object} fragment Returns a partial fragment at a time or null if there is no partial fragment\n   */\n\n\n  FragmentTracker.prototype.getPartialFragment = function getPartialFragment(time) {\n    var _this4 = this;\n\n    var timePadding = void 0,\n        startTime = void 0,\n        endTime = void 0;\n    var bestFragment = null;\n    var bestOverlap = 0;\n    Object.keys(this.fragments).forEach(function (key) {\n      var fragmentEntity = _this4.fragments[key];\n      if (_this4.isPartial(fragmentEntity)) {\n        startTime = fragmentEntity.body.startPTS - _this4.bufferPadding;\n        endTime = fragmentEntity.body.endPTS + _this4.bufferPadding;\n        if (time >= startTime && time <= endTime) {\n          // Use the fragment that has the most padding from start and end time\n          timePadding = Math.min(time - startTime, endTime - time);\n          if (bestOverlap <= timePadding) {\n            bestFragment = fragmentEntity.body;\n            bestOverlap = timePadding;\n          }\n        }\n      }\n    });\n    return bestFragment;\n  };\n\n  /**\n   * @param {Object} fragment The fragment to check\n   * @returns {String} Returns the fragment state when a fragment never loaded or if it partially loaded\n   */\n\n\n  FragmentTracker.prototype.getState = function getState(fragment) {\n    var fragKey = this.getFragmentKey(fragment);\n    var fragmentEntity = this.fragments[fragKey];\n    var state = FragmentState.NOT_LOADED;\n\n    if (fragmentEntity !== undefined) {\n      if (!fragmentEntity.buffered) {\n        state = FragmentState.APPENDING;\n      } else if (this.isPartial(fragmentEntity) === true) {\n        state = FragmentState.PARTIAL;\n      } else {\n        state = FragmentState.OK;\n      }\n    }\n\n    return state;\n  };\n\n  FragmentTracker.prototype.isPartial = function isPartial(fragmentEntity) {\n    return fragmentEntity.buffered === true && (fragmentEntity.range.video !== undefined && fragmentEntity.range.video.partial === true || fragmentEntity.range.audio !== undefined && fragmentEntity.range.audio.partial === true);\n  };\n\n  FragmentTracker.prototype.isTimeBuffered = function isTimeBuffered(startPTS, endPTS, timeRange) {\n    var startTime = void 0,\n        endTime = void 0;\n    for (var i = 0; i < timeRange.length; i++) {\n      startTime = timeRange.start(i) - this.bufferPadding;\n      endTime = timeRange.end(i) + this.bufferPadding;\n      if (startPTS >= startTime && endPTS <= endTime) {\n        return true;\n      }\n\n      if (endPTS <= startTime) {\n        // No need to check the rest of the timeRange as it is in order\n        return false;\n      }\n    }\n\n    return false;\n  };\n\n  /**\n   * Fires when a fragment loading is completed\n   */\n\n\n  FragmentTracker.prototype.onFragLoaded = function onFragLoaded(e) {\n    var fragment = e.frag;\n    // don't track initsegment (for which sn is not a number)\n    // don't track frags used for bitrateTest, they're irrelevant.\n    if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(fragment.sn) && !fragment.bitrateTest) {\n      this.fragments[this.getFragmentKey(fragment)] = {\n        body: fragment,\n        range: Object.create(null),\n        buffered: false\n      };\n    }\n  };\n\n  /**\n   * Fires when the buffer is updated\n   */\n\n\n  FragmentTracker.prototype.onBufferAppended = function onBufferAppended(e) {\n    var _this5 = this;\n\n    // Store the latest timeRanges loaded in the buffer\n    this.timeRanges = e.timeRanges;\n    Object.keys(this.timeRanges).forEach(function (elementaryStream) {\n      var timeRange = _this5.timeRanges[elementaryStream];\n      _this5.detectEvictedFragments(elementaryStream, timeRange);\n    });\n  };\n\n  /**\n   * Fires after a fragment has been loaded into the source buffer\n   */\n\n\n  FragmentTracker.prototype.onFragBuffered = function onFragBuffered(e) {\n    this.detectPartialFragments(e.frag);\n  };\n\n  /**\n   * Return true if fragment tracker has the fragment.\n   * @param {Object} fragment\n   * @returns {boolean}\n   */\n\n\n  FragmentTracker.prototype.hasFragment = function hasFragment(fragment) {\n    var fragKey = this.getFragmentKey(fragment);\n    return this.fragments[fragKey] !== undefined;\n  };\n\n  /**\n   * Remove a fragment from fragment tracker until it is loaded again\n   * @param {Object} fragment The fragment to remove\n   */\n\n\n  FragmentTracker.prototype.removeFragment = function removeFragment(fragment) {\n    var fragKey = this.getFragmentKey(fragment);\n    delete this.fragments[fragKey];\n  };\n\n  /**\n   * Remove all fragments from fragment tracker.\n   */\n\n\n  FragmentTracker.prototype.removeAllFragments = function removeAllFragments() {\n    this.fragments = Object.create(null);\n  };\n\n  return FragmentTracker;\n}(event_handler);\n// CONCATENATED MODULE: ./src/utils/binary-search.js\nvar BinarySearch = {\n  /**\n     * Searches for an item in an array which matches a certain condition.\n     * This requires the condition to only match one item in the array,\n     * and for the array to be ordered.\n     *\n     * @param {Array} list The array to search.\n     * @param {Function} comparisonFunction\n     *      Called and provided a candidate item as the first argument.\n     *      Should return:\n     *          > -1 if the item should be located at a lower index than the provided item.\n     *          > 1 if the item should be located at a higher index than the provided item.\n     *          > 0 if the item is the item you're looking for.\n     *\n     * @return {*} The object if it is found or null otherwise.\n     */\n  search: function search(list, comparisonFunction) {\n    var minIndex = 0;\n    var maxIndex = list.length - 1;\n    var currentIndex = null;\n    var currentElement = null;\n\n    while (minIndex <= maxIndex) {\n      currentIndex = (minIndex + maxIndex) / 2 | 0;\n      currentElement = list[currentIndex];\n\n      var comparisonResult = comparisonFunction(currentElement);\n      if (comparisonResult > 0) {\n        minIndex = currentIndex + 1;\n      } else if (comparisonResult < 0) {\n        maxIndex = currentIndex - 1;\n      } else {\n        return currentElement;\n      }\n    }\n\n    return null;\n  }\n};\n\n/* harmony default export */ var binary_search = (BinarySearch);\n// CONCATENATED MODULE: ./src/utils/buffer-helper.js\nfunction buffer_helper__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @module BufferHelper\n *\n * Providing methods dealing with buffer length retrieval for example.\n *\n * In general, a helper around HTML5 MediaElement TimeRanges gathered from `buffered` property.\n *\n * Also @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/buffered\n*/\n\nvar BufferHelper = function () {\n  function BufferHelper() {\n    buffer_helper__classCallCheck(this, BufferHelper);\n  }\n\n  /**\n   * Return true if `media`'s buffered include `position`\n   * @param {HTMLMediaElement|SourceBuffer} media\n   * @param {number} position\n   * @returns {boolean}\n   */\n  BufferHelper.isBuffered = function isBuffered(media, position) {\n    try {\n      if (media) {\n        var buffered = media.buffered;\n        for (var i = 0; i < buffered.length; i++) {\n          if (position >= buffered.start(i) && position <= buffered.end(i)) {\n            return true;\n          }\n        }\n      }\n    } catch (error) {\n      // this is to catch\n      // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n      // This SourceBuffer has been removed from the parent media source\n    }\n    return false;\n  };\n\n  BufferHelper.bufferInfo = function bufferInfo(media, pos, maxHoleDuration) {\n    try {\n      if (media) {\n        var vbuffered = media.buffered,\n            buffered = [],\n            i = void 0;\n        for (i = 0; i < vbuffered.length; i++) {\n          buffered.push({ start: vbuffered.start(i), end: vbuffered.end(i) });\n        }\n\n        return this.bufferedInfo(buffered, pos, maxHoleDuration);\n      }\n    } catch (error) {\n      // this is to catch\n      // InvalidStateError: Failed to read the 'buffered' property from 'SourceBuffer':\n      // This SourceBuffer has been removed from the parent media source\n    }\n    return { len: 0, start: pos, end: pos, nextStart: undefined };\n  };\n\n  BufferHelper.bufferedInfo = function bufferedInfo(buffered, pos, maxHoleDuration) {\n    var buffered2 = [],\n\n    // bufferStart and bufferEnd are buffer boundaries around current video position\n    bufferLen = void 0,\n        bufferStart = void 0,\n        bufferEnd = void 0,\n        bufferStartNext = void 0,\n        i = void 0;\n    // sort on buffer.start/smaller end (IE does not always return sorted buffered range)\n    buffered.sort(function (a, b) {\n      var diff = a.start - b.start;\n      if (diff) {\n        return diff;\n      } else {\n        return b.end - a.end;\n      }\n    });\n    // there might be some small holes between buffer time range\n    // consider that holes smaller than maxHoleDuration are irrelevant and build another\n    // buffer time range representations that discards those holes\n    for (i = 0; i < buffered.length; i++) {\n      var buf2len = buffered2.length;\n      if (buf2len) {\n        var buf2end = buffered2[buf2len - 1].end;\n        // if small hole (value between 0 or maxHoleDuration ) or overlapping (negative)\n        if (buffered[i].start - buf2end < maxHoleDuration) {\n          // merge overlapping time ranges\n          // update lastRange.end only if smaller than item.end\n          // e.g.  [ 1, 15] with  [ 2,8] => [ 1,15] (no need to modify lastRange.end)\n          // whereas [ 1, 8] with  [ 2,15] => [ 1,15] ( lastRange should switch from [1,8] to [1,15])\n          if (buffered[i].end > buf2end) {\n            buffered2[buf2len - 1].end = buffered[i].end;\n          }\n        } else {\n          // big hole\n          buffered2.push(buffered[i]);\n        }\n      } else {\n        // first value\n        buffered2.push(buffered[i]);\n      }\n    }\n    for (i = 0, bufferLen = 0, bufferStart = bufferEnd = pos; i < buffered2.length; i++) {\n      var start = buffered2[i].start,\n          end = buffered2[i].end;\n      // logger.log('buf start/end:' + buffered.start(i) + '/' + buffered.end(i));\n      if (pos + maxHoleDuration >= start && pos < end) {\n        // play position is inside this buffer TimeRange, retrieve end of buffer position and buffer length\n        bufferStart = start;\n        bufferEnd = end;\n        bufferLen = bufferEnd - pos;\n      } else if (pos + maxHoleDuration < start) {\n        bufferStartNext = start;\n        break;\n      }\n    }\n    return { len: bufferLen, start: bufferStart, end: bufferEnd, nextStart: bufferStartNext };\n  };\n\n  return BufferHelper;\n}();\n// EXTERNAL MODULE: ./node_modules/events/events.js\nvar events_events = __webpack_require__(7);\nvar events_default = /*#__PURE__*/__webpack_require__.n(events_events);\n\n// EXTERNAL MODULE: ./node_modules/webworkify-webpack/index.js\nvar webworkify_webpack = __webpack_require__(12);\nvar webworkify_webpack_default = /*#__PURE__*/__webpack_require__.n(webworkify_webpack);\n\n// EXTERNAL MODULE: ./src/demux/demuxer-inline.js + 11 modules\nvar demuxer_inline = __webpack_require__(10);\n\n// CONCATENATED MODULE: ./src/utils/mediasource-helper.js\n/**\n * MediaSource helper\n */\n\nfunction getMediaSource() {\n  if (typeof window !== 'undefined') {\n    return window.MediaSource || window.WebKitMediaSource;\n  }\n}\n// EXTERNAL MODULE: ./src/utils/get-self-scope.js\nvar get_self_scope = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./src/demux/demuxer.js\n\n\nfunction demuxer__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\n\n\n\n\n\n// see https://stackoverflow.com/a/11237259/589493\nvar global = Object(get_self_scope[\"a\" /* getSelfScope */])(); // safeguard for code that might run both on worker and main thread\nvar MediaSource = getMediaSource();\n\nvar demuxer_Demuxer = function () {\n  function Demuxer(hls, id) {\n    demuxer__classCallCheck(this, Demuxer);\n\n    this.hls = hls;\n    this.id = id;\n    // observer setup\n    var observer = this.observer = new events_default.a();\n    var config = hls.config;\n    observer.trigger = function trigger(event) {\n      for (var _len = arguments.length, data = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        data[_key - 1] = arguments[_key];\n      }\n\n      observer.emit.apply(observer, [event, event].concat(data));\n    };\n\n    observer.off = function off(event) {\n      for (var _len2 = arguments.length, data = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        data[_key2 - 1] = arguments[_key2];\n      }\n\n      observer.removeListener.apply(observer, [event].concat(data));\n    };\n\n    var forwardMessage = function (ev, data) {\n      data = data || {};\n      data.frag = this.frag;\n      data.id = this.id;\n      hls.trigger(ev, data);\n    }.bind(this);\n\n    // forward events to main thread\n    observer.on(events[\"a\" /* default */].FRAG_DECRYPTED, forwardMessage);\n    observer.on(events[\"a\" /* default */].FRAG_PARSING_INIT_SEGMENT, forwardMessage);\n    observer.on(events[\"a\" /* default */].FRAG_PARSING_DATA, forwardMessage);\n    observer.on(events[\"a\" /* default */].FRAG_PARSED, forwardMessage);\n    observer.on(events[\"a\" /* default */].ERROR, forwardMessage);\n    observer.on(events[\"a\" /* default */].FRAG_PARSING_METADATA, forwardMessage);\n    observer.on(events[\"a\" /* default */].FRAG_PARSING_USERDATA, forwardMessage);\n    observer.on(events[\"a\" /* default */].INIT_PTS_FOUND, forwardMessage);\n\n    var typeSupported = {\n      mp4: MediaSource.isTypeSupported('video/mp4'),\n      mpeg: MediaSource.isTypeSupported('audio/mpeg'),\n      mp3: MediaSource.isTypeSupported('audio/mp4; codecs=\"mp3\"')\n    };\n    // navigator.vendor is not always available in Web Worker\n    // refer to https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/navigator\n    var vendor = navigator.vendor;\n    if (config.enableWorker && typeof Worker !== 'undefined') {\n      logger[\"b\" /* logger */].log('demuxing in webworker');\n      var w = void 0;\n      try {\n        w = this.w = webworkify_webpack_default()(/*require.resolve*/(13));\n        this.onwmsg = this.onWorkerMessage.bind(this);\n        w.addEventListener('message', this.onwmsg);\n        w.onerror = function (event) {\n          hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].OTHER_ERROR, details: errors[\"a\" /* ErrorDetails */].INTERNAL_EXCEPTION, fatal: true, event: 'demuxerWorker', err: { message: event.message + ' (' + event.filename + ':' + event.lineno + ')' } });\n        };\n        w.postMessage({ cmd: 'init', typeSupported: typeSupported, vendor: vendor, id: id, config: JSON.stringify(config) });\n      } catch (err) {\n        logger[\"b\" /* logger */].error('error while initializing DemuxerWorker, fallback on DemuxerInline');\n        if (w) {\n          // revoke the Object URL that was used to create demuxer worker, so as not to leak it\n          global.URL.revokeObjectURL(w.objectURL);\n        }\n        this.demuxer = new demuxer_inline[\"a\" /* default */](observer, typeSupported, config, vendor);\n        this.w = undefined;\n      }\n    } else {\n      this.demuxer = new demuxer_inline[\"a\" /* default */](observer, typeSupported, config, vendor);\n    }\n  }\n\n  Demuxer.prototype.destroy = function destroy() {\n    var w = this.w;\n    if (w) {\n      w.removeEventListener('message', this.onwmsg);\n      w.terminate();\n      this.w = null;\n    } else {\n      var demuxer = this.demuxer;\n      if (demuxer) {\n        demuxer.destroy();\n        this.demuxer = null;\n      }\n    }\n    var observer = this.observer;\n    if (observer) {\n      observer.removeAllListeners();\n      this.observer = null;\n    }\n  };\n\n  Demuxer.prototype.push = function push(data, initSegment, audioCodec, videoCodec, frag, duration, accurateTimeOffset, defaultInitPTS) {\n    var w = this.w;\n    var timeOffset = Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.startDTS) ? frag.startDTS : frag.start;\n    var decryptdata = frag.decryptdata;\n    var lastFrag = this.frag;\n    var discontinuity = !(lastFrag && frag.cc === lastFrag.cc);\n    var trackSwitch = !(lastFrag && frag.level === lastFrag.level);\n    var nextSN = lastFrag && frag.sn === lastFrag.sn + 1;\n    var contiguous = !trackSwitch && nextSN;\n    if (discontinuity) {\n      logger[\"b\" /* logger */].log(this.id + ':discontinuity detected');\n    }\n\n    if (trackSwitch) {\n      logger[\"b\" /* logger */].log(this.id + ':switch detected');\n    }\n\n    this.frag = frag;\n    if (w) {\n      // post fragment payload as transferable objects for ArrayBuffer (no copy)\n      w.postMessage({ cmd: 'demux', data: data, decryptdata: decryptdata, initSegment: initSegment, audioCodec: audioCodec, videoCodec: videoCodec, timeOffset: timeOffset, discontinuity: discontinuity, trackSwitch: trackSwitch, contiguous: contiguous, duration: duration, accurateTimeOffset: accurateTimeOffset, defaultInitPTS: defaultInitPTS }, data instanceof ArrayBuffer ? [data] : []);\n    } else {\n      var demuxer = this.demuxer;\n      if (demuxer) {\n        demuxer.push(data, decryptdata, initSegment, audioCodec, videoCodec, timeOffset, discontinuity, trackSwitch, contiguous, duration, accurateTimeOffset, defaultInitPTS);\n      }\n    }\n  };\n\n  Demuxer.prototype.onWorkerMessage = function onWorkerMessage(ev) {\n    var data = ev.data,\n        hls = this.hls;\n    switch (data.event) {\n      case 'init':\n        // revoke the Object URL that was used to create demuxer worker, so as not to leak it\n        global.URL.revokeObjectURL(this.w.objectURL);\n        break;\n      // special case for FRAG_PARSING_DATA: data1 and data2 are transferable objects\n      case events[\"a\" /* default */].FRAG_PARSING_DATA:\n        data.data.data1 = new Uint8Array(data.data1);\n        if (data.data2) {\n          data.data.data2 = new Uint8Array(data.data2);\n        }\n\n      /* falls through */\n      default:\n        data.data = data.data || {};\n        data.data.frag = this.frag;\n        data.data.id = this.id;\n        hls.trigger(data.event, data.data);\n        break;\n    }\n  };\n\n  return Demuxer;\n}();\n\n/* harmony default export */ var demux_demuxer = (demuxer_Demuxer);\n// CONCATENATED MODULE: ./src/controller/level-helper.js\n\n/**\n * @module LevelHelper\n *\n * Providing methods dealing with playlist sliding and drift\n *\n * TODO: Create an actual `Level` class/model that deals with all this logic in an object-oriented-manner.\n *\n * */\n\n\n\nfunction addGroupId(level, type, id) {\n  switch (type) {\n    case 'audio':\n      if (!level.audioGroupIds) {\n        level.audioGroupIds = [];\n      }\n      level.audioGroupIds.push(id);\n      break;\n    case 'text':\n      if (!level.textGroupIds) {\n        level.textGroupIds = [];\n      }\n      level.textGroupIds.push(id);\n      break;\n  }\n}\n\nfunction updatePTS(fragments, fromIdx, toIdx) {\n  var fragFrom = fragments[fromIdx],\n      fragTo = fragments[toIdx],\n      fragToPTS = fragTo.startPTS;\n  // if we know startPTS[toIdx]\n  if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(fragToPTS)) {\n    // update fragment duration.\n    // it helps to fix drifts between playlist reported duration and fragment real duration\n    if (toIdx > fromIdx) {\n      fragFrom.duration = fragToPTS - fragFrom.start;\n      if (fragFrom.duration < 0) {\n        logger[\"b\" /* logger */].warn('negative duration computed for frag ' + fragFrom.sn + ',level ' + fragFrom.level + ', there should be some duration drift between playlist and fragment!');\n      }\n    } else {\n      fragTo.duration = fragFrom.start - fragToPTS;\n      if (fragTo.duration < 0) {\n        logger[\"b\" /* logger */].warn('negative duration computed for frag ' + fragTo.sn + ',level ' + fragTo.level + ', there should be some duration drift between playlist and fragment!');\n      }\n    }\n  } else {\n    // we dont know startPTS[toIdx]\n    if (toIdx > fromIdx) {\n      fragTo.start = fragFrom.start + fragFrom.duration;\n    } else {\n      fragTo.start = Math.max(fragFrom.start - fragTo.duration, 0);\n    }\n  }\n}\n\nfunction updateFragPTSDTS(details, frag, startPTS, endPTS, startDTS, endDTS) {\n  // update frag PTS/DTS\n  var maxStartPTS = startPTS;\n  if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.startPTS)) {\n    // delta PTS between audio and video\n    var deltaPTS = Math.abs(frag.startPTS - startPTS);\n    if (!Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.deltaPTS)) {\n      frag.deltaPTS = deltaPTS;\n    } else {\n      frag.deltaPTS = Math.max(deltaPTS, frag.deltaPTS);\n    }\n\n    maxStartPTS = Math.max(startPTS, frag.startPTS);\n    startPTS = Math.min(startPTS, frag.startPTS);\n    endPTS = Math.max(endPTS, frag.endPTS);\n    startDTS = Math.min(startDTS, frag.startDTS);\n    endDTS = Math.max(endDTS, frag.endDTS);\n  }\n\n  var drift = startPTS - frag.start;\n  frag.start = frag.startPTS = startPTS;\n  frag.maxStartPTS = maxStartPTS;\n  frag.endPTS = endPTS;\n  frag.startDTS = startDTS;\n  frag.endDTS = endDTS;\n  frag.duration = endPTS - startPTS;\n\n  var sn = frag.sn;\n  // exit if sn out of range\n  if (!details || sn < details.startSN || sn > details.endSN) {\n    return 0;\n  }\n\n  var fragIdx = void 0,\n      fragments = void 0,\n      i = void 0;\n  fragIdx = sn - details.startSN;\n  fragments = details.fragments;\n  // update frag reference in fragments array\n  // rationale is that fragments array might not contain this frag object.\n  // this will happen if playlist has been refreshed between frag loading and call to updateFragPTSDTS()\n  // if we don't update frag, we won't be able to propagate PTS info on the playlist\n  // resulting in invalid sliding computation\n  fragments[fragIdx] = frag;\n  // adjust fragment PTS/duration from seqnum-1 to frag 0\n  for (i = fragIdx; i > 0; i--) {\n    updatePTS(fragments, i, i - 1);\n  }\n\n  // adjust fragment PTS/duration from seqnum to last frag\n  for (i = fragIdx; i < fragments.length - 1; i++) {\n    updatePTS(fragments, i, i + 1);\n  }\n\n  details.PTSKnown = true;\n  return drift;\n}\n\nfunction mergeDetails(oldDetails, newDetails) {\n  var start = Math.max(oldDetails.startSN, newDetails.startSN) - newDetails.startSN,\n      end = Math.min(oldDetails.endSN, newDetails.endSN) - newDetails.startSN,\n      delta = newDetails.startSN - oldDetails.startSN,\n      oldfragments = oldDetails.fragments,\n      newfragments = newDetails.fragments,\n      ccOffset = 0,\n      PTSFrag = void 0;\n\n  // potentially retrieve cached initsegment\n  if (newDetails.initSegment && oldDetails.initSegment) {\n    newDetails.initSegment = oldDetails.initSegment;\n  }\n\n  // check if old/new playlists have fragments in common\n  if (end < start) {\n    newDetails.PTSKnown = false;\n    return;\n  }\n  // loop through overlapping SN and update startPTS , cc, and duration if any found\n  for (var i = start; i <= end; i++) {\n    var oldFrag = oldfragments[delta + i],\n        newFrag = newfragments[i];\n    if (newFrag && oldFrag) {\n      ccOffset = oldFrag.cc - newFrag.cc;\n      if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(oldFrag.startPTS)) {\n        newFrag.start = newFrag.startPTS = oldFrag.startPTS;\n        newFrag.endPTS = oldFrag.endPTS;\n        newFrag.duration = oldFrag.duration;\n        newFrag.backtracked = oldFrag.backtracked;\n        newFrag.dropped = oldFrag.dropped;\n        PTSFrag = newFrag;\n      }\n    }\n  }\n\n  if (ccOffset) {\n    logger[\"b\" /* logger */].log('discontinuity sliding from playlist, take drift into account');\n    for (i = 0; i < newfragments.length; i++) {\n      newfragments[i].cc += ccOffset;\n    }\n  }\n\n  // if at least one fragment contains PTS info, recompute PTS information for all fragments\n  if (PTSFrag) {\n    updateFragPTSDTS(newDetails, PTSFrag, PTSFrag.startPTS, PTSFrag.endPTS, PTSFrag.startDTS, PTSFrag.endDTS);\n  } else {\n    // ensure that delta is within oldfragments range\n    // also adjust sliding in case delta is 0 (we could have old=[50-60] and new=old=[50-61])\n    // in that case we also need to adjust start offset of all fragments\n    if (delta >= 0 && delta < oldfragments.length) {\n      // adjust start by sliding offset\n      var sliding = oldfragments[delta].start;\n      for (i = 0; i < newfragments.length; i++) {\n        newfragments[i].start += sliding;\n      }\n    }\n  }\n  // if we are here, it means we have fragments overlapping between\n  // old and new level. reliable PTS info is thus relying on old level\n  newDetails.PTSKnown = oldDetails.PTSKnown;\n}\n// CONCATENATED MODULE: ./src/utils/time-ranges.js\n/**\n *  TimeRanges to string helper\n */\n\nvar TimeRanges = {\n  toString: function toString(r) {\n    var log = '',\n        len = r.length;\n    for (var i = 0; i < len; i++) {\n      log += '[' + r.start(i).toFixed(3) + ',' + r.end(i).toFixed(3) + ']';\n    }\n\n    return log;\n  }\n};\n\n/* harmony default export */ var time_ranges = (TimeRanges);\n// CONCATENATED MODULE: ./src/utils/discontinuities.js\n\n\n\n\nfunction findFirstFragWithCC(fragments, cc) {\n  var firstFrag = null;\n\n  for (var i = 0; i < fragments.length; i += 1) {\n    var currentFrag = fragments[i];\n    if (currentFrag && currentFrag.cc === cc) {\n      firstFrag = currentFrag;\n      break;\n    }\n  }\n\n  return firstFrag;\n}\n\nfunction findFragWithCC(fragments, CC) {\n  return binary_search.search(fragments, function (candidate) {\n    if (candidate.cc < CC) {\n      return 1;\n    } else if (candidate.cc > CC) {\n      return -1;\n    } else {\n      return 0;\n    }\n  });\n}\n\nfunction shouldAlignOnDiscontinuities(lastFrag, lastLevel, details) {\n  var shouldAlign = false;\n  if (lastLevel && lastLevel.details && details) {\n    if (details.endCC > details.startCC || lastFrag && lastFrag.cc < details.startCC) {\n      shouldAlign = true;\n    }\n  }\n  return shouldAlign;\n}\n\n// Find the first frag in the previous level which matches the CC of the first frag of the new level\nfunction findDiscontinuousReferenceFrag(prevDetails, curDetails) {\n  var prevFrags = prevDetails.fragments;\n  var curFrags = curDetails.fragments;\n\n  if (!curFrags.length || !prevFrags.length) {\n    logger[\"b\" /* logger */].log('No fragments to align');\n    return;\n  }\n\n  var prevStartFrag = findFirstFragWithCC(prevFrags, curFrags[0].cc);\n\n  if (!prevStartFrag || prevStartFrag && !prevStartFrag.startPTS) {\n    logger[\"b\" /* logger */].log('No frag in previous level to align on');\n    return;\n  }\n\n  return prevStartFrag;\n}\n\nfunction adjustPts(sliding, details) {\n  details.fragments.forEach(function (frag) {\n    if (frag) {\n      var start = frag.start + sliding;\n      frag.start = frag.startPTS = start;\n      frag.endPTS = start + frag.duration;\n    }\n  });\n  details.PTSKnown = true;\n}\n\n/**\n * Using the parameters of the last level, this function computes PTS' of the new fragments so that they form a\n * contiguous stream with the last fragments.\n * The PTS of a fragment lets Hls.js know where it fits into a stream - by knowing every PTS, we know which fragment to\n * download at any given time. PTS is normally computed when the fragment is demuxed, so taking this step saves us time\n * and an extra download.\n * @param lastFrag\n * @param lastLevel\n * @param details\n */\nfunction alignStream(lastFrag, lastLevel, details) {\n  alignDiscontinuities(lastFrag, details, lastLevel);\n  if (!details.PTSKnown && lastLevel) {\n    // If the PTS wasn't figured out via discontinuity sequence that means there was no CC increase within the level.\n    // Aligning via Program Date Time should therefore be reliable, since PDT should be the same within the same\n    // discontinuity sequence.\n    alignPDT(details, lastLevel.details);\n  }\n}\n\n/**\n * Computes the PTS if a new level's fragments using the PTS of a fragment in the last level which shares the same\n * discontinuity sequence.\n * @param lastLevel - The details of the last loaded level\n * @param details - The details of the new level\n */\nfunction alignDiscontinuities(lastFrag, details, lastLevel) {\n  if (shouldAlignOnDiscontinuities(lastFrag, lastLevel, details)) {\n    var referenceFrag = findDiscontinuousReferenceFrag(lastLevel.details, details);\n    if (referenceFrag) {\n      logger[\"b\" /* logger */].log('Adjusting PTS using last level due to CC increase within current level');\n      adjustPts(referenceFrag.start, details);\n    }\n  }\n}\n\n/**\n * Computes the PTS of a new level's fragments using the difference in Program Date Time from the last level.\n * @param details - The details of the new level\n * @param lastDetails - The details of the last loaded level\n */\nfunction alignPDT(details, lastDetails) {\n  if (lastDetails && lastDetails.fragments.length) {\n    if (!details.hasProgramDateTime || !lastDetails.hasProgramDateTime) {\n      return;\n    }\n    // if last level sliding is 1000 and its first frag PROGRAM-DATE-TIME is 2017-08-20 1:10:00 AM\n    // and if new details first frag PROGRAM DATE-TIME is 2017-08-20 1:10:08 AM\n    // then we can deduce that playlist B sliding is 1000+8 = 1008s\n    var lastPDT = lastDetails.fragments[0].programDateTime;\n    var newPDT = details.fragments[0].programDateTime;\n    // date diff is in ms. frag.start is in seconds\n    var sliding = (newPDT - lastPDT) / 1000 + lastDetails.fragments[0].start;\n    if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(sliding)) {\n      logger[\"b\" /* logger */].log('adjusting PTS using programDateTime delta, sliding:' + sliding.toFixed(3));\n      adjustPts(sliding, details);\n    }\n  }\n}\n// CONCATENATED MODULE: ./src/task-loop.js\nfunction task_loop__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction task_loop__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction task_loop__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n/**\n * Sub-class specialization of EventHandler base class.\n *\n * TaskLoop allows to schedule a task function being called (optionnaly repeatedly) on the main loop,\n * scheduled asynchroneously, avoiding recursive calls in the same tick.\n *\n * The task itself is implemented in `doTick`. It can be requested and called for single execution\n * using the `tick` method.\n *\n * It will be assured that the task execution method (`tick`) only gets called once per main loop \"tick\",\n * no matter how often it gets requested for execution. Execution in further ticks will be scheduled accordingly.\n *\n * If further execution requests have already been scheduled on the next tick, it can be checked with `hasNextTick`,\n * and cancelled with `clearNextTick`.\n *\n * The task can be scheduled as an interval repeatedly with a period as parameter (see `setInterval`, `clearInterval`).\n *\n * Sub-classes need to implement the `doTick` method which will effectively have the task execution routine.\n *\n * Further explanations:\n *\n * The baseclass has a `tick` method that will schedule the doTick call. It may be called synchroneously\n * only for a stack-depth of one. On re-entrant calls, sub-sequent calls are scheduled for next main loop ticks.\n *\n * When the task execution (`tick` method) is called in re-entrant way this is detected and\n * we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further\n * task processing on the next main loop iteration (also known as \"next tick\" in the Node/JS runtime lingo).\n */\n\nvar TaskLoop = function (_EventHandler) {\n  task_loop__inherits(TaskLoop, _EventHandler);\n\n  function TaskLoop(hls) {\n    task_loop__classCallCheck(this, TaskLoop);\n\n    for (var _len = arguments.length, events = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      events[_key - 1] = arguments[_key];\n    }\n\n    var _this = task_loop__possibleConstructorReturn(this, _EventHandler.call.apply(_EventHandler, [this, hls].concat(events)));\n\n    _this._tickInterval = null;\n    _this._tickTimer = null;\n    _this._tickCallCount = 0;\n    _this._boundTick = _this.tick.bind(_this);\n    return _this;\n  }\n\n  /**\n   * @override\n   */\n\n\n  TaskLoop.prototype.onHandlerDestroying = function onHandlerDestroying() {\n    // clear all timers before unregistering from event bus\n    this.clearNextTick();\n    this.clearInterval();\n  };\n\n  /**\n   * @returns {boolean}\n   */\n\n\n  TaskLoop.prototype.hasInterval = function hasInterval() {\n    return !!this._tickInterval;\n  };\n\n  /**\n   * @returns {boolean}\n   */\n\n\n  TaskLoop.prototype.hasNextTick = function hasNextTick() {\n    return !!this._tickTimer;\n  };\n\n  /**\n   * @param {number} millis Interval time (ms)\n   * @returns {boolean} True when interval has been scheduled, false when already scheduled (no effect)\n   */\n\n\n  TaskLoop.prototype.setInterval = function (_setInterval) {\n    function setInterval(_x) {\n      return _setInterval.apply(this, arguments);\n    }\n\n    setInterval.toString = function () {\n      return _setInterval.toString();\n    };\n\n    return setInterval;\n  }(function (millis) {\n    if (!this._tickInterval) {\n      this._tickInterval = setInterval(this._boundTick, millis);\n      return true;\n    }\n    return false;\n  });\n\n  /**\n   * @returns {boolean} True when interval was cleared, false when none was set (no effect)\n   */\n\n\n  TaskLoop.prototype.clearInterval = function (_clearInterval) {\n    function clearInterval() {\n      return _clearInterval.apply(this, arguments);\n    }\n\n    clearInterval.toString = function () {\n      return _clearInterval.toString();\n    };\n\n    return clearInterval;\n  }(function () {\n    if (this._tickInterval) {\n      clearInterval(this._tickInterval);\n      this._tickInterval = null;\n      return true;\n    }\n    return false;\n  });\n\n  /**\n   * @returns {boolean} True when timeout was cleared, false when none was set (no effect)\n   */\n\n\n  TaskLoop.prototype.clearNextTick = function clearNextTick() {\n    if (this._tickTimer) {\n      clearTimeout(this._tickTimer);\n      this._tickTimer = null;\n      return true;\n    }\n    return false;\n  };\n\n  /**\n   * Will call the subclass doTick implementation in this main loop tick\n   * or in the next one (via setTimeout(,0)) in case it has already been called\n   * in this tick (in case this is a re-entrant call).\n   */\n\n\n  TaskLoop.prototype.tick = function tick() {\n    this._tickCallCount++;\n    if (this._tickCallCount === 1) {\n      this.doTick();\n      // re-entrant call to tick from previous doTick call stack\n      // -> schedule a call on the next main loop iteration to process this task processing request\n      if (this._tickCallCount > 1) {\n        // make sure only one timer exists at any time at max\n        this.clearNextTick();\n        this._tickTimer = setTimeout(this._boundTick, 0);\n      }\n      this._tickCallCount = 0;\n    }\n  };\n\n  /**\n   * For subclass to implement task logic\n   * @abstract\n   */\n\n\n  TaskLoop.prototype.doTick = function doTick() {};\n\n  return TaskLoop;\n}(event_handler);\n\n/* harmony default export */ var task_loop = (TaskLoop);\n// CONCATENATED MODULE: ./src/controller/fragment-finders.js\n\n\n\n/**\n * Returns first fragment whose endPdt value exceeds the given PDT.\n * @param {Array<Fragment>} fragments - The array of candidate fragments\n * @param {number|null} [PDTValue = null] - The PDT value which must be exceeded\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n * @returns {*|null} fragment - The best matching fragment\n */\nfunction findFragmentByPDT(fragments, PDTValue, maxFragLookUpTolerance) {\n  if (!Array.isArray(fragments) || !fragments.length || !Object(number_isFinite[\"a\" /* isFiniteNumber */])(PDTValue)) {\n    return null;\n  }\n\n  // if less than start\n  if (PDTValue < fragments[0].programDateTime) {\n    return null;\n  }\n\n  if (PDTValue >= fragments[fragments.length - 1].endProgramDateTime) {\n    return null;\n  }\n\n  maxFragLookUpTolerance = maxFragLookUpTolerance || 0;\n  for (var seg = 0; seg < fragments.length; ++seg) {\n    var frag = fragments[seg];\n    if (pdtWithinToleranceTest(PDTValue, maxFragLookUpTolerance, frag)) {\n      return frag;\n    }\n  }\n\n  return null;\n}\n\n/**\n * Finds a fragment based on the SN of the previous fragment; or based on the needs of the current buffer.\n * This method compensates for small buffer gaps by applying a tolerance to the start of any candidate fragment, thus\n * breaking any traps which would cause the same fragment to be continuously selected within a small range.\n * @param {*} fragPrevious - The last frag successfully appended\n * @param {Array<Fragment>} fragments - The array of candidate fragments\n * @param {number} [bufferEnd = 0] - The end of the contiguous buffered range the playhead is currently within\n * @param {number} maxFragLookUpTolerance - The amount of time that a fragment's start/end can be within in order to be considered contiguous\n * @returns {*} foundFrag - The best matching fragment\n */\nfunction findFragmentByPTS(fragPrevious, fragments) {\n  var bufferEnd = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n  var maxFragLookUpTolerance = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n\n  var fragNext = fragPrevious ? fragments[fragPrevious.sn - fragments[0].sn + 1] : null;\n  // Prefer the next fragment if it's within tolerance\n  if (fragNext && !fragment_finders_fragmentWithinToleranceTest(bufferEnd, maxFragLookUpTolerance, fragNext)) {\n    return fragNext;\n  }\n  return binary_search.search(fragments, fragment_finders_fragmentWithinToleranceTest.bind(null, bufferEnd, maxFragLookUpTolerance));\n}\n\n/**\n * The test function used by the findFragmentBySn's BinarySearch to look for the best match to the current buffer conditions.\n * @param {*} candidate - The fragment to test\n * @param {number} [bufferEnd = 0] - The end of the current buffered range the playhead is currently within\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns {number} - 0 if it matches, 1 if too low, -1 if too high\n */\nfunction fragment_finders_fragmentWithinToleranceTest() {\n  var bufferEnd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var maxFragLookUpTolerance = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var candidate = arguments[2];\n\n  // offset should be within fragment boundary - config.maxFragLookUpTolerance\n  // this is to cope with situations like\n  // bufferEnd = 9.991\n  // frag[脴] : [0,10]\n  // frag[1] : [10,20]\n  // bufferEnd is within frag[0] range ... although what we are expecting is to return frag[1] here\n  //              frag start               frag start+duration\n  //                  |-----------------------------|\n  //              <--->                         <--->\n  //  ...--------><-----------------------------><---------....\n  // previous frag         matching fragment         next frag\n  //  return -1             return 0                 return 1\n  // logger.log(`level/sn/start/end/bufEnd:${level}/${candidate.sn}/${candidate.start}/${(candidate.start+candidate.duration)}/${bufferEnd}`);\n  // Set the lookup tolerance to be small enough to detect the current segment - ensures we don't skip over very small segments\n  var candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0));\n  if (candidate.start + candidate.duration - candidateLookupTolerance <= bufferEnd) {\n    return 1;\n  } else if (candidate.start - candidateLookupTolerance > bufferEnd && candidate.start) {\n    // if maxFragLookUpTolerance will have negative value then don't return -1 for first element\n    return -1;\n  }\n\n  return 0;\n}\n\n/**\n * The test function used by the findFragmentByPdt's BinarySearch to look for the best match to the current buffer conditions.\n * This function tests the candidate's program date time values, as represented in Unix time\n * @param {*} candidate - The fragment to test\n * @param {number} [pdtBufferEnd = 0] - The Unix time representing the end of the current buffered range\n * @param {number} [maxFragLookUpTolerance = 0] - The amount of time that a fragment's start can be within in order to be considered contiguous\n * @returns {boolean} True if contiguous, false otherwise\n */\nfunction pdtWithinToleranceTest(pdtBufferEnd, maxFragLookUpTolerance, candidate) {\n  var candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration + (candidate.deltaPTS ? candidate.deltaPTS : 0)) * 1000;\n  return candidate.endProgramDateTime - candidateLookupTolerance > pdtBufferEnd;\n}\n// CONCATENATED MODULE: ./src/controller/gap-controller.js\nfunction gap_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\nvar stallDebounceInterval = 1000;\nvar jumpThreshold = 0.5; // tolerance needed as some browsers stalls playback before reaching buffered range end\n\nvar gap_controller_GapController = function () {\n  function GapController(config, media, fragmentTracker, hls) {\n    gap_controller__classCallCheck(this, GapController);\n\n    this.config = config;\n    this.media = media;\n    this.fragmentTracker = fragmentTracker;\n    this.hls = hls;\n    this.stallReported = false;\n  }\n\n  /**\n   * Checks if the playhead is stuck within a gap, and if so, attempts to free it.\n   * A gap is an unbuffered range between two buffered ranges (or the start and the first buffered range).\n   * @param lastCurrentTime\n   * @param buffered\n   */\n\n\n  GapController.prototype.poll = function poll(lastCurrentTime, buffered) {\n    var config = this.config,\n        media = this.media;\n\n    var currentTime = media.currentTime;\n    var tnow = window.performance.now();\n\n    if (currentTime !== lastCurrentTime) {\n      // The playhead is now moving, but was previously stalled\n      if (this.stallReported) {\n        logger[\"b\" /* logger */].warn('playback not stuck anymore @' + currentTime + ', after ' + Math.round(tnow - this.stalled) + 'ms');\n        this.stallReported = false;\n      }\n      this.stalled = null;\n      this.nudgeRetry = 0;\n      return;\n    }\n\n    if (media.ended || !media.buffered.length || media.readyState > 2) {\n      return;\n    }\n\n    if (media.seeking && BufferHelper.isBuffered(media, currentTime)) {\n      return;\n    }\n\n    // The playhead isn't moving but it should be\n    // Allow some slack time to for small stalls to resolve themselves\n    var stalledDuration = tnow - this.stalled;\n    var bufferInfo = BufferHelper.bufferInfo(media, currentTime, config.maxBufferHole);\n    if (!this.stalled) {\n      this.stalled = tnow;\n      return;\n    } else if (stalledDuration >= stallDebounceInterval) {\n      // Report stalling after trying to fix\n      this._reportStall(bufferInfo.len);\n    }\n\n    this._tryFixBufferStall(bufferInfo, stalledDuration);\n  };\n\n  /**\n   * Detects and attempts to fix known buffer stalling issues.\n   * @param bufferInfo - The properties of the current buffer.\n   * @param stalledDuration - The amount of time Hls.js has been stalling for.\n   * @private\n   */\n\n\n  GapController.prototype._tryFixBufferStall = function _tryFixBufferStall(bufferInfo, stalledDuration) {\n    var config = this.config,\n        fragmentTracker = this.fragmentTracker,\n        media = this.media;\n\n    var currentTime = media.currentTime;\n\n    var partial = fragmentTracker.getPartialFragment(currentTime);\n    if (partial) {\n      // Try to skip over the buffer hole caused by a partial fragment\n      // This method isn't limited by the size of the gap between buffered ranges\n      this._trySkipBufferHole(partial);\n    }\n\n    if (bufferInfo.len > jumpThreshold && stalledDuration > config.highBufferWatchdogPeriod * 1000) {\n      // Try to nudge currentTime over a buffer hole if we've been stalling for the configured amount of seconds\n      // We only try to jump the hole if it's under the configured size\n      // Reset stalled so to rearm watchdog timer\n      this.stalled = null;\n      this._tryNudgeBuffer();\n    }\n  };\n\n  /**\n   * Triggers a BUFFER_STALLED_ERROR event, but only once per stall period.\n   * @param bufferLen - The playhead distance from the end of the current buffer segment.\n   * @private\n   */\n\n\n  GapController.prototype._reportStall = function _reportStall(bufferLen) {\n    var hls = this.hls,\n        media = this.media,\n        stallReported = this.stallReported;\n\n    if (!stallReported) {\n      // Report stalled error once\n      this.stallReported = true;\n      logger[\"b\" /* logger */].warn('Playback stalling at @' + media.currentTime + ' due to low buffer');\n      hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].BUFFER_STALLED_ERROR,\n        fatal: false,\n        buffer: bufferLen\n      });\n    }\n  };\n\n  /**\n   * Attempts to fix buffer stalls by jumping over known gaps caused by partial fragments\n   * @param partial - The partial fragment found at the current time (where playback is stalling).\n   * @private\n   */\n\n\n  GapController.prototype._trySkipBufferHole = function _trySkipBufferHole(partial) {\n    var hls = this.hls,\n        media = this.media;\n\n    var currentTime = media.currentTime;\n    var lastEndTime = 0;\n    // Check if currentTime is between unbuffered regions of partial fragments\n    for (var i = 0; i < media.buffered.length; i++) {\n      var startTime = media.buffered.start(i);\n      if (currentTime >= lastEndTime && currentTime < startTime) {\n        media.currentTime = Math.max(startTime, media.currentTime + 0.1);\n        logger[\"b\" /* logger */].warn('skipping hole, adjusting currentTime from ' + currentTime + ' to ' + media.currentTime);\n        this.stalled = null;\n        hls.trigger(events[\"a\" /* default */].ERROR, {\n          type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR,\n          details: errors[\"a\" /* ErrorDetails */].BUFFER_SEEK_OVER_HOLE,\n          fatal: false,\n          reason: 'fragment loaded with buffer holes, seeking from ' + currentTime + ' to ' + media.currentTime,\n          frag: partial\n        });\n        return;\n      }\n      lastEndTime = media.buffered.end(i);\n    }\n  };\n\n  /**\n   * Attempts to fix buffer stalls by advancing the mediaElement's current time by a small amount.\n   * @private\n   */\n\n\n  GapController.prototype._tryNudgeBuffer = function _tryNudgeBuffer() {\n    var config = this.config,\n        hls = this.hls,\n        media = this.media;\n\n    var currentTime = media.currentTime;\n    var nudgeRetry = (this.nudgeRetry || 0) + 1;\n    this.nudgeRetry = nudgeRetry;\n\n    if (nudgeRetry < config.nudgeMaxRetry) {\n      var targetTime = currentTime + nudgeRetry * config.nudgeOffset;\n      logger[\"b\" /* logger */].log('adjust currentTime from ' + currentTime + ' to ' + targetTime);\n      // playback stalled in buffered area ... let's nudge currentTime to try to overcome this\n      media.currentTime = targetTime;\n      hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].BUFFER_NUDGE_ON_STALL,\n        fatal: false\n      });\n    } else {\n      logger[\"b\" /* logger */].error('still stuck in high buffer @' + currentTime + ' after ' + config.nudgeMaxRetry + ', raise fatal error');\n      hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].BUFFER_STALLED_ERROR,\n        fatal: true\n      });\n    }\n  };\n\n  return GapController;\n}();\n\n/* harmony default export */ var gap_controller = (gap_controller_GapController);\n// CONCATENATED MODULE: ./src/controller/stream-controller.js\n\n\nvar stream_controller__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction stream_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction stream_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction stream_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * Stream Controller\n*/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar State = {\n  STOPPED: 'STOPPED',\n  IDLE: 'IDLE',\n  KEY_LOADING: 'KEY_LOADING',\n  FRAG_LOADING: 'FRAG_LOADING',\n  FRAG_LOADING_WAITING_RETRY: 'FRAG_LOADING_WAITING_RETRY',\n  WAITING_LEVEL: 'WAITING_LEVEL',\n  PARSING: 'PARSING',\n  PARSED: 'PARSED',\n  BUFFER_FLUSHING: 'BUFFER_FLUSHING',\n  ENDED: 'ENDED',\n  ERROR: 'ERROR'\n};\n\nvar stream_controller_StreamController = function (_TaskLoop) {\n  stream_controller__inherits(StreamController, _TaskLoop);\n\n  function StreamController(hls, fragmentTracker) {\n    stream_controller__classCallCheck(this, StreamController);\n\n    var _this = stream_controller__possibleConstructorReturn(this, _TaskLoop.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHED, events[\"a\" /* default */].MEDIA_DETACHING, events[\"a\" /* default */].MANIFEST_LOADING, events[\"a\" /* default */].MANIFEST_PARSED, events[\"a\" /* default */].LEVEL_LOADED, events[\"a\" /* default */].KEY_LOADED, events[\"a\" /* default */].FRAG_LOADED, events[\"a\" /* default */].FRAG_LOAD_EMERGENCY_ABORTED, events[\"a\" /* default */].FRAG_PARSING_INIT_SEGMENT, events[\"a\" /* default */].FRAG_PARSING_DATA, events[\"a\" /* default */].FRAG_PARSED, events[\"a\" /* default */].ERROR, events[\"a\" /* default */].AUDIO_TRACK_SWITCHING, events[\"a\" /* default */].AUDIO_TRACK_SWITCHED, events[\"a\" /* default */].BUFFER_CREATED, events[\"a\" /* default */].BUFFER_APPENDED, events[\"a\" /* default */].BUFFER_FLUSHED));\n\n    _this.fragmentTracker = fragmentTracker;\n    _this.config = hls.config;\n    _this.audioCodecSwap = false;\n    _this._state = State.STOPPED;\n    _this.stallReported = false;\n    _this.gapController = null;\n    return _this;\n  }\n\n  StreamController.prototype.onHandlerDestroying = function onHandlerDestroying() {\n    this.stopLoad();\n    _TaskLoop.prototype.onHandlerDestroying.call(this);\n  };\n\n  StreamController.prototype.onHandlerDestroyed = function onHandlerDestroyed() {\n    this.state = State.STOPPED;\n    this.fragmentTracker = null;\n    _TaskLoop.prototype.onHandlerDestroyed.call(this);\n  };\n\n  StreamController.prototype.startLoad = function startLoad(startPosition) {\n    if (this.levels) {\n      var lastCurrentTime = this.lastCurrentTime,\n          hls = this.hls;\n      this.stopLoad();\n      this.setInterval(100);\n      this.level = -1;\n      this.fragLoadError = 0;\n      if (!this.startFragRequested) {\n        // determine load level\n        var startLevel = hls.startLevel;\n        if (startLevel === -1) {\n          // -1 : guess start Level by doing a bitrate test by loading first fragment of lowest quality level\n          startLevel = 0;\n          this.bitrateTest = true;\n        }\n        // set new level to playlist loader : this will trigger start level load\n        // hls.nextLoadLevel remains until it is set to a new value or until a new frag is successfully loaded\n        this.level = hls.nextLoadLevel = startLevel;\n        this.loadedmetadata = false;\n      }\n      // if startPosition undefined but lastCurrentTime set, set startPosition to last currentTime\n      if (lastCurrentTime > 0 && startPosition === -1) {\n        logger[\"b\" /* logger */].log('override startPosition with lastCurrentTime @' + lastCurrentTime.toFixed(3));\n        startPosition = lastCurrentTime;\n      }\n      this.state = State.IDLE;\n      this.nextLoadPosition = this.startPosition = this.lastCurrentTime = startPosition;\n      this.tick();\n    } else {\n      this.forceStartLoad = true;\n      this.state = State.STOPPED;\n    }\n  };\n\n  StreamController.prototype.stopLoad = function stopLoad() {\n    var frag = this.fragCurrent;\n    if (frag) {\n      if (frag.loader) {\n        frag.loader.abort();\n      }\n\n      this.fragmentTracker.removeFragment(frag);\n      this.fragCurrent = null;\n    }\n    this.fragPrevious = null;\n    if (this.demuxer) {\n      this.demuxer.destroy();\n      this.demuxer = null;\n    }\n    this.clearInterval();\n    this.state = State.STOPPED;\n    this.forceStartLoad = false;\n  };\n\n  StreamController.prototype.doTick = function doTick() {\n    switch (this.state) {\n      case State.BUFFER_FLUSHING:\n        // in buffer flushing state, reset fragLoadError counter\n        this.fragLoadError = 0;\n        break;\n      case State.IDLE:\n        this._doTickIdle();\n        break;\n      case State.WAITING_LEVEL:\n        var level = this.levels[this.level];\n        // check if playlist is already loaded\n        if (level && level.details) {\n          this.state = State.IDLE;\n        }\n\n        break;\n      case State.FRAG_LOADING_WAITING_RETRY:\n        var now = window.performance.now();\n        var retryDate = this.retryDate;\n        // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n        if (!retryDate || now >= retryDate || this.media && this.media.seeking) {\n          logger[\"b\" /* logger */].log('mediaController: retryDate reached, switch back to IDLE state');\n          this.state = State.IDLE;\n        }\n        break;\n      case State.ERROR:\n      case State.STOPPED:\n      case State.FRAG_LOADING:\n      case State.PARSING:\n      case State.PARSED:\n      case State.ENDED:\n        break;\n      default:\n        break;\n    }\n    // check buffer\n    this._checkBuffer();\n    // check/update current fragment\n    this._checkFragmentChanged();\n  };\n\n  // Ironically the \"idle\" state is the on we do the most logic in it seems ....\n  // NOTE: Maybe we could rather schedule a check for buffer length after half of the currently\n  //       played segment, or on pause/play/seek instead of naively checking every 100ms?\n\n\n  StreamController.prototype._doTickIdle = function _doTickIdle() {\n    var hls = this.hls,\n        config = hls.config,\n        media = this.media;\n\n    // if start level not parsed yet OR\n    // if video not attached AND start fragment already requested OR start frag prefetch disable\n    // exit loop, as we either need more info (level not parsed) or we need media to be attached to load new fragment\n    if (this.levelLastLoaded === undefined || !media && (this.startFragRequested || !config.startFragPrefetch)) {\n      return;\n    }\n\n    // if we have not yet loaded any fragment, start loading from start position\n    var pos = void 0;\n    if (this.loadedmetadata) {\n      pos = media.currentTime;\n    } else {\n      pos = this.nextLoadPosition;\n    }\n\n    // determine next load level\n    var level = hls.nextLoadLevel,\n        levelInfo = this.levels[level];\n\n    if (!levelInfo) {\n      return;\n    }\n\n    var levelBitrate = levelInfo.bitrate,\n        maxBufLen = void 0;\n\n    // compute max Buffer Length that we could get from this load level, based on level bitrate. don't buffer more than 60 MB and more than 30s\n    if (levelBitrate) {\n      maxBufLen = Math.max(8 * config.maxBufferSize / levelBitrate, config.maxBufferLength);\n    } else {\n      maxBufLen = config.maxBufferLength;\n    }\n\n    maxBufLen = Math.min(maxBufLen, config.maxMaxBufferLength);\n\n    // determine next candidate fragment to be loaded, based on current position and end of buffer position\n    // ensure up to `config.maxMaxBufferLength` of buffer upfront\n\n    var bufferInfo = BufferHelper.bufferInfo(this.mediaBuffer ? this.mediaBuffer : media, pos, config.maxBufferHole),\n        bufferLen = bufferInfo.len;\n    // Stay idle if we are still with buffer margins\n    if (bufferLen >= maxBufLen) {\n      return;\n    }\n\n    // if buffer length is less than maxBufLen try to load a new fragment ...\n    logger[\"b\" /* logger */].trace('buffer length of ' + bufferLen.toFixed(3) + ' is below max of ' + maxBufLen.toFixed(3) + '. checking for more payload ...');\n\n    // set next load level : this will trigger a playlist load if needed\n    this.level = hls.nextLoadLevel = level;\n\n    var levelDetails = levelInfo.details;\n    // if level info not retrieved yet, switch state and wait for level retrieval\n    // if live playlist, ensure that new playlist has been refreshed to avoid loading/try to load\n    // a useless and outdated fragment (that might even introduce load error if it is already out of the live playlist)\n    if (!levelDetails || levelDetails.live && this.levelLastLoaded !== level) {\n      this.state = State.WAITING_LEVEL;\n      return;\n    }\n\n    // we just got done loading the final fragment and there is no other buffered range after ...\n    // rationale is that in case there are any buffered ranges after, it means that there are unbuffered portion in between\n    // so we should not switch to ENDED in that case, to be able to buffer them\n    // dont switch to ENDED if we need to backtrack last fragment\n    var fragPrevious = this.fragPrevious;\n    if (!levelDetails.live && fragPrevious && !fragPrevious.backtracked && fragPrevious.sn === levelDetails.endSN && !bufferInfo.nextStart) {\n      // fragPrevious is last fragment. retrieve level duration using last frag start offset + duration\n      // real duration might be lower than initial duration if there are drifts between real frag duration and playlist signaling\n      var duration = Math.min(media.duration, fragPrevious.start + fragPrevious.duration);\n      // if everything (almost) til the end is buffered, let's signal eos\n      // we don't compare exactly media.duration === bufferInfo.end as there could be some subtle media duration difference (audio/video offsets...)\n      // tolerate up to one frag duration to cope with these cases.\n      // also cope with almost zero last frag duration (max last frag duration with 200ms) refer to https://github.com/video-dev/hls.js/pull/657\n      if (duration - Math.max(bufferInfo.end, fragPrevious.start) <= Math.max(0.2, fragPrevious.duration)) {\n        // Finalize the media stream\n        var data = {};\n        if (this.altAudio) {\n          data.type = 'video';\n        }\n\n        this.hls.trigger(events[\"a\" /* default */].BUFFER_EOS, data);\n        this.state = State.ENDED;\n        return;\n      }\n    }\n\n    // if we have the levelDetails for the selected variant, lets continue enrichen our stream (load keys/fragments or trigger EOS, etc..)\n    this._fetchPayloadOrEos(pos, bufferInfo, levelDetails);\n  };\n\n  StreamController.prototype._fetchPayloadOrEos = function _fetchPayloadOrEos(pos, bufferInfo, levelDetails) {\n    var fragPrevious = this.fragPrevious,\n        level = this.level,\n        fragments = levelDetails.fragments,\n        fragLen = fragments.length;\n\n    // empty playlist\n    if (fragLen === 0) {\n      return;\n    }\n\n    // find fragment index, contiguous with end of buffer position\n    var start = fragments[0].start,\n        end = fragments[fragLen - 1].start + fragments[fragLen - 1].duration,\n        bufferEnd = bufferInfo.end,\n        frag = void 0;\n\n    if (levelDetails.initSegment && !levelDetails.initSegment.data) {\n      frag = levelDetails.initSegment;\n    } else {\n      // in case of live playlist we need to ensure that requested position is not located before playlist start\n      if (levelDetails.live) {\n        var initialLiveManifestSize = this.config.initialLiveManifestSize;\n        if (fragLen < initialLiveManifestSize) {\n          logger[\"b\" /* logger */].warn('Can not start playback of a level, reason: not enough fragments ' + fragLen + ' < ' + initialLiveManifestSize);\n          return;\n        }\n\n        frag = this._ensureFragmentAtLivePoint(levelDetails, bufferEnd, start, end, fragPrevious, fragments, fragLen);\n        // if it explicitely returns null don't load any fragment and exit function now\n        if (frag === null) {\n          return;\n        }\n      } else {\n        // VoD playlist: if bufferEnd before start of playlist, load first fragment\n        if (bufferEnd < start) {\n          frag = fragments[0];\n        }\n      }\n    }\n    if (!frag) {\n      frag = this._findFragment(start, fragPrevious, fragLen, fragments, bufferEnd, end, levelDetails);\n    }\n\n    if (frag) {\n      if (frag.encrypted) {\n        logger[\"b\" /* logger */].log('Loading key for ' + frag.sn + ' of [' + levelDetails.startSN + ' ,' + levelDetails.endSN + '],level ' + level);\n        this._loadKey(frag);\n      } else {\n        logger[\"b\" /* logger */].log('Loading ' + frag.sn + ' of [' + levelDetails.startSN + ' ,' + levelDetails.endSN + '],level ' + level + ', currentTime:' + pos.toFixed(3) + ',bufferEnd:' + bufferEnd.toFixed(3));\n        this._loadFragment(frag);\n      }\n    }\n  };\n\n  StreamController.prototype._ensureFragmentAtLivePoint = function _ensureFragmentAtLivePoint(levelDetails, bufferEnd, start, end, fragPrevious, fragments, fragLen) {\n    var config = this.hls.config,\n        media = this.media;\n\n    var frag = void 0;\n\n    // check if requested position is within seekable boundaries :\n    // logger.log(`start/pos/bufEnd/seeking:${start.toFixed(3)}/${pos.toFixed(3)}/${bufferEnd.toFixed(3)}/${this.media.seeking}`);\n    var maxLatency = config.liveMaxLatencyDuration !== undefined ? config.liveMaxLatencyDuration : config.liveMaxLatencyDurationCount * levelDetails.targetduration;\n\n    if (bufferEnd < Math.max(start - config.maxFragLookUpTolerance, end - maxLatency)) {\n      var liveSyncPosition = this.liveSyncPosition = this.computeLivePosition(start, levelDetails);\n      logger[\"b\" /* logger */].log('buffer end: ' + bufferEnd.toFixed(3) + ' is located too far from the end of live sliding playlist, reset currentTime to : ' + liveSyncPosition.toFixed(3));\n      bufferEnd = liveSyncPosition;\n      if (media && media.readyState && media.duration > liveSyncPosition) {\n        media.currentTime = liveSyncPosition;\n      }\n\n      this.nextLoadPosition = liveSyncPosition;\n    }\n\n    // if end of buffer greater than live edge, don't load any fragment\n    // this could happen if live playlist intermittently slides in the past.\n    // level 1 loaded [182580161,182580167]\n    // level 1 loaded [182580162,182580169]\n    // Loading 182580168 of [182580162 ,182580169],level 1 ..\n    // Loading 182580169 of [182580162 ,182580169],level 1 ..\n    // level 1 loaded [182580162,182580168] <============= here we should have bufferEnd > end. in that case break to avoid reloading 182580168\n    // level 1 loaded [182580164,182580171]\n    //\n    // don't return null in case media not loaded yet (readystate === 0)\n    if (levelDetails.PTSKnown && bufferEnd > end && media && media.readyState) {\n      return null;\n    }\n\n    if (this.startFragRequested && !levelDetails.PTSKnown) {\n      /* we are switching level on live playlist, but we don't have any PTS info for that quality level ...\n         try to load frag matching with next SN.\n         even if SN are not synchronized between playlists, loading this frag will help us\n         compute playlist sliding and find the right one after in case it was not the right consecutive one */\n      if (fragPrevious) {\n        if (levelDetails.hasProgramDateTime) {\n          // Relies on PDT in order to switch bitrates (Support EXT-X-DISCONTINUITY without EXT-X-DISCONTINUITY-SEQUENCE)\n          logger[\"b\" /* logger */].log('live playlist, switching playlist, load frag with same PDT: ' + fragPrevious.programDateTime);\n          frag = findFragmentByPDT(fragments, fragPrevious.endProgramDateTime, config.maxFragLookUpTolerance);\n        } else {\n          // Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)\n          var targetSN = fragPrevious.sn + 1;\n          if (targetSN >= levelDetails.startSN && targetSN <= levelDetails.endSN) {\n            var fragNext = fragments[targetSN - levelDetails.startSN];\n            if (fragPrevious.cc === fragNext.cc) {\n              frag = fragNext;\n              logger[\"b\" /* logger */].log('live playlist, switching playlist, load frag with next SN: ' + frag.sn);\n            }\n          }\n          // next frag SN not available (or not with same continuity counter)\n          // look for a frag sharing the same CC\n          if (!frag) {\n            frag = binary_search.search(fragments, function (frag) {\n              return fragPrevious.cc - frag.cc;\n            });\n            if (frag) {\n              logger[\"b\" /* logger */].log('live playlist, switching playlist, load frag with same CC: ' + frag.sn);\n            }\n          }\n        }\n      }\n      if (!frag) {\n        /* we have no idea about which fragment should be loaded.\n           so let's load mid fragment. it will help computing playlist sliding and find the right one\n        */\n        frag = fragments[Math.min(fragLen - 1, Math.round(fragLen / 2))];\n        logger[\"b\" /* logger */].log('live playlist, switching playlist, unknown, load middle frag : ' + frag.sn);\n      }\n    }\n\n    return frag;\n  };\n\n  StreamController.prototype._findFragment = function _findFragment(start, fragPrevious, fragLen, fragments, bufferEnd, end, levelDetails) {\n    var config = this.hls.config;\n    var frag = void 0;\n\n    if (bufferEnd < end) {\n      var lookupTolerance = bufferEnd > end - config.maxFragLookUpTolerance ? 0 : config.maxFragLookUpTolerance;\n      // Remove the tolerance if it would put the bufferEnd past the actual end of stream\n      // Uses buffer and sequence number to calculate switch segment (required if using EXT-X-DISCONTINUITY-SEQUENCE)\n      frag = findFragmentByPTS(fragPrevious, fragments, bufferEnd, lookupTolerance);\n    } else {\n      // reach end of playlist\n      frag = fragments[fragLen - 1];\n    }\n    if (frag) {\n      var curSNIdx = frag.sn - levelDetails.startSN;\n      var sameLevel = fragPrevious && frag.level === fragPrevious.level;\n      var prevFrag = fragments[curSNIdx - 1];\n      var nextFrag = fragments[curSNIdx + 1];\n      // logger.log('find SN matching with pos:' +  bufferEnd + ':' + frag.sn);\n      if (fragPrevious && frag.sn === fragPrevious.sn) {\n        if (sameLevel && !frag.backtracked) {\n          if (frag.sn < levelDetails.endSN) {\n            var deltaPTS = fragPrevious.deltaPTS;\n            // if there is a significant delta between audio and video, larger than max allowed hole,\n            // and if previous remuxed fragment did not start with a keyframe. (fragPrevious.dropped)\n            // let's try to load previous fragment again to get last keyframe\n            // then we will reload again current fragment (that way we should be able to fill the buffer hole ...)\n            if (deltaPTS && deltaPTS > config.maxBufferHole && fragPrevious.dropped && curSNIdx) {\n              frag = prevFrag;\n              logger[\"b\" /* logger */].warn('SN just loaded, with large PTS gap between audio and video, maybe frag is not starting with a keyframe ? load previous one to try to overcome this');\n            } else {\n              frag = nextFrag;\n              logger[\"b\" /* logger */].log('SN just loaded, load next one: ' + frag.sn, frag);\n            }\n          } else {\n            frag = null;\n          }\n        } else if (frag.backtracked) {\n          // Only backtrack a max of 1 consecutive fragment to prevent sliding back too far when little or no frags start with keyframes\n          if (nextFrag && nextFrag.backtracked) {\n            logger[\"b\" /* logger */].warn('Already backtracked from fragment ' + nextFrag.sn + ', will not backtrack to fragment ' + frag.sn + '. Loading fragment ' + nextFrag.sn);\n            frag = nextFrag;\n          } else {\n            // If a fragment has dropped frames and it's in a same level/sequence, load the previous fragment to try and find the keyframe\n            // Reset the dropped count now since it won't be reset until we parse the fragment again, which prevents infinite backtracking on the same segment\n            logger[\"b\" /* logger */].warn('Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe');\n            frag.dropped = 0;\n            if (prevFrag) {\n              frag = prevFrag;\n              frag.backtracked = true;\n            } else if (curSNIdx) {\n              // can't backtrack on very first fragment\n              frag = null;\n            }\n          }\n        }\n      }\n    }\n    return frag;\n  };\n\n  StreamController.prototype._loadKey = function _loadKey(frag) {\n    this.state = State.KEY_LOADING;\n    this.hls.trigger(events[\"a\" /* default */].KEY_LOADING, { frag: frag });\n  };\n\n  StreamController.prototype._loadFragment = function _loadFragment(frag) {\n    // Check if fragment is not loaded\n    var fragState = this.fragmentTracker.getState(frag);\n\n    this.fragCurrent = frag;\n    this.startFragRequested = true;\n    // Don't update nextLoadPosition for fragments which are not buffered\n    if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.sn) && !frag.bitrateTest) {\n      this.nextLoadPosition = frag.start + frag.duration;\n    }\n\n    // Allow backtracked fragments to load\n    if (frag.backtracked || fragState === FragmentState.NOT_LOADED || fragState === FragmentState.PARTIAL) {\n      frag.autoLevel = this.hls.autoLevelEnabled;\n      frag.bitrateTest = this.bitrateTest;\n\n      this.hls.trigger(events[\"a\" /* default */].FRAG_LOADING, { frag: frag });\n      // lazy demuxer init, as this could take some time ... do it during frag loading\n      if (!this.demuxer) {\n        this.demuxer = new demux_demuxer(this.hls, 'main');\n      }\n\n      this.state = State.FRAG_LOADING;\n    } else if (fragState === FragmentState.APPENDING) {\n      // Lower the buffer size and try again\n      if (this._reduceMaxBufferLength(frag.duration)) {\n        this.fragmentTracker.removeFragment(frag);\n      }\n    }\n  };\n\n  StreamController.prototype.getBufferedFrag = function getBufferedFrag(position) {\n    return this.fragmentTracker.getBufferedFrag(position, playlist_loader.LevelType.MAIN);\n  };\n\n  StreamController.prototype.followingBufferedFrag = function followingBufferedFrag(frag) {\n    if (frag) {\n      // try to get range of next fragment (500ms after this range)\n      return this.getBufferedFrag(frag.endPTS + 0.5);\n    }\n    return null;\n  };\n\n  StreamController.prototype._checkFragmentChanged = function _checkFragmentChanged() {\n    var fragPlayingCurrent = void 0,\n        currentTime = void 0,\n        video = this.media;\n    if (video && video.readyState && video.seeking === false) {\n      currentTime = video.currentTime;\n      /* if video element is in seeked state, currentTime can only increase.\n        (assuming that playback rate is positive ...)\n        As sometimes currentTime jumps back to zero after a\n        media decode error, check this, to avoid seeking back to\n        wrong position after a media decode error\n      */\n      if (currentTime > this.lastCurrentTime) {\n        this.lastCurrentTime = currentTime;\n      }\n\n      if (BufferHelper.isBuffered(video, currentTime)) {\n        fragPlayingCurrent = this.getBufferedFrag(currentTime);\n      } else if (BufferHelper.isBuffered(video, currentTime + 0.1)) {\n        /* ensure that FRAG_CHANGED event is triggered at startup,\n          when first video frame is displayed and playback is paused.\n          add a tolerance of 100ms, in case current position is not buffered,\n          check if current pos+100ms is buffered and use that buffer range\n          for FRAG_CHANGED event reporting */\n        fragPlayingCurrent = this.getBufferedFrag(currentTime + 0.1);\n      }\n      if (fragPlayingCurrent) {\n        var fragPlaying = fragPlayingCurrent;\n        if (fragPlaying !== this.fragPlaying) {\n          this.hls.trigger(events[\"a\" /* default */].FRAG_CHANGED, { frag: fragPlaying });\n          var fragPlayingLevel = fragPlaying.level;\n          if (!this.fragPlaying || this.fragPlaying.level !== fragPlayingLevel) {\n            this.hls.trigger(events[\"a\" /* default */].LEVEL_SWITCHED, { level: fragPlayingLevel });\n          }\n\n          this.fragPlaying = fragPlaying;\n        }\n      }\n    }\n  };\n\n  /*\n    on immediate level switch :\n     - pause playback if playing\n     - cancel any pending load request\n     - and trigger a buffer flush\n  */\n\n\n  StreamController.prototype.immediateLevelSwitch = function immediateLevelSwitch() {\n    logger[\"b\" /* logger */].log('immediateLevelSwitch');\n    if (!this.immediateSwitch) {\n      this.immediateSwitch = true;\n      var media = this.media,\n          previouslyPaused = void 0;\n      if (media) {\n        previouslyPaused = media.paused;\n        media.pause();\n      } else {\n        // don't restart playback after instant level switch in case media not attached\n        previouslyPaused = true;\n      }\n      this.previouslyPaused = previouslyPaused;\n    }\n    var fragCurrent = this.fragCurrent;\n    if (fragCurrent && fragCurrent.loader) {\n      fragCurrent.loader.abort();\n    }\n\n    this.fragCurrent = null;\n    // flush everything\n    this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n  };\n\n  /**\n   * on immediate level switch end, after new fragment has been buffered:\n   * - nudge video decoder by slightly adjusting video currentTime (if currentTime buffered)\n   * - resume the playback if needed\n   */\n\n\n  StreamController.prototype.immediateLevelSwitchEnd = function immediateLevelSwitchEnd() {\n    var media = this.media;\n    if (media && media.buffered.length) {\n      this.immediateSwitch = false;\n      if (BufferHelper.isBuffered(media, media.currentTime)) {\n        // only nudge if currentTime is buffered\n        media.currentTime -= 0.0001;\n      }\n      if (!this.previouslyPaused) {\n        media.play();\n      }\n    }\n  };\n\n  /**\n   * try to switch ASAP without breaking video playback:\n   * in order to ensure smooth but quick level switching,\n   * we need to find the next flushable buffer range\n   * we should take into account new segment fetch time\n   */\n\n\n  StreamController.prototype.nextLevelSwitch = function nextLevelSwitch() {\n    var media = this.media;\n    // ensure that media is defined and that metadata are available (to retrieve currentTime)\n    if (media && media.readyState) {\n      var fetchdelay = void 0,\n          fragPlayingCurrent = void 0,\n          nextBufferedFrag = void 0;\n      fragPlayingCurrent = this.getBufferedFrag(media.currentTime);\n      if (fragPlayingCurrent && fragPlayingCurrent.startPTS > 1) {\n        // flush buffer preceding current fragment (flush until current fragment start offset)\n        // minus 1s to avoid video freezing, that could happen if we flush keyframe of current video ...\n        this.flushMainBuffer(0, fragPlayingCurrent.startPTS - 1);\n      }\n      if (!media.paused) {\n        // add a safety delay of 1s\n        var nextLevelId = this.hls.nextLoadLevel,\n            nextLevel = this.levels[nextLevelId],\n            fragLastKbps = this.fragLastKbps;\n        if (fragLastKbps && this.fragCurrent) {\n          fetchdelay = this.fragCurrent.duration * nextLevel.bitrate / (1000 * fragLastKbps) + 1;\n        } else {\n          fetchdelay = 0;\n        }\n      } else {\n        fetchdelay = 0;\n      }\n      // logger.log('fetchdelay:'+fetchdelay);\n      // find buffer range that will be reached once new fragment will be fetched\n      nextBufferedFrag = this.getBufferedFrag(media.currentTime + fetchdelay);\n      if (nextBufferedFrag) {\n        // we can flush buffer range following this one without stalling playback\n        nextBufferedFrag = this.followingBufferedFrag(nextBufferedFrag);\n        if (nextBufferedFrag) {\n          // if we are here, we can also cancel any loading/demuxing in progress, as they are useless\n          var fragCurrent = this.fragCurrent;\n          if (fragCurrent && fragCurrent.loader) {\n            fragCurrent.loader.abort();\n          }\n\n          this.fragCurrent = null;\n          // start flush position is the start PTS of next buffered frag.\n          // we use frag.naxStartPTS which is max(audio startPTS, video startPTS).\n          // in case there is a small PTS Delta between audio and video, using maxStartPTS avoids flushing last samples from current fragment\n          this.flushMainBuffer(nextBufferedFrag.maxStartPTS, Number.POSITIVE_INFINITY);\n        }\n      }\n    }\n  };\n\n  StreamController.prototype.flushMainBuffer = function flushMainBuffer(startOffset, endOffset) {\n    this.state = State.BUFFER_FLUSHING;\n    var flushScope = { startOffset: startOffset, endOffset: endOffset };\n    // if alternate audio tracks are used, only flush video, otherwise flush everything\n    if (this.altAudio) {\n      flushScope.type = 'video';\n    }\n\n    this.hls.trigger(events[\"a\" /* default */].BUFFER_FLUSHING, flushScope);\n  };\n\n  StreamController.prototype.onMediaAttached = function onMediaAttached(data) {\n    var media = this.media = this.mediaBuffer = data.media;\n    this.onvseeking = this.onMediaSeeking.bind(this);\n    this.onvseeked = this.onMediaSeeked.bind(this);\n    this.onvended = this.onMediaEnded.bind(this);\n    media.addEventListener('seeking', this.onvseeking);\n    media.addEventListener('seeked', this.onvseeked);\n    media.addEventListener('ended', this.onvended);\n    var config = this.config;\n    if (this.levels && config.autoStartLoad) {\n      this.hls.startLoad(config.startPosition);\n    }\n\n    this.gapController = new gap_controller(config, media, this.fragmentTracker, this.hls);\n  };\n\n  StreamController.prototype.onMediaDetaching = function onMediaDetaching() {\n    var media = this.media;\n    if (media && media.ended) {\n      logger[\"b\" /* logger */].log('MSE detaching and video ended, reset startPosition');\n      this.startPosition = this.lastCurrentTime = 0;\n    }\n\n    // reset fragment backtracked flag\n    var levels = this.levels;\n    if (levels) {\n      levels.forEach(function (level) {\n        if (level.details) {\n          level.details.fragments.forEach(function (fragment) {\n            fragment.backtracked = undefined;\n          });\n        }\n      });\n    }\n    // remove video listeners\n    if (media) {\n      media.removeEventListener('seeking', this.onvseeking);\n      media.removeEventListener('seeked', this.onvseeked);\n      media.removeEventListener('ended', this.onvended);\n      this.onvseeking = this.onvseeked = this.onvended = null;\n    }\n    this.media = this.mediaBuffer = null;\n    this.loadedmetadata = false;\n    this.stopLoad();\n  };\n\n  StreamController.prototype.onMediaSeeking = function onMediaSeeking() {\n    var media = this.media,\n        currentTime = media ? media.currentTime : undefined,\n        config = this.config;\n    if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(currentTime)) {\n      logger[\"b\" /* logger */].log('media seeking to ' + currentTime.toFixed(3));\n    }\n\n    var mediaBuffer = this.mediaBuffer ? this.mediaBuffer : media;\n    var bufferInfo = BufferHelper.bufferInfo(mediaBuffer, currentTime, this.config.maxBufferHole);\n    if (this.state === State.FRAG_LOADING) {\n      var fragCurrent = this.fragCurrent;\n      // check if we are seeking to a unbuffered area AND if frag loading is in progress\n      if (bufferInfo.len === 0 && fragCurrent) {\n        var tolerance = config.maxFragLookUpTolerance,\n            fragStartOffset = fragCurrent.start - tolerance,\n            fragEndOffset = fragCurrent.start + fragCurrent.duration + tolerance;\n        // check if we seek position will be out of currently loaded frag range : if out cancel frag load, if in, don't do anything\n        if (currentTime < fragStartOffset || currentTime > fragEndOffset) {\n          if (fragCurrent.loader) {\n            logger[\"b\" /* logger */].log('seeking outside of buffer while fragment load in progress, cancel fragment load');\n            fragCurrent.loader.abort();\n          }\n          this.fragCurrent = null;\n          this.fragPrevious = null;\n          // switch to IDLE state to load new fragment\n          this.state = State.IDLE;\n        } else {\n          logger[\"b\" /* logger */].log('seeking outside of buffer but within currently loaded fragment range');\n        }\n      }\n    } else if (this.state === State.ENDED) {\n      // if seeking to unbuffered area, clean up fragPrevious\n      if (bufferInfo.len === 0) {\n        this.fragPrevious = 0;\n      }\n\n      // switch to IDLE state to check for potential new fragment\n      this.state = State.IDLE;\n    }\n    if (media) {\n      this.lastCurrentTime = currentTime;\n    }\n\n    // in case seeking occurs although no media buffered, adjust startPosition and nextLoadPosition to seek target\n    if (!this.loadedmetadata) {\n      this.nextLoadPosition = this.startPosition = currentTime;\n    }\n\n    // tick to speed up processing\n    this.tick();\n  };\n\n  StreamController.prototype.onMediaSeeked = function onMediaSeeked() {\n    var media = this.media,\n        currentTime = media ? media.currentTime : undefined;\n    if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(currentTime)) {\n      logger[\"b\" /* logger */].log('media seeked to ' + currentTime.toFixed(3));\n    }\n\n    // tick to speed up FRAGMENT_PLAYING triggering\n    this.tick();\n  };\n\n  StreamController.prototype.onMediaEnded = function onMediaEnded() {\n    logger[\"b\" /* logger */].log('media ended');\n    // reset startPosition and lastCurrentTime to restart playback @ stream beginning\n    this.startPosition = this.lastCurrentTime = 0;\n  };\n\n  StreamController.prototype.onManifestLoading = function onManifestLoading() {\n    // reset buffer on manifest loading\n    logger[\"b\" /* logger */].log('trigger BUFFER_RESET');\n    this.hls.trigger(events[\"a\" /* default */].BUFFER_RESET);\n    this.fragmentTracker.removeAllFragments();\n    this.stalled = false;\n    this.startPosition = this.lastCurrentTime = 0;\n  };\n\n  StreamController.prototype.onManifestParsed = function onManifestParsed(data) {\n    var aac = false,\n        heaac = false,\n        codec = void 0;\n    data.levels.forEach(function (level) {\n      // detect if we have different kind of audio codecs used amongst playlists\n      codec = level.audioCodec;\n      if (codec) {\n        if (codec.indexOf('mp4a.40.2') !== -1) {\n          aac = true;\n        }\n\n        if (codec.indexOf('mp4a.40.5') !== -1) {\n          heaac = true;\n        }\n      }\n    });\n    this.audioCodecSwitch = aac && heaac;\n    if (this.audioCodecSwitch) {\n      logger[\"b\" /* logger */].log('both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC');\n    }\n\n    this.levels = data.levels;\n    this.startFragRequested = false;\n    var config = this.config;\n    if (config.autoStartLoad || this.forceStartLoad) {\n      this.hls.startLoad(config.startPosition);\n    }\n  };\n\n  StreamController.prototype.onLevelLoaded = function onLevelLoaded(data) {\n    var newDetails = data.details;\n    var newLevelId = data.level;\n    var lastLevel = this.levels[this.levelLastLoaded];\n    var curLevel = this.levels[newLevelId];\n    var duration = newDetails.totalduration;\n    var sliding = 0;\n\n    logger[\"b\" /* logger */].log('level ' + newLevelId + ' loaded [' + newDetails.startSN + ',' + newDetails.endSN + '],duration:' + duration);\n\n    if (newDetails.live) {\n      var curDetails = curLevel.details;\n      if (curDetails && newDetails.fragments.length > 0) {\n        // we already have details for that level, merge them\n        mergeDetails(curDetails, newDetails);\n        sliding = newDetails.fragments[0].start;\n        this.liveSyncPosition = this.computeLivePosition(sliding, curDetails);\n        if (newDetails.PTSKnown && Object(number_isFinite[\"a\" /* isFiniteNumber */])(sliding)) {\n          logger[\"b\" /* logger */].log('live playlist sliding:' + sliding.toFixed(3));\n        } else {\n          logger[\"b\" /* logger */].log('live playlist - outdated PTS, unknown sliding');\n          alignStream(this.fragPrevious, lastLevel, newDetails);\n        }\n      } else {\n        logger[\"b\" /* logger */].log('live playlist - first load, unknown sliding');\n        newDetails.PTSKnown = false;\n        alignStream(this.fragPrevious, lastLevel, newDetails);\n      }\n    } else {\n      newDetails.PTSKnown = false;\n    }\n    // override level info\n    curLevel.details = newDetails;\n    this.levelLastLoaded = newLevelId;\n    this.hls.trigger(events[\"a\" /* default */].LEVEL_UPDATED, { details: newDetails, level: newLevelId });\n\n    if (this.startFragRequested === false) {\n      // compute start position if set to -1. use it straight away if value is defined\n      if (this.startPosition === -1 || this.lastCurrentTime === -1) {\n        // first, check if start time offset has been set in playlist, if yes, use this value\n        var startTimeOffset = newDetails.startTimeOffset;\n        if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(startTimeOffset)) {\n          if (startTimeOffset < 0) {\n            logger[\"b\" /* logger */].log('negative start time offset ' + startTimeOffset + ', count from end of last fragment');\n            startTimeOffset = sliding + duration + startTimeOffset;\n          }\n          logger[\"b\" /* logger */].log('start time offset found in playlist, adjust startPosition to ' + startTimeOffset);\n          this.startPosition = startTimeOffset;\n        } else {\n          // if live playlist, set start position to be fragment N-this.config.liveSyncDurationCount (usually 3)\n          if (newDetails.live) {\n            this.startPosition = this.computeLivePosition(sliding, newDetails);\n            logger[\"b\" /* logger */].log('configure startPosition to ' + this.startPosition);\n          } else {\n            this.startPosition = 0;\n          }\n        }\n        this.lastCurrentTime = this.startPosition;\n      }\n      this.nextLoadPosition = this.startPosition;\n    }\n    // only switch batck to IDLE state if we were waiting for level to start downloading a new fragment\n    if (this.state === State.WAITING_LEVEL) {\n      this.state = State.IDLE;\n    }\n\n    // trigger handler right now\n    this.tick();\n  };\n\n  StreamController.prototype.onKeyLoaded = function onKeyLoaded() {\n    if (this.state === State.KEY_LOADING) {\n      this.state = State.IDLE;\n      this.tick();\n    }\n  };\n\n  StreamController.prototype.onFragLoaded = function onFragLoaded(data) {\n    var fragCurrent = this.fragCurrent,\n        hls = this.hls,\n        levels = this.levels,\n        media = this.media;\n\n    var fragLoaded = data.frag;\n    if (this.state === State.FRAG_LOADING && fragCurrent && fragLoaded.type === 'main' && fragLoaded.level === fragCurrent.level && fragLoaded.sn === fragCurrent.sn) {\n      var stats = data.stats;\n      var currentLevel = levels[fragCurrent.level];\n      var details = currentLevel.details;\n      // reset frag bitrate test in any case after frag loaded event\n      // if this frag was loaded to perform a bitrate test AND if hls.nextLoadLevel is greater than 0\n      // then this means that we should be able to load a fragment at a higher quality level\n      this.bitrateTest = false;\n      this.stats = stats;\n\n      logger[\"b\" /* logger */].log('Loaded ' + fragCurrent.sn + ' of [' + details.startSN + ' ,' + details.endSN + '],level ' + fragCurrent.level);\n      if (fragLoaded.bitrateTest && hls.nextLoadLevel) {\n        // switch back to IDLE state ... we just loaded a fragment to determine adequate start bitrate and initialize autoswitch algo\n        this.state = State.IDLE;\n        this.startFragRequested = false;\n        stats.tparsed = stats.tbuffered = window.performance.now();\n        hls.trigger(events[\"a\" /* default */].FRAG_BUFFERED, { stats: stats, frag: fragCurrent, id: 'main' });\n        this.tick();\n      } else if (fragLoaded.sn === 'initSegment') {\n        this.state = State.IDLE;\n        stats.tparsed = stats.tbuffered = window.performance.now();\n        details.initSegment.data = data.payload;\n        hls.trigger(events[\"a\" /* default */].FRAG_BUFFERED, { stats: stats, frag: fragCurrent, id: 'main' });\n        this.tick();\n      } else {\n        logger[\"b\" /* logger */].log('Parsing ' + fragCurrent.sn + ' of [' + details.startSN + ' ,' + details.endSN + '],level ' + fragCurrent.level + ', cc ' + fragCurrent.cc);\n        this.state = State.PARSING;\n        this.pendingBuffering = true;\n        this.appended = false;\n\n        // Bitrate test frags are not usually buffered so the fragment tracker ignores them. If Hls.js decides to buffer\n        // it (and therefore ends up at this line), then the fragment tracker needs to be manually informed.\n        if (fragLoaded.bitrateTest) {\n          fragLoaded.bitrateTest = false;\n          this.fragmentTracker.onFragLoaded({\n            frag: fragLoaded\n          });\n        }\n\n        // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live) and if media is not seeking (this is to overcome potential timestamp drifts between playlists and fragments)\n        var accurateTimeOffset = !(media && media.seeking) && (details.PTSKnown || !details.live);\n        var initSegmentData = details.initSegment ? details.initSegment.data : [];\n        var audioCodec = this._getAudioCodec(currentLevel);\n\n        // transmux the MPEG-TS data to ISO-BMFF segments\n        var demuxer = this.demuxer = this.demuxer || new demux_demuxer(this.hls, 'main');\n        demuxer.push(data.payload, initSegmentData, audioCodec, currentLevel.videoCodec, fragCurrent, details.totalduration, accurateTimeOffset);\n      }\n    }\n    this.fragLoadError = 0;\n  };\n\n  StreamController.prototype.onFragParsingInitSegment = function onFragParsingInitSegment(data) {\n    var fragCurrent = this.fragCurrent;\n    var fragNew = data.frag;\n\n    if (fragCurrent && data.id === 'main' && fragNew.sn === fragCurrent.sn && fragNew.level === fragCurrent.level && this.state === State.PARSING) {\n      var tracks = data.tracks,\n          trackName = void 0,\n          track = void 0;\n\n      // if audio track is expected to come from audio stream controller, discard any coming from main\n      if (tracks.audio && this.altAudio) {\n        delete tracks.audio;\n      }\n\n      // include levelCodec in audio and video tracks\n      track = tracks.audio;\n      if (track) {\n        var audioCodec = this.levels[this.level].audioCodec,\n            ua = navigator.userAgent.toLowerCase();\n        if (audioCodec && this.audioCodecSwap) {\n          logger[\"b\" /* logger */].log('swapping playlist audio codec');\n          if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n            audioCodec = 'mp4a.40.2';\n          } else {\n            audioCodec = 'mp4a.40.5';\n          }\n        }\n        // in case AAC and HE-AAC audio codecs are signalled in manifest\n        // force HE-AAC , as it seems that most browsers prefers that way,\n        // except for mono streams OR on FF\n        // these conditions might need to be reviewed ...\n        if (this.audioCodecSwitch) {\n          // don't force HE-AAC if mono stream\n          if (track.metadata.channelCount !== 1 &&\n          // don't force HE-AAC if firefox\n          ua.indexOf('firefox') === -1) {\n            audioCodec = 'mp4a.40.5';\n          }\n        }\n        // HE-AAC is broken on Android, always signal audio codec as AAC even if variant manifest states otherwise\n        if (ua.indexOf('android') !== -1 && track.container !== 'audio/mpeg') {\n          // Exclude mpeg audio\n          audioCodec = 'mp4a.40.2';\n          logger[\"b\" /* logger */].log('Android: force audio codec to ' + audioCodec);\n        }\n        track.levelCodec = audioCodec;\n        track.id = data.id;\n      }\n      track = tracks.video;\n      if (track) {\n        track.levelCodec = this.levels[this.level].videoCodec;\n        track.id = data.id;\n      }\n      this.hls.trigger(events[\"a\" /* default */].BUFFER_CODECS, tracks);\n      // loop through tracks that are going to be provided to bufferController\n      for (trackName in tracks) {\n        track = tracks[trackName];\n        logger[\"b\" /* logger */].log('main track:' + trackName + ',container:' + track.container + ',codecs[level/parsed]=[' + track.levelCodec + '/' + track.codec + ']');\n        var initSegment = track.initSegment;\n        if (initSegment) {\n          this.appended = true;\n          // arm pending Buffering flag before appending a segment\n          this.pendingBuffering = true;\n          this.hls.trigger(events[\"a\" /* default */].BUFFER_APPENDING, { type: trackName, data: initSegment, parent: 'main', content: 'initSegment' });\n        }\n      }\n      // trigger handler right now\n      this.tick();\n    }\n  };\n\n  StreamController.prototype.onFragParsingData = function onFragParsingData(data) {\n    var _this2 = this;\n\n    var fragCurrent = this.fragCurrent;\n    var fragNew = data.frag;\n    if (fragCurrent && data.id === 'main' && fragNew.sn === fragCurrent.sn && fragNew.level === fragCurrent.level && !(data.type === 'audio' && this.altAudio) && // filter out main audio if audio track is loaded through audio stream controller\n    this.state === State.PARSING) {\n      var level = this.levels[this.level],\n          frag = fragCurrent;\n      if (!Object(number_isFinite[\"a\" /* isFiniteNumber */])(data.endPTS)) {\n        data.endPTS = data.startPTS + fragCurrent.duration;\n        data.endDTS = data.startDTS + fragCurrent.duration;\n      }\n\n      if (data.hasAudio === true) {\n        frag.addElementaryStream(loader_fragment.ElementaryStreamTypes.AUDIO);\n      }\n\n      if (data.hasVideo === true) {\n        frag.addElementaryStream(loader_fragment.ElementaryStreamTypes.VIDEO);\n      }\n\n      logger[\"b\" /* logger */].log('Parsed ' + data.type + ',PTS:[' + data.startPTS.toFixed(3) + ',' + data.endPTS.toFixed(3) + '],DTS:[' + data.startDTS.toFixed(3) + '/' + data.endDTS.toFixed(3) + '],nb:' + data.nb + ',dropped:' + (data.dropped || 0));\n\n      // Detect gaps in a fragment  and try to fix it by finding a keyframe in the previous fragment (see _findFragments)\n      if (data.type === 'video') {\n        frag.dropped = data.dropped;\n        if (frag.dropped) {\n          if (!frag.backtracked) {\n            var levelDetails = level.details;\n            if (levelDetails && frag.sn === levelDetails.startSN) {\n              logger[\"b\" /* logger */].warn('missing video frame(s) on first frag, appending with gap', frag.sn);\n            } else {\n              logger[\"b\" /* logger */].warn('missing video frame(s), backtracking fragment', frag.sn);\n              // Return back to the IDLE state without appending to buffer\n              // Causes findFragments to backtrack a segment and find the keyframe\n              // Audio fragments arriving before video sets the nextLoadPosition, causing _findFragments to skip the backtracked fragment\n              this.fragmentTracker.removeFragment(frag);\n              frag.backtracked = true;\n              this.nextLoadPosition = data.startPTS;\n              this.state = State.IDLE;\n              this.fragPrevious = frag;\n              this.tick();\n              return;\n            }\n          } else {\n            logger[\"b\" /* logger */].warn('Already backtracked on this fragment, appending with the gap', frag.sn);\n          }\n        } else {\n          // Only reset the backtracked flag if we've loaded the frag without any dropped frames\n          frag.backtracked = false;\n        }\n      }\n\n      var drift = updateFragPTSDTS(level.details, frag, data.startPTS, data.endPTS, data.startDTS, data.endDTS),\n          hls = this.hls;\n      hls.trigger(events[\"a\" /* default */].LEVEL_PTS_UPDATED, { details: level.details, level: this.level, drift: drift, type: data.type, start: data.startPTS, end: data.endPTS });\n      // has remuxer dropped video frames located before first keyframe ?\n      [data.data1, data.data2].forEach(function (buffer) {\n        // only append in PARSING state (rationale is that an appending error could happen synchronously on first segment appending)\n        // in that case it is useless to append following segments\n        if (buffer && buffer.length && _this2.state === State.PARSING) {\n          _this2.appended = true;\n          // arm pending Buffering flag before appending a segment\n          _this2.pendingBuffering = true;\n          hls.trigger(events[\"a\" /* default */].BUFFER_APPENDING, { type: data.type, data: buffer, parent: 'main', content: 'data' });\n        }\n      });\n      // trigger handler right now\n      this.tick();\n    }\n  };\n\n  StreamController.prototype.onFragParsed = function onFragParsed(data) {\n    var fragCurrent = this.fragCurrent;\n    var fragNew = data.frag;\n    if (fragCurrent && data.id === 'main' && fragNew.sn === fragCurrent.sn && fragNew.level === fragCurrent.level && this.state === State.PARSING) {\n      this.stats.tparsed = window.performance.now();\n      this.state = State.PARSED;\n      this._checkAppendedParsed();\n    }\n  };\n\n  StreamController.prototype.onAudioTrackSwitching = function onAudioTrackSwitching(data) {\n    // if any URL found on new audio track, it is an alternate audio track\n    var altAudio = !!data.url,\n        trackId = data.id;\n    // if we switch on main audio, ensure that main fragment scheduling is synced with media.buffered\n    // don't do anything if we switch to alt audio: audio stream controller is handling it.\n    // we will just have to change buffer scheduling on audioTrackSwitched\n    if (!altAudio) {\n      if (this.mediaBuffer !== this.media) {\n        logger[\"b\" /* logger */].log('switching on main audio, use media.buffered to schedule main fragment loading');\n        this.mediaBuffer = this.media;\n        var fragCurrent = this.fragCurrent;\n        // we need to refill audio buffer from main: cancel any frag loading to speed up audio switch\n        if (fragCurrent.loader) {\n          logger[\"b\" /* logger */].log('switching to main audio track, cancel main fragment load');\n          fragCurrent.loader.abort();\n        }\n        this.fragCurrent = null;\n        this.fragPrevious = null;\n        // destroy demuxer to force init segment generation (following audio switch)\n        if (this.demuxer) {\n          this.demuxer.destroy();\n          this.demuxer = null;\n        }\n        // switch to IDLE state to load new fragment\n        this.state = State.IDLE;\n      }\n      var hls = this.hls;\n      // switching to main audio, flush all audio and trigger track switched\n      hls.trigger(events[\"a\" /* default */].BUFFER_FLUSHING, { startOffset: 0, endOffset: Number.POSITIVE_INFINITY, type: 'audio' });\n      hls.trigger(events[\"a\" /* default */].AUDIO_TRACK_SWITCHED, { id: trackId });\n      this.altAudio = false;\n    }\n  };\n\n  StreamController.prototype.onAudioTrackSwitched = function onAudioTrackSwitched(data) {\n    var trackId = data.id,\n        altAudio = !!this.hls.audioTracks[trackId].url;\n    if (altAudio) {\n      var videoBuffer = this.videoBuffer;\n      // if we switched on alternate audio, ensure that main fragment scheduling is synced with video sourcebuffer buffered\n      if (videoBuffer && this.mediaBuffer !== videoBuffer) {\n        logger[\"b\" /* logger */].log('switching on alternate audio, use video.buffered to schedule main fragment loading');\n        this.mediaBuffer = videoBuffer;\n      }\n    }\n    this.altAudio = altAudio;\n    this.tick();\n  };\n\n  StreamController.prototype.onBufferCreated = function onBufferCreated(data) {\n    var tracks = data.tracks,\n        mediaTrack = void 0,\n        name = void 0,\n        alternate = false;\n    for (var type in tracks) {\n      var track = tracks[type];\n      if (track.id === 'main') {\n        name = type;\n        mediaTrack = track;\n        // keep video source buffer reference\n        if (type === 'video') {\n          this.videoBuffer = tracks[type].buffer;\n        }\n      } else {\n        alternate = true;\n      }\n    }\n    if (alternate && mediaTrack) {\n      logger[\"b\" /* logger */].log('alternate track found, use ' + name + '.buffered to schedule main fragment loading');\n      this.mediaBuffer = mediaTrack.buffer;\n    } else {\n      this.mediaBuffer = this.media;\n    }\n  };\n\n  StreamController.prototype.onBufferAppended = function onBufferAppended(data) {\n    if (data.parent === 'main') {\n      var state = this.state;\n      if (state === State.PARSING || state === State.PARSED) {\n        // check if all buffers have been appended\n        this.pendingBuffering = data.pending > 0;\n        this._checkAppendedParsed();\n      }\n    }\n  };\n\n  StreamController.prototype._checkAppendedParsed = function _checkAppendedParsed() {\n    // trigger handler right now\n    if (this.state === State.PARSED && (!this.appended || !this.pendingBuffering)) {\n      var frag = this.fragCurrent;\n      if (frag) {\n        var media = this.mediaBuffer ? this.mediaBuffer : this.media;\n        logger[\"b\" /* logger */].log('main buffered : ' + time_ranges.toString(media.buffered));\n        this.fragPrevious = frag;\n        var stats = this.stats;\n        stats.tbuffered = window.performance.now();\n        // we should get rid of this.fragLastKbps\n        this.fragLastKbps = Math.round(8 * stats.total / (stats.tbuffered - stats.tfirst));\n        this.hls.trigger(events[\"a\" /* default */].FRAG_BUFFERED, { stats: stats, frag: frag, id: 'main' });\n        this.state = State.IDLE;\n      }\n      this.tick();\n    }\n  };\n\n  StreamController.prototype.onError = function onError(data) {\n    var frag = data.frag || this.fragCurrent;\n    // don't handle frag error not related to main fragment\n    if (frag && frag.type !== 'main') {\n      return;\n    }\n\n    // 0.5 : tolerance needed as some browsers stalls playback before reaching buffered end\n    var mediaBuffered = !!this.media && BufferHelper.isBuffered(this.media, this.media.currentTime) && BufferHelper.isBuffered(this.media, this.media.currentTime + 0.5);\n\n    switch (data.details) {\n      case errors[\"a\" /* ErrorDetails */].FRAG_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].FRAG_LOAD_TIMEOUT:\n      case errors[\"a\" /* ErrorDetails */].KEY_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].KEY_LOAD_TIMEOUT:\n        if (!data.fatal) {\n          // keep retrying until the limit will be reached\n          if (this.fragLoadError + 1 <= this.config.fragLoadingMaxRetry) {\n            // exponential backoff capped to config.fragLoadingMaxRetryTimeout\n            var delay = Math.min(Math.pow(2, this.fragLoadError) * this.config.fragLoadingRetryDelay, this.config.fragLoadingMaxRetryTimeout);\n            logger[\"b\" /* logger */].warn('mediaController: frag loading failed, retry in ' + delay + ' ms');\n            this.retryDate = window.performance.now() + delay;\n            // retry loading state\n            // if loadedmetadata is not set, it means that we are emergency switch down on first frag\n            // in that case, reset startFragRequested flag\n            if (!this.loadedmetadata) {\n              this.startFragRequested = false;\n              this.nextLoadPosition = this.startPosition;\n            }\n            this.fragLoadError++;\n            this.state = State.FRAG_LOADING_WAITING_RETRY;\n          } else {\n            logger[\"b\" /* logger */].error('mediaController: ' + data.details + ' reaches max retry, redispatch as fatal ...');\n            // switch error to fatal\n            data.fatal = true;\n            this.state = State.ERROR;\n          }\n        }\n        break;\n      case errors[\"a\" /* ErrorDetails */].LEVEL_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].LEVEL_LOAD_TIMEOUT:\n        if (this.state !== State.ERROR) {\n          if (data.fatal) {\n            // if fatal error, stop processing\n            this.state = State.ERROR;\n            logger[\"b\" /* logger */].warn('streamController: ' + data.details + ',switch to ' + this.state + ' state ...');\n          } else {\n            // in case of non fatal error while loading level, if level controller is not retrying to load level , switch back to IDLE\n            if (!data.levelRetry && this.state === State.WAITING_LEVEL) {\n              this.state = State.IDLE;\n            }\n          }\n        }\n        break;\n      case errors[\"a\" /* ErrorDetails */].BUFFER_FULL_ERROR:\n        // if in appending state\n        if (data.parent === 'main' && (this.state === State.PARSING || this.state === State.PARSED)) {\n          // reduce max buf len if current position is buffered\n          if (mediaBuffered) {\n            this._reduceMaxBufferLength(this.config.maxBufferLength);\n            this.state = State.IDLE;\n          } else {\n            // current position is not buffered, but browser is still complaining about buffer full error\n            // this happens on IE/Edge, refer to https://github.com/video-dev/hls.js/pull/708\n            // in that case flush the whole buffer to recover\n            logger[\"b\" /* logger */].warn('buffer full error also media.currentTime is not buffered, flush everything');\n            this.fragCurrent = null;\n            // flush everything\n            this.flushMainBuffer(0, Number.POSITIVE_INFINITY);\n          }\n        }\n        break;\n      default:\n        break;\n    }\n  };\n\n  StreamController.prototype._reduceMaxBufferLength = function _reduceMaxBufferLength(minLength) {\n    var config = this.config;\n    if (config.maxMaxBufferLength >= minLength) {\n      // reduce max buffer length as it might be too high. we do this to avoid loop flushing ...\n      config.maxMaxBufferLength /= 2;\n      logger[\"b\" /* logger */].warn('main:reduce max buffer length to ' + config.maxMaxBufferLength + 's');\n      return true;\n    }\n    return false;\n  };\n\n  /**\n   * Checks the health of the buffer and attempts to resolve playback stalls.\n   * @private\n   */\n\n\n  StreamController.prototype._checkBuffer = function _checkBuffer() {\n    var media = this.media;\n\n    if (!media || media.readyState === 0) {\n      // Exit early if we don't have media or if the media hasn't bufferd anything yet (readyState 0)\n      return;\n    }\n\n    var mediaBuffer = this.mediaBuffer ? this.mediaBuffer : media;\n    var buffered = mediaBuffer.buffered;\n\n    if (!this.loadedmetadata && buffered.length) {\n      this.loadedmetadata = true;\n      this._seekToStartPos();\n    } else if (this.immediateSwitch) {\n      this.immediateLevelSwitchEnd();\n    } else {\n      this.gapController.poll(this.lastCurrentTime, buffered);\n    }\n  };\n\n  StreamController.prototype.onFragLoadEmergencyAborted = function onFragLoadEmergencyAborted() {\n    this.state = State.IDLE;\n    // if loadedmetadata is not set, it means that we are emergency switch down on first frag\n    // in that case, reset startFragRequested flag\n    if (!this.loadedmetadata) {\n      this.startFragRequested = false;\n      this.nextLoadPosition = this.startPosition;\n    }\n    this.tick();\n  };\n\n  StreamController.prototype.onBufferFlushed = function onBufferFlushed() {\n    /* after successful buffer flushing, filter flushed fragments from bufferedFrags\n      use mediaBuffered instead of media (so that we will check against video.buffered ranges in case of alt audio track)\n    */\n    var media = this.mediaBuffer ? this.mediaBuffer : this.media;\n    if (media) {\n      // filter fragments potentially evicted from buffer. this is to avoid memleak on live streams\n      this.fragmentTracker.detectEvictedFragments(loader_fragment.ElementaryStreamTypes.VIDEO, media.buffered);\n    }\n    // move to IDLE once flush complete. this should trigger new fragment loading\n    this.state = State.IDLE;\n    // reset reference to frag\n    this.fragPrevious = null;\n  };\n\n  StreamController.prototype.swapAudioCodec = function swapAudioCodec() {\n    this.audioCodecSwap = !this.audioCodecSwap;\n  };\n\n  StreamController.prototype.computeLivePosition = function computeLivePosition(sliding, levelDetails) {\n    var targetLatency = this.config.liveSyncDuration !== undefined ? this.config.liveSyncDuration : this.config.liveSyncDurationCount * levelDetails.targetduration;\n    return sliding + Math.max(0, levelDetails.totalduration - targetLatency);\n  };\n\n  /**\n   * Seeks to the set startPosition if not equal to the mediaElement's current time.\n   * @private\n   */\n\n\n  StreamController.prototype._seekToStartPos = function _seekToStartPos() {\n    var media = this.media;\n\n    var currentTime = media.currentTime;\n    // only adjust currentTime if different from startPosition or if startPosition not buffered\n    // at that stage, there should be only one buffered range, as we reach that code after first fragment has been buffered\n    var startPosition = media.seeking ? currentTime : this.startPosition;\n    // if currentTime not matching with expected startPosition or startPosition not buffered but close to first buffered\n    if (currentTime !== startPosition) {\n      // if startPosition not buffered, let's seek to buffered.start(0)\n      logger[\"b\" /* logger */].log('target start position not buffered, seek to buffered.start(0) ' + startPosition + ' from current time ' + currentTime + ' ');\n      media.currentTime = startPosition;\n    }\n  };\n\n  StreamController.prototype._getAudioCodec = function _getAudioCodec(currentLevel) {\n    var audioCodec = this.config.defaultAudioCodec || currentLevel.audioCodec;\n    if (this.audioCodecSwap) {\n      logger[\"b\" /* logger */].log('swapping playlist audio codec');\n      if (audioCodec) {\n        if (audioCodec.indexOf('mp4a.40.5') !== -1) {\n          audioCodec = 'mp4a.40.2';\n        } else {\n          audioCodec = 'mp4a.40.5';\n        }\n      }\n    }\n\n    return audioCodec;\n  };\n\n  stream_controller__createClass(StreamController, [{\n    key: 'state',\n    set: function set(nextState) {\n      if (this.state !== nextState) {\n        var previousState = this.state;\n        this._state = nextState;\n        logger[\"b\" /* logger */].log('main stream:' + previousState + '->' + nextState);\n        this.hls.trigger(events[\"a\" /* default */].STREAM_STATE_TRANSITION, { previousState: previousState, nextState: nextState });\n      }\n    },\n    get: function get() {\n      return this._state;\n    }\n  }, {\n    key: 'currentLevel',\n    get: function get() {\n      var media = this.media;\n      if (media) {\n        var frag = this.getBufferedFrag(media.currentTime);\n        if (frag) {\n          return frag.level;\n        }\n      }\n      return -1;\n    }\n  }, {\n    key: 'nextBufferedFrag',\n    get: function get() {\n      var media = this.media;\n      if (media) {\n        // first get end range of current fragment\n        return this.followingBufferedFrag(this.getBufferedFrag(media.currentTime));\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'nextLevel',\n    get: function get() {\n      var frag = this.nextBufferedFrag;\n      if (frag) {\n        return frag.level;\n      } else {\n        return -1;\n      }\n    }\n  }, {\n    key: 'liveSyncPosition',\n    get: function get() {\n      return this._liveSyncPosition;\n    },\n    set: function set(value) {\n      this._liveSyncPosition = value;\n    }\n  }]);\n\n  return StreamController;\n}(task_loop);\n\n/* harmony default export */ var stream_controller = (stream_controller_StreamController);\n// CONCATENATED MODULE: ./src/controller/level-controller.js\nvar level_controller__typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar level_controller__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction level_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction level_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction level_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * Level Controller\n*/\n\n\n\n\n\n\n\n\nvar level_controller__window = window,\n    level_controller_performance = level_controller__window.performance;\n\nvar level_controller_LevelController = function (_EventHandler) {\n  level_controller__inherits(LevelController, _EventHandler);\n\n  function LevelController(hls) {\n    level_controller__classCallCheck(this, LevelController);\n\n    var _this = level_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].MANIFEST_LOADED, events[\"a\" /* default */].LEVEL_LOADED, events[\"a\" /* default */].AUDIO_TRACK_SWITCHED, events[\"a\" /* default */].FRAG_LOADED, events[\"a\" /* default */].ERROR));\n\n    _this.canload = false;\n    _this.currentLevelIndex = null;\n    _this.manualLevelIndex = -1;\n    _this.timer = null;\n    return _this;\n  }\n\n  LevelController.prototype.onHandlerDestroying = function onHandlerDestroying() {\n    this.clearTimer();\n    this.manualLevelIndex = -1;\n  };\n\n  LevelController.prototype.clearTimer = function clearTimer() {\n    if (this.timer !== null) {\n      clearTimeout(this.timer);\n      this.timer = null;\n    }\n  };\n\n  LevelController.prototype.startLoad = function startLoad() {\n    var levels = this._levels;\n\n    this.canload = true;\n    this.levelRetryCount = 0;\n\n    // clean up live level details to force reload them, and reset load errors\n    if (levels) {\n      levels.forEach(function (level) {\n        level.loadError = 0;\n        var levelDetails = level.details;\n        if (levelDetails && levelDetails.live) {\n          level.details = undefined;\n        }\n      });\n    }\n    // speed up live playlist refresh if timer exists\n    if (this.timer !== null) {\n      this.loadLevel();\n    }\n  };\n\n  LevelController.prototype.stopLoad = function stopLoad() {\n    this.canload = false;\n  };\n\n  LevelController.prototype.onManifestLoaded = function onManifestLoaded(data) {\n    var levels = [];\n    var bitrateStart = void 0;\n    var levelSet = {};\n    var levelFromSet = null;\n    var videoCodecFound = false;\n    var audioCodecFound = false;\n    var chromeOrFirefox = /chrome|firefox/.test(navigator.userAgent.toLowerCase());\n    var audioTracks = [];\n\n    // regroup redundant levels together\n    data.levels.forEach(function (level) {\n      level.loadError = 0;\n      level.fragmentError = false;\n\n      videoCodecFound = videoCodecFound || !!level.videoCodec;\n      audioCodecFound = audioCodecFound || !!level.audioCodec || !!(level.attrs && level.attrs.AUDIO);\n\n      // erase audio codec info if browser does not support mp4a.40.34.\n      // demuxer will autodetect codec and fallback to mpeg/audio\n      if (chromeOrFirefox && level.audioCodec && level.audioCodec.indexOf('mp4a.40.34') !== -1) {\n        level.audioCodec = undefined;\n      }\n\n      levelFromSet = levelSet[level.bitrate]; // FIXME: we would also have to match the resolution here\n\n      if (!levelFromSet) {\n        level.url = [level.url];\n        level.urlId = 0;\n        levelSet[level.bitrate] = level;\n        levels.push(level);\n      } else {\n        levelFromSet.url.push(level.url);\n      }\n\n      if (level.attrs && level.attrs.AUDIO) {\n        addGroupId(levelFromSet || level, 'audio', level.attrs.AUDIO);\n      }\n\n      if (level.attrs && level.attrs.SUBTITLES) {\n        addGroupId(levelFromSet || level, 'text', level.attrs.SUBTITLES);\n      }\n    });\n\n    // remove audio-only level if we also have levels with audio+video codecs signalled\n    if (videoCodecFound && audioCodecFound) {\n      levels = levels.filter(function (_ref) {\n        var videoCodec = _ref.videoCodec;\n        return !!videoCodec;\n      });\n    }\n\n    // only keep levels with supported audio/video codecs\n    levels = levels.filter(function (_ref2) {\n      var audioCodec = _ref2.audioCodec,\n          videoCodec = _ref2.videoCodec;\n\n      return (!audioCodec || isCodecSupportedInMp4(audioCodec)) && (!videoCodec || isCodecSupportedInMp4(videoCodec));\n    });\n\n    if (data.audioTracks) {\n      audioTracks = data.audioTracks.filter(function (track) {\n        return !track.audioCodec || isCodecSupportedInMp4(track.audioCodec, 'audio');\n      });\n      // Reassign id's after filtering since they're used as array indices\n      audioTracks.forEach(function (track, index) {\n        track.id = index;\n      });\n    }\n\n    if (levels.length > 0) {\n      // start bitrate is the first bitrate of the manifest\n      bitrateStart = levels[0].bitrate;\n      // sort level on bitrate\n      levels.sort(function (a, b) {\n        return a.bitrate - b.bitrate;\n      });\n      this._levels = levels;\n      // find index of first level in sorted levels\n      for (var i = 0; i < levels.length; i++) {\n        if (levels[i].bitrate === bitrateStart) {\n          this._firstLevel = i;\n          logger[\"b\" /* logger */].log('manifest loaded,' + levels.length + ' level(s) found, first bitrate:' + bitrateStart);\n          break;\n        }\n      }\n      this.hls.trigger(events[\"a\" /* default */].MANIFEST_PARSED, {\n        levels: levels,\n        audioTracks: audioTracks,\n        firstLevel: this._firstLevel,\n        stats: data.stats,\n        audio: audioCodecFound,\n        video: videoCodecFound,\n        altAudio: audioTracks.length > 0 && videoCodecFound\n      });\n    } else {\n      this.hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].MANIFEST_INCOMPATIBLE_CODECS_ERROR,\n        fatal: true,\n        url: this.hls.url,\n        reason: 'no level with compatible codecs found in manifest'\n      });\n    }\n  };\n\n  LevelController.prototype.setLevelInternal = function setLevelInternal(newLevel) {\n    var levels = this._levels;\n    var hls = this.hls;\n    // check if level idx is valid\n    if (newLevel >= 0 && newLevel < levels.length) {\n      // stopping live reloading timer if any\n      this.clearTimer();\n      if (this.currentLevelIndex !== newLevel) {\n        logger[\"b\" /* logger */].log('switching to level ' + newLevel);\n        this.currentLevelIndex = newLevel;\n        var levelProperties = levels[newLevel];\n        levelProperties.level = newLevel;\n        hls.trigger(events[\"a\" /* default */].LEVEL_SWITCHING, levelProperties);\n      }\n      var level = levels[newLevel];\n      var levelDetails = level.details;\n\n      // check if we need to load playlist for this level\n      if (!levelDetails || levelDetails.live) {\n        // level not retrieved yet, or live playlist we need to (re)load it\n        var urlId = level.urlId;\n        hls.trigger(events[\"a\" /* default */].LEVEL_LOADING, { url: level.url[urlId], level: newLevel, id: urlId });\n      }\n    } else {\n      // invalid level id given, trigger error\n      hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].OTHER_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].LEVEL_SWITCH_ERROR,\n        level: newLevel,\n        fatal: false,\n        reason: 'invalid level idx'\n      });\n    }\n  };\n\n  LevelController.prototype.onError = function onError(data) {\n    if (data.fatal) {\n      if (data.type === errors[\"b\" /* ErrorTypes */].NETWORK_ERROR) {\n        this.clearTimer();\n      }\n\n      return;\n    }\n\n    var levelError = false,\n        fragmentError = false;\n    var levelIndex = void 0;\n\n    // try to recover not fatal errors\n    switch (data.details) {\n      case errors[\"a\" /* ErrorDetails */].FRAG_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].FRAG_LOAD_TIMEOUT:\n      case errors[\"a\" /* ErrorDetails */].KEY_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].KEY_LOAD_TIMEOUT:\n        levelIndex = data.frag.level;\n        fragmentError = true;\n        break;\n      case errors[\"a\" /* ErrorDetails */].LEVEL_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].LEVEL_LOAD_TIMEOUT:\n        levelIndex = data.context.level;\n        levelError = true;\n        break;\n      case errors[\"a\" /* ErrorDetails */].REMUX_ALLOC_ERROR:\n        levelIndex = data.level;\n        levelError = true;\n        break;\n    }\n\n    if (levelIndex !== undefined) {\n      this.recoverLevel(data, levelIndex, levelError, fragmentError);\n    }\n  };\n\n  /**\n   * Switch to a redundant stream if any available.\n   * If redundant stream is not available, emergency switch down if ABR mode is enabled.\n   *\n   * @param {Object} errorEvent\n   * @param {Number} levelIndex current level index\n   * @param {Boolean} levelError\n   * @param {Boolean} fragmentError\n   */\n  // FIXME Find a better abstraction where fragment/level retry management is well decoupled\n\n\n  LevelController.prototype.recoverLevel = function recoverLevel(errorEvent, levelIndex, levelError, fragmentError) {\n    var _this2 = this;\n\n    var config = this.hls.config;\n    var errorDetails = errorEvent.details;\n\n    var level = this._levels[levelIndex];\n    var redundantLevels = void 0,\n        delay = void 0,\n        nextLevel = void 0;\n\n    level.loadError++;\n    level.fragmentError = fragmentError;\n\n    if (levelError) {\n      if (this.levelRetryCount + 1 <= config.levelLoadingMaxRetry) {\n        // exponential backoff capped to max retry timeout\n        delay = Math.min(Math.pow(2, this.levelRetryCount) * config.levelLoadingRetryDelay, config.levelLoadingMaxRetryTimeout);\n        // Schedule level reload\n        this.timer = setTimeout(function () {\n          return _this2.loadLevel();\n        }, delay);\n        // boolean used to inform stream controller not to switch back to IDLE on non fatal error\n        errorEvent.levelRetry = true;\n        this.levelRetryCount++;\n        logger[\"b\" /* logger */].warn('level controller, ' + errorDetails + ', retry in ' + delay + ' ms, current retry count is ' + this.levelRetryCount);\n      } else {\n        logger[\"b\" /* logger */].error('level controller, cannot recover from ' + errorDetails + ' error');\n        this.currentLevelIndex = null;\n        // stopping live reloading timer if any\n        this.clearTimer();\n        // switch error to fatal\n        errorEvent.fatal = true;\n        return;\n      }\n    }\n\n    // Try any redundant streams if available for both errors: level and fragment\n    // If level.loadError reaches redundantLevels it means that we tried them all, no hope  => let's switch down\n    if (levelError || fragmentError) {\n      redundantLevels = level.url.length;\n\n      if (redundantLevels > 1 && level.loadError < redundantLevels) {\n        level.urlId = (level.urlId + 1) % redundantLevels;\n        level.details = undefined;\n\n        logger[\"b\" /* logger */].warn('level controller, ' + errorDetails + ' for level ' + levelIndex + ': switching to redundant URL-id ' + level.urlId);\n\n        // console.log('Current audio track group ID:', this.hls.audioTracks[this.hls.audioTrack].groupId);\n        // console.log('New video quality level audio group id:', level.attrs.AUDIO);\n      } else {\n        // Search for available level\n        if (this.manualLevelIndex === -1) {\n          // When lowest level has been reached, let's start hunt from the top\n          nextLevel = levelIndex === 0 ? this._levels.length - 1 : levelIndex - 1;\n          logger[\"b\" /* logger */].warn('level controller, ' + errorDetails + ': switch to ' + nextLevel);\n          this.hls.nextAutoLevel = this.currentLevelIndex = nextLevel;\n        } else if (fragmentError) {\n          // Allow fragment retry as long as configuration allows.\n          // reset this._level so that another call to set level() will trigger again a frag load\n          logger[\"b\" /* logger */].warn('level controller, ' + errorDetails + ': reload a fragment');\n          this.currentLevelIndex = null;\n        }\n      }\n    }\n  };\n\n  // reset errors on the successful load of a fragment\n\n\n  LevelController.prototype.onFragLoaded = function onFragLoaded(_ref3) {\n    var frag = _ref3.frag;\n\n    if (frag !== undefined && frag.type === 'main') {\n      var level = this._levels[frag.level];\n      if (level !== undefined) {\n        level.fragmentError = false;\n        level.loadError = 0;\n        this.levelRetryCount = 0;\n      }\n    }\n  };\n\n  LevelController.prototype.onLevelLoaded = function onLevelLoaded(data) {\n    var _this3 = this;\n\n    var levelId = data.level;\n    // only process level loaded events matching with expected level\n    if (levelId !== this.currentLevelIndex) {\n      return;\n    }\n\n    var curLevel = this._levels[levelId];\n    // reset level load error counter on successful level loaded only if there is no issues with fragments\n    if (!curLevel.fragmentError) {\n      curLevel.loadError = 0;\n      this.levelRetryCount = 0;\n    }\n    var newDetails = data.details;\n    // if current playlist is a live playlist, arm a timer to reload it\n    if (newDetails.live) {\n      var targetdurationMs = 1000 * (newDetails.averagetargetduration ? newDetails.averagetargetduration : newDetails.targetduration);\n      var reloadInterval = targetdurationMs,\n          curDetails = curLevel.details;\n      if (curDetails && newDetails.endSN === curDetails.endSN) {\n        // follow HLS Spec, If the client reloads a Playlist file and finds that it has not\n        // changed then it MUST wait for a period of one-half the target\n        // duration before retrying.\n        reloadInterval /= 2;\n        logger[\"b\" /* logger */].log('same live playlist, reload twice faster');\n      }\n      // decrement reloadInterval with level loading delay\n      reloadInterval -= level_controller_performance.now() - data.stats.trequest;\n      // in any case, don't reload more than half of target duration\n      reloadInterval = Math.max(targetdurationMs / 2, Math.round(reloadInterval));\n      logger[\"b\" /* logger */].log('live playlist, reload in ' + Math.round(reloadInterval) + ' ms');\n      this.timer = setTimeout(function () {\n        return _this3.loadLevel();\n      }, reloadInterval);\n    } else {\n      this.clearTimer();\n    }\n  };\n\n  LevelController.prototype.onAudioTrackSwitched = function onAudioTrackSwitched(data) {\n    var audioGroupId = this.hls.audioTracks[data.id].groupId;\n\n    var currentLevel = this.hls.levels[this.currentLevelIndex];\n    if (!currentLevel) {\n      return;\n    }\n\n    if (currentLevel.audioGroupIds) {\n      var urlId = currentLevel.audioGroupIds.findIndex(function (groupId) {\n        return groupId === audioGroupId;\n      });\n      if (urlId !== currentLevel.urlId) {\n        currentLevel.urlId = urlId;\n        this.startLoad();\n      }\n    }\n  };\n\n  LevelController.prototype.loadLevel = function loadLevel() {\n    logger[\"b\" /* logger */].debug('call to loadLevel');\n\n    if (this.currentLevelIndex !== null && this.canload) {\n      var levelObject = this._levels[this.currentLevelIndex];\n\n      if ((typeof levelObject === 'undefined' ? 'undefined' : level_controller__typeof(levelObject)) === 'object' && levelObject.url.length > 0) {\n        var level = this.currentLevelIndex;\n        var id = levelObject.urlId;\n        var url = levelObject.url[id];\n\n        logger[\"b\" /* logger */].log('Attempt loading level index ' + level + ' with URL-id ' + id);\n\n        // console.log('Current audio track group ID:', this.hls.audioTracks[this.hls.audioTrack].groupId);\n        // console.log('New video quality level audio group id:', levelObject.attrs.AUDIO, level);\n\n        this.hls.trigger(events[\"a\" /* default */].LEVEL_LOADING, { url: url, level: level, id: id });\n      }\n    }\n  };\n\n  level_controller__createClass(LevelController, [{\n    key: 'levels',\n    get: function get() {\n      return this._levels;\n    }\n  }, {\n    key: 'level',\n    get: function get() {\n      return this.currentLevelIndex;\n    },\n    set: function set(newLevel) {\n      var levels = this._levels;\n      if (levels) {\n        newLevel = Math.min(newLevel, levels.length - 1);\n        if (this.currentLevelIndex !== newLevel || !levels[newLevel].details) {\n          this.setLevelInternal(newLevel);\n        }\n      }\n    }\n  }, {\n    key: 'manualLevel',\n    get: function get() {\n      return this.manualLevelIndex;\n    },\n    set: function set(newLevel) {\n      this.manualLevelIndex = newLevel;\n      if (this._startLevel === undefined) {\n        this._startLevel = newLevel;\n      }\n\n      if (newLevel !== -1) {\n        this.level = newLevel;\n      }\n    }\n  }, {\n    key: 'firstLevel',\n    get: function get() {\n      return this._firstLevel;\n    },\n    set: function set(newLevel) {\n      this._firstLevel = newLevel;\n    }\n  }, {\n    key: 'startLevel',\n    get: function get() {\n      // hls.startLevel takes precedence over config.startLevel\n      // if none of these values are defined, fallback on this._firstLevel (first quality level appearing in variant manifest)\n      if (this._startLevel === undefined) {\n        var configStartLevel = this.hls.config.startLevel;\n        if (configStartLevel !== undefined) {\n          return configStartLevel;\n        } else {\n          return this._firstLevel;\n        }\n      } else {\n        return this._startLevel;\n      }\n    },\n    set: function set(newLevel) {\n      this._startLevel = newLevel;\n    }\n  }, {\n    key: 'nextLoadLevel',\n    get: function get() {\n      if (this.manualLevelIndex !== -1) {\n        return this.manualLevelIndex;\n      } else {\n        return this.hls.nextAutoLevel;\n      }\n    },\n    set: function set(nextLevel) {\n      this.level = nextLevel;\n      if (this.manualLevelIndex === -1) {\n        this.hls.nextAutoLevel = nextLevel;\n      }\n    }\n  }]);\n\n  return LevelController;\n}(event_handler);\n\n/* harmony default export */ var level_controller = (level_controller_LevelController);\n// EXTERNAL MODULE: ./src/demux/id3.js\nvar id3 = __webpack_require__(6);\n\n// CONCATENATED MODULE: ./src/utils/texttrack-utils.js\n\nfunction sendAddTrackEvent(track, videoEl) {\n  var event = null;\n  try {\n    event = new window.Event('addtrack');\n  } catch (err) {\n    // for IE11\n    event = document.createEvent('Event');\n    event.initEvent('addtrack', false, false);\n  }\n  event.track = track;\n  videoEl.dispatchEvent(event);\n}\n\nfunction clearCurrentCues(track) {\n  if (track && track.cues) {\n    while (track.cues.length > 0) {\n      track.removeCue(track.cues[0]);\n    }\n  }\n}\n// CONCATENATED MODULE: ./src/controller/id3-track-controller.js\nfunction id3_track_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction id3_track_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction id3_track_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * id3 metadata track controller\n*/\n\n\n\n\n\n\nvar id3_track_controller_ID3TrackController = function (_EventHandler) {\n  id3_track_controller__inherits(ID3TrackController, _EventHandler);\n\n  function ID3TrackController(hls) {\n    id3_track_controller__classCallCheck(this, ID3TrackController);\n\n    var _this = id3_track_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHED, events[\"a\" /* default */].MEDIA_DETACHING, events[\"a\" /* default */].FRAG_PARSING_METADATA));\n\n    _this.id3Track = undefined;\n    _this.media = undefined;\n    return _this;\n  }\n\n  ID3TrackController.prototype.destroy = function destroy() {\n    event_handler.prototype.destroy.call(this);\n  };\n\n  // Add ID3 metatadata text track.\n\n\n  ID3TrackController.prototype.onMediaAttached = function onMediaAttached(data) {\n    this.media = data.media;\n    if (!this.media) {}\n  };\n\n  ID3TrackController.prototype.onMediaDetaching = function onMediaDetaching() {\n    clearCurrentCues(this.id3Track);\n    this.id3Track = undefined;\n    this.media = undefined;\n  };\n\n  ID3TrackController.prototype.getID3Track = function getID3Track(textTracks) {\n    for (var i = 0; i < textTracks.length; i++) {\n      var textTrack = textTracks[i];\n      if (textTrack.kind === 'metadata' && textTrack.label === 'id3') {\n        // send 'addtrack' when reusing the textTrack for metadata,\n        // same as what we do for captions\n        sendAddTrackEvent(textTrack, this.media);\n\n        return textTrack;\n      }\n    }\n    return this.media.addTextTrack('metadata', 'id3');\n  };\n\n  ID3TrackController.prototype.onFragParsingMetadata = function onFragParsingMetadata(data) {\n    var fragment = data.frag;\n    var samples = data.samples;\n\n    // create track dynamically\n    if (!this.id3Track) {\n      this.id3Track = this.getID3Track(this.media.textTracks);\n      this.id3Track.mode = 'hidden';\n    }\n\n    // Attempt to recreate Safari functionality by creating\n    // WebKitDataCue objects when available and store the decoded\n    // ID3 data in the value property of the cue\n    var Cue = window.WebKitDataCue || window.VTTCue || window.TextTrackCue;\n\n    for (var i = 0; i < samples.length; i++) {\n      var frames = id3[\"a\" /* default */].getID3Frames(samples[i].data);\n      if (frames) {\n        var startTime = samples[i].pts;\n        var endTime = i < samples.length - 1 ? samples[i + 1].pts : fragment.endPTS;\n\n        // Give a slight bump to the endTime if it's equal to startTime to avoid a SyntaxError in IE\n        if (startTime === endTime) {\n          endTime += 0.0001;\n        }\n\n        for (var j = 0; j < frames.length; j++) {\n          var frame = frames[j];\n          // Safari doesn't put the timestamp frame in the TextTrack\n          if (!id3[\"a\" /* default */].isTimeStampFrame(frame)) {\n            var cue = new Cue(startTime, endTime, '');\n            cue.value = frame;\n            this.id3Track.addCue(cue);\n          }\n        }\n      }\n    }\n  };\n\n  return ID3TrackController;\n}(event_handler);\n\n/* harmony default export */ var id3_track_controller = (id3_track_controller_ID3TrackController);\n// CONCATENATED MODULE: ./src/is-supported.js\n\n\nfunction is_supported_isSupported() {\n  var mediaSource = getMediaSource();\n  var sourceBuffer = window.SourceBuffer || window.WebKitSourceBuffer;\n  var isTypeSupported = mediaSource && typeof mediaSource.isTypeSupported === 'function' && mediaSource.isTypeSupported('video/mp4; codecs=\"avc1.42E01E,mp4a.40.2\"');\n\n  // if SourceBuffer is exposed ensure its API is valid\n  // safari and old version of Chrome doe not expose SourceBuffer globally so checking SourceBuffer.prototype is impossible\n  var sourceBufferValidAPI = !sourceBuffer || sourceBuffer.prototype && typeof sourceBuffer.prototype.appendBuffer === 'function' && typeof sourceBuffer.prototype.remove === 'function';\n  return !!isTypeSupported && !!sourceBufferValidAPI;\n}\n// CONCATENATED MODULE: ./src/utils/ewma.js\nfunction ewma__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*\n * compute an Exponential Weighted moving average\n * - https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average\n *  - heavily inspired from shaka-player\n */\n\nvar EWMA = function () {\n  //  About half of the estimated value will be from the last |halfLife| samples by weight.\n  function EWMA(halfLife) {\n    ewma__classCallCheck(this, EWMA);\n\n    // Larger values of alpha expire historical data more slowly.\n    this.alpha_ = halfLife ? Math.exp(Math.log(0.5) / halfLife) : 0;\n    this.estimate_ = 0;\n    this.totalWeight_ = 0;\n  }\n\n  EWMA.prototype.sample = function sample(weight, value) {\n    var adjAlpha = Math.pow(this.alpha_, weight);\n    this.estimate_ = value * (1 - adjAlpha) + adjAlpha * this.estimate_;\n    this.totalWeight_ += weight;\n  };\n\n  EWMA.prototype.getTotalWeight = function getTotalWeight() {\n    return this.totalWeight_;\n  };\n\n  EWMA.prototype.getEstimate = function getEstimate() {\n    if (this.alpha_) {\n      var zeroFactor = 1 - Math.pow(this.alpha_, this.totalWeight_);\n      return this.estimate_ / zeroFactor;\n    } else {\n      return this.estimate_;\n    }\n  };\n\n  return EWMA;\n}();\n\n/* harmony default export */ var ewma = (EWMA);\n// CONCATENATED MODULE: ./src/utils/ewma-bandwidth-estimator.js\nfunction ewma_bandwidth_estimator__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*\n * EWMA Bandwidth Estimator\n *  - heavily inspired from shaka-player\n * Tracks bandwidth samples and estimates available bandwidth.\n * Based on the minimum of two exponentially-weighted moving averages with\n * different half-lives.\n */\n\n\n\nvar ewma_bandwidth_estimator_EwmaBandWidthEstimator = function () {\n  function EwmaBandWidthEstimator(hls, slow, fast, defaultEstimate) {\n    ewma_bandwidth_estimator__classCallCheck(this, EwmaBandWidthEstimator);\n\n    this.hls = hls;\n    this.defaultEstimate_ = defaultEstimate;\n    this.minWeight_ = 0.001;\n    this.minDelayMs_ = 50;\n    this.slow_ = new ewma(slow);\n    this.fast_ = new ewma(fast);\n  }\n\n  EwmaBandWidthEstimator.prototype.sample = function sample(durationMs, numBytes) {\n    durationMs = Math.max(durationMs, this.minDelayMs_);\n    var bandwidth = 8000 * numBytes / durationMs,\n\n    // console.log('instant bw:'+ Math.round(bandwidth));\n    // we weight sample using loading duration....\n    weight = durationMs / 1000;\n    this.fast_.sample(weight, bandwidth);\n    this.slow_.sample(weight, bandwidth);\n  };\n\n  EwmaBandWidthEstimator.prototype.canEstimate = function canEstimate() {\n    var fast = this.fast_;\n    return fast && fast.getTotalWeight() >= this.minWeight_;\n  };\n\n  EwmaBandWidthEstimator.prototype.getEstimate = function getEstimate() {\n    if (this.canEstimate()) {\n      // console.log('slow estimate:'+ Math.round(this.slow_.getEstimate()));\n      // console.log('fast estimate:'+ Math.round(this.fast_.getEstimate()));\n      // Take the minimum of these two estimates.  This should have the effect of\n      // adapting down quickly, but up more slowly.\n      return Math.min(this.fast_.getEstimate(), this.slow_.getEstimate());\n    } else {\n      return this.defaultEstimate_;\n    }\n  };\n\n  EwmaBandWidthEstimator.prototype.destroy = function destroy() {};\n\n  return EwmaBandWidthEstimator;\n}();\n\n/* harmony default export */ var ewma_bandwidth_estimator = (ewma_bandwidth_estimator_EwmaBandWidthEstimator);\n// CONCATENATED MODULE: ./src/controller/abr-controller.js\n\n\nvar abr_controller__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction abr_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction abr_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction abr_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * simple ABR Controller\n *  - compute next level based on last fragment bw heuristics\n *  - implement an abandon rules triggered if we have less than 2 frag buffered and if computed bw shows that we risk buffer stalling\n */\n\n\n\n\n\n\n\n\nvar abr_controller__window = window,\n    abr_controller_performance = abr_controller__window.performance;\n\nvar abr_controller_AbrController = function (_EventHandler) {\n  abr_controller__inherits(AbrController, _EventHandler);\n\n  function AbrController(hls) {\n    abr_controller__classCallCheck(this, AbrController);\n\n    var _this = abr_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].FRAG_LOADING, events[\"a\" /* default */].FRAG_LOADED, events[\"a\" /* default */].FRAG_BUFFERED, events[\"a\" /* default */].ERROR));\n\n    _this.lastLoadedFragLevel = 0;\n    _this._nextAutoLevel = -1;\n    _this.hls = hls;\n    _this.timer = null;\n    _this._bwEstimator = null;\n    _this.onCheck = _this._abandonRulesCheck.bind(_this);\n    return _this;\n  }\n\n  AbrController.prototype.destroy = function destroy() {\n    this.clearTimer();\n    event_handler.prototype.destroy.call(this);\n  };\n\n  AbrController.prototype.onFragLoading = function onFragLoading(data) {\n    var frag = data.frag;\n    if (frag.type === 'main') {\n      if (!this.timer) {\n        this.fragCurrent = frag;\n        this.timer = setInterval(this.onCheck, 100);\n      }\n\n      // lazy init of BwEstimator, rationale is that we use different params for Live/VoD\n      // so we need to wait for stream manifest / playlist type to instantiate it.\n      if (!this._bwEstimator) {\n        var hls = this.hls;\n        var config = hls.config;\n        var level = frag.level;\n        var isLive = hls.levels[level].details.live;\n\n        var ewmaFast = void 0,\n            ewmaSlow = void 0;\n        if (isLive) {\n          ewmaFast = config.abrEwmaFastLive;\n          ewmaSlow = config.abrEwmaSlowLive;\n        } else {\n          ewmaFast = config.abrEwmaFastVoD;\n          ewmaSlow = config.abrEwmaSlowVoD;\n        }\n        this._bwEstimator = new ewma_bandwidth_estimator(hls, ewmaSlow, ewmaFast, config.abrEwmaDefaultEstimate);\n      }\n    }\n  };\n\n  AbrController.prototype._abandonRulesCheck = function _abandonRulesCheck() {\n    /*\n      monitor fragment retrieval time...\n      we compute expected time of arrival of the complete fragment.\n      we compare it to expected time of buffer starvation\n    */\n    var hls = this.hls;\n    var video = hls.media;\n    var frag = this.fragCurrent;\n\n    if (!frag) {\n      return;\n    }\n\n    var loader = frag.loader;\n    var minAutoLevel = hls.minAutoLevel;\n\n    // if loader has been destroyed or loading has been aborted, stop timer and return\n    if (!loader || loader.stats && loader.stats.aborted) {\n      logger[\"b\" /* logger */].warn('frag loader destroy or aborted, disarm abandonRules');\n      this.clearTimer();\n      // reset forced auto level value so that next level will be selected\n      this._nextAutoLevel = -1;\n      return;\n    }\n    var stats = loader.stats;\n    /* only monitor frag retrieval time if\n    (video not paused OR first fragment being loaded(ready state === HAVE_NOTHING = 0)) AND autoswitching enabled AND not lowest level (=> means that we have several levels) */\n    if (video && stats && (!video.paused && video.playbackRate !== 0 || !video.readyState) && frag.autoLevel && frag.level) {\n      var requestDelay = abr_controller_performance.now() - stats.trequest,\n          playbackRate = Math.abs(video.playbackRate);\n      // monitor fragment load progress after half of expected fragment duration,to stabilize bitrate\n      if (requestDelay > 500 * frag.duration / playbackRate) {\n        var levels = hls.levels,\n            loadRate = Math.max(1, stats.bw ? stats.bw / 8 : stats.loaded * 1000 / requestDelay),\n            // byte/s; at least 1 byte/s to avoid division by zero\n        // compute expected fragment length using frag duration and level bitrate. also ensure that expected len is gte than already loaded size\n        level = levels[frag.level],\n            levelBitrate = level.realBitrate ? Math.max(level.realBitrate, level.bitrate) : level.bitrate,\n            expectedLen = stats.total ? stats.total : Math.max(stats.loaded, Math.round(frag.duration * levelBitrate / 8)),\n            pos = video.currentTime,\n            fragLoadedDelay = (expectedLen - stats.loaded) / loadRate,\n            bufferStarvationDelay = (BufferHelper.bufferInfo(video, pos, hls.config.maxBufferHole).end - pos) / playbackRate;\n        // consider emergency switch down only if we have less than 2 frag buffered AND\n        // time to finish loading current fragment is bigger than buffer starvation delay\n        // ie if we risk buffer starvation if bw does not increase quickly\n        if (bufferStarvationDelay < 2 * frag.duration / playbackRate && fragLoadedDelay > bufferStarvationDelay) {\n          var fragLevelNextLoadedDelay = void 0,\n              nextLoadLevel = void 0;\n          // lets iterate through lower level and try to find the biggest one that could avoid rebuffering\n          // we start from current level - 1 and we step down , until we find a matching level\n          for (nextLoadLevel = frag.level - 1; nextLoadLevel > minAutoLevel; nextLoadLevel--) {\n            // compute time to load next fragment at lower level\n            // 0.8 : consider only 80% of current bw to be conservative\n            // 8 = bits per byte (bps/Bps)\n            var levelNextBitrate = levels[nextLoadLevel].realBitrate ? Math.max(levels[nextLoadLevel].realBitrate, levels[nextLoadLevel].bitrate) : levels[nextLoadLevel].bitrate;\n            fragLevelNextLoadedDelay = frag.duration * levelNextBitrate / (8 * 0.8 * loadRate);\n            if (fragLevelNextLoadedDelay < bufferStarvationDelay) {\n              // we found a lower level that be rebuffering free with current estimated bw !\n              break;\n            }\n          }\n          // only emergency switch down if it takes less time to load new fragment at lowest level instead\n          // of finishing loading current one ...\n          if (fragLevelNextLoadedDelay < fragLoadedDelay) {\n            logger[\"b\" /* logger */].warn('loading too slow, abort fragment loading and switch to level ' + nextLoadLevel + ':fragLoadedDelay[' + nextLoadLevel + ']<fragLoadedDelay[' + (frag.level - 1) + '];bufferStarvationDelay:' + fragLevelNextLoadedDelay.toFixed(1) + '<' + fragLoadedDelay.toFixed(1) + ':' + bufferStarvationDelay.toFixed(1));\n            // force next load level in auto mode\n            hls.nextLoadLevel = nextLoadLevel;\n            // update bw estimate for this fragment before cancelling load (this will help reducing the bw)\n            this._bwEstimator.sample(requestDelay, stats.loaded);\n            // abort fragment loading\n            loader.abort();\n            // stop abandon rules timer\n            this.clearTimer();\n            hls.trigger(events[\"a\" /* default */].FRAG_LOAD_EMERGENCY_ABORTED, { frag: frag, stats: stats });\n          }\n        }\n      }\n    }\n  };\n\n  AbrController.prototype.onFragLoaded = function onFragLoaded(data) {\n    var frag = data.frag;\n    if (frag.type === 'main' && Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.sn)) {\n      // stop monitoring bw once frag loaded\n      this.clearTimer();\n      // store level id after successful fragment load\n      this.lastLoadedFragLevel = frag.level;\n      // reset forced auto level value so that next level will be selected\n      this._nextAutoLevel = -1;\n\n      // compute level average bitrate\n      if (this.hls.config.abrMaxWithRealBitrate) {\n        var level = this.hls.levels[frag.level];\n        var loadedBytes = (level.loaded ? level.loaded.bytes : 0) + data.stats.loaded;\n        var loadedDuration = (level.loaded ? level.loaded.duration : 0) + data.frag.duration;\n        level.loaded = { bytes: loadedBytes, duration: loadedDuration };\n        level.realBitrate = Math.round(8 * loadedBytes / loadedDuration);\n      }\n      // if fragment has been loaded to perform a bitrate test,\n      if (data.frag.bitrateTest) {\n        var stats = data.stats;\n        stats.tparsed = stats.tbuffered = stats.tload;\n        this.onFragBuffered(data);\n      }\n    }\n  };\n\n  AbrController.prototype.onFragBuffered = function onFragBuffered(data) {\n    var stats = data.stats;\n    var frag = data.frag;\n    // only update stats on first frag buffering\n    // if same frag is loaded multiple times, it might be in browser cache, and loaded quickly\n    // and leading to wrong bw estimation\n    // on bitrate test, also only update stats once (if tload = tbuffered == on FRAG_LOADED)\n    if (stats.aborted !== true && frag.type === 'main' && Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.sn) && (!frag.bitrateTest || stats.tload === stats.tbuffered)) {\n      // use tparsed-trequest instead of tbuffered-trequest to compute fragLoadingProcessing; rationale is that  buffer appending only happens once media is attached\n      // in case we use config.startFragPrefetch while media is not attached yet, fragment might be parsed while media not attached yet, but it will only be buffered on media attached\n      // as a consequence it could happen really late in the process. meaning that appending duration might appears huge ... leading to underestimated throughput estimation\n      var fragLoadingProcessingMs = stats.tparsed - stats.trequest;\n      logger[\"b\" /* logger */].log('latency/loading/parsing/append/kbps:' + Math.round(stats.tfirst - stats.trequest) + '/' + Math.round(stats.tload - stats.tfirst) + '/' + Math.round(stats.tparsed - stats.tload) + '/' + Math.round(stats.tbuffered - stats.tparsed) + '/' + Math.round(8 * stats.loaded / (stats.tbuffered - stats.trequest)));\n      this._bwEstimator.sample(fragLoadingProcessingMs, stats.loaded);\n      stats.bwEstimate = this._bwEstimator.getEstimate();\n      // if fragment has been loaded to perform a bitrate test, (hls.startLevel = -1), store bitrate test delay duration\n      if (frag.bitrateTest) {\n        this.bitrateTestDelay = fragLoadingProcessingMs / 1000;\n      } else {\n        this.bitrateTestDelay = 0;\n      }\n    }\n  };\n\n  AbrController.prototype.onError = function onError(data) {\n    // stop timer in case of frag loading error\n    switch (data.details) {\n      case errors[\"a\" /* ErrorDetails */].FRAG_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].FRAG_LOAD_TIMEOUT:\n        this.clearTimer();\n        break;\n      default:\n        break;\n    }\n  };\n\n  AbrController.prototype.clearTimer = function clearTimer() {\n    clearInterval(this.timer);\n    this.timer = null;\n  };\n\n  // return next auto level\n\n\n  AbrController.prototype._findBestLevel = function _findBestLevel(currentLevel, currentFragDuration, currentBw, minAutoLevel, maxAutoLevel, maxFetchDuration, bwFactor, bwUpFactor, levels) {\n    for (var i = maxAutoLevel; i >= minAutoLevel; i--) {\n      var levelInfo = levels[i];\n\n      if (!levelInfo) {\n        continue;\n      }\n\n      var levelDetails = levelInfo.details,\n          avgDuration = levelDetails ? levelDetails.totalduration / levelDetails.fragments.length : currentFragDuration,\n          live = levelDetails ? levelDetails.live : false,\n          adjustedbw = void 0;\n      // follow algorithm captured from stagefright :\n      // https://android.googlesource.com/platform/frameworks/av/+/master/media/libstagefright/httplive/LiveSession.cpp\n      // Pick the highest bandwidth stream below or equal to estimated bandwidth.\n      // consider only 80% of the available bandwidth, but if we are switching up,\n      // be even more conservative (70%) to avoid overestimating and immediately\n      // switching back.\n      if (i <= currentLevel) {\n        adjustedbw = bwFactor * currentBw;\n      } else {\n        adjustedbw = bwUpFactor * currentBw;\n      }\n\n      var bitrate = levels[i].realBitrate ? Math.max(levels[i].realBitrate, levels[i].bitrate) : levels[i].bitrate,\n          fetchDuration = bitrate * avgDuration / adjustedbw;\n\n      logger[\"b\" /* logger */].trace('level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: ' + i + '/' + Math.round(adjustedbw) + '/' + bitrate + '/' + avgDuration + '/' + maxFetchDuration + '/' + fetchDuration);\n      // if adjusted bw is greater than level bitrate AND\n      if (adjustedbw > bitrate && (\n      // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches\n      // we don't account for max Fetch Duration for live streams, this is to avoid switching down when near the edge of live sliding window ...\n      // special case to support startLevel = -1 (bitrateTest) on live streams : in that case we should not exit loop so that _findBestLevel will return -1\n      !fetchDuration || live && !this.bitrateTestDelay || fetchDuration < maxFetchDuration)) {\n        // as we are looping from highest to lowest, this will return the best achievable quality level\n        return i;\n      }\n    }\n    // not enough time budget even with quality level 0 ... rebuffering might happen\n    return -1;\n  };\n\n  abr_controller__createClass(AbrController, [{\n    key: 'nextAutoLevel',\n    get: function get() {\n      var forcedAutoLevel = this._nextAutoLevel;\n      var bwEstimator = this._bwEstimator;\n      // in case next auto level has been forced, and bw not available or not reliable, return forced value\n      if (forcedAutoLevel !== -1 && (!bwEstimator || !bwEstimator.canEstimate())) {\n        return forcedAutoLevel;\n      }\n\n      // compute next level using ABR logic\n      var nextABRAutoLevel = this._nextABRAutoLevel;\n      // if forced auto level has been defined, use it to cap ABR computed quality level\n      if (forcedAutoLevel !== -1) {\n        nextABRAutoLevel = Math.min(forcedAutoLevel, nextABRAutoLevel);\n      }\n\n      return nextABRAutoLevel;\n    },\n    set: function set(nextLevel) {\n      this._nextAutoLevel = nextLevel;\n    }\n  }, {\n    key: '_nextABRAutoLevel',\n    get: function get() {\n      var hls = this.hls,\n          maxAutoLevel = hls.maxAutoLevel,\n          levels = hls.levels,\n          config = hls.config,\n          minAutoLevel = hls.minAutoLevel;\n      var video = hls.media,\n          currentLevel = this.lastLoadedFragLevel,\n          currentFragDuration = this.fragCurrent ? this.fragCurrent.duration : 0,\n          pos = video ? video.currentTime : 0,\n\n      // playbackRate is the absolute value of the playback rate; if video.playbackRate is 0, we use 1 to load as\n      // if we're playing back at the normal rate.\n      playbackRate = video && video.playbackRate !== 0 ? Math.abs(video.playbackRate) : 1.0,\n          avgbw = this._bwEstimator ? this._bwEstimator.getEstimate() : config.abrEwmaDefaultEstimate,\n\n      // bufferStarvationDelay is the wall-clock time left until the playback buffer is exhausted.\n      bufferStarvationDelay = (BufferHelper.bufferInfo(video, pos, config.maxBufferHole).end - pos) / playbackRate;\n\n      // First, look to see if we can find a level matching with our avg bandwidth AND that could also guarantee no rebuffering at all\n      var bestLevel = this._findBestLevel(currentLevel, currentFragDuration, avgbw, minAutoLevel, maxAutoLevel, bufferStarvationDelay, config.abrBandWidthFactor, config.abrBandWidthUpFactor, levels);\n      if (bestLevel >= 0) {\n        return bestLevel;\n      } else {\n        logger[\"b\" /* logger */].trace('rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering');\n        // not possible to get rid of rebuffering ... let's try to find level that will guarantee less than maxStarvationDelay of rebuffering\n        // if no matching level found, logic will return 0\n        var maxStarvationDelay = currentFragDuration ? Math.min(currentFragDuration, config.maxStarvationDelay) : config.maxStarvationDelay,\n            bwFactor = config.abrBandWidthFactor,\n            bwUpFactor = config.abrBandWidthUpFactor;\n        if (bufferStarvationDelay === 0) {\n          // in case buffer is empty, let's check if previous fragment was loaded to perform a bitrate test\n          var bitrateTestDelay = this.bitrateTestDelay;\n          if (bitrateTestDelay) {\n            // if it is the case, then we need to adjust our max starvation delay using maxLoadingDelay config value\n            // max video loading delay used in  automatic start level selection :\n            // in that mode ABR controller will ensure that video loading time (ie the time to fetch the first fragment at lowest quality level +\n            // the time to fetch the fragment at the appropriate quality level is less than ```maxLoadingDelay``` )\n            // cap maxLoadingDelay and ensure it is not bigger 'than bitrate test' frag duration\n            var maxLoadingDelay = currentFragDuration ? Math.min(currentFragDuration, config.maxLoadingDelay) : config.maxLoadingDelay;\n            maxStarvationDelay = maxLoadingDelay - bitrateTestDelay;\n            logger[\"b\" /* logger */].trace('bitrate test took ' + Math.round(1000 * bitrateTestDelay) + 'ms, set first fragment max fetchDuration to ' + Math.round(1000 * maxStarvationDelay) + ' ms');\n            // don't use conservative factor on bitrate test\n            bwFactor = bwUpFactor = 1;\n          }\n        }\n        bestLevel = this._findBestLevel(currentLevel, currentFragDuration, avgbw, minAutoLevel, maxAutoLevel, bufferStarvationDelay + maxStarvationDelay, bwFactor, bwUpFactor, levels);\n        return Math.max(bestLevel, 0);\n      }\n    }\n  }]);\n\n  return AbrController;\n}(event_handler);\n\n/* harmony default export */ var abr_controller = (abr_controller_AbrController);\n// CONCATENATED MODULE: ./src/controller/buffer-controller.js\n\n\nfunction buffer_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction buffer_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction buffer_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * Buffer Controller\n*/\n\n\n\n\n\n\n\nvar buffer_controller_MediaSource = getMediaSource();\n\nvar buffer_controller_BufferController = function (_EventHandler) {\n  buffer_controller__inherits(BufferController, _EventHandler);\n\n  function BufferController(hls) {\n    buffer_controller__classCallCheck(this, BufferController);\n\n    // the value that we have set mediasource.duration to\n    // (the actual duration may be tweaked slighly by the browser)\n    var _this = buffer_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHING, events[\"a\" /* default */].MEDIA_DETACHING, events[\"a\" /* default */].MANIFEST_PARSED, events[\"a\" /* default */].BUFFER_RESET, events[\"a\" /* default */].BUFFER_APPENDING, events[\"a\" /* default */].BUFFER_CODECS, events[\"a\" /* default */].BUFFER_EOS, events[\"a\" /* default */].BUFFER_FLUSHING, events[\"a\" /* default */].LEVEL_PTS_UPDATED, events[\"a\" /* default */].LEVEL_UPDATED));\n\n    _this._msDuration = null;\n    // the value that we want to set mediaSource.duration to\n    _this._levelDuration = null;\n    // current stream state: true - for live broadcast, false - for VoD content\n    _this._live = null;\n    // cache the self generated object url to detect hijack of video tag\n    _this._objectUrl = null;\n\n    // Source Buffer listeners\n    _this.onsbue = _this.onSBUpdateEnd.bind(_this);\n    _this.onsbe = _this.onSBUpdateError.bind(_this);\n    _this.pendingTracks = {};\n    _this.tracks = {};\n    return _this;\n  }\n\n  BufferController.prototype.destroy = function destroy() {\n    event_handler.prototype.destroy.call(this);\n  };\n\n  BufferController.prototype.onLevelPtsUpdated = function onLevelPtsUpdated(data) {\n    var type = data.type;\n    var audioTrack = this.tracks.audio;\n\n    // Adjusting `SourceBuffer.timestampOffset` (desired point in the timeline where the next frames should be appended)\n    // in Chrome browser when we detect MPEG audio container and time delta between level PTS and `SourceBuffer.timestampOffset`\n    // is greater than 100ms (this is enough to handle seek for VOD or level change for LIVE videos). At the time of change we issue\n    // `SourceBuffer.abort()` and adjusting `SourceBuffer.timestampOffset` if `SourceBuffer.updating` is false or awaiting `updateend`\n    // event if SB is in updating state.\n    // More info here: https://github.com/video-dev/hls.js/issues/332#issuecomment-257986486\n\n    if (type === 'audio' && audioTrack && audioTrack.container === 'audio/mpeg') {\n      // Chrome audio mp3 track\n      var audioBuffer = this.sourceBuffer.audio;\n      var delta = Math.abs(audioBuffer.timestampOffset - data.start);\n\n      // adjust timestamp offset if time delta is greater than 100ms\n      if (delta > 0.1) {\n        var updating = audioBuffer.updating;\n\n        try {\n          audioBuffer.abort();\n        } catch (err) {\n          updating = true;\n          logger[\"b\" /* logger */].warn('can not abort audio buffer: ' + err);\n        }\n\n        if (!updating) {\n          logger[\"b\" /* logger */].warn('change mpeg audio timestamp offset from ' + audioBuffer.timestampOffset + ' to ' + data.start);\n          audioBuffer.timestampOffset = data.start;\n        } else {\n          this.audioTimestampOffset = data.start;\n        }\n      }\n    }\n  };\n\n  BufferController.prototype.onManifestParsed = function onManifestParsed(data) {\n    var audioExpected = data.audio,\n        videoExpected = data.video || data.levels.length && data.altAudio,\n        sourceBufferNb = 0;\n    // in case of alt audio 2 BUFFER_CODECS events will be triggered, one per stream controller\n    // sourcebuffers will be created all at once when the expected nb of tracks will be reached\n    // in case alt audio is not used, only one BUFFER_CODEC event will be fired from main stream controller\n    // it will contain the expected nb of source buffers, no need to compute it\n    if (data.altAudio && (audioExpected || videoExpected)) {\n      sourceBufferNb = (audioExpected ? 1 : 0) + (videoExpected ? 1 : 0);\n      logger[\"b\" /* logger */].log(sourceBufferNb + ' sourceBuffer(s) expected');\n    }\n    this.sourceBufferNb = sourceBufferNb;\n  };\n\n  BufferController.prototype.onMediaAttaching = function onMediaAttaching(data) {\n    var media = this.media = data.media;\n    if (media) {\n      // setup the media source\n      var ms = this.mediaSource = new buffer_controller_MediaSource();\n      // Media Source listeners\n      this.onmso = this.onMediaSourceOpen.bind(this);\n      this.onmse = this.onMediaSourceEnded.bind(this);\n      this.onmsc = this.onMediaSourceClose.bind(this);\n      ms.addEventListener('sourceopen', this.onmso);\n      ms.addEventListener('sourceended', this.onmse);\n      ms.addEventListener('sourceclose', this.onmsc);\n      // link video and media Source\n      media.src = window.URL.createObjectURL(ms);\n      // cache the locally generated object url\n      this._objectUrl = media.src;\n    }\n  };\n\n  BufferController.prototype.onMediaDetaching = function onMediaDetaching() {\n    logger[\"b\" /* logger */].log('media source detaching');\n    var ms = this.mediaSource;\n    if (ms) {\n      if (ms.readyState === 'open') {\n        try {\n          // endOfStream could trigger exception if any sourcebuffer is in updating state\n          // we don't really care about checking sourcebuffer state here,\n          // as we are anyway detaching the MediaSource\n          // let's just avoid this exception to propagate\n          ms.endOfStream();\n        } catch (err) {\n          logger[\"b\" /* logger */].warn('onMediaDetaching:' + err.message + ' while calling endOfStream');\n        }\n      }\n      ms.removeEventListener('sourceopen', this.onmso);\n      ms.removeEventListener('sourceended', this.onmse);\n      ms.removeEventListener('sourceclose', this.onmsc);\n\n      // Detach properly the MediaSource from the HTMLMediaElement as\n      // suggested in https://github.com/w3c/media-source/issues/53.\n      if (this.media) {\n        window.URL.revokeObjectURL(this._objectUrl);\n\n        // clean up video tag src only if it's our own url. some external libraries might\n        // hijack the video tag and change its 'src' without destroying the Hls instance first\n        if (this.media.src === this._objectUrl) {\n          this.media.removeAttribute('src');\n          this.media.load();\n        } else {\n          logger[\"b\" /* logger */].warn('media.src was changed by a third party - skip cleanup');\n        }\n      }\n\n      this.mediaSource = null;\n      this.media = null;\n      this._objectUrl = null;\n      this.pendingTracks = {};\n      this.tracks = {};\n      this.sourceBuffer = {};\n      this.flushRange = [];\n      this.segments = [];\n      this.appended = 0;\n    }\n    this.onmso = this.onmse = this.onmsc = null;\n    this.hls.trigger(events[\"a\" /* default */].MEDIA_DETACHED);\n  };\n\n  BufferController.prototype.onMediaSourceOpen = function onMediaSourceOpen() {\n    logger[\"b\" /* logger */].log('media source opened');\n    this.hls.trigger(events[\"a\" /* default */].MEDIA_ATTACHED, { media: this.media });\n    var mediaSource = this.mediaSource;\n    if (mediaSource) {\n      // once received, don't listen anymore to sourceopen event\n      mediaSource.removeEventListener('sourceopen', this.onmso);\n    }\n    this.checkPendingTracks();\n  };\n\n  BufferController.prototype.checkPendingTracks = function checkPendingTracks() {\n    // if any buffer codecs pending, check if we have enough to create sourceBuffers\n    var pendingTracks = this.pendingTracks,\n        pendingTracksNb = Object.keys(pendingTracks).length;\n    // if any pending tracks and (if nb of pending tracks gt or equal than expected nb or if unknown expected nb)\n    if (pendingTracksNb && (this.sourceBufferNb <= pendingTracksNb || this.sourceBufferNb === 0)) {\n      // ok, let's create them now !\n      this.createSourceBuffers(pendingTracks);\n      this.pendingTracks = {};\n      // append any pending segments now !\n      this.doAppending();\n    }\n  };\n\n  BufferController.prototype.onMediaSourceClose = function onMediaSourceClose() {\n    logger[\"b\" /* logger */].log('media source closed');\n  };\n\n  BufferController.prototype.onMediaSourceEnded = function onMediaSourceEnded() {\n    logger[\"b\" /* logger */].log('media source ended');\n  };\n\n  BufferController.prototype.onSBUpdateEnd = function onSBUpdateEnd() {\n    // update timestampOffset\n    if (this.audioTimestampOffset) {\n      var audioBuffer = this.sourceBuffer.audio;\n      logger[\"b\" /* logger */].warn('change mpeg audio timestamp offset from ' + audioBuffer.timestampOffset + ' to ' + this.audioTimestampOffset);\n      audioBuffer.timestampOffset = this.audioTimestampOffset;\n      delete this.audioTimestampOffset;\n    }\n\n    if (this._needsFlush) {\n      this.doFlush();\n    }\n\n    if (this._needsEos) {\n      this.checkEos();\n    }\n\n    this.appending = false;\n    var parent = this.parent;\n    // count nb of pending segments waiting for appending on this sourcebuffer\n    var pending = this.segments.reduce(function (counter, segment) {\n      return segment.parent === parent ? counter + 1 : counter;\n    }, 0);\n\n    // this.sourceBuffer is better to use than media.buffered as it is closer to the PTS data from the fragments\n    var timeRanges = {};\n    var sourceBuffer = this.sourceBuffer;\n    for (var streamType in sourceBuffer) {\n      timeRanges[streamType] = sourceBuffer[streamType].buffered;\n    }\n\n    this.hls.trigger(events[\"a\" /* default */].BUFFER_APPENDED, { parent: parent, pending: pending, timeRanges: timeRanges });\n    // don't append in flushing mode\n    if (!this._needsFlush) {\n      this.doAppending();\n    }\n\n    this.updateMediaElementDuration();\n  };\n\n  BufferController.prototype.onSBUpdateError = function onSBUpdateError(event) {\n    logger[\"b\" /* logger */].error('sourceBuffer error:', event);\n    // according to http://www.w3.org/TR/media-source/#sourcebuffer-append-error\n    // this error might not always be fatal (it is fatal if decode error is set, in that case\n    // it will be followed by a mediaElement error ...)\n    this.hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].BUFFER_APPENDING_ERROR, fatal: false });\n    // we don't need to do more than that, as accordin to the spec, updateend will be fired just after\n  };\n\n  BufferController.prototype.onBufferReset = function onBufferReset() {\n    var sourceBuffer = this.sourceBuffer;\n    for (var type in sourceBuffer) {\n      var sb = sourceBuffer[type];\n      try {\n        this.mediaSource.removeSourceBuffer(sb);\n        sb.removeEventListener('updateend', this.onsbue);\n        sb.removeEventListener('error', this.onsbe);\n      } catch (err) {}\n    }\n    this.sourceBuffer = {};\n    this.flushRange = [];\n    this.segments = [];\n    this.appended = 0;\n  };\n\n  BufferController.prototype.onBufferCodecs = function onBufferCodecs(tracks) {\n    // if source buffer(s) not created yet, appended buffer tracks in this.pendingTracks\n    // if sourcebuffers already created, do nothing ...\n    if (Object.keys(this.sourceBuffer).length === 0) {\n      for (var trackName in tracks) {\n        this.pendingTracks[trackName] = tracks[trackName];\n      }var mediaSource = this.mediaSource;\n      if (mediaSource && mediaSource.readyState === 'open') {\n        // try to create sourcebuffers if mediasource opened\n        this.checkPendingTracks();\n      }\n    }\n  };\n\n  BufferController.prototype.createSourceBuffers = function createSourceBuffers(tracks) {\n    var sourceBuffer = this.sourceBuffer,\n        mediaSource = this.mediaSource;\n\n    for (var trackName in tracks) {\n      if (!sourceBuffer[trackName]) {\n        var track = tracks[trackName];\n        // use levelCodec as first priority\n        var codec = track.levelCodec || track.codec;\n        var mimeType = track.container + ';codecs=' + codec;\n        logger[\"b\" /* logger */].log('creating sourceBuffer(' + mimeType + ')');\n        try {\n          var sb = sourceBuffer[trackName] = mediaSource.addSourceBuffer(mimeType);\n          sb.addEventListener('updateend', this.onsbue);\n          sb.addEventListener('error', this.onsbe);\n          this.tracks[trackName] = { codec: codec, container: track.container };\n          track.buffer = sb;\n        } catch (err) {\n          logger[\"b\" /* logger */].error('error while trying to add sourceBuffer:' + err.message);\n          this.hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].BUFFER_ADD_CODEC_ERROR, fatal: false, err: err, mimeType: mimeType });\n        }\n      }\n    }\n    this.hls.trigger(events[\"a\" /* default */].BUFFER_CREATED, { tracks: tracks });\n  };\n\n  BufferController.prototype.onBufferAppending = function onBufferAppending(data) {\n    if (!this._needsFlush) {\n      if (!this.segments) {\n        this.segments = [data];\n      } else {\n        this.segments.push(data);\n      }\n\n      this.doAppending();\n    }\n  };\n\n  BufferController.prototype.onBufferAppendFail = function onBufferAppendFail(data) {\n    logger[\"b\" /* logger */].error('sourceBuffer error:', data.event);\n    // according to http://www.w3.org/TR/media-source/#sourcebuffer-append-error\n    // this error might not always be fatal (it is fatal if decode error is set, in that case\n    // it will be followed by a mediaElement error ...)\n    this.hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: errors[\"a\" /* ErrorDetails */].BUFFER_APPENDING_ERROR, fatal: false });\n  };\n\n  // on BUFFER_EOS mark matching sourcebuffer(s) as ended and trigger checkEos()\n\n\n  BufferController.prototype.onBufferEos = function onBufferEos(data) {\n    var sb = this.sourceBuffer;\n    var dataType = data.type;\n    for (var type in sb) {\n      if (!dataType || type === dataType) {\n        if (!sb[type].ended) {\n          sb[type].ended = true;\n          logger[\"b\" /* logger */].log(type + ' sourceBuffer now EOS');\n        }\n      }\n    }\n    this.checkEos();\n  };\n\n  // if all source buffers are marked as ended, signal endOfStream() to MediaSource.\n\n\n  BufferController.prototype.checkEos = function checkEos() {\n    var sb = this.sourceBuffer,\n        mediaSource = this.mediaSource;\n    if (!mediaSource || mediaSource.readyState !== 'open') {\n      this._needsEos = false;\n      return;\n    }\n    for (var type in sb) {\n      var sbobj = sb[type];\n      if (!sbobj.ended) {\n        return;\n      }\n\n      if (sbobj.updating) {\n        this._needsEos = true;\n        return;\n      }\n    }\n    logger[\"b\" /* logger */].log('all media data available, signal endOfStream() to MediaSource and stop loading fragment');\n    // Notify the media element that it now has all of the media data\n    try {\n      mediaSource.endOfStream();\n    } catch (e) {\n      logger[\"b\" /* logger */].warn('exception while calling mediaSource.endOfStream()');\n    }\n    this._needsEos = false;\n  };\n\n  BufferController.prototype.onBufferFlushing = function onBufferFlushing(data) {\n    this.flushRange.push({ start: data.startOffset, end: data.endOffset, type: data.type });\n    // attempt flush immediately\n    this.flushBufferCounter = 0;\n    this.doFlush();\n  };\n\n  BufferController.prototype.onLevelUpdated = function onLevelUpdated(_ref) {\n    var details = _ref.details;\n\n    if (details.fragments.length > 0) {\n      this._levelDuration = details.totalduration + details.fragments[0].start;\n      this._live = details.live;\n      this.updateMediaElementDuration();\n    }\n  };\n\n  /**\n   * Update Media Source duration to current level duration or override to Infinity if configuration parameter\n   * 'liveDurationInfinity` is set to `true`\n   * More details: https://github.com/video-dev/hls.js/issues/355\n   */\n\n\n  BufferController.prototype.updateMediaElementDuration = function updateMediaElementDuration() {\n    var config = this.hls.config;\n\n    var duration = void 0;\n\n    if (this._levelDuration === null || !this.media || !this.mediaSource || !this.sourceBuffer || this.media.readyState === 0 || this.mediaSource.readyState !== 'open') {\n      return;\n    }\n\n    for (var type in this.sourceBuffer) {\n      if (this.sourceBuffer[type].updating === true) {\n        // can't set duration whilst a buffer is updating\n        return;\n      }\n    }\n\n    duration = this.media.duration;\n    // initialise to the value that the media source is reporting\n    if (this._msDuration === null) {\n      this._msDuration = this.mediaSource.duration;\n    }\n\n    if (this._live === true && config.liveDurationInfinity === true) {\n      // Override duration to Infinity\n      logger[\"b\" /* logger */].log('Media Source duration is set to Infinity');\n      this._msDuration = this.mediaSource.duration = Infinity;\n    } else if (this._levelDuration > this._msDuration && this._levelDuration > duration || !Object(number_isFinite[\"a\" /* isFiniteNumber */])(duration)) {\n      // levelDuration was the last value we set.\n      // not using mediaSource.duration as the browser may tweak this value\n      // only update Media Source duration if its value increase, this is to avoid\n      // flushing already buffered portion when switching between quality level\n      logger[\"b\" /* logger */].log('Updating Media Source duration to ' + this._levelDuration.toFixed(3));\n      this._msDuration = this.mediaSource.duration = this._levelDuration;\n    }\n  };\n\n  BufferController.prototype.doFlush = function doFlush() {\n    // loop through all buffer ranges to flush\n    while (this.flushRange.length) {\n      var range = this.flushRange[0];\n      // flushBuffer will abort any buffer append in progress and flush Audio/Video Buffer\n      if (this.flushBuffer(range.start, range.end, range.type)) {\n        // range flushed, remove from flush array\n        this.flushRange.shift();\n        this.flushBufferCounter = 0;\n      } else {\n        this._needsFlush = true;\n        // avoid looping, wait for SB update end to retrigger a flush\n        return;\n      }\n    }\n    if (this.flushRange.length === 0) {\n      // everything flushed\n      this._needsFlush = false;\n\n      // let's recompute this.appended, which is used to avoid flush looping\n      var appended = 0;\n      var sourceBuffer = this.sourceBuffer;\n      try {\n        for (var type in sourceBuffer) {\n          appended += sourceBuffer[type].buffered.length;\n        }\n      } catch (error) {\n        // error could be thrown while accessing buffered, in case sourcebuffer has already been removed from MediaSource\n        // this is harmess at this stage, catch this to avoid reporting an internal exception\n        logger[\"b\" /* logger */].error('error while accessing sourceBuffer.buffered');\n      }\n      this.appended = appended;\n      this.hls.trigger(events[\"a\" /* default */].BUFFER_FLUSHED);\n    }\n  };\n\n  BufferController.prototype.doAppending = function doAppending() {\n    var hls = this.hls,\n        sourceBuffer = this.sourceBuffer,\n        segments = this.segments;\n    if (Object.keys(sourceBuffer).length) {\n      if (this.media.error) {\n        this.segments = [];\n        logger[\"b\" /* logger */].error('trying to append although a media error occured, flush segment and abort');\n        return;\n      }\n      if (this.appending) {\n        // logger.log(`sb appending in progress`);\n        return;\n      }\n      if (segments && segments.length) {\n        var segment = segments.shift();\n        try {\n          var type = segment.type,\n              sb = sourceBuffer[type];\n          if (sb) {\n            if (!sb.updating) {\n              // reset sourceBuffer ended flag before appending segment\n              sb.ended = false;\n              // logger.log(`appending ${segment.content} ${type} SB, size:${segment.data.length}, ${segment.parent}`);\n              this.parent = segment.parent;\n              sb.appendBuffer(segment.data);\n              this.appendError = 0;\n              this.appended++;\n              this.appending = true;\n            } else {\n              segments.unshift(segment);\n            }\n          } else {\n            // in case we don't have any source buffer matching with this segment type,\n            // it means that Mediasource fails to create sourcebuffer\n            // discard this segment, and trigger update end\n            this.onSBUpdateEnd();\n          }\n        } catch (err) {\n          // in case any error occured while appending, put back segment in segments table\n          logger[\"b\" /* logger */].error('error while trying to append buffer:' + err.message);\n          segments.unshift(segment);\n          var event = { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, parent: segment.parent };\n          if (err.code !== 22) {\n            if (this.appendError) {\n              this.appendError++;\n            } else {\n              this.appendError = 1;\n            }\n\n            event.details = errors[\"a\" /* ErrorDetails */].BUFFER_APPEND_ERROR;\n            /* with UHD content, we could get loop of quota exceeded error until\n              browser is able to evict some data from sourcebuffer. retrying help recovering this\n            */\n            if (this.appendError > hls.config.appendErrorMaxRetry) {\n              logger[\"b\" /* logger */].log('fail ' + hls.config.appendErrorMaxRetry + ' times to append segment in sourceBuffer');\n              segments = [];\n              event.fatal = true;\n              hls.trigger(events[\"a\" /* default */].ERROR, event);\n            } else {\n              event.fatal = false;\n              hls.trigger(events[\"a\" /* default */].ERROR, event);\n            }\n          } else {\n            // QuotaExceededError: http://www.w3.org/TR/html5/infrastructure.html#quotaexceedederror\n            // let's stop appending any segments, and report BUFFER_FULL_ERROR error\n            this.segments = [];\n            event.details = errors[\"a\" /* ErrorDetails */].BUFFER_FULL_ERROR;\n            event.fatal = false;\n            hls.trigger(events[\"a\" /* default */].ERROR, event);\n          }\n        }\n      }\n    }\n  };\n\n  /*\n    flush specified buffered range,\n    return true once range has been flushed.\n    as sourceBuffer.remove() is asynchronous, flushBuffer will be retriggered on sourceBuffer update end\n  */\n\n\n  BufferController.prototype.flushBuffer = function flushBuffer(startOffset, endOffset, typeIn) {\n    var sb = void 0,\n        i = void 0,\n        bufStart = void 0,\n        bufEnd = void 0,\n        flushStart = void 0,\n        flushEnd = void 0,\n        sourceBuffer = this.sourceBuffer;\n    if (Object.keys(sourceBuffer).length) {\n      logger[\"b\" /* logger */].log('flushBuffer,pos/start/end: ' + this.media.currentTime.toFixed(3) + '/' + startOffset + '/' + endOffset);\n      // safeguard to avoid infinite looping : don't try to flush more than the nb of appended segments\n      if (this.flushBufferCounter < this.appended) {\n        for (var type in sourceBuffer) {\n          // check if sourcebuffer type is defined (typeIn): if yes, let's only flush this one\n          // if no, let's flush all sourcebuffers\n          if (typeIn && type !== typeIn) {\n            continue;\n          }\n\n          sb = sourceBuffer[type];\n          // we are going to flush buffer, mark source buffer as 'not ended'\n          sb.ended = false;\n          if (!sb.updating) {\n            try {\n              for (i = 0; i < sb.buffered.length; i++) {\n                bufStart = sb.buffered.start(i);\n                bufEnd = sb.buffered.end(i);\n                // workaround firefox not able to properly flush multiple buffered range.\n                if (navigator.userAgent.toLowerCase().indexOf('firefox') !== -1 && endOffset === Number.POSITIVE_INFINITY) {\n                  flushStart = startOffset;\n                  flushEnd = endOffset;\n                } else {\n                  flushStart = Math.max(bufStart, startOffset);\n                  flushEnd = Math.min(bufEnd, endOffset);\n                }\n                /* sometimes sourcebuffer.remove() does not flush\n                   the exact expected time range.\n                   to avoid rounding issues/infinite loop,\n                   only flush buffer range of length greater than 500ms.\n                */\n                if (Math.min(flushEnd, bufEnd) - flushStart > 0.5) {\n                  this.flushBufferCounter++;\n                  logger[\"b\" /* logger */].log('flush ' + type + ' [' + flushStart + ',' + flushEnd + '], of [' + bufStart + ',' + bufEnd + '], pos:' + this.media.currentTime);\n                  sb.remove(flushStart, flushEnd);\n                  return false;\n                }\n              }\n            } catch (e) {\n              logger[\"b\" /* logger */].warn('exception while accessing sourcebuffer, it might have been removed from MediaSource');\n            }\n          } else {\n            // logger.log('abort ' + type + ' append in progress');\n            // this will abort any appending in progress\n            // sb.abort();\n            logger[\"b\" /* logger */].warn('cannot flush, sb updating in progress');\n            return false;\n          }\n        }\n      } else {\n        logger[\"b\" /* logger */].warn('abort flushing too many retries');\n      }\n      logger[\"b\" /* logger */].log('buffer flushed');\n    }\n    // everything flushed !\n    return true;\n  };\n\n  return BufferController;\n}(event_handler);\n\n/* harmony default export */ var buffer_controller = (buffer_controller_BufferController);\n// CONCATENATED MODULE: ./src/controller/cap-level-controller.js\nvar cap_level_controller__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction cap_level_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction cap_level_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction cap_level_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * cap stream level to media size dimension controller\n*/\n\n\n\n\nvar cap_level_controller_CapLevelController = function (_EventHandler) {\n  cap_level_controller__inherits(CapLevelController, _EventHandler);\n\n  function CapLevelController(hls) {\n    cap_level_controller__classCallCheck(this, CapLevelController);\n\n    var _this = cap_level_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].FPS_DROP_LEVEL_CAPPING, events[\"a\" /* default */].MEDIA_ATTACHING, events[\"a\" /* default */].MANIFEST_PARSED, events[\"a\" /* default */].BUFFER_CODECS, events[\"a\" /* default */].MEDIA_DETACHING));\n\n    _this.autoLevelCapping = Number.POSITIVE_INFINITY;\n    _this.firstLevel = null;\n    _this.levels = [];\n    _this.media = null;\n    _this.restrictedLevels = [];\n    _this.timer = null;\n    return _this;\n  }\n\n  CapLevelController.prototype.destroy = function destroy() {\n    if (this.hls.config.capLevelToPlayerSize) {\n      this.media = null;\n      this._stopCapping();\n    }\n  };\n\n  CapLevelController.prototype.onFpsDropLevelCapping = function onFpsDropLevelCapping(data) {\n    // Don't add a restricted level more than once\n    if (CapLevelController.isLevelAllowed(data.droppedLevel, this.restrictedLevels)) {\n      this.restrictedLevels.push(data.droppedLevel);\n    }\n  };\n\n  CapLevelController.prototype.onMediaAttaching = function onMediaAttaching(data) {\n    this.media = data.media instanceof window.HTMLVideoElement ? data.media : null;\n  };\n\n  CapLevelController.prototype.onManifestParsed = function onManifestParsed(data) {\n    var hls = this.hls;\n    this.restrictedLevels = [];\n    this.levels = data.levels;\n    this.firstLevel = data.firstLevel;\n    if (hls.config.capLevelToPlayerSize && (data.video || data.levels.length && data.altAudio)) {\n      // Start capping immediately if the manifest has signaled video codecs\n      this._startCapping();\n    }\n  };\n\n  // Only activate capping when playing a video stream; otherwise, multi-bitrate audio-only streams will be restricted\n  // to the first level\n\n\n  CapLevelController.prototype.onBufferCodecs = function onBufferCodecs(data) {\n    var hls = this.hls;\n    if (hls.config.capLevelToPlayerSize && data.video) {\n      // If the manifest did not signal a video codec capping has been deferred until we're certain video is present\n      this._startCapping();\n    }\n  };\n\n  CapLevelController.prototype.onLevelsUpdated = function onLevelsUpdated(data) {\n    this.levels = data.levels;\n  };\n\n  CapLevelController.prototype.onMediaDetaching = function onMediaDetaching() {\n    this._stopCapping();\n  };\n\n  CapLevelController.prototype.detectPlayerSize = function detectPlayerSize() {\n    if (this.media) {\n      var levelsLength = this.levels ? this.levels.length : 0;\n      if (levelsLength) {\n        var hls = this.hls;\n        hls.autoLevelCapping = this.getMaxLevel(levelsLength - 1);\n        if (hls.autoLevelCapping > this.autoLevelCapping) {\n          // if auto level capping has a higher value for the previous one, flush the buffer using nextLevelSwitch\n          // usually happen when the user go to the fullscreen mode.\n          hls.streamController.nextLevelSwitch();\n        }\n        this.autoLevelCapping = hls.autoLevelCapping;\n      }\n    }\n  };\n\n  /*\n  * returns level should be the one with the dimensions equal or greater than the media (player) dimensions (so the video will be downscaled)\n  */\n\n\n  CapLevelController.prototype.getMaxLevel = function getMaxLevel(capLevelIndex) {\n    var _this2 = this;\n\n    if (!this.levels) {\n      return -1;\n    }\n\n    var validLevels = this.levels.filter(function (level, index) {\n      return CapLevelController.isLevelAllowed(index, _this2.restrictedLevels) && index <= capLevelIndex;\n    });\n\n    return CapLevelController.getMaxLevelByMediaSize(validLevels, this.mediaWidth, this.mediaHeight);\n  };\n\n  CapLevelController.prototype._startCapping = function _startCapping() {\n    if (this.timer) {\n      // Don't reset capping if started twice; this can happen if the manifest signals a video codec\n      return;\n    }\n    this.autoLevelCapping = Number.POSITIVE_INFINITY;\n    this.hls.firstLevel = this.getMaxLevel(this.firstLevel);\n    clearInterval(this.timer);\n    this.timer = setInterval(this.detectPlayerSize.bind(this), 1000);\n    this.detectPlayerSize();\n  };\n\n  CapLevelController.prototype._stopCapping = function _stopCapping() {\n    this.restrictedLevels = [];\n    this.firstLevel = null;\n    this.autoLevelCapping = Number.POSITIVE_INFINITY;\n    if (this.timer) {\n      this.timer = clearInterval(this.timer);\n      this.timer = null;\n    }\n  };\n\n  CapLevelController.isLevelAllowed = function isLevelAllowed(level) {\n    var restrictedLevels = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n    return restrictedLevels.indexOf(level) === -1;\n  };\n\n  CapLevelController.getMaxLevelByMediaSize = function getMaxLevelByMediaSize(levels, width, height) {\n    if (!levels || levels && !levels.length) {\n      return -1;\n    }\n\n    // Levels can have the same dimensions but differing bandwidths - since levels are ordered, we can look to the next\n    // to determine whether we've chosen the greatest bandwidth for the media's dimensions\n    var atGreatestBandiwdth = function atGreatestBandiwdth(curLevel, nextLevel) {\n      if (!nextLevel) {\n        return true;\n      }\n\n      return curLevel.width !== nextLevel.width || curLevel.height !== nextLevel.height;\n    };\n\n    // If we run through the loop without breaking, the media's dimensions are greater than every level, so default to\n    // the max level\n    var maxLevelIndex = levels.length - 1;\n\n    for (var i = 0; i < levels.length; i += 1) {\n      var level = levels[i];\n      if ((level.width >= width || level.height >= height) && atGreatestBandiwdth(level, levels[i + 1])) {\n        maxLevelIndex = i;\n        break;\n      }\n    }\n\n    return maxLevelIndex;\n  };\n\n  cap_level_controller__createClass(CapLevelController, [{\n    key: 'mediaWidth',\n    get: function get() {\n      var width = void 0;\n      var media = this.media;\n      if (media) {\n        width = media.width || media.clientWidth || media.offsetWidth;\n        width *= CapLevelController.contentScaleFactor;\n      }\n      return width;\n    }\n  }, {\n    key: 'mediaHeight',\n    get: function get() {\n      var height = void 0;\n      var media = this.media;\n      if (media) {\n        height = media.height || media.clientHeight || media.offsetHeight;\n        height *= CapLevelController.contentScaleFactor;\n      }\n      return height;\n    }\n  }], [{\n    key: 'contentScaleFactor',\n    get: function get() {\n      var pixelRatio = 1;\n      try {\n        pixelRatio = window.devicePixelRatio;\n      } catch (e) {}\n      return pixelRatio;\n    }\n  }]);\n\n  return CapLevelController;\n}(event_handler);\n\n/* harmony default export */ var cap_level_controller = (cap_level_controller_CapLevelController);\n// CONCATENATED MODULE: ./src/controller/fps-controller.js\nfunction fps_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction fps_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction fps_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * FPS Controller\n*/\n\n\n\n\n\nvar fps_controller__window = window,\n    fps_controller_performance = fps_controller__window.performance;\n\nvar fps_controller_FPSController = function (_EventHandler) {\n  fps_controller__inherits(FPSController, _EventHandler);\n\n  function FPSController(hls) {\n    fps_controller__classCallCheck(this, FPSController);\n\n    return fps_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHING));\n  }\n\n  FPSController.prototype.destroy = function destroy() {\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n\n    this.isVideoPlaybackQualityAvailable = false;\n  };\n\n  FPSController.prototype.onMediaAttaching = function onMediaAttaching(data) {\n    var config = this.hls.config;\n    if (config.capLevelOnFPSDrop) {\n      var video = this.video = data.media instanceof window.HTMLVideoElement ? data.media : null;\n      if (typeof video.getVideoPlaybackQuality === 'function') {\n        this.isVideoPlaybackQualityAvailable = true;\n      }\n\n      clearInterval(this.timer);\n      this.timer = setInterval(this.checkFPSInterval.bind(this), config.fpsDroppedMonitoringPeriod);\n    }\n  };\n\n  FPSController.prototype.checkFPS = function checkFPS(video, decodedFrames, droppedFrames) {\n    var currentTime = fps_controller_performance.now();\n    if (decodedFrames) {\n      if (this.lastTime) {\n        var currentPeriod = currentTime - this.lastTime,\n            currentDropped = droppedFrames - this.lastDroppedFrames,\n            currentDecoded = decodedFrames - this.lastDecodedFrames,\n            droppedFPS = 1000 * currentDropped / currentPeriod,\n            hls = this.hls;\n        hls.trigger(events[\"a\" /* default */].FPS_DROP, { currentDropped: currentDropped, currentDecoded: currentDecoded, totalDroppedFrames: droppedFrames });\n        if (droppedFPS > 0) {\n          // logger.log('checkFPS : droppedFPS/decodedFPS:' + droppedFPS/(1000 * currentDecoded / currentPeriod));\n          if (currentDropped > hls.config.fpsDroppedMonitoringThreshold * currentDecoded) {\n            var currentLevel = hls.currentLevel;\n            logger[\"b\" /* logger */].warn('drop FPS ratio greater than max allowed value for currentLevel: ' + currentLevel);\n            if (currentLevel > 0 && (hls.autoLevelCapping === -1 || hls.autoLevelCapping >= currentLevel)) {\n              currentLevel = currentLevel - 1;\n              hls.trigger(events[\"a\" /* default */].FPS_DROP_LEVEL_CAPPING, { level: currentLevel, droppedLevel: hls.currentLevel });\n              hls.autoLevelCapping = currentLevel;\n              hls.streamController.nextLevelSwitch();\n            }\n          }\n        }\n      }\n      this.lastTime = currentTime;\n      this.lastDroppedFrames = droppedFrames;\n      this.lastDecodedFrames = decodedFrames;\n    }\n  };\n\n  FPSController.prototype.checkFPSInterval = function checkFPSInterval() {\n    var video = this.video;\n    if (video) {\n      if (this.isVideoPlaybackQualityAvailable) {\n        var videoPlaybackQuality = video.getVideoPlaybackQuality();\n        this.checkFPS(video, videoPlaybackQuality.totalVideoFrames, videoPlaybackQuality.droppedVideoFrames);\n      } else {\n        this.checkFPS(video, video.webkitDecodedFrameCount, video.webkitDroppedFrameCount);\n      }\n    }\n  };\n\n  return FPSController;\n}(event_handler);\n\n/* harmony default export */ var fps_controller = (fps_controller_FPSController);\n// CONCATENATED MODULE: ./src/utils/xhr-loader.js\nfunction xhr_loader__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * XHR based logger\n*/\n\n\n\nvar xhr_loader__window = window,\n    xhr_loader_performance = xhr_loader__window.performance,\n    XMLHttpRequest = xhr_loader__window.XMLHttpRequest;\n\nvar xhr_loader_XhrLoader = function () {\n  function XhrLoader(config) {\n    xhr_loader__classCallCheck(this, XhrLoader);\n\n    if (config && config.xhrSetup) {\n      this.xhrSetup = config.xhrSetup;\n    }\n  }\n\n  XhrLoader.prototype.destroy = function destroy() {\n    this.abort();\n    this.loader = null;\n  };\n\n  XhrLoader.prototype.abort = function abort() {\n    var loader = this.loader;\n    if (loader && loader.readyState !== 4) {\n      this.stats.aborted = true;\n      loader.abort();\n    }\n\n    window.clearTimeout(this.requestTimeout);\n    this.requestTimeout = null;\n    window.clearTimeout(this.retryTimeout);\n    this.retryTimeout = null;\n  };\n\n  XhrLoader.prototype.load = function load(context, config, callbacks) {\n    this.context = context;\n    this.config = config;\n    this.callbacks = callbacks;\n    this.stats = { trequest: xhr_loader_performance.now(), retry: 0 };\n    this.retryDelay = config.retryDelay;\n    this.loadInternal();\n  };\n\n  XhrLoader.prototype.loadInternal = function loadInternal() {\n    var xhr = void 0,\n        context = this.context;\n    xhr = this.loader = new XMLHttpRequest();\n\n    var stats = this.stats;\n    stats.tfirst = 0;\n    stats.loaded = 0;\n    var xhrSetup = this.xhrSetup;\n\n    try {\n      if (xhrSetup) {\n        try {\n          xhrSetup(xhr, context.url);\n        } catch (e) {\n          // fix xhrSetup: (xhr, url) => {xhr.setRequestHeader(\"Content-Language\", \"test\");}\n          // not working, as xhr.setRequestHeader expects xhr.readyState === OPEN\n          xhr.open('GET', context.url, true);\n          xhrSetup(xhr, context.url);\n        }\n      }\n      if (!xhr.readyState) {\n        xhr.open('GET', context.url, true);\n      }\n    } catch (e) {\n      // IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS\n      this.callbacks.onError({ code: xhr.status, text: e.message }, context, xhr);\n      return;\n    }\n\n    if (context.rangeEnd) {\n      xhr.setRequestHeader('Range', 'bytes=' + context.rangeStart + '-' + (context.rangeEnd - 1));\n    }\n\n    xhr.onreadystatechange = this.readystatechange.bind(this);\n    xhr.onprogress = this.loadprogress.bind(this);\n    xhr.responseType = context.responseType;\n\n    // setup timeout before we perform request\n    this.requestTimeout = window.setTimeout(this.loadtimeout.bind(this), this.config.timeout);\n    xhr.send();\n  };\n\n  XhrLoader.prototype.readystatechange = function readystatechange(event) {\n    var xhr = event.currentTarget,\n        readyState = xhr.readyState,\n        stats = this.stats,\n        context = this.context,\n        config = this.config;\n\n    // don't proceed if xhr has been aborted\n    if (stats.aborted) {\n      return;\n    }\n\n    // >= HEADERS_RECEIVED\n    if (readyState >= 2) {\n      // clear xhr timeout and rearm it if readyState less than 4\n      window.clearTimeout(this.requestTimeout);\n      if (stats.tfirst === 0) {\n        stats.tfirst = Math.max(xhr_loader_performance.now(), stats.trequest);\n      }\n\n      if (readyState === 4) {\n        var status = xhr.status;\n        // http status between 200 to 299 are all successful\n        if (status >= 200 && status < 300) {\n          stats.tload = Math.max(stats.tfirst, xhr_loader_performance.now());\n          var data = void 0,\n              len = void 0;\n          if (context.responseType === 'arraybuffer') {\n            data = xhr.response;\n            len = data.byteLength;\n          } else {\n            data = xhr.responseText;\n            len = data.length;\n          }\n          stats.loaded = stats.total = len;\n          var response = { url: xhr.responseURL, data: data };\n          this.callbacks.onSuccess(response, stats, context, xhr);\n        } else {\n          // if max nb of retries reached or if http status between 400 and 499 (such error cannot be recovered, retrying is useless), return error\n          if (stats.retry >= config.maxRetry || status >= 400 && status < 499) {\n            logger[\"b\" /* logger */].error(status + ' while loading ' + context.url);\n            this.callbacks.onError({ code: status, text: xhr.statusText }, context, xhr);\n          } else {\n            // retry\n            logger[\"b\" /* logger */].warn(status + ' while loading ' + context.url + ', retrying in ' + this.retryDelay + '...');\n            // aborts and resets internal state\n            this.destroy();\n            // schedule retry\n            this.retryTimeout = window.setTimeout(this.loadInternal.bind(this), this.retryDelay);\n            // set exponential backoff\n            this.retryDelay = Math.min(2 * this.retryDelay, config.maxRetryDelay);\n            stats.retry++;\n          }\n        }\n      } else {\n        // readyState >= 2 AND readyState !==4 (readyState = HEADERS_RECEIVED || LOADING) rearm timeout as xhr not finished yet\n        this.requestTimeout = window.setTimeout(this.loadtimeout.bind(this), config.timeout);\n      }\n    }\n  };\n\n  XhrLoader.prototype.loadtimeout = function loadtimeout() {\n    logger[\"b\" /* logger */].warn('timeout while loading ' + this.context.url);\n    this.callbacks.onTimeout(this.stats, this.context, null);\n  };\n\n  XhrLoader.prototype.loadprogress = function loadprogress(event) {\n    var xhr = event.currentTarget,\n        stats = this.stats;\n\n    stats.loaded = event.loaded;\n    if (event.lengthComputable) {\n      stats.total = event.total;\n    }\n\n    var onProgress = this.callbacks.onProgress;\n    if (onProgress) {\n      // third arg is to provide on progress data\n      onProgress(stats, this.context, null, xhr);\n    }\n  };\n\n  return XhrLoader;\n}();\n\n/* harmony default export */ var xhr_loader = (xhr_loader_XhrLoader);\n// CONCATENATED MODULE: ./src/controller/audio-track-controller.js\nvar audio_track_controller__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction audio_track_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction audio_track_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction audio_track_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\n\n/**\n * @class AudioTrackController\n * @implements {EventHandler}\n *\n * Handles main manifest and audio-track metadata loaded,\n * owns and exposes the selectable audio-tracks data-models.\n *\n * Exposes internal interface to select available audio-tracks.\n *\n * Handles errors on loading audio-track playlists. Manages fallback mechanism\n * with redundants tracks (group-IDs).\n *\n * Handles level-loading and group-ID switches for video (fallback on video levels),\n * and eventually adapts the audio-track group-ID to match.\n *\n * @fires AUDIO_TRACK_LOADING\n * @fires AUDIO_TRACK_SWITCHING\n * @fires AUDIO_TRACKS_UPDATED\n * @fires ERROR\n *\n */\n\nvar audio_track_controller_AudioTrackController = function (_TaskLoop) {\n  audio_track_controller__inherits(AudioTrackController, _TaskLoop);\n\n  function AudioTrackController(hls) {\n    audio_track_controller__classCallCheck(this, AudioTrackController);\n\n    /**\n     * @private\n     * Currently selected index in `tracks`\n     * @member {number} trackId\n     */\n    var _this = audio_track_controller__possibleConstructorReturn(this, _TaskLoop.call(this, hls, events[\"a\" /* default */].MANIFEST_LOADING, events[\"a\" /* default */].MANIFEST_PARSED, events[\"a\" /* default */].AUDIO_TRACK_LOADED, events[\"a\" /* default */].AUDIO_TRACK_SWITCHED, events[\"a\" /* default */].LEVEL_LOADED, events[\"a\" /* default */].ERROR));\n\n    _this._trackId = -1;\n\n    /**\n     * @private\n     * If should select tracks according to default track attribute\n     * @member {boolean} _selectDefaultTrack\n     */\n    _this._selectDefaultTrack = true;\n\n    /**\n     * @public\n     * All tracks available\n     * @member {AudioTrack[]}\n     */\n    _this.tracks = [];\n\n    /**\n     * @public\n     * List of blacklisted audio track IDs (that have caused failure)\n     * @member {number[]}\n     */\n    _this.trackIdBlacklist = Object.create(null);\n\n    /**\n     * @public\n     * The currently running group ID for audio\n     * (we grab this on manifest-parsed and new level-loaded)\n     * @member {string}\n     */\n    _this.audioGroupId = null;\n    return _this;\n  }\n\n  /**\n   * Reset audio tracks on new manifest loading.\n   */\n\n\n  AudioTrackController.prototype.onManifestLoading = function onManifestLoading() {\n    this.tracks = [];\n    this._trackId = -1;\n    this._selectDefaultTrack = true;\n  };\n\n  /**\n   * Store tracks data from manifest parsed data.\n   *\n   * Trigger AUDIO_TRACKS_UPDATED event.\n   *\n   * @param {*} data\n   */\n\n\n  AudioTrackController.prototype.onManifestParsed = function onManifestParsed(data) {\n    var tracks = this.tracks = data.audioTracks || [];\n    this.hls.trigger(events[\"a\" /* default */].AUDIO_TRACKS_UPDATED, { audioTracks: tracks });\n  };\n\n  /**\n   * Store track details of loaded track in our data-model.\n   *\n   * Set-up metadata update interval task for live-mode streams.\n   *\n   * @param {} data\n   */\n\n\n  AudioTrackController.prototype.onAudioTrackLoaded = function onAudioTrackLoaded(data) {\n    if (data.id >= this.tracks.length) {\n      logger[\"b\" /* logger */].warn('Invalid audio track id:', data.id);\n      return;\n    }\n\n    logger[\"b\" /* logger */].log('audioTrack ' + data.id + ' loaded');\n\n    this.tracks[data.id].details = data.details;\n\n    // check if current playlist is a live playlist\n    // and if we have already our reload interval setup\n    if (data.details.live && !this.hasInterval()) {\n      // if live playlist we will have to reload it periodically\n      // set reload period to playlist target duration\n      var updatePeriodMs = data.details.targetduration * 1000;\n      this.setInterval(updatePeriodMs);\n    }\n\n    if (!data.details.live && this.hasInterval()) {\n      // playlist is not live and timer is scheduled: cancel it\n      this.clearInterval();\n    }\n  };\n\n  /**\n   * Update the internal group ID to any audio-track we may have set manually\n   * or because of a failure-handling fallback.\n   *\n   * Quality-levels should update to that group ID in this case.\n   *\n   * @param {*} data\n   */\n\n\n  AudioTrackController.prototype.onAudioTrackSwitched = function onAudioTrackSwitched(data) {\n    var audioGroupId = this.tracks[data.id].groupId;\n    if (audioGroupId && this.audioGroupId !== audioGroupId) {\n      this.audioGroupId = audioGroupId;\n    }\n  };\n\n  /**\n   * When a level gets loaded, if it has redundant audioGroupIds (in the same ordinality as it's redundant URLs)\n   * we are setting our audio-group ID internally to the one set, if it is different from the group ID currently set.\n   *\n   * If group-ID got update, we re-select the appropriate audio-track with this group-ID matching the currently\n   * selected one (based on NAME property).\n   *\n   * @param {*} data\n   */\n\n\n  AudioTrackController.prototype.onLevelLoaded = function onLevelLoaded(data) {\n    // FIXME: crashes because currentLevel is undefined\n    // const levelInfo = this.hls.levels[this.hls.currentLevel];\n\n    var levelInfo = this.hls.levels[data.level];\n\n    if (!levelInfo.audioGroupIds) {\n      return;\n    }\n\n    var audioGroupId = levelInfo.audioGroupIds[levelInfo.urlId];\n    if (this.audioGroupId !== audioGroupId) {\n      this.audioGroupId = audioGroupId;\n      this._selectInitialAudioTrack();\n    }\n  };\n\n  /**\n   * Handle network errors loading audio track manifests\n   * and also pausing on any netwok errors.\n   *\n   * @param {ErrorEventData} data\n   */\n\n\n  AudioTrackController.prototype.onError = function onError(data) {\n    // Only handle network errors\n    if (data.type !== errors[\"b\" /* ErrorTypes */].NETWORK_ERROR) {\n      return;\n    }\n\n    // If fatal network error, cancel update task\n    if (data.fatal) {\n      this.clearInterval();\n    }\n\n    // If not an audio-track loading error don't handle further\n    if (data.details !== errors[\"a\" /* ErrorDetails */].AUDIO_TRACK_LOAD_ERROR) {\n      return;\n    }\n\n    logger[\"b\" /* logger */].warn('Network failure on audio-track id:', data.context.id);\n    this._handleLoadError();\n  };\n\n  /**\n   * @type {AudioTrack[]} Audio-track list we own\n   */\n\n\n  /**\n   * @private\n   * @param {number} newId\n   */\n  AudioTrackController.prototype._setAudioTrack = function _setAudioTrack(newId) {\n    // noop on same audio track id as already set\n    if (this._trackId === newId && this.tracks[this._trackId].details) {\n      logger[\"b\" /* logger */].debug('Same id as current audio-track passed, and track details available -> no-op');\n      return;\n    }\n\n    // check if level idx is valid\n    if (newId < 0 || newId >= this.tracks.length) {\n      logger[\"b\" /* logger */].warn('Invalid id passed to audio-track controller');\n      return;\n    }\n\n    var audioTrack = this.tracks[newId];\n\n    logger[\"b\" /* logger */].log('Now switching to audio-track index ' + newId);\n\n    // stopping live reloading timer if any\n    this.clearInterval();\n    this._trackId = newId;\n\n    var url = audioTrack.url,\n        type = audioTrack.type,\n        id = audioTrack.id;\n\n    this.hls.trigger(events[\"a\" /* default */].AUDIO_TRACK_SWITCHING, { id: id, type: type, url: url });\n    this._loadTrackDetailsIfNeeded(audioTrack);\n  };\n\n  /**\n   * @override\n   */\n\n\n  AudioTrackController.prototype.doTick = function doTick() {\n    this._updateTrack(this._trackId);\n  };\n\n  /**\n   * Select initial track\n   * @private\n   */\n\n\n  AudioTrackController.prototype._selectInitialAudioTrack = function _selectInitialAudioTrack() {\n    var _this2 = this;\n\n    var tracks = this.tracks;\n    if (!tracks.length) {\n      return;\n    }\n\n    var currentAudioTrack = this.tracks[this._trackId];\n\n    var name = null;\n    if (currentAudioTrack) {\n      name = currentAudioTrack.name;\n    }\n\n    // Pre-select default tracks if there are any\n    if (this._selectDefaultTrack) {\n      var defaultTracks = tracks.filter(function (track) {\n        return track.default;\n      });\n      if (defaultTracks.length) {\n        tracks = defaultTracks;\n      } else {\n        logger[\"b\" /* logger */].warn('No default audio tracks defined');\n      }\n    }\n\n    var trackFound = false;\n\n    var traverseTracks = function traverseTracks() {\n      // Select track with right group ID\n      tracks.forEach(function (track) {\n        if (trackFound) {\n          return;\n        }\n        // We need to match the (pre-)selected group ID\n        // and the NAME of the current track.\n        if ((!_this2.audioGroupId || track.groupId === _this2.audioGroupId) && (!name || name === track.name)) {\n          // If there was a previous track try to stay with the same `NAME`.\n          // It should be unique across tracks of same group, and consistent through redundant track groups.\n          _this2._setAudioTrack(track.id);\n          trackFound = true;\n        }\n      });\n    };\n\n    traverseTracks();\n\n    if (!trackFound) {\n      name = null;\n      traverseTracks();\n    }\n\n    if (!trackFound) {\n      logger[\"b\" /* logger */].error('No track found for running audio group-ID: ' + this.audioGroupId);\n\n      this.hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].AUDIO_TRACK_LOAD_ERROR,\n        fatal: true\n      });\n    }\n  };\n\n  /**\n   * @private\n   * @param {AudioTrack} audioTrack\n   * @returns {boolean}\n   */\n\n\n  AudioTrackController.prototype._needsTrackLoading = function _needsTrackLoading(audioTrack) {\n    var details = audioTrack.details;\n\n\n    if (!details) {\n      return true;\n    } else if (details.live) {\n      return true;\n    }\n  };\n\n  /**\n   * @private\n   * @param {AudioTrack} audioTrack\n   */\n\n\n  AudioTrackController.prototype._loadTrackDetailsIfNeeded = function _loadTrackDetailsIfNeeded(audioTrack) {\n    if (this._needsTrackLoading(audioTrack)) {\n      var url = audioTrack.url,\n          id = audioTrack.id;\n      // track not retrieved yet, or live playlist we need to (re)load it\n\n      logger[\"b\" /* logger */].log('loading audio-track playlist for id: ' + id);\n      this.hls.trigger(events[\"a\" /* default */].AUDIO_TRACK_LOADING, { url: url, id: id });\n    }\n  };\n\n  /**\n   * @private\n   * @param {number} newId\n   */\n\n\n  AudioTrackController.prototype._updateTrack = function _updateTrack(newId) {\n    // check if level idx is valid\n    if (newId < 0 || newId >= this.tracks.length) {\n      return;\n    }\n\n    // stopping live reloading timer if any\n    this.clearInterval();\n    this._trackId = newId;\n    logger[\"b\" /* logger */].log('trying to update audio-track ' + newId);\n    var audioTrack = this.tracks[newId];\n    this._loadTrackDetailsIfNeeded(audioTrack);\n  };\n\n  /**\n   * @private\n   */\n\n\n  AudioTrackController.prototype._handleLoadError = function _handleLoadError() {\n    // First, let's black list current track id\n    this.trackIdBlacklist[this._trackId] = true;\n\n    // Let's try to fall back on a functional audio-track with the same group ID\n    var previousId = this._trackId;\n    var _tracks$previousId = this.tracks[previousId],\n        name = _tracks$previousId.name,\n        language = _tracks$previousId.language,\n        groupId = _tracks$previousId.groupId;\n\n\n    logger[\"b\" /* logger */].warn('Loading failed on audio track id: ' + previousId + ', group-id: ' + groupId + ', name/language: \"' + name + '\" / \"' + language + '\"');\n\n    // Find a non-blacklisted track ID with the same NAME\n    // At least a track that is not blacklisted, thus on another group-ID.\n    var newId = previousId;\n    for (var i = 0; i < this.tracks.length; i++) {\n      if (this.trackIdBlacklist[i]) {\n        continue;\n      }\n      var newTrack = this.tracks[i];\n      if (newTrack.name === name) {\n        newId = i;\n        break;\n      }\n    }\n\n    if (newId === previousId) {\n      logger[\"b\" /* logger */].warn('No fallback audio-track found for name/language: \"' + name + '\" / \"' + language + '\"');\n      return;\n    }\n\n    logger[\"b\" /* logger */].log('Attempting audio-track fallback id:', newId, 'group-id:', this.tracks[newId].groupId);\n\n    this._setAudioTrack(newId);\n  };\n\n  audio_track_controller__createClass(AudioTrackController, [{\n    key: 'audioTracks',\n    get: function get() {\n      return this.tracks;\n    }\n\n    /**\n     * @type {number} Index into audio-tracks list of currently selected track.\n     */\n\n  }, {\n    key: 'audioTrack',\n    get: function get() {\n      return this._trackId;\n    }\n\n    /**\n     * Select current track by index\n     */\n    ,\n    set: function set(newId) {\n      this._setAudioTrack(newId);\n      // If audio track is selected from API then don't choose from the manifest default track\n      this._selectDefaultTrack = false;\n    }\n  }]);\n\n  return AudioTrackController;\n}(task_loop);\n\n/* harmony default export */ var audio_track_controller = (audio_track_controller_AudioTrackController);\n// CONCATENATED MODULE: ./src/controller/audio-stream-controller.js\n\n\nvar audio_stream_controller__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction audio_stream_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction audio_stream_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction audio_stream_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * Audio Stream Controller\n*/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar audio_stream_controller__window = window,\n    audio_stream_controller_performance = audio_stream_controller__window.performance;\n\n\nvar audio_stream_controller_State = {\n  STOPPED: 'STOPPED',\n  STARTING: 'STARTING',\n  IDLE: 'IDLE',\n  PAUSED: 'PAUSED',\n  KEY_LOADING: 'KEY_LOADING',\n  FRAG_LOADING: 'FRAG_LOADING',\n  FRAG_LOADING_WAITING_RETRY: 'FRAG_LOADING_WAITING_RETRY',\n  WAITING_TRACK: 'WAITING_TRACK',\n  PARSING: 'PARSING',\n  PARSED: 'PARSED',\n  BUFFER_FLUSHING: 'BUFFER_FLUSHING',\n  ENDED: 'ENDED',\n  ERROR: 'ERROR',\n  WAITING_INIT_PTS: 'WAITING_INIT_PTS'\n};\n\nvar audio_stream_controller_AudioStreamController = function (_TaskLoop) {\n  audio_stream_controller__inherits(AudioStreamController, _TaskLoop);\n\n  function AudioStreamController(hls, fragmentTracker) {\n    audio_stream_controller__classCallCheck(this, AudioStreamController);\n\n    var _this = audio_stream_controller__possibleConstructorReturn(this, _TaskLoop.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHED, events[\"a\" /* default */].MEDIA_DETACHING, events[\"a\" /* default */].AUDIO_TRACKS_UPDATED, events[\"a\" /* default */].AUDIO_TRACK_SWITCHING, events[\"a\" /* default */].AUDIO_TRACK_LOADED, events[\"a\" /* default */].KEY_LOADED, events[\"a\" /* default */].FRAG_LOADED, events[\"a\" /* default */].FRAG_PARSING_INIT_SEGMENT, events[\"a\" /* default */].FRAG_PARSING_DATA, events[\"a\" /* default */].FRAG_PARSED, events[\"a\" /* default */].ERROR, events[\"a\" /* default */].BUFFER_RESET, events[\"a\" /* default */].BUFFER_CREATED, events[\"a\" /* default */].BUFFER_APPENDED, events[\"a\" /* default */].BUFFER_FLUSHED, events[\"a\" /* default */].INIT_PTS_FOUND));\n\n    _this.fragmentTracker = fragmentTracker;\n    _this.config = hls.config;\n    _this.audioCodecSwap = false;\n    _this._state = audio_stream_controller_State.STOPPED;\n    _this.initPTS = [];\n    _this.waitingFragment = null;\n    _this.videoTrackCC = null;\n    return _this;\n  }\n\n  AudioStreamController.prototype.onHandlerDestroying = function onHandlerDestroying() {\n    this.stopLoad();\n    _TaskLoop.prototype.onHandlerDestroying.call(this);\n  };\n\n  AudioStreamController.prototype.onHandlerDestroyed = function onHandlerDestroyed() {\n    this.state = audio_stream_controller_State.STOPPED;\n    this.fragmentTracker = null;\n    _TaskLoop.prototype.onHandlerDestroyed.call(this);\n  };\n\n  // Signal that video PTS was found\n\n\n  AudioStreamController.prototype.onInitPtsFound = function onInitPtsFound(data) {\n    var demuxerId = data.id,\n        cc = data.frag.cc,\n        initPTS = data.initPTS;\n    if (demuxerId === 'main') {\n      // Always update the new INIT PTS\n      // Can change due level switch\n      this.initPTS[cc] = initPTS;\n      this.videoTrackCC = cc;\n      logger[\"b\" /* logger */].log('InitPTS for cc: ' + cc + ' found from video track: ' + initPTS);\n\n      // If we are waiting we need to demux/remux the waiting frag\n      // With the new initPTS\n      if (this.state === audio_stream_controller_State.WAITING_INIT_PTS) {\n        this.tick();\n      }\n    }\n  };\n\n  AudioStreamController.prototype.startLoad = function startLoad(startPosition) {\n    if (this.tracks) {\n      var lastCurrentTime = this.lastCurrentTime;\n      this.stopLoad();\n      this.setInterval(100);\n      this.fragLoadError = 0;\n      if (lastCurrentTime > 0 && startPosition === -1) {\n        logger[\"b\" /* logger */].log('audio:override startPosition with lastCurrentTime @' + lastCurrentTime.toFixed(3));\n        this.state = audio_stream_controller_State.IDLE;\n      } else {\n        this.lastCurrentTime = this.startPosition ? this.startPosition : startPosition;\n        this.state = audio_stream_controller_State.STARTING;\n      }\n      this.nextLoadPosition = this.startPosition = this.lastCurrentTime;\n      this.tick();\n    } else {\n      this.startPosition = startPosition;\n      this.state = audio_stream_controller_State.STOPPED;\n    }\n  };\n\n  AudioStreamController.prototype.stopLoad = function stopLoad() {\n    var frag = this.fragCurrent;\n    if (frag) {\n      if (frag.loader) {\n        frag.loader.abort();\n      }\n\n      this.fragmentTracker.removeFragment(frag);\n      this.fragCurrent = null;\n    }\n    this.fragPrevious = null;\n    if (this.demuxer) {\n      this.demuxer.destroy();\n      this.demuxer = null;\n    }\n    this.state = audio_stream_controller_State.STOPPED;\n  };\n\n  AudioStreamController.prototype.doTick = function doTick() {\n    var pos = void 0,\n        track = void 0,\n        trackDetails = void 0,\n        hls = this.hls,\n        config = hls.config;\n    // logger.log('audioStream:' + this.state);\n    switch (this.state) {\n      case audio_stream_controller_State.ERROR:\n      // don't do anything in error state to avoid breaking further ...\n      case audio_stream_controller_State.PAUSED:\n      // don't do anything in paused state either ...\n      case audio_stream_controller_State.BUFFER_FLUSHING:\n        break;\n      case audio_stream_controller_State.STARTING:\n        this.state = audio_stream_controller_State.WAITING_TRACK;\n        this.loadedmetadata = false;\n        break;\n      case audio_stream_controller_State.IDLE:\n        var tracks = this.tracks;\n        // audio tracks not received => exit loop\n        if (!tracks) {\n          break;\n        }\n\n        // if video not attached AND\n        // start fragment already requested OR start frag prefetch disable\n        // exit loop\n        // => if media not attached but start frag prefetch is enabled and start frag not requested yet, we will not exit loop\n        if (!this.media && (this.startFragRequested || !config.startFragPrefetch)) {\n          break;\n        }\n\n        // determine next candidate fragment to be loaded, based on current position and\n        //  end of buffer position\n        // if we have not yet loaded any fragment, start loading from start position\n        if (this.loadedmetadata) {\n          pos = this.media.currentTime;\n        } else {\n          pos = this.nextLoadPosition;\n          if (pos === undefined) {\n            break;\n          }\n        }\n        var media = this.mediaBuffer ? this.mediaBuffer : this.media,\n            videoBuffer = this.videoBuffer ? this.videoBuffer : this.media,\n            bufferInfo = BufferHelper.bufferInfo(media, pos, config.maxBufferHole),\n            mainBufferInfo = BufferHelper.bufferInfo(videoBuffer, pos, config.maxBufferHole),\n            bufferLen = bufferInfo.len,\n            bufferEnd = bufferInfo.end,\n            fragPrevious = this.fragPrevious,\n\n        // ensure we buffer at least config.maxBufferLength (default 30s) or config.maxMaxBufferLength (default: 600s)\n        // whichever is smaller.\n        // once we reach that threshold, don't buffer more than video (mainBufferInfo.len)\n        maxConfigBuffer = Math.min(config.maxBufferLength, config.maxMaxBufferLength),\n            maxBufLen = Math.max(maxConfigBuffer, mainBufferInfo.len),\n            audioSwitch = this.audioSwitch,\n            trackId = this.trackId;\n\n        // if buffer length is less than maxBufLen try to load a new fragment\n        if ((bufferLen < maxBufLen || audioSwitch) && trackId < tracks.length) {\n          trackDetails = tracks[trackId].details;\n          // if track info not retrieved yet, switch state and wait for track retrieval\n          if (typeof trackDetails === 'undefined') {\n            this.state = audio_stream_controller_State.WAITING_TRACK;\n            break;\n          }\n\n          // check if we need to finalize media stream\n          // we just got done loading the final fragment and there is no other buffered range after ...\n          // rationale is that in case there are any buffered ranges after, it means that there are unbuffered portion in between\n          // so we should not switch to ENDED in that case, to be able to buffer them\n          if (!audioSwitch && !trackDetails.live && fragPrevious && fragPrevious.sn === trackDetails.endSN && !bufferInfo.nextStart) {\n            // if we are not seeking or if we are seeking but everything (almost) til the end is buffered, let's signal eos\n            // we don't compare exactly media.duration === bufferInfo.end as there could be some subtle media duration difference when switching\n            // between different renditions. using half frag duration should help cope with these cases.\n            if (!this.media.seeking || this.media.duration - bufferEnd < fragPrevious.duration / 2) {\n              // Finalize the media stream\n              this.hls.trigger(events[\"a\" /* default */].BUFFER_EOS, { type: 'audio' });\n              this.state = audio_stream_controller_State.ENDED;\n              break;\n            }\n          }\n\n          // find fragment index, contiguous with end of buffer position\n          var fragments = trackDetails.fragments,\n              fragLen = fragments.length,\n              start = fragments[0].start,\n              end = fragments[fragLen - 1].start + fragments[fragLen - 1].duration,\n              frag = void 0;\n\n          // When switching audio track, reload audio as close as possible to currentTime\n          if (audioSwitch) {\n            if (trackDetails.live && !trackDetails.PTSKnown) {\n              logger[\"b\" /* logger */].log('switching audiotrack, live stream, unknown PTS,load first fragment');\n              bufferEnd = 0;\n            } else {\n              bufferEnd = pos;\n              // if currentTime (pos) is less than alt audio playlist start time, it means that alt audio is ahead of currentTime\n              if (trackDetails.PTSKnown && pos < start) {\n                // if everything is buffered from pos to start or if audio buffer upfront, let's seek to start\n                if (bufferInfo.end > start || bufferInfo.nextStart) {\n                  logger[\"b\" /* logger */].log('alt audio track ahead of main track, seek to start of alt audio track');\n                  this.media.currentTime = start + 0.05;\n                } else {\n                  return;\n                }\n              }\n            }\n          }\n          if (trackDetails.initSegment && !trackDetails.initSegment.data) {\n            frag = trackDetails.initSegment;\n          } // eslint-disable-line brace-style\n          // if bufferEnd before start of playlist, load first fragment\n          else if (bufferEnd <= start) {\n              frag = fragments[0];\n              if (this.videoTrackCC !== null && frag.cc !== this.videoTrackCC) {\n                // Ensure we find a fragment which matches the continuity of the video track\n                frag = findFragWithCC(fragments, this.videoTrackCC);\n              }\n              if (trackDetails.live && frag.loadIdx && frag.loadIdx === this.fragLoadIdx) {\n                // we just loaded this first fragment, and we are still lagging behind the start of the live playlist\n                // let's force seek to start\n                var nextBuffered = bufferInfo.nextStart ? bufferInfo.nextStart : start;\n                logger[\"b\" /* logger */].log('no alt audio available @currentTime:' + this.media.currentTime + ', seeking @' + (nextBuffered + 0.05));\n                this.media.currentTime = nextBuffered + 0.05;\n                return;\n              }\n            } else {\n              var foundFrag = void 0;\n              var maxFragLookUpTolerance = config.maxFragLookUpTolerance;\n              var fragNext = fragPrevious ? fragments[fragPrevious.sn - fragments[0].sn + 1] : undefined;\n              var fragmentWithinToleranceTest = function fragmentWithinToleranceTest(candidate) {\n                // offset should be within fragment boundary - config.maxFragLookUpTolerance\n                // this is to cope with situations like\n                // bufferEnd = 9.991\n                // frag[脴] : [0,10]\n                // frag[1] : [10,20]\n                // bufferEnd is within frag[0] range ... although what we are expecting is to return frag[1] here\n                //              frag start               frag start+duration\n                //                  |-----------------------------|\n                //              <--->                         <--->\n                //  ...--------><-----------------------------><---------....\n                // previous frag         matching fragment         next frag\n                //  return -1             return 0                 return 1\n                // logger.log(`level/sn/start/end/bufEnd:${level}/${candidate.sn}/${candidate.start}/${(candidate.start+candidate.duration)}/${bufferEnd}`);\n                // Set the lookup tolerance to be small enough to detect the current segment - ensures we don't skip over very small segments\n                var candidateLookupTolerance = Math.min(maxFragLookUpTolerance, candidate.duration);\n                if (candidate.start + candidate.duration - candidateLookupTolerance <= bufferEnd) {\n                  return 1;\n                } else if (candidate.start - candidateLookupTolerance > bufferEnd && candidate.start) {\n                  // if maxFragLookUpTolerance will have negative value then don't return -1 for first element\n                  return -1;\n                }\n\n                return 0;\n              };\n\n              if (bufferEnd < end) {\n                if (bufferEnd > end - maxFragLookUpTolerance) {\n                  maxFragLookUpTolerance = 0;\n                }\n\n                // Prefer the next fragment if it's within tolerance\n                if (fragNext && !fragmentWithinToleranceTest(fragNext)) {\n                  foundFrag = fragNext;\n                } else {\n                  foundFrag = binary_search.search(fragments, fragmentWithinToleranceTest);\n                }\n              } else {\n                // reach end of playlist\n                foundFrag = fragments[fragLen - 1];\n              }\n              if (foundFrag) {\n                frag = foundFrag;\n                start = foundFrag.start;\n                // logger.log('find SN matching with pos:' +  bufferEnd + ':' + frag.sn);\n                if (fragPrevious && frag.level === fragPrevious.level && frag.sn === fragPrevious.sn) {\n                  if (frag.sn < trackDetails.endSN) {\n                    frag = fragments[frag.sn + 1 - trackDetails.startSN];\n                    logger[\"b\" /* logger */].log('SN just loaded, load next one: ' + frag.sn);\n                  } else {\n                    frag = null;\n                  }\n                }\n              }\n            }\n          if (frag) {\n            // logger.log('      loading frag ' + i +',pos/bufEnd:' + pos.toFixed(3) + '/' + bufferEnd.toFixed(3));\n            if (frag.encrypted) {\n              logger[\"b\" /* logger */].log('Loading key for ' + frag.sn + ' of [' + trackDetails.startSN + ' ,' + trackDetails.endSN + '],track ' + trackId);\n              this.state = audio_stream_controller_State.KEY_LOADING;\n              hls.trigger(events[\"a\" /* default */].KEY_LOADING, { frag: frag });\n            } else {\n              logger[\"b\" /* logger */].log('Loading ' + frag.sn + ', cc: ' + frag.cc + ' of [' + trackDetails.startSN + ' ,' + trackDetails.endSN + '],track ' + trackId + ', currentTime:' + pos + ',bufferEnd:' + bufferEnd.toFixed(3));\n              // only load if fragment is not loaded or if in audio switch\n              // we force a frag loading in audio switch as fragment tracker might not have evicted previous frags in case of quick audio switch\n              if (audioSwitch || this.fragmentTracker.getState(frag) === FragmentState.NOT_LOADED) {\n                this.fragCurrent = frag;\n                this.startFragRequested = true;\n                if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(frag.sn)) {\n                  this.nextLoadPosition = frag.start + frag.duration;\n                }\n\n                hls.trigger(events[\"a\" /* default */].FRAG_LOADING, { frag: frag });\n                this.state = audio_stream_controller_State.FRAG_LOADING;\n              }\n            }\n          }\n        }\n        break;\n      case audio_stream_controller_State.WAITING_TRACK:\n        track = this.tracks[this.trackId];\n        // check if playlist is already loaded\n        if (track && track.details) {\n          this.state = audio_stream_controller_State.IDLE;\n        }\n\n        break;\n      case audio_stream_controller_State.FRAG_LOADING_WAITING_RETRY:\n        var now = audio_stream_controller_performance.now();\n        var retryDate = this.retryDate;\n        media = this.media;\n        var isSeeking = media && media.seeking;\n        // if current time is gt than retryDate, or if media seeking let's switch to IDLE state to retry loading\n        if (!retryDate || now >= retryDate || isSeeking) {\n          logger[\"b\" /* logger */].log('audioStreamController: retryDate reached, switch back to IDLE state');\n          this.state = audio_stream_controller_State.IDLE;\n        }\n        break;\n      case audio_stream_controller_State.WAITING_INIT_PTS:\n        var videoTrackCC = this.videoTrackCC;\n        if (this.initPTS[videoTrackCC] === undefined) {\n          break;\n        }\n\n        // Ensure we don't get stuck in the WAITING_INIT_PTS state if the waiting frag CC doesn't match any initPTS\n        var waitingFrag = this.waitingFragment;\n        if (waitingFrag) {\n          var waitingFragCC = waitingFrag.frag.cc;\n          if (videoTrackCC !== waitingFragCC) {\n            track = this.tracks[this.trackId];\n            if (track.details && track.details.live) {\n              logger[\"b\" /* logger */].warn('Waiting fragment CC (' + waitingFragCC + ') does not match video track CC (' + videoTrackCC + ')');\n              this.waitingFragment = null;\n              this.state = audio_stream_controller_State.IDLE;\n            }\n          } else {\n            this.state = audio_stream_controller_State.FRAG_LOADING;\n            this.onFragLoaded(this.waitingFragment);\n            this.waitingFragment = null;\n          }\n        } else {\n          this.state = audio_stream_controller_State.IDLE;\n        }\n\n        break;\n      case audio_stream_controller_State.STOPPED:\n      case audio_stream_controller_State.FRAG_LOADING:\n      case audio_stream_controller_State.PARSING:\n      case audio_stream_controller_State.PARSED:\n      case audio_stream_controller_State.ENDED:\n        break;\n      default:\n        break;\n    }\n  };\n\n  AudioStreamController.prototype.onMediaAttached = function onMediaAttached(data) {\n    var media = this.media = this.mediaBuffer = data.media;\n    this.onvseeking = this.onMediaSeeking.bind(this);\n    this.onvended = this.onMediaEnded.bind(this);\n    media.addEventListener('seeking', this.onvseeking);\n    media.addEventListener('ended', this.onvended);\n    var config = this.config;\n    if (this.tracks && config.autoStartLoad) {\n      this.startLoad(config.startPosition);\n    }\n  };\n\n  AudioStreamController.prototype.onMediaDetaching = function onMediaDetaching() {\n    var media = this.media;\n    if (media && media.ended) {\n      logger[\"b\" /* logger */].log('MSE detaching and video ended, reset startPosition');\n      this.startPosition = this.lastCurrentTime = 0;\n    }\n\n    // remove video listeners\n    if (media) {\n      media.removeEventListener('seeking', this.onvseeking);\n      media.removeEventListener('ended', this.onvended);\n      this.onvseeking = this.onvseeked = this.onvended = null;\n    }\n    this.media = this.mediaBuffer = this.videoBuffer = null;\n    this.loadedmetadata = false;\n    this.stopLoad();\n  };\n\n  AudioStreamController.prototype.onMediaSeeking = function onMediaSeeking() {\n    if (this.state === audio_stream_controller_State.ENDED) {\n      // switch to IDLE state to check for potential new fragment\n      this.state = audio_stream_controller_State.IDLE;\n    }\n    if (this.media) {\n      this.lastCurrentTime = this.media.currentTime;\n    }\n\n    // tick to speed up processing\n    this.tick();\n  };\n\n  AudioStreamController.prototype.onMediaEnded = function onMediaEnded() {\n    // reset startPosition and lastCurrentTime to restart playback @ stream beginning\n    this.startPosition = this.lastCurrentTime = 0;\n  };\n\n  AudioStreamController.prototype.onAudioTracksUpdated = function onAudioTracksUpdated(data) {\n    logger[\"b\" /* logger */].log('audio tracks updated');\n    this.tracks = data.audioTracks;\n  };\n\n  AudioStreamController.prototype.onAudioTrackSwitching = function onAudioTrackSwitching(data) {\n    // if any URL found on new audio track, it is an alternate audio track\n    var altAudio = !!data.url;\n    this.trackId = data.id;\n\n    this.fragCurrent = null;\n    this.state = audio_stream_controller_State.PAUSED;\n    this.waitingFragment = null;\n    // destroy useless demuxer when switching audio to main\n    if (!altAudio) {\n      if (this.demuxer) {\n        this.demuxer.destroy();\n        this.demuxer = null;\n      }\n    } else {\n      // switching to audio track, start timer if not already started\n      this.setInterval(100);\n    }\n\n    // should we switch tracks ?\n    if (altAudio) {\n      this.audioSwitch = true;\n      // main audio track are handled by stream-controller, just do something if switching to alt audio track\n      this.state = audio_stream_controller_State.IDLE;\n    }\n    this.tick();\n  };\n\n  AudioStreamController.prototype.onAudioTrackLoaded = function onAudioTrackLoaded(data) {\n    var newDetails = data.details,\n        trackId = data.id,\n        track = this.tracks[trackId],\n        duration = newDetails.totalduration,\n        sliding = 0;\n\n    logger[\"b\" /* logger */].log('track ' + trackId + ' loaded [' + newDetails.startSN + ',' + newDetails.endSN + '],duration:' + duration);\n\n    if (newDetails.live) {\n      var curDetails = track.details;\n      if (curDetails && newDetails.fragments.length > 0) {\n        // we already have details for that level, merge them\n        mergeDetails(curDetails, newDetails);\n        sliding = newDetails.fragments[0].start;\n        // TODO\n        // this.liveSyncPosition = this.computeLivePosition(sliding, curDetails);\n        if (newDetails.PTSKnown) {\n          logger[\"b\" /* logger */].log('live audio playlist sliding:' + sliding.toFixed(3));\n        } else {\n          logger[\"b\" /* logger */].log('live audio playlist - outdated PTS, unknown sliding');\n        }\n      } else {\n        newDetails.PTSKnown = false;\n        logger[\"b\" /* logger */].log('live audio playlist - first load, unknown sliding');\n      }\n    } else {\n      newDetails.PTSKnown = false;\n    }\n    track.details = newDetails;\n\n    // compute start position\n    if (!this.startFragRequested) {\n      // compute start position if set to -1. use it straight away if value is defined\n      if (this.startPosition === -1) {\n        // first, check if start time offset has been set in playlist, if yes, use this value\n        var startTimeOffset = newDetails.startTimeOffset;\n        if (Object(number_isFinite[\"a\" /* isFiniteNumber */])(startTimeOffset)) {\n          logger[\"b\" /* logger */].log('start time offset found in playlist, adjust startPosition to ' + startTimeOffset);\n          this.startPosition = startTimeOffset;\n        } else {\n          this.startPosition = 0;\n        }\n      }\n      this.nextLoadPosition = this.startPosition;\n    }\n    // only switch batck to IDLE state if we were waiting for track to start downloading a new fragment\n    if (this.state === audio_stream_controller_State.WAITING_TRACK) {\n      this.state = audio_stream_controller_State.IDLE;\n    }\n\n    // trigger handler right now\n    this.tick();\n  };\n\n  AudioStreamController.prototype.onKeyLoaded = function onKeyLoaded() {\n    if (this.state === audio_stream_controller_State.KEY_LOADING) {\n      this.state = audio_stream_controller_State.IDLE;\n      this.tick();\n    }\n  };\n\n  AudioStreamController.prototype.onFragLoaded = function onFragLoaded(data) {\n    var fragCurrent = this.fragCurrent,\n        fragLoaded = data.frag;\n    if (this.state === audio_stream_controller_State.FRAG_LOADING && fragCurrent && fragLoaded.type === 'audio' && fragLoaded.level === fragCurrent.level && fragLoaded.sn === fragCurrent.sn) {\n      var track = this.tracks[this.trackId],\n          details = track.details,\n          duration = details.totalduration,\n          trackId = fragCurrent.level,\n          sn = fragCurrent.sn,\n          cc = fragCurrent.cc,\n          audioCodec = this.config.defaultAudioCodec || track.audioCodec || 'mp4a.40.2',\n          stats = this.stats = data.stats;\n      if (sn === 'initSegment') {\n        this.state = audio_stream_controller_State.IDLE;\n\n        stats.tparsed = stats.tbuffered = audio_stream_controller_performance.now();\n        details.initSegment.data = data.payload;\n        this.hls.trigger(events[\"a\" /* default */].FRAG_BUFFERED, { stats: stats, frag: fragCurrent, id: 'audio' });\n        this.tick();\n      } else {\n        this.state = audio_stream_controller_State.PARSING;\n        // transmux the MPEG-TS data to ISO-BMFF segments\n        this.appended = false;\n        if (!this.demuxer) {\n          this.demuxer = new demux_demuxer(this.hls, 'audio');\n        }\n\n        // Check if we have video initPTS\n        // If not we need to wait for it\n        var initPTS = this.initPTS[cc];\n        var initSegmentData = details.initSegment ? details.initSegment.data : [];\n        if (details.initSegment || initPTS !== undefined) {\n          this.pendingBuffering = true;\n          logger[\"b\" /* logger */].log('Demuxing ' + sn + ' of [' + details.startSN + ' ,' + details.endSN + '],track ' + trackId);\n          // time Offset is accurate if level PTS is known, or if playlist is not sliding (not live)\n          var accurateTimeOffset = false; // details.PTSKnown || !details.live;\n          this.demuxer.push(data.payload, initSegmentData, audioCodec, null, fragCurrent, duration, accurateTimeOffset, initPTS);\n        } else {\n          logger[\"b\" /* logger */].log('unknown video PTS for continuity counter ' + cc + ', waiting for video PTS before demuxing audio frag ' + sn + ' of [' + details.startSN + ' ,' + details.endSN + '],track ' + trackId);\n          this.waitingFragment = data;\n          this.state = audio_stream_controller_State.WAITING_INIT_PTS;\n        }\n      }\n    }\n    this.fragLoadError = 0;\n  };\n\n  AudioStreamController.prototype.onFragParsingInitSegment = function onFragParsingInitSegment(data) {\n    var fragCurrent = this.fragCurrent;\n    var fragNew = data.frag;\n    if (fragCurrent && data.id === 'audio' && fragNew.sn === fragCurrent.sn && fragNew.level === fragCurrent.level && this.state === audio_stream_controller_State.PARSING) {\n      var tracks = data.tracks,\n          track = void 0;\n\n      // delete any video track found on audio demuxer\n      if (tracks.video) {\n        delete tracks.video;\n      }\n\n      // include levelCodec in audio and video tracks\n      track = tracks.audio;\n      if (track) {\n        track.levelCodec = track.codec;\n        track.id = data.id;\n        this.hls.trigger(events[\"a\" /* default */].BUFFER_CODECS, tracks);\n        logger[\"b\" /* logger */].log('audio track:audio,container:' + track.container + ',codecs[level/parsed]=[' + track.levelCodec + '/' + track.codec + ']');\n        var initSegment = track.initSegment;\n        if (initSegment) {\n          var appendObj = { type: 'audio', data: initSegment, parent: 'audio', content: 'initSegment' };\n          if (this.audioSwitch) {\n            this.pendingData = [appendObj];\n          } else {\n            this.appended = true;\n            // arm pending Buffering flag before appending a segment\n            this.pendingBuffering = true;\n            this.hls.trigger(events[\"a\" /* default */].BUFFER_APPENDING, appendObj);\n          }\n        }\n        // trigger handler right now\n        this.tick();\n      }\n    }\n  };\n\n  AudioStreamController.prototype.onFragParsingData = function onFragParsingData(data) {\n    var _this2 = this;\n\n    var fragCurrent = this.fragCurrent;\n    var fragNew = data.frag;\n    if (fragCurrent && data.id === 'audio' && data.type === 'audio' && fragNew.sn === fragCurrent.sn && fragNew.level === fragCurrent.level && this.state === audio_stream_controller_State.PARSING) {\n      var trackId = this.trackId,\n          track = this.tracks[trackId],\n          hls = this.hls;\n\n      if (!Object(number_isFinite[\"a\" /* isFiniteNumber */])(data.endPTS)) {\n        data.endPTS = data.startPTS + fragCurrent.duration;\n        data.endDTS = data.startDTS + fragCurrent.duration;\n      }\n\n      fragCurrent.addElementaryStream(loader_fragment.ElementaryStreamTypes.AUDIO);\n\n      logger[\"b\" /* logger */].log('parsed ' + data.type + ',PTS:[' + data.startPTS.toFixed(3) + ',' + data.endPTS.toFixed(3) + '],DTS:[' + data.startDTS.toFixed(3) + '/' + data.endDTS.toFixed(3) + '],nb:' + data.nb);\n      updateFragPTSDTS(track.details, fragCurrent, data.startPTS, data.endPTS);\n\n      var audioSwitch = this.audioSwitch,\n          media = this.media,\n          appendOnBufferFlush = false;\n      // Only flush audio from old audio tracks when PTS is known on new audio track\n      if (audioSwitch && media) {\n        if (media.readyState) {\n          var currentTime = media.currentTime;\n          logger[\"b\" /* logger */].log('switching audio track : currentTime:' + currentTime);\n          if (currentTime >= data.startPTS) {\n            logger[\"b\" /* logger */].log('switching audio track : flushing all audio');\n            this.state = audio_stream_controller_State.BUFFER_FLUSHING;\n            hls.trigger(events[\"a\" /* default */].BUFFER_FLUSHING, { startOffset: 0, endOffset: Number.POSITIVE_INFINITY, type: 'audio' });\n            appendOnBufferFlush = true;\n            // Lets announce that the initial audio track switch flush occur\n            this.audioSwitch = false;\n            hls.trigger(events[\"a\" /* default */].AUDIO_TRACK_SWITCHED, { id: trackId });\n          }\n        } else {\n          // Lets announce that the initial audio track switch flush occur\n          this.audioSwitch = false;\n          hls.trigger(events[\"a\" /* default */].AUDIO_TRACK_SWITCHED, { id: trackId });\n        }\n      }\n\n      var pendingData = this.pendingData;\n\n      if (!pendingData) {\n        logger[\"b\" /* logger */].warn('Apparently attempt to enqueue media payload without codec initialization data upfront');\n        hls.trigger(events[\"a\" /* default */].ERROR, { type: errors[\"b\" /* ErrorTypes */].MEDIA_ERROR, details: null, fatal: true });\n        return;\n      }\n\n      if (!this.audioSwitch) {\n        [data.data1, data.data2].forEach(function (buffer) {\n          if (buffer && buffer.length) {\n            pendingData.push({ type: data.type, data: buffer, parent: 'audio', content: 'data' });\n          }\n        });\n        if (!appendOnBufferFlush && pendingData.length) {\n          pendingData.forEach(function (appendObj) {\n            // only append in PARSING state (rationale is that an appending error could happen synchronously on first segment appending)\n            // in that case it is useless to append following segments\n            if (_this2.state === audio_stream_controller_State.PARSING) {\n              // arm pending Buffering flag before appending a segment\n              _this2.pendingBuffering = true;\n              _this2.hls.trigger(events[\"a\" /* default */].BUFFER_APPENDING, appendObj);\n            }\n          });\n          this.pendingData = [];\n          this.appended = true;\n        }\n      }\n      // trigger handler right now\n      this.tick();\n    }\n  };\n\n  AudioStreamController.prototype.onFragParsed = function onFragParsed(data) {\n    var fragCurrent = this.fragCurrent;\n    var fragNew = data.frag;\n    if (fragCurrent && data.id === 'audio' && fragNew.sn === fragCurrent.sn && fragNew.level === fragCurrent.level && this.state === audio_stream_controller_State.PARSING) {\n      this.stats.tparsed = audio_stream_controller_performance.now();\n      this.state = audio_stream_controller_State.PARSED;\n      this._checkAppendedParsed();\n    }\n  };\n\n  AudioStreamController.prototype.onBufferReset = function onBufferReset() {\n    // reset reference to sourcebuffers\n    this.mediaBuffer = this.videoBuffer = null;\n    this.loadedmetadata = false;\n  };\n\n  AudioStreamController.prototype.onBufferCreated = function onBufferCreated(data) {\n    var audioTrack = data.tracks.audio;\n    if (audioTrack) {\n      this.mediaBuffer = audioTrack.buffer;\n      this.loadedmetadata = true;\n    }\n    if (data.tracks.video) {\n      this.videoBuffer = data.tracks.video.buffer;\n    }\n  };\n\n  AudioStreamController.prototype.onBufferAppended = function onBufferAppended(data) {\n    if (data.parent === 'audio') {\n      var state = this.state;\n      if (state === audio_stream_controller_State.PARSING || state === audio_stream_controller_State.PARSED) {\n        // check if all buffers have been appended\n        this.pendingBuffering = data.pending > 0;\n        this._checkAppendedParsed();\n      }\n    }\n  };\n\n  AudioStreamController.prototype._checkAppendedParsed = function _checkAppendedParsed() {\n    // trigger handler right now\n    if (this.state === audio_stream_controller_State.PARSED && (!this.appended || !this.pendingBuffering)) {\n      var frag = this.fragCurrent,\n          stats = this.stats,\n          hls = this.hls;\n      if (frag) {\n        this.fragPrevious = frag;\n        stats.tbuffered = audio_stream_controller_performance.now();\n        hls.trigger(events[\"a\" /* default */].FRAG_BUFFERED, { stats: stats, frag: frag, id: 'audio' });\n        var media = this.mediaBuffer ? this.mediaBuffer : this.media;\n        logger[\"b\" /* logger */].log('audio buffered : ' + time_ranges.toString(media.buffered));\n        if (this.audioSwitch && this.appended) {\n          this.audioSwitch = false;\n          hls.trigger(events[\"a\" /* default */].AUDIO_TRACK_SWITCHED, { id: this.trackId });\n        }\n        this.state = audio_stream_controller_State.IDLE;\n      }\n      this.tick();\n    }\n  };\n\n  AudioStreamController.prototype.onError = function onError(data) {\n    var frag = data.frag;\n    // don't handle frag error not related to audio fragment\n    if (frag && frag.type !== 'audio') {\n      return;\n    }\n\n    switch (data.details) {\n      case errors[\"a\" /* ErrorDetails */].FRAG_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].FRAG_LOAD_TIMEOUT:\n        var _frag = data.frag;\n        // don't handle frag error not related to audio fragment\n        if (_frag && _frag.type !== 'audio') {\n          break;\n        }\n\n        if (!data.fatal) {\n          var loadError = this.fragLoadError;\n          if (loadError) {\n            loadError++;\n          } else {\n            loadError = 1;\n          }\n\n          var config = this.config;\n          if (loadError <= config.fragLoadingMaxRetry) {\n            this.fragLoadError = loadError;\n            // exponential backoff capped to config.fragLoadingMaxRetryTimeout\n            var delay = Math.min(Math.pow(2, loadError - 1) * config.fragLoadingRetryDelay, config.fragLoadingMaxRetryTimeout);\n            logger[\"b\" /* logger */].warn('AudioStreamController: frag loading failed, retry in ' + delay + ' ms');\n            this.retryDate = audio_stream_controller_performance.now() + delay;\n            // retry loading state\n            this.state = audio_stream_controller_State.FRAG_LOADING_WAITING_RETRY;\n          } else {\n            logger[\"b\" /* logger */].error('AudioStreamController: ' + data.details + ' reaches max retry, redispatch as fatal ...');\n            // switch error to fatal\n            data.fatal = true;\n            this.state = audio_stream_controller_State.ERROR;\n          }\n        }\n        break;\n      case errors[\"a\" /* ErrorDetails */].AUDIO_TRACK_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].AUDIO_TRACK_LOAD_TIMEOUT:\n      case errors[\"a\" /* ErrorDetails */].KEY_LOAD_ERROR:\n      case errors[\"a\" /* ErrorDetails */].KEY_LOAD_TIMEOUT:\n        //  when in ERROR state, don't switch back to IDLE state in case a non-fatal error is received\n        if (this.state !== audio_stream_controller_State.ERROR) {\n          // if fatal error, stop processing, otherwise move to IDLE to retry loading\n          this.state = data.fatal ? audio_stream_controller_State.ERROR : audio_stream_controller_State.IDLE;\n          logger[\"b\" /* logger */].warn('AudioStreamController: ' + data.details + ' while loading frag, now switching to ' + this.state + ' state ...');\n        }\n        break;\n      case errors[\"a\" /* ErrorDetails */].BUFFER_FULL_ERROR:\n        // if in appending state\n        if (data.parent === 'audio' && (this.state === audio_stream_controller_State.PARSING || this.state === audio_stream_controller_State.PARSED)) {\n          var media = this.mediaBuffer,\n              currentTime = this.media.currentTime,\n              mediaBuffered = media && BufferHelper.isBuffered(media, currentTime) && BufferHelper.isBuffered(media, currentTime + 0.5);\n          // reduce max buf len if current position is buffered\n          if (mediaBuffered) {\n            var _config = this.config;\n            if (_config.maxMaxBufferLength >= _config.maxBufferLength) {\n              // reduce max buffer length as it might be too high. we do this to avoid loop flushing ...\n              _config.maxMaxBufferLength /= 2;\n              logger[\"b\" /* logger */].warn('AudioStreamController: reduce max buffer length to ' + _config.maxMaxBufferLength + 's');\n            }\n            this.state = audio_stream_controller_State.IDLE;\n          } else {\n            // current position is not buffered, but browser is still complaining about buffer full error\n            // this happens on IE/Edge, refer to https://github.com/video-dev/hls.js/pull/708\n            // in that case flush the whole audio buffer to recover\n            logger[\"b\" /* logger */].warn('AudioStreamController: buffer full error also media.currentTime is not buffered, flush audio buffer');\n            this.fragCurrent = null;\n            // flush everything\n            this.state = audio_stream_controller_State.BUFFER_FLUSHING;\n            this.hls.trigger(events[\"a\" /* default */].BUFFER_FLUSHING, { startOffset: 0, endOffset: Number.POSITIVE_INFINITY, type: 'audio' });\n          }\n        }\n        break;\n      default:\n        break;\n    }\n  };\n\n  AudioStreamController.prototype.onBufferFlushed = function onBufferFlushed() {\n    var _this3 = this;\n\n    var pendingData = this.pendingData;\n    if (pendingData && pendingData.length) {\n      logger[\"b\" /* logger */].log('AudioStreamController: appending pending audio data after buffer flushed');\n      pendingData.forEach(function (appendObj) {\n        _this3.hls.trigger(events[\"a\" /* default */].BUFFER_APPENDING, appendObj);\n      });\n      this.appended = true;\n      this.pendingData = [];\n      this.state = audio_stream_controller_State.PARSED;\n    } else {\n      // move to IDLE once flush complete. this should trigger new fragment loading\n      this.state = audio_stream_controller_State.IDLE;\n      // reset reference to frag\n      this.fragPrevious = null;\n      this.tick();\n    }\n  };\n\n  audio_stream_controller__createClass(AudioStreamController, [{\n    key: 'state',\n    set: function set(nextState) {\n      if (this.state !== nextState) {\n        var previousState = this.state;\n        this._state = nextState;\n        logger[\"b\" /* logger */].log('audio stream:' + previousState + '->' + nextState);\n      }\n    },\n    get: function get() {\n      return this._state;\n    }\n  }]);\n\n  return AudioStreamController;\n}(task_loop);\n\n/* harmony default export */ var audio_stream_controller = (audio_stream_controller_AudioStreamController);\n// CONCATENATED MODULE: ./src/utils/vttcue.js\n/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* harmony default export */ var vttcue = ((function () {\n  if (typeof window !== 'undefined' && window.VTTCue) {\n    return window.VTTCue;\n  }\n\n  var autoKeyword = 'auto';\n  var directionSetting = {\n    '': true,\n    lr: true,\n    rl: true\n  };\n  var alignSetting = {\n    start: true,\n    middle: true,\n    end: true,\n    left: true,\n    right: true\n  };\n\n  function findDirectionSetting(value) {\n    if (typeof value !== 'string') {\n      return false;\n    }\n\n    var dir = directionSetting[value.toLowerCase()];\n    return dir ? value.toLowerCase() : false;\n  }\n\n  function findAlignSetting(value) {\n    if (typeof value !== 'string') {\n      return false;\n    }\n\n    var align = alignSetting[value.toLowerCase()];\n    return align ? value.toLowerCase() : false;\n  }\n\n  function extend(obj) {\n    var i = 1;\n    for (; i < arguments.length; i++) {\n      var cobj = arguments[i];\n      for (var p in cobj) {\n        obj[p] = cobj[p];\n      }\n    }\n\n    return obj;\n  }\n\n  function VTTCue(startTime, endTime, text) {\n    var cue = this;\n    var isIE8 = function () {\n      if (typeof navigator === 'undefined') {\n        return;\n      }\n\n      return (/MSIE\\s8\\.0/.test(navigator.userAgent)\n      );\n    }();\n    var baseObj = {};\n\n    if (isIE8) {\n      cue = document.createElement('custom');\n    } else {\n      baseObj.enumerable = true;\n    }\n\n    /**\n     * Shim implementation specific properties. These properties are not in\n     * the spec.\n     */\n\n    // Lets us know when the VTTCue's data has changed in such a way that we need\n    // to recompute its display state. This lets us compute its display state\n    // lazily.\n    cue.hasBeenReset = false;\n\n    /**\n     * VTTCue and TextTrackCue properties\n     * http://dev.w3.org/html5/webvtt/#vttcue-interface\n     */\n\n    var _id = '';\n    var _pauseOnExit = false;\n    var _startTime = startTime;\n    var _endTime = endTime;\n    var _text = text;\n    var _region = null;\n    var _vertical = '';\n    var _snapToLines = true;\n    var _line = 'auto';\n    var _lineAlign = 'start';\n    var _position = 50;\n    var _positionAlign = 'middle';\n    var _size = 50;\n    var _align = 'middle';\n\n    Object.defineProperty(cue, 'id', extend({}, baseObj, {\n      get: function get() {\n        return _id;\n      },\n      set: function set(value) {\n        _id = '' + value;\n      }\n    }));\n\n    Object.defineProperty(cue, 'pauseOnExit', extend({}, baseObj, {\n      get: function get() {\n        return _pauseOnExit;\n      },\n      set: function set(value) {\n        _pauseOnExit = !!value;\n      }\n    }));\n\n    Object.defineProperty(cue, 'startTime', extend({}, baseObj, {\n      get: function get() {\n        return _startTime;\n      },\n      set: function set(value) {\n        if (typeof value !== 'number') {\n          throw new TypeError('Start time must be set to a number.');\n        }\n\n        _startTime = value;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'endTime', extend({}, baseObj, {\n      get: function get() {\n        return _endTime;\n      },\n      set: function set(value) {\n        if (typeof value !== 'number') {\n          throw new TypeError('End time must be set to a number.');\n        }\n\n        _endTime = value;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'text', extend({}, baseObj, {\n      get: function get() {\n        return _text;\n      },\n      set: function set(value) {\n        _text = '' + value;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'region', extend({}, baseObj, {\n      get: function get() {\n        return _region;\n      },\n      set: function set(value) {\n        _region = value;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'vertical', extend({}, baseObj, {\n      get: function get() {\n        return _vertical;\n      },\n      set: function set(value) {\n        var setting = findDirectionSetting(value);\n        // Have to check for false because the setting an be an empty string.\n        if (setting === false) {\n          throw new SyntaxError('An invalid or illegal string was specified.');\n        }\n\n        _vertical = setting;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'snapToLines', extend({}, baseObj, {\n      get: function get() {\n        return _snapToLines;\n      },\n      set: function set(value) {\n        _snapToLines = !!value;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'line', extend({}, baseObj, {\n      get: function get() {\n        return _line;\n      },\n      set: function set(value) {\n        if (typeof value !== 'number' && value !== autoKeyword) {\n          throw new SyntaxError('An invalid number or illegal string was specified.');\n        }\n\n        _line = value;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'lineAlign', extend({}, baseObj, {\n      get: function get() {\n        return _lineAlign;\n      },\n      set: function set(value) {\n        var setting = findAlignSetting(value);\n        if (!setting) {\n          throw new SyntaxError('An invalid or illegal string was specified.');\n        }\n\n        _lineAlign = setting;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'position', extend({}, baseObj, {\n      get: function get() {\n        return _position;\n      },\n      set: function set(value) {\n        if (value < 0 || value > 100) {\n          throw new Error('Position must be between 0 and 100.');\n        }\n\n        _position = value;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'positionAlign', extend({}, baseObj, {\n      get: function get() {\n        return _positionAlign;\n      },\n      set: function set(value) {\n        var setting = findAlignSetting(value);\n        if (!setting) {\n          throw new SyntaxError('An invalid or illegal string was specified.');\n        }\n\n        _positionAlign = setting;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'size', extend({}, baseObj, {\n      get: function get() {\n        return _size;\n      },\n      set: function set(value) {\n        if (value < 0 || value > 100) {\n          throw new Error('Size must be between 0 and 100.');\n        }\n\n        _size = value;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    Object.defineProperty(cue, 'align', extend({}, baseObj, {\n      get: function get() {\n        return _align;\n      },\n      set: function set(value) {\n        var setting = findAlignSetting(value);\n        if (!setting) {\n          throw new SyntaxError('An invalid or illegal string was specified.');\n        }\n\n        _align = setting;\n        this.hasBeenReset = true;\n      }\n    }));\n\n    /**\n     * Other <track> spec defined properties\n     */\n\n    // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\n    cue.displayState = undefined;\n\n    if (isIE8) {\n      return cue;\n    }\n  }\n\n  /**\n   * VTTCue methods\n   */\n\n  VTTCue.prototype.getCueAsHTML = function () {\n    // Assume WebVTT.convertCueToDOMTree is on the global.\n    var WebVTT = window.WebVTT;\n    return WebVTT.convertCueToDOMTree(window, this.text);\n  };\n\n  return VTTCue;\n})());\n// CONCATENATED MODULE: ./src/utils/vttparser.js\n/*\n * Source: https://github.com/mozilla/vtt.js/blob/master/dist/vtt.js#L1716\n */\n\n\n\nvar StringDecoder = function StringDecoder() {\n  return {\n    decode: function decode(data) {\n      if (!data) {\n        return '';\n      }\n\n      if (typeof data !== 'string') {\n        throw new Error('Error - expected string data.');\n      }\n\n      return decodeURIComponent(encodeURIComponent(data));\n    }\n  };\n};\n\nfunction VTTParser() {\n  this.window = window;\n  this.state = 'INITIAL';\n  this.buffer = '';\n  this.decoder = new StringDecoder();\n  this.regionList = [];\n}\n\n// Try to parse input as a time stamp.\nfunction parseTimeStamp(input) {\n  function computeSeconds(h, m, s, f) {\n    return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\n  }\n\n  var m = input.match(/^(\\d+):(\\d{2})(:\\d{2})?\\.(\\d{3})/);\n  if (!m) {\n    return null;\n  }\n\n  if (m[3]) {\n    // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\n    return computeSeconds(m[1], m[2], m[3].replace(':', ''), m[4]);\n  } else if (m[1] > 59) {\n    // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n    // First position is hours as it's over 59.\n    return computeSeconds(m[1], m[2], 0, m[4]);\n  } else {\n    // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\n    return computeSeconds(0, m[1], m[2], m[4]);\n  }\n}\n\n// A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\nfunction Settings() {\n  this.values = Object.create(null);\n}\n\nSettings.prototype = {\n  // Only accept the first assignment to any key.\n  set: function set(k, v) {\n    if (!this.get(k) && v !== '') {\n      this.values[k] = v;\n    }\n  },\n  // Return the value for a key, or a default value.\n  // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n  // a number of possible default values as properties where 'defaultKey' is\n  // the key of the property that will be chosen; otherwise it's assumed to be\n  // a single value.\n  get: function get(k, dflt, defaultKey) {\n    if (defaultKey) {\n      return this.has(k) ? this.values[k] : dflt[defaultKey];\n    }\n\n    return this.has(k) ? this.values[k] : dflt;\n  },\n  // Check whether we have a value for a key.\n  has: function has(k) {\n    return k in this.values;\n  },\n  // Accept a setting if its one of the given alternatives.\n  alt: function alt(k, v, a) {\n    for (var n = 0; n < a.length; ++n) {\n      if (v === a[n]) {\n        this.set(k, v);\n        break;\n      }\n    }\n  },\n  // Accept a setting if its a valid (signed) integer.\n  integer: function integer(k, v) {\n    if (/^-?\\d+$/.test(v)) {\n      // integer\n      this.set(k, parseInt(v, 10));\n    }\n  },\n  // Accept a setting if its a valid percentage.\n  percent: function percent(k, v) {\n    var m = void 0;\n    if (m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/)) {\n      v = parseFloat(v);\n      if (v >= 0 && v <= 100) {\n        this.set(k, v);\n        return true;\n      }\n    }\n    return false;\n  }\n};\n\n// Helper function to parse input into groups separated by 'groupDelim', and\n// interprete each group as a key/value pair separated by 'keyValueDelim'.\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\n  var groups = groupDelim ? input.split(groupDelim) : [input];\n  for (var i in groups) {\n    if (typeof groups[i] !== 'string') {\n      continue;\n    }\n\n    var kv = groups[i].split(keyValueDelim);\n    if (kv.length !== 2) {\n      continue;\n    }\n\n    var k = kv[0];\n    var v = kv[1];\n    callback(k, v);\n  }\n}\n\nvar defaults = new vttcue(0, 0, 0);\n// 'middle' was changed to 'center' in the spec: https://github.com/w3c/webvtt/pull/244\n//  Safari doesn't yet support this change, but FF and Chrome do.\nvar center = defaults.align === 'middle' ? 'middle' : 'center';\n\nfunction parseCue(input, cue, regionList) {\n  // Remember the original input if we need to throw an error.\n  var oInput = input;\n  // 4.1 WebVTT timestamp\n  function consumeTimeStamp() {\n    var ts = parseTimeStamp(input);\n    if (ts === null) {\n      throw new Error('Malformed timestamp: ' + oInput);\n    }\n\n    // Remove time stamp from input.\n    input = input.replace(/^[^\\sa-zA-Z-]+/, '');\n    return ts;\n  }\n\n  // 4.4.2 WebVTT cue settings\n  function consumeCueSettings(input, cue) {\n    var settings = new Settings();\n\n    parseOptions(input, function (k, v) {\n      switch (k) {\n        case 'region':\n          // Find the last region we parsed with the same region id.\n          for (var i = regionList.length - 1; i >= 0; i--) {\n            if (regionList[i].id === v) {\n              settings.set(k, regionList[i].region);\n              break;\n            }\n          }\n          break;\n        case 'vertical':\n          settings.alt(k, v, ['rl', 'lr']);\n          break;\n        case 'line':\n          var vals = v.split(','),\n              vals0 = vals[0];\n          settings.integer(k, vals0);\n          if (settings.percent(k, vals0)) {\n            settings.set('snapToLines', false);\n          }\n\n          settings.alt(k, vals0, ['auto']);\n          if (vals.length === 2) {\n            settings.alt('lineAlign', vals[1], ['start', center, 'end']);\n          }\n\n          break;\n        case 'position':\n          vals = v.split(',');\n          settings.percent(k, vals[0]);\n          if (vals.length === 2) {\n            settings.alt('positionAlign', vals[1], ['start', center, 'end', 'line-left', 'line-right', 'auto']);\n          }\n\n          break;\n        case 'size':\n          settings.percent(k, v);\n          break;\n        case 'align':\n          settings.alt(k, v, ['start', center, 'end', 'left', 'right']);\n          break;\n      }\n    }, /:/, /\\s/);\n\n    // Apply default values for any missing fields.\n    cue.region = settings.get('region', null);\n    cue.vertical = settings.get('vertical', '');\n    var line = settings.get('line', 'auto');\n    if (line === 'auto' && defaults.line === -1) {\n      // set numeric line number for Safari\n      line = -1;\n    }\n    cue.line = line;\n    cue.lineAlign = settings.get('lineAlign', 'start');\n    cue.snapToLines = settings.get('snapToLines', true);\n    cue.size = settings.get('size', 100);\n    cue.align = settings.get('align', center);\n    var position = settings.get('position', 'auto');\n    if (position === 'auto' && defaults.position === 50) {\n      // set numeric position for Safari\n      position = cue.align === 'start' || cue.align === 'left' ? 0 : cue.align === 'end' || cue.align === 'right' ? 100 : 50;\n    }\n    cue.position = position;\n  }\n\n  function skipWhitespace() {\n    input = input.replace(/^\\s+/, '');\n  }\n\n  // 4.1 WebVTT cue timings.\n  skipWhitespace();\n  cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n  skipWhitespace();\n  if (input.substr(0, 3) !== '-->') {\n    // (3) next characters must match '-->'\n    throw new Error('Malformed time stamp (time stamps must be separated by \\'-->\\'): ' + oInput);\n  }\n  input = input.substr(3);\n  skipWhitespace();\n  cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n  // 4.1 WebVTT cue settings list.\n  skipWhitespace();\n  consumeCueSettings(input, cue);\n}\n\nfunction fixLineBreaks(input) {\n  return input.replace(/<br(?: \\/)?>/gi, '\\n');\n}\n\nVTTParser.prototype = {\n  parse: function parse(data) {\n    var self = this;\n\n    // If there is no data then we won't decode it, but will just try to parse\n    // whatever is in buffer already. This may occur in circumstances, for\n    // example when flush() is called.\n    if (data) {\n      // Try to decode the data that we received.\n      self.buffer += self.decoder.decode(data, { stream: true });\n    }\n\n    function collectNextLine() {\n      var buffer = self.buffer;\n      var pos = 0;\n\n      buffer = fixLineBreaks(buffer);\n\n      while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n        ++pos;\n      }\n\n      var line = buffer.substr(0, pos);\n      // Advance the buffer early in case we fail below.\n      if (buffer[pos] === '\\r') {\n        ++pos;\n      }\n\n      if (buffer[pos] === '\\n') {\n        ++pos;\n      }\n\n      self.buffer = buffer.substr(pos);\n      return line;\n    }\n\n    // 3.2 WebVTT metadata header syntax\n    function parseHeader(input) {\n      parseOptions(input, function (k, v) {\n        switch (k) {\n          case 'Region':\n            // 3.3 WebVTT region metadata header syntax\n            // console.log('parse region', v);\n            // parseRegion(v);\n            break;\n        }\n      }, /:/);\n    }\n\n    // 5.1 WebVTT file parsing.\n    try {\n      var line = void 0;\n      if (self.state === 'INITIAL') {\n        // We can't start parsing until we have the first line.\n        if (!/\\r\\n|\\n/.test(self.buffer)) {\n          return this;\n        }\n\n        line = collectNextLine();\n        // strip of UTF-8 BOM if any\n        // https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8\n        var m = line.match(/^(茂禄驴)?WEBVTT([ \\t].*)?$/);\n        if (!m || !m[0]) {\n          throw new Error('Malformed WebVTT signature.');\n        }\n\n        self.state = 'HEADER';\n      }\n\n      var alreadyCollectedLine = false;\n      while (self.buffer) {\n        // We can't parse a line until we have the full line.\n        if (!/\\r\\n|\\n/.test(self.buffer)) {\n          return this;\n        }\n\n        if (!alreadyCollectedLine) {\n          line = collectNextLine();\n        } else {\n          alreadyCollectedLine = false;\n        }\n\n        switch (self.state) {\n          case 'HEADER':\n            // 13-18 - Allow a header (metadata) under the WEBVTT line.\n            if (/:/.test(line)) {\n              parseHeader(line);\n            } else if (!line) {\n              // An empty line terminates the header and starts the body (cues).\n              self.state = 'ID';\n            }\n            continue;\n          case 'NOTE':\n            // Ignore NOTE blocks.\n            if (!line) {\n              self.state = 'ID';\n            }\n\n            continue;\n          case 'ID':\n            // Check for the start of NOTE blocks.\n            if (/^NOTE($|[ \\t])/.test(line)) {\n              self.state = 'NOTE';\n              break;\n            }\n            // 19-29 - Allow any number of line terminators, then initialize new cue values.\n            if (!line) {\n              continue;\n            }\n\n            self.cue = new vttcue(0, 0, '');\n            self.state = 'CUE';\n            // 30-39 - Check if self line contains an optional identifier or timing data.\n            if (line.indexOf('-->') === -1) {\n              self.cue.id = line;\n              continue;\n            }\n          // Process line as start of a cue.\n          /* falls through */\n          case 'CUE':\n            // 40 - Collect cue timings and settings.\n            try {\n              parseCue(line, self.cue, self.regionList);\n            } catch (e) {\n              // In case of an error ignore rest of the cue.\n              self.cue = null;\n              self.state = 'BADCUE';\n              continue;\n            }\n            self.state = 'CUETEXT';\n            continue;\n          case 'CUETEXT':\n            var hasSubstring = line.indexOf('-->') !== -1;\n            // 34 - If we have an empty line then report the cue.\n            // 35 - If we have the special substring '-->' then report the cue,\n            // but do not collect the line as we need to process the current\n            // one as a new cue.\n            if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n              // We are done parsing self cue.\n              if (self.oncue) {\n                self.oncue(self.cue);\n              }\n\n              self.cue = null;\n              self.state = 'ID';\n              continue;\n            }\n            if (self.cue.text) {\n              self.cue.text += '\\n';\n            }\n\n            self.cue.text += line;\n            continue;\n          case 'BADCUE':\n            // BADCUE\n            // 54-62 - Collect and discard the remaining cue.\n            if (!line) {\n              self.state = 'ID';\n            }\n\n            continue;\n        }\n      }\n    } catch (e) {\n      // If we are currently parsing a cue, report what we have.\n      if (self.state === 'CUETEXT' && self.cue && self.oncue) {\n        self.oncue(self.cue);\n      }\n\n      self.cue = null;\n      // Enter BADWEBVTT state if header was not parsed correctly otherwise\n      // another exception occurred so enter BADCUE state.\n      self.state = self.state === 'INITIAL' ? 'BADWEBVTT' : 'BADCUE';\n    }\n    return this;\n  },\n  flush: function flush() {\n    var self = this;\n    try {\n      // Finish decoding the stream.\n      self.buffer += self.decoder.decode();\n      // Synthesize the end of the current cue or region.\n      if (self.cue || self.state === 'HEADER') {\n        self.buffer += '\\n\\n';\n        self.parse();\n      }\n      // If we've flushed, parsed, and we're still on the INITIAL state then\n      // that means we don't have enough of the stream to parse the first\n      // line.\n      if (self.state === 'INITIAL') {\n        throw new Error('Malformed WebVTT signature.');\n      }\n    } catch (e) {\n      throw e;\n    }\n    if (self.onflush) {\n      self.onflush();\n    }\n\n    return this;\n  }\n};\n\n\n\n/* harmony default export */ var vttparser = (VTTParser);\n// CONCATENATED MODULE: ./src/utils/cues.js\n\n\nfunction newCue(track, startTime, endTime, captionScreen) {\n  var row = void 0;\n  var cue = void 0;\n  var indenting = void 0;\n  var indent = void 0;\n  var text = void 0;\n  var VTTCue = window.VTTCue || window.TextTrackCue;\n\n  for (var r = 0; r < captionScreen.rows.length; r++) {\n    row = captionScreen.rows[r];\n    indenting = true;\n    indent = 0;\n    text = '';\n\n    if (!row.isEmpty()) {\n      for (var c = 0; c < row.chars.length; c++) {\n        if (row.chars[c].uchar.match(/\\s/) && indenting) {\n          indent++;\n        } else {\n          text += row.chars[c].uchar;\n          indenting = false;\n        }\n      }\n      // To be used for cleaning-up orphaned roll-up captions\n      row.cueStartTime = startTime;\n\n      // Give a slight bump to the endTime if it's equal to startTime to avoid a SyntaxError in IE\n      if (startTime === endTime) {\n        endTime += 0.0001;\n      }\n\n      cue = new VTTCue(startTime, endTime, fixLineBreaks(text.trim()));\n\n      if (indent >= 16) {\n        indent--;\n      } else {\n        indent++;\n      }\n\n      // VTTCue.line get's flakey when using controls, so let's now include line 13&14\n      // also, drop line 1 since it's to close to the top\n      if (navigator.userAgent.match(/Firefox\\//)) {\n        cue.line = r + 1;\n      } else {\n        cue.line = r > 7 ? r - 2 : r + 1;\n      }\n\n      cue.align = 'left';\n      // Clamp the position between 0 and 100 - if out of these bounds, Firefox throws an exception and captions break\n      cue.position = Math.max(0, Math.min(100, 100 * (indent / 32) + (navigator.userAgent.match(/Firefox\\//) ? 50 : 0)));\n      track.addCue(cue);\n    }\n  }\n}\n// CONCATENATED MODULE: ./src/utils/cea-608-parser.js\nfunction cea_608_parser__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n *\n * This code was ported from the dash.js project at:\n *   https://github.com/Dash-Industry-Forum/dash.js/blob/development/externals/cea608-parser.js\n *   https://github.com/Dash-Industry-Forum/dash.js/commit/8269b26a761e0853bb21d78780ed945144ecdd4d#diff-71bc295a2d6b6b7093a1d3290d53a4b2\n *\n * The original copyright appears below:\n *\n * The copyright in this software is being made available under the BSD License,\n * included below. This software may be subject to other third party and contributor\n * rights, including patent rights, and no such rights are granted under this license.\n *\n * Copyright (c) 2015-2016, DASH Industry Forum.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n *  1. Redistributions of source code must retain the above copyright notice, this\n *  list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above copyright notice,\n *  this list of conditions and the following disclaimer in the documentation and/or\n *  other materials provided with the distribution.\n *  2. Neither the name of Dash Industry Forum nor the names of its\n *  contributors may be used to endorse or promote products derived from this software\n *  without specific prior written permission.\n *\n *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY\n *  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n *  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n *  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n *  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n *  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n *  POSSIBILITY OF SUCH DAMAGE.\n */\n/**\n     *  Exceptions from regular ASCII. CodePoints are mapped to UTF-16 codes\n     */\n\nvar specialCea608CharsCodes = {\n  0x2a: 0xe1, // lowercase a, acute accent\n  0x5c: 0xe9, // lowercase e, acute accent\n  0x5e: 0xed, // lowercase i, acute accent\n  0x5f: 0xf3, // lowercase o, acute accent\n  0x60: 0xfa, // lowercase u, acute accent\n  0x7b: 0xe7, // lowercase c with cedilla\n  0x7c: 0xf7, // division symbol\n  0x7d: 0xd1, // uppercase N tilde\n  0x7e: 0xf1, // lowercase n tilde\n  0x7f: 0x2588, // Full block\n  // THIS BLOCK INCLUDES THE 16 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n  // THAT COME FROM HI BYTE=0x11 AND LOW BETWEEN 0x30 AND 0x3F\n  // THIS MEANS THAT \\x50 MUST BE ADDED TO THE VALUES\n  0x80: 0xae, // Registered symbol (R)\n  0x81: 0xb0, // degree sign\n  0x82: 0xbd, // 1/2 symbol\n  0x83: 0xbf, // Inverted (open) question mark\n  0x84: 0x2122, // Trademark symbol (TM)\n  0x85: 0xa2, // Cents symbol\n  0x86: 0xa3, // Pounds sterling\n  0x87: 0x266a, // Music 8'th note\n  0x88: 0xe0, // lowercase a, grave accent\n  0x89: 0x20, // transparent space (regular)\n  0x8a: 0xe8, // lowercase e, grave accent\n  0x8b: 0xe2, // lowercase a, circumflex accent\n  0x8c: 0xea, // lowercase e, circumflex accent\n  0x8d: 0xee, // lowercase i, circumflex accent\n  0x8e: 0xf4, // lowercase o, circumflex accent\n  0x8f: 0xfb, // lowercase u, circumflex accent\n  // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n  // THAT COME FROM HI BYTE=0x12 AND LOW BETWEEN 0x20 AND 0x3F\n  0x90: 0xc1, // capital letter A with acute\n  0x91: 0xc9, // capital letter E with acute\n  0x92: 0xd3, // capital letter O with acute\n  0x93: 0xda, // capital letter U with acute\n  0x94: 0xdc, // capital letter U with diaresis\n  0x95: 0xfc, // lowercase letter U with diaeresis\n  0x96: 0x2018, // opening single quote\n  0x97: 0xa1, // inverted exclamation mark\n  0x98: 0x2a, // asterisk\n  0x99: 0x2019, // closing single quote\n  0x9a: 0x2501, // box drawings heavy horizontal\n  0x9b: 0xa9, // copyright sign\n  0x9c: 0x2120, // Service mark\n  0x9d: 0x2022, // (round) bullet\n  0x9e: 0x201c, // Left double quotation mark\n  0x9f: 0x201d, // Right double quotation mark\n  0xa0: 0xc0, // uppercase A, grave accent\n  0xa1: 0xc2, // uppercase A, circumflex\n  0xa2: 0xc7, // uppercase C with cedilla\n  0xa3: 0xc8, // uppercase E, grave accent\n  0xa4: 0xca, // uppercase E, circumflex\n  0xa5: 0xcb, // capital letter E with diaresis\n  0xa6: 0xeb, // lowercase letter e with diaresis\n  0xa7: 0xce, // uppercase I, circumflex\n  0xa8: 0xcf, // uppercase I, with diaresis\n  0xa9: 0xef, // lowercase i, with diaresis\n  0xaa: 0xd4, // uppercase O, circumflex\n  0xab: 0xd9, // uppercase U, grave accent\n  0xac: 0xf9, // lowercase u, grave accent\n  0xad: 0xdb, // uppercase U, circumflex\n  0xae: 0xab, // left-pointing double angle quotation mark\n  0xaf: 0xbb, // right-pointing double angle quotation mark\n  // THIS BLOCK INCLUDES THE 32 EXTENDED (TWO-BYTE) LINE 21 CHARACTERS\n  // THAT COME FROM HI BYTE=0x13 AND LOW BETWEEN 0x20 AND 0x3F\n  0xb0: 0xc3, // Uppercase A, tilde\n  0xb1: 0xe3, // Lowercase a, tilde\n  0xb2: 0xcd, // Uppercase I, acute accent\n  0xb3: 0xcc, // Uppercase I, grave accent\n  0xb4: 0xec, // Lowercase i, grave accent\n  0xb5: 0xd2, // Uppercase O, grave accent\n  0xb6: 0xf2, // Lowercase o, grave accent\n  0xb7: 0xd5, // Uppercase O, tilde\n  0xb8: 0xf5, // Lowercase o, tilde\n  0xb9: 0x7b, // Open curly brace\n  0xba: 0x7d, // Closing curly brace\n  0xbb: 0x5c, // Backslash\n  0xbc: 0x5e, // Caret\n  0xbd: 0x5f, // Underscore\n  0xbe: 0x7c, // Pipe (vertical line)\n  0xbf: 0x223c, // Tilde operator\n  0xc0: 0xc4, // Uppercase A, umlaut\n  0xc1: 0xe4, // Lowercase A, umlaut\n  0xc2: 0xd6, // Uppercase O, umlaut\n  0xc3: 0xf6, // Lowercase o, umlaut\n  0xc4: 0xdf, // Esszett (sharp S)\n  0xc5: 0xa5, // Yen symbol\n  0xc6: 0xa4, // Generic currency sign\n  0xc7: 0x2503, // Box drawings heavy vertical\n  0xc8: 0xc5, // Uppercase A, ring\n  0xc9: 0xe5, // Lowercase A, ring\n  0xca: 0xd8, // Uppercase O, stroke\n  0xcb: 0xf8, // Lowercase o, strok\n  0xcc: 0x250f, // Box drawings heavy down and right\n  0xcd: 0x2513, // Box drawings heavy down and left\n  0xce: 0x2517, // Box drawings heavy up and right\n  0xcf: 0x251b // Box drawings heavy up and left\n};\n\n/**\n * Utils\n */\nvar getCharForByte = function getCharForByte(byte) {\n  var charCode = byte;\n  if (specialCea608CharsCodes.hasOwnProperty(byte)) {\n    charCode = specialCea608CharsCodes[byte];\n  }\n\n  return String.fromCharCode(charCode);\n};\n\nvar NR_ROWS = 15,\n    NR_COLS = 100;\n// Tables to look up row from PAC data\nvar rowsLowCh1 = { 0x11: 1, 0x12: 3, 0x15: 5, 0x16: 7, 0x17: 9, 0x10: 11, 0x13: 12, 0x14: 14 };\nvar rowsHighCh1 = { 0x11: 2, 0x12: 4, 0x15: 6, 0x16: 8, 0x17: 10, 0x13: 13, 0x14: 15 };\nvar rowsLowCh2 = { 0x19: 1, 0x1A: 3, 0x1D: 5, 0x1E: 7, 0x1F: 9, 0x18: 11, 0x1B: 12, 0x1C: 14 };\nvar rowsHighCh2 = { 0x19: 2, 0x1A: 4, 0x1D: 6, 0x1E: 8, 0x1F: 10, 0x1B: 13, 0x1C: 15 };\n\nvar backgroundColors = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta', 'black', 'transparent'];\n\n/**\n * Simple logger class to be able to write with time-stamps and filter on level.\n */\nvar cea_608_parser_logger = {\n  verboseFilter: { 'DATA': 3, 'DEBUG': 3, 'INFO': 2, 'WARNING': 2, 'TEXT': 1, 'ERROR': 0 },\n  time: null,\n  verboseLevel: 0, // Only write errors\n  setTime: function setTime(newTime) {\n    this.time = newTime;\n  },\n  log: function log(severity, msg) {\n    var minLevel = this.verboseFilter[severity];\n    if (this.verboseLevel >= minLevel) {\n      // console.log(this.time + ' [' + severity + '] ' + msg);\n    }\n  }\n};\n\nvar numArrayToHexArray = function numArrayToHexArray(numArray) {\n  var hexArray = [];\n  for (var j = 0; j < numArray.length; j++) {\n    hexArray.push(numArray[j].toString(16));\n  }\n\n  return hexArray;\n};\n\nvar PenState = function () {\n  function PenState(foreground, underline, italics, background, flash) {\n    cea_608_parser__classCallCheck(this, PenState);\n\n    this.foreground = foreground || 'white';\n    this.underline = underline || false;\n    this.italics = italics || false;\n    this.background = background || 'black';\n    this.flash = flash || false;\n  }\n\n  PenState.prototype.reset = function reset() {\n    this.foreground = 'white';\n    this.underline = false;\n    this.italics = false;\n    this.background = 'black';\n    this.flash = false;\n  };\n\n  PenState.prototype.setStyles = function setStyles(styles) {\n    var attribs = ['foreground', 'underline', 'italics', 'background', 'flash'];\n    for (var i = 0; i < attribs.length; i++) {\n      var style = attribs[i];\n      if (styles.hasOwnProperty(style)) {\n        this[style] = styles[style];\n      }\n    }\n  };\n\n  PenState.prototype.isDefault = function isDefault() {\n    return this.foreground === 'white' && !this.underline && !this.italics && this.background === 'black' && !this.flash;\n  };\n\n  PenState.prototype.equals = function equals(other) {\n    return this.foreground === other.foreground && this.underline === other.underline && this.italics === other.italics && this.background === other.background && this.flash === other.flash;\n  };\n\n  PenState.prototype.copy = function copy(newPenState) {\n    this.foreground = newPenState.foreground;\n    this.underline = newPenState.underline;\n    this.italics = newPenState.italics;\n    this.background = newPenState.background;\n    this.flash = newPenState.flash;\n  };\n\n  PenState.prototype.toString = function toString() {\n    return 'color=' + this.foreground + ', underline=' + this.underline + ', italics=' + this.italics + ', background=' + this.background + ', flash=' + this.flash;\n  };\n\n  return PenState;\n}();\n\n/**\n * Unicode character with styling and background.\n * @constructor\n */\n\n\nvar StyledUnicodeChar = function () {\n  function StyledUnicodeChar(uchar, foreground, underline, italics, background, flash) {\n    cea_608_parser__classCallCheck(this, StyledUnicodeChar);\n\n    this.uchar = uchar || ' '; // unicode character\n    this.penState = new PenState(foreground, underline, italics, background, flash);\n  }\n\n  StyledUnicodeChar.prototype.reset = function reset() {\n    this.uchar = ' ';\n    this.penState.reset();\n  };\n\n  StyledUnicodeChar.prototype.setChar = function setChar(uchar, newPenState) {\n    this.uchar = uchar;\n    this.penState.copy(newPenState);\n  };\n\n  StyledUnicodeChar.prototype.setPenState = function setPenState(newPenState) {\n    this.penState.copy(newPenState);\n  };\n\n  StyledUnicodeChar.prototype.equals = function equals(other) {\n    return this.uchar === other.uchar && this.penState.equals(other.penState);\n  };\n\n  StyledUnicodeChar.prototype.copy = function copy(newChar) {\n    this.uchar = newChar.uchar;\n    this.penState.copy(newChar.penState);\n  };\n\n  StyledUnicodeChar.prototype.isEmpty = function isEmpty() {\n    return this.uchar === ' ' && this.penState.isDefault();\n  };\n\n  return StyledUnicodeChar;\n}();\n\n/**\n * CEA-608 row consisting of NR_COLS instances of StyledUnicodeChar.\n * @constructor\n */\n\n\nvar Row = function () {\n  function Row() {\n    cea_608_parser__classCallCheck(this, Row);\n\n    this.chars = [];\n    for (var i = 0; i < NR_COLS; i++) {\n      this.chars.push(new StyledUnicodeChar());\n    }\n\n    this.pos = 0;\n    this.currPenState = new PenState();\n  }\n\n  Row.prototype.equals = function equals(other) {\n    var equal = true;\n    for (var i = 0; i < NR_COLS; i++) {\n      if (!this.chars[i].equals(other.chars[i])) {\n        equal = false;\n        break;\n      }\n    }\n    return equal;\n  };\n\n  Row.prototype.copy = function copy(other) {\n    for (var i = 0; i < NR_COLS; i++) {\n      this.chars[i].copy(other.chars[i]);\n    }\n  };\n\n  Row.prototype.isEmpty = function isEmpty() {\n    var empty = true;\n    for (var i = 0; i < NR_COLS; i++) {\n      if (!this.chars[i].isEmpty()) {\n        empty = false;\n        break;\n      }\n    }\n    return empty;\n  };\n\n  /**\n     *  Set the cursor to a valid column.\n     */\n\n\n  Row.prototype.setCursor = function setCursor(absPos) {\n    if (this.pos !== absPos) {\n      this.pos = absPos;\n    }\n\n    if (this.pos < 0) {\n      cea_608_parser_logger.log('ERROR', 'Negative cursor position ' + this.pos);\n      this.pos = 0;\n    } else if (this.pos > NR_COLS) {\n      cea_608_parser_logger.log('ERROR', 'Too large cursor position ' + this.pos);\n      this.pos = NR_COLS;\n    }\n  };\n\n  /**\n     * Move the cursor relative to current position.\n     */\n\n\n  Row.prototype.moveCursor = function moveCursor(relPos) {\n    var newPos = this.pos + relPos;\n    if (relPos > 1) {\n      for (var i = this.pos + 1; i < newPos + 1; i++) {\n        this.chars[i].setPenState(this.currPenState);\n      }\n    }\n    this.setCursor(newPos);\n  };\n\n  /**\n     * Backspace, move one step back and clear character.\n     */\n\n\n  Row.prototype.backSpace = function backSpace() {\n    this.moveCursor(-1);\n    this.chars[this.pos].setChar(' ', this.currPenState);\n  };\n\n  Row.prototype.insertChar = function insertChar(byte) {\n    if (byte >= 0x90) {\n      // Extended char\n      this.backSpace();\n    }\n    var char = getCharForByte(byte);\n    if (this.pos >= NR_COLS) {\n      cea_608_parser_logger.log('ERROR', 'Cannot insert ' + byte.toString(16) + ' (' + char + ') at position ' + this.pos + '. Skipping it!');\n      return;\n    }\n    this.chars[this.pos].setChar(char, this.currPenState);\n    this.moveCursor(1);\n  };\n\n  Row.prototype.clearFromPos = function clearFromPos(startPos) {\n    var i = void 0;\n    for (i = startPos; i < NR_COLS; i++) {\n      this.chars[i].reset();\n    }\n  };\n\n  Row.prototype.clear = function clear() {\n    this.clearFromPos(0);\n    this.pos = 0;\n    this.currPenState.reset();\n  };\n\n  Row.prototype.clearToEndOfRow = function clearToEndOfRow() {\n    this.clearFromPos(this.pos);\n  };\n\n  Row.prototype.getTextString = function getTextString() {\n    var chars = [];\n    var empty = true;\n    for (var i = 0; i < NR_COLS; i++) {\n      var char = this.chars[i].uchar;\n      if (char !== ' ') {\n        empty = false;\n      }\n\n      chars.push(char);\n    }\n    if (empty) {\n      return '';\n    } else {\n      return chars.join('');\n    }\n  };\n\n  Row.prototype.setPenStyles = function setPenStyles(styles) {\n    this.currPenState.setStyles(styles);\n    var currChar = this.chars[this.pos];\n    currChar.setPenState(this.currPenState);\n  };\n\n  return Row;\n}();\n\n/**\n * Keep a CEA-608 screen of 32x15 styled characters\n * @constructor\n*/\n\n\nvar CaptionScreen = function () {\n  function CaptionScreen() {\n    cea_608_parser__classCallCheck(this, CaptionScreen);\n\n    this.rows = [];\n    for (var i = 0; i < NR_ROWS; i++) {\n      this.rows.push(new Row());\n    } // Note that we use zero-based numbering (0-14)\n\n    this.currRow = NR_ROWS - 1;\n    this.nrRollUpRows = null;\n    this.reset();\n  }\n\n  CaptionScreen.prototype.reset = function reset() {\n    for (var i = 0; i < NR_ROWS; i++) {\n      this.rows[i].clear();\n    }\n\n    this.currRow = NR_ROWS - 1;\n  };\n\n  CaptionScreen.prototype.equals = function equals(other) {\n    var equal = true;\n    for (var i = 0; i < NR_ROWS; i++) {\n      if (!this.rows[i].equals(other.rows[i])) {\n        equal = false;\n        break;\n      }\n    }\n    return equal;\n  };\n\n  CaptionScreen.prototype.copy = function copy(other) {\n    for (var i = 0; i < NR_ROWS; i++) {\n      this.rows[i].copy(other.rows[i]);\n    }\n  };\n\n  CaptionScreen.prototype.isEmpty = function isEmpty() {\n    var empty = true;\n    for (var i = 0; i < NR_ROWS; i++) {\n      if (!this.rows[i].isEmpty()) {\n        empty = false;\n        break;\n      }\n    }\n    return empty;\n  };\n\n  CaptionScreen.prototype.backSpace = function backSpace() {\n    var row = this.rows[this.currRow];\n    row.backSpace();\n  };\n\n  CaptionScreen.prototype.clearToEndOfRow = function clearToEndOfRow() {\n    var row = this.rows[this.currRow];\n    row.clearToEndOfRow();\n  };\n\n  /**\n     * Insert a character (without styling) in the current row.\n     */\n\n\n  CaptionScreen.prototype.insertChar = function insertChar(char) {\n    var row = this.rows[this.currRow];\n    row.insertChar(char);\n  };\n\n  CaptionScreen.prototype.setPen = function setPen(styles) {\n    var row = this.rows[this.currRow];\n    row.setPenStyles(styles);\n  };\n\n  CaptionScreen.prototype.moveCursor = function moveCursor(relPos) {\n    var row = this.rows[this.currRow];\n    row.moveCursor(relPos);\n  };\n\n  CaptionScreen.prototype.setCursor = function setCursor(absPos) {\n    cea_608_parser_logger.log('INFO', 'setCursor: ' + absPos);\n    var row = this.rows[this.currRow];\n    row.setCursor(absPos);\n  };\n\n  CaptionScreen.prototype.setPAC = function setPAC(pacData) {\n    cea_608_parser_logger.log('INFO', 'pacData = ' + JSON.stringify(pacData));\n    var newRow = pacData.row - 1;\n    if (this.nrRollUpRows && newRow < this.nrRollUpRows - 1) {\n      newRow = this.nrRollUpRows - 1;\n    }\n\n    // Make sure this only affects Roll-up Captions by checking this.nrRollUpRows\n    if (this.nrRollUpRows && this.currRow !== newRow) {\n      // clear all rows first\n      for (var i = 0; i < NR_ROWS; i++) {\n        this.rows[i].clear();\n      }\n\n      // Copy this.nrRollUpRows rows from lastOutputScreen and place it in the newRow location\n      // topRowIndex - the start of rows to copy (inclusive index)\n      var topRowIndex = this.currRow + 1 - this.nrRollUpRows;\n      // We only copy if the last position was already shown.\n      // We use the cueStartTime value to check this.\n      var lastOutputScreen = this.lastOutputScreen;\n      if (lastOutputScreen) {\n        var prevLineTime = lastOutputScreen.rows[topRowIndex].cueStartTime;\n        if (prevLineTime && prevLineTime < cea_608_parser_logger.time) {\n          for (var _i = 0; _i < this.nrRollUpRows; _i++) {\n            this.rows[newRow - this.nrRollUpRows + _i + 1].copy(lastOutputScreen.rows[topRowIndex + _i]);\n          }\n        }\n      }\n    }\n\n    this.currRow = newRow;\n    var row = this.rows[this.currRow];\n    if (pacData.indent !== null) {\n      var indent = pacData.indent;\n      var prevPos = Math.max(indent - 1, 0);\n      row.setCursor(pacData.indent);\n      pacData.color = row.chars[prevPos].penState.foreground;\n    }\n    var styles = { foreground: pacData.color, underline: pacData.underline, italics: pacData.italics, background: 'black', flash: false };\n    this.setPen(styles);\n  };\n\n  /**\n     * Set background/extra foreground, but first do back_space, and then insert space (backwards compatibility).\n     */\n\n\n  CaptionScreen.prototype.setBkgData = function setBkgData(bkgData) {\n    cea_608_parser_logger.log('INFO', 'bkgData = ' + JSON.stringify(bkgData));\n    this.backSpace();\n    this.setPen(bkgData);\n    this.insertChar(0x20); // Space\n  };\n\n  CaptionScreen.prototype.setRollUpRows = function setRollUpRows(nrRows) {\n    this.nrRollUpRows = nrRows;\n  };\n\n  CaptionScreen.prototype.rollUp = function rollUp() {\n    if (this.nrRollUpRows === null) {\n      cea_608_parser_logger.log('DEBUG', 'roll_up but nrRollUpRows not set yet');\n      return; // Not properly setup\n    }\n    cea_608_parser_logger.log('TEXT', this.getDisplayText());\n    var topRowIndex = this.currRow + 1 - this.nrRollUpRows;\n    var topRow = this.rows.splice(topRowIndex, 1)[0];\n    topRow.clear();\n    this.rows.splice(this.currRow, 0, topRow);\n    cea_608_parser_logger.log('INFO', 'Rolling up');\n    // logger.log('TEXT', this.get_display_text())\n  };\n\n  /**\n    * Get all non-empty rows with as unicode text.\n    */\n\n\n  CaptionScreen.prototype.getDisplayText = function getDisplayText(asOneRow) {\n    asOneRow = asOneRow || false;\n    var displayText = [];\n    var text = '';\n    var rowNr = -1;\n    for (var i = 0; i < NR_ROWS; i++) {\n      var rowText = this.rows[i].getTextString();\n      if (rowText) {\n        rowNr = i + 1;\n        if (asOneRow) {\n          displayText.push('Row ' + rowNr + ': \\'' + rowText + '\\'');\n        } else {\n          displayText.push(rowText.trim());\n        }\n      }\n    }\n    if (displayText.length > 0) {\n      if (asOneRow) {\n        text = '[' + displayText.join(' | ') + ']';\n      } else {\n        text = displayText.join('\\n');\n      }\n    }\n    return text;\n  };\n\n  CaptionScreen.prototype.getTextAndFormat = function getTextAndFormat() {\n    return this.rows;\n  };\n\n  return CaptionScreen;\n}();\n\n// var modes = ['MODE_ROLL-UP', 'MODE_POP-ON', 'MODE_PAINT-ON', 'MODE_TEXT'];\n\nvar Cea608Channel = function () {\n  function Cea608Channel(channelNumber, outputFilter) {\n    cea_608_parser__classCallCheck(this, Cea608Channel);\n\n    this.chNr = channelNumber;\n    this.outputFilter = outputFilter;\n    this.mode = null;\n    this.verbose = 0;\n    this.displayedMemory = new CaptionScreen();\n    this.nonDisplayedMemory = new CaptionScreen();\n    this.lastOutputScreen = new CaptionScreen();\n    this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n    this.writeScreen = this.displayedMemory;\n    this.mode = null;\n    this.cueStartTime = null; // Keeps track of where a cue started.\n  }\n\n  Cea608Channel.prototype.reset = function reset() {\n    this.mode = null;\n    this.displayedMemory.reset();\n    this.nonDisplayedMemory.reset();\n    this.lastOutputScreen.reset();\n    this.currRollUpRow = this.displayedMemory.rows[NR_ROWS - 1];\n    this.writeScreen = this.displayedMemory;\n    this.mode = null;\n    this.cueStartTime = null;\n    this.lastCueEndTime = null;\n  };\n\n  Cea608Channel.prototype.getHandler = function getHandler() {\n    return this.outputFilter;\n  };\n\n  Cea608Channel.prototype.setHandler = function setHandler(newHandler) {\n    this.outputFilter = newHandler;\n  };\n\n  Cea608Channel.prototype.setPAC = function setPAC(pacData) {\n    this.writeScreen.setPAC(pacData);\n  };\n\n  Cea608Channel.prototype.setBkgData = function setBkgData(bkgData) {\n    this.writeScreen.setBkgData(bkgData);\n  };\n\n  Cea608Channel.prototype.setMode = function setMode(newMode) {\n    if (newMode === this.mode) {\n      return;\n    }\n\n    this.mode = newMode;\n    cea_608_parser_logger.log('INFO', 'MODE=' + newMode);\n    if (this.mode === 'MODE_POP-ON') {\n      this.writeScreen = this.nonDisplayedMemory;\n    } else {\n      this.writeScreen = this.displayedMemory;\n      this.writeScreen.reset();\n    }\n    if (this.mode !== 'MODE_ROLL-UP') {\n      this.displayedMemory.nrRollUpRows = null;\n      this.nonDisplayedMemory.nrRollUpRows = null;\n    }\n    this.mode = newMode;\n  };\n\n  Cea608Channel.prototype.insertChars = function insertChars(chars) {\n    for (var i = 0; i < chars.length; i++) {\n      this.writeScreen.insertChar(chars[i]);\n    }\n\n    var screen = this.writeScreen === this.displayedMemory ? 'DISP' : 'NON_DISP';\n    cea_608_parser_logger.log('INFO', screen + ': ' + this.writeScreen.getDisplayText(true));\n    if (this.mode === 'MODE_PAINT-ON' || this.mode === 'MODE_ROLL-UP') {\n      cea_608_parser_logger.log('TEXT', 'DISPLAYED: ' + this.displayedMemory.getDisplayText(true));\n      this.outputDataUpdate();\n    }\n  };\n\n  Cea608Channel.prototype.ccRCL = function ccRCL() {\n    // Resume Caption Loading (switch mode to Pop On)\n    cea_608_parser_logger.log('INFO', 'RCL - Resume Caption Loading');\n    this.setMode('MODE_POP-ON');\n  };\n\n  Cea608Channel.prototype.ccBS = function ccBS() {\n    // BackSpace\n    cea_608_parser_logger.log('INFO', 'BS - BackSpace');\n    if (this.mode === 'MODE_TEXT') {\n      return;\n    }\n\n    this.writeScreen.backSpace();\n    if (this.writeScreen === this.displayedMemory) {\n      this.outputDataUpdate();\n    }\n  };\n\n  Cea608Channel.prototype.ccAOF = function ccAOF() {// Reserved (formerly Alarm Off)\n\n  };\n\n  Cea608Channel.prototype.ccAON = function ccAON() {// Reserved (formerly Alarm On)\n\n  };\n\n  Cea608Channel.prototype.ccDER = function ccDER() {\n    // Delete to End of Row\n    cea_608_parser_logger.log('INFO', 'DER- Delete to End of Row');\n    this.writeScreen.clearToEndOfRow();\n    this.outputDataUpdate();\n  };\n\n  Cea608Channel.prototype.ccRU = function ccRU(nrRows) {\n    // Roll-Up Captions-2,3,or 4 Rows\n    cea_608_parser_logger.log('INFO', 'RU(' + nrRows + ') - Roll Up');\n    this.writeScreen = this.displayedMemory;\n    this.setMode('MODE_ROLL-UP');\n    this.writeScreen.setRollUpRows(nrRows);\n  };\n\n  Cea608Channel.prototype.ccFON = function ccFON() {\n    // Flash On\n    cea_608_parser_logger.log('INFO', 'FON - Flash On');\n    this.writeScreen.setPen({ flash: true });\n  };\n\n  Cea608Channel.prototype.ccRDC = function ccRDC() {\n    // Resume Direct Captioning (switch mode to PaintOn)\n    cea_608_parser_logger.log('INFO', 'RDC - Resume Direct Captioning');\n    this.setMode('MODE_PAINT-ON');\n  };\n\n  Cea608Channel.prototype.ccTR = function ccTR() {\n    // Text Restart in text mode (not supported, however)\n    cea_608_parser_logger.log('INFO', 'TR');\n    this.setMode('MODE_TEXT');\n  };\n\n  Cea608Channel.prototype.ccRTD = function ccRTD() {\n    // Resume Text Display in Text mode (not supported, however)\n    cea_608_parser_logger.log('INFO', 'RTD');\n    this.setMode('MODE_TEXT');\n  };\n\n  Cea608Channel.prototype.ccEDM = function ccEDM() {\n    // Erase Displayed Memory\n    cea_608_parser_logger.log('INFO', 'EDM - Erase Displayed Memory');\n    this.displayedMemory.reset();\n    this.outputDataUpdate(true);\n  };\n\n  Cea608Channel.prototype.ccCR = function ccCR() {\n    // Carriage Return\n    cea_608_parser_logger.log('CR - Carriage Return');\n    this.writeScreen.rollUp();\n    this.outputDataUpdate(true);\n  };\n\n  Cea608Channel.prototype.ccENM = function ccENM() {\n    // Erase Non-Displayed Memory\n    cea_608_parser_logger.log('INFO', 'ENM - Erase Non-displayed Memory');\n    this.nonDisplayedMemory.reset();\n  };\n\n  Cea608Channel.prototype.ccEOC = function ccEOC() {\n    // End of Caption (Flip Memories)\n    cea_608_parser_logger.log('INFO', 'EOC - End Of Caption');\n    if (this.mode === 'MODE_POP-ON') {\n      var tmp = this.displayedMemory;\n      this.displayedMemory = this.nonDisplayedMemory;\n      this.nonDisplayedMemory = tmp;\n      this.writeScreen = this.nonDisplayedMemory;\n      cea_608_parser_logger.log('TEXT', 'DISP: ' + this.displayedMemory.getDisplayText());\n    }\n    this.outputDataUpdate(true);\n  };\n\n  Cea608Channel.prototype.ccTO = function ccTO(nrCols) {\n    // Tab Offset 1,2, or 3 columns\n    cea_608_parser_logger.log('INFO', 'TO(' + nrCols + ') - Tab Offset');\n    this.writeScreen.moveCursor(nrCols);\n  };\n\n  Cea608Channel.prototype.ccMIDROW = function ccMIDROW(secondByte) {\n    // Parse MIDROW command\n    var styles = { flash: false };\n    styles.underline = secondByte % 2 === 1;\n    styles.italics = secondByte >= 0x2e;\n    if (!styles.italics) {\n      var colorIndex = Math.floor(secondByte / 2) - 0x10;\n      var colors = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta'];\n      styles.foreground = colors[colorIndex];\n    } else {\n      styles.foreground = 'white';\n    }\n    cea_608_parser_logger.log('INFO', 'MIDROW: ' + JSON.stringify(styles));\n    this.writeScreen.setPen(styles);\n  };\n\n  Cea608Channel.prototype.outputDataUpdate = function outputDataUpdate() {\n    var dispatch = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    var t = cea_608_parser_logger.time;\n    if (t === null) {\n      return;\n    }\n\n    if (this.outputFilter) {\n      if (this.cueStartTime === null && !this.displayedMemory.isEmpty()) {\n        // Start of a new cue\n        this.cueStartTime = t;\n      } else {\n        if (!this.displayedMemory.equals(this.lastOutputScreen)) {\n          if (this.outputFilter.newCue) {\n            this.outputFilter.newCue(this.cueStartTime, t, this.lastOutputScreen);\n            if (dispatch === true && this.outputFilter.dispatchCue) {\n              this.outputFilter.dispatchCue();\n            }\n          }\n          this.cueStartTime = this.displayedMemory.isEmpty() ? null : t;\n        }\n      }\n      this.lastOutputScreen.copy(this.displayedMemory);\n    }\n  };\n\n  Cea608Channel.prototype.cueSplitAtTime = function cueSplitAtTime(t) {\n    if (this.outputFilter) {\n      if (!this.displayedMemory.isEmpty()) {\n        if (this.outputFilter.newCue) {\n          this.outputFilter.newCue(this.cueStartTime, t, this.displayedMemory);\n        }\n\n        this.cueStartTime = t;\n      }\n    }\n  };\n\n  return Cea608Channel;\n}();\n\nvar Cea608Parser = function () {\n  function Cea608Parser(field, out1, out2) {\n    cea_608_parser__classCallCheck(this, Cea608Parser);\n\n    this.field = field || 1;\n    this.outputs = [out1, out2];\n    this.channels = [new Cea608Channel(1, out1), new Cea608Channel(2, out2)];\n    this.currChNr = -1; // Will be 1 or 2\n    this.lastCmdA = null; // First byte of last command\n    this.lastCmdB = null; // Second byte of last command\n    this.bufferedData = [];\n    this.startTime = null;\n    this.lastTime = null;\n    this.dataCounters = { 'padding': 0, 'char': 0, 'cmd': 0, 'other': 0 };\n  }\n\n  Cea608Parser.prototype.getHandler = function getHandler(index) {\n    return this.channels[index].getHandler();\n  };\n\n  Cea608Parser.prototype.setHandler = function setHandler(index, newHandler) {\n    this.channels[index].setHandler(newHandler);\n  };\n\n  /**\n     * Add data for time t in forms of list of bytes (unsigned ints). The bytes are treated as pairs.\n     */\n\n\n  Cea608Parser.prototype.addData = function addData(t, byteList) {\n    var cmdFound = void 0,\n        a = void 0,\n        b = void 0,\n        charsFound = false;\n\n    this.lastTime = t;\n    cea_608_parser_logger.setTime(t);\n\n    for (var i = 0; i < byteList.length; i += 2) {\n      a = byteList[i] & 0x7f;\n      b = byteList[i + 1] & 0x7f;\n      if (a === 0 && b === 0) {\n        this.dataCounters.padding += 2;\n        continue;\n      } else {\n        cea_608_parser_logger.log('DATA', '[' + numArrayToHexArray([byteList[i], byteList[i + 1]]) + '] -> (' + numArrayToHexArray([a, b]) + ')');\n      }\n      cmdFound = this.parseCmd(a, b);\n      if (!cmdFound) {\n        cmdFound = this.parseMidrow(a, b);\n      }\n\n      if (!cmdFound) {\n        cmdFound = this.parsePAC(a, b);\n      }\n\n      if (!cmdFound) {\n        cmdFound = this.parseBackgroundAttributes(a, b);\n      }\n\n      if (!cmdFound) {\n        charsFound = this.parseChars(a, b);\n        if (charsFound) {\n          if (this.currChNr && this.currChNr >= 0) {\n            var channel = this.channels[this.currChNr - 1];\n            channel.insertChars(charsFound);\n          } else {\n            cea_608_parser_logger.log('WARNING', 'No channel found yet. TEXT-MODE?');\n          }\n        }\n      }\n      if (cmdFound) {\n        this.dataCounters.cmd += 2;\n      } else if (charsFound) {\n        this.dataCounters.char += 2;\n      } else {\n        this.dataCounters.other += 2;\n        cea_608_parser_logger.log('WARNING', 'Couldn\\'t parse cleaned data ' + numArrayToHexArray([a, b]) + ' orig: ' + numArrayToHexArray([byteList[i], byteList[i + 1]]));\n      }\n    }\n  };\n\n  /**\n     * Parse Command.\n     * @returns {Boolean} Tells if a command was found\n     */\n\n\n  Cea608Parser.prototype.parseCmd = function parseCmd(a, b) {\n    var chNr = null;\n\n    var cond1 = (a === 0x14 || a === 0x1C) && b >= 0x20 && b <= 0x2F;\n    var cond2 = (a === 0x17 || a === 0x1F) && b >= 0x21 && b <= 0x23;\n    if (!(cond1 || cond2)) {\n      return false;\n    }\n\n    if (a === this.lastCmdA && b === this.lastCmdB) {\n      this.lastCmdA = null;\n      this.lastCmdB = null; // Repeated commands are dropped (once)\n      cea_608_parser_logger.log('DEBUG', 'Repeated command (' + numArrayToHexArray([a, b]) + ') is dropped');\n      return true;\n    }\n\n    if (a === 0x14 || a === 0x17) {\n      chNr = 1;\n    } else {\n      chNr = 2;\n    } // (a === 0x1C || a=== 0x1f)\n\n    var channel = this.channels[chNr - 1];\n\n    if (a === 0x14 || a === 0x1C) {\n      if (b === 0x20) {\n        channel.ccRCL();\n      } else if (b === 0x21) {\n        channel.ccBS();\n      } else if (b === 0x22) {\n        channel.ccAOF();\n      } else if (b === 0x23) {\n        channel.ccAON();\n      } else if (b === 0x24) {\n        channel.ccDER();\n      } else if (b === 0x25) {\n        channel.ccRU(2);\n      } else if (b === 0x26) {\n        channel.ccRU(3);\n      } else if (b === 0x27) {\n        channel.ccRU(4);\n      } else if (b === 0x28) {\n        channel.ccFON();\n      } else if (b === 0x29) {\n        channel.ccRDC();\n      } else if (b === 0x2A) {\n        channel.ccTR();\n      } else if (b === 0x2B) {\n        channel.ccRTD();\n      } else if (b === 0x2C) {\n        channel.ccEDM();\n      } else if (b === 0x2D) {\n        channel.ccCR();\n      } else if (b === 0x2E) {\n        channel.ccENM();\n      } else if (b === 0x2F) {\n        channel.ccEOC();\n      }\n    } else {\n      // a == 0x17 || a == 0x1F\n      channel.ccTO(b - 0x20);\n    }\n    this.lastCmdA = a;\n    this.lastCmdB = b;\n    this.currChNr = chNr;\n    return true;\n  };\n\n  /**\n     * Parse midrow styling command\n     * @returns {Boolean}\n     */\n\n\n  Cea608Parser.prototype.parseMidrow = function parseMidrow(a, b) {\n    var chNr = null;\n\n    if ((a === 0x11 || a === 0x19) && b >= 0x20 && b <= 0x2f) {\n      if (a === 0x11) {\n        chNr = 1;\n      } else {\n        chNr = 2;\n      }\n\n      if (chNr !== this.currChNr) {\n        cea_608_parser_logger.log('ERROR', 'Mismatch channel in midrow parsing');\n        return false;\n      }\n      var channel = this.channels[chNr - 1];\n      channel.ccMIDROW(b);\n      cea_608_parser_logger.log('DEBUG', 'MIDROW (' + numArrayToHexArray([a, b]) + ')');\n      return true;\n    }\n    return false;\n  };\n  /**\n     * Parse Preable Access Codes (Table 53).\n     * @returns {Boolean} Tells if PAC found\n     */\n\n\n  Cea608Parser.prototype.parsePAC = function parsePAC(a, b) {\n    var chNr = null;\n    var row = null;\n\n    var case1 = (a >= 0x11 && a <= 0x17 || a >= 0x19 && a <= 0x1F) && b >= 0x40 && b <= 0x7F;\n    var case2 = (a === 0x10 || a === 0x18) && b >= 0x40 && b <= 0x5F;\n    if (!(case1 || case2)) {\n      return false;\n    }\n\n    if (a === this.lastCmdA && b === this.lastCmdB) {\n      this.lastCmdA = null;\n      this.lastCmdB = null;\n      return true; // Repeated commands are dropped (once)\n    }\n\n    chNr = a <= 0x17 ? 1 : 2;\n\n    if (b >= 0x40 && b <= 0x5F) {\n      row = chNr === 1 ? rowsLowCh1[a] : rowsLowCh2[a];\n    } else {\n      // 0x60 <= b <= 0x7F\n      row = chNr === 1 ? rowsHighCh1[a] : rowsHighCh2[a];\n    }\n    var pacData = this.interpretPAC(row, b);\n    var channel = this.channels[chNr - 1];\n    channel.setPAC(pacData);\n    this.lastCmdA = a;\n    this.lastCmdB = b;\n    this.currChNr = chNr;\n    return true;\n  };\n\n  /**\n     * Interpret the second byte of the pac, and return the information.\n     * @returns {Object} pacData with style parameters.\n     */\n\n\n  Cea608Parser.prototype.interpretPAC = function interpretPAC(row, byte) {\n    var pacIndex = byte;\n    var pacData = { color: null, italics: false, indent: null, underline: false, row: row };\n\n    if (byte > 0x5F) {\n      pacIndex = byte - 0x60;\n    } else {\n      pacIndex = byte - 0x40;\n    }\n\n    pacData.underline = (pacIndex & 1) === 1;\n    if (pacIndex <= 0xd) {\n      pacData.color = ['white', 'green', 'blue', 'cyan', 'red', 'yellow', 'magenta', 'white'][Math.floor(pacIndex / 2)];\n    } else if (pacIndex <= 0xf) {\n      pacData.italics = true;\n      pacData.color = 'white';\n    } else {\n      pacData.indent = Math.floor((pacIndex - 0x10) / 2) * 4;\n    }\n    return pacData; // Note that row has zero offset. The spec uses 1.\n  };\n\n  /**\n     * Parse characters.\n     * @returns An array with 1 to 2 codes corresponding to chars, if found. null otherwise.\n     */\n\n\n  Cea608Parser.prototype.parseChars = function parseChars(a, b) {\n    var channelNr = null,\n        charCodes = null,\n        charCode1 = null;\n\n    if (a >= 0x19) {\n      channelNr = 2;\n      charCode1 = a - 8;\n    } else {\n      channelNr = 1;\n      charCode1 = a;\n    }\n    if (charCode1 >= 0x11 && charCode1 <= 0x13) {\n      // Special character\n      var oneCode = b;\n      if (charCode1 === 0x11) {\n        oneCode = b + 0x50;\n      } else if (charCode1 === 0x12) {\n        oneCode = b + 0x70;\n      } else {\n        oneCode = b + 0x90;\n      }\n\n      cea_608_parser_logger.log('INFO', 'Special char \\'' + getCharForByte(oneCode) + '\\' in channel ' + channelNr);\n      charCodes = [oneCode];\n    } else if (a >= 0x20 && a <= 0x7f) {\n      charCodes = b === 0 ? [a] : [a, b];\n    }\n    if (charCodes) {\n      var hexCodes = numArrayToHexArray(charCodes);\n      cea_608_parser_logger.log('DEBUG', 'Char codes =  ' + hexCodes.join(','));\n      this.lastCmdA = null;\n      this.lastCmdB = null;\n    }\n    return charCodes;\n  };\n\n  /**\n    * Parse extended background attributes as well as new foreground color black.\n    * @returns{Boolean} Tells if background attributes are found\n    */\n\n\n  Cea608Parser.prototype.parseBackgroundAttributes = function parseBackgroundAttributes(a, b) {\n    var bkgData = void 0,\n        index = void 0,\n        chNr = void 0,\n        channel = void 0;\n\n    var case1 = (a === 0x10 || a === 0x18) && b >= 0x20 && b <= 0x2f;\n    var case2 = (a === 0x17 || a === 0x1f) && b >= 0x2d && b <= 0x2f;\n    if (!(case1 || case2)) {\n      return false;\n    }\n\n    bkgData = {};\n    if (a === 0x10 || a === 0x18) {\n      index = Math.floor((b - 0x20) / 2);\n      bkgData.background = backgroundColors[index];\n      if (b % 2 === 1) {\n        bkgData.background = bkgData.background + '_semi';\n      }\n    } else if (b === 0x2d) {\n      bkgData.background = 'transparent';\n    } else {\n      bkgData.foreground = 'black';\n      if (b === 0x2f) {\n        bkgData.underline = true;\n      }\n    }\n    chNr = a < 0x18 ? 1 : 2;\n    channel = this.channels[chNr - 1];\n    channel.setBkgData(bkgData);\n    this.lastCmdA = null;\n    this.lastCmdB = null;\n    return true;\n  };\n\n  /**\n     * Reset state of parser and its channels.\n     */\n\n\n  Cea608Parser.prototype.reset = function reset() {\n    for (var i = 0; i < this.channels.length; i++) {\n      if (this.channels[i]) {\n        this.channels[i].reset();\n      }\n    }\n    this.lastCmdA = null;\n    this.lastCmdB = null;\n  };\n\n  /**\n     * Trigger the generation of a cue, and the start of a new one if displayScreens are not empty.\n     */\n\n\n  Cea608Parser.prototype.cueSplitAtTime = function cueSplitAtTime(t) {\n    for (var i = 0; i < this.channels.length; i++) {\n      if (this.channels[i]) {\n        this.channels[i].cueSplitAtTime(t);\n      }\n    }\n  };\n\n  return Cea608Parser;\n}();\n\n/* harmony default export */ var cea_608_parser = (Cea608Parser);\n// CONCATENATED MODULE: ./src/utils/output-filter.js\nfunction output_filter__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OutputFilter = function () {\n  function OutputFilter(timelineController, trackName) {\n    output_filter__classCallCheck(this, OutputFilter);\n\n    this.timelineController = timelineController;\n    this.trackName = trackName;\n    this.startTime = null;\n    this.endTime = null;\n    this.screen = null;\n  }\n\n  OutputFilter.prototype.dispatchCue = function dispatchCue() {\n    if (this.startTime === null) {\n      return;\n    }\n\n    this.timelineController.addCues(this.trackName, this.startTime, this.endTime, this.screen);\n    this.startTime = null;\n  };\n\n  OutputFilter.prototype.newCue = function newCue(startTime, endTime, screen) {\n    if (this.startTime === null || this.startTime > startTime) {\n      this.startTime = startTime;\n    }\n\n    this.endTime = endTime;\n    this.screen = screen;\n    this.timelineController.createCaptionsTrack(this.trackName);\n  };\n\n  return OutputFilter;\n}();\n\n/* harmony default export */ var output_filter = (OutputFilter);\n// CONCATENATED MODULE: ./src/utils/webvtt-parser.js\n\n\n\n\n// String.prototype.startsWith is not supported in IE11\nvar startsWith = function startsWith(inputString, searchString, position) {\n  return inputString.substr(position || 0, searchString.length) === searchString;\n};\n\nvar webvtt_parser_cueString2millis = function cueString2millis(timeString) {\n  var ts = parseInt(timeString.substr(-3));\n  var secs = parseInt(timeString.substr(-6, 2));\n  var mins = parseInt(timeString.substr(-9, 2));\n  var hours = timeString.length > 9 ? parseInt(timeString.substr(0, timeString.indexOf(':'))) : 0;\n\n  if (!Object(number_isFinite[\"a\" /* isFiniteNumber */])(ts) || !Object(number_isFinite[\"a\" /* isFiniteNumber */])(secs) || !Object(number_isFinite[\"a\" /* isFiniteNumber */])(mins) || !Object(number_isFinite[\"a\" /* isFiniteNumber */])(hours)) {\n    return -1;\n  }\n\n  ts += 1000 * secs;\n  ts += 60 * 1000 * mins;\n  ts += 60 * 60 * 1000 * hours;\n\n  return ts;\n};\n\n// From https://github.com/darkskyapp/string-hash\nvar hash = function hash(text) {\n  var hash = 5381;\n  var i = text.length;\n  while (i) {\n    hash = hash * 33 ^ text.charCodeAt(--i);\n  }\n\n  return (hash >>> 0).toString();\n};\n\nvar calculateOffset = function calculateOffset(vttCCs, cc, presentationTime) {\n  var currCC = vttCCs[cc];\n  var prevCC = vttCCs[currCC.prevCC];\n\n  // This is the first discontinuity or cues have been processed since the last discontinuity\n  // Offset = current discontinuity time\n  if (!prevCC || !prevCC.new && currCC.new) {\n    vttCCs.ccOffset = vttCCs.presentationOffset = currCC.start;\n    currCC.new = false;\n    return;\n  }\n\n  // There have been discontinuities since cues were last parsed.\n  // Offset = time elapsed\n  while (prevCC && prevCC.new) {\n    vttCCs.ccOffset += currCC.start - prevCC.start;\n    currCC.new = false;\n    currCC = prevCC;\n    prevCC = vttCCs[currCC.prevCC];\n  }\n\n  vttCCs.presentationOffset = presentationTime;\n};\n\nvar WebVTTParser = {\n  parse: function parse(vttByteArray, syncPTS, vttCCs, cc, callBack, errorCallBack) {\n    // Convert byteArray into string, replacing any somewhat exotic linefeeds with \"\\n\", then split on that character.\n    var re = /\\r\\n|\\n\\r|\\n|\\r/g;\n    // Uint8Array.prototype.reduce is not implemented in IE11\n    var vttLines = Object(id3[\"b\" /* utf8ArrayToStr */])(new Uint8Array(vttByteArray)).trim().replace(re, '\\n').split('\\n');\n\n    var cueTime = '00:00.000';\n    var mpegTs = 0;\n    var localTime = 0;\n    var presentationTime = 0;\n    var cues = [];\n    var parsingError = void 0;\n    var inHeader = true;\n    // let VTTCue = VTTCue || window.TextTrackCue;\n\n    // Create parser object using VTTCue with TextTrackCue fallback on certain browsers.\n    var parser = new vttparser();\n\n    parser.oncue = function (cue) {\n      // Adjust cue timing; clamp cues to start no earlier than - and drop cues that don't end after - 0 on timeline.\n      var currCC = vttCCs[cc];\n      var cueOffset = vttCCs.ccOffset;\n\n      // Update offsets for new discontinuities\n      if (currCC && currCC.new) {\n        if (localTime !== undefined) {\n          // When local time is provided, offset = discontinuity start time - local time\n          cueOffset = vttCCs.ccOffset = currCC.start;\n        } else {\n          calculateOffset(vttCCs, cc, presentationTime);\n        }\n      }\n\n      if (presentationTime) {\n        // If we have MPEGTS, offset = presentation time + discontinuity offset\n        cueOffset = presentationTime + vttCCs.ccOffset - vttCCs.presentationOffset;\n      }\n\n      cue.startTime += cueOffset - localTime;\n      cue.endTime += cueOffset - localTime;\n\n      // Create a unique hash id for a cue based on start/end times and text.\n      // This helps timeline-controller to avoid showing repeated captions.\n      cue.id = hash(cue.startTime.toString()) + hash(cue.endTime.toString()) + hash(cue.text);\n\n      // Fix encoding of special characters. TODO: Test with all sorts of weird characters.\n      cue.text = decodeURIComponent(encodeURIComponent(cue.text));\n      if (cue.endTime > 0) {\n        cues.push(cue);\n      }\n    };\n\n    parser.onparsingerror = function (e) {\n      parsingError = e;\n    };\n\n    parser.onflush = function () {\n      if (parsingError && errorCallBack) {\n        errorCallBack(parsingError);\n        return;\n      }\n      callBack(cues);\n    };\n\n    // Go through contents line by line.\n    vttLines.forEach(function (line) {\n      if (inHeader) {\n        // Look for X-TIMESTAMP-MAP in header.\n        if (startsWith(line, 'X-TIMESTAMP-MAP=')) {\n          // Once found, no more are allowed anyway, so stop searching.\n          inHeader = false;\n          // Extract LOCAL and MPEGTS.\n          line.substr(16).split(',').forEach(function (timestamp) {\n            if (startsWith(timestamp, 'LOCAL:')) {\n              cueTime = timestamp.substr(6);\n            } else if (startsWith(timestamp, 'MPEGTS:')) {\n              mpegTs = parseInt(timestamp.substr(7));\n            }\n          });\n          try {\n            // Calculate subtitle offset in milliseconds.\n            // If sync PTS is less than zero, we have a 33-bit wraparound, which is fixed by adding 2^33 = 8589934592.\n            syncPTS = syncPTS < 0 ? syncPTS + 8589934592 : syncPTS;\n            // Adjust MPEGTS by sync PTS.\n            mpegTs -= syncPTS;\n            // Convert cue time to seconds\n            localTime = webvtt_parser_cueString2millis(cueTime) / 1000;\n            // Convert MPEGTS to seconds from 90kHz.\n            presentationTime = mpegTs / 90000;\n\n            if (localTime === -1) {\n              parsingError = new Error('Malformed X-TIMESTAMP-MAP: ' + line);\n            }\n          } catch (e) {\n            parsingError = new Error('Malformed X-TIMESTAMP-MAP: ' + line);\n          }\n          // Return without parsing X-TIMESTAMP-MAP line.\n          return;\n        } else if (line === '') {\n          inHeader = false;\n        }\n      }\n      // Parse line by default.\n      parser.parse(line + '\\n');\n    });\n\n    parser.flush();\n  }\n};\n\n/* harmony default export */ var webvtt_parser = (WebVTTParser);\n// CONCATENATED MODULE: ./src/controller/timeline-controller.js\nfunction timeline_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction timeline_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction timeline_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * Timeline Controller\n*/\n\n\n\n\n\n\n\n\n\nfunction reuseVttTextTrack(inUseTrack, manifestTrack) {\n  return inUseTrack && inUseTrack.label === manifestTrack.name && !(inUseTrack.textTrack1 || inUseTrack.textTrack2);\n}\n\nfunction intersection(x1, x2, y1, y2) {\n  return Math.min(x2, y2) - Math.max(x1, y1);\n}\n\nvar timeline_controller_TimelineController = function (_EventHandler) {\n  timeline_controller__inherits(TimelineController, _EventHandler);\n\n  function TimelineController(hls) {\n    timeline_controller__classCallCheck(this, TimelineController);\n\n    var _this = timeline_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHING, events[\"a\" /* default */].MEDIA_DETACHING, events[\"a\" /* default */].FRAG_PARSING_USERDATA, events[\"a\" /* default */].FRAG_DECRYPTED, events[\"a\" /* default */].MANIFEST_LOADING, events[\"a\" /* default */].MANIFEST_LOADED, events[\"a\" /* default */].FRAG_LOADED, events[\"a\" /* default */].LEVEL_SWITCHING, events[\"a\" /* default */].INIT_PTS_FOUND));\n\n    _this.hls = hls;\n    _this.config = hls.config;\n    _this.enabled = true;\n    _this.Cues = hls.config.cueHandler;\n    _this.textTracks = [];\n    _this.tracks = [];\n    _this.unparsedVttFrags = [];\n    _this.initPTS = undefined;\n    _this.cueRanges = [];\n    _this.captionsTracks = {};\n\n    _this.captionsProperties = {\n      textTrack1: {\n        label: _this.config.captionsTextTrack1Label,\n        languageCode: _this.config.captionsTextTrack1LanguageCode\n      },\n      textTrack2: {\n        label: _this.config.captionsTextTrack2Label,\n        languageCode: _this.config.captionsTextTrack2LanguageCode\n      }\n    };\n\n    if (_this.config.enableCEA708Captions) {\n      var channel1 = new output_filter(_this, 'textTrack1');\n      var channel2 = new output_filter(_this, 'textTrack2');\n\n      _this.cea608Parser = new cea_608_parser(0, channel1, channel2);\n    }\n    return _this;\n  }\n\n  TimelineController.prototype.addCues = function addCues(trackName, startTime, endTime, screen) {\n    // skip cues which overlap more than 50% with previously parsed time ranges\n    var ranges = this.cueRanges;\n    var merged = false;\n    for (var i = ranges.length; i--;) {\n      var cueRange = ranges[i];\n      var overlap = intersection(cueRange[0], cueRange[1], startTime, endTime);\n      if (overlap >= 0) {\n        cueRange[0] = Math.min(cueRange[0], startTime);\n        cueRange[1] = Math.max(cueRange[1], endTime);\n        merged = true;\n        if (overlap / (endTime - startTime) > 0.5) {\n          return;\n        }\n      }\n    }\n    if (!merged) {\n      ranges.push([startTime, endTime]);\n    }\n\n    this.Cues.newCue(this.captionsTracks[trackName], startTime, endTime, screen);\n  };\n\n  // Triggered when an initial PTS is found; used for synchronisation of WebVTT.\n\n\n  TimelineController.prototype.onInitPtsFound = function onInitPtsFound(data) {\n    var _this2 = this;\n\n    if (typeof this.initPTS === 'undefined') {\n      this.initPTS = data.initPTS;\n    }\n\n    // Due to asynchrony, initial PTS may arrive later than the first VTT fragments are loaded.\n    // Parse any unparsed fragments upon receiving the initial PTS.\n    if (this.unparsedVttFrags.length) {\n      this.unparsedVttFrags.forEach(function (frag) {\n        _this2.onFragLoaded(frag);\n      });\n      this.unparsedVttFrags = [];\n    }\n  };\n\n  TimelineController.prototype.getExistingTrack = function getExistingTrack(trackName) {\n    var media = this.media;\n\n    if (media) {\n      for (var i = 0; i < media.textTracks.length; i++) {\n        var textTrack = media.textTracks[i];\n        if (textTrack[trackName]) {\n          return textTrack;\n        }\n      }\n    }\n    return null;\n  };\n\n  TimelineController.prototype.createCaptionsTrack = function createCaptionsTrack(trackName) {\n    var _captionsProperties$t = this.captionsProperties[trackName],\n        label = _captionsProperties$t.label,\n        languageCode = _captionsProperties$t.languageCode;\n\n    var captionsTracks = this.captionsTracks;\n    if (!captionsTracks[trackName]) {\n      // Enable reuse of existing text track.\n      var existingTrack = this.getExistingTrack(trackName);\n      if (!existingTrack) {\n        var textTrack = this.createTextTrack('captions', label, languageCode);\n        if (textTrack) {\n          // Set a special property on the track so we know it's managed by Hls.js\n          textTrack[trackName] = true;\n          captionsTracks[trackName] = textTrack;\n        }\n      } else {\n        captionsTracks[trackName] = existingTrack;\n        clearCurrentCues(captionsTracks[trackName]);\n        sendAddTrackEvent(captionsTracks[trackName], this.media);\n      }\n    }\n  };\n\n  TimelineController.prototype.createTextTrack = function createTextTrack(kind, label, lang) {\n    var media = this.media;\n    if (media) {\n      return media.addTextTrack(kind, label, lang);\n    }\n  };\n\n  TimelineController.prototype.destroy = function destroy() {\n    event_handler.prototype.destroy.call(this);\n  };\n\n  TimelineController.prototype.onMediaAttaching = function onMediaAttaching(data) {\n    this.media = data.media;\n    this._cleanTracks();\n  };\n\n  TimelineController.prototype.onMediaDetaching = function onMediaDetaching() {\n    var captionsTracks = this.captionsTracks;\n\n    Object.keys(captionsTracks).forEach(function (trackName) {\n      clearCurrentCues(captionsTracks[trackName]);\n      delete captionsTracks[trackName];\n    });\n  };\n\n  TimelineController.prototype.onManifestLoading = function onManifestLoading() {\n    this.lastSn = -1; // Detect discontiguity in fragment parsing\n    this.prevCC = -1;\n    this.vttCCs = { ccOffset: 0, presentationOffset: 0 }; // Detect discontinuity in subtitle manifests\n    this._cleanTracks();\n  };\n\n  TimelineController.prototype._cleanTracks = function _cleanTracks() {\n    // clear outdated subtitles\n    var media = this.media;\n    if (media) {\n      var textTracks = media.textTracks;\n      if (textTracks) {\n        for (var i = 0; i < textTracks.length; i++) {\n          clearCurrentCues(textTracks[i]);\n        }\n      }\n    }\n  };\n\n  TimelineController.prototype.onManifestLoaded = function onManifestLoaded(data) {\n    var _this3 = this;\n\n    this.textTracks = [];\n    this.unparsedVttFrags = this.unparsedVttFrags || [];\n    this.initPTS = undefined;\n    this.cueRanges = [];\n\n    if (this.config.enableWebVTT) {\n      this.tracks = data.subtitles || [];\n      var inUseTracks = this.media ? this.media.textTracks : [];\n\n      this.tracks.forEach(function (track, index) {\n        var textTrack = void 0;\n        if (index < inUseTracks.length) {\n          var inUseTrack = inUseTracks[index];\n          // Reuse tracks with the same label, but do not reuse 608/708 tracks\n          if (reuseVttTextTrack(inUseTrack, track)) {\n            textTrack = inUseTrack;\n          }\n        }\n        if (!textTrack) {\n          textTrack = _this3.createTextTrack('subtitles', track.name, track.lang);\n        }\n\n        if (track.default) {\n          textTrack.mode = _this3.hls.subtitleDisplay ? 'showing' : 'hidden';\n        } else {\n          textTrack.mode = 'disabled';\n        }\n\n        _this3.textTracks.push(textTrack);\n      });\n    }\n  };\n\n  TimelineController.prototype.onLevelSwitching = function onLevelSwitching() {\n    this.enabled = this.hls.currentLevel.closedCaptions !== 'NONE';\n  };\n\n  TimelineController.prototype.onFragLoaded = function onFragLoaded(data) {\n    var frag = data.frag,\n        payload = data.payload;\n    if (frag.type === 'main') {\n      var sn = frag.sn;\n      // if this frag isn't contiguous, clear the parser so cues with bad start/end times aren't added to the textTrack\n      if (sn !== this.lastSn + 1) {\n        var cea608Parser = this.cea608Parser;\n        if (cea608Parser) {\n          cea608Parser.reset();\n        }\n      }\n      this.lastSn = sn;\n    } // eslint-disable-line brace-style\n    // If fragment is subtitle type, parse as WebVTT.\n    else if (frag.type === 'subtitle') {\n        if (payload.byteLength) {\n          // We need an initial synchronisation PTS. Store fragments as long as none has arrived.\n          if (typeof this.initPTS === 'undefined') {\n            this.unparsedVttFrags.push(data);\n            return;\n          }\n\n          var decryptData = frag.decryptdata;\n          // If the subtitles are not encrypted, parse VTTs now. Otherwise, we need to wait.\n          if (decryptData == null || decryptData.key == null || decryptData.method !== 'AES-128') {\n            this._parseVTTs(frag, payload);\n          }\n        } else {\n          // In case there is no payload, finish unsuccessfully.\n          this.hls.trigger(events[\"a\" /* default */].SUBTITLE_FRAG_PROCESSED, { success: false, frag: frag });\n        }\n      }\n  };\n\n  TimelineController.prototype._parseVTTs = function _parseVTTs(frag, payload) {\n    var vttCCs = this.vttCCs;\n    if (!vttCCs[frag.cc]) {\n      vttCCs[frag.cc] = { start: frag.start, prevCC: this.prevCC, new: true };\n      this.prevCC = frag.cc;\n    }\n    var textTracks = this.textTracks,\n        hls = this.hls;\n\n    // Parse the WebVTT file contents.\n    webvtt_parser.parse(payload, this.initPTS, vttCCs, frag.cc, function (cues) {\n      var currentTrack = textTracks[frag.trackId];\n      // WebVTTParser.parse is an async method and if the currently selected text track mode is set to \"disabled\"\n      // before parsing is done then don't try to access currentTrack.cues.getCueById as cues will be null\n      // and trying to access getCueById method of cues will throw an exception\n      if (currentTrack.mode === 'disabled') {\n        hls.trigger(events[\"a\" /* default */].SUBTITLE_FRAG_PROCESSED, { success: false, frag: frag });\n        return;\n      }\n      // Add cues and trigger event with success true.\n      cues.forEach(function (cue) {\n        // Sometimes there are cue overlaps on segmented vtts so the same\n        // cue can appear more than once in different vtt files.\n        // This avoid showing duplicated cues with same timecode and text.\n        if (!currentTrack.cues.getCueById(cue.id)) {\n          try {\n            currentTrack.addCue(cue);\n          } catch (err) {\n            var textTrackCue = new window.TextTrackCue(cue.startTime, cue.endTime, cue.text);\n            textTrackCue.id = cue.id;\n            currentTrack.addCue(textTrackCue);\n          }\n        }\n      });\n      hls.trigger(events[\"a\" /* default */].SUBTITLE_FRAG_PROCESSED, { success: true, frag: frag });\n    }, function (e) {\n      // Something went wrong while parsing. Trigger event with success false.\n      logger[\"b\" /* logger */].log('Failed to parse VTT cue: ' + e);\n      hls.trigger(events[\"a\" /* default */].SUBTITLE_FRAG_PROCESSED, { success: false, frag: frag });\n    });\n  };\n\n  TimelineController.prototype.onFragDecrypted = function onFragDecrypted(data) {\n    var decryptedData = data.payload,\n        frag = data.frag;\n\n    if (frag.type === 'subtitle') {\n      if (typeof this.initPTS === 'undefined') {\n        this.unparsedVttFrags.push(data);\n        return;\n      }\n\n      this._parseVTTs(frag, decryptedData);\n    }\n  };\n\n  TimelineController.prototype.onFragParsingUserdata = function onFragParsingUserdata(data) {\n    // push all of the CEA-708 messages into the interpreter\n    // immediately. It will create the proper timestamps based on our PTS value\n    if (this.enabled && this.config.enableCEA708Captions) {\n      for (var i = 0; i < data.samples.length; i++) {\n        var ccdatas = this.extractCea608Data(data.samples[i].bytes);\n        this.cea608Parser.addData(data.samples[i].pts, ccdatas);\n      }\n    }\n  };\n\n  TimelineController.prototype.extractCea608Data = function extractCea608Data(byteArray) {\n    var count = byteArray[0] & 31;\n    var position = 2;\n    var tmpByte = void 0,\n        ccbyte1 = void 0,\n        ccbyte2 = void 0,\n        ccValid = void 0,\n        ccType = void 0;\n    var actualCCBytes = [];\n\n    for (var j = 0; j < count; j++) {\n      tmpByte = byteArray[position++];\n      ccbyte1 = 0x7F & byteArray[position++];\n      ccbyte2 = 0x7F & byteArray[position++];\n      ccValid = (4 & tmpByte) !== 0;\n      ccType = 3 & tmpByte;\n\n      if (ccbyte1 === 0 && ccbyte2 === 0) {\n        continue;\n      }\n\n      if (ccValid) {\n        if (ccType === 0) {\n          // || ccType === 1\n          actualCCBytes.push(ccbyte1);\n          actualCCBytes.push(ccbyte2);\n        }\n      }\n    }\n    return actualCCBytes;\n  };\n\n  return TimelineController;\n}(event_handler);\n\n/* harmony default export */ var timeline_controller = (timeline_controller_TimelineController);\n// CONCATENATED MODULE: ./src/controller/subtitle-track-controller.js\nvar subtitle_track_controller__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction subtitle_track_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction subtitle_track_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction subtitle_track_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * subtitle track controller\n*/\n\n\n\n\n\nfunction filterSubtitleTracks(textTrackList) {\n  var tracks = [];\n  for (var i = 0; i < textTrackList.length; i++) {\n    if (textTrackList[i].kind === 'subtitles') {\n      tracks.push(textTrackList[i]);\n    }\n  }\n  return tracks;\n}\n\nvar subtitle_track_controller_SubtitleTrackController = function (_EventHandler) {\n  subtitle_track_controller__inherits(SubtitleTrackController, _EventHandler);\n\n  function SubtitleTrackController(hls) {\n    subtitle_track_controller__classCallCheck(this, SubtitleTrackController);\n\n    var _this = subtitle_track_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHED, events[\"a\" /* default */].MEDIA_DETACHING, events[\"a\" /* default */].MANIFEST_LOADING, events[\"a\" /* default */].MANIFEST_LOADED, events[\"a\" /* default */].SUBTITLE_TRACK_LOADED));\n\n    _this.tracks = [];\n    _this.trackId = -1;\n    _this.media = null;\n\n    /**\n     * @member {boolean} subtitleDisplay Enable/disable subtitle display rendering\n     */\n    _this.subtitleDisplay = true;\n    return _this;\n  }\n\n  SubtitleTrackController.prototype._onTextTracksChanged = function _onTextTracksChanged() {\n    // Media is undefined when switching streams via loadSource()\n    if (!this.media) {\n      return;\n    }\n\n    var trackId = -1;\n    var tracks = filterSubtitleTracks(this.media.textTracks);\n    for (var id = 0; id < tracks.length; id++) {\n      if (tracks[id].mode === 'hidden') {\n        // Do not break in case there is a following track with showing.\n        trackId = id;\n      } else if (tracks[id].mode === 'showing') {\n        trackId = id;\n        break;\n      }\n    }\n\n    // Setting current subtitleTrack will invoke code.\n    this.subtitleTrack = trackId;\n  };\n\n  SubtitleTrackController.prototype.destroy = function destroy() {\n    event_handler.prototype.destroy.call(this);\n  };\n\n  // Listen for subtitle track change, then extract the current track ID.\n\n\n  SubtitleTrackController.prototype.onMediaAttached = function onMediaAttached(data) {\n    var _this2 = this;\n\n    this.media = data.media;\n    if (!this.media) {\n      return;\n    }\n\n    if (this.queuedDefaultTrack) {\n      this.subtitleTrack = this.queuedDefaultTrack;\n      delete this.queuedDefaultTrack;\n    }\n\n    this.trackChangeListener = this._onTextTracksChanged.bind(this);\n\n    this.useTextTrackPolling = !(this.media.textTracks && 'onchange' in this.media.textTracks);\n    if (this.useTextTrackPolling) {\n      this.subtitlePollingInterval = setInterval(function () {\n        _this2.trackChangeListener();\n      }, 500);\n    } else {\n      this.media.textTracks.addEventListener('change', this.trackChangeListener);\n    }\n  };\n\n  SubtitleTrackController.prototype.onMediaDetaching = function onMediaDetaching() {\n    if (!this.media) {\n      return;\n    }\n\n    if (this.useTextTrackPolling) {\n      clearInterval(this.subtitlePollingInterval);\n    } else {\n      this.media.textTracks.removeEventListener('change', this.trackChangeListener);\n    }\n\n    this.media = null;\n  };\n\n  // Reset subtitle tracks on manifest loading\n\n\n  SubtitleTrackController.prototype.onManifestLoading = function onManifestLoading() {\n    this.tracks = [];\n    this.trackId = -1;\n  };\n\n  // Fired whenever a new manifest is loaded.\n\n\n  SubtitleTrackController.prototype.onManifestLoaded = function onManifestLoaded(data) {\n    var _this3 = this;\n\n    var tracks = data.subtitles || [];\n    this.tracks = tracks;\n    this.trackId = -1;\n    this.hls.trigger(events[\"a\" /* default */].SUBTITLE_TRACKS_UPDATED, { subtitleTracks: tracks });\n\n    // loop through available subtitle tracks and autoselect default if needed\n    // TODO: improve selection logic to handle forced, etc\n    tracks.forEach(function (track) {\n      if (track.default) {\n        // setting this.subtitleTrack will trigger internal logic\n        // if media has not been attached yet, it will fail\n        // we keep a reference to the default track id\n        // and we'll set subtitleTrack when onMediaAttached is triggered\n        if (_this3.media) {\n          _this3.subtitleTrack = track.id;\n        } else {\n          _this3.queuedDefaultTrack = track.id;\n        }\n      }\n    });\n  };\n\n  // Trigger subtitle track playlist reload.\n\n\n  SubtitleTrackController.prototype.onTick = function onTick() {\n    var trackId = this.trackId;\n    var subtitleTrack = this.tracks[trackId];\n    if (!subtitleTrack) {\n      return;\n    }\n\n    var details = subtitleTrack.details;\n    // check if we need to load playlist for this subtitle Track\n    if (!details || details.live) {\n      // track not retrieved yet, or live playlist we need to (re)load it\n      logger[\"b\" /* logger */].log('(re)loading playlist for subtitle track ' + trackId);\n      this.hls.trigger(events[\"a\" /* default */].SUBTITLE_TRACK_LOADING, { url: subtitleTrack.url, id: trackId });\n    }\n  };\n\n  SubtitleTrackController.prototype.onSubtitleTrackLoaded = function onSubtitleTrackLoaded(data) {\n    var _this4 = this;\n\n    if (data.id < this.tracks.length) {\n      logger[\"b\" /* logger */].log('subtitle track ' + data.id + ' loaded');\n      this.tracks[data.id].details = data.details;\n      // check if current playlist is a live playlist\n      if (data.details.live && !this.timer) {\n        // if live playlist we will have to reload it periodically\n        // set reload period to playlist target duration\n        this.timer = setInterval(function () {\n          _this4.onTick();\n        }, 1000 * data.details.targetduration, this);\n      }\n      if (!data.details.live && this.timer) {\n        // playlist is not live and timer is armed : stopping it\n        this._stopTimer();\n      }\n    }\n  };\n\n  /** get alternate subtitle tracks list from playlist **/\n\n\n  /**\n   * This method is responsible for validating the subtitle index and periodically reloading if live.\n   * Dispatches the SUBTITLE_TRACK_SWITCH event, which instructs the subtitle-stream-controller to load the selected track.\n   * @param newId - The id of the subtitle track to activate.\n   */\n  SubtitleTrackController.prototype.setSubtitleTrackInternal = function setSubtitleTrackInternal(newId) {\n    var hls = this.hls,\n        tracks = this.tracks;\n\n    if (typeof newId !== 'number' || newId < -1 || newId >= tracks.length) {\n      return;\n    }\n\n    this._stopTimer();\n    this.trackId = newId;\n    logger[\"b\" /* logger */].log('switching to subtitle track ' + newId);\n    hls.trigger(events[\"a\" /* default */].SUBTITLE_TRACK_SWITCH, { id: newId });\n    if (newId === -1) {\n      return;\n    }\n\n    // check if we need to load playlist for this subtitle Track\n    var subtitleTrack = tracks[newId];\n    var details = subtitleTrack.details;\n    if (!details || details.live) {\n      // track not retrieved yet, or live playlist we need to (re)load it\n      logger[\"b\" /* logger */].log('(re)loading playlist for subtitle track ' + newId);\n      hls.trigger(events[\"a\" /* default */].SUBTITLE_TRACK_LOADING, { url: subtitleTrack.url, id: newId });\n    }\n  };\n\n  SubtitleTrackController.prototype._stopTimer = function _stopTimer() {\n    if (this.timer) {\n      clearInterval(this.timer);\n      this.timer = null;\n    }\n  };\n\n  /**\n   * Disables the old subtitleTrack and sets current mode on the next subtitleTrack.\n   * This operates on the DOM textTracks.\n   * A value of -1 will disable all subtitle tracks.\n   * @param newId - The id of the next track to enable\n   * @private\n   */\n\n\n  SubtitleTrackController.prototype._toggleTrackModes = function _toggleTrackModes(newId) {\n    var media = this.media,\n        subtitleDisplay = this.subtitleDisplay,\n        trackId = this.trackId;\n\n    if (!media) {\n      return;\n    }\n\n    var textTracks = filterSubtitleTracks(media.textTracks);\n    if (newId === -1) {\n      [].slice.call(textTracks).forEach(function (track) {\n        track.mode = 'disabled';\n      });\n    } else {\n      var oldTrack = textTracks[trackId];\n      if (oldTrack) {\n        oldTrack.mode = 'disabled';\n      }\n    }\n\n    var nextTrack = textTracks[newId];\n    if (nextTrack) {\n      nextTrack.mode = subtitleDisplay ? 'showing' : 'hidden';\n    }\n  };\n\n  subtitle_track_controller__createClass(SubtitleTrackController, [{\n    key: 'subtitleTracks',\n    get: function get() {\n      return this.tracks;\n    }\n\n    /** get index of the selected subtitle track (index in subtitle track lists) **/\n\n  }, {\n    key: 'subtitleTrack',\n    get: function get() {\n      return this.trackId;\n    }\n\n    /** select a subtitle track, based on its index in subtitle track lists**/\n    ,\n    set: function set(subtitleTrackId) {\n      if (this.trackId !== subtitleTrackId) {\n        this._toggleTrackModes(subtitleTrackId);\n        this.setSubtitleTrackInternal(subtitleTrackId);\n      }\n    }\n  }]);\n\n  return SubtitleTrackController;\n}(event_handler);\n\n/* harmony default export */ var subtitle_track_controller = (subtitle_track_controller_SubtitleTrackController);\n// EXTERNAL MODULE: ./src/crypt/decrypter.js + 3 modules\nvar decrypter = __webpack_require__(8);\n\n// CONCATENATED MODULE: ./src/controller/subtitle-stream-controller.js\nfunction subtitle_stream_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction subtitle_stream_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction subtitle_stream_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/*\n * Subtitle Stream Controller\n*/\n\n\n\n\n\n\nvar subtitle_stream_controller__window = window,\n    subtitle_stream_controller_performance = subtitle_stream_controller__window.performance;\n\n\nvar subtitle_stream_controller_State = {\n  STOPPED: 'STOPPED',\n  IDLE: 'IDLE',\n  KEY_LOADING: 'KEY_LOADING',\n  FRAG_LOADING: 'FRAG_LOADING'\n};\n\nvar subtitle_stream_controller_SubtitleStreamController = function (_TaskLoop) {\n  subtitle_stream_controller__inherits(SubtitleStreamController, _TaskLoop);\n\n  function SubtitleStreamController(hls) {\n    subtitle_stream_controller__classCallCheck(this, SubtitleStreamController);\n\n    var _this = subtitle_stream_controller__possibleConstructorReturn(this, _TaskLoop.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHED, events[\"a\" /* default */].ERROR, events[\"a\" /* default */].KEY_LOADED, events[\"a\" /* default */].FRAG_LOADED, events[\"a\" /* default */].SUBTITLE_TRACKS_UPDATED, events[\"a\" /* default */].SUBTITLE_TRACK_SWITCH, events[\"a\" /* default */].SUBTITLE_TRACK_LOADED, events[\"a\" /* default */].SUBTITLE_FRAG_PROCESSED));\n\n    _this.config = hls.config;\n    _this.vttFragSNsProcessed = {};\n    _this.vttFragQueues = undefined;\n    _this.currentlyProcessing = null;\n    _this.state = subtitle_stream_controller_State.STOPPED;\n    _this.currentTrackId = -1;\n    _this.decrypter = new decrypter[\"a\" /* default */](hls.observer, hls.config);\n    return _this;\n  }\n\n  SubtitleStreamController.prototype.onHandlerDestroyed = function onHandlerDestroyed() {\n    this.state = subtitle_stream_controller_State.STOPPED;\n  };\n\n  // Remove all queued items and create a new, empty queue for each track.\n\n\n  SubtitleStreamController.prototype.clearVttFragQueues = function clearVttFragQueues() {\n    var _this2 = this;\n\n    this.vttFragQueues = {};\n    this.tracks.forEach(function (track) {\n      _this2.vttFragQueues[track.id] = [];\n    });\n  };\n\n  // If no frag is being processed and queue isn't empty, initiate processing of next frag in line.\n\n\n  SubtitleStreamController.prototype.nextFrag = function nextFrag() {\n    if (this.currentlyProcessing === null && this.currentTrackId > -1 && this.vttFragQueues[this.currentTrackId].length) {\n      var frag = this.currentlyProcessing = this.vttFragQueues[this.currentTrackId].shift();\n      this.fragCurrent = frag;\n      this.hls.trigger(events[\"a\" /* default */].FRAG_LOADING, { frag: frag });\n      this.state = subtitle_stream_controller_State.FRAG_LOADING;\n    }\n  };\n\n  // When fragment has finished processing, add sn to list of completed if successful.\n\n\n  SubtitleStreamController.prototype.onSubtitleFragProcessed = function onSubtitleFragProcessed(data) {\n    if (data.success) {\n      this.vttFragSNsProcessed[data.frag.trackId].push(data.frag.sn);\n    }\n\n    this.currentlyProcessing = null;\n    this.state = subtitle_stream_controller_State.IDLE;\n    this.nextFrag();\n  };\n\n  SubtitleStreamController.prototype.onMediaAttached = function onMediaAttached() {\n    this.state = subtitle_stream_controller_State.IDLE;\n  };\n\n  // If something goes wrong, procede to next frag, if we were processing one.\n\n\n  SubtitleStreamController.prototype.onError = function onError(data) {\n    var frag = data.frag;\n    // don't handle frag error not related to subtitle fragment\n    if (frag && frag.type !== 'subtitle') {\n      return;\n    }\n\n    if (this.currentlyProcessing) {\n      this.currentlyProcessing = null;\n      this.nextFrag();\n    }\n  };\n\n  SubtitleStreamController.prototype.doTick = function doTick() {\n    var _this3 = this;\n\n    switch (this.state) {\n      case subtitle_stream_controller_State.IDLE:\n        var tracks = this.tracks;\n        var trackId = this.currentTrackId;\n\n        var processedFragSNs = this.vttFragSNsProcessed[trackId],\n            fragQueue = this.vttFragQueues[trackId],\n            currentFragSN = this.currentlyProcessing ? this.currentlyProcessing.sn : -1;\n\n        var alreadyProcessed = function alreadyProcessed(frag) {\n          return processedFragSNs.indexOf(frag.sn) > -1;\n        };\n\n        var alreadyInQueue = function alreadyInQueue(frag) {\n          return fragQueue.some(function (fragInQueue) {\n            return fragInQueue.sn === frag.sn;\n          });\n        };\n\n        // exit if tracks don't exist\n        if (!tracks) {\n          break;\n        }\n\n        var trackDetails;\n\n        if (trackId < tracks.length) {\n          trackDetails = tracks[trackId].details;\n        }\n\n        if (typeof trackDetails === 'undefined') {\n          break;\n        }\n\n        // Add all fragments that haven't been, aren't currently being and aren't waiting to be processed, to queue.\n        trackDetails.fragments.forEach(function (frag) {\n          if (!(alreadyProcessed(frag) || frag.sn === currentFragSN || alreadyInQueue(frag))) {\n            // Load key if subtitles are encrypted\n            if (frag.encrypted) {\n              logger[\"b\" /* logger */].log('Loading key for ' + frag.sn);\n              _this3.state = subtitle_stream_controller_State.KEY_LOADING;\n              _this3.hls.trigger(events[\"a\" /* default */].KEY_LOADING, { frag: frag });\n            } else {\n              // Frags don't know their subtitle track ID, so let's just add that...\n              frag.trackId = trackId;\n              fragQueue.push(frag);\n              _this3.nextFrag();\n            }\n          }\n        });\n    }\n  };\n\n  // Got all new subtitle tracks.\n\n\n  SubtitleStreamController.prototype.onSubtitleTracksUpdated = function onSubtitleTracksUpdated(data) {\n    var _this4 = this;\n\n    logger[\"b\" /* logger */].log('subtitle tracks updated');\n    this.tracks = data.subtitleTracks;\n    this.clearVttFragQueues();\n    this.vttFragSNsProcessed = {};\n    this.tracks.forEach(function (track) {\n      _this4.vttFragSNsProcessed[track.id] = [];\n    });\n  };\n\n  SubtitleStreamController.prototype.onSubtitleTrackSwitch = function onSubtitleTrackSwitch(data) {\n    this.currentTrackId = data.id;\n    if (!this.tracks || this.currentTrackId === -1) {\n      return;\n    }\n\n    // Check if track was already loaded and if so make sure we finish\n    // downloading its frags, if not all have been downloaded yet\n    var currentTrack = this.tracks[this.currentTrackId];\n    if (currentTrack && currentTrack.details) {\n      this.tick();\n    }\n  };\n\n  // Got a new set of subtitle fragments.\n\n\n  SubtitleStreamController.prototype.onSubtitleTrackLoaded = function onSubtitleTrackLoaded() {\n    this.tick();\n  };\n\n  SubtitleStreamController.prototype.onKeyLoaded = function onKeyLoaded() {\n    if (this.state === subtitle_stream_controller_State.KEY_LOADING) {\n      this.state = subtitle_stream_controller_State.IDLE;\n      this.tick();\n    }\n  };\n\n  SubtitleStreamController.prototype.onFragLoaded = function onFragLoaded(data) {\n    var fragCurrent = this.fragCurrent,\n        decryptData = data.frag.decryptdata;\n    var fragLoaded = data.frag,\n        hls = this.hls;\n    if (this.state === subtitle_stream_controller_State.FRAG_LOADING && fragCurrent && data.frag.type === 'subtitle' && fragCurrent.sn === data.frag.sn) {\n      // check to see if the payload needs to be decrypted\n      if (data.payload.byteLength > 0 && decryptData != null && decryptData.key != null && decryptData.method === 'AES-128') {\n        var startTime = void 0;\n        try {\n          startTime = subtitle_stream_controller_performance.now();\n        } catch (error) {\n          startTime = Date.now();\n        }\n        // decrypt the subtitles\n        this.decrypter.decrypt(data.payload, decryptData.key.buffer, decryptData.iv.buffer, function (decryptedData) {\n          var endTime = void 0;\n          try {\n            endTime = subtitle_stream_controller_performance.now();\n          } catch (error) {\n            endTime = Date.now();\n          }\n          hls.trigger(events[\"a\" /* default */].FRAG_DECRYPTED, { frag: fragLoaded, payload: decryptedData, stats: { tstart: startTime, tdecrypt: endTime } });\n        });\n      }\n    }\n  };\n\n  return SubtitleStreamController;\n}(task_loop);\n\n/* harmony default export */ var subtitle_stream_controller = (subtitle_stream_controller_SubtitleStreamController);\n// CONCATENATED MODULE: ./src/controller/eme-controller.js\nvar eme_controller__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction eme_controller__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction eme_controller__possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction eme_controller__inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * @author Stephan Hesse <disparat@gmail.com> | <tchakabam@gmail.com>\n *\n * DRM support for Hls.js\n */\n\n\n\n\n\n\n\nvar eme_controller__window = window,\n    eme_controller_XMLHttpRequest = eme_controller__window.XMLHttpRequest;\n\n\nvar MAX_LICENSE_REQUEST_FAILURES = 3;\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMediaKeySystemAccess\n */\nvar KeySystems = {\n  WIDEVINE: 'com.widevine.alpha',\n  PLAYREADY: 'com.microsoft.playready'\n};\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemConfiguration\n * @param {Array<string>} audioCodecs List of required audio codecs to support\n * @param {Array<string>} videoCodecs List of required video codecs to support\n * @param {object} drmSystemOptions Optional parameters/requirements for the key-system\n * @returns {Array<MediaSystemConfiguration>} An array of supported configurations\n */\n\nvar createWidevineMediaKeySystemConfigurations = function createWidevineMediaKeySystemConfigurations(audioCodecs, videoCodecs, drmSystemOptions) {\n  /* jshint ignore:line */\n  var baseConfig = {\n    // initDataTypes: ['keyids', 'mp4'],\n    // label: \"\",\n    // persistentState: \"not-allowed\", // or \"required\" ?\n    // distinctiveIdentifier: \"not-allowed\", // or \"required\" ?\n    // sessionTypes: ['temporary'],\n    videoCapabilities: [\n      // { contentType: 'video/mp4; codecs=\"avc1.42E01E\"' }\n    ]\n  };\n\n  videoCodecs.forEach(function (codec) {\n    baseConfig.videoCapabilities.push({\n      contentType: 'video/mp4; codecs=\"' + codec + '\"'\n    });\n  });\n\n  return [baseConfig];\n};\n\n/**\n * The idea here is to handle key-system (and their respective platforms) specific configuration differences\n * in order to work with the local requestMediaKeySystemAccess method.\n *\n * We can also rule-out platform-related key-system support at this point by throwing an error or returning null.\n *\n * @param {string} keySystem Identifier for the key-system, see `KeySystems` enum\n * @param {Array<string>} audioCodecs List of required audio codecs to support\n * @param {Array<string>} videoCodecs List of required video codecs to support\n * @returns {Array<MediaSystemConfiguration> | null} A non-empty Array of MediaKeySystemConfiguration objects or `null`\n */\nvar getSupportedMediaKeySystemConfigurations = function getSupportedMediaKeySystemConfigurations(keySystem, audioCodecs, videoCodecs) {\n  switch (keySystem) {\n    case KeySystems.WIDEVINE:\n      return createWidevineMediaKeySystemConfigurations(audioCodecs, videoCodecs);\n    default:\n      throw Error('Unknown key-system: ' + keySystem);\n  }\n};\n\n/**\n * Controller to deal with encrypted media extensions (EME)\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Encrypted_Media_Extensions_API\n *\n * @class\n * @constructor\n */\n\nvar eme_controller_EMEController = function (_EventHandler) {\n  eme_controller__inherits(EMEController, _EventHandler);\n\n  /**\n     * @constructs\n     * @param {Hls} hls Our Hls.js instance\n     */\n  function EMEController(hls) {\n    eme_controller__classCallCheck(this, EMEController);\n\n    var _this = eme_controller__possibleConstructorReturn(this, _EventHandler.call(this, hls, events[\"a\" /* default */].MEDIA_ATTACHED, events[\"a\" /* default */].MANIFEST_PARSED));\n\n    _this._widevineLicenseUrl = hls.config.widevineLicenseUrl;\n    _this._licenseXhrSetup = hls.config.licenseXhrSetup;\n    _this._emeEnabled = hls.config.emeEnabled;\n\n    _this._requestMediaKeySystemAccess = hls.config.requestMediaKeySystemAccessFunc;\n\n    _this._mediaKeysList = [];\n    _this._media = null;\n\n    _this._hasSetMediaKeys = false;\n    _this._isMediaEncrypted = false;\n\n    _this._requestLicenseFailureCount = 0;\n    return _this;\n  }\n\n  /**\n     *\n     * @param {string} keySystem Identifier for the key-system, see `KeySystems` enum\n     * @returns {string} License server URL for key-system (if any configured, otherwise causes error)\n     */\n\n\n  EMEController.prototype.getLicenseServerUrl = function getLicenseServerUrl(keySystem) {\n    var url = void 0;\n    switch (keySystem) {\n      case KeySystems.WIDEVINE:\n        url = this._widevineLicenseUrl;\n        break;\n      default:\n        url = null;\n        break;\n    }\n\n    if (!url) {\n      logger[\"b\" /* logger */].error('No license server URL configured for key-system \"' + keySystem + '\"');\n      this.hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].KEY_SYSTEM_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n        fatal: true\n      });\n    }\n\n    return url;\n  };\n\n  /**\n     * Requests access object and adds it to our list upon success\n     * @private\n     * @param {string} keySystem System ID (see `KeySystems`)\n     * @param {Array<string>} audioCodecs List of required audio codecs to support\n     * @param {Array<string>} videoCodecs List of required video codecs to support\n     */\n\n\n  EMEController.prototype._attemptKeySystemAccess = function _attemptKeySystemAccess(keySystem, audioCodecs, videoCodecs) {\n    var _this2 = this;\n\n    // TODO: add other DRM \"options\"\n\n    var mediaKeySystemConfigs = getSupportedMediaKeySystemConfigurations(keySystem, audioCodecs, videoCodecs);\n\n    if (!mediaKeySystemConfigs) {\n      logger[\"b\" /* logger */].warn('Can not create config for key-system (maybe because platform is not supported):', keySystem);\n      return;\n    }\n\n    logger[\"b\" /* logger */].log('Requesting encrypted media key-system access');\n\n    // expecting interface like window.navigator.requestMediaKeySystemAccess\n    this.requestMediaKeySystemAccess(keySystem, mediaKeySystemConfigs).then(function (mediaKeySystemAccess) {\n      _this2._onMediaKeySystemAccessObtained(keySystem, mediaKeySystemAccess);\n    }).catch(function (err) {\n      logger[\"b\" /* logger */].error('Failed to obtain key-system \"' + keySystem + '\" access:', err);\n    });\n  };\n\n  /**\n     * Handles obtaining access to a key-system\n     *\n     * @param {string} keySystem\n     * @param {MediaKeySystemAccess} mediaKeySystemAccess https://developer.mozilla.org/en-US/docs/Web/API/MediaKeySystemAccess\n     */\n  EMEController.prototype._onMediaKeySystemAccessObtained = function _onMediaKeySystemAccessObtained(keySystem, mediaKeySystemAccess) {\n    var _this3 = this;\n\n    logger[\"b\" /* logger */].log('Access for key-system \"' + keySystem + '\" obtained');\n\n    var mediaKeysListItem = {\n      mediaKeys: null,\n      mediaKeysSession: null,\n      mediaKeysSessionInitialized: false,\n      mediaKeySystemAccess: mediaKeySystemAccess,\n      mediaKeySystemDomain: keySystem\n    };\n\n    this._mediaKeysList.push(mediaKeysListItem);\n\n    mediaKeySystemAccess.createMediaKeys().then(function (mediaKeys) {\n      mediaKeysListItem.mediaKeys = mediaKeys;\n\n      logger[\"b\" /* logger */].log('Media-keys created for key-system \"' + keySystem + '\"');\n\n      _this3._onMediaKeysCreated();\n    }).catch(function (err) {\n      logger[\"b\" /* logger */].error('Failed to create media-keys:', err);\n    });\n  };\n\n  /**\n     * Handles key-creation (represents access to CDM). We are going to create key-sessions upon this\n     * for all existing keys where no session exists yet.\n     */\n\n\n  EMEController.prototype._onMediaKeysCreated = function _onMediaKeysCreated() {\n    var _this4 = this;\n\n    // check for all key-list items if a session exists, otherwise, create one\n    this._mediaKeysList.forEach(function (mediaKeysListItem) {\n      if (!mediaKeysListItem.mediaKeysSession) {\n        mediaKeysListItem.mediaKeysSession = mediaKeysListItem.mediaKeys.createSession();\n        _this4._onNewMediaKeySession(mediaKeysListItem.mediaKeysSession);\n      }\n    });\n  };\n\n  /**\n     *\n     * @param {*} keySession\n     */\n\n\n  EMEController.prototype._onNewMediaKeySession = function _onNewMediaKeySession(keySession) {\n    var _this5 = this;\n\n    logger[\"b\" /* logger */].log('New key-system session ' + keySession.sessionId);\n\n    keySession.addEventListener('message', function (event) {\n      _this5._onKeySessionMessage(keySession, event.message);\n    }, false);\n  };\n\n  EMEController.prototype._onKeySessionMessage = function _onKeySessionMessage(keySession, message) {\n    logger[\"b\" /* logger */].log('Got EME message event, creating license request');\n\n    this._requestLicense(message, function (data) {\n      logger[\"b\" /* logger */].log('Received license data, updating key-session');\n      keySession.update(data);\n    });\n  };\n\n  EMEController.prototype._onMediaEncrypted = function _onMediaEncrypted(initDataType, initData) {\n    logger[\"b\" /* logger */].log('Media is encrypted using \"' + initDataType + '\" init data type');\n\n    this._isMediaEncrypted = true;\n    this._mediaEncryptionInitDataType = initDataType;\n    this._mediaEncryptionInitData = initData;\n\n    this._attemptSetMediaKeys();\n    this._generateRequestWithPreferredKeySession();\n  };\n\n  EMEController.prototype._attemptSetMediaKeys = function _attemptSetMediaKeys() {\n    if (!this._hasSetMediaKeys) {\n      // FIXME: see if we can/want/need-to really to deal with several potential key-sessions?\n      var keysListItem = this._mediaKeysList[0];\n      if (!keysListItem || !keysListItem.mediaKeys) {\n        logger[\"b\" /* logger */].error('Fatal: Media is encrypted but no CDM access or no keys have been obtained yet');\n        this.hls.trigger(events[\"a\" /* default */].ERROR, {\n          type: errors[\"b\" /* ErrorTypes */].KEY_SYSTEM_ERROR,\n          details: errors[\"a\" /* ErrorDetails */].KEY_SYSTEM_NO_KEYS,\n          fatal: true\n        });\n        return;\n      }\n\n      logger[\"b\" /* logger */].log('Setting keys for encrypted media');\n\n      this._media.setMediaKeys(keysListItem.mediaKeys);\n      this._hasSetMediaKeys = true;\n    }\n  };\n\n  EMEController.prototype._generateRequestWithPreferredKeySession = function _generateRequestWithPreferredKeySession() {\n    var _this6 = this;\n\n    // FIXME: see if we can/want/need-to really to deal with several potential key-sessions?\n    var keysListItem = this._mediaKeysList[0];\n    if (!keysListItem) {\n      logger[\"b\" /* logger */].error('Fatal: Media is encrypted but not any key-system access has been obtained yet');\n      this.hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].KEY_SYSTEM_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].KEY_SYSTEM_NO_ACCESS,\n        fatal: true\n      });\n      return;\n    }\n\n    if (keysListItem.mediaKeysSessionInitialized) {\n      logger[\"b\" /* logger */].warn('Key-Session already initialized but requested again');\n      return;\n    }\n\n    var keySession = keysListItem.mediaKeysSession;\n    if (!keySession) {\n      logger[\"b\" /* logger */].error('Fatal: Media is encrypted but no key-session existing');\n      this.hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].KEY_SYSTEM_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].KEY_SYSTEM_NO_SESSION,\n        fatal: true\n      });\n    }\n\n    var initDataType = this._mediaEncryptionInitDataType;\n    var initData = this._mediaEncryptionInitData;\n\n    logger[\"b\" /* logger */].log('Generating key-session request for \"' + initDataType + '\" init data type');\n\n    keysListItem.mediaKeysSessionInitialized = true;\n\n    keySession.generateRequest(initDataType, initData).then(function () {\n      logger[\"b\" /* logger */].debug('Key-session generation succeeded');\n    }).catch(function (err) {\n      logger[\"b\" /* logger */].error('Error generating key-session request:', err);\n      _this6.hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].KEY_SYSTEM_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].KEY_SYSTEM_NO_SESSION,\n        fatal: false\n      });\n    });\n  };\n\n  /**\n     * @param {string} url License server URL\n     * @param {ArrayBuffer} keyMessage Message data issued by key-system\n     * @param {function} callback Called when XHR has succeeded\n     * @returns {XMLHttpRequest} Unsent (but opened state) XHR object\n     */\n\n\n  EMEController.prototype._createLicenseXhr = function _createLicenseXhr(url, keyMessage, callback) {\n    var xhr = new eme_controller_XMLHttpRequest();\n    var licenseXhrSetup = this._licenseXhrSetup;\n\n    try {\n      if (licenseXhrSetup) {\n        try {\n          licenseXhrSetup(xhr, url);\n        } catch (e) {\n          // let's try to open before running setup\n          xhr.open('POST', url, true);\n          licenseXhrSetup(xhr, url);\n        }\n      }\n      // if licenseXhrSetup did not yet call open, let's do it now\n      if (!xhr.readyState) {\n        xhr.open('POST', url, true);\n      }\n    } catch (e) {\n      // IE11 throws an exception on xhr.open if attempting to access an HTTP resource over HTTPS\n      logger[\"b\" /* logger */].error('Error setting up key-system license XHR', e);\n      this.hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].KEY_SYSTEM_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n        fatal: true\n      });\n      return;\n    }\n\n    xhr.responseType = 'arraybuffer';\n    xhr.onreadystatechange = this._onLicenseRequestReadyStageChange.bind(this, xhr, url, keyMessage, callback);\n    return xhr;\n  };\n\n  /**\n     * @param {XMLHttpRequest} xhr\n     * @param {string} url License server URL\n     * @param {ArrayBuffer} keyMessage Message data issued by key-system\n     * @param {function} callback Called when XHR has succeeded\n     *\n     */\n\n\n  EMEController.prototype._onLicenseRequestReadyStageChange = function _onLicenseRequestReadyStageChange(xhr, url, keyMessage, callback) {\n    switch (xhr.readyState) {\n      case 4:\n        if (xhr.status === 200) {\n          this._requestLicenseFailureCount = 0;\n          logger[\"b\" /* logger */].log('License request succeeded');\n          callback(xhr.response);\n        } else {\n          logger[\"b\" /* logger */].error('License Request XHR failed (' + url + '). Status: ' + xhr.status + ' (' + xhr.statusText + ')');\n\n          this._requestLicenseFailureCount++;\n          if (this._requestLicenseFailureCount <= MAX_LICENSE_REQUEST_FAILURES) {\n            var attemptsLeft = MAX_LICENSE_REQUEST_FAILURES - this._requestLicenseFailureCount + 1;\n            logger[\"b\" /* logger */].warn('Retrying license request, ' + attemptsLeft + ' attempts left');\n            this._requestLicense(keyMessage, callback);\n            return;\n          }\n\n          this.hls.trigger(events[\"a\" /* default */].ERROR, {\n            type: errors[\"b\" /* ErrorTypes */].KEY_SYSTEM_ERROR,\n            details: errors[\"a\" /* ErrorDetails */].KEY_SYSTEM_LICENSE_REQUEST_FAILED,\n            fatal: true\n          });\n        }\n        break;\n    }\n  };\n\n  /**\n     * @param {object} keysListItem\n     * @param {ArrayBuffer} keyMessage\n     * @returns {ArrayBuffer} Challenge data posted to license server\n     */\n\n\n  EMEController.prototype._generateLicenseRequestChallenge = function _generateLicenseRequestChallenge(keysListItem, keyMessage) {\n    var challenge = void 0;\n\n    if (keysListItem.mediaKeySystemDomain === KeySystems.PLAYREADY) {\n      logger[\"b\" /* logger */].error('PlayReady is not supported (yet)');\n\n      // from https://github.com/MicrosoftEdge/Demos/blob/master/eme/scripts/demo.js\n      /*\n        if (this.licenseType !== this.LICENSE_TYPE_WIDEVINE) {\n            // For PlayReady CDMs, we need to dig the Challenge out of the XML.\n            var keyMessageXml = new DOMParser().parseFromString(String.fromCharCode.apply(null, new Uint16Array(keyMessage)), 'application/xml');\n            if (keyMessageXml.getElementsByTagName('Challenge')[0]) {\n                challenge = atob(keyMessageXml.getElementsByTagName('Challenge')[0].childNodes[0].nodeValue);\n            } else {\n                throw 'Cannot find <Challenge> in key message';\n            }\n            var headerNames = keyMessageXml.getElementsByTagName('name');\n            var headerValues = keyMessageXml.getElementsByTagName('value');\n            if (headerNames.length !== headerValues.length) {\n                throw 'Mismatched header <name>/<value> pair in key message';\n            }\n            for (var i = 0; i < headerNames.length; i++) {\n                xhr.setRequestHeader(headerNames[i].childNodes[0].nodeValue, headerValues[i].childNodes[0].nodeValue);\n            }\n        }\n        */\n    } else if (keysListItem.mediaKeySystemDomain === KeySystems.WIDEVINE) {\n      // For Widevine CDMs, the challenge is the keyMessage.\n      challenge = keyMessage;\n    } else {\n      logger[\"b\" /* logger */].error('Unsupported key-system:', keysListItem.mediaKeySystemDomain);\n    }\n\n    return challenge;\n  };\n\n  EMEController.prototype._requestLicense = function _requestLicense(keyMessage, callback) {\n    logger[\"b\" /* logger */].log('Requesting content license for key-system');\n\n    var keysListItem = this._mediaKeysList[0];\n    if (!keysListItem) {\n      logger[\"b\" /* logger */].error('Fatal error: Media is encrypted but no key-system access has been obtained yet');\n      this.hls.trigger(events[\"a\" /* default */].ERROR, {\n        type: errors[\"b\" /* ErrorTypes */].KEY_SYSTEM_ERROR,\n        details: errors[\"a\" /* ErrorDetails */].KEY_SYSTEM_NO_ACCESS,\n        fatal: true\n      });\n      return;\n    }\n\n    var url = this.getLicenseServerUrl(keysListItem.mediaKeySystemDomain);\n    var xhr = this._createLicenseXhr(url, keyMessage, callback);\n\n    logger[\"b\" /* logger */].log('Sending license request to URL: ' + url);\n\n    xhr.send(this._generateLicenseRequestChallenge(keysListItem, keyMessage));\n  };\n\n  EMEController.prototype.onMediaAttached = function onMediaAttached(data) {\n    var _this7 = this;\n\n    if (!this._emeEnabled) {\n      return;\n    }\n\n    var media = data.media;\n\n    // keep reference of media\n    this._media = media;\n\n    // FIXME: also handle detaching media !\n\n    media.addEventListener('encrypted', function (e) {\n      _this7._onMediaEncrypted(e.initDataType, e.initData);\n    });\n  };\n\n  EMEController.prototype.onManifestParsed = function onManifestParsed(data) {\n    if (!this._emeEnabled) {\n      return;\n    }\n\n    var audioCodecs = data.levels.map(function (level) {\n      return level.audioCodec;\n    });\n    var videoCodecs = data.levels.map(function (level) {\n      return level.videoCodec;\n    });\n\n    this._attemptKeySystemAccess(KeySystems.WIDEVINE, audioCodecs, videoCodecs);\n  };\n\n  eme_controller__createClass(EMEController, [{\n    key: 'requestMediaKeySystemAccess',\n    get: function get() {\n      if (!this._requestMediaKeySystemAccess) {\n        throw new Error('No requestMediaKeySystemAccess function configured');\n      }\n\n      return this._requestMediaKeySystemAccess;\n    }\n  }]);\n\n  return EMEController;\n}(event_handler);\n\n/* harmony default export */ var eme_controller = (eme_controller_EMEController);\n// CONCATENATED MODULE: ./src/utils/mediakeys-helper.js\nvar requestMediaKeySystemAccess = function () {\n  if (typeof window !== 'undefined' && window.navigator && window.navigator.requestMediaKeySystemAccess) {\n    return window.navigator.requestMediaKeySystemAccess.bind(window.navigator);\n  } else {\n    return null;\n  }\n}();\n\n\n// CONCATENATED MODULE: ./src/config.js\n/**\n * HLS config\n */\n\n\n\n\n\n\n// import FetchLoader from './utils/fetch-loader';\n\n\n\n\n\n\n\n\n\n\n\n\nvar hlsDefaultConfig = {\n  autoStartLoad: true, // used by stream-controller\n  startPosition: -1, // used by stream-controller\n  defaultAudioCodec: undefined, // used by stream-controller\n  debug: false, // used by logger\n  capLevelOnFPSDrop: false, // used by fps-controller\n  capLevelToPlayerSize: false, // used by cap-level-controller\n  initialLiveManifestSize: 1, // used by stream-controller\n  maxBufferLength: 30, // used by stream-controller\n  maxBufferSize: 60 * 1000 * 1000, // used by stream-controller\n  maxBufferHole: 0.5, // used by stream-controller\n\n  lowBufferWatchdogPeriod: 0.5, // used by stream-controller\n  highBufferWatchdogPeriod: 3, // used by stream-controller\n  nudgeOffset: 0.1, // used by stream-controller\n  nudgeMaxRetry: 3, // used by stream-controller\n  maxFragLookUpTolerance: 0.25, // used by stream-controller\n  liveSyncDurationCount: 3, // used by stream-controller\n  liveMaxLatencyDurationCount: Infinity, // used by stream-controller\n  liveSyncDuration: undefined, // used by stream-controller\n  liveMaxLatencyDuration: undefined, // used by stream-controller\n  liveDurationInfinity: false, // used by buffer-controller\n  maxMaxBufferLength: 600, // used by stream-controller\n  enableWorker: true, // used by demuxer\n  enableSoftwareAES: true, // used by decrypter\n  manifestLoadingTimeOut: 10000, // used by playlist-loader\n  manifestLoadingMaxRetry: 1, // used by playlist-loader\n  manifestLoadingRetryDelay: 1000, // used by playlist-loader\n  manifestLoadingMaxRetryTimeout: 64000, // used by playlist-loader\n  startLevel: undefined, // used by level-controller\n  levelLoadingTimeOut: 10000, // used by playlist-loader\n  levelLoadingMaxRetry: 4, // used by playlist-loader\n  levelLoadingRetryDelay: 1000, // used by playlist-loader\n  levelLoadingMaxRetryTimeout: 64000, // used by playlist-loader\n  fragLoadingTimeOut: 20000, // used by fragment-loader\n  fragLoadingMaxRetry: 6, // used by fragment-loader\n  fragLoadingRetryDelay: 1000, // used by fragment-loader\n  fragLoadingMaxRetryTimeout: 64000, // used by fragment-loader\n  startFragPrefetch: false, // used by stream-controller\n  fpsDroppedMonitoringPeriod: 5000, // used by fps-controller\n  fpsDroppedMonitoringThreshold: 0.2, // used by fps-controller\n  appendErrorMaxRetry: 3, // used by buffer-controller\n  loader: xhr_loader,\n  // loader: FetchLoader,\n  fLoader: undefined, // used by fragment-loader\n  pLoader: undefined, // used by playlist-loader\n  xhrSetup: undefined, // used by xhr-loader\n  licenseXhrSetup: undefined, // used by eme-controller\n  // fetchSetup: undefined,\n  abrController: abr_controller,\n  bufferController: buffer_controller,\n  capLevelController: cap_level_controller,\n  fpsController: fps_controller,\n  stretchShortVideoTrack: false, // used by mp4-remuxer\n  maxAudioFramesDrift: 1, // used by mp4-remuxer\n  forceKeyFrameOnDiscontinuity: true, // used by ts-demuxer\n  abrEwmaFastLive: 3, // used by abr-controller\n  abrEwmaSlowLive: 9, // used by abr-controller\n  abrEwmaFastVoD: 3, // used by abr-controller\n  abrEwmaSlowVoD: 9, // used by abr-controller\n  abrEwmaDefaultEstimate: 5e5, // 500 kbps  // used by abr-controller\n  abrBandWidthFactor: 0.95, // used by abr-controller\n  abrBandWidthUpFactor: 0.7, // used by abr-controller\n  abrMaxWithRealBitrate: false, // used by abr-controller\n  maxStarvationDelay: 4, // used by abr-controller\n  maxLoadingDelay: 4, // used by abr-controller\n  minAutoBitrate: 0, // used by hls\n  emeEnabled: false, // used by eme-controller\n  widevineLicenseUrl: undefined, // used by eme-controller\n  requestMediaKeySystemAccessFunc: requestMediaKeySystemAccess // used by eme-controller\n};\n\nif (true) {\n  hlsDefaultConfig.subtitleStreamController = subtitle_stream_controller;\n  hlsDefaultConfig.subtitleTrackController = subtitle_track_controller;\n  hlsDefaultConfig.timelineController = timeline_controller;\n  hlsDefaultConfig.cueHandler = cues_namespaceObject; // used by timeline-controller\n  hlsDefaultConfig.enableCEA708Captions = true; // used by timeline-controller\n  hlsDefaultConfig.enableWebVTT = true; // used by timeline-controller\n  hlsDefaultConfig.captionsTextTrack1Label = 'English'; // used by timeline-controller\n  hlsDefaultConfig.captionsTextTrack1LanguageCode = 'en'; // used by timeline-controller\n  hlsDefaultConfig.captionsTextTrack2Label = 'Spanish'; // used by timeline-controller\n  hlsDefaultConfig.captionsTextTrack2LanguageCode = 'es'; // used by timeline-controller\n}\n\nif (true) {\n  hlsDefaultConfig.audioStreamController = audio_stream_controller;\n  hlsDefaultConfig.audioTrackController = audio_track_controller;\n}\n\nif (true) {\n  hlsDefaultConfig.emeController = eme_controller;\n}\n// CONCATENATED MODULE: ./src/hls.js\nvar hls__createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction hls__classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// polyfill for IE11\n__webpack_require__(14);\n\n/**\n * @module Hls\n * @class\n * @constructor\n */\n\nvar hls_Hls = function () {\n\n  /**\n   * @type {boolean}\n   */\n  Hls.isSupported = function isSupported() {\n    return is_supported_isSupported();\n  };\n\n  /**\n   * @type {HlsEvents}\n   */\n\n\n  hls__createClass(Hls, null, [{\n    key: 'version',\n\n    /**\n     * @type {string}\n     */\n    get: function get() {\n      return \"0.11.0\";\n    }\n  }, {\n    key: 'Events',\n    get: function get() {\n      return events[\"a\" /* default */];\n    }\n\n    /**\n     * @type {HlsErrorTypes}\n     */\n\n  }, {\n    key: 'ErrorTypes',\n    get: function get() {\n      return errors[\"b\" /* ErrorTypes */];\n    }\n\n    /**\n     * @type {HlsErrorDetails}\n     */\n\n  }, {\n    key: 'ErrorDetails',\n    get: function get() {\n      return errors[\"a\" /* ErrorDetails */];\n    }\n\n    /**\n     * @type {HlsConfig}\n     */\n\n  }, {\n    key: 'DefaultConfig',\n    get: function get() {\n      if (!Hls.defaultConfig) {\n        return hlsDefaultConfig;\n      }\n\n      return Hls.defaultConfig;\n    }\n\n    /**\n     * @type {HlsConfig}\n     */\n    ,\n    set: function set(defaultConfig) {\n      Hls.defaultConfig = defaultConfig;\n    }\n\n    /**\n     * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.\n     *\n     * @constructs Hls\n     * @param {HlsConfig} config\n     */\n\n  }]);\n\n  function Hls() {\n    var _this = this;\n\n    var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    hls__classCallCheck(this, Hls);\n\n    var defaultConfig = Hls.DefaultConfig;\n\n    if ((config.liveSyncDurationCount || config.liveMaxLatencyDurationCount) && (config.liveSyncDuration || config.liveMaxLatencyDuration)) {\n      throw new Error('Illegal hls.js config: don\\'t mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration');\n    }\n\n    for (var prop in defaultConfig) {\n      if (prop in config) continue;\n      config[prop] = defaultConfig[prop];\n    }\n\n    if (config.liveMaxLatencyDurationCount !== undefined && config.liveMaxLatencyDurationCount <= config.liveSyncDurationCount) {\n      throw new Error('Illegal hls.js config: \"liveMaxLatencyDurationCount\" must be gt \"liveSyncDurationCount\"');\n    }\n\n    if (config.liveMaxLatencyDuration !== undefined && (config.liveMaxLatencyDuration <= config.liveSyncDuration || config.liveSyncDuration === undefined)) {\n      throw new Error('Illegal hls.js config: \"liveMaxLatencyDuration\" must be gt \"liveSyncDuration\"');\n    }\n\n    Object(logger[\"a\" /* enableLogs */])(config.debug);\n    this.config = config;\n    this._autoLevelCapping = -1;\n    // observer setup\n    var observer = this.observer = new events_default.a();\n    observer.trigger = function trigger(event) {\n      for (var _len = arguments.length, data = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        data[_key - 1] = arguments[_key];\n      }\n\n      observer.emit.apply(observer, [event, event].concat(data));\n    };\n\n    observer.off = function off(event) {\n      for (var _len2 = arguments.length, data = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        data[_key2 - 1] = arguments[_key2];\n      }\n\n      observer.removeListener.apply(observer, [event].concat(data));\n    };\n    this.on = observer.on.bind(observer);\n    this.off = observer.off.bind(observer);\n    this.once = observer.once.bind(observer);\n    this.trigger = observer.trigger.bind(observer);\n\n    // core controllers and network loaders\n\n    /**\n     * @member {AbrController} abrController\n     */\n    var abrController = this.abrController = new config.abrController(this);\n\n    var bufferController = new config.bufferController(this);\n    var capLevelController = new config.capLevelController(this);\n    var fpsController = new config.fpsController(this);\n    var playListLoader = new playlist_loader(this);\n    var fragmentLoader = new fragment_loader(this);\n    var keyLoader = new key_loader(this);\n    var id3TrackController = new id3_track_controller(this);\n\n    // network controllers\n\n    /**\n     * @member {LevelController} levelController\n     */\n    var levelController = this.levelController = new level_controller(this);\n\n    // FIXME: FragmentTracker must be defined before StreamController because the order of event handling is important\n    var fragmentTracker = new fragment_tracker_FragmentTracker(this);\n\n    /**\n     * @member {StreamController} streamController\n     */\n    var streamController = this.streamController = new stream_controller(this, fragmentTracker);\n\n    var networkControllers = [levelController, streamController];\n\n    // optional audio stream controller\n    /**\n     * @var {ICoreComponent | Controller}\n     */\n    var Controller = config.audioStreamController;\n    if (Controller) {\n      networkControllers.push(new Controller(this, fragmentTracker));\n    }\n\n    /**\n     * @member {INetworkController[]} networkControllers\n     */\n    this.networkControllers = networkControllers;\n\n    /**\n     * @var {ICoreComponent[]}\n     */\n    var coreComponents = [playListLoader, fragmentLoader, keyLoader, abrController, bufferController, capLevelController, fpsController, id3TrackController, fragmentTracker];\n\n    // optional audio track and subtitle controller\n    Controller = config.audioTrackController;\n    if (Controller) {\n      var audioTrackController = new Controller(this);\n\n      /**\n       * @member {AudioTrackController} audioTrackController\n       */\n      this.audioTrackController = audioTrackController;\n      coreComponents.push(audioTrackController);\n    }\n\n    Controller = config.subtitleTrackController;\n    if (Controller) {\n      var subtitleTrackController = new Controller(this);\n\n      /**\n       * @member {SubtitleTrackController} subtitleTrackController\n       */\n      this.subtitleTrackController = subtitleTrackController;\n      coreComponents.push(subtitleTrackController);\n    }\n\n    Controller = config.emeController;\n    if (Controller) {\n      var emeController = new Controller(this);\n\n      /**\n       * @member {EMEController} emeController\n       */\n      this.emeController = emeController;\n      coreComponents.push(emeController);\n    }\n\n    // optional subtitle controller\n    [config.subtitleStreamController, config.timelineController].forEach(function (Controller) {\n      if (Controller) {\n        coreComponents.push(new Controller(_this));\n      }\n    });\n\n    /**\n     * @member {ICoreComponent[]}\n     */\n    this.coreComponents = coreComponents;\n  }\n\n  /**\n   * Dispose of the instance\n   */\n\n\n  Hls.prototype.destroy = function destroy() {\n    logger[\"b\" /* logger */].log('destroy');\n    this.trigger(events[\"a\" /* default */].DESTROYING);\n    this.detachMedia();\n    this.coreComponents.concat(this.networkControllers).forEach(function (component) {\n      component.destroy();\n    });\n    this.url = null;\n    this.observer.removeAllListeners();\n    this._autoLevelCapping = -1;\n  };\n\n  /**\n   * Attach a media element\n   * @param {HTMLMediaElement} media\n   */\n\n\n  Hls.prototype.attachMedia = function attachMedia(media) {\n    logger[\"b\" /* logger */].log('attachMedia');\n    this.media = media;\n    this.trigger(events[\"a\" /* default */].MEDIA_ATTACHING, { media: media });\n  };\n\n  /**\n   * Detach from the media\n   */\n\n\n  Hls.prototype.detachMedia = function detachMedia() {\n    logger[\"b\" /* logger */].log('detachMedia');\n    this.trigger(events[\"a\" /* default */].MEDIA_DETACHING);\n    this.media = null;\n  };\n\n  /**\n   * Set the source URL. Can be relative or absolute.\n   * @param {string} url\n   */\n\n\n  Hls.prototype.loadSource = function loadSource(url) {\n    url = url_toolkit_default.a.buildAbsoluteURL(window.location.href, url, { alwaysNormalize: true });\n    logger[\"b\" /* logger */].log('loadSource:' + url);\n    this.url = url;\n    // when attaching to a source URL, trigger a playlist load\n    this.trigger(events[\"a\" /* default */].MANIFEST_LOADING, { url: url });\n  };\n\n  /**\n   * Start loading data from the stream source.\n   * Depending on default config, client starts loading automatically when a source is set.\n   *\n   * @param {number} startPosition Set the start position to stream from\n   * @default -1 None (from earliest point)\n   */\n\n\n  Hls.prototype.startLoad = function startLoad() {\n    var startPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n\n    logger[\"b\" /* logger */].log('startLoad(' + startPosition + ')');\n    this.networkControllers.forEach(function (controller) {\n      controller.startLoad(startPosition);\n    });\n  };\n\n  /**\n   * Stop loading of any stream data.\n   */\n\n\n  Hls.prototype.stopLoad = function stopLoad() {\n    logger[\"b\" /* logger */].log('stopLoad');\n    this.networkControllers.forEach(function (controller) {\n      controller.stopLoad();\n    });\n  };\n\n  /**\n   * Swap through possible audio codecs in the stream (for example to switch from stereo to 5.1)\n   */\n\n\n  Hls.prototype.swapAudioCodec = function swapAudioCodec() {\n    logger[\"b\" /* logger */].log('swapAudioCodec');\n    this.streamController.swapAudioCodec();\n  };\n\n  /**\n   * When the media-element fails, this allows to detach and then re-attach it\n   * as one call (convenience method).\n   *\n   * Automatic recovery of media-errors by this process is configurable.\n   */\n\n\n  Hls.prototype.recoverMediaError = function recoverMediaError() {\n    logger[\"b\" /* logger */].log('recoverMediaError');\n    var media = this.media;\n    this.detachMedia();\n    this.attachMedia(media);\n  };\n\n  /**\n   * @type {QualityLevel[]}\n   */\n\n\n  hls__createClass(Hls, [{\n    key: 'levels',\n    get: function get() {\n      return this.levelController.levels;\n    }\n\n    /**\n     * Index of quality level currently played\n     * @type {number}\n     */\n\n  }, {\n    key: 'currentLevel',\n    get: function get() {\n      return this.streamController.currentLevel;\n    }\n\n    /**\n     * Set quality level index immediately .\n     * This will flush the current buffer to replace the quality asap.\n     * That means playback will interrupt at least shortly to re-buffer and re-sync eventually.\n     * @type {number} -1 for automatic level selection\n     */\n    ,\n    set: function set(newLevel) {\n      logger[\"b\" /* logger */].log('set currentLevel:' + newLevel);\n      this.loadLevel = newLevel;\n      this.streamController.immediateLevelSwitch();\n    }\n\n    /**\n     * Index of next quality level loaded as scheduled by stream controller.\n     * @type {number}\n     */\n\n  }, {\n    key: 'nextLevel',\n    get: function get() {\n      return this.streamController.nextLevel;\n    }\n\n    /**\n     * Set quality level index for next loaded data.\n     * This will switch the video quality asap, without interrupting playback.\n     * May abort current loading of data, and flush parts of buffer (outside currently played fragment region).\n     * @type {number} -1 for automatic level selection\n     */\n    ,\n    set: function set(newLevel) {\n      logger[\"b\" /* logger */].log('set nextLevel:' + newLevel);\n      this.levelController.manualLevel = newLevel;\n      this.streamController.nextLevelSwitch();\n    }\n\n    /**\n     * Return the quality level of the currently or last (of none is loaded currently) segment\n     * @type {number}\n     */\n\n  }, {\n    key: 'loadLevel',\n    get: function get() {\n      return this.levelController.level;\n    }\n\n    /**\n     * Set quality level index for next loaded data in a conservative way.\n     * This will switch the quality without flushing, but interrupt current loading.\n     * Thus the moment when the quality switch will appear in effect will only be after the already existing buffer.\n     * @type {number} newLevel -1 for automatic level selection\n     */\n    ,\n    set: function set(newLevel) {\n      logger[\"b\" /* logger */].log('set loadLevel:' + newLevel);\n      this.levelController.manualLevel = newLevel;\n    }\n\n    /**\n     * get next quality level loaded\n     * @type {number}\n     */\n\n  }, {\n    key: 'nextLoadLevel',\n    get: function get() {\n      return this.levelController.nextLoadLevel;\n    }\n\n    /**\n     * Set quality level of next loaded segment in a fully \"non-destructive\" way.\n     * Same as `loadLevel` but will wait for next switch (until current loading is done).\n     * @type {number} level\n     */\n    ,\n    set: function set(level) {\n      this.levelController.nextLoadLevel = level;\n    }\n\n    /**\n     * Return \"first level\": like a default level, if not set,\n     * falls back to index of first level referenced in manifest\n     * @type {number}\n     */\n\n  }, {\n    key: 'firstLevel',\n    get: function get() {\n      return Math.max(this.levelController.firstLevel, this.minAutoLevel);\n    }\n\n    /**\n     * Sets \"first-level\", see getter.\n     * @type {number}\n     */\n    ,\n    set: function set(newLevel) {\n      logger[\"b\" /* logger */].log('set firstLevel:' + newLevel);\n      this.levelController.firstLevel = newLevel;\n    }\n\n    /**\n     * Return start level (level of first fragment that will be played back)\n     * if not overrided by user, first level appearing in manifest will be used as start level\n     * if -1 : automatic start level selection, playback will start from level matching download bandwidth\n     * (determined from download of first segment)\n     * @type {number}\n     */\n\n  }, {\n    key: 'startLevel',\n    get: function get() {\n      return this.levelController.startLevel;\n    }\n\n    /**\n     * set  start level (level of first fragment that will be played back)\n     * if not overrided by user, first level appearing in manifest will be used as start level\n     * if -1 : automatic start level selection, playback will start from level matching download bandwidth\n     * (determined from download of first segment)\n     * @type {number} newLevel\n     */\n    ,\n    set: function set(newLevel) {\n      logger[\"b\" /* logger */].log('set startLevel:' + newLevel);\n      var hls = this;\n      // if not in automatic start level detection, ensure startLevel is greater than minAutoLevel\n      if (newLevel !== -1) {\n        newLevel = Math.max(newLevel, hls.minAutoLevel);\n      }\n\n      hls.levelController.startLevel = newLevel;\n    }\n\n    /**\n     * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n     * @type {number}\n     */\n\n  }, {\n    key: 'autoLevelCapping',\n    get: function get() {\n      return this._autoLevelCapping;\n    }\n\n    /**\n     * Capping/max level value that should be used by automatic level selection algorithm (`ABRController`)\n     * @type {number}\n     */\n    ,\n    set: function set(newLevel) {\n      logger[\"b\" /* logger */].log('set autoLevelCapping:' + newLevel);\n      this._autoLevelCapping = newLevel;\n    }\n\n    /**\n     * True when automatic level selection enabled\n     * @type {boolean}\n     */\n\n  }, {\n    key: 'autoLevelEnabled',\n    get: function get() {\n      return this.levelController.manualLevel === -1;\n    }\n\n    /**\n     * Level set manually (if any)\n     * @type {number}\n     */\n\n  }, {\n    key: 'manualLevel',\n    get: function get() {\n      return this.levelController.manualLevel;\n    }\n\n    /**\n     * min level selectable in auto mode according to config.minAutoBitrate\n     * @type {number}\n     */\n\n  }, {\n    key: 'minAutoLevel',\n    get: function get() {\n      var hls = this,\n          levels = hls.levels,\n          minAutoBitrate = hls.config.minAutoBitrate,\n          len = levels ? levels.length : 0;\n      for (var i = 0; i < len; i++) {\n        var levelNextBitrate = levels[i].realBitrate ? Math.max(levels[i].realBitrate, levels[i].bitrate) : levels[i].bitrate;\n        if (levelNextBitrate > minAutoBitrate) {\n          return i;\n        }\n      }\n      return 0;\n    }\n\n    /**\n     * max level selectable in auto mode according to autoLevelCapping\n     * @type {number}\n     */\n\n  }, {\n    key: 'maxAutoLevel',\n    get: function get() {\n      var hls = this;\n      var levels = hls.levels;\n      var autoLevelCapping = hls.autoLevelCapping;\n      var maxAutoLevel = void 0;\n      if (autoLevelCapping === -1 && levels && levels.length) {\n        maxAutoLevel = levels.length - 1;\n      } else {\n        maxAutoLevel = autoLevelCapping;\n      }\n\n      return maxAutoLevel;\n    }\n\n    /**\n     * next automatically selected quality level\n     * @type {number}\n     */\n\n  }, {\n    key: 'nextAutoLevel',\n    get: function get() {\n      var hls = this;\n      // ensure next auto level is between  min and max auto level\n      return Math.min(Math.max(hls.abrController.nextAutoLevel, hls.minAutoLevel), hls.maxAutoLevel);\n    }\n\n    /**\n     * this setter is used to force next auto level.\n     * this is useful to force a switch down in auto mode:\n     * in case of load error on level N, hls.js can set nextAutoLevel to N-1 for example)\n     * forced value is valid for one fragment. upon succesful frag loading at forced level,\n     * this value will be resetted to -1 by ABR controller.\n     * @type {number}\n     */\n    ,\n    set: function set(nextLevel) {\n      var hls = this;\n      hls.abrController.nextAutoLevel = Math.max(hls.minAutoLevel, nextLevel);\n    }\n\n    /**\n     * @type {AudioTrack[]}\n     */\n\n  }, {\n    key: 'audioTracks',\n    get: function get() {\n      var audioTrackController = this.audioTrackController;\n      return audioTrackController ? audioTrackController.audioTracks : [];\n    }\n\n    /**\n     * index of the selected audio track (index in audio track lists)\n     * @type {number}\n     */\n\n  }, {\n    key: 'audioTrack',\n    get: function get() {\n      var audioTrackController = this.audioTrackController;\n      return audioTrackController ? audioTrackController.audioTrack : -1;\n    }\n\n    /**\n     * selects an audio track, based on its index in audio track lists\n     * @type {number}\n     */\n    ,\n    set: function set(audioTrackId) {\n      var audioTrackController = this.audioTrackController;\n      if (audioTrackController) {\n        audioTrackController.audioTrack = audioTrackId;\n      }\n    }\n\n    /**\n     * @type {Seconds}\n     */\n\n  }, {\n    key: 'liveSyncPosition',\n    get: function get() {\n      return this.streamController.liveSyncPosition;\n    }\n\n    /**\n     * get alternate subtitle tracks list from playlist\n     * @type {SubtitleTrack[]}\n     */\n\n  }, {\n    key: 'subtitleTracks',\n    get: function get() {\n      var subtitleTrackController = this.subtitleTrackController;\n      return subtitleTrackController ? subtitleTrackController.subtitleTracks : [];\n    }\n\n    /**\n     * index of the selected subtitle track (index in subtitle track lists)\n     * @type {number}\n     */\n\n  }, {\n    key: 'subtitleTrack',\n    get: function get() {\n      var subtitleTrackController = this.subtitleTrackController;\n      return subtitleTrackController ? subtitleTrackController.subtitleTrack : -1;\n    }\n\n    /**\n     * select an subtitle track, based on its index in subtitle track lists\n     * @type{number}\n     */\n    ,\n    set: function set(subtitleTrackId) {\n      var subtitleTrackController = this.subtitleTrackController;\n      if (subtitleTrackController) {\n        subtitleTrackController.subtitleTrack = subtitleTrackId;\n      }\n    }\n\n    /**\n     * @type {boolean}\n     */\n\n  }, {\n    key: 'subtitleDisplay',\n    get: function get() {\n      var subtitleTrackController = this.subtitleTrackController;\n      return subtitleTrackController ? subtitleTrackController.subtitleDisplay : false;\n    }\n\n    /**\n     * Enable/disable subtitle display rendering\n     * @type {boolean}\n     */\n    ,\n    set: function set(value) {\n      var subtitleTrackController = this.subtitleTrackController;\n      if (subtitleTrackController) {\n        subtitleTrackController.subtitleDisplay = value;\n      }\n    }\n  }]);\n\n  return Hls;\n}();\n\n/* harmony default export */ var src_hls = __webpack_exports__[\"default\"] = (hls_Hls);\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nfunction webpackBootstrapFunc (modules) {\n/******/  // The module cache\n/******/  var installedModules = {};\n\n/******/  // The require function\n/******/  function __webpack_require__(moduleId) {\n\n/******/    // Check if module is in cache\n/******/    if(installedModules[moduleId])\n/******/      return installedModules[moduleId].exports;\n\n/******/    // Create a new module (and put it into the cache)\n/******/    var module = installedModules[moduleId] = {\n/******/      i: moduleId,\n/******/      l: false,\n/******/      exports: {}\n/******/    };\n\n/******/    // Execute the module function\n/******/    modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/    // Flag the module as loaded\n/******/    module.l = true;\n\n/******/    // Return the exports of the module\n/******/    return module.exports;\n/******/  }\n\n/******/  // expose the modules object (__webpack_modules__)\n/******/  __webpack_require__.m = modules;\n\n/******/  // expose the module cache\n/******/  __webpack_require__.c = installedModules;\n\n/******/  // identity function for calling harmony imports with the correct context\n/******/  __webpack_require__.i = function(value) { return value; };\n\n/******/  // define getter function for harmony exports\n/******/  __webpack_require__.d = function(exports, name, getter) {\n/******/    if(!__webpack_require__.o(exports, name)) {\n/******/      Object.defineProperty(exports, name, {\n/******/        configurable: false,\n/******/        enumerable: true,\n/******/        get: getter\n/******/      });\n/******/    }\n/******/  };\n\n/******/  // getDefaultExport function for compatibility with non-harmony modules\n/******/  __webpack_require__.n = function(module) {\n/******/    var getter = module && module.__esModule ?\n/******/      function getDefault() { return module['default']; } :\n/******/      function getModuleExports() { return module; };\n/******/    __webpack_require__.d(getter, 'a', getter);\n/******/    return getter;\n/******/  };\n\n/******/  // Object.prototype.hasOwnProperty.call\n/******/  __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n/******/  // __webpack_public_path__\n/******/  __webpack_require__.p = \"/\";\n\n/******/  // on error function for async loading\n/******/  __webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n  var f = __webpack_require__(__webpack_require__.s = ENTRY_MODULE)\n  return f.default || f // try to call default if defined to also support babel esmodule exports\n}\n\nvar moduleNameReqExp = '[\\\\.|\\\\-|\\\\+|\\\\w|\\/|@]+'\nvar dependencyRegExp = '\\\\((\\/\\\\*.*?\\\\*\\/)?\\s?.*?(' + moduleNameReqExp + ').*?\\\\)' // additional chars when output.pathinfo is true\n\n// http://stackoverflow.com/a/2593661/130442\nfunction quoteRegExp (str) {\n  return (str + '').replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&')\n}\n\nfunction getModuleDependencies (sources, module, queueName) {\n  var retval = {}\n  retval[queueName] = []\n\n  var fnString = module.toString()\n  var wrapperSignature = fnString.match(/^function\\s?\\(\\w+,\\s*\\w+,\\s*(\\w+)\\)/)\n  if (!wrapperSignature) return retval\n  var webpackRequireName = wrapperSignature[1]\n\n  // main bundle deps\n  var re = new RegExp('(\\\\\\\\n|\\\\W)' + quoteRegExp(webpackRequireName) + dependencyRegExp, 'g')\n  var match\n  while ((match = re.exec(fnString))) {\n    if (match[3] === 'dll-reference') continue\n    retval[queueName].push(match[3])\n  }\n\n  // dll deps\n  re = new RegExp('\\\\(' + quoteRegExp(webpackRequireName) + '\\\\(\"(dll-reference\\\\s(' + moduleNameReqExp + '))\"\\\\)\\\\)' + dependencyRegExp, 'g')\n  while ((match = re.exec(fnString))) {\n    if (!sources[match[2]]) {\n      retval[queueName].push(match[1])\n      sources[match[2]] = __webpack_require__(match[1]).m\n    }\n    retval[match[2]] = retval[match[2]] || []\n    retval[match[2]].push(match[4])\n  }\n\n  return retval\n}\n\nfunction hasValuesInQueues (queues) {\n  var keys = Object.keys(queues)\n  return keys.reduce(function (hasValues, key) {\n    return hasValues || queues[key].length > 0\n  }, false)\n}\n\nfunction getRequiredModules (sources, moduleId) {\n  var modulesQueue = {\n    main: [moduleId]\n  }\n  var requiredModules = {\n    main: []\n  }\n  var seenModules = {\n    main: {}\n  }\n\n  while (hasValuesInQueues(modulesQueue)) {\n    var queues = Object.keys(modulesQueue)\n    for (var i = 0; i < queues.length; i++) {\n      var queueName = queues[i]\n      var queue = modulesQueue[queueName]\n      var moduleToCheck = queue.pop()\n      seenModules[queueName] = seenModules[queueName] || {}\n      if (seenModules[queueName][moduleToCheck] || !sources[queueName][moduleToCheck]) continue\n      seenModules[queueName][moduleToCheck] = true\n      requiredModules[queueName] = requiredModules[queueName] || []\n      requiredModules[queueName].push(moduleToCheck)\n      var newModules = getModuleDependencies(sources, sources[queueName][moduleToCheck], queueName)\n      var newModulesKeys = Object.keys(newModules)\n      for (var j = 0; j < newModulesKeys.length; j++) {\n        modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]] || []\n        modulesQueue[newModulesKeys[j]] = modulesQueue[newModulesKeys[j]].concat(newModules[newModulesKeys[j]])\n      }\n    }\n  }\n\n  return requiredModules\n}\n\nmodule.exports = function (moduleId, options) {\n  options = options || {}\n  var sources = {\n    main: __webpack_require__.m\n  }\n\n  var requiredModules = options.all ? { main: Object.keys(sources) } : getRequiredModules(sources, moduleId)\n\n  var src = ''\n\n  Object.keys(requiredModules).filter(function (m) { return m !== 'main' }).forEach(function (module) {\n    var entryModule = 0\n    while (requiredModules[module][entryModule]) {\n      entryModule++\n    }\n    requiredModules[module].push(entryModule)\n    sources[module][entryModule] = '(function(module, exports, __webpack_require__) { module.exports = __webpack_require__; })'\n    src = src + 'var ' + module + ' = (' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(entryModule)) + ')({' + requiredModules[module].map(function (id) { return '' + JSON.stringify(id) + ': ' + sources[module][id].toString() }).join(',') + '});\\n'\n  })\n\n  src = src + '(' + webpackBootstrapFunc.toString().replace('ENTRY_MODULE', JSON.stringify(moduleId)) + ')({' + requiredModules.main.map(function (id) { return '' + JSON.stringify(id) + ': ' + sources.main[id].toString() }).join(',') + '})(self);'\n\n  var blob = new window.Blob([src], { type: 'text/javascript' })\n  if (options.bare) { return blob }\n\n  var URL = window.URL || window.webkitURL || window.mozURL || window.msURL\n\n  var workerUrl = URL.createObjectURL(blob)\n  var worker = new window.Worker(workerUrl)\n  worker.objectURL = workerUrl\n\n  return worker\n}\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__demux_demuxer_inline__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__events__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_logger__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_events__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_events___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_events__);\n/* demuxer web worker.\n *  - listen to worker message, and trigger DemuxerInline upon reception of Fragments.\n *  - provides MP4 Boxes back to main thread using [transferable objects](https://developers.google.com/web/updates/2011/12/Transferable-Objects-Lightning-Fast) in order to minimize message passing overhead.\n */\n\n\n\n\n\n\nvar DemuxerWorker = function DemuxerWorker(self) {\n  // observer setup\n  var observer = new __WEBPACK_IMPORTED_MODULE_3_events___default.a();\n  observer.trigger = function trigger(event) {\n    for (var _len = arguments.length, data = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      data[_key - 1] = arguments[_key];\n    }\n\n    observer.emit.apply(observer, [event, event].concat(data));\n  };\n\n  observer.off = function off(event) {\n    for (var _len2 = arguments.length, data = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      data[_key2 - 1] = arguments[_key2];\n    }\n\n    observer.removeListener.apply(observer, [event].concat(data));\n  };\n\n  var forwardMessage = function forwardMessage(ev, data) {\n    self.postMessage({ event: ev, data: data });\n  };\n\n  self.addEventListener('message', function (ev) {\n    var data = ev.data;\n    // console.log('demuxer cmd:' + data.cmd);\n    switch (data.cmd) {\n      case 'init':\n        var config = JSON.parse(data.config);\n        self.demuxer = new __WEBPACK_IMPORTED_MODULE_0__demux_demuxer_inline__[\"a\" /* default */](observer, data.typeSupported, config, data.vendor);\n        try {\n          Object(__WEBPACK_IMPORTED_MODULE_2__utils_logger__[\"a\" /* enableLogs */])(config.debug === true);\n        } catch (err) {\n          console.warn('demuxerWorker: unable to enable logs');\n        }\n        // signal end of worker init\n        forwardMessage('init', null);\n        break;\n      case 'demux':\n        self.demuxer.push(data.data, data.decryptdata, data.initSegment, data.audioCodec, data.videoCodec, data.timeOffset, data.discontinuity, data.trackSwitch, data.contiguous, data.duration, data.accurateTimeOffset, data.defaultInitPTS);\n        break;\n      default:\n        break;\n    }\n  });\n\n  // forward events to main thread\n  observer.on(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].FRAG_DECRYPTED, forwardMessage);\n  observer.on(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].FRAG_PARSING_INIT_SEGMENT, forwardMessage);\n  observer.on(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].FRAG_PARSED, forwardMessage);\n  observer.on(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].ERROR, forwardMessage);\n  observer.on(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].FRAG_PARSING_METADATA, forwardMessage);\n  observer.on(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].FRAG_PARSING_USERDATA, forwardMessage);\n  observer.on(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].INIT_PTS_FOUND, forwardMessage);\n\n  // special case for FRAG_PARSING_DATA: pass data1/data2 as transferable object (no copy)\n  observer.on(__WEBPACK_IMPORTED_MODULE_1__events__[\"a\" /* default */].FRAG_PARSING_DATA, function (ev, data) {\n    var transferable = [];\n    var message = { event: ev, data: data };\n    if (data.data1) {\n      message.data1 = data.data1.buffer;\n      transferable.push(data.data1.buffer);\n      delete data.data1;\n    }\n    if (data.data2) {\n      message.data2 = data.data2.buffer;\n      transferable.push(data.data2.buffer);\n      delete data.data2;\n    }\n    self.postMessage(message, transferable);\n  });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (DemuxerWorker);\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n/*! http://mths.be/endswith v0.2.0 by @mathias */\nif (!String.prototype.endsWith) {\n\t(function() {\n\t\t'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\n\t\tvar defineProperty = (function() {\n\t\t\t// IE 8 only supports `Object.defineProperty` on DOM elements\n\t\t\ttry {\n\t\t\t\tvar object = {};\n\t\t\t\tvar $defineProperty = Object.defineProperty;\n\t\t\t\tvar result = $defineProperty(object, object, object) && $defineProperty;\n\t\t\t} catch(error) {}\n\t\t\treturn result;\n\t\t}());\n\t\tvar toString = {}.toString;\n\t\tvar endsWith = function(search) {\n\t\t\tif (this == null) {\n\t\t\t\tthrow TypeError();\n\t\t\t}\n\t\t\tvar string = String(this);\n\t\t\tif (search && toString.call(search) == '[object RegExp]') {\n\t\t\t\tthrow TypeError();\n\t\t\t}\n\t\t\tvar stringLength = string.length;\n\t\t\tvar searchString = String(search);\n\t\t\tvar searchLength = searchString.length;\n\t\t\tvar pos = stringLength;\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tvar position = arguments[1];\n\t\t\t\tif (position !== undefined) {\n\t\t\t\t\t// `ToInteger`\n\t\t\t\t\tpos = position ? Number(position) : 0;\n\t\t\t\t\tif (pos != pos) { // better `isNaN`\n\t\t\t\t\t\tpos = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar end = Math.min(Math.max(pos, 0), stringLength);\n\t\t\tvar start = end - searchLength;\n\t\t\tif (start < 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar index = -1;\n\t\t\twhile (++index < searchLength) {\n\t\t\t\tif (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\t\tif (defineProperty) {\n\t\t\tdefineProperty(String.prototype, 'endsWith', {\n\t\t\t\t'value': endsWith,\n\t\t\t\t'configurable': true,\n\t\t\t\t'writable': true\n\t\t\t});\n\t\t} else {\n\t\t\tString.prototype.endsWith = endsWith;\n\t\t}\n\t}());\n}\n\n\n/***/ })\n/******/ ])[\"default\"];\n});\n//# sourceMappingURL=hls.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_hls.js@0.11.0@hls.js/dist/hls.js\n// module id = 1m0t\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar BrushController = require(\"../helper/BrushController\");\n\nvar brushHelper = require(\"../helper/brushHelper\");\n\nvar graphic = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\nvar AxisView = echarts.extendComponentView({\n  type: 'parallelAxis',\n\n  /**\n   * @override\n   */\n  init: function (ecModel, api) {\n    AxisView.superApply(this, 'init', arguments);\n    /**\n     * @type {module:echarts/component/helper/BrushController}\n     */\n\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n  },\n\n  /**\n   * @override\n   */\n  render: function (axisModel, ecModel, api, payload) {\n    if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n      return;\n    }\n\n    this.axisModel = axisModel;\n    this.api = api;\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var coordSysModel = getCoordSysModel(axisModel, ecModel);\n    var coordSys = coordSysModel.coordinateSystem;\n    var areaSelectStyle = axisModel.getAreaSelectStyle();\n    var areaWidth = areaSelectStyle.width;\n    var dim = axisModel.axis.dim;\n    var axisLayout = coordSys.getAxisLayout(dim);\n    var builderOpt = zrUtil.extend({\n      strokeContainThreshold: areaWidth\n    }, axisLayout);\n    var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n    zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n    var animationModel = payload && payload.animation === false ? null : axisModel;\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, animationModel);\n  },\n  // /**\n  //  * @override\n  //  */\n  // updateVisual: function (axisModel, ecModel, api, payload) {\n  //     this._brushController && this._brushController\n  //         .updateCovers(getCoverInfoList(axisModel));\n  // },\n  _refreshBrushController: function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n    // After filtering, axis may change, select area needs to be update.\n    var extent = axisModel.axis.getExtent();\n    var extentLen = extent[1] - extent[0];\n    var extra = Math.min(30, Math.abs(extentLen) * 0.1); // Arbitrary value.\n    // width/height might be negative, which will be\n    // normalized in BoundingRect.\n\n    var rect = graphic.BoundingRect.create({\n      x: extent[0],\n      y: -areaWidth / 2,\n      width: extentLen,\n      height: areaWidth\n    });\n    rect.x -= extra;\n    rect.width += 2 * extra;\n\n    this._brushController.mount({\n      enableGlobalPan: true,\n      rotation: builderOpt.rotation,\n      position: builderOpt.position\n    }).setPanels([{\n      panelId: 'pl',\n      clipPath: brushHelper.makeRectPanelClipPath(rect),\n      isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n      getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n    }]).enableBrush({\n      brushType: 'lineX',\n      brushStyle: areaSelectStyle,\n      removeOnClick: true\n    }).updateCovers(getCoverInfoList(axisModel));\n  },\n  _onBrush: function (coverInfoList, opt) {\n    // Do not cache these object, because the mey be changed.\n    var axisModel = this.axisModel;\n    var axis = axisModel.axis;\n    var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n      return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n    }); // If realtime is true, action is not dispatched on drag end, because\n    // the drag end emits the same params with the last drag move event,\n    // and may have some delay when using touch pad.\n\n    if (!axisModel.option.realtime === opt.isEnd || opt.removeOnClick) {\n      // jshint ignore:line\n      this.api.dispatchAction({\n        type: 'axisAreaSelect',\n        parallelAxisId: axisModel.id,\n        intervals: intervals\n      });\n    }\n  },\n\n  /**\n   * @override\n   */\n  dispose: function () {\n    this._brushController.dispose();\n  }\n});\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n  return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n    mainType: 'parallelAxis',\n    query: payload\n  })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n  var axis = axisModel.axis;\n  return zrUtil.map(axisModel.activeIntervals, function (interval) {\n    return {\n      brushType: 'lineX',\n      panelId: 'pl',\n      range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n    };\n  });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n  return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nvar _default = AxisView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis/ParallelAxisView.js\n// module id = 1oKu\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar LinearGradient = require(\"zrender/lib/graphic/LinearGradient\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar VisualMapView = require(\"./VisualMapView\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\n\nvar helper = require(\"./helper\");\n\nvar modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max; // Arbitrary value\n\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6; // Notice:\n// Any \"interval\" should be by the order of [low, high].\n// \"handle0\" (handleIndex === 0) maps to\n// low data value: this._dataInterval[0] and has low coord.\n// \"handle1\" (handleIndex === 1) maps to\n// high data value: this._dataInterval[1] and has high coord.\n// The logic of transform is implemented in this._createBarGroup.\n\nvar ContinuousView = VisualMapView.extend({\n  type: 'visualMap.continuous',\n\n  /**\n   * @override\n   */\n  init: function () {\n    ContinuousView.superApply(this, 'init', arguments);\n    /**\n     * @private\n     */\n\n    this._shapes = {};\n    /**\n     * @private\n     */\n\n    this._dataInterval = [];\n    /**\n     * @private\n     */\n\n    this._handleEnds = [];\n    /**\n     * @private\n     */\n\n    this._orient;\n    /**\n     * @private\n     */\n\n    this._useHandle;\n    /**\n     * @private\n     */\n\n    this._hoverLinkDataIndices = [];\n    /**\n     * @private\n     */\n\n    this._dragging;\n    /**\n     * @private\n     */\n\n    this._hovering;\n  },\n\n  /**\n   * @protected\n   * @override\n   */\n  doRender: function (visualMapModel, ecModel, api, payload) {\n    if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n      this._buildView();\n    }\n  },\n\n  /**\n   * @private\n   */\n  _buildView: function () {\n    this.group.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var thisGroup = this.group;\n    this._orient = visualMapModel.get('orient');\n    this._useHandle = visualMapModel.get('calculable');\n\n    this._resetInterval();\n\n    this._renderBar(thisGroup);\n\n    var dataRangeText = visualMapModel.get('text');\n\n    this._renderEndsText(thisGroup, dataRangeText, 0);\n\n    this._renderEndsText(thisGroup, dataRangeText, 1); // Do this for background size calculation.\n\n\n    this._updateView(true); // After updating view, inner shapes is built completely,\n    // and then background can be rendered.\n\n\n    this.renderBackground(thisGroup); // Real update view\n\n    this._updateView();\n\n    this._enableHoverLinkToSeries();\n\n    this._enableHoverLinkFromSeries();\n\n    this.positionGroup(thisGroup);\n  },\n\n  /**\n   * @private\n   */\n  _renderEndsText: function (group, dataRangeText, endsIndex) {\n    if (!dataRangeText) {\n      return;\n    } // Compatible with ec2, text[0] map to high value, text[1] map low value.\n\n\n    var text = dataRangeText[1 - endsIndex];\n    text = text != null ? text + '' : '';\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var itemSize = visualMapModel.itemSize;\n    var barGroup = this._shapes.barGroup;\n\n    var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n    var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n    var orient = this._orient;\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    this.group.add(new graphic.Text({\n      style: {\n        x: position[0],\n        y: position[1],\n        textVerticalAlign: orient === 'horizontal' ? 'middle' : align,\n        textAlign: orient === 'horizontal' ? align : 'center',\n        text: text,\n        textFont: textStyleModel.getFont(),\n        textFill: textStyleModel.getTextColor()\n      }\n    }));\n  },\n\n  /**\n   * @private\n   */\n  _renderBar: function (targetGroup) {\n    var visualMapModel = this.visualMapModel;\n    var shapes = this._shapes;\n    var itemSize = visualMapModel.itemSize;\n    var orient = this._orient;\n    var useHandle = this._useHandle;\n    var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n    var barGroup = shapes.barGroup = this._createBarGroup(itemAlign); // Bar\n\n\n    barGroup.add(shapes.outOfRange = createPolygon());\n    barGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true)));\n    var textRect = visualMapModel.textStyleModel.getTextRect('鍥�');\n    var textSize = mathMax(textRect.width, textRect.height); // Handle\n\n    if (useHandle) {\n      shapes.handleThumbs = [];\n      shapes.handleLabels = [];\n      shapes.handleLabelPoints = [];\n\n      this._createHandle(barGroup, 0, itemSize, textSize, orient, itemAlign);\n\n      this._createHandle(barGroup, 1, itemSize, textSize, orient, itemAlign);\n    }\n\n    this._createIndicator(barGroup, itemSize, textSize, orient);\n\n    targetGroup.add(barGroup);\n  },\n\n  /**\n   * @private\n   */\n  _createHandle: function (barGroup, handleIndex, itemSize, textSize, orient) {\n    var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n    var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n    var handleThumb = createPolygon(createHandlePoints(handleIndex, textSize), getCursor(this._orient), onDrift, onDragEnd);\n    handleThumb.position[0] = itemSize[0];\n    barGroup.add(handleThumb); // Text is always horizontal layout but should not be effected by\n    // transform (orient/inverse). So label is built separately but not\n    // use zrender/graphic/helper/RectText, and is located based on view\n    // group (according to handleLabelPoint) but not barGroup.\n\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var handleLabel = new graphic.Text({\n      draggable: true,\n      drift: onDrift,\n      onmousemove: function (e) {\n        // Fot mobile devicem, prevent screen slider on the button.\n        eventTool.stop(e.event);\n      },\n      ondragend: onDragEnd,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        textFont: textStyleModel.getFont(),\n        textFill: textStyleModel.getTextColor()\n      }\n    });\n    this.group.add(handleLabel);\n    var handleLabelPoint = [orient === 'horizontal' ? textSize / 2 : textSize * 1.5, orient === 'horizontal' ? handleIndex === 0 ? -(textSize * 1.5) : textSize * 1.5 : handleIndex === 0 ? -textSize / 2 : textSize / 2];\n    var shapes = this._shapes;\n    shapes.handleThumbs[handleIndex] = handleThumb;\n    shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n    shapes.handleLabels[handleIndex] = handleLabel;\n  },\n\n  /**\n   * @private\n   */\n  _createIndicator: function (barGroup, itemSize, textSize, orient) {\n    var indicator = createPolygon([[0, 0]], 'move');\n    indicator.position[0] = itemSize[0];\n    indicator.attr({\n      invisible: true,\n      silent: true\n    });\n    barGroup.add(indicator);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var indicatorLabel = new graphic.Text({\n      silent: true,\n      invisible: true,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        textFont: textStyleModel.getFont(),\n        textFill: textStyleModel.getTextColor()\n      }\n    });\n    this.group.add(indicatorLabel);\n    var indicatorLabelPoint = [orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT + 3, 0];\n    var shapes = this._shapes;\n    shapes.indicator = indicator;\n    shapes.indicatorLabel = indicatorLabel;\n    shapes.indicatorLabelPoint = indicatorLabelPoint;\n  },\n\n  /**\n   * @private\n   */\n  _dragHandle: function (handleIndex, isEnd, dx, dy) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    this._dragging = !isEnd;\n\n    if (!isEnd) {\n      // Transform dx, dy to bar coordination.\n      var vertex = this._applyTransform([dx, dy], this._shapes.barGroup, true);\n\n      this._updateInterval(handleIndex, vertex[1]); // Considering realtime, update view should be executed\n      // before dispatch action.\n\n\n      this._updateView();\n    } // dragEnd do not dispatch action when realtime.\n\n\n    if (isEnd === !this.visualMapModel.get('realtime')) {\n      // jshint ignore:line\n      this.api.dispatchAction({\n        type: 'selectDataRange',\n        from: this.uid,\n        visualMapId: this.visualMapModel.id,\n        selected: this._dataInterval.slice()\n      });\n    }\n\n    if (isEnd) {\n      !this._hovering && this._clearHoverLinkToSeries();\n    } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n      this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n    }\n  },\n\n  /**\n   * @private\n   */\n  _resetInterval: function () {\n    var visualMapModel = this.visualMapModel;\n    var dataInterval = this._dataInterval = visualMapModel.getSelected();\n    var dataExtent = visualMapModel.getExtent();\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n  },\n\n  /**\n   * @private\n   * @param {(number|string)} handleIndex 0 or 1 or 'all'\n   * @param {number} dx\n   * @param {number} dy\n   */\n  _updateInterval: function (handleIndex, delta) {\n    delta = delta || 0;\n    var visualMapModel = this.visualMapModel;\n    var handleEnds = this._handleEnds;\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    sliderMove(delta, handleEnds, sizeExtent, handleIndex, // cross is forbiden\n    0);\n    var dataExtent = visualMapModel.getExtent(); // Update data interval.\n\n    this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n  },\n\n  /**\n   * @private\n   */\n  _updateView: function (forSketch) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var shapes = this._shapes;\n    var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n    var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n    var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n    var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n    shapes.inRange.setStyle({\n      fill: visualInRange.barColor,\n      opacity: visualInRange.opacity\n    }).setShape('points', visualInRange.barPoints);\n    shapes.outOfRange.setStyle({\n      fill: visualOutOfRange.barColor,\n      opacity: visualOutOfRange.opacity\n    }).setShape('points', visualOutOfRange.barPoints);\n\n    this._updateHandle(inRangeHandleEnds, visualInRange);\n  },\n\n  /**\n   * @private\n   */\n  _createBarVisual: function (dataInterval, dataExtent, handleEnds, forceState) {\n    var opts = {\n      forceState: forceState,\n      convertOpacityToAlpha: true\n    };\n\n    var colorStops = this._makeColorGradient(dataInterval, opts);\n\n    var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n    var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n    return {\n      barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n      barPoints: barPoints,\n      handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n    };\n  },\n\n  /**\n   * @private\n   */\n  _makeColorGradient: function (dataInterval, opts) {\n    // Considering colorHue, which is not linear, so we have to sample\n    // to calculate gradient color stops, but not only caculate head\n    // and tail.\n    var sampleNumber = 100; // Arbitrary value.\n\n    var colorStops = [];\n    var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[0], 'color', opts),\n      offset: 0\n    });\n\n    for (var i = 1; i < sampleNumber; i++) {\n      var currValue = dataInterval[0] + step * i;\n\n      if (currValue > dataInterval[1]) {\n        break;\n      }\n\n      colorStops.push({\n        color: this.getControllerVisual(currValue, 'color', opts),\n        offset: i / sampleNumber\n      });\n    }\n\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[1], 'color', opts),\n      offset: 1\n    });\n    return colorStops;\n  },\n\n  /**\n   * @private\n   */\n  _createBarPoints: function (handleEnds, symbolSizes) {\n    var itemSize = this.visualMapModel.itemSize;\n    return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n  },\n\n  /**\n   * @private\n   */\n  _createBarGroup: function (itemAlign) {\n    var orient = this._orient;\n    var inverse = this.visualMapModel.get('inverse');\n    return new graphic.Group(orient === 'horizontal' && !inverse ? {\n      scale: itemAlign === 'bottom' ? [1, 1] : [-1, 1],\n      rotation: Math.PI / 2\n    } : orient === 'horizontal' && inverse ? {\n      scale: itemAlign === 'bottom' ? [-1, 1] : [1, 1],\n      rotation: -Math.PI / 2\n    } : orient === 'vertical' && !inverse ? {\n      scale: itemAlign === 'left' ? [1, -1] : [-1, -1]\n    } : {\n      scale: itemAlign === 'left' ? [1, 1] : [-1, 1]\n    });\n  },\n\n  /**\n   * @private\n   */\n  _updateHandle: function (handleEnds, visualInRange) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    var shapes = this._shapes;\n    var visualMapModel = this.visualMapModel;\n    var handleThumbs = shapes.handleThumbs;\n    var handleLabels = shapes.handleLabels;\n    each([0, 1], function (handleIndex) {\n      var handleThumb = handleThumbs[handleIndex];\n      handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n      handleThumb.position[1] = handleEnds[handleIndex]; // Update handle label position.\n\n      var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n        textVerticalAlign: 'middle',\n        textAlign: this._applyTransform(this._orient === 'horizontal' ? handleIndex === 0 ? 'bottom' : 'top' : 'left', shapes.barGroup)\n      });\n    }, this);\n  },\n\n  /**\n   * @private\n   * @param {number} cursorValue\n   * @param {number} textValue\n   * @param {string} [rangeSymbol]\n   * @param {number} [halfHoverLinkSize]\n   */\n  _showIndicator: function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var itemSize = visualMapModel.itemSize;\n    var sizeExtent = [0, itemSize[1]];\n    var pos = linearMap(cursorValue, dataExtent, sizeExtent, true);\n    var shapes = this._shapes;\n    var indicator = shapes.indicator;\n\n    if (!indicator) {\n      return;\n    }\n\n    indicator.position[1] = pos;\n    indicator.attr('invisible', false);\n    indicator.setShape('points', createIndicatorPoints(!!rangeSymbol, halfHoverLinkSize, pos, itemSize[1]));\n    var opts = {\n      convertOpacityToAlpha: true\n    };\n    var color = this.getControllerVisual(cursorValue, 'color', opts);\n    indicator.setStyle('fill', color); // Update handle label position.\n\n    var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n    var indicatorLabel = shapes.indicatorLabel;\n    indicatorLabel.attr('invisible', false);\n\n    var align = this._applyTransform('left', shapes.barGroup);\n\n    var orient = this._orient;\n    indicatorLabel.setStyle({\n      text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n      textVerticalAlign: orient === 'horizontal' ? align : 'middle',\n      textAlign: orient === 'horizontal' ? 'center' : align,\n      x: textPoint[0],\n      y: textPoint[1]\n    });\n  },\n\n  /**\n   * @private\n   */\n  _enableHoverLinkToSeries: function () {\n    var self = this;\n\n    this._shapes.barGroup.on('mousemove', function (e) {\n      self._hovering = true;\n\n      if (!self._dragging) {\n        var itemSize = self.visualMapModel.itemSize;\n\n        var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.barGroup, true, true); // For hover link show when hover handle, which might be\n        // below or upper than sizeExtent.\n\n\n        pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n        self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n      }\n    }).on('mouseout', function () {\n      // When mouse is out of handle, hoverLink still need\n      // to be displayed when realtime is set as false.\n      self._hovering = false;\n      !self._dragging && self._clearHoverLinkToSeries();\n    });\n  },\n\n  /**\n   * @private\n   */\n  _enableHoverLinkFromSeries: function () {\n    var zr = this.api.getZr();\n\n    if (this.visualMapModel.option.hoverLink) {\n      zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n      zr.on('mouseout', this._hideIndicator, this);\n    } else {\n      this._clearHoverLinkFromSeries();\n    }\n  },\n\n  /**\n   * @private\n   */\n  _doHoverLinkToSeries: function (cursorPos, hoverOnBar) {\n    var visualMapModel = this.visualMapModel;\n    var itemSize = visualMapModel.itemSize;\n\n    if (!visualMapModel.option.hoverLink) {\n      return;\n    }\n\n    var sizeExtent = [0, itemSize[1]];\n    var dataExtent = visualMapModel.getExtent(); // For hover link show when hover handle, which might be below or upper than sizeExtent.\n\n    cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n    var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n    var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n    var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n    var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)]; // Consider data range is out of visualMap range, see test/visualMap-continuous.html,\n    // where china and india has very large population.\n\n    hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n    hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); // Do not show indicator when mouse is over handle,\n    // otherwise labels overlap, especially when dragging.\n\n    if (hoverOnBar) {\n      if (valueRange[0] === -Infinity) {\n        this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n      } else if (valueRange[1] === Infinity) {\n        this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n      } else {\n        this._showIndicator(cursorValue, cursorValue, '鈮� ', halfHoverLinkSize);\n      }\n    } // When realtime is set as false, handles, which are in barGroup,\n    // also trigger hoverLink, which help user to realize where they\n    // focus on when dragging. (see test/heatmap-large.html)\n    // When realtime is set as true, highlight will not show when hover\n    // handle, because the label on handle, which displays a exact value\n    // but not range, might mislead users.\n\n\n    var oldBatch = this._hoverLinkDataIndices;\n    var newBatch = [];\n\n    if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n      newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n    }\n\n    var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n    this._dispatchHighDown('downplay', helper.convertDataIndex(resultBatches[0]));\n\n    this._dispatchHighDown('highlight', helper.convertDataIndex(resultBatches[1]));\n  },\n\n  /**\n   * @private\n   */\n  _hoverLinkFromSeriesMouseOver: function (e) {\n    var el = e.target;\n    var visualMapModel = this.visualMapModel;\n\n    if (!el || el.dataIndex == null) {\n      return;\n    }\n\n    var dataModel = this.ecModel.getSeriesByIndex(el.seriesIndex);\n\n    if (!visualMapModel.isTargetSeries(dataModel)) {\n      return;\n    }\n\n    var data = dataModel.getData(el.dataType);\n    var value = data.get(visualMapModel.getDataDimension(data), el.dataIndex, true);\n\n    if (!isNaN(value)) {\n      this._showIndicator(value, value);\n    }\n  },\n\n  /**\n   * @private\n   */\n  _hideIndicator: function () {\n    var shapes = this._shapes;\n    shapes.indicator && shapes.indicator.attr('invisible', true);\n    shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n  },\n\n  /**\n   * @private\n   */\n  _clearHoverLinkToSeries: function () {\n    this._hideIndicator();\n\n    var indices = this._hoverLinkDataIndices;\n\n    this._dispatchHighDown('downplay', helper.convertDataIndex(indices));\n\n    indices.length = 0;\n  },\n\n  /**\n   * @private\n   */\n  _clearHoverLinkFromSeries: function () {\n    this._hideIndicator();\n\n    var zr = this.api.getZr();\n    zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n    zr.off('mouseout', this._hideIndicator);\n  },\n\n  /**\n   * @private\n   */\n  _applyTransform: function (vertex, element, inverse, global) {\n    var transform = graphic.getTransform(element, global ? null : this.group);\n    return graphic[zrUtil.isArray(vertex) ? 'applyTransform' : 'transformDirection'](vertex, transform, inverse);\n  },\n\n  /**\n   * @private\n   */\n  _dispatchHighDown: function (type, batch) {\n    batch && batch.length && this.api.dispatchAction({\n      type: type,\n      batch: batch\n    });\n  },\n\n  /**\n   * @override\n   */\n  dispose: function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  },\n\n  /**\n   * @override\n   */\n  remove: function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  }\n});\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n  return new graphic.Polygon({\n    shape: {\n      points: points\n    },\n    draggable: !!onDrift,\n    cursor: cursor,\n    drift: onDrift,\n    onmousemove: function (e) {\n      // Fot mobile devicem, prevent screen slider on the button.\n      eventTool.stop(e.event);\n    },\n    ondragend: onDragEnd\n  });\n}\n\nfunction createHandlePoints(handleIndex, textSize) {\n  return handleIndex === 0 ? [[0, 0], [textSize, 0], [textSize, -textSize]] : [[0, 0], [textSize, 0], [textSize, textSize]];\n}\n\nfunction createIndicatorPoints(isRange, halfHoverLinkSize, pos, extentMax) {\n  return isRange ? [// indicate range\n  [0, -mathMin(halfHoverLinkSize, mathMax(pos, 0))], [HOVER_LINK_OUT, 0], [0, mathMin(halfHoverLinkSize, mathMax(extentMax - pos, 0))]] : [// indicate single value\n  [0, 0], [5, -5], [5, 5]];\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n  var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n  var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n  if (hoverLinkDataSize) {\n    halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n  }\n\n  return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n  var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n  return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nvar _default = ContinuousView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/ContinuousView.js\n// module id = 1y9Q\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Eventful = require(\"zrender/lib/mixin/Eventful\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar interactionMutex = require(\"./interactionMutex\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @alias module:echarts/component/helper/RoamController\n * @constructor\n * @mixin {module:zrender/mixin/Eventful}\n *\n * @param {module:zrender/zrender~ZRender} zr\n */\nfunction RoamController(zr) {\n  /**\n   * @type {Function}\n   */\n  this.pointerChecker;\n  /**\n   * @type {module:zrender}\n   */\n\n  this._zr = zr;\n  /**\n   * @type {Object}\n   */\n\n  this._opt = {}; // Avoid two roamController bind the same handler\n\n  var bind = zrUtil.bind;\n  var mousedownHandler = bind(mousedown, this);\n  var mousemoveHandler = bind(mousemove, this);\n  var mouseupHandler = bind(mouseup, this);\n  var mousewheelHandler = bind(mousewheel, this);\n  var pinchHandler = bind(pinch, this);\n  Eventful.call(this);\n  /**\n   * @param {Function} pointerChecker\n   *                   input: x, y\n   *                   output: boolean\n   */\n\n  this.setPointerChecker = function (pointerChecker) {\n    this.pointerChecker = pointerChecker;\n  };\n  /**\n   * Notice: only enable needed types. For example, if 'zoom'\n   * is not needed, 'zoom' should not be enabled, otherwise\n   * default mousewheel behaviour (scroll page) will be disabled.\n   *\n   * @param  {boolean|string} [controlType=true] Specify the control type,\n   *                          which can be null/undefined or true/false\n   *                          or 'pan/move' or 'zoom'/'scale'\n   * @param {Object} [opt]\n   * @param {Object} [opt.zoomOnMouseWheel=true]\n   * @param {Object} [opt.moveOnMouseMove=true]\n   * @param {Object} [opt.preventDefaultMouseMove=true] When pan.\n   */\n\n\n  this.enable = function (controlType, opt) {\n    // Disable previous first\n    this.disable();\n    this._opt = zrUtil.defaults(zrUtil.clone(opt) || {}, {\n      zoomOnMouseWheel: true,\n      moveOnMouseMove: true,\n      preventDefaultMouseMove: true\n    });\n\n    if (controlType == null) {\n      controlType = true;\n    }\n\n    if (controlType === true || controlType === 'move' || controlType === 'pan') {\n      zr.on('mousedown', mousedownHandler);\n      zr.on('mousemove', mousemoveHandler);\n      zr.on('mouseup', mouseupHandler);\n    }\n\n    if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n      zr.on('mousewheel', mousewheelHandler);\n      zr.on('pinch', pinchHandler);\n    }\n  };\n\n  this.disable = function () {\n    zr.off('mousedown', mousedownHandler);\n    zr.off('mousemove', mousemoveHandler);\n    zr.off('mouseup', mouseupHandler);\n    zr.off('mousewheel', mousewheelHandler);\n    zr.off('pinch', pinchHandler);\n  };\n\n  this.dispose = this.disable;\n\n  this.isDragging = function () {\n    return this._dragging;\n  };\n\n  this.isPinching = function () {\n    return this._pinching;\n  };\n}\n\nzrUtil.mixin(RoamController, Eventful);\n\nfunction mousedown(e) {\n  if (eventTool.notLeftMouse(e) || e.target && e.target.draggable) {\n    return;\n  }\n\n  var x = e.offsetX;\n  var y = e.offsetY; // Only check on mosedown, but not mousemove.\n  // Mouse can be out of target when mouse moving.\n\n  if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n    this._x = x;\n    this._y = y;\n    this._dragging = true;\n  }\n}\n\nfunction mousemove(e) {\n  if (eventTool.notLeftMouse(e) || !checkKeyBinding(this, 'moveOnMouseMove', e) || !this._dragging || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n    return;\n  }\n\n  var x = e.offsetX;\n  var y = e.offsetY;\n  var oldX = this._x;\n  var oldY = this._y;\n  var dx = x - oldX;\n  var dy = y - oldY;\n  this._x = x;\n  this._y = y;\n  this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n  this.trigger('pan', dx, dy, oldX, oldY, x, y);\n}\n\nfunction mouseup(e) {\n  if (!eventTool.notLeftMouse(e)) {\n    this._dragging = false;\n  }\n}\n\nfunction mousewheel(e) {\n  // wheelDelta maybe -0 in chrome mac.\n  if (!checkKeyBinding(this, 'zoomOnMouseWheel', e) || e.wheelDelta === 0) {\n    return;\n  } // Convenience:\n  // Mac and VM Windows on Mac: scroll up: zoom out.\n  // Windows: scroll up: zoom in.\n\n\n  var zoomDelta = e.wheelDelta > 0 ? 1.1 : 1 / 1.1;\n  zoom.call(this, e, zoomDelta, e.offsetX, e.offsetY);\n}\n\nfunction pinch(e) {\n  if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n    return;\n  }\n\n  var zoomDelta = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n  zoom.call(this, e, zoomDelta, e.pinchX, e.pinchY);\n}\n\nfunction zoom(e, zoomDelta, zoomX, zoomY) {\n  if (this.pointerChecker && this.pointerChecker(e, zoomX, zoomY)) {\n    // When mouse is out of roamController rect,\n    // default befavoius should not be be disabled, otherwise\n    // page sliding is disabled, contrary to expectation.\n    eventTool.stop(e.event);\n    this.trigger('zoom', zoomDelta, zoomX, zoomY);\n  }\n}\n\nfunction checkKeyBinding(roamController, prop, e) {\n  var setting = roamController._opt[prop];\n  return setting && (!zrUtil.isString(setting) || e.event[setting + 'Key']);\n}\n\nvar _default = RoamController;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/RoamController.js\n// module id = 21V2\n// module chunks = 0","'use strict';\n\n/* Modified from https://github.com/taylorhakes/fecha\n *\n * The MIT License (MIT)\n *\n * Copyright (c) 2015 Taylor Hakes\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n *     The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n *     THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n *     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n *     OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n/*eslint-disable*/\n// 鎶� YYYY-MM-DD 鏀规垚浜� yyyy-MM-dd\n(function (main) {\n  'use strict';\n\n  /**\n   * Parse or format dates\n   * @class fecha\n   */\n\n  var fecha = {};\n  var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\n  var twoDigits = /\\d\\d?/;\n  var threeDigits = /\\d{3}/;\n  var fourDigits = /\\d{4}/;\n  var word = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\n  var noop = function noop() {};\n\n  function shorten(arr, sLen) {\n    var newArr = [];\n    for (var i = 0, len = arr.length; i < len; i++) {\n      newArr.push(arr[i].substr(0, sLen));\n    }\n    return newArr;\n  }\n\n  function monthUpdate(arrName) {\n    return function (d, v, i18n) {\n      var index = i18n[arrName].indexOf(v.charAt(0).toUpperCase() + v.substr(1).toLowerCase());\n      if (~index) {\n        d.month = index;\n      }\n    };\n  }\n\n  function pad(val, len) {\n    val = String(val);\n    len = len || 2;\n    while (val.length < len) {\n      val = '0' + val;\n    }\n    return val;\n  }\n\n  var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n  var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n  var monthNamesShort = shorten(monthNames, 3);\n  var dayNamesShort = shorten(dayNames, 3);\n  fecha.i18n = {\n    dayNamesShort: dayNamesShort,\n    dayNames: dayNames,\n    monthNamesShort: monthNamesShort,\n    monthNames: monthNames,\n    amPm: ['am', 'pm'],\n    DoFn: function DoFn(D) {\n      return D + ['th', 'st', 'nd', 'rd'][D % 10 > 3 ? 0 : (D - D % 10 !== 10) * D % 10];\n    }\n  };\n\n  var formatFlags = {\n    D: function D(dateObj) {\n      return dateObj.getDay();\n    },\n    DD: function DD(dateObj) {\n      return pad(dateObj.getDay());\n    },\n    Do: function Do(dateObj, i18n) {\n      return i18n.DoFn(dateObj.getDate());\n    },\n    d: function d(dateObj) {\n      return dateObj.getDate();\n    },\n    dd: function dd(dateObj) {\n      return pad(dateObj.getDate());\n    },\n    ddd: function ddd(dateObj, i18n) {\n      return i18n.dayNamesShort[dateObj.getDay()];\n    },\n    dddd: function dddd(dateObj, i18n) {\n      return i18n.dayNames[dateObj.getDay()];\n    },\n    M: function M(dateObj) {\n      return dateObj.getMonth() + 1;\n    },\n    MM: function MM(dateObj) {\n      return pad(dateObj.getMonth() + 1);\n    },\n    MMM: function MMM(dateObj, i18n) {\n      return i18n.monthNamesShort[dateObj.getMonth()];\n    },\n    MMMM: function MMMM(dateObj, i18n) {\n      return i18n.monthNames[dateObj.getMonth()];\n    },\n    yy: function yy(dateObj) {\n      return String(dateObj.getFullYear()).substr(2);\n    },\n    yyyy: function yyyy(dateObj) {\n      return dateObj.getFullYear();\n    },\n    h: function h(dateObj) {\n      return dateObj.getHours() % 12 || 12;\n    },\n    hh: function hh(dateObj) {\n      return pad(dateObj.getHours() % 12 || 12);\n    },\n    H: function H(dateObj) {\n      return dateObj.getHours();\n    },\n    HH: function HH(dateObj) {\n      return pad(dateObj.getHours());\n    },\n    m: function m(dateObj) {\n      return dateObj.getMinutes();\n    },\n    mm: function mm(dateObj) {\n      return pad(dateObj.getMinutes());\n    },\n    s: function s(dateObj) {\n      return dateObj.getSeconds();\n    },\n    ss: function ss(dateObj) {\n      return pad(dateObj.getSeconds());\n    },\n    S: function S(dateObj) {\n      return Math.round(dateObj.getMilliseconds() / 100);\n    },\n    SS: function SS(dateObj) {\n      return pad(Math.round(dateObj.getMilliseconds() / 10), 2);\n    },\n    SSS: function SSS(dateObj) {\n      return pad(dateObj.getMilliseconds(), 3);\n    },\n    a: function a(dateObj, i18n) {\n      return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1];\n    },\n    A: function A(dateObj, i18n) {\n      return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase();\n    },\n    ZZ: function ZZ(dateObj) {\n      var o = dateObj.getTimezoneOffset();\n      return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);\n    }\n  };\n\n  var parseFlags = {\n    d: [twoDigits, function (d, v) {\n      d.day = v;\n    }],\n    M: [twoDigits, function (d, v) {\n      d.month = v - 1;\n    }],\n    yy: [twoDigits, function (d, v) {\n      var da = new Date(),\n          cent = +('' + da.getFullYear()).substr(0, 2);\n      d.year = '' + (v > 68 ? cent - 1 : cent) + v;\n    }],\n    h: [twoDigits, function (d, v) {\n      d.hour = v;\n    }],\n    m: [twoDigits, function (d, v) {\n      d.minute = v;\n    }],\n    s: [twoDigits, function (d, v) {\n      d.second = v;\n    }],\n    yyyy: [fourDigits, function (d, v) {\n      d.year = v;\n    }],\n    S: [/\\d/, function (d, v) {\n      d.millisecond = v * 100;\n    }],\n    SS: [/\\d{2}/, function (d, v) {\n      d.millisecond = v * 10;\n    }],\n    SSS: [threeDigits, function (d, v) {\n      d.millisecond = v;\n    }],\n    D: [twoDigits, noop],\n    ddd: [word, noop],\n    MMM: [word, monthUpdate('monthNamesShort')],\n    MMMM: [word, monthUpdate('monthNames')],\n    a: [word, function (d, v, i18n) {\n      var val = v.toLowerCase();\n      if (val === i18n.amPm[0]) {\n        d.isPm = false;\n      } else if (val === i18n.amPm[1]) {\n        d.isPm = true;\n      }\n    }],\n    ZZ: [/[\\+\\-]\\d\\d:?\\d\\d/, function (d, v) {\n      var parts = (v + '').match(/([\\+\\-]|\\d\\d)/gi),\n          minutes;\n\n      if (parts) {\n        minutes = +(parts[1] * 60) + parseInt(parts[2], 10);\n        d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;\n      }\n    }]\n  };\n  parseFlags.DD = parseFlags.D;\n  parseFlags.dddd = parseFlags.ddd;\n  parseFlags.Do = parseFlags.dd = parseFlags.d;\n  parseFlags.mm = parseFlags.m;\n  parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;\n  parseFlags.MM = parseFlags.M;\n  parseFlags.ss = parseFlags.s;\n  parseFlags.A = parseFlags.a;\n\n  // Some common format strings\n  fecha.masks = {\n    'default': 'ddd MMM dd yyyy HH:mm:ss',\n    shortDate: 'M/D/yy',\n    mediumDate: 'MMM d, yyyy',\n    longDate: 'MMMM d, yyyy',\n    fullDate: 'dddd, MMMM d, yyyy',\n    shortTime: 'HH:mm',\n    mediumTime: 'HH:mm:ss',\n    longTime: 'HH:mm:ss.SSS'\n  };\n\n  /***\n   * Format a date\n   * @method format\n   * @param {Date|number} dateObj\n   * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'\n   */\n  fecha.format = function (dateObj, mask, i18nSettings) {\n    var i18n = i18nSettings || fecha.i18n;\n\n    if (typeof dateObj === 'number') {\n      dateObj = new Date(dateObj);\n    }\n\n    if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {\n      throw new Error('Invalid Date in fecha.format');\n    }\n\n    mask = fecha.masks[mask] || mask || fecha.masks['default'];\n\n    return mask.replace(token, function ($0) {\n      return $0 in formatFlags ? formatFlags[$0](dateObj, i18n) : $0.slice(1, $0.length - 1);\n    });\n  };\n\n  /**\n   * Parse a date string into an object, changes - into /\n   * @method parse\n   * @param {string} dateStr Date string\n   * @param {string} format Date parse format\n   * @returns {Date|boolean}\n   */\n  fecha.parse = function (dateStr, format, i18nSettings) {\n    var i18n = i18nSettings || fecha.i18n;\n\n    if (typeof format !== 'string') {\n      throw new Error('Invalid format in fecha.parse');\n    }\n\n    format = fecha.masks[format] || format;\n\n    // Avoid regular expression denial of service, fail early for really long strings\n    // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS\n    if (dateStr.length > 1000) {\n      return false;\n    }\n\n    var isValid = true;\n    var dateInfo = {};\n    format.replace(token, function ($0) {\n      if (parseFlags[$0]) {\n        var info = parseFlags[$0];\n        var index = dateStr.search(info[0]);\n        if (!~index) {\n          isValid = false;\n        } else {\n          dateStr.replace(info[0], function (result) {\n            info[1](dateInfo, result, i18n);\n            dateStr = dateStr.substr(index + result.length);\n            return result;\n          });\n        }\n      }\n\n      return parseFlags[$0] ? '' : $0.slice(1, $0.length - 1);\n    });\n\n    if (!isValid) {\n      return false;\n    }\n\n    var today = new Date();\n    if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {\n      dateInfo.hour = +dateInfo.hour + 12;\n    } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {\n      dateInfo.hour = 0;\n    }\n\n    var date;\n    if (dateInfo.timezoneOffset != null) {\n      dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;\n      date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));\n    } else {\n      date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);\n    }\n    return date;\n  };\n\n  /* istanbul ignore next */\n  if (typeof module !== 'undefined' && module.exports) {\n    module.exports = fecha;\n  } else if (typeof define === 'function' && define.amd) {\n    define(function () {\n      return fecha;\n    });\n  } else {\n    main.fecha = fecha;\n  }\n})(undefined);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/date.js\n// module id = 21Wg\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 299);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 299:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _progress = __webpack_require__(300);\n\nvar _progress2 = _interopRequireDefault(_progress);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_progress2.default.install = function (Vue) {\n  Vue.component(_progress2.default.name, _progress2.default);\n};\n\nexports.default = _progress2.default;\n\n/***/ }),\n\n/***/ 300:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__ = __webpack_require__(301);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_605ce16e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__ = __webpack_require__(302);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_605ce16e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 301:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElProgress',\n  props: {\n    type: {\n      type: String,\n      default: 'line',\n      validator: function validator(val) {\n        return ['line', 'circle'].indexOf(val) > -1;\n      }\n    },\n    percentage: {\n      type: Number,\n      default: 0,\n      required: true,\n      validator: function validator(val) {\n        return val >= 0 && val <= 100;\n      }\n    },\n    status: {\n      type: String\n    },\n    strokeWidth: {\n      type: Number,\n      default: 6\n    },\n    textInside: {\n      type: Boolean,\n      default: false\n    },\n    width: {\n      type: Number,\n      default: 126\n    },\n    showText: {\n      type: Boolean,\n      default: true\n    },\n    color: {\n      type: String,\n      default: ''\n    }\n  },\n  computed: {\n    barStyle: function barStyle() {\n      var style = {};\n      style.width = this.percentage + '%';\n      style.backgroundColor = this.color;\n      return style;\n    },\n    relativeStrokeWidth: function relativeStrokeWidth() {\n      return (this.strokeWidth / this.width * 100).toFixed(1);\n    },\n    trackPath: function trackPath() {\n      var radius = parseInt(50 - parseFloat(this.relativeStrokeWidth) / 2, 10);\n\n      return 'M 50 50 m 0 -' + radius + ' a ' + radius + ' ' + radius + ' 0 1 1 0 ' + radius * 2 + ' a ' + radius + ' ' + radius + ' 0 1 1 0 -' + radius * 2;\n    },\n    perimeter: function perimeter() {\n      var radius = 50 - parseFloat(this.relativeStrokeWidth) / 2;\n      return 2 * Math.PI * radius;\n    },\n    circlePathStyle: function circlePathStyle() {\n      var perimeter = this.perimeter;\n      return {\n        strokeDasharray: perimeter + 'px,' + perimeter + 'px',\n        strokeDashoffset: (1 - this.percentage / 100) * perimeter + 'px',\n        transition: 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease'\n      };\n    },\n    stroke: function stroke() {\n      var ret = void 0;\n      if (this.color) {\n        ret = this.color;\n      } else {\n        switch (this.status) {\n          case 'success':\n            ret = '#13ce66';\n            break;\n          case 'exception':\n            ret = '#ff4949';\n            break;\n          default:\n            ret = '#20a0ff';\n        }\n      }\n      return ret;\n    },\n    iconClass: function iconClass() {\n      if (this.type === 'line') {\n        return this.status === 'success' ? 'el-icon-circle-check' : 'el-icon-circle-close';\n      } else {\n        return this.status === 'success' ? 'el-icon-check' : 'el-icon-close';\n      }\n    },\n    progressTextSize: function progressTextSize() {\n      return this.type === 'line' ? 12 + this.strokeWidth * 0.4 : this.width * 0.111111 + 2;\n    }\n  }\n};\n\n/***/ }),\n\n/***/ 302:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-progress\",class:[\n    'el-progress--' + _vm.type,\n    _vm.status ? 'is-' + _vm.status : '',\n    {\n      'el-progress--without-text': !_vm.showText,\n      'el-progress--text-inside': _vm.textInside,\n    }\n  ],attrs:{\"role\":\"progressbar\",\"aria-valuenow\":_vm.percentage,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"}},[(_vm.type === 'line')?_c('div',{staticClass:\"el-progress-bar\"},[_c('div',{staticClass:\"el-progress-bar__outer\",style:({height: _vm.strokeWidth + 'px'})},[_c('div',{staticClass:\"el-progress-bar__inner\",style:(_vm.barStyle)},[(_vm.showText && _vm.textInside)?_c('div',{staticClass:\"el-progress-bar__innerText\"},[_vm._v(_vm._s(_vm.percentage)+\"%\")]):_vm._e()])])]):_c('div',{staticClass:\"el-progress-circle\",style:({height: _vm.width + 'px', width: _vm.width + 'px'})},[_c('svg',{attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('path',{staticClass:\"el-progress-circle__track\",attrs:{\"d\":_vm.trackPath,\"stroke\":\"#e5e9f2\",\"stroke-width\":_vm.relativeStrokeWidth,\"fill\":\"none\"}}),_c('path',{staticClass:\"el-progress-circle__path\",style:(_vm.circlePathStyle),attrs:{\"d\":_vm.trackPath,\"stroke-linecap\":\"round\",\"stroke\":_vm.stroke,\"stroke-width\":_vm.relativeStrokeWidth,\"fill\":\"none\"}})])]),(_vm.showText && !_vm.textInside)?_c('div',{staticClass:\"el-progress__text\",style:({fontSize: _vm.progressTextSize + 'px'})},[(!_vm.status)?[_vm._v(_vm._s(_vm.percentage)+\"%\")]:_c('i',{class:_vm.iconClass})],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/progress.js\n// module id = 221d\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n/**\n * @public\n * @param {(Function)} fn\n * @param {number} [delay=0] Unit: ms.\n * @param {boolean} [debounce=false]\n *        true: If call interval less than `delay`, only the last call works.\n *        false: If call interval less than `delay, call works on fixed rate.\n * @return {(Function)} throttled fn.\n */\n\nfunction throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    currCall = new Date().getTime();\n    scope = this;\n    args = arguments;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer); // Here we should make sure that: the `exec` SHOULD NOT be called later\n    // than a new call of `cb`, that is, preserving the command order. Consider\n    // calculating \"scale rate\" when roaming as an example. When a call of `cb`\n    // happens, either the `exec` is called dierectly, or the call is delayed.\n    // But the delayed call should never be later than next call of `cb`. Under\n    // this assurance, we can simply update view state each time `dispatchAction`\n    // triggered by user roaming, but not need to add extra code to avoid the\n    // state being \"rolled-back\".\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n  /**\n   * Clear throttle.\n   * @public\n   */\n\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n  /**\n   * Enable debounce once.\n   */\n\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\n/**\n * Create throttle method or update throttle rate.\n *\n * @example\n * ComponentView.prototype.render = function () {\n *     ...\n *     throttle.createOrUpdate(\n *         this,\n *         '_dispatchAction',\n *         this.model.get('throttle'),\n *         'fixRate'\n *     );\n * };\n * ComponentView.prototype.remove = function () {\n *     throttle.clear(this, '_dispatchAction');\n * };\n * ComponentView.prototype.dispose = function () {\n *     throttle.clear(this, '_dispatchAction');\n * };\n *\n * @public\n * @param {Object} obj\n * @param {string} fnAttr\n * @param {number} [rate]\n * @param {string} [throttleType='fixRate'] 'fixRate' or 'debounce'\n * @return {Function} throttled function.\n */\n\n\nfunction createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\n/**\n * Clear throttle. Example see throttle.createOrUpdate.\n *\n * @public\n * @param {Object} obj\n * @param {string} fnAttr\n */\n\n\nfunction clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}\n\nexports.throttle = throttle;\nexports.createOrUpdate = createOrUpdate;\nexports.clear = clear;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/throttle.js\n// module id = 242d\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(option) {\n  if (!option || !zrUtil.isArray(option.series)) {\n    return;\n  } // Translate 'k' to 'candlestick'.\n\n\n  zrUtil.each(option.series, function (seriesItem) {\n    if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n      seriesItem.type = 'candlestick';\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/preprocessor.js\n// module id = 2605\n// module chunks = 0","var easingFuncs = require(\"./easing\");\n\n/**\n * 鍔ㄧ敾涓绘帶鍒跺櫒\n * @config target 鍔ㄧ敾瀵硅薄锛屽彲浠ユ槸鏁扮粍锛屽鏋滄槸鏁扮粍鐨勮瘽浼氭壒閲忓垎鍙憃nframe绛変簨浠禱n * @config life(1000) 鍔ㄧ敾鏃堕暱\n * @config delay(0) 鍔ㄧ敾寤惰繜鏃堕棿\n * @config loop(true)\n * @config gap(0) 寰幆鐨勯棿闅旀椂闂碶n * @config onframe\n * @config easing(optional)\n * @config ondestroy(optional)\n * @config onrestart(optional)\n *\n * TODO pause\n */\nfunction Clip(options) {\n  this._target = options.target; // 鐢熷懡鍛ㄦ湡\n\n  this._life = options.life || 1000; // 寤舵椂\n\n  this._delay = options.delay || 0; // 寮�濮嬫椂闂碶n  // this._startTime = new Date().getTime() + this._delay;// 鍗曚綅姣\n\n  this._initialized = false; // 鏄惁寰幆\n\n  this.loop = options.loop == null ? false : options.loop;\n  this.gap = options.gap || 0;\n  this.easing = options.easing || 'Linear';\n  this.onframe = options.onframe;\n  this.ondestroy = options.ondestroy;\n  this.onrestart = options.onrestart;\n  this._pausedTime = 0;\n  this._paused = false;\n}\n\nClip.prototype = {\n  constructor: Clip,\n  step: function (globalTime, deltaTime) {\n    // Set startTime on first step, or _startTime may has milleseconds different between clips\n    // PENDING\n    if (!this._initialized) {\n      this._startTime = globalTime + this._delay;\n      this._initialized = true;\n    }\n\n    if (this._paused) {\n      this._pausedTime += deltaTime;\n      return;\n    }\n\n    var percent = (globalTime - this._startTime - this._pausedTime) / this._life; // 杩樻病寮�濮媆n\n    if (percent < 0) {\n      return;\n    }\n\n    percent = Math.min(percent, 1);\n    var easing = this.easing;\n    var easingFunc = typeof easing == 'string' ? easingFuncs[easing] : easing;\n    var schedule = typeof easingFunc === 'function' ? easingFunc(percent) : percent;\n    this.fire('frame', schedule); // 缁撴潫\n\n    if (percent == 1) {\n      if (this.loop) {\n        this.restart(globalTime); // 閲嶆柊寮�濮嬪懆鏈焅n        // 鎶涘嚭鑰屼笉鏄洿鎺ヨ皟鐢ㄤ簨浠剁洿鍒� stage.update 鍚庡啀缁熶竴璋冪敤杩欎簺浜嬩欢\n\n        return 'restart';\n      } // 鍔ㄧ敾瀹屾垚灏嗚繖涓帶鍒跺櫒鏍囪瘑涓哄緟鍒犻櫎\n      // 鍦ˋnimation.update涓繘琛屾壒閲忓垹闄n\n\n      this._needsRemove = true;\n      return 'destroy';\n    }\n\n    return null;\n  },\n  restart: function (globalTime) {\n    var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n    this._startTime = globalTime - remainder + this.gap;\n    this._pausedTime = 0;\n    this._needsRemove = false;\n  },\n  fire: function (eventType, arg) {\n    eventType = 'on' + eventType;\n\n    if (this[eventType]) {\n      this[eventType](this._target, arg);\n    }\n  },\n  pause: function () {\n    this._paused = true;\n  },\n  resume: function () {\n    this._paused = false;\n  }\n};\nvar _default = Clip;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/animation/Clip.js\n// module id = 276n\n// module chunks = 0","var Path = require(\"zrender/lib/graphic/Path\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = Path.extend({\n  type: 'echartsGaugePointer',\n  shape: {\n    angle: 0,\n    width: 10,\n    r: 10,\n    x: 0,\n    y: 0\n  },\n  buildPath: function (ctx, shape) {\n    var mathCos = Math.cos;\n    var mathSin = Math.sin;\n    var r = shape.r;\n    var width = shape.width;\n    var angle = shape.angle;\n    var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n    var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n    angle = shape.angle - Math.PI / 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n    ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n    ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n    ctx.lineTo(x, y);\n    return;\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/gauge/PointerPath.js\n// module id = 2L83\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol/iterator.js\n// module id = 2LoE\n// module chunks = 0","var Path = require(\"../Path\");\n\n/**\n * 鍦嗗姬\n * @module zrender/graphic/shape/Arc\n */\nvar _default = Path.extend({\n  type: 'arc',\n  shape: {\n    cx: 0,\n    cy: 0,\n    r: 0,\n    startAngle: 0,\n    endAngle: Math.PI * 2,\n    clockwise: true\n  },\n  style: {\n    stroke: '#000',\n    fill: null\n  },\n  buildPath: function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r = Math.max(shape.r, 0);\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitX = Math.cos(startAngle);\n    var unitY = Math.sin(startAngle);\n    ctx.moveTo(unitX * r + x, unitY * r + y);\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Arc.js\n// module id = 2Qgk\n// module chunks = 0","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-create.js\n// module id = 2SsR\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    var msie = /(msie|trident)/i.test(navigator.userAgent);\n    var urlParsingNode = document.createElement('a');\n    var originURL;\n\n    /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      var href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n                  urlParsingNode.pathname :\n                  '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/isURLSameOrigin.js\n// module id = 2WZl\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {Object} opt {labelInside}\n * @return {Object} {\n *  position, rotation, labelDirection, labelOffset,\n *  tickDirection, labelRotate, z2\n * }\n */\nfunction layout(axisModel, opt) {\n  opt = opt || {};\n  var single = axisModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var axisPosition = axis.position;\n  var orient = axis.orient;\n  var rect = single.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var positionMap = {\n    horizontal: {\n      top: rectBound[2],\n      bottom: rectBound[3]\n    },\n    vertical: {\n      left: rectBound[0],\n      right: rectBound[1]\n    }\n  };\n  layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n  var r = {\n    horizontal: 0,\n    vertical: 1\n  };\n  layout.rotation = Math.PI / 2 * r[orient];\n  var directionMap = {\n    top: -1,\n    bottom: 1,\n    right: 1,\n    left: -1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n  if (axisModel.get('axisTick.inside')) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get('axisLabel.inside'))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotation = opt.rotate;\n  labelRotation == null && (labelRotation = axisModel.get('axisLabel.rotate'));\n  layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n  layout.z2 = 1;\n  return layout;\n}\n\nexports.layout = layout;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/single/singleAxisHelper.js\n// module id = 2dmG\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar createHashMap = _util.createHashMap;\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.parallel',\n  dependencies: ['parallel'],\n  visualColorAccessPath: 'lineStyle.color',\n  getInitialData: function (option, ecModel) {\n    var source = this.getSource();\n    setEncodeAndDimensions(source, this);\n    return createListFromArray(source, this);\n  },\n\n  /**\n   * User can get data raw indices on 'axisAreaSelected' event received.\n   *\n   * @public\n   * @param {string} activeState 'active' or 'inactive' or 'normal'\n   * @return {Array.<number>} Raw indices\n   */\n  getRawIndicesByActiveState: function (activeState) {\n    var coordSys = this.coordinateSystem;\n    var data = this.getData();\n    var indices = [];\n    coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n      if (activeState === theActiveState) {\n        indices.push(data.getRawIndex(dataIndex));\n      }\n    });\n    return indices;\n  },\n  defaultOption: {\n    zlevel: 0,\n    // 涓�绾у眰鍙燶n    z: 2,\n    // 浜岀骇灞傚彔\n    coordinateSystem: 'parallel',\n    parallelIndex: 0,\n    label: {\n      show: false\n    },\n    inactiveOpacity: 0.05,\n    activeOpacity: 1,\n    lineStyle: {\n      width: 1,\n      opacity: 0.45,\n      type: 'solid'\n    },\n    emphasis: {\n      label: {\n        show: false\n      }\n    },\n    progressive: 500,\n    smooth: false,\n    // true | false | number\n    animationEasing: 'linear'\n  }\n});\n\nfunction setEncodeAndDimensions(source, seriesModel) {\n  // The mapping of parallelAxis dimension to data dimension can\n  // be specified in parallelAxis.option.dim. For example, if\n  // parallelAxis.option.dim is 'dim3', it mapping to the third\n  // dimension of data. But `data.encode` has higher priority.\n  // Moreover, parallelModel.dimension should not be regarded as data\n  // dimensions. Consider dimensions = ['dim4', 'dim2', 'dim6'];\n  if (source.encodeDefine) {\n    return;\n  }\n\n  var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n  if (!parallelModel) {\n    return;\n  }\n\n  var encodeDefine = source.encodeDefine = createHashMap();\n  each(parallelModel.dimensions, function (axisDim) {\n    var dataDimIndex = convertDimNameToNumber(axisDim);\n    encodeDefine.set(axisDim, dataDimIndex);\n  });\n}\n\nfunction convertDimNameToNumber(dimName) {\n  return +dimName.replace('dim', '');\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/parallel/ParallelSeries.js\n// module id = 2fJA\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar echartsAPIList = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getModel', 'getOption', 'getViewOfComponentModel', 'getViewOfSeriesModel']; // And `getCoordinateSystems` and `getComponentByElement` will be injected in echarts.js\n\nfunction ExtensionAPI(chartInstance) {\n  zrUtil.each(echartsAPIList, function (name) {\n    this[name] = zrUtil.bind(chartInstance[name], chartInstance);\n  }, this);\n}\n\nvar _default = ExtensionAPI;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/ExtensionAPI.js\n// module id = 2pJC\n// module chunks = 0","var echarts = require(\"echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n  type: 'bmap',\n  render: function (bMapModel, ecModel, api) {\n    var rendering = true;\n    var bmap = bMapModel.getBMap();\n    var viewportRoot = api.getZr().painter.getViewportRoot();\n    var coordSys = bMapModel.coordinateSystem;\n\n    var moveHandler = function (type, target) {\n      if (rendering) {\n        return;\n      }\n\n      var offsetEl = viewportRoot.parentNode.parentNode.parentNode;\n      var mapOffset = [-parseInt(offsetEl.style.left, 10) || 0, -parseInt(offsetEl.style.top, 10) || 0];\n      viewportRoot.style.left = mapOffset[0] + 'px';\n      viewportRoot.style.top = mapOffset[1] + 'px';\n      coordSys.setMapOffset(mapOffset);\n      bMapModel.__mapOffset = mapOffset;\n      api.dispatchAction({\n        type: 'bmapRoam'\n      });\n    };\n\n    function zoomEndHandler() {\n      if (rendering) {\n        return;\n      }\n\n      api.dispatchAction({\n        type: 'bmapRoam'\n      });\n    }\n\n    bmap.removeEventListener('moving', this._oldMoveHandler); // FIXME\n    // Moveend may be triggered by centerAndZoom method when creating coordSys next time\n    // bmap.removeEventListener('moveend', this._oldMoveHandler);\n\n    bmap.removeEventListener('zoomend', this._oldZoomEndHandler);\n    bmap.addEventListener('moving', moveHandler); // bmap.addEventListener('moveend', moveHandler);\n\n    bmap.addEventListener('zoomend', zoomEndHandler);\n    this._oldMoveHandler = moveHandler;\n    this._oldZoomEndHandler = zoomEndHandler;\n    var roam = bMapModel.get('roam');\n\n    if (roam && roam !== 'scale') {\n      bmap.enableDragging();\n    } else {\n      bmap.disableDragging();\n    }\n\n    if (roam && roam !== 'move') {\n      bmap.enableScrollWheelZoom();\n      bmap.enableDoubleClickZoom();\n      bmap.enablePinchToZoom();\n    } else {\n      bmap.disableScrollWheelZoom();\n      bmap.disableDoubleClickZoom();\n      bmap.disablePinchToZoom();\n    }\n\n    var originalStyle = bMapModel.__mapStyle;\n    var newMapStyle = bMapModel.get('mapStyle') || {}; // FIXME, Not use JSON methods\n\n    var mapStyleStr = JSON.stringify(newMapStyle);\n\n    if (JSON.stringify(originalStyle) !== mapStyleStr) {\n      // FIXME May have blank tile when dragging if setMapStyle\n      if (Object.keys(newMapStyle).length) {\n        bmap.setMapStyle(newMapStyle);\n      }\n\n      bMapModel.__mapStyle = JSON.parse(mapStyleStr);\n    }\n\n    rendering = false;\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/extension/bmap/BMapView.js\n// module id = 2vAB\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar isTypedArray = _util.isTypedArray;\nvar extend = _util.extend;\nvar assert = _util.assert;\nvar each = _util.each;\nvar isObject = _util.isObject;\n\nvar _model = require(\"../../util/model\");\n\nvar getDataItemValue = _model.getDataItemValue;\nvar isDataItemOption = _model.isDataItemOption;\n\nvar _number = require(\"../../util/number\");\n\nvar parseDate = _number.parseDate;\n\nvar Source = require(\"../Source\");\n\nvar _sourceType = require(\"./sourceType\");\n\nvar SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY;\nvar SOURCE_FORMAT_ARRAY_ROWS = _sourceType.SOURCE_FORMAT_ARRAY_ROWS;\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\nvar SOURCE_FORMAT_OBJECT_ROWS = _sourceType.SOURCE_FORMAT_OBJECT_ROWS;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO\n// ??? refactor? check the outer usage of data provider.\n// merge with defaultDimValueGetter?\n\n/**\n * If normal array used, mutable chunk size is supported.\n * If typed array used, chunk size must be fixed.\n */\nfunction DefaultDataProvider(source, dimSize) {\n  if (!Source.isInstance(source)) {\n    source = Source.seriesDataToSource(source);\n  }\n\n  this._source = source;\n  var data = this._data = source.data;\n  var sourceFormat = source.sourceFormat; // Typed array. TODO IE10+?\n\n  if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    this._offset = 0;\n    this._dimSize = dimSize;\n    this._data = data;\n  }\n\n  var methods = providerMethods[sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + source.seriesLayoutBy : sourceFormat];\n  extend(this, methods);\n}\n\nvar providerProto = DefaultDataProvider.prototype; // If data is pure without style configuration\n\nproviderProto.pure = false; // If data is persistent and will not be released after use.\n\nproviderProto.persistent = true; // ???! FIXME legacy data provider do not has method getSource\n\nproviderProto.getSource = function () {\n  return this._source;\n};\n\nvar providerMethods = {\n  'arrayRows_column': {\n    pure: true,\n    count: function () {\n      return Math.max(0, this._data.length - this._source.startIndex);\n    },\n    getItem: function (idx) {\n      return this._data[idx + this._source.startIndex];\n    },\n    appendData: appendDataSimply\n  },\n  'arrayRows_row': {\n    pure: true,\n    count: function () {\n      var row = this._data[0];\n      return row ? Math.max(0, row.length - this._source.startIndex) : 0;\n    },\n    getItem: function (idx) {\n      idx += this._source.startIndex;\n      var item = [];\n      var data = this._data;\n\n      for (var i = 0; i < data.length; i++) {\n        var row = data[i];\n        item.push(row ? row[idx] : null);\n      }\n\n      return item;\n    },\n    appendData: function () {\n      throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n    }\n  },\n  'objectRows': {\n    pure: true,\n    count: countSimply,\n    getItem: getItemSimply,\n    appendData: appendDataSimply\n  },\n  'keyedColumns': {\n    pure: true,\n    count: function () {\n      var dimName = this._source.dimensionsDefine[0].name;\n      var col = this._data[dimName];\n      return col ? col.length : 0;\n    },\n    getItem: function (idx) {\n      var item = [];\n      var dims = this._source.dimensionsDefine;\n\n      for (var i = 0; i < dims.length; i++) {\n        var col = this._data[dims[i].name];\n        item.push(col ? col[idx] : null);\n      }\n\n      return item;\n    },\n    appendData: function (newData) {\n      var data = this._data;\n      each(newData, function (newCol, key) {\n        var oldCol = data[key] || (data[key] = []);\n\n        for (var i = 0; i < (newCol || []).length; i++) {\n          oldCol.push(newCol[i]);\n        }\n      });\n    }\n  },\n  'original': {\n    count: countSimply,\n    getItem: getItemSimply,\n    appendData: appendDataSimply\n  },\n  'typedArray': {\n    persistent: false,\n    pure: true,\n    count: function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    },\n    getItem: function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var offset = this._dimSize * idx;\n\n      for (var i = 0; i < this._dimSize; i++) {\n        out[i] = this._data[offset + i];\n      }\n\n      return out;\n    },\n    appendData: function (newData) {\n      this._data = newData;\n    },\n    // Clean self if data is already used.\n    clean: function () {\n      // PENDING\n      this._offset += this.count();\n      this._data = null;\n    }\n  }\n};\n\nfunction countSimply() {\n  return this._data.length;\n}\n\nfunction getItemSimply(idx) {\n  return this._data[idx];\n}\n\nfunction appendDataSimply(newData) {\n  for (var i = 0; i < newData.length; i++) {\n    this._data.push(newData[i]);\n  }\n}\n\nvar rawValueGetters = {\n  arrayRows: getRawValueSimply,\n  objectRows: function (dataItem, dataIndex, dimIndex, dimName) {\n    return dimIndex != null ? dataItem[dimName] : dataItem;\n  },\n  keyedColumns: getRawValueSimply,\n  original: function (dataItem, dataIndex, dimIndex, dimName) {\n    // FIXME\n    // In some case (markpoint in geo (geo-map.html)), dataItem\n    // is {coord: [...]}\n    var value = getDataItemValue(dataItem);\n    return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n  },\n  typedArray: getRawValueSimply\n};\n\nfunction getRawValueSimply(dataItem, dataIndex, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n}\n\nvar defaultDimValueGetters = {\n  arrayRows: getDimValueSimply,\n  objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n    return converDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n  },\n  keyedColumns: getDimValueSimply,\n  original: function (dataItem, dimName, dataIndex, dimIndex) {\n    // Performance sensitive, do not use modelUtil.getDataItemValue.\n    // If dataItem is an plain object with no value field, the var `value`\n    // will be assigned with the object, but it will be tread correctly\n    // in the `convertDataValue`.\n    var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value); // If any dataItem is like { value: 10 }\n\n    if (!this._rawData.pure && isDataItemOption(dataItem)) {\n      this.hasItemOption = true;\n    }\n\n    return converDataValue(value instanceof Array ? value[dimIndex] // If value is a single number or something else not array.\n    : value, this._dimensionInfos[dimName]);\n  },\n  typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n    return dataItem[dimIndex];\n  }\n};\n\nfunction getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n  return converDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n}\n/**\n * This helper method convert value in data.\n * @param {string|number|Date} value\n * @param {Object|string} [dimInfo] If string (like 'x'), dimType defaults 'number'.\n *        If \"dimInfo.ordinalParseAndSave\", ordinal value can be parsed.\n */\n\n\nfunction converDataValue(value, dimInfo) {\n  // Performance sensitive.\n  var dimType = dimInfo && dimInfo.type;\n\n  if (dimType === 'ordinal') {\n    // If given value is a category string\n    var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' // spead up when using timestamp\n  && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  } // dimType defaults 'number'.\n  // If dimType is not ordinal and value is null or undefined or NaN or '-',\n  // parse to NaN.\n\n\n  return value == null || value === '' ? NaN // If string (like '-'), using '+' parse to NaN\n  // If object, also parse to NaN\n  : +value;\n} // ??? FIXME can these logic be more neat: getRawValue, getRawDataItem,\n// Consider persistent.\n// Caution: why use raw value to display on label or tooltip?\n// A reason is to avoid format. For example time value we do not know\n// how to format is expected. More over, if stack is used, calculated\n// value may be 0.91000000001, which have brings trouble to display.\n// TODO: consider how to treat null/undefined/NaN when display?\n\n/**\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @param {string|number} [dim] dimName or dimIndex\n * @return {Array.<number>|string|number} can be null/undefined.\n */\n\n\nfunction retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  } // Consider data may be not persistent.\n\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return rawValueGetters[sourceFormat](dataItem, dataIndex, dimIndex, dimName);\n}\n/**\n * Compatible with some cases (in pie, map) like:\n * data: [{name: 'xx', value: 5, selected: true}, ...]\n * where only sourceFormat is 'original' and 'objectRows' supported.\n *\n * ??? TODO\n * Supported detail options in data item when using 'arrayRows'.\n *\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @param {string} attr like 'selected'\n */\n\n\nfunction retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}\n\nexports.DefaultDataProvider = DefaultDataProvider;\nexports.defaultDimValueGetters = defaultDimValueGetters;\nexports.retrieveRawValue = retrieveRawValue;\nexports.retrieveRawAttr = retrieveRawAttr;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/helper/dataProvider.js\n// module id = 2xPE\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar contrastColor = '#eee';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    axisTick: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    axisLabel: {\n      textStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        type: 'dashed',\n        color: '#aaa'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: contrastColor\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#dd6b66', '#759aa0', '#e69d87', '#8dc1a9', '#ea7e53', '#eedd78', '#73a373', '#73b9bc', '#7289ab', '#91ca8c', '#f49f42'];\nvar theme = {\n  color: colorPalette,\n  backgroundColor: '#333',\n  tooltip: {\n    axisPointer: {\n      lineStyle: {\n        color: contrastColor\n      },\n      crossStyle: {\n        color: contrastColor\n      }\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      normal: {\n        borderColor: contrastColor\n      }\n    }\n  },\n  dataZoom: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    itemStyle: {\n      normal: {\n        color: colorPalette[1]\n      }\n    },\n    label: {\n      normal: {\n        textStyle: {\n          color: contrastColor\n        }\n      }\n    },\n    controlStyle: {\n      normal: {\n        color: contrastColor,\n        borderColor: contrastColor\n      }\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      textStyle: {\n        color: contrastColor\n      }\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      normal: {\n        color: '#FD1050',\n        color0: '#0CF49B',\n        borderColor: '#FD1050',\n        borderColor0: '#0CF49B'\n      }\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nvar _default = theme;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/theme/dark.js\n// module id = 30rx\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar SymbolClz = require(\"./Symbol\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar isObject = _util.isObject;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/chart/helper/SymbolDraw\n */\n\n/**\n * @constructor\n * @alias module:echarts/chart/helper/SymbolDraw\n * @param {module:zrender/graphic/Group} [symbolCtor]\n */\nfunction SymbolDraw(symbolCtor) {\n  this.group = new graphic.Group();\n  this._symbolCtor = symbolCtor || SymbolClz;\n}\n\nvar symbolDrawProto = SymbolDraw.prototype;\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) // We do not set clipShape on group, because it will cut part of\n  // the symbol element shape. We use the same clip shape here as\n  // the line clip.\n  && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n/**\n * Update symbols draw by new data\n * @param {module:echarts/data/List} data\n * @param {Object} [opt] Or isIgnore\n * @param {Function} [opt.isIgnore]\n * @param {Object} [opt.clipShape]\n */\n\n\nsymbolDrawProto.updateData = function (data, opt) {\n  opt = normalizeUpdateOpt(opt);\n  var group = this.group;\n  var seriesModel = data.hostModel;\n  var oldData = this._data;\n  var SymbolCtor = this._symbolCtor;\n  var seriesScope = makeSeriesScope(data); // There is no oldLineData only when first rendering or switching from\n  // stream mode to normal mode, where previous elements should be removed.\n\n  if (!oldData) {\n    group.removeAll();\n  }\n\n  data.diff(oldData).add(function (newIdx) {\n    var point = data.getItemLayout(newIdx);\n\n    if (symbolNeedsDraw(data, point, newIdx, opt)) {\n      var symbolEl = new SymbolCtor(data, newIdx, seriesScope);\n      symbolEl.attr('position', point);\n      data.setItemGraphicEl(newIdx, symbolEl);\n      group.add(symbolEl);\n    }\n  }).update(function (newIdx, oldIdx) {\n    var symbolEl = oldData.getItemGraphicEl(oldIdx);\n    var point = data.getItemLayout(newIdx);\n\n    if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n      group.remove(symbolEl);\n      return;\n    }\n\n    if (!symbolEl) {\n      symbolEl = new SymbolCtor(data, newIdx);\n      symbolEl.attr('position', point);\n    } else {\n      symbolEl.updateData(data, newIdx, seriesScope);\n      graphic.updateProps(symbolEl, {\n        position: point\n      }, seriesModel);\n    } // Add back\n\n\n    group.add(symbolEl);\n    data.setItemGraphicEl(newIdx, symbolEl);\n  }).remove(function (oldIdx) {\n    var el = oldData.getItemGraphicEl(oldIdx);\n    el && el.fadeOut(function () {\n      group.remove(el);\n    });\n  }).execute();\n  this._data = data;\n};\n\nsymbolDrawProto.isPersistent = function () {\n  return true;\n};\n\nsymbolDrawProto.updateLayout = function () {\n  var data = this._data;\n\n  if (data) {\n    // Not use animation\n    data.eachItemGraphicEl(function (el, idx) {\n      var point = data.getItemLayout(idx);\n      el.attr('position', point);\n    });\n  }\n};\n\nsymbolDrawProto.incrementalPrepareUpdate = function (data) {\n  this._seriesScope = makeSeriesScope(data);\n  this._data = null;\n  this.group.removeAll();\n};\n/**\n * Update symbols draw by new data\n * @param {module:echarts/data/List} data\n * @param {Object} [opt] Or isIgnore\n * @param {Function} [opt.isIgnore]\n * @param {Object} [opt.clipShape]\n */\n\n\nsymbolDrawProto.incrementalUpdate = function (taskParams, data, opt) {\n  opt = normalizeUpdateOpt(opt);\n\n  function updateIncrementalAndHover(el) {\n    if (!el.isGroup) {\n      el.incremental = el.useHoverLayer = true;\n    }\n  }\n\n  for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n    var point = data.getItemLayout(idx);\n\n    if (symbolNeedsDraw(data, point, idx, opt)) {\n      var el = new this._symbolCtor(data, idx, this._seriesScope);\n      el.traverse(updateIncrementalAndHover);\n      el.attr('position', point);\n      this.group.add(el);\n      data.setItemGraphicEl(idx, el);\n    }\n  }\n};\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nsymbolDrawProto.remove = function (enableAnimation) {\n  var group = this.group;\n  var data = this._data; // Incremental model do not have this._data.\n\n  if (data && enableAnimation) {\n    data.eachItemGraphicEl(function (el) {\n      el.fadeOut(function () {\n        group.remove(el);\n      });\n    });\n  } else {\n    group.removeAll();\n  }\n};\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  return {\n    itemStyle: seriesModel.getModel('itemStyle').getItemStyle(['color']),\n    hoverItemStyle: seriesModel.getModel('emphasis.itemStyle').getItemStyle(),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverAnimation: seriesModel.get('hoverAnimation'),\n    labelModel: seriesModel.getModel('label'),\n    hoverLabelModel: seriesModel.getModel('emphasis.label'),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar _default = SymbolDraw;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/SymbolDraw.js\n// module id = 3LBH\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/json/stringify.js\n// module id = 3cXf\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar OrdinalScale = require(\"../scale/Ordinal\");\n\nvar IntervalScale = require(\"../scale/Interval\");\n\nvar Scale = require(\"../scale/Scale\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar _barGrid = require(\"../layout/barGrid\");\n\nvar prepareLayoutBarSeries = _barGrid.prepareLayoutBarSeries;\nvar makeColumnLayout = _barGrid.makeColumnLayout;\nvar retrieveColumnLayout = _barGrid.retrieveColumnLayout;\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nrequire(\"../scale/Time\");\n\nrequire(\"../scale/Log\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Get axis scale extent before niced.\n * Item of returned array can only be number (including Infinity and NaN).\n */\nfunction getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var min = model.getMin();\n  var max = model.getMax();\n  var fixMin = min != null;\n  var fixMax = max != null;\n  var originalExtent = scale.getExtent();\n  var axisDataLen;\n  var boundaryGap;\n  var span;\n\n  if (scaleType === 'ordinal') {\n    axisDataLen = model.getCategories().length;\n  } else {\n    boundaryGap = model.get('boundaryGap');\n\n    if (!zrUtil.isArray(boundaryGap)) {\n      boundaryGap = [boundaryGap || 0, boundaryGap || 0];\n    }\n\n    if (typeof boundaryGap[0] === 'boolean') {\n      boundaryGap = [0, 0];\n    }\n\n    boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], 1);\n    boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], 1);\n    span = originalExtent[1] - originalExtent[0] || Math.abs(originalExtent[0]);\n  } // Notice: When min/max is not set (that is, when there are null/undefined,\n  // which is the most common case), these cases should be ensured:\n  // (1) For 'ordinal', show all axis.data.\n  // (2) For others:\n  //      + `boundaryGap` is applied (if min/max set, boundaryGap is\n  //      disabled).\n  //      + If `needCrossZero`, min/max should be zero, otherwise, min/max should\n  //      be the result that originalExtent enlarged by boundaryGap.\n  // (3) If no data, it should be ensured that `scale.setBlank` is set.\n  // FIXME\n  // (1) When min/max is 'dataMin' or 'dataMax', should boundaryGap be able to used?\n  // (2) When `needCrossZero` and all data is positive/negative, should it be ensured\n  // that the results processed by boundaryGap are positive/negative?\n\n\n  if (min == null) {\n    min = scaleType === 'ordinal' ? axisDataLen ? 0 : NaN : originalExtent[0] - boundaryGap[0] * span;\n  }\n\n  if (max == null) {\n    max = scaleType === 'ordinal' ? axisDataLen ? axisDataLen - 1 : NaN : originalExtent[1] + boundaryGap[1] * span;\n  }\n\n  if (min === 'dataMin') {\n    min = originalExtent[0];\n  } else if (typeof min === 'function') {\n    min = min({\n      min: originalExtent[0],\n      max: originalExtent[1]\n    });\n  }\n\n  if (max === 'dataMax') {\n    max = originalExtent[1];\n  } else if (typeof max === 'function') {\n    max = max({\n      min: originalExtent[0],\n      max: originalExtent[1]\n    });\n  }\n\n  (min == null || !isFinite(min)) && (min = NaN);\n  (max == null || !isFinite(max)) && (max = NaN);\n  scale.setBlank(zrUtil.eqNaN(min) || zrUtil.eqNaN(max) || scaleType === 'ordinal' && !scale.getOrdinalMeta().categories.length); // Evaluate if axis needs cross zero\n\n  if (model.getNeedCrossZero()) {\n    // Axis is over zero and min is not set\n    if (min > 0 && max > 0 && !fixMin) {\n      min = 0;\n    } // Axis is under zero and max is not set\n\n\n    if (min < 0 && max < 0 && !fixMax) {\n      max = 0;\n    }\n  } // If bars are placed on a base axis of type time or interval account for axis boundary overflow and current axis\n  // is base axis\n  // FIXME\n  // (1) Consider support value axis, where below zero and axis `onZero` should be handled properly.\n  // (2) Refactor the logic with `barGrid`. Is it not need to `makeBarWidthAndOffsetInfo` twice with different extent?\n  //     Should not depend on series type `bar`?\n  // (3) Fix that might overlap when using dataZoom.\n  // (4) Consider other chart types using `barGrid`?\n  // See #6728, #4862, `test/bar-overflow-time-plot.html`\n\n\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time'\n  /*|| scaleType === 'interval' */\n  ) {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries |= seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries) {\n      // Calculate placement of bars on axis\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels); // Adjust axis min and max to account for overflow\n\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return [min, max];\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  // Get Axis Length\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0]; // Get bars on current base axis and calculate min and max overflow\n\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow; // Calulate required buffer based on old range and overflow\n\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nfunction niceScaleExtent(scale, model) {\n  var extent = getScaleExtent(scale, model);\n  var fixMin = model.getMin() != null;\n  var fixMax = model.getMax() != null;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale.type === 'log') {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: fixMin,\n    fixMax: fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  }); // If some one specified the min, max. And the default calculated interval\n  // is not good enough. He can specify the interval. It is often appeared\n  // in angle axis with angle 0 - 360. Interval calculated in interval scale is hard\n  // to be 60.\n  // FIXME\n\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\n/**\n * @param {module:echarts/model/Model} model\n * @param {string} [axisType] Default retrieve from model.type\n * @return {module:echarts/scale/*}\n */\n\n\nfunction createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      // Buildin scale\n      case 'category':\n        return new OrdinalScale(model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(), [Infinity, -Infinity]);\n\n      case 'value':\n        return new IntervalScale();\n      // Extended scale, like time and log\n\n      default:\n        return (Scale.getClass(axisType) || IntervalScale).create(model);\n    }\n  }\n}\n/**\n * Check if the axis corss 0\n */\n\n\nfunction ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\n/**\n * @param {module:echarts/coord/Axis} axis\n * @return {Function} Label formatter function.\n *         param: {number} tickValue,\n *         param: {number} idx, the index in all ticks.\n *                         If category axis, this param is not requied.\n *         return: {string} label string.\n */\n\n\nfunction makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (typeof labelFormatter === 'string') {\n    labelFormatter = function (tpl) {\n      return function (val) {\n        return tpl.replace('{value}', val != null ? val : '');\n      };\n    }(labelFormatter); // Consider empty array\n\n\n    return labelFormatter;\n  } else if (typeof labelFormatter === 'function') {\n    return function (tickValue, idx) {\n      // The original intention of `idx` is \"the index of the tick in all ticks\".\n      // But the previous implementation of category axis do not consider the\n      // `axisLabel.interval`, which cause that, for example, the `interval` is\n      // `1`, then the ticks \"name5\", \"name7\", \"name9\" are displayed, where the\n      // corresponding `idx` are `0`, `2`, `4`, but not `0`, `1`, `2`. So we keep\n      // the definition here for back compatibility.\n      if (categoryTickStart != null) {\n        idx = tickValue - categoryTickStart;\n      }\n\n      return labelFormatter(getAxisRawValue(axis, tickValue), idx);\n    };\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\n\nfunction getAxisRawValue(axis, value) {\n  // In category axis with data zoom, tick is not the original\n  // index of axis.data. So tick should not be exposed to user\n  // in category axis.\n  return axis.type === 'category' ? axis.scale.getLabel(value) : value;\n}\n/**\n * @param {module:echarts/coord/Axis} axis\n * @return {module:zrender/core/BoundingRect} Be null/undefined if no labels.\n */\n\n\nfunction estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get('axisLabel.show') || scale.isBlank()) {\n    return;\n  }\n\n  var isCategory = axis.type === 'category';\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent(); // Optimize for large category data, avoid call `getTicks()`.\n\n  if (isCategory) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1; // Simple optimization for large amount of labels\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tickValue = realNumberScaleTicks ? realNumberScaleTicks[i] : categoryScaleExtent[0] + i;\n    var label = labelFormatter(tickValue);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var boundingBox = textRect.plain();\n  var beforeWidth = boundingBox.width;\n  var beforeHeight = boundingBox.height;\n  var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);\n  var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);\n  var rotatedRect = new BoundingRect(boundingBox.x, boundingBox.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexports.getScaleExtent = getScaleExtent;\nexports.niceScaleExtent = niceScaleExtent;\nexports.createScaleByModel = createScaleByModel;\nexports.ifAxisCrossZero = ifAxisCrossZero;\nexports.makeLabelFormatter = makeLabelFormatter;\nexports.getAxisRawValue = getAxisRawValue;\nexports.estimateLabelUnionRect = estimateLabelUnionRect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/axisHelper.js\n// module id = 3m5Y\n// module chunks = 0","var _config = require(\"./config\");\n\nvar devicePixelRatio = _config.devicePixelRatio;\n\nvar util = require(\"./core/util\");\n\nvar log = require(\"./core/log\");\n\nvar BoundingRect = require(\"./core/BoundingRect\");\n\nvar timsort = require(\"./core/timsort\");\n\nvar Layer = require(\"./Layer\");\n\nvar requestAnimationFrame = require(\"./animation/requestAnimationFrame\");\n\nvar Image = require(\"./graphic/Image\");\n\nvar env = require(\"./core/env\");\n\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\n\nfunction parseInt10(val) {\n  return parseInt(val, 10);\n}\n\nfunction isLayerValid(layer) {\n  if (!layer) {\n    return false;\n  }\n\n  if (layer.__builtin__) {\n    return true;\n  }\n\n  if (typeof layer.resize !== 'function' || typeof layer.refresh !== 'function') {\n    return false;\n  }\n\n  return true;\n}\n\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\n\nfunction isDisplayableCulled(el, width, height) {\n  tmpRect.copy(el.getBoundingRect());\n\n  if (el.transform) {\n    tmpRect.applyTransform(el.transform);\n  }\n\n  viewRect.width = width;\n  viewRect.height = height;\n  return !tmpRect.intersect(viewRect);\n}\n\nfunction isClipPathChanged(clipPaths, prevClipPaths) {\n  if (clipPaths == prevClipPaths) {\n    // Can both be null or undefined\n    return false;\n  }\n\n  if (!clipPaths || !prevClipPaths || clipPaths.length !== prevClipPaths.length) {\n    return true;\n  }\n\n  for (var i = 0; i < clipPaths.length; i++) {\n    if (clipPaths[i] !== prevClipPaths[i]) {\n      return true;\n    }\n  }\n}\n\nfunction doClip(clipPaths, ctx) {\n  for (var i = 0; i < clipPaths.length; i++) {\n    var clipPath = clipPaths[i];\n    clipPath.setTransform(ctx);\n    ctx.beginPath();\n    clipPath.buildPath(ctx, clipPath.shape);\n    ctx.clip(); // Transform back\n\n    clipPath.restoreTransform(ctx);\n  }\n}\n\nfunction createRoot(width, height) {\n  var domRoot = document.createElement('div'); // domRoot.onselectstart = returnFalse; // 閬垮厤椤甸潰閫変腑鐨勫按灏琝n\n  domRoot.style.cssText = ['position:relative', 'overflow:hidden', 'width:' + width + 'px', 'height:' + height + 'px', 'padding:0', 'margin:0', 'border-width:0'].join(';') + ';';\n  return domRoot;\n}\n/**\n * @alias module:zrender/Painter\n * @constructor\n * @param {HTMLElement} root 缁樺浘瀹瑰櫒\n * @param {module:zrender/Storage} storage\n * @param {Object} opts\n */\n\n\nvar Painter = function (root, storage, opts) {\n  this.type = 'canvas'; // In node environment using node-canvas\n\n  var singleCanvas = !root.nodeName // In node ?\n  || root.nodeName.toUpperCase() === 'CANVAS';\n  this._opts = opts = util.extend({}, opts || {});\n  /**\n   * @type {number}\n   */\n\n  this.dpr = opts.devicePixelRatio || devicePixelRatio;\n  /**\n   * @type {boolean}\n   * @private\n   */\n\n  this._singleCanvas = singleCanvas;\n  /**\n   * 缁樺浘瀹瑰櫒\n   * @type {HTMLElement}\n   */\n\n  this.root = root;\n  var rootStyle = root.style;\n\n  if (rootStyle) {\n    rootStyle['-webkit-tap-highlight-color'] = 'transparent';\n    rootStyle['-webkit-user-select'] = rootStyle['user-select'] = rootStyle['-webkit-touch-callout'] = 'none';\n    root.innerHTML = '';\n  }\n  /**\n   * @type {module:zrender/Storage}\n   */\n\n\n  this.storage = storage;\n  /**\n   * @type {Array.<number>}\n   * @private\n   */\n\n  var zlevelList = this._zlevelList = [];\n  /**\n   * @type {Object.<string, module:zrender/Layer>}\n   * @private\n   */\n\n  var layers = this._layers = {};\n  /**\n   * @type {Object.<string, Object>}\n   * @private\n   */\n\n  this._layerConfig = {};\n  /**\n   * zrender will do compositing when root is a canvas and have multiple zlevels.\n   */\n\n  this._needsManuallyCompositing = false;\n\n  if (!singleCanvas) {\n    this._width = this._getSize(0);\n    this._height = this._getSize(1);\n    var domRoot = this._domRoot = createRoot(this._width, this._height);\n    root.appendChild(domRoot);\n  } else {\n    var width = root.width;\n    var height = root.height;\n\n    if (opts.width != null) {\n      width = opts.width;\n    }\n\n    if (opts.height != null) {\n      height = opts.height;\n    }\n\n    this.dpr = opts.devicePixelRatio || 1; // Use canvas width and height directly\n\n    root.width = width * this.dpr;\n    root.height = height * this.dpr;\n    this._width = width;\n    this._height = height; // Create layer if only one given canvas\n    // Device can be specified to create a high dpi image.\n\n    var mainLayer = new Layer(root, this, this.dpr);\n    mainLayer.__builtin__ = true;\n    mainLayer.initContext(); // FIXME Use canvas width and height\n    // mainLayer.resize(width, height);\n\n    layers[CANVAS_ZLEVEL] = mainLayer;\n    mainLayer.zlevel = CANVAS_ZLEVEL; // Not use common zlevel.\n\n    zlevelList.push(CANVAS_ZLEVEL);\n    this._domRoot = root;\n  }\n  /**\n   * @type {module:zrender/Layer}\n   * @private\n   */\n\n\n  this._hoverlayer = null;\n  this._hoverElements = [];\n};\n\nPainter.prototype = {\n  constructor: Painter,\n  getType: function () {\n    return 'canvas';\n  },\n\n  /**\n   * If painter use a single canvas\n   * @return {boolean}\n   */\n  isSingleCanvas: function () {\n    return this._singleCanvas;\n  },\n\n  /**\n   * @return {HTMLDivElement}\n   */\n  getViewportRoot: function () {\n    return this._domRoot;\n  },\n  getViewportRootOffset: function () {\n    var viewportRoot = this.getViewportRoot();\n\n    if (viewportRoot) {\n      return {\n        offsetLeft: viewportRoot.offsetLeft || 0,\n        offsetTop: viewportRoot.offsetTop || 0\n      };\n    }\n  },\n\n  /**\n   * 鍒锋柊\n   * @param {boolean} [paintAll=false] 寮哄埗缁樺埗鎵�鏈塪isplayable\n   */\n  refresh: function (paintAll) {\n    var list = this.storage.getDisplayList(true);\n    var zlevelList = this._zlevelList;\n    this._redrawId = Math.random();\n\n    this._paintList(list, paintAll, this._redrawId); // Paint custum layers\n\n\n    for (var i = 0; i < zlevelList.length; i++) {\n      var z = zlevelList[i];\n      var layer = this._layers[z];\n\n      if (!layer.__builtin__ && layer.refresh) {\n        var clearColor = i === 0 ? this._backgroundColor : null;\n        layer.refresh(clearColor);\n      }\n    }\n\n    this.refreshHover();\n    return this;\n  },\n  addHover: function (el, hoverStyle) {\n    if (el.__hoverMir) {\n      return;\n    }\n\n    var elMirror = new el.constructor({\n      style: el.style,\n      shape: el.shape\n    });\n    elMirror.__from = el;\n    el.__hoverMir = elMirror;\n    elMirror.setStyle(hoverStyle);\n\n    this._hoverElements.push(elMirror);\n  },\n  removeHover: function (el) {\n    var elMirror = el.__hoverMir;\n    var hoverElements = this._hoverElements;\n    var idx = util.indexOf(hoverElements, elMirror);\n\n    if (idx >= 0) {\n      hoverElements.splice(idx, 1);\n    }\n\n    el.__hoverMir = null;\n  },\n  clearHover: function (el) {\n    var hoverElements = this._hoverElements;\n\n    for (var i = 0; i < hoverElements.length; i++) {\n      var from = hoverElements[i].__from;\n\n      if (from) {\n        from.__hoverMir = null;\n      }\n    }\n\n    hoverElements.length = 0;\n  },\n  refreshHover: function () {\n    var hoverElements = this._hoverElements;\n    var len = hoverElements.length;\n    var hoverLayer = this._hoverlayer;\n    hoverLayer && hoverLayer.clear();\n\n    if (!len) {\n      return;\n    }\n\n    timsort(hoverElements, this.storage.displayableSortFunc); // Use a extream large zlevel\n    // FIXME?\n\n    if (!hoverLayer) {\n      hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n    }\n\n    var scope = {};\n    hoverLayer.ctx.save();\n\n    for (var i = 0; i < len;) {\n      var el = hoverElements[i];\n      var originalEl = el.__from; // Original el is removed\n      // PENDING\n\n      if (!(originalEl && originalEl.__zr)) {\n        hoverElements.splice(i, 1);\n        originalEl.__hoverMir = null;\n        len--;\n        continue;\n      }\n\n      i++; // Use transform\n      // FIXME style and shape ?\n\n      if (!originalEl.invisible) {\n        el.transform = originalEl.transform;\n        el.invTransform = originalEl.invTransform;\n        el.__clipPaths = originalEl.__clipPaths; // el.\n\n        this._doPaintEl(el, hoverLayer, true, scope);\n      }\n    }\n\n    hoverLayer.ctx.restore();\n  },\n  getHoverLayer: function () {\n    return this.getLayer(HOVER_LAYER_ZLEVEL);\n  },\n  _paintList: function (list, paintAll, redrawId) {\n    if (this._redrawId !== redrawId) {\n      return;\n    }\n\n    paintAll = paintAll || false;\n\n    this._updateLayerStatus(list);\n\n    var finished = this._doPaintList(list, paintAll);\n\n    if (this._needsManuallyCompositing) {\n      this._compositeManually();\n    }\n\n    if (!finished) {\n      var self = this;\n      requestAnimationFrame(function () {\n        self._paintList(list, paintAll, redrawId);\n      });\n    }\n  },\n  _compositeManually: function () {\n    var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n    var width = this._domRoot.width;\n    var height = this._domRoot.height;\n    ctx.clearRect(0, 0, width, height); // PENDING, If only builtin layer?\n\n    this.eachBuiltinLayer(function (layer) {\n      if (layer.virtual) {\n        ctx.drawImage(layer.dom, 0, 0, width, height);\n      }\n    });\n  },\n  _doPaintList: function (list, paintAll) {\n    var layerList = [];\n\n    for (var zi = 0; zi < this._zlevelList.length; zi++) {\n      var zlevel = this._zlevelList[zi];\n      var layer = this._layers[zlevel];\n\n      if (layer.__builtin__ && layer !== this._hoverlayer && (layer.__dirty || paintAll)) {\n        layerList.push(layer);\n      }\n    }\n\n    var finished = true;\n\n    for (var k = 0; k < layerList.length; k++) {\n      var layer = layerList[k];\n      var ctx = layer.ctx;\n      var scope = {};\n      ctx.save();\n      var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n      var useTimer = !paintAll && layer.incremental && Date.now;\n      var startTime = useTimer && Date.now();\n      var clearColor = layer.zlevel === this._zlevelList[0] ? this._backgroundColor : null; // All elements in this layer are cleared.\n\n      if (layer.__startIndex === layer.__endIndex) {\n        layer.clear(false, clearColor);\n      } else if (start === layer.__startIndex) {\n        var firstEl = list[start];\n\n        if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n          layer.clear(false, clearColor);\n        }\n      }\n\n      if (start === -1) {\n        console.error('For some unknown reason. drawIndex is -1');\n        start = layer.__startIndex;\n      }\n\n      for (var i = start; i < layer.__endIndex; i++) {\n        var el = list[i];\n\n        this._doPaintEl(el, layer, paintAll, scope);\n\n        el.__dirty = false;\n\n        if (useTimer) {\n          // Date.now can be executed in 13,025,305 ops/second.\n          var dTime = Date.now() - startTime; // Give 15 millisecond to draw.\n          // The rest elements will be drawn in the next frame.\n\n          if (dTime > 15) {\n            break;\n          }\n        }\n      }\n\n      layer.__drawIndex = i;\n\n      if (layer.__drawIndex < layer.__endIndex) {\n        finished = false;\n      }\n\n      if (scope.prevElClipPaths) {\n        // Needs restore the state. If last drawn element is in the clipping area.\n        ctx.restore();\n      }\n\n      ctx.restore();\n    }\n\n    if (env.wxa) {\n      // Flush for weixin application\n      util.each(this._layers, function (layer) {\n        if (layer && layer.ctx && layer.ctx.draw) {\n          layer.ctx.draw();\n        }\n      });\n    }\n\n    return finished;\n  },\n  _doPaintEl: function (el, currentLayer, forcePaint, scope) {\n    var ctx = currentLayer.ctx;\n    var m = el.transform;\n\n    if ((currentLayer.__dirty || forcePaint) && // Ignore invisible element\n    !el.invisible // Ignore transparent element\n    && el.style.opacity !== 0 // Ignore scale 0 element, in some environment like node-canvas\n    // Draw a scale 0 element can cause all following draw wrong\n    // And setTransform with scale 0 will cause set back transform failed.\n    && !(m && !m[0] && !m[3]) // Ignore culled element\n    && !(el.culling && isDisplayableCulled(el, this._width, this._height))) {\n      var clipPaths = el.__clipPaths; // Optimize when clipping on group with several elements\n\n      if (!scope.prevElClipPaths || isClipPathChanged(clipPaths, scope.prevElClipPaths)) {\n        // If has previous clipping state, restore from it\n        if (scope.prevElClipPaths) {\n          currentLayer.ctx.restore();\n          scope.prevElClipPaths = null; // Reset prevEl since context has been restored\n\n          scope.prevEl = null;\n        } // New clipping state\n\n\n        if (clipPaths) {\n          ctx.save();\n          doClip(clipPaths, ctx);\n          scope.prevElClipPaths = clipPaths;\n        }\n      }\n\n      el.beforeBrush && el.beforeBrush(ctx);\n      el.brush(ctx, scope.prevEl || null);\n      scope.prevEl = el;\n      el.afterBrush && el.afterBrush(ctx);\n    }\n  },\n\n  /**\n   * 鑾峰彇 zlevel 鎵�鍦ㄥ眰锛屽鏋滀笉瀛樺湪鍒欎細鍒涘缓涓�涓柊鐨勫眰\n   * @param {number} zlevel\n   * @param {boolean} virtual Virtual layer will not be inserted into dom.\n   * @return {module:zrender/Layer}\n   */\n  getLayer: function (zlevel, virtual) {\n    if (this._singleCanvas && !this._needsManuallyCompositing) {\n      zlevel = CANVAS_ZLEVEL;\n    }\n\n    var layer = this._layers[zlevel];\n\n    if (!layer) {\n      // Create a new layer\n      layer = new Layer('zr_' + zlevel, this, this.dpr);\n      layer.zlevel = zlevel;\n      layer.__builtin__ = true;\n\n      if (this._layerConfig[zlevel]) {\n        util.merge(layer, this._layerConfig[zlevel], true);\n      }\n\n      if (virtual) {\n        layer.virtual = virtual;\n      }\n\n      this.insertLayer(zlevel, layer); // Context is created after dom inserted to document\n      // Or excanvas will get 0px clientWidth and clientHeight\n\n      layer.initContext();\n    }\n\n    return layer;\n  },\n  insertLayer: function (zlevel, layer) {\n    var layersMap = this._layers;\n    var zlevelList = this._zlevelList;\n    var len = zlevelList.length;\n    var prevLayer = null;\n    var i = -1;\n    var domRoot = this._domRoot;\n\n    if (layersMap[zlevel]) {\n      log('ZLevel ' + zlevel + ' has been used already');\n      return;\n    } // Check if is a valid layer\n\n\n    if (!isLayerValid(layer)) {\n      log('Layer of zlevel ' + zlevel + ' is not valid');\n      return;\n    }\n\n    if (len > 0 && zlevel > zlevelList[0]) {\n      for (i = 0; i < len - 1; i++) {\n        if (zlevelList[i] < zlevel && zlevelList[i + 1] > zlevel) {\n          break;\n        }\n      }\n\n      prevLayer = layersMap[zlevelList[i]];\n    }\n\n    zlevelList.splice(i + 1, 0, zlevel);\n    layersMap[zlevel] = layer; // Vitual layer will not directly show on the screen.\n    // (It can be a WebGL layer and assigned to a ZImage element)\n    // But it still under management of zrender.\n\n    if (!layer.virtual) {\n      if (prevLayer) {\n        var prevDom = prevLayer.dom;\n\n        if (prevDom.nextSibling) {\n          domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n        } else {\n          domRoot.appendChild(layer.dom);\n        }\n      } else {\n        if (domRoot.firstChild) {\n          domRoot.insertBefore(layer.dom, domRoot.firstChild);\n        } else {\n          domRoot.appendChild(layer.dom);\n        }\n      }\n    }\n  },\n  // Iterate each layer\n  eachLayer: function (cb, context) {\n    var zlevelList = this._zlevelList;\n    var z;\n    var i;\n\n    for (i = 0; i < zlevelList.length; i++) {\n      z = zlevelList[i];\n      cb.call(context, this._layers[z], z);\n    }\n  },\n  // Iterate each buildin layer\n  eachBuiltinLayer: function (cb, context) {\n    var zlevelList = this._zlevelList;\n    var layer;\n    var z;\n    var i;\n\n    for (i = 0; i < zlevelList.length; i++) {\n      z = zlevelList[i];\n      layer = this._layers[z];\n\n      if (layer.__builtin__) {\n        cb.call(context, layer, z);\n      }\n    }\n  },\n  // Iterate each other layer except buildin layer\n  eachOtherLayer: function (cb, context) {\n    var zlevelList = this._zlevelList;\n    var layer;\n    var z;\n    var i;\n\n    for (i = 0; i < zlevelList.length; i++) {\n      z = zlevelList[i];\n      layer = this._layers[z];\n\n      if (!layer.__builtin__) {\n        cb.call(context, layer, z);\n      }\n    }\n  },\n\n  /**\n   * 鑾峰彇鎵�鏈夊凡鍒涘缓鐨勫眰\n   * @param {Array.<module:zrender/Layer>} [prevLayer]\n   */\n  getLayers: function () {\n    return this._layers;\n  },\n  _updateLayerStatus: function (list) {\n    this.eachBuiltinLayer(function (layer, z) {\n      layer.__dirty = layer.__used = false;\n    });\n\n    function updatePrevLayer(idx) {\n      if (prevLayer) {\n        if (prevLayer.__endIndex !== idx) {\n          prevLayer.__dirty = true;\n        }\n\n        prevLayer.__endIndex = idx;\n      }\n    }\n\n    if (this._singleCanvas) {\n      for (var i = 1; i < list.length; i++) {\n        var el = list[i];\n\n        if (el.zlevel !== list[i - 1].zlevel || el.incremental) {\n          this._needsManuallyCompositing = true;\n          break;\n        }\n      }\n    }\n\n    var prevLayer = null;\n    var incrementalLayerCount = 0;\n\n    for (var i = 0; i < list.length; i++) {\n      var el = list[i];\n      var zlevel = el.zlevel;\n      var layer; // PENDING If change one incremental element style ?\n      // TODO Where there are non-incremental elements between incremental elements.\n\n      if (el.incremental) {\n        layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n        layer.incremental = true;\n        incrementalLayerCount = 1;\n      } else {\n        layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n      }\n\n      if (!layer.__builtin__) {\n        log('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n      }\n\n      if (layer !== prevLayer) {\n        layer.__used = true;\n\n        if (layer.__startIndex !== i) {\n          layer.__dirty = true;\n        }\n\n        layer.__startIndex = i;\n\n        if (!layer.incremental) {\n          layer.__drawIndex = i;\n        } else {\n          // Mark layer draw index needs to update.\n          layer.__drawIndex = -1;\n        }\n\n        updatePrevLayer(i);\n        prevLayer = layer;\n      }\n\n      if (el.__dirty) {\n        layer.__dirty = true;\n\n        if (layer.incremental && layer.__drawIndex < 0) {\n          // Start draw from the first dirty element.\n          layer.__drawIndex = i;\n        }\n      }\n    }\n\n    updatePrevLayer(i);\n    this.eachBuiltinLayer(function (layer, z) {\n      // Used in last frame but not in this frame. Needs clear\n      if (!layer.__used && layer.getElementCount() > 0) {\n        layer.__dirty = true;\n        layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n      } // For incremental layer. In case start index changed and no elements are dirty.\n\n\n      if (layer.__dirty && layer.__drawIndex < 0) {\n        layer.__drawIndex = layer.__startIndex;\n      }\n    });\n  },\n\n  /**\n   * 娓呴櫎hover灞傚鎵�鏈夊唴瀹筡n   */\n  clear: function () {\n    this.eachBuiltinLayer(this._clearLayer);\n    return this;\n  },\n  _clearLayer: function (layer) {\n    layer.clear();\n  },\n  setBackgroundColor: function (backgroundColor) {\n    this._backgroundColor = backgroundColor;\n  },\n\n  /**\n   * 淇敼鎸囧畾zlevel鐨勭粯鍒跺弬鏁癨n   *\n   * @param {string} zlevel\n   * @param {Object} config 閰嶇疆瀵硅薄\n   * @param {string} [config.clearColor=0] 姣忔娓呯┖鐢诲竷鐨勯鑹瞈n   * @param {string} [config.motionBlur=false] 鏄惁寮�鍚姩鎬佹ā绯奬n   * @param {number} [config.lastFrameAlpha=0.7]\n   *                 鍦ㄥ紑鍚姩鎬佹ā绯婄殑鏃跺�欎娇鐢紝涓庝笂涓�甯ф贩鍚堢殑alpha鍊硷紝鍊艰秺澶у熬杩硅秺鏄庢樉\n   */\n  configLayer: function (zlevel, config) {\n    if (config) {\n      var layerConfig = this._layerConfig;\n\n      if (!layerConfig[zlevel]) {\n        layerConfig[zlevel] = config;\n      } else {\n        util.merge(layerConfig[zlevel], config, true);\n      }\n\n      for (var i = 0; i < this._zlevelList.length; i++) {\n        var _zlevel = this._zlevelList[i];\n\n        if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n          var layer = this._layers[_zlevel];\n          util.merge(layer, layerConfig[zlevel], true);\n        }\n      }\n    }\n  },\n\n  /**\n   * 鍒犻櫎鎸囧畾灞俓n   * @param {number} zlevel 灞傛墍鍦ㄧ殑zlevel\n   */\n  delLayer: function (zlevel) {\n    var layers = this._layers;\n    var zlevelList = this._zlevelList;\n    var layer = layers[zlevel];\n\n    if (!layer) {\n      return;\n    }\n\n    layer.dom.parentNode.removeChild(layer.dom);\n    delete layers[zlevel];\n    zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n  },\n\n  /**\n   * 鍖哄煙澶у皬鍙樺寲鍚庨噸缁榎n   */\n  resize: function (width, height) {\n    if (!this._domRoot.style) {\n      // Maybe in node or worker\n      if (width == null || height == null) {\n        return;\n      }\n\n      this._width = width;\n      this._height = height;\n      this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n    } else {\n      var domRoot = this._domRoot; // FIXME Why ?\n\n      domRoot.style.display = 'none'; // Save input w/h\n\n      var opts = this._opts;\n      width != null && (opts.width = width);\n      height != null && (opts.height = height);\n      width = this._getSize(0);\n      height = this._getSize(1);\n      domRoot.style.display = ''; // 浼樺寲娌℃湁瀹為檯鏀瑰彉鐨剅esize\n\n      if (this._width != width || height != this._height) {\n        domRoot.style.width = width + 'px';\n        domRoot.style.height = height + 'px';\n\n        for (var id in this._layers) {\n          if (this._layers.hasOwnProperty(id)) {\n            this._layers[id].resize(width, height);\n          }\n        }\n\n        util.each(this._progressiveLayers, function (layer) {\n          layer.resize(width, height);\n        });\n        this.refresh(true);\n      }\n\n      this._width = width;\n      this._height = height;\n    }\n\n    return this;\n  },\n\n  /**\n   * 娓呴櫎鍗曠嫭鐨勪竴涓眰\n   * @param {number} zlevel\n   */\n  clearLayer: function (zlevel) {\n    var layer = this._layers[zlevel];\n\n    if (layer) {\n      layer.clear();\n    }\n  },\n\n  /**\n   * 閲婃斁\n   */\n  dispose: function () {\n    this.root.innerHTML = '';\n    this.root = this.storage = this._domRoot = this._layers = null;\n  },\n\n  /**\n   * Get canvas which has all thing rendered\n   * @param {Object} opts\n   * @param {string} [opts.backgroundColor]\n   * @param {number} [opts.pixelRatio]\n   */\n  getRenderedCanvas: function (opts) {\n    opts = opts || {};\n\n    if (this._singleCanvas && !this._compositeManually) {\n      return this._layers[CANVAS_ZLEVEL].dom;\n    }\n\n    var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n    imageLayer.initContext();\n    imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n\n    if (opts.pixelRatio <= this.dpr) {\n      this.refresh();\n      var width = imageLayer.dom.width;\n      var height = imageLayer.dom.height;\n      var ctx = imageLayer.ctx;\n      this.eachLayer(function (layer) {\n        if (layer.__builtin__) {\n          ctx.drawImage(layer.dom, 0, 0, width, height);\n        } else if (layer.renderToCanvas) {\n          imageLayer.ctx.save();\n          layer.renderToCanvas(imageLayer.ctx);\n          imageLayer.ctx.restore();\n        }\n      });\n    } else {\n      // PENDING, echarts-gl and incremental rendering.\n      var scope = {};\n      var displayList = this.storage.getDisplayList(true);\n\n      for (var i = 0; i < displayList.length; i++) {\n        var el = displayList[i];\n\n        this._doPaintEl(el, imageLayer, true, scope);\n      }\n    }\n\n    return imageLayer.dom;\n  },\n\n  /**\n   * 鑾峰彇缁樺浘鍖哄煙瀹藉害\n   */\n  getWidth: function () {\n    return this._width;\n  },\n\n  /**\n   * 鑾峰彇缁樺浘鍖哄煙楂樺害\n   */\n  getHeight: function () {\n    return this._height;\n  },\n  _getSize: function (whIdx) {\n    var opts = this._opts;\n    var wh = ['width', 'height'][whIdx];\n    var cwh = ['clientWidth', 'clientHeight'][whIdx];\n    var plt = ['paddingLeft', 'paddingTop'][whIdx];\n    var prb = ['paddingRight', 'paddingBottom'][whIdx];\n\n    if (opts[wh] != null && opts[wh] !== 'auto') {\n      return parseFloat(opts[wh]);\n    }\n\n    var root = this.root; // IE8 does not support getComputedStyle, but it use VML.\n\n    var stl = document.defaultView.getComputedStyle(root);\n    return (root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh])) - (parseInt10(stl[plt]) || 0) - (parseInt10(stl[prb]) || 0) | 0;\n  },\n  pathToImage: function (path, dpr) {\n    dpr = dpr || this.dpr;\n    var canvas = document.createElement('canvas');\n    var ctx = canvas.getContext('2d');\n    var rect = path.getBoundingRect();\n    var style = path.style;\n    var shadowBlurSize = style.shadowBlur * dpr;\n    var shadowOffsetX = style.shadowOffsetX * dpr;\n    var shadowOffsetY = style.shadowOffsetY * dpr;\n    var lineWidth = style.hasStroke() ? style.lineWidth : 0;\n    var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n    var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n    var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n    var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n    var width = rect.width + leftMargin + rightMargin;\n    var height = rect.height + topMargin + bottomMargin;\n    canvas.width = width * dpr;\n    canvas.height = height * dpr;\n    ctx.scale(dpr, dpr);\n    ctx.clearRect(0, 0, width, height);\n    ctx.dpr = dpr;\n    var pathTransform = {\n      position: path.position,\n      rotation: path.rotation,\n      scale: path.scale\n    };\n    path.position = [leftMargin - rect.x, topMargin - rect.y];\n    path.rotation = 0;\n    path.scale = [1, 1];\n    path.updateTransform();\n\n    if (path) {\n      path.brush(ctx);\n    }\n\n    var ImageShape = Image;\n    var imgShape = new ImageShape({\n      style: {\n        x: 0,\n        y: 0,\n        image: canvas\n      }\n    });\n\n    if (pathTransform.position != null) {\n      imgShape.position = path.position = pathTransform.position;\n    }\n\n    if (pathTransform.rotation != null) {\n      imgShape.rotation = path.rotation = pathTransform.rotation;\n    }\n\n    if (pathTransform.scale != null) {\n      imgShape.scale = path.scale = pathTransform.scale;\n    }\n\n    return imgShape;\n  }\n};\nvar _default = Painter;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/Painter.js\n// module id = 3mhU\n// module chunks = 0","// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_array-includes.js\n// module id = 3qm9\n// module chunks = 0","// Simple LRU cache use doubly linked list\n// @module zrender/core/LRU\n\n/**\n * Simple double linked list. Compared with array, it has O(1) remove operation.\n * @constructor\n */\nvar LinkedList = function () {\n  /**\n   * @type {module:zrender/core/LRU~Entry}\n   */\n  this.head = null;\n  /**\n   * @type {module:zrender/core/LRU~Entry}\n   */\n\n  this.tail = null;\n  this._len = 0;\n};\n\nvar linkedListProto = LinkedList.prototype;\n/**\n * Insert a new value at the tail\n * @param  {} val\n * @return {module:zrender/core/LRU~Entry}\n */\n\nlinkedListProto.insert = function (val) {\n  var entry = new Entry(val);\n  this.insertEntry(entry);\n  return entry;\n};\n/**\n * Insert an entry at the tail\n * @param  {module:zrender/core/LRU~Entry} entry\n */\n\n\nlinkedListProto.insertEntry = function (entry) {\n  if (!this.head) {\n    this.head = this.tail = entry;\n  } else {\n    this.tail.next = entry;\n    entry.prev = this.tail;\n    entry.next = null;\n    this.tail = entry;\n  }\n\n  this._len++;\n};\n/**\n * Remove entry.\n * @param  {module:zrender/core/LRU~Entry} entry\n */\n\n\nlinkedListProto.remove = function (entry) {\n  var prev = entry.prev;\n  var next = entry.next;\n\n  if (prev) {\n    prev.next = next;\n  } else {\n    // Is head\n    this.head = next;\n  }\n\n  if (next) {\n    next.prev = prev;\n  } else {\n    // Is tail\n    this.tail = prev;\n  }\n\n  entry.next = entry.prev = null;\n  this._len--;\n};\n/**\n * @return {number}\n */\n\n\nlinkedListProto.len = function () {\n  return this._len;\n};\n/**\n * Clear list\n */\n\n\nlinkedListProto.clear = function () {\n  this.head = this.tail = null;\n  this._len = 0;\n};\n/**\n * @constructor\n * @param {} val\n */\n\n\nvar Entry = function (val) {\n  /**\n   * @type {}\n   */\n  this.value = val;\n  /**\n   * @type {module:zrender/core/LRU~Entry}\n   */\n\n  this.next;\n  /**\n   * @type {module:zrender/core/LRU~Entry}\n   */\n\n  this.prev;\n};\n/**\n * LRU Cache\n * @constructor\n * @alias module:zrender/core/LRU\n */\n\n\nvar LRU = function (maxSize) {\n  this._list = new LinkedList();\n  this._map = {};\n  this._maxSize = maxSize || 10;\n  this._lastRemovedEntry = null;\n};\n\nvar LRUProto = LRU.prototype;\n/**\n * @param  {string} key\n * @param  {} value\n * @return {} Removed value\n */\n\nLRUProto.put = function (key, value) {\n  var list = this._list;\n  var map = this._map;\n  var removed = null;\n\n  if (map[key] == null) {\n    var len = list.len(); // Reuse last removed entry\n\n    var entry = this._lastRemovedEntry;\n\n    if (len >= this._maxSize && len > 0) {\n      // Remove the least recently used\n      var leastUsedEntry = list.head;\n      list.remove(leastUsedEntry);\n      delete map[leastUsedEntry.key];\n      removed = leastUsedEntry.value;\n      this._lastRemovedEntry = leastUsedEntry;\n    }\n\n    if (entry) {\n      entry.value = value;\n    } else {\n      entry = new Entry(value);\n    }\n\n    entry.key = key;\n    list.insertEntry(entry);\n    map[key] = entry;\n  }\n\n  return removed;\n};\n/**\n * @param  {string} key\n * @return {}\n */\n\n\nLRUProto.get = function (key) {\n  var entry = this._map[key];\n  var list = this._list;\n\n  if (entry != null) {\n    // Put the latest used entry in the tail\n    if (entry !== list.tail) {\n      list.remove(entry);\n      list.insertEntry(entry);\n    }\n\n    return entry.value;\n  }\n};\n/**\n * Clear the cache\n */\n\n\nLRUProto.clear = function () {\n  this._list.clear();\n\n  this._map = {};\n};\n\nvar _default = LRU;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/LRU.js\n// module id = 3sZc\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    } // Return NaN if count is 0\n\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      // Ignore NaN\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    } // NaN will cause illegal axis extent.\n\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    } // NaN will cause illegal axis extent.\n\n\n    return isFinite(min) ? min : NaN;\n  },\n  // TODO\n  // Median\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame, value) {\n  return Math.round(frame.length / 2);\n};\n\nfunction _default(seriesType) {\n  return {\n    seriesType: seriesType,\n    modifyOutputEnd: true,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem; // Only cartesian2d support down sampling\n\n      if (coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent(); // Coordinste system has been resized\n\n        var size = extent[1] - extent[0];\n        var rate = Math.round(data.count() / size);\n\n        if (rate > 1) {\n          var sampler;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            // Only support sample the first dim mapped from value axis.\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/processor/dataSample.js\n// module id = 3t39\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Update common properties\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar BoxplotView = ChartView.extend({\n  type: 'boxplot',\n  render: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var group = this.group;\n    var oldData = this._data; // There is no old data only when first rendering or switching from\n    // stream mode to normal mode, where previous elements should be removed.\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n        var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (!symbolEl) {\n        symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n      } else {\n        updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  },\n  remove: function (ecModel) {\n    var group = this.group;\n    var data = this._data;\n    this._data = null;\n    data && data.eachItemGraphicEl(function (el) {\n      el && group.remove(el);\n    });\n  },\n  dispose: zrUtil.noop\n});\nvar BoxPath = Path.extend({\n  type: 'boxplotBoxPath',\n  shape: {},\n  buildPath: function (ctx, shape) {\n    var ends = shape.points;\n    var i = 0;\n    ctx.moveTo(ends[i][0], ends[i][1]);\n    i++;\n\n    for (; i < 4; i++) {\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n\n    ctx.closePath();\n\n    for (; i < ends.length; i++) {\n      ctx.moveTo(ends[i][0], ends[i][1]);\n      i++;\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n  }\n});\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n  var ends = itemLayout.ends;\n  var el = new BoxPath({\n    shape: {\n      points: isInit ? transInit(ends, constDim, itemLayout) : ends\n    }\n  });\n  updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n  return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n  var seriesModel = data.hostModel;\n  var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n  updateMethod(el, {\n    shape: {\n      points: itemLayout.ends\n    }\n  }, seriesModel, dataIndex);\n  var itemModel = data.getItemModel(dataIndex);\n  var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n  var borderColor = data.getItemVisual(dataIndex, 'color'); // Exclude borderColor.\n\n  var itemStyle = normalItemStyleModel.getItemStyle(['borderColor']);\n  itemStyle.stroke = borderColor;\n  itemStyle.strokeNoScale = true;\n  el.useStyle(itemStyle);\n  el.z2 = 100;\n  var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n  graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, dim, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[dim] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nvar _default = BoxplotView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot/BoxplotView.js\n// module id = 3uP3\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./boxplot/BoxplotSeries\");\n\nrequire(\"./boxplot/BoxplotView\");\n\nvar boxplotVisual = require(\"./boxplot/boxplotVisual\");\n\nvar boxplotLayout = require(\"./boxplot/boxplotLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(boxplotVisual);\necharts.registerLayout(boxplotLayout);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot.js\n// module id = 3x1Z\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar _whiskerBoxCommon = require(\"../helper/whiskerBoxCommon\");\n\nvar seriesModelMixin = _whiskerBoxCommon.seriesModelMixin;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar BoxplotSeries = SeriesModel.extend({\n  type: 'series.boxplot',\n  dependencies: ['xAxis', 'yAxis', 'grid'],\n  // TODO\n  // box width represents group size, so dimension should have 'size'.\n\n  /**\n   * @see <https://en.wikipedia.org/wiki/Box_plot>\n   * The meanings of 'min' and 'max' depend on user,\n   * and echarts do not need to know it.\n   * @readOnly\n   */\n  defaultValueDimensions: [{\n    name: 'min',\n    defaultTooltip: true\n  }, {\n    name: 'Q1',\n    defaultTooltip: true\n  }, {\n    name: 'median',\n    defaultTooltip: true\n  }, {\n    name: 'Q3',\n    defaultTooltip: true\n  }, {\n    name: 'max',\n    defaultTooltip: true\n  }],\n\n  /**\n   * @type {Array.<string>}\n   * @readOnly\n   */\n  dimensions: null,\n\n  /**\n   * @override\n   */\n  defaultOption: {\n    zlevel: 0,\n    // 涓�绾у眰鍙燶n    z: 2,\n    // 浜岀骇灞傚彔\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    hoverAnimation: true,\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    layout: null,\n    // 'horizontal' or 'vertical'\n    boxWidth: [7, 50],\n    // [min, max] can be percent of band width.\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      itemStyle: {\n        borderWidth: 2,\n        shadowBlur: 5,\n        shadowOffsetX: 2,\n        shadowOffsetY: 2,\n        shadowColor: 'rgba(0,0,0,0.4)'\n      }\n    },\n    animationEasing: 'elasticOut',\n    animationDuration: 800\n  }\n});\nzrUtil.mixin(BoxplotSeries, seriesModelMixin, true);\nvar _default = BoxplotSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot/BoxplotSeries.js\n// module id = 3yI+\n// module chunks = 0","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/bind.js\n// module id = 4A9Y\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar RoamController = require(\"../../component/helper/RoamController\");\n\nvar throttleUtil = require(\"../../util/throttle\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Only create one roam controller for each coordinate system.\n// one roam controller might be refered by two inside data zoom\n// components (for example, one for x and one for y). When user\n// pan or zoom, only dispatch one action for those data zoom\n// components.\nvar curry = zrUtil.curry;\nvar ATTR = '\\0_ec_dataZoom_roams';\n/**\n * @public\n * @param {module:echarts/ExtensionAPI} api\n * @param {Object} dataZoomInfo\n * @param {string} dataZoomInfo.coordId\n * @param {Function} dataZoomInfo.containsPoint\n * @param {Array.<string>} dataZoomInfo.allCoordIds\n * @param {string} dataZoomInfo.dataZoomId\n * @param {number} dataZoomInfo.throttleRate\n * @param {Function} dataZoomInfo.panGetRange\n * @param {Function} dataZoomInfo.zoomGetRange\n * @param {boolean} [dataZoomInfo.zoomLock]\n * @param {boolean} [dataZoomInfo.disabled]\n */\n\nfunction register(api, dataZoomInfo) {\n  var store = giveStore(api);\n  var theDataZoomId = dataZoomInfo.dataZoomId;\n  var theCoordId = dataZoomInfo.coordId; // Do clean when a dataZoom changes its target coordnate system.\n  // Avoid memory leak, dispose all not-used-registered.\n\n  zrUtil.each(store, function (record, coordId) {\n    var dataZoomInfos = record.dataZoomInfos;\n\n    if (dataZoomInfos[theDataZoomId] && zrUtil.indexOf(dataZoomInfo.allCoordIds, theCoordId) < 0) {\n      delete dataZoomInfos[theDataZoomId];\n      record.count--;\n    }\n  });\n  cleanStore(store);\n  var record = store[theCoordId]; // Create if needed.\n\n  if (!record) {\n    record = store[theCoordId] = {\n      coordId: theCoordId,\n      dataZoomInfos: {},\n      count: 0\n    };\n    record.controller = createController(api, record);\n    record.dispatchAction = zrUtil.curry(dispatchAction, api);\n  } // Update reference of dataZoom.\n\n\n  !record.dataZoomInfos[theDataZoomId] && record.count++;\n  record.dataZoomInfos[theDataZoomId] = dataZoomInfo;\n  var controllerParams = mergeControllerParams(record.dataZoomInfos);\n  record.controller.enable(controllerParams.controlType, controllerParams.opt); // Consider resize, area should be always updated.\n\n  record.controller.setPointerChecker(dataZoomInfo.containsPoint); // Update throttle.\n\n  throttleUtil.createOrUpdate(record, 'dispatchAction', dataZoomInfo.throttleRate, 'fixRate');\n}\n/**\n * @public\n * @param {module:echarts/ExtensionAPI} api\n * @param {string} dataZoomId\n */\n\n\nfunction unregister(api, dataZoomId) {\n  var store = giveStore(api);\n  zrUtil.each(store, function (record) {\n    record.controller.dispose();\n    var dataZoomInfos = record.dataZoomInfos;\n\n    if (dataZoomInfos[dataZoomId]) {\n      delete dataZoomInfos[dataZoomId];\n      record.count--;\n    }\n  });\n  cleanStore(store);\n}\n/**\n * @public\n */\n\n\nfunction generateCoordId(coordModel) {\n  return coordModel.type + '\\0_' + coordModel.id;\n}\n/**\n * Key: coordId, value: {dataZoomInfos: [], count, controller}\n * @type {Array.<Object>}\n */\n\n\nfunction giveStore(api) {\n  // Mount store on zrender instance, so that we do not\n  // need to worry about dispose.\n  var zr = api.getZr();\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n\nfunction createController(api, newRecord) {\n  var controller = new RoamController(api.getZr());\n  controller.on('pan', curry(onPan, newRecord));\n  controller.on('zoom', curry(onZoom, newRecord));\n  return controller;\n}\n\nfunction cleanStore(store) {\n  zrUtil.each(store, function (record, coordId) {\n    if (!record.count) {\n      record.controller.dispose();\n      delete store[coordId];\n    }\n  });\n}\n\nfunction onPan(record, dx, dy, oldX, oldY, newX, newY) {\n  wrapAndDispatch(record, function (info) {\n    return info.panGetRange(record.controller, dx, dy, oldX, oldY, newX, newY);\n  });\n}\n\nfunction onZoom(record, scale, mouseX, mouseY) {\n  wrapAndDispatch(record, function (info) {\n    return info.zoomGetRange(record.controller, scale, mouseX, mouseY);\n  });\n}\n\nfunction wrapAndDispatch(record, getRange) {\n  var batch = [];\n  zrUtil.each(record.dataZoomInfos, function (info) {\n    var range = getRange(info);\n    !info.disabled && range && batch.push({\n      dataZoomId: info.dataZoomId,\n      start: range[0],\n      end: range[1]\n    });\n  });\n  batch.length && record.dispatchAction(batch);\n}\n/**\n * This action will be throttled.\n */\n\n\nfunction dispatchAction(api, batch) {\n  api.dispatchAction({\n    type: 'dataZoom',\n    batch: batch\n  });\n}\n/**\n * Merge roamController settings when multiple dataZooms share one roamController.\n */\n\n\nfunction mergeControllerParams(dataZoomInfos) {\n  var controlType;\n  var opt = {}; // DO NOT use reserved word (true, false, undefined) as key literally. Even if encapsulated\n  // as string, it is probably revert to reserved word by compress tool. See #7411.\n\n  var prefix = 'type_';\n  var typePriority = {\n    'type_true': 2,\n    'type_move': 1,\n    'type_false': 0,\n    'type_undefined': -1\n  };\n  zrUtil.each(dataZoomInfos, function (dataZoomInfo) {\n    var oneType = dataZoomInfo.disabled ? false : dataZoomInfo.zoomLock ? 'move' : true;\n\n    if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n      controlType = oneType;\n    } // Do not support that different 'shift'/'ctrl'/'alt' setting used in one coord sys.\n\n\n    zrUtil.extend(opt, dataZoomInfo.roamControllerOpt);\n  });\n  return {\n    controlType: controlType,\n    opt: opt\n  };\n}\n\nexports.register = register;\nexports.unregister = unregister;\nexports.generateCoordId = generateCoordId;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/roams.js\n// module id = 4BSa\n// module chunks = 0","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n  var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n    configurable: true,\n    get: function () { return this; }\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_set-species.js\n// module id = 4BpY\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisPointerModel = echarts.extendComponentModel({\n  type: 'axisPointer',\n  coordSysAxesInfo: null,\n  defaultOption: {\n    // 'auto' means that show when triggered by tooltip or handle.\n    show: 'auto',\n    // 'click' | 'mousemove' | 'none'\n    triggerOn: null,\n    // set default in AxisPonterView.js\n    zlevel: 0,\n    z: 50,\n    type: 'line',\n    // axispointer triggered by tootip determine snap automatically,\n    // see `modelHelper`.\n    snap: false,\n    triggerTooltip: true,\n    value: null,\n    status: null,\n    // Init value depends on whether handle is used.\n    // [group0, group1, ...]\n    // Each group can be: {\n    //      mapper: function () {},\n    //      singleTooltip: 'multiple',  // 'multiple' or 'single'\n    //      xAxisId: ...,\n    //      yAxisName: ...,\n    //      angleAxisIndex: ...\n    // }\n    // mapper: can be ignored.\n    //      input: {axisInfo, value}\n    //      output: {axisInfo, value}\n    link: [],\n    // Do not set 'auto' here, otherwise global animation: false\n    // will not effect at this axispointer.\n    animation: null,\n    animationDurationUpdate: 200,\n    lineStyle: {\n      color: '#aaa',\n      width: 1,\n      type: 'solid'\n    },\n    shadowStyle: {\n      color: 'rgba(150,150,150,0.3)'\n    },\n    label: {\n      show: true,\n      formatter: null,\n      // string | Function\n      precision: 'auto',\n      // Or a number like 0, 1, 2 ...\n      margin: 3,\n      color: '#fff',\n      padding: [5, 7, 5, 7],\n      backgroundColor: 'auto',\n      // default: axis line color\n      borderColor: null,\n      borderWidth: 0,\n      shadowBlur: 3,\n      shadowColor: '#aaa' // Considering applicability, common style should\n      // better not have shadowOffset.\n      // shadowOffsetX: 0,\n      // shadowOffsetY: 2\n\n    },\n    handle: {\n      show: false,\n      icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n      // jshint ignore:line\n      size: 45,\n      // handle margin is from symbol center to axis, which is stable when circular move.\n      margin: 50,\n      // color: '#1b8bbd'\n      // color: '#2f4554'\n      color: '#333',\n      shadowBlur: 3,\n      shadowColor: '#aaa',\n      shadowOffsetX: 0,\n      shadowOffsetY: 2,\n      // For mobile performance\n      throttle: 40\n    }\n  }\n});\nvar _default = AxisPointerModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/AxisPointerModel.js\n// module id = 4KIe\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n\n  return target;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/extends.js\n// module id = 4YfN\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 146);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 146:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _option = __webpack_require__(35);\n\nvar _option2 = _interopRequireDefault(_option);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_option2.default.install = function (Vue) {\n  Vue.component(_option2.default.name, _option2.default);\n};\n\nexports.default = _option2.default;\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__ = __webpack_require__(37);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _util = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  mixins: [_emitter2.default],\n\n  name: 'ElOption',\n\n  componentName: 'ElOption',\n\n  inject: ['select'],\n\n  props: {\n    value: {\n      required: true\n    },\n    label: [String, Number],\n    created: Boolean,\n    disabled: {\n      type: Boolean,\n      default: false\n    }\n  },\n\n  data: function data() {\n    return {\n      index: -1,\n      groupDisabled: false,\n      visible: true,\n      hitState: false,\n      hover: false\n    };\n  },\n\n\n  computed: {\n    isObject: function isObject() {\n      return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';\n    },\n    currentLabel: function currentLabel() {\n      return this.label || (this.isObject ? '' : this.value);\n    },\n    currentValue: function currentValue() {\n      return this.value || this.label || '';\n    },\n    itemSelected: function itemSelected() {\n      if (!this.select.multiple) {\n        return this.isEqual(this.value, this.select.value);\n      } else {\n        return this.contains(this.select.value, this.value);\n      }\n    },\n    limitReached: function limitReached() {\n      if (this.select.multiple) {\n        return !this.itemSelected && (this.select.value || []).length >= this.select.multipleLimit && this.select.multipleLimit > 0;\n      } else {\n        return false;\n      }\n    }\n  },\n\n  watch: {\n    currentLabel: function currentLabel() {\n      if (!this.created && !this.select.remote) this.dispatch('ElSelect', 'setSelected');\n    },\n    value: function value(val, oldVal) {\n      var _select = this.select,\n          remote = _select.remote,\n          valueKey = _select.valueKey;\n\n      if (!this.created && !remote) {\n        if (valueKey && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && (typeof oldVal === 'undefined' ? 'undefined' : _typeof(oldVal)) === 'object' && val[valueKey] === oldVal[valueKey]) {\n          return;\n        }\n        this.dispatch('ElSelect', 'setSelected');\n      }\n    }\n  },\n\n  methods: {\n    isEqual: function isEqual(a, b) {\n      if (!this.isObject) {\n        return a === b;\n      } else {\n        var valueKey = this.select.valueKey;\n        return (0, _util.getValueByPath)(a, valueKey) === (0, _util.getValueByPath)(b, valueKey);\n      }\n    },\n    contains: function contains() {\n      var _this = this;\n\n      var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var target = arguments[1];\n\n      if (!this.isObject) {\n        return arr.indexOf(target) > -1;\n      } else {\n        var _ret = function () {\n          var valueKey = _this.select.valueKey;\n          return {\n            v: arr.some(function (item) {\n              return (0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(target, valueKey);\n            })\n          };\n        }();\n\n        if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n      }\n    },\n    handleGroupDisabled: function handleGroupDisabled(val) {\n      this.groupDisabled = val;\n    },\n    hoverItem: function hoverItem() {\n      if (!this.disabled && !this.groupDisabled) {\n        this.select.hoverIndex = this.select.options.indexOf(this);\n      }\n    },\n    selectOptionClick: function selectOptionClick() {\n      if (this.disabled !== true && this.groupDisabled !== true) {\n        this.dispatch('ElSelect', 'handleOptionClick', [this, true]);\n      }\n    },\n    queryChange: function queryChange(query) {\n      this.visible = new RegExp((0, _util.escapeRegexpString)(query), 'i').test(this.currentLabel) || this.created;\n      if (!this.visible) {\n        this.select.filteredOptionsCount--;\n      }\n    }\n  },\n\n  created: function created() {\n    this.select.options.push(this);\n    this.select.cachedOptions.push(this);\n    this.select.optionsCount++;\n    this.select.filteredOptionsCount++;\n\n    this.$on('queryChange', this.queryChange);\n    this.$on('handleGroupDisabled', this.handleGroupDisabled);\n  },\n  beforeDestroy: function beforeDestroy() {\n    this.select.onOptionDestroy(this.select.options.indexOf(this));\n  }\n};\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-select-dropdown__item\",class:{\n    'selected': _vm.itemSelected,\n    'is-disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n    'hover': _vm.hover\n  },on:{\"mouseenter\":_vm.hoverItem,\"click\":function($event){$event.stopPropagation();_vm.selectOptionClick($event)}}},[_vm._t(\"default\",[_c('span',[_vm._v(_vm._s(_vm.currentLabel))])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/option.js\n// module id = 4c0H\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar List = require(\"../../data/List\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _model = require(\"../../util/model\");\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\nvar Model = require(\"../../model/Model\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar createGraphFromNodeEdge = require(\"../helper/createGraphFromNodeEdge\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GraphSeries = echarts.extendSeriesModel({\n  type: 'series.graph',\n  init: function (option) {\n    GraphSeries.superApply(this, 'init', arguments); // Provide data for legend select\n\n    this.legendDataProvider = function () {\n      return this._categoriesData;\n    };\n\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  },\n  mergeOption: function (option) {\n    GraphSeries.superApply(this, 'mergeOption', arguments);\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  },\n  mergeDefaultAndTheme: function (option) {\n    GraphSeries.superApply(this, 'mergeDefaultAndTheme', arguments);\n    defaultEmphasis(option, ['edgeLabel'], ['show']);\n  },\n  getInitialData: function (option, ecModel) {\n    var edges = option.edges || option.links || [];\n    var nodes = option.data || option.nodes || [];\n    var self = this;\n\n    if (nodes && edges) {\n      return createGraphFromNodeEdge(nodes, edges, this, true, beforeLink).data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      // Overwrite nodeData.getItemModel to\n      nodeData.wrapMethod('getItemModel', function (model) {\n        var categoriesModels = self._categoriesModels;\n        var categoryIdx = model.getShallow('category');\n        var categoryModel = categoriesModels[categoryIdx];\n\n        if (categoryModel) {\n          categoryModel.parentModel = model.parentModel;\n          model.parentModel = categoryModel;\n        }\n\n        return model;\n      });\n      var edgeLabelModel = self.getModel('edgeLabel'); // For option `edgeLabel` can be found by label.xxx.xxx on item mode.\n\n      var fakeSeriesModel = new Model({\n        label: edgeLabelModel.option\n      }, edgeLabelModel.parentModel, ecModel);\n      var emphasisEdgeLabelModel = self.getModel('emphasis.edgeLabel');\n      var emphasisFakeSeriesModel = new Model({\n        emphasis: {\n          label: emphasisEdgeLabelModel.option\n        }\n      }, emphasisEdgeLabelModel.parentModel, ecModel);\n      edgeData.wrapMethod('getItemModel', function (model) {\n        model.customizeGetParent(edgeGetParent);\n        return model;\n      });\n\n      function edgeGetParent(path) {\n        path = this.parsePath(path);\n        return path && path[0] === 'label' ? fakeSeriesModel : path && path[0] === 'emphasis' && path[1] === 'label' ? emphasisFakeSeriesModel : this.parentModel;\n      }\n    }\n  },\n\n  /**\n   * @return {module:echarts/data/Graph}\n   */\n  getGraph: function () {\n    return this.getData().graph;\n  },\n\n  /**\n   * @return {module:echarts/data/List}\n   */\n  getEdgeData: function () {\n    return this.getGraph().edgeData;\n  },\n\n  /**\n   * @return {module:echarts/data/List}\n   */\n  getCategoriesData: function () {\n    return this._categoriesData;\n  },\n\n  /**\n   * @override\n   */\n  formatTooltip: function (dataIndex, multipleSeries, dataType) {\n    if (dataType === 'edge') {\n      var nodeData = this.getData();\n      var params = this.getDataParams(dataIndex, dataType);\n      var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n      var sourceName = nodeData.getName(edge.node1.dataIndex);\n      var targetName = nodeData.getName(edge.node2.dataIndex);\n      var html = [];\n      sourceName != null && html.push(sourceName);\n      targetName != null && html.push(targetName);\n      html = encodeHTML(html.join(' > '));\n\n      if (params.value) {\n        html += ' : ' + encodeHTML(params.value);\n      }\n\n      return html;\n    } else {\n      // dataType === 'node' or empty\n      return GraphSeries.superApply(this, 'formatTooltip', arguments);\n    }\n  },\n  _updateCategoriesData: function () {\n    var categories = zrUtil.map(this.option.categories || [], function (category) {\n      // Data must has value\n      return category.value != null ? category : zrUtil.extend({\n        value: 0\n      }, category);\n    });\n    var categoriesData = new List(['value'], this);\n    categoriesData.initData(categories);\n    this._categoriesData = categoriesData;\n    this._categoriesModels = categoriesData.mapArray(function (idx) {\n      return categoriesData.getItemModel(idx, true);\n    });\n  },\n  setZoom: function (zoom) {\n    this.option.zoom = zoom;\n  },\n  setCenter: function (center) {\n    this.option.center = center;\n  },\n  isAnimationEnabled: function () {\n    return GraphSeries.superCall(this, 'isAnimationEnabled') // Not enable animation when do force layout\n    && !(this.get('layout') === 'force' && this.get('force.layoutAnimation'));\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    // Default option for all coordinate systems\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // polarIndex: 0,\n    // geoIndex: 0,\n    legendHoverLink: true,\n    hoverAnimation: true,\n    layout: null,\n    focusNodeAdjacency: false,\n    // Configuration of circular layout\n    circular: {\n      rotateLabel: false\n    },\n    // Configuration of force directed layout\n    force: {\n      initLayout: null,\n      // Node repulsion. Can be an array to represent range.\n      repulsion: [0, 50],\n      gravity: 0.1,\n      // Edge length. Can be an array to represent range.\n      edgeLength: 30,\n      layoutAnimation: true\n    },\n    left: 'center',\n    top: 'center',\n    // right: null,\n    // bottom: null,\n    // width: '80%',\n    // height: '80%',\n    symbol: 'circle',\n    symbolSize: 10,\n    edgeSymbol: ['none', 'none'],\n    edgeSymbolSize: 10,\n    edgeLabel: {\n      position: 'middle'\n    },\n    draggable: false,\n    roam: false,\n    // Default on center of graph\n    center: null,\n    zoom: 1,\n    // Symbol size scale ratio in roam\n    nodeScaleRatio: 0.6,\n    // cursor: null,\n    // categories: [],\n    // data: []\n    // Or\n    // nodes: []\n    //\n    // links: []\n    // Or\n    // edges: []\n    label: {\n      show: false,\n      formatter: '{b}'\n    },\n    itemStyle: {},\n    lineStyle: {\n      color: '#aaa',\n      width: 1,\n      curveness: 0,\n      opacity: 0.5\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  }\n});\nvar _default = GraphSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/GraphSeries.js\n// module id = 4cCs\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Model = require(\"../model/Model\");\n\nvar linkList = require(\"./helper/linkList\");\n\nvar List = require(\"./List\");\n\nvar createDimensions = require(\"./helper/createDimensions\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Tree data structure\n *\n * @module echarts/data/Tree\n */\n\n/**\n * @constructor module:echarts/data/Tree~TreeNode\n * @param {string} name\n * @param {module:echarts/data/Tree} hostTree\n */\nvar TreeNode = function (name, hostTree) {\n  /**\n   * @type {string}\n   */\n  this.name = name || '';\n  /**\n   * Depth of node\n   *\n   * @type {number}\n   * @readOnly\n   */\n\n  this.depth = 0;\n  /**\n   * Height of the subtree rooted at this node.\n   * @type {number}\n   * @readOnly\n   */\n\n  this.height = 0;\n  /**\n   * @type {module:echarts/data/Tree~TreeNode}\n   * @readOnly\n   */\n\n  this.parentNode = null;\n  /**\n   * Reference to list item.\n   * Do not persistent dataIndex outside,\n   * besause it may be changed by list.\n   * If dataIndex -1,\n   * this node is logical deleted (filtered) in list.\n   *\n   * @type {Object}\n   * @readOnly\n   */\n\n  this.dataIndex = -1;\n  /**\n   * @type {Array.<module:echarts/data/Tree~TreeNode>}\n   * @readOnly\n   */\n\n  this.children = [];\n  /**\n   * @type {Array.<module:echarts/data/Tree~TreeNode>}\n   * @pubilc\n   */\n\n  this.viewChildren = [];\n  /**\n   * @type {moduel:echarts/data/Tree}\n   * @readOnly\n   */\n\n  this.hostTree = hostTree;\n};\n\nTreeNode.prototype = {\n  constructor: TreeNode,\n\n  /**\n   * The node is removed.\n   * @return {boolean} is removed.\n   */\n  isRemoved: function () {\n    return this.dataIndex < 0;\n  },\n\n  /**\n   * Travel this subtree (include this node).\n   * Usage:\n   *    node.eachNode(function () { ... }); // preorder\n   *    node.eachNode('preorder', function () { ... }); // preorder\n   *    node.eachNode('postorder', function () { ... }); // postorder\n   *    node.eachNode(\n   *        {order: 'postorder', attr: 'viewChildren'},\n   *        function () { ... }\n   *    ); // postorder\n   *\n   * @param {(Object|string)} options If string, means order.\n   * @param {string=} options.order 'preorder' or 'postorder'\n   * @param {string=} options.attr 'children' or 'viewChildren'\n   * @param {Function} cb If in preorder and return false,\n   *                      its subtree will not be visited.\n   * @param {Object} [context]\n   */\n  eachNode: function (options, cb, context) {\n    if (typeof options === 'function') {\n      context = cb;\n      cb = options;\n      options = null;\n    }\n\n    options = options || {};\n\n    if (zrUtil.isString(options)) {\n      options = {\n        order: options\n      };\n    }\n\n    var order = options.order || 'preorder';\n    var children = this[options.attr || 'children'];\n    var suppressVisitSub;\n    order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n    for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n      children[i].eachNode(options, cb, context);\n    }\n\n    order === 'postorder' && cb.call(context, this);\n  },\n\n  /**\n   * Update depth and height of this subtree.\n   *\n   * @param  {number} depth\n   */\n  updateDepthAndHeight: function (depth) {\n    var height = 0;\n    this.depth = depth;\n\n    for (var i = 0; i < this.children.length; i++) {\n      var child = this.children[i];\n      child.updateDepthAndHeight(depth + 1);\n\n      if (child.height > height) {\n        height = child.height;\n      }\n    }\n\n    this.height = height + 1;\n  },\n\n  /**\n   * @param  {string} id\n   * @return {module:echarts/data/Tree~TreeNode}\n   */\n  getNodeById: function (id) {\n    if (this.getId() === id) {\n      return this;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].getNodeById(id);\n\n      if (res) {\n        return res;\n      }\n    }\n  },\n\n  /**\n   * @param {module:echarts/data/Tree~TreeNode} node\n   * @return {boolean}\n   */\n  contains: function (node) {\n    if (node === this) {\n      return true;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].contains(node);\n\n      if (res) {\n        return res;\n      }\n    }\n  },\n\n  /**\n   * @param {boolean} includeSelf Default false.\n   * @return {Array.<module:echarts/data/Tree~TreeNode>} order: [root, child, grandchild, ...]\n   */\n  getAncestors: function (includeSelf) {\n    var ancestors = [];\n    var node = includeSelf ? this : this.parentNode;\n\n    while (node) {\n      ancestors.push(node);\n      node = node.parentNode;\n    }\n\n    ancestors.reverse();\n    return ancestors;\n  },\n\n  /**\n   * @param {string|Array=} [dimension='value'] Default 'value'. can be 0, 1, 2, 3\n   * @return {number} Value.\n   */\n  getValue: function (dimension) {\n    var data = this.hostTree.data;\n    return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n  },\n\n  /**\n   * @param {Object} layout\n   * @param {boolean=} [merge=false]\n   */\n  setLayout: function (layout, merge) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n  },\n\n  /**\n   * @return {Object} layout\n   */\n  getLayout: function () {\n    return this.hostTree.data.getItemLayout(this.dataIndex);\n  },\n\n  /**\n   * @param {string} [path]\n   * @return {module:echarts/model/Model}\n   */\n  getModel: function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var hostTree = this.hostTree;\n    var itemModel = hostTree.data.getItemModel(this.dataIndex);\n    var levelModel = this.getLevelModel();\n    var leavesModel;\n\n    if (!levelModel && (this.children.length === 0 || this.children.length !== 0 && this.isExpand === false)) {\n      leavesModel = this.getLeavesModel();\n    }\n\n    return itemModel.getModel(path, (levelModel || leavesModel || hostTree.hostModel).getModel(path));\n  },\n\n  /**\n   * @return {module:echarts/model/Model}\n   */\n  getLevelModel: function () {\n    return (this.hostTree.levelModels || [])[this.depth];\n  },\n\n  /**\n   * @return {module:echarts/model/Model}\n   */\n  getLeavesModel: function () {\n    return this.hostTree.leavesModel;\n  },\n\n  /**\n   * @example\n   *  setItemVisual('color', color);\n   *  setItemVisual({\n   *      'color': color\n   *  });\n   */\n  setVisual: function (key, value) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n  },\n\n  /**\n   * Get item visual\n   */\n  getVisual: function (key, ignoreParent) {\n    return this.hostTree.data.getItemVisual(this.dataIndex, key, ignoreParent);\n  },\n\n  /**\n   * @public\n   * @return {number}\n   */\n  getRawIndex: function () {\n    return this.hostTree.data.getRawIndex(this.dataIndex);\n  },\n\n  /**\n   * @public\n   * @return {string}\n   */\n  getId: function () {\n    return this.hostTree.data.getId(this.dataIndex);\n  },\n\n  /**\n   * if this is an ancestor of another node\n   *\n   * @public\n   * @param {TreeNode} node another node\n   * @return {boolean} if is ancestor\n   */\n  isAncestorOf: function (node) {\n    var parent = node.parentNode;\n\n    while (parent) {\n      if (parent === this) {\n        return true;\n      }\n\n      parent = parent.parentNode;\n    }\n\n    return false;\n  },\n\n  /**\n   * if this is an descendant of another node\n   *\n   * @public\n   * @param {TreeNode} node another node\n   * @return {boolean} if is descendant\n   */\n  isDescendantOf: function (node) {\n    return node !== this && node.isAncestorOf(this);\n  }\n};\n/**\n * @constructor\n * @alias module:echarts/data/Tree\n * @param {module:echarts/model/Model} hostModel\n * @param {Array.<Object>} levelOptions\n * @param {Object} leavesOption\n */\n\nfunction Tree(hostModel, levelOptions, leavesOption) {\n  /**\n   * @type {module:echarts/data/Tree~TreeNode}\n   * @readOnly\n   */\n  this.root;\n  /**\n   * @type {module:echarts/data/List}\n   * @readOnly\n   */\n\n  this.data;\n  /**\n   * Index of each item is the same as the raw index of coresponding list item.\n   * @private\n   * @type {Array.<module:echarts/data/Tree~TreeNode}\n   */\n\n  this._nodes = [];\n  /**\n   * @private\n   * @readOnly\n   * @type {module:echarts/model/Model}\n   */\n\n  this.hostModel = hostModel;\n  /**\n   * @private\n   * @readOnly\n   * @type {Array.<module:echarts/model/Model}\n   */\n\n  this.levelModels = zrUtil.map(levelOptions || [], function (levelDefine) {\n    return new Model(levelDefine, hostModel, hostModel.ecModel);\n  });\n  this.leavesModel = new Model(leavesOption || {}, hostModel, hostModel.ecModel);\n}\n\nTree.prototype = {\n  constructor: Tree,\n  type: 'tree',\n\n  /**\n   * Travel this subtree (include this node).\n   * Usage:\n   *    node.eachNode(function () { ... }); // preorder\n   *    node.eachNode('preorder', function () { ... }); // preorder\n   *    node.eachNode('postorder', function () { ... }); // postorder\n   *    node.eachNode(\n   *        {order: 'postorder', attr: 'viewChildren'},\n   *        function () { ... }\n   *    ); // postorder\n   *\n   * @param {(Object|string)} options If string, means order.\n   * @param {string=} options.order 'preorder' or 'postorder'\n   * @param {string=} options.attr 'children' or 'viewChildren'\n   * @param {Function} cb\n   * @param {Object}   [context]\n   */\n  eachNode: function (options, cb, context) {\n    this.root.eachNode(options, cb, context);\n  },\n\n  /**\n   * @param {number} dataIndex\n   * @return {module:echarts/data/Tree~TreeNode}\n   */\n  getNodeByDataIndex: function (dataIndex) {\n    var rawIndex = this.data.getRawIndex(dataIndex);\n    return this._nodes[rawIndex];\n  },\n\n  /**\n   * @param {string} name\n   * @return {module:echarts/data/Tree~TreeNode}\n   */\n  getNodeByName: function (name) {\n    return this.root.getNodeByName(name);\n  },\n\n  /**\n   * Update item available by list,\n   * when list has been performed options like 'filterSelf' or 'map'.\n   */\n  update: function () {\n    var data = this.data;\n    var nodes = this._nodes;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n  },\n\n  /**\n   * Clear all layouts\n   */\n  clearLayouts: function () {\n    this.data.clearItemLayouts();\n  }\n};\n/**\n * data node format:\n * {\n *     name: ...\n *     value: ...\n *     children: [\n *         {\n *             name: ...\n *             value: ...\n *             children: ...\n *         },\n *         ...\n *     ]\n * }\n *\n * @static\n * @param {Object} dataRoot Root node.\n * @param {module:echarts/model/Model} hostModel\n * @param {Object} treeOptions\n * @param {Array.<Object>} treeOptions.levels\n * @param {Array.<Object>} treeOptions.leaves\n * @return module:echarts/data/Tree\n */\n\nTree.createTree = function (dataRoot, hostModel, treeOptions) {\n  var tree = new Tree(hostModel, treeOptions.levels, treeOptions.leaves);\n  var listData = [];\n  var dimMax = 1;\n  buildHierarchy(dataRoot);\n\n  function buildHierarchy(dataNode, parentNode) {\n    var value = dataNode.value;\n    dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n    listData.push(dataNode);\n    var node = new TreeNode(dataNode.name, tree);\n    parentNode ? addChild(node, parentNode) : tree.root = node;\n\n    tree._nodes.push(node);\n\n    var children = dataNode.children;\n\n    if (children) {\n      for (var i = 0; i < children.length; i++) {\n        buildHierarchy(children[i], node);\n      }\n    }\n  }\n\n  tree.root.updateDepthAndHeight(0);\n  var dimensionsInfo = createDimensions(listData, {\n    coordDimensions: ['value'],\n    dimensionsCount: dimMax\n  });\n  var list = new List(dimensionsInfo, hostModel);\n  list.initData(listData);\n  linkList({\n    mainData: list,\n    struct: tree,\n    structAttr: 'tree'\n  });\n  tree.update();\n  return tree;\n};\n/**\n * It is needed to consider the mess of 'list', 'hostModel' when creating a TreeNote,\n * so this function is not ready and not necessary to be public.\n *\n * @param {(module:echarts/data/Tree~TreeNode|Object)} child\n */\n\n\nfunction addChild(child, node) {\n  var children = node.children;\n\n  if (child.parentNode === node) {\n    return;\n  }\n\n  children.push(child);\n  child.parentNode = node;\n}\n\nvar _default = Tree;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/Tree.js\n// module id = 4f7s\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @payload\n * @property {string} parallelAxisId\n * @property {Array.<Array.<number>>} intervals\n */\nvar actionInfo = {\n  type: 'axisAreaSelect',\n  event: 'axisAreaSelected' // update: 'updateVisual'\n\n};\necharts.registerAction(actionInfo, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'parallelAxis',\n    query: payload\n  }, function (parallelAxisModel) {\n    parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n  });\n});\n/**\n * @payload\n */\n\necharts.registerAction('parallelAxisExpand', function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'parallel',\n    query: payload\n  }, function (parallelModel) {\n    parallelModel.setAxisExpand(payload);\n  });\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis/parallelAxisAction.js\n// module id = 4iki\n// module chunks = 0","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/normalizeHeaderName.js\n// module id = 4pJO\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Region = require(\"../Region\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 鍗楁捣璇稿矝\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n  for (var k = 0; k < points[i].length; k++) {\n    points[i][k][0] /= 10.5;\n    points[i][k][1] /= -10.5 / 0.75;\n    points[i][k][0] += geoCoord[0];\n    points[i][k][1] += geoCoord[1];\n  }\n}\n\nfunction _default(geo) {\n  if (geo.map === 'china') {\n    geo.regions.push(new Region('鍗楁捣璇稿矝', zrUtil.map(points, function (exterior) {\n      return {\n        type: 'polygon',\n        exterior: exterior\n      };\n    }), geoCoord));\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/fix/nanhai.js\n// module id = 4uX9\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/_freeGlobal.js\n// module id = 4uwL\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar _number = require(\"../../util/number\");\n\nvar getPercentWithPrecision = _number.getPercentWithPrecision;\n\nvar dataSelectableMixin = require(\"../../component/helper/selectableMixin\");\n\nvar _dataProvider = require(\"../../data/helper/dataProvider\");\n\nvar retrieveRawAttr = _dataProvider.retrieveRawAttr;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PieSeries = echarts.extendSeriesModel({\n  type: 'series.pie',\n  // Overwrite\n  init: function (option) {\n    PieSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n    this.legendDataProvider = function () {\n      return this.getRawData();\n    };\n\n    this.updateSelectedMap(this._createSelectableList());\n\n    this._defaultLabelLine(option);\n  },\n  // Overwrite\n  mergeOption: function (newOption) {\n    PieSeries.superCall(this, 'mergeOption', newOption);\n    this.updateSelectedMap(this._createSelectableList());\n  },\n  getInitialData: function (option, ecModel) {\n    return createListSimply(this, ['value']);\n  },\n  _createSelectableList: function () {\n    var data = this.getRawData();\n    var valueDim = data.mapDimension('value');\n    var targetList = [];\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      targetList.push({\n        name: data.getName(i),\n        value: data.get(valueDim, i),\n        selected: retrieveRawAttr(data, i, 'selected')\n      });\n    }\n\n    return targetList;\n  },\n  // Overwrite\n  getDataParams: function (dataIndex) {\n    var data = this.getData();\n    var params = PieSeries.superCall(this, 'getDataParams', dataIndex); // FIXME toFixed?\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  },\n  _defaultLabelLine: function (option) {\n    // Extend labelLine emphasis\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    hoverAnimation: true,\n    // 榛樿鍏ㄥ眬灞呬腑\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    // 榛樿椤烘椂閽圽n    clockwise: true,\n    startAngle: 90,\n    // 鏈�灏忚搴︽敼涓�0\n    minAngle: 0,\n    // 閫変腑鏃舵墖鍖哄亸绉婚噺\n    selectedOffset: 10,\n    // 楂樹寒鎵囧尯鍋忕Щ閲廫n    hoverOffset: 10,\n    // If use strategy to avoid label overlapping\n    avoidLabelOverlap: true,\n    // 閫夋嫨妯″紡锛岄粯璁ゅ叧闂紝鍙�塻ingle锛宮ultiple\n    // selectedMode: false,\n    // 鍗椾竵鏍煎皵鐜懓鍥炬ā寮忥紝'radius'锛堝崐寰勶級 | 'area'锛堥潰绉級\n    // roseType: null,\n    percentPrecision: 2,\n    // If still show when all data zero.\n    stillShowZeroSum: true,\n    // cursor: null,\n    label: {\n      // If rotate around circle\n      rotate: false,\n      show: true,\n      // 'outer', 'inside', 'center'\n      position: 'outer' // formatter: 鏍囩鏂囨湰鏍煎紡鍣紝鍚孴ooltip.formatter锛屼笉鏀寔寮傛鍥炶皟\n      // 榛樿浣跨敤鍏ㄥ眬鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE\n      // distance: 褰損osition涓篿nner鏃舵湁鏁堬紝涓簂abel浣嶇疆鍒板渾蹇冪殑璺濈涓庡渾鍗婂緞(鐜姸鍥句负鍐呭鍗婂緞鍜�)鐨勬瘮渚嬬郴鏁癨n\n    },\n    // Enabled when label.normal.position is 'outer'\n    labelLine: {\n      show: true,\n      // 寮曞绾夸袱娈典腑鐨勭涓�娈甸暱搴n      length: 15,\n      // 寮曞绾夸袱娈典腑鐨勭浜屾闀垮害\n      length2: 15,\n      smooth: false,\n      lineStyle: {\n        // color: 鍚勫紓,\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    // Animation type canbe expansion, scale\n    animationType: 'expansion',\n    animationEasing: 'cubicOut'\n  }\n});\nzrUtil.mixin(PieSeries, dataSelectableMixin);\nvar _default = PieSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/pie/PieSeries.js\n// module id = 4xJx\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _roamHelper = require(\"./roamHelper\");\n\nvar updateCenterAndZoom = _roamHelper.updateCenterAndZoom;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @payload\n * @property {string} [componentType=series]\n * @property {number} [dx]\n * @property {number} [dy]\n * @property {number} [zoom]\n * @property {number} [originX]\n * @property {number} [originY]\n */\necharts.registerAction({\n  type: 'geoRoam',\n  event: 'geoRoam',\n  update: 'updateTransform'\n}, function (payload, ecModel) {\n  var componentType = payload.componentType || 'series';\n  ecModel.eachComponent({\n    mainType: componentType,\n    query: payload\n  }, function (componentModel) {\n    var geo = componentModel.coordinateSystem;\n\n    if (geo.type !== 'geo') {\n      return;\n    }\n\n    var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\n    componentModel.setCenter && componentModel.setCenter(res.center);\n    componentModel.setZoom && componentModel.setZoom(res.zoom); // All map series with same `map` use the same geo coordinate system\n    // So the center and zoom must be in sync. Include the series not selected by legend\n\n    if (componentType === 'series') {\n      zrUtil.each(componentModel.seriesGroup, function (seriesModel) {\n        seriesModel.setCenter(res.center);\n        seriesModel.setZoom(res.zoom);\n      });\n    }\n  });\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/action/geoRoam.js\n// module id = 5B9r\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar throttleUtil = require(\"../util/throttle\");\n\nvar parallelPreprocessor = require(\"../coord/parallel/parallelPreprocessor\");\n\nrequire(\"../coord/parallel/parallelCreator\");\n\nrequire(\"../coord/parallel/ParallelModel\");\n\nrequire(\"./parallelAxis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar CLICK_THRESHOLD = 5; // > 4\n// Parallel view\n\necharts.extendComponentView({\n  type: 'parallel',\n  render: function (parallelModel, ecModel, api) {\n    this._model = parallelModel;\n    this._api = api;\n\n    if (!this._handlers) {\n      this._handlers = {};\n      zrUtil.each(handlers, function (handler, eventName) {\n        api.getZr().on(eventName, this._handlers[eventName] = zrUtil.bind(handler, this));\n      }, this);\n    }\n\n    throttleUtil.createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n  },\n  dispose: function (ecModel, api) {\n    zrUtil.each(this._handlers, function (handler, eventName) {\n      api.getZr().off(eventName, handler);\n    });\n    this._handlers = null;\n  },\n\n  /**\n   * @param {Object} [opt] If null, cancle the last action triggering for debounce.\n   */\n  _throttledDispatchExpand: function (opt) {\n    this._dispatchExpand(opt);\n  },\n  _dispatchExpand: function (opt) {\n    opt && this._api.dispatchAction(zrUtil.extend({\n      type: 'parallelAxisExpand'\n    }, opt));\n  }\n});\nvar handlers = {\n  mousedown: function (e) {\n    if (checkTrigger(this, 'click')) {\n      this._mouseDownPoint = [e.offsetX, e.offsetY];\n    }\n  },\n  mouseup: function (e) {\n    var mouseDownPoint = this._mouseDownPoint;\n\n    if (checkTrigger(this, 'click') && mouseDownPoint) {\n      var point = [e.offsetX, e.offsetY];\n      var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n      if (dist > CLICK_THRESHOLD) {\n        return;\n      }\n\n      var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n      result.behavior !== 'none' && this._dispatchExpand({\n        axisExpandWindow: result.axisExpandWindow\n      });\n    }\n\n    this._mouseDownPoint = null;\n  },\n  mousemove: function (e) {\n    // Should do nothing when brushing.\n    if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n      return;\n    }\n\n    var model = this._model;\n    var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n    var behavior = result.behavior;\n    behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n    this._throttledDispatchExpand(behavior === 'none' ? null // Cancle the last trigger, in case that mouse slide out of the area quickly.\n    : {\n      axisExpandWindow: result.axisExpandWindow,\n      // Jumping uses animation, and sliding suppresses animation.\n      animation: behavior === 'jump' ? null : false\n    });\n  }\n};\n\nfunction checkTrigger(view, triggerOn) {\n  var model = view._model;\n  return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\necharts.registerPreprocessor(parallelPreprocessor);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/parallel.js\n// module id = 5ErN\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_wks-define.js\n// module id = 5FyJ\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      // Timeline controlStyle has other properties besides normal and emphasis\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine'); // treemap\n\n  convertNormalEmphasis(opt, 'upperLabel'); // graph\n\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  // Check whether is not object (string\\null\\undefined ...)\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var propName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(propName)) {\n        labelOptSingle[propName] = textStyle[propName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label'); // treemap\n\n  compatTextStyle(seriesOpt, 'upperLabel'); // graph\n\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label'); // treemap\n\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel'); // graph\n\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data; // Break with ec3: if `setOption` again, there may be no `type` in option,\n  // then the backward compat based on option type will not be performed.\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  } // mark point data\n\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  } // mark line data\n\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  } // Series\n\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  } // sunburst starts from ec4, so it does not need to compat levels.\n\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nfunction _default(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  }); // radar.name.textStyle\n\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/preprocessor/helper/compatStyle.js\n// module id = 5MFU\n// module chunks = 0","var zrUtil = require(\"../core/util\");\n\nvar Gradient = require(\"./Gradient\");\n\n/**\n * x, y, x2, y2 are all percent from 0 to 1\n * @param {number} [x=0]\n * @param {number} [y=0]\n * @param {number} [x2=1]\n * @param {number} [y2=0]\n * @param {Array.<Object>} colorStops\n * @param {boolean} [globalCoord=false]\n */\nvar LinearGradient = function (x, y, x2, y2, colorStops, globalCoord) {\n  // Should do nothing more in this constructor. Because gradient can be\n  // declard by `color: {type: 'linear', colorStops: ...}`, where\n  // this constructor will not be called.\n  this.x = x == null ? 0 : x;\n  this.y = y == null ? 0 : y;\n  this.x2 = x2 == null ? 1 : x2;\n  this.y2 = y2 == null ? 0 : y2; // Can be cloned\n\n  this.type = 'linear'; // If use global coord\n\n  this.global = globalCoord || false;\n  Gradient.call(this, colorStops);\n};\n\nLinearGradient.prototype = {\n  constructor: LinearGradient\n};\nzrUtil.inherits(LinearGradient, Gradient);\nvar _default = LinearGradient;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/LinearGradient.js\n// module id = 5ON6\n// module chunks = 0","/*!\n * Determine if an object is a Buffer\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n  return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n  return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n  return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_is-buffer@1.1.6@is-buffer/index.js\n// module id = 5SCX\n// module chunks = 0","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _echarts = require(\"./lib/echarts\");\n\n(function () {\n  for (var key in _echarts) {\n    if (_echarts == null || !_echarts.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;\n    exports[key] = _echarts[key];\n  }\n})();\n\nvar _export = require(\"./lib/export\");\n\n(function () {\n  for (var key in _export) {\n    if (_export == null || !_export.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;\n    exports[key] = _export[key];\n  }\n})();\n\nrequire(\"./lib/component/dataset\");\n\nrequire(\"./lib/chart/line\");\n\nrequire(\"./lib/chart/bar\");\n\nrequire(\"./lib/chart/pie\");\n\nrequire(\"./lib/chart/scatter\");\n\nrequire(\"./lib/chart/radar\");\n\nrequire(\"./lib/chart/map\");\n\nrequire(\"./lib/chart/tree\");\n\nrequire(\"./lib/chart/treemap\");\n\nrequire(\"./lib/chart/graph\");\n\nrequire(\"./lib/chart/gauge\");\n\nrequire(\"./lib/chart/funnel\");\n\nrequire(\"./lib/chart/parallel\");\n\nrequire(\"./lib/chart/sankey\");\n\nrequire(\"./lib/chart/boxplot\");\n\nrequire(\"./lib/chart/candlestick\");\n\nrequire(\"./lib/chart/effectScatter\");\n\nrequire(\"./lib/chart/lines\");\n\nrequire(\"./lib/chart/heatmap\");\n\nrequire(\"./lib/chart/pictorialBar\");\n\nrequire(\"./lib/chart/themeRiver\");\n\nrequire(\"./lib/chart/sunburst\");\n\nrequire(\"./lib/chart/custom\");\n\nrequire(\"./lib/component/graphic\");\n\nrequire(\"./lib/component/grid\");\n\nrequire(\"./lib/component/legendScroll\");\n\nrequire(\"./lib/component/tooltip\");\n\nrequire(\"./lib/component/axisPointer\");\n\nrequire(\"./lib/component/polar\");\n\nrequire(\"./lib/component/geo\");\n\nrequire(\"./lib/component/parallel\");\n\nrequire(\"./lib/component/singleAxis\");\n\nrequire(\"./lib/component/brush\");\n\nrequire(\"./lib/component/calendar\");\n\nrequire(\"./lib/component/title\");\n\nrequire(\"./lib/component/dataZoom\");\n\nrequire(\"./lib/component/visualMap\");\n\nrequire(\"./lib/component/markPoint\");\n\nrequire(\"./lib/component/markLine\");\n\nrequire(\"./lib/component/markArea\");\n\nrequire(\"./lib/component/timeline\");\n\nrequire(\"./lib/component/toolbox\");\n\nrequire(\"zrender/lib/vml/vml\");\n\nrequire(\"zrender/lib/svg/svg\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/index.js\n// module id = 5YEj\n// module chunks = 0","var Eventful = require(\"../mixin/Eventful\");\n\nexports.Dispatcher = Eventful;\n\nvar env = require(\"./env\");\n\n/**\n * 浜嬩欢杈呭姪绫籠n * @module zrender/core/event\n * @author Kener (@Kener-鏋楀嘲, kener.linfeng@gmail.com)\n */\nvar isDomLevel2 = typeof window !== 'undefined' && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\n\nfunction getBoundingClientRect(el) {\n  // BlackBerry 5, iOS 3 (original iPhone) don't have getBoundingRect\n  return el.getBoundingClientRect ? el.getBoundingClientRect() : {\n    left: 0,\n    top: 0\n  };\n} // `calculate` is optional, default false\n\n\nfunction clientToLocal(el, e, out, calculate) {\n  out = out || {}; // According to the W3C Working Draft, offsetX and offsetY should be relative\n  // to the padding edge of the target element. The only browser using this convention\n  // is IE. Webkit uses the border edge, Opera uses the content edge, and FireFox does\n  // not support the properties.\n  // (see http://www.jacklmoore.com/notes/mouse-position/)\n  // In zr painter.dom, padding edge equals to border edge.\n  // FIXME\n  // When mousemove event triggered on ec tooltip, target is not zr painter.dom, and\n  // offsetX/Y is relative to e.target, where the calculation of zrX/Y via offsetX/Y\n  // is too complex. So css-transfrom dont support in this case temporarily.\n\n  if (calculate || !env.canvasSupported) {\n    defaultGetZrXY(el, e, out);\n  } // Caution: In FireFox, layerX/layerY Mouse position relative to the closest positioned\n  // ancestor element, so we should make sure el is positioned (e.g., not position:static).\n  // BTW1, Webkit don't return the same results as FF in non-simple cases (like add\n  // zoom-factor, overflow / opacity layers, transforms ...)\n  // BTW2, (ev.offsetY || ev.pageY - $(ev.target).offset().top) is not correct in preserve-3d.\n  // <https://bugs.jquery.com/ticket/8523#comment:14>\n  // BTW3, In ff, offsetX/offsetY is always 0.\n  else if (env.browser.firefox && e.layerX != null && e.layerX !== e.offsetX) {\n      out.zrX = e.layerX;\n      out.zrY = e.layerY;\n    } // For IE6+, chrome, safari, opera. (When will ff support offsetX?)\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n      } // For some other device, e.g., IOS safari.\n      else {\n          defaultGetZrXY(el, e, out);\n        }\n\n  return out;\n}\n\nfunction defaultGetZrXY(el, e, out) {\n  // This well-known method below does not support css transform.\n  var box = getBoundingClientRect(el);\n  out.zrX = e.clientX - box.left;\n  out.zrY = e.clientY - box.top;\n}\n/**\n * 濡傛灉瀛樺湪绗笁鏂瑰祵鍏ョ殑涓�浜沝om瑙﹀彂鐨勪簨浠讹紝鎴杢ouch浜嬩欢锛岄渶瑕佽浆鎹竴涓嬩簨浠跺潗鏍�.\n * `calculate` is optional, default false.\n */\n\n\nfunction normalizeEvent(el, e, calculate) {\n  e = e || window.event;\n\n  if (e.zrX != null) {\n    return e;\n  }\n\n  var eventType = e.type;\n  var isTouch = eventType && eventType.indexOf('touch') >= 0;\n\n  if (!isTouch) {\n    clientToLocal(el, e, e, calculate);\n    e.zrDelta = e.wheelDelta ? e.wheelDelta / 120 : -(e.detail || 0) / 3;\n  } else {\n    var touch = eventType != 'touchend' ? e.targetTouches[0] : e.changedTouches[0];\n    touch && clientToLocal(el, touch, e, calculate);\n  } // Add which for click: 1 === left; 2 === middle; 3 === right; otherwise: 0;\n  // See jQuery: https://github.com/jquery/jquery/blob/master/src/event.js\n  // If e.which has been defined, if may be readonly,\n  // see: https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/which\n\n\n  var button = e.button;\n\n  if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n    e.which = button & 1 ? 1 : button & 2 ? 3 : button & 4 ? 2 : 0;\n  }\n\n  return e;\n}\n/**\n * @param {HTMLElement} el\n * @param {string} name\n * @param {Function} handler\n */\n\n\nfunction addEventListener(el, name, handler) {\n  if (isDomLevel2) {\n    // Reproduct the console warning:\n    // [Violation] Added non-passive event listener to a scroll-blocking <some> event.\n    // Consider marking event handler as 'passive' to make the page more responsive.\n    // Just set console log level: verbose in chrome dev tool.\n    // then the warning log will be printed when addEventListener called.\n    // See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n    // We have not yet found a neat way to using passive. Because in zrender the dom event\n    // listener delegate all of the upper events of element. Some of those events need\n    // to prevent default. For example, the feature `preventDefaultMouseMove` of echarts.\n    // Before passive can be adopted, these issues should be considered:\n    // (1) Whether and how a zrender user specifies an event listener passive. And by default,\n    // passive or not.\n    // (2) How to tread that some zrender event listener is passive, and some is not. If\n    // we use other way but not preventDefault of mousewheel and touchmove, browser\n    // compatibility should be handled.\n    // var opts = (env.passiveSupported && name === 'mousewheel')\n    //     ? {passive: true}\n    //     // By default, the third param of el.addEventListener is `capture: false`.\n    //     : void 0;\n    // el.addEventListener(name, handler /* , opts */);\n    el.addEventListener(name, handler);\n  } else {\n    el.attachEvent('on' + name, handler);\n  }\n}\n\nfunction removeEventListener(el, name, handler) {\n  if (isDomLevel2) {\n    el.removeEventListener(name, handler);\n  } else {\n    el.detachEvent('on' + name, handler);\n  }\n}\n/**\n * preventDefault and stopPropagation.\n * Notice: do not do that in zrender. Upper application\n * do that if necessary.\n *\n * @memberOf module:zrender/core/event\n * @method\n * @param {Event} e : event瀵硅薄\n */\n\n\nvar stop = isDomLevel2 ? function (e) {\n  e.preventDefault();\n  e.stopPropagation();\n  e.cancelBubble = true;\n} : function (e) {\n  e.returnValue = false;\n  e.cancelBubble = true;\n};\n\nfunction notLeftMouse(e) {\n  // If e.which is undefined, considered as left mouse event.\n  return e.which > 1;\n} // 鍋氬悜涓婂吋瀹筡n\n\nexports.clientToLocal = clientToLocal;\nexports.normalizeEvent = normalizeEvent;\nexports.addEventListener = addEventListener;\nexports.removeEventListener = removeEventListener;\nexports.stop = stop;\nexports.notLeftMouse = notLeftMouse;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/event.js\n// module id = 5gvs\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-keys.js\n// module id = 5pnV\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../util/graphic\");\n\nrequire(\"../coord/cartesian/Grid\");\n\nrequire(\"./axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Grid view\necharts.extendComponentView({\n  type: 'grid',\n  render: function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new graphic.Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: zrUtil.defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  }\n});\necharts.registerPreprocessor(function (option) {\n  // Only create grid when need\n  if (option.xAxis && option.yAxis && !option.grid) {\n    option.grid = {};\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/gridSimple.js\n// module id = 5zae\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar Line = require(\"./Line\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar curveUtil = require(\"zrender/lib/core/curve\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Provide effect for line\n * @module echarts/chart/helper/EffectLine\n */\n\n/**\n * @constructor\n * @extends {module:zrender/graphic/Group}\n * @alias {module:echarts/chart/helper/Line}\n */\nfunction EffectLine(lineData, idx, seriesScope) {\n  graphic.Group.call(this);\n  this.add(this.createLine(lineData, idx, seriesScope));\n\n  this._updateEffectSymbol(lineData, idx);\n}\n\nvar effectLineProto = EffectLine.prototype;\n\neffectLineProto.createLine = function (lineData, idx, seriesScope) {\n  return new Line(lineData, idx, seriesScope);\n};\n\neffectLineProto._updateEffectSymbol = function (lineData, idx) {\n  var itemModel = lineData.getItemModel(idx);\n  var effectModel = itemModel.getModel('effect');\n  var size = effectModel.get('symbolSize');\n  var symbolType = effectModel.get('symbol');\n\n  if (!zrUtil.isArray(size)) {\n    size = [size, size];\n  }\n\n  var color = effectModel.get('color') || lineData.getItemVisual(idx, 'color');\n  var symbol = this.childAt(1);\n\n  if (this._symbolType !== symbolType) {\n    // Remove previous\n    this.remove(symbol);\n    symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n    symbol.z2 = 100;\n    symbol.culling = true;\n    this.add(symbol);\n  } // Symbol may be removed if loop is false\n\n\n  if (!symbol) {\n    return;\n  } // Shadow color is same with color in default\n\n\n  symbol.setStyle('shadowColor', color);\n  symbol.setStyle(effectModel.getItemStyle(['color']));\n  symbol.attr('scale', size);\n  symbol.setColor(color);\n  symbol.attr('scale', size);\n  this._symbolType = symbolType;\n\n  this._updateEffectAnimation(lineData, effectModel, idx);\n};\n\neffectLineProto._updateEffectAnimation = function (lineData, effectModel, idx) {\n  var symbol = this.childAt(1);\n\n  if (!symbol) {\n    return;\n  }\n\n  var self = this;\n  var points = lineData.getItemLayout(idx);\n  var period = effectModel.get('period') * 1000;\n  var loop = effectModel.get('loop');\n  var constantSpeed = effectModel.get('constantSpeed');\n  var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n    return idx / lineData.count() * period / 3;\n  });\n  var isDelayFunc = typeof delayExpr === 'function'; // Ignore when updating\n\n  symbol.ignore = true;\n  this.updateAnimationPoints(symbol, points);\n\n  if (constantSpeed > 0) {\n    period = this.getLineLength(symbol) / constantSpeed * 1000;\n  }\n\n  if (period !== this._period || loop !== this._loop) {\n    symbol.stopAnimation();\n    var delay = delayExpr;\n\n    if (isDelayFunc) {\n      delay = delayExpr(idx);\n    }\n\n    if (symbol.__t > 0) {\n      delay = -period * symbol.__t;\n    }\n\n    symbol.__t = 0;\n    var animator = symbol.animate('', loop).when(period, {\n      __t: 1\n    }).delay(delay).during(function () {\n      self.updateSymbolPosition(symbol);\n    });\n\n    if (!loop) {\n      animator.done(function () {\n        self.remove(symbol);\n      });\n    }\n\n    animator.start();\n  }\n\n  this._period = period;\n  this._loop = loop;\n};\n\neffectLineProto.getLineLength = function (symbol) {\n  // Not so accurate\n  return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n};\n\neffectLineProto.updateAnimationPoints = function (symbol, points) {\n  symbol.__p1 = points[0];\n  symbol.__p2 = points[1];\n  symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n};\n\neffectLineProto.updateData = function (lineData, idx, seriesScope) {\n  this.childAt(0).updateData(lineData, idx, seriesScope);\n\n  this._updateEffectSymbol(lineData, idx);\n};\n\neffectLineProto.updateSymbolPosition = function (symbol) {\n  var p1 = symbol.__p1;\n  var p2 = symbol.__p2;\n  var cp1 = symbol.__cp1;\n  var t = symbol.__t;\n  var pos = symbol.position;\n  var quadraticAt = curveUtil.quadraticAt;\n  var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n  pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n  pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t); // Tangent\n\n  var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n  var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n  symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n  symbol.ignore = false;\n};\n\neffectLineProto.updateLayout = function (lineData, idx) {\n  this.childAt(0).updateLayout(lineData, idx);\n  var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n  this._updateEffectAnimation(lineData, effectModel, idx);\n};\n\nzrUtil.inherits(EffectLine, graphic.Group);\nvar _default = EffectLine;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/EffectLine.js\n// module id = 5zoN\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Model = require(\"./Model\");\n\nvar componentUtil = require(\"../util/component\");\n\nvar _clazz = require(\"../util/clazz\");\n\nvar enableClassManagement = _clazz.enableClassManagement;\nvar parseClassType = _clazz.parseClassType;\n\nvar _model = require(\"../util/model\");\n\nvar makeInner = _model.makeInner;\n\nvar layout = require(\"../util/layout\");\n\nvar boxLayoutMixin = require(\"./mixin/boxLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Component model\n *\n * @module echarts/model/Component\n */\nvar inner = makeInner();\n/**\n * @alias module:echarts/model/Component\n * @constructor\n * @param {Object} option\n * @param {module:echarts/model/Model} parentModel\n * @param {module:echarts/model/Model} ecModel\n */\n\nvar ComponentModel = Model.extend({\n  type: 'component',\n\n  /**\n   * @readOnly\n   * @type {string}\n   */\n  id: '',\n\n  /**\n   * Because simplified concept is probably better, series.name (or component.name)\n   * has been having too many resposibilities:\n   * (1) Generating id (which requires name in option should not be modified).\n   * (2) As an index to mapping series when merging option or calling API (a name\n   * can refer to more then one components, which is convinient is some case).\n   * (3) Display.\n   * @readOnly\n   */\n  name: '',\n\n  /**\n   * @readOnly\n   * @type {string}\n   */\n  mainType: '',\n\n  /**\n   * @readOnly\n   * @type {string}\n   */\n  subType: '',\n\n  /**\n   * @readOnly\n   * @type {number}\n   */\n  componentIndex: 0,\n\n  /**\n   * @type {Object}\n   * @protected\n   */\n  defaultOption: null,\n\n  /**\n   * @type {module:echarts/model/Global}\n   * @readOnly\n   */\n  ecModel: null,\n\n  /**\n   * key: componentType\n   * value:  Component model list, can not be null.\n   * @type {Object.<string, Array.<module:echarts/model/Model>>}\n   * @readOnly\n   */\n  dependentModels: [],\n\n  /**\n   * @type {string}\n   * @readOnly\n   */\n  uid: null,\n\n  /**\n   * Support merge layout params.\n   * Only support 'box' now (left/right/top/bottom/width/height).\n   * @type {string|Object} Object can be {ignoreSize: true}\n   * @readOnly\n   */\n  layoutMode: null,\n  $constructor: function (option, parentModel, ecModel, extraOpt) {\n    Model.call(this, option, parentModel, ecModel, extraOpt);\n    this.uid = componentUtil.getUID('ec_cpt_model');\n  },\n  init: function (option, parentModel, ecModel, extraOpt) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  },\n  mergeDefaultAndTheme: function (option, ecModel) {\n    var layoutMode = this.layoutMode;\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  },\n  mergeOption: function (option, extraOpt) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = this.layoutMode;\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  },\n  // Hooker after init or mergeOption\n  optionUpdated: function (newCptOption, isInit) {},\n  getDefaultOption: function () {\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var Class = this.constructor;\n\n      while (Class) {\n        var opt = Class.prototype.defaultOption;\n        opt && optList.push(opt);\n        Class = Class.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  },\n  getReferringComponents: function (mainType) {\n    return this.ecModel.queryComponents({\n      mainType: mainType,\n      index: this.get(mainType + 'Index', true),\n      id: this.get(mainType + 'Id', true)\n    });\n  }\n}); // Reset ComponentModel.extend, add preConstruct.\n// clazzUtil.enableClassExtend(\n//     ComponentModel,\n//     function (option, parentModel, ecModel, extraOpt) {\n//         // Set dependentModels, componentIndex, name, id, mainType, subType.\n//         zrUtil.extend(this, extraOpt);\n//         this.uid = componentUtil.getUID('componentModel');\n//         // this.setReadOnly([\n//         //     'type', 'id', 'uid', 'name', 'mainType', 'subType',\n//         //     'dependentModels', 'componentIndex'\n//         // ]);\n//     }\n// );\n// Add capability of registerClass, getClass, hasClass, registerSubTypeDefaulter and so on.\n\nenableClassManagement(ComponentModel, {\n  registerWhenExtend: true\n});\ncomponentUtil.enableSubTypeDefaulter(ComponentModel); // Add capability of ComponentModel.topologicalTravel.\n\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (Clazz) {\n    deps = deps.concat(Clazz.prototype.dependencies || []);\n  }); // Ensure main type.\n\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  }); // Hack dataset for convenience.\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nzrUtil.mixin(ComponentModel, boxLayoutMixin);\nvar _default = ComponentModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/Component.js\n// module id = 6/6c\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * payload: {\n *      brushIndex: number, or,\n *      brushId: string, or,\n *      brushName: string,\n *      globalRanges: Array\n * }\n */\necharts.registerAction({\n  type: 'brush',\n  event: 'brush'\n  /*, update: 'updateView' */\n\n}, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'brush',\n    query: payload\n  }, function (brushModel) {\n    brushModel.setAreas(payload.areas);\n  });\n});\n/**\n * payload: {\n *      brushComponents: [\n *          {\n *              brushId,\n *              brushIndex,\n *              brushName,\n *              series: [\n *                  {\n *                      seriesId,\n *                      seriesIndex,\n *                      seriesName,\n *                      rawIndices: [21, 34, ...]\n *                  },\n *                  ...\n *              ]\n *          },\n *          ...\n *      ]\n * }\n */\n\necharts.registerAction({\n  type: 'brushSelect',\n  event: 'brushSelected',\n  update: 'none'\n}, function () {});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/brush/brushAction.js\n// module id = 60fM\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BrushController = require(\"../helper/BrushController\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n  type: 'brush',\n  init: function (ecModel, api) {\n    /**\n     * @readOnly\n     * @type {module:echarts/model/Global}\n     */\n    this.ecModel = ecModel;\n    /**\n     * @readOnly\n     * @type {module:echarts/ExtensionAPI}\n     */\n\n    this.api = api;\n    /**\n     * @readOnly\n     * @type {module:echarts/component/brush/BrushModel}\n     */\n\n    this.model;\n    /**\n     * @private\n     * @type {module:echarts/component/helper/BrushController}\n     */\n\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n  },\n\n  /**\n   * @override\n   */\n  render: function (brushModel) {\n    this.model = brushModel;\n    return updateController.apply(this, arguments);\n  },\n\n  /**\n   * @override\n   */\n  updateTransform: updateController,\n\n  /**\n   * @override\n   */\n  updateView: updateController,\n  // /**\n  //  * @override\n  //  */\n  // updateLayout: updateController,\n  // /**\n  //  * @override\n  //  */\n  // updateVisual: updateController,\n\n  /**\n   * @override\n   */\n  dispose: function () {\n    this._brushController.dispose();\n  },\n\n  /**\n   * @private\n   */\n  _onBrush: function (areas, opt) {\n    var modelId = this.model.id;\n    this.model.brushTargetManager.setOutputRanges(areas, this.ecModel); // Action is not dispatched on drag end, because the drag end\n    // emits the same params with the last drag move event, and\n    // may have some delay when using touch pad, which makes\n    // animation not smooth (when using debounce).\n\n    (!opt.isEnd || opt.removeOnClick) && this.api.dispatchAction({\n      type: 'brush',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n  }\n});\n\nfunction updateController(brushModel, ecModel, api, payload) {\n  // Do not update controller when drawing.\n  (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/brush/BrushView.js\n// module id = 63n7\n// module chunks = 0","var util = require(\"./core/util\");\n\nvar env = require(\"./core/env\");\n\nvar Group = require(\"./container/Group\");\n\nvar timsort = require(\"./core/timsort\");\n\n// Use timsort because in most case elements are partially sorted\n// https://jsfiddle.net/pissang/jr4x7mdm/8/\nfunction shapeCompareFunc(a, b) {\n  if (a.zlevel === b.zlevel) {\n    if (a.z === b.z) {\n      // if (a.z2 === b.z2) {\n      //     // FIXME Slow has renderidx compare\n      //     // http://stackoverflow.com/questions/20883421/sorting-in-javascript-should-every-compare-function-have-a-return-0-statement\n      //     // https://github.com/v8/v8/blob/47cce544a31ed5577ffe2963f67acb4144ee0232/src/js/array.js#L1012\n      //     return a.__renderidx - b.__renderidx;\n      // }\n      return a.z2 - b.z2;\n    }\n\n    return a.z - b.z;\n  }\n\n  return a.zlevel - b.zlevel;\n}\n/**\n * 鍐呭浠撳簱 (M)\n * @alias module:zrender/Storage\n * @constructor\n */\n\n\nvar Storage = function () {\n  // jshint ignore:line\n  this._roots = [];\n  this._displayList = [];\n  this._displayListLen = 0;\n};\n\nStorage.prototype = {\n  constructor: Storage,\n\n  /**\n   * @param  {Function} cb\n   *\n   */\n  traverse: function (cb, context) {\n    for (var i = 0; i < this._roots.length; i++) {\n      this._roots[i].traverse(cb, context);\n    }\n  },\n\n  /**\n   * 杩斿洖鎵�鏈夊浘褰㈢殑缁樺埗闃熷垪\n   * @param {boolean} [update=false] 鏄惁鍦ㄨ繑鍥炲墠鏇存柊璇ユ暟缁刓n   * @param {boolean} [includeIgnore=false] 鏄惁鍖呭惈 ignore 鐨勬暟缁�, 鍦� update 涓� true 鐨勬椂鍊欐湁鏁圽n   *\n   * 璇﹁{@link module:zrender/graphic/Displayable.prototype.updateDisplayList}\n   * @return {Array.<module:zrender/graphic/Displayable>}\n   */\n  getDisplayList: function (update, includeIgnore) {\n    includeIgnore = includeIgnore || false;\n\n    if (update) {\n      this.updateDisplayList(includeIgnore);\n    }\n\n    return this._displayList;\n  },\n\n  /**\n   * 鏇存柊鍥惧舰鐨勭粯鍒堕槦鍒椼�俓n   * 姣忔缁樺埗鍓嶉兘浼氳皟鐢紝璇ユ柟娉曚細鍏堟繁搴︿紭鍏堥亶鍘嗘暣涓爲锛屾洿鏂版墍鏈塆roup鍜孲hape鐨勫彉鎹㈠苟涓旀妸鎵�鏈夊彲瑙佺殑Shape淇濆瓨鍒版暟缁勪腑锛孿n   * 鏈�鍚庢牴鎹粯鍒剁殑浼樺厛绾э紙zlevel > z > 鎻掑叆椤哄簭锛夋帓搴忓緱鍒扮粯鍒堕槦鍒梊n   * @param {boolean} [includeIgnore=false] 鏄惁鍖呭惈 ignore 鐨勬暟缁刓n   */\n  updateDisplayList: function (includeIgnore) {\n    this._displayListLen = 0;\n    var roots = this._roots;\n    var displayList = this._displayList;\n\n    for (var i = 0, len = roots.length; i < len; i++) {\n      this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n    }\n\n    displayList.length = this._displayListLen;\n    env.canvasSupported && timsort(displayList, shapeCompareFunc);\n  },\n  _updateAndAddDisplayable: function (el, clipPaths, includeIgnore) {\n    if (el.ignore && !includeIgnore) {\n      return;\n    }\n\n    el.beforeUpdate();\n\n    if (el.__dirty) {\n      el.update();\n    }\n\n    el.afterUpdate();\n    var userSetClipPath = el.clipPath;\n\n    if (userSetClipPath) {\n      // FIXME 鏁堢巼褰卞搷\n      if (clipPaths) {\n        clipPaths = clipPaths.slice();\n      } else {\n        clipPaths = [];\n      }\n\n      var currentClipPath = userSetClipPath;\n      var parentClipPath = el; // Recursively add clip path\n\n      while (currentClipPath) {\n        // clipPath 鐨勫彉鎹㈡槸鍩轰簬浣跨敤杩欎釜 clipPath 鐨勫厓绱燶n        currentClipPath.parent = parentClipPath;\n        currentClipPath.updateTransform();\n        clipPaths.push(currentClipPath);\n        parentClipPath = currentClipPath;\n        currentClipPath = currentClipPath.clipPath;\n      }\n    }\n\n    if (el.isGroup) {\n      var children = el._children;\n\n      for (var i = 0; i < children.length; i++) {\n        var child = children[i]; // Force to mark as dirty if group is dirty\n        // FIXME __dirtyPath ?\n\n        if (el.__dirty) {\n          child.__dirty = true;\n        }\n\n        this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n      } // Mark group clean here\n\n\n      el.__dirty = false;\n    } else {\n      el.__clipPaths = clipPaths;\n      this._displayList[this._displayListLen++] = el;\n    }\n  },\n\n  /**\n   * 娣诲姞鍥惧舰(Shape)鎴栬�呯粍(Group)鍒版牴鑺傜偣\n   * @param {module:zrender/Element} el\n   */\n  addRoot: function (el) {\n    if (el.__storage === this) {\n      return;\n    }\n\n    if (el instanceof Group) {\n      el.addChildrenToStorage(this);\n    }\n\n    this.addToStorage(el);\n\n    this._roots.push(el);\n  },\n\n  /**\n   * 鍒犻櫎鎸囧畾鐨勫浘褰�(Shape)鎴栬�呯粍(Group)\n   * @param {string|Array.<string>} [el] 濡傛灉涓虹┖娓呯┖鏁翠釜Storage\n   */\n  delRoot: function (el) {\n    if (el == null) {\n      // 涓嶆寚瀹歟l娓呯┖\n      for (var i = 0; i < this._roots.length; i++) {\n        var root = this._roots[i];\n\n        if (root instanceof Group) {\n          root.delChildrenFromStorage(this);\n        }\n      }\n\n      this._roots = [];\n      this._displayList = [];\n      this._displayListLen = 0;\n      return;\n    }\n\n    if (el instanceof Array) {\n      for (var i = 0, l = el.length; i < l; i++) {\n        this.delRoot(el[i]);\n      }\n\n      return;\n    }\n\n    var idx = util.indexOf(this._roots, el);\n\n    if (idx >= 0) {\n      this.delFromStorage(el);\n\n      this._roots.splice(idx, 1);\n\n      if (el instanceof Group) {\n        el.delChildrenFromStorage(this);\n      }\n    }\n  },\n  addToStorage: function (el) {\n    if (el) {\n      el.__storage = this;\n      el.dirty(false);\n    }\n\n    return this;\n  },\n  delFromStorage: function (el) {\n    if (el) {\n      el.__storage = null;\n    }\n\n    return this;\n  },\n\n  /**\n   * 娓呯┖骞朵笖閲婃斁Storage\n   */\n  dispose: function () {\n    this._renderList = this._roots = null;\n  },\n  displayableSortFunc: shapeCompareFunc\n};\nvar _default = Storage;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/Storage.js\n// module id = 6DwN\n// module chunks = 0","module.exports = function () { /* empty */ };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_add-to-unscopables.js\n// module id = 6OxN\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function () {\n  if (_vue2.default.prototype.$isServer) return 0;\n  if (scrollBarWidth !== undefined) return scrollBarWidth;\n\n  var outer = document.createElement('div');\n  outer.className = 'el-scrollbar__wrap';\n  outer.style.visibility = 'hidden';\n  outer.style.width = '100px';\n  outer.style.position = 'absolute';\n  outer.style.top = '-9999px';\n  document.body.appendChild(outer);\n\n  var widthNoScroll = outer.offsetWidth;\n  outer.style.overflow = 'scroll';\n\n  var inner = document.createElement('div');\n  inner.style.width = '100%';\n  outer.appendChild(inner);\n\n  var widthWithScroll = inner.offsetWidth;\n  outer.parentNode.removeChild(outer);\n  scrollBarWidth = widthNoScroll - widthWithScroll;\n\n  return scrollBarWidth;\n};\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scrollBarWidth = void 0;\n\n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/scrollbar-width.js\n// module id = 6SiW\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar markerHelper = require(\"./markerHelper\");\n\nvar LineDraw = require(\"../../chart/helper/LineDraw\");\n\nvar MarkerView = require(\"./MarkerView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n  var data = seriesModel.getData(); // Special type markLine like 'min', 'max', 'average', 'median'\n\n  var mlType = item.type;\n\n  if (!zrUtil.isArray(item) && (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case\n  // data: [{\n  //   yAxis: 10\n  // }]\n  || item.xAxis != null || item.yAxis != null)) {\n    var valueAxis;\n    var valueDataDim;\n    var value;\n\n    if (item.yAxis != null || item.xAxis != null) {\n      valueDataDim = item.yAxis != null ? 'y' : 'x';\n      valueAxis = coordSys.getAxis(valueDataDim);\n      value = zrUtil.retrieve(item.yAxis, item.xAxis);\n    } else {\n      var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n      valueDataDim = axisInfo.valueDataDim;\n      valueAxis = axisInfo.valueAxis;\n      value = markerHelper.numCalculate(data, valueDataDim, mlType);\n    }\n\n    var valueIndex = valueDataDim === 'x' ? 0 : 1;\n    var baseIndex = 1 - valueIndex;\n    var mlFrom = zrUtil.clone(item);\n    var mlTo = {};\n    mlFrom.type = null;\n    mlFrom.coord = [];\n    mlTo.coord = [];\n    mlFrom.coord[baseIndex] = -Infinity;\n    mlTo.coord[baseIndex] = Infinity;\n    var precision = mlModel.get('precision');\n\n    if (precision >= 0 && typeof value === 'number') {\n      value = +value.toFixed(Math.min(precision, 20));\n    }\n\n    mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n    item = [mlFrom, mlTo, {\n      // Extra option for tooltip and label\n      type: mlType,\n      valueIndex: item.valueIndex,\n      // Force to use the value of calculated value.\n      value: value\n    }];\n  }\n\n  item = [markerHelper.dataTransform(seriesModel, item[0]), markerHelper.dataTransform(seriesModel, item[1]), zrUtil.extend({}, item[2])]; // Avoid line data type is extended by from(to) data type\n\n  item[2].type = item[2].type || ''; // Merge from option and to option into line option\n\n  zrUtil.merge(item[2], item[0]);\n  zrUtil.merge(item[2], item[1]);\n  return item;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n} // If a markLine has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  var dimName = coordSys.dimensions[dimIndex];\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n  if (coordSys.type === 'cartesian2d') {\n    var fromCoord = item[0].coord;\n    var toCoord = item[1].coord; // In case\n    // {\n    //  markLine: {\n    //    data: [{ yAxis: 2 }]\n    //  }\n    // }\n\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    // Chart like bar may have there own marker positioning logic\n    if (seriesModel.getMarkerPosition) {\n      // Use the getMarkerPoisition\n      point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n    } else {\n      var dims = coordSys.dimensions;\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    } // Expand line to the edge of grid if value on one axis is Inifnity\n    // In case\n    //  markLine: {\n    //    data: [{\n    //      yAxis: 2\n    //      // or\n    //      type: 'average'\n    //    }]\n    //  }\n\n\n    if (coordSys.type === 'cartesian2d') {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var dims = coordSys.dimensions;\n\n      if (isInifinity(data.get(dims[0], idx))) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n      } else if (isInifinity(data.get(dims[1], idx))) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n      }\n    } // Use x, y if has any\n\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  data.setItemLayout(idx, point);\n}\n\nvar _default = MarkerView.extend({\n  type: 'markLine',\n  // updateLayout: function (markLineModel, ecModel, api) {\n  //     ecModel.eachSeries(function (seriesModel) {\n  //         var mlModel = seriesModel.markLineModel;\n  //         if (mlModel) {\n  //             var mlData = mlModel.getData();\n  //             var fromData = mlModel.__from;\n  //             var toData = mlModel.__to;\n  //             // Update visual and layout of from symbol and to symbol\n  //             fromData.each(function (idx) {\n  //                 updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api);\n  //                 updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api);\n  //             });\n  //             // Update layout of line\n  //             mlData.each(function (idx) {\n  //                 mlData.setItemLayout(idx, [\n  //                     fromData.getItemLayout(idx),\n  //                     toData.getItemLayout(idx)\n  //                 ]);\n  //             });\n  //             this.markerGroupMap.get(seriesModel.id).updateLayout();\n  //         }\n  //     }, this);\n  // },\n  updateTransform: function (markLineModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mlModel = seriesModel.markLineModel;\n\n      if (mlModel) {\n        var mlData = mlModel.getData();\n        var fromData = mlModel.__from;\n        var toData = mlModel.__to; // Update visual and layout of from symbol and to symbol\n\n        fromData.each(function (idx) {\n          updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api);\n          updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api);\n        }); // Update layout of line\n\n        mlData.each(function (idx) {\n          mlData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n        });\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  },\n  renderSeries: function (seriesModel, mlModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var lineDrawMap = this.markerGroupMap;\n    var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n    this.group.add(lineDraw.group);\n    var mlData = createList(coordSys, seriesModel, mlModel);\n    var fromData = mlData.from;\n    var toData = mlData.to;\n    var lineData = mlData.line;\n    mlModel.__from = fromData;\n    mlModel.__to = toData; // Line data for tooltip and formatter\n\n    mlModel.setData(lineData);\n    var symbolType = mlModel.get('symbol');\n    var symbolSize = mlModel.get('symbolSize');\n\n    if (!zrUtil.isArray(symbolType)) {\n      symbolType = [symbolType, symbolType];\n    }\n\n    if (typeof symbolSize === 'number') {\n      symbolSize = [symbolSize, symbolSize];\n    } // Update visual and layout of from symbol and to symbol\n\n\n    mlData.from.each(function (idx) {\n      updateDataVisualAndLayout(fromData, idx, true);\n      updateDataVisualAndLayout(toData, idx, false);\n    }); // Update visual and layout of line\n\n    lineData.each(function (idx) {\n      var lineColor = lineData.getItemModel(idx).get('lineStyle.color');\n      lineData.setItemVisual(idx, {\n        color: lineColor || fromData.getItemVisual(idx, 'color')\n      });\n      lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n      lineData.setItemVisual(idx, {\n        'fromSymbolSize': fromData.getItemVisual(idx, 'symbolSize'),\n        'fromSymbol': fromData.getItemVisual(idx, 'symbol'),\n        'toSymbolSize': toData.getItemVisual(idx, 'symbolSize'),\n        'toSymbol': toData.getItemVisual(idx, 'symbol')\n      });\n    });\n    lineDraw.updateData(lineData); // Set host model for tooltip\n    // FIXME\n\n    mlData.line.eachItemGraphicEl(function (el, idx) {\n      el.traverse(function (child) {\n        child.dataModel = mlModel;\n      });\n    });\n\n    function updateDataVisualAndLayout(data, idx, isFrom) {\n      var itemModel = data.getItemModel(idx);\n      updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n      data.setItemVisual(idx, {\n        symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n        symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n        color: itemModel.get('itemStyle.color') || seriesData.getVisual('color')\n      });\n    }\n\n    lineDraw.__keep = true;\n    lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n  }\n});\n/**\n * @inner\n * @param {module:echarts/coord/*} coordSys\n * @param {module:echarts/model/Series} seriesModel\n * @param {module:echarts/model/Model} mpModel\n */\n\n\nfunction createList(coordSys, seriesModel, mlModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n      return zrUtil.defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var fromData = new List(coordDimsInfos, mlModel);\n  var toData = new List(coordDimsInfos, mlModel); // No dimensions\n\n  var lineData = new List([], mlModel);\n  var optData = zrUtil.map(mlModel.get('data'), zrUtil.curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n  if (coordSys) {\n    optData = zrUtil.filter(optData, zrUtil.curry(markLineFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  };\n  fromData.initData(zrUtil.map(optData, function (item) {\n    return item[0];\n  }), null, dimValueGetter);\n  toData.initData(zrUtil.map(optData, function (item) {\n    return item[1];\n  }), null, dimValueGetter);\n  lineData.initData(zrUtil.map(optData, function (item) {\n    return item[2];\n  }));\n  lineData.hasItemOption = true;\n  return {\n    from: fromData,\n    to: toData,\n    line: lineData\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkLineView.js\n// module id = 6dNT\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n  var selectedMap = {};\n  var isToggleSelect = methodName === 'toggleSelected';\n  var isSelected; // Update all legend components\n\n  ecModel.eachComponent('legend', function (legendModel) {\n    if (isToggleSelect && isSelected != null) {\n      // Force other legend has same selected status\n      // Or the first is toggled to true and other are toggled to false\n      // In the case one legend has some item unSelected in option. And if other legend\n      // doesn't has the item, they will assume it is selected.\n      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n    } else {\n      legendModel[methodName](payload.name);\n      isSelected = legendModel.isSelected(payload.name);\n    }\n\n    var legendData = legendModel.getData();\n    zrUtil.each(legendData, function (model) {\n      var name = model.get('name'); // Wrap element\n\n      if (name === '\\n' || name === '') {\n        return;\n      }\n\n      var isItemSelected = legendModel.isSelected(name);\n\n      if (selectedMap.hasOwnProperty(name)) {\n        // Unselected if any legend is unselected\n        selectedMap[name] = selectedMap[name] && isItemSelected;\n      } else {\n        selectedMap[name] = isItemSelected;\n      }\n    });\n  }); // Return the event explicitly\n\n  return {\n    name: payload.name,\n    selected: selectedMap\n  };\n}\n/**\n * @event legendToggleSelect\n * @type {Object}\n * @property {string} type 'legendToggleSelect'\n * @property {string} [from]\n * @property {string} name Series name or data item name\n */\n\n\necharts.registerAction('legendToggleSelect', 'legendselectchanged', zrUtil.curry(legendSelectActionHandler, 'toggleSelected'));\n/**\n * @event legendSelect\n * @type {Object}\n * @property {string} type 'legendSelect'\n * @property {string} name Series name or data item name\n */\n\necharts.registerAction('legendSelect', 'legendselected', zrUtil.curry(legendSelectActionHandler, 'select'));\n/**\n * @event legendUnSelect\n * @type {Object}\n * @property {string} type 'legendUnSelect'\n * @property {string} name Series name or data item name\n */\n\necharts.registerAction('legendUnSelect', 'legendunselected', zrUtil.curry(legendSelectActionHandler, 'unSelect'));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legend/legendAction.js\n// module id = 6xI6\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function () { SAFE_CLOSING = true; };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n  if (!skipClosing && !SAFE_CLOSING) return false;\n  var safe = false;\n  try {\n    var arr = [7];\n    var iter = arr[ITERATOR]();\n    iter.next = function () { return { done: safe = true }; };\n    arr[ITERATOR] = function () { return iter; };\n    exec(arr);\n  } catch (e) { /* empty */ }\n  return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-detect.js\n// module id = 75+0\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gopn-ext.js\n// module id = 7J6k\n// module chunks = 0","var makeStyleMapper = require(\"./makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getAreaStyle = makeStyleMapper([['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']]);\nvar _default = {\n  getAreaStyle: function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/areaStyle.js\n// module id = 7KCQ\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar _labelHelper = require(\"../helper/labelHelper\");\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction setLabel(normalStyle, hoverStyle, itemModel, color, seriesModel, dataIndex, labelPositionOutside) {\n  var labelModel = itemModel.getModel('label');\n  var hoverLabelModel = itemModel.getModel('emphasis.label');\n  graphic.setLabelStyle(normalStyle, hoverStyle, labelModel, hoverLabelModel, {\n    labelFetcher: seriesModel,\n    labelDataIndex: dataIndex,\n    defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n    isRectText: true,\n    autoColor: color\n  });\n  fixPosition(normalStyle);\n  fixPosition(hoverStyle);\n}\n\nfunction fixPosition(style, labelPositionOutside) {\n  if (style.textPosition === 'outside') {\n    style.textPosition = labelPositionOutside;\n  }\n}\n\nexports.setLabel = setLabel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/helper.js\n// module id = 7MGq\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar zrColor = require(\"zrender/lib/tool/color\");\n\nvar _number = require(\"../util/number\");\n\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n/**\n * @param {Object} option\n * @param {string} [option.type] See visualHandlers.\n * @param {string} [option.mappingMethod] 'linear' or 'piecewise' or 'category' or 'fixed'\n * @param {Array.<number>=} [option.dataExtent] [minExtent, maxExtent],\n *                                              required when mappingMethod is 'linear'\n * @param {Array.<Object>=} [option.pieceList] [\n *                                             {value: someValue},\n *                                             {interval: [min1, max1], visual: {...}},\n *                                             {interval: [min2, max2]}\n *                                             ],\n *                                            required when mappingMethod is 'piecewise'.\n *                                            Visual for only each piece can be specified.\n * @param {Array.<string|Object>=} [option.categories] ['cate1', 'cate2']\n *                                            required when mappingMethod is 'category'.\n *                                            If no option.categories, categories is set\n *                                            as [0, 1, 2, ...].\n * @param {boolean} [option.loop=false] Whether loop mapping when mappingMethod is 'category'.\n * @param {(Array|Object|*)} [option.visual]  Visual data.\n *                                            when mappingMethod is 'category',\n *                                            visual data can be array or object\n *                                            (like: {cate1: '#222', none: '#fff'})\n *                                            or primary types (which represents\n *                                            defualt category visual), otherwise visual\n *                                            can be array or primary (which will be\n *                                            normalized to array).\n *\n */\n\nvar VisualMapping = function (option) {\n  var mappingMethod = option.mappingMethod;\n  var visualType = option.type;\n  /**\n   * @readOnly\n   * @type {Object}\n   */\n\n  var thisOption = this.option = zrUtil.clone(option);\n  /**\n   * @readOnly\n   * @type {string}\n   */\n\n  this.type = visualType;\n  /**\n   * @readOnly\n   * @type {string}\n   */\n\n  this.mappingMethod = mappingMethod;\n  /**\n   * @private\n   * @type {Function}\n   */\n\n  this._normalizeData = normalizers[mappingMethod];\n  var visualHandler = visualHandlers[visualType];\n  /**\n   * @public\n   * @type {Function}\n   */\n\n  this.applyVisual = visualHandler.applyVisual;\n  /**\n   * @public\n   * @type {Function}\n   */\n\n  this.getColorMapper = visualHandler.getColorMapper;\n  /**\n   * @private\n   * @type {Function}\n   */\n\n  this._doMap = visualHandler._doMap[mappingMethod];\n\n  if (mappingMethod === 'piecewise') {\n    normalizeVisualRange(thisOption);\n    preprocessForPiecewise(thisOption);\n  } else if (mappingMethod === 'category') {\n    thisOption.categories ? preprocessForSpecifiedCategory(thisOption) // categories is ordinal when thisOption.categories not specified,\n    // which need no more preprocess except normalize visual.\n    : normalizeVisualRange(thisOption, true);\n  } else {\n    // mappingMethod === 'linear' or 'fixed'\n    zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n    normalizeVisualRange(thisOption);\n  }\n};\n\nVisualMapping.prototype = {\n  constructor: VisualMapping,\n  mapValueToVisual: function (value) {\n    var normalized = this._normalizeData(value);\n\n    return this._doMap(normalized, value);\n  },\n  getNormalizer: function () {\n    return zrUtil.bind(this._normalizeData, this);\n  }\n};\nvar visualHandlers = VisualMapping.visualHandlers = {\n  color: {\n    applyVisual: makeApplyVisual('color'),\n\n    /**\n     * Create a mapper function\n     * @return {Function}\n     */\n    getColorMapper: function () {\n      var thisOption = this.option;\n      return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n        !isNormalized && (value = this._normalizeData(value));\n        return doMapCategory.call(this, value);\n      } : function (value, isNormalized, out) {\n        // If output rgb array\n        // which will be much faster and useful in pixel manipulation\n        var returnRGBArray = !!out;\n        !isNormalized && (value = this._normalizeData(value));\n        out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n        return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n      }, this);\n    },\n    _doMap: {\n      linear: function (normalized) {\n        return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n      },\n      category: doMapCategory,\n      piecewise: function (normalized, value) {\n        var result = getSpecifiedVisual.call(this, value);\n\n        if (result == null) {\n          result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n        }\n\n        return result;\n      },\n      fixed: doMapFixed\n    }\n  },\n  colorHue: makePartialColorVisualHandler(function (color, value) {\n    return zrColor.modifyHSL(color, value);\n  }),\n  colorSaturation: makePartialColorVisualHandler(function (color, value) {\n    return zrColor.modifyHSL(color, null, value);\n  }),\n  colorLightness: makePartialColorVisualHandler(function (color, value) {\n    return zrColor.modifyHSL(color, null, null, value);\n  }),\n  colorAlpha: makePartialColorVisualHandler(function (color, value) {\n    return zrColor.modifyAlpha(color, value);\n  }),\n  opacity: {\n    applyVisual: makeApplyVisual('opacity'),\n    _doMap: makeDoMap([0, 1])\n  },\n  liftZ: {\n    applyVisual: makeApplyVisual('liftZ'),\n    _doMap: {\n      linear: doMapFixed,\n      category: doMapFixed,\n      piecewise: doMapFixed,\n      fixed: doMapFixed\n    }\n  },\n  symbol: {\n    applyVisual: function (value, getter, setter) {\n      var symbolCfg = this.mapValueToVisual(value);\n\n      if (zrUtil.isString(symbolCfg)) {\n        setter('symbol', symbolCfg);\n      } else if (isObject(symbolCfg)) {\n        for (var name in symbolCfg) {\n          if (symbolCfg.hasOwnProperty(name)) {\n            setter(name, symbolCfg[name]);\n          }\n        }\n      }\n    },\n    _doMap: {\n      linear: doMapToArray,\n      category: doMapCategory,\n      piecewise: function (normalized, value) {\n        var result = getSpecifiedVisual.call(this, value);\n\n        if (result == null) {\n          result = doMapToArray.call(this, normalized);\n        }\n\n        return result;\n      },\n      fixed: doMapFixed\n    }\n  },\n  symbolSize: {\n    applyVisual: makeApplyVisual('symbolSize'),\n    _doMap: makeDoMap([0, 1])\n  }\n};\n\nfunction preprocessForPiecewise(thisOption) {\n  var pieceList = thisOption.pieceList;\n  thisOption.hasSpecialVisual = false;\n  zrUtil.each(pieceList, function (piece, index) {\n    piece.originIndex = index; // piece.visual is \"result visual value\" but not\n    // a visual range, so it does not need to be normalized.\n\n    if (piece.visual != null) {\n      thisOption.hasSpecialVisual = true;\n    }\n  });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n  // Hash categories.\n  var categories = thisOption.categories;\n  var visual = thisOption.visual;\n  var categoryMap = thisOption.categoryMap = {};\n  each(categories, function (cate, index) {\n    categoryMap[cate] = index;\n  }); // Process visual map input.\n\n  if (!zrUtil.isArray(visual)) {\n    var visualArr = [];\n\n    if (zrUtil.isObject(visual)) {\n      each(visual, function (v, cate) {\n        var index = categoryMap[cate];\n        visualArr[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n      });\n    } else {\n      // Is primary type, represents default visual.\n      visualArr[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n    }\n\n    visual = setVisualToOption(thisOption, visualArr);\n  } // Remove categories that has no visual,\n  // then we can mapping them to CATEGORY_DEFAULT_VISUAL_INDEX.\n\n\n  for (var i = categories.length - 1; i >= 0; i--) {\n    if (visual[i] == null) {\n      delete categoryMap[categories[i]];\n      categories.pop();\n    }\n  }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n  var visual = thisOption.visual;\n  var visualArr = [];\n\n  if (zrUtil.isObject(visual)) {\n    each(visual, function (v) {\n      visualArr.push(v);\n    });\n  } else if (visual != null) {\n    visualArr.push(visual);\n  }\n\n  var doNotNeedPair = {\n    color: 1,\n    symbol: 1\n  };\n\n  if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n    // Do not care visualArr.length === 0, which is illegal.\n    visualArr[1] = visualArr[0];\n  }\n\n  setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n  return {\n    applyVisual: function (value, getter, setter) {\n      value = this.mapValueToVisual(value); // Must not be array value\n\n      setter('color', applyValue(getter('color'), value));\n    },\n    _doMap: makeDoMap([0, 1])\n  };\n}\n\nfunction doMapToArray(normalized) {\n  var visual = this.option.visual;\n  return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\n}\n\nfunction makeApplyVisual(visualType) {\n  return function (value, getter, setter) {\n    setter(visualType, this.mapValueToVisual(value));\n  };\n}\n\nfunction doMapCategory(normalized) {\n  var visual = this.option.visual;\n  return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n  return this.option.visual[0];\n}\n\nfunction makeDoMap(sourceExtent) {\n  return {\n    linear: function (normalized) {\n      return linearMap(normalized, sourceExtent, this.option.visual, true);\n    },\n    category: doMapCategory,\n    piecewise: function (normalized, value) {\n      var result = getSpecifiedVisual.call(this, value);\n\n      if (result == null) {\n        result = linearMap(normalized, sourceExtent, this.option.visual, true);\n      }\n\n      return result;\n    },\n    fixed: doMapFixed\n  };\n}\n\nfunction getSpecifiedVisual(value) {\n  var thisOption = this.option;\n  var pieceList = thisOption.pieceList;\n\n  if (thisOption.hasSpecialVisual) {\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n    var piece = pieceList[pieceIndex];\n\n    if (piece && piece.visual) {\n      return piece.visual[this.type];\n    }\n  }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n  thisOption.visual = visualArr;\n\n  if (thisOption.type === 'color') {\n    thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n      return zrColor.parse(item);\n    });\n  }\n\n  return visualArr;\n}\n/**\n * Normalizers by mapping methods.\n */\n\n\nvar normalizers = {\n  linear: function (value) {\n    return linearMap(value, this.option.dataExtent, [0, 1], true);\n  },\n  piecewise: function (value) {\n    var pieceList = this.option.pieceList;\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n    if (pieceIndex != null) {\n      return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n    }\n  },\n  category: function (value) {\n    var index = this.option.categories ? this.option.categoryMap[value] : value; // ordinal\n\n    return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n  },\n  fixed: zrUtil.noop\n};\n/**\n * List available visual types.\n *\n * @public\n * @return {Array.<string>}\n */\n\nVisualMapping.listVisualTypes = function () {\n  var visualTypes = [];\n  zrUtil.each(visualHandlers, function (handler, key) {\n    visualTypes.push(key);\n  });\n  return visualTypes;\n};\n/**\n * @public\n */\n\n\nVisualMapping.addVisualHandler = function (name, handler) {\n  visualHandlers[name] = handler;\n};\n/**\n * @public\n */\n\n\nVisualMapping.isValidType = function (visualType) {\n  return visualHandlers.hasOwnProperty(visualType);\n};\n/**\n * Convinent method.\n * Visual can be Object or Array or primary type.\n *\n * @public\n */\n\n\nVisualMapping.eachVisual = function (visual, callback, context) {\n  if (zrUtil.isObject(visual)) {\n    zrUtil.each(visual, callback, context);\n  } else {\n    callback.call(context, visual);\n  }\n};\n\nVisualMapping.mapVisual = function (visual, callback, context) {\n  var isPrimary;\n  var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n  VisualMapping.eachVisual(visual, function (v, key) {\n    var newVal = callback.call(context, v, key);\n    isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n  });\n  return newVisual;\n};\n/**\n * @public\n * @param {Object} obj\n * @return {Object} new object containers visual values.\n *                 If no visuals, return null.\n */\n\n\nVisualMapping.retrieveVisuals = function (obj) {\n  var ret = {};\n  var hasVisual;\n  obj && each(visualHandlers, function (h, visualType) {\n    if (obj.hasOwnProperty(visualType)) {\n      ret[visualType] = obj[visualType];\n      hasVisual = true;\n    }\n  });\n  return hasVisual ? ret : null;\n};\n/**\n * Give order to visual types, considering colorSaturation, colorAlpha depends on color.\n *\n * @public\n * @param {(Object|Array)} visualTypes If Object, like: {color: ..., colorSaturation: ...}\n *                                     IF Array, like: ['color', 'symbol', 'colorSaturation']\n * @return {Array.<string>} Sorted visual types.\n */\n\n\nVisualMapping.prepareVisualTypes = function (visualTypes) {\n  if (isObject(visualTypes)) {\n    var types = [];\n    each(visualTypes, function (item, type) {\n      types.push(type);\n    });\n    visualTypes = types;\n  } else if (zrUtil.isArray(visualTypes)) {\n    visualTypes = visualTypes.slice();\n  } else {\n    return [];\n  }\n\n  visualTypes.sort(function (type1, type2) {\n    // color should be front of colorSaturation, colorAlpha, ...\n    // symbol and symbolSize do not matter.\n    return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n  });\n  return visualTypes;\n};\n/**\n * 'color', 'colorSaturation', 'colorAlpha', ... are depends on 'color'.\n * Other visuals are only depends on themself.\n *\n * @public\n * @param {string} visualType1\n * @param {string} visualType2\n * @return {boolean}\n */\n\n\nVisualMapping.dependsOn = function (visualType1, visualType2) {\n  return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n};\n/**\n * @param {number} value\n * @param {Array.<Object>} pieceList [{value: ..., interval: [min, max]}, ...]\n *                         Always from small to big.\n * @param {boolean} [findClosestWhenOutside=false]\n * @return {number} index\n */\n\n\nVisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n  var possibleI;\n  var abs = Infinity; // value has the higher priority.\n\n  for (var i = 0, len = pieceList.length; i < len; i++) {\n    var pieceValue = pieceList[i].value;\n\n    if (pieceValue != null) {\n      if (pieceValue === value // FIXME\n      // It is supposed to compare value according to value type of dimension,\n      // but currently value type can exactly be string or number.\n      // Compromise for numeric-like string (like '12'), especially\n      // in the case that visualMap.categories is ['22', '33'].\n      || typeof pieceValue === 'string' && pieceValue === value + '') {\n        return i;\n      }\n\n      findClosestWhenOutside && updatePossible(pieceValue, i);\n    }\n  }\n\n  for (var i = 0, len = pieceList.length; i < len; i++) {\n    var piece = pieceList[i];\n    var interval = piece.interval;\n    var close = piece.close;\n\n    if (interval) {\n      if (interval[0] === -Infinity) {\n        if (littleThan(close[1], value, interval[1])) {\n          return i;\n        }\n      } else if (interval[1] === Infinity) {\n        if (littleThan(close[0], interval[0], value)) {\n          return i;\n        }\n      } else if (littleThan(close[0], interval[0], value) && littleThan(close[1], value, interval[1])) {\n        return i;\n      }\n\n      findClosestWhenOutside && updatePossible(interval[0], i);\n      findClosestWhenOutside && updatePossible(interval[1], i);\n    }\n  }\n\n  if (findClosestWhenOutside) {\n    return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n  }\n\n  function updatePossible(val, index) {\n    var newAbs = Math.abs(val - value);\n\n    if (newAbs < abs) {\n      abs = newAbs;\n      possibleI = index;\n    }\n  }\n};\n\nfunction littleThan(close, a, b) {\n  return close ? a <= b : a < b;\n}\n\nvar _default = VisualMapping;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/visual/VisualMapping.js\n// module id = 7Rvj\n// module chunks = 0","var _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\nvar normalizeToArray = _model.normalizeToArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\n\nfunction getNearestColorPalette(colors, requestColorNum) {\n  var paletteNum = colors.length; // TODO colors must be in order\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (colors[i].length > requestColorNum) {\n      return colors[i];\n    }\n  }\n\n  return colors[paletteNum - 1];\n}\n\nvar _default = {\n  clearColorPalette: function () {\n    inner(this).colorIdx = 0;\n    inner(this).colorNameMap = {};\n  },\n\n  /**\n   * @param {string} name MUST NOT be null/undefined. Otherwise call this function\n   *                 twise with the same parameters will get different result.\n   * @param {Object} [scope=this]\n   * @param {Object} [requestColorNum]\n   * @return {string} color string.\n   */\n  getColorFromPalette: function (name, scope, requestColorNum) {\n    scope = scope || this;\n    var scopeFields = inner(scope);\n    var colorIdx = scopeFields.colorIdx || 0;\n    var colorNameMap = scopeFields.colorNameMap = scopeFields.colorNameMap || {}; // Use `hasOwnProperty` to avoid conflict with Object.prototype.\n\n    if (colorNameMap.hasOwnProperty(name)) {\n      return colorNameMap[name];\n    }\n\n    var defaultColorPalette = normalizeToArray(this.get('color', true));\n    var layeredColorPalette = this.get('colorLayer', true);\n    var colorPalette = requestColorNum == null || !layeredColorPalette ? defaultColorPalette : getNearestColorPalette(layeredColorPalette, requestColorNum); // In case can't find in layered color palette.\n\n    colorPalette = colorPalette || defaultColorPalette;\n\n    if (!colorPalette || !colorPalette.length) {\n      return;\n    }\n\n    var color = colorPalette[colorIdx];\n\n    if (name) {\n      colorNameMap[name] = color;\n    }\n\n    scopeFields.colorIdx = (colorIdx + 1) % colorPalette.length;\n    return color;\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/colorPalette.js\n// module id = 7T7k\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar axisDefault = require(\"../axisDefault\");\n\nvar Model = require(\"../../model/Model\");\n\nvar axisModelCommonMixin = require(\"../axisModelCommonMixin\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar valueAxisDefault = axisDefault.valueAxis;\n\nfunction defaultsShow(opt, show) {\n  return zrUtil.defaults({\n    show: show\n  }, opt);\n}\n\nvar RadarModel = echarts.extendComponentModel({\n  type: 'radar',\n  optionUpdated: function () {\n    var boundaryGap = this.get('boundaryGap');\n    var splitNumber = this.get('splitNumber');\n    var scale = this.get('scale');\n    var axisLine = this.get('axisLine');\n    var axisTick = this.get('axisTick');\n    var axisLabel = this.get('axisLabel');\n    var nameTextStyle = this.get('name');\n    var showName = this.get('name.show');\n    var nameFormatter = this.get('name.formatter');\n    var nameGap = this.get('nameGap');\n    var triggerEvent = this.get('triggerEvent');\n    var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n      // PENDING\n      if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n        indicatorOpt.min = 0;\n      } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n        indicatorOpt.max = 0;\n      }\n\n      var iNameTextStyle = nameTextStyle;\n\n      if (indicatorOpt.color != null) {\n        iNameTextStyle = zrUtil.defaults({\n          color: indicatorOpt.color\n        }, nameTextStyle);\n      } // Use same configuration\n\n\n      indicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n        boundaryGap: boundaryGap,\n        splitNumber: splitNumber,\n        scale: scale,\n        axisLine: axisLine,\n        axisTick: axisTick,\n        axisLabel: axisLabel,\n        // Competitable with 2 and use text\n        name: indicatorOpt.text,\n        nameLocation: 'end',\n        nameGap: nameGap,\n        // min: 0,\n        nameTextStyle: iNameTextStyle,\n        triggerEvent: triggerEvent\n      }, false);\n\n      if (!showName) {\n        indicatorOpt.name = '';\n      }\n\n      if (typeof nameFormatter === 'string') {\n        var indName = indicatorOpt.name;\n        indicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n      } else if (typeof nameFormatter === 'function') {\n        indicatorOpt.name = nameFormatter(indicatorOpt.name, indicatorOpt);\n      }\n\n      var model = zrUtil.extend(new Model(indicatorOpt, null, this.ecModel), axisModelCommonMixin); // For triggerEvent.\n\n      model.mainType = 'radar';\n      model.componentIndex = this.componentIndex;\n      return model;\n    }, this);\n\n    this.getIndicatorModels = function () {\n      return indicatorModels;\n    };\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '75%',\n    startAngle: 90,\n    name: {\n      show: true // formatter: null\n      // textStyle: {}\n\n    },\n    boundaryGap: [0, 0],\n    splitNumber: 5,\n    nameGap: 15,\n    scale: false,\n    // Polygon or circle\n    shape: 'polygon',\n    axisLine: zrUtil.merge({\n      lineStyle: {\n        color: '#bbb'\n      }\n    }, valueAxisDefault.axisLine),\n    axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n    axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n    splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n    splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n    // {text, min, max}\n    indicator: []\n  }\n});\nvar _default = RadarModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/radar/RadarModel.js\n// module id = 7aKb\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar features = {};\n\nfunction register(name, ctor) {\n  features[name] = ctor;\n}\n\nfunction get(name) {\n  return features[name];\n}\n\nexports.register = register;\nexports.get = get;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/featureManager.js\n// module id = 7eLB\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar SymbolClz = require(\"../helper/Symbol\");\n\nvar _layoutHelper = require(\"./layoutHelper\");\n\nvar radialCoordinate = _layoutHelper.radialCoordinate;\n\nvar echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file  This file used to draw tree view\n */\nvar _default = echarts.extendChartView({\n  type: 'tree',\n\n  /**\n   * Init the chart\n   * @override\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   */\n  init: function (ecModel, api) {\n    /**\n     * @private\n     * @type {module:echarts/data/Tree}\n     */\n    this._oldTree;\n    /**\n     * @private\n     * @type {module:zrender/container/Group}\n     */\n\n    this._mainGroup = new graphic.Group();\n    this.group.add(this._mainGroup);\n  },\n  render: function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var layoutInfo = seriesModel.layoutInfo;\n    var group = this._mainGroup;\n    var layout = seriesModel.get('layout');\n\n    if (layout === 'radial') {\n      group.attr('position', [layoutInfo.x + layoutInfo.width / 2, layoutInfo.y + layoutInfo.height / 2]);\n    } else {\n      group.attr('position', [layoutInfo.x, layoutInfo.y]);\n    }\n\n    var oldData = this._data;\n    var seriesScope = {\n      expandAndCollapse: seriesModel.get('expandAndCollapse'),\n      layout: layout,\n      orient: seriesModel.getOrient(),\n      curvature: seriesModel.get('lineStyle.curveness'),\n      symbolRotate: seriesModel.get('symbolRotate'),\n      symbolOffset: seriesModel.get('symbolOffset'),\n      hoverAnimation: seriesModel.get('hoverAnimation'),\n      useNameLabel: true,\n      fadeIn: true\n    };\n    data.diff(oldData).add(function (newIdx) {\n      if (symbolNeedsDraw(data, newIdx)) {\n        // create node and edge\n        updateNode(data, newIdx, null, group, seriesModel, seriesScope);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!symbolNeedsDraw(data, newIdx)) {\n        symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel, seriesScope);\n        return;\n      } // update  node and edge\n\n\n      updateNode(data, newIdx, symbolEl, group, seriesModel, seriesScope);\n    }).remove(function (oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx); // When remove a collapsed node of subtree, since the collapsed\n      // node haven't been initialized with a symbol element,\n      // you can't found it's symbol element through index.\n      // so if we want to remove the symbol element we should insure\n      // that the symbol element is not null.\n\n      if (symbolEl) {\n        removeNode(oldData, oldIdx, symbolEl, group, seriesModel, seriesScope);\n      }\n    }).execute();\n\n    if (seriesScope.expandAndCollapse === true) {\n      data.eachItemGraphicEl(function (el, dataIndex) {\n        el.off('click').on('click', function () {\n          api.dispatchAction({\n            type: 'treeExpandAndCollapse',\n            seriesId: seriesModel.id,\n            dataIndex: dataIndex\n          });\n        });\n      });\n    }\n\n    this._data = data;\n  },\n  dispose: function () {},\n  remove: function () {\n    this._mainGroup.removeAll();\n\n    this._data = null;\n  }\n});\n\nfunction symbolNeedsDraw(data, dataIndex) {\n  var layout = data.getItemLayout(dataIndex);\n  return layout && !isNaN(layout.x) && !isNaN(layout.y) && data.getItemVisual(dataIndex, 'symbol') !== 'none';\n}\n\nfunction getTreeNodeStyle(node, itemModel, seriesScope) {\n  seriesScope.itemModel = itemModel;\n  seriesScope.itemStyle = itemModel.getModel('itemStyle').getItemStyle();\n  seriesScope.hoverItemStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n  seriesScope.lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n  seriesScope.labelModel = itemModel.getModel('label');\n  seriesScope.hoverLabelModel = itemModel.getModel('emphasis.label');\n\n  if (node.isExpand === false && node.children.length !== 0) {\n    seriesScope.symbolInnerColor = seriesScope.itemStyle.fill;\n  } else {\n    seriesScope.symbolInnerColor = '#fff';\n  }\n\n  return seriesScope;\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel, seriesScope) {\n  var isInit = !symbolEl;\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var itemModel = node.getModel();\n  var seriesScope = getTreeNodeStyle(node, itemModel, seriesScope);\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceLayout = source.getLayout();\n  var sourceOldLayout = sourceSymbolEl ? {\n    x: sourceSymbolEl.position[0],\n    y: sourceSymbolEl.position[1],\n    rawX: sourceSymbolEl.__radialOldRawX,\n    rawY: sourceSymbolEl.__radialOldRawY\n  } : sourceLayout;\n  var targetLayout = node.getLayout();\n\n  if (isInit) {\n    symbolEl = new SymbolClz(data, dataIndex, seriesScope);\n    symbolEl.attr('position', [sourceOldLayout.x, sourceOldLayout.y]);\n  } else {\n    symbolEl.updateData(data, dataIndex, seriesScope);\n  }\n\n  symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n  symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n  symbolEl.__radialRawX = targetLayout.rawX;\n  symbolEl.__radialRawY = targetLayout.rawY;\n  group.add(symbolEl);\n  data.setItemGraphicEl(dataIndex, symbolEl);\n  graphic.updateProps(symbolEl, {\n    position: [targetLayout.x, targetLayout.y]\n  }, seriesModel);\n  var symbolPath = symbolEl.getSymbolPath();\n\n  if (seriesScope.layout === 'radial') {\n    var realRoot = virtualRoot.children[0];\n    var rootLayout = realRoot.getLayout();\n    var length = realRoot.children.length;\n    var rad;\n    var isLeft;\n\n    if (targetLayout.x === rootLayout.x && node.isExpand === true) {\n      var center = {};\n      center.x = (realRoot.children[0].getLayout().x + realRoot.children[length - 1].getLayout().x) / 2;\n      center.y = (realRoot.children[0].getLayout().y + realRoot.children[length - 1].getLayout().y) / 2;\n      rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      isLeft = center.x < rootLayout.x;\n\n      if (isLeft) {\n        rad = rad - Math.PI;\n      }\n    } else {\n      rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n        isLeft = targetLayout.x < rootLayout.x;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n      } else {\n        isLeft = targetLayout.x > rootLayout.x;\n\n        if (!isLeft) {\n          rad = rad - Math.PI;\n        }\n      }\n    }\n\n    var textPosition = isLeft ? 'left' : 'right';\n    symbolPath.setStyle({\n      textPosition: textPosition,\n      textRotation: -rad,\n      textOrigin: 'center',\n      verticalAlign: 'middle'\n    });\n  }\n\n  if (node.parentNode && node.parentNode !== virtualRoot) {\n    var edge = symbolEl.__edge;\n\n    if (!edge) {\n      edge = symbolEl.__edge = new graphic.BezierCurve({\n        shape: getEdgeShape(seriesScope, sourceOldLayout, sourceOldLayout),\n        style: zrUtil.defaults({\n          opacity: 0\n        }, seriesScope.lineStyle)\n      });\n    }\n\n    graphic.updateProps(edge, {\n      shape: getEdgeShape(seriesScope, sourceLayout, targetLayout),\n      style: {\n        opacity: 1\n      }\n    }, seriesModel);\n    group.add(edge);\n  }\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel, seriesScope) {\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var virtualRoot = data.tree.root;\n  var itemModel = node.getModel();\n  var seriesScope = getTreeNodeStyle(node, itemModel, seriesScope);\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceLayout;\n\n  while (sourceLayout = source.getLayout(), sourceLayout == null) {\n    source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n  }\n\n  graphic.updateProps(symbolEl, {\n    position: [sourceLayout.x + 1, sourceLayout.y + 1]\n  }, seriesModel, function () {\n    group.remove(symbolEl);\n    data.setItemGraphicEl(dataIndex, null);\n  });\n  symbolEl.fadeOut(null, {\n    keepLabel: true\n  });\n  var edge = symbolEl.__edge;\n\n  if (edge) {\n    graphic.updateProps(edge, {\n      shape: getEdgeShape(seriesScope, sourceLayout, sourceLayout),\n      style: {\n        opacity: 0\n      }\n    }, seriesModel, function () {\n      group.remove(edge);\n    });\n  }\n}\n\nfunction getEdgeShape(seriesScope, sourceLayout, targetLayout) {\n  var cpx1;\n  var cpy1;\n  var cpx2;\n  var cpy2;\n  var orient = seriesScope.orient;\n\n  if (seriesScope.layout === 'radial') {\n    var x1 = sourceLayout.rawX;\n    var y1 = sourceLayout.rawY;\n    var x2 = targetLayout.rawX;\n    var y2 = targetLayout.rawY;\n    var radialCoor1 = radialCoordinate(x1, y1);\n    var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * seriesScope.curvature);\n    var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * seriesScope.curvature);\n    var radialCoor4 = radialCoordinate(x2, y2);\n    return {\n      x1: radialCoor1.x,\n      y1: radialCoor1.y,\n      x2: radialCoor4.x,\n      y2: radialCoor4.y,\n      cpx1: radialCoor2.x,\n      cpy1: radialCoor2.y,\n      cpx2: radialCoor3.x,\n      cpy2: radialCoor3.y\n    };\n  } else {\n    var x1 = sourceLayout.x;\n    var y1 = sourceLayout.y;\n    var x2 = targetLayout.x;\n    var y2 = targetLayout.y;\n\n    if (orient === 'LR' || orient === 'RL') {\n      cpx1 = x1 + (x2 - x1) * seriesScope.curvature;\n      cpy1 = y1;\n      cpx2 = x2 + (x1 - x2) * seriesScope.curvature;\n      cpy2 = y2;\n    }\n\n    if (orient === 'TB' || orient === 'BT') {\n      cpx1 = x1;\n      cpy1 = y1 + (y2 - y1) * seriesScope.curvature;\n      cpx2 = x2;\n      cpy2 = y2 + (y1 - y2) * seriesScope.curvature;\n    }\n\n    return {\n      x1: x1,\n      y1: y1,\n      x2: x2,\n      y2: y2,\n      cpx1: cpx1,\n      cpy1: cpy1,\n      cpx2: cpx2,\n      cpy2: cpy2\n    };\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/TreeView.js\n// module id = 7jCV\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar geoCoordMap = {\n  'Russia': [100, 60],\n  'United States': [-99, 38],\n  'United States of America': [-99, 38]\n};\n\nfunction _default(geo) {\n  zrUtil.each(geo.regions, function (region) {\n    var geoCoord = geoCoordMap[region.name];\n\n    if (geoCoord) {\n      var cp = region.center;\n      cp[0] = geoCoord[0];\n      cp[1] = geoCoord[1];\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/fix/geoCoord.js\n// module id = 7k5d\n// module chunks = 0","var makeStyleMapper = require(\"./makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getLineStyle = makeStyleMapper([['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\nvar _default = {\n  getLineStyle: function (excludes) {\n    var style = getLineStyle(this, excludes);\n    var lineDash = this.getLineDash(style.lineWidth);\n    lineDash && (style.lineDash = lineDash);\n    return style;\n  },\n  getLineDash: function (lineWidth) {\n    if (lineWidth == null) {\n      lineWidth = 1;\n    }\n\n    var lineType = this.get('type');\n    var dotSize = Math.max(lineWidth, 2);\n    var dashSize = lineWidth * 4;\n    return lineType === 'solid' || lineType == null ? null : lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize];\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/lineStyle.js\n// module id = 7n9C\n// module chunks = 0","module.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_a-function.js\n// module id = 7p3N\n// module chunks = 0","require(\"../coord/parallel/parallelCreator\");\n\nrequire(\"./axis/parallelAxisAction\");\n\nrequire(\"./axis/ParallelAxisView\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/parallelAxis.js\n// module id = 7zqV\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction AngleAxis(scale, angleExtent) {\n  angleExtent = angleExtent || [0, 360];\n  Axis.call(this, 'angle', scale, angleExtent);\n  /**\n   * Axis type\n   *  - 'category'\n   *  - 'value'\n   *  - 'time'\n   *  - 'log'\n   * @type {string}\n   */\n\n  this.type = 'category';\n}\n\nAngleAxis.prototype = {\n  constructor: AngleAxis,\n\n  /**\n   * @override\n   */\n  pointToData: function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  },\n  dataToAngle: Axis.prototype.dataToCoord,\n  angleToData: Axis.prototype.coordToData\n};\nzrUtil.inherits(AngleAxis, Axis);\nvar _default = AngleAxis;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/AngleAxis.js\n// module id = 802A\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ATTR = '\\0_ec_interaction_mutex';\n\nfunction take(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  store[resourceKey] = userKey;\n}\n\nfunction release(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  var uKey = store[resourceKey];\n\n  if (uKey === userKey) {\n    store[resourceKey] = null;\n  }\n}\n\nfunction isTaken(zr, resourceKey) {\n  return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n/**\n * payload: {\n *     type: 'takeGlobalCursor',\n *     key: 'dataZoomSelect', or 'brush', or ...,\n *         If no userKey, release global cursor.\n * }\n */\n\n\necharts.registerAction({\n  type: 'takeGlobalCursor',\n  event: 'globalCursorTaken',\n  update: 'update'\n}, function () {});\nexports.take = take;\nexports.release = release;\nexports.isTaken = isTaken;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/interactionMutex.js\n// module id = 83dT\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapModel = require(\"./VisualMapModel\");\n\nvar numberUtil = require(\"../../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Constant\nvar DEFAULT_BAR_BOUND = [20, 140];\nvar ContinuousModel = VisualMapModel.extend({\n  type: 'visualMap.continuous',\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    align: 'auto',\n    // 'auto', 'left', 'right', 'top', 'bottom'\n    calculable: false,\n    // This prop effect default component type determine,\n    // See echarts/component/visualMap/typeDefaulter.\n    range: null,\n    // selected range. In default case `range` is [min, max]\n    // and can auto change along with modification of min max,\n    // util use specifid a range.\n    realtime: true,\n    // Whether realtime update.\n    itemHeight: null,\n    // The length of the range control edge.\n    itemWidth: null,\n    // The length of the other side.\n    hoverLink: true,\n    // Enable hover highlight.\n    hoverLinkDataSize: null,\n    // The size of hovered data.\n    hoverLinkOnHandle: null // Whether trigger hoverLink when hover handle.\n    // If not specified, follow the value of `realtime`.\n\n  },\n\n  /**\n   * @override\n   */\n  optionUpdated: function (newOption, isInit) {\n    ContinuousModel.superApply(this, 'optionUpdated', arguments);\n    this.resetExtent();\n    this.resetVisual(function (mappingOption) {\n      mappingOption.mappingMethod = 'linear';\n      mappingOption.dataExtent = this.getExtent();\n    });\n\n    this._resetRange();\n  },\n\n  /**\n   * @protected\n   * @override\n   */\n  resetItemSize: function () {\n    ContinuousModel.superApply(this, 'resetItemSize', arguments);\n    var itemSize = this.itemSize;\n    this._orient === 'horizontal' && itemSize.reverse();\n    (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n    (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n  },\n\n  /**\n   * @private\n   */\n  _resetRange: function () {\n    var dataExtent = this.getExtent();\n    var range = this.option.range;\n\n    if (!range || range.auto) {\n      // `range` should always be array (so we dont use other\n      // value like 'auto') for user-friend. (consider getOption).\n      dataExtent.auto = 1;\n      this.option.range = dataExtent;\n    } else if (zrUtil.isArray(range)) {\n      if (range[0] > range[1]) {\n        range.reverse();\n      }\n\n      range[0] = Math.max(range[0], dataExtent[0]);\n      range[1] = Math.min(range[1], dataExtent[1]);\n    }\n  },\n\n  /**\n   * @protected\n   * @override\n   */\n  completeVisualOption: function () {\n    VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\n    zrUtil.each(this.stateList, function (state) {\n      var symbolSize = this.option.controller[state].symbolSize;\n\n      if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n        symbolSize[0] = 0; // For good looking.\n      }\n    }, this);\n  },\n\n  /**\n   * @override\n   */\n  setSelected: function (selected) {\n    this.option.range = selected.slice();\n\n    this._resetRange();\n  },\n\n  /**\n   * @public\n   */\n  getSelected: function () {\n    var dataExtent = this.getExtent();\n    var dataInterval = numberUtil.asc((this.get('range') || []).slice()); // Clamp\n\n    dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n    dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n    dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n    dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n    return dataInterval;\n  },\n\n  /**\n   * @override\n   */\n  getValueState: function (value) {\n    var range = this.option.range;\n    var dataExtent = this.getExtent(); // When range[0] === dataExtent[0], any value larger than dataExtent[0] maps to 'inRange'.\n    // range[1] is processed likewise.\n\n    return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n  },\n\n  /**\n   * @params {Array.<number>} range target value: range[0] <= value && value <= range[1]\n   * @return {Array.<Object>} [{seriesId, dataIndices: <Array.<number>>}, ...]\n   */\n  findTargetDataIndices: function (range) {\n    var result = [];\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  },\n\n  /**\n   * @implement\n   */\n  getVisualMeta: function (getColorVisual) {\n    var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n    var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n    var stops = [];\n\n    function setStop(value, valueState) {\n      stops.push({\n        value: value,\n        color: getColorVisual(value, valueState)\n      });\n    } // Format to: outOfRange -- inRange -- outOfRange.\n\n\n    var iIdx = 0;\n    var oIdx = 0;\n    var iLen = iVals.length;\n    var oLen = oVals.length;\n\n    for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n      // If oVal[oIdx] === iVals[iIdx], oVal[oIdx] should be ignored.\n      if (oVals[oIdx] < iVals[iIdx]) {\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n      // If range is full, value beyond min, max will be clamped.\n      // make a singularity\n      first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n      setStop(iVals[iIdx], 'inRange');\n    }\n\n    for (var first = 1; oIdx < oLen; oIdx++) {\n      if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n        // make a singularity\n        if (first) {\n          stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n          first = 0;\n        }\n\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    var stopsLen = stops.length;\n    return {\n      stops: stops,\n      outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n    };\n  }\n});\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n  if (dataExtent[0] === dataExtent[1]) {\n    return dataExtent.slice();\n  } // When using colorHue mapping, it is not linear color any more.\n  // Moreover, canvas gradient seems not to be accurate linear.\n  // FIXME\n  // Should be arbitrary value 100? or based on pixel size?\n\n\n  var count = 200;\n  var step = (dataExtent[1] - dataExtent[0]) / count;\n  var value = dataExtent[0];\n  var stopValues = [];\n\n  for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n    stopValues.push(value);\n    value += step;\n  }\n\n  stopValues.push(dataExtent[1]);\n  return stopValues;\n}\n\nvar _default = ContinuousModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/ContinuousModel.js\n// module id = 87Aa\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  ecModel.eachSeriesByType('map', function (seriesModel) {\n    var colorList = seriesModel.get('color');\n    var itemStyleModel = seriesModel.getModel('itemStyle');\n    var areaColor = itemStyleModel.get('areaColor');\n    var color = itemStyleModel.get('color') || colorList[seriesModel.seriesIndex % colorList.length];\n    seriesModel.getData().setVisual({\n      'areaColor': areaColor,\n      'color': color\n    });\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/map/mapVisual.js\n// module id = 8BlH\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar BaseAxisPointer = require(\"./BaseAxisPointer\");\n\nvar viewHelper = require(\"./viewHelper\");\n\nvar singleAxisHelper = require(\"../../coord/single/singleAxisHelper\");\n\nvar AxisView = require(\"../axis/AxisView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\nvar SingleAxisPointer = BaseAxisPointer.extend({\n  /**\n   * @override\n   */\n  makeElOption: function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n    var pixelValue = coordSys.dataToPoint(value)[0];\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent, elStyle);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = singleAxisHelper.layout(axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  },\n\n  /**\n   * @override\n   */\n  getHandleTransform: function (value, axisModel, axisPointerModel) {\n    var layoutInfo = singleAxisHelper.layout(axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get('handle.margin');\n    return {\n      position: viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo),\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  },\n\n  /**\n   * @override\n   */\n  updateHandleTransform: function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var dimIndex = getPointDimIndex(axis);\n    var axisExtent = getGlobalExtent(coordSys, dimIndex);\n    var currPosition = transform.position;\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    return {\n      position: currPosition,\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: {\n        verticalAlign: 'middle'\n      }\n    };\n  }\n});\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent, elStyle) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n    graphic.subPixelOptimizeLine({\n      shape: targetShape,\n      style: elStyle\n    });\n    return {\n      type: 'Line',\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent, elStyle) {\n    var bandWidth = axis.getBandWidth();\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n    };\n  }\n};\n\nfunction getPointDimIndex(axis) {\n  return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n  var rect = coordSys.getRect();\n  return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nAxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\nvar _default = SingleAxisPointer;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/SingleAxisPointer.js\n// module id = 8FSe\n// module chunks = 0","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/isObject.js\n// module id = 8JGq\n// module chunks = 0","var View = require(\"../../coord/View\");\n\nvar _layout = require(\"../../util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\n\nvar bbox = require(\"zrender/lib/core/bbox\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME Where to create the simple view coordinate system\nfunction getViewRect(seriesModel, api, aspect) {\n  var option = seriesModel.getBoxLayoutParams();\n  option.aspect = aspect;\n  return getLayoutRect(option, {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction _default(ecModel, api) {\n  var viewList = [];\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var coordSysType = seriesModel.get('coordinateSystem');\n\n    if (!coordSysType || coordSysType === 'view') {\n      var data = seriesModel.getData();\n      var positions = data.mapArray(function (idx) {\n        var itemModel = data.getItemModel(idx);\n        return [+itemModel.get('x'), +itemModel.get('y')];\n      });\n      var min = [];\n      var max = [];\n      bbox.fromPoints(positions, min, max); // If width or height is 0\n\n      if (max[0] - min[0] === 0) {\n        max[0] += 1;\n        min[0] -= 1;\n      }\n\n      if (max[1] - min[1] === 0) {\n        max[1] += 1;\n        min[1] -= 1;\n      }\n\n      var aspect = (max[0] - min[0]) / (max[1] - min[1]); // FIXME If get view rect after data processed?\n\n      var viewRect = getViewRect(seriesModel, api, aspect); // Position may be NaN, use view rect instead\n\n      if (isNaN(aspect)) {\n        min = [viewRect.x, viewRect.y];\n        max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n      }\n\n      var bbWidth = max[0] - min[0];\n      var bbHeight = max[1] - min[1];\n      var viewWidth = viewRect.width;\n      var viewHeight = viewRect.height;\n      var viewCoordSys = seriesModel.coordinateSystem = new View();\n      viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n      viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n      viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight); // Update roam info\n\n      viewCoordSys.setCenter(seriesModel.get('center'));\n      viewCoordSys.setZoom(seriesModel.get('zoom'));\n      viewList.push(viewCoordSys);\n    }\n  });\n  return viewList;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/createView.js\n// module id = 8LEe\n// module chunks = 0","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_is-object.js\n// module id = 8Nvm\n// module chunks = 0","var layout = require(\"../../util/layout\");\n\nvar nest = require(\"../../util/array/nest\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file The layout algorithm of sankey view\n * @author Deqing Li(annong035@gmail.com)\n */\nfunction _default(ecModel, api, payload) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var nodeWidth = seriesModel.get('nodeWidth');\n    var nodeGap = seriesModel.get('nodeGap');\n    var layoutInfo = getViewRect(seriesModel, api);\n    seriesModel.layoutInfo = layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n    var edges = graph.edges;\n    computeNodeValues(nodes);\n    var filteredNodes = zrUtil.filter(nodes, function (node) {\n      return node.getLayout().value === 0;\n    });\n    var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n    layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations);\n  });\n}\n/**\n * Get the layout position of the whole view\n *\n * @param {module:echarts/model/Series} seriesModel  the model object of sankey series\n * @param {module:echarts/ExtensionAPI} api  provide the API list that the developer can call\n * @return {module:zrender/core/BoundingRect}  size of rect to draw the sankey view\n */\n\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations) {\n  computeNodeBreadths(nodes, edges, nodeWidth, width);\n  computeNodeDepths(nodes, edges, height, nodeGap, iterations);\n  computeEdgeDepths(nodes);\n}\n/**\n * Compute the value of each node by summing the associated edge's value\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n */\n\n\nfunction computeNodeValues(nodes) {\n  zrUtil.each(nodes, function (node) {\n    var value1 = sum(node.outEdges, getEdgeValue);\n    var value2 = sum(node.inEdges, getEdgeValue);\n    var value = Math.max(value1, value2);\n    node.setLayout({\n      value: value\n    }, true);\n  });\n}\n/**\n * Compute the x-position for each node.\n * \n * Here we use Kahn algorithm to detect cycle when we traverse\n * the node to computer the initial x position.\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param  {number} nodeWidth  the dx of the node\n * @param  {number} width  the whole width of the area to draw the view\n */\n\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width) {\n  // Used to mark whether the edge is deleted. if it is deleted,\n  // the value is 0, otherwise it is 1.\n  var remainEdges = []; // Storage each node's indegree.\n\n  var indegreeArr = []; //Used to storage the node with indegree is equal to 0.\n\n  var zeroIndegrees = [];\n  var nextNode = [];\n  var x = 0;\n  var kx = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    remainEdges[i] = 1;\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    indegreeArr[i] = nodes[i].inEdges.length;\n\n    if (indegreeArr[i] === 0) {\n      zeroIndegrees.push(nodes[i]);\n    }\n  }\n\n  while (zeroIndegrees.length) {\n    zrUtil.each(zeroIndegrees, function (node) {\n      node.setLayout({\n        x: x\n      }, true);\n      node.setLayout({\n        dx: nodeWidth\n      }, true);\n      zrUtil.each(node.outEdges, function (edge) {\n        var indexEdge = edges.indexOf(edge);\n        remainEdges[indexEdge] = 0;\n        var targetNode = edge.node2;\n        var nodeIndex = nodes.indexOf(targetNode);\n\n        if (--indegreeArr[nodeIndex] === 0) {\n          nextNode.push(targetNode);\n        }\n      });\n    });\n    ++x;\n    zeroIndegrees = nextNode;\n    nextNode = [];\n  }\n\n  for (var i = 0; i < remainEdges.length; i++) {}\n\n  moveSinksRight(nodes, x);\n  kx = (width - nodeWidth) / (x - 1);\n  scaleNodeBreadths(nodes, kx);\n}\n/**\n * All the node without outEgdes are assigned maximum x-position and\n *     be aligned in the last column.\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param {number} x  value (x-1) use to assign to node without outEdges\n *     as x-position\n */\n\n\nfunction moveSinksRight(nodes, x) {\n  zrUtil.each(nodes, function (node) {\n    if (!node.outEdges.length) {\n      node.setLayout({\n        x: x - 1\n      }, true);\n    }\n  });\n}\n/**\n * Scale node x-position to the width\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param {number} kx   multiple used to scale nodes\n */\n\n\nfunction scaleNodeBreadths(nodes, kx) {\n  zrUtil.each(nodes, function (node) {\n    var nodeX = node.getLayout().x * kx;\n    node.setLayout({\n      x: nodeX\n    }, true);\n  });\n}\n/**\n * Using Gauss-Seidel iterations method to compute the node depth(y-position)\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param {module:echarts/data/Graph~Edge} edges  edge of sankey view\n * @param {number} height  the whole height of the area to draw the view\n * @param {number} nodeGap  the vertical distance between two nodes\n *     in the same column.\n * @param {number} iterations  the number of iterations for the algorithm\n */\n\n\nfunction computeNodeDepths(nodes, edges, height, nodeGap, iterations) {\n  var nodesByBreadth = nest().key(function (d) {\n    return d.getLayout().x;\n  }).sortKeys(ascending).entries(nodes).map(function (d) {\n    return d.values;\n  });\n  initializeNodeDepth(nodes, nodesByBreadth, edges, height, nodeGap);\n  resolveCollisions(nodesByBreadth, nodeGap, height);\n\n  for (var alpha = 1; iterations > 0; iterations--) {\n    // 0.99 is a experience parameter, ensure that each iterations of\n    // changes as small as possible.\n    alpha *= 0.99;\n    relaxRightToLeft(nodesByBreadth, alpha);\n    resolveCollisions(nodesByBreadth, nodeGap, height);\n    relaxLeftToRight(nodesByBreadth, alpha);\n    resolveCollisions(nodesByBreadth, nodeGap, height);\n  }\n}\n/**\n * Compute the original y-position for each node\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth\n *     group by the array of all sankey nodes based on the nodes x-position.\n * @param {module:echarts/data/Graph~Edge} edges  edge of sankey view\n * @param {number} height  the whole height of the area to draw the view\n * @param {number} nodeGap  the vertical distance between two nodes\n */\n\n\nfunction initializeNodeDepth(nodes, nodesByBreadth, edges, height, nodeGap) {\n  var kyArray = [];\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    var n = nodes.length;\n    var sum = 0;\n    zrUtil.each(nodes, function (node) {\n      sum += node.getLayout().value;\n    });\n    var ky = (height - (n - 1) * nodeGap) / sum;\n    kyArray.push(ky);\n  });\n  kyArray.sort(function (a, b) {\n    return a - b;\n  });\n  var ky0 = kyArray[0];\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node, i) {\n      node.setLayout({\n        y: i\n      }, true);\n      var nodeDy = node.getLayout().value * ky0;\n      node.setLayout({\n        dy: nodeDy\n      }, true);\n    });\n  });\n  zrUtil.each(edges, function (edge) {\n    var edgeDy = +edge.getValue() * ky0;\n    edge.setLayout({\n      dy: edgeDy\n    }, true);\n  });\n}\n/**\n * Resolve the collision of initialized depth (y-position)\n *\n * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth\n *     group by the array of all sankey nodes based on the nodes x-position.\n * @param {number} nodeGap  the vertical distance between two nodes\n * @param {number} height  the whole height of the area to draw the view\n */\n\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height) {\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    var node;\n    var dy;\n    var y0 = 0;\n    var n = nodes.length;\n    var i;\n    nodes.sort(ascendingDepth);\n\n    for (i = 0; i < n; i++) {\n      node = nodes[i];\n      dy = y0 - node.getLayout().y;\n\n      if (dy > 0) {\n        var nodeY = node.getLayout().y + dy;\n        node.setLayout({\n          y: nodeY\n        }, true);\n      }\n\n      y0 = node.getLayout().y + node.getLayout().dy + nodeGap;\n    } // If the bottommost node goes outside the bounds, push it back up\n\n\n    dy = y0 - nodeGap - height;\n\n    if (dy > 0) {\n      var nodeY = node.getLayout().y - dy;\n      node.setLayout({\n        y: nodeY\n      }, true);\n      y0 = node.getLayout().y;\n\n      for (i = n - 2; i >= 0; --i) {\n        node = nodes[i];\n        dy = node.getLayout().y + node.getLayout().dy + nodeGap - y0;\n\n        if (dy > 0) {\n          nodeY = node.getLayout().y - dy;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n\n        y0 = node.getLayout().y;\n      }\n    }\n  });\n}\n/**\n * Change the y-position of the nodes, except most the right side nodes\n *\n * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth\n *     group by the array of all sankey nodes based on the node x-position.\n * @param {number} alpha  parameter used to adjust the nodes y-position\n */\n\n\nfunction relaxRightToLeft(nodesByBreadth, alpha) {\n  zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.outEdges.length) {\n        var y = sum(node.outEdges, weightedTarget) / sum(node.outEdges, getEdgeValue);\n        var nodeY = node.getLayout().y + (y - center(node)) * alpha;\n        node.setLayout({\n          y: nodeY\n        }, true);\n      }\n    });\n  });\n}\n\nfunction weightedTarget(edge) {\n  return center(edge.node2) * edge.getValue();\n}\n/**\n * Change the y-position of the nodes, except most the left side nodes\n *\n * @param {Array.<Array.<module:echarts/data/Graph~Node>>} nodesByBreadth\n *     group by the array of all sankey nodes based on the node x-position.\n * @param {number} alpha  parameter used to adjust the nodes y-position\n */\n\n\nfunction relaxLeftToRight(nodesByBreadth, alpha) {\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.inEdges.length) {\n        var y = sum(node.inEdges, weightedSource) / sum(node.inEdges, getEdgeValue);\n        var nodeY = node.getLayout().y + (y - center(node)) * alpha;\n        node.setLayout({\n          y: nodeY\n        }, true);\n      }\n    });\n  });\n}\n\nfunction weightedSource(edge) {\n  return center(edge.node1) * edge.getValue();\n}\n/**\n * Compute the depth(y-position) of each edge\n *\n * @param {module:echarts/data/Graph~Node} nodes  node of sankey view\n */\n\n\nfunction computeEdgeDepths(nodes) {\n  zrUtil.each(nodes, function (node) {\n    node.outEdges.sort(ascendingTargetDepth);\n    node.inEdges.sort(ascendingSourceDepth);\n  });\n  zrUtil.each(nodes, function (node) {\n    var sy = 0;\n    var ty = 0;\n    zrUtil.each(node.outEdges, function (edge) {\n      edge.setLayout({\n        sy: sy\n      }, true);\n      sy += edge.getLayout().dy;\n    });\n    zrUtil.each(node.inEdges, function (edge) {\n      edge.setLayout({\n        ty: ty\n      }, true);\n      ty += edge.getLayout().dy;\n    });\n  });\n}\n\nfunction ascendingTargetDepth(a, b) {\n  return a.node2.getLayout().y - b.node2.getLayout().y;\n}\n\nfunction ascendingSourceDepth(a, b) {\n  return a.node1.getLayout().y - b.node1.getLayout().y;\n}\n\nfunction sum(array, f) {\n  var sum = 0;\n  var len = array.length;\n  var i = -1;\n\n  while (++i < len) {\n    var value = +f.call(array, array[i], i);\n\n    if (!isNaN(value)) {\n      sum += value;\n    }\n  }\n\n  return sum;\n}\n\nfunction center(node) {\n  return node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction ascendingDepth(a, b) {\n  return a.getLayout().y - b.getLayout().y;\n}\n\nfunction ascending(a, b) {\n  return a - b;\n}\n\nfunction getEdgeValue(edge) {\n  return edge.getValue();\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/sankeyLayout.js\n// module id = 8PsL\n// module chunks = 0","var _layout = require(\"../../util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\nvar layoutBox = _layout.box;\nvar positionElement = _layout.positionElement;\n\nvar formatUtil = require(\"../../util/format\");\n\nvar graphic = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Layout list like component.\n * It will box layout each items in group of component and then position the whole group in the viewport\n * @param {module:zrender/group/Group} group\n * @param {module:echarts/model/Component} componentModel\n * @param {module:echarts/ExtensionAPI}\n */\nfunction layout(group, componentModel, api) {\n  var boxLayoutParams = componentModel.getBoxLayoutParams();\n  var padding = componentModel.get('padding');\n  var viewportSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n  layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n  positionElement(group, boxLayoutParams, viewportSize, padding);\n}\n\nfunction makeBackground(rect, componentModel) {\n  var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n  var style = componentModel.getItemStyle(['color', 'opacity']);\n  style.fill = componentModel.get('backgroundColor');\n  var rect = new graphic.Rect({\n    shape: {\n      x: rect.x - padding[3],\n      y: rect.y - padding[0],\n      width: rect.width + padding[1] + padding[3],\n      height: rect.height + padding[0] + padding[2],\n      r: componentModel.get('borderRadius')\n    },\n    style: style,\n    silent: true,\n    z2: -1\n  }); // FIXME\n  // `subPixelOptimizeRect` may bring some gap between edge of viewpart\n  // and background rect when setting like `left: 0`, `top: 0`.\n  // graphic.subPixelOptimizeRect(rect);\n\n  return rect;\n}\n\nexports.layout = layout;\nexports.makeBackground = makeBackground;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/listComponent.js\n// module id = 8Uut\n// module chunks = 0","var guid = require(\"./core/guid\");\n\nvar Eventful = require(\"./mixin/Eventful\");\n\nvar Transformable = require(\"./mixin/Transformable\");\n\nvar Animatable = require(\"./mixin/Animatable\");\n\nvar zrUtil = require(\"./core/util\");\n\n/**\n * @alias module:zrender/Element\n * @constructor\n * @extends {module:zrender/mixin/Animatable}\n * @extends {module:zrender/mixin/Transformable}\n * @extends {module:zrender/mixin/Eventful}\n */\nvar Element = function (opts) {\n  // jshint ignore:line\n  Transformable.call(this, opts);\n  Eventful.call(this, opts);\n  Animatable.call(this, opts);\n  /**\n   * 鐢诲竷鍏冪礌ID\n   * @type {string}\n   */\n\n  this.id = opts.id || guid();\n};\n\nElement.prototype = {\n  /**\n   * 鍏冪礌绫诲瀷\n   * Element type\n   * @type {string}\n   */\n  type: 'element',\n\n  /**\n   * 鍏冪礌鍚嶅瓧\n   * Element name\n   * @type {string}\n   */\n  name: '',\n\n  /**\n   * ZRender 瀹炰緥瀵硅薄锛屼細鍦� element 娣诲姞鍒� zrender 瀹炰緥涓悗鑷姩璧嬪�糪n   * ZRender instance will be assigned when element is associated with zrender\n   * @name module:/zrender/Element#__zr\n   * @type {module:zrender/ZRender}\n   */\n  __zr: null,\n\n  /**\n   * 鍥惧舰鏄惁蹇界暐锛屼负true鏃跺拷鐣ュ浘褰㈢殑缁樺埗浠ュ強浜嬩欢瑙﹀彂\n   * If ignore drawing and events of the element object\n   * @name module:/zrender/Element#ignore\n   * @type {boolean}\n   * @default false\n   */\n  ignore: false,\n\n  /**\n   * 鐢ㄤ簬瑁佸壀鐨勮矾寰�(shape)锛屾墍鏈� Group 鍐呯殑璺緞鍦ㄧ粯鍒舵椂閮戒細琚繖涓矾寰勮鍓猏n   * 璇ヨ矾寰勪細缁ф壙琚鍑忓璞$殑鍙樻崲\n   * @type {module:zrender/graphic/Path}\n   * @see http://www.w3.org/TR/2dcontext/#clipping-region\n   * @readOnly\n   */\n  clipPath: null,\n\n  /**\n   * 鏄惁鏄� Group\n   * @type {boolean}\n   */\n  isGroup: false,\n\n  /**\n   * Drift element\n   * @param  {number} dx dx on the global space\n   * @param  {number} dy dy on the global space\n   */\n  drift: function (dx, dy) {\n    switch (this.draggable) {\n      case 'horizontal':\n        dy = 0;\n        break;\n\n      case 'vertical':\n        dx = 0;\n        break;\n    }\n\n    var m = this.transform;\n\n    if (!m) {\n      m = this.transform = [1, 0, 0, 1, 0, 0];\n    }\n\n    m[4] += dx;\n    m[5] += dy;\n    this.decomposeTransform();\n    this.dirty(false);\n  },\n\n  /**\n   * Hook before update\n   */\n  beforeUpdate: function () {},\n\n  /**\n   * Hook after update\n   */\n  afterUpdate: function () {},\n\n  /**\n   * Update each frame\n   */\n  update: function () {\n    this.updateTransform();\n  },\n\n  /**\n   * @param  {Function} cb\n   * @param  {}   context\n   */\n  traverse: function (cb, context) {},\n\n  /**\n   * @protected\n   */\n  attrKV: function (key, value) {\n    if (key === 'position' || key === 'scale' || key === 'origin') {\n      // Copy the array\n      if (value) {\n        var target = this[key];\n\n        if (!target) {\n          target = this[key] = [];\n        }\n\n        target[0] = value[0];\n        target[1] = value[1];\n      }\n    } else {\n      this[key] = value;\n    }\n  },\n\n  /**\n   * Hide the element\n   */\n  hide: function () {\n    this.ignore = true;\n    this.__zr && this.__zr.refresh();\n  },\n\n  /**\n   * Show the element\n   */\n  show: function () {\n    this.ignore = false;\n    this.__zr && this.__zr.refresh();\n  },\n\n  /**\n   * @param {string|Object} key\n   * @param {*} value\n   */\n  attr: function (key, value) {\n    if (typeof key === 'string') {\n      this.attrKV(key, value);\n    } else if (zrUtil.isObject(key)) {\n      for (var name in key) {\n        if (key.hasOwnProperty(name)) {\n          this.attrKV(name, key[name]);\n        }\n      }\n    }\n\n    this.dirty(false);\n    return this;\n  },\n\n  /**\n   * @param {module:zrender/graphic/Path} clipPath\n   */\n  setClipPath: function (clipPath) {\n    var zr = this.__zr;\n\n    if (zr) {\n      clipPath.addSelfToZr(zr);\n    } // Remove previous clip path\n\n\n    if (this.clipPath && this.clipPath !== clipPath) {\n      this.removeClipPath();\n    }\n\n    this.clipPath = clipPath;\n    clipPath.__zr = zr;\n    clipPath.__clipTarget = this;\n    this.dirty(false);\n  },\n\n  /**\n   */\n  removeClipPath: function () {\n    var clipPath = this.clipPath;\n\n    if (clipPath) {\n      if (clipPath.__zr) {\n        clipPath.removeSelfFromZr(clipPath.__zr);\n      }\n\n      clipPath.__zr = null;\n      clipPath.__clipTarget = null;\n      this.clipPath = null;\n      this.dirty(false);\n    }\n  },\n\n  /**\n   * Add self from zrender instance.\n   * Not recursively because it will be invoked when element added to storage.\n   * @param {module:zrender/ZRender} zr\n   */\n  addSelfToZr: function (zr) {\n    this.__zr = zr; // 娣诲姞鍔ㄧ敾\n\n    var animators = this.animators;\n\n    if (animators) {\n      for (var i = 0; i < animators.length; i++) {\n        zr.animation.addAnimator(animators[i]);\n      }\n    }\n\n    if (this.clipPath) {\n      this.clipPath.addSelfToZr(zr);\n    }\n  },\n\n  /**\n   * Remove self from zrender instance.\n   * Not recursively because it will be invoked when element added to storage.\n   * @param {module:zrender/ZRender} zr\n   */\n  removeSelfFromZr: function (zr) {\n    this.__zr = null; // 绉婚櫎鍔ㄧ敾\n\n    var animators = this.animators;\n\n    if (animators) {\n      for (var i = 0; i < animators.length; i++) {\n        zr.animation.removeAnimator(animators[i]);\n      }\n    }\n\n    if (this.clipPath) {\n      this.clipPath.removeSelfFromZr(zr);\n    }\n  }\n};\nzrUtil.mixin(Element, Animatable);\nzrUtil.mixin(Element, Transformable);\nzrUtil.mixin(Element, Eventful);\nvar _default = Element;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/Element.js\n// module id = 8cjF\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Scale = require(\"./Scale\");\n\nvar OrdinalMeta = require(\"../data/OrdinalMeta\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Linear continuous scale\n * @module echarts/coord/scale/Ordinal\n *\n * http://en.wikipedia.org/wiki/Level_of_measurement\n */\n// FIXME only one data\nvar scaleProto = Scale.prototype;\nvar OrdinalScale = Scale.extend({\n  type: 'ordinal',\n\n  /**\n   * @param {module:echarts/data/OrdianlMeta|Array.<string>} ordinalMeta\n   */\n  init: function (ordinalMeta, extent) {\n    // Caution: Should not use instanceof, consider ec-extensions using\n    // import approach to get OrdinalMeta class.\n    if (!ordinalMeta || zrUtil.isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: ordinalMeta\n      });\n    }\n\n    this._ordinalMeta = ordinalMeta;\n    this._extent = extent || [0, ordinalMeta.categories.length - 1];\n  },\n  parse: function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) // val might be float.\n    : Math.round(val);\n  },\n  contain: function (rank) {\n    rank = this.parse(rank);\n    return scaleProto.contain.call(this, rank) && this._ordinalMeta.categories[rank] != null;\n  },\n\n  /**\n   * Normalize given rank or name to linear [0, 1]\n   * @param {number|string} [val]\n   * @return {number}\n   */\n  normalize: function (val) {\n    return scaleProto.normalize.call(this, this.parse(val));\n  },\n  scale: function (val) {\n    return Math.round(scaleProto.scale.call(this, val));\n  },\n\n  /**\n   * @return {Array}\n   */\n  getTicks: function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push(rank);\n      rank++;\n    }\n\n    return ticks;\n  },\n\n  /**\n   * Get item on rank n\n   * @param {number} n\n   * @return {string}\n   */\n  getLabel: function (n) {\n    if (!this.isBlank()) {\n      // Note that if no data, ordinalMeta.categories is an empty array.\n      return this._ordinalMeta.categories[n];\n    }\n  },\n\n  /**\n   * @return {number}\n   */\n  count: function () {\n    return this._extent[1] - this._extent[0] + 1;\n  },\n\n  /**\n   * @override\n   */\n  unionExtentFromData: function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  },\n  getOrdinalMeta: function () {\n    return this._ordinalMeta;\n  },\n  niceTicks: zrUtil.noop,\n  niceExtent: zrUtil.noop\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nOrdinalScale.create = function () {\n  return new OrdinalScale();\n};\n\nvar _default = OrdinalScale;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/scale/Ordinal.js\n// module id = 8iEm\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar axisHelper = require(\"./axisHelper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = {\n  /**\n   * @param {boolean} origin\n   * @return {number|string} min value or 'dataMin' or null/undefined (means auto) or NaN\n   */\n  getMin: function (origin) {\n    var option = this.option;\n    var min = !origin && option.rangeStart != null ? option.rangeStart : option.min;\n\n    if (this.axis && min != null && min !== 'dataMin' && typeof min !== 'function' && !zrUtil.eqNaN(min)) {\n      min = this.axis.scale.parse(min);\n    }\n\n    return min;\n  },\n\n  /**\n   * @param {boolean} origin\n   * @return {number|string} max value or 'dataMax' or null/undefined (means auto) or NaN\n   */\n  getMax: function (origin) {\n    var option = this.option;\n    var max = !origin && option.rangeEnd != null ? option.rangeEnd : option.max;\n\n    if (this.axis && max != null && max !== 'dataMax' && typeof max !== 'function' && !zrUtil.eqNaN(max)) {\n      max = this.axis.scale.parse(max);\n    }\n\n    return max;\n  },\n\n  /**\n   * @return {boolean}\n   */\n  getNeedCrossZero: function () {\n    var option = this.option;\n    return option.rangeStart != null || option.rangeEnd != null ? false : !option.scale;\n  },\n\n  /**\n   * Should be implemented by each axis model if necessary.\n   * @return {module:echarts/model/Component} coordinate system model\n   */\n  getCoordSysModel: zrUtil.noop,\n\n  /**\n   * @param {number} rangeStart Can only be finite number or null/undefined or NaN.\n   * @param {number} rangeEnd Can only be finite number or null/undefined or NaN.\n   */\n  setRange: function (rangeStart, rangeEnd) {\n    this.option.rangeStart = rangeStart;\n    this.option.rangeEnd = rangeEnd;\n  },\n\n  /**\n   * Reset range\n   */\n  resetRange: function () {\n    // rangeStart and rangeEnd is readonly.\n    this.option.rangeStart = this.option.rangeEnd = null;\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/axisModelCommonMixin.js\n// module id = 8jLM\n// module chunks = 0","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n  if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n    return false;\n  }\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (typeof result[key] === 'object' && typeof val === 'object') {\n      result[key] = merge(result[key], val);\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isBuffer: isBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/utils.js\n// module id = 8r5Y\n// module chunks = 0","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"echarts\")):\"function\"==typeof define&&define.amd?define([\"echarts\"],e):\"object\"==typeof exports?exports.amap=e(require(\"echarts\")):(t.echarts=t.echarts||{},t.echarts.amap=e(t.echarts))}(this,function(t){return function(t){function e(n){if(o[n])return o[n].exports;var a=o[n]={i:n,l:!1,exports:{}};return t[n].call(a.exports,a,a.exports,e),a.l=!0,a.exports}var o={};return e.m=t,e.c=o,e.i=function(t){return t},e.d=function(t,o,n){e.o(t,o)||Object.defineProperty(t,o,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var o=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(o,\"a\",o),o},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=4)}([function(e,o){e.exports=t},function(t,e,o){function n(t,e){this._amap=t,this.dimensions=[\"lng\",\"lat\"],this._mapOffset=[0,0],this._api=e}var a=o(0);n.prototype.dimensions=[\"lng\",\"lat\"],n.prototype.setZoom=function(t){this._zoom=t},n.prototype.setCenter=function(t){this._center=this._amap.lnglatToPixel(t)},n.prototype.setMapOffset=function(t){this._mapOffset=t},n.prototype.getAMap=function(){return this._amap},n.prototype.dataToPoint=function(t){var e=new AMap.LngLat(t[0],t[1]),o=this._amap.lngLatToContainer(e),n=this._mapOffset;return[o.x-n[0],o.y-n[1]]},n.prototype.pointToData=function(t){var e=this._mapOffset,t=this._amap.containerToLngLat({x:t[0]+e[0],y:t[1]+e[1]});return[t.lng,t.lat]},n.prototype.getViewRect=function(){var t=this._api;return new a.graphic.BoundingRect(0,0,t.getWidth(),t.getHeight())},n.prototype.getRoamTransform=function(){return a.matrix.create()};n.dimensions=n.prototype.dimensions,n.create=function(t,e){var o,r=e.getDom();t.eachComponent(\"amap\",function(t){var i=e.getZr().painter.getViewportRoot();if(\"undefined\"==typeof AMap)throw new Error(\"AMap api is not loaded\");if(o)throw new Error(\"Only one amap component can exist\");if(!t.__amap){var p=r.querySelector(\".ec-extension-amap\");p&&(i.style.left=\"0px\",i.style.top=\"0px\",r.removeChild(p)),p=document.createElement(\"div\"),p.style.cssText=\"width:100%;height:100%\",p.classList.add(\"ec-extension-amap\"),r.appendChild(p);var s=t.get()||{};s=t.__options=a.util.clone(s);var c=t.__amap=new AMap.Map(p,s),f=t.__layer=new AMap.CustomLayer(i);f.setMap(c)}var c=t.getAMap(),f=t.getLayer();f.hide();var m=c.getZoom(),u=c.getCenter();o=new n(c,e),o.setMapOffset(t.__mapOffset||[0,0]),o.setZoom(m),o.setCenter([u.lng,u.lat]),t.coordinateSystem=o,f.show()}),t.eachSeries(function(t){\"amap\"===t.get(\"coordinateSystem\")&&(t.coordinateSystem=o)})},t.exports=n},function(t,e,o){function n(t,e){return t&&e&&t[0]===e[0]&&t[1]===e[1]}t.exports=o(0).extendComponentModel({type:\"amap\",getAMap:function(){return this.__amap},getLayer:function(){return this.__layer},getMapOptions:function(){return this.__options},setCenterAndZoom:function(t,e){this.option.center=t,this.option.zoom=e},centerOrZoomChanged:function(t,e){var o=this.option;return!(n(t,o.center)&&e===o.zoom)},defaultOption:{center:[116.397475,39.908695],zoom:4}})},function(t,e,o){function n(t,e,o){var n,a,r,i;return i=function(){n=!1,a&&(r.apply(o,a),a=!1)},r=function(){n?a=arguments:(t.apply(o,arguments),setTimeout(i,e),n=!0)}}var a=o(0);t.exports=o(0).extendComponentView({type:\"amap\",render:function(t,e,o){function r(){p||o.dispatchAction({type:\"amapRoam\"})}function i(t){a.getInstanceByDom(o.getDom()).resize(),m.call(this,t)}var p=!0,s=t.getAMap(),c=o.getZr().painter.getViewportRoot(),f=t.coordinateSystem,m=function(e){if(!p){var n=c.parentNode.parentNode.parentNode,a=[-parseInt(n.style.left,10)||0,-parseInt(n.style.top,10)||0];c.style.left=a[0]+\"px\",c.style.top=a[1]+\"px\",f.setMapOffset(a),t.__mapOffset=a,o.dispatchAction({type:\"amapRoam\"})}},u=n(i,300,s);s.off(\"movestart\",this._oldMoveHandler),s.off(\"zoomend\",this._oldZoomEndHandler),s.off(\"moveend\",this._oldZoomEndHandler),s.off(\"complete\",this._oldZoomEndHandler),t.get(\"resizeEnable\")&&s.off(\"resize\",this._oldResizeHandler),s.on(\"movestart\",m),s.on(\"zoomend\",r),s.on(\"moveend\",r),s.on(\"complete\",r),t.get(\"resizeEnable\")&&s.on(\"resize\",u),this._oldMoveHandler=m,this._oldZoomEndHandler=r,this._oldResizeHandler=u,p=!1}})},function(t,e,o){o(0).registerCoordinateSystem(\"amap\",o(1)),o(2),o(3),o(0).registerAction({type:\"amapRoam\",event:\"amapRoam\",update:\"updateLayout\"},function(t,e){e.eachComponent(\"amap\",function(t){var e=t.getAMap(),o=e.getCenter();t.setCenterAndZoom([o.lng,o.lat],e.getZoom())})}),t.exports={version:\"1.0.0-rc.6\"}}])});\n//# sourceMappingURL=echarts-amap.min.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts-amap@1.0.0-rc.6@echarts-amap/dist/echarts-amap.min.js\n// module id = 8ueq\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-properties\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/define-properties.js\n// module id = 8zml\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_an-object.js\n// module id = 93K8\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Geo = require(\"./Geo\");\n\nvar layout = require(\"../../util/layout\");\n\nvar numberUtil = require(\"../../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Resize method bound to the geo\n * @param {module:echarts/coord/geo/GeoModel|module:echarts/chart/map/MapModel} geoModel\n * @param {module:echarts/ExtensionAPI} api\n */\nfunction resizeGeo(geoModel, api) {\n  var boundingCoords = geoModel.get('boundingCoords');\n\n  if (boundingCoords != null) {\n    var leftTop = boundingCoords[0];\n    var rightBottom = boundingCoords[1];\n\n    if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {} else {\n      this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\n    }\n  }\n\n  var rect = this.getBoundingRect();\n  var boxLayoutOption;\n  var center = geoModel.get('layoutCenter');\n  var size = geoModel.get('layoutSize');\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  var aspectScale = geoModel.get('aspectScale') || 0.75;\n  var aspect = rect.width / rect.height * aspectScale;\n  var useCenterAndSize = false;\n\n  if (center && size) {\n    center = [numberUtil.parsePercent(center[0], viewWidth), numberUtil.parsePercent(center[1], viewHeight)];\n    size = numberUtil.parsePercent(size, Math.min(viewWidth, viewHeight));\n\n    if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n      useCenterAndSize = true;\n    } else {}\n  }\n\n  var viewRect;\n\n  if (useCenterAndSize) {\n    var viewRect = {};\n\n    if (aspect > 1) {\n      // Width is same with size\n      viewRect.width = size;\n      viewRect.height = size / aspect;\n    } else {\n      viewRect.height = size;\n      viewRect.width = size * aspect;\n    }\n\n    viewRect.y = center[1] - viewRect.height / 2;\n    viewRect.x = center[0] - viewRect.width / 2;\n  } else {\n    // Use left/top/width/height\n    boxLayoutOption = geoModel.getBoxLayoutParams(); // 0.75 rate\n\n    boxLayoutOption.aspect = aspect;\n    viewRect = layout.getLayoutRect(boxLayoutOption, {\n      width: viewWidth,\n      height: viewHeight\n    });\n  }\n\n  this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n  this.setCenter(geoModel.get('center'));\n  this.setZoom(geoModel.get('zoom'));\n}\n/**\n * @param {module:echarts/coord/Geo} geo\n * @param {module:echarts/model/Model} model\n * @inner\n */\n\n\nfunction setGeoCoords(geo, model) {\n  zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n    geo.addGeoCoord(name, geoCoord);\n  });\n}\n\nvar geoCreator = {\n  // For deciding which dimensions to use when creating list data\n  dimensions: Geo.prototype.dimensions,\n  create: function (ecModel, api) {\n    var geoList = []; // FIXME Create each time may be slow\n\n    ecModel.eachComponent('geo', function (geoModel, idx) {\n      var name = geoModel.get('map');\n      var mapData = echarts.getMap(name);\n      var geo = new Geo(name + idx, name, mapData && mapData.geoJson, mapData && mapData.specialAreas, geoModel.get('nameMap'));\n      geo.zoomLimit = geoModel.get('scaleLimit');\n      geoList.push(geo);\n      setGeoCoords(geo, geoModel);\n      geoModel.coordinateSystem = geo;\n      geo.model = geoModel; // Inject resize method\n\n      geo.resize = resizeGeo;\n      geo.resize(geoModel, api);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var coordSys = seriesModel.get('coordinateSystem');\n\n      if (coordSys === 'geo') {\n        var geoIndex = seriesModel.get('geoIndex') || 0;\n        seriesModel.coordinateSystem = geoList[geoIndex];\n      }\n    }); // If has map series\n\n    var mapModelGroupBySeries = {};\n    ecModel.eachSeriesByType('map', function (seriesModel) {\n      if (!seriesModel.getHostGeoModel()) {\n        var mapType = seriesModel.getMapType();\n        mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n        mapModelGroupBySeries[mapType].push(seriesModel);\n      }\n    });\n    zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n      var mapData = echarts.getMap(mapType);\n      var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('nameMap');\n      });\n      var geo = new Geo(mapType, mapType, mapData && mapData.geoJson, mapData && mapData.specialAreas, zrUtil.mergeAll(nameMapList));\n      geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('scaleLimit');\n      }));\n      geoList.push(geo); // Inject resize method\n\n      geo.resize = resizeGeo;\n      geo.resize(mapSeries[0], api);\n      zrUtil.each(mapSeries, function (singleMapSeries) {\n        singleMapSeries.coordinateSystem = geo;\n        setGeoCoords(geo, singleMapSeries);\n      });\n    });\n    return geoList;\n  },\n\n  /**\n   * Fill given regions array\n   * @param  {Array.<Object>} originRegionArr\n   * @param  {string} mapName\n   * @param  {Object} [nameMap]\n   * @return {Array}\n   */\n  getFilledRegions: function (originRegionArr, mapName, nameMap) {\n    // Not use the original\n    var regionsArr = (originRegionArr || []).slice();\n    nameMap = nameMap || {};\n    var map = echarts.getMap(mapName);\n    var geoJson = map && map.geoJson;\n\n    if (!geoJson) {\n      return originRegionArr;\n    }\n\n    var dataNameMap = zrUtil.createHashMap();\n    var features = geoJson.features;\n\n    for (var i = 0; i < regionsArr.length; i++) {\n      dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n    }\n\n    for (var i = 0; i < features.length; i++) {\n      var name = features[i].properties.name;\n\n      if (!dataNameMap.get(name)) {\n        if (nameMap.hasOwnProperty(name)) {\n          name = nameMap[name];\n        }\n\n        regionsArr.push({\n          name: name\n        });\n      }\n    }\n\n    return regionsArr;\n  }\n};\necharts.registerCoordinateSystem('geo', geoCreator);\nvar _default = geoCreator;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/geoCreator.js\n// module id = 93zO\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar singleAxisHelper = require(\"../../coord/single/singleAxisHelper\");\n\nvar AxisView = require(\"./AxisView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttr = 'splitLine';\nvar SingleAxisView = AxisView.extend({\n  type: 'singleAxis',\n  axisPointerClass: 'SingleAxisPointer',\n  render: function (axisModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n    var layout = singleAxisHelper.layout(axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    group.add(axisBuilder.getGroup());\n\n    if (axisModel.get(selfBuilderAttr + '.show')) {\n      this['_' + selfBuilderAttr](axisModel);\n    }\n\n    SingleAxisView.superCall(this, 'render', axisModel, ecModel, api, payload);\n  },\n  _splitLine: function (axisModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineWidth = lineStyleModel.get('width');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var gridRect = axisModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var splitLines = [];\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n\n    for (var i = 0; i < ticksCoords.length; ++i) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line(graphic.subPixelOptimizeLine({\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: {\n          lineWidth: lineWidth\n        },\n        silent: true\n      })));\n    }\n\n    for (var i = 0; i < splitLines.length; ++i) {\n      this.group.add(graphic.mergePath(splitLines[i], {\n        style: {\n          stroke: lineColors[i % lineColors.length],\n          lineDash: lineStyleModel.getLineDash(lineWidth),\n          lineWidth: lineWidth\n        },\n        silent: true\n      }));\n    }\n  }\n});\nvar _default = SingleAxisView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis/SingleAxisView.js\n// module id = 99es\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 9AUj\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar _model = require(\"../../util/model\");\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar FunnelSeries = echarts.extendSeriesModel({\n  type: 'series.funnel',\n  init: function (option) {\n    FunnelSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n    this.legendDataProvider = function () {\n      return this.getRawData();\n    }; // Extend labelLine emphasis\n\n\n    this._defaultLabelLine(option);\n  },\n  getInitialData: function (option, ecModel) {\n    return createListSimply(this, ['value']);\n  },\n  _defaultLabelLine: function (option) {\n    // Extend labelLine emphasis\n    defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  },\n  // Overwrite\n  getDataParams: function (dataIndex) {\n    var data = this.getData();\n    var params = FunnelSeries.superCall(this, 'getDataParams', dataIndex);\n    var valueDim = data.mapDimension('value');\n    var sum = data.getSum(valueDim); // Percent is 0 if sum is 0\n\n    params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n    params.$vars.push('percent');\n    return params;\n  },\n  defaultOption: {\n    zlevel: 0,\n    // 涓�绾у眰鍙燶n    z: 2,\n    // 浜岀骇灞傚彔\n    legendHoverLink: true,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    // width: {totalWidth} - left - right,\n    // height: {totalHeight} - top - bottom,\n    // 榛樿鍙栨暟鎹渶灏忔渶澶у�糪n    // min: 0,\n    // max: 100,\n    minSize: '0%',\n    maxSize: '100%',\n    sort: 'descending',\n    // 'ascending', 'descending'\n    gap: 0,\n    funnelAlign: 'center',\n    label: {\n      show: true,\n      position: 'outer' // formatter: 鏍囩鏂囨湰鏍煎紡鍣紝鍚孴ooltip.formatter锛屼笉鏀寔寮傛鍥炶皟\n\n    },\n    labelLine: {\n      show: true,\n      length: 20,\n      lineStyle: {\n        // color: 鍚勫紓,\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      // color: 鍚勫紓,\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  }\n});\nvar _default = FunnelSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/funnel/FunnelSeries.js\n// module id = 9Fp8\n// module chunks = 0","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/spread.js\n// module id = 9JTW\n// module chunks = 0","var ComponentView = require(\"../../view/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = ComponentView.extend({\n  type: 'dataZoom',\n  render: function (dataZoomModel, ecModel, api, payload) {\n    this.dataZoomModel = dataZoomModel;\n    this.ecModel = ecModel;\n    this.api = api;\n  },\n\n  /**\n   * Find the first target coordinate system.\n   *\n   * @protected\n   * @return {Object} {\n   *                   grid: [\n   *                       {model: coord0, axisModels: [axis1, axis3], coordIndex: 1},\n   *                       {model: coord1, axisModels: [axis0, axis2], coordIndex: 0},\n   *                       ...\n   *                   ],  // cartesians must not be null/undefined.\n   *                   polar: [\n   *                       {model: coord0, axisModels: [axis4], coordIndex: 0},\n   *                       ...\n   *                   ],  // polars must not be null/undefined.\n   *                   singleAxis: [\n   *                       {model: coord0, axisModels: [], coordIndex: 0}\n   *                   ]\n   */\n  getTargetCoordInfo: function () {\n    var dataZoomModel = this.dataZoomModel;\n    var ecModel = this.ecModel;\n    var coordSysLists = {};\n    dataZoomModel.eachTargetAxis(function (dimNames, axisIndex) {\n      var axisModel = ecModel.getComponent(dimNames.axis, axisIndex);\n\n      if (axisModel) {\n        var coordModel = axisModel.getCoordSysModel();\n        coordModel && save(coordModel, axisModel, coordSysLists[coordModel.mainType] || (coordSysLists[coordModel.mainType] = []), coordModel.componentIndex);\n      }\n    }, this);\n\n    function save(coordModel, axisModel, store, coordIndex) {\n      var item;\n\n      for (var i = 0; i < store.length; i++) {\n        if (store[i].model === coordModel) {\n          item = store[i];\n          break;\n        }\n      }\n\n      if (!item) {\n        store.push(item = {\n          model: coordModel,\n          axisModels: [],\n          coordIndex: coordIndex\n        });\n      }\n\n      item.axisModels.push(axisModel);\n    }\n\n    return coordSysLists;\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/DataZoomView.js\n// module id = 9PUD\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar formatUtil = require(\"../util/format\");\n\nvar scaleHelper = require(\"./helper\");\n\nvar IntervalScale = require(\"./Interval\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// [About UTC and local time zone]:\n// In most cases, `number.parseDate` will treat input data string as local time\n// (except time zone is specified in time string). And `format.formateTime` returns\n// local time by default. option.useUTC is false by default. This design have\n// concidered these common case:\n// (1) Time that is persistent in server is in UTC, but it is needed to be diplayed\n// in local time by default.\n// (2) By default, the input data string (e.g., '2011-01-02') should be displayed\n// as its original time, without any time difference.\nvar intervalScaleProto = IntervalScale.prototype;\nvar mathCeil = Math.ceil;\nvar mathFloor = Math.floor;\nvar ONE_SECOND = 1000;\nvar ONE_MINUTE = ONE_SECOND * 60;\nvar ONE_HOUR = ONE_MINUTE * 60;\nvar ONE_DAY = ONE_HOUR * 24; // FIXME 鍏敤锛焅n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n/**\n * @alias module:echarts/coord/scale/Time\n * @constructor\n */\n\n\nvar TimeScale = IntervalScale.extend({\n  type: 'time',\n\n  /**\n   * @override\n   */\n  getLabel: function (val) {\n    var stepLvl = this._stepLvl;\n    var date = new Date(val);\n    return formatUtil.formatTime(stepLvl[0], date, this.getSetting('useUTC'));\n  },\n\n  /**\n   * @override\n   */\n  niceExtent: function (opt) {\n    var extent = this._extent; // If extent start and end are same, expand them\n\n    if (extent[0] === extent[1]) {\n      // Expand extent\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    } // If there are no data and extent are [Infinity, -Infinity]\n\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent;\n\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = numberUtil.round(mathFloor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = numberUtil.round(mathCeil(extent[1] / interval) * interval);\n    }\n  },\n\n  /**\n   * @override\n   */\n  niceTicks: function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    var approxInterval = span / approxTickNum;\n\n    if (minInterval != null && approxInterval < minInterval) {\n      approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && approxInterval > maxInterval) {\n      approxInterval = maxInterval;\n    }\n\n    var scaleLevelsLen = scaleLevels.length;\n    var idx = bisect(scaleLevels, approxInterval, 0, scaleLevelsLen);\n    var level = scaleLevels[Math.min(idx, scaleLevelsLen - 1)];\n    var interval = level[1]; // Same with interval scale if span is much larger than 1 year\n\n    if (level[0] === 'year') {\n      var yearSpan = span / interval; // From \"Nice Numbers for Graph Labels\" of Graphic Gems\n      // var niceYearSpan = numberUtil.nice(yearSpan, false);\n\n      var yearStep = numberUtil.nice(yearSpan / approxTickNum, true);\n      interval *= yearStep;\n    }\n\n    var timezoneOffset = this.getSetting('useUTC') ? 0 : new Date(+extent[0] || +extent[1]).getTimezoneOffset() * 60 * 1000;\n    var niceExtent = [Math.round(mathCeil((extent[0] - timezoneOffset) / interval) * interval + timezoneOffset), Math.round(mathFloor((extent[1] - timezoneOffset) / interval) * interval + timezoneOffset)];\n    scaleHelper.fixExtent(niceExtent, extent);\n    this._stepLvl = level; // Interval will be used in getTicks\n\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  },\n  parse: function (val) {\n    // val might be float.\n    return +numberUtil.parseDate(val);\n  }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n  TimeScale.prototype[methodName] = function (val) {\n    return intervalScaleProto[methodName].call(this, this.parse(val));\n  };\n}); // Steps from d3\n\nvar scaleLevels = [// Format              interval\n['hh:mm:ss', ONE_SECOND], // 1s\n['hh:mm:ss', ONE_SECOND * 5], // 5s\n['hh:mm:ss', ONE_SECOND * 10], // 10s\n['hh:mm:ss', ONE_SECOND * 15], // 15s\n['hh:mm:ss', ONE_SECOND * 30], // 30s\n['hh:mm\\nMM-dd', ONE_MINUTE], // 1m\n['hh:mm\\nMM-dd', ONE_MINUTE * 5], // 5m\n['hh:mm\\nMM-dd', ONE_MINUTE * 10], // 10m\n['hh:mm\\nMM-dd', ONE_MINUTE * 15], // 15m\n['hh:mm\\nMM-dd', ONE_MINUTE * 30], // 30m\n['hh:mm\\nMM-dd', ONE_HOUR], // 1h\n['hh:mm\\nMM-dd', ONE_HOUR * 2], // 2h\n['hh:mm\\nMM-dd', ONE_HOUR * 6], // 6h\n['hh:mm\\nMM-dd', ONE_HOUR * 12], // 12h\n['MM-dd\\nyyyy', ONE_DAY], // 1d\n['MM-dd\\nyyyy', ONE_DAY * 2], // 2d\n['MM-dd\\nyyyy', ONE_DAY * 3], // 3d\n['MM-dd\\nyyyy', ONE_DAY * 4], // 4d\n['MM-dd\\nyyyy', ONE_DAY * 5], // 5d\n['MM-dd\\nyyyy', ONE_DAY * 6], // 6d\n['week', ONE_DAY * 7], // 7d\n['MM-dd\\nyyyy', ONE_DAY * 10], // 10d\n['week', ONE_DAY * 14], // 2w\n['week', ONE_DAY * 21], // 3w\n['month', ONE_DAY * 31], // 1M\n['week', ONE_DAY * 42], // 6w\n['month', ONE_DAY * 62], // 2M\n['week', ONE_DAY * 42], // 10w\n['quarter', ONE_DAY * 380 / 4], // 3M\n['month', ONE_DAY * 31 * 4], // 4M\n['month', ONE_DAY * 31 * 5], // 5M\n['half-year', ONE_DAY * 380 / 2], // 6M\n['month', ONE_DAY * 31 * 8], // 8M\n['month', ONE_DAY * 31 * 10], // 10M\n['year', ONE_DAY * 380] // 1Y\n];\n/**\n * @param {module:echarts/model/Model}\n * @return {module:echarts/scale/Time}\n */\n\nTimeScale.create = function (model) {\n  return new TimeScale({\n    useUTC: model.ecModel.get('useUTC')\n  });\n};\n\nvar _default = TimeScale;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/scale/Time.js\n// module id = 9ZBU\n// module chunks = 0","var zrender = require(\"zrender/lib/zrender\");\n\nexports.zrender = zrender;\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nexports.matrix = matrix;\n\nvar vector = require(\"zrender/lib/core/vector\");\n\nexports.vector = vector;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nexports.color = colorTool;\n\nvar graphic = require(\"./util/graphic\");\n\nexports.graphic = graphic;\n\nvar numberUtil = require(\"./util/number\");\n\nexports.number = numberUtil;\n\nvar formatUtil = require(\"./util/format\");\n\nexports.format = formatUtil;\n\nvar _throttle = require(\"./util/throttle\");\n\nvar throttle = _throttle.throttle;\nexports.throttle = _throttle.throttle;\n\nvar ecHelper = require(\"./helper\");\n\nexports.helper = ecHelper;\n\nvar parseGeoJSON = require(\"./coord/geo/parseGeoJson\");\n\nexports.parseGeoJSON = parseGeoJSON;\n\nvar _List = require(\"./data/List\");\n\nexports.List = _List;\n\nvar _Model = require(\"./model/Model\");\n\nexports.Model = _Model;\n\nvar _Axis = require(\"./coord/Axis\");\n\nexports.Axis = _Axis;\n\nvar _env = require(\"zrender/lib/core/env\");\n\nexports.env = _env;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Do not mount those modules on 'src/echarts' for better tree shaking.\n */\nvar parseGeoJson = parseGeoJSON;\nvar ecUtil = {};\nzrUtil.each(['map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter', 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction', 'extend', 'defaults', 'clone', 'merge'], function (name) {\n  ecUtil[name] = zrUtil[name];\n});\nexports.parseGeoJson = parseGeoJson;\nexports.util = ecUtil;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/export.js\n// module id = 9aCb\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gopn.js\n// module id = 9akD\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _popup = require('element-ui/lib/utils/popup');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopperJS = _vue2.default.prototype.$isServer ? function () {} : require('./popper');\nvar stop = function stop(e) {\n  return e.stopPropagation();\n};\n\n/**\n * @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper.\n * @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper.\n * @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end)\n * @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative).\n * @param {Boolean} [visible=false] Visibility of the popup element.\n * @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style.\n */\nexports.default = {\n  props: {\n    transformOrigin: {\n      type: [Boolean, String],\n      default: true\n    },\n    placement: {\n      type: String,\n      default: 'bottom'\n    },\n    boundariesPadding: {\n      type: Number,\n      default: 5\n    },\n    reference: {},\n    popper: {},\n    offset: {\n      default: 0\n    },\n    value: Boolean,\n    visibleArrow: Boolean,\n    arrowOffset: {\n      type: Number,\n      default: 35\n    },\n    appendToBody: {\n      type: Boolean,\n      default: true\n    },\n    popperOptions: {\n      type: Object,\n      default: function _default() {\n        return {\n          gpuAcceleration: false\n        };\n      }\n    }\n  },\n\n  data: function data() {\n    return {\n      showPopper: false,\n      currentPlacement: ''\n    };\n  },\n\n\n  watch: {\n    value: {\n      immediate: true,\n      handler: function handler(val) {\n        this.showPopper = val;\n        this.$emit('input', val);\n      }\n    },\n\n    showPopper: function showPopper(val) {\n      if (this.disabled) {\n        return;\n      }\n      val ? this.updatePopper() : this.destroyPopper();\n      this.$emit('input', val);\n    }\n  },\n\n  methods: {\n    createPopper: function createPopper() {\n      var _this = this;\n\n      if (this.$isServer) return;\n      this.currentPlacement = this.currentPlacement || this.placement;\n      if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) {\n        return;\n      }\n\n      var options = this.popperOptions;\n      var popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper;\n      var reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference;\n\n      if (!reference && this.$slots.reference && this.$slots.reference[0]) {\n        reference = this.referenceElm = this.$slots.reference[0].elm;\n      }\n\n      if (!popper || !reference) return;\n      if (this.visibleArrow) this.appendArrow(popper);\n      if (this.appendToBody) document.body.appendChild(this.popperElm);\n      if (this.popperJS && this.popperJS.destroy) {\n        this.popperJS.destroy();\n      }\n\n      options.placement = this.currentPlacement;\n      options.offset = this.offset;\n      options.arrowOffset = this.arrowOffset;\n      this.popperJS = new PopperJS(reference, popper, options);\n      this.popperJS.onCreate(function (_) {\n        _this.$emit('created', _this);\n        _this.resetTransformOrigin();\n        _this.$nextTick(_this.updatePopper);\n      });\n      if (typeof options.onUpdate === 'function') {\n        this.popperJS.onUpdate(options.onUpdate);\n      }\n      this.popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex();\n      this.popperElm.addEventListener('click', stop);\n    },\n    updatePopper: function updatePopper() {\n      var popperJS = this.popperJS;\n      if (popperJS) {\n        popperJS.update();\n        if (popperJS._popper) {\n          popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex();\n        }\n      } else {\n        this.createPopper();\n      }\n    },\n    doDestroy: function doDestroy(forceDestroy) {\n      /* istanbul ignore if */\n      if (!this.popperJS || this.showPopper && !forceDestroy) return;\n      this.popperJS.destroy();\n      this.popperJS = null;\n    },\n    destroyPopper: function destroyPopper() {\n      if (this.popperJS) {\n        this.resetTransformOrigin();\n      }\n    },\n    resetTransformOrigin: function resetTransformOrigin() {\n      if (!this.transformOrigin) return;\n      var placementMap = {\n        top: 'bottom',\n        bottom: 'top',\n        left: 'right',\n        right: 'left'\n      };\n      var placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0];\n      var origin = placementMap[placement];\n      this.popperJS._popper.style.transformOrigin = typeof this.transformOrigin === 'string' ? this.transformOrigin : ['top', 'bottom'].indexOf(placement) > -1 ? 'center ' + origin : origin + ' center';\n    },\n    appendArrow: function appendArrow(element) {\n      var hash = void 0;\n      if (this.appended) {\n        return;\n      }\n\n      this.appended = true;\n\n      for (var item in element.attributes) {\n        if (/^_v-/.test(element.attributes[item].name)) {\n          hash = element.attributes[item].name;\n          break;\n        }\n      }\n\n      var arrow = document.createElement('div');\n\n      if (hash) {\n        arrow.setAttribute(hash, '');\n      }\n      arrow.setAttribute('x-arrow', '');\n      arrow.className = 'popper__arrow';\n      element.appendChild(arrow);\n    }\n  },\n\n  beforeDestroy: function beforeDestroy() {\n    this.doDestroy(true);\n    if (this.popperElm && this.popperElm.parentNode === document.body) {\n      this.popperElm.removeEventListener('click', stop);\n      document.body.removeChild(this.popperElm);\n    }\n  },\n\n\n  // call destroy in keep-alive mode\n  deactivated: function deactivated() {\n    this.$options.beforeDestroy[0].call(this);\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/vue-popper.js\n// module id = 9mPB\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListFromArray = require(\"./chart/helper/createListFromArray\");\n\nvar axisHelper = require(\"./coord/axisHelper\");\n\nvar axisModelCommonMixin = require(\"./coord/axisModelCommonMixin\");\n\nvar Model = require(\"./model/Model\");\n\nvar _layout = require(\"./util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\nexports.getLayoutRect = _layout.getLayoutRect;\n\nvar _dataStackHelper = require(\"./data/helper/dataStackHelper\");\n\nvar enableDataStack = _dataStackHelper.enableDataStack;\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nvar _completeDimensions = require(\"./data/helper/completeDimensions\");\n\nexports.completeDimensions = _completeDimensions;\n\nvar _createDimensions = require(\"./data/helper/createDimensions\");\n\nexports.createDimensions = _createDimensions;\n\nvar _symbol = require(\"./util/symbol\");\n\nexports.createSymbol = _symbol.createSymbol;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import createGraphFromNodeEdge from './chart/helper/createGraphFromNodeEdge';\n\n/**\n * Create a muti dimension List structure from seriesModel.\n * @param  {module:echarts/model/Model} seriesModel\n * @return {module:echarts/data/List} list\n */\nfunction createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n} // export function createGraph(seriesModel) {\n//     var nodes = seriesModel.get('data');\n//     var links = seriesModel.get('links');\n//     return createGraphFromNodeEdge(nodes, links, seriesModel);\n// }\n\n\nvar dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\n/**\n * Create a symbol element with given symbol configuration: shape, x, y, width, height, color\n * @see http://echarts.baidu.com/option.html#series-scatter.symbol\n * @param {string} symbolDesc\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {string} color\n */\n\n/**\n * Create scale\n * @param {Array.<number>} dataExtent\n * @param {Object|module:echarts/Model} option\n */\nfunction createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!Model.isInstance(option)) {\n    axisModel = new Model(option);\n    zrUtil.mixin(axisModel, axisModelCommonMixin);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\n/**\n * Mixin common methods to axis model,\n *\n * Inlcude methods\n * `getFormattedLabels() => Array.<string>`\n * `getCategories() => Array.<string>`\n * `getMin(origin: boolean) => number`\n * `getMax(origin: boolean) => number`\n * `getNeedCrossZero() => boolean`\n * `setRange(start: number, end: number)`\n * `resetRange()`\n */\n\n\nfunction mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, axisModelCommonMixin);\n}\n\nexports.createList = createList;\nexports.dataStack = dataStack;\nexports.createScale = createScale;\nexports.mixinAxisModelCommonMethods = mixinAxisModelCommonMethods;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/helper.js\n// module id = 9sm9\n// module chunks = 0","var BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar _cursorHelper = require(\"./cursorHelper\");\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphicUtil = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction makeRectPanelClipPath(rect) {\n  rect = normalizeRect(rect);\n  return function (localPoints, transform) {\n    return graphicUtil.clipPointsByRect(localPoints, rect);\n  };\n}\n\nfunction makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n  rect = normalizeRect(rect);\n  return function (xyIndex) {\n    var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n    var brushWidth = idx ? rect.width : rect.height;\n    var base = idx ? rect.x : rect.y;\n    return [base, base + (brushWidth || 0)];\n  };\n}\n\nfunction makeRectIsTargetByCursor(rect, api, targetModel) {\n  rect = normalizeRect(rect);\n  return function (e, localCursorPoint, transform) {\n    return rect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n  };\n} // Consider width/height is negative.\n\n\nfunction normalizeRect(rect) {\n  return BoundingRect.create(rect);\n}\n\nexports.makeRectPanelClipPath = makeRectPanelClipPath;\nexports.makeLinearBrushOtherExtent = makeLinearBrushOtherExtent;\nexports.makeRectIsTargetByCursor = makeRectIsTargetByCursor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/brushHelper.js\n// module id = A1Wz\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n  'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n  'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n  'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n  'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n  var NAME = DOMIterables[i];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n  Iterators[NAME] = Iterators.Array;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/web.dom.iterable.js\n// module id = A1pn\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Extend axis 2d\n * @constructor module:echarts/coord/cartesian/Axis2D\n * @extends {module:echarts/coord/cartesian/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.<number>} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar Axis2D = function (dim, scale, coordExtent, axisType, position) {\n  Axis.call(this, dim, scale, coordExtent);\n  /**\n   * Axis type\n   *  - 'category'\n   *  - 'value'\n   *  - 'time'\n   *  - 'log'\n   * @type {string}\n   */\n\n  this.type = axisType || 'value';\n  /**\n   * Axis position\n   *  - 'top'\n   *  - 'bottom'\n   *  - 'left'\n   *  - 'right'\n   */\n\n  this.position = position || 'bottom';\n};\n\nAxis2D.prototype = {\n  constructor: Axis2D,\n\n  /**\n   * Index of axis, can be used as key\n   */\n  index: 0,\n\n  /**\n   * Implemented in <module:echarts/coord/cartesian/Grid>.\n   * @return {Array.<module:echarts/coord/cartesian/Axis2D>}\n   *         If not on zero of other axis, return null/undefined.\n   *         If no axes, return an empty array.\n   */\n  getAxesOnZeroOf: null,\n\n  /**\n   * Axis model\n   * @param {module:echarts/coord/cartesian/AxisModel}\n   */\n  model: null,\n  isHorizontal: function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  },\n\n  /**\n   * Each item cooresponds to this.getExtent(), which\n   * means globalExtent[0] may greater than globalExtent[1],\n   * unless `asc` is input.\n   *\n   * @param {boolean} [asc]\n   * @return {Array.<number>}\n   */\n  getGlobalExtent: function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  },\n  getOtherAxis: function () {\n    this.grid.getOtherAxis();\n  },\n\n  /**\n   * @override\n   */\n  pointToData: function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  },\n\n  /**\n   * Transform global coord to local coord,\n   * i.e. var localCoord = axis.toLocalCoord(80);\n   * designate by module:echarts/coord/cartesian/Grid.\n   * @type {Function}\n   */\n  toLocalCoord: null,\n\n  /**\n   * Transform global coord to local coord,\n   * i.e. var globalCoord = axis.toLocalCoord(40);\n   * designate by module:echarts/coord/cartesian/Grid.\n   * @type {Function}\n   */\n  toGlobalCoord: null\n};\nzrUtil.inherits(Axis2D, Axis);\nvar _default = Axis2D;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/Axis2D.js\n// module id = A2Qw\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Data selectable mixin for chart series.\n * To eanble data select, option of series must have `selectedMode`.\n * And each data item will use `selected` to toggle itself selected status\n */\nvar _default = {\n  /**\n   * @param {Array.<Object>} targetList [{name, value, selected}, ...]\n   *        If targetList is an array, it should like [{name: ..., value: ...}, ...].\n   *        If targetList is a \"List\", it must have coordDim: 'value' dimension and name.\n   */\n  updateSelectedMap: function (targetList) {\n    this._targetList = zrUtil.isArray(targetList) ? targetList.slice() : [];\n    this._selectTargetMap = zrUtil.reduce(targetList || [], function (targetMap, target) {\n      targetMap.set(target.name, target);\n      return targetMap;\n    }, zrUtil.createHashMap());\n  },\n\n  /**\n   * Either name or id should be passed as input here.\n   * If both of them are defined, id is used.\n   *\n   * @param {string|undefined} name name of data\n   * @param {number|undefined} id dataIndex of data\n   */\n  // PENGING If selectedMode is null ?\n  select: function (name, id) {\n    var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name);\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      this._selectTargetMap.each(function (target) {\n        target.selected = false;\n      });\n    }\n\n    target && (target.selected = true);\n  },\n\n  /**\n   * Either name or id should be passed as input here.\n   * If both of them are defined, id is used.\n   *\n   * @param {string|undefined} name name of data\n   * @param {number|undefined} id dataIndex of data\n   */\n  unSelect: function (name, id) {\n    var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name); // var selectedMode = this.get('selectedMode');\n    // selectedMode !== 'single' && target && (target.selected = false);\n\n    target && (target.selected = false);\n  },\n\n  /**\n   * Either name or id should be passed as input here.\n   * If both of them are defined, id is used.\n   *\n   * @param {string|undefined} name name of data\n   * @param {number|undefined} id dataIndex of data\n   */\n  toggleSelected: function (name, id) {\n    var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name);\n\n    if (target != null) {\n      this[target.selected ? 'unSelect' : 'select'](name, id);\n      return target.selected;\n    }\n  },\n\n  /**\n   * Either name or id should be passed as input here.\n   * If both of them are defined, id is used.\n   *\n   * @param {string|undefined} name name of data\n   * @param {number|undefined} id dataIndex of data\n   */\n  isSelected: function (name, id) {\n    var target = id != null ? this._targetList[id] : this._selectTargetMap.get(name);\n    return target && target.selected;\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/selectableMixin.js\n// module id = A4ij\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar AxisView = require(\"./AxisView\");\n\nvar cartesianAxisHelper = require(\"../../coord/cartesian/cartesianAxisHelper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine']; // function getAlignWithLabel(model, axisModel) {\n//     var alignWithLabel = model.get('alignWithLabel');\n//     if (alignWithLabel === 'auto') {\n//         alignWithLabel = axisModel.get('axisTick.alignWithLabel');\n//     }\n//     return alignWithLabel;\n// }\n\nvar CartesianAxisView = AxisView.extend({\n  type: 'cartesianAxis',\n  axisPointerClass: 'CartesianAxisPointer',\n\n  /**\n   * @override\n   */\n  render: function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get(name + '.show')) {\n        this['_' + name](axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n    CartesianAxisView.superCall(this, 'render', axisModel, ecModel, api, payload);\n  },\n  remove: function () {\n    this._splitAreaColors = null;\n  },\n\n  /**\n   * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n   * @param {module:echarts/coord/cartesian/GridModel} gridModel\n   * @private\n   */\n  _splitLine: function (axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = []; // Simple optimization\n    // Batching the lines if color are the same\n\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n\n      this._axisGroup.add(new graphic.Line(graphic.subPixelOptimizeLine({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      })));\n    }\n  },\n\n  /**\n   * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n   * @param {module:echarts/coord/cartesian/GridModel} gridModel\n   * @private\n   */\n  _splitArea: function (axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitAreaModel = axisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitAreaModel,\n      clamp: true\n    });\n\n    if (!ticksCoords.length) {\n      return;\n    } // For Making appropriate splitArea animation, the color and anid\n    // should be corresponding to previous one if possible.\n\n\n    var areaColorsLen = areaColors.length;\n    var lastSplitAreaColors = this._splitAreaColors;\n    var newSplitAreaColors = zrUtil.createHashMap();\n    var colorIndex = 0;\n\n    if (lastSplitAreaColors) {\n      for (var i = 0; i < ticksCoords.length; i++) {\n        var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n        if (cIndex != null) {\n          colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n          break;\n        }\n      }\n    }\n\n    var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n    var areaStyle = areaStyleModel.getAreaStyle();\n    areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n    for (var i = 1; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n      var x;\n      var y;\n      var width;\n      var height;\n\n      if (axis.isHorizontal()) {\n        x = prev;\n        y = gridRect.y;\n        width = tickCoord - x;\n        height = gridRect.height;\n        prev = x + width;\n      } else {\n        x = gridRect.x;\n        y = prev;\n        width = gridRect.width;\n        height = tickCoord - y;\n        prev = y + height;\n      }\n\n      var tickValue = ticksCoords[i - 1].tickValue;\n      tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n\n      this._axisGroup.add(new graphic.Rect({\n        anid: tickValue != null ? 'area_' + tickValue : null,\n        shape: {\n          x: x,\n          y: y,\n          width: width,\n          height: height\n        },\n        style: zrUtil.defaults({\n          fill: areaColors[colorIndex]\n        }, areaStyle),\n        silent: true\n      }));\n\n      colorIndex = (colorIndex + 1) % areaColorsLen;\n    }\n\n    this._splitAreaColors = newSplitAreaColors;\n  }\n});\nCartesianAxisView.extend({\n  type: 'xAxis'\n});\nCartesianAxisView.extend({\n  type: 'yAxis'\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis/CartesianAxisView.js\n// module id = AAaq\n// module chunks = 0","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_core.js\n// module id = AKd3\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar vector = require(\"zrender/lib/core/vector\");\n\nvar symbolUtil = require(\"../../util/symbol\");\n\nvar LinePath = require(\"./LinePath\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _number = require(\"../../util/number\");\n\nvar round = _number.round;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/chart/helper/Line\n */\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n  return '_' + symbolCategory + 'Type';\n}\n/**\n * @inner\n */\n\n\nfunction createSymbol(name, lineData, idx) {\n  var color = lineData.getItemVisual(idx, 'color');\n  var symbolType = lineData.getItemVisual(idx, name);\n  var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n\n  if (!symbolType || symbolType === 'none') {\n    return;\n  }\n\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [symbolSize, symbolSize];\n  }\n\n  var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSize[0] / 2, -symbolSize[1] / 2, symbolSize[0], symbolSize[1], color);\n  symbolPath.name = name;\n  return symbolPath;\n}\n\nfunction createLine(points) {\n  var line = new LinePath({\n    name: 'line'\n  });\n  setLinePoints(line.shape, points);\n  return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n  var p1 = points[0];\n  var p2 = points[1];\n  var cp1 = points[2];\n  targetShape.x1 = p1[0];\n  targetShape.y1 = p1[1];\n  targetShape.x2 = p2[0];\n  targetShape.y2 = p2[1];\n  targetShape.percent = 1;\n\n  if (cp1) {\n    targetShape.cpx1 = cp1[0];\n    targetShape.cpy1 = cp1[1];\n  } else {\n    targetShape.cpx1 = NaN;\n    targetShape.cpy1 = NaN;\n  }\n}\n\nfunction updateSymbolAndLabelBeforeLineUpdate() {\n  var lineGroup = this;\n  var symbolFrom = lineGroup.childOfName('fromSymbol');\n  var symbolTo = lineGroup.childOfName('toSymbol');\n  var label = lineGroup.childOfName('label'); // Quick reject\n\n  if (!symbolFrom && !symbolTo && label.ignore) {\n    return;\n  }\n\n  var invScale = 1;\n  var parentNode = this.parent;\n\n  while (parentNode) {\n    if (parentNode.scale) {\n      invScale /= parentNode.scale[0];\n    }\n\n    parentNode = parentNode.parent;\n  }\n\n  var line = lineGroup.childOfName('line'); // If line not changed\n  // FIXME Parent scale changed\n\n  if (!this.__dirty && !line.__dirty) {\n    return;\n  }\n\n  var percent = line.shape.percent;\n  var fromPos = line.pointAt(0);\n  var toPos = line.pointAt(percent);\n  var d = vector.sub([], toPos, fromPos);\n  vector.normalize(d, d);\n\n  if (symbolFrom) {\n    symbolFrom.attr('position', fromPos);\n    var tangent = line.tangentAt(0);\n    symbolFrom.attr('rotation', Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n    symbolFrom.attr('scale', [invScale * percent, invScale * percent]);\n  }\n\n  if (symbolTo) {\n    symbolTo.attr('position', toPos);\n    var tangent = line.tangentAt(1);\n    symbolTo.attr('rotation', -Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n    symbolTo.attr('scale', [invScale * percent, invScale * percent]);\n  }\n\n  if (!label.ignore) {\n    label.attr('position', toPos);\n    var textPosition;\n    var textAlign;\n    var textVerticalAlign;\n    var distance = 5 * invScale; // End\n\n    if (label.__position === 'end') {\n      textPosition = [d[0] * distance + toPos[0], d[1] * distance + toPos[1]];\n      textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n      textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n    } // Middle\n    else if (label.__position === 'middle') {\n        var halfPercent = percent / 2;\n        var tangent = line.tangentAt(halfPercent);\n        var n = [tangent[1], -tangent[0]];\n        var cp = line.pointAt(halfPercent);\n\n        if (n[1] > 0) {\n          n[0] = -n[0];\n          n[1] = -n[1];\n        }\n\n        textPosition = [cp[0] + n[0] * distance, cp[1] + n[1] * distance];\n        textAlign = 'center';\n        textVerticalAlign = 'bottom';\n        var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n        if (toPos[0] < fromPos[0]) {\n          rotation = Math.PI + rotation;\n        }\n\n        label.attr('rotation', rotation);\n      } // Start\n      else {\n          textPosition = [-d[0] * distance + fromPos[0], -d[1] * distance + fromPos[1]];\n          textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n        }\n\n    label.attr({\n      style: {\n        // Use the user specified text align and baseline first\n        textVerticalAlign: label.__verticalAlign || textVerticalAlign,\n        textAlign: label.__textAlign || textAlign\n      },\n      position: textPosition,\n      scale: [invScale, invScale]\n    });\n  }\n}\n/**\n * @constructor\n * @extends {module:zrender/graphic/Group}\n * @alias {module:echarts/chart/helper/Line}\n */\n\n\nfunction Line(lineData, idx, seriesScope) {\n  graphic.Group.call(this);\n\n  this._createLine(lineData, idx, seriesScope);\n}\n\nvar lineProto = Line.prototype; // Update symbol position and rotation\n\nlineProto.beforeUpdate = updateSymbolAndLabelBeforeLineUpdate;\n\nlineProto._createLine = function (lineData, idx, seriesScope) {\n  var seriesModel = lineData.hostModel;\n  var linePoints = lineData.getItemLayout(idx);\n  var line = createLine(linePoints);\n  line.shape.percent = 0;\n  graphic.initProps(line, {\n    shape: {\n      percent: 1\n    }\n  }, seriesModel, idx);\n  this.add(line);\n  var label = new graphic.Text({\n    name: 'label'\n  });\n  this.add(label);\n  zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n    var symbol = createSymbol(symbolCategory, lineData, idx); // symbols must added after line to make sure\n    // it will be updated after line#update.\n    // Or symbol position and rotation update in line#beforeUpdate will be one frame slow\n\n    this.add(symbol);\n    this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n  }, this);\n\n  this._updateCommonStl(lineData, idx, seriesScope);\n};\n\nlineProto.updateData = function (lineData, idx, seriesScope) {\n  var seriesModel = lineData.hostModel;\n  var line = this.childOfName('line');\n  var linePoints = lineData.getItemLayout(idx);\n  var target = {\n    shape: {}\n  };\n  setLinePoints(target.shape, linePoints);\n  graphic.updateProps(line, target, seriesModel, idx);\n  zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n    var symbolType = lineData.getItemVisual(idx, symbolCategory);\n    var key = makeSymbolTypeKey(symbolCategory); // Symbol changed\n\n    if (this[key] !== symbolType) {\n      this.remove(this.childOfName(symbolCategory));\n      var symbol = createSymbol(symbolCategory, lineData, idx);\n      this.add(symbol);\n    }\n\n    this[key] = symbolType;\n  }, this);\n\n  this._updateCommonStl(lineData, idx, seriesScope);\n};\n\nlineProto._updateCommonStl = function (lineData, idx, seriesScope) {\n  var seriesModel = lineData.hostModel;\n  var line = this.childOfName('line');\n  var lineStyle = seriesScope && seriesScope.lineStyle;\n  var hoverLineStyle = seriesScope && seriesScope.hoverLineStyle;\n  var labelModel = seriesScope && seriesScope.labelModel;\n  var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel; // Optimization for large dataset\n\n  if (!seriesScope || lineData.hasItemOption) {\n    var itemModel = lineData.getItemModel(idx);\n    lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n    hoverLineStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle();\n    labelModel = itemModel.getModel('label');\n    hoverLabelModel = itemModel.getModel('emphasis.label');\n  }\n\n  var visualColor = lineData.getItemVisual(idx, 'color');\n  var visualOpacity = zrUtil.retrieve3(lineData.getItemVisual(idx, 'opacity'), lineStyle.opacity, 1);\n  line.useStyle(zrUtil.defaults({\n    strokeNoScale: true,\n    fill: 'none',\n    stroke: visualColor,\n    opacity: visualOpacity\n  }, lineStyle));\n  line.hoverStyle = hoverLineStyle; // Update symbol\n\n  zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n    var symbol = this.childOfName(symbolCategory);\n\n    if (symbol) {\n      symbol.setColor(visualColor);\n      symbol.setStyle({\n        opacity: visualOpacity\n      });\n    }\n  }, this);\n  var showLabel = labelModel.getShallow('show');\n  var hoverShowLabel = hoverLabelModel.getShallow('show');\n  var label = this.childOfName('label');\n  var defaultLabelColor;\n  var baseText; // FIXME: the logic below probably should be merged to `graphic.setLabelStyle`.\n\n  if (showLabel || hoverShowLabel) {\n    defaultLabelColor = visualColor || '#000';\n    baseText = seriesModel.getFormattedLabel(idx, 'normal', lineData.dataType);\n\n    if (baseText == null) {\n      var rawVal = seriesModel.getRawValue(idx);\n      baseText = rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal;\n    }\n  }\n\n  var normalText = showLabel ? baseText : null;\n  var emphasisText = hoverShowLabel ? zrUtil.retrieve2(seriesModel.getFormattedLabel(idx, 'emphasis', lineData.dataType), baseText) : null;\n  var labelStyle = label.style; // Always set `textStyle` even if `normalStyle.text` is null, because default\n  // values have to be set on `normalStyle`.\n\n  if (normalText != null || emphasisText != null) {\n    graphic.setTextStyle(label.style, labelModel, {\n      text: normalText\n    }, {\n      autoColor: defaultLabelColor\n    });\n    label.__textAlign = labelStyle.textAlign;\n    label.__verticalAlign = labelStyle.textVerticalAlign; // 'start', 'middle', 'end'\n\n    label.__position = labelModel.get('position') || 'middle';\n  }\n\n  if (emphasisText != null) {\n    // Only these properties supported in this emphasis style here.\n    label.hoverStyle = {\n      text: emphasisText,\n      textFill: hoverLabelModel.getTextColor(true),\n      // For merging hover style to normal style, do not use\n      // `hoverLabelModel.getFont()` here.\n      fontStyle: hoverLabelModel.getShallow('fontStyle'),\n      fontWeight: hoverLabelModel.getShallow('fontWeight'),\n      fontSize: hoverLabelModel.getShallow('fontSize'),\n      fontFamily: hoverLabelModel.getShallow('fontFamily')\n    };\n  } else {\n    label.hoverStyle = {\n      text: null\n    };\n  }\n\n  label.ignore = !showLabel && !hoverShowLabel;\n  graphic.setHoverStyle(this);\n};\n\nlineProto.highlight = function () {\n  this.trigger('emphasis');\n};\n\nlineProto.downplay = function () {\n  this.trigger('normal');\n};\n\nlineProto.updateLayout = function (lineData, idx) {\n  this.setLinePoints(lineData.getItemLayout(idx));\n};\n\nlineProto.setLinePoints = function (points) {\n  var linePath = this.childOfName('line');\n  setLinePoints(linePath.shape, points);\n  linePath.dirty();\n};\n\nzrUtil.inherits(Line, graphic.Group);\nvar _default = Line;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/Line.js\n// module id = AKeZ\n// module chunks = 0","var Pattern = function (image, repeat) {\n  // Should do nothing more in this constructor. Because gradient can be\n  // declard by `color: {image: ...}`, where this constructor will not be called.\n  this.image = image;\n  this.repeat = repeat; // Can be cloned\n\n  this.type = 'pattern';\n};\n\nPattern.prototype.getCanvasPattern = function (ctx) {\n  return ctx.createPattern(this.image, this.repeat || 'repeat');\n};\n\nvar _default = Pattern;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/Pattern.js\n// module id = Af6+\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nrequire(\"./pie/PieSeries\");\n\nrequire(\"./pie/PieView\");\n\nvar createDataSelectAction = require(\"../action/createDataSelectAction\");\n\nvar dataColor = require(\"../visual/dataColor\");\n\nvar pieLayout = require(\"./pie/pieLayout\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\ncreateDataSelectAction('pie', [{\n  type: 'pieToggleSelect',\n  event: 'pieselectchanged',\n  method: 'toggleSelected'\n}, {\n  type: 'pieSelect',\n  event: 'pieselected',\n  method: 'select'\n}, {\n  type: 'pieUnSelect',\n  event: 'pieunselected',\n  method: 'unSelect'\n}]);\necharts.registerVisual(dataColor('pie'));\necharts.registerLayout(zrUtil.curry(pieLayout, 'pie'));\necharts.registerProcessor(dataFilter('pie'));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/pie.js\n// module id = B6iy\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./legend/LegendModel\");\n\nrequire(\"./legend/legendAction\");\n\nrequire(\"./legend/LegendView\");\n\nvar legendFilter = require(\"./legend/legendFilter\");\n\nvar Component = require(\"../model/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Do not contain scrollable legend, for sake of file size.\n// Series Filter\necharts.registerProcessor(legendFilter);\nComponent.registerSubTypeDefaulter('legend', function () {\n  // Default 'plain' when no type specified.\n  return 'plain';\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legend.js\n// module id = B6j4\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./funnel/FunnelSeries\");\n\nrequire(\"./funnel/FunnelView\");\n\nvar dataColor = require(\"../visual/dataColor\");\n\nvar funnelLayout = require(\"./funnel/funnelLayout\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(dataColor('funnel'));\necharts.registerLayout(funnelLayout);\necharts.registerProcessor(dataFilter('funnel'));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/funnel.js\n// module id = B7oI\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/chart/helper/Line\n */\n\n/**\n * @constructor\n * @extends {module:zrender/graphic/Group}\n * @alias {module:echarts/chart/helper/Polyline}\n */\nfunction Polyline(lineData, idx, seriesScope) {\n  graphic.Group.call(this);\n\n  this._createPolyline(lineData, idx, seriesScope);\n}\n\nvar polylineProto = Polyline.prototype;\n\npolylineProto._createPolyline = function (lineData, idx, seriesScope) {\n  // var seriesModel = lineData.hostModel;\n  var points = lineData.getItemLayout(idx);\n  var line = new graphic.Polyline({\n    shape: {\n      points: points\n    }\n  });\n  this.add(line);\n\n  this._updateCommonStl(lineData, idx, seriesScope);\n};\n\npolylineProto.updateData = function (lineData, idx, seriesScope) {\n  var seriesModel = lineData.hostModel;\n  var line = this.childAt(0);\n  var target = {\n    shape: {\n      points: lineData.getItemLayout(idx)\n    }\n  };\n  graphic.updateProps(line, target, seriesModel, idx);\n\n  this._updateCommonStl(lineData, idx, seriesScope);\n};\n\npolylineProto._updateCommonStl = function (lineData, idx, seriesScope) {\n  var line = this.childAt(0);\n  var itemModel = lineData.getItemModel(idx);\n  var visualColor = lineData.getItemVisual(idx, 'color');\n  var lineStyle = seriesScope && seriesScope.lineStyle;\n  var hoverLineStyle = seriesScope && seriesScope.hoverLineStyle;\n\n  if (!seriesScope || lineData.hasItemOption) {\n    lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n    hoverLineStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle();\n  }\n\n  line.useStyle(zrUtil.defaults({\n    strokeNoScale: true,\n    fill: 'none',\n    stroke: visualColor\n  }, lineStyle));\n  line.hoverStyle = hoverLineStyle;\n  graphic.setHoverStyle(this);\n};\n\npolylineProto.updateLayout = function (lineData, idx) {\n  var polyline = this.childAt(0);\n  polyline.setShape('points', lineData.getItemLayout(idx));\n};\n\nzrUtil.inherits(Polyline, graphic.Group);\nvar _default = Polyline;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/Polyline.js\n// module id = BAmx\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar LineGroup = require(\"./Line\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/chart/helper/LineDraw\n */\n// import IncrementalDisplayable from 'zrender/src/graphic/IncrementalDisplayable';\n\n/**\n * @alias module:echarts/component/marker/LineDraw\n * @constructor\n */\nfunction LineDraw(ctor) {\n  this._ctor = ctor || LineGroup;\n  this.group = new graphic.Group();\n}\n\nvar lineDrawProto = LineDraw.prototype;\n\nlineDrawProto.isPersistent = function () {\n  return true;\n};\n/**\n * @param {module:echarts/data/List} lineData\n */\n\n\nlineDrawProto.updateData = function (lineData) {\n  var lineDraw = this;\n  var group = lineDraw.group;\n  var oldLineData = lineDraw._lineData;\n  lineDraw._lineData = lineData; // There is no oldLineData only when first rendering or switching from\n  // stream mode to normal mode, where previous elements should be removed.\n\n  if (!oldLineData) {\n    group.removeAll();\n  }\n\n  var seriesScope = makeSeriesScope(lineData);\n  lineData.diff(oldLineData).add(function (idx) {\n    doAdd(lineDraw, lineData, idx, seriesScope);\n  }).update(function (newIdx, oldIdx) {\n    doUpdate(lineDraw, oldLineData, lineData, oldIdx, newIdx, seriesScope);\n  }).remove(function (idx) {\n    group.remove(oldLineData.getItemGraphicEl(idx));\n  }).execute();\n};\n\nfunction doAdd(lineDraw, lineData, idx, seriesScope) {\n  var itemLayout = lineData.getItemLayout(idx);\n\n  if (!lineNeedsDraw(itemLayout)) {\n    return;\n  }\n\n  var el = new lineDraw._ctor(lineData, idx, seriesScope);\n  lineData.setItemGraphicEl(idx, el);\n  lineDraw.group.add(el);\n}\n\nfunction doUpdate(lineDraw, oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n  var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n  if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n    lineDraw.group.remove(itemEl);\n    return;\n  }\n\n  if (!itemEl) {\n    itemEl = new lineDraw._ctor(newLineData, newIdx, seriesScope);\n  } else {\n    itemEl.updateData(newLineData, newIdx, seriesScope);\n  }\n\n  newLineData.setItemGraphicEl(newIdx, itemEl);\n  lineDraw.group.add(itemEl);\n}\n\nlineDrawProto.updateLayout = function () {\n  var lineData = this._lineData; // Do not support update layout in incremental mode.\n\n  if (!lineData) {\n    return;\n  }\n\n  lineData.eachItemGraphicEl(function (el, idx) {\n    el.updateLayout(lineData, idx);\n  }, this);\n};\n\nlineDrawProto.incrementalPrepareUpdate = function (lineData) {\n  this._seriesScope = makeSeriesScope(lineData);\n  this._lineData = null;\n  this.group.removeAll();\n};\n\nlineDrawProto.incrementalUpdate = function (taskParams, lineData) {\n  function updateIncrementalAndHover(el) {\n    if (!el.isGroup) {\n      el.incremental = el.useHoverLayer = true;\n    }\n  }\n\n  for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n    var itemLayout = lineData.getItemLayout(idx);\n\n    if (lineNeedsDraw(itemLayout)) {\n      var el = new this._ctor(lineData, idx, this._seriesScope);\n      el.traverse(updateIncrementalAndHover);\n      this.group.add(el);\n      lineData.setItemGraphicEl(idx, el);\n    }\n  }\n};\n\nfunction makeSeriesScope(lineData) {\n  var hostModel = lineData.hostModel;\n  return {\n    lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n    hoverLineStyle: hostModel.getModel('emphasis.lineStyle').getLineStyle(),\n    labelModel: hostModel.getModel('label'),\n    hoverLabelModel: hostModel.getModel('emphasis.label')\n  };\n}\n\nlineDrawProto.remove = function () {\n  this._clearIncremental();\n\n  this._incremental = null;\n  this.group.removeAll();\n};\n\nlineDrawProto._clearIncremental = function () {\n  var incremental = this._incremental;\n\n  if (incremental) {\n    incremental.clearDisplaybles();\n  }\n};\n\nfunction isPointNaN(pt) {\n  return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n  return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nvar _default = LineDraw;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/LineDraw.js\n// module id = BDGf\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar _whiskerBoxCommon = require(\"../helper/whiskerBoxCommon\");\n\nvar seriesModelMixin = _whiskerBoxCommon.seriesModelMixin;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar CandlestickSeries = SeriesModel.extend({\n  type: 'series.candlestick',\n  dependencies: ['xAxis', 'yAxis', 'grid'],\n\n  /**\n   * @readOnly\n   */\n  defaultValueDimensions: [{\n    name: 'open',\n    defaultTooltip: true\n  }, {\n    name: 'close',\n    defaultTooltip: true\n  }, {\n    name: 'lowest',\n    defaultTooltip: true\n  }, {\n    name: 'highest',\n    defaultTooltip: true\n  }],\n\n  /**\n   * @type {Array.<string>}\n   * @readOnly\n   */\n  dimensions: null,\n\n  /**\n   * @override\n   */\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    hoverAnimation: true,\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    layout: null,\n    // 'horizontal' or 'vertical'\n    itemStyle: {\n      color: '#c23531',\n      // 闃崇嚎 positive\n      color0: '#314656',\n      // 闃寸嚎 negative     '#c23531', '#314656'\n      borderWidth: 1,\n      // FIXME\n      // ec2涓娇鐢ㄧ殑鏄痩ineStyle.color 鍜� lineStyle.color0\n      borderColor: '#c23531',\n      borderColor0: '#314656'\n    },\n    emphasis: {\n      itemStyle: {\n        borderWidth: 2\n      }\n    },\n    barMaxWidth: null,\n    barMinWidth: null,\n    barWidth: null,\n    large: true,\n    largeThreshold: 600,\n    progressive: 5e3,\n    progressiveThreshold: 1e4,\n    progressiveChunkMode: 'mod',\n    animationUpdate: false,\n    animationEasing: 'linear',\n    animationDuration: 300\n  },\n\n  /**\n   * Get dimension for shadow in dataZoom\n   * @return {string} dimension name\n   */\n  getShadowDim: function () {\n    return 'open';\n  },\n  brushSelector: function (dataIndex, data, selectors) {\n    var itemLayout = data.getItemLayout(dataIndex);\n    return itemLayout && selectors.rect(itemLayout.brushRect);\n  }\n});\nzrUtil.mixin(CandlestickSeries, seriesModelMixin, true);\nvar _default = CandlestickSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/CandlestickSeries.js\n// module id = BLUl\n// module chunks = 0","var SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.__base_bar__',\n  getInitialData: function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  },\n  getMarkerPosition: function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      // PENDING if clamp ?\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  },\n  defaultOption: {\n    zlevel: 0,\n    // 涓�绾у眰鍙燶n    z: 2,\n    // 浜岀骇灞傚彔\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    // stack: null\n    // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // 鏈�灏忛珮搴︽敼涓�0\n    barMinHeight: 0,\n    // 鏈�灏忚搴︿负0锛屼粎瀵规瀬鍧愭爣绯讳笅鐨勬煴鐘跺浘鏈夋晥\n    barMinAngle: 0,\n    // cursor: null,\n    large: false,\n    largeThreshold: 400,\n    progressive: 5e3,\n    progressiveChunkMode: 'mod',\n    // barMaxWidth: null,\n    // 榛樿鑷�傚簲\n    // barWidth: null,\n    // 鏌遍棿璺濈锛岄粯璁や负鏌卞舰瀹藉害鐨�30%锛屽彲璁惧浐瀹氬�糪n    // barGap: '30%',\n    // 绫荤洰闂存煴褰㈣窛绂伙紝榛樿涓虹被鐩棿璺濈殑20%锛屽彲璁惧浐瀹氬�糪n    // barCategoryGap: '20%',\n    // label: {\n    //      show: false\n    // },\n    itemStyle: {},\n    emphasis: {}\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/BaseBarSeries.js\n// module id = BMQd\n// module chunks = 0","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_fails.js\n// module id = BRDz\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @event legendScroll\n * @type {Object}\n * @property {string} type 'legendScroll'\n * @property {string} scrollDataIndex\n */\necharts.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n  var scrollDataIndex = payload.scrollDataIndex;\n  scrollDataIndex != null && ecModel.eachComponent({\n    mainType: 'legend',\n    subType: 'scroll',\n    query: payload\n  }, function (legendModel) {\n    legendModel.setScrollDataIndex(scrollDataIndex);\n  });\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legend/scrollableLegendAction.js\n// module id = BSR4\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar layout = require(\"../../util/layout\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// (24*60*60*1000)\nvar PROXIMATE_ONE_DAY = 86400000;\n/**\n * Calendar\n *\n * @constructor\n *\n * @param {Object} calendarModel calendarModel\n * @param {Object} ecModel       ecModel\n * @param {Object} api           api\n */\n\nfunction Calendar(calendarModel, ecModel, api) {\n  this._model = calendarModel;\n}\n\nCalendar.prototype = {\n  constructor: Calendar,\n  type: 'calendar',\n  dimensions: ['time', 'value'],\n  // Required in createListFromData\n  getDimensionsInfo: function () {\n    return [{\n      name: 'time',\n      type: 'time'\n    }, 'value'];\n  },\n  getRangeInfo: function () {\n    return this._rangeInfo;\n  },\n  getModel: function () {\n    return this._model;\n  },\n  getRect: function () {\n    return this._rect;\n  },\n  getCellWidth: function () {\n    return this._sw;\n  },\n  getCellHeight: function () {\n    return this._sh;\n  },\n  getOrient: function () {\n    return this._orient;\n  },\n\n  /**\n   * getFirstDayOfWeek\n   *\n   * @example\n   *     0 : start at Sunday\n   *     1 : start at Monday\n   *\n   * @return {number}\n   */\n  getFirstDayOfWeek: function () {\n    return this._firstDayOfWeek;\n  },\n\n  /**\n   * get date info\n   *\n   * @param  {string|number} date date\n   * @return {Object}\n   * {\n   *      y: string, local full year, eg., '1940',\n   *      m: string, local month, from '01' ot '12',\n   *      d: string, local date, from '01' to '31' (if exists),\n   *      day: It is not date.getDay(). It is the location of the cell in a week, from 0 to 6,\n   *      time: timestamp,\n   *      formatedDate: string, yyyy-MM-dd,\n   *      date: original date object.\n   * }\n   */\n  getDateInfo: function (date) {\n    date = numberUtil.parseDate(date);\n    var y = date.getFullYear();\n    var m = date.getMonth() + 1;\n    m = m < 10 ? '0' + m : m;\n    var d = date.getDate();\n    d = d < 10 ? '0' + d : d;\n    var day = date.getDay();\n    day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n    return {\n      y: y,\n      m: m,\n      d: d,\n      day: day,\n      time: date.getTime(),\n      formatedDate: y + '-' + m + '-' + d,\n      date: date\n    };\n  },\n  getNextNDay: function (date, n) {\n    n = n || 0;\n\n    if (n === 0) {\n      return this.getDateInfo(date);\n    }\n\n    date = new Date(this.getDateInfo(date).time);\n    date.setDate(date.getDate() + n);\n    return this.getDateInfo(date);\n  },\n  update: function (ecModel, api) {\n    this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n    this._orient = this._model.get('orient');\n    this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n    this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n    var weeks = this._rangeInfo.weeks || 1;\n    var whNames = ['width', 'height'];\n\n    var cellSize = this._model.get('cellSize').slice();\n\n    var layoutParams = this._model.getBoxLayoutParams();\n\n    var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n    zrUtil.each([0, 1], function (idx) {\n      if (cellSizeSpecified(cellSize, idx)) {\n        layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n      }\n    });\n    var whGlobal = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n    zrUtil.each([0, 1], function (idx) {\n      if (!cellSizeSpecified(cellSize, idx)) {\n        cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n      }\n    });\n\n    function cellSizeSpecified(cellSize, idx) {\n      return cellSize[idx] != null && cellSize[idx] !== 'auto';\n    }\n\n    this._sw = cellSize[0];\n    this._sh = cellSize[1];\n  },\n\n  /**\n   * Convert a time data(time, value) item to (x, y) point.\n   *\n   * @override\n   * @param  {Array|number} data data\n   * @param  {boolean} [clamp=true] out of range\n   * @return {Array} point\n   */\n  dataToPoint: function (data, clamp) {\n    zrUtil.isArray(data) && (data = data[0]);\n    clamp == null && (clamp = true);\n    var dayInfo = this.getDateInfo(data);\n    var range = this._rangeInfo;\n    var date = dayInfo.formatedDate; // if not in range return [NaN, NaN]\n\n    if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n      return [NaN, NaN];\n    }\n\n    var week = dayInfo.day;\n\n    var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n    if (this._orient === 'vertical') {\n      return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n    }\n\n    return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n  },\n\n  /**\n   * Convert a (x, y) point to time data\n   *\n   * @override\n   * @param  {string} point point\n   * @return {string}       data\n   */\n  pointToData: function (point) {\n    var date = this.pointToDate(point);\n    return date && date.time;\n  },\n\n  /**\n   * Convert a time date item to (x, y) four point.\n   *\n   * @param  {Array} data  date[0] is date\n   * @param  {boolean} [clamp=true]  out of range\n   * @return {Object}       point\n   */\n  dataToRect: function (data, clamp) {\n    var point = this.dataToPoint(data, clamp);\n    return {\n      contentShape: {\n        x: point[0] - (this._sw - this._lineWidth) / 2,\n        y: point[1] - (this._sh - this._lineWidth) / 2,\n        width: this._sw - this._lineWidth,\n        height: this._sh - this._lineWidth\n      },\n      center: point,\n      tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n      tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n      br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n      bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n    };\n  },\n\n  /**\n   * Convert a (x, y) point to time date\n   *\n   * @param  {Array} point point\n   * @return {Object}       date\n   */\n  pointToDate: function (point) {\n    var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n    var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n    var range = this._rangeInfo.range;\n\n    if (this._orient === 'vertical') {\n      return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n    }\n\n    return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n  },\n\n  /**\n   * @inheritDoc\n   */\n  convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n  /**\n   * @inheritDoc\n   */\n  convertFromPixel: zrUtil.curry(doConvert, 'pointToData'),\n\n  /**\n   * initRange\n   *\n   * @private\n   * @return {Array} [start, end]\n   */\n  _initRangeOption: function () {\n    var range = this._model.get('range');\n\n    var rg = range;\n\n    if (zrUtil.isArray(rg) && rg.length === 1) {\n      rg = rg[0];\n    }\n\n    if (/^\\d{4}$/.test(rg)) {\n      range = [rg + '-01-01', rg + '-12-31'];\n    }\n\n    if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rg)) {\n      var start = this.getDateInfo(rg);\n      var firstDay = start.date;\n      firstDay.setMonth(firstDay.getMonth() + 1);\n      var end = this.getNextNDay(firstDay, -1);\n      range = [start.formatedDate, end.formatedDate];\n    }\n\n    if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rg)) {\n      range = [rg, rg];\n    }\n\n    var tmp = this._getRangeInfo(range);\n\n    if (tmp.start.time > tmp.end.time) {\n      range.reverse();\n    }\n\n    return range;\n  },\n\n  /**\n   * range info\n   *\n   * @private\n   * @param  {Array} range range ['2017-01-01', '2017-07-08']\n   *  If range[0] > range[1], they will not be reversed.\n   * @return {Object}       obj\n   */\n  _getRangeInfo: function (range) {\n    range = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n    var reversed;\n\n    if (range[0].time > range[1].time) {\n      reversed = true;\n      range.reverse();\n    }\n\n    var allDay = Math.floor(range[1].time / PROXIMATE_ONE_DAY) - Math.floor(range[0].time / PROXIMATE_ONE_DAY) + 1; // Consider case:\n    // Firstly set system timezone as \"Time Zone: America/Toronto\",\n    // ```\n    // var first = new Date(1478412000000 - 3600 * 1000 * 2.5);\n    // var second = new Date(1478412000000);\n    // var allDays = Math.floor(second / ONE_DAY) - Math.floor(first / ONE_DAY) + 1;\n    // ```\n    // will get wrong result because of DST. So we should fix it.\n\n    var date = new Date(range[0].time);\n    var startDateNum = date.getDate();\n    var endDateNum = range[1].date.getDate();\n    date.setDate(startDateNum + allDay - 1); // The bias can not over a month, so just compare date.\n\n    if (date.getDate() !== endDateNum) {\n      var sign = date.getTime() - range[1].time > 0 ? 1 : -1;\n\n      while (date.getDate() !== endDateNum && (date.getTime() - range[1].time) * sign > 0) {\n        allDay -= sign;\n        date.setDate(startDateNum + allDay - 1);\n      }\n    }\n\n    var weeks = Math.floor((allDay + range[0].day + 6) / 7);\n    var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n    reversed && range.reverse();\n    return {\n      range: [range[0].formatedDate, range[1].formatedDate],\n      start: range[0],\n      end: range[1],\n      allDay: allDay,\n      weeks: weeks,\n      // From 0.\n      nthWeek: nthWeek,\n      fweek: range[0].day,\n      lweek: range[1].day\n    };\n  },\n\n  /**\n   * get date by nthWeeks and week day in range\n   *\n   * @private\n   * @param  {number} nthWeek the week\n   * @param  {number} day   the week day\n   * @param  {Array} range [d1, d2]\n   * @return {Object}\n   */\n  _getDateByWeeksAndDay: function (nthWeek, day, range) {\n    var rangeInfo = this._getRangeInfo(range);\n\n    if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n      return false;\n    }\n\n    var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n    var date = new Date(rangeInfo.start.time);\n    date.setDate(rangeInfo.start.d + nthDay);\n    return this.getDateInfo(date);\n  }\n};\nCalendar.dimensions = Calendar.prototype.dimensions;\nCalendar.getDimensionsInfo = Calendar.prototype.getDimensionsInfo;\n\nCalendar.create = function (ecModel, api) {\n  var calendarList = [];\n  ecModel.eachComponent('calendar', function (calendarModel) {\n    var calendar = new Calendar(calendarModel, ecModel, api);\n    calendarList.push(calendar);\n    calendarModel.coordinateSystem = calendar;\n  });\n  ecModel.eachSeries(function (calendarSeries) {\n    if (calendarSeries.get('coordinateSystem') === 'calendar') {\n      // Inject coordinate system\n      calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n    }\n  });\n  return calendarList;\n};\n\nfunction doConvert(methodName, ecModel, finder, value) {\n  var calendarModel = finder.calendarModel;\n  var seriesModel = finder.seriesModel;\n  var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n  return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nCoordinateSystem.register('calendar', Calendar);\nvar _default = Calendar;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/calendar/Calendar.js\n// module id = BUW8\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./scatter/ScatterSeries\");\n\nrequire(\"./scatter/ScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\nrequire(\"../component/gridSimple\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// import * as zrUtil from 'zrender/src/core/util';\n// In case developer forget to include grid component\necharts.registerVisual(visualSymbol('scatter', 'circle'));\necharts.registerLayout(layoutPoints('scatter')); // echarts.registerProcessor(function (ecModel, api) {\n//     ecModel.eachSeriesByType('scatter', function (seriesModel) {\n//         var data = seriesModel.getData();\n//         var coordSys = seriesModel.coordinateSystem;\n//         if (coordSys.type !== 'geo') {\n//             return;\n//         }\n//         var startPt = coordSys.pointToData([0, 0]);\n//         var endPt = coordSys.pointToData([api.getWidth(), api.getHeight()]);\n//         var dims = zrUtil.map(coordSys.dimensions, function (dim) {\n//             return data.mapDimension(dim);\n//         });\n//         var range = {};\n//         range[dims[0]] = [Math.min(startPt[0], endPt[0]), Math.max(startPt[0], endPt[0])];\n//         range[dims[1]] = [Math.min(startPt[1], endPt[1]), Math.max(startPt[1], endPt[1])];\n//         data.selectRange(range);\n//     });\n// });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/scatter.js\n// module id = BWe9\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./sankey/SankeySeries\");\n\nrequire(\"./sankey/SankeyView\");\n\nrequire(\"./sankey/sankeyAction\");\n\nvar sankeyLayout = require(\"./sankey/sankeyLayout\");\n\nvar sankeyVisual = require(\"./sankey/sankeyVisual\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(sankeyLayout);\necharts.registerVisual(sankeyVisual);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey.js\n// module id = Bcbt\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar _clazz = require(\"./clazz\");\n\nvar parseClassType = _clazz.parseClassType;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar base = 0;\n/**\n * @public\n * @param {string} type\n * @return {string}\n */\n\nfunction getUID(type) {\n  // Considering the case of crossing js context,\n  // use Math.random to make id as unique as possible.\n  return [type || '', base++, Math.random().toFixed(5)].join('_');\n}\n/**\n * @inner\n */\n\n\nfunction enableSubTypeDefaulter(entity) {\n  var subTypeDefaulters = {};\n\n  entity.registerSubTypeDefaulter = function (componentType, defaulter) {\n    componentType = parseClassType(componentType);\n    subTypeDefaulters[componentType.main] = defaulter;\n  };\n\n  entity.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (entity.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n\n  return entity;\n}\n/**\n * Topological travel on Activity Network (Activity On Vertices).\n * Dependencies is defined in Model.prototype.dependencies, like ['xAxis', 'yAxis'].\n *\n * If 'xAxis' or 'yAxis' is absent in componentTypeList, just ignore it in topology.\n *\n * If there is circle dependencey, Error will be thrown.\n *\n */\n\n\nfunction enableTopologicalTravel(entity, dependencyGetter) {\n  /**\n   * @public\n   * @param {Array.<string>} targetNameList Target Component type list.\n   *                                           Can be ['aa', 'bb', 'aa.xx']\n   * @param {Array.<string>} fullNameList By which we can build dependency graph.\n   * @param {Function} callback Params: componentType, dependencies.\n   * @param {Object} context Scope of callback.\n   */\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var stack = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (stack.length) {\n      var currComponentType = stack.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      throw new Error('Circle dependency may exists');\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        stack.push(succComponentType);\n      }\n    } // Consider this case: legend depends on series, and we call\n    // chart.setOption({series: [...]}), where only series is in option.\n    // If we do not have 'removeEdgeAndAdd', legendModel.mergeOption will\n    // not be called, but only sereis.mergeOption is called. Thus legend\n    // have no chance to update its local record about series (like which\n    // name of series is available in legend).\n\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n  /**\n   * DepndencyGraph: {Object}\n   * key: conponentType,\n   * value: {\n   *     successor: [conponentTypes...],\n   *     originalDeps: [conponentTypes...],\n   *     entryCount: {number}\n   * }\n   */\n\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\n\nexports.getUID = getUID;\nexports.enableSubTypeDefaulter = enableSubTypeDefaulter;\nexports.enableTopologicalTravel = enableTopologicalTravel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/component.js\n// module id = Bd51\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual encoding for themeRiver view\n * @author  Deqing Li(annong035@gmail.com)\n */\nfunction _default(ecModel) {\n  ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n    var data = seriesModel.getData();\n    var rawData = seriesModel.getRawData();\n    var colorList = seriesModel.get('color');\n    var idxMap = createHashMap();\n    data.each(function (idx) {\n      idxMap.set(data.getRawIndex(idx), idx);\n    });\n    rawData.each(function (rawIndex) {\n      var name = rawData.getName(rawIndex);\n      var color = colorList[(seriesModel.nameMap.get(name) - 1) % colorList.length];\n      rawData.setItemVisual(rawIndex, 'color', color);\n      var idx = idxMap.get(rawIndex);\n\n      if (idx != null) {\n        data.setItemVisual(idx, 'color', color);\n      }\n    });\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver/themeRiverVisual.js\n// module id = BiZM\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_dom-create.js\n// module id = BplH\n// module chunks = 0","var _helper = require(\"./helper\");\n\nvar prepareDataCoordInfo = _helper.prepareDataCoordInfo;\nvar getStackedOnPoint = _helper.getStackedOnPoint;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// var arrayDiff = require('zrender/src/core/arrayDiff');\n// 'zrender/src/core/arrayDiff' has been used before, but it did\n// not do well in performance when roam with fixed dataZoom window.\n// function convertToIntId(newIdList, oldIdList) {\n//     // Generate int id instead of string id.\n//     // Compare string maybe slow in score function of arrDiff\n//     // Assume id in idList are all unique\n//     var idIndicesMap = {};\n//     var idx = 0;\n//     for (var i = 0; i < newIdList.length; i++) {\n//         idIndicesMap[newIdList[i]] = idx;\n//         newIdList[i] = idx++;\n//     }\n//     for (var i = 0; i < oldIdList.length; i++) {\n//         var oldId = oldIdList[i];\n//         // Same with newIdList\n//         if (idIndicesMap[oldId]) {\n//             oldIdList[i] = idIndicesMap[oldId];\n//         }\n//         else {\n//             oldIdList[i] = idx++;\n//         }\n//     }\n// }\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nfunction _default(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData); // var newIdList = newData.mapArray(newData.getId);\n  // var oldIdList = oldData.mapArray(oldData.getId);\n  // convertToIntId(newIdList, oldIdList);\n  // // FIXME One data ?\n  // diff = arrayDiff(oldIdList, newIdList);\n\n  var currPoints = [];\n  var nextPoints = []; // Points for stacking base line\n\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true; // FIXME, animation is not so perfect when dataZoom window moves fast\n    // Which is in case remvoing or add more than one data in the tail or head\n\n    switch (diffItem.cmd) {\n      case '=':\n        var currentPt = oldData.getItemLayout(diffItem.idx);\n        var nextPt = newData.getItemLayout(diffItem.idx1); // If previous data is NaN, use next point directly\n\n        if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\n          currentPt = nextPt.slice();\n        }\n\n        currPoints.push(currentPt);\n        nextPoints.push(nextPt);\n        currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\n        nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var idx = diffItem.idx;\n        currPoints.push(oldCoordSys.dataToPoint([newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idx), newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idx)]));\n        nextPoints.push(newData.getItemLayout(idx).slice());\n        currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idx));\n        nextStackedPoints.push(newStackedOnPoints[idx]);\n        rawIndices.push(newData.getRawIndex(idx));\n        break;\n\n      case '-':\n        var idx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(idx); // Data is replaced. In the case of dynamic data queue\n        // FIXME FIXME FIXME\n\n        if (rawIndex !== idx) {\n          currPoints.push(oldData.getItemLayout(idx));\n          nextPoints.push(newCoordSys.dataToPoint([oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idx), oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idx)]));\n          currStackedPoints.push(oldStackedOnPoints[idx]);\n          nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idx));\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    } // Original indices\n\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  } // Diff result may be crossed if all items are changed\n  // Sort by data index\n\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var sortedCurrPoints = [];\n  var sortedNextPoints = [];\n  var sortedCurrStackedPoints = [];\n  var sortedNextStackedPoints = [];\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    sortedCurrPoints[i] = currPoints[idx];\n    sortedNextPoints[i] = nextPoints[idx];\n    sortedCurrStackedPoints[i] = currStackedPoints[idx];\n    sortedNextStackedPoints[i] = nextStackedPoints[idx];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/line/lineAnimationDiff.js\n// module id = BrYk\n// module chunks = 0","var vec2 = require(\"./vector\");\n\nvar curve = require(\"./curve\");\n\n/**\n * @author Yi Shen(https://github.com/pissang)\n */\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\n/**\n * 浠庨《鐐规暟缁勪腑璁$畻鍑烘渶灏忓寘鍥寸洅锛屽啓鍏min`鍜宍max`涓璡n * @module zrender/core/bbox\n * @param {Array<Object>} points 椤剁偣鏁扮粍\n * @param {number} min\n * @param {number} max\n */\n\nfunction fromPoints(points, min, max) {\n  if (points.length === 0) {\n    return;\n  }\n\n  var p = points[0];\n  var left = p[0];\n  var right = p[0];\n  var top = p[1];\n  var bottom = p[1];\n  var i;\n\n  for (i = 1; i < points.length; i++) {\n    p = points[i];\n    left = mathMin(left, p[0]);\n    right = mathMax(right, p[0]);\n    top = mathMin(top, p[1]);\n    bottom = mathMax(bottom, p[1]);\n  }\n\n  min[0] = left;\n  min[1] = top;\n  max[0] = right;\n  max[1] = bottom;\n}\n/**\n * @memberOf module:zrender/core/bbox\n * @param {number} x0\n * @param {number} y0\n * @param {number} x1\n * @param {number} y1\n * @param {Array.<number>} min\n * @param {Array.<number>} max\n */\n\n\nfunction fromLine(x0, y0, x1, y1, min, max) {\n  min[0] = mathMin(x0, x1);\n  min[1] = mathMin(y0, y1);\n  max[0] = mathMax(x0, x1);\n  max[1] = mathMax(y0, y1);\n}\n\nvar xDim = [];\nvar yDim = [];\n/**\n * 浠庝笁闃惰礉濉炲皵鏇茬嚎(p0, p1, p2, p3)涓绠楀嚭鏈�灏忓寘鍥寸洅锛屽啓鍏min`鍜宍max`涓璡n * @memberOf module:zrender/core/bbox\n * @param {number} x0\n * @param {number} y0\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @param {number} x3\n * @param {number} y3\n * @param {Array.<number>} min\n * @param {Array.<number>} max\n */\n\nfunction fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n  var cubicExtrema = curve.cubicExtrema;\n  var cubicAt = curve.cubicAt;\n  var i;\n  var n = cubicExtrema(x0, x1, x2, x3, xDim);\n  min[0] = Infinity;\n  min[1] = Infinity;\n  max[0] = -Infinity;\n  max[1] = -Infinity;\n\n  for (i = 0; i < n; i++) {\n    var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n    min[0] = mathMin(x, min[0]);\n    max[0] = mathMax(x, max[0]);\n  }\n\n  n = cubicExtrema(y0, y1, y2, y3, yDim);\n\n  for (i = 0; i < n; i++) {\n    var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n    min[1] = mathMin(y, min[1]);\n    max[1] = mathMax(y, max[1]);\n  }\n\n  min[0] = mathMin(x0, min[0]);\n  max[0] = mathMax(x0, max[0]);\n  min[0] = mathMin(x3, min[0]);\n  max[0] = mathMax(x3, max[0]);\n  min[1] = mathMin(y0, min[1]);\n  max[1] = mathMax(y0, max[1]);\n  min[1] = mathMin(y3, min[1]);\n  max[1] = mathMax(y3, max[1]);\n}\n/**\n * 浠庝簩闃惰礉濉炲皵鏇茬嚎(p0, p1, p2)涓绠楀嚭鏈�灏忓寘鍥寸洅锛屽啓鍏min`鍜宍max`涓璡n * @memberOf module:zrender/core/bbox\n * @param {number} x0\n * @param {number} y0\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @param {Array.<number>} min\n * @param {Array.<number>} max\n */\n\n\nfunction fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n  var quadraticExtremum = curve.quadraticExtremum;\n  var quadraticAt = curve.quadraticAt; // Find extremities, where derivative in x dim or y dim is zero\n\n  var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n  var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n  var x = quadraticAt(x0, x1, x2, tx);\n  var y = quadraticAt(y0, y1, y2, ty);\n  min[0] = mathMin(x0, x2, x);\n  min[1] = mathMin(y0, y2, y);\n  max[0] = mathMax(x0, x2, x);\n  max[1] = mathMax(y0, y2, y);\n}\n/**\n * 浠庡渾寮т腑璁$畻鍑烘渶灏忓寘鍥寸洅锛屽啓鍏min`鍜宍max`涓璡n * @method\n * @memberOf module:zrender/core/bbox\n * @param {number} x\n * @param {number} y\n * @param {number} rx\n * @param {number} ry\n * @param {number} startAngle\n * @param {number} endAngle\n * @param {number} anticlockwise\n * @param {Array.<number>} min\n * @param {Array.<number>} max\n */\n\n\nfunction fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n  var vec2Min = vec2.min;\n  var vec2Max = vec2.max;\n  var diff = Math.abs(startAngle - endAngle);\n\n  if (diff % PI2 < 1e-4 && diff > 1e-4) {\n    // Is a circle\n    min[0] = x - rx;\n    min[1] = y - ry;\n    max[0] = x + rx;\n    max[1] = y + ry;\n    return;\n  }\n\n  start[0] = mathCos(startAngle) * rx + x;\n  start[1] = mathSin(startAngle) * ry + y;\n  end[0] = mathCos(endAngle) * rx + x;\n  end[1] = mathSin(endAngle) * ry + y;\n  vec2Min(min, start, end);\n  vec2Max(max, start, end); // Thresh to [0, Math.PI * 2]\n\n  startAngle = startAngle % PI2;\n\n  if (startAngle < 0) {\n    startAngle = startAngle + PI2;\n  }\n\n  endAngle = endAngle % PI2;\n\n  if (endAngle < 0) {\n    endAngle = endAngle + PI2;\n  }\n\n  if (startAngle > endAngle && !anticlockwise) {\n    endAngle += PI2;\n  } else if (startAngle < endAngle && anticlockwise) {\n    startAngle += PI2;\n  }\n\n  if (anticlockwise) {\n    var tmp = endAngle;\n    endAngle = startAngle;\n    startAngle = tmp;\n  } // var number = 0;\n  // var step = (anticlockwise ? -Math.PI : Math.PI) / 2;\n\n\n  for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n    if (angle > startAngle) {\n      extremity[0] = mathCos(angle) * rx + x;\n      extremity[1] = mathSin(angle) * ry + y;\n      vec2Min(min, extremity, min);\n      vec2Max(max, extremity, max);\n    }\n  }\n}\n\nexports.fromPoints = fromPoints;\nexports.fromLine = fromLine;\nexports.fromCubic = fromCubic;\nexports.fromQuadratic = fromQuadratic;\nexports.fromArc = fromArc;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/bbox.js\n// module id = BwzW\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_global.js\n// module id = C02x\n// module chunks = 0","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.3@vue-loader/lib/component-normalizer.js\n// module id = C7Lr\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_to-length.js\n// module id = CFGK\n// module chunks = 0","var matrix = require(\"../core/matrix\");\n\nvar vector = require(\"../core/vector\");\n\n/**\n * 鎻愪緵鍙樻崲鎵╁睍\n * @module zrender/mixin/Transformable\n * @author pissang (https://www.github.com/pissang)\n */\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\n\nfunction isNotAroundZero(val) {\n  return val > EPSILON || val < -EPSILON;\n}\n/**\n * @alias module:zrender/mixin/Transformable\n * @constructor\n */\n\n\nvar Transformable = function (opts) {\n  opts = opts || {}; // If there are no given position, rotation, scale\n\n  if (!opts.position) {\n    /**\n     * 骞崇Щ\n     * @type {Array.<number>}\n     * @default [0, 0]\n     */\n    this.position = [0, 0];\n  }\n\n  if (opts.rotation == null) {\n    /**\n     * 鏃嬭浆\n     * @type {Array.<number>}\n     * @default 0\n     */\n    this.rotation = 0;\n  }\n\n  if (!opts.scale) {\n    /**\n     * 缂╂斁\n     * @type {Array.<number>}\n     * @default [1, 1]\n     */\n    this.scale = [1, 1];\n  }\n  /**\n   * 鏃嬭浆鍜岀缉鏀剧殑鍘熺偣\n   * @type {Array.<number>}\n   * @default null\n   */\n\n\n  this.origin = this.origin || null;\n};\n\nvar transformableProto = Transformable.prototype;\ntransformableProto.transform = null;\n/**\n * 鍒ゆ柇鏄惁闇�瑕佹湁鍧愭爣鍙樻崲\n * 濡傛灉鏈夊潗鏍囧彉鎹�, 鍒欎粠position, rotation, scale浠ュ強鐖惰妭鐐圭殑transform璁$畻鍑鸿嚜韬殑transform鐭╅樀\n */\n\ntransformableProto.needLocalTransform = function () {\n  return isNotAroundZero(this.rotation) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1);\n};\n\ntransformableProto.updateTransform = function () {\n  var parent = this.parent;\n  var parentHasTransform = parent && parent.transform;\n  var needLocalTransform = this.needLocalTransform();\n  var m = this.transform;\n\n  if (!(needLocalTransform || parentHasTransform)) {\n    m && mIdentity(m);\n    return;\n  }\n\n  m = m || matrix.create();\n\n  if (needLocalTransform) {\n    this.getLocalTransform(m);\n  } else {\n    mIdentity(m);\n  } // 搴旂敤鐖惰妭鐐瑰彉鎹n\n\n  if (parentHasTransform) {\n    if (needLocalTransform) {\n      matrix.mul(m, parent.transform, m);\n    } else {\n      matrix.copy(m, parent.transform);\n    }\n  } // 淇濆瓨杩欎釜鍙樻崲鐭╅樀\n\n\n  this.transform = m;\n  this.invTransform = this.invTransform || matrix.create();\n  matrix.invert(this.invTransform, m);\n};\n\ntransformableProto.getLocalTransform = function (m) {\n  return Transformable.getLocalTransform(this, m);\n};\n/**\n * 灏嗚嚜宸辩殑transform搴旂敤鍒癱ontext涓奬n * @param {CanvasRenderingContext2D} ctx\n */\n\n\ntransformableProto.setTransform = function (ctx) {\n  var m = this.transform;\n  var dpr = ctx.dpr || 1;\n\n  if (m) {\n    ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n  } else {\n    ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n  }\n};\n\ntransformableProto.restoreTransform = function (ctx) {\n  var dpr = ctx.dpr || 1;\n  ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n};\n\nvar tmpTransform = [];\n/**\n * 鍒嗚В`transform`鐭╅樀鍒癭position`, `rotation`, `scale`\n */\n\ntransformableProto.decomposeTransform = function () {\n  if (!this.transform) {\n    return;\n  }\n\n  var parent = this.parent;\n  var m = this.transform;\n\n  if (parent && parent.transform) {\n    // Get local transform and decompose them to position, scale, rotation\n    matrix.mul(tmpTransform, parent.invTransform, m);\n    m = tmpTransform;\n  }\n\n  var sx = m[0] * m[0] + m[1] * m[1];\n  var sy = m[2] * m[2] + m[3] * m[3];\n  var position = this.position;\n  var scale = this.scale;\n\n  if (isNotAroundZero(sx - 1)) {\n    sx = Math.sqrt(sx);\n  }\n\n  if (isNotAroundZero(sy - 1)) {\n    sy = Math.sqrt(sy);\n  }\n\n  if (m[0] < 0) {\n    sx = -sx;\n  }\n\n  if (m[3] < 0) {\n    sy = -sy;\n  }\n\n  position[0] = m[4];\n  position[1] = m[5];\n  scale[0] = sx;\n  scale[1] = sy;\n  this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n};\n/**\n * Get global scale\n * @return {Array.<number>}\n */\n\n\ntransformableProto.getGlobalScale = function () {\n  var m = this.transform;\n\n  if (!m) {\n    return [1, 1];\n  }\n\n  var sx = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n  var sy = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n\n  if (m[0] < 0) {\n    sx = -sx;\n  }\n\n  if (m[3] < 0) {\n    sy = -sy;\n  }\n\n  return [sx, sy];\n};\n/**\n * 鍙樻崲鍧愭爣浣嶇疆鍒� shape 鐨勫眬閮ㄥ潗鏍囩┖闂碶n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.<number>}\n */\n\n\ntransformableProto.transformCoordToLocal = function (x, y) {\n  var v2 = [x, y];\n  var invTransform = this.invTransform;\n\n  if (invTransform) {\n    vector.applyTransform(v2, v2, invTransform);\n  }\n\n  return v2;\n};\n/**\n * 鍙樻崲灞�閮ㄥ潗鏍囦綅缃埌鍏ㄥ眬鍧愭爣绌洪棿\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.<number>}\n */\n\n\ntransformableProto.transformCoordToGlobal = function (x, y) {\n  var v2 = [x, y];\n  var transform = this.transform;\n\n  if (transform) {\n    vector.applyTransform(v2, v2, transform);\n  }\n\n  return v2;\n};\n/**\n * @static\n * @param {Object} target\n * @param {Array.<number>} target.origin\n * @param {number} target.rotation\n * @param {Array.<number>} target.position\n * @param {Array.<number>} [m]\n */\n\n\nTransformable.getLocalTransform = function (target, m) {\n  m = m || [];\n  mIdentity(m);\n  var origin = target.origin;\n  var scale = target.scale || [1, 1];\n  var rotation = target.rotation || 0;\n  var position = target.position || [0, 0];\n\n  if (origin) {\n    // Translate to origin\n    m[4] -= origin[0];\n    m[5] -= origin[1];\n  }\n\n  matrix.scale(m, m, scale);\n\n  if (rotation) {\n    matrix.rotate(m, m, rotation);\n  }\n\n  if (origin) {\n    // Translate back from origin\n    m[4] += origin[0];\n    m[5] += origin[1];\n  }\n\n  m[4] += position[0];\n  m[5] += position[1];\n  return m;\n};\n\nvar _default = Transformable;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/mixin/Transformable.js\n// module id = CH74\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 207);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 14:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"throttle-debounce/debounce\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n\n/***/ 20:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vdom\");\n\n/***/ }),\n\n/***/ 207:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(208);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n\n/***/ 208:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(7);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _debounce = __webpack_require__(14);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _dom = __webpack_require__(2);\n\nvar _vdom = __webpack_require__(20);\n\nvar _util = __webpack_require__(3);\n\nvar _vue = __webpack_require__(4);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElTooltip',\n\n  mixins: [_vuePopper2.default],\n\n  props: {\n    openDelay: {\n      type: Number,\n      default: 0\n    },\n    disabled: Boolean,\n    manual: Boolean,\n    effect: {\n      type: String,\n      default: 'dark'\n    },\n    arrowOffset: {\n      type: Number,\n      default: 0\n    },\n    popperClass: String,\n    content: String,\n    visibleArrow: {\n      default: true\n    },\n    transition: {\n      type: String,\n      default: 'el-fade-in-linear'\n    },\n    popperOptions: {\n      default: function _default() {\n        return {\n          boundariesPadding: 10,\n          gpuAcceleration: false\n        };\n      }\n    },\n    enterable: {\n      type: Boolean,\n      default: true\n    },\n    hideAfter: {\n      type: Number,\n      default: 0\n    }\n  },\n\n  data: function data() {\n    return {\n      timeoutPending: null,\n      focusing: false\n    };\n  },\n\n  computed: {\n    tooltipId: function tooltipId() {\n      return 'el-tooltip-' + (0, _util.generateId)();\n    }\n  },\n  beforeCreate: function beforeCreate() {\n    var _this = this;\n\n    if (this.$isServer) return;\n\n    this.popperVM = new _vue2.default({\n      data: { node: '' },\n      render: function render(h) {\n        return this.node;\n      }\n    }).$mount();\n\n    this.debounceClose = (0, _debounce2.default)(200, function () {\n      return _this.handleClosePopper();\n    });\n  },\n  render: function render(h) {\n    var _this2 = this;\n\n    if (this.popperVM) {\n      this.popperVM.node = h(\n        'transition',\n        {\n          attrs: {\n            name: this.transition\n          },\n          on: {\n            'afterLeave': this.doDestroy\n          }\n        },\n        [h(\n          'div',\n          {\n            on: {\n              'mouseleave': function mouseleave() {\n                _this2.setExpectedState(false);_this2.debounceClose();\n              },\n              'mouseenter': function mouseenter() {\n                _this2.setExpectedState(true);\n              }\n            },\n\n            ref: 'popper',\n            attrs: { role: 'tooltip',\n              id: this.tooltipId,\n              'aria-hidden': this.disabled || !this.showPopper ? 'true' : 'false'\n            },\n            directives: [{\n              name: 'show',\n              value: !this.disabled && this.showPopper\n            }],\n\n            'class': ['el-tooltip__popper', 'is-' + this.effect, this.popperClass] },\n          [this.$slots.content || this.content]\n        )]\n      );\n    }\n\n    if (!this.$slots.default || !this.$slots.default.length) return this.$slots.default;\n\n    var vnode = (0, _vdom.getFirstComponentChild)(this.$slots.default);\n\n    if (!vnode) return vnode;\n\n    var data = vnode.data = vnode.data || {};\n    data.staticClass = this.concatClass(data.staticClass, 'el-tooltip');\n\n    return vnode;\n  },\n  mounted: function mounted() {\n    var _this3 = this;\n\n    this.referenceElm = this.$el;\n    if (this.$el.nodeType === 1) {\n      this.$el.setAttribute('aria-describedby', this.tooltipId);\n      this.$el.setAttribute('tabindex', 0);\n      (0, _dom.on)(this.referenceElm, 'mouseenter', this.show);\n      (0, _dom.on)(this.referenceElm, 'mouseleave', this.hide);\n      (0, _dom.on)(this.referenceElm, 'focus', function () {\n        if (!_this3.$slots.default || !_this3.$slots.default.length) {\n          _this3.handleFocus();\n          return;\n        }\n        var instance = _this3.$slots.default[0].componentInstance;\n        if (instance && instance.focus) {\n          instance.focus();\n        } else {\n          _this3.handleFocus();\n        }\n      });\n      (0, _dom.on)(this.referenceElm, 'blur', this.handleBlur);\n      (0, _dom.on)(this.referenceElm, 'click', this.removeFocusing);\n    }\n  },\n\n  watch: {\n    focusing: function focusing(val) {\n      if (val) {\n        (0, _dom.addClass)(this.referenceElm, 'focusing');\n      } else {\n        (0, _dom.removeClass)(this.referenceElm, 'focusing');\n      }\n    }\n  },\n  methods: {\n    show: function show() {\n      this.setExpectedState(true);\n      this.handleShowPopper();\n    },\n    hide: function hide() {\n      this.setExpectedState(false);\n      this.debounceClose();\n    },\n    handleFocus: function handleFocus() {\n      this.focusing = true;\n      this.show();\n    },\n    handleBlur: function handleBlur() {\n      this.focusing = false;\n      this.hide();\n    },\n    removeFocusing: function removeFocusing() {\n      this.focusing = false;\n    },\n    concatClass: function concatClass(a, b) {\n      if (a && a.indexOf(b) > -1) return a;\n      return a ? b ? a + ' ' + b : a : b || '';\n    },\n    handleShowPopper: function handleShowPopper() {\n      var _this4 = this;\n\n      if (!this.expectedState || this.manual) return;\n      clearTimeout(this.timeout);\n      this.timeout = setTimeout(function () {\n        _this4.showPopper = true;\n      }, this.openDelay);\n\n      if (this.hideAfter > 0) {\n        this.timeoutPending = setTimeout(function () {\n          _this4.showPopper = false;\n        }, this.hideAfter);\n      }\n    },\n    handleClosePopper: function handleClosePopper() {\n      if (this.enterable && this.expectedState || this.manual) return;\n      clearTimeout(this.timeout);\n\n      if (this.timeoutPending) {\n        clearTimeout(this.timeoutPending);\n      }\n      this.showPopper = false;\n\n      if (this.disabled) {\n        this.doDestroy();\n      }\n    },\n    setExpectedState: function setExpectedState(expectedState) {\n      if (expectedState === false) {\n        clearTimeout(this.timeoutPending);\n      }\n      this.expectedState = expectedState;\n    }\n  },\n\n  destroyed: function destroyed() {\n    var reference = this.referenceElm;\n    (0, _dom.off)(reference, 'mouseenter', this.show);\n    (0, _dom.off)(reference, 'mouseleave', this.hide);\n    (0, _dom.off)(reference, 'focus', this.handleFocus);\n    (0, _dom.off)(reference, 'blur', this.handleBlur);\n    (0, _dom.off)(reference, 'click', this.removeFocusing);\n  }\n};\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"vue\");\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vue-popper\");\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/tooltip.js\n// module id = CPY7\n// module chunks = 0","exports.f = require('./_wks');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_wks-ext.js\n// module id = CVJP\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(option) {\n  var timelineOpt = option && option.timeline;\n\n  if (!zrUtil.isArray(timelineOpt)) {\n    timelineOpt = timelineOpt ? [timelineOpt] : [];\n  }\n\n  zrUtil.each(timelineOpt, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    compatibleEC2(opt);\n  });\n}\n\nfunction compatibleEC2(opt) {\n  var type = opt.type;\n  var ec2Types = {\n    'number': 'value',\n    'time': 'time'\n  }; // Compatible with ec2\n\n  if (ec2Types[type]) {\n    opt.axisType = ec2Types[type];\n    delete opt.type;\n  }\n\n  transferItem(opt);\n\n  if (has(opt, 'controlPosition')) {\n    var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n    if (!has(controlStyle, 'position')) {\n      controlStyle.position = opt.controlPosition;\n    }\n\n    if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n      controlStyle.show = false;\n      delete controlStyle.position;\n    }\n\n    delete opt.controlPosition;\n  }\n\n  zrUtil.each(opt.data || [], function (dataItem) {\n    if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n      if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n        // In ec2, using name as value.\n        dataItem.value = dataItem.name;\n      }\n\n      transferItem(dataItem);\n    }\n  });\n}\n\nfunction transferItem(opt) {\n  var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n  var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {}); // Transfer label out\n\n  var label = opt.label || opt.label || {};\n  var labelNormal = label.normal || (label.normal = {});\n  var excludeLabelAttr = {\n    normal: 1,\n    emphasis: 1\n  };\n  zrUtil.each(label, function (value, name) {\n    if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n      labelNormal[name] = value;\n    }\n  });\n\n  if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n    label.emphasis = itemStyleEmphasis.label;\n    delete itemStyleEmphasis.label;\n  }\n}\n\nfunction has(obj, attr) {\n  return obj.hasOwnProperty(attr);\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/preprocessor.js\n// module id = CeJ6\n// module chunks = 0","var BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar bbox = require(\"zrender/lib/core/bbox\");\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar polygonContain = require(\"zrender/lib/contain/polygon\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/coord/geo/Region\n */\n\n/**\n * @param {string} name\n * @param {Array} geometries\n * @param {Array.<number>} cp\n */\nfunction Region(name, geometries, cp) {\n  /**\n   * @type {string}\n   * @readOnly\n   */\n  this.name = name;\n  /**\n   * @type {Array.<Array>}\n   * @readOnly\n   */\n\n  this.geometries = geometries;\n\n  if (!cp) {\n    var rect = this.getBoundingRect();\n    cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  } else {\n    cp = [cp[0], cp[1]];\n  }\n  /**\n   * @type {Array.<number>}\n   */\n\n\n  this.center = cp;\n}\n\nRegion.prototype = {\n  constructor: Region,\n  properties: null,\n\n  /**\n   * @return {module:zrender/core/BoundingRect}\n   */\n  getBoundingRect: function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      // Only support polygon\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      } // Doesn't consider hole\n\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    } // No data\n\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  },\n\n  /**\n   * @param {<Array.<number>} coord\n   * @return {boolean}\n   */\n  contain: function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      // Only support polygon.\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        // Not in the region if point is in the hole.\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  },\n  transformTo: function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      // Only support polygon.\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target); // Update center\n\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n};\nvar _default = Region;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/Region.js\n// module id = Cs+Z\n// module chunks = 0","var Single = require(\"./Single\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Single coordinate system creator.\n */\n\n/**\n * Create single coordinate system and inject it into seriesModel.\n *\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n * @return {Array.<module:echarts/coord/single/Single>}\n */\nfunction create(ecModel, api) {\n  var singles = [];\n  ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n    var single = new Single(axisModel, ecModel, api);\n    single.name = 'single_' + idx;\n    single.resize(axisModel, api);\n    axisModel.coordinateSystem = single;\n    singles.push(single);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n      var singleAxisModel = ecModel.queryComponents({\n        mainType: 'singleAxis',\n        index: seriesModel.get('singleAxisIndex'),\n        id: seriesModel.get('singleAxisId')\n      })[0];\n      seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n    }\n  });\n  return singles;\n}\n\nCoordinateSystem.register('single', {\n  create: create,\n  dimensions: Single.prototype.dimensions\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/single/singleCreator.js\n// module id = CtWo\n// module chunks = 0","var makeStyleMapper = require(\"./makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['textPosition'], ['textAlign']]);\nvar _default = {\n  getItemStyle: function (excludes, includes) {\n    var style = getItemStyle(this, excludes, includes);\n    var lineDash = this.getBorderLineDash();\n    lineDash && (style.lineDash = lineDash);\n    return style;\n  },\n  getBorderLineDash: function () {\n    var lineType = this.get('borderType');\n    return lineType === 'solid' || lineType == null ? null : lineType === 'dashed' ? [5, 5] : [1, 1];\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/itemStyle.js\n// module id = CwES\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar zrColor = require(\"zrender/lib/tool/color\");\n\nvar eventUtil = require(\"zrender/lib/core/event\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar formatUtil = require(\"../../util/format\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar toCamelCase = formatUtil.toCamelCase;\nvar vendors = ['', '-webkit-', '-moz-', '-o-'];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n/**\n * @param {number} duration\n * @return {string}\n * @inner\n */\n\nfunction assembleTransition(duration) {\n  var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n  var transitionText = 'left ' + duration + 's ' + transitionCurve + ',' + 'top ' + duration + 's ' + transitionCurve;\n  return zrUtil.map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transition:' + transitionText;\n  }).join(';');\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\n\n\nfunction assembleFont(textStyleModel) {\n  var cssText = [];\n  var fontSize = textStyleModel.get('fontSize');\n  var color = textStyleModel.getTextColor();\n  color && cssText.push('color:' + color);\n  cssText.push('font:' + textStyleModel.getFont());\n  fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n  each(['decoration', 'align'], function (name) {\n    var val = textStyleModel.get(name);\n    val && cssText.push('text-' + name + ':' + val);\n  });\n  return cssText.join(';');\n}\n/**\n * @param {Object} tooltipModel\n * @return {string}\n * @inner\n */\n\n\nfunction assembleCssText(tooltipModel) {\n  var cssText = [];\n  var transitionDuration = tooltipModel.get('transitionDuration');\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var textStyleModel = tooltipModel.getModel('textStyle');\n  var padding = tooltipModel.get('padding'); // Animation transition. Do not animate when transitionDuration is 0.\n\n  transitionDuration && cssText.push(assembleTransition(transitionDuration));\n\n  if (backgroundColor) {\n    if (env.canvasSupported) {\n      cssText.push('background-Color:' + backgroundColor);\n    } else {\n      // for ie\n      cssText.push('background-Color:#' + zrColor.toHex(backgroundColor));\n      cssText.push('filter:alpha(opacity=70)');\n    }\n  } // Border style\n\n\n  each(['width', 'color', 'radius'], function (name) {\n    var borderName = 'border-' + name;\n    var camelCase = toCamelCase(borderName);\n    var val = tooltipModel.get(camelCase);\n    val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n  }); // Text style\n\n  cssText.push(assembleFont(textStyleModel)); // Padding\n\n  if (padding != null) {\n    cssText.push('padding:' + formatUtil.normalizeCssArray(padding).join('px ') + 'px');\n  }\n\n  return cssText.join(';') + ';';\n}\n/**\n * @alias module:echarts/component/tooltip/TooltipContent\n * @constructor\n */\n\n\nfunction TooltipContent(container, api) {\n  if (env.wxa) {\n    return null;\n  }\n\n  var el = document.createElement('div');\n  var zr = this._zr = api.getZr();\n  this.el = el;\n  this._x = api.getWidth() / 2;\n  this._y = api.getHeight() / 2;\n  container.appendChild(el);\n  this._container = container;\n  this._show = false;\n  /**\n   * @private\n   */\n\n  this._hideTimeout;\n  var self = this;\n\n  el.onmouseenter = function () {\n    // clear the timeout in hideLater and keep showing tooltip\n    if (self._enterable) {\n      clearTimeout(self._hideTimeout);\n      self._show = true;\n    }\n\n    self._inContent = true;\n  };\n\n  el.onmousemove = function (e) {\n    e = e || window.event;\n\n    if (!self._enterable) {\n      // Try trigger zrender event to avoid mouse\n      // in and out shape too frequently\n      var handler = zr.handler;\n      eventUtil.normalizeEvent(container, e, true);\n      handler.dispatch('mousemove', e);\n    }\n  };\n\n  el.onmouseleave = function () {\n    if (self._enterable) {\n      if (self._show) {\n        self.hideLater(self._hideDelay);\n      }\n    }\n\n    self._inContent = false;\n  };\n}\n\nTooltipContent.prototype = {\n  constructor: TooltipContent,\n\n  /**\n   * @private\n   * @type {boolean}\n   */\n  _enterable: true,\n\n  /**\n   * Update when tooltip is rendered\n   */\n  update: function () {\n    // FIXME\n    // Move this logic to ec main?\n    var container = this._container;\n    var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n    var domStyle = container.style;\n\n    if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n      domStyle.position = 'relative';\n    } // Hide the tooltip\n    // PENDING\n    // this.hide();\n\n  },\n  show: function (tooltipModel) {\n    clearTimeout(this._hideTimeout);\n    var el = this.el;\n    el.style.cssText = gCssText + assembleCssText(tooltipModel) // http://stackoverflow.com/questions/21125587/css3-transition-not-working-in-chrome-anymore\n    + ';left:' + this._x + 'px;top:' + this._y + 'px;' + (tooltipModel.get('extraCssText') || '');\n    el.style.display = el.innerHTML ? 'block' : 'none';\n    this._show = true;\n  },\n  setContent: function (content) {\n    this.el.innerHTML = content == null ? '' : content;\n  },\n  setEnterable: function (enterable) {\n    this._enterable = enterable;\n  },\n  getSize: function () {\n    var el = this.el;\n    return [el.clientWidth, el.clientHeight];\n  },\n  moveTo: function (x, y) {\n    // xy should be based on canvas root. But tooltipContent is\n    // the sibling of canvas root. So padding of ec container\n    // should be considered here.\n    var zr = this._zr;\n    var viewportRootOffset;\n\n    if (zr && zr.painter && (viewportRootOffset = zr.painter.getViewportRootOffset())) {\n      x += viewportRootOffset.offsetLeft;\n      y += viewportRootOffset.offsetTop;\n    }\n\n    var style = this.el.style;\n    style.left = x + 'px';\n    style.top = y + 'px';\n    this._x = x;\n    this._y = y;\n  },\n  hide: function () {\n    this.el.style.display = 'none';\n    this._show = false;\n  },\n  hideLater: function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time; // Set show false to avoid invoke hideLater mutiple times\n\n        this._show = false;\n        this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  },\n  isShow: function () {\n    return this._show;\n  }\n};\nvar _default = TooltipContent;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/tooltip/TooltipContent.js\n// module id = Cwac\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 337);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 18:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/resize-event\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 337:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(338);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n\n/***/ 338:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _resizeEvent = __webpack_require__(18);\n\nvar _scrollbarWidth = __webpack_require__(38);\n\nvar _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);\n\nvar _util = __webpack_require__(3);\n\nvar _bar = __webpack_require__(339);\n\nvar _bar2 = _interopRequireDefault(_bar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n// reference https://github.com/noeldelgado/gemini-scrollbar/blob/master/index.js\n\nexports.default = {\n  name: 'ElScrollbar',\n\n  components: { Bar: _bar2.default },\n\n  props: {\n    native: Boolean,\n    wrapStyle: {},\n    wrapClass: {},\n    viewClass: {},\n    viewStyle: {},\n    noresize: Boolean, // 濡傛灉 container 灏哄涓嶄細鍙戠敓鍙樺寲锛屾渶濂借缃畠鍙互浼樺寲鎬ц兘\n    tag: {\n      type: String,\n      default: 'div'\n    }\n  },\n\n  data: function data() {\n    return {\n      sizeWidth: '0',\n      sizeHeight: '0',\n      moveX: 0,\n      moveY: 0\n    };\n  },\n\n\n  computed: {\n    wrap: function wrap() {\n      return this.$refs.wrap;\n    }\n  },\n\n  render: function render(h) {\n    var gutter = (0, _scrollbarWidth2.default)();\n    var style = this.wrapStyle;\n\n    if (gutter) {\n      var gutterWith = '-' + gutter + 'px';\n      var gutterStyle = 'margin-bottom: ' + gutterWith + '; margin-right: ' + gutterWith + ';';\n\n      if (Array.isArray(this.wrapStyle)) {\n        style = (0, _util.toObject)(this.wrapStyle);\n        style.marginRight = style.marginBottom = gutterWith;\n      } else if (typeof this.wrapStyle === 'string') {\n        style += gutterStyle;\n      } else {\n        style = gutterStyle;\n      }\n    }\n    var view = h(this.tag, {\n      class: ['el-scrollbar__view', this.viewClass],\n      style: this.viewStyle,\n      ref: 'resize'\n    }, this.$slots.default);\n    var wrap = h(\n      'div',\n      {\n        ref: 'wrap',\n        style: style,\n        on: {\n          'scroll': this.handleScroll\n        },\n\n        'class': [this.wrapClass, 'el-scrollbar__wrap', gutter ? '' : 'el-scrollbar__wrap--hidden-default'] },\n      [[view]]\n    );\n    var nodes = void 0;\n\n    if (!this.native) {\n      nodes = [wrap, h(\n        _bar2.default,\n        {\n          attrs: {\n            move: this.moveX,\n            size: this.sizeWidth }\n        },\n        []\n      ), h(\n        _bar2.default,\n        {\n          attrs: {\n            vertical: true,\n            move: this.moveY,\n            size: this.sizeHeight }\n        },\n        []\n      )];\n    } else {\n      nodes = [h(\n        'div',\n        {\n          ref: 'wrap',\n          'class': [this.wrapClass, 'el-scrollbar__wrap'],\n          style: style },\n        [[view]]\n      )];\n    }\n    return h('div', { class: 'el-scrollbar' }, nodes);\n  },\n\n\n  methods: {\n    handleScroll: function handleScroll() {\n      var wrap = this.wrap;\n\n      this.moveY = wrap.scrollTop * 100 / wrap.clientHeight;\n      this.moveX = wrap.scrollLeft * 100 / wrap.clientWidth;\n    },\n    update: function update() {\n      var heightPercentage = void 0,\n          widthPercentage = void 0;\n      var wrap = this.wrap;\n      if (!wrap) return;\n\n      heightPercentage = wrap.clientHeight * 100 / wrap.scrollHeight;\n      widthPercentage = wrap.clientWidth * 100 / wrap.scrollWidth;\n\n      this.sizeHeight = heightPercentage < 100 ? heightPercentage + '%' : '';\n      this.sizeWidth = widthPercentage < 100 ? widthPercentage + '%' : '';\n    }\n  },\n\n  mounted: function mounted() {\n    if (this.native) return;\n    this.$nextTick(this.update);\n    !this.noresize && (0, _resizeEvent.addResizeListener)(this.$refs.resize, this.update);\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this.native) return;\n    !this.noresize && (0, _resizeEvent.removeResizeListener)(this.$refs.resize, this.update);\n  }\n};\n\n/***/ }),\n\n/***/ 339:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(2);\n\nvar _util = __webpack_require__(340);\n\n/* istanbul ignore next */\nexports.default = {\n  name: 'Bar',\n\n  props: {\n    vertical: Boolean,\n    size: String,\n    move: Number\n  },\n\n  computed: {\n    bar: function bar() {\n      return _util.BAR_MAP[this.vertical ? 'vertical' : 'horizontal'];\n    },\n    wrap: function wrap() {\n      return this.$parent.wrap;\n    }\n  },\n\n  render: function render(h) {\n    var size = this.size,\n        move = this.move,\n        bar = this.bar;\n\n\n    return h(\n      'div',\n      {\n        'class': ['el-scrollbar__bar', 'is-' + bar.key],\n        on: {\n          'mousedown': this.clickTrackHandler\n        }\n      },\n      [h(\n        'div',\n        {\n          ref: 'thumb',\n          'class': 'el-scrollbar__thumb',\n          on: {\n            'mousedown': this.clickThumbHandler\n          },\n\n          style: (0, _util.renderThumbStyle)({ size: size, move: move, bar: bar }) },\n        []\n      )]\n    );\n  },\n\n\n  methods: {\n    clickThumbHandler: function clickThumbHandler(e) {\n      this.startDrag(e);\n      this[this.bar.axis] = e.currentTarget[this.bar.offset] - (e[this.bar.client] - e.currentTarget.getBoundingClientRect()[this.bar.direction]);\n    },\n    clickTrackHandler: function clickTrackHandler(e) {\n      var offset = Math.abs(e.target.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]);\n      var thumbHalf = this.$refs.thumb[this.bar.offset] / 2;\n      var thumbPositionPercentage = (offset - thumbHalf) * 100 / this.$el[this.bar.offset];\n\n      this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;\n    },\n    startDrag: function startDrag(e) {\n      e.stopImmediatePropagation();\n      this.cursorDown = true;\n\n      (0, _dom.on)(document, 'mousemove', this.mouseMoveDocumentHandler);\n      (0, _dom.on)(document, 'mouseup', this.mouseUpDocumentHandler);\n      document.onselectstart = function () {\n        return false;\n      };\n    },\n    mouseMoveDocumentHandler: function mouseMoveDocumentHandler(e) {\n      if (this.cursorDown === false) return;\n      var prevPage = this[this.bar.axis];\n\n      if (!prevPage) return;\n\n      var offset = (this.$el.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]) * -1;\n      var thumbClickPosition = this.$refs.thumb[this.bar.offset] - prevPage;\n      var thumbPositionPercentage = (offset - thumbClickPosition) * 100 / this.$el[this.bar.offset];\n\n      this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;\n    },\n    mouseUpDocumentHandler: function mouseUpDocumentHandler(e) {\n      this.cursorDown = false;\n      this[this.bar.axis] = 0;\n      (0, _dom.off)(document, 'mousemove', this.mouseMoveDocumentHandler);\n      document.onselectstart = null;\n    }\n  },\n\n  destroyed: function destroyed() {\n    (0, _dom.off)(document, 'mouseup', this.mouseUpDocumentHandler);\n  }\n};\n\n/***/ }),\n\n/***/ 340:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.renderThumbStyle = renderThumbStyle;\nvar BAR_MAP = exports.BAR_MAP = {\n  vertical: {\n    offset: 'offsetHeight',\n    scroll: 'scrollTop',\n    scrollSize: 'scrollHeight',\n    size: 'height',\n    key: 'vertical',\n    axis: 'Y',\n    client: 'clientY',\n    direction: 'top'\n  },\n  horizontal: {\n    offset: 'offsetWidth',\n    scroll: 'scrollLeft',\n    scrollSize: 'scrollWidth',\n    size: 'width',\n    key: 'horizontal',\n    axis: 'X',\n    client: 'clientX',\n    direction: 'left'\n  }\n};\n\nfunction renderThumbStyle(_ref) {\n  var move = _ref.move,\n      size = _ref.size,\n      bar = _ref.bar;\n\n  var style = {};\n  var translate = 'translate' + bar.axis + '(' + move + '%)';\n\n  style[bar.size] = size;\n  style.transform = translate;\n  style.msTransform = translate;\n  style.webkitTransform = translate;\n\n  return style;\n};\n\n/***/ }),\n\n/***/ 38:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/scrollbar-width\");\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/scrollbar.js\n// module id = D7MG\n// module chunks = 0","var echarts = require(\"../../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BrushController = require(\"../../helper/BrushController\");\n\nvar BrushTargetManager = require(\"../../helper/BrushTargetManager\");\n\nvar history = require(\"../../dataZoom/history\");\n\nvar sliderMove = require(\"../../helper/sliderMove\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\n\nrequire(\"../../dataZoomSelect\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Use dataZoomSelect\nvar dataZoomLang = lang.toolbox.dataZoom;\nvar each = zrUtil.each; // Spectial component id start with \\0ec\\0, see echarts/model/Global.js~hasInnerId\n\nvar DATA_ZOOM_ID_BASE = '\\0_ec_\\0toolbox-dataZoom_';\n\nfunction DataZoom(model, ecModel, api) {\n  /**\n   * @private\n   * @type {module:echarts/component/helper/BrushController}\n   */\n  (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n  /**\n   * @private\n   * @type {boolean}\n   */\n\n  this._isZoomActive;\n}\n\nDataZoom.defaultOption = {\n  show: true,\n  // Icon group\n  icon: {\n    zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n    back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n  },\n  // `zoom`, `back`\n  title: zrUtil.clone(dataZoomLang.title)\n};\nvar proto = DataZoom.prototype;\n\nproto.render = function (featureModel, ecModel, api, payload) {\n  this.model = featureModel;\n  this.ecModel = ecModel;\n  this.api = api;\n  updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n  updateBackBtnStatus(featureModel, ecModel);\n};\n\nproto.onclick = function (ecModel, api, type) {\n  handlers[type].call(this);\n};\n\nproto.remove = function (ecModel, api) {\n  this._brushController.unmount();\n};\n\nproto.dispose = function (ecModel, api) {\n  this._brushController.dispose();\n};\n/**\n * @private\n */\n\n\nvar handlers = {\n  zoom: function () {\n    var nextActive = !this._isZoomActive;\n    this.api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'dataZoomSelect',\n      dataZoomSelectActive: nextActive\n    });\n  },\n  back: function () {\n    this._dispatchZoomAction(history.pop(this.ecModel));\n  }\n};\n/**\n * @private\n */\n\nproto._onBrush = function (areas, opt) {\n  if (!opt.isEnd || !areas.length) {\n    return;\n  }\n\n  var snapshot = {};\n  var ecModel = this.ecModel;\n\n  this._brushController.updateCovers([]); // remove cover\n\n\n  var brushTargetManager = new BrushTargetManager(retrieveAxisSetting(this.model.option), ecModel, {\n    include: ['grid']\n  });\n  brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n    if (coordSys.type !== 'cartesian2d') {\n      return;\n    }\n\n    var brushType = area.brushType;\n\n    if (brushType === 'rect') {\n      setBatch('x', coordSys, coordRange[0]);\n      setBatch('y', coordSys, coordRange[1]);\n    } else {\n      setBatch({\n        lineX: 'x',\n        lineY: 'y'\n      }[brushType], coordSys, coordRange);\n    }\n  });\n  history.push(ecModel, snapshot);\n\n  this._dispatchZoomAction(snapshot);\n\n  function setBatch(dimName, coordSys, minMax) {\n    var axis = coordSys.getAxis(dimName);\n    var axisModel = axis.model;\n    var dataZoomModel = findDataZoom(dimName, axisModel, ecModel); // Restrict range.\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n    if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n      minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n    }\n\n    dataZoomModel && (snapshot[dataZoomModel.id] = {\n      dataZoomId: dataZoomModel.id,\n      startValue: minMax[0],\n      endValue: minMax[1]\n    });\n  }\n\n  function findDataZoom(dimName, axisModel, ecModel) {\n    var found;\n    ecModel.eachComponent({\n      mainType: 'dataZoom',\n      subType: 'select'\n    }, function (dzModel) {\n      var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n      has && (found = dzModel);\n    });\n    return found;\n  }\n};\n/**\n * @private\n */\n\n\nproto._dispatchZoomAction = function (snapshot) {\n  var batch = []; // Convert from hash map to array.\n\n  each(snapshot, function (batchItem, dataZoomId) {\n    batch.push(zrUtil.clone(batchItem));\n  });\n  batch.length && this.api.dispatchAction({\n    type: 'dataZoom',\n    from: this.uid,\n    batch: batch\n  });\n};\n\nfunction retrieveAxisSetting(option) {\n  var setting = {}; // Compatible with previous setting: null => all axis, false => no axis.\n\n  zrUtil.each(['xAxisIndex', 'yAxisIndex'], function (name) {\n    setting[name] = option[name];\n    setting[name] == null && (setting[name] = 'all');\n    (setting[name] === false || setting[name] === 'none') && (setting[name] = []);\n  });\n  return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n  featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n  var zoomActive = view._isZoomActive;\n\n  if (payload && payload.type === 'takeGlobalCursor') {\n    zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n  }\n\n  view._isZoomActive = zoomActive;\n  featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n  var brushTargetManager = new BrushTargetManager(retrieveAxisSetting(featureModel.option), ecModel, {\n    include: ['grid']\n  });\n\n  view._brushController.setPanels(brushTargetManager.makePanelOpts(api, function (targetInfo) {\n    return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n  })).enableBrush(zoomActive ? {\n    brushType: 'auto',\n    brushStyle: {\n      // FIXME user customized?\n      lineWidth: 0,\n      fill: 'rgba(0,0,0,0.2)'\n    }\n  } : false);\n}\n\nfeatureManager.register('dataZoom', DataZoom); // Create special dataZoom option for select\n// FIXME consider the case of merge option, where axes options are not exists.\n\necharts.registerPreprocessor(function (option) {\n  if (!option) {\n    return;\n  }\n\n  var dataZoomOpts = option.dataZoom || (option.dataZoom = []);\n\n  if (!zrUtil.isArray(dataZoomOpts)) {\n    option.dataZoom = dataZoomOpts = [dataZoomOpts];\n  }\n\n  var toolboxOpt = option.toolbox;\n\n  if (toolboxOpt) {\n    // Assume there is only one toolbox\n    if (zrUtil.isArray(toolboxOpt)) {\n      toolboxOpt = toolboxOpt[0];\n    }\n\n    if (toolboxOpt && toolboxOpt.feature) {\n      var dataZoomOpt = toolboxOpt.feature.dataZoom; // FIXME: If add dataZoom when setOption in merge mode,\n      // no axis info to be added. See `test/dataZoom-extreme.html`\n\n      addForAxis('xAxis', dataZoomOpt);\n      addForAxis('yAxis', dataZoomOpt);\n    }\n  }\n\n  function addForAxis(axisName, dataZoomOpt) {\n    if (!dataZoomOpt) {\n      return;\n    } // Try not to modify model, because it is not merged yet.\n\n\n    var axisIndicesName = axisName + 'Index';\n    var givenAxisIndices = dataZoomOpt[axisIndicesName];\n\n    if (givenAxisIndices != null && givenAxisIndices != 'all' && !zrUtil.isArray(givenAxisIndices)) {\n      givenAxisIndices = givenAxisIndices === false || givenAxisIndices === 'none' ? [] : [givenAxisIndices];\n    }\n\n    forEachComponent(axisName, function (axisOpt, axisIndex) {\n      if (givenAxisIndices != null && givenAxisIndices != 'all' && zrUtil.indexOf(givenAxisIndices, axisIndex) === -1) {\n        return;\n      }\n\n      var newOpt = {\n        type: 'select',\n        $fromToolbox: true,\n        // Id for merge mapping.\n        id: DATA_ZOOM_ID_BASE + axisName + axisIndex\n      }; // FIXME\n      // Only support one axis now.\n\n      newOpt[axisIndicesName] = axisIndex;\n      dataZoomOpts.push(newOpt);\n    });\n  }\n\n  function forEachComponent(mainType, cb) {\n    var opts = option[mainType];\n\n    if (!zrUtil.isArray(opts)) {\n      opts = opts ? [opts] : [];\n    }\n\n    each(opts, cb);\n  }\n});\nvar _default = DataZoom;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/DataZoom.js\n// module id = DKbI\n// module chunks = 0","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n  setDesc(it, META, { value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  } });\n};\nvar fastKey = function (it, create) {\n  // return primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function (it, create) {\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_meta.js\n// module id = DVkV\n// module chunks = 0","var _forceHelper = require(\"./forceHelper\");\n\nvar forceLayout = _forceHelper.forceLayout;\n\nvar _simpleLayoutHelper = require(\"./simpleLayoutHelper\");\n\nvar simpleLayout = _simpleLayoutHelper.simpleLayout;\n\nvar _circularLayoutHelper = require(\"./circularLayoutHelper\");\n\nvar circularLayout = _circularLayoutHelper.circularLayout;\n\nvar _number = require(\"../../util/number\");\n\nvar linearMap = _number.linearMap;\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var coordSys = graphSeries.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      return;\n    }\n\n    if (graphSeries.get('layout') === 'force') {\n      var preservedPoints = graphSeries.preservedPoints || {};\n      var graph = graphSeries.getGraph();\n      var nodeData = graph.data;\n      var edgeData = graph.edgeData;\n      var forceModel = graphSeries.getModel('force');\n      var initLayout = forceModel.get('initLayout');\n\n      if (graphSeries.preservedPoints) {\n        nodeData.each(function (idx) {\n          var id = nodeData.getId(idx);\n          nodeData.setItemLayout(idx, preservedPoints[id] || [NaN, NaN]);\n        });\n      } else if (!initLayout || initLayout === 'none') {\n        simpleLayout(graphSeries);\n      } else if (initLayout === 'circular') {\n        circularLayout(graphSeries);\n      }\n\n      var nodeDataExtent = nodeData.getDataExtent('value');\n      var edgeDataExtent = edgeData.getDataExtent('value'); // var edgeDataExtent = edgeData.getDataExtent('value');\n\n      var repulsion = forceModel.get('repulsion');\n      var edgeLength = forceModel.get('edgeLength');\n\n      if (!zrUtil.isArray(repulsion)) {\n        repulsion = [repulsion, repulsion];\n      }\n\n      if (!zrUtil.isArray(edgeLength)) {\n        edgeLength = [edgeLength, edgeLength];\n      } // Larger value has smaller length\n\n\n      edgeLength = [edgeLength[1], edgeLength[0]];\n      var nodes = nodeData.mapArray('value', function (value, idx) {\n        var point = nodeData.getItemLayout(idx);\n        var rep = linearMap(value, nodeDataExtent, repulsion);\n\n        if (isNaN(rep)) {\n          rep = (repulsion[0] + repulsion[1]) / 2;\n        }\n\n        return {\n          w: rep,\n          rep: rep,\n          fixed: nodeData.getItemModel(idx).get('fixed'),\n          p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n        };\n      });\n      var edges = edgeData.mapArray('value', function (value, idx) {\n        var edge = graph.getEdgeByIndex(idx);\n        var d = linearMap(value, edgeDataExtent, edgeLength);\n\n        if (isNaN(d)) {\n          d = (edgeLength[0] + edgeLength[1]) / 2;\n        }\n\n        return {\n          n1: nodes[edge.node1.dataIndex],\n          n2: nodes[edge.node2.dataIndex],\n          d: d,\n          curveness: edge.getModel().get('lineStyle.curveness') || 0\n        };\n      });\n      var coordSys = graphSeries.coordinateSystem;\n      var rect = coordSys.getBoundingRect();\n      var forceInstance = forceLayout(nodes, edges, {\n        rect: rect,\n        gravity: forceModel.get('gravity')\n      });\n      var oldStep = forceInstance.step;\n\n      forceInstance.step = function (cb) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (nodes[i].fixed) {\n            // Write back to layout instance\n            vec2.copy(nodes[i].p, graph.getNodeByIndex(i).getLayout());\n          }\n        }\n\n        oldStep(function (nodes, edges, stopped) {\n          for (var i = 0, l = nodes.length; i < l; i++) {\n            if (!nodes[i].fixed) {\n              graph.getNodeByIndex(i).setLayout(nodes[i].p);\n            }\n\n            preservedPoints[nodeData.getId(i)] = nodes[i].p;\n          }\n\n          for (var i = 0, l = edges.length; i < l; i++) {\n            var e = edges[i];\n            var edge = graph.getEdgeByIndex(i);\n            var p1 = e.n1.p;\n            var p2 = e.n2.p;\n            var points = edge.getLayout();\n            points = points ? points.slice() : [];\n            points[0] = points[0] || [];\n            points[1] = points[1] || [];\n            vec2.copy(points[0], p1);\n            vec2.copy(points[1], p2);\n\n            if (+e.curveness) {\n              points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n            }\n\n            edge.setLayout(points);\n          } // Update layout\n\n\n          cb && cb(stopped);\n        });\n      };\n\n      graphSeries.forceLayout = forceInstance;\n      graphSeries.preservedPoints = preservedPoints; // Step to get the layout\n\n      forceInstance.step();\n    } else {\n      // Remove prev injected forceLayout instance\n      graphSeries.forceLayout = null;\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/forceLayout.js\n// module id = DY6x\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Piece of pie including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\nfunction FunnelPiece(data, idx) {\n  graphic.Group.call(this);\n  var polygon = new graphic.Polygon();\n  var labelLine = new graphic.Polyline();\n  var text = new graphic.Text();\n  this.add(polygon);\n  this.add(labelLine);\n  this.add(text);\n  this.updateData(data, idx, true); // Hover to change label and labelLine\n\n  function onEmphasis() {\n    labelLine.ignore = labelLine.hoverIgnore;\n    text.ignore = text.hoverIgnore;\n  }\n\n  function onNormal() {\n    labelLine.ignore = labelLine.normalIgnore;\n    text.ignore = text.normalIgnore;\n  }\n\n  this.on('emphasis', onEmphasis).on('normal', onNormal).on('mouseover', onEmphasis).on('mouseout', onNormal);\n}\n\nvar funnelPieceProto = FunnelPiece.prototype;\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n\nfunnelPieceProto.updateData = function (data, idx, firstCreate) {\n  var polygon = this.childAt(0);\n  var seriesModel = data.hostModel;\n  var itemModel = data.getItemModel(idx);\n  var layout = data.getItemLayout(idx);\n  var opacity = data.getItemModel(idx).get(opacityAccessPath);\n  opacity = opacity == null ? 1 : opacity; // Reset style\n\n  polygon.useStyle({});\n\n  if (firstCreate) {\n    polygon.setShape({\n      points: layout.points\n    });\n    polygon.setStyle({\n      opacity: 0\n    });\n    graphic.initProps(polygon, {\n      style: {\n        opacity: opacity\n      }\n    }, seriesModel, idx);\n  } else {\n    graphic.updateProps(polygon, {\n      style: {\n        opacity: opacity\n      },\n      shape: {\n        points: layout.points\n      }\n    }, seriesModel, idx);\n  } // Update common style\n\n\n  var itemStyleModel = itemModel.getModel('itemStyle');\n  var visualColor = data.getItemVisual(idx, 'color');\n  polygon.setStyle(zrUtil.defaults({\n    lineJoin: 'round',\n    fill: visualColor\n  }, itemStyleModel.getItemStyle(['opacity'])));\n  polygon.hoverStyle = itemStyleModel.getModel('emphasis').getItemStyle();\n\n  this._updateLabel(data, idx);\n\n  graphic.setHoverStyle(this);\n};\n\nfunnelPieceProto._updateLabel = function (data, idx) {\n  var labelLine = this.childAt(1);\n  var labelText = this.childAt(2);\n  var seriesModel = data.hostModel;\n  var itemModel = data.getItemModel(idx);\n  var layout = data.getItemLayout(idx);\n  var labelLayout = layout.label;\n  var visualColor = data.getItemVisual(idx, 'color');\n  graphic.updateProps(labelLine, {\n    shape: {\n      points: labelLayout.linePoints || labelLayout.linePoints\n    }\n  }, seriesModel, idx);\n  graphic.updateProps(labelText, {\n    style: {\n      x: labelLayout.x,\n      y: labelLayout.y\n    }\n  }, seriesModel, idx);\n  labelText.attr({\n    rotation: labelLayout.rotation,\n    origin: [labelLayout.x, labelLayout.y],\n    z2: 10\n  });\n  var labelModel = itemModel.getModel('label');\n  var labelHoverModel = itemModel.getModel('emphasis.label');\n  var labelLineModel = itemModel.getModel('labelLine');\n  var labelLineHoverModel = itemModel.getModel('emphasis.labelLine');\n  var visualColor = data.getItemVisual(idx, 'color');\n  graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {\n    labelFetcher: data.hostModel,\n    labelDataIndex: idx,\n    defaultText: data.getName(idx),\n    autoColor: visualColor,\n    useInsideStyle: !!labelLayout.inside\n  }, {\n    textAlign: labelLayout.textAlign,\n    textVerticalAlign: labelLayout.verticalAlign\n  });\n  labelText.ignore = labelText.normalIgnore = !labelModel.get('show');\n  labelText.hoverIgnore = !labelHoverModel.get('show');\n  labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show');\n  labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color\n\n  labelLine.setStyle({\n    stroke: visualColor\n  });\n  labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());\n  labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();\n};\n\nzrUtil.inherits(FunnelPiece, graphic.Group);\nvar FunnelView = ChartView.extend({\n  type: 'funnel',\n  render: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    data.diff(oldData).add(function (idx) {\n      var funnelPiece = new FunnelPiece(data, idx);\n      data.setItemGraphicEl(idx, funnelPiece);\n      group.add(funnelPiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx);\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      group.remove(piePiece);\n    }).execute();\n    this._data = data;\n  },\n  remove: function () {\n    this.group.removeAll();\n    this._data = null;\n  },\n  dispose: function () {}\n});\nvar _default = FunnelView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/funnel/FunnelView.js\n// module id = Dh2g\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Region = require(\"./Region\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parse and decode geo json\n * @module echarts/coord/geo/parseGeoJson\n */\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var encodeScale = json.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = json.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n    var coordinates = geometry.coordinates;\n    var encodeOffsets = geometry.encodeOffsets;\n\n    for (var c = 0; c < coordinates.length; c++) {\n      var coordinate = coordinates[c];\n\n      if (geometry.type === 'Polygon') {\n        coordinates[c] = decodePolygon(coordinate, encodeOffsets[c], encodeScale);\n      } else if (geometry.type === 'MultiPolygon') {\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          var polygon = coordinate[c2];\n          coordinate[c2] = decodePolygon(polygon, encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  } // Has been decoded\n\n\n  json.UTF8Encoding = false;\n  return json;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64; // ZigZag decoding\n\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1); // Delta deocding\n\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y; // Dequantize\n\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n/**\n * @alias module:echarts/coord/geo/parseGeoJson\n * @param {Object} geoJson\n * @return {module:zrender/container/Group}\n */\n\n\nfunction _default(geoJson) {\n  decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    // Output of mapshaper may have geometry null\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var coordinates = geo.coordinates;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      geometries.push({\n        type: 'polygon',\n        // According to the GeoJSON specification.\n        // First must be exterior, and the rest are all interior(holes).\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties.name, geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/parseGeoJson.js\n// module id = Dn9c\n// module chunks = 0","var curve = require(\"../core/curve\");\n\n/**\n * 涓夋璐濆灏旀洸绾挎弿杈瑰寘鍚垽鏂璡n * @param  {number}  x0\n * @param  {number}  y0\n * @param  {number}  x1\n * @param  {number}  y1\n * @param  {number}  x2\n * @param  {number}  y2\n * @param  {number}  x3\n * @param  {number}  y3\n * @param  {number}  lineWidth\n * @param  {number}  x\n * @param  {number}  y\n * @return {boolean}\n */\nfunction containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n  if (lineWidth === 0) {\n    return false;\n  }\n\n  var _l = lineWidth; // Quick reject\n\n  if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) {\n    return false;\n  }\n\n  var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n  return d <= _l / 2;\n}\n\nexports.containStroke = containStroke;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/cubic.js\n// module id = DoZ5\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar DataZoomView = require(\"./DataZoomView\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\n\nvar roams = require(\"./roams\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar InsideZoomView = DataZoomView.extend({\n  type: 'dataZoom.inside',\n\n  /**\n   * @override\n   */\n  init: function (ecModel, api) {\n    /**\n     * 'throttle' is used in this.dispatchAction, so we save range\n     * to avoid missing some 'pan' info.\n     * @private\n     * @type {Array.<number>}\n     */\n    this._range;\n  },\n\n  /**\n   * @override\n   */\n  render: function (dataZoomModel, ecModel, api, payload) {\n    InsideZoomView.superApply(this, 'render', arguments); // Hance the `throttle` util ensures to preserve command order,\n    // here simply updating range all the time will not cause missing\n    // any of the the roam change.\n\n    this._range = dataZoomModel.getPercentRange(); // Reset controllers.\n\n    zrUtil.each(this.getTargetCoordInfo(), function (coordInfoList, coordSysName) {\n      var allCoordIds = zrUtil.map(coordInfoList, function (coordInfo) {\n        return roams.generateCoordId(coordInfo.model);\n      });\n      zrUtil.each(coordInfoList, function (coordInfo) {\n        var coordModel = coordInfo.model;\n        var dataZoomOption = dataZoomModel.option;\n        roams.register(api, {\n          coordId: roams.generateCoordId(coordModel),\n          allCoordIds: allCoordIds,\n          containsPoint: function (e, x, y) {\n            return coordModel.coordinateSystem.containPoint([x, y]);\n          },\n          dataZoomId: dataZoomModel.id,\n          throttleRate: dataZoomModel.get('throttle', true),\n          panGetRange: bind(this._onPan, this, coordInfo, coordSysName),\n          zoomGetRange: bind(this._onZoom, this, coordInfo, coordSysName),\n          zoomLock: dataZoomOption.zoomLock,\n          disabled: dataZoomOption.disabled,\n          roamControllerOpt: {\n            zoomOnMouseWheel: dataZoomOption.zoomOnMouseWheel,\n            moveOnMouseMove: dataZoomOption.moveOnMouseMove,\n            preventDefaultMouseMove: dataZoomOption.preventDefaultMouseMove\n          }\n        });\n      }, this);\n    }, this);\n  },\n\n  /**\n   * @override\n   */\n  dispose: function () {\n    roams.unregister(this.api, this.dataZoomModel.id);\n    InsideZoomView.superApply(this, 'dispose', arguments);\n    this._range = null;\n  },\n\n  /**\n   * @private\n   */\n  _onPan: function (coordInfo, coordSysName, controller, dx, dy, oldX, oldY, newX, newY) {\n    var lastRange = this._range;\n    var range = lastRange.slice(); // Calculate transform by the first axis.\n\n    var axisModel = coordInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysName]([oldX, oldY], [newX, newY], axisModel, controller, coordInfo);\n    var percentDelta = directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n    sliderMove(percentDelta, range, [0, 100], 'all');\n    this._range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  },\n\n  /**\n   * @private\n   */\n  _onZoom: function (coordInfo, coordSysName, controller, scale, mouseX, mouseY) {\n    var lastRange = this._range;\n    var range = lastRange.slice(); // Calculate transform by the first axis.\n\n    var axisModel = coordInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysName](null, [mouseX, mouseY], axisModel, controller, coordInfo);\n    var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n    scale = Math.max(1 / scale, 0);\n    range[0] = (range[0] - percentPoint) * scale + percentPoint;\n    range[1] = (range[1] - percentPoint) * scale + percentPoint; // Restrict range.\n\n    var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n    this._range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  }\n});\nvar getDirectionInfo = {\n  grid: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var rect = coordInfo.model.coordinateSystem.getRect();\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.dim === 'x') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      // axis.dim === 'y'\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  polar: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var polar = coordInfo.model.coordinateSystem;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var angleExtent = polar.getAngleAxis().getExtent();\n    oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n    newPoint = polar.pointToCoord(newPoint);\n\n    if (axisModel.mainType === 'radiusAxis') {\n      ret.pixel = newPoint[0] - oldPoint[0]; // ret.pixelLength = Math.abs(radiusExtent[1] - radiusExtent[0]);\n      // ret.pixelStart = Math.min(radiusExtent[0], radiusExtent[1]);\n\n      ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n      ret.pixelStart = radiusExtent[0];\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      // 'angleAxis'\n      ret.pixel = newPoint[1] - oldPoint[1]; // ret.pixelLength = Math.abs(angleExtent[1] - angleExtent[0]);\n      // ret.pixelStart = Math.min(angleExtent[0], angleExtent[1]);\n\n      ret.pixelLength = angleExtent[1] - angleExtent[0];\n      ret.pixelStart = angleExtent[0];\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  singleAxis: function (oldPoint, newPoint, axisModel, controller, coordInfo) {\n    var axis = axisModel.axis;\n    var rect = coordInfo.model.coordinateSystem.getRect();\n    var ret = {};\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.orient === 'horizontal') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      // 'vertical'\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  }\n};\nvar _default = InsideZoomView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/InsideZoomView.js\n// module id = DqbA\n// module chunks = 0","var createRenderPlanner = require(\"../helper/createRenderPlanner\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = {\n  seriesType: 'lines',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var isPolyline = seriesModel.get('polyline');\n    var isLarge = seriesModel.pipelineContext.large;\n\n    function progress(params, lineData) {\n      var lineCoords = [];\n\n      if (isLarge) {\n        var points;\n        var segCount = params.end - params.start;\n\n        if (isPolyline) {\n          var totalCoordsCount = 0;\n\n          for (var i = params.start; i < params.end; i++) {\n            totalCoordsCount += seriesModel.getLineCoordsCount(i);\n          }\n\n          points = new Float32Array(segCount + totalCoordsCount * 2);\n        } else {\n          points = new Float32Array(segCount * 4);\n        }\n\n        var offset = 0;\n        var pt = [];\n\n        for (var i = params.start; i < params.end; i++) {\n          var len = seriesModel.getLineCoords(i, lineCoords);\n\n          if (isPolyline) {\n            points[offset++] = len;\n          }\n\n          for (var k = 0; k < len; k++) {\n            pt = coordSys.dataToPoint(lineCoords[k], false, pt);\n            points[offset++] = pt[0];\n            points[offset++] = pt[1];\n          }\n        }\n\n        lineData.setLayout('linesPoints', points);\n      } else {\n        for (var i = params.start; i < params.end; i++) {\n          var itemModel = lineData.getItemModel(i);\n          var len = seriesModel.getLineCoords(i, lineCoords);\n          var pts = [];\n\n          if (isPolyline) {\n            for (var j = 0; j < len; j++) {\n              pts.push(coordSys.dataToPoint(lineCoords[j]));\n            }\n          } else {\n            pts[0] = coordSys.dataToPoint(lineCoords[0]);\n            pts[1] = coordSys.dataToPoint(lineCoords[1]);\n            var curveness = itemModel.get('lineStyle.curveness');\n\n            if (+curveness) {\n              pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];\n            }\n          }\n\n          lineData.setItemLayout(i, pts);\n        }\n      }\n    }\n\n    return {\n      progress: progress\n    };\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/lines/linesLayout.js\n// module id = E3SK\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nexports.default = function (instance, callback) {\n  var speed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n  var once = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n  if (!instance || !callback) throw new Error('instance & callback is required');\n  var called = false;\n  var afterLeaveCallback = function afterLeaveCallback() {\n    if (called) return;\n    called = true;\n    if (callback) {\n      callback.apply(null, arguments);\n    }\n  };\n  if (once) {\n    instance.$once('after-leave', afterLeaveCallback);\n  } else {\n    instance.$on('after-leave', afterLeaveCallback);\n  }\n  setTimeout(function () {\n    afterLeaveCallback();\n  }, speed + 100);\n};\n\n; /**\n   * Bind after-leave event for vue instance. Make sure after-leave is called in any browsers.\n   *\n   * @param {Vue} instance Vue instance.\n   * @param {Function} callback callback of after-leave event\n   * @param {Number} speed the speed of transition, default value is 300ms\n   * @param {Boolean} once weather bind after-leave once. default value is false.\n   */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/after-leave.js\n// module id = EJmT\n// module chunks = 0","var ComponentModel = require(\"../model/Component\");\n\nvar ComponentView = require(\"../view/Component\");\n\nvar _sourceHelper = require(\"../data/helper/sourceHelper\");\n\nvar detectSourceFormat = _sourceHelper.detectSourceFormat;\n\nvar _sourceType = require(\"../data/helper/sourceType\");\n\nvar SERIES_LAYOUT_BY_COLUMN = _sourceType.SERIES_LAYOUT_BY_COLUMN;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * This module is imported by echarts directly.\n *\n * Notice:\n * Always keep this file exists for backward compatibility.\n * Because before 4.1.0, dataset is an optional component,\n * some users may import this module manually.\n */\nComponentModel.extend({\n  type: 'dataset',\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    // 'row', 'column'\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n    // null/'auto': auto detect header, see \"module:echarts/data/helper/sourceHelper\"\n    sourceHeader: null,\n    dimensions: null,\n    source: null\n  },\n  optionUpdated: function () {\n    detectSourceFormat(this);\n  }\n});\nComponentView.extend({\n  type: 'dataset'\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataset.js\n// module id = EaZP\n// module chunks = 0","var Path = require(\"zrender/lib/graphic/Path\");\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar fixClipWithShadow = require(\"zrender/lib/graphic/helper/fixClipWithShadow\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Poly path support NaN point\nvar vec2Min = vec2.min;\nvar vec2Max = vec2.max;\nvar scaleAndAdd = vec2.scaleAndAdd;\nvar v2Copy = vec2.copy; // Temporary variable\n\nvar v = [];\nvar cp0 = [];\nvar cp1 = [];\n\nfunction isPointNull(p) {\n  return isNaN(p[0]) || isNaN(p[1]);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\n  // if (smoothMonotone == null) {\n  //     if (isMono(points, 'x')) {\n  //         return drawMono(ctx, points, start, segLen, allLen,\n  //             dir, smoothMin, smoothMax, smooth, 'x', connectNulls);\n  //     }\n  //     else if (isMono(points, 'y')) {\n  //         return drawMono(ctx, points, start, segLen, allLen,\n  //             dir, smoothMin, smoothMax, smooth, 'y', connectNulls);\n  //     }\n  //     else {\n  //         return drawNonMono.apply(this, arguments);\n  //     }\n  // }\n  // else if (smoothMonotone !== 'none' && isMono(points, smoothMonotone)) {\n  //     return drawMono.apply(this, arguments);\n  // }\n  // else {\n  //     return drawNonMono.apply(this, arguments);\n  // }\n  if (smoothMonotone === 'none' || !smoothMonotone) {\n    return drawNonMono.apply(this, arguments);\n  } else {\n    return drawMono.apply(this, arguments);\n  }\n}\n/**\n * Check if points is in monotone.\n *\n * @param {number[][]} points         Array of points which is in [x, y] form\n * @param {string}     smoothMonotone 'x', 'y', or 'none', stating for which\n *                                    dimension that is checking.\n *                                    If is 'none', `drawNonMono` should be\n *                                    called.\n *                                    If is undefined, either being monotone\n *                                    in 'x' or 'y' will call `drawMono`.\n */\n// function isMono(points, smoothMonotone) {\n//     if (points.length <= 1) {\n//         return true;\n//     }\n//     var dim = smoothMonotone === 'x' ? 0 : 1;\n//     var last = points[0][dim];\n//     var lastDiff = 0;\n//     for (var i = 1; i < points.length; ++i) {\n//         var diff = points[i][dim] - last;\n//         if (!isNaN(diff) && !isNaN(lastDiff)\n//             && diff !== 0 && lastDiff !== 0\n//             && ((diff >= 0) !== (lastDiff >= 0))\n//         ) {\n//             return false;\n//         }\n//         if (!isNaN(diff) && diff !== 0) {\n//             lastDiff = diff;\n//             last = points[i][dim];\n//         }\n//     }\n//     return true;\n// }\n\n/**\n * Draw smoothed line in monotone, in which only vertical or horizontal bezier\n * control points will be used. This should be used when points are monotone\n * either in x or y dimension.\n */\n\n\nfunction drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\n  var prevIdx = 0;\n  var idx = start;\n\n  for (var k = 0; k < segLen; k++) {\n    var p = points[idx];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(p)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\n    } else {\n      if (smooth > 0) {\n        var prevP = points[prevIdx];\n        var dim = smoothMonotone === 'y' ? 1 : 0; // Length of control point to p, either in x or y, but not both\n\n        var ctrlLen = (p[dim] - prevP[dim]) * smooth;\n        v2Copy(cp0, prevP);\n        cp0[dim] = prevP[dim] + ctrlLen;\n        v2Copy(cp1, p);\n        cp1[dim] = p[dim] - ctrlLen;\n        ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\n      } else {\n        ctx.lineTo(p[0], p[1]);\n      }\n    }\n\n    prevIdx = idx;\n    idx += dir;\n  }\n\n  return k;\n}\n/**\n * Draw smoothed line in non-monotone, in may cause undesired curve in extreme\n * situations. This should be used when points are non-monotone neither in x or\n * y dimension.\n */\n\n\nfunction drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\n  var prevIdx = 0;\n  var idx = start;\n\n  for (var k = 0; k < segLen; k++) {\n    var p = points[idx];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(p)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\n      v2Copy(cp0, p);\n    } else {\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextP = points[nextIdx];\n\n        if (connectNulls) {\n          // Find next point not null\n          while (nextP && isPointNull(points[nextIdx])) {\n            nextIdx += dir;\n            nextP = points[nextIdx];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var prevP = points[prevIdx];\n        var nextP = points[nextIdx]; // Last point\n\n        if (!nextP || isPointNull(nextP)) {\n          v2Copy(cp1, p);\n        } else {\n          // If next data is null in not connect case\n          if (isPointNull(nextP) && !connectNulls) {\n            nextP = p;\n          }\n\n          vec2.sub(v, nextP, prevP);\n          var lenPrevSeg;\n          var lenNextSeg;\n\n          if (smoothMonotone === 'x' || smoothMonotone === 'y') {\n            var dim = smoothMonotone === 'x' ? 0 : 1;\n            lenPrevSeg = Math.abs(p[dim] - prevP[dim]);\n            lenNextSeg = Math.abs(p[dim] - nextP[dim]);\n          } else {\n            lenPrevSeg = vec2.dist(p, prevP);\n            lenNextSeg = vec2.dist(p, nextP);\n          } // Use ratio of seg length\n\n\n          ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n          scaleAndAdd(cp1, p, v, -smooth * (1 - ratioNextSeg));\n        } // Smooth constraint\n\n\n        vec2Min(cp0, cp0, smoothMax);\n        vec2Max(cp0, cp0, smoothMin);\n        vec2Min(cp1, cp1, smoothMax);\n        vec2Max(cp1, cp1, smoothMin);\n        ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]); // cp0 of next segment\n\n        scaleAndAdd(cp0, p, v, smooth * ratioNextSeg);\n      } else {\n        ctx.lineTo(p[0], p[1]);\n      }\n    }\n\n    prevIdx = idx;\n    idx += dir;\n  }\n\n  return k;\n}\n\nfunction getBoundingBox(points, smoothConstraint) {\n  var ptMin = [Infinity, Infinity];\n  var ptMax = [-Infinity, -Infinity];\n\n  if (smoothConstraint) {\n    for (var i = 0; i < points.length; i++) {\n      var pt = points[i];\n\n      if (pt[0] < ptMin[0]) {\n        ptMin[0] = pt[0];\n      }\n\n      if (pt[1] < ptMin[1]) {\n        ptMin[1] = pt[1];\n      }\n\n      if (pt[0] > ptMax[0]) {\n        ptMax[0] = pt[0];\n      }\n\n      if (pt[1] > ptMax[1]) {\n        ptMax[1] = pt[1];\n      }\n    }\n  }\n\n  return {\n    min: smoothConstraint ? ptMin : ptMax,\n    max: smoothConstraint ? ptMax : ptMin\n  };\n}\n\nvar Polyline = Path.extend({\n  type: 'ec-polyline',\n  shape: {\n    points: [],\n    smooth: 0,\n    smoothConstraint: true,\n    smoothMonotone: null,\n    connectNulls: false\n  },\n  style: {\n    fill: null,\n    stroke: '#000'\n  },\n  brush: fixClipWithShadow(Path.prototype.brush),\n  buildPath: function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length;\n    var result = getBoundingBox(points, shape.smoothConstraint);\n\n    if (shape.connectNulls) {\n      // Must remove first and last null values avoid draw error in polygon\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  }\n});\nvar Polygon = Path.extend({\n  type: 'ec-polygon',\n  shape: {\n    points: [],\n    // Offset between stacked base points and points\n    stackedOnPoints: [],\n    smooth: 0,\n    stackedOnSmooth: 0,\n    smoothConstraint: true,\n    smoothMonotone: null,\n    connectNulls: false\n  },\n  brush: fixClipWithShadow(Path.prototype.brush),\n  buildPath: function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length;\n    var smoothMonotone = shape.smoothMonotone;\n    var bbox = getBoundingBox(points, shape.smoothConstraint);\n    var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint);\n\n    if (shape.connectNulls) {\n      // Must remove first and last null values avoid draw error in polygon\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  }\n});\nexports.Polyline = Polyline;\nexports.Polygon = Polygon;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/line/poly.js\n// module id = Er0q\n// module chunks = 0","/**\n * 绾挎鍖呭惈鍒ゆ柇\n * @param  {number}  x0\n * @param  {number}  y0\n * @param  {number}  x1\n * @param  {number}  y1\n * @param  {number}  lineWidth\n * @param  {number}  x\n * @param  {number}  y\n * @return {boolean}\n */\nfunction containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n  if (lineWidth === 0) {\n    return false;\n  }\n\n  var _l = lineWidth;\n  var _a = 0;\n  var _b = x0; // Quick reject\n\n  if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) {\n    return false;\n  }\n\n  if (x0 !== x1) {\n    _a = (y0 - y1) / (x0 - x1);\n    _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n  } else {\n    return Math.abs(x - x0) <= _l / 2;\n  }\n\n  var tmp = _a * x - y + _b;\n\n  var _s = tmp * tmp / (_a * _a + 1);\n\n  return _s <= _l / 2 * _l / 2;\n}\n\nexports.containStroke = containStroke;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/line.js\n// module id = EvF4\n// module chunks = 0","module.exports = require('./_hide');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_redefine.js\n// module id = EyUJ\n// module chunks = 0","var numberUtil = require(\"../util/number\");\n\nvar formatUtil = require(\"../util/format\");\n\nvar Scale = require(\"./Scale\");\n\nvar helper = require(\"./helper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Interval scale\n * @module echarts/scale/Interval\n */\nvar roundNumber = numberUtil.round;\n/**\n * @alias module:echarts/coord/scale/Interval\n * @constructor\n */\n\nvar IntervalScale = Scale.extend({\n  type: 'interval',\n  _interval: 0,\n  _intervalPrecision: 2,\n  setExtent: function (start, end) {\n    var thisExtent = this._extent; //start,end may be a Number like '25',so...\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  },\n  unionExtent: function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]); // unionExtent may called by it's sub classes\n\n    IntervalScale.prototype.setExtent.call(this, extent[0], extent[1]);\n  },\n\n  /**\n   * Get interval\n   */\n  getInterval: function () {\n    return this._interval;\n  },\n\n  /**\n   * Set interval\n   */\n  setInterval: function (interval) {\n    this._interval = interval; // Dropped auto calculated niceExtent and use user setted extent\n    // We assume user wan't to set both interval, min, max to get a better result\n\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  },\n\n  /**\n   * @return {Array.<number>}\n   */\n  getTicks: function () {\n    return helper.intervalScaleGetTicks(this._interval, this._extent, this._niceExtent, this._intervalPrecision);\n  },\n\n  /**\n   * @param {number} data\n   * @param {Object} [opt]\n   * @param {number|string} [opt.precision] If 'auto', use nice presision.\n   * @param {boolean} [opt.pad] returns 1.50 but not 1.5 if precision is 2.\n   * @return {string}\n   */\n  getLabel: function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data) || 0;\n    } else if (precision === 'auto') {\n      // Should be more precise then tick.\n      precision = this._intervalPrecision;\n    } // (1) If `precision` is set, 12.005 should be display as '12.00500'.\n    // (2) Use roundNumber (toFixed) to avoid scientific notation like '3.5e-7'.\n\n\n    data = roundNumber(data, precision, true);\n    return formatUtil.addCommas(data);\n  },\n\n  /**\n   * Update interval and extent of intervals for nice ticks\n   *\n   * @param {number} [splitNumber = 5] Desired number of ticks\n   * @param {number} [minInterval]\n   * @param {number} [maxInterval]\n   */\n  niceTicks: function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    } // User may set axis min 0 and data are all negative\n    // FIXME If it needs to reverse ?\n\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  },\n\n  /**\n   * Nice extent.\n   * @param {Object} opt\n   * @param {number} [opt.splitNumber = 5] Given approx tick number\n   * @param {boolean} [opt.fixMin=false]\n   * @param {boolean} [opt.fixMax=false]\n   * @param {boolean} [opt.minInterval]\n   * @param {boolean} [opt.maxInterval]\n   */\n  niceExtent: function (opt) {\n    var extent = this._extent; // If extent start and end are same, expand them\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        // Expand extent\n        var expandSize = extent[0]; // In the fowllowing case\n        //      Axis has been fixed max 100\n        //      Plus data are all 100 and axis extent are [100, 100].\n        // Extend to the both side will cause expanded max is larger than fixed max.\n        // So only expand to the smaller side.\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0]; // If there are no data and extent are [Infinity, -Infinity]\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); // var extent = this._extent;\n\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  }\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nIntervalScale.create = function () {\n  return new IntervalScale();\n};\n\nvar _default = IntervalScale;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/scale/Interval.js\n// module id = F93s\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var IS_WRAP = type & $export.W;\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE];\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n  var key, own, out;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    if (own && has(exports, key)) continue;\n    // export native or passed\n    out = own ? target[key] : source[key];\n    // prevent global pollution for namespaces\n    exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n    // bind timers to global for call from export context\n    : IS_BIND && own ? ctx(out, global)\n    // wrap global constructors for prevent change them in library\n    : IS_WRAP && target[key] == out ? (function (C) {\n      var F = function (a, b, c) {\n        if (this instanceof C) {\n          switch (arguments.length) {\n            case 0: return new C();\n            case 1: return new C(a);\n            case 2: return new C(a, b);\n          } return new C(a, b, c);\n        } return C.apply(this, arguments);\n      };\n      F[PROTOTYPE] = C[PROTOTYPE];\n      return F;\n    // make static versions for prototype methods\n    })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n    if (IS_PROTO) {\n      (exports.virtual || (exports.virtual = {}))[key] = out;\n      // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n      if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n    }\n  }\n};\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_export.js\n// module id = FITv\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/_objectToString.js\n// module id = FKEm\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../util/model\");\n\nvar graphicUtil = require(\"../util/graphic\");\n\nvar layoutUtil = require(\"../util/layout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// -------------\n// Preprocessor\n// -------------\necharts.registerPreprocessor(function (option) {\n  var graphicOption = option.graphic; // Convert\n  // {graphic: [{left: 10, type: 'circle'}, ...]}\n  // or\n  // {graphic: {left: 10, type: 'circle'}}\n  // to\n  // {graphic: [{elements: [{left: 10, type: 'circle'}, ...]}]}\n\n  if (zrUtil.isArray(graphicOption)) {\n    if (!graphicOption[0] || !graphicOption[0].elements) {\n      option.graphic = [{\n        elements: graphicOption\n      }];\n    } else {\n      // Only one graphic instance can be instantiated. (We dont\n      // want that too many views are created in echarts._viewMap)\n      option.graphic = [option.graphic[0]];\n    }\n  } else if (graphicOption && !graphicOption.elements) {\n    option.graphic = [{\n      elements: [graphicOption]\n    }];\n  }\n}); // ------\n// Model\n// ------\n\nvar GraphicModel = echarts.extendComponentModel({\n  type: 'graphic',\n  defaultOption: {\n    // Extra properties for each elements:\n    //\n    // left/right/top/bottom: (like 12, '22%', 'center', default undefined)\n    //      If left/rigth is set, shape.x/shape.cx/position will not be used.\n    //      If top/bottom is set, shape.y/shape.cy/position will not be used.\n    //      This mechanism is useful when you want to position a group/element\n    //      against the right side or the center of this container.\n    //\n    // width/height: (can only be pixel value, default 0)\n    //      Only be used to specify contianer(group) size, if needed. And\n    //      can not be percentage value (like '33%'). See the reason in the\n    //      layout algorithm below.\n    //\n    // bounding: (enum: 'all' (default) | 'raw')\n    //      Specify how to calculate boundingRect when locating.\n    //      'all': Get uioned and transformed boundingRect\n    //          from both itself and its descendants.\n    //          This mode simplies confining a group of elements in the bounding\n    //          of their ancester container (e.g., using 'right: 0').\n    //      'raw': Only use the boundingRect of itself and before transformed.\n    //          This mode is similar to css behavior, which is useful when you\n    //          want an element to be able to overflow its container. (Consider\n    //          a rotated circle needs to be located in a corner.)\n    // Note: elements is always behind its ancestors in this elements array.\n    elements: [],\n    parentId: null\n  },\n\n  /**\n   * Save el options for the sake of the performance (only update modified graphics).\n   * The order is the same as those in option. (ancesters -> descendants)\n   *\n   * @private\n   * @type {Array.<Object>}\n   */\n  _elOptionsToUpdate: null,\n\n  /**\n   * @override\n   */\n  mergeOption: function (option) {\n    // Prevent default merge to elements\n    var elements = this.option.elements;\n    this.option.elements = null;\n    GraphicModel.superApply(this, 'mergeOption', arguments);\n    this.option.elements = elements;\n  },\n\n  /**\n   * @override\n   */\n  optionUpdated: function (newOption, isInit) {\n    var thisOption = this.option;\n    var newList = (isInit ? thisOption : newOption).elements;\n    var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n    var flattenedList = [];\n\n    this._flatten(newList, flattenedList);\n\n    var mappingResult = modelUtil.mappingToExists(existList, flattenedList);\n    modelUtil.makeIdAndName(mappingResult); // Clear elOptionsToUpdate\n\n    var elOptionsToUpdate = this._elOptionsToUpdate = [];\n    zrUtil.each(mappingResult, function (resultItem, index) {\n      var newElOption = resultItem.option;\n\n      if (!newElOption) {\n        return;\n      }\n\n      elOptionsToUpdate.push(newElOption);\n      setKeyInfoToNewElOption(resultItem, newElOption);\n      mergeNewElOptionToExist(existList, index, newElOption);\n      setLayoutInfoToExist(existList[index], newElOption);\n    }, this); // Clean\n\n    for (var i = existList.length - 1; i >= 0; i--) {\n      if (existList[i] == null) {\n        existList.splice(i, 1);\n      } else {\n        // $action should be volatile, otherwise option gotten from\n        // `getOption` will contain unexpected $action.\n        delete existList[i].$action;\n      }\n    }\n  },\n\n  /**\n   * Convert\n   * [{\n   *  type: 'group',\n   *  id: 'xx',\n   *  children: [{type: 'circle'}, {type: 'polygon'}]\n   * }]\n   * to\n   * [\n   *  {type: 'group', id: 'xx'},\n   *  {type: 'circle', parentId: 'xx'},\n   *  {type: 'polygon', parentId: 'xx'}\n   * ]\n   *\n   * @private\n   * @param {Array.<Object>} optionList option list\n   * @param {Array.<Object>} result result of flatten\n   * @param {Object} parentOption parent option\n   */\n  _flatten: function (optionList, result, parentOption) {\n    zrUtil.each(optionList, function (option) {\n      if (!option) {\n        return;\n      }\n\n      if (parentOption) {\n        option.parentOption = parentOption;\n      }\n\n      result.push(option);\n      var children = option.children;\n\n      if (option.type === 'group' && children) {\n        this._flatten(children, result, option);\n      } // Deleting for JSON output, and for not affecting group creation.\n\n\n      delete option.children;\n    }, this);\n  },\n  // FIXME\n  // Pass to view using payload? setOption has a payload?\n  useElOptionsToUpdate: function () {\n    var els = this._elOptionsToUpdate; // Clear to avoid render duplicately when zooming.\n\n    this._elOptionsToUpdate = null;\n    return els;\n  }\n}); // -----\n// View\n// -----\n\necharts.extendComponentView({\n  type: 'graphic',\n\n  /**\n   * @override\n   */\n  init: function (ecModel, api) {\n    /**\n     * @private\n     * @type {module:zrender/core/util.HashMap}\n     */\n    this._elMap = zrUtil.createHashMap();\n    /**\n     * @private\n     * @type {module:echarts/graphic/GraphicModel}\n     */\n\n    this._lastGraphicModel;\n  },\n\n  /**\n   * @override\n   */\n  render: function (graphicModel, ecModel, api) {\n    // Having leveraged between use cases and algorithm complexity, a very\n    // simple layout mechanism is used:\n    // The size(width/height) can be determined by itself or its parent (not\n    // implemented yet), but can not by its children. (Top-down travel)\n    // The location(x/y) can be determined by the bounding rect of itself\n    // (can including its descendants or not) and the size of its parent.\n    // (Bottom-up travel)\n    // When `chart.clear()` or `chart.setOption({...}, true)` with the same id,\n    // view will be reused.\n    if (graphicModel !== this._lastGraphicModel) {\n      this._clear();\n    }\n\n    this._lastGraphicModel = graphicModel;\n\n    this._updateElements(graphicModel, api);\n\n    this._relocate(graphicModel, api);\n  },\n\n  /**\n   * Update graphic elements.\n   *\n   * @private\n   * @param {Object} graphicModel graphic model\n   * @param {module:echarts/ExtensionAPI} api extension API\n   */\n  _updateElements: function (graphicModel, api) {\n    var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n    if (!elOptionsToUpdate) {\n      return;\n    }\n\n    var elMap = this._elMap;\n    var rootGroup = this.group; // Top-down tranverse to assign graphic settings to each elements.\n\n    zrUtil.each(elOptionsToUpdate, function (elOption) {\n      var $action = elOption.$action;\n      var id = elOption.id;\n      var existEl = elMap.get(id);\n      var parentId = elOption.parentId;\n      var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n\n      if (elOption.type === 'text') {\n        var elOptionStyle = elOption.style; // In top/bottom mode, textVerticalAlign should not be used, which cause\n        // inaccurately locating.\n\n        if (elOption.hv && elOption.hv[1]) {\n          elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = null;\n        } // Compatible with previous setting: both support fill and textFill,\n        // stroke and textStroke.\n\n\n        !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\n        !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\n      } // Remove unnecessary props to avoid potential problems.\n\n\n      var elOptionCleaned = getCleanedElOption(elOption); // For simple, do not support parent change, otherwise reorder is needed.\n\n      if (!$action || $action === 'merge') {\n        existEl ? existEl.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'replace') {\n        removeEl(existEl, elMap);\n        createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'remove') {\n        removeEl(existEl, elMap);\n      }\n\n      var el = elMap.get(id);\n\n      if (el) {\n        el.__ecGraphicWidth = elOption.width;\n        el.__ecGraphicHeight = elOption.height;\n      }\n    });\n  },\n\n  /**\n   * Locate graphic elements.\n   *\n   * @private\n   * @param {Object} graphicModel graphic model\n   * @param {module:echarts/ExtensionAPI} api extension API\n   */\n  _relocate: function (graphicModel, api) {\n    var elOptions = graphicModel.option.elements;\n    var rootGroup = this.group;\n    var elMap = this._elMap; // Bottom-up tranvese all elements (consider ec resize) to locate elements.\n\n    for (var i = elOptions.length - 1; i >= 0; i--) {\n      var elOption = elOptions[i];\n      var el = elMap.get(elOption.id);\n\n      if (!el) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var containerInfo = parentEl === rootGroup ? {\n        width: api.getWidth(),\n        height: api.getHeight()\n      } : {\n        // Like 'position:absolut' in css, default 0.\n        width: parentEl.__ecGraphicWidth || 0,\n        height: parentEl.__ecGraphicHeight || 0\n      };\n      layoutUtil.positionElement(el, elOption, containerInfo, null, {\n        hv: elOption.hv,\n        boundingMode: elOption.bounding\n      });\n    }\n  },\n\n  /**\n   * Clear all elements.\n   *\n   * @private\n   */\n  _clear: function () {\n    var elMap = this._elMap;\n    elMap.each(function (el) {\n      removeEl(el, elMap);\n    });\n    this._elMap = zrUtil.createHashMap();\n  },\n\n  /**\n   * @override\n   */\n  dispose: function () {\n    this._clear();\n  }\n});\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n  var graphicType = elOption.type;\n  var Clz = graphicUtil[graphicType.charAt(0).toUpperCase() + graphicType.slice(1)];\n  var el = new Clz(elOption);\n  targetElParent.add(el);\n  elMap.set(id, el);\n  el.__ecGraphicId = id;\n}\n\nfunction removeEl(existEl, elMap) {\n  var existElParent = existEl && existEl.parent;\n\n  if (existElParent) {\n    existEl.type === 'group' && existEl.traverse(function (el) {\n      removeEl(el, elMap);\n    });\n    elMap.removeKey(existEl.__ecGraphicId);\n    existElParent.remove(existEl);\n  }\n} // Remove unnecessary props to avoid potential problems.\n\n\nfunction getCleanedElOption(elOption) {\n  elOption = zrUtil.extend({}, elOption);\n  zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n    delete elOption[name];\n  });\n  return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n  var isSet;\n  zrUtil.each(props, function (prop) {\n    obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n  });\n  return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n  var existElOption = resultItem.exist; // Set id and type after id assigned.\n\n  newElOption.id = resultItem.keyInfo.id;\n  !newElOption.type && existElOption && (newElOption.type = existElOption.type); // Set parent id if not specified\n\n  if (newElOption.parentId == null) {\n    var newElParentOption = newElOption.parentOption;\n\n    if (newElParentOption) {\n      newElOption.parentId = newElParentOption.id;\n    } else if (existElOption) {\n      newElOption.parentId = existElOption.parentId;\n    }\n  } // Clear\n\n\n  newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n  // Update existing options, for `getOption` feature.\n  var newElOptCopy = zrUtil.extend({}, newElOption);\n  var existElOption = existList[index];\n  var $action = newElOption.$action || 'merge';\n\n  if ($action === 'merge') {\n    if (existElOption) {\n      // We can ensure that newElOptCopy and existElOption are not\n      // the same object, so `merge` will not change newElOptCopy.\n      zrUtil.merge(existElOption, newElOptCopy, true); // Rigid body, use ignoreSize.\n\n      layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n        ignoreSize: true\n      }); // Will be used in render.\n\n      layoutUtil.copyLayoutParams(newElOption, existElOption);\n    } else {\n      existList[index] = newElOptCopy;\n    }\n  } else if ($action === 'replace') {\n    existList[index] = newElOptCopy;\n  } else if ($action === 'remove') {\n    // null will be cleaned later.\n    existElOption && (existList[index] = null);\n  }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n  if (!existItem) {\n    return;\n  }\n\n  existItem.hv = newElOption.hv = [// Rigid body, dont care `width`.\n  isSetLoc(newElOption, ['left', 'right']), // Rigid body, dont care `height`.\n  isSetLoc(newElOption, ['top', 'bottom'])]; // Give default group size. Otherwise layout error may occur.\n\n  if (existItem.type === 'group') {\n    existItem.width == null && (existItem.width = newElOption.width = 0);\n    existItem.height == null && (existItem.height = newElOption.height = 0);\n  }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/graphic.js\n// module id = FSq9\n// module chunks = 0","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n  var id = +this;\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\nvar listener = function (event) {\n  run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n  setTask = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      invoke(typeof fn == 'function' ? fn : Function(fn), args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clearTask = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (require('./_cof')(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(ctx(run, id, 1));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(ctx(run, id, 1));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  } else if (MessageChannel) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = ctx(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n    defer = function (id) {\n      global.postMessage(id + '', '*');\n    };\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in cel('script')) {\n    defer = function (id) {\n      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run.call(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(ctx(run, id, 1), 0);\n    };\n  }\n}\nmodule.exports = {\n  set: setTask,\n  clear: clearTask\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_task.js\n// module id = FWQk\n// module chunks = 0","var smoothSpline = require(\"./smoothSpline\");\n\nvar smoothBezier = require(\"./smoothBezier\");\n\nfunction buildPath(ctx, shape, closePath) {\n  var points = shape.points;\n  var smooth = shape.smooth;\n\n  if (points && points.length >= 2) {\n    if (smooth && smooth !== 'spline') {\n      var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n      ctx.moveTo(points[0][0], points[0][1]);\n      var len = points.length;\n\n      for (var i = 0; i < (closePath ? len : len - 1); i++) {\n        var cp1 = controlPoints[i * 2];\n        var cp2 = controlPoints[i * 2 + 1];\n        var p = points[(i + 1) % len];\n        ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n      }\n    } else {\n      if (smooth === 'spline') {\n        points = smoothSpline(points, closePath);\n      }\n\n      ctx.moveTo(points[0][0], points[0][1]);\n\n      for (var i = 1, l = points.length; i < l; i++) {\n        ctx.lineTo(points[i][0], points[i][1]);\n      }\n    }\n\n    closePath && ctx.closePath();\n  }\n}\n\nexports.buildPath = buildPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/poly.js\n// module id = FkVt\n// module chunks = 0","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"vue-week-time\",[],t):\"object\"==typeof exports?exports[\"vue-week-time\"]=t():e[\"vue-week-time\"]=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,\"a\",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"/dist/\",t(t.s=1)}([function(e,t,r){\"use strict\";var n=r(9);t.a={name:\"weekTime\",props:{weekTimes:{type:Object,default:function(){}}},data:function(){return{weekdays:[\"涓�\",\"浜孿",\"涓塡",\"鍥沑",\"浜擻",\"鍏璡",\"鏃"],drawing:!1,selecting:!0,startX:-1,startY:-1,preX:-1,preY:-1,currentX:-1,currentY:-1,selected:{1:[],2:[],3:[],4:[],5:[],6:[],7:[]},selectedText:\"\"}},watch:{weekTimes:function(){this.initData()}},created:function(){this.initData()},mounted:function(){this.emitWeekTimes()},methods:{initData:function(){if(this.weekTimes&&this.weekTimes instanceof Object)for(var e=1;e<=7;e++){var t=Array.isArray(this.weekTimes[e]);this.selected[e]=t?[].concat(this.weekTimes[e]):[]}},selectWeekday:function(e){if(24!==this.selected[e].length){for(var t=[],r=0;r<24;r++)t.push(r);this.selected[e]=t}else this.selected[e].splice(0,this.selected[e].length);this.emitWeekTimes()},selectDayPeriod:function(e,t){if(t){for(var r=!0,n=e;n<=t;n++)if(!this.isSelectedDayPeriod(n)){r=!1;break}if(r)for(var i=1;i<=7;i++)for(var s=e;s<=t;s++)this.deleteHour(i,s);else for(var o=1;o<=7;o++)for(var a=e;a<=t;a++)this.selectHour(o,a)}else{if(this.isSelectedDayPeriod(e))for(var c=1;c<=7;c++)this.deleteHour(c,e);else for(var u=1;u<=7;u++)this.selectHour(u,e)}this.emitWeekTimes()},isSelectedDayPeriod:function(e){for(var t=1;t<=7;t++)if(!this.isSelected(t,e))return!1;return!0},isSelected:function(e,t){return this.selected[e].indexOf(t)>-1},selectByMousedown:function(e,t,r){0===r.button&&(this.selecting=!this.isSelected(e,t),this.drawing=!0,this.startX=e,this.startY=t,this.preX=e,this.preY=t)},selectByMouseOver:function(e,t){if(this.drawing){for(var r=e>this.startX?this.startX:e,n=t>this.startY?this.startY:t,i=e>this.startX?e:this.startX,s=t>this.startY?t:this.startY,o=r;o<=i;o++)for(var a=n;a<=s;a++)this.selecting?this.selectHour(o,a):this.deleteHour(o,a);this.checkSelectedValid(e,t)}},checkSelectedValid:function(e,t){for(var r=this,n=[],i=[],s=e>this.startX?this.startX:e,o=t>this.startY?this.startY:t,a=e>this.startX?e:this.startX,c=t>this.startY?t:this.startY,u=s;u<=a;u++)for(var l=o;l<=c;l++)n.push(u+\",\"+l);for(var f=this.preX>this.startX?this.startX:this.preX,h=this.preY>this.startY?this.startY:this.preY,d=this.preX>this.startX?this.preX:this.startX,p=this.preY>this.startY?this.preY:this.startY,v=f;v<=d;v++)for(var m=h;m<=p;m++)i.push(v+\",\"+m);i.forEach(function(e){if(-1===n.indexOf(e)){var t=e.split(\",\");r.selecting?r.deleteHour(+t[0],+t[1]):r.selectHour(+t[0],+t[1])}})},selectByMouseout:function(e,t){this.preX=e,this.preY=t},selectByMouseup:function(e,t){this.drawing&&(this.selecting?this.selectHour(e,t):this.deleteHour(e,t),this.drawing=!1,this.emitWeekTimes())},mouseLeave:function(){this.drawing&&this.emitWeekTimes(),this.drawing=!1},selectHour:function(e,t){this.isSelected(e,t)||this.selected[e].push(t)},deleteHour:function(e,t){var r=this.selected[e].indexOf(t);r>-1&&this.selected[e].splice(r,1)},selectAll:function(){for(var e=[],t=0;t<=23;t++)e.push(t);for(var r=1;r<=7;r++)this.selected[r]=[].concat(e);this.emitWeekTimes()},clear:function(){for(var e=1;e<8;e++)this.selected[e]=[];this.emitWeekTimes()},emitWeekTimes:function(){for(var e=1;e<=7;e++)this.selected[e].sort(function(e,t){return e-t});this.selectedText=this.getWeekTimeString(this.selected),this.$emit(\"change\",this.selected,this.selectedText)},getWeekTimeString:function(e){var t=Object.keys(e),r=t.every(function(t){return 24===e[t].length}),n=t.every(function(t){return 0===e[t].length});if(r)return\"鍏ㄥぉ渚痋";if(n)return\"鍏ㄤ笉閫塡";var i=this.hoursPretreatment(e);return this.weekdayPretreatment(i)},hoursPretreatment:function(e){var t=Object.keys(e),r=[];return t.forEach(function(t){var i=n.a.numberArrayGroup(e[t]),s=[];i.forEach(function(e){if(e.length>1){var t=e[0]+\"~\"+e[e.length-1]+\"鏃禱";s.push(t)}else s.push(e.join(\"\")+\"鏃禱")}),r.push(s.join(\",\"))}),r},weekdayPretreatment:function(e){var t=[],r=[\"鍛ㄤ竴\",\"鍛ㄤ簩\",\"鍛ㄤ笁\",\"鍛ㄥ洓\",\"鍛ㄤ簲\",\"鍛ㄥ叚\",\"鍛ㄦ棩\"];return n.a.getEqualValueIndex(e).forEach(function(i){var s=n.a.numberArrayGroup(i),o=[];s.forEach(function(e){if(e.length>1){var t=r[e[0]]+\"~\"+r[e[e.length-1]];o.push(t)}else o.push(r[e[0]])}),e[i[0]].length>0&&t.push(o.join(\",\")+\": \"+e[i[0]])}),t.join(\"; \")}}}},function(e,t,r){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=r(2);t.default=n.a,\"undefined\"!=typeof window&&window.Vue&&window.Vue.component(\"vue-loading\",n.a)},function(e,t,r){\"use strict\";function n(e){r(3)}var i=r(0),s=r(10),o=r(8),a=n,c=o(i.a,s.a,!1,a,null,null);t.a=c.exports},function(e,t,r){var n=r(4);\"string\"==typeof n&&(n=[[e.i,n,\"\"]]),n.locals&&(e.exports=n.locals);r(6)(\"501fbf90\",n,!0,{})},function(e,t,r){t=e.exports=r(5)(!1),t.push([e.i,\".week-time{display:flex;font-size:13px}.week-time table{border-collapse:collapse}.week-time table td,.week-time table th{border:1px solid #ccc;word-break:keep-all;text-align:center}.week-time table tbody tr{height:36px}.week-time table th{font-weight:400}.week-time table.left{width:56px;flex-grow:0;flex-shrink:0;cursor:pointer}.week-time table.left thead tr{height:28px}.week-time table.left td,.week-time table.left th{border-right:none;min-width:45px}.week-time table.left td:hover,.week-time table.left th:hover{background-color:#f2f2f2}.week-time table.right thead tr{height:28px;cursor:pointer}.week-time table.right thead tr.hour th{width:22px;min-width:19px;white-space:nowrap}.week-time table.right thead tr td:hover,.week-time table.right thead tr th:hover{background-color:#f2f2f2}.week-time .selected{background-color:#3482cb}\",\"\"])},function(e,t){function r(e,t){var r=e[1]||\"\",i=e[3];if(!i)return r;if(t&&\"function\"==typeof btoa){var s=n(i);return[r].concat(i.sources.map(function(e){return\"/*# sourceURL=\"+i.sourceRoot+e+\" */\"})).concat([s]).join(\"\\n\")}return[r].join(\"\\n\")}function n(e){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+\" */\"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?\"@media \"+t[2]+\"{\"+n+\"}\":n}).join(\"\")},t.i=function(e,r){\"string\"==typeof e&&(e=[[null,e,\"\"]]);for(var n={},i=0;i<this.length;i++){var s=this[i][0];\"number\"==typeof s&&(n[s]=!0)}for(i=0;i<e.length;i++){var o=e[i];\"number\"==typeof o[0]&&n[o[0]]||(r&&!o[2]?o[2]=r:r&&(o[2]=\"(\"+o[2]+\") and (\"+r+\")\"),t.push(o))}},t}},function(e,t,r){function n(e){for(var t=0;t<e.length;t++){var r=e[t],n=l[r.id];if(n){n.refs++;for(var i=0;i<n.parts.length;i++)n.parts[i](r.parts[i]);for(;i<r.parts.length;i++)n.parts.push(s(r.parts[i]));n.parts.length>r.parts.length&&(n.parts.length=r.parts.length)}else{for(var o=[],i=0;i<r.parts.length;i++)o.push(s(r.parts[i]));l[r.id]={id:r.id,refs:1,parts:o}}}}function i(){var e=document.createElement(\"style\");return e.type=\"text/css\",f.appendChild(e),e}function s(e){var t,r,n=document.querySelector(\"style[\"+g+'~=\"'+e.id+'\"]');if(n){if(p)return v;n.parentNode.removeChild(n)}if(y){var s=d++;n=h||(h=i()),t=o.bind(null,n,s,!1),r=o.bind(null,n,s,!0)}else n=i(),t=a.bind(null,n),r=function(){n.parentNode.removeChild(n)};return t(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;t(e=n)}else r()}}function o(e,t,r,n){var i=r?\"\":n.css;if(e.styleSheet)e.styleSheet.cssText=k(t,i);else{var s=document.createTextNode(i),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(s,o[t]):e.appendChild(s)}}function a(e,t){var r=t.css,n=t.media,i=t.sourceMap;if(n&&e.setAttribute(\"media\",n),m.ssrId&&e.setAttribute(g,t.id),i&&(r+=\"\\n/*# sourceURL=\"+i.sources[0]+\" */\",r+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+\" */\"),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}var c=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!c)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var u=r(7),l={},f=c&&(document.head||document.getElementsByTagName(\"head\")[0]),h=null,d=0,p=!1,v=function(){},m=null,g=\"data-vue-ssr-id\",y=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,r,i){p=r,m=i||{};var s=u(e,t);return n(s),function(t){for(var r=[],i=0;i<s.length;i++){var o=s[i],a=l[o.id];a.refs--,r.push(a)}t?(s=u(e,t),n(s)):s=[];for(var i=0;i<r.length;i++){var a=r[i];if(0===a.refs){for(var c=0;c<a.parts.length;c++)a.parts[c]();delete l[a.id]}}}};var k=function(){var e=[];return function(t,r){return e[t]=r,e.filter(Boolean).join(\"\\n\")}}()},function(e,t){e.exports=function(e,t){for(var r=[],n={},i=0;i<t.length;i++){var s=t[i],o=s[0],a=s[1],c=s[2],u=s[3],l={id:e+\":\"+i,css:a,media:c,sourceMap:u};n[o]?n[o].parts.push(l):r.push(n[o]={id:o,parts:[l]})}return r}},function(e,t){e.exports=function(e,t,r,n,i,s){var o,a=e=e||{},c=typeof e.default;\"object\"!==c&&\"function\"!==c||(o=e,a=e.default);var u=\"function\"==typeof a?a.options:a;t&&(u.render=t.render,u.staticRenderFns=t.staticRenderFns,u._compiled=!0),r&&(u.functional=!0),i&&(u._scopeId=i);var l;if(s?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),n&&n.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=l):n&&(l=n),l){var f=u.functional,h=f?u.render:u.beforeCreate;f?(u._injectStyles=l,u.render=function(e,t){return l.call(t),h(e,t)}):u.beforeCreate=h?[].concat(h,l):[l]}return{esModule:o,exports:a,options:u}}},function(e,t,r){\"use strict\";t.a={numberArrayGroup:function(e){var t=[],r=void 0,n=void 0;return e.forEach(function(e){if(r===e)return n.push(r),void r++;n=[e],r=e+1,t.push(n)}),t},getEqualValueIndex:function(e){for(var t=[],r=new Array(e.length),n=e.length,i=0;i<n;i++){for(var s=[],o=i;o<n;o++)e[i]!==e[o]||r[o]||(s.push(o),r[o]=!0);s.length>0&&t.push(s)}return t}}},function(e,t,r){\"use strict\";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r(\"div\",{staticClass:\"week-time\"},[r(\"table\",{staticClass:\"left\"},[r(\"thead\",[r(\"tr\",[r(\"th\",{on:{click:e.selectAll}},[e._v(\"鍏ㄩ�塡")])]),e._v(\" \"),r(\"tr\",[r(\"th\",{on:{click:e.clear}},[e._v(\"娓呯┖\")])])]),e._v(\" \"),r(\"tbody\",e._l(e.weekdays,function(t,n){return r(\"tr\",[r(\"td\",{on:{click:function(t){e.selectWeekday(n+1)}}},[e._v(e._s(\"鏄熸湡\"+t))])])}))]),e._v(\" \"),r(\"table\",{staticClass:\"right\"},[r(\"thead\",[r(\"tr\",[r(\"th\",{attrs:{colspan:\"7\"},on:{click:function(t){e.selectDayPeriod(0,6)}}},[e._v(\"鍑屾櫒鏃舵\")]),e._v(\" \"),r(\"th\",{attrs:{colspan:\"4\"},on:{click:function(t){e.selectDayPeriod(7,10)}}},[e._v(\"涓婂崍鏃舵\")]),e._v(\" \"),r(\"th\",{attrs:{colspan:\"4\"},on:{click:function(t){e.selectDayPeriod(11,14)}}},[e._v(\"涓崍鏃舵\")]),e._v(\" \"),r(\"th\",{attrs:{colspan:\"4\"},on:{click:function(t){e.selectDayPeriod(15,18)}}},[e._v(\"涓嬪崍鏃舵\")]),e._v(\" \"),r(\"th\",{attrs:{colspan:\"5\"},on:{click:function(t){e.selectDayPeriod(19,23)}}},[e._v(\"澶滄櫄鏃舵\")])]),e._v(\" \"),r(\"tr\",{staticClass:\"hour\"},e._l(24,function(t){return r(\"th\",{on:{click:function(r){e.selectDayPeriod(t-1)}}},[e._v(e._s(t-1))])}))]),e._v(\" \"),r(\"tbody\",{on:{mouseleave:e.mouseLeave}},e._l(7,function(t){return r(\"tr\",{key:t},e._l(24,function(n){return r(\"td\",{key:n,class:{selected:e.selected[t].indexOf(n-1)>-1},on:{dragstart:function(e){e.stopPropagation(),e.preventDefault()},mousedown:function(r){r.stopPropagation(),e.selectByMousedown(t,n-1,r)},mouseover:function(r){r.stopPropagation(),e.selectByMouseOver(t,n-1)},mouseout:function(r){r.stopPropagation(),e.selectByMouseout(t,n-1)},mouseup:function(r){r.stopPropagation(),e.selectByMouseup(t,n-1)}}})}))}))])])},i=[],s={render:n,staticRenderFns:i};t.a=s}])});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-week-time@1.0.8@vue-week-time/dist/index.min.js\n// module id = Flr9\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nrequire(\"./AxisModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentModel({\n  type: 'polar',\n  dependencies: ['polarAxis', 'angleAxis'],\n\n  /**\n   * @type {module:echarts/coord/polar/Polar}\n   */\n  coordinateSystem: null,\n\n  /**\n   * @param {string} axisType\n   * @return {module:echarts/coord/polar/AxisModel}\n   */\n  findAxisModel: function (axisType) {\n    var foundAxisModel;\n    var ecModel = this.ecModel;\n    ecModel.eachComponent(axisType, function (axisModel) {\n      if (axisModel.getCoordSysModel() === this) {\n        foundAxisModel = axisModel;\n      }\n    }, this);\n    return foundAxisModel;\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '80%'\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/PolarModel.js\n// module id = FsJA\n// module chunks = 0","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n  } return T;\n} : $assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-assign.js\n// module id = FzZd\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\n\nfunction _default(ecModel) {\n  var groupResult = groupSeriesByAxis(ecModel);\n  each(groupResult, function (groupItem) {\n    var seriesModels = groupItem.seriesModels;\n\n    if (!seriesModels.length) {\n      return;\n    }\n\n    calculateBase(groupItem);\n    each(seriesModels, function (seriesModel, idx) {\n      layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n    });\n  });\n}\n/**\n * Group series by axis.\n */\n\n\nfunction groupSeriesByAxis(ecModel) {\n  var result = [];\n  var axisList = [];\n  ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n    var baseAxis = seriesModel.getBaseAxis();\n    var idx = zrUtil.indexOf(axisList, baseAxis);\n\n    if (idx < 0) {\n      idx = axisList.length;\n      axisList[idx] = baseAxis;\n      result[idx] = {\n        axis: baseAxis,\n        seriesModels: []\n      };\n    }\n\n    result[idx].seriesModels.push(seriesModel);\n  });\n  return result;\n}\n/**\n * Calculate offset and box width for each series.\n */\n\n\nfunction calculateBase(groupItem) {\n  var extent;\n  var baseAxis = groupItem.axis;\n  var seriesModels = groupItem.seriesModels;\n  var seriesCount = seriesModels.length;\n  var boxWidthList = groupItem.boxWidthList = [];\n  var boxOffsetList = groupItem.boxOffsetList = [];\n  var boundList = [];\n  var bandWidth;\n\n  if (baseAxis.type === 'category') {\n    bandWidth = baseAxis.getBandWidth();\n  } else {\n    var maxDataCount = 0;\n    each(seriesModels, function (seriesModel) {\n      maxDataCount = Math.max(maxDataCount, seriesModel.getData().count());\n    });\n    extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount;\n  }\n\n  each(seriesModels, function (seriesModel) {\n    var boxWidthBound = seriesModel.get('boxWidth');\n\n    if (!zrUtil.isArray(boxWidthBound)) {\n      boxWidthBound = [boxWidthBound, boxWidthBound];\n    }\n\n    boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n  });\n  var availableWidth = bandWidth * 0.8 - 2;\n  var boxGap = availableWidth / seriesCount * 0.3;\n  var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n  var base = boxWidth / 2 - availableWidth / 2;\n  each(seriesModels, function (seriesModel, idx) {\n    boxOffsetList.push(base);\n    base += boxGap + boxWidth;\n    boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n  });\n}\n/**\n * Calculate points location for each series.\n */\n\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n  var coordSys = seriesModel.coordinateSystem;\n  var data = seriesModel.getData();\n  var halfWidth = boxWidth / 2;\n  var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n  var vDimIdx = 1 - cDimIdx;\n  var coordDims = ['x', 'y'];\n  var cDim = data.mapDimension(coordDims[cDimIdx]);\n  var vDims = data.mapDimension(coordDims[vDimIdx], true);\n\n  if (cDim == null || vDims.length < 5) {\n    return;\n  }\n\n  for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n    var axisDimVal = data.get(cDim, dataIndex);\n    var median = getPoint(axisDimVal, vDims[2], dataIndex);\n    var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n    var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n    var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n    var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n    var ends = [];\n    addBodyEnd(ends, end2, 0);\n    addBodyEnd(ends, end4, 1);\n    ends.push(end1, end2, end5, end4);\n    layEndLine(ends, end1);\n    layEndLine(ends, end5);\n    layEndLine(ends, median);\n    data.setItemLayout(dataIndex, {\n      initBaseline: median[vDimIdx],\n      ends: ends\n    });\n  }\n\n  function getPoint(axisDimVal, dimIdx, dataIndex) {\n    var val = data.get(dimIdx, dataIndex);\n    var p = [];\n    p[cDimIdx] = axisDimVal;\n    p[vDimIdx] = val;\n    var point;\n\n    if (isNaN(axisDimVal) || isNaN(val)) {\n      point = [NaN, NaN];\n    } else {\n      point = coordSys.dataToPoint(p);\n      point[cDimIdx] += offset;\n    }\n\n    return point;\n  }\n\n  function addBodyEnd(ends, point, start) {\n    var point1 = point.slice();\n    var point2 = point.slice();\n    point1[cDimIdx] += halfWidth;\n    point2[cDimIdx] -= halfWidth;\n    start ? ends.push(point1, point2) : ends.push(point2, point1);\n  }\n\n  function layEndLine(ends, endCenter) {\n    var from = endCenter.slice();\n    var to = endCenter.slice();\n    from[cDimIdx] -= halfWidth;\n    to[cDimIdx] += halfWidth;\n    ends.push(from, to);\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot/boxplotLayout.js\n// module id = G+Sm\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/_root.js\n// module id = G7OI\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 101);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 101:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _input = __webpack_require__(102);\n\nvar _input2 = _interopRequireDefault(_input);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_input2.default.install = function (Vue) {\n  Vue.component(_input2.default.name, _input2.default);\n};\n\nexports.default = _input2.default;\n\n/***/ }),\n\n/***/ 102:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue__ = __webpack_require__(103);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_278ba46e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_vue__ = __webpack_require__(105);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_278ba46e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 103:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _migrating = __webpack_require__(8);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _calcTextareaHeight = __webpack_require__(104);\n\nvar _calcTextareaHeight2 = _interopRequireDefault(_calcTextareaHeight);\n\nvar _merge = __webpack_require__(9);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _shared = __webpack_require__(23);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElInput',\n\n  componentName: 'ElInput',\n\n  mixins: [_emitter2.default, _migrating2.default],\n\n  inheritAttrs: false,\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  data: function data() {\n    return {\n      currentValue: this.value === undefined || this.value === null ? '' : this.value,\n      textareaCalcStyle: {},\n      hovering: false,\n      focused: false,\n      isOnComposition: false,\n      valueBeforeComposition: null\n    };\n  },\n\n\n  props: {\n    value: [String, Number],\n    size: String,\n    resize: String,\n    form: String,\n    disabled: Boolean,\n    readonly: Boolean,\n    type: {\n      type: String,\n      default: 'text'\n    },\n    autosize: {\n      type: [Boolean, Object],\n      default: false\n    },\n    autoComplete: {\n      type: String,\n      default: 'off'\n    },\n    validateEvent: {\n      type: Boolean,\n      default: true\n    },\n    suffixIcon: String,\n    prefixIcon: String,\n    label: String,\n    clearable: {\n      type: Boolean,\n      default: false\n    },\n    tabindex: String\n  },\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    validateState: function validateState() {\n      return this.elFormItem ? this.elFormItem.validateState : '';\n    },\n    needStatusIcon: function needStatusIcon() {\n      return this.elForm ? this.elForm.statusIcon : false;\n    },\n    validateIcon: function validateIcon() {\n      return {\n        validating: 'el-icon-loading',\n        success: 'el-icon-circle-check',\n        error: 'el-icon-circle-close'\n      }[this.validateState];\n    },\n    textareaStyle: function textareaStyle() {\n      return (0, _merge2.default)({}, this.textareaCalcStyle, { resize: this.resize });\n    },\n    inputSize: function inputSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    inputDisabled: function inputDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    },\n    showClear: function showClear() {\n      return this.clearable && !this.disabled && !this.readonly && this.currentValue !== '' && (this.focused || this.hovering);\n    }\n  },\n\n  watch: {\n    value: function value(val, oldValue) {\n      this.setCurrentValue(val);\n    }\n  },\n\n  methods: {\n    focus: function focus() {\n      (this.$refs.input || this.$refs.textarea).focus();\n    },\n    blur: function blur() {\n      (this.$refs.input || this.$refs.textarea).blur();\n    },\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'icon': 'icon is removed, use suffix-icon / prefix-icon instead.',\n          'on-icon-click': 'on-icon-click is removed.'\n        },\n        events: {\n          'click': 'click is removed.'\n        }\n      };\n    },\n    handleBlur: function handleBlur(event) {\n      this.focused = false;\n      this.$emit('blur', event);\n      if (this.validateEvent) {\n        this.dispatch('ElFormItem', 'el.form.blur', [this.currentValue]);\n      }\n    },\n    select: function select() {\n      (this.$refs.input || this.$refs.textarea).select();\n    },\n    resizeTextarea: function resizeTextarea() {\n      if (this.$isServer) return;\n      var autosize = this.autosize,\n          type = this.type;\n\n      if (type !== 'textarea') return;\n      if (!autosize) {\n        this.textareaCalcStyle = {\n          minHeight: (0, _calcTextareaHeight2.default)(this.$refs.textarea).minHeight\n        };\n        return;\n      }\n      var minRows = autosize.minRows;\n      var maxRows = autosize.maxRows;\n\n      this.textareaCalcStyle = (0, _calcTextareaHeight2.default)(this.$refs.textarea, minRows, maxRows);\n    },\n    handleFocus: function handleFocus(event) {\n      this.focused = true;\n      this.$emit('focus', event);\n    },\n    handleComposition: function handleComposition(event) {\n      if (event.type === 'compositionend') {\n        this.isOnComposition = false;\n        this.currentValue = this.valueBeforeComposition;\n        this.valueBeforeComposition = null;\n        this.handleInput(event);\n      } else {\n        var text = event.target.value;\n        var lastCharacter = text[text.length - 1] || '';\n        this.isOnComposition = !(0, _shared.isKorean)(lastCharacter);\n        if (this.isOnComposition && event.type === 'compositionstart') {\n          this.valueBeforeComposition = text;\n        }\n      }\n    },\n    handleInput: function handleInput(event) {\n      var value = event.target.value;\n      this.setCurrentValue(value);\n      if (this.isOnComposition) return;\n      this.$emit('input', value);\n    },\n    handleChange: function handleChange(event) {\n      this.$emit('change', event.target.value);\n    },\n    setCurrentValue: function setCurrentValue(value) {\n      if (this.isOnComposition && value === this.valueBeforeComposition) return;\n      this.currentValue = value;\n      if (this.isOnComposition) return;\n      this.$nextTick(this.resizeTextarea);\n      if (this.validateEvent && this.currentValue === this.value) {\n        this.dispatch('ElFormItem', 'el.form.change', [value]);\n      }\n    },\n    calcIconOffset: function calcIconOffset(place) {\n      var elList = [].slice.call(this.$el.querySelectorAll('.el-input__' + place) || []);\n      if (!elList.length) return;\n      var el = null;\n      for (var i = 0; i < elList.length; i++) {\n        if (elList[i].parentNode === this.$el) {\n          el = elList[i];\n          break;\n        }\n      }\n      if (!el) return;\n      var pendantMap = {\n        suffix: 'append',\n        prefix: 'prepend'\n      };\n\n      var pendant = pendantMap[place];\n      if (this.$slots[pendant]) {\n        el.style.transform = 'translateX(' + (place === 'suffix' ? '-' : '') + this.$el.querySelector('.el-input-group__' + pendant).offsetWidth + 'px)';\n      } else {\n        el.removeAttribute('style');\n      }\n    },\n    updateIconOffset: function updateIconOffset() {\n      this.calcIconOffset('prefix');\n      this.calcIconOffset('suffix');\n    },\n    clear: function clear() {\n      this.$emit('input', '');\n      this.$emit('change', '');\n      this.$emit('clear');\n      this.setCurrentValue('');\n      this.focus();\n    }\n  },\n\n  created: function created() {\n    this.$on('inputSelect', this.select);\n  },\n  mounted: function mounted() {\n    this.resizeTextarea();\n    this.updateIconOffset();\n  },\n  updated: function updated() {\n    this.$nextTick(this.updateIconOffset);\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 104:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = calcTextareaHeight;\nvar hiddenTextarea = void 0;\n\nvar HIDDEN_STYLE = '\\n  height:0 !important;\\n  visibility:hidden !important;\\n  overflow:hidden !important;\\n  position:absolute !important;\\n  z-index:-1000 !important;\\n  top:0 !important;\\n  right:0 !important\\n';\n\nvar CONTEXT_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];\n\nfunction calculateNodeStyling(targetElement) {\n  var style = window.getComputedStyle(targetElement);\n\n  var boxSizing = style.getPropertyValue('box-sizing');\n\n  var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n\n  var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n\n  var contextStyle = CONTEXT_STYLE.map(function (name) {\n    return name + ':' + style.getPropertyValue(name);\n  }).join(';');\n\n  return { contextStyle: contextStyle, paddingSize: paddingSize, borderSize: borderSize, boxSizing: boxSizing };\n}\n\nfunction calcTextareaHeight(targetElement) {\n  var minRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  var maxRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  if (!hiddenTextarea) {\n    hiddenTextarea = document.createElement('textarea');\n    document.body.appendChild(hiddenTextarea);\n  }\n\n  var _calculateNodeStyling = calculateNodeStyling(targetElement),\n      paddingSize = _calculateNodeStyling.paddingSize,\n      borderSize = _calculateNodeStyling.borderSize,\n      boxSizing = _calculateNodeStyling.boxSizing,\n      contextStyle = _calculateNodeStyling.contextStyle;\n\n  hiddenTextarea.setAttribute('style', contextStyle + ';' + HIDDEN_STYLE);\n  hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n  var height = hiddenTextarea.scrollHeight;\n  var result = {};\n\n  if (boxSizing === 'border-box') {\n    height = height + borderSize;\n  } else if (boxSizing === 'content-box') {\n    height = height - paddingSize;\n  }\n\n  hiddenTextarea.value = '';\n  var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n  if (minRows !== null) {\n    var minHeight = singleRowHeight * minRows;\n    if (boxSizing === 'border-box') {\n      minHeight = minHeight + paddingSize + borderSize;\n    }\n    height = Math.max(minHeight, height);\n    result.minHeight = minHeight + 'px';\n  }\n  if (maxRows !== null) {\n    var maxHeight = singleRowHeight * maxRows;\n    if (boxSizing === 'border-box') {\n      maxHeight = maxHeight + paddingSize + borderSize;\n    }\n    height = Math.min(maxHeight, height);\n  }\n  result.height = height + 'px';\n  hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n  hiddenTextarea = null;\n  return result;\n};\n\n/***/ }),\n\n/***/ 105:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[\n  _vm.type === 'textarea' ? 'el-textarea' : 'el-input',\n  _vm.inputSize ? 'el-input--' + _vm.inputSize : '',\n  {\n    'is-disabled': _vm.inputDisabled,\n    'el-input-group': _vm.$slots.prepend || _vm.$slots.append,\n    'el-input-group--append': _vm.$slots.append,\n    'el-input-group--prepend': _vm.$slots.prepend,\n    'el-input--prefix': _vm.$slots.prefix || _vm.prefixIcon,\n    'el-input--suffix': _vm.$slots.suffix || _vm.suffixIcon || _vm.clearable\n  }\n  ],on:{\"mouseenter\":function($event){_vm.hovering = true},\"mouseleave\":function($event){_vm.hovering = false}}},[(_vm.type !== 'textarea')?[(_vm.$slots.prepend)?_c('div',{staticClass:\"el-input-group__prepend\"},[_vm._t(\"prepend\")],2):_vm._e(),(_vm.type !== 'textarea')?_c('input',_vm._b({ref:\"input\",staticClass:\"el-input__inner\",attrs:{\"tabindex\":_vm.tabindex,\"type\":_vm.type,\"disabled\":_vm.inputDisabled,\"readonly\":_vm.readonly,\"autocomplete\":_vm.autoComplete,\"aria-label\":_vm.label},domProps:{\"value\":_vm.currentValue},on:{\"compositionstart\":_vm.handleComposition,\"compositionupdate\":_vm.handleComposition,\"compositionend\":_vm.handleComposition,\"input\":_vm.handleInput,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur,\"change\":_vm.handleChange}},'input',_vm.$attrs,false)):_vm._e(),(_vm.$slots.prefix || _vm.prefixIcon)?_c('span',{staticClass:\"el-input__prefix\"},[_vm._t(\"prefix\"),(_vm.prefixIcon)?_c('i',{staticClass:\"el-input__icon\",class:_vm.prefixIcon}):_vm._e()],2):_vm._e(),(_vm.$slots.suffix || _vm.suffixIcon || _vm.showClear || _vm.validateState && _vm.needStatusIcon)?_c('span',{staticClass:\"el-input__suffix\"},[_c('span',{staticClass:\"el-input__suffix-inner\"},[(!_vm.showClear)?[_vm._t(\"suffix\"),(_vm.suffixIcon)?_c('i',{staticClass:\"el-input__icon\",class:_vm.suffixIcon}):_vm._e()]:_c('i',{staticClass:\"el-input__icon el-icon-circle-close el-input__clear\",on:{\"click\":_vm.clear}})],2),(_vm.validateState)?_c('i',{staticClass:\"el-input__icon\",class:['el-input__validateIcon', _vm.validateIcon]}):_vm._e()]):_vm._e(),(_vm.$slots.append)?_c('div',{staticClass:\"el-input-group__append\"},[_vm._t(\"append\")],2):_vm._e()]:_c('textarea',_vm._b({ref:\"textarea\",staticClass:\"el-textarea__inner\",style:(_vm.textareaStyle),attrs:{\"tabindex\":_vm.tabindex,\"disabled\":_vm.inputDisabled,\"readonly\":_vm.readonly,\"aria-label\":_vm.label},domProps:{\"value\":_vm.currentValue},on:{\"compositionstart\":_vm.handleComposition,\"compositionupdate\":_vm.handleComposition,\"compositionend\":_vm.handleComposition,\"input\":_vm.handleInput,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur,\"change\":_vm.handleChange}},'textarea',_vm.$attrs,false))],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/shared\");\n\n/***/ }),\n\n/***/ 8:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/migrating\");\n\n/***/ }),\n\n/***/ 9:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/merge\");\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/input.js\n// module id = G8IQ\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DEFAULT_SMOOTH = 0.3;\nvar ParallelView = ChartView.extend({\n  type: 'parallel',\n  init: function () {\n    /**\n     * @type {module:zrender/container/Group}\n     * @private\n     */\n    this._dataGroup = new graphic.Group();\n    this.group.add(this._dataGroup);\n    /**\n     * @type {module:echarts/data/List}\n     */\n\n    this._data;\n    /**\n     * @type {boolean}\n     */\n\n    this._initialized;\n  },\n\n  /**\n   * @override\n   */\n  render: function (seriesModel, ecModel, api, payload) {\n    var dataGroup = this._dataGroup;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n    data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n    function add(newDataIndex) {\n      var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function update(newDataIndex, oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n      data.setItemGraphicEl(newDataIndex, line);\n      var animationModel = payload && payload.animation === false ? null : seriesModel;\n      graphic.updateProps(line, {\n        shape: {\n          points: points\n        }\n      }, animationModel, newDataIndex);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function remove(oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      dataGroup.remove(line);\n    } // First create\n\n\n    if (!this._initialized) {\n      this._initialized = true;\n      var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n        // Callback will be invoked immediately if there is no animation\n        setTimeout(function () {\n          dataGroup.removeClipPath();\n        });\n      });\n      dataGroup.setClipPath(clipPath);\n    }\n\n    this._data = data;\n  },\n  incrementalPrepareRender: function (seriesModel, ecModel, api) {\n    this._initialized = true;\n    this._data = null;\n\n    this._dataGroup.removeAll();\n  },\n  incrementalRender: function (taskParams, seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n\n    for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n      var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n      line.incremental = true;\n      updateElCommon(line, data, dataIndex, seriesScope);\n    }\n  },\n  dispose: function () {},\n  // _renderForProgressive: function (seriesModel) {\n  //     var dataGroup = this._dataGroup;\n  //     var data = seriesModel.getData();\n  //     var oldData = this._data;\n  //     var coordSys = seriesModel.coordinateSystem;\n  //     var dimensions = coordSys.dimensions;\n  //     var option = seriesModel.option;\n  //     var progressive = option.progressive;\n  //     var smooth = option.smooth ? SMOOTH : null;\n  //     // In progressive animation is disabled, so use simple data diff,\n  //     // which effects performance less.\n  //     // (Typically performance for data with length 7000+ like:\n  //     // simpleDiff: 60ms, addEl: 184ms,\n  //     // in RMBP 2.4GHz intel i7, OSX 10.9 chrome 50.0.2661.102 (64-bit))\n  //     if (simpleDiff(oldData, data, dimensions)) {\n  //         dataGroup.removeAll();\n  //         data.each(function (dataIndex) {\n  //             addEl(data, dataGroup, dataIndex, dimensions, coordSys);\n  //         });\n  //     }\n  //     updateElCommon(data, progressive, smooth);\n  //     // Consider switch between progressive and not.\n  //     data.__plProgressive = true;\n  //     this._data = data;\n  // },\n\n  /**\n   * @override\n   */\n  remove: function () {\n    this._dataGroup && this._dataGroup.removeAll();\n    this._data = null;\n  }\n});\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n  var parallelModel = coordSys.model;\n  var rect = coordSys.getRect();\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    }\n  });\n  var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n  rectEl.setShape(dim, 0);\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width,\n      height: rect.height\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n  var points = [];\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimName = dimensions[i];\n    var value = data.get(data.mapDimension(dimName), dataIndex);\n\n    if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n      points.push(coordSys.dataToPoint(value, dimName));\n    }\n  }\n\n  return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n  var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n  var line = new graphic.Polyline({\n    shape: {\n      points: points\n    },\n    silent: true,\n    z2: 10\n  });\n  dataGroup.add(line);\n  data.setItemGraphicEl(dataIndex, line);\n  return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n  var smooth = seriesModel.get('smooth', true);\n  smooth === true && (smooth = DEFAULT_SMOOTH);\n  return {\n    lineStyle: seriesModel.getModel('lineStyle').getLineStyle(),\n    smooth: smooth != null ? smooth : DEFAULT_SMOOTH\n  };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n  var lineStyle = seriesScope.lineStyle;\n\n  if (data.hasItemOption) {\n    var lineStyleModel = data.getItemModel(dataIndex).getModel('lineStyle');\n    lineStyle = lineStyleModel.getLineStyle();\n  }\n\n  el.useStyle(lineStyle);\n  var elStyle = el.style;\n  elStyle.fill = null; // lineStyle.color have been set to itemVisual in module:echarts/visual/seriesColor.\n\n  elStyle.stroke = data.getItemVisual(dataIndex, 'color'); // lineStyle.opacity have been set to itemVisual in parallelVisual.\n\n  elStyle.opacity = data.getItemVisual(dataIndex, 'opacity');\n  seriesScope.smooth && (el.shape.smooth = seriesScope.smooth);\n} // function simpleDiff(oldData, newData, dimensions) {\n//     var oldLen;\n//     if (!oldData\n//         || !oldData.__plProgressive\n//         || (oldLen = oldData.count()) !== newData.count()\n//     ) {\n//         return true;\n//     }\n//     var dimLen = dimensions.length;\n//     for (var i = 0; i < oldLen; i++) {\n//         for (var j = 0; j < dimLen; j++) {\n//             if (oldData.get(dimensions[j], i) !== newData.get(dimensions[j], i)) {\n//                 return true;\n//             }\n//         }\n//     }\n//     return false;\n// }\n// FIXME\n// 鍏敤鏂规硶?\n\n\nfunction isEmptyValue(val, axisType) {\n  return axisType === 'category' ? val == null : val == null || isNaN(val); // axisType === 'value'\n}\n\nvar _default = ParallelView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/parallel/ParallelView.js\n// module id = GCbS\n// module chunks = 0","/**\n * @module zrender/core/util\n */\n// 鐢ㄤ簬澶勭悊merge鏃舵棤娉曢亶鍘咲ate绛夊璞$殑闂\nvar BUILTIN_OBJECT = {\n  '[object Function]': 1,\n  '[object RegExp]': 1,\n  '[object Date]': 1,\n  '[object Error]': 1,\n  '[object CanvasGradient]': 1,\n  '[object CanvasPattern]': 1,\n  // For node-canvas\n  '[object Image]': 1,\n  '[object Canvas]': 1\n};\nvar TYPED_ARRAY = {\n  '[object Int8Array]': 1,\n  '[object Uint8Array]': 1,\n  '[object Uint8ClampedArray]': 1,\n  '[object Int16Array]': 1,\n  '[object Uint16Array]': 1,\n  '[object Int32Array]': 1,\n  '[object Uint32Array]': 1,\n  '[object Float32Array]': 1,\n  '[object Float64Array]': 1\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar nativeReduce = arrayProto.reduce; // Avoid assign to an exported variable, for transforming to cjs.\n\nvar methods = {};\n\nfunction $override(name, fn) {\n  // Clear ctx instance for different environment\n  if (name === 'createCanvas') {\n    _ctx = null;\n  }\n\n  methods[name] = fn;\n}\n/**\n * Those data types can be cloned:\n *     Plain object, Array, TypedArray, number, string, null, undefined.\n * Those data types will be assgined using the orginal data:\n *     BUILTIN_OBJECT\n * Instance of user defined class will be cloned to a plain object, without\n * properties in prototype.\n * Other data types is not supported (not sure what will happen).\n *\n * Caution: do not support clone Date, for performance consideration.\n * (There might be a large number of date in `series.data`).\n * So date should not be modified in and out of echarts.\n *\n * @param {*} source\n * @return {*} new\n */\n\n\nfunction clone(source) {\n  if (source == null || typeof source != 'object') {\n    return source;\n  }\n\n  var result = source;\n  var typeStr = objToString.call(source);\n\n  if (typeStr === '[object Array]') {\n    if (!isPrimitive(source)) {\n      result = [];\n\n      for (var i = 0, len = source.length; i < len; i++) {\n        result[i] = clone(source[i]);\n      }\n    }\n  } else if (TYPED_ARRAY[typeStr]) {\n    if (!isPrimitive(source)) {\n      var Ctor = source.constructor;\n\n      if (source.constructor.from) {\n        result = Ctor.from(source);\n      } else {\n        result = new Ctor(source.length);\n\n        for (var i = 0, len = source.length; i < len; i++) {\n          result[i] = clone(source[i]);\n        }\n      }\n    }\n  } else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n    result = {};\n\n    for (var key in source) {\n      if (source.hasOwnProperty(key)) {\n        result[key] = clone(source[key]);\n      }\n    }\n  }\n\n  return result;\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {*} target\n * @param {*} source\n * @param {boolean} [overwrite=false]\n */\n\n\nfunction merge(target, source, overwrite) {\n  // We should escapse that source is string\n  // and enter for ... in ...\n  if (!isObject(source) || !isObject(target)) {\n    return overwrite ? clone(source) : target;\n  }\n\n  for (var key in source) {\n    if (source.hasOwnProperty(key)) {\n      var targetProp = target[key];\n      var sourceProp = source[key];\n\n      if (isObject(sourceProp) && isObject(targetProp) && !isArray(sourceProp) && !isArray(targetProp) && !isDom(sourceProp) && !isDom(targetProp) && !isBuiltInObject(sourceProp) && !isBuiltInObject(targetProp) && !isPrimitive(sourceProp) && !isPrimitive(targetProp)) {\n        // 濡傛灉闇�瑕侀�掑綊瑕嗙洊锛屽氨閫掑綊璋冪敤merge\n        merge(targetProp, sourceProp, overwrite);\n      } else if (overwrite || !(key in target)) {\n        // 鍚﹀垯鍙鐞唎verwrite涓簍rue锛屾垨鑰呭湪鐩爣瀵硅薄涓病鏈夋灞炴�х殑鎯呭喌\n        // NOTE锛屽湪 target[key] 涓嶅瓨鍦ㄧ殑鏃跺�欎篃鏄洿鎺ヨ鐩朶n        target[key] = clone(source[key], true);\n      }\n    }\n  }\n\n  return target;\n}\n/**\n * @param {Array} targetAndSources The first item is target, and the rests are source.\n * @param {boolean} [overwrite=false]\n * @return {*} target\n */\n\n\nfunction mergeAll(targetAndSources, overwrite) {\n  var result = targetAndSources[0];\n\n  for (var i = 1, len = targetAndSources.length; i < len; i++) {\n    result = merge(result, targetAndSources[i], overwrite);\n  }\n\n  return result;\n}\n/**\n * @param {*} target\n * @param {*} source\n * @memberOf module:zrender/core/util\n */\n\n\nfunction extend(target, source) {\n  for (var key in source) {\n    if (source.hasOwnProperty(key)) {\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n/**\n * @param {*} target\n * @param {*} source\n * @param {boolean} [overlay=false]\n * @memberOf module:zrender/core/util\n */\n\n\nfunction defaults(target, source, overlay) {\n  for (var key in source) {\n    if (source.hasOwnProperty(key) && (overlay ? source[key] != null : target[key] == null)) {\n      target[key] = source[key];\n    }\n  }\n\n  return target;\n}\n\nvar createCanvas = function () {\n  return methods.createCanvas();\n};\n\nmethods.createCanvas = function () {\n  return document.createElement('canvas');\n}; // FIXME\n\n\nvar _ctx;\n\nfunction getContext() {\n  if (!_ctx) {\n    // Use util.createCanvas instead of createCanvas\n    // because createCanvas may be overwritten in different environment\n    _ctx = createCanvas().getContext('2d');\n  }\n\n  return _ctx;\n}\n/**\n * 鏌ヨ鏁扮粍涓厓绱犵殑index\n * @memberOf module:zrender/core/util\n */\n\n\nfunction indexOf(array, value) {\n  if (array) {\n    if (array.indexOf) {\n      return array.indexOf(value);\n    }\n\n    for (var i = 0, len = array.length; i < len; i++) {\n      if (array[i] === value) {\n        return i;\n      }\n    }\n  }\n\n  return -1;\n}\n/**\n * 鏋勯�犵被缁ф壙鍏崇郴\n *\n * @memberOf module:zrender/core/util\n * @param {Function} clazz 婧愮被\n * @param {Function} baseClazz 鍩虹被\n */\n\n\nfunction inherits(clazz, baseClazz) {\n  var clazzPrototype = clazz.prototype;\n\n  function F() {}\n\n  F.prototype = baseClazz.prototype;\n  clazz.prototype = new F();\n\n  for (var prop in clazzPrototype) {\n    clazz.prototype[prop] = clazzPrototype[prop];\n  }\n\n  clazz.prototype.constructor = clazz;\n  clazz.superClass = baseClazz;\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {Object|Function} target\n * @param {Object|Function} sorce\n * @param {boolean} overlay\n */\n\n\nfunction mixin(target, source, overlay) {\n  target = 'prototype' in target ? target.prototype : target;\n  source = 'prototype' in source ? source.prototype : source;\n  defaults(target, source, overlay);\n}\n/**\n * Consider typed array.\n * @param {Array|TypedArray} data\n */\n\n\nfunction isArrayLike(data) {\n  if (!data) {\n    return;\n  }\n\n  if (typeof data == 'string') {\n    return false;\n  }\n\n  return typeof data.length == 'number';\n}\n/**\n * 鏁扮粍鎴栧璞¢亶鍘哱n * @memberOf module:zrender/core/util\n * @param {Object|Array} obj\n * @param {Function} cb\n * @param {*} [context]\n */\n\n\nfunction each(obj, cb, context) {\n  if (!(obj && cb)) {\n    return;\n  }\n\n  if (obj.forEach && obj.forEach === nativeForEach) {\n    obj.forEach(cb, context);\n  } else if (obj.length === +obj.length) {\n    for (var i = 0, len = obj.length; i < len; i++) {\n      cb.call(context, obj[i], i, obj);\n    }\n  } else {\n    for (var key in obj) {\n      if (obj.hasOwnProperty(key)) {\n        cb.call(context, obj[key], key, obj);\n      }\n    }\n  }\n}\n/**\n * 鏁扮粍鏄犲皠\n * @memberOf module:zrender/core/util\n * @param {Array} obj\n * @param {Function} cb\n * @param {*} [context]\n * @return {Array}\n */\n\n\nfunction map(obj, cb, context) {\n  if (!(obj && cb)) {\n    return;\n  }\n\n  if (obj.map && obj.map === nativeMap) {\n    return obj.map(cb, context);\n  } else {\n    var result = [];\n\n    for (var i = 0, len = obj.length; i < len; i++) {\n      result.push(cb.call(context, obj[i], i, obj));\n    }\n\n    return result;\n  }\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {Array} obj\n * @param {Function} cb\n * @param {Object} [memo]\n * @param {*} [context]\n * @return {Array}\n */\n\n\nfunction reduce(obj, cb, memo, context) {\n  if (!(obj && cb)) {\n    return;\n  }\n\n  if (obj.reduce && obj.reduce === nativeReduce) {\n    return obj.reduce(cb, memo, context);\n  } else {\n    for (var i = 0, len = obj.length; i < len; i++) {\n      memo = cb.call(context, memo, obj[i], i, obj);\n    }\n\n    return memo;\n  }\n}\n/**\n * 鏁扮粍杩囨护\n * @memberOf module:zrender/core/util\n * @param {Array} obj\n * @param {Function} cb\n * @param {*} [context]\n * @return {Array}\n */\n\n\nfunction filter(obj, cb, context) {\n  if (!(obj && cb)) {\n    return;\n  }\n\n  if (obj.filter && obj.filter === nativeFilter) {\n    return obj.filter(cb, context);\n  } else {\n    var result = [];\n\n    for (var i = 0, len = obj.length; i < len; i++) {\n      if (cb.call(context, obj[i], i, obj)) {\n        result.push(obj[i]);\n      }\n    }\n\n    return result;\n  }\n}\n/**\n * 鏁扮粍椤规煡鎵綷n * @memberOf module:zrender/core/util\n * @param {Array} obj\n * @param {Function} cb\n * @param {*} [context]\n * @return {*}\n */\n\n\nfunction find(obj, cb, context) {\n  if (!(obj && cb)) {\n    return;\n  }\n\n  for (var i = 0, len = obj.length; i < len; i++) {\n    if (cb.call(context, obj[i], i, obj)) {\n      return obj[i];\n    }\n  }\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {Function} func\n * @param {*} context\n * @return {Function}\n */\n\n\nfunction bind(func, context) {\n  var args = nativeSlice.call(arguments, 2);\n  return function () {\n    return func.apply(context, args.concat(nativeSlice.call(arguments)));\n  };\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {Function} func\n * @return {Function}\n */\n\n\nfunction curry(func) {\n  var args = nativeSlice.call(arguments, 1);\n  return function () {\n    return func.apply(this, args.concat(nativeSlice.call(arguments)));\n  };\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {*} value\n * @return {boolean}\n */\n\n\nfunction isArray(value) {\n  return objToString.call(value) === '[object Array]';\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {*} value\n * @return {boolean}\n */\n\n\nfunction isFunction(value) {\n  return typeof value === 'function';\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {*} value\n * @return {boolean}\n */\n\n\nfunction isString(value) {\n  return objToString.call(value) === '[object String]';\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {*} value\n * @return {boolean}\n */\n\n\nfunction isObject(value) {\n  // Avoid a V8 JIT bug in Chrome 19-20.\n  // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n  var type = typeof value;\n  return type === 'function' || !!value && type == 'object';\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {*} value\n * @return {boolean}\n */\n\n\nfunction isBuiltInObject(value) {\n  return !!BUILTIN_OBJECT[objToString.call(value)];\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {*} value\n * @return {boolean}\n */\n\n\nfunction isTypedArray(value) {\n  return !!TYPED_ARRAY[objToString.call(value)];\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {*} value\n * @return {boolean}\n */\n\n\nfunction isDom(value) {\n  return typeof value === 'object' && typeof value.nodeType === 'number' && typeof value.ownerDocument === 'object';\n}\n/**\n * Whether is exactly NaN. Notice isNaN('a') returns true.\n * @param {*} value\n * @return {boolean}\n */\n\n\nfunction eqNaN(value) {\n  return value !== value;\n}\n/**\n * If value1 is not null, then return value1, otherwise judget rest of values.\n * Low performance.\n * @memberOf module:zrender/core/util\n * @return {*} Final value\n */\n\n\nfunction retrieve(values) {\n  for (var i = 0, len = arguments.length; i < len; i++) {\n    if (arguments[i] != null) {\n      return arguments[i];\n    }\n  }\n}\n\nfunction retrieve2(value0, value1) {\n  return value0 != null ? value0 : value1;\n}\n\nfunction retrieve3(value0, value1, value2) {\n  return value0 != null ? value0 : value1 != null ? value1 : value2;\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {Array} arr\n * @param {number} startIndex\n * @param {number} endIndex\n * @return {Array}\n */\n\n\nfunction slice() {\n  return Function.call.apply(nativeSlice, arguments);\n}\n/**\n * Normalize css liked array configuration\n * e.g.\n *  3 => [3, 3, 3, 3]\n *  [4, 2] => [4, 2, 4, 2]\n *  [4, 3, 2] => [4, 3, 2, 3]\n * @param {number|Array.<number>} val\n * @return {Array.<number>}\n */\n\n\nfunction normalizeCssArray(val) {\n  if (typeof val === 'number') {\n    return [val, val, val, val];\n  }\n\n  var len = val.length;\n\n  if (len === 2) {\n    // vertical | horizontal\n    return [val[0], val[1], val[0], val[1]];\n  } else if (len === 3) {\n    // top | horizontal | bottom\n    return [val[0], val[1], val[2], val[1]];\n  }\n\n  return val;\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {boolean} condition\n * @param {string} message\n */\n\n\nfunction assert(condition, message) {\n  if (!condition) {\n    throw new Error(message);\n  }\n}\n/**\n * @memberOf module:zrender/core/util\n * @param {string} str string to be trimed\n * @return {string} trimed string\n */\n\n\nfunction trim(str) {\n  if (str == null) {\n    return null;\n  } else if (typeof str.trim === 'function') {\n    return str.trim();\n  } else {\n    return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n  }\n}\n\nvar primitiveKey = '__ec_primitive__';\n/**\n * Set an object as primitive to be ignored traversing children in clone or merge\n */\n\nfunction setAsPrimitive(obj) {\n  obj[primitiveKey] = true;\n}\n\nfunction isPrimitive(obj) {\n  return obj[primitiveKey];\n}\n/**\n * @constructor\n * @param {Object} obj Only apply `ownProperty`.\n */\n\n\nfunction HashMap(obj) {\n  var isArr = isArray(obj);\n  var thisMap = this;\n  obj instanceof HashMap ? obj.each(visit) : obj && each(obj, visit);\n\n  function visit(value, key) {\n    isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n  }\n} // Add prefix to avoid conflict with Object.prototype.\n\n\nHashMap.prototype = {\n  constructor: HashMap,\n  // Do not provide `has` method to avoid defining what is `has`.\n  // (We usually treat `null` and `undefined` as the same, different\n  // from ES6 Map).\n  get: function (key) {\n    return this.hasOwnProperty(key) ? this[key] : null;\n  },\n  set: function (key, value) {\n    // Comparing with invocation chaining, `return value` is more commonly\n    // used in this case: `var someVal = map.set('a', genVal());`\n    return this[key] = value;\n  },\n  // Although util.each can be performed on this hashMap directly, user\n  // should not use the exposed keys, who are prefixed.\n  each: function (cb, context) {\n    context !== void 0 && (cb = bind(cb, context));\n\n    for (var key in this) {\n      this.hasOwnProperty(key) && cb(this[key], key);\n    }\n  },\n  // Do not use this method if performance sensitive.\n  removeKey: function (key) {\n    delete this[key];\n  }\n};\n\nfunction createHashMap(obj) {\n  return new HashMap(obj);\n}\n\nfunction concatArray(a, b) {\n  var newArray = new a.constructor(a.length + b.length);\n\n  for (var i = 0; i < a.length; i++) {\n    newArray[i] = a[i];\n  }\n\n  var offset = a.length;\n\n  for (i = 0; i < b.length; i++) {\n    newArray[i + offset] = b[i];\n  }\n\n  return newArray;\n}\n\nfunction noop() {}\n\nexports.$override = $override;\nexports.clone = clone;\nexports.merge = merge;\nexports.mergeAll = mergeAll;\nexports.extend = extend;\nexports.defaults = defaults;\nexports.createCanvas = createCanvas;\nexports.getContext = getContext;\nexports.indexOf = indexOf;\nexports.inherits = inherits;\nexports.mixin = mixin;\nexports.isArrayLike = isArrayLike;\nexports.each = each;\nexports.map = map;\nexports.reduce = reduce;\nexports.filter = filter;\nexports.find = find;\nexports.bind = bind;\nexports.curry = curry;\nexports.isArray = isArray;\nexports.isFunction = isFunction;\nexports.isString = isString;\nexports.isObject = isObject;\nexports.isBuiltInObject = isBuiltInObject;\nexports.isTypedArray = isTypedArray;\nexports.isDom = isDom;\nexports.eqNaN = eqNaN;\nexports.retrieve = retrieve;\nexports.retrieve2 = retrieve2;\nexports.retrieve3 = retrieve3;\nexports.slice = slice;\nexports.normalizeCssArray = normalizeCssArray;\nexports.assert = assert;\nexports.trim = trim;\nexports.setAsPrimitive = setAsPrimitive;\nexports.isPrimitive = isPrimitive;\nexports.createHashMap = createHashMap;\nexports.concatArray = concatArray;\nexports.noop = noop;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/util.js\n// module id = GKMz\n// module chunks = 0","var Path = require(\"../graphic/Path\");\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar transformPath = require(\"./transformPath\");\n\n// command chars\nvar cc = ['m', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z', 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'];\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\n\nvar vMag = function (v) {\n  return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n};\n\nvar vRatio = function (u, v) {\n  return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n};\n\nvar vAngle = function (u, v) {\n  return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));\n};\n\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n  var psi = psiDeg * (PI / 180.0);\n  var xp = mathCos(psi) * (x1 - x2) / 2.0 + mathSin(psi) * (y1 - y2) / 2.0;\n  var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0 + mathCos(psi) * (y1 - y2) / 2.0;\n  var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\n  if (lambda > 1) {\n    rx *= mathSqrt(lambda);\n    ry *= mathSqrt(lambda);\n  }\n\n  var f = (fa === fs ? -1 : 1) * mathSqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))) || 0;\n  var cxp = f * rx * yp / ry;\n  var cyp = f * -ry * xp / rx;\n  var cx = (x1 + x2) / 2.0 + mathCos(psi) * cxp - mathSin(psi) * cyp;\n  var cy = (y1 + y2) / 2.0 + mathSin(psi) * cxp + mathCos(psi) * cyp;\n  var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n  var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n  var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n  var dTheta = vAngle(u, v);\n\n  if (vRatio(u, v) <= -1) {\n    dTheta = PI;\n  }\n\n  if (vRatio(u, v) >= 1) {\n    dTheta = 0;\n  }\n\n  if (fs === 0 && dTheta > 0) {\n    dTheta = dTheta - 2 * PI;\n  }\n\n  if (fs === 1 && dTheta < 0) {\n    dTheta = dTheta + 2 * PI;\n  }\n\n  path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\n\nfunction createPathProxyFromString(data) {\n  if (!data) {\n    return [];\n  } // command string\n\n\n  var cs = data.replace(/-/g, ' -').replace(/  /g, ' ').replace(/ /g, ',').replace(/,,/g, ',');\n  var n; // create pipes so that we can split the data\n\n  for (n = 0; n < cc.length; n++) {\n    cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n  } // create array\n\n\n  var arr = cs.split('|'); // init context point\n\n  var cpx = 0;\n  var cpy = 0;\n  var path = new PathProxy();\n  var CMD = PathProxy.CMD;\n  var prevCmd;\n\n  for (n = 1; n < arr.length; n++) {\n    var str = arr[n];\n    var c = str.charAt(0);\n    var off = 0;\n    var p = str.slice(1).replace(/e,-/g, 'e-').split(',');\n    var cmd;\n\n    if (p.length > 0 && p[0] === '') {\n      p.shift();\n    }\n\n    for (var i = 0; i < p.length; i++) {\n      p[i] = parseFloat(p[i]);\n    }\n\n    while (off < p.length && !isNaN(p[off])) {\n      if (isNaN(p[0])) {\n        break;\n      }\n\n      var ctlPtx;\n      var ctlPty;\n      var rx;\n      var ry;\n      var psi;\n      var fa;\n      var fs;\n      var x1 = cpx;\n      var y1 = cpy; // convert l, H, h, V, and v to L\n\n      switch (c) {\n        case 'l':\n          cpx += p[off++];\n          cpy += p[off++];\n          cmd = CMD.L;\n          path.addData(cmd, cpx, cpy);\n          break;\n\n        case 'L':\n          cpx = p[off++];\n          cpy = p[off++];\n          cmd = CMD.L;\n          path.addData(cmd, cpx, cpy);\n          break;\n\n        case 'm':\n          cpx += p[off++];\n          cpy += p[off++];\n          cmd = CMD.M;\n          path.addData(cmd, cpx, cpy);\n          c = 'l';\n          break;\n\n        case 'M':\n          cpx = p[off++];\n          cpy = p[off++];\n          cmd = CMD.M;\n          path.addData(cmd, cpx, cpy);\n          c = 'L';\n          break;\n\n        case 'h':\n          cpx += p[off++];\n          cmd = CMD.L;\n          path.addData(cmd, cpx, cpy);\n          break;\n\n        case 'H':\n          cpx = p[off++];\n          cmd = CMD.L;\n          path.addData(cmd, cpx, cpy);\n          break;\n\n        case 'v':\n          cpy += p[off++];\n          cmd = CMD.L;\n          path.addData(cmd, cpx, cpy);\n          break;\n\n        case 'V':\n          cpy = p[off++];\n          cmd = CMD.L;\n          path.addData(cmd, cpx, cpy);\n          break;\n\n        case 'C':\n          cmd = CMD.C;\n          path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n          cpx = p[off - 2];\n          cpy = p[off - 1];\n          break;\n\n        case 'c':\n          cmd = CMD.C;\n          path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n          cpx += p[off - 2];\n          cpy += p[off - 1];\n          break;\n\n        case 'S':\n          ctlPtx = cpx;\n          ctlPty = cpy;\n          var len = path.len();\n          var pathData = path.data;\n\n          if (prevCmd === CMD.C) {\n            ctlPtx += cpx - pathData[len - 4];\n            ctlPty += cpy - pathData[len - 3];\n          }\n\n          cmd = CMD.C;\n          x1 = p[off++];\n          y1 = p[off++];\n          cpx = p[off++];\n          cpy = p[off++];\n          path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n          break;\n\n        case 's':\n          ctlPtx = cpx;\n          ctlPty = cpy;\n          var len = path.len();\n          var pathData = path.data;\n\n          if (prevCmd === CMD.C) {\n            ctlPtx += cpx - pathData[len - 4];\n            ctlPty += cpy - pathData[len - 3];\n          }\n\n          cmd = CMD.C;\n          x1 = cpx + p[off++];\n          y1 = cpy + p[off++];\n          cpx += p[off++];\n          cpy += p[off++];\n          path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n          break;\n\n        case 'Q':\n          x1 = p[off++];\n          y1 = p[off++];\n          cpx = p[off++];\n          cpy = p[off++];\n          cmd = CMD.Q;\n          path.addData(cmd, x1, y1, cpx, cpy);\n          break;\n\n        case 'q':\n          x1 = p[off++] + cpx;\n          y1 = p[off++] + cpy;\n          cpx += p[off++];\n          cpy += p[off++];\n          cmd = CMD.Q;\n          path.addData(cmd, x1, y1, cpx, cpy);\n          break;\n\n        case 'T':\n          ctlPtx = cpx;\n          ctlPty = cpy;\n          var len = path.len();\n          var pathData = path.data;\n\n          if (prevCmd === CMD.Q) {\n            ctlPtx += cpx - pathData[len - 4];\n            ctlPty += cpy - pathData[len - 3];\n          }\n\n          cpx = p[off++];\n          cpy = p[off++];\n          cmd = CMD.Q;\n          path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n          break;\n\n        case 't':\n          ctlPtx = cpx;\n          ctlPty = cpy;\n          var len = path.len();\n          var pathData = path.data;\n\n          if (prevCmd === CMD.Q) {\n            ctlPtx += cpx - pathData[len - 4];\n            ctlPty += cpy - pathData[len - 3];\n          }\n\n          cpx += p[off++];\n          cpy += p[off++];\n          cmd = CMD.Q;\n          path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n          break;\n\n        case 'A':\n          rx = p[off++];\n          ry = p[off++];\n          psi = p[off++];\n          fa = p[off++];\n          fs = p[off++];\n          x1 = cpx, y1 = cpy;\n          cpx = p[off++];\n          cpy = p[off++];\n          cmd = CMD.A;\n          processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n          break;\n\n        case 'a':\n          rx = p[off++];\n          ry = p[off++];\n          psi = p[off++];\n          fa = p[off++];\n          fs = p[off++];\n          x1 = cpx, y1 = cpy;\n          cpx += p[off++];\n          cpy += p[off++];\n          cmd = CMD.A;\n          processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n          break;\n      }\n    }\n\n    if (c === 'z' || c === 'Z') {\n      cmd = CMD.Z;\n      path.addData(cmd);\n    }\n\n    prevCmd = cmd;\n  }\n\n  path.toStatic();\n  return path;\n} // TODO Optimize double memory cost problem\n\n\nfunction createPathOptions(str, opts) {\n  var pathProxy = createPathProxyFromString(str);\n  opts = opts || {};\n\n  opts.buildPath = function (path) {\n    if (path.setData) {\n      path.setData(pathProxy.data); // Svg and vml renderer don't have context\n\n      var ctx = path.getContext();\n\n      if (ctx) {\n        path.rebuildPath(ctx);\n      }\n    } else {\n      var ctx = path;\n      pathProxy.rebuildPath(ctx);\n    }\n  };\n\n  opts.applyTransform = function (m) {\n    transformPath(pathProxy, m);\n    this.dirty(true);\n  };\n\n  return opts;\n}\n/**\n * Create a Path object from path string data\n * http://www.w3.org/TR/SVG/paths.html#PathData\n * @param  {Object} opts Other options\n */\n\n\nfunction createFromString(str, opts) {\n  return new Path(createPathOptions(str, opts));\n}\n/**\n * Create a Path class from path string data\n * @param  {string} str\n * @param  {Object} opts Other options\n */\n\n\nfunction extendFromString(str, opts) {\n  return Path.extend(createPathOptions(str, opts));\n}\n/**\n * Merge multiple paths\n */\n// TODO Apply transform\n// TODO stroke dash\n// TODO Optimize double memory cost problem\n\n\nfunction mergePath(pathEls, opts) {\n  var pathList = [];\n  var len = pathEls.length;\n\n  for (var i = 0; i < len; i++) {\n    var pathEl = pathEls[i];\n\n    if (!pathEl.path) {\n      pathEl.createPathProxy();\n    }\n\n    if (pathEl.__dirtyPath) {\n      pathEl.buildPath(pathEl.path, pathEl.shape, true);\n    }\n\n    pathList.push(pathEl.path);\n  }\n\n  var pathBundle = new Path(opts); // Need path proxy.\n\n  pathBundle.createPathProxy();\n\n  pathBundle.buildPath = function (path) {\n    path.appendPath(pathList); // Svg and vml renderer don't have context\n\n    var ctx = path.getContext();\n\n    if (ctx) {\n      path.rebuildPath(ctx);\n    }\n  };\n\n  return pathBundle;\n}\n\nexports.createFromString = createFromString;\nexports.extendFromString = extendFromString;\nexports.mergePath = mergePath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/tool/path.js\n// module id = GQ8k\n// module chunks = 0","module.exports = function (exec) {\n  try {\n    return { e: false, v: exec() };\n  } catch (e) {\n    return { e: true, v: e };\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_perform.js\n// module id = Gf6R\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file  The file used to draw sankey view\n * @author  Deqing Li(annong035@gmail.com)\n */\nvar SankeyShape = graphic.extendShape({\n  shape: {\n    x1: 0,\n    y1: 0,\n    x2: 0,\n    y2: 0,\n    cpx1: 0,\n    cpy1: 0,\n    cpx2: 0,\n    cpy2: 0,\n    extent: 0\n  },\n  buildPath: function (ctx, shape) {\n    var halfExtent = shape.extent / 2;\n    ctx.moveTo(shape.x1, shape.y1 - halfExtent);\n    ctx.bezierCurveTo(shape.cpx1, shape.cpy1 - halfExtent, shape.cpx2, shape.cpy2 - halfExtent, shape.x2, shape.y2 - halfExtent);\n    ctx.lineTo(shape.x2, shape.y2 + halfExtent);\n    ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + halfExtent, shape.cpx1, shape.cpy1 + halfExtent, shape.x1, shape.y1 + halfExtent);\n    ctx.closePath();\n  }\n});\n\nvar _default = echarts.extendChartView({\n  type: 'sankey',\n\n  /**\n   * @private\n   * @type {module:echarts/chart/sankey/SankeySeries}\n   */\n  _model: null,\n  render: function (seriesModel, ecModel, api) {\n    var graph = seriesModel.getGraph();\n    var group = this.group;\n    var layoutInfo = seriesModel.layoutInfo; // view width\n\n    var width = layoutInfo.width; // view height\n\n    var height = layoutInfo.height;\n    var nodeData = seriesModel.getData();\n    var edgeData = seriesModel.getData('edge');\n    this._model = seriesModel;\n    group.removeAll();\n    group.attr('position', [layoutInfo.x, layoutInfo.y]); // generate a bezire Curve for each edge\n\n    graph.eachEdge(function (edge) {\n      var curve = new SankeyShape();\n      curve.dataIndex = edge.dataIndex;\n      curve.seriesIndex = seriesModel.seriesIndex;\n      curve.dataType = 'edge';\n      var lineStyleModel = edge.getModel('lineStyle');\n      var curvature = lineStyleModel.get('curveness');\n      var n1Layout = edge.node1.getLayout();\n      var node1Model = edge.node1.getModel();\n      var dragX1 = node1Model.get('localX');\n      var dragY1 = node1Model.get('localY');\n      var n2Layout = edge.node2.getLayout();\n      var node2Model = edge.node2.getModel();\n      var dragX2 = node2Model.get('localX');\n      var dragY2 = node2Model.get('localY');\n      var edgeLayout = edge.getLayout();\n      curve.shape.extent = Math.max(1, edgeLayout.dy);\n      var x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n      var y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy + edgeLayout.dy / 2;\n      var x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n      var y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty + edgeLayout.dy / 2;\n      var cpx1 = x1 * (1 - curvature) + x2 * curvature;\n      var cpy1 = y1;\n      var cpx2 = x1 * curvature + x2 * (1 - curvature);\n      var cpy2 = y2;\n      curve.setShape({\n        x1: x1,\n        y1: y1,\n        x2: x2,\n        y2: y2,\n        cpx1: cpx1,\n        cpy1: cpy1,\n        cpx2: cpx2,\n        cpy2: cpy2\n      });\n      curve.setStyle(lineStyleModel.getItemStyle()); // Special color, use source node color or target node color\n\n      switch (curve.style.fill) {\n        case 'source':\n          curve.style.fill = edge.node1.getVisual('color');\n          break;\n\n        case 'target':\n          curve.style.fill = edge.node2.getVisual('color');\n          break;\n      }\n\n      graphic.setHoverStyle(curve, edge.getModel('emphasis.lineStyle').getItemStyle());\n      group.add(curve);\n      edgeData.setItemGraphicEl(edge.dataIndex, curve);\n    }); // generate a rect for each node\n\n    graph.eachNode(function (node) {\n      var layout = node.getLayout();\n      var itemModel = node.getModel();\n      var dragX = itemModel.get('localX');\n      var dragY = itemModel.get('localY');\n      var labelModel = itemModel.getModel('label');\n      var labelHoverModel = itemModel.getModel('emphasis.label');\n      var rect = new graphic.Rect({\n        shape: {\n          x: dragX != null ? dragX * width : layout.x,\n          y: dragY != null ? dragY * height : layout.y,\n          width: layout.dx,\n          height: layout.dy\n        },\n        style: itemModel.getModel('itemStyle').getItemStyle()\n      });\n      var hoverStyle = node.getModel('emphasis.itemStyle').getItemStyle();\n      graphic.setLabelStyle(rect.style, hoverStyle, labelModel, labelHoverModel, {\n        labelFetcher: seriesModel,\n        labelDataIndex: node.dataIndex,\n        defaultText: node.id,\n        isRectText: true\n      });\n      rect.setStyle('fill', node.getVisual('color'));\n      graphic.setHoverStyle(rect, hoverStyle);\n      group.add(rect);\n      nodeData.setItemGraphicEl(node.dataIndex, rect);\n      rect.dataType = 'node';\n    });\n    var draggable = seriesModel.get('draggable');\n\n    if (draggable) {\n      nodeData.eachItemGraphicEl(function (el, dataIndex) {\n        el.drift = function (dx, dy) {\n          this.shape.x += dx;\n          this.shape.y += dy;\n          this.dirty();\n          api.dispatchAction({\n            type: 'dragNode',\n            seriesId: seriesModel.id,\n            dataIndex: nodeData.getRawIndex(dataIndex),\n            localX: this.shape.x / width,\n            localY: this.shape.y / height\n          });\n        };\n\n        el.draggable = true;\n        el.cursor = 'move';\n      });\n    }\n\n    if (!this._data && seriesModel.get('animation')) {\n      group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n        group.removeClipPath();\n      }));\n    }\n\n    this._data = seriesModel.getData();\n  },\n  dispose: function () {}\n}); // add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width + 20,\n      height: rect.height + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/SankeyView.js\n// module id = Glhy\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = {\n  getBoxLayoutParams: function () {\n    return {\n      left: this.get('left'),\n      top: this.get('top'),\n      right: this.get('right'),\n      bottom: this.get('bottom'),\n      width: this.get('width'),\n      height: this.get('height')\n    };\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/boxLayout.js\n// module id = Gqah\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar map = _util.map;\nvar isArray = _util.isArray;\nvar isFunction = _util.isFunction;\nvar createHashMap = _util.createHashMap;\nvar noop = _util.noop;\n\nvar _task = require(\"./task\");\n\nvar createTask = _task.createTask;\n\nvar _component = require(\"../util/component\");\n\nvar getUID = _component.getUID;\n\nvar GlobalModel = require(\"../model/Global\");\n\nvar ExtensionAPI = require(\"../ExtensionAPI\");\n\nvar _model = require(\"../util/model\");\n\nvar normalizeToArray = _model.normalizeToArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/stream/Scheduler\n */\n\n/**\n * @constructor\n */\nfunction Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n  this.ecInstance = ecInstance;\n  this.api = api;\n  this.unfinished; // Fix current processors in case that in some rear cases that\n  // processors might be registered after echarts instance created.\n  // Register processors incrementally for a echarts instance is\n  // not supported by this stream architecture.\n\n  var dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n  var visualHandlers = this._visualHandlers = visualHandlers.slice();\n  this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  /**\n   * @private\n   * @type {\n   *     [handlerUID: string]: {\n   *         seriesTaskMap?: {\n   *             [seriesUID: string]: Task\n   *         },\n   *         overallTask?: Task\n   *     }\n   * }\n   */\n\n  this._stageTaskMap = createHashMap();\n}\n\nvar proto = Scheduler.prototype;\n/**\n * @param {module:echarts/model/Global} ecModel\n * @param {Object} payload\n */\n\nproto.restoreData = function (ecModel, payload) {\n  // TODO: Only restroe needed series and components, but not all components.\n  // Currently `restoreData` of all of the series and component will be called.\n  // But some independent components like `title`, `legend`, `graphic`, `toolbox`,\n  // `tooltip`, `axisPointer`, etc, do not need series refresh when `setOption`,\n  // and some components like coordinate system, axes, dataZoom, visualMap only\n  // need their target series refresh.\n  // (1) If we are implementing this feature some day, we should consider these cases:\n  // if a data processor depends on a component (e.g., dataZoomProcessor depends\n  // on the settings of `dataZoom`), it should be re-performed if the component\n  // is modified by `setOption`.\n  // (2) If a processor depends on sevral series, speicified by its `getTargetSeries`,\n  // it should be re-performed when the result array of `getTargetSeries` changed.\n  // We use `dependencies` to cover these issues.\n  // (3) How to update target series when coordinate system related components modified.\n  // TODO: simply the dirty mechanism? Check whether only the case here can set tasks dirty,\n  // and this case all of the tasks will be set as dirty.\n  ecModel.restoreData(payload); // Theoretically an overall task not only depends on each of its target series, but also\n  // depends on all of the series.\n  // The overall task is not in pipeline, and `ecModel.restoreData` only set pipeline tasks\n  // dirty. If `getTargetSeries` of an overall task returns nothing, we should also ensure\n  // that the overall task is set as dirty and to be performed, otherwise it probably cause\n  // state chaos. So we have to set dirty of all of the overall tasks manually, otherwise it\n  // probably cause state chaos (consider `dataZoomProcessor`).\n\n  this._stageTaskMap.each(function (taskRecord) {\n    var overallTask = taskRecord.overallTask;\n    overallTask && overallTask.dirty();\n  });\n}; // If seriesModel provided, incremental threshold is check by series data.\n\n\nproto.getPerformArgs = function (task, isBlock) {\n  // For overall task\n  if (!task.__pipeline) {\n    return;\n  }\n\n  var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n  var pCtx = pipeline.context;\n  var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n  var step = incremental ? pipeline.step : null;\n  var modDataCount = pCtx && pCtx.modDataCount;\n  var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n  return {\n    step: step,\n    modBy: modBy,\n    modDataCount: modDataCount\n  };\n};\n\nproto.getPipeline = function (pipelineId) {\n  return this._pipelineMap.get(pipelineId);\n};\n/**\n * Current, progressive rendering starts from visual and layout.\n * Always detect render mode in the same stage, avoiding that incorrect\n * detection caused by data filtering.\n * Caution:\n * `updateStreamModes` use `seriesModel.getData()`.\n */\n\n\nproto.updateStreamModes = function (seriesModel, view) {\n  var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n  var data = seriesModel.getData();\n  var dataLen = data.count(); // `progressiveRender` means that can render progressively in each\n  // animation frame. Note that some types of series do not provide\n  // `view.incrementalPrepareRender` but support `chart.appendData`. We\n  // use the term `incremental` but not `progressive` to describe the\n  // case that `chart.appendData`.\n\n  var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n  var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold'); // TODO: modDataCount should not updated if `appendData`, otherwise cause whole repaint.\n  // see `test/candlestick-large3.html`\n\n  var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n  seriesModel.pipelineContext = pipeline.context = {\n    progressiveRender: progressiveRender,\n    modDataCount: modDataCount,\n    large: large\n  };\n};\n\nproto.restorePipelines = function (ecModel) {\n  var scheduler = this;\n  var pipelineMap = scheduler._pipelineMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var progressive = seriesModel.getProgressive();\n    var pipelineId = seriesModel.uid;\n    pipelineMap.set(pipelineId, {\n      id: pipelineId,\n      head: null,\n      tail: null,\n      threshold: seriesModel.getProgressiveThreshold(),\n      progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n      blockIndex: -1,\n      step: Math.round(progressive || 700),\n      count: 0\n    });\n    pipe(scheduler, seriesModel, seriesModel.dataTask);\n  });\n};\n\nproto.prepareStageTasks = function () {\n  var stageTaskMap = this._stageTaskMap;\n  var ecModel = this.ecInstance.getModel();\n  var api = this.api;\n  each(this._allHandlers, function (handler) {\n    var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, []);\n    handler.reset && createSeriesStageTask(this, handler, record, ecModel, api);\n    handler.overallReset && createOverallStageTask(this, handler, record, ecModel, api);\n  }, this);\n};\n\nproto.prepareView = function (view, model, ecModel, api) {\n  var renderTask = view.renderTask;\n  var context = renderTask.context;\n  context.model = model;\n  context.ecModel = ecModel;\n  context.api = api;\n  renderTask.__block = !view.incrementalPrepareRender;\n  pipe(this, model, renderTask);\n};\n\nproto.performDataProcessorTasks = function (ecModel, payload) {\n  // If we do not use `block` here, it should be considered when to update modes.\n  performStageTasks(this, this._dataProcessorHandlers, ecModel, payload, {\n    block: true\n  });\n}; // opt\n// opt.visualType: 'visual' or 'layout'\n// opt.setDirty\n\n\nproto.performVisualTasks = function (ecModel, payload, opt) {\n  performStageTasks(this, this._visualHandlers, ecModel, payload, opt);\n};\n\nfunction performStageTasks(scheduler, stageHandlers, ecModel, payload, opt) {\n  opt = opt || {};\n  var unfinished;\n  each(stageHandlers, function (stageHandler, idx) {\n    if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n      return;\n    }\n\n    var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n    var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var overallTask = stageHandlerRecord.overallTask;\n\n    if (overallTask) {\n      var overallNeedDirty;\n      var agentStubMap = overallTask.agentStubMap;\n      agentStubMap.each(function (stub) {\n        if (needSetDirty(opt, stub)) {\n          stub.dirty();\n          overallNeedDirty = true;\n        }\n      });\n      overallNeedDirty && overallTask.dirty();\n      updatePayload(overallTask, payload);\n      var performArgs = scheduler.getPerformArgs(overallTask, opt.block); // Execute stubs firstly, which may set the overall task dirty,\n      // then execute the overall task. And stub will call seriesModel.setData,\n      // which ensures that in the overallTask seriesModel.getData() will not\n      // return incorrect data.\n\n      agentStubMap.each(function (stub) {\n        stub.perform(performArgs);\n      });\n      unfinished |= overallTask.perform(performArgs);\n    } else if (seriesTaskMap) {\n      seriesTaskMap.each(function (task, pipelineId) {\n        if (needSetDirty(opt, task)) {\n          task.dirty();\n        }\n\n        var performArgs = scheduler.getPerformArgs(task, opt.block);\n        performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n        updatePayload(task, payload);\n        unfinished |= task.perform(performArgs);\n      });\n    }\n  });\n\n  function needSetDirty(opt, task) {\n    return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n  }\n\n  scheduler.unfinished |= unfinished;\n}\n\nproto.performSeriesTasks = function (ecModel) {\n  var unfinished;\n  ecModel.eachSeries(function (seriesModel) {\n    // Progress to the end for dataInit and dataRestore.\n    unfinished |= seriesModel.dataTask.perform();\n  });\n  this.unfinished |= unfinished;\n};\n\nproto.plan = function () {\n  // Travel pipelines, check block.\n  this._pipelineMap.each(function (pipeline) {\n    var task = pipeline.tail;\n\n    do {\n      if (task.__block) {\n        pipeline.blockIndex = task.__idxInPipeline;\n        break;\n      }\n\n      task = task.getUpstream();\n    } while (task);\n  });\n};\n\nvar updatePayload = proto.updatePayload = function (task, payload) {\n  payload !== 'remain' && (task.context.payload = payload);\n};\n\nfunction createSeriesStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {\n  var seriesTaskMap = stageHandlerRecord.seriesTaskMap || (stageHandlerRecord.seriesTaskMap = createHashMap());\n  var seriesType = stageHandler.seriesType;\n  var getTargetSeries = stageHandler.getTargetSeries; // If a stageHandler should cover all series, `createOnAllSeries` should be declared mandatorily,\n  // to avoid some typo or abuse. Otherwise if an extension do not specify a `seriesType`,\n  // it works but it may cause other irrelevant charts blocked.\n\n  if (stageHandler.createOnAllSeries) {\n    ecModel.eachRawSeries(create);\n  } else if (seriesType) {\n    ecModel.eachRawSeriesByType(seriesType, create);\n  } else if (getTargetSeries) {\n    getTargetSeries(ecModel, api).each(create);\n  }\n\n  function create(seriesModel) {\n    var pipelineId = seriesModel.uid; // Init tasks for each seriesModel only once.\n    // Reuse original task instance.\n\n    var task = seriesTaskMap.get(pipelineId) || seriesTaskMap.set(pipelineId, createTask({\n      plan: seriesTaskPlan,\n      reset: seriesTaskReset,\n      count: seriesTaskCount\n    }));\n    task.context = {\n      model: seriesModel,\n      ecModel: ecModel,\n      api: api,\n      useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n      plan: stageHandler.plan,\n      reset: stageHandler.reset,\n      scheduler: scheduler\n    };\n    pipe(scheduler, seriesModel, task);\n  } // Clear unused series tasks.\n\n\n  var pipelineMap = scheduler._pipelineMap;\n  seriesTaskMap.each(function (task, pipelineId) {\n    if (!pipelineMap.get(pipelineId)) {\n      task.dispose();\n      seriesTaskMap.removeKey(pipelineId);\n    }\n  });\n}\n\nfunction createOverallStageTask(scheduler, stageHandler, stageHandlerRecord, ecModel, api) {\n  var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask // For overall task, the function only be called on reset stage.\n  || createTask({\n    reset: overallTaskReset\n  });\n  overallTask.context = {\n    ecModel: ecModel,\n    api: api,\n    overallReset: stageHandler.overallReset,\n    scheduler: scheduler\n  }; // Reuse orignal stubs.\n\n  var agentStubMap = overallTask.agentStubMap = overallTask.agentStubMap || createHashMap();\n  var seriesType = stageHandler.seriesType;\n  var getTargetSeries = stageHandler.getTargetSeries;\n  var overallProgress = true;\n  var modifyOutputEnd = stageHandler.modifyOutputEnd; // An overall task with seriesType detected or has `getTargetSeries`, we add\n  // stub in each pipelines, it will set the overall task dirty when the pipeline\n  // progress. Moreover, to avoid call the overall task each frame (too frequent),\n  // we set the pipeline block.\n\n  if (seriesType) {\n    ecModel.eachRawSeriesByType(seriesType, createStub);\n  } else if (getTargetSeries) {\n    getTargetSeries(ecModel, api).each(createStub);\n  } // Otherwise, (usually it is legancy case), the overall task will only be\n  // executed when upstream dirty. Otherwise the progressive rendering of all\n  // pipelines will be disabled unexpectedly. But it still needs stubs to receive\n  // dirty info from upsteam.\n  else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n  function createStub(seriesModel) {\n    var pipelineId = seriesModel.uid;\n    var stub = agentStubMap.get(pipelineId);\n\n    if (!stub) {\n      stub = agentStubMap.set(pipelineId, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })); // When the result of `getTargetSeries` changed, the overallTask\n      // should be set as dirty and re-performed.\n\n      overallTask.dirty();\n    }\n\n    stub.context = {\n      model: seriesModel,\n      overallProgress: overallProgress,\n      modifyOutputEnd: modifyOutputEnd\n    };\n    stub.agent = overallTask;\n    stub.__block = overallProgress;\n    pipe(scheduler, seriesModel, stub);\n  } // Clear unused stubs.\n\n\n  var pipelineMap = scheduler._pipelineMap;\n  agentStubMap.each(function (stub, pipelineId) {\n    if (!pipelineMap.get(pipelineId)) {\n      stub.dispose(); // When the result of `getTargetSeries` changed, the overallTask\n      // should be set as dirty and re-performed.\n\n      overallTask.dirty();\n      agentStubMap.removeKey(pipelineId);\n    }\n  });\n}\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context, upstreamContext) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan && context.plan(context.model, context.ecModel, context.api, context.payload);\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction pipe(scheduler, seriesModel, task) {\n  var pipelineId = seriesModel.uid;\n\n  var pipeline = scheduler._pipelineMap.get(pipelineId);\n\n  !pipeline.head && (pipeline.head = task);\n  pipeline.tail && pipeline.tail.pipe(task);\n  pipeline.tail = task;\n  task.__idxInPipeline = pipeline.count++;\n  task.__pipeline = pipeline;\n}\n\nScheduler.wrapStageHandler = function (stageHandler, visualType) {\n  if (isFunction(stageHandler)) {\n    stageHandler = {\n      overallReset: stageHandler,\n      seriesType: detectSeriseType(stageHandler)\n    };\n  }\n\n  stageHandler.uid = getUID('stageHandler');\n  visualType && (stageHandler.visualType = visualType);\n  return stageHandler;\n};\n/**\n * Only some legacy stage handlers (usually in echarts extensions) are pure function.\n * To ensure that they can work normally, they should work in block mode, that is,\n * they should not be started util the previous tasks finished. So they cause the\n * progressive rendering disabled. We try to detect the series type, to narrow down\n * the block range to only the series type they concern, but not all series.\n */\n\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    // Assume there is no async when calling `eachSeriesByType`.\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name in Clz.prototype) {\n    // Do not use hasOwnProperty\n    target[name] = noop;\n  }\n}\n\nvar _default = Scheduler;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/stream/Scheduler.js\n// module id = Gs2l\n// module chunks = 0","var Component = require(\"../../model/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nComponent.registerSubTypeDefaulter('timeline', function () {\n  // Only slider now.\n  return 'slider';\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/typeDefaulter.js\n// module id = GsKu\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\n  if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) {\n    var root = seriesModel.getData().tree.root;\n    var targetNode = payload.targetNode;\n\n    if (targetNode && root.contains(targetNode)) {\n      return {\n        node: targetNode\n      };\n    }\n\n    var targetNodeId = payload.targetNodeId;\n\n    if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\n      return {\n        node: targetNode\n      };\n    }\n  }\n} // Not includes the given node at the last item.\n\n\nfunction getPathToRoot(node) {\n  var path = [];\n\n  while (node) {\n    node = node.parentNode;\n    node && path.push(node);\n  }\n\n  return path.reverse();\n}\n\nfunction aboveViewRoot(viewRoot, node) {\n  var viewPath = getPathToRoot(viewRoot);\n  return zrUtil.indexOf(viewPath, node) >= 0;\n} // From root to the input node (the input node will be included).\n\n\nfunction wrapTreePathInfo(node, seriesModel) {\n  var treePathInfo = [];\n\n  while (node) {\n    var nodeDataIndex = node.dataIndex;\n    treePathInfo.push({\n      name: node.name,\n      dataIndex: nodeDataIndex,\n      value: seriesModel.getRawValue(nodeDataIndex)\n    });\n    node = node.parentNode;\n  }\n\n  treePathInfo.reverse();\n  return treePathInfo;\n}\n\nexports.retrieveTargetInfo = retrieveTargetInfo;\nexports.getPathToRoot = getPathToRoot;\nexports.aboveViewRoot = aboveViewRoot;\nexports.wrapTreePathInfo = wrapTreePathInfo;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/treeHelper.js\n// module id = HT+0\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar lang = require(\"../lang\");\n\nvar _dataProvider = require(\"../data/helper/dataProvider\");\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(dom, ecModel) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('show')) {\n    return;\n  } else if (ariaModel.get('description')) {\n    dom.setAttribute('aria-label', ariaModel.get('description'));\n    return;\n  }\n\n  var seriesCnt = 0;\n  ecModel.eachSeries(function (seriesModel, idx) {\n    ++seriesCnt;\n  }, this);\n  var maxDataCnt = ariaModel.get('data.maxCount') || 10;\n  var maxSeriesCnt = ariaModel.get('series.maxCount') || 10;\n  var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n  var ariaLabel;\n\n  if (seriesCnt < 1) {\n    // No series, no aria label\n    return;\n  } else {\n    var title = getTitle();\n\n    if (title) {\n      ariaLabel = replace(getConfig('general.withTitle'), {\n        title: title\n      });\n    } else {\n      ariaLabel = getConfig('general.withoutTitle');\n    }\n\n    var seriesLabels = [];\n    var prefix = seriesCnt > 1 ? 'series.multiple.prefix' : 'series.single.prefix';\n    ariaLabel += replace(getConfig(prefix), {\n      seriesCount: seriesCnt\n    });\n    ecModel.eachSeries(function (seriesModel, idx) {\n      if (idx < displaySeriesCnt) {\n        var seriesLabel;\n        var seriesName = seriesModel.get('name');\n        var seriesTpl = 'series.' + (seriesCnt > 1 ? 'multiple' : 'single') + '.';\n        seriesLabel = getConfig(seriesName ? seriesTpl + 'withName' : seriesTpl + 'withoutName');\n        seriesLabel = replace(seriesLabel, {\n          seriesId: seriesModel.seriesIndex,\n          seriesName: seriesModel.get('name'),\n          seriesType: getSeriesTypeName(seriesModel.subType)\n        });\n        var data = seriesModel.getData();\n        window.data = data;\n\n        if (data.count() > maxDataCnt) {\n          // Show part of data\n          seriesLabel += replace(getConfig('data.partialData'), {\n            displayCnt: maxDataCnt\n          });\n        } else {\n          seriesLabel += getConfig('data.allData');\n        }\n\n        var dataLabels = [];\n\n        for (var i = 0; i < data.count(); i++) {\n          if (i < maxDataCnt) {\n            var name = data.getName(i);\n            var value = retrieveRawValue(data, i);\n            dataLabels.push(replace(name ? getConfig('data.withName') : getConfig('data.withoutName'), {\n              name: name,\n              value: value\n            }));\n          }\n        }\n\n        seriesLabel += dataLabels.join(getConfig('data.separator.middle')) + getConfig('data.separator.end');\n        seriesLabels.push(seriesLabel);\n      }\n    });\n    ariaLabel += seriesLabels.join(getConfig('series.multiple.separator.middle')) + getConfig('series.multiple.separator.end');\n    dom.setAttribute('aria-label', ariaLabel);\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getConfig(path) {\n    var userConfig = ariaModel.get(path);\n\n    if (userConfig == null) {\n      var pathArr = path.split('.');\n      var result = lang.aria;\n\n      for (var i = 0; i < pathArr.length; ++i) {\n        result = result[pathArr[i]];\n      }\n\n      return result;\n    } else {\n      return userConfig;\n    }\n  }\n\n  function getTitle() {\n    var title = ecModel.getModel('title').option;\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return lang.series.typeNames[type] || '鑷畾涔夊浘';\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/visual/aria.js\n// module id = HYE2\n// module chunks = 0","var Parallel = require(\"./Parallel\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parallel coordinate system creater.\n */\nfunction create(ecModel, api) {\n  var coordSysList = [];\n  ecModel.eachComponent('parallel', function (parallelModel, idx) {\n    var coordSys = new Parallel(parallelModel, ecModel, api);\n    coordSys.name = 'parallel_' + idx;\n    coordSys.resize(parallelModel, api);\n    parallelModel.coordinateSystem = coordSys;\n    coordSys.model = parallelModel;\n    coordSysList.push(coordSys);\n  }); // Inject the coordinateSystems into seriesModel\n\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'parallel') {\n      var parallelModel = ecModel.queryComponents({\n        mainType: 'parallel',\n        index: seriesModel.get('parallelIndex'),\n        id: seriesModel.get('parallelId')\n      })[0];\n      seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n    }\n  });\n  return coordSysList;\n}\n\nCoordinateSystem.register('parallel', {\n  create: create\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/parallelCreator.js\n// module id = HYVc\n// module chunks = 0","var DataZoomModel = require(\"./DataZoomModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = DataZoomModel.extend({\n  type: 'dataZoom.select'\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/SelectZoomModel.js\n// module id = Hf1X\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n  // dataItem is necessary in log axis.\n  var axis = this.getAxis();\n  var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n  var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n  return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nfunction _default(coordSys) {\n  var rect = coordSys.getRect();\n  return {\n    coordSys: {\n      type: 'singleAxis',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (val) {\n        // do not provide \"out\" param\n        return coordSys.dataToPoint(val);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/single/prepareCustom.js\n// module id = Hi0C\n// module chunks = 0","var vec2 = require(\"zrender/lib/core/vector\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar scaleAndAdd = vec2.scaleAndAdd; // function adjacentNode(n, e) {\n//     return e.n1 === n ? e.n2 : e.n1;\n// }\n\nfunction forceLayout(nodes, edges, opts) {\n  var rect = opts.rect;\n  var width = rect.width;\n  var height = rect.height;\n  var center = [rect.x + width / 2, rect.y + height / 2]; // var scale = opts.scale || 1;\n\n  var gravity = opts.gravity == null ? 0.1 : opts.gravity; // for (var i = 0; i < edges.length; i++) {\n  //     var e = edges[i];\n  //     var n1 = e.n1;\n  //     var n2 = e.n2;\n  //     n1.edges = n1.edges || [];\n  //     n2.edges = n2.edges || [];\n  //     n1.edges.push(e);\n  //     n2.edges.push(e);\n  // }\n  // Init position\n\n  for (var i = 0; i < nodes.length; i++) {\n    var n = nodes[i];\n\n    if (!n.p) {\n      // Use the position from first adjecent node with defined position\n      // Or use a random position\n      // From d3\n      // if (n.edges) {\n      //     var j = -1;\n      //     while (++j < n.edges.length) {\n      //         var e = n.edges[j];\n      //         var other = adjacentNode(n, e);\n      //         if (other.p) {\n      //             n.p = vec2.clone(other.p);\n      //             break;\n      //         }\n      //     }\n      // }\n      // if (!n.p) {\n      n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]); // }\n    }\n\n    n.pp = vec2.clone(n.p);\n    n.edges = null;\n  } // Formula in 'Graph Drawing by Force-directed Placement'\n  // var k = scale * Math.sqrt(width * height / nodes.length);\n  // var k2 = k * k;\n\n\n  var friction = 0.6;\n  return {\n    warmUp: function () {\n      friction = 0.5;\n    },\n    setFixed: function (idx) {\n      nodes[idx].fixed = true;\n    },\n    setUnfixed: function (idx) {\n      nodes[idx].fixed = false;\n    },\n    step: function (cb) {\n      var v12 = [];\n      var nLen = nodes.length;\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n        var n1 = e.n1;\n        var n2 = e.n2;\n        vec2.sub(v12, n2.p, n1.p);\n        var d = vec2.len(v12) - e.d;\n        var w = n2.w / (n1.w + n2.w);\n\n        if (isNaN(w)) {\n          w = 0;\n        }\n\n        vec2.normalize(v12, v12);\n        !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n        !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n      } // Gravity\n\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v12, center, n.p); // var d = vec2.len(v12);\n          // vec2.scale(v12, v12, 1 / d);\n          // var gravityFactor = gravity;\n\n          scaleAndAdd(n.p, n.p, v12, gravity * friction);\n        }\n      } // Repulsive\n      // PENDING\n\n\n      for (var i = 0; i < nLen; i++) {\n        var n1 = nodes[i];\n\n        for (var j = i + 1; j < nLen; j++) {\n          var n2 = nodes[j];\n          vec2.sub(v12, n2.p, n1.p);\n          var d = vec2.len(v12);\n\n          if (d === 0) {\n            // Random repulse\n            vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n            d = 1;\n          }\n\n          var repFact = (n1.rep + n2.rep) / d / d;\n          !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n          !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n        }\n      }\n\n      var v = [];\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v, n.p, n.pp);\n          scaleAndAdd(n.p, n.p, v, friction);\n          vec2.copy(n.pp, n.p);\n        }\n      }\n\n      friction = friction * 0.992;\n      cb && cb(nodes, edges, friction < 0.01);\n    }\n  };\n}\n\nexports.forceLayout = forceLayout;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/forceHelper.js\n// module id = Hy6W\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.noop = noop;\nexports.hasOwn = hasOwn;\nexports.toObject = toObject;\nexports.getPropByPath = getPropByPath;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction noop() {};\n\nfunction hasOwn(obj, key) {\n  return hasOwnProperty.call(obj, key);\n};\n\nfunction extend(to, _from) {\n  for (var key in _from) {\n    to[key] = _from[key];\n  }\n  return to;\n};\n\nfunction toObject(arr) {\n  var res = {};\n  for (var i = 0; i < arr.length; i++) {\n    if (arr[i]) {\n      extend(res, arr[i]);\n    }\n  }\n  return res;\n};\n\nvar getValueByPath = exports.getValueByPath = function getValueByPath(object, prop) {\n  prop = prop || '';\n  var paths = prop.split('.');\n  var current = object;\n  var result = null;\n  for (var i = 0, j = paths.length; i < j; i++) {\n    var path = paths[i];\n    if (!current) break;\n\n    if (i === j - 1) {\n      result = current[path];\n      break;\n    }\n    current = current[path];\n  }\n  return result;\n};\n\nfunction getPropByPath(obj, path, strict) {\n  var tempObj = obj;\n  path = path.replace(/\\[(\\w+)\\]/g, '.$1');\n  path = path.replace(/^\\./, '');\n\n  var keyArr = path.split('.');\n  var i = 0;\n  for (var len = keyArr.length; i < len - 1; ++i) {\n    if (!tempObj && !strict) break;\n    var key = keyArr[i];\n    if (key in tempObj) {\n      tempObj = tempObj[key];\n    } else {\n      if (strict) {\n        throw new Error('please transfer a valid prop path to form item!');\n      }\n      break;\n    }\n  }\n  return {\n    o: tempObj,\n    k: keyArr[i],\n    v: tempObj ? tempObj[keyArr[i]] : null\n  };\n};\n\nvar generateId = exports.generateId = function generateId() {\n  return Math.floor(Math.random() * 10000);\n};\n\nvar valueEquals = exports.valueEquals = function valueEquals(a, b) {\n  // see: https://stackoverflow.com/questions/3115982/how-to-check-if-two-arrays-are-equal-with-javascript\n  if (a === b) return true;\n  if (!(a instanceof Array)) return false;\n  if (!(b instanceof Array)) return false;\n  if (a.length !== b.length) return false;\n  for (var i = 0; i !== a.length; ++i) {\n    if (a[i] !== b[i]) return false;\n  }\n  return true;\n};\n\nvar escapeRegexpString = exports.escapeRegexpString = function escapeRegexpString() {\n  var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  return String(value).replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/util.js\n// module id = I1sU\n// module chunks = 0","var layout = require(\"../../util/layout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file The layout algorithm of node-link tree diagrams. Here we using Reingold-Tilford algorithm to drawing\n *       the tree.\n * @see https://github.com/d3/d3-hierarchy\n */\n\n/**\n * Initialize all computational message for following algorithm\n * @param  {module:echarts/data/Tree~TreeNode} root   The virtual root of the tree\n */\nfunction init(root) {\n  root.hierNode = {\n    defaultAncestor: null,\n    ancestor: root,\n    prelim: 0,\n    modifier: 0,\n    change: 0,\n    shift: 0,\n    i: 0,\n    thread: null\n  };\n  var nodes = [root];\n  var node;\n  var children;\n\n  while (node = nodes.pop()) {\n    // jshint ignore:line\n    children = node.children;\n\n    if (node.isExpand && children.length) {\n      var n = children.length;\n\n      for (var i = n - 1; i >= 0; i--) {\n        var child = children[i];\n        child.hierNode = {\n          defaultAncestor: null,\n          ancestor: child,\n          prelim: 0,\n          modifier: 0,\n          change: 0,\n          shift: 0,\n          i: i,\n          thread: null\n        };\n        nodes.push(child);\n      }\n    }\n  }\n}\n/**\n * Computes a preliminary x coordinate for node. Before that, this function is\n * applied recursively to the children of node, as well as the function\n * apportion(). After spacing out the children by calling executeShifts(), the\n * node is placed to the midpoint of its outermost children.\n * @param  {module:echarts/data/Tree~TreeNode} node\n * @param {Function} separation\n */\n\n\nfunction firstWalk(node, separation) {\n  var children = node.isExpand ? node.children : [];\n  var siblings = node.parentNode.children;\n  var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n  if (children.length) {\n    executeShifts(node);\n    var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n    if (subtreeW) {\n      node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n      node.hierNode.modifier = node.hierNode.prelim - midPoint;\n    } else {\n      node.hierNode.prelim = midPoint;\n    }\n  } else if (subtreeW) {\n    node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n  }\n\n  node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\n/**\n * Computes all real x-coordinates by summing up the modifiers recursively.\n * @param  {module:echarts/data/Tree~TreeNode} node\n */\n\n\nfunction secondWalk(node) {\n  var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n  node.setLayout({\n    x: nodeX\n  }, true);\n  node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\n\nfunction separation(cb) {\n  return arguments.length ? cb : defaultSeparation;\n}\n/**\n * Transform the common coordinate to radial coordinate\n * @param  {number} x\n * @param  {number} y\n * @return {Object}\n */\n\n\nfunction radialCoordinate(x, y) {\n  var radialCoor = {};\n  x -= Math.PI / 2;\n  radialCoor.x = y * Math.cos(x);\n  radialCoor.y = y * Math.sin(x);\n  return radialCoor;\n}\n/**\n * Get the layout position of the whole view\n * @param {module:echarts/model/Series} seriesModel  the model object of sankey series\n * @param {module:echarts/ExtensionAPI} api  provide the API list that the developer can call\n * @return {module:zrender/core/BoundingRect}  size of rect to draw the sankey view\n */\n\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n/**\n * All other shifts, applied to the smaller subtrees between w- and w+, are\n * performed by this function.\n * @param  {module:echarts/data/Tree~TreeNode} node\n */\n\n\nfunction executeShifts(node) {\n  var children = node.children;\n  var n = children.length;\n  var shift = 0;\n  var change = 0;\n\n  while (--n >= 0) {\n    var child = children[n];\n    child.hierNode.prelim += shift;\n    child.hierNode.modifier += shift;\n    change += child.hierNode.change;\n    shift += child.hierNode.shift + change;\n  }\n}\n/**\n * The core of the algorithm. Here, a new subtree is combined with the\n * previous subtrees. Threads are used to traverse the inside and outside\n * contours of the left and right subtree up to the highest common level.\n * Whenever two nodes of the inside contours conflict, we compute the left\n * one of the greatest uncommon ancestors using the function nextAncestor()\n * and call moveSubtree() to shift the subtree and prepare the shifts of\n * smaller subtrees. Finally, we add a new thread (if necessary).\n * @param  {module:echarts/data/Tree~TreeNode} subtreeV\n * @param  {module:echarts/data/Tree~TreeNode} subtreeW\n * @param  {module:echarts/data/Tree~TreeNode} ancestor\n * @param  {Function} separation\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n  if (subtreeW) {\n    var nodeOutRight = subtreeV;\n    var nodeInRight = subtreeV;\n    var nodeOutLeft = nodeInRight.parentNode.children[0];\n    var nodeInLeft = subtreeW;\n    var sumOutRight = nodeOutRight.hierNode.modifier;\n    var sumInRight = nodeInRight.hierNode.modifier;\n    var sumOutLeft = nodeOutLeft.hierNode.modifier;\n    var sumInLeft = nodeInLeft.hierNode.modifier;\n\n    while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n      nodeOutRight = nextRight(nodeOutRight);\n      nodeOutLeft = nextLeft(nodeOutLeft);\n      nodeOutRight.hierNode.ancestor = subtreeV;\n      var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n      if (shift > 0) {\n        moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n        sumInRight += shift;\n        sumOutRight += shift;\n      }\n\n      sumInLeft += nodeInLeft.hierNode.modifier;\n      sumInRight += nodeInRight.hierNode.modifier;\n      sumOutRight += nodeOutRight.hierNode.modifier;\n      sumOutLeft += nodeOutLeft.hierNode.modifier;\n    }\n\n    if (nodeInLeft && !nextRight(nodeOutRight)) {\n      nodeOutRight.hierNode.thread = nodeInLeft;\n      nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n    }\n\n    if (nodeInRight && !nextLeft(nodeOutLeft)) {\n      nodeOutLeft.hierNode.thread = nodeInRight;\n      nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n      ancestor = subtreeV;\n    }\n  }\n\n  return ancestor;\n}\n/**\n * This function is used to traverse the right contour of a subtree.\n * It returns the rightmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n * @param  {module:echarts/data/Tree~TreeNode} node\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction nextRight(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n/**\n * This function is used to traverse the left contour of a subtree (or a subforest).\n * It returns the leftmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n * @param  {module:echarts/data/Tree~TreeNode} node\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction nextLeft(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n/**\n * If nodeInLeft鈥檚 ancestor is a sibling of node, returns nodeInLeft鈥檚 ancestor.\n * Otherwise, returns the specified ancestor.\n * @param  {module:echarts/data/Tree~TreeNode} nodeInLeft\n * @param  {module:echarts/data/Tree~TreeNode} node\n * @param  {module:echarts/data/Tree~TreeNode} ancestor\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n  return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n/**\n * Shifts the current subtree rooted at wr. This is done by increasing prelim(w+) and modifier(w+) by shift.\n * @param  {module:echarts/data/Tree~TreeNode} wl\n * @param  {module:echarts/data/Tree~TreeNode} wr\n * @param  {number} shift [description]\n */\n\n\nfunction moveSubtree(wl, wr, shift) {\n  var change = shift / (wr.hierNode.i - wl.hierNode.i);\n  wr.hierNode.change -= change;\n  wr.hierNode.shift += shift;\n  wr.hierNode.modifier += shift;\n  wr.hierNode.prelim += shift;\n  wl.hierNode.change += change;\n}\n\nfunction defaultSeparation(node1, node2) {\n  return node1.parentNode === node2.parentNode ? 1 : 2;\n}\n\nexports.init = init;\nexports.firstWalk = firstWalk;\nexports.secondWalk = secondWalk;\nexports.separation = separation;\nexports.radialCoordinate = radialCoordinate;\nexports.getViewRect = getViewRect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/layoutHelper.js\n// module id = I22d\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n  if (Array.isArray(arr)) {\n    for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n      arr2[i] = arr[i];\n    }\n\n    return arr2;\n  } else {\n    return (0, _from2.default)(arr);\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/toConsumableArray.js\n// module id = IHPB\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar colorUtil = require(\"zrender/lib/tool/color\");\n\nvar List = require(\"../../data/List\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar markerHelper = require(\"./markerHelper\");\n\nvar MarkerView = require(\"./MarkerView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Better on polar\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n  var lt = markerHelper.dataTransform(seriesModel, item[0]);\n  var rb = markerHelper.dataTransform(seriesModel, item[1]);\n  var retrieve = zrUtil.retrieve; // FIXME make sure lt is less than rb\n\n  var ltCoord = lt.coord;\n  var rbCoord = rb.coord;\n  ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n  ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n  rbCoord[0] = retrieve(rbCoord[0], Infinity);\n  rbCoord[1] = retrieve(rbCoord[1], Infinity); // Merge option into one\n\n  var result = zrUtil.mergeAll([{}, lt, rb]);\n  result.coord = [lt.coord, rb.coord];\n  result.x0 = lt.x;\n  result.y0 = lt.y;\n  result.x1 = rb.x;\n  result.y1 = rb.y;\n  return result;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n} // If a markArea has one dim\n\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n  var fromCoord = item.coord[0];\n  var toCoord = item.coord[1];\n\n  if (coordSys.type === 'cartesian2d') {\n    // In case\n    // {\n    //  markArea: {\n    //    data: [{ yAxis: 2 }]\n    //  }\n    // }\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, {\n    coord: fromCoord,\n    x: item.x0,\n    y: item.y0\n  }) || markerHelper.dataFilter(coordSys, {\n    coord: toCoord,\n    x: item.x1,\n    y: item.y1\n  });\n} // dims can be ['x0', 'y0'], ['x1', 'y1'], ['x0', 'y1'], ['x1', 'y0']\n\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    // Chart like bar may have there own marker positioning logic\n    if (seriesModel.getMarkerPosition) {\n      // Use the getMarkerPoisition\n      point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n    } else {\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      var pt = [x, y];\n      coordSys.clampData && coordSys.clampData(pt, pt);\n      point = coordSys.dataToPoint(pt, true);\n    }\n\n    if (coordSys.type === 'cartesian2d') {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n\n      if (isInifinity(x)) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n      } else if (isInifinity(y)) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n      }\n    } // Use x, y if has any\n\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\nMarkerView.extend({\n  type: 'markArea',\n  // updateLayout: function (markAreaModel, ecModel, api) {\n  //     ecModel.eachSeries(function (seriesModel) {\n  //         var maModel = seriesModel.markAreaModel;\n  //         if (maModel) {\n  //             var areaData = maModel.getData();\n  //             areaData.each(function (idx) {\n  //                 var points = zrUtil.map(dimPermutations, function (dim) {\n  //                     return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n  //                 });\n  //                 // Layout\n  //                 areaData.setItemLayout(idx, points);\n  //                 var el = areaData.getItemGraphicEl(idx);\n  //                 el.setShape('points', points);\n  //             });\n  //         }\n  //     }, this);\n  // },\n  updateTransform: function (markAreaModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var maModel = seriesModel.markAreaModel;\n\n      if (maModel) {\n        var areaData = maModel.getData();\n        areaData.each(function (idx) {\n          var points = zrUtil.map(dimPermutations, function (dim) {\n            return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n          }); // Layout\n\n          areaData.setItemLayout(idx, points);\n          var el = areaData.getItemGraphicEl(idx);\n          el.setShape('points', points);\n        });\n      }\n    }, this);\n  },\n  renderSeries: function (seriesModel, maModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var areaGroupMap = this.markerGroupMap;\n    var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n      group: new graphic.Group()\n    });\n    this.group.add(polygonGroup.group);\n    polygonGroup.__keep = true;\n    var areaData = createList(coordSys, seriesModel, maModel); // Line data for tooltip and formatter\n\n    maModel.setData(areaData); // Update visual and layout of line\n\n    areaData.each(function (idx) {\n      // Layout\n      areaData.setItemLayout(idx, zrUtil.map(dimPermutations, function (dim) {\n        return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n      })); // Visual\n\n      areaData.setItemVisual(idx, {\n        color: seriesData.getVisual('color')\n      });\n    });\n    areaData.diff(polygonGroup.__data).add(function (idx) {\n      var polygon = new graphic.Polygon({\n        shape: {\n          points: areaData.getItemLayout(idx)\n        }\n      });\n      areaData.setItemGraphicEl(idx, polygon);\n      polygonGroup.group.add(polygon);\n    }).update(function (newIdx, oldIdx) {\n      var polygon = polygonGroup.__data.getItemGraphicEl(oldIdx);\n\n      graphic.updateProps(polygon, {\n        shape: {\n          points: areaData.getItemLayout(newIdx)\n        }\n      }, maModel, newIdx);\n      polygonGroup.group.add(polygon);\n      areaData.setItemGraphicEl(newIdx, polygon);\n    }).remove(function (idx) {\n      var polygon = polygonGroup.__data.getItemGraphicEl(idx);\n\n      polygonGroup.group.remove(polygon);\n    }).execute();\n    areaData.eachItemGraphicEl(function (polygon, idx) {\n      var itemModel = areaData.getItemModel(idx);\n      var labelModel = itemModel.getModel('label');\n      var labelHoverModel = itemModel.getModel('emphasis.label');\n      var color = areaData.getItemVisual(idx, 'color');\n      polygon.useStyle(zrUtil.defaults(itemModel.getModel('itemStyle').getItemStyle(), {\n        fill: colorUtil.modifyAlpha(color, 0.4),\n        stroke: color\n      }));\n      polygon.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n      graphic.setLabelStyle(polygon.style, polygon.hoverStyle, labelModel, labelHoverModel, {\n        labelFetcher: maModel,\n        labelDataIndex: idx,\n        defaultText: areaData.getName(idx) || '',\n        isRectText: true,\n        autoColor: color\n      });\n      graphic.setHoverStyle(polygon, {});\n      polygon.dataModel = maModel;\n    });\n    polygonGroup.__data = areaData;\n    polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n  }\n});\n/**\n * @inner\n * @param {module:echarts/coord/*} coordSys\n * @param {module:echarts/model/Series} seriesModel\n * @param {module:echarts/model/Model} mpModel\n */\n\nfunction createList(coordSys, seriesModel, maModel) {\n  var coordDimsInfos;\n  var areaData;\n  var dims = ['x0', 'y0', 'x1', 'y1'];\n\n  if (coordSys) {\n    coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) {\n      var data = seriesModel.getData();\n      var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n      return zrUtil.defaults({\n        name: coordDim\n      }, info);\n    });\n    areaData = new List(zrUtil.map(dims, function (dim, idx) {\n      return {\n        name: dim,\n        type: coordDimsInfos[idx % 2].type\n      };\n    }), maModel);\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n    areaData = new List(coordDimsInfos, maModel);\n  }\n\n  var optData = zrUtil.map(maModel.get('data'), zrUtil.curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n  if (coordSys) {\n    optData = zrUtil.filter(optData, zrUtil.curry(markAreaFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n    return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n  } : function (item) {\n    return item.value;\n  };\n  areaData.initData(optData, null, dimValueGetter);\n  areaData.hasItemOption = true;\n  return areaData;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkAreaView.js\n// module id = IW5F\n// module chunks = 0","var createListSimply = require(\"../helper/createListSimply\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GaugeSeries = SeriesModel.extend({\n  type: 'series.gauge',\n  getInitialData: function (option, ecModel) {\n    var dataOpt = option.data || [];\n\n    if (!zrUtil.isArray(dataOpt)) {\n      dataOpt = [dataOpt];\n    }\n\n    option.data = dataOpt;\n    return createListSimply(this, ['value']);\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    // 榛樿鍏ㄥ眬灞呬腑\n    center: ['50%', '50%'],\n    legendHoverLink: true,\n    radius: '75%',\n    startAngle: 225,\n    endAngle: -45,\n    clockwise: true,\n    // 鏈�灏忓�糪n    min: 0,\n    // 鏈�澶у�糪n    max: 100,\n    // 鍒嗗壊娈垫暟锛岄粯璁や负10\n    splitNumber: 10,\n    // 鍧愭爣杞寸嚎\n    axisLine: {\n      // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁\n      show: true,\n      lineStyle: {\n        // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡\n        color: [[0.2, '#91c7ae'], [0.8, '#63869e'], [1, '#c23531']],\n        width: 30\n      }\n    },\n    // 鍒嗛殧绾縗n    splitLine: {\n      // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁\n      show: true,\n      // 灞炴�ength鎺у埗绾块暱\n      length: 30,\n      // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮廫n      lineStyle: {\n        color: '#eee',\n        width: 2,\n        type: 'solid'\n      }\n    },\n    // 鍧愭爣杞村皬鏍囪\n    axisTick: {\n      // 灞炴�how鎺у埗鏄剧ず涓庡惁锛岄粯璁や笉鏄剧ず\n      show: true,\n      // 姣忎唤split缁嗗垎澶氬皯娈礬n      splitNumber: 5,\n      // 灞炴�ength鎺у埗绾块暱\n      length: 8,\n      // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡\n      lineStyle: {\n        color: '#eee',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    axisLabel: {\n      show: true,\n      distance: 5,\n      // formatter: null,\n      color: 'auto'\n    },\n    pointer: {\n      show: true,\n      length: '80%',\n      width: 8\n    },\n    itemStyle: {\n      color: 'auto'\n    },\n    title: {\n      show: true,\n      // x, y锛屽崟浣峱x\n      offsetCenter: [0, '-40%'],\n      // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE\n      color: '#333',\n      fontSize: 15\n    },\n    detail: {\n      show: true,\n      backgroundColor: 'rgba(0,0,0,0)',\n      borderWidth: 0,\n      borderColor: '#ccc',\n      width: 100,\n      height: null,\n      // self-adaption\n      padding: [5, 10],\n      // x, y锛屽崟浣峱x\n      offsetCenter: [0, '40%'],\n      // formatter: null,\n      // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE\n      color: 'auto',\n      fontSize: 30\n    }\n  }\n});\nvar _default = GaugeSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/gauge/GaugeSeries.js\n// module id = IWqO\n// module chunks = 0","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule normalizeWheel\n * @typechecks\n */\n\n'use strict';\n\nvar UserAgent_DEPRECATED = require('./UserAgent_DEPRECATED');\n\nvar isEventSupported = require('./isEventSupported');\n\n\n// Reasonable defaults\nvar PIXEL_STEP  = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\n/**\n * Mouse wheel (and 2-finger trackpad) support on the web sucks.  It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n *   'wheel'                -- Chrome(31+), FF(17+), IE(9+)\n *   'mousewheel'           -- Chrome, IE(6+), Opera, Safari\n *   'MozMousePixelScroll'  -- FF(3.5 only!) (2010-2013) -- don't bother!\n *   'DOMMouseScroll'       -- FF(0.9.7+) since 2003\n *\n * So what to do?  The is the best:\n *\n *   normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas.  This code will return an object with properties:\n *\n *   spinX   -- normalized spin speed (use for zoom) - x plane\n *   spinY   -- \" - y plane\n *   pixelX  -- normalized distance (to pixels) - x plane\n *   pixelY  -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages).  Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds.  Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n *   - spin is trying to normalize how far the wheel was spun (or trackpad\n *     dragged).  This is super useful for zoom support where you want to\n *     throw away the chunky scroll steps on the PC and make those equal to\n *     the slow and smooth tiny steps on the Mac. Key data: This code tries to\n *     resolve a single slow step on a wheel to 1.\n *\n *   - pixel is normalizing the desired scroll delta in pixel units.  You'll\n *     get the crazy differences between browsers, but at least it'll be in\n *     pixels!\n *\n *   - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT.  This\n *     should translate to positive value zooming IN, negative zooming OUT.\n *     This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n *   - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n *     with a mouse.  It results in side-scrolling in the browser by default.\n *\n *   - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n *   - I dropped spinZ/pixelZ.  It is supported by the DOM 3 'wheel' event and\n *     probably is by browsers in conjunction with fancy 3D controllers .. but\n *     you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n *   OS X + Chrome  (mouse)     -    4   pixel delta  (wheelDelta -120)\n *   OS X + Safari  (mouse)     -  N/A   pixel delta  (wheelDelta  -12)\n *   OS X + Firefox (mouse)     -    0.1 line  delta  (wheelDelta  N/A)\n *   Win8 + Chrome  (mouse)     -  100   pixel delta  (wheelDelta -120)\n *   Win8 + Firefox (mouse)     -    3   line  delta  (wheelDelta -120)\n *\n * On the trackpad:\n *\n *   OS X + Chrome  (trackpad)  -    2   pixel delta  (wheelDelta   -6)\n *   OS X + Firefox (trackpad)  -    1   pixel delta  (wheelDelta  N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ.  Some browsers provide other values to maintain\n * backward compatibility with older events.  Those other values help us\n * better normalize spin speed.  Example of what the browsers provide:\n *\n *                          | event.wheelDelta | event.detail\n *        ------------------+------------------+--------------\n *          Safari v5/OS X  |       -120       |       0\n *          Safari v5/Win7  |       -120       |       0\n *         Chrome v17/OS X  |       -120       |       0\n *         Chrome v17/Win7  |       -120       |       0\n *                IE9/Win7  |       -120       |   undefined\n *         Firefox v4/OS X  |     undefined    |       1\n *         Firefox v4/Win7  |     undefined    |       3\n *\n */\nfunction normalizeWheel(/*object*/ event) /*object*/ {\n  var sX = 0, sY = 0,       // spinX, spinY\n      pX = 0, pY = 0;       // pixelX, pixelY\n\n  // Legacy\n  if ('detail'      in event) { sY = event.detail; }\n  if ('wheelDelta'  in event) { sY = -event.wheelDelta / 120; }\n  if ('wheelDeltaY' in event) { sY = -event.wheelDeltaY / 120; }\n  if ('wheelDeltaX' in event) { sX = -event.wheelDeltaX / 120; }\n\n  // side scrolling on FF with DOMMouseScroll\n  if ( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {\n    sX = sY;\n    sY = 0;\n  }\n\n  pX = sX * PIXEL_STEP;\n  pY = sY * PIXEL_STEP;\n\n  if ('deltaY' in event) { pY = event.deltaY; }\n  if ('deltaX' in event) { pX = event.deltaX; }\n\n  if ((pX || pY) && event.deltaMode) {\n    if (event.deltaMode == 1) {          // delta in LINE units\n      pX *= LINE_HEIGHT;\n      pY *= LINE_HEIGHT;\n    } else {                             // delta in PAGE units\n      pX *= PAGE_HEIGHT;\n      pY *= PAGE_HEIGHT;\n    }\n  }\n\n  // Fall-back if spin cannot be determined\n  if (pX && !sX) { sX = (pX < 1) ? -1 : 1; }\n  if (pY && !sY) { sY = (pY < 1) ? -1 : 1; }\n\n  return { spinX  : sX,\n           spinY  : sY,\n           pixelX : pX,\n           pixelY : pY };\n}\n\n\n/**\n * The best combination if you prefer spinX + spinY normalization.  It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\nnormalizeWheel.getEventType = function() /*string*/ {\n  return (UserAgent_DEPRECATED.firefox())\n           ? 'DOMMouseScroll'\n           : (isEventSupported('wheel'))\n               ? 'wheel'\n               : 'mousewheel';\n};\n\nmodule.exports = normalizeWheel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_normalize-wheel@1.0.1@normalize-wheel/src/normalizeWheel.js\n// module id = IiIs\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\nvar getDataItemValue = _model.getDataItemValue;\n\nvar _referHelper = require(\"../../model/referHelper\");\n\nvar getCoordSysDefineBySeries = _referHelper.getCoordSysDefineBySeries;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\nvar map = _util.map;\nvar isArray = _util.isArray;\nvar isString = _util.isString;\nvar isObject = _util.isObject;\nvar isTypedArray = _util.isTypedArray;\nvar isArrayLike = _util.isArrayLike;\nvar extend = _util.extend;\nvar assert = _util.assert;\n\nvar Source = require(\"../Source\");\n\nvar _sourceType = require(\"./sourceType\");\n\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\nvar SOURCE_FORMAT_ARRAY_ROWS = _sourceType.SOURCE_FORMAT_ARRAY_ROWS;\nvar SOURCE_FORMAT_OBJECT_ROWS = _sourceType.SOURCE_FORMAT_OBJECT_ROWS;\nvar SOURCE_FORMAT_KEYED_COLUMNS = _sourceType.SOURCE_FORMAT_KEYED_COLUMNS;\nvar SOURCE_FORMAT_UNKNOWN = _sourceType.SOURCE_FORMAT_UNKNOWN;\nvar SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY;\nvar SERIES_LAYOUT_BY_ROW = _sourceType.SERIES_LAYOUT_BY_ROW;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\n/**\n * @see {module:echarts/data/Source}\n * @param {module:echarts/component/dataset/DatasetModel} datasetModel\n * @return {string} sourceFormat\n */\n\nfunction detectSourceFormat(datasetModel) {\n  var data = datasetModel.option.source;\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    // FIXME Whether tolerate null in top level array?\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (data.hasOwnProperty(key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  } else if (data != null) {\n    throw new Error('Invalid data');\n  }\n\n  inner(datasetModel).sourceFormat = sourceFormat;\n}\n/**\n * [Scenarios]:\n * (1) Provide source data directly:\n *     series: {\n *         encode: {...},\n *         dimensions: [...]\n *         seriesLayoutBy: 'row',\n *         data: [[...]]\n *     }\n * (2) Refer to datasetModel.\n *     series: [{\n *         encode: {...}\n *         // Ignore datasetIndex means `datasetIndex: 0`\n *         // and the dimensions defination in dataset is used\n *     }, {\n *         encode: {...},\n *         seriesLayoutBy: 'column',\n *         datasetIndex: 1\n *     }]\n *\n * Get data from series itself or datset.\n * @return {module:echarts/data/Source} source\n */\n\n\nfunction getSource(seriesModel) {\n  return inner(seriesModel).source;\n}\n/**\n * MUST be called before mergeOption of all series.\n * @param {module:echarts/model/Global} ecModel\n */\n\n\nfunction resetSourceDefaulter(ecModel) {\n  // `datasetMap` is used to make default encode.\n  inner(ecModel).datasetMap = createHashMap();\n}\n/**\n * [Caution]:\n * MUST be called after series option merged and\n * before \"series.getInitailData()\" called.\n *\n * [The rule of making default encode]:\n * Category axis (if exists) alway map to the first dimension.\n * Each other axis occupies a subsequent dimension.\n *\n * [Why make default encode]:\n * Simplify the typing of encode in option, avoiding the case like that:\n * series: [{encode: {x: 0, y: 1}}, {encode: {x: 0, y: 2}}, {encode: {x: 0, y: 3}}],\n * where the \"y\" have to be manually typed as \"1, 2, 3, ...\".\n *\n * @param {module:echarts/model/Series} seriesModel\n */\n\n\nfunction prepareSource(seriesModel) {\n  var seriesOption = seriesModel.option;\n  var data = seriesOption.data;\n  var sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n  var fromDataset = false;\n  var seriesLayoutBy = seriesOption.seriesLayoutBy;\n  var sourceHeader = seriesOption.sourceHeader;\n  var dimensionsDefine = seriesOption.dimensions;\n  var datasetModel = getDatasetModel(seriesModel);\n\n  if (datasetModel) {\n    var datasetOption = datasetModel.option;\n    data = datasetOption.source;\n    sourceFormat = inner(datasetModel).sourceFormat;\n    fromDataset = true; // These settings from series has higher priority.\n\n    seriesLayoutBy = seriesLayoutBy || datasetOption.seriesLayoutBy;\n    sourceHeader == null && (sourceHeader = datasetOption.sourceHeader);\n    dimensionsDefine = dimensionsDefine || datasetOption.dimensions;\n  }\n\n  var completeResult = completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine); // Note: dataset option does not have `encode`.\n\n  var encodeDefine = seriesOption.encode;\n\n  if (!encodeDefine && datasetModel) {\n    encodeDefine = makeDefaultEncode(seriesModel, datasetModel, data, sourceFormat, seriesLayoutBy, completeResult);\n  }\n\n  inner(seriesModel).source = new Source({\n    data: data,\n    fromDataset: fromDataset,\n    seriesLayoutBy: seriesLayoutBy,\n    sourceFormat: sourceFormat,\n    dimensionsDefine: completeResult.dimensionsDefine,\n    startIndex: completeResult.startIndex,\n    dimensionsDetectCount: completeResult.dimensionsDetectCount,\n    encodeDefine: encodeDefine\n  });\n} // return {startIndex, dimensionsDefine, dimensionsCount}\n\n\nfunction completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsDefine(dimensionsDefine)\n    };\n  }\n\n  var dimensionsDetectCount;\n  var startIndex;\n  var findPotentialName;\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    // Rule: Most of the first line are string: it is header.\n    // Caution: consider a line with 5 string and 1 number,\n    // it still can not be sure it is a head, because the\n    // 5 string may be 5 values of category columns.\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        // '-' is regarded as null/undefined.\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        } // 10 is an experience number, avoid long loop.\n\n      }, seriesLayoutBy, data, 10);\n    } else {\n      startIndex = sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val : '';\n      }, seriesLayoutBy, data);\n    }\n\n    dimensionsDetectCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? data.length : data[0] ? data[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n      findPotentialName = true;\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      findPotentialName = true;\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {}\n\n  var potentialNameDimIndex;\n\n  if (findPotentialName) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsDefine(dimensionsDefine),\n    dimensionsDetectCount: dimensionsDetectCount,\n    potentialNameDimIndex: potentialNameDimIndex // TODO: potentialIdDimIdx\n\n  };\n} // Consider dimensions defined like ['A', 'price', 'B', 'price', 'C', 'price'],\n// which is reasonable. But dimension name is duplicated.\n// Returns undefined or an array contains only object without null/undefiend or string.\n\n\nfunction normalizeDimensionsDefine(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    // The meaning of null/undefined is different from empty array.\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (item, index) {\n    item = extend({}, isObject(item) ? item : {\n      name: item\n    }); // User can set null in dimensions.\n    // We dont auto specify name, othewise a given name may\n    // cause it be refered unexpectedly.\n\n    if (item.name == null) {\n      return item;\n    } // Also consider number form like 2012.\n\n\n    item.name += ''; // User may also specify displayName.\n    // displayName will always exists except user not\n    // specified or dim name is not specified or detected.\n    // (A auto generated dim name will not be used as\n    // displayName).\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  maxLoop == null && (maxLoop = Infinity);\n\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {} // jshint ignore: line\n\n\n  if (obj) {\n    var dimensions = [];\n    each(obj, function (value, key) {\n      dimensions.push(key);\n    });\n    return dimensions;\n  }\n} // ??? TODO merge to completedimensions, where also has\n// default encode making logic. And the default rule\n// should depends on series? consider 'map'.\n\n\nfunction makeDefaultEncode(seriesModel, datasetModel, data, sourceFormat, seriesLayoutBy, completeResult) {\n  var coordSysDefine = getCoordSysDefineBySeries(seriesModel);\n  var encode = {}; // var encodeTooltip = [];\n  // var encodeLabel = [];\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var seriesType = seriesModel.subType; // ??? TODO refactor: provide by series itself.\n  // Consider the case: 'map' series is based on geo coordSys,\n  // 'graph', 'heatmap' can be based on cartesian. But can not\n  // give default rule simply here.\n\n  var nSeriesMap = createHashMap(['pie', 'map', 'funnel']);\n  var cSeriesMap = createHashMap(['line', 'bar', 'pictorialBar', 'scatter', 'effectScatter', 'candlestick', 'boxplot']); // Usually in this case series will use the first data\n  // dimension as the \"value\" dimension, or other default\n  // processes respectively.\n\n  if (coordSysDefine && cSeriesMap.get(seriesType) != null) {\n    var ecModel = seriesModel.ecModel;\n    var datasetMap = inner(ecModel).datasetMap;\n    var key = datasetModel.uid + '_' + seriesLayoutBy;\n    var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n      categoryWayDim: 1,\n      valueWayDim: 0\n    }); // TODO\n    // Auto detect first time axis and do arrangement.\n\n    each(coordSysDefine.coordSysDims, function (coordDim) {\n      // In value way.\n      if (coordSysDefine.firstCategoryDimIndex == null) {\n        var dataDim = datasetRecord.valueWayDim++;\n        encode[coordDim] = dataDim; // ??? TODO give a better default series name rule?\n        // especially when encode x y specified.\n        // consider: when mutiple series share one dimension\n        // category axis, series name should better use\n        // the other dimsion name. On the other hand, use\n        // both dimensions name.\n\n        encodeSeriesName.push(dataDim); // encodeTooltip.push(dataDim);\n        // encodeLabel.push(dataDim);\n      } // In category way, category axis.\n      else if (coordSysDefine.categoryAxisMap.get(coordDim)) {\n          encode[coordDim] = 0;\n          encodeItemName.push(0);\n        } // In category way, non-category axis.\n        else {\n            var dataDim = datasetRecord.categoryWayDim++;\n            encode[coordDim] = dataDim; // encodeTooltip.push(dataDim);\n            // encodeLabel.push(dataDim);\n\n            encodeSeriesName.push(dataDim);\n          }\n    });\n  } // Do not make a complex rule! Hard to code maintain and not necessary.\n  // ??? TODO refactor: provide by series itself.\n  // [{name: ..., value: ...}, ...] like:\n  else if (nSeriesMap.get(seriesType) != null) {\n      // Find the first not ordinal. (5 is an experience value)\n      var firstNotOrdinal;\n\n      for (var i = 0; i < 5 && firstNotOrdinal == null; i++) {\n        if (!doGuessOrdinal(data, sourceFormat, seriesLayoutBy, completeResult.dimensionsDefine, completeResult.startIndex, i)) {\n          firstNotOrdinal = i;\n        }\n      }\n\n      if (firstNotOrdinal != null) {\n        encode.value = firstNotOrdinal;\n        var nameDimIndex = completeResult.potentialNameDimIndex || Math.max(firstNotOrdinal - 1, 0); // By default, label use itemName in charts.\n        // So we dont set encodeLabel here.\n\n        encodeSeriesName.push(nameDimIndex);\n        encodeItemName.push(nameDimIndex); // encodeTooltip.push(firstNotOrdinal);\n      }\n    } // encodeTooltip.length && (encode.tooltip = encodeTooltip);\n  // encodeLabel.length && (encode.label = encodeLabel);\n\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\n/**\n * If return null/undefined, indicate that should not use datasetModel.\n */\n\n\nfunction getDatasetModel(seriesModel) {\n  var option = seriesModel.option; // Caution: consider the scenario:\n  // A dataset is declared and a series is not expected to use the dataset,\n  // and at the beginning `setOption({series: { noData })` (just prepare other\n  // option but no data), then `setOption({series: {data: [...]}); In this case,\n  // the user should set an empty array to avoid that dataset is used by default.\n\n  var thisData = option.data;\n\n  if (!thisData) {\n    return seriesModel.ecModel.getComponent('dataset', option.datasetIndex || 0);\n  }\n}\n/**\n * The rule should not be complex, otherwise user might not\n * be able to known where the data is wrong.\n * The code is ugly, but how to make it neat?\n *\n * @param {module:echars/data/Source} source\n * @param {number} dimIndex\n * @return {boolean} Whether ordinal.\n */\n\n\nfunction guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n} // dimIndex may be overflow source data.\n\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result; // Experience value.\n\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return false;\n  } // When sourceType is 'objectRows' or 'keyedColumns', dimensionsDefine\n  // always exists in source.\n\n\n  var dimName;\n\n  if (dimensionsDefine) {\n    dimName = dimensionsDefine[dimIndex];\n    dimName = isObject(dimName) ? dimName.name : dimName;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = data[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < data.length && i < maxLoop; i++) {\n        var row = data[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimName) {\n      return;\n    }\n\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      var item = data[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimName) {\n      return;\n    }\n\n    var sample = data[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return false;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      var item = data[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return false;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    // Consider usage convenience, '1', '2' will be treated as \"number\".\n    // `isFinit('')` get `true`.\n    if (val != null && isFinite(val) && val !== '') {\n      return false;\n    } else if (isString(val) && val !== '-') {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nexports.detectSourceFormat = detectSourceFormat;\nexports.getSource = getSource;\nexports.resetSourceDefaulter = resetSourceDefaulter;\nexports.prepareSource = prepareSource;\nexports.guessOrdinal = guessOrdinal;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/helper/sourceHelper.js\n// module id = InbI\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.string.iterator.js\n// module id = IsPG\n// module chunks = 0","/*!\n * Vue.js v2.5.17\n * (c) 2014-2018 Evan You\n * Released under the MIT License.\n */\n/*  */\n\nvar emptyObject = Object.freeze({});\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n  return v === undefined || v === null\n}\n\nfunction isDef (v) {\n  return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n  return v === true\n}\n\nfunction isFalse (v) {\n  return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n  return (\n    typeof value === 'string' ||\n    typeof value === 'number' ||\n    // $flow-disable-line\n    typeof value === 'symbol' ||\n    typeof value === 'boolean'\n  )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n  return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value e.g. [object Object]\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n  return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n  return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n  return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n  var n = parseFloat(String(val));\n  return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n  return val == null\n    ? ''\n    : typeof val === 'object'\n      ? JSON.stringify(val, null, 2)\n      : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n  var n = parseFloat(val);\n  return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n  str,\n  expectsLowerCase\n) {\n  var map = Object.create(null);\n  var list = str.split(',');\n  for (var i = 0; i < list.length; i++) {\n    map[list[i]] = true;\n  }\n  return expectsLowerCase\n    ? function (val) { return map[val.toLowerCase()]; }\n    : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n  if (arr.length) {\n    var index = arr.indexOf(item);\n    if (index > -1) {\n      return arr.splice(index, 1)\n    }\n  }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n  return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n  var cache = Object.create(null);\n  return (function cachedFn (str) {\n    var hit = cache[str];\n    return hit || (cache[str] = fn(str))\n  })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n  return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n  return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n  return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it... e.g.\n * PhantomJS 1.x. Technically we don't need this anymore since native bind is\n * now more performant in most browsers, but removing it would be breaking for\n * code that was able to run in PhantomJS 1.x, so this must be kept for\n * backwards compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n  function boundFn (a) {\n    var l = arguments.length;\n    return l\n      ? l > 1\n        ? fn.apply(ctx, arguments)\n        : fn.call(ctx, a)\n      : fn.call(ctx)\n  }\n\n  boundFn._length = fn.length;\n  return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n  return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n  ? nativeBind\n  : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n  start = start || 0;\n  var i = list.length - start;\n  var ret = new Array(i);\n  while (i--) {\n    ret[i] = list[i + start];\n  }\n  return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n  for (var key in _from) {\n    to[key] = _from[key];\n  }\n  return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n  var res = {};\n  for (var i = 0; i < arr.length; i++) {\n    if (arr[i]) {\n      extend(res, arr[i]);\n    }\n  }\n  return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n  return modules.reduce(function (keys, m) {\n    return keys.concat(m.staticKeys || [])\n  }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n  if (a === b) { return true }\n  var isObjectA = isObject(a);\n  var isObjectB = isObject(b);\n  if (isObjectA && isObjectB) {\n    try {\n      var isArrayA = Array.isArray(a);\n      var isArrayB = Array.isArray(b);\n      if (isArrayA && isArrayB) {\n        return a.length === b.length && a.every(function (e, i) {\n          return looseEqual(e, b[i])\n        })\n      } else if (!isArrayA && !isArrayB) {\n        var keysA = Object.keys(a);\n        var keysB = Object.keys(b);\n        return keysA.length === keysB.length && keysA.every(function (key) {\n          return looseEqual(a[key], b[key])\n        })\n      } else {\n        /* istanbul ignore next */\n        return false\n      }\n    } catch (e) {\n      /* istanbul ignore next */\n      return false\n    }\n  } else if (!isObjectA && !isObjectB) {\n    return String(a) === String(b)\n  } else {\n    return false\n  }\n}\n\nfunction looseIndexOf (arr, val) {\n  for (var i = 0; i < arr.length; i++) {\n    if (looseEqual(arr[i], val)) { return i }\n  }\n  return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n  var called = false;\n  return function () {\n    if (!called) {\n      called = true;\n      fn.apply(this, arguments);\n    }\n  }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n  'component',\n  'directive',\n  'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n  'beforeCreate',\n  'created',\n  'beforeMount',\n  'mounted',\n  'beforeUpdate',\n  'updated',\n  'beforeDestroy',\n  'destroyed',\n  'activated',\n  'deactivated',\n  'errorCaptured'\n];\n\n/*  */\n\nvar config = ({\n  /**\n   * Option merge strategies (used in core/util/options)\n   */\n  // $flow-disable-line\n  optionMergeStrategies: Object.create(null),\n\n  /**\n   * Whether to suppress warnings.\n   */\n  silent: false,\n\n  /**\n   * Show production mode tip message on boot?\n   */\n  productionTip: process.env.NODE_ENV !== 'production',\n\n  /**\n   * Whether to enable devtools\n   */\n  devtools: process.env.NODE_ENV !== 'production',\n\n  /**\n   * Whether to record perf\n   */\n  performance: false,\n\n  /**\n   * Error handler for watcher errors\n   */\n  errorHandler: null,\n\n  /**\n   * Warn handler for watcher warns\n   */\n  warnHandler: null,\n\n  /**\n   * Ignore certain custom elements\n   */\n  ignoredElements: [],\n\n  /**\n   * Custom user key aliases for v-on\n   */\n  // $flow-disable-line\n  keyCodes: Object.create(null),\n\n  /**\n   * Check if a tag is reserved so that it cannot be registered as a\n   * component. This is platform-dependent and may be overwritten.\n   */\n  isReservedTag: no,\n\n  /**\n   * Check if an attribute is reserved so that it cannot be used as a component\n   * prop. This is platform-dependent and may be overwritten.\n   */\n  isReservedAttr: no,\n\n  /**\n   * Check if a tag is an unknown element.\n   * Platform-dependent.\n   */\n  isUnknownElement: no,\n\n  /**\n   * Get the namespace of an element\n   */\n  getTagNamespace: noop,\n\n  /**\n   * Parse the real tag name for the specific platform.\n   */\n  parsePlatformTagName: identity,\n\n  /**\n   * Check if an attribute must be bound using property, e.g. value\n   * Platform-dependent.\n   */\n  mustUseProp: no,\n\n  /**\n   * Exposed for legacy reasons\n   */\n  _lifecycleHooks: LIFECYCLE_HOOKS\n})\n\n/*  */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n  var c = (str + '').charCodeAt(0);\n  return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n  Object.defineProperty(obj, key, {\n    value: val,\n    enumerable: !!enumerable,\n    writable: true,\n    configurable: true\n  });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n  if (bailRE.test(path)) {\n    return\n  }\n  var segments = path.split('.');\n  return function (obj) {\n    for (var i = 0; i < segments.length; i++) {\n      if (!obj) { return }\n      obj = obj[segments[i]];\n    }\n    return obj\n  }\n}\n\n/*  */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n  try {\n    var opts = {};\n    Object.defineProperty(opts, 'passive', ({\n      get: function get () {\n        /* istanbul ignore next */\n        supportsPassive = true;\n      }\n    })); // https://github.com/facebook/flow/issues/285\n    window.addEventListener('test-passive', null, opts);\n  } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n  if (_isServer === undefined) {\n    /* istanbul ignore if */\n    if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n      // detect presence of vue-server-renderer and avoid\n      // Webpack shimming the process\n      _isServer = global['process'].env.VUE_ENV === 'server';\n    } else {\n      _isServer = false;\n    }\n  }\n  return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n  return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n  typeof Symbol !== 'undefined' && isNative(Symbol) &&\n  typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n  // use native Set when available.\n  _Set = Set;\n} else {\n  // a non-standard Set polyfill that only works with primitive keys.\n  _Set = (function () {\n    function Set () {\n      this.set = Object.create(null);\n    }\n    Set.prototype.has = function has (key) {\n      return this.set[key] === true\n    };\n    Set.prototype.add = function add (key) {\n      this.set[key] = true;\n    };\n    Set.prototype.clear = function clear () {\n      this.set = Object.create(null);\n    };\n\n    return Set;\n  }());\n}\n\n/*  */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n  var hasConsole = typeof console !== 'undefined';\n  var classifyRE = /(?:^|[-_])(\\w)/g;\n  var classify = function (str) { return str\n    .replace(classifyRE, function (c) { return c.toUpperCase(); })\n    .replace(/[-_]/g, ''); };\n\n  warn = function (msg, vm) {\n    var trace = vm ? generateComponentTrace(vm) : '';\n\n    if (config.warnHandler) {\n      config.warnHandler.call(null, msg, vm, trace);\n    } else if (hasConsole && (!config.silent)) {\n      console.error((\"[Vue warn]: \" + msg + trace));\n    }\n  };\n\n  tip = function (msg, vm) {\n    if (hasConsole && (!config.silent)) {\n      console.warn(\"[Vue tip]: \" + msg + (\n        vm ? generateComponentTrace(vm) : ''\n      ));\n    }\n  };\n\n  formatComponentName = function (vm, includeFile) {\n    if (vm.$root === vm) {\n      return '<Root>'\n    }\n    var options = typeof vm === 'function' && vm.cid != null\n      ? vm.options\n      : vm._isVue\n        ? vm.$options || vm.constructor.options\n        : vm || {};\n    var name = options.name || options._componentTag;\n    var file = options.__file;\n    if (!name && file) {\n      var match = file.match(/([^/\\\\]+)\\.vue$/);\n      name = match && match[1];\n    }\n\n    return (\n      (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n      (file && includeFile !== false ? (\" at \" + file) : '')\n    )\n  };\n\n  var repeat = function (str, n) {\n    var res = '';\n    while (n) {\n      if (n % 2 === 1) { res += str; }\n      if (n > 1) { str += str; }\n      n >>= 1;\n    }\n    return res\n  };\n\n  generateComponentTrace = function (vm) {\n    if (vm._isVue && vm.$parent) {\n      var tree = [];\n      var currentRecursiveSequence = 0;\n      while (vm) {\n        if (tree.length > 0) {\n          var last = tree[tree.length - 1];\n          if (last.constructor === vm.constructor) {\n            currentRecursiveSequence++;\n            vm = vm.$parent;\n            continue\n          } else if (currentRecursiveSequence > 0) {\n            tree[tree.length - 1] = [last, currentRecursiveSequence];\n            currentRecursiveSequence = 0;\n          }\n        }\n        tree.push(vm);\n        vm = vm.$parent;\n      }\n      return '\\n\\nfound in\\n\\n' + tree\n        .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n            ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n            : formatComponentName(vm))); })\n        .join('\\n')\n    } else {\n      return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n    }\n  };\n}\n\n/*  */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n  this.id = uid++;\n  this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n  this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n  remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n  if (Dep.target) {\n    Dep.target.addDep(this);\n  }\n};\n\nDep.prototype.notify = function notify () {\n  // stabilize the subscriber list first\n  var subs = this.subs.slice();\n  for (var i = 0, l = subs.length; i < l; i++) {\n    subs[i].update();\n  }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n  if (Dep.target) { targetStack.push(Dep.target); }\n  Dep.target = _target;\n}\n\nfunction popTarget () {\n  Dep.target = targetStack.pop();\n}\n\n/*  */\n\nvar VNode = function VNode (\n  tag,\n  data,\n  children,\n  text,\n  elm,\n  context,\n  componentOptions,\n  asyncFactory\n) {\n  this.tag = tag;\n  this.data = data;\n  this.children = children;\n  this.text = text;\n  this.elm = elm;\n  this.ns = undefined;\n  this.context = context;\n  this.fnContext = undefined;\n  this.fnOptions = undefined;\n  this.fnScopeId = undefined;\n  this.key = data && data.key;\n  this.componentOptions = componentOptions;\n  this.componentInstance = undefined;\n  this.parent = undefined;\n  this.raw = false;\n  this.isStatic = false;\n  this.isRootInsert = true;\n  this.isComment = false;\n  this.isCloned = false;\n  this.isOnce = false;\n  this.asyncFactory = asyncFactory;\n  this.asyncMeta = undefined;\n  this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n  return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n  if ( text === void 0 ) text = '';\n\n  var node = new VNode();\n  node.text = text;\n  node.isComment = true;\n  return node\n};\n\nfunction createTextVNode (val) {\n  return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n  var cloned = new VNode(\n    vnode.tag,\n    vnode.data,\n    vnode.children,\n    vnode.text,\n    vnode.elm,\n    vnode.context,\n    vnode.componentOptions,\n    vnode.asyncFactory\n  );\n  cloned.ns = vnode.ns;\n  cloned.isStatic = vnode.isStatic;\n  cloned.key = vnode.key;\n  cloned.isComment = vnode.isComment;\n  cloned.fnContext = vnode.fnContext;\n  cloned.fnOptions = vnode.fnOptions;\n  cloned.fnScopeId = vnode.fnScopeId;\n  cloned.isCloned = true;\n  return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n  'push',\n  'pop',\n  'shift',\n  'unshift',\n  'splice',\n  'sort',\n  'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n  // cache original method\n  var original = arrayProto[method];\n  def(arrayMethods, method, function mutator () {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    var result = original.apply(this, args);\n    var ob = this.__ob__;\n    var inserted;\n    switch (method) {\n      case 'push':\n      case 'unshift':\n        inserted = args;\n        break\n      case 'splice':\n        inserted = args.slice(2);\n        break\n    }\n    if (inserted) { ob.observeArray(inserted); }\n    // notify change\n    ob.dep.notify();\n    return result\n  });\n});\n\n/*  */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n  shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n  this.value = value;\n  this.dep = new Dep();\n  this.vmCount = 0;\n  def(value, '__ob__', this);\n  if (Array.isArray(value)) {\n    var augment = hasProto\n      ? protoAugment\n      : copyAugment;\n    augment(value, arrayMethods, arrayKeys);\n    this.observeArray(value);\n  } else {\n    this.walk(value);\n  }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n  var keys = Object.keys(obj);\n  for (var i = 0; i < keys.length; i++) {\n    defineReactive(obj, keys[i]);\n  }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n  for (var i = 0, l = items.length; i < l; i++) {\n    observe(items[i]);\n  }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n  /* eslint-disable no-proto */\n  target.__proto__ = src;\n  /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n  for (var i = 0, l = keys.length; i < l; i++) {\n    var key = keys[i];\n    def(target, key, src[key]);\n  }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n  if (!isObject(value) || value instanceof VNode) {\n    return\n  }\n  var ob;\n  if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n    ob = value.__ob__;\n  } else if (\n    shouldObserve &&\n    !isServerRendering() &&\n    (Array.isArray(value) || isPlainObject(value)) &&\n    Object.isExtensible(value) &&\n    !value._isVue\n  ) {\n    ob = new Observer(value);\n  }\n  if (asRootData && ob) {\n    ob.vmCount++;\n  }\n  return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive (\n  obj,\n  key,\n  val,\n  customSetter,\n  shallow\n) {\n  var dep = new Dep();\n\n  var property = Object.getOwnPropertyDescriptor(obj, key);\n  if (property && property.configurable === false) {\n    return\n  }\n\n  // cater for pre-defined getter/setters\n  var getter = property && property.get;\n  if (!getter && arguments.length === 2) {\n    val = obj[key];\n  }\n  var setter = property && property.set;\n\n  var childOb = !shallow && observe(val);\n  Object.defineProperty(obj, key, {\n    enumerable: true,\n    configurable: true,\n    get: function reactiveGetter () {\n      var value = getter ? getter.call(obj) : val;\n      if (Dep.target) {\n        dep.depend();\n        if (childOb) {\n          childOb.dep.depend();\n          if (Array.isArray(value)) {\n            dependArray(value);\n          }\n        }\n      }\n      return value\n    },\n    set: function reactiveSetter (newVal) {\n      var value = getter ? getter.call(obj) : val;\n      /* eslint-disable no-self-compare */\n      if (newVal === value || (newVal !== newVal && value !== value)) {\n        return\n      }\n      /* eslint-enable no-self-compare */\n      if (process.env.NODE_ENV !== 'production' && customSetter) {\n        customSetter();\n      }\n      if (setter) {\n        setter.call(obj, newVal);\n      } else {\n        val = newVal;\n      }\n      childOb = !shallow && observe(newVal);\n      dep.notify();\n    }\n  });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n  if (process.env.NODE_ENV !== 'production' &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.length = Math.max(target.length, key);\n    target.splice(key, 1, val);\n    return val\n  }\n  if (key in target && !(key in Object.prototype)) {\n    target[key] = val;\n    return val\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      'Avoid adding reactive properties to a Vue instance or its root $data ' +\n      'at runtime - declare it upfront in the data option.'\n    );\n    return val\n  }\n  if (!ob) {\n    target[key] = val;\n    return val\n  }\n  defineReactive(ob.value, key, val);\n  ob.dep.notify();\n  return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n  if (process.env.NODE_ENV !== 'production' &&\n    (isUndef(target) || isPrimitive(target))\n  ) {\n    warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n  }\n  if (Array.isArray(target) && isValidArrayIndex(key)) {\n    target.splice(key, 1);\n    return\n  }\n  var ob = (target).__ob__;\n  if (target._isVue || (ob && ob.vmCount)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      'Avoid deleting properties on a Vue instance or its root $data ' +\n      '- just set it to null.'\n    );\n    return\n  }\n  if (!hasOwn(target, key)) {\n    return\n  }\n  delete target[key];\n  if (!ob) {\n    return\n  }\n  ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n  for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n    e = value[i];\n    e && e.__ob__ && e.__ob__.dep.depend();\n    if (Array.isArray(e)) {\n      dependArray(e);\n    }\n  }\n}\n\n/*  */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n  strats.el = strats.propsData = function (parent, child, vm, key) {\n    if (!vm) {\n      warn(\n        \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n        'creation with the `new` keyword.'\n      );\n    }\n    return defaultStrat(parent, child)\n  };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n  if (!from) { return to }\n  var key, toVal, fromVal;\n  var keys = Object.keys(from);\n  for (var i = 0; i < keys.length; i++) {\n    key = keys[i];\n    toVal = to[key];\n    fromVal = from[key];\n    if (!hasOwn(to, key)) {\n      set(to, key, fromVal);\n    } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n      mergeData(toVal, fromVal);\n    }\n  }\n  return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    // in a Vue.extend merge, both should be functions\n    if (!childVal) {\n      return parentVal\n    }\n    if (!parentVal) {\n      return childVal\n    }\n    // when parentVal & childVal are both present,\n    // we need to return a function that returns the\n    // merged result of both functions... no need to\n    // check if parentVal is a function here because\n    // it has to be a function to pass previous merges.\n    return function mergedDataFn () {\n      return mergeData(\n        typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n        typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n      )\n    }\n  } else {\n    return function mergedInstanceDataFn () {\n      // instance merge\n      var instanceData = typeof childVal === 'function'\n        ? childVal.call(vm, vm)\n        : childVal;\n      var defaultData = typeof parentVal === 'function'\n        ? parentVal.call(vm, vm)\n        : parentVal;\n      if (instanceData) {\n        return mergeData(instanceData, defaultData)\n      } else {\n        return defaultData\n      }\n    }\n  }\n}\n\nstrats.data = function (\n  parentVal,\n  childVal,\n  vm\n) {\n  if (!vm) {\n    if (childVal && typeof childVal !== 'function') {\n      process.env.NODE_ENV !== 'production' && warn(\n        'The \"data\" option should be a function ' +\n        'that returns a per-instance value in component ' +\n        'definitions.',\n        vm\n      );\n\n      return parentVal\n    }\n    return mergeDataOrFn(parentVal, childVal)\n  }\n\n  return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n  parentVal,\n  childVal\n) {\n  return childVal\n    ? parentVal\n      ? parentVal.concat(childVal)\n      : Array.isArray(childVal)\n        ? childVal\n        : [childVal]\n    : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n  strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  var res = Object.create(parentVal || null);\n  if (childVal) {\n    process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n    return extend(res, childVal)\n  } else {\n    return res\n  }\n}\n\nASSET_TYPES.forEach(function (type) {\n  strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  // work around Firefox's Object.prototype.watch...\n  if (parentVal === nativeWatch) { parentVal = undefined; }\n  if (childVal === nativeWatch) { childVal = undefined; }\n  /* istanbul ignore if */\n  if (!childVal) { return Object.create(parentVal || null) }\n  if (process.env.NODE_ENV !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = {};\n  extend(ret, parentVal);\n  for (var key$1 in childVal) {\n    var parent = ret[key$1];\n    var child = childVal[key$1];\n    if (parent && !Array.isArray(parent)) {\n      parent = [parent];\n    }\n    ret[key$1] = parent\n      ? parent.concat(child)\n      : Array.isArray(child) ? child : [child];\n  }\n  return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n  parentVal,\n  childVal,\n  vm,\n  key\n) {\n  if (childVal && process.env.NODE_ENV !== 'production') {\n    assertObjectType(key, childVal, vm);\n  }\n  if (!parentVal) { return childVal }\n  var ret = Object.create(null);\n  extend(ret, parentVal);\n  if (childVal) { extend(ret, childVal); }\n  return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n  return childVal === undefined\n    ? parentVal\n    : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n  for (var key in options.components) {\n    validateComponentName(key);\n  }\n}\n\nfunction validateComponentName (name) {\n  if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n    warn(\n      'Invalid component name: \"' + name + '\". Component names ' +\n      'can only contain alphanumeric characters and the hyphen, ' +\n      'and must start with a letter.'\n    );\n  }\n  if (isBuiltInTag(name) || config.isReservedTag(name)) {\n    warn(\n      'Do not use built-in or reserved HTML elements as component ' +\n      'id: ' + name\n    );\n  }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n  var props = options.props;\n  if (!props) { return }\n  var res = {};\n  var i, val, name;\n  if (Array.isArray(props)) {\n    i = props.length;\n    while (i--) {\n      val = props[i];\n      if (typeof val === 'string') {\n        name = camelize(val);\n        res[name] = { type: null };\n      } else if (process.env.NODE_ENV !== 'production') {\n        warn('props must be strings when using array syntax.');\n      }\n    }\n  } else if (isPlainObject(props)) {\n    for (var key in props) {\n      val = props[key];\n      name = camelize(key);\n      res[name] = isPlainObject(val)\n        ? val\n        : { type: val };\n    }\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn(\n      \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(props)) + \".\",\n      vm\n    );\n  }\n  options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n  var inject = options.inject;\n  if (!inject) { return }\n  var normalized = options.inject = {};\n  if (Array.isArray(inject)) {\n    for (var i = 0; i < inject.length; i++) {\n      normalized[inject[i]] = { from: inject[i] };\n    }\n  } else if (isPlainObject(inject)) {\n    for (var key in inject) {\n      var val = inject[key];\n      normalized[key] = isPlainObject(val)\n        ? extend({ from: key }, val)\n        : { from: val };\n    }\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn(\n      \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n      \"but got \" + (toRawType(inject)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n  var dirs = options.directives;\n  if (dirs) {\n    for (var key in dirs) {\n      var def = dirs[key];\n      if (typeof def === 'function') {\n        dirs[key] = { bind: def, update: def };\n      }\n    }\n  }\n}\n\nfunction assertObjectType (name, value, vm) {\n  if (!isPlainObject(value)) {\n    warn(\n      \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n      \"but got \" + (toRawType(value)) + \".\",\n      vm\n    );\n  }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n  parent,\n  child,\n  vm\n) {\n  if (process.env.NODE_ENV !== 'production') {\n    checkComponents(child);\n  }\n\n  if (typeof child === 'function') {\n    child = child.options;\n  }\n\n  normalizeProps(child, vm);\n  normalizeInject(child, vm);\n  normalizeDirectives(child);\n  var extendsFrom = child.extends;\n  if (extendsFrom) {\n    parent = mergeOptions(parent, extendsFrom, vm);\n  }\n  if (child.mixins) {\n    for (var i = 0, l = child.mixins.length; i < l; i++) {\n      parent = mergeOptions(parent, child.mixins[i], vm);\n    }\n  }\n  var options = {};\n  var key;\n  for (key in parent) {\n    mergeField(key);\n  }\n  for (key in child) {\n    if (!hasOwn(parent, key)) {\n      mergeField(key);\n    }\n  }\n  function mergeField (key) {\n    var strat = strats[key] || defaultStrat;\n    options[key] = strat(parent[key], child[key], vm, key);\n  }\n  return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n  options,\n  type,\n  id,\n  warnMissing\n) {\n  /* istanbul ignore if */\n  if (typeof id !== 'string') {\n    return\n  }\n  var assets = options[type];\n  // check local registration variations first\n  if (hasOwn(assets, id)) { return assets[id] }\n  var camelizedId = camelize(id);\n  if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n  var PascalCaseId = capitalize(camelizedId);\n  if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n  // fallback to prototype chain\n  var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n  if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n    warn(\n      'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n      options\n    );\n  }\n  return res\n}\n\n/*  */\n\nfunction validateProp (\n  key,\n  propOptions,\n  propsData,\n  vm\n) {\n  var prop = propOptions[key];\n  var absent = !hasOwn(propsData, key);\n  var value = propsData[key];\n  // boolean casting\n  var booleanIndex = getTypeIndex(Boolean, prop.type);\n  if (booleanIndex > -1) {\n    if (absent && !hasOwn(prop, 'default')) {\n      value = false;\n    } else if (value === '' || value === hyphenate(key)) {\n      // only cast empty string / same name to boolean if\n      // boolean has higher priority\n      var stringIndex = getTypeIndex(String, prop.type);\n      if (stringIndex < 0 || booleanIndex < stringIndex) {\n        value = true;\n      }\n    }\n  }\n  // check default value\n  if (value === undefined) {\n    value = getPropDefaultValue(vm, prop, key);\n    // since the default value is a fresh copy,\n    // make sure to observe it.\n    var prevShouldObserve = shouldObserve;\n    toggleObserving(true);\n    observe(value);\n    toggleObserving(prevShouldObserve);\n  }\n  if (\n    process.env.NODE_ENV !== 'production' &&\n    // skip validation for weex recycle-list child component props\n    !(false && isObject(value) && ('@binding' in value))\n  ) {\n    assertProp(prop, key, value, vm, absent);\n  }\n  return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n  // no default, return undefined\n  if (!hasOwn(prop, 'default')) {\n    return undefined\n  }\n  var def = prop.default;\n  // warn against non-factory defaults for Object & Array\n  if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n    warn(\n      'Invalid default value for prop \"' + key + '\": ' +\n      'Props with type Object/Array must use a factory function ' +\n      'to return the default value.',\n      vm\n    );\n  }\n  // the raw prop value was also undefined from previous render,\n  // return previous default value to avoid unnecessary watcher trigger\n  if (vm && vm.$options.propsData &&\n    vm.$options.propsData[key] === undefined &&\n    vm._props[key] !== undefined\n  ) {\n    return vm._props[key]\n  }\n  // call factory function for non-Function types\n  // a value is Function if its prototype is function even across different execution context\n  return typeof def === 'function' && getType(prop.type) !== 'Function'\n    ? def.call(vm)\n    : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n  prop,\n  name,\n  value,\n  vm,\n  absent\n) {\n  if (prop.required && absent) {\n    warn(\n      'Missing required prop: \"' + name + '\"',\n      vm\n    );\n    return\n  }\n  if (value == null && !prop.required) {\n    return\n  }\n  var type = prop.type;\n  var valid = !type || type === true;\n  var expectedTypes = [];\n  if (type) {\n    if (!Array.isArray(type)) {\n      type = [type];\n    }\n    for (var i = 0; i < type.length && !valid; i++) {\n      var assertedType = assertType(value, type[i]);\n      expectedTypes.push(assertedType.expectedType || '');\n      valid = assertedType.valid;\n    }\n  }\n  if (!valid) {\n    warn(\n      \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n      \" Expected \" + (expectedTypes.map(capitalize).join(', ')) +\n      \", got \" + (toRawType(value)) + \".\",\n      vm\n    );\n    return\n  }\n  var validator = prop.validator;\n  if (validator) {\n    if (!validator(value)) {\n      warn(\n        'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n        vm\n      );\n    }\n  }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n  var valid;\n  var expectedType = getType(type);\n  if (simpleCheckRE.test(expectedType)) {\n    var t = typeof value;\n    valid = t === expectedType.toLowerCase();\n    // for primitive wrapper objects\n    if (!valid && t === 'object') {\n      valid = value instanceof type;\n    }\n  } else if (expectedType === 'Object') {\n    valid = isPlainObject(value);\n  } else if (expectedType === 'Array') {\n    valid = Array.isArray(value);\n  } else {\n    valid = value instanceof type;\n  }\n  return {\n    valid: valid,\n    expectedType: expectedType\n  }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n  var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n  return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n  return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n  if (!Array.isArray(expectedTypes)) {\n    return isSameType(expectedTypes, type) ? 0 : -1\n  }\n  for (var i = 0, len = expectedTypes.length; i < len; i++) {\n    if (isSameType(expectedTypes[i], type)) {\n      return i\n    }\n  }\n  return -1\n}\n\n/*  */\n\nfunction handleError (err, vm, info) {\n  if (vm) {\n    var cur = vm;\n    while ((cur = cur.$parent)) {\n      var hooks = cur.$options.errorCaptured;\n      if (hooks) {\n        for (var i = 0; i < hooks.length; i++) {\n          try {\n            var capture = hooks[i].call(cur, err, vm, info) === false;\n            if (capture) { return }\n          } catch (e) {\n            globalHandleError(e, cur, 'errorCaptured hook');\n          }\n        }\n      }\n    }\n  }\n  globalHandleError(err, vm, info);\n}\n\nfunction globalHandleError (err, vm, info) {\n  if (config.errorHandler) {\n    try {\n      return config.errorHandler.call(null, err, vm, info)\n    } catch (e) {\n      logError(e, null, 'config.errorHandler');\n    }\n  }\n  logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n  }\n  /* istanbul ignore else */\n  if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n    console.error(err);\n  } else {\n    throw err\n  }\n}\n\n/*  */\n/* globals MessageChannel */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n  pending = false;\n  var copies = callbacks.slice(0);\n  callbacks.length = 0;\n  for (var i = 0; i < copies.length; i++) {\n    copies[i]();\n  }\n}\n\n// Here we have async deferring wrappers using both microtasks and (macro) tasks.\n// In < 2.4 we used microtasks everywhere, but there are some scenarios where\n// microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690) or even between bubbling of the same\n// event (#6566). However, using (macro) tasks everywhere also has subtle problems\n// when state is changed right before repaint (e.g. #6813, out-in transitions).\n// Here we use microtask by default, but expose a way to force (macro) task when\n// needed (e.g. in event handlers attached by v-on).\nvar microTimerFunc;\nvar macroTimerFunc;\nvar useMacroTask = false;\n\n// Determine (macro) task defer implementation.\n// Technically setImmediate should be the ideal choice, but it's only available\n// in IE. The only polyfill that consistently queues the callback after all DOM\n// events triggered in the same loop is by using MessageChannel.\n/* istanbul ignore if */\nif (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n  macroTimerFunc = function () {\n    setImmediate(flushCallbacks);\n  };\n} else if (typeof MessageChannel !== 'undefined' && (\n  isNative(MessageChannel) ||\n  // PhantomJS\n  MessageChannel.toString() === '[object MessageChannelConstructor]'\n)) {\n  var channel = new MessageChannel();\n  var port = channel.port2;\n  channel.port1.onmessage = flushCallbacks;\n  macroTimerFunc = function () {\n    port.postMessage(1);\n  };\n} else {\n  /* istanbul ignore next */\n  macroTimerFunc = function () {\n    setTimeout(flushCallbacks, 0);\n  };\n}\n\n// Determine microtask defer implementation.\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n  var p = Promise.resolve();\n  microTimerFunc = function () {\n    p.then(flushCallbacks);\n    // in problematic UIWebViews, Promise.then doesn't completely break, but\n    // it can get stuck in a weird state where callbacks are pushed into the\n    // microtask queue but the queue isn't being flushed, until the browser\n    // needs to do some other work, e.g. handle a timer. Therefore we can\n    // \"force\" the microtask queue to be flushed by adding an empty timer.\n    if (isIOS) { setTimeout(noop); }\n  };\n} else {\n  // fallback to macro\n  microTimerFunc = macroTimerFunc;\n}\n\n/**\n * Wrap a function so that if any code inside triggers state change,\n * the changes are queued using a (macro) task instead of a microtask.\n */\nfunction withMacroTask (fn) {\n  return fn._withTask || (fn._withTask = function () {\n    useMacroTask = true;\n    var res = fn.apply(null, arguments);\n    useMacroTask = false;\n    return res\n  })\n}\n\nfunction nextTick (cb, ctx) {\n  var _resolve;\n  callbacks.push(function () {\n    if (cb) {\n      try {\n        cb.call(ctx);\n      } catch (e) {\n        handleError(e, ctx, 'nextTick');\n      }\n    } else if (_resolve) {\n      _resolve(ctx);\n    }\n  });\n  if (!pending) {\n    pending = true;\n    if (useMacroTask) {\n      macroTimerFunc();\n    } else {\n      microTimerFunc();\n    }\n  }\n  // $flow-disable-line\n  if (!cb && typeof Promise !== 'undefined') {\n    return new Promise(function (resolve) {\n      _resolve = resolve;\n    })\n  }\n}\n\n/*  */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n  var perf = inBrowser && window.performance;\n  /* istanbul ignore if */\n  if (\n    perf &&\n    perf.mark &&\n    perf.measure &&\n    perf.clearMarks &&\n    perf.clearMeasures\n  ) {\n    mark = function (tag) { return perf.mark(tag); };\n    measure = function (name, startTag, endTag) {\n      perf.measure(name, startTag, endTag);\n      perf.clearMarks(startTag);\n      perf.clearMarks(endTag);\n      perf.clearMeasures(name);\n    };\n  }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n  var allowedGlobals = makeMap(\n    'Infinity,undefined,NaN,isFinite,isNaN,' +\n    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n    'require' // for Webpack/Browserify\n  );\n\n  var warnNonPresent = function (target, key) {\n    warn(\n      \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n      'referenced during render. Make sure that this property is reactive, ' +\n      'either in the data option, or for class-based components, by ' +\n      'initializing the property. ' +\n      'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n      target\n    );\n  };\n\n  var hasProxy =\n    typeof Proxy !== 'undefined' && isNative(Proxy);\n\n  if (hasProxy) {\n    var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n    config.keyCodes = new Proxy(config.keyCodes, {\n      set: function set (target, key, value) {\n        if (isBuiltInModifier(key)) {\n          warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n          return false\n        } else {\n          target[key] = value;\n          return true\n        }\n      }\n    });\n  }\n\n  var hasHandler = {\n    has: function has (target, key) {\n      var has = key in target;\n      var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n      if (!has && !isAllowed) {\n        warnNonPresent(target, key);\n      }\n      return has || !isAllowed\n    }\n  };\n\n  var getHandler = {\n    get: function get (target, key) {\n      if (typeof key === 'string' && !(key in target)) {\n        warnNonPresent(target, key);\n      }\n      return target[key]\n    }\n  };\n\n  initProxy = function initProxy (vm) {\n    if (hasProxy) {\n      // determine which proxy handler to use\n      var options = vm.$options;\n      var handlers = options.render && options.render._withStripped\n        ? getHandler\n        : hasHandler;\n      vm._renderProxy = new Proxy(vm, handlers);\n    } else {\n      vm._renderProxy = vm;\n    }\n  };\n}\n\n/*  */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n  _traverse(val, seenObjects);\n  seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n  var i, keys;\n  var isA = Array.isArray(val);\n  if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n    return\n  }\n  if (val.__ob__) {\n    var depId = val.__ob__.dep.id;\n    if (seen.has(depId)) {\n      return\n    }\n    seen.add(depId);\n  }\n  if (isA) {\n    i = val.length;\n    while (i--) { _traverse(val[i], seen); }\n  } else {\n    keys = Object.keys(val);\n    i = keys.length;\n    while (i--) { _traverse(val[keys[i]], seen); }\n  }\n}\n\n/*  */\n\nvar normalizeEvent = cached(function (name) {\n  var passive = name.charAt(0) === '&';\n  name = passive ? name.slice(1) : name;\n  var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n  name = once$$1 ? name.slice(1) : name;\n  var capture = name.charAt(0) === '!';\n  name = capture ? name.slice(1) : name;\n  return {\n    name: name,\n    once: once$$1,\n    capture: capture,\n    passive: passive\n  }\n});\n\nfunction createFnInvoker (fns) {\n  function invoker () {\n    var arguments$1 = arguments;\n\n    var fns = invoker.fns;\n    if (Array.isArray(fns)) {\n      var cloned = fns.slice();\n      for (var i = 0; i < cloned.length; i++) {\n        cloned[i].apply(null, arguments$1);\n      }\n    } else {\n      // return handler return value for single handlers\n      return fns.apply(null, arguments)\n    }\n  }\n  invoker.fns = fns;\n  return invoker\n}\n\nfunction updateListeners (\n  on,\n  oldOn,\n  add,\n  remove$$1,\n  vm\n) {\n  var name, def, cur, old, event;\n  for (name in on) {\n    def = cur = on[name];\n    old = oldOn[name];\n    event = normalizeEvent(name);\n    /* istanbul ignore if */\n    if (isUndef(cur)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n        vm\n      );\n    } else if (isUndef(old)) {\n      if (isUndef(cur.fns)) {\n        cur = on[name] = createFnInvoker(cur);\n      }\n      add(event.name, cur, event.once, event.capture, event.passive, event.params);\n    } else if (cur !== old) {\n      old.fns = cur;\n      on[name] = old;\n    }\n  }\n  for (name in oldOn) {\n    if (isUndef(on[name])) {\n      event = normalizeEvent(name);\n      remove$$1(event.name, oldOn[name], event.capture);\n    }\n  }\n}\n\n/*  */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n  if (def instanceof VNode) {\n    def = def.data.hook || (def.data.hook = {});\n  }\n  var invoker;\n  var oldHook = def[hookKey];\n\n  function wrappedHook () {\n    hook.apply(this, arguments);\n    // important: remove merged hook to ensure it's called only once\n    // and prevent memory leak\n    remove(invoker.fns, wrappedHook);\n  }\n\n  if (isUndef(oldHook)) {\n    // no existing hook\n    invoker = createFnInvoker([wrappedHook]);\n  } else {\n    /* istanbul ignore if */\n    if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n      // already a merged invoker\n      invoker = oldHook;\n      invoker.fns.push(wrappedHook);\n    } else {\n      // existing plain hook\n      invoker = createFnInvoker([oldHook, wrappedHook]);\n    }\n  }\n\n  invoker.merged = true;\n  def[hookKey] = invoker;\n}\n\n/*  */\n\nfunction extractPropsFromVNodeData (\n  data,\n  Ctor,\n  tag\n) {\n  // we are only extracting raw values here.\n  // validation and default values are handled in the child\n  // component itself.\n  var propOptions = Ctor.options.props;\n  if (isUndef(propOptions)) {\n    return\n  }\n  var res = {};\n  var attrs = data.attrs;\n  var props = data.props;\n  if (isDef(attrs) || isDef(props)) {\n    for (var key in propOptions) {\n      var altKey = hyphenate(key);\n      if (process.env.NODE_ENV !== 'production') {\n        var keyInLowerCase = key.toLowerCase();\n        if (\n          key !== keyInLowerCase &&\n          attrs && hasOwn(attrs, keyInLowerCase)\n        ) {\n          tip(\n            \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n            (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n            \" \\\"\" + key + \"\\\". \" +\n            \"Note that HTML attributes are case-insensitive and camelCased \" +\n            \"props need to use their kebab-case equivalents when using in-DOM \" +\n            \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n          );\n        }\n      }\n      checkProp(res, props, key, altKey, true) ||\n      checkProp(res, attrs, key, altKey, false);\n    }\n  }\n  return res\n}\n\nfunction checkProp (\n  res,\n  hash,\n  key,\n  altKey,\n  preserve\n) {\n  if (isDef(hash)) {\n    if (hasOwn(hash, key)) {\n      res[key] = hash[key];\n      if (!preserve) {\n        delete hash[key];\n      }\n      return true\n    } else if (hasOwn(hash, altKey)) {\n      res[key] = hash[altKey];\n      if (!preserve) {\n        delete hash[altKey];\n      }\n      return true\n    }\n  }\n  return false\n}\n\n/*  */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n  for (var i = 0; i < children.length; i++) {\n    if (Array.isArray(children[i])) {\n      return Array.prototype.concat.apply([], children)\n    }\n  }\n  return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n  return isPrimitive(children)\n    ? [createTextVNode(children)]\n    : Array.isArray(children)\n      ? normalizeArrayChildren(children)\n      : undefined\n}\n\nfunction isTextNode (node) {\n  return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n  var res = [];\n  var i, c, lastIndex, last;\n  for (i = 0; i < children.length; i++) {\n    c = children[i];\n    if (isUndef(c) || typeof c === 'boolean') { continue }\n    lastIndex = res.length - 1;\n    last = res[lastIndex];\n    //  nested\n    if (Array.isArray(c)) {\n      if (c.length > 0) {\n        c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n        // merge adjacent text nodes\n        if (isTextNode(c[0]) && isTextNode(last)) {\n          res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n          c.shift();\n        }\n        res.push.apply(res, c);\n      }\n    } else if (isPrimitive(c)) {\n      if (isTextNode(last)) {\n        // merge adjacent text nodes\n        // this is necessary for SSR hydration because text nodes are\n        // essentially merged when rendered to HTML strings\n        res[lastIndex] = createTextVNode(last.text + c);\n      } else if (c !== '') {\n        // convert primitive to vnode\n        res.push(createTextVNode(c));\n      }\n    } else {\n      if (isTextNode(c) && isTextNode(last)) {\n        // merge adjacent text nodes\n        res[lastIndex] = createTextVNode(last.text + c.text);\n      } else {\n        // default key for nested array children (likely generated by v-for)\n        if (isTrue(children._isVList) &&\n          isDef(c.tag) &&\n          isUndef(c.key) &&\n          isDef(nestedIndex)) {\n          c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n        }\n        res.push(c);\n      }\n    }\n  }\n  return res\n}\n\n/*  */\n\nfunction ensureCtor (comp, base) {\n  if (\n    comp.__esModule ||\n    (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n  ) {\n    comp = comp.default;\n  }\n  return isObject(comp)\n    ? base.extend(comp)\n    : comp\n}\n\nfunction createAsyncPlaceholder (\n  factory,\n  data,\n  context,\n  children,\n  tag\n) {\n  var node = createEmptyVNode();\n  node.asyncFactory = factory;\n  node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n  return node\n}\n\nfunction resolveAsyncComponent (\n  factory,\n  baseCtor,\n  context\n) {\n  if (isTrue(factory.error) && isDef(factory.errorComp)) {\n    return factory.errorComp\n  }\n\n  if (isDef(factory.resolved)) {\n    return factory.resolved\n  }\n\n  if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n    return factory.loadingComp\n  }\n\n  if (isDef(factory.contexts)) {\n    // already pending\n    factory.contexts.push(context);\n  } else {\n    var contexts = factory.contexts = [context];\n    var sync = true;\n\n    var forceRender = function () {\n      for (var i = 0, l = contexts.length; i < l; i++) {\n        contexts[i].$forceUpdate();\n      }\n    };\n\n    var resolve = once(function (res) {\n      // cache resolved\n      factory.resolved = ensureCtor(res, baseCtor);\n      // invoke callbacks only if this is not a synchronous resolve\n      // (async resolves are shimmed as synchronous during SSR)\n      if (!sync) {\n        forceRender();\n      }\n    });\n\n    var reject = once(function (reason) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Failed to resolve async component: \" + (String(factory)) +\n        (reason ? (\"\\nReason: \" + reason) : '')\n      );\n      if (isDef(factory.errorComp)) {\n        factory.error = true;\n        forceRender();\n      }\n    });\n\n    var res = factory(resolve, reject);\n\n    if (isObject(res)) {\n      if (typeof res.then === 'function') {\n        // () => Promise\n        if (isUndef(factory.resolved)) {\n          res.then(resolve, reject);\n        }\n      } else if (isDef(res.component) && typeof res.component.then === 'function') {\n        res.component.then(resolve, reject);\n\n        if (isDef(res.error)) {\n          factory.errorComp = ensureCtor(res.error, baseCtor);\n        }\n\n        if (isDef(res.loading)) {\n          factory.loadingComp = ensureCtor(res.loading, baseCtor);\n          if (res.delay === 0) {\n            factory.loading = true;\n          } else {\n            setTimeout(function () {\n              if (isUndef(factory.resolved) && isUndef(factory.error)) {\n                factory.loading = true;\n                forceRender();\n              }\n            }, res.delay || 200);\n          }\n        }\n\n        if (isDef(res.timeout)) {\n          setTimeout(function () {\n            if (isUndef(factory.resolved)) {\n              reject(\n                process.env.NODE_ENV !== 'production'\n                  ? (\"timeout (\" + (res.timeout) + \"ms)\")\n                  : null\n              );\n            }\n          }, res.timeout);\n        }\n      }\n    }\n\n    sync = false;\n    // return in case resolved synchronously\n    return factory.loading\n      ? factory.loadingComp\n      : factory.resolved\n  }\n}\n\n/*  */\n\nfunction isAsyncPlaceholder (node) {\n  return node.isComment && node.asyncFactory\n}\n\n/*  */\n\nfunction getFirstComponentChild (children) {\n  if (Array.isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      var c = children[i];\n      if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n        return c\n      }\n    }\n  }\n}\n\n/*  */\n\n/*  */\n\nfunction initEvents (vm) {\n  vm._events = Object.create(null);\n  vm._hasHookEvent = false;\n  // init parent attached events\n  var listeners = vm.$options._parentListeners;\n  if (listeners) {\n    updateComponentListeners(vm, listeners);\n  }\n}\n\nvar target;\n\nfunction add (event, fn, once) {\n  if (once) {\n    target.$once(event, fn);\n  } else {\n    target.$on(event, fn);\n  }\n}\n\nfunction remove$1 (event, fn) {\n  target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n  vm,\n  listeners,\n  oldListeners\n) {\n  target = vm;\n  updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n  target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n  var hookRE = /^hook:/;\n  Vue.prototype.$on = function (event, fn) {\n    var this$1 = this;\n\n    var vm = this;\n    if (Array.isArray(event)) {\n      for (var i = 0, l = event.length; i < l; i++) {\n        this$1.$on(event[i], fn);\n      }\n    } else {\n      (vm._events[event] || (vm._events[event] = [])).push(fn);\n      // optimize hook:event cost by using a boolean flag marked at registration\n      // instead of a hash lookup\n      if (hookRE.test(event)) {\n        vm._hasHookEvent = true;\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$once = function (event, fn) {\n    var vm = this;\n    function on () {\n      vm.$off(event, on);\n      fn.apply(vm, arguments);\n    }\n    on.fn = fn;\n    vm.$on(event, on);\n    return vm\n  };\n\n  Vue.prototype.$off = function (event, fn) {\n    var this$1 = this;\n\n    var vm = this;\n    // all\n    if (!arguments.length) {\n      vm._events = Object.create(null);\n      return vm\n    }\n    // array of events\n    if (Array.isArray(event)) {\n      for (var i = 0, l = event.length; i < l; i++) {\n        this$1.$off(event[i], fn);\n      }\n      return vm\n    }\n    // specific event\n    var cbs = vm._events[event];\n    if (!cbs) {\n      return vm\n    }\n    if (!fn) {\n      vm._events[event] = null;\n      return vm\n    }\n    if (fn) {\n      // specific handler\n      var cb;\n      var i$1 = cbs.length;\n      while (i$1--) {\n        cb = cbs[i$1];\n        if (cb === fn || cb.fn === fn) {\n          cbs.splice(i$1, 1);\n          break\n        }\n      }\n    }\n    return vm\n  };\n\n  Vue.prototype.$emit = function (event) {\n    var vm = this;\n    if (process.env.NODE_ENV !== 'production') {\n      var lowerCaseEvent = event.toLowerCase();\n      if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n        tip(\n          \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n          (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n          \"Note that HTML attributes are case-insensitive and you cannot use \" +\n          \"v-on to listen to camelCase events when using in-DOM templates. \" +\n          \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n        );\n      }\n    }\n    var cbs = vm._events[event];\n    if (cbs) {\n      cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n      var args = toArray(arguments, 1);\n      for (var i = 0, l = cbs.length; i < l; i++) {\n        try {\n          cbs[i].apply(vm, args);\n        } catch (e) {\n          handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n        }\n      }\n    }\n    return vm\n  };\n}\n\n/*  */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n  children,\n  context\n) {\n  var slots = {};\n  if (!children) {\n    return slots\n  }\n  for (var i = 0, l = children.length; i < l; i++) {\n    var child = children[i];\n    var data = child.data;\n    // remove slot attribute if the node is resolved as a Vue slot node\n    if (data && data.attrs && data.attrs.slot) {\n      delete data.attrs.slot;\n    }\n    // named slots should only be respected if the vnode was rendered in the\n    // same context.\n    if ((child.context === context || child.fnContext === context) &&\n      data && data.slot != null\n    ) {\n      var name = data.slot;\n      var slot = (slots[name] || (slots[name] = []));\n      if (child.tag === 'template') {\n        slot.push.apply(slot, child.children || []);\n      } else {\n        slot.push(child);\n      }\n    } else {\n      (slots.default || (slots.default = [])).push(child);\n    }\n  }\n  // ignore slots that contains only whitespace\n  for (var name$1 in slots) {\n    if (slots[name$1].every(isWhitespace)) {\n      delete slots[name$1];\n    }\n  }\n  return slots\n}\n\nfunction isWhitespace (node) {\n  return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n  fns, // see flow/vnode\n  res\n) {\n  res = res || {};\n  for (var i = 0; i < fns.length; i++) {\n    if (Array.isArray(fns[i])) {\n      resolveScopedSlots(fns[i], res);\n    } else {\n      res[fns[i].key] = fns[i].fn;\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n  var options = vm.$options;\n\n  // locate first non-abstract parent\n  var parent = options.parent;\n  if (parent && !options.abstract) {\n    while (parent.$options.abstract && parent.$parent) {\n      parent = parent.$parent;\n    }\n    parent.$children.push(vm);\n  }\n\n  vm.$parent = parent;\n  vm.$root = parent ? parent.$root : vm;\n\n  vm.$children = [];\n  vm.$refs = {};\n\n  vm._watcher = null;\n  vm._inactive = null;\n  vm._directInactive = false;\n  vm._isMounted = false;\n  vm._isDestroyed = false;\n  vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n  Vue.prototype._update = function (vnode, hydrating) {\n    var vm = this;\n    if (vm._isMounted) {\n      callHook(vm, 'beforeUpdate');\n    }\n    var prevEl = vm.$el;\n    var prevVnode = vm._vnode;\n    var prevActiveInstance = activeInstance;\n    activeInstance = vm;\n    vm._vnode = vnode;\n    // Vue.prototype.__patch__ is injected in entry points\n    // based on the rendering backend used.\n    if (!prevVnode) {\n      // initial render\n      vm.$el = vm.__patch__(\n        vm.$el, vnode, hydrating, false /* removeOnly */,\n        vm.$options._parentElm,\n        vm.$options._refElm\n      );\n      // no need for the ref nodes after initial patch\n      // this prevents keeping a detached DOM tree in memory (#5851)\n      vm.$options._parentElm = vm.$options._refElm = null;\n    } else {\n      // updates\n      vm.$el = vm.__patch__(prevVnode, vnode);\n    }\n    activeInstance = prevActiveInstance;\n    // update __vue__ reference\n    if (prevEl) {\n      prevEl.__vue__ = null;\n    }\n    if (vm.$el) {\n      vm.$el.__vue__ = vm;\n    }\n    // if parent is an HOC, update its $el as well\n    if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n      vm.$parent.$el = vm.$el;\n    }\n    // updated hook is called by the scheduler to ensure that children are\n    // updated in a parent's updated hook.\n  };\n\n  Vue.prototype.$forceUpdate = function () {\n    var vm = this;\n    if (vm._watcher) {\n      vm._watcher.update();\n    }\n  };\n\n  Vue.prototype.$destroy = function () {\n    var vm = this;\n    if (vm._isBeingDestroyed) {\n      return\n    }\n    callHook(vm, 'beforeDestroy');\n    vm._isBeingDestroyed = true;\n    // remove self from parent\n    var parent = vm.$parent;\n    if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n      remove(parent.$children, vm);\n    }\n    // teardown watchers\n    if (vm._watcher) {\n      vm._watcher.teardown();\n    }\n    var i = vm._watchers.length;\n    while (i--) {\n      vm._watchers[i].teardown();\n    }\n    // remove reference from data ob\n    // frozen object may not have observer.\n    if (vm._data.__ob__) {\n      vm._data.__ob__.vmCount--;\n    }\n    // call the last hook...\n    vm._isDestroyed = true;\n    // invoke destroy hooks on current rendered tree\n    vm.__patch__(vm._vnode, null);\n    // fire destroyed hook\n    callHook(vm, 'destroyed');\n    // turn off all instance listeners.\n    vm.$off();\n    // remove __vue__ reference\n    if (vm.$el) {\n      vm.$el.__vue__ = null;\n    }\n    // release circular reference (#6759)\n    if (vm.$vnode) {\n      vm.$vnode.parent = null;\n    }\n  };\n}\n\nfunction mountComponent (\n  vm,\n  el,\n  hydrating\n) {\n  vm.$el = el;\n  if (!vm.$options.render) {\n    vm.$options.render = createEmptyVNode;\n    if (process.env.NODE_ENV !== 'production') {\n      /* istanbul ignore if */\n      if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n        vm.$options.el || el) {\n        warn(\n          'You are using the runtime-only build of Vue where the template ' +\n          'compiler is not available. Either pre-compile the templates into ' +\n          'render functions, or use the compiler-included build.',\n          vm\n        );\n      } else {\n        warn(\n          'Failed to mount component: template or render function not defined.',\n          vm\n        );\n      }\n    }\n  }\n  callHook(vm, 'beforeMount');\n\n  var updateComponent;\n  /* istanbul ignore if */\n  if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n    updateComponent = function () {\n      var name = vm._name;\n      var id = vm._uid;\n      var startTag = \"vue-perf-start:\" + id;\n      var endTag = \"vue-perf-end:\" + id;\n\n      mark(startTag);\n      var vnode = vm._render();\n      mark(endTag);\n      measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n      mark(startTag);\n      vm._update(vnode, hydrating);\n      mark(endTag);\n      measure((\"vue \" + name + \" patch\"), startTag, endTag);\n    };\n  } else {\n    updateComponent = function () {\n      vm._update(vm._render(), hydrating);\n    };\n  }\n\n  // we set this to vm._watcher inside the watcher's constructor\n  // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n  // component's mounted hook), which relies on vm._watcher being already defined\n  new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);\n  hydrating = false;\n\n  // manually mounted instance, call mounted on self\n  // mounted is called for render-created child components in its inserted hook\n  if (vm.$vnode == null) {\n    vm._isMounted = true;\n    callHook(vm, 'mounted');\n  }\n  return vm\n}\n\nfunction updateChildComponent (\n  vm,\n  propsData,\n  listeners,\n  parentVnode,\n  renderChildren\n) {\n  if (process.env.NODE_ENV !== 'production') {\n    isUpdatingChildComponent = true;\n  }\n\n  // determine whether component has slot children\n  // we need to do this before overwriting $options._renderChildren\n  var hasChildren = !!(\n    renderChildren ||               // has new static slots\n    vm.$options._renderChildren ||  // has old static slots\n    parentVnode.data.scopedSlots || // has new scoped slots\n    vm.$scopedSlots !== emptyObject // has old scoped slots\n  );\n\n  vm.$options._parentVnode = parentVnode;\n  vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n  if (vm._vnode) { // update child tree's parent\n    vm._vnode.parent = parentVnode;\n  }\n  vm.$options._renderChildren = renderChildren;\n\n  // update $attrs and $listeners hash\n  // these are also reactive so they may trigger child update if the child\n  // used them during render\n  vm.$attrs = parentVnode.data.attrs || emptyObject;\n  vm.$listeners = listeners || emptyObject;\n\n  // update props\n  if (propsData && vm.$options.props) {\n    toggleObserving(false);\n    var props = vm._props;\n    var propKeys = vm.$options._propKeys || [];\n    for (var i = 0; i < propKeys.length; i++) {\n      var key = propKeys[i];\n      var propOptions = vm.$options.props; // wtf flow?\n      props[key] = validateProp(key, propOptions, propsData, vm);\n    }\n    toggleObserving(true);\n    // keep a copy of raw propsData\n    vm.$options.propsData = propsData;\n  }\n\n  // update listeners\n  listeners = listeners || emptyObject;\n  var oldListeners = vm.$options._parentListeners;\n  vm.$options._parentListeners = listeners;\n  updateComponentListeners(vm, listeners, oldListeners);\n\n  // resolve slots + force update if has children\n  if (hasChildren) {\n    vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n    vm.$forceUpdate();\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    isUpdatingChildComponent = false;\n  }\n}\n\nfunction isInInactiveTree (vm) {\n  while (vm && (vm = vm.$parent)) {\n    if (vm._inactive) { return true }\n  }\n  return false\n}\n\nfunction activateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = false;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  } else if (vm._directInactive) {\n    return\n  }\n  if (vm._inactive || vm._inactive === null) {\n    vm._inactive = false;\n    for (var i = 0; i < vm.$children.length; i++) {\n      activateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'activated');\n  }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n  if (direct) {\n    vm._directInactive = true;\n    if (isInInactiveTree(vm)) {\n      return\n    }\n  }\n  if (!vm._inactive) {\n    vm._inactive = true;\n    for (var i = 0; i < vm.$children.length; i++) {\n      deactivateChildComponent(vm.$children[i]);\n    }\n    callHook(vm, 'deactivated');\n  }\n}\n\nfunction callHook (vm, hook) {\n  // #7573 disable dep collection when invoking lifecycle hooks\n  pushTarget();\n  var handlers = vm.$options[hook];\n  if (handlers) {\n    for (var i = 0, j = handlers.length; i < j; i++) {\n      try {\n        handlers[i].call(vm);\n      } catch (e) {\n        handleError(e, vm, (hook + \" hook\"));\n      }\n    }\n  }\n  if (vm._hasHookEvent) {\n    vm.$emit('hook:' + hook);\n  }\n  popTarget();\n}\n\n/*  */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n  index = queue.length = activatedChildren.length = 0;\n  has = {};\n  if (process.env.NODE_ENV !== 'production') {\n    circular = {};\n  }\n  waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n  flushing = true;\n  var watcher, id;\n\n  // Sort queue before flush.\n  // This ensures that:\n  // 1. Components are updated from parent to child. (because parent is always\n  //    created before the child)\n  // 2. A component's user watchers are run before its render watcher (because\n  //    user watchers are created before the render watcher)\n  // 3. If a component is destroyed during a parent component's watcher run,\n  //    its watchers can be skipped.\n  queue.sort(function (a, b) { return a.id - b.id; });\n\n  // do not cache length because more watchers might be pushed\n  // as we run existing watchers\n  for (index = 0; index < queue.length; index++) {\n    watcher = queue[index];\n    id = watcher.id;\n    has[id] = null;\n    watcher.run();\n    // in dev build, check and stop circular updates.\n    if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n      circular[id] = (circular[id] || 0) + 1;\n      if (circular[id] > MAX_UPDATE_COUNT) {\n        warn(\n          'You may have an infinite update loop ' + (\n            watcher.user\n              ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n              : \"in a component render function.\"\n          ),\n          watcher.vm\n        );\n        break\n      }\n    }\n  }\n\n  // keep copies of post queues before resetting state\n  var activatedQueue = activatedChildren.slice();\n  var updatedQueue = queue.slice();\n\n  resetSchedulerState();\n\n  // call component updated and activated hooks\n  callActivatedHooks(activatedQueue);\n  callUpdatedHooks(updatedQueue);\n\n  // devtool hook\n  /* istanbul ignore if */\n  if (devtools && config.devtools) {\n    devtools.emit('flush');\n  }\n}\n\nfunction callUpdatedHooks (queue) {\n  var i = queue.length;\n  while (i--) {\n    var watcher = queue[i];\n    var vm = watcher.vm;\n    if (vm._watcher === watcher && vm._isMounted) {\n      callHook(vm, 'updated');\n    }\n  }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n  // setting _inactive to false here so that a render function can\n  // rely on checking whether it's in an inactive tree (e.g. router-view)\n  vm._inactive = false;\n  activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n  for (var i = 0; i < queue.length; i++) {\n    queue[i]._inactive = true;\n    activateChildComponent(queue[i], true /* true */);\n  }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n  var id = watcher.id;\n  if (has[id] == null) {\n    has[id] = true;\n    if (!flushing) {\n      queue.push(watcher);\n    } else {\n      // if already flushing, splice the watcher based on its id\n      // if already past its id, it will be run next immediately.\n      var i = queue.length - 1;\n      while (i > index && queue[i].id > watcher.id) {\n        i--;\n      }\n      queue.splice(i + 1, 0, watcher);\n    }\n    // queue the flush\n    if (!waiting) {\n      waiting = true;\n      nextTick(flushSchedulerQueue);\n    }\n  }\n}\n\n/*  */\n\nvar uid$1 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n  vm,\n  expOrFn,\n  cb,\n  options,\n  isRenderWatcher\n) {\n  this.vm = vm;\n  if (isRenderWatcher) {\n    vm._watcher = this;\n  }\n  vm._watchers.push(this);\n  // options\n  if (options) {\n    this.deep = !!options.deep;\n    this.user = !!options.user;\n    this.lazy = !!options.lazy;\n    this.sync = !!options.sync;\n  } else {\n    this.deep = this.user = this.lazy = this.sync = false;\n  }\n  this.cb = cb;\n  this.id = ++uid$1; // uid for batching\n  this.active = true;\n  this.dirty = this.lazy; // for lazy watchers\n  this.deps = [];\n  this.newDeps = [];\n  this.depIds = new _Set();\n  this.newDepIds = new _Set();\n  this.expression = process.env.NODE_ENV !== 'production'\n    ? expOrFn.toString()\n    : '';\n  // parse expression for getter\n  if (typeof expOrFn === 'function') {\n    this.getter = expOrFn;\n  } else {\n    this.getter = parsePath(expOrFn);\n    if (!this.getter) {\n      this.getter = function () {};\n      process.env.NODE_ENV !== 'production' && warn(\n        \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n        'Watcher only accepts simple dot-delimited paths. ' +\n        'For full control, use a function instead.',\n        vm\n      );\n    }\n  }\n  this.value = this.lazy\n    ? undefined\n    : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n  pushTarget(this);\n  var value;\n  var vm = this.vm;\n  try {\n    value = this.getter.call(vm, vm);\n  } catch (e) {\n    if (this.user) {\n      handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n    } else {\n      throw e\n    }\n  } finally {\n    // \"touch\" every property so they are all tracked as\n    // dependencies for deep watching\n    if (this.deep) {\n      traverse(value);\n    }\n    popTarget();\n    this.cleanupDeps();\n  }\n  return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n  var id = dep.id;\n  if (!this.newDepIds.has(id)) {\n    this.newDepIds.add(id);\n    this.newDeps.push(dep);\n    if (!this.depIds.has(id)) {\n      dep.addSub(this);\n    }\n  }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n    var this$1 = this;\n\n  var i = this.deps.length;\n  while (i--) {\n    var dep = this$1.deps[i];\n    if (!this$1.newDepIds.has(dep.id)) {\n      dep.removeSub(this$1);\n    }\n  }\n  var tmp = this.depIds;\n  this.depIds = this.newDepIds;\n  this.newDepIds = tmp;\n  this.newDepIds.clear();\n  tmp = this.deps;\n  this.deps = this.newDeps;\n  this.newDeps = tmp;\n  this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n  /* istanbul ignore else */\n  if (this.lazy) {\n    this.dirty = true;\n  } else if (this.sync) {\n    this.run();\n  } else {\n    queueWatcher(this);\n  }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n  if (this.active) {\n    var value = this.get();\n    if (\n      value !== this.value ||\n      // Deep watchers and watchers on Object/Arrays should fire even\n      // when the value is the same, because the value may\n      // have mutated.\n      isObject(value) ||\n      this.deep\n    ) {\n      // set new value\n      var oldValue = this.value;\n      this.value = value;\n      if (this.user) {\n        try {\n          this.cb.call(this.vm, value, oldValue);\n        } catch (e) {\n          handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n        }\n      } else {\n        this.cb.call(this.vm, value, oldValue);\n      }\n    }\n  }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n  this.value = this.get();\n  this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n    var this$1 = this;\n\n  var i = this.deps.length;\n  while (i--) {\n    this$1.deps[i].depend();\n  }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n    var this$1 = this;\n\n  if (this.active) {\n    // remove self from vm's watcher list\n    // this is a somewhat expensive operation so we skip it\n    // if the vm is being destroyed.\n    if (!this.vm._isBeingDestroyed) {\n      remove(this.vm._watchers, this);\n    }\n    var i = this.deps.length;\n    while (i--) {\n      this$1.deps[i].removeSub(this$1);\n    }\n    this.active = false;\n  }\n};\n\n/*  */\n\nvar sharedPropertyDefinition = {\n  enumerable: true,\n  configurable: true,\n  get: noop,\n  set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n  sharedPropertyDefinition.get = function proxyGetter () {\n    return this[sourceKey][key]\n  };\n  sharedPropertyDefinition.set = function proxySetter (val) {\n    this[sourceKey][key] = val;\n  };\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n  vm._watchers = [];\n  var opts = vm.$options;\n  if (opts.props) { initProps(vm, opts.props); }\n  if (opts.methods) { initMethods(vm, opts.methods); }\n  if (opts.data) {\n    initData(vm);\n  } else {\n    observe(vm._data = {}, true /* asRootData */);\n  }\n  if (opts.computed) { initComputed(vm, opts.computed); }\n  if (opts.watch && opts.watch !== nativeWatch) {\n    initWatch(vm, opts.watch);\n  }\n}\n\nfunction initProps (vm, propsOptions) {\n  var propsData = vm.$options.propsData || {};\n  var props = vm._props = {};\n  // cache prop keys so that future props updates can iterate using Array\n  // instead of dynamic object key enumeration.\n  var keys = vm.$options._propKeys = [];\n  var isRoot = !vm.$parent;\n  // root instance props should be converted\n  if (!isRoot) {\n    toggleObserving(false);\n  }\n  var loop = function ( key ) {\n    keys.push(key);\n    var value = validateProp(key, propsOptions, propsData, vm);\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== 'production') {\n      var hyphenatedKey = hyphenate(key);\n      if (isReservedAttribute(hyphenatedKey) ||\n          config.isReservedAttr(hyphenatedKey)) {\n        warn(\n          (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n          vm\n        );\n      }\n      defineReactive(props, key, value, function () {\n        if (vm.$parent && !isUpdatingChildComponent) {\n          warn(\n            \"Avoid mutating a prop directly since the value will be \" +\n            \"overwritten whenever the parent component re-renders. \" +\n            \"Instead, use a data or computed property based on the prop's \" +\n            \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        }\n      });\n    } else {\n      defineReactive(props, key, value);\n    }\n    // static props are already proxied on the component's prototype\n    // during Vue.extend(). We only need to proxy props defined at\n    // instantiation here.\n    if (!(key in vm)) {\n      proxy(vm, \"_props\", key);\n    }\n  };\n\n  for (var key in propsOptions) loop( key );\n  toggleObserving(true);\n}\n\nfunction initData (vm) {\n  var data = vm.$options.data;\n  data = vm._data = typeof data === 'function'\n    ? getData(data, vm)\n    : data || {};\n  if (!isPlainObject(data)) {\n    data = {};\n    process.env.NODE_ENV !== 'production' && warn(\n      'data functions should return an object:\\n' +\n      'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n      vm\n    );\n  }\n  // proxy data on instance\n  var keys = Object.keys(data);\n  var props = vm.$options.props;\n  var methods = vm.$options.methods;\n  var i = keys.length;\n  while (i--) {\n    var key = keys[i];\n    if (process.env.NODE_ENV !== 'production') {\n      if (methods && hasOwn(methods, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n          vm\n        );\n      }\n    }\n    if (props && hasOwn(props, key)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n        \"Use prop default value instead.\",\n        vm\n      );\n    } else if (!isReserved(key)) {\n      proxy(vm, \"_data\", key);\n    }\n  }\n  // observe data\n  observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n  // #7573 disable dep collection when invoking data getters\n  pushTarget();\n  try {\n    return data.call(vm, vm)\n  } catch (e) {\n    handleError(e, vm, \"data()\");\n    return {}\n  } finally {\n    popTarget();\n  }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n  // $flow-disable-line\n  var watchers = vm._computedWatchers = Object.create(null);\n  // computed properties are just getters during SSR\n  var isSSR = isServerRendering();\n\n  for (var key in computed) {\n    var userDef = computed[key];\n    var getter = typeof userDef === 'function' ? userDef : userDef.get;\n    if (process.env.NODE_ENV !== 'production' && getter == null) {\n      warn(\n        (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n        vm\n      );\n    }\n\n    if (!isSSR) {\n      // create internal watcher for the computed property.\n      watchers[key] = new Watcher(\n        vm,\n        getter || noop,\n        noop,\n        computedWatcherOptions\n      );\n    }\n\n    // component-defined computed properties are already defined on the\n    // component prototype. We only need to define computed properties defined\n    // at instantiation here.\n    if (!(key in vm)) {\n      defineComputed(vm, key, userDef);\n    } else if (process.env.NODE_ENV !== 'production') {\n      if (key in vm.$data) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n      } else if (vm.$options.props && key in vm.$options.props) {\n        warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n      }\n    }\n  }\n}\n\nfunction defineComputed (\n  target,\n  key,\n  userDef\n) {\n  var shouldCache = !isServerRendering();\n  if (typeof userDef === 'function') {\n    sharedPropertyDefinition.get = shouldCache\n      ? createComputedGetter(key)\n      : userDef;\n    sharedPropertyDefinition.set = noop;\n  } else {\n    sharedPropertyDefinition.get = userDef.get\n      ? shouldCache && userDef.cache !== false\n        ? createComputedGetter(key)\n        : userDef.get\n      : noop;\n    sharedPropertyDefinition.set = userDef.set\n      ? userDef.set\n      : noop;\n  }\n  if (process.env.NODE_ENV !== 'production' &&\n      sharedPropertyDefinition.set === noop) {\n    sharedPropertyDefinition.set = function () {\n      warn(\n        (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n        this\n      );\n    };\n  }\n  Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n  return function computedGetter () {\n    var watcher = this._computedWatchers && this._computedWatchers[key];\n    if (watcher) {\n      if (watcher.dirty) {\n        watcher.evaluate();\n      }\n      if (Dep.target) {\n        watcher.depend();\n      }\n      return watcher.value\n    }\n  }\n}\n\nfunction initMethods (vm, methods) {\n  var props = vm.$options.props;\n  for (var key in methods) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (methods[key] == null) {\n        warn(\n          \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n          \"Did you reference the function correctly?\",\n          vm\n        );\n      }\n      if (props && hasOwn(props, key)) {\n        warn(\n          (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n          vm\n        );\n      }\n      if ((key in vm) && isReserved(key)) {\n        warn(\n          \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n          \"Avoid defining component methods that start with _ or $.\"\n        );\n      }\n    }\n    vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n  }\n}\n\nfunction initWatch (vm, watch) {\n  for (var key in watch) {\n    var handler = watch[key];\n    if (Array.isArray(handler)) {\n      for (var i = 0; i < handler.length; i++) {\n        createWatcher(vm, key, handler[i]);\n      }\n    } else {\n      createWatcher(vm, key, handler);\n    }\n  }\n}\n\nfunction createWatcher (\n  vm,\n  expOrFn,\n  handler,\n  options\n) {\n  if (isPlainObject(handler)) {\n    options = handler;\n    handler = handler.handler;\n  }\n  if (typeof handler === 'string') {\n    handler = vm[handler];\n  }\n  return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n  // flow somehow has problems with directly declared definition object\n  // when using Object.defineProperty, so we have to procedurally build up\n  // the object here.\n  var dataDef = {};\n  dataDef.get = function () { return this._data };\n  var propsDef = {};\n  propsDef.get = function () { return this._props };\n  if (process.env.NODE_ENV !== 'production') {\n    dataDef.set = function (newData) {\n      warn(\n        'Avoid replacing instance root $data. ' +\n        'Use nested data properties instead.',\n        this\n      );\n    };\n    propsDef.set = function () {\n      warn(\"$props is readonly.\", this);\n    };\n  }\n  Object.defineProperty(Vue.prototype, '$data', dataDef);\n  Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n  Vue.prototype.$set = set;\n  Vue.prototype.$delete = del;\n\n  Vue.prototype.$watch = function (\n    expOrFn,\n    cb,\n    options\n  ) {\n    var vm = this;\n    if (isPlainObject(cb)) {\n      return createWatcher(vm, expOrFn, cb, options)\n    }\n    options = options || {};\n    options.user = true;\n    var watcher = new Watcher(vm, expOrFn, cb, options);\n    if (options.immediate) {\n      cb.call(vm, watcher.value);\n    }\n    return function unwatchFn () {\n      watcher.teardown();\n    }\n  };\n}\n\n/*  */\n\nfunction initProvide (vm) {\n  var provide = vm.$options.provide;\n  if (provide) {\n    vm._provided = typeof provide === 'function'\n      ? provide.call(vm)\n      : provide;\n  }\n}\n\nfunction initInjections (vm) {\n  var result = resolveInject(vm.$options.inject, vm);\n  if (result) {\n    toggleObserving(false);\n    Object.keys(result).forEach(function (key) {\n      /* istanbul ignore else */\n      if (process.env.NODE_ENV !== 'production') {\n        defineReactive(vm, key, result[key], function () {\n          warn(\n            \"Avoid mutating an injected value directly since the changes will be \" +\n            \"overwritten whenever the provided component re-renders. \" +\n            \"injection being mutated: \\\"\" + key + \"\\\"\",\n            vm\n          );\n        });\n      } else {\n        defineReactive(vm, key, result[key]);\n      }\n    });\n    toggleObserving(true);\n  }\n}\n\nfunction resolveInject (inject, vm) {\n  if (inject) {\n    // inject is :any because flow is not smart enough to figure out cached\n    var result = Object.create(null);\n    var keys = hasSymbol\n      ? Reflect.ownKeys(inject).filter(function (key) {\n        /* istanbul ignore next */\n        return Object.getOwnPropertyDescriptor(inject, key).enumerable\n      })\n      : Object.keys(inject);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      var provideKey = inject[key].from;\n      var source = vm;\n      while (source) {\n        if (source._provided && hasOwn(source._provided, provideKey)) {\n          result[key] = source._provided[provideKey];\n          break\n        }\n        source = source.$parent;\n      }\n      if (!source) {\n        if ('default' in inject[key]) {\n          var provideDefault = inject[key].default;\n          result[key] = typeof provideDefault === 'function'\n            ? provideDefault.call(vm)\n            : provideDefault;\n        } else if (process.env.NODE_ENV !== 'production') {\n          warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n        }\n      }\n    }\n    return result\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n  val,\n  render\n) {\n  var ret, i, l, keys, key;\n  if (Array.isArray(val) || typeof val === 'string') {\n    ret = new Array(val.length);\n    for (i = 0, l = val.length; i < l; i++) {\n      ret[i] = render(val[i], i);\n    }\n  } else if (typeof val === 'number') {\n    ret = new Array(val);\n    for (i = 0; i < val; i++) {\n      ret[i] = render(i + 1, i);\n    }\n  } else if (isObject(val)) {\n    keys = Object.keys(val);\n    ret = new Array(keys.length);\n    for (i = 0, l = keys.length; i < l; i++) {\n      key = keys[i];\n      ret[i] = render(val[key], key, i);\n    }\n  }\n  if (isDef(ret)) {\n    (ret)._isVList = true;\n  }\n  return ret\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n  name,\n  fallback,\n  props,\n  bindObject\n) {\n  var scopedSlotFn = this.$scopedSlots[name];\n  var nodes;\n  if (scopedSlotFn) { // scoped slot\n    props = props || {};\n    if (bindObject) {\n      if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n        warn(\n          'slot v-bind without argument expects an Object',\n          this\n        );\n      }\n      props = extend(extend({}, bindObject), props);\n    }\n    nodes = scopedSlotFn(props) || fallback;\n  } else {\n    var slotNodes = this.$slots[name];\n    // warn duplicate slot usage\n    if (slotNodes) {\n      if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) {\n        warn(\n          \"Duplicate presence of slot \\\"\" + name + \"\\\" found in the same render tree \" +\n          \"- this will likely cause render errors.\",\n          this\n        );\n      }\n      slotNodes._rendered = true;\n    }\n    nodes = slotNodes || fallback;\n  }\n\n  var target = props && props.slot;\n  if (target) {\n    return this.$createElement('template', { slot: target }, nodes)\n  } else {\n    return nodes\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n  return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/*  */\n\nfunction isKeyNotMatch (expect, actual) {\n  if (Array.isArray(expect)) {\n    return expect.indexOf(actual) === -1\n  } else {\n    return expect !== actual\n  }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n  eventKeyCode,\n  key,\n  builtInKeyCode,\n  eventKeyName,\n  builtInKeyName\n) {\n  var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n  if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n    return isKeyNotMatch(builtInKeyName, eventKeyName)\n  } else if (mappedKeyCode) {\n    return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n  } else if (eventKeyName) {\n    return hyphenate(eventKeyName) !== key\n  }\n}\n\n/*  */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n  data,\n  tag,\n  value,\n  asProp,\n  isSync\n) {\n  if (value) {\n    if (!isObject(value)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'v-bind without argument expects an Object or Array value',\n        this\n      );\n    } else {\n      if (Array.isArray(value)) {\n        value = toObject(value);\n      }\n      var hash;\n      var loop = function ( key ) {\n        if (\n          key === 'class' ||\n          key === 'style' ||\n          isReservedAttribute(key)\n        ) {\n          hash = data;\n        } else {\n          var type = data.attrs && data.attrs.type;\n          hash = asProp || config.mustUseProp(tag, type, key)\n            ? data.domProps || (data.domProps = {})\n            : data.attrs || (data.attrs = {});\n        }\n        if (!(key in hash)) {\n          hash[key] = value[key];\n\n          if (isSync) {\n            var on = data.on || (data.on = {});\n            on[(\"update:\" + key)] = function ($event) {\n              value[key] = $event;\n            };\n          }\n        }\n      };\n\n      for (var key in value) loop( key );\n    }\n  }\n  return data\n}\n\n/*  */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n  index,\n  isInFor\n) {\n  var cached = this._staticTrees || (this._staticTrees = []);\n  var tree = cached[index];\n  // if has already-rendered static tree and not inside v-for,\n  // we can reuse the same tree.\n  if (tree && !isInFor) {\n    return tree\n  }\n  // otherwise, render a fresh tree.\n  tree = cached[index] = this.$options.staticRenderFns[index].call(\n    this._renderProxy,\n    null,\n    this // for render fns generated for functional component templates\n  );\n  markStatic(tree, (\"__static__\" + index), false);\n  return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n  tree,\n  index,\n  key\n) {\n  markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n  return tree\n}\n\nfunction markStatic (\n  tree,\n  key,\n  isOnce\n) {\n  if (Array.isArray(tree)) {\n    for (var i = 0; i < tree.length; i++) {\n      if (tree[i] && typeof tree[i] !== 'string') {\n        markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n      }\n    }\n  } else {\n    markStaticNode(tree, key, isOnce);\n  }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n  node.isStatic = true;\n  node.key = key;\n  node.isOnce = isOnce;\n}\n\n/*  */\n\nfunction bindObjectListeners (data, value) {\n  if (value) {\n    if (!isPlainObject(value)) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'v-on without argument expects an Object value',\n        this\n      );\n    } else {\n      var on = data.on = data.on ? extend({}, data.on) : {};\n      for (var key in value) {\n        var existing = on[key];\n        var ours = value[key];\n        on[key] = existing ? [].concat(existing, ours) : ours;\n      }\n    }\n  }\n  return data\n}\n\n/*  */\n\nfunction installRenderHelpers (target) {\n  target._o = markOnce;\n  target._n = toNumber;\n  target._s = toString;\n  target._l = renderList;\n  target._t = renderSlot;\n  target._q = looseEqual;\n  target._i = looseIndexOf;\n  target._m = renderStatic;\n  target._f = resolveFilter;\n  target._k = checkKeyCodes;\n  target._b = bindObjectProps;\n  target._v = createTextVNode;\n  target._e = createEmptyVNode;\n  target._u = resolveScopedSlots;\n  target._g = bindObjectListeners;\n}\n\n/*  */\n\nfunction FunctionalRenderContext (\n  data,\n  props,\n  children,\n  parent,\n  Ctor\n) {\n  var options = Ctor.options;\n  // ensure the createElement function in functional components\n  // gets a unique context - this is necessary for correct named slot check\n  var contextVm;\n  if (hasOwn(parent, '_uid')) {\n    contextVm = Object.create(parent);\n    // $flow-disable-line\n    contextVm._original = parent;\n  } else {\n    // the context vm passed in is a functional context as well.\n    // in this case we want to make sure we are able to get a hold to the\n    // real context instance.\n    contextVm = parent;\n    // $flow-disable-line\n    parent = parent._original;\n  }\n  var isCompiled = isTrue(options._compiled);\n  var needNormalization = !isCompiled;\n\n  this.data = data;\n  this.props = props;\n  this.children = children;\n  this.parent = parent;\n  this.listeners = data.on || emptyObject;\n  this.injections = resolveInject(options.inject, parent);\n  this.slots = function () { return resolveSlots(children, parent); };\n\n  // support for compiled functional template\n  if (isCompiled) {\n    // exposing $options for renderStatic()\n    this.$options = options;\n    // pre-resolve slots for renderSlot()\n    this.$slots = this.slots();\n    this.$scopedSlots = data.scopedSlots || emptyObject;\n  }\n\n  if (options._scopeId) {\n    this._c = function (a, b, c, d) {\n      var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n      if (vnode && !Array.isArray(vnode)) {\n        vnode.fnScopeId = options._scopeId;\n        vnode.fnContext = parent;\n      }\n      return vnode\n    };\n  } else {\n    this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n  }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n  Ctor,\n  propsData,\n  data,\n  contextVm,\n  children\n) {\n  var options = Ctor.options;\n  var props = {};\n  var propOptions = options.props;\n  if (isDef(propOptions)) {\n    for (var key in propOptions) {\n      props[key] = validateProp(key, propOptions, propsData || emptyObject);\n    }\n  } else {\n    if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n    if (isDef(data.props)) { mergeProps(props, data.props); }\n  }\n\n  var renderContext = new FunctionalRenderContext(\n    data,\n    props,\n    children,\n    contextVm,\n    Ctor\n  );\n\n  var vnode = options.render.call(null, renderContext._c, renderContext);\n\n  if (vnode instanceof VNode) {\n    return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)\n  } else if (Array.isArray(vnode)) {\n    var vnodes = normalizeChildren(vnode) || [];\n    var res = new Array(vnodes.length);\n    for (var i = 0; i < vnodes.length; i++) {\n      res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);\n    }\n    return res\n  }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {\n  // #7817 clone node before setting fnContext, otherwise if the node is reused\n  // (e.g. it was from a cached normal slot) the fnContext causes named slots\n  // that should not be matched to match.\n  var clone = cloneVNode(vnode);\n  clone.fnContext = contextVm;\n  clone.fnOptions = options;\n  if (data.slot) {\n    (clone.data || (clone.data = {})).slot = data.slot;\n  }\n  return clone\n}\n\nfunction mergeProps (to, from) {\n  for (var key in from) {\n    to[camelize(key)] = from[key];\n  }\n}\n\n/*  */\n\n\n\n\n// Register the component hook to weex native render engine.\n// The hook will be triggered by native, not javascript.\n\n\n// Updates the state of the component to weex native render engine.\n\n/*  */\n\n// https://github.com/Hanks10100/weex-native-directive/tree/master/component\n\n// listening on native callback\n\n/*  */\n\n/*  */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n  init: function init (\n    vnode,\n    hydrating,\n    parentElm,\n    refElm\n  ) {\n    if (\n      vnode.componentInstance &&\n      !vnode.componentInstance._isDestroyed &&\n      vnode.data.keepAlive\n    ) {\n      // kept-alive components, treat as a patch\n      var mountedNode = vnode; // work around flow\n      componentVNodeHooks.prepatch(mountedNode, mountedNode);\n    } else {\n      var child = vnode.componentInstance = createComponentInstanceForVnode(\n        vnode,\n        activeInstance,\n        parentElm,\n        refElm\n      );\n      child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n    }\n  },\n\n  prepatch: function prepatch (oldVnode, vnode) {\n    var options = vnode.componentOptions;\n    var child = vnode.componentInstance = oldVnode.componentInstance;\n    updateChildComponent(\n      child,\n      options.propsData, // updated props\n      options.listeners, // updated listeners\n      vnode, // new parent vnode\n      options.children // new children\n    );\n  },\n\n  insert: function insert (vnode) {\n    var context = vnode.context;\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isMounted) {\n      componentInstance._isMounted = true;\n      callHook(componentInstance, 'mounted');\n    }\n    if (vnode.data.keepAlive) {\n      if (context._isMounted) {\n        // vue-router#1212\n        // During updates, a kept-alive component's child components may\n        // change, so directly walking the tree here may call activated hooks\n        // on incorrect children. Instead we push them into a queue which will\n        // be processed after the whole patch process ended.\n        queueActivatedComponent(componentInstance);\n      } else {\n        activateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  },\n\n  destroy: function destroy (vnode) {\n    var componentInstance = vnode.componentInstance;\n    if (!componentInstance._isDestroyed) {\n      if (!vnode.data.keepAlive) {\n        componentInstance.$destroy();\n      } else {\n        deactivateChildComponent(componentInstance, true /* direct */);\n      }\n    }\n  }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n  Ctor,\n  data,\n  context,\n  children,\n  tag\n) {\n  if (isUndef(Ctor)) {\n    return\n  }\n\n  var baseCtor = context.$options._base;\n\n  // plain options object: turn it into a constructor\n  if (isObject(Ctor)) {\n    Ctor = baseCtor.extend(Ctor);\n  }\n\n  // if at this stage it's not a constructor or an async component factory,\n  // reject.\n  if (typeof Ctor !== 'function') {\n    if (process.env.NODE_ENV !== 'production') {\n      warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n    }\n    return\n  }\n\n  // async component\n  var asyncFactory;\n  if (isUndef(Ctor.cid)) {\n    asyncFactory = Ctor;\n    Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);\n    if (Ctor === undefined) {\n      // return a placeholder node for async component, which is rendered\n      // as a comment node but preserves all the raw information for the node.\n      // the information will be used for async server-rendering and hydration.\n      return createAsyncPlaceholder(\n        asyncFactory,\n        data,\n        context,\n        children,\n        tag\n      )\n    }\n  }\n\n  data = data || {};\n\n  // resolve constructor options in case global mixins are applied after\n  // component constructor creation\n  resolveConstructorOptions(Ctor);\n\n  // transform component v-model data into props & events\n  if (isDef(data.model)) {\n    transformModel(Ctor.options, data);\n  }\n\n  // extract props\n  var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n  // functional component\n  if (isTrue(Ctor.options.functional)) {\n    return createFunctionalComponent(Ctor, propsData, data, context, children)\n  }\n\n  // extract listeners, since these needs to be treated as\n  // child component listeners instead of DOM listeners\n  var listeners = data.on;\n  // replace with listeners with .native modifier\n  // so it gets processed during parent component patch.\n  data.on = data.nativeOn;\n\n  if (isTrue(Ctor.options.abstract)) {\n    // abstract components do not keep anything\n    // other than props & listeners & slot\n\n    // work around flow\n    var slot = data.slot;\n    data = {};\n    if (slot) {\n      data.slot = slot;\n    }\n  }\n\n  // install component management hooks onto the placeholder node\n  installComponentHooks(data);\n\n  // return a placeholder vnode\n  var name = Ctor.options.name || tag;\n  var vnode = new VNode(\n    (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n    data, undefined, undefined, undefined, context,\n    { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n    asyncFactory\n  );\n\n  // Weex specific: invoke recycle-list optimized @render function for\n  // extracting cell-slot template.\n  // https://github.com/Hanks10100/weex-native-directive/tree/master/component\n  /* istanbul ignore if */\n  return vnode\n}\n\nfunction createComponentInstanceForVnode (\n  vnode, // we know it's MountedComponentVNode but flow doesn't\n  parent, // activeInstance in lifecycle state\n  parentElm,\n  refElm\n) {\n  var options = {\n    _isComponent: true,\n    parent: parent,\n    _parentVnode: vnode,\n    _parentElm: parentElm || null,\n    _refElm: refElm || null\n  };\n  // check inline-template render functions\n  var inlineTemplate = vnode.data.inlineTemplate;\n  if (isDef(inlineTemplate)) {\n    options.render = inlineTemplate.render;\n    options.staticRenderFns = inlineTemplate.staticRenderFns;\n  }\n  return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n  var hooks = data.hook || (data.hook = {});\n  for (var i = 0; i < hooksToMerge.length; i++) {\n    var key = hooksToMerge[i];\n    hooks[key] = componentVNodeHooks[key];\n  }\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n  var prop = (options.model && options.model.prop) || 'value';\n  var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;\n  var on = data.on || (data.on = {});\n  if (isDef(on[event])) {\n    on[event] = [data.model.callback].concat(on[event]);\n  } else {\n    on[event] = data.model.callback;\n  }\n}\n\n/*  */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType,\n  alwaysNormalize\n) {\n  if (Array.isArray(data) || isPrimitive(data)) {\n    normalizationType = children;\n    children = data;\n    data = undefined;\n  }\n  if (isTrue(alwaysNormalize)) {\n    normalizationType = ALWAYS_NORMALIZE;\n  }\n  return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n  context,\n  tag,\n  data,\n  children,\n  normalizationType\n) {\n  if (isDef(data) && isDef((data).__ob__)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n      'Always create fresh vnode data objects in each render!',\n      context\n    );\n    return createEmptyVNode()\n  }\n  // object syntax in v-bind\n  if (isDef(data) && isDef(data.is)) {\n    tag = data.is;\n  }\n  if (!tag) {\n    // in case of component :is set to falsy value\n    return createEmptyVNode()\n  }\n  // warn against non-primitive key\n  if (process.env.NODE_ENV !== 'production' &&\n    isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n  ) {\n    {\n      warn(\n        'Avoid using non-primitive value as key, ' +\n        'use string/number value instead.',\n        context\n      );\n    }\n  }\n  // support single function children as default scoped slot\n  if (Array.isArray(children) &&\n    typeof children[0] === 'function'\n  ) {\n    data = data || {};\n    data.scopedSlots = { default: children[0] };\n    children.length = 0;\n  }\n  if (normalizationType === ALWAYS_NORMALIZE) {\n    children = normalizeChildren(children);\n  } else if (normalizationType === SIMPLE_NORMALIZE) {\n    children = simpleNormalizeChildren(children);\n  }\n  var vnode, ns;\n  if (typeof tag === 'string') {\n    var Ctor;\n    ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n    if (config.isReservedTag(tag)) {\n      // platform built-in elements\n      vnode = new VNode(\n        config.parsePlatformTagName(tag), data, children,\n        undefined, undefined, context\n      );\n    } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n      // component\n      vnode = createComponent(Ctor, data, context, children, tag);\n    } else {\n      // unknown or unlisted namespaced elements\n      // check at runtime because it may get assigned a namespace when its\n      // parent normalizes children\n      vnode = new VNode(\n        tag, data, children,\n        undefined, undefined, context\n      );\n    }\n  } else {\n    // direct component options / constructor\n    vnode = createComponent(tag, data, context, children);\n  }\n  if (Array.isArray(vnode)) {\n    return vnode\n  } else if (isDef(vnode)) {\n    if (isDef(ns)) { applyNS(vnode, ns); }\n    if (isDef(data)) { registerDeepBindings(data); }\n    return vnode\n  } else {\n    return createEmptyVNode()\n  }\n}\n\nfunction applyNS (vnode, ns, force) {\n  vnode.ns = ns;\n  if (vnode.tag === 'foreignObject') {\n    // use default namespace inside foreignObject\n    ns = undefined;\n    force = true;\n  }\n  if (isDef(vnode.children)) {\n    for (var i = 0, l = vnode.children.length; i < l; i++) {\n      var child = vnode.children[i];\n      if (isDef(child.tag) && (\n        isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n        applyNS(child, ns, force);\n      }\n    }\n  }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n  if (isObject(data.style)) {\n    traverse(data.style);\n  }\n  if (isObject(data.class)) {\n    traverse(data.class);\n  }\n}\n\n/*  */\n\nfunction initRender (vm) {\n  vm._vnode = null; // the root of the child tree\n  vm._staticTrees = null; // v-once cached trees\n  var options = vm.$options;\n  var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n  var renderContext = parentVnode && parentVnode.context;\n  vm.$slots = resolveSlots(options._renderChildren, renderContext);\n  vm.$scopedSlots = emptyObject;\n  // bind the createElement fn to this instance\n  // so that we get proper render context inside it.\n  // args order: tag, data, children, normalizationType, alwaysNormalize\n  // internal version is used by render functions compiled from templates\n  vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n  // normalization is always applied for the public version, used in\n  // user-written render functions.\n  vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n  // $attrs & $listeners are exposed for easier HOC creation.\n  // they need to be reactive so that HOCs using them are always updated\n  var parentData = parentVnode && parentVnode.data;\n\n  /* istanbul ignore else */\n  if (process.env.NODE_ENV !== 'production') {\n    defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n    }, true);\n    defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\n      !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n    }, true);\n  } else {\n    defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n    defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n  }\n}\n\nfunction renderMixin (Vue) {\n  // install runtime convenience helpers\n  installRenderHelpers(Vue.prototype);\n\n  Vue.prototype.$nextTick = function (fn) {\n    return nextTick(fn, this)\n  };\n\n  Vue.prototype._render = function () {\n    var vm = this;\n    var ref = vm.$options;\n    var render = ref.render;\n    var _parentVnode = ref._parentVnode;\n\n    // reset _rendered flag on slots for duplicate slot check\n    if (process.env.NODE_ENV !== 'production') {\n      for (var key in vm.$slots) {\n        // $flow-disable-line\n        vm.$slots[key]._rendered = false;\n      }\n    }\n\n    if (_parentVnode) {\n      vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;\n    }\n\n    // set parent vnode. this allows render functions to have access\n    // to the data on the placeholder node.\n    vm.$vnode = _parentVnode;\n    // render self\n    var vnode;\n    try {\n      vnode = render.call(vm._renderProxy, vm.$createElement);\n    } catch (e) {\n      handleError(e, vm, \"render\");\n      // return error render result,\n      // or previous vnode to prevent render error causing blank component\n      /* istanbul ignore else */\n      if (process.env.NODE_ENV !== 'production') {\n        if (vm.$options.renderError) {\n          try {\n            vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n          } catch (e) {\n            handleError(e, vm, \"renderError\");\n            vnode = vm._vnode;\n          }\n        } else {\n          vnode = vm._vnode;\n        }\n      } else {\n        vnode = vm._vnode;\n      }\n    }\n    // return empty vnode in case the render function errored out\n    if (!(vnode instanceof VNode)) {\n      if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n        warn(\n          'Multiple root nodes returned from render function. Render function ' +\n          'should return a single root node.',\n          vm\n        );\n      }\n      vnode = createEmptyVNode();\n    }\n    // set parent\n    vnode.parent = _parentVnode;\n    return vnode\n  };\n}\n\n/*  */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n  Vue.prototype._init = function (options) {\n    var vm = this;\n    // a uid\n    vm._uid = uid$3++;\n\n    var startTag, endTag;\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n      startTag = \"vue-perf-start:\" + (vm._uid);\n      endTag = \"vue-perf-end:\" + (vm._uid);\n      mark(startTag);\n    }\n\n    // a flag to avoid this being observed\n    vm._isVue = true;\n    // merge options\n    if (options && options._isComponent) {\n      // optimize internal component instantiation\n      // since dynamic options merging is pretty slow, and none of the\n      // internal component options needs special treatment.\n      initInternalComponent(vm, options);\n    } else {\n      vm.$options = mergeOptions(\n        resolveConstructorOptions(vm.constructor),\n        options || {},\n        vm\n      );\n    }\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== 'production') {\n      initProxy(vm);\n    } else {\n      vm._renderProxy = vm;\n    }\n    // expose real self\n    vm._self = vm;\n    initLifecycle(vm);\n    initEvents(vm);\n    initRender(vm);\n    callHook(vm, 'beforeCreate');\n    initInjections(vm); // resolve injections before data/props\n    initState(vm);\n    initProvide(vm); // resolve provide after data/props\n    callHook(vm, 'created');\n\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n      vm._name = formatComponentName(vm, false);\n      mark(endTag);\n      measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n    }\n\n    if (vm.$options.el) {\n      vm.$mount(vm.$options.el);\n    }\n  };\n}\n\nfunction initInternalComponent (vm, options) {\n  var opts = vm.$options = Object.create(vm.constructor.options);\n  // doing this because it's faster than dynamic enumeration.\n  var parentVnode = options._parentVnode;\n  opts.parent = options.parent;\n  opts._parentVnode = parentVnode;\n  opts._parentElm = options._parentElm;\n  opts._refElm = options._refElm;\n\n  var vnodeComponentOptions = parentVnode.componentOptions;\n  opts.propsData = vnodeComponentOptions.propsData;\n  opts._parentListeners = vnodeComponentOptions.listeners;\n  opts._renderChildren = vnodeComponentOptions.children;\n  opts._componentTag = vnodeComponentOptions.tag;\n\n  if (options.render) {\n    opts.render = options.render;\n    opts.staticRenderFns = options.staticRenderFns;\n  }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n  var options = Ctor.options;\n  if (Ctor.super) {\n    var superOptions = resolveConstructorOptions(Ctor.super);\n    var cachedSuperOptions = Ctor.superOptions;\n    if (superOptions !== cachedSuperOptions) {\n      // super option changed,\n      // need to resolve new options.\n      Ctor.superOptions = superOptions;\n      // check if there are any late-modified/attached options (#4976)\n      var modifiedOptions = resolveModifiedOptions(Ctor);\n      // update base extend options\n      if (modifiedOptions) {\n        extend(Ctor.extendOptions, modifiedOptions);\n      }\n      options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n      if (options.name) {\n        options.components[options.name] = Ctor;\n      }\n    }\n  }\n  return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n  var modified;\n  var latest = Ctor.options;\n  var extended = Ctor.extendOptions;\n  var sealed = Ctor.sealedOptions;\n  for (var key in latest) {\n    if (latest[key] !== sealed[key]) {\n      if (!modified) { modified = {}; }\n      modified[key] = dedupe(latest[key], extended[key], sealed[key]);\n    }\n  }\n  return modified\n}\n\nfunction dedupe (latest, extended, sealed) {\n  // compare latest and sealed to ensure lifecycle hooks won't be duplicated\n  // between merges\n  if (Array.isArray(latest)) {\n    var res = [];\n    sealed = Array.isArray(sealed) ? sealed : [sealed];\n    extended = Array.isArray(extended) ? extended : [extended];\n    for (var i = 0; i < latest.length; i++) {\n      // push original options and not sealed options to exclude duplicated options\n      if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\n        res.push(latest[i]);\n      }\n    }\n    return res\n  } else {\n    return latest\n  }\n}\n\nfunction Vue (options) {\n  if (process.env.NODE_ENV !== 'production' &&\n    !(this instanceof Vue)\n  ) {\n    warn('Vue is a constructor and should be called with the `new` keyword');\n  }\n  this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/*  */\n\nfunction initUse (Vue) {\n  Vue.use = function (plugin) {\n    var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n    if (installedPlugins.indexOf(plugin) > -1) {\n      return this\n    }\n\n    // additional parameters\n    var args = toArray(arguments, 1);\n    args.unshift(this);\n    if (typeof plugin.install === 'function') {\n      plugin.install.apply(plugin, args);\n    } else if (typeof plugin === 'function') {\n      plugin.apply(null, args);\n    }\n    installedPlugins.push(plugin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initMixin$1 (Vue) {\n  Vue.mixin = function (mixin) {\n    this.options = mergeOptions(this.options, mixin);\n    return this\n  };\n}\n\n/*  */\n\nfunction initExtend (Vue) {\n  /**\n   * Each instance constructor, including Vue, has a unique\n   * cid. This enables us to create wrapped \"child\n   * constructors\" for prototypal inheritance and cache them.\n   */\n  Vue.cid = 0;\n  var cid = 1;\n\n  /**\n   * Class inheritance\n   */\n  Vue.extend = function (extendOptions) {\n    extendOptions = extendOptions || {};\n    var Super = this;\n    var SuperId = Super.cid;\n    var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n    if (cachedCtors[SuperId]) {\n      return cachedCtors[SuperId]\n    }\n\n    var name = extendOptions.name || Super.options.name;\n    if (process.env.NODE_ENV !== 'production' && name) {\n      validateComponentName(name);\n    }\n\n    var Sub = function VueComponent (options) {\n      this._init(options);\n    };\n    Sub.prototype = Object.create(Super.prototype);\n    Sub.prototype.constructor = Sub;\n    Sub.cid = cid++;\n    Sub.options = mergeOptions(\n      Super.options,\n      extendOptions\n    );\n    Sub['super'] = Super;\n\n    // For props and computed properties, we define the proxy getters on\n    // the Vue instances at extension time, on the extended prototype. This\n    // avoids Object.defineProperty calls for each instance created.\n    if (Sub.options.props) {\n      initProps$1(Sub);\n    }\n    if (Sub.options.computed) {\n      initComputed$1(Sub);\n    }\n\n    // allow further extension/mixin/plugin usage\n    Sub.extend = Super.extend;\n    Sub.mixin = Super.mixin;\n    Sub.use = Super.use;\n\n    // create asset registers, so extended classes\n    // can have their private assets too.\n    ASSET_TYPES.forEach(function (type) {\n      Sub[type] = Super[type];\n    });\n    // enable recursive self-lookup\n    if (name) {\n      Sub.options.components[name] = Sub;\n    }\n\n    // keep a reference to the super options at extension time.\n    // later at instantiation we can check if Super's options have\n    // been updated.\n    Sub.superOptions = Super.options;\n    Sub.extendOptions = extendOptions;\n    Sub.sealedOptions = extend({}, Sub.options);\n\n    // cache constructor\n    cachedCtors[SuperId] = Sub;\n    return Sub\n  };\n}\n\nfunction initProps$1 (Comp) {\n  var props = Comp.options.props;\n  for (var key in props) {\n    proxy(Comp.prototype, \"_props\", key);\n  }\n}\n\nfunction initComputed$1 (Comp) {\n  var computed = Comp.options.computed;\n  for (var key in computed) {\n    defineComputed(Comp.prototype, key, computed[key]);\n  }\n}\n\n/*  */\n\nfunction initAssetRegisters (Vue) {\n  /**\n   * Create asset registration methods.\n   */\n  ASSET_TYPES.forEach(function (type) {\n    Vue[type] = function (\n      id,\n      definition\n    ) {\n      if (!definition) {\n        return this.options[type + 's'][id]\n      } else {\n        /* istanbul ignore if */\n        if (process.env.NODE_ENV !== 'production' && type === 'component') {\n          validateComponentName(id);\n        }\n        if (type === 'component' && isPlainObject(definition)) {\n          definition.name = definition.name || id;\n          definition = this.options._base.extend(definition);\n        }\n        if (type === 'directive' && typeof definition === 'function') {\n          definition = { bind: definition, update: definition };\n        }\n        this.options[type + 's'][id] = definition;\n        return definition\n      }\n    };\n  });\n}\n\n/*  */\n\nfunction getComponentName (opts) {\n  return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n  if (Array.isArray(pattern)) {\n    return pattern.indexOf(name) > -1\n  } else if (typeof pattern === 'string') {\n    return pattern.split(',').indexOf(name) > -1\n  } else if (isRegExp(pattern)) {\n    return pattern.test(name)\n  }\n  /* istanbul ignore next */\n  return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n  var cache = keepAliveInstance.cache;\n  var keys = keepAliveInstance.keys;\n  var _vnode = keepAliveInstance._vnode;\n  for (var key in cache) {\n    var cachedNode = cache[key];\n    if (cachedNode) {\n      var name = getComponentName(cachedNode.componentOptions);\n      if (name && !filter(name)) {\n        pruneCacheEntry(cache, key, keys, _vnode);\n      }\n    }\n  }\n}\n\nfunction pruneCacheEntry (\n  cache,\n  key,\n  keys,\n  current\n) {\n  var cached$$1 = cache[key];\n  if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n    cached$$1.componentInstance.$destroy();\n  }\n  cache[key] = null;\n  remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n  name: 'keep-alive',\n  abstract: true,\n\n  props: {\n    include: patternTypes,\n    exclude: patternTypes,\n    max: [String, Number]\n  },\n\n  created: function created () {\n    this.cache = Object.create(null);\n    this.keys = [];\n  },\n\n  destroyed: function destroyed () {\n    var this$1 = this;\n\n    for (var key in this$1.cache) {\n      pruneCacheEntry(this$1.cache, key, this$1.keys);\n    }\n  },\n\n  mounted: function mounted () {\n    var this$1 = this;\n\n    this.$watch('include', function (val) {\n      pruneCache(this$1, function (name) { return matches(val, name); });\n    });\n    this.$watch('exclude', function (val) {\n      pruneCache(this$1, function (name) { return !matches(val, name); });\n    });\n  },\n\n  render: function render () {\n    var slot = this.$slots.default;\n    var vnode = getFirstComponentChild(slot);\n    var componentOptions = vnode && vnode.componentOptions;\n    if (componentOptions) {\n      // check pattern\n      var name = getComponentName(componentOptions);\n      var ref = this;\n      var include = ref.include;\n      var exclude = ref.exclude;\n      if (\n        // not included\n        (include && (!name || !matches(include, name))) ||\n        // excluded\n        (exclude && name && matches(exclude, name))\n      ) {\n        return vnode\n      }\n\n      var ref$1 = this;\n      var cache = ref$1.cache;\n      var keys = ref$1.keys;\n      var key = vnode.key == null\n        // same constructor may get registered as different local components\n        // so cid alone is not enough (#3269)\n        ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n        : vnode.key;\n      if (cache[key]) {\n        vnode.componentInstance = cache[key].componentInstance;\n        // make current key freshest\n        remove(keys, key);\n        keys.push(key);\n      } else {\n        cache[key] = vnode;\n        keys.push(key);\n        // prune oldest entry\n        if (this.max && keys.length > parseInt(this.max)) {\n          pruneCacheEntry(cache, keys[0], keys, this._vnode);\n        }\n      }\n\n      vnode.data.keepAlive = true;\n    }\n    return vnode || (slot && slot[0])\n  }\n}\n\nvar builtInComponents = {\n  KeepAlive: KeepAlive\n}\n\n/*  */\n\nfunction initGlobalAPI (Vue) {\n  // config\n  var configDef = {};\n  configDef.get = function () { return config; };\n  if (process.env.NODE_ENV !== 'production') {\n    configDef.set = function () {\n      warn(\n        'Do not replace the Vue.config object, set individual fields instead.'\n      );\n    };\n  }\n  Object.defineProperty(Vue, 'config', configDef);\n\n  // exposed util methods.\n  // NOTE: these are not considered part of the public API - avoid relying on\n  // them unless you are aware of the risk.\n  Vue.util = {\n    warn: warn,\n    extend: extend,\n    mergeOptions: mergeOptions,\n    defineReactive: defineReactive\n  };\n\n  Vue.set = set;\n  Vue.delete = del;\n  Vue.nextTick = nextTick;\n\n  Vue.options = Object.create(null);\n  ASSET_TYPES.forEach(function (type) {\n    Vue.options[type + 's'] = Object.create(null);\n  });\n\n  // this is used to identify the \"base\" constructor to extend all plain-object\n  // components with in Weex's multi-instance scenarios.\n  Vue.options._base = Vue;\n\n  extend(Vue.options.components, builtInComponents);\n\n  initUse(Vue);\n  initMixin$1(Vue);\n  initExtend(Vue);\n  initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n  get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n  get: function get () {\n    /* istanbul ignore next */\n    return this.$vnode && this.$vnode.ssrContext\n  }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n  value: FunctionalRenderContext\n});\n\nVue.version = '2.5.17';\n\n/*  */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n  return (\n    (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n    (attr === 'selected' && tag === 'option') ||\n    (attr === 'checked' && tag === 'input') ||\n    (attr === 'muted' && tag === 'video')\n  )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isBooleanAttr = makeMap(\n  'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n  'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n  'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n  'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n  'required,reversed,scoped,seamless,selected,sortable,translate,' +\n  'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n  return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n  return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n  return val == null || val === false\n};\n\n/*  */\n\nfunction genClassForVnode (vnode) {\n  var data = vnode.data;\n  var parentNode = vnode;\n  var childNode = vnode;\n  while (isDef(childNode.componentInstance)) {\n    childNode = childNode.componentInstance._vnode;\n    if (childNode && childNode.data) {\n      data = mergeClassData(childNode.data, data);\n    }\n  }\n  while (isDef(parentNode = parentNode.parent)) {\n    if (parentNode && parentNode.data) {\n      data = mergeClassData(data, parentNode.data);\n    }\n  }\n  return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n  return {\n    staticClass: concat(child.staticClass, parent.staticClass),\n    class: isDef(child.class)\n      ? [child.class, parent.class]\n      : parent.class\n  }\n}\n\nfunction renderClass (\n  staticClass,\n  dynamicClass\n) {\n  if (isDef(staticClass) || isDef(dynamicClass)) {\n    return concat(staticClass, stringifyClass(dynamicClass))\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction concat (a, b) {\n  return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n  if (Array.isArray(value)) {\n    return stringifyArray(value)\n  }\n  if (isObject(value)) {\n    return stringifyObject(value)\n  }\n  if (typeof value === 'string') {\n    return value\n  }\n  /* istanbul ignore next */\n  return ''\n}\n\nfunction stringifyArray (value) {\n  var res = '';\n  var stringified;\n  for (var i = 0, l = value.length; i < l; i++) {\n    if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n      if (res) { res += ' '; }\n      res += stringified;\n    }\n  }\n  return res\n}\n\nfunction stringifyObject (value) {\n  var res = '';\n  for (var key in value) {\n    if (value[key]) {\n      if (res) { res += ' '; }\n      res += key;\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar namespaceMap = {\n  svg: 'http://www.w3.org/2000/svg',\n  math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n  'html,body,base,head,link,meta,style,title,' +\n  'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n  'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n  'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n  's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n  'embed,object,param,source,canvas,script,noscript,del,ins,' +\n  'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n  'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n  'output,progress,select,textarea,' +\n  'details,dialog,menu,menuitem,summary,' +\n  'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n  'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n  'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n  'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n  true\n);\n\nvar isPreTag = function (tag) { return tag === 'pre'; };\n\nvar isReservedTag = function (tag) {\n  return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n  if (isSVG(tag)) {\n    return 'svg'\n  }\n  // basic support for MathML\n  // note it doesn't support other MathML elements being component roots\n  if (tag === 'math') {\n    return 'math'\n  }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n  /* istanbul ignore if */\n  if (!inBrowser) {\n    return true\n  }\n  if (isReservedTag(tag)) {\n    return false\n  }\n  tag = tag.toLowerCase();\n  /* istanbul ignore if */\n  if (unknownElementCache[tag] != null) {\n    return unknownElementCache[tag]\n  }\n  var el = document.createElement(tag);\n  if (tag.indexOf('-') > -1) {\n    // http://stackoverflow.com/a/28210364/1070244\n    return (unknownElementCache[tag] = (\n      el.constructor === window.HTMLUnknownElement ||\n      el.constructor === window.HTMLElement\n    ))\n  } else {\n    return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n  }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/*  */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n  if (typeof el === 'string') {\n    var selected = document.querySelector(el);\n    if (!selected) {\n      process.env.NODE_ENV !== 'production' && warn(\n        'Cannot find element: ' + el\n      );\n      return document.createElement('div')\n    }\n    return selected\n  } else {\n    return el\n  }\n}\n\n/*  */\n\nfunction createElement$1 (tagName, vnode) {\n  var elm = document.createElement(tagName);\n  if (tagName !== 'select') {\n    return elm\n  }\n  // false or null will remove the attribute but undefined will not\n  if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n    elm.setAttribute('multiple', 'multiple');\n  }\n  return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n  return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n  return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n  return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n  parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n  node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n  node.appendChild(child);\n}\n\nfunction parentNode (node) {\n  return node.parentNode\n}\n\nfunction nextSibling (node) {\n  return node.nextSibling\n}\n\nfunction tagName (node) {\n  return node.tagName\n}\n\nfunction setTextContent (node, text) {\n  node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n  node.setAttribute(scopeId, '');\n}\n\n\nvar nodeOps = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateElementNS: createElementNS,\n\tcreateTextNode: createTextNode,\n\tcreateComment: createComment,\n\tinsertBefore: insertBefore,\n\tremoveChild: removeChild,\n\tappendChild: appendChild,\n\tparentNode: parentNode,\n\tnextSibling: nextSibling,\n\ttagName: tagName,\n\tsetTextContent: setTextContent,\n\tsetStyleScope: setStyleScope\n});\n\n/*  */\n\nvar ref = {\n  create: function create (_, vnode) {\n    registerRef(vnode);\n  },\n  update: function update (oldVnode, vnode) {\n    if (oldVnode.data.ref !== vnode.data.ref) {\n      registerRef(oldVnode, true);\n      registerRef(vnode);\n    }\n  },\n  destroy: function destroy (vnode) {\n    registerRef(vnode, true);\n  }\n}\n\nfunction registerRef (vnode, isRemoval) {\n  var key = vnode.data.ref;\n  if (!isDef(key)) { return }\n\n  var vm = vnode.context;\n  var ref = vnode.componentInstance || vnode.elm;\n  var refs = vm.$refs;\n  if (isRemoval) {\n    if (Array.isArray(refs[key])) {\n      remove(refs[key], ref);\n    } else if (refs[key] === ref) {\n      refs[key] = undefined;\n    }\n  } else {\n    if (vnode.data.refInFor) {\n      if (!Array.isArray(refs[key])) {\n        refs[key] = [ref];\n      } else if (refs[key].indexOf(ref) < 0) {\n        // $flow-disable-line\n        refs[key].push(ref);\n      }\n    } else {\n      refs[key] = ref;\n    }\n  }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n  return (\n    a.key === b.key && (\n      (\n        a.tag === b.tag &&\n        a.isComment === b.isComment &&\n        isDef(a.data) === isDef(b.data) &&\n        sameInputType(a, b)\n      ) || (\n        isTrue(a.isAsyncPlaceholder) &&\n        a.asyncFactory === b.asyncFactory &&\n        isUndef(b.asyncFactory.error)\n      )\n    )\n  )\n}\n\nfunction sameInputType (a, b) {\n  if (a.tag !== 'input') { return true }\n  var i;\n  var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n  var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n  return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n  var i, key;\n  var map = {};\n  for (i = beginIdx; i <= endIdx; ++i) {\n    key = children[i].key;\n    if (isDef(key)) { map[key] = i; }\n  }\n  return map\n}\n\nfunction createPatchFunction (backend) {\n  var i, j;\n  var cbs = {};\n\n  var modules = backend.modules;\n  var nodeOps = backend.nodeOps;\n\n  for (i = 0; i < hooks.length; ++i) {\n    cbs[hooks[i]] = [];\n    for (j = 0; j < modules.length; ++j) {\n      if (isDef(modules[j][hooks[i]])) {\n        cbs[hooks[i]].push(modules[j][hooks[i]]);\n      }\n    }\n  }\n\n  function emptyNodeAt (elm) {\n    return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n  }\n\n  function createRmCb (childElm, listeners) {\n    function remove () {\n      if (--remove.listeners === 0) {\n        removeNode(childElm);\n      }\n    }\n    remove.listeners = listeners;\n    return remove\n  }\n\n  function removeNode (el) {\n    var parent = nodeOps.parentNode(el);\n    // element may have already been removed due to v-html / v-text\n    if (isDef(parent)) {\n      nodeOps.removeChild(parent, el);\n    }\n  }\n\n  function isUnknownElement$$1 (vnode, inVPre) {\n    return (\n      !inVPre &&\n      !vnode.ns &&\n      !(\n        config.ignoredElements.length &&\n        config.ignoredElements.some(function (ignore) {\n          return isRegExp(ignore)\n            ? ignore.test(vnode.tag)\n            : ignore === vnode.tag\n        })\n      ) &&\n      config.isUnknownElement(vnode.tag)\n    )\n  }\n\n  var creatingElmInVPre = 0;\n\n  function createElm (\n    vnode,\n    insertedVnodeQueue,\n    parentElm,\n    refElm,\n    nested,\n    ownerArray,\n    index\n  ) {\n    if (isDef(vnode.elm) && isDef(ownerArray)) {\n      // This vnode was used in a previous render!\n      // now it's used as a new node, overwriting its elm would cause\n      // potential patch errors down the road when it's used as an insertion\n      // reference node. Instead, we clone the node on-demand before creating\n      // associated DOM element for it.\n      vnode = ownerArray[index] = cloneVNode(vnode);\n    }\n\n    vnode.isRootInsert = !nested; // for transition enter check\n    if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n      return\n    }\n\n    var data = vnode.data;\n    var children = vnode.children;\n    var tag = vnode.tag;\n    if (isDef(tag)) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (data && data.pre) {\n          creatingElmInVPre++;\n        }\n        if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n          warn(\n            'Unknown custom element: <' + tag + '> - did you ' +\n            'register the component correctly? For recursive components, ' +\n            'make sure to provide the \"name\" option.',\n            vnode.context\n          );\n        }\n      }\n\n      vnode.elm = vnode.ns\n        ? nodeOps.createElementNS(vnode.ns, tag)\n        : nodeOps.createElement(tag, vnode);\n      setScope(vnode);\n\n      /* istanbul ignore if */\n      {\n        createChildren(vnode, children, insertedVnodeQueue);\n        if (isDef(data)) {\n          invokeCreateHooks(vnode, insertedVnodeQueue);\n        }\n        insert(parentElm, vnode.elm, refElm);\n      }\n\n      if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n        creatingElmInVPre--;\n      }\n    } else if (isTrue(vnode.isComment)) {\n      vnode.elm = nodeOps.createComment(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    } else {\n      vnode.elm = nodeOps.createTextNode(vnode.text);\n      insert(parentElm, vnode.elm, refElm);\n    }\n  }\n\n  function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i = vnode.data;\n    if (isDef(i)) {\n      var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n      if (isDef(i = i.hook) && isDef(i = i.init)) {\n        i(vnode, false /* hydrating */, parentElm, refElm);\n      }\n      // after calling the init hook, if the vnode is a child component\n      // it should've created a child instance and mounted it. the child\n      // component also has set the placeholder vnode's elm.\n      // in that case we can just return the element and be done.\n      if (isDef(vnode.componentInstance)) {\n        initComponent(vnode, insertedVnodeQueue);\n        if (isTrue(isReactivated)) {\n          reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n        }\n        return true\n      }\n    }\n  }\n\n  function initComponent (vnode, insertedVnodeQueue) {\n    if (isDef(vnode.data.pendingInsert)) {\n      insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n      vnode.data.pendingInsert = null;\n    }\n    vnode.elm = vnode.componentInstance.$el;\n    if (isPatchable(vnode)) {\n      invokeCreateHooks(vnode, insertedVnodeQueue);\n      setScope(vnode);\n    } else {\n      // empty component root.\n      // skip all element-related modules except for ref (#3455)\n      registerRef(vnode);\n      // make sure to invoke the insert hook\n      insertedVnodeQueue.push(vnode);\n    }\n  }\n\n  function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n    var i;\n    // hack for #4339: a reactivated component with inner transition\n    // does not trigger because the inner node's created hooks are not called\n    // again. It's not ideal to involve module-specific logic in here but\n    // there doesn't seem to be a better way to do it.\n    var innerNode = vnode;\n    while (innerNode.componentInstance) {\n      innerNode = innerNode.componentInstance._vnode;\n      if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n        for (i = 0; i < cbs.activate.length; ++i) {\n          cbs.activate[i](emptyNode, innerNode);\n        }\n        insertedVnodeQueue.push(innerNode);\n        break\n      }\n    }\n    // unlike a newly created component,\n    // a reactivated keep-alive component doesn't insert itself\n    insert(parentElm, vnode.elm, refElm);\n  }\n\n  function insert (parent, elm, ref$$1) {\n    if (isDef(parent)) {\n      if (isDef(ref$$1)) {\n        if (ref$$1.parentNode === parent) {\n          nodeOps.insertBefore(parent, elm, ref$$1);\n        }\n      } else {\n        nodeOps.appendChild(parent, elm);\n      }\n    }\n  }\n\n  function createChildren (vnode, children, insertedVnodeQueue) {\n    if (Array.isArray(children)) {\n      if (process.env.NODE_ENV !== 'production') {\n        checkDuplicateKeys(children);\n      }\n      for (var i = 0; i < children.length; ++i) {\n        createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n      }\n    } else if (isPrimitive(vnode.text)) {\n      nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n    }\n  }\n\n  function isPatchable (vnode) {\n    while (vnode.componentInstance) {\n      vnode = vnode.componentInstance._vnode;\n    }\n    return isDef(vnode.tag)\n  }\n\n  function invokeCreateHooks (vnode, insertedVnodeQueue) {\n    for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n      cbs.create[i$1](emptyNode, vnode);\n    }\n    i = vnode.data.hook; // Reuse variable\n    if (isDef(i)) {\n      if (isDef(i.create)) { i.create(emptyNode, vnode); }\n      if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n    }\n  }\n\n  // set scope id attribute for scoped CSS.\n  // this is implemented as a special case to avoid the overhead\n  // of going through the normal attribute patching process.\n  function setScope (vnode) {\n    var i;\n    if (isDef(i = vnode.fnScopeId)) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    } else {\n      var ancestor = vnode;\n      while (ancestor) {\n        if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n          nodeOps.setStyleScope(vnode.elm, i);\n        }\n        ancestor = ancestor.parent;\n      }\n    }\n    // for slot content they should also get the scopeId from the host instance.\n    if (isDef(i = activeInstance) &&\n      i !== vnode.context &&\n      i !== vnode.fnContext &&\n      isDef(i = i.$options._scopeId)\n    ) {\n      nodeOps.setStyleScope(vnode.elm, i);\n    }\n  }\n\n  function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n    }\n  }\n\n  function invokeDestroyHook (vnode) {\n    var i, j;\n    var data = vnode.data;\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n      for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n    }\n    if (isDef(i = vnode.children)) {\n      for (j = 0; j < vnode.children.length; ++j) {\n        invokeDestroyHook(vnode.children[j]);\n      }\n    }\n  }\n\n  function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      var ch = vnodes[startIdx];\n      if (isDef(ch)) {\n        if (isDef(ch.tag)) {\n          removeAndInvokeRemoveHook(ch);\n          invokeDestroyHook(ch);\n        } else { // Text node\n          removeNode(ch.elm);\n        }\n      }\n    }\n  }\n\n  function removeAndInvokeRemoveHook (vnode, rm) {\n    if (isDef(rm) || isDef(vnode.data)) {\n      var i;\n      var listeners = cbs.remove.length + 1;\n      if (isDef(rm)) {\n        // we have a recursively passed down rm callback\n        // increase the listeners count\n        rm.listeners += listeners;\n      } else {\n        // directly removing\n        rm = createRmCb(vnode.elm, listeners);\n      }\n      // recursively invoke hooks on child component root node\n      if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n        removeAndInvokeRemoveHook(i, rm);\n      }\n      for (i = 0; i < cbs.remove.length; ++i) {\n        cbs.remove[i](vnode, rm);\n      }\n      if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n        i(vnode, rm);\n      } else {\n        rm();\n      }\n    } else {\n      removeNode(vnode.elm);\n    }\n  }\n\n  function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n    var oldStartIdx = 0;\n    var newStartIdx = 0;\n    var oldEndIdx = oldCh.length - 1;\n    var oldStartVnode = oldCh[0];\n    var oldEndVnode = oldCh[oldEndIdx];\n    var newEndIdx = newCh.length - 1;\n    var newStartVnode = newCh[0];\n    var newEndVnode = newCh[newEndIdx];\n    var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n    // removeOnly is a special flag used only by <transition-group>\n    // to ensure removed elements stay in correct relative positions\n    // during leaving transitions\n    var canMove = !removeOnly;\n\n    if (process.env.NODE_ENV !== 'production') {\n      checkDuplicateKeys(newCh);\n    }\n\n    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n      if (isUndef(oldStartVnode)) {\n        oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n      } else if (isUndef(oldEndVnode)) {\n        oldEndVnode = oldCh[--oldEndIdx];\n      } else if (sameVnode(oldStartVnode, newStartVnode)) {\n        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n        oldStartVnode = oldCh[++oldStartIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else if (sameVnode(oldEndVnode, newEndVnode)) {\n        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n        canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n        oldStartVnode = oldCh[++oldStartIdx];\n        newEndVnode = newCh[--newEndIdx];\n      } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n        canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n        oldEndVnode = oldCh[--oldEndIdx];\n        newStartVnode = newCh[++newStartIdx];\n      } else {\n        if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n        idxInOld = isDef(newStartVnode.key)\n          ? oldKeyToIdx[newStartVnode.key]\n          : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n        if (isUndef(idxInOld)) { // New element\n          createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n        } else {\n          vnodeToMove = oldCh[idxInOld];\n          if (sameVnode(vnodeToMove, newStartVnode)) {\n            patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);\n            oldCh[idxInOld] = undefined;\n            canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n          } else {\n            // same key but different element. treat as new element\n            createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n          }\n        }\n        newStartVnode = newCh[++newStartIdx];\n      }\n    }\n    if (oldStartIdx > oldEndIdx) {\n      refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n      addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n    } else if (newStartIdx > newEndIdx) {\n      removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n    }\n  }\n\n  function checkDuplicateKeys (children) {\n    var seenKeys = {};\n    for (var i = 0; i < children.length; i++) {\n      var vnode = children[i];\n      var key = vnode.key;\n      if (isDef(key)) {\n        if (seenKeys[key]) {\n          warn(\n            (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n            vnode.context\n          );\n        } else {\n          seenKeys[key] = true;\n        }\n      }\n    }\n  }\n\n  function findIdxInOld (node, oldCh, start, end) {\n    for (var i = start; i < end; i++) {\n      var c = oldCh[i];\n      if (isDef(c) && sameVnode(node, c)) { return i }\n    }\n  }\n\n  function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {\n    if (oldVnode === vnode) {\n      return\n    }\n\n    var elm = vnode.elm = oldVnode.elm;\n\n    if (isTrue(oldVnode.isAsyncPlaceholder)) {\n      if (isDef(vnode.asyncFactory.resolved)) {\n        hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n      } else {\n        vnode.isAsyncPlaceholder = true;\n      }\n      return\n    }\n\n    // reuse element for static trees.\n    // note we only do this if the vnode is cloned -\n    // if the new node is not cloned it means the render functions have been\n    // reset by the hot-reload-api and we need to do a proper re-render.\n    if (isTrue(vnode.isStatic) &&\n      isTrue(oldVnode.isStatic) &&\n      vnode.key === oldVnode.key &&\n      (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n    ) {\n      vnode.componentInstance = oldVnode.componentInstance;\n      return\n    }\n\n    var i;\n    var data = vnode.data;\n    if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n      i(oldVnode, vnode);\n    }\n\n    var oldCh = oldVnode.children;\n    var ch = vnode.children;\n    if (isDef(data) && isPatchable(vnode)) {\n      for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n      if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n    }\n    if (isUndef(vnode.text)) {\n      if (isDef(oldCh) && isDef(ch)) {\n        if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n      } else if (isDef(ch)) {\n        if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n      } else if (isDef(oldCh)) {\n        removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n      } else if (isDef(oldVnode.text)) {\n        nodeOps.setTextContent(elm, '');\n      }\n    } else if (oldVnode.text !== vnode.text) {\n      nodeOps.setTextContent(elm, vnode.text);\n    }\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n    }\n  }\n\n  function invokeInsertHook (vnode, queue, initial) {\n    // delay insert hooks for component root nodes, invoke them after the\n    // element is really inserted\n    if (isTrue(initial) && isDef(vnode.parent)) {\n      vnode.parent.data.pendingInsert = queue;\n    } else {\n      for (var i = 0; i < queue.length; ++i) {\n        queue[i].data.hook.insert(queue[i]);\n      }\n    }\n  }\n\n  var hydrationBailed = false;\n  // list of modules that can skip create hook during hydration because they\n  // are already rendered on the client or has no need for initialization\n  // Note: style is excluded because it relies on initial clone for future\n  // deep updates (#7063).\n  var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n  // Note: this is a browser-only function so we can assume elms are DOM nodes.\n  function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n    var i;\n    var tag = vnode.tag;\n    var data = vnode.data;\n    var children = vnode.children;\n    inVPre = inVPre || (data && data.pre);\n    vnode.elm = elm;\n\n    if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n      vnode.isAsyncPlaceholder = true;\n      return true\n    }\n    // assert node match\n    if (process.env.NODE_ENV !== 'production') {\n      if (!assertNodeMatch(elm, vnode, inVPre)) {\n        return false\n      }\n    }\n    if (isDef(data)) {\n      if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n      if (isDef(i = vnode.componentInstance)) {\n        // child component. it should have hydrated its own tree.\n        initComponent(vnode, insertedVnodeQueue);\n        return true\n      }\n    }\n    if (isDef(tag)) {\n      if (isDef(children)) {\n        // empty element, allow client to pick up and populate children\n        if (!elm.hasChildNodes()) {\n          createChildren(vnode, children, insertedVnodeQueue);\n        } else {\n          // v-html and domProps: innerHTML\n          if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n            if (i !== elm.innerHTML) {\n              /* istanbul ignore if */\n              if (process.env.NODE_ENV !== 'production' &&\n                typeof console !== 'undefined' &&\n                !hydrationBailed\n              ) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('server innerHTML: ', i);\n                console.warn('client innerHTML: ', elm.innerHTML);\n              }\n              return false\n            }\n          } else {\n            // iterate and compare children lists\n            var childrenMatch = true;\n            var childNode = elm.firstChild;\n            for (var i$1 = 0; i$1 < children.length; i$1++) {\n              if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n                childrenMatch = false;\n                break\n              }\n              childNode = childNode.nextSibling;\n            }\n            // if childNode is not null, it means the actual childNodes list is\n            // longer than the virtual children list.\n            if (!childrenMatch || childNode) {\n              /* istanbul ignore if */\n              if (process.env.NODE_ENV !== 'production' &&\n                typeof console !== 'undefined' &&\n                !hydrationBailed\n              ) {\n                hydrationBailed = true;\n                console.warn('Parent: ', elm);\n                console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n              }\n              return false\n            }\n          }\n        }\n      }\n      if (isDef(data)) {\n        var fullInvoke = false;\n        for (var key in data) {\n          if (!isRenderedModule(key)) {\n            fullInvoke = true;\n            invokeCreateHooks(vnode, insertedVnodeQueue);\n            break\n          }\n        }\n        if (!fullInvoke && data['class']) {\n          // ensure collecting deps for deep class bindings for future updates\n          traverse(data['class']);\n        }\n      }\n    } else if (elm.data !== vnode.text) {\n      elm.data = vnode.text;\n    }\n    return true\n  }\n\n  function assertNodeMatch (node, vnode, inVPre) {\n    if (isDef(vnode.tag)) {\n      return vnode.tag.indexOf('vue-component') === 0 || (\n        !isUnknownElement$$1(vnode, inVPre) &&\n        vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n      )\n    } else {\n      return node.nodeType === (vnode.isComment ? 8 : 3)\n    }\n  }\n\n  return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\n    if (isUndef(vnode)) {\n      if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n      return\n    }\n\n    var isInitialPatch = false;\n    var insertedVnodeQueue = [];\n\n    if (isUndef(oldVnode)) {\n      // empty mount (likely as component), create new root element\n      isInitialPatch = true;\n      createElm(vnode, insertedVnodeQueue, parentElm, refElm);\n    } else {\n      var isRealElement = isDef(oldVnode.nodeType);\n      if (!isRealElement && sameVnode(oldVnode, vnode)) {\n        // patch existing root node\n        patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);\n      } else {\n        if (isRealElement) {\n          // mounting to a real element\n          // check if this is server-rendered content and if we can perform\n          // a successful hydration.\n          if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n            oldVnode.removeAttribute(SSR_ATTR);\n            hydrating = true;\n          }\n          if (isTrue(hydrating)) {\n            if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n              invokeInsertHook(vnode, insertedVnodeQueue, true);\n              return oldVnode\n            } else if (process.env.NODE_ENV !== 'production') {\n              warn(\n                'The client-side rendered virtual DOM tree is not matching ' +\n                'server-rendered content. This is likely caused by incorrect ' +\n                'HTML markup, for example nesting block-level elements inside ' +\n                '<p>, or missing <tbody>. Bailing hydration and performing ' +\n                'full client-side render.'\n              );\n            }\n          }\n          // either not server-rendered, or hydration failed.\n          // create an empty node and replace it\n          oldVnode = emptyNodeAt(oldVnode);\n        }\n\n        // replacing existing element\n        var oldElm = oldVnode.elm;\n        var parentElm$1 = nodeOps.parentNode(oldElm);\n\n        // create new node\n        createElm(\n          vnode,\n          insertedVnodeQueue,\n          // extremely rare edge case: do not insert if old element is in a\n          // leaving transition. Only happens when combining transition +\n          // keep-alive + HOCs. (#4590)\n          oldElm._leaveCb ? null : parentElm$1,\n          nodeOps.nextSibling(oldElm)\n        );\n\n        // update parent placeholder node element, recursively\n        if (isDef(vnode.parent)) {\n          var ancestor = vnode.parent;\n          var patchable = isPatchable(vnode);\n          while (ancestor) {\n            for (var i = 0; i < cbs.destroy.length; ++i) {\n              cbs.destroy[i](ancestor);\n            }\n            ancestor.elm = vnode.elm;\n            if (patchable) {\n              for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n                cbs.create[i$1](emptyNode, ancestor);\n              }\n              // #6513\n              // invoke insert hooks that may have been merged by create hooks.\n              // e.g. for directives that uses the \"inserted\" hook.\n              var insert = ancestor.data.hook.insert;\n              if (insert.merged) {\n                // start at index 1 to avoid re-invoking component mounted hook\n                for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n                  insert.fns[i$2]();\n                }\n              }\n            } else {\n              registerRef(ancestor);\n            }\n            ancestor = ancestor.parent;\n          }\n        }\n\n        // destroy old node\n        if (isDef(parentElm$1)) {\n          removeVnodes(parentElm$1, [oldVnode], 0, 0);\n        } else if (isDef(oldVnode.tag)) {\n          invokeDestroyHook(oldVnode);\n        }\n      }\n    }\n\n    invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n    return vnode.elm\n  }\n}\n\n/*  */\n\nvar directives = {\n  create: updateDirectives,\n  update: updateDirectives,\n  destroy: function unbindDirectives (vnode) {\n    updateDirectives(vnode, emptyNode);\n  }\n}\n\nfunction updateDirectives (oldVnode, vnode) {\n  if (oldVnode.data.directives || vnode.data.directives) {\n    _update(oldVnode, vnode);\n  }\n}\n\nfunction _update (oldVnode, vnode) {\n  var isCreate = oldVnode === emptyNode;\n  var isDestroy = vnode === emptyNode;\n  var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n  var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n  var dirsWithInsert = [];\n  var dirsWithPostpatch = [];\n\n  var key, oldDir, dir;\n  for (key in newDirs) {\n    oldDir = oldDirs[key];\n    dir = newDirs[key];\n    if (!oldDir) {\n      // new directive, bind\n      callHook$1(dir, 'bind', vnode, oldVnode);\n      if (dir.def && dir.def.inserted) {\n        dirsWithInsert.push(dir);\n      }\n    } else {\n      // existing directive, update\n      dir.oldValue = oldDir.value;\n      callHook$1(dir, 'update', vnode, oldVnode);\n      if (dir.def && dir.def.componentUpdated) {\n        dirsWithPostpatch.push(dir);\n      }\n    }\n  }\n\n  if (dirsWithInsert.length) {\n    var callInsert = function () {\n      for (var i = 0; i < dirsWithInsert.length; i++) {\n        callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n      }\n    };\n    if (isCreate) {\n      mergeVNodeHook(vnode, 'insert', callInsert);\n    } else {\n      callInsert();\n    }\n  }\n\n  if (dirsWithPostpatch.length) {\n    mergeVNodeHook(vnode, 'postpatch', function () {\n      for (var i = 0; i < dirsWithPostpatch.length; i++) {\n        callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n      }\n    });\n  }\n\n  if (!isCreate) {\n    for (key in oldDirs) {\n      if (!newDirs[key]) {\n        // no longer present, unbind\n        callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n      }\n    }\n  }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n  dirs,\n  vm\n) {\n  var res = Object.create(null);\n  if (!dirs) {\n    // $flow-disable-line\n    return res\n  }\n  var i, dir;\n  for (i = 0; i < dirs.length; i++) {\n    dir = dirs[i];\n    if (!dir.modifiers) {\n      // $flow-disable-line\n      dir.modifiers = emptyModifiers;\n    }\n    res[getRawDirName(dir)] = dir;\n    dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n  }\n  // $flow-disable-line\n  return res\n}\n\nfunction getRawDirName (dir) {\n  return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n  var fn = dir.def && dir.def[hook];\n  if (fn) {\n    try {\n      fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n    } catch (e) {\n      handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n    }\n  }\n}\n\nvar baseModules = [\n  ref,\n  directives\n]\n\n/*  */\n\nfunction updateAttrs (oldVnode, vnode) {\n  var opts = vnode.componentOptions;\n  if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n    return\n  }\n  if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n    return\n  }\n  var key, cur, old;\n  var elm = vnode.elm;\n  var oldAttrs = oldVnode.data.attrs || {};\n  var attrs = vnode.data.attrs || {};\n  // clone observed objects, as the user probably wants to mutate it\n  if (isDef(attrs.__ob__)) {\n    attrs = vnode.data.attrs = extend({}, attrs);\n  }\n\n  for (key in attrs) {\n    cur = attrs[key];\n    old = oldAttrs[key];\n    if (old !== cur) {\n      setAttr(elm, key, cur);\n    }\n  }\n  // #4391: in IE9, setting type can reset value for input[type=radio]\n  // #6666: IE/Edge forces progress value down to 1 before setting a max\n  /* istanbul ignore if */\n  if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n    setAttr(elm, 'value', attrs.value);\n  }\n  for (key in oldAttrs) {\n    if (isUndef(attrs[key])) {\n      if (isXlink(key)) {\n        elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n      } else if (!isEnumeratedAttr(key)) {\n        elm.removeAttribute(key);\n      }\n    }\n  }\n}\n\nfunction setAttr (el, key, value) {\n  if (el.tagName.indexOf('-') > -1) {\n    baseSetAttr(el, key, value);\n  } else if (isBooleanAttr(key)) {\n    // set attribute for blank value\n    // e.g. <option disabled>Select one</option>\n    if (isFalsyAttrValue(value)) {\n      el.removeAttribute(key);\n    } else {\n      // technically allowfullscreen is a boolean attribute for <iframe>,\n      // but Flash expects a value of \"true\" when used on <embed> tag\n      value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n        ? 'true'\n        : key;\n      el.setAttribute(key, value);\n    }\n  } else if (isEnumeratedAttr(key)) {\n    el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');\n  } else if (isXlink(key)) {\n    if (isFalsyAttrValue(value)) {\n      el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n    } else {\n      el.setAttributeNS(xlinkNS, key, value);\n    }\n  } else {\n    baseSetAttr(el, key, value);\n  }\n}\n\nfunction baseSetAttr (el, key, value) {\n  if (isFalsyAttrValue(value)) {\n    el.removeAttribute(key);\n  } else {\n    // #7138: IE10 & 11 fires input event when setting placeholder on\n    // <textarea>... block the first input event and remove the blocker\n    // immediately.\n    /* istanbul ignore if */\n    if (\n      isIE && !isIE9 &&\n      el.tagName === 'TEXTAREA' &&\n      key === 'placeholder' && !el.__ieph\n    ) {\n      var blocker = function (e) {\n        e.stopImmediatePropagation();\n        el.removeEventListener('input', blocker);\n      };\n      el.addEventListener('input', blocker);\n      // $flow-disable-line\n      el.__ieph = true; /* IE placeholder patched */\n    }\n    el.setAttribute(key, value);\n  }\n}\n\nvar attrs = {\n  create: updateAttrs,\n  update: updateAttrs\n}\n\n/*  */\n\nfunction updateClass (oldVnode, vnode) {\n  var el = vnode.elm;\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n  if (\n    isUndef(data.staticClass) &&\n    isUndef(data.class) && (\n      isUndef(oldData) || (\n        isUndef(oldData.staticClass) &&\n        isUndef(oldData.class)\n      )\n    )\n  ) {\n    return\n  }\n\n  var cls = genClassForVnode(vnode);\n\n  // handle transition classes\n  var transitionClass = el._transitionClasses;\n  if (isDef(transitionClass)) {\n    cls = concat(cls, stringifyClass(transitionClass));\n  }\n\n  // set the class\n  if (cls !== el._prevClass) {\n    el.setAttribute('class', cls);\n    el._prevClass = cls;\n  }\n}\n\nvar klass = {\n  create: updateClass,\n  update: updateClass\n}\n\n/*  */\n\nvar validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n\nfunction parseFilters (exp) {\n  var inSingle = false;\n  var inDouble = false;\n  var inTemplateString = false;\n  var inRegex = false;\n  var curly = 0;\n  var square = 0;\n  var paren = 0;\n  var lastFilterIndex = 0;\n  var c, prev, i, expression, filters;\n\n  for (i = 0; i < exp.length; i++) {\n    prev = c;\n    c = exp.charCodeAt(i);\n    if (inSingle) {\n      if (c === 0x27 && prev !== 0x5C) { inSingle = false; }\n    } else if (inDouble) {\n      if (c === 0x22 && prev !== 0x5C) { inDouble = false; }\n    } else if (inTemplateString) {\n      if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }\n    } else if (inRegex) {\n      if (c === 0x2f && prev !== 0x5C) { inRegex = false; }\n    } else if (\n      c === 0x7C && // pipe\n      exp.charCodeAt(i + 1) !== 0x7C &&\n      exp.charCodeAt(i - 1) !== 0x7C &&\n      !curly && !square && !paren\n    ) {\n      if (expression === undefined) {\n        // first filter, end of expression\n        lastFilterIndex = i + 1;\n        expression = exp.slice(0, i).trim();\n      } else {\n        pushFilter();\n      }\n    } else {\n      switch (c) {\n        case 0x22: inDouble = true; break         // \"\n        case 0x27: inSingle = true; break         // '\n        case 0x60: inTemplateString = true; break // `\n        case 0x28: paren++; break                 // (\n        case 0x29: paren--; break                 // )\n        case 0x5B: square++; break                // [\n        case 0x5D: square--; break                // ]\n        case 0x7B: curly++; break                 // {\n        case 0x7D: curly--; break                 // }\n      }\n      if (c === 0x2f) { // /\n        var j = i - 1;\n        var p = (void 0);\n        // find first non-whitespace prev char\n        for (; j >= 0; j--) {\n          p = exp.charAt(j);\n          if (p !== ' ') { break }\n        }\n        if (!p || !validDivisionCharRE.test(p)) {\n          inRegex = true;\n        }\n      }\n    }\n  }\n\n  if (expression === undefined) {\n    expression = exp.slice(0, i).trim();\n  } else if (lastFilterIndex !== 0) {\n    pushFilter();\n  }\n\n  function pushFilter () {\n    (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n    lastFilterIndex = i + 1;\n  }\n\n  if (filters) {\n    for (i = 0; i < filters.length; i++) {\n      expression = wrapFilter(expression, filters[i]);\n    }\n  }\n\n  return expression\n}\n\nfunction wrapFilter (exp, filter) {\n  var i = filter.indexOf('(');\n  if (i < 0) {\n    // _f: resolveFilter\n    return (\"_f(\\\"\" + filter + \"\\\")(\" + exp + \")\")\n  } else {\n    var name = filter.slice(0, i);\n    var args = filter.slice(i + 1);\n    return (\"_f(\\\"\" + name + \"\\\")(\" + exp + (args !== ')' ? ',' + args : args))\n  }\n}\n\n/*  */\n\nfunction baseWarn (msg) {\n  console.error((\"[Vue compiler]: \" + msg));\n}\n\nfunction pluckModuleFunction (\n  modules,\n  key\n) {\n  return modules\n    ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })\n    : []\n}\n\nfunction addProp (el, name, value) {\n  (el.props || (el.props = [])).push({ name: name, value: value });\n  el.plain = false;\n}\n\nfunction addAttr (el, name, value) {\n  (el.attrs || (el.attrs = [])).push({ name: name, value: value });\n  el.plain = false;\n}\n\n// add a raw attr (use this in preTransforms)\nfunction addRawAttr (el, name, value) {\n  el.attrsMap[name] = value;\n  el.attrsList.push({ name: name, value: value });\n}\n\nfunction addDirective (\n  el,\n  name,\n  rawName,\n  value,\n  arg,\n  modifiers\n) {\n  (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });\n  el.plain = false;\n}\n\nfunction addHandler (\n  el,\n  name,\n  value,\n  modifiers,\n  important,\n  warn\n) {\n  modifiers = modifiers || emptyObject;\n  // warn prevent and passive modifier\n  /* istanbul ignore if */\n  if (\n    process.env.NODE_ENV !== 'production' && warn &&\n    modifiers.prevent && modifiers.passive\n  ) {\n    warn(\n      'passive and prevent can\\'t be used together. ' +\n      'Passive handler can\\'t prevent default event.'\n    );\n  }\n\n  // check capture modifier\n  if (modifiers.capture) {\n    delete modifiers.capture;\n    name = '!' + name; // mark the event as captured\n  }\n  if (modifiers.once) {\n    delete modifiers.once;\n    name = '~' + name; // mark the event as once\n  }\n  /* istanbul ignore if */\n  if (modifiers.passive) {\n    delete modifiers.passive;\n    name = '&' + name; // mark the event as passive\n  }\n\n  // normalize click.right and click.middle since they don't actually fire\n  // this is technically browser-specific, but at least for now browsers are\n  // the only target envs that have right/middle clicks.\n  if (name === 'click') {\n    if (modifiers.right) {\n      name = 'contextmenu';\n      delete modifiers.right;\n    } else if (modifiers.middle) {\n      name = 'mouseup';\n    }\n  }\n\n  var events;\n  if (modifiers.native) {\n    delete modifiers.native;\n    events = el.nativeEvents || (el.nativeEvents = {});\n  } else {\n    events = el.events || (el.events = {});\n  }\n\n  var newHandler = {\n    value: value.trim()\n  };\n  if (modifiers !== emptyObject) {\n    newHandler.modifiers = modifiers;\n  }\n\n  var handlers = events[name];\n  /* istanbul ignore if */\n  if (Array.isArray(handlers)) {\n    important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n  } else if (handlers) {\n    events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n  } else {\n    events[name] = newHandler;\n  }\n\n  el.plain = false;\n}\n\nfunction getBindingAttr (\n  el,\n  name,\n  getStatic\n) {\n  var dynamicValue =\n    getAndRemoveAttr(el, ':' + name) ||\n    getAndRemoveAttr(el, 'v-bind:' + name);\n  if (dynamicValue != null) {\n    return parseFilters(dynamicValue)\n  } else if (getStatic !== false) {\n    var staticValue = getAndRemoveAttr(el, name);\n    if (staticValue != null) {\n      return JSON.stringify(staticValue)\n    }\n  }\n}\n\n// note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\nfunction getAndRemoveAttr (\n  el,\n  name,\n  removeFromMap\n) {\n  var val;\n  if ((val = el.attrsMap[name]) != null) {\n    var list = el.attrsList;\n    for (var i = 0, l = list.length; i < l; i++) {\n      if (list[i].name === name) {\n        list.splice(i, 1);\n        break\n      }\n    }\n  }\n  if (removeFromMap) {\n    delete el.attrsMap[name];\n  }\n  return val\n}\n\n/*  */\n\n/**\n * Cross-platform code generation for component v-model\n */\nfunction genComponentModel (\n  el,\n  value,\n  modifiers\n) {\n  var ref = modifiers || {};\n  var number = ref.number;\n  var trim = ref.trim;\n\n  var baseValueExpression = '$$v';\n  var valueExpression = baseValueExpression;\n  if (trim) {\n    valueExpression =\n      \"(typeof \" + baseValueExpression + \" === 'string'\" +\n      \"? \" + baseValueExpression + \".trim()\" +\n      \": \" + baseValueExpression + \")\";\n  }\n  if (number) {\n    valueExpression = \"_n(\" + valueExpression + \")\";\n  }\n  var assignment = genAssignmentCode(value, valueExpression);\n\n  el.model = {\n    value: (\"(\" + value + \")\"),\n    expression: (\"\\\"\" + value + \"\\\"\"),\n    callback: (\"function (\" + baseValueExpression + \") {\" + assignment + \"}\")\n  };\n}\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\nfunction genAssignmentCode (\n  value,\n  assignment\n) {\n  var res = parseModel(value);\n  if (res.key === null) {\n    return (value + \"=\" + assignment)\n  } else {\n    return (\"$set(\" + (res.exp) + \", \" + (res.key) + \", \" + assignment + \")\")\n  }\n}\n\n/**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n\nvar len;\nvar str;\nvar chr;\nvar index$1;\nvar expressionPos;\nvar expressionEndPos;\n\n\n\nfunction parseModel (val) {\n  // Fix https://github.com/vuejs/vue/pull/7730\n  // allow v-model=\"obj.val \" (trailing whitespace)\n  val = val.trim();\n  len = val.length;\n\n  if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n    index$1 = val.lastIndexOf('.');\n    if (index$1 > -1) {\n      return {\n        exp: val.slice(0, index$1),\n        key: '\"' + val.slice(index$1 + 1) + '\"'\n      }\n    } else {\n      return {\n        exp: val,\n        key: null\n      }\n    }\n  }\n\n  str = val;\n  index$1 = expressionPos = expressionEndPos = 0;\n\n  while (!eof()) {\n    chr = next();\n    /* istanbul ignore if */\n    if (isStringStart(chr)) {\n      parseString(chr);\n    } else if (chr === 0x5B) {\n      parseBracket(chr);\n    }\n  }\n\n  return {\n    exp: val.slice(0, expressionPos),\n    key: val.slice(expressionPos + 1, expressionEndPos)\n  }\n}\n\nfunction next () {\n  return str.charCodeAt(++index$1)\n}\n\nfunction eof () {\n  return index$1 >= len\n}\n\nfunction isStringStart (chr) {\n  return chr === 0x22 || chr === 0x27\n}\n\nfunction parseBracket (chr) {\n  var inBracket = 1;\n  expressionPos = index$1;\n  while (!eof()) {\n    chr = next();\n    if (isStringStart(chr)) {\n      parseString(chr);\n      continue\n    }\n    if (chr === 0x5B) { inBracket++; }\n    if (chr === 0x5D) { inBracket--; }\n    if (inBracket === 0) {\n      expressionEndPos = index$1;\n      break\n    }\n  }\n}\n\nfunction parseString (chr) {\n  var stringQuote = chr;\n  while (!eof()) {\n    chr = next();\n    if (chr === stringQuote) {\n      break\n    }\n  }\n}\n\n/*  */\n\nvar warn$1;\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\nfunction model (\n  el,\n  dir,\n  _warn\n) {\n  warn$1 = _warn;\n  var value = dir.value;\n  var modifiers = dir.modifiers;\n  var tag = el.tag;\n  var type = el.attrsMap.type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    // inputs with type=\"file\" are read only and setting the input's\n    // value will throw an error.\n    if (tag === 'input' && type === 'file') {\n      warn$1(\n        \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\" type=\\\"file\\\">:\\n\" +\n        \"File inputs are read only. Use a v-on:change listener instead.\"\n      );\n    }\n  }\n\n  if (el.component) {\n    genComponentModel(el, value, modifiers);\n    // component v-model doesn't need extra runtime\n    return false\n  } else if (tag === 'select') {\n    genSelect(el, value, modifiers);\n  } else if (tag === 'input' && type === 'checkbox') {\n    genCheckboxModel(el, value, modifiers);\n  } else if (tag === 'input' && type === 'radio') {\n    genRadioModel(el, value, modifiers);\n  } else if (tag === 'input' || tag === 'textarea') {\n    genDefaultModel(el, value, modifiers);\n  } else if (!config.isReservedTag(tag)) {\n    genComponentModel(el, value, modifiers);\n    // component v-model doesn't need extra runtime\n    return false\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn$1(\n      \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n      \"v-model is not supported on this element type. \" +\n      'If you are working with contenteditable, it\\'s recommended to ' +\n      'wrap a library dedicated for that purpose inside a custom component.'\n    );\n  }\n\n  // ensure runtime directive metadata\n  return true\n}\n\nfunction genCheckboxModel (\n  el,\n  value,\n  modifiers\n) {\n  var number = modifiers && modifiers.number;\n  var valueBinding = getBindingAttr(el, 'value') || 'null';\n  var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n  var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n  addProp(el, 'checked',\n    \"Array.isArray(\" + value + \")\" +\n    \"?_i(\" + value + \",\" + valueBinding + \")>-1\" + (\n      trueValueBinding === 'true'\n        ? (\":(\" + value + \")\")\n        : (\":_q(\" + value + \",\" + trueValueBinding + \")\")\n    )\n  );\n  addHandler(el, 'change',\n    \"var $$a=\" + value + \",\" +\n        '$$el=$event.target,' +\n        \"$$c=$$el.checked?(\" + trueValueBinding + \"):(\" + falseValueBinding + \");\" +\n    'if(Array.isArray($$a)){' +\n      \"var $$v=\" + (number ? '_n(' + valueBinding + ')' : valueBinding) + \",\" +\n          '$$i=_i($$a,$$v);' +\n      \"if($$el.checked){$$i<0&&(\" + (genAssignmentCode(value, '$$a.concat([$$v])')) + \")}\" +\n      \"else{$$i>-1&&(\" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + \")}\" +\n    \"}else{\" + (genAssignmentCode(value, '$$c')) + \"}\",\n    null, true\n  );\n}\n\nfunction genRadioModel (\n  el,\n  value,\n  modifiers\n) {\n  var number = modifiers && modifiers.number;\n  var valueBinding = getBindingAttr(el, 'value') || 'null';\n  valueBinding = number ? (\"_n(\" + valueBinding + \")\") : valueBinding;\n  addProp(el, 'checked', (\"_q(\" + value + \",\" + valueBinding + \")\"));\n  addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n}\n\nfunction genSelect (\n  el,\n  value,\n  modifiers\n) {\n  var number = modifiers && modifiers.number;\n  var selectedVal = \"Array.prototype.filter\" +\n    \".call($event.target.options,function(o){return o.selected})\" +\n    \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n    \"return \" + (number ? '_n(val)' : 'val') + \"})\";\n\n  var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n  var code = \"var $$selectedVal = \" + selectedVal + \";\";\n  code = code + \" \" + (genAssignmentCode(value, assignment));\n  addHandler(el, 'change', code, null, true);\n}\n\nfunction genDefaultModel (\n  el,\n  value,\n  modifiers\n) {\n  var type = el.attrsMap.type;\n\n  // warn if v-bind:value conflicts with v-model\n  // except for inputs with v-bind:type\n  if (process.env.NODE_ENV !== 'production') {\n    var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n    var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n    if (value$1 && !typeBinding) {\n      var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n      warn$1(\n        binding + \"=\\\"\" + value$1 + \"\\\" conflicts with v-model on the same element \" +\n        'because the latter already expands to a value binding internally'\n      );\n    }\n  }\n\n  var ref = modifiers || {};\n  var lazy = ref.lazy;\n  var number = ref.number;\n  var trim = ref.trim;\n  var needCompositionGuard = !lazy && type !== 'range';\n  var event = lazy\n    ? 'change'\n    : type === 'range'\n      ? RANGE_TOKEN\n      : 'input';\n\n  var valueExpression = '$event.target.value';\n  if (trim) {\n    valueExpression = \"$event.target.value.trim()\";\n  }\n  if (number) {\n    valueExpression = \"_n(\" + valueExpression + \")\";\n  }\n\n  var code = genAssignmentCode(value, valueExpression);\n  if (needCompositionGuard) {\n    code = \"if($event.target.composing)return;\" + code;\n  }\n\n  addProp(el, 'value', (\"(\" + value + \")\"));\n  addHandler(el, event, code, null, true);\n  if (trim || number) {\n    addHandler(el, 'blur', '$forceUpdate()');\n  }\n}\n\n/*  */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n  /* istanbul ignore if */\n  if (isDef(on[RANGE_TOKEN])) {\n    // IE input[type=range] only supports `change` event\n    var event = isIE ? 'change' : 'input';\n    on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n    delete on[RANGE_TOKEN];\n  }\n  // This was originally intended to fix #4521 but no longer necessary\n  // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n  /* istanbul ignore if */\n  if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n    on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n    delete on[CHECKBOX_RADIO_TOKEN];\n  }\n}\n\nvar target$1;\n\nfunction createOnceHandler (handler, event, capture) {\n  var _target = target$1; // save current target element in closure\n  return function onceHandler () {\n    var res = handler.apply(null, arguments);\n    if (res !== null) {\n      remove$2(event, onceHandler, capture, _target);\n    }\n  }\n}\n\nfunction add$1 (\n  event,\n  handler,\n  once$$1,\n  capture,\n  passive\n) {\n  handler = withMacroTask(handler);\n  if (once$$1) { handler = createOnceHandler(handler, event, capture); }\n  target$1.addEventListener(\n    event,\n    handler,\n    supportsPassive\n      ? { capture: capture, passive: passive }\n      : capture\n  );\n}\n\nfunction remove$2 (\n  event,\n  handler,\n  capture,\n  _target\n) {\n  (_target || target$1).removeEventListener(\n    event,\n    handler._withTask || handler,\n    capture\n  );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n    return\n  }\n  var on = vnode.data.on || {};\n  var oldOn = oldVnode.data.on || {};\n  target$1 = vnode.elm;\n  normalizeEvents(on);\n  updateListeners(on, oldOn, add$1, remove$2, vnode.context);\n  target$1 = undefined;\n}\n\nvar events = {\n  create: updateDOMListeners,\n  update: updateDOMListeners\n}\n\n/*  */\n\nfunction updateDOMProps (oldVnode, vnode) {\n  if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n    return\n  }\n  var key, cur;\n  var elm = vnode.elm;\n  var oldProps = oldVnode.data.domProps || {};\n  var props = vnode.data.domProps || {};\n  // clone observed objects, as the user probably wants to mutate it\n  if (isDef(props.__ob__)) {\n    props = vnode.data.domProps = extend({}, props);\n  }\n\n  for (key in oldProps) {\n    if (isUndef(props[key])) {\n      elm[key] = '';\n    }\n  }\n  for (key in props) {\n    cur = props[key];\n    // ignore children if the node has textContent or innerHTML,\n    // as these will throw away existing DOM nodes and cause removal errors\n    // on subsequent patches (#3360)\n    if (key === 'textContent' || key === 'innerHTML') {\n      if (vnode.children) { vnode.children.length = 0; }\n      if (cur === oldProps[key]) { continue }\n      // #6601 work around Chrome version <= 55 bug where single textNode\n      // replaced by innerHTML/textContent retains its parentNode property\n      if (elm.childNodes.length === 1) {\n        elm.removeChild(elm.childNodes[0]);\n      }\n    }\n\n    if (key === 'value') {\n      // store value as _value as well since\n      // non-string values will be stringified\n      elm._value = cur;\n      // avoid resetting cursor position when value is the same\n      var strCur = isUndef(cur) ? '' : String(cur);\n      if (shouldUpdateValue(elm, strCur)) {\n        elm.value = strCur;\n      }\n    } else {\n      elm[key] = cur;\n    }\n  }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n  return (!elm.composing && (\n    elm.tagName === 'OPTION' ||\n    isNotInFocusAndDirty(elm, checkVal) ||\n    isDirtyWithModifiers(elm, checkVal)\n  ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n  // return true when textbox (.number and .trim) loses focus and its value is\n  // not equal to the updated value\n  var notInFocus = true;\n  // #6157\n  // work around IE bug when accessing document.activeElement in an iframe\n  try { notInFocus = document.activeElement !== elm; } catch (e) {}\n  return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n  var value = elm.value;\n  var modifiers = elm._vModifiers; // injected by v-model runtime\n  if (isDef(modifiers)) {\n    if (modifiers.lazy) {\n      // inputs with lazy should only be updated when not in focus\n      return false\n    }\n    if (modifiers.number) {\n      return toNumber(value) !== toNumber(newVal)\n    }\n    if (modifiers.trim) {\n      return value.trim() !== newVal.trim()\n    }\n  }\n  return value !== newVal\n}\n\nvar domProps = {\n  create: updateDOMProps,\n  update: updateDOMProps\n}\n\n/*  */\n\nvar parseStyleText = cached(function (cssText) {\n  var res = {};\n  var listDelimiter = /;(?![^(]*\\))/g;\n  var propertyDelimiter = /:(.+)/;\n  cssText.split(listDelimiter).forEach(function (item) {\n    if (item) {\n      var tmp = item.split(propertyDelimiter);\n      tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n    }\n  });\n  return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n  var style = normalizeStyleBinding(data.style);\n  // static style is pre-processed into an object during compilation\n  // and is always a fresh object, so it's safe to merge into it\n  return data.staticStyle\n    ? extend(data.staticStyle, style)\n    : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n  if (Array.isArray(bindingStyle)) {\n    return toObject(bindingStyle)\n  }\n  if (typeof bindingStyle === 'string') {\n    return parseStyleText(bindingStyle)\n  }\n  return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n  var res = {};\n  var styleData;\n\n  if (checkChild) {\n    var childNode = vnode;\n    while (childNode.componentInstance) {\n      childNode = childNode.componentInstance._vnode;\n      if (\n        childNode && childNode.data &&\n        (styleData = normalizeStyleData(childNode.data))\n      ) {\n        extend(res, styleData);\n      }\n    }\n  }\n\n  if ((styleData = normalizeStyleData(vnode.data))) {\n    extend(res, styleData);\n  }\n\n  var parentNode = vnode;\n  while ((parentNode = parentNode.parent)) {\n    if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n      extend(res, styleData);\n    }\n  }\n  return res\n}\n\n/*  */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n  /* istanbul ignore if */\n  if (cssVarRE.test(name)) {\n    el.style.setProperty(name, val);\n  } else if (importantRE.test(val)) {\n    el.style.setProperty(name, val.replace(importantRE, ''), 'important');\n  } else {\n    var normalizedName = normalize(name);\n    if (Array.isArray(val)) {\n      // Support values array created by autoprefixer, e.g.\n      // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n      // Set them one by one, and the browser will only set those it can recognize\n      for (var i = 0, len = val.length; i < len; i++) {\n        el.style[normalizedName] = val[i];\n      }\n    } else {\n      el.style[normalizedName] = val;\n    }\n  }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n  emptyStyle = emptyStyle || document.createElement('div').style;\n  prop = camelize(prop);\n  if (prop !== 'filter' && (prop in emptyStyle)) {\n    return prop\n  }\n  var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n  for (var i = 0; i < vendorNames.length; i++) {\n    var name = vendorNames[i] + capName;\n    if (name in emptyStyle) {\n      return name\n    }\n  }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n  var data = vnode.data;\n  var oldData = oldVnode.data;\n\n  if (isUndef(data.staticStyle) && isUndef(data.style) &&\n    isUndef(oldData.staticStyle) && isUndef(oldData.style)\n  ) {\n    return\n  }\n\n  var cur, name;\n  var el = vnode.elm;\n  var oldStaticStyle = oldData.staticStyle;\n  var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n  // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n  var oldStyle = oldStaticStyle || oldStyleBinding;\n\n  var style = normalizeStyleBinding(vnode.data.style) || {};\n\n  // store normalized style under a different key for next diff\n  // make sure to clone it if it's reactive, since the user likely wants\n  // to mutate it.\n  vnode.data.normalizedStyle = isDef(style.__ob__)\n    ? extend({}, style)\n    : style;\n\n  var newStyle = getStyle(vnode, true);\n\n  for (name in oldStyle) {\n    if (isUndef(newStyle[name])) {\n      setProp(el, name, '');\n    }\n  }\n  for (name in newStyle) {\n    cur = newStyle[name];\n    if (cur !== oldStyle[name]) {\n      // ie9 setting to null has no effect, must use empty string\n      setProp(el, name, cur == null ? '' : cur);\n    }\n  }\n}\n\nvar style = {\n  create: updateStyle,\n  update: updateStyle\n}\n\n/*  */\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return\n  }\n\n  /* istanbul ignore else */\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n    } else {\n      el.classList.add(cls);\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    if (cur.indexOf(' ' + cls + ' ') < 0) {\n      el.setAttribute('class', (cur + cls).trim());\n    }\n  }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n  /* istanbul ignore if */\n  if (!cls || !(cls = cls.trim())) {\n    return\n  }\n\n  /* istanbul ignore else */\n  if (el.classList) {\n    if (cls.indexOf(' ') > -1) {\n      cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n    } else {\n      el.classList.remove(cls);\n    }\n    if (!el.classList.length) {\n      el.removeAttribute('class');\n    }\n  } else {\n    var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n    var tar = ' ' + cls + ' ';\n    while (cur.indexOf(tar) >= 0) {\n      cur = cur.replace(tar, ' ');\n    }\n    cur = cur.trim();\n    if (cur) {\n      el.setAttribute('class', cur);\n    } else {\n      el.removeAttribute('class');\n    }\n  }\n}\n\n/*  */\n\nfunction resolveTransition (def) {\n  if (!def) {\n    return\n  }\n  /* istanbul ignore else */\n  if (typeof def === 'object') {\n    var res = {};\n    if (def.css !== false) {\n      extend(res, autoCssTransition(def.name || 'v'));\n    }\n    extend(res, def);\n    return res\n  } else if (typeof def === 'string') {\n    return autoCssTransition(def)\n  }\n}\n\nvar autoCssTransition = cached(function (name) {\n  return {\n    enterClass: (name + \"-enter\"),\n    enterToClass: (name + \"-enter-to\"),\n    enterActiveClass: (name + \"-enter-active\"),\n    leaveClass: (name + \"-leave\"),\n    leaveToClass: (name + \"-leave-to\"),\n    leaveActiveClass: (name + \"-leave-active\")\n  }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n  /* istanbul ignore if */\n  if (window.ontransitionend === undefined &&\n    window.onwebkittransitionend !== undefined\n  ) {\n    transitionProp = 'WebkitTransition';\n    transitionEndEvent = 'webkitTransitionEnd';\n  }\n  if (window.onanimationend === undefined &&\n    window.onwebkitanimationend !== undefined\n  ) {\n    animationProp = 'WebkitAnimation';\n    animationEndEvent = 'webkitAnimationEnd';\n  }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n  ? window.requestAnimationFrame\n    ? window.requestAnimationFrame.bind(window)\n    : setTimeout\n  : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n  raf(function () {\n    raf(fn);\n  });\n}\n\nfunction addTransitionClass (el, cls) {\n  var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n  if (transitionClasses.indexOf(cls) < 0) {\n    transitionClasses.push(cls);\n    addClass(el, cls);\n  }\n}\n\nfunction removeTransitionClass (el, cls) {\n  if (el._transitionClasses) {\n    remove(el._transitionClasses, cls);\n  }\n  removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n  el,\n  expectedType,\n  cb\n) {\n  var ref = getTransitionInfo(el, expectedType);\n  var type = ref.type;\n  var timeout = ref.timeout;\n  var propCount = ref.propCount;\n  if (!type) { return cb() }\n  var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n  var ended = 0;\n  var end = function () {\n    el.removeEventListener(event, onEnd);\n    cb();\n  };\n  var onEnd = function (e) {\n    if (e.target === el) {\n      if (++ended >= propCount) {\n        end();\n      }\n    }\n  };\n  setTimeout(function () {\n    if (ended < propCount) {\n      end();\n    }\n  }, timeout + 1);\n  el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n  var styles = window.getComputedStyle(el);\n  var transitionDelays = styles[transitionProp + 'Delay'].split(', ');\n  var transitionDurations = styles[transitionProp + 'Duration'].split(', ');\n  var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n  var animationDelays = styles[animationProp + 'Delay'].split(', ');\n  var animationDurations = styles[animationProp + 'Duration'].split(', ');\n  var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n  var type;\n  var timeout = 0;\n  var propCount = 0;\n  /* istanbul ignore if */\n  if (expectedType === TRANSITION) {\n    if (transitionTimeout > 0) {\n      type = TRANSITION;\n      timeout = transitionTimeout;\n      propCount = transitionDurations.length;\n    }\n  } else if (expectedType === ANIMATION) {\n    if (animationTimeout > 0) {\n      type = ANIMATION;\n      timeout = animationTimeout;\n      propCount = animationDurations.length;\n    }\n  } else {\n    timeout = Math.max(transitionTimeout, animationTimeout);\n    type = timeout > 0\n      ? transitionTimeout > animationTimeout\n        ? TRANSITION\n        : ANIMATION\n      : null;\n    propCount = type\n      ? type === TRANSITION\n        ? transitionDurations.length\n        : animationDurations.length\n      : 0;\n  }\n  var hasTransform =\n    type === TRANSITION &&\n    transformRE.test(styles[transitionProp + 'Property']);\n  return {\n    type: type,\n    timeout: timeout,\n    propCount: propCount,\n    hasTransform: hasTransform\n  }\n}\n\nfunction getTimeout (delays, durations) {\n  /* istanbul ignore next */\n  while (delays.length < durations.length) {\n    delays = delays.concat(delays);\n  }\n\n  return Math.max.apply(null, durations.map(function (d, i) {\n    return toMs(d) + toMs(delays[i])\n  }))\n}\n\nfunction toMs (s) {\n  return Number(s.slice(0, -1)) * 1000\n}\n\n/*  */\n\nfunction enter (vnode, toggleDisplay) {\n  var el = vnode.elm;\n\n  // call leave callback now\n  if (isDef(el._leaveCb)) {\n    el._leaveCb.cancelled = true;\n    el._leaveCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n  if (isUndef(data)) {\n    return\n  }\n\n  /* istanbul ignore if */\n  if (isDef(el._enterCb) || el.nodeType !== 1) {\n    return\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var enterClass = data.enterClass;\n  var enterToClass = data.enterToClass;\n  var enterActiveClass = data.enterActiveClass;\n  var appearClass = data.appearClass;\n  var appearToClass = data.appearToClass;\n  var appearActiveClass = data.appearActiveClass;\n  var beforeEnter = data.beforeEnter;\n  var enter = data.enter;\n  var afterEnter = data.afterEnter;\n  var enterCancelled = data.enterCancelled;\n  var beforeAppear = data.beforeAppear;\n  var appear = data.appear;\n  var afterAppear = data.afterAppear;\n  var appearCancelled = data.appearCancelled;\n  var duration = data.duration;\n\n  // activeInstance will always be the <transition> component managing this\n  // transition. One edge case to check is when the <transition> is placed\n  // as the root node of a child component. In that case we need to check\n  // <transition>'s parent for appear check.\n  var context = activeInstance;\n  var transitionNode = activeInstance.$vnode;\n  while (transitionNode && transitionNode.parent) {\n    transitionNode = transitionNode.parent;\n    context = transitionNode.context;\n  }\n\n  var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n  if (isAppear && !appear && appear !== '') {\n    return\n  }\n\n  var startClass = isAppear && appearClass\n    ? appearClass\n    : enterClass;\n  var activeClass = isAppear && appearActiveClass\n    ? appearActiveClass\n    : enterActiveClass;\n  var toClass = isAppear && appearToClass\n    ? appearToClass\n    : enterToClass;\n\n  var beforeEnterHook = isAppear\n    ? (beforeAppear || beforeEnter)\n    : beforeEnter;\n  var enterHook = isAppear\n    ? (typeof appear === 'function' ? appear : enter)\n    : enter;\n  var afterEnterHook = isAppear\n    ? (afterAppear || afterEnter)\n    : afterEnter;\n  var enterCancelledHook = isAppear\n    ? (appearCancelled || enterCancelled)\n    : enterCancelled;\n\n  var explicitEnterDuration = toNumber(\n    isObject(duration)\n      ? duration.enter\n      : duration\n  );\n\n  if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n    checkDuration(explicitEnterDuration, 'enter', vnode);\n  }\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(enterHook);\n\n  var cb = el._enterCb = once(function () {\n    if (expectsCSS) {\n      removeTransitionClass(el, toClass);\n      removeTransitionClass(el, activeClass);\n    }\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, startClass);\n      }\n      enterCancelledHook && enterCancelledHook(el);\n    } else {\n      afterEnterHook && afterEnterHook(el);\n    }\n    el._enterCb = null;\n  });\n\n  if (!vnode.data.show) {\n    // remove pending leave element on enter by injecting an insert hook\n    mergeVNodeHook(vnode, 'insert', function () {\n      var parent = el.parentNode;\n      var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n      if (pendingNode &&\n        pendingNode.tag === vnode.tag &&\n        pendingNode.elm._leaveCb\n      ) {\n        pendingNode.elm._leaveCb();\n      }\n      enterHook && enterHook(el, cb);\n    });\n  }\n\n  // start enter transition\n  beforeEnterHook && beforeEnterHook(el);\n  if (expectsCSS) {\n    addTransitionClass(el, startClass);\n    addTransitionClass(el, activeClass);\n    nextFrame(function () {\n      removeTransitionClass(el, startClass);\n      if (!cb.cancelled) {\n        addTransitionClass(el, toClass);\n        if (!userWantsControl) {\n          if (isValidDuration(explicitEnterDuration)) {\n            setTimeout(cb, explicitEnterDuration);\n          } else {\n            whenTransitionEnds(el, type, cb);\n          }\n        }\n      }\n    });\n  }\n\n  if (vnode.data.show) {\n    toggleDisplay && toggleDisplay();\n    enterHook && enterHook(el, cb);\n  }\n\n  if (!expectsCSS && !userWantsControl) {\n    cb();\n  }\n}\n\nfunction leave (vnode, rm) {\n  var el = vnode.elm;\n\n  // call enter callback now\n  if (isDef(el._enterCb)) {\n    el._enterCb.cancelled = true;\n    el._enterCb();\n  }\n\n  var data = resolveTransition(vnode.data.transition);\n  if (isUndef(data) || el.nodeType !== 1) {\n    return rm()\n  }\n\n  /* istanbul ignore if */\n  if (isDef(el._leaveCb)) {\n    return\n  }\n\n  var css = data.css;\n  var type = data.type;\n  var leaveClass = data.leaveClass;\n  var leaveToClass = data.leaveToClass;\n  var leaveActiveClass = data.leaveActiveClass;\n  var beforeLeave = data.beforeLeave;\n  var leave = data.leave;\n  var afterLeave = data.afterLeave;\n  var leaveCancelled = data.leaveCancelled;\n  var delayLeave = data.delayLeave;\n  var duration = data.duration;\n\n  var expectsCSS = css !== false && !isIE9;\n  var userWantsControl = getHookArgumentsLength(leave);\n\n  var explicitLeaveDuration = toNumber(\n    isObject(duration)\n      ? duration.leave\n      : duration\n  );\n\n  if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n    checkDuration(explicitLeaveDuration, 'leave', vnode);\n  }\n\n  var cb = el._leaveCb = once(function () {\n    if (el.parentNode && el.parentNode._pending) {\n      el.parentNode._pending[vnode.key] = null;\n    }\n    if (expectsCSS) {\n      removeTransitionClass(el, leaveToClass);\n      removeTransitionClass(el, leaveActiveClass);\n    }\n    if (cb.cancelled) {\n      if (expectsCSS) {\n        removeTransitionClass(el, leaveClass);\n      }\n      leaveCancelled && leaveCancelled(el);\n    } else {\n      rm();\n      afterLeave && afterLeave(el);\n    }\n    el._leaveCb = null;\n  });\n\n  if (delayLeave) {\n    delayLeave(performLeave);\n  } else {\n    performLeave();\n  }\n\n  function performLeave () {\n    // the delayed leave may have already been cancelled\n    if (cb.cancelled) {\n      return\n    }\n    // record leaving element\n    if (!vnode.data.show) {\n      (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n    }\n    beforeLeave && beforeLeave(el);\n    if (expectsCSS) {\n      addTransitionClass(el, leaveClass);\n      addTransitionClass(el, leaveActiveClass);\n      nextFrame(function () {\n        removeTransitionClass(el, leaveClass);\n        if (!cb.cancelled) {\n          addTransitionClass(el, leaveToClass);\n          if (!userWantsControl) {\n            if (isValidDuration(explicitLeaveDuration)) {\n              setTimeout(cb, explicitLeaveDuration);\n            } else {\n              whenTransitionEnds(el, type, cb);\n            }\n          }\n        }\n      });\n    }\n    leave && leave(el, cb);\n    if (!expectsCSS && !userWantsControl) {\n      cb();\n    }\n  }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n  if (typeof val !== 'number') {\n    warn(\n      \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n      \"got \" + (JSON.stringify(val)) + \".\",\n      vnode.context\n    );\n  } else if (isNaN(val)) {\n    warn(\n      \"<transition> explicit \" + name + \" duration is NaN - \" +\n      'the duration expression might be incorrect.',\n      vnode.context\n    );\n  }\n}\n\nfunction isValidDuration (val) {\n  return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n  if (isUndef(fn)) {\n    return false\n  }\n  var invokerFns = fn.fns;\n  if (isDef(invokerFns)) {\n    // invoker\n    return getHookArgumentsLength(\n      Array.isArray(invokerFns)\n        ? invokerFns[0]\n        : invokerFns\n    )\n  } else {\n    return (fn._length || fn.length) > 1\n  }\n}\n\nfunction _enter (_, vnode) {\n  if (vnode.data.show !== true) {\n    enter(vnode);\n  }\n}\n\nvar transition = inBrowser ? {\n  create: _enter,\n  activate: _enter,\n  remove: function remove$$1 (vnode, rm) {\n    /* istanbul ignore else */\n    if (vnode.data.show !== true) {\n      leave(vnode, rm);\n    } else {\n      rm();\n    }\n  }\n} : {}\n\nvar platformModules = [\n  attrs,\n  klass,\n  events,\n  domProps,\n  style,\n  transition\n]\n\n/*  */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n  // http://www.matts411.com/post/internet-explorer-9-oninput/\n  document.addEventListener('selectionchange', function () {\n    var el = document.activeElement;\n    if (el && el.vmodel) {\n      trigger(el, 'input');\n    }\n  });\n}\n\nvar directive = {\n  inserted: function inserted (el, binding, vnode, oldVnode) {\n    if (vnode.tag === 'select') {\n      // #6903\n      if (oldVnode.elm && !oldVnode.elm._vOptions) {\n        mergeVNodeHook(vnode, 'postpatch', function () {\n          directive.componentUpdated(el, binding, vnode);\n        });\n      } else {\n        setSelected(el, binding, vnode.context);\n      }\n      el._vOptions = [].map.call(el.options, getValue);\n    } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n      el._vModifiers = binding.modifiers;\n      if (!binding.modifiers.lazy) {\n        el.addEventListener('compositionstart', onCompositionStart);\n        el.addEventListener('compositionend', onCompositionEnd);\n        // Safari < 10.2 & UIWebView doesn't fire compositionend when\n        // switching focus before confirming composition choice\n        // this also fixes the issue where some browsers e.g. iOS Chrome\n        // fires \"change\" instead of \"input\" on autocomplete.\n        el.addEventListener('change', onCompositionEnd);\n        /* istanbul ignore if */\n        if (isIE9) {\n          el.vmodel = true;\n        }\n      }\n    }\n  },\n\n  componentUpdated: function componentUpdated (el, binding, vnode) {\n    if (vnode.tag === 'select') {\n      setSelected(el, binding, vnode.context);\n      // in case the options rendered by v-for have changed,\n      // it's possible that the value is out-of-sync with the rendered options.\n      // detect such cases and filter out values that no longer has a matching\n      // option in the DOM.\n      var prevOptions = el._vOptions;\n      var curOptions = el._vOptions = [].map.call(el.options, getValue);\n      if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n        // trigger change event if\n        // no matching option found for at least one value\n        var needReset = el.multiple\n          ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n          : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n        if (needReset) {\n          trigger(el, 'change');\n        }\n      }\n    }\n  }\n};\n\nfunction setSelected (el, binding, vm) {\n  actuallySetSelected(el, binding, vm);\n  /* istanbul ignore if */\n  if (isIE || isEdge) {\n    setTimeout(function () {\n      actuallySetSelected(el, binding, vm);\n    }, 0);\n  }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n  var value = binding.value;\n  var isMultiple = el.multiple;\n  if (isMultiple && !Array.isArray(value)) {\n    process.env.NODE_ENV !== 'production' && warn(\n      \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n      \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n      vm\n    );\n    return\n  }\n  var selected, option;\n  for (var i = 0, l = el.options.length; i < l; i++) {\n    option = el.options[i];\n    if (isMultiple) {\n      selected = looseIndexOf(value, getValue(option)) > -1;\n      if (option.selected !== selected) {\n        option.selected = selected;\n      }\n    } else {\n      if (looseEqual(getValue(option), value)) {\n        if (el.selectedIndex !== i) {\n          el.selectedIndex = i;\n        }\n        return\n      }\n    }\n  }\n  if (!isMultiple) {\n    el.selectedIndex = -1;\n  }\n}\n\nfunction hasNoMatchingOption (value, options) {\n  return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n  return '_value' in option\n    ? option._value\n    : option.value\n}\n\nfunction onCompositionStart (e) {\n  e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n  // prevent triggering an input event for no reason\n  if (!e.target.composing) { return }\n  e.target.composing = false;\n  trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n  var e = document.createEvent('HTMLEvents');\n  e.initEvent(type, true, true);\n  el.dispatchEvent(e);\n}\n\n/*  */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n  return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n    ? locateNode(vnode.componentInstance._vnode)\n    : vnode\n}\n\nvar show = {\n  bind: function bind (el, ref, vnode) {\n    var value = ref.value;\n\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    var originalDisplay = el.__vOriginalDisplay =\n      el.style.display === 'none' ? '' : el.style.display;\n    if (value && transition$$1) {\n      vnode.data.show = true;\n      enter(vnode, function () {\n        el.style.display = originalDisplay;\n      });\n    } else {\n      el.style.display = value ? originalDisplay : 'none';\n    }\n  },\n\n  update: function update (el, ref, vnode) {\n    var value = ref.value;\n    var oldValue = ref.oldValue;\n\n    /* istanbul ignore if */\n    if (!value === !oldValue) { return }\n    vnode = locateNode(vnode);\n    var transition$$1 = vnode.data && vnode.data.transition;\n    if (transition$$1) {\n      vnode.data.show = true;\n      if (value) {\n        enter(vnode, function () {\n          el.style.display = el.__vOriginalDisplay;\n        });\n      } else {\n        leave(vnode, function () {\n          el.style.display = 'none';\n        });\n      }\n    } else {\n      el.style.display = value ? el.__vOriginalDisplay : 'none';\n    }\n  },\n\n  unbind: function unbind (\n    el,\n    binding,\n    vnode,\n    oldVnode,\n    isDestroy\n  ) {\n    if (!isDestroy) {\n      el.style.display = el.__vOriginalDisplay;\n    }\n  }\n}\n\nvar platformDirectives = {\n  model: directive,\n  show: show\n}\n\n/*  */\n\n// Provides transition support for a single element/component.\n// supports transition mode (out-in / in-out)\n\nvar transitionProps = {\n  name: String,\n  appear: Boolean,\n  css: Boolean,\n  mode: String,\n  type: String,\n  enterClass: String,\n  leaveClass: String,\n  enterToClass: String,\n  leaveToClass: String,\n  enterActiveClass: String,\n  leaveActiveClass: String,\n  appearClass: String,\n  appearActiveClass: String,\n  appearToClass: String,\n  duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n  var compOptions = vnode && vnode.componentOptions;\n  if (compOptions && compOptions.Ctor.options.abstract) {\n    return getRealChild(getFirstComponentChild(compOptions.children))\n  } else {\n    return vnode\n  }\n}\n\nfunction extractTransitionData (comp) {\n  var data = {};\n  var options = comp.$options;\n  // props\n  for (var key in options.propsData) {\n    data[key] = comp[key];\n  }\n  // events.\n  // extract listeners and pass them directly to the transition methods\n  var listeners = options._parentListeners;\n  for (var key$1 in listeners) {\n    data[camelize(key$1)] = listeners[key$1];\n  }\n  return data\n}\n\nfunction placeholder (h, rawChild) {\n  if (/\\d-keep-alive$/.test(rawChild.tag)) {\n    return h('keep-alive', {\n      props: rawChild.componentOptions.propsData\n    })\n  }\n}\n\nfunction hasParentTransition (vnode) {\n  while ((vnode = vnode.parent)) {\n    if (vnode.data.transition) {\n      return true\n    }\n  }\n}\n\nfunction isSameChild (child, oldChild) {\n  return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar Transition = {\n  name: 'transition',\n  props: transitionProps,\n  abstract: true,\n\n  render: function render (h) {\n    var this$1 = this;\n\n    var children = this.$slots.default;\n    if (!children) {\n      return\n    }\n\n    // filter out text nodes (possible whitespaces)\n    children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });\n    /* istanbul ignore if */\n    if (!children.length) {\n      return\n    }\n\n    // warn multiple elements\n    if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n      warn(\n        '<transition> can only be used on a single element. Use ' +\n        '<transition-group> for lists.',\n        this.$parent\n      );\n    }\n\n    var mode = this.mode;\n\n    // warn invalid mode\n    if (process.env.NODE_ENV !== 'production' &&\n      mode && mode !== 'in-out' && mode !== 'out-in'\n    ) {\n      warn(\n        'invalid <transition> mode: ' + mode,\n        this.$parent\n      );\n    }\n\n    var rawChild = children[0];\n\n    // if this is a component root node and the component's\n    // parent container node also has transition, skip.\n    if (hasParentTransition(this.$vnode)) {\n      return rawChild\n    }\n\n    // apply transition data to child\n    // use getRealChild() to ignore abstract components e.g. keep-alive\n    var child = getRealChild(rawChild);\n    /* istanbul ignore if */\n    if (!child) {\n      return rawChild\n    }\n\n    if (this._leaving) {\n      return placeholder(h, rawChild)\n    }\n\n    // ensure a key that is unique to the vnode type and to this transition\n    // component instance. This key will be used to remove pending leaving nodes\n    // during entering.\n    var id = \"__transition-\" + (this._uid) + \"-\";\n    child.key = child.key == null\n      ? child.isComment\n        ? id + 'comment'\n        : id + child.tag\n      : isPrimitive(child.key)\n        ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n        : child.key;\n\n    var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n    var oldRawChild = this._vnode;\n    var oldChild = getRealChild(oldRawChild);\n\n    // mark v-show\n    // so that the transition module can hand over the control to the directive\n    if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {\n      child.data.show = true;\n    }\n\n    if (\n      oldChild &&\n      oldChild.data &&\n      !isSameChild(child, oldChild) &&\n      !isAsyncPlaceholder(oldChild) &&\n      // #6687 component root is a comment node\n      !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n    ) {\n      // replace old child transition data with fresh one\n      // important for dynamic transitions!\n      var oldData = oldChild.data.transition = extend({}, data);\n      // handle transition mode\n      if (mode === 'out-in') {\n        // return placeholder node and queue update when leave finishes\n        this._leaving = true;\n        mergeVNodeHook(oldData, 'afterLeave', function () {\n          this$1._leaving = false;\n          this$1.$forceUpdate();\n        });\n        return placeholder(h, rawChild)\n      } else if (mode === 'in-out') {\n        if (isAsyncPlaceholder(child)) {\n          return oldRawChild\n        }\n        var delayedLeave;\n        var performLeave = function () { delayedLeave(); };\n        mergeVNodeHook(data, 'afterEnter', performLeave);\n        mergeVNodeHook(data, 'enterCancelled', performLeave);\n        mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n      }\n    }\n\n    return rawChild\n  }\n}\n\n/*  */\n\n// Provides transition support for list items.\n// supports move transitions using the FLIP technique.\n\n// Because the vdom's children update algorithm is \"unstable\" - i.e.\n// it doesn't guarantee the relative positioning of removed elements,\n// we force transition-group to update its children into two passes:\n// in the first pass, we remove all nodes that need to be removed,\n// triggering their leaving transition; in the second pass, we insert/move\n// into the final desired state. This way in the second pass removed\n// nodes will remain where they should be.\n\nvar props = extend({\n  tag: String,\n  moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n  props: props,\n\n  render: function render (h) {\n    var tag = this.tag || this.$vnode.data.tag || 'span';\n    var map = Object.create(null);\n    var prevChildren = this.prevChildren = this.children;\n    var rawChildren = this.$slots.default || [];\n    var children = this.children = [];\n    var transitionData = extractTransitionData(this);\n\n    for (var i = 0; i < rawChildren.length; i++) {\n      var c = rawChildren[i];\n      if (c.tag) {\n        if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n          children.push(c);\n          map[c.key] = c\n          ;(c.data || (c.data = {})).transition = transitionData;\n        } else if (process.env.NODE_ENV !== 'production') {\n          var opts = c.componentOptions;\n          var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n          warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n        }\n      }\n    }\n\n    if (prevChildren) {\n      var kept = [];\n      var removed = [];\n      for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n        var c$1 = prevChildren[i$1];\n        c$1.data.transition = transitionData;\n        c$1.data.pos = c$1.elm.getBoundingClientRect();\n        if (map[c$1.key]) {\n          kept.push(c$1);\n        } else {\n          removed.push(c$1);\n        }\n      }\n      this.kept = h(tag, null, kept);\n      this.removed = removed;\n    }\n\n    return h(tag, null, children)\n  },\n\n  beforeUpdate: function beforeUpdate () {\n    // force removing pass\n    this.__patch__(\n      this._vnode,\n      this.kept,\n      false, // hydrating\n      true // removeOnly (!important, avoids unnecessary moves)\n    );\n    this._vnode = this.kept;\n  },\n\n  updated: function updated () {\n    var children = this.prevChildren;\n    var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n    if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n      return\n    }\n\n    // we divide the work into three loops to avoid mixing DOM reads and writes\n    // in each iteration - which helps prevent layout thrashing.\n    children.forEach(callPendingCbs);\n    children.forEach(recordPosition);\n    children.forEach(applyTranslation);\n\n    // force reflow to put everything in position\n    // assign to this to avoid being removed in tree-shaking\n    // $flow-disable-line\n    this._reflow = document.body.offsetHeight;\n\n    children.forEach(function (c) {\n      if (c.data.moved) {\n        var el = c.elm;\n        var s = el.style;\n        addTransitionClass(el, moveClass);\n        s.transform = s.WebkitTransform = s.transitionDuration = '';\n        el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n          if (!e || /transform$/.test(e.propertyName)) {\n            el.removeEventListener(transitionEndEvent, cb);\n            el._moveCb = null;\n            removeTransitionClass(el, moveClass);\n          }\n        });\n      }\n    });\n  },\n\n  methods: {\n    hasMove: function hasMove (el, moveClass) {\n      /* istanbul ignore if */\n      if (!hasTransition) {\n        return false\n      }\n      /* istanbul ignore if */\n      if (this._hasMove) {\n        return this._hasMove\n      }\n      // Detect whether an element with the move class applied has\n      // CSS transitions. Since the element may be inside an entering\n      // transition at this very moment, we make a clone of it and remove\n      // all other transition classes applied to ensure only the move class\n      // is applied.\n      var clone = el.cloneNode();\n      if (el._transitionClasses) {\n        el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n      }\n      addClass(clone, moveClass);\n      clone.style.display = 'none';\n      this.$el.appendChild(clone);\n      var info = getTransitionInfo(clone);\n      this.$el.removeChild(clone);\n      return (this._hasMove = info.hasTransform)\n    }\n  }\n}\n\nfunction callPendingCbs (c) {\n  /* istanbul ignore if */\n  if (c.elm._moveCb) {\n    c.elm._moveCb();\n  }\n  /* istanbul ignore if */\n  if (c.elm._enterCb) {\n    c.elm._enterCb();\n  }\n}\n\nfunction recordPosition (c) {\n  c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n  var oldPos = c.data.pos;\n  var newPos = c.data.newPos;\n  var dx = oldPos.left - newPos.left;\n  var dy = oldPos.top - newPos.top;\n  if (dx || dy) {\n    c.data.moved = true;\n    var s = c.elm.style;\n    s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n    s.transitionDuration = '0s';\n  }\n}\n\nvar platformComponents = {\n  Transition: Transition,\n  TransitionGroup: TransitionGroup\n}\n\n/*  */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n  el,\n  hydrating\n) {\n  el = el && inBrowser ? query(el) : undefined;\n  return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n  setTimeout(function () {\n    if (config.devtools) {\n      if (devtools) {\n        devtools.emit('init', Vue);\n      } else if (\n        process.env.NODE_ENV !== 'production' &&\n        process.env.NODE_ENV !== 'test' &&\n        isChrome\n      ) {\n        console[console.info ? 'info' : 'log'](\n          'Download the Vue Devtools extension for a better development experience:\\n' +\n          'https://github.com/vuejs/vue-devtools'\n        );\n      }\n    }\n    if (process.env.NODE_ENV !== 'production' &&\n      process.env.NODE_ENV !== 'test' &&\n      config.productionTip !== false &&\n      typeof console !== 'undefined'\n    ) {\n      console[console.info ? 'info' : 'log'](\n        \"You are running Vue in development mode.\\n\" +\n        \"Make sure to turn on production mode when deploying for production.\\n\" +\n        \"See more tips at https://vuejs.org/guide/deployment.html\"\n      );\n    }\n  }, 0);\n}\n\n/*  */\n\nvar defaultTagRE = /\\{\\{((?:.|\\n)+?)\\}\\}/g;\nvar regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n\nvar buildRegex = cached(function (delimiters) {\n  var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n  var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n  return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g')\n});\n\n\n\nfunction parseText (\n  text,\n  delimiters\n) {\n  var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n  if (!tagRE.test(text)) {\n    return\n  }\n  var tokens = [];\n  var rawTokens = [];\n  var lastIndex = tagRE.lastIndex = 0;\n  var match, index, tokenValue;\n  while ((match = tagRE.exec(text))) {\n    index = match.index;\n    // push text token\n    if (index > lastIndex) {\n      rawTokens.push(tokenValue = text.slice(lastIndex, index));\n      tokens.push(JSON.stringify(tokenValue));\n    }\n    // tag token\n    var exp = parseFilters(match[1].trim());\n    tokens.push((\"_s(\" + exp + \")\"));\n    rawTokens.push({ '@binding': exp });\n    lastIndex = index + match[0].length;\n  }\n  if (lastIndex < text.length) {\n    rawTokens.push(tokenValue = text.slice(lastIndex));\n    tokens.push(JSON.stringify(tokenValue));\n  }\n  return {\n    expression: tokens.join('+'),\n    tokens: rawTokens\n  }\n}\n\n/*  */\n\nfunction transformNode (el, options) {\n  var warn = options.warn || baseWarn;\n  var staticClass = getAndRemoveAttr(el, 'class');\n  if (process.env.NODE_ENV !== 'production' && staticClass) {\n    var res = parseText(staticClass, options.delimiters);\n    if (res) {\n      warn(\n        \"class=\\\"\" + staticClass + \"\\\": \" +\n        'Interpolation inside attributes has been removed. ' +\n        'Use v-bind or the colon shorthand instead. For example, ' +\n        'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.'\n      );\n    }\n  }\n  if (staticClass) {\n    el.staticClass = JSON.stringify(staticClass);\n  }\n  var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n  if (classBinding) {\n    el.classBinding = classBinding;\n  }\n}\n\nfunction genData (el) {\n  var data = '';\n  if (el.staticClass) {\n    data += \"staticClass:\" + (el.staticClass) + \",\";\n  }\n  if (el.classBinding) {\n    data += \"class:\" + (el.classBinding) + \",\";\n  }\n  return data\n}\n\nvar klass$1 = {\n  staticKeys: ['staticClass'],\n  transformNode: transformNode,\n  genData: genData\n}\n\n/*  */\n\nfunction transformNode$1 (el, options) {\n  var warn = options.warn || baseWarn;\n  var staticStyle = getAndRemoveAttr(el, 'style');\n  if (staticStyle) {\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production') {\n      var res = parseText(staticStyle, options.delimiters);\n      if (res) {\n        warn(\n          \"style=\\\"\" + staticStyle + \"\\\": \" +\n          'Interpolation inside attributes has been removed. ' +\n          'Use v-bind or the colon shorthand instead. For example, ' +\n          'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.'\n        );\n      }\n    }\n    el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n  }\n\n  var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n  if (styleBinding) {\n    el.styleBinding = styleBinding;\n  }\n}\n\nfunction genData$1 (el) {\n  var data = '';\n  if (el.staticStyle) {\n    data += \"staticStyle:\" + (el.staticStyle) + \",\";\n  }\n  if (el.styleBinding) {\n    data += \"style:(\" + (el.styleBinding) + \"),\";\n  }\n  return data\n}\n\nvar style$1 = {\n  staticKeys: ['staticStyle'],\n  transformNode: transformNode$1,\n  genData: genData$1\n}\n\n/*  */\n\nvar decoder;\n\nvar he = {\n  decode: function decode (html) {\n    decoder = decoder || document.createElement('div');\n    decoder.innerHTML = html;\n    return decoder.textContent\n  }\n}\n\n/*  */\n\nvar isUnaryTag = makeMap(\n  'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n  'link,meta,param,source,track,wbr'\n);\n\n// Elements that you can, intentionally, leave open\n// (and which close themselves)\nvar canBeLeftOpenTag = makeMap(\n  'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'\n);\n\n// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\nvar isNonPhrasingTag = makeMap(\n  'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n  'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n  'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n  'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n  'title,tr,track'\n);\n\n/**\n * Not type-checking this file because it's mostly vendor code.\n */\n\n/*!\n * HTML Parser By John Resig (ejohn.org)\n * Modified by Juriy \"kangax\" Zaytsev\n * Original code by Erik Arvidsson, Mozilla Public License\n * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js\n */\n\n// Regular Expressions for parsing tags and attributes\nvar attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName\n// but for Vue templates we can enforce a simple charset\nvar ncname = '[a-zA-Z_][\\\\w\\\\-\\\\.]*';\nvar qnameCapture = \"((?:\" + ncname + \"\\\\:)?\" + ncname + \")\";\nvar startTagOpen = new RegExp((\"^<\" + qnameCapture));\nvar startTagClose = /^\\s*(\\/?)>/;\nvar endTag = new RegExp((\"^<\\\\/\" + qnameCapture + \"[^>]*>\"));\nvar doctype = /^<!DOCTYPE [^>]+>/i;\n// #7298: escape - to avoid being pased as HTML comment when inlined in page\nvar comment = /^<!\\--/;\nvar conditionalComment = /^<!\\[/;\n\nvar IS_REGEX_CAPTURING_BROKEN = false;\n'x'.replace(/x(.)?/g, function (m, g) {\n  IS_REGEX_CAPTURING_BROKEN = g === '';\n});\n\n// Special Elements (can contain anything)\nvar isPlainTextElement = makeMap('script,style,textarea', true);\nvar reCache = {};\n\nvar decodingMap = {\n  '&lt;': '<',\n  '&gt;': '>',\n  '&quot;': '\"',\n  '&amp;': '&',\n  '&#10;': '\\n',\n  '&#9;': '\\t'\n};\nvar encodedAttr = /&(?:lt|gt|quot|amp);/g;\nvar encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;\n\n// #5992\nvar isIgnoreNewlineTag = makeMap('pre,textarea', true);\nvar shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n'; };\n\nfunction decodeAttr (value, shouldDecodeNewlines) {\n  var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n  return value.replace(re, function (match) { return decodingMap[match]; })\n}\n\nfunction parseHTML (html, options) {\n  var stack = [];\n  var expectHTML = options.expectHTML;\n  var isUnaryTag$$1 = options.isUnaryTag || no;\n  var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;\n  var index = 0;\n  var last, lastTag;\n  while (html) {\n    last = html;\n    // Make sure we're not in a plaintext content element like script/style\n    if (!lastTag || !isPlainTextElement(lastTag)) {\n      var textEnd = html.indexOf('<');\n      if (textEnd === 0) {\n        // Comment:\n        if (comment.test(html)) {\n          var commentEnd = html.indexOf('-->');\n\n          if (commentEnd >= 0) {\n            if (options.shouldKeepComment) {\n              options.comment(html.substring(4, commentEnd));\n            }\n            advance(commentEnd + 3);\n            continue\n          }\n        }\n\n        // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n        if (conditionalComment.test(html)) {\n          var conditionalEnd = html.indexOf(']>');\n\n          if (conditionalEnd >= 0) {\n            advance(conditionalEnd + 2);\n            continue\n          }\n        }\n\n        // Doctype:\n        var doctypeMatch = html.match(doctype);\n        if (doctypeMatch) {\n          advance(doctypeMatch[0].length);\n          continue\n        }\n\n        // End tag:\n        var endTagMatch = html.match(endTag);\n        if (endTagMatch) {\n          var curIndex = index;\n          advance(endTagMatch[0].length);\n          parseEndTag(endTagMatch[1], curIndex, index);\n          continue\n        }\n\n        // Start tag:\n        var startTagMatch = parseStartTag();\n        if (startTagMatch) {\n          handleStartTag(startTagMatch);\n          if (shouldIgnoreFirstNewline(lastTag, html)) {\n            advance(1);\n          }\n          continue\n        }\n      }\n\n      var text = (void 0), rest = (void 0), next = (void 0);\n      if (textEnd >= 0) {\n        rest = html.slice(textEnd);\n        while (\n          !endTag.test(rest) &&\n          !startTagOpen.test(rest) &&\n          !comment.test(rest) &&\n          !conditionalComment.test(rest)\n        ) {\n          // < in plain text, be forgiving and treat it as text\n          next = rest.indexOf('<', 1);\n          if (next < 0) { break }\n          textEnd += next;\n          rest = html.slice(textEnd);\n        }\n        text = html.substring(0, textEnd);\n        advance(textEnd);\n      }\n\n      if (textEnd < 0) {\n        text = html;\n        html = '';\n      }\n\n      if (options.chars && text) {\n        options.chars(text);\n      }\n    } else {\n      var endTagLength = 0;\n      var stackedTag = lastTag.toLowerCase();\n      var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));\n      var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {\n        endTagLength = endTag.length;\n        if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {\n          text = text\n            .replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n            .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n        }\n        if (shouldIgnoreFirstNewline(stackedTag, text)) {\n          text = text.slice(1);\n        }\n        if (options.chars) {\n          options.chars(text);\n        }\n        return ''\n      });\n      index += html.length - rest$1.length;\n      html = rest$1;\n      parseEndTag(stackedTag, index - endTagLength, index);\n    }\n\n    if (html === last) {\n      options.chars && options.chars(html);\n      if (process.env.NODE_ENV !== 'production' && !stack.length && options.warn) {\n        options.warn((\"Mal-formatted tag at end of template: \\\"\" + html + \"\\\"\"));\n      }\n      break\n    }\n  }\n\n  // Clean up any remaining tags\n  parseEndTag();\n\n  function advance (n) {\n    index += n;\n    html = html.substring(n);\n  }\n\n  function parseStartTag () {\n    var start = html.match(startTagOpen);\n    if (start) {\n      var match = {\n        tagName: start[1],\n        attrs: [],\n        start: index\n      };\n      advance(start[0].length);\n      var end, attr;\n      while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {\n        advance(attr[0].length);\n        match.attrs.push(attr);\n      }\n      if (end) {\n        match.unarySlash = end[1];\n        advance(end[0].length);\n        match.end = index;\n        return match\n      }\n    }\n  }\n\n  function handleStartTag (match) {\n    var tagName = match.tagName;\n    var unarySlash = match.unarySlash;\n\n    if (expectHTML) {\n      if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n        parseEndTag(lastTag);\n      }\n      if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {\n        parseEndTag(tagName);\n      }\n    }\n\n    var unary = isUnaryTag$$1(tagName) || !!unarySlash;\n\n    var l = match.attrs.length;\n    var attrs = new Array(l);\n    for (var i = 0; i < l; i++) {\n      var args = match.attrs[i];\n      // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778\n      if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('\"\"') === -1) {\n        if (args[3] === '') { delete args[3]; }\n        if (args[4] === '') { delete args[4]; }\n        if (args[5] === '') { delete args[5]; }\n      }\n      var value = args[3] || args[4] || args[5] || '';\n      var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\n        ? options.shouldDecodeNewlinesForHref\n        : options.shouldDecodeNewlines;\n      attrs[i] = {\n        name: args[1],\n        value: decodeAttr(value, shouldDecodeNewlines)\n      };\n    }\n\n    if (!unary) {\n      stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });\n      lastTag = tagName;\n    }\n\n    if (options.start) {\n      options.start(tagName, attrs, unary, match.start, match.end);\n    }\n  }\n\n  function parseEndTag (tagName, start, end) {\n    var pos, lowerCasedTagName;\n    if (start == null) { start = index; }\n    if (end == null) { end = index; }\n\n    if (tagName) {\n      lowerCasedTagName = tagName.toLowerCase();\n    }\n\n    // Find the closest opened tag of the same type\n    if (tagName) {\n      for (pos = stack.length - 1; pos >= 0; pos--) {\n        if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n          break\n        }\n      }\n    } else {\n      // If no tag name is provided, clean shop\n      pos = 0;\n    }\n\n    if (pos >= 0) {\n      // Close all the open elements, up the stack\n      for (var i = stack.length - 1; i >= pos; i--) {\n        if (process.env.NODE_ENV !== 'production' &&\n          (i > pos || !tagName) &&\n          options.warn\n        ) {\n          options.warn(\n            (\"tag <\" + (stack[i].tag) + \"> has no matching end tag.\")\n          );\n        }\n        if (options.end) {\n          options.end(stack[i].tag, start, end);\n        }\n      }\n\n      // Remove the open elements from the stack\n      stack.length = pos;\n      lastTag = pos && stack[pos - 1].tag;\n    } else if (lowerCasedTagName === 'br') {\n      if (options.start) {\n        options.start(tagName, [], true, start, end);\n      }\n    } else if (lowerCasedTagName === 'p') {\n      if (options.start) {\n        options.start(tagName, [], false, start, end);\n      }\n      if (options.end) {\n        options.end(tagName, start, end);\n      }\n    }\n  }\n}\n\n/*  */\n\nvar onRE = /^@|^v-on:/;\nvar dirRE = /^v-|^@|^:/;\nvar forAliasRE = /([^]*?)\\s+(?:in|of)\\s+([^]*)/;\nvar forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nvar stripParensRE = /^\\(|\\)$/g;\n\nvar argRE = /:(.*)$/;\nvar bindRE = /^:|^v-bind:/;\nvar modifierRE = /\\.[^.]+/g;\n\nvar decodeHTMLCached = cached(he.decode);\n\n// configurable state\nvar warn$2;\nvar delimiters;\nvar transforms;\nvar preTransforms;\nvar postTransforms;\nvar platformIsPreTag;\nvar platformMustUseProp;\nvar platformGetTagNamespace;\n\n\n\nfunction createASTElement (\n  tag,\n  attrs,\n  parent\n) {\n  return {\n    type: 1,\n    tag: tag,\n    attrsList: attrs,\n    attrsMap: makeAttrsMap(attrs),\n    parent: parent,\n    children: []\n  }\n}\n\n/**\n * Convert HTML string to AST.\n */\nfunction parse (\n  template,\n  options\n) {\n  warn$2 = options.warn || baseWarn;\n\n  platformIsPreTag = options.isPreTag || no;\n  platformMustUseProp = options.mustUseProp || no;\n  platformGetTagNamespace = options.getTagNamespace || no;\n\n  transforms = pluckModuleFunction(options.modules, 'transformNode');\n  preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n  postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n\n  delimiters = options.delimiters;\n\n  var stack = [];\n  var preserveWhitespace = options.preserveWhitespace !== false;\n  var root;\n  var currentParent;\n  var inVPre = false;\n  var inPre = false;\n  var warned = false;\n\n  function warnOnce (msg) {\n    if (!warned) {\n      warned = true;\n      warn$2(msg);\n    }\n  }\n\n  function closeElement (element) {\n    // check pre state\n    if (element.pre) {\n      inVPre = false;\n    }\n    if (platformIsPreTag(element.tag)) {\n      inPre = false;\n    }\n    // apply post-transforms\n    for (var i = 0; i < postTransforms.length; i++) {\n      postTransforms[i](element, options);\n    }\n  }\n\n  parseHTML(template, {\n    warn: warn$2,\n    expectHTML: options.expectHTML,\n    isUnaryTag: options.isUnaryTag,\n    canBeLeftOpenTag: options.canBeLeftOpenTag,\n    shouldDecodeNewlines: options.shouldDecodeNewlines,\n    shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n    shouldKeepComment: options.comments,\n    start: function start (tag, attrs, unary) {\n      // check namespace.\n      // inherit parent ns if there is one\n      var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n\n      // handle IE svg bug\n      /* istanbul ignore if */\n      if (isIE && ns === 'svg') {\n        attrs = guardIESVGBug(attrs);\n      }\n\n      var element = createASTElement(tag, attrs, currentParent);\n      if (ns) {\n        element.ns = ns;\n      }\n\n      if (isForbiddenTag(element) && !isServerRendering()) {\n        element.forbidden = true;\n        process.env.NODE_ENV !== 'production' && warn$2(\n          'Templates should only be responsible for mapping the state to the ' +\n          'UI. Avoid placing tags with side-effects in your templates, such as ' +\n          \"<\" + tag + \">\" + ', as they will not be parsed.'\n        );\n      }\n\n      // apply pre-transforms\n      for (var i = 0; i < preTransforms.length; i++) {\n        element = preTransforms[i](element, options) || element;\n      }\n\n      if (!inVPre) {\n        processPre(element);\n        if (element.pre) {\n          inVPre = true;\n        }\n      }\n      if (platformIsPreTag(element.tag)) {\n        inPre = true;\n      }\n      if (inVPre) {\n        processRawAttrs(element);\n      } else if (!element.processed) {\n        // structural directives\n        processFor(element);\n        processIf(element);\n        processOnce(element);\n        // element-scope stuff\n        processElement(element, options);\n      }\n\n      function checkRootConstraints (el) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (el.tag === 'slot' || el.tag === 'template') {\n            warnOnce(\n              \"Cannot use <\" + (el.tag) + \"> as component root element because it may \" +\n              'contain multiple nodes.'\n            );\n          }\n          if (el.attrsMap.hasOwnProperty('v-for')) {\n            warnOnce(\n              'Cannot use v-for on stateful component root element because ' +\n              'it renders multiple elements.'\n            );\n          }\n        }\n      }\n\n      // tree management\n      if (!root) {\n        root = element;\n        checkRootConstraints(root);\n      } else if (!stack.length) {\n        // allow root elements with v-if, v-else-if and v-else\n        if (root.if && (element.elseif || element.else)) {\n          checkRootConstraints(element);\n          addIfCondition(root, {\n            exp: element.elseif,\n            block: element\n          });\n        } else if (process.env.NODE_ENV !== 'production') {\n          warnOnce(\n            \"Component template should contain exactly one root element. \" +\n            \"If you are using v-if on multiple elements, \" +\n            \"use v-else-if to chain them instead.\"\n          );\n        }\n      }\n      if (currentParent && !element.forbidden) {\n        if (element.elseif || element.else) {\n          processIfConditions(element, currentParent);\n        } else if (element.slotScope) { // scoped slot\n          currentParent.plain = false;\n          var name = element.slotTarget || '\"default\"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;\n        } else {\n          currentParent.children.push(element);\n          element.parent = currentParent;\n        }\n      }\n      if (!unary) {\n        currentParent = element;\n        stack.push(element);\n      } else {\n        closeElement(element);\n      }\n    },\n\n    end: function end () {\n      // remove trailing whitespace\n      var element = stack[stack.length - 1];\n      var lastNode = element.children[element.children.length - 1];\n      if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {\n        element.children.pop();\n      }\n      // pop stack\n      stack.length -= 1;\n      currentParent = stack[stack.length - 1];\n      closeElement(element);\n    },\n\n    chars: function chars (text) {\n      if (!currentParent) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (text === template) {\n            warnOnce(\n              'Component template requires a root element, rather than just text.'\n            );\n          } else if ((text = text.trim())) {\n            warnOnce(\n              (\"text \\\"\" + text + \"\\\" outside root element will be ignored.\")\n            );\n          }\n        }\n        return\n      }\n      // IE textarea placeholder bug\n      /* istanbul ignore if */\n      if (isIE &&\n        currentParent.tag === 'textarea' &&\n        currentParent.attrsMap.placeholder === text\n      ) {\n        return\n      }\n      var children = currentParent.children;\n      text = inPre || text.trim()\n        ? isTextTag(currentParent) ? text : decodeHTMLCached(text)\n        // only preserve whitespace if its not right after a starting tag\n        : preserveWhitespace && children.length ? ' ' : '';\n      if (text) {\n        var res;\n        if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n          children.push({\n            type: 2,\n            expression: res.expression,\n            tokens: res.tokens,\n            text: text\n          });\n        } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {\n          children.push({\n            type: 3,\n            text: text\n          });\n        }\n      }\n    },\n    comment: function comment (text) {\n      currentParent.children.push({\n        type: 3,\n        text: text,\n        isComment: true\n      });\n    }\n  });\n  return root\n}\n\nfunction processPre (el) {\n  if (getAndRemoveAttr(el, 'v-pre') != null) {\n    el.pre = true;\n  }\n}\n\nfunction processRawAttrs (el) {\n  var l = el.attrsList.length;\n  if (l) {\n    var attrs = el.attrs = new Array(l);\n    for (var i = 0; i < l; i++) {\n      attrs[i] = {\n        name: el.attrsList[i].name,\n        value: JSON.stringify(el.attrsList[i].value)\n      };\n    }\n  } else if (!el.pre) {\n    // non root node in pre blocks with no attributes\n    el.plain = true;\n  }\n}\n\nfunction processElement (element, options) {\n  processKey(element);\n\n  // determine whether this is a plain element after\n  // removing structural attributes\n  element.plain = !element.key && !element.attrsList.length;\n\n  processRef(element);\n  processSlot(element);\n  processComponent(element);\n  for (var i = 0; i < transforms.length; i++) {\n    element = transforms[i](element, options) || element;\n  }\n  processAttrs(element);\n}\n\nfunction processKey (el) {\n  var exp = getBindingAttr(el, 'key');\n  if (exp) {\n    if (process.env.NODE_ENV !== 'production' && el.tag === 'template') {\n      warn$2(\"<template> cannot be keyed. Place the key on real elements instead.\");\n    }\n    el.key = exp;\n  }\n}\n\nfunction processRef (el) {\n  var ref = getBindingAttr(el, 'ref');\n  if (ref) {\n    el.ref = ref;\n    el.refInFor = checkInFor(el);\n  }\n}\n\nfunction processFor (el) {\n  var exp;\n  if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n    var res = parseFor(exp);\n    if (res) {\n      extend(el, res);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn$2(\n        (\"Invalid v-for expression: \" + exp)\n      );\n    }\n  }\n}\n\n\n\nfunction parseFor (exp) {\n  var inMatch = exp.match(forAliasRE);\n  if (!inMatch) { return }\n  var res = {};\n  res.for = inMatch[2].trim();\n  var alias = inMatch[1].trim().replace(stripParensRE, '');\n  var iteratorMatch = alias.match(forIteratorRE);\n  if (iteratorMatch) {\n    res.alias = alias.replace(forIteratorRE, '');\n    res.iterator1 = iteratorMatch[1].trim();\n    if (iteratorMatch[2]) {\n      res.iterator2 = iteratorMatch[2].trim();\n    }\n  } else {\n    res.alias = alias;\n  }\n  return res\n}\n\nfunction processIf (el) {\n  var exp = getAndRemoveAttr(el, 'v-if');\n  if (exp) {\n    el.if = exp;\n    addIfCondition(el, {\n      exp: exp,\n      block: el\n    });\n  } else {\n    if (getAndRemoveAttr(el, 'v-else') != null) {\n      el.else = true;\n    }\n    var elseif = getAndRemoveAttr(el, 'v-else-if');\n    if (elseif) {\n      el.elseif = elseif;\n    }\n  }\n}\n\nfunction processIfConditions (el, parent) {\n  var prev = findPrevElement(parent.children);\n  if (prev && prev.if) {\n    addIfCondition(prev, {\n      exp: el.elseif,\n      block: el\n    });\n  } else if (process.env.NODE_ENV !== 'production') {\n    warn$2(\n      \"v-\" + (el.elseif ? ('else-if=\"' + el.elseif + '\"') : 'else') + \" \" +\n      \"used on element <\" + (el.tag) + \"> without corresponding v-if.\"\n    );\n  }\n}\n\nfunction findPrevElement (children) {\n  var i = children.length;\n  while (i--) {\n    if (children[i].type === 1) {\n      return children[i]\n    } else {\n      if (process.env.NODE_ENV !== 'production' && children[i].text !== ' ') {\n        warn$2(\n          \"text \\\"\" + (children[i].text.trim()) + \"\\\" between v-if and v-else(-if) \" +\n          \"will be ignored.\"\n        );\n      }\n      children.pop();\n    }\n  }\n}\n\nfunction addIfCondition (el, condition) {\n  if (!el.ifConditions) {\n    el.ifConditions = [];\n  }\n  el.ifConditions.push(condition);\n}\n\nfunction processOnce (el) {\n  var once$$1 = getAndRemoveAttr(el, 'v-once');\n  if (once$$1 != null) {\n    el.once = true;\n  }\n}\n\nfunction processSlot (el) {\n  if (el.tag === 'slot') {\n    el.slotName = getBindingAttr(el, 'name');\n    if (process.env.NODE_ENV !== 'production' && el.key) {\n      warn$2(\n        \"`key` does not work on <slot> because slots are abstract outlets \" +\n        \"and can possibly expand into multiple elements. \" +\n        \"Use the key on a wrapping element instead.\"\n      );\n    }\n  } else {\n    var slotScope;\n    if (el.tag === 'template') {\n      slotScope = getAndRemoveAttr(el, 'scope');\n      /* istanbul ignore if */\n      if (process.env.NODE_ENV !== 'production' && slotScope) {\n        warn$2(\n          \"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" +\n          \"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" +\n          \"can also be used on plain elements in addition to <template> to \" +\n          \"denote scoped slots.\",\n          true\n        );\n      }\n      el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n    } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\n      /* istanbul ignore if */\n      if (process.env.NODE_ENV !== 'production' && el.attrsMap['v-for']) {\n        warn$2(\n          \"Ambiguous combined usage of slot-scope and v-for on <\" + (el.tag) + \"> \" +\n          \"(v-for takes higher priority). Use a wrapper <template> for the \" +\n          \"scoped slot to make it clearer.\",\n          true\n        );\n      }\n      el.slotScope = slotScope;\n    }\n    var slotTarget = getBindingAttr(el, 'slot');\n    if (slotTarget) {\n      el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n      // preserve slot as an attribute for native shadow DOM compat\n      // only for non-scoped slots.\n      if (el.tag !== 'template' && !el.slotScope) {\n        addAttr(el, 'slot', slotTarget);\n      }\n    }\n  }\n}\n\nfunction processComponent (el) {\n  var binding;\n  if ((binding = getBindingAttr(el, 'is'))) {\n    el.component = binding;\n  }\n  if (getAndRemoveAttr(el, 'inline-template') != null) {\n    el.inlineTemplate = true;\n  }\n}\n\nfunction processAttrs (el) {\n  var list = el.attrsList;\n  var i, l, name, rawName, value, modifiers, isProp;\n  for (i = 0, l = list.length; i < l; i++) {\n    name = rawName = list[i].name;\n    value = list[i].value;\n    if (dirRE.test(name)) {\n      // mark element as dynamic\n      el.hasBindings = true;\n      // modifiers\n      modifiers = parseModifiers(name);\n      if (modifiers) {\n        name = name.replace(modifierRE, '');\n      }\n      if (bindRE.test(name)) { // v-bind\n        name = name.replace(bindRE, '');\n        value = parseFilters(value);\n        isProp = false;\n        if (modifiers) {\n          if (modifiers.prop) {\n            isProp = true;\n            name = camelize(name);\n            if (name === 'innerHtml') { name = 'innerHTML'; }\n          }\n          if (modifiers.camel) {\n            name = camelize(name);\n          }\n          if (modifiers.sync) {\n            addHandler(\n              el,\n              (\"update:\" + (camelize(name))),\n              genAssignmentCode(value, \"$event\")\n            );\n          }\n        }\n        if (isProp || (\n          !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)\n        )) {\n          addProp(el, name, value);\n        } else {\n          addAttr(el, name, value);\n        }\n      } else if (onRE.test(name)) { // v-on\n        name = name.replace(onRE, '');\n        addHandler(el, name, value, modifiers, false, warn$2);\n      } else { // normal directives\n        name = name.replace(dirRE, '');\n        // parse arg\n        var argMatch = name.match(argRE);\n        var arg = argMatch && argMatch[1];\n        if (arg) {\n          name = name.slice(0, -(arg.length + 1));\n        }\n        addDirective(el, name, rawName, value, arg, modifiers);\n        if (process.env.NODE_ENV !== 'production' && name === 'model') {\n          checkForAliasModel(el, value);\n        }\n      }\n    } else {\n      // literal attribute\n      if (process.env.NODE_ENV !== 'production') {\n        var res = parseText(value, delimiters);\n        if (res) {\n          warn$2(\n            name + \"=\\\"\" + value + \"\\\": \" +\n            'Interpolation inside attributes has been removed. ' +\n            'Use v-bind or the colon shorthand instead. For example, ' +\n            'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.'\n          );\n        }\n      }\n      addAttr(el, name, JSON.stringify(value));\n      // #6887 firefox doesn't update muted state if set via attribute\n      // even immediately after element creation\n      if (!el.component &&\n          name === 'muted' &&\n          platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n        addProp(el, name, 'true');\n      }\n    }\n  }\n}\n\nfunction checkInFor (el) {\n  var parent = el;\n  while (parent) {\n    if (parent.for !== undefined) {\n      return true\n    }\n    parent = parent.parent;\n  }\n  return false\n}\n\nfunction parseModifiers (name) {\n  var match = name.match(modifierRE);\n  if (match) {\n    var ret = {};\n    match.forEach(function (m) { ret[m.slice(1)] = true; });\n    return ret\n  }\n}\n\nfunction makeAttrsMap (attrs) {\n  var map = {};\n  for (var i = 0, l = attrs.length; i < l; i++) {\n    if (\n      process.env.NODE_ENV !== 'production' &&\n      map[attrs[i].name] && !isIE && !isEdge\n    ) {\n      warn$2('duplicate attribute: ' + attrs[i].name);\n    }\n    map[attrs[i].name] = attrs[i].value;\n  }\n  return map\n}\n\n// for script (e.g. type=\"x/template\") or style, do not decode content\nfunction isTextTag (el) {\n  return el.tag === 'script' || el.tag === 'style'\n}\n\nfunction isForbiddenTag (el) {\n  return (\n    el.tag === 'style' ||\n    (el.tag === 'script' && (\n      !el.attrsMap.type ||\n      el.attrsMap.type === 'text/javascript'\n    ))\n  )\n}\n\nvar ieNSBug = /^xmlns:NS\\d+/;\nvar ieNSPrefix = /^NS\\d+:/;\n\n/* istanbul ignore next */\nfunction guardIESVGBug (attrs) {\n  var res = [];\n  for (var i = 0; i < attrs.length; i++) {\n    var attr = attrs[i];\n    if (!ieNSBug.test(attr.name)) {\n      attr.name = attr.name.replace(ieNSPrefix, '');\n      res.push(attr);\n    }\n  }\n  return res\n}\n\nfunction checkForAliasModel (el, value) {\n  var _el = el;\n  while (_el) {\n    if (_el.for && _el.alias === value) {\n      warn$2(\n        \"<\" + (el.tag) + \" v-model=\\\"\" + value + \"\\\">: \" +\n        \"You are binding v-model directly to a v-for iteration alias. \" +\n        \"This will not be able to modify the v-for source array because \" +\n        \"writing to the alias is like modifying a function local variable. \" +\n        \"Consider using an array of objects and use v-model on an object property instead.\"\n      );\n    }\n    _el = _el.parent;\n  }\n}\n\n/*  */\n\n/**\n * Expand input[v-model] with dyanmic type bindings into v-if-else chains\n * Turn this:\n *   <input v-model=\"data[type]\" :type=\"type\">\n * into this:\n *   <input v-if=\"type === 'checkbox'\" type=\"checkbox\" v-model=\"data[type]\">\n *   <input v-else-if=\"type === 'radio'\" type=\"radio\" v-model=\"data[type]\">\n *   <input v-else :type=\"type\" v-model=\"data[type]\">\n */\n\nfunction preTransformNode (el, options) {\n  if (el.tag === 'input') {\n    var map = el.attrsMap;\n    if (!map['v-model']) {\n      return\n    }\n\n    var typeBinding;\n    if (map[':type'] || map['v-bind:type']) {\n      typeBinding = getBindingAttr(el, 'type');\n    }\n    if (!map.type && !typeBinding && map['v-bind']) {\n      typeBinding = \"(\" + (map['v-bind']) + \").type\";\n    }\n\n    if (typeBinding) {\n      var ifCondition = getAndRemoveAttr(el, 'v-if', true);\n      var ifConditionExtra = ifCondition ? (\"&&(\" + ifCondition + \")\") : \"\";\n      var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n      var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\n      // 1. checkbox\n      var branch0 = cloneASTElement(el);\n      // process for on the main node\n      processFor(branch0);\n      addRawAttr(branch0, 'type', 'checkbox');\n      processElement(branch0, options);\n      branch0.processed = true; // prevent it from double-processed\n      branch0.if = \"(\" + typeBinding + \")==='checkbox'\" + ifConditionExtra;\n      addIfCondition(branch0, {\n        exp: branch0.if,\n        block: branch0\n      });\n      // 2. add radio else-if condition\n      var branch1 = cloneASTElement(el);\n      getAndRemoveAttr(branch1, 'v-for', true);\n      addRawAttr(branch1, 'type', 'radio');\n      processElement(branch1, options);\n      addIfCondition(branch0, {\n        exp: \"(\" + typeBinding + \")==='radio'\" + ifConditionExtra,\n        block: branch1\n      });\n      // 3. other\n      var branch2 = cloneASTElement(el);\n      getAndRemoveAttr(branch2, 'v-for', true);\n      addRawAttr(branch2, ':type', typeBinding);\n      processElement(branch2, options);\n      addIfCondition(branch0, {\n        exp: ifCondition,\n        block: branch2\n      });\n\n      if (hasElse) {\n        branch0.else = true;\n      } else if (elseIfCondition) {\n        branch0.elseif = elseIfCondition;\n      }\n\n      return branch0\n    }\n  }\n}\n\nfunction cloneASTElement (el) {\n  return createASTElement(el.tag, el.attrsList.slice(), el.parent)\n}\n\nvar model$2 = {\n  preTransformNode: preTransformNode\n}\n\nvar modules$1 = [\n  klass$1,\n  style$1,\n  model$2\n]\n\n/*  */\n\nfunction text (el, dir) {\n  if (dir.value) {\n    addProp(el, 'textContent', (\"_s(\" + (dir.value) + \")\"));\n  }\n}\n\n/*  */\n\nfunction html (el, dir) {\n  if (dir.value) {\n    addProp(el, 'innerHTML', (\"_s(\" + (dir.value) + \")\"));\n  }\n}\n\nvar directives$1 = {\n  model: model,\n  text: text,\n  html: html\n}\n\n/*  */\n\nvar baseOptions = {\n  expectHTML: true,\n  modules: modules$1,\n  directives: directives$1,\n  isPreTag: isPreTag,\n  isUnaryTag: isUnaryTag,\n  mustUseProp: mustUseProp,\n  canBeLeftOpenTag: canBeLeftOpenTag,\n  isReservedTag: isReservedTag,\n  getTagNamespace: getTagNamespace,\n  staticKeys: genStaticKeys(modules$1)\n};\n\n/*  */\n\nvar isStaticKey;\nvar isPlatformReservedTag;\n\nvar genStaticKeysCached = cached(genStaticKeys$1);\n\n/**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n *    create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\nfunction optimize (root, options) {\n  if (!root) { return }\n  isStaticKey = genStaticKeysCached(options.staticKeys || '');\n  isPlatformReservedTag = options.isReservedTag || no;\n  // first pass: mark all non-static nodes.\n  markStatic$1(root);\n  // second pass: mark static roots.\n  markStaticRoots(root, false);\n}\n\nfunction genStaticKeys$1 (keys) {\n  return makeMap(\n    'type,tag,attrsList,attrsMap,plain,parent,children,attrs' +\n    (keys ? ',' + keys : '')\n  )\n}\n\nfunction markStatic$1 (node) {\n  node.static = isStatic(node);\n  if (node.type === 1) {\n    // do not make component slot content static. this avoids\n    // 1. components not able to mutate slot nodes\n    // 2. static slot content fails for hot-reloading\n    if (\n      !isPlatformReservedTag(node.tag) &&\n      node.tag !== 'slot' &&\n      node.attrsMap['inline-template'] == null\n    ) {\n      return\n    }\n    for (var i = 0, l = node.children.length; i < l; i++) {\n      var child = node.children[i];\n      markStatic$1(child);\n      if (!child.static) {\n        node.static = false;\n      }\n    }\n    if (node.ifConditions) {\n      for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n        var block = node.ifConditions[i$1].block;\n        markStatic$1(block);\n        if (!block.static) {\n          node.static = false;\n        }\n      }\n    }\n  }\n}\n\nfunction markStaticRoots (node, isInFor) {\n  if (node.type === 1) {\n    if (node.static || node.once) {\n      node.staticInFor = isInFor;\n    }\n    // For a node to qualify as a static root, it should have children that\n    // are not just static text. Otherwise the cost of hoisting out will\n    // outweigh the benefits and it's better off to just always render it fresh.\n    if (node.static && node.children.length && !(\n      node.children.length === 1 &&\n      node.children[0].type === 3\n    )) {\n      node.staticRoot = true;\n      return\n    } else {\n      node.staticRoot = false;\n    }\n    if (node.children) {\n      for (var i = 0, l = node.children.length; i < l; i++) {\n        markStaticRoots(node.children[i], isInFor || !!node.for);\n      }\n    }\n    if (node.ifConditions) {\n      for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {\n        markStaticRoots(node.ifConditions[i$1].block, isInFor);\n      }\n    }\n  }\n}\n\nfunction isStatic (node) {\n  if (node.type === 2) { // expression\n    return false\n  }\n  if (node.type === 3) { // text\n    return true\n  }\n  return !!(node.pre || (\n    !node.hasBindings && // no dynamic bindings\n    !node.if && !node.for && // not v-if or v-for or v-else\n    !isBuiltInTag(node.tag) && // not a built-in\n    isPlatformReservedTag(node.tag) && // not a component\n    !isDirectChildOfTemplateFor(node) &&\n    Object.keys(node).every(isStaticKey)\n  ))\n}\n\nfunction isDirectChildOfTemplateFor (node) {\n  while (node.parent) {\n    node = node.parent;\n    if (node.tag !== 'template') {\n      return false\n    }\n    if (node.for) {\n      return true\n    }\n  }\n  return false\n}\n\n/*  */\n\nvar fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function\\s*\\(/;\nvar simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\n\n// KeyboardEvent.keyCode aliases\nvar keyCodes = {\n  esc: 27,\n  tab: 9,\n  enter: 13,\n  space: 32,\n  up: 38,\n  left: 37,\n  right: 39,\n  down: 40,\n  'delete': [8, 46]\n};\n\n// KeyboardEvent.key aliases\nvar keyNames = {\n  esc: 'Escape',\n  tab: 'Tab',\n  enter: 'Enter',\n  space: ' ',\n  // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n  up: ['Up', 'ArrowUp'],\n  left: ['Left', 'ArrowLeft'],\n  right: ['Right', 'ArrowRight'],\n  down: ['Down', 'ArrowDown'],\n  'delete': ['Backspace', 'Delete']\n};\n\n// #4868: modifiers that prevent the execution of the listener\n// need to explicitly return null so that we can determine whether to remove\n// the listener for .once\nvar genGuard = function (condition) { return (\"if(\" + condition + \")return null;\"); };\n\nvar modifierCode = {\n  stop: '$event.stopPropagation();',\n  prevent: '$event.preventDefault();',\n  self: genGuard(\"$event.target !== $event.currentTarget\"),\n  ctrl: genGuard(\"!$event.ctrlKey\"),\n  shift: genGuard(\"!$event.shiftKey\"),\n  alt: genGuard(\"!$event.altKey\"),\n  meta: genGuard(\"!$event.metaKey\"),\n  left: genGuard(\"'button' in $event && $event.button !== 0\"),\n  middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n  right: genGuard(\"'button' in $event && $event.button !== 2\")\n};\n\nfunction genHandlers (\n  events,\n  isNative,\n  warn\n) {\n  var res = isNative ? 'nativeOn:{' : 'on:{';\n  for (var name in events) {\n    res += \"\\\"\" + name + \"\\\":\" + (genHandler(name, events[name])) + \",\";\n  }\n  return res.slice(0, -1) + '}'\n}\n\nfunction genHandler (\n  name,\n  handler\n) {\n  if (!handler) {\n    return 'function(){}'\n  }\n\n  if (Array.isArray(handler)) {\n    return (\"[\" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + \"]\")\n  }\n\n  var isMethodPath = simplePathRE.test(handler.value);\n  var isFunctionExpression = fnExpRE.test(handler.value);\n\n  if (!handler.modifiers) {\n    if (isMethodPath || isFunctionExpression) {\n      return handler.value\n    }\n    /* istanbul ignore if */\n    return (\"function($event){\" + (handler.value) + \"}\") // inline statement\n  } else {\n    var code = '';\n    var genModifierCode = '';\n    var keys = [];\n    for (var key in handler.modifiers) {\n      if (modifierCode[key]) {\n        genModifierCode += modifierCode[key];\n        // left/right\n        if (keyCodes[key]) {\n          keys.push(key);\n        }\n      } else if (key === 'exact') {\n        var modifiers = (handler.modifiers);\n        genModifierCode += genGuard(\n          ['ctrl', 'shift', 'alt', 'meta']\n            .filter(function (keyModifier) { return !modifiers[keyModifier]; })\n            .map(function (keyModifier) { return (\"$event.\" + keyModifier + \"Key\"); })\n            .join('||')\n        );\n      } else {\n        keys.push(key);\n      }\n    }\n    if (keys.length) {\n      code += genKeyFilter(keys);\n    }\n    // Make sure modifiers like prevent and stop get executed after key filtering\n    if (genModifierCode) {\n      code += genModifierCode;\n    }\n    var handlerCode = isMethodPath\n      ? (\"return \" + (handler.value) + \"($event)\")\n      : isFunctionExpression\n        ? (\"return (\" + (handler.value) + \")($event)\")\n        : handler.value;\n    /* istanbul ignore if */\n    return (\"function($event){\" + code + handlerCode + \"}\")\n  }\n}\n\nfunction genKeyFilter (keys) {\n  return (\"if(!('button' in $event)&&\" + (keys.map(genFilterCode).join('&&')) + \")return null;\")\n}\n\nfunction genFilterCode (key) {\n  var keyVal = parseInt(key, 10);\n  if (keyVal) {\n    return (\"$event.keyCode!==\" + keyVal)\n  }\n  var keyCode = keyCodes[key];\n  var keyName = keyNames[key];\n  return (\n    \"_k($event.keyCode,\" +\n    (JSON.stringify(key)) + \",\" +\n    (JSON.stringify(keyCode)) + \",\" +\n    \"$event.key,\" +\n    \"\" + (JSON.stringify(keyName)) +\n    \")\"\n  )\n}\n\n/*  */\n\nfunction on (el, dir) {\n  if (process.env.NODE_ENV !== 'production' && dir.modifiers) {\n    warn(\"v-on without argument does not support modifiers.\");\n  }\n  el.wrapListeners = function (code) { return (\"_g(\" + code + \",\" + (dir.value) + \")\"); };\n}\n\n/*  */\n\nfunction bind$1 (el, dir) {\n  el.wrapData = function (code) {\n    return (\"_b(\" + code + \",'\" + (el.tag) + \"',\" + (dir.value) + \",\" + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + \")\")\n  };\n}\n\n/*  */\n\nvar baseDirectives = {\n  on: on,\n  bind: bind$1,\n  cloak: noop\n}\n\n/*  */\n\nvar CodegenState = function CodegenState (options) {\n  this.options = options;\n  this.warn = options.warn || baseWarn;\n  this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n  this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n  this.directives = extend(extend({}, baseDirectives), options.directives);\n  var isReservedTag = options.isReservedTag || no;\n  this.maybeComponent = function (el) { return !isReservedTag(el.tag); };\n  this.onceId = 0;\n  this.staticRenderFns = [];\n};\n\n\n\nfunction generate (\n  ast,\n  options\n) {\n  var state = new CodegenState(options);\n  var code = ast ? genElement(ast, state) : '_c(\"div\")';\n  return {\n    render: (\"with(this){return \" + code + \"}\"),\n    staticRenderFns: state.staticRenderFns\n  }\n}\n\nfunction genElement (el, state) {\n  if (el.staticRoot && !el.staticProcessed) {\n    return genStatic(el, state)\n  } else if (el.once && !el.onceProcessed) {\n    return genOnce(el, state)\n  } else if (el.for && !el.forProcessed) {\n    return genFor(el, state)\n  } else if (el.if && !el.ifProcessed) {\n    return genIf(el, state)\n  } else if (el.tag === 'template' && !el.slotTarget) {\n    return genChildren(el, state) || 'void 0'\n  } else if (el.tag === 'slot') {\n    return genSlot(el, state)\n  } else {\n    // component or element\n    var code;\n    if (el.component) {\n      code = genComponent(el.component, el, state);\n    } else {\n      var data = el.plain ? undefined : genData$2(el, state);\n\n      var children = el.inlineTemplate ? null : genChildren(el, state, true);\n      code = \"_c('\" + (el.tag) + \"'\" + (data ? (\",\" + data) : '') + (children ? (\",\" + children) : '') + \")\";\n    }\n    // module transforms\n    for (var i = 0; i < state.transforms.length; i++) {\n      code = state.transforms[i](el, code);\n    }\n    return code\n  }\n}\n\n// hoist static sub-trees out\nfunction genStatic (el, state) {\n  el.staticProcessed = true;\n  state.staticRenderFns.push((\"with(this){return \" + (genElement(el, state)) + \"}\"));\n  return (\"_m(\" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + \")\")\n}\n\n// v-once\nfunction genOnce (el, state) {\n  el.onceProcessed = true;\n  if (el.if && !el.ifProcessed) {\n    return genIf(el, state)\n  } else if (el.staticInFor) {\n    var key = '';\n    var parent = el.parent;\n    while (parent) {\n      if (parent.for) {\n        key = parent.key;\n        break\n      }\n      parent = parent.parent;\n    }\n    if (!key) {\n      process.env.NODE_ENV !== 'production' && state.warn(\n        \"v-once can only be used inside v-for that is keyed. \"\n      );\n      return genElement(el, state)\n    }\n    return (\"_o(\" + (genElement(el, state)) + \",\" + (state.onceId++) + \",\" + key + \")\")\n  } else {\n    return genStatic(el, state)\n  }\n}\n\nfunction genIf (\n  el,\n  state,\n  altGen,\n  altEmpty\n) {\n  el.ifProcessed = true; // avoid recursion\n  return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)\n}\n\nfunction genIfConditions (\n  conditions,\n  state,\n  altGen,\n  altEmpty\n) {\n  if (!conditions.length) {\n    return altEmpty || '_e()'\n  }\n\n  var condition = conditions.shift();\n  if (condition.exp) {\n    return (\"(\" + (condition.exp) + \")?\" + (genTernaryExp(condition.block)) + \":\" + (genIfConditions(conditions, state, altGen, altEmpty)))\n  } else {\n    return (\"\" + (genTernaryExp(condition.block)))\n  }\n\n  // v-if with v-once should generate code like (a)?_m(0):_m(1)\n  function genTernaryExp (el) {\n    return altGen\n      ? altGen(el, state)\n      : el.once\n        ? genOnce(el, state)\n        : genElement(el, state)\n  }\n}\n\nfunction genFor (\n  el,\n  state,\n  altGen,\n  altHelper\n) {\n  var exp = el.for;\n  var alias = el.alias;\n  var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n  var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n\n  if (process.env.NODE_ENV !== 'production' &&\n    state.maybeComponent(el) &&\n    el.tag !== 'slot' &&\n    el.tag !== 'template' &&\n    !el.key\n  ) {\n    state.warn(\n      \"<\" + (el.tag) + \" v-for=\\\"\" + alias + \" in \" + exp + \"\\\">: component lists rendered with \" +\n      \"v-for should have explicit keys. \" +\n      \"See https://vuejs.org/guide/list.html#key for more info.\",\n      true /* tip */\n    );\n  }\n\n  el.forProcessed = true; // avoid recursion\n  return (altHelper || '_l') + \"((\" + exp + \"),\" +\n    \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n      \"return \" + ((altGen || genElement)(el, state)) +\n    '})'\n}\n\nfunction genData$2 (el, state) {\n  var data = '{';\n\n  // directives first.\n  // directives may mutate the el's other properties before they are generated.\n  var dirs = genDirectives(el, state);\n  if (dirs) { data += dirs + ','; }\n\n  // key\n  if (el.key) {\n    data += \"key:\" + (el.key) + \",\";\n  }\n  // ref\n  if (el.ref) {\n    data += \"ref:\" + (el.ref) + \",\";\n  }\n  if (el.refInFor) {\n    data += \"refInFor:true,\";\n  }\n  // pre\n  if (el.pre) {\n    data += \"pre:true,\";\n  }\n  // record original tag name for components using \"is\" attribute\n  if (el.component) {\n    data += \"tag:\\\"\" + (el.tag) + \"\\\",\";\n  }\n  // module data generation functions\n  for (var i = 0; i < state.dataGenFns.length; i++) {\n    data += state.dataGenFns[i](el);\n  }\n  // attributes\n  if (el.attrs) {\n    data += \"attrs:{\" + (genProps(el.attrs)) + \"},\";\n  }\n  // DOM props\n  if (el.props) {\n    data += \"domProps:{\" + (genProps(el.props)) + \"},\";\n  }\n  // event handlers\n  if (el.events) {\n    data += (genHandlers(el.events, false, state.warn)) + \",\";\n  }\n  if (el.nativeEvents) {\n    data += (genHandlers(el.nativeEvents, true, state.warn)) + \",\";\n  }\n  // slot target\n  // only for non-scoped slots\n  if (el.slotTarget && !el.slotScope) {\n    data += \"slot:\" + (el.slotTarget) + \",\";\n  }\n  // scoped slots\n  if (el.scopedSlots) {\n    data += (genScopedSlots(el.scopedSlots, state)) + \",\";\n  }\n  // component v-model\n  if (el.model) {\n    data += \"model:{value:\" + (el.model.value) + \",callback:\" + (el.model.callback) + \",expression:\" + (el.model.expression) + \"},\";\n  }\n  // inline-template\n  if (el.inlineTemplate) {\n    var inlineTemplate = genInlineTemplate(el, state);\n    if (inlineTemplate) {\n      data += inlineTemplate + \",\";\n    }\n  }\n  data = data.replace(/,$/, '') + '}';\n  // v-bind data wrap\n  if (el.wrapData) {\n    data = el.wrapData(data);\n  }\n  // v-on data wrap\n  if (el.wrapListeners) {\n    data = el.wrapListeners(data);\n  }\n  return data\n}\n\nfunction genDirectives (el, state) {\n  var dirs = el.directives;\n  if (!dirs) { return }\n  var res = 'directives:[';\n  var hasRuntime = false;\n  var i, l, dir, needRuntime;\n  for (i = 0, l = dirs.length; i < l; i++) {\n    dir = dirs[i];\n    needRuntime = true;\n    var gen = state.directives[dir.name];\n    if (gen) {\n      // compile-time directive that manipulates AST.\n      // returns true if it also needs a runtime counterpart.\n      needRuntime = !!gen(el, dir, state.warn);\n    }\n    if (needRuntime) {\n      hasRuntime = true;\n      res += \"{name:\\\"\" + (dir.name) + \"\\\",rawName:\\\"\" + (dir.rawName) + \"\\\"\" + (dir.value ? (\",value:(\" + (dir.value) + \"),expression:\" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (\",arg:\\\"\" + (dir.arg) + \"\\\"\") : '') + (dir.modifiers ? (\",modifiers:\" + (JSON.stringify(dir.modifiers))) : '') + \"},\";\n    }\n  }\n  if (hasRuntime) {\n    return res.slice(0, -1) + ']'\n  }\n}\n\nfunction genInlineTemplate (el, state) {\n  var ast = el.children[0];\n  if (process.env.NODE_ENV !== 'production' && (\n    el.children.length !== 1 || ast.type !== 1\n  )) {\n    state.warn('Inline-template components must have exactly one child element.');\n  }\n  if (ast.type === 1) {\n    var inlineRenderFns = generate(ast, state.options);\n    return (\"inlineTemplate:{render:function(){\" + (inlineRenderFns.render) + \"},staticRenderFns:[\" + (inlineRenderFns.staticRenderFns.map(function (code) { return (\"function(){\" + code + \"}\"); }).join(',')) + \"]}\")\n  }\n}\n\nfunction genScopedSlots (\n  slots,\n  state\n) {\n  return (\"scopedSlots:_u([\" + (Object.keys(slots).map(function (key) {\n      return genScopedSlot(key, slots[key], state)\n    }).join(',')) + \"])\")\n}\n\nfunction genScopedSlot (\n  key,\n  el,\n  state\n) {\n  if (el.for && !el.forProcessed) {\n    return genForScopedSlot(key, el, state)\n  }\n  var fn = \"function(\" + (String(el.slotScope)) + \"){\" +\n    \"return \" + (el.tag === 'template'\n      ? el.if\n        ? ((el.if) + \"?\" + (genChildren(el, state) || 'undefined') + \":undefined\")\n        : genChildren(el, state) || 'undefined'\n      : genElement(el, state)) + \"}\";\n  return (\"{key:\" + key + \",fn:\" + fn + \"}\")\n}\n\nfunction genForScopedSlot (\n  key,\n  el,\n  state\n) {\n  var exp = el.for;\n  var alias = el.alias;\n  var iterator1 = el.iterator1 ? (\",\" + (el.iterator1)) : '';\n  var iterator2 = el.iterator2 ? (\",\" + (el.iterator2)) : '';\n  el.forProcessed = true; // avoid recursion\n  return \"_l((\" + exp + \"),\" +\n    \"function(\" + alias + iterator1 + iterator2 + \"){\" +\n      \"return \" + (genScopedSlot(key, el, state)) +\n    '})'\n}\n\nfunction genChildren (\n  el,\n  state,\n  checkSkip,\n  altGenElement,\n  altGenNode\n) {\n  var children = el.children;\n  if (children.length) {\n    var el$1 = children[0];\n    // optimize single v-for\n    if (children.length === 1 &&\n      el$1.for &&\n      el$1.tag !== 'template' &&\n      el$1.tag !== 'slot'\n    ) {\n      return (altGenElement || genElement)(el$1, state)\n    }\n    var normalizationType = checkSkip\n      ? getNormalizationType(children, state.maybeComponent)\n      : 0;\n    var gen = altGenNode || genNode;\n    return (\"[\" + (children.map(function (c) { return gen(c, state); }).join(',')) + \"]\" + (normalizationType ? (\",\" + normalizationType) : ''))\n  }\n}\n\n// determine the normalization needed for the children array.\n// 0: no normalization needed\n// 1: simple normalization needed (possible 1-level deep nested array)\n// 2: full normalization needed\nfunction getNormalizationType (\n  children,\n  maybeComponent\n) {\n  var res = 0;\n  for (var i = 0; i < children.length; i++) {\n    var el = children[i];\n    if (el.type !== 1) {\n      continue\n    }\n    if (needsNormalization(el) ||\n        (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n      res = 2;\n      break\n    }\n    if (maybeComponent(el) ||\n        (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n      res = 1;\n    }\n  }\n  return res\n}\n\nfunction needsNormalization (el) {\n  return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'\n}\n\nfunction genNode (node, state) {\n  if (node.type === 1) {\n    return genElement(node, state)\n  } if (node.type === 3 && node.isComment) {\n    return genComment(node)\n  } else {\n    return genText(node)\n  }\n}\n\nfunction genText (text) {\n  return (\"_v(\" + (text.type === 2\n    ? text.expression // no need for () because already wrapped in _s()\n    : transformSpecialNewlines(JSON.stringify(text.text))) + \")\")\n}\n\nfunction genComment (comment) {\n  return (\"_e(\" + (JSON.stringify(comment.text)) + \")\")\n}\n\nfunction genSlot (el, state) {\n  var slotName = el.slotName || '\"default\"';\n  var children = genChildren(el, state);\n  var res = \"_t(\" + slotName + (children ? (\",\" + children) : '');\n  var attrs = el.attrs && (\"{\" + (el.attrs.map(function (a) { return ((camelize(a.name)) + \":\" + (a.value)); }).join(',')) + \"}\");\n  var bind$$1 = el.attrsMap['v-bind'];\n  if ((attrs || bind$$1) && !children) {\n    res += \",null\";\n  }\n  if (attrs) {\n    res += \",\" + attrs;\n  }\n  if (bind$$1) {\n    res += (attrs ? '' : ',null') + \",\" + bind$$1;\n  }\n  return res + ')'\n}\n\n// componentName is el.component, take it as argument to shun flow's pessimistic refinement\nfunction genComponent (\n  componentName,\n  el,\n  state\n) {\n  var children = el.inlineTemplate ? null : genChildren(el, state, true);\n  return (\"_c(\" + componentName + \",\" + (genData$2(el, state)) + (children ? (\",\" + children) : '') + \")\")\n}\n\nfunction genProps (props) {\n  var res = '';\n  for (var i = 0; i < props.length; i++) {\n    var prop = props[i];\n    /* istanbul ignore if */\n    {\n      res += \"\\\"\" + (prop.name) + \"\\\":\" + (transformSpecialNewlines(prop.value)) + \",\";\n    }\n  }\n  return res.slice(0, -1)\n}\n\n// #3895, #4268\nfunction transformSpecialNewlines (text) {\n  return text\n    .replace(/\\u2028/g, '\\\\u2028')\n    .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/*  */\n\n// these keywords should not appear inside expressions, but operators like\n// typeof, instanceof and in are allowed\nvar prohibitedKeywordRE = new RegExp('\\\\b' + (\n  'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n  'super,throw,while,yield,delete,export,import,return,switch,default,' +\n  'extends,finally,continue,debugger,function,arguments'\n).split(',').join('\\\\b|\\\\b') + '\\\\b');\n\n// these unary operators should not be used as property/method names\nvar unaryOperatorsRE = new RegExp('\\\\b' + (\n  'delete,typeof,void'\n).split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') + '\\\\s*\\\\([^\\\\)]*\\\\)');\n\n// strip strings in expressions\nvar stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n\n// detect problematic expressions in a template\nfunction detectErrors (ast) {\n  var errors = [];\n  if (ast) {\n    checkNode(ast, errors);\n  }\n  return errors\n}\n\nfunction checkNode (node, errors) {\n  if (node.type === 1) {\n    for (var name in node.attrsMap) {\n      if (dirRE.test(name)) {\n        var value = node.attrsMap[name];\n        if (value) {\n          if (name === 'v-for') {\n            checkFor(node, (\"v-for=\\\"\" + value + \"\\\"\"), errors);\n          } else if (onRE.test(name)) {\n            checkEvent(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n          } else {\n            checkExpression(value, (name + \"=\\\"\" + value + \"\\\"\"), errors);\n          }\n        }\n      }\n    }\n    if (node.children) {\n      for (var i = 0; i < node.children.length; i++) {\n        checkNode(node.children[i], errors);\n      }\n    }\n  } else if (node.type === 2) {\n    checkExpression(node.expression, node.text, errors);\n  }\n}\n\nfunction checkEvent (exp, text, errors) {\n  var stipped = exp.replace(stripStringRE, '');\n  var keywordMatch = stipped.match(unaryOperatorsRE);\n  if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {\n    errors.push(\n      \"avoid using JavaScript unary operator as property name: \" +\n      \"\\\"\" + (keywordMatch[0]) + \"\\\" in expression \" + (text.trim())\n    );\n  }\n  checkExpression(exp, text, errors);\n}\n\nfunction checkFor (node, text, errors) {\n  checkExpression(node.for || '', text, errors);\n  checkIdentifier(node.alias, 'v-for alias', text, errors);\n  checkIdentifier(node.iterator1, 'v-for iterator', text, errors);\n  checkIdentifier(node.iterator2, 'v-for iterator', text, errors);\n}\n\nfunction checkIdentifier (\n  ident,\n  type,\n  text,\n  errors\n) {\n  if (typeof ident === 'string') {\n    try {\n      new Function((\"var \" + ident + \"=_\"));\n    } catch (e) {\n      errors.push((\"invalid \" + type + \" \\\"\" + ident + \"\\\" in expression: \" + (text.trim())));\n    }\n  }\n}\n\nfunction checkExpression (exp, text, errors) {\n  try {\n    new Function((\"return \" + exp));\n  } catch (e) {\n    var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);\n    if (keywordMatch) {\n      errors.push(\n        \"avoid using JavaScript keyword as property name: \" +\n        \"\\\"\" + (keywordMatch[0]) + \"\\\"\\n  Raw expression: \" + (text.trim())\n      );\n    } else {\n      errors.push(\n        \"invalid expression: \" + (e.message) + \" in\\n\\n\" +\n        \"    \" + exp + \"\\n\\n\" +\n        \"  Raw expression: \" + (text.trim()) + \"\\n\"\n      );\n    }\n  }\n}\n\n/*  */\n\nfunction createFunction (code, errors) {\n  try {\n    return new Function(code)\n  } catch (err) {\n    errors.push({ err: err, code: code });\n    return noop\n  }\n}\n\nfunction createCompileToFunctionFn (compile) {\n  var cache = Object.create(null);\n\n  return function compileToFunctions (\n    template,\n    options,\n    vm\n  ) {\n    options = extend({}, options);\n    var warn$$1 = options.warn || warn;\n    delete options.warn;\n\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production') {\n      // detect possible CSP restriction\n      try {\n        new Function('return 1');\n      } catch (e) {\n        if (e.toString().match(/unsafe-eval|CSP/)) {\n          warn$$1(\n            'It seems you are using the standalone build of Vue.js in an ' +\n            'environment with Content Security Policy that prohibits unsafe-eval. ' +\n            'The template compiler cannot work in this environment. Consider ' +\n            'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n            'templates into render functions.'\n          );\n        }\n      }\n    }\n\n    // check cache\n    var key = options.delimiters\n      ? String(options.delimiters) + template\n      : template;\n    if (cache[key]) {\n      return cache[key]\n    }\n\n    // compile\n    var compiled = compile(template, options);\n\n    // check compilation errors/tips\n    if (process.env.NODE_ENV !== 'production') {\n      if (compiled.errors && compiled.errors.length) {\n        warn$$1(\n          \"Error compiling template:\\n\\n\" + template + \"\\n\\n\" +\n          compiled.errors.map(function (e) { return (\"- \" + e); }).join('\\n') + '\\n',\n          vm\n        );\n      }\n      if (compiled.tips && compiled.tips.length) {\n        compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n      }\n    }\n\n    // turn code into functions\n    var res = {};\n    var fnGenErrors = [];\n    res.render = createFunction(compiled.render, fnGenErrors);\n    res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n      return createFunction(code, fnGenErrors)\n    });\n\n    // check function generation errors.\n    // this should only happen if there is a bug in the compiler itself.\n    // mostly for codegen development use\n    /* istanbul ignore if */\n    if (process.env.NODE_ENV !== 'production') {\n      if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n        warn$$1(\n          \"Failed to generate render function:\\n\\n\" +\n          fnGenErrors.map(function (ref) {\n            var err = ref.err;\n            var code = ref.code;\n\n            return ((err.toString()) + \" in\\n\\n\" + code + \"\\n\");\n        }).join('\\n'),\n          vm\n        );\n      }\n    }\n\n    return (cache[key] = res)\n  }\n}\n\n/*  */\n\nfunction createCompilerCreator (baseCompile) {\n  return function createCompiler (baseOptions) {\n    function compile (\n      template,\n      options\n    ) {\n      var finalOptions = Object.create(baseOptions);\n      var errors = [];\n      var tips = [];\n      finalOptions.warn = function (msg, tip) {\n        (tip ? tips : errors).push(msg);\n      };\n\n      if (options) {\n        // merge custom modules\n        if (options.modules) {\n          finalOptions.modules =\n            (baseOptions.modules || []).concat(options.modules);\n        }\n        // merge custom directives\n        if (options.directives) {\n          finalOptions.directives = extend(\n            Object.create(baseOptions.directives || null),\n            options.directives\n          );\n        }\n        // copy other options\n        for (var key in options) {\n          if (key !== 'modules' && key !== 'directives') {\n            finalOptions[key] = options[key];\n          }\n        }\n      }\n\n      var compiled = baseCompile(template, finalOptions);\n      if (process.env.NODE_ENV !== 'production') {\n        errors.push.apply(errors, detectErrors(compiled.ast));\n      }\n      compiled.errors = errors;\n      compiled.tips = tips;\n      return compiled\n    }\n\n    return {\n      compile: compile,\n      compileToFunctions: createCompileToFunctionFn(compile)\n    }\n  }\n}\n\n/*  */\n\n// `createCompilerCreator` allows creating compilers that use alternative\n// parser/optimizer/codegen, e.g the SSR optimizing compiler.\n// Here we just export a default compiler using the default parts.\nvar createCompiler = createCompilerCreator(function baseCompile (\n  template,\n  options\n) {\n  var ast = parse(template.trim(), options);\n  if (options.optimize !== false) {\n    optimize(ast, options);\n  }\n  var code = generate(ast, options);\n  return {\n    ast: ast,\n    render: code.render,\n    staticRenderFns: code.staticRenderFns\n  }\n});\n\n/*  */\n\nvar ref$1 = createCompiler(baseOptions);\nvar compileToFunctions = ref$1.compileToFunctions;\n\n/*  */\n\n// check whether current browser encodes a char inside attribute values\nvar div;\nfunction getShouldDecode (href) {\n  div = div || document.createElement('div');\n  div.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\n  return div.innerHTML.indexOf('&#10;') > 0\n}\n\n// #3663: IE encodes newlines inside attribute values while other browsers don't\nvar shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n// #6828: chrome encodes content in a[href]\nvar shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;\n\n/*  */\n\nvar idToTemplate = cached(function (id) {\n  var el = query(id);\n  return el && el.innerHTML\n});\n\nvar mount = Vue.prototype.$mount;\nVue.prototype.$mount = function (\n  el,\n  hydrating\n) {\n  el = el && query(el);\n\n  /* istanbul ignore if */\n  if (el === document.body || el === document.documentElement) {\n    process.env.NODE_ENV !== 'production' && warn(\n      \"Do not mount Vue to <html> or <body> - mount to normal elements instead.\"\n    );\n    return this\n  }\n\n  var options = this.$options;\n  // resolve template/el and convert to render function\n  if (!options.render) {\n    var template = options.template;\n    if (template) {\n      if (typeof template === 'string') {\n        if (template.charAt(0) === '#') {\n          template = idToTemplate(template);\n          /* istanbul ignore if */\n          if (process.env.NODE_ENV !== 'production' && !template) {\n            warn(\n              (\"Template element not found or is empty: \" + (options.template)),\n              this\n            );\n          }\n        }\n      } else if (template.nodeType) {\n        template = template.innerHTML;\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          warn('invalid template option:' + template, this);\n        }\n        return this\n      }\n    } else if (el) {\n      template = getOuterHTML(el);\n    }\n    if (template) {\n      /* istanbul ignore if */\n      if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n        mark('compile');\n      }\n\n      var ref = compileToFunctions(template, {\n        shouldDecodeNewlines: shouldDecodeNewlines,\n        shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n        delimiters: options.delimiters,\n        comments: options.comments\n      }, this);\n      var render = ref.render;\n      var staticRenderFns = ref.staticRenderFns;\n      options.render = render;\n      options.staticRenderFns = staticRenderFns;\n\n      /* istanbul ignore if */\n      if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n        mark('compile end');\n        measure((\"vue \" + (this._name) + \" compile\"), 'compile', 'compile end');\n      }\n    }\n  }\n  return mount.call(this, el, hydrating)\n};\n\n/**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\nfunction getOuterHTML (el) {\n  if (el.outerHTML) {\n    return el.outerHTML\n  } else {\n    var container = document.createElement('div');\n    container.appendChild(el.cloneNode(true));\n    return container.innerHTML\n  }\n}\n\nVue.compile = compileToFunctions;\n\nexport default Vue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue@2.5.17@vue/dist/vue.esm.js\n// module id = IvJb\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (fn) {\n  return function () {\n    var gen = fn.apply(this, arguments);\n    return new _promise2.default(function (resolve, reject) {\n      function step(key, arg) {\n        try {\n          var info = gen[key](arg);\n          var value = info.value;\n        } catch (error) {\n          reject(error);\n          return;\n        }\n\n        if (info.done) {\n          resolve(value);\n        } else {\n          return _promise2.default.resolve(value).then(function (value) {\n            step(\"next\", value);\n          }, function (err) {\n            step(\"throw\", err);\n          });\n        }\n      }\n\n      return step(\"next\");\n    });\n  };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/asyncToGenerator.js\n// module id = J0Oq\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_to-primitive.js\n// module id = J35F\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar aria = aria || {};\n\naria.Utils = aria.Utils || {};\n\n/**\n * @desc Set focus on descendant nodes until the first focusable element is\n *       found.\n * @param element\n *          DOM node for which to find the first focusable descendant.\n * @returns\n *  true if a focusable element is found and focus is set.\n */\naria.Utils.focusFirstDescendant = function (element) {\n  for (var i = 0; i < element.childNodes.length; i++) {\n    var child = element.childNodes[i];\n    if (aria.Utils.attemptFocus(child) || aria.Utils.focusFirstDescendant(child)) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * @desc Find the last descendant node that is focusable.\n * @param element\n *          DOM node for which to find the last focusable descendant.\n * @returns\n *  true if a focusable element is found and focus is set.\n */\n\naria.Utils.focusLastDescendant = function (element) {\n  for (var i = element.childNodes.length - 1; i >= 0; i--) {\n    var child = element.childNodes[i];\n    if (aria.Utils.attemptFocus(child) || aria.Utils.focusLastDescendant(child)) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * @desc Set Attempt to set focus on the current node.\n * @param element\n *          The node to attempt to focus on.\n * @returns\n *  true if element is focused.\n */\naria.Utils.attemptFocus = function (element) {\n  if (!aria.Utils.isFocusable(element)) {\n    return false;\n  }\n  aria.Utils.IgnoreUtilFocusChanges = true;\n  try {\n    element.focus();\n  } catch (e) {}\n  aria.Utils.IgnoreUtilFocusChanges = false;\n  return document.activeElement === element;\n};\n\naria.Utils.isFocusable = function (element) {\n  if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute('tabIndex') !== null) {\n    return true;\n  }\n\n  if (element.disabled) {\n    return false;\n  }\n\n  switch (element.nodeName) {\n    case 'A':\n      return !!element.href && element.rel !== 'ignore';\n    case 'INPUT':\n      return element.type !== 'hidden' && element.type !== 'file';\n    case 'BUTTON':\n    case 'SELECT':\n    case 'TEXTAREA':\n      return true;\n    default:\n      return false;\n  }\n};\n\n/**\n * 瑙﹀彂涓�涓簨浠禱n * mouseenter, mouseleave, mouseover, keyup, change, click 绛塡n * @param  {Element} elm\n * @param  {String} name\n * @param  {*} opts\n */\naria.Utils.triggerEvent = function (elm, name) {\n  var eventName = void 0;\n\n  if (/^mouse|click/.test(name)) {\n    eventName = 'MouseEvents';\n  } else if (/^key/.test(name)) {\n    eventName = 'KeyboardEvent';\n  } else {\n    eventName = 'HTMLEvents';\n  }\n  var evt = document.createEvent(eventName);\n\n  for (var _len = arguments.length, opts = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    opts[_key - 2] = arguments[_key];\n  }\n\n  evt.initEvent.apply(evt, [name].concat(opts));\n  elm.dispatchEvent ? elm.dispatchEvent(evt) : elm.fireEvent('on' + name, evt);\n\n  return elm;\n};\n\naria.Utils.keys = {\n  tab: 9,\n  enter: 13,\n  space: 32,\n  left: 37,\n  up: 38,\n  right: 39,\n  down: 40\n};\n\nexports.default = aria.Utils;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/aria-utils.js\n// module id = J3mc\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar isArray = _util.isArray;\nvar isObject = _util.isObject;\n\nvar compatStyle = require(\"./helper/compatStyle\");\n\nvar _model = require(\"../util/model\");\n\nvar normalizeToArray = _model.normalizeToArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Compatitable with 2.0\nfunction get(opt, path) {\n  path = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < path.length; i++) {\n    obj = obj && obj[path[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  path = path.split(',');\n  var obj = opt;\n  var key;\n\n  for (var i = 0; i < path.length - 1; i++) {\n    key = path[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[path[i]] == null) {\n    obj[path[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\n\nfunction _default(option, isTheme) {\n  compatStyle(option, isTheme); // Make sure series array for model initialization.\n\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n      }\n    }\n\n    if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.normal.color', pointerColor);\n    }\n\n    compatLayoutProperties(seriesOpt);\n  }); // dataRange has changed to visualMap\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/preprocessor/backwardCompat.js\n// module id = JAl0\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_is-array.js\n// module id = JBI7\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar visualDefault = require(\"../../visual/visualDefault\");\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar numberUtil = require(\"../../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\nvar noop = zrUtil.noop;\nvar VisualMapModel = echarts.extendComponentModel({\n  type: 'visualMap',\n  dependencies: ['series'],\n\n  /**\n   * @readOnly\n   * @type {Array.<string>}\n   */\n  stateList: ['inRange', 'outOfRange'],\n\n  /**\n   * @readOnly\n   * @type {Array.<string>}\n   */\n  replacableOptionKeys: ['inRange', 'outOfRange', 'target', 'controller', 'color'],\n\n  /**\n   * [lowerBound, upperBound]\n   *\n   * @readOnly\n   * @type {Array.<number>}\n   */\n  dataBound: [-Infinity, Infinity],\n\n  /**\n   * @readOnly\n   * @type {string|Object}\n   */\n  layoutMode: {\n    type: 'box',\n    ignoreSize: true\n  },\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    show: true,\n    zlevel: 0,\n    z: 4,\n    seriesIndex: 'all',\n    // 'all' or null/undefined: all series.\n    // A number or an array of number: the specified series.\n    // set min: 0, max: 200, only for campatible with ec2.\n    // In fact min max should not have default value.\n    min: 0,\n    // min value, must specified if pieces is not specified.\n    max: 200,\n    // max value, must specified if pieces is not specified.\n    dimension: null,\n    inRange: null,\n    // 'color', 'colorHue', 'colorSaturation', 'colorLightness', 'colorAlpha',\n    // 'symbol', 'symbolSize'\n    outOfRange: null,\n    // 'color', 'colorHue', 'colorSaturation',\n    // 'colorLightness', 'colorAlpha',\n    // 'symbol', 'symbolSize'\n    left: 0,\n    // 'center' 娄 'left' 娄 'right' 娄 {number} (px)\n    right: null,\n    // The same as left.\n    top: null,\n    // 'top' 娄 'bottom' 娄 'center' 娄 {number} (px)\n    bottom: 0,\n    // The same as top.\n    itemWidth: null,\n    itemHeight: null,\n    inverse: false,\n    orient: 'vertical',\n    // 'horizontal' 娄 'vertical'\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    // 鍊煎煙杈规棰滆壊\n    contentColor: '#5793f3',\n    inactiveColor: '#aaa',\n    borderWidth: 0,\n    // 鍊煎煙杈规绾垮锛屽崟浣峱x锛岄粯璁や负0锛堟棤杈规锛塡n    padding: 5,\n    // 鍊煎煙鍐呰竟璺濓紝鍗曚綅px锛岄粯璁ゅ悇鏂瑰悜鍐呰竟璺濅负5锛孿n    // 鎺ュ彈鏁扮粍鍒嗗埆璁惧畾涓婂彸涓嬪乏杈硅窛锛屽悓css\n    textGap: 10,\n    //\n    precision: 0,\n    // 灏忔暟绮惧害锛岄粯璁や负0锛屾棤灏忔暟鐐筡n    color: null,\n    //棰滆壊锛坉eprecated锛屽吋瀹筫c2锛岄『搴忓悓pieces锛屼笉鍚屼簬inRange/outOfRange锛塡n    formatter: null,\n    text: null,\n    // 鏂囨湰锛屽['楂�', '浣�']锛屽吋瀹筫c2锛宼ext[0]瀵瑰簲楂樺�硷紝text[1]瀵瑰簲浣庡�糪n    textStyle: {\n      color: '#333' // 鍊煎煙鏂囧瓧棰滆壊\n\n    }\n  },\n\n  /**\n   * @protected\n   */\n  init: function (option, parentModel, ecModel) {\n    /**\n     * @private\n     * @type {Array.<number>}\n     */\n    this._dataExtent;\n    /**\n     * @readOnly\n     */\n\n    this.targetVisuals = {};\n    /**\n     * @readOnly\n     */\n\n    this.controllerVisuals = {};\n    /**\n     * @readOnly\n     */\n\n    this.textStyleModel;\n    /**\n     * [width, height]\n     * @readOnly\n     * @type {Array.<number>}\n     */\n\n    this.itemSize;\n    this.mergeDefaultAndTheme(option, ecModel);\n  },\n\n  /**\n   * @protected\n   */\n  optionUpdated: function (newOption, isInit) {\n    var thisOption = this.option; // FIXME\n    // necessary?\n    // Disable realtime view update if canvas is not supported.\n\n    if (!env.canvasSupported) {\n      thisOption.realtime = false;\n    }\n\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n    this.textStyleModel = this.getModel('textStyle');\n    this.resetItemSize();\n    this.completeVisualOption();\n  },\n\n  /**\n   * @protected\n   */\n  resetVisual: function (supplementVisualOption) {\n    var stateList = this.stateList;\n    supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n    this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n    this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n  },\n\n  /**\n   * @protected\n   * @return {Array.<number>} An array of series indices.\n   */\n  getTargetSeriesIndices: function () {\n    var optionSeriesIndex = this.option.seriesIndex;\n    var seriesIndices = [];\n\n    if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n      this.ecModel.eachSeries(function (seriesModel, index) {\n        seriesIndices.push(index);\n      });\n    } else {\n      seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n    }\n\n    return seriesIndices;\n  },\n\n  /**\n   * @public\n   */\n  eachTargetSeries: function (callback, context) {\n    zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n      callback.call(context, this.ecModel.getSeriesByIndex(seriesIndex));\n    }, this);\n  },\n\n  /**\n   * @pubilc\n   */\n  isTargetSeries: function (seriesModel) {\n    var is = false;\n    this.eachTargetSeries(function (model) {\n      model === seriesModel && (is = true);\n    });\n    return is;\n  },\n\n  /**\n   * @example\n   * this.formatValueText(someVal); // format single numeric value to text.\n   * this.formatValueText(someVal, true); // format single category value to text.\n   * this.formatValueText([min, max]); // format numeric min-max to text.\n   * this.formatValueText([this.dataBound[0], max]); // using data lower bound.\n   * this.formatValueText([min, this.dataBound[1]]); // using data upper bound.\n   *\n   * @param {number|Array.<number>} value Real value, or this.dataBound[0 or 1].\n   * @param {boolean} [isCategory=false] Only available when value is number.\n   * @param {Array.<string>} edgeSymbols Open-close symbol when value is interval.\n   * @return {string}\n   * @protected\n   */\n  formatValueText: function (value, isCategory, edgeSymbols) {\n    var option = this.option;\n    var precision = option.precision;\n    var dataBound = this.dataBound;\n    var formatter = option.formatter;\n    var isMinMax;\n    var textValue;\n    edgeSymbols = edgeSymbols || ['<', '>'];\n\n    if (zrUtil.isArray(value)) {\n      value = value.slice();\n      isMinMax = true;\n    }\n\n    textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n    if (zrUtil.isString(formatter)) {\n      return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n    } else if (zrUtil.isFunction(formatter)) {\n      return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n    }\n\n    if (isMinMax) {\n      if (value[0] === dataBound[0]) {\n        return edgeSymbols[0] + ' ' + textValue[1];\n      } else if (value[1] === dataBound[1]) {\n        return edgeSymbols[1] + ' ' + textValue[0];\n      } else {\n        return textValue[0] + ' - ' + textValue[1];\n      }\n    } else {\n      // Format single value (includes category case).\n      return textValue;\n    }\n\n    function toFixed(val) {\n      return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n    }\n  },\n\n  /**\n   * @protected\n   */\n  resetExtent: function () {\n    var thisOption = this.option; // Can not calculate data extent by data here.\n    // Because series and data may be modified in processing stage.\n    // So we do not support the feature \"auto min/max\".\n\n    var extent = asc([thisOption.min, thisOption.max]);\n    this._dataExtent = extent;\n  },\n\n  /**\n   * @public\n   * @param {module:echarts/data/List} list\n   * @return {string} Concrete dimention. If return null/undefined,\n   *                  no dimension used.\n   */\n  getDataDimension: function (list) {\n    var optDim = this.option.dimension;\n    var listDimensions = list.dimensions;\n\n    if (optDim == null && !listDimensions.length) {\n      return;\n    }\n\n    if (optDim != null) {\n      return list.getDimension(optDim);\n    }\n\n    var dimNames = list.dimensions;\n\n    for (var i = dimNames.length - 1; i >= 0; i--) {\n      var dimName = dimNames[i];\n      var dimInfo = list.getDimensionInfo(dimName);\n\n      if (!dimInfo.isCalculationCoord) {\n        return dimName;\n      }\n    }\n  },\n\n  /**\n   * @public\n   * @override\n   */\n  getExtent: function () {\n    return this._dataExtent.slice();\n  },\n\n  /**\n   * @protected\n   */\n  completeVisualOption: function () {\n    var ecModel = this.ecModel;\n    var thisOption = this.option;\n    var base = {\n      inRange: thisOption.inRange,\n      outOfRange: thisOption.outOfRange\n    };\n    var target = thisOption.target || (thisOption.target = {});\n    var controller = thisOption.controller || (thisOption.controller = {});\n    zrUtil.merge(target, base); // Do not override\n\n    zrUtil.merge(controller, base); // Do not override\n\n    var isCategory = this.isCategory();\n    completeSingle.call(this, target);\n    completeSingle.call(this, controller);\n    completeInactive.call(this, target, 'inRange', 'outOfRange'); // completeInactive.call(this, target, 'outOfRange', 'inRange');\n\n    completeController.call(this, controller);\n\n    function completeSingle(base) {\n      // Compatible with ec2 dataRange.color.\n      // The mapping order of dataRange.color is: [high value, ..., low value]\n      // whereas inRange.color and outOfRange.color is [low value, ..., high value]\n      // Notice: ec2 has no inverse.\n      if (isArray(thisOption.color) // If there has been inRange: {symbol: ...}, adding color is a mistake.\n      // So adding color only when no inRange defined.\n      && !base.inRange) {\n        base.inRange = {\n          color: thisOption.color.slice().reverse()\n        };\n      } // Compatible with previous logic, always give a defautl color, otherwise\n      // simple config with no inRange and outOfRange will not work.\n      // Originally we use visualMap.color as the default color, but setOption at\n      // the second time the default color will be erased. So we change to use\n      // constant DEFAULT_COLOR.\n      // If user do not want the defualt color, set inRange: {color: null}.\n\n\n      base.inRange = base.inRange || {\n        color: ecModel.get('gradientColor')\n      }; // If using shortcut like: {inRange: 'symbol'}, complete default value.\n\n      each(this.stateList, function (state) {\n        var visualType = base[state];\n\n        if (zrUtil.isString(visualType)) {\n          var defa = visualDefault.get(visualType, 'active', isCategory);\n\n          if (defa) {\n            base[state] = {};\n            base[state][visualType] = defa;\n          } else {\n            // Mark as not specified.\n            delete base[state];\n          }\n        }\n      }, this);\n    }\n\n    function completeInactive(base, stateExist, stateAbsent) {\n      var optExist = base[stateExist];\n      var optAbsent = base[stateAbsent];\n\n      if (optExist && !optAbsent) {\n        optAbsent = base[stateAbsent] = {};\n        each(optExist, function (visualData, visualType) {\n          if (!VisualMapping.isValidType(visualType)) {\n            return;\n          }\n\n          var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n          if (defa != null) {\n            optAbsent[visualType] = defa; // Compatibable with ec2:\n            // Only inactive color to rgba(0,0,0,0) can not\n            // make label transparent, so use opacity also.\n\n            if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n              optAbsent.opacity = [0, 0];\n            }\n          }\n        });\n      }\n    }\n\n    function completeController(controller) {\n      var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n      var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n      var inactiveColor = this.get('inactiveColor');\n      each(this.stateList, function (state) {\n        var itemSize = this.itemSize;\n        var visuals = controller[state]; // Set inactive color for controller if no other color\n        // attr (like colorAlpha) specified.\n\n        if (!visuals) {\n          visuals = controller[state] = {\n            color: isCategory ? inactiveColor : [inactiveColor]\n          };\n        } // Consistent symbol and symbolSize if not specified.\n\n\n        if (visuals.symbol == null) {\n          visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? 'roundRect' : ['roundRect']);\n        }\n\n        if (visuals.symbolSize == null) {\n          visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n        } // Filter square and none.\n\n\n        visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n          return symbol === 'none' || symbol === 'square' ? 'roundRect' : symbol;\n        }); // Normalize symbolSize\n\n        var symbolSize = visuals.symbolSize;\n\n        if (symbolSize != null) {\n          var max = -Infinity; // symbolSize can be object when categories defined.\n\n          eachVisual(symbolSize, function (value) {\n            value > max && (max = value);\n          });\n          visuals.symbolSize = mapVisual(symbolSize, function (value) {\n            return linearMap(value, [0, max], [0, itemSize[0]], true);\n          });\n        }\n      }, this);\n    }\n  },\n\n  /**\n   * @protected\n   */\n  resetItemSize: function () {\n    this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n  },\n\n  /**\n   * @public\n   */\n  isCategory: function () {\n    return !!this.option.categories;\n  },\n\n  /**\n   * @public\n   * @abstract\n   */\n  setSelected: noop,\n\n  /**\n   * @public\n   * @abstract\n   * @param {*|module:echarts/data/List} valueOrData\n   * @param {number} dataIndex\n   * @return {string} state See this.stateList\n   */\n  getValueState: noop,\n\n  /**\n   * FIXME\n   * Do not publish to thirt-part-dev temporarily\n   * util the interface is stable. (Should it return\n   * a function but not visual meta?)\n   *\n   * @pubilc\n   * @abstract\n   * @param {Function} getColorVisual\n   *        params: value, valueState\n   *        return: color\n   * @return {Object} visualMeta\n   *        should includes {stops, outerColors}\n   *        outerColor means [colorBeyondMinValue, colorBeyondMaxValue]\n   */\n  getVisualMeta: noop\n});\nvar _default = VisualMapModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/VisualMapModel.js\n// module id = JBj0\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n  return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/object/define-property.js\n// module id = JhHb\n// module chunks = 0","var BaseBarSeries = require(\"./BaseBarSeries\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PictorialBarSeries = BaseBarSeries.extend({\n  type: 'series.pictorialBar',\n  dependencies: ['grid'],\n  defaultOption: {\n    symbol: 'circle',\n    // Customized bar shape\n    symbolSize: null,\n    // Can be ['100%', '100%'], null means auto.\n    symbolRotate: null,\n    symbolPosition: null,\n    // 'start' or 'end' or 'center', null means auto.\n    symbolOffset: null,\n    symbolMargin: null,\n    // start margin and end margin. Can be a number or a percent string.\n    // Auto margin by defualt.\n    symbolRepeat: false,\n    // false/null/undefined, means no repeat.\n    // Can be true, means auto calculate repeat times and cut by data.\n    // Can be a number, specifies repeat times, and do not cut by data.\n    // Can be 'fixed', means auto calculate repeat times but do not cut by data.\n    symbolRepeatDirection: 'end',\n    // 'end' means from 'start' to 'end'.\n    symbolClip: false,\n    symbolBoundingData: null,\n    // Can be 60 or -40 or [-40, 60]\n    symbolPatternSize: 400,\n    // 400 * 400 px\n    barGap: '-100%',\n    // In most case, overlap is needed.\n    // z can be set in data item, which is z2 actually.\n    // Disable progressive\n    progressive: 0,\n    hoverAnimation: false // Open only when needed.\n\n  },\n  getInitialData: function (option) {\n    // Disable stack.\n    option.stack = null;\n    return PictorialBarSeries.superApply(this, 'getInitialData', arguments);\n  }\n});\nvar _default = PictorialBarSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/PictorialBarSeries.js\n// module id = JiCB\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx); // If in any legend component the status is not selected.\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/processor/dataFilter.js\n// module id = Jkhp\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _dom = require('element-ui/lib/utils/dom');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Transition = function () {\n  function Transition() {\n    _classCallCheck(this, Transition);\n  }\n\n  Transition.prototype.beforeEnter = function beforeEnter(el) {\n    (0, _dom.addClass)(el, 'collapse-transition');\n    if (!el.dataset) el.dataset = {};\n\n    el.dataset.oldPaddingTop = el.style.paddingTop;\n    el.dataset.oldPaddingBottom = el.style.paddingBottom;\n\n    el.style.height = '0';\n    el.style.paddingTop = 0;\n    el.style.paddingBottom = 0;\n  };\n\n  Transition.prototype.enter = function enter(el) {\n    el.dataset.oldOverflow = el.style.overflow;\n    if (el.scrollHeight !== 0) {\n      el.style.height = el.scrollHeight + 'px';\n      el.style.paddingTop = el.dataset.oldPaddingTop;\n      el.style.paddingBottom = el.dataset.oldPaddingBottom;\n    } else {\n      el.style.height = '';\n      el.style.paddingTop = el.dataset.oldPaddingTop;\n      el.style.paddingBottom = el.dataset.oldPaddingBottom;\n    }\n\n    el.style.overflow = 'hidden';\n  };\n\n  Transition.prototype.afterEnter = function afterEnter(el) {\n    // for safari: remove class then reset height is necessary\n    (0, _dom.removeClass)(el, 'collapse-transition');\n    el.style.height = '';\n    el.style.overflow = el.dataset.oldOverflow;\n  };\n\n  Transition.prototype.beforeLeave = function beforeLeave(el) {\n    if (!el.dataset) el.dataset = {};\n    el.dataset.oldPaddingTop = el.style.paddingTop;\n    el.dataset.oldPaddingBottom = el.style.paddingBottom;\n    el.dataset.oldOverflow = el.style.overflow;\n\n    el.style.height = el.scrollHeight + 'px';\n    el.style.overflow = 'hidden';\n  };\n\n  Transition.prototype.leave = function leave(el) {\n    if (el.scrollHeight !== 0) {\n      // for safari: add class after set height, or it will jump to zero height suddenly, weired\n      (0, _dom.addClass)(el, 'collapse-transition');\n      el.style.height = 0;\n      el.style.paddingTop = 0;\n      el.style.paddingBottom = 0;\n    }\n  };\n\n  Transition.prototype.afterLeave = function afterLeave(el) {\n    (0, _dom.removeClass)(el, 'collapse-transition');\n    el.style.height = '';\n    el.style.overflow = el.dataset.oldOverflow;\n    el.style.paddingTop = el.dataset.oldPaddingTop;\n    el.style.paddingBottom = el.dataset.oldPaddingBottom;\n  };\n\n  return Transition;\n}();\n\nexports.default = {\n  name: 'ElCollapseTransition',\n  functional: true,\n  render: function render(h, _ref) {\n    var children = _ref.children;\n\n    var data = {\n      on: new Transition()\n    };\n\n    return h('transition', data, children);\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/transitions/collapse-transition.js\n// module id = Jlbz\n// module chunks = 0","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  // Note: status is not exposed by XDomainRequest\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/core/settle.js\n// module id = Jo3n\n// module chunks = 0","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = utils.merge({\n      url: arguments[0]\n    }, arguments[1]);\n  }\n\n  config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n  config.method = config.method.toLowerCase();\n\n  // Hook up interceptors middleware\n  var chain = [dispatchRequest, undefined];\n  var promise = Promise.resolve(config);\n\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    chain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    chain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  while (chain.length) {\n    promise = promise.then(chain.shift(), chain.shift());\n  }\n\n  return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(utils.merge(config || {}, {\n      method: method,\n      url: url\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(utils.merge(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/core/Axios.js\n// module id = JotW\n// module chunks = 0","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/cancel/isCancel.js\n// module id = K3AH\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es7.symbol.observable.js\n// module id = KGKV\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// (1) The code `if (__DEV__) ...` can be removed by build tool.\n// (2) If intend to use `__DEV__`, this module should be imported. Use a global\n// variable `__DEV__` may cause that miss the declaration (see #6535), or the\n// declaration is behind of the using position (for example in `Model.extent`,\n// And tools like rollup can not analysis the dependency if not import).\nvar dev; // In browser\n\nif (typeof window !== 'undefined') {\n  dev = window.__DEV__;\n} // In node\nelse if (typeof global !== 'undefined') {\n    dev = global.__DEV__;\n  }\n\nif (typeof dev === 'undefined') {\n  dev = true;\n}\n\nvar __DEV__ = dev;\nexports.__DEV__ = __DEV__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/config.js\n// module id = KJ1c\n// module chunks = 0","var Clipboard = require('clipboard/dist/clipboard.min.js') // FIXME: workaround for browserify\n\nvar VueClipboardConfig = {\n  autoSetContainer: false\n};\n\nvar VueClipboard = {\n  install: function (Vue) {\n    Vue.prototype.$clipboardConfig = VueClipboardConfig;\n    Vue.prototype.$copyText = function (text, container) {\n      return new Promise(function (resolve, reject) {\n        var fake_el = document.createElement('button');\n        var clipboard = new Clipboard(fake_el, {\n          text: function () { return text },\n          action: function () { return 'copy' },\n          container: typeof container === 'object' ? container : document.body\n        });\n        clipboard.on('success', function (e) {\n          clipboard.destroy();\n          resolve(e);\n        });\n        clipboard.on('error', function (e) {\n          clipboard.destroy();\n          reject(e);\n        });\n        fake_el.click();\n      });\n    };\n\n    Vue.directive('clipboard', {\n      bind: function (el, binding, vnode) {\n        if(binding.arg === 'success') {\n          el._v_clipboard_success = binding.value\n        } else if(binding.arg === 'error') {\n          el._v_clipboard_error = binding.value\n        } else {\n          var clipboard = new Clipboard(el, {\n            text: function () { return binding.value },\n            action: function () { return binding.arg === 'cut' ? 'cut' : 'copy' },\n            container: VueClipboardConfig.autoSetContainer ? el : undefined\n          })\n          clipboard.on('success', function (e) {\n            var callback = el._v_clipboard_success\n            callback && callback(e)\n          })\n          clipboard.on('error', function (e) {\n            var callback = el._v_clipboard_error\n            callback && callback(e)\n          })\n          el._v_clipboard = clipboard\n        }\n      },\n      update: function (el, binding) {\n        if(binding.arg === 'success') {\n          el._v_clipboard_success = binding.value\n        } else if(binding.arg === 'error') {\n          el._v_clipboard_error = binding.value\n        } else {\n          el._v_clipboard.text = function () { return binding.value }\n          el._v_clipboard.action = function () { return binding.arg === 'cut' ? 'cut' : 'copy' }\n        }\n      },\n      unbind: function (el, binding) {\n        if(binding.arg === 'success') {\n          delete el._v_clipboard_success\n        } else if(binding.arg === 'error') {\n          delete el._v_clipboard_error\n        } else {\n          el._v_clipboard.destroy()\n          delete el._v_clipboard\n        }\n      }\n    })\n  },\n  config: VueClipboardConfig\n}\n\nif (typeof exports == \"object\") {\n  module.exports = VueClipboard\n} else if (typeof define == \"function\" && define.amd) {\n  define([], function() {\n    return VueClipboard\n  })\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-clipboard2@0.2.1@vue-clipboard2/vue-clipboard.js\n// module id = KPKd\n// module chunks = 0","/**\n * echarts璁惧鐜璇嗗埆\n *\n * @desc echarts鍩轰簬Canvas锛岀函Javascript鍥捐〃搴擄紝鎻愪緵鐩磋锛岀敓鍔紝鍙氦浜掞紝鍙釜鎬у寲瀹氬埗鐨勬暟鎹粺璁″浘琛ㄣ�俓n * @author firede[firede@firede.us]\n * @desc thanks zepto.\n */\nvar env = {};\n\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n  // In Weixin Application\n  env = {\n    browser: {},\n    os: {},\n    node: false,\n    wxa: true,\n    // Weixin Application\n    canvasSupported: true,\n    svgSupported: false,\n    touchEventsSupported: true\n  };\n} else if (typeof document === 'undefined' && typeof self !== 'undefined') {\n  // In worker\n  env = {\n    browser: {},\n    os: {},\n    node: false,\n    worker: true,\n    canvasSupported: true\n  };\n} else if (typeof navigator === 'undefined') {\n  // In node\n  env = {\n    browser: {},\n    os: {},\n    node: true,\n    worker: false,\n    // Assume canvas is supported\n    canvasSupported: true,\n    svgSupported: true\n  };\n} else {\n  env = detect(navigator.userAgent);\n}\n\nvar _default = env; // Zepto.js\n// (c) 2010-2013 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\n\nfunction detect(ua) {\n  var os = {};\n  var browser = {}; // var webkit = ua.match(/Web[kK]it[\\/]{0,1}([\\d.]+)/);\n  // var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n  // var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n  // var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n  // var iphone = !ipad && ua.match(/(iPhone\\sOS)\\s([\\d_]+)/);\n  // var webos = ua.match(/(webOS|hpwOS)[\\s\\/]([\\d.]+)/);\n  // var touchpad = webos && ua.match(/TouchPad/);\n  // var kindle = ua.match(/Kindle\\/([\\d.]+)/);\n  // var silk = ua.match(/Silk\\/([\\d._]+)/);\n  // var blackberry = ua.match(/(BlackBerry).*Version\\/([\\d.]+)/);\n  // var bb10 = ua.match(/(BB10).*Version\\/([\\d.]+)/);\n  // var rimtabletos = ua.match(/(RIM\\sTablet\\sOS)\\s([\\d.]+)/);\n  // var playbook = ua.match(/PlayBook/);\n  // var chrome = ua.match(/Chrome\\/([\\d.]+)/) || ua.match(/CriOS\\/([\\d.]+)/);\n\n  var firefox = ua.match(/Firefox\\/([\\d.]+)/); // var safari = webkit && ua.match(/Mobile\\//) && !chrome;\n  // var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome;\n\n  var ie = ua.match(/MSIE\\s([\\d.]+)/) // IE 11 Trident/7.0; rv:11.0\n  || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n  var edge = ua.match(/Edge\\/([\\d.]+)/); // IE 12 and 12+\n\n  var weChat = /micromessenger/i.test(ua); // Todo: clean this up with a better OS/browser seperation:\n  // - discern (more) between multiple browsers on android\n  // - decide if kindle fire in silk mode is android or not\n  // - Firefox on Android doesn't specify the Android version\n  // - possibly devide in os, device and browser hashes\n  // if (browser.webkit = !!webkit) browser.version = webkit[1];\n  // if (android) os.android = true, os.version = android[2];\n  // if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.');\n  // if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.');\n  // if (ipod) os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n  // if (webos) os.webos = true, os.version = webos[2];\n  // if (touchpad) os.touchpad = true;\n  // if (blackberry) os.blackberry = true, os.version = blackberry[2];\n  // if (bb10) os.bb10 = true, os.version = bb10[2];\n  // if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2];\n  // if (playbook) browser.playbook = true;\n  // if (kindle) os.kindle = true, os.version = kindle[1];\n  // if (silk) browser.silk = true, browser.version = silk[1];\n  // if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true;\n  // if (chrome) browser.chrome = true, browser.version = chrome[1];\n\n  if (firefox) {\n    browser.firefox = true;\n    browser.version = firefox[1];\n  } // if (safari && (ua.match(/Safari/) || !!os.ios)) browser.safari = true;\n  // if (webview) browser.webview = true;\n\n\n  if (ie) {\n    browser.ie = true;\n    browser.version = ie[1];\n  }\n\n  if (edge) {\n    browser.edge = true;\n    browser.version = edge[1];\n  } // It is difficult to detect WeChat in Win Phone precisely, because ua can\n  // not be set on win phone. So we do not consider Win Phone.\n\n\n  if (weChat) {\n    browser.weChat = true;\n  } // os.tablet = !!(ipad || playbook || (android && !ua.match(/Mobile/)) ||\n  //     (firefox && ua.match(/Tablet/)) || (ie && !ua.match(/Phone/) && ua.match(/Touch/)));\n  // os.phone  = !!(!os.tablet && !os.ipod && (android || iphone || webos ||\n  //     (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\\/([\\d.]+)/)) ||\n  //     (firefox && ua.match(/Mobile/)) || (ie && ua.match(/Touch/))));\n\n\n  return {\n    browser: browser,\n    os: os,\n    node: false,\n    // 鍘熺敓canvas鏀寔锛屾敼鏋佺鐐逛簡\n    // canvasSupported : !(browser.ie && parseFloat(browser.version) < 9)\n    canvasSupported: !!document.createElement('canvas').getContext,\n    svgSupported: typeof SVGRect !== 'undefined',\n    // works on most browsers\n    // IE10/11 does not support touch event, and MS Edge supports them but not by\n    // default, so we dont check navigator.maxTouchPoints for them here.\n    touchEventsSupported: 'ontouchstart' in window && !browser.ie && !browser.edge,\n    // <http://caniuse.com/#search=pointer%20event>.\n    pointerEventsSupported: 'onpointerdown' in window // Firefox supports pointer but not by default, only MS browsers are reliable on pointer\n    // events currently. So we dont use that on other browsers unless tested sufficiently.\n    // Although IE 10 supports pointer event, it use old style and is different from the\n    // standard. So we exclude that. (IE 10 is hardly used on touch device)\n    && (browser.edge || browser.ie && browser.version >= 11) // passiveSupported: detectPassiveSupport()\n\n  };\n} // See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n// function detectPassiveSupport() {\n//     // Test via a getter in the options object to see if the passive property is accessed\n//     var supportsPassive = false;\n//     try {\n//         var opts = Object.defineProperty({}, 'passive', {\n//             get: function() {\n//                 supportsPassive = true;\n//             }\n//         });\n//         window.addEventListener('testPassive', function() {}, opts);\n//     } catch (e) {\n//     }\n//     return supportsPassive;\n// }\n\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/env.js\n// module id = KSHG\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: require('./_library') ? 'pure' : 'global',\n  copyright: '漏 2018 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_shared.js\n// module id = KV1y\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI = Math.PI;\n/**\n * @param {module:echarts/ExtensionAPI} api\n * @param {Object} [opts]\n * @param {string} [opts.text]\n * @param {string} [opts.color]\n * @param {string} [opts.textColor]\n * @return {module:zrender/Element}\n */\n\nfunction _default(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    color: '#c23531',\n    textColor: '#000',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    zlevel: 0\n  });\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  var arc = new graphic.Arc({\n    shape: {\n      startAngle: -PI / 2,\n      endAngle: -PI / 2 + 0.1,\n      r: 10\n    },\n    style: {\n      stroke: opts.color,\n      lineCap: 'round',\n      lineWidth: 5\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none',\n      text: opts.text,\n      textPosition: 'right',\n      textDistance: 10,\n      textFill: opts.textColor\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  arc.animateShape(true).when(1000, {\n    endAngle: PI * 3 / 2\n  }).start('circularInOut');\n  arc.animateShape(true).when(1000, {\n    startAngle: PI * 3 / 2\n  }).delay(300).start('circularInOut');\n  var group = new graphic.Group();\n  group.add(arc);\n  group.add(labelRect);\n  group.add(mask); // Inject resize\n\n  group.resize = function () {\n    var cx = api.getWidth() / 2;\n    var cy = api.getHeight() / 2;\n    arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    var r = arc.shape.r;\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/loading/default.js\n// module id = KWg/\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\n\nvar modelHelper = require(\"./modelHelper\");\n\nvar findPointFromSeries = require(\"./findPointFromSeries\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar curry = zrUtil.curry;\nvar inner = makeInner();\n/**\n * Basic logic: check all axis, if they do not demand show/highlight,\n * then hide/downplay them.\n *\n * @param {Object} coordSysAxesInfo\n * @param {Object} payload\n * @param {string} [payload.currTrigger] 'click' | 'mousemove' | 'leave'\n * @param {Array.<number>} [payload.x] x and y, which are mandatory, specify a point to\n *              trigger axisPointer and tooltip.\n * @param {Array.<number>} [payload.y] x and y, which are mandatory, specify a point to\n *              trigger axisPointer and tooltip.\n * @param {Object} [payload.seriesIndex] finder, optional, restrict target axes.\n * @param {Object} [payload.dataIndex] finder, restrict target axes.\n * @param {Object} [payload.axesInfo] finder, restrict target axes.\n *        [{\n *          axisDim: 'x'|'y'|'angle'|...,\n *          axisIndex: ...,\n *          value: ...\n *        }, ...]\n * @param {Function} [payload.dispatchAction]\n * @param {Object} [payload.tooltipOption]\n * @param {Object|Array.<number>|Function} [payload.position] Tooltip position,\n *        which can be specified in dispatchAction\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n * @return {Object} content of event obj for echarts.connect.\n */\n\nfunction _default(payload, ecModel, api) {\n  var currTrigger = payload.currTrigger;\n  var point = [payload.x, payload.y];\n  var finder = payload;\n  var dispatchAction = payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n  var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo; // Pending\n  // See #6121. But we are not able to reproduce it yet.\n\n  if (!coordSysAxesInfo) {\n    return;\n  }\n\n  if (illegalPoint(point)) {\n    // Used in the default behavior of `connection`: use the sample seriesIndex\n    // and dataIndex. And also used in the tooltipView trigger.\n    point = findPointFromSeries({\n      seriesIndex: finder.seriesIndex,\n      // Do not use dataIndexInside from other ec instance.\n      // FIXME: auto detect it?\n      dataIndex: finder.dataIndex\n    }, ecModel).point;\n  }\n\n  var isIllegalPoint = illegalPoint(point); // Axis and value can be specified when calling dispatchAction({type: 'updateAxisPointer'}).\n  // Notice: In this case, it is difficult to get the `point` (which is necessary to show\n  // tooltip, so if point is not given, we just use the point found by sample seriesIndex\n  // and dataIndex.\n\n  var inputAxesInfo = finder.axesInfo;\n  var axesInfo = coordSysAxesInfo.axesInfo;\n  var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n  var outputFinder = {};\n  var showValueMap = {};\n  var dataByCoordSys = {\n    list: [],\n    map: {}\n  };\n  var updaters = {\n    showPointer: curry(showPointer, showValueMap),\n    showTooltip: curry(showTooltip, dataByCoordSys)\n  }; // Process for triggered axes.\n\n  each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n    // If a point given, it must be contained by the coordinate system.\n    var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n    each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n      var axis = axisInfo.axis;\n      var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo); // If no inputAxesInfo, no axis is restricted.\n\n      if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n        var val = inputAxisInfo && inputAxisInfo.value;\n\n        if (val == null && !isIllegalPoint) {\n          val = axis.pointToData(point);\n        }\n\n        val != null && processOnAxis(axisInfo, val, updaters, false, outputFinder);\n      }\n    });\n  }); // Process for linked axes.\n\n  var linkTriggers = {};\n  each(axesInfo, function (tarAxisInfo, tarKey) {\n    var linkGroup = tarAxisInfo.linkGroup; // If axis has been triggered in the previous stage, it should not be triggered by link.\n\n    if (linkGroup && !showValueMap[tarKey]) {\n      each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n        var srcValItem = showValueMap[srcKey]; // If srcValItem exist, source axis is triggered, so link to target axis.\n\n        if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n          var val = srcValItem.value;\n          linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n          linkTriggers[tarAxisInfo.key] = val;\n        }\n      });\n    }\n  });\n  each(linkTriggers, function (val, tarKey) {\n    processOnAxis(axesInfo[tarKey], val, updaters, true, outputFinder);\n  });\n  updateModelActually(showValueMap, axesInfo, outputFinder);\n  dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n  dispatchHighDownActually(axesInfo, dispatchAction, api);\n  return outputFinder;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, dontSnap, outputFinder) {\n  var axis = axisInfo.axis;\n\n  if (axis.scale.isBlank() || !axis.containData(newValue)) {\n    return;\n  }\n\n  if (!axisInfo.involveSeries) {\n    updaters.showPointer(axisInfo, newValue);\n    return;\n  } // Heavy calculation. So put it after axis.containData checking.\n\n\n  var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n  var payloadBatch = payloadInfo.payloadBatch;\n  var snapToValue = payloadInfo.snapToValue; // Fill content of event obj for echarts.connect.\n  // By defualt use the first involved series data as a sample to connect.\n\n  if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n    zrUtil.extend(outputFinder, payloadBatch[0]);\n  } // If no linkSource input, this process is for collecting link\n  // target, where snap should not be accepted.\n\n\n  if (!dontSnap && axisInfo.snap) {\n    if (axis.containData(snapToValue) && snapToValue != null) {\n      newValue = snapToValue;\n    }\n  }\n\n  updaters.showPointer(axisInfo, newValue, payloadBatch, outputFinder); // Tooltip should always be snapToValue, otherwise there will be\n  // incorrect \"axis value ~ series value\" mapping displayed in tooltip.\n\n  updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n  var axis = axisInfo.axis;\n  var dim = axis.dim;\n  var snapToValue = value;\n  var payloadBatch = [];\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n  each(axisInfo.seriesModels, function (series, idx) {\n    var dataDim = series.getData().mapDimension(dim, true);\n    var seriesNestestValue;\n    var dataIndices;\n\n    if (series.getAxisTooltipData) {\n      var result = series.getAxisTooltipData(dataDim, value, axis);\n      dataIndices = result.dataIndices;\n      seriesNestestValue = result.nestestValue;\n    } else {\n      dataIndices = series.getData().indicesOfNearest(dataDim[0], value, // Add a threshold to avoid find the wrong dataIndex\n      // when data length is not same.\n      // false,\n      axis.type === 'category' ? 0.5 : null);\n\n      if (!dataIndices.length) {\n        return;\n      }\n\n      seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n    }\n\n    if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n      return;\n    }\n\n    var diff = value - seriesNestestValue;\n    var dist = Math.abs(diff); // Consider category case\n\n    if (dist <= minDist) {\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        snapToValue = seriesNestestValue;\n        payloadBatch.length = 0;\n      }\n\n      each(dataIndices, function (dataIndex) {\n        payloadBatch.push({\n          seriesIndex: series.seriesIndex,\n          dataIndexInside: dataIndex,\n          dataIndex: series.getData().getRawIndex(dataIndex)\n        });\n      });\n    }\n  });\n  return {\n    payloadBatch: payloadBatch,\n    snapToValue: snapToValue\n  };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n  showValueMap[axisInfo.key] = {\n    value: value,\n    payloadBatch: payloadBatch\n  };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n  var payloadBatch = payloadInfo.payloadBatch;\n  var axis = axisInfo.axis;\n  var axisModel = axis.model;\n  var axisPointerModel = axisInfo.axisPointerModel; // If no data, do not create anything in dataByCoordSys,\n  // whose length will be used to judge whether dispatch action.\n\n  if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n    return;\n  }\n\n  var coordSysModel = axisInfo.coordSys.model;\n  var coordSysKey = modelHelper.makeKey(coordSysModel);\n  var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n  if (!coordSysItem) {\n    coordSysItem = dataByCoordSys.map[coordSysKey] = {\n      coordSysId: coordSysModel.id,\n      coordSysIndex: coordSysModel.componentIndex,\n      coordSysType: coordSysModel.type,\n      coordSysMainType: coordSysModel.mainType,\n      dataByAxis: []\n    };\n    dataByCoordSys.list.push(coordSysItem);\n  }\n\n  coordSysItem.dataByAxis.push({\n    axisDim: axis.dim,\n    axisIndex: axisModel.componentIndex,\n    axisType: axisModel.type,\n    axisId: axisModel.id,\n    value: value,\n    // Caustion: viewHelper.getValueLabel is actually on \"view stage\", which\n    // depends that all models have been updated. So it should not be performed\n    // here. Considering axisPointerModel used here is volatile, which is hard\n    // to be retrieve in TooltipView, we prepare parameters here.\n    valueLabelOpt: {\n      precision: axisPointerModel.get('label.precision'),\n      formatter: axisPointerModel.get('label.formatter')\n    },\n    seriesDataIndices: payloadBatch.slice()\n  });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputFinder) {\n  var outputAxesInfo = outputFinder.axesInfo = []; // Basic logic: If no 'show' required, 'hide' this axisPointer.\n\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    var valItem = showValueMap[key];\n\n    if (valItem) {\n      !axisInfo.useHandle && (option.status = 'show');\n      option.value = valItem.value; // For label formatter param and highlight.\n\n      option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n    } // When always show (e.g., handle used), remain\n    // original value and status.\n    else {\n        // If hide, value still need to be set, consider\n        // click legend to toggle axis blank.\n        !axisInfo.useHandle && (option.status = 'hide');\n      } // If status is 'hide', should be no info in payload.\n\n\n    option.status === 'show' && outputAxesInfo.push({\n      axisDim: axisInfo.axis.dim,\n      axisIndex: axisInfo.axis.model.componentIndex,\n      value: option.value\n    });\n  });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n  // Basic logic: If no showTip required, hideTip will be dispatched.\n  if (illegalPoint(point) || !dataByCoordSys.list.length) {\n    dispatchAction({\n      type: 'hideTip'\n    });\n    return;\n  } // In most case only one axis (or event one series is used). It is\n  // convinient to fetch payload.seriesIndex and payload.dataIndex\n  // dirtectly. So put the first seriesIndex and dataIndex of the first\n  // axis on the payload.\n\n\n  var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n  dispatchAction({\n    type: 'showTip',\n    escapeConnect: true,\n    x: point[0],\n    y: point[1],\n    tooltipOption: payload.tooltipOption,\n    position: payload.position,\n    dataIndexInside: sampleItem.dataIndexInside,\n    dataIndex: sampleItem.dataIndex,\n    seriesIndex: sampleItem.seriesIndex,\n    dataByCoordSys: dataByCoordSys.list\n  });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n  // FIXME\n  // highlight status modification shoule be a stage of main process?\n  // (Consider confilct (e.g., legend and axisPointer) and setOption)\n  var zr = api.getZr();\n  var highDownKey = 'axisPointerLastHighlights';\n  var lastHighlights = inner(zr)[highDownKey] || {};\n  var newHighlights = inner(zr)[highDownKey] = {}; // Update highlight/downplay status according to axisPointer model.\n  // Build hash map and remove duplicate incidentally.\n\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n      var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n      newHighlights[key] = batchItem;\n    });\n  }); // Diff.\n\n  var toHighlight = [];\n  var toDownplay = [];\n  zrUtil.each(lastHighlights, function (batchItem, key) {\n    !newHighlights[key] && toDownplay.push(batchItem);\n  });\n  zrUtil.each(newHighlights, function (batchItem, key) {\n    !lastHighlights[key] && toHighlight.push(batchItem);\n  });\n  toDownplay.length && api.dispatchAction({\n    type: 'downplay',\n    escapeConnect: true,\n    batch: toDownplay\n  });\n  toHighlight.length && api.dispatchAction({\n    type: 'highlight',\n    escapeConnect: true,\n    batch: toHighlight\n  });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n  for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n    var inputAxisInfo = inputAxesInfo[i];\n\n    if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n      return inputAxisInfo;\n    }\n  }\n}\n\nfunction makeMapperParam(axisInfo) {\n  var axisModel = axisInfo.axis.model;\n  var item = {};\n  var dim = item.axisDim = axisInfo.axis.dim;\n  item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n  item.axisName = item[dim + 'AxisName'] = axisModel.name;\n  item.axisId = item[dim + 'AxisId'] = axisModel.id;\n  return item;\n}\n\nfunction illegalPoint(point) {\n  return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/axisTrigger.js\n// module id = KdYD\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_to-absolute-index.js\n// module id = Kjxy\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar Tree = require(\"../../data/Tree\");\n\nvar Model = require(\"../../model/Model\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\nvar addCommas = _format.addCommas;\n\nvar _treeHelper = require(\"../helper/treeHelper\");\n\nvar wrapTreePathInfo = _treeHelper.wrapTreePathInfo;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.treemap',\n  layoutMode: 'box',\n  dependencies: ['grid', 'polar'],\n\n  /**\n   * @type {module:echarts/data/Tree~Node}\n   */\n  _viewRoot: null,\n  defaultOption: {\n    // Disable progressive rendering\n    progressive: 0,\n    hoverLayerThreshold: Infinity,\n    // center: ['50%', '50%'],          // not supported in ec3.\n    // size: ['80%', '80%'],            // deprecated, compatible with ec2.\n    left: 'center',\n    top: 'middle',\n    right: null,\n    bottom: null,\n    width: '80%',\n    height: '80%',\n    sort: true,\n    // Can be null or false or true\n    // (order by desc default, asc not supported yet (strange effect))\n    clipWindow: 'origin',\n    // Size of clipped window when zooming. 'origin' or 'fullscreen'\n    squareRatio: 0.5 * (1 + Math.sqrt(5)),\n    // golden ratio\n    leafDepth: null,\n    // Nodes on depth from root are regarded as leaves.\n    // Count from zero (zero represents only view root).\n    drillDownIcon: '鈻�',\n    // Use html character temporarily because it is complicated\n    // to align specialized icon. 鈻封柖鉂掆潗鈻尖湚\n    zoomToNodeRatio: 0.32 * 0.32,\n    // Be effective when using zoomToNode. Specify the proportion of the\n    // target node area in the view area.\n    roam: true,\n    // true, false, 'scale' or 'zoom', 'move'.\n    nodeClick: 'zoomToNode',\n    // Leaf node click behaviour: 'zoomToNode', 'link', false.\n    // If leafDepth is set and clicking a node which has children but\n    // be on left depth, the behaviour would be changing root. Otherwise\n    // use behavious defined above.\n    animation: true,\n    animationDurationUpdate: 900,\n    animationEasing: 'quinticInOut',\n    breadcrumb: {\n      show: true,\n      height: 22,\n      left: 'center',\n      top: 'bottom',\n      // right\n      // bottom\n      emptyItemWidth: 25,\n      // Width of empty node.\n      itemStyle: {\n        color: 'rgba(0,0,0,0.7)',\n        //'#5793f3',\n        borderColor: 'rgba(255,255,255,0.7)',\n        borderWidth: 1,\n        shadowColor: 'rgba(150,150,150,1)',\n        shadowBlur: 3,\n        shadowOffsetX: 0,\n        shadowOffsetY: 0,\n        textStyle: {\n          color: '#fff'\n        }\n      },\n      emphasis: {\n        textStyle: {}\n      }\n    },\n    label: {\n      show: true,\n      // Do not use textDistance, for ellipsis rect just the same as treemap node rect.\n      distance: 0,\n      padding: 5,\n      position: 'inside',\n      // Can be [5, '5%'] or position stirng like 'insideTopLeft', ...\n      // formatter: null,\n      color: '#fff',\n      ellipsis: true // align\n      // verticalAlign\n\n    },\n    upperLabel: {\n      // Label when node is parent.\n      show: false,\n      position: [0, '50%'],\n      height: 20,\n      // formatter: null,\n      color: '#fff',\n      ellipsis: true,\n      // align: null,\n      verticalAlign: 'middle'\n    },\n    itemStyle: {\n      color: null,\n      // Can be 'none' if not necessary.\n      colorAlpha: null,\n      // Can be 'none' if not necessary.\n      colorSaturation: null,\n      // Can be 'none' if not necessary.\n      borderWidth: 0,\n      gapWidth: 0,\n      borderColor: '#fff',\n      borderColorSaturation: null // If specified, borderColor will be ineffective, and the\n      // border color is evaluated by color of current node and\n      // borderColorSaturation.\n\n    },\n    emphasis: {\n      upperLabel: {\n        show: true,\n        position: [0, '50%'],\n        color: '#fff',\n        ellipsis: true,\n        verticalAlign: 'middle'\n      }\n    },\n    visualDimension: 0,\n    // Can be 0, 1, 2, 3.\n    visualMin: null,\n    visualMax: null,\n    color: [],\n    // + treemapSeries.color should not be modified. Please only modified\n    // level[n].color (if necessary).\n    // + Specify color list of each level. level[0].color would be global\n    // color list if not specified. (see method `setDefault`).\n    // + But set as a empty array to forbid fetch color from global palette\n    // when using nodeModel.get('color'), otherwise nodes on deep level\n    // will always has color palette set and are not able to inherit color\n    // from parent node.\n    // + TreemapSeries.color can not be set as 'none', otherwise effect\n    // legend color fetching (see seriesColor.js).\n    colorAlpha: null,\n    // Array. Specify color alpha range of each level, like [0.2, 0.8]\n    colorSaturation: null,\n    // Array. Specify color saturation of each level, like [0.2, 0.5]\n    colorMappingBy: 'index',\n    // 'value' or 'index' or 'id'.\n    visibleMin: 10,\n    // If area less than this threshold (unit: pixel^2), node will not\n    // be rendered. Only works when sort is 'asc' or 'desc'.\n    childrenVisibleMin: null,\n    // If area of a node less than this threshold (unit: pixel^2),\n    // grandchildren will not show.\n    // Why grandchildren? If not grandchildren but children,\n    // some siblings show children and some not,\n    // the appearance may be mess and not consistent,\n    levels: [] // Each item: {\n    //     visibleMin, itemStyle, visualDimension, label\n    // }\n    // data: {\n    //      value: [],\n    //      children: [],\n    //      link: 'http://xxx.xxx.xxx',\n    //      target: 'blank' or 'self'\n    // }\n\n  },\n\n  /**\n   * @override\n   */\n  getInitialData: function (option, ecModel) {\n    // Create a virtual root.\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levels = option.levels || [];\n    levels = option.levels = setDefault(levels, ecModel);\n    var treeOption = {};\n    treeOption.levels = levels; // Make sure always a new tree is created when setOption,\n    // in TreemapView, we check whether oldTree === newTree\n    // to choose mappings approach among old shapes and new shapes.\n\n    return Tree.createTree(root, this, treeOption).data;\n  },\n  optionUpdated: function () {\n    this.resetViewRoot();\n  },\n\n  /**\n   * @override\n   * @param {number} dataIndex\n   * @param {boolean} [mutipleSeries=false]\n   */\n  formatTooltip: function (dataIndex) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var formattedValue = zrUtil.isArray(value) ? addCommas(value[0]) : addCommas(value);\n    var name = data.getName(dataIndex);\n    return encodeHTML(name + ': ' + formattedValue);\n  },\n\n  /**\n   * Add tree path to tooltip param\n   *\n   * @override\n   * @param {number} dataIndex\n   * @return {Object}\n   */\n  getDataParams: function (dataIndex) {\n    var params = SeriesModel.prototype.getDataParams.apply(this, arguments);\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  },\n\n  /**\n   * @public\n   * @param {Object} layoutInfo {\n   *                                x: containerGroup x\n   *                                y: containerGroup y\n   *                                width: containerGroup width\n   *                                height: containerGroup height\n   *                            }\n   */\n  setLayoutInfo: function (layoutInfo) {\n    /**\n     * @readOnly\n     * @type {Object}\n     */\n    this.layoutInfo = this.layoutInfo || {};\n    zrUtil.extend(this.layoutInfo, layoutInfo);\n  },\n\n  /**\n   * @param  {string} id\n   * @return {number} index\n   */\n  mapIdToIndex: function (id) {\n    // A feature is implemented:\n    // index is monotone increasing with the sequence of\n    // input id at the first time.\n    // This feature can make sure that each data item and its\n    // mapped color have the same index between data list and\n    // color list at the beginning, which is useful for user\n    // to adjust data-color mapping.\n\n    /**\n     * @private\n     * @type {Object}\n     */\n    var idIndexMap = this._idIndexMap;\n\n    if (!idIndexMap) {\n      idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n      /**\n       * @private\n       * @type {number}\n       */\n\n      this._idIndexMapCount = 0;\n    }\n\n    var index = idIndexMap.get(id);\n\n    if (index == null) {\n      idIndexMap.set(id, index = this._idIndexMapCount++);\n    }\n\n    return index;\n  },\n  getViewRoot: function () {\n    return this._viewRoot;\n  },\n\n  /**\n   * @param {module:echarts/data/Tree~Node} [viewRoot]\n   */\n  resetViewRoot: function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  }\n});\n/**\n * @param {Object} dataNode\n */\n\n\nfunction completeTreeValue(dataNode) {\n  // Postorder travel tree.\n  // If value of none-leaf node is not set,\n  // calculate it by suming up the value of all children.\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  } // Value should not less than 0.\n\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n/**\n * set default to level configuration\n */\n\n\nfunction setDefault(levels, ecModel) {\n  var globalColorList = ecModel.get('color');\n\n  if (!globalColorList) {\n    return;\n  }\n\n  levels = levels || [];\n  var hasColorDefine;\n  zrUtil.each(levels, function (levelDefine) {\n    var model = new Model(levelDefine);\n    var modelColor = model.get('color');\n\n    if (model.get('itemStyle.color') || modelColor && modelColor !== 'none') {\n      hasColorDefine = true;\n    }\n  });\n\n  if (!hasColorDefine) {\n    var level0 = levels[0] || (levels[0] = {});\n    level0.color = globalColorList.slice();\n  }\n\n  return levels;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/TreemapSeries.js\n// module id = Kndc\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nfunction _default(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var edgeData = seriesModel.getEdgeData();\n    var symbolType = normalize(seriesModel.get('edgeSymbol'));\n    var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));\n    var colorQuery = 'lineStyle.color'.split('.');\n    var opacityQuery = 'lineStyle.opacity'.split('.');\n    edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n    edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n    edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n    edgeData.setVisual('color', seriesModel.get(colorQuery));\n    edgeData.setVisual('opacity', seriesModel.get(opacityQuery));\n    edgeData.each(function (idx) {\n      var itemModel = edgeData.getItemModel(idx);\n      var edge = graph.getEdgeByIndex(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true)); // Edge visual must after node visual\n\n      var color = itemModel.get(colorQuery);\n      var opacity = itemModel.get(opacityQuery);\n\n      switch (color) {\n        case 'source':\n          color = edge.node1.getVisual('color');\n          break;\n\n        case 'target':\n          color = edge.node2.getVisual('color');\n          break;\n      }\n\n      symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n      symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n      symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n      edge.setVisual('color', color);\n      edge.setVisual('opacity', opacity);\n    });\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/edgeVisual.js\n// module id = Kq3v\n// module chunks = 0","var _config = require(\"../config\");\n\nvar debugMode = _config.debugMode;\n\nvar log = function () {};\n\nif (debugMode === 1) {\n  log = function () {\n    for (var k in arguments) {\n      throw new Error(arguments[k]);\n    }\n  };\n} else if (debugMode > 1) {\n  log = function () {\n    for (var k in arguments) {\n      console.log(arguments[k]);\n    }\n  };\n}\n\nvar _default = log;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/log.js\n// module id = L3JW\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.isVNode = isVNode;\nexports.getFirstComponentChild = getFirstComponentChild;\n\nvar _util = require('element-ui/lib/utils/util');\n\nfunction isVNode(node) {\n  return node !== null && (typeof node === 'undefined' ? 'undefined' : _typeof(node)) === 'object' && (0, _util.hasOwn)(node, 'componentOptions');\n};\n\nfunction getFirstComponentChild(children) {\n  return children && children.filter(function (c) {\n    return c && c.tag;\n  })[0];\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/vdom.js\n// module id = L9EA\n// module chunks = 0","var curveTool = require(\"zrender/lib/core/curve\");\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n  var p0 = curvePoints[0];\n  var p1 = curvePoints[1];\n  var p2 = curvePoints[2];\n  var d = Infinity;\n  var t;\n  var radiusSquare = radius * radius;\n  var interval = 0.1;\n\n  for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n    v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n    v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n    var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n    if (diff < d) {\n      d = diff;\n      t = _t;\n    }\n  } // Assume the segment is monotone锛孎ind root through Bisection method\n  // At most 32 iteration\n\n\n  for (var i = 0; i < 32; i++) {\n    // var prev = t - interval;\n    var next = t + interval; // v1[0] = quadraticAt(p0[0], p1[0], p2[0], prev);\n    // v1[1] = quadraticAt(p0[1], p1[1], p2[1], prev);\n\n    v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n    v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n    v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n    v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n    var diff = v2DistSquare(v2, center) - radiusSquare;\n\n    if (mathAbs(diff) < 1e-2) {\n      break;\n    } // var prevDiff = v2DistSquare(v1, center) - radiusSquare;\n\n\n    var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n    interval /= 2;\n\n    if (diff < 0) {\n      if (nextDiff >= 0) {\n        t = t + interval;\n      } else {\n        t = t - interval;\n      }\n    } else {\n      if (nextDiff >= 0) {\n        t = t - interval;\n      } else {\n        t = t + interval;\n      }\n    }\n  }\n\n  return t;\n} // Adjust edge to avoid\n\n\nfunction _default(graph, scale) {\n  var tmp0 = [];\n  var quadraticSubdivide = curveTool.quadraticSubdivide;\n  var pts = [[], [], []];\n  var pts2 = [[], []];\n  var v = [];\n  scale /= 2;\n\n  function getSymbolSize(node) {\n    var symbolSize = node.getVisual('symbolSize');\n\n    if (symbolSize instanceof Array) {\n      symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n    }\n\n    return symbolSize;\n  }\n\n  graph.eachEdge(function (edge, idx) {\n    var linePoints = edge.getLayout();\n    var fromSymbol = edge.getVisual('fromSymbol');\n    var toSymbol = edge.getVisual('toSymbol');\n\n    if (!linePoints.__original) {\n      linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n      if (linePoints[2]) {\n        linePoints.__original.push(vec2.clone(linePoints[2]));\n      }\n    }\n\n    var originalPoints = linePoints.__original; // Quadratic curve\n\n    if (linePoints[2] != null) {\n      vec2.copy(pts[0], originalPoints[0]);\n      vec2.copy(pts[1], originalPoints[2]);\n      vec2.copy(pts[2], originalPoints[1]);\n\n      if (fromSymbol && fromSymbol != 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale); // Subdivide and get the second\n\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[0][0] = tmp0[3];\n        pts[1][0] = tmp0[4];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[0][1] = tmp0[3];\n        pts[1][1] = tmp0[4];\n      }\n\n      if (toSymbol && toSymbol != 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale); // Subdivide and get the first\n\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[1][0] = tmp0[1];\n        pts[2][0] = tmp0[2];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[1][1] = tmp0[1];\n        pts[2][1] = tmp0[2];\n      } // Copy back to layout\n\n\n      vec2.copy(linePoints[0], pts[0]);\n      vec2.copy(linePoints[1], pts[2]);\n      vec2.copy(linePoints[2], pts[1]);\n    } // Line\n    else {\n        vec2.copy(pts2[0], originalPoints[0]);\n        vec2.copy(pts2[1], originalPoints[1]);\n        vec2.sub(v, pts2[1], pts2[0]);\n        vec2.normalize(v, v);\n\n        if (fromSymbol && fromSymbol != 'none') {\n          var symbolSize = getSymbolSize(edge.node1);\n          vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n        }\n\n        if (toSymbol && toSymbol != 'none') {\n          var symbolSize = getSymbolSize(edge.node2);\n          vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n        }\n\n        vec2.copy(linePoints[0], pts2[0]);\n        vec2.copy(linePoints[1], pts2[1]);\n      }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/adjustEdge.js\n// module id = LGHW\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Model = require(\"../../model/Model\");\n\nvar _model = require(\"../../util/model\");\n\nvar isNameSpecified = _model.isNameSpecified;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar LegendModel = echarts.extendComponentModel({\n  type: 'legend.plain',\n  dependencies: ['series'],\n  layoutMode: {\n    type: 'box',\n    // legend.width/height are maxWidth/maxHeight actually,\n    // whereas realy width/height is calculated by its content.\n    // (Setting {left: 10, right: 10} does not make sense).\n    // So consider the case:\n    // `setOption({legend: {left: 10});`\n    // then `setOption({legend: {right: 10});`\n    // The previous `left` should be cleared by setting `ignoreSize`.\n    ignoreSize: true\n  },\n  init: function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    option.selected = option.selected || {};\n  },\n  mergeOption: function (option) {\n    LegendModel.superCall(this, 'mergeOption', option);\n  },\n  optionUpdated: function () {\n    this._updateData(this.ecModel);\n\n    var legendData = this._data; // If selectedMode is single, try to select one\n\n    if (legendData[0] && this.get('selectedMode') === 'single') {\n      var hasSelected = false; // If has any selected in option.selected\n\n      for (var i = 0; i < legendData.length; i++) {\n        var name = legendData[i].get('name');\n\n        if (this.isSelected(name)) {\n          // Force to unselect others\n          this.select(name);\n          hasSelected = true;\n          break;\n        }\n      } // Try select the first if selectedMode is single\n\n\n      !hasSelected && this.select(legendData[0].get('name'));\n    }\n  },\n  _updateData: function (ecModel) {\n    var potentialData = [];\n    var availableNames = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      var seriesName = seriesModel.name;\n      availableNames.push(seriesName);\n      var isPotential;\n\n      if (seriesModel.legendDataProvider) {\n        var data = seriesModel.legendDataProvider();\n        var names = data.mapArray(data.getName);\n\n        if (!ecModel.isSeriesFiltered(seriesModel)) {\n          availableNames = availableNames.concat(names);\n        }\n\n        if (names.length) {\n          potentialData = potentialData.concat(names);\n        } else {\n          isPotential = true;\n        }\n      } else {\n        isPotential = true;\n      }\n\n      if (isPotential && isNameSpecified(seriesModel)) {\n        potentialData.push(seriesModel.name);\n      }\n    });\n    /**\n     * @type {Array.<string>}\n     * @private\n     */\n\n    this._availableNames = availableNames; // If legend.data not specified in option, use availableNames as data,\n    // which is convinient for user preparing option.\n\n    var rawData = this.get('data') || potentialData;\n    var legendData = zrUtil.map(rawData, function (dataItem) {\n      // Can be string or number\n      if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n        dataItem = {\n          name: dataItem\n        };\n      }\n\n      return new Model(dataItem, this, this.ecModel);\n    }, this);\n    /**\n     * @type {Array.<module:echarts/model/Model>}\n     * @private\n     */\n\n    this._data = legendData;\n  },\n\n  /**\n   * @return {Array.<module:echarts/model/Model>}\n   */\n  getData: function () {\n    return this._data;\n  },\n\n  /**\n   * @param {string} name\n   */\n  select: function (name) {\n    var selected = this.option.selected;\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      var data = this._data;\n      zrUtil.each(data, function (dataItem) {\n        selected[dataItem.get('name')] = false;\n      });\n    }\n\n    selected[name] = true;\n  },\n\n  /**\n   * @param {string} name\n   */\n  unSelect: function (name) {\n    if (this.get('selectedMode') !== 'single') {\n      this.option.selected[name] = false;\n    }\n  },\n\n  /**\n   * @param {string} name\n   */\n  toggleSelected: function (name) {\n    var selected = this.option.selected; // Default is true\n\n    if (!selected.hasOwnProperty(name)) {\n      selected[name] = true;\n    }\n\n    this[selected[name] ? 'unSelect' : 'select'](name);\n  },\n\n  /**\n   * @param {string} name\n   */\n  isSelected: function (name) {\n    var selected = this.option.selected;\n    return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n  },\n  defaultOption: {\n    // 涓�绾у眰鍙燶n    zlevel: 0,\n    // 浜岀骇灞傚彔\n    z: 4,\n    show: true,\n    // 甯冨眬鏂瑰紡锛岄粯璁や负姘村钩甯冨眬锛屽彲閫変负锛歕n    // 'horizontal' | 'vertical'\n    orient: 'horizontal',\n    left: 'center',\n    // right: 'center',\n    top: 0,\n    // bottom: null,\n    // 姘村钩瀵归綈\n    // 'auto' | 'left' | 'right'\n    // 榛樿涓� 'auto', 鏍规嵁 x 鐨勪綅缃垽鏂槸宸﹀榻愯繕鏄彸瀵归綈\n    align: 'auto',\n    backgroundColor: 'rgba(0,0,0,0)',\n    // 鍥句緥杈规棰滆壊\n    borderColor: '#ccc',\n    borderRadius: 0,\n    // 鍥句緥杈规绾垮锛屽崟浣峱x锛岄粯璁や负0锛堟棤杈规锛塡n    borderWidth: 0,\n    // 鍥句緥鍐呰竟璺濓紝鍗曚綅px锛岄粯璁ゅ悇鏂瑰悜鍐呰竟璺濅负5锛孿n    // 鎺ュ彈鏁扮粍鍒嗗埆璁惧畾涓婂彸涓嬪乏杈硅窛锛屽悓css\n    padding: 5,\n    // 鍚勪釜item涔嬮棿鐨勯棿闅旓紝鍗曚綅px锛岄粯璁や负10锛孿n    // 妯悜甯冨眬鏃朵负姘村钩闂撮殧锛岀旱鍚戝竷灞�鏃朵负绾靛悜闂撮殧\n    itemGap: 10,\n    // 鍥句緥鍥惧舰瀹藉害\n    itemWidth: 25,\n    // 鍥句緥鍥惧舰楂樺害\n    itemHeight: 14,\n    // 鍥句緥鍏抽棴鏃跺�欑殑棰滆壊\n    inactiveColor: '#ccc',\n    textStyle: {\n      // 鍥句緥鏂囧瓧棰滆壊\n      color: '#333'\n    },\n    // formatter: '',\n    // 閫夋嫨妯″紡锛岄粯璁ゅ紑鍚浘渚嬪紑鍏砛n    selectedMode: true,\n    // 閰嶇疆榛樿閫変腑鐘舵�侊紝鍙厤鍚圠EGEND.SELECTED浜嬩欢鍋氬姩鎬佹暟鎹浇鍏n    // selected: null,\n    // 鍥句緥鍐呭锛堣瑙乴egend.data锛屾暟缁勪腑姣忎竴椤逛唬琛ㄤ竴涓猧tem\n    // data: [],\n    // Tooltip 鐩稿叧閰嶇疆\n    tooltip: {\n      show: false\n    }\n  }\n});\nvar _default = LegendModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legend/LegendModel.js\n// module id = LH4M\n// module chunks = 0","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n  var promiseCapability = newPromiseCapability.f(this);\n  var result = perform(callbackfn);\n  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n  return promiseCapability.promise;\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es7.promise.try.js\n// module id = LPZm\n// module chunks = 0","require(\"./AxisModel\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Grid 鏄湪鏈夌洿瑙掑潗鏍囩郴鐨勬椂鍊欏繀椤昏瀛樺湪鐨刓n// 鎵�浠ヨ繖閲屼篃瑕佽 Cartesian2D 渚濊禆\nvar _default = ComponentModel.extend({\n  type: 'grid',\n  dependencies: ['xAxis', 'yAxis'],\n  layoutMode: 'box',\n\n  /**\n   * @type {module:echarts/coord/cartesian/Grid}\n   */\n  coordinateSystem: null,\n  defaultOption: {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 60,\n    // If grid size contain label\n    containLabel: false,\n    // width: {totalWidth} - left - right,\n    // height: {totalHeight} - top - bottom,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/GridModel.js\n// module id = LTKM\n// module chunks = 0","var Clip = require(\"./Clip\");\n\nvar color = require(\"../tool/color\");\n\nvar _util = require(\"../core/util\");\n\nvar isArrayLike = _util.isArrayLike;\n\n/**\n * @module echarts/animation/Animator\n */\nvar arraySlice = Array.prototype.slice;\n\nfunction defaultGetter(target, key) {\n  return target[key];\n}\n\nfunction defaultSetter(target, key, value) {\n  target[key] = value;\n}\n/**\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} percent\n * @return {number}\n */\n\n\nfunction interpolateNumber(p0, p1, percent) {\n  return (p1 - p0) * percent + p0;\n}\n/**\n * @param  {string} p0\n * @param  {string} p1\n * @param  {number} percent\n * @return {string}\n */\n\n\nfunction interpolateString(p0, p1, percent) {\n  return percent > 0.5 ? p1 : p0;\n}\n/**\n * @param  {Array} p0\n * @param  {Array} p1\n * @param  {number} percent\n * @param  {Array} out\n * @param  {number} arrDim\n */\n\n\nfunction interpolateArray(p0, p1, percent, out, arrDim) {\n  var len = p0.length;\n\n  if (arrDim == 1) {\n    for (var i = 0; i < len; i++) {\n      out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n  } else {\n    var len2 = len && p0[0].length;\n\n    for (var i = 0; i < len; i++) {\n      for (var j = 0; j < len2; j++) {\n        out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n      }\n    }\n  }\n} // arr0 is source array, arr1 is target array.\n// Do some preprocess to avoid error happened when interpolating from arr0 to arr1\n\n\nfunction fillArr(arr0, arr1, arrDim) {\n  var arr0Len = arr0.length;\n  var arr1Len = arr1.length;\n\n  if (arr0Len !== arr1Len) {\n    // FIXME Not work for TypedArray\n    var isPreviousLarger = arr0Len > arr1Len;\n\n    if (isPreviousLarger) {\n      // Cut the previous\n      arr0.length = arr1Len;\n    } else {\n      // Fill the previous\n      for (var i = arr0Len; i < arr1Len; i++) {\n        arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n      }\n    }\n  } // Handling NaN value\n\n\n  var len2 = arr0[0] && arr0[0].length;\n\n  for (var i = 0; i < arr0.length; i++) {\n    if (arrDim === 1) {\n      if (isNaN(arr0[i])) {\n        arr0[i] = arr1[i];\n      }\n    } else {\n      for (var j = 0; j < len2; j++) {\n        if (isNaN(arr0[i][j])) {\n          arr0[i][j] = arr1[i][j];\n        }\n      }\n    }\n  }\n}\n/**\n * @param  {Array} arr0\n * @param  {Array} arr1\n * @param  {number} arrDim\n * @return {boolean}\n */\n\n\nfunction isArraySame(arr0, arr1, arrDim) {\n  if (arr0 === arr1) {\n    return true;\n  }\n\n  var len = arr0.length;\n\n  if (len !== arr1.length) {\n    return false;\n  }\n\n  if (arrDim === 1) {\n    for (var i = 0; i < len; i++) {\n      if (arr0[i] !== arr1[i]) {\n        return false;\n      }\n    }\n  } else {\n    var len2 = arr0[0].length;\n\n    for (var i = 0; i < len; i++) {\n      for (var j = 0; j < len2; j++) {\n        if (arr0[i][j] !== arr1[i][j]) {\n          return false;\n        }\n      }\n    }\n  }\n\n  return true;\n}\n/**\n * Catmull Rom interpolate array\n * @param  {Array} p0\n * @param  {Array} p1\n * @param  {Array} p2\n * @param  {Array} p3\n * @param  {number} t\n * @param  {number} t2\n * @param  {number} t3\n * @param  {Array} out\n * @param  {number} arrDim\n */\n\n\nfunction catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) {\n  var len = p0.length;\n\n  if (arrDim == 1) {\n    for (var i = 0; i < len; i++) {\n      out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n  } else {\n    var len2 = p0[0].length;\n\n    for (var i = 0; i < len; i++) {\n      for (var j = 0; j < len2; j++) {\n        out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n      }\n    }\n  }\n}\n/**\n * Catmull Rom interpolate number\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} p3\n * @param  {number} t\n * @param  {number} t2\n * @param  {number} t3\n * @return {number}\n */\n\n\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n  var v0 = (p2 - p0) * 0.5;\n  var v1 = (p3 - p1) * 0.5;\n  return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1;\n}\n\nfunction cloneValue(value) {\n  if (isArrayLike(value)) {\n    var len = value.length;\n\n    if (isArrayLike(value[0])) {\n      var ret = [];\n\n      for (var i = 0; i < len; i++) {\n        ret.push(arraySlice.call(value[i]));\n      }\n\n      return ret;\n    }\n\n    return arraySlice.call(value);\n  }\n\n  return value;\n}\n\nfunction rgba2String(rgba) {\n  rgba[0] = Math.floor(rgba[0]);\n  rgba[1] = Math.floor(rgba[1]);\n  rgba[2] = Math.floor(rgba[2]);\n  return 'rgba(' + rgba.join(',') + ')';\n}\n\nfunction getArrayDim(keyframes) {\n  var lastValue = keyframes[keyframes.length - 1].value;\n  return isArrayLike(lastValue && lastValue[0]) ? 2 : 1;\n}\n\nfunction createTrackClip(animator, easing, oneTrackDone, keyframes, propName, forceAnimate) {\n  var getter = animator._getter;\n  var setter = animator._setter;\n  var useSpline = easing === 'spline';\n  var trackLen = keyframes.length;\n\n  if (!trackLen) {\n    return;\n  } // Guess data type\n\n\n  var firstVal = keyframes[0].value;\n  var isValueArray = isArrayLike(firstVal);\n  var isValueColor = false;\n  var isValueString = false; // For vertices morphing\n\n  var arrDim = isValueArray ? getArrayDim(keyframes) : 0;\n  var trackMaxTime; // Sort keyframe as ascending\n\n  keyframes.sort(function (a, b) {\n    return a.time - b.time;\n  });\n  trackMaxTime = keyframes[trackLen - 1].time; // Percents of each keyframe\n\n  var kfPercents = []; // Value of each keyframe\n\n  var kfValues = [];\n  var prevValue = keyframes[0].value;\n  var isAllValueEqual = true;\n\n  for (var i = 0; i < trackLen; i++) {\n    kfPercents.push(keyframes[i].time / trackMaxTime); // Assume value is a color when it is a string\n\n    var value = keyframes[i].value; // Check if value is equal, deep check if value is array\n\n    if (!(isValueArray && isArraySame(value, prevValue, arrDim) || !isValueArray && value === prevValue)) {\n      isAllValueEqual = false;\n    }\n\n    prevValue = value; // Try converting a string to a color array\n\n    if (typeof value == 'string') {\n      var colorArray = color.parse(value);\n\n      if (colorArray) {\n        value = colorArray;\n        isValueColor = true;\n      } else {\n        isValueString = true;\n      }\n    }\n\n    kfValues.push(value);\n  }\n\n  if (!forceAnimate && isAllValueEqual) {\n    return;\n  }\n\n  var lastValue = kfValues[trackLen - 1]; // Polyfill array and NaN value\n\n  for (var i = 0; i < trackLen - 1; i++) {\n    if (isValueArray) {\n      fillArr(kfValues[i], lastValue, arrDim);\n    } else {\n      if (isNaN(kfValues[i]) && !isNaN(lastValue) && !isValueString && !isValueColor) {\n        kfValues[i] = lastValue;\n      }\n    }\n  }\n\n  isValueArray && fillArr(getter(animator._target, propName), lastValue, arrDim); // Cache the key of last frame to speed up when\n  // animation playback is sequency\n\n  var lastFrame = 0;\n  var lastFramePercent = 0;\n  var start;\n  var w;\n  var p0;\n  var p1;\n  var p2;\n  var p3;\n\n  if (isValueColor) {\n    var rgba = [0, 0, 0, 0];\n  }\n\n  var onframe = function (target, percent) {\n    // Find the range keyframes\n    // kf1-----kf2---------current--------kf3\n    // find kf2 and kf3 and do interpolation\n    var frame; // In the easing function like elasticOut, percent may less than 0\n\n    if (percent < 0) {\n      frame = 0;\n    } else if (percent < lastFramePercent) {\n      // Start from next key\n      // PENDING start from lastFrame ?\n      start = Math.min(lastFrame + 1, trackLen - 1);\n\n      for (frame = start; frame >= 0; frame--) {\n        if (kfPercents[frame] <= percent) {\n          break;\n        }\n      } // PENDING really need to do this ?\n\n\n      frame = Math.min(frame, trackLen - 2);\n    } else {\n      for (frame = lastFrame; frame < trackLen; frame++) {\n        if (kfPercents[frame] > percent) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame - 1, trackLen - 2);\n    }\n\n    lastFrame = frame;\n    lastFramePercent = percent;\n    var range = kfPercents[frame + 1] - kfPercents[frame];\n\n    if (range === 0) {\n      return;\n    } else {\n      w = (percent - kfPercents[frame]) / range;\n    }\n\n    if (useSpline) {\n      p1 = kfValues[frame];\n      p0 = kfValues[frame === 0 ? frame : frame - 1];\n      p2 = kfValues[frame > trackLen - 2 ? trackLen - 1 : frame + 1];\n      p3 = kfValues[frame > trackLen - 3 ? trackLen - 1 : frame + 2];\n\n      if (isValueArray) {\n        catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim);\n      } else {\n        var value;\n\n        if (isValueColor) {\n          value = catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1);\n          value = rgba2String(rgba);\n        } else if (isValueString) {\n          // String is step(0.5)\n          return interpolateString(p1, p2, w);\n        } else {\n          value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n        }\n\n        setter(target, propName, value);\n      }\n    } else {\n      if (isValueArray) {\n        interpolateArray(kfValues[frame], kfValues[frame + 1], w, getter(target, propName), arrDim);\n      } else {\n        var value;\n\n        if (isValueColor) {\n          interpolateArray(kfValues[frame], kfValues[frame + 1], w, rgba, 1);\n          value = rgba2String(rgba);\n        } else if (isValueString) {\n          // String is step(0.5)\n          return interpolateString(kfValues[frame], kfValues[frame + 1], w);\n        } else {\n          value = interpolateNumber(kfValues[frame], kfValues[frame + 1], w);\n        }\n\n        setter(target, propName, value);\n      }\n    }\n  };\n\n  var clip = new Clip({\n    target: animator._target,\n    life: trackMaxTime,\n    loop: animator._loop,\n    delay: animator._delay,\n    onframe: onframe,\n    ondestroy: oneTrackDone\n  });\n\n  if (easing && easing !== 'spline') {\n    clip.easing = easing;\n  }\n\n  return clip;\n}\n/**\n * @alias module:zrender/animation/Animator\n * @constructor\n * @param {Object} target\n * @param {boolean} loop\n * @param {Function} getter\n * @param {Function} setter\n */\n\n\nvar Animator = function (target, loop, getter, setter) {\n  this._tracks = {};\n  this._target = target;\n  this._loop = loop || false;\n  this._getter = getter || defaultGetter;\n  this._setter = setter || defaultSetter;\n  this._clipCount = 0;\n  this._delay = 0;\n  this._doneList = [];\n  this._onframeList = [];\n  this._clipList = [];\n};\n\nAnimator.prototype = {\n  /**\n   * 璁剧疆鍔ㄧ敾鍏抽敭甯n   * @param  {number} time 鍏抽敭甯ф椂闂达紝鍗曚綅鏄痬s\n   * @param  {Object} props 鍏抽敭甯х殑灞炴�у�硷紝key-value琛ㄧず\n   * @return {module:zrender/animation/Animator}\n   */\n  when: function (time\n  /* ms */\n  , props) {\n    var tracks = this._tracks;\n\n    for (var propName in props) {\n      if (!props.hasOwnProperty(propName)) {\n        continue;\n      }\n\n      if (!tracks[propName]) {\n        tracks[propName] = []; // Invalid value\n\n        var value = this._getter(this._target, propName);\n\n        if (value == null) {\n          // zrLog('Invalid property ' + propName);\n          continue;\n        } // If time is 0\n        //  Then props is given initialize value\n        // Else\n        //  Initialize value from current prop value\n\n\n        if (time !== 0) {\n          tracks[propName].push({\n            time: 0,\n            value: cloneValue(value)\n          });\n        }\n      }\n\n      tracks[propName].push({\n        time: time,\n        value: props[propName]\n      });\n    }\n\n    return this;\n  },\n\n  /**\n   * 娣诲姞鍔ㄧ敾姣忎竴甯х殑鍥炶皟鍑芥暟\n   * @param  {Function} callback\n   * @return {module:zrender/animation/Animator}\n   */\n  during: function (callback) {\n    this._onframeList.push(callback);\n\n    return this;\n  },\n  pause: function () {\n    for (var i = 0; i < this._clipList.length; i++) {\n      this._clipList[i].pause();\n    }\n\n    this._paused = true;\n  },\n  resume: function () {\n    for (var i = 0; i < this._clipList.length; i++) {\n      this._clipList[i].resume();\n    }\n\n    this._paused = false;\n  },\n  isPaused: function () {\n    return !!this._paused;\n  },\n  _doneCallback: function () {\n    // Clear all tracks\n    this._tracks = {}; // Clear all clips\n\n    this._clipList.length = 0;\n    var doneList = this._doneList;\n    var len = doneList.length;\n\n    for (var i = 0; i < len; i++) {\n      doneList[i].call(this);\n    }\n  },\n\n  /**\n   * 寮�濮嬫墽琛屽姩鐢籠n   * @param  {string|Function} [easing]\n   *         鍔ㄧ敾缂撳姩鍑芥暟锛岃瑙亄@link module:zrender/animation/easing}\n   * @param  {boolean} forceAnimate\n   * @return {module:zrender/animation/Animator}\n   */\n  start: function (easing, forceAnimate) {\n    var self = this;\n    var clipCount = 0;\n\n    var oneTrackDone = function () {\n      clipCount--;\n\n      if (!clipCount) {\n        self._doneCallback();\n      }\n    };\n\n    var lastClip;\n\n    for (var propName in this._tracks) {\n      if (!this._tracks.hasOwnProperty(propName)) {\n        continue;\n      }\n\n      var clip = createTrackClip(this, easing, oneTrackDone, this._tracks[propName], propName, forceAnimate);\n\n      if (clip) {\n        this._clipList.push(clip);\n\n        clipCount++; // If start after added to animation\n\n        if (this.animation) {\n          this.animation.addClip(clip);\n        }\n\n        lastClip = clip;\n      }\n    } // Add during callback on the last clip\n\n\n    if (lastClip) {\n      var oldOnFrame = lastClip.onframe;\n\n      lastClip.onframe = function (target, percent) {\n        oldOnFrame(target, percent);\n\n        for (var i = 0; i < self._onframeList.length; i++) {\n          self._onframeList[i](target, percent);\n        }\n      };\n    } // This optimization will help the case that in the upper application\n    // the view may be refreshed frequently, where animation will be\n    // called repeatly but nothing changed.\n\n\n    if (!clipCount) {\n      this._doneCallback();\n    }\n\n    return this;\n  },\n\n  /**\n   * 鍋滄鍔ㄧ敾\n   * @param {boolean} forwardToLast If move to last frame before stop\n   */\n  stop: function (forwardToLast) {\n    var clipList = this._clipList;\n    var animation = this.animation;\n\n    for (var i = 0; i < clipList.length; i++) {\n      var clip = clipList[i];\n\n      if (forwardToLast) {\n        // Move to last frame before stop\n        clip.onframe(this._target, 1);\n      }\n\n      animation && animation.removeClip(clip);\n    }\n\n    clipList.length = 0;\n  },\n\n  /**\n   * 璁剧疆鍔ㄧ敾寤惰繜寮�濮嬬殑鏃堕棿\n   * @param  {number} time 鍗曚綅ms\n   * @return {module:zrender/animation/Animator}\n   */\n  delay: function (time) {\n    this._delay = time;\n    return this;\n  },\n\n  /**\n   * 娣诲姞鍔ㄧ敾缁撴潫鐨勫洖璋僜n   * @param  {Function} cb\n   * @return {module:zrender/animation/Animator}\n   */\n  done: function (cb) {\n    if (cb) {\n      this._doneList.push(cb);\n    }\n\n    return this;\n  },\n\n  /**\n   * @return {Array.<module:zrender/animation/Clip>}\n   */\n  getClips: function () {\n    return this._clipList;\n  }\n};\nvar _default = Animator;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/animation/Animator.js\n// module id = Ln8f\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar throttle = require(\"../../util/throttle\");\n\nvar DataZoomView = require(\"./DataZoomView\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar layout = require(\"../../util/layout\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar Rect = graphic.Rect;\nvar linearMap = numberUtil.linearMap;\nvar asc = numberUtil.asc;\nvar bind = zrUtil.bind;\nvar each = zrUtil.each; // Constants\n\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar SliderZoomView = DataZoomView.extend({\n  type: 'dataZoom.slider',\n  init: function (ecModel, api) {\n    /**\n     * @private\n     * @type {Object}\n     */\n    this._displayables = {};\n    /**\n     * @private\n     * @type {string}\n     */\n\n    this._orient;\n    /**\n     * [0, 100]\n     * @private\n     */\n\n    this._range;\n    /**\n     * [coord of the first handle, coord of the second handle]\n     * @private\n     */\n\n    this._handleEnds;\n    /**\n     * [length, thick]\n     * @private\n     * @type {Array.<number>}\n     */\n\n    this._size;\n    /**\n     * @private\n     * @type {number}\n     */\n\n    this._handleWidth;\n    /**\n     * @private\n     * @type {number}\n     */\n\n    this._handleHeight;\n    /**\n     * @private\n     */\n\n    this._location;\n    /**\n     * @private\n     */\n\n    this._dragging;\n    /**\n     * @private\n     */\n\n    this._dataShadowInfo;\n    this.api = api;\n  },\n\n  /**\n   * @override\n   */\n  render: function (dataZoomModel, ecModel, api, payload) {\n    SliderZoomView.superApply(this, 'render', arguments);\n    throttle.createOrUpdate(this, '_dispatchZoomAction', this.dataZoomModel.get('throttle'), 'fixRate');\n    this._orient = dataZoomModel.get('orient');\n\n    if (this.dataZoomModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    } // Notice: this._resetInterval() should not be executed when payload.type\n    // is 'dataZoom', origin this._range should be maintained, otherwise 'pan'\n    // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction,\n\n\n    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n      this._buildView();\n    }\n\n    this._updateView();\n  },\n\n  /**\n   * @override\n   */\n  remove: function () {\n    SliderZoomView.superApply(this, 'remove', arguments);\n    throttle.clear(this, '_dispatchZoomAction');\n  },\n\n  /**\n   * @override\n   */\n  dispose: function () {\n    SliderZoomView.superApply(this, 'dispose', arguments);\n    throttle.clear(this, '_dispatchZoomAction');\n  },\n  _buildView: function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n\n    this._resetLocation();\n\n    this._resetInterval();\n\n    var barGroup = this._displayables.barGroup = new graphic.Group();\n\n    this._renderBackground();\n\n    this._renderHandle();\n\n    this._renderDataShadow();\n\n    thisGroup.add(barGroup);\n\n    this._positionGroup();\n  },\n\n  /**\n   * @private\n   */\n  _resetLocation: function () {\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api; // If some of x/y/width/height are not specified,\n    // auto-adapt according to target grid.\n\n    var coordRect = this._findCoordRect();\n\n    var ecSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }; // Default align by coordinate system rect.\n\n    var positionInfo = this._orient === HORIZONTAL ? {\n      // Why using 'right', because right should be used in vertical,\n      // and it is better to be consistent for dealing with position param merge.\n      right: ecSize.width - coordRect.x - coordRect.width,\n      top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP,\n      width: coordRect.width,\n      height: DEFAULT_FILLER_SIZE\n    } : {\n      // vertical\n      right: DEFAULT_LOCATION_EDGE_GAP,\n      top: coordRect.y,\n      width: DEFAULT_FILLER_SIZE,\n      height: coordRect.height\n    }; // Do not write back to option and replace value 'ph', because\n    // the 'ph' value should be recalculated when resize.\n\n    var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value.\n\n    zrUtil.each(['right', 'top', 'width', 'height'], function (name) {\n      if (layoutParams[name] === 'ph') {\n        layoutParams[name] = positionInfo[name];\n      }\n    });\n    var layoutRect = layout.getLayoutRect(layoutParams, ecSize, dataZoomModel.padding);\n    this._location = {\n      x: layoutRect.x,\n      y: layoutRect.y\n    };\n    this._size = [layoutRect.width, layoutRect.height];\n    this._orient === VERTICAL && this._size.reverse();\n  },\n\n  /**\n   * @private\n   */\n  _positionGroup: function () {\n    var thisGroup = this.group;\n    var location = this._location;\n    var orient = this._orient; // Just use the first axis to determine mapping.\n\n    var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n    var inverse = targetAxisModel && targetAxisModel.get('inverse');\n    var barGroup = this._displayables.barGroup;\n    var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup.\n\n    barGroup.attr(orient === HORIZONTAL && !inverse ? {\n      scale: otherAxisInverse ? [1, 1] : [1, -1]\n    } : orient === HORIZONTAL && inverse ? {\n      scale: otherAxisInverse ? [-1, 1] : [-1, -1]\n    } : orient === VERTICAL && !inverse ? {\n      scale: otherAxisInverse ? [1, -1] : [1, 1],\n      rotation: Math.PI / 2 // Dont use Math.PI, considering shadow direction.\n\n    } : {\n      scale: otherAxisInverse ? [-1, -1] : [-1, 1],\n      rotation: Math.PI / 2\n    }); // Position barGroup\n\n    var rect = thisGroup.getBoundingRect([barGroup]);\n    thisGroup.attr('position', [location.x - rect.x, location.y - rect.y]);\n  },\n\n  /**\n   * @private\n   */\n  _getViewExtent: function () {\n    return [0, this._size[0]];\n  },\n  _renderBackground: function () {\n    var dataZoomModel = this.dataZoomModel;\n    var size = this._size;\n    var barGroup = this._displayables.barGroup;\n    barGroup.add(new Rect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: dataZoomModel.get('backgroundColor')\n      },\n      z2: -40\n    })); // Click panel, over shadow, below handles.\n\n    barGroup.add(new Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: 'transparent'\n      },\n      z2: 0,\n      onclick: zrUtil.bind(this._onClickPanelClick, this)\n    }));\n  },\n  _renderDataShadow: function () {\n    var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n    if (!info) {\n      return;\n    }\n\n    var size = this._size;\n    var seriesModel = info.series;\n    var data = seriesModel.getRawData();\n    var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() // @see candlestick\n    : info.otherDim;\n\n    if (otherDim == null) {\n      return;\n    }\n\n    var otherDataExtent = data.getDataExtent(otherDim); // Nice extent.\n\n    var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n    otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n    var otherShadowExtent = [0, size[1]];\n    var thisShadowExtent = [0, size[0]];\n    var areaPoints = [[size[0], 0], [0, 0]];\n    var linePoints = [];\n    var step = thisShadowExtent[1] / (data.count() - 1);\n    var thisCoord = 0; // Optimize for large data shadow\n\n    var stride = Math.round(data.count() / size[0]);\n    var lastIsEmpty;\n    data.each([otherDim], function (value, index) {\n      if (stride > 0 && index % stride) {\n        thisCoord += step;\n        return;\n      } // FIXME\n      // Should consider axis.min/axis.max when drawing dataShadow.\n      // FIXME\n      // 搴旇浣跨敤缁熶竴鐨勭┖鍒ゆ柇锛熻繕鏄湪list閲岃繘琛岀┖鍒ゆ柇锛焅n\n\n      var isEmpty = value == null || isNaN(value) || value === ''; // See #4235.\n\n      var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true); // Attempt to draw data shadow precisely when there are empty value.\n\n      if (isEmpty && !lastIsEmpty && index) {\n        areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n        linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n      } else if (!isEmpty && lastIsEmpty) {\n        areaPoints.push([thisCoord, 0]);\n        linePoints.push([thisCoord, 0]);\n      }\n\n      areaPoints.push([thisCoord, otherCoord]);\n      linePoints.push([thisCoord, otherCoord]);\n      thisCoord += step;\n      lastIsEmpty = isEmpty;\n    });\n    var dataZoomModel = this.dataZoomModel; // var dataBackgroundModel = dataZoomModel.getModel('dataBackground');\n\n    this._displayables.barGroup.add(new graphic.Polygon({\n      shape: {\n        points: areaPoints\n      },\n      style: zrUtil.defaults({\n        fill: dataZoomModel.get('dataBackgroundColor')\n      }, dataZoomModel.getModel('dataBackground.areaStyle').getAreaStyle()),\n      silent: true,\n      z2: -20\n    }));\n\n    this._displayables.barGroup.add(new graphic.Polyline({\n      shape: {\n        points: linePoints\n      },\n      style: dataZoomModel.getModel('dataBackground.lineStyle').getLineStyle(),\n      silent: true,\n      z2: -19\n    }));\n  },\n  _prepareDataShadowInfo: function () {\n    var dataZoomModel = this.dataZoomModel;\n    var showDataShadow = dataZoomModel.get('showDataShadow');\n\n    if (showDataShadow === false) {\n      return;\n    } // Find a representative series.\n\n\n    var result;\n    var ecModel = this.ecModel;\n    dataZoomModel.eachTargetAxis(function (dimNames, axisIndex) {\n      var seriesModels = dataZoomModel.getAxisProxy(dimNames.name, axisIndex).getTargetSeriesModels();\n      zrUtil.each(seriesModels, function (seriesModel) {\n        if (result) {\n          return;\n        }\n\n        if (showDataShadow !== true && zrUtil.indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n          return;\n        }\n\n        var thisAxis = ecModel.getComponent(dimNames.axis, axisIndex).axis;\n        var otherDim = getOtherDim(dimNames.name);\n        var otherAxisInverse;\n        var coordSys = seriesModel.coordinateSystem;\n\n        if (otherDim != null && coordSys.getOtherAxis) {\n          otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n        }\n\n        otherDim = seriesModel.getData().mapDimension(otherDim);\n        result = {\n          thisAxis: thisAxis,\n          series: seriesModel,\n          thisDim: dimNames.name,\n          otherDim: otherDim,\n          otherAxisInverse: otherAxisInverse\n        };\n      }, this);\n    }, this);\n    return result;\n  },\n  _renderHandle: function () {\n    var displaybles = this._displayables;\n    var handles = displaybles.handles = [];\n    var handleLabels = displaybles.handleLabels = [];\n    var barGroup = this._displayables.barGroup;\n    var size = this._size;\n    var dataZoomModel = this.dataZoomModel;\n    barGroup.add(displaybles.filler = new Rect({\n      draggable: true,\n      cursor: getCursor(this._orient),\n      drift: bind(this._onDragMove, this, 'all'),\n      onmousemove: function (e) {\n        // Fot mobile devicem, prevent screen slider on the button.\n        eventTool.stop(e.event);\n      },\n      ondragstart: bind(this._showDataInfo, this, true),\n      ondragend: bind(this._onDragEnd, this),\n      onmouseover: bind(this._showDataInfo, this, true),\n      onmouseout: bind(this._showDataInfo, this, false),\n      style: {\n        fill: dataZoomModel.get('fillerColor'),\n        textPosition: 'inside'\n      }\n    })); // Frame border.\n\n    barGroup.add(new Rect(graphic.subPixelOptimizeRect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n        lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n        fill: 'rgba(0,0,0,0)'\n      }\n    })));\n    each([0, 1], function (handleIndex) {\n      var path = graphic.createIcon(dataZoomModel.get('handleIcon'), {\n        cursor: getCursor(this._orient),\n        draggable: true,\n        drift: bind(this._onDragMove, this, handleIndex),\n        onmousemove: function (e) {\n          // Fot mobile devicem, prevent screen slider on the button.\n          eventTool.stop(e.event);\n        },\n        ondragend: bind(this._onDragEnd, this),\n        onmouseover: bind(this._showDataInfo, this, true),\n        onmouseout: bind(this._showDataInfo, this, false)\n      }, {\n        x: -1,\n        y: 0,\n        width: 2,\n        height: 2\n      });\n      var bRect = path.getBoundingRect();\n      this._handleHeight = numberUtil.parsePercent(dataZoomModel.get('handleSize'), this._size[1]);\n      this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n      path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n      var handleColor = dataZoomModel.get('handleColor'); // Compatitable with previous version\n\n      if (handleColor != null) {\n        path.style.fill = handleColor;\n      }\n\n      barGroup.add(handles[handleIndex] = path);\n      var textStyleModel = dataZoomModel.textStyleModel;\n      this.group.add(handleLabels[handleIndex] = new graphic.Text({\n        silent: true,\n        invisible: true,\n        style: {\n          x: 0,\n          y: 0,\n          text: '',\n          textVerticalAlign: 'middle',\n          textAlign: 'center',\n          textFill: textStyleModel.getTextColor(),\n          textFont: textStyleModel.getFont()\n        },\n        z2: 10\n      }));\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _resetInterval: function () {\n    var range = this._range = this.dataZoomModel.getPercentRange();\n\n    var viewExtent = this._getViewExtent();\n\n    this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n  },\n\n  /**\n   * @private\n   * @param {(number|string)} handleIndex 0 or 1 or 'all'\n   * @param {number} delta\n   * @return {boolean} changed\n   */\n  _updateInterval: function (handleIndex, delta) {\n    var dataZoomModel = this.dataZoomModel;\n    var handleEnds = this._handleEnds;\n\n    var viewExtend = this._getViewExtent();\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    var percentExtent = [0, 100];\n    sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n    var lastRange = this._range;\n    var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n    return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n  },\n\n  /**\n   * @private\n   */\n  _updateView: function (nonRealtime) {\n    var displaybles = this._displayables;\n    var handleEnds = this._handleEnds;\n    var handleInterval = asc(handleEnds.slice());\n    var size = this._size;\n    each([0, 1], function (handleIndex) {\n      // Handles\n      var handle = displaybles.handles[handleIndex];\n      var handleHeight = this._handleHeight;\n      handle.attr({\n        scale: [handleHeight / 2, handleHeight / 2],\n        position: [handleEnds[handleIndex], size[1] / 2 - handleHeight / 2]\n      });\n    }, this); // Filler\n\n    displaybles.filler.setShape({\n      x: handleInterval[0],\n      y: 0,\n      width: handleInterval[1] - handleInterval[0],\n      height: size[1]\n    });\n\n    this._updateDataInfo(nonRealtime);\n  },\n\n  /**\n   * @private\n   */\n  _updateDataInfo: function (nonRealtime) {\n    var dataZoomModel = this.dataZoomModel;\n    var displaybles = this._displayables;\n    var handleLabels = displaybles.handleLabels;\n    var orient = this._orient;\n    var labelTexts = ['', '']; // FIXME\n    // date鍨嬶紝鏀寔formatter锛宎utoformatter锛坋c2 date.getAutoFormatter锛塡n\n    if (dataZoomModel.get('showDetail')) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var axis = axisProxy.getAxisModel().axis;\n        var range = this._range;\n        var dataInterval = nonRealtime // See #4434, data and axis are not processed and reset yet in non-realtime mode.\n        ? axisProxy.calculateDataWindow({\n          start: range[0],\n          end: range[1]\n        }).valueWindow : axisProxy.getDataValueWindow();\n        labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n      }\n    }\n\n    var orderedHandleEnds = asc(this._handleEnds.slice());\n    setLabel.call(this, 0);\n    setLabel.call(this, 1);\n\n    function setLabel(handleIndex) {\n      // Label\n      // Text should not transform by barGroup.\n      // Ignore handlers transform\n      var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n      var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n      var offset = this._handleWidth / 2 + LABEL_GAP;\n      var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        textVerticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n        textAlign: orient === HORIZONTAL ? direction : 'center',\n        text: labelTexts[handleIndex]\n      });\n    }\n  },\n\n  /**\n   * @private\n   */\n  _formatLabel: function (value, axis) {\n    var dataZoomModel = this.dataZoomModel;\n    var labelFormatter = dataZoomModel.get('labelFormatter');\n    var labelPrecision = dataZoomModel.get('labelPrecision');\n\n    if (labelPrecision == null || labelPrecision === 'auto') {\n      labelPrecision = axis.getPixelPrecision();\n    }\n\n    var valueStr = value == null || isNaN(value) ? '' // FIXME Glue code\n    : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel(Math.round(value)) // param of toFixed should less then 20.\n    : value.toFixed(Math.min(labelPrecision, 20));\n    return zrUtil.isFunction(labelFormatter) ? labelFormatter(value, valueStr) : zrUtil.isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n  },\n\n  /**\n   * @private\n   * @param {boolean} showOrHide true: show, false: hide\n   */\n  _showDataInfo: function (showOrHide) {\n    // Always show when drgging.\n    showOrHide = this._dragging || showOrHide;\n    var handleLabels = this._displayables.handleLabels;\n    handleLabels[0].attr('invisible', !showOrHide);\n    handleLabels[1].attr('invisible', !showOrHide);\n  },\n  _onDragMove: function (handleIndex, dx, dy) {\n    this._dragging = true; // Transform dx, dy to bar coordination.\n\n    var barTransform = this._displayables.barGroup.getLocalTransform();\n\n    var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n    var changed = this._updateInterval(handleIndex, vertex[0]);\n\n    var realtime = this.dataZoomModel.get('realtime');\n\n    this._updateView(!realtime); // Avoid dispatch dataZoom repeatly but range not changed,\n    // which cause bad visual effect when progressive enabled.\n\n\n    changed && realtime && this._dispatchZoomAction();\n  },\n  _onDragEnd: function () {\n    this._dragging = false;\n\n    this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when\n    // drag end will cause the whole view rerender, which is unnecessary.\n\n\n    var realtime = this.dataZoomModel.get('realtime');\n    !realtime && this._dispatchZoomAction();\n  },\n  _onClickPanelClick: function (e) {\n    var size = this._size;\n\n    var localPoint = this._displayables.barGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n    if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n      return;\n    }\n\n    var handleEnds = this._handleEnds;\n    var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n    var changed = this._updateInterval('all', localPoint[0] - center);\n\n    this._updateView();\n\n    changed && this._dispatchZoomAction();\n  },\n\n  /**\n   * This action will be throttled.\n   * @private\n   */\n  _dispatchZoomAction: function () {\n    var range = this._range;\n    this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      dataZoomId: this.dataZoomModel.id,\n      start: range[0],\n      end: range[1]\n    });\n  },\n\n  /**\n   * @private\n   */\n  _findCoordRect: function () {\n    // Find the grid coresponding to the first axis referred by dataZoom.\n    var rect;\n    each(this.getTargetCoordInfo(), function (coordInfoList) {\n      if (!rect && coordInfoList.length) {\n        var coordSys = coordInfoList[0].model.coordinateSystem;\n        rect = coordSys.getRect && coordSys.getRect();\n      }\n    });\n\n    if (!rect) {\n      var width = this.api.getWidth();\n      var height = this.api.getHeight();\n      rect = {\n        x: width * 0.2,\n        y: height * 0.2,\n        width: width * 0.6,\n        height: height * 0.6\n      };\n    }\n\n    return rect;\n  }\n});\n\nfunction getOtherDim(thisDim) {\n  // FIXME\n  // 杩欎釜閫昏緫鍜実etOtherAxis閲屼竴鑷达紝浣嗘槸鍐欏湪杩欓噷鏄惁涓嶅ソ\n  var map = {\n    x: 'y',\n    y: 'x',\n    radius: 'angle',\n    angle: 'radius'\n  };\n  return map[thisDim];\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nvar _default = SliderZoomView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/SliderZoomView.js\n// module id = Luoa\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/core/InterceptorManager.js\n// module id = Lv47\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"../component/parallel\");\n\nrequire(\"./parallel/ParallelSeries\");\n\nrequire(\"./parallel/ParallelView\");\n\nvar parallelVisual = require(\"./parallel/parallelVisual\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(parallelVisual);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/parallel.js\n// module id = M0mq\n// module chunks = 0","var SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.heatmap',\n  getInitialData: function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      generateCoord: 'value'\n    });\n  },\n  preventIncremental: function () {\n    var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n    if (coordSysCreator && coordSysCreator.dimensions) {\n      return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n    }\n  },\n  defaultOption: {\n    // Cartesian2D or geo\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // Geo coordinate system\n    geoIndex: 0,\n    blurSize: 30,\n    pointSize: 20,\n    maxOpacity: 1,\n    minOpacity: 0\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/heatmap/HeatmapSeries.js\n// module id = M34w\n// module chunks = 0","var layout = require(\"../../util/layout\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction getSortedIndices(data, sort) {\n  var valueDim = data.mapDimension('value');\n  var valueArr = data.mapArray(valueDim, function (val) {\n    return val;\n  });\n  var indices = [];\n  var isAscending = sort === 'ascending';\n\n  for (var i = 0, len = data.count(); i < len; i++) {\n    indices[i] = i;\n  } // Add custom sortable function & none sortable opetion by \"options.sort\"\n\n\n  if (typeof sort === 'function') {\n    indices.sort(sort);\n  } else if (sort !== 'none') {\n    indices.sort(function (a, b) {\n      return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n    });\n  }\n\n  return indices;\n}\n\nfunction labelLayout(data) {\n  data.each(function (idx) {\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var layout = data.getItemLayout(idx);\n    var points = layout.points;\n    var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center';\n    var textAlign;\n    var textX;\n    var textY;\n    var linePoints;\n\n    if (isLabelInside) {\n      textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n      textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n      textAlign = 'center';\n      linePoints = [[textX, textY], [textX, textY]];\n    } else {\n      var x1;\n      var y1;\n      var x2;\n      var labelLineLen = labelLineModel.get('length');\n\n      if (labelPosition === 'left') {\n        // Left side\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        x2 = x1 - labelLineLen;\n        textX = x2 - 5;\n        textAlign = 'right';\n      } else {\n        // Right side\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        x2 = x1 + labelLineLen;\n        textX = x2 + 5;\n        textAlign = 'left';\n      }\n\n      var y2 = y1;\n      linePoints = [[x1, y1], [x2, y2]];\n      textY = y2;\n    }\n\n    layout.label = {\n      linePoints: linePoints,\n      x: textX,\n      y: textY,\n      verticalAlign: 'middle',\n      textAlign: textAlign,\n      inside: isLabelInside\n    };\n  });\n}\n\nfunction _default(ecModel, api, payload) {\n  ecModel.eachSeriesByType('funnel', function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var sort = seriesModel.get('sort');\n    var viewRect = getViewRect(seriesModel, api);\n    var indices = getSortedIndices(data, sort);\n    var sizeExtent = [parsePercent(seriesModel.get('minSize'), viewRect.width), parsePercent(seriesModel.get('maxSize'), viewRect.width)];\n    var dataExtent = data.getDataExtent(valueDim);\n    var min = seriesModel.get('min');\n    var max = seriesModel.get('max');\n\n    if (min == null) {\n      min = Math.min(dataExtent[0], 0);\n    }\n\n    if (max == null) {\n      max = dataExtent[1];\n    }\n\n    var funnelAlign = seriesModel.get('funnelAlign');\n    var gap = seriesModel.get('gap');\n    var itemHeight = (viewRect.height - gap * (data.count() - 1)) / data.count();\n    var y = viewRect.y;\n\n    var getLinePoints = function (idx, offY) {\n      // End point index is data.count() and we assign it 0\n      var val = data.get(valueDim, idx) || 0;\n      var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n      var x0;\n\n      switch (funnelAlign) {\n        case 'left':\n          x0 = viewRect.x;\n          break;\n\n        case 'center':\n          x0 = viewRect.x + (viewRect.width - itemWidth) / 2;\n          break;\n\n        case 'right':\n          x0 = viewRect.x + viewRect.width - itemWidth;\n          break;\n      }\n\n      return [[x0, offY], [x0 + itemWidth, offY]];\n    };\n\n    if (sort === 'ascending') {\n      // From bottom to top\n      itemHeight = -itemHeight;\n      gap = -gap;\n      y += viewRect.height;\n      indices = indices.reverse();\n    }\n\n    for (var i = 0; i < indices.length; i++) {\n      var idx = indices[i];\n      var nextIdx = indices[i + 1];\n      var itemModel = data.getItemModel(idx);\n      var height = itemModel.get('itemStyle.height');\n\n      if (height == null) {\n        height = itemHeight;\n      } else {\n        height = parsePercent(height, viewRect.height);\n\n        if (sort === 'ascending') {\n          height = -height;\n        }\n      }\n\n      var start = getLinePoints(idx, y);\n      var end = getLinePoints(nextIdx, y + height);\n      y += height + gap;\n      data.setItemLayout(idx, {\n        points: start.concat(end.slice().reverse())\n      });\n    }\n\n    labelLayout(data);\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/funnel/funnelLayout.js\n// module id = M3ql\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Model = require(\"../model/Model\");\n\nvar DataDiffer = require(\"./DataDiffer\");\n\nvar Source = require(\"./Source\");\n\nvar _dataProvider = require(\"./helper/dataProvider\");\n\nvar defaultDimValueGetters = _dataProvider.defaultDimValueGetters;\nvar DefaultDataProvider = _dataProvider.DefaultDataProvider;\n\nvar _dimensionHelper = require(\"./helper/dimensionHelper\");\n\nvar summarizeDimensions = _dimensionHelper.summarizeDimensions;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * List for data storage\n * @module echarts/data/List\n */\nvar isObject = zrUtil.isObject;\nvar UNDEFINED = 'undefined'; // Use prefix to avoid index to be the same as otherIdList[idx],\n// which will cause weird udpate animation.\n\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  // Ordinal data type can be string or int\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n}; // Caution: MUST not use `new CtorUint32Array(arr, 0, len)`, because the Ctor of array is\n// different from the Ctor of typed array.\n\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\n\nfunction getIndicesCtor(list) {\n  // The possible max value in this._indicies is always this._rawCount despite of filtering.\n  return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n}\n\nfunction cloneChunk(originalChunk) {\n  var Ctor = originalChunk.constructor; // Only shallow clone is enough when Array.\n\n  return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n}\n\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_chunkSize', '_chunkCount', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\n\nfunction transferProperties(target, source) {\n  zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n    if (source.hasOwnProperty(propName)) {\n      target[propName] = source[propName];\n    }\n  });\n  target.__wrappedMethods = source.__wrappedMethods;\n  zrUtil.each(CLONE_PROPERTIES, function (propName) {\n    target[propName] = zrUtil.clone(source[propName]);\n  });\n  target._calculationInfo = zrUtil.extend(source._calculationInfo);\n}\n/**\n * @constructor\n * @alias module:echarts/data/List\n *\n * @param {Array.<string|Object>} dimensions\n *      For example, ['someDimName', {name: 'someDimName', type: 'someDimType'}, ...].\n *      Dimensions should be concrete names like x, y, z, lng, lat, angle, radius\n *      Spetial fields: {\n *          ordinalMeta: <module:echarts/data/OrdinalMeta>\n *          createInvertedIndices: <boolean>\n *      }\n * @param {module:echarts/model/Model} hostModel\n */\n\n\nvar List = function (dimensions, hostModel) {\n  dimensions = dimensions || ['x', 'y'];\n  var dimensionInfos = {};\n  var dimensionNames = [];\n  var invertedIndicesMap = {};\n\n  for (var i = 0; i < dimensions.length; i++) {\n    // Use the original dimensions[i], where other flag props may exists.\n    var dimensionInfo = dimensions[i];\n\n    if (zrUtil.isString(dimensionInfo)) {\n      dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    var dimensionName = dimensionInfo.name;\n    dimensionInfo.type = dimensionInfo.type || 'float';\n\n    if (!dimensionInfo.coordDim) {\n      dimensionInfo.coordDim = dimensionName;\n      dimensionInfo.coordDimIndex = 0;\n    }\n\n    dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n    dimensionNames.push(dimensionName);\n    dimensionInfos[dimensionName] = dimensionInfo;\n    dimensionInfo.index = i;\n\n    if (dimensionInfo.createInvertedIndices) {\n      invertedIndicesMap[dimensionName] = [];\n    }\n  }\n  /**\n   * @readOnly\n   * @type {Array.<string>}\n   */\n\n\n  this.dimensions = dimensionNames;\n  /**\n   * Infomation of each data dimension, like data type.\n   * @type {Object}\n   */\n\n  this._dimensionInfos = dimensionInfos;\n  /**\n   * @type {module:echarts/model/Model}\n   */\n\n  this.hostModel = hostModel;\n  /**\n   * @type {module:echarts/model/Model}\n   */\n\n  this.dataType;\n  /**\n   * Indices stores the indices of data subset after filtered.\n   * This data subset will be used in chart.\n   * @type {Array.<number>}\n   * @readOnly\n   */\n\n  this._indices = null;\n  this._count = 0;\n  this._rawCount = 0;\n  /**\n   * Data storage\n   * @type {Object.<key, Array.<TypedArray|Array>>}\n   * @private\n   */\n\n  this._storage = {};\n  /**\n   * @type {Array.<string>}\n   */\n\n  this._nameList = [];\n  /**\n   * @type {Array.<string>}\n   */\n\n  this._idList = [];\n  /**\n   * Models of data option is stored sparse for optimizing memory cost\n   * @type {Array.<module:echarts/model/Model>}\n   * @private\n   */\n\n  this._optionModels = [];\n  /**\n   * Global visual properties after visual coding\n   * @type {Object}\n   * @private\n   */\n\n  this._visual = {};\n  /**\n   * Globel layout properties.\n   * @type {Object}\n   * @private\n   */\n\n  this._layout = {};\n  /**\n   * Item visual properties after visual coding\n   * @type {Array.<Object>}\n   * @private\n   */\n\n  this._itemVisuals = [];\n  /**\n   * Key: visual type, Value: boolean\n   * @type {Object}\n   * @readOnly\n   */\n\n  this.hasItemVisual = {};\n  /**\n   * Item layout properties after layout\n   * @type {Array.<Object>}\n   * @private\n   */\n\n  this._itemLayouts = [];\n  /**\n   * Graphic elemnents\n   * @type {Array.<module:zrender/Element>}\n   * @private\n   */\n\n  this._graphicEls = [];\n  /**\n   * Max size of each chunk.\n   * @type {number}\n   * @private\n   */\n\n  this._chunkSize = 1e5;\n  /**\n   * @type {number}\n   * @private\n   */\n\n  this._chunkCount = 0;\n  /**\n   * @type {Array.<Array|Object>}\n   * @private\n   */\n\n  this._rawData;\n  /**\n   * Raw extent will not be cloned, but only transfered.\n   * It will not be calculated util needed.\n   * key: dim,\n   * value: {end: number, extent: Array.<number>}\n   * @type {Object}\n   * @private\n   */\n\n  this._rawExtent = {};\n  /**\n   * @type {Object}\n   * @private\n   */\n\n  this._extent = {};\n  /**\n   * key: dim\n   * value: extent\n   * @type {Object}\n   * @private\n   */\n\n  this._approximateExtent = {};\n  /**\n   * Cache summary info for fast visit. See \"dimensionHelper\".\n   * @type {Object}\n   * @private\n   */\n\n  this._dimensionsSummary = summarizeDimensions(this);\n  /**\n   * @type {Object.<Array|TypedArray>}\n   * @private\n   */\n\n  this._invertedIndicesMap = invertedIndicesMap;\n  /**\n   * @type {Object}\n   * @private\n   */\n\n  this._calculationInfo = {};\n};\n\nvar listProto = List.prototype;\nlistProto.type = 'list';\n/**\n * If each data item has it's own option\n * @type {boolean}\n */\n\nlistProto.hasItemOption = true;\n/**\n * Get dimension name\n * @param {string|number} dim\n *        Dimension can be concrete names like x, y, z, lng, lat, angle, radius\n *        Or a ordinal number. For example getDimensionInfo(0) will return 'x' or 'lng' or 'radius'\n * @return {string} Concrete dim name.\n */\n\nlistProto.getDimension = function (dim) {\n  if (!isNaN(dim)) {\n    dim = this.dimensions[dim] || dim;\n  }\n\n  return dim;\n};\n/**\n * Get type and calculation info of particular dimension\n * @param {string|number} dim\n *        Dimension can be concrete names like x, y, z, lng, lat, angle, radius\n *        Or a ordinal number. For example getDimensionInfo(0) will return 'x' or 'lng' or 'radius'\n */\n\n\nlistProto.getDimensionInfo = function (dim) {\n  // Do not clone, because there may be categories in dimInfo.\n  return this._dimensionInfos[this.getDimension(dim)];\n};\n/**\n * @return {Array.<string>} concrete dimension name list on coord.\n */\n\n\nlistProto.getDimensionsOnCoord = function () {\n  return this._dimensionsSummary.dataDimsOnCoord.slice();\n};\n/**\n * @param {string} coordDim\n * @param {number} [idx] A coordDim may map to more than one data dim.\n *        If idx is `true`, return a array of all mapped dims.\n *        If idx is not specified, return the first dim not extra.\n * @return {string|Array.<string>} concrete data dim.\n *        If idx is number, and not found, return null/undefined.\n *        If idx is `true`, and not found, return empty array (always return array).\n */\n\n\nlistProto.mapDimension = function (coordDim, idx) {\n  var dimensionsSummary = this._dimensionsSummary;\n\n  if (idx == null) {\n    return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n  }\n\n  var dims = dimensionsSummary.encode[coordDim];\n  return idx === true // always return array if idx is `true`\n  ? (dims || []).slice() : dims && dims[idx];\n};\n/**\n * Initialize from data\n * @param {Array.<Object|number|Array>} data source or data or data provider.\n * @param {Array.<string>} [nameLIst] The name of a datum is used on data diff and\n *        defualt label/tooltip.\n *        A name can be specified in encode.itemName,\n *        or dataItem.name (only for series option data),\n *        or provided in nameList from outside.\n * @param {Function} [dimValueGetter] (dataItem, dimName, dataIndex, dimIndex) => number\n */\n\n\nlistProto.initData = function (data, nameList, dimValueGetter) {\n  var notProvider = Source.isInstance(data) || zrUtil.isArrayLike(data);\n\n  if (notProvider) {\n    data = new DefaultDataProvider(data, this.dimensions.length);\n  }\n\n  this._rawData = data; // Clear\n\n  this._storage = {};\n  this._indices = null;\n  this._nameList = nameList || [];\n  this._idList = [];\n  this._nameRepeatCount = {};\n\n  if (!dimValueGetter) {\n    this.hasItemOption = false;\n  }\n  /**\n   * @readOnly\n   */\n\n\n  this.defaultDimValueGetter = defaultDimValueGetters[this._rawData.getSource().sourceFormat]; // Default dim value getter\n\n  this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter; // Reset raw extent.\n\n  this._rawExtent = {};\n\n  this._initDataFromProvider(0, data.count()); // If data has no item option.\n\n\n  if (data.pure) {\n    this.hasItemOption = false;\n  }\n};\n\nlistProto.getProvider = function () {\n  return this._rawData;\n};\n\nlistProto.appendData = function (data) {\n  var rawData = this._rawData;\n  var start = this.count();\n  rawData.appendData(data);\n  var end = rawData.count();\n\n  if (!rawData.persistent) {\n    end += start;\n  }\n\n  this._initDataFromProvider(start, end);\n};\n\nlistProto._initDataFromProvider = function (start, end) {\n  // Optimize.\n  if (start >= end) {\n    return;\n  }\n\n  var chunkSize = this._chunkSize;\n  var rawData = this._rawData;\n  var storage = this._storage;\n  var dimensions = this.dimensions;\n  var dimLen = dimensions.length;\n  var dimensionInfoMap = this._dimensionInfos;\n  var nameList = this._nameList;\n  var idList = this._idList;\n  var rawExtent = this._rawExtent;\n  var nameRepeatCount = this._nameRepeatCount = {};\n  var nameDimIdx;\n  var chunkCount = this._chunkCount;\n  var lastChunkIndex = chunkCount - 1;\n\n  for (var i = 0; i < dimLen; i++) {\n    var dim = dimensions[i];\n\n    if (!rawExtent[dim]) {\n      rawExtent[dim] = getInitialExtent();\n    }\n\n    var dimInfo = dimensionInfoMap[dim];\n\n    if (dimInfo.otherDims.itemName === 0) {\n      nameDimIdx = this._nameDimIdx = i;\n    }\n\n    if (dimInfo.otherDims.itemId === 0) {\n      this._idDimIdx = i;\n    }\n\n    var DataCtor = dataCtors[dimInfo.type];\n\n    if (!storage[dim]) {\n      storage[dim] = [];\n    }\n\n    var resizeChunkArray = storage[dim][lastChunkIndex];\n\n    if (resizeChunkArray && resizeChunkArray.length < chunkSize) {\n      var newStore = new DataCtor(Math.min(end - lastChunkIndex * chunkSize, chunkSize)); // The cost of the copy is probably inconsiderable\n      // within the initial chunkSize.\n\n      for (var j = 0; j < resizeChunkArray.length; j++) {\n        newStore[j] = resizeChunkArray[j];\n      }\n\n      storage[dim][lastChunkIndex] = newStore;\n    } // Create new chunks.\n\n\n    for (var k = chunkCount * chunkSize; k < end; k += chunkSize) {\n      storage[dim].push(new DataCtor(Math.min(end - k, chunkSize)));\n    }\n\n    this._chunkCount = storage[dim].length;\n  }\n\n  var dataItem = new Array(dimLen);\n\n  for (var idx = start; idx < end; idx++) {\n    // NOTICE: Try not to write things into dataItem\n    dataItem = rawData.getItem(idx, dataItem); // Each data item is value\n    // [1, 2]\n    // 2\n    // Bar chart, line chart which uses category axis\n    // only gives the 'y' value. 'x' value is the indices of category\n    // Use a tempValue to normalize the value to be a (x, y) value\n\n    var chunkIndex = Math.floor(idx / chunkSize);\n    var chunkOffset = idx % chunkSize; // Store the data by dimensions\n\n    for (var k = 0; k < dimLen; k++) {\n      var dim = dimensions[k];\n      var dimStorage = storage[dim][chunkIndex]; // PENDING NULL is empty or zero\n\n      var val = this._dimValueGetter(dataItem, dim, idx, k);\n\n      dimStorage[chunkOffset] = val;\n      var dimRawExtent = rawExtent[dim];\n\n      if (val < dimRawExtent[0]) {\n        dimRawExtent[0] = val;\n      }\n\n      if (val > dimRawExtent[1]) {\n        dimRawExtent[1] = val;\n      }\n    } // ??? FIXME not check by pure but sourceFormat?\n    // TODO refactor these logic.\n\n\n    if (!rawData.pure) {\n      var name = nameList[idx];\n\n      if (dataItem && name == null) {\n        // If dataItem is {name: ...}, it has highest priority.\n        // That is appropriate for many common cases.\n        if (dataItem.name != null) {\n          // There is no other place to persistent dataItem.name,\n          // so save it to nameList.\n          nameList[idx] = name = dataItem.name;\n        } else if (nameDimIdx != null) {\n          var nameDim = dimensions[nameDimIdx];\n          var nameDimChunk = storage[nameDim][chunkIndex];\n\n          if (nameDimChunk) {\n            name = nameDimChunk[chunkOffset];\n            var ordinalMeta = dimensionInfoMap[nameDim].ordinalMeta;\n\n            if (ordinalMeta && ordinalMeta.categories.length) {\n              name = ordinalMeta.categories[name];\n            }\n          }\n        }\n      } // Try using the id in option\n      // id or name is used on dynamical data, mapping old and new items.\n\n\n      var id = dataItem == null ? null : dataItem.id;\n\n      if (id == null && name != null) {\n        // Use name as id and add counter to avoid same name\n        nameRepeatCount[name] = nameRepeatCount[name] || 0;\n        id = name;\n\n        if (nameRepeatCount[name] > 0) {\n          id += '__ec__' + nameRepeatCount[name];\n        }\n\n        nameRepeatCount[name]++;\n      }\n\n      id != null && (idList[idx] = id);\n    }\n  }\n\n  if (!rawData.persistent && rawData.clean) {\n    // Clean unused data if data source is typed array.\n    rawData.clean();\n  }\n\n  this._rawCount = this._count = end; // Reset data extent\n\n  this._extent = {};\n  prepareInvertedIndex(this);\n};\n\nfunction prepareInvertedIndex(list) {\n  var invertedIndicesMap = list._invertedIndicesMap;\n  zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n    var dimInfo = list._dimensionInfos[dim]; // Currently, only dimensions that has ordinalMeta can create inverted indices.\n\n    var ordinalMeta = dimInfo.ordinalMeta;\n\n    if (ordinalMeta) {\n      invertedIndices = invertedIndicesMap[dim] = new CtorUint32Array(ordinalMeta.categories.length); // The default value of TypedArray is 0. To avoid miss\n      // mapping to 0, we should set it as NaN.\n\n      for (var i = 0; i < invertedIndices.length; i++) {\n        invertedIndices[i] = NaN;\n      }\n\n      for (var i = 0; i < list._count; i++) {\n        // Only support the case that all values are distinct.\n        invertedIndices[list.get(dim, i)] = i;\n      }\n    }\n  });\n}\n\nfunction getRawValueFromStore(list, dimIndex, rawIndex) {\n  var val;\n\n  if (dimIndex != null) {\n    var chunkSize = list._chunkSize;\n    var chunkIndex = Math.floor(rawIndex / chunkSize);\n    var chunkOffset = rawIndex % chunkSize;\n    var dim = list.dimensions[dimIndex];\n    var chunk = list._storage[dim][chunkIndex];\n\n    if (chunk) {\n      val = chunk[chunkOffset];\n      var ordinalMeta = list._dimensionInfos[dim].ordinalMeta;\n\n      if (ordinalMeta && ordinalMeta.categories.length) {\n        val = ordinalMeta.categories[val];\n      }\n    }\n  }\n\n  return val;\n}\n/**\n * @return {number}\n */\n\n\nlistProto.count = function () {\n  return this._count;\n};\n\nlistProto.getIndices = function () {\n  var newIndices;\n  var indices = this._indices;\n\n  if (indices) {\n    var Ctor = indices.constructor;\n    var thisCount = this._count; // `new Array(a, b, c)` is different from `new Uint32Array(a, b, c)`.\n\n    if (Ctor === Array) {\n      newIndices = new Ctor(thisCount);\n\n      for (var i = 0; i < thisCount; i++) {\n        newIndices[i] = indices[i];\n      }\n    } else {\n      newIndices = new Ctor(indices.buffer, 0, thisCount);\n    }\n  } else {\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(this.count());\n\n    for (var i = 0; i < newIndices.length; i++) {\n      newIndices[i] = i;\n    }\n  }\n\n  return newIndices;\n};\n/**\n * Get value. Return NaN if idx is out of range.\n * @param {string} dim Dim must be concrete name.\n * @param {number} idx\n * @param {boolean} stack\n * @return {number}\n */\n\n\nlistProto.get = function (dim, idx\n/*, stack */\n) {\n  if (!(idx >= 0 && idx < this._count)) {\n    return NaN;\n  }\n\n  var storage = this._storage;\n\n  if (!storage[dim]) {\n    // TODO Warn ?\n    return NaN;\n  }\n\n  idx = this.getRawIndex(idx);\n  var chunkIndex = Math.floor(idx / this._chunkSize);\n  var chunkOffset = idx % this._chunkSize;\n  var chunkStore = storage[dim][chunkIndex];\n  var value = chunkStore[chunkOffset]; // FIXME ordinal data type is not stackable\n  // if (stack) {\n  //     var dimensionInfo = this._dimensionInfos[dim];\n  //     if (dimensionInfo && dimensionInfo.stackable) {\n  //         var stackedOn = this.stackedOn;\n  //         while (stackedOn) {\n  //             // Get no stacked data of stacked on\n  //             var stackedValue = stackedOn.get(dim, idx);\n  //             // Considering positive stack, negative stack and empty data\n  //             if ((value >= 0 && stackedValue > 0)  // Positive stack\n  //                 || (value <= 0 && stackedValue < 0) // Negative stack\n  //             ) {\n  //                 value += stackedValue;\n  //             }\n  //             stackedOn = stackedOn.stackedOn;\n  //         }\n  //     }\n  // }\n\n  return value;\n};\n/**\n * @param {string} dim concrete dim\n * @param {number} rawIndex\n * @return {number|string}\n */\n\n\nlistProto.getByRawIndex = function (dim, rawIdx) {\n  if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n    return NaN;\n  }\n\n  var dimStore = this._storage[dim];\n\n  if (!dimStore) {\n    // TODO Warn ?\n    return NaN;\n  }\n\n  var chunkIndex = Math.floor(rawIdx / this._chunkSize);\n  var chunkOffset = rawIdx % this._chunkSize;\n  var chunkStore = dimStore[chunkIndex];\n  return chunkStore[chunkOffset];\n};\n/**\n * FIXME Use `get` on chrome maybe slow(in filterSelf and selectRange).\n * Hack a much simpler _getFast\n * @private\n */\n\n\nlistProto._getFast = function (dim, rawIdx) {\n  var chunkIndex = Math.floor(rawIdx / this._chunkSize);\n  var chunkOffset = rawIdx % this._chunkSize;\n  var chunkStore = this._storage[dim][chunkIndex];\n  return chunkStore[chunkOffset];\n};\n/**\n * Get value for multi dimensions.\n * @param {Array.<string>} [dimensions] If ignored, using all dimensions.\n * @param {number} idx\n * @return {number}\n */\n\n\nlistProto.getValues = function (dimensions, idx\n/*, stack */\n) {\n  var values = [];\n\n  if (!zrUtil.isArray(dimensions)) {\n    // stack = idx;\n    idx = dimensions;\n    dimensions = this.dimensions;\n  }\n\n  for (var i = 0, len = dimensions.length; i < len; i++) {\n    values.push(this.get(dimensions[i], idx\n    /*, stack */\n    ));\n  }\n\n  return values;\n};\n/**\n * If value is NaN. Inlcuding '-'\n * Only check the coord dimensions.\n * @param {string} dim\n * @param {number} idx\n * @return {number}\n */\n\n\nlistProto.hasValue = function (idx) {\n  var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n  var dimensionInfos = this._dimensionInfos;\n\n  for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n    if ( // Ordinal type can be string or number\n    dimensionInfos[dataDimsOnCoord[i]].type !== 'ordinal' // FIXME check ordinal when using index?\n    && isNaN(this.get(dataDimsOnCoord[i], idx))) {\n      return false;\n    }\n  }\n\n  return true;\n};\n/**\n * Get extent of data in one dimension\n * @param {string} dim\n * @param {boolean} stack\n */\n\n\nlistProto.getDataExtent = function (dim\n/*, stack */\n) {\n  // Make sure use concrete dim as cache name.\n  dim = this.getDimension(dim);\n  var dimData = this._storage[dim];\n  var initialExtent = getInitialExtent(); // stack = !!((stack || false) && this.getCalculationInfo(dim));\n\n  if (!dimData) {\n    return initialExtent;\n  } // Make more strict checkings to ensure hitting cache.\n\n\n  var currEnd = this.count(); // var cacheName = [dim, !!stack].join('_');\n  // var cacheName = dim;\n  // Consider the most cases when using data zoom, `getDataExtent`\n  // happened before filtering. We cache raw extent, which is not\n  // necessary to be cleared and recalculated when restore data.\n\n  var useRaw = !this._indices; // && !stack;\n\n  var dimExtent;\n\n  if (useRaw) {\n    return this._rawExtent[dim].slice();\n  }\n\n  dimExtent = this._extent[dim];\n\n  if (dimExtent) {\n    return dimExtent.slice();\n  }\n\n  dimExtent = initialExtent;\n  var min = dimExtent[0];\n  var max = dimExtent[1];\n\n  for (var i = 0; i < currEnd; i++) {\n    // var value = stack ? this.get(dim, i, true) : this._getFast(dim, this.getRawIndex(i));\n    var value = this._getFast(dim, this.getRawIndex(i));\n\n    value < min && (min = value);\n    value > max && (max = value);\n  }\n\n  dimExtent = [min, max];\n  this._extent[dim] = dimExtent;\n  return dimExtent;\n};\n/**\n * Optimize for the scenario that data is filtered by a given extent.\n * Consider that if data amount is more than hundreds of thousand,\n * extent calculation will cost more than 10ms and the cache will\n * be erased because of the filtering.\n */\n\n\nlistProto.getApproximateExtent = function (dim\n/*, stack */\n) {\n  dim = this.getDimension(dim);\n  return this._approximateExtent[dim] || this.getDataExtent(dim\n  /*, stack */\n  );\n};\n\nlistProto.setApproximateExtent = function (extent, dim\n/*, stack */\n) {\n  dim = this.getDimension(dim);\n  this._approximateExtent[dim] = extent.slice();\n};\n/**\n * @param {string} key\n * @return {*}\n */\n\n\nlistProto.getCalculationInfo = function (key) {\n  return this._calculationInfo[key];\n};\n/**\n * @param {string|Object} key or k-v object\n * @param {*} [value]\n */\n\n\nlistProto.setCalculationInfo = function (key, value) {\n  isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n};\n/**\n * Get sum of data in one dimension\n * @param {string} dim\n */\n\n\nlistProto.getSum = function (dim\n/*, stack */\n) {\n  var dimData = this._storage[dim];\n  var sum = 0;\n\n  if (dimData) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var value = this.get(dim, i\n      /*, stack */\n      );\n\n      if (!isNaN(value)) {\n        sum += value;\n      }\n    }\n  }\n\n  return sum;\n};\n/**\n * Get median of data in one dimension\n * @param {string} dim\n */\n\n\nlistProto.getMedian = function (dim\n/*, stack */\n) {\n  var dimDataArray = []; // map all data of one dimension\n\n  this.each(dim, function (val, idx) {\n    if (!isNaN(val)) {\n      dimDataArray.push(val);\n    }\n  }); // TODO\n  // Use quick select?\n  // immutability & sort\n\n  var sortedDimDataArray = [].concat(dimDataArray).sort(function (a, b) {\n    return a - b;\n  });\n  var len = this.count(); // calculate median\n\n  return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n}; // /**\n//  * Retreive the index with given value\n//  * @param {string} dim Concrete dimension.\n//  * @param {number} value\n//  * @return {number}\n//  */\n// Currently incorrect: should return dataIndex but not rawIndex.\n// Do not fix it until this method is to be used somewhere.\n// FIXME Precision of float value\n// listProto.indexOf = function (dim, value) {\n//     var storage = this._storage;\n//     var dimData = storage[dim];\n//     var chunkSize = this._chunkSize;\n//     if (dimData) {\n//         for (var i = 0, len = this.count(); i < len; i++) {\n//             var chunkIndex = Math.floor(i / chunkSize);\n//             var chunkOffset = i % chunkSize;\n//             if (dimData[chunkIndex][chunkOffset] === value) {\n//                 return i;\n//             }\n//         }\n//     }\n//     return -1;\n// };\n\n/**\n * Only support the dimension which inverted index created.\n * Do not support other cases until required.\n * @param {string} concrete dim\n * @param {number|string} value\n * @return {number} rawIndex\n */\n\n\nlistProto.rawIndexOf = function (dim, value) {\n  var invertedIndices = dim && this._invertedIndicesMap[dim];\n  var rawIndex = invertedIndices[value];\n\n  if (rawIndex == null || isNaN(rawIndex)) {\n    return -1;\n  }\n\n  return rawIndex;\n};\n/**\n * Retreive the index with given name\n * @param {number} idx\n * @param {number} name\n * @return {number}\n */\n\n\nlistProto.indexOfName = function (name) {\n  for (var i = 0, len = this.count(); i < len; i++) {\n    if (this.getName(i) === name) {\n      return i;\n    }\n  }\n\n  return -1;\n};\n/**\n * Retreive the index with given raw data index\n * @param {number} idx\n * @param {number} name\n * @return {number}\n */\n\n\nlistProto.indexOfRawIndex = function (rawIndex) {\n  if (!this._indices) {\n    return rawIndex;\n  }\n\n  if (rawIndex >= this._rawCount || rawIndex < 0) {\n    return -1;\n  } // Indices are ascending\n\n\n  var indices = this._indices; // If rawIndex === dataIndex\n\n  var rawDataIndex = indices[rawIndex];\n\n  if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n    return rawIndex;\n  }\n\n  var left = 0;\n  var right = this._count - 1;\n\n  while (left <= right) {\n    var mid = (left + right) / 2 | 0;\n\n    if (indices[mid] < rawIndex) {\n      left = mid + 1;\n    } else if (indices[mid] > rawIndex) {\n      right = mid - 1;\n    } else {\n      return mid;\n    }\n  }\n\n  return -1;\n};\n/**\n * Retreive the index of nearest value\n * @param {string} dim\n * @param {number} value\n * @param {number} [maxDistance=Infinity]\n * @return {Array.<number>} Considere multiple points has the same value.\n */\n\n\nlistProto.indicesOfNearest = function (dim, value, maxDistance) {\n  var storage = this._storage;\n  var dimData = storage[dim];\n  var nearestIndices = [];\n\n  if (!dimData) {\n    return nearestIndices;\n  }\n\n  if (maxDistance == null) {\n    maxDistance = Infinity;\n  }\n\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n\n  for (var i = 0, len = this.count(); i < len; i++) {\n    var diff = value - this.get(dim, i\n    /*, stack */\n    );\n    var dist = Math.abs(diff);\n\n    if (diff <= maxDistance && dist <= minDist) {\n      // For the case of two data are same on xAxis, which has sequence data.\n      // Show the nearest index\n      // https://github.com/ecomfe/echarts/issues/2869\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        nearestIndices.length = 0;\n      }\n\n      nearestIndices.push(i);\n    }\n  }\n\n  return nearestIndices;\n};\n/**\n * Get raw data index\n * @param {number} idx\n * @return {number}\n */\n\n\nlistProto.getRawIndex = getRawIndexWithoutIndices;\n\nfunction getRawIndexWithoutIndices(idx) {\n  return idx;\n}\n\nfunction getRawIndexWithIndices(idx) {\n  if (idx < this._count && idx >= 0) {\n    return this._indices[idx];\n  }\n\n  return -1;\n}\n/**\n * Get raw data item\n * @param {number} idx\n * @return {number}\n */\n\n\nlistProto.getRawDataItem = function (idx) {\n  if (!this._rawData.persistent) {\n    var val = [];\n\n    for (var i = 0; i < this.dimensions.length; i++) {\n      var dim = this.dimensions[i];\n      val.push(this.get(dim, idx));\n    }\n\n    return val;\n  } else {\n    return this._rawData.getItem(this.getRawIndex(idx));\n  }\n};\n/**\n * @param {number} idx\n * @param {boolean} [notDefaultIdx=false]\n * @return {string}\n */\n\n\nlistProto.getName = function (idx) {\n  var rawIndex = this.getRawIndex(idx);\n  return this._nameList[rawIndex] || getRawValueFromStore(this, this._nameDimIdx, rawIndex) || '';\n};\n/**\n * @param {number} idx\n * @param {boolean} [notDefaultIdx=false]\n * @return {string}\n */\n\n\nlistProto.getId = function (idx) {\n  return getId(this, this.getRawIndex(idx));\n};\n\nfunction getId(list, rawIndex) {\n  var id = list._idList[rawIndex];\n\n  if (id == null) {\n    id = getRawValueFromStore(list, list._idDimIdx, rawIndex);\n  }\n\n  if (id == null) {\n    // FIXME Check the usage in graph, should not use prefix.\n    id = ID_PREFIX + rawIndex;\n  }\n\n  return id;\n}\n\nfunction normalizeDimensions(dimensions) {\n  if (!zrUtil.isArray(dimensions)) {\n    dimensions = [dimensions];\n  }\n\n  return dimensions;\n}\n\nfunction validateDimensions(list, dims) {\n  for (var i = 0; i < dims.length; i++) {\n    // stroage may be empty when no data, so use\n    // dimensionInfos to check.\n    if (!list._dimensionInfos[dims[i]]) {\n      console.error('Unkown dimension ' + dims[i]);\n    }\n  }\n}\n/**\n * Data iteration\n * @param {string|Array.<string>}\n * @param {Function} cb\n * @param {*} [context=this]\n *\n * @example\n *  list.each('x', function (x, idx) {});\n *  list.each(['x', 'y'], function (x, y, idx) {});\n *  list.each(function (idx) {})\n */\n\n\nlistProto.each = function (dims, cb, context, contextCompat) {\n  'use strict';\n\n  if (!this._count) {\n    return;\n  }\n\n  if (typeof dims === 'function') {\n    contextCompat = context;\n    context = cb;\n    cb = dims;\n    dims = [];\n  } // contextCompat just for compat echarts3\n\n\n  context = context || contextCompat || this;\n  dims = zrUtil.map(normalizeDimensions(dims), this.getDimension, this);\n  var dimSize = dims.length;\n\n  for (var i = 0; i < this.count(); i++) {\n    // Simple optimization\n    switch (dimSize) {\n      case 0:\n        cb.call(context, i);\n        break;\n\n      case 1:\n        cb.call(context, this.get(dims[0], i), i);\n        break;\n\n      case 2:\n        cb.call(context, this.get(dims[0], i), this.get(dims[1], i), i);\n        break;\n\n      default:\n        var k = 0;\n        var value = [];\n\n        for (; k < dimSize; k++) {\n          value[k] = this.get(dims[k], i);\n        } // Index\n\n\n        value[k] = i;\n        cb.apply(context, value);\n    }\n  }\n};\n/**\n * Data filter\n * @param {string|Array.<string>}\n * @param {Function} cb\n * @param {*} [context=this]\n */\n\n\nlistProto.filterSelf = function (dimensions, cb, context, contextCompat) {\n  'use strict';\n\n  if (!this._count) {\n    return;\n  }\n\n  if (typeof dimensions === 'function') {\n    contextCompat = context;\n    context = cb;\n    cb = dimensions;\n    dimensions = [];\n  } // contextCompat just for compat echarts3\n\n\n  context = context || contextCompat || this;\n  dimensions = zrUtil.map(normalizeDimensions(dimensions), this.getDimension, this);\n  var count = this.count();\n  var Ctor = getIndicesCtor(this);\n  var newIndices = new Ctor(count);\n  var value = [];\n  var dimSize = dimensions.length;\n  var offset = 0;\n  var dim0 = dimensions[0];\n\n  for (var i = 0; i < count; i++) {\n    var keep;\n    var rawIdx = this.getRawIndex(i); // Simple optimization\n\n    if (dimSize === 0) {\n      keep = cb.call(context, i);\n    } else if (dimSize === 1) {\n      var val = this._getFast(dim0, rawIdx);\n\n      keep = cb.call(context, val, i);\n    } else {\n      for (var k = 0; k < dimSize; k++) {\n        value[k] = this._getFast(dim0, rawIdx);\n      }\n\n      value[k] = i;\n      keep = cb.apply(context, value);\n    }\n\n    if (keep) {\n      newIndices[offset++] = rawIdx;\n    }\n  } // Set indices after filtered.\n\n\n  if (offset < count) {\n    this._indices = newIndices;\n  }\n\n  this._count = offset; // Reset data extent\n\n  this._extent = {};\n  this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n  return this;\n};\n/**\n * Select data in range. (For optimization of filter)\n * (Manually inline code, support 5 million data filtering in data zoom.)\n */\n\n\nlistProto.selectRange = function (range) {\n  'use strict';\n\n  if (!this._count) {\n    return;\n  }\n\n  var dimensions = [];\n\n  for (var dim in range) {\n    if (range.hasOwnProperty(dim)) {\n      dimensions.push(dim);\n    }\n  }\n\n  var dimSize = dimensions.length;\n\n  if (!dimSize) {\n    return;\n  }\n\n  var originalCount = this.count();\n  var Ctor = getIndicesCtor(this);\n  var newIndices = new Ctor(originalCount);\n  var offset = 0;\n  var dim0 = dimensions[0];\n  var min = range[dim0][0];\n  var max = range[dim0][1];\n  var quickFinished = false;\n\n  if (!this._indices) {\n    // Extreme optimization for common case. About 2x faster in chrome.\n    var idx = 0;\n\n    if (dimSize === 1) {\n      var dimStorage = this._storage[dimensions[0]];\n\n      for (var k = 0; k < this._chunkCount; k++) {\n        var chunkStorage = dimStorage[k];\n        var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\n\n        for (var i = 0; i < len; i++) {\n          var val = chunkStorage[i]; // NaN will not be filtered. Consider the case, in line chart, empty\n          // value indicates the line should be broken. But for the case like\n          // scatter plot, a data item with empty value will not be rendered,\n          // but the axis extent may be effected if some other dim of the data\n          // item has value. Fortunately it is not a significant negative effect.\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n      }\n\n      quickFinished = true;\n    } else if (dimSize === 2) {\n      var dimStorage = this._storage[dim0];\n      var dimStorage2 = this._storage[dimensions[1]];\n      var min2 = range[dimensions[1]][0];\n      var max2 = range[dimensions[1]][1];\n\n      for (var k = 0; k < this._chunkCount; k++) {\n        var chunkStorage = dimStorage[k];\n        var chunkStorage2 = dimStorage2[k];\n        var len = Math.min(this._count - k * this._chunkSize, this._chunkSize);\n\n        for (var i = 0; i < len; i++) {\n          var val = chunkStorage[i];\n          var val2 = chunkStorage2[i]; // Do not filter NaN, see comment above.\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n      }\n\n      quickFinished = true;\n    }\n  }\n\n  if (!quickFinished) {\n    if (dimSize === 1) {\n      for (var i = 0; i < originalCount; i++) {\n        var rawIndex = this.getRawIndex(i);\n\n        var val = this._getFast(dim0, rawIndex); // Do not filter NaN, see comment above.\n\n\n        if (val >= min && val <= max || isNaN(val)) {\n          newIndices[offset++] = rawIndex;\n        }\n      }\n    } else {\n      for (var i = 0; i < originalCount; i++) {\n        var keep = true;\n        var rawIndex = this.getRawIndex(i);\n\n        for (var k = 0; k < dimSize; k++) {\n          var dimk = dimensions[k];\n\n          var val = this._getFast(dim, rawIndex); // Do not filter NaN, see comment above.\n\n\n          if (val < range[dimk][0] || val > range[dimk][1]) {\n            keep = false;\n          }\n        }\n\n        if (keep) {\n          newIndices[offset++] = this.getRawIndex(i);\n        }\n      }\n    }\n  } // Set indices after filtered.\n\n\n  if (offset < originalCount) {\n    this._indices = newIndices;\n  }\n\n  this._count = offset; // Reset data extent\n\n  this._extent = {};\n  this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n  return this;\n};\n/**\n * Data mapping to a plain array\n * @param {string|Array.<string>} [dimensions]\n * @param {Function} cb\n * @param {*} [context=this]\n * @return {Array}\n */\n\n\nlistProto.mapArray = function (dimensions, cb, context, contextCompat) {\n  'use strict';\n\n  if (typeof dimensions === 'function') {\n    contextCompat = context;\n    context = cb;\n    cb = dimensions;\n    dimensions = [];\n  } // contextCompat just for compat echarts3\n\n\n  context = context || contextCompat || this;\n  var result = [];\n  this.each(dimensions, function () {\n    result.push(cb && cb.apply(this, arguments));\n  }, context);\n  return result;\n}; // Data in excludeDimensions is copied, otherwise transfered.\n\n\nfunction cloneListForMapAndSample(original, excludeDimensions) {\n  var allDimensions = original.dimensions;\n  var list = new List(zrUtil.map(allDimensions, original.getDimensionInfo, original), original.hostModel); // FIXME If needs stackedOn, value may already been stacked\n\n  transferProperties(list, original);\n  var storage = list._storage = {};\n  var originalStorage = original._storage; // Init storage\n\n  for (var i = 0; i < allDimensions.length; i++) {\n    var dim = allDimensions[i];\n\n    if (originalStorage[dim]) {\n      // Notice that we do not reset invertedIndicesMap here, becuase\n      // there is no scenario of mapping or sampling ordinal dimension.\n      if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n        storage[dim] = cloneDimStore(originalStorage[dim]);\n        list._rawExtent[dim] = getInitialExtent();\n        list._extent[dim] = null;\n      } else {\n        // Direct reference for other dimensions\n        storage[dim] = originalStorage[dim];\n      }\n    }\n  }\n\n  return list;\n}\n\nfunction cloneDimStore(originalDimStore) {\n  var newDimStore = new Array(originalDimStore.length);\n\n  for (var j = 0; j < originalDimStore.length; j++) {\n    newDimStore[j] = cloneChunk(originalDimStore[j]);\n  }\n\n  return newDimStore;\n}\n\nfunction getInitialExtent() {\n  return [Infinity, -Infinity];\n}\n/**\n * Data mapping to a new List with given dimensions\n * @param {string|Array.<string>} dimensions\n * @param {Function} cb\n * @param {*} [context=this]\n * @return {Array}\n */\n\n\nlistProto.map = function (dimensions, cb, context, contextCompat) {\n  'use strict'; // contextCompat just for compat echarts3\n\n  context = context || contextCompat || this;\n  dimensions = zrUtil.map(normalizeDimensions(dimensions), this.getDimension, this);\n  var list = cloneListForMapAndSample(this, dimensions); // Following properties are all immutable.\n  // So we can reference to the same value\n\n  list._indices = this._indices;\n  list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n  var storage = list._storage;\n  var tmpRetValue = [];\n  var chunkSize = this._chunkSize;\n  var dimSize = dimensions.length;\n  var dataCount = this.count();\n  var values = [];\n  var rawExtent = list._rawExtent;\n\n  for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n    for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n      values[dimIndex] = this.get(dimensions[dimIndex], dataIndex\n      /*, stack */\n      );\n    }\n\n    values[dimSize] = dataIndex;\n    var retValue = cb && cb.apply(context, values);\n\n    if (retValue != null) {\n      // a number or string (in oridinal dimension)?\n      if (typeof retValue !== 'object') {\n        tmpRetValue[0] = retValue;\n        retValue = tmpRetValue;\n      }\n\n      var rawIndex = this.getRawIndex(dataIndex);\n      var chunkIndex = Math.floor(rawIndex / chunkSize);\n      var chunkOffset = rawIndex % chunkSize;\n\n      for (var i = 0; i < retValue.length; i++) {\n        var dim = dimensions[i];\n        var val = retValue[i];\n        var rawExtentOnDim = rawExtent[dim];\n        var dimStore = storage[dim];\n\n        if (dimStore) {\n          dimStore[chunkIndex][chunkOffset] = val;\n        }\n\n        if (val < rawExtentOnDim[0]) {\n          rawExtentOnDim[0] = val;\n        }\n\n        if (val > rawExtentOnDim[1]) {\n          rawExtentOnDim[1] = val;\n        }\n      }\n    }\n  }\n\n  return list;\n};\n/**\n * Large data down sampling on given dimension\n * @param {string} dimension\n * @param {number} rate\n * @param {Function} sampleValue\n * @param {Function} sampleIndex Sample index for name and id\n */\n\n\nlistProto.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n  var list = cloneListForMapAndSample(this, [dimension]);\n  var targetStorage = list._storage;\n  var frameValues = [];\n  var frameSize = Math.floor(1 / rate);\n  var dimStore = targetStorage[dimension];\n  var len = this.count();\n  var chunkSize = this._chunkSize;\n  var rawExtentOnDim = list._rawExtent[dimension];\n  var newIndices = new (getIndicesCtor(this))(len);\n  var offset = 0;\n\n  for (var i = 0; i < len; i += frameSize) {\n    // Last frame\n    if (frameSize > len - i) {\n      frameSize = len - i;\n      frameValues.length = frameSize;\n    }\n\n    for (var k = 0; k < frameSize; k++) {\n      var dataIdx = this.getRawIndex(i + k);\n      var originalChunkIndex = Math.floor(dataIdx / chunkSize);\n      var originalChunkOffset = dataIdx % chunkSize;\n      frameValues[k] = dimStore[originalChunkIndex][originalChunkOffset];\n    }\n\n    var value = sampleValue(frameValues);\n    var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n    var sampleChunkIndex = Math.floor(sampleFrameIdx / chunkSize);\n    var sampleChunkOffset = sampleFrameIdx % chunkSize; // Only write value on the filtered data\n\n    dimStore[sampleChunkIndex][sampleChunkOffset] = value;\n\n    if (value < rawExtentOnDim[0]) {\n      rawExtentOnDim[0] = value;\n    }\n\n    if (value > rawExtentOnDim[1]) {\n      rawExtentOnDim[1] = value;\n    }\n\n    newIndices[offset++] = sampleFrameIdx;\n  }\n\n  list._count = offset;\n  list._indices = newIndices;\n  list.getRawIndex = getRawIndexWithIndices;\n  return list;\n};\n/**\n * Get model of one data item.\n *\n * @param {number} idx\n */\n// FIXME Model proxy ?\n\n\nlistProto.getItemModel = function (idx) {\n  var hostModel = this.hostModel;\n  return new Model(this.getRawDataItem(idx), hostModel, hostModel && hostModel.ecModel);\n};\n/**\n * Create a data differ\n * @param {module:echarts/data/List} otherList\n * @return {module:echarts/data/DataDiffer}\n */\n\n\nlistProto.diff = function (otherList) {\n  var thisList = this;\n  return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n    return getId(otherList, idx);\n  }, function (idx) {\n    return getId(thisList, idx);\n  });\n};\n/**\n * Get visual property.\n * @param {string} key\n */\n\n\nlistProto.getVisual = function (key) {\n  var visual = this._visual;\n  return visual && visual[key];\n};\n/**\n * Set visual property\n * @param {string|Object} key\n * @param {*} [value]\n *\n * @example\n *  setVisual('color', color);\n *  setVisual({\n *      'color': color\n *  });\n */\n\n\nlistProto.setVisual = function (key, val) {\n  if (isObject(key)) {\n    for (var name in key) {\n      if (key.hasOwnProperty(name)) {\n        this.setVisual(name, key[name]);\n      }\n    }\n\n    return;\n  }\n\n  this._visual = this._visual || {};\n  this._visual[key] = val;\n};\n/**\n * Set layout property.\n * @param {string|Object} key\n * @param {*} [val]\n */\n\n\nlistProto.setLayout = function (key, val) {\n  if (isObject(key)) {\n    for (var name in key) {\n      if (key.hasOwnProperty(name)) {\n        this.setLayout(name, key[name]);\n      }\n    }\n\n    return;\n  }\n\n  this._layout[key] = val;\n};\n/**\n * Get layout property.\n * @param  {string} key.\n * @return {*}\n */\n\n\nlistProto.getLayout = function (key) {\n  return this._layout[key];\n};\n/**\n * Get layout of single data item\n * @param {number} idx\n */\n\n\nlistProto.getItemLayout = function (idx) {\n  return this._itemLayouts[idx];\n};\n/**\n * Set layout of single data item\n * @param {number} idx\n * @param {Object} layout\n * @param {boolean=} [merge=false]\n */\n\n\nlistProto.setItemLayout = function (idx, layout, merge) {\n  this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n};\n/**\n * Clear all layout of single data item\n */\n\n\nlistProto.clearItemLayouts = function () {\n  this._itemLayouts.length = 0;\n};\n/**\n * Get visual property of single data item\n * @param {number} idx\n * @param {string} key\n * @param {boolean} [ignoreParent=false]\n */\n\n\nlistProto.getItemVisual = function (idx, key, ignoreParent) {\n  var itemVisual = this._itemVisuals[idx];\n  var val = itemVisual && itemVisual[key];\n\n  if (val == null && !ignoreParent) {\n    // Use global visual property\n    return this.getVisual(key);\n  }\n\n  return val;\n};\n/**\n * Set visual property of single data item\n *\n * @param {number} idx\n * @param {string|Object} key\n * @param {*} [value]\n *\n * @example\n *  setItemVisual(0, 'color', color);\n *  setItemVisual(0, {\n *      'color': color\n *  });\n */\n\n\nlistProto.setItemVisual = function (idx, key, value) {\n  var itemVisual = this._itemVisuals[idx] || {};\n  var hasItemVisual = this.hasItemVisual;\n  this._itemVisuals[idx] = itemVisual;\n\n  if (isObject(key)) {\n    for (var name in key) {\n      if (key.hasOwnProperty(name)) {\n        itemVisual[name] = key[name];\n        hasItemVisual[name] = true;\n      }\n    }\n\n    return;\n  }\n\n  itemVisual[key] = value;\n  hasItemVisual[key] = true;\n};\n/**\n * Clear itemVisuals and list visual.\n */\n\n\nlistProto.clearAllVisual = function () {\n  this._visual = {};\n  this._itemVisuals = [];\n  this.hasItemVisual = {};\n};\n\nvar setItemDataAndSeriesIndex = function (child) {\n  child.seriesIndex = this.seriesIndex;\n  child.dataIndex = this.dataIndex;\n  child.dataType = this.dataType;\n};\n/**\n * Set graphic element relative to data. It can be set as null\n * @param {number} idx\n * @param {module:zrender/Element} [el]\n */\n\n\nlistProto.setItemGraphicEl = function (idx, el) {\n  var hostModel = this.hostModel;\n\n  if (el) {\n    // Add data index and series index for indexing the data by element\n    // Useful in tooltip\n    el.dataIndex = idx;\n    el.dataType = this.dataType;\n    el.seriesIndex = hostModel && hostModel.seriesIndex;\n\n    if (el.type === 'group') {\n      el.traverse(setItemDataAndSeriesIndex, el);\n    }\n  }\n\n  this._graphicEls[idx] = el;\n};\n/**\n * @param {number} idx\n * @return {module:zrender/Element}\n */\n\n\nlistProto.getItemGraphicEl = function (idx) {\n  return this._graphicEls[idx];\n};\n/**\n * @param {Function} cb\n * @param {*} context\n */\n\n\nlistProto.eachItemGraphicEl = function (cb, context) {\n  zrUtil.each(this._graphicEls, function (el, idx) {\n    if (el) {\n      cb && cb.call(context, el, idx);\n    }\n  });\n};\n/**\n * Shallow clone a new list except visual and layout properties, and graph elements.\n * New list only change the indices.\n */\n\n\nlistProto.cloneShallow = function (list) {\n  if (!list) {\n    var dimensionInfoList = zrUtil.map(this.dimensions, this.getDimensionInfo, this);\n    list = new List(dimensionInfoList, this.hostModel);\n  } // FIXME\n\n\n  list._storage = this._storage;\n  transferProperties(list, this); // Clone will not change the data extent and indices\n\n  if (this._indices) {\n    var Ctor = this._indices.constructor;\n    list._indices = new Ctor(this._indices);\n  } else {\n    list._indices = null;\n  }\n\n  list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n  return list;\n};\n/**\n * Wrap some method to add more feature\n * @param {string} methodName\n * @param {Function} injectFunction\n */\n\n\nlistProto.wrapMethod = function (methodName, injectFunction) {\n  var originalMethod = this[methodName];\n\n  if (typeof originalMethod !== 'function') {\n    return;\n  }\n\n  this.__wrappedMethods = this.__wrappedMethods || [];\n\n  this.__wrappedMethods.push(methodName);\n\n  this[methodName] = function () {\n    var res = originalMethod.apply(this, arguments);\n    return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n  };\n}; // Methods that create a new list based on this list should be listed here.\n// Notice that those method should `RETURN` the new list.\n\n\nlistProto.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'map']; // Methods that change indices of this list should be listed here.\n\nlistProto.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\nvar _default = List;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/List.js\n// module id = M7eM\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Traverse the tree from bottom to top and do something\n * @param  {module:echarts/data/Tree~TreeNode} root  The real root of the tree\n * @param  {Function} callback\n */\nfunction eachAfter(root, callback, separation) {\n  var nodes = [root];\n  var next = [];\n  var node;\n\n  while (node = nodes.pop()) {\n    // jshint ignore:line\n    next.push(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = 0; i < children.length; i++) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n\n  while (node = next.pop()) {\n    // jshint ignore:line\n    callback(node, separation);\n  }\n}\n/**\n * Traverse the tree from top to bottom and do something\n * @param  {module:echarts/data/Tree~TreeNode} root  The real root of the tree\n * @param  {Function} callback\n */\n\n\nfunction eachBefore(root, callback) {\n  var nodes = [root];\n  var node;\n\n  while (node = nodes.pop()) {\n    // jshint ignore:line\n    callback(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = children.length - 1; i >= 0; i--) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n}\n\nexports.eachAfter = eachAfter;\nexports.eachBefore = eachBefore;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/traversalHelper.js\n// module id = M9Ps\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar parseGeoJson = require(\"./parseGeoJson\");\n\nvar View = require(\"../View\");\n\nvar fixNanhai = require(\"./fix/nanhai\");\n\nvar fixTextCoord = require(\"./fix/textCoord\");\n\nvar fixGeoCoord = require(\"./fix/geoCoord\");\n\nvar fixDiaoyuIsland = require(\"./fix/diaoyuIsland\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Geo fix functions\nvar geoFixFuncs = [fixNanhai, fixTextCoord, fixGeoCoord, fixDiaoyuIsland];\n/**\n * [Geo description]\n * @param {string} name Geo name\n * @param {string} map Map type\n * @param {Object} geoJson\n * @param {Object} [specialAreas]\n *        Specify the positioned areas by left, top, width, height\n * @param {Object.<string, string>} [nameMap]\n *        Specify name alias\n */\n\nfunction Geo(name, map, geoJson, specialAreas, nameMap) {\n  View.call(this, name);\n  /**\n   * Map type\n   * @type {string}\n   */\n\n  this.map = map;\n  this._nameCoordMap = zrUtil.createHashMap();\n  this.loadGeoJson(geoJson, specialAreas, nameMap);\n}\n\nGeo.prototype = {\n  constructor: Geo,\n  type: 'geo',\n\n  /**\n   * @param {Array.<string>}\n   * @readOnly\n   */\n  dimensions: ['lng', 'lat'],\n\n  /**\n   * If contain given lng,lat coord\n   * @param {Array.<number>}\n   * @readOnly\n   */\n  containCoord: function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return true;\n      }\n    }\n\n    return false;\n  },\n\n  /**\n   * @param {Object} geoJson\n   * @param {Object} [specialAreas]\n   *        Specify the positioned areas by left, top, width, height\n   * @param {Object.<string, string>} [nameMap]\n   *        Specify name alias\n   */\n  loadGeoJson: function (geoJson, specialAreas, nameMap) {\n    // https://jsperf.com/try-catch-performance-overhead\n    try {\n      this.regions = geoJson ? parseGeoJson(geoJson) : [];\n    } catch (e) {\n      throw 'Invalid geoJson format\\n' + e.message;\n    }\n\n    specialAreas = specialAreas || {};\n    nameMap = nameMap || {};\n    var regions = this.regions;\n    var regionsMap = zrUtil.createHashMap();\n\n    for (var i = 0; i < regions.length; i++) {\n      var regionName = regions[i].name; // Try use the alias in nameMap\n\n      regionName = nameMap.hasOwnProperty(regionName) ? nameMap[regionName] : regionName;\n      regions[i].name = regionName;\n      regionsMap.set(regionName, regions[i]); // Add geoJson\n\n      this.addGeoCoord(regionName, regions[i].center); // Some area like Alaska in USA map needs to be tansformed\n      // to look better\n\n      var specialArea = specialAreas[regionName];\n\n      if (specialArea) {\n        regions[i].transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n      }\n    }\n\n    this._regionsMap = regionsMap;\n    this._rect = null;\n    zrUtil.each(geoFixFuncs, function (fixFunc) {\n      fixFunc(this);\n    }, this);\n  },\n  // Overwrite\n  transformTo: function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    rect = rect.clone(); // Longitute is inverted\n\n    rect.y = -rect.y - rect.height;\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransformable.decomposeTransform();\n    var scale = rawTransformable.scale;\n    scale[1] = -scale[1];\n    rawTransformable.updateTransform();\n\n    this._updateTransform();\n  },\n\n  /**\n   * @param {string} name\n   * @return {module:echarts/coord/geo/Region}\n   */\n  getRegion: function (name) {\n    return this._regionsMap.get(name);\n  },\n  getRegionByCoord: function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return regions[i];\n      }\n    }\n  },\n\n  /**\n   * Add geoCoord for indexing by name\n   * @param {string} name\n   * @param {Array.<number>} geoCoord\n   */\n  addGeoCoord: function (name, geoCoord) {\n    this._nameCoordMap.set(name, geoCoord);\n  },\n\n  /**\n   * Get geoCoord by name\n   * @param {string} name\n   * @return {Array.<number>}\n   */\n  getGeoCoord: function (name) {\n    return this._nameCoordMap.get(name);\n  },\n  // Overwrite\n  getBoundingRect: function () {\n    if (this._rect) {\n      return this._rect;\n    }\n\n    var rect;\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      var regionRect = regions[i].getBoundingRect();\n      rect = rect || regionRect.clone();\n      rect.union(regionRect);\n    } // FIXME Always return new ?\n\n\n    return this._rect = rect || new BoundingRect(0, 0, 0, 0);\n  },\n\n  /**\n   * @param {string|Array.<number>} data\n   * @param {boolean} noRoam\n   * @param {Array.<number>} [out]\n   * @return {Array.<number>}\n   */\n  dataToPoint: function (data, noRoam, out) {\n    if (typeof data === 'string') {\n      // Map area name to geoCoord\n      data = this.getGeoCoord(data);\n    }\n\n    if (data) {\n      return View.prototype.dataToPoint.call(this, data, noRoam, out);\n    }\n  },\n\n  /**\n   * @inheritDoc\n   */\n  convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n  /**\n   * @inheritDoc\n   */\n  convertFromPixel: zrUtil.curry(doConvert, 'pointToData')\n};\nzrUtil.mixin(Geo, View);\n\nfunction doConvert(methodName, ecModel, finder, value) {\n  var geoModel = finder.geoModel;\n  var seriesModel = finder.seriesModel;\n  var coordSys = geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map.\n  || (seriesModel.getReferringComponents('geo')[0] || {}).coordinateSystem : null;\n  return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nvar _default = Geo;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/Geo.js\n// module id = ME4A\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Calculate slider move result.\n * Usage:\n * (1) If both handle0 and handle1 are needed to be moved, set minSpan the same as\n * maxSpan and the same as `Math.abs(handleEnd[1] - handleEnds[0])`.\n * (2) If handle0 is forbidden to cross handle1, set minSpan as `0`.\n *\n * @param {number} delta Move length.\n * @param {Array.<number>} handleEnds handleEnds[0] can be bigger then handleEnds[1].\n *              handleEnds will be modified in this method.\n * @param {Array.<number>} extent handleEnds is restricted by extent.\n *              extent[0] should less or equals than extent[1].\n * @param {number|string} handleIndex Can be 'all', means that both move the two handleEnds,\n *              where the input minSpan and maxSpan will not work.\n * @param {number} [minSpan] The range of dataZoom can not be smaller than that.\n *              If not set, handle0 and cross handle1. If set as a non-negative\n *              number (including `0`), handles will push each other when reaching\n *              the minSpan.\n * @param {number} [maxSpan] The range of dataZoom can not be larger than that.\n * @return {Array.<number>} The input handleEnds.\n */\nfunction _default(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n  // Normalize firstly.\n  handleEnds[0] = restrict(handleEnds[0], extent);\n  handleEnds[1] = restrict(handleEnds[1], extent);\n  delta = delta || 0;\n  var extentSpan = extent[1] - extent[0]; // Notice maxSpan and minSpan can be null/undefined.\n\n  if (minSpan != null) {\n    minSpan = restrict(minSpan, [0, extentSpan]);\n  }\n\n  if (maxSpan != null) {\n    maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n  }\n\n  if (handleIndex === 'all') {\n    minSpan = maxSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n    handleIndex = 0;\n  }\n\n  var originalDistSign = getSpanSign(handleEnds, handleIndex);\n  handleEnds[handleIndex] += delta; // Restrict in extent.\n\n  var extentMinSpan = minSpan || 0;\n  var realExtent = extent.slice();\n  originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n  handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent); // Expand span.\n\n  var currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n    // If minSpan exists, 'cross' is forbinden.\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n  } // Shrink span.\n\n\n  var currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (maxSpan != null && currDistSign.span > maxSpan) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n  }\n\n  return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n  var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex]; // If `handleEnds[0] === handleEnds[1]`, always believe that handleEnd[0]\n  // is at left of handleEnds[1] for non-cross case.\n\n  return {\n    span: Math.abs(dist),\n    sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n  };\n}\n\nfunction restrict(value, extend) {\n  return Math.min(extend[1], Math.max(extend[0], value));\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/sliderMove.js\n// module id = MP34\n// module chunks = 0","var _util = require(\"../../core/util\");\n\nvar retrieve2 = _util.retrieve2;\nvar retrieve3 = _util.retrieve3;\nvar each = _util.each;\nvar normalizeCssArray = _util.normalizeCssArray;\nvar isString = _util.isString;\nvar isObject = _util.isObject;\n\nvar textContain = require(\"../../contain/text\");\n\nvar roundRectHelper = require(\"./roundRect\");\n\nvar imageHelper = require(\"./image\");\n\nvar fixShadow = require(\"./fixShadow\");\n\n// TODO: Have not support 'start', 'end' yet.\nvar VALID_TEXT_ALIGN = {\n  left: 1,\n  right: 1,\n  center: 1\n};\nvar VALID_TEXT_VERTICAL_ALIGN = {\n  top: 1,\n  bottom: 1,\n  middle: 1\n};\n/**\n * @param {module:zrender/graphic/Style} style\n * @return {module:zrender/graphic/Style} The input style.\n */\n\nfunction normalizeTextStyle(style) {\n  normalizeStyle(style);\n  each(style.rich, normalizeStyle);\n  return style;\n}\n\nfunction normalizeStyle(style) {\n  if (style) {\n    style.font = textContain.makeFont(style);\n    var textAlign = style.textAlign;\n    textAlign === 'middle' && (textAlign = 'center');\n    style.textAlign = textAlign == null || VALID_TEXT_ALIGN[textAlign] ? textAlign : 'left'; // Compatible with textBaseline.\n\n    var textVerticalAlign = style.textVerticalAlign || style.textBaseline;\n    textVerticalAlign === 'center' && (textVerticalAlign = 'middle');\n    style.textVerticalAlign = textVerticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[textVerticalAlign] ? textVerticalAlign : 'top';\n    var textPadding = style.textPadding;\n\n    if (textPadding) {\n      style.textPadding = normalizeCssArray(style.textPadding);\n    }\n  }\n}\n/**\n * @param {CanvasRenderingContext2D} ctx\n * @param {string} text\n * @param {module:zrender/graphic/Style} style\n * @param {Object|boolean} [rect] {x, y, width, height}\n *                  If set false, rect text is not used.\n */\n\n\nfunction renderText(hostEl, ctx, text, style, rect) {\n  style.rich ? renderRichText(hostEl, ctx, text, style, rect) : renderPlainText(hostEl, ctx, text, style, rect);\n}\n\nfunction renderPlainText(hostEl, ctx, text, style, rect) {\n  var font = setCtx(ctx, 'font', style.font || textContain.DEFAULT_FONT);\n  var textPadding = style.textPadding;\n  var contentBlock = hostEl.__textCotentBlock;\n\n  if (!contentBlock || hostEl.__dirty) {\n    contentBlock = hostEl.__textCotentBlock = textContain.parsePlainText(text, font, textPadding, style.truncate);\n  }\n\n  var outerHeight = contentBlock.outerHeight;\n  var textLines = contentBlock.lines;\n  var lineHeight = contentBlock.lineHeight;\n  var boxPos = getBoxPosition(outerHeight, style, rect);\n  var baseX = boxPos.baseX;\n  var baseY = boxPos.baseY;\n  var textAlign = boxPos.textAlign;\n  var textVerticalAlign = boxPos.textVerticalAlign; // Origin of textRotation should be the base point of text drawing.\n\n  applyTextRotation(ctx, style, rect, baseX, baseY);\n  var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign);\n  var textX = baseX;\n  var textY = boxY;\n  var needDrawBg = needDrawBackground(style);\n\n  if (needDrawBg || textPadding) {\n    // Consider performance, do not call getTextWidth util necessary.\n    var textWidth = textContain.getWidth(text, font);\n    var outerWidth = textWidth;\n    textPadding && (outerWidth += textPadding[1] + textPadding[3]);\n    var boxX = textContain.adjustTextX(baseX, outerWidth, textAlign);\n    needDrawBg && drawBackground(hostEl, ctx, style, boxX, boxY, outerWidth, outerHeight);\n\n    if (textPadding) {\n      textX = getTextXForPadding(baseX, textAlign, textPadding);\n      textY += textPadding[0];\n    }\n  }\n\n  setCtx(ctx, 'textAlign', textAlign || 'left'); // Force baseline to be \"middle\". Otherwise, if using \"top\", the\n  // text will offset downward a little bit in font \"Microsoft YaHei\".\n\n  setCtx(ctx, 'textBaseline', 'middle'); // Always set shadowBlur and shadowOffset to avoid leak from displayable.\n\n  setCtx(ctx, 'shadowBlur', style.textShadowBlur || 0);\n  setCtx(ctx, 'shadowColor', style.textShadowColor || 'transparent');\n  setCtx(ctx, 'shadowOffsetX', style.textShadowOffsetX || 0);\n  setCtx(ctx, 'shadowOffsetY', style.textShadowOffsetY || 0); // `textBaseline` is set as 'middle'.\n\n  textY += lineHeight / 2;\n  var textStrokeWidth = style.textStrokeWidth;\n  var textStroke = getStroke(style.textStroke, textStrokeWidth);\n  var textFill = getFill(style.textFill);\n\n  if (textStroke) {\n    setCtx(ctx, 'lineWidth', textStrokeWidth);\n    setCtx(ctx, 'strokeStyle', textStroke);\n  }\n\n  if (textFill) {\n    setCtx(ctx, 'fillStyle', textFill);\n  }\n\n  for (var i = 0; i < textLines.length; i++) {\n    // Fill after stroke so the outline will not cover the main part.\n    textStroke && ctx.strokeText(textLines[i], textX, textY);\n    textFill && ctx.fillText(textLines[i], textX, textY);\n    textY += lineHeight;\n  }\n}\n\nfunction renderRichText(hostEl, ctx, text, style, rect) {\n  var contentBlock = hostEl.__textCotentBlock;\n\n  if (!contentBlock || hostEl.__dirty) {\n    contentBlock = hostEl.__textCotentBlock = textContain.parseRichText(text, style);\n  }\n\n  drawRichText(hostEl, ctx, contentBlock, style, rect);\n}\n\nfunction drawRichText(hostEl, ctx, contentBlock, style, rect) {\n  var contentWidth = contentBlock.width;\n  var outerWidth = contentBlock.outerWidth;\n  var outerHeight = contentBlock.outerHeight;\n  var textPadding = style.textPadding;\n  var boxPos = getBoxPosition(outerHeight, style, rect);\n  var baseX = boxPos.baseX;\n  var baseY = boxPos.baseY;\n  var textAlign = boxPos.textAlign;\n  var textVerticalAlign = boxPos.textVerticalAlign; // Origin of textRotation should be the base point of text drawing.\n\n  applyTextRotation(ctx, style, rect, baseX, baseY);\n  var boxX = textContain.adjustTextX(baseX, outerWidth, textAlign);\n  var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign);\n  var xLeft = boxX;\n  var lineTop = boxY;\n\n  if (textPadding) {\n    xLeft += textPadding[3];\n    lineTop += textPadding[0];\n  }\n\n  var xRight = xLeft + contentWidth;\n  needDrawBackground(style) && drawBackground(hostEl, ctx, style, boxX, boxY, outerWidth, outerHeight);\n\n  for (var i = 0; i < contentBlock.lines.length; i++) {\n    var line = contentBlock.lines[i];\n    var tokens = line.tokens;\n    var tokenCount = tokens.length;\n    var lineHeight = line.lineHeight;\n    var usedWidth = line.width;\n    var leftIndex = 0;\n    var lineXLeft = xLeft;\n    var lineXRight = xRight;\n    var rightIndex = tokenCount - 1;\n    var token;\n\n    while (leftIndex < tokenCount && (token = tokens[leftIndex], !token.textAlign || token.textAlign === 'left')) {\n      placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXLeft, 'left');\n      usedWidth -= token.width;\n      lineXLeft += token.width;\n      leftIndex++;\n    }\n\n    while (rightIndex >= 0 && (token = tokens[rightIndex], token.textAlign === 'right')) {\n      placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXRight, 'right');\n      usedWidth -= token.width;\n      lineXRight -= token.width;\n      rightIndex--;\n    } // The other tokens are placed as textAlign 'center' if there is enough space.\n\n\n    lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - usedWidth) / 2;\n\n    while (leftIndex <= rightIndex) {\n      token = tokens[leftIndex]; // Consider width specified by user, use 'center' rather than 'left'.\n\n      placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center');\n      lineXLeft += token.width;\n      leftIndex++;\n    }\n\n    lineTop += lineHeight;\n  }\n}\n\nfunction applyTextRotation(ctx, style, rect, x, y) {\n  // textRotation only apply in RectText.\n  if (rect && style.textRotation) {\n    var origin = style.textOrigin;\n\n    if (origin === 'center') {\n      x = rect.width / 2 + rect.x;\n      y = rect.height / 2 + rect.y;\n    } else if (origin) {\n      x = origin[0] + rect.x;\n      y = origin[1] + rect.y;\n    }\n\n    ctx.translate(x, y); // Positive: anticlockwise\n\n    ctx.rotate(-style.textRotation);\n    ctx.translate(-x, -y);\n  }\n}\n\nfunction placeToken(hostEl, ctx, token, style, lineHeight, lineTop, x, textAlign) {\n  var tokenStyle = style.rich[token.styleName] || {}; // 'ctx.textBaseline' is always set as 'middle', for sake of\n  // the bias of \"Microsoft YaHei\".\n\n  var textVerticalAlign = token.textVerticalAlign;\n  var y = lineTop + lineHeight / 2;\n\n  if (textVerticalAlign === 'top') {\n    y = lineTop + token.height / 2;\n  } else if (textVerticalAlign === 'bottom') {\n    y = lineTop + lineHeight - token.height / 2;\n  }\n\n  !token.isLineHolder && needDrawBackground(tokenStyle) && drawBackground(hostEl, ctx, tokenStyle, textAlign === 'right' ? x - token.width : textAlign === 'center' ? x - token.width / 2 : x, y - token.height / 2, token.width, token.height);\n  var textPadding = token.textPadding;\n\n  if (textPadding) {\n    x = getTextXForPadding(x, textAlign, textPadding);\n    y -= token.height / 2 - textPadding[2] - token.textHeight / 2;\n  }\n\n  setCtx(ctx, 'shadowBlur', retrieve3(tokenStyle.textShadowBlur, style.textShadowBlur, 0));\n  setCtx(ctx, 'shadowColor', tokenStyle.textShadowColor || style.textShadowColor || 'transparent');\n  setCtx(ctx, 'shadowOffsetX', retrieve3(tokenStyle.textShadowOffsetX, style.textShadowOffsetX, 0));\n  setCtx(ctx, 'shadowOffsetY', retrieve3(tokenStyle.textShadowOffsetY, style.textShadowOffsetY, 0));\n  setCtx(ctx, 'textAlign', textAlign); // Force baseline to be \"middle\". Otherwise, if using \"top\", the\n  // text will offset downward a little bit in font \"Microsoft YaHei\".\n\n  setCtx(ctx, 'textBaseline', 'middle');\n  setCtx(ctx, 'font', token.font || textContain.DEFAULT_FONT);\n  var textStroke = getStroke(tokenStyle.textStroke || style.textStroke, textStrokeWidth);\n  var textFill = getFill(tokenStyle.textFill || style.textFill);\n  var textStrokeWidth = retrieve2(tokenStyle.textStrokeWidth, style.textStrokeWidth); // Fill after stroke so the outline will not cover the main part.\n\n  if (textStroke) {\n    setCtx(ctx, 'lineWidth', textStrokeWidth);\n    setCtx(ctx, 'strokeStyle', textStroke);\n    ctx.strokeText(token.text, x, y);\n  }\n\n  if (textFill) {\n    setCtx(ctx, 'fillStyle', textFill);\n    ctx.fillText(token.text, x, y);\n  }\n}\n\nfunction needDrawBackground(style) {\n  return style.textBackgroundColor || style.textBorderWidth && style.textBorderColor;\n} // style: {textBackgroundColor, textBorderWidth, textBorderColor, textBorderRadius}\n// shape: {x, y, width, height}\n\n\nfunction drawBackground(hostEl, ctx, style, x, y, width, height) {\n  var textBackgroundColor = style.textBackgroundColor;\n  var textBorderWidth = style.textBorderWidth;\n  var textBorderColor = style.textBorderColor;\n  var isPlainBg = isString(textBackgroundColor);\n  setCtx(ctx, 'shadowBlur', style.textBoxShadowBlur || 0);\n  setCtx(ctx, 'shadowColor', style.textBoxShadowColor || 'transparent');\n  setCtx(ctx, 'shadowOffsetX', style.textBoxShadowOffsetX || 0);\n  setCtx(ctx, 'shadowOffsetY', style.textBoxShadowOffsetY || 0);\n\n  if (isPlainBg || textBorderWidth && textBorderColor) {\n    ctx.beginPath();\n    var textBorderRadius = style.textBorderRadius;\n\n    if (!textBorderRadius) {\n      ctx.rect(x, y, width, height);\n    } else {\n      roundRectHelper.buildPath(ctx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height,\n        r: textBorderRadius\n      });\n    }\n\n    ctx.closePath();\n  }\n\n  if (isPlainBg) {\n    setCtx(ctx, 'fillStyle', textBackgroundColor);\n    ctx.fill();\n  } else if (isObject(textBackgroundColor)) {\n    var image = textBackgroundColor.image;\n    image = imageHelper.createOrUpdateImage(image, null, hostEl, onBgImageLoaded, textBackgroundColor);\n\n    if (image && imageHelper.isImageReady(image)) {\n      ctx.drawImage(image, x, y, width, height);\n    }\n  }\n\n  if (textBorderWidth && textBorderColor) {\n    setCtx(ctx, 'lineWidth', textBorderWidth);\n    setCtx(ctx, 'strokeStyle', textBorderColor);\n    ctx.stroke();\n  }\n}\n\nfunction onBgImageLoaded(image, textBackgroundColor) {\n  // Replace image, so that `contain/text.js#parseRichText`\n  // will get correct result in next tick.\n  textBackgroundColor.image = image;\n}\n\nfunction getBoxPosition(blockHeiht, style, rect) {\n  var baseX = style.x || 0;\n  var baseY = style.y || 0;\n  var textAlign = style.textAlign;\n  var textVerticalAlign = style.textVerticalAlign; // Text position represented by coord\n\n  if (rect) {\n    var textPosition = style.textPosition;\n\n    if (textPosition instanceof Array) {\n      // Percent\n      baseX = rect.x + parsePercent(textPosition[0], rect.width);\n      baseY = rect.y + parsePercent(textPosition[1], rect.height);\n    } else {\n      var res = textContain.adjustTextPositionOnRect(textPosition, rect, style.textDistance);\n      baseX = res.x;\n      baseY = res.y; // Default align and baseline when has textPosition\n\n      textAlign = textAlign || res.textAlign;\n      textVerticalAlign = textVerticalAlign || res.textVerticalAlign;\n    } // textOffset is only support in RectText, otherwise\n    // we have to adjust boundingRect for textOffset.\n\n\n    var textOffset = style.textOffset;\n\n    if (textOffset) {\n      baseX += textOffset[0];\n      baseY += textOffset[1];\n    }\n  }\n\n  return {\n    baseX: baseX,\n    baseY: baseY,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction setCtx(ctx, prop, value) {\n  ctx[prop] = fixShadow(ctx, prop, value);\n  return ctx[prop];\n}\n/**\n * @param {string} [stroke] If specified, do not check style.textStroke.\n * @param {string} [lineWidth] If specified, do not check style.textStroke.\n * @param {number} style\n */\n\n\nfunction getStroke(stroke, lineWidth) {\n  return stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none' ? null // TODO pattern and gradient?\n  : stroke.image || stroke.colorStops ? '#000' : stroke;\n}\n\nfunction getFill(fill) {\n  return fill == null || fill === 'none' ? null // TODO pattern and gradient?\n  : fill.image || fill.colorStops ? '#000' : fill;\n}\n\nfunction parsePercent(value, maxValue) {\n  if (typeof value === 'string') {\n    if (value.lastIndexOf('%') >= 0) {\n      return parseFloat(value) / 100 * maxValue;\n    }\n\n    return parseFloat(value);\n  }\n\n  return value;\n}\n\nfunction getTextXForPadding(x, textAlign, textPadding) {\n  return textAlign === 'right' ? x - textPadding[1] : textAlign === 'center' ? x + textPadding[3] / 2 - textPadding[1] / 2 : x + textPadding[3];\n}\n/**\n * @param {string} text\n * @param {module:zrender/Style} style\n * @return {boolean}\n */\n\n\nfunction needDrawText(text, style) {\n  return text != null && (text || style.textBackgroundColor || style.textBorderWidth && style.textBorderColor || style.textPadding);\n}\n\nexports.normalizeTextStyle = normalizeTextStyle;\nexports.renderText = renderText;\nexports.getStroke = getStroke;\nexports.getFill = getFill;\nexports.needDrawText = needDrawText;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/text.js\n// module id = MPog\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar featureManager = require(\"./featureManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ToolboxModel = echarts.extendComponentModel({\n  type: 'toolbox',\n  layoutMode: {\n    type: 'box',\n    ignoreSize: true\n  },\n  optionUpdated: function () {\n    ToolboxModel.superApply(this, 'optionUpdated', arguments);\n    zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n      var Feature = featureManager.get(featureName);\n      Feature && zrUtil.merge(featureOpt, Feature.defaultOption);\n    });\n  },\n  defaultOption: {\n    show: true,\n    z: 6,\n    zlevel: 0,\n    orient: 'horizontal',\n    left: 'right',\n    top: 'top',\n    // right\n    // bottom\n    backgroundColor: 'transparent',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemSize: 15,\n    itemGap: 8,\n    showTitle: true,\n    iconStyle: {\n      borderColor: '#666',\n      color: 'none'\n    },\n    emphasis: {\n      iconStyle: {\n        borderColor: '#3E98C5'\n      } // textStyle: {},\n      // feature\n\n    }\n  }\n});\nvar _default = ToolboxModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/ToolboxModel.js\n// module id = MXDK\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordsOffsetMap = {\n  '鍗楁捣璇稿矝': [32, 80],\n  // 鍏ㄥ浗\n  '骞夸笢': [0, -10],\n  '棣欐腐': [10, 5],\n  '婢抽棬': [-10, 10],\n  //'鍖椾含': [-10, 0],\n  '澶╂触': [5, 5]\n};\n\nfunction _default(geo) {\n  zrUtil.each(geo.regions, function (region) {\n    var coordFix = coordsOffsetMap[region.name];\n\n    if (coordFix) {\n      var cp = region.center;\n      cp[0] += coordFix[0] / 10.5;\n      cp[1] += -coordFix[1] / (10.5 / 0.75);\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/fix/textCoord.js\n// module id = Mayl\n// module chunks = 0","var MarkerModel = require(\"./MarkerModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = MarkerModel.extend({\n  type: 'markArea',\n  defaultOption: {\n    zlevel: 0,\n    // PENDING\n    z: 1,\n    tooltip: {\n      trigger: 'item'\n    },\n    // markArea should fixed on the coordinate system\n    animation: false,\n    label: {\n      show: true,\n      position: 'top'\n    },\n    itemStyle: {\n      // color and borderColor default to use color from series\n      // color: 'auto'\n      // borderColor: 'auto'\n      borderWidth: 0\n    },\n    emphasis: {\n      label: {\n        show: true,\n        position: 'top'\n      }\n    }\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkAreaModel.js\n// module id = Mc0f\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_has.js\n// module id = Mcur\n// module chunks = 0","require(\"../coord/radar/Radar\");\n\nrequire(\"../coord/radar/RadarModel\");\n\nrequire(\"./radar/RadarView\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/radar.js\n// module id = MdZ+\n// module chunks = 0","var createDimensions = require(\"../../data/helper/createDimensions\");\n\nvar List = require(\"../../data/List\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar extend = _util.extend;\nvar isArray = _util.isArray;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * [Usage]:\n * (1)\n * createListSimply(seriesModel, ['value']);\n * (2)\n * createListSimply(seriesModel, {\n *     coordDimensions: ['value'],\n *     dimensionsCount: 5\n * });\n *\n * @param {module:echarts/model/Series} seriesModel\n * @param {Object|Array.<string|Object>} opt opt or coordDimensions\n *        The options in opt, see `echarts/data/helper/createDimensions`\n * @param {Array.<string>} [nameList]\n * @return {module:echarts/data/List}\n */\nfunction _default(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/createListSimply.js\n// module id = Mf6k\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar axisPointerModelHelper = require(\"../axisPointer/modelHelper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Base class of AxisView.\n */\nvar AxisView = echarts.extendComponentView({\n  type: 'axis',\n\n  /**\n   * @private\n   */\n  _axisPointer: null,\n\n  /**\n   * @protected\n   * @type {string}\n   */\n  axisPointerClass: null,\n\n  /**\n   * @override\n   */\n  render: function (axisModel, ecModel, api, payload) {\n    // FIXME\n    // This process should proformed after coordinate systems updated\n    // (axis scale updated), and should be performed each time update.\n    // So put it here temporarily, although it is not appropriate to\n    // put a model-writing procedure in `view`.\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n    AxisView.superApply(this, 'render', arguments);\n    updateAxisPointer(this, axisModel, ecModel, api, payload, true);\n  },\n\n  /**\n   * Action handler.\n   * @public\n   * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n   * @param {module:echarts/model/Global} ecModel\n   * @param {module:echarts/ExtensionAPI} api\n   * @param {Object} payload\n   */\n  updateAxisPointer: function (axisModel, ecModel, api, payload, force) {\n    updateAxisPointer(this, axisModel, ecModel, api, payload, false);\n  },\n\n  /**\n   * @override\n   */\n  remove: function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n    AxisView.superApply(this, 'remove', arguments);\n  },\n\n  /**\n   * @override\n   */\n  dispose: function (ecModel, api) {\n    disposeAxisPointer(this, api);\n    AxisView.superApply(this, 'dispose', arguments);\n  }\n});\n\nfunction updateAxisPointer(axisView, axisModel, ecModel, api, payload, forceRender) {\n  var Clazz = AxisView.getAxisPointerClass(axisView.axisPointerClass);\n\n  if (!Clazz) {\n    return;\n  }\n\n  var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n  axisPointerModel ? (axisView._axisPointer || (axisView._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : disposeAxisPointer(axisView, api);\n}\n\nfunction disposeAxisPointer(axisView, ecModel, api) {\n  var axisPointer = axisView._axisPointer;\n  axisPointer && axisPointer.dispose(ecModel, api);\n  axisView._axisPointer = null;\n}\n\nvar axisPointerClazz = [];\n\nAxisView.registerAxisPointerClass = function (type, clazz) {\n  axisPointerClazz[type] = clazz;\n};\n\nAxisView.getAxisPointerClass = function (type) {\n  return type && axisPointerClazz[type];\n};\n\nvar _default = AxisView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis/AxisView.js\n// module id = MiuX\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Model = require(\"../../model/Model\");\n\nvar AxisView = require(\"./AxisView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'splitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n  rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n  var start = polar.coordToPoint([rExtent[0], angle]);\n  var end = polar.coordToPoint([rExtent[1], angle]);\n  return {\n    x1: start[0],\n    y1: start[1],\n    x2: end[0],\n    y2: end[1]\n  };\n}\n\nfunction getRadiusIdx(polar) {\n  var radiusAxis = polar.getRadiusAxis();\n  return radiusAxis.inverse ? 0 : 1;\n} // Remove the last tick which will overlap the first tick\n\n\nfunction fixAngleOverlap(list) {\n  var firstItem = list[0];\n  var lastItem = list[list.length - 1];\n\n  if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n    list.pop();\n  }\n}\n\nvar _default = AxisView.extend({\n  type: 'angleAxis',\n  axisPointerClass: 'PolarAxisPointer',\n  render: function (angleAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!angleAxisModel.get('show')) {\n      return;\n    }\n\n    var angleAxis = angleAxisModel.axis;\n    var polar = angleAxis.polar;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var ticksAngles = angleAxis.getTicksCoords();\n    var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n      var labelItem = zrUtil.clone(labelItem);\n      labelItem.coord = angleAxis.dataToCoord(labelItem.tickValue);\n      return labelItem;\n    });\n    fixAngleOverlap(labels);\n    fixAngleOverlap(ticksAngles);\n    zrUtil.each(elementList, function (name) {\n      if (angleAxisModel.get(name + '.show') && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n        this['_' + name](angleAxisModel, polar, ticksAngles, radiusExtent, labels);\n      }\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _axisLine: function (angleAxisModel, polar, ticksAngles, radiusExtent) {\n    var lineStyleModel = angleAxisModel.getModel('axisLine.lineStyle');\n    var circle = new graphic.Circle({\n      shape: {\n        cx: polar.cx,\n        cy: polar.cy,\n        r: radiusExtent[getRadiusIdx(polar)]\n      },\n      style: lineStyleModel.getLineStyle(),\n      z2: 1,\n      silent: true\n    });\n    circle.style.fill = null;\n    this.group.add(circle);\n  },\n\n  /**\n   * @private\n   */\n  _axisTick: function (angleAxisModel, polar, ticksAngles, radiusExtent) {\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n      return new graphic.Line({\n        shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n      });\n    });\n    this.group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n        stroke: angleAxisModel.get('axisLine.lineStyle.color')\n      })\n    }));\n  },\n\n  /**\n   * @private\n   */\n  _axisLabel: function (angleAxisModel, polar, ticksAngles, radiusExtent, labels) {\n    var rawCategoryData = angleAxisModel.getCategories(true);\n    var commonLabelModel = angleAxisModel.getModel('axisLabel');\n    var labelMargin = commonLabelModel.get('margin'); // Use length of ticksAngles because it may remove the last tick to avoid overlapping\n\n    zrUtil.each(labels, function (labelItem, idx) {\n      var labelModel = commonLabelModel;\n      var tickValue = labelItem.tickValue;\n      var r = radiusExtent[getRadiusIdx(polar)];\n      var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n      var cx = polar.cx;\n      var cy = polar.cy;\n      var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n      var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n      if (rawCategoryData && rawCategoryData[tickValue] && rawCategoryData[tickValue].textStyle) {\n        labelModel = new Model(rawCategoryData[tickValue].textStyle, commonLabelModel, commonLabelModel.ecModel);\n      }\n\n      var textEl = new graphic.Text({\n        silent: true\n      });\n      this.group.add(textEl);\n      graphic.setTextStyle(textEl.style, labelModel, {\n        x: p[0],\n        y: p[1],\n        textFill: labelModel.getTextColor() || angleAxisModel.get('axisLine.lineStyle.color'),\n        text: labelItem.formattedLabel,\n        textAlign: labelTextAlign,\n        textVerticalAlign: labelTextVerticalAlign\n      });\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _splitLine: function (angleAxisModel, polar, ticksAngles, radiusExtent) {\n    var splitLineModel = angleAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksAngles.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n      }));\n    } // Simple optimization\n    // Batching the lines if color are the same\n\n\n    for (var i = 0; i < splitLines.length; i++) {\n      this.group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyleModel.getLineStyle()),\n        silent: true,\n        z: angleAxisModel.get('z')\n      }));\n    }\n  },\n\n  /**\n   * @private\n   */\n  _splitArea: function (angleAxisModel, polar, ticksAngles, radiusExtent) {\n    if (!ticksAngles.length) {\n      return;\n    }\n\n    var splitAreaModel = angleAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var RADIAN = Math.PI / 180;\n    var prevAngle = -ticksAngles[0].coord * RADIAN;\n    var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n    var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n    var clockwise = angleAxisModel.get('clockwise');\n\n    for (var i = 1; i < ticksAngles.length; i++) {\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: r0,\n          r: r1,\n          startAngle: prevAngle,\n          endAngle: -ticksAngles[i].coord * RADIAN,\n          clockwise: clockwise\n        },\n        silent: true\n      }));\n      prevAngle = -ticksAngles[i].coord * RADIAN;\n    } // Simple optimization\n    // Batching the lines if color are the same\n\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      this.group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis/AngleAxisView.js\n// module id = Mp8l\n// module chunks = 0","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n  O = toIObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return gOPD(O, P);\n  } catch (e) { /* empty */ }\n  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gopd.js\n// module id = MqD/\n// module chunks = 0","// https://github.com/mziccard/node-timsort\nvar DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\n\nfunction minRunLength(n) {\n  var r = 0;\n\n  while (n >= DEFAULT_MIN_MERGE) {\n    r |= n & 1;\n    n >>= 1;\n  }\n\n  return n + r;\n}\n\nfunction makeAscendingRun(array, lo, hi, compare) {\n  var runHi = lo + 1;\n\n  if (runHi === hi) {\n    return 1;\n  }\n\n  if (compare(array[runHi++], array[lo]) < 0) {\n    while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n      runHi++;\n    }\n\n    reverseRun(array, lo, runHi);\n  } else {\n    while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n      runHi++;\n    }\n  }\n\n  return runHi - lo;\n}\n\nfunction reverseRun(array, lo, hi) {\n  hi--;\n\n  while (lo < hi) {\n    var t = array[lo];\n    array[lo++] = array[hi];\n    array[hi--] = t;\n  }\n}\n\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n  if (start === lo) {\n    start++;\n  }\n\n  for (; start < hi; start++) {\n    var pivot = array[start];\n    var left = lo;\n    var right = start;\n    var mid;\n\n    while (left < right) {\n      mid = left + right >>> 1;\n\n      if (compare(pivot, array[mid]) < 0) {\n        right = mid;\n      } else {\n        left = mid + 1;\n      }\n    }\n\n    var n = start - left;\n\n    switch (n) {\n      case 3:\n        array[left + 3] = array[left + 2];\n\n      case 2:\n        array[left + 2] = array[left + 1];\n\n      case 1:\n        array[left + 1] = array[left];\n        break;\n\n      default:\n        while (n > 0) {\n          array[left + n] = array[left + n - 1];\n          n--;\n        }\n\n    }\n\n    array[left] = pivot;\n  }\n}\n\nfunction gallopLeft(value, array, start, length, hint, compare) {\n  var lastOffset = 0;\n  var maxOffset = 0;\n  var offset = 1;\n\n  if (compare(value, array[start + hint]) > 0) {\n    maxOffset = length - hint;\n\n    while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n      lastOffset = offset;\n      offset = (offset << 1) + 1;\n\n      if (offset <= 0) {\n        offset = maxOffset;\n      }\n    }\n\n    if (offset > maxOffset) {\n      offset = maxOffset;\n    }\n\n    lastOffset += hint;\n    offset += hint;\n  } else {\n    maxOffset = hint + 1;\n\n    while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n      lastOffset = offset;\n      offset = (offset << 1) + 1;\n\n      if (offset <= 0) {\n        offset = maxOffset;\n      }\n    }\n\n    if (offset > maxOffset) {\n      offset = maxOffset;\n    }\n\n    var tmp = lastOffset;\n    lastOffset = hint - offset;\n    offset = hint - tmp;\n  }\n\n  lastOffset++;\n\n  while (lastOffset < offset) {\n    var m = lastOffset + (offset - lastOffset >>> 1);\n\n    if (compare(value, array[start + m]) > 0) {\n      lastOffset = m + 1;\n    } else {\n      offset = m;\n    }\n  }\n\n  return offset;\n}\n\nfunction gallopRight(value, array, start, length, hint, compare) {\n  var lastOffset = 0;\n  var maxOffset = 0;\n  var offset = 1;\n\n  if (compare(value, array[start + hint]) < 0) {\n    maxOffset = hint + 1;\n\n    while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n      lastOffset = offset;\n      offset = (offset << 1) + 1;\n\n      if (offset <= 0) {\n        offset = maxOffset;\n      }\n    }\n\n    if (offset > maxOffset) {\n      offset = maxOffset;\n    }\n\n    var tmp = lastOffset;\n    lastOffset = hint - offset;\n    offset = hint - tmp;\n  } else {\n    maxOffset = length - hint;\n\n    while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n      lastOffset = offset;\n      offset = (offset << 1) + 1;\n\n      if (offset <= 0) {\n        offset = maxOffset;\n      }\n    }\n\n    if (offset > maxOffset) {\n      offset = maxOffset;\n    }\n\n    lastOffset += hint;\n    offset += hint;\n  }\n\n  lastOffset++;\n\n  while (lastOffset < offset) {\n    var m = lastOffset + (offset - lastOffset >>> 1);\n\n    if (compare(value, array[start + m]) < 0) {\n      offset = m;\n    } else {\n      lastOffset = m + 1;\n    }\n  }\n\n  return offset;\n}\n\nfunction TimSort(array, compare) {\n  var minGallop = DEFAULT_MIN_GALLOPING;\n  var length = 0;\n  var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n  var stackLength = 0;\n  var runStart;\n  var runLength;\n  var stackSize = 0;\n  length = array.length;\n\n  if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n    tmpStorageLength = length >>> 1;\n  }\n\n  var tmp = [];\n  stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n  runStart = [];\n  runLength = [];\n\n  function pushRun(_runStart, _runLength) {\n    runStart[stackSize] = _runStart;\n    runLength[stackSize] = _runLength;\n    stackSize += 1;\n  }\n\n  function mergeRuns() {\n    while (stackSize > 1) {\n      var n = stackSize - 2;\n\n      if (n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1] || n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1]) {\n        if (runLength[n - 1] < runLength[n + 1]) {\n          n--;\n        }\n      } else if (runLength[n] > runLength[n + 1]) {\n        break;\n      }\n\n      mergeAt(n);\n    }\n  }\n\n  function forceMergeRuns() {\n    while (stackSize > 1) {\n      var n = stackSize - 2;\n\n      if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n        n--;\n      }\n\n      mergeAt(n);\n    }\n  }\n\n  function mergeAt(i) {\n    var start1 = runStart[i];\n    var length1 = runLength[i];\n    var start2 = runStart[i + 1];\n    var length2 = runLength[i + 1];\n    runLength[i] = length1 + length2;\n\n    if (i === stackSize - 3) {\n      runStart[i + 1] = runStart[i + 2];\n      runLength[i + 1] = runLength[i + 2];\n    }\n\n    stackSize--;\n    var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n    start1 += k;\n    length1 -= k;\n\n    if (length1 === 0) {\n      return;\n    }\n\n    length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n\n    if (length2 === 0) {\n      return;\n    }\n\n    if (length1 <= length2) {\n      mergeLow(start1, length1, start2, length2);\n    } else {\n      mergeHigh(start1, length1, start2, length2);\n    }\n  }\n\n  function mergeLow(start1, length1, start2, length2) {\n    var i = 0;\n\n    for (i = 0; i < length1; i++) {\n      tmp[i] = array[start1 + i];\n    }\n\n    var cursor1 = 0;\n    var cursor2 = start2;\n    var dest = start1;\n    array[dest++] = array[cursor2++];\n\n    if (--length2 === 0) {\n      for (i = 0; i < length1; i++) {\n        array[dest + i] = tmp[cursor1 + i];\n      }\n\n      return;\n    }\n\n    if (length1 === 1) {\n      for (i = 0; i < length2; i++) {\n        array[dest + i] = array[cursor2 + i];\n      }\n\n      array[dest + length2] = tmp[cursor1];\n      return;\n    }\n\n    var _minGallop = minGallop;\n    var count1, count2, exit;\n\n    while (1) {\n      count1 = 0;\n      count2 = 0;\n      exit = false;\n\n      do {\n        if (compare(array[cursor2], tmp[cursor1]) < 0) {\n          array[dest++] = array[cursor2++];\n          count2++;\n          count1 = 0;\n\n          if (--length2 === 0) {\n            exit = true;\n            break;\n          }\n        } else {\n          array[dest++] = tmp[cursor1++];\n          count1++;\n          count2 = 0;\n\n          if (--length1 === 1) {\n            exit = true;\n            break;\n          }\n        }\n      } while ((count1 | count2) < _minGallop);\n\n      if (exit) {\n        break;\n      }\n\n      do {\n        count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n\n        if (count1 !== 0) {\n          for (i = 0; i < count1; i++) {\n            array[dest + i] = tmp[cursor1 + i];\n          }\n\n          dest += count1;\n          cursor1 += count1;\n          length1 -= count1;\n\n          if (length1 <= 1) {\n            exit = true;\n            break;\n          }\n        }\n\n        array[dest++] = array[cursor2++];\n\n        if (--length2 === 0) {\n          exit = true;\n          break;\n        }\n\n        count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n\n        if (count2 !== 0) {\n          for (i = 0; i < count2; i++) {\n            array[dest + i] = array[cursor2 + i];\n          }\n\n          dest += count2;\n          cursor2 += count2;\n          length2 -= count2;\n\n          if (length2 === 0) {\n            exit = true;\n            break;\n          }\n        }\n\n        array[dest++] = tmp[cursor1++];\n\n        if (--length1 === 1) {\n          exit = true;\n          break;\n        }\n\n        _minGallop--;\n      } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n\n      if (exit) {\n        break;\n      }\n\n      if (_minGallop < 0) {\n        _minGallop = 0;\n      }\n\n      _minGallop += 2;\n    }\n\n    minGallop = _minGallop;\n    minGallop < 1 && (minGallop = 1);\n\n    if (length1 === 1) {\n      for (i = 0; i < length2; i++) {\n        array[dest + i] = array[cursor2 + i];\n      }\n\n      array[dest + length2] = tmp[cursor1];\n    } else if (length1 === 0) {\n      throw new Error(); // throw new Error('mergeLow preconditions were not respected');\n    } else {\n      for (i = 0; i < length1; i++) {\n        array[dest + i] = tmp[cursor1 + i];\n      }\n    }\n  }\n\n  function mergeHigh(start1, length1, start2, length2) {\n    var i = 0;\n\n    for (i = 0; i < length2; i++) {\n      tmp[i] = array[start2 + i];\n    }\n\n    var cursor1 = start1 + length1 - 1;\n    var cursor2 = length2 - 1;\n    var dest = start2 + length2 - 1;\n    var customCursor = 0;\n    var customDest = 0;\n    array[dest--] = array[cursor1--];\n\n    if (--length1 === 0) {\n      customCursor = dest - (length2 - 1);\n\n      for (i = 0; i < length2; i++) {\n        array[customCursor + i] = tmp[i];\n      }\n\n      return;\n    }\n\n    if (length2 === 1) {\n      dest -= length1;\n      cursor1 -= length1;\n      customDest = dest + 1;\n      customCursor = cursor1 + 1;\n\n      for (i = length1 - 1; i >= 0; i--) {\n        array[customDest + i] = array[customCursor + i];\n      }\n\n      array[dest] = tmp[cursor2];\n      return;\n    }\n\n    var _minGallop = minGallop;\n\n    while (true) {\n      var count1 = 0;\n      var count2 = 0;\n      var exit = false;\n\n      do {\n        if (compare(tmp[cursor2], array[cursor1]) < 0) {\n          array[dest--] = array[cursor1--];\n          count1++;\n          count2 = 0;\n\n          if (--length1 === 0) {\n            exit = true;\n            break;\n          }\n        } else {\n          array[dest--] = tmp[cursor2--];\n          count2++;\n          count1 = 0;\n\n          if (--length2 === 1) {\n            exit = true;\n            break;\n          }\n        }\n      } while ((count1 | count2) < _minGallop);\n\n      if (exit) {\n        break;\n      }\n\n      do {\n        count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n\n        if (count1 !== 0) {\n          dest -= count1;\n          cursor1 -= count1;\n          length1 -= count1;\n          customDest = dest + 1;\n          customCursor = cursor1 + 1;\n\n          for (i = count1 - 1; i >= 0; i--) {\n            array[customDest + i] = array[customCursor + i];\n          }\n\n          if (length1 === 0) {\n            exit = true;\n            break;\n          }\n        }\n\n        array[dest--] = tmp[cursor2--];\n\n        if (--length2 === 1) {\n          exit = true;\n          break;\n        }\n\n        count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n\n        if (count2 !== 0) {\n          dest -= count2;\n          cursor2 -= count2;\n          length2 -= count2;\n          customDest = dest + 1;\n          customCursor = cursor2 + 1;\n\n          for (i = 0; i < count2; i++) {\n            array[customDest + i] = tmp[customCursor + i];\n          }\n\n          if (length2 <= 1) {\n            exit = true;\n            break;\n          }\n        }\n\n        array[dest--] = array[cursor1--];\n\n        if (--length1 === 0) {\n          exit = true;\n          break;\n        }\n\n        _minGallop--;\n      } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n\n      if (exit) {\n        break;\n      }\n\n      if (_minGallop < 0) {\n        _minGallop = 0;\n      }\n\n      _minGallop += 2;\n    }\n\n    minGallop = _minGallop;\n\n    if (minGallop < 1) {\n      minGallop = 1;\n    }\n\n    if (length2 === 1) {\n      dest -= length1;\n      cursor1 -= length1;\n      customDest = dest + 1;\n      customCursor = cursor1 + 1;\n\n      for (i = length1 - 1; i >= 0; i--) {\n        array[customDest + i] = array[customCursor + i];\n      }\n\n      array[dest] = tmp[cursor2];\n    } else if (length2 === 0) {\n      throw new Error(); // throw new Error('mergeHigh preconditions were not respected');\n    } else {\n      customCursor = dest - (length2 - 1);\n\n      for (i = 0; i < length2; i++) {\n        array[customCursor + i] = tmp[i];\n      }\n    }\n  }\n\n  this.mergeRuns = mergeRuns;\n  this.forceMergeRuns = forceMergeRuns;\n  this.pushRun = pushRun;\n}\n\nfunction sort(array, compare, lo, hi) {\n  if (!lo) {\n    lo = 0;\n  }\n\n  if (!hi) {\n    hi = array.length;\n  }\n\n  var remaining = hi - lo;\n\n  if (remaining < 2) {\n    return;\n  }\n\n  var runLength = 0;\n\n  if (remaining < DEFAULT_MIN_MERGE) {\n    runLength = makeAscendingRun(array, lo, hi, compare);\n    binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n    return;\n  }\n\n  var ts = new TimSort(array, compare);\n  var minRun = minRunLength(remaining);\n\n  do {\n    runLength = makeAscendingRun(array, lo, hi, compare);\n\n    if (runLength < minRun) {\n      var force = remaining;\n\n      if (force > minRun) {\n        force = minRun;\n      }\n\n      binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n      runLength = force;\n    }\n\n    ts.pushRun(lo, runLength);\n    ts.mergeRuns();\n    remaining -= runLength;\n    lo += runLength;\n  } while (remaining !== 0);\n\n  ts.forceMergeRuns();\n}\n\nmodule.exports = sort;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/timsort.js\n// module id = Mt3s\n// module chunks = 0","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n  var head, last, notify;\n\n  var flush = function () {\n    var parent, fn;\n    if (isNode && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (e) {\n        if (head) notify();\n        else last = undefined;\n        throw e;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (isNode) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n  } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n    var toggle = true;\n    var node = document.createTextNode('');\n    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    var promise = Promise.resolve(undefined);\n    notify = function () {\n      promise.then(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n\n  return function (fn) {\n    var task = { fn: fn, next: undefined };\n    if (last) last.next = task;\n    if (!head) {\n      head = task;\n      notify();\n    } last = task;\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_microtask.js\n// module id = N69x\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar axisHelper = require(\"../../coord/axisHelper\");\n\nvar ParallelAxis = require(\"./ParallelAxis\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar sliderMove = require(\"../../component/helper/sliderMove\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Parallel Coordinates\n * <https://en.wikipedia.org/wiki/Parallel_coordinates>\n */\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nfunction Parallel(parallelModel, ecModel, api) {\n  /**\n   * key: dimension\n   * @type {Object.<string, module:echarts/coord/parallel/Axis>}\n   * @private\n   */\n  this._axesMap = zrUtil.createHashMap();\n  /**\n   * key: dimension\n   * value: {position: [], rotation, }\n   * @type {Object.<string, Object>}\n   * @private\n   */\n\n  this._axesLayout = {};\n  /**\n   * Always follow axis order.\n   * @type {Array.<string>}\n   * @readOnly\n   */\n\n  this.dimensions = parallelModel.dimensions;\n  /**\n   * @type {module:zrender/core/BoundingRect}\n   */\n\n  this._rect;\n  /**\n   * @type {module:echarts/coord/parallel/ParallelModel}\n   */\n\n  this._model = parallelModel;\n\n  this._init(parallelModel, ecModel, api);\n}\n\nParallel.prototype = {\n  type: 'parallel',\n  constructor: Parallel,\n\n  /**\n   * Initialize cartesian coordinate systems\n   * @private\n   */\n  _init: function (parallelModel, ecModel, api) {\n    var dimensions = parallelModel.dimensions;\n    var parallelAxisIndex = parallelModel.parallelAxisIndex;\n    each(dimensions, function (dim, idx) {\n      var axisIndex = parallelAxisIndex[idx];\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n      var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n      var isCategory = axis.type === 'category';\n      axis.onBand = isCategory && axisModel.get('boundaryGap');\n      axis.inverse = axisModel.get('inverse'); // Injection\n\n      axisModel.axis = axis;\n      axis.model = axisModel;\n      axis.coordinateSystem = axisModel.coordinateSystem = this;\n    }, this);\n  },\n\n  /**\n   * Update axis scale after data processed\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   */\n  update: function (ecModel, api) {\n    this._updateAxesFromSeries(this._model, ecModel);\n  },\n\n  /**\n   * @override\n   */\n  containPoint: function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var axisBase = layoutInfo.axisBase;\n    var layoutBase = layoutInfo.layoutBase;\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var pAxis = point[1 - pixelDimIndex];\n    var pLayout = point[pixelDimIndex];\n    return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n  },\n  getModel: function () {\n    return this._model;\n  },\n\n  /**\n   * Update properties from series\n   * @private\n   */\n  _updateAxesFromSeries: function (parallelModel, ecModel) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (!parallelModel.contains(seriesModel, ecModel)) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      each(this.dimensions, function (dim) {\n        var axis = this._axesMap.get(dim);\n\n        axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n        axisHelper.niceScaleExtent(axis.scale, axis.model);\n      }, this);\n    }, this);\n  },\n\n  /**\n   * Resize the parallel coordinate system.\n   * @param {module:echarts/coord/parallel/ParallelModel} parallelModel\n   * @param {module:echarts/ExtensionAPI} api\n   */\n  resize: function (parallelModel, api) {\n    this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._layoutAxes();\n  },\n\n  /**\n   * @return {module:zrender/core/BoundingRect}\n   */\n  getRect: function () {\n    return this._rect;\n  },\n\n  /**\n   * @private\n   */\n  _makeLayoutInfo: function () {\n    var parallelModel = this._model;\n    var rect = this._rect;\n    var xy = ['x', 'y'];\n    var wh = ['width', 'height'];\n    var layout = parallelModel.get('layout');\n    var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n    var layoutLength = rect[wh[pixelDimIndex]];\n    var layoutExtent = [0, layoutLength];\n    var axisCount = this.dimensions.length;\n    var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n    var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n    var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0; // `axisExpandWindow` is According to the coordinates of [0, axisExpandLength],\n    // for sake of consider the case that axisCollapseWidth is 0 (when screen is narrow),\n    // where collapsed axes should be overlapped.\n\n    var axisExpandWindow = parallelModel.get('axisExpandWindow');\n    var winSize;\n\n    if (!axisExpandWindow) {\n      winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n      var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n      axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    } else {\n      winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    }\n\n    var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount); // Avoid axisCollapseWidth is too small.\n\n    axisCollapseWidth < 3 && (axisCollapseWidth = 0); // Find the first and last indices > ewin[0] and < ewin[1].\n\n    var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1]; // Pos in ec coordinates.\n\n    var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n    return {\n      layout: layout,\n      pixelDimIndex: pixelDimIndex,\n      layoutBase: rect[xy[pixelDimIndex]],\n      layoutLength: layoutLength,\n      axisBase: rect[xy[1 - pixelDimIndex]],\n      axisLength: rect[wh[1 - pixelDimIndex]],\n      axisExpandable: axisExpandable,\n      axisExpandWidth: axisExpandWidth,\n      axisCollapseWidth: axisCollapseWidth,\n      axisExpandWindow: axisExpandWindow,\n      axisCount: axisCount,\n      winInnerIndices: winInnerIndices,\n      axisExpandWindow0Pos: axisExpandWindow0Pos\n    };\n  },\n\n  /**\n   * @private\n   */\n  _layoutAxes: function () {\n    var rect = this._rect;\n    var axes = this._axesMap;\n    var dimensions = this.dimensions;\n\n    var layoutInfo = this._makeLayoutInfo();\n\n    var layout = layoutInfo.layout;\n    axes.each(function (axis) {\n      var axisExtent = [0, layoutInfo.axisLength];\n      var idx = axis.inverse ? 1 : 0;\n      axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n    });\n    each(dimensions, function (dim, idx) {\n      var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n      var positionTable = {\n        horizontal: {\n          x: posInfo.position,\n          y: layoutInfo.axisLength\n        },\n        vertical: {\n          x: 0,\n          y: posInfo.position\n        }\n      };\n      var rotationTable = {\n        horizontal: PI / 2,\n        vertical: 0\n      };\n      var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n      var rotation = rotationTable[layout];\n      var transform = matrix.create();\n      matrix.rotate(transform, transform, rotation);\n      matrix.translate(transform, transform, position); // TODO\n      // tick绛夋帓甯冧俊鎭�俓n      // TODO\n      // 鏍规嵁axis order 鏇存柊 dimensions椤哄簭銆俓n\n      this._axesLayout[dim] = {\n        position: position,\n        rotation: rotation,\n        transform: transform,\n        axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n        axisLabelShow: posInfo.axisLabelShow,\n        nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n        tickDirection: 1,\n        labelDirection: 1\n      };\n    }, this);\n  },\n\n  /**\n   * Get axis by dim.\n   * @param {string} dim\n   * @return {module:echarts/coord/parallel/ParallelAxis} [description]\n   */\n  getAxis: function (dim) {\n    return this._axesMap.get(dim);\n  },\n\n  /**\n   * Convert a dim value of a single item of series data to Point.\n   * @param {*} value\n   * @param {string} dim\n   * @return {Array}\n   */\n  dataToPoint: function (value, dim) {\n    return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n  },\n\n  /**\n   * Travel data for one time, get activeState of each data item.\n   * @param {module:echarts/data/List} data\n   * @param {Functio} cb param: {string} activeState 'active' or 'inactive' or 'normal'\n   *                            {number} dataIndex\n   * @param {number} [start=0] the start dataIndex that travel from.\n   * @param {number} [end=data.count()] the next dataIndex of the last dataIndex will be travel.\n   */\n  eachActiveState: function (data, callback, start, end) {\n    start == null && (start = 0);\n    end == null && (end = data.count());\n    var axesMap = this._axesMap;\n    var dimensions = this.dimensions;\n    var dataDimensions = [];\n    var axisModels = [];\n    zrUtil.each(dimensions, function (axisDim) {\n      dataDimensions.push(data.mapDimension(axisDim));\n      axisModels.push(axesMap.get(axisDim).model);\n    });\n    var hasActiveSet = this.hasAxisBrushed();\n\n    for (var dataIndex = start; dataIndex < end; dataIndex++) {\n      var activeState;\n\n      if (!hasActiveSet) {\n        activeState = 'normal';\n      } else {\n        activeState = 'active';\n        var values = data.getValues(dataDimensions, dataIndex);\n\n        for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n          var state = axisModels[j].getActiveState(values[j]);\n\n          if (state === 'inactive') {\n            activeState = 'inactive';\n            break;\n          }\n        }\n      }\n\n      callback(activeState, dataIndex);\n    }\n  },\n\n  /**\n   * Whether has any activeSet.\n   * @return {boolean}\n   */\n  hasAxisBrushed: function () {\n    var dimensions = this.dimensions;\n    var axesMap = this._axesMap;\n    var hasActiveSet = false;\n\n    for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n      if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n        hasActiveSet = true;\n      }\n    }\n\n    return hasActiveSet;\n  },\n\n  /**\n   * Convert coords of each axis to Point.\n   *  Return point. For example: [10, 20]\n   * @param {Array.<number>} coords\n   * @param {string} dim\n   * @return {Array.<number>}\n   */\n  axisCoordToPoint: function (coord, dim) {\n    var axisLayout = this._axesLayout[dim];\n    return graphic.applyTransform([coord, 0], axisLayout.transform);\n  },\n\n  /**\n   * Get axis layout.\n   */\n  getAxisLayout: function (dim) {\n    return zrUtil.clone(this._axesLayout[dim]);\n  },\n\n  /**\n   * @param {Array.<number>} point\n   * @return {Object} {axisExpandWindow, delta, behavior: 'jump' | 'slide' | 'none'}.\n   */\n  getSlidedAxisExpandWindow: function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n    var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n    var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)]; // Out of the area of coordinate system.\n\n    if (!this.containPoint(point)) {\n      return {\n        behavior: 'none',\n        axisExpandWindow: axisExpandWindow\n      };\n    } // Conver the point from global to expand coordinates.\n\n\n    var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos; // For dragging operation convenience, the window should not be\n    // slided when mouse is the center area of the window.\n\n    var delta;\n    var behavior = 'slide';\n    var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n    var triggerArea = this._model.get('axisExpandSlideTriggerArea'); // But consider touch device, jump is necessary.\n\n\n    var useJump = triggerArea[0] != null;\n\n    if (axisCollapseWidth) {\n      if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * triggerArea[2];\n      } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * (1 - triggerArea[2]);\n      } else {\n        (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n      }\n\n      delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n      delta ? sliderMove(delta, axisExpandWindow, extent, 'all') // Avoid nonsense triger on mousemove.\n      : behavior = 'none';\n    } // When screen is too narrow, make it visible and slidable, although it is hard to interact.\n    else {\n        var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n        var pos = extent[1] * pointCoord / winSize;\n        axisExpandWindow = [mathMax(0, pos - winSize / 2)];\n        axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize);\n        axisExpandWindow[0] = axisExpandWindow[1] - winSize;\n      }\n\n    return {\n      axisExpandWindow: axisExpandWindow,\n      behavior: behavior\n    };\n  }\n};\n\nfunction restrict(len, extent) {\n  return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n  var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n  return {\n    position: step * axisIndex,\n    axisNameAvailableWidth: step,\n    axisLabelShow: true\n  };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n  var layoutLength = layoutInfo.layoutLength;\n  var axisExpandWidth = layoutInfo.axisExpandWidth;\n  var axisCount = layoutInfo.axisCount;\n  var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n  var winInnerIndices = layoutInfo.winInnerIndices;\n  var position;\n  var axisNameAvailableWidth = axisCollapseWidth;\n  var axisLabelShow = false;\n  var nameTruncateMaxWidth;\n\n  if (axisIndex < winInnerIndices[0]) {\n    position = axisIndex * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  } else if (axisIndex <= winInnerIndices[1]) {\n    position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n    axisNameAvailableWidth = axisExpandWidth;\n    axisLabelShow = true;\n  } else {\n    position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  }\n\n  return {\n    position: position,\n    axisNameAvailableWidth: axisNameAvailableWidth,\n    axisLabelShow: axisLabelShow,\n    nameTruncateMaxWidth: nameTruncateMaxWidth\n  };\n}\n\nvar _default = Parallel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/Parallel.js\n// module id = NBoJ\n// module chunks = 0","var _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar map = _util.map;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {Object} coordSys\n * @param {module:echarts/data/List} data\n * @param {string} valueOrigin lineSeries.option.areaStyle.origin\n */\nfunction prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (stacked |= isDimensionStacked(data, dims[0]\n  /*, dims[1]*/\n  )) {\n    // jshint ignore:line\n    dims[0] = stackResultDim;\n  }\n\n  if (stacked |= isDimensionStacked(data, dims[1]\n  /*, dims[0]*/\n  )) {\n    // jshint ignore:line\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } // auto\n  else {\n      // Both positive\n      if (extent[0] > 0) {\n        valueStart = extent[0];\n      } // Both negative\n      else if (extent[1] < 0) {\n          valueStart = extent[1];\n        } // If is one positive, and one negative, onZero shall be true\n\n    }\n\n  return valueStart;\n}\n\nfunction getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}\n\nexports.prepareDataCoordInfo = prepareDataCoordInfo;\nexports.getStackedOnPoint = getStackedOnPoint;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/line/helper.js\n// module id = NHLq\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar layout = require(\"../../util/layout\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _treeHelper = require(\"../helper/treeHelper\");\n\nvar wrapTreePathInfo = _treeHelper.wrapTreePathInfo;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nfunction Breadcrumb(containerGroup) {\n  /**\n   * @private\n   * @type {module:zrender/container/Group}\n   */\n  this.group = new graphic.Group();\n  containerGroup.add(this.group);\n}\n\nBreadcrumb.prototype = {\n  constructor: Breadcrumb,\n  render: function (seriesModel, api, targetNode, onSelect) {\n    var model = seriesModel.getModel('breadcrumb');\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n\n    if (!model.get('show') || !targetNode) {\n      return;\n    }\n\n    var normalStyleModel = model.getModel('itemStyle'); // var emphasisStyleModel = model.getModel('emphasis.itemStyle');\n\n    var textStyleModel = normalStyleModel.getModel('textStyle');\n    var layoutParam = {\n      pos: {\n        left: model.get('left'),\n        right: model.get('right'),\n        top: model.get('top'),\n        bottom: model.get('bottom')\n      },\n      box: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      emptyItemWidth: model.get('emptyItemWidth'),\n      totalWidth: 0,\n      renderList: []\n    };\n\n    this._prepare(targetNode, layoutParam, textStyleModel);\n\n    this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n    layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n  },\n\n  /**\n   * Prepare render list and total width\n   * @private\n   */\n  _prepare: function (targetNode, layoutParam, textStyleModel) {\n    for (var node = targetNode; node; node = node.parentNode) {\n      var text = node.getModel().get('name');\n      var textRect = textStyleModel.getTextRect(text);\n      var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n      layoutParam.totalWidth += itemWidth + ITEM_GAP;\n      layoutParam.renderList.push({\n        node: node,\n        text: text,\n        width: itemWidth\n      });\n    }\n  },\n\n  /**\n   * @private\n   */\n  _renderContent: function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n    // Start rendering.\n    var lastX = 0;\n    var emptyItemWidth = layoutParam.emptyItemWidth;\n    var height = seriesModel.get('breadcrumb.height');\n    var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n    var totalWidth = layoutParam.totalWidth;\n    var renderList = layoutParam.renderList;\n\n    for (var i = renderList.length - 1; i >= 0; i--) {\n      var item = renderList[i];\n      var itemNode = item.node;\n      var itemWidth = item.width;\n      var text = item.text; // Hdie text and shorten width if necessary.\n\n      if (totalWidth > availableSize.width) {\n        totalWidth -= itemWidth - emptyItemWidth;\n        itemWidth = emptyItemWidth;\n        text = null;\n      }\n\n      var el = new graphic.Polygon({\n        shape: {\n          points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n        },\n        style: zrUtil.defaults(normalStyleModel.getItemStyle(), {\n          lineJoin: 'bevel',\n          text: text,\n          textFill: textStyleModel.getTextColor(),\n          textFont: textStyleModel.getFont()\n        }),\n        z: 10,\n        onclick: zrUtil.curry(onSelect, itemNode)\n      });\n      this.group.add(el);\n      packEventData(el, seriesModel, itemNode);\n      lastX += itemWidth + ITEM_GAP;\n    }\n  },\n\n  /**\n   * @override\n   */\n  remove: function () {\n    this.group.removeAll();\n  }\n};\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n  var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n  !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n  !head && points.push([x, y + itemHeight / 2]);\n  return points;\n} // Package custom mouse event.\n\n\nfunction packEventData(el, seriesModel, itemNode) {\n  el.eventData = {\n    componentType: 'series',\n    componentSubType: 'treemap',\n    seriesIndex: seriesModel.componentIndex,\n    seriesName: seriesModel.name,\n    seriesType: 'treemap',\n    selfType: 'breadcrumb',\n    // Distinguish with click event on treemap node.\n    nodeData: {\n      dataIndex: itemNode && itemNode.dataIndex,\n      name: itemNode && itemNode.name\n    },\n    treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n  };\n}\n\nvar _default = Breadcrumb;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/Breadcrumb.js\n// module id = NQ2r\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 106);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 106:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _inputNumber = __webpack_require__(107);\n\nvar _inputNumber2 = _interopRequireDefault(_inputNumber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_inputNumber2.default.install = function (Vue) {\n  Vue.component(_inputNumber2.default.name, _inputNumber2.default);\n};\n\nexports.default = _inputNumber2.default;\n\n/***/ }),\n\n/***/ 107:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue__ = __webpack_require__(108);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_223987a9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_number_vue__ = __webpack_require__(109);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_223987a9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_number_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 108:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _focus = __webpack_require__(19);\n\nvar _focus2 = _interopRequireDefault(_focus);\n\nvar _repeatClick = __webpack_require__(24);\n\nvar _repeatClick2 = _interopRequireDefault(_repeatClick);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElInputNumber',\n  mixins: [(0, _focus2.default)('input')],\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n  directives: {\n    repeatClick: _repeatClick2.default\n  },\n  components: {\n    ElInput: _input2.default\n  },\n  props: {\n    step: {\n      type: Number,\n      default: 1\n    },\n    max: {\n      type: Number,\n      default: Infinity\n    },\n    min: {\n      type: Number,\n      default: -Infinity\n    },\n    value: {},\n    disabled: Boolean,\n    size: String,\n    controls: {\n      type: Boolean,\n      default: true\n    },\n    controlsPosition: {\n      type: String,\n      default: ''\n    },\n    name: String,\n    label: String,\n    precision: {\n      type: Number,\n      validator: function validator(val) {\n        return val >= 0 && val === parseInt(val, 10);\n      }\n    }\n  },\n  data: function data() {\n    return {\n      currentValue: 0\n    };\n  },\n\n  watch: {\n    value: {\n      immediate: true,\n      handler: function handler(value) {\n        var newVal = value === undefined ? value : Number(value);\n        if (newVal !== undefined) {\n          if (isNaN(newVal)) {\n            return;\n          }\n          if (this.precision !== undefined) {\n            newVal = this.toPrecision(newVal, this.precision);\n          }\n        }\n        if (newVal >= this.max) newVal = this.max;\n        if (newVal <= this.min) newVal = this.min;\n        this.currentValue = newVal;\n        this.$emit('input', newVal);\n      }\n    }\n  },\n  computed: {\n    minDisabled: function minDisabled() {\n      return this._decrease(this.value, this.step) < this.min;\n    },\n    maxDisabled: function maxDisabled() {\n      return this._increase(this.value, this.step) > this.max;\n    },\n    numPrecision: function numPrecision() {\n      var value = this.value,\n          step = this.step,\n          getPrecision = this.getPrecision,\n          precision = this.precision;\n\n      var stepPrecision = getPrecision(step);\n      if (precision !== undefined) {\n        if (stepPrecision > precision) {\n          console.warn('[Element Warn][InputNumber]precision should not be less than the decimal places of step');\n        }\n        return precision;\n      } else {\n        return Math.max(getPrecision(value), stepPrecision);\n      }\n    },\n    controlsAtRight: function controlsAtRight() {\n      return this.controlsPosition === 'right';\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    inputNumberSize: function inputNumberSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    inputNumberDisabled: function inputNumberDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    },\n    currentInputValue: function currentInputValue() {\n      var currentValue = this.currentValue;\n      if (typeof currentValue === 'number' && this.precision !== undefined) {\n        return currentValue.toFixed(this.precision);\n      } else {\n        return currentValue;\n      }\n    }\n  },\n  methods: {\n    toPrecision: function toPrecision(num, precision) {\n      if (precision === undefined) precision = this.numPrecision;\n      return parseFloat(parseFloat(Number(num).toFixed(precision)));\n    },\n    getPrecision: function getPrecision(value) {\n      if (value === undefined) return 0;\n      var valueString = value.toString();\n      var dotPosition = valueString.indexOf('.');\n      var precision = 0;\n      if (dotPosition !== -1) {\n        precision = valueString.length - dotPosition - 1;\n      }\n      return precision;\n    },\n    _increase: function _increase(val, step) {\n      if (typeof val !== 'number' && val !== undefined) return this.currentValue;\n\n      var precisionFactor = Math.pow(10, this.numPrecision);\n      // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n      return this.toPrecision((precisionFactor * val + precisionFactor * step) / precisionFactor);\n    },\n    _decrease: function _decrease(val, step) {\n      if (typeof val !== 'number' && val !== undefined) return this.currentValue;\n\n      var precisionFactor = Math.pow(10, this.numPrecision);\n\n      return this.toPrecision((precisionFactor * val - precisionFactor * step) / precisionFactor);\n    },\n    increase: function increase() {\n      if (this.inputNumberDisabled || this.maxDisabled) return;\n      var value = this.value || 0;\n      var newVal = this._increase(value, this.step);\n      this.setCurrentValue(newVal);\n    },\n    decrease: function decrease() {\n      if (this.inputNumberDisabled || this.minDisabled) return;\n      var value = this.value || 0;\n      var newVal = this._decrease(value, this.step);\n      this.setCurrentValue(newVal);\n    },\n    handleBlur: function handleBlur(event) {\n      this.$emit('blur', event);\n      this.$refs.input.setCurrentValue(this.currentInputValue);\n    },\n    handleFocus: function handleFocus(event) {\n      this.$emit('focus', event);\n    },\n    setCurrentValue: function setCurrentValue(newVal) {\n      var oldVal = this.currentValue;\n      if (typeof newVal === 'number' && this.precision !== undefined) {\n        newVal = this.toPrecision(newVal, this.precision);\n      }\n      if (newVal >= this.max) newVal = this.max;\n      if (newVal <= this.min) newVal = this.min;\n      if (oldVal === newVal) {\n        this.$refs.input.setCurrentValue(this.currentInputValue);\n        return;\n      }\n      this.$emit('input', newVal);\n      this.$emit('change', newVal, oldVal);\n      this.currentValue = newVal;\n    },\n    handleInputChange: function handleInputChange(value) {\n      var newVal = value === '' ? undefined : Number(value);\n      if (!isNaN(newVal) || value === '') {\n        this.setCurrentValue(newVal);\n      }\n    }\n  },\n  mounted: function mounted() {\n    var innerInput = this.$refs.input.$refs.input;\n    innerInput.setAttribute('role', 'spinbutton');\n    innerInput.setAttribute('aria-valuemax', this.max);\n    innerInput.setAttribute('aria-valuemin', this.min);\n    innerInput.setAttribute('aria-valuenow', this.currentValue);\n    innerInput.setAttribute('aria-disabled', this.inputNumberDisabled);\n  },\n  updated: function updated() {\n    if (!this.$refs || !this.$refs.input) return;\n    var innerInput = this.$refs.input.$refs.input;\n    innerInput.setAttribute('aria-valuenow', this.currentValue);\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 109:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[\n    'el-input-number',\n    _vm.inputNumberSize ? 'el-input-number--' + _vm.inputNumberSize : '',\n    { 'is-disabled': _vm.inputNumberDisabled },\n    { 'is-without-controls': !_vm.controls },\n    { 'is-controls-right': _vm.controlsAtRight }\n  ],on:{\"dragstart\":function($event){$event.preventDefault();}}},[(_vm.controls)?_c('span',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.decrease),expression:\"decrease\"}],staticClass:\"el-input-number__decrease\",class:{'is-disabled': _vm.minDisabled},attrs:{\"role\":\"button\"},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.decrease($event)}}},[_c('i',{class:(\"el-icon-\" + (_vm.controlsAtRight ? 'arrow-down' : 'minus'))})]):_vm._e(),(_vm.controls)?_c('span',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.increase),expression:\"increase\"}],staticClass:\"el-input-number__increase\",class:{'is-disabled': _vm.maxDisabled},attrs:{\"role\":\"button\"},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.increase($event)}}},[_c('i',{class:(\"el-icon-\" + (_vm.controlsAtRight ? 'arrow-up' : 'plus'))})]):_vm._e(),_c('el-input',{ref:\"input\",attrs:{\"value\":_vm.currentInputValue,\"disabled\":_vm.inputNumberDisabled,\"size\":_vm.inputNumberSize,\"max\":_vm.max,\"min\":_vm.min,\"name\":_vm.name,\"label\":_vm.label},on:{\"blur\":_vm.handleBlur,\"focus\":_vm.handleFocus,\"change\":_vm.handleInputChange},nativeOn:{\"keydown\":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.preventDefault();_vm.increase($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.preventDefault();_vm.decrease($event)}]}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/focus\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(2);\n\nexports.default = {\n  bind: function bind(el, binding, vnode) {\n    var interval = null;\n    var startTime = void 0;\n    var handler = function handler() {\n      return vnode.context[binding.expression].apply();\n    };\n    var clear = function clear() {\n      if (new Date() - startTime < 100) {\n        handler();\n      }\n      clearInterval(interval);\n      interval = null;\n    };\n\n    (0, _dom.on)(el, 'mousedown', function (e) {\n      if (e.button !== 0) return;\n      startTime = new Date();\n      (0, _dom.once)(document, 'mouseup', clear);\n      clearInterval(interval);\n      interval = setInterval(handler, 100);\n    });\n  }\n};\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/input\");\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/input-number.js\n// module id = NWDs\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 244);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 244:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tag = __webpack_require__(245);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_tag2.default.install = function (Vue) {\n  Vue.component(_tag2.default.name, _tag2.default);\n};\n\nexports.default = _tag2.default;\n\n/***/ }),\n\n/***/ 245:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue__ = __webpack_require__(246);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2c90362e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tag_vue__ = __webpack_require__(247);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2c90362e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tag_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 246:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElTag',\n  props: {\n    text: String,\n    closable: Boolean,\n    type: String,\n    hit: Boolean,\n    disableTransitions: Boolean,\n    color: String,\n    size: String\n  },\n  methods: {\n    handleClose: function handleClose(event) {\n      this.$emit('close', event);\n    }\n  },\n  computed: {\n    tagSize: function tagSize() {\n      return this.size || (this.$ELEMENT || {}).size;\n    }\n  }\n};\n\n/***/ }),\n\n/***/ 247:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":_vm.disableTransitions ? '' : 'el-zoom-in-center'}},[_c('span',{staticClass:\"el-tag\",class:[\n      _vm.type ? 'el-tag--' + _vm.type : '',\n      _vm.tagSize && (\"el-tag--\" + _vm.tagSize),\n      {'is-hit': _vm.hit}\n    ],style:({backgroundColor: _vm.color})},[_vm._t(\"default\"),(_vm.closable)?_c('i',{staticClass:\"el-tag__close el-icon-close\",on:{\"click\":function($event){$event.stopPropagation();_vm.handleClose($event)}}}):_vm._e()],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/tag.js\n// module id = NhDZ\n// module chunks = 0","module.exports = require('./dist/echarts-amap.min.js')\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts-amap@1.0.0-rc.6@echarts-amap/index.js\n// module id = Nl+K\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = {\n  toolbox: {\n    brush: {\n      title: {\n        rect: '鐭╁舰閫夋嫨',\n        polygon: '鍦堥��',\n        lineX: '妯悜閫夋嫨',\n        lineY: '绾靛悜閫夋嫨',\n        keep: '淇濇寔閫夋嫨',\n        clear: '娓呴櫎閫夋嫨'\n      }\n    },\n    dataView: {\n      title: '鏁版嵁瑙嗗浘',\n      lang: ['鏁版嵁瑙嗗浘', '鍏抽棴', '鍒锋柊']\n    },\n    dataZoom: {\n      title: {\n        zoom: '鍖哄煙缂╂斁',\n        back: '鍖哄煙缂╂斁杩樺師'\n      }\n    },\n    magicType: {\n      title: {\n        line: '鍒囨崲涓烘姌绾垮浘',\n        bar: '鍒囨崲涓烘煴鐘跺浘',\n        stack: '鍒囨崲涓哄爢鍙�',\n        tiled: '鍒囨崲涓哄钩閾�'\n      }\n    },\n    restore: {\n      title: '杩樺師'\n    },\n    saveAsImage: {\n      title: '淇濆瓨涓哄浘鐗�',\n      lang: ['鍙抽敭鍙﹀瓨涓哄浘鐗�']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '楗煎浘',\n      bar: '鏌辩姸鍥�',\n      line: '鎶樼嚎鍥�',\n      scatter: '鏁g偣鍥�',\n      effectScatter: '娑熸吉鏁g偣鍥�',\n      radar: '闆疯揪鍥�',\n      tree: '鏍戝浘',\n      treemap: '鐭╁舰鏍戝浘',\n      boxplot: '绠卞瀷鍥�',\n      candlestick: 'K绾垮浘',\n      k: 'K绾垮浘',\n      heatmap: '鐑姏鍥�',\n      map: '鍦板浘',\n      parallel: '骞宠鍧愭爣鍥�',\n      lines: '绾垮浘',\n      graph: '鍏崇郴鍥�',\n      sankey: '妗戝熀鍥�',\n      funnel: '婕忔枟鍥�',\n      gauge: '浠〃鐩樺浘',\n      pictorialBar: '璞″舰鏌卞浘',\n      themeRiver: '涓婚娌虫祦鍥�',\n      sunburst: '鏃棩鍥�'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '杩欐槸涓�涓叧浜庘�渰title}鈥濈殑鍥捐〃銆�',\n      withoutTitle: '杩欐槸涓�涓浘琛紝'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '鍥捐〃绫诲瀷鏄瘂seriesType}锛岃〃绀簕seriesName}銆�',\n        withoutName: '鍥捐〃绫诲瀷鏄瘂seriesType}銆�'\n      },\n      multiple: {\n        prefix: '瀹冪敱{seriesCount}涓浘琛ㄧ郴鍒楃粍鎴愩��',\n        withName: '绗瑊seriesId}涓郴鍒楁槸涓�涓〃绀簕seriesName}鐨剓seriesType}锛�',\n        withoutName: '绗瑊seriesId}涓郴鍒楁槸涓�涓獅seriesType}锛�',\n        separator: {\n          middle: '锛�',\n          end: '銆�'\n        }\n      }\n    },\n    data: {\n      allData: '鍏舵暟鎹槸鈥斺��',\n      partialData: '鍏朵腑锛屽墠{displayCnt}椤规槸鈥斺��',\n      withName: '{name}鐨勬暟鎹槸{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: '锛�',\n        end: ''\n      }\n    }\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/lang.js\n// module id = Nrx1\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./tree/TreeSeries\");\n\nrequire(\"./tree/TreeView\");\n\nrequire(\"./tree/treeAction\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar treeLayout = require(\"./tree/treeLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(visualSymbol('tree', 'circle'));\necharts.registerLayout(treeLayout);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/tree.js\n// module id = O0k8\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar layout = require(\"../../util/layout\");\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n  type: 'visualMap',\n\n  /**\n   * @readOnly\n   * @type {Object}\n   */\n  autoPositionValues: {\n    left: 1,\n    right: 1,\n    top: 1,\n    bottom: 1\n  },\n  init: function (ecModel, api) {\n    /**\n     * @readOnly\n     * @type {module:echarts/model/Global}\n     */\n    this.ecModel = ecModel;\n    /**\n     * @readOnly\n     * @type {module:echarts/ExtensionAPI}\n     */\n\n    this.api = api;\n    /**\n     * @readOnly\n     * @type {module:echarts/component/visualMap/visualMapModel}\n     */\n\n    this.visualMapModel;\n  },\n\n  /**\n   * @protected\n   */\n  render: function (visualMapModel, ecModel, api, payload) {\n    this.visualMapModel = visualMapModel;\n\n    if (visualMapModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    this.doRender.apply(this, arguments);\n  },\n\n  /**\n   * @protected\n   */\n  renderBackground: function (group) {\n    var visualMapModel = this.visualMapModel;\n    var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n    var rect = group.getBoundingRect();\n    group.add(new graphic.Rect({\n      z2: -1,\n      // Lay background rect on the lowest layer.\n      silent: true,\n      shape: {\n        x: rect.x - padding[3],\n        y: rect.y - padding[0],\n        width: rect.width + padding[3] + padding[1],\n        height: rect.height + padding[0] + padding[2]\n      },\n      style: {\n        fill: visualMapModel.get('backgroundColor'),\n        stroke: visualMapModel.get('borderColor'),\n        lineWidth: visualMapModel.get('borderWidth')\n      }\n    }));\n  },\n\n  /**\n   * @protected\n   * @param {number} targetValue can be Infinity or -Infinity\n   * @param {string=} visualCluster Only can be 'color' 'opacity' 'symbol' 'symbolSize'\n   * @param {Object} [opts]\n   * @param {string=} [opts.forceState] Specify state, instead of using getValueState method.\n   * @param {string=} [opts.convertOpacityToAlpha=false] For color gradient in controller widget.\n   * @return {*} Visual value.\n   */\n  getControllerVisual: function (targetValue, visualCluster, opts) {\n    opts = opts || {};\n    var forceState = opts.forceState;\n    var visualMapModel = this.visualMapModel;\n    var visualObj = {}; // Default values.\n\n    if (visualCluster === 'symbol') {\n      visualObj.symbol = visualMapModel.get('itemSymbol');\n    }\n\n    if (visualCluster === 'color') {\n      var defaultColor = visualMapModel.get('contentColor');\n      visualObj.color = defaultColor;\n    }\n\n    function getter(key) {\n      return visualObj[key];\n    }\n\n    function setter(key, value) {\n      visualObj[key] = value;\n    }\n\n    var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n    var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n    zrUtil.each(visualTypes, function (type) {\n      var visualMapping = mappings[type];\n\n      if (opts.convertOpacityToAlpha && type === 'opacity') {\n        type = 'colorAlpha';\n        visualMapping = mappings.__alphaForOpacity;\n      }\n\n      if (VisualMapping.dependsOn(type, visualCluster)) {\n        visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n      }\n    });\n    return visualObj[visualCluster];\n  },\n\n  /**\n   * @protected\n   */\n  positionGroup: function (group) {\n    var model = this.visualMapModel;\n    var api = this.api;\n    layout.positionElement(group, model.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  },\n\n  /**\n   * @protected\n   * @abstract\n   */\n  doRender: zrUtil.noop\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/VisualMapView.js\n// module id = O7BF\n// module chunks = 0","var _echarts = require(\"echarts\");\n\nvar zrUtil = _echarts.util;\nvar graphic = _echarts.graphic;\nvar matrix = _echarts.matrix;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global BMap */\nfunction BMapCoordSys(bmap, api) {\n  this._bmap = bmap;\n  this.dimensions = ['lng', 'lat'];\n  this._mapOffset = [0, 0];\n  this._api = api;\n  this._projection = new BMap.MercatorProjection();\n}\n\nBMapCoordSys.prototype.dimensions = ['lng', 'lat'];\n\nBMapCoordSys.prototype.setZoom = function (zoom) {\n  this._zoom = zoom;\n};\n\nBMapCoordSys.prototype.setCenter = function (center) {\n  this._center = this._projection.lngLatToPoint(new BMap.Point(center[0], center[1]));\n};\n\nBMapCoordSys.prototype.setMapOffset = function (mapOffset) {\n  this._mapOffset = mapOffset;\n};\n\nBMapCoordSys.prototype.getBMap = function () {\n  return this._bmap;\n};\n\nBMapCoordSys.prototype.dataToPoint = function (data) {\n  var point = new BMap.Point(data[0], data[1]); // TODO mercator projection is toooooooo slow\n  // var mercatorPoint = this._projection.lngLatToPoint(point);\n  // var width = this._api.getZr().getWidth();\n  // var height = this._api.getZr().getHeight();\n  // var divider = Math.pow(2, 18 - 10);\n  // return [\n  //     Math.round((mercatorPoint.x - this._center.x) / divider + width / 2),\n  //     Math.round((this._center.y - mercatorPoint.y) / divider + height / 2)\n  // ];\n\n  var px = this._bmap.pointToOverlayPixel(point);\n\n  var mapOffset = this._mapOffset;\n  return [px.x - mapOffset[0], px.y - mapOffset[1]];\n};\n\nBMapCoordSys.prototype.pointToData = function (pt) {\n  var mapOffset = this._mapOffset;\n\n  var pt = this._bmap.overlayPixelToPoint({\n    x: pt[0] + mapOffset[0],\n    y: pt[1] + mapOffset[1]\n  });\n\n  return [pt.lng, pt.lat];\n};\n\nBMapCoordSys.prototype.getViewRect = function () {\n  var api = this._api;\n  return new graphic.BoundingRect(0, 0, api.getWidth(), api.getHeight());\n};\n\nBMapCoordSys.prototype.getRoamTransform = function () {\n  return matrix.create();\n};\n\nBMapCoordSys.prototype.prepareCustoms = function (data) {\n  var rect = this.getViewRect();\n  return {\n    coordSys: {\n      // The name exposed to user is always 'cartesian2d' but not 'grid'.\n      type: 'bmap',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: zrUtil.bind(this.dataToPoint, this),\n      size: zrUtil.bind(dataToCoordSize, this)\n    }\n  };\n};\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map([0, 1], function (dimIdx) {\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var p1 = [];\n    var p2 = [];\n    p1[dimIdx] = val - halfSize;\n    p2[dimIdx] = val + halfSize;\n    p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n    return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n  }, this);\n}\n\nvar Overlay; // For deciding which dimensions to use when creating list data\n\nBMapCoordSys.dimensions = BMapCoordSys.prototype.dimensions;\n\nfunction createOverlayCtor() {\n  function Overlay(root) {\n    this._root = root;\n  }\n\n  Overlay.prototype = new BMap.Overlay();\n  /**\n   * 鍒濆鍖朶n   *\n   * @param {BMap.Map} map\n   * @override\n   */\n\n  Overlay.prototype.initialize = function (map) {\n    map.getPanes().labelPane.appendChild(this._root);\n    return this._root;\n  };\n  /**\n   * @override\n   */\n\n\n  Overlay.prototype.draw = function () {};\n\n  return Overlay;\n}\n\nBMapCoordSys.create = function (ecModel, api) {\n  var bmapCoordSys;\n  var root = api.getDom(); // TODO Dispose\n\n  ecModel.eachComponent('bmap', function (bmapModel) {\n    var painter = api.getZr().painter;\n    var viewportRoot = painter.getViewportRoot();\n\n    if (typeof BMap === 'undefined') {\n      throw new Error('BMap api is not loaded');\n    }\n\n    Overlay = Overlay || createOverlayCtor();\n\n    if (bmapCoordSys) {\n      throw new Error('Only one bmap component can exist');\n    }\n\n    if (!bmapModel.__bmap) {\n      // Not support IE8\n      var bmapRoot = root.querySelector('.ec-extension-bmap');\n\n      if (bmapRoot) {\n        // Reset viewport left and top, which will be changed\n        // in moving handler in BMapView\n        viewportRoot.style.left = '0px';\n        viewportRoot.style.top = '0px';\n        root.removeChild(bmapRoot);\n      }\n\n      bmapRoot = document.createElement('div');\n      bmapRoot.style.cssText = 'width:100%;height:100%'; // Not support IE8\n\n      bmapRoot.classList.add('ec-extension-bmap');\n      root.appendChild(bmapRoot);\n      var bmap = bmapModel.__bmap = new BMap.Map(bmapRoot);\n      var overlay = new Overlay(viewportRoot);\n      bmap.addOverlay(overlay); // Override\n\n      painter.getViewportRootOffset = function () {\n        return {\n          offsetLeft: 0,\n          offsetTop: 0\n        };\n      };\n    }\n\n    var bmap = bmapModel.__bmap; // Set bmap options\n    // centerAndZoom before layout and render\n\n    var center = bmapModel.get('center');\n    var zoom = bmapModel.get('zoom');\n\n    if (center && zoom) {\n      var pt = new BMap.Point(center[0], center[1]);\n      bmap.centerAndZoom(pt, zoom);\n    }\n\n    bmapCoordSys = new BMapCoordSys(bmap, api);\n    bmapCoordSys.setMapOffset(bmapModel.__mapOffset || [0, 0]);\n    bmapCoordSys.setZoom(zoom);\n    bmapCoordSys.setCenter(center);\n    bmapModel.coordinateSystem = bmapCoordSys;\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'bmap') {\n      seriesModel.coordinateSystem = bmapCoordSys;\n    }\n  });\n};\n\nvar _default = BMapCoordSys;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/extension/bmap/BMapCoordSys.js\n// module id = OACL\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 155);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 155:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _buttonGroup = __webpack_require__(156);\n\nvar _buttonGroup2 = _interopRequireDefault(_buttonGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_buttonGroup2.default.install = function (Vue) {\n  Vue.component(_buttonGroup2.default.name, _buttonGroup2.default);\n};\n\nexports.default = _buttonGroup2.default;\n\n/***/ }),\n\n/***/ 156:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__ = __webpack_require__(157);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__ = __webpack_require__(158);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 157:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElButtonGroup'\n};\n\n/***/ }),\n\n/***/ 158:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-button-group\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/button-group.js\n// module id = OBmE\n// module chunks = 0","var vec2 = require(\"./vector\");\n\nvar matrix = require(\"./matrix\");\n\n/**\n * @module echarts/core/BoundingRect\n */\nvar v2ApplyTransform = vec2.applyTransform;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n/**\n * @alias module:echarts/core/BoundingRect\n */\n\nfunction BoundingRect(x, y, width, height) {\n  if (width < 0) {\n    x = x + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y = y + height;\n    height = -height;\n  }\n  /**\n   * @type {number}\n   */\n\n\n  this.x = x;\n  /**\n   * @type {number}\n   */\n\n  this.y = y;\n  /**\n   * @type {number}\n   */\n\n  this.width = width;\n  /**\n   * @type {number}\n   */\n\n  this.height = height;\n}\n\nBoundingRect.prototype = {\n  constructor: BoundingRect,\n\n  /**\n   * @param {module:echarts/core/BoundingRect} other\n   */\n  union: function (other) {\n    var x = mathMin(other.x, this.x);\n    var y = mathMin(other.y, this.y);\n    this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n    this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n    this.x = x;\n    this.y = y;\n  },\n\n  /**\n   * @param {Array.<number>} m\n   * @methods\n   */\n  applyTransform: function () {\n    var lt = [];\n    var rb = [];\n    var lb = [];\n    var rt = [];\n    return function (m) {\n      // In case usage like this\n      // el.getBoundingRect().applyTransform(el.transform)\n      // And element has no transform\n      if (!m) {\n        return;\n      }\n\n      lt[0] = lb[0] = this.x;\n      lt[1] = rt[1] = this.y;\n      rb[0] = rt[0] = this.x + this.width;\n      rb[1] = lb[1] = this.y + this.height;\n      v2ApplyTransform(lt, lt, m);\n      v2ApplyTransform(rb, rb, m);\n      v2ApplyTransform(lb, lb, m);\n      v2ApplyTransform(rt, rt, m);\n      this.x = mathMin(lt[0], rb[0], lb[0], rt[0]);\n      this.y = mathMin(lt[1], rb[1], lb[1], rt[1]);\n      var maxX = mathMax(lt[0], rb[0], lb[0], rt[0]);\n      var maxY = mathMax(lt[1], rb[1], lb[1], rt[1]);\n      this.width = maxX - this.x;\n      this.height = maxY - this.y;\n    };\n  }(),\n\n  /**\n   * Calculate matrix of transforming from self to target rect\n   * @param  {module:zrender/core/BoundingRect} b\n   * @return {Array.<number>}\n   */\n  calculateTransform: function (b) {\n    var a = this;\n    var sx = b.width / a.width;\n    var sy = b.height / a.height;\n    var m = matrix.create(); // 鐭╅樀鍙充箻\n\n    matrix.translate(m, m, [-a.x, -a.y]);\n    matrix.scale(m, m, [sx, sy]);\n    matrix.translate(m, m, [b.x, b.y]);\n    return m;\n  },\n\n  /**\n   * @param {(module:echarts/core/BoundingRect|Object)} b\n   * @return {boolean}\n   */\n  intersect: function (b) {\n    if (!b) {\n      return false;\n    }\n\n    if (!(b instanceof BoundingRect)) {\n      // Normalize negative width/height.\n      b = BoundingRect.create(b);\n    }\n\n    var a = this;\n    var ax0 = a.x;\n    var ax1 = a.x + a.width;\n    var ay0 = a.y;\n    var ay1 = a.y + a.height;\n    var bx0 = b.x;\n    var bx1 = b.x + b.width;\n    var by0 = b.y;\n    var by1 = b.y + b.height;\n    return !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n  },\n  contain: function (x, y) {\n    var rect = this;\n    return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height;\n  },\n\n  /**\n   * @return {module:echarts/core/BoundingRect}\n   */\n  clone: function () {\n    return new BoundingRect(this.x, this.y, this.width, this.height);\n  },\n\n  /**\n   * Copy from another rect\n   */\n  copy: function (other) {\n    this.x = other.x;\n    this.y = other.y;\n    this.width = other.width;\n    this.height = other.height;\n  },\n  plain: function () {\n    return {\n      x: this.x,\n      y: this.y,\n      width: this.width,\n      height: this.height\n    };\n  }\n};\n/**\n * @param {Object|module:zrender/core/BoundingRect} rect\n * @param {number} rect.x\n * @param {number} rect.y\n * @param {number} rect.width\n * @param {number} rect.height\n * @return {module:zrender/core/BoundingRect}\n */\n\nBoundingRect.create = function (rect) {\n  return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n};\n\nvar _default = BoundingRect;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/BoundingRect.js\n// module id = OGtO\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_to-object.js\n// module id = OXaN\n// module chunks = 0","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n  error.request = request;\n  error.response = response;\n  return error;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/core/enhanceError.js\n// module id = Oa1u\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function () { return dP(this, 'a', { value: 7 }).a; }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n  return typeof it == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  anObject(it);\n  key = toPrimitive(key, true);\n  anObject(D);\n  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, { enumerable: createDesc(0, false) });\n    } return setSymbolDesc(it, key, D);\n  } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n  while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n  return it;\n};\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n    var $set = function (value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n    return wrap(tag);\n  };\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n  require('./_object-pie').f = $propertyIsEnumerable;\n  require('./_object-gops').f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !require('./_library')) {\n    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  wksExt.f = function (name) {\n    return wrap(wks(name));\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  // 19.4.2.1 Symbol.for(key)\n  'for': function (key) {\n    return has(SymbolRegistry, key += '')\n      ? SymbolRegistry[key]\n      : SymbolRegistry[key] = $Symbol(key);\n  },\n  // 19.4.2.5 Symbol.keyFor(sym)\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n  },\n  useSetter: function () { setter = true; },\n  useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  // 19.1.2.2 Object.create(O [, Properties])\n  create: $create,\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n  defineProperty: $defineProperty,\n  // 19.1.2.3 Object.defineProperties(O, Properties)\n  defineProperties: $defineProperties,\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  // WebKit converts symbol values to JSON as null\n  // V8 throws on boxed symbols\n  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n    while (arguments.length > i) args.push(arguments[i++]);\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.symbol.js\n// module id = Oc2Y\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Support baseURL config\n  if (config.baseURL && !isAbsoluteURL(config.url)) {\n    config.url = combineURLs(config.baseURL, config.url);\n  }\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData(\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers || {}\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData(\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData(\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/core/dispatchRequest.js\n// module id = OtkV\n// module chunks = 0","require(\"./dataZoom/typeDefaulter\");\n\nrequire(\"./dataZoom/DataZoomModel\");\n\nrequire(\"./dataZoom/DataZoomView\");\n\nrequire(\"./dataZoom/SelectZoomModel\");\n\nrequire(\"./dataZoom/SelectZoomView\");\n\nrequire(\"./dataZoom/dataZoomProcessor\");\n\nrequire(\"./dataZoom/dataZoomAction\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoomSelect.js\n// module id = P3t+\n// module chunks = 0","var Component = require(\"../../model/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nComponent.registerSubTypeDefaulter('visualMap', function (option) {\n  // Compatible with ec2, when splitNumber === 0, continuous visualMap will be used.\n  return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/typeDefaulter.js\n// module id = P54J\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar axisModelCreator = require(\"../axisModelCreator\");\n\nvar axisModelCommonMixin = require(\"../axisModelCommonMixin\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PolarAxisModel = ComponentModel.extend({\n  type: 'polarAxis',\n\n  /**\n   * @type {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n   */\n  axis: null,\n\n  /**\n   * @override\n   */\n  getCoordSysModel: function () {\n    return this.ecModel.queryComponents({\n      mainType: 'polar',\n      index: this.option.polarIndex,\n      id: this.option.polarId\n    })[0];\n  }\n});\nzrUtil.merge(PolarAxisModel.prototype, axisModelCommonMixin);\nvar polarAxisDefaultExtendedOption = {\n  angle: {\n    // polarIndex: 0,\n    // polarId: '',\n    startAngle: 90,\n    clockwise: true,\n    splitNumber: 12,\n    axisLabel: {\n      rotate: false\n    }\n  },\n  radius: {\n    // polarIndex: 0,\n    // polarId: '',\n    splitNumber: 5\n  }\n};\n\nfunction getAxisType(axisDim, option) {\n  // Default axis with data is category axis\n  return option.type || (option.data ? 'category' : 'value');\n}\n\naxisModelCreator('angle', PolarAxisModel, getAxisType, polarAxisDefaultExtendedOption.angle);\naxisModelCreator('radius', PolarAxisModel, getAxisType, polarAxisDefaultExtendedOption.radius);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/AxisModel.js\n// module id = P9df\n// module chunks = 0","/*!\n * clipboard.js v2.0.1\n * https://zenorocha.github.io/clipboard.js\n * \n * Licensed MIT 漏 Zeno Rocha\n */\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=3)}([function(t,e,n){var o,r,i;!function(a,c){r=[t,n(7)],o=c,void 0!==(i=\"function\"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var o=function(t){return t&&t.__esModule?t:{default:t}}(e),r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,\"value\"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),a=function(){function t(e){n(this,t),this.resolveOptions(e),this.initSelection()}return i(t,[{key:\"resolveOptions\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=\"\"}},{key:\"initSelection\",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:\"selectFake\",value:function(){var t=this,e=\"rtl\"==document.documentElement.getAttribute(\"dir\");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener(\"click\",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement(\"textarea\"),this.fakeElem.style.fontSize=\"12pt\",this.fakeElem.style.border=\"0\",this.fakeElem.style.padding=\"0\",this.fakeElem.style.margin=\"0\",this.fakeElem.style.position=\"absolute\",this.fakeElem.style[e?\"right\":\"left\"]=\"-9999px\";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+\"px\",this.fakeElem.setAttribute(\"readonly\",\"\"),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,o.default)(this.fakeElem),this.copyText()}},{key:\"removeFake\",value:function(){this.fakeHandler&&(this.container.removeEventListener(\"click\",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:\"selectTarget\",value:function(){this.selectedText=(0,o.default)(this.target),this.copyText()}},{key:\"copyText\",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:\"handleResult\",value:function(t){this.emitter.emit(t?\"success\":\"error\",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:\"clearSelection\",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:\"destroy\",value:function(){this.removeFake()}},{key:\"action\",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"copy\";if(this._action=t,\"copy\"!==this._action&&\"cut\"!==this._action)throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"')},get:function(){return this._action}},{key:\"target\",set:function(t){if(void 0!==t){if(!t||\"object\"!==(void 0===t?\"undefined\":r(t))||1!==t.nodeType)throw new Error('Invalid \"target\" value, use a valid Element');if(\"copy\"===this.action&&t.hasAttribute(\"disabled\"))throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');if(\"cut\"===this.action&&(t.hasAttribute(\"readonly\")||t.hasAttribute(\"disabled\")))throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=a})},function(t,e,n){function o(t,e,n){if(!t&&!e&&!n)throw new Error(\"Missing required arguments\");if(!c.string(e))throw new TypeError(\"Second argument must be a String\");if(!c.fn(n))throw new TypeError(\"Third argument must be a Function\");if(c.node(t))return r(t,e,n);if(c.nodeList(t))return i(t,e,n);if(c.string(t))return a(t,e,n);throw new TypeError(\"First argument must be a String, HTMLElement, HTMLCollection, or NodeList\")}function r(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}function i(t,e,n){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,n)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,n)})}}}function a(t,e,n){return u(document.body,t,e,n)}var c=n(6),u=n(5);t.exports=o},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){function o(){r.off(t,o),e.apply(n,arguments)}var r=this;return o._=e,this.on(t,o,n)},emit:function(t){var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;for(o;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var o,r,i;!function(a,c){r=[t,n(0),n(2),n(1)],o=c,void 0!==(i=\"function\"==typeof o?o.apply(e,r):o)&&(t.exports=i)}(0,function(t,e,n,o){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function a(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function c(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n=\"data-clipboard-\"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var l=r(e),s=r(n),f=r(o),d=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},h=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,\"value\"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),p=function(t){function e(t,n){i(this,e);var o=a(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return o.resolveOptions(n),o.listenClick(t),o}return c(e,t),h(e,[{key:\"resolveOptions\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=\"function\"==typeof t.action?t.action:this.defaultAction,this.target=\"function\"==typeof t.target?t.target:this.defaultTarget,this.text=\"function\"==typeof t.text?t.text:this.defaultText,this.container=\"object\"===d(t.container)?t.container:document.body}},{key:\"listenClick\",value:function(t){var e=this;this.listener=(0,f.default)(t,\"click\",function(t){return e.onClick(t)})}},{key:\"onClick\",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:\"defaultAction\",value:function(t){return u(\"action\",t)}},{key:\"defaultTarget\",value:function(t){var e=u(\"target\",t);if(e)return document.querySelector(e)}},{key:\"defaultText\",value:function(t){return u(\"text\",t)}},{key:\"destroy\",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:\"isSupported\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[\"copy\",\"cut\"],e=\"string\"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(s.default);t.exports=p})},function(t,e){function n(t,e){for(;t&&t.nodeType!==o;){if(\"function\"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}var o=9;if(\"undefined\"!=typeof Element&&!Element.prototype.matches){var r=Element.prototype;r.matches=r.matchesSelector||r.mozMatchesSelector||r.msMatchesSelector||r.oMatchesSelector||r.webkitMatchesSelector}t.exports=n},function(t,e,n){function o(t,e,n,o,r){var a=i.apply(this,arguments);return t.addEventListener(n,a,r),{destroy:function(){t.removeEventListener(n,a,r)}}}function r(t,e,n,r,i){return\"function\"==typeof t.addEventListener?o.apply(null,arguments):\"function\"==typeof n?o.bind(null,document).apply(null,arguments):(\"string\"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return o(t,e,n,r,i)}))}function i(t,e,n,o){return function(n){n.delegateTarget=a(n.target,e),n.delegateTarget&&o.call(t,n)}}var a=n(4);t.exports=r},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&(\"[object NodeList]\"===n||\"[object HTMLCollection]\"===n)&&\"length\"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return\"string\"==typeof t||t instanceof String},e.fn=function(t){return\"[object Function]\"===Object.prototype.toString.call(t)}},function(t,e){function n(t){var e;if(\"SELECT\"===t.nodeName)t.focus(),e=t.value;else if(\"INPUT\"===t.nodeName||\"TEXTAREA\"===t.nodeName){var n=t.hasAttribute(\"readonly\");n||t.setAttribute(\"readonly\",\"\"),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute(\"readonly\"),e=t.value}else{t.hasAttribute(\"contenteditable\")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}t.exports=n}])});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_clipboard@2.0.1@clipboard/dist/clipboard.min.js\n// module id = PEJM\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nfunction _broadcast(componentName, eventName, params) {\n  this.$children.forEach(function (child) {\n    var name = child.$options.componentName;\n\n    if (name === componentName) {\n      child.$emit.apply(child, [eventName].concat(params));\n    } else {\n      _broadcast.apply(child, [componentName, eventName].concat([params]));\n    }\n  });\n}\nexports.default = {\n  methods: {\n    dispatch: function dispatch(componentName, eventName, params) {\n      var parent = this.$parent || this.$root;\n      var name = parent.$options.componentName;\n\n      while (parent && (!name || name !== componentName)) {\n        parent = parent.$parent;\n\n        if (parent) {\n          name = parent.$options.componentName;\n        }\n      }\n      if (parent) {\n        parent.$emit.apply(parent, [eventName].concat(params));\n      }\n    },\n    broadcast: function broadcast(componentName, eventName, params) {\n      _broadcast.call(this, componentName, eventName, params);\n    }\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/mixins/emitter.js\n// module id = PEt4\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar barPolar = require(\"../layout/barPolar\");\n\nrequire(\"../coord/polar/polarCreator\");\n\nrequire(\"./angleAxis\");\n\nrequire(\"./radiusAxis\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./axisPointer/PolarAxisPointer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// For reducing size of echarts.min, barLayoutPolar is required by polar.\necharts.registerLayout(zrUtil.curry(barPolar, 'bar')); // Polar view\n\necharts.extendComponentView({\n  type: 'polar'\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/polar.js\n// module id = PEyf\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 138);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 10:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/clickoutside\");\n\n/***/ }),\n\n/***/ 12:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/locale\");\n\n/***/ }),\n\n/***/ 138:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _select = __webpack_require__(139);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_select2.default.install = function (Vue) {\n  Vue.component(_select2.default.name, _select2.default);\n};\n\nexports.default = _select2.default;\n\n/***/ }),\n\n/***/ 139:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__ = __webpack_require__(140);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__ = __webpack_require__(145);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 14:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"throttle-debounce/debounce\");\n\n/***/ }),\n\n/***/ 140:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _focus = __webpack_require__(19);\n\nvar _focus2 = _interopRequireDefault(_focus);\n\nvar _locale = __webpack_require__(5);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _selectDropdown = __webpack_require__(141);\n\nvar _selectDropdown2 = _interopRequireDefault(_selectDropdown);\n\nvar _option = __webpack_require__(35);\n\nvar _option2 = _interopRequireDefault(_option);\n\nvar _tag = __webpack_require__(25);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nvar _scrollbar = __webpack_require__(17);\n\nvar _scrollbar2 = _interopRequireDefault(_scrollbar);\n\nvar _debounce = __webpack_require__(14);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _clickoutside = __webpack_require__(10);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _dom = __webpack_require__(2);\n\nvar _resizeEvent = __webpack_require__(18);\n\nvar _locale3 = __webpack_require__(12);\n\nvar _scrollIntoView = __webpack_require__(26);\n\nvar _scrollIntoView2 = _interopRequireDefault(_scrollIntoView);\n\nvar _util = __webpack_require__(3);\n\nvar _navigationMixin = __webpack_require__(144);\n\nvar _navigationMixin2 = _interopRequireDefault(_navigationMixin);\n\nvar _shared = __webpack_require__(23);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar sizeMap = {\n  'medium': 36,\n  'small': 32,\n  'mini': 28\n};\n\nexports.default = {\n  mixins: [_emitter2.default, _locale2.default, (0, _focus2.default)('reference'), _navigationMixin2.default],\n\n  name: 'ElSelect',\n\n  componentName: 'ElSelect',\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  provide: function provide() {\n    return {\n      'select': this\n    };\n  },\n\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    readonly: function readonly() {\n      // trade-off for IE input readonly problem: https://github.com/ElemeFE/element/issues/10403\n      var isIE = !this.$isServer && !isNaN(Number(document.documentMode));\n      return !this.filterable || this.multiple || !isIE && !this.visible;\n    },\n    iconClass: function iconClass() {\n      var criteria = this.clearable && !this.selectDisabled && this.inputHovering && !this.multiple && this.value !== undefined && this.value !== null && this.value !== '';\n      return criteria ? 'circle-close is-show-close' : this.remote && this.filterable ? '' : 'arrow-up';\n    },\n    debounce: function debounce() {\n      return this.remote ? 300 : 0;\n    },\n    emptyText: function emptyText() {\n      if (this.loading) {\n        return this.loadingText || this.t('el.select.loading');\n      } else {\n        if (this.remote && this.query === '' && this.options.length === 0) return false;\n        if (this.filterable && this.query && this.options.length > 0 && this.filteredOptionsCount === 0) {\n          return this.noMatchText || this.t('el.select.noMatch');\n        }\n        if (this.options.length === 0) {\n          return this.noDataText || this.t('el.select.noData');\n        }\n      }\n      return null;\n    },\n    showNewOption: function showNewOption() {\n      var _this = this;\n\n      var hasExistingOption = this.options.filter(function (option) {\n        return !option.created;\n      }).some(function (option) {\n        return option.currentLabel === _this.query;\n      });\n      return this.filterable && this.allowCreate && this.query !== '' && !hasExistingOption;\n    },\n    selectSize: function selectSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    selectDisabled: function selectDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    },\n    collapseTagSize: function collapseTagSize() {\n      return ['small', 'mini'].indexOf(this.selectSize) > -1 ? 'mini' : 'small';\n    }\n  },\n\n  components: {\n    ElInput: _input2.default,\n    ElSelectMenu: _selectDropdown2.default,\n    ElOption: _option2.default,\n    ElTag: _tag2.default,\n    ElScrollbar: _scrollbar2.default\n  },\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  props: {\n    name: String,\n    id: String,\n    value: {\n      required: true\n    },\n    autoComplete: {\n      type: String,\n      default: 'off'\n    },\n    automaticDropdown: Boolean,\n    size: String,\n    disabled: Boolean,\n    clearable: Boolean,\n    filterable: Boolean,\n    allowCreate: Boolean,\n    loading: Boolean,\n    popperClass: String,\n    remote: Boolean,\n    loadingText: String,\n    noMatchText: String,\n    noDataText: String,\n    remoteMethod: Function,\n    filterMethod: Function,\n    multiple: Boolean,\n    multipleLimit: {\n      type: Number,\n      default: 0\n    },\n    placeholder: {\n      type: String,\n      default: function _default() {\n        return (0, _locale3.t)('el.select.placeholder');\n      }\n    },\n    defaultFirstOption: Boolean,\n    reserveKeyword: Boolean,\n    valueKey: {\n      type: String,\n      default: 'value'\n    },\n    collapseTags: Boolean,\n    popperAppendToBody: {\n      type: Boolean,\n      default: true\n    }\n  },\n\n  data: function data() {\n    return {\n      options: [],\n      cachedOptions: [],\n      createdLabel: null,\n      createdSelected: false,\n      selected: this.multiple ? [] : {},\n      inputLength: 20,\n      inputWidth: 0,\n      cachedPlaceHolder: '',\n      optionsCount: 0,\n      filteredOptionsCount: 0,\n      visible: false,\n      softFocus: false,\n      selectedLabel: '',\n      hoverIndex: -1,\n      query: '',\n      previousQuery: null,\n      inputHovering: false,\n      currentPlaceholder: '',\n      menuVisibleOnFocus: false,\n      isOnComposition: false,\n      isSilentBlur: false\n    };\n  },\n\n\n  watch: {\n    selectDisabled: function selectDisabled() {\n      var _this2 = this;\n\n      this.$nextTick(function () {\n        _this2.resetInputHeight();\n      });\n    },\n    placeholder: function placeholder(val) {\n      this.cachedPlaceHolder = this.currentPlaceholder = val;\n    },\n    value: function value(val, oldVal) {\n      if (this.multiple) {\n        this.resetInputHeight();\n        if (val.length > 0 || this.$refs.input && this.query !== '') {\n          this.currentPlaceholder = '';\n        } else {\n          this.currentPlaceholder = this.cachedPlaceHolder;\n        }\n        if (this.filterable && !this.reserveKeyword) {\n          this.query = '';\n          this.handleQueryChange(this.query);\n        }\n      }\n      this.setSelected();\n      if (this.filterable && !this.multiple) {\n        this.inputLength = 20;\n      }\n      if (!(0, _util.valueEquals)(val, oldVal)) {\n        this.dispatch('ElFormItem', 'el.form.change', val);\n      }\n    },\n    visible: function visible(val) {\n      var _this3 = this;\n\n      if (!val) {\n        this.handleIconHide();\n        this.broadcast('ElSelectDropdown', 'destroyPopper');\n        if (this.$refs.input) {\n          this.$refs.input.blur();\n        }\n        this.query = '';\n        this.previousQuery = null;\n        this.selectedLabel = '';\n        this.inputLength = 20;\n        this.resetHoverIndex();\n        this.$nextTick(function () {\n          if (_this3.$refs.input && _this3.$refs.input.value === '' && _this3.selected.length === 0) {\n            _this3.currentPlaceholder = _this3.cachedPlaceHolder;\n          }\n        });\n        if (!this.multiple) {\n          if (this.selected) {\n            if (this.filterable && this.allowCreate && this.createdSelected && this.createdLabel) {\n              this.selectedLabel = this.createdLabel;\n            } else {\n              this.selectedLabel = this.selected.currentLabel;\n            }\n            if (this.filterable) this.query = this.selectedLabel;\n          }\n        }\n      } else {\n        this.handleIconShow();\n        this.broadcast('ElSelectDropdown', 'updatePopper');\n        if (this.filterable) {\n          this.query = this.remote ? '' : this.selectedLabel;\n          this.handleQueryChange(this.query);\n          if (this.multiple) {\n            this.$refs.input.focus();\n          } else {\n            if (!this.remote) {\n              this.broadcast('ElOption', 'queryChange', '');\n              this.broadcast('ElOptionGroup', 'queryChange');\n            }\n            this.broadcast('ElInput', 'inputSelect');\n          }\n        }\n      }\n      this.$emit('visible-change', val);\n    },\n    options: function options() {\n      var _this4 = this;\n\n      if (this.$isServer) return;\n      this.$nextTick(function () {\n        _this4.broadcast('ElSelectDropdown', 'updatePopper');\n      });\n      if (this.multiple) {\n        this.resetInputHeight();\n      }\n      var inputs = this.$el.querySelectorAll('input');\n      if ([].indexOf.call(inputs, document.activeElement) === -1) {\n        this.setSelected();\n      }\n      if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {\n        this.checkDefaultFirstOption();\n      }\n    }\n  },\n\n  methods: {\n    handleComposition: function handleComposition(event) {\n      var text = event.target.value;\n      if (event.type === 'compositionend') {\n        this.isOnComposition = false;\n        this.handleQueryChange(text);\n      } else {\n        var lastCharacter = text[text.length - 1] || '';\n        this.isOnComposition = !(0, _shared.isKorean)(lastCharacter);\n      }\n    },\n    handleQueryChange: function handleQueryChange(val) {\n      var _this5 = this;\n\n      if (this.previousQuery === val || this.isOnComposition) return;\n      if (this.previousQuery === null && (typeof this.filterMethod === 'function' || typeof this.remoteMethod === 'function')) {\n        this.previousQuery = val;\n        return;\n      }\n      this.previousQuery = val;\n      this.$nextTick(function () {\n        if (_this5.visible) _this5.broadcast('ElSelectDropdown', 'updatePopper');\n      });\n      this.hoverIndex = -1;\n      if (this.multiple && this.filterable) {\n        var length = this.$refs.input.value.length * 15 + 20;\n        this.inputLength = this.collapseTags ? Math.min(50, length) : length;\n        this.managePlaceholder();\n        this.resetInputHeight();\n      }\n      if (this.remote && typeof this.remoteMethod === 'function') {\n        this.hoverIndex = -1;\n        this.remoteMethod(val);\n      } else if (typeof this.filterMethod === 'function') {\n        this.filterMethod(val);\n        this.broadcast('ElOptionGroup', 'queryChange');\n      } else {\n        this.filteredOptionsCount = this.optionsCount;\n        this.broadcast('ElOption', 'queryChange', val);\n        this.broadcast('ElOptionGroup', 'queryChange');\n      }\n      if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {\n        this.checkDefaultFirstOption();\n      }\n    },\n    handleIconHide: function handleIconHide() {\n      var icon = this.$el.querySelector('.el-input__icon');\n      if (icon) {\n        (0, _dom.removeClass)(icon, 'is-reverse');\n      }\n    },\n    handleIconShow: function handleIconShow() {\n      var icon = this.$el.querySelector('.el-input__icon');\n      if (icon && !(0, _dom.hasClass)(icon, 'el-icon-circle-close')) {\n        (0, _dom.addClass)(icon, 'is-reverse');\n      }\n    },\n    scrollToOption: function scrollToOption(option) {\n      var target = Array.isArray(option) && option[0] ? option[0].$el : option.$el;\n      if (this.$refs.popper && target) {\n        var menu = this.$refs.popper.$el.querySelector('.el-select-dropdown__wrap');\n        (0, _scrollIntoView2.default)(menu, target);\n      }\n      this.$refs.scrollbar && this.$refs.scrollbar.handleScroll();\n    },\n    handleMenuEnter: function handleMenuEnter() {\n      var _this6 = this;\n\n      this.$nextTick(function () {\n        return _this6.scrollToOption(_this6.selected);\n      });\n    },\n    emitChange: function emitChange(val) {\n      if (!(0, _util.valueEquals)(this.value, val)) {\n        this.$emit('change', val);\n      }\n    },\n    getOption: function getOption(value) {\n      var option = void 0;\n      var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';\n      var isNull = Object.prototype.toString.call(value).toLowerCase() === '[object null]';\n\n      for (var i = this.cachedOptions.length - 1; i >= 0; i--) {\n        var cachedOption = this.cachedOptions[i];\n        var isEqual = isObject ? (0, _util.getValueByPath)(cachedOption.value, this.valueKey) === (0, _util.getValueByPath)(value, this.valueKey) : cachedOption.value === value;\n        if (isEqual) {\n          option = cachedOption;\n          break;\n        }\n      }\n      if (option) return option;\n      var label = !isObject && !isNull ? value : '';\n      var newOption = {\n        value: value,\n        currentLabel: label\n      };\n      if (this.multiple) {\n        newOption.hitState = false;\n      }\n      return newOption;\n    },\n    setSelected: function setSelected() {\n      var _this7 = this;\n\n      if (!this.multiple) {\n        var option = this.getOption(this.value);\n        if (option.created) {\n          this.createdLabel = option.currentLabel;\n          this.createdSelected = true;\n        } else {\n          this.createdSelected = false;\n        }\n        this.selectedLabel = option.currentLabel;\n        this.selected = option;\n        if (this.filterable) this.query = this.selectedLabel;\n        return;\n      }\n      var result = [];\n      if (Array.isArray(this.value)) {\n        this.value.forEach(function (value) {\n          result.push(_this7.getOption(value));\n        });\n      }\n      this.selected = result;\n      this.$nextTick(function () {\n        _this7.resetInputHeight();\n      });\n    },\n    handleFocus: function handleFocus(event) {\n      if (!this.softFocus) {\n        if (this.automaticDropdown || this.filterable) {\n          this.visible = true;\n          this.menuVisibleOnFocus = true;\n        }\n        this.$emit('focus', event);\n      } else {\n        this.softFocus = false;\n      }\n    },\n    blur: function blur() {\n      this.visible = false;\n      this.$refs.reference.blur();\n    },\n    handleBlur: function handleBlur(event) {\n      var _this8 = this;\n\n      setTimeout(function () {\n        if (_this8.isSilentBlur) {\n          _this8.isSilentBlur = false;\n        } else {\n          _this8.$emit('blur', event);\n        }\n      }, 50);\n      this.softFocus = false;\n    },\n    handleIconClick: function handleIconClick(event) {\n      if (this.iconClass.indexOf('circle-close') > -1) {\n        this.deleteSelected(event);\n      }\n    },\n    doDestroy: function doDestroy() {\n      this.$refs.popper && this.$refs.popper.doDestroy();\n    },\n    handleClose: function handleClose() {\n      this.visible = false;\n    },\n    toggleLastOptionHitState: function toggleLastOptionHitState(hit) {\n      if (!Array.isArray(this.selected)) return;\n      var option = this.selected[this.selected.length - 1];\n      if (!option) return;\n\n      if (hit === true || hit === false) {\n        option.hitState = hit;\n        return hit;\n      }\n\n      option.hitState = !option.hitState;\n      return option.hitState;\n    },\n    deletePrevTag: function deletePrevTag(e) {\n      if (e.target.value.length <= 0 && !this.toggleLastOptionHitState()) {\n        var value = this.value.slice();\n        value.pop();\n        this.$emit('input', value);\n        this.emitChange(value);\n      }\n    },\n    managePlaceholder: function managePlaceholder() {\n      if (this.currentPlaceholder !== '') {\n        this.currentPlaceholder = this.$refs.input.value ? '' : this.cachedPlaceHolder;\n      }\n    },\n    resetInputState: function resetInputState(e) {\n      if (e.keyCode !== 8) this.toggleLastOptionHitState(false);\n      this.inputLength = this.$refs.input.value.length * 15 + 20;\n      this.resetInputHeight();\n    },\n    resetInputHeight: function resetInputHeight() {\n      var _this9 = this;\n\n      if (this.collapseTags && !this.filterable) return;\n      this.$nextTick(function () {\n        if (!_this9.$refs.reference) return;\n        var inputChildNodes = _this9.$refs.reference.$el.childNodes;\n        var input = [].filter.call(inputChildNodes, function (item) {\n          return item.tagName === 'INPUT';\n        })[0];\n        var tags = _this9.$refs.tags;\n        var sizeInMap = sizeMap[_this9.selectSize] || 40;\n        input.style.height = _this9.selected.length === 0 ? sizeInMap + 'px' : Math.max(tags ? tags.clientHeight + (tags.clientHeight > sizeInMap ? 6 : 0) : 0, sizeInMap) + 'px';\n        if (_this9.visible && _this9.emptyText !== false) {\n          _this9.broadcast('ElSelectDropdown', 'updatePopper');\n        }\n      });\n    },\n    resetHoverIndex: function resetHoverIndex() {\n      var _this10 = this;\n\n      setTimeout(function () {\n        if (!_this10.multiple) {\n          _this10.hoverIndex = _this10.options.indexOf(_this10.selected);\n        } else {\n          if (_this10.selected.length > 0) {\n            _this10.hoverIndex = Math.min.apply(null, _this10.selected.map(function (item) {\n              return _this10.options.indexOf(item);\n            }));\n          } else {\n            _this10.hoverIndex = -1;\n          }\n        }\n      }, 300);\n    },\n    handleOptionSelect: function handleOptionSelect(option, byClick) {\n      var _this11 = this;\n\n      if (this.multiple) {\n        var value = this.value.slice();\n        var optionIndex = this.getValueIndex(value, option.value);\n        if (optionIndex > -1) {\n          value.splice(optionIndex, 1);\n        } else if (this.multipleLimit <= 0 || value.length < this.multipleLimit) {\n          value.push(option.value);\n        }\n        this.$emit('input', value);\n        this.emitChange(value);\n        if (option.created) {\n          this.query = '';\n          this.handleQueryChange('');\n          this.inputLength = 20;\n        }\n        if (this.filterable) this.$refs.input.focus();\n      } else {\n        this.$emit('input', option.value);\n        this.emitChange(option.value);\n        this.visible = false;\n      }\n      this.isSilentBlur = byClick;\n      this.setSoftFocus();\n      if (this.visible) return;\n      this.$nextTick(function () {\n        _this11.scrollToOption(option);\n      });\n    },\n    setSoftFocus: function setSoftFocus() {\n      this.softFocus = true;\n      var input = this.$refs.input || this.$refs.reference;\n      if (input) {\n        input.focus();\n      }\n    },\n    getValueIndex: function getValueIndex() {\n      var _this12 = this;\n\n      var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var value = arguments[1];\n\n      var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';\n      if (!isObject) {\n        return arr.indexOf(value);\n      } else {\n        var _ret = function () {\n          var valueKey = _this12.valueKey;\n          var index = -1;\n          arr.some(function (item, i) {\n            if ((0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(value, valueKey)) {\n              index = i;\n              return true;\n            }\n            return false;\n          });\n          return {\n            v: index\n          };\n        }();\n\n        if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n      }\n    },\n    toggleMenu: function toggleMenu() {\n      if (!this.selectDisabled) {\n        if (this.menuVisibleOnFocus) {\n          this.menuVisibleOnFocus = false;\n        } else {\n          this.visible = !this.visible;\n        }\n        if (this.visible) {\n          (this.$refs.input || this.$refs.reference).focus();\n        }\n      }\n    },\n    selectOption: function selectOption() {\n      if (!this.visible) {\n        this.toggleMenu();\n      } else {\n        if (this.options[this.hoverIndex]) {\n          this.handleOptionSelect(this.options[this.hoverIndex]);\n        }\n      }\n    },\n    deleteSelected: function deleteSelected(event) {\n      event.stopPropagation();\n      this.$emit('input', '');\n      this.emitChange('');\n      this.visible = false;\n      this.$emit('clear');\n    },\n    deleteTag: function deleteTag(event, tag) {\n      var index = this.selected.indexOf(tag);\n      if (index > -1 && !this.selectDisabled) {\n        var value = this.value.slice();\n        value.splice(index, 1);\n        this.$emit('input', value);\n        this.emitChange(value);\n        this.$emit('remove-tag', tag.value);\n      }\n      event.stopPropagation();\n    },\n    onInputChange: function onInputChange() {\n      if (this.filterable && this.query !== this.selectedLabel) {\n        this.query = this.selectedLabel;\n        this.handleQueryChange(this.query);\n      }\n    },\n    onOptionDestroy: function onOptionDestroy(index) {\n      if (index > -1) {\n        this.optionsCount--;\n        this.filteredOptionsCount--;\n        this.options.splice(index, 1);\n      }\n    },\n    resetInputWidth: function resetInputWidth() {\n      this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width;\n    },\n    handleResize: function handleResize() {\n      this.resetInputWidth();\n      if (this.multiple) this.resetInputHeight();\n    },\n    checkDefaultFirstOption: function checkDefaultFirstOption() {\n      this.hoverIndex = -1;\n      // highlight the created option\n      var hasCreated = false;\n      for (var i = this.options.length - 1; i >= 0; i--) {\n        if (this.options[i].created) {\n          hasCreated = true;\n          this.hoverIndex = i;\n          break;\n        }\n      }\n      if (hasCreated) return;\n      for (var _i = 0; _i !== this.options.length; ++_i) {\n        var option = this.options[_i];\n        if (this.query) {\n          // highlight first options that passes the filter\n          if (!option.disabled && !option.groupDisabled && option.visible) {\n            this.hoverIndex = _i;\n            break;\n          }\n        } else {\n          // highlight currently selected option\n          if (option.itemSelected) {\n            this.hoverIndex = _i;\n            break;\n          }\n        }\n      }\n    },\n    getValueKey: function getValueKey(item) {\n      if (Object.prototype.toString.call(item.value).toLowerCase() !== '[object object]') {\n        return item.value;\n      } else {\n        return (0, _util.getValueByPath)(item.value, this.valueKey);\n      }\n    }\n  },\n\n  created: function created() {\n    var _this13 = this;\n\n    this.cachedPlaceHolder = this.currentPlaceholder = this.placeholder;\n    if (this.multiple && !Array.isArray(this.value)) {\n      this.$emit('input', []);\n    }\n    if (!this.multiple && Array.isArray(this.value)) {\n      this.$emit('input', '');\n    }\n\n    this.debouncedOnInputChange = (0, _debounce2.default)(this.debounce, function () {\n      _this13.onInputChange();\n    });\n\n    this.debouncedQueryChange = (0, _debounce2.default)(this.debounce, function (e) {\n      _this13.handleQueryChange(e.target.value);\n    });\n\n    this.$on('handleOptionClick', this.handleOptionSelect);\n    this.$on('setSelected', this.setSelected);\n  },\n  mounted: function mounted() {\n    var _this14 = this;\n\n    if (this.multiple && Array.isArray(this.value) && this.value.length > 0) {\n      this.currentPlaceholder = '';\n    }\n    (0, _resizeEvent.addResizeListener)(this.$el, this.handleResize);\n    if (this.remote && this.multiple) {\n      this.resetInputHeight();\n    }\n    this.$nextTick(function () {\n      if (_this14.$refs.reference && _this14.$refs.reference.$el) {\n        _this14.inputWidth = _this14.$refs.reference.$el.getBoundingClientRect().width;\n      }\n    });\n    this.setSelected();\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this.$el && this.handleResize) (0, _resizeEvent.removeResizeListener)(this.$el, this.handleResize);\n  }\n};\n\n/***/ }),\n\n/***/ 141:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__ = __webpack_require__(142);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__ = __webpack_require__(143);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 142:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(7);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElSelectDropdown',\n\n  componentName: 'ElSelectDropdown',\n\n  mixins: [_vuePopper2.default],\n\n  props: {\n    placement: {\n      default: 'bottom-start'\n    },\n\n    boundariesPadding: {\n      default: 0\n    },\n\n    popperOptions: {\n      default: function _default() {\n        return {\n          gpuAcceleration: false\n        };\n      }\n    },\n\n    visibleArrow: {\n      default: true\n    },\n\n    appendToBody: {\n      type: Boolean,\n      default: true\n    }\n  },\n\n  data: function data() {\n    return {\n      minWidth: ''\n    };\n  },\n\n\n  computed: {\n    popperClass: function popperClass() {\n      return this.$parent.popperClass;\n    }\n  },\n\n  watch: {\n    '$parent.inputWidth': function $parentInputWidth() {\n      this.minWidth = this.$parent.$el.getBoundingClientRect().width + 'px';\n    }\n  },\n\n  mounted: function mounted() {\n    var _this = this;\n\n    this.referenceElm = this.$parent.$refs.reference.$el;\n    this.$parent.popperElm = this.popperElm = this.$el;\n    this.$on('updatePopper', function () {\n      if (_this.$parent.visible) _this.updatePopper();\n    });\n    this.$on('destroyPopper', this.destroyPopper);\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 143:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-select-dropdown el-popper\",class:[{ 'is-multiple': _vm.$parent.multiple }, _vm.popperClass],style:({ minWidth: _vm.minWidth })},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 144:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = {\n  data: function data() {\n    return {\n      hoverOption: -1\n    };\n  },\n\n\n  computed: {\n    optionsAllDisabled: function optionsAllDisabled() {\n      return this.options.filter(function (option) {\n        return option.visible;\n      }).every(function (option) {\n        return option.disabled;\n      });\n    }\n  },\n\n  watch: {\n    hoverIndex: function hoverIndex(val) {\n      var _this = this;\n\n      if (typeof val === 'number' && val > -1) {\n        this.hoverOption = this.options[val] || {};\n      }\n      this.options.forEach(function (option) {\n        option.hover = _this.hoverOption === option;\n      });\n    }\n  },\n\n  methods: {\n    navigateOptions: function navigateOptions(direction) {\n      var _this2 = this;\n\n      if (!this.visible) {\n        this.visible = true;\n        return;\n      }\n      if (this.options.length === 0 || this.filteredOptionsCount === 0) return;\n      if (!this.optionsAllDisabled) {\n        if (direction === 'next') {\n          this.hoverIndex++;\n          if (this.hoverIndex === this.options.length) {\n            this.hoverIndex = 0;\n          }\n        } else if (direction === 'prev') {\n          this.hoverIndex--;\n          if (this.hoverIndex < 0) {\n            this.hoverIndex = this.options.length - 1;\n          }\n        }\n        var option = this.options[this.hoverIndex];\n        if (option.disabled === true || option.groupDisabled === true || !option.visible) {\n          this.navigateOptions(direction);\n        }\n        this.$nextTick(function () {\n          return _this2.scrollToOption(_this2.hoverOption);\n        });\n      }\n    }\n  }\n};\n\n/***/ }),\n\n/***/ 145:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleClose),expression:\"handleClose\"}],staticClass:\"el-select\",class:[_vm.selectSize ? 'el-select--' + _vm.selectSize : ''],on:{\"click\":function($event){$event.stopPropagation();_vm.toggleMenu($event)}}},[(_vm.multiple)?_c('div',{ref:\"tags\",staticClass:\"el-select__tags\",style:({ 'max-width': _vm.inputWidth - 32 + 'px' })},[(_vm.collapseTags && _vm.selected.length)?_c('span',[_c('el-tag',{attrs:{\"closable\":!_vm.selectDisabled,\"size\":_vm.collapseTagSize,\"hit\":_vm.selected[0].hitState,\"type\":\"info\",\"disable-transitions\":\"\"},on:{\"close\":function($event){_vm.deleteTag($event, _vm.selected[0])}}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(_vm._s(_vm.selected[0].currentLabel))])]),(_vm.selected.length > 1)?_c('el-tag',{attrs:{\"closable\":false,\"size\":_vm.collapseTagSize,\"type\":\"info\",\"disable-transitions\":\"\"}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(\"+ \"+_vm._s(_vm.selected.length - 1))])]):_vm._e()],1):_vm._e(),(!_vm.collapseTags)?_c('transition-group',{on:{\"after-leave\":_vm.resetInputHeight}},_vm._l((_vm.selected),function(item){return _c('el-tag',{key:_vm.getValueKey(item),attrs:{\"closable\":!_vm.selectDisabled,\"size\":_vm.collapseTagSize,\"hit\":item.hitState,\"type\":\"info\",\"disable-transitions\":\"\"},on:{\"close\":function($event){_vm.deleteTag($event, item)}}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(_vm._s(item.currentLabel))])])})):_vm._e(),(_vm.filterable)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.query),expression:\"query\"}],ref:\"input\",staticClass:\"el-select__input\",class:[_vm.selectSize ? (\"is-\" + _vm.selectSize) : ''],style:({ width: _vm.inputLength + 'px', 'max-width': _vm.inputWidth - 42 + 'px' }),attrs:{\"type\":\"text\",\"disabled\":_vm.selectDisabled,\"autocomplete\":_vm.autoComplete},domProps:{\"value\":(_vm.query)},on:{\"focus\":_vm.handleFocus,\"blur\":function($event){_vm.softFocus = false},\"click\":function($event){$event.stopPropagation();},\"keyup\":_vm.managePlaceholder,\"keydown\":[_vm.resetInputState,function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.preventDefault();_vm.navigateOptions('next')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.preventDefault();_vm.navigateOptions('prev')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }$event.preventDefault();_vm.selectOption($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"esc\",27,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.visible = false},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key)){ return null; }_vm.deletePrevTag($event)}],\"compositionstart\":_vm.handleComposition,\"compositionupdate\":_vm.handleComposition,\"compositionend\":_vm.handleComposition,\"input\":[function($event){if($event.target.composing){ return; }_vm.query=$event.target.value},_vm.debouncedQueryChange]}}):_vm._e()],1):_vm._e(),_c('el-input',{ref:\"reference\",class:{ 'is-focus': _vm.visible },attrs:{\"type\":\"text\",\"placeholder\":_vm.currentPlaceholder,\"name\":_vm.name,\"id\":_vm.id,\"auto-complete\":_vm.autoComplete,\"size\":_vm.selectSize,\"disabled\":_vm.selectDisabled,\"readonly\":_vm.readonly,\"validate-event\":false},on:{\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur},nativeOn:{\"keyup\":function($event){_vm.debouncedOnInputChange($event)},\"keydown\":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.navigateOptions('next')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.navigateOptions('prev')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }$event.preventDefault();_vm.selectOption($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"esc\",27,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.visible = false},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"tab\",9,$event.key)){ return null; }_vm.visible = false}],\"paste\":function($event){_vm.debouncedOnInputChange($event)},\"mouseenter\":function($event){_vm.inputHovering = true},\"mouseleave\":function($event){_vm.inputHovering = false}},model:{value:(_vm.selectedLabel),callback:function ($$v) {_vm.selectedLabel=$$v},expression:\"selectedLabel\"}},[(_vm.$slots.prefix)?_c('template',{attrs:{\"slot\":\"prefix\"},slot:\"prefix\"},[_vm._t(\"prefix\")],2):_vm._e(),_c('i',{class:['el-select__caret', 'el-input__icon', 'el-icon-' + _vm.iconClass],attrs:{\"slot\":\"suffix\"},on:{\"click\":_vm.handleIconClick},slot:\"suffix\"})],2),_c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"before-enter\":_vm.handleMenuEnter,\"after-leave\":_vm.doDestroy}},[_c('el-select-menu',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible && _vm.emptyText !== false),expression:\"visible && emptyText !== false\"}],ref:\"popper\",attrs:{\"append-to-body\":_vm.popperAppendToBody}},[_c('el-scrollbar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.options.length > 0 && !_vm.loading),expression:\"options.length > 0 && !loading\"}],ref:\"scrollbar\",class:{ 'is-empty': !_vm.allowCreate && _vm.query && _vm.filteredOptionsCount === 0 },attrs:{\"tag\":\"ul\",\"wrap-class\":\"el-select-dropdown__wrap\",\"view-class\":\"el-select-dropdown__list\"}},[(_vm.showNewOption)?_c('el-option',{attrs:{\"value\":_vm.query,\"created\":\"\"}}):_vm._e(),_vm._t(\"default\")],2),(_vm.emptyText &&\n          (!_vm.allowCreate || _vm.loading || (_vm.allowCreate && _vm.options.length === 0 )))?_c('p',{staticClass:\"el-select-dropdown__empty\"},[_vm._v(\"\\n        \"+_vm._s(_vm.emptyText)+\"\\n      \")]):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/scrollbar\");\n\n/***/ }),\n\n/***/ 18:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/resize-event\");\n\n/***/ }),\n\n/***/ 19:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/focus\");\n\n/***/ }),\n\n/***/ 2:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n\n/***/ 23:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/shared\");\n\n/***/ }),\n\n/***/ 25:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/tag\");\n\n/***/ }),\n\n/***/ 26:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/scroll-into-view\");\n\n/***/ }),\n\n/***/ 3:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n\n/***/ 35:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__ = __webpack_require__(36);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__ = __webpack_require__(37);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 36:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _util = __webpack_require__(3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  mixins: [_emitter2.default],\n\n  name: 'ElOption',\n\n  componentName: 'ElOption',\n\n  inject: ['select'],\n\n  props: {\n    value: {\n      required: true\n    },\n    label: [String, Number],\n    created: Boolean,\n    disabled: {\n      type: Boolean,\n      default: false\n    }\n  },\n\n  data: function data() {\n    return {\n      index: -1,\n      groupDisabled: false,\n      visible: true,\n      hitState: false,\n      hover: false\n    };\n  },\n\n\n  computed: {\n    isObject: function isObject() {\n      return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';\n    },\n    currentLabel: function currentLabel() {\n      return this.label || (this.isObject ? '' : this.value);\n    },\n    currentValue: function currentValue() {\n      return this.value || this.label || '';\n    },\n    itemSelected: function itemSelected() {\n      if (!this.select.multiple) {\n        return this.isEqual(this.value, this.select.value);\n      } else {\n        return this.contains(this.select.value, this.value);\n      }\n    },\n    limitReached: function limitReached() {\n      if (this.select.multiple) {\n        return !this.itemSelected && (this.select.value || []).length >= this.select.multipleLimit && this.select.multipleLimit > 0;\n      } else {\n        return false;\n      }\n    }\n  },\n\n  watch: {\n    currentLabel: function currentLabel() {\n      if (!this.created && !this.select.remote) this.dispatch('ElSelect', 'setSelected');\n    },\n    value: function value(val, oldVal) {\n      var _select = this.select,\n          remote = _select.remote,\n          valueKey = _select.valueKey;\n\n      if (!this.created && !remote) {\n        if (valueKey && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && (typeof oldVal === 'undefined' ? 'undefined' : _typeof(oldVal)) === 'object' && val[valueKey] === oldVal[valueKey]) {\n          return;\n        }\n        this.dispatch('ElSelect', 'setSelected');\n      }\n    }\n  },\n\n  methods: {\n    isEqual: function isEqual(a, b) {\n      if (!this.isObject) {\n        return a === b;\n      } else {\n        var valueKey = this.select.valueKey;\n        return (0, _util.getValueByPath)(a, valueKey) === (0, _util.getValueByPath)(b, valueKey);\n      }\n    },\n    contains: function contains() {\n      var _this = this;\n\n      var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var target = arguments[1];\n\n      if (!this.isObject) {\n        return arr.indexOf(target) > -1;\n      } else {\n        var _ret = function () {\n          var valueKey = _this.select.valueKey;\n          return {\n            v: arr.some(function (item) {\n              return (0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(target, valueKey);\n            })\n          };\n        }();\n\n        if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n      }\n    },\n    handleGroupDisabled: function handleGroupDisabled(val) {\n      this.groupDisabled = val;\n    },\n    hoverItem: function hoverItem() {\n      if (!this.disabled && !this.groupDisabled) {\n        this.select.hoverIndex = this.select.options.indexOf(this);\n      }\n    },\n    selectOptionClick: function selectOptionClick() {\n      if (this.disabled !== true && this.groupDisabled !== true) {\n        this.dispatch('ElSelect', 'handleOptionClick', [this, true]);\n      }\n    },\n    queryChange: function queryChange(query) {\n      this.visible = new RegExp((0, _util.escapeRegexpString)(query), 'i').test(this.currentLabel) || this.created;\n      if (!this.visible) {\n        this.select.filteredOptionsCount--;\n      }\n    }\n  },\n\n  created: function created() {\n    this.select.options.push(this);\n    this.select.cachedOptions.push(this);\n    this.select.optionsCount++;\n    this.select.filteredOptionsCount++;\n\n    this.$on('queryChange', this.queryChange);\n    this.$on('handleGroupDisabled', this.handleGroupDisabled);\n  },\n  beforeDestroy: function beforeDestroy() {\n    this.select.onOptionDestroy(this.select.options.indexOf(this));\n  }\n};\n\n/***/ }),\n\n/***/ 37:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-select-dropdown__item\",class:{\n    'selected': _vm.itemSelected,\n    'is-disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n    'hover': _vm.hover\n  },on:{\"mouseenter\":_vm.hoverItem,\"click\":function($event){$event.stopPropagation();_vm.selectOptionClick($event)}}},[_vm._t(\"default\",[_c('span',[_vm._v(_vm._s(_vm.currentLabel))])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n\n/***/ 5:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/locale\");\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/input\");\n\n/***/ }),\n\n/***/ 7:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vue-popper\");\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/select.js\n// module id = PiGl\n// module chunks = 0","var DataZoomView = require(\"./DataZoomView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = DataZoomView.extend({\n  type: 'dataZoom.select'\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/SelectZoomView.js\n// module id = Piua\n// module chunks = 0","var LRU = require(\"../../core/LRU\");\n\nvar globalImageCache = new LRU(50);\n/**\n * @param {string|HTMLImageElement|HTMLCanvasElement|Canvas} newImageOrSrc\n * @return {HTMLImageElement|HTMLCanvasElement|Canvas} image\n */\n\nfunction findExistImage(newImageOrSrc) {\n  if (typeof newImageOrSrc === 'string') {\n    var cachedImgObj = globalImageCache.get(newImageOrSrc);\n    return cachedImgObj && cachedImgObj.image;\n  } else {\n    return newImageOrSrc;\n  }\n}\n/**\n * Caution: User should cache loaded images, but not just count on LRU.\n * Consider if required images more than LRU size, will dead loop occur?\n *\n * @param {string|HTMLImageElement|HTMLCanvasElement|Canvas} newImageOrSrc\n * @param {HTMLImageElement|HTMLCanvasElement|Canvas} image Existent image.\n * @param {module:zrender/Element} [hostEl] For calling `dirty`.\n * @param {Function} [cb] params: (image, cbPayload)\n * @param {Object} [cbPayload] Payload on cb calling.\n * @return {HTMLImageElement|HTMLCanvasElement|Canvas} image\n */\n\n\nfunction createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) {\n  if (!newImageOrSrc) {\n    return image;\n  } else if (typeof newImageOrSrc === 'string') {\n    // Image should not be loaded repeatly.\n    if (image && image.__zrImageSrc === newImageOrSrc || !hostEl) {\n      return image;\n    } // Only when there is no existent image or existent image src\n    // is different, this method is responsible for load.\n\n\n    var cachedImgObj = globalImageCache.get(newImageOrSrc);\n    var pendingWrap = {\n      hostEl: hostEl,\n      cb: cb,\n      cbPayload: cbPayload\n    };\n\n    if (cachedImgObj) {\n      image = cachedImgObj.image;\n      !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n    } else {\n      !image && (image = new Image());\n      image.onload = imageOnLoad;\n      globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n        image: image,\n        pending: [pendingWrap]\n      });\n      image.src = image.__zrImageSrc = newImageOrSrc;\n    }\n\n    return image;\n  } // newImageOrSrc is an HTMLImageElement or HTMLCanvasElement or Canvas\n  else {\n      return newImageOrSrc;\n    }\n}\n\nfunction imageOnLoad() {\n  var cachedImgObj = this.__cachedImgObj;\n  this.onload = this.__cachedImgObj = null;\n\n  for (var i = 0; i < cachedImgObj.pending.length; i++) {\n    var pendingWrap = cachedImgObj.pending[i];\n    var cb = pendingWrap.cb;\n    cb && cb(this, pendingWrap.cbPayload);\n    pendingWrap.hostEl.dirty();\n  }\n\n  cachedImgObj.pending.length = 0;\n}\n\nfunction isImageReady(image) {\n  return image && image.width && image.height;\n}\n\nexports.findExistImage = findExistImage;\nexports.createOrUpdateImage = createOrUpdateImage;\nexports.isImageReady = isImageReady;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/image.js\n// module id = Pp7o\n// module chunks = 0","require(\"../coord/polar/polarCreator\");\n\nrequire(\"./axis/AngleAxisView\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/angleAxis.js\n// module id = Pq3W\n// module chunks = 0","var LegendModel = require(\"./LegendModel\");\n\nvar _layout = require(\"../../util/layout\");\n\nvar mergeLayoutParam = _layout.mergeLayoutParam;\nvar getLayoutParams = _layout.getLayoutParams;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ScrollableLegendModel = LegendModel.extend({\n  type: 'legend.scroll',\n\n  /**\n   * @param {number} scrollDataIndex\n   */\n  setScrollDataIndex: function (scrollDataIndex) {\n    this.option.scrollDataIndex = scrollDataIndex;\n  },\n  defaultOption: {\n    scrollDataIndex: 0,\n    pageButtonItemGap: 5,\n    pageButtonGap: null,\n    pageButtonPosition: 'end',\n    // 'start' or 'end'\n    pageFormatter: '{current}/{total}',\n    // If null/undefined, do not show page.\n    pageIcons: {\n      horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n      vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n    },\n    pageIconColor: '#2f4554',\n    pageIconInactiveColor: '#aaa',\n    pageIconSize: 15,\n    // Can be [10, 3], which represents [width, height]\n    pageTextStyle: {\n      color: '#333'\n    },\n    animationDurationUpdate: 800\n  },\n\n  /**\n   * @override\n   */\n  init: function (option, parentModel, ecModel, extraOpt) {\n    var inputPositionParams = getLayoutParams(option);\n    ScrollableLegendModel.superCall(this, 'init', option, parentModel, ecModel, extraOpt);\n    mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n  },\n\n  /**\n   * @override\n   */\n  mergeOption: function (option, extraOpt) {\n    ScrollableLegendModel.superCall(this, 'mergeOption', option, extraOpt);\n    mergeAndNormalizeLayoutParams(this, this.option, option);\n  },\n  getOrient: function () {\n    return this.get('orient') === 'vertical' ? {\n      index: 1,\n      name: 'vertical'\n    } : {\n      index: 0,\n      name: 'horizontal'\n    };\n  }\n}); // Do not `ignoreSize` to enable setting {left: 10, right: 10}.\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n  var orient = legendModel.getOrient();\n  var ignoreSize = [1, 1];\n  ignoreSize[orient.index] = 0;\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: ignoreSize\n  });\n}\n\nvar _default = ScrollableLegendModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legend/ScrollableLegendModel.js\n// module id = Ptym\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar VISUAL_PRIORITY = echarts.PRIORITY.VISUAL.COMPONENT;\necharts.registerVisual(VISUAL_PRIORITY, {\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var resetDefines = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      var pipelineContext = seriesModel.pipelineContext;\n\n      if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n        return;\n      }\n\n      resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\n    });\n    return resetDefines;\n  }\n}); // Only support color.\n\necharts.registerVisual(VISUAL_PRIORITY, {\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var visualMetaList = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      if (visualMapModel.isTargetSeries(seriesModel)) {\n        var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n          stops: [],\n          outerColors: []\n        };\n        var concreteDim = visualMapModel.getDataDimension(data);\n        var dimInfo = data.getDimensionInfo(concreteDim);\n\n        if (dimInfo != null) {\n          // visualMeta.dimension should be dimension index, but not concrete dimension.\n          visualMeta.dimension = dimInfo.index;\n          visualMetaList.push(visualMeta);\n        }\n      }\n    }); // console.log(JSON.stringify(visualMetaList.map(a => a.stops)));\n\n    seriesModel.getData().setVisual('visualMeta', visualMetaList);\n  }\n}); // FIXME\n// performance and export for heatmap?\n// value can be Infinity or -Infinity\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n  var mappings = visualMapModel.targetVisuals[valueState];\n  var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n  var resultVisual = {\n    color: seriesModel.getData().getVisual('color') // default color.\n\n  };\n\n  for (var i = 0, len = visualTypes.length; i < len; i++) {\n    var type = visualTypes[i];\n    var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n    mapping && mapping.applyVisual(value, getVisual, setVisual);\n  }\n\n  return resultVisual.color;\n\n  function getVisual(key) {\n    return resultVisual[key];\n  }\n\n  function setVisual(key, value) {\n    resultVisual[key] = value;\n  }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/visualEncoding.js\n// module id = PvHr\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction IndicatorAxis(dim, scale, radiusExtent) {\n  Axis.call(this, dim, scale, radiusExtent);\n  /**\n   * Axis type\n   *  - 'category'\n   *  - 'value'\n   *  - 'time'\n   *  - 'log'\n   * @type {string}\n   */\n\n  this.type = 'value';\n  this.angle = 0;\n  /**\n   * Indicator name\n   * @type {string}\n   */\n\n  this.name = '';\n  /**\n   * @type {module:echarts/model/Model}\n   */\n\n  this.model;\n}\n\nzrUtil.inherits(IndicatorAxis, Axis);\nvar _default = IndicatorAxis;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/radar/IndicatorAxis.js\n// module id = Q+zo\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar _number = require(\"./number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar formatUtil = require(\"./format\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Layout helpers for each component positioning\nvar each = zrUtil.each;\n/**\n * @public\n */\n\nvar LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\n/**\n * @public\n */\n\nvar HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var position = child.position;\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX; // Wrap when width exceeds maxWidth or meet a `newline` group\n      // FIXME compare before adding gap?\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        // FIXME: consider rect.y is not `0`?\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY; // Wrap when width exceeds maxHeight or meet a `newline` group\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    position[0] = x;\n    position[1] = y;\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n/**\n * VBox or HBox layouting\n * @param {string} orient\n * @param {module:zrender/container/Group} group\n * @param {number} gap\n * @param {number} [width=Infinity]\n * @param {number} [height=Infinity]\n */\n\n\nvar box = boxLayout;\n/**\n * VBox layouting\n * @param {module:zrender/container/Group} group\n * @param {number} gap\n * @param {number} [width=Infinity]\n * @param {number} [height=Infinity]\n */\n\nvar vbox = zrUtil.curry(boxLayout, 'vertical');\n/**\n * HBox layouting\n * @param {module:zrender/container/Group} group\n * @param {number} gap\n * @param {number} [width=Infinity]\n * @param {number} [height=Infinity]\n */\n\nvar hbox = zrUtil.curry(boxLayout, 'horizontal');\n/**\n * If x or x2 is not specified or 'center' 'left' 'right',\n * the width would be as long as possible.\n * If y or y2 is not specified or 'middle' 'top' 'bottom',\n * the height would be as long as possible.\n *\n * @param {Object} positionInfo\n * @param {number|string} [positionInfo.x]\n * @param {number|string} [positionInfo.y]\n * @param {number|string} [positionInfo.x2]\n * @param {number|string} [positionInfo.y2]\n * @param {Object} containerRect {width, height}\n * @param {string|number} margin\n * @return {Object} {width, height}\n */\n\nfunction getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.x, containerWidth);\n  var y = parsePercent(positionInfo.y, containerHeight);\n  var x2 = parsePercent(positionInfo.x2, containerWidth);\n  var y2 = parsePercent(positionInfo.y2, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.x))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.x2))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.y))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.y2))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\n/**\n * Parse position info.\n *\n * @param {Object} positionInfo\n * @param {number|string} [positionInfo.left]\n * @param {number|string} [positionInfo.top]\n * @param {number|string} [positionInfo.right]\n * @param {number|string} [positionInfo.bottom]\n * @param {number|string} [positionInfo.width]\n * @param {number|string} [positionInfo.height]\n * @param {number|string} [positionInfo.aspect] Aspect is width / height\n * @param {Object} containerRect\n * @param {string|number} [margin]\n *\n * @return {module:zrender/core/BoundingRect}\n */\n\n\nfunction getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect; // If width is not specified, calculate width from left and right\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    // If width and height are not given\n    // 1. Graph should not exceeds the container\n    // 2. Aspect must be keeped\n    // 3. Graph should take the space as more as possible\n    // FIXME\n    // Margin is not considered, because there is no case that both\n    // using margin and aspect so far.\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    } // Calculate width or height with given aspect\n\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  } // If left is not specified, calculate left from right and width\n\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  } // Align left and top\n\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  } // If something is wrong and left, top, width, height are calculated as NaN\n\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    // Width may be NaN if only one value is given except width\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    // Height may be NaN if only one value is given except height\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\n/**\n * Position a zr element in viewport\n *  Group position is specified by either\n *  {left, top}, {right, bottom}\n *  If all properties exists, right and bottom will be igonred.\n *\n * Logic:\n *     1. Scale (against origin point in parent coord)\n *     2. Rotate (against origin point in parent coord)\n *     3. Traslate (with el.position by this method)\n * So this method only fixes the last step 'Traslate', which does not affect\n * scaling and rotating.\n *\n * If be called repeatly with the same input el, the same result will be gotten.\n *\n * @param {module:zrender/Element} el Should have `getBoundingRect` method.\n * @param {Object} positionInfo\n * @param {number|string} [positionInfo.left]\n * @param {number|string} [positionInfo.top]\n * @param {number|string} [positionInfo.right]\n * @param {number|string} [positionInfo.bottom]\n * @param {number|string} [positionInfo.width] Only for opt.boundingModel: 'raw'\n * @param {number|string} [positionInfo.height] Only for opt.boundingModel: 'raw'\n * @param {Object} containerRect\n * @param {string|number} margin\n * @param {Object} [opt]\n * @param {Array.<number>} [opt.hv=[1,1]] Only horizontal or only vertical.\n * @param {Array.<number>} [opt.boundingMode='all']\n *        Specify how to calculate boundingRect when locating.\n *        'all': Position the boundingRect that is transformed and uioned\n *               both itself and its descendants.\n *               This mode simplies confine the elements in the bounding\n *               of their container (e.g., using 'right: 0').\n *        'raw': Position the boundingRect that is not transformed and only itself.\n *               This mode is useful when you want a element can overflow its\n *               container. (Consider a rotated circle needs to be located in a corner.)\n *               In this mode positionInfo.width/height can only be number.\n */\n\n\nfunction positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform(); // Notice: raw rect may be inner object of el,\n      // which should not be modified.\n\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  } // The real width and height can not be specified but calculated by the given el.\n\n\n  positionInfo = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin); // Because 'tranlate' is the last step in transform\n  // (see zrender/core/Transformable#getLocalTransform),\n  // we can just only modify el.position to get final result.\n\n  var elPos = el.position;\n  var dx = h ? positionInfo.x - rect.x : 0;\n  var dy = v ? positionInfo.y - rect.y : 0;\n  el.attr('position', boundingMode === 'raw' ? [dx, dy] : [elPos[0] + dx, elPos[1] + dy]);\n}\n/**\n * @param {Object} option Contains some of the properties in HV_NAMES.\n * @param {number} hvIdx 0: horizontal; 1: vertical.\n */\n\n\nfunction sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\n/**\n * Consider Case:\n * When defulat option has {left: 0, width: 100}, and we set {right: 0}\n * through setOption or media query, using normal zrUtil.merge will cause\n * {right: 0} does not take effect.\n *\n * @example\n * ComponentModel.extend({\n *     init: function () {\n *         ...\n *         var inputPositionParams = layout.getLayoutParams(option);\n *         this.mergeOption(inputPositionParams);\n *     },\n *     mergeOption: function (newOption) {\n *         newOption && zrUtil.merge(thisOption, newOption, true);\n *         layout.mergeLayoutParam(thisOption, newOption);\n *     }\n * });\n *\n * @param {Object} targetOption\n * @param {Object} newOption\n * @param {Object|string} [opt]\n * @param {boolean|Array.<boolean>} [opt.ignoreSize=false] Used for the components\n *  that width (or height) should not be calculated by left and right (or top and bottom).\n */\n\n\nfunction mergeLayoutParam(targetOption, newOption, opt) {\n  !zrUtil.isObject(opt) && (opt = {});\n  var ignoreSize = opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      // Consider case: newOption.width is null, which is\n      // set by user for removing width setting.\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      // Only one of left/right is premitted to exist.\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    } // Case: newOption: {width: ..., right: ...},\n    // or targetOption: {right: ...} and newOption: {width: ...},\n    // There is no conflict when merged only has params count\n    // little than enoughParamNumber.\n\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } // Case: newOption: {width: ..., right: ...},\n    // Than we can make sure user only want those two, and ignore\n    // all origin params in targetOption.\n    else if (newValueCount >= enoughParamNumber) {\n        return newParams;\n      } else {\n        // Chose another param from targetOption by priority.\n        for (var i = 0; i < names.length; i++) {\n          var name = names[i];\n\n          if (!hasProp(newParams, name) && hasProp(targetOption, name)) {\n            newParams[name] = targetOption[name];\n            break;\n          }\n        }\n\n        return newParams;\n      }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\n/**\n * Retrieve 'left', 'right', 'top', 'bottom', 'width', 'height' from object.\n * @param {Object} source\n * @return {Object} Result contains those props.\n */\n\n\nfunction getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\n/**\n * Retrieve 'left', 'right', 'top', 'bottom', 'width', 'height' from object.\n * @param {Object} source\n * @return {Object} Result contains those props.\n */\n\n\nfunction copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}\n\nexports.LOCATION_PARAMS = LOCATION_PARAMS;\nexports.HV_NAMES = HV_NAMES;\nexports.box = box;\nexports.vbox = vbox;\nexports.hbox = hbox;\nexports.getAvailableSize = getAvailableSize;\nexports.getLayoutRect = getLayoutRect;\nexports.positionElement = positionElement;\nexports.sizeCalculable = sizeCalculable;\nexports.mergeLayoutParam = mergeLayoutParam;\nexports.getLayoutParams = getLayoutParams;\nexports.copyLayoutParams = copyLayoutParams;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/layout.js\n// module id = Q/cl\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar TooltipContent = require(\"./TooltipContent\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar findPointFromSeries = require(\"../axisPointer/findPointFromSeries\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar Model = require(\"../../model/Model\");\n\nvar globalListener = require(\"../axisPointer/globalListener\");\n\nvar axisHelper = require(\"../../coord/axisHelper\");\n\nvar axisPointerViewHelper = require(\"../axisPointer/viewHelper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n  shape: {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  }\n});\n\nvar _default = echarts.extendComponentView({\n  type: 'tooltip',\n  init: function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    var tooltipContent = new TooltipContent(api.getDom(), api);\n    this._tooltipContent = tooltipContent;\n  },\n  render: function (tooltipModel, ecModel, api) {\n    if (env.node || env.wxa) {\n      return;\n    } // Reset\n\n\n    this.group.removeAll();\n    /**\n     * @private\n     * @type {module:echarts/component/tooltip/TooltipModel}\n     */\n\n    this._tooltipModel = tooltipModel;\n    /**\n     * @private\n     * @type {module:echarts/model/Global}\n     */\n\n    this._ecModel = ecModel;\n    /**\n     * @private\n     * @type {module:echarts/ExtensionAPI}\n     */\n\n    this._api = api;\n    /**\n     * Should be cleaned when render.\n     * @private\n     * @type {Array.<Array.<Object>>}\n     */\n\n    this._lastDataByCoordSys = null;\n    /**\n     * @private\n     * @type {boolean}\n     */\n\n    this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.update();\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n    this._initGlobalListener();\n\n    this._keepShow();\n  },\n  _initGlobalListener: function () {\n    var tooltipModel = this._tooltipModel;\n    var triggerOn = tooltipModel.get('triggerOn');\n    globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n      // If 'none', it is not controlled by mouse totally.\n      if (triggerOn !== 'none') {\n        if (triggerOn.indexOf(currTrigger) >= 0) {\n          this._tryShow(e, dispatchAction);\n        } else if (currTrigger === 'leave') {\n          this._hide(dispatchAction);\n        }\n      }\n    }, this));\n  },\n  _keepShow: function () {\n    var tooltipModel = this._tooltipModel;\n    var ecModel = this._ecModel;\n    var api = this._api; // Try to keep the tooltip show when refreshing\n\n    if (this._lastX != null && this._lastY != null // When user is willing to control tooltip totally using API,\n    // self.manuallyShowTip({x, y}) might cause tooltip hide,\n    // which is not expected.\n    && tooltipModel.get('triggerOn') !== 'none') {\n      var self = this;\n      clearTimeout(this._refreshUpdateTimeout);\n      this._refreshUpdateTimeout = setTimeout(function () {\n        // Show tip next tick after other charts are rendered\n        // In case highlight action has wrong result\n        // FIXME\n        self.manuallyShowTip(tooltipModel, ecModel, api, {\n          x: self._lastX,\n          y: self._lastY\n        });\n      });\n    }\n  },\n\n  /**\n   * Show tip manually by\n   * dispatchAction({\n   *     type: 'showTip',\n   *     x: 10,\n   *     y: 10\n   * });\n   * Or\n   * dispatchAction({\n   *      type: 'showTip',\n   *      seriesIndex: 0,\n   *      dataIndex or dataIndexInside or name\n   * });\n   *\n   *  TODO Batch\n   */\n  manuallyShowTip: function (tooltipModel, ecModel, api, payload) {\n    if (payload.from === this.uid || env.node) {\n      return;\n    }\n\n    var dispatchAction = makeDispatchAction(payload, api); // Reset ticket\n\n    this._ticket = ''; // When triggered from axisPointer.\n\n    var dataByCoordSys = payload.dataByCoordSys;\n\n    if (payload.tooltip && payload.x != null && payload.y != null) {\n      var el = proxyRect;\n      el.position = [payload.x, payload.y];\n      el.update();\n      el.tooltip = payload.tooltip; // Manually show tooltip while view is not using zrender elements.\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        target: el\n      }, dispatchAction);\n    } else if (dataByCoordSys) {\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        event: {},\n        dataByCoordSys: payload.dataByCoordSys,\n        tooltipOption: payload.tooltipOption\n      }, dispatchAction);\n    } else if (payload.seriesIndex != null) {\n      if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n        return;\n      }\n\n      var pointInfo = findPointFromSeries(payload, ecModel);\n      var cx = pointInfo.point[0];\n      var cy = pointInfo.point[1];\n\n      if (cx != null && cy != null) {\n        this._tryShow({\n          offsetX: cx,\n          offsetY: cy,\n          position: payload.position,\n          target: pointInfo.el,\n          event: {}\n        }, dispatchAction);\n      }\n    } else if (payload.x != null && payload.y != null) {\n      // FIXME\n      // should wrap dispatchAction like `axisPointer/globalListener` ?\n      api.dispatchAction({\n        type: 'updateAxisPointer',\n        x: payload.x,\n        y: payload.y\n      });\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        target: api.getZr().findHover(payload.x, payload.y).target,\n        event: {}\n      }, dispatchAction);\n    }\n  },\n  manuallyHideTip: function (tooltipModel, ecModel, api, payload) {\n    var tooltipContent = this._tooltipContent;\n\n    if (!this._alwaysShowContent && this._tooltipModel) {\n      tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n    }\n\n    this._lastX = this._lastY = null;\n\n    if (payload.from !== this.uid) {\n      this._hide(makeDispatchAction(payload, api));\n    }\n  },\n  // Be compatible with previous design, that is, when tooltip.type is 'axis' and\n  // dispatchAction 'showTip' with seriesIndex and dataIndex will trigger axis pointer\n  // and tooltip.\n  _manuallyAxisShowTip: function (tooltipModel, ecModel, api, payload) {\n    var seriesIndex = payload.seriesIndex;\n    var dataIndex = payload.dataIndex;\n    var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n    if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n      return;\n    }\n\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (!seriesModel) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n    if (tooltipModel.get('trigger') !== 'axis') {\n      return;\n    }\n\n    api.dispatchAction({\n      type: 'updateAxisPointer',\n      seriesIndex: seriesIndex,\n      dataIndex: dataIndex,\n      position: payload.position\n    });\n    return true;\n  },\n  _tryShow: function (e, dispatchAction) {\n    var el = e.target;\n    var tooltipModel = this._tooltipModel;\n\n    if (!tooltipModel) {\n      return;\n    } // Save mouse x, mouse y. So we can try to keep showing the tip if chart is refreshed\n\n\n    this._lastX = e.offsetX;\n    this._lastY = e.offsetY;\n    var dataByCoordSys = e.dataByCoordSys;\n\n    if (dataByCoordSys && dataByCoordSys.length) {\n      this._showAxisTooltip(dataByCoordSys, e);\n    } // Always show item tooltip if mouse is on the element with dataIndex\n    else if (el && el.dataIndex != null) {\n        this._lastDataByCoordSys = null;\n\n        this._showSeriesItemTooltip(e, el, dispatchAction);\n      } // Tooltip provided directly. Like legend.\n      else if (el && el.tooltip) {\n          this._lastDataByCoordSys = null;\n\n          this._showComponentItemTooltip(e, el, dispatchAction);\n        } else {\n          this._lastDataByCoordSys = null;\n\n          this._hide(dispatchAction);\n        }\n  },\n  _showOrMove: function (tooltipModel, cb) {\n    // showDelay is used in this case: tooltip.enterable is set\n    // as true. User intent to move mouse into tooltip and click\n    // something. `showDelay` makes it easyer to enter the content\n    // but tooltip do not move immediately.\n    var delay = tooltipModel.get('showDelay');\n    cb = zrUtil.bind(cb, this);\n    clearTimeout(this._showTimout);\n    delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n  },\n  _showAxisTooltip: function (dataByCoordSys, e) {\n    var ecModel = this._ecModel;\n    var globalTooltipModel = this._tooltipModel;\n    var point = [e.offsetX, e.offsetY];\n    var singleDefaultHTML = [];\n    var singleParamsList = [];\n    var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n    each(dataByCoordSys, function (itemCoordSys) {\n      // var coordParamList = [];\n      // var coordDefaultHTML = [];\n      // var coordTooltipModel = buildTooltipModel([\n      //     e.tooltipOption,\n      //     itemCoordSys.tooltipOption,\n      //     ecModel.getComponent(itemCoordSys.coordSysMainType, itemCoordSys.coordSysIndex),\n      //     globalTooltipModel\n      // ]);\n      // var displayMode = coordTooltipModel.get('displayMode');\n      // var paramsList = displayMode === 'single' ? singleParamsList : [];\n      each(itemCoordSys.dataByAxis, function (item) {\n        var axisModel = ecModel.getComponent(item.axisDim + 'Axis', item.axisIndex);\n        var axisValue = item.value;\n        var seriesDefaultHTML = [];\n\n        if (!axisModel || axisValue == null) {\n          return;\n        }\n\n        var valueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, item.seriesDataIndices, item.valueLabelOpt);\n        zrUtil.each(item.seriesDataIndices, function (idxItem) {\n          var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n          var dataIndex = idxItem.dataIndexInside;\n          var dataParams = series && series.getDataParams(dataIndex);\n          dataParams.axisDim = item.axisDim;\n          dataParams.axisIndex = item.axisIndex;\n          dataParams.axisType = item.axisType;\n          dataParams.axisId = item.axisId;\n          dataParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, axisValue);\n          dataParams.axisValueLabel = valueLabel;\n\n          if (dataParams) {\n            singleParamsList.push(dataParams);\n            seriesDefaultHTML.push(series.formatTooltip(dataIndex, true));\n          }\n        }); // Default tooltip content\n        // FIXME\n        // (1) shold be the first data which has name?\n        // (2) themeRiver, firstDataIndex is array, and first line is unnecessary.\n\n        var firstLine = valueLabel;\n        singleDefaultHTML.push((firstLine ? formatUtil.encodeHTML(firstLine) + '<br />' : '') + seriesDefaultHTML.join('<br />'));\n      });\n    }, this); // In most case, the second axis is shown upper than the first one.\n\n    singleDefaultHTML.reverse();\n    singleDefaultHTML = singleDefaultHTML.join('<br /><br />');\n    var positionExpr = e.position;\n\n    this._showOrMove(singleTooltipModel, function () {\n      if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n        this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, singleParamsList);\n      } else {\n        this._showTooltipContent(singleTooltipModel, singleDefaultHTML, singleParamsList, Math.random(), point[0], point[1], positionExpr);\n      }\n    }); // Do not trigger events here, because this branch only be entered\n    // from dispatchAction.\n\n  },\n  _showSeriesItemTooltip: function (e, el, dispatchAction) {\n    var ecModel = this._ecModel; // Use dataModel in element if possible\n    // Used when mouseover on a element like markPoint or edge\n    // In which case, the data is not main data in series.\n\n    var seriesIndex = el.seriesIndex;\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex); // For example, graph link.\n\n    var dataModel = el.dataModel || seriesModel;\n    var dataIndex = el.dataIndex;\n    var dataType = el.dataType;\n    var data = dataModel.getData();\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n    var tooltipTrigger = tooltipModel.get('trigger');\n\n    if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n      return;\n    }\n\n    var params = dataModel.getDataParams(dataIndex, dataType);\n    var defaultHtml = dataModel.formatTooltip(dataIndex, false, dataType);\n    var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n    this._showOrMove(tooltipModel, function () {\n      this._showTooltipContent(tooltipModel, defaultHtml, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target);\n    }); // FIXME\n    // duplicated showtip if manuallyShowTip is called from dispatchAction.\n\n\n    dispatchAction({\n      type: 'showTip',\n      dataIndexInside: dataIndex,\n      dataIndex: data.getRawIndex(dataIndex),\n      seriesIndex: seriesIndex,\n      from: this.uid\n    });\n  },\n  _showComponentItemTooltip: function (e, el, dispatchAction) {\n    var tooltipOpt = el.tooltip;\n\n    if (typeof tooltipOpt === 'string') {\n      var content = tooltipOpt;\n      tooltipOpt = {\n        content: content,\n        // Fixed formatter\n        formatter: content\n      };\n    }\n\n    var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n    var defaultHtml = subTooltipModel.get('content');\n    var asyncTicket = Math.random(); // Do not check whether `trigger` is 'none' here, because `trigger`\n    // only works on cooridinate system. In fact, we have not found case\n    // that requires setting `trigger` nothing on component yet.\n\n    this._showOrMove(subTooltipModel, function () {\n      this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el);\n    }); // If not dispatch showTip, tip may be hide triggered by axis.\n\n\n    dispatchAction({\n      type: 'showTip',\n      from: this.uid\n    });\n  },\n  _showTooltipContent: function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el) {\n    // Reset ticket\n    this._ticket = '';\n\n    if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n      return;\n    }\n\n    var tooltipContent = this._tooltipContent;\n    var formatter = tooltipModel.get('formatter');\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var html = defaultHtml;\n\n    if (formatter && typeof formatter === 'string') {\n      html = formatUtil.formatTpl(formatter, params, true);\n    } else if (typeof formatter === 'function') {\n      var callback = bind(function (cbTicket, html) {\n        if (cbTicket === this._ticket) {\n          tooltipContent.setContent(html);\n\n          this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n        }\n      }, this);\n      this._ticket = asyncTicket;\n      html = formatter(params, asyncTicket, callback);\n    }\n\n    tooltipContent.setContent(html);\n    tooltipContent.show(tooltipModel);\n\n    this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n  },\n\n  /**\n   * @param  {string|Function|Array.<number>|Object} positionExpr\n   * @param  {number} x Mouse x\n   * @param  {number} y Mouse y\n   * @param  {boolean} confine Whether confine tooltip content in view rect.\n   * @param  {Object|<Array.<Object>} params\n   * @param  {module:zrender/Element} el target element\n   * @param  {module:echarts/ExtensionAPI} api\n   * @return {Array.<number>}\n   */\n  _updatePosition: function (tooltipModel, positionExpr, x, y, content, params, el) {\n    var viewWidth = this._api.getWidth();\n\n    var viewHeight = this._api.getHeight();\n\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var contentSize = content.getSize();\n    var align = tooltipModel.get('align');\n    var vAlign = tooltipModel.get('verticalAlign');\n    var rect = el && el.getBoundingRect().clone();\n    el && rect.applyTransform(el.transform);\n\n    if (typeof positionExpr === 'function') {\n      // Callback of position can be an array or a string specify the position\n      positionExpr = positionExpr([x, y], params, content.el, rect, {\n        viewSize: [viewWidth, viewHeight],\n        contentSize: contentSize.slice()\n      });\n    }\n\n    if (zrUtil.isArray(positionExpr)) {\n      x = parsePercent(positionExpr[0], viewWidth);\n      y = parsePercent(positionExpr[1], viewHeight);\n    } else if (zrUtil.isObject(positionExpr)) {\n      positionExpr.width = contentSize[0];\n      positionExpr.height = contentSize[1];\n      var layoutRect = layoutUtil.getLayoutRect(positionExpr, {\n        width: viewWidth,\n        height: viewHeight\n      });\n      x = layoutRect.x;\n      y = layoutRect.y;\n      align = null; // When positionExpr is left/top/right/bottom,\n      // align and verticalAlign will not work.\n\n      vAlign = null;\n    } // Specify tooltip position by string 'top' 'bottom' 'left' 'right' around graphic element\n    else if (typeof positionExpr === 'string' && el) {\n        var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n        x = pos[0];\n        y = pos[1];\n      } else {\n        var pos = refixTooltipPosition(x, y, content.el, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n        x = pos[0];\n        y = pos[1];\n      }\n\n    align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n    vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n    if (tooltipModel.get('confine')) {\n      var pos = confineTooltipPosition(x, y, content.el, viewWidth, viewHeight);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    content.moveTo(x, y);\n  },\n  // FIXME\n  // Should we remove this but leave this to user?\n  _updateContentNotChangedOnAxis: function (dataByCoordSys) {\n    var lastCoordSys = this._lastDataByCoordSys;\n    var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n    contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n      var lastDataByAxis = lastItemCoordSys.dataByAxis || {};\n      var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n      var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n      contentNotChanged &= lastDataByAxis.length === thisDataByAxis.length;\n      contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n        var thisItem = thisDataByAxis[indexAxis] || {};\n        var lastIndices = lastItem.seriesDataIndices || [];\n        var newIndices = thisItem.seriesDataIndices || [];\n        contentNotChanged &= lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n        contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n          var newIdxItem = newIndices[j];\n          contentNotChanged &= lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n        });\n      });\n    });\n    this._lastDataByCoordSys = dataByCoordSys;\n    return !!contentNotChanged;\n  },\n  _hide: function (dispatchAction) {\n    // Do not directly hideLater here, because this behavior may be prevented\n    // in dispatchAction when showTip is dispatched.\n    // FIXME\n    // duplicated hideTip if manuallyHideTip is called from dispatchAction.\n    this._lastDataByCoordSys = null;\n    dispatchAction({\n      type: 'hideTip',\n      from: this.uid\n    });\n  },\n  dispose: function (ecModel, api) {\n    if (env.node || env.wxa) {\n      return;\n    }\n\n    this._tooltipContent.hide();\n\n    globalListener.unregister('itemTooltip', api);\n  }\n});\n/**\n * @param {Array.<Object|module:echarts/model/Model>} modelCascade\n * From top to bottom. (the last one should be globalTooltipModel);\n */\n\n\nfunction buildTooltipModel(modelCascade) {\n  var resultModel = modelCascade.pop();\n\n  while (modelCascade.length) {\n    var tooltipOpt = modelCascade.pop();\n\n    if (tooltipOpt) {\n      if (Model.isInstance(tooltipOpt)) {\n        tooltipOpt = tooltipOpt.get('tooltip', true);\n      } // In each data item tooltip can be simply write:\n      // {\n      //  value: 10,\n      //  tooltip: 'Something you need to know'\n      // }\n\n\n      if (typeof tooltipOpt === 'string') {\n        tooltipOpt = {\n          formatter: tooltipOpt\n        };\n      }\n\n      resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n    }\n  }\n\n  return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n  return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, el, viewWidth, viewHeight, gapH, gapV) {\n  var size = getOuterSize(el);\n  var width = size.width;\n  var height = size.height;\n\n  if (gapH != null) {\n    if (x + width + gapH > viewWidth) {\n      x -= width + gapH;\n    } else {\n      x += gapH;\n    }\n  }\n\n  if (gapV != null) {\n    if (y + height + gapV > viewHeight) {\n      y -= height + gapV;\n    } else {\n      y += gapV;\n    }\n  }\n\n  return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, el, viewWidth, viewHeight) {\n  var size = getOuterSize(el);\n  var width = size.width;\n  var height = size.height;\n  x = Math.min(x + width, viewWidth) - width;\n  y = Math.min(y + height, viewHeight) - height;\n  x = Math.max(x, 0);\n  y = Math.max(y, 0);\n  return [x, y];\n}\n\nfunction getOuterSize(el) {\n  var width = el.clientWidth;\n  var height = el.clientHeight; // Consider browser compatibility.\n  // IE8 does not support getComputedStyle.\n\n  if (document.defaultView && document.defaultView.getComputedStyle) {\n    var stl = document.defaultView.getComputedStyle(el);\n\n    if (stl) {\n      width += parseInt(stl.paddingLeft, 10) + parseInt(stl.paddingRight, 10) + parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n      height += parseInt(stl.paddingTop, 10) + parseInt(stl.paddingBottom, 10) + parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n    }\n  }\n\n  return {\n    width: width,\n    height: height\n  };\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n  var domWidth = contentSize[0];\n  var domHeight = contentSize[1];\n  var gap = 5;\n  var x = 0;\n  var y = 0;\n  var rectWidth = rect.width;\n  var rectHeight = rect.height;\n\n  switch (position) {\n    case 'inside':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'top':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y - domHeight - gap;\n      break;\n\n    case 'bottom':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight + gap;\n      break;\n\n    case 'left':\n      x = rect.x - domWidth - gap;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'right':\n      x = rect.x + rectWidth + gap;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n  }\n\n  return [x, y];\n}\n\nfunction isCenterAlign(align) {\n  return align === 'center' || align === 'middle';\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/tooltip/TooltipView.js\n// module id = Q6RJ\n// module chunks = 0","var Displayable = require(\"./Displayable\");\n\nvar zrUtil = require(\"../core/util\");\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar pathContain = require(\"../contain/path\");\n\nvar Pattern = require(\"./Pattern\");\n\nvar getCanvasPattern = Pattern.prototype.getCanvasPattern;\nvar abs = Math.abs;\nvar pathProxyForDraw = new PathProxy(true);\n/**\n * @alias module:zrender/graphic/Path\n * @extends module:zrender/graphic/Displayable\n * @constructor\n * @param {Object} opts\n */\n\nfunction Path(opts) {\n  Displayable.call(this, opts);\n  /**\n   * @type {module:zrender/core/PathProxy}\n   * @readOnly\n   */\n\n  this.path = null;\n}\n\nPath.prototype = {\n  constructor: Path,\n  type: 'path',\n  __dirtyPath: true,\n  strokeContainThreshold: 5,\n  brush: function (ctx, prevEl) {\n    var style = this.style;\n    var path = this.path || pathProxyForDraw;\n    var hasStroke = style.hasStroke();\n    var hasFill = style.hasFill();\n    var fill = style.fill;\n    var stroke = style.stroke;\n    var hasFillGradient = hasFill && !!fill.colorStops;\n    var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n    var hasFillPattern = hasFill && !!fill.image;\n    var hasStrokePattern = hasStroke && !!stroke.image;\n    style.bind(ctx, this, prevEl);\n    this.setTransform(ctx);\n\n    if (this.__dirty) {\n      var rect; // Update gradient because bounding rect may changed\n\n      if (hasFillGradient) {\n        rect = rect || this.getBoundingRect();\n        this._fillGradient = style.getGradient(ctx, fill, rect);\n      }\n\n      if (hasStrokeGradient) {\n        rect = rect || this.getBoundingRect();\n        this._strokeGradient = style.getGradient(ctx, stroke, rect);\n      }\n    } // Use the gradient or pattern\n\n\n    if (hasFillGradient) {\n      // PENDING If may have affect the state\n      ctx.fillStyle = this._fillGradient;\n    } else if (hasFillPattern) {\n      ctx.fillStyle = getCanvasPattern.call(fill, ctx);\n    }\n\n    if (hasStrokeGradient) {\n      ctx.strokeStyle = this._strokeGradient;\n    } else if (hasStrokePattern) {\n      ctx.strokeStyle = getCanvasPattern.call(stroke, ctx);\n    }\n\n    var lineDash = style.lineDash;\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash; // Update path sx, sy\n\n    var scale = this.getGlobalScale();\n    path.setScale(scale[0], scale[1]); // Proxy context\n    // Rebuild path in following 2 cases\n    // 1. Path is dirty\n    // 2. Path needs javascript implemented lineDash stroking.\n    //    In this case, lineDash information will not be saved in PathProxy\n\n    if (this.__dirtyPath || lineDash && !ctxLineDash && hasStroke) {\n      path.beginPath(ctx); // Setting line dash before build path\n\n      if (lineDash && !ctxLineDash) {\n        path.setLineDash(lineDash);\n        path.setLineDashOffset(lineDashOffset);\n      }\n\n      this.buildPath(path, this.shape, false); // Clear path dirty flag\n\n      if (this.path) {\n        this.__dirtyPath = false;\n      }\n    } else {\n      // Replay path building\n      ctx.beginPath();\n      this.path.rebuildPath(ctx);\n    }\n\n    hasFill && path.fill(ctx);\n\n    if (lineDash && ctxLineDash) {\n      ctx.setLineDash(lineDash);\n      ctx.lineDashOffset = lineDashOffset;\n    }\n\n    hasStroke && path.stroke(ctx);\n\n    if (lineDash && ctxLineDash) {\n      // PENDING\n      // Remove lineDash\n      ctx.setLineDash([]);\n    } // Draw rect text\n\n\n    if (style.text != null) {\n      // Only restore transform when needs draw text.\n      this.restoreTransform(ctx);\n      this.drawRectText(ctx, this.getBoundingRect());\n    }\n  },\n  // When bundling path, some shape may decide if use moveTo to begin a new subpath or closePath\n  // Like in circle\n  buildPath: function (ctx, shapeCfg, inBundle) {},\n  createPathProxy: function () {\n    this.path = new PathProxy();\n  },\n  getBoundingRect: function () {\n    var rect = this._rect;\n    var style = this.style;\n    var needsUpdateRect = !rect;\n\n    if (needsUpdateRect) {\n      var path = this.path;\n\n      if (!path) {\n        // Create path on demand.\n        path = this.path = new PathProxy();\n      }\n\n      if (this.__dirtyPath) {\n        path.beginPath();\n        this.buildPath(path, this.shape, false);\n      }\n\n      rect = path.getBoundingRect();\n    }\n\n    this._rect = rect;\n\n    if (style.hasStroke()) {\n      // Needs update rect with stroke lineWidth when\n      // 1. Element changes scale or lineWidth\n      // 2. Shape is changed\n      var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n\n      if (this.__dirty || needsUpdateRect) {\n        rectWithStroke.copy(rect); // FIXME Must after updateTransform\n\n        var w = style.lineWidth; // PENDING, Min line width is needed when line is horizontal or vertical\n\n        var lineScale = style.strokeNoScale ? this.getLineScale() : 1; // Only add extra hover lineWidth when there are no fill\n\n        if (!style.hasFill()) {\n          w = Math.max(w, this.strokeContainThreshold || 4);\n        } // Consider line width\n        // Line scale can't be 0;\n\n\n        if (lineScale > 1e-10) {\n          rectWithStroke.width += w / lineScale;\n          rectWithStroke.height += w / lineScale;\n          rectWithStroke.x -= w / lineScale / 2;\n          rectWithStroke.y -= w / lineScale / 2;\n        }\n      } // Return rect with stroke\n\n\n      return rectWithStroke;\n    }\n\n    return rect;\n  },\n  contain: function (x, y) {\n    var localPos = this.transformCoordToLocal(x, y);\n    var rect = this.getBoundingRect();\n    var style = this.style;\n    x = localPos[0];\n    y = localPos[1];\n\n    if (rect.contain(x, y)) {\n      var pathData = this.path.data;\n\n      if (style.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var lineScale = style.strokeNoScale ? this.getLineScale() : 1; // Line scale can't be 0;\n\n        if (lineScale > 1e-10) {\n          // Only add extra hover lineWidth when there are no fill\n          if (!style.hasFill()) {\n            lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n          }\n\n          if (pathContain.containStroke(pathData, lineWidth / lineScale, x, y)) {\n            return true;\n          }\n        }\n      }\n\n      if (style.hasFill()) {\n        return pathContain.contain(pathData, x, y);\n      }\n    }\n\n    return false;\n  },\n\n  /**\n   * @param  {boolean} dirtyPath\n   */\n  dirty: function (dirtyPath) {\n    if (dirtyPath == null) {\n      dirtyPath = true;\n    } // Only mark dirty, not mark clean\n\n\n    if (dirtyPath) {\n      this.__dirtyPath = dirtyPath;\n      this._rect = null;\n    }\n\n    this.__dirty = true;\n    this.__zr && this.__zr.refresh(); // Used as a clipping path\n\n    if (this.__clipTarget) {\n      this.__clipTarget.dirty();\n    }\n  },\n\n  /**\n   * Alias for animate('shape')\n   * @param {boolean} loop\n   */\n  animateShape: function (loop) {\n    return this.animate('shape', loop);\n  },\n  // Overwrite attrKV\n  attrKV: function (key, value) {\n    // FIXME\n    if (key === 'shape') {\n      this.setShape(value);\n      this.__dirtyPath = true;\n      this._rect = null;\n    } else {\n      Displayable.prototype.attrKV.call(this, key, value);\n    }\n  },\n\n  /**\n   * @param {Object|string} key\n   * @param {*} value\n   */\n  setShape: function (key, value) {\n    var shape = this.shape; // Path from string may not have shape\n\n    if (shape) {\n      if (zrUtil.isObject(key)) {\n        for (var name in key) {\n          if (key.hasOwnProperty(name)) {\n            shape[name] = key[name];\n          }\n        }\n      } else {\n        shape[key] = value;\n      }\n\n      this.dirty(true);\n    }\n\n    return this;\n  },\n  getLineScale: function () {\n    var m = this.transform; // Get the line scale.\n    // Determinant of `m` means how much the area is enlarged by the\n    // transformation. So its square root can be used as a scale factor\n    // for width.\n\n    return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10 ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1])) : 1;\n  }\n};\n/**\n * 鎵╁睍涓�涓� Path element, 姣斿鏄熷舰锛屽渾绛夈�俓n * Extend a path element\n * @param {Object} props\n * @param {string} props.type Path type\n * @param {Function} props.init Initialize\n * @param {Function} props.buildPath Overwrite buildPath method\n * @param {Object} [props.style] Extended default style config\n * @param {Object} [props.shape] Extended default shape config\n */\n\nPath.extend = function (defaults) {\n  var Sub = function (opts) {\n    Path.call(this, opts);\n\n    if (defaults.style) {\n      // Extend default style\n      this.style.extendFrom(defaults.style, false);\n    } // Extend default shape\n\n\n    var defaultShape = defaults.shape;\n\n    if (defaultShape) {\n      this.shape = this.shape || {};\n      var thisShape = this.shape;\n\n      for (var name in defaultShape) {\n        if (!thisShape.hasOwnProperty(name) && defaultShape.hasOwnProperty(name)) {\n          thisShape[name] = defaultShape[name];\n        }\n      }\n    }\n\n    defaults.init && defaults.init.call(this, opts);\n  };\n\n  zrUtil.inherits(Sub, Path); // FIXME 涓嶈兘 extend position, rotation 绛夊紩鐢ㄥ璞n\n  for (var name in defaults) {\n    // Extending prototype values and methods\n    if (name !== 'style' && name !== 'shape') {\n      Sub.prototype[name] = defaults[name];\n    }\n  }\n\n  return Sub;\n};\n\nzrUtil.inherits(Path, Displayable);\nvar _default = Path;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/Path.js\n// module id = Q9e6\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./visualMap/preprocessor\");\n\nrequire(\"./visualMap/typeDefaulter\");\n\nrequire(\"./visualMap/visualEncoding\");\n\nrequire(\"./visualMap/PiecewiseModel\");\n\nrequire(\"./visualMap/PiecewiseView\");\n\nrequire(\"./visualMap/visualMapAction\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * DataZoom component entry\n */\necharts.registerPreprocessor(preprocessor);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMapPiecewise.js\n// module id = QPg4\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar Tree = require(\"../../data/Tree\");\n\nvar _treeHelper = require(\"../helper/treeHelper\");\n\nvar wrapTreePathInfo = _treeHelper.wrapTreePathInfo;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.sunburst',\n\n  /**\n   * @type {module:echarts/data/Tree~Node}\n   */\n  _viewRoot: null,\n  getInitialData: function (option, ecModel) {\n    // Create a virtual root.\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levels = option.levels || []; // levels = option.levels = setDefault(levels, ecModel);\n\n    var treeOption = {};\n    treeOption.levels = levels; // Make sure always a new tree is created when setOption,\n    // in TreemapView, we check whether oldTree === newTree\n    // to choose mappings approach among old shapes and new shapes.\n\n    return Tree.createTree(root, this, treeOption).data;\n  },\n  optionUpdated: function () {\n    this.resetViewRoot();\n  },\n\n  /*\n   * @override\n   */\n  getDataParams: function (dataIndex) {\n    var params = SeriesModel.prototype.getDataParams.apply(this, arguments);\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    // 榛樿鍏ㄥ眬灞呬腑\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    // 榛樿椤烘椂閽圽n    clockwise: true,\n    startAngle: 90,\n    // 鏈�灏忚搴︽敼涓�0\n    minAngle: 0,\n    percentPrecision: 2,\n    // If still show when all data zero.\n    stillShowZeroSum: true,\n    // Policy of highlighting pieces when hover on one\n    // Valid values: 'none' (for not downplay others), 'descendant',\n    // 'ancestor', 'self'\n    highlightPolicy: 'descendant',\n    // 'rootToNode', 'link', or false\n    nodeClick: 'rootToNode',\n    renderLabelForZeroData: false,\n    label: {\n      // could be: 'radial', 'tangential', or 'none'\n      rotate: 'radial',\n      show: true,\n      opacity: 1,\n      // 'left' is for inner side of inside, and 'right' is for outter\n      // side for inside\n      align: 'center',\n      position: 'inside',\n      distance: 5,\n      silent: true,\n      emphasis: {}\n    },\n    itemStyle: {\n      borderWidth: 1,\n      borderColor: 'white',\n      opacity: 1,\n      emphasis: {},\n      highlight: {\n        opacity: 1\n      },\n      downplay: {\n        opacity: 0.9\n      }\n    },\n    // Animation type canbe expansion, scale\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicOut',\n    data: [],\n    levels: [],\n\n    /**\n     * Sort order.\n     *\n     * Valid values: 'desc', 'asc', null, or callback function.\n     * 'desc' and 'asc' for descend and ascendant order;\n     * null for not sorting;\n     * example of callback function:\n     * function(nodeA, nodeB) {\n     *     return nodeA.getValue() - nodeB.getValue();\n     * }\n     */\n    sort: 'desc'\n  },\n  getViewRoot: function () {\n    return this._viewRoot;\n  },\n\n  /**\n   * @param {module:echarts/data/Tree~Node} [viewRoot]\n   */\n  resetViewRoot: function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  }\n});\n/**\n * @param {Object} dataNode\n */\n\n\nfunction completeTreeValue(dataNode) {\n  // Postorder travel tree.\n  // If value of none-leaf node is not set,\n  // calculate it by suming up the value of all children.\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  } // Value should not less than 0.\n\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/SunburstSeries.js\n// module id = QR1y\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @constructor  module:echarts/coord/single/SingleAxis\n * @extends {module:echarts/coord/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.<number>} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar SingleAxis = function (dim, scale, coordExtent, axisType, position) {\n  Axis.call(this, dim, scale, coordExtent);\n  /**\n   * Axis type\n   * - 'category'\n   * - 'value'\n   * - 'time'\n   * - 'log'\n   * @type {string}\n   */\n\n  this.type = axisType || 'value';\n  /**\n   * Axis position\n   *  - 'top'\n   *  - 'bottom'\n   *  - 'left'\n   *  - 'right'\n   *  @type {string}\n   */\n\n  this.position = position || 'bottom';\n  /**\n   * Axis orient\n   *  - 'horizontal'\n   *  - 'vertical'\n   * @type {[type]}\n   */\n\n  this.orient = null;\n};\n\nSingleAxis.prototype = {\n  constructor: SingleAxis,\n\n  /**\n   * Axis model\n   * @type {module:echarts/coord/single/AxisModel}\n   */\n  model: null,\n\n  /**\n   * Judge the orient of the axis.\n   * @return {boolean}\n   */\n  isHorizontal: function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  },\n\n  /**\n   * @override\n   */\n  pointToData: function (point, clamp) {\n    return this.coordinateSystem.pointToData(point, clamp)[0];\n  },\n\n  /**\n   * Convert the local coord(processed by dataToCoord())\n   * to global coord(concrete pixel coord).\n   * designated by module:echarts/coord/single/Single.\n   * @type {Function}\n   */\n  toGlobalCoord: null,\n\n  /**\n   * Convert the global coord to local coord.\n   * designated by module:echarts/coord/single/Single.\n   * @type {Function}\n   */\n  toLocalCoord: null\n};\nzrUtil.inherits(SingleAxis, Axis);\nvar _default = SingleAxis;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/single/SingleAxis.js\n// module id = Qb3P\n// module chunks = 0","require(\"../coord/calendar/Calendar\");\n\nrequire(\"../coord/calendar/CalendarModel\");\n\nrequire(\"./calendar/CalendarView\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/calendar.js\n// module id = Qfnc\n// module chunks = 0","var completeDimensions = require(\"./completeDimensions\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Substitute `completeDimensions`.\n * `completeDimensions` is to be deprecated.\n */\n\n/**\n * @param {module:echarts/data/Source|module:echarts/data/List} source or data.\n * @param {Object|Array} [opt]\n * @param {Array.<string|Object>} [opt.coordDimensions=[]]\n * @param {number} [opt.dimensionsCount]\n * @param {string} [opt.generateCoord]\n * @param {string} [opt.generateCoordCount]\n * @param {Array.<string|Object>} [opt.dimensionsDefine=source.dimensionsDefine] Overwrite source define.\n * @param {Object|HashMap} [opt.encodeDefine=source.encodeDefine] Overwrite source define.\n * @return {Array.<Object>} dimensionsInfo\n */\nfunction _default(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/helper/createDimensions.js\n// module id = Qieq\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar ATTR = '\\0_ec_hist_store';\n/**\n * @param {module:echarts/model/Global} ecModel\n * @param {Object} newSnapshot {dataZoomId, batch: [payloadInfo, ...]}\n */\n\nfunction push(ecModel, newSnapshot) {\n  var store = giveStore(ecModel); // If previous dataZoom can not be found,\n  // complete an range with current range.\n\n  each(newSnapshot, function (batchItem, dataZoomId) {\n    var i = store.length - 1;\n\n    for (; i >= 0; i--) {\n      var snapshot = store[i];\n\n      if (snapshot[dataZoomId]) {\n        break;\n      }\n    }\n\n    if (i < 0) {\n      // No origin range set, create one by current range.\n      var dataZoomModel = ecModel.queryComponents({\n        mainType: 'dataZoom',\n        subType: 'select',\n        id: dataZoomId\n      })[0];\n\n      if (dataZoomModel) {\n        var percentRange = dataZoomModel.getPercentRange();\n        store[0][dataZoomId] = {\n          dataZoomId: dataZoomId,\n          start: percentRange[0],\n          end: percentRange[1]\n        };\n      }\n    }\n  });\n  store.push(newSnapshot);\n}\n/**\n * @param {module:echarts/model/Global} ecModel\n * @return {Object} snapshot\n */\n\n\nfunction pop(ecModel) {\n  var store = giveStore(ecModel);\n  var head = store[store.length - 1];\n  store.length > 1 && store.pop(); // Find top for all dataZoom.\n\n  var snapshot = {};\n  each(head, function (batchItem, dataZoomId) {\n    for (var i = store.length - 1; i >= 0; i--) {\n      var batchItem = store[i][dataZoomId];\n\n      if (batchItem) {\n        snapshot[dataZoomId] = batchItem;\n        break;\n      }\n    }\n  });\n  return snapshot;\n}\n/**\n * @param {module:echarts/model/Global} ecModel\n */\n\n\nfunction clear(ecModel) {\n  ecModel[ATTR] = null;\n}\n/**\n * @param {module:echarts/model/Global} ecModel\n * @return {number} records. always >= 1.\n */\n\n\nfunction count(ecModel) {\n  return giveStore(ecModel).length;\n}\n/**\n * [{key: dataZoomId, value: {dataZoomId, range}}, ...]\n * History length of each dataZoom may be different.\n * this._history[0] is used to store origin range.\n * @type {Array.<Object>}\n */\n\n\nfunction giveStore(ecModel) {\n  var store = ecModel[ATTR];\n\n  if (!store) {\n    store = ecModel[ATTR] = [{}];\n  }\n\n  return store;\n}\n\nexports.push = push;\nexports.pop = pop;\nexports.clear = clear;\nexports.count = count;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/history.js\n// module id = QmbI\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\n\nvar Group = require(\"zrender/lib/container/Group\");\n\nvar componentUtil = require(\"../util/component\");\n\nvar clazzUtil = require(\"../util/clazz\");\n\nvar modelUtil = require(\"../util/model\");\n\nvar _task = require(\"../stream/task\");\n\nvar createTask = _task.createTask;\n\nvar createRenderPlanner = require(\"../chart/helper/createRenderPlanner\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nfunction Chart() {\n  /**\n   * @type {module:zrender/container/Group}\n   * @readOnly\n   */\n  this.group = new Group();\n  /**\n   * @type {string}\n   * @readOnly\n   */\n\n  this.uid = componentUtil.getUID('viewChart');\n  this.renderTask = createTask({\n    plan: renderTaskPlan,\n    reset: renderTaskReset\n  });\n  this.renderTask.context = {\n    view: this\n  };\n}\n\nChart.prototype = {\n  type: 'chart',\n\n  /**\n   * Init the chart.\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   */\n  init: function (ecModel, api) {},\n\n  /**\n   * Render the chart.\n   * @param  {module:echarts/model/Series} seriesModel\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   * @param  {Object} payload\n   */\n  render: function (seriesModel, ecModel, api, payload) {},\n\n  /**\n   * Highlight series or specified data item.\n   * @param  {module:echarts/model/Series} seriesModel\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   * @param  {Object} payload\n   */\n  highlight: function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  },\n\n  /**\n   * Downplay series or specified data item.\n   * @param  {module:echarts/model/Series} seriesModel\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   * @param  {Object} payload\n   */\n  downplay: function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  },\n\n  /**\n   * Remove self.\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   */\n  remove: function (ecModel, api) {\n    this.group.removeAll();\n  },\n\n  /**\n   * Dispose self.\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   */\n  dispose: function () {},\n\n  /**\n   * Rendering preparation in progressive mode.\n   * @param  {module:echarts/model/Series} seriesModel\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   * @param  {Object} payload\n   */\n  incrementalPrepareRender: null,\n\n  /**\n   * Render in progressive mode.\n   * @param  {module:echarts/model/Series} seriesModel\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   * @param  {Object} payload\n   */\n  incrementalRender: null,\n\n  /**\n   * Update transform directly.\n   * @param  {module:echarts/model/Series} seriesModel\n   * @param  {module:echarts/model/Global} ecModel\n   * @param  {module:echarts/ExtensionAPI} api\n   * @param  {Object} payload\n   * @return {Object} {update: true}\n   */\n  updateTransform: null\n  /**\n   * The view contains the given point.\n   * @interface\n   * @param {Array.<number>} point\n   * @return {boolean}\n   */\n  // containPoint: function () {}\n\n};\nvar chartProto = Chart.prototype;\n\nchartProto.updateView = chartProto.updateLayout = chartProto.updateVisual = function (seriesModel, ecModel, api, payload) {\n  this.render(seriesModel, ecModel, api, payload);\n};\n/**\n * Set state of single element\n * @param  {module:zrender/Element} el\n * @param  {string} state\n */\n\n\nfunction elSetState(el, state) {\n  if (el) {\n    el.trigger(state);\n\n    if (el.type === 'group') {\n      for (var i = 0; i < el.childCount(); i++) {\n        elSetState(el.childAt(i), state);\n      }\n    }\n  }\n}\n/**\n * @param  {module:echarts/data/List} data\n * @param  {Object} payload\n * @param  {string} state 'normal'|'emphasis'\n */\n\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state);\n    });\n  }\n} // Enable Chart.extend.\n\n\nclazzUtil.enableClassExtend(Chart, ['dispose']); // Add capability of registerClass, getClass, hasClass, registerSubTypeDefaulter and so on.\n\nclazzUtil.enableClassManagement(Chart, {\n  registerWhenExtend: true\n});\n\nChart.markUpdateMethod = function (payload, methodName) {\n  inner(payload).updateMethod = methodName;\n};\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload; // ???! remove updateView updateVisual\n\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod // `appendData` is also supported when data amount\n  // is less than progressive threshold.\n  : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    // Put view.render in `progress` to support appendData. But in this case\n    // view.render should not be called in reset, otherwise it will be called\n    // twise. Use `forceFirstProgress` to make sure that view.render is called\n    // in any cases.\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nvar _default = Chart;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/view/Chart.js\n// module id = Qmdc\n// module chunks = 0","var makeStyleMapper = require(\"../../model/mixin/makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar getBarItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], // Compatitable with 2\n['stroke', 'barBorderColor'], ['lineWidth', 'barBorderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\nvar _default = {\n  getBarItemStyle: function (excludes) {\n    var style = getBarItemStyle(this, excludes);\n\n    if (this.getBorderLineDash) {\n      var lineDash = this.getBorderLineDash();\n      lineDash && (style.lineDash = lineDash);\n    }\n\n    return style;\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/barItemStyle.js\n// module id = QuUA\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (target) {\n  for (var i = 1, j = arguments.length; i < j; i++) {\n    var source = arguments[i] || {};\n    for (var prop in source) {\n      if (source.hasOwnProperty(prop)) {\n        var value = source[prop];\n        if (value !== undefined) {\n          target[prop] = value;\n        }\n      }\n    }\n  }\n\n  return target;\n};\n\n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/merge.js\n// module id = QxRo\n// module chunks = 0","var vec2 = require(\"zrender/lib/core/vector\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction simpleLayout(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var graph = seriesModel.getGraph();\n  graph.eachNode(function (node) {\n    var model = node.getModel();\n    node.setLayout([+model.get('x'), +model.get('y')]);\n  });\n  simpleLayoutEdge(graph);\n}\n\nfunction simpleLayoutEdge(graph) {\n  graph.eachEdge(function (edge) {\n    var curveness = edge.getModel().get('lineStyle.curveness') || 0;\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var points = [p1, p2];\n\n    if (+curveness) {\n      points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n    }\n\n    edge.setLayout(points);\n  });\n}\n\nexports.simpleLayout = simpleLayout;\nexports.simpleLayoutEdge = simpleLayoutEdge;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/simpleLayoutHelper.js\n// module id = R+dN\n// module chunks = 0","var textHelper = require(\"../helper/text\");\n\nvar BoundingRect = require(\"../../core/BoundingRect\");\n\n/**\n * Mixin for drawing text in a element bounding rect\n * @module zrender/mixin/RectText\n */\nvar tmpRect = new BoundingRect();\n\nvar RectText = function () {};\n\nRectText.prototype = {\n  constructor: RectText,\n\n  /**\n   * Draw text in a rect with specified position.\n   * @param  {CanvasRenderingContext2D} ctx\n   * @param  {Object} rect Displayable rect\n   */\n  drawRectText: function (ctx, rect) {\n    var style = this.style;\n    rect = style.textRect || rect; // Optimize, avoid normalize every time.\n\n    this.__dirty && textHelper.normalizeTextStyle(style, true);\n    var text = style.text; // Convert to string\n\n    text != null && (text += '');\n\n    if (!textHelper.needDrawText(text, style)) {\n      return;\n    } // FIXME\n\n\n    ctx.save(); // Transform rect to view space\n\n    var transform = this.transform;\n\n    if (!style.transformText) {\n      if (transform) {\n        tmpRect.copy(rect);\n        tmpRect.applyTransform(transform);\n        rect = tmpRect;\n      }\n    } else {\n      this.setTransform(ctx);\n    } // transformText and textRotation can not be used at the same time.\n\n\n    textHelper.renderText(this, ctx, text, style, rect);\n    ctx.restore();\n  }\n};\nvar _default = RectText;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/mixin/RectText.js\n// module id = RBTo\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Avoid typo.\nvar SOURCE_FORMAT_ORIGINAL = 'original';\nvar SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nvar SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nvar SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nvar SOURCE_FORMAT_UNKNOWN = 'unknown'; // ??? CHANGE A NAME\n\nvar SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nvar SERIES_LAYOUT_BY_COLUMN = 'column';\nvar SERIES_LAYOUT_BY_ROW = 'row';\nexports.SOURCE_FORMAT_ORIGINAL = SOURCE_FORMAT_ORIGINAL;\nexports.SOURCE_FORMAT_ARRAY_ROWS = SOURCE_FORMAT_ARRAY_ROWS;\nexports.SOURCE_FORMAT_OBJECT_ROWS = SOURCE_FORMAT_OBJECT_ROWS;\nexports.SOURCE_FORMAT_KEYED_COLUMNS = SOURCE_FORMAT_KEYED_COLUMNS;\nexports.SOURCE_FORMAT_UNKNOWN = SOURCE_FORMAT_UNKNOWN;\nexports.SOURCE_FORMAT_TYPED_ARRAY = SOURCE_FORMAT_TYPED_ARRAY;\nexports.SERIES_LAYOUT_BY_COLUMN = SERIES_LAYOUT_BY_COLUMN;\nexports.SERIES_LAYOUT_BY_ROW = SERIES_LAYOUT_BY_ROW;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/helper/sourceType.js\n// module id = REEr\n// module chunks = 0","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n  return $JSON.stringify.apply($JSON, arguments);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/json/stringify.js\n// module id = RJ+u\n// module chunks = 0","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare\n    return number != number;\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.number.is-nan.js\n// module id = ROrh\n// module chunks = 0","function windingLine(x0, y0, x1, y1, x, y) {\n  if (y > y0 && y > y1 || y < y0 && y < y1) {\n    return 0;\n  } // Ignore horizontal line\n\n\n  if (y1 === y0) {\n    return 0;\n  }\n\n  var dir = y1 < y0 ? 1 : -1;\n  var t = (y - y0) / (y1 - y0); // Avoid winding error when intersection point is the connect point of two line of polygon\n\n  if (t === 1 || t === 0) {\n    dir = y1 < y0 ? 0.5 : -0.5;\n  }\n\n  var x_ = t * (x1 - x0) + x0; // If (x, y) on the line, considered as \"contain\".\n\n  return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n\nmodule.exports = windingLine;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/windingLine.js\n// module id = RaST\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nrequire(\"../coord/geo/GeoModel\");\n\nrequire(\"../coord/geo/geoCreator\");\n\nrequire(\"./geo/GeoView\");\n\nrequire(\"../action/geoRoam\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction makeAction(method, actionInfo) {\n  actionInfo.update = 'updateView';\n  echarts.registerAction(actionInfo, function (payload, ecModel) {\n    var selected = {};\n    ecModel.eachComponent({\n      mainType: 'geo',\n      query: payload\n    }, function (geoModel) {\n      geoModel[method](payload.name);\n      var geo = geoModel.coordinateSystem;\n      zrUtil.each(geo.regions, function (region) {\n        selected[region.name] = geoModel.isSelected(region.name) || false;\n      });\n    });\n    return {\n      selected: selected,\n      name: payload.name\n    };\n  });\n}\n\nmakeAction('toggleSelected', {\n  type: 'geoToggleSelect',\n  event: 'geoselectchanged'\n});\nmakeAction('select', {\n  type: 'geoSelect',\n  event: 'geoselected'\n});\nmakeAction('unSelect', {\n  type: 'geoUnSelect',\n  event: 'geounselected'\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/geo.js\n// module id = RaWr\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @constructor module:echarts/coord/parallel/ParallelAxis\n * @extends {module:echarts/coord/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.<number>} coordExtent\n * @param {string} axisType\n */\nvar ParallelAxis = function (dim, scale, coordExtent, axisType, axisIndex) {\n  Axis.call(this, dim, scale, coordExtent);\n  /**\n   * Axis type\n   *  - 'category'\n   *  - 'value'\n   *  - 'time'\n   *  - 'log'\n   * @type {string}\n   */\n\n  this.type = axisType || 'value';\n  /**\n   * @type {number}\n   * @readOnly\n   */\n\n  this.axisIndex = axisIndex;\n};\n\nParallelAxis.prototype = {\n  constructor: ParallelAxis,\n\n  /**\n   * Axis model\n   * @param {module:echarts/coord/parallel/AxisModel}\n   */\n  model: null,\n\n  /**\n   * @override\n   */\n  isHorizontal: function () {\n    return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n  }\n};\nzrUtil.inherits(ParallelAxis, Axis);\nvar _default = ParallelAxis;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/ParallelAxis.js\n// module id = RiVb\n// module chunks = 0","var PI2 = Math.PI * 2;\n\nfunction normalizeRadian(angle) {\n  angle %= PI2;\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  return angle;\n}\n\nexports.normalizeRadian = normalizeRadian;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/util.js\n// module id = RkrU\n// module chunks = 0","var Definable = require(\"./Definable\");\n\nvar zrUtil = require(\"../../core/util\");\n\nvar matrix = require(\"../../core/matrix\");\n\n/**\n * @file Manages SVG clipPath elements.\n * @author Zhang Wenli\n */\n\n/**\n * Manages SVG clipPath elements.\n *\n * @class\n * @extends Definable\n * @param   {number}     zrId    zrender instance id\n * @param   {SVGElement} svgRoot root of SVG document\n */\nfunction ClippathManager(zrId, svgRoot) {\n  Definable.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__');\n}\n\nzrUtil.inherits(ClippathManager, Definable);\n/**\n * Update clipPath.\n *\n * @param {Displayable} displayable displayable element\n */\n\nClippathManager.prototype.update = function (displayable) {\n  var svgEl = this.getSvgElement(displayable);\n\n  if (svgEl) {\n    this.updateDom(svgEl, displayable.__clipPaths, false);\n  }\n\n  var textEl = this.getTextSvgElement(displayable);\n\n  if (textEl) {\n    // Make another clipPath for text, since it's transform\n    // matrix is not the same with svgElement\n    this.updateDom(textEl, displayable.__clipPaths, true);\n  }\n\n  this.markUsed(displayable);\n};\n/**\n * Create an SVGElement of displayable and create a <clipPath> of its\n * clipPath\n *\n * @param {Displayable} parentEl  parent element\n * @param {ClipPath[]}  clipPaths clipPaths of parent element\n * @param {boolean}     isText    if parent element is Text\n */\n\n\nClippathManager.prototype.updateDom = function (parentEl, clipPaths, isText) {\n  if (clipPaths && clipPaths.length > 0) {\n    // Has clipPath, create <clipPath> with the first clipPath\n    var defs = this.getDefs(true);\n    var clipPath = clipPaths[0];\n    var clipPathEl;\n    var id;\n    var dom = isText ? '_textDom' : '_dom';\n\n    if (clipPath[dom]) {\n      // Use a dom that is already in <defs>\n      id = clipPath[dom].getAttribute('id');\n      clipPathEl = clipPath[dom]; // Use a dom that is already in <defs>\n\n      if (!defs.contains(clipPathEl)) {\n        // This happens when set old clipPath that has\n        // been previously removed\n        defs.appendChild(clipPathEl);\n      }\n    } else {\n      // New <clipPath>\n      id = 'zr' + this._zrId + '-clip-' + this.nextId;\n      ++this.nextId;\n      clipPathEl = this.createElement('clipPath');\n      clipPathEl.setAttribute('id', id);\n      defs.appendChild(clipPathEl);\n      clipPath[dom] = clipPathEl;\n    } // Build path and add to <clipPath>\n\n\n    var svgProxy = this.getSvgProxy(clipPath);\n\n    if (clipPath.transform && clipPath.parent.invTransform && !isText) {\n      /**\n       * If a clipPath has a parent with transform, the transform\n       * of parent should not be considered when setting transform\n       * of clipPath. So we need to transform back from parent's\n       * transform, which is done by multiplying parent's inverse\n       * transform.\n       */\n      // Store old transform\n      var transform = Array.prototype.slice.call(clipPath.transform); // Transform back from parent, and brush path\n\n      matrix.mul(clipPath.transform, clipPath.parent.invTransform, clipPath.transform);\n      svgProxy.brush(clipPath); // Set back transform of clipPath\n\n      clipPath.transform = transform;\n    } else {\n      svgProxy.brush(clipPath);\n    }\n\n    var pathEl = this.getSvgElement(clipPath);\n    clipPathEl.innerHTML = '';\n    /**\n     * Use `cloneNode()` here to appendChild to multiple parents,\n     * which may happend when Text and other shapes are using the same\n     * clipPath. Since Text will create an extra clipPath DOM due to\n     * different transform rules.\n     */\n\n    clipPathEl.appendChild(pathEl.cloneNode());\n    parentEl.setAttribute('clip-path', 'url(#' + id + ')');\n\n    if (clipPaths.length > 1) {\n      // Make the other clipPaths recursively\n      this.updateDom(clipPathEl, clipPaths.slice(1), isText);\n    }\n  } else {\n    // No clipPath\n    if (parentEl) {\n      parentEl.setAttribute('clip-path', 'none');\n    }\n  }\n};\n/**\n * Mark a single clipPath to be used\n *\n * @param {Displayable} displayable displayable element\n */\n\n\nClippathManager.prototype.markUsed = function (displayable) {\n  var that = this;\n\n  if (displayable.__clipPaths && displayable.__clipPaths.length > 0) {\n    zrUtil.each(displayable.__clipPaths, function (clipPath) {\n      if (clipPath._dom) {\n        Definable.prototype.markUsed.call(that, clipPath._dom);\n      }\n\n      if (clipPath._textDom) {\n        Definable.prototype.markUsed.call(that, clipPath._textDom);\n      }\n    });\n  }\n};\n\nvar _default = ClippathManager;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/svg/helper/ClippathManager.js\n// module id = RrcE\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file defines echarts Heatmap Chart\n * @author Ovilia (me@zhangwenli.com)\n * Inspired by https://github.com/mourner/simpleheat\n *\n * @module\n */\nvar GRADIENT_LEVELS = 256;\n/**\n * Heatmap Chart\n *\n * @class\n */\n\nfunction Heatmap() {\n  var canvas = zrUtil.createCanvas();\n  this.canvas = canvas;\n  this.blurSize = 30;\n  this.pointSize = 20;\n  this.maxOpacity = 1;\n  this.minOpacity = 0;\n  this._gradientPixels = {};\n}\n\nHeatmap.prototype = {\n  /**\n   * Renders Heatmap and returns the rendered canvas\n   * @param {Array} data array of data, each has x, y, value\n   * @param {number} width canvas width\n   * @param {number} height canvas height\n   */\n  update: function (data, width, height, normalize, colorFunc, isInRange) {\n    var brush = this._getBrush();\n\n    var gradientInRange = this._getGradient(data, colorFunc, 'inRange');\n\n    var gradientOutOfRange = this._getGradient(data, colorFunc, 'outOfRange');\n\n    var r = this.pointSize + this.blurSize;\n    var canvas = this.canvas;\n    var ctx = canvas.getContext('2d');\n    var len = data.length;\n    canvas.width = width;\n    canvas.height = height;\n\n    for (var i = 0; i < len; ++i) {\n      var p = data[i];\n      var x = p[0];\n      var y = p[1];\n      var value = p[2]; // calculate alpha using value\n\n      var alpha = normalize(value); // draw with the circle brush with alpha\n\n      ctx.globalAlpha = alpha;\n      ctx.drawImage(brush, x - r, y - r);\n    }\n\n    if (!canvas.width || !canvas.height) {\n      // Avoid \"Uncaught DOMException: Failed to execute 'getImageData' on\n      // 'CanvasRenderingContext2D': The source height is 0.\"\n      return canvas;\n    } // colorize the canvas using alpha value and set with gradient\n\n\n    var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n    var pixels = imageData.data;\n    var offset = 0;\n    var pixelLen = pixels.length;\n    var minOpacity = this.minOpacity;\n    var maxOpacity = this.maxOpacity;\n    var diffOpacity = maxOpacity - minOpacity;\n\n    while (offset < pixelLen) {\n      var alpha = pixels[offset + 3] / 256;\n      var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4; // Simple optimize to ignore the empty data\n\n      if (alpha > 0) {\n        var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange; // Any alpha > 0 will be mapped to [minOpacity, maxOpacity]\n\n        alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n        pixels[offset++] = gradient[gradientOffset];\n        pixels[offset++] = gradient[gradientOffset + 1];\n        pixels[offset++] = gradient[gradientOffset + 2];\n        pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n      } else {\n        offset += 4;\n      }\n    }\n\n    ctx.putImageData(imageData, 0, 0);\n    return canvas;\n  },\n\n  /**\n   * get canvas of a black circle brush used for canvas to draw later\n   * @private\n   * @returns {Object} circle brush canvas\n   */\n  _getBrush: function () {\n    var brushCanvas = this._brushCanvas || (this._brushCanvas = zrUtil.createCanvas()); // set brush size\n\n    var r = this.pointSize + this.blurSize;\n    var d = r * 2;\n    brushCanvas.width = d;\n    brushCanvas.height = d;\n    var ctx = brushCanvas.getContext('2d');\n    ctx.clearRect(0, 0, d, d); // in order to render shadow without the distinct circle,\n    // draw the distinct circle in an invisible place,\n    // and use shadowOffset to draw shadow in the center of the canvas\n\n    ctx.shadowOffsetX = d;\n    ctx.shadowBlur = this.blurSize; // draw the shadow in black, and use alpha and shadow blur to generate\n    // color in color map\n\n    ctx.shadowColor = '#000'; // draw circle in the left to the canvas\n\n    ctx.beginPath();\n    ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n    ctx.closePath();\n    ctx.fill();\n    return brushCanvas;\n  },\n\n  /**\n   * get gradient color map\n   * @private\n   */\n  _getGradient: function (data, colorFunc, state) {\n    var gradientPixels = this._gradientPixels;\n    var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n    var color = [0, 0, 0, 0];\n    var off = 0;\n\n    for (var i = 0; i < 256; i++) {\n      colorFunc[state](i / 255, true, color);\n      pixelsSingleState[off++] = color[0];\n      pixelsSingleState[off++] = color[1];\n      pixelsSingleState[off++] = color[2];\n      pixelsSingleState[off++] = color[3];\n    }\n\n    return pixelsSingleState;\n  }\n};\nvar _default = Heatmap;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/heatmap/HeatmapLayer.js\n// module id = S/Ei\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar indexOf = zrUtil.indexOf;\n\nfunction hasXOrY(item) {\n  return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n  return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n} // Make it simple, do not visit all stacked value to count precision.\n// function getPrecision(data, valueAxisDim, dataIndex) {\n//     var precision = -1;\n//     var stackedDim = data.mapDimension(valueAxisDim);\n//     do {\n//         precision = Math.max(\n//             numberUtil.getPrecision(data.get(stackedDim, dataIndex)),\n//             precision\n//         );\n//         var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n//         if (stackedOnSeries) {\n//             var byValue = data.get(data.getCalculationInfo('stackedByDimension'), dataIndex);\n//             data = stackedOnSeries.getData();\n//             dataIndex = data.indexOf(data.getCalculationInfo('stackedByDimension'), byValue);\n//             stackedDim = data.getCalculationInfo('stackedDimension');\n//         }\n//         else {\n//             data = null;\n//         }\n//     } while (data);\n//     return precision;\n// }\n\n\nfunction markerTypeCalculatorWithExtent(mlType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n  var coordArr = [];\n  var stacked = isDimensionStacked(data, targetDataDim\n  /*, otherDataDim*/\n  );\n  var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n  var value = numCalculate(data, calcDataDim, mlType);\n  var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n  coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n  coordArr[targetCoordIndex] = data.get(targetDataDim, dataIndex); // Make it simple, do not visit all stacked value to count precision.\n\n  var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n  precision = Math.min(precision, 20);\n\n  if (precision >= 0) {\n    coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n  }\n\n  return coordArr;\n}\n\nvar curry = zrUtil.curry; // TODO Specified percent\n\nvar markerTypeCalculator = {\n  /**\n   * @method\n   * @param {module:echarts/data/List} data\n   * @param {string} baseAxisDim\n   * @param {string} valueAxisDim\n   */\n  min: curry(markerTypeCalculatorWithExtent, 'min'),\n\n  /**\n   * @method\n   * @param {module:echarts/data/List} data\n   * @param {string} baseAxisDim\n   * @param {string} valueAxisDim\n   */\n  max: curry(markerTypeCalculatorWithExtent, 'max'),\n\n  /**\n   * @method\n   * @param {module:echarts/data/List} data\n   * @param {string} baseAxisDim\n   * @param {string} valueAxisDim\n   */\n  average: curry(markerTypeCalculatorWithExtent, 'average')\n};\n/**\n * Transform markPoint data item to format used in List by do the following\n * 1. Calculate statistic like `max`, `min`, `average`\n * 2. Convert `item.xAxis`, `item.yAxis` to `item.coord` array\n * @param  {module:echarts/model/Series} seriesModel\n * @param  {module:echarts/coord/*} [coordSys]\n * @param  {Object} item\n * @return {Object}\n */\n\nfunction dataTransform(seriesModel, item) {\n  var data = seriesModel.getData();\n  var coordSys = seriesModel.coordinateSystem; // 1. If not specify the position with pixel directly\n  // 2. If `coord` is not a data array. Which uses `xAxis`,\n  // `yAxis` to specify the coord on each dimension\n  // parseFloat first because item.x and item.y can be percent string like '20%'\n\n  if (item && !hasXAndY(item) && !zrUtil.isArray(item.coord) && coordSys) {\n    var dims = coordSys.dimensions;\n    var axisInfo = getAxisInfo(item, data, coordSys, seriesModel); // Clone the option\n    // Transform the properties xAxis, yAxis, radiusAxis, angleAxis, geoCoord to value\n\n    item = zrUtil.clone(item);\n\n    if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n      var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n      var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n      item.coord = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex); // Force to use the value of calculated value.\n\n      item.value = item.coord[targetCoordIndex];\n    } else {\n      // FIXME Only has one of xAxis and yAxis.\n      var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis]; // Each coord support max, min, average\n\n      for (var i = 0; i < 2; i++) {\n        if (markerTypeCalculator[coord[i]]) {\n          coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n        }\n      }\n\n      item.coord = coord;\n    }\n  }\n\n  return item;\n}\n\nfunction getAxisInfo(item, data, coordSys, seriesModel) {\n  var ret = {};\n\n  if (item.valueIndex != null || item.valueDim != null) {\n    ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n    ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n    ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n  } else {\n    ret.baseAxis = seriesModel.getBaseAxis();\n    ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n    ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n  }\n\n  return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n  var data = seriesModel.getData();\n  var dimensions = data.dimensions;\n  dataDim = data.getDimension(dataDim);\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimItem = data.getDimensionInfo(dimensions[i]);\n\n    if (dimItem.name === dataDim) {\n      return dimItem.coordDim;\n    }\n  }\n}\n/**\n * Filter data which is out of coordinateSystem range\n * [dataFilter description]\n * @param  {module:echarts/coord/*} [coordSys]\n * @param  {Object} item\n * @return {boolean}\n */\n\n\nfunction dataFilter(coordSys, item) {\n  // Alwalys return true if there is no coordSys\n  return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\n\nfunction dimValueGetter(item, dimName, dataIndex, dimIndex) {\n  // x, y, radius, angle\n  if (dimIndex < 2) {\n    return item.coord && item.coord[dimIndex];\n  }\n\n  return item.value;\n}\n\nfunction numCalculate(data, valueDataDim, type) {\n  if (type === 'average') {\n    var sum = 0;\n    var count = 0;\n    data.each(valueDataDim, function (val, idx) {\n      if (!isNaN(val)) {\n        sum += val;\n        count++;\n      }\n    });\n    return sum / count;\n  } else if (type === 'median') {\n    return data.getMedian(valueDataDim);\n  } else {\n    // max & min\n    return data.getDataExtent(valueDataDim, true)[type === 'max' ? 1 : 0];\n  }\n}\n\nexports.dataTransform = dataTransform;\nexports.getAxisInfo = getAxisInfo;\nexports.dataFilter = dataFilter;\nexports.dimValueGetter = dimValueGetter;\nexports.numCalculate = numCalculate;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/markerHelper.js\n// module id = S/ih\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/symbol/iterator.js\n// module id = S1jn\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Backward compat for radar chart in 2\nfunction _default(option) {\n  var polarOptArr = option.polar;\n\n  if (polarOptArr) {\n    if (!zrUtil.isArray(polarOptArr)) {\n      polarOptArr = [polarOptArr];\n    }\n\n    var polarNotRadar = [];\n    zrUtil.each(polarOptArr, function (polarOpt, idx) {\n      if (polarOpt.indicator) {\n        if (polarOpt.type && !polarOpt.shape) {\n          polarOpt.shape = polarOpt.type;\n        }\n\n        option.radar = option.radar || [];\n\n        if (!zrUtil.isArray(option.radar)) {\n          option.radar = [option.radar];\n        }\n\n        option.radar.push(polarOpt);\n      } else {\n        polarNotRadar.push(polarOpt);\n      }\n    });\n    option.polar = polarNotRadar;\n  }\n\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n      seriesOpt.radarIndex = seriesOpt.polarIndex;\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/radar/backwardCompat.js\n// module id = S2lX\n// module chunks = 0","var MapDraw = require(\"../helper/MapDraw\");\n\nvar echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n  type: 'geo',\n  init: function (ecModel, api) {\n    var mapDraw = new MapDraw(api, true);\n    this._mapDraw = mapDraw;\n    this.group.add(mapDraw.group);\n  },\n  render: function (geoModel, ecModel, api, payload) {\n    // Not render if it is an toggleSelect action from self\n    if (payload && payload.type === 'geoToggleSelect' && payload.from === this.uid) {\n      return;\n    }\n\n    var mapDraw = this._mapDraw;\n\n    if (geoModel.get('show')) {\n      mapDraw.draw(geoModel, ecModel, api, this, payload);\n    } else {\n      this._mapDraw.group.removeAll();\n    }\n\n    this.group.silent = geoModel.get('silent');\n  },\n  dispose: function () {\n    this._mapDraw && this._mapDraw.remove();\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/geo/GeoView.js\n// module id = S4hZ\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n/**\n * Show migrating guide in browser console.\n *\n * Usage:\n * import Migrating from 'element-ui/src/mixins/migrating';\n *\n * mixins: [Migrating]\n *\n * add getMigratingConfig method for your component.\n *  getMigratingConfig() {\n *    return {\n *      props: {\n *        'allow-no-selection': 'allow-no-selection is removed.',\n *        'selection-mode': 'selection-mode is removed.'\n *      },\n *      events: {\n *        selectionchange: 'selectionchange is renamed to selection-change.'\n *      }\n *    };\n *  },\n */\nexports.default = {\n  mounted: function mounted() {\n    if (process.env.NODE_ENV === 'production') return;\n    if (!this.$vnode) return;\n\n    var _getMigratingConfig = this.getMigratingConfig(),\n        _getMigratingConfig$p = _getMigratingConfig.props,\n        props = _getMigratingConfig$p === undefined ? {} : _getMigratingConfig$p,\n        _getMigratingConfig$e = _getMigratingConfig.events,\n        events = _getMigratingConfig$e === undefined ? {} : _getMigratingConfig$e;\n\n    var _$vnode = this.$vnode,\n        data = _$vnode.data,\n        componentOptions = _$vnode.componentOptions;\n\n    var definedProps = data.attrs || {};\n    var definedEvents = componentOptions.listeners || {};\n\n    for (var propName in definedProps) {\n      if (definedProps.hasOwnProperty(propName) && props[propName]) {\n        console.warn('[Element Migrating][' + this.$options.name + '][Attribute]: ' + props[propName]);\n      }\n    }\n\n    for (var eventName in definedEvents) {\n      if (definedEvents.hasOwnProperty(eventName) && events[eventName]) {\n        console.warn('[Element Migrating][' + this.$options.name + '][Event]: ' + events[eventName]);\n      }\n    }\n  },\n\n  methods: {\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {},\n        events: {}\n      };\n    }\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/mixins/migrating.js\n// module id = S7dV\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.object.define-property.js\n// module id = SAFe\n// module chunks = 0","var SeriesModel = require(\"../../model/Series\");\n\nvar createGraphFromNodeEdge = require(\"../helper/createGraphFromNodeEdge\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Get initial data and define sankey view's series model\n * @author Deqing Li(annong035@gmail.com)\n */\nvar SankeySeries = SeriesModel.extend({\n  type: 'series.sankey',\n  layoutInfo: null,\n\n  /**\n   * Init a graph data structure from data in option series\n   *\n   * @param  {Object} option  the object used to config echarts view\n   * @return {module:echarts/data/List} storage initial data\n   */\n  getInitialData: function (option) {\n    var links = option.edges || option.links;\n    var nodes = option.data || option.nodes;\n\n    if (nodes && links) {\n      var graph = createGraphFromNodeEdge(nodes, links, this, true);\n      return graph.data;\n    }\n  },\n  setNodePosition: function (dataIndex, localPosition) {\n    var dataItem = this.option.data[dataIndex];\n    dataItem.localX = localPosition[0];\n    dataItem.localY = localPosition[1];\n  },\n\n  /**\n   * Return the graphic data structure\n   *\n   * @return {module:echarts/data/Graph} graphic data structure\n   */\n  getGraph: function () {\n    return this.getData().graph;\n  },\n\n  /**\n   * Get edge data of graphic data structure\n   *\n   * @return {module:echarts/data/List} data structure of list\n   */\n  getEdgeData: function () {\n    return this.getGraph().edgeData;\n  },\n\n  /**\n   * @override\n   */\n  formatTooltip: function (dataIndex, multipleSeries, dataType) {\n    // dataType === 'node' or empty do not show tooltip by default\n    if (dataType === 'edge') {\n      var params = this.getDataParams(dataIndex, dataType);\n      var rawDataOpt = params.data;\n      var html = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n\n      if (params.value) {\n        html += ' : ' + params.value;\n      }\n\n      return encodeHTML(html);\n    }\n\n    return SankeySeries.superCall(this, 'formatTooltip', dataIndex, multipleSeries);\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    layout: null,\n    // the position of the whole view\n    left: '5%',\n    top: '5%',\n    right: '20%',\n    bottom: '5%',\n    // the dx of the node\n    nodeWidth: 20,\n    // the vertical distance between two nodes\n    nodeGap: 8,\n    // control if the node can move or not\n    draggable: true,\n    // the number of iterations to change the position of the node\n    layoutIterations: 32,\n    label: {\n      show: true,\n      position: 'right',\n      color: '#000',\n      fontSize: 12\n    },\n    itemStyle: {\n      borderWidth: 1,\n      borderColor: '#333'\n    },\n    lineStyle: {\n      color: '#314656',\n      opacity: 0.2,\n      curveness: 0.5\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        opacity: 0.6\n      }\n    },\n    animationEasing: 'linear',\n    animationDuration: 1000\n  }\n});\nvar _default = SankeySeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/SankeySeries.js\n// module id = SAqN\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n  return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_ie8-dom-define.js\n// module id = SS50\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * nest helper used to group by the array.\n * can specified the keys and sort the keys.\n */\nfunction nest() {\n  var keysFunction = [];\n  var sortKeysFunction = [];\n  /**\n   * map an Array into the mapObject.\n   * @param {Array} array\n   * @param {number} depth\n   */\n\n  function map(array, depth) {\n    if (depth >= keysFunction.length) {\n      return array;\n    }\n\n    var i = -1;\n    var n = array.length;\n    var keyFunction = keysFunction[depth++];\n    var mapObject = {};\n    var valuesByKey = {};\n\n    while (++i < n) {\n      var keyValue = keyFunction(array[i]);\n      var values = valuesByKey[keyValue];\n\n      if (values) {\n        values.push(array[i]);\n      } else {\n        valuesByKey[keyValue] = [array[i]];\n      }\n    }\n\n    zrUtil.each(valuesByKey, function (value, key) {\n      mapObject[key] = map(value, depth);\n    });\n    return mapObject;\n  }\n  /**\n   * transform the Map Object to multidimensional Array\n   * @param {Object} map\n   * @param {number} depth\n   */\n\n\n  function entriesMap(mapObject, depth) {\n    if (depth >= keysFunction.length) {\n      return mapObject;\n    }\n\n    var array = [];\n    var sortKeyFunction = sortKeysFunction[depth++];\n    zrUtil.each(mapObject, function (value, key) {\n      array.push({\n        key: key,\n        values: entriesMap(value, depth)\n      });\n    });\n\n    if (sortKeyFunction) {\n      return array.sort(function (a, b) {\n        return sortKeyFunction(a.key, b.key);\n      });\n    } else {\n      return array;\n    }\n  }\n\n  return {\n    /**\n     * specified the key to groupby the arrays.\n     * users can specified one more keys.\n     * @param {Function} d\n     */\n    key: function (d) {\n      keysFunction.push(d);\n      return this;\n    },\n\n    /**\n     * specified the comparator to sort the keys\n     * @param {Function} order\n     */\n    sortKeys: function (order) {\n      sortKeysFunction[keysFunction.length - 1] = order;\n      return this;\n    },\n\n    /**\n     * the array to be grouped by.\n     * @param {Array} array\n     */\n    entries: function (array) {\n      return entriesMap(map(array, 0), 0);\n    }\n  };\n}\n\nmodule.exports = nest;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/array/nest.js\n// module id = SULL\n// module chunks = 0","var Definable = require(\"./Definable\");\n\nvar zrUtil = require(\"../../core/util\");\n\nvar zrLog = require(\"../../core/log\");\n\n/**\n * @file Manages SVG gradient elements.\n * @author Zhang Wenli\n */\n\n/**\n * Manages SVG gradient elements.\n *\n * @class\n * @extends Definable\n * @param   {number}     zrId    zrender instance id\n * @param   {SVGElement} svgRoot root of SVG document\n */\nfunction GradientManager(zrId, svgRoot) {\n  Definable.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__');\n}\n\nzrUtil.inherits(GradientManager, Definable);\n/**\n * Create new gradient DOM for fill or stroke if not exist,\n * but will not update gradient if exists.\n *\n * @param {SvgElement}  svgElement   SVG element to paint\n * @param {Displayable} displayable  zrender displayable element\n */\n\nGradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n  if (displayable && displayable.style) {\n    var that = this;\n    zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n      if (displayable.style[fillOrStroke] && (displayable.style[fillOrStroke].type === 'linear' || displayable.style[fillOrStroke].type === 'radial')) {\n        var gradient = displayable.style[fillOrStroke];\n        var defs = that.getDefs(true); // Create dom in <defs> if not exists\n\n        var dom;\n\n        if (gradient._dom) {\n          // Gradient exists\n          dom = gradient._dom;\n\n          if (!defs.contains(gradient._dom)) {\n            // _dom is no longer in defs, recreate\n            that.addDom(dom);\n          }\n        } else {\n          // New dom\n          dom = that.add(gradient);\n        }\n\n        that.markUsed(displayable);\n        var id = dom.getAttribute('id');\n        svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n      }\n    });\n  }\n};\n/**\n * Add a new gradient tag in <defs>\n *\n * @param   {Gradient} gradient zr gradient instance\n * @return {SVGLinearGradientElement | SVGRadialGradientElement}\n *                            created DOM\n */\n\n\nGradientManager.prototype.add = function (gradient) {\n  var dom;\n\n  if (gradient.type === 'linear') {\n    dom = this.createElement('linearGradient');\n  } else if (gradient.type === 'radial') {\n    dom = this.createElement('radialGradient');\n  } else {\n    zrLog('Illegal gradient type.');\n    return null;\n  } // Set dom id with gradient id, since each gradient instance\n  // will have no more than one dom element.\n  // id may exists before for those dirty elements, in which case\n  // id should remain the same, and other attributes should be\n  // updated.\n\n\n  gradient.id = gradient.id || this.nextId++;\n  dom.setAttribute('id', 'zr' + this._zrId + '-gradient-' + gradient.id);\n  this.updateDom(gradient, dom);\n  this.addDom(dom);\n  return dom;\n};\n/**\n * Update gradient.\n *\n * @param {Gradient} gradient zr gradient instance\n */\n\n\nGradientManager.prototype.update = function (gradient) {\n  var that = this;\n  Definable.prototype.update.call(this, gradient, function () {\n    var type = gradient.type;\n    var tagName = gradient._dom.tagName;\n\n    if (type === 'linear' && tagName === 'linearGradient' || type === 'radial' && tagName === 'radialGradient') {\n      // Gradient type is not changed, update gradient\n      that.updateDom(gradient, gradient._dom);\n    } else {\n      // Remove and re-create if type is changed\n      that.removeDom(gradient);\n      that.add(gradient);\n    }\n  });\n};\n/**\n * Update gradient dom\n *\n * @param {Gradient} gradient zr gradient instance\n * @param {SVGLinearGradientElement | SVGRadialGradientElement} dom\n *                            DOM to update\n */\n\n\nGradientManager.prototype.updateDom = function (gradient, dom) {\n  if (gradient.type === 'linear') {\n    dom.setAttribute('x1', gradient.x);\n    dom.setAttribute('y1', gradient.y);\n    dom.setAttribute('x2', gradient.x2);\n    dom.setAttribute('y2', gradient.y2);\n  } else if (gradient.type === 'radial') {\n    dom.setAttribute('cx', gradient.x);\n    dom.setAttribute('cy', gradient.y);\n    dom.setAttribute('r', gradient.r);\n  } else {\n    zrLog('Illegal gradient type.');\n    return;\n  }\n\n  if (gradient.global) {\n    // x1, x2, y1, y2 in range of 0 to canvas width or height\n    dom.setAttribute('gradientUnits', 'userSpaceOnUse');\n  } else {\n    // x1, x2, y1, y2 in range of 0 to 1\n    dom.setAttribute('gradientUnits', 'objectBoundingBox');\n  } // Remove color stops if exists\n\n\n  dom.innerHTML = ''; // Add color stops\n\n  var colors = gradient.colorStops;\n\n  for (var i = 0, len = colors.length; i < len; ++i) {\n    var stop = this.createElement('stop');\n    stop.setAttribute('offset', colors[i].offset * 100 + '%');\n    stop.setAttribute('stop-color', colors[i].color);\n    dom.appendChild(stop);\n  } // Store dom element in gradient, to avoid creating multiple\n  // dom instances for the same gradient element\n\n\n  gradient._dom = dom;\n};\n/**\n * Mark a single gradient to be used\n *\n * @param {Displayable} displayable displayable element\n */\n\n\nGradientManager.prototype.markUsed = function (displayable) {\n  if (displayable.style) {\n    var gradient = displayable.style.fill;\n\n    if (gradient && gradient._dom) {\n      Definable.prototype.markUsed.call(this, gradient._dom);\n    }\n\n    gradient = displayable.style.stroke;\n\n    if (gradient && gradient._dom) {\n      Definable.prototype.markUsed.call(this, gradient._dom);\n    }\n  }\n};\n\nvar _default = GradientManager;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/svg/helper/GradientManager.js\n// module id = Scoi\n// module chunks = 0","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param  {Number}    delay          A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param  {Boolean}   [noTrailing]   Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n *                                    throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n *                                    after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n *                                    the internal counter is reset)\n * @param  {Function}  callback       A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n *                                    to `callback` when the throttled-function is executed.\n * @param  {Boolean}   [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n *                                    schedule `callback` to execute after `delay` ms.\n *\n * @return {Function}  A new, throttled, function.\n */\nmodule.exports = function ( delay, noTrailing, callback, debounceMode ) {\n\n\t// After wrapper has stopped being called, this timeout ensures that\n\t// `callback` is executed at the proper times in `throttle` and `end`\n\t// debounce modes.\n\tvar timeoutID;\n\n\t// Keep track of the last time `callback` was executed.\n\tvar lastExec = 0;\n\n\t// `noTrailing` defaults to falsy.\n\tif ( typeof noTrailing !== 'boolean' ) {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t// functionality and when executed will limit the rate at which `callback`\n\t// is executed.\n\tfunction wrapper () {\n\n\t\tvar self = this;\n\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\tvar args = arguments;\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec () {\n\t\t\tlastExec = Number(new Date());\n\t\t\tcallback.apply(self, args);\n\t\t}\n\n\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t// to allow future `callback` executions.\n\t\tfunction clear () {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif ( debounceMode && !timeoutID ) {\n\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\texec();\n\t\t}\n\n\t\t// Clear any existing timeout.\n\t\tif ( timeoutID ) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\n\t\tif ( debounceMode === undefined && elapsed > delay ) {\n\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t// `callback`.\n\t\t\texec();\n\n\t\t} else if ( noTrailing !== true ) {\n\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t// recent execution.\n\t\t\t//\n\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t// after `delay` ms.\n\t\t\t//\n\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t// execute after `delay` ms.\n\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t}\n\n\t}\n\n\t// Return the wrapper function.\n\treturn wrapper;\n\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_throttle-debounce@1.1.0@throttle-debounce/throttle.js\n// module id = Scpa\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar SymbolDraw = require(\"../helper/SymbolDraw\");\n\nvar EffectSymbol = require(\"../helper/EffectSymbol\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar pointsLayout = require(\"../../layout/points\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendChartView({\n  type: 'effectScatter',\n  init: function () {\n    this._symbolDraw = new SymbolDraw(EffectSymbol);\n  },\n  render: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var effectSymbolDraw = this._symbolDraw;\n    effectSymbolDraw.updateData(data);\n    this.group.add(effectSymbolDraw.group);\n  },\n  updateTransform: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n    var res = pointsLayout().reset(seriesModel);\n\n    if (res.progress) {\n      res.progress({\n        start: 0,\n        end: data.count()\n      }, data);\n    }\n\n    this._symbolDraw.updateLayout(data);\n  },\n  _updateGroupTransform: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.getRoamTransform) {\n      this.group.transform = matrix.clone(coordSys.getRoamTransform());\n      this.group.decomposeTransform();\n    }\n  },\n  remove: function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(api);\n  },\n  dispose: function () {}\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/effectScatter/EffectScatterView.js\n// module id = Snek\n// module chunks = 0","var fixShadow = require(\"./helper/fixShadow\");\n\nvar STYLE_COMMON_PROPS = [['shadowBlur', 0], ['shadowOffsetX', 0], ['shadowOffsetY', 0], ['shadowColor', '#000'], ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]]; // var SHADOW_PROPS = STYLE_COMMON_PROPS.slice(0, 4);\n// var LINE_PROPS = STYLE_COMMON_PROPS.slice(4);\n\nvar Style = function (opts, host) {\n  this.extendFrom(opts, false);\n  this.host = host;\n};\n\nfunction createLinearGradient(ctx, obj, rect) {\n  var x = obj.x == null ? 0 : obj.x;\n  var x2 = obj.x2 == null ? 1 : obj.x2;\n  var y = obj.y == null ? 0 : obj.y;\n  var y2 = obj.y2 == null ? 0 : obj.y2;\n\n  if (!obj.global) {\n    x = x * rect.width + rect.x;\n    x2 = x2 * rect.width + rect.x;\n    y = y * rect.height + rect.y;\n    y2 = y2 * rect.height + rect.y;\n  } // Fix NaN when rect is Infinity\n\n\n  x = isNaN(x) ? 0 : x;\n  x2 = isNaN(x2) ? 1 : x2;\n  y = isNaN(y) ? 0 : y;\n  y2 = isNaN(y2) ? 0 : y2;\n  var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n  return canvasGradient;\n}\n\nfunction createRadialGradient(ctx, obj, rect) {\n  var width = rect.width;\n  var height = rect.height;\n  var min = Math.min(width, height);\n  var x = obj.x == null ? 0.5 : obj.x;\n  var y = obj.y == null ? 0.5 : obj.y;\n  var r = obj.r == null ? 0.5 : obj.r;\n\n  if (!obj.global) {\n    x = x * width + rect.x;\n    y = y * height + rect.y;\n    r = r * min;\n  }\n\n  var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n  return canvasGradient;\n}\n\nStyle.prototype = {\n  constructor: Style,\n\n  /**\n   * @type {module:zrender/graphic/Displayable}\n   */\n  host: null,\n\n  /**\n   * @type {string}\n   */\n  fill: '#000',\n\n  /**\n   * @type {string}\n   */\n  stroke: null,\n\n  /**\n   * @type {number}\n   */\n  opacity: 1,\n\n  /**\n   * @type {Array.<number>}\n   */\n  lineDash: null,\n\n  /**\n   * @type {number}\n   */\n  lineDashOffset: 0,\n\n  /**\n   * @type {number}\n   */\n  shadowBlur: 0,\n\n  /**\n   * @type {number}\n   */\n  shadowOffsetX: 0,\n\n  /**\n   * @type {number}\n   */\n  shadowOffsetY: 0,\n\n  /**\n   * @type {number}\n   */\n  lineWidth: 1,\n\n  /**\n   * If stroke ignore scale\n   * @type {Boolean}\n   */\n  strokeNoScale: false,\n  // Bounding rect text configuration\n  // Not affected by element transform\n\n  /**\n   * @type {string}\n   */\n  text: null,\n\n  /**\n   * If `fontSize` or `fontFamily` exists, `font` will be reset by\n   * `fontSize`, `fontStyle`, `fontWeight`, `fontFamily`.\n   * So do not visit it directly in upper application (like echarts),\n   * but use `contain/text#makeFont` instead.\n   * @type {string}\n   */\n  font: null,\n\n  /**\n   * The same as font. Use font please.\n   * @deprecated\n   * @type {string}\n   */\n  textFont: null,\n\n  /**\n   * It helps merging respectively, rather than parsing an entire font string.\n   * @type {string}\n   */\n  fontStyle: null,\n\n  /**\n   * It helps merging respectively, rather than parsing an entire font string.\n   * @type {string}\n   */\n  fontWeight: null,\n\n  /**\n   * It helps merging respectively, rather than parsing an entire font string.\n   * Should be 12 but not '12px'.\n   * @type {number}\n   */\n  fontSize: null,\n\n  /**\n   * It helps merging respectively, rather than parsing an entire font string.\n   * @type {string}\n   */\n  fontFamily: null,\n\n  /**\n   * Reserved for special functinality, like 'hr'.\n   * @type {string}\n   */\n  textTag: null,\n\n  /**\n   * @type {string}\n   */\n  textFill: '#000',\n\n  /**\n   * @type {string}\n   */\n  textStroke: null,\n\n  /**\n   * @type {number}\n   */\n  textWidth: null,\n\n  /**\n   * Only for textBackground.\n   * @type {number}\n   */\n  textHeight: null,\n\n  /**\n   * textStroke may be set as some color as a default\n   * value in upper applicaion, where the default value\n   * of textStrokeWidth should be 0 to make sure that\n   * user can choose to do not use text stroke.\n   * @type {number}\n   */\n  textStrokeWidth: 0,\n\n  /**\n   * @type {number}\n   */\n  textLineHeight: null,\n\n  /**\n   * 'inside', 'left', 'right', 'top', 'bottom'\n   * [x, y]\n   * Based on x, y of rect.\n   * @type {string|Array.<number>}\n   * @default 'inside'\n   */\n  textPosition: 'inside',\n\n  /**\n   * If not specified, use the boundingRect of a `displayable`.\n   * @type {Object}\n   */\n  textRect: null,\n\n  /**\n   * [x, y]\n   * @type {Array.<number>}\n   */\n  textOffset: null,\n\n  /**\n   * @type {string}\n   */\n  textAlign: null,\n\n  /**\n   * @type {string}\n   */\n  textVerticalAlign: null,\n\n  /**\n   * @type {number}\n   */\n  textDistance: 5,\n\n  /**\n   * @type {string}\n   */\n  textShadowColor: 'transparent',\n\n  /**\n   * @type {number}\n   */\n  textShadowBlur: 0,\n\n  /**\n   * @type {number}\n   */\n  textShadowOffsetX: 0,\n\n  /**\n   * @type {number}\n   */\n  textShadowOffsetY: 0,\n\n  /**\n   * @type {string}\n   */\n  textBoxShadowColor: 'transparent',\n\n  /**\n   * @type {number}\n   */\n  textBoxShadowBlur: 0,\n\n  /**\n   * @type {number}\n   */\n  textBoxShadowOffsetX: 0,\n\n  /**\n   * @type {number}\n   */\n  textBoxShadowOffsetY: 0,\n\n  /**\n   * Whether transform text.\n   * Only useful in Path and Image element\n   * @type {boolean}\n   */\n  transformText: false,\n\n  /**\n   * Text rotate around position of Path or Image\n   * Only useful in Path and Image element and transformText is false.\n   */\n  textRotation: 0,\n\n  /**\n   * Text origin of text rotation, like [10, 40].\n   * Based on x, y of rect.\n   * Useful in label rotation of circular symbol.\n   * By default, this origin is textPosition.\n   * Can be 'center'.\n   * @type {string|Array.<number>}\n   */\n  textOrigin: null,\n\n  /**\n   * @type {string}\n   */\n  textBackgroundColor: null,\n\n  /**\n   * @type {string}\n   */\n  textBorderColor: null,\n\n  /**\n   * @type {number}\n   */\n  textBorderWidth: 0,\n\n  /**\n   * @type {number}\n   */\n  textBorderRadius: 0,\n\n  /**\n   * Can be `2` or `[2, 4]` or `[2, 3, 4, 5]`\n   * @type {number|Array.<number>}\n   */\n  textPadding: null,\n\n  /**\n   * Text styles for rich text.\n   * @type {Object}\n   */\n  rich: null,\n\n  /**\n   * {outerWidth, outerHeight, ellipsis, placeholder}\n   * @type {Object}\n   */\n  truncate: null,\n\n  /**\n   * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n   * @type {string}\n   */\n  blend: null,\n\n  /**\n   * @param {CanvasRenderingContext2D} ctx\n   */\n  bind: function (ctx, el, prevEl) {\n    var style = this;\n    var prevStyle = prevEl && prevEl.style;\n    var firstDraw = !prevStyle;\n\n    for (var i = 0; i < STYLE_COMMON_PROPS.length; i++) {\n      var prop = STYLE_COMMON_PROPS[i];\n      var styleName = prop[0];\n\n      if (firstDraw || style[styleName] !== prevStyle[styleName]) {\n        // FIXME Invalid property value will cause style leak from previous element.\n        ctx[styleName] = fixShadow(ctx, styleName, style[styleName] || prop[1]);\n      }\n    }\n\n    if (firstDraw || style.fill !== prevStyle.fill) {\n      ctx.fillStyle = style.fill;\n    }\n\n    if (firstDraw || style.stroke !== prevStyle.stroke) {\n      ctx.strokeStyle = style.stroke;\n    }\n\n    if (firstDraw || style.opacity !== prevStyle.opacity) {\n      ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n\n    if (firstDraw || style.blend !== prevStyle.blend) {\n      ctx.globalCompositeOperation = style.blend || 'source-over';\n    }\n\n    if (this.hasStroke()) {\n      var lineWidth = style.lineWidth;\n      ctx.lineWidth = lineWidth / (this.strokeNoScale && el && el.getLineScale ? el.getLineScale() : 1);\n    }\n  },\n  hasFill: function () {\n    var fill = this.fill;\n    return fill != null && fill !== 'none';\n  },\n  hasStroke: function () {\n    var stroke = this.stroke;\n    return stroke != null && stroke !== 'none' && this.lineWidth > 0;\n  },\n\n  /**\n   * Extend from other style\n   * @param {zrender/graphic/Style} otherStyle\n   * @param {boolean} overwrite true: overwrirte any way.\n   *                            false: overwrite only when !target.hasOwnProperty\n   *                            others: overwrite when property is not null/undefined.\n   */\n  extendFrom: function (otherStyle, overwrite) {\n    if (otherStyle) {\n      for (var name in otherStyle) {\n        if (otherStyle.hasOwnProperty(name) && (overwrite === true || (overwrite === false ? !this.hasOwnProperty(name) : otherStyle[name] != null))) {\n          this[name] = otherStyle[name];\n        }\n      }\n    }\n  },\n\n  /**\n   * Batch setting style with a given object\n   * @param {Object|string} obj\n   * @param {*} [obj]\n   */\n  set: function (obj, value) {\n    if (typeof obj === 'string') {\n      this[obj] = value;\n    } else {\n      this.extendFrom(obj, true);\n    }\n  },\n\n  /**\n   * Clone\n   * @return {zrender/graphic/Style} [description]\n   */\n  clone: function () {\n    var newStyle = new this.constructor();\n    newStyle.extendFrom(this, true);\n    return newStyle;\n  },\n  getGradient: function (ctx, obj, rect) {\n    var method = obj.type === 'radial' ? createRadialGradient : createLinearGradient;\n    var canvasGradient = method(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n\n    for (var i = 0; i < colorStops.length; i++) {\n      canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n\n    return canvasGradient;\n  }\n};\nvar styleProto = Style.prototype;\n\nfor (var i = 0; i < STYLE_COMMON_PROPS.length; i++) {\n  var prop = STYLE_COMMON_PROPS[i];\n\n  if (!(prop[0] in styleProto)) {\n    styleProto[prop[0]] = prop[1];\n  }\n} // Provide for others\n\n\nStyle.getGradient = styleProto.getGradient;\nvar _default = Style;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/Style.js\n// module id = T+0u\n// module chunks = 0","var dpr = 1; // If in browser environment\n\nif (typeof window !== 'undefined') {\n  dpr = Math.max(window.devicePixelRatio || 1, 1);\n}\n/**\n * config榛樿閰嶇疆椤筡n * @exports zrender/config\n * @author Kener (@Kener-鏋楀嘲, kener.linfeng@gmail.com)\n */\n\n/**\n * debug鏃ュ織閫夐」锛歝atchBrushException涓簍rue涓嬫湁鏁圽n * 0 : 涓嶇敓鎴恉ebug鏁版嵁锛屽彂甯冪敤\n * 1 : 寮傚父鎶涘嚭锛岃皟璇曠敤\n * 2 : 鎺у埗鍙拌緭鍑猴紝璋冭瘯鐢╘n */\n\n\nvar debugMode = 0; // retina 灞忓箷浼樺寲\n\nvar devicePixelRatio = dpr;\nexports.debugMode = debugMode;\nexports.devicePixelRatio = devicePixelRatio;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/config.js\n// module id = T2AC\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_cof.js\n// module id = T9r1\n// module chunks = 0","var Path = require(\"../Path\");\n\n/**\n * 鐩寸嚎\n * @module zrender/graphic/shape/Line\n */\nvar _default = Path.extend({\n  type: 'line',\n  shape: {\n    // Start point\n    x1: 0,\n    y1: 0,\n    // End point\n    x2: 0,\n    y2: 0,\n    percent: 1\n  },\n  style: {\n    stroke: '#000',\n    fill: null\n  },\n  buildPath: function (ctx, shape) {\n    var x1 = shape.x1;\n    var y1 = shape.y1;\n    var x2 = shape.x2;\n    var y2 = shape.y2;\n    var percent = shape.percent;\n\n    if (percent === 0) {\n      return;\n    }\n\n    ctx.moveTo(x1, y1);\n\n    if (percent < 1) {\n      x2 = x1 * (1 - percent) + x2 * percent;\n      y2 = y1 * (1 - percent) + y2 * percent;\n    }\n\n    ctx.lineTo(x2, y2);\n  },\n\n  /**\n   * Get point at percent\n   * @param  {number} percent\n   * @return {Array.<number>}\n   */\n  pointAt: function (p) {\n    var shape = this.shape;\n    return [shape.x1 * (1 - p) + shape.x2 * p, shape.y1 * (1 - p) + shape.y2 * p];\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Line.js\n// module id = TPUF\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_to-integer.js\n// module id = TPu0\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar _poly = require(\"../line/poly\");\n\nvar Polygon = _poly.Polygon;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar bind = _util.bind;\nvar extend = _util.extend;\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file  The file used to draw themeRiver view\n * @author  Deqing Li(annong035@gmail.com)\n */\nvar _default = echarts.extendChartView({\n  type: 'themeRiver',\n  init: function () {\n    this._layers = [];\n  },\n  render: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var group = this.group;\n    var layerSeries = seriesModel.getLayerSeries();\n    var layoutInfo = data.getLayout('layoutInfo');\n    var rect = layoutInfo.rect;\n    var boundaryGap = layoutInfo.boundaryGap;\n    group.attr('position', [0, rect.y + boundaryGap[0]]);\n\n    function keyGetter(item) {\n      return item.name;\n    }\n\n    var dataDiffer = new DataDiffer(this._layersSeries || [], layerSeries, keyGetter, keyGetter);\n    var newLayersGroups = {};\n    dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n    function process(status, idx, oldIdx) {\n      var oldLayersGroups = this._layers;\n\n      if (status === 'remove') {\n        group.remove(oldLayersGroups[idx]);\n        return;\n      }\n\n      var points0 = [];\n      var points1 = [];\n      var color;\n      var indices = layerSeries[idx].indices;\n\n      for (var j = 0; j < indices.length; j++) {\n        var layout = data.getItemLayout(indices[j]);\n        var x = layout.x;\n        var y0 = layout.y0;\n        var y = layout.y;\n        points0.push([x, y0]);\n        points1.push([x, y0 + y]);\n        color = data.getItemVisual(indices[j], 'color');\n      }\n\n      var polygon;\n      var text;\n      var textLayout = data.getItemLayout(indices[0]);\n      var itemModel = data.getItemModel(indices[j - 1]);\n      var labelModel = itemModel.getModel('label');\n      var margin = labelModel.get('margin');\n\n      if (status === 'add') {\n        var layerGroup = newLayersGroups[idx] = new graphic.Group();\n        polygon = new Polygon({\n          shape: {\n            points: points0,\n            stackedOnPoints: points1,\n            smooth: 0.4,\n            stackedOnSmooth: 0.4,\n            smoothConstraint: false\n          },\n          z2: 0\n        });\n        text = new graphic.Text({\n          style: {\n            x: textLayout.x - margin,\n            y: textLayout.y0 + textLayout.y / 2\n          }\n        });\n        layerGroup.add(polygon);\n        layerGroup.add(text);\n        group.add(layerGroup);\n        polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n          polygon.removeClipPath();\n        }));\n      } else {\n        var layerGroup = oldLayersGroups[oldIdx];\n        polygon = layerGroup.childAt(0);\n        text = layerGroup.childAt(1);\n        group.add(layerGroup);\n        newLayersGroups[idx] = layerGroup;\n        graphic.updateProps(polygon, {\n          shape: {\n            points: points0,\n            stackedOnPoints: points1\n          }\n        }, seriesModel);\n        graphic.updateProps(text, {\n          style: {\n            x: textLayout.x - margin,\n            y: textLayout.y0 + textLayout.y / 2\n          }\n        }, seriesModel);\n      }\n\n      var hoverItemStyleModel = itemModel.getModel('emphasis.itemStyle');\n      var itemStyleModel = itemModel.getModel('itemStyle');\n      graphic.setTextStyle(text.style, labelModel, {\n        text: labelModel.get('show') ? seriesModel.getFormattedLabel(indices[j - 1], 'normal') || data.getName(indices[j - 1]) : null,\n        textVerticalAlign: 'middle'\n      });\n      polygon.setStyle(extend({\n        fill: color\n      }, itemStyleModel.getItemStyle(['color'])));\n      graphic.setHoverStyle(polygon, hoverItemStyleModel.getItemStyle());\n    }\n\n    this._layersSeries = layerSeries;\n    this._layers = newLayersGroups;\n  },\n  dispose: function () {}\n}); // add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width + 20,\n      height: rect.height + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver/ThemeRiverView.js\n// module id = TU1D\n// module chunks = 0","var _core = require(\"./core\");\n\nvar createElement = _core.createElement;\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar matrix = require(\"../core/matrix\");\n\nvar textContain = require(\"../contain/text\");\n\nvar textHelper = require(\"../graphic/helper/text\");\n\nvar Text = require(\"../graphic/Text\");\n\n// TODO\n// 1. shadow\n// 2. Image: sx, sy, sw, sh\nvar CMD = PathProxy.CMD;\nvar arrayJoin = Array.prototype.join;\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\n\nfunction round4(val) {\n  return mathRound(val * 1e4) / 1e4;\n}\n\nfunction isAroundZero(val) {\n  return val < EPSILON && val > -EPSILON;\n}\n\nfunction pathHasFill(style, isText) {\n  var fill = isText ? style.textFill : style.fill;\n  return fill != null && fill !== NONE;\n}\n\nfunction pathHasStroke(style, isText) {\n  var stroke = isText ? style.textStroke : style.stroke;\n  return stroke != null && stroke !== NONE;\n}\n\nfunction setTransform(svgEl, m) {\n  if (m) {\n    attr(svgEl, 'transform', 'matrix(' + arrayJoin.call(m, ',') + ')');\n  }\n}\n\nfunction attr(el, key, val) {\n  if (!val || val.type !== 'linear' && val.type !== 'radial') {\n    // Don't set attribute for gradient, since it need new dom nodes\n    if (typeof val === 'string' && val.indexOf('NaN') > -1) {\n      console.log(val);\n    }\n\n    el.setAttribute(key, val);\n  }\n}\n\nfunction attrXLink(el, key, val) {\n  el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\n\nfunction bindStyle(svgEl, style, isText) {\n  if (pathHasFill(style, isText)) {\n    var fill = isText ? style.textFill : style.fill;\n    fill = fill === 'transparent' ? NONE : fill;\n    /**\n     * FIXME:\n     * This is a temporary fix for Chrome's clipping bug\n     * that happens when a clip-path is referring another one.\n     * This fix should be used before Chrome's bug is fixed.\n     * For an element that has clip-path, and fill is none,\n     * set it to be \"rgba(0, 0, 0, 0.002)\" will hide the element.\n     * Otherwise, it will show black fill color.\n     * 0.002 is used because this won't work for alpha values smaller\n     * than 0.002.\n     *\n     * See\n     * https://bugs.chromium.org/p/chromium/issues/detail?id=659790\n     * for more information.\n     */\n\n    if (svgEl.getAttribute('clip-path') !== 'none' && fill === NONE) {\n      fill = 'rgba(0, 0, 0, 0.002)';\n    }\n\n    attr(svgEl, 'fill', fill);\n    attr(svgEl, 'fill-opacity', style.opacity);\n  } else {\n    attr(svgEl, 'fill', NONE);\n  }\n\n  if (pathHasStroke(style, isText)) {\n    var stroke = isText ? style.textStroke : style.stroke;\n    stroke = stroke === 'transparent' ? NONE : stroke;\n    attr(svgEl, 'stroke', stroke);\n    var strokeWidth = isText ? style.textStrokeWidth : style.lineWidth;\n    var strokeScale = !isText && style.strokeNoScale ? style.host.getLineScale() : 1;\n    attr(svgEl, 'stroke-width', strokeWidth / strokeScale); // stroke then fill for text; fill then stroke for others\n\n    attr(svgEl, 'paint-order', isText ? 'stroke' : 'fill');\n    attr(svgEl, 'stroke-opacity', style.opacity);\n    var lineDash = style.lineDash;\n\n    if (lineDash) {\n      attr(svgEl, 'stroke-dasharray', style.lineDash.join(','));\n      attr(svgEl, 'stroke-dashoffset', mathRound(style.lineDashOffset || 0));\n    } else {\n      attr(svgEl, 'stroke-dasharray', '');\n    } // PENDING\n\n\n    style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n    style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n    style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit);\n  } else {\n    attr(svgEl, 'stroke', NONE);\n  }\n}\n/***************************************************\n * PATH\n **************************************************/\n\n\nfunction pathDataToString(path) {\n  var str = [];\n  var data = path.data;\n  var dataLength = path.len();\n\n  for (var i = 0; i < dataLength;) {\n    var cmd = data[i++];\n    var cmdStr = '';\n    var nData = 0;\n\n    switch (cmd) {\n      case CMD.M:\n        cmdStr = 'M';\n        nData = 2;\n        break;\n\n      case CMD.L:\n        cmdStr = 'L';\n        nData = 2;\n        break;\n\n      case CMD.Q:\n        cmdStr = 'Q';\n        nData = 4;\n        break;\n\n      case CMD.C:\n        cmdStr = 'C';\n        nData = 6;\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        var psi = data[i++];\n        var clockwise = data[i++];\n        var dThetaPositive = Math.abs(dTheta);\n        var isCircle = isAroundZero(dThetaPositive - PI2) && !isAroundZero(dThetaPositive);\n        var large = false;\n\n        if (dThetaPositive >= PI2) {\n          large = true;\n        } else if (isAroundZero(dThetaPositive)) {\n          large = false;\n        } else {\n          large = (dTheta > -PI && dTheta < 0 || dTheta > PI) === !!clockwise;\n        }\n\n        var x0 = round4(cx + rx * mathCos(theta));\n        var y0 = round4(cy + ry * mathSin(theta)); // It will not draw if start point and end point are exactly the same\n        // We need to shift the end point with a small value\n        // FIXME A better way to draw circle ?\n\n        if (isCircle) {\n          if (clockwise) {\n            dTheta = PI2 - 1e-4;\n          } else {\n            dTheta = -PI2 + 1e-4;\n          }\n\n          large = true;\n\n          if (i === 9) {\n            // Move to (x0, y0) only when CMD.A comes at the\n            // first position of a shape.\n            // For instance, when drawing a ring, CMD.A comes\n            // after CMD.M, so it's unnecessary to move to\n            // (x0, y0).\n            str.push('M', x0, y0);\n          }\n        }\n\n        var x = round4(cx + rx * mathCos(theta + dTheta));\n        var y = round4(cy + ry * mathSin(theta + dTheta)); // FIXME Ellipse\n\n        str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n        break;\n\n      case CMD.Z:\n        cmdStr = 'Z';\n        break;\n\n      case CMD.R:\n        var x = round4(data[i++]);\n        var y = round4(data[i++]);\n        var w = round4(data[i++]);\n        var h = round4(data[i++]);\n        str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\n        break;\n    }\n\n    cmdStr && str.push(cmdStr);\n\n    for (var j = 0; j < nData; j++) {\n      // PENDING With scale\n      str.push(round4(data[i++]));\n    }\n  }\n\n  return str.join(' ');\n}\n\nvar svgPath = {};\n\nsvgPath.brush = function (el) {\n  var style = el.style;\n  var svgEl = el.__svgEl;\n\n  if (!svgEl) {\n    svgEl = createElement('path');\n    el.__svgEl = svgEl;\n  }\n\n  if (!el.path) {\n    el.createPathProxy();\n  }\n\n  var path = el.path;\n\n  if (el.__dirtyPath) {\n    path.beginPath();\n    el.buildPath(path, el.shape);\n    el.__dirtyPath = false;\n    var pathStr = pathDataToString(path);\n\n    if (pathStr.indexOf('NaN') < 0) {\n      // Ignore illegal path, which may happen such in out-of-range\n      // data in Calendar series.\n      attr(svgEl, 'd', pathStr);\n    }\n  }\n\n  bindStyle(svgEl, style);\n  setTransform(svgEl, el.transform);\n\n  if (style.text != null) {\n    svgTextDrawRectText(el, el.getBoundingRect());\n  }\n};\n/***************************************************\n * IMAGE\n **************************************************/\n\n\nvar svgImage = {};\n\nsvgImage.brush = function (el) {\n  var style = el.style;\n  var image = style.image;\n\n  if (image instanceof HTMLImageElement) {\n    var src = image.src;\n    image = src;\n  }\n\n  if (!image) {\n    return;\n  }\n\n  var x = style.x || 0;\n  var y = style.y || 0;\n  var dw = style.width;\n  var dh = style.height;\n  var svgEl = el.__svgEl;\n\n  if (!svgEl) {\n    svgEl = createElement('image');\n    el.__svgEl = svgEl;\n  }\n\n  if (image !== el.__imageSrc) {\n    attrXLink(svgEl, 'href', image); // Caching image src\n\n    el.__imageSrc = image;\n  }\n\n  attr(svgEl, 'width', dw);\n  attr(svgEl, 'height', dh);\n  attr(svgEl, 'x', x);\n  attr(svgEl, 'y', y);\n  setTransform(svgEl, el.transform);\n\n  if (style.text != null) {\n    svgTextDrawRectText(el, el.getBoundingRect());\n  }\n};\n/***************************************************\n * TEXT\n **************************************************/\n\n\nvar svgText = {};\nvar tmpRect = new BoundingRect();\n\nvar svgTextDrawRectText = function (el, rect, textRect) {\n  var style = el.style;\n  el.__dirty && textHelper.normalizeTextStyle(style, true);\n  var text = style.text; // Convert to string\n\n  if (text == null) {\n    // Draw no text only when text is set to null, but not ''\n    return;\n  } else {\n    text += '';\n  }\n\n  var textSvgEl = el.__textSvgEl;\n\n  if (!textSvgEl) {\n    textSvgEl = createElement('text');\n    el.__textSvgEl = textSvgEl;\n  }\n\n  var x;\n  var y;\n  var textPosition = style.textPosition;\n  var distance = style.textDistance;\n  var align = style.textAlign || 'left';\n\n  if (typeof style.fontSize === 'number') {\n    style.fontSize += 'px';\n  }\n\n  var font = style.font || [style.fontStyle || '', style.fontWeight || '', style.fontSize || '', style.fontFamily || ''].join(' ') || textContain.DEFAULT_FONT;\n  var verticalAlign = getVerticalAlignForSvg(style.textVerticalAlign);\n  textRect = textContain.getBoundingRect(text, font, align, verticalAlign);\n  var lineHeight = textRect.lineHeight; // Text position represented by coord\n\n  if (textPosition instanceof Array) {\n    x = rect.x + textPosition[0];\n    y = rect.y + textPosition[1];\n  } else {\n    var newPos = textContain.adjustTextPositionOnRect(textPosition, rect, distance);\n    x = newPos.x;\n    y = newPos.y;\n    verticalAlign = getVerticalAlignForSvg(newPos.textVerticalAlign);\n    align = newPos.textAlign;\n  }\n\n  attr(textSvgEl, 'alignment-baseline', verticalAlign);\n\n  if (font) {\n    textSvgEl.style.font = font;\n  }\n\n  var textPadding = style.textPadding; // Make baseline top\n\n  attr(textSvgEl, 'x', x);\n  attr(textSvgEl, 'y', y);\n  bindStyle(textSvgEl, style, true);\n\n  if (el instanceof Text || el.style.transformText) {\n    // Transform text with element\n    setTransform(textSvgEl, el.transform);\n  } else {\n    if (el.transform) {\n      tmpRect.copy(rect);\n      tmpRect.applyTransform(el.transform);\n      rect = tmpRect;\n    } else {\n      var pos = el.transformCoordToGlobal(rect.x, rect.y);\n      rect.x = pos[0];\n      rect.y = pos[1];\n    } // Text rotation, but no element transform\n\n\n    var origin = style.textOrigin;\n\n    if (origin === 'center') {\n      x = textRect.width / 2 + x;\n      y = textRect.height / 2 + y;\n    } else if (origin) {\n      x = origin[0] + x;\n      y = origin[1] + y;\n    }\n\n    var rotate = -style.textRotation || 0;\n    var transform = matrix.create(); // Apply textRotate to element matrix\n\n    matrix.rotate(transform, el.transform, rotate);\n    setTransform(textSvgEl, transform);\n  }\n\n  var textLines = text.split('\\n');\n  var nTextLines = textLines.length;\n  var textAnchor = align; // PENDING\n\n  if (textAnchor === 'left') {\n    textAnchor = 'start';\n    textPadding && (x += textPadding[3]);\n  } else if (textAnchor === 'right') {\n    textAnchor = 'end';\n    textPadding && (x -= textPadding[1]);\n  } else if (textAnchor === 'center') {\n    textAnchor = 'middle';\n    textPadding && (x += (textPadding[3] - textPadding[1]) / 2);\n  }\n\n  var dy = 0;\n\n  if (verticalAlign === 'baseline') {\n    dy = -textRect.height + lineHeight;\n    textPadding && (dy -= textPadding[2]);\n  } else if (verticalAlign === 'middle') {\n    dy = (-textRect.height + lineHeight) / 2;\n    textPadding && (y += (textPadding[0] - textPadding[2]) / 2);\n  } else {\n    textPadding && (dy += textPadding[0]);\n  } // Font may affect position of each tspan elements\n\n\n  if (el.__text !== text || el.__textFont !== font) {\n    var tspanList = el.__tspanList || [];\n    el.__tspanList = tspanList;\n\n    for (var i = 0; i < nTextLines; i++) {\n      // Using cached tspan elements\n      var tspan = tspanList[i];\n\n      if (!tspan) {\n        tspan = tspanList[i] = createElement('tspan');\n        textSvgEl.appendChild(tspan);\n        attr(tspan, 'alignment-baseline', verticalAlign);\n        attr(tspan, 'text-anchor', textAnchor);\n      } else {\n        tspan.innerHTML = '';\n      }\n\n      attr(tspan, 'x', x);\n      attr(tspan, 'y', y + i * lineHeight + dy);\n      tspan.appendChild(document.createTextNode(textLines[i]));\n    } // Remove unsed tspan elements\n\n\n    for (; i < tspanList.length; i++) {\n      textSvgEl.removeChild(tspanList[i]);\n    }\n\n    tspanList.length = nTextLines;\n    el.__text = text;\n    el.__textFont = font;\n  } else if (el.__tspanList.length) {\n    // Update span x and y\n    var len = el.__tspanList.length;\n\n    for (var i = 0; i < len; ++i) {\n      var tspan = el.__tspanList[i];\n\n      if (tspan) {\n        attr(tspan, 'x', x);\n        attr(tspan, 'y', y + i * lineHeight + dy);\n      }\n    }\n  }\n};\n\nfunction getVerticalAlignForSvg(verticalAlign) {\n  if (verticalAlign === 'middle') {\n    return 'middle';\n  } else if (verticalAlign === 'bottom') {\n    return 'baseline';\n  } else {\n    return 'hanging';\n  }\n}\n\nsvgText.drawRectText = svgTextDrawRectText;\n\nsvgText.brush = function (el) {\n  var style = el.style;\n\n  if (style.text != null) {\n    // 寮哄埗璁剧疆 textPosition\n    style.textPosition = [0, 0];\n    svgTextDrawRectText(el, {\n      x: style.x || 0,\n      y: style.y || 0,\n      width: 0,\n      height: 0\n    }, el.getBoundingRect());\n  }\n};\n\nexports.path = svgPath;\nexports.image = svgImage;\nexports.text = svgText;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/svg/graphic.js\n// module id = UD01\n// module chunks = 0","var createListFromArray = require(\"../helper/createListFromArray\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.effectScatter',\n  dependencies: ['grid', 'polar'],\n  getInitialData: function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  },\n  brushSelector: 'point',\n  defaultOption: {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    effectType: 'ripple',\n    progressive: 0,\n    // When to show the effect, option: 'render'|'emphasis'\n    showEffectOn: 'render',\n    // Ripple effect config\n    rippleEffect: {\n      period: 4,\n      // Scale of ripple\n      scale: 2.5,\n      // Brush type can be fill or stroke\n      brushType: 'fill'\n    },\n    // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // Polar coordinate system\n    // polarIndex: 0,\n    // Geo coordinate system\n    // geoIndex: 0,\n    // symbol: null,        // 鍥惧舰绫诲瀷\n    symbolSize: 10 // 鍥惧舰澶у皬锛屽崐瀹斤紙鍗婂緞锛夊弬鏁帮紝褰撳浘褰负鏂瑰悜鎴栬彵褰㈠垯鎬诲搴︿负symbolSize * 2\n    // symbolRotate: null,  // 鍥惧舰鏃嬭浆鎺у埗\n    // large: false,\n    // Available when large is true\n    // largeThreshold: 2000,\n    // itemStyle: {\n    //     opacity: 1\n    // }\n\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/effectScatter/EffectScatterSeries.js\n// module id = UHfE\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar clazzUtil = require(\"../../util/clazz\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar axisPointerModelHelper = require(\"./modelHelper\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar throttleUtil = require(\"../../util/throttle\");\n\nvar _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n/**\n * Base axis pointer class in 2D.\n * Implemenents {module:echarts/component/axis/IAxisPointer}.\n */\n\nfunction BaseAxisPointer() {}\n\nBaseAxisPointer.prototype = {\n  /**\n   * @private\n   */\n  _group: null,\n\n  /**\n   * @private\n   */\n  _lastGraphicKey: null,\n\n  /**\n   * @private\n   */\n  _handle: null,\n\n  /**\n   * @private\n   */\n  _dragging: false,\n\n  /**\n   * @private\n   */\n  _lastValue: null,\n\n  /**\n   * @private\n   */\n  _lastStatus: null,\n\n  /**\n   * @private\n   */\n  _payloadInfo: null,\n\n  /**\n   * In px, arbitrary value. Do not set too small,\n   * no animation is ok for most cases.\n   * @protected\n   */\n  animationThreshold: 15,\n\n  /**\n   * @implement\n   */\n  render: function (axisModel, axisPointerModel, api, forceRender) {\n    var value = axisPointerModel.get('value');\n    var status = axisPointerModel.get('status'); // Bind them to `this`, not in closure, otherwise they will not\n    // be replaced when user calling setOption in not merge mode.\n\n    this._axisModel = axisModel;\n    this._axisPointerModel = axisPointerModel;\n    this._api = api; // Optimize: `render` will be called repeatly during mouse move.\n    // So it is power consuming if performing `render` each time,\n    // especially on mobile device.\n\n    if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n      return;\n    }\n\n    this._lastValue = value;\n    this._lastStatus = status;\n    var group = this._group;\n    var handle = this._handle;\n\n    if (!status || status === 'hide') {\n      // Do not clear here, for animation better.\n      group && group.hide();\n      handle && handle.hide();\n      return;\n    }\n\n    group && group.show();\n    handle && handle.show(); // Otherwise status is 'show'\n\n    var elOption = {};\n    this.makeElOption(elOption, value, axisModel, axisPointerModel, api); // Enable change axis pointer type.\n\n    var graphicKey = elOption.graphicKey;\n\n    if (graphicKey !== this._lastGraphicKey) {\n      this.clear(api);\n    }\n\n    this._lastGraphicKey = graphicKey;\n    var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n    if (!group) {\n      group = this._group = new graphic.Group();\n      this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n      this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n      api.getZr().add(group);\n    } else {\n      var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n      this.updatePointerEl(group, elOption, doUpdateProps, axisPointerModel);\n      this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n    }\n\n    updateMandatoryProps(group, axisPointerModel, true);\n\n    this._renderHandle(value);\n  },\n\n  /**\n   * @implement\n   */\n  remove: function (api) {\n    this.clear(api);\n  },\n\n  /**\n   * @implement\n   */\n  dispose: function (api) {\n    this.clear(api);\n  },\n\n  /**\n   * @protected\n   */\n  determineAnimation: function (axisModel, axisPointerModel) {\n    var animation = axisPointerModel.get('animation');\n    var axis = axisModel.axis;\n    var isCategoryAxis = axis.type === 'category';\n    var useSnap = axisPointerModel.get('snap'); // Value axis without snap always do not snap.\n\n    if (!useSnap && !isCategoryAxis) {\n      return false;\n    }\n\n    if (animation === 'auto' || animation == null) {\n      var animationThreshold = this.animationThreshold;\n\n      if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n        return true;\n      } // It is important to auto animation when snap used. Consider if there is\n      // a dataZoom, animation will be disabled when too many points exist, while\n      // it will be enabled for better visual effect when little points exist.\n\n\n      if (useSnap) {\n        var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n        var axisExtent = axis.getExtent(); // Approximate band width\n\n        return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n      }\n\n      return false;\n    }\n\n    return animation === true;\n  },\n\n  /**\n   * add {pointer, label, graphicKey} to elOption\n   * @protected\n   */\n  makeElOption: function (elOption, value, axisModel, axisPointerModel, api) {// Shoule be implemenented by sub-class.\n  },\n\n  /**\n   * @protected\n   */\n  createPointerEl: function (group, elOption, axisModel, axisPointerModel) {\n    var pointerOption = elOption.pointer;\n\n    if (pointerOption) {\n      var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n      group.add(pointerEl);\n    }\n  },\n\n  /**\n   * @protected\n   */\n  createLabelEl: function (group, elOption, axisModel, axisPointerModel) {\n    if (elOption.label) {\n      var labelEl = inner(group).labelEl = new graphic.Rect(clone(elOption.label));\n      group.add(labelEl);\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  },\n\n  /**\n   * @protected\n   */\n  updatePointerEl: function (group, elOption, updateProps) {\n    var pointerEl = inner(group).pointerEl;\n\n    if (pointerEl) {\n      pointerEl.setStyle(elOption.pointer.style);\n      updateProps(pointerEl, {\n        shape: elOption.pointer.shape\n      });\n    }\n  },\n\n  /**\n   * @protected\n   */\n  updateLabelEl: function (group, elOption, updateProps, axisPointerModel) {\n    var labelEl = inner(group).labelEl;\n\n    if (labelEl) {\n      labelEl.setStyle(elOption.label.style);\n      updateProps(labelEl, {\n        // Consider text length change in vertical axis, animation should\n        // be used on shape, otherwise the effect will be weird.\n        shape: elOption.label.shape,\n        position: elOption.label.position\n      });\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  },\n\n  /**\n   * @private\n   */\n  _renderHandle: function (value) {\n    if (this._dragging || !this.updateHandleTransform) {\n      return;\n    }\n\n    var axisPointerModel = this._axisPointerModel;\n\n    var zr = this._api.getZr();\n\n    var handle = this._handle;\n    var handleModel = axisPointerModel.getModel('handle');\n    var status = axisPointerModel.get('status');\n\n    if (!handleModel.get('show') || !status || status === 'hide') {\n      handle && zr.remove(handle);\n      this._handle = null;\n      return;\n    }\n\n    var isInit;\n\n    if (!this._handle) {\n      isInit = true;\n      handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n        cursor: 'move',\n        draggable: true,\n        onmousemove: function (e) {\n          // Fot mobile devicem, prevent screen slider on the button.\n          eventTool.stop(e.event);\n        },\n        onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n        drift: bind(this._onHandleDragMove, this),\n        ondragend: bind(this._onHandleDragEnd, this)\n      });\n      zr.add(handle);\n    }\n\n    updateMandatoryProps(handle, axisPointerModel, false); // update style\n\n    var includeStyles = ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n    handle.setStyle(handleModel.getItemStyle(null, includeStyles)); // update position\n\n    var handleSize = handleModel.get('size');\n\n    if (!zrUtil.isArray(handleSize)) {\n      handleSize = [handleSize, handleSize];\n    }\n\n    handle.attr('scale', [handleSize[0] / 2, handleSize[1] / 2]);\n    throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n    this._moveHandleToValue(value, isInit);\n  },\n\n  /**\n   * @private\n   */\n  _moveHandleToValue: function (value, isInit) {\n    updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n  },\n\n  /**\n   * @private\n   */\n  _onHandleDragMove: function (dx, dy) {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    this._dragging = true; // Persistent for throttle.\n\n    var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n    this._payloadInfo = trans;\n    handle.stopAnimation();\n    handle.attr(getHandleTransProps(trans));\n    inner(handle).lastProp = null;\n\n    this._doDispatchAxisPointer();\n  },\n\n  /**\n   * Throttled method.\n   * @private\n   */\n  _doDispatchAxisPointer: function () {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var payloadInfo = this._payloadInfo;\n    var axisModel = this._axisModel;\n\n    this._api.dispatchAction({\n      type: 'updateAxisPointer',\n      x: payloadInfo.cursorPoint[0],\n      y: payloadInfo.cursorPoint[1],\n      tooltipOption: payloadInfo.tooltipOption,\n      axesInfo: [{\n        axisDim: axisModel.axis.dim,\n        axisIndex: axisModel.componentIndex\n      }]\n    });\n  },\n\n  /**\n   * @private\n   */\n  _onHandleDragEnd: function (moveAnimation) {\n    this._dragging = false;\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var value = this._axisPointerModel.get('value'); // Consider snap or categroy axis, handle may be not consistent with\n    // axisPointer. So move handle to align the exact value position when\n    // drag ended.\n\n\n    this._moveHandleToValue(value); // For the effect: tooltip will be shown when finger holding on handle\n    // button, and will be hidden after finger left handle button.\n\n\n    this._api.dispatchAction({\n      type: 'hideTip'\n    });\n  },\n\n  /**\n   * Should be implemenented by sub-class if support `handle`.\n   * @protected\n   * @param {number} value\n   * @param {module:echarts/model/Model} axisModel\n   * @param {module:echarts/model/Model} axisPointerModel\n   * @return {Object} {position: [x, y], rotation: 0}\n   */\n  getHandleTransform: null,\n\n  /**\n   * * Should be implemenented by sub-class if support `handle`.\n   * @protected\n   * @param {Object} transform {position, rotation}\n   * @param {Array.<number>} delta [dx, dy]\n   * @param {module:echarts/model/Model} axisModel\n   * @param {module:echarts/model/Model} axisPointerModel\n   * @return {Object} {position: [x, y], rotation: 0, cursorPoint: [x, y]}\n   */\n  updateHandleTransform: null,\n\n  /**\n   * @private\n   */\n  clear: function (api) {\n    this._lastValue = null;\n    this._lastStatus = null;\n    var zr = api.getZr();\n    var group = this._group;\n    var handle = this._handle;\n\n    if (zr && group) {\n      this._lastGraphicKey = null;\n      group && zr.remove(group);\n      handle && zr.remove(handle);\n      this._group = null;\n      this._handle = null;\n      this._payloadInfo = null;\n    }\n  },\n\n  /**\n   * @protected\n   */\n  doClear: function () {// Implemented by sub-class if necessary.\n  },\n\n  /**\n   * @protected\n   * @param {Array.<number>} xy\n   * @param {Array.<number>} wh\n   * @param {number} [xDimIndex=0] or 1\n   */\n  buildLabel: function (xy, wh, xDimIndex) {\n    xDimIndex = xDimIndex || 0;\n    return {\n      x: xy[xDimIndex],\n      y: xy[1 - xDimIndex],\n      width: wh[xDimIndex],\n      height: wh[1 - xDimIndex]\n    };\n  }\n};\nBaseAxisPointer.prototype.constructor = BaseAxisPointer;\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n  // Animation optimize.\n  if (!propsEqual(inner(el).lastProp, props)) {\n    inner(el).lastProp = props;\n    moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n  }\n}\n\nfunction propsEqual(lastProps, newProps) {\n  if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n    var equals = true;\n    zrUtil.each(newProps, function (item, key) {\n      equals = equals && propsEqual(lastProps[key], item);\n    });\n    return !!equals;\n  } else {\n    return lastProps === newProps;\n  }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n  labelEl[axisPointerModel.get('label.show') ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n  return {\n    position: trans.position.slice(),\n    rotation: trans.rotation || 0\n  };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n  var z = axisPointerModel.get('z');\n  var zlevel = axisPointerModel.get('zlevel');\n  group && group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n      el.silent = silent;\n    }\n  });\n}\n\nclazzUtil.enableClassExtend(BaseAxisPointer);\nvar _default = BaseAxisPointer;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/BaseAxisPointer.js\n// module id = UPaQ\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Pick color from palette for each data item.\n// Applicable for charts that require applying color palette\n// in data level (like pie, funnel, chord).\nfunction _default(seriesType) {\n  return {\n    getTargetSeries: function (ecModel) {\n      // Pie and funnel may use diferrent scope\n      var paletteScope = {};\n      var seiresModelMap = createHashMap();\n      ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n        seriesModel.__paletteScope = paletteScope;\n        seiresModelMap.set(seriesModel.uid, seriesModel);\n      });\n      return seiresModelMap;\n    },\n    reset: function (seriesModel, ecModel) {\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var filteredIdx = idxMap[rawIdx]; // If series.itemStyle.normal.color is a function. itemVisual may be encoded\n\n        var singleDataColor = filteredIdx != null && data.getItemVisual(filteredIdx, 'color', true);\n\n        if (!singleDataColor) {\n          // FIXME Performance\n          var itemModel = dataAll.getItemModel(rawIdx);\n          var color = itemModel.get('itemStyle.color') || seriesModel.getColorFromPalette(dataAll.getName(rawIdx) || rawIdx + '', seriesModel.__paletteScope, dataAll.count()); // Legend may use the visual info in data before processed\n\n          dataAll.setItemVisual(rawIdx, 'color', color); // Data is not filtered\n\n          if (filteredIdx != null) {\n            data.setItemVisual(filteredIdx, 'color', color);\n          }\n        } else {\n          // Set data all color for legend\n          dataAll.setItemVisual(rawIdx, 'color', singleDataColor);\n        }\n      });\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/visual/dataColor.js\n// module id = UUpo\n// module chunks = 0","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nmodule.exports = now;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/now.js\n// module id = Unbz\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar IRRELEVANT_EXCLUDES = {\n  'axisPointer': 1,\n  'tooltip': 1,\n  'brush': 1\n};\n/**\n * Avoid that: mouse click on a elements that is over geo or graph,\n * but roam is triggered.\n */\n\nfunction onIrrelevantElement(e, api, targetCoordSysModel) {\n  var model = api.getComponentByElement(e.topTarget); // If model is axisModel, it works only if it is injected with coordinateSystem.\n\n  var coordSys = model && model.coordinateSystem;\n  return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES[model.mainType] && coordSys && coordSys.model !== targetCoordSysModel;\n}\n\nexports.onIrrelevantElement = onIrrelevantElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/cursorHelper.js\n// module id = Uur3\n// module chunks = 0","var isObject = require('./isObject'),\n    isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/toNumber.js\n// module id = Uyw1\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_process@0.11.10@process/browser.js\n// module id = V0EG\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_is-array-iter.js\n// module id = V2W7\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  // Inverse the axis.\n  inverse: false,\n  // Axis name displayed.\n  name: '',\n  // 'start' | 'middle' | 'end'\n  nameLocation: 'end',\n  // By degree. By defualt auto rotate by nameLocation.\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  // Use global text style by default.\n  nameTextStyle: {},\n  // The gap between axisName and axisLine.\n  nameGap: 15,\n  // Default `false` to support tooltip.\n  silent: false,\n  // Default `false` to avoid legacy user event listener fail.\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#333',\n      width: 1,\n      type: 'solid'\n    },\n    // The arrow at both ends the the axis.\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    // Whether axisTick is inside the grid or outside the grid.\n    inside: false,\n    // The length of axisTick.\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    // Whether axisLabel is inside the grid or outside the grid.\n    inside: false,\n    rotate: 0,\n    // true | false | null/undefined (auto)\n    showMinLabel: null,\n    // true | false | null/undefined (auto)\n    showMaxLabel: null,\n    margin: 8,\n    // formatter: null,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#ccc'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.3)', 'rgba(200,200,200,0.3)']\n    }\n  }\n};\nvar axisDefault = {};\naxisDefault.categoryAxis = zrUtil.merge({\n  // The gap at both ends of the axis. For categoryAxis, boolean.\n  boundaryGap: true,\n  // Set false to faster category collection.\n  // Only usefull in the case like: category is\n  // ['2012-01-01', '2012-01-02', ...], where the input\n  // data has been ensured not duplicate and is large data.\n  // null means \"auto\":\n  // if axis.data provided, do not deduplication,\n  // else do deduplication.\n  deduplication: null,\n  // splitArea: {\n  // show: false\n  // },\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    // If tick is align with label when boundaryGap is true\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\naxisDefault.valueAxis = zrUtil.merge({\n  // The gap at both ends of the axis. For value axis, [GAP, GAP], where\n  // `GAP` can be an absolute pixel number (like `35`), or percent (like `'30%'`)\n  boundaryGap: [0, 0],\n  // TODO\n  // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60]\n  // Min value of the axis. can be:\n  // + a number\n  // + 'dataMin': use the min value in data.\n  // + null/undefined: auto decide min value (consider pretty look and boundaryGap).\n  // min: null,\n  // Max value of the axis. can be:\n  // + a number\n  // + 'dataMax': use the max value in data.\n  // + null/undefined: auto decide max value (consider pretty look and boundaryGap).\n  // max: null,\n  // Readonly prop, specifies start value of the range when using data zoom.\n  // rangeStart: null\n  // Readonly prop, specifies end value of the range when using data zoom.\n  // rangeEnd: null\n  // Optional value can be:\n  // + `false`: always include value 0.\n  // + `true`: the extent do not consider value 0.\n  // scale: false,\n  // AxisTick and axisLabel and splitLine are caculated based on splitNumber.\n  splitNumber: 5 // Interval specifies the span of the ticks is mandatorily.\n  // interval: null\n  // Specify min interval when auto calculate tick interval.\n  // minInterval: null\n  // Specify max interval when auto calculate tick interval.\n  // maxInterval: null\n\n}, defaultOption);\naxisDefault.timeAxis = zrUtil.defaults({\n  scale: true,\n  min: 'dataMin',\n  max: 'dataMax'\n}, axisDefault.valueAxis);\naxisDefault.logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, axisDefault.valueAxis);\nvar _default = axisDefault;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/axisDefault.js\n// module id = V4EM\n// module chunks = 0","var Component = require(\"../../model/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nComponent.registerSubTypeDefaulter('dataZoom', function () {\n  // Default 'slider' when no type specified.\n  return 'slider';\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/typeDefaulter.js\n// module id = V9mB\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar map = _util.map;\n\nvar createRenderPlanner = require(\"../chart/helper/createRenderPlanner\");\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(seriesType) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var isLargeRender = pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0]\n      /*, dims[1]*/\n      )) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1]\n      /*, dims[0]*/\n      )) {\n        dims[1] = stackResultDim;\n      }\n\n      function progress(params, data) {\n        var segCount = params.end - params.start;\n        var points = isLargeRender && new Float32Array(segCount * dimLen);\n\n        for (var i = params.start, offset = 0, tmpIn = [], tmpOut = []; i < params.end; i++) {\n          var point;\n\n          if (dimLen === 1) {\n            var x = data.get(dims[0], i);\n            point = !isNaN(x) && coordSys.dataToPoint(x, null, tmpOut);\n          } else {\n            var x = tmpIn[0] = data.get(dims[0], i);\n            var y = tmpIn[1] = data.get(dims[1], i); // Also {Array.<number>}, not undefined to avoid if...else... statement\n\n            point = !isNaN(x) && !isNaN(y) && coordSys.dataToPoint(tmpIn, null, tmpOut);\n          }\n\n          if (isLargeRender) {\n            points[offset++] = point ? point[0] : NaN;\n            points[offset++] = point ? point[1] : NaN;\n          } else {\n            data.setItemLayout(i, point && point.slice() || [NaN, NaN]);\n          }\n        }\n\n        isLargeRender && data.setLayout('symbolPoints', points);\n      }\n\n      return dimLen && {\n        progress: progress\n      };\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/layout/points.js\n// module id = VErb\n// module chunks = 0","var util = require(\"./core/util\");\n\nvar vec2 = require(\"./core/vector\");\n\nvar Draggable = require(\"./mixin/Draggable\");\n\nvar Eventful = require(\"./mixin/Eventful\");\n\nvar SILENT = 'silent';\n\nfunction makeEventPacket(eveType, targetInfo, event) {\n  return {\n    type: eveType,\n    event: event,\n    // target can only be an element that is not silent.\n    target: targetInfo.target,\n    // topTarget can be a silent element.\n    topTarget: targetInfo.topTarget,\n    cancelBubble: false,\n    offsetX: event.zrX,\n    offsetY: event.zrY,\n    gestureEvent: event.gestureEvent,\n    pinchX: event.pinchX,\n    pinchY: event.pinchY,\n    pinchScale: event.pinchScale,\n    wheelDelta: event.zrDelta,\n    zrByTouch: event.zrByTouch,\n    which: event.which\n  };\n}\n\nfunction EmptyProxy() {}\n\nEmptyProxy.prototype.dispose = function () {};\n\nvar handlerNames = ['click', 'dblclick', 'mousewheel', 'mouseout', 'mouseup', 'mousedown', 'mousemove', 'contextmenu'];\n/**\n * @alias module:zrender/Handler\n * @constructor\n * @extends module:zrender/mixin/Eventful\n * @param {module:zrender/Storage} storage Storage instance.\n * @param {module:zrender/Painter} painter Painter instance.\n * @param {module:zrender/dom/HandlerProxy} proxy HandlerProxy instance.\n * @param {HTMLElement} painterRoot painter.root (not painter.getViewportRoot()).\n */\n\nvar Handler = function (storage, painter, proxy, painterRoot) {\n  Eventful.call(this);\n  this.storage = storage;\n  this.painter = painter;\n  this.painterRoot = painterRoot;\n  proxy = proxy || new EmptyProxy();\n  /**\n   * Proxy of event. can be Dom, WebGLSurface, etc.\n   */\n\n  this.proxy = null;\n  /**\n   * {target, topTarget, x, y}\n   * @private\n   * @type {Object}\n   */\n\n  this._hovered = {};\n  /**\n   * @private\n   * @type {Date}\n   */\n\n  this._lastTouchMoment;\n  /**\n   * @private\n   * @type {number}\n   */\n\n  this._lastX;\n  /**\n   * @private\n   * @type {number}\n   */\n\n  this._lastY;\n  Draggable.call(this);\n  this.setHandlerProxy(proxy);\n};\n\nHandler.prototype = {\n  constructor: Handler,\n  setHandlerProxy: function (proxy) {\n    if (this.proxy) {\n      this.proxy.dispose();\n    }\n\n    if (proxy) {\n      util.each(handlerNames, function (name) {\n        proxy.on && proxy.on(name, this[name], this);\n      }, this); // Attach handler\n\n      proxy.handler = this;\n    }\n\n    this.proxy = proxy;\n  },\n  mousemove: function (event) {\n    var x = event.zrX;\n    var y = event.zrY;\n    var lastHovered = this._hovered;\n    var lastHoveredTarget = lastHovered.target; // If lastHoveredTarget is removed from zr (detected by '__zr') by some API call\n    // (like 'setOption' or 'dispatchAction') in event handlers, we should find\n    // lastHovered again here. Otherwise 'mouseout' can not be triggered normally.\n    // See #6198.\n\n    if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n      lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n      lastHoveredTarget = lastHovered.target;\n    }\n\n    var hovered = this._hovered = this.findHover(x, y);\n    var hoveredTarget = hovered.target;\n    var proxy = this.proxy;\n    proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default'); // Mouse out on previous hovered element\n\n    if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n      this.dispatchToElement(lastHovered, 'mouseout', event);\n    } // Mouse moving on one element\n\n\n    this.dispatchToElement(hovered, 'mousemove', event); // Mouse over on a new element\n\n    if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n      this.dispatchToElement(hovered, 'mouseover', event);\n    }\n  },\n  mouseout: function (event) {\n    this.dispatchToElement(this._hovered, 'mouseout', event); // There might be some doms created by upper layer application\n    // at the same level of painter.getViewportRoot() (e.g., tooltip\n    // dom created by echarts), where 'globalout' event should not\n    // be triggered when mouse enters these doms. (But 'mouseout'\n    // should be triggered at the original hovered element as usual).\n\n    var element = event.toElement || event.relatedTarget;\n    var innerDom;\n\n    do {\n      element = element && element.parentNode;\n    } while (element && element.nodeType != 9 && !(innerDom = element === this.painterRoot));\n\n    !innerDom && this.trigger('globalout', {\n      event: event\n    });\n  },\n\n  /**\n   * Resize\n   */\n  resize: function (event) {\n    this._hovered = {};\n  },\n\n  /**\n   * Dispatch event\n   * @param {string} eventName\n   * @param {event=} eventArgs\n   */\n  dispatch: function (eventName, eventArgs) {\n    var handler = this[eventName];\n    handler && handler.call(this, eventArgs);\n  },\n\n  /**\n   * Dispose\n   */\n  dispose: function () {\n    this.proxy.dispose();\n    this.storage = this.proxy = this.painter = null;\n  },\n\n  /**\n   * 璁剧疆榛樿鐨刢ursor style\n   * @param {string} [cursorStyle='default'] 渚嬪 crosshair\n   */\n  setCursorStyle: function (cursorStyle) {\n    var proxy = this.proxy;\n    proxy.setCursor && proxy.setCursor(cursorStyle);\n  },\n\n  /**\n   * 浜嬩欢鍒嗗彂浠g悊\n   *\n   * @private\n   * @param {Object} targetInfo {target, topTarget} 鐩爣鍥惧舰鍏冪礌\n   * @param {string} eventName 浜嬩欢鍚嶇О\n   * @param {Object} event 浜嬩欢瀵硅薄\n   */\n  dispatchToElement: function (targetInfo, eventName, event) {\n    targetInfo = targetInfo || {};\n    var el = targetInfo.target;\n\n    if (el && el.silent) {\n      return;\n    }\n\n    var eventHandler = 'on' + eventName;\n    var eventPacket = makeEventPacket(eventName, targetInfo, event);\n\n    while (el) {\n      el[eventHandler] && (eventPacket.cancelBubble = el[eventHandler].call(el, eventPacket));\n      el.trigger(eventName, eventPacket);\n      el = el.parent;\n\n      if (eventPacket.cancelBubble) {\n        break;\n      }\n    }\n\n    if (!eventPacket.cancelBubble) {\n      // 鍐掓场鍒伴《绾� zrender 瀵硅薄\n      this.trigger(eventName, eventPacket); // 鍒嗗彂浜嬩欢鍒扮敤鎴疯嚜瀹氫箟灞俓n      // 鐢ㄦ埛鏈夊彲鑳藉湪鍏ㄥ眬 click 浜嬩欢涓� dispose锛屾墍浠ラ渶瑕佸垽鏂笅 painter 鏄惁瀛樺湪\n\n      this.painter && this.painter.eachOtherLayer(function (layer) {\n        if (typeof layer[eventHandler] == 'function') {\n          layer[eventHandler].call(layer, eventPacket);\n        }\n\n        if (layer.trigger) {\n          layer.trigger(eventName, eventPacket);\n        }\n      });\n    }\n  },\n\n  /**\n   * @private\n   * @param {number} x\n   * @param {number} y\n   * @param {module:zrender/graphic/Displayable} exclude\n   * @return {model:zrender/Element}\n   * @method\n   */\n  findHover: function (x, y, exclude) {\n    var list = this.storage.getDisplayList();\n    var out = {\n      x: x,\n      y: y\n    };\n\n    for (var i = list.length - 1; i >= 0; i--) {\n      var hoverCheckResult;\n\n      if (list[i] !== exclude // getDisplayList may include ignored item in VML mode\n      && !list[i].ignore && (hoverCheckResult = isHover(list[i], x, y))) {\n        !out.topTarget && (out.topTarget = list[i]);\n\n        if (hoverCheckResult !== SILENT) {\n          out.target = list[i];\n          break;\n        }\n      }\n    }\n\n    return out;\n  }\n}; // Common handlers\n\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n  Handler.prototype[name] = function (event) {\n    // Find hover again to avoid click event is dispatched manually. Or click is triggered without mouseover\n    var hovered = this.findHover(event.zrX, event.zrY);\n    var hoveredTarget = hovered.target;\n\n    if (name === 'mousedown') {\n      this._downEl = hoveredTarget;\n      this._downPoint = [event.zrX, event.zrY]; // In case click triggered before mouseup\n\n      this._upEl = hoveredTarget;\n    } else if (name === 'mouseup') {\n      this._upEl = hoveredTarget;\n    } else if (name === 'click') {\n      if (this._downEl !== this._upEl // Original click event is triggered on the whole canvas element,\n      // including the case that `mousedown` - `mousemove` - `mouseup`,\n      // which should be filtered, otherwise it will bring trouble to\n      // pan and zoom.\n      || !this._downPoint // Arbitrary value\n      || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n        return;\n      }\n\n      this._downPoint = null;\n    }\n\n    this.dispatchToElement(hovered, name, event);\n  };\n});\n\nfunction isHover(displayable, x, y) {\n  if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n    var el = displayable;\n    var isSilent;\n\n    while (el) {\n      // If clipped by ancestor.\n      // FIXME: If clipPath has neither stroke nor fill,\n      // el.clipPath.contain(x, y) will always return false.\n      if (el.clipPath && !el.clipPath.contain(x, y)) {\n        return false;\n      }\n\n      if (el.silent) {\n        isSilent = true;\n      }\n\n      el = el.parent;\n    }\n\n    return isSilent ? SILENT : true;\n  }\n\n  return false;\n}\n\nutil.mixin(Handler, Eventful);\nutil.mixin(Handler, Draggable);\nvar _default = Handler;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/Handler.js\n// module id = VFhg\n// module chunks = 0","var util = require(\"./core/util\");\n\nvar _config = require(\"./config\");\n\nvar devicePixelRatio = _config.devicePixelRatio;\n\nvar Style = require(\"./graphic/Style\");\n\nvar Pattern = require(\"./graphic/Pattern\");\n\n/**\n * @module zrender/Layer\n * @author pissang(https://www.github.com/pissang)\n */\nfunction returnFalse() {\n  return false;\n}\n/**\n * 鍒涘缓dom\n *\n * @inner\n * @param {string} id dom id 寰呯敤\n * @param {Painter} painter painter instance\n * @param {number} number\n */\n\n\nfunction createDom(id, painter, dpr) {\n  var newDom = util.createCanvas();\n  var width = painter.getWidth();\n  var height = painter.getHeight();\n  var newDomStyle = newDom.style;\n\n  if (newDomStyle) {\n    // In node or some other non-browser environment\n    newDomStyle.position = 'absolute';\n    newDomStyle.left = 0;\n    newDomStyle.top = 0;\n    newDomStyle.width = width + 'px';\n    newDomStyle.height = height + 'px';\n    newDom.setAttribute('data-zr-dom-id', id);\n  }\n\n  newDom.width = width * dpr;\n  newDom.height = height * dpr;\n  return newDom;\n}\n/**\n * @alias module:zrender/Layer\n * @constructor\n * @extends module:zrender/mixin/Transformable\n * @param {string} id\n * @param {module:zrender/Painter} painter\n * @param {number} [dpr]\n */\n\n\nvar Layer = function (id, painter, dpr) {\n  var dom;\n  dpr = dpr || devicePixelRatio;\n\n  if (typeof id === 'string') {\n    dom = createDom(id, painter, dpr);\n  } // Not using isDom because in node it will return false\n  else if (util.isObject(id)) {\n      dom = id;\n      id = dom.id;\n    }\n\n  this.id = id;\n  this.dom = dom;\n  var domStyle = dom.style;\n\n  if (domStyle) {\n    // Not in node\n    dom.onselectstart = returnFalse; // 閬垮厤椤甸潰閫変腑鐨勫按灏琝n\n    domStyle['-webkit-user-select'] = 'none';\n    domStyle['user-select'] = 'none';\n    domStyle['-webkit-touch-callout'] = 'none';\n    domStyle['-webkit-tap-highlight-color'] = 'rgba(0,0,0,0)';\n    domStyle['padding'] = 0;\n    domStyle['margin'] = 0;\n    domStyle['border-width'] = 0;\n  }\n\n  this.domBack = null;\n  this.ctxBack = null;\n  this.painter = painter;\n  this.config = null; // Configs\n\n  /**\n   * 姣忔娓呯┖鐢诲竷鐨勯鑹瞈n   * @type {string}\n   * @default 0\n   */\n\n  this.clearColor = 0;\n  /**\n   * 鏄惁寮�鍚姩鎬佹ā绯奬n   * @type {boolean}\n   * @default false\n   */\n\n  this.motionBlur = false;\n  /**\n   * 鍦ㄥ紑鍚姩鎬佹ā绯婄殑鏃跺�欎娇鐢紝涓庝笂涓�甯ф贩鍚堢殑alpha鍊硷紝鍊艰秺澶у熬杩硅秺鏄庢樉\n   * @type {number}\n   * @default 0.7\n   */\n\n  this.lastFrameAlpha = 0.7;\n  /**\n   * Layer dpr\n   * @type {number}\n   */\n\n  this.dpr = dpr;\n};\n\nLayer.prototype = {\n  constructor: Layer,\n  __dirty: true,\n  __used: false,\n  __drawIndex: 0,\n  __startIndex: 0,\n  __endIndex: 0,\n  incremental: false,\n  getElementCount: function () {\n    return this.__endIndex - this.__startIndex;\n  },\n  initContext: function () {\n    this.ctx = this.dom.getContext('2d');\n    this.ctx.dpr = this.dpr;\n  },\n  createBackBuffer: function () {\n    var dpr = this.dpr;\n    this.domBack = createDom('back-' + this.id, this.painter, dpr);\n    this.ctxBack = this.domBack.getContext('2d');\n\n    if (dpr != 1) {\n      this.ctxBack.scale(dpr, dpr);\n    }\n  },\n\n  /**\n   * @param  {number} width\n   * @param  {number} height\n   */\n  resize: function (width, height) {\n    var dpr = this.dpr;\n    var dom = this.dom;\n    var domStyle = dom.style;\n    var domBack = this.domBack;\n\n    if (domStyle) {\n      domStyle.width = width + 'px';\n      domStyle.height = height + 'px';\n    }\n\n    dom.width = width * dpr;\n    dom.height = height * dpr;\n\n    if (domBack) {\n      domBack.width = width * dpr;\n      domBack.height = height * dpr;\n\n      if (dpr != 1) {\n        this.ctxBack.scale(dpr, dpr);\n      }\n    }\n  },\n\n  /**\n   * 娓呯┖璇ュ眰鐢诲竷\n   * @param {boolean} [clearAll]=false Clear all with out motion blur\n   * @param {Color} [clearColor]\n   */\n  clear: function (clearAll, clearColor) {\n    var dom = this.dom;\n    var ctx = this.ctx;\n    var width = dom.width;\n    var height = dom.height;\n    var clearColor = clearColor || this.clearColor;\n    var haveMotionBLur = this.motionBlur && !clearAll;\n    var lastFrameAlpha = this.lastFrameAlpha;\n    var dpr = this.dpr;\n\n    if (haveMotionBLur) {\n      if (!this.domBack) {\n        this.createBackBuffer();\n      }\n\n      this.ctxBack.globalCompositeOperation = 'copy';\n      this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n    }\n\n    ctx.clearRect(0, 0, width, height);\n\n    if (clearColor && clearColor !== 'transparent') {\n      var clearColorGradientOrPattern; // Gradient\n\n      if (clearColor.colorStops) {\n        // Cache canvas gradient\n        clearColorGradientOrPattern = clearColor.__canvasGradient || Style.getGradient(ctx, clearColor, {\n          x: 0,\n          y: 0,\n          width: width,\n          height: height\n        });\n        clearColor.__canvasGradient = clearColorGradientOrPattern;\n      } // Pattern\n      else if (clearColor.image) {\n          clearColorGradientOrPattern = Pattern.prototype.getCanvasPattern.call(clearColor, ctx);\n        }\n\n      ctx.save();\n      ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n      ctx.fillRect(0, 0, width, height);\n      ctx.restore();\n    }\n\n    if (haveMotionBLur) {\n      var domBack = this.domBack;\n      ctx.save();\n      ctx.globalAlpha = lastFrameAlpha;\n      ctx.drawImage(domBack, 0, 0, width, height);\n      ctx.restore();\n    }\n  }\n};\nvar _default = Layer;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/Layer.js\n// module id = VHmC\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar numberUtil = require(\"../../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar MONTH_TEXT = {\n  EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n  CN: ['涓�鏈�', '浜屾湀', '涓夋湀', '鍥涙湀', '浜旀湀', '鍏湀', '涓冩湀', '鍏湀', '涔濇湀', '鍗佹湀', '鍗佷竴鏈�', '鍗佷簩鏈�']\n};\nvar WEEK_TEXT = {\n  EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n  CN: ['鏃�', '涓�', '浜�', '涓�', '鍥�', '浜�', '鍏�']\n};\n\nvar _default = echarts.extendComponentView({\n  type: 'calendar',\n\n  /**\n   * top/left line points\n   *  @private\n   */\n  _tlpoints: null,\n\n  /**\n   * bottom/right line points\n   *  @private\n   */\n  _blpoints: null,\n\n  /**\n   * first day of month\n   *  @private\n   */\n  _firstDayOfMonth: null,\n\n  /**\n   * first day point of month\n   *  @private\n   */\n  _firstDayPoints: null,\n  render: function (calendarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n    var coordSys = calendarModel.coordinateSystem; // range info\n\n    var rangeData = coordSys.getRangeInfo();\n    var orient = coordSys.getOrient();\n\n    this._renderDayRect(calendarModel, rangeData, group); // _renderLines must be called prior to following function\n\n\n    this._renderLines(calendarModel, rangeData, orient, group);\n\n    this._renderYearText(calendarModel, rangeData, orient, group);\n\n    this._renderMonthText(calendarModel, orient, group);\n\n    this._renderWeekText(calendarModel, rangeData, orient, group);\n  },\n  // render day rect\n  _renderDayRect: function (calendarModel, rangeData, group) {\n    var coordSys = calendarModel.coordinateSystem;\n    var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n    var sw = coordSys.getCellWidth();\n    var sh = coordSys.getCellHeight();\n\n    for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n      var point = coordSys.dataToRect([i], false).tl; // every rect\n\n      var rect = new graphic.Rect({\n        shape: {\n          x: point[0],\n          y: point[1],\n          width: sw,\n          height: sh\n        },\n        cursor: 'default',\n        style: itemRectStyleModel\n      });\n      group.add(rect);\n    }\n  },\n  // render separate line\n  _renderLines: function (calendarModel, rangeData, orient, group) {\n    var self = this;\n    var coordSys = calendarModel.coordinateSystem;\n    var lineStyleModel = calendarModel.getModel('splitLine.lineStyle').getLineStyle();\n    var show = calendarModel.get('splitLine.show');\n    var lineWidth = lineStyleModel.lineWidth;\n    this._tlpoints = [];\n    this._blpoints = [];\n    this._firstDayOfMonth = [];\n    this._firstDayPoints = [];\n    var firstDay = rangeData.start;\n\n    for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n      addPoints(firstDay.formatedDate);\n\n      if (i === 0) {\n        firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n      }\n\n      var date = firstDay.date;\n      date.setMonth(date.getMonth() + 1);\n      firstDay = coordSys.getDateInfo(date);\n    }\n\n    addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n    function addPoints(date) {\n      self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n      self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n      var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n      self._tlpoints.push(points[0]);\n\n      self._blpoints.push(points[points.length - 1]);\n\n      show && self._drawSplitline(points, lineStyleModel, group);\n    } // render top/left line\n\n\n    show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group); // render bottom/right line\n\n    show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n  },\n  // get points at both ends\n  _getEdgesPoints: function (points, lineWidth, orient) {\n    var rs = [points[0].slice(), points[points.length - 1].slice()];\n    var idx = orient === 'horizontal' ? 0 : 1; // both ends of the line are extend half lineWidth\n\n    rs[0][idx] = rs[0][idx] - lineWidth / 2;\n    rs[1][idx] = rs[1][idx] + lineWidth / 2;\n    return rs;\n  },\n  // render split line\n  _drawSplitline: function (points, lineStyleModel, group) {\n    var poyline = new graphic.Polyline({\n      z2: 20,\n      shape: {\n        points: points\n      },\n      style: lineStyleModel\n    });\n    group.add(poyline);\n  },\n  // render month line of one week points\n  _getLinePointsOfOneWeek: function (calendarModel, date, orient) {\n    var coordSys = calendarModel.coordinateSystem;\n    date = coordSys.getDateInfo(date);\n    var points = [];\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(date.time, i);\n      var point = coordSys.dataToRect([tmpD.time], false);\n      points[2 * tmpD.day] = point.tl;\n      points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n    }\n\n    return points;\n  },\n  _formatterLabel: function (formatter, params) {\n    if (typeof formatter === 'string' && formatter) {\n      return formatUtil.formatTplSimple(formatter, params);\n    }\n\n    if (typeof formatter === 'function') {\n      return formatter(params);\n    }\n\n    return params.nameMap;\n  },\n  _yearTextPositionControl: function (textEl, point, orient, position, margin) {\n    point = point.slice();\n    var aligns = ['center', 'bottom'];\n\n    if (position === 'bottom') {\n      point[1] += margin;\n      aligns = ['center', 'top'];\n    } else if (position === 'left') {\n      point[0] -= margin;\n    } else if (position === 'right') {\n      point[0] += margin;\n      aligns = ['center', 'top'];\n    } else {\n      // top\n      point[1] -= margin;\n    }\n\n    var rotate = 0;\n\n    if (position === 'left' || position === 'right') {\n      rotate = Math.PI / 2;\n    }\n\n    return {\n      rotation: rotate,\n      position: point,\n      style: {\n        textAlign: aligns[0],\n        textVerticalAlign: aligns[1]\n      }\n    };\n  },\n  // render year\n  _renderYearText: function (calendarModel, rangeData, orient, group) {\n    var yearLabel = calendarModel.getModel('yearLabel');\n\n    if (!yearLabel.get('show')) {\n      return;\n    }\n\n    var margin = yearLabel.get('margin');\n    var pos = yearLabel.get('position');\n\n    if (!pos) {\n      pos = orient !== 'horizontal' ? 'top' : 'left';\n    }\n\n    var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n    var xc = (points[0][0] + points[1][0]) / 2;\n    var yc = (points[0][1] + points[1][1]) / 2;\n    var idx = orient === 'horizontal' ? 0 : 1;\n    var posPoints = {\n      top: [xc, points[idx][1]],\n      bottom: [xc, points[1 - idx][1]],\n      left: [points[1 - idx][0], yc],\n      right: [points[idx][0], yc]\n    };\n    var name = rangeData.start.y;\n\n    if (+rangeData.end.y > +rangeData.start.y) {\n      name = name + '-' + rangeData.end.y;\n    }\n\n    var formatter = yearLabel.get('formatter');\n    var params = {\n      start: rangeData.start.y,\n      end: rangeData.end.y,\n      nameMap: name\n    };\n\n    var content = this._formatterLabel(formatter, params);\n\n    var yearText = new graphic.Text({\n      z2: 30\n    });\n    graphic.setTextStyle(yearText.style, yearLabel, {\n      text: content\n    }), yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n    group.add(yearText);\n  },\n  _monthTextPositionControl: function (point, isCenter, orient, position, margin) {\n    var align = 'left';\n    var vAlign = 'top';\n    var x = point[0];\n    var y = point[1];\n\n    if (orient === 'horizontal') {\n      y = y + margin;\n\n      if (isCenter) {\n        align = 'center';\n      }\n\n      if (position === 'start') {\n        vAlign = 'bottom';\n      }\n    } else {\n      x = x + margin;\n\n      if (isCenter) {\n        vAlign = 'middle';\n      }\n\n      if (position === 'start') {\n        align = 'right';\n      }\n    }\n\n    return {\n      x: x,\n      y: y,\n      textAlign: align,\n      textVerticalAlign: vAlign\n    };\n  },\n  // render month and year text\n  _renderMonthText: function (calendarModel, orient, group) {\n    var monthLabel = calendarModel.getModel('monthLabel');\n\n    if (!monthLabel.get('show')) {\n      return;\n    }\n\n    var nameMap = monthLabel.get('nameMap');\n    var margin = monthLabel.get('margin');\n    var pos = monthLabel.get('position');\n    var align = monthLabel.get('align');\n    var termPoints = [this._tlpoints, this._blpoints];\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var idx = pos === 'start' ? 0 : 1;\n    var axis = orient === 'horizontal' ? 0 : 1;\n    margin = pos === 'start' ? -margin : margin;\n    var isCenter = align === 'center';\n\n    for (var i = 0; i < termPoints[idx].length - 1; i++) {\n      var tmp = termPoints[idx][i].slice();\n      var firstDay = this._firstDayOfMonth[i];\n\n      if (isCenter) {\n        var firstDayPoints = this._firstDayPoints[i];\n        tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n      }\n\n      var formatter = monthLabel.get('formatter');\n      var name = nameMap[+firstDay.m - 1];\n      var params = {\n        yyyy: firstDay.y,\n        yy: (firstDay.y + '').slice(2),\n        MM: firstDay.m,\n        M: +firstDay.m,\n        nameMap: name\n      };\n\n      var content = this._formatterLabel(formatter, params);\n\n      var monthText = new graphic.Text({\n        z2: 30\n      });\n      zrUtil.extend(graphic.setTextStyle(monthText.style, monthLabel, {\n        text: content\n      }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin));\n      group.add(monthText);\n    }\n  },\n  _weekTextPositionControl: function (point, orient, position, margin, cellSize) {\n    var align = 'center';\n    var vAlign = 'middle';\n    var x = point[0];\n    var y = point[1];\n    var isStart = position === 'start';\n\n    if (orient === 'horizontal') {\n      x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n      align = isStart ? 'right' : 'left';\n    } else {\n      y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n      vAlign = isStart ? 'bottom' : 'top';\n    }\n\n    return {\n      x: x,\n      y: y,\n      textAlign: align,\n      textVerticalAlign: vAlign\n    };\n  },\n  // render weeks\n  _renderWeekText: function (calendarModel, rangeData, orient, group) {\n    var dayLabel = calendarModel.getModel('dayLabel');\n\n    if (!dayLabel.get('show')) {\n      return;\n    }\n\n    var coordSys = calendarModel.coordinateSystem;\n    var pos = dayLabel.get('position');\n    var nameMap = dayLabel.get('nameMap');\n    var margin = dayLabel.get('margin');\n    var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n    var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n    margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n    if (pos === 'start') {\n      start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n      margin = -margin;\n    }\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(start, i);\n      var point = coordSys.dataToRect([tmpD.time], false).center;\n      var day = i;\n      day = Math.abs((i + firstDayOfWeek) % 7);\n      var weekText = new graphic.Text({\n        z2: 30\n      });\n      zrUtil.extend(graphic.setTextStyle(weekText.style, dayLabel, {\n        text: nameMap[day]\n      }), this._weekTextPositionControl(point, orient, pos, margin, cellSize));\n      group.add(weekText);\n    }\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/calendar/CalendarView.js\n// module id = VIFr\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map([0, 1], function (dimIdx) {\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var p1 = [];\n    var p2 = [];\n    p1[dimIdx] = val - halfSize;\n    p2[dimIdx] = val + halfSize;\n    p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n    return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n  }, this);\n}\n\nfunction _default(coordSys) {\n  var rect = coordSys.getBoundingRect();\n  return {\n    coordSys: {\n      type: 'geo',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (data) {\n        // do not provide \"out\" and noRoam param,\n        // Compatible with this usage:\n        // echarts.util.map(item.points, api.coord)\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/prepareCustom.js\n// module id = VKUG\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\nvar featureManager = require(\"./featureManager\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Model = require(\"../../model/Model\");\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\nvar listComponentHelper = require(\"../helper/listComponent\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n  type: 'toolbox',\n  render: function (toolboxModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n\n    if (!toolboxModel.get('show')) {\n      return;\n    }\n\n    var itemSize = +toolboxModel.get('itemSize');\n    var featureOpts = toolboxModel.get('feature') || {};\n    var features = this._features || (this._features = {});\n    var featureNames = [];\n    zrUtil.each(featureOpts, function (opt, name) {\n      featureNames.push(name);\n    });\n    new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute(); // Keep for diff.\n\n    this._featureNames = featureNames;\n\n    function processFeature(newIndex, oldIndex) {\n      var featureName = featureNames[newIndex];\n      var oldName = featureNames[oldIndex];\n      var featureOpt = featureOpts[featureName];\n      var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n      var feature;\n\n      if (featureName && !oldName) {\n        // Create\n        if (isUserFeatureName(featureName)) {\n          feature = {\n            model: featureModel,\n            onclick: featureModel.option.onclick,\n            featureName: featureName\n          };\n        } else {\n          var Feature = featureManager.get(featureName);\n\n          if (!Feature) {\n            return;\n          }\n\n          feature = new Feature(featureModel, ecModel, api);\n        }\n\n        features[featureName] = feature;\n      } else {\n        feature = features[oldName]; // If feature does not exsit.\n\n        if (!feature) {\n          return;\n        }\n\n        feature.model = featureModel;\n        feature.ecModel = ecModel;\n        feature.api = api;\n      }\n\n      if (!featureName && oldName) {\n        feature.dispose && feature.dispose(ecModel, api);\n        return;\n      }\n\n      if (!featureModel.get('show') || feature.unusable) {\n        feature.remove && feature.remove(ecModel, api);\n        return;\n      }\n\n      createIconPaths(featureModel, feature, featureName);\n\n      featureModel.setIconStatus = function (iconName, status) {\n        var option = this.option;\n        var iconPaths = this.iconPaths;\n        option.iconStatus = option.iconStatus || {};\n        option.iconStatus[iconName] = status; // FIXME\n\n        iconPaths[iconName] && iconPaths[iconName].trigger(status);\n      };\n\n      if (feature.render) {\n        feature.render(featureModel, ecModel, api, payload);\n      }\n    }\n\n    function createIconPaths(featureModel, feature, featureName) {\n      var iconStyleModel = featureModel.getModel('iconStyle');\n      var iconStyleEmphasisModel = featureModel.getModel('emphasis.iconStyle'); // If one feature has mutiple icon. they are orginaized as\n      // {\n      //     icon: {\n      //         foo: '',\n      //         bar: ''\n      //     },\n      //     title: {\n      //         foo: '',\n      //         bar: ''\n      //     }\n      // }\n\n      var icons = feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n      var titles = featureModel.get('title') || {};\n\n      if (typeof icons === 'string') {\n        var icon = icons;\n        var title = titles;\n        icons = {};\n        titles = {};\n        icons[featureName] = icon;\n        titles[featureName] = title;\n      }\n\n      var iconPaths = featureModel.iconPaths = {};\n      zrUtil.each(icons, function (iconStr, iconName) {\n        var path = graphic.createIcon(iconStr, {}, {\n          x: -itemSize / 2,\n          y: -itemSize / 2,\n          width: itemSize,\n          height: itemSize\n        });\n        path.setStyle(iconStyleModel.getItemStyle());\n        path.hoverStyle = iconStyleEmphasisModel.getItemStyle();\n        graphic.setHoverStyle(path);\n\n        if (toolboxModel.get('showTitle')) {\n          path.__title = titles[iconName];\n          path.on('mouseover', function () {\n            // Should not reuse above hoverStyle, which might be modified.\n            var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n            path.setStyle({\n              text: titles[iconName],\n              textPosition: hoverStyle.textPosition || 'bottom',\n              textFill: hoverStyle.fill || hoverStyle.stroke || '#000',\n              textAlign: hoverStyle.textAlign || 'center'\n            });\n          }).on('mouseout', function () {\n            path.setStyle({\n              textFill: null\n            });\n          });\n        }\n\n        path.trigger(featureModel.get('iconStatus.' + iconName) || 'normal');\n        group.add(path);\n        path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n        iconPaths[iconName] = path;\n      });\n    }\n\n    listComponentHelper.layout(group, toolboxModel, api); // Render background after group is layout\n    // FIXME\n\n    group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel)); // Adjust icon title positions to avoid them out of screen\n\n    group.eachChild(function (icon) {\n      var titleText = icon.__title;\n      var hoverStyle = icon.hoverStyle; // May be background element\n\n      if (hoverStyle && titleText) {\n        var rect = textContain.getBoundingRect(titleText, textContain.makeFont(hoverStyle));\n        var offsetX = icon.position[0] + group.position[0];\n        var offsetY = icon.position[1] + group.position[1] + itemSize;\n        var needPutOnTop = false;\n\n        if (offsetY + rect.height > api.getHeight()) {\n          hoverStyle.textPosition = 'top';\n          needPutOnTop = true;\n        }\n\n        var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n        if (offsetX + rect.width / 2 > api.getWidth()) {\n          hoverStyle.textPosition = ['100%', topOffset];\n          hoverStyle.textAlign = 'right';\n        } else if (offsetX - rect.width / 2 < 0) {\n          hoverStyle.textPosition = [0, topOffset];\n          hoverStyle.textAlign = 'left';\n        }\n      }\n    });\n  },\n  updateView: function (toolboxModel, ecModel, api, payload) {\n    zrUtil.each(this._features, function (feature) {\n      feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n    });\n  },\n  // updateLayout: function (toolboxModel, ecModel, api, payload) {\n  //     zrUtil.each(this._features, function (feature) {\n  //         feature.updateLayout && feature.updateLayout(feature.model, ecModel, api, payload);\n  //     });\n  // },\n  remove: function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature.remove && feature.remove(ecModel, api);\n    });\n    this.group.removeAll();\n  },\n  dispose: function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature.dispose && feature.dispose(ecModel, api);\n    });\n  }\n});\n\nfunction isUserFeatureName(featureName) {\n  return featureName.indexOf('my') === 0;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/ToolboxView.js\n// module id = VMxf\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./visualMap/preprocessor\");\n\nrequire(\"./visualMap/typeDefaulter\");\n\nrequire(\"./visualMap/visualEncoding\");\n\nrequire(\"./visualMap/ContinuousModel\");\n\nrequire(\"./visualMap/ContinuousView\");\n\nrequire(\"./visualMap/visualMapAction\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * DataZoom component entry\n */\necharts.registerPreprocessor(preprocessor);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMapContinuous.js\n// module id = Ve6w\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_shared-key.js\n// module id = VjRt\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(option) {\n  // Save geoCoord\n  var mapSeries = [];\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'map') {\n      mapSeries.push(seriesOpt);\n      seriesOpt.map = seriesOpt.map || seriesOpt.mapType; // Put x, y, width, height, x2, y2 in the top level\n\n      zrUtil.defaults(seriesOpt, seriesOpt.mapLocation);\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/map/backwardCompat.js\n// module id = VkYz\n// module chunks = 0","/**\n * Copyright 2004-present Facebook. All Rights Reserved.\n *\n * @providesModule UserAgent_DEPRECATED\n */\n\n/**\n *  Provides entirely client-side User Agent and OS detection. You should prefer\n *  the non-deprecated UserAgent module when possible, which exposes our\n *  authoritative server-side PHP-based detection to the client.\n *\n *  Usage is straightforward:\n *\n *    if (UserAgent_DEPRECATED.ie()) {\n *      //  IE\n *    }\n *\n *  You can also do version checks:\n *\n *    if (UserAgent_DEPRECATED.ie() >= 7) {\n *      //  IE7 or better\n *    }\n *\n *  The browser functions will return NaN if the browser does not match, so\n *  you can also do version compares the other way:\n *\n *    if (UserAgent_DEPRECATED.ie() < 7) {\n *      //  IE6 or worse\n *    }\n *\n *  Note that the version is a float and may include a minor version number,\n *  so you should always use range operators to perform comparisons, not\n *  strict equality.\n *\n *  **Note:** You should **strongly** prefer capability detection to browser\n *  version detection where it's reasonable:\n *\n *    http://www.quirksmode.org/js/support.html\n *\n *  Further, we have a large number of mature wrapper functions and classes\n *  which abstract away many browser irregularities. Check the documentation,\n *  grep for things, or ask on javascript@lists.facebook.com before writing yet\n *  another copy of \"event || window.event\".\n *\n */\n\nvar _populated = false;\n\n// Browsers\nvar _ie, _firefox, _opera, _webkit, _chrome;\n\n// Actual IE browser for compatibility mode\nvar _ie_real_version;\n\n// Platforms\nvar _osx, _windows, _linux, _android;\n\n// Architectures\nvar _win64;\n\n// Devices\nvar _iphone, _ipad, _native;\n\nvar _mobile;\n\nfunction _populate() {\n  if (_populated) {\n    return;\n  }\n\n  _populated = true;\n\n  // To work around buggy JS libraries that can't handle multi-digit\n  // version numbers, Opera 10's user agent string claims it's Opera\n  // 9, then later includes a Version/X.Y field:\n  //\n  // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n  var uas = navigator.userAgent;\n  var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n  var os    = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n\n  _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n  _ipad = /\\b(iP[ao]d)/.exec(uas);\n  _android = /Android/i.exec(uas);\n  _native = /FBAN\\/\\w+;/i.exec(uas);\n  _mobile = /Mobile/i.exec(uas);\n\n  // Note that the IE team blog would have you believe you should be checking\n  // for 'Win64; x64'.  But MSDN then reveals that you can actually be coming\n  // from either x64 or ia64;  so ultimately, you should just check for Win64\n  // as in indicator of whether you're in 64-bit IE.  32-bit IE on 64-bit\n  // Windows will send 'WOW64' instead.\n  _win64 = !!(/Win64/.exec(uas));\n\n  if (agent) {\n    _ie = agent[1] ? parseFloat(agent[1]) : (\n          agent[5] ? parseFloat(agent[5]) : NaN);\n    // IE compatibility mode\n    if (_ie && document && document.documentMode) {\n      _ie = document.documentMode;\n    }\n    // grab the \"true\" ie version from the trident token if available\n    var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n    _ie_real_version = trident ? parseFloat(trident[1]) + 4 : _ie;\n\n    _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n    _opera   = agent[3] ? parseFloat(agent[3]) : NaN;\n    _webkit  = agent[4] ? parseFloat(agent[4]) : NaN;\n    if (_webkit) {\n      // We do not add the regexp to the above test, because it will always\n      // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n      // the userAgent string.\n      agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n      _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n    } else {\n      _chrome = NaN;\n    }\n  } else {\n    _ie = _firefox = _opera = _chrome = _webkit = NaN;\n  }\n\n  if (os) {\n    if (os[1]) {\n      // Detect OS X version.  If no version number matches, set _osx to true.\n      // Version examples:  10, 10_6_1, 10.7\n      // Parses version number as a float, taking only first two sets of\n      // digits.  If only one set of digits is found, returns just the major\n      // version number.\n      var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n\n      _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n    } else {\n      _osx = false;\n    }\n    _windows = !!os[2];\n    _linux   = !!os[3];\n  } else {\n    _osx = _windows = _linux = false;\n  }\n}\n\nvar UserAgent_DEPRECATED = {\n\n  /**\n   *  Check if the UA is Internet Explorer.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  ie: function() {\n    return _populate() || _ie;\n  },\n\n  /**\n   * Check if we're in Internet Explorer compatibility mode.\n   *\n   * @return bool true if in compatibility mode, false if\n   * not compatibility mode or not ie\n   */\n  ieCompatibilityMode: function() {\n    return _populate() || (_ie_real_version > _ie);\n  },\n\n\n  /**\n   * Whether the browser is 64-bit IE.  Really, this is kind of weak sauce;  we\n   * only need this because Skype can't handle 64-bit IE yet.  We need to remove\n   * this when we don't need it -- tracked by #601957.\n   */\n  ie64: function() {\n    return UserAgent_DEPRECATED.ie() && _win64;\n  },\n\n  /**\n   *  Check if the UA is Firefox.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  firefox: function() {\n    return _populate() || _firefox;\n  },\n\n\n  /**\n   *  Check if the UA is Opera.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  opera: function() {\n    return _populate() || _opera;\n  },\n\n\n  /**\n   *  Check if the UA is WebKit.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  webkit: function() {\n    return _populate() || _webkit;\n  },\n\n  /**\n   *  For Push\n   *  WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n   */\n  safari: function() {\n    return UserAgent_DEPRECATED.webkit();\n  },\n\n  /**\n   *  Check if the UA is a Chrome browser.\n   *\n   *\n   *  @return float|NaN Version number (if match) or NaN.\n   */\n  chrome : function() {\n    return _populate() || _chrome;\n  },\n\n\n  /**\n   *  Check if the user is running Windows.\n   *\n   *  @return bool `true' if the user's OS is Windows.\n   */\n  windows: function() {\n    return _populate() || _windows;\n  },\n\n\n  /**\n   *  Check if the user is running Mac OS X.\n   *\n   *  @return float|bool   Returns a float if a version number is detected,\n   *                       otherwise true/false.\n   */\n  osx: function() {\n    return _populate() || _osx;\n  },\n\n  /**\n   * Check if the user is running Linux.\n   *\n   * @return bool `true' if the user's OS is some flavor of Linux.\n   */\n  linux: function() {\n    return _populate() || _linux;\n  },\n\n  /**\n   * Check if the user is running on an iPhone or iPod platform.\n   *\n   * @return bool `true' if the user is running some flavor of the\n   *    iPhone OS.\n   */\n  iphone: function() {\n    return _populate() || _iphone;\n  },\n\n  mobile: function() {\n    return _populate() || (_iphone || _ipad || _android || _mobile);\n  },\n\n  nativeApp: function() {\n    // webviews inside of the native apps\n    return _populate() || _native;\n  },\n\n  android: function() {\n    return _populate() || _android;\n  },\n\n  ipad: function() {\n    return _populate() || _ipad;\n  }\n};\n\nmodule.exports = UserAgent_DEPRECATED;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_normalize-wheel@1.0.1@normalize-wheel/src/UserAgent_DEPRECATED.js\n// module id = Vkqu\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar axisModelCreator = require(\"../axisModelCreator\");\n\nvar axisModelCommonMixin = require(\"../axisModelCommonMixin\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisModel = ComponentModel.extend({\n  type: 'singleAxis',\n  layoutMode: 'box',\n\n  /**\n   * @type {module:echarts/coord/single/SingleAxis}\n   */\n  axis: null,\n\n  /**\n   * @type {module:echarts/coord/single/Single}\n   */\n  coordinateSystem: null,\n\n  /**\n   * @override\n   */\n  getCoordSysModel: function () {\n    return this;\n  }\n});\nvar defaultOption = {\n  left: '5%',\n  top: '5%',\n  right: '5%',\n  bottom: '5%',\n  type: 'value',\n  position: 'bottom',\n  orient: 'horizontal',\n  axisLine: {\n    show: true,\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    }\n  },\n  // Single coordinate system and single axis is the,\n  // which is used as the parent tooltip model.\n  // same model, so we set default tooltip show as true.\n  tooltip: {\n    show: true\n  },\n  axisTick: {\n    show: true,\n    length: 6,\n    lineStyle: {\n      width: 2\n    }\n  },\n  axisLabel: {\n    show: true,\n    interval: 'auto'\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      type: 'dashed',\n      opacity: 0.2\n    }\n  }\n};\n\nfunction getAxisType(axisName, option) {\n  return option.type || (option.data ? 'category' : 'value');\n}\n\nzrUtil.merge(AxisModel.prototype, axisModelCommonMixin);\naxisModelCreator('single', AxisModel, getAxisType, defaultOption);\nvar _default = AxisModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/single/AxisModel.js\n// module id = Vmnj\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar retrieve = _util.retrieve;\nvar defaults = _util.defaults;\nvar extend = _util.extend;\nvar each = _util.each;\n\nvar formatUtil = require(\"../../util/format\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Model = require(\"../../model/Model\");\n\nvar _number = require(\"../../util/number\");\n\nvar isRadianAroundZero = _number.isRadianAroundZero;\nvar remRadian = _number.remRadian;\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar matrixUtil = require(\"zrender/lib/core/matrix\");\n\nvar _vector = require(\"zrender/lib/core/vector\");\n\nvar v2ApplyTransform = _vector.applyTransform;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI = Math.PI;\n\nfunction makeAxisEventDataBase(axisModel) {\n  var eventData = {\n    componentType: axisModel.mainType\n  };\n  eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n  return eventData;\n}\n/**\n * A final axis is translated and rotated from a \"standard axis\".\n * So opt.position and opt.rotation is required.\n *\n * A standard axis is and axis from [0, 0] to [0, axisExtent[1]],\n * for example: (0, 0) ------------> (0, 50)\n *\n * nameDirection or tickDirection or labelDirection is 1 means tick\n * or label is below the standard axis, whereas is -1 means above\n * the standard axis. labelOffset means offset between label and axis,\n * which is useful when 'onZero', where axisLabel is in the grid and\n * label in outside grid.\n *\n * Tips: like always,\n * positive rotation represents anticlockwise, and negative rotation\n * represents clockwise.\n * The direction of position coordinate is the same as the direction\n * of screen coordinate.\n *\n * Do not need to consider axis 'inverse', which is auto processed by\n * axis extent.\n *\n * @param {module:zrender/container/Group} group\n * @param {Object} axisModel\n * @param {Object} opt Standard axis parameters.\n * @param {Array.<number>} opt.position [x, y]\n * @param {number} opt.rotation by radian\n * @param {number} [opt.nameDirection=1] 1 or -1 Used when nameLocation is 'middle' or 'center'.\n * @param {number} [opt.tickDirection=1] 1 or -1\n * @param {number} [opt.labelDirection=1] 1 or -1\n * @param {number} [opt.labelOffset=0] Usefull when onZero.\n * @param {string} [opt.axisLabelShow] default get from axisModel.\n * @param {string} [opt.axisName] default get from axisModel.\n * @param {number} [opt.axisNameAvailableWidth]\n * @param {number} [opt.labelRotate] by degree, default get from axisModel.\n * @param {number} [opt.strokeContainThreshold] Default label interval when label\n * @param {number} [opt.nameTruncateMaxWidth]\n */\n\n\nvar AxisBuilder = function (axisModel, opt) {\n  /**\n   * @readOnly\n   */\n  this.opt = opt;\n  /**\n   * @readOnly\n   */\n\n  this.axisModel = axisModel; // Default value\n\n  defaults(opt, {\n    labelOffset: 0,\n    nameDirection: 1,\n    tickDirection: 1,\n    labelDirection: 1,\n    silent: true\n  });\n  /**\n   * @readOnly\n   */\n\n  this.group = new graphic.Group(); // FIXME Not use a seperate text group?\n\n  var dumbGroup = new graphic.Group({\n    position: opt.position.slice(),\n    rotation: opt.rotation\n  }); // this.group.add(dumbGroup);\n  // this._dumbGroup = dumbGroup;\n\n  dumbGroup.updateTransform();\n  this._transform = dumbGroup.transform;\n  this._dumbGroup = dumbGroup;\n};\n\nAxisBuilder.prototype = {\n  constructor: AxisBuilder,\n  hasBuilder: function (name) {\n    return !!builders[name];\n  },\n  add: function (name) {\n    builders[name].call(this);\n  },\n  getGroup: function () {\n    return this.group;\n  }\n};\nvar builders = {\n  /**\n   * @private\n   */\n  axisLine: function () {\n    var opt = this.opt;\n    var axisModel = this.axisModel;\n\n    if (!axisModel.get('axisLine.show')) {\n      return;\n    }\n\n    var extent = this.axisModel.axis.getExtent();\n    var matrix = this._transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel('axisLine.lineStyle').getLineStyle());\n    this.group.add(new graphic.Line(graphic.subPixelOptimizeLine({\n      // Id for animation\n      anid: 'line',\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    })));\n    var arrows = axisModel.get('axisLine.symbol');\n    var arrowSize = axisModel.get('axisLine.symbolSize');\n    var arrowOffset = axisModel.get('axisLine.symbolOffset') || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        // Use the same arrow for start and end point\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        // Use the same size for width and height\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth = arrowSize[0];\n      var symbolHeight = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth / 2, -symbolHeight / 2, symbolWidth, symbolHeight, lineStyle.stroke, true); // Calculate arrow position with offset\n\n          var r = point.r + point.offset;\n          var pos = [pt1[0] + r * Math.cos(opt.rotation), pt1[1] - r * Math.sin(opt.rotation)];\n          symbol.attr({\n            rotation: point.rotate,\n            position: pos,\n            silent: true\n          });\n          this.group.add(symbol);\n        }\n      }, this);\n    }\n  },\n\n  /**\n   * @private\n   */\n  axisTickLabel: function () {\n    var axisModel = this.axisModel;\n    var opt = this.opt;\n    var tickEls = buildAxisTick(this, axisModel, opt);\n    var labelEls = buildAxisLabel(this, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, tickEls);\n  },\n\n  /**\n   * @private\n   */\n  axisName: function () {\n    var opt = this.opt;\n    var axisModel = this.axisModel;\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = this.axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, // 'middle'\n    // Reuse labelOffset.\n    isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180; // To radian.\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, // Adapt to axis.\n      nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth); // FIXME\n    // truncate rich text? (consider performance)\n\n    var truncatedText = ellipsis != null && maxWidth != null ? formatUtil.truncateText(name, maxWidth, textFont, ellipsis, {\n      minChar: 2,\n      placeholder: truncateOpt.placeholder\n    }) : name;\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      // Id for animation\n      anid: 'name',\n      __fullText: name,\n      __truncatedText: truncatedText,\n      position: pos,\n      rotation: labelLayout.rotation,\n      silent: isSilent(axisModel),\n      z2: 1,\n      tooltip: tooltipOpt && tooltipOpt.show ? extend({\n        content: name,\n        formatter: function () {\n          return name;\n        },\n        formatterParams: formatterParams\n      }, tooltipOpt) : null\n    });\n    graphic.setTextStyle(textEl.style, textStyleModel, {\n      text: truncatedText,\n      textFont: textFont,\n      textFill: textStyleModel.getTextColor() || axisModel.get('axisLine.lineStyle.color'),\n      textAlign: labelLayout.textAlign,\n      textVerticalAlign: labelLayout.textVerticalAlign\n    });\n\n    if (axisModel.get('triggerEvent')) {\n      textEl.eventData = makeAxisEventDataBase(axisModel);\n      textEl.eventData.targetType = 'axisName';\n      textEl.eventData.name = name;\n    } // FIXME\n\n\n    this._dumbGroup.add(textEl);\n\n    textEl.updateTransform();\n    this.group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n/**\n * @public\n * @static\n * @param {Object} opt\n * @param {number} axisRotation in radian\n * @param {number} textRotation in radian\n * @param {number} direction\n * @return {Object} {\n *  rotation, // according to axis\n *  textAlign,\n *  textVerticalAlign\n * }\n */\n\nvar innerTextLayout = AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n  var rotationDiff = remRadian(textRotation - axisRotation);\n  var textAlign;\n  var textVerticalAlign;\n\n  if (isRadianAroundZero(rotationDiff)) {\n    // Label is parallel with axis line.\n    textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI)) {\n    // Label is inverse parallel with axis line.\n    textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff > 0 && rotationDiff < PI) {\n      textAlign = direction > 0 ? 'right' : 'left';\n    } else {\n      textAlign = direction > 0 ? 'left' : 'right';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n};\n\nfunction endTextLayout(opt, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - opt.rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction isSilent(axisModel) {\n  var tooltipOpt = axisModel.get('tooltip');\n  return axisModel.get('silent') // Consider mouse cursor, add these restrictions.\n  || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  // If min or max are user set, we need to check\n  // If the tick on min(max) are overlap on their neighbour tick\n  // If they are overlapped, we need to hide the min(max) tick label\n  var showMinLabel = axisModel.get('axisLabel.showMinLabel');\n  var showMaxLabel = axisModel.get('axisLabel.showMaxLabel'); // FIXME\n  // Have not consider onBand yet, where tick els is more than label els.\n\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next, labelLayout) {\n  // current and next has the same rotation.\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  } // When checking intersect of two rotated labels, we use mRotationBack\n  // to avoid that boundingRect is enlarge when using `boundingRect.applyTransform`.\n\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction buildAxisTick(axisBuilder, axisModel, opt) {\n  var axis = axisModel.axis;\n\n  if (!axisModel.get('axisTick.show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var tickModel = axisModel.getModel('axisTick');\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickLen = tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var pt1 = [];\n  var pt2 = [];\n  var matrix = axisBuilder._transform;\n  var tickEls = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = opt.tickDirection * tickLen;\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    } // Tick line, Not use group transform to have better line draw\n\n\n    var tickEl = new graphic.Line(graphic.subPixelOptimizeLine({\n      // Id for animation\n      anid: 'tick_' + ticksCoords[i].tickValue,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: defaults(lineStyleModel.getLineStyle(), {\n        stroke: axisModel.get('axisLine.lineStyle.color')\n      }),\n      z2: 2,\n      silent: true\n    }));\n    axisBuilder.group.add(tickEl);\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisLabel(axisBuilder, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get('axisLabel.show'));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels(); // Special label rotate.\n\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = isSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue] && rawCategoryData[tickValue].textStyle) {\n      itemLabelModel = new Model(rawCategoryData[tickValue].textStyle, labelModel, axisModel.ecModel);\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get('axisLine.lineStyle.color');\n    var tickCoord = axis.dataToCoord(tickValue);\n    var pos = [tickCoord, opt.labelOffset + opt.labelDirection * labelMargin];\n    var textEl = new graphic.Text({\n      // Id for animation\n      anid: 'label_' + tickValue,\n      position: pos,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10\n    });\n    graphic.setTextStyle(textEl.style, itemLabelModel, {\n      text: formattedLabel,\n      textAlign: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n      textVerticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n      textFill: typeof textColor === 'function' ? textColor( // (1) In category axis with data zoom, tick is not the original\n      // index of axis.data. So tick should not be exposed to user\n      // in category axis.\n      // (2) Compatible with previous version, which always use formatted label as\n      // input. But in interval scale the formatted label is like '223,445', which\n      // maked user repalce ','. So we modify it to return original val but remain\n      // it as 'string' to avoid error in replacing.\n      axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n    }); // Pack data for mouse event\n\n    if (triggerEvent) {\n      textEl.eventData = makeAxisEventDataBase(axisModel);\n      textEl.eventData.targetType = 'axisLabel';\n      textEl.eventData.value = rawLabel;\n    } // FIXME\n\n\n    axisBuilder._dumbGroup.add(textEl);\n\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    axisBuilder.group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nvar _default = AxisBuilder;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis/AxisBuilder.js\n// module id = Vus3\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _dom = require('element-ui/lib/utils/dom');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar nodeList = [];\nvar ctx = '@@clickoutsideContext';\n\nvar startClick = void 0;\nvar seed = 0;\n\n!_vue2.default.prototype.$isServer && (0, _dom.on)(document, 'mousedown', function (e) {\n  return startClick = e;\n});\n\n!_vue2.default.prototype.$isServer && (0, _dom.on)(document, 'mouseup', function (e) {\n  nodeList.forEach(function (node) {\n    return node[ctx].documentHandler(e, startClick);\n  });\n});\n\nfunction createDocumentHandler(el, binding, vnode) {\n  return function () {\n    var mouseup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var mousedown = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    if (!vnode || !vnode.context || !mouseup.target || !mousedown.target || el.contains(mouseup.target) || el.contains(mousedown.target) || el === mouseup.target || vnode.context.popperElm && (vnode.context.popperElm.contains(mouseup.target) || vnode.context.popperElm.contains(mousedown.target))) return;\n\n    if (binding.expression && el[ctx].methodName && vnode.context[el[ctx].methodName]) {\n      vnode.context[el[ctx].methodName]();\n    } else {\n      el[ctx].bindingFn && el[ctx].bindingFn();\n    }\n  };\n}\n\n/**\n * v-clickoutside\n * @desc 鐐瑰嚮鍏冪礌澶栭潰鎵嶄細瑙﹀彂鐨勪簨浠禱n * @example\n * ```vue\n * <div v-element-clickoutside=\"handleClose\">\n * ```\n */\nexports.default = {\n  bind: function bind(el, binding, vnode) {\n    nodeList.push(el);\n    var id = seed++;\n    el[ctx] = {\n      id: id,\n      documentHandler: createDocumentHandler(el, binding, vnode),\n      methodName: binding.expression,\n      bindingFn: binding.value\n    };\n  },\n  update: function update(el, binding, vnode) {\n    el[ctx].documentHandler = createDocumentHandler(el, binding, vnode);\n    el[ctx].methodName = binding.expression;\n    el[ctx].bindingFn = binding.value;\n  },\n  unbind: function unbind(el) {\n    var len = nodeList.length;\n\n    for (var i = 0; i < len; i++) {\n      if (nodeList[i][ctx].id === el[ctx].id) {\n        nodeList.splice(i, 1);\n        break;\n      }\n    }\n    delete el[ctx];\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/clickoutside.js\n// module id = W/HH\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\n\nfunction _default(option) {\n  var visualMap = option && option.visualMap;\n\n  if (!zrUtil.isArray(visualMap)) {\n    visualMap = visualMap ? [visualMap] : [];\n  }\n\n  each(visualMap, function (opt) {\n    if (!opt) {\n      return;\n    } // rename splitList to pieces\n\n\n    if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n      opt.pieces = opt.splitList;\n      delete opt.splitList;\n    }\n\n    var pieces = opt.pieces;\n\n    if (pieces && zrUtil.isArray(pieces)) {\n      each(pieces, function (piece) {\n        if (zrUtil.isObject(piece)) {\n          if (has(piece, 'start') && !has(piece, 'min')) {\n            piece.min = piece.start;\n          }\n\n          if (has(piece, 'end') && !has(piece, 'max')) {\n            piece.max = piece.end;\n          }\n        }\n      });\n    }\n  });\n}\n\nfunction has(obj, name) {\n  return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/preprocessor.js\n// module id = W9LT\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es7.symbol.async-iterator.js\n// module id = WAQe\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar isNumeric = _number.isNumeric;\n\nvar _helper = require(\"./helper\");\n\nvar setLabel = _helper.setLabel;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth']; // index: +isHorizontal\n\nvar LAYOUT_ATTRS = [{\n  xy: 'x',\n  wh: 'width',\n  index: 0,\n  posDesc: ['left', 'right']\n}, {\n  xy: 'y',\n  wh: 'height',\n  index: 1,\n  posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\nvar BarView = echarts.extendChartView({\n  type: 'pictorialBar',\n  render: function (seriesModel, ecModel, api) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = !!baseAxis.isHorizontal();\n    var coordSysRect = cartesian.grid.getRect();\n    var opt = {\n      ecSize: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      seriesModel: seriesModel,\n      coordSys: cartesian,\n      coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n      isHorizontal: isHorizontal,\n      valueDim: LAYOUT_ATTRS[+isHorizontal],\n      categoryDim: LAYOUT_ATTRS[1 - isHorizontal]\n    };\n    data.diff(oldData).add(function (dataIndex) {\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var itemModel = getItemModel(data, dataIndex);\n      var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n      var bar = createBar(data, opt, symbolMeta);\n      data.setItemGraphicEl(dataIndex, bar);\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).update(function (newIndex, oldIndex) {\n      var bar = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(bar);\n        return;\n      }\n\n      var itemModel = getItemModel(data, newIndex);\n      var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n      var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n      if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n        group.remove(bar);\n        data.setItemGraphicEl(newIndex, null);\n        bar = null;\n      }\n\n      if (bar) {\n        updateBar(bar, opt, symbolMeta);\n      } else {\n        bar = createBar(data, opt, symbolMeta, true);\n      }\n\n      data.setItemGraphicEl(newIndex, bar);\n      bar.__pictorialSymbolMeta = symbolMeta; // Add back\n\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).remove(function (dataIndex) {\n      var bar = oldData.getItemGraphicEl(dataIndex);\n      bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n    }).execute();\n    this._data = data;\n    return this.group;\n  },\n  dispose: zrUtil.noop,\n  remove: function (ecModel, api) {\n    var group = this.group;\n    var data = this._data;\n\n    if (ecModel.get('animation')) {\n      if (data) {\n        data.eachItemGraphicEl(function (bar) {\n          removeBar(data, bar.dataIndex, ecModel, bar);\n        });\n      }\n    } else {\n      group.removeAll();\n    }\n  }\n}); // Set or calculate default value about symbol, and calculate layout info.\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n  var layout = data.getItemLayout(dataIndex);\n  var symbolRepeat = itemModel.get('symbolRepeat');\n  var symbolClip = itemModel.get('symbolClip');\n  var symbolPosition = itemModel.get('symbolPosition') || 'start';\n  var symbolRotate = itemModel.get('symbolRotate');\n  var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n  var isAnimationEnabled = itemModel.isAnimationEnabled();\n  var symbolMeta = {\n    dataIndex: dataIndex,\n    layout: layout,\n    itemModel: itemModel,\n    symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n    color: data.getItemVisual(dataIndex, 'color'),\n    symbolClip: symbolClip,\n    symbolRepeat: symbolRepeat,\n    symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n    symbolPatternSize: symbolPatternSize,\n    rotation: rotation,\n    animationModel: isAnimationEnabled ? itemModel : null,\n    hoverAnimation: isAnimationEnabled && itemModel.get('hoverAnimation'),\n    z2: itemModel.getShallow('z', true) || 0\n  };\n  prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n  prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n  prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n  var symbolSize = symbolMeta.symbolSize;\n  var symbolOffset = itemModel.get('symbolOffset');\n\n  if (zrUtil.isArray(symbolOffset)) {\n    symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])];\n  }\n\n  prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n  return symbolMeta;\n} // bar length can be negative.\n\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, output) {\n  var valueDim = opt.valueDim;\n  var symbolBoundingData = itemModel.get('symbolBoundingData');\n  var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n  var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n  var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n  var boundingLength;\n\n  if (zrUtil.isArray(symbolBoundingData)) {\n    var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n    symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n    boundingLength = symbolBoundingExtent[pxSignIdx];\n  } else if (symbolBoundingData != null) {\n    boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n  } else if (symbolRepeat) {\n    boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n  } else {\n    boundingLength = layout[valueDim.wh];\n  }\n\n  output.boundingLength = boundingLength;\n\n  if (symbolRepeat) {\n    output.repeatCutLength = layout[valueDim.wh];\n  }\n\n  output.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n  return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n} // Support ['100%', '100%']\n\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, output) {\n  var valueDim = opt.valueDim;\n  var categoryDim = opt.categoryDim;\n  var categorySize = Math.abs(layout[categoryDim.wh]);\n  var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n\n  if (zrUtil.isArray(symbolSize)) {\n    symbolSize = symbolSize.slice();\n  } else {\n    if (symbolSize == null) {\n      symbolSize = '100%';\n    }\n\n    symbolSize = [symbolSize, symbolSize];\n  } // Note: percentage symbolSize (like '100%') do not consider lineWidth, because it is\n  // to complicated to calculate real percent value if considering scaled lineWidth.\n  // So the actual size will bigger than layout size if lineWidth is bigger than zero,\n  // which can be tolerated in pictorial chart.\n\n\n  symbolSize[categoryDim.index] = parsePercent(symbolSize[categoryDim.index], categorySize);\n  symbolSize[valueDim.index] = parsePercent(symbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n  output.symbolSize = symbolSize; // If x or y is less than zero, show reversed shape.\n\n  var symbolScale = output.symbolScale = [symbolSize[0] / symbolPatternSize, symbolSize[1] / symbolPatternSize]; // Follow convention, 'right' and 'top' is the normal scale.\n\n  symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, output) {\n  // In symbols are drawn with scale, so do not need to care about the case that width\n  // or height are too small. But symbol use strokeNoScale, where acture lineWidth should\n  // be calculated.\n  var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n  if (valueLineWidth) {\n    pathForLineWidth.attr({\n      scale: symbolScale.slice(),\n      rotation: rotation\n    });\n    pathForLineWidth.updateTransform();\n    valueLineWidth /= pathForLineWidth.getLineScale();\n    valueLineWidth *= symbolScale[opt.valueDim.index];\n  }\n\n  output.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, output) {\n  var categoryDim = opt.categoryDim;\n  var valueDim = opt.valueDim;\n  var pxSign = output.pxSign;\n  var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n  var pathLen = unitLength; // Note: rotation will not effect the layout of symbols, because user may\n  // want symbols to rotate on its center, which should not be translated\n  // when rotating.\n\n  if (symbolRepeat) {\n    var absBoundingLength = Math.abs(boundingLength);\n    var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n    var hasEndGap = false;\n\n    if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n      hasEndGap = true;\n      symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n    }\n\n    symbolMargin = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n    var uLenWithMargin = Math.max(unitLength + symbolMargin * 2, 0); // When symbol margin is less than 0, margin at both ends will be subtracted\n    // to ensure that all of the symbols will not be overflow the given area.\n\n    var endFix = hasEndGap ? 0 : symbolMargin * 2; // Both final repeatTimes and final symbolMargin area calculated based on\n    // boundingLength.\n\n    var repeatSpecified = isNumeric(symbolRepeat);\n    var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin); // Adjust calculate margin, to ensure each symbol is displayed\n    // entirely in the given layout area.\n\n    var mDiff = absBoundingLength - repeatTimes * unitLength;\n    symbolMargin = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n    uLenWithMargin = unitLength + symbolMargin * 2;\n    endFix = hasEndGap ? 0 : symbolMargin * 2; // Update repeatTimes when not all symbol will be shown.\n\n    if (!repeatSpecified && symbolRepeat !== 'fixed') {\n      repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n    }\n\n    pathLen = repeatTimes * uLenWithMargin - endFix;\n    output.repeatTimes = repeatTimes;\n    output.symbolMargin = symbolMargin;\n  }\n\n  var sizeFix = pxSign * (pathLen / 2);\n  var pathPosition = output.pathPosition = [];\n  pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n  pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2; // 'center'\n\n  if (symbolOffset) {\n    pathPosition[0] += symbolOffset[0];\n    pathPosition[1] += symbolOffset[1];\n  }\n\n  var bundlePosition = output.bundlePosition = [];\n  bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n  bundlePosition[valueDim.index] = layout[valueDim.xy];\n  var barRectShape = output.barRectShape = zrUtil.extend({}, layout);\n  barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n  barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n  var clipShape = output.clipShape = {}; // Consider that symbol may be overflow layout rect.\n\n  clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n  clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n  clipShape[valueDim.xy] = 0;\n  clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n  var symbolPatternSize = symbolMeta.symbolPatternSize;\n  var path = createSymbol( // Consider texture img, make a big size.\n  symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize, symbolMeta.color);\n  path.attr({\n    culling: true\n  });\n  path.type !== 'image' && path.setStyle({\n    strokeNoScale: true\n  });\n  return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var symbolSize = symbolMeta.symbolSize;\n  var valueLineWidth = symbolMeta.valueLineWidth;\n  var pathPosition = symbolMeta.pathPosition;\n  var valueDim = opt.valueDim;\n  var repeatTimes = symbolMeta.repeatTimes || 0;\n  var index = 0;\n  var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n  eachPath(bar, function (path) {\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n\n    if (index < repeatTimes) {\n      updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n    } else {\n      updateAttr(path, null, {\n        scale: [0, 0]\n      }, symbolMeta, isUpdate, function () {\n        bundle.remove(path);\n      });\n    }\n\n    updateHoverAnimation(path, symbolMeta);\n    index++;\n  });\n\n  for (; index < repeatTimes; index++) {\n    var path = createPath(symbolMeta);\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n    bundle.add(path);\n    var target = makeTarget(index);\n    updateAttr(path, {\n      position: target.position,\n      scale: [0, 0]\n    }, {\n      scale: target.scale,\n      rotation: target.rotation\n    }, symbolMeta, isUpdate); // FIXME\n    // If all emphasis/normal through action.\n\n    path.on('mouseover', onMouseOver).on('mouseout', onMouseOut);\n    updateHoverAnimation(path, symbolMeta);\n  }\n\n  function makeTarget(index) {\n    var position = pathPosition.slice(); // (start && pxSign > 0) || (end && pxSign < 0): i = repeatTimes - index\n    // Otherwise: i = index;\n\n    var pxSign = symbolMeta.pxSign;\n    var i = index;\n\n    if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n      i = repeatTimes - 1 - index;\n    }\n\n    position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n    return {\n      position: position,\n      scale: symbolMeta.symbolScale.slice(),\n      rotation: symbolMeta.rotation\n    };\n  }\n\n  function onMouseOver() {\n    eachPath(bar, function (path) {\n      path.trigger('emphasis');\n    });\n  }\n\n  function onMouseOut() {\n    eachPath(bar, function (path) {\n      path.trigger('normal');\n    });\n  }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var mainPath = bar.__pictorialMainPath;\n\n  if (!mainPath) {\n    mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n    bundle.add(mainPath);\n    updateAttr(mainPath, {\n      position: symbolMeta.pathPosition.slice(),\n      scale: [0, 0],\n      rotation: symbolMeta.rotation\n    }, {\n      scale: symbolMeta.symbolScale.slice()\n    }, symbolMeta, isUpdate);\n    mainPath.on('mouseover', onMouseOver).on('mouseout', onMouseOut);\n  } else {\n    updateAttr(mainPath, null, {\n      position: symbolMeta.pathPosition.slice(),\n      scale: symbolMeta.symbolScale.slice(),\n      rotation: symbolMeta.rotation\n    }, symbolMeta, isUpdate);\n  }\n\n  updateHoverAnimation(mainPath, symbolMeta);\n\n  function onMouseOver() {\n    this.trigger('emphasis');\n  }\n\n  function onMouseOut() {\n    this.trigger('normal');\n  }\n} // bar rect is used for label.\n\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n  var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n  var barRect = bar.__pictorialBarRect;\n\n  if (!barRect) {\n    barRect = bar.__pictorialBarRect = new graphic.Rect({\n      z2: 2,\n      shape: rectShape,\n      silent: true,\n      style: {\n        stroke: 'transparent',\n        fill: 'transparent',\n        lineWidth: 0\n      }\n    });\n    bar.add(barRect);\n  } else {\n    updateAttr(barRect, null, {\n      shape: rectShape\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n  // If not clip, symbol will be remove and rebuilt.\n  if (symbolMeta.symbolClip) {\n    var clipPath = bar.__pictorialClipPath;\n    var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n    var valueDim = opt.valueDim;\n    var animationModel = symbolMeta.animationModel;\n    var dataIndex = symbolMeta.dataIndex;\n\n    if (clipPath) {\n      graphic.updateProps(clipPath, {\n        shape: clipShape\n      }, animationModel, dataIndex);\n    } else {\n      clipShape[valueDim.wh] = 0;\n      clipPath = new graphic.Rect({\n        shape: clipShape\n      });\n\n      bar.__pictorialBundle.setClipPath(clipPath);\n\n      bar.__pictorialClipPath = clipPath;\n      var target = {};\n      target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n      graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n        shape: target\n      }, animationModel, dataIndex);\n    }\n  }\n}\n\nfunction getItemModel(data, dataIndex) {\n  var itemModel = data.getItemModel(dataIndex);\n  itemModel.getAnimationDelayParams = getAnimationDelayParams;\n  itemModel.isAnimationEnabled = isAnimationEnabled;\n  return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n  // The order is the same as the z-order, see `symbolRepeatDiretion`.\n  return {\n    index: path.__pictorialAnimationIndex,\n    count: path.__pictorialRepeatTimes\n  };\n}\n\nfunction isAnimationEnabled() {\n  // `animation` prop can be set on itemModel in pictorial bar chart.\n  return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction updateHoverAnimation(path, symbolMeta) {\n  path.off('emphasis').off('normal');\n  var scale = symbolMeta.symbolScale.slice();\n  symbolMeta.hoverAnimation && path.on('emphasis', function () {\n    this.animateTo({\n      scale: [scale[0] * 1.1, scale[1] * 1.1]\n    }, 400, 'elasticOut');\n  }).on('normal', function () {\n    this.animateTo({\n      scale: scale.slice()\n    }, 400, 'elasticOut');\n  });\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n  // bar is the main element for each data.\n  var bar = new graphic.Group(); // bundle is used for location and clip.\n\n  var bundle = new graphic.Group();\n  bar.add(bundle);\n  bar.__pictorialBundle = bundle;\n  bundle.attr('position', symbolMeta.bundlePosition.slice());\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n  createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n  bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n  bar.__pictorialSymbolMeta = symbolMeta;\n  return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n  var animationModel = symbolMeta.animationModel;\n  var dataIndex = symbolMeta.dataIndex;\n  var bundle = bar.__pictorialBundle;\n  graphic.updateProps(bundle, {\n    position: symbolMeta.bundlePosition.slice()\n  }, animationModel, dataIndex);\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, true);\n  createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n  // Not show text when animating\n  var labelRect = bar.__pictorialBarRect;\n  labelRect && (labelRect.style.text = null);\n  var pathes = [];\n  eachPath(bar, function (path) {\n    pathes.push(path);\n  });\n  bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath); // I do not find proper remove animation for clip yet.\n\n  bar.__pictorialClipPath && (animationModel = null);\n  zrUtil.each(pathes, function (path) {\n    graphic.updateProps(path, {\n      scale: [0, 0]\n    }, animationModel, dataIndex, function () {\n      bar.parent && bar.parent.remove(bar);\n    });\n  });\n  data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n  return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n  // Do not use Group#eachChild, because it do not support remove.\n  zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n    el !== bar.__pictorialBarRect && cb.call(context, el);\n  });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n  immediateAttrs && el.attr(immediateAttrs); // when symbolCip used, only clip path has init animation, otherwise it would be weird effect.\n\n  if (symbolMeta.symbolClip && !isUpdate) {\n    animationAttrs && el.attr(animationAttrs);\n  } else {\n    animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n  }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n  var color = symbolMeta.color;\n  var dataIndex = symbolMeta.dataIndex;\n  var itemModel = symbolMeta.itemModel; // Color must be excluded.\n  // Because symbol provide setColor individually to set fill and stroke\n\n  var normalStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n  var hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n  var cursorStyle = itemModel.getShallow('cursor');\n  eachPath(bar, function (path) {\n    // PENDING setColor should be before setStyle!!!\n    path.setColor(color);\n    path.setStyle(zrUtil.defaults({\n      fill: color,\n      opacity: symbolMeta.opacity\n    }, normalStyle));\n    graphic.setHoverStyle(path, hoverStyle);\n    cursorStyle && (path.cursor = cursorStyle);\n    path.z2 = symbolMeta.z2;\n  });\n  var barRectHoverStyle = {};\n  var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n  var barRect = bar.__pictorialBarRect;\n  setLabel(barRect.style, barRectHoverStyle, itemModel, color, opt.seriesModel, dataIndex, barPositionOutside);\n  graphic.setHoverStyle(barRect, barRectHoverStyle);\n}\n\nfunction toIntTimes(times) {\n  var roundedTimes = Math.round(times); // Escapse accurate error\n\n  return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nvar _default = BarView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/PictorialBarView.js\n// module id = WAmt\n// module chunks = 0","var DataZoomModel = require(\"./DataZoomModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = DataZoomModel.extend({\n  type: 'dataZoom.inside',\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    disabled: false,\n    // Whether disable this inside zoom.\n    zoomLock: false,\n    // Whether disable zoom but only pan.\n    zoomOnMouseWheel: true,\n    // Can be: true / false / 'shift' / 'ctrl' / 'alt'.\n    moveOnMouseMove: true,\n    // Can be: true / false / 'shift' / 'ctrl' / 'alt'.\n    preventDefaultMouseMove: true\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/InsideZoomModel.js\n// module id = WBXz\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _locale = require('element-ui/lib/locale');\n\nexports.default = {\n  methods: {\n    t: function t() {\n      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      return _locale.t.apply(this, args);\n    }\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/mixins/locale.js\n// module id = WN98\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar SymbolDraw = require(\"../helper/SymbolDraw\");\n\nvar LargeSymbolDraw = require(\"../helper/LargeSymbolDraw\");\n\nvar pointsLayout = require(\"../../layout/points\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.extendChartView({\n  type: 'scatter',\n  render: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data);\n    this._finished = true;\n  },\n  incrementalPrepareRender: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  },\n  incrementalRender: function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  },\n  updateTransform: function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData(); // Must mark group dirty and make sure the incremental layer will be cleared\n    // PENDING\n\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout().reset(seriesModel);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  },\n  _updateSymbolDraw: function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  },\n  remove: function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  },\n  dispose: function () {}\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/scatter/ScatterView.js\n// module id = WPVr\n// module chunks = 0","var PointerPath = require(\"./PointerPath\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar round = _number.round;\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction parsePosition(seriesModel, api) {\n  var center = seriesModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  var size = Math.min(width, height);\n  var cx = parsePercent(center[0], api.getWidth());\n  var cy = parsePercent(center[1], api.getHeight());\n  var r = parsePercent(seriesModel.get('radius'), size / 2);\n  return {\n    cx: cx,\n    cy: cy,\n    r: r\n  };\n}\n\nfunction formatLabel(label, labelFormatter) {\n  if (labelFormatter) {\n    if (typeof labelFormatter === 'string') {\n      label = labelFormatter.replace('{value}', label != null ? label : '');\n    } else if (typeof labelFormatter === 'function') {\n      label = labelFormatter(label);\n    }\n  }\n\n  return label;\n}\n\nvar PI2 = Math.PI * 2;\nvar GaugeView = ChartView.extend({\n  type: 'gauge',\n  render: function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n    var colorList = seriesModel.get('axisLine.lineStyle.color');\n    var posInfo = parsePosition(seriesModel, api);\n\n    this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n  },\n  dispose: function () {},\n  _renderMain: function (seriesModel, ecModel, api, colorList, posInfo) {\n    var group = this.group;\n    var axisLineModel = seriesModel.getModel('axisLine');\n    var lineStyleModel = axisLineModel.getModel('lineStyle');\n    var clockwise = seriesModel.get('clockwise');\n    var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n    var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n    var angleRangeSpan = (endAngle - startAngle) % PI2;\n    var prevEndAngle = startAngle;\n    var axisLineWidth = lineStyleModel.get('width');\n\n    for (var i = 0; i < colorList.length; i++) {\n      // Clamp\n      var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n      var endAngle = startAngle + angleRangeSpan * percent;\n      var sector = new graphic.Sector({\n        shape: {\n          startAngle: prevEndAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: posInfo.r - axisLineWidth,\n          r: posInfo.r\n        },\n        silent: true\n      });\n      sector.setStyle({\n        fill: colorList[i][1]\n      });\n      sector.setStyle(lineStyleModel.getLineStyle( // Because we use sector to simulate arc\n      // so the properties for stroking are useless\n      ['color', 'borderWidth', 'borderColor']));\n      group.add(sector);\n      prevEndAngle = endAngle;\n    }\n\n    var getColor = function (percent) {\n      // Less than 0\n      if (percent <= 0) {\n        return colorList[0][1];\n      }\n\n      for (var i = 0; i < colorList.length; i++) {\n        if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n          return colorList[i][1];\n        }\n      } // More than 1\n\n\n      return colorList[i - 1][1];\n    };\n\n    if (!clockwise) {\n      var tmp = startAngle;\n      startAngle = endAngle;\n      endAngle = tmp;\n    }\n\n    this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\n\n    this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise);\n\n    this._renderTitle(seriesModel, ecModel, api, getColor, posInfo);\n\n    this._renderDetail(seriesModel, ecModel, api, getColor, posInfo);\n  },\n  _renderTicks: function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\n    var group = this.group;\n    var cx = posInfo.cx;\n    var cy = posInfo.cy;\n    var r = posInfo.r;\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var splitLineModel = seriesModel.getModel('splitLine');\n    var tickModel = seriesModel.getModel('axisTick');\n    var labelModel = seriesModel.getModel('axisLabel');\n    var splitNumber = seriesModel.get('splitNumber');\n    var subSplitNumber = tickModel.get('splitNumber');\n    var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n    var tickLen = parsePercent(tickModel.get('length'), r);\n    var angle = startAngle;\n    var step = (endAngle - startAngle) / splitNumber;\n    var subStep = step / subSplitNumber;\n    var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n    var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n\n    for (var i = 0; i <= splitNumber; i++) {\n      var unitX = Math.cos(angle);\n      var unitY = Math.sin(angle); // Split line\n\n      if (splitLineModel.get('show')) {\n        var splitLine = new graphic.Line({\n          shape: {\n            x1: unitX * r + cx,\n            y1: unitY * r + cy,\n            x2: unitX * (r - splitLineLen) + cx,\n            y2: unitY * (r - splitLineLen) + cy\n          },\n          style: splitLineStyle,\n          silent: true\n        });\n\n        if (splitLineStyle.stroke === 'auto') {\n          splitLine.setStyle({\n            stroke: getColor(i / splitNumber)\n          });\n        }\n\n        group.add(splitLine);\n      } // Label\n\n\n      if (labelModel.get('show')) {\n        var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n        var distance = labelModel.get('distance');\n        var autoColor = getColor(i / splitNumber);\n        group.add(new graphic.Text({\n          style: graphic.setTextStyle({}, labelModel, {\n            text: label,\n            x: unitX * (r - splitLineLen - distance) + cx,\n            y: unitY * (r - splitLineLen - distance) + cy,\n            textVerticalAlign: unitY < -0.4 ? 'top' : unitY > 0.4 ? 'bottom' : 'middle',\n            textAlign: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n          }, {\n            autoColor: autoColor\n          }),\n          silent: true\n        }));\n      } // Axis tick\n\n\n      if (tickModel.get('show') && i !== splitNumber) {\n        for (var j = 0; j <= subSplitNumber; j++) {\n          var unitX = Math.cos(angle);\n          var unitY = Math.sin(angle);\n          var tickLine = new graphic.Line({\n            shape: {\n              x1: unitX * r + cx,\n              y1: unitY * r + cy,\n              x2: unitX * (r - tickLen) + cx,\n              y2: unitY * (r - tickLen) + cy\n            },\n            silent: true,\n            style: tickLineStyle\n          });\n\n          if (tickLineStyle.stroke === 'auto') {\n            tickLine.setStyle({\n              stroke: getColor((i + j / subSplitNumber) / splitNumber)\n            });\n          }\n\n          group.add(tickLine);\n          angle += subStep;\n        }\n\n        angle -= subStep;\n      } else {\n        angle += step;\n      }\n    }\n  },\n  _renderPointer: function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise) {\n    var group = this.group;\n    var oldData = this._data;\n\n    if (!seriesModel.get('pointer.show')) {\n      // Remove old element\n      oldData && oldData.eachItemGraphicEl(function (el) {\n        group.remove(el);\n      });\n      return;\n    }\n\n    var valueExtent = [+seriesModel.get('min'), +seriesModel.get('max')];\n    var angleExtent = [startAngle, endAngle];\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    data.diff(oldData).add(function (idx) {\n      var pointer = new PointerPath({\n        shape: {\n          angle: startAngle\n        }\n      });\n      graphic.initProps(pointer, {\n        shape: {\n          angle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true)\n        }\n      }, seriesModel);\n      group.add(pointer);\n      data.setItemGraphicEl(idx, pointer);\n    }).update(function (newIdx, oldIdx) {\n      var pointer = oldData.getItemGraphicEl(oldIdx);\n      graphic.updateProps(pointer, {\n        shape: {\n          angle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true)\n        }\n      }, seriesModel);\n      group.add(pointer);\n      data.setItemGraphicEl(newIdx, pointer);\n    }).remove(function (idx) {\n      var pointer = oldData.getItemGraphicEl(idx);\n      group.remove(pointer);\n    }).execute();\n    data.eachItemGraphicEl(function (pointer, idx) {\n      var itemModel = data.getItemModel(idx);\n      var pointerModel = itemModel.getModel('pointer');\n      pointer.setShape({\n        x: posInfo.cx,\n        y: posInfo.cy,\n        width: parsePercent(pointerModel.get('width'), posInfo.r),\n        r: parsePercent(pointerModel.get('length'), posInfo.r)\n      });\n      pointer.useStyle(itemModel.getModel('itemStyle').getItemStyle());\n\n      if (pointer.style.fill === 'auto') {\n        pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n      }\n\n      graphic.setHoverStyle(pointer, itemModel.getModel('emphasis.itemStyle').getItemStyle());\n    });\n    this._data = data;\n  },\n  _renderTitle: function (seriesModel, ecModel, api, getColor, posInfo) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var titleModel = seriesModel.getModel('title');\n\n    if (titleModel.get('show')) {\n      var offsetCenter = titleModel.get('offsetCenter');\n      var x = posInfo.cx + parsePercent(offsetCenter[0], posInfo.r);\n      var y = posInfo.cy + parsePercent(offsetCenter[1], posInfo.r);\n      var minVal = +seriesModel.get('min');\n      var maxVal = +seriesModel.get('max');\n      var value = seriesModel.getData().get(valueDim, 0);\n      var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n      this.group.add(new graphic.Text({\n        silent: true,\n        style: graphic.setTextStyle({}, titleModel, {\n          x: x,\n          y: y,\n          // FIXME First data name ?\n          text: data.getName(0),\n          textAlign: 'center',\n          textVerticalAlign: 'middle'\n        }, {\n          autoColor: autoColor,\n          forceRich: true\n        })\n      }));\n    }\n  },\n  _renderDetail: function (seriesModel, ecModel, api, getColor, posInfo) {\n    var detailModel = seriesModel.getModel('detail');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n\n    if (detailModel.get('show')) {\n      var offsetCenter = detailModel.get('offsetCenter');\n      var x = posInfo.cx + parsePercent(offsetCenter[0], posInfo.r);\n      var y = posInfo.cy + parsePercent(offsetCenter[1], posInfo.r);\n      var width = parsePercent(detailModel.get('width'), posInfo.r);\n      var height = parsePercent(detailModel.get('height'), posInfo.r);\n      var data = seriesModel.getData();\n      var value = data.get(data.mapDimension('value'), 0);\n      var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n      this.group.add(new graphic.Text({\n        silent: true,\n        style: graphic.setTextStyle({}, detailModel, {\n          x: x,\n          y: y,\n          text: formatLabel( // FIXME First data name ?\n          value, detailModel.get('formatter')),\n          textWidth: isNaN(width) ? null : width,\n          textHeight: isNaN(height) ? null : height,\n          textAlign: 'center',\n          textVerticalAlign: 'middle'\n        }, {\n          autoColor: autoColor,\n          forceRich: true\n        })\n      }));\n    }\n  }\n});\nvar _default = GaugeView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/gauge/GaugeView.js\n// module id = WiQi\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\nvar each = zrUtil.each;\n/**\n * @param {string} key\n * @param {module:echarts/ExtensionAPI} api\n * @param {Function} handler\n *      param: {string} currTrigger\n *      param: {Array.<number>} point\n */\n\nfunction register(key, api, handler) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  inner(zr).records || (inner(zr).records = {});\n  initGlobalListeners(zr, api);\n  var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n  record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n  if (inner(zr).initialized) {\n    return;\n  }\n\n  inner(zr).initialized = true;\n  useHandler('click', zrUtil.curry(doEnter, 'click'));\n  useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove')); // useHandler('mouseout', onLeave);\n\n  useHandler('globalout', onLeave);\n\n  function useHandler(eventType, cb) {\n    zr.on(eventType, function (e) {\n      var dis = makeDispatchAction(api);\n      each(inner(zr).records, function (record) {\n        record && cb(record, e, dis.dispatchAction);\n      });\n      dispatchTooltipFinally(dis.pendings, api);\n    });\n  }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n  var showLen = pendings.showTip.length;\n  var hideLen = pendings.hideTip.length;\n  var actuallyPayload;\n\n  if (showLen) {\n    actuallyPayload = pendings.showTip[showLen - 1];\n  } else if (hideLen) {\n    actuallyPayload = pendings.hideTip[hideLen - 1];\n  }\n\n  if (actuallyPayload) {\n    actuallyPayload.dispatchAction = null;\n    api.dispatchAction(actuallyPayload);\n  }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n  record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n  record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n  var pendings = {\n    showTip: [],\n    hideTip: []\n  }; // FIXME\n  // better approach?\n  // 'showTip' and 'hideTip' can be triggered by axisPointer and tooltip,\n  // which may be conflict, (axisPointer call showTip but tooltip call hideTip);\n  // So we have to add \"final stage\" to merge those dispatched actions.\n\n  var dispatchAction = function (payload) {\n    var pendingList = pendings[payload.type];\n\n    if (pendingList) {\n      pendingList.push(payload);\n    } else {\n      payload.dispatchAction = dispatchAction;\n      api.dispatchAction(payload);\n    }\n  };\n\n  return {\n    dispatchAction: dispatchAction,\n    pendings: pendings\n  };\n}\n/**\n * @param {string} key\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\nfunction unregister(key, api) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  var record = (inner(zr).records || {})[key];\n\n  if (record) {\n    inner(zr).records[key] = null;\n  }\n}\n\nexports.register = register;\nexports.unregister = unregister;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/globalListener.js\n// module id = WqZQ\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar axisDefault = require(\"./axisDefault\");\n\nvar ComponentModel = require(\"../model/Component\");\n\nvar _layout = require(\"../util/layout\");\n\nvar getLayoutParams = _layout.getLayoutParams;\nvar mergeLayoutParam = _layout.mergeLayoutParam;\n\nvar OrdinalMeta = require(\"../data/OrdinalMeta\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME axisType is fixed ?\nvar AXIS_TYPES = ['value', 'category', 'time', 'log'];\n/**\n * Generate sub axis model class\n * @param {string} axisName 'x' 'y' 'radius' 'angle' 'parallel'\n * @param {module:echarts/model/Component} BaseAxisModelClass\n * @param {Function} axisTypeDefaulter\n * @param {Object} [extraDefaultOption]\n */\n\nfunction _default(axisName, BaseAxisModelClass, axisTypeDefaulter, extraDefaultOption) {\n  zrUtil.each(AXIS_TYPES, function (axisType) {\n    BaseAxisModelClass.extend({\n      /**\n       * @readOnly\n       */\n      type: axisName + 'Axis.' + axisType,\n      mergeDefaultAndTheme: function (option, ecModel) {\n        var layoutMode = this.layoutMode;\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        zrUtil.merge(option, themeModel.get(axisType + 'Axis'));\n        zrUtil.merge(option, this.getDefaultOption());\n        option.type = axisTypeDefaulter(axisName, option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      },\n\n      /**\n       * @override\n       */\n      optionUpdated: function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      },\n\n      /**\n       * Should not be called before all of 'getInitailData' finished.\n       * Because categories are collected during initializing data.\n       */\n      getCategories: function (rawData) {\n        var option = this.option; // FIXME\n        // warning if called before all of 'getInitailData' finished.\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      },\n      getOrdinalMeta: function () {\n        return this.__ordinalMeta;\n      },\n      defaultOption: zrUtil.mergeAll([{}, axisDefault[axisType + 'Axis'], extraDefaultOption], true)\n    });\n  });\n  ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', zrUtil.curry(axisTypeDefaulter, axisName));\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/axisModelCreator.js\n// module id = WtQt\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_ctx.js\n// module id = WwGG\n// module chunks = 0","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_set-to-string-tag.js\n// module id = XAI7\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\nvar isString = _util.isString;\nvar defaults = _util.defaults;\nvar extend = _util.extend;\nvar isObject = _util.isObject;\nvar clone = _util.clone;\n\nvar _model = require(\"../../util/model\");\n\nvar normalizeToArray = _model.normalizeToArray;\n\nvar _sourceHelper = require(\"./sourceHelper\");\n\nvar guessOrdinal = _sourceHelper.guessOrdinal;\n\nvar Source = require(\"../Source\");\n\nvar _dimensionHelper = require(\"./dimensionHelper\");\n\nvar OTHER_DIMENSIONS = _dimensionHelper.OTHER_DIMENSIONS;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @deprecated\n * Use `echarts/data/helper/createDimensions` instead.\n */\n\n/**\n * @see {module:echarts/test/ut/spec/data/completeDimensions}\n *\n * Complete the dimensions array, by user defined `dimension` and `encode`,\n * and guessing from the data structure.\n * If no 'value' dimension specified, the first no-named dimension will be\n * named as 'value'.\n *\n * @param {Array.<string>} sysDims Necessary dimensions, like ['x', 'y'], which\n *      provides not only dim template, but also default order.\n *      properties: 'name', 'type', 'displayName'.\n *      `name` of each item provides default coord name.\n *      [{dimsDef: [string|Object, ...]}, ...] dimsDef of sysDim item provides default dim name, and\n *                                    provide dims count that the sysDim required.\n *      [{ordinalMeta}] can be specified.\n * @param {module:echarts/data/Source|Array|Object} source or data (for compatibal with pervious)\n * @param {Object} [opt]\n * @param {Array.<Object|string>} [opt.dimsDef] option.series.dimensions User defined dimensions\n *      For example: ['asdf', {name, type}, ...].\n * @param {Object|HashMap} [opt.encodeDef] option.series.encode {x: 2, y: [3, 1], tooltip: [1, 2], label: 3}\n * @param {string} [opt.generateCoord] Generate coord dim with the given name.\n *                 If not specified, extra dim names will be:\n *                 'value', 'value0', 'value1', ...\n * @param {number} [opt.generateCoordCount] By default, the generated dim name is `generateCoord`.\n *                 If `generateCoordCount` specified, the generated dim names will be:\n *                 `generateCoord` + 0, `generateCoord` + 1, ...\n *                 can be Infinity, indicate that use all of the remain columns.\n * @param {number} [opt.dimCount] If not specified, guess by the first data item.\n * @param {number} [opt.encodeDefaulter] If not specified, auto find the next available data dim.\n * @return {Array.<Object>} [{\n *      name: string mandatory,\n *      displayName: string, the origin name in dimsDef, see source helper.\n *                 If displayName given, the tooltip will displayed vertically.\n *      coordDim: string mandatory,\n *      coordDimIndex: number mandatory,\n *      type: string optional,\n *      otherDims: { never null/undefined\n *          tooltip: number optional,\n *          label: number optional,\n *          itemName: number optional,\n *          seriesName: number optional,\n *      },\n *      isExtraCoord: boolean true if coord is generated\n *          (not specified in encode and not series specified)\n *      other props ...\n * }]\n */\nfunction completeDimensions(sysDims, source, opt) {\n  if (!Source.isInstance(source)) {\n    source = Source.seriesDataToSource(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var encodeDef = createHashMap(opt.encodeDef);\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap(); // var valueCandidate;\n\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount); // Apply user defined dims (`name` and `type`) and init result.\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimsDef[i]) ? dimsDef[i] : {\n      name: dimsDef[i]\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = {\n      otherDims: {}\n    }; // Name will be applied later for avoiding duplication.\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      // Only if `series.dimensions` is defined in option\n      // displayName, will be set, and dimension will be diplayed vertically in\n      // tooltip by default.\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  } // Set `coordDim` and `coordDimIndex` by `encodeDef` and normalize `encodeDef`.\n\n\n  encodeDef.each(function (dataDims, coordDim) {\n    dataDims = normalizeToArray(dataDims).slice();\n    var validDataDims = encodeDef.set(coordDim, []);\n    each(dataDims, function (resultDimIdx, idx) {\n      // The input resultDimIdx can be dim name or index.\n      isString(resultDimIdx) && (resultDimIdx = dataDimNameMap.get(resultDimIdx));\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  }); // Apply templetes and default order from `sysDims`.\n\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItem, sysDimIndex) {\n    var coordDim;\n    var sysDimItem;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n\n    if (isString(sysDimItem)) {\n      coordDim = sysDimItem;\n      sysDimItem = {};\n    } else {\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta; // `coordDimIndex` should not be set directly.\n\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = normalizeToArray(encodeDef.get(coordDim)); // dimensions provides default dim sequences.\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    } // Apply templates.\n\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      } // FIXME refactor, currently only used in case: {otherDims: {tooltip: false}}\n\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (OTHER_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  } // Make sure the first extra dim is 'value'.\n\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value'; // Set dim `name` and other `coordDim` and other props.\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || {};\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap));\n\n    if (resultItem.type == null && guessOrdinal(source, resultDimIdx, resultItem.name)) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n} // ??? TODO\n// Originally detect dimCount by data[0]. Should we\n// optimize it to only by sysDims and dimensions and encode.\n// So only necessary dims will be initialized.\n// But\n// (1) custom series should be considered. where other dims\n// may be visited.\n// (2) sometimes user need to calcualte bubble size or use visualMap\n// on other dimensions besides coordSys needed.\n// So, dims that is not used by system, should be shared in storage?\n\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  // Note that the result dimCount should not small than columns count\n  // of data, otherwise `dataDimNameMap` checking will be incorrect.\n  var dimCount = Math.max(source.dimensionsDetectCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef = sysDimItem.dimsDef;\n    sysDimItemDimsDef && (dimCount = Math.max(dimCount, sysDimItemDimsDef.length));\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nvar _default = completeDimensions;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/helper/completeDimensions.js\n// module id = XCYH\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./candlestick/CandlestickSeries\");\n\nrequire(\"./candlestick/CandlestickView\");\n\nvar preprocessor = require(\"./candlestick/preprocessor\");\n\nvar candlestickVisual = require(\"./candlestick/candlestickVisual\");\n\nvar candlestickLayout = require(\"./candlestick/candlestickLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerPreprocessor(preprocessor);\necharts.registerVisual(candlestickVisual);\necharts.registerLayout(candlestickLayout);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick.js\n// module id = XHuq\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar IndicatorAxis = require(\"./IndicatorAxis\");\n\nvar IntervalScale = require(\"../../scale/Interval\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar _axisHelper = require(\"../axisHelper\");\n\nvar getScaleExtent = _axisHelper.getScaleExtent;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO clockwise\nfunction Radar(radarModel, ecModel, api) {\n  this._model = radarModel;\n  /**\n   * Radar dimensions\n   * @type {Array.<string>}\n   */\n\n  this.dimensions = [];\n  this._indicatorAxes = zrUtil.map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n    var dim = 'indicator_' + idx;\n    var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\n    indicatorAxis.name = indicatorModel.get('name'); // Inject model and axis\n\n    indicatorAxis.model = indicatorModel;\n    indicatorModel.axis = indicatorAxis;\n    this.dimensions.push(dim);\n    return indicatorAxis;\n  }, this);\n  this.resize(radarModel, api);\n  /**\n   * @type {number}\n   * @readOnly\n   */\n\n  this.cx;\n  /**\n   * @type {number}\n   * @readOnly\n   */\n\n  this.cy;\n  /**\n   * @type {number}\n   * @readOnly\n   */\n\n  this.r;\n  /**\n   * @type {number}\n   * @readOnly\n   */\n\n  this.startAngle;\n}\n\nRadar.prototype.getIndicatorAxes = function () {\n  return this._indicatorAxes;\n};\n\nRadar.prototype.dataToPoint = function (value, indicatorIndex) {\n  var indicatorAxis = this._indicatorAxes[indicatorIndex];\n  return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n};\n\nRadar.prototype.coordToPoint = function (coord, indicatorIndex) {\n  var indicatorAxis = this._indicatorAxes[indicatorIndex];\n  var angle = indicatorAxis.angle;\n  var x = this.cx + coord * Math.cos(angle);\n  var y = this.cy - coord * Math.sin(angle);\n  return [x, y];\n};\n\nRadar.prototype.pointToData = function (pt) {\n  var dx = pt[0] - this.cx;\n  var dy = pt[1] - this.cy;\n  var radius = Math.sqrt(dx * dx + dy * dy);\n  dx /= radius;\n  dy /= radius;\n  var radian = Math.atan2(-dy, dx); // Find the closest angle\n  // FIXME index can calculated directly\n\n  var minRadianDiff = Infinity;\n  var closestAxis;\n  var closestAxisIdx = -1;\n\n  for (var i = 0; i < this._indicatorAxes.length; i++) {\n    var indicatorAxis = this._indicatorAxes[i];\n    var diff = Math.abs(radian - indicatorAxis.angle);\n\n    if (diff < minRadianDiff) {\n      closestAxis = indicatorAxis;\n      closestAxisIdx = i;\n      minRadianDiff = diff;\n    }\n  }\n\n  return [closestAxisIdx, +(closestAxis && closestAxis.coodToData(radius))];\n};\n\nRadar.prototype.resize = function (radarModel, api) {\n  var center = radarModel.get('center');\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  var viewSize = Math.min(viewWidth, viewHeight) / 2;\n  this.cx = numberUtil.parsePercent(center[0], viewWidth);\n  this.cy = numberUtil.parsePercent(center[1], viewHeight);\n  this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\n  this.r = numberUtil.parsePercent(radarModel.get('radius'), viewSize);\n  zrUtil.each(this._indicatorAxes, function (indicatorAxis, idx) {\n    indicatorAxis.setExtent(0, this.r);\n    var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length; // Normalize to [-PI, PI]\n\n    angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n    indicatorAxis.angle = angle;\n  }, this);\n};\n\nRadar.prototype.update = function (ecModel, api) {\n  var indicatorAxes = this._indicatorAxes;\n  var radarModel = this._model;\n  zrUtil.each(indicatorAxes, function (indicatorAxis) {\n    indicatorAxis.scale.setExtent(Infinity, -Infinity);\n  });\n  ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n    if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n      return;\n    }\n\n    var data = radarSeries.getData();\n    zrUtil.each(indicatorAxes, function (indicatorAxis) {\n      indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n    });\n  }, this);\n  var splitNumber = radarModel.get('splitNumber');\n\n  function increaseInterval(interval) {\n    var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10)); // Increase interval\n\n    var f = interval / exp10;\n\n    if (f === 2) {\n      f = 5;\n    } else {\n      // f is 2 or 5\n      f *= 2;\n    }\n\n    return f * exp10;\n  } // Force all the axis fixing the maxSplitNumber.\n\n\n  zrUtil.each(indicatorAxes, function (indicatorAxis, idx) {\n    var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n    niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n    var axisModel = indicatorAxis.model;\n    var scale = indicatorAxis.scale;\n    var fixedMin = axisModel.getMin();\n    var fixedMax = axisModel.getMax();\n    var interval = scale.getInterval();\n\n    if (fixedMin != null && fixedMax != null) {\n      // User set min, max, divide to get new interval\n      scale.setExtent(+fixedMin, +fixedMax);\n      scale.setInterval((fixedMax - fixedMin) / splitNumber);\n    } else if (fixedMin != null) {\n      var max; // User set min, expand extent on the other side\n\n      do {\n        max = fixedMin + interval * splitNumber;\n        scale.setExtent(+fixedMin, max); // Interval must been set after extent\n        // FIXME\n\n        scale.setInterval(interval);\n        interval = increaseInterval(interval);\n      } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\n    } else if (fixedMax != null) {\n      var min; // User set min, expand extent on the other side\n\n      do {\n        min = fixedMax - interval * splitNumber;\n        scale.setExtent(min, +fixedMax);\n        scale.setInterval(interval);\n        interval = increaseInterval(interval);\n      } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\n    } else {\n      var nicedSplitNumber = scale.getTicks().length - 1;\n\n      if (nicedSplitNumber > splitNumber) {\n        interval = increaseInterval(interval);\n      } // PENDING\n\n\n      var center = Math.round((rawExtent[0] + rawExtent[1]) / 2 / interval) * interval;\n      var halfSplitNumber = Math.round(splitNumber / 2);\n      scale.setExtent(numberUtil.round(center - halfSplitNumber * interval), numberUtil.round(center + (splitNumber - halfSplitNumber) * interval));\n      scale.setInterval(interval);\n    }\n  });\n};\n/**\n * Radar dimensions is based on the data\n * @type {Array}\n */\n\n\nRadar.dimensions = [];\n\nRadar.create = function (ecModel, api) {\n  var radarList = [];\n  ecModel.eachComponent('radar', function (radarModel) {\n    var radar = new Radar(radarModel, ecModel, api);\n    radarList.push(radar);\n    radarModel.coordinateSystem = radar;\n  });\n  ecModel.eachSeriesByType('radar', function (radarSeries) {\n    if (radarSeries.get('coordinateSystem') === 'radar') {\n      // Inject coordinate system\n      radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n    }\n  });\n  return radarList;\n};\n\nCoordinateSystem.register('radar', Radar);\nvar _default = Radar;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/radar/Radar.js\n// module id = XKuZ\n// module chunks = 0","var _circularLayoutHelper = require(\"./circularLayoutHelper\");\n\nvar circularLayout = _circularLayoutHelper.circularLayout;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    if (seriesModel.get('layout') === 'circular') {\n      circularLayout(seriesModel);\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/circularLayout.js\n// module id = XPmC\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  var paletteScope = {};\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var categoriesData = seriesModel.getCategoriesData();\n    var data = seriesModel.getData();\n    var categoryNameIdxMap = {};\n    categoriesData.each(function (idx) {\n      var name = categoriesData.getName(idx); // Add prefix to avoid conflict with Object.prototype.\n\n      categoryNameIdxMap['ec-' + name] = idx;\n      var itemModel = categoriesData.getItemModel(idx);\n      var color = itemModel.get('itemStyle.color') || seriesModel.getColorFromPalette(name, paletteScope);\n      categoriesData.setItemVisual(idx, 'color', color);\n    }); // Assign category color to visual\n\n    if (categoriesData.count()) {\n      data.each(function (idx) {\n        var model = data.getItemModel(idx);\n        var category = model.getShallow('category');\n\n        if (category != null) {\n          if (typeof category === 'string') {\n            category = categoryNameIdxMap['ec-' + category];\n          }\n\n          if (!data.getItemVisual(idx, 'color', true)) {\n            data.setItemVisual(idx, 'color', categoriesData.getItemVisual(category, 'color'));\n          }\n        }\n      });\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/categoryVisual.js\n// module id = XnpR\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _listComponent = require(\"../helper/listComponent\");\n\nvar makeBackground = _listComponent.makeBackground;\n\nvar layoutUtil = require(\"../../util/layout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar _default = echarts.extendComponentView({\n  type: 'legend.plain',\n  newlineDisabled: false,\n\n  /**\n   * @override\n   */\n  init: function () {\n    /**\n     * @private\n     * @type {module:zrender/container/Group}\n     */\n    this.group.add(this._contentGroup = new Group());\n    /**\n     * @private\n     * @type {module:zrender/Element}\n     */\n\n    this._backgroundEl;\n  },\n\n  /**\n   * @protected\n   */\n  getContentGroup: function () {\n    return this._contentGroup;\n  },\n\n  /**\n   * @override\n   */\n  render: function (legendModel, ecModel, api) {\n    this.resetInner();\n\n    if (!legendModel.get('show', true)) {\n      return;\n    }\n\n    var itemAlign = legendModel.get('align');\n\n    if (!itemAlign || itemAlign === 'auto') {\n      itemAlign = legendModel.get('left') === 'right' && legendModel.get('orient') === 'vertical' ? 'right' : 'left';\n    }\n\n    this.renderInner(itemAlign, legendModel, ecModel, api); // Perform layout.\n\n    var positionInfo = legendModel.getBoxLayoutParams();\n    var viewportSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var padding = legendModel.get('padding');\n    var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n    var mainRect = this.layoutInner(legendModel, itemAlign, maxSize); // Place mainGroup, based on the calculated `mainRect`.\n\n    var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n      width: mainRect.width,\n      height: mainRect.height\n    }, positionInfo), viewportSize, padding);\n    this.group.attr('position', [layoutRect.x - mainRect.x, layoutRect.y - mainRect.y]); // Render background after group is layout.\n\n    this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n  },\n\n  /**\n   * @protected\n   */\n  resetInner: function () {\n    this.getContentGroup().removeAll();\n    this._backgroundEl && this.group.remove(this._backgroundEl);\n  },\n\n  /**\n   * @protected\n   */\n  renderInner: function (itemAlign, legendModel, ecModel, api) {\n    var contentGroup = this.getContentGroup();\n    var legendDrawnMap = zrUtil.createHashMap();\n    var selectMode = legendModel.get('selectedMode');\n    var excludeSeriesId = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n    });\n    each(legendModel.getData(), function (itemModel, dataIndex) {\n      var name = itemModel.get('name'); // Use empty string or \\n as a newline string\n\n      if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n        contentGroup.add(new Group({\n          newline: true\n        }));\n        return;\n      } // Representitive series.\n\n\n      var seriesModel = ecModel.getSeriesByName(name)[0];\n\n      if (legendDrawnMap.get(name)) {\n        // Have been drawed\n        return;\n      } // Series legend\n\n\n      if (seriesModel) {\n        var data = seriesModel.getData();\n        var color = data.getVisual('color'); // If color is a callback function\n\n        if (typeof color === 'function') {\n          // Use the first data\n          color = color(seriesModel.getDataParams(0));\n        } // Using rect symbol defaultly\n\n\n        var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n        var symbolType = data.getVisual('symbol');\n\n        var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, selectMode);\n\n        itemGroup.on('click', curry(dispatchSelectAction, name, api)).on('mouseover', curry(dispatchHighlightAction, seriesModel, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel, null, api, excludeSeriesId));\n        legendDrawnMap.set(name, true);\n      } else {\n        // Data legend of pie, funnel\n        ecModel.eachRawSeries(function (seriesModel) {\n          // In case multiple series has same data name\n          if (legendDrawnMap.get(name)) {\n            return;\n          }\n\n          if (seriesModel.legendDataProvider) {\n            var data = seriesModel.legendDataProvider();\n            var idx = data.indexOfName(name);\n\n            if (idx < 0) {\n              return;\n            }\n\n            var color = data.getItemVisual(idx, 'color');\n            var legendSymbolType = 'roundRect';\n\n            var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, selectMode); // FIXME: consider different series has items with the same name.\n\n\n            itemGroup.on('click', curry(dispatchSelectAction, name, api)) // FIXME Should not specify the series name\n            .on('mouseover', curry(dispatchHighlightAction, seriesModel, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel, name, api, excludeSeriesId));\n            legendDrawnMap.set(name, true);\n          }\n        }, this);\n      }\n    }, this);\n  },\n  _createItem: function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, selectMode) {\n    var itemWidth = legendModel.get('itemWidth');\n    var itemHeight = legendModel.get('itemHeight');\n    var inactiveColor = legendModel.get('inactiveColor');\n    var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n    var isSelected = legendModel.isSelected(name);\n    var itemGroup = new Group();\n    var textStyleModel = itemModel.getModel('textStyle');\n    var itemIcon = itemModel.get('icon');\n    var tooltipModel = itemModel.getModel('tooltip');\n    var legendGlobalTooltipModel = tooltipModel.parentModel; // Use user given icon first\n\n    legendSymbolType = itemIcon || legendSymbolType;\n    itemGroup.add(createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, // symbolKeepAspect default true for legend\n    symbolKeepAspect == null ? true : symbolKeepAspect)); // Compose symbols\n    // PENDING\n\n    if (!itemIcon && symbolType // At least show one symbol, can't be all none\n    && (symbolType !== legendSymbolType || symbolType == 'none')) {\n      var size = itemHeight * 0.8;\n\n      if (symbolType === 'none') {\n        symbolType = 'circle';\n      } // Put symbol in the center\n\n\n      itemGroup.add(createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, // symbolKeepAspect default true for legend\n      symbolKeepAspect == null ? true : symbolKeepAspect));\n    }\n\n    var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n    var textAlign = itemAlign;\n    var formatter = legendModel.get('formatter');\n    var content = name;\n\n    if (typeof formatter === 'string' && formatter) {\n      content = formatter.replace('{name}', name != null ? name : '');\n    } else if (typeof formatter === 'function') {\n      content = formatter(name);\n    }\n\n    itemGroup.add(new graphic.Text({\n      style: graphic.setTextStyle({}, textStyleModel, {\n        text: content,\n        x: textX,\n        y: itemHeight / 2,\n        textFill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n        textAlign: textAlign,\n        textVerticalAlign: 'middle'\n      })\n    })); // Add a invisible rect to increase the area of mouse hover\n\n    var hitRect = new graphic.Rect({\n      shape: itemGroup.getBoundingRect(),\n      invisible: true,\n      tooltip: tooltipModel.get('show') ? zrUtil.extend({\n        content: name,\n        // Defaul formatter\n        formatter: legendGlobalTooltipModel.get('formatter', true) || function () {\n          return name;\n        },\n        formatterParams: {\n          componentType: 'legend',\n          legendIndex: legendModel.componentIndex,\n          name: name,\n          $vars: ['name']\n        }\n      }, tooltipModel.option) : null\n    });\n    itemGroup.add(hitRect);\n    itemGroup.eachChild(function (child) {\n      child.silent = true;\n    });\n    hitRect.silent = !selectMode;\n    this.getContentGroup().add(itemGroup);\n    graphic.setHoverStyle(itemGroup);\n    itemGroup.__legendDataIndex = dataIndex;\n    return itemGroup;\n  },\n\n  /**\n   * @protected\n   */\n  layoutInner: function (legendModel, itemAlign, maxSize) {\n    var contentGroup = this.getContentGroup(); // Place items in contentGroup.\n\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n    var contentRect = contentGroup.getBoundingRect();\n    contentGroup.attr('position', [-contentRect.x, -contentRect.y]);\n    return this.group.getBoundingRect();\n  }\n});\n\nfunction dispatchSelectAction(name, api) {\n  api.dispatchAction({\n    type: 'legendToggleSelect',\n    name: name\n  });\n}\n\nfunction dispatchHighlightAction(seriesModel, dataName, api, excludeSeriesId) {\n  // If element hover will move to a hoverLayer.\n  var el = api.getZr().storage.getDisplayList()[0];\n\n  if (!(el && el.useHoverLayer)) {\n    api.dispatchAction({\n      type: 'highlight',\n      seriesName: seriesModel.name,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nfunction dispatchDownplayAction(seriesModel, dataName, api, excludeSeriesId) {\n  // If element hover will move to a hoverLayer.\n  var el = api.getZr().storage.getDisplayList()[0];\n\n  if (!(el && el.useHoverLayer)) {\n    api.dispatchAction({\n      type: 'downplay',\n      seriesName: seriesModel.name,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legend/LegendView.js\n// module id = XoXQ\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n  Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n  // Restore the original runtime.\n  g.regeneratorRuntime = oldRuntime;\n} else {\n  // Remove the global property added by runtime.js.\n  try {\n    delete g.regeneratorRuntime;\n  } catch(e) {\n    g.regeneratorRuntime = undefined;\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_regenerator-runtime@0.11.1@regenerator-runtime/runtime-module.js\n// module id = XqSp\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-pie.js\n// module id = XvZ9\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/_getRawTag.js\n// module id = Xvt7\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./marker/MarkAreaModel\");\n\nrequire(\"./marker/MarkAreaView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerPreprocessor(function (opt) {\n  // Make sure markArea component is enabled\n  opt.markArea = opt.markArea || {};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/markArea.js\n// module id = XwwO\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerAction({\n  type: 'treeExpandAndCollapse',\n  event: 'treeExpandAndCollapse',\n  update: 'update'\n}, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'series',\n    subType: 'tree',\n    query: payload\n  }, function (seriesModel) {\n    var dataIndex = payload.dataIndex;\n    var tree = seriesModel.getData().tree;\n    var node = tree.getNodeByDataIndex(dataIndex);\n    node.isExpand = !node.isExpand;\n  });\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/treeAction.js\n// module id = YDWW\n// module chunks = 0","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/combineURLs.js\n// module id = YDtG\n// module chunks = 0","require(\"./graphic\");\n\nvar _zrender = require(\"../zrender\");\n\nvar registerPainter = _zrender.registerPainter;\n\nvar Painter = require(\"./Painter\");\n\nregisterPainter('vml', Painter);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/vml/vml.js\n// module id = YLpA\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar _format = require(\"../util/format\");\n\nvar formatTime = _format.formatTime;\nvar encodeHTML = _format.encodeHTML;\nvar addCommas = _format.addCommas;\nvar getTooltipMarker = _format.getTooltipMarker;\n\nvar modelUtil = require(\"../util/model\");\n\nvar ComponentModel = require(\"./Component\");\n\nvar colorPaletteMixin = require(\"./mixin/colorPalette\");\n\nvar dataFormatMixin = require(\"../model/mixin/dataFormat\");\n\nvar _layout = require(\"../util/layout\");\n\nvar getLayoutParams = _layout.getLayoutParams;\nvar mergeLayoutParam = _layout.mergeLayoutParam;\n\nvar _task = require(\"../stream/task\");\n\nvar createTask = _task.createTask;\n\nvar _sourceHelper = require(\"../data/helper/sourceHelper\");\n\nvar prepareSource = _sourceHelper.prepareSource;\nvar getSource = _sourceHelper.getSource;\n\nvar _dataProvider = require(\"../data/helper/dataProvider\");\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = modelUtil.makeInner();\nvar SeriesModel = ComponentModel.extend({\n  type: 'series.__base__',\n\n  /**\n   * @readOnly\n   */\n  seriesIndex: 0,\n  // coodinateSystem will be injected in the echarts/CoordinateSystem\n  coordinateSystem: null,\n\n  /**\n   * @type {Object}\n   * @protected\n   */\n  defaultOption: null,\n\n  /**\n   * Data provided for legend\n   * @type {Function}\n   */\n  // PENDING\n  legendDataProvider: null,\n\n  /**\n   * Access path of color for visual\n   */\n  visualColorAccessPath: 'itemStyle.color',\n\n  /**\n   * Support merge layout params.\n   * Only support 'box' now (left/right/top/bottom/width/height).\n   * @type {string|Object} Object can be {ignoreSize: true}\n   * @readOnly\n   */\n  layoutMode: null,\n  init: function (option, parentModel, ecModel, extraOpt) {\n    /**\n     * @type {number}\n     * @readOnly\n     */\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    prepareSource(this);\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    /**\n     * @type {module:echarts/data/List|module:echarts/data/Tree|module:echarts/data/Graph}\n     * @private\n     */\n    inner(this).dataBeforeProcessed = data; // If we reverse the order (make data firstly, and then make\n    // dataBeforeProcessed by cloneShallow), cloneShallow will\n    // cause data.graph.data !== data when using\n    // module:echarts/data/Graph or module:echarts/data/Tree.\n    // See module:echarts/data/helper/linkList\n    // Theoretically, it is unreasonable to call `seriesModel.getData()` in the model\n    // init or merge stage, because the data can be restored. So we do not `restoreData`\n    // and `setData` here, which forbids calling `seriesModel.getData()` in this stage.\n    // Call `seriesModel.getRawData()` instead.\n    // this.restoreData();\n\n    autoSeriesName(this);\n  },\n\n  /**\n   * Util for merge default and theme to option\n   * @param  {Object} option\n   * @param  {module:echarts/model/Global} ecModel\n   */\n  mergeDefaultAndTheme: function (option, ecModel) {\n    var layoutMode = this.layoutMode;\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; // Backward compat: using subType on theme.\n    // But if name duplicate between series subType\n    // (for example: parallel) add component mainType,\n    // add suffix 'Series'.\n\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption()); // Default label emphasis `show`\n\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  },\n  mergeOption: function (newSeriesOption, ecModel) {\n    // this.settingTask.dirty();\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = this.layoutMode;\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    prepareSource(this);\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n  },\n  fillDataTextStyle: function (data) {\n    // Default data label emphasis `show`\n    // FIXME Tree structure data ?\n    // FIXME Performance ?\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  },\n\n  /**\n   * Init a data structure from data related option in series\n   * Must be overwritten\n   */\n  getInitialData: function () {},\n\n  /**\n   * Append data to list\n   * @param {Object} params\n   * @param {Array|TypedArray} params.data\n   */\n  appendData: function (params) {\n    // FIXME ???\n    // (1) If data from dataset, forbidden append.\n    // (2) support append data of dataset.\n    var data = this.getRawData();\n    data.appendData(params.data);\n  },\n\n  /**\n   * Consider some method like `filter`, `map` need make new data,\n   * We should make sure that `seriesModel.getData()` get correct\n   * data in the stream procedure. So we fetch data from upstream\n   * each time `task.perform` called.\n   * @param {string} [dataType]\n   * @return {module:echarts/data/List}\n   */\n  getData: function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      // When series is not alive (that may happen when click toolbox\n      // restore or setOption with not merge mode), series data may\n      // be still need to judge animation or something when graphic\n      // elements want to know whether fade out.\n      return inner(this).data;\n    }\n  },\n\n  /**\n   * @param {module:echarts/data/List} data\n   */\n  setData: function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context; // Consider case: filter, data sample.\n\n      if (context.data !== data && task.modifyOutputEnd) {\n        task.setOutputEnd(data.count());\n      }\n\n      context.outputData = data; // Caution: setData should update context.data,\n      // Because getData may be called multiply in a\n      // single stage and expect to get the data just\n      // set. (For example, AxisProxy, x y both call\n      // getData and setDate sequentially).\n      // So the context.data should be fetched from\n      // upstream each time when a stage starts to be\n      // performed.\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  },\n\n  /**\n   * @see {module:echarts/data/helper/sourceHelper#getSource}\n   * @return {module:echarts/data/Source} source\n   */\n  getSource: function () {\n    return getSource(this);\n  },\n\n  /**\n   * Get data before processed\n   * @return {module:echarts/data/List}\n   */\n  getRawData: function () {\n    return inner(this).dataBeforeProcessed;\n  },\n\n  /**\n   * Get base axis if has coordinate system and has axis.\n   * By default use coordSys.getBaseAxis();\n   * Can be overrided for some chart.\n   * @return {type} description\n   */\n  getBaseAxis: function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  },\n  // FIXME\n\n  /**\n   * Default tooltip formatter\n   *\n   * @param {number} dataIndex\n   * @param {boolean} [multipleSeries=false]\n   * @param {number} [dataType]\n   */\n  formatTooltip: function (dataIndex, multipleSeries, dataType) {\n    function formatArrayValue(value) {\n      // ??? TODO refactor these logic.\n      // check: category-no-encode-has-axis-data in dataset.html\n      var vertially = zrUtil.reduce(value, function (vertially, val, idx) {\n        var dimItem = data.getDimensionInfo(idx);\n        return vertially |= dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n      }, 0);\n      var result = [];\n      tooltipDims.length ? zrUtil.each(tooltipDims, function (dim) {\n        setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n      }) // By default, all dims is used on tooltip.\n      : zrUtil.each(value, setEachItem);\n\n      function setEachItem(val, dim) {\n        var dimInfo = data.getDimensionInfo(dim); // If `dimInfo.tooltip` is not set, show tooltip.\n\n        if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n          return;\n        }\n\n        var dimType = dimInfo.type;\n        var dimHead = getTooltipMarker({\n          color: color,\n          type: 'subItem'\n        });\n        var valStr = (vertially ? dimHead + encodeHTML(dimInfo.displayName || '-') + ': ' : '') + // FIXME should not format time for raw data?\n        encodeHTML(dimType === 'ordinal' ? val + '' : dimType === 'time' ? multipleSeries ? '' : formatTime('yyyy/MM/dd hh:mm:ss', val) : addCommas(val));\n        valStr && result.push(valStr);\n      }\n\n      return (vertially ? '<br/>' : '') + result.join(vertially ? '<br/>' : ', ');\n    }\n\n    function formatSingleValue(val) {\n      return encodeHTML(addCommas(val));\n    }\n\n    var data = this.getData();\n    var tooltipDims = data.mapDimension('defaultedTooltip', true);\n    var tooltipDimLen = tooltipDims.length;\n    var value = this.getRawValue(dataIndex);\n    var isValueArr = zrUtil.isArray(value);\n    var color = data.getItemVisual(dataIndex, 'color');\n\n    if (zrUtil.isObject(color) && color.colorStops) {\n      color = (color.colorStops[0] || {}).color;\n    }\n\n    color = color || 'transparent'; // Complicated rule for pretty tooltip.\n\n    var formattedValue = tooltipDimLen > 1 || isValueArr && !tooltipDimLen ? formatArrayValue(value) : tooltipDimLen ? formatSingleValue(retrieveRawValue(data, dataIndex, tooltipDims[0])) : formatSingleValue(isValueArr ? value[0] : value);\n    var colorEl = getTooltipMarker(color);\n    var name = data.getName(dataIndex);\n    var seriesName = this.name;\n\n    if (!modelUtil.isNameSpecified(this)) {\n      seriesName = '';\n    }\n\n    seriesName = seriesName ? encodeHTML(seriesName) + (!multipleSeries ? '<br/>' : ': ') : '';\n    return !multipleSeries ? seriesName + colorEl + (name ? encodeHTML(name) + ': ' + formattedValue : formattedValue) : colorEl + seriesName + formattedValue;\n  },\n\n  /**\n   * @return {boolean}\n   */\n  isAnimationEnabled: function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return animationEnabled;\n  },\n  restoreData: function () {\n    this.dataTask.dirty();\n  },\n  getColorFromPalette: function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel; // PENDING\n\n    var color = colorPaletteMixin.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  },\n\n  /**\n   * Use `data.mapDimension(coordDim, true)` instead.\n   * @deprecated\n   */\n  coordDimToDataDim: function (coordDim) {\n    return this.getRawData().mapDimension(coordDim, true);\n  },\n\n  /**\n   * Get progressive rendering count each step\n   * @return {number}\n   */\n  getProgressive: function () {\n    return this.get('progressive');\n  },\n\n  /**\n   * Get progressive rendering count each step\n   * @return {number}\n   */\n  getProgressiveThreshold: function () {\n    return this.get('progressiveThreshold');\n  },\n\n  /**\n   * Get data indices for show tooltip content. See tooltip.\n   * @abstract\n   * @param {Array.<string>|string} dim\n   * @param {Array.<number>} value\n   * @param {module:echarts/coord/single/SingleAxis} baseAxis\n   * @return {Object} {dataIndices, nestestValue}.\n   */\n  getAxisTooltipData: null,\n\n  /**\n   * See tooltip.\n   * @abstract\n   * @param {number} dataIndex\n   * @return {Array.<number>} Point of tooltip. null/undefined can be returned.\n   */\n  getTooltipPosition: null,\n\n  /**\n   * @see {module:echarts/stream/Scheduler}\n   */\n  pipeTask: null,\n\n  /**\n   * Convinient for override in extended class.\n   * @protected\n   * @type {Function}\n   */\n  preventIncremental: null,\n\n  /**\n   * @public\n   * @readOnly\n   * @type {Object}\n   */\n  pipelineContext: null\n});\nzrUtil.mixin(SeriesModel, dataFormatMixin);\nzrUtil.mixin(SeriesModel, colorPaletteMixin);\n/**\n * MUST be called after `prepareSource` called\n * Here we need to make auto series, especially for auto legend. But we\n * do not modify series.name in option to avoid side effects.\n */\n\nfunction autoSeriesName(seriesModel) {\n  // User specified name has higher priority, otherwise it may cause\n  // series can not be queried unexpectedly.\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimension('seriesName', true);\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  // Avoid repead cloneShallow when data just created in reset.\n  if (param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n} // TODO refactor\n\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(data.CHANGABLE_METHODS, function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataSelfChange, seriesModel));\n  });\n}\n\nfunction onDataSelfChange(seriesModel) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    // Consider case: filter, selectRange\n    task.setOutputEnd(this.count());\n  }\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    // When pipline finished, the currrentTask keep the last\n    // task (renderTask).\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nvar _default = SeriesModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/Series.js\n// module id = YR6M\n// module chunks = 0","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/core.get-iterator-method.js\n// module id = YW8S\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar isTypedArray = _util.isTypedArray;\n\nvar _clazz = require(\"../util/clazz\");\n\nvar enableClassCheck = _clazz.enableClassCheck;\n\nvar _sourceType = require(\"./helper/sourceType\");\n\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\nvar SERIES_LAYOUT_BY_COLUMN = _sourceType.SERIES_LAYOUT_BY_COLUMN;\nvar SOURCE_FORMAT_UNKNOWN = _sourceType.SOURCE_FORMAT_UNKNOWN;\nvar SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY;\nvar SOURCE_FORMAT_KEYED_COLUMNS = _sourceType.SOURCE_FORMAT_KEYED_COLUMNS;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * [sourceFormat]\n *\n * + \"original\":\n * This format is only used in series.data, where\n * itemStyle can be specified in data item.\n *\n * + \"arrayRows\":\n * [\n *     ['product', 'score', 'amount'],\n *     ['Matcha Latte', 89.3, 95.8],\n *     ['Milk Tea', 92.1, 89.4],\n *     ['Cheese Cocoa', 94.4, 91.2],\n *     ['Walnut Brownie', 85.4, 76.9]\n * ]\n *\n * + \"objectRows\":\n * [\n *     {product: 'Matcha Latte', score: 89.3, amount: 95.8},\n *     {product: 'Milk Tea', score: 92.1, amount: 89.4},\n *     {product: 'Cheese Cocoa', score: 94.4, amount: 91.2},\n *     {product: 'Walnut Brownie', score: 85.4, amount: 76.9}\n * ]\n *\n * + \"keyedColumns\":\n * {\n *     'product': ['Matcha Latte', 'Milk Tea', 'Cheese Cocoa', 'Walnut Brownie'],\n *     'count': [823, 235, 1042, 988],\n *     'score': [95.8, 81.4, 91.2, 76.9]\n * }\n *\n * + \"typedArray\"\n *\n * + \"unknown\"\n */\n\n/**\n * @constructor\n * @param {Object} fields\n * @param {string} fields.sourceFormat\n * @param {Array|Object} fields.fromDataset\n * @param {Array|Object} [fields.data]\n * @param {string} [seriesLayoutBy='column']\n * @param {Array.<Object|string>} [dimensionsDefine]\n * @param {Objet|HashMap} [encodeDefine]\n * @param {number} [startIndex=0]\n * @param {number} [dimensionsDetectCount]\n */\nfunction Source(fields) {\n  /**\n   * @type {boolean}\n   */\n  this.fromDataset = fields.fromDataset;\n  /**\n   * Not null/undefined.\n   * @type {Array|Object}\n   */\n\n  this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n  /**\n   * See also \"detectSourceFormat\".\n   * Not null/undefined.\n   * @type {string}\n   */\n\n  this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n  /**\n   * 'row' or 'column'\n   * Not null/undefined.\n   * @type {string} seriesLayoutBy\n   */\n\n  this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n  /**\n   * dimensions definition in option.\n   * can be null/undefined.\n   * @type {Array.<Object|string>}\n   */\n\n  this.dimensionsDefine = fields.dimensionsDefine;\n  /**\n   * encode definition in option.\n   * can be null/undefined.\n   * @type {Objet|HashMap}\n   */\n\n  this.encodeDefine = fields.encodeDefine && createHashMap(fields.encodeDefine);\n  /**\n   * Not null/undefined, uint.\n   * @type {number}\n   */\n\n  this.startIndex = fields.startIndex || 0;\n  /**\n   * Can be null/undefined (when unknown), uint.\n   * @type {number}\n   */\n\n  this.dimensionsDetectCount = fields.dimensionsDetectCount;\n}\n/**\n * Wrap original series data for some compatibility cases.\n */\n\n\nSource.seriesDataToSource = function (data) {\n  return new Source({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL,\n    fromDataset: false\n  });\n};\n\nenableClassCheck(Source);\nvar _default = Source;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/Source.js\n// module id = YYsL\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"../component/radar\");\n\nrequire(\"./radar/RadarSeries\");\n\nrequire(\"./radar/RadarView\");\n\nvar dataColor = require(\"../visual/dataColor\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar radarLayout = require(\"./radar/radarLayout\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\nvar backwardCompat = require(\"./radar/backwardCompat\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Must use radar component\necharts.registerVisual(dataColor('radar'));\necharts.registerVisual(visualSymbol('radar', 'circle'));\necharts.registerLayout(radarLayout);\necharts.registerProcessor(dataFilter('radar'));\necharts.registerPreprocessor(backwardCompat);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/radar.js\n// module id = Ydvc\n// module chunks = 0","var _vector = require(\"./vector\");\n\nvar v2Create = _vector.create;\nvar v2DistSquare = _vector.distSquare;\n\n/**\n * 鏇茬嚎杈呭姪妯″潡\n * @module zrender/core/curve\n * @author pissang(https://www.github.com/pissang)\n */\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3; // 涓存椂鍙橀噺\n\nvar _v0 = v2Create();\n\nvar _v1 = v2Create();\n\nvar _v2 = v2Create();\n\nfunction isAroundZero(val) {\n  return val > -EPSILON && val < EPSILON;\n}\n\nfunction isNotAroundZero(val) {\n  return val > EPSILON || val < -EPSILON;\n}\n/**\n * 璁$畻涓夋璐濆灏斿�糪n * @memberOf module:zrender/core/curve\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} p3\n * @param  {number} t\n * @return {number}\n */\n\n\nfunction cubicAt(p0, p1, p2, p3, t) {\n  var onet = 1 - t;\n  return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2);\n}\n/**\n * 璁$畻涓夋璐濆灏斿鏁板�糪n * @memberOf module:zrender/core/curve\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} p3\n * @param  {number} t\n * @return {number}\n */\n\n\nfunction cubicDerivativeAt(p0, p1, p2, p3, t) {\n  var onet = 1 - t;\n  return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t);\n}\n/**\n * 璁$畻涓夋璐濆灏旀柟绋嬫牴锛屼娇鐢ㄧ洓閲戝叕寮廫n * @memberOf module:zrender/core/curve\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} p3\n * @param  {number} val\n * @param  {Array.<number>} roots\n * @return {number} 鏈夋晥鏍规暟鐩甛n */\n\n\nfunction cubicRootAt(p0, p1, p2, p3, val, roots) {\n  // Evaluate roots of cubic functions\n  var a = p3 + 3 * (p1 - p2) - p0;\n  var b = 3 * (p2 - p1 * 2 + p0);\n  var c = 3 * (p1 - p0);\n  var d = p0 - val;\n  var A = b * b - 3 * a * c;\n  var B = b * c - 9 * a * d;\n  var C = c * c - 3 * b * d;\n  var n = 0;\n\n  if (isAroundZero(A) && isAroundZero(B)) {\n    if (isAroundZero(b)) {\n      roots[0] = 0;\n    } else {\n      var t1 = -c / b; //t1, t2, t3, b is not zero\n\n      if (t1 >= 0 && t1 <= 1) {\n        roots[n++] = t1;\n      }\n    }\n  } else {\n    var disc = B * B - 4 * A * C;\n\n    if (isAroundZero(disc)) {\n      var K = B / A;\n      var t1 = -b / a + K; // t1, a is not zero\n\n      var t2 = -K / 2; // t2, t3\n\n      if (t1 >= 0 && t1 <= 1) {\n        roots[n++] = t1;\n      }\n\n      if (t2 >= 0 && t2 <= 1) {\n        roots[n++] = t2;\n      }\n    } else if (disc > 0) {\n      var discSqrt = mathSqrt(disc);\n      var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n      var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n\n      if (Y1 < 0) {\n        Y1 = -mathPow(-Y1, ONE_THIRD);\n      } else {\n        Y1 = mathPow(Y1, ONE_THIRD);\n      }\n\n      if (Y2 < 0) {\n        Y2 = -mathPow(-Y2, ONE_THIRD);\n      } else {\n        Y2 = mathPow(Y2, ONE_THIRD);\n      }\n\n      var t1 = (-b - (Y1 + Y2)) / (3 * a);\n\n      if (t1 >= 0 && t1 <= 1) {\n        roots[n++] = t1;\n      }\n    } else {\n      var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n      var theta = Math.acos(T) / 3;\n      var ASqrt = mathSqrt(A);\n      var tmp = Math.cos(theta);\n      var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n      var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n      var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n\n      if (t1 >= 0 && t1 <= 1) {\n        roots[n++] = t1;\n      }\n\n      if (t2 >= 0 && t2 <= 1) {\n        roots[n++] = t2;\n      }\n\n      if (t3 >= 0 && t3 <= 1) {\n        roots[n++] = t3;\n      }\n    }\n  }\n\n  return n;\n}\n/**\n * 璁$畻涓夋璐濆灏旀柟绋嬫瀬闄愬�肩殑浣嶇疆\n * @memberOf module:zrender/core/curve\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} p3\n * @param  {Array.<number>} extrema\n * @return {number} 鏈夋晥鏁扮洰\n */\n\n\nfunction cubicExtrema(p0, p1, p2, p3, extrema) {\n  var b = 6 * p2 - 12 * p1 + 6 * p0;\n  var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n  var c = 3 * p1 - 3 * p0;\n  var n = 0;\n\n  if (isAroundZero(a)) {\n    if (isNotAroundZero(b)) {\n      var t1 = -c / b;\n\n      if (t1 >= 0 && t1 <= 1) {\n        extrema[n++] = t1;\n      }\n    }\n  } else {\n    var disc = b * b - 4 * a * c;\n\n    if (isAroundZero(disc)) {\n      extrema[0] = -b / (2 * a);\n    } else if (disc > 0) {\n      var discSqrt = mathSqrt(disc);\n      var t1 = (-b + discSqrt) / (2 * a);\n      var t2 = (-b - discSqrt) / (2 * a);\n\n      if (t1 >= 0 && t1 <= 1) {\n        extrema[n++] = t1;\n      }\n\n      if (t2 >= 0 && t2 <= 1) {\n        extrema[n++] = t2;\n      }\n    }\n  }\n\n  return n;\n}\n/**\n * 缁嗗垎涓夋璐濆灏旀洸绾縗n * @memberOf module:zrender/core/curve\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} p3\n * @param  {number} t\n * @param  {Array.<number>} out\n */\n\n\nfunction cubicSubdivide(p0, p1, p2, p3, t, out) {\n  var p01 = (p1 - p0) * t + p0;\n  var p12 = (p2 - p1) * t + p1;\n  var p23 = (p3 - p2) * t + p2;\n  var p012 = (p12 - p01) * t + p01;\n  var p123 = (p23 - p12) * t + p12;\n  var p0123 = (p123 - p012) * t + p012; // Seg0\n\n  out[0] = p0;\n  out[1] = p01;\n  out[2] = p012;\n  out[3] = p0123; // Seg1\n\n  out[4] = p0123;\n  out[5] = p123;\n  out[6] = p23;\n  out[7] = p3;\n}\n/**\n * 鎶曞皠鐐瑰埌涓夋璐濆灏旀洸绾夸笂锛岃繑鍥炴姇灏勮窛绂汇�俓n * 鎶曞皠鐐规湁鍙兘浼氭湁涓�涓垨鑰呭涓紝杩欓噷鍙繑鍥炲叾涓窛绂绘渶鐭殑涓�涓�俓n * @param {number} x0\n * @param {number} y0\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @param {number} x3\n * @param {number} y3\n * @param {number} x\n * @param {number} y\n * @param {Array.<number>} [out] 鎶曞皠鐐筡n * @return {number}\n */\n\n\nfunction cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n  // http://pomax.github.io/bezierinfo/#projections\n  var t;\n  var interval = 0.005;\n  var d = Infinity;\n  var prev;\n  var next;\n  var d1;\n  var d2;\n  _v0[0] = x;\n  _v0[1] = y; // 鍏堢矖鐣ヤ及璁′竴涓嬪彲鑳界殑鏈�灏忚窛绂荤殑 t 鍊糪n  // PENDING\n\n  for (var _t = 0; _t < 1; _t += 0.05) {\n    _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n    _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n    d1 = v2DistSquare(_v0, _v1);\n\n    if (d1 < d) {\n      t = _t;\n      d = d1;\n    }\n  }\n\n  d = Infinity; // At most 32 iteration\n\n  for (var i = 0; i < 32; i++) {\n    if (interval < EPSILON_NUMERIC) {\n      break;\n    }\n\n    prev = t - interval;\n    next = t + interval; // t - interval\n\n    _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n    _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n    d1 = v2DistSquare(_v1, _v0);\n\n    if (prev >= 0 && d1 < d) {\n      t = prev;\n      d = d1;\n    } else {\n      // t + interval\n      _v2[0] = cubicAt(x0, x1, x2, x3, next);\n      _v2[1] = cubicAt(y0, y1, y2, y3, next);\n      d2 = v2DistSquare(_v2, _v0);\n\n      if (next <= 1 && d2 < d) {\n        t = next;\n        d = d2;\n      } else {\n        interval *= 0.5;\n      }\n    }\n  } // t\n\n\n  if (out) {\n    out[0] = cubicAt(x0, x1, x2, x3, t);\n    out[1] = cubicAt(y0, y1, y2, y3, t);\n  } // console.log(interval, i);\n\n\n  return mathSqrt(d);\n}\n/**\n * 璁$畻浜屾鏂硅礉濉炲皵鍊糪n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} t\n * @return {number}\n */\n\n\nfunction quadraticAt(p0, p1, p2, t) {\n  var onet = 1 - t;\n  return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\n/**\n * 璁$畻浜屾鏂硅礉濉炲皵瀵兼暟鍊糪n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} t\n * @return {number}\n */\n\n\nfunction quadraticDerivativeAt(p0, p1, p2, t) {\n  return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\n/**\n * 璁$畻浜屾鏂硅礉濉炲皵鏂圭▼鏍筡n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} t\n * @param  {Array.<number>} roots\n * @return {number} 鏈夋晥鏍规暟鐩甛n */\n\n\nfunction quadraticRootAt(p0, p1, p2, val, roots) {\n  var a = p0 - 2 * p1 + p2;\n  var b = 2 * (p1 - p0);\n  var c = p0 - val;\n  var n = 0;\n\n  if (isAroundZero(a)) {\n    if (isNotAroundZero(b)) {\n      var t1 = -c / b;\n\n      if (t1 >= 0 && t1 <= 1) {\n        roots[n++] = t1;\n      }\n    }\n  } else {\n    var disc = b * b - 4 * a * c;\n\n    if (isAroundZero(disc)) {\n      var t1 = -b / (2 * a);\n\n      if (t1 >= 0 && t1 <= 1) {\n        roots[n++] = t1;\n      }\n    } else if (disc > 0) {\n      var discSqrt = mathSqrt(disc);\n      var t1 = (-b + discSqrt) / (2 * a);\n      var t2 = (-b - discSqrt) / (2 * a);\n\n      if (t1 >= 0 && t1 <= 1) {\n        roots[n++] = t1;\n      }\n\n      if (t2 >= 0 && t2 <= 1) {\n        roots[n++] = t2;\n      }\n    }\n  }\n\n  return n;\n}\n/**\n * 璁$畻浜屾璐濆灏旀柟绋嬫瀬闄愬�糪n * @memberOf module:zrender/core/curve\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @return {number}\n */\n\n\nfunction quadraticExtremum(p0, p1, p2) {\n  var divider = p0 + p2 - 2 * p1;\n\n  if (divider === 0) {\n    // p1 is center of p0 and p2\n    return 0.5;\n  } else {\n    return (p0 - p1) / divider;\n  }\n}\n/**\n * 缁嗗垎浜屾璐濆灏旀洸绾縗n * @memberOf module:zrender/core/curve\n * @param  {number} p0\n * @param  {number} p1\n * @param  {number} p2\n * @param  {number} t\n * @param  {Array.<number>} out\n */\n\n\nfunction quadraticSubdivide(p0, p1, p2, t, out) {\n  var p01 = (p1 - p0) * t + p0;\n  var p12 = (p2 - p1) * t + p1;\n  var p012 = (p12 - p01) * t + p01; // Seg0\n\n  out[0] = p0;\n  out[1] = p01;\n  out[2] = p012; // Seg1\n\n  out[3] = p012;\n  out[4] = p12;\n  out[5] = p2;\n}\n/**\n * 鎶曞皠鐐瑰埌浜屾璐濆灏旀洸绾夸笂锛岃繑鍥炴姇灏勮窛绂汇�俓n * 鎶曞皠鐐规湁鍙兘浼氭湁涓�涓垨鑰呭涓紝杩欓噷鍙繑鍥炲叾涓窛绂绘渶鐭殑涓�涓�俓n * @param {number} x0\n * @param {number} y0\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @param {number} x\n * @param {number} y\n * @param {Array.<number>} out 鎶曞皠鐐筡n * @return {number}\n */\n\n\nfunction quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n  // http://pomax.github.io/bezierinfo/#projections\n  var t;\n  var interval = 0.005;\n  var d = Infinity;\n  _v0[0] = x;\n  _v0[1] = y; // 鍏堢矖鐣ヤ及璁′竴涓嬪彲鑳界殑鏈�灏忚窛绂荤殑 t 鍊糪n  // PENDING\n\n  for (var _t = 0; _t < 1; _t += 0.05) {\n    _v1[0] = quadraticAt(x0, x1, x2, _t);\n    _v1[1] = quadraticAt(y0, y1, y2, _t);\n    var d1 = v2DistSquare(_v0, _v1);\n\n    if (d1 < d) {\n      t = _t;\n      d = d1;\n    }\n  }\n\n  d = Infinity; // At most 32 iteration\n\n  for (var i = 0; i < 32; i++) {\n    if (interval < EPSILON_NUMERIC) {\n      break;\n    }\n\n    var prev = t - interval;\n    var next = t + interval; // t - interval\n\n    _v1[0] = quadraticAt(x0, x1, x2, prev);\n    _v1[1] = quadraticAt(y0, y1, y2, prev);\n    var d1 = v2DistSquare(_v1, _v0);\n\n    if (prev >= 0 && d1 < d) {\n      t = prev;\n      d = d1;\n    } else {\n      // t + interval\n      _v2[0] = quadraticAt(x0, x1, x2, next);\n      _v2[1] = quadraticAt(y0, y1, y2, next);\n      var d2 = v2DistSquare(_v2, _v0);\n\n      if (next <= 1 && d2 < d) {\n        t = next;\n        d = d2;\n      } else {\n        interval *= 0.5;\n      }\n    }\n  } // t\n\n\n  if (out) {\n    out[0] = quadraticAt(x0, x1, x2, t);\n    out[1] = quadraticAt(y0, y1, y2, t);\n  } // console.log(interval, i);\n\n\n  return mathSqrt(d);\n}\n\nexports.cubicAt = cubicAt;\nexports.cubicDerivativeAt = cubicDerivativeAt;\nexports.cubicRootAt = cubicRootAt;\nexports.cubicExtrema = cubicExtrema;\nexports.cubicSubdivide = cubicSubdivide;\nexports.cubicProjectPoint = cubicProjectPoint;\nexports.quadraticAt = quadraticAt;\nexports.quadraticDerivativeAt = quadraticDerivativeAt;\nexports.quadraticRootAt = quadraticRootAt;\nexports.quadraticExtremum = quadraticExtremum;\nexports.quadraticSubdivide = quadraticSubdivide;\nexports.quadraticProjectPoint = quadraticProjectPoint;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/curve.js\n// module id = YepE\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _clazz = require(\"../util/clazz\");\n\nvar enableClassCheck = _clazz.enableClassCheck;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Graph data structure\n *\n * @module echarts/data/Graph\n * @author Yi Shen(https://www.github.com/pissang)\n */\n// id may be function name of Object, add a prefix to avoid this problem.\nfunction generateNodeKey(id) {\n  return '_EC_' + id;\n}\n/**\n * @alias module:echarts/data/Graph\n * @constructor\n * @param {boolean} directed\n */\n\n\nvar Graph = function (directed) {\n  /**\n   * 鏄惁鏄湁鍚戝浘\n   * @type {boolean}\n   * @private\n   */\n  this._directed = directed || false;\n  /**\n   * @type {Array.<module:echarts/data/Graph.Node>}\n   * @readOnly\n   */\n\n  this.nodes = [];\n  /**\n   * @type {Array.<module:echarts/data/Graph.Edge>}\n   * @readOnly\n   */\n\n  this.edges = [];\n  /**\n   * @type {Object.<string, module:echarts/data/Graph.Node>}\n   * @private\n   */\n\n  this._nodesMap = {};\n  /**\n   * @type {Object.<string, module:echarts/data/Graph.Edge>}\n   * @private\n   */\n\n  this._edgesMap = {};\n  /**\n   * @type {module:echarts/data/List}\n   * @readOnly\n   */\n\n  this.data;\n  /**\n   * @type {module:echarts/data/List}\n   * @readOnly\n   */\n\n  this.edgeData;\n};\n\nvar graphProto = Graph.prototype;\n/**\n * @type {string}\n */\n\ngraphProto.type = 'graph';\n/**\n * If is directed graph\n * @return {boolean}\n */\n\ngraphProto.isDirected = function () {\n  return this._directed;\n};\n/**\n * Add a new node\n * @param {string} id\n * @param {number} [dataIndex]\n */\n\n\ngraphProto.addNode = function (id, dataIndex) {\n  id = id || '' + dataIndex;\n  var nodesMap = this._nodesMap;\n\n  if (nodesMap[generateNodeKey(id)]) {\n    return;\n  }\n\n  var node = new Node(id, dataIndex);\n  node.hostGraph = this;\n  this.nodes.push(node);\n  nodesMap[generateNodeKey(id)] = node;\n  return node;\n};\n/**\n * Get node by data index\n * @param  {number} dataIndex\n * @return {module:echarts/data/Graph~Node}\n */\n\n\ngraphProto.getNodeByIndex = function (dataIndex) {\n  var rawIdx = this.data.getRawIndex(dataIndex);\n  return this.nodes[rawIdx];\n};\n/**\n * Get node by id\n * @param  {string} id\n * @return {module:echarts/data/Graph.Node}\n */\n\n\ngraphProto.getNodeById = function (id) {\n  return this._nodesMap[generateNodeKey(id)];\n};\n/**\n * Add a new edge\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {number} [dataIndex=-1]\n * @return {module:echarts/data/Graph.Edge}\n */\n\n\ngraphProto.addEdge = function (n1, n2, dataIndex) {\n  var nodesMap = this._nodesMap;\n  var edgesMap = this._edgesMap; // PNEDING\n\n  if (typeof n1 === 'number') {\n    n1 = this.nodes[n1];\n  }\n\n  if (typeof n2 === 'number') {\n    n2 = this.nodes[n2];\n  }\n\n  if (!Node.isInstance(n1)) {\n    n1 = nodesMap[generateNodeKey(n1)];\n  }\n\n  if (!Node.isInstance(n2)) {\n    n2 = nodesMap[generateNodeKey(n2)];\n  }\n\n  if (!n1 || !n2) {\n    return;\n  }\n\n  var key = n1.id + '-' + n2.id; // PENDING\n\n  if (edgesMap[key]) {\n    return;\n  }\n\n  var edge = new Edge(n1, n2, dataIndex);\n  edge.hostGraph = this;\n\n  if (this._directed) {\n    n1.outEdges.push(edge);\n    n2.inEdges.push(edge);\n  }\n\n  n1.edges.push(edge);\n\n  if (n1 !== n2) {\n    n2.edges.push(edge);\n  }\n\n  this.edges.push(edge);\n  edgesMap[key] = edge;\n  return edge;\n};\n/**\n * Get edge by data index\n * @param  {number} dataIndex\n * @return {module:echarts/data/Graph~Node}\n */\n\n\ngraphProto.getEdgeByIndex = function (dataIndex) {\n  var rawIdx = this.edgeData.getRawIndex(dataIndex);\n  return this.edges[rawIdx];\n};\n/**\n * Get edge by two linked nodes\n * @param  {module:echarts/data/Graph.Node|string} n1\n * @param  {module:echarts/data/Graph.Node|string} n2\n * @return {module:echarts/data/Graph.Edge}\n */\n\n\ngraphProto.getEdge = function (n1, n2) {\n  if (Node.isInstance(n1)) {\n    n1 = n1.id;\n  }\n\n  if (Node.isInstance(n2)) {\n    n2 = n2.id;\n  }\n\n  var edgesMap = this._edgesMap;\n\n  if (this._directed) {\n    return edgesMap[n1 + '-' + n2];\n  } else {\n    return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n  }\n};\n/**\n * Iterate all nodes\n * @param  {Function} cb\n * @param  {*} [context]\n */\n\n\ngraphProto.eachNode = function (cb, context) {\n  var nodes = this.nodes;\n  var len = nodes.length;\n\n  for (var i = 0; i < len; i++) {\n    if (nodes[i].dataIndex >= 0) {\n      cb.call(context, nodes[i], i);\n    }\n  }\n};\n/**\n * Iterate all edges\n * @param  {Function} cb\n * @param  {*} [context]\n */\n\n\ngraphProto.eachEdge = function (cb, context) {\n  var edges = this.edges;\n  var len = edges.length;\n\n  for (var i = 0; i < len; i++) {\n    if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n      cb.call(context, edges[i], i);\n    }\n  }\n};\n/**\n * Breadth first traverse\n * @param {Function} cb\n * @param {module:echarts/data/Graph.Node} startNode\n * @param {string} [direction='none'] 'none'|'in'|'out'\n * @param {*} [context]\n */\n\n\ngraphProto.breadthFirstTraverse = function (cb, startNode, direction, context) {\n  if (!Node.isInstance(startNode)) {\n    startNode = this._nodesMap[generateNodeKey(startNode)];\n  }\n\n  if (!startNode) {\n    return;\n  }\n\n  var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n  for (var i = 0; i < this.nodes.length; i++) {\n    this.nodes[i].__visited = false;\n  }\n\n  if (cb.call(context, startNode, null)) {\n    return;\n  }\n\n  var queue = [startNode];\n\n  while (queue.length) {\n    var currentNode = queue.shift();\n    var edges = currentNode[edgeType];\n\n    for (var i = 0; i < edges.length; i++) {\n      var e = edges[i];\n      var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n      if (!otherNode.__visited) {\n        if (cb.call(context, otherNode, currentNode)) {\n          // Stop traversing\n          return;\n        }\n\n        queue.push(otherNode);\n        otherNode.__visited = true;\n      }\n    }\n  }\n}; // TODO\n// graphProto.depthFirstTraverse = function (\n//     cb, startNode, direction, context\n// ) {\n// };\n// Filter update\n\n\ngraphProto.update = function () {\n  var data = this.data;\n  var edgeData = this.edgeData;\n  var nodes = this.nodes;\n  var edges = this.edges;\n\n  for (var i = 0, len = nodes.length; i < len; i++) {\n    nodes[i].dataIndex = -1;\n  }\n\n  for (var i = 0, len = data.count(); i < len; i++) {\n    nodes[data.getRawIndex(i)].dataIndex = i;\n  }\n\n  edgeData.filterSelf(function (idx) {\n    var edge = edges[edgeData.getRawIndex(idx)];\n    return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n  }); // Update edge\n\n  for (var i = 0, len = edges.length; i < len; i++) {\n    edges[i].dataIndex = -1;\n  }\n\n  for (var i = 0, len = edgeData.count(); i < len; i++) {\n    edges[edgeData.getRawIndex(i)].dataIndex = i;\n  }\n};\n/**\n * @return {module:echarts/data/Graph}\n */\n\n\ngraphProto.clone = function () {\n  var graph = new Graph(this._directed);\n  var nodes = this.nodes;\n  var edges = this.edges;\n\n  for (var i = 0; i < nodes.length; i++) {\n    graph.addNode(nodes[i].id, nodes[i].dataIndex);\n  }\n\n  for (var i = 0; i < edges.length; i++) {\n    var e = edges[i];\n    graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n  }\n\n  return graph;\n};\n/**\n * @alias module:echarts/data/Graph.Node\n */\n\n\nfunction Node(id, dataIndex) {\n  /**\n  * @type {string}\n  */\n  this.id = id == null ? '' : id;\n  /**\n  * @type {Array.<module:echarts/data/Graph.Edge>}\n  */\n\n  this.inEdges = [];\n  /**\n  * @type {Array.<module:echarts/data/Graph.Edge>}\n  */\n\n  this.outEdges = [];\n  /**\n  * @type {Array.<module:echarts/data/Graph.Edge>}\n  */\n\n  this.edges = [];\n  /**\n   * @type {module:echarts/data/Graph}\n   */\n\n  this.hostGraph;\n  /**\n   * @type {number}\n   */\n\n  this.dataIndex = dataIndex == null ? -1 : dataIndex;\n}\n\nNode.prototype = {\n  constructor: Node,\n\n  /**\n   * @return {number}\n   */\n  degree: function () {\n    return this.edges.length;\n  },\n\n  /**\n   * @return {number}\n   */\n  inDegree: function () {\n    return this.inEdges.length;\n  },\n\n  /**\n  * @return {number}\n  */\n  outDegree: function () {\n    return this.outEdges.length;\n  },\n\n  /**\n   * @param {string} [path]\n   * @return {module:echarts/model/Model}\n   */\n  getModel: function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  }\n};\n/**\n * 鍥捐竟\n * @alias module:echarts/data/Graph.Edge\n * @param {module:echarts/data/Graph.Node} n1\n * @param {module:echarts/data/Graph.Node} n2\n * @param {number} [dataIndex=-1]\n */\n\nfunction Edge(n1, n2, dataIndex) {\n  /**\n   * 鑺傜偣1锛屽鏋滄槸鏈夊悜鍥惧垯涓烘簮鑺傜偣\n   * @type {module:echarts/data/Graph.Node}\n   */\n  this.node1 = n1;\n  /**\n   * 鑺傜偣2锛屽鏋滄槸鏈夊悜鍥惧垯涓虹洰鏍囪妭鐐筡n   * @type {module:echarts/data/Graph.Node}\n   */\n\n  this.node2 = n2;\n  this.dataIndex = dataIndex == null ? -1 : dataIndex;\n}\n/**\n * @param {string} [path]\n * @return {module:echarts/model/Model}\n */\n\n\nEdge.prototype.getModel = function (path) {\n  if (this.dataIndex < 0) {\n    return;\n  }\n\n  var graph = this.hostGraph;\n  var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n  return itemModel.getModel(path);\n};\n\nvar createGraphDataProxyMixin = function (hostName, dataName) {\n  return {\n    /**\n     * @param {string=} [dimension='value'] Default 'value'. can be 'a', 'b', 'c', 'd', 'e'.\n     * @return {number}\n     */\n    getValue: function (dimension) {\n      var data = this[hostName][dataName];\n      return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n    },\n\n    /**\n     * @param {Object|string} key\n     * @param {*} [value]\n     */\n    setVisual: function (key, value) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n    },\n\n    /**\n     * @param {string} key\n     * @return {boolean}\n     */\n    getVisual: function (key, ignoreParent) {\n      return this[hostName][dataName].getItemVisual(this.dataIndex, key, ignoreParent);\n    },\n\n    /**\n     * @param {Object} layout\n     * @return {boolean} [merge=false]\n     */\n    setLayout: function (layout, merge) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n    },\n\n    /**\n     * @return {Object}\n     */\n    getLayout: function () {\n      return this[hostName][dataName].getItemLayout(this.dataIndex);\n    },\n\n    /**\n     * @return {module:zrender/Element}\n     */\n    getGraphicEl: function () {\n      return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n    },\n\n    /**\n     * @return {number}\n     */\n    getRawIndex: function () {\n      return this[hostName][dataName].getRawIndex(this.dataIndex);\n    }\n  };\n};\n\nzrUtil.mixin(Node, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(Edge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nGraph.Node = Node;\nGraph.Edge = Edge;\nenableClassCheck(Node);\nenableClassCheck(Edge);\nvar _default = Graph;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/Graph.js\n// module id = YvCK\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapView = require(\"./VisualMapView\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar layout = require(\"../../util/layout\");\n\nvar helper = require(\"./helper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PiecewiseVisualMapView = VisualMapView.extend({\n  type: 'visualMap.piecewise',\n\n  /**\n   * @protected\n   * @override\n   */\n  doRender: function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var textStyleModel = visualMapModel.textStyleModel;\n    var textFont = textStyleModel.getFont();\n    var textFill = textStyleModel.getTextColor();\n\n    var itemAlign = this._getItemAlign();\n\n    var itemSize = visualMapModel.itemSize;\n\n    var viewData = this._getViewData();\n\n    var endsText = viewData.endsText;\n    var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n    endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n    zrUtil.each(viewData.viewPieceList, renderItem, this);\n    endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n    layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n    this.renderBackground(thisGroup);\n    this.positionGroup(thisGroup);\n\n    function renderItem(item) {\n      var piece = item.piece;\n      var itemGroup = new graphic.Group();\n      itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n      this._enableHoverLink(itemGroup, item.indexInModelPieceList);\n\n      var representValue = visualMapModel.getRepresentValue(piece);\n\n      this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n      if (showLabel) {\n        var visualState = this.visualMapModel.getValueState(representValue);\n        itemGroup.add(new graphic.Text({\n          style: {\n            x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n            y: itemSize[1] / 2,\n            text: piece.text,\n            textVerticalAlign: 'middle',\n            textAlign: itemAlign,\n            textFont: textFont,\n            textFill: textFill,\n            opacity: visualState === 'outOfRange' ? 0.5 : 1\n          }\n        }));\n      }\n\n      thisGroup.add(itemGroup);\n    }\n  },\n\n  /**\n   * @private\n   */\n  _enableHoverLink: function (itemGroup, pieceIndex) {\n    itemGroup.on('mouseover', zrUtil.bind(onHoverLink, this, 'highlight')).on('mouseout', zrUtil.bind(onHoverLink, this, 'downplay'));\n\n    function onHoverLink(method) {\n      var visualMapModel = this.visualMapModel;\n      visualMapModel.option.hoverLink && this.api.dispatchAction({\n        type: method,\n        batch: helper.convertDataIndex(visualMapModel.findTargetDataIndices(pieceIndex))\n      });\n    }\n  },\n\n  /**\n   * @private\n   */\n  _getItemAlign: function () {\n    var visualMapModel = this.visualMapModel;\n    var modelOption = visualMapModel.option;\n\n    if (modelOption.orient === 'vertical') {\n      return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n    } else {\n      // horizontal, most case left unless specifying right.\n      var align = modelOption.align;\n\n      if (!align || align === 'auto') {\n        align = 'left';\n      }\n\n      return align;\n    }\n  },\n\n  /**\n   * @private\n   */\n  _renderEndsText: function (group, text, itemSize, showLabel, itemAlign) {\n    if (!text) {\n      return;\n    }\n\n    var itemGroup = new graphic.Group();\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    itemGroup.add(new graphic.Text({\n      style: {\n        x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n        y: itemSize[1] / 2,\n        textVerticalAlign: 'middle',\n        textAlign: showLabel ? itemAlign : 'center',\n        text: text,\n        textFont: textStyleModel.getFont(),\n        textFill: textStyleModel.getTextColor()\n      }\n    }));\n    group.add(itemGroup);\n  },\n\n  /**\n   * @private\n   * @return {Object} {peiceList, endsText} The order is the same as screen pixel order.\n   */\n  _getViewData: function () {\n    var visualMapModel = this.visualMapModel;\n    var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n      return {\n        piece: piece,\n        indexInModelPieceList: index\n      };\n    });\n    var endsText = visualMapModel.get('text'); // Consider orient and inverse.\n\n    var orient = visualMapModel.get('orient');\n    var inverse = visualMapModel.get('inverse'); // Order of model pieceList is always [low, ..., high]\n\n    if (orient === 'horizontal' ? inverse : !inverse) {\n      viewPieceList.reverse();\n    } // Origin order of endsText is [high, low]\n    else if (endsText) {\n        endsText = endsText.slice().reverse();\n      }\n\n    return {\n      viewPieceList: viewPieceList,\n      endsText: endsText\n    };\n  },\n\n  /**\n   * @private\n   */\n  _createItemSymbol: function (group, representValue, shapeParam) {\n    group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\n  },\n\n  /**\n   * @private\n   */\n  _onItemClick: function (piece) {\n    var visualMapModel = this.visualMapModel;\n    var option = visualMapModel.option;\n    var selected = zrUtil.clone(option.selected);\n    var newKey = visualMapModel.getSelectedMapKey(piece);\n\n    if (option.selectedMode === 'single') {\n      selected[newKey] = true;\n      zrUtil.each(selected, function (o, key) {\n        selected[key] = key === newKey;\n      });\n    } else {\n      selected[newKey] = !selected[newKey];\n    }\n\n    this.api.dispatchAction({\n      type: 'selectDataRange',\n      from: this.uid,\n      visualMapId: this.visualMapModel.id,\n      selected: selected\n    });\n  }\n});\nvar _default = PiecewiseVisualMapView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/PiecewiseView.js\n// module id = Yw6K\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/symbol.js\n// module id = Yyxk\n// module chunks = 0","var SeriesModel = require(\"../../model/Series\");\n\nvar createDimensions = require(\"../../data/helper/createDimensions\");\n\nvar _dimensionHelper = require(\"../../data/helper/dimensionHelper\");\n\nvar getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;\n\nvar List = require(\"../../data/List\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar nest = require(\"../../util/array/nest\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file  Define the themeRiver view's series model\n * @author Deqing Li(annong035@gmail.com)\n */\nvar DATA_NAME_INDEX = 2;\nvar ThemeRiverSeries = SeriesModel.extend({\n  type: 'series.themeRiver',\n  dependencies: ['singleAxis'],\n\n  /**\n   * @readOnly\n   * @type {module:zrender/core/util#HashMap}\n   */\n  nameMap: null,\n\n  /**\n   * @override\n   */\n  init: function (option) {\n    ThemeRiverSeries.superApply(this, 'init', arguments); // Put this function here is for the sake of consistency of code style.\n    // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n    this.legendDataProvider = function () {\n      return this.getRawData();\n    };\n  },\n\n  /**\n   * If there is no value of a certain point in the time for some event,set it value to 0.\n   *\n   * @param {Array} data  initial data in the option\n   * @return {Array}\n   */\n  fixData: function (data) {\n    var rawDataLength = data.length; // grouped data by name\n\n    var dataByName = nest().key(function (dataItem) {\n      return dataItem[2];\n    }).entries(data); // data group in each layer\n\n    var layData = zrUtil.map(dataByName, function (d) {\n      return {\n        name: d.key,\n        dataList: d.values\n      };\n    });\n    var layerNum = layData.length;\n    var largestLayer = -1;\n    var index = -1;\n\n    for (var i = 0; i < layerNum; ++i) {\n      var len = layData[i].dataList.length;\n\n      if (len > largestLayer) {\n        largestLayer = len;\n        index = i;\n      }\n    }\n\n    for (var k = 0; k < layerNum; ++k) {\n      if (k === index) {\n        continue;\n      }\n\n      var name = layData[k].name;\n\n      for (var j = 0; j < largestLayer; ++j) {\n        var timeValue = layData[index].dataList[j][0];\n        var length = layData[k].dataList.length;\n        var keyIndex = -1;\n\n        for (var l = 0; l < length; ++l) {\n          var value = layData[k].dataList[l][0];\n\n          if (value === timeValue) {\n            keyIndex = l;\n            break;\n          }\n        }\n\n        if (keyIndex === -1) {\n          data[rawDataLength] = [];\n          data[rawDataLength][0] = timeValue;\n          data[rawDataLength][1] = 0;\n          data[rawDataLength][2] = name;\n          rawDataLength++;\n        }\n      }\n    }\n\n    return data;\n  },\n\n  /**\n   * @override\n   * @param  {Object} option  the initial option that user gived\n   * @param  {module:echarts/model/Model} ecModel  the model object for themeRiver option\n   * @return {module:echarts/data/List}\n   */\n  getInitialData: function (option, ecModel) {\n    var singleAxisModel = ecModel.queryComponents({\n      mainType: 'singleAxis',\n      index: this.get('singleAxisIndex'),\n      id: this.get('singleAxisId')\n    })[0];\n    var axisType = singleAxisModel.get('type'); // filter the data item with the value of label is undefined\n\n    var filterData = zrUtil.filter(option.data, function (dataItem) {\n      return dataItem[2] !== undefined;\n    }); // ??? TODO design a stage to transfer data for themeRiver and lines?\n\n    var data = this.fixData(filterData || []);\n    var nameList = [];\n    var nameMap = this.nameMap = zrUtil.createHashMap();\n    var count = 0;\n\n    for (var i = 0; i < data.length; ++i) {\n      nameList.push(data[i][DATA_NAME_INDEX]);\n\n      if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n        nameMap.set(data[i][DATA_NAME_INDEX], count);\n        count++;\n      }\n    }\n\n    var dimensionsInfo = createDimensions(data, {\n      coordDimensions: ['single'],\n      dimensionsDefine: [{\n        name: 'time',\n        type: getDimensionTypeByAxis(axisType)\n      }, {\n        name: 'value',\n        type: 'float'\n      }, {\n        name: 'name',\n        type: 'ordinal'\n      }],\n      encodeDefine: {\n        single: 0,\n        value: 1,\n        itemName: 2\n      }\n    });\n    var list = new List(dimensionsInfo, this);\n    list.initData(data);\n    return list;\n  },\n\n  /**\n   * The raw data is divided into multiple layers and each layer\n   *     has same name.\n   *\n   * @return {Array.<Array.<number>>}\n   */\n  getLayerSeries: function () {\n    var data = this.getData();\n    var lenCount = data.count();\n    var indexArr = [];\n\n    for (var i = 0; i < lenCount; ++i) {\n      indexArr[i] = i;\n    } // data group by name\n\n\n    var dataByName = nest().key(function (index) {\n      return data.get('name', index);\n    }).entries(indexArr);\n    var layerSeries = zrUtil.map(dataByName, function (d) {\n      return {\n        name: d.key,\n        indices: d.values\n      };\n    });\n    var timeDim = data.mapDimension('single');\n\n    for (var j = 0; j < layerSeries.length; ++j) {\n      layerSeries[j].indices.sort(comparer);\n    }\n\n    function comparer(index1, index2) {\n      return data.get(timeDim, index1) - data.get(timeDim, index2);\n    }\n\n    return layerSeries;\n  },\n\n  /**\n   * Get data indices for show tooltip content\n   *\n   * @param {Array.<string>|string} dim  single coordinate dimension\n   * @param {number} value axis value\n   * @param {module:echarts/coord/single/SingleAxis} baseAxis  single Axis used\n   *     the themeRiver.\n   * @return {Object} {dataIndices, nestestValue}\n   */\n  getAxisTooltipData: function (dim, value, baseAxis) {\n    if (!zrUtil.isArray(dim)) {\n      dim = dim ? [dim] : [];\n    }\n\n    var data = this.getData();\n    var layerSeries = this.getLayerSeries();\n    var indices = [];\n    var layerNum = layerSeries.length;\n    var nestestValue;\n\n    for (var i = 0; i < layerNum; ++i) {\n      var minDist = Number.MAX_VALUE;\n      var nearestIdx = -1;\n      var pointNum = layerSeries[i].indices.length;\n\n      for (var j = 0; j < pointNum; ++j) {\n        var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n        var dist = Math.abs(theValue - value);\n\n        if (dist <= minDist) {\n          nestestValue = theValue;\n          minDist = dist;\n          nearestIdx = layerSeries[i].indices[j];\n        }\n      }\n\n      indices.push(nearestIdx);\n    }\n\n    return {\n      dataIndices: indices,\n      nestestValue: nestestValue\n    };\n  },\n\n  /**\n   * @override\n   * @param {number} dataIndex  index of data\n   */\n  formatTooltip: function (dataIndex) {\n    var data = this.getData();\n    var htmlName = data.getName(dataIndex);\n    var htmlValue = data.get(data.mapDimension('value'), dataIndex);\n\n    if (isNaN(htmlValue) || htmlValue == null) {\n      htmlValue = '-';\n    }\n\n    return encodeHTML(htmlName + ' : ' + htmlValue);\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'singleAxis',\n    // gap in axis's orthogonal orientation\n    boundaryGap: ['10%', '10%'],\n    // legendHoverLink: true,\n    singleAxisIndex: 0,\n    animationEasing: 'linear',\n    label: {\n      margin: 4,\n      show: true,\n      position: 'left',\n      color: '#000',\n      fontSize: 11\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  }\n});\nvar _default = ThemeRiverSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver/ThemeRiverSeries.js\n// module id = Z5sy\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.removeResizeListener = exports.addResizeListener = undefined;\n\nvar _resizeObserverPolyfill = require('resize-observer-polyfill');\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isServer = typeof window === 'undefined';\n\n/* istanbul ignore next */\nvar resizeHandler = function resizeHandler(entries) {\n  for (var _iterator = entries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n    var _ref;\n\n    if (_isArray) {\n      if (_i >= _iterator.length) break;\n      _ref = _iterator[_i++];\n    } else {\n      _i = _iterator.next();\n      if (_i.done) break;\n      _ref = _i.value;\n    }\n\n    var entry = _ref;\n\n    var listeners = entry.target.__resizeListeners__ || [];\n    if (listeners.length) {\n      listeners.forEach(function (fn) {\n        fn();\n      });\n    }\n  }\n};\n\n/* istanbul ignore next */\nvar addResizeListener = exports.addResizeListener = function addResizeListener(element, fn) {\n  if (isServer) return;\n  if (!element.__resizeListeners__) {\n    element.__resizeListeners__ = [];\n    element.__ro__ = new _resizeObserverPolyfill2.default(resizeHandler);\n    element.__ro__.observe(element);\n  }\n  element.__resizeListeners__.push(fn);\n};\n\n/* istanbul ignore next */\nvar removeResizeListener = exports.removeResizeListener = function removeResizeListener(element, fn) {\n  if (!element || !element.__resizeListeners__) return;\n  element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n  if (!element.__resizeListeners__.length) {\n    element.__ro__.disconnect();\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/resize-event.js\n// module id = ZCDV\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_iterators.js\n// module id = ZVlJ\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar filter = _util.filter;\nvar map = _util.map;\nvar isArray = _util.isArray;\nvar indexOf = _util.indexOf;\nvar isObject = _util.isObject;\nvar isString = _util.isString;\nvar createHashMap = _util.createHashMap;\nvar assert = _util.assert;\nvar clone = _util.clone;\nvar merge = _util.merge;\nvar extend = _util.extend;\nvar mixin = _util.mixin;\n\nvar modelUtil = require(\"../util/model\");\n\nvar Model = require(\"./Model\");\n\nvar ComponentModel = require(\"./Component\");\n\nvar globalDefault = require(\"./globalDefault\");\n\nvar colorPaletteMixin = require(\"./mixin/colorPalette\");\n\nvar _sourceHelper = require(\"../data/helper/sourceHelper\");\n\nvar resetSourceDefaulter = _sourceHelper.resetSourceDefaulter;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * ECharts global model\n *\n * @module {echarts/model/Global}\n */\n\n/**\n * Caution: If the mechanism should be changed some day, these cases\n * should be considered:\n *\n * (1) In `merge option` mode, if using the same option to call `setOption`\n * many times, the result should be the same (try our best to ensure that).\n * (2) In `merge option` mode, if a component has no id/name specified, it\n * will be merged by index, and the result sequence of the components is\n * consistent to the original sequence.\n * (3) `reset` feature (in toolbox). Find detailed info in comments about\n * `mergeOption` in module:echarts/model/OptionManager.\n */\nvar OPTION_INNER_KEY = '\\0_ec_inner';\n/**\n * @alias module:echarts/model/Global\n *\n * @param {Object} option\n * @param {module:echarts/model/Model} parentModel\n * @param {Object} theme\n */\n\nvar GlobalModel = Model.extend({\n  init: function (option, parentModel, theme, optionManager) {\n    theme = theme || {};\n    this.option = null; // Mark as not initialized.\n\n    /**\n     * @type {module:echarts/model/Model}\n     * @private\n     */\n\n    this._theme = new Model(theme);\n    /**\n     * @type {module:echarts/model/OptionManager}\n     */\n\n    this._optionManager = optionManager;\n  },\n  setOption: function (option, optionPreprocessorFuncs) {\n    assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs);\n\n    this.resetOption(null);\n  },\n\n  /**\n   * @param {string} type null/undefined: reset all.\n   *                      'recreate': force recreate all.\n   *                      'timeline': only reset timeline option\n   *                      'media': only reset media query option\n   * @return {boolean} Whether option changed.\n   */\n  resetOption: function (type) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase.call(this, baseOption);\n      } else {\n        this.restoreData();\n        this.mergeOption(baseOption);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n      timelineOption && (this.mergeOption(timelineOption), optionChanged = true);\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this, this._api);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          this.mergeOption(mediaOption, optionChanged = true);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  },\n\n  /**\n   * @protected\n   */\n  mergeOption: function (newOption) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var newCptTypes = [];\n    resetSourceDefaulter(this); // If no component class, merge directly.\n    // For example: color, animaiton options, etc.\n\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        // globalSettingTask.dirty();\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCptTypes.push(mainType);\n      }\n    });\n    ComponentModel.topologicalTravel(newCptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType, dependencies) {\n      var newCptOptionList = modelUtil.normalizeToArray(newOption[mainType]);\n      var mapResult = modelUtil.mappingToExists(componentsMap.get(mainType), newCptOptionList);\n      modelUtil.makeIdAndName(mapResult); // Set mainType and complete subType.\n\n      each(mapResult, function (item, index) {\n        var opt = item.option;\n\n        if (isObject(opt)) {\n          item.keyInfo.mainType = mainType;\n          item.keyInfo.subType = determineSubType(mainType, opt, item.exist);\n        }\n      });\n      var dependentModels = getComponentsByTypes(componentsMap, dependencies);\n      option[mainType] = [];\n      componentsMap.set(mainType, []);\n      each(mapResult, function (resultItem, index) {\n        var componentModel = resultItem.exist;\n        var newCptOption = resultItem.option;\n        assert(isObject(newCptOption) || componentModel, 'Empty component definition'); // Consider where is no new option and should be merged using {},\n        // see removeEdgeAndAdd in topologicalTravel and\n        // ComponentModel.getAllClassMainTypes.\n\n        if (!newCptOption) {\n          componentModel.mergeOption({}, this);\n          componentModel.optionUpdated({}, false);\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel instanceof ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name; // componentModel.settingTask && componentModel.settingTask.dirty();\n\n            componentModel.mergeOption(newCptOption, this);\n            componentModel.optionUpdated(newCptOption, false);\n          } else {\n            // PENDING Global as parent ?\n            var extraOpt = extend({\n              dependentModels: dependentModels,\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n            componentModel.init(newCptOption, this, this, extraOpt); // Call optionUpdated after init.\n            // newCptOption has been used as componentModel.option\n            // and may be merged with theme and default, so pass null\n            // to avoid confusion.\n\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        componentsMap.get(mainType)[index] = componentModel;\n        option[mainType][index] = componentModel.option;\n      }, this); // Backup series for filtering.\n\n      if (mainType === 'series') {\n        createSeriesIndices(this, componentsMap.get('series'));\n      }\n    }\n\n    this._seriesIndicesMap = createHashMap(this._seriesIndices = this._seriesIndices || []);\n  },\n\n  /**\n   * Get option for output (cloned option and inner info removed)\n   * @public\n   * @return {Object}\n   */\n  getOption: function () {\n    var option = clone(this.option);\n    each(option, function (opts, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(opts);\n\n        for (var i = opts.length - 1; i >= 0; i--) {\n          // Remove options with inner id.\n          if (modelUtil.isIdInner(opts[i])) {\n            opts.splice(i, 1);\n          }\n        }\n\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  },\n\n  /**\n   * @return {module:echarts/model/Model}\n   */\n  getTheme: function () {\n    return this._theme;\n  },\n\n  /**\n   * @param {string} mainType\n   * @param {number} [idx=0]\n   * @return {module:echarts/model/Component}\n   */\n  getComponent: function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      return list[idx || 0];\n    }\n  },\n\n  /**\n   * If none of index and id and name used, return all components with mainType.\n   * @param {Object} condition\n   * @param {string} condition.mainType\n   * @param {string} [condition.subType] If ignore, only query by mainType\n   * @param {number|Array.<number>} [condition.index] Either input index or id or name.\n   * @param {string|Array.<string>} [condition.id] Either input index or id or name.\n   * @param {string|Array.<string>} [condition.name] Either input index or id or name.\n   * @return {Array.<module:echarts/model/Component>}\n   */\n  queryComponents: function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cpts = this._componentsMap.get(mainType);\n\n    if (!cpts || !cpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      if (!isArray(index)) {\n        index = [index];\n      }\n\n      result = filter(map(index, function (idx) {\n        return cpts[idx];\n      }), function (val) {\n        return !!val;\n      });\n    } else if (id != null) {\n      var isIdArray = isArray(id);\n      result = filter(cpts, function (cpt) {\n        return isIdArray && indexOf(id, cpt.id) >= 0 || !isIdArray && cpt.id === id;\n      });\n    } else if (name != null) {\n      var isNameArray = isArray(name);\n      result = filter(cpts, function (cpt) {\n        return isNameArray && indexOf(name, cpt.name) >= 0 || !isNameArray && cpt.name === name;\n      });\n    } else {\n      // Return all components with mainType\n      result = cpts.slice();\n    }\n\n    return filterBySubType(result, condition);\n  },\n\n  /**\n   * The interface is different from queryComponents,\n   * which is convenient for inner usage.\n   *\n   * @usage\n   * var result = findComponents(\n   *     {mainType: 'dataZoom', query: {dataZoomId: 'abc'}}\n   * );\n   * var result = findComponents(\n   *     {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}}\n   * );\n   * var result = findComponents(\n   *     {mainType: 'series'},\n   *     function (model, index) {...}\n   * );\n   * // result like [component0, componnet1, ...]\n   *\n   * @param {Object} condition\n   * @param {string} condition.mainType Mandatory.\n   * @param {string} [condition.subType] Optional.\n   * @param {Object} [condition.query] like {xxxIndex, xxxId, xxxName},\n   *        where xxx is mainType.\n   *        If query attribute is null/undefined or has no index/id/name,\n   *        do not filtering by query conditions, which is convenient for\n   *        no-payload situations or when target of action is global.\n   * @param {Function} [condition.filter] parameter: component, return boolean.\n   * @return {Array.<module:echarts/model/Component>}\n   */\n  findComponents: function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : this._componentsMap.get(mainType);\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        // subType will be filtered finally.\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  },\n\n  /**\n   * @usage\n   * eachComponent('legend', function (legendModel, index) {\n   *     ...\n   * });\n   * eachComponent(function (componentType, model, index) {\n   *     // componentType does not include subType\n   *     // (componentType is 'xxx' but not 'xxx.aa')\n   * });\n   * eachComponent(\n   *     {mainType: 'dataZoom', query: {dataZoomId: 'abc'}},\n   *     function (model, index) {...}\n   * );\n   * eachComponent(\n   *     {mainType: 'series', subType: 'pie', query: {seriesName: 'uio'}},\n   *     function (model, index) {...}\n   * );\n   *\n   * @param {string|Object=} mainType When mainType is object, the definition\n   *                                  is the same as the method 'findComponents'.\n   * @param {Function} cb\n   * @param {*} context\n   */\n  eachComponent: function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (typeof mainType === 'function') {\n      context = cb;\n      cb = mainType;\n      componentsMap.each(function (components, componentType) {\n        each(components, function (component, index) {\n          cb.call(context, componentType, component, index);\n        });\n      });\n    } else if (isString(mainType)) {\n      each(componentsMap.get(mainType), cb, context);\n    } else if (isObject(mainType)) {\n      var queryResult = this.findComponents(mainType);\n      each(queryResult, cb, context);\n    }\n  },\n\n  /**\n   * @param {string} name\n   * @return {Array.<module:echarts/model/Series>}\n   */\n  getSeriesByName: function (name) {\n    var series = this._componentsMap.get('series');\n\n    return filter(series, function (oneSeries) {\n      return oneSeries.name === name;\n    });\n  },\n\n  /**\n   * @param {number} seriesIndex\n   * @return {module:echarts/model/Series}\n   */\n  getSeriesByIndex: function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  },\n\n  /**\n   * Get series list before filtered by type.\n   * FIXME: rename to getRawSeriesByType?\n   *\n   * @param {string} subType\n   * @return {Array.<module:echarts/model/Series>}\n   */\n  getSeriesByType: function (subType) {\n    var series = this._componentsMap.get('series');\n\n    return filter(series, function (oneSeries) {\n      return oneSeries.subType === subType;\n    });\n  },\n\n  /**\n   * @return {Array.<module:echarts/model/Series>}\n   */\n  getSeries: function () {\n    return this._componentsMap.get('series').slice();\n  },\n\n  /**\n   * @return {number}\n   */\n  getSeriesCount: function () {\n    return this._componentsMap.get('series').length;\n  },\n\n  /**\n   * After filtering, series may be different\n   * frome raw series.\n   *\n   * @param {Function} cb\n   * @param {*} context\n   */\n  eachSeries: function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  },\n\n  /**\n   * Iterate raw series before filtered.\n   *\n   * @param {Function} cb\n   * @param {*} context\n   */\n  eachRawSeries: function (cb, context) {\n    each(this._componentsMap.get('series'), cb, context);\n  },\n\n  /**\n   * After filtering, series may be different.\n   * frome raw series.\n   *\n   * @parma {string} subType\n   * @param {Function} cb\n   * @param {*} context\n   */\n  eachSeriesByType: function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  },\n\n  /**\n   * Iterate raw series before filtered of given type.\n   *\n   * @parma {string} subType\n   * @param {Function} cb\n   * @param {*} context\n   */\n  eachRawSeriesByType: function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  },\n\n  /**\n   * @param {module:echarts/model/Series} seriesModel\n   */\n  isSeriesFiltered: function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  },\n\n  /**\n   * @return {Array.<number>}\n   */\n  getCurrentSeriesIndices: function () {\n    return (this._seriesIndices || []).slice();\n  },\n\n  /**\n   * @param {Function} cb\n   * @param {*} context\n   */\n  filterSeries: function (cb, context) {\n    assertSeriesInitialized(this);\n    var filteredSeries = filter(this._componentsMap.get('series'), cb, context);\n    createSeriesIndices(this, filteredSeries);\n  },\n  restoreData: function (payload) {\n    var componentsMap = this._componentsMap;\n    createSeriesIndices(this, componentsMap.get('series'));\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      componentTypes.push(componentType);\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType, dependencies) {\n      each(componentsMap.get(componentType), function (component) {\n        (componentType !== 'series' || !isNotTargetSeries(component, payload)) && component.restoreData();\n      });\n    });\n  }\n});\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seiresIndex;\n    var id = payload.seriesId;\n    var name = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name != null && seriesModel.name !== name;\n  }\n}\n/**\n * @inner\n */\n\n\nfunction mergeTheme(option, theme) {\n  // PENDING\n  // NOT use `colorLayer` in theme if option has `color`\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    } // 濡傛灉鏈� component model 鍒欐妸鍏蜂綋鐨� merge 閫昏緫浜ょ粰璇� model 澶勭悊\n\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction initBase(baseOption) {\n  baseOption = baseOption; // Using OPTION_INNER_KEY to mark that this option can not be used outside,\n  // i.e. `chart.setOption(chart.getModel().option);` is forbiden.\n\n  this.option = {};\n  this.option[OPTION_INNER_KEY] = 1;\n  /**\n   * Init with series: [], in case of calling findSeries method\n   * before series initialized.\n   * @type {Object.<string, Array.<module:echarts/model/Model>>}\n   * @private\n   */\n\n  this._componentsMap = createHashMap({\n    series: []\n  });\n  /**\n   * Mapping between filtered series list and raw series list.\n   * key: filtered series indices, value: raw series indices.\n   * @type {Array.<nubmer>}\n   * @private\n   */\n\n  this._seriesIndices;\n  this._seriesIndicesMap;\n  mergeTheme(baseOption, this._theme.option); // TODO Needs clone when merging to the unexisted property\n\n  merge(baseOption, globalDefault, false);\n  this.mergeOption(baseOption);\n}\n/**\n * @inner\n * @param {Array.<string>|string} types model types\n * @return {Object} key: {string} type, value: {Array.<Object>} models\n */\n\n\nfunction getComponentsByTypes(componentsMap, types) {\n  if (!isArray(types)) {\n    types = types ? [types] : [];\n  }\n\n  var ret = {};\n  each(types, function (type) {\n    ret[type] = (componentsMap.get(type) || []).slice();\n  });\n  return ret;\n}\n/**\n * @inner\n */\n\n\nfunction determineSubType(mainType, newCptOption, existComponent) {\n  var subType = newCptOption.type ? newCptOption.type : existComponent ? existComponent.subType // Use determineSubType only when there is no existComponent.\n  : ComponentModel.determineSubType(mainType, newCptOption); // tooltip, markline, markpoint may always has no subType\n\n  return subType;\n}\n/**\n * @inner\n */\n\n\nfunction createSeriesIndices(ecModel, seriesModels) {\n  ecModel._seriesIndicesMap = createHashMap(ecModel._seriesIndices = map(seriesModels, function (series) {\n    return series.componentIndex;\n  }) || []);\n}\n/**\n * @inner\n */\n\n\nfunction filterBySubType(components, condition) {\n  // Using hasOwnProperty for restrict. Consider\n  // subType is undefined in user payload.\n  return condition.hasOwnProperty('subType') ? filter(components, function (cpt) {\n    return cpt.subType === condition.subType;\n  }) : components;\n}\n/**\n * @inner\n */\n\n\nfunction assertSeriesInitialized(ecModel) {}\n\nmixin(GlobalModel, colorPaletteMixin);\nvar _default = GlobalModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/Global.js\n// module id = ZZvz\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar assert = _util.assert;\nvar isArray = _util.isArray;\n\nvar _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {Object} define\n * @return See the return of `createTask`.\n */\nfunction createTask(define) {\n  return new Task(define);\n}\n/**\n * @constructor\n * @param {Object} define\n * @param {Function} define.reset Custom reset\n * @param {Function} [define.plan] Returns 'reset' indicate reset immediately.\n * @param {Function} [define.count] count is used to determin data task.\n * @param {Function} [define.onDirty] count is used to determin data task.\n */\n\n\nfunction Task(define) {\n  define = define || {};\n  this._reset = define.reset;\n  this._plan = define.plan;\n  this._count = define.count;\n  this._onDirty = define.onDirty;\n  this._dirty = true; // Context must be specified implicitly, to\n  // avoid miss update context when model changed.\n\n  this.context;\n}\n\nvar taskProto = Task.prototype;\n/**\n * @param {Object} performArgs\n * @param {number} [performArgs.step] Specified step.\n * @param {number} [performArgs.skip] Skip customer perform call.\n * @param {number} [performArgs.modBy] Sampling window size.\n * @param {number} [performArgs.modDataCount] Sampling count.\n */\n\ntaskProto.perform = function (performArgs) {\n  var upTask = this._upstream;\n  var skip = performArgs && performArgs.skip; // TODO some refactor.\n  // Pull data. Must pull data each time, because context.data\n  // may be updated by Series.setData.\n\n  if (this._dirty && upTask) {\n    var context = this.context;\n    context.data = context.outputData = upTask.context.outputData;\n  }\n\n  if (this.__pipeline) {\n    this.__pipeline.currentTask = this;\n  }\n\n  var planResult;\n\n  if (this._plan && !skip) {\n    planResult = this._plan(this.context);\n  } // Support sharding by mod, which changes the render sequence and makes the rendered graphic\n  // elements uniformed distributed when progress, especially when moving or zooming.\n\n\n  var lastModBy = normalizeModBy(this._modBy);\n  var lastModDataCount = this._modDataCount || 0;\n  var modBy = normalizeModBy(performArgs && performArgs.modBy);\n  var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n  if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n    planResult = 'reset';\n  }\n\n  function normalizeModBy(val) {\n    !(val >= 1) && (val = 1); // jshint ignore:line\n\n    return val;\n  }\n\n  var forceFirstProgress;\n\n  if (this._dirty || planResult === 'reset') {\n    this._dirty = false;\n    forceFirstProgress = reset(this, skip);\n  }\n\n  this._modBy = modBy;\n  this._modDataCount = modDataCount;\n  var step = performArgs && performArgs.step;\n\n  if (upTask) {\n    this._dueEnd = upTask._outputDueEnd;\n  } // DataTask or overallTask\n  else {\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    } // Note: Stubs, that its host overall task let it has progress, has progress.\n  // If no progress, pass index from upstream to downstream each time plan called.\n\n\n  if (this._progress) {\n    var start = this._dueIndex;\n    var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n    if (!skip && (forceFirstProgress || start < end)) {\n      var progress = this._progress;\n\n      if (isArray(progress)) {\n        for (var i = 0; i < progress.length; i++) {\n          doProgress(this, progress[i], start, end, modBy, modDataCount);\n        }\n      } else {\n        doProgress(this, progress, start, end, modBy, modDataCount);\n      }\n    }\n\n    this._dueIndex = end; // If no `outputDueEnd`, assume that output data and\n    // input data is the same, so use `dueIndex` as `outputDueEnd`.\n\n    var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n    this._outputDueEnd = outputDueEnd;\n  } else {\n    // (1) Some overall task has no progress.\n    // (2) Stubs, that its host overall task do not let it has progress, has no progress.\n    // This should always be performed so it can be passed to downstream.\n    this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n  }\n\n  return this.unfinished();\n};\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex // If modDataCount is smaller than data.count() (consider `appendData` case),\n    // Use normal linear rendering mode.\n    : current;\n    current++;\n    return result;\n  }\n}();\n\ntaskProto.dirty = function () {\n  this._dirty = true;\n  this._onDirty && this._onDirty(this.context);\n};\n\nfunction doProgress(taskIns, progress, start, end, modBy, modDataCount) {\n  iterator.reset(start, end, modBy, modDataCount);\n  taskIns._callingProgress = progress;\n\n  taskIns._callingProgress({\n    start: start,\n    end: end,\n    count: end - start,\n    next: iterator.next\n  }, taskIns.context);\n}\n\nfunction reset(taskIns, skip) {\n  taskIns._dueIndex = taskIns._outputDueEnd = taskIns._dueEnd = 0;\n  taskIns._settedOutputEnd = null;\n  var progress;\n  var forceFirstProgress;\n\n  if (!skip && taskIns._reset) {\n    progress = taskIns._reset(taskIns.context);\n\n    if (progress && progress.progress) {\n      forceFirstProgress = progress.forceFirstProgress;\n      progress = progress.progress;\n    } // To simplify no progress checking, array must has item.\n\n\n    if (isArray(progress) && !progress.length) {\n      progress = null;\n    }\n  }\n\n  taskIns._progress = progress;\n  taskIns._modBy = taskIns._modDataCount = null;\n  var downstream = taskIns._downstream;\n  downstream && downstream.dirty();\n  return forceFirstProgress;\n}\n/**\n * @return {boolean}\n */\n\n\ntaskProto.unfinished = function () {\n  return this._progress && this._dueIndex < this._dueEnd;\n};\n/**\n * @param {Object} downTask The downstream task.\n * @return {Object} The downstream task.\n */\n\n\ntaskProto.pipe = function (downTask) {\n  // If already downstream, do not dirty downTask.\n  if (this._downstream !== downTask || this._dirty) {\n    this._downstream = downTask;\n    downTask._upstream = this;\n    downTask.dirty();\n  }\n};\n\ntaskProto.dispose = function () {\n  if (this._disposed) {\n    return;\n  }\n\n  this._upstream && (this._upstream._downstream = null);\n  this._downstream && (this._downstream._upstream = null);\n  this._dirty = false;\n  this._disposed = true;\n};\n\ntaskProto.getUpstream = function () {\n  return this._upstream;\n};\n\ntaskProto.getDownstream = function () {\n  return this._downstream;\n};\n\ntaskProto.setOutputEnd = function (end) {\n  // This only happend in dataTask, dataZoom, map, currently.\n  // where dataZoom do not set end each time, but only set\n  // when reset. So we should record the setted end, in case\n  // that the stub of dataZoom perform again and earse the\n  // setted end by upstream.\n  this._outputDueEnd = this._settedOutputEnd = end;\n}; ///////////////////////////////////////////////////////////\n// For stream debug (Should be commented out after used!)\n// Usage: printTask(this, 'begin');\n// Usage: printTask(this, null, {someExtraProp});\n// function printTask(task, prefix, extra) {\n//     window.ecTaskUID == null && (window.ecTaskUID = 0);\n//     task.uidDebug == null && (task.uidDebug = `task_${window.ecTaskUID++}`);\n//     task.agent && task.agent.uidDebug == null && (task.agent.uidDebug = `task_${window.ecTaskUID++}`);\n//     var props = [];\n//     if (task.__pipeline) {\n//         var val = `${task.__idxInPipeline}/${task.__pipeline.tail.__idxInPipeline} ${task.agent ? '(stub)' : ''}`;\n//         props.push({text: 'idx', value: val});\n//     } else {\n//         var stubCount = 0;\n//         task.agentStubMap.each(() => stubCount++);\n//         props.push({text: 'idx', value: `overall (stubs: ${stubCount})`});\n//     }\n//     props.push({text: 'uid', value: task.uidDebug});\n//     if (task.__pipeline) {\n//         props.push({text: 'pid', value: task.__pipeline.id});\n//         task.agent && props.push(\n//             {text: 'stubFor', value: task.agent.uidDebug}\n//         );\n//     }\n//     props.push(\n//         {text: 'dirty', value: task._dirty},\n//         {text: 'dueIndex', value: task._dueIndex},\n//         {text: 'dueEnd', value: task._dueEnd},\n//         {text: 'outputDueEnd', value: task._outputDueEnd}\n//     );\n//     if (extra) {\n//         Object.keys(extra).forEach(key => {\n//             props.push({text: key, value: extra[key]});\n//         });\n//     }\n//     var args = ['color: blue'];\n//     var msg = `%c[${prefix || 'T'}] %c` + props.map(item => (\n//         args.push('color: black', 'color: red'),\n//         `${item.text}: %c${item.value}`\n//     )).join('%c, ');\n//     console.log.apply(console, [msg].concat(args));\n//     // console.log(this);\n// }\n\n\nexports.createTask = createTask;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/stream/task.js\n// module id = ZgaJ\n// module chunks = 0","var LRU = require(\"../core/LRU\");\n\nvar kCSSColorTable = {\n  'transparent': [0, 0, 0, 0],\n  'aliceblue': [240, 248, 255, 1],\n  'antiquewhite': [250, 235, 215, 1],\n  'aqua': [0, 255, 255, 1],\n  'aquamarine': [127, 255, 212, 1],\n  'azure': [240, 255, 255, 1],\n  'beige': [245, 245, 220, 1],\n  'bisque': [255, 228, 196, 1],\n  'black': [0, 0, 0, 1],\n  'blanchedalmond': [255, 235, 205, 1],\n  'blue': [0, 0, 255, 1],\n  'blueviolet': [138, 43, 226, 1],\n  'brown': [165, 42, 42, 1],\n  'burlywood': [222, 184, 135, 1],\n  'cadetblue': [95, 158, 160, 1],\n  'chartreuse': [127, 255, 0, 1],\n  'chocolate': [210, 105, 30, 1],\n  'coral': [255, 127, 80, 1],\n  'cornflowerblue': [100, 149, 237, 1],\n  'cornsilk': [255, 248, 220, 1],\n  'crimson': [220, 20, 60, 1],\n  'cyan': [0, 255, 255, 1],\n  'darkblue': [0, 0, 139, 1],\n  'darkcyan': [0, 139, 139, 1],\n  'darkgoldenrod': [184, 134, 11, 1],\n  'darkgray': [169, 169, 169, 1],\n  'darkgreen': [0, 100, 0, 1],\n  'darkgrey': [169, 169, 169, 1],\n  'darkkhaki': [189, 183, 107, 1],\n  'darkmagenta': [139, 0, 139, 1],\n  'darkolivegreen': [85, 107, 47, 1],\n  'darkorange': [255, 140, 0, 1],\n  'darkorchid': [153, 50, 204, 1],\n  'darkred': [139, 0, 0, 1],\n  'darksalmon': [233, 150, 122, 1],\n  'darkseagreen': [143, 188, 143, 1],\n  'darkslateblue': [72, 61, 139, 1],\n  'darkslategray': [47, 79, 79, 1],\n  'darkslategrey': [47, 79, 79, 1],\n  'darkturquoise': [0, 206, 209, 1],\n  'darkviolet': [148, 0, 211, 1],\n  'deeppink': [255, 20, 147, 1],\n  'deepskyblue': [0, 191, 255, 1],\n  'dimgray': [105, 105, 105, 1],\n  'dimgrey': [105, 105, 105, 1],\n  'dodgerblue': [30, 144, 255, 1],\n  'firebrick': [178, 34, 34, 1],\n  'floralwhite': [255, 250, 240, 1],\n  'forestgreen': [34, 139, 34, 1],\n  'fuchsia': [255, 0, 255, 1],\n  'gainsboro': [220, 220, 220, 1],\n  'ghostwhite': [248, 248, 255, 1],\n  'gold': [255, 215, 0, 1],\n  'goldenrod': [218, 165, 32, 1],\n  'gray': [128, 128, 128, 1],\n  'green': [0, 128, 0, 1],\n  'greenyellow': [173, 255, 47, 1],\n  'grey': [128, 128, 128, 1],\n  'honeydew': [240, 255, 240, 1],\n  'hotpink': [255, 105, 180, 1],\n  'indianred': [205, 92, 92, 1],\n  'indigo': [75, 0, 130, 1],\n  'ivory': [255, 255, 240, 1],\n  'khaki': [240, 230, 140, 1],\n  'lavender': [230, 230, 250, 1],\n  'lavenderblush': [255, 240, 245, 1],\n  'lawngreen': [124, 252, 0, 1],\n  'lemonchiffon': [255, 250, 205, 1],\n  'lightblue': [173, 216, 230, 1],\n  'lightcoral': [240, 128, 128, 1],\n  'lightcyan': [224, 255, 255, 1],\n  'lightgoldenrodyellow': [250, 250, 210, 1],\n  'lightgray': [211, 211, 211, 1],\n  'lightgreen': [144, 238, 144, 1],\n  'lightgrey': [211, 211, 211, 1],\n  'lightpink': [255, 182, 193, 1],\n  'lightsalmon': [255, 160, 122, 1],\n  'lightseagreen': [32, 178, 170, 1],\n  'lightskyblue': [135, 206, 250, 1],\n  'lightslategray': [119, 136, 153, 1],\n  'lightslategrey': [119, 136, 153, 1],\n  'lightsteelblue': [176, 196, 222, 1],\n  'lightyellow': [255, 255, 224, 1],\n  'lime': [0, 255, 0, 1],\n  'limegreen': [50, 205, 50, 1],\n  'linen': [250, 240, 230, 1],\n  'magenta': [255, 0, 255, 1],\n  'maroon': [128, 0, 0, 1],\n  'mediumaquamarine': [102, 205, 170, 1],\n  'mediumblue': [0, 0, 205, 1],\n  'mediumorchid': [186, 85, 211, 1],\n  'mediumpurple': [147, 112, 219, 1],\n  'mediumseagreen': [60, 179, 113, 1],\n  'mediumslateblue': [123, 104, 238, 1],\n  'mediumspringgreen': [0, 250, 154, 1],\n  'mediumturquoise': [72, 209, 204, 1],\n  'mediumvioletred': [199, 21, 133, 1],\n  'midnightblue': [25, 25, 112, 1],\n  'mintcream': [245, 255, 250, 1],\n  'mistyrose': [255, 228, 225, 1],\n  'moccasin': [255, 228, 181, 1],\n  'navajowhite': [255, 222, 173, 1],\n  'navy': [0, 0, 128, 1],\n  'oldlace': [253, 245, 230, 1],\n  'olive': [128, 128, 0, 1],\n  'olivedrab': [107, 142, 35, 1],\n  'orange': [255, 165, 0, 1],\n  'orangered': [255, 69, 0, 1],\n  'orchid': [218, 112, 214, 1],\n  'palegoldenrod': [238, 232, 170, 1],\n  'palegreen': [152, 251, 152, 1],\n  'paleturquoise': [175, 238, 238, 1],\n  'palevioletred': [219, 112, 147, 1],\n  'papayawhip': [255, 239, 213, 1],\n  'peachpuff': [255, 218, 185, 1],\n  'peru': [205, 133, 63, 1],\n  'pink': [255, 192, 203, 1],\n  'plum': [221, 160, 221, 1],\n  'powderblue': [176, 224, 230, 1],\n  'purple': [128, 0, 128, 1],\n  'red': [255, 0, 0, 1],\n  'rosybrown': [188, 143, 143, 1],\n  'royalblue': [65, 105, 225, 1],\n  'saddlebrown': [139, 69, 19, 1],\n  'salmon': [250, 128, 114, 1],\n  'sandybrown': [244, 164, 96, 1],\n  'seagreen': [46, 139, 87, 1],\n  'seashell': [255, 245, 238, 1],\n  'sienna': [160, 82, 45, 1],\n  'silver': [192, 192, 192, 1],\n  'skyblue': [135, 206, 235, 1],\n  'slateblue': [106, 90, 205, 1],\n  'slategray': [112, 128, 144, 1],\n  'slategrey': [112, 128, 144, 1],\n  'snow': [255, 250, 250, 1],\n  'springgreen': [0, 255, 127, 1],\n  'steelblue': [70, 130, 180, 1],\n  'tan': [210, 180, 140, 1],\n  'teal': [0, 128, 128, 1],\n  'thistle': [216, 191, 216, 1],\n  'tomato': [255, 99, 71, 1],\n  'turquoise': [64, 224, 208, 1],\n  'violet': [238, 130, 238, 1],\n  'wheat': [245, 222, 179, 1],\n  'white': [255, 255, 255, 1],\n  'whitesmoke': [245, 245, 245, 1],\n  'yellow': [255, 255, 0, 1],\n  'yellowgreen': [154, 205, 50, 1]\n};\n\nfunction clampCssByte(i) {\n  // Clamp to integer 0 .. 255.\n  i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n\n  return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clampCssAngle(i) {\n  // Clamp to integer 0 .. 360.\n  i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n\n  return i < 0 ? 0 : i > 360 ? 360 : i;\n}\n\nfunction clampCssFloat(f) {\n  // Clamp to float 0.0 .. 1.0.\n  return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parseCssInt(str) {\n  // int or percentage.\n  if (str.length && str.charAt(str.length - 1) === '%') {\n    return clampCssByte(parseFloat(str) / 100 * 255);\n  }\n\n  return clampCssByte(parseInt(str, 10));\n}\n\nfunction parseCssFloat(str) {\n  // float or percentage.\n  if (str.length && str.charAt(str.length - 1) === '%') {\n    return clampCssFloat(parseFloat(str) / 100);\n  }\n\n  return clampCssFloat(parseFloat(str));\n}\n\nfunction cssHueToRgb(m1, m2, h) {\n  if (h < 0) {\n    h += 1;\n  } else if (h > 1) {\n    h -= 1;\n  }\n\n  if (h * 6 < 1) {\n    return m1 + (m2 - m1) * h * 6;\n  }\n\n  if (h * 2 < 1) {\n    return m2;\n  }\n\n  if (h * 3 < 2) {\n    return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n  }\n\n  return m1;\n}\n\nfunction lerpNumber(a, b, p) {\n  return a + (b - a) * p;\n}\n\nfunction setRgba(out, r, g, b, a) {\n  out[0] = r;\n  out[1] = g;\n  out[2] = b;\n  out[3] = a;\n  return out;\n}\n\nfunction copyRgba(out, a) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  return out;\n}\n\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\n\nfunction putToCache(colorStr, rgbaArr) {\n  // Reuse removed array\n  if (lastRemovedArr) {\n    copyRgba(lastRemovedArr, rgbaArr);\n  }\n\n  lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || rgbaArr.slice());\n}\n/**\n * @param {string} colorStr\n * @param {Array.<number>} out\n * @return {Array.<number>}\n * @memberOf module:zrender/util/color\n */\n\n\nfunction parse(colorStr, rgbaArr) {\n  if (!colorStr) {\n    return;\n  }\n\n  rgbaArr = rgbaArr || [];\n  var cached = colorCache.get(colorStr);\n\n  if (cached) {\n    return copyRgba(rgbaArr, cached);\n  } // colorStr may be not string\n\n\n  colorStr = colorStr + ''; // Remove all whitespace, not compliant, but should just be more accepting.\n\n  var str = colorStr.replace(/ /g, '').toLowerCase(); // Color keywords (and transparent) lookup.\n\n  if (str in kCSSColorTable) {\n    copyRgba(rgbaArr, kCSSColorTable[str]);\n    putToCache(colorStr, rgbaArr);\n    return rgbaArr;\n  } // #abc and #abc123 syntax.\n\n\n  if (str.charAt(0) === '#') {\n    if (str.length === 4) {\n      var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n\n      if (!(iv >= 0 && iv <= 0xfff)) {\n        setRgba(rgbaArr, 0, 0, 0, 1);\n        return; // Covers NaN.\n      }\n\n      setRgba(rgbaArr, (iv & 0xf00) >> 4 | (iv & 0xf00) >> 8, iv & 0xf0 | (iv & 0xf0) >> 4, iv & 0xf | (iv & 0xf) << 4, 1);\n      putToCache(colorStr, rgbaArr);\n      return rgbaArr;\n    } else if (str.length === 7) {\n      var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n\n      if (!(iv >= 0 && iv <= 0xffffff)) {\n        setRgba(rgbaArr, 0, 0, 0, 1);\n        return; // Covers NaN.\n      }\n\n      setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1);\n      putToCache(colorStr, rgbaArr);\n      return rgbaArr;\n    }\n\n    return;\n  }\n\n  var op = str.indexOf('('),\n      ep = str.indexOf(')');\n\n  if (op !== -1 && ep + 1 === str.length) {\n    var fname = str.substr(0, op);\n    var params = str.substr(op + 1, ep - (op + 1)).split(',');\n    var alpha = 1; // To allow case fallthrough.\n\n    switch (fname) {\n      case 'rgba':\n        if (params.length !== 4) {\n          setRgba(rgbaArr, 0, 0, 0, 1);\n          return;\n        }\n\n        alpha = parseCssFloat(params.pop());\n      // jshint ignore:line\n      // Fall through.\n\n      case 'rgb':\n        if (params.length !== 3) {\n          setRgba(rgbaArr, 0, 0, 0, 1);\n          return;\n        }\n\n        setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n\n      case 'hsla':\n        if (params.length !== 4) {\n          setRgba(rgbaArr, 0, 0, 0, 1);\n          return;\n        }\n\n        params[3] = parseCssFloat(params[3]);\n        hsla2rgba(params, rgbaArr);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n\n      case 'hsl':\n        if (params.length !== 3) {\n          setRgba(rgbaArr, 0, 0, 0, 1);\n          return;\n        }\n\n        hsla2rgba(params, rgbaArr);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n\n      default:\n        return;\n    }\n  }\n\n  setRgba(rgbaArr, 0, 0, 0, 1);\n  return;\n}\n/**\n * @param {Array.<number>} hsla\n * @param {Array.<number>} rgba\n * @return {Array.<number>} rgba\n */\n\n\nfunction hsla2rgba(hsla, rgba) {\n  var h = (parseFloat(hsla[0]) % 360 + 360) % 360 / 360; // 0 .. 1\n  // NOTE(deanm): According to the CSS spec s/l should only be\n  // percentages, but we don't bother and let float or percentage.\n\n  var s = parseCssFloat(hsla[1]);\n  var l = parseCssFloat(hsla[2]);\n  var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n  var m1 = l * 2 - m2;\n  rgba = rgba || [];\n  setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\n\n  if (hsla.length === 4) {\n    rgba[3] = hsla[3];\n  }\n\n  return rgba;\n}\n/**\n * @param {Array.<number>} rgba\n * @return {Array.<number>} hsla\n */\n\n\nfunction rgba2hsla(rgba) {\n  if (!rgba) {\n    return;\n  } // RGB from 0 to 255\n\n\n  var R = rgba[0] / 255;\n  var G = rgba[1] / 255;\n  var B = rgba[2] / 255;\n  var vMin = Math.min(R, G, B); // Min. value of RGB\n\n  var vMax = Math.max(R, G, B); // Max. value of RGB\n\n  var delta = vMax - vMin; // Delta RGB value\n\n  var L = (vMax + vMin) / 2;\n  var H;\n  var S; // HSL results from 0 to 1\n\n  if (delta === 0) {\n    H = 0;\n    S = 0;\n  } else {\n    if (L < 0.5) {\n      S = delta / (vMax + vMin);\n    } else {\n      S = delta / (2 - vMax - vMin);\n    }\n\n    var deltaR = ((vMax - R) / 6 + delta / 2) / delta;\n    var deltaG = ((vMax - G) / 6 + delta / 2) / delta;\n    var deltaB = ((vMax - B) / 6 + delta / 2) / delta;\n\n    if (R === vMax) {\n      H = deltaB - deltaG;\n    } else if (G === vMax) {\n      H = 1 / 3 + deltaR - deltaB;\n    } else if (B === vMax) {\n      H = 2 / 3 + deltaG - deltaR;\n    }\n\n    if (H < 0) {\n      H += 1;\n    }\n\n    if (H > 1) {\n      H -= 1;\n    }\n  }\n\n  var hsla = [H * 360, S, L];\n\n  if (rgba[3] != null) {\n    hsla.push(rgba[3]);\n  }\n\n  return hsla;\n}\n/**\n * @param {string} color\n * @param {number} level\n * @return {string}\n * @memberOf module:zrender/util/color\n */\n\n\nfunction lift(color, level) {\n  var colorArr = parse(color);\n\n  if (colorArr) {\n    for (var i = 0; i < 3; i++) {\n      if (level < 0) {\n        colorArr[i] = colorArr[i] * (1 - level) | 0;\n      } else {\n        colorArr[i] = (255 - colorArr[i]) * level + colorArr[i] | 0;\n      }\n\n      if (colorArr[i] > 255) {\n        colorArr[i] = 255;\n      } else if (color[i] < 0) {\n        colorArr[i] = 0;\n      }\n    }\n\n    return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n  }\n}\n/**\n * @param {string} color\n * @return {string}\n * @memberOf module:zrender/util/color\n */\n\n\nfunction toHex(color) {\n  var colorArr = parse(color);\n\n  if (colorArr) {\n    return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + +colorArr[2]).toString(16).slice(1);\n  }\n}\n/**\n * Map value to color. Faster than lerp methods because color is represented by rgba array.\n * @param {number} normalizedValue A float between 0 and 1.\n * @param {Array.<Array.<number>>} colors List of rgba color array\n * @param {Array.<number>} [out] Mapped gba color array\n * @return {Array.<number>} will be null/undefined if input illegal.\n */\n\n\nfunction fastLerp(normalizedValue, colors, out) {\n  if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n    return;\n  }\n\n  out = out || [];\n  var value = normalizedValue * (colors.length - 1);\n  var leftIndex = Math.floor(value);\n  var rightIndex = Math.ceil(value);\n  var leftColor = colors[leftIndex];\n  var rightColor = colors[rightIndex];\n  var dv = value - leftIndex;\n  out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n  out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n  out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n  out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n  return out;\n}\n/**\n * @deprecated\n */\n\n\nvar fastMapToColor = fastLerp;\n/**\n * @param {number} normalizedValue A float between 0 and 1.\n * @param {Array.<string>} colors Color list.\n * @param {boolean=} fullOutput Default false.\n * @return {(string|Object)} Result color. If fullOutput,\n *                           return {color: ..., leftIndex: ..., rightIndex: ..., value: ...},\n * @memberOf module:zrender/util/color\n */\n\nfunction lerp(normalizedValue, colors, fullOutput) {\n  if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n    return;\n  }\n\n  var value = normalizedValue * (colors.length - 1);\n  var leftIndex = Math.floor(value);\n  var rightIndex = Math.ceil(value);\n  var leftColor = parse(colors[leftIndex]);\n  var rightColor = parse(colors[rightIndex]);\n  var dv = value - leftIndex;\n  var color = stringify([clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)), clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)), clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)), clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))], 'rgba');\n  return fullOutput ? {\n    color: color,\n    leftIndex: leftIndex,\n    rightIndex: rightIndex,\n    value: value\n  } : color;\n}\n/**\n * @deprecated\n */\n\n\nvar mapToColor = lerp;\n/**\n * @param {string} color\n * @param {number=} h 0 ~ 360, ignore when null.\n * @param {number=} s 0 ~ 1, ignore when null.\n * @param {number=} l 0 ~ 1, ignore when null.\n * @return {string} Color string in rgba format.\n * @memberOf module:zrender/util/color\n */\n\nfunction modifyHSL(color, h, s, l) {\n  color = parse(color);\n\n  if (color) {\n    color = rgba2hsla(color);\n    h != null && (color[0] = clampCssAngle(h));\n    s != null && (color[1] = parseCssFloat(s));\n    l != null && (color[2] = parseCssFloat(l));\n    return stringify(hsla2rgba(color), 'rgba');\n  }\n}\n/**\n * @param {string} color\n * @param {number=} alpha 0 ~ 1\n * @return {string} Color string in rgba format.\n * @memberOf module:zrender/util/color\n */\n\n\nfunction modifyAlpha(color, alpha) {\n  color = parse(color);\n\n  if (color && alpha != null) {\n    color[3] = clampCssFloat(alpha);\n    return stringify(color, 'rgba');\n  }\n}\n/**\n * @param {Array.<number>} arrColor like [12,33,44,0.4]\n * @param {string} type 'rgba', 'hsva', ...\n * @return {string} Result color. (If input illegal, return undefined).\n */\n\n\nfunction stringify(arrColor, type) {\n  if (!arrColor || !arrColor.length) {\n    return;\n  }\n\n  var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n\n  if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n    colorStr += ',' + arrColor[3];\n  }\n\n  return type + '(' + colorStr + ')';\n}\n\nexports.parse = parse;\nexports.lift = lift;\nexports.toHex = toHex;\nexports.fastLerp = fastLerp;\nexports.fastMapToColor = fastMapToColor;\nexports.lerp = lerp;\nexports.mapToColor = mapToColor;\nexports.modifyHSL = modifyHSL;\nexports.modifyAlpha = modifyAlpha;\nexports.stringify = stringify;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/tool/color.js\n// module id = Zjj5\n// module chunks = 0","var Gradient = require(\"zrender/lib/graphic/Gradient\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var colorAccessPath = (seriesModel.visualColorAccessPath || 'itemStyle.color').split('.');\n    var color = seriesModel.get(colorAccessPath) // Set in itemStyle\n    || seriesModel.getColorFromPalette( // TODO series count changed.\n    seriesModel.name, null, ecModel.getSeriesCount()); // Default color\n    // FIXME Set color function or use the platte color\n\n    data.setVisual('color', color); // Only visible series has each data be visual encoded\n\n    if (!ecModel.isSeriesFiltered(seriesModel)) {\n      if (typeof color === 'function' && !(color instanceof Gradient)) {\n        data.each(function (idx) {\n          data.setItemVisual(idx, 'color', color(seriesModel.getDataParams(idx)));\n        });\n      } // itemStyle in each data item\n\n\n      var dataEach = function (data, idx) {\n        var itemModel = data.getItemModel(idx);\n        var color = itemModel.get(colorAccessPath, true);\n\n        if (color != null) {\n          data.setItemVisual(idx, 'color', color);\n        }\n      };\n\n      return {\n        dataEach: data.hasItemOption ? dataEach : null\n      };\n    }\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/visual/seriesColor.js\n// module id = ZlXf\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar TimelineModel = require(\"./TimelineModel\");\n\nvar dataFormatMixin = require(\"../../model/mixin/dataFormat\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar SliderTimelineModel = TimelineModel.extend({\n  type: 'timeline.slider',\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    backgroundColor: 'rgba(0,0,0,0)',\n    // 鏃堕棿杞磋儗鏅鑹瞈n    borderColor: '#ccc',\n    // 鏃堕棿杞磋竟妗嗛鑹瞈n    borderWidth: 0,\n    // 鏃堕棿杞磋竟妗嗙嚎瀹斤紝鍗曚綅px锛岄粯璁や负0锛堟棤杈规锛塡n    orient: 'horizontal',\n    // 'vertical'\n    inverse: false,\n    tooltip: {\n      // boolean or Object\n      trigger: 'item' // data item may also have tootip attr.\n\n    },\n    symbol: 'emptyCircle',\n    symbolSize: 10,\n    lineStyle: {\n      show: true,\n      width: 2,\n      color: '#304654'\n    },\n    label: {\n      // 鏂囨湰鏍囩\n      position: 'auto',\n      // auto left right top bottom\n      // When using number, label position is not\n      // restricted by viewRect.\n      // positive: right/bottom, negative: left/top\n      show: true,\n      interval: 'auto',\n      rotate: 0,\n      // formatter: null,\n      // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE\n      color: '#304654'\n    },\n    itemStyle: {\n      color: '#304654',\n      borderWidth: 1\n    },\n    checkpointStyle: {\n      symbol: 'circle',\n      symbolSize: 13,\n      color: '#c23531',\n      borderWidth: 5,\n      borderColor: 'rgba(194,53,49, 0.5)',\n      animation: true,\n      animationDuration: 300,\n      animationEasing: 'quinticInOut'\n    },\n    controlStyle: {\n      show: true,\n      showPlayBtn: true,\n      showPrevBtn: true,\n      showNextBtn: true,\n      itemSize: 22,\n      itemGap: 12,\n      position: 'left',\n      // 'left' 'right' 'top' 'bottom'\n      playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\n      // jshint ignore:line\n      stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\n      // jshint ignore:line\n      nextIcon: 'path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z',\n      // jshint ignore:line\n      prevIcon: 'path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z',\n      // jshint ignore:line\n      color: '#304654',\n      borderColor: '#304654',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true,\n        // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE\n        color: '#c23531'\n      },\n      itemStyle: {\n        color: '#c23531'\n      },\n      controlStyle: {\n        color: '#c23531',\n        borderColor: '#c23531',\n        borderWidth: 2\n      }\n    },\n    data: []\n  }\n});\nzrUtil.mixin(SliderTimelineModel, dataFormatMixin);\nvar _default = SliderTimelineModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/SliderTimelineModel.js\n// module id = a16e\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (obj, key, value) {\n  if (key in obj) {\n    (0, _defineProperty2.default)(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/defineProperty.js\n// module id = a3Yh\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/assign.js\n// module id = aA9S\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar actionInfo = {\n  type: 'selectDataRange',\n  event: 'dataRangeSelected',\n  // FIXME use updateView appears wrong\n  update: 'update'\n};\necharts.registerAction(actionInfo, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'visualMap',\n    query: payload\n  }, function (model) {\n    model.setSelected(payload.selected);\n  });\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/visualMapAction.js\n// module id = aEMU\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./line/LineSeries\");\n\nrequire(\"./line/LineView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\nvar dataSample = require(\"../processor/dataSample\");\n\nrequire(\"../component/gridSimple\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// In case developer forget to include grid component\necharts.registerVisual(visualSymbol('line', 'circle', 'line'));\necharts.registerLayout(layoutPoints('line')); // Down sample after filter\n\necharts.registerProcessor(echarts.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/line.js\n// module id = aO2o\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar createHashMap = _util.createHashMap;\nvar assert = _util.assert;\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar OTHER_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\n\nfunction summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      var coordDimArr = encode[coordDim];\n\n      if (!encode.hasOwnProperty(coordDim)) {\n        coordDimArr = encode[coordDim] = [];\n      }\n\n      coordDimArr[dimItem.coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1); // Use the last coord dim (and label friendly) as default label,\n        // because when dataset is used, it is hard to guess which dimension\n        // can be value dimension. If both show x, y on label is not look good,\n        // and conventionally y axis is focused more.\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    OTHER_DIMENSIONS.each(function (v, otherDim) {\n      var otherDimArr = encode[otherDim];\n\n      if (!encode.hasOwnProperty(otherDim)) {\n        otherDimArr = encode[otherDim] = [];\n      }\n\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        otherDimArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim]; // ??? FIXME extra coord should not be set in dataDimsOnCoord.\n    // But should fix the case that radar axes: simplify the logic\n    // of `completeDimension`, remove `extraPrefix`.\n\n    encodeFirstDimNotExtra[coordDim] = dimArr[0]; // Not necessary to remove duplicate, because a data\n    // dim canot on more than one coordDim.\n\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label; // FIXME `encode.label` is not recommanded, because formatter can not be set\n  // in this way. Use label.formatter instead. May be remove this approach someday.\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  // In most cases, ordinal and time do not suitable for label.\n  // Ordinal info can be displayed on axis. Time is too long.\n  return !(dimType === 'ordinal' || dimType === 'time');\n} // function findTheLastDimMayLabel(data) {\n//     // Get last value dim\n//     var dimensions = data.dimensions.slice();\n//     var valueType;\n//     var valueDim;\n//     while (dimensions.length && (\n//         valueDim = dimensions.pop(),\n//         valueType = data.getDimensionInfo(valueDim).type,\n//         valueType === 'ordinal' || valueType === 'time'\n//     )) {} // jshint ignore:line\n//     return valueDim;\n// }\n\n\nexports.OTHER_DIMENSIONS = OTHER_DIMENSIONS;\nexports.summarizeDimensions = summarizeDimensions;\nexports.getDimensionTypeByAxis = getDimensionTypeByAxis;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/helper/dimensionHelper.js\n// module id = aSSy\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar pathTool = require(\"zrender/lib/tool/path\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar vector = require(\"zrender/lib/core/vector\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\nvar Transformable = require(\"zrender/lib/mixin/Transformable\");\n\nvar ZImage = require(\"zrender/lib/graphic/Image\");\n\nexports.Image = ZImage;\n\nvar Group = require(\"zrender/lib/container/Group\");\n\nexports.Group = Group;\n\nvar Text = require(\"zrender/lib/graphic/Text\");\n\nexports.Text = Text;\n\nvar Circle = require(\"zrender/lib/graphic/shape/Circle\");\n\nexports.Circle = Circle;\n\nvar Sector = require(\"zrender/lib/graphic/shape/Sector\");\n\nexports.Sector = Sector;\n\nvar Ring = require(\"zrender/lib/graphic/shape/Ring\");\n\nexports.Ring = Ring;\n\nvar Polygon = require(\"zrender/lib/graphic/shape/Polygon\");\n\nexports.Polygon = Polygon;\n\nvar Polyline = require(\"zrender/lib/graphic/shape/Polyline\");\n\nexports.Polyline = Polyline;\n\nvar Rect = require(\"zrender/lib/graphic/shape/Rect\");\n\nexports.Rect = Rect;\n\nvar Line = require(\"zrender/lib/graphic/shape/Line\");\n\nexports.Line = Line;\n\nvar BezierCurve = require(\"zrender/lib/graphic/shape/BezierCurve\");\n\nexports.BezierCurve = BezierCurve;\n\nvar Arc = require(\"zrender/lib/graphic/shape/Arc\");\n\nexports.Arc = Arc;\n\nvar CompoundPath = require(\"zrender/lib/graphic/CompoundPath\");\n\nexports.CompoundPath = CompoundPath;\n\nvar LinearGradient = require(\"zrender/lib/graphic/LinearGradient\");\n\nexports.LinearGradient = LinearGradient;\n\nvar RadialGradient = require(\"zrender/lib/graphic/RadialGradient\");\n\nexports.RadialGradient = RadialGradient;\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nexports.BoundingRect = BoundingRect;\n\nvar IncrementalDisplayable = require(\"zrender/lib/graphic/IncrementalDisplayable\");\n\nexports.IncrementalDisplayable = IncrementalDisplayable;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar round = Math.round;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar EMPTY_OBJ = {};\n/**\n * Extend shape with parameters\n */\n\nfunction extendShape(opts) {\n  return Path.extend(opts);\n}\n/**\n * Extend path\n */\n\n\nfunction extendPath(pathData, opts) {\n  return pathTool.extendFromString(pathData, opts);\n}\n/**\n * Create a path element from path data string\n * @param {string} pathData\n * @param {Object} opts\n * @param {module:zrender/core/BoundingRect} rect\n * @param {string} [layout=cover] 'center' or 'cover'\n */\n\n\nfunction makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n  var boundingRect = path.getBoundingRect();\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, boundingRect);\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\n/**\n * Create a image element from image url\n * @param {string} imageUrl image url\n * @param {Object} opts options\n * @param {module:zrender/core/BoundingRect} rect constrain rect\n * @param {string} [layout=cover] 'center' or 'cover'\n */\n\n\nfunction makeImage(imageUrl, rect, layout) {\n  var path = new ZImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        path.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return path;\n}\n/**\n * Get position of centered element in bounding box.\n *\n * @param  {Object} rect         element local bounding box\n * @param  {Object} boundingRect constraint bounding box\n * @return {Object} element position containing x, y, width, and height\n */\n\n\nfunction centerGraphic(rect, boundingRect) {\n  // Set rect to center, keep width / height ratio.\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nvar mergePath = pathTool.mergePath;\n/**\n * Resize a path to fit the rect\n * @param {module:zrender/graphic/Path} path\n * @param {Object} rect\n */\n\nfunction resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\n/**\n * Sub pixel optimize line for canvas\n *\n * @param {Object} param\n * @param {Object} [param.shape]\n * @param {number} [param.shape.x1]\n * @param {number} [param.shape.y1]\n * @param {number} [param.shape.x2]\n * @param {number} [param.shape.y2]\n * @param {Object} [param.style]\n * @param {number} [param.style.lineWidth]\n * @return {Object} Modified param\n */\n\n\nfunction subPixelOptimizeLine(param) {\n  var shape = param.shape;\n  var lineWidth = param.style.lineWidth;\n\n  if (round(shape.x1 * 2) === round(shape.x2 * 2)) {\n    shape.x1 = shape.x2 = subPixelOptimize(shape.x1, lineWidth, true);\n  }\n\n  if (round(shape.y1 * 2) === round(shape.y2 * 2)) {\n    shape.y1 = shape.y2 = subPixelOptimize(shape.y1, lineWidth, true);\n  }\n\n  return param;\n}\n/**\n * Sub pixel optimize rect for canvas\n *\n * @param {Object} param\n * @param {Object} [param.shape]\n * @param {number} [param.shape.x]\n * @param {number} [param.shape.y]\n * @param {number} [param.shape.width]\n * @param {number} [param.shape.height]\n * @param {Object} [param.style]\n * @param {number} [param.style.lineWidth]\n * @return {Object} Modified param\n */\n\n\nfunction subPixelOptimizeRect(param) {\n  var shape = param.shape;\n  var lineWidth = param.style.lineWidth;\n  var originX = shape.x;\n  var originY = shape.y;\n  var originWidth = shape.width;\n  var originHeight = shape.height;\n  shape.x = subPixelOptimize(shape.x, lineWidth, true);\n  shape.y = subPixelOptimize(shape.y, lineWidth, true);\n  shape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - shape.x, originWidth === 0 ? 0 : 1);\n  shape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - shape.y, originHeight === 0 ? 0 : 1);\n  return param;\n}\n/**\n * Sub pixel optimize for canvas\n *\n * @param {number} position Coordinate, such as x, y\n * @param {number} lineWidth Should be nonnegative integer.\n * @param {boolean=} positiveOrNegative Default false (negative).\n * @return {number} Optimized position.\n */\n\n\nfunction subPixelOptimize(position, lineWidth, positiveOrNegative) {\n  // Assure that (position + lineWidth / 2) is near integer edge,\n  // otherwise line will be fuzzy in canvas.\n  var doubledPosition = round(position * 2);\n  return (doubledPosition + round(lineWidth)) % 2 === 0 ? doubledPosition / 2 : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke != 'none';\n}\n\nfunction liftColor(color) {\n  return typeof color === 'string' ? colorTool.lift(color, -0.1) : color;\n}\n/**\n * @private\n */\n\n\nfunction cacheElementStl(el) {\n  if (el.__hoverStlDirty) {\n    var stroke = el.style.stroke;\n    var fill = el.style.fill; // Create hoverStyle on mouseover\n\n    var hoverStyle = el.__hoverStl;\n    hoverStyle.fill = hoverStyle.fill || (hasFillOrStroke(fill) ? liftColor(fill) : null);\n    hoverStyle.stroke = hoverStyle.stroke || (hasFillOrStroke(stroke) ? liftColor(stroke) : null);\n    var normalStyle = {};\n\n    for (var name in hoverStyle) {\n      // See comment in `doSingleEnterHover`.\n      if (hoverStyle[name] != null) {\n        normalStyle[name] = el.style[name];\n      }\n    }\n\n    el.__normalStl = normalStyle;\n    el.__hoverStlDirty = false;\n  }\n}\n/**\n * @private\n */\n\n\nfunction doSingleEnterHover(el) {\n  if (el.__isHover) {\n    return;\n  }\n\n  cacheElementStl(el);\n\n  if (el.useHoverLayer) {\n    el.__zr && el.__zr.addHover(el, el.__hoverStl);\n  } else {\n    var style = el.style;\n    var insideRollbackOpt = style.insideRollbackOpt; // Consider case: only `position: 'top'` is set on emphasis, then text\n    // color should be returned to `autoColor`, rather than remain '#fff'.\n    // So we should rollback then apply again after style merging.\n\n    insideRollbackOpt && rollbackInsideStyle(style); // styles can be:\n    // {\n    //    label: {\n    //        show: false,\n    //        position: 'outside',\n    //        fontSize: 18\n    //    },\n    //    emphasis: {\n    //        label: {\n    //            show: true\n    //        }\n    //    }\n    // },\n    // where properties of `emphasis` may not appear in `normal`. We previously use\n    // module:echarts/util/model#defaultEmphasis to merge `normal` to `emphasis`.\n    // But consider rich text and setOption in merge mode, it is impossible to cover\n    // all properties in merge. So we use merge mode when setting style here, where\n    // only properties that is not `null/undefined` can be set. The disadventage:\n    // null/undefined can not be used to remove style any more in `emphasis`.\n\n    style.extendFrom(el.__hoverStl); // Do not save `insideRollback`.\n\n    if (insideRollbackOpt) {\n      applyInsideStyle(style, style.insideOriginalTextPosition, insideRollbackOpt); // textFill may be rollbacked to null.\n\n      if (style.textFill == null) {\n        style.textFill = insideRollbackOpt.autoColor;\n      }\n    }\n\n    el.dirty(false);\n    el.z2 += 1;\n  }\n\n  el.__isHover = true;\n}\n/**\n * @inner\n */\n\n\nfunction doSingleLeaveHover(el) {\n  if (!el.__isHover) {\n    return;\n  }\n\n  var normalStl = el.__normalStl;\n\n  if (el.useHoverLayer) {\n    el.__zr && el.__zr.removeHover(el);\n  } else {\n    // Consider null/undefined value, should use\n    // `setStyle` but not `extendFrom(stl, true)`.\n    normalStl && el.setStyle(normalStl);\n    el.z2 -= 1;\n  }\n\n  el.__isHover = false;\n}\n/**\n * @inner\n */\n\n\nfunction doEnterHover(el) {\n  el.type === 'group' ? el.traverse(function (child) {\n    if (child.type !== 'group') {\n      doSingleEnterHover(child);\n    }\n  }) : doSingleEnterHover(el);\n}\n\nfunction doLeaveHover(el) {\n  el.type === 'group' ? el.traverse(function (child) {\n    if (child.type !== 'group') {\n      doSingleLeaveHover(child);\n    }\n  }) : doSingleLeaveHover(el);\n}\n/**\n * @inner\n */\n\n\nfunction setElementHoverStl(el, hoverStl) {\n  // If element has sepcified hoverStyle, then use it instead of given hoverStyle\n  // Often used when item group has a label element and it's hoverStyle is different\n  el.__hoverStl = el.hoverStyle || hoverStl || {};\n  el.__hoverStlDirty = true;\n\n  if (el.__isHover) {\n    cacheElementStl(el);\n  }\n}\n/**\n * @inner\n */\n\n\nfunction onElementMouseOver(e) {\n  if (this.__hoverSilentOnTouch && e.zrByTouch) {\n    return;\n  } // Only if element is not in emphasis status\n\n\n  !this.__isEmphasis && doEnterHover(this);\n}\n/**\n * @inner\n */\n\n\nfunction onElementMouseOut(e) {\n  if (this.__hoverSilentOnTouch && e.zrByTouch) {\n    return;\n  } // Only if element is not in emphasis status\n\n\n  !this.__isEmphasis && doLeaveHover(this);\n}\n/**\n * @inner\n */\n\n\nfunction enterEmphasis() {\n  this.__isEmphasis = true;\n  doEnterHover(this);\n}\n/**\n * @inner\n */\n\n\nfunction leaveEmphasis() {\n  this.__isEmphasis = false;\n  doLeaveHover(this);\n}\n/**\n * Set hover style of element.\n * This method can be called repeatly without side-effects.\n * @param {module:zrender/Element} el\n * @param {Object} [hoverStyle]\n * @param {Object} [opt]\n * @param {boolean} [opt.hoverSilentOnTouch=false]\n *        In touch device, mouseover event will be trigger on touchstart event\n *        (see module:zrender/dom/HandlerProxy). By this mechanism, we can\n *        conviniently use hoverStyle when tap on touch screen without additional\n *        code for compatibility.\n *        But if the chart/component has select feature, which usually also use\n *        hoverStyle, there might be conflict between 'select-highlight' and\n *        'hover-highlight' especially when roam is enabled (see geo for example).\n *        In this case, hoverSilentOnTouch should be used to disable hover-highlight\n *        on touch device.\n */\n\n\nfunction setHoverStyle(el, hoverStyle, opt) {\n  el.__hoverSilentOnTouch = opt && opt.hoverSilentOnTouch;\n  el.type === 'group' ? el.traverse(function (child) {\n    if (child.type !== 'group') {\n      setElementHoverStl(child, hoverStyle);\n    }\n  }) : setElementHoverStl(el, hoverStyle); // Duplicated function will be auto-ignored, see Eventful.js.\n\n  el.on('mouseover', onElementMouseOver).on('mouseout', onElementMouseOut); // Emphasis, normal can be triggered manually\n\n  el.on('emphasis', enterEmphasis).on('normal', leaveEmphasis);\n}\n/**\n * @param {Object|module:zrender/graphic/Style} normalStyle\n * @param {Object} emphasisStyle\n * @param {module:echarts/model/Model} normalModel\n * @param {module:echarts/model/Model} emphasisModel\n * @param {Object} opt Check `opt` of `setTextStyleCommon` to find other props.\n * @param {string|Function} [opt.defaultText]\n * @param {module:echarts/model/Model} [opt.labelFetcher] Fetch text by\n *      `opt.labelFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex)`\n * @param {module:echarts/model/Model} [opt.labelDataIndex] Fetch text by\n *      `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex)`\n * @param {module:echarts/model/Model} [opt.labelDimIndex] Fetch text by\n *      `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex)`\n * @param {Object} [normalSpecified]\n * @param {Object} [emphasisSpecified]\n */\n\n\nfunction setLabelStyle(normalStyle, emphasisStyle, normalModel, emphasisModel, opt, normalSpecified, emphasisSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex; // This scenario, `label.normal.show = true; label.emphasis.show = false`,\n  // is not supported util someone requests.\n\n  var showNormal = normalModel.getShallow('show');\n  var showEmphasis = emphasisModel.getShallow('show'); // Consider performance, only fetch label when necessary.\n  // If `normal.show` is `false` and `emphasis.show` is `true` and `emphasis.formatter` is not set,\n  // label should be displayed, where text is fetched by `normal.formatter` or `opt.defaultText`.\n\n  var baseText;\n\n  if (showNormal || showEmphasis) {\n    if (labelFetcher) {\n      baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex);\n    }\n\n    if (baseText == null) {\n      baseText = zrUtil.isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\n    }\n  }\n\n  var normalStyleText = showNormal ? baseText : null;\n  var emphasisStyleText = showEmphasis ? zrUtil.retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, 'emphasis', null, labelDimIndex) : null, baseText) : null; // Optimize: If style.text is null, text will not be drawn.\n\n  if (normalStyleText != null || emphasisStyleText != null) {\n    // Always set `textStyle` even if `normalStyle.text` is null, because default\n    // values have to be set on `normalStyle`.\n    // If we set default values on `emphasisStyle`, consider case:\n    // Firstly, `setOption(... label: {normal: {text: null}, emphasis: {show: true}} ...);`\n    // Secondly, `setOption(... label: {noraml: {show: true, text: 'abc', color: 'red'} ...);`\n    // Then the 'red' will not work on emphasis.\n    setTextStyle(normalStyle, normalModel, normalSpecified, opt);\n    setTextStyle(emphasisStyle, emphasisModel, emphasisSpecified, opt, true);\n  }\n\n  normalStyle.text = normalStyleText;\n  emphasisStyle.text = emphasisStyleText;\n}\n/**\n * Set basic textStyle properties.\n * @param {Object|module:zrender/graphic/Style} textStyle\n * @param {module:echarts/model/Model} model\n * @param {Object} [specifiedTextStyle] Can be overrided by settings in model.\n * @param {Object} [opt] See `opt` of `setTextStyleCommon`.\n * @param {boolean} [isEmphasis]\n */\n\n\nfunction setTextStyle(textStyle, textStyleModel, specifiedTextStyle, opt, isEmphasis) {\n  setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis);\n  specifiedTextStyle && zrUtil.extend(textStyle, specifiedTextStyle);\n  textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\n  return textStyle;\n}\n/**\n * Set text option in the style.\n * @deprecated\n * @param {Object} textStyle\n * @param {module:echarts/model/Model} labelModel\n * @param {string|boolean} defaultColor Default text color.\n *        If set as false, it will be processed as a emphasis style.\n */\n\n\nfunction setText(textStyle, labelModel, defaultColor) {\n  var opt = {\n    isRectText: true\n  };\n  var isEmphasis;\n\n  if (defaultColor === false) {\n    isEmphasis = true;\n  } else {\n    // Support setting color as 'auto' to get visual color.\n    opt.autoColor = defaultColor;\n  }\n\n  setTextStyleCommon(textStyle, labelModel, opt, isEmphasis);\n  textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\n}\n/**\n * {\n *      disableBox: boolean, Whether diable drawing box of block (outer most).\n *      isRectText: boolean,\n *      autoColor: string, specify a color when color is 'auto',\n *              for textFill, textStroke, textBackgroundColor, and textBorderColor.\n *              If autoColor specified, it is used as default textFill.\n *      useInsideStyle:\n *              `true`: Use inside style (textFill, textStroke, textStrokeWidth)\n *                  if `textFill` is not specified.\n *              `false`: Do not use inside style.\n *              `null/undefined`: use inside style if `isRectText` is true and\n *                  `textFill` is not specified and textPosition contains `'inside'`.\n *      forceRich: boolean\n * }\n */\n\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis) {\n  // Consider there will be abnormal when merge hover style to normal style if given default value.\n  opt = opt || EMPTY_OBJ;\n\n  if (opt.isRectText) {\n    var textPosition = textStyleModel.getShallow('position') || (isEmphasis ? null : 'inside'); // 'outside' is not a valid zr textPostion value, but used\n    // in bar series, and magric type should be considered.\n\n    textPosition === 'outside' && (textPosition = 'top');\n    textStyle.textPosition = textPosition;\n    textStyle.textOffset = textStyleModel.getShallow('offset');\n    var labelRotate = textStyleModel.getShallow('rotate');\n    labelRotate != null && (labelRotate *= Math.PI / 180);\n    textStyle.textRotation = labelRotate;\n    textStyle.textDistance = zrUtil.retrieve2(textStyleModel.getShallow('distance'), isEmphasis ? null : 5);\n  }\n\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle; // Consider case:\n  // {\n  //     data: [{\n  //         value: 12,\n  //         label: {\n  //             rich: {\n  //                 // no 'a' here but using parent 'a'.\n  //             }\n  //         }\n  //     }],\n  //     rich: {\n  //         a: { ... }\n  //     }\n  // }\n\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name in richItemNames) {\n      if (richItemNames.hasOwnProperty(name)) {\n        // Cascade is supported in rich.\n        var richTextStyle = textStyleModel.getModel(['rich', name]); // In rich, never `disableBox`.\n\n        setTokenTextStyle(richResult[name] = {}, richTextStyle, globalTextStyle, opt, isEmphasis);\n      }\n    }\n  }\n\n  textStyle.rich = richResult;\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, true);\n\n  if (opt.forceRich && !opt.textStyle) {\n    opt.textStyle = {};\n  }\n\n  return textStyle;\n} // Consider case:\n// {\n//     data: [{\n//         value: 12,\n//         label: {\n//             rich: {\n//                 // no 'a' here but using parent 'a'.\n//             }\n//         }\n//     }],\n//     rich: {\n//         a: { ... }\n//     }\n// }\n\n\nfunction getRichItemNames(textStyleModel) {\n  // Use object to remove duplicated names.\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n\n      for (var name in rich) {\n        if (rich.hasOwnProperty(name)) {\n          richItemNameMap[name] = 1;\n        }\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, isBlock) {\n  // In merge mode, default value should not be given.\n  globalTextStyle = !isEmphasis && globalTextStyle || EMPTY_OBJ;\n  textStyle.textFill = getAutoColor(textStyleModel.getShallow('color'), opt) || globalTextStyle.color;\n  textStyle.textStroke = getAutoColor(textStyleModel.getShallow('textBorderColor'), opt) || globalTextStyle.textBorderColor;\n  textStyle.textStrokeWidth = zrUtil.retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (!isEmphasis) {\n    if (isBlock) {\n      // Always set `insideRollback`, for clearing previous.\n      var originalTextPosition = textStyle.textPosition;\n      textStyle.insideRollback = applyInsideStyle(textStyle, originalTextPosition, opt); // Save original textPosition, because style.textPosition will be repalced by\n      // real location (like [10, 30]) in zrender.\n\n      textStyle.insideOriginalTextPosition = originalTextPosition;\n      textStyle.insideRollbackOpt = opt;\n    } // Set default finally.\n\n\n    if (textStyle.textFill == null) {\n      textStyle.textFill = opt.autoColor;\n    }\n  } // Do not use `getFont` here, because merge should be supported, where\n  // part of these properties may be changed in emphasis style, and the\n  // others should remain their original value got from normal style.\n\n\n  textStyle.fontStyle = textStyleModel.getShallow('fontStyle') || globalTextStyle.fontStyle;\n  textStyle.fontWeight = textStyleModel.getShallow('fontWeight') || globalTextStyle.fontWeight;\n  textStyle.fontSize = textStyleModel.getShallow('fontSize') || globalTextStyle.fontSize;\n  textStyle.fontFamily = textStyleModel.getShallow('fontFamily') || globalTextStyle.fontFamily;\n  textStyle.textAlign = textStyleModel.getShallow('align');\n  textStyle.textVerticalAlign = textStyleModel.getShallow('verticalAlign') || textStyleModel.getShallow('baseline');\n  textStyle.textLineHeight = textStyleModel.getShallow('lineHeight');\n  textStyle.textWidth = textStyleModel.getShallow('width');\n  textStyle.textHeight = textStyleModel.getShallow('height');\n  textStyle.textTag = textStyleModel.getShallow('tag');\n\n  if (!isBlock || !opt.disableBox) {\n    textStyle.textBackgroundColor = getAutoColor(textStyleModel.getShallow('backgroundColor'), opt);\n    textStyle.textPadding = textStyleModel.getShallow('padding');\n    textStyle.textBorderColor = getAutoColor(textStyleModel.getShallow('borderColor'), opt);\n    textStyle.textBorderWidth = textStyleModel.getShallow('borderWidth');\n    textStyle.textBorderRadius = textStyleModel.getShallow('borderRadius');\n    textStyle.textBoxShadowColor = textStyleModel.getShallow('shadowColor');\n    textStyle.textBoxShadowBlur = textStyleModel.getShallow('shadowBlur');\n    textStyle.textBoxShadowOffsetX = textStyleModel.getShallow('shadowOffsetX');\n    textStyle.textBoxShadowOffsetY = textStyleModel.getShallow('shadowOffsetY');\n  }\n\n  textStyle.textShadowColor = textStyleModel.getShallow('textShadowColor') || globalTextStyle.textShadowColor;\n  textStyle.textShadowBlur = textStyleModel.getShallow('textShadowBlur') || globalTextStyle.textShadowBlur;\n  textStyle.textShadowOffsetX = textStyleModel.getShallow('textShadowOffsetX') || globalTextStyle.textShadowOffsetX;\n  textStyle.textShadowOffsetY = textStyleModel.getShallow('textShadowOffsetY') || globalTextStyle.textShadowOffsetY;\n}\n\nfunction getAutoColor(color, opt) {\n  return color !== 'auto' ? color : opt && opt.autoColor ? opt.autoColor : null;\n}\n\nfunction applyInsideStyle(textStyle, textPosition, opt) {\n  var useInsideStyle = opt.useInsideStyle;\n  var insideRollback;\n\n  if (textStyle.textFill == null && useInsideStyle !== false && (useInsideStyle === true || opt.isRectText && textPosition // textPosition can be [10, 30]\n  && typeof textPosition === 'string' && textPosition.indexOf('inside') >= 0)) {\n    insideRollback = {\n      textFill: null,\n      textStroke: textStyle.textStroke,\n      textStrokeWidth: textStyle.textStrokeWidth\n    };\n    textStyle.textFill = '#fff'; // Consider text with #fff overflow its container.\n\n    if (textStyle.textStroke == null) {\n      textStyle.textStroke = opt.autoColor;\n      textStyle.textStrokeWidth == null && (textStyle.textStrokeWidth = 2);\n    }\n  }\n\n  return insideRollback;\n}\n\nfunction rollbackInsideStyle(style) {\n  var insideRollback = style.insideRollback;\n\n  if (insideRollback) {\n    style.textFill = insideRollback.textFill;\n    style.textStroke = insideRollback.textStroke;\n    style.textStrokeWidth = insideRollback.textStrokeWidth;\n  }\n}\n\nfunction getFont(opt, ecModel) {\n  // ecModel or default text style model.\n  var gTextStyleModel = ecModel || ecModel.getModel('textStyle');\n  return zrUtil.trim([// FIXME in node-canvas fontWeight is before fontStyle\n  opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\n\nfunction animateOrSetProps(isUpdate, el, props, animatableModel, dataIndex, cb) {\n  if (typeof dataIndex === 'function') {\n    cb = dataIndex;\n    dataIndex = null;\n  } // Do not check 'animation' property directly here. Consider this case:\n  // animation model is an `itemModel`, whose does not have `isAnimationEnabled`\n  // but its parent model (`seriesModel`) does.\n\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (animationEnabled) {\n    var postfix = isUpdate ? 'Update' : '';\n    var duration = animatableModel.getShallow('animationDuration' + postfix);\n    var animationEasing = animatableModel.getShallow('animationEasing' + postfix);\n    var animationDelay = animatableModel.getShallow('animationDelay' + postfix);\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? el.animateTo(props, duration, animationDelay || 0, animationEasing, cb, !!cb) : (el.stopAnimation(), el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    el.attr(props);\n    cb && cb();\n  }\n}\n/**\n * Update graphic element properties with or without animation according to the\n * configuration in series.\n *\n * Caution: this method will stop previous animation.\n * So if do not use this method to one element twice before\n * animation starts, unless you know what you are doing.\n *\n * @param {module:zrender/Element} el\n * @param {Object} props\n * @param {module:echarts/model/Model} [animatableModel]\n * @param {number} [dataIndex]\n * @param {Function} [cb]\n * @example\n *     graphic.updateProps(el, {\n *         position: [100, 100]\n *     }, seriesModel, dataIndex, function () { console.log('Animation done!'); });\n *     // Or\n *     graphic.updateProps(el, {\n *         position: [100, 100]\n *     }, seriesModel, function () { console.log('Animation done!'); });\n */\n\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb) {\n  animateOrSetProps(true, el, props, animatableModel, dataIndex, cb);\n}\n/**\n * Init graphic element properties with or without animation according to the\n * configuration in series.\n *\n * Caution: this method will stop previous animation.\n * So if do not use this method to one element twice before\n * animation starts, unless you know what you are doing.\n *\n * @param {module:zrender/Element} el\n * @param {Object} props\n * @param {module:echarts/model/Model} [animatableModel]\n * @param {number} [dataIndex]\n * @param {Function} cb\n */\n\n\nfunction initProps(el, props, animatableModel, dataIndex, cb) {\n  animateOrSetProps(false, el, props, animatableModel, dataIndex, cb);\n}\n/**\n * Get transform matrix of target (param target),\n * in coordinate of its ancestor (param ancestor)\n *\n * @param {module:zrender/mixin/Transformable} target\n * @param {module:zrender/mixin/Transformable} [ancestor]\n */\n\n\nfunction getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\n/**\n * Apply transform to an vertex.\n * @param {Array.<number>} target [x, y]\n * @param {Array.<number>|TypedArray.<number>|Object} transform Can be:\n *      + Transform matrix: like [1, 0, 0, 1, 0, 0]\n *      + {position, rotation, scale}, the same as `zrender/Transformable`.\n * @param {boolean=} invert Whether use invert matrix.\n * @return {Array.<number>} [x, y]\n */\n\n\nfunction applyTransform(target, transform, invert) {\n  if (transform && !zrUtil.isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\n/**\n * @param {string} direction 'left' 'right' 'top' 'bottom'\n * @param {Array.<number>} transform Transform matrix: like [1, 0, 0, 1, 0, 0]\n * @param {boolean=} invert Whether use invert matrix.\n * @return {string} Transformed direction. 'left' 'right' 'top' 'bottom'\n */\n\n\nfunction transformDirection(direction, transform, invert) {\n  // Pick a base, ensure that transform result will not be (0, 0).\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n/**\n * Apply group transition animation from g1 to g2.\n * If no animatableModel, no animation.\n */\n\n\nfunction groupTransition(g1, g2, animatableModel, cb) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (!el.isGroup && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      position: vector.clone(el.position),\n      rotation: el.rotation\n    };\n\n    if (el.shape) {\n      obj.shape = zrUtil.extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (!el.isGroup && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, el.dataIndex);\n      } // else {\n      //     if (el.previousProps) {\n      //         graphic.updateProps\n      //     }\n      // }\n\n    }\n  });\n}\n/**\n * @param {Array.<Array.<number>>} points Like: [[23, 44], [53, 66], ...]\n * @param {Object} rect {x, y, width, height}\n * @return {Array.<Array.<number>>} A new clipped points.\n */\n\n\nfunction clipPointsByRect(points, rect) {\n  return zrUtil.map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\n/**\n * @param {Object} targetRect {x, y, width, height}\n * @param {Object} rect {x, y, width, height}\n * @return {Object} A new clipped rect. If rect size are negative, return undefined.\n */\n\n\nfunction clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\n/**\n * @param {string} iconStr Support 'image://' or 'path://' or direct svg path.\n * @param {Object} [opt] Properties of `module:zrender/Element`, except `style`.\n * @param {Object} [rect] {x, y, width, height}\n * @return {module:zrender/Element} Icon path or image element.\n */\n\n\nfunction createIcon(iconStr, opt, rect) {\n  opt = zrUtil.extend({\n    rectHover: true\n  }, opt);\n  var style = opt.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), zrUtil.defaults(style, rect), new ZImage(opt)) : makePath(iconStr.replace('path://', ''), opt, rect, 'center');\n  }\n}\n\nexports.extendShape = extendShape;\nexports.extendPath = extendPath;\nexports.makePath = makePath;\nexports.makeImage = makeImage;\nexports.mergePath = mergePath;\nexports.resizePath = resizePath;\nexports.subPixelOptimizeLine = subPixelOptimizeLine;\nexports.subPixelOptimizeRect = subPixelOptimizeRect;\nexports.subPixelOptimize = subPixelOptimize;\nexports.setHoverStyle = setHoverStyle;\nexports.setLabelStyle = setLabelStyle;\nexports.setTextStyle = setTextStyle;\nexports.setText = setText;\nexports.getFont = getFont;\nexports.updateProps = updateProps;\nexports.initProps = initProps;\nexports.getTransform = getTransform;\nexports.applyTransform = applyTransform;\nexports.transformDirection = transformDirection;\nexports.groupTransition = groupTransition;\nexports.clipPointsByRect = clipPointsByRect;\nexports.clipRectByRect = clipRectByRect;\nexports.createIcon = createIcon;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/graphic.js\n// module id = aVg8\n// module chunks = 0","var echarts = require(\"../../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar dataViewLang = lang.toolbox.dataView;\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n/**\n * Group series into two types\n *  1. on category axis, like line, bar\n *  2. others, like scatter, pie\n * @param {module:echarts/model/Global} ecModel\n * @return {Object}\n * @inner\n */\n\nfunction groupSeries(ecModel) {\n  var seriesGroupByCategoryAxis = {};\n  var otherSeries = [];\n  var meta = [];\n  ecModel.eachRawSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n      var baseAxis = coordSys.getBaseAxis();\n\n      if (baseAxis.type === 'category') {\n        var key = baseAxis.dim + '_' + baseAxis.index;\n\n        if (!seriesGroupByCategoryAxis[key]) {\n          seriesGroupByCategoryAxis[key] = {\n            categoryAxis: baseAxis,\n            valueAxis: coordSys.getOtherAxis(baseAxis),\n            series: []\n          };\n          meta.push({\n            axisDim: baseAxis.dim,\n            axisIndex: baseAxis.index\n          });\n        }\n\n        seriesGroupByCategoryAxis[key].series.push(seriesModel);\n      } else {\n        otherSeries.push(seriesModel);\n      }\n    } else {\n      otherSeries.push(seriesModel);\n    }\n  });\n  return {\n    seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n    other: otherSeries,\n    meta: meta\n  };\n}\n/**\n * Assemble content of series on cateogory axis\n * @param {Array.<module:echarts/model/Series>} series\n * @return {string}\n * @inner\n */\n\n\nfunction assembleSeriesWithCategoryAxis(series) {\n  var tables = [];\n  zrUtil.each(series, function (group, key) {\n    var categoryAxis = group.categoryAxis;\n    var valueAxis = group.valueAxis;\n    var valueAxisDim = valueAxis.dim;\n    var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n      return series.name;\n    }));\n    var columns = [categoryAxis.model.getCategories()];\n    zrUtil.each(group.series, function (series) {\n      columns.push(series.getRawData().mapArray(valueAxisDim, function (val) {\n        return val;\n      }));\n    }); // Assemble table content\n\n    var lines = [headers.join(ITEM_SPLITER)];\n\n    for (var i = 0; i < columns[0].length; i++) {\n      var items = [];\n\n      for (var j = 0; j < columns.length; j++) {\n        items.push(columns[j][i]);\n      }\n\n      lines.push(items.join(ITEM_SPLITER));\n    }\n\n    tables.push(lines.join('\\n'));\n  });\n  return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n/**\n * Assemble content of other series\n * @param {Array.<module:echarts/model/Series>} series\n * @return {string}\n * @inner\n */\n\n\nfunction assembleOtherSeries(series) {\n  return zrUtil.map(series, function (series) {\n    var data = series.getRawData();\n    var lines = [series.name];\n    var vals = [];\n    data.each(data.dimensions, function () {\n      var argLen = arguments.length;\n      var dataIndex = arguments[argLen - 1];\n      var name = data.getName(dataIndex);\n\n      for (var i = 0; i < argLen - 1; i++) {\n        vals[i] = arguments[i];\n      }\n\n      lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n    });\n    return lines.join('\\n');\n  }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n/**\n * @param {module:echarts/model/Global}\n * @return {Object}\n * @inner\n */\n\n\nfunction getContentFromModel(ecModel) {\n  var result = groupSeries(ecModel);\n  return {\n    value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n      return str.replace(/[\\n\\t\\s]/g, '');\n    }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n    meta: result.meta\n  };\n}\n\nfunction trim(str) {\n  return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n/**\n * If a block is tsv format\n */\n\n\nfunction isTSVFormat(block) {\n  // Simple method to find out if a block is tsv format\n  var firstLine = block.slice(0, block.indexOf('\\n'));\n\n  if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n    return true;\n  }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n/**\n * @param {string} tsv\n * @return {Object}\n */\n\nfunction parseTSVContents(tsv) {\n  var tsvLines = tsv.split(/\\n+/g);\n  var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n  var categories = [];\n  var series = zrUtil.map(headers, function (header) {\n    return {\n      name: header,\n      data: []\n    };\n  });\n\n  for (var i = 0; i < tsvLines.length; i++) {\n    var items = trim(tsvLines[i]).split(itemSplitRegex);\n    categories.push(items.shift());\n\n    for (var j = 0; j < items.length; j++) {\n      series[j] && (series[j].data[i] = items[j]);\n    }\n  }\n\n  return {\n    series: series,\n    categories: categories\n  };\n}\n/**\n * @param {string} str\n * @return {Array.<Object>}\n * @inner\n */\n\n\nfunction parseListContents(str) {\n  var lines = str.split(/\\n+/g);\n  var seriesName = trim(lines.shift());\n  var data = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    var items = trim(lines[i]).split(itemSplitRegex);\n    var name = '';\n    var value;\n    var hasName = false;\n\n    if (isNaN(items[0])) {\n      // First item is name\n      hasName = true;\n      name = items[0];\n      items = items.slice(1);\n      data[i] = {\n        name: name,\n        value: []\n      };\n      value = data[i].value;\n    } else {\n      value = data[i] = [];\n    }\n\n    for (var j = 0; j < items.length; j++) {\n      value.push(+items[j]);\n    }\n\n    if (value.length === 1) {\n      hasName ? data[i].value = value[0] : data[i] = value[0];\n    }\n  }\n\n  return {\n    name: seriesName,\n    data: data\n  };\n}\n/**\n * @param {string} str\n * @param {Array.<Object>} blockMetaList\n * @return {Object}\n * @inner\n */\n\n\nfunction parseContents(str, blockMetaList) {\n  var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n  var newOption = {\n    series: []\n  };\n  zrUtil.each(blocks, function (block, idx) {\n    if (isTSVFormat(block)) {\n      var result = parseTSVContents(block);\n      var blockMeta = blockMetaList[idx];\n      var axisKey = blockMeta.axisDim + 'Axis';\n\n      if (blockMeta) {\n        newOption[axisKey] = newOption[axisKey] || [];\n        newOption[axisKey][blockMeta.axisIndex] = {\n          data: result.categories\n        };\n        newOption.series = newOption.series.concat(result.series);\n      }\n    } else {\n      var result = parseListContents(block);\n      newOption.series.push(result);\n    }\n  });\n  return newOption;\n}\n/**\n * @alias {module:echarts/component/toolbox/feature/DataView}\n * @constructor\n * @param {module:echarts/model/Model} model\n */\n\n\nfunction DataView(model) {\n  this._dom = null;\n  this.model = model;\n}\n\nDataView.defaultOption = {\n  show: true,\n  readOnly: false,\n  optionToContent: null,\n  contentToOption: null,\n  icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n  title: zrUtil.clone(dataViewLang.title),\n  lang: zrUtil.clone(dataViewLang.lang),\n  backgroundColor: '#fff',\n  textColor: '#000',\n  textareaColor: '#fff',\n  textareaBorderColor: '#333',\n  buttonColor: '#c23531',\n  buttonTextColor: '#fff'\n};\n\nDataView.prototype.onclick = function (ecModel, api) {\n  var container = api.getDom();\n  var model = this.model;\n\n  if (this._dom) {\n    container.removeChild(this._dom);\n  }\n\n  var root = document.createElement('div');\n  root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n  root.style.backgroundColor = model.get('backgroundColor') || '#fff'; // Create elements\n\n  var header = document.createElement('h4');\n  var lang = model.get('lang') || [];\n  header.innerHTML = lang[0] || model.get('title');\n  header.style.cssText = 'margin: 10px 20px;';\n  header.style.color = model.get('textColor');\n  var viewMain = document.createElement('div');\n  var textarea = document.createElement('textarea');\n  viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n  var optionToContent = model.get('optionToContent');\n  var contentToOption = model.get('contentToOption');\n  var result = getContentFromModel(ecModel);\n\n  if (typeof optionToContent === 'function') {\n    var htmlOrDom = optionToContent(api.getOption());\n\n    if (typeof htmlOrDom === 'string') {\n      viewMain.innerHTML = htmlOrDom;\n    } else if (zrUtil.isDom(htmlOrDom)) {\n      viewMain.appendChild(htmlOrDom);\n    }\n  } else {\n    // Use default textarea\n    viewMain.appendChild(textarea);\n    textarea.readOnly = model.get('readOnly');\n    textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n    textarea.style.color = model.get('textColor');\n    textarea.style.borderColor = model.get('textareaBorderColor');\n    textarea.style.backgroundColor = model.get('textareaColor');\n    textarea.value = result.value;\n  }\n\n  var blockMetaList = result.meta;\n  var buttonContainer = document.createElement('div');\n  buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n  var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n  var closeButton = document.createElement('div');\n  var refreshButton = document.createElement('div');\n  buttonStyle += ';background-color:' + model.get('buttonColor');\n  buttonStyle += ';color:' + model.get('buttonTextColor');\n  var self = this;\n\n  function close() {\n    container.removeChild(root);\n    self._dom = null;\n  }\n\n  eventTool.addEventListener(closeButton, 'click', close);\n  eventTool.addEventListener(refreshButton, 'click', function () {\n    var newOption;\n\n    try {\n      if (typeof contentToOption === 'function') {\n        newOption = contentToOption(viewMain, api.getOption());\n      } else {\n        newOption = parseContents(textarea.value, blockMetaList);\n      }\n    } catch (e) {\n      close();\n      throw new Error('Data view format error ' + e);\n    }\n\n    if (newOption) {\n      api.dispatchAction({\n        type: 'changeDataView',\n        newOption: newOption\n      });\n    }\n\n    close();\n  });\n  closeButton.innerHTML = lang[1];\n  refreshButton.innerHTML = lang[2];\n  refreshButton.style.cssText = buttonStyle;\n  closeButton.style.cssText = buttonStyle;\n  !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n  buttonContainer.appendChild(closeButton); // http://stackoverflow.com/questions/6637341/use-tab-to-indent-in-textarea\n\n  eventTool.addEventListener(textarea, 'keydown', function (e) {\n    if ((e.keyCode || e.which) === 9) {\n      // get caret position/selection\n      var val = this.value;\n      var start = this.selectionStart;\n      var end = this.selectionEnd; // set textarea value to: text before caret + tab + text after caret\n\n      this.value = val.substring(0, start) + ITEM_SPLITER + val.substring(end); // put caret at right position again\n\n      this.selectionStart = this.selectionEnd = start + 1; // prevent the focus lose\n\n      eventTool.stop(e);\n    }\n  });\n  root.appendChild(header);\n  root.appendChild(viewMain);\n  root.appendChild(buttonContainer);\n  viewMain.style.height = container.clientHeight - 80 + 'px';\n  container.appendChild(root);\n  this._dom = root;\n};\n\nDataView.prototype.remove = function (ecModel, api) {\n  this._dom && api.getDom().removeChild(this._dom);\n};\n\nDataView.prototype.dispose = function (ecModel, api) {\n  this.remove(ecModel, api);\n};\n/**\n * @inner\n */\n\n\nfunction tryMergeDataOption(newData, originalData) {\n  return zrUtil.map(newData, function (newVal, idx) {\n    var original = originalData && originalData[idx];\n\n    if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n      if (zrUtil.isObject(newVal) && !zrUtil.isArray(newVal)) {\n        newVal = newVal.value;\n      } // Original data has option\n\n\n      return zrUtil.defaults({\n        value: newVal\n      }, original);\n    } else {\n      return newVal;\n    }\n  });\n}\n\nfeatureManager.register('dataView', DataView);\necharts.registerAction({\n  type: 'changeDataView',\n  event: 'dataViewChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var newSeriesOptList = [];\n  zrUtil.each(payload.newOption.series, function (seriesOpt) {\n    var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n    if (!seriesModel) {\n      // New created series\n      // Geuss the series type\n      newSeriesOptList.push(zrUtil.extend({\n        // Default is scatter\n        type: 'scatter'\n      }, seriesOpt));\n    } else {\n      var originalData = seriesModel.get('data');\n      newSeriesOptList.push({\n        name: seriesOpt.name,\n        data: tryMergeDataOption(seriesOpt.data, originalData)\n      });\n    }\n  });\n  ecModel.mergeOption(zrUtil.defaults({\n    series: newSeriesOptList\n  }, payload.newOption));\n});\nvar _default = DataView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/DataView.js\n// module id = aZnC\n// module chunks = 0","require(\"../coord/cartesian/AxisModel\");\n\nrequire(\"./axis/CartesianAxisView\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis.js\n// module id = aZqG\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+/, '').replace(/\\s+$/, '');\n}\n/**\n * Linear mapping a value from domain to range\n * @memberOf module:echarts/util/number\n * @param  {(number|Array.<number>)} val\n * @param  {Array.<number>} domain Domain extent domain[0] can be bigger than domain[1]\n * @param  {Array.<number>} range  Range extent range[0] can be bigger than range[1]\n * @param  {boolean} clamp\n * @return {(number|Array.<number>}\n */\n\n\nfunction linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  } // Avoid accuracy problem in edge, such as\n  // 146.39 - 62.83 === 83.55999999999999.\n  // See echarts/test/ut/spec/util/number.js#linearMap#accuracyError\n  // It is a little verbose for efficiency considering this method\n  // is a hotspot.\n\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\n/**\n * Convert a percent string to absolute number.\n * Returns NaN if percent is not a valid string or number\n * @memberOf module:echarts/util/number\n * @param {string|number} percent\n * @param {number} all\n * @return {number}\n */\n\n\nfunction parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\n/**\n * (1) Fix rounding error of float numbers.\n * (2) Support return string to avoid scientific notation like '3.5e-7'.\n *\n * @param {number} x\n * @param {number} [precision]\n * @param {boolean} [returnStr]\n * @return {number|string}\n */\n\n\nfunction round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  } // Avoid range error\n\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\n\nfunction asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\n/**\n * Get precision\n * @param {number} val\n */\n\n\nfunction getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  } // It is much faster than methods converting number to string as follows\n  //      var tmp = val.toString();\n  //      return tmp.length - 1 - tmp.indexOf('.');\n  // especially when precision is low\n\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\n/**\n * @param {string|number} val\n * @return {number}\n */\n\n\nfunction getPrecisionSafe(val) {\n  var str = val.toString(); // Consider scientific notation: '3.4e-12' '3.4e+12'\n\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\n/**\n * Minimal dicernible data precisioin according to a single pixel.\n *\n * @param {Array.<number>} dataExtent\n * @param {Array.<number>} pixelExtent\n * @return {number} precision\n */\n\n\nfunction getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10); // toFixed() digits argument must be between 0 and 20.\n\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\n/**\n * Get a data of given precision, assuring the sum of percentages\n * in valueList is 1.\n * The largest remainer method is used.\n * https://en.wikipedia.org/wiki/Largest_remainder_method\n *\n * @param {Array.<number>} valueList a list of all data\n * @param {number} idx index of the data to be processed in valueList\n * @param {number} precision integer number showing digits of precision\n * @return {number} percent ranging from 0 to 100\n */\n\n\nfunction getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    // Assign automatic seats.\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  }); // Has remainding votes.\n\n  while (currentSum < targetSeats) {\n    // Find next largest remainder.\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    } // Add a vote to max remainder.\n\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n} // Number.MAX_SAFE_INTEGER, ie do not support.\n\n\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * To 0 - 2 * PI, considering negative radian.\n * @param {number} radian\n * @return {number}\n */\n\nfunction remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\n/**\n * @param {type} radian\n * @return {boolean}\n */\n\n\nfunction isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\n\nvar TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d\\d)(?::(\\d\\d)(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/; // jshint ignore:line\n\n/**\n * @param {string|Date|number} value These values can be accepted:\n *   + An instance of Date, represent a time in its own time zone.\n *   + Or string in a subset of ISO 8601, only including:\n *     + only year, month, date: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06',\n *     + separated with T or space: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123',\n *     + time zone: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00',\n *     all of which will be treated as local time if time zone is not specified\n *     (see <https://momentjs.com/>).\n *   + Or other string format, including (all of which will be treated as loacal time):\n *     '2012', '2012-3-1', '2012/3/1', '2012/03/01',\n *     '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123'\n *   + a timestamp, which represent a time in UTC.\n * @return {Date} date\n */\n\nfunction parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    // Different browsers parse date in different way, so we parse it manually.\n    // Some other issues:\n    // new Date('1970-01-01') is UTC,\n    // new Date('1970/01/01') and new Date('1970-1-01') is local.\n    // See issue #3623\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      // return Invalid Date.\n      return new Date(NaN);\n    } // Use local time when no timezone offset specifed.\n\n\n    if (!match[8]) {\n      // match[n] can only be string or undefined.\n      // But take care of '12' + 1 => '121'.\n      return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\n    } // Timezoneoffset of Javascript Date has considered DST (Daylight Saving Time,\n    // https://tc39.github.io/ecma262/#sec-daylight-saving-time-adjustment).\n    // For example, system timezone is set as \"Time Zone: America/Toronto\",\n    // then these code will get different result:\n    // `new Date(1478411999999).getTimezoneOffset();  // get 240`\n    // `new Date(1478412000000).getTimezoneOffset();  // get 300`\n    // So we should not use `new Date`, but use `Date.UTC`.\n    else {\n        var hour = +match[4] || 0;\n\n        if (match[8].toUpperCase() !== 'Z') {\n          hour -= match[8].slice(0, 3);\n        }\n\n        return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\n      }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\n/**\n * Quantity of a number. e.g. 0.1, 1, 10, 100\n *\n * @param  {number} val\n * @return {number}\n */\n\n\nfunction quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\n\nfunction quantityExponent(val) {\n  return Math.floor(Math.log(val) / Math.LN10);\n}\n/**\n * find a 鈥渘ice鈥� number approximately equal to x. Round the number if round = true,\n * take ceiling if round = false. The primary observation is that the 鈥渘icest鈥漒n * numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers.\n *\n * See \"Nice Numbers for Graph Labels\" of Graphic Gems.\n *\n * @param  {number} val Non-negative value.\n * @param  {boolean} round\n * @return {number}\n */\n\n\nfunction nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10; // 1 <= f < 10\n\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10; // Fix 3 * 0.1 === 0.30000000000000004 issue (see IEEE 754).\n  // 20 is the uppper bound of toFixed.\n\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\n/**\n * Order intervals asc, and split them when overlap.\n * expect(numberUtil.reformIntervals([\n *     {interval: [18, 62], close: [1, 1]},\n *     {interval: [-Infinity, -70], close: [0, 0]},\n *     {interval: [-70, -26], close: [1, 1]},\n *     {interval: [-26, 18], close: [1, 1]},\n *     {interval: [62, 150], close: [1, 1]},\n *     {interval: [106, 150], close: [1, 1]},\n *     {interval: [150, Infinity], close: [0, 0]}\n * ])).toEqual([\n *     {interval: [-Infinity, -70], close: [0, 0]},\n *     {interval: [-70, -26], close: [1, 1]},\n *     {interval: [-26, 18], close: [0, 1]},\n *     {interval: [18, 62], close: [0, 1]},\n *     {interval: [62, 150], close: [0, 1]},\n *     {interval: [150, Infinity], close: [0, 0]}\n * ]);\n * @param {Array.<Object>} list, where `close` mean open or close\n *        of the interval, and Infinity can be used.\n * @return {Array.<Object>} The origin list, which has been reformed.\n */\n\n\nfunction reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close[lg];\n    }\n\n    if (interval[0] === interval[1] && close[0] * close[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\n/**\n * parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n * ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n * subtraction forces infinities to NaN\n *\n * @param {*} v\n * @return {boolean}\n */\n\n\nfunction isNumeric(v) {\n  return v - parseFloat(v) >= 0;\n}\n\nexports.linearMap = linearMap;\nexports.parsePercent = parsePercent;\nexports.round = round;\nexports.asc = asc;\nexports.getPrecision = getPrecision;\nexports.getPrecisionSafe = getPrecisionSafe;\nexports.getPixelPrecision = getPixelPrecision;\nexports.getPercentWithPrecision = getPercentWithPrecision;\nexports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;\nexports.remRadian = remRadian;\nexports.isRadianAroundZero = isRadianAroundZero;\nexports.parseDate = parseDate;\nexports.quantity = quantity;\nexports.nice = nice;\nexports.reformIntervals = reformIntervals;\nexports.isNumeric = isNumeric;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/number.js\n// module id = abCA\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_classof.js\n// module id = adiS\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar NodeHighlightPolicy = {\n  NONE: 'none',\n  // not downplay others\n  DESCENDANT: 'descendant',\n  ANCESTOR: 'ancestor',\n  SELF: 'self'\n};\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n/**\n * Sunburstce of Sunburst including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\n\nfunction SunburstPiece(node, seriesModel, ecModel) {\n  graphic.Group.call(this);\n  var sector = new graphic.Sector({\n    z2: DEFAULT_SECTOR_Z\n  });\n  sector.seriesIndex = seriesModel.seriesIndex;\n  var text = new graphic.Text({\n    z2: DEFAULT_TEXT_Z,\n    silent: node.getModel('label').get('silent')\n  });\n  this.add(sector);\n  this.add(text);\n  this.updateData(true, node, 'normal', seriesModel, ecModel); // Hover to change label and labelLine\n\n  function onEmphasis() {\n    text.ignore = text.hoverIgnore;\n  }\n\n  function onNormal() {\n    text.ignore = text.normalIgnore;\n  }\n\n  this.on('emphasis', onEmphasis).on('normal', onNormal).on('mouseover', onEmphasis).on('mouseout', onNormal);\n}\n\nvar SunburstPieceProto = SunburstPiece.prototype;\n\nSunburstPieceProto.updateData = function (firstCreate, node, state, seriesModel, ecModel) {\n  this.node = node;\n  node.piece = this;\n  seriesModel = seriesModel || this._seriesModel;\n  ecModel = ecModel || this._ecModel;\n  var sector = this.childAt(0);\n  sector.dataIndex = node.dataIndex;\n  var itemModel = node.getModel();\n  var layout = node.getLayout();\n\n  if (!layout) {\n    console.log(node.getLayout());\n  }\n\n  var sectorShape = zrUtil.extend({}, layout);\n  sectorShape.label = null;\n  var visualColor = getNodeColor(node, seriesModel, ecModel);\n  var normalStyle = itemModel.getModel('itemStyle').getItemStyle();\n  var style;\n\n  if (state === 'normal') {\n    style = normalStyle;\n  } else {\n    var stateStyle = itemModel.getModel(state + '.itemStyle').getItemStyle();\n    style = zrUtil.merge(stateStyle, normalStyle);\n  }\n\n  style = zrUtil.defaults({\n    lineJoin: 'bevel',\n    fill: style.fill || visualColor\n  }, style);\n\n  if (firstCreate) {\n    sector.setShape(sectorShape);\n    sector.shape.r = layout.r0;\n    graphic.updateProps(sector, {\n      shape: {\n        r: layout.r\n      }\n    }, seriesModel, node.dataIndex);\n    sector.useStyle(style);\n  } else if (typeof style.fill === 'object' && style.fill.type || typeof sector.style.fill === 'object' && sector.style.fill.type) {\n    // Disable animation for gradient since no interpolation method\n    // is supported for gradient\n    graphic.updateProps(sector, {\n      shape: sectorShape\n    }, seriesModel);\n    sector.useStyle(style);\n  } else {\n    graphic.updateProps(sector, {\n      shape: sectorShape,\n      style: style\n    }, seriesModel);\n  }\n\n  this._updateLabel(seriesModel, visualColor, state);\n\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && sector.attr('cursor', cursorStyle);\n\n  if (firstCreate) {\n    var highlightPolicy = seriesModel.getShallow('highlightPolicy');\n\n    this._initEvents(sector, node, seriesModel, highlightPolicy);\n  }\n\n  this._seriesModel = seriesModel || this._seriesModel;\n  this._ecModel = ecModel || this._ecModel;\n};\n\nSunburstPieceProto.onEmphasis = function (highlightPolicy) {\n  var that = this;\n  this.node.hostTree.root.eachNode(function (n) {\n    if (n.piece) {\n      if (that.node === n) {\n        n.piece.updateData(false, n, 'emphasis');\n      } else if (isNodeHighlighted(n, that.node, highlightPolicy)) {\n        n.piece.childAt(0).trigger('highlight');\n      } else if (highlightPolicy !== NodeHighlightPolicy.NONE) {\n        n.piece.childAt(0).trigger('downplay');\n      }\n    }\n  });\n};\n\nSunburstPieceProto.onNormal = function () {\n  this.node.hostTree.root.eachNode(function (n) {\n    if (n.piece) {\n      n.piece.updateData(false, n, 'normal');\n    }\n  });\n};\n\nSunburstPieceProto.onHighlight = function () {\n  this.updateData(false, this.node, 'highlight');\n};\n\nSunburstPieceProto.onDownplay = function () {\n  this.updateData(false, this.node, 'downplay');\n};\n\nSunburstPieceProto._updateLabel = function (seriesModel, visualColor, state) {\n  var itemModel = this.node.getModel();\n  var normalModel = itemModel.getModel('label');\n  var labelModel = state === 'normal' || state === 'emphasis' ? normalModel : itemModel.getModel(state + '.label');\n  var labelHoverModel = itemModel.getModel('emphasis.label');\n  var text = zrUtil.retrieve(seriesModel.getFormattedLabel(this.node.dataIndex, 'normal', null, null, 'label'), this.node.name);\n\n  if (getLabelAttr('show') === false) {\n    text = '';\n  }\n\n  var layout = this.node.getLayout();\n  var labelMinAngle = labelModel.get('minAngle');\n\n  if (labelMinAngle == null) {\n    labelMinAngle = normalModel.get('minAngle');\n  }\n\n  labelMinAngle = labelMinAngle / 180 * Math.PI;\n  var angle = layout.endAngle - layout.startAngle;\n\n  if (labelMinAngle != null && Math.abs(angle) < labelMinAngle) {\n    // Not displaying text when angle is too small\n    text = '';\n  }\n\n  var label = this.childAt(1);\n  graphic.setLabelStyle(label.style, label.hoverStyle || {}, normalModel, labelHoverModel, {\n    defaultText: labelModel.getShallow('show') ? text : null,\n    autoColor: visualColor,\n    useInsideStyle: true\n  });\n  var midAngle = (layout.startAngle + layout.endAngle) / 2;\n  var dx = Math.cos(midAngle);\n  var dy = Math.sin(midAngle);\n  var r;\n  var labelPosition = getLabelAttr('position');\n  var labelPadding = getLabelAttr('distance') || 0;\n  var textAlign = getLabelAttr('align');\n\n  if (labelPosition === 'outside') {\n    r = layout.r + labelPadding;\n    textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n  } else {\n    if (!textAlign || textAlign === 'center') {\n      r = (layout.r + layout.r0) / 2;\n      textAlign = 'center';\n    } else if (textAlign === 'left') {\n      r = layout.r0 + labelPadding;\n\n      if (midAngle > Math.PI / 2) {\n        textAlign = 'right';\n      }\n    } else if (textAlign === 'right') {\n      r = layout.r - labelPadding;\n\n      if (midAngle > Math.PI / 2) {\n        textAlign = 'left';\n      }\n    }\n  }\n\n  label.attr('style', {\n    text: text,\n    textAlign: textAlign,\n    textVerticalAlign: getLabelAttr('verticalAlign') || 'middle',\n    opacity: getLabelAttr('opacity')\n  });\n  var textX = r * dx + layout.cx;\n  var textY = r * dy + layout.cy;\n  label.attr('position', [textX, textY]);\n  var rotateType = getLabelAttr('rotate');\n  var rotate = 0;\n\n  if (rotateType === 'radial') {\n    rotate = -midAngle;\n\n    if (rotate < -Math.PI / 2) {\n      rotate += Math.PI;\n    }\n  } else if (rotateType === 'tangential') {\n    rotate = Math.PI / 2 - midAngle;\n\n    if (rotate > Math.PI / 2) {\n      rotate -= Math.PI;\n    } else if (rotate < -Math.PI / 2) {\n      rotate += Math.PI;\n    }\n  } else if (typeof rotateType === 'number') {\n    rotate = rotateType * Math.PI / 180;\n  }\n\n  label.attr('rotation', rotate);\n\n  function getLabelAttr(name) {\n    var stateAttr = labelModel.get(name);\n\n    if (stateAttr == null) {\n      return normalModel.get(name);\n    } else {\n      return stateAttr;\n    }\n  }\n};\n\nSunburstPieceProto._initEvents = function (sector, node, seriesModel, highlightPolicy) {\n  sector.off('mouseover').off('mouseout').off('emphasis').off('normal');\n  var that = this;\n\n  var onEmphasis = function () {\n    that.onEmphasis(highlightPolicy);\n  };\n\n  var onNormal = function () {\n    that.onNormal();\n  };\n\n  var onDownplay = function () {\n    that.onDownplay();\n  };\n\n  var onHighlight = function () {\n    that.onHighlight();\n  };\n\n  if (seriesModel.isAnimationEnabled()) {\n    sector.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal).on('downplay', onDownplay).on('highlight', onHighlight);\n  }\n};\n\nzrUtil.inherits(SunburstPiece, graphic.Group);\nvar _default = SunburstPiece;\n/**\n * Get node color\n *\n * @param {TreeNode} node the node to get color\n * @param {module:echarts/model/Series} seriesModel series\n * @param {module:echarts/model/Global} ecModel echarts defaults\n */\n\nfunction getNodeColor(node, seriesModel, ecModel) {\n  // Color from visualMap\n  var visualColor = node.getVisual('color');\n  var visualMetaList = node.getVisual('visualMeta');\n\n  if (!visualMetaList || visualMetaList.length === 0) {\n    // Use first-generation color if has no visualMap\n    visualColor = null;\n  } // Self color or level color\n\n\n  var color = node.getModel('itemStyle').get('color');\n\n  if (color) {\n    return color;\n  } else if (visualColor) {\n    // Color mapping\n    return visualColor;\n  } else if (node.depth === 0) {\n    // Virtual root node\n    return ecModel.option.color[0];\n  } else {\n    // First-generation color\n    var length = ecModel.option.color.length;\n    color = ecModel.option.color[getRootId(node) % length];\n  }\n\n  return color;\n}\n/**\n * Get index of root in sorted order\n *\n * @param {TreeNode} node current node\n * @return {number} index in root\n */\n\n\nfunction getRootId(node) {\n  var ancestor = node;\n\n  while (ancestor.depth > 1) {\n    ancestor = ancestor.parentNode;\n  }\n\n  var virtualRoot = node.getAncestors()[0];\n  return zrUtil.indexOf(virtualRoot.children, ancestor);\n}\n\nfunction isNodeHighlighted(node, activeNode, policy) {\n  if (policy === NodeHighlightPolicy.NONE) {\n    return false;\n  } else if (policy === NodeHighlightPolicy.SELF) {\n    return node === activeNode;\n  } else if (policy === NodeHighlightPolicy.ANCESTOR) {\n    return node === activeNode || node.isAncestorOf(activeNode);\n  } else {\n    return node === activeNode || node.isDescendantOf(activeNode);\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/SunburstPiece.js\n// module id = aiSe\n// module chunks = 0","module.exports = require('./lib/axios');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/index.js\n// module id = aozt\n// module chunks = 0","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_new-promise-capability.js\n// module id = aqA6\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (!legendModels || !legendModels.length) {\n    return;\n  }\n\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var categoriesData = graphSeries.getCategoriesData();\n    var graph = graphSeries.getGraph();\n    var data = graph.data;\n    var categoryNames = categoriesData.mapArray(categoriesData.getName);\n    data.filterSelf(function (idx) {\n      var model = data.getItemModel(idx);\n      var category = model.getShallow('category');\n\n      if (category != null) {\n        if (typeof category === 'number') {\n          category = categoryNames[category];\n        } // If in any legend component the status is not selected.\n\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(category)) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    });\n  }, this);\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/categoryFilter.js\n// module id = at5h\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nrequire(\"../coord/cartesian/Grid\");\n\nrequire(\"./bar/PictorialBarSeries\");\n\nrequire(\"./bar/PictorialBarView\");\n\nvar _barGrid = require(\"../layout/barGrid\");\n\nvar layout = _barGrid.layout;\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nrequire(\"../component/gridSimple\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// In case developer forget to include grid component\necharts.registerLayout(zrUtil.curry(layout, 'pictorialBar'));\necharts.registerVisual(visualSymbol('pictorialBar', 'roundRect'));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/pictorialBar.js\n// module id = auEo\n// module chunks = 0","var echarts = require(\"echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction v2Equal(a, b) {\n  return a && b && a[0] === b[0] && a[1] === b[1];\n}\n\nvar _default = echarts.extendComponentModel({\n  type: 'bmap',\n  getBMap: function () {\n    // __bmap is injected when creating BMapCoordSys\n    return this.__bmap;\n  },\n  setCenterAndZoom: function (center, zoom) {\n    this.option.center = center;\n    this.option.zoom = zoom;\n  },\n  centerOrZoomChanged: function (center, zoom) {\n    var option = this.option;\n    return !(v2Equal(center, option.center) && zoom === option.zoom);\n  },\n  defaultOption: {\n    center: [104.114129, 37.550339],\n    zoom: 5,\n    mapStyle: {},\n    roam: false\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/extension/bmap/BMapModel.js\n// module id = b+Qj\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar isObject = _util.isObject;\nvar map = _util.map;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @constructor\n * @param {Object} [opt]\n * @param {Object} [opt.categories=[]]\n * @param {Object} [opt.needCollect=false]\n * @param {Object} [opt.deduplication=false]\n */\nfunction OrdinalMeta(opt) {\n  /**\n   * @readOnly\n   * @type {Array.<string>}\n   */\n  this.categories = opt.categories || [];\n  /**\n   * @private\n   * @type {boolean}\n   */\n\n  this._needCollect = opt.needCollect;\n  /**\n   * @private\n   * @type {boolean}\n   */\n\n  this._deduplication = opt.deduplication;\n  /**\n   * @private\n   * @type {boolean}\n   */\n\n  this._map;\n}\n/**\n * @param {module:echarts/model/Model} axisModel\n * @return {module:echarts/data/OrdinalMeta}\n */\n\n\nOrdinalMeta.createByAxisModel = function (axisModel) {\n  var option = axisModel.option;\n  var data = option.data;\n  var categories = data && map(data, getName);\n  return new OrdinalMeta({\n    categories: categories,\n    needCollect: !categories,\n    // deduplication is default in axis.\n    deduplication: option.dedplication !== false\n  });\n};\n\nvar proto = OrdinalMeta.prototype;\n/**\n * @param {string} category\n * @return {number} ordinal\n */\n\nproto.getOrdinal = function (category) {\n  return getOrCreateMap(this).get(category);\n};\n/**\n * @param {*} category\n * @return {number} The ordinal. If not found, return NaN.\n */\n\n\nproto.parseAndCollect = function (category) {\n  var index;\n  var needCollect = this._needCollect; // The value of category dim can be the index of the given category set.\n  // This feature is only supported when !needCollect, because we should\n  // consider a common case: a value is 2017, which is a number but is\n  // expected to be tread as a category. This case usually happen in dataset,\n  // where it happent to be no need of the index feature.\n\n  if (typeof category !== 'string' && !needCollect) {\n    return category;\n  } // Optimize for the scenario:\n  // category is ['2012-01-01', '2012-01-02', ...], where the input\n  // data has been ensured not duplicate and is large data.\n  // Notice, if a dataset dimension provide categroies, usually echarts\n  // should remove duplication except user tell echarts dont do that\n  // (set axis.deduplication = false), because echarts do not know whether\n  // the values in the category dimension has duplication (consider the\n  // parallel-aqi example)\n\n\n  if (needCollect && !this._deduplication) {\n    index = this.categories.length;\n    this.categories[index] = category;\n    return index;\n  }\n\n  var map = getOrCreateMap(this);\n  index = map.get(category);\n\n  if (index == null) {\n    if (needCollect) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      map.set(category, index);\n    } else {\n      index = NaN;\n    }\n  }\n\n  return index;\n}; // Consider big data, do not create map until needed.\n\n\nfunction getOrCreateMap(ordinalMeta) {\n  return ordinalMeta._map || (ordinalMeta._map = createHashMap(ordinalMeta.categories));\n}\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nvar _default = OrdinalMeta;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/OrdinalMeta.js\n// module id = b0oC\n// module chunks = 0","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n  var un = that === undefined;\n  switch (args.length) {\n    case 0: return un ? fn()\n                      : fn.call(that);\n    case 1: return un ? fn(args[0])\n                      : fn.call(that, args[0]);\n    case 2: return un ? fn(args[0], args[1])\n                      : fn.call(that, args[0], args[1]);\n    case 3: return un ? fn(args[0], args[1], args[2])\n                      : fn.call(that, args[0], args[1], args[2]);\n    case 4: return un ? fn(args[0], args[1], args[2], args[3])\n                      : fn.call(that, args[0], args[1], args[2], args[3]);\n  } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_invoke.js\n// module id = bC1X\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar Model = require(\"../../model/Model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DEFAULT_OUT_OF_BRUSH_COLOR = ['#ddd'];\nvar BrushModel = echarts.extendComponentModel({\n  type: 'brush',\n  dependencies: ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'],\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    // inBrush: null,\n    // outOfBrush: null,\n    toolbox: null,\n    // Default value see preprocessor.\n    brushLink: null,\n    // Series indices array, broadcast using dataIndex.\n    // or 'all', which means all series. 'none' or null means no series.\n    seriesIndex: 'all',\n    // seriesIndex array, specify series controlled by this brush component.\n    geoIndex: null,\n    //\n    xAxisIndex: null,\n    yAxisIndex: null,\n    brushType: 'rect',\n    // Default brushType, see BrushController.\n    brushMode: 'single',\n    // Default brushMode, 'single' or 'multiple'\n    transformable: true,\n    // Default transformable.\n    brushStyle: {\n      // Default brushStyle\n      borderWidth: 1,\n      color: 'rgba(120,140,180,0.3)',\n      borderColor: 'rgba(120,140,180,0.8)'\n    },\n    throttleType: 'fixRate',\n    // Throttle in brushSelected event. 'fixRate' or 'debounce'.\n    // If null, no throttle. Valid only in the first brush component\n    throttleDelay: 0,\n    // Unit: ms, 0 means every event will be triggered.\n    // FIXME\n    // 璇曢獙鏁堟灉\n    removeOnClick: true,\n    z: 10000\n  },\n\n  /**\n   * @readOnly\n   * @type {Array.<Object>}\n   */\n  areas: [],\n\n  /**\n   * Current activated brush type.\n   * If null, brush is inactived.\n   * see module:echarts/component/helper/BrushController\n   * @readOnly\n   * @type {string}\n   */\n  brushType: null,\n\n  /**\n   * Current brush opt.\n   * see module:echarts/component/helper/BrushController\n   * @readOnly\n   * @type {Object}\n   */\n  brushOption: {},\n\n  /**\n   * @readOnly\n   * @type {Array.<Object>}\n   */\n  coordInfoList: [],\n  optionUpdated: function (newOption, isInit) {\n    var thisOption = this.option;\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n    var inBrush = thisOption.inBrush = thisOption.inBrush || {}; // Always give default visual, consider setOption at the second time.\n\n    thisOption.outOfBrush = thisOption.outOfBrush || {\n      color: DEFAULT_OUT_OF_BRUSH_COLOR\n    };\n\n    if (!inBrush.hasOwnProperty('liftZ')) {\n      // Bigger than the highlight z lift, otherwise it will\n      // be effected by the highlight z when brush.\n      inBrush.liftZ = 5;\n    }\n  },\n\n  /**\n   * If ranges is null/undefined, range state remain.\n   *\n   * @param {Array.<Object>} [ranges]\n   */\n  setAreas: function (areas) {\n    // If ranges is null/undefined, range state remain.\n    // This helps user to dispatchAction({type: 'brush'}) with no areas\n    // set but just want to get the current brush select info from a `brush` event.\n    if (!areas) {\n      return;\n    }\n\n    this.areas = zrUtil.map(areas, function (area) {\n      return generateBrushOption(this.option, area);\n    }, this);\n  },\n\n  /**\n   * see module:echarts/component/helper/BrushController\n   * @param {Object} brushOption\n   */\n  setBrushOption: function (brushOption) {\n    this.brushOption = generateBrushOption(this.option, brushOption);\n    this.brushType = this.brushOption.brushType;\n  }\n});\n\nfunction generateBrushOption(option, brushOption) {\n  return zrUtil.merge({\n    brushType: option.brushType,\n    brushMode: option.brushMode,\n    transformable: option.transformable,\n    brushStyle: new Model(option.brushStyle).getItemStyle(),\n    removeOnClick: option.removeOnClick,\n    z: option.z\n  }, brushOption, true);\n}\n\nvar _default = BrushModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/brush/BrushModel.js\n// module id = bHL0\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n  return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_hide.js\n// module id = bHZz\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Can only be called after coordinate system creation stage.\n * (Can be called before coordinate system update stage).\n *\n * @param {Object} opt {labelInside}\n * @return {Object} {\n *  position, rotation, labelDirection, labelOffset,\n *  tickDirection, labelRotate, z2\n * }\n */\nfunction layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx['onZero']] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  } // Axis position\n\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]]; // Axis rotation\n\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1); // Tick and label direction, x y is axisDim\n\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx['onZero']] : 0;\n\n  if (axisModel.get('axisTick.inside')) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get('axisLabel.inside'))) {\n    layout.labelDirection = -layout.labelDirection;\n  } // Special label rotation\n\n\n  var labelRotate = axisModel.get('axisLabel.rotate');\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate; // Over splitLine and splitArea\n\n  layout.z2 = 1;\n  return layout;\n}\n\nexports.layout = layout;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/cartesianAxisHelper.js\n// module id = bP4h\n// module chunks = 0","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_library.js\n// module id = bgFz\n// module chunks = 0","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_wks.js\n// module id = biYF\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar createDimensions = require(\"../../data/helper/createDimensions\");\n\nvar _sourceType = require(\"../../data/helper/sourceType\");\n\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\n\nvar _dimensionHelper = require(\"../../data/helper/dimensionHelper\");\n\nvar getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;\n\nvar _model = require(\"../../util/model\");\n\nvar getDataItemValue = _model.getDataItemValue;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar _referHelper = require(\"../../model/referHelper\");\n\nvar getCoordSysDefineBySeries = _referHelper.getCoordSysDefineBySeries;\n\nvar Source = require(\"../../data/Source\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar enableDataStack = _dataStackHelper.enableDataStack;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/data/Source|Array} source Or raw data.\n * @param {module:echarts/model/Series} seriesModel\n * @param {Object} [opt]\n * @param {string} [opt.generateCoord]\n */\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!Source.isInstance(source)) {\n    source = Source.seriesDataToSource(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysDefine = getCoordSysDefineBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysDefine) {\n    coordSysDimDefs = zrUtil.map(coordSysDefine.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysDefine.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType); // dimInfo.stackable = isStackable(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    // Get dimensions from registered coordinate system\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysDefine && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysDefine.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    // Use dataIndex as ordinal value in categoryAxis\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nvar _default = createListFromArray;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/createListFromArray.js\n// module id = bmdq\n// module chunks = 0","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n  for (var key in src) {\n    if (safe && target[key]) target[key] = src[key];\n    else hide(target, key, src[key]);\n  } return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_redefine-all.js\n// module id = bodH\n// module chunks = 0","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/isObjectLike.js\n// module id = c/Dk\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = require('./_dom-create')('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  require('./_html').appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-create.js\n// module id = c1o2\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerProcessor({\n  // `dataZoomProcessor` will only be performed in needed series. Consider if\n  // there is a line series and a pie series, it is better not to update the\n  // line series if only pie series is needed to be updated.\n  getTargetSeries: function (ecModel) {\n    var seriesModelMap = createHashMap();\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n        var axisProxy = dataZoomModel.getAxisProxy(dimNames.name, axisIndex);\n        each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n          seriesModelMap.set(seriesModel.uid, seriesModel);\n        });\n      });\n    });\n    return seriesModelMap;\n  },\n  modifyOutputEnd: true,\n  // Consider appendData, where filter should be performed. Because data process is\n  // in block mode currently, it is not need to worry about that the overallProgress\n  // execute every frame.\n  overallReset: function (ecModel, api) {\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      // We calculate window and reset axis here but not in model\n      // init stage and not after action dispatch handler, because\n      // reset should be called after seriesData.restoreData.\n      dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n        dataZoomModel.getAxisProxy(dimNames.name, axisIndex).reset(dataZoomModel, api);\n      }); // Caution: data zoom filtering is order sensitive when using\n      // percent range and no min/max/scale set on axis.\n      // For example, we have dataZoom definition:\n      // [\n      //      {xAxisIndex: 0, start: 30, end: 70},\n      //      {yAxisIndex: 0, start: 20, end: 80}\n      // ]\n      // In this case, [20, 80] of y-dataZoom should be based on data\n      // that have filtered by x-dataZoom using range of [30, 70],\n      // but should not be based on full raw data. Thus sliding\n      // x-dataZoom will change both ranges of xAxis and yAxis,\n      // while sliding y-dataZoom will only change the range of yAxis.\n      // So we should filter x-axis after reset x-axis immediately,\n      // and then reset y-axis and filter y-axis.\n\n      dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n        dataZoomModel.getAxisProxy(dimNames.name, axisIndex).filterData(dataZoomModel, api);\n      });\n    });\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      // Fullfill all of the range props so that user\n      // is able to get them from chart.getOption().\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n      var percentRange = axisProxy.getDataPercentWindow();\n      var valueRange = axisProxy.getDataValueWindow();\n      dataZoomModel.setRawRange({\n        start: percentRange[0],\n        end: percentRange[1],\n        startValue: valueRange[0],\n        endValue: valueRange[1]\n      }, true);\n    });\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/dataZoomProcessor.js\n// module id = c7bb\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n    isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/isSymbol.js\n// module id = cC8b\n// module chunks = 0","/**\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ExecutionEnvironment\n */\n\n/*jslint evil: true */\n\n'use strict';\n\nvar canUseDOM = !!(\n  typeof window !== 'undefined' &&\n  window.document &&\n  window.document.createElement\n);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n  canUseDOM: canUseDOM,\n\n  canUseWorkers: typeof Worker !== 'undefined',\n\n  canUseEventListeners:\n    canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n  canUseViewport: canUseDOM && !!window.screen,\n\n  isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_normalize-wheel@1.0.1@normalize-wheel/src/ExecutionEnvironment.js\n// module id = cDxT\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar isString = _util.isString;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Note that it is too complicated to support 3d stack by value\n * (have to create two-dimension inverted index), so in 3d case\n * we just support that stacked by index.\n *\n * @param {module:echarts/model/Series} seriesModel\n * @param {Array.<string|Object>} dimensionInfoList The same as the input of <module:echarts/data/List>.\n *        The input dimensionInfoList will be modified.\n * @param {Object} [opt]\n * @param {boolean} [opt.stackedCoordDimension=''] Specify a coord dimension if needed.\n * @param {boolean} [opt.byIndex=false]\n * @return {Object} calculationInfo\n * {\n *     stackedDimension: string\n *     stackedByDimension: string\n *     isStackedByIndex: boolean\n *     stackedOverDimension: string\n *     stackResultDimension: string\n * }\n */\nfunction enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension; // Compatibal: when `stack` is set as '', do not stack.\n\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      // Find the first ordinal dimension as the stackedByDimInfo.\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      } // Find the first stackable dimension as the stackedDimInfo.\n\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    // Compatible with previous design, value axis (time axis) only stack by index.\n    // It may make sense if the user provides elaborately constructed data.\n    byIndex = true;\n  } // Add stack dimension, they can be both calculated by coordinate system in `unionExtent`.\n  // That put stack logic in List is for using conveniently in echarts extensions, but it\n  // might not be a good way.\n\n\n  if (stackedDimInfo) {\n    // Use a weird name that not duplicated with other names.\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover'; // Create inverted index to fast query index by value.\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim) {\n        stackedDimCoordIndex++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim,\n      coordDimIndex: stackedDimCoordIndex,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      // This dimension contains stack base (generally, 0), so do not set it as\n      // `stackedDimCoordDim` to avoid extent calculation, consider log scale.\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\n/**\n * @param {module:echarts/data/List} data\n * @param {string} stackedDim\n */\n\n\nfunction isDimensionStacked(data, stackedDim\n/*, stackedByDim*/\n) {\n  // Each single series only maps to one pair of axis. So we do not need to\n  // check stackByDim, whatever stacked by a dimension or stacked by index.\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension'); // && (\n  //     stackedByDim != null\n  //         ? stackedByDim === data.getCalculationInfo('stackedByDimension')\n  //         : data.getCalculationInfo('isStackedByIndex')\n  // );\n}\n/**\n * @param {module:echarts/data/List} data\n * @param {string} targetDim\n * @param {string} [stackedByDim] If not input this parameter, check whether\n *                                stacked by index.\n * @return {string} dimension\n */\n\n\nfunction getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}\n\nexports.enableDataStack = enableDataStack;\nexports.isDimensionStacked = isDimensionStacked;\nexports.getStackedDimension = getStackedDimension;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/helper/dataStackHelper.js\n// module id = cfvC\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _barGrid = require(\"../layout/barGrid\");\n\nvar layout = _barGrid.layout;\nvar largeLayout = _barGrid.largeLayout;\n\nrequire(\"../coord/cartesian/Grid\");\n\nrequire(\"./bar/BarSeries\");\n\nrequire(\"./bar/BarView\");\n\nrequire(\"../component/gridSimple\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// In case developer forget to include grid component\necharts.registerLayout(zrUtil.curry(layout, 'bar')); // Should after normal bar layout, otherwise it is blocked by normal bar layout.\n\necharts.registerLayout(largeLayout);\necharts.registerVisual({\n  seriesType: 'bar',\n  reset: function (seriesModel) {\n    // Visual coding for legend\n    seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/bar.js\n// module id = cfw3\n// module chunks = 0","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_html.js\n// module id = cihN\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _ariaUtils = require('./aria-utils');\n\nvar _ariaUtils2 = _interopRequireDefault(_ariaUtils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @constructor\n * @desc Dialog object providing modal focus management.\n *\n * Assumptions: The element serving as the dialog container is present in the\n * DOM and hidden. The dialog container has role='dialog'.\n *\n * @param dialogId\n *          The ID of the element serving as the dialog container.\n * @param focusAfterClosed\n *          Either the DOM node or the ID of the DOM node to focus when the\n *          dialog closes.\n * @param focusFirst\n *          Optional parameter containing either the DOM node or the ID of the\n *          DOM node to focus when the dialog opens. If not specified, the\n *          first focusable element in the dialog will receive focus.\n */\nvar aria = aria || {};\nvar tabEvent;\n\naria.Dialog = function (dialog, focusAfterClosed, focusFirst) {\n  var _this = this;\n\n  this.dialogNode = dialog;\n  if (this.dialogNode === null || this.dialogNode.getAttribute('role') !== 'dialog') {\n    throw new Error('Dialog() requires a DOM element with ARIA role of dialog.');\n  }\n\n  if (typeof focusAfterClosed === 'string') {\n    this.focusAfterClosed = document.getElementById(focusAfterClosed);\n  } else if ((typeof focusAfterClosed === 'undefined' ? 'undefined' : _typeof(focusAfterClosed)) === 'object') {\n    this.focusAfterClosed = focusAfterClosed;\n  } else {\n    this.focusAfterClosed = null;\n  }\n\n  if (typeof focusFirst === 'string') {\n    this.focusFirst = document.getElementById(focusFirst);\n  } else if ((typeof focusFirst === 'undefined' ? 'undefined' : _typeof(focusFirst)) === 'object') {\n    this.focusFirst = focusFirst;\n  } else {\n    this.focusFirst = null;\n  }\n\n  if (this.focusFirst) {\n    this.focusFirst.focus();\n  } else {\n    _ariaUtils2.default.focusFirstDescendant(this.dialogNode);\n  }\n\n  this.lastFocus = document.activeElement;\n  tabEvent = function tabEvent(e) {\n    _this.trapFocus(e);\n  };\n  this.addListeners();\n};\n\naria.Dialog.prototype.addListeners = function () {\n  document.addEventListener('focus', tabEvent, true);\n};\n\naria.Dialog.prototype.removeListeners = function () {\n  document.removeEventListener('focus', tabEvent, true);\n};\n\naria.Dialog.prototype.closeDialog = function () {\n  var _this2 = this;\n\n  this.removeListeners();\n  if (this.focusAfterClosed) {\n    setTimeout(function () {\n      _this2.focusAfterClosed.focus();\n    });\n  }\n};\n\naria.Dialog.prototype.trapFocus = function (event) {\n  if (_ariaUtils2.default.IgnoreUtilFocusChanges) {\n    return;\n  }\n  if (this.dialogNode.contains(event.target)) {\n    this.lastFocus = event.target;\n  } else {\n    _ariaUtils2.default.focusFirstDescendant(this.dialogNode);\n    if (this.lastFocus === document.activeElement) {\n      _ariaUtils2.default.focusLastDescendant(this.dialogNode);\n    }\n    this.lastFocus = document.activeElement;\n  }\n};\n\nexports.default = aria.Dialog;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/aria-dialog.js\n// module id = clI9\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _labelHelper = require(\"./labelHelper\");\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/chart/helper/Symbol\n */\n\n/**\n * @constructor\n * @alias {module:echarts/chart/helper/Symbol}\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @extends {module:zrender/graphic/Group}\n */\nfunction SymbolClz(data, idx, seriesScope) {\n  graphic.Group.call(this);\n  this.updateData(data, idx, seriesScope);\n}\n\nvar symbolProto = SymbolClz.prototype;\n/**\n * @public\n * @static\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @return {Array.<number>} [width, height]\n */\n\nvar getSymbolSize = SymbolClz.getSymbolSize = function (data, idx) {\n  var symbolSize = data.getItemVisual(idx, 'symbolSize');\n  return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n};\n\nfunction getScale(symbolSize) {\n  return [symbolSize[0] / 2, symbolSize[1] / 2];\n}\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nsymbolProto._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n  // Remove paths created before\n  this.removeAll();\n  var color = data.getItemVisual(idx, 'color'); // var symbolPath = createSymbol(\n  //     symbolType, -0.5, -0.5, 1, 1, color\n  // );\n  // If width/height are set too small (e.g., set to 1) on ios10\n  // and macOS Sierra, a circle stroke become a rect, no matter what\n  // the scale is set. So we set width/height as 2. See #4150.\n\n  var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, color, keepAspect);\n  symbolPath.attr({\n    z2: 100,\n    culling: true,\n    scale: getScale(symbolSize)\n  }); // Rewrite drift method\n\n  symbolPath.drift = driftSymbol;\n  this._symbolType = symbolType;\n  this.add(symbolPath);\n};\n/**\n * Stop animation\n * @param {boolean} toLastFrame\n */\n\n\nsymbolProto.stopSymbolAnimation = function (toLastFrame) {\n  this.childAt(0).stopAnimation(toLastFrame);\n};\n/**\n * FIXME:\n * Caution: This method breaks the encapsulation of this module,\n * but it indeed brings convenience. So do not use the method\n * unless you detailedly know all the implements of `Symbol`,\n * especially animation.\n *\n * Get symbol path element.\n */\n\n\nsymbolProto.getSymbolPath = function () {\n  return this.childAt(0);\n};\n/**\n * Get scale(aka, current symbol size).\n * Including the change caused by animation\n */\n\n\nsymbolProto.getScale = function () {\n  return this.childAt(0).scale;\n};\n/**\n * Highlight symbol\n */\n\n\nsymbolProto.highlight = function () {\n  this.childAt(0).trigger('emphasis');\n};\n/**\n * Downplay symbol\n */\n\n\nsymbolProto.downplay = function () {\n  this.childAt(0).trigger('normal');\n};\n/**\n * @param {number} zlevel\n * @param {number} z\n */\n\n\nsymbolProto.setZ = function (zlevel, z) {\n  var symbolPath = this.childAt(0);\n  symbolPath.zlevel = zlevel;\n  symbolPath.z = z;\n};\n\nsymbolProto.setDraggable = function (draggable) {\n  var symbolPath = this.childAt(0);\n  symbolPath.draggable = draggable;\n  symbolPath.cursor = draggable ? 'move' : 'pointer';\n};\n/**\n * Update symbol properties\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @param {Object} [seriesScope]\n * @param {Object} [seriesScope.itemStyle]\n * @param {Object} [seriesScope.hoverItemStyle]\n * @param {Object} [seriesScope.symbolRotate]\n * @param {Object} [seriesScope.symbolOffset]\n * @param {module:echarts/model/Model} [seriesScope.labelModel]\n * @param {module:echarts/model/Model} [seriesScope.hoverLabelModel]\n * @param {boolean} [seriesScope.hoverAnimation]\n * @param {Object} [seriesScope.cursorStyle]\n * @param {module:echarts/model/Model} [seriesScope.itemModel]\n * @param {string} [seriesScope.symbolInnerColor]\n * @param {Object} [seriesScope.fadeIn=false]\n */\n\n\nsymbolProto.updateData = function (data, idx, seriesScope) {\n  this.silent = false;\n  var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n  var seriesModel = data.hostModel;\n  var symbolSize = getSymbolSize(data, idx);\n  var isInit = symbolType !== this._symbolType;\n\n  if (isInit) {\n    var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n    this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n  } else {\n    var symbolPath = this.childAt(0);\n    symbolPath.silent = false;\n    graphic.updateProps(symbolPath, {\n      scale: getScale(symbolSize)\n    }, seriesModel, idx);\n  }\n\n  this._updateCommon(data, idx, symbolSize, seriesScope);\n\n  if (isInit) {\n    var symbolPath = this.childAt(0);\n    var fadeIn = seriesScope && seriesScope.fadeIn;\n    var target = {\n      scale: symbolPath.scale.slice()\n    };\n    fadeIn && (target.style = {\n      opacity: symbolPath.style.opacity\n    });\n    symbolPath.scale = [0, 0];\n    fadeIn && (symbolPath.style.opacity = 0);\n    graphic.initProps(symbolPath, target, seriesModel, idx);\n  }\n\n  this._seriesModel = seriesModel;\n}; // Update common properties\n\n\nvar normalStyleAccessPath = ['itemStyle'];\nvar emphasisStyleAccessPath = ['emphasis', 'itemStyle'];\nvar normalLabelAccessPath = ['label'];\nvar emphasisLabelAccessPath = ['emphasis', 'label'];\n/**\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @param {Array.<number>} symbolSize\n * @param {Object} [seriesScope]\n */\n\nsymbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {\n  var symbolPath = this.childAt(0);\n  var seriesModel = data.hostModel;\n  var color = data.getItemVisual(idx, 'color'); // Reset style\n\n  if (symbolPath.type !== 'image') {\n    symbolPath.useStyle({\n      strokeNoScale: true\n    });\n  }\n\n  var itemStyle = seriesScope && seriesScope.itemStyle;\n  var hoverItemStyle = seriesScope && seriesScope.hoverItemStyle;\n  var symbolRotate = seriesScope && seriesScope.symbolRotate;\n  var symbolOffset = seriesScope && seriesScope.symbolOffset;\n  var labelModel = seriesScope && seriesScope.labelModel;\n  var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel;\n  var hoverAnimation = seriesScope && seriesScope.hoverAnimation;\n  var cursorStyle = seriesScope && seriesScope.cursorStyle;\n\n  if (!seriesScope || data.hasItemOption) {\n    var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx); // Color must be excluded.\n    // Because symbol provide setColor individually to set fill and stroke\n\n    itemStyle = itemModel.getModel(normalStyleAccessPath).getItemStyle(['color']);\n    hoverItemStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle();\n    symbolRotate = itemModel.getShallow('symbolRotate');\n    symbolOffset = itemModel.getShallow('symbolOffset');\n    labelModel = itemModel.getModel(normalLabelAccessPath);\n    hoverLabelModel = itemModel.getModel(emphasisLabelAccessPath);\n    hoverAnimation = itemModel.getShallow('hoverAnimation');\n    cursorStyle = itemModel.getShallow('cursor');\n  } else {\n    hoverItemStyle = zrUtil.extend({}, hoverItemStyle);\n  }\n\n  var elStyle = symbolPath.style;\n  symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n  if (symbolOffset) {\n    symbolPath.attr('position', [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])]);\n  }\n\n  cursorStyle && symbolPath.attr('cursor', cursorStyle); // PENDING setColor before setStyle!!!\n\n  symbolPath.setColor(color, seriesScope && seriesScope.symbolInnerColor);\n  symbolPath.setStyle(itemStyle);\n  var opacity = data.getItemVisual(idx, 'opacity');\n\n  if (opacity != null) {\n    elStyle.opacity = opacity;\n  }\n\n  var liftZ = data.getItemVisual(idx, 'liftZ');\n  var z2Origin = symbolPath.__z2Origin;\n\n  if (liftZ != null) {\n    if (z2Origin == null) {\n      symbolPath.__z2Origin = symbolPath.z2;\n      symbolPath.z2 += liftZ;\n    }\n  } else if (z2Origin != null) {\n    symbolPath.z2 = z2Origin;\n    symbolPath.__z2Origin = null;\n  }\n\n  var useNameLabel = seriesScope && seriesScope.useNameLabel;\n  graphic.setLabelStyle(elStyle, hoverItemStyle, labelModel, hoverLabelModel, {\n    labelFetcher: seriesModel,\n    labelDataIndex: idx,\n    defaultText: getLabelDefaultText,\n    isRectText: true,\n    autoColor: color\n  }); // Do not execute util needed.\n\n  function getLabelDefaultText(idx, opt) {\n    return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n  }\n\n  symbolPath.off('mouseover').off('mouseout').off('emphasis').off('normal');\n  symbolPath.hoverStyle = hoverItemStyle; // FIXME\n  // Do not use symbol.trigger('emphasis'), but use symbol.highlight() instead.\n\n  graphic.setHoverStyle(symbolPath);\n  var scale = getScale(symbolSize);\n\n  if (hoverAnimation && seriesModel.isAnimationEnabled()) {\n    var onEmphasis = function () {\n      // Do not support this hover animation util some scenario required.\n      // Animation can only be supported in hover layer when using `el.incremetal`.\n      if (this.incremental) {\n        return;\n      }\n\n      var ratio = scale[1] / scale[0];\n      this.animateTo({\n        scale: [Math.max(scale[0] * 1.1, scale[0] + 3), Math.max(scale[1] * 1.1, scale[1] + 3 * ratio)]\n      }, 400, 'elasticOut');\n    };\n\n    var onNormal = function () {\n      if (this.incremental) {\n        return;\n      }\n\n      this.animateTo({\n        scale: scale\n      }, 400, 'elasticOut');\n    };\n\n    symbolPath.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal);\n  }\n};\n/**\n * @param {Function} cb\n * @param {Object} [opt]\n * @param {Object} [opt.keepLabel=true]\n */\n\n\nsymbolProto.fadeOut = function (cb, opt) {\n  var symbolPath = this.childAt(0); // Avoid mistaken hover when fading out\n\n  this.silent = symbolPath.silent = true; // Not show text when animating\n\n  !(opt && opt.keepLabel) && (symbolPath.style.text = null);\n  graphic.updateProps(symbolPath, {\n    style: {\n      opacity: 0\n    },\n    scale: [0, 0]\n  }, this._seriesModel, this.dataIndex, cb);\n};\n\nzrUtil.inherits(SymbolClz, graphic.Group);\nvar _default = SymbolClz;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/Symbol.js\n// module id = d2Vn\n// module chunks = 0","var _core = require(\"./core\");\n\nvar createElement = _core.createElement;\n\nvar util = require(\"../core/util\");\n\nvar each = util.each;\n\nvar zrLog = require(\"../core/log\");\n\nvar Path = require(\"../graphic/Path\");\n\nvar ZImage = require(\"../graphic/Image\");\n\nvar ZText = require(\"../graphic/Text\");\n\nvar arrayDiff = require(\"../core/arrayDiff2\");\n\nvar GradientManager = require(\"./helper/GradientManager\");\n\nvar ClippathManager = require(\"./helper/ClippathManager\");\n\nvar ShadowManager = require(\"./helper/ShadowManager\");\n\nvar _graphic = require(\"./graphic\");\n\nvar svgPath = _graphic.path;\nvar svgImage = _graphic.image;\nvar svgText = _graphic.text;\n\n/**\n * SVG Painter\n * @module zrender/svg/Painter\n */\nfunction parseInt10(val) {\n  return parseInt(val, 10);\n}\n\nfunction getSvgProxy(el) {\n  if (el instanceof Path) {\n    return svgPath;\n  } else if (el instanceof ZImage) {\n    return svgImage;\n  } else if (el instanceof ZText) {\n    return svgText;\n  } else {\n    return svgPath;\n  }\n}\n\nfunction checkParentAvailable(parent, child) {\n  return child && parent && child.parentNode !== parent;\n}\n\nfunction insertAfter(parent, child, prevSibling) {\n  if (checkParentAvailable(parent, child) && prevSibling) {\n    var nextSibling = prevSibling.nextSibling;\n    nextSibling ? parent.insertBefore(child, nextSibling) : parent.appendChild(child);\n  }\n}\n\nfunction prepend(parent, child) {\n  if (checkParentAvailable(parent, child)) {\n    var firstChild = parent.firstChild;\n    firstChild ? parent.insertBefore(child, firstChild) : parent.appendChild(child);\n  }\n}\n\nfunction append(parent, child) {\n  if (checkParentAvailable(parent, child)) {\n    parent.appendChild(child);\n  }\n}\n\nfunction remove(parent, child) {\n  if (child && parent && child.parentNode === parent) {\n    parent.removeChild(child);\n  }\n}\n\nfunction getTextSvgElement(displayable) {\n  return displayable.__textSvgEl;\n}\n\nfunction getSvgElement(displayable) {\n  return displayable.__svgEl;\n}\n/**\n * @alias module:zrender/svg/Painter\n * @constructor\n * @param {HTMLElement} root 缁樺浘瀹瑰櫒\n * @param {module:zrender/Storage} storage\n * @param {Object} opts\n */\n\n\nvar SVGPainter = function (root, storage, opts, zrId) {\n  this.root = root;\n  this.storage = storage;\n  this._opts = opts = util.extend({}, opts || {});\n  var svgRoot = createElement('svg');\n  svgRoot.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n  svgRoot.setAttribute('version', '1.1');\n  svgRoot.setAttribute('baseProfile', 'full');\n  svgRoot.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n  this.gradientManager = new GradientManager(zrId, svgRoot);\n  this.clipPathManager = new ClippathManager(zrId, svgRoot);\n  this.shadowManager = new ShadowManager(zrId, svgRoot);\n  var viewport = document.createElement('div');\n  viewport.style.cssText = 'overflow:hidden;position:relative';\n  this._svgRoot = svgRoot;\n  this._viewport = viewport;\n  root.appendChild(viewport);\n  viewport.appendChild(svgRoot);\n  this.resize(opts.width, opts.height);\n  this._visibleList = [];\n};\n\nSVGPainter.prototype = {\n  constructor: SVGPainter,\n  getType: function () {\n    return 'svg';\n  },\n  getViewportRoot: function () {\n    return this._viewport;\n  },\n  getViewportRootOffset: function () {\n    var viewportRoot = this.getViewportRoot();\n\n    if (viewportRoot) {\n      return {\n        offsetLeft: viewportRoot.offsetLeft || 0,\n        offsetTop: viewportRoot.offsetTop || 0\n      };\n    }\n  },\n  refresh: function () {\n    var list = this.storage.getDisplayList(true);\n\n    this._paintList(list);\n  },\n  setBackgroundColor: function (backgroundColor) {\n    // TODO gradient\n    this._viewport.style.background = backgroundColor;\n  },\n  _paintList: function (list) {\n    this.gradientManager.markAllUnused();\n    this.clipPathManager.markAllUnused();\n    this.shadowManager.markAllUnused();\n    var svgRoot = this._svgRoot;\n    var visibleList = this._visibleList;\n    var listLen = list.length;\n    var newVisibleList = [];\n    var i;\n\n    for (i = 0; i < listLen; i++) {\n      var displayable = list[i];\n      var svgProxy = getSvgProxy(displayable);\n      var svgElement = getSvgElement(displayable) || getTextSvgElement(displayable);\n\n      if (!displayable.invisible) {\n        if (displayable.__dirty) {\n          svgProxy && svgProxy.brush(displayable); // Update clipPath\n\n          this.clipPathManager.update(displayable); // Update gradient and shadow\n\n          if (displayable.style) {\n            this.gradientManager.update(displayable.style.fill);\n            this.gradientManager.update(displayable.style.stroke);\n            this.shadowManager.update(svgElement, displayable);\n          }\n\n          displayable.__dirty = false;\n        }\n\n        newVisibleList.push(displayable);\n      }\n    }\n\n    var diff = arrayDiff(visibleList, newVisibleList);\n    var prevSvgElement; // First do remove, in case element moved to the head and do remove\n    // after add\n\n    for (i = 0; i < diff.length; i++) {\n      var item = diff[i];\n\n      if (item.removed) {\n        for (var k = 0; k < item.count; k++) {\n          var displayable = visibleList[item.indices[k]];\n          var svgElement = getSvgElement(displayable);\n          var textSvgElement = getTextSvgElement(displayable);\n          remove(svgRoot, svgElement);\n          remove(svgRoot, textSvgElement);\n        }\n      }\n    }\n\n    for (i = 0; i < diff.length; i++) {\n      var item = diff[i];\n\n      if (item.added) {\n        for (var k = 0; k < item.count; k++) {\n          var displayable = newVisibleList[item.indices[k]];\n          var svgElement = getSvgElement(displayable);\n          var textSvgElement = getTextSvgElement(displayable);\n          prevSvgElement ? insertAfter(svgRoot, svgElement, prevSvgElement) : prepend(svgRoot, svgElement);\n\n          if (svgElement) {\n            insertAfter(svgRoot, textSvgElement, svgElement);\n          } else if (prevSvgElement) {\n            insertAfter(svgRoot, textSvgElement, prevSvgElement);\n          } else {\n            prepend(svgRoot, textSvgElement);\n          } // Insert text\n\n\n          insertAfter(svgRoot, textSvgElement, svgElement);\n          prevSvgElement = textSvgElement || svgElement || prevSvgElement;\n          this.gradientManager.addWithoutUpdate(svgElement, displayable);\n          this.shadowManager.addWithoutUpdate(prevSvgElement, displayable);\n          this.clipPathManager.markUsed(displayable);\n        }\n      } else if (!item.removed) {\n        for (var k = 0; k < item.count; k++) {\n          var displayable = newVisibleList[item.indices[k]];\n          prevSvgElement = svgElement = getTextSvgElement(displayable) || getSvgElement(displayable) || prevSvgElement;\n          this.gradientManager.markUsed(displayable);\n          this.gradientManager.addWithoutUpdate(svgElement, displayable);\n          this.shadowManager.markUsed(displayable);\n          this.shadowManager.addWithoutUpdate(svgElement, displayable);\n          this.clipPathManager.markUsed(displayable);\n        }\n      }\n    }\n\n    this.gradientManager.removeUnused();\n    this.clipPathManager.removeUnused();\n    this.shadowManager.removeUnused();\n    this._visibleList = newVisibleList;\n  },\n  _getDefs: function (isForceCreating) {\n    var svgRoot = this._svgRoot;\n\n    var defs = this._svgRoot.getElementsByTagName('defs');\n\n    if (defs.length === 0) {\n      // Not exist\n      if (isForceCreating) {\n        var defs = svgRoot.insertBefore(createElement('defs'), // Create new tag\n        svgRoot.firstChild // Insert in the front of svg\n        );\n\n        if (!defs.contains) {\n          // IE doesn't support contains method\n          defs.contains = function (el) {\n            var children = defs.children;\n\n            if (!children) {\n              return false;\n            }\n\n            for (var i = children.length - 1; i >= 0; --i) {\n              if (children[i] === el) {\n                return true;\n              }\n            }\n\n            return false;\n          };\n        }\n\n        return defs;\n      } else {\n        return null;\n      }\n    } else {\n      return defs[0];\n    }\n  },\n  resize: function (width, height) {\n    var viewport = this._viewport; // FIXME Why ?\n\n    viewport.style.display = 'none'; // Save input w/h\n\n    var opts = this._opts;\n    width != null && (opts.width = width);\n    height != null && (opts.height = height);\n    width = this._getSize(0);\n    height = this._getSize(1);\n    viewport.style.display = '';\n\n    if (this._width !== width || this._height !== height) {\n      this._width = width;\n      this._height = height;\n      var viewportStyle = viewport.style;\n      viewportStyle.width = width + 'px';\n      viewportStyle.height = height + 'px';\n      var svgRoot = this._svgRoot; // Set width by 'svgRoot.width = width' is invalid\n\n      svgRoot.setAttribute('width', width);\n      svgRoot.setAttribute('height', height);\n    }\n  },\n\n  /**\n   * 鑾峰彇缁樺浘鍖哄煙瀹藉害\n   */\n  getWidth: function () {\n    return this._width;\n  },\n\n  /**\n   * 鑾峰彇缁樺浘鍖哄煙楂樺害\n   */\n  getHeight: function () {\n    return this._height;\n  },\n  _getSize: function (whIdx) {\n    var opts = this._opts;\n    var wh = ['width', 'height'][whIdx];\n    var cwh = ['clientWidth', 'clientHeight'][whIdx];\n    var plt = ['paddingLeft', 'paddingTop'][whIdx];\n    var prb = ['paddingRight', 'paddingBottom'][whIdx];\n\n    if (opts[wh] != null && opts[wh] !== 'auto') {\n      return parseFloat(opts[wh]);\n    }\n\n    var root = this.root; // IE8 does not support getComputedStyle, but it use VML.\n\n    var stl = document.defaultView.getComputedStyle(root);\n    return (root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh])) - (parseInt10(stl[plt]) || 0) - (parseInt10(stl[prb]) || 0) | 0;\n  },\n  dispose: function () {\n    this.root.innerHTML = '';\n    this._svgRoot = this._viewport = this.storage = null;\n  },\n  clear: function () {\n    if (this._viewport) {\n      this.root.removeChild(this._viewport);\n    }\n  },\n  pathToDataUrl: function () {\n    this.refresh();\n    var html = this._svgRoot.outerHTML;\n    return 'data:image/svg+xml;charset=UTF-8,' + html;\n  }\n}; // Not supported methods\n\nfunction createMethodNotSupport(method) {\n  return function () {\n    zrLog('In SVG mode painter not support method \"' + method + '\"');\n  };\n} // Unsuppoted methods\n\n\neach(['getLayer', 'insertLayer', 'eachLayer', 'eachBuiltinLayer', 'eachOtherLayer', 'getLayers', 'modLayer', 'delLayer', 'clearLayer', 'toDataURL', 'pathToImage'], function (name) {\n  SVGPainter.prototype[name] = createMethodNotSupport(name);\n});\nvar _default = SVGPainter;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/svg/Painter.js\n// module id = d7ze\n// module chunks = 0","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e(require(\"vue\"),function(){try{return require(\"hls.js\")}catch(t){}}()):\"function\"==typeof define&&define.amd?define(\"VueAPlayer\",[\"vue\",\"hls.js\"],e):\"object\"==typeof exports?exports.VueAPlayer=e(require(\"vue\"),function(){try{return require(\"hls.js\")}catch(t){}}()):t.VueAPlayer=e(t.Vue,t.Hls)}(\"undefined\"!=typeof self?self:this,function(t,e){return function(t){function e(a){if(i[a])return i[a].exports;var r=i[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var i={};return e.m=t,e.c=i,e.d=function(t,i,a){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:a})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,\"a\",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=15)}([function(t,e,i){\"use strict\";function a(t,e,i,a,r,n,o,s){t=t||{};var l=typeof t.default;\"object\"!==l&&\"function\"!==l||(t=t.default);var u=\"function\"==typeof t?t.options:t;e&&(u.render=e,u.staticRenderFns=i,u._compiled=!0),a&&(u.functional=!0),n&&(u._scopeId=n);var c;if(o?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},u._ssrRegister=c):r&&(c=s?function(){r.call(this,this.$root.$options.shadowRoot)}:r),c)if(u.functional){u._injectStyles=c;var p=u.render;u.render=function(t,e){return c.call(e),p(t,e)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,c):[c]}return{exports:t,options:u}}e.a=a},function(t,e){function i(t,e){var i=t[1]||\"\",r=t[3];if(!r)return i;if(e&&\"function\"==typeof btoa){var n=a(r);return[i].concat(r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"})).concat([n]).join(\"\\n\")}return[i].join(\"\\n\")}function a(t){return\"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+\" */\"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var a=i(e,t);return e[2]?\"@media \"+e[2]+\"{\"+a+\"}\":a}).join(\"\")},e.i=function(t,i){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var a={},r=0;r<this.length;r++){var n=this[r][0];\"number\"==typeof n&&(a[n]=!0)}for(r=0;r<t.length;r++){var o=t[r];\"number\"==typeof o[0]&&a[o[0]]||(i&&!o[2]?o[2]=i:i&&(o[2]=\"(\"+o[2]+\") and (\"+i+\")\"),e.push(o))}},e}},function(t,e,i){\"use strict\";function a(t,e,i,a){v=i,m=a||{};var n=Object(u.a)(t,e);return r(n),function(e){for(var i=[],a=0;a<n.length;a++){var o=n[a],s=p[o.id];s.refs--,i.push(s)}e?(n=Object(u.a)(t,e),r(n)):n=[];for(var a=0;a<i.length;a++){var s=i[a];if(0===s.refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete p[s.id]}}}}function r(t){for(var e=0;e<t.length;e++){var i=t[e],a=p[i.id];if(a){a.refs++;for(var r=0;r<a.parts.length;r++)a.parts[r](i.parts[r]);for(;r<i.parts.length;r++)a.parts.push(o(i.parts[r]));a.parts.length>i.parts.length&&(a.parts.length=i.parts.length)}else{for(var n=[],r=0;r<i.parts.length;r++)n.push(o(i.parts[r]));p[i.id]={id:i.id,refs:1,parts:n}}}}function n(){var t=document.createElement(\"style\");return t.type=\"text/css\",h.appendChild(t),t}function o(t){var e,i,a=document.querySelector(\"style[\"+g+'~=\"'+t.id+'\"]');if(a){if(v)return y;a.parentNode.removeChild(a)}if(b){var r=f++;a=d||(d=n()),e=s.bind(null,a,r,!1),i=s.bind(null,a,r,!0)}else a=n(),e=l.bind(null,a),i=function(){a.parentNode.removeChild(a)};return e(t),function(a){if(a){if(a.css===t.css&&a.media===t.media&&a.sourceMap===t.sourceMap)return;e(t=a)}else i()}}function s(t,e,i,a){var r=i?\"\":a.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var n=document.createTextNode(r),o=t.childNodes;o[e]&&t.removeChild(o[e]),o.length?t.insertBefore(n,o[e]):t.appendChild(n)}}function l(t,e){var i=e.css,a=e.media,r=e.sourceMap;if(a&&t.setAttribute(\"media\",a),m.ssrId&&t.setAttribute(g,e.id),r&&(i+=\"\\n/*# sourceURL=\"+r.sources[0]+\" */\",i+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\"),t.styleSheet)t.styleSheet.cssText=i;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(i))}}Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=a;var u=i(18),c=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!c)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var p={},h=c&&(document.head||document.getElementsByTagName(\"head\")[0]),d=null,f=0,v=!1,y=function(){},m=null,g=\"data-vue-ssr-id\",b=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase()),x=function(){var t=[];return function(e,i){return t[e]=i,t.filter(Boolean).join(\"\\n\")}}()},function(t,e,i){\"use strict\";function a(t){if(t){t=t.replace(/([^\\]^\\n])\\[/g,function(t,e){return e+\"\\n[\"});for(var e=t.split(\"\\n\"),i=[],a=e.length,r=0;r<a;r++){var n=e[r].match(/\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g),o=e[r].replace(/.*\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/g,\"\").replace(/<(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?>/g,\"\").replace(/^\\s+|\\s+$/g,\"\");if(n)for(var s=n.length,l=0;l<s;l++){var u=/\\[(\\d{2}):(\\d{2})(\\.(\\d{2,3}))?]/.exec(n[l]),c=60*u[1],p=parseInt(u[2]),h=u[4]?parseInt(u[4])/(2===(u[4]+\"\").length?100:1e3):0,d=c+p+h;i.push([d,o])}}return i.sort(function(t,e){return t[0]-e[0]}),i}return[]}function r(t,e){if(t===e)return 0;var i=t.split(\".\").map(Number),a=u(i,3),r=a[0],n=a[1],o=a[2],s=e.split(\".\").map(Number),l=u(s,3),c=l[0],p=l[1],h=l[2];if(r>c)return 1;if(r===c){if(n>p)return 1;if(n===p&&o>h)return 1}return-1}function n(t){return console.warn(\"[Vue-APlayer] \"+t)}function o(t,e,i){return n(\"'\"+t+\"' is deprecated since v\"+e+\", and will be removed in future releases, use '\"+i+\"' instead\")}function s(t){for(var e=t.offsetLeft,i=t.offsetParent,a=void 0;null!==i;)e+=i.offsetLeft,i=i.offsetParent;return a=document.body.scrollLeft+document.documentElement.scrollLeft,e-a}function l(t){for(var e=t.offsetTop,i=t.offsetParent,a=void 0;null!==i;)e+=i.offsetTop,i=i.offsetParent;return a=document.body.scrollTop+document.documentElement.scrollTop,e-a}e.d=a,e.e=r,e.f=n,e.a=o,e.b=s,e.c=l;var u=function(){function t(t,e){var i=[],a=!0,r=!1,n=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(i.push(o.value),!e||i.length!==e);a=!0);}catch(t){r=!0,n=t}finally{try{!a&&s.return&&s.return()}finally{if(r)throw n}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}()},function(t,e,i){\"use strict\";function a(t){i(25)}var r=i(7),n=i(44),o=i(0),s=a,l=Object(o.a)(r.a,n.a,n.b,!1,s,null,null);e.a=l.exports},function(t,e,i){\"use strict\";function a(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}return Array.from(t)}var r=i(19),n=i.n(r),o=i(20),s=i(46),l=i(50),u=i(62),c=i(3),p=function(){function t(t,e){var i=[],a=!0,r=!1,n=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(i.push(o.value),!e||i.length!==e);a=!0);}catch(t){r=!0,n=t}finally{try{!a&&s.return&&s.return()}finally{if(r)throw n}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),h=!1,d=Object(c.e)(n.a.version,\"2.3.0\")>=0,f={},v=null,y={NONE:\"none\",MUSIC:\"music\",LIST:\"list\",NO_REPEAT:\"no-repeat\",REPEAT_ONE:\"repeat-one\",REPEAT_ALL:\"repeat-all\"},m={name:\"APlayer\",disableVersionBadge:!1,components:{Thumbnail:o.a,Controls:l.a,MusicList:s.a,Lyrics:u.a},props:{music:{type:Object,required:!0,validator:function(t){return t.url&&Object(c.a)(\"music.url\",\"1.4.0\",\"music.src\"),t.author&&Object(c.a)(\"music.author\",\"1.4.1\",\"music.artist\"),t.src||t.url}},list:{type:Array,default:function(){return[]}},mini:{type:Boolean,default:!1},showLrc:{type:Boolean,default:!1},mutex:{type:Boolean,default:!0},theme:{type:String,default:\"#41b883\"},listMaxHeight:String,listFolded:{type:Boolean,default:!1},float:{type:Boolean,default:!1},autoplay:{type:Boolean,default:!1},controls:{type:Boolean,default:!1},muted:{type:Boolean,default:!1},preload:String,volume:{type:Number,default:.8,validator:function(t){return t>=0&&t<=1}},shuffle:{type:Boolean,default:!1},repeat:{type:String,default:y.NO_REPEAT},listmaxheight:{type:String,validator:function(t){return t&&Object(c.a)(\"listmaxheight\",\"1.1.2\",\"listMaxHeight\"),!0}},narrow:{type:Boolean,default:!1,validator:function(t){return t&&Object(c.a)(\"narrow\",\"1.1.2\",\"mini\"),!0}},showlrc:{type:Boolean,default:!1,validator:function(t){return t&&Object(c.a)(\"showlrc\",\"1.2.2\",\"showLrc\"),!0}}},data:function(){return{internalMusic:this.music,isPlaying:!1,isSeeking:!1,wasPlayingBeforeSeeking:!1,isMobile:/mobile/i.test(window.navigator.userAgent),playStat:{duration:0,loadedTime:0,playedTime:0},showList:!this.listFolded,audioPlayPromise:Promise.resolve(),floatOriginX:0,floatOriginY:0,floatOffsetLeft:0,floatOffsetTop:0,selfAdaptingTheme:null,internalMuted:this.muted,internalVolume:this.volume,isLoading:!1,internalShuffle:this.shuffle,internalRepeat:this.repeat,shuffledList:[]}},computed:{audio:function(){return this.$refs.audio},currentMusic:{get:function(){return this.internalMusic},set:function(t){d&&this.$emit(\"update:music\",t),this.internalMusic=t}},isMiniMode:function(){return this.mini||this.narrow},shouldShowLrc:function(){return this.showLrc||this.showlrc},currentTheme:function(){return this.selfAdaptingTheme||this.currentMusic.theme||this.theme},isFloatMode:function(){return this.float&&!this.isMobile},shouldAutoplay:function(){return!this.isMobile&&this.autoplay},musicList:function(){return this.list},shouldShowNativeControls:function(){return!1},floatStyleObj:function(){return{transform:\"translate(\"+this.floatOffsetLeft+\"px, \"+this.floatOffsetTop+\"px)\",webkitTransform:\"translate(\"+this.floatOffsetLeft+\"px, \"+this.floatOffsetTop+\"px)\"}},currentPicStyleObj:function(){return this.currentMusic&&this.currentMusic.pic?{backgroundImage:\"url(\"+this.currentMusic.pic+\")\"}:{}},loadProgress:function(){return 0===this.playStat.duration?0:this.playStat.loadedTime/this.playStat.duration},playProgress:function(){return 0===this.playStat.duration?0:this.playStat.playedTime/this.playStat.duration},playIndex:{get:function(){return this.shuffledList.indexOf(this.currentMusic)},set:function(t){this.currentMusic=this.shuffledList[t%this.shuffledList.length]}},shouldRepeat:function(){return this.repeatMode!==y.NO_REPEAT},isAudioMuted:{get:function(){return this.internalMuted},set:function(t){d&&this.$emit(\"update:muted\",t),this.internalMuted=t}},audioVolume:{get:function(){return this.internalVolume},set:function(t){d&&this.$emit(\"update:volume\",t),this.internalVolume=t}},shouldShuffle:{get:function(){return this.internalShuffle},set:function(t){d&&this.$emit(\"update:shuffle\",t),this.internalShuffle=t}},repeatMode:{get:function(){switch(this.internalRepeat){case y.NONE:case y.NO_REPEAT:return y.NO_REPEAT;case y.MUSIC:case y.REPEAT_ONE:return y.REPEAT_ONE;default:return y.REPEAT_ALL}},set:function(t){d&&this.$emit(\"update:repeat\",t),this.internalRepeat=t}}},methods:{onDragBegin:function(){this.floatOriginX=this.floatOffsetLeft,this.floatOriginY=this.floatOffsetTop},onDragAround:function(t){var e=t.offsetLeft,i=t.offsetTop;this.floatOffsetLeft=this.floatOriginX+e,this.floatOffsetTop=this.floatOriginY+i},setNextMode:function(){this.repeatMode===y.REPEAT_ALL?this.repeatMode=y.REPEAT_ONE:this.repeatMode===y.REPEAT_ONE?this.repeatMode=y.NO_REPEAT:this.repeatMode=y.REPEAT_ALL},thenPlay:function(){var t=this;this.$nextTick(function(){t.play()})},toggle:function(){this.audio.paused?this.play():this.pause()},play:function(){var t=this;this.mutex&&(v&&v!==this&&v.pause(),v=this);var e=this.audio.play();if(e)return this.audioPlayPromise=new Promise(function(i,a){t.rejectPlayPromise=a,e.then(function(e){t.rejectPlayPromise=null,i(e)}).catch(c.f)})},pause:function(){var t=this;this.audioPlayPromise.then(function(){t.audio.pause()}).catch(function(){t.audio.pause()}),this.rejectPlayPromise&&(this.rejectPlayPromise(),this.rejectPlayPromise=null)},onProgressDragBegin:function(t){this.wasPlayingBeforeSeeking=this.isPlaying,this.pause(),this.isSeeking=!0,isNaN(this.audio.duration)||(this.audio.currentTime=this.audio.duration*t)},onProgressDragging:function(t){isNaN(this.audio.duration)?this.playStat.playedTime=0:this.audio.currentTime=this.audio.duration*t},onProgressDragEnd:function(t){this.isSeeking=!1,this.wasPlayingBeforeSeeking&&this.thenPlay()},toggleMute:function(){this.setAudioMuted(!this.audio.muted)},setAudioMuted:function(t){this.audio.muted=t},setAudioVolume:function(t){this.audio.volume=t,t>0&&this.setAudioMuted(!1)},getShuffledList:function(){if(!this.list.length)return[this.internalMusic];var t=[].concat(a(this.list));if(!this.internalShuffle||t.length<=1)return t;var e=t.indexOf(this.internalMusic);if(2===t.length&&-1!==e)return 0===e?t:[this.internalMusic,t[0]];for(var i=t.length-1;i>0;i--){var r=Math.floor(Math.random()*(i+1)),n=t[i];t[i]=t[r],t[r]=n}if(-1!==e&&0!==(e=t.indexOf(this.internalMusic))){var o=[t[e],t[0]];t[0]=o[0],t[e]=o[1]}return t},onSelectSong:function(t){this.currentMusic===t?this.toggle():(this.currentMusic=t,this.thenPlay())},onAudioPlay:function(){this.isPlaying=!0},onAudioPause:function(){this.isPlaying=!1},onAudioWaiting:function(){this.isLoading=!0},onAudioCanplay:function(){this.isLoading=!1},onAudioDurationChange:function(){1!==this.audio.duration&&(this.playStat.duration=this.audio.duration)},onAudioProgress:function(){this.audio.buffered.length?this.playStat.loadedTime=this.audio.buffered.end(this.audio.buffered.length-1):this.playStat.loadedTime=0},onAudioTimeUpdate:function(){this.playStat.playedTime=this.audio.currentTime},onAudioSeeking:function(){this.playStat.playedTime=this.audio.currentTime},onAudioSeeked:function(){this.playStat.playedTime=this.audio.currentTime},onAudioVolumeChange:function(){this.audioVolume=this.audio.volume,this.isAudioMuted=this.audio.muted},onAudioEnded:function(){this.repeatMode===y.REPEAT_ALL?(this.shouldShuffle&&this.playIndex===this.shuffledList.length-1&&(this.shuffledList=this.getShuffledList()),this.playIndex++,this.thenPlay()):this.repeatMode===y.REPEAT_ONE?this.thenPlay():(this.playIndex++,0!==this.playIndex?this.thenPlay():1===this.shuffledList.length&&(this.audio.currentTime=0))},initAudio:function(){var t=this;this.audio.controls=this.shouldShowNativeControls,this.audio.muted=this.muted,this.audio.preload=this.preload,this.audio.volume=this.volume,[\"abort\",\"canplay\",\"canplaythrough\",\"durationchange\",\"emptied\",\"encrypted\",\"ended\",\"error\",\"interruptbegin\",\"interruptend\",\"loadeddata\",\"loadedmetadata\",\"loadstart\",\"mozaudioavailable\",\"pause\",\"play\",\"playing\",\"progress\",\"ratechange\",\"seeked\",\"seeking\",\"stalled\",\"suspend\",\"timeupdate\",\"volumechange\",\"waiting\"].forEach(function(e){t.audio.addEventListener(e,function(i){return t.$emit(e,i)})}),this.audio.addEventListener(\"play\",this.onAudioPlay),this.audio.addEventListener(\"pause\",this.onAudioPause),this.audio.addEventListener(\"abort\",this.onAudioPause),this.audio.addEventListener(\"waiting\",this.onAudioWaiting),this.audio.addEventListener(\"canplay\",this.onAudioCanplay),this.audio.addEventListener(\"progress\",this.onAudioProgress),this.audio.addEventListener(\"durationchange\",this.onAudioDurationChange),this.audio.addEventListener(\"seeking\",this.onAudioSeeking),this.audio.addEventListener(\"seeked\",this.onAudioSeeked),this.audio.addEventListener(\"timeupdate\",this.onAudioTimeUpdate),this.audio.addEventListener(\"volumechange\",this.onAudioVolumeChange),this.audio.addEventListener(\"ended\",this.onAudioEnded),this.currentMusic&&(this.audio.src=this.currentMusic.src||this.currentMusic.url)},setSelfAdaptingTheme:function(){var t=this;if(\"pic\"===(this.currentMusic.theme||this.theme)){var e=this.currentMusic.pic;if(f[e])this.selfAdaptingTheme=f[e];else try{(new ColorThief).getColorAsync(e,function(i){var a=p(i,3),r=a[0],n=a[1],o=a[2];f[e]=\"rgb(\"+r+\", \"+n+\", \"+o+\")\",t.selfAdaptingTheme=\"rgb(\"+r+\", \"+n+\", \"+o+\")\"})}catch(t){Object(c.f)(\"color-thief is required to support self-adapting theme\")}}else this.selfAdaptingTheme=null}},watch:{music:function(t){this.internalMusic=t},currentMusic:{handler:function(t){this.setSelfAdaptingTheme();var e=t.src||t.url;if(/\\.m3u8(?=(#|\\?|$))/.test(e))if(this.audio.canPlayType(\"application/x-mpegURL\")||this.audio.canPlayType(\"application/vnd.apple.mpegURL\"))this.audio.src=e;else try{var a=i(66);a.isSupported()?(this.hls||(this.hls=new a),this.hls.loadSource(e),this.hls.attachMedia(this.audio)):(Object(c.f)(\"HLS is not supported on your browser\"),this.audio.src=e)}catch(t){Object(c.f)(\"hls.js is required to support m3u8\"),this.audio.src=e}else this.audio.src=e}},shouldShowNativeControls:function(t){this.audio.controls=t},isAudioMuted:function(t){this.audio.muted=t},preload:function(t){this.audio.preload=t},audioVolume:function(t){this.audio.volume=t},muted:function(t){this.internalMuted=t},volume:function(t){this.internalVolume=t},shuffle:function(t){this.internalShuffle=t},repeat:function(t){this.internalRepeat=t}},beforeCreate:function(){m.disableVersionBadge||h||(console.log(\"\\n\\n %c Vue-APlayer 1.6.1 %c vue-aplayer.js.org \\n\",\"color: #fff; background:#41b883; padding:5px 0;\",\"color: #fff; background: #35495e; padding:5px 0;\"),h=!0)},created:function(){this.shuffledList=this.getShuffledList()},mounted:function(){this.initAudio(),this.setSelfAdaptingTheme(),this.autoplay&&this.play()},beforeDestroy:function(){v===this&&(v=null),this.hls&&this.hls.destroy()}};e.a=m},function(t,e,i){\"use strict\";var a=i(4);e.a={components:{IconButton:a.a},props:{pic:String,theme:String,playing:{type:Boolean,default:!1},enableDrag:{type:Boolean,default:!1}},data:function(){return{hasMovedSinceMouseDown:!1,dragStartX:0,dragStartY:0}},computed:{currentPicStyleObj:function(){return this.pic?{backgroundImage:\"url(\"+this.pic+\")\",backgroundColor:this.theme}:{}}},methods:{onDragBegin:function(t){this.enableDrag&&(this.hasMovedSinceMouseDown=!1,this.$emit(\"dragbegin\"),this.dragStartX=t.clientX,this.dragStartY=t.clientY,document.addEventListener(\"mousemove\",this.onDocumentMouseMove),document.addEventListener(\"mouseup\",this.onDocumentMouseUp))},onDocumentMouseMove:function(t){this.hasMovedSinceMouseDown=!0,this.$emit(\"dragging\",{offsetLeft:t.clientX-this.dragStartX,offsetTop:t.clientY-this.dragStartY})},onDocumentMouseUp:function(t){document.removeEventListener(\"mouseup\",this.onDocumentMouseUp),document.removeEventListener(\"mousemove\",this.onDocumentMouseMove),this.$emit(\"dragend\")},onClick:function(){this.hasMovedSinceMouseDown||this.$emit(\"toggleplay\")}}}},function(t,e,i){\"use strict\";var a=i(8);e.a={components:{Icon:a.a},props:[\"icon\"]}},function(t,e,i){\"use strict\";var a=i(9),r=i(43),n=i(0),o=Object(n.a)(a.a,r.a,r.b,!1,null,null,null);e.a=o.exports},function(t,e,i){\"use strict\";var a=function(){function t(t,e){var i=[],a=!0,r=!1,n=void 0;try{for(var o,s=t[Symbol.iterator]();!(a=(o=s.next()).done)&&(i.push(o.value),!e||i.length!==e);a=!0);}catch(t){r=!0,n=t}finally{try{!a&&s.return&&s.return()}finally{if(r)throw n}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),r=i(27),n=r.keys().reduce(function(t,e){var i=r(e),n=i.match(/^<svg.+?viewBox=\"(.+?)\".*><path.+?d=\"(.+?)\".*><\\/path><\\/svg>$/),o=a(n,3),s=(o[0],o[1]),l=o[2];return t[e.match(/^.*\\/(.+?)\\.svg$/)[1]]={viewBox:s,d:l},t},{});e.a={props:[\"type\"],computed:{svg:function(){this.type;return\"prev\"!==this.type&&\"next\"!==this.type||\"skip\",n[this.type]||{}},style:function(){if(\"next\"===this.type)return{transform:\"rotate(180deg)\"}}}}},function(t,e,i){\"use strict\";e.a={props:{show:{type:Boolean,default:!0},currentMusic:Object,musicList:{type:Array,default:function(){return[]}},playIndex:{type:Number,default:0},theme:String,listmaxheight:String},computed:{listHeightStyle:function(){return{height:33*this.musicList.length-1+\"px\",maxHeight:this.listmaxheight||\"\"}}}}},function(t,e,i){\"use strict\";var a=i(4),r=i(53),n=i(57);e.a={components:{IconButton:a.a,VProgress:r.a,Volume:n.a},props:[\"shuffle\",\"repeat\",\"stat\",\"theme\",\"volume\",\"muted\"],computed:{loadProgress:function(){return 0===this.stat.duration?0:this.stat.loadedTime/this.stat.duration},playProgress:function(){return 0===this.stat.duration?0:this.stat.playedTime/this.stat.duration}},methods:{secondToTime:function(t){if(isNaN(t))return\"00:00\";var e=function(t){return t<10?\"0\"+t:\"\"+t},i=Math.trunc(t/60),a=Math.trunc(t-60*i),r=Math.trunc(i/60),n=Math.trunc(t/60-60*Math.trunc(t/60/60));return t>=3600?e(r)+\":\"+e(n)+\":\"+e(a):e(i)+\":\"+e(a)}}}},function(t,e,i){\"use strict\";var a=i(3),r=i(8);e.a={components:{Icon:r.a},props:[\"loadProgress\",\"playProgress\",\"theme\"],data:function(){return{thumbHovered:!1}},methods:{onThumbMouseDown:function(t){var e=this.$refs.barWrap.clientWidth,i=(t.clientX-Object(a.b)(this.$refs.barWrap))/e;i=i>0?i:0,i=i<1?i:1,this.$emit(\"dragbegin\",i),document.addEventListener(\"mousemove\",this.onDocumentMouseMove),document.addEventListener(\"mouseup\",this.onDocumentMouseUp)},onDocumentMouseMove:function(t){var e=this.$refs.barWrap.clientWidth,i=(t.clientX-Object(a.b)(this.$refs.barWrap))/e;i=i>0?i:0,i=i<1?i:1,this.$emit(\"dragging\",i)},onDocumentMouseUp:function(t){document.removeEventListener(\"mouseup\",this.onDocumentMouseUp),document.removeEventListener(\"mousemove\",this.onDocumentMouseMove);var e=this.$refs.barWrap.clientWidth,i=(t.clientX-Object(a.b)(this.$refs.barWrap))/e;i=i>0?i:0,i=i<1?i:1,this.$emit(\"dragend\",i)},onThumbTouchStart:function(t){var e=this.$refs.barWrap.clientWidth,i=(t.clientX-Object(a.b)(this.$refs.barWrap))/e;i=i>0?i:0,i=i<1?i:1,this.$emit(\"dragbegin\",i),document.addEventListener(\"touchmove\",this.onDocumentTouchMove),document.addEventListener(\"touchend\",this.onDocumentTouchEnd)},onDocumentTouchMove:function(t){var e=t.changedTouches[0],i=this.$refs.barWrap.clientWidth,r=(e.clientX-Object(a.b)(this.$refs.barWrap))/i;r=r>0?r:0,r=r<1?r:1,this.$emit(\"dragging\",r)},onDocumentTouchEnd:function(t){document.removeEventListener(\"touchend\",this.onDocumentTouchEnd),document.removeEventListener(\"touchmove\",this.onDocumentTouchMove);var e=t.changedTouches[0],i=this.$refs.barWrap.clientWidth,r=(e.clientX-Object(a.b)(this.$refs.barWrap))/i;r=r>0?r:0,r=r<1?r:1,this.$emit(\"dragend\",r)}}}},function(t,e,i){\"use strict\";var a=i(4),r=i(3);e.a={components:{IconButton:a.a},props:[\"volume\",\"muted\",\"theme\"],computed:{volumeIcon:function(){return this.muted||this.volume<=0?\"volume-off\":this.volume>=1?\"volume-up\":\"volume-down\"}},methods:{adjustVolume:function(t){var e=(40-t.clientY+Object(r.c)(this.$refs.bar))/40;e=e>0?e:0,e=e<1?e:1,this.$emit(\"setvolume\",e)},onBarMouseDown:function(){document.addEventListener(\"mousemove\",this.onDocumentMouseMove),document.addEventListener(\"mouseup\",this.onDocumentMouseUp)},onDocumentMouseMove:function(t){var e=(40-t.clientY+Object(r.c)(this.$refs.bar))/40;e=e>0?e:0,e=e<1?e:1,this.$emit(\"setvolume\",e)},onDocumentMouseUp:function(t){document.removeEventListener(\"mouseup\",this.onDocumentMouseUp),document.removeEventListener(\"mousemove\",this.onDocumentMouseMove);var e=(40-t.clientY+Object(r.c)(this.$refs.bar))/40;e=e>0?e:0,e=e<1?e:1,this.$emit(\"setvolume\",e)}}}},function(t,e,i){\"use strict\";var a=i(3);e.a={props:{currentMusic:{type:Object,required:!0},playStat:{type:Object,required:!0}},data:function(){return{displayLrc:\"\",currentLineIndex:0}},computed:{lrcLines:function(){return Object(a.d)(this.displayLrc)},currentLine:function(){return this.currentLineIndex>this.lrcLines.length-1?null:this.lrcLines[this.currentLineIndex]},transformStyle:function(){return{transform:\"translateY(\"+16*-this.currentLineIndex+\"px)\",webkitTransform:\"translateY(\"+16*-this.currentLineIndex+\"px)\"}}},methods:{applyLrc:function(t){/^https?:\\/\\//.test(t)?this.fetchLrc(t):this.displayLrc=t},fetchLrc:function(t){var e=this;fetch(t).then(function(t){return t.text()}).then(function(t){e.displayLrc=t})},hideLrc:function(){this.displayLrc=\"\"}},watch:{currentMusic:{immediate:!0,handler:function(t){this.currentLineIndex=0,t.lrc?this.applyLrc(t.lrc):this.hideLrc()}},\"playStat.playedTime\":function(t){for(var e=0;e<this.lrcLines.length;e++){var i=this.lrcLines[e],a=this.lrcLines[e+1];t>=i[0]&&(!a||t<a[0])&&(this.currentLineIndex=e)}}}}},function(t,e,i){\"use strict\";function a(t){i(16)}Object.defineProperty(e,\"__esModule\",{value:!0});var r=i(5),n=i(67),o=i(0),s=a,l=Object(o.a)(r.a,n.a,n.b,!1,s,null,null);e.default=l.exports},function(t,e,i){var a=i(17);\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);var r=i(2).default;r(\"48028a76\",a,!0,{})},function(t,e,i){e=t.exports=i(1)(!1),e.push([t.i,\".aplayer{font-family:Arial,Helvetica,sans-serif;color:#000;background-color:#fff;margin:5px;-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.07),0 1px 5px 0 rgba(0,0,0,.1);box-shadow:0 2px 2px 0 rgba(0,0,0,.07),0 1px 5px 0 rgba(0,0,0,.1);border-radius:2px;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;position:relative}.aplayer *{-webkit-box-sizing:content-box;box-sizing:content-box}.aplayer .aplayer-lrc-content{display:none}.aplayer .aplayer-body{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative}.aplayer .aplayer-body .aplayer-info{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:start;padding:14px 7px 0 10px;height:66px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.aplayer .aplayer-body .aplayer-info .aplayer-music{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-left:5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default;padding-bottom:2px}.aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-title{font-size:14px}.aplayer .aplayer-body .aplayer-info .aplayer-music .aplayer-author{font-size:12px;color:#666}.aplayer .aplayer-body .aplayer-info .aplayer-lrc{z-index:0}.aplayer audio[controls]{display:block;width:100%}.aplayer.aplayer-narrow{width:66px}.aplayer.aplayer-withlrc .aplayer-body .aplayer-pic{height:90px;width:90px}.aplayer.aplayer-withlrc .aplayer-body .aplayer-info{height:90px;padding:10px 7px 0}.aplayer.aplayer-withlist .aplayer-body .aplayer-info{border-bottom:1px solid #e9e9e9}.aplayer.aplayer-withlist .aplayer-body .aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu{display:block}.aplayer.aplayer-float{z-index:1}@-webkit-keyframes aplayer-roll{0%{left:0}to{left:-100%}}@keyframes aplayer-roll{0%{left:0}to{left:-100%}}\",\"\"])},function(t,e,i){\"use strict\";function a(t,e){for(var i=[],a={},r=0;r<e.length;r++){var n=e[r],o=n[0],s=n[1],l=n[2],u=n[3],c={id:t+\":\"+r,css:s,media:l,sourceMap:u};a[o]?a[o].parts.push(c):i.push(a[o]={id:o,parts:[c]})}return i}e.a=a},function(e,i){e.exports=t},function(t,e,i){\"use strict\";function a(t){i(21)}var r=i(6),n=i(45),o=i(0),s=a,l=Object(o.a)(r.a,n.a,n.b,!1,s,null,null);e.a=l.exports},function(t,e,i){var a=i(22);\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);var r=i(2).default;r(\"082b31c5\",a,!0,{})},function(t,e,i){var a=i(23);e=t.exports=i(1)(!1),e.push([t.i,\".aplayer-float .aplayer-pic:active{cursor:move}.aplayer-pic{-ms-flex-negative:0;flex-shrink:0;position:relative;height:66px;width:66px;background-image:url(\"+a(i(24))+\");background-size:cover;-webkit-transition:all .3s ease;transition:all .3s ease;cursor:pointer}.aplayer-pic:hover .aplayer-button{opacity:1}.aplayer-pic .aplayer-button{position:absolute;border-radius:50%;opacity:.8;text-shadow:0 1px 1px rgba(0,0,0,.2);-webkit-box-shadow:0 1px 1px rgba(0,0,0,.2);box-shadow:0 1px 1px rgba(0,0,0,.2);background:rgba(0,0,0,.2);-webkit-transition:all .1s ease;transition:all .1s ease}.aplayer-pic .aplayer-button .aplayer-fill{fill:#fff}.aplayer-pic .aplayer-play{width:26px;height:26px;border:2px solid #fff;bottom:50%;right:50%;margin:0 -15px -15px 0}.aplayer-pic .aplayer-play .aplayer-icon-play{position:absolute;top:3px;left:4px;height:20px;width:20px}.aplayer-pic .aplayer-pause{width:16px;height:16px;border:2px solid #fff;bottom:4px;right:4px}.aplayer-pic .aplayer-pause .aplayer-icon-pause{position:absolute;top:2px;left:2px;height:12px;width:12px}\",\"\"])},function(t,e){t.exports=function(t){return\"string\"!=typeof t?t:(/^['\"].*['\"]$/.test(t)&&(t=t.slice(1,-1)),/[\"'() \\t\\n]/.test(t)?'\"'+t.replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\")+'\"':t)}},function(t,e){t.exports=\"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAeAAD/4QMfaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzA2NyA3OS4xNTc3NDcsIDIwMTUvMDMvMzAtMjM6NDA6NDIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjE2NjQ3NUZBM0Y4RDExRTY4NzJCRDdCNkZCQTQ0MjNBIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjE2NjQ3NUY5M0Y4RDExRTY4NzJCRDdCNkZCQTQ0MjNBIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSI5OENEMEFFRjM0NTI1NjE0NEREQkU4RjkxRjAwNjM3NiIgc3RSZWY6ZG9jdW1lbnRJRD0iOThDRDBBRUYzNDUyNTYxNDREREJFOEY5MUYwMDYzNzYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAQCwsLDAsQDAwQFw8NDxcbFBAQFBsfFxcXFxcfHhca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\"},function(t,e,i){var a=i(26);\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);var r=i(2).default;r(\"a4518b4e\",a,!0,{})},function(t,e,i){e=t.exports=i(1)(!1),e.push([t.i,\".aplayer-icon{width:15px;height:15px;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;vertical-align:middle;padding:0;font-size:12px;margin:0;display:inline}.aplayer-icon:hover{opacity:1}.aplayer-icon .aplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}\",\"\"])},function(t,e,i){function a(t){return i(r(t))}function r(t){var e=n[t];if(!(e+1))throw new Error(\"Cannot find module '\"+t+\"'.\");return e}var n={\"./loading.svg\":28,\"./lrc.svg\":29,\"./menu.svg\":30,\"./no-repeat.svg\":31,\"./pause.svg\":32,\"./play.svg\":33,\"./repeat-all-legacy.svg\":34,\"./repeat-all.svg\":35,\"./repeat-one-legacy.svg\":36,\"./repeat-one.svg\":37,\"./shuffle.svg\":38,\"./skip.svg\":39,\"./volume-down.svg\":40,\"./volume-off.svg\":41,\"./volume-up.svg\":42};a.keys=function(){return Object.keys(n)},a.resolve=r,t.exports=a,a.id=27},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M4 16c0-6.6 5.4-12 12-12s12 5.4 12 12c0 1.2-0.8 2-2 2s-2-0.8-2-2c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8c1.2 0 2 0.8 2 2s-0.8 2-2 2c-6.6 0-12-5.4-12-12z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"-5 0 32 32\"><path d=\"M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M2.667 7.027l1.707-1.693 22.293 22.293-1.693 1.707-4-4h-11.64v4l-5.333-5.333 5.333-5.333v4h8.973l-8.973-8.973v0.973h-2.667v-3.64l-4-4zM22.667 17.333h2.667v5.573l-2.667-2.667v-2.907zM22.667 6.667v-4l5.333 5.333-5.333 5.333v-4h-10.907l-2.667-2.667h13.573z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"-8 0 32 32\"><path d=\"M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"-8 0 32 32\"><path d=\"M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"-1 0 32 32\"><path d=\"M25.6 9.92q1.344 0 2.272 0.928t0.928 2.272v9.28q0 1.28-0.928 2.24t-2.272 0.96h-22.4q-1.28 0-2.24-0.96t-0.96-2.24v-9.28q0-1.344 0.96-2.272t2.24-0.928h8v-3.52l6.4 5.76-6.4 5.76v-3.52h-6.72v6.72h19.84v-6.72h-4.8v-4.48h6.080z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M9.333 9.333h13.333v4l5.333-5.333-5.333-5.333v4h-16v8h2.667v-5.333zM22.667 22.667h-13.333v-4l-5.333 5.333 5.333 5.333v-4h16v-8h-2.667v5.333z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 38 32\"><path d=\"M2.072 21.577c0.71-0.197 1.125-0.932 0.928-1.641-0.221-0.796-0.333-1.622-0.333-2.457 0-5.049 4.108-9.158 9.158-9.158h5.428c0.056-0.922 0.221-1.816 0.482-2.667h-5.911c-3.158 0-6.128 1.23-8.361 3.463s-3.463 5.203-3.463 8.361c0 1.076 0.145 2.143 0.431 3.171 0.164 0.59 0.7 0.976 1.284 0.976 0.117 0 0.238-0.016 0.357-0.049zM21.394 25.613h-12.409v-2.362c0-0.758-0.528-1.052-1.172-0.652l-5.685 3.522c-0.644 0.4-0.651 1.063-0.014 1.474l5.712 3.69c0.637 0.411 1.158 0.127 1.158-0.63v-2.374h12.409c3.158 0 6.128-1.23 8.361-3.463 1.424-1.424 2.44-3.148 2.99-5.029-0.985 0.368-2.033 0.606-3.125 0.691-1.492 3.038-4.619 5.135-8.226 5.135zM28.718 0c-4.985 0-9.026 4.041-9.026 9.026s4.041 9.026 9.026 9.026 9.026-4.041 9.026-9.026-4.041-9.026-9.026-9.026zM30.392 13.827h-1.728v-6.822c-0.635 0.576-1.433 1.004-2.407 1.285v-1.713c0.473-0.118 0.975-0.325 1.506-0.62 0.532-0.325 0.975-0.665 1.329-1.034h1.3v8.904z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M9.333 9.333h13.333v4l5.333-5.333-5.333-5.333v4h-16v8h2.667v-5.333zM22.667 22.667h-13.333v-4l-5.333 5.333 5.333 5.333v-4h16v-8h-2.667v5.333zM17.333 20v-8h-1.333l-2.667 1.333v1.333h2v5.333h2z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M22.667 4l7 6-7 6 7 6-7 6v-4h-3.653l-3.76-3.76 2.827-2.827 2.587 2.587h2v-8h-2l-12 12h-6v-4h4.347l12-12h3.653v-4zM2.667 8h6l3.76 3.76-2.827 2.827-2.587-2.587h-4.347v-4z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M25.468 6.947c-0.326-0.172-0.724-0.151-1.030 0.057l-6.438 4.38v-3.553c0-0.371-0.205-0.71-0.532-0.884-0.326-0.172-0.724-0.151-1.030 0.057l-12 8.164c-0.274 0.186-0.438 0.496-0.438 0.827s0.164 0.641 0.438 0.827l12 8.168c0.169 0.115 0.365 0.174 0.562 0.174 0.16 0 0.321-0.038 0.468-0.116 0.327-0.173 0.532-0.514 0.532-0.884v-3.556l6.438 4.382c0.169 0.115 0.365 0.174 0.562 0.174 0.16 0 0.321-0.038 0.468-0.116 0.327-0.173 0.532-0.514 0.532-0.884v-16.333c0-0.371-0.205-0.71-0.532-0.884z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z\"></path></svg>'},function(t,e){t.exports='<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 0 32 32\"><path d=\"M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z\"></path></svg>'},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"svg\",{style:t.style,attrs:{\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",height:\"100%\",version:\"1.1\",viewBox:t.svg.viewBox,width:\"100%\"}},[i(\"use\",{attrs:{\"xlink:href\":\"#aplayer-${type}\"}}),t._v(\" \"),i(\"path\",{staticClass:\"aplayer-fill\",attrs:{d:t.svg.d}})])},r=[]},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"button\",{staticClass:\"aplayer-icon\",attrs:{type:\"button\"}},[i(\"icon\",{attrs:{type:t.icon}})],1)},r=[]},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{staticClass:\"aplayer-pic\",style:t.currentPicStyleObj,on:{mousedown:t.onDragBegin,click:t.onClick}},[i(\"div\",{staticClass:\"aplayer-button\",class:t.playing?\"aplayer-pause\":\"aplayer-play\"},[i(\"icon-button\",{class:t.playing?\"aplayer-icon-pause\":\"aplayer-icon-play\",attrs:{icon:t.playing?\"pause\":\"play\"}})],1)])},r=[]},function(t,e,i){\"use strict\";function a(t){i(47)}var r=i(10),n=i(49),o=i(0),s=a,l=Object(o.a)(r.a,n.a,n.b,!1,s,null,null);e.a=l.exports},function(t,e,i){var a=i(48);\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);var r=i(2).default;r(\"7b9d1402\",a,!0,{})},function(t,e,i){e=t.exports=i(1)(!1),e.push([t.i,\".aplayer-list{overflow:hidden}.aplayer-list.slide-v-enter-active,.aplayer-list.slide-v-leave-active{-webkit-transition:height .5s ease;transition:height .5s ease;will-change:height}.aplayer-list.slide-v-enter,.aplayer-list.slide-v-leave-to{height:0!important}.aplayer-list ol{list-style-type:none;margin:0;padding:0;overflow-y:auto}.aplayer-list ol::-webkit-scrollbar{width:5px}.aplayer-list ol::-webkit-scrollbar-track{background-color:#f9f9f9}.aplayer-list ol::-webkit-scrollbar-thumb{border-radius:3px;background-color:#eee}.aplayer-list ol::-webkit-scrollbar-thumb:hover{background-color:#ccc}.aplayer-list ol:hover li.aplayer-list-light:not(:hover){background-color:inherit;-webkit-transition:inherit;transition:inherit}.aplayer-list ol:not(:hover) li.aplayer-list-light{-webkit-transition:background-color .6s ease;transition:background-color .6s ease}.aplayer-list ol li{position:relative;height:32px;line-height:32px;padding:0 15px;font-size:12px;border-top:1px solid #e9e9e9;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease;overflow:hidden;margin:0;text-align:start;display:-webkit-box;display:-ms-flexbox;display:flex}.aplayer-list ol li:first-child{border-top:none}.aplayer-list ol li.aplayer-list-light,.aplayer-list ol li:hover{background:#efefef}.aplayer-list ol li.aplayer-list-light .aplayer-list-cur{display:inline-block}.aplayer-list ol li .aplayer-list-cur{display:none;width:3px;height:22px;position:absolute;left:0;top:5px;-webkit-transition:background-color .3s;transition:background-color .3s}.aplayer-list ol li .aplayer-list-index{color:#666;margin-right:12px}.aplayer-list ol li .aplayer-list-title{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.aplayer-list ol li .aplayer-list-author{-ms-flex-negative:0;flex-shrink:0;color:#666;float:right}\",\"\"])},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"transition\",{attrs:{name:\"slide-v\"}},[i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.show,expression:\"show\"}],ref:\"list\",staticClass:\"aplayer-list\",style:t.listHeightStyle},[i(\"ol\",{ref:\"ol\",style:t.listHeightStyle},t._l(t.musicList,function(e,a){return i(\"li\",{key:a,class:{\"aplayer-list-light\":e===t.currentMusic},on:{click:function(i){t.$emit(\"selectsong\",e)}}},[i(\"span\",{staticClass:\"aplayer-list-cur\",style:{background:t.theme}}),t._v(\" \"),i(\"span\",{staticClass:\"aplayer-list-index\"},[t._v(t._s(a+1))]),t._v(\" \"),i(\"span\",{staticClass:\"aplayer-list-title\"},[t._v(t._s(e.title||\"Untitled\"))]),t._v(\" \"),i(\"span\",{staticClass:\"aplayer-list-author\"},[t._v(t._s(e.artist||e.author||\"Unknown\"))])])}))])])},r=[]},function(t,e,i){\"use strict\";function a(t){i(51)}var r=i(11),n=i(61),o=i(0),s=a,l=Object(o.a)(r.a,n.a,n.b,!1,s,null,null);e.a=l.exports},function(t,e,i){var a=i(52);\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);var r=i(2).default;r(\"c97c1d8a\",a,!0,{})},function(t,e,i){e=t.exports=i(1)(!1),e.push([t.i,\".aplayer-controller,.aplayer-controller .aplayer-time{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.aplayer-controller .aplayer-time{height:17px;color:#999;font-size:11px;padding-left:7px}.aplayer-controller .aplayer-time .aplayer-volume-wrap{margin-left:4px;margin-right:4px}.aplayer-controller .aplayer-time .aplayer-icon{cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease;margin-left:4px}.aplayer-controller .aplayer-time .aplayer-icon.inactive{opacity:.3}.aplayer-controller .aplayer-time .aplayer-icon .aplayer-fill{fill:#666}.aplayer-controller .aplayer-time .aplayer-icon:hover .aplayer-fill{fill:#000}.aplayer-controller .aplayer-time .aplayer-icon.aplayer-icon-menu{display:none}.aplayer-controller .aplayer-time .aplayer-volume-wrap+.aplayer-icon{margin-left:0}.aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-menu,.aplayer-controller .aplayer-time.aplayer-time-narrow .aplayer-icon-mode{display:none}\",\"\"])},function(t,e,i){\"use strict\";function a(t){i(54)}var r=i(12),n=i(56),o=i(0),s=a,l=Object(o.a)(r.a,n.a,n.b,!1,s,null,null);e.a=l.exports},function(t,e,i){var a=i(55);\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);var r=i(2).default;r(\"6f66d8c5\",a,!0,{})},function(t,e,i){e=t.exports=i(1)(!1),e.push([t.i,\".aplayer-bar-wrap{margin:0 0 0 5px;padding:4px 0;cursor:pointer;-webkit-box-flex:1;-ms-flex:1;flex:1}.aplayer-bar-wrap .aplayer-bar{position:relative;height:2px;width:100%;background:#cdcdcd}.aplayer-bar-wrap .aplayer-bar .aplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:#aaa;height:2px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.aplayer-bar-wrap .aplayer-bar .aplayer-played{position:absolute;left:0;top:0;bottom:0;height:2px;-webkit-transition:background-color .3s;transition:background-color .3s;will-change:width}.aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{position:absolute;top:0;right:5px;margin-top:-5px;margin-right:-10px;width:10px;height:10px;border:1px solid;-webkit-transform:scale(.8);transform:scale(.8);will-change:transform;-webkit-transition:background-color .3s,border-color .3s,-webkit-transform .3s;transition:background-color .3s,border-color .3s,-webkit-transform .3s;transition:transform .3s,background-color .3s,border-color .3s;transition:transform .3s,background-color .3s,border-color .3s,-webkit-transform .3s;border-radius:50%;background:#fff;cursor:pointer;overflow:hidden}.aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb:hover{-webkit-transform:scale(1);transform:scale(1)}.aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb .aplayer-loading-icon{display:none;width:100%;height:100%}.aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb .aplayer-loading-icon svg{position:absolute;-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;fill:#fff}.aplayer-loading .aplayer-bar-wrap .aplayer-bar .aplayer-thumb .aplayer-loading-icon{display:block}.aplayer-loading .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played .aplayer-thumb{-webkit-transform:scale(1);transform:scale(1)}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}\",\"\"])},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{ref:\"barWrap\",staticClass:\"aplayer-bar-wrap\",on:{mousedown:t.onThumbMouseDown,touchstart:t.onThumbTouchStart}},[i(\"div\",{staticClass:\"aplayer-bar\"},[i(\"div\",{staticClass:\"aplayer-loaded\",style:{width:100*t.loadProgress+\"%\"}}),t._v(\" \"),i(\"div\",{staticClass:\"aplayer-played\",style:{width:100*t.playProgress+\"%\",background:t.theme}},[i(\"span\",{ref:\"thumb\",staticClass:\"aplayer-thumb\",style:{borderColor:t.theme,backgroundColor:t.thumbHovered?t.theme:\"#fff\"},on:{mouseover:function(e){t.thumbHovered=!0},mouseout:function(e){t.thumbHovered=!1}}},[i(\"span\",{staticClass:\"aplayer-loading-icon\",style:{backgroundColor:t.theme}},[i(\"icon\",{attrs:{type:\"loading\"}})],1)])])])])},r=[]},function(t,e,i){\"use strict\";function a(t){i(58)}var r=i(13),n=i(60),o=i(0),s=a,l=Object(o.a)(r.a,n.a,n.b,!1,s,null,null);e.a=l.exports},function(t,e,i){var a=i(59);\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);var r=i(2).default;r(\"28c86b36\",a,!0,{})},function(t,e,i){e=t.exports=i(1)(!1),e.push([t.i,'.aplayer-volume-wrap{position:relative;cursor:pointer;z-index:0}.aplayer-volume-wrap:hover .aplayer-volume-bar-wrap{display:block}.aplayer-volume-wrap .aplayer-volume-bar-wrap{display:none;position:absolute;bottom:15px;left:-4px;right:-4px;height:40px;z-index:-1;-webkit-transition:all .2s ease;transition:all .2s ease}.aplayer-volume-wrap .aplayer-volume-bar-wrap:after{content:\"\";position:absolute;bottom:-16px;left:0;right:0;height:62px;background-color:#fff;-webkit-box-shadow:0 0 2px 0 rgba(0,0,0,.07),0 0 5px 0 rgba(0,0,0,.1);box-shadow:0 0 2px 0 rgba(0,0,0,.07),0 0 5px 0 rgba(0,0,0,.1)}.aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar{position:absolute;bottom:0;left:11px;width:5px;height:40px;background:#aaa;border-radius:2.5px;overflow:hidden;z-index:1}.aplayer-volume-wrap .aplayer-volume-bar-wrap .aplayer-volume-bar .aplayer-volume{position:absolute;bottom:0;left:0;right:0;-webkit-transition:height .1s ease,background-color .3s;transition:height .1s ease,background-color .3s;will-change:height}',\"\"])},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{staticClass:\"aplayer-volume-wrap\"},[i(\"icon-button\",{class:\"aplayer-icon-\"+t.volumeIcon,attrs:{icon:t.volumeIcon},nativeOn:{click:function(e){t.$emit(\"togglemute\")}}}),t._v(\" \"),i(\"div\",{staticClass:\"aplayer-volume-bar-wrap\",on:{mousedown:t.onBarMouseDown}},[i(\"div\",{ref:\"bar\",staticClass:\"aplayer-volume-bar\"},[i(\"div\",{staticClass:\"aplayer-volume\",style:{height:t.muted?0:Math.trunc(100*t.volume)+\"%\",background:t.theme}})])])],1)},r=[]},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{staticClass:\"aplayer-controller\"},[i(\"v-progress\",{attrs:{loadProgress:t.loadProgress,playProgress:t.playProgress,theme:t.theme},on:{dragbegin:function(e){return t.$emit(\"dragbegin\",e)},dragend:function(e){return t.$emit(\"dragend\",e)},dragging:function(e){return t.$emit(\"dragging\",e)}}}),t._v(\" \"),i(\"div\",{staticClass:\"aplayer-time\"},[i(\"div\",{staticClass:\"aplayer-time-inner\"},[t._v(\"\\n      - \"),i(\"span\",{staticClass:\"aplayer-ptime\"},[t._v(t._s(t.secondToTime(t.stat.playedTime)))]),t._v(\" / \"),i(\"span\",{staticClass:\"aplayer-dtime\"},[t._v(t._s(t.secondToTime(t.stat.duration)))])]),t._v(\" \"),t.$parent.isMobile?t._e():i(\"volume\",{attrs:{volume:t.volume,theme:t.theme,muted:t.muted},on:{togglemute:function(e){t.$emit(\"togglemute\")},setvolume:function(e){return t.$emit(\"setvolume\",e)}}}),t._v(\" \"),i(\"icon-button\",{staticClass:\"aplayer-icon-mode\",class:{inactive:!t.shuffle},attrs:{icon:\"shuffle\"},nativeOn:{click:function(e){t.$emit(\"toggleshuffle\")}}}),t._v(\" \"),i(\"icon-button\",{staticClass:\"aplayer-icon-mode\",class:{inactive:\"no-repeat\"===t.repeat},attrs:{icon:\"repeat-one\"===t.repeat?\"repeat-one\":\"repeat-all\"},nativeOn:{click:function(e){t.$emit(\"nextmode\")}}}),t._v(\" \"),i(\"icon-button\",{staticClass:\"aplayer-icon-menu\",class:{inactive:!t.$parent.showList},attrs:{icon:\"menu\"},nativeOn:{click:function(e){t.$emit(\"togglelist\")}}})],1)],1)},r=[]},function(t,e,i){\"use strict\";function a(t){i(63)}var r=i(14),n=i(65),o=i(0),s=a,l=Object(o.a)(r.a,n.a,n.b,!1,s,null,null);e.a=l.exports},function(t,e,i){var a=i(64);\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);var r=i(2).default;r(\"229083b6\",a,!0,{})},function(t,e,i){e=t.exports=i(1)(!1),e.push([t.i,'.aplayer-lrc{position:relative;height:30px;text-align:center;overflow:hidden;margin-bottom:7px}.aplayer-lrc:before{top:0;height:10%;background:-webkit-gradient(linear,left top,left bottom,from(#fff),to(hsla(0,0%,100%,0)));background:linear-gradient(180deg,#fff 0,hsla(0,0%,100%,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ffffff\",endColorstr=\"#00ffffff\",GradientType=0)}.aplayer-lrc:after,.aplayer-lrc:before{position:absolute;z-index:1;display:block;overflow:hidden;width:100%;content:\" \"}.aplayer-lrc:after{bottom:0;height:33%;background:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,0)),to(hsla(0,0%,100%,.8)));background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,.8));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ccffffff\",GradientType=0)}.aplayer-lrc p{font-size:12px;color:#666;line-height:16px;height:16px;padding:0;margin:0;-webkit-transition:all .5s ease-out;transition:all .5s ease-out;opacity:.4;overflow:hidden}.aplayer-lrc p.aplayer-lrc-current{opacity:1;overflow:visible;height:auto}.aplayer-lrc .aplayer-lrc-contents{width:100%;-webkit-transition:all .5s ease-out;transition:all .5s ease-out;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;cursor:default}',\"\"])},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{staticClass:\"aplayer-lrc\"},[i(\"div\",{staticClass:\"aplayer-lrc-contents\",style:t.transformStyle},t._l(t.lrcLines,function(e,a){return i(\"p\",{key:a,class:{\"aplayer-lrc-current\":a===t.currentLineIndex}},[t._v(\"\\n      \"+t._s(e[1])+\"\\n    \")])}))])},r=[]},function(t,i){if(void 0===e){var a=new Error('Cannot find module \"undefined\"');throw a.code=\"MODULE_NOT_FOUND\",a}t.exports=e},function(t,e,i){\"use strict\";i.d(e,\"a\",function(){return a}),i.d(e,\"b\",function(){return r});var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{staticClass:\"aplayer\",class:{\"aplayer-narrow\":t.isMiniMode,\"aplayer-withlist\":!t.isMiniMode&&t.musicList.length>0,\"aplayer-withlrc\":!t.isMiniMode&&(!!t.$slots.display||t.shouldShowLrc),\"aplayer-float\":t.isFloatMode,\"aplayer-loading\":t.isPlaying&&t.isLoading},style:t.floatStyleObj},[i(\"div\",{staticClass:\"aplayer-body\"},[i(\"thumbnail\",{attrs:{pic:t.currentMusic.pic,playing:t.isPlaying,\"enable-drag\":t.isFloatMode,theme:t.currentTheme},on:{toggleplay:t.toggle,dragbegin:t.onDragBegin,dragging:t.onDragAround}}),t._v(\" \"),i(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:!t.isMiniMode,expression:\"!isMiniMode\"}],staticClass:\"aplayer-info\"},[i(\"div\",{staticClass:\"aplayer-music\"},[i(\"span\",{staticClass:\"aplayer-title\"},[t._v(t._s(t.currentMusic.title||\"Untitled\"))]),t._v(\" \"),i(\"span\",{staticClass:\"aplayer-author\"},[t._v(t._s(t.currentMusic.artist||t.currentMusic.author||\"Unknown\"))])]),t._v(\" \"),t._t(\"display\",[t.shouldShowLrc?i(\"lyrics\",{attrs:{\"current-music\":t.currentMusic,\"play-stat\":t.playStat}}):t._e()],{currentMusic:t.currentMusic,playStat:t.playStat}),t._v(\" \"),i(\"controls\",{attrs:{shuffle:t.shouldShuffle,repeat:t.repeatMode,stat:t.playStat,volume:t.audioVolume,muted:t.isAudioMuted,theme:t.currentTheme},on:{toggleshuffle:function(e){t.shouldShuffle=!t.shouldShuffle},togglelist:function(e){t.showList=!t.showList},togglemute:t.toggleMute,setvolume:t.setAudioVolume,dragbegin:t.onProgressDragBegin,dragend:t.onProgressDragEnd,dragging:t.onProgressDragging,nextmode:t.setNextMode}})],2)],1),t._v(\" \"),i(\"audio\",{ref:\"audio\"}),t._v(\" \"),i(\"music-list\",{attrs:{show:t.showList&&!t.isMiniMode,\"current-music\":t.currentMusic,\"music-list\":t.musicList,\"play-index\":t.playIndex,listmaxheight:t.listmaxheight||t.listMaxHeight,theme:t.currentTheme},on:{selectsong:t.onSelectSong}})],1)},r=[]}]).default});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-aplayer@1.6.1@vue-aplayer/dist/vue-aplayer.min.js\n// module id = dBt9\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./timeline/preprocessor\");\n\nrequire(\"./timeline/typeDefaulter\");\n\nrequire(\"./timeline/timelineAction\");\n\nrequire(\"./timeline/SliderTimelineModel\");\n\nrequire(\"./timeline/SliderTimelineView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * DataZoom component entry\n */\necharts.registerPreprocessor(preprocessor);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline.js\n// module id = dGkK\n// module chunks = 0","var echarts = require(\"echarts\");\n\nvar BMapCoordSys = require(\"./BMapCoordSys\");\n\nrequire(\"./BMapModel\");\n\nrequire(\"./BMapView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * BMap component extension\n */\necharts.registerCoordinateSystem('bmap', BMapCoordSys); // Action\n\necharts.registerAction({\n  type: 'bmapRoam',\n  event: 'bmapRoam',\n  update: 'updateLayout'\n}, function (payload, ecModel) {\n  ecModel.eachComponent('bmap', function (bMapModel) {\n    var bmap = bMapModel.getBMap();\n    var center = bmap.getCenter();\n    bMapModel.setCenterAndZoom([center.lng, center.lat], bmap.getZoom());\n  });\n});\nvar version = '1.0.0';\nexports.version = version;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/extension/bmap/bmap.js\n// module id = dK5h\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.line',\n  dependencies: ['grid', 'polar'],\n  getInitialData: function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    hoverAnimation: true,\n    // stack: null\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // polarIndex: 0,\n    // If clip the overflow value\n    clipOverflow: true,\n    // cursor: null,\n    label: {\n      position: 'top'\n    },\n    // itemStyle: {\n    // },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    // areaStyle: {\n    // origin of areaStyle. Valid values:\n    // `'auto'/null/undefined`: from axisLine to data\n    // `'start'`: from min to data\n    // `'end'`: from data to max\n    // origin: 'auto'\n    // },\n    // false, 'start', 'end', 'middle'\n    step: false,\n    // Disabled if step is true\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    // `false`: follow the label interval strategy.\n    // `true`: show all symbols.\n    // `'auto'`: If possible, show all symbols, otherwise\n    //           follow the label interval strategy.\n    showAllSymbol: 'auto',\n    // Whether to connect break point.\n    connectNulls: false,\n    // Sampling for large data. Can be: 'average', 'max', 'min', 'sum'.\n    sampling: 'none',\n    animationEasing: 'linear',\n    // Disable progressive\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/line/LineSeries.js\n// module id = dP6I\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar axisHelper = require(\"../../coord/axisHelper\");\n\nvar AxisBuilder = require(\"../axis/AxisBuilder\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/model/Model} axisPointerModel\n */\nfunction buildElStyle(axisPointerModel) {\n  var axisPointerType = axisPointerModel.get('type');\n  var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n  var style;\n\n  if (axisPointerType === 'line') {\n    style = styleModel.getLineStyle();\n    style.fill = null;\n  } else if (axisPointerType === 'shadow') {\n    style = styleModel.getAreaStyle();\n    style.stroke = null;\n  }\n\n  return style;\n}\n/**\n * @param {Function} labelPos {align, verticalAlign, position}\n */\n\n\nfunction buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n  var value = axisPointerModel.get('value');\n  var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n    precision: axisPointerModel.get('label.precision'),\n    formatter: axisPointerModel.get('label.formatter')\n  });\n  var labelModel = axisPointerModel.getModel('label');\n  var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n  var font = labelModel.getFont();\n  var textRect = textContain.getBoundingRect(text, font);\n  var position = labelPos.position;\n  var width = textRect.width + paddings[1] + paddings[3];\n  var height = textRect.height + paddings[0] + paddings[2]; // Adjust by align.\n\n  var align = labelPos.align;\n  align === 'right' && (position[0] -= width);\n  align === 'center' && (position[0] -= width / 2);\n  var verticalAlign = labelPos.verticalAlign;\n  verticalAlign === 'bottom' && (position[1] -= height);\n  verticalAlign === 'middle' && (position[1] -= height / 2); // Not overflow ec container\n\n  confineInContainer(position, width, height, api);\n  var bgColor = labelModel.get('backgroundColor');\n\n  if (!bgColor || bgColor === 'auto') {\n    bgColor = axisModel.get('axisLine.lineStyle.color');\n  }\n\n  elOption.label = {\n    shape: {\n      x: 0,\n      y: 0,\n      width: width,\n      height: height,\n      r: labelModel.get('borderRadius')\n    },\n    position: position.slice(),\n    // TODO: rich\n    style: {\n      text: text,\n      textFont: font,\n      textFill: labelModel.getTextColor(),\n      textPosition: 'inside',\n      fill: bgColor,\n      stroke: labelModel.get('borderColor') || 'transparent',\n      lineWidth: labelModel.get('borderWidth') || 0,\n      shadowBlur: labelModel.get('shadowBlur'),\n      shadowColor: labelModel.get('shadowColor'),\n      shadowOffsetX: labelModel.get('shadowOffsetX'),\n      shadowOffsetY: labelModel.get('shadowOffsetY')\n    },\n    // Lable should be over axisPointer.\n    z2: 10\n  };\n} // Do not overflow ec container\n\n\nfunction confineInContainer(position, width, height, api) {\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  position[0] = Math.min(position[0] + width, viewWidth) - width;\n  position[1] = Math.min(position[1] + height, viewHeight) - height;\n  position[0] = Math.max(position[0], 0);\n  position[1] = Math.max(position[1], 0);\n}\n/**\n * @param {number} value\n * @param {module:echarts/coord/Axis} axis\n * @param {module:echarts/model/Global} ecModel\n * @param {Object} opt\n * @param {Array.<Object>} seriesDataIndices\n * @param {number|string} opt.precision 'auto' or a number\n * @param {string|Function} opt.formatter label formatter\n */\n\n\nfunction getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n  value = axis.scale.parse(value);\n  var text = axis.scale.getLabel( // If `precision` is set, width can be fixed (like '12.00500'), which\n  // helps to debounce when when moving label.\n  value, {\n    precision: opt.precision\n  });\n  var formatter = opt.formatter;\n\n  if (formatter) {\n    var params = {\n      value: axisHelper.getAxisRawValue(axis, value),\n      seriesData: []\n    };\n    zrUtil.each(seriesDataIndices, function (idxItem) {\n      var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n      var dataIndex = idxItem.dataIndexInside;\n      var dataParams = series && series.getDataParams(dataIndex);\n      dataParams && params.seriesData.push(dataParams);\n    });\n\n    if (zrUtil.isString(formatter)) {\n      text = formatter.replace('{value}', text);\n    } else if (zrUtil.isFunction(formatter)) {\n      text = formatter(params);\n    }\n  }\n\n  return text;\n}\n/**\n * @param {module:echarts/coord/Axis} axis\n * @param {number} value\n * @param {Object} layoutInfo {\n *  rotation, position, labelOffset, labelDirection, labelMargin\n * }\n */\n\n\nfunction getTransformedPosition(axis, value, layoutInfo) {\n  var transform = matrix.create();\n  matrix.rotate(transform, transform, layoutInfo.rotation);\n  matrix.translate(transform, transform, layoutInfo.position);\n  return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\n\nfunction buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n  var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n  layoutInfo.labelMargin = axisPointerModel.get('label.margin');\n  buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n    position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n    align: textLayout.textAlign,\n    verticalAlign: textLayout.textVerticalAlign\n  });\n}\n/**\n * @param {Array.<number>} p1\n * @param {Array.<number>} p2\n * @param {number} [xDimIndex=0] or 1\n */\n\n\nfunction makeLineShape(p1, p2, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x1: p1[xDimIndex],\n    y1: p1[1 - xDimIndex],\n    x2: p2[xDimIndex],\n    y2: p2[1 - xDimIndex]\n  };\n}\n/**\n * @param {Array.<number>} xy\n * @param {Array.<number>} wh\n * @param {number} [xDimIndex=0] or 1\n */\n\n\nfunction makeRectShape(xy, wh, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x: xy[xDimIndex],\n    y: xy[1 - xDimIndex],\n    width: wh[xDimIndex],\n    height: wh[1 - xDimIndex]\n  };\n}\n\nfunction makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r,\n    startAngle: startAngle,\n    endAngle: endAngle,\n    clockwise: true\n  };\n}\n\nexports.buildElStyle = buildElStyle;\nexports.buildLabelElOption = buildLabelElOption;\nexports.getValueLabel = getValueLabel;\nexports.getTransformedPosition = getTransformedPosition;\nexports.buildCartesianSingleLabelElOption = buildCartesianSingleLabelElOption;\nexports.makeLineShape = makeLineShape;\nexports.makeRectShape = makeRectShape;\nexports.makeSectorShape = makeSectorShape;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/viewHelper.js\n// module id = dRQw\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/parseHeaders.js\n// module id = dd6o\n// module chunks = 0","var echarts = require(\"../../../echarts\");\n\nvar history = require(\"../../dataZoom/history\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar restoreLang = lang.toolbox.restore;\n\nfunction Restore(model) {\n  this.model = model;\n}\n\nRestore.defaultOption = {\n  show: true,\n  icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n  title: restoreLang.title\n};\nvar proto = Restore.prototype;\n\nproto.onclick = function (ecModel, api, type) {\n  history.clear(ecModel);\n  api.dispatchAction({\n    type: 'restore',\n    from: this.uid\n  });\n};\n\nfeatureManager.register('restore', Restore);\necharts.registerAction({\n  type: 'restore',\n  event: 'restore',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.resetOption('recreate');\n});\nvar _default = Restore;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/Restore.js\n// module id = dewo\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../util/model\");\n\nvar ComponentModel = require(\"./Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * ECharts option manager\n *\n * @module {echarts/model/OptionManager}\n */\nvar each = zrUtil.each;\nvar clone = zrUtil.clone;\nvar map = zrUtil.map;\nvar merge = zrUtil.merge;\nvar QUERY_REG = /^(min|max)?(.+)$/;\n/**\n * TERM EXPLANATIONS:\n *\n * [option]:\n *\n *     An object that contains definitions of components. For example:\n *     var option = {\n *         title: {...},\n *         legend: {...},\n *         visualMap: {...},\n *         series: [\n *             {data: [...]},\n *             {data: [...]},\n *             ...\n *         ]\n *     };\n *\n * [rawOption]:\n *\n *     An object input to echarts.setOption. 'rawOption' may be an\n *     'option', or may be an object contains multi-options. For example:\n *     var option = {\n *         baseOption: {\n *             title: {...},\n *             legend: {...},\n *             series: [\n *                 {data: [...]},\n *                 {data: [...]},\n *                 ...\n *             ]\n *         },\n *         timeline: {...},\n *         options: [\n *             {title: {...}, series: {data: [...]}},\n *             {title: {...}, series: {data: [...]}},\n *             ...\n *         ],\n *         media: [\n *             {\n *                 query: {maxWidth: 320},\n *                 option: {series: {x: 20}, visualMap: {show: false}}\n *             },\n *             {\n *                 query: {minWidth: 320, maxWidth: 720},\n *                 option: {series: {x: 500}, visualMap: {show: true}}\n *             },\n *             {\n *                 option: {series: {x: 1200}, visualMap: {show: true}}\n *             }\n *         ]\n *     };\n *\n * @alias module:echarts/model/OptionManager\n * @param {module:echarts/ExtensionAPI} api\n */\n\nfunction OptionManager(api) {\n  /**\n   * @private\n   * @type {module:echarts/ExtensionAPI}\n   */\n  this._api = api;\n  /**\n   * @private\n   * @type {Array.<number>}\n   */\n\n  this._timelineOptions = [];\n  /**\n   * @private\n   * @type {Array.<Object>}\n   */\n\n  this._mediaList = [];\n  /**\n   * @private\n   * @type {Object}\n   */\n\n  this._mediaDefault;\n  /**\n   * -1, means default.\n   * empty means no media.\n   * @private\n   * @type {Array.<number>}\n   */\n\n  this._currentMediaIndices = [];\n  /**\n   * @private\n   * @type {Object}\n   */\n\n  this._optionBackup;\n  /**\n   * @private\n   * @type {Object}\n   */\n\n  this._newBaseOption;\n} // timeline.notMerge is not supported in ec3. Firstly there is rearly\n// case that notMerge is needed. Secondly supporting 'notMerge' requires\n// rawOption cloned and backuped when timeline changed, which does no\n// good to performance. What's more, that both timeline and setOption\n// method supply 'notMerge' brings complex and some problems.\n// Consider this case:\n// (step1) chart.setOption({timeline: {notMerge: false}, ...}, false);\n// (step2) chart.setOption({timeline: {notMerge: true}, ...}, false);\n\n\nOptionManager.prototype = {\n  constructor: OptionManager,\n\n  /**\n   * @public\n   * @param {Object} rawOption Raw option.\n   * @param {module:echarts/model/Global} ecModel\n   * @param {Array.<Function>} optionPreprocessorFuncs\n   * @return {Object} Init option\n   */\n  setOption: function (rawOption, optionPreprocessorFuncs) {\n    if (rawOption) {\n      // That set dat primitive is dangerous if user reuse the data when setOption again.\n      zrUtil.each(modelUtil.normalizeToArray(rawOption.series), function (series) {\n        series && series.data && zrUtil.isTypedArray(series.data) && zrUtil.setAsPrimitive(series.data);\n      });\n    } // Caution: some series modify option data, if do not clone,\n    // it should ensure that the repeat modify correctly\n    // (create a new object when modify itself).\n\n\n    rawOption = clone(rawOption, true); // FIXME\n    // 濡傛灉 timeline options 鎴栬�� media 涓缃簡鏌愪釜灞炴�э紝鑰宐aseOption涓病鏈夎缃紝鍒欒繘琛岃鍛娿�俓n\n    var oldOptionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption.call(this, rawOption, optionPreprocessorFuncs, !oldOptionBackup);\n    this._newBaseOption = newParsedOption.baseOption; // For setOption at second time (using merge mode);\n\n    if (oldOptionBackup) {\n      // Only baseOption can be merged.\n      mergeOption(oldOptionBackup.baseOption, newParsedOption.baseOption); // For simplicity, timeline options and media options do not support merge,\n      // that is, if you `setOption` twice and both has timeline options, the latter\n      // timeline opitons will not be merged to the formers, but just substitude them.\n\n      if (newParsedOption.timelineOptions.length) {\n        oldOptionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        oldOptionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        oldOptionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  },\n\n  /**\n   * @param {boolean} isRecreate\n   * @return {Object}\n   */\n  mountOption: function (isRecreate) {\n    var optionBackup = this._optionBackup; // TODO\n    // 濡傛灉娌℃湁reset鍔熻兘鍒欎笉clone銆俓n\n    this._timelineOptions = map(optionBackup.timelineOptions, clone);\n    this._mediaList = map(optionBackup.mediaList, clone);\n    this._mediaDefault = clone(optionBackup.mediaDefault);\n    this._currentMediaIndices = [];\n    return clone(isRecreate // this._optionBackup.baseOption, which is created at the first `setOption`\n    // called, and is merged into every new option by inner method `mergeOption`\n    // each time `setOption` called, can be only used in `isRecreate`, because\n    // its reliability is under suspicion. In other cases option merge is\n    // performed by `model.mergeOption`.\n    ? optionBackup.baseOption : this._newBaseOption);\n  },\n\n  /**\n   * @param {module:echarts/model/Global} ecModel\n   * @return {Object}\n   */\n  getTimelineOption: function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      // getTimelineOption can only be called after ecModel inited,\n      // so we can get currentIndex from timelineModel.\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()], true);\n      }\n    }\n\n    return option;\n  },\n\n  /**\n   * @param {module:echarts/model/Global} ecModel\n   * @return {Array.<Object>}\n   */\n  getMediaOption: function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = []; // No media defined.\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    } // Multi media may be applied, the latter defined media has higher priority.\n\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    } // FIXME\n    // 鏄惁mediaDefault搴旇寮哄埗鐢ㄦ埛璁剧疆锛屽惁鍒欏彲鑳戒慨鏀逛笉鑳藉洖褰掋�俓n\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    } // Otherwise return nothing.\n\n\n    this._currentMediaIndices = indices;\n    return result;\n  }\n};\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var timelineOptions = [];\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption; // Compatible with ec2.\n\n  var timelineOpt = rawOption.timeline;\n\n  if (rawOption.baseOption) {\n    baseOption = rawOption.baseOption;\n  } // For timeline\n\n\n  if (timelineOpt || rawOption.options) {\n    baseOption = baseOption || {};\n    timelineOptions = (rawOption.options || []).slice();\n  } // For media query\n\n\n  if (rawOption.media) {\n    baseOption = baseOption || {};\n    var media = rawOption.media;\n    each(media, function (singleMedia) {\n      if (singleMedia && singleMedia.option) {\n        if (singleMedia.query) {\n          mediaList.push(singleMedia);\n        } else if (!mediaDefault) {\n          // Use the first media default.\n          mediaDefault = singleMedia;\n        }\n      }\n    });\n  } // For normal option\n\n\n  if (!baseOption) {\n    baseOption = rawOption;\n  } // Set timelineOpt to baseOption in ec3,\n  // which is convenient for merge option.\n\n\n  if (!baseOption.timeline) {\n    baseOption.timeline = timelineOpt;\n  } // Preprocess.\n\n\n  each([baseOption].concat(timelineOptions).concat(zrUtil.map(mediaList, function (media) {\n    return media.option;\n  })), function (option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  });\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptions,\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n/**\n * @see <http://www.w3.org/TR/css3-mediaqueries/#media1>\n * Support: width, height, aspectRatio\n * Can use max or min as prefix.\n */\n\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight // lowser case for convenientce.\n\n  };\n  var applicatable = true;\n  zrUtil.each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    // Equals\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  // indices is always order by asc and has only finite number.\n  return indices1.join(',') === indices2.join(',');\n}\n/**\n * Consider case:\n * `chart.setOption(opt1);`\n * Then user do some interaction like dataZoom, dataView changing.\n * `chart.setOption(opt2);`\n * Then user press 'reset button' in toolbox.\n *\n * After doing that all of the interaction effects should be reset, the\n * chart should be the same as the result of invoke\n * `chart.setOption(opt1); chart.setOption(opt2);`.\n *\n * Although it is not able ensure that\n * `chart.setOption(opt1); chart.setOption(opt2);` is equivalents to\n * `chart.setOption(merge(opt1, opt2));` exactly,\n * this might be the only simple way to implement that feature.\n *\n * MEMO: We've considered some other approaches:\n * 1. Each model handle its self restoration but not uniform treatment.\n *     (Too complex in logic and error-prone)\n * 2. Use a shadow ecModel. (Performace expensive)\n */\n\n\nfunction mergeOption(oldOption, newOption) {\n  newOption = newOption || {};\n  each(newOption, function (newCptOpt, mainType) {\n    if (newCptOpt == null) {\n      return;\n    }\n\n    var oldCptOpt = oldOption[mainType];\n\n    if (!ComponentModel.hasClass(mainType)) {\n      oldOption[mainType] = merge(oldCptOpt, newCptOpt, true);\n    } else {\n      newCptOpt = modelUtil.normalizeToArray(newCptOpt);\n      oldCptOpt = modelUtil.normalizeToArray(oldCptOpt);\n      var mapResult = modelUtil.mappingToExists(oldCptOpt, newCptOpt);\n      oldOption[mainType] = map(mapResult, function (item) {\n        return item.option && item.exist ? merge(item.exist, item.option, true) : item.exist || item.option;\n      });\n    }\n  });\n}\n\nvar _default = OptionManager;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/OptionManager.js\n// module id = dewq\n// module chunks = 0","/**\n * zrender: 鐢熸垚鍞竴id\n *\n * @author errorrik (errorrik@gmail.com)\n */\nvar idStart = 0x0907;\n\nfunction _default() {\n  return idStart++;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/guid.js\n// module id = diMn\n// module chunks = 0","var _default = typeof window !== 'undefined' && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || // https://github.com/ecomfe/zrender/issues/189#issuecomment-224919809\nwindow.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function (func) {\n  setTimeout(func, 16);\n};\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/animation/requestAnimationFrame.js\n// module id = dntg\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\n\nvar _simpleLayoutHelper = require(\"./simpleLayoutHelper\");\n\nvar simpleLayout = _simpleLayoutHelper.simpleLayout;\nvar simpleLayoutEdge = _simpleLayoutHelper.simpleLayoutEdge;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, api) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var layout = seriesModel.get('layout');\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      var data = seriesModel.getData();\n      var dimensions = [];\n      each(coordSys.dimensions, function (coordDim) {\n        dimensions = dimensions.concat(data.mapDimension(coordDim, true));\n      });\n\n      for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n        var value = [];\n        var hasValue = false;\n\n        for (var i = 0; i < dimensions.length; i++) {\n          var val = data.get(dimensions[i], dataIndex);\n\n          if (!isNaN(val)) {\n            hasValue = true;\n          }\n\n          value.push(val);\n        }\n\n        if (hasValue) {\n          data.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n        } else {\n          // Also {Array.<number>}, not undefined to avoid if...else... statement\n          data.setItemLayout(dataIndex, [NaN, NaN]);\n        }\n      }\n\n      simpleLayoutEdge(data.graph);\n    } else if (!layout || layout === 'none') {\n      simpleLayout(seriesModel);\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/simpleLayout.js\n// module id = duoa\n// module chunks = 0","var _graphic = require(\"../../util/graphic\");\n\nvar subPixelOptimize = _graphic.subPixelOptimize;\n\nvar createRenderPlanner = require(\"../helper/createRenderPlanner\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar retrieve2 = _util.retrieve2;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar _default = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var data = seriesModel.getData();\n    var candleWidth = calculateCandleWidth(seriesModel, data);\n    var cDimIdx = 0;\n    var vDimIdx = 1;\n    var coordDims = ['x', 'y'];\n    var cDim = data.mapDimension(coordDims[cDimIdx]);\n    var vDims = data.mapDimension(coordDims[vDimIdx], true);\n    var openDim = vDims[0];\n    var closeDim = vDims[1];\n    var lowestDim = vDims[2];\n    var highestDim = vDims[3];\n    data.setLayout({\n      candleWidth: candleWidth,\n      // The value is experimented visually.\n      isSimpleBox: candleWidth <= 1.3\n    });\n\n    if (cDim == null || vDims.length < 4) {\n      return;\n    }\n\n    return {\n      progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n    };\n\n    function normalProgress(params, data) {\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n        var ocLow = Math.min(openVal, closeVal);\n        var ocHigh = Math.max(openVal, closeVal);\n        var ocLowPoint = getPoint(ocLow, axisDimVal);\n        var ocHighPoint = getPoint(ocHigh, axisDimVal);\n        var lowestPoint = getPoint(lowestVal, axisDimVal);\n        var highestPoint = getPoint(highestVal, axisDimVal);\n        var ends = [];\n        addBodyEnd(ends, ocHighPoint, 0);\n        addBodyEnd(ends, ocLowPoint, 1);\n        ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n        data.setItemLayout(dataIndex, {\n          sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n          initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n          // open point.\n          ends: ends,\n          brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n        });\n      }\n\n      function getPoint(val, axisDimVal) {\n        var p = [];\n        p[cDimIdx] = axisDimVal;\n        p[vDimIdx] = val;\n        return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n      }\n\n      function addBodyEnd(ends, point, start) {\n        var point1 = point.slice();\n        var point2 = point.slice();\n        point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n        point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n        start ? ends.push(point1, point2) : ends.push(point2, point1);\n      }\n\n      function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n        var pmin = getPoint(lowestVal, axisDimVal);\n        var pmax = getPoint(highestVal, axisDimVal);\n        pmin[cDimIdx] -= candleWidth / 2;\n        pmax[cDimIdx] -= candleWidth / 2;\n        return {\n          x: pmin[0],\n          y: pmin[1],\n          width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n          height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n        };\n      }\n\n      function subPixelOptimizePoint(point) {\n        point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n        return point;\n      }\n    }\n\n    function largeProgress(params, data) {\n      // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...]\n      var points = new LargeArr(params.count * 5);\n      var offset = 0;\n      var point;\n      var tmpIn = [];\n      var tmpOut = [];\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n\n        if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n          points[offset++] = NaN;\n          offset += 4;\n          continue;\n        }\n\n        points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n        tmpIn[cDimIdx] = axisDimVal;\n        tmpIn[vDimIdx] = lowestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[0] : NaN;\n        points[offset++] = point ? point[1] : NaN;\n        tmpIn[vDimIdx] = highestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[1] : NaN;\n      }\n\n      data.setLayout('largePoints', points);\n    }\n  }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n  var sign;\n\n  if (openVal > closeVal) {\n    sign = -1;\n  } else if (openVal < closeVal) {\n    sign = 1;\n  } else {\n    sign = dataIndex > 0 // If close === open, compare with close of last record\n    ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive\n    1;\n  }\n\n  return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n  var baseAxis = seriesModel.getBaseAxis();\n  var extent;\n  var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n  var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n  var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n  var barWidth = seriesModel.get('barWidth');\n  return barWidth != null ? parsePercent(barWidth, bandWidth) // Put max outer to ensure bar visible in spite of overlap.\n  : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/candlestickLayout.js\n// module id = dvI7\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar helper = require(\"../helper/treeHelper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Treemap action\n */\nvar noop = function () {};\n\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\n\nfor (var i = 0; i < actionTypes.length; i++) {\n  echarts.registerAction({\n    type: actionTypes[i],\n    update: 'updateView'\n  }, noop);\n}\n\necharts.registerAction({\n  type: 'treemapRootToNode',\n  update: 'updateView'\n}, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'series',\n    subType: 'treemap',\n    query: payload\n  }, handleRootToNode);\n\n  function handleRootToNode(model, index) {\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n    if (targetInfo) {\n      var originViewRoot = model.getViewRoot();\n\n      if (originViewRoot) {\n        payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n      }\n\n      model.resetViewRoot(targetInfo.node);\n    }\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/treemapAction.js\n// module id = e1MS\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar IncrementalDisplayable = require(\"zrender/lib/graphic/IncrementalDisplayable\");\n\nvar lineContain = require(\"zrender/lib/contain/line\");\n\nvar quadraticContain = require(\"zrender/lib/contain/quadratic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Batch by color\nvar LargeLineShape = graphic.extendShape({\n  shape: {\n    polyline: false,\n    curveness: 0,\n    segs: []\n  },\n  buildPath: function (path, shape) {\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n\n    if (shape.polyline) {\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          path.moveTo(segs[i++], segs[i++]);\n\n          for (var k = 1; k < count; k++) {\n            path.lineTo(segs[i++], segs[i++]);\n          }\n        }\n      }\n    } else {\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n        path.moveTo(x0, y0);\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n          path.quadraticCurveTo(x2, y2, x1, y1);\n        } else {\n          path.lineTo(x1, y1);\n        }\n      }\n    }\n  },\n  findDataIndex: function (x, y) {\n    var shape = this.shape;\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n\n    if (shape.polyline) {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          var x0 = segs[i++];\n          var y0 = segs[i++];\n\n          for (var k = 1; k < count; k++) {\n            var x1 = segs[i++];\n            var y1 = segs[i++];\n\n            if (lineContain.containStroke(x0, y0, x1, y1)) {\n              return dataIndex;\n            }\n          }\n        }\n\n        dataIndex++;\n      }\n    } else {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n          if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1)) {\n            return dataIndex;\n          }\n        } else {\n          if (lineContain.containStroke(x0, y0, x1, y1)) {\n            return dataIndex;\n          }\n        }\n\n        dataIndex++;\n      }\n    }\n\n    return -1;\n  }\n});\n\nfunction LargeLineDraw() {\n  this.group = new graphic.Group();\n}\n\nvar largeLineProto = LargeLineDraw.prototype;\n\nlargeLineProto.isPersistent = function () {\n  return !this._incremental;\n};\n/**\n * Update symbols draw by new data\n * @param {module:echarts/data/List} data\n */\n\n\nlargeLineProto.updateData = function (data) {\n  this.group.removeAll();\n  var lineEl = new LargeLineShape({\n    rectHover: true,\n    cursor: 'default'\n  });\n  lineEl.setShape({\n    segs: data.getLayout('linesPoints')\n  });\n\n  this._setCommon(lineEl, data); // Add back\n\n\n  this.group.add(lineEl);\n  this._incremental = null;\n};\n/**\n * @override\n */\n\n\nlargeLineProto.incrementalPrepareUpdate = function (data) {\n  this.group.removeAll();\n\n  this._clearIncremental();\n\n  if (data.count() > 5e5) {\n    if (!this._incremental) {\n      this._incremental = new IncrementalDisplayable({\n        silent: true\n      });\n    }\n\n    this.group.add(this._incremental);\n  } else {\n    this._incremental = null;\n  }\n};\n/**\n * @override\n */\n\n\nlargeLineProto.incrementalUpdate = function (taskParams, data) {\n  var lineEl = new LargeLineShape();\n  lineEl.setShape({\n    segs: data.getLayout('linesPoints')\n  });\n\n  this._setCommon(lineEl, data, !!this._incremental);\n\n  if (!this._incremental) {\n    lineEl.rectHover = true;\n    lineEl.cursor = 'default';\n    lineEl.__startIndex = taskParams.start;\n    this.group.add(lineEl);\n  } else {\n    this._incremental.addDisplayable(lineEl, true);\n  }\n};\n/**\n * @override\n */\n\n\nlargeLineProto.remove = function () {\n  this._clearIncremental();\n\n  this._incremental = null;\n  this.group.removeAll();\n};\n\nlargeLineProto._setCommon = function (lineEl, data, isIncremental) {\n  var hostModel = data.hostModel;\n  lineEl.setShape({\n    polyline: hostModel.get('polyline'),\n    curveness: hostModel.get('lineStyle.curveness')\n  });\n  lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n  lineEl.style.strokeNoScale = true;\n  var visualColor = data.getVisual('color');\n\n  if (visualColor) {\n    lineEl.setStyle('stroke', visualColor);\n  }\n\n  lineEl.setStyle('fill');\n\n  if (!isIncremental) {\n    // Enable tooltip\n    // PENDING May have performance issue when path is extremely large\n    lineEl.seriesIndex = hostModel.seriesIndex;\n    lineEl.on('mousemove', function (e) {\n      lineEl.dataIndex = null;\n      var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\n\n      if (dataIndex > 0) {\n        // Provide dataIndex for tooltip\n        lineEl.dataIndex = dataIndex + lineEl.__startIndex;\n      }\n    });\n  }\n};\n\nlargeLineProto._clearIncremental = function () {\n  var incremental = this._incremental;\n\n  if (incremental) {\n    incremental.clearDisplaybles();\n  }\n};\n\nvar _default = LargeLineDraw;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/LargeLineDraw.js\n// module id = e7W4\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar featureManager = require(\"../featureManager\");\n\nvar lang = require(\"../../../lang\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar brushLang = lang.toolbox.brush;\n\nfunction Brush(model, ecModel, api) {\n  this.model = model;\n  this.ecModel = ecModel;\n  this.api = api;\n  /**\n   * @private\n   * @type {string}\n   */\n\n  this._brushType;\n  /**\n   * @private\n   * @type {string}\n   */\n\n  this._brushMode;\n}\n\nBrush.defaultOption = {\n  show: true,\n  type: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],\n  icon: {\n    rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\n    // jshint ignore:line\n    polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\n    // jshint ignore:line\n    lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\n    // jshint ignore:line\n    lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\n    // jshint ignore:line\n    keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\n    // jshint ignore:line\n    clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line\n\n  },\n  // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear`\n  title: zrUtil.clone(brushLang.title)\n};\nvar proto = Brush.prototype; // proto.updateLayout = function (featureModel, ecModel, api) {\n\nproto.render = proto.updateView = function (featureModel, ecModel, api) {\n  var brushType;\n  var brushMode;\n  var isBrushed;\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    brushType = brushModel.brushType;\n    brushMode = brushModel.brushOption.brushMode || 'single';\n    isBrushed |= brushModel.areas.length;\n  });\n  this._brushType = brushType;\n  this._brushMode = brushMode;\n  zrUtil.each(featureModel.get('type', true), function (type) {\n    featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n  });\n};\n\nproto.getIcons = function () {\n  var model = this.model;\n  var availableIcons = model.get('icon', true);\n  var icons = {};\n  zrUtil.each(model.get('type', true), function (type) {\n    if (availableIcons[type]) {\n      icons[type] = availableIcons[type];\n    }\n  });\n  return icons;\n};\n\nproto.onclick = function (ecModel, api, type) {\n  var brushType = this._brushType;\n  var brushMode = this._brushMode;\n\n  if (type === 'clear') {\n    // Trigger parallel action firstly\n    api.dispatchAction({\n      type: 'axisAreaSelect',\n      intervals: []\n    });\n    api.dispatchAction({\n      type: 'brush',\n      command: 'clear',\n      // Clear all areas of all brush components.\n      areas: []\n    });\n  } else {\n    api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'brush',\n      brushOption: {\n        brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n        brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n      }\n    });\n  }\n};\n\nfeatureManager.register('brush', Brush);\nvar _default = Brush;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/Brush.js\n// module id = e9XV\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendComponentView({\n  type: 'marker',\n  init: function () {\n    /**\n     * Markline grouped by series\n     * @private\n     * @type {module:zrender/core/util.HashMap}\n     */\n    this.markerGroupMap = zrUtil.createHashMap();\n  },\n  render: function (markerModel, ecModel, api) {\n    var markerGroupMap = this.markerGroupMap;\n    markerGroupMap.each(function (item) {\n      item.__keep = false;\n    });\n    var markerModelKey = this.type + 'Model';\n    ecModel.eachSeries(function (seriesModel) {\n      var markerModel = seriesModel[markerModelKey];\n      markerModel && this.renderSeries(seriesModel, markerModel, ecModel, api);\n    }, this);\n    markerGroupMap.each(function (item) {\n      !item.__keep && this.group.remove(item.group);\n    }, this);\n  },\n  renderSeries: function () {}\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkerView.js\n// module id = eGS6\n// module chunks = 0","var env = require(\"../core/env\");\n\nvar urn = 'urn:schemas-microsoft-com:vml';\nvar win = typeof window === 'undefined' ? null : window;\nvar vmlInited = false;\nvar doc = win && win.document;\n\nfunction createNode(tagName) {\n  return doCreateNode(tagName);\n} // Avoid assign to an exported variable, for transforming to cjs.\n\n\nvar doCreateNode;\n\nif (doc && !env.canvasSupported) {\n  try {\n    !doc.namespaces.zrvml && doc.namespaces.add('zrvml', urn);\n\n    doCreateNode = function (tagName) {\n      return doc.createElement('<zrvml:' + tagName + ' class=\"zrvml\">');\n    };\n  } catch (e) {\n    doCreateNode = function (tagName) {\n      return doc.createElement('<' + tagName + ' xmlns=\"' + urn + '\" class=\"zrvml\">');\n    };\n  }\n} // From raphael\n\n\nfunction initVML() {\n  if (vmlInited || !doc) {\n    return;\n  }\n\n  vmlInited = true;\n  var styleSheets = doc.styleSheets;\n\n  if (styleSheets.length < 31) {\n    doc.createStyleSheet().addRule('.zrvml', 'behavior:url(#default#VML)');\n  } else {\n    // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\n    styleSheets[0].addRule('.zrvml', 'behavior:url(#default#VML)');\n  }\n}\n\nexports.doc = doc;\nexports.createNode = createNode;\nexports.initVML = initVML;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/vml/core.js\n// module id = eHVV\n// module chunks = 0","var _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction _default(seriesType, ecModel, api, payload) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width);\n    var cy = parsePercent(center[1], height);\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var virtualRoot = seriesModel.getData().tree.root;\n    var treeRoot = seriesModel.getViewRoot();\n    var rootDepth = treeRoot.depth;\n    var sort = seriesModel.get('sort');\n\n    if (sort != null) {\n      initChildren(treeRoot, sort);\n    }\n\n    var validDataCount = 0;\n    zrUtil.each(treeRoot.children, function (child) {\n      !isNaN(child.getValue()) && validDataCount++;\n    });\n    var sum = treeRoot.getValue(); // Sum may be 0\n\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var renderRollupNode = treeRoot.depth > 0;\n    var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n    var rPerLevel = (r - r0) / (levels || 1);\n    var clockwise = seriesModel.get('clockwise');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // In the case some sector angle is smaller than minAngle\n\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var dir = clockwise ? 1 : -1;\n    /**\n     * Render a tree\n     * @return increased angle\n     */\n\n    var renderNode = function (node, startAngle) {\n      if (!node) {\n        return;\n      }\n\n      var endAngle = startAngle; // Render self\n\n      if (node !== virtualRoot) {\n        // Tree node is virtual, so it doesn't need to be drawn\n        var value = node.getValue();\n        var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n        if (angle < minAngle) {\n          angle = minAngle;\n          restAngle -= minAngle;\n        } else {\n          valueSumLargerThanMinAngle += value;\n        }\n\n        endAngle = startAngle + dir * angle;\n        var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n        var rStart = r0 + rPerLevel * depth;\n        var rEnd = r0 + rPerLevel * (depth + 1);\n        var itemModel = node.getModel();\n\n        if (itemModel.get('r0') != null) {\n          rStart = parsePercent(itemModel.get('r0'), size / 2);\n        }\n\n        if (itemModel.get('r') != null) {\n          rEnd = parsePercent(itemModel.get('r'), size / 2);\n        }\n\n        node.setLayout({\n          angle: angle,\n          startAngle: startAngle,\n          endAngle: endAngle,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: rStart,\n          r: rEnd\n        });\n      } // Render children\n\n\n      if (node.children && node.children.length) {\n        // currentAngle = startAngle;\n        var siblingAngle = 0;\n        zrUtil.each(node.children, function (node) {\n          siblingAngle += renderNode(node, startAngle + siblingAngle);\n        });\n      }\n\n      return endAngle - startAngle;\n    }; // Virtual root node for roll up\n\n\n    if (renderRollupNode) {\n      var rStart = r0;\n      var rEnd = r0 + rPerLevel;\n      var angle = Math.PI * 2;\n      virtualRoot.setLayout({\n        angle: angle,\n        startAngle: startAngle,\n        endAngle: startAngle + angle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: rStart,\n        r: rEnd\n      });\n    }\n\n    renderNode(treeRoot, startAngle);\n  });\n}\n/**\n * Init node children by order and update visual\n *\n * @param {TreeNode} node  root node\n * @param {boolean}  isAsc if is in ascendant order\n */\n\n\nfunction initChildren(node, isAsc) {\n  var children = node.children || [];\n  node.children = sort(children, isAsc); // Init children recursively\n\n  if (children.length) {\n    zrUtil.each(node.children, function (child) {\n      initChildren(child, isAsc);\n    });\n  }\n}\n/**\n * Sort children nodes\n *\n * @param {TreeNode[]}               children children of node to be sorted\n * @param {string | function | null} sort sort method\n *                                   See SunburstSeries.js for details.\n */\n\n\nfunction sort(children, sortOrder) {\n  if (typeof sortOrder === 'function') {\n    return children.sort(sortOrder);\n  } else {\n    var isAsc = sortOrder === 'asc';\n    return children.sort(function (a, b) {\n      var diff = (a.getValue() - b.getValue()) * (isAsc ? 1 : -1);\n      return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc ? -1 : 1) : diff;\n    });\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/sunburstLayout.js\n// module id = eKDm\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/_Symbol.js\n// module id = eX1V\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Eventful = require(\"zrender/lib/mixin/Eventful\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar interactionMutex = require(\"./interactionMutex\");\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar map = zrUtil.map;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n  w: [0, 0],\n  e: [0, 1],\n  n: [1, 0],\n  s: [1, 1]\n};\nvar CURSOR_MAP = {\n  w: 'ew',\n  e: 'ew',\n  n: 'ns',\n  s: 'ns',\n  ne: 'nesw',\n  sw: 'nesw',\n  nw: 'nwse',\n  se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n  brushStyle: {\n    lineWidth: 2,\n    stroke: 'rgba(0,0,0,0.3)',\n    fill: 'rgba(0,0,0,0.1)'\n  },\n  transformable: true,\n  brushMode: 'single',\n  removeOnClick: false\n};\nvar baseUID = 0;\n/**\n * @alias module:echarts/component/helper/BrushController\n * @constructor\n * @mixin {module:zrender/mixin/Eventful}\n * @event module:echarts/component/helper/BrushController#brush\n *        params:\n *            areas: Array.<Array>, coord relates to container group,\n *                                    If no container specified, to global.\n *            opt {\n *                isEnd: boolean,\n *                removeOnClick: boolean\n *            }\n *\n * @param {module:zrender/zrender~ZRender} zr\n */\n\nfunction BrushController(zr) {\n  Eventful.call(this);\n  /**\n   * @type {module:zrender/zrender~ZRender}\n   * @private\n   */\n\n  this._zr = zr;\n  /**\n   * @type {module:zrender/container/Group}\n   * @readOnly\n   */\n\n  this.group = new graphic.Group();\n  /**\n   * Only for drawing (after enabledBrush).\n   *     'line', 'rect', 'polygon' or false\n   *     If passing false/null/undefined, disable brush.\n   *     If passing 'auto', determined by panel.defaultBrushType\n   * @private\n   * @type {string}\n   */\n\n  this._brushType;\n  /**\n   * Only for drawing (after enabledBrush).\n   *\n   * @private\n   * @type {Object}\n   */\n\n  this._brushOption;\n  /**\n   * @private\n   * @type {Object}\n   */\n\n  this._panels;\n  /**\n   * @private\n   * @type {Array.<nubmer>}\n   */\n\n  this._track = [];\n  /**\n   * @private\n   * @type {boolean}\n   */\n\n  this._dragging;\n  /**\n   * @private\n   * @type {Array}\n   */\n\n  this._covers = [];\n  /**\n   * @private\n   * @type {moudule:zrender/container/Group}\n   */\n\n  this._creatingCover;\n  /**\n   * `true` means global panel\n   * @private\n   * @type {module:zrender/container/Group|boolean}\n   */\n\n  this._creatingPanel;\n  /**\n   * @private\n   * @type {boolean}\n   */\n\n  this._enableGlobalPan;\n  /**\n   * @private\n   * @type {boolean}\n   */\n\n  /**\n   * @private\n   * @type {string}\n   */\n  this._uid = 'brushController_' + baseUID++;\n  /**\n   * @private\n   * @type {Object}\n   */\n\n  this._handlers = {};\n  each(mouseHandlers, function (handler, eventName) {\n    this._handlers[eventName] = zrUtil.bind(handler, this);\n  }, this);\n}\n\nBrushController.prototype = {\n  constructor: BrushController,\n\n  /**\n   * If set to null/undefined/false, select disabled.\n   * @param {Object} brushOption\n   * @param {string|boolean} brushOption.brushType 'line', 'rect', 'polygon' or false\n   *                          If passing false/null/undefined, disable brush.\n   *                          If passing 'auto', determined by panel.defaultBrushType.\n   *                              ('auto' can not be used in global panel)\n   * @param {number} [brushOption.brushMode='single'] 'single' or 'multiple'\n   * @param {boolean} [brushOption.transformable=true]\n   * @param {boolean} [brushOption.removeOnClick=false]\n   * @param {Object} [brushOption.brushStyle]\n   * @param {number} [brushOption.brushStyle.width]\n   * @param {number} [brushOption.brushStyle.lineWidth]\n   * @param {string} [brushOption.brushStyle.stroke]\n   * @param {string} [brushOption.brushStyle.fill]\n   * @param {number} [brushOption.z]\n   */\n  enableBrush: function (brushOption) {\n    this._brushType && doDisableBrush(this);\n    brushOption.brushType && doEnableBrush(this, brushOption);\n    return this;\n  },\n\n  /**\n   * @param {Array.<Object>} panelOpts If not pass, it is global brush.\n   *        Each items: {\n   *            panelId, // mandatory.\n   *            clipPath, // mandatory. function.\n   *            isTargetByCursor, // mandatory. function.\n   *            defaultBrushType, // optional, only used when brushType is 'auto'.\n   *            getLinearBrushOtherExtent, // optional. function.\n   *        }\n   */\n  setPanels: function (panelOpts) {\n    if (panelOpts && panelOpts.length) {\n      var panels = this._panels = {};\n      zrUtil.each(panelOpts, function (panelOpts) {\n        panels[panelOpts.panelId] = zrUtil.clone(panelOpts);\n      });\n    } else {\n      this._panels = null;\n    }\n\n    return this;\n  },\n\n  /**\n   * @param {Object} [opt]\n   * @return {boolean} [opt.enableGlobalPan=false]\n   */\n  mount: function (opt) {\n    opt = opt || {};\n    this._enableGlobalPan = opt.enableGlobalPan;\n    var thisGroup = this.group;\n\n    this._zr.add(thisGroup);\n\n    thisGroup.attr({\n      position: opt.position || [0, 0],\n      rotation: opt.rotation || 0,\n      scale: opt.scale || [1, 1]\n    });\n    this._transform = thisGroup.getLocalTransform();\n    return this;\n  },\n  eachCover: function (cb, context) {\n    each(this._covers, cb, context);\n  },\n\n  /**\n   * Update covers.\n   * @param {Array.<Object>} brushOptionList Like:\n   *        [\n   *            {id: 'xx', brushType: 'line', range: [23, 44], brushStyle, transformable},\n   *            {id: 'yy', brushType: 'rect', range: [[23, 44], [23, 54]]},\n   *            ...\n   *        ]\n   *        `brushType` is required in each cover info. (can not be 'auto')\n   *        `id` is not mandatory.\n   *        `brushStyle`, `transformable` is not mandatory, use DEFAULT_BRUSH_OPT by default.\n   *        If brushOptionList is null/undefined, all covers removed.\n   */\n  updateCovers: function (brushOptionList) {\n    brushOptionList = zrUtil.map(brushOptionList, function (brushOption) {\n      return zrUtil.merge(zrUtil.clone(DEFAULT_BRUSH_OPT), brushOption, true);\n    });\n    var tmpIdPrefix = '\\0-brush-index-';\n    var oldCovers = this._covers;\n    var newCovers = this._covers = [];\n    var controller = this;\n    var creatingCover = this._creatingCover;\n    new DataDiffer(oldCovers, brushOptionList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n    return this;\n\n    function getKey(brushOption, index) {\n      return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n    }\n\n    function oldGetKey(cover, index) {\n      return getKey(cover.__brushOption, index);\n    }\n\n    function addOrUpdate(newIndex, oldIndex) {\n      var newBrushOption = brushOptionList[newIndex]; // Consider setOption in event listener of brushSelect,\n      // where updating cover when creating should be forbiden.\n\n      if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n        newCovers[newIndex] = oldCovers[oldIndex];\n      } else {\n        var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushOption, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushOption));\n        updateCoverAfterCreation(controller, cover);\n      }\n    }\n\n    function remove(oldIndex) {\n      if (oldCovers[oldIndex] !== creatingCover) {\n        controller.group.remove(oldCovers[oldIndex]);\n      }\n    }\n  },\n  unmount: function () {\n    this.enableBrush(false); // container may 'removeAll' outside.\n\n    clearCovers(this);\n\n    this._zr.remove(this.group);\n\n    return this;\n  },\n  dispose: function () {\n    this.unmount();\n    this.off();\n  }\n};\nzrUtil.mixin(BrushController, Eventful);\n\nfunction doEnableBrush(controller, brushOption) {\n  var zr = controller._zr; // Consider roam, which takes globalPan too.\n\n  if (!controller._enableGlobalPan) {\n    interactionMutex.take(zr, MUTEX_RESOURCE_KEY, controller._uid);\n  }\n\n  each(controller._handlers, function (handler, eventName) {\n    zr.on(eventName, handler);\n  });\n  controller._brushType = brushOption.brushType;\n  controller._brushOption = zrUtil.merge(zrUtil.clone(DEFAULT_BRUSH_OPT), brushOption, true);\n}\n\nfunction doDisableBrush(controller) {\n  var zr = controller._zr;\n  interactionMutex.release(zr, MUTEX_RESOURCE_KEY, controller._uid);\n  each(controller._handlers, function (handler, eventName) {\n    zr.off(eventName, handler);\n  });\n  controller._brushType = controller._brushOption = null;\n}\n\nfunction createCover(controller, brushOption) {\n  var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n  cover.__brushOption = brushOption;\n  updateZ(cover, brushOption);\n  controller.group.add(cover);\n  return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n  var coverRenderer = getCoverRenderer(creatingCover);\n\n  if (coverRenderer.endCreating) {\n    coverRenderer.endCreating(controller, creatingCover);\n    updateZ(creatingCover, creatingCover.__brushOption);\n  }\n\n  return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n  var brushOption = cover.__brushOption;\n  getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n  var z = brushOption.z;\n  z == null && (z = COVER_Z);\n  cover.traverse(function (el) {\n    el.z = z;\n    el.z2 = z; // Consider in given container.\n  });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n  getCoverRenderer(cover).updateCommon(controller, cover);\n  updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n  return coverRenderers[cover.__brushOption.brushType];\n} // return target panel or `true` (means global panel)\n\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return true; // Global panel\n  }\n\n  var panel;\n  var transform = controller._transform;\n  each(panels, function (pn) {\n    pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n  });\n  return panel;\n} // Return a panel or true\n\n\nfunction getPanelByCover(controller, cover) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return true; // Global panel\n  }\n\n  var panelId = cover.__brushOption.panelId; // User may give cover without coord sys info,\n  // which is then treated as global panel.\n\n  return panelId != null ? panels[panelId] : true;\n}\n\nfunction clearCovers(controller) {\n  var covers = controller._covers;\n  var originalLength = covers.length;\n  each(covers, function (cover) {\n    controller.group.remove(cover);\n  }, controller);\n  covers.length = 0;\n  return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n  var areas = map(controller._covers, function (cover) {\n    var brushOption = cover.__brushOption;\n    var range = zrUtil.clone(brushOption.range);\n    return {\n      brushType: brushOption.brushType,\n      panelId: brushOption.panelId,\n      range: range\n    };\n  });\n  controller.trigger('brush', areas, {\n    isEnd: !!opt.isEnd,\n    removeOnClick: !!opt.removeOnClick\n  });\n}\n\nfunction shouldShowCover(controller) {\n  var track = controller._track;\n\n  if (!track.length) {\n    return false;\n  }\n\n  var p2 = track[track.length - 1];\n  var p1 = track[0];\n  var dx = p2[0] - p1[0];\n  var dy = p2[1] - p1[1];\n  var dist = mathPow(dx * dx + dy * dy, 0.5);\n  return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n  var tail = track.length - 1;\n  tail < 0 && (tail = 0);\n  return [track[0], track[tail]];\n}\n\nfunction createBaseRectCover(doDrift, controller, brushOption, edgeNames) {\n  var cover = new graphic.Group();\n  cover.add(new graphic.Rect({\n    name: 'main',\n    style: makeStyle(brushOption),\n    silent: true,\n    draggable: true,\n    cursor: 'move',\n    drift: curry(doDrift, controller, cover, 'nswe'),\n    ondragend: curry(trigger, controller, {\n      isEnd: true\n    })\n  }));\n  each(edgeNames, function (name) {\n    cover.add(new graphic.Rect({\n      name: name,\n      style: {\n        opacity: 0\n      },\n      draggable: true,\n      silent: true,\n      invisible: true,\n      drift: curry(doDrift, controller, cover, name),\n      ondragend: curry(trigger, controller, {\n        isEnd: true\n      })\n    }));\n  });\n  return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n  var lineWidth = brushOption.brushStyle.lineWidth || 0;\n  var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n  var x = localRange[0][0];\n  var y = localRange[1][0];\n  var xa = x - lineWidth / 2;\n  var ya = y - lineWidth / 2;\n  var x2 = localRange[0][1];\n  var y2 = localRange[1][1];\n  var x2a = x2 - handleSize + lineWidth / 2;\n  var y2a = y2 - handleSize + lineWidth / 2;\n  var width = x2 - x;\n  var height = y2 - y;\n  var widtha = width + lineWidth;\n  var heighta = height + lineWidth;\n  updateRectShape(controller, cover, 'main', x, y, width, height);\n\n  if (brushOption.transformable) {\n    updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n    updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n    updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n    updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n  }\n}\n\nfunction updateCommon(controller, cover) {\n  var brushOption = cover.__brushOption;\n  var transformable = brushOption.transformable;\n  var mainEl = cover.childAt(0);\n  mainEl.useStyle(makeStyle(brushOption));\n  mainEl.attr({\n    silent: !transformable,\n    cursor: transformable ? 'move' : 'default'\n  });\n  each(['w', 'e', 'n', 's', 'se', 'sw', 'ne', 'nw'], function (name) {\n    var el = cover.childOfName(name);\n    var globalDir = getGlobalDirection(controller, name);\n    el && el.attr({\n      silent: !transformable,\n      invisible: !transformable,\n      cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n    });\n  });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n  var el = cover.childOfName(name);\n  el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n  return zrUtil.defaults({\n    strokeNoScale: true\n  }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n  var min = [mathMin(x, x2), mathMin(y, y2)];\n  var max = [mathMax(x, x2), mathMax(y, y2)];\n  return [[min[0], max[0]], // x range\n  [min[1], max[1]] // y range\n  ];\n}\n\nfunction getTransform(controller) {\n  return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection(controller, localDirection) {\n  if (localDirection.length > 1) {\n    localDirection = localDirection.split('');\n    var globalDir = [getGlobalDirection(controller, localDirection[0]), getGlobalDirection(controller, localDirection[1])];\n    (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n    return globalDir.join('');\n  } else {\n    var map = {\n      w: 'left',\n      e: 'right',\n      n: 'top',\n      s: 'bottom'\n    };\n    var inverseMap = {\n      left: 'w',\n      right: 'e',\n      top: 'n',\n      bottom: 's'\n    };\n    var globalDir = graphic.transformDirection(map[localDirection], getTransform(controller));\n    return inverseMap[globalDir];\n  }\n}\n\nfunction driftRect(toRectRange, fromRectRange, controller, cover, name, dx, dy, e) {\n  var brushOption = cover.__brushOption;\n  var rectRange = toRectRange(brushOption.range);\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(name.split(''), function (namePart) {\n    var ind = DIRECTION_MAP[namePart];\n    rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n  });\n  brushOption.range = fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction driftPolygon(controller, cover, dx, dy, e) {\n  var range = cover.__brushOption.range;\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(range, function (point) {\n    point[0] += localDelta[0];\n    point[1] += localDelta[1];\n  });\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n  var thisGroup = controller.group;\n  var localD = thisGroup.transformCoordToLocal(dx, dy);\n  var localZero = thisGroup.transformCoordToLocal(0, 0);\n  return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n  var panel = getPanelByCover(controller, cover);\n  return panel && panel !== true ? panel.clipPath(data, controller._transform) : zrUtil.clone(data);\n}\n\nfunction pointsToRect(points) {\n  var xmin = mathMin(points[0][0], points[1][0]);\n  var ymin = mathMin(points[0][1], points[1][1]);\n  var xmax = mathMax(points[0][0], points[1][0]);\n  var ymax = mathMax(points[0][1], points[1][1]);\n  return {\n    x: xmin,\n    y: ymin,\n    width: xmax - xmin,\n    height: ymax - ymin\n  };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n  // Check active\n  if (!controller._brushType) {\n    return;\n  }\n\n  var zr = controller._zr;\n  var covers = controller._covers;\n  var currPanel = getPanelByPoint(controller, e, localCursorPoint); // Check whether in covers.\n\n  if (!controller._dragging) {\n    for (var i = 0; i < covers.length; i++) {\n      var brushOption = covers[i].__brushOption;\n\n      if (currPanel && (currPanel === true || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n        // Use cursor style set on cover.\n        return;\n      }\n    }\n  }\n\n  currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n  var rawE = e.event;\n  rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n  return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n  var creatingCover = controller._creatingCover;\n  var panel = controller._creatingPanel;\n  var thisBrushOption = controller._brushOption;\n  var eventParams;\n\n  controller._track.push(localCursorPoint.slice());\n\n  if (shouldShowCover(controller) || creatingCover) {\n    if (panel && !creatingCover) {\n      thisBrushOption.brushMode === 'single' && clearCovers(controller);\n      var brushOption = zrUtil.clone(thisBrushOption);\n      brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n      brushOption.panelId = panel === true ? null : panel.panelId;\n      creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n      controller._covers.push(creatingCover);\n    }\n\n    if (creatingCover) {\n      var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n      var coverBrushOption = creatingCover.__brushOption;\n      coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n      if (isEnd) {\n        endCreating(controller, creatingCover);\n        coverRenderer.updateCommon(controller, creatingCover);\n      }\n\n      updateCoverShape(controller, creatingCover);\n      eventParams = {\n        isEnd: isEnd\n      };\n    }\n  } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n    // Help user to remove covers easily, only by a tiny drag, in 'single' mode.\n    // But a single click do not clear covers, because user may have casual\n    // clicks (for example, click on other component and do not expect covers\n    // disappear).\n    // Only some cover removed, trigger action, but not every click trigger action.\n    if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n      eventParams = {\n        isEnd: isEnd,\n        removeOnClick: true\n      };\n    }\n  }\n\n  return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n  if (brushType === 'auto') {\n    return panel.defaultBrushType;\n  }\n\n  return brushType;\n}\n\nvar mouseHandlers = {\n  mousedown: function (e) {\n    if (this._dragging) {\n      // In case some browser do not support globalOut,\n      // and release mose out side the browser.\n      handleDragEnd.call(this, e);\n    } else if (!e.target || !e.target.draggable) {\n      preventDefault(e);\n      var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n      this._creatingCover = null;\n      var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n      if (panel) {\n        this._dragging = true;\n        this._track = [localCursorPoint.slice()];\n      }\n    }\n  },\n  mousemove: function (e) {\n    var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n    resetCursor(this, e, localCursorPoint);\n\n    if (this._dragging) {\n      preventDefault(e);\n      var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n      eventParams && trigger(this, eventParams);\n    }\n  },\n  mouseup: handleDragEnd //,\n  // FIXME\n  // in tooltip, globalout should not be triggered.\n  // globalout: handleDragEnd\n\n};\n\nfunction handleDragEnd(e) {\n  if (this._dragging) {\n    preventDefault(e);\n    var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n    var eventParams = updateCoverByMouse(this, e, localCursorPoint, true);\n    this._dragging = false;\n    this._track = [];\n    this._creatingCover = null; // trigger event shoule be at final, after procedure will be nested.\n\n    eventParams && trigger(this, eventParams);\n  }\n}\n/**\n * key: brushType\n * @type {Object}\n */\n\n\nvar coverRenderers = {\n  lineX: getLineRenderer(0),\n  lineY: getLineRenderer(1),\n  rect: {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover(curry(driftRect, function (range) {\n        return range;\n      }, function (range) {\n        return range;\n      }), controller, brushOption, ['w', 'e', 'n', 's', 'se', 'sw', 'ne', 'nw']);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      updateBaseRect(controller, cover, localRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  },\n  polygon: {\n    createCover: function (controller, brushOption) {\n      var cover = new graphic.Group(); // Do not use graphic.Polygon because graphic.Polyline do not close the\n      // border of the shape when drawing, which is a better experience for user.\n\n      cover.add(new graphic.Polyline({\n        name: 'main',\n        style: makeStyle(brushOption),\n        silent: true\n      }));\n      return cover;\n    },\n    getCreatingRange: function (localTrack) {\n      return localTrack;\n    },\n    endCreating: function (controller, cover) {\n      cover.remove(cover.childAt(0)); // Use graphic.Polygon close the shape.\n\n      cover.add(new graphic.Polygon({\n        name: 'main',\n        draggable: true,\n        drift: curry(driftPolygon, controller, cover),\n        ondragend: curry(trigger, controller, {\n          isEnd: true\n        })\n      }));\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      cover.childAt(0).setShape({\n        points: clipByPanel(controller, cover, localRange)\n      });\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  }\n};\n\nfunction getLineRenderer(xyIndex) {\n  return {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover(curry(driftRect, function (range) {\n        var rectRange = [range, [0, 100]];\n        xyIndex && rectRange.reverse();\n        return rectRange;\n      }, function (rectRange) {\n        return rectRange[xyIndex];\n      }), controller, brushOption, [['w', 'e'], ['n', 's']][xyIndex]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n      var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n      return [min, max];\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      var otherExtent; // If brushWidth not specified, fit the panel.\n\n      var panel = getPanelByCover(controller, cover);\n\n      if (panel !== true && panel.getLinearBrushOtherExtent) {\n        otherExtent = panel.getLinearBrushOtherExtent(xyIndex, controller._transform);\n      } else {\n        var zr = controller._zr;\n        otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n      }\n\n      var rectRange = [localRange, otherExtent];\n      xyIndex && rectRange.reverse();\n      updateBaseRect(controller, cover, rectRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  };\n}\n\nvar _default = BrushController;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/BrushController.js\n// module id = eZJ0\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar _layout = require(\"../../util/layout\");\n\nvar getLayoutParams = _layout.getLayoutParams;\nvar sizeCalculable = _layout.sizeCalculable;\nvar mergeLayoutParam = _layout.mergeLayoutParam;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar CalendarModel = ComponentModel.extend({\n  type: 'calendar',\n\n  /**\n   * @type {module:echarts/coord/calendar/Calendar}\n   */\n  coordinateSystem: null,\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    left: 80,\n    top: 60,\n    cellSize: 20,\n    // horizontal vertical\n    orient: 'horizontal',\n    // month separate line style\n    splitLine: {\n      show: true,\n      lineStyle: {\n        color: '#000',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    // rect style  temporarily unused emphasis\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1,\n      borderColor: '#ccc'\n    },\n    // week text style\n    dayLabel: {\n      show: true,\n      // a week first day\n      firstDay: 0,\n      // start end\n      position: 'start',\n      margin: '50%',\n      // 50% of cellSize\n      nameMap: 'en',\n      color: '#000'\n    },\n    // month text style\n    monthLabel: {\n      show: true,\n      // start end\n      position: 'start',\n      margin: 5,\n      // center or left\n      align: 'center',\n      // cn en []\n      nameMap: 'en',\n      formatter: null,\n      color: '#000'\n    },\n    // year text style\n    yearLabel: {\n      show: true,\n      // top bottom left right\n      position: null,\n      margin: 30,\n      formatter: null,\n      color: '#ccc',\n      fontFamily: 'sans-serif',\n      fontWeight: 'bolder',\n      fontSize: 20\n    }\n  },\n\n  /**\n   * @override\n   */\n  init: function (option, parentModel, ecModel, extraOpt) {\n    var inputPositionParams = getLayoutParams(option);\n    CalendarModel.superApply(this, 'init', arguments);\n    mergeAndNormalizeLayoutParams(option, inputPositionParams);\n  },\n\n  /**\n   * @override\n   */\n  mergeOption: function (option, extraOpt) {\n    CalendarModel.superApply(this, 'mergeOption', arguments);\n    mergeAndNormalizeLayoutParams(this.option, option);\n  }\n});\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n  // Normalize cellSize\n  var cellSize = target.cellSize;\n\n  if (!zrUtil.isArray(cellSize)) {\n    cellSize = target.cellSize = [cellSize, cellSize];\n  } else if (cellSize.length === 1) {\n    cellSize[1] = cellSize[0];\n  }\n\n  var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n    // If user have set `width` or both `left` and `right`, cellSize\n    // will be automatically set to 'auto', otherwise the default\n    // setting of cellSize will make `width` setting not work.\n    if (sizeCalculable(raw, hvIdx)) {\n      cellSize[hvIdx] = 'auto';\n    }\n\n    return cellSize[hvIdx] != null && cellSize[hvIdx] !== 'auto';\n  });\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: ignoreSize\n  });\n}\n\nvar _default = CalendarModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/calendar/CalendarModel.js\n// module id = efir\n// module chunks = 0","require(\"./legend\");\n\nrequire(\"./legend/ScrollableLegendModel\");\n\nrequire(\"./legend/ScrollableLegendView\");\n\nrequire(\"./legend/scrollableLegendAction\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legendScroll.js\n// module id = ehSZ\n// module chunks = 0","var vec2 = require(\"zrender/lib/core/vector\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction circularLayout(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var rect = coordSys.getBoundingRect();\n  var nodeData = seriesModel.getData();\n  var graph = nodeData.graph;\n  var angle = 0;\n  var sum = nodeData.getSum('value');\n  var unitAngle = Math.PI * 2 / (sum || nodeData.count());\n  var cx = rect.width / 2 + rect.x;\n  var cy = rect.height / 2 + rect.y;\n  var r = Math.min(rect.width, rect.height) / 2;\n  graph.eachNode(function (node) {\n    var value = node.getValue('value');\n    angle += unitAngle * (sum ? value : 1) / 2;\n    node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n    angle += unitAngle * (sum ? value : 1) / 2;\n  });\n  nodeData.setLayout({\n    cx: cx,\n    cy: cy\n  });\n  graph.eachEdge(function (edge) {\n    var curveness = edge.getModel().get('lineStyle.curveness') || 0;\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var cp1;\n    var x12 = (p1[0] + p2[0]) / 2;\n    var y12 = (p1[1] + p2[1]) / 2;\n\n    if (+curveness) {\n      curveness *= 3;\n      cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n    }\n\n    edge.setLayout([p1, p2, cp1]);\n  });\n}\n\nexports.circularLayout = circularLayout;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/circularLayoutHelper.js\n// module id = ehjs\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = {\n  el: {\n    colorpicker: {\n      confirm: '纭畾',\n      clear: '娓呯┖'\n    },\n    datepicker: {\n      now: '姝ゅ埢',\n      today: '浠婂ぉ',\n      cancel: '鍙栨秷',\n      clear: '娓呯┖',\n      confirm: '纭畾',\n      selectDate: '閫夋嫨鏃ユ湡',\n      selectTime: '閫夋嫨鏃堕棿',\n      startDate: '寮�濮嬫棩鏈�',\n      startTime: '寮�濮嬫椂闂�',\n      endDate: '缁撴潫鏃ユ湡',\n      endTime: '缁撴潫鏃堕棿',\n      prevYear: '鍓嶄竴骞�',\n      nextYear: '鍚庝竴骞�',\n      prevMonth: '涓婁釜鏈�',\n      nextMonth: '涓嬩釜鏈�',\n      year: '骞�',\n      month1: '1 鏈�',\n      month2: '2 鏈�',\n      month3: '3 鏈�',\n      month4: '4 鏈�',\n      month5: '5 鏈�',\n      month6: '6 鏈�',\n      month7: '7 鏈�',\n      month8: '8 鏈�',\n      month9: '9 鏈�',\n      month10: '10 鏈�',\n      month11: '11 鏈�',\n      month12: '12 鏈�',\n      // week: '鍛ㄦ',\n      weeks: {\n        sun: '鏃�',\n        mon: '涓�',\n        tue: '浜�',\n        wed: '涓�',\n        thu: '鍥�',\n        fri: '浜�',\n        sat: '鍏�'\n      },\n      months: {\n        jan: '涓�鏈�',\n        feb: '浜屾湀',\n        mar: '涓夋湀',\n        apr: '鍥涙湀',\n        may: '浜旀湀',\n        jun: '鍏湀',\n        jul: '涓冩湀',\n        aug: '鍏湀',\n        sep: '涔濇湀',\n        oct: '鍗佹湀',\n        nov: '鍗佷竴鏈�',\n        dec: '鍗佷簩鏈�'\n      }\n    },\n    select: {\n      loading: '鍔犺浇涓�',\n      noMatch: '鏃犲尮閰嶆暟鎹�',\n      noData: '鏃犳暟鎹�',\n      placeholder: '璇烽�夋嫨'\n    },\n    cascader: {\n      noMatch: '鏃犲尮閰嶆暟鎹�',\n      loading: '鍔犺浇涓�',\n      placeholder: '璇烽�夋嫨'\n    },\n    pagination: {\n      goto: '鍓嶅線',\n      pagesize: '鏉�/椤�',\n      total: '鍏� {total} 鏉�',\n      pageClassifier: '椤�'\n    },\n    messagebox: {\n      title: '鎻愮ず',\n      confirm: '纭畾',\n      cancel: '鍙栨秷',\n      error: '杈撳叆鐨勬暟鎹笉鍚堟硶!'\n    },\n    upload: {\n      deleteTip: '鎸� delete 閿彲鍒犻櫎',\n      delete: '鍒犻櫎',\n      preview: '鏌ョ湅鍥剧墖',\n      continue: '缁х画涓婁紶'\n    },\n    table: {\n      emptyText: '鏆傛棤鏁版嵁',\n      confirmFilter: '绛涢��',\n      resetFilter: '閲嶇疆',\n      clearFilter: '鍏ㄩ儴',\n      sumText: '鍚堣'\n    },\n    tree: {\n      emptyText: '鏆傛棤鏁版嵁'\n    },\n    transfer: {\n      noMatch: '鏃犲尮閰嶆暟鎹�',\n      noData: '鏃犳暟鎹�',\n      titles: ['鍒楄〃 1', '鍒楄〃 2'],\n      filterPlaceholder: '璇疯緭鍏ユ悳绱㈠唴瀹�',\n      noCheckedFormat: '鍏� {total} 椤�',\n      hasCheckedFormat: '宸查�� {checked}/{total} 椤�'\n    }\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/locale/lang/zh-CN.js\n// module id = ejpq\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-keys-internal.js\n// module id = eqTP\n// module chunks = 0","/**\n * 浜嬩欢鎵╁睍\n * @module zrender/mixin/Eventful\n * @author Kener (@Kener-鏋楀嘲, kener.linfeng@gmail.com)\n *         pissang (https://www.github.com/pissang)\n */\nvar arrySlice = Array.prototype.slice;\n/**\n * 浜嬩欢鍒嗗彂鍣╘n * @alias module:zrender/mixin/Eventful\n * @constructor\n */\n\nvar Eventful = function () {\n  this._$handlers = {};\n};\n\nEventful.prototype = {\n  constructor: Eventful,\n\n  /**\n   * 鍗曟瑙﹀彂缁戝畾锛宼rigger鍚庨攢姣乗n   *\n   * @param {string} event 浜嬩欢鍚峔n   * @param {Function} handler 鍝嶅簲鍑芥暟\n   * @param {Object} context\n   */\n  one: function (event, handler, context) {\n    var _h = this._$handlers;\n\n    if (!handler || !event) {\n      return this;\n    }\n\n    if (!_h[event]) {\n      _h[event] = [];\n    }\n\n    for (var i = 0; i < _h[event].length; i++) {\n      if (_h[event][i].h === handler) {\n        return this;\n      }\n    }\n\n    _h[event].push({\n      h: handler,\n      one: true,\n      ctx: context || this\n    });\n\n    return this;\n  },\n\n  /**\n   * 缁戝畾浜嬩欢\n   * @param {string} event 浜嬩欢鍚峔n   * @param {Function} handler 浜嬩欢澶勭悊鍑芥暟\n   * @param {Object} [context]\n   */\n  on: function (event, handler, context) {\n    var _h = this._$handlers;\n\n    if (!handler || !event) {\n      return this;\n    }\n\n    if (!_h[event]) {\n      _h[event] = [];\n    }\n\n    for (var i = 0; i < _h[event].length; i++) {\n      if (_h[event][i].h === handler) {\n        return this;\n      }\n    }\n\n    _h[event].push({\n      h: handler,\n      one: false,\n      ctx: context || this\n    });\n\n    return this;\n  },\n\n  /**\n   * 鏄惁缁戝畾浜嗕簨浠禱n   * @param  {string}  event\n   * @return {boolean}\n   */\n  isSilent: function (event) {\n    var _h = this._$handlers;\n    return _h[event] && _h[event].length;\n  },\n\n  /**\n   * 瑙g粦浜嬩欢\n   * @param {string} event 浜嬩欢鍚峔n   * @param {Function} [handler] 浜嬩欢澶勭悊鍑芥暟\n   */\n  off: function (event, handler) {\n    var _h = this._$handlers;\n\n    if (!event) {\n      this._$handlers = {};\n      return this;\n    }\n\n    if (handler) {\n      if (_h[event]) {\n        var newList = [];\n\n        for (var i = 0, l = _h[event].length; i < l; i++) {\n          if (_h[event][i]['h'] != handler) {\n            newList.push(_h[event][i]);\n          }\n        }\n\n        _h[event] = newList;\n      }\n\n      if (_h[event] && _h[event].length === 0) {\n        delete _h[event];\n      }\n    } else {\n      delete _h[event];\n    }\n\n    return this;\n  },\n\n  /**\n   * 浜嬩欢鍒嗗彂\n   *\n   * @param {string} type 浜嬩欢绫诲瀷\n   */\n  trigger: function (type) {\n    if (this._$handlers[type]) {\n      var args = arguments;\n      var argLen = args.length;\n\n      if (argLen > 3) {\n        args = arrySlice.call(args, 1);\n      }\n\n      var _h = this._$handlers[type];\n      var len = _h.length;\n\n      for (var i = 0; i < len;) {\n        // Optimize advise from backbone\n        switch (argLen) {\n          case 1:\n            _h[i]['h'].call(_h[i]['ctx']);\n\n            break;\n\n          case 2:\n            _h[i]['h'].call(_h[i]['ctx'], args[1]);\n\n            break;\n\n          case 3:\n            _h[i]['h'].call(_h[i]['ctx'], args[1], args[2]);\n\n            break;\n\n          default:\n            // have more than 2 given arguments\n            _h[i]['h'].apply(_h[i]['ctx'], args);\n\n            break;\n        }\n\n        if (_h[i]['one']) {\n          _h.splice(i, 1);\n\n          len--;\n        } else {\n          i++;\n        }\n      }\n    }\n\n    return this;\n  },\n\n  /**\n   * 甯︽湁context鐨勪簨浠跺垎鍙�, 鏈�鍚庝竴涓弬鏁版槸浜嬩欢鍥炶皟鐨刢ontext\n   * @param {string} type 浜嬩欢绫诲瀷\n   */\n  triggerWithContext: function (type) {\n    if (this._$handlers[type]) {\n      var args = arguments;\n      var argLen = args.length;\n\n      if (argLen > 4) {\n        args = arrySlice.call(args, 1, args.length - 1);\n      }\n\n      var ctx = args[args.length - 1];\n      var _h = this._$handlers[type];\n      var len = _h.length;\n\n      for (var i = 0; i < len;) {\n        // Optimize advise from backbone\n        switch (argLen) {\n          case 1:\n            _h[i]['h'].call(ctx);\n\n            break;\n\n          case 2:\n            _h[i]['h'].call(ctx, args[1]);\n\n            break;\n\n          case 3:\n            _h[i]['h'].call(ctx, args[1], args[2]);\n\n            break;\n\n          default:\n            // have more than 2 given arguments\n            _h[i]['h'].apply(ctx, args);\n\n            break;\n        }\n\n        if (_h[i]['one']) {\n          _h.splice(i, 1);\n\n          len--;\n        } else {\n          i++;\n        }\n      }\n    }\n\n    return this;\n  }\n}; // 瀵硅薄鍙互閫氳繃 onxxxx 缁戝畾浜嬩欢\n\n/**\n * @event module:zrender/mixin/Eventful#onclick\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseover\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseout\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousemove\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousewheel\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousedown\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseup\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondrag\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragstart\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragend\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragenter\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragleave\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragover\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondrop\n * @type {Function}\n * @default null\n */\n\nvar _default = Eventful;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/mixin/Eventful.js\n// module id = erEb\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  var processedMapType = {};\n  ecModel.eachSeriesByType('map', function (mapSeries) {\n    var mapType = mapSeries.getMapType();\n\n    if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n      return;\n    }\n\n    var mapSymbolOffsets = {};\n    zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n      var geo = subMapSeries.coordinateSystem;\n      var data = subMapSeries.originalData;\n\n      if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n        data.each(data.mapDimension('value'), function (value, idx) {\n          var name = data.getName(idx);\n          var region = geo.getRegion(name); // If input series.data is [11, 22, '-'/null/undefined, 44],\n          // it will be filled with NaN: [11, 22, NaN, 44] and NaN will\n          // not be drawn. So here must validate if value is NaN.\n\n          if (!region || isNaN(value)) {\n            return;\n          }\n\n          var offset = mapSymbolOffsets[name] || 0;\n          var point = geo.dataToPoint(region.center);\n          mapSymbolOffsets[name] = offset + 1;\n          data.setItemLayout(idx, {\n            point: point,\n            offset: offset\n          });\n        });\n      }\n    }); // Show label of those region not has legendSymbol(which is offset 0)\n\n    var data = mapSeries.getData();\n    data.each(function (idx) {\n      var name = data.getName(idx);\n      var layout = data.getItemLayout(idx) || {};\n      layout.showLabel = !mapSymbolOffsets[name];\n      data.setItemLayout(idx, layout);\n    });\n    processedMapType[mapType] = true;\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/map/mapSymbolLayout.js\n// module id = f0J5\n// module chunks = 0","import _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nvar formatRegExp = /%[sdj%]/g;\n\nexport var warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif (process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n  warning = function warning(type, errors) {\n    if (typeof console !== 'undefined' && console.warn) {\n      if (errors.every(function (e) {\n        return typeof e === 'string';\n      })) {\n        console.warn(type, errors);\n      }\n    }\n  };\n}\n\nexport function format() {\n  for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  var i = 1;\n  var f = args[0];\n  var len = args.length;\n  if (typeof f === 'function') {\n    return f.apply(null, args.slice(1));\n  }\n  if (typeof f === 'string') {\n    var str = String(f).replace(formatRegExp, function (x) {\n      if (x === '%%') {\n        return '%';\n      }\n      if (i >= len) {\n        return x;\n      }\n      switch (x) {\n        case '%s':\n          return String(args[i++]);\n        case '%d':\n          return Number(args[i++]);\n        case '%j':\n          try {\n            return JSON.stringify(args[i++]);\n          } catch (_) {\n            return '[Circular]';\n          }\n          break;\n        default:\n          return x;\n      }\n    });\n    for (var arg = args[i]; i < len; arg = args[++i]) {\n      str += ' ' + arg;\n    }\n    return str;\n  }\n  return f;\n}\n\nfunction isNativeStringType(type) {\n  return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';\n}\n\nexport function isEmptyValue(value, type) {\n  if (value === undefined || value === null) {\n    return true;\n  }\n  if (type === 'array' && Array.isArray(value) && !value.length) {\n    return true;\n  }\n  if (isNativeStringType(type) && typeof value === 'string' && !value) {\n    return true;\n  }\n  return false;\n}\n\nexport function isEmptyObject(obj) {\n  return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(arr, func, callback) {\n  var results = [];\n  var total = 0;\n  var arrLength = arr.length;\n\n  function count(errors) {\n    results.push.apply(results, errors);\n    total++;\n    if (total === arrLength) {\n      callback(results);\n    }\n  }\n\n  arr.forEach(function (a) {\n    func(a, count);\n  });\n}\n\nfunction asyncSerialArray(arr, func, callback) {\n  var index = 0;\n  var arrLength = arr.length;\n\n  function next(errors) {\n    if (errors && errors.length) {\n      callback(errors);\n      return;\n    }\n    var original = index;\n    index = index + 1;\n    if (original < arrLength) {\n      func(arr[original], next);\n    } else {\n      callback([]);\n    }\n  }\n\n  next([]);\n}\n\nfunction flattenObjArr(objArr) {\n  var ret = [];\n  Object.keys(objArr).forEach(function (k) {\n    ret.push.apply(ret, objArr[k]);\n  });\n  return ret;\n}\n\nexport function asyncMap(objArr, option, func, callback) {\n  if (option.first) {\n    var flattenArr = flattenObjArr(objArr);\n    return asyncSerialArray(flattenArr, func, callback);\n  }\n  var firstFields = option.firstFields || [];\n  if (firstFields === true) {\n    firstFields = Object.keys(objArr);\n  }\n  var objArrKeys = Object.keys(objArr);\n  var objArrLength = objArrKeys.length;\n  var total = 0;\n  var results = [];\n  var next = function next(errors) {\n    results.push.apply(results, errors);\n    total++;\n    if (total === objArrLength) {\n      callback(results);\n    }\n  };\n  objArrKeys.forEach(function (key) {\n    var arr = objArr[key];\n    if (firstFields.indexOf(key) !== -1) {\n      asyncSerialArray(arr, func, next);\n    } else {\n      asyncParallelArray(arr, func, next);\n    }\n  });\n}\n\nexport function complementError(rule) {\n  return function (oe) {\n    if (oe && oe.message) {\n      oe.field = oe.field || rule.fullField;\n      return oe;\n    }\n    return {\n      message: oe,\n      field: oe.field || rule.fullField\n    };\n  };\n}\n\nexport function deepMerge(target, source) {\n  if (source) {\n    for (var s in source) {\n      if (source.hasOwnProperty(s)) {\n        var value = source[s];\n        if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(target[s]) === 'object') {\n          target[s] = _extends({}, target[s], value);\n        } else {\n          target[s] = value;\n        }\n      }\n    }\n  }\n  return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/util.js\n// module id = null\n// module chunks = ","import * as util from '../util';\n\n/**\n *  Rule for validating required fields.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction required(rule, value, source, errors, options, type) {\n  if (rule.required && (!source.hasOwnProperty(rule.field) || util.isEmptyValue(value, type || rule.type))) {\n    errors.push(util.format(options.messages.required, rule.fullField));\n  }\n}\n\nexport default required;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/rule/required.js\n// module id = null\n// module chunks = ","import * as util from '../util';\n\n/**\n *  Rule for validating whitespace.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction whitespace(rule, value, source, errors, options) {\n  if (/^\\s+$/.test(value) || value === '') {\n    errors.push(util.format(options.messages.whitespace, rule.fullField));\n  }\n}\n\nexport default whitespace;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/rule/whitespace.js\n// module id = null\n// module chunks = ","import _typeof from 'babel-runtime/helpers/typeof';\nimport * as util from '../util';\nimport required from './required';\n\n/* eslint max-len:0 */\n\nvar pattern = {\n  // http://emailregex.com/\n  email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n  url: new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-?)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$', 'i'),\n  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\n\nvar types = {\n  integer: function integer(value) {\n    return types.number(value) && parseInt(value, 10) === value;\n  },\n  float: function float(value) {\n    return types.number(value) && !types.integer(value);\n  },\n  array: function array(value) {\n    return Array.isArray(value);\n  },\n  regexp: function regexp(value) {\n    if (value instanceof RegExp) {\n      return true;\n    }\n    try {\n      return !!new RegExp(value);\n    } catch (e) {\n      return false;\n    }\n  },\n  date: function date(value) {\n    return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';\n  },\n  number: function number(value) {\n    if (isNaN(value)) {\n      return false;\n    }\n    return typeof value === 'number';\n  },\n  object: function object(value) {\n    return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !types.array(value);\n  },\n  method: function method(value) {\n    return typeof value === 'function';\n  },\n  email: function email(value) {\n    return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;\n  },\n  url: function url(value) {\n    return typeof value === 'string' && !!value.match(pattern.url);\n  },\n  hex: function hex(value) {\n    return typeof value === 'string' && !!value.match(pattern.hex);\n  }\n};\n\n/**\n *  Rule for validating the type of a value.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction type(rule, value, source, errors, options) {\n  if (rule.required && value === undefined) {\n    required(rule, value, source, errors, options);\n    return;\n  }\n  var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n  var ruleType = rule.type;\n  if (custom.indexOf(ruleType) > -1) {\n    if (!types[ruleType](value)) {\n      errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type));\n    }\n    // straight typeof check\n  } else if (ruleType && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== rule.type) {\n    errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type));\n  }\n}\n\nexport default type;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/rule/type.js\n// module id = null\n// module chunks = ","import * as util from '../util';\n\n/**\n *  Rule for validating minimum and maximum allowed values.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction range(rule, value, source, errors, options) {\n  var len = typeof rule.len === 'number';\n  var min = typeof rule.min === 'number';\n  var max = typeof rule.max === 'number';\n  // 姝e垯鍖归厤鐮佺偣鑼冨洿浠嶶+010000涓�鐩村埌U+10FFFF鐨勬枃瀛楋紙琛ュ厖骞抽潰Supplementary Plane锛塡n  var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n  var val = value;\n  var key = null;\n  var num = typeof value === 'number';\n  var str = typeof value === 'string';\n  var arr = Array.isArray(value);\n  if (num) {\n    key = 'number';\n  } else if (str) {\n    key = 'string';\n  } else if (arr) {\n    key = 'array';\n  }\n  // if the value is not of a supported type for range validation\n  // the validation rule rule should use the\n  // type property to also test for a particular type\n  if (!key) {\n    return false;\n  }\n  if (arr) {\n    val = value.length;\n  }\n  if (str) {\n    // 澶勭悊鐮佺偣澶т簬U+010000鐨勬枃瀛條ength灞炴�т笉鍑嗙‘鐨刡ug锛屽\"馉馉馉\".lenght !== 3\n    val = value.replace(spRegexp, '_').length;\n  }\n  if (len) {\n    if (val !== rule.len) {\n      errors.push(util.format(options.messages[key].len, rule.fullField, rule.len));\n    }\n  } else if (min && !max && val < rule.min) {\n    errors.push(util.format(options.messages[key].min, rule.fullField, rule.min));\n  } else if (max && !min && val > rule.max) {\n    errors.push(util.format(options.messages[key].max, rule.fullField, rule.max));\n  } else if (min && max && (val < rule.min || val > rule.max)) {\n    errors.push(util.format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n  }\n}\n\nexport default range;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/rule/range.js\n// module id = null\n// module chunks = ","import * as util from '../util';\nvar ENUM = 'enum';\n\n/**\n *  Rule for validating a value exists in an enumerable list.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, source, errors, options) {\n  rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n  if (rule[ENUM].indexOf(value) === -1) {\n    errors.push(util.format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n  }\n}\n\nexport default enumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/rule/enum.js\n// module id = null\n// module chunks = ","import * as util from '../util';\n\n/**\n *  Rule for validating a regular expression pattern.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction pattern(rule, value, source, errors, options) {\n  if (rule.pattern) {\n    if (rule.pattern instanceof RegExp) {\n      // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n      // flag is accidentally set to `true`, which in a validation scenario\n      // is not necessary and the result might be misleading\n      rule.pattern.lastIndex = 0;\n      if (!rule.pattern.test(value)) {\n        errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    } else if (typeof rule.pattern === 'string') {\n      var _pattern = new RegExp(rule.pattern);\n      if (!_pattern.test(value)) {\n        errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    }\n  }\n}\n\nexport default pattern;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/rule/pattern.js\n// module id = null\n// module chunks = ","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n  required: required,\n  whitespace: whitespace,\n  type: type,\n  range: range,\n  'enum': enumRule,\n  pattern: pattern\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/rule/index.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n *  Validates an object.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction object(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default object;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/object.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\nvar ENUM = 'enum';\n\n/**\n *  Validates an enumerable list.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction enumerable(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value) {\n      rules[ENUM](rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default enumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/enum.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\nfunction type(rule, value, callback, source, options) {\n  var ruleType = rule.type;\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, ruleType) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, ruleType);\n    if (!isEmptyValue(value, ruleType)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default type;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/type.js\n// module id = null\n// module chunks = ","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\n\nexport default {\n  string: string,\n  method: method,\n  number: number,\n  boolean: boolean,\n  regexp: regexp,\n  integer: integer,\n  float: float,\n  array: array,\n  object: object,\n  'enum': enumValidator,\n  pattern: pattern,\n  date: date,\n  url: type,\n  hex: type,\n  email: type,\n  required: required\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/index.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n *  Performs validation for string types.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction string(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'string');\n    if (!isEmptyValue(value, 'string')) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n      rules.pattern(rule, value, source, errors, options);\n      if (rule.whitespace === true) {\n        rules.whitespace(rule, value, source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n}\n\nexport default string;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/string.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n *  Validates a function.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction method(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default method;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/method.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n *  Validates a number.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction number(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default number;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/number.js\n// module id = null\n// module chunks = ","import { isEmptyValue } from '../util';\nimport rules from '../rule/';\n\n/**\n *  Validates a boolean.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction boolean(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default boolean;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/boolean.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n *  Validates the regular expression type.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction regexp(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default regexp;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/regexp.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n *  Validates a number is an integer.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction integer(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default integer;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/integer.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n *  Validates a number is a floating point number.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction floatFn(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default floatFn;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/float.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n/**\n *  Validates an array.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction array(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, 'array') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'array');\n    if (!isEmptyValue(value, 'array')) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default array;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/array.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\n/**\n *  Validates a regular expression pattern.\n *\n *  Performs validation when a rule only contains\n *  a pattern property but is not declared as a string type.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param callback The callback function.\n *  @param source The source object being validated.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nfunction pattern(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'string')) {\n      rules.pattern(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n}\n\nexport default pattern;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/pattern.js\n// module id = null\n// module chunks = ","import rules from '../rule/';\nimport { isEmptyValue } from '../util';\n\nfunction date(rule, value, callback, source, options) {\n  // console.log('integer rule called %j', rule);\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  // console.log('validate on %s value', value);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value)) {\n      var dateObject = void 0;\n\n      if (typeof value === 'number') {\n        dateObject = new Date(value);\n      } else {\n        dateObject = value;\n      }\n\n      rules.type(rule, dateObject, source, errors, options);\n      if (dateObject) {\n        rules.range(rule, dateObject.getTime(), source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n}\n\nexport default date;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/date.js\n// module id = null\n// module chunks = ","import _typeof from 'babel-runtime/helpers/typeof';\nimport rules from '../rule/';\n\nfunction required(rule, value, callback, source, options) {\n  var errors = [];\n  var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : _typeof(value);\n  rules.required(rule, value, source, errors, options, type);\n  callback(errors);\n}\n\nexport default required;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/validator/required.js\n// module id = null\n// module chunks = ","export function newMessages() {\n  return {\n    'default': 'Validation error on field %s',\n    required: '%s is required',\n    'enum': '%s must be one of %s',\n    whitespace: '%s cannot be empty',\n    date: {\n      format: '%s date %s is invalid for format %s',\n      parse: '%s date could not be parsed, %s is invalid ',\n      invalid: '%s date %s is invalid'\n    },\n    types: {\n      string: '%s is not a %s',\n      method: '%s is not a %s (function)',\n      array: '%s is not an %s',\n      object: '%s is not an %s',\n      number: '%s is not a %s',\n      date: '%s is not a %s',\n      boolean: '%s is not a %s',\n      integer: '%s is not an %s',\n      float: '%s is not a %s',\n      regexp: '%s is not a valid %s',\n      email: '%s is not a valid %s',\n      url: '%s is not a valid %s',\n      hex: '%s is not a valid %s'\n    },\n    string: {\n      len: '%s must be exactly %s characters',\n      min: '%s must be at least %s characters',\n      max: '%s cannot be longer than %s characters',\n      range: '%s must be between %s and %s characters'\n    },\n    number: {\n      len: '%s must equal %s',\n      min: '%s cannot be less than %s',\n      max: '%s cannot be greater than %s',\n      range: '%s must be between %s and %s'\n    },\n    array: {\n      len: '%s must be exactly %s in length',\n      min: '%s cannot be less than %s in length',\n      max: '%s cannot be greater than %s in length',\n      range: '%s must be between %s and %s in length'\n    },\n    pattern: {\n      mismatch: '%s value %s does not match pattern %s'\n    },\n    clone: function clone() {\n      var cloned = JSON.parse(JSON.stringify(this));\n      cloned.clone = this.clone;\n      return cloned;\n    }\n  };\n}\n\nexport var messages = newMessages();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/messages.js\n// module id = null\n// module chunks = ","import _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport { format, complementError, asyncMap, warning, deepMerge } from './util';\nimport validators from './validator/';\nimport { messages as defaultMessages, newMessages } from './messages';\n\n/**\n *  Encapsulates a validation schema.\n *\n *  @param descriptor An object declaring validation rules\n *  for this schema.\n */\nfunction Schema(descriptor) {\n  this.rules = null;\n  this._messages = defaultMessages;\n  this.define(descriptor);\n}\n\nSchema.prototype = {\n  messages: function messages(_messages) {\n    if (_messages) {\n      this._messages = deepMerge(newMessages(), _messages);\n    }\n    return this._messages;\n  },\n  define: function define(rules) {\n    if (!rules) {\n      throw new Error('Cannot configure a schema with no rules');\n    }\n    if ((typeof rules === 'undefined' ? 'undefined' : _typeof(rules)) !== 'object' || Array.isArray(rules)) {\n      throw new Error('Rules must be an object');\n    }\n    this.rules = {};\n    var z = void 0;\n    var item = void 0;\n    for (z in rules) {\n      if (rules.hasOwnProperty(z)) {\n        item = rules[z];\n        this.rules[z] = Array.isArray(item) ? item : [item];\n      }\n    }\n  },\n  validate: function validate(source_) {\n    var _this = this;\n\n    var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var oc = arguments[2];\n\n    var source = source_;\n    var options = o;\n    var callback = oc;\n    if (typeof options === 'function') {\n      callback = options;\n      options = {};\n    }\n    if (!this.rules || Object.keys(this.rules).length === 0) {\n      if (callback) {\n        callback();\n      }\n      return;\n    }\n    function complete(results) {\n      var i = void 0;\n      var field = void 0;\n      var errors = [];\n      var fields = {};\n\n      function add(e) {\n        if (Array.isArray(e)) {\n          errors = errors.concat.apply(errors, e);\n        } else {\n          errors.push(e);\n        }\n      }\n\n      for (i = 0; i < results.length; i++) {\n        add(results[i]);\n      }\n      if (!errors.length) {\n        errors = null;\n        fields = null;\n      } else {\n        for (i = 0; i < errors.length; i++) {\n          field = errors[i].field;\n          fields[field] = fields[field] || [];\n          fields[field].push(errors[i]);\n        }\n      }\n      callback(errors, fields);\n    }\n\n    if (options.messages) {\n      var messages = this.messages();\n      if (messages === defaultMessages) {\n        messages = newMessages();\n      }\n      deepMerge(messages, options.messages);\n      options.messages = messages;\n    } else {\n      options.messages = this.messages();\n    }\n    var arr = void 0;\n    var value = void 0;\n    var series = {};\n    var keys = options.keys || Object.keys(this.rules);\n    keys.forEach(function (z) {\n      arr = _this.rules[z];\n      value = source[z];\n      arr.forEach(function (r) {\n        var rule = r;\n        if (typeof rule.transform === 'function') {\n          if (source === source_) {\n            source = _extends({}, source);\n          }\n          value = source[z] = rule.transform(value);\n        }\n        if (typeof rule === 'function') {\n          rule = {\n            validator: rule\n          };\n        } else {\n          rule = _extends({}, rule);\n        }\n        rule.validator = _this.getValidationMethod(rule);\n        rule.field = z;\n        rule.fullField = rule.fullField || z;\n        rule.type = _this.getType(rule);\n        if (!rule.validator) {\n          return;\n        }\n        series[z] = series[z] || [];\n        series[z].push({\n          rule: rule,\n          value: value,\n          source: source,\n          field: z\n        });\n      });\n    });\n    var errorFields = {};\n    asyncMap(series, options, function (data, doIt) {\n      var rule = data.rule;\n      var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object');\n      deep = deep && (rule.required || !rule.required && data.value);\n      rule.field = data.field;\n      function addFullfield(key, schema) {\n        return _extends({}, schema, {\n          fullField: rule.fullField + '.' + key\n        });\n      }\n\n      function cb() {\n        var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n        var errors = e;\n        if (!Array.isArray(errors)) {\n          errors = [errors];\n        }\n        if (errors.length) {\n          warning('async-validator:', errors);\n        }\n        if (errors.length && rule.message) {\n          errors = [].concat(rule.message);\n        }\n\n        errors = errors.map(complementError(rule));\n\n        if (options.first && errors.length) {\n          errorFields[rule.field] = 1;\n          return doIt(errors);\n        }\n        if (!deep) {\n          doIt(errors);\n        } else {\n          // if rule is required but the target object\n          // does not exist fail at the rule level and don't\n          // go deeper\n          if (rule.required && !data.value) {\n            if (rule.message) {\n              errors = [].concat(rule.message).map(complementError(rule));\n            } else if (options.error) {\n              errors = [options.error(rule, format(options.messages.required, rule.field))];\n            } else {\n              errors = [];\n            }\n            return doIt(errors);\n          }\n\n          var fieldsSchema = {};\n          if (rule.defaultField) {\n            for (var k in data.value) {\n              if (data.value.hasOwnProperty(k)) {\n                fieldsSchema[k] = rule.defaultField;\n              }\n            }\n          }\n          fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);\n          for (var f in fieldsSchema) {\n            if (fieldsSchema.hasOwnProperty(f)) {\n              var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];\n              fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));\n            }\n          }\n          var schema = new Schema(fieldsSchema);\n          schema.messages(options.messages);\n          if (data.rule.options) {\n            data.rule.options.messages = options.messages;\n            data.rule.options.error = options.error;\n          }\n          schema.validate(data.value, data.rule.options || options, function (errs) {\n            doIt(errs && errs.length ? errors.concat(errs) : errs);\n          });\n        }\n      }\n\n      var res = rule.validator(rule, data.value, cb, data.source, options);\n      if (res && res.then) {\n        res.then(function () {\n          return cb();\n        }, function (e) {\n          return cb(e);\n        });\n      }\n    }, function (results) {\n      complete(results);\n    });\n  },\n  getType: function getType(rule) {\n    if (rule.type === undefined && rule.pattern instanceof RegExp) {\n      rule.type = 'pattern';\n    }\n    if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n      throw new Error(format('Unknown rule type %s', rule.type));\n    }\n    return rule.type || 'string';\n  },\n  getValidationMethod: function getValidationMethod(rule) {\n    if (typeof rule.validator === 'function') {\n      return rule.validator;\n    }\n    var keys = Object.keys(rule);\n    var messageIndex = keys.indexOf('message');\n    if (messageIndex !== -1) {\n      keys.splice(messageIndex, 1);\n    }\n    if (keys.length === 1 && keys[0] === 'required') {\n      return validators.required;\n    }\n    return validators[this.getType(rule)] || false;\n  }\n};\n\nSchema.register = function register(type, validator) {\n  if (typeof validator !== 'function') {\n    throw new Error('Cannot register a validator by type, validator is not a function');\n  }\n  validators[type] = validator;\n};\n\nSchema.messages = defaultMessages;\n\nexport default Schema;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_async-validator@1.8.5@async-validator/es/index.js\n// module id = null\n// module chunks = ","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim;\n}\n/**\n * @param {string} seriesType\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n  var width = api.getWidth();\n  var height = api.getHeight();\n  var lastStackCoords = {};\n  var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n    return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n  }));\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    // Check series coordinate, do layout for polar only\n    if (seriesModel.coordinateSystem.type !== 'polar') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = polar.getOtherAxis(baseAxis);\n    var center = seriesModel.get('center') || ['50%', '50%'];\n    var cx = parsePercent(center[0], width);\n    var cy = parsePercent(center[1], height);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    var barMinAngle = seriesModel.get('barMinAngle') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim\n    /*, baseDim*/\n    );\n    var valueAxisStart = valueAxis.getExtent()[0];\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n\n      if (isNaN(value)) {\n        continue;\n      }\n\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n      // stackResultDimension directly.\n      // Only ordinal axis can be stacked.\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            // Positive stack\n            n: valueAxisStart // Negative stack\n\n          };\n        } // Should also consider #4243\n\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var r0;\n      var r;\n      var startAngle;\n      var endAngle; // radial sector\n\n      if (valueAxis.dim === 'radius') {\n        var radiusSpan = valueAxis.dataToRadius(value) - valueAxisStart;\n        var angle = baseAxis.dataToAngle(baseValue);\n\n        if (Math.abs(radiusSpan) < barMinHeight) {\n          radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        r0 = baseCoord;\n        r = baseCoord + radiusSpan;\n        startAngle = angle - columnOffset;\n        endAngle = startAngle - columnWidth;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n      } // tangential sector\n      else {\n          // angleAxis must be clamped.\n          var angleSpan = valueAxis.dataToAngle(value, true) - valueAxisStart;\n          var radius = baseAxis.dataToRadius(baseValue);\n\n          if (Math.abs(angleSpan) < barMinAngle) {\n            angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n          }\n\n          r0 = radius + columnOffset;\n          r = r0 + columnWidth;\n          startAngle = baseCoord;\n          endAngle = baseCoord + angleSpan; // if the previous stack is at the end of the ring,\n          // add a round to differentiate it from origin\n          // var extent = angleAxis.getExtent();\n          // var stackCoord = angle;\n          // if (stackCoord === extent[0] && value > 0) {\n          //     stackCoord = extent[1];\n          // }\n          // else if (stackCoord === extent[1] && value < 0) {\n          //     stackCoord = extent[0];\n          // }\n\n          stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n        }\n\n      data.setItemLayout(idx, {\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: r,\n        // Consider that positive angle is anti-clockwise,\n        // while positive radian of sector is clockwise\n        startAngle: -startAngle * Math.PI / 180,\n        endAngle: -endAngle * Math.PI / 180\n      });\n    }\n  }, this);\n}\n/**\n * Calculate bar width and offset for radial bar charts\n */\n\n\nfunction calRadialBar(barSeries, api) {\n  // Columns info on each category axis. Key is polar name\n  var columnsMap = {};\n  zrUtil.each(barSeries, function (seriesModel, idx) {\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    var columnsOnAxis = columnsMap[getAxisKey(baseAxis)] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: '20%',\n      gap: '30%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[getAxisKey(baseAxis)] = columnsOnAxis;\n    var stackId = getSeriesStackId(seriesModel);\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n\n    if (barWidth && !stacks[stackId].width) {\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      stacks[stackId].width = barWidth;\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    barGap != null && (columnsOnAxis.gap = barGap);\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n    zrUtil.each(stacks, function (column, stack) {\n      var maxWidth = column.maxWidth;\n\n      if (maxWidth && maxWidth < autoWidth) {\n        maxWidth = Math.min(maxWidth, remainedWidth);\n\n        if (column.width) {\n          maxWidth = Math.min(maxWidth, column.width);\n        }\n\n        remainedWidth -= maxWidth;\n        column.width = maxWidth;\n        autoWidthCount--;\n      }\n    }); // Recalculate width again\n\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nvar _default = barLayoutPolar;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/layout/barPolar.js\n// module id = f4MR\n// module chunks = 0","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-dps.js\n// module id = f4eo\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar map = _util.map;\n\nvar _number = require(\"../util/number\");\n\nvar linearMap = _number.linearMap;\nvar getPixelPrecision = _number.getPixelPrecision;\n\nvar _axisTickLabelBuilder = require(\"./axisTickLabelBuilder\");\n\nvar createAxisTicks = _axisTickLabelBuilder.createAxisTicks;\nvar createAxisLabels = _axisTickLabelBuilder.createAxisLabels;\nvar calculateCategoryInterval = _axisTickLabelBuilder.calculateCategoryInterval;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar NORMALIZED_EXTENT = [0, 1];\n/**\n * Base class of Axis.\n * @constructor\n */\n\nvar Axis = function (dim, scale, extent) {\n  /**\n   * Axis dimension. Such as 'x', 'y', 'z', 'angle', 'radius'.\n   * @type {string}\n   */\n  this.dim = dim;\n  /**\n   * Axis scale\n   * @type {module:echarts/coord/scale/*}\n   */\n\n  this.scale = scale;\n  /**\n   * @type {Array.<number>}\n   * @private\n   */\n\n  this._extent = extent || [0, 0];\n  /**\n   * @type {boolean}\n   */\n\n  this.inverse = false;\n  /**\n   * Usually true when axis has a ordinal scale\n   * @type {boolean}\n   */\n\n  this.onBand = false;\n};\n\nAxis.prototype = {\n  constructor: Axis,\n\n  /**\n   * If axis extent contain given coord\n   * @param {number} coord\n   * @return {boolean}\n   */\n  contain: function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  },\n\n  /**\n   * If axis extent contain given data\n   * @param {number} data\n   * @return {boolean}\n   */\n  containData: function (data) {\n    return this.contain(this.dataToCoord(data));\n  },\n\n  /**\n   * Get coord extent.\n   * @return {Array.<number>}\n   */\n  getExtent: function () {\n    return this._extent.slice();\n  },\n\n  /**\n   * Get precision used for formatting\n   * @param {Array.<number>} [dataExtent]\n   * @return {number}\n   */\n  getPixelPrecision: function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  },\n\n  /**\n   * Set coord extent\n   * @param {number} start\n   * @param {number} end\n   */\n  setExtent: function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  },\n\n  /**\n   * Convert data to coord. Data is the rank if it has an ordinal scale\n   * @param {number} data\n   * @param  {boolean} clamp\n   * @return {number}\n   */\n  dataToCoord: function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  },\n\n  /**\n   * Convert coord to data. Data is the rank if it has an ordinal scale\n   * @param {number} coord\n   * @param  {boolean} clamp\n   * @return {number}\n   */\n  coordToData: function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  },\n\n  /**\n   * Convert pixel point to data in axis\n   * @param {Array.<number>} point\n   * @param  {boolean} clamp\n   * @return {number} data\n   */\n  pointToData: function (point, clamp) {// Should be implemented in derived class if necessary.\n  },\n\n  /**\n   * Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`,\n   * `axis.getTicksCoords` considers `onBand`, which is used by\n   * `boundaryGap:true` of category axis and splitLine and splitArea.\n   * @param {Object} [opt]\n   * @param {number} [opt.tickModel=axis.model.getModel('axisTick')]\n   * @param {boolean} [opt.clamp] If `true`, the first and the last\n   *        tick must be at the axis end points. Otherwise, clip ticks\n   *        that outside the axis extent.\n   * @return {Array.<Object>} [{\n   *     coord: ...,\n   *     tickValue: ...\n   * }, ...]\n   */\n  getTicksCoords: function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickValue) {\n      return {\n        coord: this.dataToCoord(tickValue),\n        tickValue: tickValue\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, result.tickCategoryInterval, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  },\n\n  /**\n   * @return {Array.<Object>} [{\n   *     formattedLabel: string,\n   *     rawLabel: axis.scale.getLabel(tickValue)\n   *     tickValue: number\n   * }, ...]\n   */\n  getViewLabels: function () {\n    return createAxisLabels(this).labels;\n  },\n\n  /**\n   * @return {module:echarts/coord/model/Model}\n   */\n  getLabelModel: function () {\n    return this.model.getModel('axisLabel');\n  },\n\n  /**\n   * Notice here we only get the default tick model. For splitLine\n   * or splitArea, we should pass the splitLineModel or splitAreaModel\n   * manually when calling `getTicksCoords`.\n   * In GL, this method may be overrided to:\n   * `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));`\n   * @return {module:echarts/coord/model/Model}\n   */\n  getTickModel: function () {\n    return this.model.getModel('axisTick');\n  },\n\n  /**\n   * Get width of band\n   * @return {number}\n   */\n  getBandWidth: function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0); // Fix #2728, avoid NaN when only one data.\n\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  },\n\n  /**\n   * @abstract\n   * @return {boolean} Is horizontal\n   */\n  isHorizontal: null,\n\n  /**\n   * @abstract\n   * @return {number} Get axis rotate, by degree.\n   */\n  getRotate: null,\n\n  /**\n   * Only be called in category axis.\n   * Can be overrided, consider other axes like in 3D.\n   * @return {number} Auto interval for cateogry axis tick and label\n   */\n  calculateCategoryInterval: function () {\n    return calculateCategoryInterval(this);\n  }\n};\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n} // If axis has labels [1, 2, 3, 4]. Bands on the axis are\n// |---1---|---2---|---3---|---4---|.\n// So the displayed ticks and splitLine/splitArea should between\n// each data item, otherwise cause misleading (e.g., split tow bars\n// of a single data item when there are two bar series).\n// Also consider if tickCategoryInterval > 0 and onBand, ticks and\n// splitLine/spliteArea should layout appropriately corresponding\n// to displayed labels. (So we should not use `getBandWidth` in this\n// case).\n\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, tickCategoryInterval, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var shift = ticksCoords[1].coord - ticksCoords[0].coord;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift / 2;\n      var tickCategoryInterval = tickCategoryInterval || 0; // Avoid split a single data item when odd interval.\n\n      if (tickCategoryInterval % 2 > 0) {\n        ticksItem.coord -= shift / ((tickCategoryInterval + 1) * 2);\n      }\n    });\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    return inverse ? a > b : a < b;\n  }\n}\n\nvar _default = Axis;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/Axis.js\n// module id = fAuK\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _helper = require(\"./helper\");\n\nvar setLabel = _helper.setLabel;\n\nvar Model = require(\"../../model/Model\");\n\nvar barItemStyle = require(\"./barItemStyle\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'barBorderWidth']; // FIXME\n// Just for compatible with ec2.\n\nzrUtil.extend(Model.prototype, barItemStyle);\n\nvar _default = echarts.extendChartView({\n  type: 'bar',\n  render: function (seriesModel, ecModel, api) {\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api);\n    } else {}\n\n    return this.group;\n  },\n  incrementalPrepareRender: function (seriesModel, ecModel, api) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n  },\n  incrementalRender: function (params, seriesModel, ecModel, api) {\n    // Do not support progressive in normal mode.\n    this._incrementalRenderLarge(params, seriesModel);\n  },\n  _updateDrawMode: function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  },\n  _renderNormal: function (seriesModel, ecModel, api) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    data.diff(oldData).add(function (dataIndex) {\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n      var el = elementCreator[coord.type](data, dataIndex, itemModel, layout, isHorizontalOrRadial, animationModel);\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n    }).update(function (newIndex, oldIndex) {\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        return;\n      }\n\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (el) {\n        graphic.updateProps(el, {\n          shape: layout\n        }, animationModel, newIndex);\n      } else {\n        el = elementCreator[coord.type](data, newIndex, itemModel, layout, isHorizontalOrRadial, animationModel, true);\n      }\n\n      data.setItemGraphicEl(newIndex, el); // Add back\n\n      group.add(el);\n      updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n\n      if (coord.type === 'cartesian2d') {\n        el && removeRect(dataIndex, animationModel, el);\n      } else {\n        el && removeSector(dataIndex, animationModel, el);\n      }\n    }).execute();\n    this._data = data;\n  },\n  _renderLarge: function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n  },\n  _incrementalRenderLarge: function (params, seriesModel) {\n    createLarge(seriesModel, this.group, true);\n  },\n  dispose: zrUtil.noop,\n  remove: function (ecModel) {\n    this._clear(ecModel);\n  },\n  _clear: function (ecModel) {\n    var group = this.group;\n    var data = this._data;\n\n    if (ecModel && ecModel.get('animation') && data && !this._isLargeDraw) {\n      data.eachItemGraphicEl(function (el) {\n        if (el.type === 'sector') {\n          removeSector(el.dataIndex, ecModel, el);\n        } else {\n          removeRect(el.dataIndex, ecModel, el);\n        }\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n  }\n});\n\nvar elementCreator = {\n  cartesian2d: function (data, dataIndex, itemModel, layout, isHorizontal, animationModel, isUpdate) {\n    var rect = new graphic.Rect({\n      shape: zrUtil.extend({}, layout)\n    }); // Animation\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      var animateTarget = {};\n      rectShape[animateProperty] = 0;\n      animateTarget[animateProperty] = layout[animateProperty];\n      graphic[isUpdate ? 'updateProps' : 'initProps'](rect, {\n        shape: animateTarget\n      }, animationModel, dataIndex);\n    }\n\n    return rect;\n  },\n  polar: function (data, dataIndex, itemModel, layout, isRadial, animationModel, isUpdate) {\n    // Keep the same logic with bar in catesion: use end value to control\n    // direction. Notice that if clockwise is true (by default), the sector\n    // will always draw clockwisely, no matter whether endAngle is greater\n    // or less than startAngle.\n    var clockwise = layout.startAngle < layout.endAngle;\n    var sector = new graphic.Sector({\n      shape: zrUtil.defaults({\n        clockwise: clockwise\n      }, layout)\n    }); // Animation\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      graphic[isUpdate ? 'updateProps' : 'initProps'](sector, {\n        shape: animateTarget\n      }, animationModel, dataIndex);\n    }\n\n    return sector;\n  }\n};\n\nfunction removeRect(dataIndex, animationModel, el) {\n  // Not show text when animating\n  el.style.text = null;\n  graphic.updateProps(el, {\n    shape: {\n      width: 0\n    }\n  }, animationModel, dataIndex, function () {\n    el.parent && el.parent.remove(el);\n  });\n}\n\nfunction removeSector(dataIndex, animationModel, el) {\n  // Not show text when animating\n  el.style.text = null;\n  graphic.updateProps(el, {\n    shape: {\n      r: el.shape.r0\n    }\n  }, animationModel, dataIndex, function () {\n    el.parent && el.parent.remove(el);\n  });\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = getLineWidth(itemModel, layout); // fix layout with lineWidth\n\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var color = data.getItemVisual(dataIndex, 'color');\n  var opacity = data.getItemVisual(dataIndex, 'opacity');\n  var itemStyleModel = itemModel.getModel('itemStyle');\n  var hoverStyle = itemModel.getModel('emphasis.itemStyle').getBarItemStyle();\n\n  if (!isPolar) {\n    el.setShape('r', itemStyleModel.get('barBorderRadius') || 0);\n  }\n\n  el.useStyle(zrUtil.defaults({\n    fill: color,\n    opacity: opacity\n  }, itemStyleModel.getBarItemStyle()));\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n  var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n\n  if (!isPolar) {\n    setLabel(el.style, hoverStyle, itemModel, color, seriesModel, dataIndex, labelPositionOutside);\n  }\n\n  graphic.setHoverStyle(el, hoverStyle);\n} // In case width or height are too small.\n\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  return Math.min(lineWidth, Math.abs(rawLayout.width), Math.abs(rawLayout.height));\n}\n\nvar LargePath = Path.extend({\n  type: 'largeBar',\n  shape: {\n    points: []\n  },\n  buildPath: function (ctx, shape) {\n    // Drawing lines is more efficient than drawing\n    // a whole line or drawing rects.\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var valueIdx = this.__valueIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[this.__valueIdx] = points[i + valueIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  }\n});\n\nfunction createLarge(seriesModel, group, incremental) {\n  // TODO support polar\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var valueIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - valueIdx] = data.getLayout('valueAxisStart');\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental,\n    __startPoint: startPoint,\n    __valueIdx: valueIdx\n  });\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var borderColor = data.getVisual('borderColor') || data.getVisual('color');\n  var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(['color', 'borderColor']);\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/bar/BarView.js\n// module id = fCzW\n// module chunks = 0","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/cancel/Cancel.js\n// module id = fEpO\n// module chunks = 0","var Path = require(\"../Path\");\n\nvar vec2 = require(\"../../core/vector\");\n\nvar _curve = require(\"../../core/curve\");\n\nvar quadraticSubdivide = _curve.quadraticSubdivide;\nvar cubicSubdivide = _curve.cubicSubdivide;\nvar quadraticAt = _curve.quadraticAt;\nvar cubicAt = _curve.cubicAt;\nvar quadraticDerivativeAt = _curve.quadraticDerivativeAt;\nvar cubicDerivativeAt = _curve.cubicDerivativeAt;\n\n/**\n * 璐濆灏旀洸绾縗n * @module zrender/shape/BezierCurve\n */\nvar out = [];\n\nfunction someVectorAt(shape, t, isTangent) {\n  var cpx2 = shape.cpx2;\n  var cpy2 = shape.cpy2;\n\n  if (cpx2 === null || cpy2 === null) {\n    return [(isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t), (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)];\n  } else {\n    return [(isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t), (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)];\n  }\n}\n\nvar _default = Path.extend({\n  type: 'bezier-curve',\n  shape: {\n    x1: 0,\n    y1: 0,\n    x2: 0,\n    y2: 0,\n    cpx1: 0,\n    cpy1: 0,\n    // cpx2: 0,\n    // cpy2: 0\n    // Curve show percent, for animating\n    percent: 1\n  },\n  style: {\n    stroke: '#000',\n    fill: null\n  },\n  buildPath: function (ctx, shape) {\n    var x1 = shape.x1;\n    var y1 = shape.y1;\n    var x2 = shape.x2;\n    var y2 = shape.y2;\n    var cpx1 = shape.cpx1;\n    var cpy1 = shape.cpy1;\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    var percent = shape.percent;\n\n    if (percent === 0) {\n      return;\n    }\n\n    ctx.moveTo(x1, y1);\n\n    if (cpx2 == null || cpy2 == null) {\n      if (percent < 1) {\n        quadraticSubdivide(x1, cpx1, x2, percent, out);\n        cpx1 = out[1];\n        x2 = out[2];\n        quadraticSubdivide(y1, cpy1, y2, percent, out);\n        cpy1 = out[1];\n        y2 = out[2];\n      }\n\n      ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n    } else {\n      if (percent < 1) {\n        cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n        cpx1 = out[1];\n        cpx2 = out[2];\n        x2 = out[3];\n        cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n        cpy1 = out[1];\n        cpy2 = out[2];\n        y2 = out[3];\n      }\n\n      ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n    }\n  },\n\n  /**\n   * Get point at percent\n   * @param  {number} t\n   * @return {Array.<number>}\n   */\n  pointAt: function (t) {\n    return someVectorAt(this.shape, t, false);\n  },\n\n  /**\n   * Get tangent at percent\n   * @param  {number} t\n   * @return {Array.<number>}\n   */\n  tangentAt: function (t) {\n    var p = someVectorAt(this.shape, t, true);\n    return vec2.normalize(p, p);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/BezierCurve.js\n// module id = fGNZ\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar Model = require(\"../../model/Model\");\n\nvar selectableMixin = require(\"../../component/helper/selectableMixin\");\n\nvar geoCreator = require(\"./geoCreator\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GeoModel = ComponentModel.extend({\n  type: 'geo',\n\n  /**\n   * @type {module:echarts/coord/geo/Geo}\n   */\n  coordinateSystem: null,\n  layoutMode: 'box',\n  init: function (option) {\n    ComponentModel.prototype.init.apply(this, arguments); // Default label emphasis `show`\n\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n  },\n  optionUpdated: function () {\n    var option = this.option;\n    var self = this;\n    option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n    this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n      if (regionOpt.name) {\n        optionModelMap.set(regionOpt.name, new Model(regionOpt, self));\n      }\n\n      return optionModelMap;\n    }, zrUtil.createHashMap());\n    this.updateSelectedMap(option.regions);\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 0,\n    show: true,\n    left: 'center',\n    top: 'center',\n    // width:,\n    // height:,\n    // right\n    // bottom\n    // Aspect is width / height. Inited to be geoJson bbox aspect\n    // This parameter is used for scale this aspect\n    aspectScale: 0.75,\n    ///// Layout with center and size\n    // If you wan't to put map in a fixed size box with right aspect ratio\n    // This two properties may more conveninet\n    // layoutCenter: [50%, 50%]\n    // layoutSize: 100\n    silent: false,\n    // Map type\n    map: '',\n    // Define left-top, right-bottom coords to control view\n    // For example, [ [180, 90], [-180, -90] ]\n    boundingCoords: null,\n    // Default on center of map\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    // selectedMode: false\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      // color: 鍚勫紓,\n      borderWidth: 0.5,\n      borderColor: '#444',\n      color: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    regions: []\n  },\n\n  /**\n   * Get model of region\n   * @param  {string} name\n   * @return {module:echarts/model/Model}\n   */\n  getRegionModel: function (name) {\n    return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n  },\n\n  /**\n   * Format label\n   * @param {string} name Region name\n   * @param {string} [status='normal'] 'normal' or 'emphasis'\n   * @return {string}\n   */\n  getFormattedLabel: function (name, status) {\n    var regionModel = this.getRegionModel(name);\n    var formatter = regionModel.get('label.' + status + '.formatter');\n    var params = {\n      name: name\n    };\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      return formatter.replace('{a}', name != null ? name : '');\n    }\n  },\n  setZoom: function (zoom) {\n    this.option.zoom = zoom;\n  },\n  setCenter: function (center) {\n    this.option.center = center;\n  }\n});\nzrUtil.mixin(GeoModel, selectableMixin);\nvar _default = GeoModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/GeoModel.js\n// module id = fUzA\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (legendModels && legendModels.length) {\n    ecModel.filterSeries(function (series) {\n      // If in any legend component the status is not selected.\n      // Because in legend series is assumed selected when it is not in the legend data.\n      for (var i = 0; i < legendModels.length; i++) {\n        if (!legendModels[i].isSelected(series.name)) {\n          return false;\n        }\n      }\n\n      return true;\n    });\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legend/legendFilter.js\n// module id = faZ2\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar _graphic = require(\"../../util/graphic\");\n\nvar Group = _graphic.Group;\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar SymbolClz = require(\"./Symbol\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Symbol with ripple effect\n * @module echarts/chart/helper/EffectSymbol\n */\nvar EFFECT_RIPPLE_NUMBER = 3;\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n  rippleGroup.eachChild(function (ripplePath) {\n    ripplePath.attr({\n      z: effectCfg.z,\n      zlevel: effectCfg.zlevel,\n      style: {\n        stroke: effectCfg.brushType === 'stroke' ? effectCfg.color : null,\n        fill: effectCfg.brushType === 'fill' ? effectCfg.color : null\n      }\n    });\n  });\n}\n/**\n * @constructor\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @extends {module:zrender/graphic/Group}\n */\n\n\nfunction EffectSymbol(data, idx) {\n  Group.call(this);\n  var symbol = new SymbolClz(data, idx);\n  var rippleGroup = new Group();\n  this.add(symbol);\n  this.add(rippleGroup);\n\n  rippleGroup.beforeUpdate = function () {\n    this.attr(symbol.getScale());\n  };\n\n  this.updateData(data, idx);\n}\n\nvar effectSymbolProto = EffectSymbol.prototype;\n\neffectSymbolProto.stopEffectAnimation = function () {\n  this.childAt(1).removeAll();\n};\n\neffectSymbolProto.startEffectAnimation = function (effectCfg) {\n  var symbolType = effectCfg.symbolType;\n  var color = effectCfg.color;\n  var rippleGroup = this.childAt(1);\n\n  for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\n    // var ripplePath = createSymbol(\n    //     symbolType, -0.5, -0.5, 1, 1, color\n    // );\n    // If width/height are set too small (e.g., set to 1) on ios10\n    // and macOS Sierra, a circle stroke become a rect, no matter what\n    // the scale is set. So we set width/height as 2. See #4136.\n    var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n    ripplePath.attr({\n      style: {\n        strokeNoScale: true\n      },\n      z2: 99,\n      silent: true,\n      scale: [0.5, 0.5]\n    });\n    var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset; // TODO Configurable effectCfg.period\n\n    ripplePath.animate('', true).when(effectCfg.period, {\n      scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\n    }).delay(delay).start();\n    ripplePath.animateStyle(true).when(effectCfg.period, {\n      opacity: 0\n    }).delay(delay).start();\n    rippleGroup.add(ripplePath);\n  }\n\n  updateRipplePath(rippleGroup, effectCfg);\n};\n/**\n * Update effect symbol\n */\n\n\neffectSymbolProto.updateEffectAnimation = function (effectCfg) {\n  var oldEffectCfg = this._effectCfg;\n  var rippleGroup = this.childAt(1); // Must reinitialize effect if following configuration changed\n\n  var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\n\n  for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n    var propName = DIFFICULT_PROPS[i];\n\n    if (oldEffectCfg[propName] !== effectCfg[propName]) {\n      this.stopEffectAnimation();\n      this.startEffectAnimation(effectCfg);\n      return;\n    }\n  }\n\n  updateRipplePath(rippleGroup, effectCfg);\n};\n/**\n * Highlight symbol\n */\n\n\neffectSymbolProto.highlight = function () {\n  this.trigger('emphasis');\n};\n/**\n * Downplay symbol\n */\n\n\neffectSymbolProto.downplay = function () {\n  this.trigger('normal');\n};\n/**\n * Update symbol properties\n * @param  {module:echarts/data/List} data\n * @param  {number} idx\n */\n\n\neffectSymbolProto.updateData = function (data, idx) {\n  var seriesModel = data.hostModel;\n  this.childAt(0).updateData(data, idx);\n  var rippleGroup = this.childAt(1);\n  var itemModel = data.getItemModel(idx);\n  var symbolType = data.getItemVisual(idx, 'symbol');\n  var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n  var color = data.getItemVisual(idx, 'color');\n  rippleGroup.attr('scale', symbolSize);\n  rippleGroup.traverse(function (ripplePath) {\n    ripplePath.attr({\n      fill: color\n    });\n  });\n  var symbolOffset = itemModel.getShallow('symbolOffset');\n\n  if (symbolOffset) {\n    var pos = rippleGroup.position;\n    pos[0] = parsePercent(symbolOffset[0], symbolSize[0]);\n    pos[1] = parsePercent(symbolOffset[1], symbolSize[1]);\n  }\n\n  rippleGroup.rotation = (itemModel.getShallow('symbolRotate') || 0) * Math.PI / 180 || 0;\n  var effectCfg = {};\n  effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n  effectCfg.rippleScale = itemModel.get('rippleEffect.scale');\n  effectCfg.brushType = itemModel.get('rippleEffect.brushType');\n  effectCfg.period = itemModel.get('rippleEffect.period') * 1000;\n  effectCfg.effectOffset = idx / data.count();\n  effectCfg.z = itemModel.getShallow('z') || 0;\n  effectCfg.zlevel = itemModel.getShallow('zlevel') || 0;\n  effectCfg.symbolType = symbolType;\n  effectCfg.color = color;\n  this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n  if (effectCfg.showEffectOn === 'render') {\n    this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n    this._effectCfg = effectCfg;\n  } else {\n    // Not keep old effect config\n    this._effectCfg = null;\n    this.stopEffectAnimation();\n    var symbol = this.childAt(0);\n\n    var onEmphasis = function () {\n      symbol.highlight();\n\n      if (effectCfg.showEffectOn !== 'render') {\n        this.startEffectAnimation(effectCfg);\n      }\n    };\n\n    var onNormal = function () {\n      symbol.downplay();\n\n      if (effectCfg.showEffectOn !== 'render') {\n        this.stopEffectAnimation();\n      }\n    };\n\n    this.on('mouseover', onEmphasis, this).on('mouseout', onNormal, this).on('emphasis', onEmphasis, this).on('normal', onNormal, this);\n  }\n\n  this._effectCfg = effectCfg;\n};\n\neffectSymbolProto.fadeOut = function (cb) {\n  this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n  cb && cb();\n};\n\nzrUtil.inherits(EffectSymbol, Group);\nvar _default = EffectSymbol;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/EffectSymbol.js\n// module id = g+XA\n// module chunks = 0","/**\n * 3x2鐭╅樀鎿嶄綔绫籠n * @exports zrender/tool/matrix\n */\nvar ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array;\n/**\n * Create a identity matrix.\n * @return {Float32Array|Array.<number>}\n */\n\nfunction create() {\n  var out = new ArrayCtor(6);\n  identity(out);\n  return out;\n}\n/**\n * 璁剧疆鐭╅樀涓哄崟浣嶇煩闃礬n * @param {Float32Array|Array.<number>} out\n */\n\n\nfunction identity(out) {\n  out[0] = 1;\n  out[1] = 0;\n  out[2] = 0;\n  out[3] = 1;\n  out[4] = 0;\n  out[5] = 0;\n  return out;\n}\n/**\n * 澶嶅埗鐭╅樀\n * @param {Float32Array|Array.<number>} out\n * @param {Float32Array|Array.<number>} m\n */\n\n\nfunction copy(out, m) {\n  out[0] = m[0];\n  out[1] = m[1];\n  out[2] = m[2];\n  out[3] = m[3];\n  out[4] = m[4];\n  out[5] = m[5];\n  return out;\n}\n/**\n * 鐭╅樀鐩镐箻\n * @param {Float32Array|Array.<number>} out\n * @param {Float32Array|Array.<number>} m1\n * @param {Float32Array|Array.<number>} m2\n */\n\n\nfunction mul(out, m1, m2) {\n  // Consider matrix.mul(m, m2, m);\n  // where out is the same as m2.\n  // So use temp variable to escape error.\n  var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n  var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n  var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n  var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n  var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n  var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n  out[0] = out0;\n  out[1] = out1;\n  out[2] = out2;\n  out[3] = out3;\n  out[4] = out4;\n  out[5] = out5;\n  return out;\n}\n/**\n * 骞崇Щ鍙樻崲\n * @param {Float32Array|Array.<number>} out\n * @param {Float32Array|Array.<number>} a\n * @param {Float32Array|Array.<number>} v\n */\n\n\nfunction translate(out, a, v) {\n  out[0] = a[0];\n  out[1] = a[1];\n  out[2] = a[2];\n  out[3] = a[3];\n  out[4] = a[4] + v[0];\n  out[5] = a[5] + v[1];\n  return out;\n}\n/**\n * 鏃嬭浆鍙樻崲\n * @param {Float32Array|Array.<number>} out\n * @param {Float32Array|Array.<number>} a\n * @param {number} rad\n */\n\n\nfunction rotate(out, a, rad) {\n  var aa = a[0];\n  var ac = a[2];\n  var atx = a[4];\n  var ab = a[1];\n  var ad = a[3];\n  var aty = a[5];\n  var st = Math.sin(rad);\n  var ct = Math.cos(rad);\n  out[0] = aa * ct + ab * st;\n  out[1] = -aa * st + ab * ct;\n  out[2] = ac * ct + ad * st;\n  out[3] = -ac * st + ct * ad;\n  out[4] = ct * atx + st * aty;\n  out[5] = ct * aty - st * atx;\n  return out;\n}\n/**\n * 缂╂斁鍙樻崲\n * @param {Float32Array|Array.<number>} out\n * @param {Float32Array|Array.<number>} a\n * @param {Float32Array|Array.<number>} v\n */\n\n\nfunction scale(out, a, v) {\n  var vx = v[0];\n  var vy = v[1];\n  out[0] = a[0] * vx;\n  out[1] = a[1] * vy;\n  out[2] = a[2] * vx;\n  out[3] = a[3] * vy;\n  out[4] = a[4] * vx;\n  out[5] = a[5] * vy;\n  return out;\n}\n/**\n * 姹傞�嗙煩闃礬n * @param {Float32Array|Array.<number>} out\n * @param {Float32Array|Array.<number>} a\n */\n\n\nfunction invert(out, a) {\n  var aa = a[0];\n  var ac = a[2];\n  var atx = a[4];\n  var ab = a[1];\n  var ad = a[3];\n  var aty = a[5];\n  var det = aa * ad - ab * ac;\n\n  if (!det) {\n    return null;\n  }\n\n  det = 1.0 / det;\n  out[0] = ad * det;\n  out[1] = -ab * det;\n  out[2] = -ac * det;\n  out[3] = aa * det;\n  out[4] = (ac * aty - ad * atx) * det;\n  out[5] = (ab * atx - aa * aty) * det;\n  return out;\n}\n/**\n * Clone a new matrix.\n * @param {Float32Array|Array.<number>} a\n */\n\n\nfunction clone(a) {\n  var b = create();\n  copy(b, a);\n  return b;\n}\n\nexports.create = create;\nexports.identity = identity;\nexports.copy = copy;\nexports.mul = mul;\nexports.translate = translate;\nexports.rotate = rotate;\nexports.scale = scale;\nexports.invert = invert;\nexports.clone = clone;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/matrix.js\n// module id = g0yf\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Component = require(\"../../model/Component\");\n\nrequire(\"./AxisModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = Component.extend({\n  type: 'parallel',\n  dependencies: ['parallelAxis'],\n\n  /**\n   * @type {module:echarts/coord/parallel/Parallel}\n   */\n  coordinateSystem: null,\n\n  /**\n   * Each item like: 'dim0', 'dim1', 'dim2', ...\n   * @type {Array.<string>}\n   * @readOnly\n   */\n  dimensions: null,\n\n  /**\n   * Coresponding to dimensions.\n   * @type {Array.<number>}\n   * @readOnly\n   */\n  parallelAxisIndex: null,\n  layoutMode: 'box',\n  defaultOption: {\n    zlevel: 0,\n    z: 0,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    // width: {totalWidth} - left - right,\n    // height: {totalHeight} - top - bottom,\n    layout: 'horizontal',\n    // 'horizontal' or 'vertical'\n    // FIXME\n    // naming?\n    axisExpandable: false,\n    axisExpandCenter: null,\n    axisExpandCount: 0,\n    axisExpandWidth: 50,\n    // FIXME '10%' ?\n    axisExpandRate: 17,\n    axisExpandDebounce: 50,\n    // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full.\n    // Do not doc to user until necessary.\n    axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n    axisExpandTriggerOn: 'click',\n    // 'mousemove' or 'click'\n    parallelAxisDefault: null\n  },\n\n  /**\n   * @override\n   */\n  init: function () {\n    Component.prototype.init.apply(this, arguments);\n    this.mergeOption({});\n  },\n\n  /**\n   * @override\n   */\n  mergeOption: function (newOption) {\n    var thisOption = this.option;\n    newOption && zrUtil.merge(thisOption, newOption, true);\n\n    this._initDimensions();\n  },\n\n  /**\n   * Whether series or axis is in this coordinate system.\n   * @param {module:echarts/model/Series|module:echarts/coord/parallel/AxisModel} model\n   * @param {module:echarts/model/Global} ecModel\n   */\n  contains: function (model, ecModel) {\n    var parallelIndex = model.get('parallelIndex');\n    return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n  },\n  setAxisExpand: function (opt) {\n    zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n      if (opt.hasOwnProperty(name)) {\n        this.option[name] = opt[name];\n      }\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _initDimensions: function () {\n    var dimensions = this.dimensions = [];\n    var parallelAxisIndex = this.parallelAxisIndex = [];\n    var axisModels = zrUtil.filter(this.dependentModels.parallelAxis, function (axisModel) {\n      // Can not use this.contains here, because\n      // initialization has not been completed yet.\n      return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n    }, this);\n    zrUtil.each(axisModels, function (axisModel) {\n      dimensions.push('dim' + axisModel.get('dim'));\n      parallelAxisIndex.push(axisModel.componentIndex);\n    });\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/ParallelModel.js\n// module id = g6LA\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar List = require(\"../../data/List\");\n\nvar modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar TimelineModel = ComponentModel.extend({\n  type: 'timeline',\n  layoutMode: 'box',\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    zlevel: 0,\n    // 涓�绾у眰鍙燶n    z: 4,\n    // 浜岀骇灞傚彔\n    show: true,\n    axisType: 'time',\n    // 妯″紡鏄椂闂寸被鍨嬶紝鏀寔 value, category\n    realtime: true,\n    left: '20%',\n    top: null,\n    right: '20%',\n    bottom: 0,\n    width: null,\n    height: 40,\n    padding: 5,\n    controlPosition: 'left',\n    // 'left' 'right' 'top' 'bottom' 'none'\n    autoPlay: false,\n    rewind: false,\n    // 鍙嶅悜鎾斁\n    loop: true,\n    playInterval: 2000,\n    // 鎾斁鏃堕棿闂撮殧锛屽崟浣峬s\n    currentIndex: 0,\n    itemStyle: {},\n    label: {\n      color: '#000'\n    },\n    data: []\n  },\n\n  /**\n   * @override\n   */\n  init: function (option, parentModel, ecModel) {\n    /**\n     * @private\n     * @type {module:echarts/data/List}\n     */\n    this._data;\n    /**\n     * @private\n     * @type {Array.<string>}\n     */\n\n    this._names;\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._initData();\n  },\n\n  /**\n   * @override\n   */\n  mergeOption: function (option) {\n    TimelineModel.superApply(this, 'mergeOption', arguments);\n\n    this._initData();\n  },\n\n  /**\n   * @param {number} [currentIndex]\n   */\n  setCurrentIndex: function (currentIndex) {\n    if (currentIndex == null) {\n      currentIndex = this.option.currentIndex;\n    }\n\n    var count = this._data.count();\n\n    if (this.option.loop) {\n      currentIndex = (currentIndex % count + count) % count;\n    } else {\n      currentIndex >= count && (currentIndex = count - 1);\n      currentIndex < 0 && (currentIndex = 0);\n    }\n\n    this.option.currentIndex = currentIndex;\n  },\n\n  /**\n   * @return {number} currentIndex\n   */\n  getCurrentIndex: function () {\n    return this.option.currentIndex;\n  },\n\n  /**\n   * @return {boolean}\n   */\n  isIndexMax: function () {\n    return this.getCurrentIndex() >= this._data.count() - 1;\n  },\n\n  /**\n   * @param {boolean} state true: play, false: stop\n   */\n  setPlayState: function (state) {\n    this.option.autoPlay = !!state;\n  },\n\n  /**\n   * @return {boolean} true: play, false: stop\n   */\n  getPlayState: function () {\n    return !!this.option.autoPlay;\n  },\n\n  /**\n   * @private\n   */\n  _initData: function () {\n    var thisOption = this.option;\n    var dataArr = thisOption.data || [];\n    var axisType = thisOption.axisType;\n    var names = this._names = [];\n\n    if (axisType === 'category') {\n      var idxArr = [];\n      zrUtil.each(dataArr, function (item, index) {\n        var value = modelUtil.getDataItemValue(item);\n        var newItem;\n\n        if (zrUtil.isObject(item)) {\n          newItem = zrUtil.clone(item);\n          newItem.value = index;\n        } else {\n          newItem = index;\n        }\n\n        idxArr.push(newItem);\n\n        if (!zrUtil.isString(value) && (value == null || isNaN(value))) {\n          value = '';\n        }\n\n        names.push(value + '');\n      });\n      dataArr = idxArr;\n    }\n\n    var dimType = {\n      category: 'ordinal',\n      time: 'time'\n    }[axisType] || 'number';\n    var data = this._data = new List([{\n      name: 'value',\n      type: dimType\n    }], this);\n    data.initData(dataArr, names);\n  },\n  getData: function () {\n    return this._data;\n  },\n\n  /**\n   * @public\n   * @return {Array.<string>} categoreis\n   */\n  getCategories: function () {\n    if (this.get('axisType') === 'category') {\n      return this._names.slice();\n    }\n  }\n});\nvar _default = TimelineModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/TimelineModel.js\n// module id = gFO1\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.object.define-properties.js\n// module id = gG5W\n// module chunks = 0","var zrUtil = require(\"../core/util\");\n\nvar Element = require(\"../Element\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\n/**\n * Group鏄竴涓鍣紝鍙互鎻掑叆瀛愯妭鐐癸紝Group鐨勫彉鎹篃浼氳搴旂敤鍒板瓙鑺傜偣涓奬n * @module zrender/graphic/Group\n * @example\n *     var Group = require('zrender/container/Group');\n *     var Circle = require('zrender/graphic/shape/Circle');\n *     var g = new Group();\n *     g.position[0] = 100;\n *     g.position[1] = 100;\n *     g.add(new Circle({\n *         style: {\n *             x: 100,\n *             y: 100,\n *             r: 20,\n *         }\n *     }));\n *     zr.add(g);\n */\n\n/**\n * @alias module:zrender/graphic/Group\n * @constructor\n * @extends module:zrender/mixin/Transformable\n * @extends module:zrender/mixin/Eventful\n */\nvar Group = function (opts) {\n  opts = opts || {};\n  Element.call(this, opts);\n\n  for (var key in opts) {\n    if (opts.hasOwnProperty(key)) {\n      this[key] = opts[key];\n    }\n  }\n\n  this._children = [];\n  this.__storage = null;\n  this.__dirty = true;\n};\n\nGroup.prototype = {\n  constructor: Group,\n  isGroup: true,\n\n  /**\n   * @type {string}\n   */\n  type: 'group',\n\n  /**\n   * 鎵�鏈夊瓙瀛欏厓绱犳槸鍚﹀搷搴旈紶鏍囦簨浠禱n   * @name module:/zrender/container/Group#silent\n   * @type {boolean}\n   * @default false\n   */\n  silent: false,\n\n  /**\n   * @return {Array.<module:zrender/Element>}\n   */\n  children: function () {\n    return this._children.slice();\n  },\n\n  /**\n   * 鑾峰彇鎸囧畾 index 鐨勫効瀛愯妭鐐筡n   * @param  {number} idx\n   * @return {module:zrender/Element}\n   */\n  childAt: function (idx) {\n    return this._children[idx];\n  },\n\n  /**\n   * 鑾峰彇鎸囧畾鍚嶅瓧鐨勫効瀛愯妭鐐筡n   * @param  {string} name\n   * @return {module:zrender/Element}\n   */\n  childOfName: function (name) {\n    var children = this._children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (children[i].name === name) {\n        return children[i];\n      }\n    }\n  },\n\n  /**\n   * @return {number}\n   */\n  childCount: function () {\n    return this._children.length;\n  },\n\n  /**\n   * 娣诲姞瀛愯妭鐐瑰埌鏈�鍚嶾n   * @param {module:zrender/Element} child\n   */\n  add: function (child) {\n    if (child && child !== this && child.parent !== this) {\n      this._children.push(child);\n\n      this._doAdd(child);\n    }\n\n    return this;\n  },\n\n  /**\n   * 娣诲姞瀛愯妭鐐瑰湪 nextSibling 涔嬪墠\n   * @param {module:zrender/Element} child\n   * @param {module:zrender/Element} nextSibling\n   */\n  addBefore: function (child, nextSibling) {\n    if (child && child !== this && child.parent !== this && nextSibling && nextSibling.parent === this) {\n      var children = this._children;\n      var idx = children.indexOf(nextSibling);\n\n      if (idx >= 0) {\n        children.splice(idx, 0, child);\n\n        this._doAdd(child);\n      }\n    }\n\n    return this;\n  },\n  _doAdd: function (child) {\n    if (child.parent) {\n      child.parent.remove(child);\n    }\n\n    child.parent = this;\n    var storage = this.__storage;\n    var zr = this.__zr;\n\n    if (storage && storage !== child.__storage) {\n      storage.addToStorage(child);\n\n      if (child instanceof Group) {\n        child.addChildrenToStorage(storage);\n      }\n    }\n\n    zr && zr.refresh();\n  },\n\n  /**\n   * 绉婚櫎瀛愯妭鐐筡n   * @param {module:zrender/Element} child\n   */\n  remove: function (child) {\n    var zr = this.__zr;\n    var storage = this.__storage;\n    var children = this._children;\n    var idx = zrUtil.indexOf(children, child);\n\n    if (idx < 0) {\n      return this;\n    }\n\n    children.splice(idx, 1);\n    child.parent = null;\n\n    if (storage) {\n      storage.delFromStorage(child);\n\n      if (child instanceof Group) {\n        child.delChildrenFromStorage(storage);\n      }\n    }\n\n    zr && zr.refresh();\n    return this;\n  },\n\n  /**\n   * 绉婚櫎鎵�鏈夊瓙鑺傜偣\n   */\n  removeAll: function () {\n    var children = this._children;\n    var storage = this.__storage;\n    var child;\n    var i;\n\n    for (i = 0; i < children.length; i++) {\n      child = children[i];\n\n      if (storage) {\n        storage.delFromStorage(child);\n\n        if (child instanceof Group) {\n          child.delChildrenFromStorage(storage);\n        }\n      }\n\n      child.parent = null;\n    }\n\n    children.length = 0;\n    return this;\n  },\n\n  /**\n   * 閬嶅巻鎵�鏈夊瓙鑺傜偣\n   * @param  {Function} cb\n   * @param  {}   context\n   */\n  eachChild: function (cb, context) {\n    var children = this._children;\n\n    for (var i = 0; i < children.length; i++) {\n      var child = children[i];\n      cb.call(context, child, i);\n    }\n\n    return this;\n  },\n\n  /**\n   * 娣卞害浼樺厛閬嶅巻鎵�鏈夊瓙瀛欒妭鐐筡n   * @param  {Function} cb\n   * @param  {}   context\n   */\n  traverse: function (cb, context) {\n    for (var i = 0; i < this._children.length; i++) {\n      var child = this._children[i];\n      cb.call(context, child);\n\n      if (child.type === 'group') {\n        child.traverse(cb, context);\n      }\n    }\n\n    return this;\n  },\n  addChildrenToStorage: function (storage) {\n    for (var i = 0; i < this._children.length; i++) {\n      var child = this._children[i];\n      storage.addToStorage(child);\n\n      if (child instanceof Group) {\n        child.addChildrenToStorage(storage);\n      }\n    }\n  },\n  delChildrenFromStorage: function (storage) {\n    for (var i = 0; i < this._children.length; i++) {\n      var child = this._children[i];\n      storage.delFromStorage(child);\n\n      if (child instanceof Group) {\n        child.delChildrenFromStorage(storage);\n      }\n    }\n  },\n  dirty: function () {\n    this.__dirty = true;\n    this.__zr && this.__zr.refresh();\n    return this;\n  },\n\n  /**\n   * @return {module:zrender/core/BoundingRect}\n   */\n  getBoundingRect: function (includeChildren) {\n    // TODO Caching\n    var rect = null;\n    var tmpRect = new BoundingRect(0, 0, 0, 0);\n    var children = includeChildren || this._children;\n    var tmpMat = [];\n\n    for (var i = 0; i < children.length; i++) {\n      var child = children[i];\n\n      if (child.ignore || child.invisible) {\n        continue;\n      }\n\n      var childRect = child.getBoundingRect();\n      var transform = child.getLocalTransform(tmpMat); // TODO\n      // The boundingRect cacluated by transforming original\n      // rect may be bigger than the actual bundingRect when rotation\n      // is used. (Consider a circle rotated aginst its center, where\n      // the actual boundingRect should be the same as that not be\n      // rotated.) But we can not find better approach to calculate\n      // actual boundingRect yet, considering performance.\n\n      if (transform) {\n        tmpRect.copy(childRect);\n        tmpRect.applyTransform(transform);\n        rect = rect || tmpRect.clone();\n        rect.union(tmpRect);\n      } else {\n        rect = rect || childRect.clone();\n        rect.union(childRect);\n      }\n    }\n\n    return rect || tmpRect;\n  }\n};\nzrUtil.inherits(Group, Element);\nvar _default = Group;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/container/Group.js\n// module id = gIPg\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar helper = require(\"../helper/treeHelper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Sunburst action\n */\nvar ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\necharts.registerAction({\n  type: ROOT_TO_NODE_ACTION,\n  update: 'updateView'\n}, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'series',\n    subType: 'sunburst',\n    query: payload\n  }, handleRootToNode);\n\n  function handleRootToNode(model, index) {\n    var targetInfo = helper.retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n    if (targetInfo) {\n      var originViewRoot = model.getViewRoot();\n\n      if (originViewRoot) {\n        payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n      }\n\n      model.resetViewRoot(targetInfo.node);\n    }\n  }\n});\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\necharts.registerAction({\n  type: HIGHLIGHT_ACTION,\n  update: 'updateView'\n}, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'series',\n    subType: 'sunburst',\n    query: payload\n  }, handleHighlight);\n\n  function handleHighlight(model, index) {\n    var targetInfo = helper.retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n    if (targetInfo) {\n      payload.highlight = targetInfo.node;\n    }\n  }\n});\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\necharts.registerAction({\n  type: UNHIGHLIGHT_ACTION,\n  update: 'updateView'\n}, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'series',\n    subType: 'sunburst',\n    query: payload\n  }, handleUnhighlight);\n\n  function handleUnhighlight(model, index) {\n    payload.unhighlight = true;\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/sunburstAction.js\n// module id = gJqh\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar borderColorQuery = ['itemStyle', 'borderColor'];\n\nfunction _default(ecModel, api) {\n  var globalColors = ecModel.get('color');\n  ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n    var defaulColor = globalColors[seriesModel.seriesIndex % globalColors.length];\n    var data = seriesModel.getData();\n    data.setVisual({\n      legendSymbol: 'roundRect',\n      // Use name 'color' but not 'borderColor' for legend usage and\n      // visual coding from other component like dataRange.\n      color: seriesModel.get(borderColorQuery) || defaulColor\n    }); // Only visible series has each data be visual encoded\n\n    if (!ecModel.isSeriesFiltered(seriesModel)) {\n      data.each(function (idx) {\n        var itemModel = data.getItemModel(idx);\n        data.setItemVisual(idx, {\n          color: itemModel.get(borderColorQuery, true)\n        });\n      });\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/boxplot/boxplotVisual.js\n// module id = gOjO\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar platform = ''; // Navigator not exists in node\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar _default = {\n  // backgroundColor: 'rgba(0,0,0,0)',\n  // https://dribbble.com/shots/1065960-Infographic-Pie-chart-visualization\n  // color: ['#5793f3', '#d14a61', '#fd9c35', '#675bba', '#fec42c', '#dd4444', '#d4df5a', '#cd4870'],\n  // Light colors:\n  // color: ['#bcd3bb', '#e88f70', '#edc1a5', '#9dc5c8', '#e1e8c8', '#7b7c68', '#e5b5b5', '#f0b489', '#928ea8', '#bda29a'],\n  // color: ['#cc5664', '#9bd6ec', '#ea946e', '#8acaaa', '#f1ec64', '#ee8686', '#a48dc1', '#5da6bc', '#b9dcae'],\n  // Dark colors:\n  color: ['#c23531', '#2f4554', '#61a0a8', '#d48265', '#91c7ae', '#749f83', '#ca8622', '#bda29a', '#6e7074', '#546570', '#c4ccd3'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  // If xAxis and yAxis declared, grid is created by default.\n  // grid: {},\n  textStyle: {\n    // color: '#000',\n    // decoration: 'none',\n    // PENDING\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    // fontFamily: 'Arial, Verdana, sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  // http://blogs.adobe.com/webplatform/2014/02/24/using-blend-modes-in-html-canvas/\n  // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n  // Default is source-over\n  blendMode: null,\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 300,\n  animationEasing: 'exponentialOut',\n  animationEasingUpdate: 'cubicOut',\n  animationThreshold: 2000,\n  // Configuration for progressive/incremental rendering\n  progressiveThreshold: 3000,\n  progressive: 400,\n  // Threshold of if use single hover layer to optimize.\n  // It is recommended that `hoverLayerThreshold` is equivalent to or less than\n  // `progressiveThreshold`, otherwise hover will cause restart of progressive,\n  // which is unexpected.\n  // see example <echarts/test/heatmap-large.html>.\n  hoverLayerThreshold: 3000,\n  // See: module:echarts/scale/Time\n  useUTC: false\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/globalDefault.js\n// module id = gQJx\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 閽撻奔宀沑n// var Region = require('../Region');\n// var zrUtil = require('zrender/src/core/util');\n// var geoCoord = [126, 25];\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\n\nfunction _default(geo) {\n  if (geo.map === 'china') {\n    for (var i = 0, len = geo.regions.length; i < len; ++i) {\n      if (geo.regions[i].name === '鍙版咕') {\n        geo.regions[i].geometries.push({\n          type: 'polygon',\n          exterior: points[0]\n        });\n      }\n    }\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/geo/fix/diaoyuIsland.js\n// module id = gSu5\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Cartesian = require(\"./Cartesian\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction Cartesian2D(name) {\n  Cartesian.call(this, name);\n}\n\nCartesian2D.prototype = {\n  constructor: Cartesian2D,\n  type: 'cartesian2d',\n\n  /**\n   * @type {Array.<string>}\n   * @readOnly\n   */\n  dimensions: ['x', 'y'],\n\n  /**\n   * Base axis will be used on stacking.\n   *\n   * @return {module:echarts/coord/cartesian/Axis2D}\n   */\n  getBaseAxis: function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  },\n\n  /**\n   * If contain point\n   * @param {Array.<number>} point\n   * @return {boolean}\n   */\n  containPoint: function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  },\n\n  /**\n   * If contain data\n   * @param {Array.<number>} data\n   * @return {boolean}\n   */\n  containData: function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  },\n\n  /**\n   * @param {Array.<number>} data\n   * @param {Array.<number>} out\n   * @return {Array.<number>}\n   */\n  dataToPoint: function (data, reserved, out) {\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out = out || [];\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(data[0]));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(data[1]));\n    return out;\n  },\n\n  /**\n   * @param {Array.<number>} data\n   * @param {Array.<number>} out\n   * @return {Array.<number>}\n   */\n  clampData: function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  },\n\n  /**\n   * @param {Array.<number>} point\n   * @param {Array.<number>} out\n   * @return {Array.<number>}\n   */\n  pointToData: function (point, out) {\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out = out || [];\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  },\n\n  /**\n   * Get other axis\n   * @param {module:echarts/coord/cartesian/Axis2D} axis\n   */\n  getOtherAxis: function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  }\n};\nzrUtil.inherits(Cartesian2D, Cartesian);\nvar _default = Cartesian2D;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/Cartesian2D.js\n// module id = gTJY\n// module chunks = 0","var _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @return {string} If large mode changed, return string 'reset';\n */\nfunction _default() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = fields.large;\n    var originalProgressive = fields.progressiveRender;\n    var large = fields.large = pipelineContext.large;\n    var progressive = fields.progressiveRender = pipelineContext.progressiveRender;\n    return !!(originalLarge ^ large || originalProgressive ^ progressive) && 'reset';\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/createRenderPlanner.js\n// module id = gbpp\n// module chunks = 0","var _traversalHelper = require(\"./traversalHelper\");\n\nvar eachAfter = _traversalHelper.eachAfter;\nvar eachBefore = _traversalHelper.eachBefore;\n\nvar _layoutHelper = require(\"./layoutHelper\");\n\nvar init = _layoutHelper.init;\nvar firstWalk = _layoutHelper.firstWalk;\nvar secondWalk = _layoutHelper.secondWalk;\nvar sep = _layoutHelper.separation;\nvar radialCoordinate = _layoutHelper.radialCoordinate;\nvar getViewRect = _layoutHelper.getViewRect;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, api) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    commonLayout(seriesModel, api);\n  });\n}\n\nfunction commonLayout(seriesModel, api) {\n  var layoutInfo = getViewRect(seriesModel, api);\n  seriesModel.layoutInfo = layoutInfo;\n  var layout = seriesModel.get('layout');\n  var width = 0;\n  var height = 0;\n  var separation = null;\n\n  if (layout === 'radial') {\n    width = 2 * Math.PI;\n    height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n    separation = sep(function (node1, node2) {\n      return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n    });\n  } else {\n    width = layoutInfo.width;\n    height = layoutInfo.height;\n    separation = sep();\n  }\n\n  var virtualRoot = seriesModel.getData().tree.root;\n  var realRoot = virtualRoot.children[0];\n\n  if (realRoot) {\n    init(virtualRoot);\n    eachAfter(realRoot, firstWalk, separation);\n    virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n    eachBefore(realRoot, secondWalk);\n    var left = realRoot;\n    var right = realRoot;\n    var bottom = realRoot;\n    eachBefore(realRoot, function (node) {\n      var x = node.getLayout().x;\n\n      if (x < left.getLayout().x) {\n        left = node;\n      }\n\n      if (x > right.getLayout().x) {\n        right = node;\n      }\n\n      if (node.depth > bottom.depth) {\n        bottom = node;\n      }\n    });\n    var delta = left === right ? 1 : separation(left, right) / 2;\n    var tx = delta - left.getLayout().x;\n    var kx = 0;\n    var ky = 0;\n    var coorX = 0;\n    var coorY = 0;\n\n    if (layout === 'radial') {\n      kx = width / (right.getLayout().x + delta + tx); // here we use (node.depth - 1), bucause the real root's depth is 1\n\n      ky = height / (bottom.depth - 1 || 1);\n      eachBefore(realRoot, function (node) {\n        coorX = (node.getLayout().x + tx) * kx;\n        coorY = (node.depth - 1) * ky;\n        var finalCoor = radialCoordinate(coorX, coorY);\n        node.setLayout({\n          x: finalCoor.x,\n          y: finalCoor.y,\n          rawX: coorX,\n          rawY: coorY\n        }, true);\n      });\n    } else {\n      var orient = seriesModel.getOrient();\n\n      if (orient === 'RL' || orient === 'LR') {\n        ky = height / (right.getLayout().x + delta + tx);\n        kx = width / (bottom.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorY = (node.getLayout().x + tx) * ky;\n          coorX = orient === 'LR' ? (node.depth - 1) * kx : width - (node.depth - 1) * kx;\n          node.setLayout({\n            x: coorX,\n            y: coorY\n          }, true);\n        });\n      } else if (orient === 'TB' || orient === 'BT') {\n        kx = width / (right.getLayout().x + delta + tx);\n        ky = height / (bottom.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorX = (node.getLayout().x + tx) * kx;\n          coorY = orient === 'TB' ? (node.depth - 1) * ky : height - (node.depth - 1) * ky;\n          node.setLayout({\n            x: coorX,\n            y: coorY\n          }, true);\n        });\n      }\n    }\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/treeLayout.js\n// module id = gk9k\n// module chunks = 0","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_property-desc.js\n// module id = go9Q\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * For geo and graph.\n *\n * @param {Object} controllerHost\n * @param {module:zrender/Element} controllerHost.target\n */\nfunction updateViewOnPan(controllerHost, dx, dy) {\n  var target = controllerHost.target;\n  var pos = target.position;\n  pos[0] += dx;\n  pos[1] += dy;\n  target.dirty();\n}\n/**\n * For geo and graph.\n *\n * @param {Object} controllerHost\n * @param {module:zrender/Element} controllerHost.target\n * @param {number} controllerHost.zoom\n * @param {number} controllerHost.zoomLimit like: {min: 1, max: 2}\n */\n\n\nfunction updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n  var target = controllerHost.target;\n  var zoomLimit = controllerHost.zoomLimit;\n  var pos = target.position;\n  var scale = target.scale;\n  var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n  newZoom *= zoomDelta;\n\n  if (zoomLimit) {\n    var zoomMin = zoomLimit.min || 0;\n    var zoomMax = zoomLimit.max || Infinity;\n    newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n  }\n\n  var zoomScale = newZoom / controllerHost.zoom;\n  controllerHost.zoom = newZoom; // Keep the mouse center when scaling\n\n  pos[0] -= (zoomX - pos[0]) * (zoomScale - 1);\n  pos[1] -= (zoomY - pos[1]) * (zoomScale - 1);\n  scale[0] *= zoomScale;\n  scale[1] *= zoomScale;\n  target.dirty();\n}\n\nexports.updateViewOnPan = updateViewOnPan;\nexports.updateViewOnZoom = updateViewOnZoom;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/roamHelper.js\n// module id = grD2\n// module chunks = 0","var Displayable = require(\"./Displayable\");\n\nvar zrUtil = require(\"../core/util\");\n\nvar textContain = require(\"../contain/text\");\n\nvar textHelper = require(\"./helper/text\");\n\n/**\n * @alias zrender/graphic/Text\n * @extends module:zrender/graphic/Displayable\n * @constructor\n * @param {Object} opts\n */\nvar Text = function (opts) {\n  // jshint ignore:line\n  Displayable.call(this, opts);\n};\n\nText.prototype = {\n  constructor: Text,\n  type: 'text',\n  brush: function (ctx, prevEl) {\n    var style = this.style; // Optimize, avoid normalize every time.\n\n    this.__dirty && textHelper.normalizeTextStyle(style, true); // Use props with prefix 'text'.\n\n    style.fill = style.stroke = style.shadowBlur = style.shadowColor = style.shadowOffsetX = style.shadowOffsetY = null;\n    var text = style.text; // Convert to string\n\n    text != null && (text += ''); // Always bind style\n\n    style.bind(ctx, this, prevEl);\n\n    if (!textHelper.needDrawText(text, style)) {\n      return;\n    }\n\n    this.setTransform(ctx);\n    textHelper.renderText(this, ctx, text, style);\n    this.restoreTransform(ctx);\n  },\n  getBoundingRect: function () {\n    var style = this.style; // Optimize, avoid normalize every time.\n\n    this.__dirty && textHelper.normalizeTextStyle(style, true);\n\n    if (!this._rect) {\n      var text = style.text;\n      text != null ? text += '' : text = '';\n      var rect = textContain.getBoundingRect(style.text + '', style.font, style.textAlign, style.textVerticalAlign, style.textPadding, style.rich);\n      rect.x += style.x || 0;\n      rect.y += style.y || 0;\n\n      if (textHelper.getStroke(style.textStroke, style.textStrokeWidth)) {\n        var w = style.textStrokeWidth;\n        rect.x -= w / 2;\n        rect.y -= w / 2;\n        rect.width += w;\n        rect.height += w;\n      }\n\n      this._rect = rect;\n    }\n\n    return this._rect;\n  }\n};\nzrUtil.inherits(Text, Displayable);\nvar _default = Text;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/Text.js\n// module id = gt1/\n// module chunks = 0","var BoundingRect = require(\"../core/BoundingRect\");\n\nvar imageHelper = require(\"../graphic/helper/image\");\n\nvar _util = require(\"../core/util\");\n\nvar getContext = _util.getContext;\nvar extend = _util.extend;\nvar retrieve2 = _util.retrieve2;\nvar retrieve3 = _util.retrieve3;\nvar trim = _util.trim;\nvar textWidthCache = {};\nvar textWidthCacheCounter = 0;\nvar TEXT_CACHE_MAX = 5000;\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nvar DEFAULT_FONT = '12px sans-serif'; // Avoid assign to an exported variable, for transforming to cjs.\n\nvar methods = {};\n\nfunction $override(name, fn) {\n  methods[name] = fn;\n}\n/**\n * @public\n * @param {string} text\n * @param {string} font\n * @return {number} width\n */\n\n\nfunction getWidth(text, font) {\n  font = font || DEFAULT_FONT;\n  var key = text + ':' + font;\n\n  if (textWidthCache[key]) {\n    return textWidthCache[key];\n  }\n\n  var textLines = (text + '').split('\\n');\n  var width = 0;\n\n  for (var i = 0, l = textLines.length; i < l; i++) {\n    // textContain.measureText may be overrided in SVG or VML\n    width = Math.max(measureText(textLines[i], font).width, width);\n  }\n\n  if (textWidthCacheCounter > TEXT_CACHE_MAX) {\n    textWidthCacheCounter = 0;\n    textWidthCache = {};\n  }\n\n  textWidthCacheCounter++;\n  textWidthCache[key] = width;\n  return width;\n}\n/**\n * @public\n * @param {string} text\n * @param {string} font\n * @param {string} [textAlign='left']\n * @param {string} [textVerticalAlign='top']\n * @param {Array.<number>} [textPadding]\n * @param {Object} [rich]\n * @param {Object} [truncate]\n * @return {Object} {x, y, width, height, lineHeight}\n */\n\n\nfunction getBoundingRect(text, font, textAlign, textVerticalAlign, textPadding, rich, truncate) {\n  return rich ? getRichTextRect(text, font, textAlign, textVerticalAlign, textPadding, rich, truncate) : getPlainTextRect(text, font, textAlign, textVerticalAlign, textPadding, truncate);\n}\n\nfunction getPlainTextRect(text, font, textAlign, textVerticalAlign, textPadding, truncate) {\n  var contentBlock = parsePlainText(text, font, textPadding, truncate);\n  var outerWidth = getWidth(text, font);\n\n  if (textPadding) {\n    outerWidth += textPadding[1] + textPadding[3];\n  }\n\n  var outerHeight = contentBlock.outerHeight;\n  var x = adjustTextX(0, outerWidth, textAlign);\n  var y = adjustTextY(0, outerHeight, textVerticalAlign);\n  var rect = new BoundingRect(x, y, outerWidth, outerHeight);\n  rect.lineHeight = contentBlock.lineHeight;\n  return rect;\n}\n\nfunction getRichTextRect(text, font, textAlign, textVerticalAlign, textPadding, rich, truncate) {\n  var contentBlock = parseRichText(text, {\n    rich: rich,\n    truncate: truncate,\n    font: font,\n    textAlign: textAlign,\n    textPadding: textPadding\n  });\n  var outerWidth = contentBlock.outerWidth;\n  var outerHeight = contentBlock.outerHeight;\n  var x = adjustTextX(0, outerWidth, textAlign);\n  var y = adjustTextY(0, outerHeight, textVerticalAlign);\n  return new BoundingRect(x, y, outerWidth, outerHeight);\n}\n/**\n * @public\n * @param {number} x\n * @param {number} width\n * @param {string} [textAlign='left']\n * @return {number} Adjusted x.\n */\n\n\nfunction adjustTextX(x, width, textAlign) {\n  // FIXME Right to left language\n  if (textAlign === 'right') {\n    x -= width;\n  } else if (textAlign === 'center') {\n    x -= width / 2;\n  }\n\n  return x;\n}\n/**\n * @public\n * @param {number} y\n * @param {number} height\n * @param {string} [textVerticalAlign='top']\n * @return {number} Adjusted y.\n */\n\n\nfunction adjustTextY(y, height, textVerticalAlign) {\n  if (textVerticalAlign === 'middle') {\n    y -= height / 2;\n  } else if (textVerticalAlign === 'bottom') {\n    y -= height;\n  }\n\n  return y;\n}\n/**\n * @public\n * @param {stirng} textPosition\n * @param {Object} rect {x, y, width, height}\n * @param {number} distance\n * @return {Object} {x, y, textAlign, textVerticalAlign}\n */\n\n\nfunction adjustTextPositionOnRect(textPosition, rect, distance) {\n  var x = rect.x;\n  var y = rect.y;\n  var height = rect.height;\n  var width = rect.width;\n  var halfHeight = height / 2;\n  var textAlign = 'left';\n  var textVerticalAlign = 'top';\n\n  switch (textPosition) {\n    case 'left':\n      x -= distance;\n      y += halfHeight;\n      textAlign = 'right';\n      textVerticalAlign = 'middle';\n      break;\n\n    case 'right':\n      x += distance + width;\n      y += halfHeight;\n      textVerticalAlign = 'middle';\n      break;\n\n    case 'top':\n      x += width / 2;\n      y -= distance;\n      textAlign = 'center';\n      textVerticalAlign = 'bottom';\n      break;\n\n    case 'bottom':\n      x += width / 2;\n      y += height + distance;\n      textAlign = 'center';\n      break;\n\n    case 'inside':\n      x += width / 2;\n      y += halfHeight;\n      textAlign = 'center';\n      textVerticalAlign = 'middle';\n      break;\n\n    case 'insideLeft':\n      x += distance;\n      y += halfHeight;\n      textVerticalAlign = 'middle';\n      break;\n\n    case 'insideRight':\n      x += width - distance;\n      y += halfHeight;\n      textAlign = 'right';\n      textVerticalAlign = 'middle';\n      break;\n\n    case 'insideTop':\n      x += width / 2;\n      y += distance;\n      textAlign = 'center';\n      break;\n\n    case 'insideBottom':\n      x += width / 2;\n      y += height - distance;\n      textAlign = 'center';\n      textVerticalAlign = 'bottom';\n      break;\n\n    case 'insideTopLeft':\n      x += distance;\n      y += distance;\n      break;\n\n    case 'insideTopRight':\n      x += width - distance;\n      y += distance;\n      textAlign = 'right';\n      break;\n\n    case 'insideBottomLeft':\n      x += distance;\n      y += height - distance;\n      textVerticalAlign = 'bottom';\n      break;\n\n    case 'insideBottomRight':\n      x += width - distance;\n      y += height - distance;\n      textAlign = 'right';\n      textVerticalAlign = 'bottom';\n      break;\n  }\n\n  return {\n    x: x,\n    y: y,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n/**\n * Show ellipsis if overflow.\n *\n * @public\n * @param  {string} text\n * @param  {string} containerWidth\n * @param  {string} font\n * @param  {number} [ellipsis='...']\n * @param  {Object} [options]\n * @param  {number} [options.maxIterations=3]\n * @param  {number} [options.minChar=0] If truncate result are less\n *                  then minChar, ellipsis will not show, which is\n *                  better for user hint in some cases.\n * @param  {number} [options.placeholder=''] When all truncated, use the placeholder.\n * @return {string}\n */\n\n\nfunction truncateText(text, containerWidth, font, ellipsis, options) {\n  if (!containerWidth) {\n    return '';\n  }\n\n  var textLines = (text + '').split('\\n');\n  options = prepareTruncateOptions(containerWidth, font, ellipsis, options); // FIXME\n  // It is not appropriate that every line has '...' when truncate multiple lines.\n\n  for (var i = 0, len = textLines.length; i < len; i++) {\n    textLines[i] = truncateSingleLine(textLines[i], options);\n  }\n\n  return textLines.join('\\n');\n}\n\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n  options = extend({}, options);\n  options.font = font;\n  var ellipsis = retrieve2(ellipsis, '...');\n  options.maxIterations = retrieve2(options.maxIterations, 2);\n  var minChar = options.minChar = retrieve2(options.minChar, 0); // FIXME\n  // Other languages?\n\n  options.cnCharWidth = getWidth('鍥�', font); // FIXME\n  // Consider proportional font?\n\n  var ascCharWidth = options.ascCharWidth = getWidth('a', font);\n  options.placeholder = retrieve2(options.placeholder, ''); // Example 1: minChar: 3, text: 'asdfzxcv', truncate result: 'asdf', but not: 'a...'.\n  // Example 2: minChar: 3, text: '缁村害', truncate result: '缁�', but not: '...'.\n\n  var contentWidth = containerWidth = Math.max(0, containerWidth - 1); // Reserve some gap.\n\n  for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n    contentWidth -= ascCharWidth;\n  }\n\n  var ellipsisWidth = getWidth(ellipsis);\n\n  if (ellipsisWidth > contentWidth) {\n    ellipsis = '';\n    ellipsisWidth = 0;\n  }\n\n  contentWidth = containerWidth - ellipsisWidth;\n  options.ellipsis = ellipsis;\n  options.ellipsisWidth = ellipsisWidth;\n  options.contentWidth = contentWidth;\n  options.containerWidth = containerWidth;\n  return options;\n}\n\nfunction truncateSingleLine(textLine, options) {\n  var containerWidth = options.containerWidth;\n  var font = options.font;\n  var contentWidth = options.contentWidth;\n\n  if (!containerWidth) {\n    return '';\n  }\n\n  var lineWidth = getWidth(textLine, font);\n\n  if (lineWidth <= containerWidth) {\n    return textLine;\n  }\n\n  for (var j = 0;; j++) {\n    if (lineWidth <= contentWidth || j >= options.maxIterations) {\n      textLine += options.ellipsis;\n      break;\n    }\n\n    var subLength = j === 0 ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth) : lineWidth > 0 ? Math.floor(textLine.length * contentWidth / lineWidth) : 0;\n    textLine = textLine.substr(0, subLength);\n    lineWidth = getWidth(textLine, font);\n  }\n\n  if (textLine === '') {\n    textLine = options.placeholder;\n  }\n\n  return textLine;\n}\n\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n  var width = 0;\n  var i = 0;\n\n  for (var len = text.length; i < len && width < contentWidth; i++) {\n    var charCode = text.charCodeAt(i);\n    width += 0 <= charCode && charCode <= 127 ? ascCharWidth : cnCharWidth;\n  }\n\n  return i;\n}\n/**\n * @public\n * @param {string} font\n * @return {number} line height\n */\n\n\nfunction getLineHeight(font) {\n  // FIXME A rough approach.\n  return getWidth('鍥�', font);\n}\n/**\n * @public\n * @param {string} text\n * @param {string} font\n * @return {Object} width\n */\n\n\nfunction measureText(text, font) {\n  return methods.measureText(text, font);\n} // Avoid assign to an exported variable, for transforming to cjs.\n\n\nmethods.measureText = function (text, font) {\n  var ctx = getContext();\n  ctx.font = font || DEFAULT_FONT;\n  return ctx.measureText(text);\n};\n/**\n * @public\n * @param {string} text\n * @param {string} font\n * @param {Object} [truncate]\n * @return {Object} block: {lineHeight, lines, height, outerHeight}\n *  Notice: for performance, do not calculate outerWidth util needed.\n */\n\n\nfunction parsePlainText(text, font, padding, truncate) {\n  text != null && (text += '');\n  var lineHeight = getLineHeight(font);\n  var lines = text ? text.split('\\n') : [];\n  var height = lines.length * lineHeight;\n  var outerHeight = height;\n\n  if (padding) {\n    outerHeight += padding[0] + padding[2];\n  }\n\n  if (text && truncate) {\n    var truncOuterHeight = truncate.outerHeight;\n    var truncOuterWidth = truncate.outerWidth;\n\n    if (truncOuterHeight != null && outerHeight > truncOuterHeight) {\n      text = '';\n      lines = [];\n    } else if (truncOuterWidth != null) {\n      var options = prepareTruncateOptions(truncOuterWidth - (padding ? padding[1] + padding[3] : 0), font, truncate.ellipsis, {\n        minChar: truncate.minChar,\n        placeholder: truncate.placeholder\n      }); // FIXME\n      // It is not appropriate that every line has '...' when truncate multiple lines.\n\n      for (var i = 0, len = lines.length; i < len; i++) {\n        lines[i] = truncateSingleLine(lines[i], options);\n      }\n    }\n  }\n\n  return {\n    lines: lines,\n    height: height,\n    outerHeight: outerHeight,\n    lineHeight: lineHeight\n  };\n}\n/**\n * For example: 'some text {a|some text}other text{b|some text}xxx{c|}xxx'\n * Also consider 'bbbb{a|xxx\\nzzz}xxxx\\naaaa'.\n *\n * @public\n * @param {string} text\n * @param {Object} style\n * @return {Object} block\n * {\n *      width,\n *      height,\n *      lines: [{\n *          lineHeight,\n *          width,\n *          tokens: [[{\n *              styleName,\n *              text,\n *              width,      // include textPadding\n *              height,     // include textPadding\n *              textWidth, // pure text width\n *              textHeight, // pure text height\n *              lineHeihgt,\n *              font,\n *              textAlign,\n *              textVerticalAlign\n *          }], [...], ...]\n *      }, ...]\n * }\n * If styleName is undefined, it is plain text.\n */\n\n\nfunction parseRichText(text, style) {\n  var contentBlock = {\n    lines: [],\n    width: 0,\n    height: 0\n  };\n  text != null && (text += '');\n\n  if (!text) {\n    return contentBlock;\n  }\n\n  var lastIndex = STYLE_REG.lastIndex = 0;\n  var result;\n\n  while ((result = STYLE_REG.exec(text)) != null) {\n    var matchedIndex = result.index;\n\n    if (matchedIndex > lastIndex) {\n      pushTokens(contentBlock, text.substring(lastIndex, matchedIndex));\n    }\n\n    pushTokens(contentBlock, result[2], result[1]);\n    lastIndex = STYLE_REG.lastIndex;\n  }\n\n  if (lastIndex < text.length) {\n    pushTokens(contentBlock, text.substring(lastIndex, text.length));\n  }\n\n  var lines = contentBlock.lines;\n  var contentHeight = 0;\n  var contentWidth = 0; // For `textWidth: 100%`\n\n  var pendingList = [];\n  var stlPadding = style.textPadding;\n  var truncate = style.truncate;\n  var truncateWidth = truncate && truncate.outerWidth;\n  var truncateHeight = truncate && truncate.outerHeight;\n\n  if (stlPadding) {\n    truncateWidth != null && (truncateWidth -= stlPadding[1] + stlPadding[3]);\n    truncateHeight != null && (truncateHeight -= stlPadding[0] + stlPadding[2]);\n  } // Calculate layout info of tokens.\n\n\n  for (var i = 0; i < lines.length; i++) {\n    var line = lines[i];\n    var lineHeight = 0;\n    var lineWidth = 0;\n\n    for (var j = 0; j < line.tokens.length; j++) {\n      var token = line.tokens[j];\n      var tokenStyle = token.styleName && style.rich[token.styleName] || {}; // textPadding should not inherit from style.\n\n      var textPadding = token.textPadding = tokenStyle.textPadding; // textFont has been asigned to font by `normalizeStyle`.\n\n      var font = token.font = tokenStyle.font || style.font; // textHeight can be used when textVerticalAlign is specified in token.\n\n      var tokenHeight = token.textHeight = retrieve2( // textHeight should not be inherited, consider it can be specified\n      // as box height of the block.\n      tokenStyle.textHeight, getLineHeight(font));\n      textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n      token.height = tokenHeight;\n      token.lineHeight = retrieve3(tokenStyle.textLineHeight, style.textLineHeight, tokenHeight);\n      token.textAlign = tokenStyle && tokenStyle.textAlign || style.textAlign;\n      token.textVerticalAlign = tokenStyle && tokenStyle.textVerticalAlign || 'middle';\n\n      if (truncateHeight != null && contentHeight + token.lineHeight > truncateHeight) {\n        return {\n          lines: [],\n          width: 0,\n          height: 0\n        };\n      }\n\n      token.textWidth = getWidth(token.text, font);\n      var tokenWidth = tokenStyle.textWidth;\n      var tokenWidthNotSpecified = tokenWidth == null || tokenWidth === 'auto'; // Percent width, can be `100%`, can be used in drawing separate\n      // line when box width is needed to be auto.\n\n      if (typeof tokenWidth === 'string' && tokenWidth.charAt(tokenWidth.length - 1) === '%') {\n        token.percentWidth = tokenWidth;\n        pendingList.push(token);\n        tokenWidth = 0; // Do not truncate in this case, because there is no user case\n        // and it is too complicated.\n      } else {\n        if (tokenWidthNotSpecified) {\n          tokenWidth = token.textWidth; // FIXME: If image is not loaded and textWidth is not specified, calling\n          // `getBoundingRect()` will not get correct result.\n\n          var textBackgroundColor = tokenStyle.textBackgroundColor;\n          var bgImg = textBackgroundColor && textBackgroundColor.image; // Use cases:\n          // (1) If image is not loaded, it will be loaded at render phase and call\n          // `dirty()` and `textBackgroundColor.image` will be replaced with the loaded\n          // image, and then the right size will be calculated here at the next tick.\n          // See `graphic/helper/text.js`.\n          // (2) If image loaded, and `textBackgroundColor.image` is image src string,\n          // use `imageHelper.findExistImage` to find cached image.\n          // `imageHelper.findExistImage` will always be called here before\n          // `imageHelper.createOrUpdateImage` in `graphic/helper/text.js#renderRichText`\n          // which ensures that image will not be rendered before correct size calcualted.\n\n          if (bgImg) {\n            bgImg = imageHelper.findExistImage(bgImg);\n\n            if (imageHelper.isImageReady(bgImg)) {\n              tokenWidth = Math.max(tokenWidth, bgImg.width * tokenHeight / bgImg.height);\n            }\n          }\n        }\n\n        var paddingW = textPadding ? textPadding[1] + textPadding[3] : 0;\n        tokenWidth += paddingW;\n        var remianTruncWidth = truncateWidth != null ? truncateWidth - lineWidth : null;\n\n        if (remianTruncWidth != null && remianTruncWidth < tokenWidth) {\n          if (!tokenWidthNotSpecified || remianTruncWidth < paddingW) {\n            token.text = '';\n            token.textWidth = tokenWidth = 0;\n          } else {\n            token.text = truncateText(token.text, remianTruncWidth - paddingW, font, truncate.ellipsis, {\n              minChar: truncate.minChar\n            });\n            token.textWidth = getWidth(token.text, font);\n            tokenWidth = token.textWidth + paddingW;\n          }\n        }\n      }\n\n      lineWidth += token.width = tokenWidth;\n      tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n    }\n\n    line.width = lineWidth;\n    line.lineHeight = lineHeight;\n    contentHeight += lineHeight;\n    contentWidth = Math.max(contentWidth, lineWidth);\n  }\n\n  contentBlock.outerWidth = contentBlock.width = retrieve2(style.textWidth, contentWidth);\n  contentBlock.outerHeight = contentBlock.height = retrieve2(style.textHeight, contentHeight);\n\n  if (stlPadding) {\n    contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n    contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n  }\n\n  for (var i = 0; i < pendingList.length; i++) {\n    var token = pendingList[i];\n    var percentWidth = token.percentWidth; // Should not base on outerWidth, because token can not be placed out of padding.\n\n    token.width = parseInt(percentWidth, 10) / 100 * contentWidth;\n  }\n\n  return contentBlock;\n}\n\nfunction pushTokens(block, str, styleName) {\n  var isEmptyStr = str === '';\n  var strs = str.split('\\n');\n  var lines = block.lines;\n\n  for (var i = 0; i < strs.length; i++) {\n    var text = strs[i];\n    var token = {\n      styleName: styleName,\n      text: text,\n      isLineHolder: !text && !isEmptyStr\n    }; // The first token should be appended to the last line.\n\n    if (!i) {\n      var tokens = (lines[lines.length - 1] || (lines[0] = {\n        tokens: []\n      })).tokens; // Consider cases:\n      // (1) ''.split('\\n') => ['', '\\n', ''], the '' at the first item\n      // (which is a placeholder) should be replaced by new token.\n      // (2) A image backage, where token likes {a|}.\n      // (3) A redundant '' will affect textAlign in line.\n      // (4) tokens with the same tplName should not be merged, because\n      // they should be displayed in different box (with border and padding).\n\n      var tokensLen = tokens.length;\n      tokensLen === 1 && tokens[0].isLineHolder ? tokens[0] = token : // Consider text is '', only insert when it is the \"lineHolder\" or\n      // \"emptyStr\". Otherwise a redundant '' will affect textAlign in line.\n      (text || !tokensLen || isEmptyStr) && tokens.push(token);\n    } // Other tokens always start a new line.\n    else {\n        // If there is '', insert it as a placeholder.\n        lines.push({\n          tokens: [token]\n        });\n      }\n  }\n}\n\nfunction makeFont(style) {\n  // FIXME in node-canvas fontWeight is before fontStyle\n  // Use `fontSize` `fontFamily` to check whether font properties are defined.\n  var font = (style.fontSize || style.fontFamily) && [style.fontStyle, style.fontWeight, (style.fontSize || 12) + 'px', // If font properties are defined, `fontFamily` should not be ignored.\n  style.fontFamily || 'sans-serif'].join(' ');\n  return font && trim(font) || style.textFont || style.font;\n}\n\nexports.DEFAULT_FONT = DEFAULT_FONT;\nexports.$override = $override;\nexports.getWidth = getWidth;\nexports.getBoundingRect = getBoundingRect;\nexports.adjustTextX = adjustTextX;\nexports.adjustTextY = adjustTextY;\nexports.adjustTextPositionOnRect = adjustTextPositionOnRect;\nexports.truncateText = truncateText;\nexports.getLineHeight = getLineHeight;\nexports.measureText = measureText;\nexports.parsePlainText = parsePlainText;\nexports.parseRichText = parseRichText;\nexports.makeFont = makeFont;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/text.js\n// module id = gxMf\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar helper = require(\"./helper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerAction('dataZoom', function (payload, ecModel) {\n  var linkedNodesFinder = helper.createLinkedNodesFinder(zrUtil.bind(ecModel.eachComponent, ecModel, 'dataZoom'), helper.eachAxisDim, function (model, dimNames) {\n    return model.get(dimNames.axisIndex);\n  });\n  var effectedModels = [];\n  ecModel.eachComponent({\n    mainType: 'dataZoom',\n    query: payload\n  }, function (model, index) {\n    effectedModels.push.apply(effectedModels, linkedNodesFinder(model).nodes);\n  });\n  zrUtil.each(effectedModels, function (dataZoomModel, index) {\n    dataZoomModel.setRawRange({\n      start: payload.start,\n      end: payload.end,\n      startValue: payload.startValue,\n      endValue: payload.endValue\n    });\n  });\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/dataZoomAction.js\n// module id = gzF7\n// module chunks = 0","var _vector = require(\"../../core/vector\");\n\nvar v2Distance = _vector.distance;\n\n/**\n * Catmull-Rom spline 鎻掑�兼姌绾縗n * @module zrender/shape/util/smoothSpline\n * @author pissang (https://www.github.com/pissang)\n *         Kener (@Kener-鏋楀嘲, kener.linfeng@gmail.com)\n *         errorrik (errorrik@gmail.com)\n */\n\n/**\n * @inner\n */\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n  var v0 = (p2 - p0) * 0.5;\n  var v1 = (p3 - p1) * 0.5;\n  return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1;\n}\n/**\n * @alias module:zrender/shape/util/smoothSpline\n * @param {Array} points 绾挎椤剁偣鏁扮粍\n * @param {boolean} isLoop\n * @return {Array}\n */\n\n\nfunction _default(points, isLoop) {\n  var len = points.length;\n  var ret = [];\n  var distance = 0;\n\n  for (var i = 1; i < len; i++) {\n    distance += v2Distance(points[i - 1], points[i]);\n  }\n\n  var segs = distance / 2;\n  segs = segs < len ? len : segs;\n\n  for (var i = 0; i < segs; i++) {\n    var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n    var idx = Math.floor(pos);\n    var w = pos - idx;\n    var p0;\n    var p1 = points[idx % len];\n    var p2;\n    var p3;\n\n    if (!isLoop) {\n      p0 = points[idx === 0 ? idx : idx - 1];\n      p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n      p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n    } else {\n      p0 = points[(idx - 1 + len) % len];\n      p2 = points[(idx + 1) % len];\n      p3 = points[(idx + 2) % len];\n    }\n\n    var w2 = w * w;\n    var w3 = w * w2;\n    ret.push([interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3), interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)]);\n  }\n\n  return ret;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/smoothSpline.js\n// module id = h+0C\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\nvar createRenderPlanner = require(\"../chart/helper/createRenderPlanner\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n/**\n * @param {Object} opt\n * @param {module:echarts/coord/Axis} opt.axis Only support category axis currently.\n * @param {number} opt.count Positive interger.\n * @param {number} [opt.barWidth]\n * @param {number} [opt.barMaxWidth]\n * @param {number} [opt.barGap]\n * @param {number} [opt.barCategoryGap]\n * @return {Object} {width, offset, offsetCenter} If axis.type is not 'category', return undefined.\n */\n\n\nfunction getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\n\nfunction prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    // Check series coordinate, do layout for cartesian2d only\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction makeColumnLayout(barSeries) {\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  // Columns info on each category axis. Key is cartesian name\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: '20%',\n      gap: '30%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    }; // Caution: In a single coordinate system, these barGrid attributes\n    // will be shared by series. Consider that they have default values,\n    // only the attributes set on the last series will work.\n    // Do not change this fact unless there will be a break change.\n    // TODO\n\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      // See #6312, do not restrict width.\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n    zrUtil.each(stacks, function (column, stack) {\n      var maxWidth = column.maxWidth;\n\n      if (maxWidth && maxWidth < autoWidth) {\n        maxWidth = Math.min(maxWidth, remainedWidth);\n\n        if (column.width) {\n          maxWidth = Math.min(maxWidth, column.width);\n        }\n\n        remainedWidth -= maxWidth;\n        column.width = maxWidth;\n        autoWidthCount--;\n      }\n    }); // Recalculate width again\n\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n/**\n * @param {Object} barWidthAndOffset The result of makeColumnLayout\n * @param {module:echarts/coord/Axis} axis\n * @param {module:echarts/model/Series} [seriesModel] If not provided, return all.\n * @return {Object} {stackId: {offset, width}} or {offset, width} if seriesModel provided.\n */\n\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      result = result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n/**\n * @param {string} seriesType\n * @param {module:echarts/model/Global} ecModel\n */\n\n\nfunction layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  var lastStackCoordsOrigin = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    lastStackCoordsOrigin[stackId] = lastStackCoordsOrigin[stackId] || []; // Fix #4243\n\n    data.setLayout({\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim\n    /*, baseDim*/\n    );\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n\n      if (isNaN(value)) {\n        continue;\n      }\n\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n      // stackResultDimension directly.\n\n      if (stacked) {\n        // Only ordinal axis can be stacked.\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            // Positive stack\n            n: valueAxisStart // Negative stack\n\n          };\n        } // Should also consider #4243\n\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x;\n      var y;\n      var width;\n      var height;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          // Include zero to has a positive bar\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  }, this);\n} // TODO: Do not support stack in large mode yet.\n\n\nvar largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      // jshint ignore:line\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: progress\n    };\n\n    function progress(params, data) {\n      var largePoints = new LargeArr(params.count * 2);\n      var dataIndex;\n      var coord = [];\n      var valuePair = [];\n      var offset = 0;\n\n      while ((dataIndex = params.next()) != null) {\n        valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n        valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n        coord = cartesian.dataToPoint(valuePair, null, coord);\n        largePoints[offset++] = coord[0];\n        largePoints[offset++] = coord[1];\n      }\n\n      data.setLayout({\n        largePoints: largePoints,\n        barWidth: barWidth,\n        valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n        valueAxisHorizontal: valueAxisHorizontal\n      });\n    }\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return zrUtil.indexOf(baseAxis.getAxesOnZeroOf(), valueAxis) >= 0 || stacked ? valueAxis.toGlobalCoord(valueAxis.dataToCoord(0)) : valueAxis.getGlobalExtent()[0];\n}\n\nexports.getLayoutOnAxis = getLayoutOnAxis;\nexports.prepareLayoutBarSeries = prepareLayoutBarSeries;\nexports.makeColumnLayout = makeColumnLayout;\nexports.retrieveColumnLayout = retrieveColumnLayout;\nexports.layout = layout;\nexports.largeLayout = largeLayout;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/layout/barGrid.js\n// module id = h+Y5\n// module chunks = 0","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/core/createError.js\n// module id = h3QQ\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar symbolUtil = require(\"../../util/symbol\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nvar _default = echarts.extendChartView({\n  type: 'radar',\n  render: function (seriesModel, ecModel, api) {\n    var polar = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n\n    function createSymbol(data, idx) {\n      var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n      var color = data.getItemVisual(idx, 'color');\n\n      if (symbolType === 'none') {\n        return;\n      }\n\n      var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n      var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2, color);\n      symbolPath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 100,\n        scale: [symbolSize[0] / 2, symbolSize[1] / 2]\n      });\n      return symbolPath;\n    }\n\n    function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n      // Simply rerender all\n      symbolGroup.removeAll();\n\n      for (var i = 0; i < newPoints.length - 1; i++) {\n        var symbolPath = createSymbol(data, idx);\n\n        if (symbolPath) {\n          symbolPath.__dimIdx = i;\n\n          if (oldPoints[i]) {\n            symbolPath.attr('position', oldPoints[i]);\n            graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n              position: newPoints[i]\n            }, seriesModel, idx);\n          } else {\n            symbolPath.attr('position', newPoints[i]);\n          }\n\n          symbolGroup.add(symbolPath);\n        }\n      }\n    }\n\n    function getInitialPoints(points) {\n      return zrUtil.map(points, function (pt) {\n        return [polar.cx, polar.cy];\n      });\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var points = data.getItemLayout(idx);\n\n      if (!points) {\n        return;\n      }\n\n      var polygon = new graphic.Polygon();\n      var polyline = new graphic.Polyline();\n      var target = {\n        shape: {\n          points: points\n        }\n      };\n      polygon.shape.points = getInitialPoints(points);\n      polyline.shape.points = getInitialPoints(points);\n      graphic.initProps(polygon, target, seriesModel, idx);\n      graphic.initProps(polyline, target, seriesModel, idx);\n      var itemGroup = new graphic.Group();\n      var symbolGroup = new graphic.Group();\n      itemGroup.add(polyline);\n      itemGroup.add(polygon);\n      itemGroup.add(symbolGroup);\n      updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n      data.setItemGraphicEl(idx, itemGroup);\n    }).update(function (newIdx, oldIdx) {\n      var itemGroup = oldData.getItemGraphicEl(oldIdx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var target = {\n        shape: {\n          points: data.getItemLayout(newIdx)\n        }\n      };\n\n      if (!target.shape.points) {\n        return;\n      }\n\n      updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n      graphic.updateProps(polyline, target, seriesModel);\n      graphic.updateProps(polygon, target, seriesModel);\n      data.setItemGraphicEl(newIdx, itemGroup);\n    }).remove(function (idx) {\n      group.remove(oldData.getItemGraphicEl(idx));\n    }).execute();\n    data.eachItemGraphicEl(function (itemGroup, idx) {\n      var itemModel = data.getItemModel(idx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var color = data.getItemVisual(idx, 'color');\n      group.add(itemGroup);\n      polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n        fill: 'none',\n        stroke: color\n      }));\n      polyline.hoverStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle();\n      var areaStyleModel = itemModel.getModel('areaStyle');\n      var hoverAreaStyleModel = itemModel.getModel('emphasis.areaStyle');\n      var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n      var hoverPolygonIgnore = hoverAreaStyleModel.isEmpty() && hoverAreaStyleModel.parentModel.isEmpty();\n      hoverPolygonIgnore = hoverPolygonIgnore && polygonIgnore;\n      polygon.ignore = polygonIgnore;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: color,\n        opacity: 0.7\n      }));\n      polygon.hoverStyle = hoverAreaStyleModel.getAreaStyle();\n      var itemStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n      var itemHoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n      var labelModel = itemModel.getModel('label');\n      var labelHoverModel = itemModel.getModel('emphasis.label');\n      symbolGroup.eachChild(function (symbolPath) {\n        symbolPath.setStyle(itemStyle);\n        symbolPath.hoverStyle = zrUtil.clone(itemHoverStyle);\n        graphic.setLabelStyle(symbolPath.style, symbolPath.hoverStyle, labelModel, labelHoverModel, {\n          labelFetcher: data.hostModel,\n          labelDataIndex: idx,\n          labelDimIndex: symbolPath.__dimIdx,\n          defaultText: data.get(data.dimensions[symbolPath.__dimIdx], idx),\n          autoColor: color,\n          isRectText: true\n        });\n      });\n\n      function onEmphasis() {\n        polygon.attr('ignore', hoverPolygonIgnore);\n      }\n\n      function onNormal() {\n        polygon.attr('ignore', polygonIgnore);\n      }\n\n      itemGroup.off('mouseover').off('mouseout').off('normal').off('emphasis');\n      itemGroup.on('emphasis', onEmphasis).on('mouseover', onEmphasis).on('normal', onNormal).on('mouseout', onNormal);\n      graphic.setHoverStyle(itemGroup);\n    });\n    this._data = data;\n  },\n  remove: function () {\n    this.group.removeAll();\n    this._data = null;\n  },\n  dispose: function () {}\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/radar/RadarView.js\n// module id = h917\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar axisPointerModelHelper = require(\"./axisPointer/modelHelper\");\n\nvar axisTrigger = require(\"./axisPointer/axisTrigger\");\n\nrequire(\"./axisPointer/AxisPointerModel\");\n\nrequire(\"./axisPointer/AxisPointerView\");\n\nrequire(\"./axisPointer/CartesianAxisPointer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// CartesianAxisPointer is not supposed to be required here. But consider\n// echarts.simple.js and online build tooltip, which only require gridSimple,\n// CartesianAxisPointer should be able to required somewhere.\necharts.registerPreprocessor(function (option) {\n  // Always has a global axisPointerModel for default setting.\n  if (option) {\n    (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n    var link = option.axisPointer.link; // Normalize to array to avoid object mergin. But if link\n    // is not set, remain null/undefined, otherwise it will\n    // override existent link setting.\n\n    if (link && !zrUtil.isArray(link)) {\n      option.axisPointer.link = [link];\n    }\n  }\n}); // This process should proformed after coordinate systems created\n// and series data processed. So put it on statistic processing stage.\n\necharts.registerProcessor(echarts.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n  // Build axisPointerModel, mergin tooltip.axisPointer model for each axis.\n  // allAxesInfo should be updated when setOption performed.\n  ecModel.getComponent('axisPointer').coordSysAxesInfo = axisPointerModelHelper.collect(ecModel, api);\n}); // Broadcast to all views.\n\necharts.registerAction({\n  type: 'updateAxisPointer',\n  event: 'updateAxisPointer',\n  update: ':updateAxisPointer'\n}, axisTrigger);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer.js\n// module id = hEXF\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerAction({\n  type: 'timelineChange',\n  event: 'timelineChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var timelineModel = ecModel.getComponent('timeline');\n\n  if (timelineModel && payload.currentIndex != null) {\n    timelineModel.setCurrentIndex(payload.currentIndex);\n\n    if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\n      timelineModel.setPlayState(false);\n    }\n  } // Set normalized currentIndex to payload.\n\n\n  ecModel.resetOption('timeline');\n  return zrUtil.defaults({\n    currentIndex: timelineModel.option.currentIndex\n  }, payload);\n});\necharts.registerAction({\n  type: 'timelinePlayChange',\n  event: 'timelinePlayChanged',\n  update: 'update'\n}, function (payload, ecModel) {\n  var timelineModel = ecModel.getComponent('timeline');\n\n  if (timelineModel && payload.playState != null) {\n    timelineModel.setPlayState(payload.playState);\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/timelineAction.js\n// module id = hLyB\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nvar defaults = {\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Content-Type');\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data)) {\n      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n      return JSON.stringify(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    /*eslint no-param-reassign:0*/\n    if (typeof data === 'string') {\n      try {\n        data = JSON.parse(data);\n      } catch (e) { /* Ignore */ }\n    }\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/defaults.js\n// module id = hN2N\n// module chunks = 0","var MarkerModel = require(\"./MarkerModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = MarkerModel.extend({\n  type: 'markPoint',\n  defaultOption: {\n    zlevel: 0,\n    z: 5,\n    symbol: 'pin',\n    symbolSize: 50,\n    //symbolRotate: 0,\n    //symbolOffset: [0, 0]\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'inside'\n    },\n    itemStyle: {\n      borderWidth: 2\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkPointModel.js\n// module id = hOez\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n  return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n  return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/helpers/typeof.js\n// module id = hRKE\n// module chunks = 0","var PathProxy = require(\"../core/PathProxy\");\n\nvar line = require(\"./line\");\n\nvar cubic = require(\"./cubic\");\n\nvar quadratic = require(\"./quadratic\");\n\nvar arc = require(\"./arc\");\n\nvar _util = require(\"./util\");\n\nvar normalizeRadian = _util.normalizeRadian;\n\nvar curve = require(\"../core/curve\");\n\nvar windingLine = require(\"./windingLine\");\n\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\n\nfunction isAroundEqual(a, b) {\n  return Math.abs(a - b) < EPSILON;\n} // 涓存椂鏁扮粍\n\n\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\n\nfunction swapExtrema() {\n  var tmp = extrema[0];\n  extrema[0] = extrema[1];\n  extrema[1] = tmp;\n}\n\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n  // Quick reject\n  if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) {\n    return 0;\n  }\n\n  var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n\n  if (nRoots === 0) {\n    return 0;\n  } else {\n    var w = 0;\n    var nExtrema = -1;\n    var y0_, y1_;\n\n    for (var i = 0; i < nRoots; i++) {\n      var t = roots[i]; // Avoid winding error when intersection point is the connect point of two line of polygon\n\n      var unit = t === 0 || t === 1 ? 0.5 : 1;\n      var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n\n      if (x_ < x) {\n        // Quick reject\n        continue;\n      }\n\n      if (nExtrema < 0) {\n        nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n\n        if (extrema[1] < extrema[0] && nExtrema > 1) {\n          swapExtrema();\n        }\n\n        y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n\n        if (nExtrema > 1) {\n          y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n        }\n      }\n\n      if (nExtrema == 2) {\n        // 鍒嗘垚涓夋鍗曡皟鍑芥暟\n        if (t < extrema[0]) {\n          w += y0_ < y0 ? unit : -unit;\n        } else if (t < extrema[1]) {\n          w += y1_ < y0_ ? unit : -unit;\n        } else {\n          w += y3 < y1_ ? unit : -unit;\n        }\n      } else {\n        // 鍒嗘垚涓ゆ鍗曡皟鍑芥暟\n        if (t < extrema[0]) {\n          w += y0_ < y0 ? unit : -unit;\n        } else {\n          w += y3 < y0_ ? unit : -unit;\n        }\n      }\n    }\n\n    return w;\n  }\n}\n\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n  // Quick reject\n  if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) {\n    return 0;\n  }\n\n  var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n\n  if (nRoots === 0) {\n    return 0;\n  } else {\n    var t = curve.quadraticExtremum(y0, y1, y2);\n\n    if (t >= 0 && t <= 1) {\n      var w = 0;\n      var y_ = curve.quadraticAt(y0, y1, y2, t);\n\n      for (var i = 0; i < nRoots; i++) {\n        // Remove one endpoint.\n        var unit = roots[i] === 0 || roots[i] === 1 ? 0.5 : 1;\n        var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n\n        if (x_ < x) {\n          // Quick reject\n          continue;\n        }\n\n        if (roots[i] < t) {\n          w += y_ < y0 ? unit : -unit;\n        } else {\n          w += y2 < y_ ? unit : -unit;\n        }\n      }\n\n      return w;\n    } else {\n      // Remove one endpoint.\n      var unit = roots[0] === 0 || roots[0] === 1 ? 0.5 : 1;\n      var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n\n      if (x_ < x) {\n        // Quick reject\n        return 0;\n      }\n\n      return y2 < y0 ? unit : -unit;\n    }\n  }\n} // TODO\n// Arc 鏃嬭浆\n\n\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n  y -= cy;\n\n  if (y > r || y < -r) {\n    return 0;\n  }\n\n  var tmp = Math.sqrt(r * r - y * y);\n  roots[0] = -tmp;\n  roots[1] = tmp;\n  var diff = Math.abs(startAngle - endAngle);\n\n  if (diff < 1e-4) {\n    return 0;\n  }\n\n  if (diff % PI2 < 1e-4) {\n    // Is a circle\n    startAngle = 0;\n    endAngle = PI2;\n    var dir = anticlockwise ? 1 : -1;\n\n    if (x >= roots[0] + cx && x <= roots[1] + cx) {\n      return dir;\n    } else {\n      return 0;\n    }\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var w = 0;\n\n  for (var i = 0; i < 2; i++) {\n    var x_ = roots[i];\n\n    if (x_ + cx > x) {\n      var angle = Math.atan2(y, x_);\n      var dir = anticlockwise ? 1 : -1;\n\n      if (angle < 0) {\n        angle = PI2 + angle;\n      }\n\n      if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n        if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n          dir = -dir;\n        }\n\n        w += dir;\n      }\n    }\n  }\n\n  return w;\n}\n\nfunction containPath(data, lineWidth, isStroke, x, y) {\n  var w = 0;\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++]; // Begin a new subpath\n\n    if (cmd === CMD.M && i > 1) {\n      // Close previous subpath\n      if (!isStroke) {\n        w += windingLine(xi, yi, x0, y0, x, y);\n      } // 濡傛灉琚换浣曚竴涓� subpath 鍖呭惈\n      // if (w !== 0) {\n      //     return true;\n      // }\n\n    }\n\n    if (i == 1) {\n      // 濡傛灉绗竴涓懡浠ゆ槸 L, C, Q\n      // 鍒� previous point 鍚岀粯鍒跺懡浠ょ殑绗竴涓� point\n      //\n      // 绗竴涓懡浠や负 Arc 鐨勬儏鍐典笅浼氬湪鍚庨潰鐗规畩澶勭悊\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    switch (cmd) {\n      case CMD.M:\n        // moveTo 鍛戒护閲嶆柊鍒涘缓涓�涓柊鐨� subpath, 骞朵笖鏇存柊鏂扮殑璧风偣\n        // 鍦� closePath 鐨勬椂鍊欎娇鐢╘n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        if (isStroke) {\n          if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n            return true;\n          }\n        } else {\n          // NOTE 鍦ㄧ涓�涓懡浠や负 L, C, Q 鐨勬椂鍊欎細璁$畻鍑� NaN\n          w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n        }\n\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        if (isStroke) {\n          if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n            return true;\n          }\n        } else {\n          w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n        }\n\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        if (isStroke) {\n          if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n            return true;\n          }\n        } else {\n          w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n        }\n\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        // TODO Arc 鍒ゆ柇鐨勫紑閿�姣旇緝澶n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++]; // TODO Arc 鏃嬭浆\n\n        var psi = data[i++];\n        var anticlockwise = 1 - data[i++];\n        var x1 = Math.cos(theta) * rx + cx;\n        var y1 = Math.sin(theta) * ry + cy; // 涓嶆槸鐩存帴浣跨敤 arc 鍛戒护\n\n        if (i > 1) {\n          w += windingLine(xi, yi, x1, y1, x, y);\n        } else {\n          // 绗竴涓懡浠よ捣鐐硅繕鏈畾涔塡n          x0 = x1;\n          y0 = y1;\n        } // zr 浣跨敤scale鏉ユā鎷熸き鍦�, 杩欓噷涔熷x鍋氫竴瀹氱殑缂╂斁\n\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        if (isStroke) {\n          if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n            return true;\n          }\n        } else {\n          w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n        }\n\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        var x1 = x0 + width;\n        var y1 = y0 + height;\n\n        if (isStroke) {\n          if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y) || line.containStroke(x1, y0, x1, y1, lineWidth, x, y) || line.containStroke(x1, y1, x0, y1, lineWidth, x, y) || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n            return true;\n          }\n        } else {\n          // FIXME Clockwise ?\n          w += windingLine(x1, y0, x1, y1, x, y);\n          w += windingLine(x0, y1, x0, y0, x, y);\n        }\n\n        break;\n\n      case CMD.Z:\n        if (isStroke) {\n          if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n            return true;\n          }\n        } else {\n          // Close a subpath\n          w += windingLine(xi, yi, x0, y0, x, y); // 濡傛灉琚换浣曚竴涓� subpath 鍖呭惈\n          // FIXME subpaths may overlap\n          // if (w !== 0) {\n          //     return true;\n          // }\n        }\n\n        xi = x0;\n        yi = y0;\n        break;\n    }\n  }\n\n  if (!isStroke && !isAroundEqual(yi, y0)) {\n    w += windingLine(xi, yi, x0, y0, x, y) || 0;\n  }\n\n  return w !== 0;\n}\n\nfunction contain(pathData, x, y) {\n  return containPath(pathData, 0, false, x, y);\n}\n\nfunction containStroke(pathData, lineWidth, x, y) {\n  return containPath(pathData, lineWidth, true, x, y);\n}\n\nexports.contain = contain;\nexports.containStroke = containStroke;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/path.js\n// module id = hTgT\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar numberUtil = require(\"../../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file  Using layout algorithm transform the raw data to layout information.\n * @author Deqing Li(annong035@gmail.com)\n */\nfunction _default(ecModel, api) {\n  ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n    var data = seriesModel.getData();\n    var single = seriesModel.coordinateSystem;\n    var layoutInfo = {}; // use the axis boundingRect for view\n\n    var rect = single.getRect();\n    layoutInfo.rect = rect;\n    var boundaryGap = seriesModel.get('boundaryGap');\n    var axis = single.getAxis();\n    layoutInfo.boundaryGap = boundaryGap;\n\n    if (axis.orient === 'horizontal') {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n      var height = rect.height - boundaryGap[0] - boundaryGap[1];\n      themeRiverLayout(data, seriesModel, height);\n    } else {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n      var width = rect.width - boundaryGap[0] - boundaryGap[1];\n      themeRiverLayout(data, seriesModel, width);\n    }\n\n    data.setLayout('layoutInfo', layoutInfo);\n  });\n}\n/**\n * The layout information about themeriver\n *\n * @param {module:echarts/data/List} data  data in the series\n * @param {module:echarts/model/Series} seriesModel  the model object of themeRiver series\n * @param {number} height  value used to compute every series height\n */\n\n\nfunction themeRiverLayout(data, seriesModel, height) {\n  if (!data.count()) {\n    return;\n  }\n\n  var coordSys = seriesModel.coordinateSystem; // the data in each layer are organized into a series.\n\n  var layerSeries = seriesModel.getLayerSeries(); // the points in each layer.\n\n  var timeDim = data.mapDimension('single');\n  var valueDim = data.mapDimension('value');\n  var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n    return zrUtil.map(singleLayer.indices, function (idx) {\n      var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n      pt[1] = data.get(valueDim, idx);\n      return pt;\n    });\n  });\n  var base = computeBaseline(layerPoints);\n  var baseLine = base.y0;\n  var ky = height / base.max; // set layout information for each item.\n\n  var n = layerSeries.length;\n  var m = layerSeries[0].indices.length;\n  var baseY0;\n\n  for (var j = 0; j < m; ++j) {\n    baseY0 = baseLine[j] * ky;\n    data.setItemLayout(layerSeries[0].indices[j], {\n      layerIndex: 0,\n      x: layerPoints[0][j][0],\n      y0: baseY0,\n      y: layerPoints[0][j][1] * ky\n    });\n\n    for (var i = 1; i < n; ++i) {\n      baseY0 += layerPoints[i - 1][j][1] * ky;\n      data.setItemLayout(layerSeries[i].indices[j], {\n        layerIndex: i,\n        x: layerPoints[i][j][0],\n        y0: baseY0,\n        y: layerPoints[i][j][1] * ky\n      });\n    }\n  }\n}\n/**\n * Compute the baseLine of the rawdata\n * Inspired by Lee Byron's paper Stacked Graphs - Geometry & Aesthetics\n *\n * @param  {Array.<Array>} data  the points in each layer\n * @return {Object}\n */\n\n\nfunction computeBaseline(data) {\n  var layerNum = data.length;\n  var pointNum = data[0].length;\n  var sums = [];\n  var y0 = [];\n  var max = 0;\n  var temp;\n  var base = {};\n\n  for (var i = 0; i < pointNum; ++i) {\n    for (var j = 0, temp = 0; j < layerNum; ++j) {\n      temp += data[j][i][1];\n    }\n\n    if (temp > max) {\n      max = temp;\n    }\n\n    sums.push(temp);\n  }\n\n  for (var k = 0; k < pointNum; ++k) {\n    y0[k] = (max - sums[k]) / 2;\n  }\n\n  max = 0;\n\n  for (var l = 0; l < pointNum; ++l) {\n    var sum = sums[l] + y0[l];\n\n    if (sum > max) {\n      max = sum;\n    }\n  }\n\n  base.y0 = y0;\n  base.max = max;\n  return base;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver/themeRiverLayout.js\n// module id = heZm\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapModel = require(\"./VisualMapModel\");\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar visualDefault = require(\"../../visual/visualDefault\");\n\nvar _number = require(\"../../util/number\");\n\nvar reformIntervals = _number.reformIntervals;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PiecewiseModel = VisualMapModel.extend({\n  type: 'visualMap.piecewise',\n\n  /**\n   * Order Rule:\n   *\n   * option.categories / option.pieces / option.text / option.selected:\n   *     If !option.inverse,\n   *     Order when vertical: ['top', ..., 'bottom'].\n   *     Order when horizontal: ['left', ..., 'right'].\n   *     If option.inverse, the meaning of\n   *     the order should be reversed.\n   *\n   * this._pieceList:\n   *     The order is always [low, ..., high].\n   *\n   * Mapping from location to low-high:\n   *     If !option.inverse\n   *     When vertical, top is high.\n   *     When horizontal, right is high.\n   *     If option.inverse, reverse.\n   */\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    selected: null,\n    // Object. If not specified, means selected.\n    // When pieces and splitNumber: {'0': true, '5': true}\n    // When categories: {'cate1': false, 'cate3': true}\n    // When selected === false, means all unselected.\n    minOpen: false,\n    // Whether include values that smaller than `min`.\n    maxOpen: false,\n    // Whether include values that bigger than `max`.\n    align: 'auto',\n    // 'auto', 'left', 'right'\n    itemWidth: 20,\n    // When put the controller vertically, it is the length of\n    // horizontal side of each item. Otherwise, vertical side.\n    itemHeight: 14,\n    // When put the controller vertically, it is the length of\n    // vertical side of each item. Otherwise, horizontal side.\n    itemSymbol: 'roundRect',\n    pieceList: null,\n    // Each item is Object, with some of those attrs:\n    // {min, max, lt, gt, lte, gte, value,\n    // color, colorSaturation, colorAlpha, opacity,\n    // symbol, symbolSize}, which customize the range or visual\n    // coding of the certain piece. Besides, see \"Order Rule\".\n    categories: null,\n    // category names, like: ['some1', 'some2', 'some3'].\n    // Attr min/max are ignored when categories set. See \"Order Rule\"\n    splitNumber: 5,\n    // If set to 5, auto split five pieces equally.\n    // If set to 0 and component type not set, component type will be\n    // determined as \"continuous\". (It is less reasonable but for ec2\n    // compatibility, see echarts/component/visualMap/typeDefaulter)\n    selectedMode: 'multiple',\n    // Can be 'multiple' or 'single'.\n    itemGap: 10,\n    // The gap between two items, in px.\n    hoverLink: true,\n    // Enable hover highlight.\n    showLabel: null // By default, when text is used, label will hide (the logic\n    // is remained for compatibility reason)\n\n  },\n\n  /**\n   * @override\n   */\n  optionUpdated: function (newOption, isInit) {\n    PiecewiseModel.superApply(this, 'optionUpdated', arguments);\n    /**\n     * The order is always [low, ..., high].\n     * [{text: string, interval: Array.<number>}, ...]\n     * @private\n     * @type {Array.<Object>}\n     */\n\n    this._pieceList = [];\n    this.resetExtent();\n    /**\n     * 'pieces', 'categories', 'splitNumber'\n     * @type {string}\n     */\n\n    var mode = this._mode = this._determineMode();\n\n    resetMethods[this._mode].call(this);\n\n    this._resetSelected(newOption, isInit);\n\n    var categories = this.option.categories;\n    this.resetVisual(function (mappingOption, state) {\n      if (mode === 'categories') {\n        mappingOption.mappingMethod = 'category';\n        mappingOption.categories = zrUtil.clone(categories);\n      } else {\n        mappingOption.dataExtent = this.getExtent();\n        mappingOption.mappingMethod = 'piecewise';\n        mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n          var piece = zrUtil.clone(piece);\n\n          if (state !== 'inRange') {\n            // FIXME\n            // outOfRange do not support special visual in pieces.\n            piece.visual = null;\n          }\n\n          return piece;\n        });\n      }\n    });\n  },\n\n  /**\n   * @protected\n   * @override\n   */\n  completeVisualOption: function () {\n    // Consider this case:\n    // visualMap: {\n    //      pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n    // }\n    // where no inRange/outOfRange set but only pieces. So we should make\n    // default inRange/outOfRange for this case, otherwise visuals that only\n    // appear in `pieces` will not be taken into account in visual encoding.\n    var option = this.option;\n    var visualTypesInPieces = {};\n    var visualTypes = VisualMapping.listVisualTypes();\n    var isCategory = this.isCategory();\n    zrUtil.each(option.pieces, function (piece) {\n      zrUtil.each(visualTypes, function (visualType) {\n        if (piece.hasOwnProperty(visualType)) {\n          visualTypesInPieces[visualType] = 1;\n        }\n      });\n    });\n    zrUtil.each(visualTypesInPieces, function (v, visualType) {\n      var exists = 0;\n      zrUtil.each(this.stateList, function (state) {\n        exists |= has(option, state, visualType) || has(option.target, state, visualType);\n      }, this);\n      !exists && zrUtil.each(this.stateList, function (state) {\n        (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n      });\n    }, this);\n\n    function has(obj, state, visualType) {\n      return obj && obj[state] && (zrUtil.isObject(obj[state]) ? obj[state].hasOwnProperty(visualType) : obj[state] === visualType // e.g., inRange: 'symbol'\n      );\n    }\n\n    VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\n  },\n  _resetSelected: function (newOption, isInit) {\n    var thisOption = this.option;\n    var pieceList = this._pieceList; // Selected do not merge but all override.\n\n    var selected = (isInit ? thisOption : newOption).selected || {};\n    thisOption.selected = selected; // Consider 'not specified' means true.\n\n    zrUtil.each(pieceList, function (piece, index) {\n      var key = this.getSelectedMapKey(piece);\n\n      if (!selected.hasOwnProperty(key)) {\n        selected[key] = true;\n      }\n    }, this);\n\n    if (thisOption.selectedMode === 'single') {\n      // Ensure there is only one selected.\n      var hasSel = false;\n      zrUtil.each(pieceList, function (piece, index) {\n        var key = this.getSelectedMapKey(piece);\n\n        if (selected[key]) {\n          hasSel ? selected[key] = false : hasSel = true;\n        }\n      }, this);\n    } // thisOption.selectedMode === 'multiple', default: all selected.\n\n  },\n\n  /**\n   * @public\n   */\n  getSelectedMapKey: function (piece) {\n    return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n  },\n\n  /**\n   * @public\n   */\n  getPieceList: function () {\n    return this._pieceList;\n  },\n\n  /**\n   * @private\n   * @return {string}\n   */\n  _determineMode: function () {\n    var option = this.option;\n    return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n  },\n\n  /**\n   * @public\n   * @override\n   */\n  setSelected: function (selected) {\n    this.option.selected = zrUtil.clone(selected);\n  },\n\n  /**\n   * @public\n   * @override\n   */\n  getValueState: function (value) {\n    var index = VisualMapping.findPieceIndex(value, this._pieceList);\n    return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n  },\n\n  /**\n   * @public\n   * @params {number} pieceIndex piece index in visualMapModel.getPieceList()\n   * @return {Array.<Object>} [{seriesId, dataIndices: <Array.<number>>}, ...]\n   */\n  findTargetDataIndices: function (pieceIndex) {\n    var result = [];\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        // Should always base on model pieceList, because it is order sensitive.\n        var pIdx = VisualMapping.findPieceIndex(value, this._pieceList);\n        pIdx === pieceIndex && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  },\n\n  /**\n   * @private\n   * @param {Object} piece piece.value or piece.interval is required.\n   * @return {number} Can be Infinity or -Infinity\n   */\n  getRepresentValue: function (piece) {\n    var representValue;\n\n    if (this.isCategory()) {\n      representValue = piece.value;\n    } else {\n      if (piece.value != null) {\n        representValue = piece.value;\n      } else {\n        var pieceInterval = piece.interval || [];\n        representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n      }\n    }\n\n    return representValue;\n  },\n  getVisualMeta: function (getColorVisual) {\n    // Do not support category. (category axis is ordinal, numerical)\n    if (this.isCategory()) {\n      return;\n    }\n\n    var stops = [];\n    var outerColors = [];\n    var visualMapModel = this;\n\n    function setStop(interval, valueState) {\n      var representValue = visualMapModel.getRepresentValue({\n        interval: interval\n      });\n\n      if (!valueState) {\n        valueState = visualMapModel.getValueState(representValue);\n      }\n\n      var color = getColorVisual(representValue, valueState);\n\n      if (interval[0] === -Infinity) {\n        outerColors[0] = color;\n      } else if (interval[1] === Infinity) {\n        outerColors[1] = color;\n      } else {\n        stops.push({\n          value: interval[0],\n          color: color\n        }, {\n          value: interval[1],\n          color: color\n        });\n      }\n    } // Suplement\n\n\n    var pieceList = this._pieceList.slice();\n\n    if (!pieceList.length) {\n      pieceList.push({\n        interval: [-Infinity, Infinity]\n      });\n    } else {\n      var edge = pieceList[0].interval[0];\n      edge !== -Infinity && pieceList.unshift({\n        interval: [-Infinity, edge]\n      });\n      edge = pieceList[pieceList.length - 1].interval[1];\n      edge !== Infinity && pieceList.push({\n        interval: [edge, Infinity]\n      });\n    }\n\n    var curr = -Infinity;\n    zrUtil.each(pieceList, function (piece) {\n      var interval = piece.interval;\n\n      if (interval) {\n        // Fulfill gap.\n        interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n        setStop(interval.slice());\n        curr = interval[1];\n      }\n    }, this);\n    return {\n      stops: stops,\n      outerColors: outerColors\n    };\n  }\n});\n/**\n * Key is this._mode\n * @type {Object}\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\n */\n\nvar resetMethods = {\n  splitNumber: function () {\n    var thisOption = this.option;\n    var pieceList = this._pieceList;\n    var precision = Math.min(thisOption.precision, 20);\n    var dataExtent = this.getExtent();\n    var splitNumber = thisOption.splitNumber;\n    splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n    thisOption.splitNumber = splitNumber;\n    var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\n\n    while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n      precision++;\n    }\n\n    thisOption.precision = precision;\n    splitStep = +splitStep.toFixed(precision);\n    var index = 0;\n\n    if (thisOption.minOpen) {\n      pieceList.push({\n        index: index++,\n        interval: [-Infinity, dataExtent[0]],\n        close: [0, 0]\n      });\n    }\n\n    for (var curr = dataExtent[0], len = index + splitNumber; index < len; curr += splitStep) {\n      var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n      pieceList.push({\n        index: index++,\n        interval: [curr, max],\n        close: [1, 1]\n      });\n    }\n\n    if (thisOption.maxOpen) {\n      pieceList.push({\n        index: index++,\n        interval: [dataExtent[1], Infinity],\n        close: [0, 0]\n      });\n    }\n\n    reformIntervals(pieceList);\n    zrUtil.each(pieceList, function (piece) {\n      piece.text = this.formatValueText(piece.interval);\n    }, this);\n  },\n  categories: function () {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.categories, function (cate) {\n      // FIXME category妯″紡涔熶娇鐢╬ieceList锛屼絾鍦╲isualMapping涓笉鏄娇鐢╬ieceList銆俓n      // 鏄惁鏀逛竴鑷淬�俓n      this._pieceList.push({\n        text: this.formatValueText(cate, true),\n        value: cate\n      });\n    }, this); // See \"Order Rule\".\n\n    normalizeReverse(thisOption, this._pieceList);\n  },\n  pieces: function () {\n    var thisOption = this.option;\n    var pieceList = this._pieceList;\n    zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n      if (!zrUtil.isObject(pieceListItem)) {\n        pieceListItem = {\n          value: pieceListItem\n        };\n      }\n\n      var item = {\n        text: '',\n        index: index\n      };\n\n      if (pieceListItem.label != null) {\n        item.text = pieceListItem.label;\n      }\n\n      if (pieceListItem.hasOwnProperty('value')) {\n        var value = item.value = pieceListItem.value;\n        item.interval = [value, value];\n        item.close = [1, 1];\n      } else {\n        // `min` `max` is legacy option.\n        // `lt` `gt` `lte` `gte` is recommanded.\n        var interval = item.interval = [];\n        var close = item.close = [0, 0];\n        var closeList = [1, 0, 1];\n        var infinityList = [-Infinity, Infinity];\n        var useMinMax = [];\n\n        for (var lg = 0; lg < 2; lg++) {\n          var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n          for (var i = 0; i < 3 && interval[lg] == null; i++) {\n            interval[lg] = pieceListItem[names[i]];\n            close[lg] = closeList[i];\n            useMinMax[lg] = i === 2;\n          }\n\n          interval[lg] == null && (interval[lg] = infinityList[lg]);\n        }\n\n        useMinMax[0] && interval[1] === Infinity && (close[0] = 0);\n        useMinMax[1] && interval[0] === -Infinity && (close[1] = 0);\n\n        if (interval[0] === interval[1] && close[0] && close[1]) {\n          // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n          // we use value to lift the priority when min === max\n          item.value = interval[0];\n        }\n      }\n\n      item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n      pieceList.push(item);\n    }, this); // See \"Order Rule\".\n\n    normalizeReverse(thisOption, pieceList); // Only pieces\n\n    reformIntervals(pieceList);\n    zrUtil.each(pieceList, function (piece) {\n      var close = piece.close;\n      var edgeSymbols = [['<', '鈮�'][close[1]], ['>', '鈮�'][close[0]]];\n      piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n    }, this);\n  }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n  var inverse = thisOption.inverse;\n\n  if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n    pieceList.reverse();\n  }\n}\n\nvar _default = PiecewiseModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/PiecewiseModel.js\n// module id = hqCH\n// module chunks = 0","var MarkerModel = require(\"./MarkerModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = MarkerModel.extend({\n  type: 'markLine',\n  defaultOption: {\n    zlevel: 0,\n    z: 5,\n    symbol: ['circle', 'arrow'],\n    symbolSize: [8, 16],\n    //symbolRotate: 0,\n    precision: 2,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'end'\n    },\n    lineStyle: {\n      type: 'dashed'\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        width: 3\n      }\n    },\n    animationEasing: 'linear'\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkLineModel.js\n// module id = hxPW\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordinateSystemCreators = {};\n\nfunction CoordinateSystemManager() {\n  this._coordinateSystems = [];\n}\n\nCoordinateSystemManager.prototype = {\n  constructor: CoordinateSystemManager,\n  create: function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  },\n  update: function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  },\n  getCoordinateSystems: function () {\n    return this._coordinateSystems.slice();\n  }\n};\n\nCoordinateSystemManager.register = function (type, coordinateSystemCreator) {\n  coordinateSystemCreators[type] = coordinateSystemCreator;\n};\n\nCoordinateSystemManager.get = function (type) {\n  return coordinateSystemCreators[type];\n};\n\nvar _default = CoordinateSystemManager;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/CoordinateSystem.js\n// module id = i+pt\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\nvar addCommas = _format.addCommas;\n\nvar dataSelectableMixin = require(\"../../component/helper/selectableMixin\");\n\nvar _dataProvider = require(\"../../data/helper/dataProvider\");\n\nvar retrieveRawAttr = _dataProvider.retrieveRawAttr;\n\nvar geoCreator = require(\"../../coord/geo/geoCreator\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar MapSeries = SeriesModel.extend({\n  type: 'series.map',\n  dependencies: ['geo'],\n  layoutMode: 'box',\n\n  /**\n   * Only first map series of same mapType will drawMap\n   * @type {boolean}\n   */\n  needsDrawMap: false,\n\n  /**\n   * Group of all map series with same mapType\n   * @type {boolean}\n   */\n  seriesGroup: [],\n  init: function (option) {\n    // this._fillOption(option, this.getMapType());\n    // this.option = option;\n    MapSeries.superApply(this, 'init', arguments);\n    this.updateSelectedMap(this._createSelectableList());\n  },\n  getInitialData: function (option) {\n    return createListSimply(this, ['value']);\n  },\n  mergeOption: function (newOption) {\n    // this._fillOption(newOption, this.getMapType());\n    MapSeries.superApply(this, 'mergeOption', arguments);\n    this.updateSelectedMap(this._createSelectableList());\n  },\n  _createSelectableList: function () {\n    var data = this.getRawData();\n    var valueDim = data.mapDimension('value');\n    var targetList = [];\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      targetList.push({\n        name: data.getName(i),\n        value: data.get(valueDim, i),\n        selected: retrieveRawAttr(data, i, 'selected')\n      });\n    }\n\n    targetList = geoCreator.getFilledRegions(targetList, this.getMapType(), this.option.nameMap);\n    return targetList;\n  },\n\n  /**\n   * If no host geo model, return null, which means using a\n   * inner exclusive geo model.\n   */\n  getHostGeoModel: function () {\n    var geoIndex = this.option.geoIndex;\n    return geoIndex != null ? this.dependentModels.geo[geoIndex] : null;\n  },\n  getMapType: function () {\n    return (this.getHostGeoModel() || this).option.map;\n  },\n  _fillOption: function (option, mapName) {// Shallow clone\n    // option = zrUtil.extend({}, option);\n    // option.data = geoCreator.getFilledRegions(option.data, mapName, option.nameMap);\n    // return option;\n  },\n  getRawValue: function (dataIndex) {\n    // Use value stored in data instead because it is calculated from multiple series\n    // FIXME Provide all value of multiple series ?\n    var data = this.getData();\n    return data.get(data.mapDimension('value'), dataIndex);\n  },\n\n  /**\n   * Get model of region\n   * @param  {string} name\n   * @return {module:echarts/model/Model}\n   */\n  getRegionModel: function (regionName) {\n    var data = this.getData();\n    return data.getItemModel(data.indexOfName(regionName));\n  },\n\n  /**\n   * Map tooltip formatter\n   *\n   * @param {number} dataIndex\n   */\n  formatTooltip: function (dataIndex) {\n    // FIXME orignalData and data is a bit confusing\n    var data = this.getData();\n    var formattedValue = addCommas(this.getRawValue(dataIndex));\n    var name = data.getName(dataIndex);\n    var seriesGroup = this.seriesGroup;\n    var seriesNames = [];\n\n    for (var i = 0; i < seriesGroup.length; i++) {\n      var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n      var valueDim = data.mapDimension('value');\n\n      if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n        seriesNames.push(encodeHTML(seriesGroup[i].name));\n      }\n    }\n\n    return seriesNames.join(', ') + '<br />' + encodeHTML(name + ' : ' + formattedValue);\n  },\n\n  /**\n   * @implement\n   */\n  getTooltipPosition: function (dataIndex) {\n    if (dataIndex != null) {\n      var name = this.getData().getName(dataIndex);\n      var geo = this.coordinateSystem;\n      var region = geo.getRegion(name);\n      return region && geo.dataToPoint(region.center);\n    }\n  },\n  setZoom: function (zoom) {\n    this.option.zoom = zoom;\n  },\n  setCenter: function (center) {\n    this.option.center = center;\n  },\n  defaultOption: {\n    // 涓�绾у眰鍙燶n    zlevel: 0,\n    // 浜岀骇灞傚彔\n    z: 2,\n    coordinateSystem: 'geo',\n    // map should be explicitly specified since ec3.\n    map: '',\n    // If `geoIndex` is not specified, a exclusive geo will be\n    // created. Otherwise use the specified geo component, and\n    // `map` and `mapType` are ignored.\n    // geoIndex: 0,\n    // 'center' | 'left' | 'right' | 'x%' | {number}\n    left: 'center',\n    // 'center' | 'top' | 'bottom' | 'x%' | {number}\n    top: 'center',\n    // right\n    // bottom\n    // width:\n    // height\n    // Aspect is width / height. Inited to be geoJson bbox aspect\n    // This parameter is used for scale this aspect\n    aspectScale: 0.75,\n    ///// Layout with center and size\n    // If you wan't to put map in a fixed size box with right aspect ratio\n    // This two properties may more conveninet\n    // layoutCenter: [50%, 50%]\n    // layoutSize: 100\n    // 鏁板�煎悎骞舵柟寮忥紝榛樿鍔犲拰锛屽彲閫変负锛歕n    // 'sum' | 'average' | 'max' | 'min'\n    // mapValueCalculation: 'sum',\n    // 鍦板浘鏁板�艰绠楃粨鏋滃皬鏁扮簿搴n    // mapValuePrecision: 0,\n    // 鏄剧ず鍥句緥棰滆壊鏍囪瘑锛堢郴鍒楁爣璇嗙殑灏忓渾鐐癸級锛屽浘渚嬪紑鍚椂鏈夋晥\n    showLegendSymbol: true,\n    // 閫夋嫨妯″紡锛岄粯璁ゅ叧闂紝鍙�塻ingle锛宮ultiple\n    // selectedMode: false,\n    dataRangeHoverLink: true,\n    // 鏄惁寮�鍚缉鏀惧強婕父妯″紡\n    // roam: false,\n    // Define left-top, right-bottom coords to control view\n    // For example, [ [180, 90], [-180, -90] ],\n    // higher priority than center and zoom\n    boundingCoords: null,\n    // Default on center of map\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    // scaleLimit: null,\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      areaColor: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        areaColor: 'rgba(255,215,0,0.8)'\n      }\n    }\n  }\n});\nzrUtil.mixin(MapSeries, dataSelectableMixin);\nvar _default = MapSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/map/MapSeries.js\n// module id = i1Hm\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"../coord/single/singleCreator\");\n\nrequire(\"./axis/SingleAxisView\");\n\nrequire(\"../coord/single/AxisModel\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./axisPointer/SingleAxisPointer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.extendComponentView({\n  type: 'single'\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/singleAxis.js\n// module id = iHmX\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.getStyle = exports.once = exports.off = exports.on = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; /* istanbul ignore next */\n\nexports.hasClass = hasClass;\nexports.addClass = addClass;\nexports.removeClass = removeClass;\nexports.setStyle = setStyle;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isServer = _vue2.default.prototype.$isServer;\nvar SPECIAL_CHARS_REGEXP = /([\\:\\-\\_]+(.))/g;\nvar MOZ_HACK_REGEXP = /^moz([A-Z])/;\nvar ieVersion = isServer ? 0 : Number(document.documentMode);\n\n/* istanbul ignore next */\nvar trim = function trim(string) {\n  return (string || '').replace(/^[\\s\\uFEFF]+|[\\s\\uFEFF]+$/g, '');\n};\n/* istanbul ignore next */\nvar camelCase = function camelCase(name) {\n  return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) {\n    return offset ? letter.toUpperCase() : letter;\n  }).replace(MOZ_HACK_REGEXP, 'Moz$1');\n};\n\n/* istanbul ignore next */\nvar on = exports.on = function () {\n  if (!isServer && document.addEventListener) {\n    return function (element, event, handler) {\n      if (element && event && handler) {\n        element.addEventListener(event, handler, false);\n      }\n    };\n  } else {\n    return function (element, event, handler) {\n      if (element && event && handler) {\n        element.attachEvent('on' + event, handler);\n      }\n    };\n  }\n}();\n\n/* istanbul ignore next */\nvar off = exports.off = function () {\n  if (!isServer && document.removeEventListener) {\n    return function (element, event, handler) {\n      if (element && event) {\n        element.removeEventListener(event, handler, false);\n      }\n    };\n  } else {\n    return function (element, event, handler) {\n      if (element && event) {\n        element.detachEvent('on' + event, handler);\n      }\n    };\n  }\n}();\n\n/* istanbul ignore next */\nvar once = exports.once = function once(el, event, fn) {\n  var listener = function listener() {\n    if (fn) {\n      fn.apply(this, arguments);\n    }\n    off(el, event, listener);\n  };\n  on(el, event, listener);\n};\n\n/* istanbul ignore next */\nfunction hasClass(el, cls) {\n  if (!el || !cls) return false;\n  if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');\n  if (el.classList) {\n    return el.classList.contains(cls);\n  } else {\n    return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;\n  }\n};\n\n/* istanbul ignore next */\nfunction addClass(el, cls) {\n  if (!el) return;\n  var curClass = el.className;\n  var classes = (cls || '').split(' ');\n\n  for (var i = 0, j = classes.length; i < j; i++) {\n    var clsName = classes[i];\n    if (!clsName) continue;\n\n    if (el.classList) {\n      el.classList.add(clsName);\n    } else if (!hasClass(el, clsName)) {\n      curClass += ' ' + clsName;\n    }\n  }\n  if (!el.classList) {\n    el.className = curClass;\n  }\n};\n\n/* istanbul ignore next */\nfunction removeClass(el, cls) {\n  if (!el || !cls) return;\n  var classes = cls.split(' ');\n  var curClass = ' ' + el.className + ' ';\n\n  for (var i = 0, j = classes.length; i < j; i++) {\n    var clsName = classes[i];\n    if (!clsName) continue;\n\n    if (el.classList) {\n      el.classList.remove(clsName);\n    } else if (hasClass(el, clsName)) {\n      curClass = curClass.replace(' ' + clsName + ' ', ' ');\n    }\n  }\n  if (!el.classList) {\n    el.className = trim(curClass);\n  }\n};\n\n/* istanbul ignore next */\nvar getStyle = exports.getStyle = ieVersion < 9 ? function (element, styleName) {\n  if (isServer) return;\n  if (!element || !styleName) return null;\n  styleName = camelCase(styleName);\n  if (styleName === 'float') {\n    styleName = 'styleFloat';\n  }\n  try {\n    switch (styleName) {\n      case 'opacity':\n        try {\n          return element.filters.item('alpha').opacity / 100;\n        } catch (e) {\n          return 1.0;\n        }\n      default:\n        return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null;\n    }\n  } catch (e) {\n    return element.style[styleName];\n  }\n} : function (element, styleName) {\n  if (isServer) return;\n  if (!element || !styleName) return null;\n  styleName = camelCase(styleName);\n  if (styleName === 'float') {\n    styleName = 'cssFloat';\n  }\n  try {\n    var computed = document.defaultView.getComputedStyle(element, '');\n    return element.style[styleName] || computed ? computed[styleName] : null;\n  } catch (e) {\n    return element.style[styleName];\n  }\n};\n\n/* istanbul ignore next */\nfunction setStyle(element, styleName, value) {\n  if (!element || !styleName) return;\n\n  if ((typeof styleName === 'undefined' ? 'undefined' : _typeof(styleName)) === 'object') {\n    for (var prop in styleName) {\n      if (styleName.hasOwnProperty(prop)) {\n        setStyle(element, prop, styleName[prop]);\n      }\n    }\n  } else {\n    styleName = camelCase(styleName);\n    if (styleName === 'opacity' && ieVersion < 9) {\n      element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';\n    } else {\n      element.style[styleName] = value;\n    }\n  }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/dom.js\n// module id = iOou\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(coordSys) {\n  var rect = coordSys.getRect();\n  var rangeInfo = coordSys.getRangeInfo();\n  return {\n    coordSys: {\n      type: 'calendar',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      cellWidth: coordSys.getCellWidth(),\n      cellHeight: coordSys.getCellHeight(),\n      rangeInfo: {\n        start: rangeInfo.start,\n        end: rangeInfo.end,\n        weeks: rangeInfo.weeks,\n        dayCount: rangeInfo.allDay\n      }\n    },\n    api: {\n      coord: function (data, clamp) {\n        return coordSys.dataToPoint(data, clamp);\n      }\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/calendar/prepareCustom.js\n// module id = iamZ\n// module chunks = 0","var Displayable = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar zrUtil = require(\"../core/util\");\n\nvar imageHelper = require(\"./helper/image\");\n\n/**\n * @alias zrender/graphic/Image\n * @extends module:zrender/graphic/Displayable\n * @constructor\n * @param {Object} opts\n */\nfunction ZImage(opts) {\n  Displayable.call(this, opts);\n}\n\nZImage.prototype = {\n  constructor: ZImage,\n  type: 'image',\n  brush: function (ctx, prevEl) {\n    var style = this.style;\n    var src = style.image; // Must bind each time\n\n    style.bind(ctx, this, prevEl);\n    var image = this._image = imageHelper.createOrUpdateImage(src, this._image, this, this.onload);\n\n    if (!image || !imageHelper.isImageReady(image)) {\n      return;\n    } // 鍥剧墖宸茬粡鍔犺浇瀹屾垚\n    // if (image.nodeName.toUpperCase() == 'IMG') {\n    //     if (!image.complete) {\n    //         return;\n    //     }\n    // }\n    // Else is canvas\n\n\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = style.width;\n    var height = style.height;\n    var aspect = image.width / image.height;\n\n    if (width == null && height != null) {\n      // Keep image/height ratio\n      width = height * aspect;\n    } else if (height == null && width != null) {\n      height = width / aspect;\n    } else if (width == null && height == null) {\n      width = image.width;\n      height = image.height;\n    } // 璁剧疆transform\n\n\n    this.setTransform(ctx);\n\n    if (style.sWidth && style.sHeight) {\n      var sx = style.sx || 0;\n      var sy = style.sy || 0;\n      ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    } else if (style.sx && style.sy) {\n      var sx = style.sx;\n      var sy = style.sy;\n      var sWidth = width - sx;\n      var sHeight = height - sy;\n      ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    } else {\n      ctx.drawImage(image, x, y, width, height);\n    } // Draw rect text\n\n\n    if (style.text != null) {\n      // Only restore transform when needs draw text.\n      this.restoreTransform(ctx);\n      this.drawRectText(ctx, this.getBoundingRect());\n    }\n  },\n  getBoundingRect: function () {\n    var style = this.style;\n\n    if (!this._rect) {\n      this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\n    }\n\n    return this._rect;\n  }\n};\nzrUtil.inherits(ZImage, Displayable);\nvar _default = ZImage;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/Image.js\n// module id = ihWO\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar IncrementalDisplayable = require(\"zrender/lib/graphic/IncrementalDisplayable\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Batch by color\nvar BOOST_SIZE_THRESHOLD = 4;\nvar LargeSymbolPath = graphic.extendShape({\n  shape: {\n    points: null\n  },\n  symbolProxy: null,\n  buildPath: function (path, shape) {\n    var points = shape.points;\n    var size = shape.size;\n    var symbolProxy = this.symbolProxy;\n    var symbolProxyShape = symbolProxy.shape;\n    var ctx = path.getContext ? path.getContext() : path;\n    var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD; // Do draw in afterBrush.\n\n    if (canBoost) {\n      return;\n    }\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      symbolProxyShape.x = x - size[0] / 2;\n      symbolProxyShape.y = y - size[1] / 2;\n      symbolProxyShape.width = size[0];\n      symbolProxyShape.height = size[1];\n      symbolProxy.buildPath(path, symbolProxyShape, true);\n    }\n  },\n  afterBrush: function (ctx) {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var canBoost = size[0] < BOOST_SIZE_THRESHOLD;\n\n    if (!canBoost) {\n      return;\n    }\n\n    this.setTransform(ctx); // PENDING If style or other canvas status changed?\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      } // fillRect is faster than building a rect path and draw.\n      // And it support light globalCompositeOperation.\n\n\n      ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n    }\n\n    this.restoreTransform(ctx);\n  },\n  findDataIndex: function (x, y) {\n    // TODO ???\n    // Consider transform\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var w = Math.max(size[0], 4);\n    var h = Math.max(size[1], 4); // Not consider transform\n    // Treat each element as a rect\n    // top down traverse\n\n    for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n      var i = idx * 2;\n      var x0 = points[i] - w / 2;\n      var y0 = points[i + 1] - h / 2;\n\n      if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n        return idx;\n      }\n    }\n\n    return -1;\n  }\n});\n\nfunction LargeSymbolDraw() {\n  this.group = new graphic.Group();\n}\n\nvar largeSymbolProto = LargeSymbolDraw.prototype;\n\nlargeSymbolProto.isPersistent = function () {\n  return !this._incremental;\n};\n/**\n * Update symbols draw by new data\n * @param {module:echarts/data/List} data\n */\n\n\nlargeSymbolProto.updateData = function (data) {\n  this.group.removeAll();\n  var symbolEl = new LargeSymbolPath({\n    rectHover: true,\n    cursor: 'default'\n  });\n  symbolEl.setShape({\n    points: data.getLayout('symbolPoints')\n  });\n\n  this._setCommon(symbolEl, data);\n\n  this.group.add(symbolEl);\n  this._incremental = null;\n};\n\nlargeSymbolProto.updateLayout = function (data) {\n  if (this._incremental) {\n    return;\n  }\n\n  var points = data.getLayout('symbolPoints');\n  this.group.eachChild(function (child) {\n    if (child.startIndex != null) {\n      var len = (child.endIndex - child.startIndex) * 2;\n      var byteOffset = child.startIndex * 4 * 2;\n      points = new Float32Array(points.buffer, byteOffset, len);\n    }\n\n    child.setShape('points', points);\n  });\n};\n\nlargeSymbolProto.incrementalPrepareUpdate = function (data) {\n  this.group.removeAll();\n\n  this._clearIncremental(); // Only use incremental displayables when data amount is larger than 2 million.\n  // PENDING Incremental data?\n\n\n  if (data.count() > 2e6) {\n    if (!this._incremental) {\n      this._incremental = new IncrementalDisplayable({\n        silent: true\n      });\n    }\n\n    this.group.add(this._incremental);\n  } else {\n    this._incremental = null;\n  }\n};\n\nlargeSymbolProto.incrementalUpdate = function (taskParams, data) {\n  var symbolEl;\n\n  if (this._incremental) {\n    symbolEl = new LargeSymbolPath();\n\n    this._incremental.addDisplayable(symbolEl, true);\n  } else {\n    symbolEl = new LargeSymbolPath({\n      rectHover: true,\n      cursor: 'default',\n      startIndex: taskParams.start,\n      endIndex: taskParams.end\n    });\n    symbolEl.incremental = true;\n    this.group.add(symbolEl);\n  }\n\n  symbolEl.setShape({\n    points: data.getLayout('symbolPoints')\n  });\n\n  this._setCommon(symbolEl, data, !!this._incremental);\n};\n\nlargeSymbolProto._setCommon = function (symbolEl, data, isIncremental) {\n  var hostModel = data.hostModel; // TODO\n  // if (data.hasItemVisual.symbolSize) {\n  //     // TODO typed array?\n  //     symbolEl.setShape('sizes', data.mapArray(\n  //         function (idx) {\n  //             var size = data.getItemVisual(idx, 'symbolSize');\n  //             return (size instanceof Array) ? size : [size, size];\n  //         }\n  //     ));\n  // }\n  // else {\n\n  var size = data.getVisual('symbolSize');\n  symbolEl.setShape('size', size instanceof Array ? size : [size, size]); // }\n  // Create symbolProxy to build path for each data\n\n  symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0); // Use symbolProxy setColor method\n\n  symbolEl.setColor = symbolEl.symbolProxy.setColor;\n  var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n  symbolEl.useStyle( // Draw shadow when doing fillRect is extremely slow.\n  hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n  var visualColor = data.getVisual('color');\n\n  if (visualColor) {\n    symbolEl.setColor(visualColor);\n  }\n\n  if (!isIncremental) {\n    // Enable tooltip\n    // PENDING May have performance issue when path is extremely large\n    symbolEl.seriesIndex = hostModel.seriesIndex;\n    symbolEl.on('mousemove', function (e) {\n      symbolEl.dataIndex = null;\n      var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n      if (dataIndex >= 0) {\n        // Provide dataIndex for tooltip\n        symbolEl.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n      }\n    });\n  }\n};\n\nlargeSymbolProto.remove = function () {\n  this._clearIncremental();\n\n  this._incremental = null;\n  this.group.removeAll();\n};\n\nlargeSymbolProto._clearIncremental = function () {\n  var incremental = this._incremental;\n\n  if (incremental) {\n    incremental.clearDisplaybles();\n  }\n};\n\nvar _default = LargeSymbolDraw;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/LargeSymbolDraw.js\n// module id = is1E\n// module chunks = 0","require(\"./graphic\");\n\nvar _zrender = require(\"../zrender\");\n\nvar registerPainter = _zrender.registerPainter;\n\nvar Painter = require(\"./Painter\");\n\nregisterPainter('svg', Painter);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/svg/svg.js\n// module id = iw8e\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-gops.js\n// module id = j6Iq\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./treemap/TreemapSeries\");\n\nrequire(\"./treemap/TreemapView\");\n\nrequire(\"./treemap/treemapAction\");\n\nvar treemapVisual = require(\"./treemap/treemapVisual\");\n\nvar treemapLayout = require(\"./treemap/treemapLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(treemapVisual);\necharts.registerLayout(treemapLayout);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap.js\n// module id = jHJB\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Polar = require(\"./Polar\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _axisHelper = require(\"../../coord/axisHelper\");\n\nvar createScaleByModel = _axisHelper.createScaleByModel;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nrequire(\"./PolarModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Axis scale\n\n/**\n * Resize method bound to the polar\n * @param {module:echarts/coord/polar/PolarModel} polarModel\n * @param {module:echarts/ExtensionAPI} api\n */\nfunction resizePolar(polar, polarModel, api) {\n  var center = polarModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  polar.cx = parsePercent(center[0], width);\n  polar.cy = parsePercent(center[1], height);\n  var radiusAxis = polar.getRadiusAxis();\n  var size = Math.min(width, height) / 2;\n  var radius = parsePercent(polarModel.get('radius'), size);\n  radiusAxis.inverse ? radiusAxis.setExtent(radius, 0) : radiusAxis.setExtent(0, radius);\n}\n/**\n * Update polar\n */\n\n\nfunction updatePolarScale(ecModel, api) {\n  var polar = this;\n  var angleAxis = polar.getAngleAxis();\n  var radiusAxis = polar.getRadiusAxis(); // Reset scale\n\n  angleAxis.scale.setExtent(Infinity, -Infinity);\n  radiusAxis.scale.setExtent(Infinity, -Infinity);\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.coordinateSystem === polar) {\n      var data = seriesModel.getData();\n      zrUtil.each(data.mapDimension('radius', true), function (dim) {\n        radiusAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim));\n      });\n      zrUtil.each(data.mapDimension('angle', true), function (dim) {\n        angleAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim));\n      });\n    }\n  });\n  niceScaleExtent(angleAxis.scale, angleAxis.model);\n  niceScaleExtent(radiusAxis.scale, radiusAxis.model); // Fix extent of category angle axis\n\n  if (angleAxis.type === 'category' && !angleAxis.onBand) {\n    var extent = angleAxis.getExtent();\n    var diff = 360 / angleAxis.scale.count();\n    angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n    angleAxis.setExtent(extent[0], extent[1]);\n  }\n}\n/**\n * Set common axis properties\n * @param {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n * @param {module:echarts/coord/polar/AxisModel}\n * @inner\n */\n\n\nfunction setAxis(axis, axisModel) {\n  axis.type = axisModel.get('type');\n  axis.scale = createScaleByModel(axisModel);\n  axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n  axis.inverse = axisModel.get('inverse');\n\n  if (axisModel.mainType === 'angleAxis') {\n    axis.inverse ^= axisModel.get('clockwise');\n    var startAngle = axisModel.get('startAngle');\n    axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n  } // Inject axis instance\n\n\n  axisModel.axis = axis;\n  axis.model = axisModel;\n}\n\nvar polarCreator = {\n  dimensions: Polar.prototype.dimensions,\n  create: function (ecModel, api) {\n    var polarList = [];\n    ecModel.eachComponent('polar', function (polarModel, idx) {\n      var polar = new Polar(idx); // Inject resize and update method\n\n      polar.update = updatePolarScale;\n      var radiusAxis = polar.getRadiusAxis();\n      var angleAxis = polar.getAngleAxis();\n      var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n      var angleAxisModel = polarModel.findAxisModel('angleAxis');\n      setAxis(radiusAxis, radiusAxisModel);\n      setAxis(angleAxis, angleAxisModel);\n      resizePolar(polar, polarModel, api);\n      polarList.push(polar);\n      polarModel.coordinateSystem = polar;\n      polar.model = polarModel;\n    }); // Inject coordinateSystem to series\n\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.get('coordinateSystem') === 'polar') {\n        var polarModel = ecModel.queryComponents({\n          mainType: 'polar',\n          index: seriesModel.get('polarIndex'),\n          id: seriesModel.get('polarId')\n        })[0];\n        seriesModel.coordinateSystem = polarModel.coordinateSystem;\n      }\n    });\n    return polarList;\n  }\n};\nCoordinateSystem.register('polar', polarCreator);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/polarCreator.js\n// module id = jMVH\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./effectScatter/EffectScatterSeries\");\n\nrequire(\"./effectScatter/EffectScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(visualSymbol('effectScatter', 'circle'));\necharts.registerLayout(layoutPoints('effectScatter'));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/effectScatter.js\n// module id = jNkx\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction RadiusAxis(scale, radiusExtent) {\n  Axis.call(this, 'radius', scale, radiusExtent);\n  /**\n   * Axis type\n   *  - 'category'\n   *  - 'value'\n   *  - 'time'\n   *  - 'log'\n   * @type {string}\n   */\n\n  this.type = 'category';\n}\n\nRadiusAxis.prototype = {\n  constructor: RadiusAxis,\n\n  /**\n   * @override\n   */\n  pointToData: function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  },\n  dataToRadius: Axis.prototype.dataToCoord,\n  radiusToData: Axis.prototype.coordToData\n};\nzrUtil.inherits(RadiusAxis, Axis);\nvar _default = RadiusAxis;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/RadiusAxis.js\n// module id = jOR4\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar Model = require(\"../../model/Model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar curry = zrUtil.curry; // Build axisPointerModel, mergin tooltip.axisPointer model for each axis.\n// allAxesInfo should be updated when setOption performed.\n\nfunction collect(ecModel, api) {\n  var result = {\n    /**\n     * key: makeKey(axis.model)\n     * value: {\n     *      axis,\n     *      coordSys,\n     *      axisPointerModel,\n     *      triggerTooltip,\n     *      involveSeries,\n     *      snap,\n     *      seriesModels,\n     *      seriesDataCount\n     * }\n     */\n    axesInfo: {},\n    seriesInvolved: false,\n\n    /**\n     * key: makeKey(coordSys.model)\n     * value: Object: key makeKey(axis.model), value: axisInfo\n     */\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api); // Check seriesInvolved for performance, in case too many series in some chart.\n\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer'); // links can only be set on global.\n\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = []; // Collect axes info.\n\n  each(api.getCoordinateSystems(), function (coordSys) {\n    // Some coordinate system do not support axes, like geo.\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys; // Set tooltip (like 'cross') is a convienent way to show axisPointer\n    // for user. So we enable seting tooltip on coordSys model.\n\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null)); // If axis tooltip used, choose tooltip axis for each coordSys.\n    // Notice this case: coordSys is `grid` but not `cartesian2D` here.\n\n    if (coordSys.getTooltipAxes && globalTooltipModel // If tooltip.showContent is set as false, tooltip will not\n    // show but axisPointer will show as normal.\n    && baseTooltipModel.get('show')) {\n      // Compatible with previous logic. But series.tooltip.trigger: 'axis'\n      // or series.data[n].tooltip.trigger: 'axis' are not support any more.\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get('axisPointer.type') === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get('axisPointer.axis'));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    } // fromTooltip: true | false | 'cross'\n    // triggerTooltip: true | false | null\n\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var key = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category'; // If result.axesInfo[key] exist, override it (tooltip has higher priority).\n\n      var axisInfo = result.axesInfo[key] = {\n        key: key,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: []\n      };\n      axesInfoInCoordSys[key] = axisInfo;\n      result.seriesInvolved |= involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[key] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var volatileOption = {};\n  each(['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'], function (field) {\n    volatileOption[field] = zrUtil.clone(tooltipAxisPointerModel.get(field));\n  }); // category axis do not auto snap, otherwise some tick that do not\n  // has value can not be hovered. value/time/log axis default snap if\n  // triggered from tooltip and trigger tooltip.\n\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip; // Compatibel with previous behavior, tooltip axis do not show label by default.\n  // Only these properties can be overrided from tooltip to axisPointer.\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {}); // Follow the convention, do not show label when triggered by tooltip by default.\n\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    // When 'cross', both axes show labels.\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get('label.show');\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true; // If triggerTooltip, this is a base axis, which should better not use cross style\n    // (cross style is dashed by default)\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && zrUtil.defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  // Prepare data for axis trigger\n  ecModel.eachSeries(function (seriesModel) {\n    // Notice this case: this coordSys is `cartesian2D` but not `grid`.\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get('tooltip.trigger', true);\n    var seriesTooltipShow = seriesModel.get('tooltip.show', true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get('axisPointer.show', true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  }, this);\n}\n/**\n * For example:\n * {\n *     axisPointer: {\n *         links: [{\n *             xAxisIndex: [2, 4],\n *             yAxisIndex: 'all'\n *         }, {\n *             xAxisId: ['a5', 'a7'],\n *             xAxisName: 'xxx'\n *         }]\n *     }\n * }\n */\n\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || zrUtil.isArray(linkPropValue) && zrUtil.indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nfunction fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value'); // Parse init value for category and time axis.\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel); // If `handle` used, `axisPointer` will always be displayed, so value\n  // and status should be initialized.\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if ( // Pick a value on axis when initializing.\n  value == null // If both `handle` and `dataZoom` are used, value may be out of axis extent,\n  // where we should re-pick a value to keep `handle` displaying normally.\n  || value > extent[1]) {\n    // Make handle displayed on the end of the axis when init, which looks better.\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\n\nfunction getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\n\nfunction getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get('handle.show');\n}\n/**\n * @param {module:echarts/model/Model} model\n * @return {string} unique key\n */\n\n\nfunction makeKey(model) {\n  return model.type + '||' + model.id;\n}\n\nexports.collect = collect;\nexports.fixValue = fixValue;\nexports.getAxisInfo = getAxisInfo;\nexports.getAxisPointerModel = getAxisPointerModel;\nexports.makeKey = makeKey;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/modelHelper.js\n// module id = jP6M\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar AxisView = require(\"./AxisView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea'];\n\nvar _default = AxisView.extend({\n  type: 'radiusAxis',\n  axisPointerClass: 'PolarAxisPointer',\n  render: function (radiusAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!radiusAxisModel.get('show')) {\n      return;\n    }\n\n    var radiusAxis = radiusAxisModel.axis;\n    var polar = radiusAxis.polar;\n    var angleAxis = polar.getAngleAxis();\n    var ticksCoords = radiusAxis.getTicksCoords();\n    var axisAngle = angleAxis.getExtent()[0];\n    var radiusExtent = radiusAxis.getExtent();\n    var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n    var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    this.group.add(axisBuilder.getGroup());\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (radiusAxisModel.get(name + '.show') && !radiusAxis.scale.isBlank()) {\n        this['_' + name](radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords);\n      }\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _splitLine: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    var splitLineModel = radiusAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: ticksCoords[i].coord\n        },\n        silent: true\n      }));\n    } // Simple optimization\n    // Batching the lines if color are the same\n\n\n    for (var i = 0; i < splitLines.length; i++) {\n      this.group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length],\n          fill: null\n        }, lineStyleModel.getLineStyle()),\n        silent: true\n      }));\n    }\n  },\n\n  /**\n   * @private\n   */\n  _splitArea: function (radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    if (!ticksCoords.length) {\n      return;\n    }\n\n    var splitAreaModel = radiusAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var prevRadius = ticksCoords[0].coord;\n\n    for (var i = 1; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: prevRadius,\n          r: ticksCoords[i].coord,\n          startAngle: 0,\n          endAngle: Math.PI * 2\n        },\n        silent: true\n      }));\n      prevRadius = ticksCoords[i].coord;\n    } // Simple optimization\n    // Batching the lines if color are the same\n\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      this.group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n});\n/**\n * @inner\n */\n\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n  return {\n    position: [polar.cx, polar.cy],\n    rotation: axisAngle / 180 * Math.PI,\n    labelDirection: -1,\n    tickDirection: -1,\n    nameDirection: 1,\n    labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n    // Over splitLine and splitArea\n    z2: 1\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axis/RadiusAxisView.js\n// module id = jPW0\n// module chunks = 0","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/promise.js\n// module id = jQiA\n// module chunks = 0","var VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar zrColor = require(\"zrender/lib/tool/color\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar isArray = zrUtil.isArray;\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar _default = {\n  seriesType: 'treemap',\n  reset: function (seriesModel, ecModel, api, payload) {\n    var tree = seriesModel.getData().tree;\n    var root = tree.root;\n    var seriesItemStyleModel = seriesModel.getModel(ITEM_STYLE_NORMAL);\n\n    if (root.isRemoved()) {\n      return;\n    }\n\n    var levelItemStyles = zrUtil.map(tree.levelModels, function (levelModel) {\n      return levelModel ? levelModel.get(ITEM_STYLE_NORMAL) : null;\n    });\n    travelTree(root, // Visual should calculate from tree root but not view root.\n    {}, levelItemStyles, seriesItemStyleModel, seriesModel.getViewRoot().getAncestors(), seriesModel);\n  }\n};\n\nfunction travelTree(node, designatedVisual, levelItemStyles, seriesItemStyleModel, viewRootAncestors, seriesModel) {\n  var nodeModel = node.getModel();\n  var nodeLayout = node.getLayout(); // Optimize\n\n  if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n    return;\n  }\n\n  var nodeItemStyleModel = node.getModel(ITEM_STYLE_NORMAL);\n  var levelItemStyle = levelItemStyles[node.depth];\n  var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, levelItemStyle, seriesItemStyleModel); // calculate border color\n\n  var borderColor = nodeItemStyleModel.get('borderColor');\n  var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n  var thisNodeColor;\n\n  if (borderColorSaturation != null) {\n    // For performance, do not always execute 'calculateColor'.\n    thisNodeColor = calculateColor(visuals, node);\n    borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n  }\n\n  node.setVisual('borderColor', borderColor);\n  var viewChildren = node.viewChildren;\n\n  if (!viewChildren || !viewChildren.length) {\n    thisNodeColor = calculateColor(visuals, node); // Apply visual to this node.\n\n    node.setVisual('color', thisNodeColor);\n  } else {\n    var mapping = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren); // Designate visual to children.\n\n    zrUtil.each(viewChildren, function (child, index) {\n      // If higher than viewRoot, only ancestors of viewRoot is needed to visit.\n      if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n        var childVisual = mapVisual(nodeModel, visuals, child, index, mapping, seriesModel);\n        travelTree(child, childVisual, levelItemStyles, seriesItemStyleModel, viewRootAncestors, seriesModel);\n      }\n    });\n  }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, levelItemStyle, seriesItemStyleModel) {\n  var visuals = zrUtil.extend({}, designatedVisual);\n  zrUtil.each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n    // Priority: thisNode > thisLevel > parentNodeDesignated > seriesModel\n    var val = nodeItemStyleModel.get(visualName, true); // Ignore parent\n\n    val == null && levelItemStyle && (val = levelItemStyle[visualName]);\n    val == null && (val = designatedVisual[visualName]);\n    val == null && (val = seriesItemStyleModel.get(visualName));\n    val != null && (visuals[visualName] = val);\n  });\n  return visuals;\n}\n\nfunction calculateColor(visuals) {\n  var color = getValueVisualDefine(visuals, 'color');\n\n  if (color) {\n    var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n    var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n    if (colorSaturation) {\n      color = zrColor.modifyHSL(color, null, null, colorSaturation);\n    }\n\n    if (colorAlpha) {\n      color = zrColor.modifyAlpha(color, colorAlpha);\n    }\n\n    return color;\n  }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n  return thisNodeColor != null ? zrColor.modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n  var value = visuals[name];\n\n  if (value != null && value !== 'none') {\n    return value;\n  }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n  if (!viewChildren || !viewChildren.length) {\n    return;\n  }\n\n  var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n  if (!rangeVisual) {\n    return;\n  }\n\n  var visualMin = nodeModel.get('visualMin');\n  var visualMax = nodeModel.get('visualMax');\n  var dataExtent = nodeLayout.dataExtent.slice();\n  visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n  visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n  var colorMappingBy = nodeModel.get('colorMappingBy');\n  var opt = {\n    type: rangeVisual.name,\n    dataExtent: dataExtent,\n    visual: rangeVisual.range\n  };\n\n  if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n    opt.mappingMethod = 'category';\n    opt.loop = true; // categories is ordinal, so do not set opt.categories.\n  } else {\n    opt.mappingMethod = 'linear';\n  }\n\n  var mapping = new VisualMapping(opt);\n  mapping.__drColorMappingBy = colorMappingBy;\n  return mapping;\n} // Notice: If we dont have the attribute 'colorRange', but only use\n// attribute 'color' to represent both concepts of 'colorRange' and 'color',\n// (It means 'colorRange' when 'color' is Array, means 'color' when not array),\n// this problem will be encountered:\n// If a level-1 node dont have children, and its siblings has children,\n// and colorRange is set on level-1, then the node can not be colored.\n// So we separate 'colorRange' and 'color' to different attributes.\n\n\nfunction getRangeVisual(nodeModel, name) {\n  // 'colorRange', 'colorARange', 'colorSRange'.\n  // If not exsits on this node, fetch from levels and series.\n  var range = nodeModel.get(name);\n  return isArray(range) && range.length ? {\n    name: name,\n    range: range\n  } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n  var childVisuals = zrUtil.extend({}, visuals);\n\n  if (mapping) {\n    var mappingType = mapping.type;\n    var colorMappingBy = mappingType === 'color' && mapping.__drColorMappingBy;\n    var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n    childVisuals[mappingType] = mapping.mapValueToVisual(value);\n  }\n\n  return childVisuals;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/treemapVisual.js\n// module id = jRNH\n// module chunks = 0","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.object.assign.js\n// module id = jUTB\n// module chunks = 0","var PathProxy = require(\"../core/PathProxy\");\n\nvar _vector = require(\"../core/vector\");\n\nvar v2ApplyTransform = _vector.applyTransform;\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\n\nfunction _default(path, m) {\n  var data = path.data;\n  var cmd;\n  var nPoint;\n  var i;\n  var j;\n  var k;\n  var p;\n  var M = CMD.M;\n  var C = CMD.C;\n  var L = CMD.L;\n  var R = CMD.R;\n  var A = CMD.A;\n  var Q = CMD.Q;\n\n  for (i = 0, j = 0; i < data.length;) {\n    cmd = data[i++];\n    j = i;\n    nPoint = 0;\n\n    switch (cmd) {\n      case M:\n        nPoint = 1;\n        break;\n\n      case L:\n        nPoint = 1;\n        break;\n\n      case C:\n        nPoint = 3;\n        break;\n\n      case Q:\n        nPoint = 2;\n        break;\n\n      case A:\n        var x = m[4];\n        var y = m[5];\n        var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n        var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n        var angle = mathAtan2(-m[1] / sy, m[0] / sx); // cx\n\n        data[i] *= sx;\n        data[i++] += x; // cy\n\n        data[i] *= sy;\n        data[i++] += y; // Scale rx and ry\n        // FIXME Assume psi is 0 here\n\n        data[i++] *= sx;\n        data[i++] *= sy; // Start angle\n\n        data[i++] += angle; // end angle\n\n        data[i++] += angle; // FIXME psi\n\n        i += 2;\n        j = i;\n        break;\n\n      case R:\n        // x0, y0\n        p[0] = data[i++];\n        p[1] = data[i++];\n        v2ApplyTransform(p, p, m);\n        data[j++] = p[0];\n        data[j++] = p[1]; // x1, y1\n\n        p[0] += data[i++];\n        p[1] += data[i++];\n        v2ApplyTransform(p, p, m);\n        data[j++] = p[0];\n        data[j++] = p[1];\n    }\n\n    for (k = 0; k < nPoint; k++) {\n      var p = points[k];\n      p[0] = data[i++];\n      p[1] = data[i++];\n      v2ApplyTransform(p, p, m); // Write back\n\n      data[j++] = p[0];\n      data[j++] = p[1];\n    }\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/tool/transformPath.js\n// module id = jkQI\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Link lists and struct (graph or tree)\n */\nvar each = zrUtil.each;\nvar DATAS = '\\0__link_datas';\nvar MAIN_DATA = '\\0__link_mainData'; // Caution:\n// In most case, either list or its shallow clones (see list.cloneShallow)\n// is active in echarts process. So considering heap memory consumption,\n// we do not clone tree or graph, but share them among list and its shallow clones.\n// But in some rare case, we have to keep old list (like do animation in chart). So\n// please take care that both the old list and the new list share the same tree/graph.\n\n/**\n * @param {Object} opt\n * @param {module:echarts/data/List} opt.mainData\n * @param {Object} [opt.struct] For example, instance of Graph or Tree.\n * @param {string} [opt.structAttr] designation: list[structAttr] = struct;\n * @param {Object} [opt.datas] {dataType: data},\n *                 like: {node: nodeList, edge: edgeList}.\n *                 Should contain mainData.\n * @param {Object} [opt.datasAttr] {dataType: attr},\n *                 designation: struct[datasAttr[dataType]] = list;\n */\n\nfunction linkList(opt) {\n  var mainData = opt.mainData;\n  var datas = opt.datas;\n\n  if (!datas) {\n    datas = {\n      main: mainData\n    };\n    opt.datasAttr = {\n      main: 'data'\n    };\n  }\n\n  opt.datas = opt.mainData = null;\n  linkAll(mainData, datas, opt); // Porxy data original methods.\n\n  each(datas, function (data) {\n    each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n      data.wrapMethod(methodName, zrUtil.curry(transferInjection, opt));\n    });\n  }); // Beyond transfer, additional features should be added to `cloneShallow`.\n\n  mainData.wrapMethod('cloneShallow', zrUtil.curry(cloneShallowInjection, opt)); // Only mainData trigger change, because struct.update may trigger\n  // another changable methods, which may bring about dead lock.\n\n  each(mainData.CHANGABLE_METHODS, function (methodName) {\n    mainData.wrapMethod(methodName, zrUtil.curry(changeInjection, opt));\n  }); // Make sure datas contains mainData.\n\n  zrUtil.assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n  if (isMainData(this)) {\n    // Transfer datas to new main data.\n    var datas = zrUtil.extend({}, this[DATAS]);\n    datas[this.dataType] = res;\n    linkAll(res, datas, opt);\n  } else {\n    // Modify the reference in main data to point newData.\n    linkSingle(res, this.dataType, this[MAIN_DATA], opt);\n  }\n\n  return res;\n}\n\nfunction changeInjection(opt, res) {\n  opt.struct && opt.struct.update(this);\n  return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n  // cloneShallow, which brings about some fragilities, may be inappropriate\n  // to be exposed as an API. So for implementation simplicity we can make\n  // the restriction that cloneShallow of not-mainData should not be invoked\n  // outside, but only be invoked here.\n  each(res[DATAS], function (data, dataType) {\n    data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n  });\n  return res;\n}\n/**\n * Supplement method to List.\n *\n * @public\n * @param {string} [dataType] If not specified, return mainData.\n * @return {module:echarts/data/List}\n */\n\n\nfunction getLinkedData(dataType) {\n  var mainData = this[MAIN_DATA];\n  return dataType == null || mainData == null ? mainData : mainData[DATAS][dataType];\n}\n\nfunction isMainData(data) {\n  return data[MAIN_DATA] === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n  mainData[DATAS] = {};\n  each(datas, function (data, dataType) {\n    linkSingle(data, dataType, mainData, opt);\n  });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n  mainData[DATAS][dataType] = data;\n  data[MAIN_DATA] = mainData;\n  data.dataType = dataType;\n\n  if (opt.struct) {\n    data[opt.structAttr] = opt.struct;\n    opt.struct[opt.datasAttr[dataType]] = data;\n  } // Supplement method.\n\n\n  data.getLinkedData = getLinkedData;\n}\n\nvar _default = linkList;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/data/helper/linkList.js\n// module id = jqmT\n// module chunks = 0","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/isAbsoluteURL.js\n// module id = jzYM\n// module chunks = 0","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n  var f = ctx(fn, that, entries ? 2 : 1);\n  var index = 0;\n  var length, step, iterator, result;\n  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n  // fast case for arrays with default iterator\n  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n    if (result === BREAK || result === RETURN) return result;\n  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n    result = call(iterator, f, step.value, entries);\n    if (result === BREAK || result === RETURN) return result;\n  }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_for-of.js\n// module id = k/7E\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual mapping.\n */\nvar visualDefault = {\n  /**\n   * @public\n   */\n  get: function (visualType, key, isCategory) {\n    var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n    return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n  }\n};\nvar defaultOption = {\n  color: {\n    active: ['#006edd', '#e0ffff'],\n    inactive: ['rgba(0,0,0,0)']\n  },\n  colorHue: {\n    active: [0, 360],\n    inactive: [0, 0]\n  },\n  colorSaturation: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  colorLightness: {\n    active: [0.9, 0.5],\n    inactive: [0, 0]\n  },\n  colorAlpha: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  opacity: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  symbol: {\n    active: ['circle', 'roundRect', 'diamond'],\n    inactive: ['none']\n  },\n  symbolSize: {\n    active: [10, 50],\n    inactive: [0, 0]\n  }\n};\nvar _default = visualDefault;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/visual/visualDefault.js\n// module id = k7IZ\n// module chunks = 0","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration. If the Promise is rejected, however, the\n          // result for this iteration will be rejected with the same\n          // reason. Note that rejections of yielded Promises are not\n          // thrown back into the generator function, as is the case\n          // when an awaited Promise is rejected. This difference in\n          // behavior between yield and await is important, because it\n          // allows the consumer to decide what to do with the yielded\n          // rejection (swallow it and continue, manually .throw it back\n          // into the generator, abandon iteration, whatever). With\n          // await, by contrast, there is no opportunity to examine the\n          // rejection reason outside the generator function, so the\n          // only option is to throw it from the await expression, and\n          // let the generator function handle the exception.\n          result.value = unwrapped;\n          resolve(result);\n        }, reject);\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // In sloppy mode, unbound `this` refers to the global object, fallback to\n  // Function constructor if we're in global strict mode. That is sadly a form\n  // of indirect eval which violates Content Security Policy.\n  (function() { return this })() || Function(\"return this\")()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_regenerator-runtime@0.11.1@regenerator-runtime/runtime.js\n// module id = k9rz\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n  } return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_enum-keys.js\n// module id = kCDZ\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (e) {\n    var ret = iterator['return'];\n    if (ret !== undefined) anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-call.js\n// module id = kDTw\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar MapDraw = require(\"../../component/helper/MapDraw\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendChartView({\n  type: 'map',\n  render: function (mapModel, ecModel, api, payload) {\n    // Not render if it is an toggleSelect action from self\n    if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n      return;\n    }\n\n    var group = this.group;\n    group.removeAll();\n\n    if (mapModel.getHostGeoModel()) {\n      return;\n    } // Not update map if it is an roam action from self\n\n\n    if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n      if (mapModel.needsDrawMap) {\n        var mapDraw = this._mapDraw || new MapDraw(api, true);\n        group.add(mapDraw.group);\n        mapDraw.draw(mapModel, ecModel, api, this, payload);\n        this._mapDraw = mapDraw;\n      } else {\n        // Remove drawed map\n        this._mapDraw && this._mapDraw.remove();\n        this._mapDraw = null;\n      }\n    } else {\n      var mapDraw = this._mapDraw;\n      mapDraw && group.add(mapDraw.group);\n    }\n\n    mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n  },\n  remove: function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n    this.group.removeAll();\n  },\n  dispose: function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n  },\n  _renderSymbols: function (mapModel, ecModel, api) {\n    var originalData = mapModel.originalData;\n    var group = this.group;\n    originalData.each(originalData.mapDimension('value'), function (value, idx) {\n      if (isNaN(value)) {\n        return;\n      }\n\n      var layout = originalData.getItemLayout(idx);\n\n      if (!layout || !layout.point) {\n        // Not exists in map\n        return;\n      }\n\n      var point = layout.point;\n      var offset = layout.offset;\n      var circle = new graphic.Circle({\n        style: {\n          // Because the special of map draw.\n          // Which needs statistic of multiple series and draw on one map.\n          // And each series also need a symbol with legend color\n          //\n          // Layout and visual are put one the different data\n          fill: mapModel.getData().getVisual('color')\n        },\n        shape: {\n          cx: point[0] + offset * 9,\n          cy: point[1],\n          r: 3\n        },\n        silent: true,\n        // Do not overlap the first series, on which labels are displayed.\n        z2: !offset ? 10 : 8\n      }); // First data on the same region\n\n      if (!offset) {\n        var fullData = mapModel.mainSeries.getData();\n        var name = originalData.getName(idx);\n        var fullIndex = fullData.indexOfName(name);\n        var itemModel = originalData.getItemModel(idx);\n        var labelModel = itemModel.getModel('label');\n        var hoverLabelModel = itemModel.getModel('emphasis.label');\n        var polygonGroups = fullData.getItemGraphicEl(fullIndex);\n        var normalText = zrUtil.retrieve2(mapModel.getFormattedLabel(idx, 'normal'), name);\n        var emphasisText = zrUtil.retrieve2(mapModel.getFormattedLabel(idx, 'emphasis'), normalText);\n\n        var onEmphasis = function () {\n          var hoverStyle = graphic.setTextStyle({}, hoverLabelModel, {\n            text: hoverLabelModel.get('show') ? emphasisText : null\n          }, {\n            isRectText: true,\n            useInsideStyle: false\n          }, true);\n          circle.style.extendFrom(hoverStyle); // Make label upper than others if overlaps.\n\n          circle.__mapOriginalZ2 = circle.z2;\n          circle.z2 += 1;\n        };\n\n        var onNormal = function () {\n          graphic.setTextStyle(circle.style, labelModel, {\n            text: labelModel.get('show') ? normalText : null,\n            textPosition: labelModel.getShallow('position') || 'bottom'\n          }, {\n            isRectText: true,\n            useInsideStyle: false\n          });\n\n          if (circle.__mapOriginalZ2 != null) {\n            circle.z2 = circle.__mapOriginalZ2;\n            circle.__mapOriginalZ2 = null;\n          }\n        };\n\n        polygonGroups.on('mouseover', onEmphasis).on('mouseout', onNormal).on('emphasis', onEmphasis).on('normal', onNormal);\n        onNormal();\n      }\n\n      group.add(circle);\n    });\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/map/MapView.js\n// module id = kM8n\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Cartesian coordinate system\n * @module  echarts/coord/Cartesian\n *\n */\nfunction dimAxisMapper(dim) {\n  return this._axes[dim];\n}\n/**\n * @alias module:echarts/coord/Cartesian\n * @constructor\n */\n\n\nvar Cartesian = function (name) {\n  this._axes = {};\n  this._dimList = [];\n  /**\n   * @type {string}\n   */\n\n  this.name = name || '';\n};\n\nCartesian.prototype = {\n  constructor: Cartesian,\n  type: 'cartesian',\n\n  /**\n   * Get axis\n   * @param  {number|string} dim\n   * @return {module:echarts/coord/Cartesian~Axis}\n   */\n  getAxis: function (dim) {\n    return this._axes[dim];\n  },\n\n  /**\n   * Get axes list\n   * @return {Array.<module:echarts/coord/Cartesian~Axis>}\n   */\n  getAxes: function () {\n    return zrUtil.map(this._dimList, dimAxisMapper, this);\n  },\n\n  /**\n   * Get axes list by given scale type\n   */\n  getAxesByScale: function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  },\n\n  /**\n   * Add axis\n   * @param {module:echarts/coord/Cartesian.Axis}\n   */\n  addAxis: function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  },\n\n  /**\n   * Convert data to coord in nd space\n   * @param {Array.<number>|Object.<string, number>} val\n   * @return {Array.<number>|Object.<string, number>}\n   */\n  dataToCoord: function (val) {\n    return this._dataCoordConvert(val, 'dataToCoord');\n  },\n\n  /**\n   * Convert coord in nd space to data\n   * @param  {Array.<number>|Object.<string, number>} val\n   * @return {Array.<number>|Object.<string, number>}\n   */\n  coordToData: function (val) {\n    return this._dataCoordConvert(val, 'coordToData');\n  },\n  _dataCoordConvert: function (input, method) {\n    var dimList = this._dimList;\n    var output = input instanceof Array ? [] : {};\n\n    for (var i = 0; i < dimList.length; i++) {\n      var dim = dimList[i];\n      var axis = this._axes[dim];\n      output[dim] = axis[method](input[dim]);\n    }\n\n    return output;\n  }\n};\nvar _default = Cartesian;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/Cartesian.js\n// module id = kO0W\n// module chunks = 0","var env = require(\"zrender/lib/core/env\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar saveAsImageLang = lang.toolbox.saveAsImage;\n\nfunction SaveAsImage(model) {\n  this.model = model;\n}\n\nSaveAsImage.defaultOption = {\n  show: true,\n  icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n  title: saveAsImageLang.title,\n  type: 'png',\n  // Default use option.backgroundColor\n  // backgroundColor: '#fff',\n  name: '',\n  excludeComponents: ['toolbox'],\n  pixelRatio: 1,\n  lang: saveAsImageLang.lang.slice()\n};\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nvar proto = SaveAsImage.prototype;\n\nproto.onclick = function (ecModel, api) {\n  var model = this.model;\n  var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n  var $a = document.createElement('a');\n  var type = model.get('type', true) || 'png';\n  $a.download = title + '.' + type;\n  $a.target = '_blank';\n  var url = api.getConnectedDataURL({\n    type: type,\n    backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n    excludeComponents: model.get('excludeComponents'),\n    pixelRatio: model.get('pixelRatio')\n  });\n  $a.href = url; // Chrome and Firefox\n\n  if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\n    var evt = new MouseEvent('click', {\n      view: window,\n      bubbles: true,\n      cancelable: false\n    });\n    $a.dispatchEvent(evt);\n  } // IE\n  else {\n      if (window.navigator.msSaveOrOpenBlob) {\n        var bstr = atob(url.split(',')[1]);\n        var n = bstr.length;\n        var u8arr = new Uint8Array(n);\n\n        while (n--) {\n          u8arr[n] = bstr.charCodeAt(n);\n        }\n\n        var blob = new Blob([u8arr]);\n        window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\n      } else {\n        var lang = model.get('lang');\n        var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n        var tab = window.open();\n        tab.document.write(html);\n      }\n    }\n};\n\nfeatureManager.register('saveAsImage', SaveAsImage);\nvar _default = SaveAsImage;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/SaveAsImage.js\n// module id = kOfd\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar SKIP_PROPS = ['color', 'color0', 'borderColor', 'borderColor0'];\nvar CandlestickView = ChartView.extend({\n  type: 'candlestick',\n  render: function (seriesModel, ecModel, api) {\n    this._updateDrawMode(seriesModel);\n\n    this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n  },\n  incrementalPrepareRender: function (seriesModel, ecModel, api) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n  },\n  incrementalRender: function (params, seriesModel, ecModel, api) {\n    this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n  },\n  _updateDrawMode: function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  },\n  _renderNormal: function (seriesModel) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var isSimpleBox = data.getLayout('isSimpleBox'); // There is no old data only when first rendering or switching from\n    // stream mode to normal mode, where previous elements should be removed.\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var el;\n        var itemLayout = data.getItemLayout(newIdx);\n        el = createNormalBox(itemLayout, newIdx, true);\n        graphic.initProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n        setBoxCommon(el, data, newIdx, isSimpleBox);\n        group.add(el);\n        data.setItemGraphicEl(newIdx, el);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(el);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (!el) {\n        el = createNormalBox(itemLayout, newIdx);\n      } else {\n        graphic.updateProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n      }\n\n      setBoxCommon(el, data, newIdx, isSimpleBox);\n      group.add(el);\n      data.setItemGraphicEl(newIdx, el);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  },\n  _renderLarge: function (seriesModel) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n  },\n  _incrementalRenderNormal: function (params, seriesModel) {\n    var data = seriesModel.getData();\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var dataIndex;\n\n    while ((dataIndex = params.next()) != null) {\n      var el;\n      var itemLayout = data.getItemLayout(dataIndex);\n      el = createNormalBox(itemLayout, dataIndex);\n      setBoxCommon(el, data, dataIndex, isSimpleBox);\n      el.incremental = true;\n      this.group.add(el);\n    }\n  },\n  _incrementalRenderLarge: function (params, seriesModel) {\n    createLarge(seriesModel, this.group, true);\n  },\n  remove: function (ecModel) {\n    this._clear();\n  },\n  _clear: function () {\n    this.group.removeAll();\n    this._data = null;\n  },\n  dispose: zrUtil.noop\n});\nvar NormalBoxPath = Path.extend({\n  type: 'normalCandlestickBox',\n  shape: {},\n  buildPath: function (ctx, shape) {\n    var ends = shape.points;\n\n    if (this.__simpleBox) {\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[6][0], ends[6][1]);\n    } else {\n      ctx.moveTo(ends[0][0], ends[0][1]);\n      ctx.lineTo(ends[1][0], ends[1][1]);\n      ctx.lineTo(ends[2][0], ends[2][1]);\n      ctx.lineTo(ends[3][0], ends[3][1]);\n      ctx.closePath();\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[5][0], ends[5][1]);\n      ctx.moveTo(ends[6][0], ends[6][1]);\n      ctx.lineTo(ends[7][0], ends[7][1]);\n    }\n  }\n});\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n  var ends = itemLayout.ends;\n  return new NormalBoxPath({\n    shape: {\n      points: isInit ? transInit(ends, itemLayout) : ends\n    },\n    z2: 100\n  });\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n  var itemModel = data.getItemModel(dataIndex);\n  var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n  var color = data.getItemVisual(dataIndex, 'color');\n  var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color; // Color must be excluded.\n  // Because symbol provide setColor individually to set fill and stroke\n\n  var itemStyle = normalItemStyleModel.getItemStyle(SKIP_PROPS);\n  el.useStyle(itemStyle);\n  el.style.strokeNoScale = true;\n  el.style.fill = color;\n  el.style.stroke = borderColor;\n  el.__simpleBox = isSimpleBox;\n  var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n  graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[1] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nvar LargeBoxPath = Path.extend({\n  type: 'largeCandlestickBox',\n  shape: {},\n  buildPath: function (ctx, shape) {\n    // Drawing lines is more efficient than drawing\n    // a whole line or drawing rects.\n    var points = shape.points;\n\n    for (var i = 0; i < points.length;) {\n      if (this.__sign === points[i++]) {\n        var x = points[i++];\n        ctx.moveTo(x, points[i++]);\n        ctx.lineTo(x, points[i++]);\n      } else {\n        i += 3;\n      }\n    }\n  }\n});\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var largePoints = data.getLayout('largePoints');\n  var elP = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: 1\n  });\n  group.add(elP);\n  var elN = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: -1\n  });\n  group.add(elN);\n  setLargeStyle(1, elP, seriesModel, data);\n  setLargeStyle(-1, elN, seriesModel, data);\n\n  if (incremental) {\n    elP.incremental = true;\n    elN.incremental = true;\n  }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n  var suffix = sign > 0 ? 'P' : 'N';\n  var borderColor = data.getVisual('borderColor' + suffix) || data.getVisual('color' + suffix); // Color must be excluded.\n  // Because symbol provide setColor individually to set fill and stroke\n\n  var itemStyle = seriesModel.getModel(NORMAL_ITEM_STYLE_PATH).getItemStyle(SKIP_PROPS);\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor; // No different\n  // el.style.lineWidth = .5;\n}\n\nvar _default = CandlestickView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/CandlestickView.js\n// module id = kRcM\n// module chunks = 0","require('../../modules/es6.object.define-properties');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperties(T, D) {\n  return $Object.defineProperties(T, D);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/object/define-properties.js\n// module id = kSVM\n// module chunks = 0","var _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\nvar labelLayout = require(\"./labelLayout\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction _default(seriesType, ecModel, api, payload) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width);\n    var cy = parsePercent(center[1], height);\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim); // Sum may be 0\n\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum'); // [0...max]\n\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0; // In the case some sector angle is smaller than minAngle\n\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      } // FIXME 鍏煎 2.0 浣嗘槸 roseType 鏄� area 鐨勬椂鍊欐墠鏄繖鏍凤紵\n\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    }); // Some sector is constrained by minAngle\n    // Rest sectors needs recalculate angle\n\n    if (restAngle < PI2 && validDataCount) {\n      // Average the angle if rest angle is not enough after all angles is\n      // Constrained by minAngle\n      if (restAngle <= 1e-3) {\n        var angle = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout = data.getItemLayout(idx);\n            layout.angle = angle;\n            layout.startAngle = startAngle + dir * idx * angle;\n            layout.endAngle = startAngle + dir * (idx + 1) * angle;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout = data.getItemLayout(idx);\n            var angle = layout.angle === minAngle ? minAngle : value * unitRadian;\n            layout.startAngle = currentAngle;\n            layout.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n\n    labelLayout(seriesModel, r, width, height);\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/pie/pieLayout.js\n// module id = kczp\n// module chunks = 0","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n  this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n  var str = String(input);\n  var output = '';\n  for (\n    // initialize result and counter\n    var block, charCode, idx = 0, map = chars;\n    // if the next str index does not exist:\n    //   change the mapping table to \"=\"\n    //   check if d has no fractional digits\n    str.charAt(idx | 0) || (map = '=', idx % 1);\n    // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n    output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n  ) {\n    charCode = str.charCodeAt(idx += 3 / 4);\n    if (charCode > 0xFF) {\n      throw new E();\n    }\n    block = block << 8 | charCode;\n  }\n  return output;\n}\n\nmodule.exports = btoa;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/btoa.js\n// module id = kehZ\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/array/from.js\n// module id = kfHR\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n  if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n  else object[index] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_create-property.js\n// module id = kksE\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar retrieve = _util.retrieve;\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Helper for model references.\n * There are many manners to refer axis/coordSys.\n */\n// TODO\n// merge relevant logic to this file?\n// check: \"modelHelper\" of tooltip and \"BrushTargetManager\".\n\n/**\n * @return {Object} For example:\n * {\n *     coordSysName: 'cartesian2d',\n *     coordSysDims: ['x', 'y', ...],\n *     axisMap: HashMap({\n *         x: xAxisModel,\n *         y: yAxisModel\n *     }),\n *     categoryAxisMap: HashMap({\n *         x: xAxisModel,\n *         y: undefined\n *     }),\n *     // It also indicate that whether there is category axis.\n *     firstCategoryDimIndex: 1,\n *     // To replace user specified encode.\n * }\n */\nfunction getCoordSysDefineBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = {\n    coordSysName: coordSysName,\n    coordSysDims: [],\n    axisMap: createHashMap(),\n    categoryAxisMap: createHashMap()\n  };\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\n\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis')[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis')[0];\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex = 1;\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis')[0];\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar')[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex = 1;\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel) && result.firstCategoryDimIndex == null) {\n        categoryAxisMap.set(axisDim, axisModel);\n        result.firstCategoryDimIndex = index;\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}\n\nexports.getCoordSysDefineBySeries = getCoordSysDefineBySeries;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/referHelper.js\n// module id = koKQ\n// module chunks = 0","var Definable = require(\"./Definable\");\n\nvar zrUtil = require(\"../../core/util\");\n\n/**\n * @file Manages SVG shadow elements.\n * @author Zhang Wenli\n */\n\n/**\n * Manages SVG shadow elements.\n *\n * @class\n * @extends Definable\n * @param   {number}     zrId    zrender instance id\n * @param   {SVGElement} svgRoot root of SVG document\n */\nfunction ShadowManager(zrId, svgRoot) {\n  Definable.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom');\n}\n\nzrUtil.inherits(ShadowManager, Definable);\n/**\n * Create new shadow DOM for fill or stroke if not exist,\n * but will not update shadow if exists.\n *\n * @param {SvgElement}  svgElement   SVG element to paint\n * @param {Displayable} displayable  zrender displayable element\n */\n\nShadowManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n  if (displayable && hasShadow(displayable.style)) {\n    var style = displayable.style; // Create dom in <defs> if not exists\n\n    var dom;\n\n    if (style._shadowDom) {\n      // Gradient exists\n      dom = style._shadowDom;\n      var defs = this.getDefs(true);\n\n      if (!defs.contains(style._shadowDom)) {\n        // _shadowDom is no longer in defs, recreate\n        this.addDom(dom);\n      }\n    } else {\n      // New dom\n      dom = this.add(displayable);\n    }\n\n    this.markUsed(displayable);\n    var id = dom.getAttribute('id');\n    svgElement.style.filter = 'url(#' + id + ')';\n  }\n};\n/**\n * Add a new shadow tag in <defs>\n *\n * @param {Displayable} displayable  zrender displayable element\n * @return {SVGFilterElement} created DOM\n */\n\n\nShadowManager.prototype.add = function (displayable) {\n  var dom = this.createElement('filter');\n  var style = displayable.style; // Set dom id with shadow id, since each shadow instance\n  // will have no more than one dom element.\n  // id may exists before for those dirty elements, in which case\n  // id should remain the same, and other attributes should be\n  // updated.\n\n  style._shadowDomId = style._shadowDomId || this.nextId++;\n  dom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + style._shadowDomId);\n  this.updateDom(displayable, dom);\n  this.addDom(dom);\n  return dom;\n};\n/**\n * Update shadow.\n *\n * @param {Displayable} displayable  zrender displayable element\n */\n\n\nShadowManager.prototype.update = function (svgElement, displayable) {\n  var style = displayable.style;\n\n  if (hasShadow(style)) {\n    var that = this;\n    Definable.prototype.update.call(this, displayable, function (style) {\n      that.updateDom(displayable, style._shadowDom);\n    });\n  } else {\n    // Remove shadow\n    this.remove(svgElement, style);\n  }\n};\n/**\n * Remove DOM and clear parent filter\n */\n\n\nShadowManager.prototype.remove = function (svgElement, style) {\n  if (style._shadowDomId != null) {\n    this.removeDom(style);\n    svgElement.style.filter = '';\n  }\n};\n/**\n * Update shadow dom\n *\n * @param {Displayable} displayable  zrender displayable element\n * @param {SVGFilterElement} dom DOM to update\n */\n\n\nShadowManager.prototype.updateDom = function (displayable, dom) {\n  var domChild = dom.getElementsByTagName('feDropShadow');\n\n  if (domChild.length === 0) {\n    domChild = this.createElement('feDropShadow');\n  } else {\n    domChild = domChild[0];\n  }\n\n  var style = displayable.style;\n  var scaleX = displayable.scale ? displayable.scale[0] || 1 : 1;\n  var scaleY = displayable.scale ? displayable.scale[1] || 1 : 1; // TODO: textBoxShadowBlur is not supported yet\n\n  var offsetX, offsetY, blur, color;\n\n  if (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY) {\n    offsetX = style.shadowOffsetX || 0;\n    offsetY = style.shadowOffsetY || 0;\n    blur = style.shadowBlur;\n    color = style.shadowColor;\n  } else if (style.textShadowBlur) {\n    offsetX = style.textShadowOffsetX || 0;\n    offsetY = style.textShadowOffsetY || 0;\n    blur = style.textShadowBlur;\n    color = style.textShadowColor;\n  } else {\n    // Remove shadow\n    this.removeDom(dom, style);\n    return;\n  }\n\n  domChild.setAttribute('dx', offsetX / scaleX);\n  domChild.setAttribute('dy', offsetY / scaleY);\n  domChild.setAttribute('flood-color', color); // Divide by two here so that it looks the same as in canvas\n  // See: https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowblur\n\n  var stdDx = blur / 2 / scaleX;\n  var stdDy = blur / 2 / scaleY;\n  var stdDeviation = stdDx + ' ' + stdDy;\n  domChild.setAttribute('stdDeviation', stdDeviation); // Fix filter clipping problem\n\n  dom.setAttribute('x', '-100%');\n  dom.setAttribute('y', '-100%');\n  dom.setAttribute('width', Math.ceil(blur / 2 * 200) + '%');\n  dom.setAttribute('height', Math.ceil(blur / 2 * 200) + '%');\n  dom.appendChild(domChild); // Store dom element in shadow, to avoid creating multiple\n  // dom instances for the same shadow element\n\n  style._shadowDom = dom;\n};\n/**\n * Mark a single shadow to be used\n *\n * @param {Displayable} displayable displayable element\n */\n\n\nShadowManager.prototype.markUsed = function (displayable) {\n  var style = displayable.style;\n\n  if (style && style._shadowDom) {\n    Definable.prototype.markUsed.call(this, style._shadowDom);\n  }\n};\n\nfunction hasShadow(style) {\n  // TODO: textBoxShadowBlur is not supported yet\n  return style && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY || style.textShadowBlur || style.textShadowOffsetX || style.textShadowOffsetY);\n}\n\nvar _default = ShadowManager;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/svg/helper/ShadowManager.js\n// module id = kpI5\n// module chunks = 0","var _core = require(\"../core\");\n\nvar createElement = _core.createElement;\n\nvar zrUtil = require(\"../../core/util\");\n\nvar Path = require(\"../../graphic/Path\");\n\nvar ZImage = require(\"../../graphic/Image\");\n\nvar ZText = require(\"../../graphic/Text\");\n\nvar _graphic = require(\"../graphic\");\n\nvar svgPath = _graphic.path;\nvar svgImage = _graphic.image;\nvar svgText = _graphic.text;\n\n/**\n * @file Manages elements that can be defined in <defs> in SVG,\n *       e.g., gradients, clip path, etc.\n * @author Zhang Wenli\n */\nvar MARK_UNUSED = '0';\nvar MARK_USED = '1';\n/**\n * Manages elements that can be defined in <defs> in SVG,\n * e.g., gradients, clip path, etc.\n *\n * @class\n * @param {number}          zrId      zrender instance id\n * @param {SVGElement}      svgRoot   root of SVG document\n * @param {string|string[]} tagNames  possible tag names\n * @param {string}          markLabel label name to make if the element\n *                                    is used\n */\n\nfunction Definable(zrId, svgRoot, tagNames, markLabel, domName) {\n  this._zrId = zrId;\n  this._svgRoot = svgRoot;\n  this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\n  this._markLabel = markLabel;\n  this._domName = domName || '_dom';\n  this.nextId = 0;\n}\n\nDefinable.prototype.createElement = createElement;\n/**\n * Get the <defs> tag for svgRoot; optionally creates one if not exists.\n *\n * @param {boolean} isForceCreating if need to create when not exists\n * @return {SVGDefsElement} SVG <defs> element, null if it doesn't\n * exist and isForceCreating is false\n */\n\nDefinable.prototype.getDefs = function (isForceCreating) {\n  var svgRoot = this._svgRoot;\n\n  var defs = this._svgRoot.getElementsByTagName('defs');\n\n  if (defs.length === 0) {\n    // Not exist\n    if (isForceCreating) {\n      defs = svgRoot.insertBefore(this.createElement('defs'), // Create new tag\n      svgRoot.firstChild // Insert in the front of svg\n      );\n\n      if (!defs.contains) {\n        // IE doesn't support contains method\n        defs.contains = function (el) {\n          var children = defs.children;\n\n          if (!children) {\n            return false;\n          }\n\n          for (var i = children.length - 1; i >= 0; --i) {\n            if (children[i] === el) {\n              return true;\n            }\n          }\n\n          return false;\n        };\n      }\n\n      return defs;\n    } else {\n      return null;\n    }\n  } else {\n    return defs[0];\n  }\n};\n/**\n * Update DOM element if necessary.\n *\n * @param {Object|string} element style element. e.g., for gradient,\n *                                it may be '#ccc' or {type: 'linear', ...}\n * @param {Function|undefined} onUpdate update callback\n */\n\n\nDefinable.prototype.update = function (element, onUpdate) {\n  if (!element) {\n    return;\n  }\n\n  var defs = this.getDefs(false);\n\n  if (element[this._domName] && defs.contains(element[this._domName])) {\n    // Update DOM\n    if (typeof onUpdate === 'function') {\n      onUpdate(element);\n    }\n  } else {\n    // No previous dom, create new\n    var dom = this.add(element);\n\n    if (dom) {\n      element[this._domName] = dom;\n    }\n  }\n};\n/**\n * Add gradient dom to defs\n *\n * @param {SVGElement} dom DOM to be added to <defs>\n */\n\n\nDefinable.prototype.addDom = function (dom) {\n  var defs = this.getDefs(true);\n  defs.appendChild(dom);\n};\n/**\n * Remove DOM of a given element.\n *\n * @param {SVGElement} element element to remove dom\n */\n\n\nDefinable.prototype.removeDom = function (element) {\n  var defs = this.getDefs(false);\n\n  if (defs && element[this._domName]) {\n    defs.removeChild(element[this._domName]);\n    element[this._domName] = null;\n  }\n};\n/**\n * Get DOMs of this element.\n *\n * @return {HTMLDomElement} doms of this defineable elements in <defs>\n */\n\n\nDefinable.prototype.getDoms = function () {\n  var defs = this.getDefs(false);\n\n  if (!defs) {\n    // No dom when defs is not defined\n    return [];\n  }\n\n  var doms = [];\n  zrUtil.each(this._tagNames, function (tagName) {\n    var tags = defs.getElementsByTagName(tagName); // Note that tags is HTMLCollection, which is array-like\n    // rather than real array.\n    // So `doms.concat(tags)` add tags as one object.\n\n    doms = doms.concat([].slice.call(tags));\n  });\n  return doms;\n};\n/**\n * Mark DOMs to be unused before painting, and clear unused ones at the end\n * of the painting.\n */\n\n\nDefinable.prototype.markAllUnused = function () {\n  var doms = this.getDoms();\n  var that = this;\n  zrUtil.each(doms, function (dom) {\n    dom[that._markLabel] = MARK_UNUSED;\n  });\n};\n/**\n * Mark a single DOM to be used.\n *\n * @param {SVGElement} dom DOM to mark\n */\n\n\nDefinable.prototype.markUsed = function (dom) {\n  if (dom) {\n    dom[this._markLabel] = MARK_USED;\n  }\n};\n/**\n * Remove unused DOMs defined in <defs>\n */\n\n\nDefinable.prototype.removeUnused = function () {\n  var defs = this.getDefs(false);\n\n  if (!defs) {\n    // Nothing to remove\n    return;\n  }\n\n  var doms = this.getDoms();\n  var that = this;\n  zrUtil.each(doms, function (dom) {\n    if (dom[that._markLabel] !== MARK_USED) {\n      // Remove gradient\n      defs.removeChild(dom);\n    }\n  });\n};\n/**\n * Get SVG proxy.\n *\n * @param {Displayable} displayable displayable element\n * @return {Path|Image|Text} svg proxy of given element\n */\n\n\nDefinable.prototype.getSvgProxy = function (displayable) {\n  if (displayable instanceof Path) {\n    return svgPath;\n  } else if (displayable instanceof ZImage) {\n    return svgImage;\n  } else if (displayable instanceof ZText) {\n    return svgText;\n  } else {\n    return svgPath;\n  }\n};\n/**\n * Get text SVG element.\n *\n * @param {Displayable} displayable displayable element\n * @return {SVGElement} SVG element of text\n */\n\n\nDefinable.prototype.getTextSvgElement = function (displayable) {\n  return displayable.__textSvgEl;\n};\n/**\n * Get SVG element.\n *\n * @param {Displayable} displayable displayable element\n * @return {SVGElement} SVG element\n */\n\n\nDefinable.prototype.getSvgElement = function (displayable) {\n  return displayable.__svgEl;\n};\n\nvar _default = Definable;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/svg/helper/Definable.js\n// module id = krKi\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"./graphic\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Symbol factory\n\n/**\n * Triangle shape\n * @inner\n */\nvar Triangle = graphic.extendShape({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\n/**\n * Diamond shape\n * @inner\n */\n\nvar Diamond = graphic.extendShape({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\n/**\n * Pin shape\n * @inner\n */\n\nvar Pin = graphic.extendShape({\n  type: 'pin',\n  shape: {\n    // x, y on the cusp\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3; // Height must be larger than width\n\n    var h = Math.max(w, shape.height);\n    var r = w / 2; // Dist on y with tangent point and circle center\n\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r); // Dist on x with tangent point and circle center\n\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\n/**\n * Arrow shape\n * @inner\n */\n\nvar Arrow = graphic.extendShape({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\n/**\n * Map of path contructors\n * @type {Object.<string, module:zrender/graphic/Path>}\n */\n\nvar symbolCtors = {\n  line: graphic.Line,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    // FIXME\n    shape.x1 = x;\n    shape.y1 = y + h / 2;\n    shape.x2 = x + w;\n    shape.y2 = y + h / 2;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    // Put circle in the center of square\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nvar symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.extendShape({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  beforeBrush: function () {\n    var style = this.style;\n    var shape = this.shape; // FIXME\n\n    if (shape.symbolType === 'pin' && style.textPosition === 'inside') {\n      style.textPosition = ['50%', '40%'];\n      style.textAlign = 'center';\n      style.textVerticalAlign = 'middle';\n    }\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n    var proxySymbol = symbolBuildProxies[symbolType];\n\n    if (shape.symbolType !== 'none') {\n      if (!proxySymbol) {\n        // Default rect\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n}); // Provide setColor helper method to avoid determine if set the fill or stroke outside\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n    var symbolShape = this.shape;\n\n    if (symbolShape && symbolShape.symbolType === 'line') {\n      symbolStyle.stroke = color;\n    } else if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n    } else {\n      // FIXME 鍒ゆ柇鍥惧舰榛樿鏄~鍏呰繕鏄弿杈癸紝浣跨敤 onlyStroke ?\n      symbolStyle.fill && (symbolStyle.fill = color);\n      symbolStyle.stroke && (symbolStyle.stroke = color);\n    }\n\n    this.dirty(false);\n  }\n}\n/**\n * Create a symbol element with given symbol configuration: shape, x, y, width, height, color\n * @param {string} symbolType\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {string} color\n * @param {boolean} [keepAspect=false] whether to keep the ratio of w/h,\n *                            for path and image only.\n */\n\n\nfunction createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  // TODO Support image object, DynamicImage.\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n  symbolPath.setColor(color);\n  return symbolPath;\n}\n\nexports.createSymbol = createSymbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/symbol.js\n// module id = ktMJ\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(seriesType, defaultSymbolType, legendSymbol) {\n  // Encoding visual for all series include which is filtered for legend drawing\n  return {\n    seriesType: seriesType,\n    // For legend.\n    performRawSeries: true,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var symbolType = seriesModel.get('symbol') || defaultSymbolType;\n      var symbolSize = seriesModel.get('symbolSize');\n      var keepAspect = seriesModel.get('symbolKeepAspect');\n      data.setVisual({\n        legendSymbol: legendSymbol || symbolType,\n        symbol: symbolType,\n        symbolSize: symbolSize,\n        symbolKeepAspect: keepAspect\n      }); // Only visible series has each data be visual encoded\n\n      if (ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var hasCallback = typeof symbolSize === 'function';\n\n      function dataEach(data, idx) {\n        if (typeof symbolSize === 'function') {\n          var rawValue = seriesModel.getRawValue(idx); // FIXME\n\n          var params = seriesModel.getDataParams(idx);\n          data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n        }\n\n        if (data.hasItemOption) {\n          var itemModel = data.getItemModel(idx);\n          var itemSymbolType = itemModel.getShallow('symbol', true);\n          var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n          var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true); // If has item symbol\n\n          if (itemSymbolType != null) {\n            data.setItemVisual(idx, 'symbol', itemSymbolType);\n          }\n\n          if (itemSymbolSize != null) {\n            // PENDING Transform symbolSize ?\n            data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n          }\n\n          if (itemSymbolKeepAspect != null) {\n            data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n          }\n        }\n      }\n\n      return {\n        dataEach: data.hasItemOption || hasCallback ? dataEach : null\n      };\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/visual/symbol.js\n// module id = kuK2\n// module chunks = 0","var polygonContain = require(\"zrender/lib/contain/polygon\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Key of the first level is brushType: `line`, `rect`, `polygon`.\n// Key of the second level is chart element type: `point`, `rect`.\n// See moudule:echarts/component/helper/BrushController\n// function param:\n//      {Object} itemLayout fetch from data.getItemLayout(dataIndex)\n//      {Object} selectors {point: selector, rect: selector, ...}\n//      {Object} area {range: [[], [], ..], boudingRect}\n// function return:\n//      {boolean} Whether in the given brush.\nvar selector = {\n  lineX: getLineSelectors(0),\n  lineY: getLineSelectors(1),\n  rect: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.intersect(itemLayout);\n    }\n  },\n  polygon: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      var points = area.range;\n\n      if (!itemLayout || points.length <= 1) {\n        return false;\n      }\n\n      var x = itemLayout.x;\n      var y = itemLayout.y;\n      var width = itemLayout.width;\n      var height = itemLayout.height;\n      var p = points[0];\n\n      if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || lineIntersectPolygon(x, y, x + width, y, points) || lineIntersectPolygon(x, y, x, y + height, points) || lineIntersectPolygon(x + width, y, x + width, y + height, points) || lineIntersectPolygon(x, y + height, x + width, y + height, points)) {\n        return true;\n      }\n    }\n  }\n};\n\nfunction getLineSelectors(xyIndex) {\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  return {\n    point: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var p = itemLayout[xyIndex];\n        return inLineRange(p, range);\n      }\n    },\n    rect: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n        layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n        return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n      }\n    }\n  };\n}\n\nfunction inLineRange(p, range) {\n  return range[0] <= p && p <= range[1];\n}\n\nfunction lineIntersectPolygon(lx, ly, l2x, l2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineIntersect(lx, ly, l2x, l2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n} // Code from <http://blog.csdn.net/rickliuxiao/article/details/6259322> with some fix.\n// See <https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection>\n\n\nfunction lineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var delta = determinant(a2x - a1x, b1x - b2x, a2y - a1y, b1y - b2y);\n\n  if (nearZero(delta)) {\n    // parallel\n    return false;\n  }\n\n  var namenda = determinant(b1x - a1x, b1x - b2x, b1y - a1y, b1y - b2y) / delta;\n\n  if (namenda < 0 || namenda > 1) {\n    return false;\n  }\n\n  var miu = determinant(a2x - a1x, b1x - a1x, a2y - a1y, b1y - a1y) / delta;\n\n  if (miu < 0 || miu > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nfunction determinant(v1, v2, v3, v4) {\n  return v1 * v4 - v2 * v3;\n}\n\nvar _default = selector;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/brush/selector.js\n// module id = l3Iw\n// module chunks = 0","/**\n * @param {Array.<Object>} colorStops\n */\nvar Gradient = function (colorStops) {\n  this.colorStops = colorStops || [];\n};\n\nGradient.prototype = {\n  constructor: Gradient,\n  addColorStop: function (offset, color) {\n    this.colorStops.push({\n      offset: offset,\n      color: color\n    });\n  }\n};\nvar _default = Gradient;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/Gradient.js\n// module id = l8Rx\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true  -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_string-at.js\n// module id = l9Iv\n// module chunks = 0","module.exports = require(\"regenerator-runtime\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/regenerator/index.js\n// module id = lC5x\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n    var loadEvent = 'onreadystatechange';\n    var xDomain = false;\n\n    // For IE 8/9 CORS support\n    // Only supports POST and GET calls and doesn't returns the response headers.\n    // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n    if (process.env.NODE_ENV !== 'test' &&\n        typeof window !== 'undefined' &&\n        window.XDomainRequest && !('withCredentials' in request) &&\n        !isURLSameOrigin(config.url)) {\n      request = new window.XDomainRequest();\n      loadEvent = 'onload';\n      xDomain = true;\n      request.onprogress = function handleProgress() {};\n      request.ontimeout = function handleTimeout() {};\n    }\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password || '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    // Listen for ready state\n    request[loadEvent] = function handleLoad() {\n      if (!request || (request.readyState !== 4 && !xDomain)) {\n        return;\n      }\n\n      // The request errored out and we didn't get a response, this will be\n      // handled by onerror instead\n      // With one exception: request that using file: protocol, most browsers\n      // will return status as 0 even though it's a successful request\n      if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n        return;\n      }\n\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n      var response = {\n        data: responseData,\n        // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n        status: request.status === 1223 ? 204 : request.status,\n        statusText: request.status === 1223 ? 'No Content' : request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      var cookies = require('./../helpers/cookies');\n\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n          cookies.read(config.xsrfCookieName) :\n          undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (config.withCredentials) {\n      request.withCredentials = true;\n    }\n\n    // Add responseType to request if needed\n    if (config.responseType) {\n      try {\n        request.responseType = config.responseType;\n      } catch (e) {\n        // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n        // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n        if (config.responseType !== 'json') {\n          throw e;\n        }\n      }\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (requestData === undefined) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/adapters/xhr.js\n// module id = lFbO\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return dP(O, P, Attributes);\n  } catch (e) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_object-dp.js\n// module id = lIiZ\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\nvar _model = require(\"../util/model\");\n\nvar makeInner = _model.makeInner;\n\nvar _axisHelper = require(\"./axisHelper\");\n\nvar makeLabelFormatter = _axisHelper.makeLabelFormatter;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar inner = makeInner();\n/**\n * @param {module:echats/coord/Axis} axis\n * @return {Object} {\n *     labels: [{\n *         formattedLabel: string,\n *         rawLabel: string,\n *         tickValue: number\n *     }, ...],\n *     labelCategoryInterval: number\n * }\n */\n\nfunction createAxisLabels(axis) {\n  // Only ordinal scale support tick interval\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\n/**\n * @param {module:echats/coord/Axis} axis\n * @param {module:echarts/model/Model} tickModel For example, can be axisTick, splitLine, splitArea.\n * @return {Object} {\n *     ticks: Array.<number>\n *     tickCategoryInterval: number\n * }\n */\n\n\nfunction createAxisTicks(axis, tickModel) {\n  // Only ordinal scale support tick interval\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: axis.scale.getTicks()\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  } // Cache to avoid calling interval function repeatly.\n\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval; // Optimize for the case that large category data and no label displayed,\n  // we should not return all ticks.\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } // Always use label interval by default despite label show. Consider this\n  // scenario, Use multiple grid with the xAxis sync, and only one xAxis shows\n  // labels. `splitLine` and `axisTick` should be consistent in this case.\n  else if (optionTickInterval === 'auto') {\n      var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n      tickCategoryInterval = labelsResult.labelCategoryInterval;\n      ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n        return labelItem.tickValue;\n      });\n    } else {\n      tickCategoryInterval = optionTickInterval;\n      ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n    } // Cache to avoid calling interval function repeatly.\n\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tickValue, idx) {\n      return {\n        formattedLabel: labelFormatter(tickValue, idx),\n        rawLabel: axis.scale.getLabel(tickValue),\n        tickValue: tickValue\n      };\n    })\n  };\n} // Large category data calculation is performence sensitive, and ticks and label\n// probably be fetched by multiple times. So we cache the result.\n// axis is created each time during a ec process, so we do not need to clear cache.\n\n\nfunction getListCache(axis, prop) {\n  // Because key can be funciton, and cache size always be small, we use array cache.\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n/**\n * Calculate interval for category axis ticks and labels.\n * To get precise result, at least one of `getRotate` and `isHorizontal`\n * should be implemented in axis.\n */\n\n\nfunction calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent(); // Providing this method is for optimization:\n  // avoid generating a long array by `getTicks`\n  // in large category data case.\n\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1; // Simple optimization. Empirical value: tick count should less than 40.\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0; // Caution: Performance sensitive for large category data.\n  // Consider dataZoom, we should make appropriate step to avoid O(n) loop.\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0; // Polar is also calculated in assumptive linear layout here.\n    // Not precise, do not consider align and vertical align\n    // and each distance from axis line yet.\n\n    var rect = textContain.getBoundingRect(labelFormatter(tickValue), params.font, 'center', 'top'); // Magic number\n\n    width = rect.width * 1.3;\n    height = rect.height * 1.3; // Min size, void long loop.\n\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH; // 0/0 is NaN, 1/0 is Infinity.\n\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount; // Use cache to keep interval stable while moving zoom window,\n  // otherwise the calculated interval might jitter when the zoom\n  // window size is close to the interval-changing size.\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 // Always choose the bigger one, otherwise the critical\n  // point is not the same when zooming in or zooming out.\n  && lastAutoInterval > interval) {\n    interval = lastAutoInterval;\n  } // Only update cache if cache not used, otherwise the\n  // changing of interval is too insensitive.\n  else {\n      cache.lastTickCount = tickCount;\n      cache.lastAutoInterval = interval;\n    }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = []; // TODO: axisType: ordinalTime, pick the tick from each month/day/year/...\n\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count(); // Calculate start tick based on zero if possible to keep label consistent\n  // while zooming and moving while interval > 0. Otherwise the selection\n  // of displayable ticks and symbols probably keep changing.\n  // 3 is empirical value.\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  } // (1) Only add min max label here but leave overlap checking\n  // to render stage, which also ensure the returned list\n  // suitable for splitLine and splitArea rendering.\n  // (2) Scales except category always contain min max label so\n  // do not need to perform this process.\n\n\n  var showMinMax = {\n    min: labelModel.get('showMinLabel'),\n    max: labelModel.get('showMaxLabel')\n  };\n\n  if (showMinMax.min && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  } // Optimize: avoid generating large array by `ordinalScale.getTicks()`.\n\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (showMinMax.max && tickValue !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tVal) {\n    result.push(onlyTick ? tVal : {\n      formattedLabel: labelFormatter(tVal),\n      rawLabel: ordinalScale.getLabel(tVal),\n      tickValue: tVal\n    });\n  }\n\n  return result;\n} // When interval is function, the result `false` means ignore the tick.\n// It is time consuming for large category data.\n\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tickValue) {\n    var rawLabel = ordinalScale.getLabel(tickValue);\n\n    if (categoryInterval(tickValue, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tickValue),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n} // Can be null|'auto'|number|function\n\n\nfunction getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\n\nexports.createAxisLabels = createAxisLabels;\nexports.createAxisTicks = createAxisTicks;\nexports.calculateCategoryInterval = calculateCategoryInterval;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/axisTickLabelBuilder.js\n// module id = lMm+\n// module chunks = 0","var _dataProvider = require(\"../../data/helper/dataProvider\");\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @return {string} label string. Not null/undefined\n */\nfunction getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimension('defaultedLabel', true);\n  var len = labelDims.length; // Simple optimization (in lots of cases, label dims length is 1)\n\n  if (len === 1) {\n    return retrieveRawValue(data, dataIndex, labelDims[0]);\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      var val = retrieveRawValue(data, dataIndex, labelDims[i]);\n      vals.push(val);\n    }\n\n    return vals.join(' ');\n  }\n}\n\nexports.getDefaultLabel = getDefaultLabel;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/labelHelper.js\n// module id = lYM0\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar selector = require(\"./selector\");\n\nvar throttleUtil = require(\"../../util/throttle\");\n\nvar BrushTargetManager = require(\"../helper/BrushTargetManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\nvar PRIORITY_BRUSH = echarts.PRIORITY.VISUAL.BRUSH;\n/**\n * Layout for visual, the priority higher than other layout, and before brush visual.\n */\n\necharts.registerLayout(PRIORITY_BRUSH, function (ecModel, api, payload) {\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n      brushType: false\n    });\n    var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n    brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n  });\n});\n/**\n * Register the visual encoding if this modules required.\n */\n\necharts.registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\n  var brushSelected = [];\n  var throttleType;\n  var throttleDelay;\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel, brushIndex) {\n    var thisBrushSelected = {\n      brushId: brushModel.id,\n      brushIndex: brushIndex,\n      brushName: brushModel.name,\n      areas: zrUtil.clone(brushModel.areas),\n      selected: []\n    }; // Every brush component exists in event params, convenient\n    // for user to find by index.\n\n    brushSelected.push(thisBrushSelected);\n    var brushOption = brushModel.option;\n    var brushLink = brushOption.brushLink;\n    var linkedSeriesMap = [];\n    var selectedDataIndexForLink = [];\n    var rangeInfoBySeries = [];\n    var hasBrushExists = 0;\n\n    if (!brushIndex) {\n      // Only the first throttle setting works.\n      throttleType = brushOption.throttleType;\n      throttleDelay = brushOption.throttleDelay;\n    } // Add boundingRect and selectors to range.\n\n\n    var areas = zrUtil.map(brushModel.areas, function (area) {\n      return bindSelector(zrUtil.defaults({\n        boundingRect: boundingRectBuilders[area.brushType](area)\n      }, area));\n    });\n    var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n      mappingOption.mappingMethod = 'fixed';\n    });\n    zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n      linkedSeriesMap[seriesIndex] = 1;\n    });\n\n    function linkOthers(seriesIndex) {\n      return brushLink === 'all' || linkedSeriesMap[seriesIndex];\n    } // If no supported brush or no brush on the series,\n    // all visuals should be in original state.\n\n\n    function brushed(rangeInfoList) {\n      return !!rangeInfoList.length;\n    }\n    /**\n     * Logic for each series: (If the logic has to be modified one day, do it carefully!)\n     *\n     * ( brushed 鈹� && 鈹琱asBrushExist 鈹� && linkOthers  ) => StepA: 鈹瑀ecord, 鈹� StepB: 鈹瑅isualByRecord.\n     *   !brushed鈹�    鈹渉asBrushExist 鈹�                            鈹攏othing,鈹�        鈹渧isualByRecord.\n     *                鈹�!hasBrushExist鈹�                                              鈹攏othing.\n     * ( !brushed  && 鈹琱asBrushExist 鈹� && linkOthers  ) => StepA:  nothing,  StepB: 鈹瑅isualByRecord.\n     *                鈹�!hasBrushExist鈹�                                              鈹攏othing.\n     * ( brushed 鈹� &&                     !linkOthers ) => StepA:  nothing,  StepB: 鈹瑅isualByCheck.\n     *   !brushed鈹�                                                                  鈹攏othing.\n     * ( !brushed  &&                     !linkOthers ) => StepA:  nothing,  StepB:  nothing.\n     */\n    // Step A\n\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n      seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex, rangeInfoList) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n    });\n\n    function stepAParallel(seriesModel, seriesIndex) {\n      var coordSys = seriesModel.coordinateSystem;\n      hasBrushExists |= coordSys.hasAxisBrushed();\n      linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n        activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n      });\n    }\n\n    function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n      var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n\n      if (!selectorsByBrushType || brushModelNotControll(brushModel, seriesIndex)) {\n        return;\n      }\n\n      zrUtil.each(areas, function (area) {\n        selectorsByBrushType[area.brushType] && brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel) && rangeInfoList.push(area);\n        hasBrushExists |= brushed(rangeInfoList);\n      });\n\n      if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n        var data = seriesModel.getData();\n        data.each(function (dataIndex) {\n          if (checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex)) {\n            selectedDataIndexForLink[dataIndex] = 1;\n          }\n        });\n      }\n    } // Step B\n\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var seriesBrushSelected = {\n        seriesId: seriesModel.id,\n        seriesIndex: seriesIndex,\n        seriesName: seriesModel.name,\n        dataIndex: []\n      }; // Every series exists in event params, convenient\n      // for user to find series by seriesIndex.\n\n      thisBrushSelected.selected.push(seriesBrushSelected);\n      var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n      var rangeInfoList = rangeInfoBySeries[seriesIndex];\n      var data = seriesModel.getData();\n      var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n        return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      } : function (dataIndex) {\n        return checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      }; // If no supported brush or no brush, all visuals are in original state.\n\n      (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n    });\n  });\n  dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n});\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n  // This event will not be triggered when `setOpion`, otherwise dead lock may\n  // triggered when do `setOption` in event listener, which we do not find\n  // satisfactory way to solve yet. Some considered resolutions:\n  // (a) Diff with prevoius selected data ant only trigger event when changed.\n  // But store previous data and diff precisely (i.e., not only by dataIndex, but\n  // also detect value changes in selected data) might bring complexity or fragility.\n  // (b) Use spectial param like `silent` to suppress event triggering.\n  // But such kind of volatile param may be weird in `setOption`.\n  if (!payload) {\n    return;\n  }\n\n  var zr = api.getZr();\n\n  if (zr[DISPATCH_FLAG]) {\n    return;\n  }\n\n  if (!zr[DISPATCH_METHOD]) {\n    zr[DISPATCH_METHOD] = doDispatch;\n  }\n\n  var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n  fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n  if (!api.isDisposed()) {\n    var zr = api.getZr();\n    zr[DISPATCH_FLAG] = true;\n    api.dispatchAction({\n      type: 'brushSelect',\n      batch: brushSelected\n    });\n    zr[DISPATCH_FLAG] = false;\n  }\n}\n\nfunction checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) {\n  for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n    var area = rangeInfoList[i];\n\n    if (selectorsByBrushType[area.brushType](dataIndex, data, area.selectors, area)) {\n      return true;\n    }\n  }\n}\n\nfunction getSelectorsByBrushType(seriesModel) {\n  var brushSelector = seriesModel.brushSelector;\n\n  if (zrUtil.isString(brushSelector)) {\n    var sels = [];\n    zrUtil.each(selector, function (selectorsByElementType, brushType) {\n      sels[brushType] = function (dataIndex, data, selectors, area) {\n        var itemLayout = data.getItemLayout(dataIndex);\n        return selectorsByElementType[brushSelector](itemLayout, selectors, area);\n      };\n    });\n    return sels;\n  } else if (zrUtil.isFunction(brushSelector)) {\n    var bSelector = {};\n    zrUtil.each(selector, function (sel, brushType) {\n      bSelector[brushType] = brushSelector;\n    });\n    return bSelector;\n  }\n\n  return brushSelector;\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n  var seriesIndices = brushModel.option.seriesIndex;\n  return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nfunction bindSelector(area) {\n  var selectors = area.selectors = {};\n  zrUtil.each(selector[area.brushType], function (selFn, elType) {\n    // Do not use function binding or curry for performance.\n    selectors[elType] = function (itemLayout) {\n      return selFn(itemLayout, selectors, area);\n    };\n  });\n  return area;\n}\n\nvar boundingRectBuilders = {\n  lineX: zrUtil.noop,\n  lineY: zrUtil.noop,\n  rect: function (area) {\n    return getBoundingRectFromMinMax(area.range);\n  },\n  polygon: function (area) {\n    var minMax;\n    var range = area.range;\n\n    for (var i = 0, len = range.length; i < len; i++) {\n      minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n      var rg = range[i];\n      rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n      rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n      rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n      rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n    }\n\n    return minMax && getBoundingRectFromMinMax(minMax);\n  }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n  return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/brush/visualEncoding.js\n// module id = lYmG\n// module chunks = 0","var util = require(\"../core/util\");\n\nvar _event = require(\"../core/event\");\n\nvar Dispatcher = _event.Dispatcher;\n\nvar requestAnimationFrame = require(\"./requestAnimationFrame\");\n\nvar Animator = require(\"./Animator\");\n\n/**\n * 鍔ㄧ敾涓荤被, 璋冨害鍜岀鐞嗘墍鏈夊姩鐢绘帶鍒跺櫒\n *\n * @module zrender/animation/Animation\n * @author pissang(https://github.com/pissang)\n */\n// TODO Additive animation\n// http://iosoteric.com/additive-animations-animatewithduration-in-ios-8/\n// https://developer.apple.com/videos/wwdc2014/#236\n\n/**\n * @typedef {Object} IZRenderStage\n * @property {Function} update\n */\n\n/**\n * @alias module:zrender/animation/Animation\n * @constructor\n * @param {Object} [options]\n * @param {Function} [options.onframe]\n * @param {IZRenderStage} [options.stage]\n * @example\n *     var animation = new Animation();\n *     var obj = {\n *         x: 100,\n *         y: 100\n *     };\n *     animation.animate(node.position)\n *         .when(1000, {\n *             x: 500,\n *             y: 500\n *         })\n *         .when(2000, {\n *             x: 100,\n *             y: 100\n *         })\n *         .start('spline');\n */\nvar Animation = function (options) {\n  options = options || {};\n  this.stage = options.stage || {};\n\n  this.onframe = options.onframe || function () {}; // private properties\n\n\n  this._clips = [];\n  this._running = false;\n  this._time;\n  this._pausedTime;\n  this._pauseStart;\n  this._paused = false;\n  Dispatcher.call(this);\n};\n\nAnimation.prototype = {\n  constructor: Animation,\n\n  /**\n   * 娣诲姞 clip\n   * @param {module:zrender/animation/Clip} clip\n   */\n  addClip: function (clip) {\n    this._clips.push(clip);\n  },\n\n  /**\n   * 娣诲姞 animator\n   * @param {module:zrender/animation/Animator} animator\n   */\n  addAnimator: function (animator) {\n    animator.animation = this;\n    var clips = animator.getClips();\n\n    for (var i = 0; i < clips.length; i++) {\n      this.addClip(clips[i]);\n    }\n  },\n\n  /**\n   * 鍒犻櫎鍔ㄧ敾鐗囨\n   * @param {module:zrender/animation/Clip} clip\n   */\n  removeClip: function (clip) {\n    var idx = util.indexOf(this._clips, clip);\n\n    if (idx >= 0) {\n      this._clips.splice(idx, 1);\n    }\n  },\n\n  /**\n   * 鍒犻櫎鍔ㄧ敾鐗囨\n   * @param {module:zrender/animation/Animator} animator\n   */\n  removeAnimator: function (animator) {\n    var clips = animator.getClips();\n\n    for (var i = 0; i < clips.length; i++) {\n      this.removeClip(clips[i]);\n    }\n\n    animator.animation = null;\n  },\n  _update: function () {\n    var time = new Date().getTime() - this._pausedTime;\n\n    var delta = time - this._time;\n    var clips = this._clips;\n    var len = clips.length;\n    var deferredEvents = [];\n    var deferredClips = [];\n\n    for (var i = 0; i < len; i++) {\n      var clip = clips[i];\n      var e = clip.step(time, delta); // Throw out the events need to be called after\n      // stage.update, like destroy\n\n      if (e) {\n        deferredEvents.push(e);\n        deferredClips.push(clip);\n      }\n    } // Remove the finished clip\n\n\n    for (var i = 0; i < len;) {\n      if (clips[i]._needsRemove) {\n        clips[i] = clips[len - 1];\n        clips.pop();\n        len--;\n      } else {\n        i++;\n      }\n    }\n\n    len = deferredEvents.length;\n\n    for (var i = 0; i < len; i++) {\n      deferredClips[i].fire(deferredEvents[i]);\n    }\n\n    this._time = time;\n    this.onframe(delta); // 'frame' should be triggered before stage, because upper application\n    // depends on the sequence (e.g., echarts-stream and finish\n    // event judge)\n\n    this.trigger('frame', delta);\n\n    if (this.stage.update) {\n      this.stage.update();\n    }\n  },\n  _startLoop: function () {\n    var self = this;\n    this._running = true;\n\n    function step() {\n      if (self._running) {\n        requestAnimationFrame(step);\n        !self._paused && self._update();\n      }\n    }\n\n    requestAnimationFrame(step);\n  },\n\n  /**\n   * Start animation.\n   */\n  start: function () {\n    this._time = new Date().getTime();\n    this._pausedTime = 0;\n\n    this._startLoop();\n  },\n\n  /**\n   * Stop animation.\n   */\n  stop: function () {\n    this._running = false;\n  },\n\n  /**\n   * Pause animation.\n   */\n  pause: function () {\n    if (!this._paused) {\n      this._pauseStart = new Date().getTime();\n      this._paused = true;\n    }\n  },\n\n  /**\n   * Resume animation.\n   */\n  resume: function () {\n    if (this._paused) {\n      this._pausedTime += new Date().getTime() - this._pauseStart;\n      this._paused = false;\n    }\n  },\n\n  /**\n   * Clear animation.\n   */\n  clear: function () {\n    this._clips = [];\n  },\n\n  /**\n   * Whether animation finished.\n   */\n  isFinished: function () {\n    return !this._clips.length;\n  },\n\n  /**\n   * Creat animator for a target, whose props can be animated.\n   *\n   * @param  {Object} target\n   * @param  {Object} options\n   * @param  {boolean} [options.loop=false] Whether loop animation.\n   * @param  {Function} [options.getter=null] Get value from target.\n   * @param  {Function} [options.setter=null] Set value to target.\n   * @return {module:zrender/animation/Animation~Animator}\n   */\n  // TODO Gap\n  animate: function (target, options) {\n    options = options || {};\n    var animator = new Animator(target, options.loop, options.getter, options.setter);\n    this.addAnimator(animator);\n    return animator;\n  }\n};\nutil.mixin(Animation, Dispatcher);\nvar _default = Animation;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/animation/Animation.js\n// module id = lfYz\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/object/define-property.js\n// module id = liLe\n// module chunks = 0","var VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Visual encoding for sankey view\n * @author  Deqing Li(annong035@gmail.com)\n */\nfunction _default(ecModel, payload) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n\n    if (nodes.length) {\n      var minValue = Infinity;\n      var maxValue = -Infinity;\n      zrUtil.each(nodes, function (node) {\n        var nodeValue = node.getLayout().value;\n\n        if (nodeValue < minValue) {\n          minValue = nodeValue;\n        }\n\n        if (nodeValue > maxValue) {\n          maxValue = nodeValue;\n        }\n      });\n      zrUtil.each(nodes, function (node) {\n        var mapping = new VisualMapping({\n          type: 'color',\n          mappingMethod: 'linear',\n          dataExtent: [minValue, maxValue],\n          visual: seriesModel.get('color')\n        });\n        var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n        node.setVisual('color', mapValueToColor); // If set itemStyle.normal.color\n\n        var itemModel = node.getModel();\n        var customColor = itemModel.get('itemStyle.color');\n\n        if (customColor != null) {\n          node.setVisual('color', customColor);\n        }\n      });\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/sankeyVisual.js\n// module id = liel\n// module chunks = 0","var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array;\n/**\n * 鍒涘缓涓�涓悜閲廫n * @param {number} [x=0]\n * @param {number} [y=0]\n * @return {Vector2}\n */\n\nfunction create(x, y) {\n  var out = new ArrayCtor(2);\n\n  if (x == null) {\n    x = 0;\n  }\n\n  if (y == null) {\n    y = 0;\n  }\n\n  out[0] = x;\n  out[1] = y;\n  return out;\n}\n/**\n * 澶嶅埗鍚戦噺鏁版嵁\n * @param {Vector2} out\n * @param {Vector2} v\n * @return {Vector2}\n */\n\n\nfunction copy(out, v) {\n  out[0] = v[0];\n  out[1] = v[1];\n  return out;\n}\n/**\n * 鍏嬮殕涓�涓悜閲廫n * @param {Vector2} v\n * @return {Vector2}\n */\n\n\nfunction clone(v) {\n  var out = new ArrayCtor(2);\n  out[0] = v[0];\n  out[1] = v[1];\n  return out;\n}\n/**\n * 璁剧疆鍚戦噺鐨勪袱涓」\n * @param {Vector2} out\n * @param {number} a\n * @param {number} b\n * @return {Vector2} 缁撴灉\n */\n\n\nfunction set(out, a, b) {\n  out[0] = a;\n  out[1] = b;\n  return out;\n}\n/**\n * 鍚戦噺鐩稿姞\n * @param {Vector2} out\n * @param {Vector2} v1\n * @param {Vector2} v2\n */\n\n\nfunction add(out, v1, v2) {\n  out[0] = v1[0] + v2[0];\n  out[1] = v1[1] + v2[1];\n  return out;\n}\n/**\n * 鍚戦噺缂╂斁鍚庣浉鍔燶n * @param {Vector2} out\n * @param {Vector2} v1\n * @param {Vector2} v2\n * @param {number} a\n */\n\n\nfunction scaleAndAdd(out, v1, v2, a) {\n  out[0] = v1[0] + v2[0] * a;\n  out[1] = v1[1] + v2[1] * a;\n  return out;\n}\n/**\n * 鍚戦噺鐩稿噺\n * @param {Vector2} out\n * @param {Vector2} v1\n * @param {Vector2} v2\n */\n\n\nfunction sub(out, v1, v2) {\n  out[0] = v1[0] - v2[0];\n  out[1] = v1[1] - v2[1];\n  return out;\n}\n/**\n * 鍚戦噺闀垮害\n * @param {Vector2} v\n * @return {number}\n */\n\n\nfunction len(v) {\n  return Math.sqrt(lenSquare(v));\n}\n\nvar length = len; // jshint ignore:line\n\n/**\n * 鍚戦噺闀垮害骞虫柟\n * @param {Vector2} v\n * @return {number}\n */\n\nfunction lenSquare(v) {\n  return v[0] * v[0] + v[1] * v[1];\n}\n\nvar lengthSquare = lenSquare;\n/**\n * 鍚戦噺涔樻硶\n * @param {Vector2} out\n * @param {Vector2} v1\n * @param {Vector2} v2\n */\n\nfunction mul(out, v1, v2) {\n  out[0] = v1[0] * v2[0];\n  out[1] = v1[1] * v2[1];\n  return out;\n}\n/**\n * 鍚戦噺闄ゆ硶\n * @param {Vector2} out\n * @param {Vector2} v1\n * @param {Vector2} v2\n */\n\n\nfunction div(out, v1, v2) {\n  out[0] = v1[0] / v2[0];\n  out[1] = v1[1] / v2[1];\n  return out;\n}\n/**\n * 鍚戦噺鐐逛箻\n * @param {Vector2} v1\n * @param {Vector2} v2\n * @return {number}\n */\n\n\nfunction dot(v1, v2) {\n  return v1[0] * v2[0] + v1[1] * v2[1];\n}\n/**\n * 鍚戦噺缂╂斁\n * @param {Vector2} out\n * @param {Vector2} v\n * @param {number} s\n */\n\n\nfunction scale(out, v, s) {\n  out[0] = v[0] * s;\n  out[1] = v[1] * s;\n  return out;\n}\n/**\n * 鍚戦噺褰掍竴鍖朶n * @param {Vector2} out\n * @param {Vector2} v\n */\n\n\nfunction normalize(out, v) {\n  var d = len(v);\n\n  if (d === 0) {\n    out[0] = 0;\n    out[1] = 0;\n  } else {\n    out[0] = v[0] / d;\n    out[1] = v[1] / d;\n  }\n\n  return out;\n}\n/**\n * 璁$畻鍚戦噺闂磋窛绂籠n * @param {Vector2} v1\n * @param {Vector2} v2\n * @return {number}\n */\n\n\nfunction distance(v1, v2) {\n  return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\n\nvar dist = distance;\n/**\n * 鍚戦噺璺濈骞虫柟\n * @param {Vector2} v1\n * @param {Vector2} v2\n * @return {number}\n */\n\nfunction distanceSquare(v1, v2) {\n  return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\n\nvar distSquare = distanceSquare;\n/**\n * 姹傝礋鍚戦噺\n * @param {Vector2} out\n * @param {Vector2} v\n */\n\nfunction negate(out, v) {\n  out[0] = -v[0];\n  out[1] = -v[1];\n  return out;\n}\n/**\n * 鎻掑�间袱涓偣\n * @param {Vector2} out\n * @param {Vector2} v1\n * @param {Vector2} v2\n * @param {number} t\n */\n\n\nfunction lerp(out, v1, v2, t) {\n  out[0] = v1[0] + t * (v2[0] - v1[0]);\n  out[1] = v1[1] + t * (v2[1] - v1[1]);\n  return out;\n}\n/**\n * 鐭╅樀宸︿箻鍚戦噺\n * @param {Vector2} out\n * @param {Vector2} v\n * @param {Vector2} m\n */\n\n\nfunction applyTransform(out, v, m) {\n  var x = v[0];\n  var y = v[1];\n  out[0] = m[0] * x + m[2] * y + m[4];\n  out[1] = m[1] * x + m[3] * y + m[5];\n  return out;\n}\n/**\n * 姹備袱涓悜閲忔渶灏忓�糪n * @param  {Vector2} out\n * @param  {Vector2} v1\n * @param  {Vector2} v2\n */\n\n\nfunction min(out, v1, v2) {\n  out[0] = Math.min(v1[0], v2[0]);\n  out[1] = Math.min(v1[1], v2[1]);\n  return out;\n}\n/**\n * 姹備袱涓悜閲忔渶澶у�糪n * @param  {Vector2} out\n * @param  {Vector2} v1\n * @param  {Vector2} v2\n */\n\n\nfunction max(out, v1, v2) {\n  out[0] = Math.max(v1[0], v2[0]);\n  out[1] = Math.max(v1[1], v2[1]);\n  return out;\n}\n\nexports.create = create;\nexports.copy = copy;\nexports.clone = clone;\nexports.set = set;\nexports.add = add;\nexports.scaleAndAdd = scaleAndAdd;\nexports.sub = sub;\nexports.len = len;\nexports.length = length;\nexports.lenSquare = lenSquare;\nexports.lengthSquare = lengthSquare;\nexports.mul = mul;\nexports.div = div;\nexports.dot = dot;\nexports.scale = scale;\nexports.normalize = normalize;\nexports.distance = distance;\nexports.dist = dist;\nexports.distanceSquare = distanceSquare;\nexports.distSquare = distSquare;\nexports.negate = negate;\nexports.lerp = lerp;\nexports.applyTransform = applyTransform;\nexports.min = min;\nexports.max = max;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/vector.js\n// module id = luYz\n// module chunks = 0","var SeriesModel = require(\"../../model/Series\");\n\nvar Tree = require(\"../../data/Tree\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @file Create data struct and define tree view's series model\n */\nvar _default = SeriesModel.extend({\n  type: 'series.tree',\n  layoutInfo: null,\n  // can support the position parameters 'left', 'top','right','bottom', 'width',\n  // 'height' in the setOption() with 'merge' mode normal.\n  layoutMode: 'box',\n\n  /**\n   * Init a tree data structure from data in option series\n   * @param  {Object} option  the object used to config echarts view\n   * @return {module:echarts/data/List} storage initial data\n   */\n  getInitialData: function (option) {\n    //create an virtual root\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    var leaves = option.leaves || {};\n    var treeOption = {};\n    treeOption.leaves = leaves;\n    var tree = Tree.createTree(root, this, treeOption);\n    var treeDepth = 0;\n    tree.eachNode('preorder', function (node) {\n      if (node.depth > treeDepth) {\n        treeDepth = node.depth;\n      }\n    });\n    var expandAndCollapse = option.expandAndCollapse;\n    var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n    tree.root.eachNode('preorder', function (node) {\n      var item = node.hostTree.data.getRawDataItem(node.dataIndex); // add item.collapsed != null, because users can collapse node original in the series.data.\n\n      node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n    });\n    return tree.data;\n  },\n\n  /**\n   * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'.\n   * @returns {string} orient\n   */\n  getOrient: function () {\n    var orient = this.get('orient');\n\n    if (orient === 'horizontal') {\n      orient = 'LR';\n    } else if (orient === 'vertical') {\n      orient = 'TB';\n    }\n\n    return orient;\n  },\n\n  /**\n   * @override\n   * @param {number} dataIndex\n   */\n  formatTooltip: function (dataIndex) {\n    var tree = this.getData().tree;\n    var realRoot = tree.root.children[0];\n    var node = tree.getNodeByDataIndex(dataIndex);\n    var value = node.getValue();\n    var name = node.name;\n\n    while (node && node !== realRoot) {\n      name = node.parentNode.name + '.' + name;\n      node = node.parentNode;\n    }\n\n    return encodeHTML(name + (isNaN(value) || value == null ? '' : ' : ' + value));\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    // the position of the whole view\n    left: '12%',\n    top: '12%',\n    right: '12%',\n    bottom: '12%',\n    // the layout of the tree, two value can be selected, 'orthogonal' or 'radial'\n    layout: 'orthogonal',\n    // The orient of orthoginal layout, can be setted to 'LR', 'TB', 'RL', 'BT'.\n    // and the backward compatibility configuration 'horizontal = LR', 'vertical = TB'.\n    orient: 'LR',\n    symbol: 'emptyCircle',\n    symbolSize: 7,\n    expandAndCollapse: true,\n    initialTreeDepth: 2,\n    lineStyle: {\n      color: '#ccc',\n      width: 1.5,\n      curveness: 0.5\n    },\n    itemStyle: {\n      color: 'lightsteelblue',\n      borderColor: '#c23531',\n      borderWidth: 1.5\n    },\n    label: {\n      show: true,\n      color: '#555'\n    },\n    leaves: {\n      label: {\n        show: true\n      }\n    },\n    animationEasing: 'linear',\n    animationDuration: 700,\n    animationDurationUpdate: 1000\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/tree/TreeSeries.js\n// module id = luaR\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphicUtil = require(\"../util/graphic\");\n\nvar _labelHelper = require(\"./helper/labelHelper\");\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\n\nvar createListFromArray = require(\"./helper/createListFromArray\");\n\nvar _barGrid = require(\"../layout/barGrid\");\n\nvar getLayoutOnAxis = _barGrid.getLayoutOnAxis;\n\nvar DataDiffer = require(\"../data/DataDiffer\");\n\nvar prepareCartesian2d = require(\"../coord/cartesian/prepareCustom\");\n\nvar prepareGeo = require(\"../coord/geo/prepareCustom\");\n\nvar prepareSingleAxis = require(\"../coord/single/prepareCustom\");\n\nvar preparePolar = require(\"../coord/polar/prepareCustom\");\n\nvar prepareCalendar = require(\"../coord/calendar/prepareCustom\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ITEM_STYLE_NORMAL_PATH = ['itemStyle'];\nvar ITEM_STYLE_EMPHASIS_PATH = ['emphasis', 'itemStyle'];\nvar LABEL_NORMAL = ['label'];\nvar LABEL_EMPHASIS = ['emphasis', 'label']; // Use prefix to avoid index to be the same as el.name,\n// which will cause weird udpate animation.\n\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\n/**\n * To reduce total package size of each coordinate systems, the modules `prepareCustom`\n * of each coordinate systems are not required by each coordinate systems directly, but\n * required by the module `custom`.\n *\n * prepareInfoForCustomSeries {Function}: optional\n *     @return {Object} {coordSys: {...}, api: {\n *         coord: function (data, clamp) {}, // return point in global.\n *         size: function (dataSize, dataItem) {} // return size of each axis in coordSys.\n *     }}\n */\n\nvar prepareCustoms = {\n  cartesian2d: prepareCartesian2d,\n  geo: prepareGeo,\n  singleAxis: prepareSingleAxis,\n  polar: preparePolar,\n  calendar: prepareCalendar\n}; // ------\n// Model\n// ------\n\necharts.extendSeriesModel({\n  type: 'series.custom',\n  dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],\n  defaultOption: {\n    coordinateSystem: 'cartesian2d',\n    // Can be set as 'none'\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // Polar coordinate system\n    // polarIndex: 0,\n    // Geo coordinate system\n    // geoIndex: 0,\n    // label: {}\n    // itemStyle: {}\n\n  },\n  getInitialData: function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  }\n}); // -----\n// View\n// -----\n\necharts.extendChartView({\n  type: 'custom',\n\n  /**\n   * @private\n   * @type {module:echarts/data/List}\n   */\n  _data: null,\n\n  /**\n   * @override\n   */\n  render: function (customSeries, ecModel, api) {\n    var oldData = this._data;\n    var data = customSeries.getData();\n    var group = this.group;\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n    this.group.removeAll();\n    data.diff(oldData).add(function (newIdx) {\n      createOrUpdate(null, newIdx, renderItem(newIdx), customSeries, group, data);\n    }).update(function (newIdx, oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      createOrUpdate(el, newIdx, renderItem(newIdx), customSeries, group, data);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  },\n  incrementalPrepareRender: function (customSeries, ecModel, api) {\n    this.group.removeAll();\n    this._data = null;\n  },\n  incrementalRender: function (params, customSeries, ecModel, api) {\n    var data = customSeries.getData();\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n    function setIncrementalAndHoverLayer(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.useHoverLayer = true;\n      }\n    }\n\n    for (var idx = params.start; idx < params.end; idx++) {\n      var el = createOrUpdate(null, idx, renderItem(idx), customSeries, this.group, data);\n      el.traverse(setIncrementalAndHoverLayer);\n    }\n  },\n\n  /**\n   * @override\n   */\n  dispose: zrUtil.noop\n});\n\nfunction createEl(elOption) {\n  var graphicType = elOption.type;\n  var el;\n\n  if (graphicType === 'path') {\n    var shape = elOption.shape;\n    el = graphicUtil.makePath(shape.pathData, null, {\n      x: shape.x || 0,\n      y: shape.y || 0,\n      width: shape.width || 0,\n      height: shape.height || 0\n    }, 'center');\n    el.__customPathData = elOption.pathData;\n  } else if (graphicType === 'image') {\n    el = new graphicUtil.Image({});\n    el.__customImagePath = elOption.style.image;\n  } else if (graphicType === 'text') {\n    el = new graphicUtil.Text({});\n    el.__customText = elOption.style.text;\n  } else {\n    var Clz = graphicUtil[graphicType.charAt(0).toUpperCase() + graphicType.slice(1)];\n    el = new Clz();\n  }\n\n  el.__customGraphicType = graphicType;\n  el.name = elOption.name;\n  return el;\n}\n\nfunction updateEl(el, dataIndex, elOption, animatableModel, data, isInit) {\n  var targetProps = {};\n  var elOptionStyle = elOption.style || {};\n  elOption.shape && (targetProps.shape = zrUtil.clone(elOption.shape));\n  elOption.position && (targetProps.position = elOption.position.slice());\n  elOption.scale && (targetProps.scale = elOption.scale.slice());\n  elOption.origin && (targetProps.origin = elOption.origin.slice());\n  elOption.rotation && (targetProps.rotation = elOption.rotation);\n\n  if (el.type === 'image' && elOption.style) {\n    var targetStyle = targetProps.style = {};\n    zrUtil.each(['x', 'y', 'width', 'height'], function (prop) {\n      prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);\n    });\n  }\n\n  if (el.type === 'text' && elOption.style) {\n    var targetStyle = targetProps.style = {};\n    zrUtil.each(['x', 'y'], function (prop) {\n      prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);\n    }); // Compatible with previous: both support\n    // textFill and fill, textStroke and stroke in 'text' element.\n\n    !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\n    !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\n  }\n\n  if (el.type !== 'group') {\n    el.useStyle(elOptionStyle); // Init animation.\n\n    if (isInit) {\n      el.style.opacity = 0;\n      var targetOpacity = elOptionStyle.opacity;\n      targetOpacity == null && (targetOpacity = 1);\n      graphicUtil.initProps(el, {\n        style: {\n          opacity: targetOpacity\n        }\n      }, animatableModel, dataIndex);\n    }\n  }\n\n  if (isInit) {\n    el.attr(targetProps);\n  } else {\n    graphicUtil.updateProps(el, targetProps, animatableModel, dataIndex);\n  } // z2 must not be null/undefined, otherwise sort error may occur.\n\n\n  el.attr({\n    z2: elOption.z2 || 0,\n    silent: elOption.silent\n  });\n  elOption.styleEmphasis !== false && graphicUtil.setHoverStyle(el, elOption.styleEmphasis);\n}\n\nfunction prepareStyleTransition(prop, targetStyle, elOptionStyle, oldElStyle, isInit) {\n  if (elOptionStyle[prop] != null && !isInit) {\n    targetStyle[prop] = elOptionStyle[prop];\n    elOptionStyle[prop] = oldElStyle[prop];\n  }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n  var renderItem = customSeries.get('renderItem');\n  var coordSys = customSeries.coordinateSystem;\n  var prepareResult = {};\n\n  if (coordSys) {\n    prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms() : prepareCustoms[coordSys.type](coordSys);\n  }\n\n  var userAPI = zrUtil.defaults({\n    getWidth: api.getWidth,\n    getHeight: api.getHeight,\n    getZr: api.getZr,\n    getDevicePixelRatio: api.getDevicePixelRatio,\n    value: value,\n    style: style,\n    styleEmphasis: styleEmphasis,\n    visual: visual,\n    barLayout: barLayout,\n    currentSeriesIndices: currentSeriesIndices,\n    font: font\n  }, prepareResult.api || {});\n  var userParams = {\n    context: {},\n    seriesId: customSeries.id,\n    seriesName: customSeries.name,\n    seriesIndex: customSeries.seriesIndex,\n    coordSys: prepareResult.coordSys,\n    dataInsideLength: data.count(),\n    encode: wrapEncodeDef(customSeries.getData())\n  }; // Do not support call `api` asynchronously without dataIndexInside input.\n\n  var currDataIndexInside;\n  var currDirty = true;\n  var currItemModel;\n  var currLabelNormalModel;\n  var currLabelEmphasisModel;\n  var currVisualColor;\n  return function (dataIndexInside) {\n    currDataIndexInside = dataIndexInside;\n    currDirty = true;\n    return renderItem && renderItem(zrUtil.defaults({\n      dataIndexInside: dataIndexInside,\n      dataIndex: data.getRawIndex(dataIndexInside)\n    }, userParams), userAPI) || {};\n  }; // Do not update cache until api called.\n\n  function updateCache(dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n    if (currDirty) {\n      currItemModel = data.getItemModel(dataIndexInside);\n      currLabelNormalModel = currItemModel.getModel(LABEL_NORMAL);\n      currLabelEmphasisModel = currItemModel.getModel(LABEL_EMPHASIS);\n      currVisualColor = data.getItemVisual(dataIndexInside, 'color');\n      currDirty = false;\n    }\n  }\n  /**\n   * @public\n   * @param {number|string} dim\n   * @param {number} [dataIndexInside=currDataIndexInside]\n   * @return {number|string} value\n   */\n\n\n  function value(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    return data.get(data.getDimension(dim || 0), dataIndexInside);\n  }\n  /**\n   * By default, `visual` is applied to style (to support visualMap).\n   * `visual.color` is applied at `fill`. If user want apply visual.color on `stroke`,\n   * it can be implemented as:\n   * `api.style({stroke: api.visual('color'), fill: null})`;\n   * @public\n   * @param {Object} [extra]\n   * @param {number} [dataIndexInside=currDataIndexInside]\n   */\n\n\n  function style(extra, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    updateCache(dataIndexInside);\n    var itemStyle = currItemModel.getModel(ITEM_STYLE_NORMAL_PATH).getItemStyle();\n    currVisualColor != null && (itemStyle.fill = currVisualColor);\n    var opacity = data.getItemVisual(dataIndexInside, 'opacity');\n    opacity != null && (itemStyle.opacity = opacity);\n    graphicUtil.setTextStyle(itemStyle, currLabelNormalModel, null, {\n      autoColor: currVisualColor,\n      isRectText: true\n    });\n    itemStyle.text = currLabelNormalModel.getShallow('show') ? zrUtil.retrieve2(customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null;\n    extra && zrUtil.extend(itemStyle, extra);\n    return itemStyle;\n  }\n  /**\n   * @public\n   * @param {Object} [extra]\n   * @param {number} [dataIndexInside=currDataIndexInside]\n   */\n\n\n  function styleEmphasis(extra, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    updateCache(dataIndexInside);\n    var itemStyle = currItemModel.getModel(ITEM_STYLE_EMPHASIS_PATH).getItemStyle();\n    graphicUtil.setTextStyle(itemStyle, currLabelEmphasisModel, null, {\n      isRectText: true\n    }, true);\n    itemStyle.text = currLabelEmphasisModel.getShallow('show') ? zrUtil.retrieve3(customSeries.getFormattedLabel(dataIndexInside, 'emphasis'), customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null;\n    extra && zrUtil.extend(itemStyle, extra);\n    return itemStyle;\n  }\n  /**\n   * @public\n   * @param {string} visualType\n   * @param {number} [dataIndexInside=currDataIndexInside]\n   */\n\n\n  function visual(visualType, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    return data.getItemVisual(dataIndexInside, visualType);\n  }\n  /**\n   * @public\n   * @param {number} opt.count Positive interger.\n   * @param {number} [opt.barWidth]\n   * @param {number} [opt.barMaxWidth]\n   * @param {number} [opt.barGap]\n   * @param {number} [opt.barCategoryGap]\n   * @return {Object} {width, offset, offsetCenter} is not support, return undefined.\n   */\n\n\n  function barLayout(opt) {\n    if (coordSys.getBaseAxis) {\n      var baseAxis = coordSys.getBaseAxis();\n      return getLayoutOnAxis(zrUtil.defaults({\n        axis: baseAxis\n      }, opt), api);\n    }\n  }\n  /**\n   * @public\n   * @return {Array.<number>}\n   */\n\n\n  function currentSeriesIndices() {\n    return ecModel.getCurrentSeriesIndices();\n  }\n  /**\n   * @public\n   * @param {Object} opt\n   * @param {string} [opt.fontStyle]\n   * @param {number} [opt.fontWeight]\n   * @param {number} [opt.fontSize]\n   * @param {string} [opt.fontFamily]\n   * @return {string} font string\n   */\n\n\n  function font(opt) {\n    return graphicUtil.getFont(opt, ecModel);\n  }\n}\n\nfunction wrapEncodeDef(data) {\n  var encodeDef = {};\n  zrUtil.each(data.dimensions, function (dimName, dataDimIndex) {\n    var dimInfo = data.getDimensionInfo(dimName);\n\n    if (!dimInfo.isExtraCoord) {\n      var coordDim = dimInfo.coordDim;\n      var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n      dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n    }\n  });\n  return encodeDef;\n}\n\nfunction createOrUpdate(el, dataIndex, elOption, animatableModel, group, data) {\n  el = doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data);\n  el && data.setItemGraphicEl(dataIndex, el);\n  return el;\n}\n\nfunction doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data) {\n  var elOptionType = elOption.type;\n\n  if (el && elOptionType !== el.__customGraphicType && (elOptionType !== 'path' || elOption.pathData !== el.__customPathData) && (elOptionType !== 'image' || elOption.style.image !== el.__customImagePath) && (elOptionType !== 'text' || elOption.style.text !== el.__customText)) {\n    group.remove(el);\n    el = null;\n  } // `elOption.type` is undefined when `renderItem` returns nothing.\n\n\n  if (elOptionType == null) {\n    return;\n  }\n\n  var isInit = !el;\n  !el && (el = createEl(elOption));\n  updateEl(el, dataIndex, elOption, animatableModel, data, isInit);\n\n  if (elOptionType === 'group') {\n    var oldChildren = el.children() || [];\n    var newChildren = elOption.children || [];\n\n    if (elOption.diffChildrenByName) {\n      // lower performance.\n      diffGroupChildren({\n        oldChildren: oldChildren,\n        newChildren: newChildren,\n        dataIndex: dataIndex,\n        animatableModel: animatableModel,\n        group: el,\n        data: data\n      });\n    } else {\n      // better performance.\n      var index = 0;\n\n      for (; index < newChildren.length; index++) {\n        doCreateOrUpdate(el.childAt(index), dataIndex, newChildren[index], animatableModel, el, data);\n      }\n\n      for (; index < oldChildren.length; index++) {\n        oldChildren[index] && el.remove(oldChildren[index]);\n      }\n    }\n  }\n\n  group.add(el);\n  return el;\n}\n\nfunction diffGroupChildren(context) {\n  new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n  var name = item && item.name;\n  return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n  var context = this.context;\n  var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n  var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n  doCreateOrUpdate(child, context.dataIndex, childOption, context.animatableModel, context.group, context.data);\n}\n\nfunction processRemove(oldIndex) {\n  var context = this.context;\n  var child = context.oldChildren[oldIndex];\n  child && context.group.remove(child);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/custom.js\n// module id = m02s\n// module chunks = 0","var Polyline = require(\"./Polyline\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar EffectLine = require(\"./EffectLine\");\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Provide effect for line\n * @module echarts/chart/helper/EffectLine\n */\n\n/**\n * @constructor\n * @extends {module:echarts/chart/helper/EffectLine}\n * @alias {module:echarts/chart/helper/Polyline}\n */\nfunction EffectPolyline(lineData, idx, seriesScope) {\n  EffectLine.call(this, lineData, idx, seriesScope);\n  this._lastFrame = 0;\n  this._lastFramePercent = 0;\n}\n\nvar effectPolylineProto = EffectPolyline.prototype; // Overwrite\n\neffectPolylineProto.createLine = function (lineData, idx, seriesScope) {\n  return new Polyline(lineData, idx, seriesScope);\n}; // Overwrite\n\n\neffectPolylineProto.updateAnimationPoints = function (symbol, points) {\n  this._points = points;\n  var accLenArr = [0];\n  var len = 0;\n\n  for (var i = 1; i < points.length; i++) {\n    var p1 = points[i - 1];\n    var p2 = points[i];\n    len += vec2.dist(p1, p2);\n    accLenArr.push(len);\n  }\n\n  if (len === 0) {\n    return;\n  }\n\n  for (var i = 0; i < accLenArr.length; i++) {\n    accLenArr[i] /= len;\n  }\n\n  this._offsets = accLenArr;\n  this._length = len;\n}; // Overwrite\n\n\neffectPolylineProto.getLineLength = function (symbol) {\n  return this._length;\n}; // Overwrite\n\n\neffectPolylineProto.updateSymbolPosition = function (symbol) {\n  var t = symbol.__t;\n  var points = this._points;\n  var offsets = this._offsets;\n  var len = points.length;\n\n  if (!offsets) {\n    // Has length 0\n    return;\n  }\n\n  var lastFrame = this._lastFrame;\n  var frame;\n\n  if (t < this._lastFramePercent) {\n    // Start from the next frame\n    // PENDING start from lastFrame ?\n    var start = Math.min(lastFrame + 1, len - 1);\n\n    for (frame = start; frame >= 0; frame--) {\n      if (offsets[frame] <= t) {\n        break;\n      }\n    } // PENDING really need to do this ?\n\n\n    frame = Math.min(frame, len - 2);\n  } else {\n    for (var frame = lastFrame; frame < len; frame++) {\n      if (offsets[frame] > t) {\n        break;\n      }\n    }\n\n    frame = Math.min(frame - 1, len - 2);\n  }\n\n  vec2.lerp(symbol.position, points[frame], points[frame + 1], (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]));\n  var tx = points[frame + 1][0] - points[frame][0];\n  var ty = points[frame + 1][1] - points[frame][1];\n  symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n  this._lastFrame = frame;\n  this._lastFramePercent = t;\n  symbol.ignore = false;\n};\n\nzrUtil.inherits(EffectPolyline, EffectLine);\nvar _default = EffectPolyline;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/EffectPolyline.js\n// module id = mBiu\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_iobject.js\n// module id = mEMm\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./map/MapSeries\");\n\nrequire(\"./map/MapView\");\n\nrequire(\"../action/geoRoam\");\n\nrequire(\"../coord/geo/geoCreator\");\n\nvar mapSymbolLayout = require(\"./map/mapSymbolLayout\");\n\nvar mapVisual = require(\"./map/mapVisual\");\n\nvar mapDataStatistic = require(\"./map/mapDataStatistic\");\n\nvar backwardCompat = require(\"./map/backwardCompat\");\n\nvar createDataSelectAction = require(\"../action/createDataSelectAction\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(mapSymbolLayout);\necharts.registerVisual(mapVisual);\necharts.registerProcessor(echarts.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\necharts.registerPreprocessor(backwardCompat);\ncreateDataSelectAction('map', [{\n  type: 'mapToggleSelect',\n  event: 'mapselectchanged',\n  method: 'toggleSelected'\n}, {\n  type: 'mapSelect',\n  event: 'mapselected',\n  method: 'select'\n}, {\n  type: 'mapUnSelect',\n  event: 'mapunselected',\n  method: 'unSelect'\n}]);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/map.js\n// module id = mQB+\n// module chunks = 0","var Group = require(\"zrender/lib/container/Group\");\n\nvar componentUtil = require(\"../util/component\");\n\nvar clazzUtil = require(\"../util/clazz\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar Component = function () {\n  /**\n   * @type {module:zrender/container/Group}\n   * @readOnly\n   */\n  this.group = new Group();\n  /**\n   * @type {string}\n   * @readOnly\n   */\n\n  this.uid = componentUtil.getUID('viewComponent');\n};\n\nComponent.prototype = {\n  constructor: Component,\n  init: function (ecModel, api) {},\n  render: function (componentModel, ecModel, api, payload) {},\n  dispose: function () {}\n};\nvar componentProto = Component.prototype;\n\ncomponentProto.updateView = componentProto.updateLayout = componentProto.updateVisual = function (seriesModel, ecModel, api, payload) {// Do nothing;\n}; // Enable Component.extend.\n\n\nclazzUtil.enableClassExtend(Component); // Enable capability of registerClass, getClass, hasClass, registerSubTypeDefaulter and so on.\n\nclazzUtil.enableClassManagement(Component, {\n  registerWhenExtend: true\n});\nvar _default = Component;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/view/Component.js\n// module id = mhmp\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n  (function standardBrowserEnv() {\n    return {\n      write: function write(name, value, expires, path, domain, secure) {\n        var cookie = [];\n        cookie.push(name + '=' + encodeURIComponent(value));\n\n        if (utils.isNumber(expires)) {\n          cookie.push('expires=' + new Date(expires).toGMTString());\n        }\n\n        if (utils.isString(path)) {\n          cookie.push('path=' + path);\n        }\n\n        if (utils.isString(domain)) {\n          cookie.push('domain=' + domain);\n        }\n\n        if (secure === true) {\n          cookie.push('secure');\n        }\n\n        document.cookie = cookie.join('; ');\n      },\n\n      read: function read(name) {\n        var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n        return (match ? decodeURIComponent(match[3]) : null);\n      },\n\n      remove: function remove(name) {\n        this.write(name, '', Date.now() - 86400000);\n      }\n    };\n  })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return {\n      write: function write() {},\n      read: function read() { return null; },\n      remove: function remove() {}\n    };\n  })()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/cookies.js\n// module id = n/1x\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 130);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 130:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkboxGroup = __webpack_require__(131);\n\nvar _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_checkboxGroup2.default.install = function (Vue) {\n  Vue.component(_checkboxGroup2.default.name, _checkboxGroup2.default);\n};\n\nexports.default = _checkboxGroup2.default;\n\n/***/ }),\n\n/***/ 131:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2f79c88a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_group_vue__ = __webpack_require__(133);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2f79c88a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_group_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 132:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElCheckboxGroup',\n\n  componentName: 'ElCheckboxGroup',\n\n  mixins: [_emitter2.default],\n\n  inject: {\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  props: {\n    value: {},\n    disabled: Boolean,\n    min: Number,\n    max: Number,\n    size: String,\n    fill: String,\n    textColor: String\n  },\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    checkboxGroupSize: function checkboxGroupSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    }\n  },\n\n  watch: {\n    value: function value(_value) {\n      this.dispatch('ElFormItem', 'el.form.change', [_value]);\n    }\n  }\n};\n\n/***/ }),\n\n/***/ 133:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-checkbox-group\",attrs:{\"role\":\"group\",\"aria-label\":\"checkbox-group\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/checkbox-group.js\n// module id = n3y0\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar HeatmapLayer = require(\"./HeatmapLayer\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  pieceList = zrUtil.map(pieceList, function (piece) {\n    return {\n      interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n    };\n  });\n  var len = pieceList.length;\n  var lastIndex = 0;\n  return function (val) {\n    // Try to find in the location of the last found\n    for (var i = lastIndex; i < len; i++) {\n      var interval = pieceList[i].interval;\n\n      if (interval[0] <= val && val <= interval[1]) {\n        lastIndex = i;\n        break;\n      }\n    }\n\n    if (i === len) {\n      // Not found, back interation\n      for (var i = lastIndex - 1; i >= 0; i--) {\n        var interval = pieceList[i].interval;\n\n        if (interval[0] <= val && val <= interval[1]) {\n          lastIndex = i;\n          break;\n        }\n      }\n    }\n\n    return i >= 0 && i < len && selected[i];\n  };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n  return function (val) {\n    return val >= range[0] && val <= range[1];\n  };\n}\n\nfunction isGeoCoordSys(coordSys) {\n  var dimensions = coordSys.dimensions; // Not use coorSys.type === 'geo' because coordSys maybe extended\n\n  return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar _default = echarts.extendChartView({\n  type: 'heatmap',\n  render: function (seriesModel, ecModel, api) {\n    var visualMapOfThisSeries;\n    ecModel.eachComponent('visualMap', function (visualMap) {\n      visualMap.eachTargetSeries(function (targetSeries) {\n        if (targetSeries === seriesModel) {\n          visualMapOfThisSeries = visualMap;\n        }\n      });\n    });\n    this.group.removeAll();\n    this._incrementalDisplayable = null;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n      this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n    } else if (isGeoCoordSys(coordSys)) {\n      this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n    }\n  },\n  incrementalPrepareRender: function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n  },\n  incrementalRender: function (params, seriesModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys) {\n      this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n    }\n  },\n  _renderOnCartesianAndCalendar: function (seriesModel, api, start, end, incremental) {\n    var coordSys = seriesModel.coordinateSystem;\n    var width;\n    var height;\n\n    if (coordSys.type === 'cartesian2d') {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      width = xAxis.getBandWidth();\n      height = yAxis.getBandWidth();\n    }\n\n    var group = this.group;\n    var data = seriesModel.getData();\n    var itemStyleQuery = 'itemStyle';\n    var hoverItemStyleQuery = 'emphasis.itemStyle';\n    var labelQuery = 'label';\n    var hoverLabelQuery = 'emphasis.label';\n    var style = seriesModel.getModel(itemStyleQuery).getItemStyle(['color']);\n    var hoverStl = seriesModel.getModel(hoverItemStyleQuery).getItemStyle();\n    var labelModel = seriesModel.getModel(labelQuery);\n    var hoverLabelModel = seriesModel.getModel(hoverLabelQuery);\n    var coordSysType = coordSys.type;\n    var dataDims = coordSysType === 'cartesian2d' ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n    for (var idx = start; idx < end; idx++) {\n      var rect;\n\n      if (coordSysType === 'cartesian2d') {\n        // Ignore empty data\n        if (isNaN(data.get(dataDims[2], idx))) {\n          continue;\n        }\n\n        var point = coordSys.dataToPoint([data.get(dataDims[0], idx), data.get(dataDims[1], idx)]);\n        rect = new graphic.Rect({\n          shape: {\n            x: point[0] - width / 2,\n            y: point[1] - height / 2,\n            width: width,\n            height: height\n          },\n          style: {\n            fill: data.getItemVisual(idx, 'color'),\n            opacity: data.getItemVisual(idx, 'opacity')\n          }\n        });\n      } else {\n        // Ignore empty data\n        if (isNaN(data.get(dataDims[1], idx))) {\n          continue;\n        }\n\n        rect = new graphic.Rect({\n          z2: 1,\n          shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n          style: {\n            fill: data.getItemVisual(idx, 'color'),\n            opacity: data.getItemVisual(idx, 'opacity')\n          }\n        });\n      }\n\n      var itemModel = data.getItemModel(idx); // Optimization for large datset\n\n      if (data.hasItemOption) {\n        style = itemModel.getModel(itemStyleQuery).getItemStyle(['color']);\n        hoverStl = itemModel.getModel(hoverItemStyleQuery).getItemStyle();\n        labelModel = itemModel.getModel(labelQuery);\n        hoverLabelModel = itemModel.getModel(hoverLabelQuery);\n      }\n\n      var rawValue = seriesModel.getRawValue(idx);\n      var defaultText = '-';\n\n      if (rawValue && rawValue[2] != null) {\n        defaultText = rawValue[2];\n      }\n\n      graphic.setLabelStyle(style, hoverStl, labelModel, hoverLabelModel, {\n        labelFetcher: seriesModel,\n        labelDataIndex: idx,\n        defaultText: defaultText,\n        isRectText: true\n      });\n      rect.setStyle(style);\n      graphic.setHoverStyle(rect, data.hasItemOption ? hoverStl : zrUtil.extend({}, hoverStl));\n      rect.incremental = incremental; // PENDING\n\n      if (incremental) {\n        // Rect must use hover layer if it's incremental.\n        rect.useHoverLayer = true;\n      }\n\n      group.add(rect);\n      data.setItemGraphicEl(idx, rect);\n    }\n  },\n  _renderOnGeo: function (geo, seriesModel, visualMapModel, api) {\n    var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n    var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange; // if (!visualMapping) {\n    //     throw new Error('Data range must have color visuals');\n    // }\n\n    var data = seriesModel.getData();\n    var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n    hmLayer.blurSize = seriesModel.get('blurSize');\n    hmLayer.pointSize = seriesModel.get('pointSize');\n    hmLayer.minOpacity = seriesModel.get('minOpacity');\n    hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n    var rect = geo.getViewRect().clone();\n    var roamTransform = geo.getRoamTransform();\n    rect.applyTransform(roamTransform); // Clamp on viewport\n\n    var x = Math.max(rect.x, 0);\n    var y = Math.max(rect.y, 0);\n    var x2 = Math.min(rect.width + rect.x, api.getWidth());\n    var y2 = Math.min(rect.height + rect.y, api.getHeight());\n    var width = x2 - x;\n    var height = y2 - y;\n    var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n    var points = data.mapArray(dims, function (lng, lat, value) {\n      var pt = geo.dataToPoint([lng, lat]);\n      pt[0] -= x;\n      pt[1] -= y;\n      pt.push(value);\n      return pt;\n    });\n    var dataExtent = visualMapModel.getExtent();\n    var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n    hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n      inRange: inRangeVisuals.color.getColorMapper(),\n      outOfRange: outOfRangeVisuals.color.getColorMapper()\n    }, isInRange);\n    var img = new graphic.Image({\n      style: {\n        width: width,\n        height: height,\n        x: x,\n        y: y,\n        image: hmLayer.canvas\n      },\n      silent: true\n    });\n    this.group.add(img);\n  },\n  dispose: function () {}\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/heatmap/HeatmapView.js\n// module id = nOmy\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar SymbolDraw = require(\"../helper/SymbolDraw\");\n\nvar LineDraw = require(\"../helper/LineDraw\");\n\nvar RoamController = require(\"../../component/helper/RoamController\");\n\nvar roamHelper = require(\"../../component/helper/roamHelper\");\n\nvar _cursorHelper = require(\"../../component/helper/cursorHelper\");\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar adjustEdge = require(\"./adjustEdge\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar nodeOpacityPath = ['itemStyle', 'opacity'];\nvar lineOpacityPath = ['lineStyle', 'opacity'];\n\nfunction getItemOpacity(item, opacityPath) {\n  return item.getVisual('opacity') || item.getModel().get(opacityPath);\n}\n\nfunction fadeOutItem(item, opacityPath, opacityRatio) {\n  var el = item.getGraphicEl();\n  var opacity = getItemOpacity(item, opacityPath);\n\n  if (opacityRatio != null) {\n    opacity == null && (opacity = 1);\n    opacity *= opacityRatio;\n  }\n\n  el.downplay && el.downplay();\n  el.traverse(function (child) {\n    if (child.type !== 'group') {\n      child.setStyle('opacity', opacity);\n    }\n  });\n}\n\nfunction fadeInItem(item, opacityPath) {\n  var opacity = getItemOpacity(item, opacityPath);\n  var el = item.getGraphicEl();\n  el.highlight && el.highlight();\n  el.traverse(function (child) {\n    if (child.type !== 'group') {\n      child.setStyle('opacity', opacity);\n    }\n  });\n}\n\nvar _default = echarts.extendChartView({\n  type: 'graph',\n  init: function (ecModel, api) {\n    var symbolDraw = new SymbolDraw();\n    var lineDraw = new LineDraw();\n    var group = this.group;\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    group.add(symbolDraw.group);\n    group.add(lineDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineDraw = lineDraw;\n    this._firstRender = true;\n  },\n  render: function (seriesModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    this._model = seriesModel;\n    this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n    var symbolDraw = this._symbolDraw;\n    var lineDraw = this._lineDraw;\n    var group = this.group;\n\n    if (coordSys.type === 'view') {\n      var groupNewProp = {\n        position: coordSys.position,\n        scale: coordSys.scale\n      };\n\n      if (this._firstRender) {\n        group.attr(groupNewProp);\n      } else {\n        graphic.updateProps(group, groupNewProp, seriesModel);\n      }\n    } // Fix edge contact point with node\n\n\n    adjustEdge(seriesModel.getGraph(), this._getNodeGlobalScale(seriesModel));\n    var data = seriesModel.getData();\n    symbolDraw.updateData(data);\n    var edgeData = seriesModel.getEdgeData();\n    lineDraw.updateData(edgeData);\n\n    this._updateNodeAndLinkScale();\n\n    this._updateController(seriesModel, ecModel, api);\n\n    clearTimeout(this._layoutTimeout);\n    var forceLayout = seriesModel.forceLayout;\n    var layoutAnimation = seriesModel.get('force.layoutAnimation');\n\n    if (forceLayout) {\n      this._startForceLayoutIteration(forceLayout, layoutAnimation);\n    }\n\n    data.eachItemGraphicEl(function (el, idx) {\n      var itemModel = data.getItemModel(idx); // Update draggable\n\n      el.off('drag').off('dragend');\n      var draggable = data.getItemModel(idx).get('draggable');\n\n      if (draggable) {\n        el.on('drag', function () {\n          if (forceLayout) {\n            forceLayout.warmUp();\n            !this._layouting && this._startForceLayoutIteration(forceLayout, layoutAnimation);\n            forceLayout.setFixed(idx); // Write position back to layout\n\n            data.setItemLayout(idx, el.position);\n          }\n        }, this).on('dragend', function () {\n          if (forceLayout) {\n            forceLayout.setUnfixed(idx);\n          }\n        }, this);\n      }\n\n      el.setDraggable(draggable && forceLayout);\n      el.off('mouseover', el.__focusNodeAdjacency);\n      el.off('mouseout', el.__unfocusNodeAdjacency);\n\n      if (itemModel.get('focusNodeAdjacency')) {\n        el.on('mouseover', el.__focusNodeAdjacency = function () {\n          api.dispatchAction({\n            type: 'focusNodeAdjacency',\n            seriesId: seriesModel.id,\n            dataIndex: el.dataIndex\n          });\n        });\n        el.on('mouseout', el.__unfocusNodeAdjacency = function () {\n          api.dispatchAction({\n            type: 'unfocusNodeAdjacency',\n            seriesId: seriesModel.id\n          });\n        });\n      }\n    }, this);\n    data.graph.eachEdge(function (edge) {\n      var el = edge.getGraphicEl();\n      el.off('mouseover', el.__focusNodeAdjacency);\n      el.off('mouseout', el.__unfocusNodeAdjacency);\n\n      if (edge.getModel().get('focusNodeAdjacency')) {\n        el.on('mouseover', el.__focusNodeAdjacency = function () {\n          api.dispatchAction({\n            type: 'focusNodeAdjacency',\n            seriesId: seriesModel.id,\n            edgeDataIndex: edge.dataIndex\n          });\n        });\n        el.on('mouseout', el.__unfocusNodeAdjacency = function () {\n          api.dispatchAction({\n            type: 'unfocusNodeAdjacency',\n            seriesId: seriesModel.id\n          });\n        });\n      }\n    });\n    var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get('circular.rotateLabel');\n    var cx = data.getLayout('cx');\n    var cy = data.getLayout('cy');\n    data.eachItemGraphicEl(function (el, idx) {\n      var symbolPath = el.getSymbolPath();\n\n      if (circularRotateLabel) {\n        var pos = data.getItemLayout(idx);\n        var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n        if (rad < 0) {\n          rad = Math.PI * 2 + rad;\n        }\n\n        var isLeft = pos[0] < cx;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n\n        var textPosition = isLeft ? 'left' : 'right';\n        symbolPath.setStyle({\n          textRotation: -rad,\n          textPosition: textPosition,\n          textOrigin: 'center'\n        });\n        symbolPath.hoverStyle && (symbolPath.hoverStyle.textPosition = textPosition);\n      } else {\n        symbolPath.setStyle({\n          textRotation: 0\n        });\n      }\n    });\n    this._firstRender = false;\n  },\n  dispose: function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = {};\n  },\n  focusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n    var data = this._model.getData();\n\n    var graph = data.graph;\n    var dataIndex = payload.dataIndex;\n    var edgeDataIndex = payload.edgeDataIndex;\n    var node = graph.getNodeByIndex(dataIndex);\n    var edge = graph.getEdgeByIndex(edgeDataIndex);\n\n    if (!node && !edge) {\n      return;\n    }\n\n    graph.eachNode(function (node) {\n      fadeOutItem(node, nodeOpacityPath, 0.1);\n    });\n    graph.eachEdge(function (edge) {\n      fadeOutItem(edge, lineOpacityPath, 0.1);\n    });\n\n    if (node) {\n      fadeInItem(node, nodeOpacityPath);\n      zrUtil.each(node.edges, function (adjacentEdge) {\n        if (adjacentEdge.dataIndex < 0) {\n          return;\n        }\n\n        fadeInItem(adjacentEdge, lineOpacityPath);\n        fadeInItem(adjacentEdge.node1, nodeOpacityPath);\n        fadeInItem(adjacentEdge.node2, nodeOpacityPath);\n      });\n    }\n\n    if (edge) {\n      fadeInItem(edge, lineOpacityPath);\n      fadeInItem(edge.node1, nodeOpacityPath);\n      fadeInItem(edge.node2, nodeOpacityPath);\n    }\n  },\n  unfocusNodeAdjacency: function (seriesModel, ecModel, api, payload) {\n    var graph = this._model.getData().graph;\n\n    graph.eachNode(function (node) {\n      fadeOutItem(node, nodeOpacityPath);\n    });\n    graph.eachEdge(function (edge) {\n      fadeOutItem(edge, lineOpacityPath);\n    });\n  },\n  _startForceLayoutIteration: function (forceLayout, layoutAnimation) {\n    var self = this;\n\n    (function step() {\n      forceLayout.step(function (stopped) {\n        self.updateLayout(self._model);\n        (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n      });\n    })();\n  },\n  _updateController: function (seriesModel, ecModel, api) {\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n\n    if (seriesModel.coordinateSystem.type !== 'view') {\n      controller.disable();\n      return;\n    }\n\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (dx, dy) {\n      roamHelper.updateViewOnPan(controllerHost, dx, dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        dx: dx,\n        dy: dy\n      });\n    }).on('zoom', function (zoom, mouseX, mouseY) {\n      roamHelper.updateViewOnZoom(controllerHost, zoom, mouseX, mouseY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        zoom: zoom,\n        originX: mouseX,\n        originY: mouseY\n      });\n\n      this._updateNodeAndLinkScale();\n\n      adjustEdge(seriesModel.getGraph(), this._getNodeGlobalScale(seriesModel));\n\n      this._lineDraw.updateLayout();\n    }, this);\n  },\n  _updateNodeAndLinkScale: function () {\n    var seriesModel = this._model;\n    var data = seriesModel.getData();\n\n    var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n    var invScale = [nodeScale, nodeScale];\n    data.eachItemGraphicEl(function (el, idx) {\n      el.attr('scale', invScale);\n    });\n  },\n  _getNodeGlobalScale: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type !== 'view') {\n      return 1;\n    }\n\n    var nodeScaleRatio = this._nodeScaleRatio;\n    var groupScale = coordSys.scale;\n    var groupZoom = groupScale && groupScale[0] || 1; // Scale node when zoom changes\n\n    var roamZoom = coordSys.getZoom();\n    var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n    return nodeScale / groupZoom;\n  },\n  updateLayout: function (seriesModel) {\n    adjustEdge(seriesModel.getGraph(), this._getNodeGlobalScale(seriesModel));\n\n    this._symbolDraw.updateLayout();\n\n    this._lineDraw.updateLayout();\n  },\n  remove: function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove();\n    this._lineDraw && this._lineDraw.remove();\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/GraphView.js\n// module id = nTfm\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar brushHelper = require(\"./brushHelper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar indexOf = zrUtil.indexOf;\nvar curry = zrUtil.curry;\nvar COORD_CONVERTS = ['dataToPoint', 'pointToData']; // FIXME\n// how to genarialize to more coordinate systems.\n\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n/**\n * [option in constructor]:\n * {\n *     Index/Id/Name of geo, xAxis, yAxis, grid: See util/model#parseFinder.\n * }\n *\n *\n * [targetInfo]:\n *\n * There can be multiple axes in a single targetInfo. Consider the case\n * of `grid` component, a targetInfo represents a grid which contains one or more\n * cartesian and one or more axes. And consider the case of parallel system,\n * which has multiple axes in a coordinate system.\n * Can be {\n *     panelId: ...,\n *     coordSys: <a representitive cartesian in grid (first cartesian by default)>,\n *     coordSyses: all cartesians.\n *     gridModel: <grid component>\n *     xAxes: correspond to coordSyses on index\n *     yAxes: correspond to coordSyses on index\n * }\n * or {\n *     panelId: ...,\n *     coordSys: <geo coord sys>\n *     coordSyses: [<geo coord sys>]\n *     geoModel: <geo component>\n * }\n *\n *\n * [panelOpt]:\n *\n * Make from targetInfo. Input to BrushController.\n * {\n *     panelId: ...,\n *     rect: ...\n * }\n *\n *\n * [area]:\n *\n * Generated by BrushController or user input.\n * {\n *     panelId: Used to locate coordInfo directly. If user inpput, no panelId.\n *     brushType: determine how to convert to/from coord('rect' or 'polygon' or 'lineX/Y').\n *     Index/Id/Name of geo, xAxis, yAxis, grid: See util/model#parseFinder.\n *     range: pixel range.\n *     coordRange: representitive coord range (the first one of coordRanges).\n *     coordRanges: <Array> coord ranges, used in multiple cartesian in one grid.\n * }\n */\n\n/**\n * @param {Object} option contains Index/Id/Name of xAxis/yAxis/geo/grid\n *        Each can be {number|Array.<number>}. like: {xAxisIndex: [3, 4]}\n * @param {module:echarts/model/Global} ecModel\n * @param {Object} [opt]\n * @param {Array.<string>} [opt.include] include coordinate system types.\n */\n\nfunction BrushTargetManager(option, ecModel, opt) {\n  /**\n   * @private\n   * @type {Array.<Object>}\n   */\n  var targetInfoList = this._targetInfoList = [];\n  var info = {};\n  var foundCpts = parseFinder(ecModel, option);\n  each(targetInfoBuilders, function (builder, type) {\n    if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n      builder(foundCpts, targetInfoList, info);\n    }\n  });\n}\n\nvar proto = BrushTargetManager.prototype;\n\nproto.setOutputRanges = function (areas, ecModel) {\n  this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n    (area.coordRanges || (area.coordRanges = [])).push(coordRange); // area.coordRange is the first of area.coordRanges\n\n    if (!area.coordRange) {\n      area.coordRange = coordRange; // In 'category' axis, coord to pixel is not reversible, so we can not\n      // rebuild range by coordRange accrately, which may bring trouble when\n      // brushing only one item. So we use __rangeOffset to rebuilding range\n      // by coordRange. And this it only used in brush component so it is no\n      // need to be adapted to coordRanges.\n\n      var result = coordConvert[area.brushType](0, coordSys, coordRange);\n      area.__rangeOffset = {\n        offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n        xyMinMax: result.xyMinMax\n      };\n    }\n  });\n};\n\nproto.matchOutputRanges = function (areas, ecModel, cb) {\n  each(areas, function (area) {\n    var targetInfo = this.findTargetInfo(area, ecModel);\n\n    if (targetInfo && targetInfo !== true) {\n      zrUtil.each(targetInfo.coordSyses, function (coordSys) {\n        var result = coordConvert[area.brushType](1, coordSys, area.range);\n        cb(area, result.values, coordSys, ecModel);\n      });\n    }\n  }, this);\n};\n\nproto.setInputRanges = function (areas, ecModel) {\n  each(areas, function (area) {\n    var targetInfo = this.findTargetInfo(area, ecModel);\n    area.range = area.range || []; // convert coordRange to global range and set panelId.\n\n    if (targetInfo && targetInfo !== true) {\n      area.panelId = targetInfo.panelId; // (1) area.range shoule always be calculate from coordRange but does\n      // not keep its original value, for the sake of the dataZoom scenario,\n      // where area.coordRange remains unchanged but area.range may be changed.\n      // (2) Only support converting one coordRange to pixel range in brush\n      // component. So do not consider `coordRanges`.\n      // (3) About __rangeOffset, see comment above.\n\n      var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n      var rangeOffset = area.__rangeOffset;\n      area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n    }\n  }, this);\n};\n\nproto.makePanelOpts = function (api, getDefaultBrushType) {\n  return zrUtil.map(this._targetInfoList, function (targetInfo) {\n    var rect = targetInfo.getPanelRect();\n    return {\n      panelId: targetInfo.panelId,\n      defaultBrushType: getDefaultBrushType && getDefaultBrushType(targetInfo),\n      clipPath: brushHelper.makeRectPanelClipPath(rect),\n      isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n      getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n    };\n  });\n};\n\nproto.controlSeries = function (area, seriesModel, ecModel) {\n  // Check whether area is bound in coord, and series do not belong to that coord.\n  // If do not do this check, some brush (like lineX) will controll all axes.\n  var targetInfo = this.findTargetInfo(area, ecModel);\n  return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n};\n/**\n * If return Object, a coord found.\n * If reutrn true, global found.\n * Otherwise nothing found.\n *\n * @param {Object} area\n * @param {Array} targetInfoList\n * @return {Object|boolean}\n */\n\n\nproto.findTargetInfo = function (area, ecModel) {\n  var targetInfoList = this._targetInfoList;\n  var foundCpts = parseFinder(ecModel, area);\n\n  for (var i = 0; i < targetInfoList.length; i++) {\n    var targetInfo = targetInfoList[i];\n    var areaPanelId = area.panelId;\n\n    if (areaPanelId) {\n      if (targetInfo.panelId === areaPanelId) {\n        return targetInfo;\n      }\n    } else {\n      for (var i = 0; i < targetInfoMatchers.length; i++) {\n        if (targetInfoMatchers[i](foundCpts, targetInfo)) {\n          return targetInfo;\n        }\n      }\n    }\n  }\n\n  return true;\n};\n\nfunction formatMinMax(minMax) {\n  minMax[0] > minMax[1] && minMax.reverse();\n  return minMax;\n}\n\nfunction parseFinder(ecModel, option) {\n  return modelUtil.parseFinder(ecModel, option, {\n    includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n  });\n}\n\nvar targetInfoBuilders = {\n  grid: function (foundCpts, targetInfoList) {\n    var xAxisModels = foundCpts.xAxisModels;\n    var yAxisModels = foundCpts.yAxisModels;\n    var gridModels = foundCpts.gridModels; // Remove duplicated.\n\n    var gridModelMap = zrUtil.createHashMap();\n    var xAxesHas = {};\n    var yAxesHas = {};\n\n    if (!xAxisModels && !yAxisModels && !gridModels) {\n      return;\n    }\n\n    each(xAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n    });\n    each(yAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      yAxesHas[gridModel.id] = true;\n    });\n    each(gridModels, function (gridModel) {\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n      yAxesHas[gridModel.id] = true;\n    });\n    gridModelMap.each(function (gridModel) {\n      var grid = gridModel.coordinateSystem;\n      var cartesians = [];\n      each(grid.getCartesians(), function (cartesian, index) {\n        if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n          cartesians.push(cartesian);\n        }\n      });\n      targetInfoList.push({\n        panelId: 'grid--' + gridModel.id,\n        gridModel: gridModel,\n        coordSysModel: gridModel,\n        // Use the first one as the representitive coordSys.\n        coordSys: cartesians[0],\n        coordSyses: cartesians,\n        getPanelRect: panelRectBuilder.grid,\n        xAxisDeclared: xAxesHas[gridModel.id],\n        yAxisDeclared: yAxesHas[gridModel.id]\n      });\n    });\n  },\n  geo: function (foundCpts, targetInfoList) {\n    each(foundCpts.geoModels, function (geoModel) {\n      var coordSys = geoModel.coordinateSystem;\n      targetInfoList.push({\n        panelId: 'geo--' + geoModel.id,\n        geoModel: geoModel,\n        coordSysModel: geoModel,\n        coordSys: coordSys,\n        coordSyses: [coordSys],\n        getPanelRect: panelRectBuilder.geo\n      });\n    });\n  }\n};\nvar targetInfoMatchers = [// grid\nfunction (foundCpts, targetInfo) {\n  var xAxisModel = foundCpts.xAxisModel;\n  var yAxisModel = foundCpts.yAxisModel;\n  var gridModel = foundCpts.gridModel;\n  !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n  !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n  return gridModel && gridModel === targetInfo.gridModel;\n}, // geo\nfunction (foundCpts, targetInfo) {\n  var geoModel = foundCpts.geoModel;\n  return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilder = {\n  grid: function () {\n    // grid is not Transformable.\n    return this.coordSys.grid.getRect().clone();\n  },\n  geo: function () {\n    var coordSys = this.coordSys;\n    var rect = coordSys.getBoundingRect().clone(); // geo roam and zoom transform\n\n    rect.applyTransform(graphic.getTransform(coordSys));\n    return rect;\n  }\n};\nvar coordConvert = {\n  lineX: curry(axisConvert, 0),\n  lineY: curry(axisConvert, 1),\n  rect: function (to, coordSys, rangeOrCoordRange) {\n    var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\n    var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\n    var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n    return {\n      values: values,\n      xyMinMax: values\n    };\n  },\n  polygon: function (to, coordSys, rangeOrCoordRange) {\n    var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n    var values = zrUtil.map(rangeOrCoordRange, function (item) {\n      var p = coordSys[COORD_CONVERTS[to]](item);\n      xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n      xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n      xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n      xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n      return p;\n    });\n    return {\n      values: values,\n      xyMinMax: xyMinMax\n    };\n  }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n  var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n  var values = formatMinMax(zrUtil.map([0, 1], function (i) {\n    return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n  }));\n  var xyMinMax = [];\n  xyMinMax[axisNameIndex] = values;\n  xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n  return {\n    values: values,\n    xyMinMax: xyMinMax\n  };\n}\n\nvar diffProcessor = {\n  lineX: curry(axisDiffProcessor, 0),\n  lineY: curry(axisDiffProcessor, 1),\n  rect: function (values, refer, scales) {\n    return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n  },\n  polygon: function (values, refer, scales) {\n    return zrUtil.map(values, function (item, idx) {\n      return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n    });\n  }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n  return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n} // We have to process scale caused by dataZoom manually,\n// although it might be not accurate.\n\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n  var sizeCurr = getSize(xyMinMaxCurr);\n  var sizeOrigin = getSize(xyMinMaxOrigin);\n  var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n  isNaN(scales[0]) && (scales[0] = 1);\n  isNaN(scales[1]) && (scales[1] = 1);\n  return scales;\n}\n\nfunction getSize(xyMinMax) {\n  return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nvar _default = BrushTargetManager;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/BrushTargetManager.js\n// module id = niVK\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(seriesType, actionInfos) {\n  zrUtil.each(actionInfos, function (actionInfo) {\n    actionInfo.update = 'updateView';\n    /**\n     * @payload\n     * @property {string} seriesName\n     * @property {string} name\n     */\n\n    echarts.registerAction(actionInfo, function (payload, ecModel) {\n      var selected = {};\n      ecModel.eachComponent({\n        mainType: 'series',\n        subType: seriesType,\n        query: payload\n      }, function (seriesModel) {\n        if (seriesModel[actionInfo.method]) {\n          seriesModel[actionInfo.method](payload.name, payload.dataIndex);\n        }\n\n        var data = seriesModel.getData(); // Create selected map\n\n        data.each(function (idx) {\n          var name = data.getName(idx);\n          selected[name] = seriesModel.isSelected(name) || false;\n        });\n      });\n      return {\n        name: payload.name,\n        selected: selected\n      };\n    });\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/action/createDataSelectAction.js\n// module id = nmRA\n// module chunks = 0","var SeriesModel = require(\"../../model/Series\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar RadarSeries = SeriesModel.extend({\n  type: 'series.radar',\n  dependencies: ['radar'],\n  // Overwrite\n  init: function (option) {\n    RadarSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n    // Use a function instead of direct access because data reference may changed\n\n    this.legendDataProvider = function () {\n      return this.getRawData();\n    };\n  },\n  getInitialData: function (option, ecModel) {\n    return createListSimply(this, {\n      generateCoord: 'indicator_',\n      generateCoordCount: Infinity\n    });\n  },\n  formatTooltip: function (dataIndex) {\n    var data = this.getData();\n    var coordSys = this.coordinateSystem;\n    var indicatorAxes = coordSys.getIndicatorAxes();\n    var name = this.getData().getName(dataIndex);\n    return encodeHTML(name === '' ? this.name : name) + '<br/>' + zrUtil.map(indicatorAxes, function (axis, idx) {\n      var val = data.get(data.mapDimension(axis.dim), dataIndex);\n      return encodeHTML(axis.name + ' : ' + val);\n    }).join('<br />');\n  },\n  defaultOption: {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'radar',\n    legendHoverLink: true,\n    radarIndex: 0,\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    label: {\n      position: 'top'\n    },\n    // areaStyle: {\n    // },\n    // itemStyle: {}\n    symbol: 'emptyCircle',\n    symbolSize: 4 // symbolRotate: null\n\n  }\n});\nvar _default = RadarSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/radar/RadarSeries.js\n// module id = nwvr\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar List = require(\"../../data/List\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar concatArray = _util.concatArray;\nvar mergeAll = _util.mergeAll;\nvar map = _util.map;\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n  var data = seriesOpt.data;\n\n  if (data && data[0] && data[0][0] && data[0][0].coord) {\n    seriesOpt.data = map(data, function (itemOpt) {\n      var coords = [itemOpt[0].coord, itemOpt[1].coord];\n      var target = {\n        coords: coords\n      };\n\n      if (itemOpt[0].name) {\n        target.fromName = itemOpt[0].name;\n      }\n\n      if (itemOpt[1].name) {\n        target.toName = itemOpt[1].name;\n      }\n\n      return mergeAll([target, itemOpt[0], itemOpt[1]]);\n    });\n  }\n}\n\nvar LinesSeries = SeriesModel.extend({\n  type: 'series.lines',\n  dependencies: ['grid', 'polar'],\n  visualColorAccessPath: 'lineStyle.color',\n  init: function (option) {\n    // The input data may be null/undefined.\n    option.data = option.data || []; // Not using preprocessor because mergeOption may not have series.type\n\n    compatEc2(option);\n\n    var result = this._processFlatCoordsArray(option.data);\n\n    this._flatCoords = result.flatCoords;\n    this._flatCoordsOffset = result.flatCoordsOffset;\n\n    if (result.flatCoords) {\n      option.data = new Float32Array(result.count);\n    }\n\n    LinesSeries.superApply(this, 'init', arguments);\n  },\n  mergeOption: function (option) {\n    // The input data may be null/undefined.\n    option.data = option.data || [];\n    compatEc2(option);\n\n    if (option.data) {\n      // Only update when have option data to merge.\n      var result = this._processFlatCoordsArray(option.data);\n\n      this._flatCoords = result.flatCoords;\n      this._flatCoordsOffset = result.flatCoordsOffset;\n\n      if (result.flatCoords) {\n        option.data = new Float32Array(result.count);\n      }\n    }\n\n    LinesSeries.superApply(this, 'mergeOption', arguments);\n  },\n  appendData: function (params) {\n    var result = this._processFlatCoordsArray(params.data);\n\n    if (result.flatCoords) {\n      if (!this._flatCoords) {\n        this._flatCoords = result.flatCoords;\n        this._flatCoordsOffset = result.flatCoordsOffset;\n      } else {\n        this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n        this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n      }\n\n      params.data = new Float32Array(result.count);\n    }\n\n    this.getRawData().appendData(params.data);\n  },\n  _getCoordsFromItemModel: function (idx) {\n    var itemModel = this.getData().getItemModel(idx);\n    var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n    return coords;\n  },\n  getLineCoordsCount: function (idx) {\n    if (this._flatCoordsOffset) {\n      return this._flatCoordsOffset[idx * 2 + 1];\n    } else {\n      return this._getCoordsFromItemModel(idx).length;\n    }\n  },\n  getLineCoords: function (idx, out) {\n    if (this._flatCoordsOffset) {\n      var offset = this._flatCoordsOffset[idx * 2];\n      var len = this._flatCoordsOffset[idx * 2 + 1];\n\n      for (var i = 0; i < len; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = this._flatCoords[offset + i * 2];\n        out[i][1] = this._flatCoords[offset + i * 2 + 1];\n      }\n\n      return len;\n    } else {\n      var coords = this._getCoordsFromItemModel(idx);\n\n      for (var i = 0; i < coords.length; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = coords[i][0];\n        out[i][1] = coords[i][1];\n      }\n\n      return coords.length;\n    }\n  },\n  _processFlatCoordsArray: function (data) {\n    var startOffset = 0;\n\n    if (this._flatCoords) {\n      startOffset = this._flatCoords.length;\n    } // Stored as a typed array. In format\n    // Points Count(2) | x | y | x | y | Points Count(3) | x |  y | x | y | x | y |\n\n\n    if (typeof data[0] === 'number') {\n      var len = data.length; // Store offset and len of each segment\n\n      var coordsOffsetAndLenStorage = new Uint32Arr(len);\n      var coordsStorage = new Float64Arr(len);\n      var coordsCursor = 0;\n      var offsetCursor = 0;\n      var dataCount = 0;\n\n      for (var i = 0; i < len;) {\n        dataCount++;\n        var count = data[i++]; // Offset\n\n        coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset; // Len\n\n        coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n        for (var k = 0; k < count; k++) {\n          var x = data[i++];\n          var y = data[i++];\n          coordsStorage[coordsCursor++] = x;\n          coordsStorage[coordsCursor++] = y;\n\n          if (i > len) {}\n        }\n      }\n\n      return {\n        flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n        flatCoords: coordsStorage,\n        count: dataCount\n      };\n    }\n\n    return {\n      flatCoordsOffset: null,\n      flatCoords: null,\n      count: data.length\n    };\n  },\n  getInitialData: function (option, ecModel) {\n    var lineData = new List(['value'], this);\n    lineData.hasItemOption = false;\n    lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n      // dataItem is simply coords\n      if (dataItem instanceof Array) {\n        return NaN;\n      } else {\n        lineData.hasItemOption = true;\n        var value = dataItem.value;\n\n        if (value != null) {\n          return value instanceof Array ? value[dimIndex] : value;\n        }\n      }\n    });\n    return lineData;\n  },\n  formatTooltip: function (dataIndex) {\n    var data = this.getData();\n    var itemModel = data.getItemModel(dataIndex);\n    var name = itemModel.get('name');\n\n    if (name) {\n      return name;\n    }\n\n    var fromName = itemModel.get('fromName');\n    var toName = itemModel.get('toName');\n    var html = [];\n    fromName != null && html.push(fromName);\n    toName != null && html.push(toName);\n    return encodeHTML(html.join(' > '));\n  },\n  preventIncremental: function () {\n    return !!this.get('effect.show');\n  },\n  getProgressive: function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 1e4 : this.get('progressive');\n    }\n\n    return progressive;\n  },\n  getProgressiveThreshold: function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 2e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  },\n  defaultOption: {\n    coordinateSystem: 'geo',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    hoverAnimation: true,\n    // Cartesian coordinate system\n    xAxisIndex: 0,\n    yAxisIndex: 0,\n    symbol: ['none', 'none'],\n    symbolSize: [10, 10],\n    // Geo coordinate system\n    geoIndex: 0,\n    effect: {\n      show: false,\n      period: 4,\n      // Animation delay. support callback\n      // delay: 0,\n      // If move with constant speed px/sec\n      // period will be ignored if this property is > 0,\n      constantSpeed: 0,\n      symbol: 'circle',\n      symbolSize: 3,\n      loop: true,\n      // Length of trail, 0 - 1\n      trailLength: 0.2 // Same with lineStyle.color\n      // color\n\n    },\n    large: false,\n    // Available when large is true\n    largeThreshold: 2000,\n    // If lines are polyline\n    // polyline not support curveness, label, animation\n    polyline: false,\n    label: {\n      show: false,\n      position: 'end' // distance: 5,\n      // formatter: 鏍囩鏂囨湰鏍煎紡鍣紝鍚孴ooltip.formatter锛屼笉鏀寔寮傛鍥炶皟\n\n    },\n    lineStyle: {\n      opacity: 0.5\n    }\n  }\n});\nvar _default = LinesSeries;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/lines/LinesSeries.js\n// module id = nxtP\n// module chunks = 0","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n  var C = speciesConstructor(this, core.Promise || global.Promise);\n  var isFunction = typeof onFinally == 'function';\n  return this.then(\n    isFunction ? function (x) {\n      return promiseResolve(C, onFinally()).then(function () { return x; });\n    } : onFinally,\n    isFunction ? function (e) {\n      return promiseResolve(C, onFinally()).then(function () { throw e; });\n    } : onFinally\n  );\n} });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es7.promise.finally.js\n// module id = nzRa\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(option) {\n  createParallelIfNeeded(option);\n  mergeAxisOptionFromParallel(option);\n}\n/**\n * Create a parallel coordinate if not exists.\n * @inner\n */\n\n\nfunction createParallelIfNeeded(option) {\n  if (option.parallel) {\n    return;\n  }\n\n  var hasParallelSeries = false;\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'parallel') {\n      hasParallelSeries = true;\n    }\n  });\n\n  if (hasParallelSeries) {\n    option.parallel = [{}];\n  }\n}\n/**\n * Merge aixs definition from parallel option (if exists) to axis option.\n * @inner\n */\n\n\nfunction mergeAxisOptionFromParallel(option) {\n  var axes = modelUtil.normalizeToArray(option.parallelAxis);\n  zrUtil.each(axes, function (axisOption) {\n    if (!zrUtil.isObject(axisOption)) {\n      return;\n    }\n\n    var parallelIndex = axisOption.parallelIndex || 0;\n    var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n    if (parallelOption && parallelOption.parallelAxisDefault) {\n      zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/parallel/parallelPreprocessor.js\n// module id = o4vF\n// module chunks = 0","var windingLine = require(\"./windingLine\");\n\nvar EPSILON = 1e-8;\n\nfunction isAroundEqual(a, b) {\n  return Math.abs(a - b) < EPSILON;\n}\n\nfunction contain(points, x, y) {\n  var w = 0;\n  var p = points[0];\n\n  if (!p) {\n    return false;\n  }\n\n  for (var i = 1; i < points.length; i++) {\n    var p2 = points[i];\n    w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n    p = p2;\n  } // Close polygon\n\n\n  var p0 = points[0];\n\n  if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n    w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n  }\n\n  return w !== 0;\n}\n\nexports.contain = contain;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/polygon.js\n// module id = oDHT\n// module chunks = 0","var createListSimply = require(\"../helper/createListSimply\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _dimensionHelper = require(\"../../data/helper/dimensionHelper\");\n\nvar getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar seriesModelMixin = {\n  /**\n   * @private\n   * @type {string}\n   */\n  _baseAxisDim: null,\n\n  /**\n   * @override\n   */\n  getInitialData: function (option, ecModel) {\n    // When both types of xAxis and yAxis are 'value', layout is\n    // needed to be specified by user. Otherwise, layout can be\n    // judged by which axis is category.\n    var ordinalMeta;\n    var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n    var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n    var xAxisType = xAxisModel.get('type');\n    var yAxisType = yAxisModel.get('type');\n    var addOrdinal; // FIXME\n    // 鑰冭檻鏃堕棿杞碶n\n    if (xAxisType === 'category') {\n      option.layout = 'horizontal';\n      ordinalMeta = xAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else if (yAxisType === 'category') {\n      option.layout = 'vertical';\n      ordinalMeta = yAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else {\n      option.layout = option.layout || 'horizontal';\n    }\n\n    var coordDims = ['x', 'y'];\n    var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n    var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n    var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n    var axisModels = [xAxisModel, yAxisModel];\n    var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n    var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n    var data = option.data; // ??? FIXME make a stage to perform data transfrom.\n    // MUST create a new data, consider setOption({}) again.\n\n    if (data && addOrdinal) {\n      var newOptionData = [];\n      zrUtil.each(data, function (item, index) {\n        var newItem;\n\n        if (item.value && zrUtil.isArray(item.value)) {\n          newItem = item.value.slice();\n          item.value.unshift(index);\n        } else if (zrUtil.isArray(item)) {\n          newItem = item.slice();\n          item.unshift(index);\n        } else {\n          newItem = item;\n        }\n\n        newOptionData.push(newItem);\n      });\n      option.data = newOptionData;\n    }\n\n    var defaultValueDimensions = this.defaultValueDimensions;\n    return createListSimply(this, {\n      coordDimensions: [{\n        name: baseAxisDim,\n        type: getDimensionTypeByAxis(baseAxisType),\n        ordinalMeta: ordinalMeta,\n        otherDims: {\n          tooltip: false,\n          itemName: 0\n        },\n        dimsDef: ['base']\n      }, {\n        name: otherAxisDim,\n        type: getDimensionTypeByAxis(otherAxisType),\n        dimsDef: defaultValueDimensions.slice()\n      }],\n      dimensionsCount: defaultValueDimensions.length + 1\n    });\n  },\n\n  /**\n   * If horizontal, base axis is x, otherwise y.\n   * @override\n   */\n  getBaseAxis: function () {\n    var dim = this._baseAxisDim;\n    return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n  }\n};\nexports.seriesModelMixin = seriesModelMixin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/whiskerBoxCommon.js\n// module id = oHK+\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar axisModelCreator = require(\"../axisModelCreator\");\n\nvar axisModelCommonMixin = require(\"../axisModelCommonMixin\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AxisModel = ComponentModel.extend({\n  type: 'cartesian2dAxis',\n\n  /**\n   * @type {module:echarts/coord/cartesian/Axis2D}\n   */\n  axis: null,\n\n  /**\n   * @override\n   */\n  init: function () {\n    AxisModel.superApply(this, 'init', arguments);\n    this.resetRange();\n  },\n\n  /**\n   * @override\n   */\n  mergeOption: function () {\n    AxisModel.superApply(this, 'mergeOption', arguments);\n    this.resetRange();\n  },\n\n  /**\n   * @override\n   */\n  restoreData: function () {\n    AxisModel.superApply(this, 'restoreData', arguments);\n    this.resetRange();\n  },\n\n  /**\n   * @override\n   * @return {module:echarts/model/Component}\n   */\n  getCoordSysModel: function () {\n    return this.ecModel.queryComponents({\n      mainType: 'grid',\n      index: this.option.gridIndex,\n      id: this.option.gridId\n    })[0];\n  }\n});\n\nfunction getAxisType(axisDim, option) {\n  // Default axis with data is category axis\n  return option.type || (option.data ? 'category' : 'value');\n}\n\nzrUtil.merge(AxisModel.prototype, axisModelCommonMixin);\nvar extraOption = {\n  // gridIndex: 0,\n  // gridId: '',\n  // Offset is for multiple axis on the same position\n  offset: 0\n};\naxisModelCreator('x', AxisModel, getAxisType, extraOption);\naxisModelCreator('y', AxisModel, getAxisType, extraOption);\nvar _default = AxisModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/AxisModel.js\n// module id = oRvx\n// module chunks = 0","var ComponentView = require(\"../../view/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = ComponentView.extend({\n  type: 'timeline'\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/TimelineView.js\n// module id = oUhq\n// module chunks = 0","var zrUtil = require(\"../core/util\");\n\nvar Style = require(\"./Style\");\n\nvar Element = require(\"../Element\");\n\nvar RectText = require(\"./mixin/RectText\");\n\n/**\n * 鍙粯鍒剁殑鍥惧舰鍩虹被\n * Base class of all displayable graphic objects\n * @module zrender/graphic/Displayable\n */\n\n/**\n * @alias module:zrender/graphic/Displayable\n * @extends module:zrender/Element\n * @extends module:zrender/graphic/mixin/RectText\n */\nfunction Displayable(opts) {\n  opts = opts || {};\n  Element.call(this, opts); // Extend properties\n\n  for (var name in opts) {\n    if (opts.hasOwnProperty(name) && name !== 'style') {\n      this[name] = opts[name];\n    }\n  }\n  /**\n   * @type {module:zrender/graphic/Style}\n   */\n\n\n  this.style = new Style(opts.style, this);\n  this._rect = null; // Shapes for cascade clipping.\n\n  this.__clipPaths = []; // FIXME Stateful must be mixined after style is setted\n  // Stateful.call(this, opts);\n}\n\nDisplayable.prototype = {\n  constructor: Displayable,\n  type: 'displayable',\n\n  /**\n   * Displayable 鏄惁涓鸿剰锛孭ainter 涓細鏍规嵁璇ユ爣璁板垽鏂槸鍚﹂渶瑕佹槸鍚﹂渶瑕侀噸鏂扮粯鍒禱n   * Dirty flag. From which painter will determine if this displayable object needs brush\n   * @name module:zrender/graphic/Displayable#__dirty\n   * @type {boolean}\n   */\n  __dirty: true,\n\n  /**\n   * 鍥惧舰鏄惁鍙锛屼负true鏃朵笉缁樺埗鍥惧舰锛屼絾鏄粛鑳借Е鍙戦紶鏍囦簨浠禱n   * If ignore drawing of the displayable object. Mouse event will still be triggered\n   * @name module:/zrender/graphic/Displayable#invisible\n   * @type {boolean}\n   * @default false\n   */\n  invisible: false,\n\n  /**\n   * @name module:/zrender/graphic/Displayable#z\n   * @type {number}\n   * @default 0\n   */\n  z: 0,\n\n  /**\n   * @name module:/zrender/graphic/Displayable#z\n   * @type {number}\n   * @default 0\n   */\n  z2: 0,\n\n  /**\n   * z灞俵evel锛屽喅瀹氱粯鐢诲湪鍝眰canvas涓璡n   * @name module:/zrender/graphic/Displayable#zlevel\n   * @type {number}\n   * @default 0\n   */\n  zlevel: 0,\n\n  /**\n   * 鏄惁鍙嫋鎷絓n   * @name module:/zrender/graphic/Displayable#draggable\n   * @type {boolean}\n   * @default false\n   */\n  draggable: false,\n\n  /**\n   * 鏄惁姝e湪鎷栨嫿\n   * @name module:/zrender/graphic/Displayable#draggable\n   * @type {boolean}\n   * @default false\n   */\n  dragging: false,\n\n  /**\n   * 鏄惁鐩稿簲榧犳爣浜嬩欢\n   * @name module:/zrender/graphic/Displayable#silent\n   * @type {boolean}\n   * @default false\n   */\n  silent: false,\n\n  /**\n   * If enable culling\n   * @type {boolean}\n   * @default false\n   */\n  culling: false,\n\n  /**\n   * Mouse cursor when hovered\n   * @name module:/zrender/graphic/Displayable#cursor\n   * @type {string}\n   */\n  cursor: 'pointer',\n\n  /**\n   * If hover area is bounding rect\n   * @name module:/zrender/graphic/Displayable#rectHover\n   * @type {string}\n   */\n  rectHover: false,\n\n  /**\n   * Render the element progressively when the value >= 0,\n   * usefull for large data.\n   * @type {boolean}\n   */\n  progressive: false,\n\n  /**\n   * @type {boolean}\n   */\n  incremental: false,\n  // inplace is used with incremental\n  inplace: false,\n  beforeBrush: function (ctx) {},\n  afterBrush: function (ctx) {},\n\n  /**\n   * 鍥惧舰缁樺埗鏂规硶\n   * @param {CanvasRenderingContext2D} ctx\n   */\n  // Interface\n  brush: function (ctx, prevEl) {},\n\n  /**\n   * 鑾峰彇鏈�灏忓寘鍥寸洅\n   * @return {module:zrender/core/BoundingRect}\n   */\n  // Interface\n  getBoundingRect: function () {},\n\n  /**\n   * 鍒ゆ柇鍧愭爣 x, y 鏄惁鍦ㄥ浘褰笂\n   * If displayable element contain coord x, y\n   * @param  {number} x\n   * @param  {number} y\n   * @return {boolean}\n   */\n  contain: function (x, y) {\n    return this.rectContain(x, y);\n  },\n\n  /**\n   * @param  {Function} cb\n   * @param  {}   context\n   */\n  traverse: function (cb, context) {\n    cb.call(context, this);\n  },\n\n  /**\n   * 鍒ゆ柇鍧愭爣 x, y 鏄惁鍦ㄥ浘褰㈢殑鍖呭洿鐩掍笂\n   * If bounding rect of element contain coord x, y\n   * @param  {number} x\n   * @param  {number} y\n   * @return {boolean}\n   */\n  rectContain: function (x, y) {\n    var coord = this.transformCoordToLocal(x, y);\n    var rect = this.getBoundingRect();\n    return rect.contain(coord[0], coord[1]);\n  },\n\n  /**\n   * 鏍囪鍥惧舰鍏冪礌涓鸿剰锛屽苟涓斿湪涓嬩竴甯ч噸缁榎n   * Mark displayable element dirty and refresh next frame\n   */\n  dirty: function () {\n    this.__dirty = true;\n    this._rect = null;\n    this.__zr && this.__zr.refresh();\n  },\n\n  /**\n   * 鍥惧舰鏄惁浼氳Е鍙戜簨浠禱n   * If displayable object binded any event\n   * @return {boolean}\n   */\n  // TODO, 閫氳繃 bind 缁戝畾鐨勪簨浠禱n  // isSilent: function () {\n  //     return !(\n  //         this.hoverable || this.draggable\n  //         || this.onmousemove || this.onmouseover || this.onmouseout\n  //         || this.onmousedown || this.onmouseup || this.onclick\n  //         || this.ondragenter || this.ondragover || this.ondragleave\n  //         || this.ondrop\n  //     );\n  // },\n\n  /**\n   * Alias for animate('style')\n   * @param {boolean} loop\n   */\n  animateStyle: function (loop) {\n    return this.animate('style', loop);\n  },\n  attrKV: function (key, value) {\n    if (key !== 'style') {\n      Element.prototype.attrKV.call(this, key, value);\n    } else {\n      this.style.set(value);\n    }\n  },\n\n  /**\n   * @param {Object|string} key\n   * @param {*} value\n   */\n  setStyle: function (key, value) {\n    this.style.set(key, value);\n    this.dirty(false);\n    return this;\n  },\n\n  /**\n   * Use given style object\n   * @param  {Object} obj\n   */\n  useStyle: function (obj) {\n    this.style = new Style(obj, this);\n    this.dirty(false);\n    return this;\n  }\n};\nzrUtil.inherits(Displayable, Element);\nzrUtil.mixin(Displayable, RectText); // zrUtil.mixin(Displayable, Stateful);\n\nvar _default = Displayable;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/Displayable.js\n// module id = ofeI\n// module chunks = 0","require(\"./visualMapContinuous\");\n\nrequire(\"./visualMapPiecewise\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap.js\n// module id = ol5q\n// module chunks = 0","var zrUtil = require(\"../core/util\");\n\nvar Gradient = require(\"./Gradient\");\n\n/**\n * x, y, r are all percent from 0 to 1\n * @param {number} [x=0.5]\n * @param {number} [y=0.5]\n * @param {number} [r=0.5]\n * @param {Array.<Object>} [colorStops]\n * @param {boolean} [globalCoord=false]\n */\nvar RadialGradient = function (x, y, r, colorStops, globalCoord) {\n  // Should do nothing more in this constructor. Because gradient can be\n  // declard by `color: {type: 'radial', colorStops: ...}`, where\n  // this constructor will not be called.\n  this.x = x == null ? 0.5 : x;\n  this.y = y == null ? 0.5 : y;\n  this.r = r == null ? 0.5 : r; // Can be cloned\n\n  this.type = 'radial'; // If use global coord\n\n  this.global = globalCoord || false;\n  Gradient.call(this, colorStops);\n};\n\nRadialGradient.prototype = {\n  constructor: RadialGradient\n};\nzrUtil.inherits(RadialGradient, Gradient);\nvar _default = RadialGradient;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/RadialGradient.js\n// module id = ostD\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n  // dataItem is necessary in log axis.\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n    var axis = this.getAxis(dim);\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n  }, this);\n}\n\nfunction _default(coordSys) {\n  var rect = coordSys.grid.getRect();\n  return {\n    coordSys: {\n      // The name exposed to user is always 'cartesian2d' but not 'grid'.\n      type: 'cartesian2d',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (data) {\n        // do not provide \"out\" param\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/cartesian/prepareCustom.js\n// module id = owVC\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerAction({\n  type: 'dragNode',\n  event: 'dragNode',\n  // here can only use 'update' now, other value is not support in echarts.\n  update: 'update'\n}, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'series',\n    subType: 'sankey',\n    query: payload\n  }, function (seriesModel) {\n    seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n  });\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sankey/sankeyAction.js\n// module id = owiR\n// module chunks = 0","var _curve = require(\"../core/curve\");\n\nvar quadraticProjectPoint = _curve.quadraticProjectPoint;\n\n/**\n * 浜屾璐濆灏旀洸绾挎弿杈瑰寘鍚垽鏂璡n * @param  {number}  x0\n * @param  {number}  y0\n * @param  {number}  x1\n * @param  {number}  y1\n * @param  {number}  x2\n * @param  {number}  y2\n * @param  {number}  lineWidth\n * @param  {number}  x\n * @param  {number}  y\n * @return {boolean}\n */\nfunction containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n  if (lineWidth === 0) {\n    return false;\n  }\n\n  var _l = lineWidth; // Quick reject\n\n  if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) {\n    return false;\n  }\n\n  var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n  return d <= _l / 2;\n}\n\nexports.containStroke = containStroke;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/contain/quadratic.js\n// module id = oxQp\n// module chunks = 0","var DataZoomModel = require(\"./DataZoomModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar SliderZoomModel = DataZoomModel.extend({\n  type: 'dataZoom.slider',\n  layoutMode: 'box',\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    show: true,\n    // ph => placeholder. Using placehoder here because\n    // deault value can only be drived in view stage.\n    right: 'ph',\n    // Default align to grid rect.\n    top: 'ph',\n    // Default align to grid rect.\n    width: 'ph',\n    // Default align to grid rect.\n    height: 'ph',\n    // Default align to grid rect.\n    left: null,\n    // Default align to grid rect.\n    bottom: null,\n    // Default align to grid rect.\n    backgroundColor: 'rgba(47,69,84,0)',\n    // Background of slider zoom component.\n    // dataBackgroundColor: '#ddd',         // Background coor of data shadow and border of box,\n    // highest priority, remain for compatibility of\n    // previous version, but not recommended any more.\n    dataBackground: {\n      lineStyle: {\n        color: '#2f4554',\n        width: 0.5,\n        opacity: 0.3\n      },\n      areaStyle: {\n        color: 'rgba(47,69,84,0.3)',\n        opacity: 0.3\n      }\n    },\n    borderColor: '#ddd',\n    // border color of the box. For compatibility,\n    // if dataBackgroundColor is set, borderColor\n    // is ignored.\n    fillerColor: 'rgba(167,183,204,0.4)',\n    // Color of selected area.\n    // handleColor: 'rgba(89,170,216,0.95)',     // Color of handle.\n    // handleIcon: 'path://M4.9,17.8c0-1.4,4.5-10.5,5.5-12.4c0-0.1,0.6-1.1,0.9-1.1c0.4,0,0.9,1,0.9,1.1c1.1,2.2,5.4,11,5.4,12.4v17.8c0,1.5-0.6,2.1-1.3,2.1H6.1c-0.7,0-1.3-0.6-1.3-2.1V17.8z',\n    handleIcon: 'M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z',\n    // Percent of the slider height\n    handleSize: '100%',\n    handleStyle: {\n      color: '#a7b7cc'\n    },\n    labelPrecision: null,\n    labelFormatter: null,\n    showDetail: true,\n    showDataShadow: 'auto',\n    // Default auto decision.\n    realtime: true,\n    zoomLock: false,\n    // Whether disable zoom.\n    textStyle: {\n      color: '#333'\n    }\n  }\n});\nvar _default = SliderZoomModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/SliderZoomModel.js\n// module id = pH91\n// module chunks = 0","/* eslint-disable no-undefined */\n\nvar throttle = require('./throttle');\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param  {Number}   delay         A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param  {Boolean}  [atBegin]     Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n *                                  after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n *                                  (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param  {Function} callback      A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n *                                  to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\nmodule.exports = function ( delay, atBegin, callback ) {\n\treturn callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_throttle-debounce@1.1.0@throttle-debounce/debounce.js\n// module id = pQJX\n// module chunks = 0","var _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// (1) [Caution]: the logic is correct based on the premises:\n//     data processing stage is blocked in stream.\n//     See <module:echarts/stream/Scheduler#performDataProcessorTasks>\n// (2) Only register once when import repeatly.\n//     Should be executed before after series filtered and before stack calculation.\nfunction _default(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack'); // Compatibal: when `stack` is set as '', do not stack.\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        // Used for calculate axis extent automatically.\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      }; // If stacked on axis that do not support data stack.\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex; // Should not write on raw data, because stack series model list changes\n    // depending on legend selection.\n\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex); // Consider `connectNulls` of line area, if value is NaN, stackedOver\n      // should also be NaN, to draw a appropriate belt area.\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      } // If stackOver is NaN, chart view will render point on value start.\n\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j]; // Has been optimized by inverted indices on `stackedByDimension`.\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex); // Considering positive stack, negative stack and empty data\n\n          if (sum >= 0 && val > 0 || // Positive stack\n          sum <= 0 && val < 0 // Negative stack\n          ) {\n              sum += val;\n              stackedOver = val;\n              break;\n            }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData); // Update for consequent calculation\n\n    targetStackInfo.data = newData;\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/processor/dataStack.js\n// module id = pfwu\n// module chunks = 0","var _util = require(\"../core/util\");\n\nvar inherits = _util.inherits;\n\nvar Displayble = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\n/**\n * Displayable for incremental rendering. It will be rendered in a separate layer\n * IncrementalDisplay have too main methods. `clearDisplayables` and `addDisplayables`\n * addDisplayables will render the added displayables incremetally.\n *\n * It use a not clearFlag to tell the painter don't clear the layer if it's the first element.\n */\n// TODO Style override ?\nfunction IncrementalDisplayble(opts) {\n  Displayble.call(this, opts);\n  this._displayables = [];\n  this._temporaryDisplayables = [];\n  this._cursor = 0;\n  this.notClear = true;\n}\n\nIncrementalDisplayble.prototype.incremental = true;\n\nIncrementalDisplayble.prototype.clearDisplaybles = function () {\n  this._displayables = [];\n  this._temporaryDisplayables = [];\n  this._cursor = 0;\n  this.dirty();\n  this.notClear = false;\n};\n\nIncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\n  if (notPersistent) {\n    this._temporaryDisplayables.push(displayable);\n  } else {\n    this._displayables.push(displayable);\n  }\n\n  this.dirty();\n};\n\nIncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\n  notPersistent = notPersistent || false;\n\n  for (var i = 0; i < displayables.length; i++) {\n    this.addDisplayable(displayables[i], notPersistent);\n  }\n};\n\nIncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\n  for (var i = this._cursor; i < this._displayables.length; i++) {\n    cb && cb(this._displayables[i]);\n  }\n\n  for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n    cb && cb(this._temporaryDisplayables[i]);\n  }\n};\n\nIncrementalDisplayble.prototype.update = function () {\n  this.updateTransform();\n\n  for (var i = this._cursor; i < this._displayables.length; i++) {\n    var displayable = this._displayables[i]; // PENDING\n\n    displayable.parent = this;\n    displayable.update();\n    displayable.parent = null;\n  }\n\n  for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n    var displayable = this._temporaryDisplayables[i]; // PENDING\n\n    displayable.parent = this;\n    displayable.update();\n    displayable.parent = null;\n  }\n};\n\nIncrementalDisplayble.prototype.brush = function (ctx, prevEl) {\n  // Render persistant displayables.\n  for (var i = this._cursor; i < this._displayables.length; i++) {\n    var displayable = this._displayables[i];\n    displayable.beforeBrush && displayable.beforeBrush(ctx);\n    displayable.brush(ctx, i === this._cursor ? null : this._displayables[i - 1]);\n    displayable.afterBrush && displayable.afterBrush(ctx);\n  }\n\n  this._cursor = i; // Render temporary displayables.\n\n  for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n    var displayable = this._temporaryDisplayables[i];\n    displayable.beforeBrush && displayable.beforeBrush(ctx);\n    displayable.brush(ctx, i === 0 ? null : this._temporaryDisplayables[i - 1]);\n    displayable.afterBrush && displayable.afterBrush(ctx);\n  }\n\n  this._temporaryDisplayables = [];\n  this.notClear = true;\n};\n\nvar m = [];\n\nIncrementalDisplayble.prototype.getBoundingRect = function () {\n  if (!this._rect) {\n    var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n\n    for (var i = 0; i < this._displayables.length; i++) {\n      var displayable = this._displayables[i];\n      var childRect = displayable.getBoundingRect().clone();\n\n      if (displayable.needLocalTransform()) {\n        childRect.applyTransform(displayable.getLocalTransform(m));\n      }\n\n      rect.union(childRect);\n    }\n\n    this._rect = rect;\n  }\n\n  return this._rect;\n};\n\nIncrementalDisplayble.prototype.contain = function (x, y) {\n  var localPos = this.transformCoordToLocal(x, y);\n  var rect = this.getBoundingRect();\n\n  if (rect.contain(localPos[0], localPos[1])) {\n    for (var i = 0; i < this._displayables.length; i++) {\n      var displayable = this._displayables[i];\n\n      if (displayable.contain(x, y)) {\n        return true;\n      }\n    }\n  }\n\n  return false;\n};\n\ninherits(IncrementalDisplayble, Displayble);\nvar _default = IncrementalDisplayble;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/IncrementalDisplayable.js\n// module id = pgBU\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_uid.js\n// module id = pplb\n// module chunks = 0","var graphic = require(\"../../util/graphic\");\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Line path for bezier and straight line draw\n */\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nfunction isLine(shape) {\n  return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar _default = graphic.extendShape({\n  type: 'ec-line',\n  style: {\n    stroke: '#000',\n    fill: null\n  },\n  shape: {\n    x1: 0,\n    y1: 0,\n    x2: 0,\n    y2: 0,\n    percent: 1,\n    cpx1: null,\n    cpy1: null\n  },\n  buildPath: function (ctx, shape) {\n    (isLine(shape) ? straightLineProto : bezierCurveProto).buildPath(ctx, shape);\n  },\n  pointAt: function (t) {\n    return isLine(this.shape) ? straightLineProto.pointAt.call(this, t) : bezierCurveProto.pointAt.call(this, t);\n  },\n  tangentAt: function (t) {\n    var shape = this.shape;\n    var p = isLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n    return vec2.normalize(p, p);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/LinePath.js\n// module id = psuP\n// module chunks = 0","var textContain = require(\"zrender/lib/contain/text\");\n\nvar graphicUtil = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PATH_COLOR = ['textStyle', 'color'];\nvar _default = {\n  /**\n   * Get color property or get color from option.textStyle.color\n   * @param {boolean} [isEmphasis]\n   * @return {string}\n   */\n  getTextColor: function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  },\n\n  /**\n   * Create font string from fontStyle, fontWeight, fontSize, fontFamily\n   * @return {string}\n   */\n  getFont: function () {\n    return graphicUtil.getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  },\n  getTextRect: function (text) {\n    return textContain.getBoundingRect(text, this.getFont(), this.getShallow('align'), this.getShallow('verticalAlign') || this.getShallow('baseline'), this.getShallow('padding'), this.getShallow('rich'), this.getShallow('truncateText'));\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/textStyle.js\n// module id = pwpU\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel) {\n  ecModel.eachSeriesByType('radar', function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (!coordSys) {\n      return;\n    }\n\n    function pointsConverter(val, idx) {\n      points[idx] = points[idx] || [];\n      points[idx][i] = coordSys.dataToPoint(val, i);\n    }\n\n    var axes = coordSys.getIndicatorAxes();\n\n    for (var i = 0; i < axes.length; i++) {\n      data.each(data.mapDimension(axes[i].dim), pointsConverter);\n    }\n\n    data.each(function (idx) {\n      // Close polygon\n      points[idx][0] && points[idx].push(points[idx][0].slice());\n      data.setItemLayout(idx, points[idx]);\n    });\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/radar/radarLayout.js\n// module id = q1lg\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n  try {\n    // correct subclassing with @@species support\n    var promise = $Promise.resolve(1);\n    var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n      exec(empty, empty);\n    };\n    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    return (isNode || typeof PromiseRejectionEvent == 'function')\n      && promise.then(empty) instanceof FakePromise\n      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n      // we can't detect it synchronously, so just check versions\n      && v8.indexOf('6.6') !== 0\n      && userAgent.indexOf('Chrome/66') === -1;\n  } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n  if (promise._n) return;\n  promise._n = true;\n  var chain = promise._c;\n  microtask(function () {\n    var value = promise._v;\n    var ok = promise._s == 1;\n    var i = 0;\n    var run = function (reaction) {\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (promise._h == 2) onHandleUnhandled(promise);\n            promise._h = 1;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // may throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (e) {\n        if (domain && !exited) domain.exit();\n        reject(e);\n      }\n    };\n    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n    promise._c = [];\n    promise._n = false;\n    if (isReject && !promise._h) onUnhandled(promise);\n  });\n};\nvar onUnhandled = function (promise) {\n  task.call(global, function () {\n    var value = promise._v;\n    var unhandled = isUnhandled(promise);\n    var result, handler, console;\n    if (unhandled) {\n      result = perform(function () {\n        if (isNode) {\n          process.emit('unhandledRejection', value, promise);\n        } else if (handler = global.onunhandledrejection) {\n          handler({ promise: promise, reason: value });\n        } else if ((console = global.console) && console.error) {\n          console.error('Unhandled promise rejection', value);\n        }\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n    } promise._a = undefined;\n    if (unhandled && result.e) throw result.v;\n  });\n};\nvar isUnhandled = function (promise) {\n  return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n  task.call(global, function () {\n    var handler;\n    if (isNode) {\n      process.emit('rejectionHandled', promise);\n    } else if (handler = global.onrejectionhandled) {\n      handler({ promise: promise, reason: promise._v });\n    }\n  });\n};\nvar $reject = function (value) {\n  var promise = this;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  promise._v = value;\n  promise._s = 2;\n  if (!promise._a) promise._a = promise._c.slice();\n  notify(promise, true);\n};\nvar $resolve = function (value) {\n  var promise = this;\n  var then;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    if (then = isThenable(value)) {\n      microtask(function () {\n        var wrapper = { _w: promise, _d: false }; // wrap\n        try {\n          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n        } catch (e) {\n          $reject.call(wrapper, e);\n        }\n      });\n    } else {\n      promise._v = value;\n      promise._s = 1;\n      notify(promise, false);\n    }\n  } catch (e) {\n    $reject.call({ _w: promise, _d: false }, e); // wrap\n  }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n  // 25.4.3.1 Promise(executor)\n  $Promise = function Promise(executor) {\n    anInstance(this, $Promise, PROMISE, '_h');\n    aFunction(executor);\n    Internal.call(this);\n    try {\n      executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n    } catch (err) {\n      $reject.call(this, err);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    this._c = [];             // <- awaiting reactions\n    this._a = undefined;      // <- checked in isUnhandled reactions\n    this._s = 0;              // <- state\n    this._d = false;          // <- done\n    this._v = undefined;      // <- value\n    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n    this._n = false;          // <- notify\n  };\n  Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n    then: function then(onFulfilled, onRejected) {\n      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = isNode ? process.domain : undefined;\n      this._c.push(reaction);\n      if (this._a) this._a.push(reaction);\n      if (this._s) notify(this, false);\n      return reaction.promise;\n    },\n    // 25.4.5.1 Promise.prototype.catch(onRejected)\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    this.promise = promise;\n    this.resolve = ctx($resolve, promise, 1);\n    this.reject = ctx($reject, promise, 1);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === $Promise || C === Wrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n  // 25.4.4.5 Promise.reject(r)\n  reject: function reject(r) {\n    var capability = newPromiseCapability(this);\n    var $$reject = capability.reject;\n    $$reject(r);\n    return capability.promise;\n  }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n  // 25.4.4.6 Promise.resolve(x)\n  resolve: function resolve(x) {\n    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n  }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n  $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n  // 25.4.4.1 Promise.all(iterable)\n  all: function all(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var resolve = capability.resolve;\n    var reject = capability.reject;\n    var result = perform(function () {\n      var values = [];\n      var index = 0;\n      var remaining = 1;\n      forOf(iterable, false, function (promise) {\n        var $index = index++;\n        var alreadyCalled = false;\n        values.push(undefined);\n        remaining++;\n        C.resolve(promise).then(function (value) {\n          if (alreadyCalled) return;\n          alreadyCalled = true;\n          values[$index] = value;\n          --remaining || resolve(values);\n        }, reject);\n      });\n      --remaining || resolve(values);\n    });\n    if (result.e) reject(result.v);\n    return capability.promise;\n  },\n  // 25.4.4.4 Promise.race(iterable)\n  race: function race(iterable) {\n    var C = this;\n    var capability = newPromiseCapability(C);\n    var reject = capability.reject;\n    var result = perform(function () {\n      forOf(iterable, false, function (promise) {\n        C.resolve(promise).then(capability.resolve, reject);\n      });\n    });\n    if (result.e) reject(result.v);\n    return capability.promise;\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.promise.js\n// module id = qCCu\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Parse shadow style\n// TODO Only shallow path support\nfunction _default(properties) {\n  // Normalize\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/makeStyleMapper.js\n// module id = qIgY\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/array/from.js\n// module id = qQfv\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layout = require(\"../../util/layout\");\n\nvar TimelineView = require(\"./TimelineView\");\n\nvar TimelineAxis = require(\"./TimelineAxis\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar axisHelper = require(\"../../coord/axisHelper\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar PI = Math.PI;\n\nvar _default = TimelineView.extend({\n  type: 'timeline.slider',\n  init: function (ecModel, api) {\n    this.api = api;\n    /**\n     * @private\n     * @type {module:echarts/component/timeline/TimelineAxis}\n     */\n\n    this._axis;\n    /**\n     * @private\n     * @type {module:zrender/core/BoundingRect}\n     */\n\n    this._viewRect;\n    /**\n     * @type {number}\n     */\n\n    this._timer;\n    /**\n     * @type {module:zrender/Element}\n     */\n\n    this._currentPointer;\n    /**\n     * @type {module:zrender/container/Group}\n     */\n\n    this._mainGroup;\n    /**\n     * @type {module:zrender/container/Group}\n     */\n\n    this._labelGroup;\n  },\n\n  /**\n   * @override\n   */\n  render: function (timelineModel, ecModel, api, payload) {\n    this.model = timelineModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    this.group.removeAll();\n\n    if (timelineModel.get('show', true)) {\n      var layoutInfo = this._layout(timelineModel, api);\n\n      var mainGroup = this._createGroup('mainGroup');\n\n      var labelGroup = this._createGroup('labelGroup');\n      /**\n       * @private\n       * @type {module:echarts/component/timeline/TimelineAxis}\n       */\n\n\n      var axis = this._axis = this._createAxis(layoutInfo, timelineModel);\n\n      timelineModel.formatTooltip = function (dataIndex) {\n        return encodeHTML(axis.scale.getLabel(dataIndex));\n      };\n\n      each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n        this['_render' + name](layoutInfo, mainGroup, axis, timelineModel);\n      }, this);\n\n      this._renderAxisLabel(layoutInfo, labelGroup, axis, timelineModel);\n\n      this._position(layoutInfo, timelineModel);\n    }\n\n    this._doPlayStop();\n  },\n\n  /**\n   * @override\n   */\n  remove: function () {\n    this._clearTimer();\n\n    this.group.removeAll();\n  },\n\n  /**\n   * @override\n   */\n  dispose: function () {\n    this._clearTimer();\n  },\n  _layout: function (timelineModel, api) {\n    var labelPosOpt = timelineModel.get('label.position');\n    var orient = timelineModel.get('orient');\n    var viewRect = getViewRect(timelineModel, api); // Auto label offset.\n\n    if (labelPosOpt == null || labelPosOpt === 'auto') {\n      labelPosOpt = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n    } else if (isNaN(labelPosOpt)) {\n      labelPosOpt = {\n        horizontal: {\n          top: '-',\n          bottom: '+'\n        },\n        vertical: {\n          left: '-',\n          right: '+'\n        }\n      }[orient][labelPosOpt];\n    }\n\n    var labelAlignMap = {\n      horizontal: 'center',\n      vertical: labelPosOpt >= 0 || labelPosOpt === '+' ? 'left' : 'right'\n    };\n    var labelBaselineMap = {\n      horizontal: labelPosOpt >= 0 || labelPosOpt === '+' ? 'top' : 'bottom',\n      vertical: 'middle'\n    };\n    var rotationMap = {\n      horizontal: 0,\n      vertical: PI / 2\n    }; // Position\n\n    var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n    var controlModel = timelineModel.getModel('controlStyle');\n    var showControl = controlModel.get('show', true);\n    var controlSize = showControl ? controlModel.get('itemSize') : 0;\n    var controlGap = showControl ? controlModel.get('itemGap') : 0;\n    var sizePlusGap = controlSize + controlGap; // Special label rotate.\n\n    var labelRotation = timelineModel.get('label.rotate') || 0;\n    labelRotation = labelRotation * PI / 180; // To radian.\n\n    var playPosition;\n    var prevBtnPosition;\n    var nextBtnPosition;\n    var axisExtent;\n    var controlPosition = controlModel.get('position', true);\n    var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n    var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n    var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n    var xLeft = 0;\n    var xRight = mainLength; // position[0] means left, position[1] means middle.\n\n    if (controlPosition === 'left' || controlPosition === 'bottom') {\n      showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    } else {\n      // 'top' 'right'\n      showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    }\n\n    axisExtent = [xLeft, xRight];\n\n    if (timelineModel.get('inverse')) {\n      axisExtent.reverse();\n    }\n\n    return {\n      viewRect: viewRect,\n      mainLength: mainLength,\n      orient: orient,\n      rotation: rotationMap[orient],\n      labelRotation: labelRotation,\n      labelPosOpt: labelPosOpt,\n      labelAlign: timelineModel.get('label.align') || labelAlignMap[orient],\n      labelBaseline: timelineModel.get('label.verticalAlign') || timelineModel.get('label.baseline') || labelBaselineMap[orient],\n      // Based on mainGroup.\n      playPosition: playPosition,\n      prevBtnPosition: prevBtnPosition,\n      nextBtnPosition: nextBtnPosition,\n      axisExtent: axisExtent,\n      controlSize: controlSize,\n      controlGap: controlGap\n    };\n  },\n  _position: function (layoutInfo, timelineModel) {\n    // Position is be called finally, because bounding rect is needed for\n    // adapt content to fill viewRect (auto adapt offset).\n    // Timeline may be not all in the viewRect when 'offset' is specified\n    // as a number, because it is more appropriate that label aligns at\n    // 'offset' but not the other edge defined by viewRect.\n    var mainGroup = this._mainGroup;\n    var labelGroup = this._labelGroup;\n    var viewRect = layoutInfo.viewRect;\n\n    if (layoutInfo.orient === 'vertical') {\n      // transform to horizontal, inverse rotate by left-top point.\n      var m = matrix.create();\n      var rotateOriginX = viewRect.x;\n      var rotateOriginY = viewRect.y + viewRect.height;\n      matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n      matrix.rotate(m, m, -PI / 2);\n      matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n      viewRect = viewRect.clone();\n      viewRect.applyTransform(m);\n    }\n\n    var viewBound = getBound(viewRect);\n    var mainBound = getBound(mainGroup.getBoundingRect());\n    var labelBound = getBound(labelGroup.getBoundingRect());\n    var mainPosition = mainGroup.position;\n    var labelsPosition = labelGroup.position;\n    labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n    var labelPosOpt = layoutInfo.labelPosOpt;\n\n    if (isNaN(labelPosOpt)) {\n      // '+' or '-'\n      var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n    } else {\n      var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      labelsPosition[1] = mainPosition[1] + labelPosOpt;\n    }\n\n    mainGroup.attr('position', mainPosition);\n    labelGroup.attr('position', labelsPosition);\n    mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n    setOrigin(mainGroup);\n    setOrigin(labelGroup);\n\n    function setOrigin(targetGroup) {\n      var pos = targetGroup.position;\n      targetGroup.origin = [viewBound[0][0] - pos[0], viewBound[1][0] - pos[1]];\n    }\n\n    function getBound(rect) {\n      // [[xmin, xmax], [ymin, ymax]]\n      return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n    }\n\n    function toBound(fromPos, from, to, dimIdx, boundIdx) {\n      fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n    }\n  },\n  _createAxis: function (layoutInfo, timelineModel) {\n    var data = timelineModel.getData();\n    var axisType = timelineModel.get('axisType');\n    var scale = axisHelper.createScaleByModel(timelineModel, axisType); // Customize scale. The `tickValue` is `dataIndex`.\n\n    scale.getTicks = function () {\n      return data.mapArray(['value'], function (value) {\n        return value;\n      });\n    };\n\n    var dataExtent = data.getDataExtent('value');\n    scale.setExtent(dataExtent[0], dataExtent[1]);\n    scale.niceTicks();\n    var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n    axis.model = timelineModel;\n    return axis;\n  },\n  _createGroup: function (name) {\n    var newGroup = this['_' + name] = new graphic.Group();\n    this.group.add(newGroup);\n    return newGroup;\n  },\n  _renderAxisLine: function (layoutInfo, group, axis, timelineModel) {\n    var axisExtent = axis.getExtent();\n\n    if (!timelineModel.get('lineStyle.show')) {\n      return;\n    }\n\n    group.add(new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        y1: 0,\n        x2: axisExtent[1],\n        y2: 0\n      },\n      style: zrUtil.extend({\n        lineCap: 'round'\n      }, timelineModel.getModel('lineStyle').getLineStyle()),\n      silent: true,\n      z2: 1\n    }));\n  },\n\n  /**\n   * @private\n   */\n  _renderAxisTick: function (layoutInfo, group, axis, timelineModel) {\n    var data = timelineModel.getData(); // Show all ticks, despite ignoring strategy.\n\n    var ticks = axis.scale.getTicks(); // The value is dataIndex, see the costomized scale.\n\n    each(ticks, function (value) {\n      var tickCoord = axis.dataToCoord(value);\n      var itemModel = data.getItemModel(value);\n      var itemStyleModel = itemModel.getModel('itemStyle');\n      var hoverStyleModel = itemModel.getModel('emphasis.itemStyle');\n      var symbolOpt = {\n        position: [tickCoord, 0],\n        onclick: bind(this._changeTimeline, this, value)\n      };\n      var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n      graphic.setHoverStyle(el, hoverStyleModel.getItemStyle());\n\n      if (itemModel.get('tooltip')) {\n        el.dataIndex = value;\n        el.dataModel = timelineModel;\n      } else {\n        el.dataIndex = el.dataModel = null;\n      }\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _renderAxisLabel: function (layoutInfo, group, axis, timelineModel) {\n    var labelModel = axis.getLabelModel();\n\n    if (!labelModel.get('show')) {\n      return;\n    }\n\n    var data = timelineModel.getData();\n    var labels = axis.getViewLabels();\n    each(labels, function (labelItem) {\n      // The tickValue is dataIndex, see the costomized scale.\n      var dataIndex = labelItem.tickValue;\n      var itemModel = data.getItemModel(dataIndex);\n      var normalLabelModel = itemModel.getModel('label');\n      var hoverLabelModel = itemModel.getModel('emphasis.label');\n      var tickCoord = axis.dataToCoord(labelItem.tickValue);\n      var textEl = new graphic.Text({\n        position: [tickCoord, 0],\n        rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n        onclick: bind(this._changeTimeline, this, dataIndex),\n        silent: false\n      });\n      graphic.setTextStyle(textEl.style, normalLabelModel, {\n        text: labelItem.formattedLabel,\n        textAlign: layoutInfo.labelAlign,\n        textVerticalAlign: layoutInfo.labelBaseline\n      });\n      group.add(textEl);\n      graphic.setHoverStyle(textEl, graphic.setTextStyle({}, hoverLabelModel));\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _renderControl: function (layoutInfo, group, axis, timelineModel) {\n    var controlSize = layoutInfo.controlSize;\n    var rotation = layoutInfo.rotation;\n    var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n    var hoverStyle = timelineModel.getModel('emphasis.controlStyle').getItemStyle();\n    var rect = [0, -controlSize / 2, controlSize, controlSize];\n    var playState = timelineModel.getPlayState();\n    var inverse = timelineModel.get('inverse', true);\n    makeBtn(layoutInfo.nextBtnPosition, 'controlStyle.nextIcon', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n    makeBtn(layoutInfo.prevBtnPosition, 'controlStyle.prevIcon', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n    makeBtn(layoutInfo.playPosition, 'controlStyle.' + (playState ? 'stopIcon' : 'playIcon'), bind(this._handlePlayClick, this, !playState), true);\n\n    function makeBtn(position, iconPath, onclick, willRotate) {\n      if (!position) {\n        return;\n      }\n\n      var opt = {\n        position: position,\n        origin: [controlSize / 2, 0],\n        rotation: willRotate ? -rotation : 0,\n        rectHover: true,\n        style: itemStyle,\n        onclick: onclick\n      };\n      var btn = makeIcon(timelineModel, iconPath, rect, opt);\n      group.add(btn);\n      graphic.setHoverStyle(btn, hoverStyle);\n    }\n  },\n  _renderCurrentPointer: function (layoutInfo, group, axis, timelineModel) {\n    var data = timelineModel.getData();\n    var currentIndex = timelineModel.getCurrentIndex();\n    var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n    var me = this;\n    var callback = {\n      onCreate: function (pointer) {\n        pointer.draggable = true;\n        pointer.drift = bind(me._handlePointerDrag, me);\n        pointer.ondragend = bind(me._handlePointerDragend, me);\n        pointerMoveTo(pointer, currentIndex, axis, timelineModel, true);\n      },\n      onUpdate: function (pointer) {\n        pointerMoveTo(pointer, currentIndex, axis, timelineModel);\n      }\n    }; // Reuse when exists, for animation and drag.\n\n    this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n  },\n  _handlePlayClick: function (nextState) {\n    this._clearTimer();\n\n    this.api.dispatchAction({\n      type: 'timelinePlayChange',\n      playState: nextState,\n      from: this.uid\n    });\n  },\n  _handlePointerDrag: function (dx, dy, e) {\n    this._clearTimer();\n\n    this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n  },\n  _handlePointerDragend: function (e) {\n    this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n  },\n  _pointerChangeTimeline: function (mousePos, trigger) {\n    var toCoord = this._toAxisCoord(mousePos)[0];\n\n    var axis = this._axis;\n    var axisExtent = numberUtil.asc(axis.getExtent().slice());\n    toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n    toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n    this._currentPointer.position[0] = toCoord;\n\n    this._currentPointer.dirty();\n\n    var targetDataIndex = this._findNearestTick(toCoord);\n\n    var timelineModel = this.model;\n\n    if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n      this._changeTimeline(targetDataIndex);\n    }\n  },\n  _doPlayStop: function () {\n    this._clearTimer();\n\n    if (this.model.getPlayState()) {\n      this._timer = setTimeout(bind(handleFrame, this), this.model.get('playInterval'));\n    }\n\n    function handleFrame() {\n      // Do not cache\n      var timelineModel = this.model;\n\n      this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n    }\n  },\n  _toAxisCoord: function (vertex) {\n    var trans = this._mainGroup.getLocalTransform();\n\n    return graphic.applyTransform(vertex, trans, true);\n  },\n  _findNearestTick: function (axisCoord) {\n    var data = this.model.getData();\n    var dist = Infinity;\n    var targetDataIndex;\n    var axis = this._axis;\n    data.each(['value'], function (value, dataIndex) {\n      var coord = axis.dataToCoord(value);\n      var d = Math.abs(coord - axisCoord);\n\n      if (d < dist) {\n        dist = d;\n        targetDataIndex = dataIndex;\n      }\n    });\n    return targetDataIndex;\n  },\n  _clearTimer: function () {\n    if (this._timer) {\n      clearTimeout(this._timer);\n      this._timer = null;\n    }\n  },\n  _changeTimeline: function (nextIndex) {\n    var currentIndex = this.model.getCurrentIndex();\n\n    if (nextIndex === '+') {\n      nextIndex = currentIndex + 1;\n    } else if (nextIndex === '-') {\n      nextIndex = currentIndex - 1;\n    }\n\n    this.api.dispatchAction({\n      type: 'timelineChange',\n      currentIndex: nextIndex,\n      from: this.uid\n    });\n  }\n});\n\nfunction getViewRect(model, api) {\n  return layout.getLayoutRect(model.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  }, model.get('padding'));\n}\n\nfunction makeIcon(timelineModel, objPath, rect, opts) {\n  var icon = graphic.makePath(timelineModel.get(objPath).replace(/^path:\\/\\//, ''), zrUtil.clone(opts || {}), new BoundingRect(rect[0], rect[1], rect[2], rect[3]), 'center');\n  return icon;\n}\n/**\n * Create symbol or update symbol\n * opt: basic position and event handlers\n */\n\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n  var color = itemStyleModel.get('color');\n\n  if (!symbol) {\n    var symbolType = hostModel.get('symbol');\n    symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n    symbol.setStyle('strokeNoScale', true);\n    group.add(symbol);\n    callback && callback.onCreate(symbol);\n  } else {\n    symbol.setColor(color);\n    group.add(symbol); // Group may be new, also need to add.\n\n    callback && callback.onUpdate(symbol);\n  } // Style\n\n\n  var itemStyle = itemStyleModel.getItemStyle(['color', 'symbol', 'symbolSize']);\n  symbol.setStyle(itemStyle); // Transform and events.\n\n  opt = zrUtil.merge({\n    rectHover: true,\n    z2: 100\n  }, opt, true);\n  var symbolSize = hostModel.get('symbolSize');\n  symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  symbolSize[0] /= 2;\n  symbolSize[1] /= 2;\n  opt.scale = symbolSize;\n  var symbolOffset = hostModel.get('symbolOffset');\n\n  if (symbolOffset) {\n    var pos = opt.position = opt.position || [0, 0];\n    pos[0] += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n    pos[1] += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]);\n  }\n\n  var symbolRotate = hostModel.get('symbolRotate');\n  opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  symbol.attr(opt); // FIXME\n  // (1) When symbol.style.strokeNoScale is true and updateTransform is not performed,\n  // getBoundingRect will return wrong result.\n  // (This is supposed to be resolved in zrender, but it is a little difficult to\n  // leverage performance and auto updateTransform)\n  // (2) All of ancesters of symbol do not scale, so we can just updateTransform symbol.\n\n  symbol.updateTransform();\n  return symbol;\n}\n\nfunction pointerMoveTo(pointer, dataIndex, axis, timelineModel, noAnimation) {\n  if (pointer.dragging) {\n    return;\n  }\n\n  var pointerModel = timelineModel.getModel('checkpointStyle');\n  var toCoord = axis.dataToCoord(timelineModel.getData().get(['value'], dataIndex));\n\n  if (noAnimation || !pointerModel.get('animation', true)) {\n    pointer.attr({\n      position: [toCoord, 0]\n    });\n  } else {\n    pointer.stopAnimation(true);\n    pointer.animateTo({\n      position: [toCoord, 0]\n    }, pointerModel.get('animationDuration', true), pointerModel.get('animationEasing', true));\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/timeline/SliderTimelineView.js\n// module id = qQsW\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar graphic = require(\"../util/graphic\");\n\nvar _layout = require(\"../util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Model\necharts.extendComponentModel({\n  type: 'title',\n  layoutMode: {\n    type: 'box',\n    ignoreSize: true\n  },\n  defaultOption: {\n    // 涓�绾у眰鍙燶n    zlevel: 0,\n    // 浜岀骇灞傚彔\n    z: 6,\n    show: true,\n    text: '',\n    // 瓒呴摼鎺ヨ烦杞琝n    // link: null,\n    // 浠呮敮鎸乻elf | blank\n    target: 'blank',\n    subtext: '',\n    // 瓒呴摼鎺ヨ烦杞琝n    // sublink: null,\n    // 浠呮敮鎸乻elf | blank\n    subtarget: 'blank',\n    // 'center' 娄 'left' 娄 'right'\n    // 娄 {number}锛坸鍧愭爣锛屽崟浣峱x锛塡n    left: 0,\n    // 'top' 娄 'bottom' 娄 'center'\n    // 娄 {number}锛坹鍧愭爣锛屽崟浣峱x锛塡n    top: 0,\n    // 姘村钩瀵归綈\n    // 'auto' | 'left' | 'right' | 'center'\n    // 榛樿鏍规嵁 left 鐨勪綅缃垽鏂槸宸﹀榻愯繕鏄彸瀵归綈\n    // textAlign: null\n    //\n    // 鍨傜洿瀵归綈\n    // 'auto' | 'top' | 'bottom' | 'middle'\n    // 榛樿鏍规嵁 top 浣嶇疆鍒ゆ柇鏄笂瀵归綈杩樻槸涓嬪榻怽n    // textBaseline: null\n    backgroundColor: 'rgba(0,0,0,0)',\n    // 鏍囬杈规棰滆壊\n    borderColor: '#ccc',\n    // 鏍囬杈规绾垮锛屽崟浣峱x锛岄粯璁や负0锛堟棤杈规锛塡n    borderWidth: 0,\n    // 鏍囬鍐呰竟璺濓紝鍗曚綅px锛岄粯璁ゅ悇鏂瑰悜鍐呰竟璺濅负5锛孿n    // 鎺ュ彈鏁扮粍鍒嗗埆璁惧畾涓婂彸涓嬪乏杈硅窛锛屽悓css\n    padding: 5,\n    // 涓诲壇鏍囬绾靛悜闂撮殧锛屽崟浣峱x锛岄粯璁や负10锛孿n    itemGap: 10,\n    textStyle: {\n      fontSize: 18,\n      fontWeight: 'bolder',\n      color: '#333'\n    },\n    subtextStyle: {\n      color: '#aaa'\n    }\n  }\n}); // View\n\necharts.extendComponentView({\n  type: 'title',\n  render: function (titleModel, ecModel, api) {\n    this.group.removeAll();\n\n    if (!titleModel.get('show')) {\n      return;\n    }\n\n    var group = this.group;\n    var textStyleModel = titleModel.getModel('textStyle');\n    var subtextStyleModel = titleModel.getModel('subtextStyle');\n    var textAlign = titleModel.get('textAlign');\n    var textBaseline = titleModel.get('textBaseline');\n    var textEl = new graphic.Text({\n      style: graphic.setTextStyle({}, textStyleModel, {\n        text: titleModel.get('text'),\n        textFill: textStyleModel.getTextColor()\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var textRect = textEl.getBoundingRect();\n    var subText = titleModel.get('subtext');\n    var subTextEl = new graphic.Text({\n      style: graphic.setTextStyle({}, subtextStyleModel, {\n        text: subText,\n        textFill: subtextStyleModel.getTextColor(),\n        y: textRect.height + titleModel.get('itemGap'),\n        textVerticalAlign: 'top'\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var link = titleModel.get('link');\n    var sublink = titleModel.get('sublink');\n    textEl.silent = !link;\n    subTextEl.silent = !sublink;\n\n    if (link) {\n      textEl.on('click', function () {\n        window.open(link, '_' + titleModel.get('target'));\n      });\n    }\n\n    if (sublink) {\n      subTextEl.on('click', function () {\n        window.open(sublink, '_' + titleModel.get('subtarget'));\n      });\n    }\n\n    group.add(textEl);\n    subText && group.add(subTextEl); // If no subText, but add subTextEl, there will be an empty line.\n\n    var groupRect = group.getBoundingRect();\n    var layoutOption = titleModel.getBoxLayoutParams();\n    layoutOption.width = groupRect.width;\n    layoutOption.height = groupRect.height;\n    var layoutRect = getLayoutRect(layoutOption, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }, titleModel.get('padding')); // Adjust text align based on position\n\n    if (!textAlign) {\n      // Align left if title is on the left. center and right is same\n      textAlign = titleModel.get('left') || titleModel.get('right');\n\n      if (textAlign === 'middle') {\n        textAlign = 'center';\n      } // Adjust layout by text align\n\n\n      if (textAlign === 'right') {\n        layoutRect.x += layoutRect.width;\n      } else if (textAlign === 'center') {\n        layoutRect.x += layoutRect.width / 2;\n      }\n    }\n\n    if (!textBaseline) {\n      textBaseline = titleModel.get('top') || titleModel.get('bottom');\n\n      if (textBaseline === 'center') {\n        textBaseline = 'middle';\n      }\n\n      if (textBaseline === 'bottom') {\n        layoutRect.y += layoutRect.height;\n      } else if (textBaseline === 'middle') {\n        layoutRect.y += layoutRect.height / 2;\n      }\n\n      textBaseline = textBaseline || 'top';\n    }\n\n    group.attr('position', [layoutRect.x, layoutRect.y]);\n    var alignStyle = {\n      textAlign: textAlign,\n      textVerticalAlign: textBaseline\n    };\n    textEl.setStyle(alignStyle);\n    subTextEl.setStyle(alignStyle); // Render background\n    // Get groupRect again because textAlign has been changed\n\n    groupRect = group.getBoundingRect();\n    var padding = layoutRect.margin;\n    var style = titleModel.getItemStyle(['color', 'opacity']);\n    style.fill = titleModel.get('backgroundColor');\n    var rect = new graphic.Rect({\n      shape: {\n        x: groupRect.x - padding[3],\n        y: groupRect.y - padding[0],\n        width: groupRect.width + padding[1] + padding[3],\n        height: groupRect.height + padding[0] + padding[2],\n        r: titleModel.get('borderRadius')\n      },\n      style: style,\n      silent: true\n    });\n    graphic.subPixelOptimizeRect(rect);\n    group.add(rect);\n  }\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/title.js\n// module id = qYjU\n// module chunks = 0","var Path = require(\"../Path\");\n\nvar fixClipWithShadow = require(\"../helper/fixClipWithShadow\");\n\n/**\n * 鎵囧舰\n * @module zrender/graphic/shape/Sector\n */\nvar _default = Path.extend({\n  type: 'sector',\n  shape: {\n    cx: 0,\n    cy: 0,\n    r0: 0,\n    r: 0,\n    startAngle: 0,\n    endAngle: Math.PI * 2,\n    clockwise: true\n  },\n  brush: fixClipWithShadow(Path.prototype.brush),\n  buildPath: function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitX = Math.cos(startAngle);\n    var unitY = Math.sin(startAngle);\n    ctx.moveTo(unitX * r0 + x, unitY * r0 + y);\n    ctx.lineTo(unitX * r + x, unitY * r + y);\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n    }\n\n    ctx.closePath();\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Sector.js\n// module id = qZuq\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar MAX_SAFE_INTEGER = _number.MAX_SAFE_INTEGER;\n\nvar layout = require(\"../../util/layout\");\n\nvar helper = require(\"../helper/treeHelper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n/**\n * @public\n */\n\nvar _default = {\n  seriesType: 'treemap',\n  reset: function (seriesModel, ecModel, api, payload) {\n    // Layout result in each node:\n    // {x, y, width, height, area, borderWidth}\n    var ecWidth = api.getWidth();\n    var ecHeight = api.getHeight();\n    var seriesOption = seriesModel.option;\n    var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    var size = seriesOption.size || []; // Compatible with ec2.\n\n    var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n    var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight); // Fetch payload info.\n\n    var payloadType = payload && payload.type;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n    var viewRoot = seriesModel.getViewRoot();\n    var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n    if (payloadType !== 'treemapMove') {\n      var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n      var sort = seriesOption.sort;\n\n      if (sort && sort !== 'asc' && sort !== 'desc') {\n        sort = 'desc';\n      }\n\n      var options = {\n        squareRatio: seriesOption.squareRatio,\n        sort: sort,\n        leafDepth: seriesOption.leafDepth\n      }; // layout should be cleared because using updateView but not update.\n\n      viewRoot.hostTree.clearLayouts(); // TODO\n      // optimize: if out of view clip, do not layout.\n      // But take care that if do not render node out of view clip,\n      // how to calculate start po\n\n      var viewRootLayout = {\n        x: 0,\n        y: 0,\n        width: rootSize[0],\n        height: rootSize[1],\n        area: rootSize[0] * rootSize[1]\n      };\n      viewRoot.setLayout(viewRootLayout);\n      squarify(viewRoot, options, false, 0); // Supplement layout.\n\n      var viewRootLayout = viewRoot.getLayout();\n      each(viewAbovePath, function (node, index) {\n        var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n        node.setLayout(zrUtil.extend({\n          dataExtent: [childValue, childValue],\n          borderWidth: 0,\n          upperHeight: 0\n        }, viewRootLayout));\n      });\n    }\n\n    var treeRoot = seriesModel.getData().tree.root;\n    treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n    seriesModel.setLayoutInfo(layoutInfo); // FIXME\n    // 鐜板湪娌℃湁clip鍔熻兘锛屾殏鏃跺彇ec楂樺銆俓n\n    prunning(treeRoot, // Transform to base element coordinate system.\n    new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n  }\n};\n/**\n * Layout treemap with squarify algorithm.\n * @see https://graphics.ethz.ch/teaching/scivis_common/Literature/squarifiedTreeMaps.pdf\n * @see https://github.com/mbostock/d3/blob/master/src/layout/treemap.js\n *\n * @protected\n * @param {module:echarts/data/Tree~TreeNode} node\n * @param {Object} options\n * @param {string} options.sort 'asc' or 'desc'\n * @param {number} options.squareRatio\n * @param {boolean} hideChildren\n * @param {number} depth\n */\n\nfunction squarify(node, options, hideChildren, depth) {\n  var width;\n  var height;\n\n  if (node.isRemoved()) {\n    return;\n  }\n\n  var thisLayout = node.getLayout();\n  width = thisLayout.width;\n  height = thisLayout.height; // Considering border and gap\n\n  var nodeModel = node.getModel();\n  var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n  var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n  var upperLabelHeight = getUpperLabelHeight(nodeModel);\n  var upperHeight = Math.max(borderWidth, upperLabelHeight);\n  var layoutOffset = borderWidth - halfGapWidth;\n  var layoutOffsetUpper = upperHeight - halfGapWidth;\n  var nodeModel = node.getModel();\n  node.setLayout({\n    borderWidth: borderWidth,\n    upperHeight: upperHeight,\n    upperLabelHeight: upperLabelHeight\n  }, true);\n  width = mathMax(width - 2 * layoutOffset, 0);\n  height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n  var totalArea = width * height;\n  var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n  if (!viewChildren.length) {\n    return;\n  }\n\n  var rect = {\n    x: layoutOffset,\n    y: layoutOffsetUpper,\n    width: width,\n    height: height\n  };\n  var rowFixedLength = mathMin(width, height);\n  var best = Infinity; // the best row score so far\n\n  var row = [];\n  row.area = 0;\n\n  for (var i = 0, len = viewChildren.length; i < len;) {\n    var child = viewChildren[i];\n    row.push(child);\n    row.area += child.getLayout().area;\n    var score = worst(row, rowFixedLength, options.squareRatio); // continue with this orientation\n\n    if (score <= best) {\n      i++;\n      best = score;\n    } // abort, and try a different orientation\n    else {\n        row.area -= row.pop().getLayout().area;\n        position(row, rowFixedLength, rect, halfGapWidth, false);\n        rowFixedLength = mathMin(rect.width, rect.height);\n        row.length = row.area = 0;\n        best = Infinity;\n      }\n  }\n\n  if (row.length) {\n    position(row, rowFixedLength, rect, halfGapWidth, true);\n  }\n\n  if (!hideChildren) {\n    var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n    if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n      hideChildren = true;\n    }\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    squarify(viewChildren[i], options, hideChildren, depth + 1);\n  }\n}\n/**\n * Set area to each child, and calculate data extent for visual coding.\n */\n\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n  var viewChildren = node.children || [];\n  var orderBy = options.sort;\n  orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n  var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth; // leafDepth has higher priority.\n\n  if (hideChildren && !overLeafDepth) {\n    return node.viewChildren = [];\n  } // Sort children, order by desc.\n\n\n  viewChildren = zrUtil.filter(viewChildren, function (child) {\n    return !child.isRemoved();\n  });\n  sort(viewChildren, orderBy);\n  var info = statistic(nodeModel, viewChildren, orderBy);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  } // Set area to each child.\n\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    var area = viewChildren[i].getValue() / info.sum * totalArea; // Do not use setLayout({...}, true), because it is needed to clear last layout.\n\n    viewChildren[i].setLayout({\n      area: area\n    });\n  }\n\n  if (overLeafDepth) {\n    viewChildren.length && node.setLayout({\n      isLeafRoot: true\n    }, true);\n    viewChildren.length = 0;\n  }\n\n  node.viewChildren = viewChildren;\n  node.setLayout({\n    dataExtent: info.dataExtent\n  }, true);\n  return viewChildren;\n}\n/**\n * Consider 'visibleMin'. Modify viewChildren and get new sum.\n */\n\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n  // visibleMin is not supported yet when no option.sort.\n  if (!orderBy) {\n    return sum;\n  }\n\n  var visibleMin = nodeModel.get('visibleMin');\n  var len = orderedChildren.length;\n  var deletePoint = len; // Always travel from little value to big value.\n\n  for (var i = len - 1; i >= 0; i--) {\n    var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n    if (value / sum * totalArea < visibleMin) {\n      deletePoint = i;\n      sum -= value;\n    }\n  }\n\n  orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n  return sum;\n}\n/**\n * Sort\n */\n\n\nfunction sort(viewChildren, orderBy) {\n  if (orderBy) {\n    viewChildren.sort(function (a, b) {\n      var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n      return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n    });\n  }\n\n  return viewChildren;\n}\n/**\n * Statistic\n */\n\n\nfunction statistic(nodeModel, children, orderBy) {\n  // Calculate sum.\n  var sum = 0;\n\n  for (var i = 0, len = children.length; i < len; i++) {\n    sum += children[i].getValue();\n  } // Statistic data extent for latter visual coding.\n  // Notice: data extent should be calculate based on raw children\n  // but not filtered view children, otherwise visual mapping will not\n  // be stable when zoom (where children is filtered by visibleMin).\n\n\n  var dimension = nodeModel.get('visualDimension');\n  var dataExtent; // The same as area dimension.\n\n  if (!children || !children.length) {\n    dataExtent = [NaN, NaN];\n  } else if (dimension === 'value' && orderBy) {\n    dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n    orderBy === 'asc' && dataExtent.reverse();\n  } // Other dimension.\n  else {\n      var dataExtent = [Infinity, -Infinity];\n      each(children, function (child) {\n        var value = child.getValue(dimension);\n        value < dataExtent[0] && (dataExtent[0] = value);\n        value > dataExtent[1] && (dataExtent[1] = value);\n      });\n    }\n\n  return {\n    sum: sum,\n    dataExtent: dataExtent\n  };\n}\n/**\n * Computes the score for the specified row,\n * as the worst aspect ratio.\n */\n\n\nfunction worst(row, rowFixedLength, ratio) {\n  var areaMax = 0;\n  var areaMin = Infinity;\n\n  for (var i = 0, area, len = row.length; i < len; i++) {\n    area = row[i].getLayout().area;\n\n    if (area) {\n      area < areaMin && (areaMin = area);\n      area > areaMax && (areaMax = area);\n    }\n  }\n\n  var squareArea = row.area * row.area;\n  var f = rowFixedLength * rowFixedLength * ratio;\n  return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n/**\n * Positions the specified row of nodes. Modifies `rect`.\n */\n\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n  // When rowFixedLength === rect.width,\n  // it is horizontal subdivision,\n  // rowFixedLength is the width of the subdivision,\n  // rowOtherLength is the height of the subdivision,\n  // and nodes will be positioned from left to right.\n  // wh[idx0WhenH] means: when horizontal,\n  //      wh[idx0WhenH] => wh[0] => 'width'.\n  //      xy[idx1WhenH] => xy[1] => 'y'.\n  var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n  var idx1WhenH = 1 - idx0WhenH;\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  var last = rect[xy[idx0WhenH]];\n  var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n  if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n    rowOtherLength = rect[wh[idx1WhenH]]; // over+underflow\n  }\n\n  for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n    var node = row[i];\n    var nodeLayout = {};\n    var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n    var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0); // We use Math.max/min to avoid negative width/height when considering gap width.\n\n    var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n    var modWH = i === rowLen - 1 || remain < step ? remain : step;\n    var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n    nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n    nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n    last += modWH;\n    node.setLayout(nodeLayout, true);\n  }\n\n  rect[xy[idx1WhenH]] += rowOtherLength;\n  rect[wh[idx1WhenH]] -= rowOtherLength;\n} // Return [containerWidth, containerHeight] as defualt.\n\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n  // If targetInfo.node exists, we zoom to the node,\n  // so estimate whold width and heigth by target node.\n  var currNode = (targetInfo || {}).node;\n  var defaultSize = [containerWidth, containerHeight];\n\n  if (!currNode || currNode === viewRoot) {\n    return defaultSize;\n  }\n\n  var parent;\n  var viewArea = containerWidth * containerHeight;\n  var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n  while (parent = currNode.parentNode) {\n    // jshint ignore:line\n    var sum = 0;\n    var siblings = parent.children;\n\n    for (var i = 0, len = siblings.length; i < len; i++) {\n      sum += siblings[i].getValue();\n    }\n\n    var currNodeValue = currNode.getValue();\n\n    if (currNodeValue === 0) {\n      return defaultSize;\n    }\n\n    area *= sum / currNodeValue; // Considering border, suppose aspect ratio is 1.\n\n    var parentModel = parent.getModel();\n    var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n    var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel, borderWidth));\n    area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n    area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n    currNode = parent;\n  }\n\n  area < viewArea && (area = viewArea);\n  var scale = Math.pow(area / viewArea, 0.5);\n  return [containerWidth * scale, containerHeight * scale];\n} // Root postion base on coord of containerGroup\n\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n  if (rootRect) {\n    return {\n      x: rootRect.x,\n      y: rootRect.y\n    };\n  }\n\n  var defaultPosition = {\n    x: 0,\n    y: 0\n  };\n\n  if (!targetInfo) {\n    return defaultPosition;\n  } // If targetInfo is fetched by 'retrieveTargetInfo',\n  // old tree and new tree are the same tree,\n  // so the node still exists and we can visit it.\n\n\n  var targetNode = targetInfo.node;\n  var layout = targetNode.getLayout();\n\n  if (!layout) {\n    return defaultPosition;\n  } // Transform coord from local to container.\n\n\n  var targetCenter = [layout.width / 2, layout.height / 2];\n  var node = targetNode;\n\n  while (node) {\n    var nodeLayout = node.getLayout();\n    targetCenter[0] += nodeLayout.x;\n    targetCenter[1] += nodeLayout.y;\n    node = node.parentNode;\n  }\n\n  return {\n    x: layoutInfo.width / 2 - targetCenter[0],\n    y: layoutInfo.height / 2 - targetCenter[1]\n  };\n} // Mark nodes visible for prunning when visual coding and rendering.\n// Prunning depends on layout and root position, so we have to do it after layout.\n\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n  var nodeLayout = node.getLayout();\n  var nodeInViewAbovePath = viewAbovePath[depth];\n  var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n  if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n    return;\n  }\n\n  node.setLayout({\n    // isInView means: viewRoot sub tree + viewAbovePath\n    isInView: true,\n    // invisible only means: outside view clip so that the node can not\n    // see but still layout for animation preparation but not render.\n    invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n    isAboveViewRoot: isAboveViewRoot\n  }, true); // Transform to child coordinate.\n\n  var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n  each(node.viewChildren || [], function (child) {\n    prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n  });\n}\n\nfunction getUpperLabelHeight(model) {\n  return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/treemapLayout.js\n// module id = qi2g\n// module chunks = 0","var guid = require(\"./core/guid\");\n\nvar env = require(\"./core/env\");\n\nvar zrUtil = require(\"./core/util\");\n\nvar Handler = require(\"./Handler\");\n\nvar Storage = require(\"./Storage\");\n\nvar Painter = require(\"./Painter\");\n\nvar Animation = require(\"./animation/Animation\");\n\nvar HandlerProxy = require(\"./dom/HandlerProxy\");\n\n/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nvar useVML = !env.canvasSupported;\nvar painterCtors = {\n  canvas: Painter\n};\nvar instances = {}; // ZRender瀹炰緥map绱㈠紩\n\n/**\n * @type {string}\n */\n\nvar version = '4.0.4';\n/**\n * Initializing a zrender instance\n * @param {HTMLElement} dom\n * @param {Object} opts\n * @param {string} [opts.renderer='canvas'] 'canvas' or 'svg'\n * @param {number} [opts.devicePixelRatio]\n * @param {number|string} [opts.width] Can be 'auto' (the same as null/undefined)\n * @param {number|string} [opts.height] Can be 'auto' (the same as null/undefined)\n * @return {module:zrender/ZRender}\n */\n\nfunction init(dom, opts) {\n  var zr = new ZRender(guid(), dom, opts);\n  instances[zr.id] = zr;\n  return zr;\n}\n/**\n * Dispose zrender instance\n * @param {module:zrender/ZRender} zr\n */\n\n\nfunction dispose(zr) {\n  if (zr) {\n    zr.dispose();\n  } else {\n    for (var key in instances) {\n      if (instances.hasOwnProperty(key)) {\n        instances[key].dispose();\n      }\n    }\n\n    instances = {};\n  }\n\n  return this;\n}\n/**\n * Get zrender instance by id\n * @param {string} id zrender instance id\n * @return {module:zrender/ZRender}\n */\n\n\nfunction getInstance(id) {\n  return instances[id];\n}\n\nfunction registerPainter(name, Ctor) {\n  painterCtors[name] = Ctor;\n}\n\nfunction delInstance(id) {\n  delete instances[id];\n}\n/**\n * @module zrender/ZRender\n */\n\n/**\n * @constructor\n * @alias module:zrender/ZRender\n * @param {string} id\n * @param {HTMLElement} dom\n * @param {Object} opts\n * @param {string} [opts.renderer='canvas'] 'canvas' or 'svg'\n * @param {number} [opts.devicePixelRatio]\n * @param {number} [opts.width] Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Can be 'auto' (the same as null/undefined)\n */\n\n\nvar ZRender = function (id, dom, opts) {\n  opts = opts || {};\n  /**\n   * @type {HTMLDomElement}\n   */\n\n  this.dom = dom;\n  /**\n   * @type {string}\n   */\n\n  this.id = id;\n  var self = this;\n  var storage = new Storage();\n  var rendererType = opts.renderer; // TODO WebGL\n\n  if (useVML) {\n    if (!painterCtors.vml) {\n      throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\n    }\n\n    rendererType = 'vml';\n  } else if (!rendererType || !painterCtors[rendererType]) {\n    rendererType = 'canvas';\n  }\n\n  var painter = new painterCtors[rendererType](dom, storage, opts, id);\n  this.storage = storage;\n  this.painter = painter;\n  var handerProxy = !env.node && !env.worker ? new HandlerProxy(painter.getViewportRoot()) : null;\n  this.handler = new Handler(storage, painter, handerProxy, painter.root);\n  /**\n   * @type {module:zrender/animation/Animation}\n   */\n\n  this.animation = new Animation({\n    stage: {\n      update: zrUtil.bind(this.flush, this)\n    }\n  });\n  this.animation.start();\n  /**\n   * @type {boolean}\n   * @private\n   */\n\n  this._needsRefresh; // 淇敼 storage.delFromStorage, 姣忔鍒犻櫎鍏冪礌涔嬪墠鍒犻櫎鍔ㄧ敾\n  // FIXME 鏈夌偣ugly\n\n  var oldDelFromStorage = storage.delFromStorage;\n  var oldAddToStorage = storage.addToStorage;\n\n  storage.delFromStorage = function (el) {\n    oldDelFromStorage.call(storage, el);\n    el && el.removeSelfFromZr(self);\n  };\n\n  storage.addToStorage = function (el) {\n    oldAddToStorage.call(storage, el);\n    el.addSelfToZr(self);\n  };\n};\n\nZRender.prototype = {\n  constructor: ZRender,\n\n  /**\n   * 鑾峰彇瀹炰緥鍞竴鏍囪瘑\n   * @return {string}\n   */\n  getId: function () {\n    return this.id;\n  },\n\n  /**\n   * 娣诲姞鍏冪礌\n   * @param  {module:zrender/Element} el\n   */\n  add: function (el) {\n    this.storage.addRoot(el);\n    this._needsRefresh = true;\n  },\n\n  /**\n   * 鍒犻櫎鍏冪礌\n   * @param  {module:zrender/Element} el\n   */\n  remove: function (el) {\n    this.storage.delRoot(el);\n    this._needsRefresh = true;\n  },\n\n  /**\n   * Change configuration of layer\n   * @param {string} zLevel\n   * @param {Object} config\n   * @param {string} [config.clearColor=0] Clear color\n   * @param {string} [config.motionBlur=false] If enable motion blur\n   * @param {number} [config.lastFrameAlpha=0.7] Motion blur factor. Larger value cause longer trailer\n  */\n  configLayer: function (zLevel, config) {\n    if (this.painter.configLayer) {\n      this.painter.configLayer(zLevel, config);\n    }\n\n    this._needsRefresh = true;\n  },\n\n  /**\n   * Set background color\n   * @param {string} backgroundColor\n   */\n  setBackgroundColor: function (backgroundColor) {\n    if (this.painter.setBackgroundColor) {\n      this.painter.setBackgroundColor(backgroundColor);\n    }\n\n    this._needsRefresh = true;\n  },\n\n  /**\n   * Repaint the canvas immediately\n   */\n  refreshImmediately: function () {\n    // var start = new Date();\n    // Clear needsRefresh ahead to avoid something wrong happens in refresh\n    // Or it will cause zrender refreshes again and again.\n    this._needsRefresh = false;\n    this.painter.refresh();\n    /**\n     * Avoid trigger zr.refresh in Element#beforeUpdate hook\n     */\n\n    this._needsRefresh = false; // var end = new Date();\n    // var log = document.getElementById('log');\n    // if (log) {\n    //     log.innerHTML = log.innerHTML + '<br>' + (end - start);\n    // }\n  },\n\n  /**\n   * Mark and repaint the canvas in the next frame of browser\n   */\n  refresh: function () {\n    this._needsRefresh = true;\n  },\n\n  /**\n   * Perform all refresh\n   */\n  flush: function () {\n    var triggerRendered;\n\n    if (this._needsRefresh) {\n      triggerRendered = true;\n      this.refreshImmediately();\n    }\n\n    if (this._needsRefreshHover) {\n      triggerRendered = true;\n      this.refreshHoverImmediately();\n    }\n\n    triggerRendered && this.trigger('rendered');\n  },\n\n  /**\n   * Add element to hover layer\n   * @param  {module:zrender/Element} el\n   * @param {Object} style\n   */\n  addHover: function (el, style) {\n    if (this.painter.addHover) {\n      this.painter.addHover(el, style);\n      this.refreshHover();\n    }\n  },\n\n  /**\n   * Add element from hover layer\n   * @param  {module:zrender/Element} el\n   */\n  removeHover: function (el) {\n    if (this.painter.removeHover) {\n      this.painter.removeHover(el);\n      this.refreshHover();\n    }\n  },\n\n  /**\n   * Clear all hover elements in hover layer\n   * @param  {module:zrender/Element} el\n   */\n  clearHover: function () {\n    if (this.painter.clearHover) {\n      this.painter.clearHover();\n      this.refreshHover();\n    }\n  },\n\n  /**\n   * Refresh hover in next frame\n   */\n  refreshHover: function () {\n    this._needsRefreshHover = true;\n  },\n\n  /**\n   * Refresh hover immediately\n   */\n  refreshHoverImmediately: function () {\n    this._needsRefreshHover = false;\n    this.painter.refreshHover && this.painter.refreshHover();\n  },\n\n  /**\n   * Resize the canvas.\n   * Should be invoked when container size is changed\n   * @param {Object} [opts]\n   * @param {number|string} [opts.width] Can be 'auto' (the same as null/undefined)\n   * @param {number|string} [opts.height] Can be 'auto' (the same as null/undefined)\n   */\n  resize: function (opts) {\n    opts = opts || {};\n    this.painter.resize(opts.width, opts.height);\n    this.handler.resize();\n  },\n\n  /**\n   * Stop and clear all animation immediately\n   */\n  clearAnimation: function () {\n    this.animation.clear();\n  },\n\n  /**\n   * Get container width\n   */\n  getWidth: function () {\n    return this.painter.getWidth();\n  },\n\n  /**\n   * Get container height\n   */\n  getHeight: function () {\n    return this.painter.getHeight();\n  },\n\n  /**\n   * Export the canvas as Base64 URL\n   * @param {string} type\n   * @param {string} [backgroundColor='#fff']\n   * @return {string} Base64 URL\n   */\n  // toDataURL: function(type, backgroundColor) {\n  //     return this.painter.getRenderedCanvas({\n  //         backgroundColor: backgroundColor\n  //     }).toDataURL(type);\n  // },\n\n  /**\n   * Converting a path to image.\n   * It has much better performance of drawing image rather than drawing a vector path.\n   * @param {module:zrender/graphic/Path} e\n   * @param {number} width\n   * @param {number} height\n   */\n  pathToImage: function (e, dpr) {\n    return this.painter.pathToImage(e, dpr);\n  },\n\n  /**\n   * Set default cursor\n   * @param {string} [cursorStyle='default'] 渚嬪 crosshair\n   */\n  setCursorStyle: function (cursorStyle) {\n    this.handler.setCursorStyle(cursorStyle);\n  },\n\n  /**\n   * Find hovered element\n   * @param {number} x\n   * @param {number} y\n   * @return {Object} {target, topTarget}\n   */\n  findHover: function (x, y) {\n    return this.handler.findHover(x, y);\n  },\n\n  /**\n   * Bind event\n   *\n   * @param {string} eventName Event name\n   * @param {Function} eventHandler Handler function\n   * @param {Object} [context] Context object\n   */\n  on: function (eventName, eventHandler, context) {\n    this.handler.on(eventName, eventHandler, context);\n  },\n\n  /**\n   * Unbind event\n   * @param {string} eventName Event name\n   * @param {Function} [eventHandler] Handler function\n   */\n  off: function (eventName, eventHandler) {\n    this.handler.off(eventName, eventHandler);\n  },\n\n  /**\n   * Trigger event manually\n   *\n   * @param {string} eventName Event name\n   * @param {event=} event Event object\n   */\n  trigger: function (eventName, event) {\n    this.handler.trigger(eventName, event);\n  },\n\n  /**\n   * Clear all objects and the canvas.\n   */\n  clear: function () {\n    this.storage.delRoot();\n    this.painter.clear();\n  },\n\n  /**\n   * Dispose self.\n   */\n  dispose: function () {\n    this.animation.stop();\n    this.clear();\n    this.storage.dispose();\n    this.painter.dispose();\n    this.handler.dispose();\n    this.animation = this.storage = this.painter = this.handler = null;\n    delInstance(this.id);\n  }\n};\nexports.version = version;\nexports.init = init;\nexports.dispose = dispose;\nexports.getInstance = getInstance;\nexports.registerPainter = registerPainter;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/zrender.js\n// module id = qpbZ\n// module chunks = 0","var RadiusAxis = require(\"./RadiusAxis\");\n\nvar AngleAxis = require(\"./AngleAxis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/coord/polar/Polar\n */\n\n/**\n * @alias {module:echarts/coord/polar/Polar}\n * @constructor\n * @param {string} name\n */\nvar Polar = function (name) {\n  /**\n   * @type {string}\n   */\n  this.name = name || '';\n  /**\n   * x of polar center\n   * @type {number}\n   */\n\n  this.cx = 0;\n  /**\n   * y of polar center\n   * @type {number}\n   */\n\n  this.cy = 0;\n  /**\n   * @type {module:echarts/coord/polar/RadiusAxis}\n   * @private\n   */\n\n  this._radiusAxis = new RadiusAxis();\n  /**\n   * @type {module:echarts/coord/polar/AngleAxis}\n   * @private\n   */\n\n  this._angleAxis = new AngleAxis();\n  this._radiusAxis.polar = this._angleAxis.polar = this;\n};\n\nPolar.prototype = {\n  type: 'polar',\n  axisPointerEnabled: true,\n  constructor: Polar,\n\n  /**\n   * @param {Array.<string>}\n   * @readOnly\n   */\n  dimensions: ['radius', 'angle'],\n\n  /**\n   * @type {module:echarts/coord/PolarModel}\n   */\n  model: null,\n\n  /**\n   * If contain coord\n   * @param {Array.<number>} point\n   * @return {boolean}\n   */\n  containPoint: function (point) {\n    var coord = this.pointToCoord(point);\n    return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n  },\n\n  /**\n   * If contain data\n   * @param {Array.<number>} data\n   * @return {boolean}\n   */\n  containData: function (data) {\n    return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n  },\n\n  /**\n   * @param {string} dim\n   * @return {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n   */\n  getAxis: function (dim) {\n    return this['_' + dim + 'Axis'];\n  },\n\n  /**\n   * @return {Array.<module:echarts/coord/Axis>}\n   */\n  getAxes: function () {\n    return [this._radiusAxis, this._angleAxis];\n  },\n\n  /**\n   * Get axes by type of scale\n   * @param {string} scaleType\n   * @return {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n   */\n  getAxesByScale: function (scaleType) {\n    var axes = [];\n    var angleAxis = this._angleAxis;\n    var radiusAxis = this._radiusAxis;\n    angleAxis.scale.type === scaleType && axes.push(angleAxis);\n    radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n    return axes;\n  },\n\n  /**\n   * @return {module:echarts/coord/polar/AngleAxis}\n   */\n  getAngleAxis: function () {\n    return this._angleAxis;\n  },\n\n  /**\n   * @return {module:echarts/coord/polar/RadiusAxis}\n   */\n  getRadiusAxis: function () {\n    return this._radiusAxis;\n  },\n\n  /**\n   * @param {module:echarts/coord/polar/Axis}\n   * @return {module:echarts/coord/polar/Axis}\n   */\n  getOtherAxis: function (axis) {\n    var angleAxis = this._angleAxis;\n    return axis === angleAxis ? this._radiusAxis : angleAxis;\n  },\n\n  /**\n   * Base axis will be used on stacking.\n   *\n   * @return {module:echarts/coord/polar/Axis}\n   */\n  getBaseAxis: function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n  },\n\n  /**\n   * @param {string} [dim] 'radius' or 'angle' or 'auto' or null/undefined\n   * @return {Object} {baseAxes: [], otherAxes: []}\n   */\n  getTooltipAxes: function (dim) {\n    var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n    return {\n      baseAxes: [baseAxis],\n      otherAxes: [this.getOtherAxis(baseAxis)]\n    };\n  },\n\n  /**\n   * Convert a single data item to (x, y) point.\n   * Parameter data is an array which the first element is radius and the second is angle\n   * @param {Array.<number>} data\n   * @param {boolean} [clamp=false]\n   * @return {Array.<number>}\n   */\n  dataToPoint: function (data, clamp) {\n    return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n  },\n\n  /**\n   * Convert a (x, y) point to data\n   * @param {Array.<number>} point\n   * @param {boolean} [clamp=false]\n   * @return {Array.<number>}\n   */\n  pointToData: function (point, clamp) {\n    var coord = this.pointToCoord(point);\n    return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n  },\n\n  /**\n   * Convert a (x, y) point to (radius, angle) coord\n   * @param {Array.<number>} point\n   * @return {Array.<number>}\n   */\n  pointToCoord: function (point) {\n    var dx = point[0] - this.cx;\n    var dy = point[1] - this.cy;\n    var angleAxis = this.getAngleAxis();\n    var extent = angleAxis.getExtent();\n    var minAngle = Math.min(extent[0], extent[1]);\n    var maxAngle = Math.max(extent[0], extent[1]); // Fix fixed extent in polarCreator\n    // FIXME\n\n    angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx) / Math.PI * 180; // move to angleExtent\n\n    var dir = radian < minAngle ? 1 : -1;\n\n    while (radian < minAngle || radian > maxAngle) {\n      radian += dir * 360;\n    }\n\n    return [radius, radian];\n  },\n\n  /**\n   * Convert a (radius, angle) coord to (x, y) point\n   * @param {Array.<number>} coord\n   * @return {Array.<number>}\n   */\n  coordToPoint: function (coord) {\n    var radius = coord[0];\n    var radian = coord[1] / 180 * Math.PI;\n    var x = Math.cos(radian) * radius + this.cx; // Inverse the y\n\n    var y = -Math.sin(radian) * radius + this.cy;\n    return [x, y];\n  }\n};\nvar _default = Polar;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/coord/polar/Polar.js\n// module id = qs+o\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_defined.js\n// module id = r2gs\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar SymbolDraw = require(\"../../chart/helper/SymbolDraw\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar List = require(\"../../data/List\");\n\nvar markerHelper = require(\"./markerHelper\");\n\nvar MarkerView = require(\"./MarkerView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  mpData.each(function (idx) {\n    var itemModel = mpData.getItemModel(idx);\n    var point;\n    var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n    var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n    if (!isNaN(xPx) && !isNaN(yPx)) {\n      point = [xPx, yPx];\n    } // Chart like bar may have there own marker positioning logic\n    else if (seriesModel.getMarkerPosition) {\n        // Use the getMarkerPoisition\n        point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n      } else if (coordSys) {\n        var x = mpData.get(coordSys.dimensions[0], idx);\n        var y = mpData.get(coordSys.dimensions[1], idx);\n        point = coordSys.dataToPoint([x, y]);\n      } // Use x, y if has any\n\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n\n    mpData.setItemLayout(idx, point);\n  });\n}\n\nvar _default = MarkerView.extend({\n  type: 'markPoint',\n  // updateLayout: function (markPointModel, ecModel, api) {\n  //     ecModel.eachSeries(function (seriesModel) {\n  //         var mpModel = seriesModel.markPointModel;\n  //         if (mpModel) {\n  //             updateMarkerLayout(mpModel.getData(), seriesModel, api);\n  //             this.markerGroupMap.get(seriesModel.id).updateLayout(mpModel);\n  //         }\n  //     }, this);\n  // },\n  updateTransform: function (markPointModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mpModel = seriesModel.markPointModel;\n\n      if (mpModel) {\n        updateMarkerLayout(mpModel.getData(), seriesModel, api);\n        this.markerGroupMap.get(seriesModel.id).updateLayout(mpModel);\n      }\n    }, this);\n  },\n  renderSeries: function (seriesModel, mpModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var symbolDrawMap = this.markerGroupMap;\n    var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n    var mpData = createList(coordSys, seriesModel, mpModel); // FIXME\n\n    mpModel.setData(mpData);\n    updateMarkerLayout(mpModel.getData(), seriesModel, api);\n    mpData.each(function (idx) {\n      var itemModel = mpData.getItemModel(idx);\n      var symbolSize = itemModel.getShallow('symbolSize');\n\n      if (typeof symbolSize === 'function') {\n        // FIXME 杩欓噷涓嶅吋瀹� ECharts 2.x锛�2.x 璨屼技鍙傛暟鏄暣涓暟鎹紵\n        symbolSize = symbolSize(mpModel.getRawValue(idx), mpModel.getDataParams(idx));\n      }\n\n      mpData.setItemVisual(idx, {\n        symbolSize: symbolSize,\n        color: itemModel.get('itemStyle.color') || seriesData.getVisual('color'),\n        symbol: itemModel.getShallow('symbol')\n      });\n    }); // TODO Text are wrong\n\n    symbolDraw.updateData(mpData);\n    this.group.add(symbolDraw.group); // Set host model for tooltip\n    // FIXME\n\n    mpData.eachItemGraphicEl(function (el) {\n      el.traverse(function (child) {\n        child.dataModel = mpModel;\n      });\n    });\n    symbolDraw.__keep = true;\n    symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n  }\n});\n/**\n * @inner\n * @param {module:echarts/coord/*} [coordSys]\n * @param {module:echarts/model/Series} seriesModel\n * @param {module:echarts/model/Model} mpModel\n */\n\n\nfunction createList(coordSys, seriesModel, mpModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n      return zrUtil.defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var mpData = new List(coordDimsInfos, mpModel);\n  var dataOpt = zrUtil.map(mpModel.get('data'), zrUtil.curry(markerHelper.dataTransform, seriesModel));\n\n  if (coordSys) {\n    dataOpt = zrUtil.filter(dataOpt, zrUtil.curry(markerHelper.dataFilter, coordSys));\n  }\n\n  mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  });\n  return mpData;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkPointView.js\n// module id = r2sT\n// module chunks = 0","var Path = require(\"../Path\");\n\nvar polyHelper = require(\"../helper/poly\");\n\n/**\n * @module zrender/graphic/shape/Polyline\n */\nvar _default = Path.extend({\n  type: 'polyline',\n  shape: {\n    points: null,\n    smooth: false,\n    smoothConstraint: null\n  },\n  style: {\n    stroke: '#000',\n    fill: null\n  },\n  buildPath: function (ctx, shape) {\n    polyHelper.buildPath(ctx, shape, false);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Polyline.js\n// module id = r4mD\n// module chunks = 0","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_user-agent.js\n// module id = rJT0\n// module chunks = 0","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_species-constructor.js\n// module id = rKE2\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\n\nfunction _default(option, isNew) {\n  var brushComponents = option && option.brush;\n\n  if (!zrUtil.isArray(brushComponents)) {\n    brushComponents = brushComponents ? [brushComponents] : [];\n  }\n\n  if (!brushComponents.length) {\n    return;\n  }\n\n  var brushComponentSpecifiedBtns = [];\n  zrUtil.each(brushComponents, function (brushOpt) {\n    var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n    if (tbs instanceof Array) {\n      brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n    }\n  });\n  var toolbox = option && option.toolbox;\n\n  if (zrUtil.isArray(toolbox)) {\n    toolbox = toolbox[0];\n  }\n\n  if (!toolbox) {\n    toolbox = {\n      feature: {}\n    };\n    option.toolbox = [toolbox];\n  }\n\n  var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n  var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n  var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n  brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n  removeDuplicate(brushTypes);\n\n  if (isNew && !brushTypes.length) {\n    brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n  }\n}\n\nfunction removeDuplicate(arr) {\n  var map = {};\n  zrUtil.each(arr, function (val) {\n    map[val] = 1;\n  });\n  arr.length = 0;\n  zrUtil.each(map, function (flag, val) {\n    arr.push(val);\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/brush/preprocessor.js\n// module id = rNYg\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar LegendView = require(\"./LegendView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = LegendView.extend({\n  type: 'legend.scroll',\n  newlineDisabled: true,\n  init: function () {\n    ScrollableLegendView.superCall(this, 'init');\n    /**\n     * @private\n     * @type {number} For `scroll`.\n     */\n\n    this._currentIndex = 0;\n    /**\n     * @private\n     * @type {module:zrender/container/Group}\n     */\n\n    this.group.add(this._containerGroup = new Group());\n\n    this._containerGroup.add(this.getContentGroup());\n    /**\n     * @private\n     * @type {module:zrender/container/Group}\n     */\n\n\n    this.group.add(this._controllerGroup = new Group());\n    /**\n     *\n     * @private\n     */\n\n    this._showController;\n  },\n\n  /**\n   * @override\n   */\n  resetInner: function () {\n    ScrollableLegendView.superCall(this, 'resetInner');\n\n    this._controllerGroup.removeAll();\n\n    this._containerGroup.removeClipPath();\n\n    this._containerGroup.__rectSize = null;\n  },\n\n  /**\n   * @override\n   */\n  renderInner: function (itemAlign, legendModel, ecModel, api) {\n    var me = this; // Render content items.\n\n    ScrollableLegendView.superCall(this, 'renderInner', itemAlign, legendModel, ecModel, api);\n    var controllerGroup = this._controllerGroup;\n    var pageIconSize = legendModel.get('pageIconSize', true);\n\n    if (!zrUtil.isArray(pageIconSize)) {\n      pageIconSize = [pageIconSize, pageIconSize];\n    }\n\n    createPageButton('pagePrev', 0);\n    var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n    controllerGroup.add(new graphic.Text({\n      name: 'pageText',\n      style: {\n        textFill: pageTextStyleModel.getTextColor(),\n        font: pageTextStyleModel.getFont(),\n        textVerticalAlign: 'middle',\n        textAlign: 'center'\n      },\n      silent: true\n    }));\n    createPageButton('pageNext', 1);\n\n    function createPageButton(name, iconIdx) {\n      var pageDataIndexName = name + 'DataIndex';\n      var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n        // Buttons will be created in each render, so we do not need\n        // to worry about avoiding using legendModel kept in scope.\n        onclick: zrUtil.bind(me._pageGo, me, pageDataIndexName, legendModel, api)\n      }, {\n        x: -pageIconSize[0] / 2,\n        y: -pageIconSize[1] / 2,\n        width: pageIconSize[0],\n        height: pageIconSize[1]\n      });\n      icon.name = name;\n      controllerGroup.add(icon);\n    }\n  },\n\n  /**\n   * @override\n   */\n  layoutInner: function (legendModel, itemAlign, maxSize) {\n    var contentGroup = this.getContentGroup();\n    var containerGroup = this._containerGroup;\n    var controllerGroup = this._controllerGroup;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var yx = XY[1 - orientIdx]; // Place items in contentGroup.\n\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n    layoutUtil.box( // Buttons in controller are layout always horizontally.\n    'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n    var contentRect = contentGroup.getBoundingRect();\n    var controllerRect = controllerGroup.getBoundingRect();\n    var showController = this._showController = contentRect[wh] > maxSize[wh];\n    var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming.\n\n    contentPos[orientIdx] = contentGroup.position[orientIdx]; // Layout container group based on 0.\n\n    var containerPos = [0, 0];\n    var controllerPos = [-controllerRect.x, -controllerRect.y];\n    var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup.\n\n    if (showController) {\n      var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n      if (pageButtonPosition === 'end') {\n        controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n      } // controller is on the left / top.\n      else {\n          containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n        }\n    } // Always align controller to content as 'middle'.\n\n\n    controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n    contentGroup.attr('position', contentPos);\n    containerGroup.attr('position', containerPos);\n    controllerGroup.attr('position', controllerPos); // Calculate `mainRect` and set `clipPath`.\n    // mainRect should not be calculated by `this.group.getBoundingRect()`\n    // for sake of the overflow.\n\n    var mainRect = this.group.getBoundingRect();\n    var mainRect = {\n      x: 0,\n      y: 0\n    }; // Consider content may be overflow (should be clipped).\n\n    mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n    mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\n    mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n    containerGroup.__rectSize = maxSize[wh];\n\n    if (showController) {\n      var clipShape = {\n        x: 0,\n        y: 0\n      };\n      clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n      clipShape[hw] = mainRect[hw];\n      containerGroup.setClipPath(new graphic.Rect({\n        shape: clipShape\n      })); // Consider content may be larger than container, container rect\n      // can not be obtained from `containerGroup.getBoundingRect()`.\n\n      containerGroup.__rectSize = clipShape[wh];\n    } else {\n      // Do not remove or ignore controller. Keep them set as place holders.\n      controllerGroup.eachChild(function (child) {\n        child.attr({\n          invisible: true,\n          silent: true\n        });\n      });\n    } // Content translate animation.\n\n\n    var pageInfo = this._getPageInfo(legendModel);\n\n    pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n      position: pageInfo.contentPosition\n    }, // When switch from \"show controller\" to \"not show controller\", view should be\n    // updated immediately without animation, otherwise causes weird efffect.\n    showController ? legendModel : false);\n\n    this._updatePageInfoView(legendModel, pageInfo);\n\n    return mainRect;\n  },\n  _pageGo: function (to, legendModel, api) {\n    var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n    scrollDataIndex != null && api.dispatchAction({\n      type: 'legendScroll',\n      scrollDataIndex: scrollDataIndex,\n      legendId: legendModel.id\n    });\n  },\n  _updatePageInfoView: function (legendModel, pageInfo) {\n    var controllerGroup = this._controllerGroup;\n    zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n      var canJump = pageInfo[name + 'DataIndex'] != null;\n      var icon = controllerGroup.childOfName(name);\n\n      if (icon) {\n        icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n        icon.cursor = canJump ? 'pointer' : 'default';\n      }\n    });\n    var pageText = controllerGroup.childOfName('pageText');\n    var pageFormatter = legendModel.get('pageFormatter');\n    var pageIndex = pageInfo.pageIndex;\n    var current = pageIndex != null ? pageIndex + 1 : 0;\n    var total = pageInfo.pageCount;\n    pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current).replace('{total}', total) : pageFormatter({\n      current: current,\n      total: total\n    }));\n  },\n\n  /**\n   * @param {module:echarts/model/Model} legendModel\n   * @return {Object} {\n   *  contentPosition: Array.<number>, null when data item not found.\n   *  pageIndex: number, null when data item not found.\n   *  pageCount: number, always be a number, can be 0.\n   *  pagePrevDataIndex: number, null when no next page.\n   *  pageNextDataIndex: number, null when no previous page.\n   * }\n   */\n  _getPageInfo: function (legendModel) {\n    // Align left or top by the current dataIndex.\n    var currDataIndex = legendModel.get('scrollDataIndex', true);\n    var contentGroup = this.getContentGroup();\n    var contentRect = contentGroup.getBoundingRect();\n    var containerRectSize = this._containerGroup.__rectSize;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var xy = XY[orientIdx];\n    var contentPos = contentGroup.position.slice();\n    var pageIndex;\n    var pagePrevDataIndex;\n    var pageNextDataIndex;\n    var targetItemGroup;\n\n    if (this._showController) {\n      contentGroup.eachChild(function (child) {\n        if (child.__legendDataIndex === currDataIndex) {\n          targetItemGroup = child;\n        }\n      });\n    } else {\n      targetItemGroup = contentGroup.childAt(0);\n    }\n\n    var pageCount = containerRectSize ? Math.ceil(contentRect[wh] / containerRectSize) : 0;\n\n    if (targetItemGroup) {\n      var itemRect = targetItemGroup.getBoundingRect();\n      var itemLoc = targetItemGroup.position[orientIdx] + itemRect[xy];\n      contentPos[orientIdx] = -itemLoc - contentRect[xy];\n      pageIndex = Math.floor(pageCount * (itemLoc + itemRect[xy] + containerRectSize / 2) / contentRect[wh]);\n      pageIndex = contentRect[wh] && pageCount ? Math.max(0, Math.min(pageCount - 1, pageIndex)) : -1;\n      var winRect = {\n        x: 0,\n        y: 0\n      };\n      winRect[wh] = containerRectSize;\n      winRect[hw] = contentRect[hw];\n      winRect[xy] = -contentPos[orientIdx] - contentRect[xy];\n      var startIdx;\n      var children = contentGroup.children();\n      contentGroup.eachChild(function (child, index) {\n        var itemRect = getItemRect(child);\n\n        if (itemRect.intersect(winRect)) {\n          startIdx == null && (startIdx = index); // It is user-friendly that the last item shown in the\n          // current window is shown at the begining of next window.\n\n          pageNextDataIndex = child.__legendDataIndex;\n        } // If the last item is shown entirely, no next page.\n\n\n        if (index === children.length - 1 && itemRect[xy] + itemRect[wh] <= winRect[xy] + winRect[wh]) {\n          pageNextDataIndex = null;\n        }\n      }); // Always align based on the left/top most item, so the left/top most\n      // item in the previous window is needed to be found here.\n\n      if (startIdx != null) {\n        var startItem = children[startIdx];\n        var startRect = getItemRect(startItem);\n        winRect[xy] = startRect[xy] + startRect[wh] - winRect[wh]; // If the first item is shown entirely, no previous page.\n\n        if (startIdx <= 0 && startRect[xy] >= winRect[xy]) {\n          pagePrevDataIndex = null;\n        } else {\n          while (startIdx > 0 && getItemRect(children[startIdx - 1]).intersect(winRect)) {\n            startIdx--;\n          }\n\n          pagePrevDataIndex = children[startIdx].__legendDataIndex;\n        }\n      }\n    }\n\n    return {\n      contentPosition: contentPos,\n      pageIndex: pageIndex,\n      pageCount: pageCount,\n      pagePrevDataIndex: pagePrevDataIndex,\n      pageNextDataIndex: pageNextDataIndex\n    };\n\n    function getItemRect(el) {\n      var itemRect = el.getBoundingRect().clone();\n      itemRect[xy] += el.position[orientIdx];\n      return itemRect;\n    }\n  }\n});\nvar _default = ScrollableLegendView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/legend/ScrollableLegendView.js\n// module id = rSbl\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/promise\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/promise.js\n// module id = rVsN\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar Graph = require(\"../../data/Graph\");\n\nvar linkList = require(\"../../data/helper/linkList\");\n\nvar createDimensions = require(\"../../data/helper/createDimensions\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar createListFromArray = require(\"./createListFromArray\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(nodes, edges, seriesModel, directed, beforeLink) {\n  // ??? TODO\n  // support dataset?\n  var graph = new Graph(directed);\n\n  for (var i = 0; i < nodes.length; i++) {\n    graph.addNode(zrUtil.retrieve( // Id, name, dataIndex\n    nodes[i].id, nodes[i].name, i), i);\n  }\n\n  var linkNameList = [];\n  var validEdges = [];\n  var linkCount = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    var link = edges[i];\n    var source = link.source;\n    var target = link.target; // addEdge may fail when source or target not exists\n\n    if (graph.addEdge(source, target, linkCount)) {\n      validEdges.push(link);\n      linkNameList.push(zrUtil.retrieve(link.id, source + ' > ' + target));\n      linkCount++;\n    }\n  }\n\n  var coordSys = seriesModel.get('coordinateSystem');\n  var nodeData;\n\n  if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n    nodeData = createListFromArray(nodes, seriesModel);\n  } else {\n    var coordSysCtor = CoordinateSystem.get(coordSys);\n    var coordDimensions = coordSysCtor && coordSysCtor.type !== 'view' ? coordSysCtor.dimensions || [] : []; // FIXME: Some geo do not need `value` dimenson, whereas `calendar` needs\n    // `value` dimension, but graph need `value` dimension. It's better to\n    // uniform this behavior.\n\n    if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n      coordDimensions.concat(['value']);\n    }\n\n    var dimensionNames = createDimensions(nodes, {\n      coordDimensions: coordDimensions\n    });\n    nodeData = new List(dimensionNames, seriesModel);\n    nodeData.initData(nodes);\n  }\n\n  var edgeData = new List(['value'], seriesModel);\n  edgeData.initData(validEdges, linkNameList);\n  beforeLink && beforeLink(nodeData, edgeData);\n  linkList({\n    mainData: nodeData,\n    struct: graph,\n    structAttr: 'graph',\n    datas: {\n      node: nodeData,\n      edge: edgeData\n    },\n    datasAttr: {\n      node: 'data',\n      edge: 'edgeData'\n    }\n  }); // Update dataIndex of nodes and edges because invalid edge may be removed\n\n  graph.update();\n  return graph;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/helper/createGraphFromNodeEdge.js\n// module id = rcR3\n// module chunks = 0","var eventUtil = require(\"./event\");\n\n/**\n * Only implements needed gestures for mobile.\n */\nvar GestureMgr = function () {\n  /**\n   * @private\n   * @type {Array.<Object>}\n   */\n  this._track = [];\n};\n\nGestureMgr.prototype = {\n  constructor: GestureMgr,\n  recognize: function (event, target, root) {\n    this._doTrack(event, target, root);\n\n    return this._recognize(event);\n  },\n  clear: function () {\n    this._track.length = 0;\n    return this;\n  },\n  _doTrack: function (event, target, root) {\n    var touches = event.touches;\n\n    if (!touches) {\n      return;\n    }\n\n    var trackItem = {\n      points: [],\n      touches: [],\n      target: target,\n      event: event\n    };\n\n    for (var i = 0, len = touches.length; i < len; i++) {\n      var touch = touches[i];\n      var pos = eventUtil.clientToLocal(root, touch, {});\n      trackItem.points.push([pos.zrX, pos.zrY]);\n      trackItem.touches.push(touch);\n    }\n\n    this._track.push(trackItem);\n  },\n  _recognize: function (event) {\n    for (var eventName in recognizers) {\n      if (recognizers.hasOwnProperty(eventName)) {\n        var gestureInfo = recognizers[eventName](this._track, event);\n\n        if (gestureInfo) {\n          return gestureInfo;\n        }\n      }\n    }\n  }\n};\n\nfunction dist(pointPair) {\n  var dx = pointPair[1][0] - pointPair[0][0];\n  var dy = pointPair[1][1] - pointPair[0][1];\n  return Math.sqrt(dx * dx + dy * dy);\n}\n\nfunction center(pointPair) {\n  return [(pointPair[0][0] + pointPair[1][0]) / 2, (pointPair[0][1] + pointPair[1][1]) / 2];\n}\n\nvar recognizers = {\n  pinch: function (track, event) {\n    var trackLen = track.length;\n\n    if (!trackLen) {\n      return;\n    }\n\n    var pinchEnd = (track[trackLen - 1] || {}).points;\n    var pinchPre = (track[trackLen - 2] || {}).points || pinchEnd;\n\n    if (pinchPre && pinchPre.length > 1 && pinchEnd && pinchEnd.length > 1) {\n      var pinchScale = dist(pinchEnd) / dist(pinchPre);\n      !isFinite(pinchScale) && (pinchScale = 1);\n      event.pinchScale = pinchScale;\n      var pinchCenter = center(pinchEnd);\n      event.pinchX = pinchCenter[0];\n      event.pinchY = pinchCenter[1];\n      return {\n        type: 'pinch',\n        target: track[0].target,\n        event: event\n      };\n    }\n  } // Only pinch currently.\n\n};\nvar _default = GestureMgr;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/GestureMgr.js\n// module id = rksO\n// module chunks = 0","var formatUtil = require(\"../../util/format\");\n\nvar BaseAxisPointer = require(\"./BaseAxisPointer\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar viewHelper = require(\"./viewHelper\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar AxisBuilder = require(\"../axis/AxisBuilder\");\n\nvar AxisView = require(\"../axis/AxisView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar PolarAxisPointer = BaseAxisPointer.extend({\n  /**\n   * @override\n   */\n  makeElOption: function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n\n    if (axis.dim === 'angle') {\n      this.animationThreshold = Math.PI / 18;\n    }\n\n    var polar = axis.polar;\n    var otherAxis = polar.getOtherAxis(axis);\n    var otherExtent = otherAxis.getExtent();\n    var coordValue;\n    coordValue = axis['dataTo' + formatUtil.capitalFirst(axis.dim)](value);\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent, elStyle);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var labelMargin = axisPointerModel.get('label.margin');\n    var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n    viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n  } // Do not support handle, utill any user requires it.\n\n});\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n  var axis = axisModel.axis;\n  var coord = axis.dataToCoord(value);\n  var axisAngle = polar.getAngleAxis().getExtent()[0];\n  axisAngle = axisAngle / 180 * Math.PI;\n  var radiusExtent = polar.getRadiusAxis().getExtent();\n  var position;\n  var align;\n  var verticalAlign;\n\n  if (axis.dim === 'radius') {\n    var transform = matrix.create();\n    matrix.rotate(transform, transform, axisAngle);\n    matrix.translate(transform, transform, [polar.cx, polar.cy]);\n    position = graphic.applyTransform([coord, -labelMargin], transform);\n    var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\n    var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n    align = labelLayout.textAlign;\n    verticalAlign = labelLayout.textVerticalAlign;\n  } else {\n    // angle axis\n    var r = radiusExtent[1];\n    position = polar.coordToPoint([r + labelMargin, coord]);\n    var cx = polar.cx;\n    var cy = polar.cy;\n    align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n    verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n  }\n\n  return {\n    position: position,\n    align: align,\n    verticalAlign: verticalAlign\n  };\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, polar, coordValue, otherExtent, elStyle) {\n    return axis.dim === 'angle' ? {\n      type: 'Line',\n      shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n    } : {\n      type: 'Circle',\n      shape: {\n        cx: polar.cx,\n        cy: polar.cy,\n        r: coordValue\n      }\n    };\n  },\n  shadow: function (axis, polar, coordValue, otherExtent, elStyle) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var radian = Math.PI / 180;\n    return axis.dim === 'angle' ? {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], // In ECharts y is negative if angle is positive\n      (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n    } : {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n    };\n  }\n};\nAxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\nvar _default = PolarAxisPointer;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/PolarAxisPointer.js\n// module id = rlNm\n// module chunks = 0","var textContain = require(\"zrender/lib/contain/text\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME emphasis label position is not same with normal label position\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight) {\n  list.sort(function (a, b) {\n    return a.y - b.y;\n  }); // 鍘媆n\n  function shiftDown(start, end, delta, dir) {\n    for (var j = start; j < end; j++) {\n      list[j].y += delta;\n\n      if (j > start && j + 1 < end && list[j + 1].y > list[j].y + list[j].height) {\n        shiftUp(j, delta / 2);\n        return;\n      }\n    }\n\n    shiftUp(end - 1, delta / 2);\n  } // 寮筡n\n\n  function shiftUp(end, delta) {\n    for (var j = end; j >= 0; j--) {\n      list[j].y -= delta;\n\n      if (j > 0 && list[j].y > list[j - 1].y + list[j - 1].height) {\n        break;\n      }\n    }\n  }\n\n  function changeX(list, isDownList, cx, cy, r, dir) {\n    var lastDeltaX = dir > 0 ? isDownList // 鍙充晶\n    ? Number.MAX_VALUE // 涓媆n    : 0 // 涓奬n    : isDownList // 宸︿晶\n    ? Number.MAX_VALUE // 涓媆n    : 0; // 涓奬n\n    for (var i = 0, l = list.length; i < l; i++) {\n      // Not change x for center label\n      if (list[i].position === 'center') {\n        continue;\n      }\n\n      var deltaY = Math.abs(list[i].y - cy);\n      var length = list[i].len;\n      var length2 = list[i].len2;\n      var deltaX = deltaY < r + length ? Math.sqrt((r + length + length2) * (r + length + length2) - deltaY * deltaY) : Math.abs(list[i].x - cx);\n\n      if (isDownList && deltaX >= lastDeltaX) {\n        // 鍙充笅锛屽乏涓媆n        deltaX = lastDeltaX - 10;\n      }\n\n      if (!isDownList && deltaX <= lastDeltaX) {\n        // 鍙充笂锛屽乏涓奬n        deltaX = lastDeltaX + 10;\n      }\n\n      list[i].x = cx + deltaX * dir;\n      lastDeltaX = deltaX;\n    }\n  }\n\n  var lastY = 0;\n  var delta;\n  var len = list.length;\n  var upList = [];\n  var downList = [];\n\n  for (var i = 0; i < len; i++) {\n    delta = list[i].y - lastY;\n\n    if (delta < 0) {\n      shiftDown(i, len, -delta, dir);\n    }\n\n    lastY = list[i].y + list[i].height;\n  }\n\n  if (viewHeight - lastY < 0) {\n    shiftUp(len - 1, lastY - viewHeight);\n  }\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].y >= cy) {\n      downList.push(list[i]);\n    } else {\n      upList.push(list[i]);\n    }\n  }\n\n  changeX(upList, false, cx, cy, r, dir);\n  changeX(downList, true, cx, cy, r, dir);\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight) {\n  var leftList = [];\n  var rightList = [];\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    if (labelLayoutList[i].x < cx) {\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var linePoints = labelLayoutList[i].linePoints;\n\n    if (linePoints) {\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (labelLayoutList[i].x < cx) {\n        linePoints[2][0] = labelLayoutList[i].x + 3;\n      } else {\n        linePoints[2][0] = labelLayoutList[i].x - 3;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = labelLayoutList[i].y;\n      linePoints[1][0] = linePoints[2][0] + dist;\n    }\n  }\n}\n\nfunction _default(seriesModel, r, viewWidth, viewHeight) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  data.each(function (idx) {\n    var layout = data.getItemLayout(idx);\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label'); // Use position in normal or emphasis\n\n    var labelPosition = labelModel.get('position') || itemModel.get('emphasis.label.position');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    var labelLineLen2 = labelLineModel.get('length2');\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var dx = Math.cos(midAngle);\n    var dy = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = layout.cx;\n    cy = layout.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = layout.cx;\n      textY = layout.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dx : layout.r * dx) + cx;\n      var y1 = (isLabelInside ? (layout.r + layout.r0) / 2 * dy : layout.r * dy) + cy;\n      textX = x1 + dx * 3;\n      textY = y1 + dy * 3;\n\n      if (!isLabelInside) {\n        // For roseType\n        var x2 = x1 + dx * (labelLineLen + r - layout.r);\n        var y2 = y1 + dy * (labelLineLen + r - layout.r);\n        var x3 = x2 + (dx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n        textX = x3 + (dx < 0 ? -5 : 5);\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : dx > 0 ? 'left' : 'right';\n    }\n\n    var font = labelModel.getFont();\n    var labelRotate = labelModel.get('rotate') ? dx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    var text = seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx);\n    var textRect = textContain.getBoundingRect(text, font, textAlign, 'top');\n    hasLabelRotate = !!labelRotate;\n    layout.label = {\n      x: textX,\n      y: textY,\n      position: labelPosition,\n      height: textRect.height,\n      len: labelLineLen,\n      len2: labelLineLen2,\n      linePoints: linePoints,\n      textAlign: textAlign,\n      verticalAlign: 'middle',\n      rotation: labelRotate,\n      inside: isLabelInside\n    }; // Not layout the inside label\n\n    if (!isLabelInside) {\n      labelLayoutList.push(layout.label);\n    }\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight);\n  }\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/pie/labelLayout.js\n// module id = roPK\n// module chunks = 0","var env = require(\"../../core/env\");\n\n// Fix weird bug in some version of IE11 (like 11.0.9600.178**),\n// where exception \"unexpected call to method or property access\"\n// might be thrown when calling ctx.fill or ctx.stroke after a path\n// whose area size is zero is drawn and ctx.clip() is called and\n// shadowBlur is set. See #4572, #3112, #5777.\n// (e.g.,\n//  ctx.moveTo(10, 10);\n//  ctx.lineTo(20, 10);\n//  ctx.closePath();\n//  ctx.clip();\n//  ctx.shadowBlur = 10;\n//  ...\n//  ctx.fill();\n// )\nvar shadowTemp = [['shadowBlur', 0], ['shadowColor', '#000'], ['shadowOffsetX', 0], ['shadowOffsetY', 0]];\n\nfunction _default(orignalBrush) {\n  // version string can be: '11.0'\n  return env.browser.ie && env.browser.version >= 11 ? function () {\n    var clipPaths = this.__clipPaths;\n    var style = this.style;\n    var modified;\n\n    if (clipPaths) {\n      for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        var shape = clipPath && clipPath.shape;\n        var type = clipPath && clipPath.type;\n\n        if (shape && (type === 'sector' && shape.startAngle === shape.endAngle || type === 'rect' && (!shape.width || !shape.height))) {\n          for (var j = 0; j < shadowTemp.length; j++) {\n            // It is save to put shadowTemp static, because shadowTemp\n            // will be all modified each item brush called.\n            shadowTemp[j][2] = style[shadowTemp[j][0]];\n            style[shadowTemp[j][0]] = shadowTemp[j][1];\n          }\n\n          modified = true;\n          break;\n        }\n      }\n    }\n\n    orignalBrush.apply(this, arguments);\n\n    if (modified) {\n      for (var j = 0; j < shadowTemp.length; j++) {\n        style[shadowTemp[j][0]] = shadowTemp[j][2];\n      }\n    }\n  } : orignalBrush;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/fixClipWithShadow.js\n// module id = rpne\n// module chunks = 0","// TODO Draggable for group\n// FIXME Draggable on element which has parent rotation or scale\nfunction Draggable() {\n  this.on('mousedown', this._dragStart, this);\n  this.on('mousemove', this._drag, this);\n  this.on('mouseup', this._dragEnd, this);\n  this.on('globalout', this._dragEnd, this); // this._dropTarget = null;\n  // this._draggingTarget = null;\n  // this._x = 0;\n  // this._y = 0;\n}\n\nDraggable.prototype = {\n  constructor: Draggable,\n  _dragStart: function (e) {\n    var draggingTarget = e.target;\n\n    if (draggingTarget && draggingTarget.draggable) {\n      this._draggingTarget = draggingTarget;\n      draggingTarget.dragging = true;\n      this._x = e.offsetX;\n      this._y = e.offsetY;\n      this.dispatchToElement(param(draggingTarget, e), 'dragstart', e.event);\n    }\n  },\n  _drag: function (e) {\n    var draggingTarget = this._draggingTarget;\n\n    if (draggingTarget) {\n      var x = e.offsetX;\n      var y = e.offsetY;\n      var dx = x - this._x;\n      var dy = y - this._y;\n      this._x = x;\n      this._y = y;\n      draggingTarget.drift(dx, dy, e);\n      this.dispatchToElement(param(draggingTarget, e), 'drag', e.event);\n      var dropTarget = this.findHover(x, y, draggingTarget).target;\n      var lastDropTarget = this._dropTarget;\n      this._dropTarget = dropTarget;\n\n      if (draggingTarget !== dropTarget) {\n        if (lastDropTarget && dropTarget !== lastDropTarget) {\n          this.dispatchToElement(param(lastDropTarget, e), 'dragleave', e.event);\n        }\n\n        if (dropTarget && dropTarget !== lastDropTarget) {\n          this.dispatchToElement(param(dropTarget, e), 'dragenter', e.event);\n        }\n      }\n    }\n  },\n  _dragEnd: function (e) {\n    var draggingTarget = this._draggingTarget;\n\n    if (draggingTarget) {\n      draggingTarget.dragging = false;\n    }\n\n    this.dispatchToElement(param(draggingTarget, e), 'dragend', e.event);\n\n    if (this._dropTarget) {\n      this.dispatchToElement(param(this._dropTarget, e), 'drop', e.event);\n    }\n\n    this._draggingTarget = null;\n    this._dropTarget = null;\n  }\n};\n\nfunction param(target, e) {\n  return {\n    target: target,\n    topTarget: e && e.topTarget\n  };\n}\n\nvar _default = Draggable;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/mixin/Draggable.js\n// module id = rsvB\n// module chunks = 0","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_promise-resolve.js\n// module id = s0K6\n// module chunks = 0","var createListFromArray = require(\"../helper/createListFromArray\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n  type: 'series.scatter',\n  dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],\n  getInitialData: function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  },\n  brushSelector: 'point',\n  getProgressive: function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      // PENDING\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  },\n  getProgressiveThreshold: function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      // PENDING\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  },\n  defaultOption: {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    hoverAnimation: true,\n    // Cartesian coordinate system\n    // xAxisIndex: 0,\n    // yAxisIndex: 0,\n    // Polar coordinate system\n    // polarIndex: 0,\n    // Geo coordinate system\n    // geoIndex: 0,\n    // symbol: null,        // 鍥惧舰绫诲瀷\n    symbolSize: 10,\n    // 鍥惧舰澶у皬锛屽崐瀹斤紙鍗婂緞锛夊弬鏁帮紝褰撳浘褰负鏂瑰悜鎴栬彵褰㈠垯鎬诲搴︿负symbolSize * 2\n    // symbolRotate: null,  // 鍥惧舰鏃嬭浆鎺у埗\n    large: false,\n    // Available when large is true\n    largeThreshold: 2000,\n    // cursor: null,\n    // label: {\n    // show: false\n    // distance: 5,\n    // formatter: 鏍囩鏂囨湰鏍煎紡鍣紝鍚孴ooltip.formatter锛屼笉鏀寔寮傛鍥炶皟\n    // position: 榛樿鑷�傚簲锛屾按骞冲竷灞�涓�'top'锛屽瀭鐩村竷灞�涓�'right'锛屽彲閫変负\n    //           'inside'|'left'|'right'|'top'|'bottom'\n    // 榛樿浣跨敤鍏ㄥ眬鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE\n    // },\n    itemStyle: {\n      opacity: 0.8 // color: 鍚勫紓\n      // progressive: null\n\n    }\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/scatter/ScatterSeries.js\n// module id = sB3v\n// module chunks = 0","var createRenderPlanner = require(\"../helper/createRenderPlanner\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar _default = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  // For legend.\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var isLargeRender = seriesModel.pipelineContext.large;\n    data.setVisual({\n      legendSymbol: 'roundRect',\n      colorP: getColor(1, seriesModel),\n      colorN: getColor(-1, seriesModel),\n      borderColorP: getBorderColor(1, seriesModel),\n      borderColorN: getBorderColor(-1, seriesModel)\n    }); // Only visible series has each data be visual encoded\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    return !isLargeRender && {\n      progress: progress\n    };\n\n    function progress(params, data) {\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var itemModel = data.getItemModel(dataIndex);\n        var sign = data.getItemLayout(dataIndex).sign;\n        data.setItemVisual(dataIndex, {\n          color: getColor(sign, itemModel),\n          borderColor: getBorderColor(sign, itemModel)\n        });\n      }\n    }\n\n    function getColor(sign, model) {\n      return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n    }\n\n    function getBorderColor(sign, model) {\n      return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n    }\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/candlestick/candlestickVisual.js\n// module id = sBnI\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\nvar helper = require(\"../helper/treeHelper\");\n\nvar Breadcrumb = require(\"./Breadcrumb\");\n\nvar RoamController = require(\"../../component/helper/RoamController\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar animationUtil = require(\"../../util/animation\");\n\nvar makeStyleMapper = require(\"../../model/mixin/makeStyleMapper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar bind = zrUtil.bind;\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar each = zrUtil.each;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = ['label'];\nvar PATH_LABEL_EMPHASIS = ['emphasis', 'label'];\nvar PATH_UPPERLABEL_NORMAL = ['upperLabel'];\nvar PATH_UPPERLABEL_EMPHASIS = ['emphasis', 'upperLabel'];\nvar Z_BASE = 10; // Should bigger than every z.\n\nvar Z_BG = 1;\nvar Z_CONTENT = 2;\nvar getItemStyleEmphasis = makeStyleMapper([['fill', 'color'], // `borderColor` and `borderWidth` has been occupied,\n// so use `stroke` to indicate the stroke of the rect.\n['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\n\nvar getItemStyleNormal = function (model) {\n  // Normal style props should include emphasis style props.\n  var itemStyle = getItemStyleEmphasis(model); // Clear styles set by emphasis.\n\n  itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n  return itemStyle;\n};\n\nvar _default = echarts.extendChartView({\n  type: 'treemap',\n\n  /**\n   * @override\n   */\n  init: function (o, api) {\n    /**\n     * @private\n     * @type {module:zrender/container/Group}\n     */\n    this._containerGroup;\n    /**\n     * @private\n     * @type {Object.<string, Array.<module:zrender/container/Group>>}\n     */\n\n    this._storage = createStorage();\n    /**\n     * @private\n     * @type {module:echarts/data/Tree}\n     */\n\n    this._oldTree;\n    /**\n     * @private\n     * @type {module:echarts/chart/treemap/Breadcrumb}\n     */\n\n    this._breadcrumb;\n    /**\n     * @private\n     * @type {module:echarts/component/helper/RoamController}\n     */\n\n    this._controller;\n    /**\n     * 'ready', 'animating'\n     * @private\n     */\n\n    this._state = 'ready';\n  },\n\n  /**\n   * @override\n   */\n  render: function (seriesModel, ecModel, api, payload) {\n    var models = ecModel.findComponents({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    });\n\n    if (zrUtil.indexOf(models, seriesModel) < 0) {\n      return;\n    }\n\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var payloadType = payload && payload.type;\n    var layoutInfo = seriesModel.layoutInfo;\n    var isInit = !this._oldTree;\n    var thisStorage = this._storage; // Mark new root when action is treemapRootToNode.\n\n    var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n      rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n      direction: payload.direction\n    } : null;\n\n    var containerGroup = this._giveContainerGroup(layoutInfo);\n\n    var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n    !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n    this._resetController(api);\n\n    this._renderBreadcrumb(seriesModel, api, targetInfo);\n  },\n\n  /**\n   * @private\n   */\n  _giveContainerGroup: function (layoutInfo) {\n    var containerGroup = this._containerGroup;\n\n    if (!containerGroup) {\n      // FIXME\n      // 鍔犱竴灞俢ontainerGroup鏄负浜哻lip锛屼絾鏄幇鍦╟lip鍔熻兘骞舵病鏈夊疄鐜般�俓n      containerGroup = this._containerGroup = new Group();\n\n      this._initEvents(containerGroup);\n\n      this.group.add(containerGroup);\n    }\n\n    containerGroup.attr('position', [layoutInfo.x, layoutInfo.y]);\n    return containerGroup;\n  },\n\n  /**\n   * @private\n   */\n  _doRender: function (containerGroup, seriesModel, reRoot) {\n    var thisTree = seriesModel.getData().tree;\n    var oldTree = this._oldTree; // Clear last shape records.\n\n    var lastsForAnimation = createStorage();\n    var thisStorage = createStorage();\n    var oldStorage = this._storage;\n    var willInvisibleEls = [];\n    var doRenderNode = zrUtil.curry(renderNode, seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls); // Notice: when thisTree and oldTree are the same tree (see list.cloneShallow),\n    // the oldTree is actually losted, so we can not find all of the old graphic\n    // elements from tree. So we use this stragegy: make element storage, move\n    // from old storage to new storage, clear old storage.\n\n    dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0); // Process all removing.\n\n    var willDeleteEls = clearStorage(oldStorage);\n    this._oldTree = thisTree;\n    this._storage = thisStorage;\n    return {\n      lastsForAnimation: lastsForAnimation,\n      willDeleteEls: willDeleteEls,\n      renderFinally: renderFinally\n    };\n\n    function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n      // When 'render' is triggered by action,\n      // 'this' and 'old' may be the same tree,\n      // we use rawIndex in that case.\n      if (sameTree) {\n        oldViewChildren = thisViewChildren;\n        each(thisViewChildren, function (child, index) {\n          !child.isRemoved() && processNode(index, index);\n        });\n      } // Diff hierarchically (diff only in each subtree, but not whole).\n      // because, consistency of view is important.\n      else {\n          new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n        }\n\n      function getKey(node) {\n        // Identify by name or raw index.\n        return node.getId();\n      }\n\n      function processNode(newIndex, oldIndex) {\n        var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n        var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n        var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n        group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n      }\n    }\n\n    function clearStorage(storage) {\n      var willDeleteEls = createStorage();\n      storage && each(storage, function (store, storageName) {\n        var delEls = willDeleteEls[storageName];\n        each(store, function (el) {\n          el && (delEls.push(el), el.__tmWillDelete = 1);\n        });\n      });\n      return willDeleteEls;\n    }\n\n    function renderFinally() {\n      each(willDeleteEls, function (els) {\n        each(els, function (el) {\n          el.parent && el.parent.remove(el);\n        });\n      });\n      each(willInvisibleEls, function (el) {\n        el.invisible = true; // Setting invisible is for optimizing, so no need to set dirty,\n        // just mark as invisible.\n\n        el.dirty();\n      });\n    }\n  },\n\n  /**\n   * @private\n   */\n  _doAnimation: function (containerGroup, renderResult, seriesModel, reRoot) {\n    if (!seriesModel.get('animation')) {\n      return;\n    }\n\n    var duration = seriesModel.get('animationDurationUpdate');\n    var easing = seriesModel.get('animationEasing');\n    var animationWrap = animationUtil.createWrap(); // Make delete animations.\n\n    each(renderResult.willDeleteEls, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        if (el.invisible) {\n          return;\n        }\n\n        var parent = el.parent; // Always has parent, and parent is nodeGroup.\n\n        var target;\n\n        if (reRoot && reRoot.direction === 'drillDown') {\n          target = parent === reRoot.rootNodeGroup // This is the content element of view root.\n          // Only `content` will enter this branch, because\n          // `background` and `nodeGroup` will not be deleted.\n          ? {\n            shape: {\n              x: 0,\n              y: 0,\n              width: parent.__tmNodeWidth,\n              height: parent.__tmNodeHeight\n            },\n            style: {\n              opacity: 0\n            } // Others.\n\n          } : {\n            style: {\n              opacity: 0\n            }\n          };\n        } else {\n          var targetX = 0;\n          var targetY = 0;\n\n          if (!parent.__tmWillDelete) {\n            // Let node animate to right-bottom corner, cooperating with fadeout,\n            // which is appropriate for user understanding.\n            // Divided by 2 for reRoot rolling up effect.\n            targetX = parent.__tmNodeWidth / 2;\n            targetY = parent.__tmNodeHeight / 2;\n          }\n\n          target = storageName === 'nodeGroup' ? {\n            position: [targetX, targetY],\n            style: {\n              opacity: 0\n            }\n          } : {\n            shape: {\n              x: targetX,\n              y: targetY,\n              width: 0,\n              height: 0\n            },\n            style: {\n              opacity: 0\n            }\n          };\n        }\n\n        target && animationWrap.add(el, target, duration, easing);\n      });\n    }); // Make other animations\n\n    each(this._storage, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        var last = renderResult.lastsForAnimation[storageName][rawIndex];\n        var target = {};\n\n        if (!last) {\n          return;\n        }\n\n        if (storageName === 'nodeGroup') {\n          if (last.old) {\n            target.position = el.position.slice();\n            el.attr('position', last.old);\n          }\n        } else {\n          if (last.old) {\n            target.shape = zrUtil.extend({}, el.shape);\n            el.setShape(last.old);\n          }\n\n          if (last.fadein) {\n            el.setStyle('opacity', 0);\n            target.style = {\n              opacity: 1\n            };\n          } // When animation is stopped for succedent animation starting,\n          // el.style.opacity might not be 1\n          else if (el.style.opacity !== 1) {\n              target.style = {\n                opacity: 1\n              };\n            }\n        }\n\n        animationWrap.add(el, target, duration, easing);\n      });\n    }, this);\n    this._state = 'animating';\n    animationWrap.done(bind(function () {\n      this._state = 'ready';\n      renderResult.renderFinally();\n    }, this)).start();\n  },\n\n  /**\n   * @private\n   */\n  _resetController: function (api) {\n    var controller = this._controller; // Init controller.\n\n    if (!controller) {\n      controller = this._controller = new RoamController(api.getZr());\n      controller.enable(this.seriesModel.get('roam'));\n      controller.on('pan', bind(this._onPan, this));\n      controller.on('zoom', bind(this._onZoom, this));\n    }\n\n    var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n    controller.setPointerChecker(function (e, x, y) {\n      return rect.contain(x, y);\n    });\n  },\n\n  /**\n   * @private\n   */\n  _clearController: function () {\n    var controller = this._controller;\n\n    if (controller) {\n      controller.dispose();\n      controller = null;\n    }\n  },\n\n  /**\n   * @private\n   */\n  _onPan: function (dx, dy) {\n    if (this._state !== 'animating' && (Math.abs(dx) > DRAG_THRESHOLD || Math.abs(dy) > DRAG_THRESHOLD)) {\n      // These param must not be cached.\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      this.api.dispatchAction({\n        type: 'treemapMove',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rootLayout.x + dx,\n          y: rootLayout.y + dy,\n          width: rootLayout.width,\n          height: rootLayout.height\n        }\n      });\n    }\n  },\n\n  /**\n   * @private\n   */\n  _onZoom: function (scale, mouseX, mouseY) {\n    if (this._state !== 'animating') {\n      // These param must not be cached.\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n      var layoutInfo = this.seriesModel.layoutInfo; // Transform mouse coord from global to containerGroup.\n\n      mouseX -= layoutInfo.x;\n      mouseY -= layoutInfo.y; // Scale root bounding rect.\n\n      var m = matrix.create();\n      matrix.translate(m, m, [-mouseX, -mouseY]);\n      matrix.scale(m, m, [scale, scale]);\n      matrix.translate(m, m, [mouseX, mouseY]);\n      rect.applyTransform(m);\n      this.api.dispatchAction({\n        type: 'treemapRender',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rect.x,\n          y: rect.y,\n          width: rect.width,\n          height: rect.height\n        }\n      });\n    }\n  },\n\n  /**\n   * @private\n   */\n  _initEvents: function (containerGroup) {\n    containerGroup.on('click', function (e) {\n      if (this._state !== 'ready') {\n        return;\n      }\n\n      var nodeClick = this.seriesModel.get('nodeClick', true);\n\n      if (!nodeClick) {\n        return;\n      }\n\n      var targetInfo = this.findTarget(e.offsetX, e.offsetY);\n\n      if (!targetInfo) {\n        return;\n      }\n\n      var node = targetInfo.node;\n\n      if (node.getLayout().isLeafRoot) {\n        this._rootToNode(targetInfo);\n      } else {\n        if (nodeClick === 'zoomToNode') {\n          this._zoomToNode(targetInfo);\n        } else if (nodeClick === 'link') {\n          var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n          var link = itemModel.get('link', true);\n          var linkTarget = itemModel.get('target', true) || 'blank';\n          link && window.open(link, linkTarget);\n        }\n      }\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _renderBreadcrumb: function (seriesModel, api, targetInfo) {\n    if (!targetInfo) {\n      targetInfo = seriesModel.get('leafDepth', true) != null ? {\n        node: seriesModel.getViewRoot() // FIXME\n        // better way?\n        // Find breadcrumb tail on center of containerGroup.\n\n      } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n      if (!targetInfo) {\n        targetInfo = {\n          node: seriesModel.getData().tree.root\n        };\n      }\n    }\n\n    (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, bind(onSelect, this));\n\n    function onSelect(node) {\n      if (this._state !== 'animating') {\n        helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? this._rootToNode({\n          node: node\n        }) : this._zoomToNode({\n          node: node\n        });\n      }\n    }\n  },\n\n  /**\n   * @override\n   */\n  remove: function () {\n    this._clearController();\n\n    this._containerGroup && this._containerGroup.removeAll();\n    this._storage = createStorage();\n    this._state = 'ready';\n    this._breadcrumb && this._breadcrumb.remove();\n  },\n  dispose: function () {\n    this._clearController();\n  },\n\n  /**\n   * @private\n   */\n  _zoomToNode: function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapZoomToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  },\n\n  /**\n   * @private\n   */\n  _rootToNode: function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapRootToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  },\n\n  /**\n   * @public\n   * @param {number} x Global coord x.\n   * @param {number} y Global coord y.\n   * @return {Object} info If not found, return undefined;\n   * @return {number} info.node Target node.\n   * @return {number} info.offsetX x refer to target node.\n   * @return {number} info.offsetY y refer to target node.\n   */\n  findTarget: function (x, y) {\n    var targetInfo;\n    var viewRoot = this.seriesModel.getViewRoot();\n    viewRoot.eachNode({\n      attr: 'viewChildren',\n      order: 'preorder'\n    }, function (node) {\n      var bgEl = this._storage.background[node.getRawIndex()]; // If invisible, there might be no element.\n\n\n      if (bgEl) {\n        var point = bgEl.transformCoordToLocal(x, y);\n        var shape = bgEl.shape; // For performance consideration, dont use 'getBoundingRect'.\n\n        if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n          targetInfo = {\n            node: node,\n            offsetX: point[0],\n            offsetY: point[1]\n          };\n        } else {\n          return false; // Suppress visit subtree.\n        }\n      }\n    }, this);\n    return targetInfo;\n  }\n});\n/**\n * @inner\n */\n\n\nfunction createStorage() {\n  return {\n    nodeGroup: [],\n    background: [],\n    content: []\n  };\n}\n/**\n * @inner\n * @return Return undefined means do not travel further.\n */\n\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n  // Whether under viewRoot.\n  if (!thisNode) {\n    // Deleting nodes will be performed finally. This method just find\n    // element from old storage, or create new element, set them to new\n    // storage, and set styles.\n    return;\n  } // -------------------------------------------------------------------\n  // Start of closure variables available in \"Procedures in renderNode\".\n\n\n  var thisLayout = thisNode.getLayout();\n\n  if (!thisLayout || !thisLayout.isInView) {\n    return;\n  }\n\n  var thisWidth = thisLayout.width;\n  var thisHeight = thisLayout.height;\n  var borderWidth = thisLayout.borderWidth;\n  var thisInvisible = thisLayout.invisible;\n  var thisRawIndex = thisNode.getRawIndex();\n  var oldRawIndex = oldNode && oldNode.getRawIndex();\n  var thisViewChildren = thisNode.viewChildren;\n  var upperHeight = thisLayout.upperHeight;\n  var isParent = thisViewChildren && thisViewChildren.length;\n  var itemStyleNormalModel = thisNode.getModel('itemStyle');\n  var itemStyleEmphasisModel = thisNode.getModel('emphasis.itemStyle'); // End of closure ariables available in \"Procedures in renderNode\".\n  // -----------------------------------------------------------------\n  // Node group\n\n  var group = giveGraphic('nodeGroup', Group);\n\n  if (!group) {\n    return;\n  }\n\n  parentGroup.add(group); // x,y are not set when el is above view root.\n\n  group.attr('position', [thisLayout.x || 0, thisLayout.y || 0]);\n  group.__tmNodeWidth = thisWidth;\n  group.__tmNodeHeight = thisHeight;\n\n  if (thisLayout.isAboveViewRoot) {\n    return group;\n  } // Background\n\n\n  var bg = giveGraphic('background', Rect, depth, Z_BG);\n  bg && renderBackground(group, bg, isParent && thisLayout.upperHeight); // No children, render content.\n\n  if (!isParent) {\n    var content = giveGraphic('content', Rect, depth, Z_CONTENT);\n    content && renderContent(group, content);\n  }\n\n  return group; // ----------------------------\n  // | Procedures in renderNode |\n  // ----------------------------\n\n  function renderBackground(group, bg, useUpperLabel) {\n    // For tooltip.\n    bg.dataIndex = thisNode.dataIndex;\n    bg.seriesIndex = seriesModel.seriesIndex;\n    bg.setShape({\n      x: 0,\n      y: 0,\n      width: thisWidth,\n      height: thisHeight\n    });\n    var visualBorderColor = thisNode.getVisual('borderColor', true);\n    var emphasisBorderColor = itemStyleEmphasisModel.get('borderColor');\n    updateStyle(bg, function () {\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualBorderColor;\n      var emphasisStyle = getItemStyleEmphasis(itemStyleEmphasisModel);\n      emphasisStyle.fill = emphasisBorderColor;\n\n      if (useUpperLabel) {\n        var upperLabelWidth = thisWidth - 2 * borderWidth;\n        prepareText(normalStyle, emphasisStyle, visualBorderColor, upperLabelWidth, upperHeight, {\n          x: borderWidth,\n          y: 0,\n          width: upperLabelWidth,\n          height: upperHeight\n        });\n      } // For old bg.\n      else {\n          normalStyle.text = emphasisStyle.text = null;\n        }\n\n      bg.setStyle(normalStyle);\n      graphic.setHoverStyle(bg, emphasisStyle);\n    });\n    group.add(bg);\n  }\n\n  function renderContent(group, content) {\n    // For tooltip.\n    content.dataIndex = thisNode.dataIndex;\n    content.seriesIndex = seriesModel.seriesIndex;\n    var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n    var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n    content.culling = true;\n    content.setShape({\n      x: borderWidth,\n      y: borderWidth,\n      width: contentWidth,\n      height: contentHeight\n    });\n    var visualColor = thisNode.getVisual('color', true);\n    updateStyle(content, function () {\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualColor;\n      var emphasisStyle = getItemStyleEmphasis(itemStyleEmphasisModel);\n      prepareText(normalStyle, emphasisStyle, visualColor, contentWidth, contentHeight);\n      content.setStyle(normalStyle);\n      graphic.setHoverStyle(content, emphasisStyle);\n    });\n    group.add(content);\n  }\n\n  function updateStyle(element, cb) {\n    if (!thisInvisible) {\n      // If invisible, do not set visual, otherwise the element will\n      // change immediately before animation. We think it is OK to\n      // remain its origin color when moving out of the view window.\n      cb();\n\n      if (!element.__tmWillVisible) {\n        element.invisible = false;\n      }\n    } else {\n      // Delay invisible setting utill animation finished,\n      // avoid element vanish suddenly before animation.\n      !element.invisible && willInvisibleEls.push(element);\n    }\n  }\n\n  function prepareText(normalStyle, emphasisStyle, visualColor, width, height, upperLabelRect) {\n    var nodeModel = thisNode.getModel();\n    var text = zrUtil.retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, upperLabelRect ? 'upperLabel' : 'label'), nodeModel.get('name'));\n\n    if (!upperLabelRect && thisLayout.isLeafRoot) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      text = iconChar ? iconChar + ' ' + text : text;\n    }\n\n    var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n    var emphasisLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_EMPHASIS : PATH_LABEL_EMPHASIS);\n    var isShow = normalLabelModel.getShallow('show');\n    graphic.setLabelStyle(normalStyle, emphasisStyle, normalLabelModel, emphasisLabelModel, {\n      defaultText: isShow ? text : null,\n      autoColor: visualColor,\n      isRectText: true\n    });\n    upperLabelRect && (normalStyle.textRect = zrUtil.clone(upperLabelRect));\n    normalStyle.truncate = isShow && normalLabelModel.get('ellipsis') ? {\n      outerWidth: width,\n      outerHeight: height,\n      minChar: 2\n    } : null;\n  }\n\n  function giveGraphic(storageName, Ctor, depth, z) {\n    var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n    var lasts = lastsForAnimation[storageName];\n\n    if (element) {\n      // Remove from oldStorage\n      oldStorage[storageName][oldRawIndex] = null;\n      prepareAnimationWhenHasOld(lasts, element, storageName);\n    } // If invisible and no old element, do not create new element (for optimizing).\n    else if (!thisInvisible) {\n        element = new Ctor({\n          z: calculateZ(depth, z)\n        });\n        element.__tmDepth = depth;\n        element.__tmStorageName = storageName;\n        prepareAnimationWhenNoOld(lasts, element, storageName);\n      } // Set to thisStorage\n\n\n    return thisStorage[storageName][thisRawIndex] = element;\n  }\n\n  function prepareAnimationWhenHasOld(lasts, element, storageName) {\n    var lastCfg = lasts[thisRawIndex] = {};\n    lastCfg.old = storageName === 'nodeGroup' ? element.position.slice() : zrUtil.extend({}, element.shape);\n  } // If a element is new, we need to find the animation start point carefully,\n  // otherwise it will looks strange when 'zoomToNode'.\n\n\n  function prepareAnimationWhenNoOld(lasts, element, storageName) {\n    var lastCfg = lasts[thisRawIndex] = {};\n    var parentNode = thisNode.parentNode;\n\n    if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n      var parentOldX = 0;\n      var parentOldY = 0; // New nodes appear from right-bottom corner in 'zoomToNode' animation.\n      // For convenience, get old bounding rect from background.\n\n      var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n      if (!reRoot && parentOldBg && parentOldBg.old) {\n        parentOldX = parentOldBg.old.width;\n        parentOldY = parentOldBg.old.height;\n      } // When no parent old shape found, its parent is new too,\n      // so we can just use {x:0, y:0}.\n\n\n      lastCfg.old = storageName === 'nodeGroup' ? [0, parentOldY] : {\n        x: parentOldX,\n        y: parentOldY,\n        width: 0,\n        height: 0\n      };\n    } // Fade in, user can be aware that these nodes are new.\n\n\n    lastCfg.fadein = storageName !== 'nodeGroup';\n  }\n} // We can not set all backgroud with the same z, Because the behaviour of\n// drill down and roll up differ background creation sequence from tree\n// hierarchy sequence, which cause that lowser background element overlap\n// upper ones. So we calculate z based on depth.\n// Moreover, we try to shrink down z interval to [0, 1] to avoid that\n// treemap with large z overlaps other components.\n\n\nfunction calculateZ(depth, zInLevel) {\n  var zb = depth * Z_BASE + zInLevel;\n  return (zb - 1) / zb;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/treemap/TreemapView.js\n// module id = sCYP\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/symbol/index.js\n// module id = sDqF\n// module chunks = 0","require(\"./heatmap/HeatmapSeries\");\n\nrequire(\"./heatmap/HeatmapView\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/heatmap.js\n// module id = sHh7\n// module chunks = 0","var nestRE = /^(attrs|props|on|nativeOn|class|style|hook)$/\n\nmodule.exports = function mergeJSXProps (objs) {\n  return objs.reduce(function (a, b) {\n    var aa, bb, key, nestedKey, temp\n    for (key in b) {\n      aa = a[key]\n      bb = b[key]\n      if (aa && nestRE.test(key)) {\n        // normalize class\n        if (key === 'class') {\n          if (typeof aa === 'string') {\n            temp = aa\n            a[key] = aa = {}\n            aa[temp] = true\n          }\n          if (typeof bb === 'string') {\n            temp = bb\n            b[key] = bb = {}\n            bb[temp] = true\n          }\n        }\n        if (key === 'on' || key === 'nativeOn' || key === 'hook') {\n          // merge functions\n          for (nestedKey in bb) {\n            aa[nestedKey] = mergeFn(aa[nestedKey], bb[nestedKey])\n          }\n        } else if (Array.isArray(aa)) {\n          a[key] = aa.concat(bb)\n        } else if (Array.isArray(bb)) {\n          a[key] = [aa].concat(bb)\n        } else {\n          for (nestedKey in bb) {\n            aa[nestedKey] = bb[nestedKey]\n          }\n        }\n      } else {\n        a[key] = b[key]\n      }\n    }\n    return a\n  }, {})\n}\n\nfunction mergeFn (a, b) {\n  return function () {\n    a && a.apply(this, arguments)\n    b && b.apply(this, arguments)\n  }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-helper-vue-jsx-merge-props@2.0.3@babel-helper-vue-jsx-merge-props/index.js\n// module id = sNXC\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./brush/preprocessor\");\n\nrequire(\"./brush/visualEncoding\");\n\nrequire(\"./brush/BrushModel\");\n\nrequire(\"./brush/BrushView\");\n\nrequire(\"./brush/brushAction\");\n\nrequire(\"./toolbox/feature/Brush\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Brush component entry\n */\necharts.registerPreprocessor(preprocessor);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/brush.js\n// module id = sO1v\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_descriptors.js\n// module id = sjnA\n// module chunks = 0","var Path = require(\"../Path\");\n\nvar polyHelper = require(\"../helper/poly\");\n\n/**\n * 澶氳竟褰n * @module zrender/shape/Polygon\n */\nvar _default = Path.extend({\n  type: 'polygon',\n  shape: {\n    points: null,\n    smooth: false,\n    smoothConstraint: null\n  },\n  buildPath: function (ctx, shape) {\n    polyHelper.buildPath(ctx, shape, true);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Polygon.js\n// module id = sv6O\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 45);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/dom\");\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/locale\");\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/util\");\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"vue\");\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/input\");\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/migrating\");\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vue-popper\");\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/clickoutside\");\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/merge\");\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.extractTimeFormat = exports.extractDateFormat = exports.nextYear = exports.prevYear = exports.nextMonth = exports.prevMonth = exports.changeYearMonthAndClampDate = exports.timeWithinRange = exports.limitTimeRange = exports.clearMilliseconds = exports.clearTime = exports.modifyWithTimeString = exports.modifyTime = exports.modifyDate = exports.range = exports.getRangeHours = exports.getWeekNumber = exports.getStartDateOfMonth = exports.nextDate = exports.prevDate = exports.getFirstDayOfMonth = exports.getDayCountOfYear = exports.getDayCountOfMonth = exports.parseDate = exports.formatDate = exports.isDateObject = exports.isDate = exports.toDate = undefined;\n\nvar _date = __webpack_require__(174);\n\nvar _date2 = _interopRequireDefault(_date);\n\nvar _locale = __webpack_require__(16);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nvar months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];\nvar getI18nSettings = function getI18nSettings() {\n  return {\n    dayNamesShort: weeks.map(function (week) {\n      return (0, _locale.t)('el.datepicker.weeks.' + week);\n    }),\n    dayNames: weeks.map(function (week) {\n      return (0, _locale.t)('el.datepicker.weeks.' + week);\n    }),\n    monthNamesShort: months.map(function (month) {\n      return (0, _locale.t)('el.datepicker.months.' + month);\n    }),\n    monthNames: months.map(function (month, index) {\n      return (0, _locale.t)('el.datepicker.month' + (index + 1));\n    }),\n    amPm: ['am', 'pm']\n  };\n};\n\nvar newArray = function newArray(start, end) {\n  var result = [];\n  for (var i = start; i <= end; i++) {\n    result.push(i);\n  }\n  return result;\n};\n\nvar toDate = exports.toDate = function toDate(date) {\n  return isDate(date) ? new Date(date) : null;\n};\n\nvar isDate = exports.isDate = function isDate(date) {\n  if (date === null || date === undefined) return false;\n  if (isNaN(new Date(date).getTime())) return false;\n  if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`\n  return true;\n};\n\nvar isDateObject = exports.isDateObject = function isDateObject(val) {\n  return val instanceof Date;\n};\n\nvar formatDate = exports.formatDate = function formatDate(date, format) {\n  date = toDate(date);\n  if (!date) return '';\n  return _date2.default.format(date, format || 'yyyy-MM-dd', getI18nSettings());\n};\n\nvar parseDate = exports.parseDate = function parseDate(string, format) {\n  return _date2.default.parse(string, format || 'yyyy-MM-dd', getI18nSettings());\n};\n\nvar getDayCountOfMonth = exports.getDayCountOfMonth = function getDayCountOfMonth(year, month) {\n  if (month === 3 || month === 5 || month === 8 || month === 10) {\n    return 30;\n  }\n\n  if (month === 1) {\n    if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {\n      return 29;\n    } else {\n      return 28;\n    }\n  }\n\n  return 31;\n};\n\nvar getDayCountOfYear = exports.getDayCountOfYear = function getDayCountOfYear(year) {\n  var isLeapYear = year % 400 === 0 || year % 100 !== 0 && year % 4 === 0;\n  return isLeapYear ? 366 : 365;\n};\n\nvar getFirstDayOfMonth = exports.getFirstDayOfMonth = function getFirstDayOfMonth(date) {\n  var temp = new Date(date.getTime());\n  temp.setDate(1);\n  return temp.getDay();\n};\n\n// see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript\n// {prev, next} Date should work for Daylight Saving Time\n// Adding 24 * 60 * 60 * 1000 does not work in the above scenario\nvar prevDate = exports.prevDate = function prevDate(date) {\n  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n  return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);\n};\n\nvar nextDate = exports.nextDate = function nextDate(date) {\n  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n  return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);\n};\n\nvar getStartDateOfMonth = exports.getStartDateOfMonth = function getStartDateOfMonth(year, month) {\n  var result = new Date(year, month, 1);\n  var day = result.getDay();\n\n  if (day === 0) {\n    return prevDate(result, 7);\n  } else {\n    return prevDate(result, day);\n  }\n};\n\nvar getWeekNumber = exports.getWeekNumber = function getWeekNumber(src) {\n  if (!isDate(src)) return null;\n  var date = new Date(src.getTime());\n  date.setHours(0, 0, 0, 0);\n  // Thursday in current week decides the year.\n  date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);\n  // January 4 is always in week 1.\n  var week1 = new Date(date.getFullYear(), 0, 4);\n  // Adjust to Thursday in week 1 and count number of weeks from date to week 1.\n  // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.\n  return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n};\n\nvar getRangeHours = exports.getRangeHours = function getRangeHours(ranges) {\n  var hours = [];\n  var disabledHours = [];\n\n  (ranges || []).forEach(function (range) {\n    var value = range.map(function (date) {\n      return date.getHours();\n    });\n\n    disabledHours = disabledHours.concat(newArray(value[0], value[1]));\n  });\n\n  if (disabledHours.length) {\n    for (var i = 0; i < 24; i++) {\n      hours[i] = disabledHours.indexOf(i) === -1;\n    }\n  } else {\n    for (var _i = 0; _i < 24; _i++) {\n      hours[_i] = false;\n    }\n  }\n\n  return hours;\n};\n\nvar range = exports.range = function range(n) {\n  // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n\n  return Array.apply(null, { length: n }).map(function (_, n) {\n    return n;\n  });\n};\n\nvar modifyDate = exports.modifyDate = function modifyDate(date, y, m, d) {\n  return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n};\n\nvar modifyTime = exports.modifyTime = function modifyTime(date, h, m, s) {\n  return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());\n};\n\nvar modifyWithTimeString = exports.modifyWithTimeString = function modifyWithTimeString(date, time) {\n  if (date == null || !time) {\n    return date;\n  }\n  time = parseDate(time, 'HH:mm:ss');\n  return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());\n};\n\nvar clearTime = exports.clearTime = function clearTime(date) {\n  return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n};\n\nvar clearMilliseconds = exports.clearMilliseconds = function clearMilliseconds(date) {\n  return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);\n};\n\nvar limitTimeRange = exports.limitTimeRange = function limitTimeRange(date, ranges) {\n  var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'HH:mm:ss';\n\n  // TODO: refactory a more elegant solution\n  if (ranges.length === 0) return date;\n  var normalizeDate = function normalizeDate(date) {\n    return _date2.default.parse(_date2.default.format(date, format), format);\n  };\n  var ndate = normalizeDate(date);\n  var nranges = ranges.map(function (range) {\n    return range.map(normalizeDate);\n  });\n  if (nranges.some(function (nrange) {\n    return ndate >= nrange[0] && ndate <= nrange[1];\n  })) return date;\n\n  var minDate = nranges[0][0];\n  var maxDate = nranges[0][0];\n\n  nranges.forEach(function (nrange) {\n    minDate = new Date(Math.min(nrange[0], minDate));\n    maxDate = new Date(Math.max(nrange[1], minDate));\n  });\n\n  var ret = ndate < minDate ? minDate : maxDate;\n  // preserve Year/Month/Date\n  return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());\n};\n\nvar timeWithinRange = exports.timeWithinRange = function timeWithinRange(date, selectableRange, format) {\n  var limitedDate = limitTimeRange(date, selectableRange, format);\n  return limitedDate.getTime() === date.getTime();\n};\n\nvar changeYearMonthAndClampDate = exports.changeYearMonthAndClampDate = function changeYearMonthAndClampDate(date, year, month) {\n  // clamp date to the number of days in `year`, `month`\n  // eg: (2010-1-31, 2010, 2) => 2010-2-28\n  var monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));\n  return modifyDate(date, year, month, monthDate);\n};\n\nvar prevMonth = exports.prevMonth = function prevMonth(date) {\n  var year = date.getFullYear();\n  var month = date.getMonth();\n  return month === 0 ? changeYearMonthAndClampDate(date, year - 1, 11) : changeYearMonthAndClampDate(date, year, month - 1);\n};\n\nvar nextMonth = exports.nextMonth = function nextMonth(date) {\n  var year = date.getFullYear();\n  var month = date.getMonth();\n  return month === 11 ? changeYearMonthAndClampDate(date, year + 1, 0) : changeYearMonthAndClampDate(date, year, month + 1);\n};\n\nvar prevYear = exports.prevYear = function prevYear(date) {\n  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n  var year = date.getFullYear();\n  var month = date.getMonth();\n  return changeYearMonthAndClampDate(date, year - amount, month);\n};\n\nvar nextYear = exports.nextYear = function nextYear(date) {\n  var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n  var year = date.getFullYear();\n  var month = date.getMonth();\n  return changeYearMonthAndClampDate(date, year + amount, month);\n};\n\nvar extractDateFormat = exports.extractDateFormat = function extractDateFormat(format) {\n  return format.replace(/\\W?m{1,2}|\\W?ZZ/g, '').replace(/\\W?h{1,2}|\\W?s{1,3}|\\W?a/gi, '').trim();\n};\n\nvar extractTimeFormat = exports.extractTimeFormat = function extractTimeFormat(format) {\n  return format.replace(/\\W?D{1,2}|\\W?Do|\\W?d{1,4}|\\W?M{1,4}|\\W?y{2,4}/g, '').trim();\n};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/popup\");\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"throttle-debounce/debounce\");\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/checkbox\");\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/button\");\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/locale\");\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/resize-event\");\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/scrollbar\");\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/focus\");\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/transitions/collapse-transition\");\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/vdom\");\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar NODE_KEY = exports.NODE_KEY = '$treeNodeId';\n\nvar markNodeData = exports.markNodeData = function markNodeData(node, data) {\n  if (!data || data[NODE_KEY]) return;\n  Object.defineProperty(data, NODE_KEY, {\n    value: node.id,\n    enumerable: false,\n    configurable: false,\n    writable: false\n  });\n};\n\nvar getNodeKey = exports.getNodeKey = function getNodeKey(key, data) {\n  if (!key) return data[NODE_KEY];\n  return data[key];\n};\n\nvar findNearestComponent = exports.findNearestComponent = function findNearestComponent(element, componentName) {\n  var target = element;\n  while (target && target.tagName !== 'BODY') {\n    if (target.__vue__ && target.__vue__.$options.name === componentName) {\n      return target.__vue__;\n    }\n    target = target.parentNode;\n  }\n  return null;\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/tooltip\");\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/shared\");\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/tag\");\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/scroll-into-view\");\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = {\n  created: function created() {\n    this.tableLayout.addObserver(this);\n  },\n  destroyed: function destroyed() {\n    this.tableLayout.removeObserver(this);\n  },\n\n\n  computed: {\n    tableLayout: function tableLayout() {\n      var layout = this.layout;\n      if (!layout && this.table) {\n        layout = this.table.layout;\n      }\n      if (!layout) {\n        throw new Error('Can not find table layout.');\n      }\n      return layout;\n    }\n  },\n\n  mounted: function mounted() {\n    this.onColumnsChange(this.tableLayout);\n    this.onScrollableChange(this.tableLayout);\n  },\n  updated: function updated() {\n    if (this.__updated__) return;\n    this.onColumnsChange(this.tableLayout);\n    this.onScrollableChange(this.tableLayout);\n    this.__updated__ = true;\n  },\n\n\n  methods: {\n    onColumnsChange: function onColumnsChange() {\n      var cols = this.$el.querySelectorAll('colgroup > col');\n      if (!cols.length) return;\n      var flattenColumns = this.tableLayout.getFlattenColumns();\n      var columnsMap = {};\n      flattenColumns.forEach(function (column) {\n        columnsMap[column.id] = column;\n      });\n      for (var i = 0, j = cols.length; i < j; i++) {\n        var col = cols[i];\n        var name = col.getAttribute('name');\n        var column = columnsMap[name];\n        if (column) {\n          col.setAttribute('width', column.realWidth || column.width);\n        }\n      }\n    },\n    onScrollableChange: function onScrollableChange(layout) {\n      var cols = this.$el.querySelectorAll('colgroup > col[name=gutter]');\n      for (var i = 0, j = cols.length; i < j; i++) {\n        var col = cols[i];\n        col.setAttribute('width', layout.scrollY ? layout.gutterWidth : '0');\n      }\n      var ths = this.$el.querySelectorAll('th.gutter');\n      for (var _i = 0, _j = ths.length; _i < _j; _i++) {\n        var th = ths[_i];\n        th.style.width = layout.scrollY ? layout.gutterWidth + 'px' : '0';\n        th.style.display = layout.scrollY ? '' : 'none';\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue__ = __webpack_require__(173);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_72d0c3bc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_picker_vue__ = __webpack_require__(175);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_72d0c3bc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_picker_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue__ = __webpack_require__(178);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3ea87726_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_vue__ = __webpack_require__(181);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3ea87726_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nexports.default = function (element, options) {\n  if (_vue2.default.prototype.$isServer) return;\n  var moveFn = function moveFn(event) {\n    if (options.drag) {\n      options.drag(event);\n    }\n  };\n  var upFn = function upFn(event) {\n    document.removeEventListener('mousemove', moveFn);\n    document.removeEventListener('mouseup', upFn);\n    document.onselectstart = null;\n    document.ondragstart = null;\n\n    isDragging = false;\n\n    if (options.end) {\n      options.end(event);\n    }\n  };\n  element.addEventListener('mousedown', function (event) {\n    if (isDragging) return;\n    document.onselectstart = function () {\n      return false;\n    };\n    document.ondragstart = function () {\n      return false;\n    };\n\n    document.addEventListener('mousemove', moveFn);\n    document.addEventListener('mouseup', upFn);\n    isDragging = true;\n\n    if (options.start) {\n      options.start(event);\n    }\n  });\n};\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isDragging = false;\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar aria = aria || {};\n\naria.Utils = aria.Utils || {};\n\n/**\n * @desc Set focus on descendant nodes until the first focusable element is\n *       found.\n * @param element\n *          DOM node for which to find the first focusable descendant.\n * @returns\n *  true if a focusable element is found and focus is set.\n */\naria.Utils.focusFirstDescendant = function (element) {\n  for (var i = 0; i < element.childNodes.length; i++) {\n    var child = element.childNodes[i];\n    if (aria.Utils.attemptFocus(child) || aria.Utils.focusFirstDescendant(child)) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * @desc Find the last descendant node that is focusable.\n * @param element\n *          DOM node for which to find the last focusable descendant.\n * @returns\n *  true if a focusable element is found and focus is set.\n */\n\naria.Utils.focusLastDescendant = function (element) {\n  for (var i = element.childNodes.length - 1; i >= 0; i--) {\n    var child = element.childNodes[i];\n    if (aria.Utils.attemptFocus(child) || aria.Utils.focusLastDescendant(child)) {\n      return true;\n    }\n  }\n  return false;\n};\n\n/**\n * @desc Set Attempt to set focus on the current node.\n * @param element\n *          The node to attempt to focus on.\n * @returns\n *  true if element is focused.\n */\naria.Utils.attemptFocus = function (element) {\n  if (!aria.Utils.isFocusable(element)) {\n    return false;\n  }\n  aria.Utils.IgnoreUtilFocusChanges = true;\n  try {\n    element.focus();\n  } catch (e) {}\n  aria.Utils.IgnoreUtilFocusChanges = false;\n  return document.activeElement === element;\n};\n\naria.Utils.isFocusable = function (element) {\n  if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute('tabIndex') !== null) {\n    return true;\n  }\n\n  if (element.disabled) {\n    return false;\n  }\n\n  switch (element.nodeName) {\n    case 'A':\n      return !!element.href && element.rel !== 'ignore';\n    case 'INPUT':\n      return element.type !== 'hidden' && element.type !== 'file';\n    case 'BUTTON':\n    case 'SELECT':\n    case 'TEXTAREA':\n      return true;\n    default:\n      return false;\n  }\n};\n\n/**\n * 瑙﹀彂涓�涓簨浠禱n * mouseenter, mouseleave, mouseover, keyup, change, click 绛塡n * @param  {Element} elm\n * @param  {String} name\n * @param  {*} opts\n */\naria.Utils.triggerEvent = function (elm, name) {\n  var eventName = void 0;\n\n  if (/^mouse|click/.test(name)) {\n    eventName = 'MouseEvents';\n  } else if (/^key/.test(name)) {\n    eventName = 'KeyboardEvent';\n  } else {\n    eventName = 'HTMLEvents';\n  }\n  var evt = document.createEvent(eventName);\n\n  for (var _len = arguments.length, opts = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    opts[_key - 2] = arguments[_key];\n  }\n\n  evt.initEvent.apply(evt, [name].concat(opts));\n  elm.dispatchEvent ? elm.dispatchEvent(evt) : elm.fireEvent('on' + name, evt);\n\n  return elm;\n};\n\naria.Utils.keys = {\n  tab: 9,\n  enter: 13,\n  space: 32,\n  left: 37,\n  up: 38,\n  right: 39,\n  down: 40\n};\n\nexports.default = aria.Utils;\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = {\n  inject: ['rootMenu'],\n  computed: {\n    indexPath: function indexPath() {\n      var path = [this.index];\n      var parent = this.$parent;\n      while (parent.$options.componentName !== 'ElMenu') {\n        if (parent.index) {\n          path.unshift(parent.index);\n        }\n        parent = parent.$parent;\n      }\n      return path;\n    },\n    parentMenu: function parentMenu() {\n      var parent = this.$parent;\n      while (parent && ['ElMenu', 'ElSubmenu'].indexOf(parent.$options.componentName) === -1) {\n        parent = parent.$parent;\n      }\n      return parent;\n    },\n    paddingStyle: function paddingStyle() {\n      if (this.rootMenu.mode !== 'vertical') return {};\n\n      var padding = 20;\n      var parent = this.$parent;\n\n      if (this.rootMenu.collapse) {\n        padding = 20;\n      } else {\n        while (parent && parent.$options.componentName !== 'ElMenu') {\n          if (parent.$options.componentName === 'ElSubmenu') {\n            padding += 20;\n          }\n          parent = parent.$parent;\n        }\n      }\n      return { paddingLeft: padding + 'px' };\n    }\n  }\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(2);\n\nexports.default = {\n  bind: function bind(el, binding, vnode) {\n    var interval = null;\n    var startTime = void 0;\n    var handler = function handler() {\n      return vnode.context[binding.expression].apply();\n    };\n    var clear = function clear() {\n      if (new Date() - startTime < 100) {\n        handler();\n      }\n      clearInterval(interval);\n      interval = null;\n    };\n\n    (0, _dom.on)(el, 'mousedown', function (e) {\n      if (e.button !== 0) return;\n      startTime = new Date();\n      (0, _dom.once)(document, 'mouseup', clear);\n      clearInterval(interval);\n      interval = setInterval(handler, 100);\n    });\n  }\n};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__ = __webpack_require__(137);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__ = __webpack_require__(138);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d1533cbc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.getRowIdentity = exports.getColumnByCell = exports.getColumnById = exports.orderBy = exports.getCell = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __webpack_require__(4);\n\nvar getCell = exports.getCell = function getCell(event) {\n  var cell = event.target;\n\n  while (cell && cell.tagName.toUpperCase() !== 'HTML') {\n    if (cell.tagName.toUpperCase() === 'TD') {\n      return cell;\n    }\n    cell = cell.parentNode;\n  }\n\n  return null;\n};\n\nvar isObject = function isObject(obj) {\n  return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';\n};\n\nvar orderBy = exports.orderBy = function orderBy(array, sortKey, reverse, sortMethod, sortBy) {\n  if (!sortKey && !sortMethod && (!sortBy || Array.isArray(sortBy) && !sortBy.length)) {\n    return array;\n  }\n  if (typeof reverse === 'string') {\n    reverse = reverse === 'descending' ? -1 : 1;\n  } else {\n    reverse = reverse && reverse < 0 ? -1 : 1;\n  }\n  var getKey = sortMethod ? null : function (value, index) {\n    if (sortBy) {\n      if (!Array.isArray(sortBy)) {\n        sortBy = [sortBy];\n      }\n      return sortBy.map(function (by) {\n        if (typeof by === 'string') {\n          return (0, _util.getValueByPath)(value, by);\n        } else {\n          return by(value, index, array);\n        }\n      });\n    }\n    if (sortKey !== '$key') {\n      if (isObject(value) && '$value' in value) value = value.$value;\n    }\n    return [isObject(value) ? (0, _util.getValueByPath)(value, sortKey) : value];\n  };\n  var compare = function compare(a, b) {\n    if (sortMethod) {\n      return sortMethod(a.value, b.value);\n    }\n    for (var i = 0, len = a.key.length; i < len; i++) {\n      if (a.key[i] < b.key[i]) {\n        return -1;\n      }\n      if (a.key[i] > b.key[i]) {\n        return 1;\n      }\n    }\n    return 0;\n  };\n  return array.map(function (value, index) {\n    return {\n      value: value,\n      index: index,\n      key: getKey ? getKey(value, index) : null\n    };\n  }).sort(function (a, b) {\n    var order = compare(a, b);\n    if (!order) {\n      // make stable https://en.wikipedia.org/wiki/Sorting_algorithm#Stability\n      order = a.index - b.index;\n    }\n    return order * reverse;\n  }).map(function (item) {\n    return item.value;\n  });\n};\n\nvar getColumnById = exports.getColumnById = function getColumnById(table, columnId) {\n  var column = null;\n  table.columns.forEach(function (item) {\n    if (item.id === columnId) {\n      column = item;\n    }\n  });\n  return column;\n};\n\nvar getColumnByCell = exports.getColumnByCell = function getColumnByCell(table, cell) {\n  var matches = (cell.className || '').match(/el-table_[^\\s]+/gm);\n  if (matches) {\n    return getColumnById(table, matches[0]);\n  }\n  return null;\n};\n\nvar getRowIdentity = exports.getRowIdentity = function getRowIdentity(row, rowKey) {\n  if (!row) throw new Error('row is required when get row identity');\n  if (typeof rowKey === 'string') {\n    if (rowKey.indexOf('.') < 0) {\n      return row[rowKey];\n    }\n    var key = rowKey.split('.');\n    var current = row;\n    for (var i = 0; i < key.length; i++) {\n      current = current[key[i]];\n    }\n    return current;\n  } else if (typeof rowKey === 'function') {\n    return rowKey.call(null, row);\n  }\n};\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/scrollbar-width\");\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/checkbox-group\");\n\n/***/ }),\n/* 38 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue__ = __webpack_require__(179);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3673a788_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_spinner_vue__ = __webpack_require__(180);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3673a788_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_spinner_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_table_vue__ = __webpack_require__(188);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_table_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_table_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_ecbc1fc4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_table_vue__ = __webpack_require__(189);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_table_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_ecbc1fc4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_table_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_loading_vue__ = __webpack_require__(278);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_loading_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_loading_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_21ea4c2d_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_loading_vue__ = __webpack_require__(279);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_loading_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_21ea4c2d_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_loading_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/after-leave\");\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/progress\");\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"babel-helper-vue-jsx-merge-props\");\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar hsv2hsl = function hsv2hsl(hue, sat, val) {\n  return [hue, sat * val / ((hue = (2 - sat) * val) < 1 ? hue : 2 - hue) || 0, hue / 2];\n};\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\nvar isOnePointZero = function isOnePointZero(n) {\n  return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n};\n\nvar isPercentage = function isPercentage(n) {\n  return typeof n === 'string' && n.indexOf('%') !== -1;\n};\n\n// Take input from [0, n] and return it as [0, 1]\nvar bound01 = function bound01(value, max) {\n  if (isOnePointZero(value)) value = '100%';\n\n  var processPercent = isPercentage(value);\n  value = Math.min(max, Math.max(0, parseFloat(value)));\n\n  // Automatically convert percentage into number\n  if (processPercent) {\n    value = parseInt(value * max, 10) / 100;\n  }\n\n  // Handle floating point rounding errors\n  if (Math.abs(value - max) < 0.000001) {\n    return 1;\n  }\n\n  // Convert into [0, 1] range if it isn't already\n  return value % max / parseFloat(max);\n};\n\nvar INT_HEX_MAP = { 10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F' };\n\nvar toHex = function toHex(_ref) {\n  var r = _ref.r,\n      g = _ref.g,\n      b = _ref.b;\n\n  var hexOne = function hexOne(value) {\n    value = Math.min(Math.round(value), 255);\n    var high = Math.floor(value / 16);\n    var low = value % 16;\n    return '' + (INT_HEX_MAP[high] || high) + (INT_HEX_MAP[low] || low);\n  };\n\n  if (isNaN(r) || isNaN(g) || isNaN(b)) return '';\n\n  return '#' + hexOne(r) + hexOne(g) + hexOne(b);\n};\n\nvar HEX_INT_MAP = { A: 10, B: 11, C: 12, D: 13, E: 14, F: 15 };\n\nvar parseHexChannel = function parseHexChannel(hex) {\n  if (hex.length === 2) {\n    return (HEX_INT_MAP[hex[0].toUpperCase()] || +hex[0]) * 16 + (HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1]);\n  }\n\n  return HEX_INT_MAP[hex[1].toUpperCase()] || +hex[1];\n};\n\nvar hsl2hsv = function hsl2hsv(hue, sat, light) {\n  sat = sat / 100;\n  light = light / 100;\n  var smin = sat;\n  var lmin = Math.max(light, 0.01);\n  var sv = void 0;\n  var v = void 0;\n\n  light *= 2;\n  sat *= light <= 1 ? light : 2 - light;\n  smin *= lmin <= 1 ? lmin : 2 - lmin;\n  v = (light + sat) / 2;\n  sv = light === 0 ? 2 * smin / (lmin + smin) : 2 * sat / (light + sat);\n\n  return {\n    h: hue,\n    s: sv * 100,\n    v: v * 100\n  };\n};\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nvar rgb2hsv = function rgb2hsv(r, g, b) {\n  r = bound01(r, 255);\n  g = bound01(g, 255);\n  b = bound01(b, 255);\n\n  var max = Math.max(r, g, b);\n  var min = Math.min(r, g, b);\n  var h = void 0,\n      s = void 0;\n  var v = max;\n\n  var d = max - min;\n  s = max === 0 ? 0 : d / max;\n\n  if (max === min) {\n    h = 0; // achromatic\n  } else {\n    switch (max) {\n      case r:\n        h = (g - b) / d + (g < b ? 6 : 0);\n        break;\n      case g:\n        h = (b - r) / d + 2;\n        break;\n      case b:\n        h = (r - g) / d + 4;\n        break;\n    }\n    h /= 6;\n  }\n\n  return { h: h * 360, s: s * 100, v: v * 100 };\n};\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nvar hsv2rgb = function hsv2rgb(h, s, v) {\n  h = bound01(h, 360) * 6;\n  s = bound01(s, 100);\n  v = bound01(v, 100);\n\n  var i = Math.floor(h);\n  var f = h - i;\n  var p = v * (1 - s);\n  var q = v * (1 - f * s);\n  var t = v * (1 - (1 - f) * s);\n  var mod = i % 6;\n  var r = [v, q, p, p, t, v][mod];\n  var g = [t, v, v, q, p, p][mod];\n  var b = [p, p, t, v, v, q][mod];\n\n  return {\n    r: Math.round(r * 255),\n    g: Math.round(g * 255),\n    b: Math.round(b * 255)\n  };\n};\n\nvar Color = function () {\n  function Color(options) {\n    _classCallCheck(this, Color);\n\n    this._hue = 0;\n    this._saturation = 100;\n    this._value = 100;\n    this._alpha = 100;\n\n    this.enableAlpha = false;\n    this.format = 'hex';\n    this.value = '';\n\n    options = options || {};\n\n    for (var option in options) {\n      if (options.hasOwnProperty(option)) {\n        this[option] = options[option];\n      }\n    }\n\n    this.doOnChange();\n  }\n\n  Color.prototype.set = function set(prop, value) {\n    if (arguments.length === 1 && (typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object') {\n      for (var p in prop) {\n        if (prop.hasOwnProperty(p)) {\n          this.set(p, prop[p]);\n        }\n      }\n\n      return;\n    }\n\n    this['_' + prop] = value;\n    this.doOnChange();\n  };\n\n  Color.prototype.get = function get(prop) {\n    return this['_' + prop];\n  };\n\n  Color.prototype.toRgb = function toRgb() {\n    return hsv2rgb(this._hue, this._saturation, this._value);\n  };\n\n  Color.prototype.fromString = function fromString(value) {\n    var _this = this;\n\n    if (!value) {\n      this._hue = 0;\n      this._saturation = 100;\n      this._value = 100;\n\n      this.doOnChange();\n      return;\n    }\n\n    var fromHSV = function fromHSV(h, s, v) {\n      _this._hue = Math.max(0, Math.min(360, h));\n      _this._saturation = Math.max(0, Math.min(100, s));\n      _this._value = Math.max(0, Math.min(100, v));\n\n      _this.doOnChange();\n    };\n\n    if (value.indexOf('hsl') !== -1) {\n      var parts = value.replace(/hsla|hsl|\\(|\\)/gm, '').split(/\\s|,/g).filter(function (val) {\n        return val !== '';\n      }).map(function (val, index) {\n        return index > 2 ? parseFloat(val) : parseInt(val, 10);\n      });\n\n      if (parts.length === 4) {\n        this._alpha = Math.floor(parseFloat(parts[3]) * 100);\n      } else if (parts.length === 3) {\n        this._alpha = 100;\n      }\n      if (parts.length >= 3) {\n        var _hsl2hsv = hsl2hsv(parts[0], parts[1], parts[2]),\n            h = _hsl2hsv.h,\n            s = _hsl2hsv.s,\n            v = _hsl2hsv.v;\n\n        fromHSV(h, s, v);\n      }\n    } else if (value.indexOf('hsv') !== -1) {\n      var _parts = value.replace(/hsva|hsv|\\(|\\)/gm, '').split(/\\s|,/g).filter(function (val) {\n        return val !== '';\n      }).map(function (val, index) {\n        return index > 2 ? parseFloat(val) : parseInt(val, 10);\n      });\n\n      if (_parts.length === 4) {\n        this._alpha = Math.floor(parseFloat(_parts[3]) * 100);\n      } else if (_parts.length === 3) {\n        this._alpha = 100;\n      }\n      if (_parts.length >= 3) {\n        fromHSV(_parts[0], _parts[1], _parts[2]);\n      }\n    } else if (value.indexOf('rgb') !== -1) {\n      var _parts2 = value.replace(/rgba|rgb|\\(|\\)/gm, '').split(/\\s|,/g).filter(function (val) {\n        return val !== '';\n      }).map(function (val, index) {\n        return index > 2 ? parseFloat(val) : parseInt(val, 10);\n      });\n\n      if (_parts2.length === 4) {\n        this._alpha = Math.floor(parseFloat(_parts2[3]) * 100);\n      } else if (_parts2.length === 3) {\n        this._alpha = 100;\n      }\n      if (_parts2.length >= 3) {\n        var _rgb2hsv = rgb2hsv(_parts2[0], _parts2[1], _parts2[2]),\n            _h = _rgb2hsv.h,\n            _s = _rgb2hsv.s,\n            _v = _rgb2hsv.v;\n\n        fromHSV(_h, _s, _v);\n      }\n    } else if (value.indexOf('#') !== -1) {\n      var hex = value.replace('#', '').trim();\n      var r = void 0,\n          g = void 0,\n          b = void 0;\n\n      if (hex.length === 3) {\n        r = parseHexChannel(hex[0] + hex[0]);\n        g = parseHexChannel(hex[1] + hex[1]);\n        b = parseHexChannel(hex[2] + hex[2]);\n      } else if (hex.length === 6 || hex.length === 8) {\n        r = parseHexChannel(hex.substring(0, 2));\n        g = parseHexChannel(hex.substring(2, 4));\n        b = parseHexChannel(hex.substring(4, 6));\n      }\n\n      if (hex.length === 8) {\n        this._alpha = Math.floor(parseHexChannel(hex.substring(6)) / 255 * 100);\n      } else if (hex.length === 3 || hex.length === 6) {\n        this._alpha = 100;\n      }\n\n      var _rgb2hsv2 = rgb2hsv(r, g, b),\n          _h2 = _rgb2hsv2.h,\n          _s2 = _rgb2hsv2.s,\n          _v2 = _rgb2hsv2.v;\n\n      fromHSV(_h2, _s2, _v2);\n    }\n  };\n\n  Color.prototype.compare = function compare(color) {\n    return Math.abs(color._hue - this._hue) < 2 && Math.abs(color._saturation - this._saturation) < 1 && Math.abs(color._value - this._value) < 1 && Math.abs(color._alpha - this._alpha) < 1;\n  };\n\n  Color.prototype.doOnChange = function doOnChange() {\n    var _hue = this._hue,\n        _saturation = this._saturation,\n        _value = this._value,\n        _alpha = this._alpha,\n        format = this.format;\n\n\n    if (this.enableAlpha) {\n      switch (format) {\n        case 'hsl':\n          var hsl = hsv2hsl(_hue, _saturation / 100, _value / 100);\n          this.value = 'hsla(' + _hue + ', ' + Math.round(hsl[1] * 100) + '%, ' + Math.round(hsl[2] * 100) + '%, ' + _alpha / 100 + ')';\n          break;\n        case 'hsv':\n          this.value = 'hsva(' + _hue + ', ' + Math.round(_saturation) + '%, ' + Math.round(_value) + '%, ' + _alpha / 100 + ')';\n          break;\n        default:\n          var _hsv2rgb = hsv2rgb(_hue, _saturation, _value),\n              r = _hsv2rgb.r,\n              g = _hsv2rgb.g,\n              b = _hsv2rgb.b;\n\n          this.value = 'rgba(' + r + ', ' + g + ', ' + b + ', ' + _alpha / 100 + ')';\n      }\n    } else {\n      switch (format) {\n        case 'hsl':\n          var _hsl = hsv2hsl(_hue, _saturation / 100, _value / 100);\n          this.value = 'hsl(' + _hue + ', ' + Math.round(_hsl[1] * 100) + '%, ' + Math.round(_hsl[2] * 100) + '%)';\n          break;\n        case 'hsv':\n          this.value = 'hsv(' + _hue + ', ' + Math.round(_saturation) + '%, ' + Math.round(_value) + '%)';\n          break;\n        case 'rgb':\n          var _hsv2rgb2 = hsv2rgb(_hue, _saturation, _value),\n              _r = _hsv2rgb2.r,\n              _g = _hsv2rgb2.g,\n              _b = _hsv2rgb2.b;\n\n          this.value = 'rgb(' + _r + ', ' + _g + ', ' + _b + ')';\n          break;\n        default:\n          this.value = toHex(hsv2rgb(_hue, _saturation, _value));\n      }\n    }\n  };\n\n  return Color;\n}();\n\nexports.default = Color;\n;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(46);\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _index = __webpack_require__(47);\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _index3 = __webpack_require__(54);\n\nvar _index4 = _interopRequireDefault(_index3);\n\nvar _index5 = __webpack_require__(58);\n\nvar _index6 = _interopRequireDefault(_index5);\n\nvar _index7 = __webpack_require__(65);\n\nvar _index8 = _interopRequireDefault(_index7);\n\nvar _index9 = __webpack_require__(69);\n\nvar _index10 = _interopRequireDefault(_index9);\n\nvar _index11 = __webpack_require__(73);\n\nvar _index12 = _interopRequireDefault(_index11);\n\nvar _index13 = __webpack_require__(77);\n\nvar _index14 = _interopRequireDefault(_index13);\n\nvar _index15 = __webpack_require__(83);\n\nvar _index16 = _interopRequireDefault(_index15);\n\nvar _index17 = __webpack_require__(86);\n\nvar _index18 = _interopRequireDefault(_index17);\n\nvar _index19 = __webpack_require__(90);\n\nvar _index20 = _interopRequireDefault(_index19);\n\nvar _index21 = __webpack_require__(94);\n\nvar _index22 = _interopRequireDefault(_index21);\n\nvar _index23 = __webpack_require__(99);\n\nvar _index24 = _interopRequireDefault(_index23);\n\nvar _index25 = __webpack_require__(103);\n\nvar _index26 = _interopRequireDefault(_index25);\n\nvar _index27 = __webpack_require__(107);\n\nvar _index28 = _interopRequireDefault(_index27);\n\nvar _index29 = __webpack_require__(111);\n\nvar _index30 = _interopRequireDefault(_index29);\n\nvar _index31 = __webpack_require__(115);\n\nvar _index32 = _interopRequireDefault(_index31);\n\nvar _index33 = __webpack_require__(119);\n\nvar _index34 = _interopRequireDefault(_index33);\n\nvar _index35 = __webpack_require__(123);\n\nvar _index36 = _interopRequireDefault(_index35);\n\nvar _index37 = __webpack_require__(127);\n\nvar _index38 = _interopRequireDefault(_index37);\n\nvar _index39 = __webpack_require__(131);\n\nvar _index40 = _interopRequireDefault(_index39);\n\nvar _index41 = __webpack_require__(141);\n\nvar _index42 = _interopRequireDefault(_index41);\n\nvar _index43 = __webpack_require__(142);\n\nvar _index44 = _interopRequireDefault(_index43);\n\nvar _index45 = __webpack_require__(146);\n\nvar _index46 = _interopRequireDefault(_index45);\n\nvar _index47 = __webpack_require__(150);\n\nvar _index48 = _interopRequireDefault(_index47);\n\nvar _index49 = __webpack_require__(154);\n\nvar _index50 = _interopRequireDefault(_index49);\n\nvar _index51 = __webpack_require__(169);\n\nvar _index52 = _interopRequireDefault(_index51);\n\nvar _index53 = __webpack_require__(171);\n\nvar _index54 = _interopRequireDefault(_index53);\n\nvar _index55 = __webpack_require__(194);\n\nvar _index56 = _interopRequireDefault(_index55);\n\nvar _index57 = __webpack_require__(199);\n\nvar _index58 = _interopRequireDefault(_index57);\n\nvar _index59 = __webpack_require__(204);\n\nvar _index60 = _interopRequireDefault(_index59);\n\nvar _index61 = __webpack_require__(209);\n\nvar _index62 = _interopRequireDefault(_index61);\n\nvar _index63 = __webpack_require__(211);\n\nvar _index64 = _interopRequireDefault(_index63);\n\nvar _index65 = __webpack_require__(217);\n\nvar _index66 = _interopRequireDefault(_index65);\n\nvar _index67 = __webpack_require__(221);\n\nvar _index68 = _interopRequireDefault(_index67);\n\nvar _index69 = __webpack_require__(225);\n\nvar _index70 = _interopRequireDefault(_index69);\n\nvar _index71 = __webpack_require__(229);\n\nvar _index72 = _interopRequireDefault(_index71);\n\nvar _index73 = __webpack_require__(234);\n\nvar _index74 = _interopRequireDefault(_index73);\n\nvar _index75 = __webpack_require__(242);\n\nvar _index76 = _interopRequireDefault(_index75);\n\nvar _index77 = __webpack_require__(246);\n\nvar _index78 = _interopRequireDefault(_index77);\n\nvar _index79 = __webpack_require__(250);\n\nvar _index80 = _interopRequireDefault(_index79);\n\nvar _index81 = __webpack_require__(259);\n\nvar _index82 = _interopRequireDefault(_index81);\n\nvar _index83 = __webpack_require__(263);\n\nvar _index84 = _interopRequireDefault(_index83);\n\nvar _index85 = __webpack_require__(268);\n\nvar _index86 = _interopRequireDefault(_index85);\n\nvar _index87 = __webpack_require__(276);\n\nvar _index88 = _interopRequireDefault(_index87);\n\nvar _index89 = __webpack_require__(281);\n\nvar _index90 = _interopRequireDefault(_index89);\n\nvar _index91 = __webpack_require__(285);\n\nvar _index92 = _interopRequireDefault(_index91);\n\nvar _index93 = __webpack_require__(287);\n\nvar _index94 = _interopRequireDefault(_index93);\n\nvar _index95 = __webpack_require__(289);\n\nvar _index96 = _interopRequireDefault(_index95);\n\nvar _index97 = __webpack_require__(301);\n\nvar _index98 = _interopRequireDefault(_index97);\n\nvar _index99 = __webpack_require__(305);\n\nvar _index100 = _interopRequireDefault(_index99);\n\nvar _index101 = __webpack_require__(309);\n\nvar _index102 = _interopRequireDefault(_index101);\n\nvar _index103 = __webpack_require__(314);\n\nvar _index104 = _interopRequireDefault(_index103);\n\nvar _index105 = __webpack_require__(318);\n\nvar _index106 = _interopRequireDefault(_index105);\n\nvar _index107 = __webpack_require__(322);\n\nvar _index108 = _interopRequireDefault(_index107);\n\nvar _index109 = __webpack_require__(326);\n\nvar _index110 = _interopRequireDefault(_index109);\n\nvar _index111 = __webpack_require__(330);\n\nvar _index112 = _interopRequireDefault(_index111);\n\nvar _index113 = __webpack_require__(334);\n\nvar _index114 = _interopRequireDefault(_index113);\n\nvar _index115 = __webpack_require__(339);\n\nvar _index116 = _interopRequireDefault(_index115);\n\nvar _index117 = __webpack_require__(343);\n\nvar _index118 = _interopRequireDefault(_index117);\n\nvar _index119 = __webpack_require__(347);\n\nvar _index120 = _interopRequireDefault(_index119);\n\nvar _index121 = __webpack_require__(351);\n\nvar _index122 = _interopRequireDefault(_index121);\n\nvar _index123 = __webpack_require__(355);\n\nvar _index124 = _interopRequireDefault(_index123);\n\nvar _index125 = __webpack_require__(361);\n\nvar _index126 = _interopRequireDefault(_index125);\n\nvar _index127 = __webpack_require__(380);\n\nvar _index128 = _interopRequireDefault(_index127);\n\nvar _index129 = __webpack_require__(387);\n\nvar _index130 = _interopRequireDefault(_index129);\n\nvar _index131 = __webpack_require__(391);\n\nvar _index132 = _interopRequireDefault(_index131);\n\nvar _index133 = __webpack_require__(395);\n\nvar _index134 = _interopRequireDefault(_index133);\n\nvar _index135 = __webpack_require__(399);\n\nvar _index136 = _interopRequireDefault(_index135);\n\nvar _index137 = __webpack_require__(403);\n\nvar _index138 = _interopRequireDefault(_index137);\n\nvar _locale = __webpack_require__(16);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _collapseTransition = __webpack_require__(20);\n\nvar _collapseTransition2 = _interopRequireDefault(_collapseTransition);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar components = [_index2.default, _index4.default, _index6.default, _index8.default, _index10.default, _index12.default, _index14.default, _index16.default, _index18.default, _index20.default, _index22.default, _index24.default, _index26.default, _index28.default, _index30.default, _index32.default, _index34.default, _index36.default, _index38.default, _index40.default, _index42.default, _index44.default, _index46.default, _index48.default, _index50.default, _index52.default, _index54.default, _index56.default, _index58.default, _index60.default, _index62.default, _index66.default, _index68.default, _index70.default, _index72.default, _index74.default, _index76.default, _index78.default, _index80.default, _index82.default, _index86.default, _index90.default, _index92.default, _index94.default, _index96.default, _index98.default, _index100.default, _index104.default, _index106.default, _index108.default, _index110.default, _index112.default, _index114.default, _index116.default, _index118.default, _index120.default, _index122.default, _index124.default, _index126.default, _index128.default, _index130.default, _index132.default, _index134.default, _index136.default, _index138.default, _collapseTransition2.default]; /* Automatically generated by './build/bin/build-entry.js' */\n\nvar install = function install(Vue) {\n  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  _locale2.default.use(opts.locale);\n  _locale2.default.i18n(opts.i18n);\n\n  components.forEach(function (component) {\n    Vue.component(component.name, component);\n  });\n\n  Vue.use(_index88.default.directive);\n\n  Vue.prototype.$ELEMENT = {\n    size: opts.size || '',\n    zIndex: opts.zIndex || 2000\n  };\n\n  Vue.prototype.$loading = _index88.default.service;\n  Vue.prototype.$msgbox = _index64.default;\n  Vue.prototype.$alert = _index64.default.alert;\n  Vue.prototype.$confirm = _index64.default.confirm;\n  Vue.prototype.$prompt = _index64.default.prompt;\n  Vue.prototype.$notify = _index84.default;\n  Vue.prototype.$message = _index102.default;\n};\n\n/* istanbul ignore if */\nif (typeof window !== 'undefined' && window.Vue) {\n  install(window.Vue);\n}\n\nmodule.exports = {\n  version: '2.4.6',\n  locale: _locale2.default.use,\n  i18n: _locale2.default.i18n,\n  install: install,\n  CollapseTransition: _collapseTransition2.default,\n  Loading: _index88.default,\n  Pagination: _index2.default,\n  Dialog: _index4.default,\n  Autocomplete: _index6.default,\n  Dropdown: _index8.default,\n  DropdownMenu: _index10.default,\n  DropdownItem: _index12.default,\n  Menu: _index14.default,\n  Submenu: _index16.default,\n  MenuItem: _index18.default,\n  MenuItemGroup: _index20.default,\n  Input: _index22.default,\n  InputNumber: _index24.default,\n  Radio: _index26.default,\n  RadioGroup: _index28.default,\n  RadioButton: _index30.default,\n  Checkbox: _index32.default,\n  CheckboxButton: _index34.default,\n  CheckboxGroup: _index36.default,\n  Switch: _index38.default,\n  Select: _index40.default,\n  Option: _index42.default,\n  OptionGroup: _index44.default,\n  Button: _index46.default,\n  ButtonGroup: _index48.default,\n  Table: _index50.default,\n  TableColumn: _index52.default,\n  DatePicker: _index54.default,\n  TimeSelect: _index56.default,\n  TimePicker: _index58.default,\n  Popover: _index60.default,\n  Tooltip: _index62.default,\n  MessageBox: _index64.default,\n  Breadcrumb: _index66.default,\n  BreadcrumbItem: _index68.default,\n  Form: _index70.default,\n  FormItem: _index72.default,\n  Tabs: _index74.default,\n  TabPane: _index76.default,\n  Tag: _index78.default,\n  Tree: _index80.default,\n  Alert: _index82.default,\n  Notification: _index84.default,\n  Slider: _index86.default,\n  Icon: _index90.default,\n  Row: _index92.default,\n  Col: _index94.default,\n  Upload: _index96.default,\n  Progress: _index98.default,\n  Spinner: _index100.default,\n  Message: _index102.default,\n  Badge: _index104.default,\n  Card: _index106.default,\n  Rate: _index108.default,\n  Steps: _index110.default,\n  Step: _index112.default,\n  Carousel: _index114.default,\n  Scrollbar: _index116.default,\n  CarouselItem: _index118.default,\n  Collapse: _index120.default,\n  CollapseItem: _index122.default,\n  Cascader: _index124.default,\n  ColorPicker: _index126.default,\n  Transfer: _index128.default,\n  Container: _index130.default,\n  Header: _index132.default,\n  Aside: _index134.default,\n  Main: _index136.default,\n  Footer: _index138.default\n};\n\nmodule.exports.default = module.exports;\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _pagination = __webpack_require__(48);\n\nvar _pagination2 = _interopRequireDefault(_pagination);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_pagination2.default.install = function (Vue) {\n  Vue.component(_pagination2.default.name, _pagination2.default);\n};\n\nexports.default = _pagination2.default;\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _pager = __webpack_require__(49);\n\nvar _pager2 = _interopRequireDefault(_pager);\n\nvar _select = __webpack_require__(52);\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _option = __webpack_require__(53);\n\nvar _option2 = _interopRequireDefault(_option);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElPagination',\n\n  props: {\n    pageSize: {\n      type: Number,\n      default: 10\n    },\n\n    small: Boolean,\n\n    total: Number,\n\n    pageCount: Number,\n\n    pagerCount: {\n      type: Number,\n      validator: function validator(value) {\n        return (value | 0) === value && value > 4 && value < 22 && value % 2 === 1;\n      },\n\n      default: 7\n    },\n\n    currentPage: {\n      type: Number,\n      default: 1\n    },\n\n    layout: {\n      default: 'prev, pager, next, jumper, ->, total'\n    },\n\n    pageSizes: {\n      type: Array,\n      default: function _default() {\n        return [10, 20, 30, 40, 50, 100];\n      }\n    },\n\n    popperClass: String,\n\n    prevText: String,\n\n    nextText: String,\n\n    background: Boolean,\n\n    disabled: Boolean\n  },\n\n  data: function data() {\n    return {\n      internalCurrentPage: 1,\n      internalPageSize: 0,\n      lastEmittedPage: -1,\n      userChangePageSize: false\n    };\n  },\n  render: function render(h) {\n    var template = h(\n      'div',\n      { 'class': ['el-pagination', {\n          'is-background': this.background,\n          'el-pagination--small': this.small\n        }] },\n      []\n    );\n    var layout = this.layout || '';\n    if (!layout) return;\n    var TEMPLATE_MAP = {\n      prev: h(\n        'prev',\n        null,\n        []\n      ),\n      jumper: h(\n        'jumper',\n        null,\n        []\n      ),\n      pager: h(\n        'pager',\n        {\n          attrs: { currentPage: this.internalCurrentPage, pageCount: this.internalPageCount, pagerCount: this.pagerCount, disabled: this.disabled },\n          on: {\n            'change': this.handleCurrentChange\n          }\n        },\n        []\n      ),\n      next: h(\n        'next',\n        null,\n        []\n      ),\n      sizes: h(\n        'sizes',\n        {\n          attrs: { pageSizes: this.pageSizes }\n        },\n        []\n      ),\n      slot: h(\n        'my-slot',\n        null,\n        []\n      ),\n      total: h(\n        'total',\n        null,\n        []\n      )\n    };\n    var components = layout.split(',').map(function (item) {\n      return item.trim();\n    });\n    var rightWrapper = h(\n      'div',\n      { 'class': 'el-pagination__rightwrapper' },\n      []\n    );\n    var haveRightWrapper = false;\n\n    template.children = template.children || [];\n    rightWrapper.children = rightWrapper.children || [];\n    components.forEach(function (compo) {\n      if (compo === '->') {\n        haveRightWrapper = true;\n        return;\n      }\n\n      if (!haveRightWrapper) {\n        template.children.push(TEMPLATE_MAP[compo]);\n      } else {\n        rightWrapper.children.push(TEMPLATE_MAP[compo]);\n      }\n    });\n\n    if (haveRightWrapper) {\n      template.children.unshift(rightWrapper);\n    }\n\n    return template;\n  },\n\n\n  components: {\n    MySlot: {\n      render: function render(h) {\n        return this.$parent.$slots.default ? this.$parent.$slots.default[0] : '';\n      }\n    },\n    Prev: {\n      render: function render(h) {\n        return h(\n          'button',\n          {\n            attrs: {\n              type: 'button',\n\n              disabled: this.$parent.disabled || this.$parent.internalCurrentPage <= 1\n            },\n            'class': 'btn-prev', on: {\n              'click': this.$parent.prev\n            }\n          },\n          [this.$parent.prevText ? h(\n            'span',\n            null,\n            [this.$parent.prevText]\n          ) : h(\n            'i',\n            { 'class': 'el-icon el-icon-arrow-left' },\n            []\n          )]\n        );\n      }\n    },\n\n    Next: {\n      render: function render(h) {\n        return h(\n          'button',\n          {\n            attrs: {\n              type: 'button',\n\n              disabled: this.$parent.disabled || this.$parent.internalCurrentPage === this.$parent.internalPageCount || this.$parent.internalPageCount === 0\n            },\n            'class': 'btn-next', on: {\n              'click': this.$parent.next\n            }\n          },\n          [this.$parent.nextText ? h(\n            'span',\n            null,\n            [this.$parent.nextText]\n          ) : h(\n            'i',\n            { 'class': 'el-icon el-icon-arrow-right' },\n            []\n          )]\n        );\n      }\n    },\n\n    Sizes: {\n      mixins: [_locale2.default],\n\n      props: {\n        pageSizes: Array\n      },\n\n      watch: {\n        pageSizes: {\n          immediate: true,\n          handler: function handler(newVal, oldVal) {\n            if ((0, _util.valueEquals)(newVal, oldVal)) return;\n            if (Array.isArray(newVal)) {\n              this.$parent.internalPageSize = newVal.indexOf(this.$parent.pageSize) > -1 ? this.$parent.pageSize : this.pageSizes[0];\n            }\n          }\n        }\n      },\n\n      render: function render(h) {\n        var _this = this;\n\n        return h(\n          'span',\n          { 'class': 'el-pagination__sizes' },\n          [h(\n            'el-select',\n            {\n              attrs: {\n                value: this.$parent.internalPageSize,\n                popperClass: this.$parent.popperClass || '',\n                size: 'mini',\n\n                disabled: this.$parent.disabled },\n              on: {\n                'input': this.handleChange\n              }\n            },\n            [this.pageSizes.map(function (item) {\n              return h(\n                'el-option',\n                {\n                  attrs: {\n                    value: item,\n                    label: item + _this.t('el.pagination.pagesize') }\n                },\n                []\n              );\n            })]\n          )]\n        );\n      },\n\n\n      components: {\n        ElSelect: _select2.default,\n        ElOption: _option2.default\n      },\n\n      methods: {\n        handleChange: function handleChange(val) {\n          if (val !== this.$parent.internalPageSize) {\n            this.$parent.internalPageSize = val = parseInt(val, 10);\n            this.$parent.userChangePageSize = true;\n            this.$parent.$emit('size-change', val);\n            this.$parent.$emit('update:pageSize', val);\n          }\n        }\n      }\n    },\n\n    Jumper: {\n      mixins: [_locale2.default],\n\n      data: function data() {\n        return {\n          oldValue: null\n        };\n      },\n\n\n      components: { ElInput: _input2.default },\n\n      watch: {\n        '$parent.internalPageSize': function $parentInternalPageSize() {\n          var _this2 = this;\n\n          this.$nextTick(function () {\n            _this2.$refs.input.$el.querySelector('input').value = _this2.$parent.internalCurrentPage;\n          });\n        }\n      },\n\n      methods: {\n        handleFocus: function handleFocus(event) {\n          this.oldValue = event.target.value;\n        },\n        handleBlur: function handleBlur(_ref) {\n          var target = _ref.target;\n\n          this.resetValueIfNeed(target.value);\n          this.reassignMaxValue(target.value);\n        },\n        handleKeyup: function handleKeyup(_ref2) {\n          var keyCode = _ref2.keyCode,\n              target = _ref2.target;\n\n          if (keyCode === 13 && this.oldValue && target.value !== this.oldValue) {\n            this.handleChange(target.value);\n          }\n        },\n        handleChange: function handleChange(value) {\n          this.$parent.internalCurrentPage = this.$parent.getValidCurrentPage(value);\n          this.$parent.emitChange();\n          this.oldValue = null;\n          this.resetValueIfNeed(value);\n        },\n        resetValueIfNeed: function resetValueIfNeed(value) {\n          var num = parseInt(value, 10);\n          if (!isNaN(num)) {\n            if (num < 1) {\n              this.$refs.input.setCurrentValue(1);\n            } else {\n              this.reassignMaxValue(value);\n            }\n          }\n        },\n        reassignMaxValue: function reassignMaxValue(value) {\n          var internalPageCount = this.$parent.internalPageCount;\n          if (+value > internalPageCount) {\n            this.$refs.input.setCurrentValue(internalPageCount);\n          }\n        }\n      },\n\n      render: function render(h) {\n        return h(\n          'span',\n          { 'class': 'el-pagination__jump' },\n          [this.t('el.pagination.goto'), h(\n            'el-input',\n            {\n              'class': 'el-pagination__editor is-in-pagination',\n              attrs: { min: 1,\n                max: this.$parent.internalPageCount,\n                value: this.$parent.internalCurrentPage,\n\n                type: 'number',\n\n                disabled: this.$parent.disabled\n              },\n              domProps: {\n                'value': this.$parent.internalCurrentPage\n              },\n              ref: 'input', nativeOn: {\n                'keyup': this.handleKeyup\n              },\n              on: {\n                'change': this.handleChange,\n                'focus': this.handleFocus,\n                'blur': this.handleBlur\n              }\n            },\n            []\n          ), this.t('el.pagination.pageClassifier')]\n        );\n      }\n    },\n\n    Total: {\n      mixins: [_locale2.default],\n\n      render: function render(h) {\n        return typeof this.$parent.total === 'number' ? h(\n          'span',\n          { 'class': 'el-pagination__total' },\n          [this.t('el.pagination.total', { total: this.$parent.total })]\n        ) : '';\n      }\n    },\n\n    Pager: _pager2.default\n  },\n\n  methods: {\n    handleCurrentChange: function handleCurrentChange(val) {\n      this.internalCurrentPage = this.getValidCurrentPage(val);\n      this.userChangePageSize = true;\n      this.emitChange();\n    },\n    prev: function prev() {\n      if (this.disabled) return;\n      var newVal = this.internalCurrentPage - 1;\n      this.internalCurrentPage = this.getValidCurrentPage(newVal);\n      this.$emit('prev-click', this.internalCurrentPage);\n      this.emitChange();\n    },\n    next: function next() {\n      if (this.disabled) return;\n      var newVal = this.internalCurrentPage + 1;\n      this.internalCurrentPage = this.getValidCurrentPage(newVal);\n      this.$emit('next-click', this.internalCurrentPage);\n      this.emitChange();\n    },\n    getValidCurrentPage: function getValidCurrentPage(value) {\n      value = parseInt(value, 10);\n\n      var havePageCount = typeof this.internalPageCount === 'number';\n\n      var resetValue = void 0;\n      if (!havePageCount) {\n        if (isNaN(value) || value < 1) resetValue = 1;\n      } else {\n        if (value < 1) {\n          resetValue = 1;\n        } else if (value > this.internalPageCount) {\n          resetValue = this.internalPageCount;\n        }\n      }\n\n      if (resetValue === undefined && isNaN(value)) {\n        resetValue = 1;\n      } else if (resetValue === 0) {\n        resetValue = 1;\n      }\n\n      return resetValue === undefined ? value : resetValue;\n    },\n    emitChange: function emitChange() {\n      var _this3 = this;\n\n      this.$nextTick(function () {\n        if (_this3.internalCurrentPage !== _this3.lastEmittedPage || _this3.userChangePageSize) {\n          _this3.$emit('current-change', _this3.internalCurrentPage);\n          _this3.lastEmittedPage = _this3.internalCurrentPage;\n          _this3.userChangePageSize = false;\n        }\n      });\n    }\n  },\n\n  computed: {\n    internalPageCount: function internalPageCount() {\n      if (typeof this.total === 'number') {\n        return Math.ceil(this.total / this.internalPageSize);\n      } else if (typeof this.pageCount === 'number') {\n        return this.pageCount;\n      }\n      return null;\n    }\n  },\n\n  watch: {\n    currentPage: {\n      immediate: true,\n      handler: function handler(val) {\n        this.internalCurrentPage = val;\n      }\n    },\n\n    pageSize: {\n      immediate: true,\n      handler: function handler(val) {\n        this.internalPageSize = isNaN(val) ? 10 : val;\n      }\n    },\n\n    internalCurrentPage: {\n      immediate: true,\n      handler: function handler(newVal, oldVal) {\n        newVal = parseInt(newVal, 10);\n\n        /* istanbul ignore if */\n        if (isNaN(newVal)) {\n          newVal = oldVal || 1;\n        } else {\n          newVal = this.getValidCurrentPage(newVal);\n        }\n\n        if (newVal !== undefined) {\n          this.internalCurrentPage = newVal;\n          if (oldVal !== newVal) {\n            this.$emit('update:currentPage', newVal);\n          }\n        } else {\n          this.$emit('update:currentPage', newVal);\n        }\n        this.lastEmittedPage = -1;\n      }\n    },\n\n    internalPageCount: function internalPageCount(newVal) {\n      /* istanbul ignore if */\n      var oldPage = this.internalCurrentPage;\n      if (newVal > 0 && oldPage === 0) {\n        this.internalCurrentPage = 1;\n      } else if (oldPage > newVal) {\n        this.internalCurrentPage = newVal === 0 ? 1 : newVal;\n        this.userChangePageSize && this.emitChange();\n      }\n      this.userChangePageSize = false;\n    }\n  }\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue__ = __webpack_require__(50);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_046e52c4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_pager_vue__ = __webpack_require__(51);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_pager_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_046e52c4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_pager_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElPager',\n\n  props: {\n    currentPage: Number,\n\n    pageCount: Number,\n\n    pagerCount: Number,\n\n    disabled: Boolean\n  },\n\n  watch: {\n    showPrevMore: function showPrevMore(val) {\n      if (!val) this.quickprevIconClass = 'el-icon-more';\n    },\n    showNextMore: function showNextMore(val) {\n      if (!val) this.quicknextIconClass = 'el-icon-more';\n    }\n  },\n\n  methods: {\n    onPagerClick: function onPagerClick(event) {\n      var target = event.target;\n      if (target.tagName === 'UL' || this.disabled) {\n        return;\n      }\n\n      var newPage = Number(event.target.textContent);\n      var pageCount = this.pageCount;\n      var currentPage = this.currentPage;\n      var pagerCountOffset = this.pagerCount - 2;\n\n      if (target.className.indexOf('more') !== -1) {\n        if (target.className.indexOf('quickprev') !== -1) {\n          newPage = currentPage - pagerCountOffset;\n        } else if (target.className.indexOf('quicknext') !== -1) {\n          newPage = currentPage + pagerCountOffset;\n        }\n      }\n\n      /* istanbul ignore if */\n      if (!isNaN(newPage)) {\n        if (newPage < 1) {\n          newPage = 1;\n        }\n\n        if (newPage > pageCount) {\n          newPage = pageCount;\n        }\n      }\n\n      if (newPage !== currentPage) {\n        this.$emit('change', newPage);\n      }\n    },\n    onMouseenter: function onMouseenter(direction) {\n      if (this.disabled) return;\n      if (direction === 'left') {\n        this.quickprevIconClass = 'el-icon-d-arrow-left';\n      } else {\n        this.quicknextIconClass = 'el-icon-d-arrow-right';\n      }\n    }\n  },\n\n  computed: {\n    pagers: function pagers() {\n      var pagerCount = this.pagerCount;\n      var halfPagerCount = (pagerCount - 1) / 2;\n\n      var currentPage = Number(this.currentPage);\n      var pageCount = Number(this.pageCount);\n\n      var showPrevMore = false;\n      var showNextMore = false;\n\n      if (pageCount > pagerCount) {\n        if (currentPage > pagerCount - halfPagerCount) {\n          showPrevMore = true;\n        }\n\n        if (currentPage < pageCount - halfPagerCount) {\n          showNextMore = true;\n        }\n      }\n\n      var array = [];\n\n      if (showPrevMore && !showNextMore) {\n        var startPage = pageCount - (pagerCount - 2);\n        for (var i = startPage; i < pageCount; i++) {\n          array.push(i);\n        }\n      } else if (!showPrevMore && showNextMore) {\n        for (var _i = 2; _i < pagerCount; _i++) {\n          array.push(_i);\n        }\n      } else if (showPrevMore && showNextMore) {\n        var offset = Math.floor(pagerCount / 2) - 1;\n        for (var _i2 = currentPage - offset; _i2 <= currentPage + offset; _i2++) {\n          array.push(_i2);\n        }\n      } else {\n        for (var _i3 = 2; _i3 < pageCount; _i3++) {\n          array.push(_i3);\n        }\n      }\n\n      this.showPrevMore = showPrevMore;\n      this.showNextMore = showNextMore;\n\n      return array;\n    }\n  },\n\n  data: function data() {\n    return {\n      current: null,\n      showPrevMore: false,\n      showNextMore: false,\n      quicknextIconClass: 'el-icon-more',\n      quickprevIconClass: 'el-icon-more'\n    };\n  }\n};\n\n/***/ }),\n/* 51 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"el-pager\",on:{\"click\":_vm.onPagerClick}},[(_vm.pageCount > 0)?_c('li',{staticClass:\"number\",class:{ active: _vm.currentPage === 1, disabled: _vm.disabled }},[_vm._v(\"1\")]):_vm._e(),(_vm.showPrevMore)?_c('li',{staticClass:\"el-icon more btn-quickprev\",class:[_vm.quickprevIconClass, { disabled: _vm.disabled }],on:{\"mouseenter\":function($event){_vm.onMouseenter('left')},\"mouseleave\":function($event){_vm.quickprevIconClass = 'el-icon-more'}}}):_vm._e(),_vm._l((_vm.pagers),function(pager){return _c('li',{key:pager,staticClass:\"number\",class:{ active: _vm.currentPage === pager, disabled: _vm.disabled }},[_vm._v(_vm._s(pager))])}),(_vm.showNextMore)?_c('li',{staticClass:\"el-icon more btn-quicknext\",class:[_vm.quicknextIconClass, { disabled: _vm.disabled }],on:{\"mouseenter\":function($event){_vm.onMouseenter('right')},\"mouseleave\":function($event){_vm.quicknextIconClass = 'el-icon-more'}}}):_vm._e(),(_vm.pageCount > 1)?_c('li',{staticClass:\"number\",class:{ active: _vm.currentPage === _vm.pageCount, disabled: _vm.disabled }},[_vm._v(_vm._s(_vm.pageCount))]):_vm._e()],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/select\");\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/option\");\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _component = __webpack_require__(55);\n\nvar _component2 = _interopRequireDefault(_component);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_component2.default.install = function (Vue) {\n  Vue.component(_component2.default.name, _component2.default);\n};\n\nexports.default = _component2.default;\n\n/***/ }),\n/* 55 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_61ef592c_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_component_vue__ = __webpack_require__(57);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_61ef592c_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_component_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _popup = __webpack_require__(12);\n\nvar _popup2 = _interopRequireDefault(_popup);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElDialog',\n\n  mixins: [_popup2.default, _emitter2.default, _migrating2.default],\n\n  props: {\n    title: {\n      type: String,\n      default: ''\n    },\n\n    modal: {\n      type: Boolean,\n      default: true\n    },\n\n    modalAppendToBody: {\n      type: Boolean,\n      default: true\n    },\n\n    appendToBody: {\n      type: Boolean,\n      default: false\n    },\n\n    lockScroll: {\n      type: Boolean,\n      default: true\n    },\n\n    closeOnClickModal: {\n      type: Boolean,\n      default: true\n    },\n\n    closeOnPressEscape: {\n      type: Boolean,\n      default: true\n    },\n\n    showClose: {\n      type: Boolean,\n      default: true\n    },\n\n    width: String,\n\n    fullscreen: Boolean,\n\n    customClass: {\n      type: String,\n      default: ''\n    },\n\n    top: {\n      type: String,\n      default: '15vh'\n    },\n    beforeClose: Function,\n    center: {\n      type: Boolean,\n      default: false\n    }\n  },\n\n  data: function data() {\n    return {\n      closed: false\n    };\n  },\n\n\n  watch: {\n    visible: function visible(val) {\n      var _this = this;\n\n      if (val) {\n        this.closed = false;\n        this.$emit('open');\n        this.$el.addEventListener('scroll', this.updatePopper);\n        this.$nextTick(function () {\n          _this.$refs.dialog.scrollTop = 0;\n        });\n        if (this.appendToBody) {\n          document.body.appendChild(this.$el);\n        }\n      } else {\n        this.$el.removeEventListener('scroll', this.updatePopper);\n        if (!this.closed) this.$emit('close');\n      }\n    }\n  },\n\n  computed: {\n    style: function style() {\n      var style = {};\n      if (!this.fullscreen) {\n        style.marginTop = this.top;\n        if (this.width) {\n          style.width = this.width;\n        }\n      }\n      return style;\n    }\n  },\n\n  methods: {\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'size': 'size is removed.'\n        }\n      };\n    },\n    handleWrapperClick: function handleWrapperClick() {\n      if (!this.closeOnClickModal) return;\n      this.handleClose();\n    },\n    handleClose: function handleClose() {\n      if (typeof this.beforeClose === 'function') {\n        this.beforeClose(this.hide);\n      } else {\n        this.hide();\n      }\n    },\n    hide: function hide(cancel) {\n      if (cancel !== false) {\n        this.$emit('update:visible', false);\n        this.$emit('close');\n        this.closed = true;\n      }\n    },\n    updatePopper: function updatePopper() {\n      this.broadcast('ElSelectDropdown', 'updatePopper');\n      this.broadcast('ElDropdownMenu', 'updatePopper');\n    },\n    afterLeave: function afterLeave() {\n      this.$emit('closed');\n    }\n  },\n\n  mounted: function mounted() {\n    if (this.visible) {\n      this.rendered = true;\n      this.open();\n      if (this.appendToBody) {\n        document.body.appendChild(this.$el);\n      }\n    }\n  },\n  destroyed: function destroyed() {\n    // if appendToBody is true, remove DOM node after destroy\n    if (this.appendToBody && this.$el && this.$el.parentNode) {\n      this.$el.parentNode.removeChild(this.$el);\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 57 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"dialog-fade\"},on:{\"after-leave\":_vm.afterLeave}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-dialog__wrapper\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }_vm.handleWrapperClick($event)}}},[_c('div',{ref:\"dialog\",staticClass:\"el-dialog\",class:[{ 'is-fullscreen': _vm.fullscreen, 'el-dialog--center': _vm.center }, _vm.customClass],style:(_vm.style)},[_c('div',{staticClass:\"el-dialog__header\"},[_vm._t(\"title\",[_c('span',{staticClass:\"el-dialog__title\"},[_vm._v(_vm._s(_vm.title))])]),(_vm.showClose)?_c('button',{staticClass:\"el-dialog__headerbtn\",attrs:{\"type\":\"button\",\"aria-label\":\"Close\"},on:{\"click\":_vm.handleClose}},[_c('i',{staticClass:\"el-dialog__close el-icon el-icon-close\"})]):_vm._e()],2),(_vm.rendered)?_c('div',{staticClass:\"el-dialog__body\"},[_vm._t(\"default\")],2):_vm._e(),(_vm.$slots.footer)?_c('div',{staticClass:\"el-dialog__footer\"},[_vm._t(\"footer\")],2):_vm._e()])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _autocomplete = __webpack_require__(59);\n\nvar _autocomplete2 = _interopRequireDefault(_autocomplete);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_autocomplete2.default.install = function (Vue) {\n  Vue.component(_autocomplete2.default.name, _autocomplete2.default);\n};\n\nexports.default = _autocomplete2.default;\n\n/***/ }),\n/* 59 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_vue__ = __webpack_require__(60);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_172031ae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_autocomplete_vue__ = __webpack_require__(64);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_172031ae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_autocomplete_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _debounce = __webpack_require__(13);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _autocompleteSuggestions = __webpack_require__(61);\n\nvar _autocompleteSuggestions2 = _interopRequireDefault(_autocompleteSuggestions);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _util = __webpack_require__(4);\n\nvar _focus = __webpack_require__(19);\n\nvar _focus2 = _interopRequireDefault(_focus);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElAutocomplete',\n\n  mixins: [_emitter2.default, (0, _focus2.default)('input'), _migrating2.default],\n\n  inheritAttrs: false,\n\n  componentName: 'ElAutocomplete',\n\n  components: {\n    ElInput: _input2.default,\n    ElAutocompleteSuggestions: _autocompleteSuggestions2.default\n  },\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  props: {\n    valueKey: {\n      type: String,\n      default: 'value'\n    },\n    popperClass: String,\n    popperOptions: Object,\n    placeholder: String,\n    disabled: Boolean,\n    name: String,\n    size: String,\n    value: String,\n    maxlength: Number,\n    minlength: Number,\n    autofocus: Boolean,\n    fetchSuggestions: Function,\n    triggerOnFocus: {\n      type: Boolean,\n      default: true\n    },\n    customItem: String,\n    selectWhenUnmatched: {\n      type: Boolean,\n      default: false\n    },\n    prefixIcon: String,\n    suffixIcon: String,\n    label: String,\n    debounce: {\n      type: Number,\n      default: 300\n    },\n    placement: {\n      type: String,\n      default: 'bottom-start'\n    },\n    hideLoading: Boolean,\n    popperAppendToBody: {\n      type: Boolean,\n      default: true\n    }\n  },\n  data: function data() {\n    return {\n      activated: false,\n      suggestions: [],\n      loading: false,\n      highlightedIndex: -1,\n      suggestionDisabled: false\n    };\n  },\n\n  computed: {\n    suggestionVisible: function suggestionVisible() {\n      var suggestions = this.suggestions;\n      var isValidData = Array.isArray(suggestions) && suggestions.length > 0;\n      return (isValidData || this.loading) && this.activated;\n    },\n    id: function id() {\n      return 'el-autocomplete-' + (0, _util.generateId)();\n    }\n  },\n  watch: {\n    suggestionVisible: function suggestionVisible(val) {\n      this.broadcast('ElAutocompleteSuggestions', 'visible', [val, this.$refs.input.$refs.input.offsetWidth]);\n    }\n  },\n  methods: {\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'custom-item': 'custom-item is removed, use scoped slot instead.',\n          'props': 'props is removed, use value-key instead.'\n        }\n      };\n    },\n    getData: function getData(queryString) {\n      var _this = this;\n\n      if (this.suggestionDisabled) {\n        return;\n      }\n      this.loading = true;\n      this.fetchSuggestions(queryString, function (suggestions) {\n        _this.loading = false;\n        if (_this.suggestionDisabled) {\n          return;\n        }\n        if (Array.isArray(suggestions)) {\n          _this.suggestions = suggestions;\n        } else {\n          console.error('[Element Error][Autocomplete]autocomplete suggestions must be an array');\n        }\n      });\n    },\n    handleChange: function handleChange(value) {\n      this.$emit('input', value);\n      this.suggestionDisabled = false;\n      if (!this.triggerOnFocus && !value) {\n        this.suggestionDisabled = true;\n        this.suggestions = [];\n        return;\n      }\n      this.debouncedGetData(value);\n    },\n    handleFocus: function handleFocus(event) {\n      this.activated = true;\n      this.$emit('focus', event);\n      if (this.triggerOnFocus) {\n        this.debouncedGetData(this.value);\n      }\n    },\n    handleBlur: function handleBlur(event) {\n      this.$emit('blur', event);\n    },\n    close: function close(e) {\n      this.activated = false;\n    },\n    handleKeyEnter: function handleKeyEnter(e) {\n      var _this2 = this;\n\n      if (this.suggestionVisible && this.highlightedIndex >= 0 && this.highlightedIndex < this.suggestions.length) {\n        e.preventDefault();\n        this.select(this.suggestions[this.highlightedIndex]);\n      } else if (this.selectWhenUnmatched) {\n        this.$emit('select', { value: this.value });\n        this.$nextTick(function (_) {\n          _this2.suggestions = [];\n          _this2.highlightedIndex = -1;\n        });\n      }\n    },\n    select: function select(item) {\n      var _this3 = this;\n\n      this.$emit('input', item[this.valueKey]);\n      this.$emit('select', item);\n      this.$nextTick(function (_) {\n        _this3.suggestions = [];\n        _this3.highlightedIndex = -1;\n      });\n    },\n    highlight: function highlight(index) {\n      if (!this.suggestionVisible || this.loading) {\n        return;\n      }\n      if (index < 0) {\n        this.highlightedIndex = -1;\n        return;\n      }\n      if (index >= this.suggestions.length) {\n        index = this.suggestions.length - 1;\n      }\n      var suggestion = this.$refs.suggestions.$el.querySelector('.el-autocomplete-suggestion__wrap');\n      var suggestionList = suggestion.querySelectorAll('.el-autocomplete-suggestion__list li');\n\n      var highlightItem = suggestionList[index];\n      var scrollTop = suggestion.scrollTop;\n      var offsetTop = highlightItem.offsetTop;\n\n      if (offsetTop + highlightItem.scrollHeight > scrollTop + suggestion.clientHeight) {\n        suggestion.scrollTop += highlightItem.scrollHeight;\n      }\n      if (offsetTop < scrollTop) {\n        suggestion.scrollTop -= highlightItem.scrollHeight;\n      }\n      this.highlightedIndex = index;\n      this.$el.querySelector('.el-input__inner').setAttribute('aria-activedescendant', this.id + '-item-' + this.highlightedIndex);\n    }\n  },\n  mounted: function mounted() {\n    var _this4 = this;\n\n    this.debouncedGetData = (0, _debounce2.default)(this.debounce, this.getData);\n    this.$on('item-click', function (item) {\n      _this4.select(item);\n    });\n    var $input = this.$el.querySelector('.el-input__inner');\n    $input.setAttribute('role', 'textbox');\n    $input.setAttribute('aria-autocomplete', 'list');\n    $input.setAttribute('aria-controls', 'id');\n    $input.setAttribute('aria-activedescendant', this.id + '-item-' + this.highlightedIndex);\n  },\n  beforeDestroy: function beforeDestroy() {\n    this.$refs.suggestions.$destroy();\n  }\n};\n\n/***/ }),\n/* 61 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_suggestions_vue__ = __webpack_require__(62);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_suggestions_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_suggestions_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_31aefd4b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_autocomplete_suggestions_vue__ = __webpack_require__(63);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_autocomplete_suggestions_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_31aefd4b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_autocomplete_suggestions_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _scrollbar = __webpack_require__(18);\n\nvar _scrollbar2 = _interopRequireDefault(_scrollbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  components: { ElScrollbar: _scrollbar2.default },\n  mixins: [_vuePopper2.default, _emitter2.default],\n\n  componentName: 'ElAutocompleteSuggestions',\n\n  data: function data() {\n    return {\n      parent: this.$parent,\n      dropdownWidth: ''\n    };\n  },\n\n\n  props: {\n    options: {\n      default: function _default() {\n        return {\n          gpuAcceleration: false\n        };\n      }\n    },\n    id: String\n  },\n\n  methods: {\n    select: function select(item) {\n      this.dispatch('ElAutocomplete', 'item-click', item);\n    }\n  },\n\n  updated: function updated() {\n    var _this = this;\n\n    this.$nextTick(function (_) {\n      _this.popperJS && _this.updatePopper();\n    });\n  },\n  mounted: function mounted() {\n    this.$parent.popperElm = this.popperElm = this.$el;\n    this.referenceElm = this.$parent.$refs.input.$refs.input;\n    this.referenceList = this.$el.querySelector('.el-autocomplete-suggestion__list');\n    this.referenceList.setAttribute('role', 'listbox');\n    this.referenceList.setAttribute('id', this.id);\n  },\n  created: function created() {\n    var _this2 = this;\n\n    this.$on('visible', function (val, inputWidth) {\n      _this2.dropdownWidth = inputWidth + 'px';\n      _this2.showPopper = val;\n    });\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 63 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"after-leave\":_vm.doDestroy}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showPopper),expression:\"showPopper\"}],staticClass:\"el-autocomplete-suggestion el-popper\",class:{ 'is-loading': !_vm.parent.hideLoading && _vm.parent.loading },style:({ width: _vm.dropdownWidth }),attrs:{\"role\":\"region\"}},[_c('el-scrollbar',{attrs:{\"tag\":\"ul\",\"wrap-class\":\"el-autocomplete-suggestion__wrap\",\"view-class\":\"el-autocomplete-suggestion__list\"}},[(!_vm.parent.hideLoading && _vm.parent.loading)?_c('li',[_c('i',{staticClass:\"el-icon-loading\"})]):_vm._t(\"default\")],2)],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 64 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.close),expression:\"close\"}],staticClass:\"el-autocomplete\",attrs:{\"aria-haspopup\":\"listbox\",\"role\":\"combobox\",\"aria-expanded\":_vm.suggestionVisible,\"aria-owns\":_vm.id}},[_c('el-input',_vm._b({ref:\"input\",on:{\"input\":_vm.handleChange,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur},nativeOn:{\"keydown\":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.preventDefault();_vm.highlight(_vm.highlightedIndex - 1)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.preventDefault();_vm.highlight(_vm.highlightedIndex + 1)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.handleKeyEnter($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"tab\",9,$event.key)){ return null; }_vm.close($event)}]}},'el-input',[_vm.$props, _vm.$attrs],false),[(_vm.$slots.prepend)?_c('template',{attrs:{\"slot\":\"prepend\"},slot:\"prepend\"},[_vm._t(\"prepend\")],2):_vm._e(),(_vm.$slots.append)?_c('template',{attrs:{\"slot\":\"append\"},slot:\"append\"},[_vm._t(\"append\")],2):_vm._e(),(_vm.$slots.prefix)?_c('template',{attrs:{\"slot\":\"prefix\"},slot:\"prefix\"},[_vm._t(\"prefix\")],2):_vm._e(),(_vm.$slots.suffix)?_c('template',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[_vm._t(\"suffix\")],2):_vm._e()],2),_c('el-autocomplete-suggestions',{ref:\"suggestions\",class:[_vm.popperClass ? _vm.popperClass : ''],attrs:{\"visible-arrow\":\"\",\"popper-options\":_vm.popperOptions,\"append-to-body\":_vm.popperAppendToBody,\"placement\":_vm.placement,\"id\":_vm.id}},_vm._l((_vm.suggestions),function(item,index){return _c('li',{key:index,class:{'highlighted': _vm.highlightedIndex === index},attrs:{\"id\":(_vm.id + \"-item-\" + index),\"role\":\"option\",\"aria-selected\":_vm.highlightedIndex === index},on:{\"click\":function($event){_vm.select(item)}}},[_vm._t(\"default\",[_vm._v(\"\\n        \"+_vm._s(item[_vm.valueKey])+\"\\n      \")],{item:item})],2)}))],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dropdown = __webpack_require__(66);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_dropdown2.default.install = function (Vue) {\n  Vue.component(_dropdown2.default.name, _dropdown2.default);\n};\n\nexports.default = _dropdown2.default;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__ = __webpack_require__(67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_vue___default.a,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _button = __webpack_require__(15);\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _buttonGroup = __webpack_require__(68);\n\nvar _buttonGroup2 = _interopRequireDefault(_buttonGroup);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElDropdown',\n\n  componentName: 'ElDropdown',\n\n  mixins: [_emitter2.default, _migrating2.default],\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  components: {\n    ElButton: _button2.default,\n    ElButtonGroup: _buttonGroup2.default\n  },\n\n  provide: function provide() {\n    return {\n      dropdown: this\n    };\n  },\n\n\n  props: {\n    trigger: {\n      type: String,\n      default: 'hover'\n    },\n    type: String,\n    size: {\n      type: String,\n      default: ''\n    },\n    splitButton: Boolean,\n    hideOnClick: {\n      type: Boolean,\n      default: true\n    },\n    placement: {\n      type: String,\n      default: 'bottom-end'\n    },\n    visibleArrow: {\n      default: true\n    },\n    showTimeout: {\n      type: Number,\n      default: 250\n    },\n    hideTimeout: {\n      type: Number,\n      default: 150\n    }\n  },\n\n  data: function data() {\n    return {\n      timeout: null,\n      visible: false,\n      triggerElm: null,\n      menuItems: null,\n      menuItemsArray: null,\n      dropdownElm: null,\n      focusing: false,\n      listId: 'dropdown-menu-' + (0, _util.generateId)()\n    };\n  },\n\n\n  computed: {\n    dropdownSize: function dropdownSize() {\n      return this.size || (this.$ELEMENT || {}).size;\n    }\n  },\n\n  mounted: function mounted() {\n    this.$on('menu-item-click', this.handleMenuItemClick);\n    this.initEvent();\n    this.initAria();\n  },\n\n\n  watch: {\n    visible: function visible(val) {\n      this.broadcast('ElDropdownMenu', 'visible', val);\n      this.$emit('visible-change', val);\n    },\n    focusing: function focusing(val) {\n      var selfDefine = this.$el.querySelector('.el-dropdown-selfdefine');\n      if (selfDefine) {\n        // 鑷畾涔塡n        if (val) {\n          selfDefine.className += ' focusing';\n        } else {\n          selfDefine.className = selfDefine.className.replace('focusing', '');\n        }\n      }\n    }\n  },\n\n  methods: {\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'menu-align': 'menu-align is renamed to placement.'\n        }\n      };\n    },\n    show: function show() {\n      var _this = this;\n\n      if (this.triggerElm.disabled) return;\n      clearTimeout(this.timeout);\n      this.timeout = setTimeout(function () {\n        _this.visible = true;\n      }, this.trigger === 'click' ? 0 : this.showTimeout);\n    },\n    hide: function hide() {\n      var _this2 = this;\n\n      if (this.triggerElm.disabled) return;\n      this.removeTabindex();\n      this.resetTabindex(this.triggerElm);\n      clearTimeout(this.timeout);\n      this.timeout = setTimeout(function () {\n        _this2.visible = false;\n      }, this.trigger === 'click' ? 0 : this.hideTimeout);\n    },\n    handleClick: function handleClick() {\n      if (this.triggerElm.disabled) return;\n      if (this.visible) {\n        this.hide();\n      } else {\n        this.show();\n      }\n    },\n    handleTriggerKeyDown: function handleTriggerKeyDown(ev) {\n      var keyCode = ev.keyCode;\n      if ([38, 40].indexOf(keyCode) > -1) {\n        // up/down\n        this.removeTabindex();\n        this.resetTabindex(this.menuItems[0]);\n        this.menuItems[0].focus();\n        ev.preventDefault();\n        ev.stopPropagation();\n      } else if (keyCode === 13) {\n        // space enter閫変腑\n        this.handleClick();\n      } else if ([9, 27].indexOf(keyCode) > -1) {\n        // tab || esc\n        this.hide();\n      }\n      return;\n    },\n    handleItemKeyDown: function handleItemKeyDown(ev) {\n      var keyCode = ev.keyCode;\n      var target = ev.target;\n      var currentIndex = this.menuItemsArray.indexOf(target);\n      var max = this.menuItemsArray.length - 1;\n      var nextIndex = void 0;\n      if ([38, 40].indexOf(keyCode) > -1) {\n        // up/down\n        if (keyCode === 38) {\n          // up\n          nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;\n        } else {\n          // down\n          nextIndex = currentIndex < max ? currentIndex + 1 : max;\n        }\n        this.removeTabindex();\n        this.resetTabindex(this.menuItems[nextIndex]);\n        this.menuItems[nextIndex].focus();\n        ev.preventDefault();\n        ev.stopPropagation();\n      } else if (keyCode === 13) {\n        // enter閫変腑\n        this.triggerElm.focus();\n        target.click();\n        if (this.hideOnClick) {\n          // click鍏抽棴\n          this.visible = false;\n        }\n      } else if ([9, 27].indexOf(keyCode) > -1) {\n        // tab // esc\n        this.hide();\n        this.triggerElm.focus();\n      }\n      return;\n    },\n    resetTabindex: function resetTabindex(ele) {\n      // 涓嬫tab鏃剁粍浠惰仛鐒﹀厓绱燶n      this.removeTabindex();\n      ele.setAttribute('tabindex', '0'); // 涓嬫鏈熸湜鐨勮仛鐒﹀厓绱燶n    },\n    removeTabindex: function removeTabindex() {\n      this.triggerElm.setAttribute('tabindex', '-1');\n      this.menuItemsArray.forEach(function (item) {\n        item.setAttribute('tabindex', '-1');\n      });\n    },\n    initAria: function initAria() {\n      this.dropdownElm.setAttribute('id', this.listId);\n      this.triggerElm.setAttribute('aria-haspopup', 'list');\n      this.triggerElm.setAttribute('aria-controls', this.listId);\n      this.menuItems = this.dropdownElm.querySelectorAll(\"[tabindex='-1']\");\n      this.menuItemsArray = Array.prototype.slice.call(this.menuItems);\n\n      if (!this.splitButton) {\n        // 鑷畾涔塡n        this.triggerElm.setAttribute('role', 'button');\n        this.triggerElm.setAttribute('tabindex', '0');\n        this.triggerElm.setAttribute('class', (this.triggerElm.getAttribute('class') || '') + ' el-dropdown-selfdefine'); // 鎺у埗\n      }\n    },\n    initEvent: function initEvent() {\n      var _this3 = this;\n\n      var trigger = this.trigger,\n          show = this.show,\n          hide = this.hide,\n          handleClick = this.handleClick,\n          splitButton = this.splitButton,\n          handleTriggerKeyDown = this.handleTriggerKeyDown,\n          handleItemKeyDown = this.handleItemKeyDown;\n\n      this.triggerElm = splitButton ? this.$refs.trigger.$el : this.$slots.default[0].elm;\n\n      var dropdownElm = this.dropdownElm = this.$slots.dropdown[0].elm;\n\n      this.triggerElm.addEventListener('keydown', handleTriggerKeyDown); // triggerElm keydown\n      dropdownElm.addEventListener('keydown', handleItemKeyDown, true); // item keydown\n      // 鎺у埗鑷畾涔夊厓绱犵殑鏍峰紡\n      if (!splitButton) {\n        this.triggerElm.addEventListener('focus', function () {\n          _this3.focusing = true;\n        });\n        this.triggerElm.addEventListener('blur', function () {\n          _this3.focusing = false;\n        });\n        this.triggerElm.addEventListener('click', function () {\n          _this3.focusing = false;\n        });\n      }\n      if (trigger === 'hover') {\n        this.triggerElm.addEventListener('mouseenter', show);\n        this.triggerElm.addEventListener('mouseleave', hide);\n        dropdownElm.addEventListener('mouseenter', show);\n        dropdownElm.addEventListener('mouseleave', hide);\n      } else if (trigger === 'click') {\n        this.triggerElm.addEventListener('click', handleClick);\n      }\n    },\n    handleMenuItemClick: function handleMenuItemClick(command, instance) {\n      if (this.hideOnClick) {\n        this.visible = false;\n      }\n      this.$emit('command', command, instance);\n    },\n    focus: function focus() {\n      this.triggerElm.focus && this.triggerElm.focus();\n    }\n  },\n\n  render: function render(h) {\n    var _this4 = this;\n\n    var hide = this.hide,\n        splitButton = this.splitButton,\n        type = this.type,\n        dropdownSize = this.dropdownSize;\n\n\n    var handleMainButtonClick = function handleMainButtonClick(event) {\n      _this4.$emit('click', event);\n      hide();\n    };\n\n    var triggerElm = !splitButton ? this.$slots.default : h(\n      'el-button-group',\n      null,\n      [h(\n        'el-button',\n        {\n          attrs: { type: type, size: dropdownSize },\n          nativeOn: {\n            'click': handleMainButtonClick\n          }\n        },\n        [this.$slots.default]\n      ), h(\n        'el-button',\n        { ref: 'trigger', attrs: { type: type, size: dropdownSize },\n          'class': 'el-dropdown__caret-button' },\n        [h(\n          'i',\n          { 'class': 'el-dropdown__icon el-icon-arrow-down' },\n          []\n        )]\n      )]\n    );\n\n    return h(\n      'div',\n      { 'class': 'el-dropdown', directives: [{\n          name: 'clickoutside',\n          value: hide\n        }]\n      },\n      [triggerElm, this.$slots.dropdown]\n    );\n  }\n};\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/button-group\");\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dropdownMenu = __webpack_require__(70);\n\nvar _dropdownMenu2 = _interopRequireDefault(_dropdownMenu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_dropdownMenu2.default.install = function (Vue) {\n  Vue.component(_dropdownMenu2.default.name, _dropdownMenu2.default);\n};\n\nexports.default = _dropdownMenu2.default;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b7ce9da_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_menu_vue__ = __webpack_require__(72);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_menu_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0b7ce9da_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_menu_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElDropdownMenu',\n\n  componentName: 'ElDropdownMenu',\n\n  mixins: [_vuePopper2.default],\n\n  props: {\n    visibleArrow: {\n      type: Boolean,\n      default: true\n    },\n    arrowOffset: {\n      type: Number,\n      default: 0\n    }\n  },\n\n  data: function data() {\n    return {\n      size: this.dropdown.dropdownSize\n    };\n  },\n\n\n  inject: ['dropdown'],\n\n  created: function created() {\n    var _this = this;\n\n    this.$on('updatePopper', function () {\n      if (_this.showPopper) _this.updatePopper();\n    });\n    this.$on('visible', function (val) {\n      _this.showPopper = val;\n    });\n  },\n  mounted: function mounted() {\n    this.$parent.popperElm = this.popperElm = this.$el;\n    this.referenceElm = this.$parent.$el;\n  },\n\n\n  watch: {\n    'dropdown.placement': {\n      immediate: true,\n      handler: function handler(val) {\n        this.currentPlacement = val;\n      }\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 72 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"after-leave\":_vm.doDestroy}},[_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showPopper),expression:\"showPopper\"}],staticClass:\"el-dropdown-menu el-popper\",class:[_vm.size && (\"el-dropdown-menu--\" + _vm.size)]},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dropdownItem = __webpack_require__(74);\n\nvar _dropdownItem2 = _interopRequireDefault(_dropdownItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_dropdownItem2.default.install = function (Vue) {\n  Vue.component(_dropdownItem2.default.name, _dropdownItem2.default);\n};\n\nexports.default = _dropdownItem2.default;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__ = __webpack_require__(75);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__ = __webpack_require__(76);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_dropdown_item_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_646df6c7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_dropdown_item_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElDropdownItem',\n\n  mixins: [_emitter2.default],\n\n  props: {\n    command: {},\n    disabled: Boolean,\n    divided: Boolean\n  },\n\n  methods: {\n    handleClick: function handleClick(e) {\n      this.dispatch('ElDropdown', 'menu-item-click', [this.command, this]);\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 76 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"el-dropdown-menu__item\",class:{\n    'is-disabled': _vm.disabled,\n    'el-dropdown-menu__item--divided': _vm.divided\n  },attrs:{\"aria-disabled\":_vm.disabled,\"tabindex\":_vm.disabled ? null : -1},on:{\"click\":_vm.handleClick}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _menu = __webpack_require__(78);\n\nvar _menu2 = _interopRequireDefault(_menu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_menu2.default.install = function (Vue) {\n  Vue.component(_menu2.default.name, _menu2.default);\n};\n\nexports.default = _menu2.default;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue__ = __webpack_require__(79);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue___default.a,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _ariaMenubar = __webpack_require__(80);\n\nvar _ariaMenubar2 = _interopRequireDefault(_ariaMenubar);\n\nvar _dom = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElMenu',\n\n  render: function render(h) {\n    var component = h(\n      'ul',\n      {\n        attrs: {\n          role: 'menubar'\n        },\n        key: +this.collapse,\n        style: { backgroundColor: this.backgroundColor || '' },\n        'class': {\n          'el-menu--horizontal': this.mode === 'horizontal',\n          'el-menu--collapse': this.collapse,\n          \"el-menu\": true\n        }\n      },\n      [this.$slots.default]\n    );\n\n    if (this.collapseTransition) {\n      return h(\n        'el-menu-collapse-transition',\n        null,\n        [component]\n      );\n    } else {\n      return component;\n    }\n  },\n\n\n  componentName: 'ElMenu',\n\n  mixins: [_emitter2.default, _migrating2.default],\n\n  provide: function provide() {\n    return {\n      rootMenu: this\n    };\n  },\n\n\n  components: {\n    'el-menu-collapse-transition': {\n      functional: true,\n      render: function render(createElement, context) {\n        var data = {\n          props: {\n            mode: 'out-in'\n          },\n          on: {\n            beforeEnter: function beforeEnter(el) {\n              el.style.opacity = 0.2;\n            },\n            enter: function enter(el) {\n              (0, _dom.addClass)(el, 'el-opacity-transition');\n              el.style.opacity = 1;\n            },\n            afterEnter: function afterEnter(el) {\n              (0, _dom.removeClass)(el, 'el-opacity-transition');\n              el.style.opacity = '';\n            },\n            beforeLeave: function beforeLeave(el) {\n              if (!el.dataset) el.dataset = {};\n\n              if ((0, _dom.hasClass)(el, 'el-menu--collapse')) {\n                (0, _dom.removeClass)(el, 'el-menu--collapse');\n                el.dataset.oldOverflow = el.style.overflow;\n                el.dataset.scrollWidth = el.clientWidth;\n                (0, _dom.addClass)(el, 'el-menu--collapse');\n              } else {\n                (0, _dom.addClass)(el, 'el-menu--collapse');\n                el.dataset.oldOverflow = el.style.overflow;\n                el.dataset.scrollWidth = el.clientWidth;\n                (0, _dom.removeClass)(el, 'el-menu--collapse');\n              }\n\n              el.style.width = el.scrollWidth + 'px';\n              el.style.overflow = 'hidden';\n            },\n            leave: function leave(el) {\n              (0, _dom.addClass)(el, 'horizontal-collapse-transition');\n              el.style.width = el.dataset.scrollWidth + 'px';\n            }\n          }\n        };\n        return createElement('transition', data, context.children);\n      }\n    }\n  },\n\n  props: {\n    mode: {\n      type: String,\n      default: 'vertical'\n    },\n    defaultActive: {\n      type: String,\n      default: ''\n    },\n    defaultOpeneds: Array,\n    uniqueOpened: Boolean,\n    router: Boolean,\n    menuTrigger: {\n      type: String,\n      default: 'hover'\n    },\n    collapse: Boolean,\n    backgroundColor: String,\n    textColor: String,\n    activeTextColor: String,\n    collapseTransition: {\n      type: Boolean,\n      default: true\n    }\n  },\n  data: function data() {\n    return {\n      activeIndex: this.defaultActive,\n      openedMenus: this.defaultOpeneds && !this.collapse ? this.defaultOpeneds.slice(0) : [],\n      items: {},\n      submenus: {}\n    };\n  },\n\n  computed: {\n    hoverBackground: function hoverBackground() {\n      return this.backgroundColor ? this.mixColor(this.backgroundColor, 0.2) : '';\n    },\n    isMenuPopup: function isMenuPopup() {\n      return this.mode === 'horizontal' || this.mode === 'vertical' && this.collapse;\n    }\n  },\n  watch: {\n    defaultActive: 'updateActiveIndex',\n\n    defaultOpeneds: function defaultOpeneds(value) {\n      if (!this.collapse) {\n        this.openedMenus = value;\n      }\n    },\n    collapse: function collapse(value) {\n      if (value) this.openedMenus = [];\n      this.broadcast('ElSubmenu', 'toggle-collapse', value);\n    }\n  },\n  methods: {\n    updateActiveIndex: function updateActiveIndex(val) {\n      var item = this.items[val] || this.items[this.activeIndex] || this.items[this.defaultActive];\n      if (item) {\n        this.activeIndex = item.index;\n        this.initOpenedMenu();\n      } else {\n        this.activeIndex = null;\n      }\n    },\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'theme': 'theme is removed.'\n        }\n      };\n    },\n    getColorChannels: function getColorChannels(color) {\n      color = color.replace('#', '');\n      if (/^[0-9a-fA-F]{3}$/.test(color)) {\n        color = color.split('');\n        for (var i = 2; i >= 0; i--) {\n          color.splice(i, 0, color[i]);\n        }\n        color = color.join('');\n      }\n      if (/^[0-9a-fA-F]{6}$/.test(color)) {\n        return {\n          red: parseInt(color.slice(0, 2), 16),\n          green: parseInt(color.slice(2, 4), 16),\n          blue: parseInt(color.slice(4, 6), 16)\n        };\n      } else {\n        return {\n          red: 255,\n          green: 255,\n          blue: 255\n        };\n      }\n    },\n    mixColor: function mixColor(color, percent) {\n      var _getColorChannels = this.getColorChannels(color),\n          red = _getColorChannels.red,\n          green = _getColorChannels.green,\n          blue = _getColorChannels.blue;\n\n      if (percent > 0) {\n        // shade given color\n        red *= 1 - percent;\n        green *= 1 - percent;\n        blue *= 1 - percent;\n      } else {\n        // tint given color\n        red += (255 - red) * percent;\n        green += (255 - green) * percent;\n        blue += (255 - blue) * percent;\n      }\n      return 'rgb(' + Math.round(red) + ', ' + Math.round(green) + ', ' + Math.round(blue) + ')';\n    },\n    addItem: function addItem(item) {\n      this.$set(this.items, item.index, item);\n    },\n    removeItem: function removeItem(item) {\n      delete this.items[item.index];\n    },\n    addSubmenu: function addSubmenu(item) {\n      this.$set(this.submenus, item.index, item);\n    },\n    removeSubmenu: function removeSubmenu(item) {\n      delete this.submenus[item.index];\n    },\n    openMenu: function openMenu(index, indexPath) {\n      var openedMenus = this.openedMenus;\n      if (openedMenus.indexOf(index) !== -1) return;\n      // 灏嗕笉鍦ㄨ鑿滃崟璺緞涓嬬殑鍏朵綑鑿滃崟鏀惰捣\n      // collapse all menu that are not under current menu item\n      if (this.uniqueOpened) {\n        this.openedMenus = openedMenus.filter(function (index) {\n          return indexPath.indexOf(index) !== -1;\n        });\n      }\n      this.openedMenus.push(index);\n    },\n    closeMenu: function closeMenu(index) {\n      var i = this.openedMenus.indexOf(index);\n      if (i !== -1) {\n        this.openedMenus.splice(i, 1);\n      }\n    },\n    handleSubmenuClick: function handleSubmenuClick(submenu) {\n      var index = submenu.index,\n          indexPath = submenu.indexPath;\n\n      var isOpened = this.openedMenus.indexOf(index) !== -1;\n\n      if (isOpened) {\n        this.closeMenu(index);\n        this.$emit('close', index, indexPath);\n      } else {\n        this.openMenu(index, indexPath);\n        this.$emit('open', index, indexPath);\n      }\n    },\n    handleItemClick: function handleItemClick(item) {\n      var _this = this;\n\n      var index = item.index,\n          indexPath = item.indexPath;\n\n      var oldActiveIndex = this.activeIndex;\n\n      this.activeIndex = item.index;\n      this.$emit('select', index, indexPath, item);\n\n      if (this.mode === 'horizontal' || this.collapse) {\n        this.openedMenus = [];\n      }\n\n      if (this.router) {\n        this.routeToItem(item, function (error) {\n          _this.activeIndex = oldActiveIndex;\n          if (error) console.error(error);\n        });\n      }\n    },\n\n    // 鍒濆鍖栧睍寮�鑿滃崟\n    // initialize opened menu\n    initOpenedMenu: function initOpenedMenu() {\n      var _this2 = this;\n\n      var index = this.activeIndex;\n      var activeItem = this.items[index];\n      if (!activeItem || this.mode === 'horizontal' || this.collapse) return;\n\n      var indexPath = activeItem.indexPath;\n\n      // 灞曞紑璇ヨ彍鍗曢」鐨勮矾寰勪笂鎵�鏈夊瓙鑿滃崟\n      // expand all submenus of the menu item\n      indexPath.forEach(function (index) {\n        var submenu = _this2.submenus[index];\n        submenu && _this2.openMenu(index, submenu.indexPath);\n      });\n    },\n    routeToItem: function routeToItem(item, onError) {\n      var route = item.route || item.index;\n      try {\n        this.$router.push(route, function () {}, onError);\n      } catch (e) {\n        console.error(e);\n      }\n    },\n    open: function open(index) {\n      var _this3 = this;\n\n      var indexPath = this.submenus[index.toString()].indexPath;\n\n      indexPath.forEach(function (i) {\n        return _this3.openMenu(i, indexPath);\n      });\n    },\n    close: function close(index) {\n      this.closeMenu(index);\n    }\n  },\n  mounted: function mounted() {\n    this.initOpenedMenu();\n    this.$on('item-click', this.handleItemClick);\n    this.$on('submenu-click', this.handleSubmenuClick);\n    if (this.mode === 'horizontal') {\n      new _ariaMenubar2.default(this.$el); // eslint-disable-line\n    }\n    this.$watch('items', this.updateActiveIndex);\n  }\n};\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _ariaMenuitem = __webpack_require__(81);\n\nvar _ariaMenuitem2 = _interopRequireDefault(_ariaMenuitem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Menu = function Menu(domNode) {\n  this.domNode = domNode;\n  this.init();\n};\n\nMenu.prototype.init = function () {\n  var menuChildren = this.domNode.childNodes;\n  [].filter.call(menuChildren, function (child) {\n    return child.nodeType === 1;\n  }).forEach(function (child) {\n    new _ariaMenuitem2.default(child); // eslint-disable-line\n  });\n};\nexports.default = Menu;\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _ariaUtils = __webpack_require__(31);\n\nvar _ariaUtils2 = _interopRequireDefault(_ariaUtils);\n\nvar _ariaSubmenu = __webpack_require__(82);\n\nvar _ariaSubmenu2 = _interopRequireDefault(_ariaSubmenu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MenuItem = function MenuItem(domNode) {\n  this.domNode = domNode;\n  this.submenu = null;\n  this.init();\n};\n\nMenuItem.prototype.init = function () {\n  this.domNode.setAttribute('tabindex', '0');\n  var menuChild = this.domNode.querySelector('.el-menu');\n  if (menuChild) {\n    this.submenu = new _ariaSubmenu2.default(this, menuChild);\n  }\n  this.addListeners();\n};\n\nMenuItem.prototype.addListeners = function () {\n  var _this = this;\n\n  var keys = _ariaUtils2.default.keys;\n  this.domNode.addEventListener('keydown', function (event) {\n    var prevDef = false;\n    switch (event.keyCode) {\n      case keys.down:\n        _ariaUtils2.default.triggerEvent(event.currentTarget, 'mouseenter');\n        _this.submenu && _this.submenu.gotoSubIndex(0);\n        prevDef = true;\n        break;\n      case keys.up:\n        _ariaUtils2.default.triggerEvent(event.currentTarget, 'mouseenter');\n        _this.submenu && _this.submenu.gotoSubIndex(_this.submenu.subMenuItems.length - 1);\n        prevDef = true;\n        break;\n      case keys.tab:\n        _ariaUtils2.default.triggerEvent(event.currentTarget, 'mouseleave');\n        break;\n      case keys.enter:\n      case keys.space:\n        prevDef = true;\n        event.currentTarget.click();\n        break;\n    }\n    if (prevDef) {\n      event.preventDefault();\n    }\n  });\n};\n\nexports.default = MenuItem;\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _ariaUtils = __webpack_require__(31);\n\nvar _ariaUtils2 = _interopRequireDefault(_ariaUtils);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SubMenu = function SubMenu(parent, domNode) {\n  this.domNode = domNode;\n  this.parent = parent;\n  this.subMenuItems = [];\n  this.subIndex = 0;\n  this.init();\n};\n\nSubMenu.prototype.init = function () {\n  this.subMenuItems = this.domNode.querySelectorAll('li');\n  this.addListeners();\n};\n\nSubMenu.prototype.gotoSubIndex = function (idx) {\n  if (idx === this.subMenuItems.length) {\n    idx = 0;\n  } else if (idx < 0) {\n    idx = this.subMenuItems.length - 1;\n  }\n  this.subMenuItems[idx].focus();\n  this.subIndex = idx;\n};\n\nSubMenu.prototype.addListeners = function () {\n  var _this = this;\n\n  var keys = _ariaUtils2.default.keys;\n  var parentNode = this.parent.domNode;\n  Array.prototype.forEach.call(this.subMenuItems, function (el) {\n    el.addEventListener('keydown', function (event) {\n      var prevDef = false;\n      switch (event.keyCode) {\n        case keys.down:\n          _this.gotoSubIndex(_this.subIndex + 1);\n          prevDef = true;\n          break;\n        case keys.up:\n          _this.gotoSubIndex(_this.subIndex - 1);\n          prevDef = true;\n          break;\n        case keys.tab:\n          _ariaUtils2.default.triggerEvent(parentNode, 'mouseleave');\n          break;\n        case keys.enter:\n        case keys.space:\n          prevDef = true;\n          event.currentTarget.click();\n          break;\n      }\n      if (prevDef) {\n        event.preventDefault();\n        event.stopPropagation();\n      }\n      return false;\n    });\n  });\n};\n\nexports.default = SubMenu;\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _submenu = __webpack_require__(84);\n\nvar _submenu2 = _interopRequireDefault(_submenu);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_submenu2.default.install = function (Vue) {\n  Vue.component(_submenu2.default.name, _submenu2.default);\n};\n\nexports.default = _submenu2.default;\n\n/***/ }),\n/* 84 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_submenu_vue__ = __webpack_require__(85);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_submenu_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_submenu_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_submenu_vue___default.a,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _collapseTransition = __webpack_require__(20);\n\nvar _collapseTransition2 = _interopRequireDefault(_collapseTransition);\n\nvar _menuMixin = __webpack_require__(32);\n\nvar _menuMixin2 = _interopRequireDefault(_menuMixin);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar poperMixins = {\n  props: {\n    transformOrigin: {\n      type: [Boolean, String],\n      default: false\n    },\n    offset: _vuePopper2.default.props.offset,\n    boundariesPadding: _vuePopper2.default.props.boundariesPadding,\n    popperOptions: _vuePopper2.default.props.popperOptions\n  },\n  data: _vuePopper2.default.data,\n  methods: _vuePopper2.default.methods,\n  beforeDestroy: _vuePopper2.default.beforeDestroy,\n  deactivated: _vuePopper2.default.deactivated\n};\n\nexports.default = {\n  name: 'ElSubmenu',\n\n  componentName: 'ElSubmenu',\n\n  mixins: [_menuMixin2.default, _emitter2.default, poperMixins],\n\n  components: { ElCollapseTransition: _collapseTransition2.default },\n\n  props: {\n    index: {\n      type: String,\n      required: true\n    },\n    showTimeout: {\n      type: Number,\n      default: 300\n    },\n    hideTimeout: {\n      type: Number,\n      default: 300\n    },\n    popperClass: String,\n    disabled: Boolean,\n    popperAppendToBody: {\n      type: Boolean,\n      default: undefined\n    }\n  },\n\n  data: function data() {\n    return {\n      popperJS: null,\n      timeout: null,\n      items: {},\n      submenus: {},\n      mouseInChild: false\n    };\n  },\n\n  watch: {\n    opened: function opened(val) {\n      var _this = this;\n\n      if (this.isMenuPopup) {\n        this.$nextTick(function (_) {\n          _this.updatePopper();\n        });\n      }\n    }\n  },\n  computed: {\n    // popper option\n    appendToBody: function appendToBody() {\n      return this.popperAppendToBody === undefined ? this.isFirstLevel : this.popperAppendToBody;\n    },\n    menuTransitionName: function menuTransitionName() {\n      return this.rootMenu.collapse ? 'el-zoom-in-left' : 'el-zoom-in-top';\n    },\n    opened: function opened() {\n      return this.rootMenu.openedMenus.indexOf(this.index) > -1;\n    },\n    active: function active() {\n      var isActive = false;\n      var submenus = this.submenus;\n      var items = this.items;\n\n      Object.keys(items).forEach(function (index) {\n        if (items[index].active) {\n          isActive = true;\n        }\n      });\n\n      Object.keys(submenus).forEach(function (index) {\n        if (submenus[index].active) {\n          isActive = true;\n        }\n      });\n\n      return isActive;\n    },\n    hoverBackground: function hoverBackground() {\n      return this.rootMenu.hoverBackground;\n    },\n    backgroundColor: function backgroundColor() {\n      return this.rootMenu.backgroundColor || '';\n    },\n    activeTextColor: function activeTextColor() {\n      return this.rootMenu.activeTextColor || '';\n    },\n    textColor: function textColor() {\n      return this.rootMenu.textColor || '';\n    },\n    mode: function mode() {\n      return this.rootMenu.mode;\n    },\n    isMenuPopup: function isMenuPopup() {\n      return this.rootMenu.isMenuPopup;\n    },\n    titleStyle: function titleStyle() {\n      if (this.mode !== 'horizontal') {\n        return {\n          color: this.textColor\n        };\n      }\n      return {\n        borderBottomColor: this.active ? this.rootMenu.activeTextColor ? this.activeTextColor : '' : 'transparent',\n        color: this.active ? this.activeTextColor : this.textColor\n      };\n    },\n    isFirstLevel: function isFirstLevel() {\n      var isFirstLevel = true;\n      var parent = this.$parent;\n      while (parent && parent !== this.rootMenu) {\n        if (['ElSubmenu', 'ElMenuItemGroup'].indexOf(parent.$options.componentName) > -1) {\n          isFirstLevel = false;\n          break;\n        } else {\n          parent = parent.$parent;\n        }\n      }\n      return isFirstLevel;\n    }\n  },\n  methods: {\n    handleCollapseToggle: function handleCollapseToggle(value) {\n      if (value) {\n        this.initPopper();\n      } else {\n        this.doDestroy();\n      }\n    },\n    addItem: function addItem(item) {\n      this.$set(this.items, item.index, item);\n    },\n    removeItem: function removeItem(item) {\n      delete this.items[item.index];\n    },\n    addSubmenu: function addSubmenu(item) {\n      this.$set(this.submenus, item.index, item);\n    },\n    removeSubmenu: function removeSubmenu(item) {\n      delete this.submenus[item.index];\n    },\n    handleClick: function handleClick() {\n      var rootMenu = this.rootMenu,\n          disabled = this.disabled;\n\n      if (rootMenu.menuTrigger === 'hover' && rootMenu.mode === 'horizontal' || rootMenu.collapse && rootMenu.mode === 'vertical' || disabled) {\n        return;\n      }\n      this.dispatch('ElMenu', 'submenu-click', this);\n    },\n    handleMouseenter: function handleMouseenter() {\n      var _this2 = this;\n\n      var rootMenu = this.rootMenu,\n          disabled = this.disabled;\n\n      if (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal' || !rootMenu.collapse && rootMenu.mode === 'vertical' || disabled) {\n        return;\n      }\n      this.dispatch('ElSubmenu', 'mouse-enter-child');\n      clearTimeout(this.timeout);\n      this.timeout = setTimeout(function () {\n        _this2.rootMenu.openMenu(_this2.index, _this2.indexPath);\n      }, this.showTimeout);\n    },\n    handleMouseleave: function handleMouseleave() {\n      var _this3 = this;\n\n      var rootMenu = this.rootMenu;\n\n      if (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal' || !rootMenu.collapse && rootMenu.mode === 'vertical') {\n        return;\n      }\n      this.dispatch('ElSubmenu', 'mouse-leave-child');\n      clearTimeout(this.timeout);\n      this.timeout = setTimeout(function () {\n        !_this3.mouseInChild && _this3.rootMenu.closeMenu(_this3.index);\n      }, this.hideTimeout);\n    },\n    handleTitleMouseenter: function handleTitleMouseenter() {\n      if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;\n      var title = this.$refs['submenu-title'];\n      title && (title.style.backgroundColor = this.rootMenu.hoverBackground);\n    },\n    handleTitleMouseleave: function handleTitleMouseleave() {\n      if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;\n      var title = this.$refs['submenu-title'];\n      title && (title.style.backgroundColor = this.rootMenu.backgroundColor || '');\n    },\n    updatePlacement: function updatePlacement() {\n      this.currentPlacement = this.mode === 'horizontal' && this.isFirstLevel ? 'bottom-start' : 'right-start';\n    },\n    initPopper: function initPopper() {\n      this.referenceElm = this.$el;\n      this.popperElm = this.$refs.menu;\n      this.updatePlacement();\n    }\n  },\n  created: function created() {\n    var _this4 = this;\n\n    this.$on('toggle-collapse', this.handleCollapseToggle);\n    this.$on('mouse-enter-child', function () {\n      _this4.mouseInChild = true;\n      clearTimeout(_this4.timeout);\n    });\n    this.$on('mouse-leave-child', function () {\n      _this4.mouseInChild = false;\n      clearTimeout(_this4.timeout);\n    });\n  },\n  mounted: function mounted() {\n    this.parentMenu.addSubmenu(this);\n    this.rootMenu.addSubmenu(this);\n    this.initPopper();\n  },\n  beforeDestroy: function beforeDestroy() {\n    this.parentMenu.removeSubmenu(this);\n    this.rootMenu.removeSubmenu(this);\n  },\n  render: function render(h) {\n    var active = this.active,\n        opened = this.opened,\n        paddingStyle = this.paddingStyle,\n        titleStyle = this.titleStyle,\n        backgroundColor = this.backgroundColor,\n        rootMenu = this.rootMenu,\n        currentPlacement = this.currentPlacement,\n        menuTransitionName = this.menuTransitionName,\n        mode = this.mode,\n        disabled = this.disabled,\n        popperClass = this.popperClass,\n        $slots = this.$slots,\n        isFirstLevel = this.isFirstLevel;\n\n\n    var popupMenu = h(\n      'transition',\n      {\n        attrs: { name: menuTransitionName }\n      },\n      [h(\n        'div',\n        {\n          ref: 'menu',\n          directives: [{\n            name: 'show',\n            value: opened\n          }],\n\n          'class': ['el-menu--' + mode, popperClass],\n          on: {\n            'mouseenter': this.handleMouseenter,\n            'mouseleave': this.handleMouseleave,\n            'focus': this.handleMouseenter\n          }\n        },\n        [h(\n          'ul',\n          {\n            attrs: {\n              role: 'menu'\n            },\n            'class': ['el-menu el-menu--popup', 'el-menu--popup-' + currentPlacement],\n            style: { backgroundColor: rootMenu.backgroundColor || '' } },\n          [$slots.default]\n        )]\n      )]\n    );\n\n    var inlineMenu = h(\n      'el-collapse-transition',\n      null,\n      [h(\n        'ul',\n        {\n          attrs: {\n            role: 'menu'\n          },\n          'class': 'el-menu el-menu--inline',\n          directives: [{\n            name: 'show',\n            value: opened\n          }],\n\n          style: { backgroundColor: rootMenu.backgroundColor || '' } },\n        [$slots.default]\n      )]\n    );\n\n    var submenuTitleIcon = rootMenu.mode === 'horizontal' && isFirstLevel || rootMenu.mode === 'vertical' && !rootMenu.collapse ? 'el-icon-arrow-down' : 'el-icon-arrow-right';\n\n    return h(\n      'li',\n      {\n        'class': {\n          'el-submenu': true,\n          'is-active': active,\n          'is-opened': opened,\n          'is-disabled': disabled\n        },\n        attrs: { role: 'menuitem',\n          'aria-haspopup': 'true',\n          'aria-expanded': opened\n        },\n        on: {\n          'mouseenter': this.handleMouseenter,\n          'mouseleave': this.handleMouseleave,\n          'focus': this.handleMouseenter\n        }\n      },\n      [h(\n        'div',\n        {\n          'class': 'el-submenu__title',\n          ref: 'submenu-title',\n          on: {\n            'click': this.handleClick,\n            'mouseenter': this.handleTitleMouseenter,\n            'mouseleave': this.handleTitleMouseleave\n          },\n\n          style: [paddingStyle, titleStyle, { backgroundColor: backgroundColor }]\n        },\n        [$slots.title, h(\n          'i',\n          { 'class': ['el-submenu__icon-arrow', submenuTitleIcon] },\n          []\n        )]\n      ), this.isMenuPopup ? popupMenu : inlineMenu]\n    );\n  }\n};\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _menuItem = __webpack_require__(87);\n\nvar _menuItem2 = _interopRequireDefault(_menuItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_menuItem2.default.install = function (Vue) {\n  Vue.component(_menuItem2.default.name, _menuItem2.default);\n};\n\nexports.default = _menuItem2.default;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_vue__ = __webpack_require__(88);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3604d8f2_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_menu_item_vue__ = __webpack_require__(89);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3604d8f2_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_menu_item_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _menuMixin = __webpack_require__(32);\n\nvar _menuMixin2 = _interopRequireDefault(_menuMixin);\n\nvar _tooltip = __webpack_require__(23);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElMenuItem',\n\n  componentName: 'ElMenuItem',\n\n  mixins: [_menuMixin2.default, _emitter2.default],\n\n  components: { ElTooltip: _tooltip2.default },\n\n  props: {\n    index: {\n      type: String,\n      required: true\n    },\n    route: [String, Object],\n    disabled: Boolean\n  },\n  computed: {\n    active: function active() {\n      return this.index === this.rootMenu.activeIndex;\n    },\n    hoverBackground: function hoverBackground() {\n      return this.rootMenu.hoverBackground;\n    },\n    backgroundColor: function backgroundColor() {\n      return this.rootMenu.backgroundColor || '';\n    },\n    activeTextColor: function activeTextColor() {\n      return this.rootMenu.activeTextColor || '';\n    },\n    textColor: function textColor() {\n      return this.rootMenu.textColor || '';\n    },\n    mode: function mode() {\n      return this.rootMenu.mode;\n    },\n    itemStyle: function itemStyle() {\n      var style = {\n        color: this.active ? this.activeTextColor : this.textColor\n      };\n      if (this.mode === 'horizontal' && !this.isNested) {\n        style.borderBottomColor = this.active ? this.rootMenu.activeTextColor ? this.activeTextColor : '' : 'transparent';\n      }\n      return style;\n    },\n    isNested: function isNested() {\n      return this.parentMenu !== this.rootMenu;\n    }\n  },\n  methods: {\n    onMouseEnter: function onMouseEnter() {\n      if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;\n      this.$el.style.backgroundColor = this.hoverBackground;\n    },\n    onMouseLeave: function onMouseLeave() {\n      if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;\n      this.$el.style.backgroundColor = this.backgroundColor;\n    },\n    handleClick: function handleClick() {\n      if (!this.disabled) {\n        this.dispatch('ElMenu', 'item-click', this);\n        this.$emit('click', this);\n      }\n    }\n  },\n  mounted: function mounted() {\n    this.parentMenu.addItem(this);\n    this.rootMenu.addItem(this);\n  },\n  beforeDestroy: function beforeDestroy() {\n    this.parentMenu.removeItem(this);\n    this.rootMenu.removeItem(this);\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 89 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"el-menu-item\",class:{\n    'is-active': _vm.active,\n    'is-disabled': _vm.disabled\n  },style:([_vm.paddingStyle, _vm.itemStyle, { backgroundColor: _vm.backgroundColor }]),attrs:{\"role\":\"menuitem\",\"tabindex\":\"-1\"},on:{\"click\":_vm.handleClick,\"mouseenter\":_vm.onMouseEnter,\"focus\":_vm.onMouseEnter,\"blur\":_vm.onMouseLeave,\"mouseleave\":_vm.onMouseLeave}},[(_vm.parentMenu.$options.componentName === 'ElMenu' && _vm.rootMenu.collapse && _vm.$slots.title)?_c('el-tooltip',{attrs:{\"effect\":\"dark\",\"placement\":\"right\"}},[_c('div',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_vm._t(\"title\")],2),_c('div',{staticStyle:{\"position\":\"absolute\",\"left\":\"0\",\"top\":\"0\",\"height\":\"100%\",\"width\":\"100%\",\"display\":\"inline-block\",\"box-sizing\":\"border-box\",\"padding\":\"0 20px\"}},[_vm._t(\"default\")],2)]):[_vm._t(\"default\"),_vm._t(\"title\")]],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _menuItemGroup = __webpack_require__(91);\n\nvar _menuItemGroup2 = _interopRequireDefault(_menuItemGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_menuItemGroup2.default.install = function (Vue) {\n  Vue.component(_menuItemGroup2.default.name, _menuItemGroup2.default);\n};\n\nexports.default = _menuItemGroup2.default;\n\n/***/ }),\n/* 91 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_group_vue__ = __webpack_require__(92);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e0b9348e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_menu_item_group_vue__ = __webpack_require__(93);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_item_group_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e0b9348e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_menu_item_group_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElMenuItemGroup',\n\n  componentName: 'ElMenuItemGroup',\n\n  inject: ['rootMenu'],\n  props: {\n    title: {\n      type: String\n    }\n  },\n  data: function data() {\n    return {\n      paddingLeft: 20\n    };\n  },\n\n  computed: {\n    levelPadding: function levelPadding() {\n      var padding = 20;\n      var parent = this.$parent;\n      if (this.rootMenu.collapse) return 20;\n      while (parent && parent.$options.componentName !== 'ElMenu') {\n        if (parent.$options.componentName === 'ElSubmenu') {\n          padding += 20;\n        }\n        parent = parent.$parent;\n      }\n      return padding;\n    }\n  }\n};\n\n/***/ }),\n/* 93 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"el-menu-item-group\"},[_c('div',{staticClass:\"el-menu-item-group__title\",style:({paddingLeft: _vm.levelPadding + 'px'})},[(!_vm.$slots.title)?[_vm._v(_vm._s(_vm.title))]:_vm._t(\"title\")],2),_c('ul',[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _input = __webpack_require__(95);\n\nvar _input2 = _interopRequireDefault(_input);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_input2.default.install = function (Vue) {\n  Vue.component(_input2.default.name, _input2.default);\n};\n\nexports.default = _input2.default;\n\n/***/ }),\n/* 95 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_278ba46e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_vue__ = __webpack_require__(98);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_278ba46e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _calcTextareaHeight = __webpack_require__(97);\n\nvar _calcTextareaHeight2 = _interopRequireDefault(_calcTextareaHeight);\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _shared = __webpack_require__(24);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElInput',\n\n  componentName: 'ElInput',\n\n  mixins: [_emitter2.default, _migrating2.default],\n\n  inheritAttrs: false,\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  data: function data() {\n    return {\n      currentValue: this.value === undefined || this.value === null ? '' : this.value,\n      textareaCalcStyle: {},\n      hovering: false,\n      focused: false,\n      isOnComposition: false,\n      valueBeforeComposition: null\n    };\n  },\n\n\n  props: {\n    value: [String, Number],\n    size: String,\n    resize: String,\n    form: String,\n    disabled: Boolean,\n    readonly: Boolean,\n    type: {\n      type: String,\n      default: 'text'\n    },\n    autosize: {\n      type: [Boolean, Object],\n      default: false\n    },\n    autoComplete: {\n      type: String,\n      default: 'off'\n    },\n    validateEvent: {\n      type: Boolean,\n      default: true\n    },\n    suffixIcon: String,\n    prefixIcon: String,\n    label: String,\n    clearable: {\n      type: Boolean,\n      default: false\n    },\n    tabindex: String\n  },\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    validateState: function validateState() {\n      return this.elFormItem ? this.elFormItem.validateState : '';\n    },\n    needStatusIcon: function needStatusIcon() {\n      return this.elForm ? this.elForm.statusIcon : false;\n    },\n    validateIcon: function validateIcon() {\n      return {\n        validating: 'el-icon-loading',\n        success: 'el-icon-circle-check',\n        error: 'el-icon-circle-close'\n      }[this.validateState];\n    },\n    textareaStyle: function textareaStyle() {\n      return (0, _merge2.default)({}, this.textareaCalcStyle, { resize: this.resize });\n    },\n    inputSize: function inputSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    inputDisabled: function inputDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    },\n    showClear: function showClear() {\n      return this.clearable && !this.disabled && !this.readonly && this.currentValue !== '' && (this.focused || this.hovering);\n    }\n  },\n\n  watch: {\n    value: function value(val, oldValue) {\n      this.setCurrentValue(val);\n    }\n  },\n\n  methods: {\n    focus: function focus() {\n      (this.$refs.input || this.$refs.textarea).focus();\n    },\n    blur: function blur() {\n      (this.$refs.input || this.$refs.textarea).blur();\n    },\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'icon': 'icon is removed, use suffix-icon / prefix-icon instead.',\n          'on-icon-click': 'on-icon-click is removed.'\n        },\n        events: {\n          'click': 'click is removed.'\n        }\n      };\n    },\n    handleBlur: function handleBlur(event) {\n      this.focused = false;\n      this.$emit('blur', event);\n      if (this.validateEvent) {\n        this.dispatch('ElFormItem', 'el.form.blur', [this.currentValue]);\n      }\n    },\n    select: function select() {\n      (this.$refs.input || this.$refs.textarea).select();\n    },\n    resizeTextarea: function resizeTextarea() {\n      if (this.$isServer) return;\n      var autosize = this.autosize,\n          type = this.type;\n\n      if (type !== 'textarea') return;\n      if (!autosize) {\n        this.textareaCalcStyle = {\n          minHeight: (0, _calcTextareaHeight2.default)(this.$refs.textarea).minHeight\n        };\n        return;\n      }\n      var minRows = autosize.minRows;\n      var maxRows = autosize.maxRows;\n\n      this.textareaCalcStyle = (0, _calcTextareaHeight2.default)(this.$refs.textarea, minRows, maxRows);\n    },\n    handleFocus: function handleFocus(event) {\n      this.focused = true;\n      this.$emit('focus', event);\n    },\n    handleComposition: function handleComposition(event) {\n      if (event.type === 'compositionend') {\n        this.isOnComposition = false;\n        this.currentValue = this.valueBeforeComposition;\n        this.valueBeforeComposition = null;\n        this.handleInput(event);\n      } else {\n        var text = event.target.value;\n        var lastCharacter = text[text.length - 1] || '';\n        this.isOnComposition = !(0, _shared.isKorean)(lastCharacter);\n        if (this.isOnComposition && event.type === 'compositionstart') {\n          this.valueBeforeComposition = text;\n        }\n      }\n    },\n    handleInput: function handleInput(event) {\n      var value = event.target.value;\n      this.setCurrentValue(value);\n      if (this.isOnComposition) return;\n      this.$emit('input', value);\n    },\n    handleChange: function handleChange(event) {\n      this.$emit('change', event.target.value);\n    },\n    setCurrentValue: function setCurrentValue(value) {\n      if (this.isOnComposition && value === this.valueBeforeComposition) return;\n      this.currentValue = value;\n      if (this.isOnComposition) return;\n      this.$nextTick(this.resizeTextarea);\n      if (this.validateEvent && this.currentValue === this.value) {\n        this.dispatch('ElFormItem', 'el.form.change', [value]);\n      }\n    },\n    calcIconOffset: function calcIconOffset(place) {\n      var elList = [].slice.call(this.$el.querySelectorAll('.el-input__' + place) || []);\n      if (!elList.length) return;\n      var el = null;\n      for (var i = 0; i < elList.length; i++) {\n        if (elList[i].parentNode === this.$el) {\n          el = elList[i];\n          break;\n        }\n      }\n      if (!el) return;\n      var pendantMap = {\n        suffix: 'append',\n        prefix: 'prepend'\n      };\n\n      var pendant = pendantMap[place];\n      if (this.$slots[pendant]) {\n        el.style.transform = 'translateX(' + (place === 'suffix' ? '-' : '') + this.$el.querySelector('.el-input-group__' + pendant).offsetWidth + 'px)';\n      } else {\n        el.removeAttribute('style');\n      }\n    },\n    updateIconOffset: function updateIconOffset() {\n      this.calcIconOffset('prefix');\n      this.calcIconOffset('suffix');\n    },\n    clear: function clear() {\n      this.$emit('input', '');\n      this.$emit('change', '');\n      this.$emit('clear');\n      this.setCurrentValue('');\n      this.focus();\n    }\n  },\n\n  created: function created() {\n    this.$on('inputSelect', this.select);\n  },\n  mounted: function mounted() {\n    this.resizeTextarea();\n    this.updateIconOffset();\n  },\n  updated: function updated() {\n    this.$nextTick(this.updateIconOffset);\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = calcTextareaHeight;\nvar hiddenTextarea = void 0;\n\nvar HIDDEN_STYLE = '\\n  height:0 !important;\\n  visibility:hidden !important;\\n  overflow:hidden !important;\\n  position:absolute !important;\\n  z-index:-1000 !important;\\n  top:0 !important;\\n  right:0 !important\\n';\n\nvar CONTEXT_STYLE = ['letter-spacing', 'line-height', 'padding-top', 'padding-bottom', 'font-family', 'font-weight', 'font-size', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-left', 'padding-right', 'border-width', 'box-sizing'];\n\nfunction calculateNodeStyling(targetElement) {\n  var style = window.getComputedStyle(targetElement);\n\n  var boxSizing = style.getPropertyValue('box-sizing');\n\n  var paddingSize = parseFloat(style.getPropertyValue('padding-bottom')) + parseFloat(style.getPropertyValue('padding-top'));\n\n  var borderSize = parseFloat(style.getPropertyValue('border-bottom-width')) + parseFloat(style.getPropertyValue('border-top-width'));\n\n  var contextStyle = CONTEXT_STYLE.map(function (name) {\n    return name + ':' + style.getPropertyValue(name);\n  }).join(';');\n\n  return { contextStyle: contextStyle, paddingSize: paddingSize, borderSize: borderSize, boxSizing: boxSizing };\n}\n\nfunction calcTextareaHeight(targetElement) {\n  var minRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  var maxRows = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n  if (!hiddenTextarea) {\n    hiddenTextarea = document.createElement('textarea');\n    document.body.appendChild(hiddenTextarea);\n  }\n\n  var _calculateNodeStyling = calculateNodeStyling(targetElement),\n      paddingSize = _calculateNodeStyling.paddingSize,\n      borderSize = _calculateNodeStyling.borderSize,\n      boxSizing = _calculateNodeStyling.boxSizing,\n      contextStyle = _calculateNodeStyling.contextStyle;\n\n  hiddenTextarea.setAttribute('style', contextStyle + ';' + HIDDEN_STYLE);\n  hiddenTextarea.value = targetElement.value || targetElement.placeholder || '';\n\n  var height = hiddenTextarea.scrollHeight;\n  var result = {};\n\n  if (boxSizing === 'border-box') {\n    height = height + borderSize;\n  } else if (boxSizing === 'content-box') {\n    height = height - paddingSize;\n  }\n\n  hiddenTextarea.value = '';\n  var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n  if (minRows !== null) {\n    var minHeight = singleRowHeight * minRows;\n    if (boxSizing === 'border-box') {\n      minHeight = minHeight + paddingSize + borderSize;\n    }\n    height = Math.max(minHeight, height);\n    result.minHeight = minHeight + 'px';\n  }\n  if (maxRows !== null) {\n    var maxHeight = singleRowHeight * maxRows;\n    if (boxSizing === 'border-box') {\n      maxHeight = maxHeight + paddingSize + borderSize;\n    }\n    height = Math.min(maxHeight, height);\n  }\n  result.height = height + 'px';\n  hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n  hiddenTextarea = null;\n  return result;\n};\n\n/***/ }),\n/* 98 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[\n  _vm.type === 'textarea' ? 'el-textarea' : 'el-input',\n  _vm.inputSize ? 'el-input--' + _vm.inputSize : '',\n  {\n    'is-disabled': _vm.inputDisabled,\n    'el-input-group': _vm.$slots.prepend || _vm.$slots.append,\n    'el-input-group--append': _vm.$slots.append,\n    'el-input-group--prepend': _vm.$slots.prepend,\n    'el-input--prefix': _vm.$slots.prefix || _vm.prefixIcon,\n    'el-input--suffix': _vm.$slots.suffix || _vm.suffixIcon || _vm.clearable\n  }\n  ],on:{\"mouseenter\":function($event){_vm.hovering = true},\"mouseleave\":function($event){_vm.hovering = false}}},[(_vm.type !== 'textarea')?[(_vm.$slots.prepend)?_c('div',{staticClass:\"el-input-group__prepend\"},[_vm._t(\"prepend\")],2):_vm._e(),(_vm.type !== 'textarea')?_c('input',_vm._b({ref:\"input\",staticClass:\"el-input__inner\",attrs:{\"tabindex\":_vm.tabindex,\"type\":_vm.type,\"disabled\":_vm.inputDisabled,\"readonly\":_vm.readonly,\"autocomplete\":_vm.autoComplete,\"aria-label\":_vm.label},domProps:{\"value\":_vm.currentValue},on:{\"compositionstart\":_vm.handleComposition,\"compositionupdate\":_vm.handleComposition,\"compositionend\":_vm.handleComposition,\"input\":_vm.handleInput,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur,\"change\":_vm.handleChange}},'input',_vm.$attrs,false)):_vm._e(),(_vm.$slots.prefix || _vm.prefixIcon)?_c('span',{staticClass:\"el-input__prefix\"},[_vm._t(\"prefix\"),(_vm.prefixIcon)?_c('i',{staticClass:\"el-input__icon\",class:_vm.prefixIcon}):_vm._e()],2):_vm._e(),(_vm.$slots.suffix || _vm.suffixIcon || _vm.showClear || _vm.validateState && _vm.needStatusIcon)?_c('span',{staticClass:\"el-input__suffix\"},[_c('span',{staticClass:\"el-input__suffix-inner\"},[(!_vm.showClear)?[_vm._t(\"suffix\"),(_vm.suffixIcon)?_c('i',{staticClass:\"el-input__icon\",class:_vm.suffixIcon}):_vm._e()]:_c('i',{staticClass:\"el-input__icon el-icon-circle-close el-input__clear\",on:{\"click\":_vm.clear}})],2),(_vm.validateState)?_c('i',{staticClass:\"el-input__icon\",class:['el-input__validateIcon', _vm.validateIcon]}):_vm._e()]):_vm._e(),(_vm.$slots.append)?_c('div',{staticClass:\"el-input-group__append\"},[_vm._t(\"append\")],2):_vm._e()]:_c('textarea',_vm._b({ref:\"textarea\",staticClass:\"el-textarea__inner\",style:(_vm.textareaStyle),attrs:{\"tabindex\":_vm.tabindex,\"disabled\":_vm.inputDisabled,\"readonly\":_vm.readonly,\"aria-label\":_vm.label},domProps:{\"value\":_vm.currentValue},on:{\"compositionstart\":_vm.handleComposition,\"compositionupdate\":_vm.handleComposition,\"compositionend\":_vm.handleComposition,\"input\":_vm.handleInput,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur,\"change\":_vm.handleChange}},'textarea',_vm.$attrs,false))],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _inputNumber = __webpack_require__(100);\n\nvar _inputNumber2 = _interopRequireDefault(_inputNumber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_inputNumber2.default.install = function (Vue) {\n  Vue.component(_inputNumber2.default.name, _inputNumber2.default);\n};\n\nexports.default = _inputNumber2.default;\n\n/***/ }),\n/* 100 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue__ = __webpack_require__(101);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_223987a9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_number_vue__ = __webpack_require__(102);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_input_number_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_223987a9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_input_number_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _focus = __webpack_require__(19);\n\nvar _focus2 = _interopRequireDefault(_focus);\n\nvar _repeatClick = __webpack_require__(33);\n\nvar _repeatClick2 = _interopRequireDefault(_repeatClick);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElInputNumber',\n  mixins: [(0, _focus2.default)('input')],\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n  directives: {\n    repeatClick: _repeatClick2.default\n  },\n  components: {\n    ElInput: _input2.default\n  },\n  props: {\n    step: {\n      type: Number,\n      default: 1\n    },\n    max: {\n      type: Number,\n      default: Infinity\n    },\n    min: {\n      type: Number,\n      default: -Infinity\n    },\n    value: {},\n    disabled: Boolean,\n    size: String,\n    controls: {\n      type: Boolean,\n      default: true\n    },\n    controlsPosition: {\n      type: String,\n      default: ''\n    },\n    name: String,\n    label: String,\n    precision: {\n      type: Number,\n      validator: function validator(val) {\n        return val >= 0 && val === parseInt(val, 10);\n      }\n    }\n  },\n  data: function data() {\n    return {\n      currentValue: 0\n    };\n  },\n\n  watch: {\n    value: {\n      immediate: true,\n      handler: function handler(value) {\n        var newVal = value === undefined ? value : Number(value);\n        if (newVal !== undefined) {\n          if (isNaN(newVal)) {\n            return;\n          }\n          if (this.precision !== undefined) {\n            newVal = this.toPrecision(newVal, this.precision);\n          }\n        }\n        if (newVal >= this.max) newVal = this.max;\n        if (newVal <= this.min) newVal = this.min;\n        this.currentValue = newVal;\n        this.$emit('input', newVal);\n      }\n    }\n  },\n  computed: {\n    minDisabled: function minDisabled() {\n      return this._decrease(this.value, this.step) < this.min;\n    },\n    maxDisabled: function maxDisabled() {\n      return this._increase(this.value, this.step) > this.max;\n    },\n    numPrecision: function numPrecision() {\n      var value = this.value,\n          step = this.step,\n          getPrecision = this.getPrecision,\n          precision = this.precision;\n\n      var stepPrecision = getPrecision(step);\n      if (precision !== undefined) {\n        if (stepPrecision > precision) {\n          console.warn('[Element Warn][InputNumber]precision should not be less than the decimal places of step');\n        }\n        return precision;\n      } else {\n        return Math.max(getPrecision(value), stepPrecision);\n      }\n    },\n    controlsAtRight: function controlsAtRight() {\n      return this.controlsPosition === 'right';\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    inputNumberSize: function inputNumberSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    inputNumberDisabled: function inputNumberDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    },\n    currentInputValue: function currentInputValue() {\n      var currentValue = this.currentValue;\n      if (typeof currentValue === 'number' && this.precision !== undefined) {\n        return currentValue.toFixed(this.precision);\n      } else {\n        return currentValue;\n      }\n    }\n  },\n  methods: {\n    toPrecision: function toPrecision(num, precision) {\n      if (precision === undefined) precision = this.numPrecision;\n      return parseFloat(parseFloat(Number(num).toFixed(precision)));\n    },\n    getPrecision: function getPrecision(value) {\n      if (value === undefined) return 0;\n      var valueString = value.toString();\n      var dotPosition = valueString.indexOf('.');\n      var precision = 0;\n      if (dotPosition !== -1) {\n        precision = valueString.length - dotPosition - 1;\n      }\n      return precision;\n    },\n    _increase: function _increase(val, step) {\n      if (typeof val !== 'number' && val !== undefined) return this.currentValue;\n\n      var precisionFactor = Math.pow(10, this.numPrecision);\n      // Solve the accuracy problem of JS decimal calculation by converting the value to integer.\n      return this.toPrecision((precisionFactor * val + precisionFactor * step) / precisionFactor);\n    },\n    _decrease: function _decrease(val, step) {\n      if (typeof val !== 'number' && val !== undefined) return this.currentValue;\n\n      var precisionFactor = Math.pow(10, this.numPrecision);\n\n      return this.toPrecision((precisionFactor * val - precisionFactor * step) / precisionFactor);\n    },\n    increase: function increase() {\n      if (this.inputNumberDisabled || this.maxDisabled) return;\n      var value = this.value || 0;\n      var newVal = this._increase(value, this.step);\n      this.setCurrentValue(newVal);\n    },\n    decrease: function decrease() {\n      if (this.inputNumberDisabled || this.minDisabled) return;\n      var value = this.value || 0;\n      var newVal = this._decrease(value, this.step);\n      this.setCurrentValue(newVal);\n    },\n    handleBlur: function handleBlur(event) {\n      this.$emit('blur', event);\n      this.$refs.input.setCurrentValue(this.currentInputValue);\n    },\n    handleFocus: function handleFocus(event) {\n      this.$emit('focus', event);\n    },\n    setCurrentValue: function setCurrentValue(newVal) {\n      var oldVal = this.currentValue;\n      if (typeof newVal === 'number' && this.precision !== undefined) {\n        newVal = this.toPrecision(newVal, this.precision);\n      }\n      if (newVal >= this.max) newVal = this.max;\n      if (newVal <= this.min) newVal = this.min;\n      if (oldVal === newVal) {\n        this.$refs.input.setCurrentValue(this.currentInputValue);\n        return;\n      }\n      this.$emit('input', newVal);\n      this.$emit('change', newVal, oldVal);\n      this.currentValue = newVal;\n    },\n    handleInputChange: function handleInputChange(value) {\n      var newVal = value === '' ? undefined : Number(value);\n      if (!isNaN(newVal) || value === '') {\n        this.setCurrentValue(newVal);\n      }\n    }\n  },\n  mounted: function mounted() {\n    var innerInput = this.$refs.input.$refs.input;\n    innerInput.setAttribute('role', 'spinbutton');\n    innerInput.setAttribute('aria-valuemax', this.max);\n    innerInput.setAttribute('aria-valuemin', this.min);\n    innerInput.setAttribute('aria-valuenow', this.currentValue);\n    innerInput.setAttribute('aria-disabled', this.inputNumberDisabled);\n  },\n  updated: function updated() {\n    if (!this.$refs || !this.$refs.input) return;\n    var innerInput = this.$refs.input.$refs.input;\n    innerInput.setAttribute('aria-valuenow', this.currentValue);\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 102 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[\n    'el-input-number',\n    _vm.inputNumberSize ? 'el-input-number--' + _vm.inputNumberSize : '',\n    { 'is-disabled': _vm.inputNumberDisabled },\n    { 'is-without-controls': !_vm.controls },\n    { 'is-controls-right': _vm.controlsAtRight }\n  ],on:{\"dragstart\":function($event){$event.preventDefault();}}},[(_vm.controls)?_c('span',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.decrease),expression:\"decrease\"}],staticClass:\"el-input-number__decrease\",class:{'is-disabled': _vm.minDisabled},attrs:{\"role\":\"button\"},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.decrease($event)}}},[_c('i',{class:(\"el-icon-\" + (_vm.controlsAtRight ? 'arrow-down' : 'minus'))})]):_vm._e(),(_vm.controls)?_c('span',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.increase),expression:\"increase\"}],staticClass:\"el-input-number__increase\",class:{'is-disabled': _vm.maxDisabled},attrs:{\"role\":\"button\"},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.increase($event)}}},[_c('i',{class:(\"el-icon-\" + (_vm.controlsAtRight ? 'arrow-up' : 'plus'))})]):_vm._e(),_c('el-input',{ref:\"input\",attrs:{\"value\":_vm.currentInputValue,\"disabled\":_vm.inputNumberDisabled,\"size\":_vm.inputNumberSize,\"max\":_vm.max,\"min\":_vm.min,\"name\":_vm.name,\"label\":_vm.label},on:{\"blur\":_vm.handleBlur,\"focus\":_vm.handleFocus,\"change\":_vm.handleInputChange},nativeOn:{\"keydown\":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.preventDefault();_vm.increase($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.preventDefault();_vm.decrease($event)}]}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _radio = __webpack_require__(104);\n\nvar _radio2 = _interopRequireDefault(_radio);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_radio2.default.install = function (Vue) {\n  Vue.component(_radio2.default.name, _radio2.default);\n};\n\nexports.default = _radio2.default;\n\n/***/ }),\n/* 104 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_vue__ = __webpack_require__(105);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_70267beb_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_vue__ = __webpack_require__(106);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_70267beb_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElRadio',\n\n  mixins: [_emitter2.default],\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  componentName: 'ElRadio',\n\n  props: {\n    value: {},\n    label: {},\n    disabled: Boolean,\n    name: String,\n    border: Boolean,\n    size: String\n  },\n\n  data: function data() {\n    return {\n      focus: false\n    };\n  },\n\n  computed: {\n    isGroup: function isGroup() {\n      var parent = this.$parent;\n      while (parent) {\n        if (parent.$options.componentName !== 'ElRadioGroup') {\n          parent = parent.$parent;\n        } else {\n          this._radioGroup = parent;\n          return true;\n        }\n      }\n      return false;\n    },\n\n    model: {\n      get: function get() {\n        return this.isGroup ? this._radioGroup.value : this.value;\n      },\n      set: function set(val) {\n        if (this.isGroup) {\n          this.dispatch('ElRadioGroup', 'input', [val]);\n        } else {\n          this.$emit('input', val);\n        }\n      }\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    radioSize: function radioSize() {\n      var temRadioSize = this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n      return this.isGroup ? this._radioGroup.radioGroupSize || temRadioSize : temRadioSize;\n    },\n    isDisabled: function isDisabled() {\n      return this.isGroup ? this._radioGroup.disabled || this.disabled || (this.elForm || {}).disabled : this.disabled || (this.elForm || {}).disabled;\n    },\n    tabIndex: function tabIndex() {\n      return !this.isDisabled ? this.isGroup ? this.model === this.label ? 0 : -1 : 0 : -1;\n    }\n  },\n\n  methods: {\n    handleChange: function handleChange() {\n      var _this = this;\n\n      this.$nextTick(function () {\n        _this.$emit('change', _this.model);\n        _this.isGroup && _this.dispatch('ElRadioGroup', 'handleChange', _this.model);\n      });\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 106 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"el-radio\",class:[\n    _vm.border && _vm.radioSize ? 'el-radio--' + _vm.radioSize : '',\n    { 'is-disabled': _vm.isDisabled },\n    { 'is-focus': _vm.focus },\n    { 'is-bordered': _vm.border },\n    { 'is-checked': _vm.model === _vm.label }\n  ],attrs:{\"role\":\"radio\",\"aria-checked\":_vm.model === _vm.label,\"aria-disabled\":_vm.isDisabled,\"tabindex\":_vm.tabIndex},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"space\",32,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.model = _vm.isDisabled ? _vm.model : _vm.label}}},[_c('span',{staticClass:\"el-radio__input\",class:{\n      'is-disabled': _vm.isDisabled,\n      'is-checked': _vm.model === _vm.label\n    }},[_c('span',{staticClass:\"el-radio__inner\"}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-radio__original\",attrs:{\"type\":\"radio\",\"aria-hidden\":\"true\",\"name\":_vm.name,\"disabled\":_vm.isDisabled,\"tabindex\":\"-1\"},domProps:{\"value\":_vm.label,\"checked\":_vm._q(_vm.model,_vm.label)},on:{\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false},\"change\":[function($event){_vm.model=_vm.label},_vm.handleChange]}})]),_c('span',{staticClass:\"el-radio__label\",on:{\"keydown\":function($event){$event.stopPropagation();}}},[_vm._t(\"default\"),(!_vm.$slots.default)?[_vm._v(_vm._s(_vm.label))]:_vm._e()],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _radioGroup = __webpack_require__(108);\n\nvar _radioGroup2 = _interopRequireDefault(_radioGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_radioGroup2.default.install = function (Vue) {\n  Vue.component(_radioGroup2.default.name, _radioGroup2.default);\n};\n\nexports.default = _radioGroup2.default;\n\n/***/ }),\n/* 108 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_group_vue__ = __webpack_require__(109);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6c6d731d_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_group_vue__ = __webpack_require__(110);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_group_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6c6d731d_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_group_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar keyCode = Object.freeze({\n  LEFT: 37,\n  UP: 38,\n  RIGHT: 39,\n  DOWN: 40\n}); //\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElRadioGroup',\n\n  componentName: 'ElRadioGroup',\n\n  inject: {\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  mixins: [_emitter2.default],\n\n  props: {\n    value: {},\n    size: String,\n    fill: String,\n    textColor: String,\n    disabled: Boolean\n  },\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    radioGroupSize: function radioGroupSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    }\n  },\n\n  created: function created() {\n    var _this = this;\n\n    this.$on('handleChange', function (value) {\n      _this.$emit('change', value);\n    });\n  },\n  mounted: function mounted() {\n    // 褰搑adioGroup娌℃湁榛樿閫夐」鏃讹紝绗竴涓彲浠ラ�変腑Tab瀵艰埅\n    var radios = this.$el.querySelectorAll('[type=radio]');\n    var firstLabel = this.$el.querySelectorAll('[role=radio]')[0];\n    if (![].some.call(radios, function (radio) {\n      return radio.checked;\n    }) && firstLabel) {\n      firstLabel.tabIndex = 0;\n    }\n  },\n\n  methods: {\n    handleKeydown: function handleKeydown(e) {\n      // 宸﹀彸涓婁笅鎸夐敭 鍙互鍦╮adio缁勫唴鍒囨崲涓嶅悓閫夐」\n      var target = e.target;\n      var className = target.nodeName === 'INPUT' ? '[type=radio]' : '[role=radio]';\n      var radios = this.$el.querySelectorAll(className);\n      var length = radios.length;\n      var index = [].indexOf.call(radios, target);\n      var roleRadios = this.$el.querySelectorAll('[role=radio]');\n      switch (e.keyCode) {\n        case keyCode.LEFT:\n        case keyCode.UP:\n          e.stopPropagation();\n          e.preventDefault();\n          if (index === 0) {\n            roleRadios[length - 1].click();\n            roleRadios[length - 1].focus();\n          } else {\n            roleRadios[index - 1].click();\n            roleRadios[index - 1].focus();\n          }\n          break;\n        case keyCode.RIGHT:\n        case keyCode.DOWN:\n          if (index === length - 1) {\n            e.stopPropagation();\n            e.preventDefault();\n            roleRadios[0].click();\n            roleRadios[0].focus();\n          } else {\n            roleRadios[index + 1].click();\n            roleRadios[index + 1].focus();\n          }\n          break;\n        default:\n          break;\n      }\n    }\n  },\n  watch: {\n    value: function value(_value) {\n      this.dispatch('ElFormItem', 'el.form.change', [this.value]);\n    }\n  }\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-radio-group\",attrs:{\"role\":\"radiogroup\"},on:{\"keydown\":_vm.handleKeydown}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _radioButton = __webpack_require__(112);\n\nvar _radioButton2 = _interopRequireDefault(_radioButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_radioButton2.default.install = function (Vue) {\n  Vue.component(_radioButton2.default.name, _radioButton2.default);\n};\n\nexports.default = _radioButton2.default;\n\n/***/ }),\n/* 112 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_button_vue__ = __webpack_require__(113);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_button_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_button_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2661fff8_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_button_vue__ = __webpack_require__(114);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_radio_button_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2661fff8_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_radio_button_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElRadioButton',\n\n  mixins: [_emitter2.default],\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  props: {\n    label: {},\n    disabled: Boolean,\n    name: String\n  },\n  data: function data() {\n    return {\n      focus: false\n    };\n  },\n\n  computed: {\n    value: {\n      get: function get() {\n        return this._radioGroup.value;\n      },\n      set: function set(value) {\n        this._radioGroup.$emit('input', value);\n      }\n    },\n    _radioGroup: function _radioGroup() {\n      var parent = this.$parent;\n      while (parent) {\n        if (parent.$options.componentName !== 'ElRadioGroup') {\n          parent = parent.$parent;\n        } else {\n          return parent;\n        }\n      }\n      return false;\n    },\n    activeStyle: function activeStyle() {\n      return {\n        backgroundColor: this._radioGroup.fill || '',\n        borderColor: this._radioGroup.fill || '',\n        boxShadow: this._radioGroup.fill ? '-1px 0 0 0 ' + this._radioGroup.fill : '',\n        color: this._radioGroup.textColor || ''\n      };\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    size: function size() {\n      return this._radioGroup.radioGroupSize || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    isDisabled: function isDisabled() {\n      return this.disabled || this._radioGroup.disabled || (this.elForm || {}).disabled;\n    },\n    tabIndex: function tabIndex() {\n      return !this.isDisabled ? this._radioGroup ? this.value === this.label ? 0 : -1 : 0 : -1;\n    }\n  },\n\n  methods: {\n    handleChange: function handleChange() {\n      var _this = this;\n\n      this.$nextTick(function () {\n        _this.dispatch('ElRadioGroup', 'handleChange', _this.value);\n      });\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 114 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"el-radio-button\",class:[\n    _vm.size ? 'el-radio-button--' + _vm.size : '',\n    { 'is-active': _vm.value === _vm.label },\n    { 'is-disabled': _vm.isDisabled },\n    { 'is-focus': _vm.focus }\n  ],attrs:{\"role\":\"radio\",\"aria-checked\":_vm.value === _vm.label,\"aria-disabled\":_vm.isDisabled,\"tabindex\":_vm.tabIndex},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"space\",32,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.value = _vm.isDisabled ? _vm.value : _vm.label}}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.value),expression:\"value\"}],staticClass:\"el-radio-button__orig-radio\",attrs:{\"type\":\"radio\",\"name\":_vm.name,\"disabled\":_vm.isDisabled,\"tabindex\":\"-1\"},domProps:{\"value\":_vm.label,\"checked\":_vm._q(_vm.value,_vm.label)},on:{\"change\":[function($event){_vm.value=_vm.label},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}}),_c('span',{staticClass:\"el-radio-button__inner\",style:(_vm.value === _vm.label ? _vm.activeStyle : null),on:{\"keydown\":function($event){$event.stopPropagation();}}},[_vm._t(\"default\"),(!_vm.$slots.default)?[_vm._v(_vm._s(_vm.label))]:_vm._e()],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkbox = __webpack_require__(116);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_checkbox2.default.install = function (Vue) {\n  Vue.component(_checkbox2.default.name, _checkbox2.default);\n};\n\nexports.default = _checkbox2.default;\n\n/***/ }),\n/* 116 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__ = __webpack_require__(117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_45167309_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__ = __webpack_require__(118);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_45167309_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElCheckbox',\n\n  mixins: [_emitter2.default],\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  componentName: 'ElCheckbox',\n\n  data: function data() {\n    return {\n      selfModel: false,\n      focus: false,\n      isLimitExceeded: false\n    };\n  },\n\n\n  computed: {\n    model: {\n      get: function get() {\n        return this.isGroup ? this.store : this.value !== undefined ? this.value : this.selfModel;\n      },\n      set: function set(val) {\n        if (this.isGroup) {\n          this.isLimitExceeded = false;\n          this._checkboxGroup.min !== undefined && val.length < this._checkboxGroup.min && (this.isLimitExceeded = true);\n\n          this._checkboxGroup.max !== undefined && val.length > this._checkboxGroup.max && (this.isLimitExceeded = true);\n\n          this.isLimitExceeded === false && this.dispatch('ElCheckboxGroup', 'input', [val]);\n        } else {\n          this.$emit('input', val);\n          this.selfModel = val;\n        }\n      }\n    },\n\n    isChecked: function isChecked() {\n      if ({}.toString.call(this.model) === '[object Boolean]') {\n        return this.model;\n      } else if (Array.isArray(this.model)) {\n        return this.model.indexOf(this.label) > -1;\n      } else if (this.model !== null && this.model !== undefined) {\n        return this.model === this.trueLabel;\n      }\n    },\n    isGroup: function isGroup() {\n      var parent = this.$parent;\n      while (parent) {\n        if (parent.$options.componentName !== 'ElCheckboxGroup') {\n          parent = parent.$parent;\n        } else {\n          this._checkboxGroup = parent;\n          return true;\n        }\n      }\n      return false;\n    },\n    store: function store() {\n      return this._checkboxGroup ? this._checkboxGroup.value : this.value;\n    },\n    isDisabled: function isDisabled() {\n      return this.isGroup ? this._checkboxGroup.disabled || this.disabled || (this.elForm || {}).disabled : this.disabled || (this.elForm || {}).disabled;\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    checkboxSize: function checkboxSize() {\n      var temCheckboxSize = this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n      return this.isGroup ? this._checkboxGroup.checkboxGroupSize || temCheckboxSize : temCheckboxSize;\n    }\n  },\n\n  props: {\n    value: {},\n    label: {},\n    indeterminate: Boolean,\n    disabled: Boolean,\n    checked: Boolean,\n    name: String,\n    trueLabel: [String, Number],\n    falseLabel: [String, Number],\n    id: String, /* 褰搃ndeterminate涓虹湡鏃讹紝涓篶ontrols鎻愪緵鐩稿叧杩炵殑checkbox鐨刬d锛岃〃鏄庡厓绱犻棿鐨勬帶鍒跺叧绯�*/\n    controls: String, /* 褰搃ndeterminate涓虹湡鏃讹紝涓篶ontrols鎻愪緵鐩稿叧杩炵殑checkbox鐨刬d锛岃〃鏄庡厓绱犻棿鐨勬帶鍒跺叧绯�*/\n    border: Boolean,\n    size: String\n  },\n\n  methods: {\n    addToStore: function addToStore() {\n      if (Array.isArray(this.model) && this.model.indexOf(this.label) === -1) {\n        this.model.push(this.label);\n      } else {\n        this.model = this.trueLabel || true;\n      }\n    },\n    handleChange: function handleChange(ev) {\n      var _this = this;\n\n      if (this.isLimitExceeded) return;\n      var value = void 0;\n      if (ev.target.checked) {\n        value = this.trueLabel === undefined ? true : this.trueLabel;\n      } else {\n        value = this.falseLabel === undefined ? false : this.falseLabel;\n      }\n      this.$emit('change', value, ev);\n      this.$nextTick(function () {\n        if (_this.isGroup) {\n          _this.dispatch('ElCheckboxGroup', 'change', [_this._checkboxGroup.value]);\n        }\n      });\n    }\n  },\n\n  created: function created() {\n    this.checked && this.addToStore();\n  },\n  mounted: function mounted() {\n    // 涓篿ndeterminate鍏冪礌 娣诲姞aria-controls 灞炴�n    if (this.indeterminate) {\n      this.$el.setAttribute('aria-controls', this.controls);\n    }\n  },\n\n\n  watch: {\n    value: function value(_value) {\n      this.dispatch('ElFormItem', 'el.form.change', _value);\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 118 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"el-checkbox\",class:[\n    _vm.border && _vm.checkboxSize ? 'el-checkbox--' + _vm.checkboxSize : '',\n    { 'is-disabled': _vm.isDisabled },\n    { 'is-bordered': _vm.border },\n    { 'is-checked': _vm.isChecked }\n  ],attrs:{\"role\":\"checkbox\",\"aria-checked\":_vm.indeterminate ? 'mixed': _vm.isChecked,\"aria-disabled\":_vm.isDisabled,\"id\":_vm.id}},[_c('span',{staticClass:\"el-checkbox__input\",class:{\n      'is-disabled': _vm.isDisabled,\n      'is-checked': _vm.isChecked,\n      'is-indeterminate': _vm.indeterminate,\n      'is-focus': _vm.focus\n    },attrs:{\"aria-checked\":\"mixed\"}},[_c('span',{staticClass:\"el-checkbox__inner\"}),(_vm.trueLabel || _vm.falseLabel)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-checkbox__original\",attrs:{\"type\":\"checkbox\",\"aria-hidden\":\"true\",\"name\":_vm.name,\"disabled\":_vm.isDisabled,\"true-value\":_vm.trueLabel,\"false-value\":_vm.falseLabel},domProps:{\"checked\":Array.isArray(_vm.model)?_vm._i(_vm.model,null)>-1:_vm._q(_vm.model,_vm.trueLabel)},on:{\"change\":[function($event){var $$a=_vm.model,$$el=$event.target,$$c=$$el.checked?(_vm.trueLabel):(_vm.falseLabel);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.model=$$a.concat([$$v]))}else{$$i>-1&&(_vm.model=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.model=$$c}},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-checkbox__original\",attrs:{\"type\":\"checkbox\",\"aria-hidden\":\"true\",\"disabled\":_vm.isDisabled,\"name\":_vm.name},domProps:{\"value\":_vm.label,\"checked\":Array.isArray(_vm.model)?_vm._i(_vm.model,_vm.label)>-1:(_vm.model)},on:{\"change\":[function($event){var $$a=_vm.model,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.label,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.model=$$a.concat([$$v]))}else{$$i>-1&&(_vm.model=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.model=$$c}},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}})]),(_vm.$slots.default || _vm.label)?_c('span',{staticClass:\"el-checkbox__label\"},[_vm._t(\"default\"),(!_vm.$slots.default)?[_vm._v(_vm._s(_vm.label))]:_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkboxButton = __webpack_require__(120);\n\nvar _checkboxButton2 = _interopRequireDefault(_checkboxButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_checkboxButton2.default.install = function (Vue) {\n  Vue.component(_checkboxButton2.default.name, _checkboxButton2.default);\n};\n\nexports.default = _checkboxButton2.default;\n\n/***/ }),\n/* 120 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_button_vue__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_button_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_button_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_28a329b4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_button_vue__ = __webpack_require__(122);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_button_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_28a329b4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_button_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElCheckboxButton',\n\n  mixins: [_emitter2.default],\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  data: function data() {\n    return {\n      selfModel: false,\n      focus: false,\n      isLimitExceeded: false\n    };\n  },\n\n\n  props: {\n    value: {},\n    label: {},\n    disabled: Boolean,\n    checked: Boolean,\n    name: String,\n    trueLabel: [String, Number],\n    falseLabel: [String, Number]\n  },\n  computed: {\n    model: {\n      get: function get() {\n        return this._checkboxGroup ? this.store : this.value !== undefined ? this.value : this.selfModel;\n      },\n      set: function set(val) {\n        if (this._checkboxGroup) {\n          this.isLimitExceeded = false;\n          this._checkboxGroup.min !== undefined && val.length < this._checkboxGroup.min && (this.isLimitExceeded = true);\n\n          this._checkboxGroup.max !== undefined && val.length > this._checkboxGroup.max && (this.isLimitExceeded = true);\n\n          this.isLimitExceeded === false && this.dispatch('ElCheckboxGroup', 'input', [val]);\n        } else if (this.value !== undefined) {\n          this.$emit('input', val);\n        } else {\n          this.selfModel = val;\n        }\n      }\n    },\n\n    isChecked: function isChecked() {\n      if ({}.toString.call(this.model) === '[object Boolean]') {\n        return this.model;\n      } else if (Array.isArray(this.model)) {\n        return this.model.indexOf(this.label) > -1;\n      } else if (this.model !== null && this.model !== undefined) {\n        return this.model === this.trueLabel;\n      }\n    },\n    _checkboxGroup: function _checkboxGroup() {\n      var parent = this.$parent;\n      while (parent) {\n        if (parent.$options.componentName !== 'ElCheckboxGroup') {\n          parent = parent.$parent;\n        } else {\n          return parent;\n        }\n      }\n      return false;\n    },\n    store: function store() {\n      return this._checkboxGroup ? this._checkboxGroup.value : this.value;\n    },\n    activeStyle: function activeStyle() {\n      return {\n        backgroundColor: this._checkboxGroup.fill || '',\n        borderColor: this._checkboxGroup.fill || '',\n        color: this._checkboxGroup.textColor || '',\n        'box-shadow': '-1px 0 0 0 ' + this._checkboxGroup.fill\n\n      };\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    size: function size() {\n      return this._checkboxGroup.checkboxGroupSize || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    isDisabled: function isDisabled() {\n      return this._checkboxGroup ? this._checkboxGroup.disabled || this.disabled || (this.elForm || {}).disabled : this.disabled || (this.elForm || {}).disabled;\n    }\n  },\n  methods: {\n    addToStore: function addToStore() {\n      if (Array.isArray(this.model) && this.model.indexOf(this.label) === -1) {\n        this.model.push(this.label);\n      } else {\n        this.model = this.trueLabel || true;\n      }\n    },\n    handleChange: function handleChange(ev) {\n      var _this = this;\n\n      if (this.isLimitExceeded) return;\n      var value = void 0;\n      if (ev.target.checked) {\n        value = this.trueLabel === undefined ? true : this.trueLabel;\n      } else {\n        value = this.falseLabel === undefined ? false : this.falseLabel;\n      }\n      this.$emit('change', value, ev);\n      this.$nextTick(function () {\n        if (_this._checkboxGroup) {\n          _this.dispatch('ElCheckboxGroup', 'change', [_this._checkboxGroup.value]);\n        }\n      });\n    }\n  },\n\n  created: function created() {\n    this.checked && this.addToStore();\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 122 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"el-checkbox-button\",class:[\n      _vm.size ? 'el-checkbox-button--' + _vm.size : '',\n      { 'is-disabled': _vm.isDisabled },\n      { 'is-checked': _vm.isChecked },\n      { 'is-focus': _vm.focus } ],attrs:{\"role\":\"checkbox\",\"aria-checked\":_vm.isChecked,\"aria-disabled\":_vm.isDisabled}},[(_vm.trueLabel || _vm.falseLabel)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-checkbox-button__original\",attrs:{\"type\":\"checkbox\",\"name\":_vm.name,\"disabled\":_vm.isDisabled,\"true-value\":_vm.trueLabel,\"false-value\":_vm.falseLabel},domProps:{\"checked\":Array.isArray(_vm.model)?_vm._i(_vm.model,null)>-1:_vm._q(_vm.model,_vm.trueLabel)},on:{\"change\":[function($event){var $$a=_vm.model,$$el=$event.target,$$c=$$el.checked?(_vm.trueLabel):(_vm.falseLabel);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.model=$$a.concat([$$v]))}else{$$i>-1&&(_vm.model=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.model=$$c}},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-checkbox-button__original\",attrs:{\"type\":\"checkbox\",\"name\":_vm.name,\"disabled\":_vm.isDisabled},domProps:{\"value\":_vm.label,\"checked\":Array.isArray(_vm.model)?_vm._i(_vm.model,_vm.label)>-1:(_vm.model)},on:{\"change\":[function($event){var $$a=_vm.model,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.label,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.model=$$a.concat([$$v]))}else{$$i>-1&&(_vm.model=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.model=$$c}},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}}),(_vm.$slots.default || _vm.label)?_c('span',{staticClass:\"el-checkbox-button__inner\",style:(_vm.isChecked ? _vm.activeStyle : null)},[_vm._t(\"default\",[_vm._v(_vm._s(_vm.label))])],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkboxGroup = __webpack_require__(124);\n\nvar _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_checkboxGroup2.default.install = function (Vue) {\n  Vue.component(_checkboxGroup2.default.name, _checkboxGroup2.default);\n};\n\nexports.default = _checkboxGroup2.default;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue__ = __webpack_require__(125);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2f79c88a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_group_vue__ = __webpack_require__(126);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_group_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2f79c88a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_group_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElCheckboxGroup',\n\n  componentName: 'ElCheckboxGroup',\n\n  mixins: [_emitter2.default],\n\n  inject: {\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  props: {\n    value: {},\n    disabled: Boolean,\n    min: Number,\n    max: Number,\n    size: String,\n    fill: String,\n    textColor: String\n  },\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    checkboxGroupSize: function checkboxGroupSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    }\n  },\n\n  watch: {\n    value: function value(_value) {\n      this.dispatch('ElFormItem', 'el.form.change', [_value]);\n    }\n  }\n};\n\n/***/ }),\n/* 126 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-checkbox-group\",attrs:{\"role\":\"group\",\"aria-label\":\"checkbox-group\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _component = __webpack_require__(128);\n\nvar _component2 = _interopRequireDefault(_component);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_component2.default.install = function (Vue) {\n  Vue.component(_component2.default.name, _component2.default);\n};\n\nexports.default = _component2.default;\n\n/***/ }),\n/* 128 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue__ = __webpack_require__(129);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_80721fd0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_component_vue__ = __webpack_require__(130);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_component_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_80721fd0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_component_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _focus = __webpack_require__(19);\n\nvar _focus2 = _interopRequireDefault(_focus);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElSwitch',\n  mixins: [(0, _focus2.default)('input'), _migrating2.default],\n  inject: {\n    elForm: {\n      default: ''\n    }\n  },\n  props: {\n    value: {\n      type: [Boolean, String, Number],\n      default: false\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    width: {\n      type: Number,\n      default: 40\n    },\n    activeIconClass: {\n      type: String,\n      default: ''\n    },\n    inactiveIconClass: {\n      type: String,\n      default: ''\n    },\n    activeText: String,\n    inactiveText: String,\n    activeColor: {\n      type: String,\n      default: ''\n    },\n    inactiveColor: {\n      type: String,\n      default: ''\n    },\n    activeValue: {\n      type: [Boolean, String, Number],\n      default: true\n    },\n    inactiveValue: {\n      type: [Boolean, String, Number],\n      default: false\n    },\n    name: {\n      type: String,\n      default: ''\n    },\n    id: String\n  },\n  data: function data() {\n    return {\n      coreWidth: this.width\n    };\n  },\n  created: function created() {\n    if (!~[this.activeValue, this.inactiveValue].indexOf(this.value)) {\n      this.$emit('input', this.inactiveValue);\n    }\n  },\n\n  computed: {\n    checked: function checked() {\n      return this.value === this.activeValue;\n    },\n    switchDisabled: function switchDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    }\n  },\n  watch: {\n    checked: function checked() {\n      this.$refs.input.checked = this.checked;\n      if (this.activeColor || this.inactiveColor) {\n        this.setBackgroundColor();\n      }\n    }\n  },\n  methods: {\n    handleChange: function handleChange(event) {\n      var _this = this;\n\n      this.$emit('input', !this.checked ? this.activeValue : this.inactiveValue);\n      this.$emit('change', !this.checked ? this.activeValue : this.inactiveValue);\n      this.$nextTick(function () {\n        // set input's checked property\n        // in case parent refuses to change component's value\n        _this.$refs.input.checked = _this.checked;\n      });\n    },\n    setBackgroundColor: function setBackgroundColor() {\n      var newColor = this.checked ? this.activeColor : this.inactiveColor;\n      this.$refs.core.style.borderColor = newColor;\n      this.$refs.core.style.backgroundColor = newColor;\n    },\n    switchValue: function switchValue() {\n      !this.switchDisabled && this.handleChange();\n    },\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'on-color': 'on-color is renamed to active-color.',\n          'off-color': 'off-color is renamed to inactive-color.',\n          'on-text': 'on-text is renamed to active-text.',\n          'off-text': 'off-text is renamed to inactive-text.',\n          'on-value': 'on-value is renamed to active-value.',\n          'off-value': 'off-value is renamed to inactive-value.',\n          'on-icon-class': 'on-icon-class is renamed to active-icon-class.',\n          'off-icon-class': 'off-icon-class is renamed to inactive-icon-class.'\n        }\n      };\n    }\n  },\n  mounted: function mounted() {\n    /* istanbul ignore if */\n    this.coreWidth = this.width || 40;\n    if (this.activeColor || this.inactiveColor) {\n      this.setBackgroundColor();\n    }\n    this.$refs.input.checked = this.checked;\n  }\n};\n\n/***/ }),\n/* 130 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-switch\",class:{ 'is-disabled': _vm.switchDisabled, 'is-checked': _vm.checked },attrs:{\"role\":\"switch\",\"aria-checked\":_vm.checked,\"aria-disabled\":_vm.switchDisabled},on:{\"click\":_vm.switchValue}},[_c('input',{ref:\"input\",staticClass:\"el-switch__input\",attrs:{\"type\":\"checkbox\",\"id\":_vm.id,\"name\":_vm.name,\"true-value\":_vm.activeValue,\"false-value\":_vm.inactiveValue,\"disabled\":_vm.switchDisabled},on:{\"change\":_vm.handleChange,\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.switchValue($event)}}}),(_vm.inactiveIconClass || _vm.inactiveText)?_c('span',{class:['el-switch__label', 'el-switch__label--left', !_vm.checked ? 'is-active' : '']},[(_vm.inactiveIconClass)?_c('i',{class:[_vm.inactiveIconClass]}):_vm._e(),(!_vm.inactiveIconClass && _vm.inactiveText)?_c('span',{attrs:{\"aria-hidden\":_vm.checked}},[_vm._v(_vm._s(_vm.inactiveText))]):_vm._e()]):_vm._e(),_c('span',{ref:\"core\",staticClass:\"el-switch__core\",style:({ 'width': _vm.coreWidth + 'px' })}),(_vm.activeIconClass || _vm.activeText)?_c('span',{class:['el-switch__label', 'el-switch__label--right', _vm.checked ? 'is-active' : '']},[(_vm.activeIconClass)?_c('i',{class:[_vm.activeIconClass]}):_vm._e(),(!_vm.activeIconClass && _vm.activeText)?_c('span',{attrs:{\"aria-hidden\":!_vm.checked}},[_vm._v(_vm._s(_vm.activeText))]):_vm._e()]):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _select = __webpack_require__(132);\n\nvar _select2 = _interopRequireDefault(_select);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_select2.default.install = function (Vue) {\n  Vue.component(_select2.default.name, _select2.default);\n};\n\nexports.default = _select2.default;\n\n/***/ }),\n/* 132 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__ = __webpack_require__(133);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__ = __webpack_require__(140);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3a791aae_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _focus = __webpack_require__(19);\n\nvar _focus2 = _interopRequireDefault(_focus);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _selectDropdown = __webpack_require__(134);\n\nvar _selectDropdown2 = _interopRequireDefault(_selectDropdown);\n\nvar _option = __webpack_require__(34);\n\nvar _option2 = _interopRequireDefault(_option);\n\nvar _tag = __webpack_require__(25);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nvar _scrollbar = __webpack_require__(18);\n\nvar _scrollbar2 = _interopRequireDefault(_scrollbar);\n\nvar _debounce = __webpack_require__(13);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _dom = __webpack_require__(2);\n\nvar _resizeEvent = __webpack_require__(17);\n\nvar _locale3 = __webpack_require__(16);\n\nvar _scrollIntoView = __webpack_require__(26);\n\nvar _scrollIntoView2 = _interopRequireDefault(_scrollIntoView);\n\nvar _util = __webpack_require__(4);\n\nvar _navigationMixin = __webpack_require__(139);\n\nvar _navigationMixin2 = _interopRequireDefault(_navigationMixin);\n\nvar _shared = __webpack_require__(24);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar sizeMap = {\n  'medium': 36,\n  'small': 32,\n  'mini': 28\n};\n\nexports.default = {\n  mixins: [_emitter2.default, _locale2.default, (0, _focus2.default)('reference'), _navigationMixin2.default],\n\n  name: 'ElSelect',\n\n  componentName: 'ElSelect',\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  provide: function provide() {\n    return {\n      'select': this\n    };\n  },\n\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    readonly: function readonly() {\n      // trade-off for IE input readonly problem: https://github.com/ElemeFE/element/issues/10403\n      var isIE = !this.$isServer && !isNaN(Number(document.documentMode));\n      return !this.filterable || this.multiple || !isIE && !this.visible;\n    },\n    iconClass: function iconClass() {\n      var criteria = this.clearable && !this.selectDisabled && this.inputHovering && !this.multiple && this.value !== undefined && this.value !== null && this.value !== '';\n      return criteria ? 'circle-close is-show-close' : this.remote && this.filterable ? '' : 'arrow-up';\n    },\n    debounce: function debounce() {\n      return this.remote ? 300 : 0;\n    },\n    emptyText: function emptyText() {\n      if (this.loading) {\n        return this.loadingText || this.t('el.select.loading');\n      } else {\n        if (this.remote && this.query === '' && this.options.length === 0) return false;\n        if (this.filterable && this.query && this.options.length > 0 && this.filteredOptionsCount === 0) {\n          return this.noMatchText || this.t('el.select.noMatch');\n        }\n        if (this.options.length === 0) {\n          return this.noDataText || this.t('el.select.noData');\n        }\n      }\n      return null;\n    },\n    showNewOption: function showNewOption() {\n      var _this = this;\n\n      var hasExistingOption = this.options.filter(function (option) {\n        return !option.created;\n      }).some(function (option) {\n        return option.currentLabel === _this.query;\n      });\n      return this.filterable && this.allowCreate && this.query !== '' && !hasExistingOption;\n    },\n    selectSize: function selectSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    selectDisabled: function selectDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    },\n    collapseTagSize: function collapseTagSize() {\n      return ['small', 'mini'].indexOf(this.selectSize) > -1 ? 'mini' : 'small';\n    }\n  },\n\n  components: {\n    ElInput: _input2.default,\n    ElSelectMenu: _selectDropdown2.default,\n    ElOption: _option2.default,\n    ElTag: _tag2.default,\n    ElScrollbar: _scrollbar2.default\n  },\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  props: {\n    name: String,\n    id: String,\n    value: {\n      required: true\n    },\n    autoComplete: {\n      type: String,\n      default: 'off'\n    },\n    automaticDropdown: Boolean,\n    size: String,\n    disabled: Boolean,\n    clearable: Boolean,\n    filterable: Boolean,\n    allowCreate: Boolean,\n    loading: Boolean,\n    popperClass: String,\n    remote: Boolean,\n    loadingText: String,\n    noMatchText: String,\n    noDataText: String,\n    remoteMethod: Function,\n    filterMethod: Function,\n    multiple: Boolean,\n    multipleLimit: {\n      type: Number,\n      default: 0\n    },\n    placeholder: {\n      type: String,\n      default: function _default() {\n        return (0, _locale3.t)('el.select.placeholder');\n      }\n    },\n    defaultFirstOption: Boolean,\n    reserveKeyword: Boolean,\n    valueKey: {\n      type: String,\n      default: 'value'\n    },\n    collapseTags: Boolean,\n    popperAppendToBody: {\n      type: Boolean,\n      default: true\n    }\n  },\n\n  data: function data() {\n    return {\n      options: [],\n      cachedOptions: [],\n      createdLabel: null,\n      createdSelected: false,\n      selected: this.multiple ? [] : {},\n      inputLength: 20,\n      inputWidth: 0,\n      cachedPlaceHolder: '',\n      optionsCount: 0,\n      filteredOptionsCount: 0,\n      visible: false,\n      softFocus: false,\n      selectedLabel: '',\n      hoverIndex: -1,\n      query: '',\n      previousQuery: null,\n      inputHovering: false,\n      currentPlaceholder: '',\n      menuVisibleOnFocus: false,\n      isOnComposition: false,\n      isSilentBlur: false\n    };\n  },\n\n\n  watch: {\n    selectDisabled: function selectDisabled() {\n      var _this2 = this;\n\n      this.$nextTick(function () {\n        _this2.resetInputHeight();\n      });\n    },\n    placeholder: function placeholder(val) {\n      this.cachedPlaceHolder = this.currentPlaceholder = val;\n    },\n    value: function value(val, oldVal) {\n      if (this.multiple) {\n        this.resetInputHeight();\n        if (val.length > 0 || this.$refs.input && this.query !== '') {\n          this.currentPlaceholder = '';\n        } else {\n          this.currentPlaceholder = this.cachedPlaceHolder;\n        }\n        if (this.filterable && !this.reserveKeyword) {\n          this.query = '';\n          this.handleQueryChange(this.query);\n        }\n      }\n      this.setSelected();\n      if (this.filterable && !this.multiple) {\n        this.inputLength = 20;\n      }\n      if (!(0, _util.valueEquals)(val, oldVal)) {\n        this.dispatch('ElFormItem', 'el.form.change', val);\n      }\n    },\n    visible: function visible(val) {\n      var _this3 = this;\n\n      if (!val) {\n        this.handleIconHide();\n        this.broadcast('ElSelectDropdown', 'destroyPopper');\n        if (this.$refs.input) {\n          this.$refs.input.blur();\n        }\n        this.query = '';\n        this.previousQuery = null;\n        this.selectedLabel = '';\n        this.inputLength = 20;\n        this.resetHoverIndex();\n        this.$nextTick(function () {\n          if (_this3.$refs.input && _this3.$refs.input.value === '' && _this3.selected.length === 0) {\n            _this3.currentPlaceholder = _this3.cachedPlaceHolder;\n          }\n        });\n        if (!this.multiple) {\n          if (this.selected) {\n            if (this.filterable && this.allowCreate && this.createdSelected && this.createdLabel) {\n              this.selectedLabel = this.createdLabel;\n            } else {\n              this.selectedLabel = this.selected.currentLabel;\n            }\n            if (this.filterable) this.query = this.selectedLabel;\n          }\n        }\n      } else {\n        this.handleIconShow();\n        this.broadcast('ElSelectDropdown', 'updatePopper');\n        if (this.filterable) {\n          this.query = this.remote ? '' : this.selectedLabel;\n          this.handleQueryChange(this.query);\n          if (this.multiple) {\n            this.$refs.input.focus();\n          } else {\n            if (!this.remote) {\n              this.broadcast('ElOption', 'queryChange', '');\n              this.broadcast('ElOptionGroup', 'queryChange');\n            }\n            this.broadcast('ElInput', 'inputSelect');\n          }\n        }\n      }\n      this.$emit('visible-change', val);\n    },\n    options: function options() {\n      var _this4 = this;\n\n      if (this.$isServer) return;\n      this.$nextTick(function () {\n        _this4.broadcast('ElSelectDropdown', 'updatePopper');\n      });\n      if (this.multiple) {\n        this.resetInputHeight();\n      }\n      var inputs = this.$el.querySelectorAll('input');\n      if ([].indexOf.call(inputs, document.activeElement) === -1) {\n        this.setSelected();\n      }\n      if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {\n        this.checkDefaultFirstOption();\n      }\n    }\n  },\n\n  methods: {\n    handleComposition: function handleComposition(event) {\n      var text = event.target.value;\n      if (event.type === 'compositionend') {\n        this.isOnComposition = false;\n        this.handleQueryChange(text);\n      } else {\n        var lastCharacter = text[text.length - 1] || '';\n        this.isOnComposition = !(0, _shared.isKorean)(lastCharacter);\n      }\n    },\n    handleQueryChange: function handleQueryChange(val) {\n      var _this5 = this;\n\n      if (this.previousQuery === val || this.isOnComposition) return;\n      if (this.previousQuery === null && (typeof this.filterMethod === 'function' || typeof this.remoteMethod === 'function')) {\n        this.previousQuery = val;\n        return;\n      }\n      this.previousQuery = val;\n      this.$nextTick(function () {\n        if (_this5.visible) _this5.broadcast('ElSelectDropdown', 'updatePopper');\n      });\n      this.hoverIndex = -1;\n      if (this.multiple && this.filterable) {\n        var length = this.$refs.input.value.length * 15 + 20;\n        this.inputLength = this.collapseTags ? Math.min(50, length) : length;\n        this.managePlaceholder();\n        this.resetInputHeight();\n      }\n      if (this.remote && typeof this.remoteMethod === 'function') {\n        this.hoverIndex = -1;\n        this.remoteMethod(val);\n      } else if (typeof this.filterMethod === 'function') {\n        this.filterMethod(val);\n        this.broadcast('ElOptionGroup', 'queryChange');\n      } else {\n        this.filteredOptionsCount = this.optionsCount;\n        this.broadcast('ElOption', 'queryChange', val);\n        this.broadcast('ElOptionGroup', 'queryChange');\n      }\n      if (this.defaultFirstOption && (this.filterable || this.remote) && this.filteredOptionsCount) {\n        this.checkDefaultFirstOption();\n      }\n    },\n    handleIconHide: function handleIconHide() {\n      var icon = this.$el.querySelector('.el-input__icon');\n      if (icon) {\n        (0, _dom.removeClass)(icon, 'is-reverse');\n      }\n    },\n    handleIconShow: function handleIconShow() {\n      var icon = this.$el.querySelector('.el-input__icon');\n      if (icon && !(0, _dom.hasClass)(icon, 'el-icon-circle-close')) {\n        (0, _dom.addClass)(icon, 'is-reverse');\n      }\n    },\n    scrollToOption: function scrollToOption(option) {\n      var target = Array.isArray(option) && option[0] ? option[0].$el : option.$el;\n      if (this.$refs.popper && target) {\n        var menu = this.$refs.popper.$el.querySelector('.el-select-dropdown__wrap');\n        (0, _scrollIntoView2.default)(menu, target);\n      }\n      this.$refs.scrollbar && this.$refs.scrollbar.handleScroll();\n    },\n    handleMenuEnter: function handleMenuEnter() {\n      var _this6 = this;\n\n      this.$nextTick(function () {\n        return _this6.scrollToOption(_this6.selected);\n      });\n    },\n    emitChange: function emitChange(val) {\n      if (!(0, _util.valueEquals)(this.value, val)) {\n        this.$emit('change', val);\n      }\n    },\n    getOption: function getOption(value) {\n      var option = void 0;\n      var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';\n      var isNull = Object.prototype.toString.call(value).toLowerCase() === '[object null]';\n\n      for (var i = this.cachedOptions.length - 1; i >= 0; i--) {\n        var cachedOption = this.cachedOptions[i];\n        var isEqual = isObject ? (0, _util.getValueByPath)(cachedOption.value, this.valueKey) === (0, _util.getValueByPath)(value, this.valueKey) : cachedOption.value === value;\n        if (isEqual) {\n          option = cachedOption;\n          break;\n        }\n      }\n      if (option) return option;\n      var label = !isObject && !isNull ? value : '';\n      var newOption = {\n        value: value,\n        currentLabel: label\n      };\n      if (this.multiple) {\n        newOption.hitState = false;\n      }\n      return newOption;\n    },\n    setSelected: function setSelected() {\n      var _this7 = this;\n\n      if (!this.multiple) {\n        var option = this.getOption(this.value);\n        if (option.created) {\n          this.createdLabel = option.currentLabel;\n          this.createdSelected = true;\n        } else {\n          this.createdSelected = false;\n        }\n        this.selectedLabel = option.currentLabel;\n        this.selected = option;\n        if (this.filterable) this.query = this.selectedLabel;\n        return;\n      }\n      var result = [];\n      if (Array.isArray(this.value)) {\n        this.value.forEach(function (value) {\n          result.push(_this7.getOption(value));\n        });\n      }\n      this.selected = result;\n      this.$nextTick(function () {\n        _this7.resetInputHeight();\n      });\n    },\n    handleFocus: function handleFocus(event) {\n      if (!this.softFocus) {\n        if (this.automaticDropdown || this.filterable) {\n          this.visible = true;\n          this.menuVisibleOnFocus = true;\n        }\n        this.$emit('focus', event);\n      } else {\n        this.softFocus = false;\n      }\n    },\n    blur: function blur() {\n      this.visible = false;\n      this.$refs.reference.blur();\n    },\n    handleBlur: function handleBlur(event) {\n      var _this8 = this;\n\n      setTimeout(function () {\n        if (_this8.isSilentBlur) {\n          _this8.isSilentBlur = false;\n        } else {\n          _this8.$emit('blur', event);\n        }\n      }, 50);\n      this.softFocus = false;\n    },\n    handleIconClick: function handleIconClick(event) {\n      if (this.iconClass.indexOf('circle-close') > -1) {\n        this.deleteSelected(event);\n      }\n    },\n    doDestroy: function doDestroy() {\n      this.$refs.popper && this.$refs.popper.doDestroy();\n    },\n    handleClose: function handleClose() {\n      this.visible = false;\n    },\n    toggleLastOptionHitState: function toggleLastOptionHitState(hit) {\n      if (!Array.isArray(this.selected)) return;\n      var option = this.selected[this.selected.length - 1];\n      if (!option) return;\n\n      if (hit === true || hit === false) {\n        option.hitState = hit;\n        return hit;\n      }\n\n      option.hitState = !option.hitState;\n      return option.hitState;\n    },\n    deletePrevTag: function deletePrevTag(e) {\n      if (e.target.value.length <= 0 && !this.toggleLastOptionHitState()) {\n        var value = this.value.slice();\n        value.pop();\n        this.$emit('input', value);\n        this.emitChange(value);\n      }\n    },\n    managePlaceholder: function managePlaceholder() {\n      if (this.currentPlaceholder !== '') {\n        this.currentPlaceholder = this.$refs.input.value ? '' : this.cachedPlaceHolder;\n      }\n    },\n    resetInputState: function resetInputState(e) {\n      if (e.keyCode !== 8) this.toggleLastOptionHitState(false);\n      this.inputLength = this.$refs.input.value.length * 15 + 20;\n      this.resetInputHeight();\n    },\n    resetInputHeight: function resetInputHeight() {\n      var _this9 = this;\n\n      if (this.collapseTags && !this.filterable) return;\n      this.$nextTick(function () {\n        if (!_this9.$refs.reference) return;\n        var inputChildNodes = _this9.$refs.reference.$el.childNodes;\n        var input = [].filter.call(inputChildNodes, function (item) {\n          return item.tagName === 'INPUT';\n        })[0];\n        var tags = _this9.$refs.tags;\n        var sizeInMap = sizeMap[_this9.selectSize] || 40;\n        input.style.height = _this9.selected.length === 0 ? sizeInMap + 'px' : Math.max(tags ? tags.clientHeight + (tags.clientHeight > sizeInMap ? 6 : 0) : 0, sizeInMap) + 'px';\n        if (_this9.visible && _this9.emptyText !== false) {\n          _this9.broadcast('ElSelectDropdown', 'updatePopper');\n        }\n      });\n    },\n    resetHoverIndex: function resetHoverIndex() {\n      var _this10 = this;\n\n      setTimeout(function () {\n        if (!_this10.multiple) {\n          _this10.hoverIndex = _this10.options.indexOf(_this10.selected);\n        } else {\n          if (_this10.selected.length > 0) {\n            _this10.hoverIndex = Math.min.apply(null, _this10.selected.map(function (item) {\n              return _this10.options.indexOf(item);\n            }));\n          } else {\n            _this10.hoverIndex = -1;\n          }\n        }\n      }, 300);\n    },\n    handleOptionSelect: function handleOptionSelect(option, byClick) {\n      var _this11 = this;\n\n      if (this.multiple) {\n        var value = this.value.slice();\n        var optionIndex = this.getValueIndex(value, option.value);\n        if (optionIndex > -1) {\n          value.splice(optionIndex, 1);\n        } else if (this.multipleLimit <= 0 || value.length < this.multipleLimit) {\n          value.push(option.value);\n        }\n        this.$emit('input', value);\n        this.emitChange(value);\n        if (option.created) {\n          this.query = '';\n          this.handleQueryChange('');\n          this.inputLength = 20;\n        }\n        if (this.filterable) this.$refs.input.focus();\n      } else {\n        this.$emit('input', option.value);\n        this.emitChange(option.value);\n        this.visible = false;\n      }\n      this.isSilentBlur = byClick;\n      this.setSoftFocus();\n      if (this.visible) return;\n      this.$nextTick(function () {\n        _this11.scrollToOption(option);\n      });\n    },\n    setSoftFocus: function setSoftFocus() {\n      this.softFocus = true;\n      var input = this.$refs.input || this.$refs.reference;\n      if (input) {\n        input.focus();\n      }\n    },\n    getValueIndex: function getValueIndex() {\n      var _this12 = this;\n\n      var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var value = arguments[1];\n\n      var isObject = Object.prototype.toString.call(value).toLowerCase() === '[object object]';\n      if (!isObject) {\n        return arr.indexOf(value);\n      } else {\n        var _ret = function () {\n          var valueKey = _this12.valueKey;\n          var index = -1;\n          arr.some(function (item, i) {\n            if ((0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(value, valueKey)) {\n              index = i;\n              return true;\n            }\n            return false;\n          });\n          return {\n            v: index\n          };\n        }();\n\n        if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n      }\n    },\n    toggleMenu: function toggleMenu() {\n      if (!this.selectDisabled) {\n        if (this.menuVisibleOnFocus) {\n          this.menuVisibleOnFocus = false;\n        } else {\n          this.visible = !this.visible;\n        }\n        if (this.visible) {\n          (this.$refs.input || this.$refs.reference).focus();\n        }\n      }\n    },\n    selectOption: function selectOption() {\n      if (!this.visible) {\n        this.toggleMenu();\n      } else {\n        if (this.options[this.hoverIndex]) {\n          this.handleOptionSelect(this.options[this.hoverIndex]);\n        }\n      }\n    },\n    deleteSelected: function deleteSelected(event) {\n      event.stopPropagation();\n      this.$emit('input', '');\n      this.emitChange('');\n      this.visible = false;\n      this.$emit('clear');\n    },\n    deleteTag: function deleteTag(event, tag) {\n      var index = this.selected.indexOf(tag);\n      if (index > -1 && !this.selectDisabled) {\n        var value = this.value.slice();\n        value.splice(index, 1);\n        this.$emit('input', value);\n        this.emitChange(value);\n        this.$emit('remove-tag', tag.value);\n      }\n      event.stopPropagation();\n    },\n    onInputChange: function onInputChange() {\n      if (this.filterable && this.query !== this.selectedLabel) {\n        this.query = this.selectedLabel;\n        this.handleQueryChange(this.query);\n      }\n    },\n    onOptionDestroy: function onOptionDestroy(index) {\n      if (index > -1) {\n        this.optionsCount--;\n        this.filteredOptionsCount--;\n        this.options.splice(index, 1);\n      }\n    },\n    resetInputWidth: function resetInputWidth() {\n      this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width;\n    },\n    handleResize: function handleResize() {\n      this.resetInputWidth();\n      if (this.multiple) this.resetInputHeight();\n    },\n    checkDefaultFirstOption: function checkDefaultFirstOption() {\n      this.hoverIndex = -1;\n      // highlight the created option\n      var hasCreated = false;\n      for (var i = this.options.length - 1; i >= 0; i--) {\n        if (this.options[i].created) {\n          hasCreated = true;\n          this.hoverIndex = i;\n          break;\n        }\n      }\n      if (hasCreated) return;\n      for (var _i = 0; _i !== this.options.length; ++_i) {\n        var option = this.options[_i];\n        if (this.query) {\n          // highlight first options that passes the filter\n          if (!option.disabled && !option.groupDisabled && option.visible) {\n            this.hoverIndex = _i;\n            break;\n          }\n        } else {\n          // highlight currently selected option\n          if (option.itemSelected) {\n            this.hoverIndex = _i;\n            break;\n          }\n        }\n      }\n    },\n    getValueKey: function getValueKey(item) {\n      if (Object.prototype.toString.call(item.value).toLowerCase() !== '[object object]') {\n        return item.value;\n      } else {\n        return (0, _util.getValueByPath)(item.value, this.valueKey);\n      }\n    }\n  },\n\n  created: function created() {\n    var _this13 = this;\n\n    this.cachedPlaceHolder = this.currentPlaceholder = this.placeholder;\n    if (this.multiple && !Array.isArray(this.value)) {\n      this.$emit('input', []);\n    }\n    if (!this.multiple && Array.isArray(this.value)) {\n      this.$emit('input', '');\n    }\n\n    this.debouncedOnInputChange = (0, _debounce2.default)(this.debounce, function () {\n      _this13.onInputChange();\n    });\n\n    this.debouncedQueryChange = (0, _debounce2.default)(this.debounce, function (e) {\n      _this13.handleQueryChange(e.target.value);\n    });\n\n    this.$on('handleOptionClick', this.handleOptionSelect);\n    this.$on('setSelected', this.setSelected);\n  },\n  mounted: function mounted() {\n    var _this14 = this;\n\n    if (this.multiple && Array.isArray(this.value) && this.value.length > 0) {\n      this.currentPlaceholder = '';\n    }\n    (0, _resizeEvent.addResizeListener)(this.$el, this.handleResize);\n    if (this.remote && this.multiple) {\n      this.resetInputHeight();\n    }\n    this.$nextTick(function () {\n      if (_this14.$refs.reference && _this14.$refs.reference.$el) {\n        _this14.inputWidth = _this14.$refs.reference.$el.getBoundingClientRect().width;\n      }\n    });\n    this.setSelected();\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this.$el && this.handleResize) (0, _resizeEvent.removeResizeListener)(this.$el, this.handleResize);\n  }\n};\n\n/***/ }),\n/* 134 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__ = __webpack_require__(135);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__ = __webpack_require__(136);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_select_dropdown_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_07976de5_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_select_dropdown_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElSelectDropdown',\n\n  componentName: 'ElSelectDropdown',\n\n  mixins: [_vuePopper2.default],\n\n  props: {\n    placement: {\n      default: 'bottom-start'\n    },\n\n    boundariesPadding: {\n      default: 0\n    },\n\n    popperOptions: {\n      default: function _default() {\n        return {\n          gpuAcceleration: false\n        };\n      }\n    },\n\n    visibleArrow: {\n      default: true\n    },\n\n    appendToBody: {\n      type: Boolean,\n      default: true\n    }\n  },\n\n  data: function data() {\n    return {\n      minWidth: ''\n    };\n  },\n\n\n  computed: {\n    popperClass: function popperClass() {\n      return this.$parent.popperClass;\n    }\n  },\n\n  watch: {\n    '$parent.inputWidth': function $parentInputWidth() {\n      this.minWidth = this.$parent.$el.getBoundingClientRect().width + 'px';\n    }\n  },\n\n  mounted: function mounted() {\n    var _this = this;\n\n    this.referenceElm = this.$parent.$refs.reference.$el;\n    this.$parent.popperElm = this.popperElm = this.$el;\n    this.$on('updatePopper', function () {\n      if (_this.$parent.visible) _this.updatePopper();\n    });\n    this.$on('destroyPopper', this.destroyPopper);\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 136 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-select-dropdown el-popper\",class:[{ 'is-multiple': _vm.$parent.multiple }, _vm.popperClass],style:({ minWidth: _vm.minWidth })},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  mixins: [_emitter2.default],\n\n  name: 'ElOption',\n\n  componentName: 'ElOption',\n\n  inject: ['select'],\n\n  props: {\n    value: {\n      required: true\n    },\n    label: [String, Number],\n    created: Boolean,\n    disabled: {\n      type: Boolean,\n      default: false\n    }\n  },\n\n  data: function data() {\n    return {\n      index: -1,\n      groupDisabled: false,\n      visible: true,\n      hitState: false,\n      hover: false\n    };\n  },\n\n\n  computed: {\n    isObject: function isObject() {\n      return Object.prototype.toString.call(this.value).toLowerCase() === '[object object]';\n    },\n    currentLabel: function currentLabel() {\n      return this.label || (this.isObject ? '' : this.value);\n    },\n    currentValue: function currentValue() {\n      return this.value || this.label || '';\n    },\n    itemSelected: function itemSelected() {\n      if (!this.select.multiple) {\n        return this.isEqual(this.value, this.select.value);\n      } else {\n        return this.contains(this.select.value, this.value);\n      }\n    },\n    limitReached: function limitReached() {\n      if (this.select.multiple) {\n        return !this.itemSelected && (this.select.value || []).length >= this.select.multipleLimit && this.select.multipleLimit > 0;\n      } else {\n        return false;\n      }\n    }\n  },\n\n  watch: {\n    currentLabel: function currentLabel() {\n      if (!this.created && !this.select.remote) this.dispatch('ElSelect', 'setSelected');\n    },\n    value: function value(val, oldVal) {\n      var _select = this.select,\n          remote = _select.remote,\n          valueKey = _select.valueKey;\n\n      if (!this.created && !remote) {\n        if (valueKey && (typeof val === 'undefined' ? 'undefined' : _typeof(val)) === 'object' && (typeof oldVal === 'undefined' ? 'undefined' : _typeof(oldVal)) === 'object' && val[valueKey] === oldVal[valueKey]) {\n          return;\n        }\n        this.dispatch('ElSelect', 'setSelected');\n      }\n    }\n  },\n\n  methods: {\n    isEqual: function isEqual(a, b) {\n      if (!this.isObject) {\n        return a === b;\n      } else {\n        var valueKey = this.select.valueKey;\n        return (0, _util.getValueByPath)(a, valueKey) === (0, _util.getValueByPath)(b, valueKey);\n      }\n    },\n    contains: function contains() {\n      var _this = this;\n\n      var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var target = arguments[1];\n\n      if (!this.isObject) {\n        return arr.indexOf(target) > -1;\n      } else {\n        var _ret = function () {\n          var valueKey = _this.select.valueKey;\n          return {\n            v: arr.some(function (item) {\n              return (0, _util.getValueByPath)(item, valueKey) === (0, _util.getValueByPath)(target, valueKey);\n            })\n          };\n        }();\n\n        if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n      }\n    },\n    handleGroupDisabled: function handleGroupDisabled(val) {\n      this.groupDisabled = val;\n    },\n    hoverItem: function hoverItem() {\n      if (!this.disabled && !this.groupDisabled) {\n        this.select.hoverIndex = this.select.options.indexOf(this);\n      }\n    },\n    selectOptionClick: function selectOptionClick() {\n      if (this.disabled !== true && this.groupDisabled !== true) {\n        this.dispatch('ElSelect', 'handleOptionClick', [this, true]);\n      }\n    },\n    queryChange: function queryChange(query) {\n      this.visible = new RegExp((0, _util.escapeRegexpString)(query), 'i').test(this.currentLabel) || this.created;\n      if (!this.visible) {\n        this.select.filteredOptionsCount--;\n      }\n    }\n  },\n\n  created: function created() {\n    this.select.options.push(this);\n    this.select.cachedOptions.push(this);\n    this.select.optionsCount++;\n    this.select.filteredOptionsCount++;\n\n    this.$on('queryChange', this.queryChange);\n    this.$on('handleGroupDisabled', this.handleGroupDisabled);\n  },\n  beforeDestroy: function beforeDestroy() {\n    this.select.onOptionDestroy(this.select.options.indexOf(this));\n  }\n};\n\n/***/ }),\n/* 138 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-select-dropdown__item\",class:{\n    'selected': _vm.itemSelected,\n    'is-disabled': _vm.disabled || _vm.groupDisabled || _vm.limitReached,\n    'hover': _vm.hover\n  },on:{\"mouseenter\":_vm.hoverItem,\"click\":function($event){$event.stopPropagation();_vm.selectOptionClick($event)}}},[_vm._t(\"default\",[_c('span',[_vm._v(_vm._s(_vm.currentLabel))])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = {\n  data: function data() {\n    return {\n      hoverOption: -1\n    };\n  },\n\n\n  computed: {\n    optionsAllDisabled: function optionsAllDisabled() {\n      return this.options.filter(function (option) {\n        return option.visible;\n      }).every(function (option) {\n        return option.disabled;\n      });\n    }\n  },\n\n  watch: {\n    hoverIndex: function hoverIndex(val) {\n      var _this = this;\n\n      if (typeof val === 'number' && val > -1) {\n        this.hoverOption = this.options[val] || {};\n      }\n      this.options.forEach(function (option) {\n        option.hover = _this.hoverOption === option;\n      });\n    }\n  },\n\n  methods: {\n    navigateOptions: function navigateOptions(direction) {\n      var _this2 = this;\n\n      if (!this.visible) {\n        this.visible = true;\n        return;\n      }\n      if (this.options.length === 0 || this.filteredOptionsCount === 0) return;\n      if (!this.optionsAllDisabled) {\n        if (direction === 'next') {\n          this.hoverIndex++;\n          if (this.hoverIndex === this.options.length) {\n            this.hoverIndex = 0;\n          }\n        } else if (direction === 'prev') {\n          this.hoverIndex--;\n          if (this.hoverIndex < 0) {\n            this.hoverIndex = this.options.length - 1;\n          }\n        }\n        var option = this.options[this.hoverIndex];\n        if (option.disabled === true || option.groupDisabled === true || !option.visible) {\n          this.navigateOptions(direction);\n        }\n        this.$nextTick(function () {\n          return _this2.scrollToOption(_this2.hoverOption);\n        });\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 140 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleClose),expression:\"handleClose\"}],staticClass:\"el-select\",class:[_vm.selectSize ? 'el-select--' + _vm.selectSize : ''],on:{\"click\":function($event){$event.stopPropagation();_vm.toggleMenu($event)}}},[(_vm.multiple)?_c('div',{ref:\"tags\",staticClass:\"el-select__tags\",style:({ 'max-width': _vm.inputWidth - 32 + 'px' })},[(_vm.collapseTags && _vm.selected.length)?_c('span',[_c('el-tag',{attrs:{\"closable\":!_vm.selectDisabled,\"size\":_vm.collapseTagSize,\"hit\":_vm.selected[0].hitState,\"type\":\"info\",\"disable-transitions\":\"\"},on:{\"close\":function($event){_vm.deleteTag($event, _vm.selected[0])}}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(_vm._s(_vm.selected[0].currentLabel))])]),(_vm.selected.length > 1)?_c('el-tag',{attrs:{\"closable\":false,\"size\":_vm.collapseTagSize,\"type\":\"info\",\"disable-transitions\":\"\"}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(\"+ \"+_vm._s(_vm.selected.length - 1))])]):_vm._e()],1):_vm._e(),(!_vm.collapseTags)?_c('transition-group',{on:{\"after-leave\":_vm.resetInputHeight}},_vm._l((_vm.selected),function(item){return _c('el-tag',{key:_vm.getValueKey(item),attrs:{\"closable\":!_vm.selectDisabled,\"size\":_vm.collapseTagSize,\"hit\":item.hitState,\"type\":\"info\",\"disable-transitions\":\"\"},on:{\"close\":function($event){_vm.deleteTag($event, item)}}},[_c('span',{staticClass:\"el-select__tags-text\"},[_vm._v(_vm._s(item.currentLabel))])])})):_vm._e(),(_vm.filterable)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.query),expression:\"query\"}],ref:\"input\",staticClass:\"el-select__input\",class:[_vm.selectSize ? (\"is-\" + _vm.selectSize) : ''],style:({ width: _vm.inputLength + 'px', 'max-width': _vm.inputWidth - 42 + 'px' }),attrs:{\"type\":\"text\",\"disabled\":_vm.selectDisabled,\"autocomplete\":_vm.autoComplete},domProps:{\"value\":(_vm.query)},on:{\"focus\":_vm.handleFocus,\"blur\":function($event){_vm.softFocus = false},\"click\":function($event){$event.stopPropagation();},\"keyup\":_vm.managePlaceholder,\"keydown\":[_vm.resetInputState,function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.preventDefault();_vm.navigateOptions('next')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.preventDefault();_vm.navigateOptions('prev')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }$event.preventDefault();_vm.selectOption($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"esc\",27,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.visible = false},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key)){ return null; }_vm.deletePrevTag($event)}],\"compositionstart\":_vm.handleComposition,\"compositionupdate\":_vm.handleComposition,\"compositionend\":_vm.handleComposition,\"input\":[function($event){if($event.target.composing){ return; }_vm.query=$event.target.value},_vm.debouncedQueryChange]}}):_vm._e()],1):_vm._e(),_c('el-input',{ref:\"reference\",class:{ 'is-focus': _vm.visible },attrs:{\"type\":\"text\",\"placeholder\":_vm.currentPlaceholder,\"name\":_vm.name,\"id\":_vm.id,\"auto-complete\":_vm.autoComplete,\"size\":_vm.selectSize,\"disabled\":_vm.selectDisabled,\"readonly\":_vm.readonly,\"validate-event\":false},on:{\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur},nativeOn:{\"keyup\":function($event){_vm.debouncedOnInputChange($event)},\"keydown\":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.navigateOptions('next')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.navigateOptions('prev')},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }$event.preventDefault();_vm.selectOption($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"esc\",27,$event.key)){ return null; }$event.stopPropagation();$event.preventDefault();_vm.visible = false},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"tab\",9,$event.key)){ return null; }_vm.visible = false}],\"paste\":function($event){_vm.debouncedOnInputChange($event)},\"mouseenter\":function($event){_vm.inputHovering = true},\"mouseleave\":function($event){_vm.inputHovering = false}},model:{value:(_vm.selectedLabel),callback:function ($$v) {_vm.selectedLabel=$$v},expression:\"selectedLabel\"}},[(_vm.$slots.prefix)?_c('template',{attrs:{\"slot\":\"prefix\"},slot:\"prefix\"},[_vm._t(\"prefix\")],2):_vm._e(),_c('i',{class:['el-select__caret', 'el-input__icon', 'el-icon-' + _vm.iconClass],attrs:{\"slot\":\"suffix\"},on:{\"click\":_vm.handleIconClick},slot:\"suffix\"})],2),_c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"before-enter\":_vm.handleMenuEnter,\"after-leave\":_vm.doDestroy}},[_c('el-select-menu',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible && _vm.emptyText !== false),expression:\"visible && emptyText !== false\"}],ref:\"popper\",attrs:{\"append-to-body\":_vm.popperAppendToBody}},[_c('el-scrollbar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.options.length > 0 && !_vm.loading),expression:\"options.length > 0 && !loading\"}],ref:\"scrollbar\",class:{ 'is-empty': !_vm.allowCreate && _vm.query && _vm.filteredOptionsCount === 0 },attrs:{\"tag\":\"ul\",\"wrap-class\":\"el-select-dropdown__wrap\",\"view-class\":\"el-select-dropdown__list\"}},[(_vm.showNewOption)?_c('el-option',{attrs:{\"value\":_vm.query,\"created\":\"\"}}):_vm._e(),_vm._t(\"default\")],2),(_vm.emptyText &&\n          (!_vm.allowCreate || _vm.loading || (_vm.allowCreate && _vm.options.length === 0 )))?_c('p',{staticClass:\"el-select-dropdown__empty\"},[_vm._v(\"\\n        \"+_vm._s(_vm.emptyText)+\"\\n      \")]):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _option = __webpack_require__(34);\n\nvar _option2 = _interopRequireDefault(_option);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_option2.default.install = function (Vue) {\n  Vue.component(_option2.default.name, _option2.default);\n};\n\nexports.default = _option2.default;\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _optionGroup = __webpack_require__(143);\n\nvar _optionGroup2 = _interopRequireDefault(_optionGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_optionGroup2.default.install = function (Vue) {\n  Vue.component(_optionGroup2.default.name, _optionGroup2.default);\n};\n\nexports.default = _optionGroup2.default;\n\n/***/ }),\n/* 143 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_group_vue__ = __webpack_require__(144);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_101c18d8_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_group_vue__ = __webpack_require__(145);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_option_group_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_101c18d8_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_option_group_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  mixins: [_emitter2.default],\n\n  name: 'ElOptionGroup',\n\n  componentName: 'ElOptionGroup',\n\n  props: {\n    label: String,\n    disabled: {\n      type: Boolean,\n      default: false\n    }\n  },\n\n  data: function data() {\n    return {\n      visible: true\n    };\n  },\n\n\n  watch: {\n    disabled: function disabled(val) {\n      this.broadcast('ElOption', 'handleGroupDisabled', val);\n    }\n  },\n\n  methods: {\n    queryChange: function queryChange() {\n      this.visible = this.$children && Array.isArray(this.$children) && this.$children.some(function (option) {\n        return option.visible === true;\n      });\n    }\n  },\n\n  created: function created() {\n    this.$on('queryChange', this.queryChange);\n  },\n  mounted: function mounted() {\n    if (this.disabled) {\n      this.broadcast('ElOption', 'handleGroupDisabled', this.disabled);\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 145 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-select-group__wrap\"},[_c('li',{staticClass:\"el-select-group__title\"},[_vm._v(_vm._s(_vm.label))]),_c('li',[_c('ul',{staticClass:\"el-select-group\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _button = __webpack_require__(147);\n\nvar _button2 = _interopRequireDefault(_button);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_button2.default.install = function (Vue) {\n  Vue.component(_button2.default.name, _button2.default);\n};\n\nexports.default = _button2.default;\n\n/***/ }),\n/* 147 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__ = __webpack_require__(148);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f35f4e9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__ = __webpack_require__(149);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f35f4e9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElButton',\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  props: {\n    type: {\n      type: String,\n      default: 'default'\n    },\n    size: String,\n    icon: {\n      type: String,\n      default: ''\n    },\n    nativeType: {\n      type: String,\n      default: 'button'\n    },\n    loading: Boolean,\n    disabled: Boolean,\n    plain: Boolean,\n    autofocus: Boolean,\n    round: Boolean,\n    circle: Boolean\n  },\n\n  computed: {\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    buttonSize: function buttonSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    buttonDisabled: function buttonDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    }\n  },\n\n  methods: {\n    handleClick: function handleClick(evt) {\n      this.$emit('click', evt);\n    }\n  }\n};\n\n/***/ }),\n/* 149 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"el-button\",class:[\n    _vm.type ? 'el-button--' + _vm.type : '',\n    _vm.buttonSize ? 'el-button--' + _vm.buttonSize : '',\n    {\n      'is-disabled': _vm.buttonDisabled,\n      'is-loading': _vm.loading,\n      'is-plain': _vm.plain,\n      'is-round': _vm.round,\n      'is-circle': _vm.circle\n    }\n  ],attrs:{\"disabled\":_vm.buttonDisabled || _vm.loading,\"autofocus\":_vm.autofocus,\"type\":_vm.nativeType},on:{\"click\":_vm.handleClick}},[(_vm.loading)?_c('i',{staticClass:\"el-icon-loading\"}):_vm._e(),(_vm.icon && !_vm.loading)?_c('i',{class:_vm.icon}):_vm._e(),(_vm.$slots.default)?_c('span',[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _buttonGroup = __webpack_require__(151);\n\nvar _buttonGroup2 = _interopRequireDefault(_buttonGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_buttonGroup2.default.install = function (Vue) {\n  Vue.component(_buttonGroup2.default.name, _buttonGroup2.default);\n};\n\nexports.default = _buttonGroup2.default;\n\n/***/ }),\n/* 151 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__ = __webpack_require__(152);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__ = __webpack_require__(153);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_group_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_0c71b59b_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_group_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElButtonGroup'\n};\n\n/***/ }),\n/* 153 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-button-group\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _table = __webpack_require__(155);\n\nvar _table2 = _interopRequireDefault(_table);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_table2.default.install = function (Vue) {\n  Vue.component(_table2.default.name, _table2.default);\n};\n\nexports.default = _table2.default;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue__ = __webpack_require__(156);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f98fcd1_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_table_vue__ = __webpack_require__(168);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_table_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f98fcd1_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_table_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkbox = __webpack_require__(14);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _debounce = __webpack_require__(13);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _resizeEvent = __webpack_require__(17);\n\nvar _mousewheel = __webpack_require__(157);\n\nvar _mousewheel2 = _interopRequireDefault(_mousewheel);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nvar _tableStore = __webpack_require__(159);\n\nvar _tableStore2 = _interopRequireDefault(_tableStore);\n\nvar _tableLayout = __webpack_require__(160);\n\nvar _tableLayout2 = _interopRequireDefault(_tableLayout);\n\nvar _tableBody = __webpack_require__(161);\n\nvar _tableBody2 = _interopRequireDefault(_tableBody);\n\nvar _tableHeader = __webpack_require__(162);\n\nvar _tableHeader2 = _interopRequireDefault(_tableHeader);\n\nvar _tableFooter = __webpack_require__(167);\n\nvar _tableFooter2 = _interopRequireDefault(_tableFooter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar tableIdSeed = 1; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElTable',\n\n  mixins: [_locale2.default, _migrating2.default],\n\n  directives: {\n    Mousewheel: _mousewheel2.default\n  },\n\n  props: {\n    data: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n\n    size: String,\n\n    width: [String, Number],\n\n    height: [String, Number],\n\n    maxHeight: [String, Number],\n\n    fit: {\n      type: Boolean,\n      default: true\n    },\n\n    stripe: Boolean,\n\n    border: Boolean,\n\n    rowKey: [String, Function],\n\n    context: {},\n\n    showHeader: {\n      type: Boolean,\n      default: true\n    },\n\n    showSummary: Boolean,\n\n    sumText: String,\n\n    summaryMethod: Function,\n\n    rowClassName: [String, Function],\n\n    rowStyle: [Object, Function],\n\n    cellClassName: [String, Function],\n\n    cellStyle: [Object, Function],\n\n    headerRowClassName: [String, Function],\n\n    headerRowStyle: [Object, Function],\n\n    headerCellClassName: [String, Function],\n\n    headerCellStyle: [Object, Function],\n\n    highlightCurrentRow: Boolean,\n\n    currentRowKey: [String, Number],\n\n    emptyText: String,\n\n    expandRowKeys: Array,\n\n    defaultExpandAll: Boolean,\n\n    defaultSort: Object,\n\n    tooltipEffect: String,\n\n    spanMethod: Function,\n\n    selectOnIndeterminate: {\n      type: Boolean,\n      default: true\n    }\n  },\n\n  components: {\n    TableHeader: _tableHeader2.default,\n    TableFooter: _tableFooter2.default,\n    TableBody: _tableBody2.default,\n    ElCheckbox: _checkbox2.default\n  },\n\n  methods: {\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        events: {\n          expand: 'expand is renamed to expand-change'\n        }\n      };\n    },\n    setCurrentRow: function setCurrentRow(row) {\n      this.store.commit('setCurrentRow', row);\n    },\n    toggleRowSelection: function toggleRowSelection(row, selected) {\n      this.store.toggleRowSelection(row, selected);\n      this.store.updateAllSelected();\n    },\n    toggleRowExpansion: function toggleRowExpansion(row, expanded) {\n      this.store.toggleRowExpansion(row, expanded);\n    },\n    clearSelection: function clearSelection() {\n      this.store.clearSelection();\n    },\n    clearFilter: function clearFilter() {\n      this.store.clearFilter();\n    },\n    clearSort: function clearSort() {\n      this.store.clearSort();\n    },\n    handleMouseLeave: function handleMouseLeave() {\n      this.store.commit('setHoverRow', null);\n      if (this.hoverState) this.hoverState = null;\n    },\n    updateScrollY: function updateScrollY() {\n      this.layout.updateScrollY();\n      this.layout.updateColumnsWidth();\n    },\n    handleFixedMousewheel: function handleFixedMousewheel(event, data) {\n      var bodyWrapper = this.bodyWrapper;\n      if (Math.abs(data.spinY) > 0) {\n        var currentScrollTop = bodyWrapper.scrollTop;\n        if (data.pixelY < 0 && currentScrollTop !== 0) {\n          event.preventDefault();\n        }\n        if (data.pixelY > 0 && bodyWrapper.scrollHeight - bodyWrapper.clientHeight > currentScrollTop) {\n          event.preventDefault();\n        }\n        bodyWrapper.scrollTop += Math.ceil(data.pixelY / 5);\n      } else {\n        bodyWrapper.scrollLeft += Math.ceil(data.pixelX / 5);\n      }\n    },\n    handleHeaderFooterMousewheel: function handleHeaderFooterMousewheel(event, data) {\n      var pixelX = data.pixelX,\n          pixelY = data.pixelY;\n\n      if (Math.abs(pixelX) >= Math.abs(pixelY)) {\n        event.preventDefault();\n        this.bodyWrapper.scrollLeft += data.pixelX / 5;\n      }\n    },\n    bindEvents: function bindEvents() {\n      var _$refs = this.$refs,\n          headerWrapper = _$refs.headerWrapper,\n          footerWrapper = _$refs.footerWrapper;\n\n      var refs = this.$refs;\n      var self = this;\n\n      this.bodyWrapper.addEventListener('scroll', function () {\n        if (headerWrapper) headerWrapper.scrollLeft = this.scrollLeft;\n        if (footerWrapper) footerWrapper.scrollLeft = this.scrollLeft;\n        if (refs.fixedBodyWrapper) refs.fixedBodyWrapper.scrollTop = this.scrollTop;\n        if (refs.rightFixedBodyWrapper) refs.rightFixedBodyWrapper.scrollTop = this.scrollTop;\n        var maxScrollLeftPosition = this.scrollWidth - this.offsetWidth - 1;\n        var scrollLeft = this.scrollLeft;\n        if (scrollLeft >= maxScrollLeftPosition) {\n          self.scrollPosition = 'right';\n        } else if (scrollLeft === 0) {\n          self.scrollPosition = 'left';\n        } else {\n          self.scrollPosition = 'middle';\n        }\n      });\n\n      if (this.fit) {\n        (0, _resizeEvent.addResizeListener)(this.$el, this.resizeListener);\n      }\n    },\n    resizeListener: function resizeListener() {\n      if (!this.$ready) return;\n      var shouldUpdateLayout = false;\n      var el = this.$el;\n      var _resizeState = this.resizeState,\n          oldWidth = _resizeState.width,\n          oldHeight = _resizeState.height;\n\n\n      var width = el.offsetWidth;\n      if (oldWidth !== width) {\n        shouldUpdateLayout = true;\n      }\n\n      var height = el.offsetHeight;\n      if ((this.height || this.shouldUpdateHeight) && oldHeight !== height) {\n        shouldUpdateLayout = true;\n      }\n\n      if (shouldUpdateLayout) {\n        this.resizeState.width = width;\n        this.resizeState.height = height;\n        this.doLayout();\n      }\n    },\n    doLayout: function doLayout() {\n      this.layout.updateColumnsWidth();\n      if (this.shouldUpdateHeight) {\n        this.layout.updateElsHeight();\n      }\n    },\n    sort: function sort(prop, order) {\n      this.store.commit('sort', { prop: prop, order: order });\n    },\n    toggleAllSelection: function toggleAllSelection() {\n      this.store.commit('toggleAllSelection');\n    }\n  },\n\n  created: function created() {\n    var _this = this;\n\n    this.tableId = 'el-table_' + tableIdSeed++;\n    this.debouncedUpdateLayout = (0, _debounce2.default)(50, function () {\n      return _this.doLayout();\n    });\n  },\n\n\n  computed: {\n    tableSize: function tableSize() {\n      return this.size || (this.$ELEMENT || {}).size;\n    },\n    bodyWrapper: function bodyWrapper() {\n      return this.$refs.bodyWrapper;\n    },\n    shouldUpdateHeight: function shouldUpdateHeight() {\n      return this.height || this.maxHeight || this.fixedColumns.length > 0 || this.rightFixedColumns.length > 0;\n    },\n    selection: function selection() {\n      return this.store.states.selection;\n    },\n    columns: function columns() {\n      return this.store.states.columns;\n    },\n    tableData: function tableData() {\n      return this.store.states.data;\n    },\n    fixedColumns: function fixedColumns() {\n      return this.store.states.fixedColumns;\n    },\n    rightFixedColumns: function rightFixedColumns() {\n      return this.store.states.rightFixedColumns;\n    },\n    bodyWidth: function bodyWidth() {\n      var _layout = this.layout,\n          bodyWidth = _layout.bodyWidth,\n          scrollY = _layout.scrollY,\n          gutterWidth = _layout.gutterWidth;\n\n      return bodyWidth ? bodyWidth - (scrollY ? gutterWidth : 0) + 'px' : '';\n    },\n    bodyHeight: function bodyHeight() {\n      if (this.height) {\n        return {\n          height: this.layout.bodyHeight ? this.layout.bodyHeight + 'px' : ''\n        };\n      } else if (this.maxHeight) {\n        return {\n          'max-height': (this.showHeader ? this.maxHeight - this.layout.headerHeight - this.layout.footerHeight : this.maxHeight - this.layout.footerHeight) + 'px'\n        };\n      }\n      return {};\n    },\n    fixedBodyHeight: function fixedBodyHeight() {\n      if (this.height) {\n        return {\n          height: this.layout.fixedBodyHeight ? this.layout.fixedBodyHeight + 'px' : ''\n        };\n      } else if (this.maxHeight) {\n        var maxHeight = this.layout.scrollX ? this.maxHeight - this.layout.gutterWidth : this.maxHeight;\n\n        if (this.showHeader) {\n          maxHeight -= this.layout.headerHeight;\n        }\n\n        maxHeight -= this.layout.footerHeight;\n\n        return {\n          'max-height': maxHeight + 'px'\n        };\n      }\n\n      return {};\n    },\n    fixedHeight: function fixedHeight() {\n      if (this.maxHeight) {\n        if (this.showSummary) {\n          return {\n            bottom: 0\n          };\n        }\n        return {\n          bottom: this.layout.scrollX && this.data.length ? this.layout.gutterWidth + 'px' : ''\n        };\n      } else {\n        if (this.showSummary) {\n          return {\n            height: this.layout.tableHeight ? this.layout.tableHeight + 'px' : ''\n          };\n        }\n        return {\n          height: this.layout.viewportHeight ? this.layout.viewportHeight + 'px' : ''\n        };\n      }\n    }\n  },\n\n  watch: {\n    height: {\n      immediate: true,\n      handler: function handler(value) {\n        this.layout.setHeight(value);\n      }\n    },\n\n    maxHeight: {\n      immediate: true,\n      handler: function handler(value) {\n        this.layout.setMaxHeight(value);\n      }\n    },\n\n    currentRowKey: function currentRowKey(newVal) {\n      this.store.setCurrentRowKey(newVal);\n    },\n\n\n    data: {\n      immediate: true,\n      handler: function handler(value) {\n        var _this2 = this;\n\n        this.store.commit('setData', value);\n        if (this.$ready) {\n          this.$nextTick(function () {\n            _this2.doLayout();\n          });\n        }\n      }\n    },\n\n    expandRowKeys: {\n      immediate: true,\n      handler: function handler(newVal) {\n        if (newVal) {\n          this.store.setExpandRowKeys(newVal);\n        }\n      }\n    }\n  },\n\n  destroyed: function destroyed() {\n    if (this.resizeListener) (0, _resizeEvent.removeResizeListener)(this.$el, this.resizeListener);\n  },\n  mounted: function mounted() {\n    var _this3 = this;\n\n    this.bindEvents();\n    this.store.updateColumns();\n    this.doLayout();\n\n    this.resizeState = {\n      width: this.$el.offsetWidth,\n      height: this.$el.offsetHeight\n    };\n\n    // init filters\n    this.store.states.columns.forEach(function (column) {\n      if (column.filteredValue && column.filteredValue.length) {\n        _this3.store.commit('filterChange', {\n          column: column,\n          values: column.filteredValue,\n          silent: true\n        });\n      }\n    });\n\n    this.$ready = true;\n  },\n  data: function data() {\n    var store = new _tableStore2.default(this, {\n      rowKey: this.rowKey,\n      defaultExpandAll: this.defaultExpandAll,\n      selectOnIndeterminate: this.selectOnIndeterminate\n    });\n    var layout = new _tableLayout2.default({\n      store: store,\n      table: this,\n      fit: this.fit,\n      showHeader: this.showHeader\n    });\n    return {\n      layout: layout,\n      store: store,\n      isHidden: false,\n      renderExpanded: null,\n      resizeProxyVisible: false,\n      resizeState: {\n        width: null,\n        height: null\n      },\n      // 鏄惁鎷ユ湁澶氱骇琛ㄥご\n      isGroup: false,\n      scrollPosition: 'left'\n    };\n  }\n};\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _normalizeWheel = __webpack_require__(158);\n\nvar _normalizeWheel2 = _interopRequireDefault(_normalizeWheel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isFirefox = typeof navigator !== 'undefined' && navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\nvar mousewheel = function mousewheel(element, callback) {\n  if (element && element.addEventListener) {\n    element.addEventListener(isFirefox ? 'DOMMouseScroll' : 'mousewheel', function (event) {\n      var normalized = (0, _normalizeWheel2.default)(event);\n      callback && callback.apply(this, [event, normalized]);\n    });\n  }\n};\n\nexports.default = {\n  bind: function bind(el, binding) {\n    mousewheel(el, binding.value);\n  }\n};\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"normalize-wheel\");\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _debounce = __webpack_require__(13);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _dom = __webpack_require__(2);\n\nvar _util = __webpack_require__(35);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar sortData = function sortData(data, states) {\n  var sortingColumn = states.sortingColumn;\n  if (!sortingColumn || typeof sortingColumn.sortable === 'string') {\n    return data;\n  }\n  return (0, _util.orderBy)(data, states.sortProp, states.sortOrder, sortingColumn.sortMethod, sortingColumn.sortBy);\n};\n\nvar getKeysMap = function getKeysMap(array, rowKey) {\n  var arrayMap = {};\n  (array || []).forEach(function (row, index) {\n    arrayMap[(0, _util.getRowIdentity)(row, rowKey)] = { row: row, index: index };\n  });\n  return arrayMap;\n};\n\nvar toggleRowSelection = function toggleRowSelection(states, row, selected) {\n  var changed = false;\n  var selection = states.selection;\n  var index = selection.indexOf(row);\n  if (typeof selected === 'undefined') {\n    if (index === -1) {\n      selection.push(row);\n      changed = true;\n    } else {\n      selection.splice(index, 1);\n      changed = true;\n    }\n  } else {\n    if (selected && index === -1) {\n      selection.push(row);\n      changed = true;\n    } else if (!selected && index > -1) {\n      selection.splice(index, 1);\n      changed = true;\n    }\n  }\n\n  return changed;\n};\n\nvar toggleRowExpansion = function toggleRowExpansion(states, row, expanded) {\n  var changed = false;\n  var expandRows = states.expandRows;\n  if (typeof expanded !== 'undefined') {\n    var index = expandRows.indexOf(row);\n    if (expanded) {\n      if (index === -1) {\n        expandRows.push(row);\n        changed = true;\n      }\n    } else {\n      if (index !== -1) {\n        expandRows.splice(index, 1);\n        changed = true;\n      }\n    }\n  } else {\n    var _index = expandRows.indexOf(row);\n    if (_index === -1) {\n      expandRows.push(row);\n      changed = true;\n    } else {\n      expandRows.splice(_index, 1);\n      changed = true;\n    }\n  }\n\n  return changed;\n};\n\nvar TableStore = function TableStore(table) {\n  var initialState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n  if (!table) {\n    throw new Error('Table is required.');\n  }\n  this.table = table;\n\n  this.states = {\n    rowKey: null,\n    _columns: [],\n    originColumns: [],\n    columns: [],\n    fixedColumns: [],\n    rightFixedColumns: [],\n    leafColumns: [],\n    fixedLeafColumns: [],\n    rightFixedLeafColumns: [],\n    leafColumnsLength: 0,\n    fixedLeafColumnsLength: 0,\n    rightFixedLeafColumnsLength: 0,\n    isComplex: false,\n    filteredData: null,\n    data: null,\n    sortingColumn: null,\n    sortProp: null,\n    sortOrder: null,\n    isAllSelected: false,\n    selection: [],\n    reserveSelection: false,\n    selectable: null,\n    currentRow: null,\n    hoverRow: null,\n    filters: {},\n    expandRows: [],\n    defaultExpandAll: false,\n    selectOnIndeterminate: false\n  };\n\n  for (var prop in initialState) {\n    if (initialState.hasOwnProperty(prop) && this.states.hasOwnProperty(prop)) {\n      this.states[prop] = initialState[prop];\n    }\n  }\n};\n\nTableStore.prototype.mutations = {\n  setData: function setData(states, data) {\n    var _this = this;\n\n    var dataInstanceChanged = states._data !== data;\n    states._data = data;\n\n    Object.keys(states.filters).forEach(function (columnId) {\n      var values = states.filters[columnId];\n      if (!values || values.length === 0) return;\n      var column = (0, _util.getColumnById)(_this.states, columnId);\n      if (column && column.filterMethod) {\n        data = data.filter(function (row) {\n          return values.some(function (value) {\n            return column.filterMethod.call(null, value, row, column);\n          });\n        });\n      }\n    });\n\n    states.filteredData = data;\n    states.data = sortData(data || [], states);\n\n    this.updateCurrentRow();\n\n    var rowKey = states.rowKey;\n\n    if (!states.reserveSelection) {\n      if (dataInstanceChanged) {\n        this.clearSelection();\n      } else {\n        this.cleanSelection();\n      }\n      this.updateAllSelected();\n    } else {\n      if (rowKey) {\n        (function () {\n          var selection = states.selection;\n          var selectedMap = getKeysMap(selection, rowKey);\n\n          states.data.forEach(function (row) {\n            var rowId = (0, _util.getRowIdentity)(row, rowKey);\n            var rowInfo = selectedMap[rowId];\n            if (rowInfo) {\n              selection[rowInfo.index] = row;\n            }\n          });\n\n          _this.updateAllSelected();\n        })();\n      } else {\n        console.warn('WARN: rowKey is required when reserve-selection is enabled.');\n      }\n    }\n\n    var defaultExpandAll = states.defaultExpandAll;\n    if (defaultExpandAll) {\n      this.states.expandRows = (states.data || []).slice(0);\n    } else if (rowKey) {\n      // update expandRows to new rows according to rowKey\n      var ids = getKeysMap(this.states.expandRows, rowKey);\n      var expandRows = [];\n      for (var _iterator = states.data, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n        var _ref;\n\n        if (_isArray) {\n          if (_i >= _iterator.length) break;\n          _ref = _iterator[_i++];\n        } else {\n          _i = _iterator.next();\n          if (_i.done) break;\n          _ref = _i.value;\n        }\n\n        var row = _ref;\n\n        var rowId = (0, _util.getRowIdentity)(row, rowKey);\n        if (ids[rowId]) {\n          expandRows.push(row);\n        }\n      }\n      this.states.expandRows = expandRows;\n    } else {\n      // clear the old rows\n      this.states.expandRows = [];\n    }\n\n    _vue2.default.nextTick(function () {\n      return _this.table.updateScrollY();\n    });\n  },\n  changeSortCondition: function changeSortCondition(states, options) {\n    var _this2 = this;\n\n    states.data = sortData(states.filteredData || states._data || [], states);\n\n    var _table = this.table,\n        $el = _table.$el,\n        highlightCurrentRow = _table.highlightCurrentRow;\n\n    if ($el && highlightCurrentRow) {\n      var data = states.data;\n      var tr = $el.querySelector('tbody').children;\n      var rows = [].filter.call(tr, function (row) {\n        return (0, _dom.hasClass)(row, 'el-table__row');\n      });\n      var row = rows[data.indexOf(states.currentRow)];\n\n      [].forEach.call(rows, function (row) {\n        return (0, _dom.removeClass)(row, 'current-row');\n      });\n      (0, _dom.addClass)(row, 'current-row');\n    }\n\n    if (!options || !options.silent) {\n      this.table.$emit('sort-change', {\n        column: this.states.sortingColumn,\n        prop: this.states.sortProp,\n        order: this.states.sortOrder\n      });\n    }\n\n    _vue2.default.nextTick(function () {\n      return _this2.table.updateScrollY();\n    });\n  },\n  sort: function sort(states, options) {\n    var _this3 = this;\n\n    var prop = options.prop,\n        order = options.order;\n\n    if (prop) {\n      states.sortProp = prop;\n      states.sortOrder = order || 'ascending';\n      _vue2.default.nextTick(function () {\n        for (var i = 0, length = states.columns.length; i < length; i++) {\n          var column = states.columns[i];\n          if (column.property === states.sortProp) {\n            column.order = states.sortOrder;\n            states.sortingColumn = column;\n            break;\n          }\n        }\n\n        if (states.sortingColumn) {\n          _this3.commit('changeSortCondition');\n        }\n      });\n    }\n  },\n  filterChange: function filterChange(states, options) {\n    var _this4 = this;\n\n    var column = options.column,\n        values = options.values,\n        silent = options.silent;\n\n    if (values && !Array.isArray(values)) {\n      values = [values];\n    }\n\n    var prop = column.property;\n    var filters = {};\n\n    if (prop) {\n      states.filters[column.id] = values;\n      filters[column.columnKey || column.id] = values;\n    }\n\n    var data = states._data;\n\n    Object.keys(states.filters).forEach(function (columnId) {\n      var values = states.filters[columnId];\n      if (!values || values.length === 0) return;\n      var column = (0, _util.getColumnById)(_this4.states, columnId);\n      if (column && column.filterMethod) {\n        data = data.filter(function (row) {\n          return values.some(function (value) {\n            return column.filterMethod.call(null, value, row, column);\n          });\n        });\n      }\n    });\n\n    states.filteredData = data;\n    states.data = sortData(data, states);\n\n    if (!silent) {\n      this.table.$emit('filter-change', filters);\n    }\n\n    _vue2.default.nextTick(function () {\n      return _this4.table.updateScrollY();\n    });\n  },\n  insertColumn: function insertColumn(states, column, index, parent) {\n    var array = states._columns;\n    if (parent) {\n      array = parent.children;\n      if (!array) array = parent.children = [];\n    }\n\n    if (typeof index !== 'undefined') {\n      array.splice(index, 0, column);\n    } else {\n      array.push(column);\n    }\n\n    if (column.type === 'selection') {\n      states.selectable = column.selectable;\n      states.reserveSelection = column.reserveSelection;\n    }\n\n    if (this.table.$ready) {\n      this.updateColumns(); // hack for dynamics insert column\n      this.scheduleLayout();\n    }\n  },\n  removeColumn: function removeColumn(states, column, parent) {\n    var array = states._columns;\n    if (parent) {\n      array = parent.children;\n      if (!array) array = parent.children = [];\n    }\n    if (array) {\n      array.splice(array.indexOf(column), 1);\n    }\n\n    if (this.table.$ready) {\n      this.updateColumns(); // hack for dynamics remove column\n      this.scheduleLayout();\n    }\n  },\n  setHoverRow: function setHoverRow(states, row) {\n    states.hoverRow = row;\n  },\n  setCurrentRow: function setCurrentRow(states, row) {\n    var oldCurrentRow = states.currentRow;\n    states.currentRow = row;\n\n    if (oldCurrentRow !== row) {\n      this.table.$emit('current-change', row, oldCurrentRow);\n    }\n  },\n  rowSelectedChanged: function rowSelectedChanged(states, row) {\n    var changed = toggleRowSelection(states, row);\n    var selection = states.selection;\n\n    if (changed) {\n      var table = this.table;\n      table.$emit('selection-change', selection ? selection.slice() : []);\n      table.$emit('select', selection, row);\n    }\n\n    this.updateAllSelected();\n  },\n\n\n  toggleAllSelection: (0, _debounce2.default)(10, function (states) {\n    var data = states.data || [];\n    if (data.length === 0) return;\n    var selection = this.states.selection;\n    // when only some rows are selected (but not all), select or deselect all of them\n    // depending on the value of selectOnIndeterminate\n    var value = states.selectOnIndeterminate ? !states.isAllSelected : !(states.isAllSelected || selection.length);\n    var selectionChanged = false;\n\n    data.forEach(function (item, index) {\n      if (states.selectable) {\n        if (states.selectable.call(null, item, index) && toggleRowSelection(states, item, value)) {\n          selectionChanged = true;\n        }\n      } else {\n        if (toggleRowSelection(states, item, value)) {\n          selectionChanged = true;\n        }\n      }\n    });\n\n    var table = this.table;\n    if (selectionChanged) {\n      table.$emit('selection-change', selection ? selection.slice() : []);\n    }\n    table.$emit('select-all', selection);\n    states.isAllSelected = value;\n  })\n};\n\nvar doFlattenColumns = function doFlattenColumns(columns) {\n  var result = [];\n  columns.forEach(function (column) {\n    if (column.children) {\n      result.push.apply(result, doFlattenColumns(column.children));\n    } else {\n      result.push(column);\n    }\n  });\n  return result;\n};\n\nTableStore.prototype.updateColumns = function () {\n  var states = this.states;\n  var _columns = states._columns || [];\n  states.fixedColumns = _columns.filter(function (column) {\n    return column.fixed === true || column.fixed === 'left';\n  });\n  states.rightFixedColumns = _columns.filter(function (column) {\n    return column.fixed === 'right';\n  });\n\n  if (states.fixedColumns.length > 0 && _columns[0] && _columns[0].type === 'selection' && !_columns[0].fixed) {\n    _columns[0].fixed = true;\n    states.fixedColumns.unshift(_columns[0]);\n  }\n\n  var notFixedColumns = _columns.filter(function (column) {\n    return !column.fixed;\n  });\n  states.originColumns = [].concat(states.fixedColumns).concat(notFixedColumns).concat(states.rightFixedColumns);\n\n  var leafColumns = doFlattenColumns(notFixedColumns);\n  var fixedLeafColumns = doFlattenColumns(states.fixedColumns);\n  var rightFixedLeafColumns = doFlattenColumns(states.rightFixedColumns);\n\n  states.leafColumnsLength = leafColumns.length;\n  states.fixedLeafColumnsLength = fixedLeafColumns.length;\n  states.rightFixedLeafColumnsLength = rightFixedLeafColumns.length;\n\n  states.columns = [].concat(fixedLeafColumns).concat(leafColumns).concat(rightFixedLeafColumns);\n  states.isComplex = states.fixedColumns.length > 0 || states.rightFixedColumns.length > 0;\n};\n\nTableStore.prototype.isSelected = function (row) {\n  return (this.states.selection || []).indexOf(row) > -1;\n};\n\nTableStore.prototype.clearSelection = function () {\n  var states = this.states;\n  states.isAllSelected = false;\n  var oldSelection = states.selection;\n  if (states.selection.length) {\n    states.selection = [];\n  }\n  if (oldSelection.length > 0) {\n    this.table.$emit('selection-change', states.selection ? states.selection.slice() : []);\n  }\n};\n\nTableStore.prototype.setExpandRowKeys = function (rowKeys) {\n  var expandRows = [];\n  var data = this.states.data;\n  var rowKey = this.states.rowKey;\n  if (!rowKey) throw new Error('[Table] prop row-key should not be empty.');\n  var keysMap = getKeysMap(data, rowKey);\n  rowKeys.forEach(function (key) {\n    var info = keysMap[key];\n    if (info) {\n      expandRows.push(info.row);\n    }\n  });\n\n  this.states.expandRows = expandRows;\n};\n\nTableStore.prototype.toggleRowSelection = function (row, selected) {\n  var changed = toggleRowSelection(this.states, row, selected);\n  if (changed) {\n    this.table.$emit('selection-change', this.states.selection ? this.states.selection.slice() : []);\n  }\n};\n\nTableStore.prototype.toggleRowExpansion = function (row, expanded) {\n  var changed = toggleRowExpansion(this.states, row, expanded);\n  if (changed) {\n    this.table.$emit('expand-change', row, this.states.expandRows);\n    this.scheduleLayout();\n  }\n};\n\nTableStore.prototype.isRowExpanded = function (row) {\n  var _states = this.states,\n      _states$expandRows = _states.expandRows,\n      expandRows = _states$expandRows === undefined ? [] : _states$expandRows,\n      rowKey = _states.rowKey;\n\n  if (rowKey) {\n    var expandMap = getKeysMap(expandRows, rowKey);\n    return !!expandMap[(0, _util.getRowIdentity)(row, rowKey)];\n  }\n  return expandRows.indexOf(row) !== -1;\n};\n\nTableStore.prototype.cleanSelection = function () {\n  var selection = this.states.selection || [];\n  var data = this.states.data;\n  var rowKey = this.states.rowKey;\n  var deleted = void 0;\n  if (rowKey) {\n    deleted = [];\n    var selectedMap = getKeysMap(selection, rowKey);\n    var dataMap = getKeysMap(data, rowKey);\n    for (var key in selectedMap) {\n      if (selectedMap.hasOwnProperty(key) && !dataMap[key]) {\n        deleted.push(selectedMap[key].row);\n      }\n    }\n  } else {\n    deleted = selection.filter(function (item) {\n      return data.indexOf(item) === -1;\n    });\n  }\n\n  deleted.forEach(function (deletedItem) {\n    selection.splice(selection.indexOf(deletedItem), 1);\n  });\n\n  if (deleted.length) {\n    this.table.$emit('selection-change', selection ? selection.slice() : []);\n  }\n};\n\nTableStore.prototype.clearFilter = function () {\n  var states = this.states;\n  var _table$$refs = this.table.$refs,\n      tableHeader = _table$$refs.tableHeader,\n      fixedTableHeader = _table$$refs.fixedTableHeader,\n      rightFixedTableHeader = _table$$refs.rightFixedTableHeader;\n\n  var panels = {};\n\n  if (tableHeader) panels = (0, _merge2.default)(panels, tableHeader.filterPanels);\n  if (fixedTableHeader) panels = (0, _merge2.default)(panels, fixedTableHeader.filterPanels);\n  if (rightFixedTableHeader) panels = (0, _merge2.default)(panels, rightFixedTableHeader.filterPanels);\n\n  var keys = Object.keys(panels);\n  if (!keys.length) return;\n\n  keys.forEach(function (key) {\n    panels[key].filteredValue = [];\n  });\n\n  states.filters = {};\n\n  this.commit('filterChange', {\n    column: {},\n    values: [],\n    silent: true\n  });\n};\n\nTableStore.prototype.clearSort = function () {\n  var states = this.states;\n  if (!states.sortingColumn) return;\n  states.sortingColumn.order = null;\n  states.sortProp = null;\n  states.sortOrder = null;\n\n  this.commit('changeSortCondition', {\n    silent: true\n  });\n};\n\nTableStore.prototype.updateAllSelected = function () {\n  var states = this.states;\n  var selection = states.selection,\n      rowKey = states.rowKey,\n      selectable = states.selectable,\n      data = states.data;\n\n  if (!data || data.length === 0) {\n    states.isAllSelected = false;\n    return;\n  }\n\n  var selectedMap = void 0;\n  if (rowKey) {\n    selectedMap = getKeysMap(states.selection, rowKey);\n  }\n\n  var isSelected = function isSelected(row) {\n    if (selectedMap) {\n      return !!selectedMap[(0, _util.getRowIdentity)(row, rowKey)];\n    } else {\n      return selection.indexOf(row) !== -1;\n    }\n  };\n\n  var isAllSelected = true;\n  var selectedCount = 0;\n  for (var i = 0, j = data.length; i < j; i++) {\n    var item = data[i];\n    var isRowSelectable = selectable && selectable.call(null, item, i);\n    if (!isSelected(item)) {\n      if (!selectable || isRowSelectable) {\n        isAllSelected = false;\n        break;\n      }\n    } else {\n      selectedCount++;\n    }\n  }\n\n  if (selectedCount === 0) isAllSelected = false;\n\n  states.isAllSelected = isAllSelected;\n};\n\nTableStore.prototype.scheduleLayout = function (updateColumns) {\n  if (updateColumns) {\n    this.updateColumns();\n  }\n  this.table.debouncedUpdateLayout();\n};\n\nTableStore.prototype.setCurrentRowKey = function (key) {\n  var states = this.states;\n  var rowKey = states.rowKey;\n  if (!rowKey) throw new Error('[Table] row-key should not be empty.');\n  var data = states.data || [];\n  var keysMap = getKeysMap(data, rowKey);\n  var info = keysMap[key];\n  states.currentRow = info ? info.row : null;\n};\n\nTableStore.prototype.updateCurrentRow = function () {\n  var states = this.states;\n  var table = this.table;\n  var data = states.data || [];\n  var oldCurrentRow = states.currentRow;\n\n  if (data.indexOf(oldCurrentRow) === -1) {\n    states.currentRow = null;\n\n    if (states.currentRow !== oldCurrentRow) {\n      table.$emit('current-change', null, oldCurrentRow);\n    }\n  }\n};\n\nTableStore.prototype.commit = function (name) {\n  var mutations = this.mutations;\n  if (mutations[name]) {\n    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    mutations[name].apply(this, [this.states].concat(args));\n  } else {\n    throw new Error('Action not found: ' + name);\n  }\n};\n\nexports.default = TableStore;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _scrollbarWidth = __webpack_require__(36);\n\nvar _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TableLayout = function () {\n  function TableLayout(options) {\n    _classCallCheck(this, TableLayout);\n\n    this.observers = [];\n    this.table = null;\n    this.store = null;\n    this.columns = null;\n    this.fit = true;\n    this.showHeader = true;\n\n    this.height = null;\n    this.scrollX = false;\n    this.scrollY = false;\n    this.bodyWidth = null;\n    this.fixedWidth = null;\n    this.rightFixedWidth = null;\n    this.tableHeight = null;\n    this.headerHeight = 44; // Table Header Height\n    this.appendHeight = 0; // Append Slot Height\n    this.footerHeight = 44; // Table Footer Height\n    this.viewportHeight = null; // Table Height - Scroll Bar Height\n    this.bodyHeight = null; // Table Height - Table Header Height\n    this.fixedBodyHeight = null; // Table Height - Table Header Height - Scroll Bar Height\n    this.gutterWidth = (0, _scrollbarWidth2.default)();\n\n    for (var name in options) {\n      if (options.hasOwnProperty(name)) {\n        this[name] = options[name];\n      }\n    }\n\n    if (!this.table) {\n      throw new Error('table is required for Table Layout');\n    }\n    if (!this.store) {\n      throw new Error('store is required for Table Layout');\n    }\n  }\n\n  TableLayout.prototype.updateScrollY = function updateScrollY() {\n    var height = this.height;\n    if (typeof height !== 'string' && typeof height !== 'number') return;\n    var bodyWrapper = this.table.bodyWrapper;\n    if (this.table.$el && bodyWrapper) {\n      var body = bodyWrapper.querySelector('.el-table__body');\n      this.scrollY = body.offsetHeight > this.bodyHeight;\n    }\n  };\n\n  TableLayout.prototype.setHeight = function setHeight(value) {\n    var _this = this;\n\n    var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'height';\n\n    if (_vue2.default.prototype.$isServer) return;\n    var el = this.table.$el;\n    if (typeof value === 'string' && /^\\d+$/.test(value)) {\n      value = Number(value);\n    }\n    this.height = value;\n\n    if (!el && (value || value === 0)) return _vue2.default.nextTick(function () {\n      return _this.setHeight(value, prop);\n    });\n\n    if (typeof value === 'number') {\n      el.style[prop] = value + 'px';\n\n      this.updateElsHeight();\n    } else if (typeof value === 'string') {\n      el.style[prop] = value;\n      this.updateElsHeight();\n    }\n  };\n\n  TableLayout.prototype.setMaxHeight = function setMaxHeight(value) {\n    return this.setHeight(value, 'max-height');\n  };\n\n  TableLayout.prototype.updateElsHeight = function updateElsHeight() {\n    var _this2 = this;\n\n    if (!this.table.$ready) return _vue2.default.nextTick(function () {\n      return _this2.updateElsHeight();\n    });\n    var _table$$refs = this.table.$refs,\n        headerWrapper = _table$$refs.headerWrapper,\n        appendWrapper = _table$$refs.appendWrapper,\n        footerWrapper = _table$$refs.footerWrapper;\n\n    this.appendHeight = appendWrapper ? appendWrapper.offsetHeight : 0;\n\n    if (this.showHeader && !headerWrapper) return;\n    var headerHeight = this.headerHeight = !this.showHeader ? 0 : headerWrapper.offsetHeight;\n    if (this.showHeader && headerWrapper.offsetWidth > 0 && (this.table.columns || []).length > 0 && headerHeight < 2) {\n      return _vue2.default.nextTick(function () {\n        return _this2.updateElsHeight();\n      });\n    }\n    var tableHeight = this.tableHeight = this.table.$el.clientHeight;\n    if (this.height !== null && (!isNaN(this.height) || typeof this.height === 'string')) {\n      var footerHeight = this.footerHeight = footerWrapper ? footerWrapper.offsetHeight : 0;\n      this.bodyHeight = tableHeight - headerHeight - footerHeight + (footerWrapper ? 1 : 0);\n    }\n    this.fixedBodyHeight = this.scrollX ? this.bodyHeight - this.gutterWidth : this.bodyHeight;\n\n    var noData = !this.table.data || this.table.data.length === 0;\n    this.viewportHeight = this.scrollX ? tableHeight - (noData ? 0 : this.gutterWidth) : tableHeight;\n\n    this.updateScrollY();\n    this.notifyObservers('scrollable');\n  };\n\n  TableLayout.prototype.getFlattenColumns = function getFlattenColumns() {\n    var flattenColumns = [];\n    var columns = this.table.columns;\n    columns.forEach(function (column) {\n      if (column.isColumnGroup) {\n        flattenColumns.push.apply(flattenColumns, column.columns);\n      } else {\n        flattenColumns.push(column);\n      }\n    });\n\n    return flattenColumns;\n  };\n\n  TableLayout.prototype.updateColumnsWidth = function updateColumnsWidth() {\n    if (_vue2.default.prototype.$isServer) return;\n    var fit = this.fit;\n    var bodyWidth = this.table.$el.clientWidth;\n    var bodyMinWidth = 0;\n\n    var flattenColumns = this.getFlattenColumns();\n    var flexColumns = flattenColumns.filter(function (column) {\n      return typeof column.width !== 'number';\n    });\n\n    flattenColumns.forEach(function (column) {\n      // Clean those columns whose width changed from flex to unflex\n      if (typeof column.width === 'number' && column.realWidth) column.realWidth = null;\n    });\n\n    if (flexColumns.length > 0 && fit) {\n      flattenColumns.forEach(function (column) {\n        bodyMinWidth += column.width || column.minWidth || 80;\n      });\n\n      var scrollYWidth = this.scrollY ? this.gutterWidth : 0;\n\n      if (bodyMinWidth <= bodyWidth - scrollYWidth) {\n        // DON'T HAVE SCROLL BAR\n        this.scrollX = false;\n\n        var totalFlexWidth = bodyWidth - scrollYWidth - bodyMinWidth;\n\n        if (flexColumns.length === 1) {\n          flexColumns[0].realWidth = (flexColumns[0].minWidth || 80) + totalFlexWidth;\n        } else {\n          (function () {\n            var allColumnsWidth = flexColumns.reduce(function (prev, column) {\n              return prev + (column.minWidth || 80);\n            }, 0);\n            var flexWidthPerPixel = totalFlexWidth / allColumnsWidth;\n            var noneFirstWidth = 0;\n\n            flexColumns.forEach(function (column, index) {\n              if (index === 0) return;\n              var flexWidth = Math.floor((column.minWidth || 80) * flexWidthPerPixel);\n              noneFirstWidth += flexWidth;\n              column.realWidth = (column.minWidth || 80) + flexWidth;\n            });\n\n            flexColumns[0].realWidth = (flexColumns[0].minWidth || 80) + totalFlexWidth - noneFirstWidth;\n          })();\n        }\n      } else {\n        // HAVE HORIZONTAL SCROLL BAR\n        this.scrollX = true;\n        flexColumns.forEach(function (column) {\n          column.realWidth = column.minWidth;\n        });\n      }\n\n      this.bodyWidth = Math.max(bodyMinWidth, bodyWidth);\n      this.table.resizeState.width = this.bodyWidth;\n    } else {\n      flattenColumns.forEach(function (column) {\n        if (!column.width && !column.minWidth) {\n          column.realWidth = 80;\n        } else {\n          column.realWidth = column.width || column.minWidth;\n        }\n\n        bodyMinWidth += column.realWidth;\n      });\n      this.scrollX = bodyMinWidth > bodyWidth;\n\n      this.bodyWidth = bodyMinWidth;\n    }\n\n    var fixedColumns = this.store.states.fixedColumns;\n\n    if (fixedColumns.length > 0) {\n      var fixedWidth = 0;\n      fixedColumns.forEach(function (column) {\n        fixedWidth += column.realWidth || column.width;\n      });\n\n      this.fixedWidth = fixedWidth;\n    }\n\n    var rightFixedColumns = this.store.states.rightFixedColumns;\n    if (rightFixedColumns.length > 0) {\n      var rightFixedWidth = 0;\n      rightFixedColumns.forEach(function (column) {\n        rightFixedWidth += column.realWidth || column.width;\n      });\n\n      this.rightFixedWidth = rightFixedWidth;\n    }\n\n    this.notifyObservers('columns');\n  };\n\n  TableLayout.prototype.addObserver = function addObserver(observer) {\n    this.observers.push(observer);\n  };\n\n  TableLayout.prototype.removeObserver = function removeObserver(observer) {\n    var index = this.observers.indexOf(observer);\n    if (index !== -1) {\n      this.observers.splice(index, 1);\n    }\n  };\n\n  TableLayout.prototype.notifyObservers = function notifyObservers(event) {\n    var _this3 = this;\n\n    var observers = this.observers;\n    observers.forEach(function (observer) {\n      switch (event) {\n        case 'columns':\n          observer.onColumnsChange(_this3);\n          break;\n        case 'scrollable':\n          observer.onScrollableChange(_this3);\n          break;\n        default:\n          throw new Error('Table Layout don\\'t have event ' + event + '.');\n      }\n    });\n  };\n\n  return TableLayout;\n}();\n\nexports.default = TableLayout;\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _util = __webpack_require__(35);\n\nvar _dom = __webpack_require__(2);\n\nvar _checkbox = __webpack_require__(14);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _tooltip = __webpack_require__(23);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _debounce = __webpack_require__(13);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _layoutObserver = __webpack_require__(27);\n\nvar _layoutObserver2 = _interopRequireDefault(_layoutObserver);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElTableBody',\n\n  mixins: [_layoutObserver2.default],\n\n  components: {\n    ElCheckbox: _checkbox2.default,\n    ElTooltip: _tooltip2.default\n  },\n\n  props: {\n    store: {\n      required: true\n    },\n    stripe: Boolean,\n    context: {},\n    rowClassName: [String, Function],\n    rowStyle: [Object, Function],\n    fixed: String,\n    highlight: Boolean\n  },\n\n  render: function render(h) {\n    var _this = this;\n\n    var columnsHidden = this.columns.map(function (column, index) {\n      return _this.isColumnHidden(index);\n    });\n    return h(\n      'table',\n      {\n        'class': 'el-table__body',\n        attrs: { cellspacing: '0',\n          cellpadding: '0',\n          border: '0' }\n      },\n      [h(\n        'colgroup',\n        null,\n        [this._l(this.columns, function (column) {\n          return h(\n            'col',\n            {\n              attrs: { name: column.id }\n            },\n            []\n          );\n        })]\n      ), h(\n        'tbody',\n        null,\n        [this._l(this.data, function (row, $index) {\n          return [h(\n            'tr',\n            {\n              style: _this.rowStyle ? _this.getRowStyle(row, $index) : null,\n              key: _this.table.rowKey ? _this.getKeyOfRow(row, $index) : $index,\n              on: {\n                'dblclick': function dblclick($event) {\n                  return _this.handleDoubleClick($event, row);\n                },\n                'click': function click($event) {\n                  return _this.handleClick($event, row);\n                },\n                'contextmenu': function contextmenu($event) {\n                  return _this.handleContextMenu($event, row);\n                },\n                'mouseenter': function mouseenter(_) {\n                  return _this.handleMouseEnter($index);\n                },\n                'mouseleave': function mouseleave(_) {\n                  return _this.handleMouseLeave();\n                }\n              },\n\n              'class': [_this.getRowClass(row, $index)] },\n            [_this._l(_this.columns, function (column, cellIndex) {\n              var _getSpan = _this.getSpan(row, column, $index, cellIndex),\n                  rowspan = _getSpan.rowspan,\n                  colspan = _getSpan.colspan;\n\n              if (!rowspan || !colspan) {\n                return '';\n              } else {\n                return h(\n                  'td',\n                  {\n                    style: _this.getCellStyle($index, cellIndex, row, column),\n                    'class': _this.getCellClass($index, cellIndex, row, column),\n                    attrs: { rowspan: rowspan,\n                      colspan: colspan\n                    },\n                    on: {\n                      'mouseenter': function mouseenter($event) {\n                        return _this.handleCellMouseEnter($event, row);\n                      },\n                      'mouseleave': _this.handleCellMouseLeave\n                    }\n                  },\n                  [column.renderCell.call(_this._renderProxy, h, {\n                    row: row,\n                    column: column,\n                    $index: $index,\n                    store: _this.store,\n                    _self: _this.context || _this.table.$vnode.context\n                  }, columnsHidden[cellIndex])]\n                );\n              }\n            })]\n          ), _this.store.isRowExpanded(row) ? h(\n            'tr',\n            null,\n            [h(\n              'td',\n              {\n                attrs: { colspan: _this.columns.length },\n                'class': 'el-table__expanded-cell' },\n              [_this.table.renderExpanded ? _this.table.renderExpanded(h, { row: row, $index: $index, store: _this.store }) : '']\n            )]\n          ) : ''];\n        }).concat(h(\n          'el-tooltip',\n          {\n            attrs: { effect: this.table.tooltipEffect, placement: 'top', content: this.tooltipContent },\n            ref: 'tooltip' },\n          []\n        ))]\n      )]\n    );\n  },\n\n\n  watch: {\n    'store.states.hoverRow': function storeStatesHoverRow(newVal, oldVal) {\n      if (!this.store.states.isComplex) return;\n      var el = this.$el;\n      if (!el) return;\n      var tr = el.querySelector('tbody').children;\n      var rows = [].filter.call(tr, function (row) {\n        return (0, _dom.hasClass)(row, 'el-table__row');\n      });\n      var oldRow = rows[oldVal];\n      var newRow = rows[newVal];\n      if (oldRow) {\n        (0, _dom.removeClass)(oldRow, 'hover-row');\n      }\n      if (newRow) {\n        (0, _dom.addClass)(newRow, 'hover-row');\n      }\n    },\n    'store.states.currentRow': function storeStatesCurrentRow(newVal, oldVal) {\n      if (!this.highlight) return;\n      var el = this.$el;\n      if (!el) return;\n      var data = this.store.states.data;\n      var tr = el.querySelector('tbody').children;\n      var rows = [].filter.call(tr, function (row) {\n        return (0, _dom.hasClass)(row, 'el-table__row');\n      });\n      var oldRow = rows[data.indexOf(oldVal)];\n      var newRow = rows[data.indexOf(newVal)];\n      if (oldRow) {\n        (0, _dom.removeClass)(oldRow, 'current-row');\n      } else {\n        [].forEach.call(rows, function (row) {\n          return (0, _dom.removeClass)(row, 'current-row');\n        });\n      }\n      if (newRow) {\n        (0, _dom.addClass)(newRow, 'current-row');\n      }\n    }\n  },\n\n  computed: {\n    table: function table() {\n      return this.$parent;\n    },\n    data: function data() {\n      return this.store.states.data;\n    },\n    columnsCount: function columnsCount() {\n      return this.store.states.columns.length;\n    },\n    leftFixedLeafCount: function leftFixedLeafCount() {\n      return this.store.states.fixedLeafColumnsLength;\n    },\n    rightFixedLeafCount: function rightFixedLeafCount() {\n      return this.store.states.rightFixedLeafColumnsLength;\n    },\n    leftFixedCount: function leftFixedCount() {\n      return this.store.states.fixedColumns.length;\n    },\n    rightFixedCount: function rightFixedCount() {\n      return this.store.states.rightFixedColumns.length;\n    },\n    columns: function columns() {\n      return this.store.states.columns;\n    }\n  },\n\n  data: function data() {\n    return {\n      tooltipContent: ''\n    };\n  },\n  created: function created() {\n    this.activateTooltip = (0, _debounce2.default)(50, function (tooltip) {\n      return tooltip.handleShowPopper();\n    });\n  },\n\n\n  methods: {\n    getKeyOfRow: function getKeyOfRow(row, index) {\n      var rowKey = this.table.rowKey;\n      if (rowKey) {\n        return (0, _util.getRowIdentity)(row, rowKey);\n      }\n      return index;\n    },\n    isColumnHidden: function isColumnHidden(index) {\n      if (this.fixed === true || this.fixed === 'left') {\n        return index >= this.leftFixedLeafCount;\n      } else if (this.fixed === 'right') {\n        return index < this.columnsCount - this.rightFixedLeafCount;\n      } else {\n        return index < this.leftFixedLeafCount || index >= this.columnsCount - this.rightFixedLeafCount;\n      }\n    },\n    getSpan: function getSpan(row, column, rowIndex, columnIndex) {\n      var rowspan = 1;\n      var colspan = 1;\n\n      var fn = this.table.spanMethod;\n      if (typeof fn === 'function') {\n        var result = fn({\n          row: row,\n          column: column,\n          rowIndex: rowIndex,\n          columnIndex: columnIndex\n        });\n\n        if (Array.isArray(result)) {\n          rowspan = result[0];\n          colspan = result[1];\n        } else if ((typeof result === 'undefined' ? 'undefined' : _typeof(result)) === 'object') {\n          rowspan = result.rowspan;\n          colspan = result.colspan;\n        }\n      }\n\n      return {\n        rowspan: rowspan,\n        colspan: colspan\n      };\n    },\n    getRowStyle: function getRowStyle(row, rowIndex) {\n      var rowStyle = this.table.rowStyle;\n      if (typeof rowStyle === 'function') {\n        return rowStyle.call(null, {\n          row: row,\n          rowIndex: rowIndex\n        });\n      }\n      return rowStyle;\n    },\n    getRowClass: function getRowClass(row, rowIndex) {\n      var classes = ['el-table__row'];\n      if (this.table.highlightCurrentRow && row === this.store.states.currentRow) {\n        classes.push('current-row');\n      }\n\n      if (this.stripe && rowIndex % 2 === 1) {\n        classes.push('el-table__row--striped');\n      }\n      var rowClassName = this.table.rowClassName;\n      if (typeof rowClassName === 'string') {\n        classes.push(rowClassName);\n      } else if (typeof rowClassName === 'function') {\n        classes.push(rowClassName.call(null, {\n          row: row,\n          rowIndex: rowIndex\n        }));\n      }\n\n      if (this.store.states.expandRows.indexOf(row) > -1) {\n        classes.push('expanded');\n      }\n\n      return classes.join(' ');\n    },\n    getCellStyle: function getCellStyle(rowIndex, columnIndex, row, column) {\n      var cellStyle = this.table.cellStyle;\n      if (typeof cellStyle === 'function') {\n        return cellStyle.call(null, {\n          rowIndex: rowIndex,\n          columnIndex: columnIndex,\n          row: row,\n          column: column\n        });\n      }\n      return cellStyle;\n    },\n    getCellClass: function getCellClass(rowIndex, columnIndex, row, column) {\n      var classes = [column.id, column.align, column.className];\n\n      if (this.isColumnHidden(columnIndex)) {\n        classes.push('is-hidden');\n      }\n\n      var cellClassName = this.table.cellClassName;\n      if (typeof cellClassName === 'string') {\n        classes.push(cellClassName);\n      } else if (typeof cellClassName === 'function') {\n        classes.push(cellClassName.call(null, {\n          rowIndex: rowIndex,\n          columnIndex: columnIndex,\n          row: row,\n          column: column\n        }));\n      }\n\n      return classes.join(' ');\n    },\n    handleCellMouseEnter: function handleCellMouseEnter(event, row) {\n      var table = this.table;\n      var cell = (0, _util.getCell)(event);\n\n      if (cell) {\n        var column = (0, _util.getColumnByCell)(table, cell);\n        var hoverState = table.hoverState = { cell: cell, column: column, row: row };\n        table.$emit('cell-mouse-enter', hoverState.row, hoverState.column, hoverState.cell, event);\n      }\n\n      // 鍒ゆ柇鏄惁text-overflow, 濡傛灉鏄氨鏄剧ずtooltip\n      var cellChild = event.target.querySelector('.cell');\n      if (!(0, _dom.hasClass)(cellChild, 'el-tooltip')) {\n        return;\n      }\n      // use range width instead of scrollWidth to determine whether the text is overflowing\n      // to address a potential FireFox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1074543#c3\n      var range = document.createRange();\n      range.setStart(cellChild, 0);\n      range.setEnd(cellChild, cellChild.childNodes.length);\n      var rangeWidth = range.getBoundingClientRect().width;\n      var padding = (parseInt((0, _dom.getStyle)(cellChild, 'paddingLeft'), 10) || 0) + (parseInt((0, _dom.getStyle)(cellChild, 'paddingRight'), 10) || 0);\n      if ((rangeWidth + padding > cellChild.offsetWidth || cellChild.scrollWidth > cellChild.offsetWidth) && this.$refs.tooltip) {\n        var tooltip = this.$refs.tooltip;\n        // TODO 浼氬紩璧锋暣涓� Table 鐨勯噸鏂版覆鏌擄紝闇�瑕佷紭鍖朶n        this.tooltipContent = cell.textContent || cell.innerText;\n        tooltip.referenceElm = cell;\n        tooltip.$refs.popper && (tooltip.$refs.popper.style.display = 'none');\n        tooltip.doDestroy();\n        tooltip.setExpectedState(true);\n        this.activateTooltip(tooltip);\n      }\n    },\n    handleCellMouseLeave: function handleCellMouseLeave(event) {\n      var tooltip = this.$refs.tooltip;\n      if (tooltip) {\n        tooltip.setExpectedState(false);\n        tooltip.handleClosePopper();\n      }\n      var cell = (0, _util.getCell)(event);\n      if (!cell) return;\n\n      var oldHoverState = this.table.hoverState || {};\n      this.table.$emit('cell-mouse-leave', oldHoverState.row, oldHoverState.column, oldHoverState.cell, event);\n    },\n    handleMouseEnter: function handleMouseEnter(index) {\n      this.store.commit('setHoverRow', index);\n    },\n    handleMouseLeave: function handleMouseLeave() {\n      this.store.commit('setHoverRow', null);\n    },\n    handleContextMenu: function handleContextMenu(event, row) {\n      this.handleEvent(event, row, 'contextmenu');\n    },\n    handleDoubleClick: function handleDoubleClick(event, row) {\n      this.handleEvent(event, row, 'dblclick');\n    },\n    handleClick: function handleClick(event, row) {\n      this.store.commit('setCurrentRow', row);\n      this.handleEvent(event, row, 'click');\n    },\n    handleEvent: function handleEvent(event, row, name) {\n      var table = this.table;\n      var cell = (0, _util.getCell)(event);\n      var column = void 0;\n      if (cell) {\n        column = (0, _util.getColumnByCell)(table, cell);\n        if (column) {\n          table.$emit('cell-' + name, row, column, cell, event);\n        }\n      }\n      table.$emit('row-' + name, row, event, column);\n    },\n    handleExpandClick: function handleExpandClick(row, e) {\n      e.stopPropagation();\n      this.store.toggleRowExpansion(row);\n    }\n  }\n};\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(2);\n\nvar _checkbox = __webpack_require__(14);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _tag = __webpack_require__(25);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _filterPanel = __webpack_require__(163);\n\nvar _filterPanel2 = _interopRequireDefault(_filterPanel);\n\nvar _layoutObserver = __webpack_require__(27);\n\nvar _layoutObserver2 = _interopRequireDefault(_layoutObserver);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getAllColumns = function getAllColumns(columns) {\n  var result = [];\n  columns.forEach(function (column) {\n    if (column.children) {\n      result.push(column);\n      result.push.apply(result, getAllColumns(column.children));\n    } else {\n      result.push(column);\n    }\n  });\n  return result;\n};\n\nvar convertToRows = function convertToRows(originColumns) {\n  var maxLevel = 1;\n  var traverse = function traverse(column, parent) {\n    if (parent) {\n      column.level = parent.level + 1;\n      if (maxLevel < column.level) {\n        maxLevel = column.level;\n      }\n    }\n    if (column.children) {\n      var colSpan = 0;\n      column.children.forEach(function (subColumn) {\n        traverse(subColumn, column);\n        colSpan += subColumn.colSpan;\n      });\n      column.colSpan = colSpan;\n    } else {\n      column.colSpan = 1;\n    }\n  };\n\n  originColumns.forEach(function (column) {\n    column.level = 1;\n    traverse(column);\n  });\n\n  var rows = [];\n  for (var i = 0; i < maxLevel; i++) {\n    rows.push([]);\n  }\n\n  var allColumns = getAllColumns(originColumns);\n\n  allColumns.forEach(function (column) {\n    if (!column.children) {\n      column.rowSpan = maxLevel - column.level + 1;\n    } else {\n      column.rowSpan = 1;\n    }\n    rows[column.level - 1].push(column);\n  });\n\n  return rows;\n};\n\nexports.default = {\n  name: 'ElTableHeader',\n\n  mixins: [_layoutObserver2.default],\n\n  render: function render(h) {\n    var _this = this;\n\n    var originColumns = this.store.states.originColumns;\n    var columnRows = convertToRows(originColumns, this.columns);\n    // 鏄惁鎷ユ湁澶氱骇琛ㄥご\n    var isGroup = columnRows.length > 1;\n    if (isGroup) this.$parent.isGroup = true;\n    return h(\n      'table',\n      {\n        'class': 'el-table__header',\n        attrs: { cellspacing: '0',\n          cellpadding: '0',\n          border: '0' }\n      },\n      [h(\n        'colgroup',\n        null,\n        [this._l(this.columns, function (column) {\n          return h(\n            'col',\n            {\n              attrs: { name: column.id }\n            },\n            []\n          );\n        }), this.hasGutter ? h(\n          'col',\n          {\n            attrs: { name: 'gutter' }\n          },\n          []\n        ) : '']\n      ), h(\n        'thead',\n        { 'class': [{ 'is-group': isGroup, 'has-gutter': this.hasGutter }] },\n        [this._l(columnRows, function (columns, rowIndex) {\n          return h(\n            'tr',\n            {\n              style: _this.getHeaderRowStyle(rowIndex),\n              'class': _this.getHeaderRowClass(rowIndex)\n            },\n            [_this._l(columns, function (column, cellIndex) {\n              return h(\n                'th',\n                {\n                  attrs: {\n                    colspan: column.colSpan,\n                    rowspan: column.rowSpan\n                  },\n                  on: {\n                    'mousemove': function mousemove($event) {\n                      return _this.handleMouseMove($event, column);\n                    },\n                    'mouseout': _this.handleMouseOut,\n                    'mousedown': function mousedown($event) {\n                      return _this.handleMouseDown($event, column);\n                    },\n                    'click': function click($event) {\n                      return _this.handleHeaderClick($event, column);\n                    },\n                    'contextmenu': function contextmenu($event) {\n                      return _this.handleHeaderContextMenu($event, column);\n                    }\n                  },\n\n                  style: _this.getHeaderCellStyle(rowIndex, cellIndex, columns, column),\n                  'class': _this.getHeaderCellClass(rowIndex, cellIndex, columns, column) },\n                [h(\n                  'div',\n                  { 'class': ['cell', column.filteredValue && column.filteredValue.length > 0 ? 'highlight' : '', column.labelClassName] },\n                  [column.renderHeader ? column.renderHeader.call(_this._renderProxy, h, { column: column, $index: cellIndex, store: _this.store, _self: _this.$parent.$vnode.context }) : column.label, column.sortable ? h(\n                    'span',\n                    { 'class': 'caret-wrapper', on: {\n                        'click': function click($event) {\n                          return _this.handleSortClick($event, column);\n                        }\n                      }\n                    },\n                    [h(\n                      'i',\n                      { 'class': 'sort-caret ascending', on: {\n                          'click': function click($event) {\n                            return _this.handleSortClick($event, column, 'ascending');\n                          }\n                        }\n                      },\n                      []\n                    ), h(\n                      'i',\n                      { 'class': 'sort-caret descending', on: {\n                          'click': function click($event) {\n                            return _this.handleSortClick($event, column, 'descending');\n                          }\n                        }\n                      },\n                      []\n                    )]\n                  ) : '', column.filters && column.filters.length || column.filterMethod ? h(\n                    'span',\n                    { 'class': 'el-table__column-filter-trigger', on: {\n                        'click': function click($event) {\n                          return _this.handleFilterClick($event, column);\n                        }\n                      }\n                    },\n                    [h(\n                      'i',\n                      { 'class': ['el-icon-arrow-down', column.filterOpened ? 'el-icon-arrow-up' : ''] },\n                      []\n                    )]\n                  ) : '']\n                )]\n              );\n            }), _this.hasGutter ? h(\n              'th',\n              { 'class': 'gutter' },\n              []\n            ) : '']\n          );\n        })]\n      )]\n    );\n  },\n\n\n  props: {\n    fixed: String,\n    store: {\n      required: true\n    },\n    border: Boolean,\n    defaultSort: {\n      type: Object,\n      default: function _default() {\n        return {\n          prop: '',\n          order: ''\n        };\n      }\n    }\n  },\n\n  components: {\n    ElCheckbox: _checkbox2.default,\n    ElTag: _tag2.default\n  },\n\n  computed: {\n    table: function table() {\n      return this.$parent;\n    },\n    isAllSelected: function isAllSelected() {\n      return this.store.states.isAllSelected;\n    },\n    columnsCount: function columnsCount() {\n      return this.store.states.columns.length;\n    },\n    leftFixedCount: function leftFixedCount() {\n      return this.store.states.fixedColumns.length;\n    },\n    rightFixedCount: function rightFixedCount() {\n      return this.store.states.rightFixedColumns.length;\n    },\n    leftFixedLeafCount: function leftFixedLeafCount() {\n      return this.store.states.fixedLeafColumnsLength;\n    },\n    rightFixedLeafCount: function rightFixedLeafCount() {\n      return this.store.states.rightFixedLeafColumnsLength;\n    },\n    columns: function columns() {\n      return this.store.states.columns;\n    },\n    hasGutter: function hasGutter() {\n      return !this.fixed && this.tableLayout.gutterWidth;\n    }\n  },\n\n  created: function created() {\n    this.filterPanels = {};\n  },\n  mounted: function mounted() {\n    var _defaultSort = this.defaultSort,\n        prop = _defaultSort.prop,\n        order = _defaultSort.order;\n\n    this.store.commit('sort', { prop: prop, order: order });\n  },\n  beforeDestroy: function beforeDestroy() {\n    var panels = this.filterPanels;\n    for (var prop in panels) {\n      if (panels.hasOwnProperty(prop) && panels[prop]) {\n        panels[prop].$destroy(true);\n      }\n    }\n  },\n\n\n  methods: {\n    isCellHidden: function isCellHidden(index, columns) {\n      var start = 0;\n      for (var i = 0; i < index; i++) {\n        start += columns[i].colSpan;\n      }\n      var after = start + columns[index].colSpan - 1;\n      if (this.fixed === true || this.fixed === 'left') {\n        return after >= this.leftFixedLeafCount;\n      } else if (this.fixed === 'right') {\n        return start < this.columnsCount - this.rightFixedLeafCount;\n      } else {\n        return after < this.leftFixedLeafCount || start >= this.columnsCount - this.rightFixedLeafCount;\n      }\n    },\n    getHeaderRowStyle: function getHeaderRowStyle(rowIndex) {\n      var headerRowStyle = this.table.headerRowStyle;\n      if (typeof headerRowStyle === 'function') {\n        return headerRowStyle.call(null, { rowIndex: rowIndex });\n      }\n      return headerRowStyle;\n    },\n    getHeaderRowClass: function getHeaderRowClass(rowIndex) {\n      var classes = [];\n\n      var headerRowClassName = this.table.headerRowClassName;\n      if (typeof headerRowClassName === 'string') {\n        classes.push(headerRowClassName);\n      } else if (typeof headerRowClassName === 'function') {\n        classes.push(headerRowClassName.call(null, { rowIndex: rowIndex }));\n      }\n\n      return classes.join(' ');\n    },\n    getHeaderCellStyle: function getHeaderCellStyle(rowIndex, columnIndex, row, column) {\n      var headerCellStyle = this.table.headerCellStyle;\n      if (typeof headerCellStyle === 'function') {\n        return headerCellStyle.call(null, {\n          rowIndex: rowIndex,\n          columnIndex: columnIndex,\n          row: row,\n          column: column\n        });\n      }\n      return headerCellStyle;\n    },\n    getHeaderCellClass: function getHeaderCellClass(rowIndex, columnIndex, row, column) {\n      var classes = [column.id, column.order, column.headerAlign, column.className, column.labelClassName];\n\n      if (rowIndex === 0 && this.isCellHidden(columnIndex, row)) {\n        classes.push('is-hidden');\n      }\n\n      if (!column.children) {\n        classes.push('is-leaf');\n      }\n\n      if (column.sortable) {\n        classes.push('is-sortable');\n      }\n\n      var headerCellClassName = this.table.headerCellClassName;\n      if (typeof headerCellClassName === 'string') {\n        classes.push(headerCellClassName);\n      } else if (typeof headerCellClassName === 'function') {\n        classes.push(headerCellClassName.call(null, {\n          rowIndex: rowIndex,\n          columnIndex: columnIndex,\n          row: row,\n          column: column\n        }));\n      }\n\n      return classes.join(' ');\n    },\n    toggleAllSelection: function toggleAllSelection() {\n      this.store.commit('toggleAllSelection');\n    },\n    handleFilterClick: function handleFilterClick(event, column) {\n      event.stopPropagation();\n      var target = event.target;\n      var cell = target.tagName === 'TH' ? target : target.parentNode;\n      cell = cell.querySelector('.el-table__column-filter-trigger') || cell;\n      var table = this.$parent;\n\n      var filterPanel = this.filterPanels[column.id];\n\n      if (filterPanel && column.filterOpened) {\n        filterPanel.showPopper = false;\n        return;\n      }\n\n      if (!filterPanel) {\n        filterPanel = new _vue2.default(_filterPanel2.default);\n        this.filterPanels[column.id] = filterPanel;\n        if (column.filterPlacement) {\n          filterPanel.placement = column.filterPlacement;\n        }\n        filterPanel.table = table;\n        filterPanel.cell = cell;\n        filterPanel.column = column;\n        !this.$isServer && filterPanel.$mount(document.createElement('div'));\n      }\n\n      setTimeout(function () {\n        filterPanel.showPopper = true;\n      }, 16);\n    },\n    handleHeaderClick: function handleHeaderClick(event, column) {\n      if (!column.filters && column.sortable) {\n        this.handleSortClick(event, column);\n      } else if (column.filterable && !column.sortable) {\n        this.handleFilterClick(event, column);\n      }\n\n      this.$parent.$emit('header-click', column, event);\n    },\n    handleHeaderContextMenu: function handleHeaderContextMenu(event, column) {\n      this.$parent.$emit('header-contextmenu', column, event);\n    },\n    handleMouseDown: function handleMouseDown(event, column) {\n      var _this2 = this;\n\n      if (this.$isServer) return;\n      if (column.children && column.children.length > 0) return;\n      /* istanbul ignore if */\n      if (this.draggingColumn && this.border) {\n        (function () {\n          _this2.dragging = true;\n\n          _this2.$parent.resizeProxyVisible = true;\n\n          var table = _this2.$parent;\n          var tableEl = table.$el;\n          var tableLeft = tableEl.getBoundingClientRect().left;\n          var columnEl = _this2.$el.querySelector('th.' + column.id);\n          var columnRect = columnEl.getBoundingClientRect();\n          var minLeft = columnRect.left - tableLeft + 30;\n\n          (0, _dom.addClass)(columnEl, 'noclick');\n\n          _this2.dragState = {\n            startMouseLeft: event.clientX,\n            startLeft: columnRect.right - tableLeft,\n            startColumnLeft: columnRect.left - tableLeft,\n            tableLeft: tableLeft\n          };\n\n          var resizeProxy = table.$refs.resizeProxy;\n          resizeProxy.style.left = _this2.dragState.startLeft + 'px';\n\n          document.onselectstart = function () {\n            return false;\n          };\n          document.ondragstart = function () {\n            return false;\n          };\n\n          var handleMouseMove = function handleMouseMove(event) {\n            var deltaLeft = event.clientX - _this2.dragState.startMouseLeft;\n            var proxyLeft = _this2.dragState.startLeft + deltaLeft;\n\n            resizeProxy.style.left = Math.max(minLeft, proxyLeft) + 'px';\n          };\n\n          var handleMouseUp = function handleMouseUp() {\n            if (_this2.dragging) {\n              var _dragState = _this2.dragState,\n                  startColumnLeft = _dragState.startColumnLeft,\n                  startLeft = _dragState.startLeft;\n\n              var finalLeft = parseInt(resizeProxy.style.left, 10);\n              var columnWidth = finalLeft - startColumnLeft;\n              column.width = column.realWidth = columnWidth;\n              table.$emit('header-dragend', column.width, startLeft - startColumnLeft, column, event);\n\n              _this2.store.scheduleLayout();\n\n              document.body.style.cursor = '';\n              _this2.dragging = false;\n              _this2.draggingColumn = null;\n              _this2.dragState = {};\n\n              table.resizeProxyVisible = false;\n            }\n\n            document.removeEventListener('mousemove', handleMouseMove);\n            document.removeEventListener('mouseup', handleMouseUp);\n            document.onselectstart = null;\n            document.ondragstart = null;\n\n            setTimeout(function () {\n              (0, _dom.removeClass)(columnEl, 'noclick');\n            }, 0);\n          };\n\n          document.addEventListener('mousemove', handleMouseMove);\n          document.addEventListener('mouseup', handleMouseUp);\n        })();\n      }\n    },\n    handleMouseMove: function handleMouseMove(event, column) {\n      if (column.children && column.children.length > 0) return;\n      var target = event.target;\n      while (target && target.tagName !== 'TH') {\n        target = target.parentNode;\n      }\n\n      if (!column || !column.resizable) return;\n\n      if (!this.dragging && this.border) {\n        var rect = target.getBoundingClientRect();\n\n        var bodyStyle = document.body.style;\n        if (rect.width > 12 && rect.right - event.pageX < 8) {\n          bodyStyle.cursor = 'col-resize';\n          if ((0, _dom.hasClass)(target, 'is-sortable')) {\n            target.style.cursor = 'col-resize';\n          }\n          this.draggingColumn = column;\n        } else if (!this.dragging) {\n          bodyStyle.cursor = '';\n          if ((0, _dom.hasClass)(target, 'is-sortable')) {\n            target.style.cursor = 'pointer';\n          }\n          this.draggingColumn = null;\n        }\n      }\n    },\n    handleMouseOut: function handleMouseOut() {\n      if (this.$isServer) return;\n      document.body.style.cursor = '';\n    },\n    toggleOrder: function toggleOrder(_ref) {\n      var order = _ref.order,\n          sortOrders = _ref.sortOrders;\n\n      if (order === '') return sortOrders[0];\n      var index = sortOrders.indexOf(order || null);\n      return sortOrders[index > sortOrders.length - 2 ? 0 : index + 1];\n    },\n    handleSortClick: function handleSortClick(event, column, givenOrder) {\n      event.stopPropagation();\n      var order = givenOrder || this.toggleOrder(column);\n\n      var target = event.target;\n      while (target && target.tagName !== 'TH') {\n        target = target.parentNode;\n      }\n\n      if (target && target.tagName === 'TH') {\n        if ((0, _dom.hasClass)(target, 'noclick')) {\n          (0, _dom.removeClass)(target, 'noclick');\n          return;\n        }\n      }\n\n      if (!column.sortable) return;\n\n      var states = this.store.states;\n      var sortProp = states.sortProp;\n      var sortOrder = void 0;\n      var sortingColumn = states.sortingColumn;\n\n      if (sortingColumn !== column || sortingColumn === column && sortingColumn.order === null) {\n        if (sortingColumn) {\n          sortingColumn.order = null;\n        }\n        states.sortingColumn = column;\n        sortProp = column.property;\n      }\n\n      if (!order) {\n        sortOrder = column.order = null;\n        states.sortingColumn = null;\n        sortProp = null;\n      } else {\n        sortOrder = column.order = order;\n      }\n\n      states.sortProp = sortProp;\n      states.sortOrder = sortOrder;\n\n      this.store.commit('changeSortCondition');\n    }\n  },\n\n  data: function data() {\n    return {\n      draggingColumn: null,\n      dragging: false,\n      dragState: {}\n    };\n  }\n};\n\n/***/ }),\n/* 163 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue__ = __webpack_require__(164);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_784f4ebc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_filter_panel_vue__ = __webpack_require__(166);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_filter_panel_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_784f4ebc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_filter_panel_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _popup = __webpack_require__(12);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _dropdown = __webpack_require__(165);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nvar _checkbox = __webpack_require__(14);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _checkboxGroup = __webpack_require__(37);\n\nvar _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElTableFilterPanel',\n\n  mixins: [_vuePopper2.default, _locale2.default],\n\n  directives: {\n    Clickoutside: _clickoutside2.default\n  },\n\n  components: {\n    ElCheckbox: _checkbox2.default,\n    ElCheckboxGroup: _checkboxGroup2.default\n  },\n\n  props: {\n    placement: {\n      type: String,\n      default: 'bottom-end'\n    }\n  },\n\n  customRender: function customRender(h) {\n    return h(\n      'div',\n      { 'class': 'el-table-filter' },\n      [h(\n        'div',\n        { 'class': 'el-table-filter__content' },\n        []\n      ), h(\n        'div',\n        { 'class': 'el-table-filter__bottom' },\n        [h(\n          'button',\n          {\n            on: {\n              'click': this.handleConfirm\n            }\n          },\n          [this.t('el.table.confirmFilter')]\n        ), h(\n          'button',\n          {\n            on: {\n              'click': this.handleReset\n            }\n          },\n          [this.t('el.table.resetFilter')]\n        )]\n      )]\n    );\n  },\n\n\n  methods: {\n    isActive: function isActive(filter) {\n      return filter.value === this.filterValue;\n    },\n    handleOutsideClick: function handleOutsideClick() {\n      var _this = this;\n\n      setTimeout(function () {\n        _this.showPopper = false;\n      }, 16);\n    },\n    handleConfirm: function handleConfirm() {\n      this.confirmFilter(this.filteredValue);\n      this.handleOutsideClick();\n    },\n    handleReset: function handleReset() {\n      this.filteredValue = [];\n      this.confirmFilter(this.filteredValue);\n      this.handleOutsideClick();\n    },\n    handleSelect: function handleSelect(filterValue) {\n      this.filterValue = filterValue;\n\n      if (typeof filterValue !== 'undefined' && filterValue !== null) {\n        this.confirmFilter(this.filteredValue);\n      } else {\n        this.confirmFilter([]);\n      }\n\n      this.handleOutsideClick();\n    },\n    confirmFilter: function confirmFilter(filteredValue) {\n      this.table.store.commit('filterChange', {\n        column: this.column,\n        values: filteredValue\n      });\n      this.table.store.updateAllSelected();\n    }\n  },\n\n  data: function data() {\n    return {\n      table: null,\n      cell: null,\n      column: null\n    };\n  },\n\n\n  computed: {\n    filters: function filters() {\n      return this.column && this.column.filters;\n    },\n\n\n    filterValue: {\n      get: function get() {\n        return (this.column.filteredValue || [])[0];\n      },\n      set: function set(value) {\n        if (this.filteredValue) {\n          if (typeof value !== 'undefined' && value !== null) {\n            this.filteredValue.splice(0, 1, value);\n          } else {\n            this.filteredValue.splice(0, 1);\n          }\n        }\n      }\n    },\n\n    filteredValue: {\n      get: function get() {\n        if (this.column) {\n          return this.column.filteredValue || [];\n        }\n        return [];\n      },\n      set: function set(value) {\n        if (this.column) {\n          this.column.filteredValue = value;\n        }\n      }\n    },\n\n    multiple: function multiple() {\n      if (this.column) {\n        return this.column.filterMultiple;\n      }\n      return true;\n    }\n  },\n\n  mounted: function mounted() {\n    var _this2 = this;\n\n    this.popperElm = this.$el;\n    this.referenceElm = this.cell;\n    this.table.bodyWrapper.addEventListener('scroll', function () {\n      _this2.updatePopper();\n    });\n\n    this.$watch('showPopper', function (value) {\n      if (_this2.column) _this2.column.filterOpened = value;\n      if (value) {\n        _dropdown2.default.open(_this2);\n      } else {\n        _dropdown2.default.close(_this2);\n      }\n    });\n  },\n\n  watch: {\n    showPopper: function showPopper(val) {\n      if (val === true && parseInt(this.popperJS._popper.style.zIndex, 10) < _popup.PopupManager.zIndex) {\n        this.popperJS._popper.style.zIndex = _popup.PopupManager.nextZIndex();\n      }\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar dropdowns = [];\n\n!_vue2.default.prototype.$isServer && document.addEventListener('click', function (event) {\n  dropdowns.forEach(function (dropdown) {\n    var target = event.target;\n    if (!dropdown || !dropdown.$el) return;\n    if (target === dropdown.$el || dropdown.$el.contains(target)) {\n      return;\n    }\n    dropdown.handleOutsideClick && dropdown.handleOutsideClick(event);\n  });\n});\n\nexports.default = {\n  open: function open(instance) {\n    if (instance) {\n      dropdowns.push(instance);\n    }\n  },\n  close: function close(instance) {\n    var index = dropdowns.indexOf(instance);\n    if (index !== -1) {\n      dropdowns.splice(instance, 1);\n    }\n  }\n};\n\n/***/ }),\n/* 166 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[(_vm.multiple)?_c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleOutsideClick),expression:\"handleOutsideClick\"},{name:\"show\",rawName:\"v-show\",value:(_vm.showPopper),expression:\"showPopper\"}],staticClass:\"el-table-filter\"},[_c('div',{staticClass:\"el-table-filter__content\"},[_c('el-scrollbar',{attrs:{\"wrap-class\":\"el-table-filter__wrap\"}},[_c('el-checkbox-group',{staticClass:\"el-table-filter__checkbox-group\",model:{value:(_vm.filteredValue),callback:function ($$v) {_vm.filteredValue=$$v},expression:\"filteredValue\"}},_vm._l((_vm.filters),function(filter){return _c('el-checkbox',{key:filter.value,attrs:{\"label\":filter.value}},[_vm._v(_vm._s(filter.text))])}))],1)],1),_c('div',{staticClass:\"el-table-filter__bottom\"},[_c('button',{class:{ 'is-disabled': _vm.filteredValue.length === 0 },attrs:{\"disabled\":_vm.filteredValue.length === 0},on:{\"click\":_vm.handleConfirm}},[_vm._v(_vm._s(_vm.t('el.table.confirmFilter')))]),_c('button',{on:{\"click\":_vm.handleReset}},[_vm._v(_vm._s(_vm.t('el.table.resetFilter')))])])]):_c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleOutsideClick),expression:\"handleOutsideClick\"},{name:\"show\",rawName:\"v-show\",value:(_vm.showPopper),expression:\"showPopper\"}],staticClass:\"el-table-filter\"},[_c('ul',{staticClass:\"el-table-filter__list\"},[_c('li',{staticClass:\"el-table-filter__list-item\",class:{ 'is-active': _vm.filterValue === undefined || _vm.filterValue === null },on:{\"click\":function($event){_vm.handleSelect(null)}}},[_vm._v(_vm._s(_vm.t('el.table.clearFilter')))]),_vm._l((_vm.filters),function(filter){return _c('li',{key:filter.value,staticClass:\"el-table-filter__list-item\",class:{ 'is-active': _vm.isActive(filter) },attrs:{\"label\":filter.value},on:{\"click\":function($event){_vm.handleSelect(filter.value)}}},[_vm._v(_vm._s(filter.text))])})],2)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _layoutObserver = __webpack_require__(27);\n\nvar _layoutObserver2 = _interopRequireDefault(_layoutObserver);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElTableFooter',\n\n  mixins: [_layoutObserver2.default],\n\n  render: function render(h) {\n    var _this = this;\n\n    var sums = [];\n    if (this.summaryMethod) {\n      sums = this.summaryMethod({ columns: this.columns, data: this.store.states.data });\n    } else {\n      this.columns.forEach(function (column, index) {\n        if (index === 0) {\n          sums[index] = _this.sumText;\n          return;\n        }\n        var values = _this.store.states.data.map(function (item) {\n          return Number(item[column.property]);\n        });\n        var precisions = [];\n        var notNumber = true;\n        values.forEach(function (value) {\n          if (!isNaN(value)) {\n            notNumber = false;\n            var decimal = ('' + value).split('.')[1];\n            precisions.push(decimal ? decimal.length : 0);\n          }\n        });\n        var precision = Math.max.apply(null, precisions);\n        if (!notNumber) {\n          sums[index] = values.reduce(function (prev, curr) {\n            var value = Number(curr);\n            if (!isNaN(value)) {\n              return parseFloat((prev + curr).toFixed(Math.min(precision, 20)));\n            } else {\n              return prev;\n            }\n          }, 0);\n        } else {\n          sums[index] = '';\n        }\n      });\n    }\n\n    return h(\n      'table',\n      {\n        'class': 'el-table__footer',\n        attrs: { cellspacing: '0',\n          cellpadding: '0',\n          border: '0' }\n      },\n      [h(\n        'colgroup',\n        null,\n        [this._l(this.columns, function (column) {\n          return h(\n            'col',\n            {\n              attrs: { name: column.id }\n            },\n            []\n          );\n        }), this.hasGutter ? h(\n          'col',\n          {\n            attrs: { name: 'gutter' }\n          },\n          []\n        ) : '']\n      ), h(\n        'tbody',\n        { 'class': [{ 'has-gutter': this.hasGutter }] },\n        [h(\n          'tr',\n          null,\n          [this._l(this.columns, function (column, cellIndex) {\n            return h(\n              'td',\n              {\n                attrs: {\n                  colspan: column.colSpan,\n                  rowspan: column.rowSpan\n                },\n                'class': [column.id, column.headerAlign, column.className || '', _this.isCellHidden(cellIndex, _this.columns) ? 'is-hidden' : '', !column.children ? 'is-leaf' : '', column.labelClassName] },\n              [h(\n                'div',\n                { 'class': ['cell', column.labelClassName] },\n                [sums[cellIndex]]\n              )]\n            );\n          }), this.hasGutter ? h(\n            'th',\n            { 'class': 'gutter' },\n            []\n          ) : '']\n        )]\n      )]\n    );\n  },\n\n\n  props: {\n    fixed: String,\n    store: {\n      required: true\n    },\n    summaryMethod: Function,\n    sumText: String,\n    border: Boolean,\n    defaultSort: {\n      type: Object,\n      default: function _default() {\n        return {\n          prop: '',\n          order: ''\n        };\n      }\n    }\n  },\n\n  computed: {\n    table: function table() {\n      return this.$parent;\n    },\n    isAllSelected: function isAllSelected() {\n      return this.store.states.isAllSelected;\n    },\n    columnsCount: function columnsCount() {\n      return this.store.states.columns.length;\n    },\n    leftFixedCount: function leftFixedCount() {\n      return this.store.states.fixedColumns.length;\n    },\n    rightFixedCount: function rightFixedCount() {\n      return this.store.states.rightFixedColumns.length;\n    },\n    columns: function columns() {\n      return this.store.states.columns;\n    },\n    hasGutter: function hasGutter() {\n      return !this.fixed && this.tableLayout.gutterWidth;\n    }\n  },\n\n  methods: {\n    isCellHidden: function isCellHidden(index, columns) {\n      if (this.fixed === true || this.fixed === 'left') {\n        return index >= this.leftFixedCount;\n      } else if (this.fixed === 'right') {\n        var before = 0;\n        for (var i = 0; i < index; i++) {\n          before += columns[i].colSpan;\n        }\n        return before < this.columnsCount - this.rightFixedCount;\n      } else {\n        return index < this.leftFixedCount || index >= this.columnsCount - this.rightFixedCount;\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 168 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-table\",class:[{\n    'el-table--fit': _vm.fit,\n    'el-table--striped': _vm.stripe,\n    'el-table--border': _vm.border || _vm.isGroup,\n    'el-table--hidden': _vm.isHidden,\n    'el-table--group': _vm.isGroup,\n    'el-table--fluid-height': _vm.maxHeight,\n    'el-table--scrollable-x': _vm.layout.scrollX,\n    'el-table--scrollable-y': _vm.layout.scrollY,\n    'el-table--enable-row-hover': !_vm.store.states.isComplex,\n    'el-table--enable-row-transition': (_vm.store.states.data || []).length !== 0 && (_vm.store.states.data || []).length < 100\n  }, _vm.tableSize ? (\"el-table--\" + _vm.tableSize) : ''],on:{\"mouseleave\":function($event){_vm.handleMouseLeave($event)}}},[_c('div',{ref:\"hiddenColumns\",staticClass:\"hidden-columns\"},[_vm._t(\"default\")],2),(_vm.showHeader)?_c('div',{directives:[{name:\"mousewheel\",rawName:\"v-mousewheel\",value:(_vm.handleHeaderFooterMousewheel),expression:\"handleHeaderFooterMousewheel\"}],ref:\"headerWrapper\",staticClass:\"el-table__header-wrapper\"},[_c('table-header',{ref:\"tableHeader\",style:({\n        width: _vm.layout.bodyWidth ? _vm.layout.bodyWidth + 'px' : ''\n      }),attrs:{\"store\":_vm.store,\"border\":_vm.border,\"default-sort\":_vm.defaultSort}})],1):_vm._e(),_c('div',{ref:\"bodyWrapper\",staticClass:\"el-table__body-wrapper\",class:[_vm.layout.scrollX ? (\"is-scrolling-\" + _vm.scrollPosition) : 'is-scrolling-none'],style:([_vm.bodyHeight])},[_c('table-body',{style:({\n         width: _vm.bodyWidth\n      }),attrs:{\"context\":_vm.context,\"store\":_vm.store,\"stripe\":_vm.stripe,\"row-class-name\":_vm.rowClassName,\"row-style\":_vm.rowStyle,\"highlight\":_vm.highlightCurrentRow}}),(!_vm.data || _vm.data.length === 0)?_c('div',{ref:\"emptyBlock\",staticClass:\"el-table__empty-block\",style:({\n        width: _vm.bodyWidth\n      })},[_c('span',{staticClass:\"el-table__empty-text\"},[_vm._t(\"empty\",[_vm._v(_vm._s(_vm.emptyText || _vm.t('el.table.emptyText')))])],2)]):_vm._e(),(_vm.$slots.append)?_c('div',{ref:\"appendWrapper\",staticClass:\"el-table__append-wrapper\"},[_vm._t(\"append\")],2):_vm._e()],1),(_vm.showSummary)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.data && _vm.data.length > 0),expression:\"data && data.length > 0\"},{name:\"mousewheel\",rawName:\"v-mousewheel\",value:(_vm.handleHeaderFooterMousewheel),expression:\"handleHeaderFooterMousewheel\"}],ref:\"footerWrapper\",staticClass:\"el-table__footer-wrapper\"},[_c('table-footer',{style:({\n        width: _vm.layout.bodyWidth ? _vm.layout.bodyWidth + 'px' : ''\n      }),attrs:{\"store\":_vm.store,\"border\":_vm.border,\"sum-text\":_vm.sumText || _vm.t('el.table.sumText'),\"summary-method\":_vm.summaryMethod,\"default-sort\":_vm.defaultSort}})],1):_vm._e(),(_vm.fixedColumns.length > 0)?_c('div',{directives:[{name:\"mousewheel\",rawName:\"v-mousewheel\",value:(_vm.handleFixedMousewheel),expression:\"handleFixedMousewheel\"}],ref:\"fixedWrapper\",staticClass:\"el-table__fixed\",style:([{\n      width: _vm.layout.fixedWidth ? _vm.layout.fixedWidth + 'px' : ''\n    },\n    _vm.fixedHeight])},[(_vm.showHeader)?_c('div',{ref:\"fixedHeaderWrapper\",staticClass:\"el-table__fixed-header-wrapper\"},[_c('table-header',{ref:\"fixedTableHeader\",style:({\n          width: _vm.bodyWidth\n        }),attrs:{\"fixed\":\"left\",\"border\":_vm.border,\"store\":_vm.store}})],1):_vm._e(),_c('div',{ref:\"fixedBodyWrapper\",staticClass:\"el-table__fixed-body-wrapper\",style:([{\n        top: _vm.layout.headerHeight + 'px'\n      },\n      _vm.fixedBodyHeight])},[_c('table-body',{style:({\n          width: _vm.bodyWidth\n        }),attrs:{\"fixed\":\"left\",\"store\":_vm.store,\"stripe\":_vm.stripe,\"highlight\":_vm.highlightCurrentRow,\"row-class-name\":_vm.rowClassName,\"row-style\":_vm.rowStyle}}),(_vm.$slots.append)?_c('div',{staticClass:\"el-table__append-gutter\",style:({\n          height: _vm.layout.appendHeight + 'px'\n        })}):_vm._e()],1),(_vm.showSummary)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.data && _vm.data.length > 0),expression:\"data && data.length > 0\"}],ref:\"fixedFooterWrapper\",staticClass:\"el-table__fixed-footer-wrapper\"},[_c('table-footer',{style:({\n          width: _vm.bodyWidth\n        }),attrs:{\"fixed\":\"left\",\"border\":_vm.border,\"sum-text\":_vm.sumText || _vm.t('el.table.sumText'),\"summary-method\":_vm.summaryMethod,\"store\":_vm.store}})],1):_vm._e()]):_vm._e(),(_vm.rightFixedColumns.length > 0)?_c('div',{directives:[{name:\"mousewheel\",rawName:\"v-mousewheel\",value:(_vm.handleFixedMousewheel),expression:\"handleFixedMousewheel\"}],ref:\"rightFixedWrapper\",staticClass:\"el-table__fixed-right\",style:([{\n      width: _vm.layout.rightFixedWidth ? _vm.layout.rightFixedWidth + 'px' : '',\n      right: _vm.layout.scrollY ? (_vm.border ? _vm.layout.gutterWidth : (_vm.layout.gutterWidth || 0)) + 'px' : ''\n    },\n    _vm.fixedHeight])},[(_vm.showHeader)?_c('div',{ref:\"rightFixedHeaderWrapper\",staticClass:\"el-table__fixed-header-wrapper\"},[_c('table-header',{ref:\"rightFixedTableHeader\",style:({\n          width: _vm.bodyWidth\n        }),attrs:{\"fixed\":\"right\",\"border\":_vm.border,\"store\":_vm.store}})],1):_vm._e(),_c('div',{ref:\"rightFixedBodyWrapper\",staticClass:\"el-table__fixed-body-wrapper\",style:([{\n        top: _vm.layout.headerHeight + 'px'\n      },\n      _vm.fixedBodyHeight])},[_c('table-body',{style:({\n          width: _vm.bodyWidth\n        }),attrs:{\"fixed\":\"right\",\"store\":_vm.store,\"stripe\":_vm.stripe,\"row-class-name\":_vm.rowClassName,\"row-style\":_vm.rowStyle,\"highlight\":_vm.highlightCurrentRow}})],1),(_vm.showSummary)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.data && _vm.data.length > 0),expression:\"data && data.length > 0\"}],ref:\"rightFixedFooterWrapper\",staticClass:\"el-table__fixed-footer-wrapper\"},[_c('table-footer',{style:({\n          width: _vm.bodyWidth\n        }),attrs:{\"fixed\":\"right\",\"border\":_vm.border,\"sum-text\":_vm.sumText || _vm.t('el.table.sumText'),\"summary-method\":_vm.summaryMethod,\"store\":_vm.store}})],1):_vm._e()]):_vm._e(),(_vm.rightFixedColumns.length > 0)?_c('div',{ref:\"rightFixedPatch\",staticClass:\"el-table__fixed-right-patch\",style:({\n      width: _vm.layout.scrollY ? _vm.layout.gutterWidth + 'px' : '0',\n      height: _vm.layout.headerHeight + 'px'\n    })}):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.resizeProxyVisible),expression:\"resizeProxyVisible\"}],ref:\"resizeProxy\",staticClass:\"el-table__column-resize-proxy\"})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tableColumn = __webpack_require__(170);\n\nvar _tableColumn2 = _interopRequireDefault(_tableColumn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_tableColumn2.default.install = function (Vue) {\n  Vue.component(_tableColumn2.default.name, _tableColumn2.default);\n};\n\nexports.default = _tableColumn2.default;\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkbox = __webpack_require__(14);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _tag = __webpack_require__(25);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar columnIdSeed = 1;\n\nvar defaults = {\n  default: {\n    order: ''\n  },\n  selection: {\n    width: 48,\n    minWidth: 48,\n    realWidth: 48,\n    order: '',\n    className: 'el-table-column--selection'\n  },\n  expand: {\n    width: 48,\n    minWidth: 48,\n    realWidth: 48,\n    order: ''\n  },\n  index: {\n    width: 48,\n    minWidth: 48,\n    realWidth: 48,\n    order: ''\n  }\n};\n\nvar forced = {\n  selection: {\n    renderHeader: function renderHeader(h, _ref) {\n      var store = _ref.store;\n\n      return h(\n        'el-checkbox',\n        {\n          attrs: {\n            disabled: store.states.data && store.states.data.length === 0,\n            indeterminate: store.states.selection.length > 0 && !this.isAllSelected,\n\n            value: this.isAllSelected },\n          nativeOn: {\n            'click': this.toggleAllSelection\n          }\n        },\n        []\n      );\n    },\n    renderCell: function renderCell(h, _ref2) {\n      var row = _ref2.row,\n          column = _ref2.column,\n          store = _ref2.store,\n          $index = _ref2.$index;\n\n      return h(\n        'el-checkbox',\n        {\n          nativeOn: {\n            'click': function click(event) {\n              return event.stopPropagation();\n            }\n          },\n          attrs: {\n            value: store.isSelected(row),\n            disabled: column.selectable ? !column.selectable.call(null, row, $index) : false\n          },\n          on: {\n            'input': function input() {\n              store.commit('rowSelectedChanged', row);\n            }\n          }\n        },\n        []\n      );\n    },\n    sortable: false,\n    resizable: false\n  },\n  index: {\n    renderHeader: function renderHeader(h, _ref3) {\n      var column = _ref3.column;\n\n      return column.label || '#';\n    },\n    renderCell: function renderCell(h, _ref4) {\n      var $index = _ref4.$index,\n          column = _ref4.column;\n\n      var i = $index + 1;\n      var index = column.index;\n\n      if (typeof index === 'number') {\n        i = $index + index;\n      } else if (typeof index === 'function') {\n        i = index($index);\n      }\n\n      return h(\n        'div',\n        null,\n        [i]\n      );\n    },\n    sortable: false\n  },\n  expand: {\n    renderHeader: function renderHeader(h, _ref5) {\n      var column = _ref5.column;\n\n      return column.label || '';\n    },\n    renderCell: function renderCell(h, _ref6, proxy) {\n      var row = _ref6.row,\n          store = _ref6.store;\n\n      var expanded = store.states.expandRows.indexOf(row) > -1;\n      return h(\n        'div',\n        { 'class': 'el-table__expand-icon ' + (expanded ? 'el-table__expand-icon--expanded' : ''),\n          on: {\n            'click': function click(e) {\n              return proxy.handleExpandClick(row, e);\n            }\n          }\n        },\n        [h(\n          'i',\n          { 'class': 'el-icon el-icon-arrow-right' },\n          []\n        )]\n      );\n    },\n    sortable: false,\n    resizable: false,\n    className: 'el-table__expand-column'\n  }\n};\n\nvar getDefaultColumn = function getDefaultColumn(type, options) {\n  var column = {};\n\n  (0, _merge2.default)(column, defaults[type || 'default']);\n\n  for (var name in options) {\n    if (options.hasOwnProperty(name)) {\n      var value = options[name];\n      if (typeof value !== 'undefined') {\n        column[name] = value;\n      }\n    }\n  }\n\n  if (!column.minWidth) {\n    column.minWidth = 80;\n  }\n\n  column.realWidth = column.width === undefined ? column.minWidth : column.width;\n\n  return column;\n};\n\nvar DEFAULT_RENDER_CELL = function DEFAULT_RENDER_CELL(h, _ref7) {\n  var row = _ref7.row,\n      column = _ref7.column,\n      $index = _ref7.$index;\n\n  var property = column.property;\n  var value = property && (0, _util.getPropByPath)(row, property).v;\n  if (column && column.formatter) {\n    return column.formatter(row, column, value, $index);\n  }\n  return value;\n};\n\nvar parseWidth = function parseWidth(width) {\n  if (width !== undefined) {\n    width = parseInt(width, 10);\n    if (isNaN(width)) {\n      width = null;\n    }\n  }\n  return width;\n};\n\nvar parseMinWidth = function parseMinWidth(minWidth) {\n  if (minWidth !== undefined) {\n    minWidth = parseInt(minWidth, 10);\n    if (isNaN(minWidth)) {\n      minWidth = 80;\n    }\n  }\n  return minWidth;\n};\n\nexports.default = {\n  name: 'ElTableColumn',\n\n  props: {\n    type: {\n      type: String,\n      default: 'default'\n    },\n    label: String,\n    className: String,\n    labelClassName: String,\n    property: String,\n    prop: String,\n    width: {},\n    minWidth: {},\n    renderHeader: Function,\n    sortable: {\n      type: [String, Boolean],\n      default: false\n    },\n    sortMethod: Function,\n    sortBy: [String, Function, Array],\n    resizable: {\n      type: Boolean,\n      default: true\n    },\n    context: {},\n    columnKey: String,\n    align: String,\n    headerAlign: String,\n    showTooltipWhenOverflow: Boolean,\n    showOverflowTooltip: Boolean,\n    fixed: [Boolean, String],\n    formatter: Function,\n    selectable: Function,\n    reserveSelection: Boolean,\n    filterMethod: Function,\n    filteredValue: Array,\n    filters: Array,\n    filterPlacement: String,\n    filterMultiple: {\n      type: Boolean,\n      default: true\n    },\n    index: [Number, Function],\n    sortOrders: {\n      type: Array,\n      default: function _default() {\n        return ['ascending', 'descending', null];\n      },\n      validator: function validator(val) {\n        return val.every(function (order) {\n          return ['ascending', 'descending', null].indexOf(order) > -1;\n        });\n      }\n    }\n  },\n\n  data: function data() {\n    return {\n      isSubColumn: false,\n      columns: []\n    };\n  },\n  beforeCreate: function beforeCreate() {\n    this.row = {};\n    this.column = {};\n    this.$index = 0;\n  },\n\n\n  components: {\n    ElCheckbox: _checkbox2.default,\n    ElTag: _tag2.default\n  },\n\n  computed: {\n    owner: function owner() {\n      var parent = this.$parent;\n      while (parent && !parent.tableId) {\n        parent = parent.$parent;\n      }\n      return parent;\n    },\n    columnOrTableParent: function columnOrTableParent() {\n      var parent = this.$parent;\n      while (parent && !parent.tableId && !parent.columnId) {\n        parent = parent.$parent;\n      }\n      return parent;\n    }\n  },\n\n  created: function created() {\n    var _this = this;\n\n    this.customRender = this.$options.render;\n    this.$options.render = function (h) {\n      return h('div', _this.$slots.default);\n    };\n\n    var parent = this.columnOrTableParent;\n    var owner = this.owner;\n    this.isSubColumn = owner !== parent;\n    this.columnId = (parent.tableId || parent.columnId) + '_column_' + columnIdSeed++;\n\n    var type = this.type;\n\n    var width = parseWidth(this.width);\n    var minWidth = parseMinWidth(this.minWidth);\n\n    var isColumnGroup = false;\n\n    var column = getDefaultColumn(type, {\n      id: this.columnId,\n      columnKey: this.columnKey,\n      label: this.label,\n      className: this.className,\n      labelClassName: this.labelClassName,\n      property: this.prop || this.property,\n      type: type,\n      renderCell: null,\n      renderHeader: this.renderHeader,\n      minWidth: minWidth,\n      width: width,\n      isColumnGroup: isColumnGroup,\n      context: this.context,\n      align: this.align ? 'is-' + this.align : null,\n      headerAlign: this.headerAlign ? 'is-' + this.headerAlign : this.align ? 'is-' + this.align : null,\n      sortable: this.sortable === '' ? true : this.sortable,\n      sortMethod: this.sortMethod,\n      sortBy: this.sortBy,\n      resizable: this.resizable,\n      showOverflowTooltip: this.showOverflowTooltip || this.showTooltipWhenOverflow,\n      formatter: this.formatter,\n      selectable: this.selectable,\n      reserveSelection: this.reserveSelection,\n      fixed: this.fixed === '' ? true : this.fixed,\n      filterMethod: this.filterMethod,\n      filters: this.filters,\n      filterable: this.filters && this.filters.length || this.filterMethod,\n      filterMultiple: this.filterMultiple,\n      filterOpened: false,\n      filteredValue: this.filteredValue || [],\n      filterPlacement: this.filterPlacement || '',\n      index: this.index,\n      sortOrders: this.sortOrders\n    });\n\n    var source = forced[type] || {};\n    for (var prop in source) {\n      if (source.hasOwnProperty(prop)) {\n        var value = source[prop];\n        if (value !== undefined) {\n          column[prop] = prop === 'className' ? column[prop] + ' ' + value : value;\n        }\n      }\n    }\n\n    this.columnConfig = column;\n\n    var renderCell = column.renderCell;\n    var _self = this;\n\n    if (type === 'expand') {\n      owner.renderExpanded = function (h, data) {\n        return _self.$scopedSlots.default ? _self.$scopedSlots.default(data) : _self.$slots.default;\n      };\n\n      column.renderCell = function (h, data) {\n        return h(\n          'div',\n          { 'class': 'cell' },\n          [renderCell(h, data, this._renderProxy)]\n        );\n      };\n\n      return;\n    }\n\n    column.renderCell = function (h, data) {\n      if (_self.$scopedSlots.default) {\n        renderCell = function renderCell() {\n          return _self.$scopedSlots.default(data);\n        };\n      }\n\n      if (!renderCell) {\n        renderCell = DEFAULT_RENDER_CELL;\n      }\n\n      return _self.showOverflowTooltip || _self.showTooltipWhenOverflow ? h(\n        'div',\n        { 'class': 'cell el-tooltip', style: { width: (data.column.realWidth || data.column.width) - 1 + 'px' } },\n        [renderCell(h, data)]\n      ) : h(\n        'div',\n        { 'class': 'cell' },\n        [renderCell(h, data)]\n      );\n    };\n  },\n  destroyed: function destroyed() {\n    if (!this.$parent) return;\n    var parent = this.$parent;\n    this.owner.store.commit('removeColumn', this.columnConfig, this.isSubColumn ? parent.columnConfig : null);\n  },\n\n\n  watch: {\n    label: function label(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.label = newVal;\n      }\n    },\n    prop: function prop(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.property = newVal;\n      }\n    },\n    property: function property(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.property = newVal;\n      }\n    },\n    filters: function filters(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.filters = newVal;\n      }\n    },\n    filterMultiple: function filterMultiple(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.filterMultiple = newVal;\n      }\n    },\n    align: function align(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.align = newVal ? 'is-' + newVal : null;\n\n        if (!this.headerAlign) {\n          this.columnConfig.headerAlign = newVal ? 'is-' + newVal : null;\n        }\n      }\n    },\n    headerAlign: function headerAlign(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.headerAlign = 'is-' + (newVal ? newVal : this.align);\n      }\n    },\n    width: function width(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.width = parseWidth(newVal);\n        this.owner.store.scheduleLayout();\n      }\n    },\n    minWidth: function minWidth(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.minWidth = parseMinWidth(newVal);\n        this.owner.store.scheduleLayout();\n      }\n    },\n    fixed: function fixed(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.fixed = newVal;\n        this.owner.store.scheduleLayout(true);\n      }\n    },\n    sortable: function sortable(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.sortable = newVal;\n      }\n    },\n    index: function index(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.index = newVal;\n      }\n    },\n    formatter: function formatter(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.formatter = newVal;\n      }\n    },\n    className: function className(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.className = newVal;\n      }\n    },\n    labelClassName: function labelClassName(newVal) {\n      if (this.columnConfig) {\n        this.columnConfig.labelClassName = newVal;\n      }\n    }\n  },\n\n  mounted: function mounted() {\n    var owner = this.owner;\n    var parent = this.columnOrTableParent;\n    var columnIndex = void 0;\n\n    if (!this.isSubColumn) {\n      columnIndex = [].indexOf.call(parent.$refs.hiddenColumns.children, this.$el);\n    } else {\n      columnIndex = [].indexOf.call(parent.$el.children, this.$el);\n    }\n\n    owner.store.commit('insertColumn', this.columnConfig, columnIndex, this.isSubColumn ? parent.columnConfig : null);\n  }\n};\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _datePicker = __webpack_require__(172);\n\nvar _datePicker2 = _interopRequireDefault(_datePicker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_datePicker2.default.install = function install(Vue) {\n  Vue.component(_datePicker2.default.name, _datePicker2.default);\n};\n\nexports.default = _datePicker2.default;\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _date = __webpack_require__(176);\n\nvar _date2 = _interopRequireDefault(_date);\n\nvar _dateRange = __webpack_require__(191);\n\nvar _dateRange2 = _interopRequireDefault(_dateRange);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar getPanel = function getPanel(type) {\n  if (type === 'daterange' || type === 'datetimerange') {\n    return _dateRange2.default;\n  }\n  return _date2.default;\n};\n\nexports.default = {\n  mixins: [_picker2.default],\n\n  name: 'ElDatePicker',\n\n  props: {\n    type: {\n      type: String,\n      default: 'date'\n    },\n    timeArrowControl: Boolean\n  },\n\n  watch: {\n    type: function type(_type) {\n      if (this.picker) {\n        this.unmountPicker();\n        this.panel = getPanel(_type);\n        this.mountPicker();\n      } else {\n        this.panel = getPanel(_type);\n      }\n    }\n  },\n\n  created: function created() {\n    this.panel = getPanel(this.type);\n  }\n};\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _util = __webpack_require__(11);\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NewPopper = {\n  props: {\n    appendToBody: _vuePopper2.default.props.appendToBody,\n    offset: _vuePopper2.default.props.offset,\n    boundariesPadding: _vuePopper2.default.props.boundariesPadding,\n    arrowOffset: _vuePopper2.default.props.arrowOffset\n  },\n  methods: _vuePopper2.default.methods,\n  data: function data() {\n    return (0, _merge2.default)({ visibleArrow: true }, _vuePopper2.default.data);\n  },\n\n  beforeDestroy: _vuePopper2.default.beforeDestroy\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar DEFAULT_FORMATS = {\n  date: 'yyyy-MM-dd',\n  month: 'yyyy-MM',\n  datetime: 'yyyy-MM-dd HH:mm:ss',\n  time: 'HH:mm:ss',\n  week: 'yyyywWW',\n  timerange: 'HH:mm:ss',\n  daterange: 'yyyy-MM-dd',\n  datetimerange: 'yyyy-MM-dd HH:mm:ss',\n  year: 'yyyy'\n};\nvar HAVE_TRIGGER_TYPES = ['date', 'datetime', 'time', 'time-select', 'week', 'month', 'year', 'daterange', 'timerange', 'datetimerange', 'dates'];\nvar DATE_FORMATTER = function DATE_FORMATTER(value, format) {\n  if (format === 'timestamp') return value.getTime();\n  return (0, _util.formatDate)(value, format);\n};\nvar DATE_PARSER = function DATE_PARSER(text, format) {\n  if (format === 'timestamp') return new Date(Number(text));\n  return (0, _util.parseDate)(text, format);\n};\nvar RANGE_FORMATTER = function RANGE_FORMATTER(value, format) {\n  if (Array.isArray(value) && value.length === 2) {\n    var start = value[0];\n    var end = value[1];\n\n    if (start && end) {\n      return [DATE_FORMATTER(start, format), DATE_FORMATTER(end, format)];\n    }\n  }\n  return '';\n};\nvar RANGE_PARSER = function RANGE_PARSER(array, format, separator) {\n  if (!Array.isArray(array)) {\n    array = array.split(separator);\n  }\n  if (array.length === 2) {\n    var range1 = array[0];\n    var range2 = array[1];\n\n    return [DATE_PARSER(range1, format), DATE_PARSER(range2, format)];\n  }\n  return [];\n};\nvar TYPE_VALUE_RESOLVER_MAP = {\n  default: {\n    formatter: function formatter(value) {\n      if (!value) return '';\n      return '' + value;\n    },\n    parser: function parser(text) {\n      if (text === undefined || text === '') return null;\n      return text;\n    }\n  },\n  week: {\n    formatter: function formatter(value, format) {\n      var week = (0, _util.getWeekNumber)(value);\n      var month = value.getMonth();\n      var trueDate = new Date(value);\n      if (week === 1 && month === 11) {\n        trueDate.setHours(0, 0, 0, 0);\n        trueDate.setDate(trueDate.getDate() + 3 - (trueDate.getDay() + 6) % 7);\n      }\n      var date = (0, _util.formatDate)(trueDate, format);\n\n      date = /WW/.test(date) ? date.replace(/WW/, week < 10 ? '0' + week : week) : date.replace(/W/, week);\n      return date;\n    },\n    parser: function parser(text) {\n      var array = (text || '').split('w');\n      if (array.length === 2) {\n        var year = Number(array[0]);\n        var month = Number(array[1]);\n\n        if (!isNaN(year) && !isNaN(month) && month < 54) {\n          return text;\n        }\n      }\n      return null;\n    }\n  },\n  date: {\n    formatter: DATE_FORMATTER,\n    parser: DATE_PARSER\n  },\n  datetime: {\n    formatter: DATE_FORMATTER,\n    parser: DATE_PARSER\n  },\n  daterange: {\n    formatter: RANGE_FORMATTER,\n    parser: RANGE_PARSER\n  },\n  datetimerange: {\n    formatter: RANGE_FORMATTER,\n    parser: RANGE_PARSER\n  },\n  timerange: {\n    formatter: RANGE_FORMATTER,\n    parser: RANGE_PARSER\n  },\n  time: {\n    formatter: DATE_FORMATTER,\n    parser: DATE_PARSER\n  },\n  month: {\n    formatter: DATE_FORMATTER,\n    parser: DATE_PARSER\n  },\n  year: {\n    formatter: DATE_FORMATTER,\n    parser: DATE_PARSER\n  },\n  number: {\n    formatter: function formatter(value) {\n      if (!value) return '';\n      return '' + value;\n    },\n    parser: function parser(text) {\n      var result = Number(text);\n\n      if (!isNaN(text)) {\n        return result;\n      } else {\n        return null;\n      }\n    }\n  },\n  dates: {\n    formatter: function formatter(value, format) {\n      return value.map(function (date) {\n        return DATE_FORMATTER(date, format);\n      });\n    },\n    parser: function parser(value, format) {\n      return (typeof value === 'string' ? value.split(', ') : value).map(function (date) {\n        return date instanceof Date ? date : DATE_PARSER(date, format);\n      });\n    }\n  }\n};\nvar PLACEMENT_MAP = {\n  left: 'bottom-start',\n  center: 'bottom',\n  right: 'bottom-end'\n};\n\nvar parseAsFormatAndType = function parseAsFormatAndType(value, customFormat, type) {\n  var rangeSeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '-';\n\n  if (!value) return null;\n  var parser = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).parser;\n  var format = customFormat || DEFAULT_FORMATS[type];\n  return parser(value, format, rangeSeparator);\n};\n\nvar formatAsFormatAndType = function formatAsFormatAndType(value, customFormat, type) {\n  if (!value) return null;\n  var formatter = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).formatter;\n  var format = customFormat || DEFAULT_FORMATS[type];\n  return formatter(value, format);\n};\n\n/*\n * Considers:\n *   1. Date object\n *   2. date string\n *   3. array of 1 or 2\n */\nvar valueEquals = function valueEquals(a, b) {\n  // considers Date object and string\n  var dateEquals = function dateEquals(a, b) {\n    var aIsDate = a instanceof Date;\n    var bIsDate = b instanceof Date;\n    if (aIsDate && bIsDate) {\n      return a.getTime() === b.getTime();\n    }\n    if (!aIsDate && !bIsDate) {\n      return a === b;\n    }\n    return false;\n  };\n\n  var aIsArray = a instanceof Array;\n  var bIsArray = b instanceof Array;\n  if (aIsArray && bIsArray) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    return a.every(function (item, index) {\n      return dateEquals(item, b[index]);\n    });\n  }\n  if (!aIsArray && !bIsArray) {\n    return dateEquals(a, b);\n  }\n  return false;\n};\n\nvar isString = function isString(val) {\n  return typeof val === 'string' || val instanceof String;\n};\n\nvar validator = function validator(val) {\n  // either: String, Array of String, null / undefined\n  return val === null || val === undefined || isString(val) || Array.isArray(val) && val.length === 2 && val.every(isString);\n};\n\nexports.default = {\n  mixins: [_emitter2.default, NewPopper],\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  props: {\n    size: String,\n    format: String,\n    valueFormat: String,\n    readonly: Boolean,\n    placeholder: String,\n    startPlaceholder: String,\n    endPlaceholder: String,\n    prefixIcon: String,\n    clearIcon: {\n      type: String,\n      default: 'el-icon-circle-close'\n    },\n    name: {\n      default: '',\n      validator: validator\n    },\n    disabled: Boolean,\n    clearable: {\n      type: Boolean,\n      default: true\n    },\n    id: {\n      default: '',\n      validator: validator\n    },\n    popperClass: String,\n    editable: {\n      type: Boolean,\n      default: true\n    },\n    align: {\n      type: String,\n      default: 'left'\n    },\n    value: {},\n    defaultValue: {},\n    defaultTime: {},\n    rangeSeparator: {\n      default: '-'\n    },\n    pickerOptions: {},\n    unlinkPanels: Boolean\n  },\n\n  components: { ElInput: _input2.default },\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  data: function data() {\n    return {\n      pickerVisible: false,\n      showClose: false,\n      userInput: null,\n      valueOnOpen: null, // value when picker opens, used to determine whether to emit change\n      unwatchPickerOptions: null\n    };\n  },\n\n\n  watch: {\n    pickerVisible: function pickerVisible(val) {\n      if (this.readonly || this.pickerDisabled) return;\n      if (val) {\n        this.showPicker();\n        this.valueOnOpen = Array.isArray(this.value) ? [].concat(this.value) : this.value;\n      } else {\n        this.hidePicker();\n        this.emitChange(this.value);\n        this.userInput = null;\n        this.dispatch('ElFormItem', 'el.form.blur');\n        this.$emit('blur', this);\n        this.blur();\n      }\n    },\n\n    parsedValue: {\n      immediate: true,\n      handler: function handler(val) {\n        if (this.picker) {\n          this.picker.value = val;\n          this.picker.selectedDate = Array.isArray(val) ? val : [];\n        }\n      }\n    },\n    defaultValue: function defaultValue(val) {\n      // NOTE: should eventually move to jsx style picker + panel ?\n      if (this.picker) {\n        this.picker.defaultValue = val;\n      }\n    }\n  },\n\n  computed: {\n    ranged: function ranged() {\n      return this.type.indexOf('range') > -1;\n    },\n    reference: function reference() {\n      var reference = this.$refs.reference;\n      return reference.$el || reference;\n    },\n    refInput: function refInput() {\n      if (this.reference) {\n        return [].slice.call(this.reference.querySelectorAll('input'));\n      }\n      return [];\n    },\n    valueIsEmpty: function valueIsEmpty() {\n      var val = this.value;\n      if (Array.isArray(val)) {\n        for (var i = 0, len = val.length; i < len; i++) {\n          if (val[i]) {\n            return false;\n          }\n        }\n      } else {\n        if (val) {\n          return false;\n        }\n      }\n      return true;\n    },\n    triggerClass: function triggerClass() {\n      return this.prefixIcon || (this.type.indexOf('time') !== -1 ? 'el-icon-time' : 'el-icon-date');\n    },\n    selectionMode: function selectionMode() {\n      if (this.type === 'week') {\n        return 'week';\n      } else if (this.type === 'month') {\n        return 'month';\n      } else if (this.type === 'year') {\n        return 'year';\n      } else if (this.type === 'dates') {\n        return 'dates';\n      }\n\n      return 'day';\n    },\n    haveTrigger: function haveTrigger() {\n      if (typeof this.showTrigger !== 'undefined') {\n        return this.showTrigger;\n      }\n      return HAVE_TRIGGER_TYPES.indexOf(this.type) !== -1;\n    },\n    displayValue: function displayValue() {\n      var formattedValue = formatAsFormatAndType(this.parsedValue, this.format, this.type, this.rangeSeparator);\n      if (Array.isArray(this.userInput)) {\n        return [this.userInput[0] || formattedValue && formattedValue[0] || '', this.userInput[1] || formattedValue && formattedValue[1] || ''];\n      } else if (this.userInput !== null) {\n        return this.userInput;\n      } else if (formattedValue) {\n        return this.type === 'dates' ? formattedValue.join(', ') : formattedValue;\n      } else {\n        return '';\n      }\n    },\n    parsedValue: function parsedValue() {\n      if (!this.value) return this.value; // component value is not set\n      if (this.type === 'time-select') return this.value; // time-select does not require parsing, this might change in next major version\n\n      var valueIsDateObject = (0, _util.isDateObject)(this.value) || Array.isArray(this.value) && this.value.every(_util.isDateObject);\n      if (valueIsDateObject) {\n        return this.value;\n      }\n\n      if (this.valueFormat) {\n        return parseAsFormatAndType(this.value, this.valueFormat, this.type, this.rangeSeparator) || this.value;\n      }\n\n      // NOTE: deal with common but incorrect usage, should remove in next major version\n      // user might provide string / timestamp without value-format, coerce them into date (or array of date)\n      return Array.isArray(this.value) ? this.value.map(function (val) {\n        return new Date(val);\n      }) : new Date(this.value);\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    pickerSize: function pickerSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    pickerDisabled: function pickerDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    },\n    firstInputId: function firstInputId() {\n      var obj = {};\n      var id = void 0;\n      if (this.ranged) {\n        id = this.id && this.id[0];\n      } else {\n        id = this.id;\n      }\n      if (id) obj.id = id;\n      return obj;\n    },\n    secondInputId: function secondInputId() {\n      var obj = {};\n      var id = void 0;\n      if (this.ranged) {\n        id = this.id && this.id[1];\n      }\n      if (id) obj.id = id;\n      return obj;\n    }\n  },\n\n  created: function created() {\n    // vue-popper\n    this.popperOptions = {\n      boundariesPadding: 0,\n      gpuAcceleration: false\n    };\n    this.placement = PLACEMENT_MAP[this.align] || PLACEMENT_MAP.left;\n\n    this.$on('fieldReset', this.handleFieldReset);\n  },\n\n\n  methods: {\n    focus: function focus() {\n      if (!this.ranged) {\n        this.$refs.reference.focus();\n      } else {\n        this.handleFocus();\n      }\n    },\n    blur: function blur() {\n      this.refInput.forEach(function (input) {\n        return input.blur();\n      });\n    },\n\n\n    // {parse, formatTo} Value deals maps component value with internal Date\n    parseValue: function parseValue(value) {\n      var isParsed = (0, _util.isDateObject)(value) || Array.isArray(value) && value.every(_util.isDateObject);\n      if (this.valueFormat && !isParsed) {\n        return parseAsFormatAndType(value, this.valueFormat, this.type, this.rangeSeparator) || value;\n      } else {\n        return value;\n      }\n    },\n    formatToValue: function formatToValue(date) {\n      var isFormattable = (0, _util.isDateObject)(date) || Array.isArray(date) && date.every(_util.isDateObject);\n      if (this.valueFormat && isFormattable) {\n        return formatAsFormatAndType(date, this.valueFormat, this.type, this.rangeSeparator);\n      } else {\n        return date;\n      }\n    },\n\n\n    // {parse, formatTo} String deals with user input\n    parseString: function parseString(value) {\n      var type = Array.isArray(value) ? this.type : this.type.replace('range', '');\n      return parseAsFormatAndType(value, this.format, type);\n    },\n    formatToString: function formatToString(value) {\n      var type = Array.isArray(value) ? this.type : this.type.replace('range', '');\n      return formatAsFormatAndType(value, this.format, type);\n    },\n    handleMouseEnter: function handleMouseEnter() {\n      if (this.readonly || this.pickerDisabled) return;\n      if (!this.valueIsEmpty && this.clearable) {\n        this.showClose = true;\n      }\n    },\n    handleChange: function handleChange() {\n      if (this.userInput) {\n        var value = this.parseString(this.displayValue);\n        if (value) {\n          this.picker.value = value;\n          if (this.isValidValue(value)) {\n            this.emitInput(value);\n            this.userInput = null;\n          }\n        }\n      }\n      if (this.userInput === '') {\n        this.emitInput(null);\n        this.emitChange(null);\n        this.userInput = null;\n      }\n    },\n    handleStartInput: function handleStartInput(event) {\n      if (this.userInput) {\n        this.userInput = [event.target.value, this.userInput[1]];\n      } else {\n        this.userInput = [event.target.value, null];\n      }\n    },\n    handleEndInput: function handleEndInput(event) {\n      if (this.userInput) {\n        this.userInput = [this.userInput[0], event.target.value];\n      } else {\n        this.userInput = [null, event.target.value];\n      }\n    },\n    handleStartChange: function handleStartChange(event) {\n      var value = this.parseString(this.userInput && this.userInput[0]);\n      if (value) {\n        this.userInput = [this.formatToString(value), this.displayValue[1]];\n        var newValue = [value, this.picker.value && this.picker.value[1]];\n        this.picker.value = newValue;\n        if (this.isValidValue(newValue)) {\n          this.emitInput(newValue);\n          this.userInput = null;\n        }\n      }\n    },\n    handleEndChange: function handleEndChange(event) {\n      var value = this.parseString(this.userInput && this.userInput[1]);\n      if (value) {\n        this.userInput = [this.displayValue[0], this.formatToString(value)];\n        var newValue = [this.picker.value && this.picker.value[0], value];\n        this.picker.value = newValue;\n        if (this.isValidValue(newValue)) {\n          this.emitInput(newValue);\n          this.userInput = null;\n        }\n      }\n    },\n    handleClickIcon: function handleClickIcon(event) {\n      if (this.readonly || this.pickerDisabled) return;\n      if (this.showClose) {\n        this.valueOnOpen = this.value;\n        event.stopPropagation();\n        this.emitInput(null);\n        this.emitChange(null);\n        this.showClose = false;\n        if (this.picker && typeof this.picker.handleClear === 'function') {\n          this.picker.handleClear();\n        }\n      } else {\n        this.pickerVisible = !this.pickerVisible;\n      }\n    },\n    handleClose: function handleClose() {\n      if (!this.pickerVisible) return;\n      this.pickerVisible = false;\n      var type = this.type,\n          valueOnOpen = this.valueOnOpen,\n          valueFormat = this.valueFormat,\n          rangeSeparator = this.rangeSeparator;\n\n      if (type === 'dates' && this.picker) {\n        this.picker.selectedDate = parseAsFormatAndType(valueOnOpen, valueFormat, type, rangeSeparator) || valueOnOpen;\n        this.emitInput(this.picker.selectedDate);\n      }\n    },\n    handleFieldReset: function handleFieldReset(initialValue) {\n      this.userInput = initialValue === '' ? null : initialValue;\n    },\n    handleFocus: function handleFocus() {\n      var type = this.type;\n\n      if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {\n        this.pickerVisible = true;\n      }\n      this.$emit('focus', this);\n    },\n    handleKeydown: function handleKeydown(event) {\n      var _this = this;\n\n      var keyCode = event.keyCode;\n\n      // ESC\n      if (keyCode === 27) {\n        this.pickerVisible = false;\n        event.stopPropagation();\n        return;\n      }\n\n      // Tab\n      if (keyCode === 9) {\n        if (!this.ranged) {\n          this.handleChange();\n          this.pickerVisible = this.picker.visible = false;\n          this.blur();\n          event.stopPropagation();\n        } else {\n          // user may change focus between two input\n          setTimeout(function () {\n            if (_this.refInput.indexOf(document.activeElement) === -1) {\n              _this.pickerVisible = false;\n              _this.blur();\n              event.stopPropagation();\n            }\n          }, 0);\n        }\n        return;\n      }\n\n      // Enter\n      if (keyCode === 13) {\n        if (this.userInput === '' || this.isValidValue(this.parseString(this.displayValue))) {\n          this.handleChange();\n          this.pickerVisible = this.picker.visible = false;\n          this.blur();\n        }\n        event.stopPropagation();\n        return;\n      }\n\n      // if user is typing, do not let picker handle key input\n      if (this.userInput) {\n        event.stopPropagation();\n        return;\n      }\n\n      // delegate other keys to panel\n      if (this.picker && this.picker.handleKeydown) {\n        this.picker.handleKeydown(event);\n      }\n    },\n    handleRangeClick: function handleRangeClick() {\n      var type = this.type;\n\n      if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {\n        this.pickerVisible = true;\n      }\n      this.$emit('focus', this);\n    },\n    hidePicker: function hidePicker() {\n      if (this.picker) {\n        this.picker.resetView && this.picker.resetView();\n        this.pickerVisible = this.picker.visible = false;\n        this.destroyPopper();\n      }\n    },\n    showPicker: function showPicker() {\n      var _this2 = this;\n\n      if (this.$isServer) return;\n      if (!this.picker) {\n        this.mountPicker();\n      }\n      this.pickerVisible = this.picker.visible = true;\n\n      this.updatePopper();\n\n      this.picker.value = this.parsedValue;\n      this.picker.resetView && this.picker.resetView();\n\n      this.$nextTick(function () {\n        _this2.picker.adjustSpinners && _this2.picker.adjustSpinners();\n      });\n    },\n    mountPicker: function mountPicker() {\n      var _this3 = this;\n\n      this.picker = new _vue2.default(this.panel).$mount();\n      this.picker.defaultValue = this.defaultValue;\n      this.picker.defaultTime = this.defaultTime;\n      this.picker.popperClass = this.popperClass;\n      this.popperElm = this.picker.$el;\n      this.picker.width = this.reference.getBoundingClientRect().width;\n      this.picker.showTime = this.type === 'datetime' || this.type === 'datetimerange';\n      this.picker.selectionMode = this.selectionMode;\n      this.picker.unlinkPanels = this.unlinkPanels;\n      this.picker.arrowControl = this.arrowControl || this.timeArrowControl || false;\n      this.picker.selectedDate = Array.isArray(this.value) && this.value || [];\n      this.$watch('format', function (format) {\n        _this3.picker.format = format;\n      });\n\n      var updateOptions = function updateOptions() {\n        var options = _this3.pickerOptions;\n\n        if (options && options.selectableRange) {\n          (function () {\n            var ranges = options.selectableRange;\n            var parser = TYPE_VALUE_RESOLVER_MAP.datetimerange.parser;\n            var format = DEFAULT_FORMATS.timerange;\n\n            ranges = Array.isArray(ranges) ? ranges : [ranges];\n            _this3.picker.selectableRange = ranges.map(function (range) {\n              return parser(range, format, _this3.rangeSeparator);\n            });\n          })();\n        }\n\n        for (var option in options) {\n          if (options.hasOwnProperty(option) &&\n          // 蹇界暐 time-picker 鐨勮閰嶇疆椤筡n          option !== 'selectableRange') {\n            _this3.picker[option] = options[option];\n          }\n        }\n\n        // main format must prevail over undocumented pickerOptions.format\n        if (_this3.format) {\n          _this3.picker.format = _this3.format;\n        }\n      };\n      updateOptions();\n      this.unwatchPickerOptions = this.$watch('pickerOptions', function () {\n        return updateOptions();\n      }, { deep: true });\n\n      this.$el.appendChild(this.picker.$el);\n      this.picker.resetView && this.picker.resetView();\n\n      this.picker.$on('dodestroy', this.doDestroy);\n      this.picker.$on('pick', function () {\n        var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n        var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n        _this3.userInput = null;\n        _this3.pickerVisible = _this3.picker.visible = visible;\n        _this3.emitInput(date);\n        _this3.picker.resetView && _this3.picker.resetView();\n      });\n\n      this.picker.$on('select-range', function (start, end, pos) {\n        if (_this3.refInput.length === 0) return;\n        if (!pos || pos === 'min') {\n          _this3.refInput[0].setSelectionRange(start, end);\n          _this3.refInput[0].focus();\n        } else if (pos === 'max') {\n          _this3.refInput[1].setSelectionRange(start, end);\n          _this3.refInput[1].focus();\n        }\n      });\n    },\n    unmountPicker: function unmountPicker() {\n      if (this.picker) {\n        this.picker.$destroy();\n        this.picker.$off();\n        if (typeof this.unwatchPickerOptions === 'function') {\n          this.unwatchPickerOptions();\n        }\n        this.picker.$el.parentNode.removeChild(this.picker.$el);\n      }\n    },\n    emitChange: function emitChange(val) {\n      // determine user real change only\n      if (!valueEquals(val, this.valueOnOpen)) {\n        this.$emit('change', val);\n        this.dispatch('ElFormItem', 'el.form.change', val);\n        this.valueOnOpen = val;\n      }\n    },\n    emitInput: function emitInput(val) {\n      var formatted = this.formatToValue(val);\n      if (!valueEquals(this.value, formatted)) {\n        this.$emit('input', formatted);\n      }\n    },\n    isValidValue: function isValidValue(value) {\n      if (!this.picker) {\n        this.mountPicker();\n      }\n      if (this.picker.isValidValue) {\n        return value && this.picker.isValidValue(value);\n      } else {\n        return true;\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/date\");\n\n/***/ }),\n/* 175 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.ranged)?_c('el-input',_vm._b({directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleClose),expression:\"handleClose\"}],ref:\"reference\",staticClass:\"el-date-editor\",class:'el-date-editor--' + _vm.type,attrs:{\"readonly\":!_vm.editable || _vm.readonly || _vm.type === 'dates',\"disabled\":_vm.pickerDisabled,\"size\":_vm.pickerSize,\"name\":_vm.name,\"placeholder\":_vm.placeholder,\"value\":_vm.displayValue,\"validateEvent\":false},on:{\"focus\":_vm.handleFocus,\"input\":function (value) { return _vm.userInput = value; },\"change\":_vm.handleChange},nativeOn:{\"keydown\":function($event){_vm.handleKeydown($event)},\"mouseenter\":function($event){_vm.handleMouseEnter($event)},\"mouseleave\":function($event){_vm.showClose = false}}},'el-input',_vm.firstInputId,false),[_c('i',{staticClass:\"el-input__icon\",class:_vm.triggerClass,attrs:{\"slot\":\"prefix\"},on:{\"click\":_vm.handleFocus},slot:\"prefix\"}),(_vm.haveTrigger)?_c('i',{staticClass:\"el-input__icon\",class:[_vm.showClose ? '' + _vm.clearIcon : ''],attrs:{\"slot\":\"suffix\"},on:{\"click\":_vm.handleClickIcon},slot:\"suffix\"}):_vm._e()]):_c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleClose),expression:\"handleClose\"}],ref:\"reference\",staticClass:\"el-date-editor el-range-editor el-input__inner\",class:[\n    'el-date-editor--' + _vm.type,\n    _vm.pickerSize ? (\"el-range-editor--\" + _vm.pickerSize) : '',\n    _vm.pickerDisabled ? 'is-disabled' : '',\n    _vm.pickerVisible ? 'is-active' : ''\n  ],on:{\"click\":_vm.handleRangeClick,\"mouseenter\":_vm.handleMouseEnter,\"mouseleave\":function($event){_vm.showClose = false},\"keydown\":_vm.handleKeydown}},[_c('i',{class:['el-input__icon', 'el-range__icon', _vm.triggerClass]}),_c('input',_vm._b({staticClass:\"el-range-input\",attrs:{\"placeholder\":_vm.startPlaceholder,\"disabled\":_vm.pickerDisabled,\"readonly\":!_vm.editable || _vm.readonly,\"name\":_vm.name && _vm.name[0]},domProps:{\"value\":_vm.displayValue && _vm.displayValue[0]},on:{\"input\":_vm.handleStartInput,\"change\":_vm.handleStartChange,\"focus\":_vm.handleFocus}},'input',_vm.firstInputId,false)),_c('span',{staticClass:\"el-range-separator\"},[_vm._v(_vm._s(_vm.rangeSeparator))]),_c('input',_vm._b({staticClass:\"el-range-input\",attrs:{\"placeholder\":_vm.endPlaceholder,\"disabled\":_vm.pickerDisabled,\"readonly\":!_vm.editable || _vm.readonly,\"name\":_vm.name && _vm.name[1]},domProps:{\"value\":_vm.displayValue && _vm.displayValue[1]},on:{\"input\":_vm.handleEndInput,\"change\":_vm.handleEndChange,\"focus\":_vm.handleFocus}},'input',_vm.secondInputId,false)),(_vm.haveTrigger)?_c('i',{staticClass:\"el-input__icon el-range__close-icon\",class:[_vm.showClose ? '' + _vm.clearIcon : ''],on:{\"click\":_vm.handleClickIcon}}):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 176 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue__ = __webpack_require__(177);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2555bb87_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_vue__ = __webpack_require__(190);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2555bb87_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _util = __webpack_require__(11);\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _button = __webpack_require__(15);\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _time = __webpack_require__(29);\n\nvar _time2 = _interopRequireDefault(_time);\n\nvar _yearTable = __webpack_require__(182);\n\nvar _yearTable2 = _interopRequireDefault(_yearTable);\n\nvar _monthTable = __webpack_require__(185);\n\nvar _monthTable2 = _interopRequireDefault(_monthTable);\n\nvar _dateTable = __webpack_require__(39);\n\nvar _dateTable2 = _interopRequireDefault(_dateTable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  mixins: [_locale2.default],\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  watch: {\n    showTime: function showTime(val) {\n      var _this = this;\n\n      /* istanbul ignore if */\n      if (!val) return;\n      this.$nextTick(function (_) {\n        var inputElm = _this.$refs.input.$el;\n        if (inputElm) {\n          _this.pickerWidth = inputElm.getBoundingClientRect().width + 10;\n        }\n      });\n    },\n    value: function value(val) {\n      if (this.selectionMode === 'dates' && this.value) return;\n      if ((0, _util.isDate)(val)) {\n        this.date = new Date(val);\n      } else {\n        this.date = this.getDefaultValue();\n      }\n    },\n    defaultValue: function defaultValue(val) {\n      if (!(0, _util.isDate)(this.value)) {\n        this.date = val ? new Date(val) : new Date();\n      }\n    },\n    timePickerVisible: function timePickerVisible(val) {\n      var _this2 = this;\n\n      if (val) this.$nextTick(function () {\n        return _this2.$refs.timepicker.adjustSpinners();\n      });\n    },\n    selectionMode: function selectionMode(newVal) {\n      if (newVal === 'month') {\n        /* istanbul ignore next */\n        if (this.currentView !== 'year' || this.currentView !== 'month') {\n          this.currentView = 'month';\n        }\n      } else if (newVal === 'dates') {\n        this.currentView = 'date';\n      }\n    }\n  },\n\n  methods: {\n    proxyTimePickerDataProperties: function proxyTimePickerDataProperties() {\n      var _this3 = this;\n\n      var format = function format(timeFormat) {\n        _this3.$refs.timepicker.format = timeFormat;\n      };\n      var value = function value(_value) {\n        _this3.$refs.timepicker.value = _value;\n      };\n      var date = function date(_date) {\n        _this3.$refs.timepicker.date = _date;\n      };\n\n      this.$watch('value', value);\n      this.$watch('date', date);\n\n      format(this.timeFormat);\n      value(this.value);\n      date(this.date);\n    },\n    handleClear: function handleClear() {\n      this.date = this.getDefaultValue();\n      this.$emit('pick', null);\n    },\n    emit: function emit(value) {\n      var _this4 = this;\n\n      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      if (!value) {\n        this.$emit.apply(this, ['pick', value].concat(args));\n      } else if (Array.isArray(value)) {\n        var dates = value.map(function (date) {\n          return _this4.showTime ? (0, _util.clearMilliseconds)(date) : (0, _util.clearTime)(date);\n        });\n        this.$emit.apply(this, ['pick', dates].concat(args));\n      } else {\n        this.$emit.apply(this, ['pick', this.showTime ? (0, _util.clearMilliseconds)(value) : (0, _util.clearTime)(value)].concat(args));\n      }\n      this.userInputDate = null;\n      this.userInputTime = null;\n    },\n\n\n    // resetDate() {\n    //   this.date = new Date(this.date);\n    // },\n\n    showMonthPicker: function showMonthPicker() {\n      this.currentView = 'month';\n    },\n    showYearPicker: function showYearPicker() {\n      this.currentView = 'year';\n    },\n\n\n    // XXX: 娌$敤鍒癨n    // handleLabelClick() {\n    //   if (this.currentView === 'date') {\n    //     this.showMonthPicker();\n    //   } else if (this.currentView === 'month') {\n    //     this.showYearPicker();\n    //   }\n    // },\n\n    prevMonth: function prevMonth() {\n      this.date = (0, _util.prevMonth)(this.date);\n    },\n    nextMonth: function nextMonth() {\n      this.date = (0, _util.nextMonth)(this.date);\n    },\n    prevYear: function prevYear() {\n      if (this.currentView === 'year') {\n        this.date = (0, _util.prevYear)(this.date, 10);\n      } else {\n        this.date = (0, _util.prevYear)(this.date);\n      }\n    },\n    nextYear: function nextYear() {\n      if (this.currentView === 'year') {\n        this.date = (0, _util.nextYear)(this.date, 10);\n      } else {\n        this.date = (0, _util.nextYear)(this.date);\n      }\n    },\n    handleShortcutClick: function handleShortcutClick(shortcut) {\n      if (shortcut.onClick) {\n        shortcut.onClick(this);\n      }\n    },\n    handleTimePick: function handleTimePick(value, visible, first) {\n      if ((0, _util.isDate)(value)) {\n        var newDate = this.value ? (0, _util.modifyTime)(this.value, value.getHours(), value.getMinutes(), value.getSeconds()) : (0, _util.modifyWithTimeString)(this.getDefaultValue(), this.defaultTime);\n        this.date = newDate;\n        this.emit(this.date, true);\n      } else {\n        this.emit(value, true);\n      }\n      if (!first) {\n        this.timePickerVisible = visible;\n      }\n    },\n    handleTimePickClose: function handleTimePickClose() {\n      this.timePickerVisible = false;\n    },\n    handleMonthPick: function handleMonthPick(month) {\n      if (this.selectionMode === 'month') {\n        this.date = (0, _util.modifyDate)(this.date, this.year, month, 1);\n        this.emit(this.date);\n      } else {\n        this.date = (0, _util.changeYearMonthAndClampDate)(this.date, this.year, month);\n        // TODO: should emit intermediate value ??\n        // this.emit(this.date);\n        this.currentView = 'date';\n      }\n    },\n    handleDateSelect: function handleDateSelect(value) {\n      if (this.selectionMode === 'dates') {\n        this.selectedDate = value;\n      }\n    },\n    handleDatePick: function handleDatePick(value) {\n      if (this.selectionMode === 'day') {\n        this.date = this.value ? (0, _util.modifyDate)(this.value, value.getFullYear(), value.getMonth(), value.getDate()) : (0, _util.modifyWithTimeString)(value, this.defaultTime);\n        this.emit(this.date, this.showTime);\n      } else if (this.selectionMode === 'week') {\n        this.emit(value.date);\n      }\n    },\n    handleYearPick: function handleYearPick(year) {\n      if (this.selectionMode === 'year') {\n        this.date = (0, _util.modifyDate)(this.date, year, 0, 1);\n        this.emit(this.date);\n      } else {\n        this.date = (0, _util.changeYearMonthAndClampDate)(this.date, year, this.month);\n        // TODO: should emit intermediate value ??\n        // this.emit(this.date, true);\n        this.currentView = 'month';\n      }\n    },\n    changeToNow: function changeToNow() {\n      // NOTE: not a permanent solution\n      //       consider disable \"now\" button in the future\n      if (!this.disabledDate || !this.disabledDate(new Date())) {\n        this.date = new Date();\n        this.emit(this.date);\n      }\n    },\n    confirm: function confirm() {\n      if (this.selectionMode === 'dates') {\n        this.emit(this.selectedDate);\n      } else {\n        // value were emitted in handle{Date,Time}Pick, nothing to update here\n        // deal with the scenario where: user opens the picker, then confirm without doing anything\n        var value = this.value ? this.value : (0, _util.modifyWithTimeString)(this.getDefaultValue(), this.defaultTime);\n        this.date = new Date(value); // refresh date\n        this.emit(value);\n      }\n    },\n    resetView: function resetView() {\n      if (this.selectionMode === 'month') {\n        this.currentView = 'month';\n      } else if (this.selectionMode === 'year') {\n        this.currentView = 'year';\n      } else {\n        this.currentView = 'date';\n      }\n    },\n    handleEnter: function handleEnter() {\n      document.body.addEventListener('keydown', this.handleKeydown);\n    },\n    handleLeave: function handleLeave() {\n      this.$emit('dodestroy');\n      document.body.removeEventListener('keydown', this.handleKeydown);\n    },\n    handleKeydown: function handleKeydown(event) {\n      var keyCode = event.keyCode;\n      var list = [38, 40, 37, 39];\n      if (this.visible && !this.timePickerVisible) {\n        if (list.indexOf(keyCode) !== -1) {\n          this.handleKeyControl(keyCode);\n          event.stopPropagation();\n          event.preventDefault();\n        }\n        if (keyCode === 13 && this.userInputDate === null && this.userInputTime === null) {\n          // Enter\n          this.emit(this.date, false);\n        }\n      }\n    },\n    handleKeyControl: function handleKeyControl(keyCode) {\n      var mapping = {\n        'year': {\n          38: -4, 40: 4, 37: -1, 39: 1, offset: function offset(date, step) {\n            return date.setFullYear(date.getFullYear() + step);\n          }\n        },\n        'month': {\n          38: -4, 40: 4, 37: -1, 39: 1, offset: function offset(date, step) {\n            return date.setMonth(date.getMonth() + step);\n          }\n        },\n        'week': {\n          38: -1, 40: 1, 37: -1, 39: 1, offset: function offset(date, step) {\n            return date.setDate(date.getDate() + step * 7);\n          }\n        },\n        'day': {\n          38: -7, 40: 7, 37: -1, 39: 1, offset: function offset(date, step) {\n            return date.setDate(date.getDate() + step);\n          }\n        }\n      };\n      var mode = this.selectionMode;\n      var year = 3.1536e10;\n      var now = this.date.getTime();\n      var newDate = new Date(this.date.getTime());\n      while (Math.abs(now - newDate.getTime()) <= year) {\n        var map = mapping[mode];\n        map.offset(newDate, map[keyCode]);\n        if (typeof this.disabledDate === 'function' && this.disabledDate(newDate)) {\n          continue;\n        }\n        this.date = newDate;\n        this.$emit('pick', newDate, true);\n        break;\n      }\n    },\n    handleVisibleTimeChange: function handleVisibleTimeChange(value) {\n      var time = (0, _util.parseDate)(value, this.timeFormat);\n      if (time) {\n        this.date = (0, _util.modifyDate)(time, this.year, this.month, this.monthDate);\n        this.userInputTime = null;\n        this.$refs.timepicker.value = this.date;\n        this.timePickerVisible = false;\n        this.emit(this.date, true);\n      }\n    },\n    handleVisibleDateChange: function handleVisibleDateChange(value) {\n      var date = (0, _util.parseDate)(value, this.dateFormat);\n      if (date) {\n        if (typeof this.disabledDate === 'function' && this.disabledDate(date)) {\n          return;\n        }\n        this.date = (0, _util.modifyTime)(date, this.date.getHours(), this.date.getMinutes(), this.date.getSeconds());\n        this.userInputDate = null;\n        this.resetView();\n        this.emit(this.date, true);\n      }\n    },\n    isValidValue: function isValidValue(value) {\n      return value && !isNaN(value) && (typeof this.disabledDate === 'function' ? !this.disabledDate(value) : true);\n    },\n    getDefaultValue: function getDefaultValue() {\n      // if default-value is set, return it\n      // otherwise, return now (the moment this method gets called)\n      return this.defaultValue ? new Date(this.defaultValue) : new Date();\n    }\n  },\n\n  components: {\n    TimePicker: _time2.default, YearTable: _yearTable2.default, MonthTable: _monthTable2.default, DateTable: _dateTable2.default, ElInput: _input2.default, ElButton: _button2.default\n  },\n\n  data: function data() {\n    return {\n      popperClass: '',\n      date: new Date(),\n      value: '',\n      defaultValue: null, // use getDefaultValue() for time computation\n      defaultTime: null,\n      showTime: false,\n      selectionMode: 'day',\n      shortcuts: '',\n      visible: false,\n      currentView: 'date',\n      disabledDate: '',\n      selectedDate: [],\n      firstDayOfWeek: 7,\n      showWeekNumber: false,\n      timePickerVisible: false,\n      format: '',\n      arrowControl: false,\n      userInputDate: null,\n      userInputTime: null\n    };\n  },\n\n\n  computed: {\n    year: function year() {\n      return this.date.getFullYear();\n    },\n    month: function month() {\n      return this.date.getMonth();\n    },\n    week: function week() {\n      return (0, _util.getWeekNumber)(this.date);\n    },\n    monthDate: function monthDate() {\n      return this.date.getDate();\n    },\n    footerVisible: function footerVisible() {\n      return this.showTime || this.selectionMode === 'dates';\n    },\n    visibleTime: function visibleTime() {\n      if (this.userInputTime !== null) {\n        return this.userInputTime;\n      } else {\n        return (0, _util.formatDate)(this.value || this.defaultValue, this.timeFormat);\n      }\n    },\n    visibleDate: function visibleDate() {\n      if (this.userInputDate !== null) {\n        return this.userInputDate;\n      } else {\n        return (0, _util.formatDate)(this.value || this.defaultValue, this.dateFormat);\n      }\n    },\n    yearLabel: function yearLabel() {\n      var yearTranslation = this.t('el.datepicker.year');\n      if (this.currentView === 'year') {\n        var startYear = Math.floor(this.year / 10) * 10;\n        if (yearTranslation) {\n          return startYear + ' ' + yearTranslation + ' - ' + (startYear + 9) + ' ' + yearTranslation;\n        }\n        return startYear + ' - ' + (startYear + 9);\n      }\n      return this.year + ' ' + yearTranslation;\n    },\n    timeFormat: function timeFormat() {\n      if (this.format) {\n        return (0, _util.extractTimeFormat)(this.format);\n      } else {\n        return 'HH:mm:ss';\n      }\n    },\n    dateFormat: function dateFormat() {\n      if (this.format) {\n        return (0, _util.extractDateFormat)(this.format);\n      } else {\n        return 'yyyy-MM-dd';\n      }\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _util = __webpack_require__(11);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _timeSpinner = __webpack_require__(38);\n\nvar _timeSpinner2 = _interopRequireDefault(_timeSpinner);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  mixins: [_locale2.default],\n\n  components: {\n    TimeSpinner: _timeSpinner2.default\n  },\n\n  props: {\n    visible: Boolean,\n    timeArrowControl: Boolean\n  },\n\n  watch: {\n    visible: function visible(val) {\n      var _this = this;\n\n      if (val) {\n        this.oldValue = this.value;\n        this.$nextTick(function () {\n          return _this.$refs.spinner.emitSelectRange('hours');\n        });\n      } else {\n        this.needInitAdjust = true;\n      }\n    },\n    value: function value(newVal) {\n      var _this2 = this;\n\n      var date = void 0;\n      if (newVal instanceof Date) {\n        date = (0, _util.limitTimeRange)(newVal, this.selectableRange, this.format);\n      } else if (!newVal) {\n        date = this.defaultValue ? new Date(this.defaultValue) : new Date();\n      }\n\n      this.date = date;\n      if (this.visible && this.needInitAdjust) {\n        this.$nextTick(function (_) {\n          return _this2.adjustSpinners();\n        });\n        this.needInitAdjust = false;\n      }\n    },\n    selectableRange: function selectableRange(val) {\n      this.$refs.spinner.selectableRange = val;\n    },\n    defaultValue: function defaultValue(val) {\n      if (!(0, _util.isDate)(this.value)) {\n        this.date = val ? new Date(val) : new Date();\n      }\n    }\n  },\n\n  data: function data() {\n    return {\n      popperClass: '',\n      format: 'HH:mm:ss',\n      value: '',\n      defaultValue: null,\n      date: new Date(),\n      oldValue: new Date(),\n      selectableRange: [],\n      selectionRange: [0, 2],\n      disabled: false,\n      arrowControl: false,\n      needInitAdjust: true\n    };\n  },\n\n\n  computed: {\n    showSeconds: function showSeconds() {\n      return (this.format || '').indexOf('ss') !== -1;\n    },\n    useArrow: function useArrow() {\n      return this.arrowControl || this.timeArrowControl || false;\n    },\n    amPmMode: function amPmMode() {\n      if ((this.format || '').indexOf('A') !== -1) return 'A';\n      if ((this.format || '').indexOf('a') !== -1) return 'a';\n      return '';\n    }\n  },\n\n  methods: {\n    handleCancel: function handleCancel() {\n      this.$emit('pick', this.oldValue, false);\n    },\n    handleChange: function handleChange(date) {\n      // this.visible avoids edge cases, when use scrolls during panel closing animation\n      if (this.visible) {\n        this.date = (0, _util.clearMilliseconds)(date);\n        // if date is out of range, do not emit\n        if (this.isValidValue(this.date)) {\n          this.$emit('pick', this.date, true);\n        }\n      }\n    },\n    setSelectionRange: function setSelectionRange(start, end) {\n      this.$emit('select-range', start, end);\n      this.selectionRange = [start, end];\n    },\n    handleConfirm: function handleConfirm() {\n      var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var first = arguments[1];\n\n      if (first) return;\n      var date = (0, _util.clearMilliseconds)((0, _util.limitTimeRange)(this.date, this.selectableRange, this.format));\n      this.$emit('pick', date, visible, first);\n    },\n    handleKeydown: function handleKeydown(event) {\n      var keyCode = event.keyCode;\n      var mapping = { 38: -1, 40: 1, 37: -1, 39: 1 };\n\n      // Left or Right\n      if (keyCode === 37 || keyCode === 39) {\n        var step = mapping[keyCode];\n        this.changeSelectionRange(step);\n        event.preventDefault();\n        return;\n      }\n\n      // Up or Down\n      if (keyCode === 38 || keyCode === 40) {\n        var _step = mapping[keyCode];\n        this.$refs.spinner.scrollDown(_step);\n        event.preventDefault();\n        return;\n      }\n    },\n    isValidValue: function isValidValue(date) {\n      return (0, _util.timeWithinRange)(date, this.selectableRange, this.format);\n    },\n    adjustSpinners: function adjustSpinners() {\n      return this.$refs.spinner.adjustSpinners();\n    },\n    changeSelectionRange: function changeSelectionRange(step) {\n      var list = [0, 3].concat(this.showSeconds ? [6] : []);\n      var mapping = ['hours', 'minutes'].concat(this.showSeconds ? ['seconds'] : []);\n      var index = list.indexOf(this.selectionRange[0]);\n      var next = (index + step + list.length) % list.length;\n      this.$refs.spinner.emitSelectRange(mapping[next]);\n    }\n  },\n\n  mounted: function mounted() {\n    var _this3 = this;\n\n    this.$nextTick(function () {\n      return _this3.handleConfirm(true, true);\n    });\n    this.$emit('mounted');\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _util = __webpack_require__(11);\n\nvar _scrollbar = __webpack_require__(18);\n\nvar _scrollbar2 = _interopRequireDefault(_scrollbar);\n\nvar _repeatClick = __webpack_require__(33);\n\nvar _repeatClick2 = _interopRequireDefault(_repeatClick);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  components: { ElScrollbar: _scrollbar2.default },\n\n  directives: {\n    repeatClick: _repeatClick2.default\n  },\n\n  props: {\n    date: {},\n    defaultValue: {}, // reserved for future use\n    showSeconds: {\n      type: Boolean,\n      default: true\n    },\n    arrowControl: Boolean,\n    amPmMode: {\n      type: String,\n      default: '' // 'a': am/pm; 'A': AM/PM\n    }\n  },\n\n  computed: {\n    hours: function hours() {\n      return this.date.getHours();\n    },\n    minutes: function minutes() {\n      return this.date.getMinutes();\n    },\n    seconds: function seconds() {\n      return this.date.getSeconds();\n    },\n    hoursList: function hoursList() {\n      return (0, _util.getRangeHours)(this.selectableRange);\n    },\n    arrowHourList: function arrowHourList() {\n      var hours = this.hours;\n      return [hours > 0 ? hours - 1 : undefined, hours, hours < 23 ? hours + 1 : undefined];\n    },\n    arrowMinuteList: function arrowMinuteList() {\n      var minutes = this.minutes;\n      return [minutes > 0 ? minutes - 1 : undefined, minutes, minutes < 59 ? minutes + 1 : undefined];\n    },\n    arrowSecondList: function arrowSecondList() {\n      var seconds = this.seconds;\n      return [seconds > 0 ? seconds - 1 : undefined, seconds, seconds < 59 ? seconds + 1 : undefined];\n    }\n  },\n\n  data: function data() {\n    return {\n      selectableRange: [],\n      currentScrollbar: null\n    };\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    this.$nextTick(function () {\n      !_this.arrowControl && _this.bindScrollEvent();\n    });\n  },\n\n\n  methods: {\n    increase: function increase() {\n      this.scrollDown(1);\n    },\n    decrease: function decrease() {\n      this.scrollDown(-1);\n    },\n    modifyDateField: function modifyDateField(type, value) {\n      switch (type) {\n        case 'hours':\n          this.$emit('change', (0, _util.modifyTime)(this.date, value, this.minutes, this.seconds));break;\n        case 'minutes':\n          this.$emit('change', (0, _util.modifyTime)(this.date, this.hours, value, this.seconds));break;\n        case 'seconds':\n          this.$emit('change', (0, _util.modifyTime)(this.date, this.hours, this.minutes, value));break;\n      }\n    },\n    handleClick: function handleClick(type, _ref) {\n      var value = _ref.value,\n          disabled = _ref.disabled;\n\n      if (!disabled) {\n        this.modifyDateField(type, value);\n        this.emitSelectRange(type);\n        this.adjustSpinner(type, value);\n      }\n    },\n    emitSelectRange: function emitSelectRange(type) {\n      if (type === 'hours') {\n        this.$emit('select-range', 0, 2);\n      } else if (type === 'minutes') {\n        this.$emit('select-range', 3, 5);\n      } else if (type === 'seconds') {\n        this.$emit('select-range', 6, 8);\n      }\n      this.currentScrollbar = type;\n    },\n    bindScrollEvent: function bindScrollEvent() {\n      var _this2 = this;\n\n      var bindFuntion = function bindFuntion(type) {\n        _this2.$refs[type].wrap.onscroll = function (e) {\n          // TODO: scroll is emitted when set scrollTop programatically\n          // should find better solutions in the future!\n          _this2.handleScroll(type, e);\n        };\n      };\n      bindFuntion('hours');\n      bindFuntion('minutes');\n      bindFuntion('seconds');\n    },\n    handleScroll: function handleScroll(type) {\n      var value = Math.min(Math.floor((this.$refs[type].wrap.scrollTop - 80) / 32 + 3), type === 'hours' ? 23 : 59);\n      this.modifyDateField(type, value);\n    },\n\n\n    // NOTE: used by datetime / date-range panel\n    //       renamed from adjustScrollTop\n    //       should try to refactory it\n    adjustSpinners: function adjustSpinners() {\n      this.adjustSpinner('hours', this.hours);\n      this.adjustSpinner('minutes', this.minutes);\n      this.adjustSpinner('seconds', this.seconds);\n    },\n    adjustCurrentSpinner: function adjustCurrentSpinner(type) {\n      this.adjustSpinner(type, this[type]);\n    },\n    adjustSpinner: function adjustSpinner(type, value) {\n      if (this.arrowControl) return;\n      var el = this.$refs[type].wrap;\n      if (el) {\n        el.scrollTop = Math.max(0, (value - 2.5) * 32 + 80);\n      }\n    },\n    scrollDown: function scrollDown(step) {\n      if (!this.currentScrollbar) {\n        this.emitSelectRange('hours');\n      }\n\n      var label = this.currentScrollbar;\n      var hoursList = this.hoursList;\n      var now = this[label];\n\n      if (this.currentScrollbar === 'hours') {\n        var total = Math.abs(step);\n        step = step > 0 ? 1 : -1;\n        var length = hoursList.length;\n        while (length-- && total) {\n          now = (now + step + hoursList.length) % hoursList.length;\n          if (hoursList[now]) {\n            continue;\n          }\n          total--;\n        }\n        if (hoursList[now]) return;\n      } else {\n        now = (now + step + 60) % 60;\n      }\n\n      this.modifyDateField(label, now);\n      this.adjustSpinner(label, now);\n    },\n    amPm: function amPm(hour) {\n      var shouldShowAmPm = this.amPmMode.toLowerCase() === 'a';\n      if (!shouldShowAmPm) return '';\n      var isCapital = this.amPmMode === 'A';\n      var content = hour < 12 ? ' am' : ' pm';\n      if (isCapital) content = content.toUpperCase();\n      return content;\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 180 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-time-spinner\",class:{ 'has-seconds': _vm.showSeconds }},[(!_vm.arrowControl)?[_c('el-scrollbar',{ref:\"hours\",staticClass:\"el-time-spinner__wrapper\",attrs:{\"wrap-style\":\"max-height: inherit;\",\"view-class\":\"el-time-spinner__list\",\"noresize\":\"\",\"tag\":\"ul\"},nativeOn:{\"mouseenter\":function($event){_vm.emitSelectRange('hours')},\"mousemove\":function($event){_vm.adjustCurrentSpinner('hours')}}},_vm._l((_vm.hoursList),function(disabled,hour){return _c('li',{staticClass:\"el-time-spinner__item\",class:{ 'active': hour === _vm.hours, 'disabled': disabled },on:{\"click\":function($event){_vm.handleClick('hours', { value: hour, disabled: disabled })}}},[_vm._v(_vm._s(('0' + (_vm.amPmMode ? (hour % 12 || 12) : hour )).slice(-2))+_vm._s(_vm.amPm(hour)))])})),_c('el-scrollbar',{ref:\"minutes\",staticClass:\"el-time-spinner__wrapper\",attrs:{\"wrap-style\":\"max-height: inherit;\",\"view-class\":\"el-time-spinner__list\",\"noresize\":\"\",\"tag\":\"ul\"},nativeOn:{\"mouseenter\":function($event){_vm.emitSelectRange('minutes')},\"mousemove\":function($event){_vm.adjustCurrentSpinner('minutes')}}},_vm._l((60),function(minute,key){return _c('li',{staticClass:\"el-time-spinner__item\",class:{ 'active': key === _vm.minutes },on:{\"click\":function($event){_vm.handleClick('minutes', { value: key, disabled: false })}}},[_vm._v(_vm._s(('0' + key).slice(-2)))])})),_c('el-scrollbar',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showSeconds),expression:\"showSeconds\"}],ref:\"seconds\",staticClass:\"el-time-spinner__wrapper\",attrs:{\"wrap-style\":\"max-height: inherit;\",\"view-class\":\"el-time-spinner__list\",\"noresize\":\"\",\"tag\":\"ul\"},nativeOn:{\"mouseenter\":function($event){_vm.emitSelectRange('seconds')},\"mousemove\":function($event){_vm.adjustCurrentSpinner('seconds')}}},_vm._l((60),function(second,key){return _c('li',{key:key,staticClass:\"el-time-spinner__item\",class:{ 'active': key === _vm.seconds },on:{\"click\":function($event){_vm.handleClick('seconds', { value: key, disabled: false })}}},[_vm._v(_vm._s(('0' + key).slice(-2)))])}))]:_vm._e(),(_vm.arrowControl)?[_c('div',{staticClass:\"el-time-spinner__wrapper is-arrow\",on:{\"mouseenter\":function($event){_vm.emitSelectRange('hours')}}},[_c('i',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.decrease),expression:\"decrease\"}],staticClass:\"el-time-spinner__arrow el-icon-arrow-up\"}),_c('i',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.increase),expression:\"increase\"}],staticClass:\"el-time-spinner__arrow el-icon-arrow-down\"}),_c('ul',{ref:\"hours\",staticClass:\"el-time-spinner__list\"},_vm._l((_vm.arrowHourList),function(hour,key){return _c('li',{key:key,staticClass:\"el-time-spinner__item\",class:{ 'active': hour === _vm.hours, 'disabled': _vm.hoursList[hour] }},[_vm._v(_vm._s(hour === undefined ? '' : ('0' + (_vm.amPmMode ? (hour % 12 || 12) : hour )).slice(-2) + _vm.amPm(hour)))])}))]),_c('div',{staticClass:\"el-time-spinner__wrapper is-arrow\",on:{\"mouseenter\":function($event){_vm.emitSelectRange('minutes')}}},[_c('i',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.decrease),expression:\"decrease\"}],staticClass:\"el-time-spinner__arrow el-icon-arrow-up\"}),_c('i',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.increase),expression:\"increase\"}],staticClass:\"el-time-spinner__arrow el-icon-arrow-down\"}),_c('ul',{ref:\"minutes\",staticClass:\"el-time-spinner__list\"},_vm._l((_vm.arrowMinuteList),function(minute,key){return _c('li',{key:key,staticClass:\"el-time-spinner__item\",class:{ 'active': minute === _vm.minutes }},[_vm._v(\"\\n          \"+_vm._s(minute === undefined ? '' : ('0' + minute).slice(-2))+\"\\n        \")])}))]),(_vm.showSeconds)?_c('div',{staticClass:\"el-time-spinner__wrapper is-arrow\",on:{\"mouseenter\":function($event){_vm.emitSelectRange('seconds')}}},[_c('i',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.decrease),expression:\"decrease\"}],staticClass:\"el-time-spinner__arrow el-icon-arrow-up\"}),_c('i',{directives:[{name:\"repeat-click\",rawName:\"v-repeat-click\",value:(_vm.increase),expression:\"increase\"}],staticClass:\"el-time-spinner__arrow el-icon-arrow-down\"}),_c('ul',{ref:\"seconds\",staticClass:\"el-time-spinner__list\"},_vm._l((_vm.arrowSecondList),function(second,key){return _c('li',{key:key,staticClass:\"el-time-spinner__item\",class:{ 'active': second === _vm.seconds }},[_vm._v(\"\\n          \"+_vm._s(second === undefined ? '' : ('0' + second).slice(-2))+\"\\n        \")])}))]):_vm._e()]:_vm._e()],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 181 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"after-leave\":function($event){_vm.$emit('dodestroy')}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-time-panel el-popper\",class:_vm.popperClass},[_c('div',{staticClass:\"el-time-panel__content\",class:{ 'has-seconds': _vm.showSeconds }},[_c('time-spinner',{ref:\"spinner\",attrs:{\"arrow-control\":_vm.useArrow,\"show-seconds\":_vm.showSeconds,\"am-pm-mode\":_vm.amPmMode,\"date\":_vm.date},on:{\"change\":_vm.handleChange,\"select-range\":_vm.setSelectionRange}})],1),_c('div',{staticClass:\"el-time-panel__footer\"},[_c('button',{staticClass:\"el-time-panel__btn cancel\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.handleCancel}},[_vm._v(_vm._s(_vm.t('el.datepicker.cancel')))]),_c('button',{staticClass:\"el-time-panel__btn\",class:{confirm: !_vm.disabled},attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.handleConfirm()}}},[_vm._v(_vm._s(_vm.t('el.datepicker.confirm')))])])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 182 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue__ = __webpack_require__(183);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f653c26_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_year_table_vue__ = __webpack_require__(184);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_year_table_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6f653c26_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_year_table_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(2);\n\nvar _util = __webpack_require__(11);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar datesInYear = function datesInYear(year) {\n  var numOfDays = (0, _util.getDayCountOfYear)(year);\n  var firstDay = new Date(year, 0, 1);\n  return (0, _util.range)(numOfDays).map(function (n) {\n    return (0, _util.nextDate)(firstDay, n);\n  });\n};\n\nexports.default = {\n  props: {\n    disabledDate: {},\n    value: {},\n    defaultValue: {\n      validator: function validator(val) {\n        // null or valid Date Object\n        return val === null || val instanceof Date && (0, _util.isDate)(val);\n      }\n    },\n    date: {}\n  },\n\n  computed: {\n    startYear: function startYear() {\n      return Math.floor(this.date.getFullYear() / 10) * 10;\n    }\n  },\n\n  methods: {\n    getCellStyle: function getCellStyle(year) {\n      var style = {};\n      var today = new Date();\n\n      style.disabled = typeof this.disabledDate === 'function' ? datesInYear(year).every(this.disabledDate) : false;\n      style.current = this.value.getFullYear() === year;\n      style.today = today.getFullYear() === year;\n      style.default = this.defaultValue && this.defaultValue.getFullYear() === year;\n\n      return style;\n    },\n    handleYearTableClick: function handleYearTableClick(event) {\n      var target = event.target;\n      if (target.tagName === 'A') {\n        if ((0, _dom.hasClass)(target.parentNode, 'disabled')) return;\n        var year = target.textContent || target.innerText;\n        this.$emit('pick', Number(year));\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 184 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"el-year-table\",on:{\"click\":_vm.handleYearTableClick}},[_c('tbody',[_c('tr',[_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 0)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear))])]),_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 1)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 1))])]),_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 2)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 2))])]),_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 3)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 3))])])]),_c('tr',[_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 4)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 4))])]),_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 5)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 5))])]),_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 6)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 6))])]),_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 7)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 7))])])]),_c('tr',[_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 8)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 8))])]),_c('td',{staticClass:\"available\",class:_vm.getCellStyle(_vm.startYear + 9)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.startYear + 9))])]),_c('td'),_c('td')])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 185 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue__ = __webpack_require__(186);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_312e3722_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_month_table_vue__ = __webpack_require__(187);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_month_table_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_312e3722_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_month_table_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _util = __webpack_require__(11);\n\nvar _dom = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar datesInMonth = function datesInMonth(year, month) {\n  var numOfDays = (0, _util.getDayCountOfMonth)(year, month);\n  var firstDay = new Date(year, month, 1);\n  return (0, _util.range)(numOfDays).map(function (n) {\n    return (0, _util.nextDate)(firstDay, n);\n  });\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  props: {\n    disabledDate: {},\n    value: {},\n    defaultValue: {\n      validator: function validator(val) {\n        // null or valid Date Object\n        return val === null || val instanceof Date && (0, _util.isDate)(val);\n      }\n    },\n    date: {}\n  },\n  mixins: [_locale2.default],\n  methods: {\n    getCellStyle: function getCellStyle(month) {\n      var style = {};\n      var year = this.date.getFullYear();\n      var today = new Date();\n\n      style.disabled = typeof this.disabledDate === 'function' ? datesInMonth(year, month).every(this.disabledDate) : false;\n      style.current = this.value.getFullYear() === year && this.value.getMonth() === month;\n      style.today = today.getFullYear() === year && today.getMonth() === month;\n      style.default = this.defaultValue && this.defaultValue.getFullYear() === year && this.defaultValue.getMonth() === month;\n\n      return style;\n    },\n    handleMonthTableClick: function handleMonthTableClick(event) {\n      var target = event.target;\n      if (target.tagName !== 'A') return;\n      if ((0, _dom.hasClass)(target.parentNode, 'disabled')) return;\n      var column = target.parentNode.cellIndex;\n      var row = target.parentNode.parentNode.rowIndex;\n      var month = row * 4 + column;\n\n      this.$emit('pick', month);\n    }\n  }\n};\n\n/***/ }),\n/* 187 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"el-month-table\",on:{\"click\":_vm.handleMonthTableClick}},[_c('tbody',[_c('tr',[_c('td',{class:_vm.getCellStyle(0)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.jan')))])]),_c('td',{class:_vm.getCellStyle(1)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.feb')))])]),_c('td',{class:_vm.getCellStyle(2)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.mar')))])]),_c('td',{class:_vm.getCellStyle(3)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.apr')))])])]),_c('tr',[_c('td',{class:_vm.getCellStyle(4)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.may')))])]),_c('td',{class:_vm.getCellStyle(5)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.jun')))])]),_c('td',{class:_vm.getCellStyle(6)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.jul')))])]),_c('td',{class:_vm.getCellStyle(7)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.aug')))])])]),_c('tr',[_c('td',{class:_vm.getCellStyle(8)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.sep')))])]),_c('td',{class:_vm.getCellStyle(9)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.oct')))])]),_c('td',{class:_vm.getCellStyle(10)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.nov')))])]),_c('td',{class:_vm.getCellStyle(11)},[_c('a',{staticClass:\"cell\"},[_vm._v(_vm._s(_vm.t('el.datepicker.months.dec')))])])])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _util = __webpack_require__(11);\n\nvar _dom = __webpack_require__(2);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _WEEKS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar clearHours = function clearHours(time) {\n  var cloneDate = new Date(time);\n  cloneDate.setHours(0, 0, 0, 0);\n  return cloneDate.getTime();\n};\n\nexports.default = {\n  mixins: [_locale2.default],\n\n  props: {\n    firstDayOfWeek: {\n      default: 7,\n      type: Number,\n      validator: function validator(val) {\n        return val >= 1 && val <= 7;\n      }\n    },\n\n    value: {},\n\n    defaultValue: {\n      validator: function validator(val) {\n        // either: null, valid Date object, Array of valid Date objects\n        return val === null || (0, _util.isDate)(val) || Array.isArray(val) && val.every(_util.isDate);\n      }\n    },\n\n    date: {},\n\n    selectionMode: {\n      default: 'day'\n    },\n\n    showWeekNumber: {\n      type: Boolean,\n      default: false\n    },\n\n    disabledDate: {},\n\n    selectedDate: {\n      type: Array\n    },\n\n    minDate: {},\n\n    maxDate: {},\n\n    rangeState: {\n      default: function _default() {\n        return {\n          endDate: null,\n          selecting: false,\n          row: null,\n          column: null\n        };\n      }\n    }\n  },\n\n  computed: {\n    offsetDay: function offsetDay() {\n      var week = this.firstDayOfWeek;\n      // 鍛ㄦ棩涓虹晫闄愶紝宸﹀彸鍋忕Щ鐨勫ぉ鏁帮紝3217654 渚嬪鍛ㄤ竴灏辨槸 -1锛岀洰鐨勬槸璋冩暣鍓嶄袱琛屾棩鏈熺殑浣嶇疆\n      return week > 3 ? 7 - week : -week;\n    },\n    WEEKS: function WEEKS() {\n      var week = this.firstDayOfWeek;\n      return _WEEKS.concat(_WEEKS).slice(week, week + 7);\n    },\n    year: function year() {\n      return this.date.getFullYear();\n    },\n    month: function month() {\n      return this.date.getMonth();\n    },\n    startDate: function startDate() {\n      return (0, _util.getStartDateOfMonth)(this.year, this.month);\n    },\n    rows: function rows() {\n      var _this = this;\n\n      // TODO: refactory rows / getCellClasses\n      var date = new Date(this.year, this.month, 1);\n      var day = (0, _util.getFirstDayOfMonth)(date); // day of first day\n      var dateCountOfMonth = (0, _util.getDayCountOfMonth)(date.getFullYear(), date.getMonth());\n      var dateCountOfLastMonth = (0, _util.getDayCountOfMonth)(date.getFullYear(), date.getMonth() === 0 ? 11 : date.getMonth() - 1);\n\n      day = day === 0 ? 7 : day;\n\n      var offset = this.offsetDay;\n      var rows = this.tableRows;\n      var count = 1;\n      var firstDayPosition = void 0;\n\n      var startDate = this.startDate;\n      var disabledDate = this.disabledDate;\n      var selectedDate = this.selectedDate || this.value;\n      var now = clearHours(new Date());\n\n      for (var i = 0; i < 6; i++) {\n        var row = rows[i];\n\n        if (this.showWeekNumber) {\n          if (!row[0]) {\n            row[0] = { type: 'week', text: (0, _util.getWeekNumber)((0, _util.nextDate)(startDate, i * 7 + 1)) };\n          }\n        }\n\n        var _loop = function _loop(j) {\n          var cell = row[_this.showWeekNumber ? j + 1 : j];\n          if (!cell) {\n            cell = { row: i, column: j, type: 'normal', inRange: false, start: false, end: false };\n          }\n\n          cell.type = 'normal';\n\n          var index = i * 7 + j;\n          var time = (0, _util.nextDate)(startDate, index - offset).getTime();\n          cell.inRange = time >= clearHours(_this.minDate) && time <= clearHours(_this.maxDate);\n          cell.start = _this.minDate && time === clearHours(_this.minDate);\n          cell.end = _this.maxDate && time === clearHours(_this.maxDate);\n          var isToday = time === now;\n\n          if (isToday) {\n            cell.type = 'today';\n          }\n\n          if (i >= 0 && i <= 1) {\n            if (j + i * 7 >= day + offset) {\n              cell.text = count++;\n              if (count === 2) {\n                firstDayPosition = i * 7 + j;\n              }\n            } else {\n              cell.text = dateCountOfLastMonth - (day + offset - j % 7) + 1 + i * 7;\n              cell.type = 'prev-month';\n            }\n          } else {\n            if (count <= dateCountOfMonth) {\n              cell.text = count++;\n              if (count === 2) {\n                firstDayPosition = i * 7 + j;\n              }\n            } else {\n              cell.text = count++ - dateCountOfMonth;\n              cell.type = 'next-month';\n            }\n          }\n\n          var newDate = new Date(time);\n          cell.disabled = typeof disabledDate === 'function' && disabledDate(newDate);\n          cell.selected = Array.isArray(selectedDate) && selectedDate.filter(function (date) {\n            return date.toString() === newDate.toString();\n          })[0];\n\n          _this.$set(row, _this.showWeekNumber ? j + 1 : j, cell);\n        };\n\n        for (var j = 0; j < 7; j++) {\n          _loop(j);\n        }\n\n        if (this.selectionMode === 'week') {\n          var start = this.showWeekNumber ? 1 : 0;\n          var end = this.showWeekNumber ? 7 : 6;\n          var isWeekActive = this.isWeekActive(row[start + 1]);\n\n          row[start].inRange = isWeekActive;\n          row[start].start = isWeekActive;\n          row[end].inRange = isWeekActive;\n          row[end].end = isWeekActive;\n        }\n      }\n\n      rows.firstDayPosition = firstDayPosition;\n\n      return rows;\n    }\n  },\n\n  watch: {\n    'rangeState.endDate': function rangeStateEndDate(newVal) {\n      this.markRange(newVal);\n    },\n    minDate: function minDate(newVal, oldVal) {\n      if (newVal && !oldVal) {\n        this.rangeState.selecting = true;\n        this.markRange(newVal);\n      } else if (!newVal) {\n        this.rangeState.selecting = false;\n        this.markRange(newVal);\n      } else {\n        this.markRange();\n      }\n    },\n    maxDate: function maxDate(newVal, oldVal) {\n      if (newVal && !oldVal) {\n        this.rangeState.selecting = false;\n        this.markRange(newVal);\n      }\n    }\n  },\n\n  data: function data() {\n    return {\n      tableRows: [[], [], [], [], [], []]\n    };\n  },\n\n\n  methods: {\n    cellMatchesDate: function cellMatchesDate(cell, date) {\n      var value = new Date(date);\n      return this.year === value.getFullYear() && this.month === value.getMonth() && Number(cell.text) === value.getDate();\n    },\n    getCellClasses: function getCellClasses(cell) {\n      var _this2 = this;\n\n      var selectionMode = this.selectionMode;\n      var defaultValue = this.defaultValue ? Array.isArray(this.defaultValue) ? this.defaultValue : [this.defaultValue] : [];\n\n      var classes = [];\n      if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n        classes.push('available');\n        if (cell.type === 'today') {\n          classes.push('today');\n        }\n      } else {\n        classes.push(cell.type);\n      }\n\n      if (cell.type === 'normal' && defaultValue.some(function (date) {\n        return _this2.cellMatchesDate(cell, date);\n      })) {\n        classes.push('default');\n      }\n\n      if (selectionMode === 'day' && (cell.type === 'normal' || cell.type === 'today') && this.cellMatchesDate(cell, this.value)) {\n        classes.push('current');\n      }\n\n      if (cell.inRange && (cell.type === 'normal' || cell.type === 'today' || this.selectionMode === 'week')) {\n        classes.push('in-range');\n\n        if (cell.start) {\n          classes.push('start-date');\n        }\n\n        if (cell.end) {\n          classes.push('end-date');\n        }\n      }\n\n      if (cell.disabled) {\n        classes.push('disabled');\n      }\n\n      if (cell.selected) {\n        classes.push('selected');\n      }\n\n      return classes.join(' ');\n    },\n    getDateOfCell: function getDateOfCell(row, column) {\n      var offsetFromStart = row * 7 + (column - (this.showWeekNumber ? 1 : 0)) - this.offsetDay;\n      return (0, _util.nextDate)(this.startDate, offsetFromStart);\n    },\n    isWeekActive: function isWeekActive(cell) {\n      if (this.selectionMode !== 'week') return false;\n      var newDate = new Date(this.year, this.month, 1);\n      var year = newDate.getFullYear();\n      var month = newDate.getMonth();\n\n      if (cell.type === 'prev-month') {\n        newDate.setMonth(month === 0 ? 11 : month - 1);\n        newDate.setFullYear(month === 0 ? year - 1 : year);\n      }\n\n      if (cell.type === 'next-month') {\n        newDate.setMonth(month === 11 ? 0 : month + 1);\n        newDate.setFullYear(month === 11 ? year + 1 : year);\n      }\n\n      newDate.setDate(parseInt(cell.text, 10));\n\n      var valueYear = (0, _util.isDate)(this.value) ? this.value.getFullYear() : null;\n      return year === valueYear && (0, _util.getWeekNumber)(newDate) === (0, _util.getWeekNumber)(this.value);\n    },\n    markRange: function markRange(maxDate) {\n      var startDate = this.startDate;\n      if (!maxDate) {\n        maxDate = this.maxDate;\n      }\n\n      var rows = this.rows;\n      var minDate = this.minDate;\n      for (var i = 0, k = rows.length; i < k; i++) {\n        var row = rows[i];\n        for (var j = 0, l = row.length; j < l; j++) {\n          if (this.showWeekNumber && j === 0) continue;\n\n          var _cell = row[j];\n          var index = i * 7 + j + (this.showWeekNumber ? -1 : 0);\n          var time = (0, _util.nextDate)(startDate, index - this.offsetDay).getTime();\n\n          if (maxDate && maxDate < minDate) {\n            _cell.inRange = minDate && time >= clearHours(maxDate) && time <= clearHours(minDate);\n            _cell.start = maxDate && time === clearHours(maxDate.getTime());\n            _cell.end = minDate && time === clearHours(minDate.getTime());\n          } else {\n            _cell.inRange = minDate && time >= clearHours(minDate) && time <= clearHours(maxDate);\n            _cell.start = minDate && time === clearHours(minDate.getTime());\n            _cell.end = maxDate && time === clearHours(maxDate.getTime());\n          }\n        }\n      }\n    },\n    handleMouseMove: function handleMouseMove(event) {\n      if (!this.rangeState.selecting) return;\n\n      this.$emit('changerange', {\n        minDate: this.minDate,\n        maxDate: this.maxDate,\n        rangeState: this.rangeState\n      });\n\n      var target = event.target;\n      if (target.tagName === 'SPAN') {\n        target = target.parentNode.parentNode;\n      }\n      if (target.tagName === 'DIV') {\n        target = target.parentNode;\n      }\n      if (target.tagName !== 'TD') return;\n\n      var column = target.cellIndex;\n      var row = target.parentNode.rowIndex - 1;\n      var _rangeState = this.rangeState,\n          oldRow = _rangeState.row,\n          oldColumn = _rangeState.column;\n\n\n      if (oldRow !== row || oldColumn !== column) {\n        this.rangeState.row = row;\n        this.rangeState.column = column;\n\n        this.rangeState.endDate = this.getDateOfCell(row, column);\n      }\n    },\n    handleClick: function handleClick(event) {\n      var _this3 = this;\n\n      var target = event.target;\n      if (target.tagName === 'SPAN') {\n        target = target.parentNode.parentNode;\n      }\n      if (target.tagName === 'DIV') {\n        target = target.parentNode;\n      }\n\n      if (target.tagName !== 'TD') return;\n      if ((0, _dom.hasClass)(target, 'disabled') || (0, _dom.hasClass)(target, 'week')) return;\n\n      var selectionMode = this.selectionMode;\n\n      if (selectionMode === 'week') {\n        target = target.parentNode.cells[1];\n      }\n\n      var year = Number(this.year);\n      var month = Number(this.month);\n\n      var cellIndex = target.cellIndex;\n      var rowIndex = target.parentNode.rowIndex;\n\n      var cell = this.rows[rowIndex - 1][cellIndex];\n      var text = cell.text;\n      var className = target.className;\n\n      var newDate = new Date(year, month, 1);\n\n      if (className.indexOf('prev') !== -1) {\n        if (month === 0) {\n          year = year - 1;\n          month = 11;\n        } else {\n          month = month - 1;\n        }\n        newDate.setFullYear(year);\n        newDate.setMonth(month);\n      } else if (className.indexOf('next') !== -1) {\n        if (month === 11) {\n          year = year + 1;\n          month = 0;\n        } else {\n          month = month + 1;\n        }\n        newDate.setFullYear(year);\n        newDate.setMonth(month);\n      }\n\n      newDate.setDate(parseInt(text, 10));\n\n      if (this.selectionMode === 'range') {\n        if (this.minDate && this.maxDate) {\n          var minDate = new Date(newDate.getTime());\n          var maxDate = null;\n\n          this.$emit('pick', { minDate: minDate, maxDate: maxDate }, false);\n          this.rangeState.selecting = true;\n          this.markRange(this.minDate);\n          this.$nextTick(function () {\n            _this3.handleMouseMove(event);\n          });\n        } else if (this.minDate && !this.maxDate) {\n          if (newDate >= this.minDate) {\n            var _maxDate = new Date(newDate.getTime());\n            this.rangeState.selecting = false;\n\n            this.$emit('pick', {\n              minDate: this.minDate,\n              maxDate: _maxDate\n            });\n          } else {\n            var _minDate = new Date(newDate.getTime());\n            this.rangeState.selecting = false;\n\n            this.$emit('pick', { minDate: _minDate, maxDate: this.minDate });\n          }\n        } else if (!this.minDate) {\n          var _minDate2 = new Date(newDate.getTime());\n\n          this.$emit('pick', { minDate: _minDate2, maxDate: this.maxDate }, false);\n          this.rangeState.selecting = true;\n          this.markRange(this.minDate);\n        }\n      } else if (selectionMode === 'day') {\n        this.$emit('pick', newDate);\n      } else if (selectionMode === 'week') {\n        var weekNumber = (0, _util.getWeekNumber)(newDate);\n\n        var value = newDate.getFullYear() + 'w' + weekNumber;\n        this.$emit('pick', {\n          year: newDate.getFullYear(),\n          week: weekNumber,\n          value: value,\n          date: newDate\n        });\n      } else if (selectionMode === 'dates') {\n        (function () {\n          var selectedDate = _this3.selectedDate;\n\n          if (!cell.selected) {\n            selectedDate.push(newDate);\n          } else {\n            selectedDate.forEach(function (date, index) {\n              if (date.toString() === newDate.toString()) {\n                selectedDate.splice(index, 1);\n              }\n            });\n          }\n\n          _this3.$emit('select', selectedDate);\n        })();\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 189 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"el-date-table\",class:{ 'is-week-mode': _vm.selectionMode === 'week' },attrs:{\"cellspacing\":\"0\",\"cellpadding\":\"0\"},on:{\"click\":_vm.handleClick,\"mousemove\":_vm.handleMouseMove}},[_c('tbody',[_c('tr',[(_vm.showWeekNumber)?_c('th',[_vm._v(_vm._s(_vm.t('el.datepicker.week')))]):_vm._e(),_vm._l((_vm.WEEKS),function(week,key){return _c('th',{key:key},[_vm._v(_vm._s(_vm.t('el.datepicker.weeks.' + week)))])})],2),_vm._l((_vm.rows),function(row,key){return _c('tr',{key:key,staticClass:\"el-date-table__row\",class:{ current: _vm.isWeekActive(row[1]) }},_vm._l((row),function(cell,key){return _c('td',{key:key,class:_vm.getCellClasses(cell)},[_c('div',[_c('span',[_vm._v(\"\\n          \"+_vm._s(cell.text)+\"\\n        \")])])])}))})],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 190 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"after-enter\":_vm.handleEnter,\"after-leave\":_vm.handleLeave}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-picker-panel el-date-picker el-popper\",class:[{\n      'has-sidebar': _vm.$slots.sidebar || _vm.shortcuts,\n      'has-time': _vm.showTime\n    }, _vm.popperClass]},[_c('div',{staticClass:\"el-picker-panel__body-wrapper\"},[_vm._t(\"sidebar\"),(_vm.shortcuts)?_c('div',{staticClass:\"el-picker-panel__sidebar\"},_vm._l((_vm.shortcuts),function(shortcut,key){return _c('button',{key:key,staticClass:\"el-picker-panel__shortcut\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.handleShortcutClick(shortcut)}}},[_vm._v(_vm._s(shortcut.text))])})):_vm._e(),_c('div',{staticClass:\"el-picker-panel__body\"},[(_vm.showTime)?_c('div',{staticClass:\"el-date-picker__time-header\"},[_c('span',{staticClass:\"el-date-picker__editor-wrap\"},[_c('el-input',{attrs:{\"placeholder\":_vm.t('el.datepicker.selectDate'),\"value\":_vm.visibleDate,\"size\":\"small\"},on:{\"input\":function (val) { return _vm.userInputDate = val; },\"change\":_vm.handleVisibleDateChange}})],1),_c('span',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleTimePickClose),expression:\"handleTimePickClose\"}],staticClass:\"el-date-picker__editor-wrap\"},[_c('el-input',{ref:\"input\",attrs:{\"placeholder\":_vm.t('el.datepicker.selectTime'),\"value\":_vm.visibleTime,\"size\":\"small\"},on:{\"focus\":function($event){_vm.timePickerVisible = true},\"input\":function (val) { return _vm.userInputTime = val; },\"change\":_vm.handleVisibleTimeChange}}),_c('time-picker',{ref:\"timepicker\",attrs:{\"time-arrow-control\":_vm.arrowControl,\"visible\":_vm.timePickerVisible},on:{\"pick\":_vm.handleTimePick,\"mounted\":_vm.proxyTimePickerDataProperties}})],1)]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentView !== 'time'),expression:\"currentView !== 'time'\"}],staticClass:\"el-date-picker__header\",class:{ 'el-date-picker__header--bordered': _vm.currentView === 'year' || _vm.currentView === 'month' }},[_c('button',{staticClass:\"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-d-arrow-left\",attrs:{\"type\":\"button\",\"aria-label\":_vm.t(\"el.datepicker.prevYear\")},on:{\"click\":_vm.prevYear}}),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentView === 'date'),expression:\"currentView === 'date'\"}],staticClass:\"el-picker-panel__icon-btn el-date-picker__prev-btn el-icon-arrow-left\",attrs:{\"type\":\"button\",\"aria-label\":_vm.t(\"el.datepicker.prevMonth\")},on:{\"click\":_vm.prevMonth}}),_c('span',{staticClass:\"el-date-picker__header-label\",attrs:{\"role\":\"button\"},on:{\"click\":_vm.showYearPicker}},[_vm._v(_vm._s(_vm.yearLabel))]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentView === 'date'),expression:\"currentView === 'date'\"}],staticClass:\"el-date-picker__header-label\",class:{ active: _vm.currentView === 'month' },attrs:{\"role\":\"button\"},on:{\"click\":_vm.showMonthPicker}},[_vm._v(_vm._s(_vm.t((\"el.datepicker.month\" + (_vm.month + 1)))))]),_c('button',{staticClass:\"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-d-arrow-right\",attrs:{\"type\":\"button\",\"aria-label\":_vm.t(\"el.datepicker.nextYear\")},on:{\"click\":_vm.nextYear}}),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentView === 'date'),expression:\"currentView === 'date'\"}],staticClass:\"el-picker-panel__icon-btn el-date-picker__next-btn el-icon-arrow-right\",attrs:{\"type\":\"button\",\"aria-label\":_vm.t(\"el.datepicker.nextMonth\")},on:{\"click\":_vm.nextMonth}})]),_c('div',{staticClass:\"el-picker-panel__content\"},[_c('date-table',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentView === 'date'),expression:\"currentView === 'date'\"}],attrs:{\"selection-mode\":_vm.selectionMode,\"first-day-of-week\":_vm.firstDayOfWeek,\"value\":new Date(_vm.value),\"default-value\":_vm.defaultValue ? new Date(_vm.defaultValue) : null,\"date\":_vm.date,\"disabled-date\":_vm.disabledDate,\"selected-date\":_vm.selectedDate},on:{\"pick\":_vm.handleDatePick,\"select\":_vm.handleDateSelect}}),_c('year-table',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentView === 'year'),expression:\"currentView === 'year'\"}],attrs:{\"value\":new Date(_vm.value),\"default-value\":_vm.defaultValue ? new Date(_vm.defaultValue) : null,\"date\":_vm.date,\"disabled-date\":_vm.disabledDate},on:{\"pick\":_vm.handleYearPick}}),_c('month-table',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentView === 'month'),expression:\"currentView === 'month'\"}],attrs:{\"value\":new Date(_vm.value),\"default-value\":_vm.defaultValue ? new Date(_vm.defaultValue) : null,\"date\":_vm.date,\"disabled-date\":_vm.disabledDate},on:{\"pick\":_vm.handleMonthPick}})],1)])],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.footerVisible && _vm.currentView === 'date'),expression:\"footerVisible && currentView === 'date'\"}],staticClass:\"el-picker-panel__footer\"},[_c('el-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.selectionMode !== 'dates'),expression:\"selectionMode !== 'dates'\"}],staticClass:\"el-picker-panel__link-btn\",attrs:{\"size\":\"mini\",\"type\":\"text\"},on:{\"click\":_vm.changeToNow}},[_vm._v(\"\\n        \"+_vm._s(_vm.t('el.datepicker.now'))+\"\\n      \")]),_c('el-button',{staticClass:\"el-picker-panel__link-btn\",attrs:{\"plain\":\"\",\"size\":\"mini\"},on:{\"click\":_vm.confirm}},[_vm._v(\"\\n        \"+_vm._s(_vm.t('el.datepicker.confirm'))+\"\\n      \")])],1)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 191 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_range_vue__ = __webpack_require__(192);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_range_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_range_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_52d54177_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_range_vue__ = __webpack_require__(193);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_date_range_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_52d54177_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_date_range_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _util = __webpack_require__(11);\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _time = __webpack_require__(29);\n\nvar _time2 = _interopRequireDefault(_time);\n\nvar _dateTable = __webpack_require__(39);\n\nvar _dateTable2 = _interopRequireDefault(_dateTable);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _button = __webpack_require__(15);\n\nvar _button2 = _interopRequireDefault(_button);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar advanceDate = function advanceDate(date, amount) {\n  return new Date(new Date(date).getTime() + amount);\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar calcDefaultValue = function calcDefaultValue(defaultValue) {\n  if (Array.isArray(defaultValue)) {\n    return [new Date(defaultValue[0]), new Date(defaultValue[1])];\n  } else if (defaultValue) {\n    return [new Date(defaultValue), advanceDate(defaultValue, 24 * 60 * 60 * 1000)];\n  } else {\n    return [new Date(), advanceDate(Date.now(), 24 * 60 * 60 * 1000)];\n  }\n};\n\nexports.default = {\n  mixins: [_locale2.default],\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  computed: {\n    btnDisabled: function btnDisabled() {\n      return !(this.minDate && this.maxDate && !this.selecting);\n    },\n    leftLabel: function leftLabel() {\n      return this.leftDate.getFullYear() + ' ' + this.t('el.datepicker.year') + ' ' + this.t('el.datepicker.month' + (this.leftDate.getMonth() + 1));\n    },\n    rightLabel: function rightLabel() {\n      return this.rightDate.getFullYear() + ' ' + this.t('el.datepicker.year') + ' ' + this.t('el.datepicker.month' + (this.rightDate.getMonth() + 1));\n    },\n    leftYear: function leftYear() {\n      return this.leftDate.getFullYear();\n    },\n    leftMonth: function leftMonth() {\n      return this.leftDate.getMonth();\n    },\n    leftMonthDate: function leftMonthDate() {\n      return this.leftDate.getDate();\n    },\n    rightYear: function rightYear() {\n      return this.rightDate.getFullYear();\n    },\n    rightMonth: function rightMonth() {\n      return this.rightDate.getMonth();\n    },\n    rightMonthDate: function rightMonthDate() {\n      return this.rightDate.getDate();\n    },\n    minVisibleDate: function minVisibleDate() {\n      return this.minDate ? (0, _util.formatDate)(this.minDate, this.dateFormat) : '';\n    },\n    maxVisibleDate: function maxVisibleDate() {\n      return this.maxDate || this.minDate ? (0, _util.formatDate)(this.maxDate || this.minDate, this.dateFormat) : '';\n    },\n    minVisibleTime: function minVisibleTime() {\n      return this.minDate ? (0, _util.formatDate)(this.minDate, this.timeFormat) : '';\n    },\n    maxVisibleTime: function maxVisibleTime() {\n      return this.maxDate || this.minDate ? (0, _util.formatDate)(this.maxDate || this.minDate, this.timeFormat) : '';\n    },\n    timeFormat: function timeFormat() {\n      if (this.format) {\n        return (0, _util.extractTimeFormat)(this.format);\n      } else {\n        return 'HH:mm:ss';\n      }\n    },\n    dateFormat: function dateFormat() {\n      if (this.format) {\n        return (0, _util.extractDateFormat)(this.format);\n      } else {\n        return 'yyyy-MM-dd';\n      }\n    },\n    enableMonthArrow: function enableMonthArrow() {\n      var nextMonth = (this.leftMonth + 1) % 12;\n      var yearOffset = this.leftMonth + 1 >= 12 ? 1 : 0;\n      return this.unlinkPanels && new Date(this.leftYear + yearOffset, nextMonth) < new Date(this.rightYear, this.rightMonth);\n    },\n    enableYearArrow: function enableYearArrow() {\n      return this.unlinkPanels && this.rightYear * 12 + this.rightMonth - (this.leftYear * 12 + this.leftMonth + 1) >= 12;\n    }\n  },\n\n  data: function data() {\n    return {\n      popperClass: '',\n      value: [],\n      defaultValue: null,\n      defaultTime: null,\n      minDate: '',\n      maxDate: '',\n      leftDate: new Date(),\n      rightDate: (0, _util.nextMonth)(new Date()),\n      rangeState: {\n        endDate: null,\n        selecting: false,\n        row: null,\n        column: null\n      },\n      showTime: false,\n      shortcuts: '',\n      visible: '',\n      disabledDate: '',\n      firstDayOfWeek: 7,\n      minTimePickerVisible: false,\n      maxTimePickerVisible: false,\n      format: '',\n      arrowControl: false,\n      unlinkPanels: false\n    };\n  },\n\n\n  watch: {\n    minDate: function minDate(val) {\n      var _this = this;\n\n      this.$nextTick(function () {\n        if (_this.$refs.maxTimePicker && _this.maxDate && _this.maxDate < _this.minDate) {\n          var format = 'HH:mm:ss';\n          _this.$refs.maxTimePicker.selectableRange = [[(0, _util.parseDate)((0, _util.formatDate)(_this.minDate, format), format), (0, _util.parseDate)('23:59:59', format)]];\n        }\n      });\n      if (val && this.$refs.minTimePicker) {\n        this.$refs.minTimePicker.date = val;\n        this.$refs.minTimePicker.value = val;\n      }\n    },\n    maxDate: function maxDate(val) {\n      if (val && this.$refs.maxTimePicker) {\n        this.$refs.maxTimePicker.date = val;\n        this.$refs.maxTimePicker.value = val;\n      }\n    },\n    minTimePickerVisible: function minTimePickerVisible(val) {\n      var _this2 = this;\n\n      if (val) {\n        this.$nextTick(function () {\n          _this2.$refs.minTimePicker.date = _this2.minDate;\n          _this2.$refs.minTimePicker.value = _this2.minDate;\n          _this2.$refs.minTimePicker.adjustSpinners();\n        });\n      }\n    },\n    maxTimePickerVisible: function maxTimePickerVisible(val) {\n      var _this3 = this;\n\n      if (val) {\n        this.$nextTick(function () {\n          _this3.$refs.maxTimePicker.date = _this3.maxDate;\n          _this3.$refs.maxTimePicker.value = _this3.maxDate;\n          _this3.$refs.maxTimePicker.adjustSpinners();\n        });\n      }\n    },\n    value: function value(newVal) {\n      if (!newVal) {\n        this.minDate = null;\n        this.maxDate = null;\n      } else if (Array.isArray(newVal)) {\n        this.minDate = (0, _util.isDate)(newVal[0]) ? new Date(newVal[0]) : null;\n        this.maxDate = (0, _util.isDate)(newVal[1]) ? new Date(newVal[1]) : null;\n        // NOTE: currently, maxDate = minDate + 1 month\n        //       should allow them to be set individually in the future\n        if (this.minDate) {\n          this.leftDate = this.minDate;\n          if (this.unlinkPanels && this.maxDate) {\n            var minDateYear = this.minDate.getFullYear();\n            var minDateMonth = this.minDate.getMonth();\n            var maxDateYear = this.maxDate.getFullYear();\n            var maxDateMonth = this.maxDate.getMonth();\n            this.rightDate = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? (0, _util.nextMonth)(this.maxDate) : this.maxDate;\n          } else {\n            this.rightDate = (0, _util.nextMonth)(this.leftDate);\n          }\n        } else {\n          this.leftDate = calcDefaultValue(this.defaultValue)[0];\n          this.rightDate = (0, _util.nextMonth)(this.leftDate);\n        }\n      }\n    },\n    defaultValue: function defaultValue(val) {\n      if (!Array.isArray(this.value)) {\n        var _calcDefaultValue = calcDefaultValue(val),\n            left = _calcDefaultValue[0],\n            right = _calcDefaultValue[1];\n\n        this.leftDate = left;\n        this.rightDate = val && val[1] && this.unlinkPanels ? right : (0, _util.nextMonth)(this.leftDate);\n      }\n    }\n  },\n\n  methods: {\n    handleClear: function handleClear() {\n      this.minDate = null;\n      this.maxDate = null;\n      this.leftDate = calcDefaultValue(this.defaultValue)[0];\n      this.rightDate = (0, _util.nextMonth)(this.leftDate);\n      this.$emit('pick', null);\n    },\n    handleChangeRange: function handleChangeRange(val) {\n      this.minDate = val.minDate;\n      this.maxDate = val.maxDate;\n      this.rangeState = val.rangeState;\n    },\n    handleDateInput: function handleDateInput(event, type) {\n      var value = event.target.value;\n      if (value.length !== this.dateFormat.length) return;\n      var parsedValue = (0, _util.parseDate)(value, this.dateFormat);\n\n      if (parsedValue) {\n        if (typeof this.disabledDate === 'function' && this.disabledDate(new Date(parsedValue))) {\n          return;\n        }\n        if (type === 'min') {\n          this.minDate = new Date(parsedValue);\n          this.leftDate = new Date(parsedValue);\n          this.rightDate = (0, _util.nextMonth)(this.leftDate);\n        } else {\n          this.maxDate = new Date(parsedValue);\n          this.leftDate = (0, _util.prevMonth)(parsedValue);\n          this.rightDate = new Date(parsedValue);\n        }\n      }\n    },\n    handleDateChange: function handleDateChange(event, type) {\n      var value = event.target.value;\n      var parsedValue = (0, _util.parseDate)(value, this.dateFormat);\n      if (parsedValue) {\n        if (type === 'min') {\n          this.minDate = (0, _util.modifyDate)(this.minDate, parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());\n          if (this.minDate > this.maxDate) {\n            this.maxDate = this.minDate;\n          }\n        } else {\n          this.maxDate = (0, _util.modifyDate)(this.maxDate, parsedValue.getFullYear(), parsedValue.getMonth(), parsedValue.getDate());\n          if (this.maxDate < this.minDate) {\n            this.minDate = this.maxDate;\n          }\n        }\n      }\n    },\n    handleTimeChange: function handleTimeChange(event, type) {\n      var value = event.target.value;\n      var parsedValue = (0, _util.parseDate)(value, this.timeFormat);\n      if (parsedValue) {\n        if (type === 'min') {\n          this.minDate = (0, _util.modifyTime)(this.minDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());\n          if (this.minDate > this.maxDate) {\n            this.maxDate = this.minDate;\n          }\n          this.$refs.minTimePicker.value = this.minDate;\n          this.minTimePickerVisible = false;\n        } else {\n          this.maxDate = (0, _util.modifyTime)(this.maxDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());\n          if (this.maxDate < this.minDate) {\n            this.minDate = this.maxDate;\n          }\n          this.$refs.maxTimePicker.value = this.minDate;\n          this.maxTimePickerVisible = false;\n        }\n      }\n    },\n    handleRangePick: function handleRangePick(val) {\n      var _this4 = this;\n\n      var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n      var defaultTime = this.defaultTime || [];\n      var minDate = (0, _util.modifyWithTimeString)(val.minDate, defaultTime[0]);\n      var maxDate = (0, _util.modifyWithTimeString)(val.maxDate, defaultTime[1]);\n\n      if (this.maxDate === maxDate && this.minDate === minDate) {\n        return;\n      }\n      this.onPick && this.onPick(val);\n      this.maxDate = maxDate;\n      this.minDate = minDate;\n\n      // workaround for https://github.com/ElemeFE/element/issues/7539, should remove this block when we don't have to care about Chromium 55 - 57\n      setTimeout(function () {\n        _this4.maxDate = maxDate;\n        _this4.minDate = minDate;\n      }, 10);\n      if (!close || this.showTime) return;\n      this.handleConfirm();\n    },\n    handleShortcutClick: function handleShortcutClick(shortcut) {\n      if (shortcut.onClick) {\n        shortcut.onClick(this);\n      }\n    },\n    handleMinTimePick: function handleMinTimePick(value, visible, first) {\n      this.minDate = this.minDate || new Date();\n      if (value) {\n        this.minDate = (0, _util.modifyTime)(this.minDate, value.getHours(), value.getMinutes(), value.getSeconds());\n      }\n\n      if (!first) {\n        this.minTimePickerVisible = visible;\n      }\n\n      if (!this.maxDate || this.maxDate && this.maxDate.getTime() < this.minDate.getTime()) {\n        this.maxDate = new Date(this.minDate);\n      }\n    },\n    handleMinTimeClose: function handleMinTimeClose() {\n      this.minTimePickerVisible = false;\n    },\n    handleMaxTimePick: function handleMaxTimePick(value, visible, first) {\n      if (this.maxDate && value) {\n        this.maxDate = (0, _util.modifyTime)(this.maxDate, value.getHours(), value.getMinutes(), value.getSeconds());\n      }\n\n      if (!first) {\n        this.maxTimePickerVisible = visible;\n      }\n\n      if (this.maxDate && this.minDate && this.minDate.getTime() > this.maxDate.getTime()) {\n        this.minDate = new Date(this.maxDate);\n      }\n    },\n    handleMaxTimeClose: function handleMaxTimeClose() {\n      this.maxTimePickerVisible = false;\n    },\n\n\n    // leftPrev*, rightNext* need to take care of `unlinkPanels`\n    leftPrevYear: function leftPrevYear() {\n      this.leftDate = (0, _util.prevYear)(this.leftDate);\n      if (!this.unlinkPanels) {\n        this.rightDate = (0, _util.nextMonth)(this.leftDate);\n      }\n    },\n    leftPrevMonth: function leftPrevMonth() {\n      this.leftDate = (0, _util.prevMonth)(this.leftDate);\n      if (!this.unlinkPanels) {\n        this.rightDate = (0, _util.nextMonth)(this.leftDate);\n      }\n    },\n    rightNextYear: function rightNextYear() {\n      if (!this.unlinkPanels) {\n        this.leftDate = (0, _util.nextYear)(this.leftDate);\n        this.rightDate = (0, _util.nextMonth)(this.leftDate);\n      } else {\n        this.rightDate = (0, _util.nextYear)(this.rightDate);\n      }\n    },\n    rightNextMonth: function rightNextMonth() {\n      if (!this.unlinkPanels) {\n        this.leftDate = (0, _util.nextMonth)(this.leftDate);\n        this.rightDate = (0, _util.nextMonth)(this.leftDate);\n      } else {\n        this.rightDate = (0, _util.nextMonth)(this.rightDate);\n      }\n    },\n\n\n    // leftNext*, rightPrev* are called when `unlinkPanels` is true\n    leftNextYear: function leftNextYear() {\n      this.leftDate = (0, _util.nextYear)(this.leftDate);\n    },\n    leftNextMonth: function leftNextMonth() {\n      this.leftDate = (0, _util.nextMonth)(this.leftDate);\n    },\n    rightPrevYear: function rightPrevYear() {\n      this.rightDate = (0, _util.prevYear)(this.rightDate);\n    },\n    rightPrevMonth: function rightPrevMonth() {\n      this.rightDate = (0, _util.prevMonth)(this.rightDate);\n    },\n    handleConfirm: function handleConfirm() {\n      var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n      this.$emit('pick', [this.minDate, this.maxDate], visible);\n    },\n    isValidValue: function isValidValue(value) {\n      return Array.isArray(value) && value && value[0] && value[1] && (0, _util.isDate)(value[0]) && (0, _util.isDate)(value[1]) && value[0].getTime() <= value[1].getTime() && (typeof this.disabledDate === 'function' ? !this.disabledDate(value[0]) && !this.disabledDate(value[1]) : true);\n    }\n  },\n\n  components: { TimePicker: _time2.default, DateTable: _dateTable2.default, ElInput: _input2.default, ElButton: _button2.default }\n};\n\n/***/ }),\n/* 193 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"after-leave\":function($event){_vm.$emit('dodestroy')}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-picker-panel el-date-range-picker el-popper\",class:[{\n      'has-sidebar': _vm.$slots.sidebar || _vm.shortcuts,\n      'has-time': _vm.showTime\n    }, _vm.popperClass]},[_c('div',{staticClass:\"el-picker-panel__body-wrapper\"},[_vm._t(\"sidebar\"),(_vm.shortcuts)?_c('div',{staticClass:\"el-picker-panel__sidebar\"},_vm._l((_vm.shortcuts),function(shortcut,key){return _c('button',{key:key,staticClass:\"el-picker-panel__shortcut\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.handleShortcutClick(shortcut)}}},[_vm._v(_vm._s(shortcut.text))])})):_vm._e(),_c('div',{staticClass:\"el-picker-panel__body\"},[(_vm.showTime)?_c('div',{staticClass:\"el-date-range-picker__time-header\"},[_c('span',{staticClass:\"el-date-range-picker__editors-wrap\"},[_c('span',{staticClass:\"el-date-range-picker__time-picker-wrap\"},[_c('el-input',{ref:\"minInput\",staticClass:\"el-date-range-picker__editor\",attrs:{\"size\":\"small\",\"disabled\":_vm.rangeState.selecting,\"placeholder\":_vm.t('el.datepicker.startDate'),\"value\":_vm.minVisibleDate},nativeOn:{\"input\":function($event){_vm.handleDateInput($event, 'min')},\"change\":function($event){_vm.handleDateChange($event, 'min')}}})],1),_c('span',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleMinTimeClose),expression:\"handleMinTimeClose\"}],staticClass:\"el-date-range-picker__time-picker-wrap\"},[_c('el-input',{staticClass:\"el-date-range-picker__editor\",attrs:{\"size\":\"small\",\"disabled\":_vm.rangeState.selecting,\"placeholder\":_vm.t('el.datepicker.startTime'),\"value\":_vm.minVisibleTime},on:{\"focus\":function($event){_vm.minTimePickerVisible = true}},nativeOn:{\"change\":function($event){_vm.handleTimeChange($event, 'min')}}}),_c('time-picker',{ref:\"minTimePicker\",attrs:{\"time-arrow-control\":_vm.arrowControl,\"visible\":_vm.minTimePickerVisible},on:{\"pick\":_vm.handleMinTimePick,\"mounted\":function($event){_vm.$refs.minTimePicker.format=_vm.timeFormat}}})],1)]),_c('span',{staticClass:\"el-icon-arrow-right\"}),_c('span',{staticClass:\"el-date-range-picker__editors-wrap is-right\"},[_c('span',{staticClass:\"el-date-range-picker__time-picker-wrap\"},[_c('el-input',{staticClass:\"el-date-range-picker__editor\",attrs:{\"size\":\"small\",\"disabled\":_vm.rangeState.selecting,\"placeholder\":_vm.t('el.datepicker.endDate'),\"value\":_vm.maxVisibleDate,\"readonly\":!_vm.minDate},nativeOn:{\"input\":function($event){_vm.handleDateInput($event, 'max')},\"change\":function($event){_vm.handleDateChange($event, 'max')}}})],1),_c('span',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleMaxTimeClose),expression:\"handleMaxTimeClose\"}],staticClass:\"el-date-range-picker__time-picker-wrap\"},[_c('el-input',{ref:\"maxInput\",staticClass:\"el-date-range-picker__editor\",attrs:{\"size\":\"small\",\"disabled\":_vm.rangeState.selecting,\"placeholder\":_vm.t('el.datepicker.endTime'),\"value\":_vm.maxVisibleTime,\"readonly\":!_vm.minDate},on:{\"focus\":function($event){_vm.minDate && (_vm.maxTimePickerVisible = true)}},nativeOn:{\"change\":function($event){_vm.handleTimeChange($event, 'max')}}}),_c('time-picker',{ref:\"maxTimePicker\",attrs:{\"time-arrow-control\":_vm.arrowControl,\"visible\":_vm.maxTimePickerVisible},on:{\"pick\":_vm.handleMaxTimePick,\"mounted\":function($event){_vm.$refs.maxTimePicker.format=_vm.timeFormat}}})],1)])]):_vm._e(),_c('div',{staticClass:\"el-picker-panel__content el-date-range-picker__content is-left\"},[_c('div',{staticClass:\"el-date-range-picker__header\"},[_c('button',{staticClass:\"el-picker-panel__icon-btn el-icon-d-arrow-left\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.leftPrevYear}}),_c('button',{staticClass:\"el-picker-panel__icon-btn el-icon-arrow-left\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.leftPrevMonth}}),(_vm.unlinkPanels)?_c('button',{staticClass:\"el-picker-panel__icon-btn el-icon-d-arrow-right\",class:{ 'is-disabled': !_vm.enableYearArrow },attrs:{\"type\":\"button\",\"disabled\":!_vm.enableYearArrow},on:{\"click\":_vm.leftNextYear}}):_vm._e(),(_vm.unlinkPanels)?_c('button',{staticClass:\"el-picker-panel__icon-btn el-icon-arrow-right\",class:{ 'is-disabled': !_vm.enableMonthArrow },attrs:{\"type\":\"button\",\"disabled\":!_vm.enableMonthArrow},on:{\"click\":_vm.leftNextMonth}}):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.leftLabel))])]),_c('date-table',{attrs:{\"selection-mode\":\"range\",\"date\":_vm.leftDate,\"default-value\":_vm.defaultValue,\"min-date\":_vm.minDate,\"max-date\":_vm.maxDate,\"range-state\":_vm.rangeState,\"disabled-date\":_vm.disabledDate,\"first-day-of-week\":_vm.firstDayOfWeek},on:{\"changerange\":_vm.handleChangeRange,\"pick\":_vm.handleRangePick}})],1),_c('div',{staticClass:\"el-picker-panel__content el-date-range-picker__content is-right\"},[_c('div',{staticClass:\"el-date-range-picker__header\"},[(_vm.unlinkPanels)?_c('button',{staticClass:\"el-picker-panel__icon-btn el-icon-d-arrow-left\",class:{ 'is-disabled': !_vm.enableYearArrow },attrs:{\"type\":\"button\",\"disabled\":!_vm.enableYearArrow},on:{\"click\":_vm.rightPrevYear}}):_vm._e(),(_vm.unlinkPanels)?_c('button',{staticClass:\"el-picker-panel__icon-btn el-icon-arrow-left\",class:{ 'is-disabled': !_vm.enableMonthArrow },attrs:{\"type\":\"button\",\"disabled\":!_vm.enableMonthArrow},on:{\"click\":_vm.rightPrevMonth}}):_vm._e(),_c('button',{staticClass:\"el-picker-panel__icon-btn el-icon-d-arrow-right\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.rightNextYear}}),_c('button',{staticClass:\"el-picker-panel__icon-btn el-icon-arrow-right\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.rightNextMonth}}),_c('div',[_vm._v(_vm._s(_vm.rightLabel))])]),_c('date-table',{attrs:{\"selection-mode\":\"range\",\"date\":_vm.rightDate,\"default-value\":_vm.defaultValue,\"min-date\":_vm.minDate,\"max-date\":_vm.maxDate,\"range-state\":_vm.rangeState,\"disabled-date\":_vm.disabledDate,\"first-day-of-week\":_vm.firstDayOfWeek},on:{\"changerange\":_vm.handleChangeRange,\"pick\":_vm.handleRangePick}})],1)])],2),(_vm.showTime)?_c('div',{staticClass:\"el-picker-panel__footer\"},[_c('el-button',{staticClass:\"el-picker-panel__link-btn\",attrs:{\"size\":\"mini\",\"type\":\"text\"},on:{\"click\":_vm.handleClear}},[_vm._v(\"\\n        \"+_vm._s(_vm.t('el.datepicker.clear'))+\"\\n      \")]),_c('el-button',{staticClass:\"el-picker-panel__link-btn\",attrs:{\"plain\":\"\",\"size\":\"mini\",\"disabled\":_vm.btnDisabled},on:{\"click\":function($event){_vm.handleConfirm()}}},[_vm._v(\"\\n        \"+_vm._s(_vm.t('el.datepicker.confirm'))+\"\\n      \")])],1):_vm._e()])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 194 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _timeSelect = __webpack_require__(195);\n\nvar _timeSelect2 = _interopRequireDefault(_timeSelect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_timeSelect2.default.install = function (Vue) {\n  Vue.component(_timeSelect2.default.name, _timeSelect2.default);\n};\n\nexports.default = _timeSelect2.default;\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _timeSelect = __webpack_require__(196);\n\nvar _timeSelect2 = _interopRequireDefault(_timeSelect);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  mixins: [_picker2.default],\n\n  name: 'ElTimeSelect',\n\n  componentName: 'ElTimeSelect',\n\n  props: {\n    type: {\n      type: String,\n      default: 'time-select'\n    }\n  },\n\n  beforeCreate: function beforeCreate() {\n    this.panel = _timeSelect2.default;\n  }\n};\n\n/***/ }),\n/* 196 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_select_vue__ = __webpack_require__(197);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_select_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_select_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3aff1533_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_select_vue__ = __webpack_require__(198);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_select_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3aff1533_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_select_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _scrollbar = __webpack_require__(18);\n\nvar _scrollbar2 = _interopRequireDefault(_scrollbar);\n\nvar _scrollIntoView = __webpack_require__(26);\n\nvar _scrollIntoView2 = _interopRequireDefault(_scrollIntoView);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar parseTime = function parseTime(time) {\n  var values = (time || '').split(':');\n  if (values.length >= 2) {\n    var hours = parseInt(values[0], 10);\n    var minutes = parseInt(values[1], 10);\n\n    return {\n      hours: hours,\n      minutes: minutes\n    };\n  }\n  /* istanbul ignore next */\n  return null;\n};\n\nvar compareTime = function compareTime(time1, time2) {\n  var value1 = parseTime(time1);\n  var value2 = parseTime(time2);\n\n  var minutes1 = value1.minutes + value1.hours * 60;\n  var minutes2 = value2.minutes + value2.hours * 60;\n\n  if (minutes1 === minutes2) {\n    return 0;\n  }\n\n  return minutes1 > minutes2 ? 1 : -1;\n};\n\nvar formatTime = function formatTime(time) {\n  return (time.hours < 10 ? '0' + time.hours : time.hours) + ':' + (time.minutes < 10 ? '0' + time.minutes : time.minutes);\n};\n\nvar nextTime = function nextTime(time, step) {\n  var timeValue = parseTime(time);\n  var stepValue = parseTime(step);\n\n  var next = {\n    hours: timeValue.hours,\n    minutes: timeValue.minutes\n  };\n\n  next.minutes += stepValue.minutes;\n  next.hours += stepValue.hours;\n\n  next.hours += Math.floor(next.minutes / 60);\n  next.minutes = next.minutes % 60;\n\n  return formatTime(next);\n};\n\nexports.default = {\n  components: { ElScrollbar: _scrollbar2.default },\n\n  watch: {\n    value: function value(val) {\n      var _this = this;\n\n      if (!val) return;\n      this.$nextTick(function () {\n        return _this.scrollToOption();\n      });\n    }\n  },\n\n  methods: {\n    handleClick: function handleClick(item) {\n      if (!item.disabled) {\n        this.$emit('pick', item.value);\n      }\n    },\n    handleClear: function handleClear() {\n      this.$emit('pick', null);\n    },\n    scrollToOption: function scrollToOption() {\n      var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '.selected';\n\n      var menu = this.$refs.popper.querySelector('.el-picker-panel__content');\n      (0, _scrollIntoView2.default)(menu, menu.querySelector(selector));\n    },\n    handleMenuEnter: function handleMenuEnter() {\n      var _this2 = this;\n\n      var selected = this.items.map(function (item) {\n        return item.value;\n      }).indexOf(this.value) !== -1;\n      var hasDefault = this.items.map(function (item) {\n        return item.value;\n      }).indexOf(this.defaultValue) !== -1;\n      var option = selected && '.selected' || hasDefault && '.default' || '.time-select-item:not(.disabled)';\n      this.$nextTick(function () {\n        return _this2.scrollToOption(option);\n      });\n    },\n    scrollDown: function scrollDown(step) {\n      var items = this.items;\n      var length = items.length;\n      var total = items.length;\n      var index = items.map(function (item) {\n        return item.value;\n      }).indexOf(this.value);\n      while (total--) {\n        index = (index + step + length) % length;\n        if (!items[index].disabled) {\n          this.$emit('pick', items[index].value, true);\n          return;\n        }\n      }\n    },\n    isValidValue: function isValidValue(date) {\n      return this.items.filter(function (item) {\n        return !item.disabled;\n      }).map(function (item) {\n        return item.value;\n      }).indexOf(date) !== -1;\n    },\n    handleKeydown: function handleKeydown(event) {\n      var keyCode = event.keyCode;\n      if (keyCode === 38 || keyCode === 40) {\n        var mapping = { 40: 1, 38: -1 };\n        var offset = mapping[keyCode.toString()];\n        this.scrollDown(offset);\n        event.stopPropagation();\n        return;\n      }\n    }\n  },\n\n  data: function data() {\n    return {\n      popperClass: '',\n      start: '09:00',\n      end: '18:00',\n      step: '00:30',\n      value: '',\n      defaultValue: '',\n      visible: false,\n      minTime: '',\n      maxTime: '',\n      width: 0\n    };\n  },\n\n\n  computed: {\n    items: function items() {\n      var start = this.start;\n      var end = this.end;\n      var step = this.step;\n\n      var result = [];\n\n      if (start && end && step) {\n        var current = start;\n        while (compareTime(current, end) <= 0) {\n          result.push({\n            value: current,\n            disabled: compareTime(current, this.minTime || '-1:-1') <= 0 || compareTime(current, this.maxTime || '100:100') >= 0\n          });\n          current = nextTime(current, step);\n        }\n      }\n\n      return result;\n    }\n  }\n};\n\n/***/ }),\n/* 198 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"before-enter\":_vm.handleMenuEnter,\"after-leave\":function($event){_vm.$emit('dodestroy')}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],ref:\"popper\",staticClass:\"el-picker-panel time-select el-popper\",class:_vm.popperClass,style:({ width: _vm.width + 'px' })},[_c('el-scrollbar',{attrs:{\"noresize\":\"\",\"wrap-class\":\"el-picker-panel__content\"}},_vm._l((_vm.items),function(item){return _c('div',{staticClass:\"time-select-item\",class:{ selected: _vm.value === item.value, disabled: item.disabled, default: item.value === _vm.defaultValue },attrs:{\"disabled\":item.disabled},on:{\"click\":function($event){_vm.handleClick(item)}}},[_vm._v(_vm._s(item.value))])}))],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _timePicker = __webpack_require__(200);\n\nvar _timePicker2 = _interopRequireDefault(_timePicker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_timePicker2.default.install = function (Vue) {\n  Vue.component(_timePicker2.default.name, _timePicker2.default);\n};\n\nexports.default = _timePicker2.default;\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _time = __webpack_require__(29);\n\nvar _time2 = _interopRequireDefault(_time);\n\nvar _timeRange = __webpack_require__(201);\n\nvar _timeRange2 = _interopRequireDefault(_timeRange);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  mixins: [_picker2.default],\n\n  name: 'ElTimePicker',\n\n  props: {\n    isRange: Boolean,\n    arrowControl: Boolean\n  },\n\n  data: function data() {\n    return {\n      type: ''\n    };\n  },\n\n\n  watch: {\n    isRange: function isRange(_isRange) {\n      if (this.picker) {\n        this.unmountPicker();\n        this.type = _isRange ? 'timerange' : 'time';\n        this.panel = _isRange ? _timeRange2.default : _time2.default;\n        this.mountPicker();\n      } else {\n        this.type = _isRange ? 'timerange' : 'time';\n        this.panel = _isRange ? _timeRange2.default : _time2.default;\n      }\n    }\n  },\n\n  created: function created() {\n    this.type = this.isRange ? 'timerange' : 'time';\n    this.panel = this.isRange ? _timeRange2.default : _time2.default;\n  }\n};\n\n/***/ }),\n/* 201 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue__ = __webpack_require__(202);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_a222ec54_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_range_vue__ = __webpack_require__(203);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_a222ec54_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_range_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _util = __webpack_require__(11);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _timeSpinner = __webpack_require__(38);\n\nvar _timeSpinner2 = _interopRequireDefault(_timeSpinner);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MIN_TIME = (0, _util.parseDate)('00:00:00', 'HH:mm:ss'); //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar MAX_TIME = (0, _util.parseDate)('23:59:59', 'HH:mm:ss');\n\nvar minTimeOfDay = function minTimeOfDay(date) {\n  return (0, _util.modifyDate)(MIN_TIME, date.getFullYear(), date.getMonth(), date.getDate());\n};\n\nvar maxTimeOfDay = function maxTimeOfDay(date) {\n  return (0, _util.modifyDate)(MAX_TIME, date.getFullYear(), date.getMonth(), date.getDate());\n};\n\n// increase time by amount of milliseconds, but within the range of day\nvar advanceTime = function advanceTime(date, amount) {\n  return new Date(Math.min(date.getTime() + amount, maxTimeOfDay(date).getTime()));\n};\n\nexports.default = {\n  mixins: [_locale2.default],\n\n  components: { TimeSpinner: _timeSpinner2.default },\n\n  computed: {\n    showSeconds: function showSeconds() {\n      return (this.format || '').indexOf('ss') !== -1;\n    },\n    offset: function offset() {\n      return this.showSeconds ? 11 : 8;\n    },\n    spinner: function spinner() {\n      return this.selectionRange[0] < this.offset ? this.$refs.minSpinner : this.$refs.maxSpinner;\n    },\n    btnDisabled: function btnDisabled() {\n      return this.minDate.getTime() > this.maxDate.getTime();\n    },\n    amPmMode: function amPmMode() {\n      if ((this.format || '').indexOf('A') !== -1) return 'A';\n      if ((this.format || '').indexOf('a') !== -1) return 'a';\n      return '';\n    }\n  },\n\n  data: function data() {\n    return {\n      popperClass: '',\n      minDate: new Date(),\n      maxDate: new Date(),\n      value: [],\n      oldValue: [new Date(), new Date()],\n      defaultValue: null,\n      format: 'HH:mm:ss',\n      visible: false,\n      selectionRange: [0, 2],\n      arrowControl: false\n    };\n  },\n\n\n  watch: {\n    value: function value(_value) {\n      if (Array.isArray(_value)) {\n        this.minDate = new Date(_value[0]);\n        this.maxDate = new Date(_value[1]);\n      } else {\n        if (Array.isArray(this.defaultValue)) {\n          this.minDate = new Date(this.defaultValue[0]);\n          this.maxDate = new Date(this.defaultValue[1]);\n        } else if (this.defaultValue) {\n          this.minDate = new Date(this.defaultValue);\n          this.maxDate = advanceTime(new Date(this.defaultValue), 60 * 60 * 1000);\n        } else {\n          this.minDate = new Date();\n          this.maxDate = advanceTime(new Date(), 60 * 60 * 1000);\n        }\n      }\n    },\n    visible: function visible(val) {\n      var _this = this;\n\n      if (val) {\n        this.oldValue = this.value;\n        this.$nextTick(function () {\n          return _this.$refs.minSpinner.emitSelectRange('hours');\n        });\n      }\n    }\n  },\n\n  methods: {\n    handleClear: function handleClear() {\n      this.$emit('pick', null);\n    },\n    handleCancel: function handleCancel() {\n      this.$emit('pick', this.oldValue);\n    },\n    handleMinChange: function handleMinChange(date) {\n      this.minDate = (0, _util.clearMilliseconds)(date);\n      this.handleChange();\n    },\n    handleMaxChange: function handleMaxChange(date) {\n      this.maxDate = (0, _util.clearMilliseconds)(date);\n      this.handleChange();\n    },\n    handleChange: function handleChange() {\n      if (this.isValidValue([this.minDate, this.maxDate])) {\n        this.$refs.minSpinner.selectableRange = [[minTimeOfDay(this.minDate), this.maxDate]];\n        this.$refs.maxSpinner.selectableRange = [[this.minDate, maxTimeOfDay(this.maxDate)]];\n        this.$emit('pick', [this.minDate, this.maxDate], true);\n      }\n    },\n    setMinSelectionRange: function setMinSelectionRange(start, end) {\n      this.$emit('select-range', start, end, 'min');\n      this.selectionRange = [start, end];\n    },\n    setMaxSelectionRange: function setMaxSelectionRange(start, end) {\n      this.$emit('select-range', start, end, 'max');\n      this.selectionRange = [start + this.offset, end + this.offset];\n    },\n    handleConfirm: function handleConfirm() {\n      var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n      var minSelectableRange = this.$refs.minSpinner.selectableRange;\n      var maxSelectableRange = this.$refs.maxSpinner.selectableRange;\n\n      this.minDate = (0, _util.limitTimeRange)(this.minDate, minSelectableRange, this.format);\n      this.maxDate = (0, _util.limitTimeRange)(this.maxDate, maxSelectableRange, this.format);\n\n      this.$emit('pick', [this.minDate, this.maxDate], visible);\n    },\n    adjustSpinners: function adjustSpinners() {\n      this.$refs.minSpinner.adjustSpinners();\n      this.$refs.maxSpinner.adjustSpinners();\n    },\n    changeSelectionRange: function changeSelectionRange(step) {\n      var list = this.showSeconds ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11];\n      var mapping = ['hours', 'minutes'].concat(this.showSeconds ? ['seconds'] : []);\n      var index = list.indexOf(this.selectionRange[0]);\n      var next = (index + step + list.length) % list.length;\n      var half = list.length / 2;\n      if (next < half) {\n        this.$refs.minSpinner.emitSelectRange(mapping[next]);\n      } else {\n        this.$refs.maxSpinner.emitSelectRange(mapping[next - half]);\n      }\n    },\n    isValidValue: function isValidValue(date) {\n      return Array.isArray(date) && (0, _util.timeWithinRange)(this.minDate, this.$refs.minSpinner.selectableRange) && (0, _util.timeWithinRange)(this.maxDate, this.$refs.maxSpinner.selectableRange);\n    },\n    handleKeydown: function handleKeydown(event) {\n      var keyCode = event.keyCode;\n      var mapping = { 38: -1, 40: 1, 37: -1, 39: 1 };\n\n      // Left or Right\n      if (keyCode === 37 || keyCode === 39) {\n        var step = mapping[keyCode];\n        this.changeSelectionRange(step);\n        event.preventDefault();\n        return;\n      }\n\n      // Up or Down\n      if (keyCode === 38 || keyCode === 40) {\n        var _step = mapping[keyCode];\n        this.spinner.scrollDown(_step);\n        event.preventDefault();\n        return;\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 203 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"after-leave\":function($event){_vm.$emit('dodestroy')}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-time-range-picker el-picker-panel el-popper\",class:_vm.popperClass},[_c('div',{staticClass:\"el-time-range-picker__content\"},[_c('div',{staticClass:\"el-time-range-picker__cell\"},[_c('div',{staticClass:\"el-time-range-picker__header\"},[_vm._v(_vm._s(_vm.t('el.datepicker.startTime')))]),_c('div',{staticClass:\"el-time-range-picker__body el-time-panel__content\",class:{ 'has-seconds': _vm.showSeconds, 'is-arrow': _vm.arrowControl }},[_c('time-spinner',{ref:\"minSpinner\",attrs:{\"show-seconds\":_vm.showSeconds,\"am-pm-mode\":_vm.amPmMode,\"arrow-control\":_vm.arrowControl,\"date\":_vm.minDate},on:{\"change\":_vm.handleMinChange,\"select-range\":_vm.setMinSelectionRange}})],1)]),_c('div',{staticClass:\"el-time-range-picker__cell\"},[_c('div',{staticClass:\"el-time-range-picker__header\"},[_vm._v(_vm._s(_vm.t('el.datepicker.endTime')))]),_c('div',{staticClass:\"el-time-range-picker__body el-time-panel__content\",class:{ 'has-seconds': _vm.showSeconds, 'is-arrow': _vm.arrowControl }},[_c('time-spinner',{ref:\"maxSpinner\",attrs:{\"show-seconds\":_vm.showSeconds,\"am-pm-mode\":_vm.amPmMode,\"arrow-control\":_vm.arrowControl,\"date\":_vm.maxDate},on:{\"change\":_vm.handleMaxChange,\"select-range\":_vm.setMaxSelectionRange}})],1)])]),_c('div',{staticClass:\"el-time-panel__footer\"},[_c('button',{staticClass:\"el-time-panel__btn cancel\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.handleCancel()}}},[_vm._v(_vm._s(_vm.t('el.datepicker.cancel')))]),_c('button',{staticClass:\"el-time-panel__btn confirm\",attrs:{\"type\":\"button\",\"disabled\":_vm.btnDisabled},on:{\"click\":function($event){_vm.handleConfirm()}}},[_vm._v(_vm._s(_vm.t('el.datepicker.confirm')))])])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(205);\n\nvar _main2 = _interopRequireDefault(_main);\n\nvar _directive = __webpack_require__(208);\n\nvar _directive2 = _interopRequireDefault(_directive);\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_vue2.default.directive('popover', _directive2.default);\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.directive('popover', _directive2.default);\n  Vue.component(_main2.default.name, _main2.default);\n};\n_main2.default.directive = _directive2.default;\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 205 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(206);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_16d0194f_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(207);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_16d0194f_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _dom = __webpack_require__(2);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElPopover',\n\n  mixins: [_vuePopper2.default],\n\n  props: {\n    trigger: {\n      type: String,\n      default: 'click',\n      validator: function validator(value) {\n        return ['click', 'focus', 'hover', 'manual'].indexOf(value) > -1;\n      }\n    },\n    openDelay: {\n      type: Number,\n      default: 0\n    },\n    title: String,\n    disabled: Boolean,\n    content: String,\n    reference: {},\n    popperClass: String,\n    width: {},\n    visibleArrow: {\n      default: true\n    },\n    arrowOffset: {\n      type: Number,\n      default: 0\n    },\n    transition: {\n      type: String,\n      default: 'fade-in-linear'\n    }\n  },\n\n  computed: {\n    tooltipId: function tooltipId() {\n      return 'el-popover-' + (0, _util.generateId)();\n    }\n  },\n  watch: {\n    showPopper: function showPopper(val) {\n      if (this.disabled) {\n        return;\n      }\n      val ? this.$emit('show') : this.$emit('hide');\n    }\n  },\n\n  mounted: function mounted() {\n    var _this = this;\n\n    var reference = this.referenceElm = this.reference || this.$refs.reference;\n    var popper = this.popper || this.$refs.popper;\n\n    if (!reference && this.$slots.reference && this.$slots.reference[0]) {\n      reference = this.referenceElm = this.$slots.reference[0].elm;\n    }\n    // 鍙闂�n    if (reference) {\n      (0, _dom.addClass)(reference, 'el-popover__reference');\n      reference.setAttribute('aria-describedby', this.tooltipId);\n      reference.setAttribute('tabindex', 0); // tab搴忓垪\n      popper.setAttribute('tabindex', 0);\n\n      if (this.trigger !== 'click') {\n        (0, _dom.on)(reference, 'focusin', function () {\n          _this.handleFocus();\n          var instance = reference.__vue__;\n          if (instance && typeof instance.focus === 'function') {\n            instance.focus();\n          }\n        });\n        (0, _dom.on)(popper, 'focusin', this.handleFocus);\n        (0, _dom.on)(reference, 'focusout', this.handleBlur);\n        (0, _dom.on)(popper, 'focusout', this.handleBlur);\n      }\n      (0, _dom.on)(reference, 'keydown', this.handleKeydown);\n      (0, _dom.on)(reference, 'click', this.handleClick);\n    }\n    if (this.trigger === 'click') {\n      (0, _dom.on)(reference, 'click', this.doToggle);\n      (0, _dom.on)(document, 'click', this.handleDocumentClick);\n    } else if (this.trigger === 'hover') {\n      (0, _dom.on)(reference, 'mouseenter', this.handleMouseEnter);\n      (0, _dom.on)(popper, 'mouseenter', this.handleMouseEnter);\n      (0, _dom.on)(reference, 'mouseleave', this.handleMouseLeave);\n      (0, _dom.on)(popper, 'mouseleave', this.handleMouseLeave);\n    } else if (this.trigger === 'focus') {\n      if (reference.querySelector('input, textarea')) {\n        (0, _dom.on)(reference, 'focusin', this.doShow);\n        (0, _dom.on)(reference, 'focusout', this.doClose);\n      } else {\n        (0, _dom.on)(reference, 'mousedown', this.doShow);\n        (0, _dom.on)(reference, 'mouseup', this.doClose);\n      }\n    }\n  },\n\n\n  methods: {\n    doToggle: function doToggle() {\n      this.showPopper = !this.showPopper;\n    },\n    doShow: function doShow() {\n      this.showPopper = true;\n    },\n    doClose: function doClose() {\n      this.showPopper = false;\n    },\n    handleFocus: function handleFocus() {\n      (0, _dom.addClass)(this.referenceElm, 'focusing');\n      if (this.trigger !== 'manual') this.showPopper = true;\n    },\n    handleClick: function handleClick() {\n      (0, _dom.removeClass)(this.referenceElm, 'focusing');\n    },\n    handleBlur: function handleBlur() {\n      (0, _dom.removeClass)(this.referenceElm, 'focusing');\n      if (this.trigger !== 'manual') this.showPopper = false;\n    },\n    handleMouseEnter: function handleMouseEnter() {\n      var _this2 = this;\n\n      clearTimeout(this._timer);\n      if (this.openDelay) {\n        this._timer = setTimeout(function () {\n          _this2.showPopper = true;\n        }, this.openDelay);\n      } else {\n        this.showPopper = true;\n      }\n    },\n    handleKeydown: function handleKeydown(ev) {\n      if (ev.keyCode === 27 && this.trigger !== 'manual') {\n        // esc\n        this.doClose();\n      }\n    },\n    handleMouseLeave: function handleMouseLeave() {\n      var _this3 = this;\n\n      clearTimeout(this._timer);\n      this._timer = setTimeout(function () {\n        _this3.showPopper = false;\n      }, 200);\n    },\n    handleDocumentClick: function handleDocumentClick(e) {\n      var reference = this.reference || this.$refs.reference;\n      var popper = this.popper || this.$refs.popper;\n\n      if (!reference && this.$slots.reference && this.$slots.reference[0]) {\n        reference = this.referenceElm = this.$slots.reference[0].elm;\n      }\n      if (!this.$el || !reference || this.$el.contains(e.target) || reference.contains(e.target) || !popper || popper.contains(e.target)) return;\n      this.showPopper = false;\n    },\n    handleAfterEnter: function handleAfterEnter() {\n      this.$emit('after-enter');\n    },\n    handleAfterLeave: function handleAfterLeave() {\n      this.$emit('after-leave');\n      this.doDestroy();\n    }\n  },\n\n  destroyed: function destroyed() {\n    var reference = this.reference;\n\n    (0, _dom.off)(reference, 'click', this.doToggle);\n    (0, _dom.off)(reference, 'mouseup', this.doClose);\n    (0, _dom.off)(reference, 'mousedown', this.doShow);\n    (0, _dom.off)(reference, 'focusin', this.doShow);\n    (0, _dom.off)(reference, 'focusout', this.doClose);\n    (0, _dom.off)(reference, 'mousedown', this.doShow);\n    (0, _dom.off)(reference, 'mouseup', this.doClose);\n    (0, _dom.off)(reference, 'mouseleave', this.handleMouseLeave);\n    (0, _dom.off)(reference, 'mouseenter', this.handleMouseEnter);\n    (0, _dom.off)(document, 'click', this.handleDocumentClick);\n  }\n};\n\n/***/ }),\n/* 207 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('transition',{attrs:{\"name\":_vm.transition},on:{\"after-enter\":_vm.handleAfterEnter,\"after-leave\":_vm.handleAfterLeave}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.disabled && _vm.showPopper),expression:\"!disabled && showPopper\"}],ref:\"popper\",staticClass:\"el-popover el-popper\",class:[_vm.popperClass, _vm.content && 'el-popover--plain'],style:({ width: _vm.width + 'px' }),attrs:{\"role\":\"tooltip\",\"id\":_vm.tooltipId,\"aria-hidden\":(_vm.disabled || !_vm.showPopper) ? 'true' : 'false'}},[(_vm.title)?_c('div',{staticClass:\"el-popover__title\",domProps:{\"textContent\":_vm._s(_vm.title)}}):_vm._e(),_vm._t(\"default\",[_vm._v(_vm._s(_vm.content))])],2)]),_vm._t(\"reference\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 208 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nvar getReference = function getReference(el, binding, vnode) {\n  var _ref = binding.expression ? binding.value : binding.arg;\n  var popper = vnode.context.$refs[_ref];\n  if (popper) {\n    if (Array.isArray(popper)) {\n      popper[0].$refs.reference = el;\n    } else {\n      popper.$refs.reference = el;\n    }\n  }\n};\n\nexports.default = {\n  bind: function bind(el, binding, vnode) {\n    getReference(el, binding, vnode);\n  },\n  inserted: function inserted(el, binding, vnode) {\n    getReference(el, binding, vnode);\n  }\n};\n\n/***/ }),\n/* 209 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(210);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 210 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _debounce = __webpack_require__(13);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _dom = __webpack_require__(2);\n\nvar _vdom = __webpack_require__(21);\n\nvar _util = __webpack_require__(4);\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElTooltip',\n\n  mixins: [_vuePopper2.default],\n\n  props: {\n    openDelay: {\n      type: Number,\n      default: 0\n    },\n    disabled: Boolean,\n    manual: Boolean,\n    effect: {\n      type: String,\n      default: 'dark'\n    },\n    arrowOffset: {\n      type: Number,\n      default: 0\n    },\n    popperClass: String,\n    content: String,\n    visibleArrow: {\n      default: true\n    },\n    transition: {\n      type: String,\n      default: 'el-fade-in-linear'\n    },\n    popperOptions: {\n      default: function _default() {\n        return {\n          boundariesPadding: 10,\n          gpuAcceleration: false\n        };\n      }\n    },\n    enterable: {\n      type: Boolean,\n      default: true\n    },\n    hideAfter: {\n      type: Number,\n      default: 0\n    }\n  },\n\n  data: function data() {\n    return {\n      timeoutPending: null,\n      focusing: false\n    };\n  },\n\n  computed: {\n    tooltipId: function tooltipId() {\n      return 'el-tooltip-' + (0, _util.generateId)();\n    }\n  },\n  beforeCreate: function beforeCreate() {\n    var _this = this;\n\n    if (this.$isServer) return;\n\n    this.popperVM = new _vue2.default({\n      data: { node: '' },\n      render: function render(h) {\n        return this.node;\n      }\n    }).$mount();\n\n    this.debounceClose = (0, _debounce2.default)(200, function () {\n      return _this.handleClosePopper();\n    });\n  },\n  render: function render(h) {\n    var _this2 = this;\n\n    if (this.popperVM) {\n      this.popperVM.node = h(\n        'transition',\n        {\n          attrs: {\n            name: this.transition\n          },\n          on: {\n            'afterLeave': this.doDestroy\n          }\n        },\n        [h(\n          'div',\n          {\n            on: {\n              'mouseleave': function mouseleave() {\n                _this2.setExpectedState(false);_this2.debounceClose();\n              },\n              'mouseenter': function mouseenter() {\n                _this2.setExpectedState(true);\n              }\n            },\n\n            ref: 'popper',\n            attrs: { role: 'tooltip',\n              id: this.tooltipId,\n              'aria-hidden': this.disabled || !this.showPopper ? 'true' : 'false'\n            },\n            directives: [{\n              name: 'show',\n              value: !this.disabled && this.showPopper\n            }],\n\n            'class': ['el-tooltip__popper', 'is-' + this.effect, this.popperClass] },\n          [this.$slots.content || this.content]\n        )]\n      );\n    }\n\n    if (!this.$slots.default || !this.$slots.default.length) return this.$slots.default;\n\n    var vnode = (0, _vdom.getFirstComponentChild)(this.$slots.default);\n\n    if (!vnode) return vnode;\n\n    var data = vnode.data = vnode.data || {};\n    data.staticClass = this.concatClass(data.staticClass, 'el-tooltip');\n\n    return vnode;\n  },\n  mounted: function mounted() {\n    var _this3 = this;\n\n    this.referenceElm = this.$el;\n    if (this.$el.nodeType === 1) {\n      this.$el.setAttribute('aria-describedby', this.tooltipId);\n      this.$el.setAttribute('tabindex', 0);\n      (0, _dom.on)(this.referenceElm, 'mouseenter', this.show);\n      (0, _dom.on)(this.referenceElm, 'mouseleave', this.hide);\n      (0, _dom.on)(this.referenceElm, 'focus', function () {\n        if (!_this3.$slots.default || !_this3.$slots.default.length) {\n          _this3.handleFocus();\n          return;\n        }\n        var instance = _this3.$slots.default[0].componentInstance;\n        if (instance && instance.focus) {\n          instance.focus();\n        } else {\n          _this3.handleFocus();\n        }\n      });\n      (0, _dom.on)(this.referenceElm, 'blur', this.handleBlur);\n      (0, _dom.on)(this.referenceElm, 'click', this.removeFocusing);\n    }\n  },\n\n  watch: {\n    focusing: function focusing(val) {\n      if (val) {\n        (0, _dom.addClass)(this.referenceElm, 'focusing');\n      } else {\n        (0, _dom.removeClass)(this.referenceElm, 'focusing');\n      }\n    }\n  },\n  methods: {\n    show: function show() {\n      this.setExpectedState(true);\n      this.handleShowPopper();\n    },\n    hide: function hide() {\n      this.setExpectedState(false);\n      this.debounceClose();\n    },\n    handleFocus: function handleFocus() {\n      this.focusing = true;\n      this.show();\n    },\n    handleBlur: function handleBlur() {\n      this.focusing = false;\n      this.hide();\n    },\n    removeFocusing: function removeFocusing() {\n      this.focusing = false;\n    },\n    concatClass: function concatClass(a, b) {\n      if (a && a.indexOf(b) > -1) return a;\n      return a ? b ? a + ' ' + b : a : b || '';\n    },\n    handleShowPopper: function handleShowPopper() {\n      var _this4 = this;\n\n      if (!this.expectedState || this.manual) return;\n      clearTimeout(this.timeout);\n      this.timeout = setTimeout(function () {\n        _this4.showPopper = true;\n      }, this.openDelay);\n\n      if (this.hideAfter > 0) {\n        this.timeoutPending = setTimeout(function () {\n          _this4.showPopper = false;\n        }, this.hideAfter);\n      }\n    },\n    handleClosePopper: function handleClosePopper() {\n      if (this.enterable && this.expectedState || this.manual) return;\n      clearTimeout(this.timeout);\n\n      if (this.timeoutPending) {\n        clearTimeout(this.timeoutPending);\n      }\n      this.showPopper = false;\n\n      if (this.disabled) {\n        this.doDestroy();\n      }\n    },\n    setExpectedState: function setExpectedState(expectedState) {\n      if (expectedState === false) {\n        clearTimeout(this.timeoutPending);\n      }\n      this.expectedState = expectedState;\n    }\n  },\n\n  destroyed: function destroyed() {\n    var reference = this.referenceElm;\n    (0, _dom.off)(reference, 'mouseenter', this.show);\n    (0, _dom.off)(reference, 'mouseleave', this.hide);\n    (0, _dom.off)(reference, 'focus', this.handleFocus);\n    (0, _dom.off)(reference, 'blur', this.handleBlur);\n    (0, _dom.off)(reference, 'click', this.removeFocusing);\n  }\n};\n\n/***/ }),\n/* 211 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(212);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 212 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.MessageBox = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _main = __webpack_require__(213);\n\nvar _main2 = _interopRequireDefault(_main);\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _vdom = __webpack_require__(21);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaults = {\n  title: null,\n  message: '',\n  type: '',\n  iconClass: '',\n  showInput: false,\n  showClose: true,\n  modalFade: true,\n  lockScroll: true,\n  closeOnClickModal: true,\n  closeOnPressEscape: true,\n  closeOnHashChange: true,\n  inputValue: null,\n  inputPlaceholder: '',\n  inputType: 'text',\n  inputPattern: null,\n  inputValidator: null,\n  inputErrorMessage: '',\n  showConfirmButton: true,\n  showCancelButton: false,\n  confirmButtonPosition: 'right',\n  confirmButtonHighlight: false,\n  cancelButtonHighlight: false,\n  confirmButtonText: '',\n  cancelButtonText: '',\n  confirmButtonClass: '',\n  cancelButtonClass: '',\n  customClass: '',\n  beforeClose: null,\n  dangerouslyUseHTMLString: false,\n  center: false,\n  roundButton: false,\n  distinguishCancelAndClose: false\n};\n\nvar MessageBoxConstructor = _vue2.default.extend(_main2.default);\n\nvar currentMsg = void 0,\n    instance = void 0;\nvar msgQueue = [];\n\nvar defaultCallback = function defaultCallback(action) {\n  if (currentMsg) {\n    var callback = currentMsg.callback;\n    if (typeof callback === 'function') {\n      if (instance.showInput) {\n        callback(instance.inputValue, action);\n      } else {\n        callback(action);\n      }\n    }\n    if (currentMsg.resolve) {\n      if (action === 'confirm') {\n        if (instance.showInput) {\n          currentMsg.resolve({ value: instance.inputValue, action: action });\n        } else {\n          currentMsg.resolve(action);\n        }\n      } else if (currentMsg.reject && (action === 'cancel' || action === 'close')) {\n        currentMsg.reject(action);\n      }\n    }\n  }\n};\n\nvar initInstance = function initInstance() {\n  instance = new MessageBoxConstructor({\n    el: document.createElement('div')\n  });\n\n  instance.callback = defaultCallback;\n};\n\nvar showNextMsg = function showNextMsg() {\n  if (!instance) {\n    initInstance();\n  }\n  instance.action = '';\n\n  if (!instance.visible || instance.closeTimer) {\n    if (msgQueue.length > 0) {\n      (function () {\n        currentMsg = msgQueue.shift();\n\n        var options = currentMsg.options;\n        for (var prop in options) {\n          if (options.hasOwnProperty(prop)) {\n            instance[prop] = options[prop];\n          }\n        }\n        if (options.callback === undefined) {\n          instance.callback = defaultCallback;\n        }\n\n        var oldCb = instance.callback;\n        instance.callback = function (action, instance) {\n          oldCb(action, instance);\n          showNextMsg();\n        };\n        if ((0, _vdom.isVNode)(instance.message)) {\n          instance.$slots.default = [instance.message];\n          instance.message = null;\n        } else {\n          delete instance.$slots.default;\n        }\n        ['modal', 'showClose', 'closeOnClickModal', 'closeOnPressEscape', 'closeOnHashChange'].forEach(function (prop) {\n          if (instance[prop] === undefined) {\n            instance[prop] = true;\n          }\n        });\n        document.body.appendChild(instance.$el);\n\n        _vue2.default.nextTick(function () {\n          instance.visible = true;\n        });\n      })();\n    }\n  }\n};\n\nvar MessageBox = function MessageBox(options, callback) {\n  if (_vue2.default.prototype.$isServer) return;\n  if (typeof options === 'string' || (0, _vdom.isVNode)(options)) {\n    options = {\n      message: options\n    };\n    if (typeof arguments[1] === 'string') {\n      options.title = arguments[1];\n    }\n  } else if (options.callback && !callback) {\n    callback = options.callback;\n  }\n\n  if (typeof Promise !== 'undefined') {\n    return new Promise(function (resolve, reject) {\n      // eslint-disable-line\n      msgQueue.push({\n        options: (0, _merge2.default)({}, defaults, MessageBox.defaults, options),\n        callback: callback,\n        resolve: resolve,\n        reject: reject\n      });\n\n      showNextMsg();\n    });\n  } else {\n    msgQueue.push({\n      options: (0, _merge2.default)({}, defaults, MessageBox.defaults, options),\n      callback: callback\n    });\n\n    showNextMsg();\n  }\n};\n\nMessageBox.setDefaults = function (defaults) {\n  MessageBox.defaults = defaults;\n};\n\nMessageBox.alert = function (message, title, options) {\n  if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object') {\n    options = title;\n    title = '';\n  } else if (title === undefined) {\n    title = '';\n  }\n  return MessageBox((0, _merge2.default)({\n    title: title,\n    message: message,\n    $type: 'alert',\n    closeOnPressEscape: false,\n    closeOnClickModal: false\n  }, options));\n};\n\nMessageBox.confirm = function (message, title, options) {\n  if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object') {\n    options = title;\n    title = '';\n  } else if (title === undefined) {\n    title = '';\n  }\n  return MessageBox((0, _merge2.default)({\n    title: title,\n    message: message,\n    $type: 'confirm',\n    showCancelButton: true\n  }, options));\n};\n\nMessageBox.prompt = function (message, title, options) {\n  if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object') {\n    options = title;\n    title = '';\n  } else if (title === undefined) {\n    title = '';\n  }\n  return MessageBox((0, _merge2.default)({\n    title: title,\n    message: message,\n    showCancelButton: true,\n    showInput: true,\n    $type: 'prompt'\n  }, options));\n};\n\nMessageBox.close = function () {\n  instance.doClose();\n  instance.visible = false;\n  msgQueue = [];\n  currentMsg = null;\n};\n\nexports.default = MessageBox;\nexports.MessageBox = MessageBox;\n\n/***/ }),\n/* 213 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(214);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_05b9df22_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(216);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_05b9df22_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _popup = __webpack_require__(12);\n\nvar _popup2 = _interopRequireDefault(_popup);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _button = __webpack_require__(15);\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _dom = __webpack_require__(2);\n\nvar _locale3 = __webpack_require__(16);\n\nvar _ariaDialog = __webpack_require__(215);\n\nvar _ariaDialog2 = _interopRequireDefault(_ariaDialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar messageBox = void 0; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar typeMap = {\n  success: 'success',\n  info: 'info',\n  warning: 'warning',\n  error: 'error'\n};\n\nexports.default = {\n  mixins: [_popup2.default, _locale2.default],\n\n  props: {\n    modal: {\n      default: true\n    },\n    lockScroll: {\n      default: true\n    },\n    showClose: {\n      type: Boolean,\n      default: true\n    },\n    closeOnClickModal: {\n      default: true\n    },\n    closeOnPressEscape: {\n      default: true\n    },\n    closeOnHashChange: {\n      default: true\n    },\n    center: {\n      default: false,\n      type: Boolean\n    },\n    roundButton: {\n      default: false,\n      type: Boolean\n    }\n  },\n\n  components: {\n    ElInput: _input2.default,\n    ElButton: _button2.default\n  },\n\n  computed: {\n    icon: function icon() {\n      var type = this.type,\n          iconClass = this.iconClass;\n\n      return iconClass || (type && typeMap[type] ? 'el-icon-' + typeMap[type] : '');\n    },\n    confirmButtonClasses: function confirmButtonClasses() {\n      return 'el-button--primary ' + this.confirmButtonClass;\n    },\n    cancelButtonClasses: function cancelButtonClasses() {\n      return '' + this.cancelButtonClass;\n    }\n  },\n\n  methods: {\n    getSafeClose: function getSafeClose() {\n      var _this = this;\n\n      var currentId = this.uid;\n      return function () {\n        _this.$nextTick(function () {\n          if (currentId === _this.uid) _this.doClose();\n        });\n      };\n    },\n    doClose: function doClose() {\n      var _this2 = this;\n\n      if (!this.visible) return;\n      this.visible = false;\n      this._closing = true;\n\n      this.onClose && this.onClose();\n      messageBox.closeDialog(); // 瑙g粦\n      if (this.lockScroll) {\n        setTimeout(this.restoreBodyStyle, 200);\n      }\n      this.opened = false;\n      this.doAfterClose();\n      setTimeout(function () {\n        if (_this2.action) _this2.callback(_this2.action, _this2);\n      });\n    },\n    handleWrapperClick: function handleWrapperClick() {\n      if (this.closeOnClickModal) {\n        this.handleAction(this.distinguishCancelAndClose ? 'close' : 'cancel');\n      }\n    },\n    handleInputEnter: function handleInputEnter() {\n      if (this.inputType !== 'textarea') {\n        return this.handleAction('confirm');\n      }\n    },\n    handleAction: function handleAction(action) {\n      if (this.$type === 'prompt' && action === 'confirm' && !this.validate()) {\n        return;\n      }\n      this.action = action;\n      if (typeof this.beforeClose === 'function') {\n        this.close = this.getSafeClose();\n        this.beforeClose(action, this, this.close);\n      } else {\n        this.doClose();\n      }\n    },\n    validate: function validate() {\n      if (this.$type === 'prompt') {\n        var inputPattern = this.inputPattern;\n        if (inputPattern && !inputPattern.test(this.inputValue || '')) {\n          this.editorErrorMessage = this.inputErrorMessage || (0, _locale3.t)('el.messagebox.error');\n          (0, _dom.addClass)(this.getInputElement(), 'invalid');\n          return false;\n        }\n        var inputValidator = this.inputValidator;\n        if (typeof inputValidator === 'function') {\n          var validateResult = inputValidator(this.inputValue);\n          if (validateResult === false) {\n            this.editorErrorMessage = this.inputErrorMessage || (0, _locale3.t)('el.messagebox.error');\n            (0, _dom.addClass)(this.getInputElement(), 'invalid');\n            return false;\n          }\n          if (typeof validateResult === 'string') {\n            this.editorErrorMessage = validateResult;\n            (0, _dom.addClass)(this.getInputElement(), 'invalid');\n            return false;\n          }\n        }\n      }\n      this.editorErrorMessage = '';\n      (0, _dom.removeClass)(this.getInputElement(), 'invalid');\n      return true;\n    },\n    getFirstFocus: function getFirstFocus() {\n      var btn = this.$el.querySelector('.el-message-box__btns .el-button');\n      var title = this.$el.querySelector('.el-message-box__btns .el-message-box__title');\n      return btn || title;\n    },\n    getInputElement: function getInputElement() {\n      var inputRefs = this.$refs.input.$refs;\n      return inputRefs.input || inputRefs.textarea;\n    }\n  },\n\n  watch: {\n    inputValue: {\n      immediate: true,\n      handler: function handler(val) {\n        var _this3 = this;\n\n        this.$nextTick(function (_) {\n          if (_this3.$type === 'prompt' && val !== null) {\n            _this3.validate();\n          }\n        });\n      }\n    },\n\n    visible: function visible(val) {\n      var _this4 = this;\n\n      if (val) {\n        this.uid++;\n        if (this.$type === 'alert' || this.$type === 'confirm') {\n          this.$nextTick(function () {\n            _this4.$refs.confirm.$el.focus();\n          });\n        }\n        this.focusAfterClosed = document.activeElement;\n        messageBox = new _ariaDialog2.default(this.$el, this.focusAfterClosed, this.getFirstFocus());\n      }\n\n      // prompt\n      if (this.$type !== 'prompt') return;\n      if (val) {\n        setTimeout(function () {\n          if (_this4.$refs.input && _this4.$refs.input.$el) {\n            _this4.getInputElement().focus();\n          }\n        }, 500);\n      } else {\n        this.editorErrorMessage = '';\n        (0, _dom.removeClass)(this.getInputElement(), 'invalid');\n      }\n    }\n  },\n\n  mounted: function mounted() {\n    var _this5 = this;\n\n    this.$nextTick(function () {\n      if (_this5.closeOnHashChange) {\n        window.addEventListener('hashchange', _this5.close);\n      }\n    });\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this.closeOnHashChange) {\n      window.removeEventListener('hashchange', this.close);\n    }\n    setTimeout(function () {\n      messageBox.closeDialog();\n    });\n  },\n  data: function data() {\n    return {\n      uid: 1,\n      title: undefined,\n      message: '',\n      type: '',\n      iconClass: '',\n      customClass: '',\n      showInput: false,\n      inputValue: null,\n      inputPlaceholder: '',\n      inputType: 'text',\n      inputPattern: null,\n      inputValidator: null,\n      inputErrorMessage: '',\n      showConfirmButton: true,\n      showCancelButton: false,\n      action: '',\n      confirmButtonText: '',\n      cancelButtonText: '',\n      confirmButtonLoading: false,\n      cancelButtonLoading: false,\n      confirmButtonClass: '',\n      confirmButtonDisabled: false,\n      cancelButtonClass: '',\n      editorErrorMessage: null,\n      callback: null,\n      dangerouslyUseHTMLString: false,\n      focusAfterClosed: null,\n      isOnComposition: false,\n      distinguishCancelAndClose: false\n    };\n  }\n};\n\n/***/ }),\n/* 215 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/utils/aria-dialog\");\n\n/***/ }),\n/* 216 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"msgbox-fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-message-box__wrapper\",attrs:{\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-modal\":\"true\",\"aria-label\":_vm.title || 'dialog'},on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }_vm.handleWrapperClick($event)}}},[_c('div',{staticClass:\"el-message-box\",class:[_vm.customClass, _vm.center && 'el-message-box--center']},[(_vm.title !== null)?_c('div',{staticClass:\"el-message-box__header\"},[_c('div',{staticClass:\"el-message-box__title\"},[(_vm.icon && _vm.center)?_c('div',{class:['el-message-box__status', _vm.icon]}):_vm._e(),_c('span',[_vm._v(_vm._s(_vm.title))])]),(_vm.showClose)?_c('button',{staticClass:\"el-message-box__headerbtn\",attrs:{\"type\":\"button\",\"aria-label\":\"Close\"},on:{\"click\":function($event){_vm.handleAction(_vm.distinguishCancelAndClose ? 'close' : 'cancel')},\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.handleAction(_vm.distinguishCancelAndClose ? 'close' : 'cancel')}}},[_c('i',{staticClass:\"el-message-box__close el-icon-close\"})]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"el-message-box__content\"},[(_vm.icon && !_vm.center && _vm.message !== '')?_c('div',{class:['el-message-box__status', _vm.icon]}):_vm._e(),(_vm.message !== '')?_c('div',{staticClass:\"el-message-box__message\"},[_vm._t(\"default\",[(!_vm.dangerouslyUseHTMLString)?_c('p',[_vm._v(_vm._s(_vm.message))]):_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.message)}})])],2):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showInput),expression:\"showInput\"}],staticClass:\"el-message-box__input\"},[_c('el-input',{ref:\"input\",attrs:{\"type\":_vm.inputType,\"placeholder\":_vm.inputPlaceholder},nativeOn:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.handleInputEnter($event)}},model:{value:(_vm.inputValue),callback:function ($$v) {_vm.inputValue=$$v},expression:\"inputValue\"}}),_c('div',{staticClass:\"el-message-box__errormsg\",style:({ visibility: !!_vm.editorErrorMessage ? 'visible' : 'hidden' })},[_vm._v(_vm._s(_vm.editorErrorMessage))])],1)]),_c('div',{staticClass:\"el-message-box__btns\"},[(_vm.showCancelButton)?_c('el-button',{class:[ _vm.cancelButtonClasses ],attrs:{\"loading\":_vm.cancelButtonLoading,\"round\":_vm.roundButton,\"size\":\"small\"},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.handleAction('cancel')}},nativeOn:{\"click\":function($event){_vm.handleAction('cancel')}}},[_vm._v(\"\\n          \"+_vm._s(_vm.cancelButtonText || _vm.t('el.messagebox.cancel'))+\"\\n        \")]):_vm._e(),_c('el-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showConfirmButton),expression:\"showConfirmButton\"}],ref:\"confirm\",class:[ _vm.confirmButtonClasses ],attrs:{\"loading\":_vm.confirmButtonLoading,\"round\":_vm.roundButton,\"size\":\"small\"},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.handleAction('confirm')}},nativeOn:{\"click\":function($event){_vm.handleAction('confirm')}}},[_vm._v(\"\\n          \"+_vm._s(_vm.confirmButtonText || _vm.t('el.messagebox.confirm'))+\"\\n        \")])],1)])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 217 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _breadcrumb = __webpack_require__(218);\n\nvar _breadcrumb2 = _interopRequireDefault(_breadcrumb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_breadcrumb2.default.install = function (Vue) {\n  Vue.component(_breadcrumb2.default.name, _breadcrumb2.default);\n};\n\nexports.default = _breadcrumb2.default;\n\n/***/ }),\n/* 218 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_vue__ = __webpack_require__(219);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7cdb9dc9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_breadcrumb_vue__ = __webpack_require__(220);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7cdb9dc9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_breadcrumb_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElBreadcrumb',\n\n  props: {\n    separator: {\n      type: String,\n      default: '/'\n    },\n    separatorClass: {\n      type: String,\n      default: ''\n    }\n  },\n\n  provide: function provide() {\n    return {\n      elBreadcrumb: this\n    };\n  },\n  mounted: function mounted() {\n    var items = this.$el.querySelectorAll('.el-breadcrumb__item');\n    if (items.length) {\n      items[items.length - 1].setAttribute('aria-current', 'page');\n    }\n  }\n};\n\n/***/ }),\n/* 220 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-breadcrumb\",attrs:{\"aria-label\":\"Breadcrumb\",\"role\":\"navigation\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 221 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _breadcrumbItem = __webpack_require__(222);\n\nvar _breadcrumbItem2 = _interopRequireDefault(_breadcrumbItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_breadcrumbItem2.default.install = function (Vue) {\n  Vue.component(_breadcrumbItem2.default.name, _breadcrumbItem2.default);\n};\n\nexports.default = _breadcrumbItem2.default;\n\n/***/ }),\n/* 222 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_item_vue__ = __webpack_require__(223);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_item_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_eb4d4a72_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_breadcrumb_item_vue__ = __webpack_require__(224);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_breadcrumb_item_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_eb4d4a72_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_breadcrumb_item_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 223 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElBreadcrumbItem',\n  props: {\n    to: {},\n    replace: Boolean\n  },\n  data: function data() {\n    return {\n      separator: '',\n      separatorClass: ''\n    };\n  },\n\n\n  inject: ['elBreadcrumb'],\n\n  mounted: function mounted() {\n    var _this = this;\n\n    this.separator = this.elBreadcrumb.separator;\n    this.separatorClass = this.elBreadcrumb.separatorClass;\n    var link = this.$refs.link;\n    link.setAttribute('role', 'link');\n    link.addEventListener('click', function (_) {\n      var to = _this.to,\n          $router = _this.$router;\n\n      if (!to || !$router) return;\n      _this.replace ? $router.replace(to) : $router.push(to);\n    });\n  }\n};\n\n/***/ }),\n/* 224 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"el-breadcrumb__item\"},[_c('span',{ref:\"link\",class:['el-breadcrumb__inner', _vm.to ? 'is-link' : ''],attrs:{\"role\":\"link\"}},[_vm._t(\"default\")],2),(_vm.separatorClass)?_c('i',{staticClass:\"el-breadcrumb__separator\",class:_vm.separatorClass}):_c('span',{staticClass:\"el-breadcrumb__separator\",attrs:{\"role\":\"presentation\"}},[_vm._v(_vm._s(_vm.separator))])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 225 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _form = __webpack_require__(226);\n\nvar _form2 = _interopRequireDefault(_form);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_form2.default.install = function (Vue) {\n  Vue.component(_form2.default.name, _form2.default);\n};\n\nexports.default = _form2.default;\n\n/***/ }),\n/* 226 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_vue__ = __webpack_require__(227);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_08ec9ea9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_form_vue__ = __webpack_require__(228);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_08ec9ea9_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_form_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 227 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElForm',\n\n  componentName: 'ElForm',\n\n  provide: function provide() {\n    return {\n      elForm: this\n    };\n  },\n\n\n  props: {\n    model: Object,\n    rules: Object,\n    labelPosition: String,\n    labelWidth: String,\n    labelSuffix: {\n      type: String,\n      default: ''\n    },\n    inline: Boolean,\n    inlineMessage: Boolean,\n    statusIcon: Boolean,\n    showMessage: {\n      type: Boolean,\n      default: true\n    },\n    size: String,\n    disabled: Boolean,\n    validateOnRuleChange: {\n      type: Boolean,\n      default: true\n    }\n  },\n  watch: {\n    rules: function rules() {\n      if (this.validateOnRuleChange) {\n        this.validate(function () {});\n      }\n    }\n  },\n  data: function data() {\n    return {\n      fields: []\n    };\n  },\n  created: function created() {\n    var _this = this;\n\n    this.$on('el.form.addField', function (field) {\n      if (field) {\n        _this.fields.push(field);\n      }\n    });\n    /* istanbul ignore next */\n    this.$on('el.form.removeField', function (field) {\n      if (field.prop) {\n        _this.fields.splice(_this.fields.indexOf(field), 1);\n      }\n    });\n  },\n\n  methods: {\n    resetFields: function resetFields() {\n      if (!this.model) {\n        \"production\" !== 'production' && console.warn('[Element Warn][Form]model is required for resetFields to work.');\n        return;\n      }\n      this.fields.forEach(function (field) {\n        field.resetField();\n      });\n    },\n    clearValidate: function clearValidate() {\n      var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n      var fields = props.length ? this.fields.filter(function (field) {\n        return props.indexOf(field.prop) > -1;\n      }) : this.fields;\n      fields.forEach(function (field) {\n        field.clearValidate();\n      });\n    },\n    validate: function validate(callback) {\n      var _this2 = this;\n\n      if (!this.model) {\n        console.warn('[Element Warn][Form]model is required for validate to work!');\n        return;\n      }\n\n      var promise = void 0;\n      // if no callback, return promise\n      if (typeof callback !== 'function' && window.Promise) {\n        promise = new window.Promise(function (resolve, reject) {\n          callback = function callback(valid) {\n            valid ? resolve(valid) : reject(valid);\n          };\n        });\n      }\n\n      var valid = true;\n      var count = 0;\n      // 濡傛灉闇�瑕侀獙璇佺殑fields涓虹┖锛岃皟鐢ㄩ獙璇佹椂绔嬪埢杩斿洖callback\n      if (this.fields.length === 0 && callback) {\n        callback(true);\n      }\n      var invalidFields = {};\n      this.fields.forEach(function (field) {\n        field.validate('', function (message, field) {\n          if (message) {\n            valid = false;\n          }\n          invalidFields = (0, _merge2.default)({}, invalidFields, field);\n          if (typeof callback === 'function' && ++count === _this2.fields.length) {\n            callback(valid, invalidFields);\n          }\n        });\n      });\n\n      if (promise) {\n        return promise;\n      }\n    },\n    validateField: function validateField(prop, cb) {\n      var field = this.fields.filter(function (field) {\n        return field.prop === prop;\n      })[0];\n      if (!field) {\n        throw new Error('must call validateField with valid prop string!');\n      }\n\n      field.validate('', cb);\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 228 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"el-form\",class:[\n  _vm.labelPosition ? 'el-form--label-' + _vm.labelPosition : '',\n  { 'el-form--inline': _vm.inline }\n]},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 229 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _formItem = __webpack_require__(230);\n\nvar _formItem2 = _interopRequireDefault(_formItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_formItem2.default.install = function (Vue) {\n  Vue.component(_formItem2.default.name, _formItem2.default);\n};\n\nexports.default = _formItem2.default;\n\n/***/ }),\n/* 230 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_item_vue__ = __webpack_require__(231);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_item_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5f25e5e7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_form_item_vue__ = __webpack_require__(233);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_form_item_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5f25e5e7_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_form_item_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 231 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _asyncValidator = __webpack_require__(232);\n\nvar _asyncValidator2 = _interopRequireDefault(_asyncValidator);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElFormItem',\n\n  componentName: 'ElFormItem',\n\n  mixins: [_emitter2.default],\n\n  provide: function provide() {\n    return {\n      elFormItem: this\n    };\n  },\n\n\n  inject: ['elForm'],\n\n  props: {\n    label: String,\n    labelWidth: String,\n    prop: String,\n    required: {\n      type: Boolean,\n      default: undefined\n    },\n    rules: [Object, Array],\n    error: String,\n    validateStatus: String,\n    for: String,\n    inlineMessage: {\n      type: [String, Boolean],\n      default: ''\n    },\n    showMessage: {\n      type: Boolean,\n      default: true\n    },\n    size: String\n  },\n  watch: {\n    error: {\n      immediate: true,\n      handler: function handler(value) {\n        this.validateMessage = value;\n        this.validateState = value ? 'error' : '';\n      }\n    },\n    validateStatus: function validateStatus(value) {\n      this.validateState = value;\n    }\n  },\n  computed: {\n    labelFor: function labelFor() {\n      return this.for || this.prop;\n    },\n    labelStyle: function labelStyle() {\n      var ret = {};\n      if (this.form.labelPosition === 'top') return ret;\n      var labelWidth = this.labelWidth || this.form.labelWidth;\n      if (labelWidth) {\n        ret.width = labelWidth;\n      }\n      return ret;\n    },\n    contentStyle: function contentStyle() {\n      var ret = {};\n      var label = this.label;\n      if (this.form.labelPosition === 'top' || this.form.inline) return ret;\n      if (!label && !this.labelWidth && this.isNested) return ret;\n      var labelWidth = this.labelWidth || this.form.labelWidth;\n      if (labelWidth) {\n        ret.marginLeft = labelWidth;\n      }\n      return ret;\n    },\n    form: function form() {\n      var parent = this.$parent;\n      var parentName = parent.$options.componentName;\n      while (parentName !== 'ElForm') {\n        if (parentName === 'ElFormItem') {\n          this.isNested = true;\n        }\n        parent = parent.$parent;\n        parentName = parent.$options.componentName;\n      }\n      return parent;\n    },\n    fieldValue: function fieldValue() {\n      var model = this.form.model;\n      if (!model || !this.prop) {\n        return;\n      }\n\n      var path = this.prop;\n      if (path.indexOf(':') !== -1) {\n        path = path.replace(/:/, '.');\n      }\n\n      return (0, _util.getPropByPath)(model, path, true).v;\n    },\n    isRequired: function isRequired() {\n      var rules = this.getRules();\n      var isRequired = false;\n\n      if (rules && rules.length) {\n        rules.every(function (rule) {\n          if (rule.required) {\n            isRequired = true;\n            return false;\n          }\n          return true;\n        });\n      }\n      return isRequired;\n    },\n    _formSize: function _formSize() {\n      return this.elForm.size;\n    },\n    elFormItemSize: function elFormItemSize() {\n      return this.size || this._formSize;\n    },\n    sizeClass: function sizeClass() {\n      return this.elFormItemSize || (this.$ELEMENT || {}).size;\n    }\n  },\n  data: function data() {\n    return {\n      validateState: '',\n      validateMessage: '',\n      validateDisabled: false,\n      validator: {},\n      isNested: false\n    };\n  },\n\n  methods: {\n    validate: function validate(trigger) {\n      var _this = this;\n\n      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _util.noop;\n\n      this.validateDisabled = false;\n      var rules = this.getFilteredRule(trigger);\n      if ((!rules || rules.length === 0) && this.required === undefined) {\n        callback();\n        return true;\n      }\n\n      this.validateState = 'validating';\n\n      var descriptor = {};\n      if (rules && rules.length > 0) {\n        rules.forEach(function (rule) {\n          delete rule.trigger;\n        });\n      }\n      descriptor[this.prop] = rules;\n\n      var validator = new _asyncValidator2.default(descriptor);\n      var model = {};\n\n      model[this.prop] = this.fieldValue;\n\n      validator.validate(model, { firstFields: true }, function (errors, invalidFields) {\n        _this.validateState = !errors ? 'success' : 'error';\n        _this.validateMessage = errors ? errors[0].message : '';\n\n        callback(_this.validateMessage, invalidFields);\n        _this.elForm && _this.elForm.$emit('validate', _this.prop, !errors);\n      });\n    },\n    clearValidate: function clearValidate() {\n      this.validateState = '';\n      this.validateMessage = '';\n      this.validateDisabled = false;\n    },\n    resetField: function resetField() {\n      this.validateState = '';\n      this.validateMessage = '';\n\n      var model = this.form.model;\n      var value = this.fieldValue;\n      var path = this.prop;\n      if (path.indexOf(':') !== -1) {\n        path = path.replace(/:/, '.');\n      }\n\n      var prop = (0, _util.getPropByPath)(model, path, true);\n\n      this.validateDisabled = true;\n      if (Array.isArray(value)) {\n        prop.o[prop.k] = [].concat(this.initialValue);\n      } else {\n        prop.o[prop.k] = this.initialValue;\n      }\n\n      this.broadcast('ElTimeSelect', 'fieldReset', this.initialValue);\n    },\n    getRules: function getRules() {\n      var formRules = this.form.rules;\n      var selfRules = this.rules;\n      var requiredRule = this.required !== undefined ? { required: !!this.required } : [];\n\n      var prop = (0, _util.getPropByPath)(formRules, this.prop || '');\n      formRules = formRules ? prop.o[this.prop || ''] || prop.v : [];\n\n      return [].concat(selfRules || formRules || []).concat(requiredRule);\n    },\n    getFilteredRule: function getFilteredRule(trigger) {\n      var rules = this.getRules();\n\n      return rules.filter(function (rule) {\n        if (!rule.trigger || trigger === '') return true;\n        if (Array.isArray(rule.trigger)) {\n          return rule.trigger.indexOf(trigger) > -1;\n        } else {\n          return rule.trigger === trigger;\n        }\n      }).map(function (rule) {\n        return (0, _merge2.default)({}, rule);\n      });\n    },\n    onFieldBlur: function onFieldBlur() {\n      this.validate('blur');\n    },\n    onFieldChange: function onFieldChange() {\n      if (this.validateDisabled) {\n        this.validateDisabled = false;\n        return;\n      }\n\n      this.validate('change');\n    }\n  },\n  mounted: function mounted() {\n    if (this.prop) {\n      this.dispatch('ElForm', 'el.form.addField', [this]);\n\n      var initialValue = this.fieldValue;\n      if (Array.isArray(initialValue)) {\n        initialValue = [].concat(initialValue);\n      }\n      Object.defineProperty(this, 'initialValue', {\n        value: initialValue\n      });\n\n      var rules = this.getRules();\n\n      if (rules.length || this.required !== undefined) {\n        this.$on('el.form.blur', this.onFieldBlur);\n        this.$on('el.form.change', this.onFieldChange);\n      }\n    }\n  },\n  beforeDestroy: function beforeDestroy() {\n    this.dispatch('ElForm', 'el.form.removeField', [this]);\n  }\n};\n\n/***/ }),\n/* 232 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"async-validator\");\n\n/***/ }),\n/* 233 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-form-item\",class:[{\n    'el-form-item--feedback': _vm.elForm && _vm.elForm.statusIcon,\n    'is-error': _vm.validateState === 'error',\n    'is-validating': _vm.validateState === 'validating',\n    'is-success': _vm.validateState === 'success',\n    'is-required': _vm.isRequired || _vm.required\n  },\n  _vm.sizeClass ? 'el-form-item--' + _vm.sizeClass : ''\n]},[(_vm.label || _vm.$slots.label)?_c('label',{staticClass:\"el-form-item__label\",style:(_vm.labelStyle),attrs:{\"for\":_vm.labelFor}},[_vm._t(\"label\",[_vm._v(_vm._s(_vm.label + _vm.form.labelSuffix))])],2):_vm._e(),_c('div',{staticClass:\"el-form-item__content\",style:(_vm.contentStyle)},[_vm._t(\"default\"),_c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[(_vm.validateState === 'error' && _vm.showMessage && _vm.form.showMessage)?_c('div',{staticClass:\"el-form-item__error\",class:{\n          'el-form-item__error--inline': typeof _vm.inlineMessage === 'boolean'\n            ? _vm.inlineMessage\n            : (_vm.elForm && _vm.elForm.inlineMessage || false)\n        }},[_vm._v(\"\\n        \"+_vm._s(_vm.validateMessage)+\"\\n      \")]):_vm._e()])],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 234 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tabs = __webpack_require__(235);\n\nvar _tabs2 = _interopRequireDefault(_tabs);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_tabs2.default.install = function (Vue) {\n  Vue.component(_tabs2.default.name, _tabs2.default);\n};\n\nexports.default = _tabs2.default;\n\n/***/ }),\n/* 235 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tabs_vue__ = __webpack_require__(236);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tabs_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tabs_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tabs_vue___default.a,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tabNav = __webpack_require__(237);\n\nvar _tabNav2 = _interopRequireDefault(_tabNav);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElTabs',\n\n  components: {\n    TabNav: _tabNav2.default\n  },\n\n  props: {\n    type: String,\n    activeName: String,\n    closable: Boolean,\n    addable: Boolean,\n    value: {},\n    editable: Boolean,\n    tabPosition: {\n      type: String,\n      default: 'top'\n    },\n    beforeLeave: Function,\n    stretch: Boolean\n  },\n\n  provide: function provide() {\n    return {\n      rootTabs: this\n    };\n  },\n  data: function data() {\n    return {\n      currentName: this.value || this.activeName,\n      panes: []\n    };\n  },\n\n\n  watch: {\n    activeName: function activeName(value) {\n      this.setCurrentName(value);\n    },\n    value: function value(_value) {\n      this.setCurrentName(_value);\n    },\n    currentName: function currentName(value) {\n      var _this = this;\n\n      if (this.$refs.nav) {\n        this.$nextTick(function (_) {\n          _this.$refs.nav.scrollToActiveTab();\n        });\n      }\n    }\n  },\n\n  methods: {\n    handleTabClick: function handleTabClick(tab, tabName, event) {\n      if (tab.disabled) return;\n      this.setCurrentName(tabName);\n      this.$emit('tab-click', tab, event);\n    },\n    handleTabRemove: function handleTabRemove(pane, ev) {\n      if (pane.disabled) return;\n      ev.stopPropagation();\n      this.$emit('edit', pane.name, 'remove');\n      this.$emit('tab-remove', pane.name);\n    },\n    handleTabAdd: function handleTabAdd() {\n      this.$emit('edit', null, 'add');\n      this.$emit('tab-add');\n    },\n    setCurrentName: function setCurrentName(value) {\n      var _this2 = this;\n\n      var changeCurrentName = function changeCurrentName() {\n        _this2.currentName = value;\n        _this2.$emit('input', value);\n      };\n      if (this.currentName !== value && this.beforeLeave) {\n        var before = this.beforeLeave(value, this.currentName);\n        if (before && before.then) {\n          before.then(function () {\n            changeCurrentName();\n\n            _this2.$refs.nav && _this2.$refs.nav.removeFocus();\n          });\n        } else if (before !== false) {\n          changeCurrentName();\n        }\n      } else {\n        changeCurrentName();\n      }\n    },\n    addPanes: function addPanes(item) {\n      var index = this.$slots.default.indexOf(item.$vnode);\n      this.panes.splice(index, 0, item);\n    },\n    removePanes: function removePanes(item) {\n      var panes = this.panes;\n      var index = panes.indexOf(item);\n      if (index > -1) {\n        panes.splice(index, 1);\n      }\n    }\n  },\n  render: function render(h) {\n    var _ref;\n\n    var type = this.type,\n        handleTabClick = this.handleTabClick,\n        handleTabRemove = this.handleTabRemove,\n        handleTabAdd = this.handleTabAdd,\n        currentName = this.currentName,\n        panes = this.panes,\n        editable = this.editable,\n        addable = this.addable,\n        tabPosition = this.tabPosition,\n        stretch = this.stretch;\n\n\n    var newButton = editable || addable ? h(\n      'span',\n      {\n        'class': 'el-tabs__new-tab',\n        on: {\n          'click': handleTabAdd,\n          'keydown': function keydown(ev) {\n            if (ev.keyCode === 13) {\n              handleTabAdd();\n            }\n          }\n        },\n        attrs: {\n          tabindex: '0'\n        }\n      },\n      [h(\n        'i',\n        { 'class': 'el-icon-plus' },\n        []\n      )]\n    ) : null;\n\n    var navData = {\n      props: {\n        currentName: currentName,\n        onTabClick: handleTabClick,\n        onTabRemove: handleTabRemove,\n        editable: editable,\n        type: type,\n        panes: panes,\n        stretch: stretch\n      },\n      ref: 'nav'\n    };\n    var header = h(\n      'div',\n      { 'class': ['el-tabs__header', 'is-' + tabPosition] },\n      [newButton, h(\n        'tab-nav',\n        navData,\n        []\n      )]\n    );\n    var panels = h(\n      'div',\n      { 'class': 'el-tabs__content' },\n      [this.$slots.default]\n    );\n\n    return h(\n      'div',\n      { 'class': (_ref = {\n          'el-tabs': true,\n          'el-tabs--card': type === 'card'\n        }, _ref['el-tabs--' + tabPosition] = true, _ref['el-tabs--border-card'] = type === 'border-card', _ref) },\n      [tabPosition !== 'bottom' ? [header, panels] : [panels, header]]\n    );\n  },\n  created: function created() {\n    if (!this.currentName) {\n      this.setCurrentName('0');\n    }\n  }\n};\n\n/***/ }),\n/* 237 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_nav_vue__ = __webpack_require__(238);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_nav_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_nav_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_nav_vue___default.a,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tabBar = __webpack_require__(239);\n\nvar _tabBar2 = _interopRequireDefault(_tabBar);\n\nvar _resizeEvent = __webpack_require__(17);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction noop() {}\nvar firstUpperCase = function firstUpperCase(str) {\n  return str.toLowerCase().replace(/( |^)[a-z]/g, function (L) {\n    return L.toUpperCase();\n  });\n};\n\nexports.default = {\n  name: 'TabNav',\n\n  components: {\n    TabBar: _tabBar2.default\n  },\n\n  inject: ['rootTabs'],\n\n  props: {\n    panes: Array,\n    currentName: String,\n    editable: Boolean,\n    onTabClick: {\n      type: Function,\n      default: noop\n    },\n    onTabRemove: {\n      type: Function,\n      default: noop\n    },\n    type: String,\n    stretch: Boolean\n  },\n\n  data: function data() {\n    return {\n      scrollable: false,\n      navOffset: 0,\n      isFocus: false,\n      focusable: true\n    };\n  },\n\n\n  computed: {\n    navStyle: function navStyle() {\n      var dir = ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1 ? 'X' : 'Y';\n      return {\n        transform: 'translate' + dir + '(-' + this.navOffset + 'px)'\n      };\n    },\n    sizeName: function sizeName() {\n      return ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1 ? 'width' : 'height';\n    }\n  },\n\n  methods: {\n    scrollPrev: function scrollPrev() {\n      var containerSize = this.$refs.navScroll['offset' + firstUpperCase(this.sizeName)];\n      var currentOffset = this.navOffset;\n\n      if (!currentOffset) return;\n\n      var newOffset = currentOffset > containerSize ? currentOffset - containerSize : 0;\n\n      this.navOffset = newOffset;\n    },\n    scrollNext: function scrollNext() {\n      var navSize = this.$refs.nav['offset' + firstUpperCase(this.sizeName)];\n      var containerSize = this.$refs.navScroll['offset' + firstUpperCase(this.sizeName)];\n      var currentOffset = this.navOffset;\n\n      if (navSize - currentOffset <= containerSize) return;\n\n      var newOffset = navSize - currentOffset > containerSize * 2 ? currentOffset + containerSize : navSize - containerSize;\n\n      this.navOffset = newOffset;\n    },\n    scrollToActiveTab: function scrollToActiveTab() {\n      if (!this.scrollable) return;\n      var nav = this.$refs.nav;\n      var activeTab = this.$el.querySelector('.is-active');\n      if (!activeTab) return;\n      var navScroll = this.$refs.navScroll;\n      var activeTabBounding = activeTab.getBoundingClientRect();\n      var navScrollBounding = navScroll.getBoundingClientRect();\n      var navBounding = nav.getBoundingClientRect();\n      var currentOffset = this.navOffset;\n      var newOffset = currentOffset;\n\n      if (activeTabBounding.left < navScrollBounding.left) {\n        newOffset = currentOffset - (navScrollBounding.left - activeTabBounding.left);\n      }\n      if (activeTabBounding.right > navScrollBounding.right) {\n        newOffset = currentOffset + activeTabBounding.right - navScrollBounding.right;\n      }\n      if (navBounding.right < navScrollBounding.right) {\n        newOffset = nav.offsetWidth - navScrollBounding.width;\n      }\n      this.navOffset = Math.max(newOffset, 0);\n    },\n    update: function update() {\n      if (!this.$refs.nav) return;\n      var sizeName = this.sizeName;\n      var navSize = this.$refs.nav['offset' + firstUpperCase(sizeName)];\n      var containerSize = this.$refs.navScroll['offset' + firstUpperCase(sizeName)];\n      var currentOffset = this.navOffset;\n\n      if (containerSize < navSize) {\n        var _currentOffset = this.navOffset;\n        this.scrollable = this.scrollable || {};\n        this.scrollable.prev = _currentOffset;\n        this.scrollable.next = _currentOffset + containerSize < navSize;\n        if (navSize - _currentOffset < containerSize) {\n          this.navOffset = navSize - containerSize;\n        }\n      } else {\n        this.scrollable = false;\n        if (currentOffset > 0) {\n          this.navOffset = 0;\n        }\n      }\n    },\n    changeTab: function changeTab(e) {\n      var keyCode = e.keyCode;\n      var nextIndex = void 0;\n      var currentIndex = void 0,\n          tabList = void 0;\n      if ([37, 38, 39, 40].indexOf(keyCode) !== -1) {\n        // 宸﹀彸涓婁笅閿洿鎹ab\n        tabList = e.currentTarget.querySelectorAll('[role=tab]');\n        currentIndex = Array.prototype.indexOf.call(tabList, e.target);\n      } else {\n        return;\n      }\n      if (keyCode === 37 || keyCode === 38) {\n        // left\n        if (currentIndex === 0) {\n          // first\n          nextIndex = tabList.length - 1;\n        } else {\n          nextIndex = currentIndex - 1;\n        }\n      } else {\n        // right\n        if (currentIndex < tabList.length - 1) {\n          // not last\n          nextIndex = currentIndex + 1;\n        } else {\n          nextIndex = 0;\n        }\n      }\n      tabList[nextIndex].focus(); // 鏀瑰彉鐒︾偣鍏冪礌\n      tabList[nextIndex].click(); // 閫変腑涓嬩竴涓猼ab\n      this.setFocus();\n    },\n    setFocus: function setFocus() {\n      if (this.focusable) {\n        this.isFocus = true;\n      }\n    },\n    removeFocus: function removeFocus() {\n      this.isFocus = false;\n    },\n    visibilityChangeHandler: function visibilityChangeHandler() {\n      var _this = this;\n\n      var visibility = document.visibilityState;\n      if (visibility === 'hidden') {\n        this.focusable = false;\n      } else if (visibility === 'visible') {\n        setTimeout(function () {\n          _this.focusable = true;\n        }, 50);\n      }\n    },\n    windowBlurHandler: function windowBlurHandler() {\n      this.focusable = false;\n    },\n    windowFocusHandler: function windowFocusHandler() {\n      var _this2 = this;\n\n      setTimeout(function () {\n        _this2.focusable = true;\n      }, 50);\n    }\n  },\n\n  updated: function updated() {\n    this.update();\n  },\n  render: function render(h) {\n    var _this3 = this;\n\n    var type = this.type,\n        panes = this.panes,\n        editable = this.editable,\n        stretch = this.stretch,\n        onTabClick = this.onTabClick,\n        onTabRemove = this.onTabRemove,\n        navStyle = this.navStyle,\n        scrollable = this.scrollable,\n        scrollNext = this.scrollNext,\n        scrollPrev = this.scrollPrev,\n        changeTab = this.changeTab,\n        setFocus = this.setFocus,\n        removeFocus = this.removeFocus;\n\n    var scrollBtn = scrollable ? [h(\n      'span',\n      { 'class': ['el-tabs__nav-prev', scrollable.prev ? '' : 'is-disabled'], on: {\n          'click': scrollPrev\n        }\n      },\n      [h(\n        'i',\n        { 'class': 'el-icon-arrow-left' },\n        []\n      )]\n    ), h(\n      'span',\n      { 'class': ['el-tabs__nav-next', scrollable.next ? '' : 'is-disabled'], on: {\n          'click': scrollNext\n        }\n      },\n      [h(\n        'i',\n        { 'class': 'el-icon-arrow-right' },\n        []\n      )]\n    )] : null;\n\n    var tabs = this._l(panes, function (pane, index) {\n      var _ref;\n\n      var tabName = pane.name || pane.index || index;\n      var closable = pane.isClosable || editable;\n\n      pane.index = '' + index;\n\n      var btnClose = closable ? h(\n        'span',\n        { 'class': 'el-icon-close', on: {\n            'click': function click(ev) {\n              onTabRemove(pane, ev);\n            }\n          }\n        },\n        []\n      ) : null;\n\n      var tabLabelContent = pane.$slots.label || pane.label;\n      var tabindex = pane.active ? 0 : -1;\n      return h(\n        'div',\n        {\n          'class': (_ref = {\n            'el-tabs__item': true\n          }, _ref['is-' + _this3.rootTabs.tabPosition] = true, _ref['is-active'] = pane.active, _ref['is-disabled'] = pane.disabled, _ref['is-closable'] = closable, _ref['is-focus'] = _this3.isFocus, _ref),\n          attrs: { id: 'tab-' + tabName,\n            'aria-controls': 'pane-' + tabName,\n            role: 'tab',\n            'aria-selected': pane.active,\n\n            tabindex: tabindex\n          },\n          ref: 'tabs', refInFor: true,\n          on: {\n            'focus': function focus() {\n              setFocus();\n            },\n            'blur': function blur() {\n              removeFocus();\n            },\n            'click': function click(ev) {\n              removeFocus();onTabClick(pane, tabName, ev);\n            },\n            'keydown': function keydown(ev) {\n              if (closable && (ev.keyCode === 46 || ev.keyCode === 8)) {\n                onTabRemove(pane, ev);\n              }\n            }\n          }\n        },\n        [tabLabelContent, btnClose]\n      );\n    });\n    return h(\n      'div',\n      { 'class': ['el-tabs__nav-wrap', scrollable ? 'is-scrollable' : '', 'is-' + this.rootTabs.tabPosition] },\n      [scrollBtn, h(\n        'div',\n        { 'class': ['el-tabs__nav-scroll'], ref: 'navScroll' },\n        [h(\n          'div',\n          {\n            'class': ['el-tabs__nav', 'is-' + this.rootTabs.tabPosition, stretch && ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1 ? 'is-stretch' : ''],\n            ref: 'nav',\n            style: navStyle,\n            attrs: { role: 'tablist'\n            },\n            on: {\n              'keydown': changeTab\n            }\n          },\n          [!type ? h(\n            'tab-bar',\n            {\n              attrs: { tabs: panes }\n            },\n            []\n          ) : null, tabs]\n        )]\n      )]\n    );\n  },\n  mounted: function mounted() {\n    (0, _resizeEvent.addResizeListener)(this.$el, this.update);\n    document.addEventListener('visibilitychange', this.visibilityChangeHandler);\n    window.addEventListener('blur', this.windowBlurHandler);\n    window.addEventListener('focus', this.windowFocusHandler);\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this.$el && this.update) (0, _resizeEvent.removeResizeListener)(this.$el, this.update);\n    document.removeEventListener('visibilitychange', this.visibilityChangeHandler);\n    window.removeEventListener('blur', this.windowBlurHandler);\n    window.removeEventListener('focus', this.windowFocusHandler);\n  }\n};\n\n/***/ }),\n/* 239 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_bar_vue__ = __webpack_require__(240);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_bar_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_bar_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_969dc580_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tab_bar_vue__ = __webpack_require__(241);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_bar_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_969dc580_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tab_bar_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 240 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n\nexports.default = {\n  name: 'TabBar',\n\n  props: {\n    tabs: Array\n  },\n\n  inject: ['rootTabs'],\n\n  computed: {\n    barStyle: {\n      cache: false,\n      get: function get() {\n        var _this = this;\n\n        if (!this.$parent.$refs.tabs) return {};\n        var style = {};\n        var offset = 0;\n        var tabSize = 0;\n        var sizeName = ['top', 'bottom'].indexOf(this.rootTabs.tabPosition) !== -1 ? 'width' : 'height';\n        var sizeDir = sizeName === 'width' ? 'x' : 'y';\n        var firstUpperCase = function firstUpperCase(str) {\n          return str.toLowerCase().replace(/( |^)[a-z]/g, function (L) {\n            return L.toUpperCase();\n          });\n        };\n        this.tabs.every(function (tab, index) {\n          var $el = _this.$parent.$refs.tabs[index];\n          if (!$el) {\n            return false;\n          }\n\n          if (!tab.active) {\n            offset += $el['client' + firstUpperCase(sizeName)];\n            return true;\n          } else {\n            tabSize = $el['client' + firstUpperCase(sizeName)];\n            if (sizeName === 'width' && _this.tabs.length > 1) {\n              tabSize -= index === 0 || index === _this.tabs.length - 1 ? 20 : 40;\n            }\n            return false;\n          }\n        });\n\n        if (sizeName === 'width' && offset !== 0) {\n          offset += 20;\n        }\n        var transform = 'translate' + firstUpperCase(sizeDir) + '(' + offset + 'px)';\n        style[sizeName] = tabSize + 'px';\n        style.transform = transform;\n        style.msTransform = transform;\n        style.webkitTransform = transform;\n\n        return style;\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 241 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-tabs__active-bar\",class:(\"is-\" + (_vm.rootTabs.tabPosition)),style:(_vm.barStyle)})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 242 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tabPane = __webpack_require__(243);\n\nvar _tabPane2 = _interopRequireDefault(_tabPane);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_tabPane2.default.install = function (Vue) {\n  Vue.component(_tabPane2.default.name, _tabPane2.default);\n};\n\nexports.default = _tabPane2.default;\n\n/***/ }),\n/* 243 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_pane_vue__ = __webpack_require__(244);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_pane_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_pane_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e85416ea_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tab_pane_vue__ = __webpack_require__(245);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tab_pane_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e85416ea_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tab_pane_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 244 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElTabPane',\n\n  componentName: 'ElTabPane',\n\n  props: {\n    label: String,\n    labelContent: Function,\n    name: String,\n    closable: Boolean,\n    disabled: Boolean,\n    lazy: Boolean\n  },\n\n  data: function data() {\n    return {\n      index: null,\n      loaded: false\n    };\n  },\n\n\n  computed: {\n    isClosable: function isClosable() {\n      return this.closable || this.$parent.closable;\n    },\n    active: function active() {\n      var active = this.$parent.currentName === (this.name || this.index);\n      if (active) {\n        this.loaded = true;\n      }\n      return active;\n    },\n    paneName: function paneName() {\n      return this.name || this.index;\n    }\n  },\n\n  mounted: function mounted() {\n    this.$parent.addPanes(this);\n  },\n  destroyed: function destroyed() {\n    if (this.$el && this.$el.parentNode) {\n      this.$el.parentNode.removeChild(this.$el);\n    }\n    this.$parent.removePanes(this);\n  },\n\n\n  watch: {\n    label: function label() {\n      this.$parent.$forceUpdate();\n    }\n  }\n};\n\n/***/ }),\n/* 245 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return ((!_vm.lazy || _vm.loaded) || _vm.active)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.active),expression:\"active\"}],staticClass:\"el-tab-pane\",attrs:{\"role\":\"tabpanel\",\"aria-hidden\":!_vm.active,\"id\":(\"pane-\" + _vm.paneName),\"aria-labelledby\":(\"tab-\" + _vm.paneName)}},[_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 246 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tag = __webpack_require__(247);\n\nvar _tag2 = _interopRequireDefault(_tag);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_tag2.default.install = function (Vue) {\n  Vue.component(_tag2.default.name, _tag2.default);\n};\n\nexports.default = _tag2.default;\n\n/***/ }),\n/* 247 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue__ = __webpack_require__(248);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2c90362e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tag_vue__ = __webpack_require__(249);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tag_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2c90362e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tag_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 248 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElTag',\n  props: {\n    text: String,\n    closable: Boolean,\n    type: String,\n    hit: Boolean,\n    disableTransitions: Boolean,\n    color: String,\n    size: String\n  },\n  methods: {\n    handleClose: function handleClose(event) {\n      this.$emit('close', event);\n    }\n  },\n  computed: {\n    tagSize: function tagSize() {\n      return this.size || (this.$ELEMENT || {}).size;\n    }\n  }\n};\n\n/***/ }),\n/* 249 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":_vm.disableTransitions ? '' : 'el-zoom-in-center'}},[_c('span',{staticClass:\"el-tag\",class:[\n      _vm.type ? 'el-tag--' + _vm.type : '',\n      _vm.tagSize && (\"el-tag--\" + _vm.tagSize),\n      {'is-hit': _vm.hit}\n    ],style:({backgroundColor: _vm.color})},[_vm._t(\"default\"),(_vm.closable)?_c('i',{staticClass:\"el-tag__close el-icon-close\",on:{\"click\":function($event){$event.stopPropagation();_vm.handleClose($event)}}}):_vm._e()],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tree = __webpack_require__(251);\n\nvar _tree2 = _interopRequireDefault(_tree);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_tree2.default.install = function (Vue) {\n  Vue.component(_tree2.default.name, _tree2.default);\n};\n\nexports.default = _tree2.default;\n\n/***/ }),\n/* 251 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue__ = __webpack_require__(252);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_a385d82e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_vue__ = __webpack_require__(258);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_a385d82e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 252 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _treeStore = __webpack_require__(253);\n\nvar _treeStore2 = _interopRequireDefault(_treeStore);\n\nvar _util = __webpack_require__(22);\n\nvar _treeNode = __webpack_require__(255);\n\nvar _treeNode2 = _interopRequireDefault(_treeNode);\n\nvar _locale = __webpack_require__(16);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _dom = __webpack_require__(2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElTree',\n\n  mixins: [_emitter2.default],\n\n  components: {\n    ElTreeNode: _treeNode2.default\n  },\n\n  data: function data() {\n    return {\n      store: null,\n      root: null,\n      currentNode: null,\n      treeItems: null,\n      checkboxItems: [],\n      dragState: {\n        showDropIndicator: false,\n        draggingNode: null,\n        dropNode: null,\n        allowDrop: true\n      }\n    };\n  },\n\n\n  props: {\n    data: {\n      type: Array\n    },\n    emptyText: {\n      type: String,\n      default: function _default() {\n        return (0, _locale.t)('el.tree.emptyText');\n      }\n    },\n    renderAfterExpand: {\n      type: Boolean,\n      default: true\n    },\n    nodeKey: String,\n    checkStrictly: Boolean,\n    defaultExpandAll: Boolean,\n    expandOnClickNode: {\n      type: Boolean,\n      default: true\n    },\n    checkOnClickNode: Boolean,\n    checkDescendants: {\n      type: Boolean,\n      default: false\n    },\n    autoExpandParent: {\n      type: Boolean,\n      default: true\n    },\n    defaultCheckedKeys: Array,\n    defaultExpandedKeys: Array,\n    renderContent: Function,\n    showCheckbox: {\n      type: Boolean,\n      default: false\n    },\n    draggable: {\n      type: Boolean,\n      default: false\n    },\n    allowDrag: Function,\n    allowDrop: Function,\n    props: {\n      default: function _default() {\n        return {\n          children: 'children',\n          label: 'label',\n          icon: 'icon',\n          disabled: 'disabled'\n        };\n      }\n    },\n    lazy: {\n      type: Boolean,\n      default: false\n    },\n    highlightCurrent: Boolean,\n    load: Function,\n    filterNodeMethod: Function,\n    accordion: Boolean,\n    indent: {\n      type: Number,\n      default: 18\n    }\n  },\n\n  computed: {\n    children: {\n      set: function set(value) {\n        this.data = value;\n      },\n      get: function get() {\n        return this.data;\n      }\n    },\n\n    treeItemArray: function treeItemArray() {\n      return Array.prototype.slice.call(this.treeItems);\n    },\n    isEmpty: function isEmpty() {\n      var childNodes = this.root.childNodes;\n\n      return !childNodes || childNodes.length === 0 || childNodes.every(function (_ref) {\n        var visible = _ref.visible;\n        return !visible;\n      });\n    }\n  },\n\n  watch: {\n    defaultCheckedKeys: function defaultCheckedKeys(newVal) {\n      this.store.setDefaultCheckedKey(newVal);\n    },\n    defaultExpandedKeys: function defaultExpandedKeys(newVal) {\n      this.store.defaultExpandedKeys = newVal;\n      this.store.setDefaultExpandedKeys(newVal);\n    },\n    data: function data(newVal) {\n      this.store.setData(newVal);\n    },\n    checkboxItems: function checkboxItems(val) {\n      Array.prototype.forEach.call(val, function (checkbox) {\n        checkbox.setAttribute('tabindex', -1);\n      });\n    },\n    checkStrictly: function checkStrictly(newVal) {\n      this.store.checkStrictly = newVal;\n    }\n  },\n\n  methods: {\n    filter: function filter(value) {\n      if (!this.filterNodeMethod) throw new Error('[Tree] filterNodeMethod is required when filter');\n      this.store.filter(value);\n    },\n    getNodeKey: function getNodeKey(node) {\n      return (0, _util.getNodeKey)(this.nodeKey, node.data);\n    },\n    getNodePath: function getNodePath(data) {\n      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getNodePath');\n      var node = this.store.getNode(data);\n      if (!node) return [];\n      var path = [node.data];\n      var parent = node.parent;\n      while (parent && parent !== this.root) {\n        path.push(parent.data);\n        parent = parent.parent;\n      }\n      return path.reverse();\n    },\n    getCheckedNodes: function getCheckedNodes(leafOnly, includeHalfChecked) {\n      return this.store.getCheckedNodes(leafOnly, includeHalfChecked);\n    },\n    getCheckedKeys: function getCheckedKeys(leafOnly) {\n      return this.store.getCheckedKeys(leafOnly);\n    },\n    getCurrentNode: function getCurrentNode() {\n      var currentNode = this.store.getCurrentNode();\n      return currentNode ? currentNode.data : null;\n    },\n    getCurrentKey: function getCurrentKey() {\n      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in getCurrentKey');\n      var currentNode = this.getCurrentNode();\n      return currentNode ? currentNode[this.nodeKey] : null;\n    },\n    setCheckedNodes: function setCheckedNodes(nodes, leafOnly) {\n      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedNodes');\n      this.store.setCheckedNodes(nodes, leafOnly);\n    },\n    setCheckedKeys: function setCheckedKeys(keys, leafOnly) {\n      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCheckedKeys');\n      this.store.setCheckedKeys(keys, leafOnly);\n    },\n    setChecked: function setChecked(data, checked, deep) {\n      this.store.setChecked(data, checked, deep);\n    },\n    getHalfCheckedNodes: function getHalfCheckedNodes() {\n      return this.store.getHalfCheckedNodes();\n    },\n    getHalfCheckedKeys: function getHalfCheckedKeys() {\n      return this.store.getHalfCheckedKeys();\n    },\n    setCurrentNode: function setCurrentNode(node) {\n      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentNode');\n      this.store.setUserCurrentNode(node);\n    },\n    setCurrentKey: function setCurrentKey(key) {\n      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in setCurrentKey');\n      this.store.setCurrentNodeKey(key);\n    },\n    getNode: function getNode(data) {\n      return this.store.getNode(data);\n    },\n    remove: function remove(data) {\n      this.store.remove(data);\n    },\n    append: function append(data, parentNode) {\n      this.store.append(data, parentNode);\n    },\n    insertBefore: function insertBefore(data, refNode) {\n      this.store.insertBefore(data, refNode);\n    },\n    insertAfter: function insertAfter(data, refNode) {\n      this.store.insertAfter(data, refNode);\n    },\n    handleNodeExpand: function handleNodeExpand(nodeData, node, instance) {\n      this.broadcast('ElTreeNode', 'tree-node-expand', node);\n      this.$emit('node-expand', nodeData, node, instance);\n    },\n    updateKeyChildren: function updateKeyChildren(key, data) {\n      if (!this.nodeKey) throw new Error('[Tree] nodeKey is required in updateKeyChild');\n      this.store.updateChildren(key, data);\n    },\n    initTabIndex: function initTabIndex() {\n      this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]');\n      this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]');\n      var checkedItem = this.$el.querySelectorAll('.is-checked[role=treeitem]');\n      if (checkedItem.length) {\n        checkedItem[0].setAttribute('tabindex', 0);\n        return;\n      }\n      this.treeItems[0] && this.treeItems[0].setAttribute('tabindex', 0);\n    },\n    handleKeydown: function handleKeydown(ev) {\n      var currentItem = ev.target;\n      if (currentItem.className.indexOf('el-tree-node') === -1) return;\n      var keyCode = ev.keyCode;\n      this.treeItems = this.$el.querySelectorAll('.is-focusable[role=treeitem]');\n      var currentIndex = this.treeItemArray.indexOf(currentItem);\n      var nextIndex = void 0;\n      if ([38, 40].indexOf(keyCode) > -1) {\n        // up銆乨own\n        ev.preventDefault();\n        if (keyCode === 38) {\n          // up\n          nextIndex = currentIndex !== 0 ? currentIndex - 1 : 0;\n        } else {\n          nextIndex = currentIndex < this.treeItemArray.length - 1 ? currentIndex + 1 : 0;\n        }\n        this.treeItemArray[nextIndex].focus(); // 閫変腑\n      }\n      if ([37, 39].indexOf(keyCode) > -1) {\n        // left銆乺ight 灞曞紑\n        ev.preventDefault();\n        currentItem.click(); // 閫変腑\n      }\n      var hasInput = currentItem.querySelector('[type=\"checkbox\"]');\n      if ([13, 32].indexOf(keyCode) > -1 && hasInput) {\n        // space enter閫変腑checkbox\n        ev.preventDefault();\n        hasInput.click();\n      }\n    }\n  },\n\n  created: function created() {\n    var _this = this;\n\n    this.isTree = true;\n\n    this.store = new _treeStore2.default({\n      key: this.nodeKey,\n      data: this.data,\n      lazy: this.lazy,\n      props: this.props,\n      load: this.load,\n      currentNodeKey: this.currentNodeKey,\n      checkStrictly: this.checkStrictly,\n      checkDescendants: this.checkDescendants,\n      defaultCheckedKeys: this.defaultCheckedKeys,\n      defaultExpandedKeys: this.defaultExpandedKeys,\n      autoExpandParent: this.autoExpandParent,\n      defaultExpandAll: this.defaultExpandAll,\n      filterNodeMethod: this.filterNodeMethod\n    });\n\n    this.root = this.store.root;\n\n    var dragState = this.dragState;\n    this.$on('tree-node-drag-start', function (event, treeNode) {\n      if (typeof _this.allowDrag === 'function' && !_this.allowDrag(treeNode.node)) {\n        event.preventDefault();\n        return false;\n      }\n      event.dataTransfer.effectAllowed = 'move';\n\n      // wrap in try catch to address IE's error when first param is 'text/plain'\n      try {\n        // setData is required for draggable to work in FireFox\n        // the content has to be '' so dragging a node out of the tree won't open a new tab in FireFox\n        event.dataTransfer.setData('text/plain', '');\n      } catch (e) {}\n      dragState.draggingNode = treeNode;\n      _this.$emit('node-drag-start', treeNode.node, event);\n    });\n\n    this.$on('tree-node-drag-over', function (event, treeNode) {\n      var dropNode = (0, _util.findNearestComponent)(event.target, 'ElTreeNode');\n      var oldDropNode = dragState.dropNode;\n      if (oldDropNode && oldDropNode !== dropNode) {\n        (0, _dom.removeClass)(oldDropNode.$el, 'is-drop-inner');\n      }\n      var draggingNode = dragState.draggingNode;\n      if (!draggingNode || !dropNode) return;\n\n      var dropPrev = true;\n      var dropInner = true;\n      var dropNext = true;\n      var userAllowDropInner = true;\n      if (typeof _this.allowDrop === 'function') {\n        dropPrev = _this.allowDrop(draggingNode.node, dropNode.node, 'prev');\n        userAllowDropInner = dropInner = _this.allowDrop(draggingNode.node, dropNode.node, 'inner');\n        dropNext = _this.allowDrop(draggingNode.node, dropNode.node, 'next');\n      }\n      event.dataTransfer.dropEffect = dropInner ? 'move' : 'none';\n      if ((dropPrev || dropInner || dropNext) && oldDropNode !== dropNode) {\n        if (oldDropNode) {\n          _this.$emit('node-drag-leave', draggingNode.node, oldDropNode.node, event);\n        }\n        _this.$emit('node-drag-enter', draggingNode.node, dropNode.node, event);\n      }\n\n      if (dropPrev || dropInner || dropNext) {\n        dragState.dropNode = dropNode;\n      }\n\n      if (dropNode.node.nextSibling === draggingNode.node) {\n        dropNext = false;\n      }\n      if (dropNode.node.previousSibling === draggingNode.node) {\n        dropPrev = false;\n      }\n      if (dropNode.node.contains(draggingNode.node, false)) {\n        dropInner = false;\n      }\n      if (draggingNode.node === dropNode.node || draggingNode.node.contains(dropNode.node)) {\n        dropPrev = false;\n        dropInner = false;\n        dropNext = false;\n      }\n\n      var targetPosition = dropNode.$el.getBoundingClientRect();\n      var treePosition = _this.$el.getBoundingClientRect();\n\n      var dropType = void 0;\n      var prevPercent = dropPrev ? dropInner ? 0.25 : dropNext ? 0.45 : 1 : -1;\n      var nextPercent = dropNext ? dropInner ? 0.75 : dropPrev ? 0.55 : 0 : 1;\n\n      var indicatorTop = -9999;\n      var distance = event.clientY - targetPosition.top;\n      if (distance < targetPosition.height * prevPercent) {\n        dropType = 'before';\n      } else if (distance > targetPosition.height * nextPercent) {\n        dropType = 'after';\n      } else if (dropInner) {\n        dropType = 'inner';\n      } else {\n        dropType = 'none';\n      }\n\n      var dropIndicator = _this.$refs.dropIndicator;\n      if (dropType === 'before') {\n        indicatorTop = targetPosition.top - treePosition.top;\n      } else if (dropType === 'after') {\n        indicatorTop = targetPosition.bottom - treePosition.top;\n      }\n      dropIndicator.style.top = indicatorTop + 'px';\n      dropIndicator.style.left = targetPosition.right - treePosition.left + 'px';\n\n      if (dropType === 'inner') {\n        (0, _dom.addClass)(dropNode.$el, 'is-drop-inner');\n      } else {\n        (0, _dom.removeClass)(dropNode.$el, 'is-drop-inner');\n      }\n\n      dragState.showDropIndicator = dropType === 'before' || dropType === 'after';\n      dragState.allowDrop = dragState.showDropIndicator || userAllowDropInner;\n      dragState.dropType = dropType;\n      _this.$emit('node-drag-over', draggingNode.node, dropNode.node, event);\n    });\n\n    this.$on('tree-node-drag-end', function (event) {\n      var draggingNode = dragState.draggingNode,\n          dropType = dragState.dropType,\n          dropNode = dragState.dropNode;\n\n      event.preventDefault();\n      event.dataTransfer.dropEffect = 'move';\n\n      if (draggingNode && dropNode) {\n        var draggingNodeCopy = { data: draggingNode.node.data };\n        if (dropType !== 'none') {\n          draggingNode.node.remove();\n        }\n        if (dropType === 'before') {\n          dropNode.node.parent.insertBefore(draggingNodeCopy, dropNode.node);\n        } else if (dropType === 'after') {\n          dropNode.node.parent.insertAfter(draggingNodeCopy, dropNode.node);\n        } else if (dropType === 'inner') {\n          dropNode.node.insertChild(draggingNodeCopy);\n        }\n        if (dropType !== 'none') {\n          _this.store.registerNode(draggingNodeCopy);\n        }\n\n        (0, _dom.removeClass)(dropNode.$el, 'is-drop-inner');\n\n        _this.$emit('node-drag-end', draggingNode.node, dropNode.node, dropType, event);\n        if (dropType !== 'none') {\n          _this.$emit('node-drop', draggingNode.node, dropNode.node, dropType, event);\n        }\n      }\n      if (draggingNode && !dropNode) {\n        _this.$emit('node-drag-end', draggingNode.node, null, dropType, event);\n      }\n\n      dragState.showDropIndicator = false;\n      dragState.draggingNode = null;\n      dragState.dropNode = null;\n      dragState.allowDrop = true;\n    });\n  },\n  mounted: function mounted() {\n    this.initTabIndex();\n    this.$el.addEventListener('keydown', this.handleKeydown);\n  },\n  updated: function updated() {\n    this.treeItems = this.$el.querySelectorAll('[role=treeitem]');\n    this.checkboxItems = this.$el.querySelectorAll('input[type=checkbox]');\n  }\n};\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _node = __webpack_require__(254);\n\nvar _node2 = _interopRequireDefault(_node);\n\nvar _util = __webpack_require__(22);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TreeStore = function () {\n  function TreeStore(options) {\n    var _this = this;\n\n    _classCallCheck(this, TreeStore);\n\n    this.currentNode = null;\n    this.currentNodeKey = null;\n\n    for (var option in options) {\n      if (options.hasOwnProperty(option)) {\n        this[option] = options[option];\n      }\n    }\n\n    this.nodesMap = {};\n\n    this.root = new _node2.default({\n      data: this.data,\n      store: this\n    });\n\n    if (this.lazy && this.load) {\n      var loadFn = this.load;\n      loadFn(this.root, function (data) {\n        _this.root.doCreateChildren(data);\n        _this._initDefaultCheckedNodes();\n      });\n    } else {\n      this._initDefaultCheckedNodes();\n    }\n  }\n\n  TreeStore.prototype.filter = function filter(value) {\n    var filterNodeMethod = this.filterNodeMethod;\n    var lazy = this.lazy;\n    var traverse = function traverse(node) {\n      var childNodes = node.root ? node.root.childNodes : node.childNodes;\n\n      childNodes.forEach(function (child) {\n        child.visible = filterNodeMethod.call(child, value, child.data, child);\n\n        traverse(child);\n      });\n\n      if (!node.visible && childNodes.length) {\n        var allHidden = true;\n\n        childNodes.forEach(function (child) {\n          if (child.visible) allHidden = false;\n        });\n\n        if (node.root) {\n          node.root.visible = allHidden === false;\n        } else {\n          node.visible = allHidden === false;\n        }\n      }\n      if (!value) return;\n\n      if (node.visible && !node.isLeaf && !lazy) node.expand();\n    };\n\n    traverse(this);\n  };\n\n  TreeStore.prototype.setData = function setData(newVal) {\n    var instanceChanged = newVal !== this.root.data;\n    if (instanceChanged) {\n      this.root.setData(newVal);\n      this._initDefaultCheckedNodes();\n    } else {\n      this.root.updateChildren();\n    }\n  };\n\n  TreeStore.prototype.getNode = function getNode(data) {\n    if (data instanceof _node2.default) return data;\n    var key = (typeof data === 'undefined' ? 'undefined' : _typeof(data)) !== 'object' ? data : (0, _util.getNodeKey)(this.key, data);\n    return this.nodesMap[key] || null;\n  };\n\n  TreeStore.prototype.insertBefore = function insertBefore(data, refData) {\n    var refNode = this.getNode(refData);\n    refNode.parent.insertBefore({ data: data }, refNode);\n  };\n\n  TreeStore.prototype.insertAfter = function insertAfter(data, refData) {\n    var refNode = this.getNode(refData);\n    refNode.parent.insertAfter({ data: data }, refNode);\n  };\n\n  TreeStore.prototype.remove = function remove(data) {\n    var node = this.getNode(data);\n    if (node && node.parent) {\n      node.parent.removeChild(node);\n    }\n  };\n\n  TreeStore.prototype.append = function append(data, parentData) {\n    var parentNode = parentData ? this.getNode(parentData) : this.root;\n\n    if (parentNode) {\n      parentNode.insertChild({ data: data });\n    }\n  };\n\n  TreeStore.prototype._initDefaultCheckedNodes = function _initDefaultCheckedNodes() {\n    var _this2 = this;\n\n    var defaultCheckedKeys = this.defaultCheckedKeys || [];\n    var nodesMap = this.nodesMap;\n\n    defaultCheckedKeys.forEach(function (checkedKey) {\n      var node = nodesMap[checkedKey];\n\n      if (node) {\n        node.setChecked(true, !_this2.checkStrictly);\n      }\n    });\n  };\n\n  TreeStore.prototype._initDefaultCheckedNode = function _initDefaultCheckedNode(node) {\n    var defaultCheckedKeys = this.defaultCheckedKeys || [];\n\n    if (defaultCheckedKeys.indexOf(node.key) !== -1) {\n      node.setChecked(true, !this.checkStrictly);\n    }\n  };\n\n  TreeStore.prototype.setDefaultCheckedKey = function setDefaultCheckedKey(newVal) {\n    if (newVal !== this.defaultCheckedKeys) {\n      this.defaultCheckedKeys = newVal;\n      this._initDefaultCheckedNodes();\n    }\n  };\n\n  TreeStore.prototype.registerNode = function registerNode(node) {\n    var key = this.key;\n    if (!key || !node || !node.data) return;\n\n    var nodeKey = node.key;\n    if (nodeKey !== undefined) this.nodesMap[node.key] = node;\n  };\n\n  TreeStore.prototype.deregisterNode = function deregisterNode(node) {\n    var _this3 = this;\n\n    var key = this.key;\n    if (!key || !node || !node.data) return;\n\n    node.childNodes.forEach(function (child) {\n      _this3.deregisterNode(child);\n    });\n\n    delete this.nodesMap[node.key];\n  };\n\n  TreeStore.prototype.getCheckedNodes = function getCheckedNodes() {\n    var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    var includeHalfChecked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var checkedNodes = [];\n    var traverse = function traverse(node) {\n      var childNodes = node.root ? node.root.childNodes : node.childNodes;\n\n      childNodes.forEach(function (child) {\n        if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) {\n          checkedNodes.push(child.data);\n        }\n\n        traverse(child);\n      });\n    };\n\n    traverse(this);\n\n    return checkedNodes;\n  };\n\n  TreeStore.prototype.getCheckedKeys = function getCheckedKeys() {\n    var _this4 = this;\n\n    var leafOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    return this.getCheckedNodes(leafOnly).map(function (data) {\n      return (data || {})[_this4.key];\n    });\n  };\n\n  TreeStore.prototype.getHalfCheckedNodes = function getHalfCheckedNodes() {\n    var nodes = [];\n    var traverse = function traverse(node) {\n      var childNodes = node.root ? node.root.childNodes : node.childNodes;\n\n      childNodes.forEach(function (child) {\n        if (child.indeterminate) {\n          nodes.push(child.data);\n        }\n\n        traverse(child);\n      });\n    };\n\n    traverse(this);\n\n    return nodes;\n  };\n\n  TreeStore.prototype.getHalfCheckedKeys = function getHalfCheckedKeys() {\n    var _this5 = this;\n\n    return this.getHalfCheckedNodes().map(function (data) {\n      return (data || {})[_this5.key];\n    });\n  };\n\n  TreeStore.prototype._getAllNodes = function _getAllNodes() {\n    var allNodes = [];\n    var nodesMap = this.nodesMap;\n    for (var nodeKey in nodesMap) {\n      if (nodesMap.hasOwnProperty(nodeKey)) {\n        allNodes.push(nodesMap[nodeKey]);\n      }\n    }\n\n    return allNodes;\n  };\n\n  TreeStore.prototype.updateChildren = function updateChildren(key, data) {\n    var node = this.nodesMap[key];\n    if (!node) return;\n    var childNodes = node.childNodes;\n    for (var i = childNodes.length - 1; i >= 0; i--) {\n      var child = childNodes[i];\n      this.remove(child.data);\n    }\n    for (var _i = 0, j = data.length; _i < j; _i++) {\n      var _child = data[_i];\n      this.append(_child, node.data);\n    }\n  };\n\n  TreeStore.prototype._setCheckedKeys = function _setCheckedKeys(key) {\n    var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var checkedKeys = arguments[2];\n\n    var allNodes = this._getAllNodes().sort(function (a, b) {\n      return b.level - a.level;\n    });\n    var cache = Object.create(null);\n    var keys = Object.keys(checkedKeys);\n    allNodes.forEach(function (node) {\n      return node.setChecked(false, false);\n    });\n    for (var i = 0, j = allNodes.length; i < j; i++) {\n      var node = allNodes[i];\n      var nodeKey = node.data[key].toString();\n      var checked = keys.indexOf(nodeKey) > -1;\n      if (!checked) {\n        if (node.checked && !cache[nodeKey]) {\n          node.setChecked(false, false);\n        }\n        continue;\n      }\n\n      var parent = node.parent;\n      while (parent && parent.level > 0) {\n        cache[parent.data[key]] = true;\n        parent = parent.parent;\n      }\n\n      if (node.isLeaf || this.checkStrictly) {\n        node.setChecked(true, false);\n        continue;\n      }\n      node.setChecked(true, true);\n\n      if (leafOnly) {\n        (function () {\n          node.setChecked(false, false);\n          var traverse = function traverse(node) {\n            var childNodes = node.childNodes;\n            childNodes.forEach(function (child) {\n              if (!child.isLeaf) {\n                child.setChecked(false, false);\n              }\n              traverse(child);\n            });\n          };\n          traverse(node);\n        })();\n      }\n    }\n  };\n\n  TreeStore.prototype.setCheckedNodes = function setCheckedNodes(array) {\n    var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    var key = this.key;\n    var checkedKeys = {};\n    array.forEach(function (item) {\n      checkedKeys[(item || {})[key]] = true;\n    });\n\n    this._setCheckedKeys(key, leafOnly, checkedKeys);\n  };\n\n  TreeStore.prototype.setCheckedKeys = function setCheckedKeys(keys) {\n    var leafOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n    this.defaultCheckedKeys = keys;\n    var key = this.key;\n    var checkedKeys = {};\n    keys.forEach(function (key) {\n      checkedKeys[key] = true;\n    });\n\n    this._setCheckedKeys(key, leafOnly, checkedKeys);\n  };\n\n  TreeStore.prototype.setDefaultExpandedKeys = function setDefaultExpandedKeys(keys) {\n    var _this6 = this;\n\n    keys = keys || [];\n    this.defaultExpandedKeys = keys;\n\n    keys.forEach(function (key) {\n      var node = _this6.getNode(key);\n      if (node) node.expand(null, _this6.autoExpandParent);\n    });\n  };\n\n  TreeStore.prototype.setChecked = function setChecked(data, checked, deep) {\n    var node = this.getNode(data);\n\n    if (node) {\n      node.setChecked(!!checked, deep);\n    }\n  };\n\n  TreeStore.prototype.getCurrentNode = function getCurrentNode() {\n    return this.currentNode;\n  };\n\n  TreeStore.prototype.setCurrentNode = function setCurrentNode(node) {\n    this.currentNode = node;\n  };\n\n  TreeStore.prototype.setUserCurrentNode = function setUserCurrentNode(node) {\n    var key = node[this.key];\n    var currNode = this.nodesMap[key];\n    this.setCurrentNode(currNode);\n  };\n\n  TreeStore.prototype.setCurrentNodeKey = function setCurrentNodeKey(key) {\n    if (key === null) {\n      this.currentNode = null;\n      return;\n    }\n    var node = this.getNode(key);\n    if (node) {\n      this.currentNode = node;\n    }\n  };\n\n  return TreeStore;\n}();\n\nexports.default = TreeStore;\n;\n\n/***/ }),\n/* 254 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.getChildState = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nvar _util = __webpack_require__(22);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar getChildState = exports.getChildState = function getChildState(node) {\n  var all = true;\n  var none = true;\n  var allWithoutDisable = true;\n  for (var i = 0, j = node.length; i < j; i++) {\n    var n = node[i];\n    if (n.checked !== true || n.indeterminate) {\n      all = false;\n      if (!n.disabled) {\n        allWithoutDisable = false;\n      }\n    }\n    if (n.checked !== false || n.indeterminate) {\n      none = false;\n    }\n  }\n\n  return { all: all, none: none, allWithoutDisable: allWithoutDisable, half: !all && !none };\n};\n\nvar reInitChecked = function reInitChecked(node) {\n  if (node.childNodes.length === 0) return;\n\n  var _getChildState = getChildState(node.childNodes),\n      all = _getChildState.all,\n      none = _getChildState.none,\n      half = _getChildState.half;\n\n  if (all) {\n    node.checked = true;\n    node.indeterminate = false;\n  } else if (half) {\n    node.checked = false;\n    node.indeterminate = true;\n  } else if (none) {\n    node.checked = false;\n    node.indeterminate = false;\n  }\n\n  var parent = node.parent;\n  if (!parent || parent.level === 0) return;\n\n  if (!node.store.checkStrictly) {\n    reInitChecked(parent);\n  }\n};\n\nvar getPropertyFromData = function getPropertyFromData(node, prop) {\n  var props = node.store.props;\n  var data = node.data || {};\n  var config = props[prop];\n\n  if (typeof config === 'function') {\n    return config(data, node);\n  } else if (typeof config === 'string') {\n    return data[config];\n  } else if (typeof config === 'undefined') {\n    var dataProp = data[prop];\n    return dataProp === undefined ? '' : dataProp;\n  }\n};\n\nvar nodeIdSeed = 0;\n\nvar Node = function () {\n  function Node(options) {\n    _classCallCheck(this, Node);\n\n    this.id = nodeIdSeed++;\n    this.text = null;\n    this.checked = false;\n    this.indeterminate = false;\n    this.data = null;\n    this.expanded = false;\n    this.parent = null;\n    this.visible = true;\n\n    for (var name in options) {\n      if (options.hasOwnProperty(name)) {\n        this[name] = options[name];\n      }\n    }\n\n    // internal\n    this.level = 0;\n    this.loaded = false;\n    this.childNodes = [];\n    this.loading = false;\n\n    if (this.parent) {\n      this.level = this.parent.level + 1;\n    }\n\n    var store = this.store;\n    if (!store) {\n      throw new Error('[Node]store is required!');\n    }\n    store.registerNode(this);\n\n    var props = store.props;\n    if (props && typeof props.isLeaf !== 'undefined') {\n      var isLeaf = getPropertyFromData(this, 'isLeaf');\n      if (typeof isLeaf === 'boolean') {\n        this.isLeafByUser = isLeaf;\n      }\n    }\n\n    if (store.lazy !== true && this.data) {\n      this.setData(this.data);\n\n      if (store.defaultExpandAll) {\n        this.expanded = true;\n      }\n    } else if (this.level > 0 && store.lazy && store.defaultExpandAll) {\n      this.expand();\n    }\n    if (!Array.isArray(this.data)) {\n      (0, _util.markNodeData)(this, this.data);\n    }\n    if (!this.data) return;\n    var defaultExpandedKeys = store.defaultExpandedKeys;\n    var key = store.key;\n    if (key && defaultExpandedKeys && defaultExpandedKeys.indexOf(this.key) !== -1) {\n      this.expand(null, store.autoExpandParent);\n    }\n\n    if (key && store.currentNodeKey !== undefined && this.key === store.currentNodeKey) {\n      store.currentNode = this;\n    }\n\n    if (store.lazy) {\n      store._initDefaultCheckedNode(this);\n    }\n\n    this.updateLeafState();\n  }\n\n  Node.prototype.setData = function setData(data) {\n    if (!Array.isArray(data)) {\n      (0, _util.markNodeData)(this, data);\n    }\n\n    this.data = data;\n    this.childNodes = [];\n\n    var children = void 0;\n    if (this.level === 0 && this.data instanceof Array) {\n      children = this.data;\n    } else {\n      children = getPropertyFromData(this, 'children') || [];\n    }\n\n    for (var i = 0, j = children.length; i < j; i++) {\n      this.insertChild({ data: children[i] });\n    }\n  };\n\n  Node.prototype.contains = function contains(target) {\n    var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n    var walk = function walk(parent) {\n      var children = parent.childNodes || [];\n      var result = false;\n      for (var i = 0, j = children.length; i < j; i++) {\n        var child = children[i];\n        if (child === target || deep && walk(child)) {\n          result = true;\n          break;\n        }\n      }\n      return result;\n    };\n\n    return walk(this);\n  };\n\n  Node.prototype.remove = function remove() {\n    var parent = this.parent;\n    if (parent) {\n      parent.removeChild(this);\n    }\n  };\n\n  Node.prototype.insertChild = function insertChild(child, index, batch) {\n    if (!child) throw new Error('insertChild error: child is required.');\n\n    if (!(child instanceof Node)) {\n      if (!batch) {\n        var children = this.getChildren(true);\n        if (children.indexOf(child.data) === -1) {\n          if (typeof index === 'undefined' || index < 0) {\n            children.push(child.data);\n          } else {\n            children.splice(index, 0, child.data);\n          }\n        }\n      }\n      (0, _merge2.default)(child, {\n        parent: this,\n        store: this.store\n      });\n      child = new Node(child);\n    }\n\n    child.level = this.level + 1;\n\n    if (typeof index === 'undefined' || index < 0) {\n      this.childNodes.push(child);\n    } else {\n      this.childNodes.splice(index, 0, child);\n    }\n\n    this.updateLeafState();\n  };\n\n  Node.prototype.insertBefore = function insertBefore(child, ref) {\n    var index = void 0;\n    if (ref) {\n      index = this.childNodes.indexOf(ref);\n    }\n    this.insertChild(child, index);\n  };\n\n  Node.prototype.insertAfter = function insertAfter(child, ref) {\n    var index = void 0;\n    if (ref) {\n      index = this.childNodes.indexOf(ref);\n      if (index !== -1) index += 1;\n    }\n    this.insertChild(child, index);\n  };\n\n  Node.prototype.removeChild = function removeChild(child) {\n    var children = this.getChildren() || [];\n    var dataIndex = children.indexOf(child.data);\n    if (dataIndex > -1) {\n      children.splice(dataIndex, 1);\n    }\n\n    var index = this.childNodes.indexOf(child);\n\n    if (index > -1) {\n      this.store && this.store.deregisterNode(child);\n      child.parent = null;\n      this.childNodes.splice(index, 1);\n    }\n\n    this.updateLeafState();\n  };\n\n  Node.prototype.removeChildByData = function removeChildByData(data) {\n    var targetNode = null;\n\n    for (var i = 0; i < this.childNodes.length; i++) {\n      if (this.childNodes[i] === data) {\n        targetNode = this.childNodes[i];\n        break;\n      }\n    }\n\n    if (targetNode) {\n      this.removeChild(targetNode);\n    }\n  };\n\n  Node.prototype.expand = function expand(callback, expandParent) {\n    var _this = this;\n\n    var done = function done() {\n      if (expandParent) {\n        var parent = _this.parent;\n        while (parent.level > 0) {\n          parent.expanded = true;\n          parent = parent.parent;\n        }\n      }\n      _this.expanded = true;\n      if (callback) callback();\n    };\n\n    if (this.shouldLoadData()) {\n      this.loadData(function (data) {\n        if (data instanceof Array) {\n          if (_this.checked) {\n            _this.setChecked(true, true);\n          } else if (!_this.store.checkStrictly) {\n            reInitChecked(_this);\n          }\n          done();\n        }\n      });\n    } else {\n      done();\n    }\n  };\n\n  Node.prototype.doCreateChildren = function doCreateChildren(array) {\n    var _this2 = this;\n\n    var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    array.forEach(function (item) {\n      _this2.insertChild((0, _merge2.default)({ data: item }, defaultProps), undefined, true);\n    });\n  };\n\n  Node.prototype.collapse = function collapse() {\n    this.expanded = false;\n  };\n\n  Node.prototype.shouldLoadData = function shouldLoadData() {\n    return this.store.lazy === true && this.store.load && !this.loaded;\n  };\n\n  Node.prototype.updateLeafState = function updateLeafState() {\n    if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser !== 'undefined') {\n      this.isLeaf = this.isLeafByUser;\n      return;\n    }\n    var childNodes = this.childNodes;\n    if (!this.store.lazy || this.store.lazy === true && this.loaded === true) {\n      this.isLeaf = !childNodes || childNodes.length === 0;\n      return;\n    }\n    this.isLeaf = false;\n  };\n\n  Node.prototype.setChecked = function setChecked(value, deep, recursion, passValue) {\n    var _this3 = this;\n\n    this.indeterminate = value === 'half';\n    this.checked = value === true;\n\n    if (this.store.checkStrictly) return;\n\n    if (!(this.shouldLoadData() && !this.store.checkDescendants)) {\n      var _ret = function () {\n        var _getChildState2 = getChildState(_this3.childNodes),\n            all = _getChildState2.all,\n            allWithoutDisable = _getChildState2.allWithoutDisable;\n\n        if (!_this3.isLeaf && !all && allWithoutDisable) {\n          _this3.checked = false;\n          value = false;\n        }\n\n        var handleDescendants = function handleDescendants() {\n          if (deep) {\n            var childNodes = _this3.childNodes;\n            for (var i = 0, j = childNodes.length; i < j; i++) {\n              var child = childNodes[i];\n              passValue = passValue || value !== false;\n              var isCheck = child.disabled ? child.checked : passValue;\n              child.setChecked(isCheck, deep, true, passValue);\n            }\n\n            var _getChildState3 = getChildState(childNodes),\n                half = _getChildState3.half,\n                _all = _getChildState3.all;\n\n            if (!_all) {\n              _this3.checked = _all;\n              _this3.indeterminate = half;\n            }\n          }\n        };\n\n        if (_this3.shouldLoadData()) {\n          // Only work on lazy load data.\n          _this3.loadData(function () {\n            handleDescendants();\n            reInitChecked(_this3);\n          }, {\n            checked: value !== false\n          });\n          return {\n            v: void 0\n          };\n        } else {\n          handleDescendants();\n        }\n      }();\n\n      if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n    }\n\n    var parent = this.parent;\n    if (!parent || parent.level === 0) return;\n\n    if (!recursion) {\n      reInitChecked(parent);\n    }\n  };\n\n  Node.prototype.getChildren = function getChildren() {\n    var forceInit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    // this is data\n    if (this.level === 0) return this.data;\n    var data = this.data;\n    if (!data) return null;\n\n    var props = this.store.props;\n    var children = 'children';\n    if (props) {\n      children = props.children || 'children';\n    }\n\n    if (data[children] === undefined) {\n      data[children] = null;\n    }\n\n    if (forceInit && !data[children]) {\n      data[children] = [];\n    }\n\n    return data[children];\n  };\n\n  Node.prototype.updateChildren = function updateChildren() {\n    var _this4 = this;\n\n    var newData = this.getChildren() || [];\n    var oldData = this.childNodes.map(function (node) {\n      return node.data;\n    });\n\n    var newDataMap = {};\n    var newNodes = [];\n\n    newData.forEach(function (item, index) {\n      if (item[_util.NODE_KEY]) {\n        newDataMap[item[_util.NODE_KEY]] = { index: index, data: item };\n      } else {\n        newNodes.push({ index: index, data: item });\n      }\n    });\n\n    if (!this.store.lazy) {\n      oldData.forEach(function (item) {\n        if (!newDataMap[item[_util.NODE_KEY]]) _this4.removeChildByData(item);\n      });\n    }\n\n    newNodes.forEach(function (_ref) {\n      var index = _ref.index,\n          data = _ref.data;\n\n      _this4.insertChild({ data: data }, index);\n    });\n\n    this.updateLeafState();\n  };\n\n  Node.prototype.loadData = function loadData(callback) {\n    var _this5 = this;\n\n    var defaultProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(defaultProps).length)) {\n      this.loading = true;\n\n      var resolve = function resolve(children) {\n        _this5.loaded = true;\n        _this5.loading = false;\n        _this5.childNodes = [];\n\n        _this5.doCreateChildren(children, defaultProps);\n\n        _this5.updateLeafState();\n        if (callback) {\n          callback.call(_this5, children);\n        }\n      };\n\n      this.store.load(this, resolve);\n    } else {\n      if (callback) {\n        callback.call(this);\n      }\n    }\n  };\n\n  _createClass(Node, [{\n    key: 'label',\n    get: function get() {\n      return getPropertyFromData(this, 'label');\n    }\n  }, {\n    key: 'icon',\n    get: function get() {\n      return getPropertyFromData(this, 'icon');\n    }\n  }, {\n    key: 'key',\n    get: function get() {\n      var nodeKey = this.store.key;\n      if (this.data) return this.data[nodeKey];\n      return null;\n    }\n  }, {\n    key: 'disabled',\n    get: function get() {\n      return getPropertyFromData(this, 'disabled');\n    }\n  }, {\n    key: 'nextSibling',\n    get: function get() {\n      var parent = this.parent;\n      if (parent) {\n        var index = parent.childNodes.indexOf(this);\n        if (index > -1) {\n          return parent.childNodes[index + 1];\n        }\n      }\n      return null;\n    }\n  }, {\n    key: 'previousSibling',\n    get: function get() {\n      var parent = this.parent;\n      if (parent) {\n        var index = parent.childNodes.indexOf(this);\n        if (index > -1) {\n          return index > 0 ? parent.childNodes[index - 1] : null;\n        }\n      }\n      return null;\n    }\n  }]);\n\n  return Node;\n}();\n\nexports.default = Node;\n\n/***/ }),\n/* 255 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue__ = __webpack_require__(256);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c66447d4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_node_vue__ = __webpack_require__(257);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_tree_node_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c66447d4_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_tree_node_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 256 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _collapseTransition = __webpack_require__(20);\n\nvar _collapseTransition2 = _interopRequireDefault(_collapseTransition);\n\nvar _checkbox = __webpack_require__(14);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _util = __webpack_require__(22);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElTreeNode',\n\n  componentName: 'ElTreeNode',\n\n  mixins: [_emitter2.default],\n\n  props: {\n    node: {\n      default: function _default() {\n        return {};\n      }\n    },\n    props: {},\n    renderContent: Function,\n    renderAfterExpand: {\n      type: Boolean,\n      default: true\n    }\n  },\n\n  components: {\n    ElCollapseTransition: _collapseTransition2.default,\n    ElCheckbox: _checkbox2.default,\n    NodeContent: {\n      props: {\n        node: {\n          required: true\n        }\n      },\n      render: function render(h) {\n        var parent = this.$parent;\n        var tree = parent.tree;\n        var node = this.node;\n        var data = node.data,\n            store = node.store;\n\n        return parent.renderContent ? parent.renderContent.call(parent._renderProxy, h, { _self: tree.$vnode.context, node: node, data: data, store: store }) : tree.$scopedSlots.default ? tree.$scopedSlots.default({ node: node, data: data }) : h(\n          'span',\n          { 'class': 'el-tree-node__label' },\n          [node.label]\n        );\n      }\n    }\n  },\n\n  data: function data() {\n    return {\n      tree: null,\n      expanded: false,\n      childNodeRendered: false,\n      showCheckbox: false,\n      oldChecked: null,\n      oldIndeterminate: null\n    };\n  },\n\n\n  watch: {\n    'node.indeterminate': function nodeIndeterminate(val) {\n      this.handleSelectChange(this.node.checked, val);\n    },\n    'node.checked': function nodeChecked(val) {\n      this.handleSelectChange(val, this.node.indeterminate);\n    },\n    'node.expanded': function nodeExpanded(val) {\n      var _this = this;\n\n      this.$nextTick(function () {\n        return _this.expanded = val;\n      });\n      if (val) {\n        this.childNodeRendered = true;\n      }\n    }\n  },\n\n  methods: {\n    getNodeKey: function getNodeKey(node) {\n      return (0, _util.getNodeKey)(this.tree.nodeKey, node.data);\n    },\n    handleSelectChange: function handleSelectChange(checked, indeterminate) {\n      if (this.oldChecked !== checked && this.oldIndeterminate !== indeterminate) {\n        this.tree.$emit('check-change', this.node.data, checked, indeterminate);\n      }\n      this.oldChecked = checked;\n      this.indeterminate = indeterminate;\n    },\n    handleClick: function handleClick() {\n      var store = this.tree.store;\n      store.setCurrentNode(this.node);\n      this.tree.$emit('current-change', store.currentNode ? store.currentNode.data : null, store.currentNode);\n      this.tree.currentNode = this;\n      if (this.tree.expandOnClickNode) {\n        this.handleExpandIconClick();\n      }\n      if (this.tree.checkOnClickNode && !this.node.disabled) {\n        this.handleCheckChange(null, {\n          target: { checked: !this.node.checked }\n        });\n      }\n      this.tree.$emit('node-click', this.node.data, this.node, this);\n    },\n    handleContextMenu: function handleContextMenu(event) {\n      if (this.tree._events['node-contextmenu'] && this.tree._events['node-contextmenu'].length > 0) {\n        event.stopPropagation();\n        event.preventDefault();\n      }\n      this.tree.$emit('node-contextmenu', event, this.node.data, this.node, this);\n    },\n    handleExpandIconClick: function handleExpandIconClick() {\n      if (this.node.isLeaf) return;\n      if (this.expanded) {\n        this.tree.$emit('node-collapse', this.node.data, this.node, this);\n        this.node.collapse();\n      } else {\n        this.node.expand();\n        this.$emit('node-expand', this.node.data, this.node, this);\n      }\n    },\n    handleCheckChange: function handleCheckChange(value, ev) {\n      var _this2 = this;\n\n      this.node.setChecked(ev.target.checked, !this.tree.checkStrictly);\n      this.$nextTick(function () {\n        var store = _this2.tree.store;\n        _this2.tree.$emit('check', _this2.node.data, {\n          checkedNodes: store.getCheckedNodes(),\n          checkedKeys: store.getCheckedKeys(),\n          halfCheckedNodes: store.getHalfCheckedNodes(),\n          halfCheckedKeys: store.getHalfCheckedKeys()\n        });\n      });\n    },\n    handleChildNodeExpand: function handleChildNodeExpand(nodeData, node, instance) {\n      this.broadcast('ElTreeNode', 'tree-node-expand', node);\n      this.tree.$emit('node-expand', nodeData, node, instance);\n    },\n    handleDragStart: function handleDragStart(event) {\n      if (!this.tree.draggable) return;\n      this.tree.$emit('tree-node-drag-start', event, this);\n    },\n    handleDragOver: function handleDragOver(event) {\n      if (!this.tree.draggable) return;\n      this.tree.$emit('tree-node-drag-over', event, this);\n      event.preventDefault();\n    },\n    handleDrop: function handleDrop(event) {\n      event.preventDefault();\n    },\n    handleDragEnd: function handleDragEnd(event) {\n      if (!this.tree.draggable) return;\n      this.tree.$emit('tree-node-drag-end', event, this);\n    }\n  },\n\n  created: function created() {\n    var _this3 = this;\n\n    var parent = this.$parent;\n\n    if (parent.isTree) {\n      this.tree = parent;\n    } else {\n      this.tree = parent.tree;\n    }\n\n    var tree = this.tree;\n    if (!tree) {\n      console.warn('Can not find node\\'s tree.');\n    }\n\n    var props = tree.props || {};\n    var childrenKey = props['children'] || 'children';\n\n    this.$watch('node.data.' + childrenKey, function () {\n      _this3.node.updateChildren();\n    });\n\n    this.showCheckbox = tree.showCheckbox;\n\n    if (this.node.expanded) {\n      this.expanded = true;\n      this.childNodeRendered = true;\n    }\n\n    if (this.tree.accordion) {\n      this.$on('tree-node-expand', function (node) {\n        if (_this3.node !== node) {\n          _this3.node.collapse();\n        }\n      });\n    }\n  }\n};\n\n/***/ }),\n/* 257 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {\nvar this$1 = this;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.node.visible),expression:\"node.visible\"}],ref:\"node\",staticClass:\"el-tree-node\",class:{\n    'is-expanded': _vm.expanded,\n    'is-current': _vm.tree.store.currentNode === _vm.node,\n    'is-hidden': !_vm.node.visible,\n    'is-focusable': !_vm.node.disabled,\n    'is-checked': !_vm.node.disabled && _vm.node.checked\n  },attrs:{\"role\":\"treeitem\",\"tabindex\":\"-1\",\"aria-expanded\":_vm.expanded,\"aria-disabled\":_vm.node.disabled,\"aria-checked\":_vm.node.checked,\"draggable\":_vm.tree.draggable},on:{\"click\":function($event){$event.stopPropagation();_vm.handleClick($event)},\"contextmenu\":function ($event) { return this$1.handleContextMenu($event); },\"dragstart\":function($event){$event.stopPropagation();_vm.handleDragStart($event)},\"dragover\":function($event){$event.stopPropagation();_vm.handleDragOver($event)},\"dragend\":function($event){$event.stopPropagation();_vm.handleDragEnd($event)},\"drop\":function($event){$event.stopPropagation();_vm.handleDrop($event)}}},[_c('div',{staticClass:\"el-tree-node__content\",style:({ 'padding-left': (_vm.node.level - 1) * _vm.tree.indent + 'px' })},[_c('span',{staticClass:\"el-tree-node__expand-icon el-icon-caret-right\",class:{ 'is-leaf': _vm.node.isLeaf, expanded: !_vm.node.isLeaf && _vm.expanded },on:{\"click\":function($event){$event.stopPropagation();_vm.handleExpandIconClick($event)}}}),(_vm.showCheckbox)?_c('el-checkbox',{attrs:{\"indeterminate\":_vm.node.indeterminate,\"disabled\":!!_vm.node.disabled},on:{\"change\":_vm.handleCheckChange},nativeOn:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.node.checked),callback:function ($$v) {_vm.$set(_vm.node, \"checked\", $$v)},expression:\"node.checked\"}}):_vm._e(),(_vm.node.loading)?_c('span',{staticClass:\"el-tree-node__loading-icon el-icon-loading\"}):_vm._e(),_c('node-content',{attrs:{\"node\":_vm.node}})],1),_c('el-collapse-transition',[(!_vm.renderAfterExpand || _vm.childNodeRendered)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.expanded),expression:\"expanded\"}],staticClass:\"el-tree-node__children\",attrs:{\"role\":\"group\",\"aria-expanded\":_vm.expanded}},_vm._l((_vm.node.childNodes),function(child){return _c('el-tree-node',{key:_vm.getNodeKey(child),attrs:{\"render-content\":_vm.renderContent,\"render-after-expand\":_vm.renderAfterExpand,\"node\":child},on:{\"node-expand\":_vm.handleChildNodeExpand}})})):_vm._e()])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 258 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-tree\",class:{\n    'el-tree--highlight-current': _vm.highlightCurrent,\n    'is-dragging': !!_vm.dragState.draggingNode,\n    'is-drop-not-allow': !_vm.dragState.allowDrop,\n    'is-drop-inner': _vm.dragState.dropType === 'inner'\n  },attrs:{\"role\":\"tree\"}},[_vm._l((_vm.root.childNodes),function(child){return _c('el-tree-node',{key:_vm.getNodeKey(child),attrs:{\"node\":child,\"props\":_vm.props,\"render-after-expand\":_vm.renderAfterExpand,\"render-content\":_vm.renderContent},on:{\"node-expand\":_vm.handleNodeExpand}})}),(_vm.isEmpty)?_c('div',{staticClass:\"el-tree__empty-block\"},[_c('span',{staticClass:\"el-tree__empty-text\"},[_vm._v(_vm._s(_vm.emptyText))])]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dragState.showDropIndicator),expression:\"dragState.showDropIndicator\"}],ref:\"dropIndicator\",staticClass:\"el-tree__drop-indicator\"})],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 259 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(260);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 260 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(261);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4d7f5e38_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(262);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4d7f5e38_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 261 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar TYPE_CLASSES_MAP = {\n  'success': 'el-icon-success',\n  'warning': 'el-icon-warning',\n  'error': 'el-icon-error'\n};\nexports.default = {\n  name: 'ElAlert',\n\n  props: {\n    title: {\n      type: String,\n      default: '',\n      required: true\n    },\n    description: {\n      type: String,\n      default: ''\n    },\n    type: {\n      type: String,\n      default: 'info'\n    },\n    closable: {\n      type: Boolean,\n      default: true\n    },\n    closeText: {\n      type: String,\n      default: ''\n    },\n    showIcon: Boolean,\n    center: Boolean\n  },\n\n  data: function data() {\n    return {\n      visible: true\n    };\n  },\n\n\n  methods: {\n    close: function close() {\n      this.visible = false;\n      this.$emit('close');\n    }\n  },\n\n  computed: {\n    typeClass: function typeClass() {\n      return 'el-alert--' + this.type;\n    },\n    iconClass: function iconClass() {\n      return TYPE_CLASSES_MAP[this.type] || 'el-icon-info';\n    },\n    isBigIcon: function isBigIcon() {\n      return this.description || this.$slots.default ? 'is-big' : '';\n    },\n    isBoldTitle: function isBoldTitle() {\n      return this.description || this.$slots.default ? 'is-bold' : '';\n    }\n  }\n};\n\n/***/ }),\n/* 262 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-alert-fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-alert\",class:[_vm.typeClass, _vm.center ? 'is-center' : ''],attrs:{\"role\":\"alert\"}},[(_vm.showIcon)?_c('i',{staticClass:\"el-alert__icon\",class:[ _vm.iconClass, _vm.isBigIcon ]}):_vm._e(),_c('div',{staticClass:\"el-alert__content\"},[(_vm.title)?_c('span',{staticClass:\"el-alert__title\",class:[ _vm.isBoldTitle ]},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_vm._t(\"default\",[(_vm.description)?_c('p',{staticClass:\"el-alert__description\"},[_vm._v(_vm._s(_vm.description))]):_vm._e()]),_c('i',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.closable),expression:\"closable\"}],staticClass:\"el-alert__closebtn\",class:{ 'is-customed': _vm.closeText !== '', 'el-icon-close': _vm.closeText === '' },on:{\"click\":function($event){_vm.close()}}},[_vm._v(_vm._s(_vm.closeText))])],2)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 263 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(264);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 264 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _main = __webpack_require__(265);\n\nvar _main2 = _interopRequireDefault(_main);\n\nvar _popup = __webpack_require__(12);\n\nvar _vdom = __webpack_require__(21);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NotificationConstructor = _vue2.default.extend(_main2.default);\n\nvar instance = void 0;\nvar instances = [];\nvar seed = 1;\n\nvar Notification = function Notification(options) {\n  if (_vue2.default.prototype.$isServer) return;\n  options = options || {};\n  var userOnClose = options.onClose;\n  var id = 'notification_' + seed++;\n  var position = options.position || 'top-right';\n\n  options.onClose = function () {\n    Notification.close(id, userOnClose);\n  };\n\n  instance = new NotificationConstructor({\n    data: options\n  });\n\n  if ((0, _vdom.isVNode)(options.message)) {\n    instance.$slots.default = [options.message];\n    options.message = 'REPLACED_BY_VNODE';\n  }\n  instance.id = id;\n  instance.$mount();\n  document.body.appendChild(instance.$el);\n  instance.visible = true;\n  instance.dom = instance.$el;\n  instance.dom.style.zIndex = _popup.PopupManager.nextZIndex();\n\n  var verticalOffset = options.offset || 0;\n  instances.filter(function (item) {\n    return item.position === position;\n  }).forEach(function (item) {\n    verticalOffset += item.$el.offsetHeight + 16;\n  });\n  verticalOffset += 16;\n  instance.verticalOffset = verticalOffset;\n  instances.push(instance);\n  return instance;\n};\n\n['success', 'warning', 'info', 'error'].forEach(function (type) {\n  Notification[type] = function (options) {\n    if (typeof options === 'string' || (0, _vdom.isVNode)(options)) {\n      options = {\n        message: options\n      };\n    }\n    options.type = type;\n    return Notification(options);\n  };\n});\n\nNotification.close = function (id, userOnClose) {\n  var index = -1;\n  var len = instances.length;\n  var instance = instances.filter(function (instance, i) {\n    if (instance.id === id) {\n      index = i;\n      return true;\n    }\n    return false;\n  })[0];\n  if (!instance) return;\n\n  if (typeof userOnClose === 'function') {\n    userOnClose(instance);\n  }\n  instances.splice(index, 1);\n\n  if (len <= 1) return;\n  var position = instance.position;\n  var removedHeight = instance.dom.offsetHeight;\n  for (var i = index; i < len - 1; i++) {\n    if (instances[i].position === position) {\n      instances[i].dom.style[instance.verticalProperty] = parseInt(instances[i].dom.style[instance.verticalProperty], 10) - removedHeight - 16 + 'px';\n    }\n  }\n};\n\nNotification.closeAll = function () {\n  for (var i = instances.length - 1; i >= 0; i--) {\n    instances[i].close();\n  }\n};\n\nexports.default = Notification;\n\n/***/ }),\n/* 265 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(266);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e9766d52_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(267);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e9766d52_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 266 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar typeMap = {\n  success: 'success',\n  info: 'info',\n  warning: 'warning',\n  error: 'error'\n};\n\nexports.default = {\n  data: function data() {\n    return {\n      visible: false,\n      title: '',\n      message: '',\n      duration: 4500,\n      type: '',\n      showClose: true,\n      customClass: '',\n      iconClass: '',\n      onClose: null,\n      onClick: null,\n      closed: false,\n      verticalOffset: 0,\n      timer: null,\n      dangerouslyUseHTMLString: false,\n      position: 'top-right'\n    };\n  },\n\n\n  computed: {\n    typeClass: function typeClass() {\n      return this.type && typeMap[this.type] ? 'el-icon-' + typeMap[this.type] : '';\n    },\n    horizontalClass: function horizontalClass() {\n      return this.position.indexOf('right') > -1 ? 'right' : 'left';\n    },\n    verticalProperty: function verticalProperty() {\n      return (/^top-/.test(this.position) ? 'top' : 'bottom'\n      );\n    },\n    positionStyle: function positionStyle() {\n      var _ref;\n\n      return _ref = {}, _ref[this.verticalProperty] = this.verticalOffset + 'px', _ref;\n    }\n  },\n\n  watch: {\n    closed: function closed(newVal) {\n      if (newVal) {\n        this.visible = false;\n        this.$el.addEventListener('transitionend', this.destroyElement);\n      }\n    }\n  },\n\n  methods: {\n    destroyElement: function destroyElement() {\n      this.$el.removeEventListener('transitionend', this.destroyElement);\n      this.$destroy(true);\n      this.$el.parentNode.removeChild(this.$el);\n    },\n    click: function click() {\n      if (typeof this.onClick === 'function') {\n        this.onClick();\n      }\n    },\n    close: function close() {\n      this.closed = true;\n      if (typeof this.onClose === 'function') {\n        this.onClose();\n      }\n    },\n    clearTimer: function clearTimer() {\n      clearTimeout(this.timer);\n    },\n    startTimer: function startTimer() {\n      var _this = this;\n\n      if (this.duration > 0) {\n        this.timer = setTimeout(function () {\n          if (!_this.closed) {\n            _this.close();\n          }\n        }, this.duration);\n      }\n    },\n    keydown: function keydown(e) {\n      if (e.keyCode === 46 || e.keyCode === 8) {\n        this.clearTimer(); // detele 鍙栨秷鍊掕鏃禱n      } else if (e.keyCode === 27) {\n        // esc鍏抽棴娑堟伅\n        if (!this.closed) {\n          this.close();\n        }\n      } else {\n        this.startTimer(); // 鎭㈠鍊掕鏃禱n      }\n    }\n  },\n  mounted: function mounted() {\n    var _this2 = this;\n\n    if (this.duration > 0) {\n      this.timer = setTimeout(function () {\n        if (!_this2.closed) {\n          _this2.close();\n        }\n      }, this.duration);\n    }\n    document.addEventListener('keydown', this.keydown);\n  },\n  beforeDestroy: function beforeDestroy() {\n    document.removeEventListener('keydown', this.keydown);\n  }\n};\n\n/***/ }),\n/* 267 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-notification-fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],class:['el-notification', _vm.customClass, _vm.horizontalClass],style:(_vm.positionStyle),attrs:{\"role\":\"alert\"},on:{\"mouseenter\":function($event){_vm.clearTimer()},\"mouseleave\":function($event){_vm.startTimer()},\"click\":_vm.click}},[(_vm.type || _vm.iconClass)?_c('i',{staticClass:\"el-notification__icon\",class:[ _vm.typeClass, _vm.iconClass ]}):_vm._e(),_c('div',{staticClass:\"el-notification__group\",class:{ 'is-with-icon': _vm.typeClass || _vm.iconClass }},[_c('h2',{staticClass:\"el-notification__title\",domProps:{\"textContent\":_vm._s(_vm.title)}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.message),expression:\"message\"}],staticClass:\"el-notification__content\"},[_vm._t(\"default\",[(!_vm.dangerouslyUseHTMLString)?_c('p',[_vm._v(_vm._s(_vm.message))]):_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.message)}})])],2),(_vm.showClose)?_c('div',{staticClass:\"el-notification__closeBtn el-icon-close\",on:{\"click\":function($event){$event.stopPropagation();_vm.close($event)}}}):_vm._e()])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 268 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(269);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 269 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(270);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_25be533e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(275);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_25be533e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 270 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _inputNumber = __webpack_require__(271);\n\nvar _inputNumber2 = _interopRequireDefault(_inputNumber);\n\nvar _button = __webpack_require__(272);\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElSlider',\n\n  mixins: [_emitter2.default],\n\n  inject: {\n    elForm: {\n      default: ''\n    }\n  },\n\n  props: {\n    min: {\n      type: Number,\n      default: 0\n    },\n    max: {\n      type: Number,\n      default: 100\n    },\n    step: {\n      type: Number,\n      default: 1\n    },\n    value: {\n      type: [Number, Array],\n      default: 0\n    },\n    showInput: {\n      type: Boolean,\n      default: false\n    },\n    showInputControls: {\n      type: Boolean,\n      default: true\n    },\n    inputSize: {\n      type: String,\n      default: 'small'\n    },\n    showStops: {\n      type: Boolean,\n      default: false\n    },\n    showTooltip: {\n      type: Boolean,\n      default: true\n    },\n    formatTooltip: Function,\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    range: {\n      type: Boolean,\n      default: false\n    },\n    vertical: {\n      type: Boolean,\n      default: false\n    },\n    height: {\n      type: String\n    },\n    debounce: {\n      type: Number,\n      default: 300\n    },\n    label: {\n      type: String\n    },\n    tooltipClass: String\n  },\n\n  components: {\n    ElInputNumber: _inputNumber2.default,\n    SliderButton: _button2.default\n  },\n\n  data: function data() {\n    return {\n      firstValue: null,\n      secondValue: null,\n      oldValue: null,\n      dragging: false,\n      sliderSize: 1\n    };\n  },\n\n\n  watch: {\n    value: function value(val, oldVal) {\n      if (this.dragging || Array.isArray(val) && Array.isArray(oldVal) && val.every(function (item, index) {\n        return item === oldVal[index];\n      })) {\n        return;\n      }\n      this.setValues();\n    },\n    dragging: function dragging(val) {\n      if (!val) {\n        this.setValues();\n      }\n    },\n    firstValue: function firstValue(val) {\n      if (this.range) {\n        this.$emit('input', [this.minValue, this.maxValue]);\n      } else {\n        this.$emit('input', val);\n      }\n    },\n    secondValue: function secondValue() {\n      if (this.range) {\n        this.$emit('input', [this.minValue, this.maxValue]);\n      }\n    },\n    min: function min() {\n      this.setValues();\n    },\n    max: function max() {\n      this.setValues();\n    }\n  },\n\n  methods: {\n    valueChanged: function valueChanged() {\n      var _this = this;\n\n      if (this.range) {\n        return ![this.minValue, this.maxValue].every(function (item, index) {\n          return item === _this.oldValue[index];\n        });\n      } else {\n        return this.value !== this.oldValue;\n      }\n    },\n    setValues: function setValues() {\n      if (this.min > this.max) {\n        console.error('[Element Error][Slider]min should not be greater than max.');\n        return;\n      }\n      var val = this.value;\n      if (this.range && Array.isArray(val)) {\n        if (val[1] < this.min) {\n          this.$emit('input', [this.min, this.min]);\n        } else if (val[0] > this.max) {\n          this.$emit('input', [this.max, this.max]);\n        } else if (val[0] < this.min) {\n          this.$emit('input', [this.min, val[1]]);\n        } else if (val[1] > this.max) {\n          this.$emit('input', [val[0], this.max]);\n        } else {\n          this.firstValue = val[0];\n          this.secondValue = val[1];\n          if (this.valueChanged()) {\n            this.dispatch('ElFormItem', 'el.form.change', [this.minValue, this.maxValue]);\n            this.oldValue = val.slice();\n          }\n        }\n      } else if (!this.range && typeof val === 'number' && !isNaN(val)) {\n        if (val < this.min) {\n          this.$emit('input', this.min);\n        } else if (val > this.max) {\n          this.$emit('input', this.max);\n        } else {\n          this.firstValue = val;\n          if (this.valueChanged()) {\n            this.dispatch('ElFormItem', 'el.form.change', val);\n            this.oldValue = val;\n          }\n        }\n      }\n    },\n    setPosition: function setPosition(percent) {\n      var targetValue = this.min + percent * (this.max - this.min) / 100;\n      if (!this.range) {\n        this.$refs.button1.setPosition(percent);\n        return;\n      }\n      var button = void 0;\n      if (Math.abs(this.minValue - targetValue) < Math.abs(this.maxValue - targetValue)) {\n        button = this.firstValue < this.secondValue ? 'button1' : 'button2';\n      } else {\n        button = this.firstValue > this.secondValue ? 'button1' : 'button2';\n      }\n      this.$refs[button].setPosition(percent);\n    },\n    onSliderClick: function onSliderClick(event) {\n      if (this.sliderDisabled || this.dragging) return;\n      this.resetSize();\n      if (this.vertical) {\n        var sliderOffsetBottom = this.$refs.slider.getBoundingClientRect().bottom;\n        this.setPosition((sliderOffsetBottom - event.clientY) / this.sliderSize * 100);\n      } else {\n        var sliderOffsetLeft = this.$refs.slider.getBoundingClientRect().left;\n        this.setPosition((event.clientX - sliderOffsetLeft) / this.sliderSize * 100);\n      }\n      this.emitChange();\n    },\n    resetSize: function resetSize() {\n      if (this.$refs.slider) {\n        this.sliderSize = this.$refs.slider['client' + (this.vertical ? 'Height' : 'Width')];\n      }\n    },\n    emitChange: function emitChange() {\n      var _this2 = this;\n\n      this.$nextTick(function () {\n        _this2.$emit('change', _this2.range ? [_this2.minValue, _this2.maxValue] : _this2.value);\n      });\n    }\n  },\n\n  computed: {\n    stops: function stops() {\n      var _this3 = this;\n\n      if (!this.showStops || this.min > this.max) return [];\n      if (this.step === 0) {\n        \"production\" !== 'production' && console.warn('[Element Warn][Slider]step should not be 0.');\n        return [];\n      }\n      var stopCount = (this.max - this.min) / this.step;\n      var stepWidth = 100 * this.step / (this.max - this.min);\n      var result = [];\n      for (var i = 1; i < stopCount; i++) {\n        result.push(i * stepWidth);\n      }\n      if (this.range) {\n        return result.filter(function (step) {\n          return step < 100 * (_this3.minValue - _this3.min) / (_this3.max - _this3.min) || step > 100 * (_this3.maxValue - _this3.min) / (_this3.max - _this3.min);\n        });\n      } else {\n        return result.filter(function (step) {\n          return step > 100 * (_this3.firstValue - _this3.min) / (_this3.max - _this3.min);\n        });\n      }\n    },\n    minValue: function minValue() {\n      return Math.min(this.firstValue, this.secondValue);\n    },\n    maxValue: function maxValue() {\n      return Math.max(this.firstValue, this.secondValue);\n    },\n    barSize: function barSize() {\n      return this.range ? 100 * (this.maxValue - this.minValue) / (this.max - this.min) + '%' : 100 * (this.firstValue - this.min) / (this.max - this.min) + '%';\n    },\n    barStart: function barStart() {\n      return this.range ? 100 * (this.minValue - this.min) / (this.max - this.min) + '%' : '0%';\n    },\n    precision: function precision() {\n      var precisions = [this.min, this.max, this.step].map(function (item) {\n        var decimal = ('' + item).split('.')[1];\n        return decimal ? decimal.length : 0;\n      });\n      return Math.max.apply(null, precisions);\n    },\n    runwayStyle: function runwayStyle() {\n      return this.vertical ? { height: this.height } : {};\n    },\n    barStyle: function barStyle() {\n      return this.vertical ? {\n        height: this.barSize,\n        bottom: this.barStart\n      } : {\n        width: this.barSize,\n        left: this.barStart\n      };\n    },\n    sliderDisabled: function sliderDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    }\n  },\n\n  mounted: function mounted() {\n    var valuetext = void 0;\n    if (this.range) {\n      if (Array.isArray(this.value)) {\n        this.firstValue = Math.max(this.min, this.value[0]);\n        this.secondValue = Math.min(this.max, this.value[1]);\n      } else {\n        this.firstValue = this.min;\n        this.secondValue = this.max;\n      }\n      this.oldValue = [this.firstValue, this.secondValue];\n      valuetext = this.firstValue + '-' + this.secondValue;\n    } else {\n      if (typeof this.value !== 'number' || isNaN(this.value)) {\n        this.firstValue = this.min;\n      } else {\n        this.firstValue = Math.min(this.max, Math.max(this.min, this.value));\n      }\n      this.oldValue = this.firstValue;\n      valuetext = this.firstValue;\n    }\n    this.$el.setAttribute('aria-valuetext', valuetext);\n\n    // label screen reader\n    this.$el.setAttribute('aria-label', this.label ? this.label : 'slider between ' + this.min + ' and ' + this.max);\n\n    this.resetSize();\n    window.addEventListener('resize', this.resetSize);\n  },\n  beforeDestroy: function beforeDestroy() {\n    window.removeEventListener('resize', this.resetSize);\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 271 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/input-number\");\n\n/***/ }),\n/* 272 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__ = __webpack_require__(273);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_60e22f5a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__ = __webpack_require__(274);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_button_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_60e22f5a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_button_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 273 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _tooltip = __webpack_require__(23);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElSliderButton',\n\n  components: {\n    ElTooltip: _tooltip2.default\n  },\n\n  props: {\n    value: {\n      type: Number,\n      default: 0\n    },\n    vertical: {\n      type: Boolean,\n      default: false\n    },\n    tooltipClass: String\n  },\n\n  data: function data() {\n    return {\n      hovering: false,\n      dragging: false,\n      isClick: false,\n      startX: 0,\n      currentX: 0,\n      startY: 0,\n      currentY: 0,\n      startPosition: 0,\n      newPosition: null,\n      oldValue: this.value\n    };\n  },\n\n\n  computed: {\n    disabled: function disabled() {\n      return this.$parent.sliderDisabled;\n    },\n    max: function max() {\n      return this.$parent.max;\n    },\n    min: function min() {\n      return this.$parent.min;\n    },\n    step: function step() {\n      return this.$parent.step;\n    },\n    showTooltip: function showTooltip() {\n      return this.$parent.showTooltip;\n    },\n    precision: function precision() {\n      return this.$parent.precision;\n    },\n    currentPosition: function currentPosition() {\n      return (this.value - this.min) / (this.max - this.min) * 100 + '%';\n    },\n    enableFormat: function enableFormat() {\n      return this.$parent.formatTooltip instanceof Function;\n    },\n    formatValue: function formatValue() {\n      return this.enableFormat && this.$parent.formatTooltip(this.value) || this.value;\n    },\n    wrapperStyle: function wrapperStyle() {\n      return this.vertical ? { bottom: this.currentPosition } : { left: this.currentPosition };\n    }\n  },\n\n  watch: {\n    dragging: function dragging(val) {\n      this.$parent.dragging = val;\n    }\n  },\n\n  methods: {\n    displayTooltip: function displayTooltip() {\n      this.$refs.tooltip && (this.$refs.tooltip.showPopper = true);\n    },\n    hideTooltip: function hideTooltip() {\n      this.$refs.tooltip && (this.$refs.tooltip.showPopper = false);\n    },\n    handleMouseEnter: function handleMouseEnter() {\n      this.hovering = true;\n      this.displayTooltip();\n    },\n    handleMouseLeave: function handleMouseLeave() {\n      this.hovering = false;\n      this.hideTooltip();\n    },\n    onButtonDown: function onButtonDown(event) {\n      if (this.disabled) return;\n      event.preventDefault();\n      this.onDragStart(event);\n      window.addEventListener('mousemove', this.onDragging);\n      window.addEventListener('touchmove', this.onDragging);\n      window.addEventListener('mouseup', this.onDragEnd);\n      window.addEventListener('touchend', this.onDragEnd);\n      window.addEventListener('contextmenu', this.onDragEnd);\n    },\n    onLeftKeyDown: function onLeftKeyDown() {\n      if (this.disabled) return;\n      this.newPosition = parseFloat(this.currentPosition) - this.step / (this.max - this.min) * 100;\n      this.setPosition(this.newPosition);\n    },\n    onRightKeyDown: function onRightKeyDown() {\n      if (this.disabled) return;\n      this.newPosition = parseFloat(this.currentPosition) + this.step / (this.max - this.min) * 100;\n      this.setPosition(this.newPosition);\n    },\n    onDragStart: function onDragStart(event) {\n      this.dragging = true;\n      this.isClick = true;\n      if (event.type === 'touchstart') {\n        event.clientY = event.touches[0].clientY;\n        event.clientX = event.touches[0].clientX;\n      }\n      if (this.vertical) {\n        this.startY = event.clientY;\n      } else {\n        this.startX = event.clientX;\n      }\n      this.startPosition = parseFloat(this.currentPosition);\n      this.newPosition = this.startPosition;\n    },\n    onDragging: function onDragging(event) {\n      if (this.dragging) {\n        this.isClick = false;\n        this.displayTooltip();\n        this.$parent.resetSize();\n        var diff = 0;\n        if (event.type === 'touchmove') {\n          event.clientY = event.touches[0].clientY;\n          event.clientX = event.touches[0].clientX;\n        }\n        if (this.vertical) {\n          this.currentY = event.clientY;\n          diff = (this.startY - this.currentY) / this.$parent.sliderSize * 100;\n        } else {\n          this.currentX = event.clientX;\n          diff = (this.currentX - this.startX) / this.$parent.sliderSize * 100;\n        }\n        this.newPosition = this.startPosition + diff;\n        this.setPosition(this.newPosition);\n      }\n    },\n    onDragEnd: function onDragEnd() {\n      var _this = this;\n\n      if (this.dragging) {\n        /*\n         * 闃叉鍦� mouseup 鍚庣珛鍗宠Е鍙� click锛屽鑷存粦鍧楁湁鍑犵巼浜х敓涓�灏忔浣嶇Щ\n         * 涓嶄娇鐢� preventDefault 鏄洜涓� mouseup 鍜� click 娌℃湁娉ㄥ唽鍦ㄥ悓涓�涓� DOM 涓奬n         */\n        setTimeout(function () {\n          _this.dragging = false;\n          _this.hideTooltip();\n          if (!_this.isClick) {\n            _this.setPosition(_this.newPosition);\n            _this.$parent.emitChange();\n          }\n        }, 0);\n        window.removeEventListener('mousemove', this.onDragging);\n        window.removeEventListener('touchmove', this.onDragging);\n        window.removeEventListener('mouseup', this.onDragEnd);\n        window.removeEventListener('touchend', this.onDragEnd);\n        window.removeEventListener('contextmenu', this.onDragEnd);\n      }\n    },\n    setPosition: function setPosition(newPosition) {\n      var _this2 = this;\n\n      if (newPosition === null || isNaN(newPosition)) return;\n      if (newPosition < 0) {\n        newPosition = 0;\n      } else if (newPosition > 100) {\n        newPosition = 100;\n      }\n      var lengthPerStep = 100 / ((this.max - this.min) / this.step);\n      var steps = Math.round(newPosition / lengthPerStep);\n      var value = steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min;\n      value = parseFloat(value.toFixed(this.precision));\n      this.$emit('input', value);\n      this.$nextTick(function () {\n        _this2.$refs.tooltip && _this2.$refs.tooltip.updatePopper();\n      });\n      if (!this.dragging && this.value !== this.oldValue) {\n        this.oldValue = this.value;\n      }\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 274 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"button\",staticClass:\"el-slider__button-wrapper\",class:{ 'hover': _vm.hovering, 'dragging': _vm.dragging },style:(_vm.wrapperStyle),attrs:{\"tabindex\":\"0\"},on:{\"mouseenter\":_vm.handleMouseEnter,\"mouseleave\":_vm.handleMouseLeave,\"mousedown\":_vm.onButtonDown,\"touchstart\":_vm.onButtonDown,\"focus\":_vm.handleMouseEnter,\"blur\":_vm.handleMouseLeave,\"keydown\":[function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"left\",37,$event.key)){ return null; }if('button' in $event && $event.button !== 0){ return null; }_vm.onLeftKeyDown($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"right\",39,$event.key)){ return null; }if('button' in $event && $event.button !== 2){ return null; }_vm.onRightKeyDown($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"down\",40,$event.key)){ return null; }$event.preventDefault();_vm.onLeftKeyDown($event)},function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"up\",38,$event.key)){ return null; }$event.preventDefault();_vm.onRightKeyDown($event)}]}},[_c('el-tooltip',{ref:\"tooltip\",attrs:{\"placement\":\"top\",\"popper-class\":_vm.tooltipClass,\"disabled\":!_vm.showTooltip}},[_c('span',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_vm._v(_vm._s(_vm.formatValue))]),_c('div',{staticClass:\"el-slider__button\",class:{ 'hover': _vm.hovering, 'dragging': _vm.dragging }})])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 275 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-slider\",class:{ 'is-vertical': _vm.vertical, 'el-slider--with-input': _vm.showInput },attrs:{\"role\":\"slider\",\"aria-valuemin\":_vm.min,\"aria-valuemax\":_vm.max,\"aria-orientation\":_vm.vertical ? 'vertical': 'horizontal',\"aria-disabled\":_vm.sliderDisabled}},[(_vm.showInput && !_vm.range)?_c('el-input-number',{ref:\"input\",staticClass:\"el-slider__input\",attrs:{\"step\":_vm.step,\"disabled\":_vm.sliderDisabled,\"controls\":_vm.showInputControls,\"min\":_vm.min,\"max\":_vm.max,\"debounce\":_vm.debounce,\"size\":_vm.inputSize},on:{\"change\":function($event){_vm.$nextTick(_vm.emitChange)}},model:{value:(_vm.firstValue),callback:function ($$v) {_vm.firstValue=$$v},expression:\"firstValue\"}}):_vm._e(),_c('div',{ref:\"slider\",staticClass:\"el-slider__runway\",class:{ 'show-input': _vm.showInput, 'disabled': _vm.sliderDisabled },style:(_vm.runwayStyle),on:{\"click\":_vm.onSliderClick}},[_c('div',{staticClass:\"el-slider__bar\",style:(_vm.barStyle)}),_c('slider-button',{ref:\"button1\",attrs:{\"vertical\":_vm.vertical,\"tooltip-class\":_vm.tooltipClass},model:{value:(_vm.firstValue),callback:function ($$v) {_vm.firstValue=$$v},expression:\"firstValue\"}}),(_vm.range)?_c('slider-button',{ref:\"button2\",attrs:{\"vertical\":_vm.vertical,\"tooltip-class\":_vm.tooltipClass},model:{value:(_vm.secondValue),callback:function ($$v) {_vm.secondValue=$$v},expression:\"secondValue\"}}):_vm._e(),_vm._l((_vm.stops),function(item,key){return (_vm.showStops)?_c('div',{key:key,staticClass:\"el-slider__stop\",style:(_vm.vertical ? { 'bottom': item + '%' } : { 'left': item + '%' })}):_vm._e()})],2)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 276 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _directive = __webpack_require__(277);\n\nvar _directive2 = _interopRequireDefault(_directive);\n\nvar _index = __webpack_require__(280);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  install: function install(Vue) {\n    Vue.use(_directive2.default);\n    Vue.prototype.$loading = _index2.default;\n  },\n\n  directive: _directive2.default,\n  service: _index2.default\n};\n\n/***/ }),\n/* 277 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _loading = __webpack_require__(40);\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nvar _dom = __webpack_require__(2);\n\nvar _popup = __webpack_require__(12);\n\nvar _afterLeave = __webpack_require__(41);\n\nvar _afterLeave2 = _interopRequireDefault(_afterLeave);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Mask = _vue2.default.extend(_loading2.default);\n\nvar loadingDirective = {};\nloadingDirective.install = function (Vue) {\n  if (Vue.prototype.$isServer) return;\n  var toggleLoading = function toggleLoading(el, binding) {\n    if (binding.value) {\n      Vue.nextTick(function () {\n        if (binding.modifiers.fullscreen) {\n          el.originalPosition = (0, _dom.getStyle)(document.body, 'position');\n          el.originalOverflow = (0, _dom.getStyle)(document.body, 'overflow');\n          el.maskStyle.zIndex = _popup.PopupManager.nextZIndex();\n\n          (0, _dom.addClass)(el.mask, 'is-fullscreen');\n          insertDom(document.body, el, binding);\n        } else {\n          (0, _dom.removeClass)(el.mask, 'is-fullscreen');\n\n          if (binding.modifiers.body) {\n            el.originalPosition = (0, _dom.getStyle)(document.body, 'position');\n\n            ['top', 'left'].forEach(function (property) {\n              var scroll = property === 'top' ? 'scrollTop' : 'scrollLeft';\n              el.maskStyle[property] = el.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] - parseInt((0, _dom.getStyle)(document.body, 'margin-' + property), 10) + 'px';\n            });\n            ['height', 'width'].forEach(function (property) {\n              el.maskStyle[property] = el.getBoundingClientRect()[property] + 'px';\n            });\n\n            insertDom(document.body, el, binding);\n          } else {\n            el.originalPosition = (0, _dom.getStyle)(el, 'position');\n            insertDom(el, el, binding);\n          }\n        }\n      });\n    } else {\n      (0, _afterLeave2.default)(el.instance, function (_) {\n        el.domVisible = false;\n        var target = binding.modifiers.fullscreen || binding.modifiers.body ? document.body : el;\n        (0, _dom.removeClass)(target, 'el-loading-parent--relative');\n        (0, _dom.removeClass)(target, 'el-loading-parent--hidden');\n        el.instance.hiding = false;\n      }, 300, true);\n      el.instance.visible = false;\n      el.instance.hiding = true;\n    }\n  };\n  var insertDom = function insertDom(parent, el, binding) {\n    if (!el.domVisible && (0, _dom.getStyle)(el, 'display') !== 'none' && (0, _dom.getStyle)(el, 'visibility') !== 'hidden') {\n      Object.keys(el.maskStyle).forEach(function (property) {\n        el.mask.style[property] = el.maskStyle[property];\n      });\n\n      if (el.originalPosition !== 'absolute' && el.originalPosition !== 'fixed') {\n        (0, _dom.addClass)(parent, 'el-loading-parent--relative');\n      }\n      if (binding.modifiers.fullscreen && binding.modifiers.lock) {\n        (0, _dom.addClass)(parent, 'el-loading-parent--hidden');\n      }\n      el.domVisible = true;\n\n      parent.appendChild(el.mask);\n      Vue.nextTick(function () {\n        if (el.instance.hiding) {\n          el.instance.$emit('after-leave');\n        } else {\n          el.instance.visible = true;\n        }\n      });\n      el.domInserted = true;\n    }\n  };\n\n  Vue.directive('loading', {\n    bind: function bind(el, binding, vnode) {\n      var textExr = el.getAttribute('element-loading-text');\n      var spinnerExr = el.getAttribute('element-loading-spinner');\n      var backgroundExr = el.getAttribute('element-loading-background');\n      var customClassExr = el.getAttribute('element-loading-custom-class');\n      var vm = vnode.context;\n      var mask = new Mask({\n        el: document.createElement('div'),\n        data: {\n          text: vm && vm[textExr] || textExr,\n          spinner: vm && vm[spinnerExr] || spinnerExr,\n          background: vm && vm[backgroundExr] || backgroundExr,\n          customClass: vm && vm[customClassExr] || customClassExr,\n          fullscreen: !!binding.modifiers.fullscreen\n        }\n      });\n      el.instance = mask;\n      el.mask = mask.$el;\n      el.maskStyle = {};\n\n      binding.value && toggleLoading(el, binding);\n    },\n\n    update: function update(el, binding) {\n      el.instance.setText(el.getAttribute('element-loading-text'));\n      if (binding.oldValue !== binding.value) {\n        toggleLoading(el, binding);\n      }\n    },\n\n    unbind: function unbind(el, binding) {\n      if (el.domInserted) {\n        el.mask && el.mask.parentNode && el.mask.parentNode.removeChild(el.mask);\n        toggleLoading(el, { value: false, modifiers: binding.modifiers });\n      }\n    }\n  });\n};\n\nexports.default = loadingDirective;\n\n/***/ }),\n/* 278 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  data: function data() {\n    return {\n      text: null,\n      spinner: null,\n      background: null,\n      fullscreen: true,\n      visible: false,\n      customClass: ''\n    };\n  },\n\n\n  methods: {\n    handleAfterLeave: function handleAfterLeave() {\n      this.$emit('after-leave');\n    },\n    setText: function setText(text) {\n      this.text = text;\n    }\n  }\n};\n\n/***/ }),\n/* 279 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-loading-fade\"},on:{\"after-leave\":_vm.handleAfterLeave}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"el-loading-mask\",class:[_vm.customClass, { 'is-fullscreen': _vm.fullscreen }],style:({ backgroundColor: _vm.background || '' })},[_c('div',{staticClass:\"el-loading-spinner\"},[(!_vm.spinner)?_c('svg',{staticClass:\"circular\",attrs:{\"viewBox\":\"25 25 50 50\"}},[_c('circle',{staticClass:\"path\",attrs:{\"cx\":\"50\",\"cy\":\"50\",\"r\":\"20\",\"fill\":\"none\"}})]):_c('i',{class:_vm.spinner}),(_vm.text)?_c('p',{staticClass:\"el-loading-text\"},[_vm._v(_vm._s(_vm.text))]):_vm._e()])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 280 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _loading = __webpack_require__(40);\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nvar _dom = __webpack_require__(2);\n\nvar _popup = __webpack_require__(12);\n\nvar _afterLeave = __webpack_require__(41);\n\nvar _afterLeave2 = _interopRequireDefault(_afterLeave);\n\nvar _merge = __webpack_require__(10);\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar LoadingConstructor = _vue2.default.extend(_loading2.default);\n\nvar defaults = {\n  text: null,\n  fullscreen: true,\n  body: false,\n  lock: false,\n  customClass: ''\n};\n\nvar fullscreenLoading = void 0;\n\nLoadingConstructor.prototype.originalPosition = '';\nLoadingConstructor.prototype.originalOverflow = '';\n\nLoadingConstructor.prototype.close = function () {\n  var _this = this;\n\n  if (this.fullscreen) {\n    fullscreenLoading = undefined;\n  }\n  (0, _afterLeave2.default)(this, function (_) {\n    var target = _this.fullscreen || _this.body ? document.body : _this.target;\n    (0, _dom.removeClass)(target, 'el-loading-parent--relative');\n    (0, _dom.removeClass)(target, 'el-loading-parent--hidden');\n    if (_this.$el && _this.$el.parentNode) {\n      _this.$el.parentNode.removeChild(_this.$el);\n    }\n    _this.$destroy();\n  }, 300);\n  this.visible = false;\n};\n\nvar addStyle = function addStyle(options, parent, instance) {\n  var maskStyle = {};\n  if (options.fullscreen) {\n    instance.originalPosition = (0, _dom.getStyle)(document.body, 'position');\n    instance.originalOverflow = (0, _dom.getStyle)(document.body, 'overflow');\n    maskStyle.zIndex = _popup.PopupManager.nextZIndex();\n  } else if (options.body) {\n    instance.originalPosition = (0, _dom.getStyle)(document.body, 'position');\n    ['top', 'left'].forEach(function (property) {\n      var scroll = property === 'top' ? 'scrollTop' : 'scrollLeft';\n      maskStyle[property] = options.target.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] + 'px';\n    });\n    ['height', 'width'].forEach(function (property) {\n      maskStyle[property] = options.target.getBoundingClientRect()[property] + 'px';\n    });\n  } else {\n    instance.originalPosition = (0, _dom.getStyle)(parent, 'position');\n  }\n  Object.keys(maskStyle).forEach(function (property) {\n    instance.$el.style[property] = maskStyle[property];\n  });\n};\n\nvar Loading = function Loading() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  if (_vue2.default.prototype.$isServer) return;\n  options = (0, _merge2.default)({}, defaults, options);\n  if (typeof options.target === 'string') {\n    options.target = document.querySelector(options.target);\n  }\n  options.target = options.target || document.body;\n  if (options.target !== document.body) {\n    options.fullscreen = false;\n  } else {\n    options.body = true;\n  }\n  if (options.fullscreen && fullscreenLoading) {\n    return fullscreenLoading;\n  }\n\n  var parent = options.body ? document.body : options.target;\n  var instance = new LoadingConstructor({\n    el: document.createElement('div'),\n    data: options\n  });\n\n  addStyle(options, parent, instance);\n  if (instance.originalPosition !== 'absolute' && instance.originalPosition !== 'fixed') {\n    (0, _dom.addClass)(parent, 'el-loading-parent--relative');\n  }\n  if (options.fullscreen && options.lock) {\n    (0, _dom.addClass)(parent, 'el-loading-parent--hidden');\n  }\n  parent.appendChild(instance.$el);\n  _vue2.default.nextTick(function () {\n    instance.visible = true;\n  });\n  if (options.fullscreen) {\n    fullscreenLoading = instance;\n  }\n  return instance;\n};\n\nexports.default = Loading;\n\n/***/ }),\n/* 281 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _icon = __webpack_require__(282);\n\nvar _icon2 = _interopRequireDefault(_icon);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_icon2.default.install = function (Vue) {\n  Vue.component(_icon2.default.name, _icon2.default);\n};\n\nexports.default = _icon2.default;\n\n/***/ }),\n/* 282 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_icon_vue__ = __webpack_require__(283);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_icon_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_icon_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_17b0ab6e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_icon_vue__ = __webpack_require__(284);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_icon_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_17b0ab6e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_icon_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 283 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElIcon',\n\n  props: {\n    name: String\n  }\n};\n\n/***/ }),\n/* 284 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('i',{class:'el-icon-' + _vm.name})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 285 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _row = __webpack_require__(286);\n\nvar _row2 = _interopRequireDefault(_row);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_row2.default.install = function (Vue) {\n  Vue.component(_row2.default.name, _row2.default);\n};\n\nexports.default = _row2.default;\n\n/***/ }),\n/* 286 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = {\n  name: 'ElRow',\n\n  componentName: 'ElRow',\n\n  props: {\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    gutter: Number,\n    type: String,\n    justify: {\n      type: String,\n      default: 'start'\n    },\n    align: {\n      type: String,\n      default: 'top'\n    }\n  },\n\n  computed: {\n    style: function style() {\n      var ret = {};\n\n      if (this.gutter) {\n        ret.marginLeft = '-' + this.gutter / 2 + 'px';\n        ret.marginRight = ret.marginLeft;\n      }\n\n      return ret;\n    }\n  },\n\n  render: function render(h) {\n    return h(this.tag, {\n      class: ['el-row', this.justify !== 'start' ? 'is-justify-' + this.justify : '', this.align !== 'top' ? 'is-align-' + this.align : '', { 'el-row--flex': this.type === 'flex' }],\n      style: this.style\n    }, this.$slots.default);\n  }\n};\n\n/***/ }),\n/* 287 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _col = __webpack_require__(288);\n\nvar _col2 = _interopRequireDefault(_col);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_col2.default.install = function (Vue) {\n  Vue.component(_col2.default.name, _col2.default);\n};\n\nexports.default = _col2.default;\n\n/***/ }),\n/* 288 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = {\n  name: 'ElCol',\n\n  props: {\n    span: {\n      type: Number,\n      default: 24\n    },\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    offset: Number,\n    pull: Number,\n    push: Number,\n    xs: [Number, Object],\n    sm: [Number, Object],\n    md: [Number, Object],\n    lg: [Number, Object],\n    xl: [Number, Object]\n  },\n\n  computed: {\n    gutter: function gutter() {\n      var parent = this.$parent;\n      while (parent && parent.$options.componentName !== 'ElRow') {\n        parent = parent.$parent;\n      }\n      return parent ? parent.gutter : 0;\n    }\n  },\n  render: function render(h) {\n    var _this = this;\n\n    var classList = [];\n    var style = {};\n\n    if (this.gutter) {\n      style.paddingLeft = this.gutter / 2 + 'px';\n      style.paddingRight = style.paddingLeft;\n    }\n\n    ['span', 'offset', 'pull', 'push'].forEach(function (prop) {\n      if (_this[prop] || _this[prop] === 0) {\n        classList.push(prop !== 'span' ? 'el-col-' + prop + '-' + _this[prop] : 'el-col-' + _this[prop]);\n      }\n    });\n\n    ['xs', 'sm', 'md', 'lg', 'xl'].forEach(function (size) {\n      if (typeof _this[size] === 'number') {\n        classList.push('el-col-' + size + '-' + _this[size]);\n      } else if (_typeof(_this[size]) === 'object') {\n        (function () {\n          var props = _this[size];\n          Object.keys(props).forEach(function (prop) {\n            classList.push(prop !== 'span' ? 'el-col-' + size + '-' + prop + '-' + props[prop] : 'el-col-' + size + '-' + props[prop]);\n          });\n        })();\n      }\n    });\n\n    return h(this.tag, {\n      class: ['el-col', classList],\n      style: style\n    }, this.$slots.default);\n  }\n};\n\n/***/ }),\n/* 289 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _src = __webpack_require__(290);\n\nvar _src2 = _interopRequireDefault(_src);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_src2.default.install = function (Vue) {\n  Vue.component(_src2.default.name, _src2.default);\n};\n\nexports.default = _src2.default;\n\n/***/ }),\n/* 290 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue__ = __webpack_require__(291);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_index_vue___default.a,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _uploadList = __webpack_require__(292);\n\nvar _uploadList2 = _interopRequireDefault(_uploadList);\n\nvar _upload = __webpack_require__(295);\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _progress = __webpack_require__(42);\n\nvar _progress2 = _interopRequireDefault(_progress);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction noop() {}\n\nexports.default = {\n  name: 'ElUpload',\n\n  mixins: [_migrating2.default],\n\n  components: {\n    ElProgress: _progress2.default,\n    UploadList: _uploadList2.default,\n    Upload: _upload2.default\n  },\n\n  provide: function provide() {\n    return {\n      uploader: this\n    };\n  },\n\n\n  inject: {\n    elForm: {\n      default: ''\n    }\n  },\n\n  props: {\n    action: {\n      type: String,\n      required: true\n    },\n    headers: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    data: Object,\n    multiple: Boolean,\n    name: {\n      type: String,\n      default: 'file'\n    },\n    drag: Boolean,\n    dragger: Boolean,\n    withCredentials: Boolean,\n    showFileList: {\n      type: Boolean,\n      default: true\n    },\n    accept: String,\n    type: {\n      type: String,\n      default: 'select'\n    },\n    beforeUpload: Function,\n    beforeRemove: Function,\n    onRemove: {\n      type: Function,\n      default: noop\n    },\n    onChange: {\n      type: Function,\n      default: noop\n    },\n    onPreview: {\n      type: Function\n    },\n    onSuccess: {\n      type: Function,\n      default: noop\n    },\n    onProgress: {\n      type: Function,\n      default: noop\n    },\n    onError: {\n      type: Function,\n      default: noop\n    },\n    fileList: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    autoUpload: {\n      type: Boolean,\n      default: true\n    },\n    listType: {\n      type: String,\n      default: 'text' // text,picture,picture-card\n    },\n    httpRequest: Function,\n    disabled: Boolean,\n    limit: Number,\n    onExceed: {\n      type: Function,\n      default: noop\n    }\n  },\n\n  data: function data() {\n    return {\n      uploadFiles: [],\n      dragOver: false,\n      draging: false,\n      tempIndex: 1\n    };\n  },\n\n\n  computed: {\n    uploadDisabled: function uploadDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    }\n  },\n\n  watch: {\n    fileList: {\n      immediate: true,\n      handler: function handler(fileList) {\n        var _this = this;\n\n        this.uploadFiles = fileList.map(function (item) {\n          item.uid = item.uid || Date.now() + _this.tempIndex++;\n          item.status = item.status || 'success';\n          return item;\n        });\n      }\n    }\n  },\n\n  methods: {\n    handleStart: function handleStart(rawFile) {\n      rawFile.uid = Date.now() + this.tempIndex++;\n      var file = {\n        status: 'ready',\n        name: rawFile.name,\n        size: rawFile.size,\n        percentage: 0,\n        uid: rawFile.uid,\n        raw: rawFile\n      };\n\n      try {\n        file.url = URL.createObjectURL(rawFile);\n      } catch (err) {\n        console.error(err);\n        return;\n      }\n\n      this.uploadFiles.push(file);\n      this.onChange(file, this.uploadFiles);\n    },\n    handleProgress: function handleProgress(ev, rawFile) {\n      var file = this.getFile(rawFile);\n      this.onProgress(ev, file, this.uploadFiles);\n      file.status = 'uploading';\n      file.percentage = ev.percent || 0;\n    },\n    handleSuccess: function handleSuccess(res, rawFile) {\n      var file = this.getFile(rawFile);\n\n      if (file) {\n        file.status = 'success';\n        file.response = res;\n\n        this.onSuccess(res, file, this.uploadFiles);\n        this.onChange(file, this.uploadFiles);\n      }\n    },\n    handleError: function handleError(err, rawFile) {\n      var file = this.getFile(rawFile);\n      var fileList = this.uploadFiles;\n\n      file.status = 'fail';\n\n      fileList.splice(fileList.indexOf(file), 1);\n\n      this.onError(err, file, this.uploadFiles);\n      this.onChange(file, this.uploadFiles);\n    },\n    handleRemove: function handleRemove(file, raw) {\n      var _this2 = this;\n\n      if (raw) {\n        file = this.getFile(raw);\n      }\n      var doRemove = function doRemove() {\n        _this2.abort(file);\n        var fileList = _this2.uploadFiles;\n        fileList.splice(fileList.indexOf(file), 1);\n        _this2.onRemove(file, fileList);\n      };\n\n      if (!this.beforeRemove) {\n        doRemove();\n      } else if (typeof this.beforeRemove === 'function') {\n        var before = this.beforeRemove(file, this.uploadFiles);\n        if (before && before.then) {\n          before.then(function () {\n            doRemove();\n          }, noop);\n        } else if (before !== false) {\n          doRemove();\n        }\n      }\n    },\n    getFile: function getFile(rawFile) {\n      var fileList = this.uploadFiles;\n      var target = void 0;\n      fileList.every(function (item) {\n        target = rawFile.uid === item.uid ? item : null;\n        return !target;\n      });\n      return target;\n    },\n    abort: function abort(file) {\n      this.$refs['upload-inner'].abort(file);\n    },\n    clearFiles: function clearFiles() {\n      this.uploadFiles = [];\n    },\n    submit: function submit() {\n      var _this3 = this;\n\n      this.uploadFiles.filter(function (file) {\n        return file.status === 'ready';\n      }).forEach(function (file) {\n        _this3.$refs['upload-inner'].upload(file.raw);\n      });\n    },\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'default-file-list': 'default-file-list is renamed to file-list.',\n          'show-upload-list': 'show-upload-list is renamed to show-file-list.',\n          'thumbnail-mode': 'thumbnail-mode has been deprecated, you can implement the same effect according to this case: http://element.eleme.io/#/zh-CN/component/upload#yong-hu-tou-xiang-shang-chuan'\n        }\n      };\n    }\n  },\n\n  render: function render(h) {\n    var uploadList = void 0;\n\n    if (this.showFileList) {\n      uploadList = h(\n        _uploadList2.default,\n        {\n          attrs: {\n            disabled: this.uploadDisabled,\n            listType: this.listType,\n            files: this.uploadFiles,\n\n            handlePreview: this.onPreview },\n          on: {\n            'remove': this.handleRemove\n          }\n        },\n        []\n      );\n    }\n\n    var uploadData = {\n      props: {\n        type: this.type,\n        drag: this.drag,\n        action: this.action,\n        multiple: this.multiple,\n        'before-upload': this.beforeUpload,\n        'with-credentials': this.withCredentials,\n        headers: this.headers,\n        name: this.name,\n        data: this.data,\n        accept: this.accept,\n        fileList: this.uploadFiles,\n        autoUpload: this.autoUpload,\n        listType: this.listType,\n        disabled: this.uploadDisabled,\n        limit: this.limit,\n        'on-exceed': this.onExceed,\n        'on-start': this.handleStart,\n        'on-progress': this.handleProgress,\n        'on-success': this.handleSuccess,\n        'on-error': this.handleError,\n        'on-preview': this.onPreview,\n        'on-remove': this.handleRemove,\n        'http-request': this.httpRequest\n      },\n      ref: 'upload-inner'\n    };\n\n    var trigger = this.$slots.trigger || this.$slots.default;\n    var uploadComponent = h(\n      'upload',\n      uploadData,\n      [trigger]\n    );\n\n    return h(\n      'div',\n      null,\n      [this.listType === 'picture-card' ? uploadList : '', this.$slots.trigger ? [uploadComponent, this.$slots.default] : uploadComponent, this.$slots.tip, this.listType !== 'picture-card' ? uploadList : '']\n    );\n  }\n};\n\n/***/ }),\n/* 292 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_list_vue__ = __webpack_require__(293);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_list_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_list_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1062ab12_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_upload_list_vue__ = __webpack_require__(294);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_list_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1062ab12_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_upload_list_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 293 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _progress = __webpack_require__(42);\n\nvar _progress2 = _interopRequireDefault(_progress);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  mixins: [_locale2.default],\n\n  data: function data() {\n    return {\n      focusing: false\n    };\n  },\n\n  components: { ElProgress: _progress2.default },\n\n  props: {\n    files: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    handlePreview: Function,\n    listType: String\n  },\n  methods: {\n    parsePercentage: function parsePercentage(val) {\n      return parseInt(val, 10);\n    },\n    handleClick: function handleClick(file) {\n      this.handlePreview && this.handlePreview(file);\n    }\n  }\n};\n\n/***/ }),\n/* 294 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition-group',{class:[\n    'el-upload-list',\n    'el-upload-list--' + _vm.listType,\n    { 'is-disabled': _vm.disabled }\n  ],attrs:{\"tag\":\"ul\",\"name\":\"el-list\"}},_vm._l((_vm.files),function(file,index){return _c('li',{key:index,class:['el-upload-list__item', 'is-' + file.status, _vm.focusing ? 'focusing' : ''],attrs:{\"tabindex\":\"0\"},on:{\"keydown\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key)){ return null; }!_vm.disabled && _vm.$emit('remove', file)},\"focus\":function($event){_vm.focusing = true},\"blur\":function($event){_vm.focusing = false},\"click\":function($event){_vm.focusing = false}}},[(file.status !== 'uploading' && ['picture-card', 'picture'].indexOf(_vm.listType) > -1)?_c('img',{staticClass:\"el-upload-list__item-thumbnail\",attrs:{\"src\":file.url,\"alt\":\"\"}}):_vm._e(),_c('a',{staticClass:\"el-upload-list__item-name\",on:{\"click\":function($event){_vm.handleClick(file)}}},[_c('i',{staticClass:\"el-icon-document\"}),_vm._v(_vm._s(file.name)+\"\\n    \")]),_c('label',{staticClass:\"el-upload-list__item-status-label\"},[_c('i',{class:{\n        'el-icon-upload-success': true,\n        'el-icon-circle-check': _vm.listType === 'text',\n        'el-icon-check': ['picture-card', 'picture'].indexOf(_vm.listType) > -1\n      }})]),(!_vm.disabled)?_c('i',{staticClass:\"el-icon-close\",on:{\"click\":function($event){_vm.$emit('remove', file)}}}):_vm._e(),(!_vm.disabled)?_c('i',{staticClass:\"el-icon-close-tip\"},[_vm._v(_vm._s(_vm.t('el.upload.deleteTip')))]):_vm._e(),(file.status === 'uploading')?_c('el-progress',{attrs:{\"type\":_vm.listType === 'picture-card' ? 'circle' : 'line',\"stroke-width\":_vm.listType === 'picture-card' ? 6 : 2,\"percentage\":_vm.parsePercentage(file.percentage)}}):_vm._e(),(_vm.listType === 'picture-card')?_c('span',{staticClass:\"el-upload-list__item-actions\"},[(_vm.handlePreview && _vm.listType === 'picture-card')?_c('span',{staticClass:\"el-upload-list__item-preview\",on:{\"click\":function($event){_vm.handlePreview(file)}}},[_c('i',{staticClass:\"el-icon-zoom-in\"})]):_vm._e(),(!_vm.disabled)?_c('span',{staticClass:\"el-upload-list__item-delete\",on:{\"click\":function($event){_vm.$emit('remove', file)}}},[_c('i',{staticClass:\"el-icon-delete\"})]):_vm._e()]):_vm._e()],1)}))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 295 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_vue__ = __webpack_require__(296);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_vue___default.a,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 296 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _babelHelperVueJsxMergeProps = __webpack_require__(43);\n\nvar _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);\n\nvar _ajax = __webpack_require__(297);\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _uploadDragger = __webpack_require__(298);\n\nvar _uploadDragger2 = _interopRequireDefault(_uploadDragger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  inject: ['uploader'],\n  components: {\n    UploadDragger: _uploadDragger2.default\n  },\n  props: {\n    type: String,\n    action: {\n      type: String,\n      required: true\n    },\n    name: {\n      type: String,\n      default: 'file'\n    },\n    data: Object,\n    headers: Object,\n    withCredentials: Boolean,\n    multiple: Boolean,\n    accept: String,\n    onStart: Function,\n    onProgress: Function,\n    onSuccess: Function,\n    onError: Function,\n    beforeUpload: Function,\n    drag: Boolean,\n    onPreview: {\n      type: Function,\n      default: function _default() {}\n    },\n    onRemove: {\n      type: Function,\n      default: function _default() {}\n    },\n    fileList: Array,\n    autoUpload: Boolean,\n    listType: String,\n    httpRequest: {\n      type: Function,\n      default: _ajax2.default\n    },\n    disabled: Boolean,\n    limit: Number,\n    onExceed: Function\n  },\n\n  data: function data() {\n    return {\n      mouseover: false,\n      reqs: {}\n    };\n  },\n\n\n  methods: {\n    isImage: function isImage(str) {\n      return str.indexOf('image') !== -1;\n    },\n    handleChange: function handleChange(ev) {\n      var files = ev.target.files;\n\n      if (!files) return;\n      this.uploadFiles(files);\n    },\n    uploadFiles: function uploadFiles(files) {\n      var _this = this;\n\n      if (this.limit && this.fileList.length + files.length > this.limit) {\n        this.onExceed && this.onExceed(files, this.fileList);\n        return;\n      }\n\n      var postFiles = Array.prototype.slice.call(files);\n      if (!this.multiple) {\n        postFiles = postFiles.slice(0, 1);\n      }\n\n      if (postFiles.length === 0) {\n        return;\n      }\n\n      postFiles.forEach(function (rawFile) {\n        _this.onStart(rawFile);\n        if (_this.autoUpload) _this.upload(rawFile);\n      });\n    },\n    upload: function upload(rawFile) {\n      var _this2 = this;\n\n      this.$refs.input.value = null;\n\n      if (!this.beforeUpload) {\n        return this.post(rawFile);\n      }\n\n      var before = this.beforeUpload(rawFile);\n      if (before && before.then) {\n        before.then(function (processedFile) {\n          var fileType = Object.prototype.toString.call(processedFile);\n\n          if (fileType === '[object File]' || fileType === '[object Blob]') {\n            if (fileType === '[object Blob]') {\n              processedFile = new File([processedFile], rawFile.name, {\n                type: rawFile.type\n              });\n            }\n            for (var p in rawFile) {\n              if (rawFile.hasOwnProperty(p)) {\n                processedFile[p] = rawFile[p];\n              }\n            }\n            _this2.post(processedFile);\n          } else {\n            _this2.post(rawFile);\n          }\n        }, function () {\n          _this2.onRemove(null, rawFile);\n        });\n      } else if (before !== false) {\n        this.post(rawFile);\n      } else {\n        this.onRemove(null, rawFile);\n      }\n    },\n    abort: function abort(file) {\n      var reqs = this.reqs;\n\n      if (file) {\n        var uid = file;\n        if (file.uid) uid = file.uid;\n        if (reqs[uid]) {\n          reqs[uid].abort();\n        }\n      } else {\n        Object.keys(reqs).forEach(function (uid) {\n          if (reqs[uid]) reqs[uid].abort();\n          delete reqs[uid];\n        });\n      }\n    },\n    post: function post(rawFile) {\n      var _this3 = this;\n\n      var uid = rawFile.uid;\n\n      var options = {\n        headers: this.headers,\n        withCredentials: this.withCredentials,\n        file: rawFile,\n        data: this.data,\n        filename: this.name,\n        action: this.action,\n        onProgress: function onProgress(e) {\n          _this3.onProgress(e, rawFile);\n        },\n        onSuccess: function onSuccess(res) {\n          _this3.onSuccess(res, rawFile);\n          delete _this3.reqs[uid];\n        },\n        onError: function onError(err) {\n          _this3.onError(err, rawFile);\n          delete _this3.reqs[uid];\n        }\n      };\n      var req = this.httpRequest(options);\n      this.reqs[uid] = req;\n      if (req && req.then) {\n        req.then(options.onSuccess, options.onError);\n      }\n    },\n    handleClick: function handleClick() {\n      if (!this.disabled) {\n        this.$refs.input.value = null;\n        this.$refs.input.click();\n      }\n    },\n    handleKeydown: function handleKeydown(e) {\n      if (e.target !== e.currentTarget) return;\n      if (e.keyCode === 13 || e.keyCode === 32) {\n        this.handleClick();\n      }\n    }\n  },\n\n  render: function render(h) {\n    var handleClick = this.handleClick,\n        drag = this.drag,\n        name = this.name,\n        handleChange = this.handleChange,\n        multiple = this.multiple,\n        accept = this.accept,\n        listType = this.listType,\n        uploadFiles = this.uploadFiles,\n        disabled = this.disabled,\n        handleKeydown = this.handleKeydown;\n\n    var data = {\n      class: {\n        'el-upload': true\n      },\n      on: {\n        click: handleClick,\n        keydown: handleKeydown\n      }\n    };\n    data.class['el-upload--' + listType] = true;\n    return h(\n      'div',\n      (0, _babelHelperVueJsxMergeProps2.default)([data, {\n        attrs: { tabindex: '0' }\n      }]),\n      [drag ? h(\n        'upload-dragger',\n        {\n          attrs: { disabled: disabled },\n          on: {\n            'file': uploadFiles\n          }\n        },\n        [this.$slots.default]\n      ) : this.$slots.default, h(\n        'input',\n        { 'class': 'el-upload__input', attrs: { type: 'file', name: name, multiple: multiple, accept: accept },\n          ref: 'input', on: {\n            'change': handleChange\n          }\n        },\n        []\n      )]\n    );\n  }\n};\n\n/***/ }),\n/* 297 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.default = upload;\nfunction getError(action, option, xhr) {\n  var msg = void 0;\n  if (xhr.response) {\n    msg = '' + (xhr.response.error || xhr.response);\n  } else if (xhr.responseText) {\n    msg = '' + xhr.responseText;\n  } else {\n    msg = 'fail to post ' + action + ' ' + xhr.status;\n  }\n\n  var err = new Error(msg);\n  err.status = xhr.status;\n  err.method = 'post';\n  err.url = action;\n  return err;\n}\n\nfunction getBody(xhr) {\n  var text = xhr.responseText || xhr.response;\n  if (!text) {\n    return text;\n  }\n\n  try {\n    return JSON.parse(text);\n  } catch (e) {\n    return text;\n  }\n}\n\nfunction upload(option) {\n  if (typeof XMLHttpRequest === 'undefined') {\n    return;\n  }\n\n  var xhr = new XMLHttpRequest();\n  var action = option.action;\n\n  if (xhr.upload) {\n    xhr.upload.onprogress = function progress(e) {\n      if (e.total > 0) {\n        e.percent = e.loaded / e.total * 100;\n      }\n      option.onProgress(e);\n    };\n  }\n\n  var formData = new FormData();\n\n  if (option.data) {\n    Object.keys(option.data).forEach(function (key) {\n      formData.append(key, option.data[key]);\n    });\n  }\n\n  formData.append(option.filename, option.file, option.file.name);\n\n  xhr.onerror = function error(e) {\n    option.onError(e);\n  };\n\n  xhr.onload = function onload() {\n    if (xhr.status < 200 || xhr.status >= 300) {\n      return option.onError(getError(action, option, xhr));\n    }\n\n    option.onSuccess(getBody(xhr));\n  };\n\n  xhr.open('post', action, true);\n\n  if (option.withCredentials && 'withCredentials' in xhr) {\n    xhr.withCredentials = true;\n  }\n\n  var headers = option.headers || {};\n\n  for (var item in headers) {\n    if (headers.hasOwnProperty(item) && headers[item] !== null) {\n      xhr.setRequestHeader(item, headers[item]);\n    }\n  }\n  xhr.send(formData);\n  return xhr;\n}\n\n/***/ }),\n/* 298 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_dragger_vue__ = __webpack_require__(299);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_dragger_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_dragger_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9f5d7848_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_upload_dragger_vue__ = __webpack_require__(300);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_upload_dragger_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9f5d7848_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_upload_dragger_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 299 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElUploadDrag',\n  props: {\n    disabled: Boolean\n  },\n  inject: {\n    uploader: {\n      default: ''\n    }\n  },\n  data: function data() {\n    return {\n      dragover: false\n    };\n  },\n\n  methods: {\n    onDragover: function onDragover() {\n      if (!this.disabled) {\n        this.dragover = true;\n      }\n    },\n    onDrop: function onDrop(e) {\n      if (this.disabled || !this.uploader) return;\n      var accept = this.uploader.accept;\n      this.dragover = false;\n      if (!accept) {\n        this.$emit('file', e.dataTransfer.files);\n        return;\n      }\n      this.$emit('file', [].slice.call(e.dataTransfer.files).filter(function (file) {\n        var type = file.type,\n            name = file.name;\n\n        var extension = name.indexOf('.') > -1 ? '.' + name.split('.').pop() : '';\n        var baseType = type.replace(/\\/.*$/, '');\n        return accept.split(',').map(function (type) {\n          return type.trim();\n        }).filter(function (type) {\n          return type;\n        }).some(function (acceptedType) {\n          if (/\\..+$/.test(acceptedType)) {\n            return extension === acceptedType;\n          }\n          if (/\\/\\*$/.test(acceptedType)) {\n            return baseType === acceptedType.replace(/\\/\\*$/, '');\n          }\n          if (/^[^\\/]+\\/[^\\/]+$/.test(acceptedType)) {\n            return type === acceptedType;\n          }\n          return false;\n        });\n      }));\n    }\n  }\n};\n\n/***/ }),\n/* 300 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-upload-dragger\",class:{\n    'is-dragover': _vm.dragover\n  },on:{\"drop\":function($event){$event.preventDefault();_vm.onDrop($event)},\"dragover\":function($event){$event.preventDefault();_vm.onDragover($event)},\"dragleave\":function($event){$event.preventDefault();_vm.dragover = false}}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _progress = __webpack_require__(302);\n\nvar _progress2 = _interopRequireDefault(_progress);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_progress2.default.install = function (Vue) {\n  Vue.component(_progress2.default.name, _progress2.default);\n};\n\nexports.default = _progress2.default;\n\n/***/ }),\n/* 302 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__ = __webpack_require__(303);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_605ce16e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__ = __webpack_require__(304);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_progress_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_605ce16e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_progress_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 303 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElProgress',\n  props: {\n    type: {\n      type: String,\n      default: 'line',\n      validator: function validator(val) {\n        return ['line', 'circle'].indexOf(val) > -1;\n      }\n    },\n    percentage: {\n      type: Number,\n      default: 0,\n      required: true,\n      validator: function validator(val) {\n        return val >= 0 && val <= 100;\n      }\n    },\n    status: {\n      type: String\n    },\n    strokeWidth: {\n      type: Number,\n      default: 6\n    },\n    textInside: {\n      type: Boolean,\n      default: false\n    },\n    width: {\n      type: Number,\n      default: 126\n    },\n    showText: {\n      type: Boolean,\n      default: true\n    },\n    color: {\n      type: String,\n      default: ''\n    }\n  },\n  computed: {\n    barStyle: function barStyle() {\n      var style = {};\n      style.width = this.percentage + '%';\n      style.backgroundColor = this.color;\n      return style;\n    },\n    relativeStrokeWidth: function relativeStrokeWidth() {\n      return (this.strokeWidth / this.width * 100).toFixed(1);\n    },\n    trackPath: function trackPath() {\n      var radius = parseInt(50 - parseFloat(this.relativeStrokeWidth) / 2, 10);\n\n      return 'M 50 50 m 0 -' + radius + ' a ' + radius + ' ' + radius + ' 0 1 1 0 ' + radius * 2 + ' a ' + radius + ' ' + radius + ' 0 1 1 0 -' + radius * 2;\n    },\n    perimeter: function perimeter() {\n      var radius = 50 - parseFloat(this.relativeStrokeWidth) / 2;\n      return 2 * Math.PI * radius;\n    },\n    circlePathStyle: function circlePathStyle() {\n      var perimeter = this.perimeter;\n      return {\n        strokeDasharray: perimeter + 'px,' + perimeter + 'px',\n        strokeDashoffset: (1 - this.percentage / 100) * perimeter + 'px',\n        transition: 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease'\n      };\n    },\n    stroke: function stroke() {\n      var ret = void 0;\n      if (this.color) {\n        ret = this.color;\n      } else {\n        switch (this.status) {\n          case 'success':\n            ret = '#13ce66';\n            break;\n          case 'exception':\n            ret = '#ff4949';\n            break;\n          default:\n            ret = '#20a0ff';\n        }\n      }\n      return ret;\n    },\n    iconClass: function iconClass() {\n      if (this.type === 'line') {\n        return this.status === 'success' ? 'el-icon-circle-check' : 'el-icon-circle-close';\n      } else {\n        return this.status === 'success' ? 'el-icon-check' : 'el-icon-close';\n      }\n    },\n    progressTextSize: function progressTextSize() {\n      return this.type === 'line' ? 12 + this.strokeWidth * 0.4 : this.width * 0.111111 + 2;\n    }\n  }\n};\n\n/***/ }),\n/* 304 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-progress\",class:[\n    'el-progress--' + _vm.type,\n    _vm.status ? 'is-' + _vm.status : '',\n    {\n      'el-progress--without-text': !_vm.showText,\n      'el-progress--text-inside': _vm.textInside,\n    }\n  ],attrs:{\"role\":\"progressbar\",\"aria-valuenow\":_vm.percentage,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"}},[(_vm.type === 'line')?_c('div',{staticClass:\"el-progress-bar\"},[_c('div',{staticClass:\"el-progress-bar__outer\",style:({height: _vm.strokeWidth + 'px'})},[_c('div',{staticClass:\"el-progress-bar__inner\",style:(_vm.barStyle)},[(_vm.showText && _vm.textInside)?_c('div',{staticClass:\"el-progress-bar__innerText\"},[_vm._v(_vm._s(_vm.percentage)+\"%\")]):_vm._e()])])]):_c('div',{staticClass:\"el-progress-circle\",style:({height: _vm.width + 'px', width: _vm.width + 'px'})},[_c('svg',{attrs:{\"viewBox\":\"0 0 100 100\"}},[_c('path',{staticClass:\"el-progress-circle__track\",attrs:{\"d\":_vm.trackPath,\"stroke\":\"#e5e9f2\",\"stroke-width\":_vm.relativeStrokeWidth,\"fill\":\"none\"}}),_c('path',{staticClass:\"el-progress-circle__path\",style:(_vm.circlePathStyle),attrs:{\"d\":_vm.trackPath,\"stroke-linecap\":\"round\",\"stroke\":_vm.stroke,\"stroke-width\":_vm.relativeStrokeWidth,\"fill\":\"none\"}})])]),(_vm.showText && !_vm.textInside)?_c('div',{staticClass:\"el-progress__text\",style:({fontSize: _vm.progressTextSize + 'px'})},[(!_vm.status)?[_vm._v(_vm._s(_vm.percentage)+\"%\")]:_c('i',{class:_vm.iconClass})],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 305 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _spinner = __webpack_require__(306);\n\nvar _spinner2 = _interopRequireDefault(_spinner);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_spinner2.default.install = function (Vue) {\n  Vue.component(_spinner2.default.name, _spinner2.default);\n};\n\nexports.default = _spinner2.default;\n\n/***/ }),\n/* 306 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_spinner_vue__ = __webpack_require__(307);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_spinner_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_spinner_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_649cdd67_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_spinner_vue__ = __webpack_require__(308);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_spinner_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_649cdd67_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_spinner_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElSpinner',\n  props: {\n    type: String,\n    radius: {\n      type: Number,\n      default: 100\n    },\n    strokeWidth: {\n      type: Number,\n      default: 5\n    },\n    strokeColor: {\n      type: String,\n      default: '#efefef'\n    }\n  }\n};\n\n/***/ }),\n/* 308 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"el-spinner\"},[_c('svg',{staticClass:\"el-spinner-inner\",style:({ width: _vm.radius/2 + 'px', height: _vm.radius/2 + 'px' }),attrs:{\"viewBox\":\"0 0 50 50\"}},[_c('circle',{staticClass:\"path\",attrs:{\"cx\":\"25\",\"cy\":\"25\",\"r\":\"20\",\"fill\":\"none\",\"stroke\":_vm.strokeColor,\"stroke-width\":_vm.strokeWidth}})])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 309 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(310);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 310 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _main = __webpack_require__(311);\n\nvar _main2 = _interopRequireDefault(_main);\n\nvar _popup = __webpack_require__(12);\n\nvar _vdom = __webpack_require__(21);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar MessageConstructor = _vue2.default.extend(_main2.default);\n\nvar instance = void 0;\nvar instances = [];\nvar seed = 1;\n\nvar Message = function Message(options) {\n  if (_vue2.default.prototype.$isServer) return;\n  options = options || {};\n  if (typeof options === 'string') {\n    options = {\n      message: options\n    };\n  }\n  var userOnClose = options.onClose;\n  var id = 'message_' + seed++;\n\n  options.onClose = function () {\n    Message.close(id, userOnClose);\n  };\n  instance = new MessageConstructor({\n    data: options\n  });\n  instance.id = id;\n  if ((0, _vdom.isVNode)(instance.message)) {\n    instance.$slots.default = [instance.message];\n    instance.message = null;\n  }\n  instance.vm = instance.$mount();\n  document.body.appendChild(instance.vm.$el);\n  instance.vm.visible = true;\n  instance.dom = instance.vm.$el;\n  instance.dom.style.zIndex = _popup.PopupManager.nextZIndex();\n  instances.push(instance);\n  return instance.vm;\n};\n\n['success', 'warning', 'info', 'error'].forEach(function (type) {\n  Message[type] = function (options) {\n    if (typeof options === 'string') {\n      options = {\n        message: options\n      };\n    }\n    options.type = type;\n    return Message(options);\n  };\n});\n\nMessage.close = function (id, userOnClose) {\n  for (var i = 0, len = instances.length; i < len; i++) {\n    if (id === instances[i].id) {\n      if (typeof userOnClose === 'function') {\n        userOnClose(instances[i]);\n      }\n      instances.splice(i, 1);\n      break;\n    }\n  }\n};\n\nMessage.closeAll = function () {\n  for (var i = instances.length - 1; i >= 0; i--) {\n    instances[i].close();\n  }\n};\n\nexports.default = Message;\n\n/***/ }),\n/* 311 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(312);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_bbc771a6_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(313);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_bbc771a6_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 312 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar typeMap = {\n  success: 'success',\n  info: 'info',\n  warning: 'warning',\n  error: 'error'\n};\n\nexports.default = {\n  data: function data() {\n    return {\n      visible: false,\n      message: '',\n      duration: 3000,\n      type: 'info',\n      iconClass: '',\n      customClass: '',\n      onClose: null,\n      showClose: false,\n      closed: false,\n      timer: null,\n      dangerouslyUseHTMLString: false,\n      center: false\n    };\n  },\n\n\n  computed: {\n    typeClass: function typeClass() {\n      return this.type && !this.iconClass ? 'el-message__icon el-icon-' + typeMap[this.type] : '';\n    }\n  },\n\n  watch: {\n    closed: function closed(newVal) {\n      if (newVal) {\n        this.visible = false;\n        this.$el.addEventListener('transitionend', this.destroyElement);\n      }\n    }\n  },\n\n  methods: {\n    destroyElement: function destroyElement() {\n      this.$el.removeEventListener('transitionend', this.destroyElement);\n      this.$destroy(true);\n      this.$el.parentNode.removeChild(this.$el);\n    },\n    close: function close() {\n      this.closed = true;\n      if (typeof this.onClose === 'function') {\n        this.onClose(this);\n      }\n    },\n    clearTimer: function clearTimer() {\n      clearTimeout(this.timer);\n    },\n    startTimer: function startTimer() {\n      var _this = this;\n\n      if (this.duration > 0) {\n        this.timer = setTimeout(function () {\n          if (!_this.closed) {\n            _this.close();\n          }\n        }, this.duration);\n      }\n    },\n    keydown: function keydown(e) {\n      if (e.keyCode === 27) {\n        // esc鍏抽棴娑堟伅\n        if (!this.closed) {\n          this.close();\n        }\n      }\n    }\n  },\n  mounted: function mounted() {\n    this.startTimer();\n    document.addEventListener('keydown', this.keydown);\n  },\n  beforeDestroy: function beforeDestroy() {\n    document.removeEventListener('keydown', this.keydown);\n  }\n};\n\n/***/ }),\n/* 313 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-message-fade\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],class:[\n      'el-message',\n      _vm.type && !_vm.iconClass ? (\"el-message--\" + _vm.type) : '',\n      _vm.center ? 'is-center' : '',\n      _vm.showClose ? 'is-closable' : '',\n      _vm.customClass\n    ],attrs:{\"role\":\"alert\"},on:{\"mouseenter\":_vm.clearTimer,\"mouseleave\":_vm.startTimer}},[(_vm.iconClass)?_c('i',{class:_vm.iconClass}):_c('i',{class:_vm.typeClass}),_vm._t(\"default\",[(!_vm.dangerouslyUseHTMLString)?_c('p',{staticClass:\"el-message__content\"},[_vm._v(_vm._s(_vm.message))]):_c('p',{staticClass:\"el-message__content\",domProps:{\"innerHTML\":_vm._s(_vm.message)}})]),(_vm.showClose)?_c('i',{staticClass:\"el-message__closeBtn el-icon-close\",on:{\"click\":_vm.close}}):_vm._e()],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 314 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(315);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 315 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(316);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_be73115e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(317);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_be73115e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 316 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElBadge',\n\n  props: {\n    value: {},\n    max: Number,\n    isDot: Boolean,\n    hidden: Boolean\n  },\n\n  computed: {\n    content: function content() {\n      if (this.isDot) return;\n\n      var value = this.value;\n      var max = this.max;\n\n      if (typeof value === 'number' && typeof max === 'number') {\n        return max < value ? max + '+' : value;\n      }\n\n      return value;\n    }\n  }\n};\n\n/***/ }),\n/* 317 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-badge\"},[_vm._t(\"default\"),_c('transition',{attrs:{\"name\":\"el-zoom-in-center\"}},[_c('sup',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hidden && (_vm.content || _vm.content === 0 || _vm.isDot)),expression:\"!hidden && (content || content === 0 || isDot)\"}],staticClass:\"el-badge__content\",class:{ 'is-fixed': _vm.$slots.default, 'is-dot': _vm.isDot },domProps:{\"textContent\":_vm._s(_vm.content)}})])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 318 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(319);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 319 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(320);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_99277b5c_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(321);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_99277b5c_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 320 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElCard',\n  props: {\n    header: {},\n    bodyStyle: {},\n    shadow: {\n      type: String\n    }\n  }\n};\n\n/***/ }),\n/* 321 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-card\",class:_vm.shadow ? 'is-' + _vm.shadow + '-shadow' : 'is-always-shadow'},[(_vm.$slots.header || _vm.header)?_c('div',{staticClass:\"el-card__header\"},[_vm._t(\"header\",[_vm._v(_vm._s(_vm.header))])],2):_vm._e(),_c('div',{staticClass:\"el-card__body\",style:(_vm.bodyStyle)},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 322 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(323);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 323 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(324);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02f4e282_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(325);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02f4e282_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 324 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(2);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElRate',\n\n  mixins: [_migrating2.default],\n\n  inject: {\n    elForm: {\n      default: ''\n    }\n  },\n\n  data: function data() {\n    return {\n      pointerAtLeftHalf: true,\n      currentValue: this.value,\n      hoverIndex: -1\n    };\n  },\n\n\n  props: {\n    value: {\n      type: Number,\n      default: 0\n    },\n    lowThreshold: {\n      type: Number,\n      default: 2\n    },\n    highThreshold: {\n      type: Number,\n      default: 4\n    },\n    max: {\n      type: Number,\n      default: 5\n    },\n    colors: {\n      type: Array,\n      default: function _default() {\n        return ['#F7BA2A', '#F7BA2A', '#F7BA2A'];\n      }\n    },\n    voidColor: {\n      type: String,\n      default: '#C6D1DE'\n    },\n    disabledVoidColor: {\n      type: String,\n      default: '#EFF2F7'\n    },\n    iconClasses: {\n      type: Array,\n      default: function _default() {\n        return ['el-icon-star-on', 'el-icon-star-on', 'el-icon-star-on'];\n      }\n    },\n    voidIconClass: {\n      type: String,\n      default: 'el-icon-star-off'\n    },\n    disabledVoidIconClass: {\n      type: String,\n      default: 'el-icon-star-on'\n    },\n    disabled: {\n      type: Boolean,\n      default: false\n    },\n    allowHalf: {\n      type: Boolean,\n      default: false\n    },\n    showText: {\n      type: Boolean,\n      default: false\n    },\n    showScore: {\n      type: Boolean,\n      default: false\n    },\n    textColor: {\n      type: String,\n      default: '#1f2d3d'\n    },\n    texts: {\n      type: Array,\n      default: function _default() {\n        return ['鏋佸樊', '澶辨湜', '涓�鑸�', '婊℃剰', '鎯婂枩'];\n      }\n    },\n    scoreTemplate: {\n      type: String,\n      default: '{value}'\n    }\n  },\n\n  computed: {\n    text: function text() {\n      var result = '';\n      if (this.showScore) {\n        result = this.scoreTemplate.replace(/\\{\\s*value\\s*\\}/, this.rateDisabled ? this.value : this.currentValue);\n      } else if (this.showText) {\n        result = this.texts[Math.ceil(this.currentValue) - 1];\n      }\n      return result;\n    },\n    decimalStyle: function decimalStyle() {\n      var width = '';\n      if (this.rateDisabled) {\n        width = (this.valueDecimal < 50 ? 0 : 50) + '%';\n      }\n      if (this.allowHalf) {\n        width = '50%';\n      }\n      return {\n        color: this.activeColor,\n        width: width\n      };\n    },\n    valueDecimal: function valueDecimal() {\n      return this.value * 100 - Math.floor(this.value) * 100;\n    },\n    decimalIconClass: function decimalIconClass() {\n      return this.getValueFromMap(this.value, this.classMap);\n    },\n    voidClass: function voidClass() {\n      return this.rateDisabled ? this.classMap.disabledVoidClass : this.classMap.voidClass;\n    },\n    activeClass: function activeClass() {\n      return this.getValueFromMap(this.currentValue, this.classMap);\n    },\n    colorMap: function colorMap() {\n      return {\n        lowColor: this.colors[0],\n        mediumColor: this.colors[1],\n        highColor: this.colors[2],\n        voidColor: this.voidColor,\n        disabledVoidColor: this.disabledVoidColor\n      };\n    },\n    activeColor: function activeColor() {\n      return this.getValueFromMap(this.currentValue, this.colorMap);\n    },\n    classes: function classes() {\n      var result = [];\n      var i = 0;\n      var threshold = this.currentValue;\n      if (this.allowHalf && this.currentValue !== Math.floor(this.currentValue)) {\n        threshold--;\n      }\n      for (; i < threshold; i++) {\n        result.push(this.activeClass);\n      }\n      for (; i < this.max; i++) {\n        result.push(this.voidClass);\n      }\n      return result;\n    },\n    classMap: function classMap() {\n      return {\n        lowClass: this.iconClasses[0],\n        mediumClass: this.iconClasses[1],\n        highClass: this.iconClasses[2],\n        voidClass: this.voidIconClass,\n        disabledVoidClass: this.disabledVoidIconClass\n      };\n    },\n    rateDisabled: function rateDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    }\n  },\n\n  watch: {\n    value: function value(val) {\n      this.currentValue = val;\n      this.pointerAtLeftHalf = this.value !== Math.floor(this.value);\n    }\n  },\n\n  methods: {\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'text-template': 'text-template is renamed to score-template.'\n        }\n      };\n    },\n    getValueFromMap: function getValueFromMap(value, map) {\n      var result = '';\n      if (value <= this.lowThreshold) {\n        result = map.lowColor || map.lowClass;\n      } else if (value >= this.highThreshold) {\n        result = map.highColor || map.highClass;\n      } else {\n        result = map.mediumColor || map.mediumClass;\n      }\n      return result;\n    },\n    showDecimalIcon: function showDecimalIcon(item) {\n      var showWhenDisabled = this.rateDisabled && this.valueDecimal > 0 && item - 1 < this.value && item > this.value;\n      /* istanbul ignore next */\n      var showWhenAllowHalf = this.allowHalf && this.pointerAtLeftHalf && item - 0.5 <= this.currentValue && item > this.currentValue;\n      return showWhenDisabled || showWhenAllowHalf;\n    },\n    getIconStyle: function getIconStyle(item) {\n      var voidColor = this.rateDisabled ? this.colorMap.disabledVoidColor : this.colorMap.voidColor;\n      return {\n        color: item <= this.currentValue ? this.activeColor : voidColor\n      };\n    },\n    selectValue: function selectValue(value) {\n      if (this.rateDisabled) {\n        return;\n      }\n      if (this.allowHalf && this.pointerAtLeftHalf) {\n        this.$emit('input', this.currentValue);\n        this.$emit('change', this.currentValue);\n      } else {\n        this.$emit('input', value);\n        this.$emit('change', value);\n      }\n    },\n    handleKey: function handleKey(e) {\n      if (this.rateDisabled) {\n        return;\n      }\n      var currentValue = this.currentValue;\n      var keyCode = e.keyCode;\n      if (keyCode === 38 || keyCode === 39) {\n        // left / down\n        if (this.allowHalf) {\n          currentValue += 0.5;\n        } else {\n          currentValue += 1;\n        }\n        e.stopPropagation();\n        e.preventDefault();\n      } else if (keyCode === 37 || keyCode === 40) {\n        if (this.allowHalf) {\n          currentValue -= 0.5;\n        } else {\n          currentValue -= 1;\n        }\n        e.stopPropagation();\n        e.preventDefault();\n      }\n      currentValue = currentValue < 0 ? 0 : currentValue;\n      currentValue = currentValue > this.max ? this.max : currentValue;\n\n      this.$emit('input', currentValue);\n      this.$emit('change', currentValue);\n    },\n    setCurrentValue: function setCurrentValue(value, event) {\n      if (this.rateDisabled) {\n        return;\n      }\n      /* istanbul ignore if */\n      if (this.allowHalf) {\n        var target = event.target;\n        if ((0, _dom.hasClass)(target, 'el-rate__item')) {\n          target = target.querySelector('.el-rate__icon');\n        }\n        if ((0, _dom.hasClass)(target, 'el-rate__decimal')) {\n          target = target.parentNode;\n        }\n        this.pointerAtLeftHalf = event.offsetX * 2 <= target.clientWidth;\n        this.currentValue = this.pointerAtLeftHalf ? value - 0.5 : value;\n      } else {\n        this.currentValue = value;\n      }\n      this.hoverIndex = value;\n    },\n    resetCurrentValue: function resetCurrentValue() {\n      if (this.rateDisabled) {\n        return;\n      }\n      if (this.allowHalf) {\n        this.pointerAtLeftHalf = this.value !== Math.floor(this.value);\n      }\n      this.currentValue = this.value;\n      this.hoverIndex = -1;\n    }\n  },\n\n  created: function created() {\n    if (!this.value) {\n      this.$emit('input', 0);\n    }\n  }\n};\n\n/***/ }),\n/* 325 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-rate\",attrs:{\"role\":\"slider\",\"aria-valuenow\":_vm.currentValue,\"aria-valuetext\":_vm.text,\"aria-valuemin\":\"0\",\"aria-valuemax\":_vm.max,\"tabindex\":\"0\"},on:{\"keydown\":_vm.handleKey}},[_vm._l((_vm.max),function(item,key){return _c('span',{key:key,staticClass:\"el-rate__item\",style:({ cursor: _vm.rateDisabled ? 'auto' : 'pointer' }),on:{\"mousemove\":function($event){_vm.setCurrentValue(item, $event)},\"mouseleave\":_vm.resetCurrentValue,\"click\":function($event){_vm.selectValue(item)}}},[_c('i',{staticClass:\"el-rate__icon\",class:[_vm.classes[item - 1], { 'hover': _vm.hoverIndex === item }],style:(_vm.getIconStyle(item))},[(_vm.showDecimalIcon(item))?_c('i',{staticClass:\"el-rate__decimal\",class:_vm.decimalIconClass,style:(_vm.decimalStyle)}):_vm._e()])])}),(_vm.showText || _vm.showScore)?_c('span',{staticClass:\"el-rate__text\",style:({ color: _vm.textColor })},[_vm._v(_vm._s(_vm.text))]):_vm._e()],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 326 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _steps = __webpack_require__(327);\n\nvar _steps2 = _interopRequireDefault(_steps);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_steps2.default.install = function (Vue) {\n  Vue.component(_steps2.default.name, _steps2.default);\n};\n\nexports.default = _steps2.default;\n\n/***/ }),\n/* 327 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_steps_vue__ = __webpack_require__(328);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_steps_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_steps_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_42c48743_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_steps_vue__ = __webpack_require__(329);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_steps_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_42c48743_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_steps_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElSteps',\n\n  mixins: [_migrating2.default],\n\n  props: {\n    space: [Number, String],\n    active: Number,\n    direction: {\n      type: String,\n      default: 'horizontal'\n    },\n    alignCenter: Boolean,\n    simple: Boolean,\n    finishStatus: {\n      type: String,\n      default: 'finish'\n    },\n    processStatus: {\n      type: String,\n      default: 'process'\n    }\n  },\n\n  data: function data() {\n    return {\n      steps: [],\n      stepOffset: 0\n    };\n  },\n\n\n  methods: {\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'center': 'center is removed.'\n        }\n      };\n    }\n  },\n\n  watch: {\n    active: function active(newVal, oldVal) {\n      this.$emit('change', newVal, oldVal);\n    },\n    steps: function steps(_steps) {\n      _steps.forEach(function (child, index) {\n        child.index = index;\n      });\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 329 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-steps\",class:[\n     !_vm.simple && 'el-steps--' + _vm.direction,\n     _vm.simple && 'el-steps--simple'\n   ]},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 330 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _step = __webpack_require__(331);\n\nvar _step2 = _interopRequireDefault(_step);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_step2.default.install = function (Vue) {\n  Vue.component(_step2.default.name, _step2.default);\n};\n\nexports.default = _step2.default;\n\n/***/ }),\n/* 331 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_step_vue__ = __webpack_require__(332);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_step_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_step_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6521d5e0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_step_vue__ = __webpack_require__(333);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_step_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6521d5e0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_step_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 332 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElStep',\n\n  props: {\n    title: String,\n    icon: String,\n    description: String,\n    status: String\n  },\n\n  data: function data() {\n    return {\n      index: -1,\n      lineStyle: {},\n      internalStatus: ''\n    };\n  },\n  beforeCreate: function beforeCreate() {\n    this.$parent.steps.push(this);\n  },\n  beforeDestroy: function beforeDestroy() {\n    var steps = this.$parent.steps;\n    var index = steps.indexOf(this);\n    if (index >= 0) {\n      steps.splice(index, 1);\n    }\n  },\n\n\n  computed: {\n    currentStatus: function currentStatus() {\n      return this.status || this.internalStatus;\n    },\n    prevStatus: function prevStatus() {\n      var prevStep = this.$parent.steps[this.index - 1];\n      return prevStep ? prevStep.currentStatus : 'wait';\n    },\n    isCenter: function isCenter() {\n      return this.$parent.alignCenter;\n    },\n    isVertical: function isVertical() {\n      return this.$parent.direction === 'vertical';\n    },\n    isSimple: function isSimple() {\n      return this.$parent.simple;\n    },\n    isLast: function isLast() {\n      var parent = this.$parent;\n      return parent.steps[parent.steps.length - 1] === this;\n    },\n    stepsCount: function stepsCount() {\n      return this.$parent.steps.length;\n    },\n    space: function space() {\n      var isSimple = this.isSimple,\n          space = this.$parent.space;\n\n      return isSimple ? '' : space;\n    },\n\n    style: function style() {\n      var style = {};\n      var parent = this.$parent;\n      var len = parent.steps.length;\n\n      var space = typeof this.space === 'number' ? this.space + 'px' : this.space ? this.space : 100 / (len - (this.isCenter ? 0 : 1)) + '%';\n      style.flexBasis = space;\n      if (this.isVertical) return style;\n      if (this.isLast) {\n        style.maxWidth = 100 / this.stepsCount + '%';\n      } else {\n        style.marginRight = -this.$parent.stepOffset + 'px';\n      }\n\n      return style;\n    }\n  },\n\n  methods: {\n    updateStatus: function updateStatus(val) {\n      var prevChild = this.$parent.$children[this.index - 1];\n\n      if (val > this.index) {\n        this.internalStatus = this.$parent.finishStatus;\n      } else if (val === this.index && this.prevStatus !== 'error') {\n        this.internalStatus = this.$parent.processStatus;\n      } else {\n        this.internalStatus = 'wait';\n      }\n\n      if (prevChild) prevChild.calcProgress(this.internalStatus);\n    },\n    calcProgress: function calcProgress(status) {\n      var step = 100;\n      var style = {};\n\n      style.transitionDelay = 150 * this.index + 'ms';\n      if (status === this.$parent.processStatus) {\n        step = this.currentStatus !== 'error' ? 0 : 0;\n      } else if (status === 'wait') {\n        step = 0;\n        style.transitionDelay = -150 * this.index + 'ms';\n      }\n\n      style.borderWidth = step ? '1px' : 0;\n      this.$parent.direction === 'vertical' ? style.height = step + '%' : style.width = step + '%';\n\n      this.lineStyle = style;\n    }\n  },\n\n  mounted: function mounted() {\n    var _this = this;\n\n    var unwatch = this.$watch('index', function (val) {\n      _this.$watch('$parent.active', _this.updateStatus, { immediate: true });\n      unwatch();\n    });\n  }\n};\n\n/***/ }),\n/* 333 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-step\",class:[\n    !_vm.isSimple && (\"is-\" + (_vm.$parent.direction)),\n    _vm.isSimple && 'is-simple',\n    _vm.isLast && !_vm.space && !_vm.isCenter && 'is-flex',\n    _vm.isCenter && !_vm.isVertical && !_vm.isSimple && 'is-center'\n   ],style:(_vm.style)},[_c('div',{staticClass:\"el-step__head\",class:(\"is-\" + _vm.currentStatus)},[_c('div',{staticClass:\"el-step__line\",style:(_vm.isLast ? '' : { marginRight: _vm.$parent.stepOffset + 'px' })},[_c('i',{staticClass:\"el-step__line-inner\",style:(_vm.lineStyle)})]),_c('div',{staticClass:\"el-step__icon\",class:(\"is-\" + (_vm.icon ? 'icon' : 'text'))},[(_vm.currentStatus !== 'success' && _vm.currentStatus !== 'error')?_vm._t(\"icon\",[(_vm.icon)?_c('i',{staticClass:\"el-step__icon-inner\",class:[_vm.icon]}):_vm._e(),(!_vm.icon && !_vm.isSimple)?_c('div',{staticClass:\"el-step__icon-inner\"},[_vm._v(_vm._s(_vm.index + 1))]):_vm._e()]):_c('i',{staticClass:\"el-step__icon-inner is-status\",class:['el-icon-' + (_vm.currentStatus === 'success' ? 'check' : 'close')]})],2)]),_c('div',{staticClass:\"el-step__main\"},[_c('div',{ref:\"title\",staticClass:\"el-step__title\",class:['is-' + _vm.currentStatus]},[_vm._t(\"title\",[_vm._v(_vm._s(_vm.title))])],2),(_vm.isSimple)?_c('div',{staticClass:\"el-step__arrow\"}):_c('div',{staticClass:\"el-step__description\",class:['is-' + _vm.currentStatus]},[_vm._t(\"description\",[_vm._v(_vm._s(_vm.description))])],2)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 334 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(335);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 335 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(336);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b46b8afc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(338);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b46b8afc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 336 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _throttle = __webpack_require__(337);\n\nvar _throttle2 = _interopRequireDefault(_throttle);\n\nvar _resizeEvent = __webpack_require__(17);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElCarousel',\n\n  props: {\n    initialIndex: {\n      type: Number,\n      default: 0\n    },\n    height: String,\n    trigger: {\n      type: String,\n      default: 'hover'\n    },\n    autoplay: {\n      type: Boolean,\n      default: true\n    },\n    interval: {\n      type: Number,\n      default: 3000\n    },\n    indicatorPosition: String,\n    indicator: {\n      type: Boolean,\n      default: true\n    },\n    arrow: {\n      type: String,\n      default: 'hover'\n    },\n    type: String\n  },\n\n  data: function data() {\n    return {\n      items: [],\n      activeIndex: -1,\n      containerWidth: 0,\n      timer: null,\n      hover: false\n    };\n  },\n\n\n  computed: {\n    hasLabel: function hasLabel() {\n      return this.items.some(function (item) {\n        return item.label.toString().length > 0;\n      });\n    }\n  },\n\n  watch: {\n    items: function items(val) {\n      if (val.length > 0) this.setActiveItem(this.initialIndex);\n    },\n    activeIndex: function activeIndex(val, oldVal) {\n      this.resetItemPosition(oldVal);\n      this.$emit('change', val, oldVal);\n    },\n    autoplay: function autoplay(val) {\n      val ? this.startTimer() : this.pauseTimer();\n    }\n  },\n\n  methods: {\n    handleMouseEnter: function handleMouseEnter() {\n      this.hover = true;\n      this.pauseTimer();\n    },\n    handleMouseLeave: function handleMouseLeave() {\n      this.hover = false;\n      this.startTimer();\n    },\n    itemInStage: function itemInStage(item, index) {\n      var length = this.items.length;\n      if (index === length - 1 && item.inStage && this.items[0].active || item.inStage && this.items[index + 1] && this.items[index + 1].active) {\n        return 'left';\n      } else if (index === 0 && item.inStage && this.items[length - 1].active || item.inStage && this.items[index - 1] && this.items[index - 1].active) {\n        return 'right';\n      }\n      return false;\n    },\n    handleButtonEnter: function handleButtonEnter(arrow) {\n      var _this = this;\n\n      this.items.forEach(function (item, index) {\n        if (arrow === _this.itemInStage(item, index)) {\n          item.hover = true;\n        }\n      });\n    },\n    handleButtonLeave: function handleButtonLeave() {\n      this.items.forEach(function (item) {\n        item.hover = false;\n      });\n    },\n    updateItems: function updateItems() {\n      this.items = this.$children.filter(function (child) {\n        return child.$options.name === 'ElCarouselItem';\n      });\n    },\n    resetItemPosition: function resetItemPosition(oldIndex) {\n      var _this2 = this;\n\n      this.items.forEach(function (item, index) {\n        item.translateItem(index, _this2.activeIndex, oldIndex);\n      });\n    },\n    playSlides: function playSlides() {\n      if (this.activeIndex < this.items.length - 1) {\n        this.activeIndex++;\n      } else {\n        this.activeIndex = 0;\n      }\n    },\n    pauseTimer: function pauseTimer() {\n      clearInterval(this.timer);\n    },\n    startTimer: function startTimer() {\n      if (this.interval <= 0 || !this.autoplay) return;\n      this.timer = setInterval(this.playSlides, this.interval);\n    },\n    setActiveItem: function setActiveItem(index) {\n      if (typeof index === 'string') {\n        var filteredItems = this.items.filter(function (item) {\n          return item.name === index;\n        });\n        if (filteredItems.length > 0) {\n          index = this.items.indexOf(filteredItems[0]);\n        }\n      }\n      index = Number(index);\n      if (isNaN(index) || index !== Math.floor(index)) {\n        \"production\" !== 'production' && console.warn('[Element Warn][Carousel]index must be an integer.');\n        return;\n      }\n      var length = this.items.length;\n      var oldIndex = this.activeIndex;\n      if (index < 0) {\n        this.activeIndex = length - 1;\n      } else if (index >= length) {\n        this.activeIndex = 0;\n      } else {\n        this.activeIndex = index;\n      }\n      if (oldIndex === this.activeIndex) {\n        this.resetItemPosition(oldIndex);\n      }\n    },\n    prev: function prev() {\n      this.setActiveItem(this.activeIndex - 1);\n    },\n    next: function next() {\n      this.setActiveItem(this.activeIndex + 1);\n    },\n    handleIndicatorClick: function handleIndicatorClick(index) {\n      this.activeIndex = index;\n    },\n    handleIndicatorHover: function handleIndicatorHover(index) {\n      if (this.trigger === 'hover' && index !== this.activeIndex) {\n        this.activeIndex = index;\n      }\n    }\n  },\n\n  created: function created() {\n    var _this3 = this;\n\n    this.throttledArrowClick = (0, _throttle2.default)(300, true, function (index) {\n      _this3.setActiveItem(index);\n    });\n    this.throttledIndicatorHover = (0, _throttle2.default)(300, function (index) {\n      _this3.handleIndicatorHover(index);\n    });\n  },\n  mounted: function mounted() {\n    var _this4 = this;\n\n    this.updateItems();\n    this.$nextTick(function () {\n      (0, _resizeEvent.addResizeListener)(_this4.$el, _this4.resetItemPosition);\n      if (_this4.initialIndex < _this4.items.length && _this4.initialIndex >= 0) {\n        _this4.activeIndex = _this4.initialIndex;\n      }\n      _this4.startTimer();\n    });\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this.$el) (0, _resizeEvent.removeResizeListener)(this.$el, this.resetItemPosition);\n  }\n};\n\n/***/ }),\n/* 337 */\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"throttle-debounce/throttle\");\n\n/***/ }),\n/* 338 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-carousel\",class:{ 'el-carousel--card': _vm.type === 'card' },on:{\"mouseenter\":function($event){$event.stopPropagation();_vm.handleMouseEnter($event)},\"mouseleave\":function($event){$event.stopPropagation();_vm.handleMouseLeave($event)}}},[_c('div',{staticClass:\"el-carousel__container\",style:({ height: _vm.height })},[_c('transition',{attrs:{\"name\":\"carousel-arrow-left\"}},[(_vm.arrow !== 'never')?_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.arrow === 'always' || _vm.hover),expression:\"arrow === 'always' || hover\"}],staticClass:\"el-carousel__arrow el-carousel__arrow--left\",attrs:{\"type\":\"button\"},on:{\"mouseenter\":function($event){_vm.handleButtonEnter('left')},\"mouseleave\":_vm.handleButtonLeave,\"click\":function($event){$event.stopPropagation();_vm.throttledArrowClick(_vm.activeIndex - 1)}}},[_c('i',{staticClass:\"el-icon-arrow-left\"})]):_vm._e()]),_c('transition',{attrs:{\"name\":\"carousel-arrow-right\"}},[(_vm.arrow !== 'never')?_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.arrow === 'always' || _vm.hover),expression:\"arrow === 'always' || hover\"}],staticClass:\"el-carousel__arrow el-carousel__arrow--right\",attrs:{\"type\":\"button\"},on:{\"mouseenter\":function($event){_vm.handleButtonEnter('right')},\"mouseleave\":_vm.handleButtonLeave,\"click\":function($event){$event.stopPropagation();_vm.throttledArrowClick(_vm.activeIndex + 1)}}},[_c('i',{staticClass:\"el-icon-arrow-right\"})]):_vm._e()]),_vm._t(\"default\")],2),(_vm.indicatorPosition !== 'none')?_c('ul',{staticClass:\"el-carousel__indicators\",class:{ 'el-carousel__indicators--labels': _vm.hasLabel, 'el-carousel__indicators--outside': _vm.indicatorPosition === 'outside' || _vm.type === 'card' }},_vm._l((_vm.items),function(item,index){return _c('li',{staticClass:\"el-carousel__indicator\",class:{ 'is-active': index === _vm.activeIndex },on:{\"mouseenter\":function($event){_vm.throttledIndicatorHover(index)},\"click\":function($event){$event.stopPropagation();_vm.handleIndicatorClick(index)}}},[_c('button',{staticClass:\"el-carousel__button\"},[(_vm.hasLabel)?_c('span',[_vm._v(_vm._s(item.label))]):_vm._e()])])})):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 339 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(340);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 340 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _resizeEvent = __webpack_require__(17);\n\nvar _scrollbarWidth = __webpack_require__(36);\n\nvar _scrollbarWidth2 = _interopRequireDefault(_scrollbarWidth);\n\nvar _util = __webpack_require__(4);\n\nvar _bar = __webpack_require__(341);\n\nvar _bar2 = _interopRequireDefault(_bar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n// reference https://github.com/noeldelgado/gemini-scrollbar/blob/master/index.js\n\nexports.default = {\n  name: 'ElScrollbar',\n\n  components: { Bar: _bar2.default },\n\n  props: {\n    native: Boolean,\n    wrapStyle: {},\n    wrapClass: {},\n    viewClass: {},\n    viewStyle: {},\n    noresize: Boolean, // 濡傛灉 container 灏哄涓嶄細鍙戠敓鍙樺寲锛屾渶濂借缃畠鍙互浼樺寲鎬ц兘\n    tag: {\n      type: String,\n      default: 'div'\n    }\n  },\n\n  data: function data() {\n    return {\n      sizeWidth: '0',\n      sizeHeight: '0',\n      moveX: 0,\n      moveY: 0\n    };\n  },\n\n\n  computed: {\n    wrap: function wrap() {\n      return this.$refs.wrap;\n    }\n  },\n\n  render: function render(h) {\n    var gutter = (0, _scrollbarWidth2.default)();\n    var style = this.wrapStyle;\n\n    if (gutter) {\n      var gutterWith = '-' + gutter + 'px';\n      var gutterStyle = 'margin-bottom: ' + gutterWith + '; margin-right: ' + gutterWith + ';';\n\n      if (Array.isArray(this.wrapStyle)) {\n        style = (0, _util.toObject)(this.wrapStyle);\n        style.marginRight = style.marginBottom = gutterWith;\n      } else if (typeof this.wrapStyle === 'string') {\n        style += gutterStyle;\n      } else {\n        style = gutterStyle;\n      }\n    }\n    var view = h(this.tag, {\n      class: ['el-scrollbar__view', this.viewClass],\n      style: this.viewStyle,\n      ref: 'resize'\n    }, this.$slots.default);\n    var wrap = h(\n      'div',\n      {\n        ref: 'wrap',\n        style: style,\n        on: {\n          'scroll': this.handleScroll\n        },\n\n        'class': [this.wrapClass, 'el-scrollbar__wrap', gutter ? '' : 'el-scrollbar__wrap--hidden-default'] },\n      [[view]]\n    );\n    var nodes = void 0;\n\n    if (!this.native) {\n      nodes = [wrap, h(\n        _bar2.default,\n        {\n          attrs: {\n            move: this.moveX,\n            size: this.sizeWidth }\n        },\n        []\n      ), h(\n        _bar2.default,\n        {\n          attrs: {\n            vertical: true,\n            move: this.moveY,\n            size: this.sizeHeight }\n        },\n        []\n      )];\n    } else {\n      nodes = [h(\n        'div',\n        {\n          ref: 'wrap',\n          'class': [this.wrapClass, 'el-scrollbar__wrap'],\n          style: style },\n        [[view]]\n      )];\n    }\n    return h('div', { class: 'el-scrollbar' }, nodes);\n  },\n\n\n  methods: {\n    handleScroll: function handleScroll() {\n      var wrap = this.wrap;\n\n      this.moveY = wrap.scrollTop * 100 / wrap.clientHeight;\n      this.moveX = wrap.scrollLeft * 100 / wrap.clientWidth;\n    },\n    update: function update() {\n      var heightPercentage = void 0,\n          widthPercentage = void 0;\n      var wrap = this.wrap;\n      if (!wrap) return;\n\n      heightPercentage = wrap.clientHeight * 100 / wrap.scrollHeight;\n      widthPercentage = wrap.clientWidth * 100 / wrap.scrollWidth;\n\n      this.sizeHeight = heightPercentage < 100 ? heightPercentage + '%' : '';\n      this.sizeWidth = widthPercentage < 100 ? widthPercentage + '%' : '';\n    }\n  },\n\n  mounted: function mounted() {\n    if (this.native) return;\n    this.$nextTick(this.update);\n    !this.noresize && (0, _resizeEvent.addResizeListener)(this.$refs.resize, this.update);\n  },\n  beforeDestroy: function beforeDestroy() {\n    if (this.native) return;\n    !this.noresize && (0, _resizeEvent.removeResizeListener)(this.$refs.resize, this.update);\n  }\n};\n\n/***/ }),\n/* 341 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _dom = __webpack_require__(2);\n\nvar _util = __webpack_require__(342);\n\n/* istanbul ignore next */\nexports.default = {\n  name: 'Bar',\n\n  props: {\n    vertical: Boolean,\n    size: String,\n    move: Number\n  },\n\n  computed: {\n    bar: function bar() {\n      return _util.BAR_MAP[this.vertical ? 'vertical' : 'horizontal'];\n    },\n    wrap: function wrap() {\n      return this.$parent.wrap;\n    }\n  },\n\n  render: function render(h) {\n    var size = this.size,\n        move = this.move,\n        bar = this.bar;\n\n\n    return h(\n      'div',\n      {\n        'class': ['el-scrollbar__bar', 'is-' + bar.key],\n        on: {\n          'mousedown': this.clickTrackHandler\n        }\n      },\n      [h(\n        'div',\n        {\n          ref: 'thumb',\n          'class': 'el-scrollbar__thumb',\n          on: {\n            'mousedown': this.clickThumbHandler\n          },\n\n          style: (0, _util.renderThumbStyle)({ size: size, move: move, bar: bar }) },\n        []\n      )]\n    );\n  },\n\n\n  methods: {\n    clickThumbHandler: function clickThumbHandler(e) {\n      this.startDrag(e);\n      this[this.bar.axis] = e.currentTarget[this.bar.offset] - (e[this.bar.client] - e.currentTarget.getBoundingClientRect()[this.bar.direction]);\n    },\n    clickTrackHandler: function clickTrackHandler(e) {\n      var offset = Math.abs(e.target.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]);\n      var thumbHalf = this.$refs.thumb[this.bar.offset] / 2;\n      var thumbPositionPercentage = (offset - thumbHalf) * 100 / this.$el[this.bar.offset];\n\n      this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;\n    },\n    startDrag: function startDrag(e) {\n      e.stopImmediatePropagation();\n      this.cursorDown = true;\n\n      (0, _dom.on)(document, 'mousemove', this.mouseMoveDocumentHandler);\n      (0, _dom.on)(document, 'mouseup', this.mouseUpDocumentHandler);\n      document.onselectstart = function () {\n        return false;\n      };\n    },\n    mouseMoveDocumentHandler: function mouseMoveDocumentHandler(e) {\n      if (this.cursorDown === false) return;\n      var prevPage = this[this.bar.axis];\n\n      if (!prevPage) return;\n\n      var offset = (this.$el.getBoundingClientRect()[this.bar.direction] - e[this.bar.client]) * -1;\n      var thumbClickPosition = this.$refs.thumb[this.bar.offset] - prevPage;\n      var thumbPositionPercentage = (offset - thumbClickPosition) * 100 / this.$el[this.bar.offset];\n\n      this.wrap[this.bar.scroll] = thumbPositionPercentage * this.wrap[this.bar.scrollSize] / 100;\n    },\n    mouseUpDocumentHandler: function mouseUpDocumentHandler(e) {\n      this.cursorDown = false;\n      this[this.bar.axis] = 0;\n      (0, _dom.off)(document, 'mousemove', this.mouseMoveDocumentHandler);\n      document.onselectstart = null;\n    }\n  },\n\n  destroyed: function destroyed() {\n    (0, _dom.off)(document, 'mouseup', this.mouseUpDocumentHandler);\n  }\n};\n\n/***/ }),\n/* 342 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\nexports.renderThumbStyle = renderThumbStyle;\nvar BAR_MAP = exports.BAR_MAP = {\n  vertical: {\n    offset: 'offsetHeight',\n    scroll: 'scrollTop',\n    scrollSize: 'scrollHeight',\n    size: 'height',\n    key: 'vertical',\n    axis: 'Y',\n    client: 'clientY',\n    direction: 'top'\n  },\n  horizontal: {\n    offset: 'offsetWidth',\n    scroll: 'scrollLeft',\n    scrollSize: 'scrollWidth',\n    size: 'width',\n    key: 'horizontal',\n    axis: 'X',\n    client: 'clientX',\n    direction: 'left'\n  }\n};\n\nfunction renderThumbStyle(_ref) {\n  var move = _ref.move,\n      size = _ref.size,\n      bar = _ref.bar;\n\n  var style = {};\n  var translate = 'translate' + bar.axis + '(' + move + '%)';\n\n  style[bar.size] = size;\n  style.transform = translate;\n  style.msTransform = translate;\n  style.webkitTransform = translate;\n\n  return style;\n};\n\n/***/ }),\n/* 343 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _item = __webpack_require__(344);\n\nvar _item2 = _interopRequireDefault(_item);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_item2.default.install = function (Vue) {\n  Vue.component(_item2.default.name, _item2.default);\n};\n\nexports.default = _item2.default;\n\n/***/ }),\n/* 344 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_item_vue__ = __webpack_require__(345);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_item_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_270b1a48_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_item_vue__ = __webpack_require__(346);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_item_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_270b1a48_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_item_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 345 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar CARD_SCALE = 0.83;\nexports.default = {\n  name: 'ElCarouselItem',\n\n  props: {\n    name: String,\n    label: {\n      type: [String, Number],\n      default: ''\n    }\n  },\n\n  data: function data() {\n    return {\n      hover: false,\n      translate: 0,\n      scale: 1,\n      active: false,\n      ready: false,\n      inStage: false,\n      animating: false\n    };\n  },\n\n\n  methods: {\n    processIndex: function processIndex(index, activeIndex, length) {\n      if (activeIndex === 0 && index === length - 1) {\n        return -1;\n      } else if (activeIndex === length - 1 && index === 0) {\n        return length;\n      } else if (index < activeIndex - 1 && activeIndex - index >= length / 2) {\n        return length + 1;\n      } else if (index > activeIndex + 1 && index - activeIndex >= length / 2) {\n        return -2;\n      }\n      return index;\n    },\n    calculateTranslate: function calculateTranslate(index, activeIndex, parentWidth) {\n      if (this.inStage) {\n        return parentWidth * ((2 - CARD_SCALE) * (index - activeIndex) + 1) / 4;\n      } else if (index < activeIndex) {\n        return -(1 + CARD_SCALE) * parentWidth / 4;\n      } else {\n        return (3 + CARD_SCALE) * parentWidth / 4;\n      }\n    },\n    translateItem: function translateItem(index, activeIndex, oldIndex) {\n      var parentWidth = this.$parent.$el.offsetWidth;\n      var length = this.$parent.items.length;\n      if (this.$parent.type !== 'card' && oldIndex !== undefined) {\n        this.animating = index === activeIndex || index === oldIndex;\n      }\n      if (index !== activeIndex && length > 2) {\n        index = this.processIndex(index, activeIndex, length);\n      }\n      if (this.$parent.type === 'card') {\n        this.inStage = Math.round(Math.abs(index - activeIndex)) <= 1;\n        this.active = index === activeIndex;\n        this.translate = this.calculateTranslate(index, activeIndex, parentWidth);\n        this.scale = this.active ? 1 : CARD_SCALE;\n      } else {\n        this.active = index === activeIndex;\n        this.translate = parentWidth * (index - activeIndex);\n      }\n      this.ready = true;\n    },\n    handleItemClick: function handleItemClick() {\n      var parent = this.$parent;\n      if (parent && parent.type === 'card') {\n        var index = parent.items.indexOf(this);\n        parent.setActiveItem(index);\n      }\n    }\n  },\n\n  created: function created() {\n    this.$parent && this.$parent.updateItems();\n  },\n  destroyed: function destroyed() {\n    this.$parent && this.$parent.updateItems();\n  }\n};\n\n/***/ }),\n/* 346 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.ready),expression:\"ready\"}],staticClass:\"el-carousel__item\",class:{\n    'is-active': _vm.active,\n    'el-carousel__item--card': _vm.$parent.type === 'card',\n    'is-in-stage': _vm.inStage,\n    'is-hover': _vm.hover,\n    'is-animating': _vm.animating\n  },style:({\n    msTransform: (\"translateX(\" + _vm.translate + \"px) scale(\" + _vm.scale + \")\"),\n    webkitTransform: (\"translateX(\" + _vm.translate + \"px) scale(\" + _vm.scale + \")\"),\n    transform: (\"translateX(\" + _vm.translate + \"px) scale(\" + _vm.scale + \")\")\n  }),on:{\"click\":_vm.handleItemClick}},[(_vm.$parent.type === 'card')?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.active),expression:\"!active\"}],staticClass:\"el-carousel__mask\"}):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 347 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _collapse = __webpack_require__(348);\n\nvar _collapse2 = _interopRequireDefault(_collapse);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_collapse2.default.install = function (Vue) {\n  Vue.component(_collapse2.default.name, _collapse2.default);\n};\n\nexports.default = _collapse2.default;\n\n/***/ }),\n/* 348 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_vue__ = __webpack_require__(349);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_ebb8016e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_collapse_vue__ = __webpack_require__(350);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_ebb8016e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_collapse_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 349 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElCollapse',\n\n  componentName: 'ElCollapse',\n\n  props: {\n    accordion: Boolean,\n    value: {\n      type: [Array, String, Number],\n      default: function _default() {\n        return [];\n      }\n    }\n  },\n\n  data: function data() {\n    return {\n      activeNames: [].concat(this.value)\n    };\n  },\n  provide: function provide() {\n    return {\n      collapse: this\n    };\n  },\n\n\n  watch: {\n    value: function value(_value) {\n      this.activeNames = [].concat(_value);\n    }\n  },\n\n  methods: {\n    setActiveNames: function setActiveNames(activeNames) {\n      activeNames = [].concat(activeNames);\n      var value = this.accordion ? activeNames[0] : activeNames;\n      this.activeNames = activeNames;\n      this.$emit('input', value);\n      this.$emit('change', value);\n    },\n    handleItemClick: function handleItemClick(item) {\n      if (this.accordion) {\n        this.setActiveNames((this.activeNames[0] || this.activeNames[0] === 0) && this.activeNames[0] === item.name ? '' : item.name);\n      } else {\n        var activeNames = this.activeNames.slice(0);\n        var index = activeNames.indexOf(item.name);\n\n        if (index > -1) {\n          activeNames.splice(index, 1);\n        } else {\n          activeNames.push(item.name);\n        }\n        this.setActiveNames(activeNames);\n      }\n    }\n  },\n\n  created: function created() {\n    this.$on('item-click', this.handleItemClick);\n  }\n};\n\n/***/ }),\n/* 350 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-collapse\",attrs:{\"role\":\"tablist\",\"aria-multiselectable\":\"true\"}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 351 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _collapseItem = __webpack_require__(352);\n\nvar _collapseItem2 = _interopRequireDefault(_collapseItem);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_collapseItem2.default.install = function (Vue) {\n  Vue.component(_collapseItem2.default.name, _collapseItem2.default);\n};\n\nexports.default = _collapseItem2.default;\n\n/***/ }),\n/* 352 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_item_vue__ = __webpack_require__(353);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_item_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_item_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2adc2d72_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_collapse_item_vue__ = __webpack_require__(354);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_collapse_item_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2adc2d72_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_collapse_item_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 353 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _collapseTransition = __webpack_require__(20);\n\nvar _collapseTransition2 = _interopRequireDefault(_collapseTransition);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElCollapseItem',\n\n  componentName: 'ElCollapseItem',\n\n  mixins: [_emitter2.default],\n\n  components: { ElCollapseTransition: _collapseTransition2.default },\n\n  data: function data() {\n    return {\n      contentWrapStyle: {\n        height: 'auto',\n        display: 'block'\n      },\n      contentHeight: 0,\n      focusing: false,\n      isClick: false\n    };\n  },\n\n\n  inject: ['collapse'],\n\n  props: {\n    title: String,\n    name: {\n      type: [String, Number],\n      default: function _default() {\n        return this._uid;\n      }\n    }\n  },\n\n  computed: {\n    isActive: function isActive() {\n      return this.collapse.activeNames.indexOf(this.name) > -1;\n    },\n    id: function id() {\n      return (0, _util.generateId)();\n    }\n  },\n\n  methods: {\n    handleFocus: function handleFocus() {\n      var _this = this;\n\n      setTimeout(function () {\n        if (!_this.isClick) {\n          _this.focusing = true;\n        } else {\n          _this.isClick = false;\n        }\n      }, 50);\n    },\n    handleHeaderClick: function handleHeaderClick() {\n      this.dispatch('ElCollapse', 'item-click', this);\n      this.focusing = false;\n      this.isClick = true;\n    },\n    handleEnterClick: function handleEnterClick() {\n      this.dispatch('ElCollapse', 'item-click', this);\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 354 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-collapse-item\",class:{'is-active': _vm.isActive}},[_c('div',{attrs:{\"role\":\"tab\",\"aria-expanded\":_vm.isActive,\"aria-controls\":(\"el-collapse-content-\" + _vm.id),\"aria-describedby\":(\"el-collapse-content-\" + _vm.id)}},[_c('div',{staticClass:\"el-collapse-item__header\",class:{\n        'focusing': _vm.focusing,\n        'is-active': _vm.isActive\n      },attrs:{\"role\":\"button\",\"id\":(\"el-collapse-head-\" + _vm.id),\"tabindex\":\"0\"},on:{\"click\":_vm.handleHeaderClick,\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"space\",32,$event.key)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }$event.stopPropagation();_vm.handleEnterClick($event)},\"focus\":_vm.handleFocus,\"blur\":function($event){_vm.focusing = false}}},[_c('i',{staticClass:\"el-collapse-item__arrow el-icon-arrow-right\",class:{'is-active': _vm.isActive}}),_vm._t(\"title\",[_vm._v(_vm._s(_vm.title))])],2)]),_c('el-collapse-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isActive),expression:\"isActive\"}],staticClass:\"el-collapse-item__wrap\",attrs:{\"role\":\"tabpanel\",\"aria-hidden\":!_vm.isActive,\"aria-labelledby\":(\"el-collapse-head-\" + _vm.id),\"id\":(\"el-collapse-content-\" + _vm.id)}},[_c('div',{staticClass:\"el-collapse-item__content\"},[_vm._t(\"default\")],2)])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 355 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(356);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 356 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(357);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02ff6464_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(360);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02ff6464_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 357 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _vue = __webpack_require__(5);\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _menu = __webpack_require__(358);\n\nvar _menu2 = _interopRequireDefault(_menu);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _locale3 = __webpack_require__(16);\n\nvar _debounce = __webpack_require__(13);\n\nvar _debounce2 = _interopRequireDefault(_debounce);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nvar popperMixin = {\n  props: {\n    placement: {\n      type: String,\n      default: 'bottom-start'\n    },\n    appendToBody: _vuePopper2.default.props.appendToBody,\n    arrowOffset: _vuePopper2.default.props.arrowOffset,\n    offset: _vuePopper2.default.props.offset,\n    boundariesPadding: _vuePopper2.default.props.boundariesPadding,\n    popperOptions: _vuePopper2.default.props.popperOptions\n  },\n  methods: _vuePopper2.default.methods,\n  data: _vuePopper2.default.data,\n  beforeDestroy: _vuePopper2.default.beforeDestroy\n};\n\nexports.default = {\n  name: 'ElCascader',\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  mixins: [popperMixin, _emitter2.default, _locale2.default],\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  components: {\n    ElInput: _input2.default\n  },\n\n  props: {\n    options: {\n      type: Array,\n      required: true\n    },\n    props: {\n      type: Object,\n      default: function _default() {\n        return {\n          children: 'children',\n          label: 'label',\n          value: 'value',\n          disabled: 'disabled'\n        };\n      }\n    },\n    value: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    separator: {\n      type: String,\n      default: '/'\n    },\n    placeholder: {\n      type: String,\n      default: function _default() {\n        return (0, _locale3.t)('el.cascader.placeholder');\n      }\n    },\n    disabled: Boolean,\n    clearable: {\n      type: Boolean,\n      default: false\n    },\n    changeOnSelect: Boolean,\n    popperClass: String,\n    expandTrigger: {\n      type: String,\n      default: 'click'\n    },\n    filterable: Boolean,\n    size: String,\n    showAllLevels: {\n      type: Boolean,\n      default: true\n    },\n    debounce: {\n      type: Number,\n      default: 300\n    },\n    beforeFilter: {\n      type: Function,\n      default: function _default() {\n        return function () {};\n      }\n    },\n    hoverThreshold: {\n      type: Number,\n      default: 500\n    }\n  },\n\n  data: function data() {\n    return {\n      currentValue: this.value || [],\n      menu: null,\n      debouncedInputChange: function debouncedInputChange() {},\n\n      menuVisible: false,\n      inputHover: false,\n      inputValue: '',\n      flatOptions: null,\n      id: (0, _util.generateId)(),\n      needFocus: true,\n      isOnComposition: false\n    };\n  },\n\n\n  computed: {\n    labelKey: function labelKey() {\n      return this.props.label || 'label';\n    },\n    valueKey: function valueKey() {\n      return this.props.value || 'value';\n    },\n    childrenKey: function childrenKey() {\n      return this.props.children || 'children';\n    },\n    disabledKey: function disabledKey() {\n      return this.props.disabled || 'disabled';\n    },\n    currentLabels: function currentLabels() {\n      var _this = this;\n\n      var options = this.options;\n      var labels = [];\n      this.currentValue.forEach(function (value) {\n        var targetOption = options && options.filter(function (option) {\n          return option[_this.valueKey] === value;\n        })[0];\n        if (targetOption) {\n          labels.push(targetOption[_this.labelKey]);\n          options = targetOption[_this.childrenKey];\n        }\n      });\n      return labels;\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    cascaderSize: function cascaderSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    cascaderDisabled: function cascaderDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    },\n    readonly: function readonly() {\n      var isIE = !this.$isServer && !isNaN(Number(document.documentMode));\n      return !this.filterable || !isIE && !this.menuVisible;\n    }\n  },\n\n  watch: {\n    menuVisible: function menuVisible(value) {\n      this.$refs.input.$refs.input.setAttribute('aria-expanded', value);\n      value ? this.showMenu() : this.hideMenu();\n    },\n    value: function value(_value) {\n      this.currentValue = _value;\n    },\n    currentValue: function currentValue(value) {\n      this.dispatch('ElFormItem', 'el.form.change', [value]);\n    },\n    currentLabels: function currentLabels(value) {\n      var inputLabel = this.showAllLevels ? value.join('/') : value[value.length - 1];\n      this.$refs.input.$refs.input.setAttribute('value', inputLabel);\n    },\n\n    options: {\n      deep: true,\n      handler: function handler(value) {\n        if (!this.menu) {\n          this.initMenu();\n        }\n        this.flatOptions = this.flattenOptions(this.options);\n        this.menu.options = value;\n      }\n    }\n  },\n\n  methods: {\n    initMenu: function initMenu() {\n      this.menu = new _vue2.default(_menu2.default).$mount();\n      this.menu.options = this.options;\n      this.menu.props = this.props;\n      this.menu.expandTrigger = this.expandTrigger;\n      this.menu.changeOnSelect = this.changeOnSelect;\n      this.menu.popperClass = this.popperClass;\n      this.menu.hoverThreshold = this.hoverThreshold;\n      this.popperElm = this.menu.$el;\n      this.menu.$refs.menus[0].setAttribute('id', 'cascader-menu-' + this.id);\n      this.menu.$on('pick', this.handlePick);\n      this.menu.$on('activeItemChange', this.handleActiveItemChange);\n      this.menu.$on('menuLeave', this.doDestroy);\n      this.menu.$on('closeInside', this.handleClickoutside);\n    },\n    showMenu: function showMenu() {\n      var _this2 = this;\n\n      if (!this.menu) {\n        this.initMenu();\n      }\n\n      this.menu.value = this.currentValue.slice(0);\n      this.menu.visible = true;\n      this.menu.options = this.options;\n      this.$nextTick(function (_) {\n        _this2.updatePopper();\n        _this2.menu.inputWidth = _this2.$refs.input.$el.offsetWidth - 2;\n      });\n    },\n    hideMenu: function hideMenu() {\n      this.inputValue = '';\n      this.menu.visible = false;\n      if (this.needFocus) {\n        this.$refs.input.focus();\n      } else {\n        this.needFocus = true;\n      }\n    },\n    handleActiveItemChange: function handleActiveItemChange(value) {\n      var _this3 = this;\n\n      this.$nextTick(function (_) {\n        _this3.updatePopper();\n      });\n      this.$emit('active-item-change', value);\n    },\n    handleKeydown: function handleKeydown(e) {\n      var _this4 = this;\n\n      var keyCode = e.keyCode;\n      if (keyCode === 13) {\n        this.handleClick();\n      } else if (keyCode === 40) {\n        // down\n        this.menuVisible = true; // 鎵撳紑\n        setTimeout(function () {\n          var firstMenu = _this4.popperElm.querySelectorAll('.el-cascader-menu')[0];\n          firstMenu.querySelectorAll(\"[tabindex='-1']\")[0].focus();\n        });\n        e.stopPropagation();\n        e.preventDefault();\n      } else if (keyCode === 27 || keyCode === 9) {\n        // esc  tab\n        this.inputValue = '';\n        if (this.menu) this.menu.visible = false;\n      }\n    },\n    handlePick: function handlePick(value) {\n      var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n      this.currentValue = value;\n      this.$emit('input', value);\n      this.$emit('change', value);\n\n      if (close) {\n        this.menuVisible = false;\n      } else {\n        this.$nextTick(this.updatePopper);\n      }\n    },\n    handleInputChange: function handleInputChange(value) {\n      var _this5 = this;\n\n      if (!this.menuVisible) return;\n      var flatOptions = this.flatOptions;\n\n      if (!value) {\n        this.menu.options = this.options;\n        this.$nextTick(this.updatePopper);\n        return;\n      }\n\n      var filteredFlatOptions = flatOptions.filter(function (optionsStack) {\n        return optionsStack.some(function (option) {\n          return new RegExp((0, _util.escapeRegexpString)(value), 'i').test(option[_this5.labelKey]);\n        });\n      });\n\n      if (filteredFlatOptions.length > 0) {\n        filteredFlatOptions = filteredFlatOptions.map(function (optionStack) {\n          return {\n            __IS__FLAT__OPTIONS: true,\n            value: optionStack.map(function (item) {\n              return item[_this5.valueKey];\n            }),\n            label: _this5.renderFilteredOptionLabel(value, optionStack),\n            disabled: optionStack.some(function (item) {\n              return item[_this5.disabledKey];\n            })\n          };\n        });\n      } else {\n        filteredFlatOptions = [{\n          __IS__FLAT__OPTIONS: true,\n          label: this.t('el.cascader.noMatch'),\n          value: '',\n          disabled: true\n        }];\n      }\n      this.menu.options = filteredFlatOptions;\n      this.$nextTick(this.updatePopper);\n    },\n    renderFilteredOptionLabel: function renderFilteredOptionLabel(inputValue, optionsStack) {\n      var _this6 = this;\n\n      return optionsStack.map(function (option, index) {\n        var label = option[_this6.labelKey];\n        var keywordIndex = label.toLowerCase().indexOf(inputValue.toLowerCase());\n        var labelPart = label.slice(keywordIndex, inputValue.length + keywordIndex);\n        var node = keywordIndex > -1 ? _this6.highlightKeyword(label, labelPart) : label;\n        return index === 0 ? node : [' / ', node];\n      });\n    },\n    highlightKeyword: function highlightKeyword(label, keyword) {\n      var _this7 = this;\n\n      var h = this._c;\n      return label.split(keyword).map(function (node, index) {\n        return index === 0 ? node : [h('span', { class: { 'el-cascader-menu__item__keyword': true } }, [_this7._v(keyword)]), node];\n      });\n    },\n    flattenOptions: function flattenOptions(options) {\n      var _this8 = this;\n\n      var ancestor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n      var flatOptions = [];\n      options.forEach(function (option) {\n        var optionsStack = ancestor.concat(option);\n        if (!option[_this8.childrenKey]) {\n          flatOptions.push(optionsStack);\n        } else {\n          if (_this8.changeOnSelect) {\n            flatOptions.push(optionsStack);\n          }\n          flatOptions = flatOptions.concat(_this8.flattenOptions(option[_this8.childrenKey], optionsStack));\n        }\n      });\n      return flatOptions;\n    },\n    clearValue: function clearValue(ev) {\n      ev.stopPropagation();\n      this.handlePick([], true);\n    },\n    handleClickoutside: function handleClickoutside() {\n      var pickFinished = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n      if (this.menuVisible && !pickFinished) {\n        this.needFocus = false;\n      }\n      this.menuVisible = false;\n    },\n    handleClick: function handleClick() {\n      if (this.cascaderDisabled) return;\n      this.$refs.input.focus();\n      if (this.filterable) {\n        this.menuVisible = true;\n        return;\n      }\n      this.menuVisible = !this.menuVisible;\n    },\n    handleFocus: function handleFocus(event) {\n      this.$emit('focus', event);\n    },\n    handleBlur: function handleBlur(event) {\n      this.$emit('blur', event);\n    },\n    handleComposition: function handleComposition(event) {\n      this.isOnComposition = event.type !== 'compositionend';\n    }\n  },\n\n  created: function created() {\n    var _this9 = this;\n\n    this.debouncedInputChange = (0, _debounce2.default)(this.debounce, function (value) {\n      var before = _this9.beforeFilter(value);\n\n      if (before && before.then) {\n        _this9.menu.options = [{\n          __IS__FLAT__OPTIONS: true,\n          label: _this9.t('el.cascader.loading'),\n          value: '',\n          disabled: true\n        }];\n        before.then(function () {\n          _this9.$nextTick(function () {\n            _this9.handleInputChange(value);\n          });\n        });\n      } else if (before !== false) {\n        _this9.$nextTick(function () {\n          _this9.handleInputChange(value);\n        });\n      }\n    });\n  },\n  mounted: function mounted() {\n    this.flatOptions = this.flattenOptions(this.options);\n  }\n};\n\n/***/ }),\n/* 358 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue__ = __webpack_require__(359);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue__);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_menu_vue___default.a,\n  __vue_template__,\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 359 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _babelHelperVueJsxMergeProps = __webpack_require__(43);\n\nvar _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);\n\nvar _shared = __webpack_require__(24);\n\nvar _scrollIntoView = __webpack_require__(26);\n\nvar _scrollIntoView2 = _interopRequireDefault(_scrollIntoView);\n\nvar _util = __webpack_require__(4);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar copyArray = function copyArray(arr, props) {\n  if (!arr || !Array.isArray(arr) || !props) return arr;\n  var result = [];\n  var configurableProps = ['__IS__FLAT__OPTIONS', 'label', 'value', 'disabled'];\n  var childrenProp = props.children || 'children';\n  arr.forEach(function (item) {\n    var itemCopy = {};\n    configurableProps.forEach(function (prop) {\n      var name = props[prop];\n      var value = item[name];\n      if (value === undefined) {\n        name = prop;\n        value = item[name];\n      }\n      if (value !== undefined) itemCopy[name] = value;\n    });\n    if (Array.isArray(item[childrenProp])) {\n      itemCopy[childrenProp] = copyArray(item[childrenProp], props);\n    }\n    result.push(itemCopy);\n  });\n  return result;\n};\n\nexports.default = {\n  name: 'ElCascaderMenu',\n\n  data: function data() {\n    return {\n      inputWidth: 0,\n      options: [],\n      props: {},\n      visible: false,\n      activeValue: [],\n      value: [],\n      expandTrigger: 'click',\n      changeOnSelect: false,\n      popperClass: '',\n      hoverTimer: 0,\n      clicking: false,\n      id: (0, _util.generateId)()\n    };\n  },\n\n\n  watch: {\n    visible: function visible(value) {\n      if (value) {\n        this.activeValue = this.value;\n      }\n    },\n\n    value: {\n      immediate: true,\n      handler: function handler(value) {\n        this.activeValue = value;\n      }\n    }\n  },\n\n  computed: {\n    activeOptions: {\n      cache: false,\n      get: function get() {\n        var _this = this;\n\n        var activeValue = this.activeValue;\n        var configurableProps = ['label', 'value', 'children', 'disabled'];\n\n        var formatOptions = function formatOptions(options) {\n          options.forEach(function (option) {\n            if (option.__IS__FLAT__OPTIONS) return;\n            configurableProps.forEach(function (prop) {\n              var value = option[_this.props[prop] || prop];\n              if (value !== undefined) option[prop] = value;\n            });\n            if (Array.isArray(option.children)) {\n              formatOptions(option.children);\n            }\n          });\n        };\n\n        var loadActiveOptions = function loadActiveOptions(options) {\n          var activeOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n          var level = activeOptions.length;\n          activeOptions[level] = options;\n          var active = activeValue[level];\n          if ((0, _shared.isDef)(active)) {\n            options = options.filter(function (option) {\n              return option.value === active;\n            })[0];\n            if (options && options.children) {\n              loadActiveOptions(options.children, activeOptions);\n            }\n          }\n          return activeOptions;\n        };\n\n        var optionsCopy = copyArray(this.options, this.props);\n        formatOptions(optionsCopy);\n        return loadActiveOptions(optionsCopy);\n      }\n    }\n  },\n\n  methods: {\n    select: function select(item, menuIndex) {\n      if (item.__IS__FLAT__OPTIONS) {\n        this.activeValue = item.value;\n      } else if (menuIndex) {\n        this.activeValue.splice(menuIndex, this.activeValue.length - 1, item.value);\n      } else {\n        this.activeValue = [item.value];\n      }\n      this.$emit('pick', this.activeValue.slice());\n    },\n    handleMenuLeave: function handleMenuLeave() {\n      this.$emit('menuLeave');\n    },\n    activeItem: function activeItem(item, menuIndex) {\n      var len = this.activeOptions.length;\n      this.activeValue.splice(menuIndex, len, item.value);\n      this.activeOptions.splice(menuIndex + 1, len, item.children);\n      if (this.changeOnSelect) {\n        this.$emit('pick', this.activeValue.slice(), false);\n      } else {\n        this.$emit('activeItemChange', this.activeValue);\n      }\n    },\n    scrollMenu: function scrollMenu(menu) {\n      (0, _scrollIntoView2.default)(menu, menu.getElementsByClassName('is-active')[0]);\n    },\n    handleMenuEnter: function handleMenuEnter() {\n      var _this2 = this;\n\n      this.$nextTick(function () {\n        return _this2.$refs.menus.forEach(function (menu) {\n          return _this2.scrollMenu(menu);\n        });\n      });\n    }\n  },\n\n  render: function render(h) {\n    var _this3 = this;\n\n    var activeValue = this.activeValue,\n        activeOptions = this.activeOptions,\n        visible = this.visible,\n        expandTrigger = this.expandTrigger,\n        popperClass = this.popperClass,\n        hoverThreshold = this.hoverThreshold;\n\n    var itemId = null;\n    var itemIndex = 0;\n\n    var hoverMenuRefs = {};\n    var hoverMenuHandler = function hoverMenuHandler(e) {\n      var activeMenu = hoverMenuRefs.activeMenu;\n      if (!activeMenu) return;\n      var offsetX = e.offsetX;\n      var width = activeMenu.offsetWidth;\n      var height = activeMenu.offsetHeight;\n\n      if (e.target === hoverMenuRefs.activeItem) {\n        clearTimeout(_this3.hoverTimer);\n        var _hoverMenuRefs = hoverMenuRefs,\n            activeItem = _hoverMenuRefs.activeItem;\n\n        var offsetY_top = activeItem.offsetTop;\n        var offsetY_Bottom = offsetY_top + activeItem.offsetHeight;\n\n        hoverMenuRefs.hoverZone.innerHTML = '\\n          <path style=\"pointer-events: auto;\" fill=\"transparent\" d=\"M' + offsetX + ' ' + offsetY_top + ' L' + width + ' 0 V' + offsetY_top + ' Z\" />\\n          <path style=\"pointer-events: auto;\" fill=\"transparent\" d=\"M' + offsetX + ' ' + offsetY_Bottom + ' L' + width + ' ' + height + ' V' + offsetY_Bottom + ' Z\" />\\n        ';\n      } else {\n        if (!_this3.hoverTimer) {\n          _this3.hoverTimer = setTimeout(function () {\n            hoverMenuRefs.hoverZone.innerHTML = '';\n          }, hoverThreshold);\n        }\n      }\n    };\n\n    var menus = this._l(activeOptions, function (menu, menuIndex) {\n      var isFlat = false;\n      var menuId = 'menu-' + _this3.id + '-' + menuIndex;\n      var ownsId = 'menu-' + _this3.id + '-' + (menuIndex + 1);\n      var items = _this3._l(menu, function (item) {\n        var events = {\n          on: {}\n        };\n\n        if (item.__IS__FLAT__OPTIONS) isFlat = true;\n\n        if (!item.disabled) {\n          // keydown up/down/left/right/enter\n          events.on.keydown = function (ev) {\n            var keyCode = ev.keyCode;\n            if ([37, 38, 39, 40, 13, 9, 27].indexOf(keyCode) < 0) {\n              return;\n            }\n            var currentEle = ev.target;\n            var parentEle = _this3.$refs.menus[menuIndex];\n            var menuItemList = parentEle.querySelectorAll(\"[tabindex='-1']\");\n            var currentIndex = Array.prototype.indexOf.call(menuItemList, currentEle); // 褰撳墠绱㈠紩\n            var nextIndex = void 0,\n                nextMenu = void 0;\n            if ([38, 40].indexOf(keyCode) > -1) {\n              if (keyCode === 38) {\n                // up閿甛n                nextIndex = currentIndex !== 0 ? currentIndex - 1 : currentIndex;\n              } else if (keyCode === 40) {\n                // down\n                nextIndex = currentIndex !== menuItemList.length - 1 ? currentIndex + 1 : currentIndex;\n              }\n              menuItemList[nextIndex].focus();\n            } else if (keyCode === 37) {\n              // left閿甛n              if (menuIndex !== 0) {\n                var previousMenu = _this3.$refs.menus[menuIndex - 1];\n                previousMenu.querySelector('[aria-expanded=true]').focus();\n              }\n            } else if (keyCode === 39) {\n              // right\n              if (item.children) {\n                // 鏈夊瓙menu 閫夋嫨瀛恗enu鐨勭涓�涓猰enuitem\n                nextMenu = _this3.$refs.menus[menuIndex + 1];\n                nextMenu.querySelectorAll(\"[tabindex='-1']\")[0].focus();\n              }\n            } else if (keyCode === 13) {\n              if (!item.children) {\n                var id = currentEle.getAttribute('id');\n                parentEle.setAttribute('aria-activedescendant', id);\n                _this3.select(item, menuIndex);\n                _this3.$nextTick(function () {\n                  return _this3.scrollMenu(_this3.$refs.menus[menuIndex]);\n                });\n              }\n            } else if (keyCode === 9 || keyCode === 27) {\n              // esc tab\n              _this3.$emit('closeInside');\n            }\n          };\n          if (item.children) {\n            (function () {\n              var triggerEvent = {\n                click: 'click',\n                hover: 'mouseenter'\n              }[expandTrigger];\n              var triggerHandler = function triggerHandler() {\n                _this3.activeItem(item, menuIndex);\n                _this3.$nextTick(function () {\n                  // adjust self and next level\n                  _this3.scrollMenu(_this3.$refs.menus[menuIndex]);\n                  _this3.scrollMenu(_this3.$refs.menus[menuIndex + 1]);\n                });\n              };\n              events.on[triggerEvent] = triggerHandler;\n              if (triggerEvent === 'mouseenter' && _this3.changeOnSelect) {\n                events.on.click = function () {\n                  if (_this3.activeValue.indexOf(item.value) !== -1) {\n                    _this3.$emit('closeInside', true);\n                  }\n                };\n              }\n              events.on['mousedown'] = function () {\n                _this3.clicking = true;\n              };\n              events.on['focus'] = function () {\n                // focus 閫変腑\n                if (_this3.clicking) {\n                  _this3.clicking = false;\n                  return;\n                }\n                triggerHandler();\n              };\n            })();\n          } else {\n            events.on.click = function () {\n              _this3.select(item, menuIndex);\n              _this3.$nextTick(function () {\n                return _this3.scrollMenu(_this3.$refs.menus[menuIndex]);\n              });\n            };\n          }\n        }\n        if (!item.disabled && !item.children) {\n          // no children set id\n          itemId = menuId + '-' + itemIndex;\n          itemIndex++;\n        }\n        return h(\n          'li',\n          (0, _babelHelperVueJsxMergeProps2.default)([{\n            'class': {\n              'el-cascader-menu__item': true,\n              'el-cascader-menu__item--extensible': item.children,\n              'is-active': item.value === activeValue[menuIndex],\n              'is-disabled': item.disabled\n            },\n            ref: item.value === activeValue[menuIndex] ? 'activeItem' : null\n          }, events, {\n            attrs: {\n              tabindex: item.disabled ? null : -1,\n              role: 'menuitem',\n              'aria-haspopup': !!item.children,\n              'aria-expanded': item.value === activeValue[menuIndex],\n              id: itemId,\n              'aria-owns': !item.children ? null : ownsId\n            }\n          }]),\n          [item.label]\n        );\n      });\n      var menuStyle = {};\n      if (isFlat) {\n        menuStyle.minWidth = _this3.inputWidth + 'px';\n      }\n\n      var isHoveredMenu = expandTrigger === 'hover' && activeValue.length - 1 === menuIndex;\n      var hoverMenuEvent = {\n        on: {}\n      };\n\n      if (isHoveredMenu) {\n        hoverMenuEvent.on.mousemove = hoverMenuHandler;\n        menuStyle.position = 'relative';\n      }\n\n      return h(\n        'ul',\n        (0, _babelHelperVueJsxMergeProps2.default)([{\n          'class': {\n            'el-cascader-menu': true,\n            'el-cascader-menu--flexible': isFlat\n          }\n        }, hoverMenuEvent, {\n          style: menuStyle,\n          refInFor: true,\n          ref: 'menus',\n          attrs: { role: 'menu',\n            id: menuId\n          }\n        }]),\n        [items, isHoveredMenu ? h(\n          'svg',\n          {\n            ref: 'hoverZone',\n            style: {\n              position: 'absolute',\n              top: 0,\n              height: '100%',\n              width: '100%',\n              left: 0,\n              pointerEvents: 'none'\n            }\n          },\n          []\n        ) : null]\n      );\n    });\n\n    if (expandTrigger === 'hover') {\n      this.$nextTick(function () {\n        var activeItem = _this3.$refs.activeItem;\n\n        if (activeItem) {\n          var activeMenu = activeItem.parentElement;\n          var hoverZone = _this3.$refs.hoverZone;\n\n          hoverMenuRefs = {\n            activeMenu: activeMenu,\n            activeItem: activeItem,\n            hoverZone: hoverZone\n          };\n        } else {\n          hoverMenuRefs = {};\n        }\n      });\n    }\n\n    return h(\n      'transition',\n      {\n        attrs: { name: 'el-zoom-in-top' },\n        on: {\n          'before-enter': this.handleMenuEnter,\n          'after-leave': this.handleMenuLeave\n        }\n      },\n      [h(\n        'div',\n        {\n          directives: [{\n            name: 'show',\n            value: visible\n          }],\n\n          'class': ['el-cascader-menus el-popper', popperClass],\n          ref: 'wrapper'\n        },\n        [h(\n          'div',\n          {\n            attrs: { 'x-arrow': true },\n            'class': 'popper__arrow' },\n          []\n        ), menus]\n      )]\n    );\n  }\n};\n\n/***/ }),\n/* 360 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.handleClickoutside),expression:\"handleClickoutside\"}],ref:\"reference\",staticClass:\"el-cascader\",class:[\n    {\n      'is-opened': _vm.menuVisible,\n      'is-disabled': _vm.cascaderDisabled\n    },\n    _vm.cascaderSize ? 'el-cascader--' + _vm.cascaderSize : ''\n  ],on:{\"click\":_vm.handleClick,\"mouseenter\":function($event){_vm.inputHover = true},\"focus\":function($event){_vm.inputHover = true},\"mouseleave\":function($event){_vm.inputHover = false},\"blur\":function($event){_vm.inputHover = false},\"keydown\":_vm.handleKeydown}},[_c('el-input',{ref:\"input\",attrs:{\"readonly\":_vm.readonly,\"placeholder\":_vm.currentLabels.length ? undefined : _vm.placeholder,\"validate-event\":false,\"size\":_vm.size,\"disabled\":_vm.cascaderDisabled},on:{\"input\":_vm.debouncedInputChange,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur},nativeOn:{\"compositionstart\":function($event){_vm.handleComposition($event)},\"compositionend\":function($event){_vm.handleComposition($event)}},model:{value:(_vm.inputValue),callback:function ($$v) {_vm.inputValue=$$v},expression:\"inputValue\"}},[_c('template',{attrs:{\"slot\":\"suffix\"},slot:\"suffix\"},[(_vm.clearable && _vm.inputHover && _vm.currentLabels.length)?_c('i',{key:\"1\",staticClass:\"el-input__icon el-icon-circle-close el-cascader__clearIcon\",on:{\"click\":_vm.clearValue}}):_c('i',{key:\"2\",staticClass:\"el-input__icon el-icon-arrow-down\",class:{ 'is-reverse': _vm.menuVisible }})])],2),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.inputValue === '' && !_vm.isOnComposition),expression:\"inputValue === '' && !isOnComposition\"}],staticClass:\"el-cascader__label\"},[(_vm.showAllLevels)?[_vm._l((_vm.currentLabels),function(label,index){return [_vm._v(\"\\n        \"+_vm._s(label)+\"\\n        \"),(index < _vm.currentLabels.length - 1)?_c('span',{key:index},[_vm._v(\" \"+_vm._s(_vm.separator)+\" \")]):_vm._e()]})]:[_vm._v(\"\\n      \"+_vm._s(_vm.currentLabels[_vm.currentLabels.length - 1])+\"\\n    \")]],2)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 361 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(362);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 362 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(363);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02fb592a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(379);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_02fb592a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 363 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _color = __webpack_require__(44);\n\nvar _color2 = _interopRequireDefault(_color);\n\nvar _pickerDropdown = __webpack_require__(364);\n\nvar _pickerDropdown2 = _interopRequireDefault(_pickerDropdown);\n\nvar _clickoutside = __webpack_require__(9);\n\nvar _clickoutside2 = _interopRequireDefault(_clickoutside);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElColorPicker',\n\n  props: {\n    value: String,\n    showAlpha: Boolean,\n    colorFormat: String,\n    disabled: Boolean,\n    size: String,\n    popperClass: String,\n    predefine: Array\n  },\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  directives: { Clickoutside: _clickoutside2.default },\n\n  computed: {\n    displayedColor: function displayedColor() {\n      if (!this.value && !this.showPanelColor) {\n        return 'transparent';\n      }\n\n      return this.displayedRgb(this.color, this.showAlpha);\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    colorSize: function colorSize() {\n      return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n    },\n    colorDisabled: function colorDisabled() {\n      return this.disabled || (this.elForm || {}).disabled;\n    }\n  },\n\n  watch: {\n    value: function value(val) {\n      if (!val) {\n        this.showPanelColor = false;\n      } else if (val && val !== this.color.value) {\n        this.color.fromString(val);\n      }\n    },\n\n    color: {\n      deep: true,\n      handler: function handler() {\n        this.showPanelColor = true;\n      }\n    },\n    displayedColor: function displayedColor(val) {\n      if (!this.showPicker) return;\n      var currentValueColor = new _color2.default({\n        enableAlpha: this.showAlpha,\n        format: this.colorFormat\n      });\n      currentValueColor.fromString(this.value);\n\n      var currentValueColorRgb = this.displayedRgb(currentValueColor, this.showAlpha);\n      if (val !== currentValueColorRgb) {\n        this.$emit('active-change', val);\n      }\n    }\n  },\n\n  methods: {\n    handleTrigger: function handleTrigger() {\n      if (this.colorDisabled) return;\n      this.showPicker = !this.showPicker;\n    },\n    confirmValue: function confirmValue(value) {\n      this.$emit('input', this.color.value);\n      this.$emit('change', this.color.value);\n      this.showPicker = false;\n    },\n    clearValue: function clearValue() {\n      this.$emit('input', null);\n      this.$emit('change', null);\n      this.showPanelColor = false;\n      this.showPicker = false;\n      this.resetColor();\n    },\n    hide: function hide() {\n      this.showPicker = false;\n      this.resetColor();\n    },\n    resetColor: function resetColor() {\n      var _this = this;\n\n      this.$nextTick(function (_) {\n        if (_this.value) {\n          _this.color.fromString(_this.value);\n        } else {\n          _this.showPanelColor = false;\n        }\n      });\n    },\n    displayedRgb: function displayedRgb(color, showAlpha) {\n      if (!(color instanceof _color2.default)) {\n        throw Error('color should be instance of Color Class');\n      }\n\n      var _color$toRgb = color.toRgb(),\n          r = _color$toRgb.r,\n          g = _color$toRgb.g,\n          b = _color$toRgb.b;\n\n      return showAlpha ? 'rgba(' + r + ', ' + g + ', ' + b + ', ' + color.get('alpha') / 100 + ')' : 'rgb(' + r + ', ' + g + ', ' + b + ')';\n    }\n  },\n\n  mounted: function mounted() {\n    var value = this.value;\n    if (value) {\n      this.color.fromString(value);\n    }\n    this.popperElm = this.$refs.dropdown.$el;\n  },\n  data: function data() {\n    var color = new _color2.default({\n      enableAlpha: this.showAlpha,\n      format: this.colorFormat\n    });\n    return {\n      color: color,\n      showPicker: false,\n      showPanelColor: false\n    };\n  },\n\n\n  components: {\n    PickerDropdown: _pickerDropdown2.default\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 364 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_dropdown_vue__ = __webpack_require__(365);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_dropdown_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_dropdown_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6e6b9d28_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_picker_dropdown_vue__ = __webpack_require__(378);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_dropdown_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6e6b9d28_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_picker_dropdown_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 365 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _svPanel = __webpack_require__(366);\n\nvar _svPanel2 = _interopRequireDefault(_svPanel);\n\nvar _hueSlider = __webpack_require__(369);\n\nvar _hueSlider2 = _interopRequireDefault(_hueSlider);\n\nvar _alphaSlider = __webpack_require__(372);\n\nvar _alphaSlider2 = _interopRequireDefault(_alphaSlider);\n\nvar _predefine = __webpack_require__(375);\n\nvar _predefine2 = _interopRequireDefault(_predefine);\n\nvar _vuePopper = __webpack_require__(8);\n\nvar _vuePopper2 = _interopRequireDefault(_vuePopper);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _button = __webpack_require__(15);\n\nvar _button2 = _interopRequireDefault(_button);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'el-color-picker-dropdown',\n\n  mixins: [_vuePopper2.default, _locale2.default],\n\n  components: {\n    SvPanel: _svPanel2.default,\n    HueSlider: _hueSlider2.default,\n    AlphaSlider: _alphaSlider2.default,\n    ElInput: _input2.default,\n    ElButton: _button2.default,\n    Predefine: _predefine2.default\n  },\n\n  props: {\n    color: {\n      required: true\n    },\n    showAlpha: Boolean,\n    predefine: Array\n  },\n\n  data: function data() {\n    return {\n      customInput: ''\n    };\n  },\n\n\n  computed: {\n    currentColor: function currentColor() {\n      var parent = this.$parent;\n      return !parent.value && !parent.showPanelColor ? '' : parent.color.value;\n    }\n  },\n\n  methods: {\n    confirmValue: function confirmValue() {\n      this.$emit('pick');\n    },\n    handleConfirm: function handleConfirm() {\n      this.color.fromString(this.customInput);\n    }\n  },\n\n  mounted: function mounted() {\n    this.$parent.popperElm = this.popperElm = this.$el;\n    this.referenceElm = this.$parent.$el;\n  },\n\n\n  watch: {\n    showPopper: function showPopper(val) {\n      var _this = this;\n\n      if (val === true) {\n        this.$nextTick(function () {\n          var _$refs = _this.$refs,\n              sl = _$refs.sl,\n              hue = _$refs.hue,\n              alpha = _$refs.alpha;\n\n          sl && sl.update();\n          hue && hue.update();\n          alpha && alpha.update();\n        });\n      }\n    },\n    currentColor: function currentColor(val) {\n      this.customInput = val;\n    }\n  }\n};\n\n/***/ }),\n/* 366 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_sv_panel_vue__ = __webpack_require__(367);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_sv_panel_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_sv_panel_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_14c2eb92_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_sv_panel_vue__ = __webpack_require__(368);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_sv_panel_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_14c2eb92_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_sv_panel_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 367 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _draggable = __webpack_require__(30);\n\nvar _draggable2 = _interopRequireDefault(_draggable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'el-sl-panel',\n\n  props: {\n    color: {\n      required: true\n    }\n  },\n\n  computed: {\n    colorValue: function colorValue() {\n      var hue = this.color.get('hue');\n      var value = this.color.get('value');\n      return { hue: hue, value: value };\n    }\n  },\n\n  watch: {\n    colorValue: function colorValue() {\n      this.update();\n    }\n  },\n\n  methods: {\n    update: function update() {\n      var saturation = this.color.get('saturation');\n      var value = this.color.get('value');\n\n      var el = this.$el;\n\n      var _el$getBoundingClient = el.getBoundingClientRect(),\n          width = _el$getBoundingClient.width,\n          height = _el$getBoundingClient.height;\n\n      if (!height) height = width * 3 / 4;\n\n      this.cursorLeft = saturation * width / 100;\n      this.cursorTop = (100 - value) * height / 100;\n\n      this.background = 'hsl(' + this.color.get('hue') + ', 100%, 50%)';\n    },\n    handleDrag: function handleDrag(event) {\n      var el = this.$el;\n      var rect = el.getBoundingClientRect();\n\n      var left = event.clientX - rect.left;\n      var top = event.clientY - rect.top;\n      left = Math.max(0, left);\n      left = Math.min(left, rect.width);\n\n      top = Math.max(0, top);\n      top = Math.min(top, rect.height);\n\n      this.cursorLeft = left;\n      this.cursorTop = top;\n      this.color.set({\n        saturation: left / rect.width * 100,\n        value: 100 - top / rect.height * 100\n      });\n    }\n  },\n\n  mounted: function mounted() {\n    var _this = this;\n\n    (0, _draggable2.default)(this.$el, {\n      drag: function drag(event) {\n        _this.handleDrag(event);\n      },\n      end: function end(event) {\n        _this.handleDrag(event);\n      }\n    });\n\n    this.update();\n  },\n  data: function data() {\n    return {\n      cursorTop: 0,\n      cursorLeft: 0,\n      background: 'hsl(0, 100%, 50%)'\n    };\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 368 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-color-svpanel\",style:({\n      backgroundColor: _vm.background\n    })},[_c('div',{staticClass:\"el-color-svpanel__white\"}),_c('div',{staticClass:\"el-color-svpanel__black\"}),_c('div',{staticClass:\"el-color-svpanel__cursor\",style:({\n      top: _vm.cursorTop + 'px',\n      left: _vm.cursorLeft + 'px'\n    })},[_c('div')])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 369 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_hue_slider_vue__ = __webpack_require__(370);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_hue_slider_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_hue_slider_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5e2326ce_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_hue_slider_vue__ = __webpack_require__(371);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_hue_slider_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5e2326ce_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_hue_slider_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 370 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _draggable = __webpack_require__(30);\n\nvar _draggable2 = _interopRequireDefault(_draggable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'el-color-hue-slider',\n\n  props: {\n    color: {\n      required: true\n    },\n\n    vertical: Boolean\n  },\n\n  data: function data() {\n    return {\n      thumbLeft: 0,\n      thumbTop: 0\n    };\n  },\n\n\n  computed: {\n    hueValue: function hueValue() {\n      var hue = this.color.get('hue');\n      return hue;\n    }\n  },\n\n  watch: {\n    hueValue: function hueValue() {\n      this.update();\n    }\n  },\n\n  methods: {\n    handleClick: function handleClick(event) {\n      var thumb = this.$refs.thumb;\n      var target = event.target;\n\n      if (target !== thumb) {\n        this.handleDrag(event);\n      }\n    },\n    handleDrag: function handleDrag(event) {\n      var rect = this.$el.getBoundingClientRect();\n      var thumb = this.$refs.thumb;\n\n      var hue = void 0;\n\n      if (!this.vertical) {\n        var left = event.clientX - rect.left;\n        left = Math.min(left, rect.width - thumb.offsetWidth / 2);\n        left = Math.max(thumb.offsetWidth / 2, left);\n\n        hue = Math.round((left - thumb.offsetWidth / 2) / (rect.width - thumb.offsetWidth) * 360);\n      } else {\n        var top = event.clientY - rect.top;\n        top = Math.min(top, rect.height - thumb.offsetHeight / 2);\n        top = Math.max(thumb.offsetHeight / 2, top);\n\n        hue = Math.round((top - thumb.offsetHeight / 2) / (rect.height - thumb.offsetHeight) * 360);\n      }\n\n      this.color.set('hue', hue);\n    },\n    getThumbLeft: function getThumbLeft() {\n      if (this.vertical) return 0;\n      var el = this.$el;\n      var hue = this.color.get('hue');\n\n      if (!el) return 0;\n      var thumb = this.$refs.thumb;\n      return Math.round(hue * (el.offsetWidth - thumb.offsetWidth / 2) / 360);\n    },\n    getThumbTop: function getThumbTop() {\n      if (!this.vertical) return 0;\n      var el = this.$el;\n      var hue = this.color.get('hue');\n\n      if (!el) return 0;\n      var thumb = this.$refs.thumb;\n      return Math.round(hue * (el.offsetHeight - thumb.offsetHeight / 2) / 360);\n    },\n    update: function update() {\n      this.thumbLeft = this.getThumbLeft();\n      this.thumbTop = this.getThumbTop();\n    }\n  },\n\n  mounted: function mounted() {\n    var _this = this;\n\n    var _$refs = this.$refs,\n        bar = _$refs.bar,\n        thumb = _$refs.thumb;\n\n\n    var dragConfig = {\n      drag: function drag(event) {\n        _this.handleDrag(event);\n      },\n      end: function end(event) {\n        _this.handleDrag(event);\n      }\n    };\n\n    (0, _draggable2.default)(bar, dragConfig);\n    (0, _draggable2.default)(thumb, dragConfig);\n    this.update();\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 371 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-color-hue-slider\",class:{ 'is-vertical': _vm.vertical }},[_c('div',{ref:\"bar\",staticClass:\"el-color-hue-slider__bar\",on:{\"click\":_vm.handleClick}}),_c('div',{ref:\"thumb\",staticClass:\"el-color-hue-slider__thumb\",style:({\n         left: _vm.thumbLeft + 'px',\n         top: _vm.thumbTop + 'px'\n       })})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 372 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_alpha_slider_vue__ = __webpack_require__(373);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_alpha_slider_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_alpha_slider_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5cb212b0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_alpha_slider_vue__ = __webpack_require__(374);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_alpha_slider_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_5cb212b0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_alpha_slider_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 373 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _draggable = __webpack_require__(30);\n\nvar _draggable2 = _interopRequireDefault(_draggable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'el-color-alpha-slider',\n\n  props: {\n    color: {\n      required: true\n    },\n    vertical: Boolean\n  },\n\n  watch: {\n    'color._alpha': function color_alpha() {\n      this.update();\n    },\n    'color.value': function colorValue() {\n      this.update();\n    }\n  },\n\n  methods: {\n    handleClick: function handleClick(event) {\n      var thumb = this.$refs.thumb;\n      var target = event.target;\n\n      if (target !== thumb) {\n        this.handleDrag(event);\n      }\n    },\n    handleDrag: function handleDrag(event) {\n      var rect = this.$el.getBoundingClientRect();\n      var thumb = this.$refs.thumb;\n\n\n      if (!this.vertical) {\n        var left = event.clientX - rect.left;\n        left = Math.max(thumb.offsetWidth / 2, left);\n        left = Math.min(left, rect.width - thumb.offsetWidth / 2);\n\n        this.color.set('alpha', Math.round((left - thumb.offsetWidth / 2) / (rect.width - thumb.offsetWidth) * 100));\n      } else {\n        var top = event.clientY - rect.top;\n        top = Math.max(thumb.offsetHeight / 2, top);\n        top = Math.min(top, rect.height - thumb.offsetHeight / 2);\n\n        this.color.set('alpha', Math.round((top - thumb.offsetHeight / 2) / (rect.height - thumb.offsetHeight) * 100));\n      }\n    },\n    getThumbLeft: function getThumbLeft() {\n      if (this.vertical) return 0;\n      var el = this.$el;\n      var alpha = this.color._alpha;\n\n      if (!el) return 0;\n      var thumb = this.$refs.thumb;\n      return Math.round(alpha * (el.offsetWidth - thumb.offsetWidth / 2) / 100);\n    },\n    getThumbTop: function getThumbTop() {\n      if (!this.vertical) return 0;\n      var el = this.$el;\n      var alpha = this.color._alpha;\n\n      if (!el) return 0;\n      var thumb = this.$refs.thumb;\n      return Math.round(alpha * (el.offsetHeight - thumb.offsetHeight / 2) / 100);\n    },\n    getBackground: function getBackground() {\n      if (this.color && this.color.value) {\n        var _color$toRgb = this.color.toRgb(),\n            r = _color$toRgb.r,\n            g = _color$toRgb.g,\n            b = _color$toRgb.b;\n\n        return 'linear-gradient(to right, rgba(' + r + ', ' + g + ', ' + b + ', 0) 0%, rgba(' + r + ', ' + g + ', ' + b + ', 1) 100%)';\n      }\n      return null;\n    },\n    update: function update() {\n      this.thumbLeft = this.getThumbLeft();\n      this.thumbTop = this.getThumbTop();\n      this.background = this.getBackground();\n    }\n  },\n\n  data: function data() {\n    return {\n      thumbLeft: 0,\n      thumbTop: 0,\n      background: null\n    };\n  },\n  mounted: function mounted() {\n    var _this = this;\n\n    var _$refs = this.$refs,\n        bar = _$refs.bar,\n        thumb = _$refs.thumb;\n\n\n    var dragConfig = {\n      drag: function drag(event) {\n        _this.handleDrag(event);\n      },\n      end: function end(event) {\n        _this.handleDrag(event);\n      }\n    };\n\n    (0, _draggable2.default)(bar, dragConfig);\n    (0, _draggable2.default)(thumb, dragConfig);\n    this.update();\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 374 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-color-alpha-slider\",class:{ 'is-vertical': _vm.vertical }},[_c('div',{ref:\"bar\",staticClass:\"el-color-alpha-slider__bar\",style:({\n         background: _vm.background\n       }),on:{\"click\":_vm.handleClick}}),_c('div',{ref:\"thumb\",staticClass:\"el-color-alpha-slider__thumb\",style:({\n         left: _vm.thumbLeft + 'px',\n         top: _vm.thumbTop + 'px'\n       })})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 375 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_predefine_vue__ = __webpack_require__(376);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_predefine_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_predefine_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b85c1454_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_predefine_vue__ = __webpack_require__(377);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_predefine_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b85c1454_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_predefine_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 376 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _color = __webpack_require__(44);\n\nvar _color2 = _interopRequireDefault(_color);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  props: {\n    colors: { type: Array, required: true },\n    color: { required: true }\n  },\n  data: function data() {\n    return {\n      rgbaColors: this.parseColors(this.colors, this.color)\n    };\n  },\n\n  methods: {\n    handleSelect: function handleSelect(index) {\n      this.color.fromString(this.colors[index]);\n    },\n    parseColors: function parseColors(colors, color) {\n      return colors.map(function (value) {\n        var c = new _color2.default();\n        c.enableAlpha = true;\n        c.format = 'rgba';\n        c.fromString(value);\n        c.selected = c.value === color.value;\n        return c;\n      });\n    }\n  },\n  watch: {\n    '$parent.currentColor': function $parentCurrentColor(val) {\n      var color = new _color2.default();\n      color.fromString(val);\n\n      this.rgbaColors.forEach(function (item) {\n        item.selected = color.compare(item);\n      });\n    },\n    colors: function colors(newVal) {\n      this.rgbaColors = this.parseColors(newVal, this.color);\n    },\n    color: function color(newVal) {\n      this.rgbaColors = this.parseColors(this.colors, newVal);\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 377 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-color-predefine\"},[_c('div',{staticClass:\"el-color-predefine__colors\"},_vm._l((_vm.rgbaColors),function(item,index){return _c('div',{key:_vm.colors[index],staticClass:\"el-color-predefine__color-selector\",class:{selected: item.selected, 'is-alpha': item._alpha < 100},on:{\"click\":function($event){_vm.handleSelect(index)}}},[_c('div',{style:({'background-color': item.value})})])}))])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 378 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"},on:{\"after-leave\":_vm.doDestroy}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showPopper),expression:\"showPopper\"}],staticClass:\"el-color-dropdown\"},[_c('div',{staticClass:\"el-color-dropdown__main-wrapper\"},[_c('hue-slider',{ref:\"hue\",staticStyle:{\"float\":\"right\"},attrs:{\"color\":_vm.color,\"vertical\":\"\"}}),_c('sv-panel',{ref:\"sl\",attrs:{\"color\":_vm.color}})],1),(_vm.showAlpha)?_c('alpha-slider',{ref:\"alpha\",attrs:{\"color\":_vm.color}}):_vm._e(),(_vm.predefine)?_c('predefine',{attrs:{\"color\":_vm.color,\"colors\":_vm.predefine}}):_vm._e(),_c('div',{staticClass:\"el-color-dropdown__btns\"},[_c('span',{staticClass:\"el-color-dropdown__value\"},[_c('el-input',{attrs:{\"size\":\"mini\"},on:{\"blur\":_vm.handleConfirm},nativeOn:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key)){ return null; }_vm.handleConfirm($event)}},model:{value:(_vm.customInput),callback:function ($$v) {_vm.customInput=$$v},expression:\"customInput\"}})],1),_c('el-button',{staticClass:\"el-color-dropdown__link-btn\",attrs:{\"size\":\"mini\",\"type\":\"text\"},on:{\"click\":function($event){_vm.$emit('clear')}}},[_vm._v(\"\\n        \"+_vm._s(_vm.t('el.colorpicker.clear'))+\"\\n      \")]),_c('el-button',{staticClass:\"el-color-dropdown__btn\",attrs:{\"plain\":\"\",\"size\":\"mini\"},on:{\"click\":_vm.confirmValue}},[_vm._v(\"\\n        \"+_vm._s(_vm.t('el.colorpicker.confirm'))+\"\\n      \")])],1)],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 379 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"clickoutside\",rawName:\"v-clickoutside\",value:(_vm.hide),expression:\"hide\"}],class:[\n    'el-color-picker',\n    _vm.colorDisabled ? 'is-disabled' : '',\n    _vm.colorSize ? (\"el-color-picker--\" + _vm.colorSize) : ''\n  ]},[(_vm.colorDisabled)?_c('div',{staticClass:\"el-color-picker__mask\"}):_vm._e(),_c('div',{staticClass:\"el-color-picker__trigger\",on:{\"click\":_vm.handleTrigger}},[_c('span',{staticClass:\"el-color-picker__color\",class:{ 'is-alpha': _vm.showAlpha }},[_c('span',{staticClass:\"el-color-picker__color-inner\",style:({\n          backgroundColor: _vm.displayedColor\n        })}),(!_vm.value && !_vm.showPanelColor)?_c('span',{staticClass:\"el-color-picker__empty el-icon-close\"}):_vm._e()]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.value || _vm.showPanelColor),expression:\"value || showPanelColor\"}],staticClass:\"el-color-picker__icon el-icon-arrow-down\"})]),_c('picker-dropdown',{ref:\"dropdown\",class:['el-color-picker__panel', _vm.popperClass || ''],attrs:{\"color\":_vm.color,\"show-alpha\":_vm.showAlpha,\"predefine\":_vm.predefine},on:{\"pick\":_vm.confirmValue,\"clear\":_vm.clearValue},model:{value:(_vm.showPicker),callback:function ($$v) {_vm.showPicker=$$v},expression:\"showPicker\"}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 380 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(381);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 381 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(382);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b373c452_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(386);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b373c452_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 382 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _button = __webpack_require__(15);\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nvar _transferPanel = __webpack_require__(383);\n\nvar _transferPanel2 = _interopRequireDefault(_transferPanel);\n\nvar _migrating = __webpack_require__(7);\n\nvar _migrating2 = _interopRequireDefault(_migrating);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElTransfer',\n\n  mixins: [_emitter2.default, _locale2.default, _migrating2.default],\n\n  components: {\n    TransferPanel: _transferPanel2.default,\n    ElButton: _button2.default\n  },\n\n  props: {\n    data: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    titles: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    buttonTexts: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    filterPlaceholder: {\n      type: String,\n      default: ''\n    },\n    filterMethod: Function,\n    leftDefaultChecked: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    rightDefaultChecked: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    renderContent: Function,\n    value: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    format: {\n      type: Object,\n      default: function _default() {\n        return {};\n      }\n    },\n    filterable: Boolean,\n    props: {\n      type: Object,\n      default: function _default() {\n        return {\n          label: 'label',\n          key: 'key',\n          disabled: 'disabled'\n        };\n      }\n    },\n    targetOrder: {\n      type: String,\n      default: 'original'\n    }\n  },\n\n  data: function data() {\n    return {\n      leftChecked: [],\n      rightChecked: []\n    };\n  },\n\n\n  computed: {\n    dataObj: function dataObj() {\n      var key = this.props.key;\n      return this.data.reduce(function (o, cur) {\n        return (o[cur[key]] = cur) && o;\n      }, {});\n    },\n    sourceData: function sourceData() {\n      var _this = this;\n\n      return this.data.filter(function (item) {\n        return _this.value.indexOf(item[_this.props.key]) === -1;\n      });\n    },\n    targetData: function targetData() {\n      var _this2 = this;\n\n      return this.targetOrder === 'original' ? this.data.filter(function (item) {\n        return _this2.value.indexOf(item[_this2.props.key]) > -1;\n      }) : this.value.map(function (key) {\n        return _this2.dataObj[key];\n      });\n    },\n    hasButtonTexts: function hasButtonTexts() {\n      return this.buttonTexts.length === 2;\n    }\n  },\n\n  watch: {\n    value: function value(val) {\n      this.dispatch('ElFormItem', 'el.form.change', val);\n    }\n  },\n\n  methods: {\n    getMigratingConfig: function getMigratingConfig() {\n      return {\n        props: {\n          'footer-format': 'footer-format is renamed to format.'\n        }\n      };\n    },\n    onSourceCheckedChange: function onSourceCheckedChange(val, movedKeys) {\n      this.leftChecked = val;\n      if (movedKeys === undefined) return;\n      this.$emit('left-check-change', val, movedKeys);\n    },\n    onTargetCheckedChange: function onTargetCheckedChange(val, movedKeys) {\n      this.rightChecked = val;\n      if (movedKeys === undefined) return;\n      this.$emit('right-check-change', val, movedKeys);\n    },\n    addToLeft: function addToLeft() {\n      var currentValue = this.value.slice();\n      this.rightChecked.forEach(function (item) {\n        var index = currentValue.indexOf(item);\n        if (index > -1) {\n          currentValue.splice(index, 1);\n        }\n      });\n      this.$emit('input', currentValue);\n      this.$emit('change', currentValue, 'left', this.rightChecked);\n    },\n    addToRight: function addToRight() {\n      var _this3 = this;\n\n      var currentValue = this.value.slice();\n      var itemsToBeMoved = [];\n      var key = this.props.key;\n      this.data.forEach(function (item) {\n        var itemKey = item[key];\n        if (_this3.leftChecked.indexOf(itemKey) > -1 && _this3.value.indexOf(itemKey) === -1) {\n          itemsToBeMoved.push(itemKey);\n        }\n      });\n      currentValue = this.targetOrder === 'unshift' ? itemsToBeMoved.concat(currentValue) : currentValue.concat(itemsToBeMoved);\n      this.$emit('input', currentValue);\n      this.$emit('change', currentValue, 'right', this.leftChecked);\n    },\n    clearQuery: function clearQuery(which) {\n      if (which === 'left') {\n        this.$refs.leftPanel.query = '';\n      } else if (which === 'right') {\n        this.$refs.rightPanel.query = '';\n      }\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n/* 383 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_transfer_panel_vue__ = __webpack_require__(384);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_transfer_panel_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_transfer_panel_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f62a5c0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_transfer_panel_vue__ = __webpack_require__(385);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_transfer_panel_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f62a5c0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_transfer_panel_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 384 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkboxGroup = __webpack_require__(37);\n\nvar _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);\n\nvar _checkbox = __webpack_require__(14);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nvar _input = __webpack_require__(6);\n\nvar _input2 = _interopRequireDefault(_input);\n\nvar _locale = __webpack_require__(3);\n\nvar _locale2 = _interopRequireDefault(_locale);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  mixins: [_locale2.default],\n\n  name: 'ElTransferPanel',\n\n  componentName: 'ElTransferPanel',\n\n  components: {\n    ElCheckboxGroup: _checkboxGroup2.default,\n    ElCheckbox: _checkbox2.default,\n    ElInput: _input2.default,\n    OptionContent: {\n      props: {\n        option: Object\n      },\n      render: function render(h) {\n        var getParent = function getParent(vm) {\n          if (vm.$options.componentName === 'ElTransferPanel') {\n            return vm;\n          } else if (vm.$parent) {\n            return getParent(vm.$parent);\n          } else {\n            return vm;\n          }\n        };\n        var panel = getParent(this);\n        var transfer = panel.$parent || panel;\n        return panel.renderContent ? panel.renderContent(h, this.option) : transfer.$scopedSlots.default ? transfer.$scopedSlots.default({ option: this.option }) : h(\n          'span',\n          null,\n          [this.option[panel.labelProp] || this.option[panel.keyProp]]\n        );\n      }\n    }\n  },\n\n  props: {\n    data: {\n      type: Array,\n      default: function _default() {\n        return [];\n      }\n    },\n    renderContent: Function,\n    placeholder: String,\n    title: String,\n    filterable: Boolean,\n    format: Object,\n    filterMethod: Function,\n    defaultChecked: Array,\n    props: Object\n  },\n\n  data: function data() {\n    return {\n      checked: [],\n      allChecked: false,\n      query: '',\n      inputHover: false,\n      checkChangeByUser: true\n    };\n  },\n\n\n  watch: {\n    checked: function checked(val, oldVal) {\n      this.updateAllChecked();\n      if (this.checkChangeByUser) {\n        var movedKeys = val.concat(oldVal).filter(function (v) {\n          return val.indexOf(v) === -1 || oldVal.indexOf(v) === -1;\n        });\n        this.$emit('checked-change', val, movedKeys);\n      } else {\n        this.$emit('checked-change', val);\n        this.checkChangeByUser = true;\n      }\n    },\n    data: function data() {\n      var _this = this;\n\n      var checked = [];\n      var filteredDataKeys = this.filteredData.map(function (item) {\n        return item[_this.keyProp];\n      });\n      this.checked.forEach(function (item) {\n        if (filteredDataKeys.indexOf(item) > -1) {\n          checked.push(item);\n        }\n      });\n      this.checkChangeByUser = false;\n      this.checked = checked;\n    },\n    checkableData: function checkableData() {\n      this.updateAllChecked();\n    },\n\n\n    defaultChecked: {\n      immediate: true,\n      handler: function handler(val, oldVal) {\n        var _this2 = this;\n\n        if (oldVal && val.length === oldVal.length && val.every(function (item) {\n          return oldVal.indexOf(item) > -1;\n        })) return;\n        var checked = [];\n        var checkableDataKeys = this.checkableData.map(function (item) {\n          return item[_this2.keyProp];\n        });\n        val.forEach(function (item) {\n          if (checkableDataKeys.indexOf(item) > -1) {\n            checked.push(item);\n          }\n        });\n        this.checkChangeByUser = false;\n        this.checked = checked;\n      }\n    }\n  },\n\n  computed: {\n    filteredData: function filteredData() {\n      var _this3 = this;\n\n      return this.data.filter(function (item) {\n        if (typeof _this3.filterMethod === 'function') {\n          return _this3.filterMethod(_this3.query, item);\n        } else {\n          var label = item[_this3.labelProp] || item[_this3.keyProp].toString();\n          return label.toLowerCase().indexOf(_this3.query.toLowerCase()) > -1;\n        }\n      });\n    },\n    checkableData: function checkableData() {\n      var _this4 = this;\n\n      return this.filteredData.filter(function (item) {\n        return !item[_this4.disabledProp];\n      });\n    },\n    checkedSummary: function checkedSummary() {\n      var checkedLength = this.checked.length;\n      var dataLength = this.data.length;\n      var _format = this.format,\n          noChecked = _format.noChecked,\n          hasChecked = _format.hasChecked;\n\n      if (noChecked && hasChecked) {\n        return checkedLength > 0 ? hasChecked.replace(/\\${checked}/g, checkedLength).replace(/\\${total}/g, dataLength) : noChecked.replace(/\\${total}/g, dataLength);\n      } else {\n        return checkedLength + '/' + dataLength;\n      }\n    },\n    isIndeterminate: function isIndeterminate() {\n      var checkedLength = this.checked.length;\n      return checkedLength > 0 && checkedLength < this.checkableData.length;\n    },\n    hasNoMatch: function hasNoMatch() {\n      return this.query.length > 0 && this.filteredData.length === 0;\n    },\n    inputIcon: function inputIcon() {\n      return this.query.length > 0 && this.inputHover ? 'circle-close' : 'search';\n    },\n    labelProp: function labelProp() {\n      return this.props.label || 'label';\n    },\n    keyProp: function keyProp() {\n      return this.props.key || 'key';\n    },\n    disabledProp: function disabledProp() {\n      return this.props.disabled || 'disabled';\n    },\n    hasFooter: function hasFooter() {\n      return !!this.$slots.default;\n    }\n  },\n\n  methods: {\n    updateAllChecked: function updateAllChecked() {\n      var _this5 = this;\n\n      var checkableDataKeys = this.checkableData.map(function (item) {\n        return item[_this5.keyProp];\n      });\n      this.allChecked = checkableDataKeys.length > 0 && checkableDataKeys.every(function (item) {\n        return _this5.checked.indexOf(item) > -1;\n      });\n    },\n    handleAllCheckedChange: function handleAllCheckedChange(value) {\n      var _this6 = this;\n\n      this.checked = value ? this.checkableData.map(function (item) {\n        return item[_this6.keyProp];\n      }) : [];\n    },\n    clearQuery: function clearQuery() {\n      if (this.inputIcon === 'circle-close') {\n        this.query = '';\n      }\n    }\n  }\n};\n\n/***/ }),\n/* 385 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-transfer-panel\"},[_c('p',{staticClass:\"el-transfer-panel__header\"},[_c('el-checkbox',{attrs:{\"indeterminate\":_vm.isIndeterminate},on:{\"change\":_vm.handleAllCheckedChange},model:{value:(_vm.allChecked),callback:function ($$v) {_vm.allChecked=$$v},expression:\"allChecked\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.title)+\"\\n      \"),_c('span',[_vm._v(_vm._s(_vm.checkedSummary))])])],1),_c('div',{class:['el-transfer-panel__body', _vm.hasFooter ? 'is-with-footer' : '']},[(_vm.filterable)?_c('el-input',{staticClass:\"el-transfer-panel__filter\",attrs:{\"size\":\"small\",\"placeholder\":_vm.placeholder},nativeOn:{\"mouseenter\":function($event){_vm.inputHover = true},\"mouseleave\":function($event){_vm.inputHover = false}},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}},[_c('i',{class:['el-input__icon', 'el-icon-' + _vm.inputIcon],attrs:{\"slot\":\"prefix\"},on:{\"click\":_vm.clearQuery},slot:\"prefix\"})]):_vm._e(),_c('el-checkbox-group',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hasNoMatch && _vm.data.length > 0),expression:\"!hasNoMatch && data.length > 0\"}],staticClass:\"el-transfer-panel__list\",class:{ 'is-filterable': _vm.filterable },model:{value:(_vm.checked),callback:function ($$v) {_vm.checked=$$v},expression:\"checked\"}},_vm._l((_vm.filteredData),function(item){return _c('el-checkbox',{key:item[_vm.keyProp],staticClass:\"el-transfer-panel__item\",attrs:{\"label\":item[_vm.keyProp],\"disabled\":item[_vm.disabledProp]}},[_c('option-content',{attrs:{\"option\":item}})],1)})),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasNoMatch),expression:\"hasNoMatch\"}],staticClass:\"el-transfer-panel__empty\"},[_vm._v(_vm._s(_vm.t('el.transfer.noMatch')))]),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.data.length === 0 && !_vm.hasNoMatch),expression:\"data.length === 0 && !hasNoMatch\"}],staticClass:\"el-transfer-panel__empty\"},[_vm._v(_vm._s(_vm.t('el.transfer.noData')))])],1),(_vm.hasFooter)?_c('p',{staticClass:\"el-transfer-panel__footer\"},[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 386 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"el-transfer\"},[_c('transfer-panel',_vm._b({ref:\"leftPanel\",attrs:{\"data\":_vm.sourceData,\"title\":_vm.titles[0] || _vm.t('el.transfer.titles.0'),\"default-checked\":_vm.leftDefaultChecked,\"placeholder\":_vm.filterPlaceholder || _vm.t('el.transfer.filterPlaceholder')},on:{\"checked-change\":_vm.onSourceCheckedChange}},'transfer-panel',_vm.$props,false),[_vm._t(\"left-footer\")],2),_c('div',{staticClass:\"el-transfer__buttons\"},[_c('el-button',{class:['el-transfer__button', _vm.hasButtonTexts ? 'is-with-texts' : ''],attrs:{\"type\":\"primary\",\"disabled\":_vm.rightChecked.length === 0},nativeOn:{\"click\":function($event){_vm.addToLeft($event)}}},[_c('i',{staticClass:\"el-icon-arrow-left\"}),(_vm.buttonTexts[0] !== undefined)?_c('span',[_vm._v(_vm._s(_vm.buttonTexts[0]))]):_vm._e()]),_c('el-button',{class:['el-transfer__button', _vm.hasButtonTexts ? 'is-with-texts' : ''],attrs:{\"type\":\"primary\",\"disabled\":_vm.leftChecked.length === 0},nativeOn:{\"click\":function($event){_vm.addToRight($event)}}},[(_vm.buttonTexts[1] !== undefined)?_c('span',[_vm._v(_vm._s(_vm.buttonTexts[1]))]):_vm._e(),_c('i',{staticClass:\"el-icon-arrow-right\"})])],1),_c('transfer-panel',_vm._b({ref:\"rightPanel\",attrs:{\"data\":_vm.targetData,\"title\":_vm.titles[1] || _vm.t('el.transfer.titles.1'),\"default-checked\":_vm.rightDefaultChecked,\"placeholder\":_vm.filterPlaceholder || _vm.t('el.transfer.filterPlaceholder')},on:{\"checked-change\":_vm.onTargetCheckedChange}},'transfer-panel',_vm.$props,false),[_vm._t(\"right-footer\")],2)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 387 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(388);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 388 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(389);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e6b1da9a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(390);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_e6b1da9a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 389 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElContainer',\n\n  componentName: 'ElContainer',\n\n  props: {\n    direction: String\n  },\n\n  computed: {\n    isVertical: function isVertical() {\n      if (this.direction === 'vertical') {\n        return true;\n      } else if (this.direction === 'horizontal') {\n        return false;\n      }\n      return this.$slots && this.$slots.default ? this.$slots.default.some(function (vnode) {\n        var tag = vnode.componentOptions && vnode.componentOptions.tag;\n        return tag === 'el-header' || tag === 'el-footer';\n      }) : false;\n    }\n  }\n};\n\n/***/ }),\n/* 390 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"el-container\",class:{ 'is-vertical': _vm.isVertical }},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 391 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(392);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 392 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(393);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_31828435_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(394);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_31828435_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 393 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElHeader',\n\n  componentName: 'ElHeader',\n\n  props: {\n    height: {\n      type: String,\n      default: '60px'\n    }\n  }\n};\n\n/***/ }),\n/* 394 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:\"el-header\",style:({ height: _vm.height })},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 395 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(396);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 396 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(397);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3b257048_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(398);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3b257048_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 397 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElAside',\n\n  componentName: 'ElAside',\n\n  props: {\n    width: {\n      type: String,\n      default: '300px'\n    }\n  }\n};\n\n/***/ }),\n/* 398 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('aside',{staticClass:\"el-aside\",style:({ width: _vm.width })},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 399 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(400);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 400 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(401);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_f7fbdb6e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(402);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_f7fbdb6e_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 401 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElMain',\n  componentName: 'ElMain'\n};\n\n/***/ }),\n/* 402 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',{staticClass:\"el-main\"},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 403 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _main = __webpack_require__(404);\n\nvar _main2 = _interopRequireDefault(_main);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_main2.default.install = function (Vue) {\n  Vue.component(_main2.default.name, _main2.default);\n};\n\nexports.default = _main2.default;\n\n/***/ }),\n/* 404 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__ = __webpack_require__(405);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_736ed032_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__ = __webpack_require__(406);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_main_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_736ed032_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_main_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n/* 405 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n//\n//\n//\n//\n//\n//\n\nexports.default = {\n  name: 'ElFooter',\n\n  componentName: 'ElFooter',\n\n  props: {\n    height: {\n      type: String,\n      default: '60px'\n    }\n  }\n};\n\n/***/ }),\n/* 406 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"el-footer\",style:({ height: _vm.height })},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n/******/ ]);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/element-ui.common.js\n// module id = t+b9\n// module chunks = 0","module.exports = function (it, Constructor, name, forbiddenField) {\n  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n    throw TypeError(name + ': incorrect invocation!');\n  } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_an-instance.js\n// module id = t8DS\n// module chunks = 0","var svgURI = 'http://www.w3.org/2000/svg';\n\nfunction createElement(name) {\n  return document.createElementNS(svgURI, name);\n}\n\nexports.createElement = createElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/svg/core.js\n// module id = tAnk\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (ref) {\n  return {\n    methods: {\n      focus: function focus() {\n        this.$refs[ref].focus();\n      }\n    }\n  };\n};\n\n;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/mixins/focus.js\n// module id = tHS6\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 122);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n  rawScriptExports,\n  compiledTemplate,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier /* server only */\n) {\n  var esModule\n  var scriptExports = rawScriptExports = rawScriptExports || {}\n\n  // ES6 modules interop\n  var type = typeof rawScriptExports.default\n  if (type === 'object' || type === 'function') {\n    esModule = rawScriptExports\n    scriptExports = rawScriptExports.default\n  }\n\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (compiledTemplate) {\n    options.render = compiledTemplate.render\n    options.staticRenderFns = compiledTemplate.staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = injectStyles\n  }\n\n  if (hook) {\n    var functional = options.functional\n    var existing = functional\n      ? options.render\n      : options.beforeCreate\n\n    if (!functional) {\n      // inject component registration as beforeCreate hook\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    } else {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return existing(h, context)\n      }\n    }\n  }\n\n  return {\n    esModule: esModule,\n    exports: scriptExports,\n    options: options\n  }\n}\n\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports) {\n\nmodule.exports = require(\"element-ui/lib/mixins/emitter\");\n\n/***/ }),\n\n/***/ 122:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _checkbox = __webpack_require__(123);\n\nvar _checkbox2 = _interopRequireDefault(_checkbox);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* istanbul ignore next */\n_checkbox2.default.install = function (Vue) {\n  Vue.component(_checkbox2.default.name, _checkbox2.default);\n};\n\nexports.default = _checkbox2.default;\n\n/***/ }),\n\n/***/ 123:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__ = __webpack_require__(124);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_45167309_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__ = __webpack_require__(125);\nvar normalizeComponent = __webpack_require__(0)\n/* script */\n\n/* template */\n\n/* template functional */\n  var __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n  __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_checkbox_vue___default.a,\n  __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_45167309_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_checkbox_vue__[\"a\" /* default */],\n  __vue_template_functional__,\n  __vue_styles__,\n  __vue_scopeId__,\n  __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Component.exports);\n\n\n/***/ }),\n\n/***/ 124:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nexports.__esModule = true;\n\nvar _emitter = __webpack_require__(1);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n  name: 'ElCheckbox',\n\n  mixins: [_emitter2.default],\n\n  inject: {\n    elForm: {\n      default: ''\n    },\n    elFormItem: {\n      default: ''\n    }\n  },\n\n  componentName: 'ElCheckbox',\n\n  data: function data() {\n    return {\n      selfModel: false,\n      focus: false,\n      isLimitExceeded: false\n    };\n  },\n\n\n  computed: {\n    model: {\n      get: function get() {\n        return this.isGroup ? this.store : this.value !== undefined ? this.value : this.selfModel;\n      },\n      set: function set(val) {\n        if (this.isGroup) {\n          this.isLimitExceeded = false;\n          this._checkboxGroup.min !== undefined && val.length < this._checkboxGroup.min && (this.isLimitExceeded = true);\n\n          this._checkboxGroup.max !== undefined && val.length > this._checkboxGroup.max && (this.isLimitExceeded = true);\n\n          this.isLimitExceeded === false && this.dispatch('ElCheckboxGroup', 'input', [val]);\n        } else {\n          this.$emit('input', val);\n          this.selfModel = val;\n        }\n      }\n    },\n\n    isChecked: function isChecked() {\n      if ({}.toString.call(this.model) === '[object Boolean]') {\n        return this.model;\n      } else if (Array.isArray(this.model)) {\n        return this.model.indexOf(this.label) > -1;\n      } else if (this.model !== null && this.model !== undefined) {\n        return this.model === this.trueLabel;\n      }\n    },\n    isGroup: function isGroup() {\n      var parent = this.$parent;\n      while (parent) {\n        if (parent.$options.componentName !== 'ElCheckboxGroup') {\n          parent = parent.$parent;\n        } else {\n          this._checkboxGroup = parent;\n          return true;\n        }\n      }\n      return false;\n    },\n    store: function store() {\n      return this._checkboxGroup ? this._checkboxGroup.value : this.value;\n    },\n    isDisabled: function isDisabled() {\n      return this.isGroup ? this._checkboxGroup.disabled || this.disabled || (this.elForm || {}).disabled : this.disabled || (this.elForm || {}).disabled;\n    },\n    _elFormItemSize: function _elFormItemSize() {\n      return (this.elFormItem || {}).elFormItemSize;\n    },\n    checkboxSize: function checkboxSize() {\n      var temCheckboxSize = this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;\n      return this.isGroup ? this._checkboxGroup.checkboxGroupSize || temCheckboxSize : temCheckboxSize;\n    }\n  },\n\n  props: {\n    value: {},\n    label: {},\n    indeterminate: Boolean,\n    disabled: Boolean,\n    checked: Boolean,\n    name: String,\n    trueLabel: [String, Number],\n    falseLabel: [String, Number],\n    id: String, /* 褰搃ndeterminate涓虹湡鏃讹紝涓篶ontrols鎻愪緵鐩稿叧杩炵殑checkbox鐨刬d锛岃〃鏄庡厓绱犻棿鐨勬帶鍒跺叧绯�*/\n    controls: String, /* 褰搃ndeterminate涓虹湡鏃讹紝涓篶ontrols鎻愪緵鐩稿叧杩炵殑checkbox鐨刬d锛岃〃鏄庡厓绱犻棿鐨勬帶鍒跺叧绯�*/\n    border: Boolean,\n    size: String\n  },\n\n  methods: {\n    addToStore: function addToStore() {\n      if (Array.isArray(this.model) && this.model.indexOf(this.label) === -1) {\n        this.model.push(this.label);\n      } else {\n        this.model = this.trueLabel || true;\n      }\n    },\n    handleChange: function handleChange(ev) {\n      var _this = this;\n\n      if (this.isLimitExceeded) return;\n      var value = void 0;\n      if (ev.target.checked) {\n        value = this.trueLabel === undefined ? true : this.trueLabel;\n      } else {\n        value = this.falseLabel === undefined ? false : this.falseLabel;\n      }\n      this.$emit('change', value, ev);\n      this.$nextTick(function () {\n        if (_this.isGroup) {\n          _this.dispatch('ElCheckboxGroup', 'change', [_this._checkboxGroup.value]);\n        }\n      });\n    }\n  },\n\n  created: function created() {\n    this.checked && this.addToStore();\n  },\n  mounted: function mounted() {\n    // 涓篿ndeterminate鍏冪礌 娣诲姞aria-controls 灞炴�n    if (this.indeterminate) {\n      this.$el.setAttribute('aria-controls', this.controls);\n    }\n  },\n\n\n  watch: {\n    value: function value(_value) {\n      this.dispatch('ElFormItem', 'el.form.change', _value);\n    }\n  }\n}; //\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/***/ }),\n\n/***/ 125:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"el-checkbox\",class:[\n    _vm.border && _vm.checkboxSize ? 'el-checkbox--' + _vm.checkboxSize : '',\n    { 'is-disabled': _vm.isDisabled },\n    { 'is-bordered': _vm.border },\n    { 'is-checked': _vm.isChecked }\n  ],attrs:{\"role\":\"checkbox\",\"aria-checked\":_vm.indeterminate ? 'mixed': _vm.isChecked,\"aria-disabled\":_vm.isDisabled,\"id\":_vm.id}},[_c('span',{staticClass:\"el-checkbox__input\",class:{\n      'is-disabled': _vm.isDisabled,\n      'is-checked': _vm.isChecked,\n      'is-indeterminate': _vm.indeterminate,\n      'is-focus': _vm.focus\n    },attrs:{\"aria-checked\":\"mixed\"}},[_c('span',{staticClass:\"el-checkbox__inner\"}),(_vm.trueLabel || _vm.falseLabel)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-checkbox__original\",attrs:{\"type\":\"checkbox\",\"aria-hidden\":\"true\",\"name\":_vm.name,\"disabled\":_vm.isDisabled,\"true-value\":_vm.trueLabel,\"false-value\":_vm.falseLabel},domProps:{\"checked\":Array.isArray(_vm.model)?_vm._i(_vm.model,null)>-1:_vm._q(_vm.model,_vm.trueLabel)},on:{\"change\":[function($event){var $$a=_vm.model,$$el=$event.target,$$c=$$el.checked?(_vm.trueLabel):(_vm.falseLabel);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.model=$$a.concat([$$v]))}else{$$i>-1&&(_vm.model=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.model=$$c}},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model),expression:\"model\"}],staticClass:\"el-checkbox__original\",attrs:{\"type\":\"checkbox\",\"aria-hidden\":\"true\",\"disabled\":_vm.isDisabled,\"name\":_vm.name},domProps:{\"value\":_vm.label,\"checked\":Array.isArray(_vm.model)?_vm._i(_vm.model,_vm.label)>-1:(_vm.model)},on:{\"change\":[function($event){var $$a=_vm.model,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.label,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.model=$$a.concat([$$v]))}else{$$i>-1&&(_vm.model=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.model=$$c}},_vm.handleChange],\"focus\":function($event){_vm.focus = true},\"blur\":function($event){_vm.focus = false}}})]),(_vm.$slots.default || _vm.label)?_c('span',{staticClass:\"el-checkbox__label\"},[_vm._t(\"default\"),(!_vm.$slots.default)?[_vm._v(_vm._s(_vm.label))]:_vm._e()],2):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n\n/******/ });\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/checkbox.js\n// module id = tLod\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.i18n = exports.use = exports.t = undefined;\n\nvar _zhCN = require('element-ui/lib/locale/lang/zh-CN');\n\nvar _zhCN2 = _interopRequireDefault(_zhCN);\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _deepmerge = require('deepmerge');\n\nvar _deepmerge2 = _interopRequireDefault(_deepmerge);\n\nvar _format = require('./format');\n\nvar _format2 = _interopRequireDefault(_format);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar format = (0, _format2.default)(_vue2.default);\nvar lang = _zhCN2.default;\nvar merged = false;\nvar i18nHandler = function i18nHandler() {\n  var vuei18n = Object.getPrototypeOf(this || _vue2.default).$t;\n  if (typeof vuei18n === 'function' && !!_vue2.default.locale) {\n    if (!merged) {\n      merged = true;\n      _vue2.default.locale(_vue2.default.config.lang, (0, _deepmerge2.default)(lang, _vue2.default.locale(_vue2.default.config.lang) || {}, { clone: true }));\n    }\n    return vuei18n.apply(this, arguments);\n  }\n};\n\nvar t = exports.t = function t(path, options) {\n  var value = i18nHandler.apply(this, arguments);\n  if (value !== null && value !== undefined) return value;\n\n  var array = path.split('.');\n  var current = lang;\n\n  for (var i = 0, j = array.length; i < j; i++) {\n    var property = array[i];\n    value = current[property];\n    if (i === j - 1) return format(value, options);\n    if (!value) return '';\n    current = value;\n  }\n  return '';\n};\n\nvar use = exports.use = function use(l) {\n  lang = l || lang;\n};\n\nvar i18n = exports.i18n = function i18n(fn) {\n  i18nHandler = fn || i18nHandler;\n};\n\nexports.default = { use: use, t: t, i18n: i18n };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/locale/index.js\n// module id = tjix\n// module chunks = 0","var Symbol = require('./_Symbol'),\n    getRawTag = require('./_getRawTag'),\n    objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/_baseGetTag.js\n// module id = u2T1\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME 鍏敤锛焅n\n/**\n * @param {Array.<module:echarts/data/List>} datas\n * @param {string} statisticType 'average' 'sum'\n * @inner\n */\nfunction dataStatistics(datas, statisticType) {\n  var dataNameMap = {};\n  zrUtil.each(datas, function (data) {\n    data.each(data.mapDimension('value'), function (value, idx) {\n      // Add prefix to avoid conflict with Object.prototype.\n      var mapKey = 'ec-' + data.getName(idx);\n      dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n      if (!isNaN(value)) {\n        dataNameMap[mapKey].push(value);\n      }\n    });\n  });\n  return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n    var mapKey = 'ec-' + datas[0].getName(idx);\n    var sum = 0;\n    var min = Infinity;\n    var max = -Infinity;\n    var len = dataNameMap[mapKey].length;\n\n    for (var i = 0; i < len; i++) {\n      min = Math.min(min, dataNameMap[mapKey][i]);\n      max = Math.max(max, dataNameMap[mapKey][i]);\n      sum += dataNameMap[mapKey][i];\n    }\n\n    var result;\n\n    if (statisticType === 'min') {\n      result = min;\n    } else if (statisticType === 'max') {\n      result = max;\n    } else if (statisticType === 'average') {\n      result = sum / len;\n    } else {\n      result = sum;\n    }\n\n    return len === 0 ? NaN : result;\n  });\n}\n\nfunction _default(ecModel) {\n  var seriesGroups = {};\n  ecModel.eachSeriesByType('map', function (seriesModel) {\n    var hostGeoModel = seriesModel.getHostGeoModel();\n    var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n    (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n  });\n  zrUtil.each(seriesGroups, function (seriesList, key) {\n    var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n      return seriesModel.getData();\n    }), seriesList[0].get('mapValueCalculation'));\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].originalData = seriesList[i].getData();\n    } // FIXME Put where?\n\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].seriesGroup = seriesList;\n      seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n      seriesList[i].setData(data.cloneShallow());\n      seriesList[i].mainSeries = seriesList[0];\n    }\n  });\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/map/mapDataStatistic.js\n// module id = uDLM\n// module chunks = 0","let raf = null;\nfunction requestAnimationFrame (callback) {\n  if (!raf) {\n    raf = (\n      window.requestAnimationFrame ||\n      window.webkitRequestAnimationFrame ||\n      window.mozRequestAnimationFrame ||\n      function (callback) {\n        return setTimeout(callback, 16)\n      }\n    ).bind(window);\n  }\n  return raf(callback)\n}\n\nlet caf = null;\nfunction cancelAnimationFrame (id) {\n  if (!caf) {\n    caf = (\n      window.cancelAnimationFrame ||\n      window.webkitCancelAnimationFrame ||\n      window.mozCancelAnimationFrame ||\n      function (id) {\n        clearTimeout(id);\n      }\n    ).bind(window);\n  }\n\n  caf(id);\n}\n\nfunction createStyles (styleText) {\n  var style = document.createElement('style');\n  style.type = 'text/css';\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = styleText;\n  } else {\n    style.appendChild(document.createTextNode(styleText));\n  }\n  (document.querySelector('head') || document.body).appendChild(style);\n  return style\n}\n\nfunction createElement (tagName, props = {}) {\n  let elem = document.createElement(tagName);\n  Object.keys(props).forEach(key => {\n    elem[key] = props[key];\n  });\n  return elem\n}\n\nfunction getComputedStyle (elem, prop, pseudo) {\n  // for older versions of Firefox, `getComputedStyle` required\n  // the second argument and may return `null` for some elements\n  // when `display: none`\n  let computedStyle = window.getComputedStyle(elem, pseudo || null) || {\n    display: 'none'\n  };\n\n  return computedStyle[prop]\n}\n\nfunction getRenderInfo (elem) {\n  if (!document.documentElement.contains(elem)) {\n    return {\n      detached: true,\n      rendered: false\n    }\n  }\n\n  let current = elem;\n  while (current !== document) {\n    if (getComputedStyle(current, 'display') === 'none') {\n      return {\n        detached: false,\n        rendered: false\n      }\n    }\n    current = current.parentNode;\n  }\n\n  return {\n    detached: false,\n    rendered: true\n  }\n}\n\nvar css = \".resize-triggers{visibility:hidden;opacity:0}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:\\\"\\\";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}\";\n\nlet total = 0;\nlet style = null;\n\nfunction addListener (elem, callback) {\n  if (!elem.__resize_mutation_handler__) {\n    elem.__resize_mutation_handler__ = handleMutation.bind(elem);\n  }\n\n  let listeners = elem.__resize_listeners__;\n\n  if (!listeners) {\n    elem.__resize_listeners__ = [];\n    if (window.ResizeObserver) {\n      let { offsetWidth, offsetHeight } = elem;\n      let ro = new ResizeObserver(() => {\n        if (!elem.__resize_observer_triggered__) {\n          elem.__resize_observer_triggered__ = true;\n          if (elem.offsetWidth === offsetWidth && elem.offsetHeight === offsetHeight) {\n            return\n          }\n        }\n        runCallbacks(elem);\n      });\n\n      // initially display none won't trigger ResizeObserver callback\n      let { detached, rendered } = getRenderInfo(elem);\n      elem.__resize_observer_triggered__ = detached === false && rendered === false;\n      elem.__resize_observer__ = ro;\n      ro.observe(elem);\n    } else if (elem.attachEvent && elem.addEventListener) {\n      // targeting IE9/10\n      elem.__resize_legacy_resize_handler__ = function handleLegacyResize () {\n        runCallbacks(elem);\n      };\n      elem.attachEvent('onresize', elem.__resize_legacy_resize_handler__);\n      document.addEventListener('DOMSubtreeModified', elem.__resize_mutation_handler__);\n    } else {\n      if (!total) {\n        style = createStyles(css);\n      }\n      initTriggers(elem);\n\n      elem.__resize_rendered__ = getRenderInfo(elem).rendered;\n      if (window.MutationObserver) {\n        let mo = new MutationObserver(elem.__resize_mutation_handler__);\n        mo.observe(document, {\n          attributes: true,\n          childList: true,\n          characterData: true,\n          subtree: true\n        });\n        elem.__resize_mutation_observer__ = mo;\n      }\n    }\n  }\n\n  elem.__resize_listeners__.push(callback);\n  total++;\n}\n\nfunction removeListener (elem, callback) {\n  // targeting IE9/10\n  if (elem.detachEvent && elem.removeEventListener) {\n    elem.detachEvent('onresize', elem.__resize_legacy_resize_handler__);\n    document.removeEventListener('DOMSubtreeModified', elem.__resize_mutation_handler__);\n    return\n  }\n\n  let listeners = elem.__resize_listeners__;\n  if (!listeners) {\n    return\n  }\n  listeners.splice(listeners.indexOf(callback), 1);\n\n  if (!listeners.length) {\n    if (elem.__resize_observer__) {\n      elem.__resize_observer__.unobserve(elem);\n      elem.__resize_observer__.disconnect();\n      elem.__resize_observer__ = null;\n    } else {\n      if (elem.__resize_mutation_observer__) {\n        elem.__resize_mutation_observer__.disconnect();\n        elem.__resize_mutation_observer__ = null;\n      }\n      elem.removeEventListener('scroll', handleScroll);\n      elem.removeChild(elem.__resize_triggers__.triggers);\n      elem.__resize_triggers__ = null;\n    }\n    elem.__resize_listeners__ = null;\n  }\n\n  if (!--total && style) {\n    style.parentNode.removeChild(style);\n  }\n}\n\nfunction getUpdatedSize (elem) {\n  let { width, height } = elem.__resize_last__;\n  let { offsetWidth, offsetHeight } = elem;\n  if (offsetWidth !== width || offsetHeight !== height) {\n    return {\n      width: offsetWidth,\n      height: offsetHeight\n    }\n  }\n  return null\n}\n\nfunction handleMutation () {\n  // `this` denotes the scrolling element\n  let { rendered, detached } = getRenderInfo(this);\n  if (rendered !== this.__resize_rendered__) {\n    if (!detached && this.__resize_triggers__) {\n      resetTriggers(this);\n      this.addEventListener('scroll', handleScroll, true);\n    }\n    this.__resize_rendered__ = rendered;\n    runCallbacks(this);\n  }\n}\n\nfunction handleScroll () {\n  // `this` denotes the scrolling element\n  resetTriggers(this);\n  if (this.__resize_raf__) {\n    cancelAnimationFrame(this.__resize_raf__);\n  }\n  this.__resize_raf__ = requestAnimationFrame(() => {\n    let updated = getUpdatedSize(this);\n    if (updated) {\n      this.__resize_last__ = updated;\n      runCallbacks(this);\n    }\n  });\n}\n\nfunction runCallbacks (elem) {\n  elem.__resize_listeners__.forEach(callback => {\n    callback.call(elem);\n  });\n}\n\nfunction initTriggers (elem) {\n  let position = getComputedStyle(elem, 'position');\n  if (!position || position === 'static') {\n    elem.style.position = 'relative';\n  }\n\n  elem.__resize_old_position__ = position;\n  elem.__resize_last__ = {};\n\n  let triggers = createElement('div', {\n    className: 'resize-triggers'\n  });\n  let expand = createElement('div', {\n    className: 'resize-expand-trigger'\n  });\n  let expandChild = createElement('div');\n  let contract = createElement('div', {\n    className: 'resize-contract-trigger'\n  });\n  expand.appendChild(expandChild);\n  triggers.appendChild(expand);\n  triggers.appendChild(contract);\n  elem.appendChild(triggers);\n\n  elem.__resize_triggers__ = {\n    triggers,\n    expand,\n    expandChild,\n    contract\n  };\n\n  resetTriggers(elem);\n  elem.addEventListener('scroll', handleScroll, true);\n\n  elem.__resize_last__ = {\n    width: elem.offsetWidth,\n    height: elem.offsetHeight\n  };\n}\n\nfunction resetTriggers (elem) {\n  let { expand, expandChild, contract } = elem.__resize_triggers__;\n\n  // batch read\n  let { scrollWidth: csw, scrollHeight: csh } = contract;\n  let { offsetWidth: eow, offsetHeight: eoh, scrollWidth: esw, scrollHeight: esh } = expand;\n\n  // batch write\n  contract.scrollLeft = csw;\n  contract.scrollTop = csh;\n  expandChild.style.width = eow + 1 + 'px';\n  expandChild.style.height = eoh + 1 + 'px';\n  expand.scrollLeft = esw;\n  expand.scrollTop = esh;\n}\n\nexport { addListener, removeListener };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_resize-detector@0.1.9@resize-detector/esm/index.js\n// module id = uF+G\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar formatUtil = require(\"../../util/format\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar AXIS_DIMS = ['x', 'y', 'z', 'radius', 'angle', 'single']; // Supported coords.\n\nvar COORDS = ['cartesian2d', 'polar', 'singleAxis'];\n/**\n * @param {string} coordType\n * @return {boolean}\n */\n\nfunction isCoordSupported(coordType) {\n  return zrUtil.indexOf(COORDS, coordType) >= 0;\n}\n/**\n * Create \"each\" method to iterate names.\n *\n * @pubilc\n * @param  {Array.<string>} names\n * @param  {Array.<string>=} attrs\n * @return {Function}\n */\n\n\nfunction createNameEach(names, attrs) {\n  names = names.slice();\n  var capitalNames = zrUtil.map(names, formatUtil.capitalFirst);\n  attrs = (attrs || []).slice();\n  var capitalAttrs = zrUtil.map(attrs, formatUtil.capitalFirst);\n  return function (callback, context) {\n    zrUtil.each(names, function (name, index) {\n      var nameObj = {\n        name: name,\n        capital: capitalNames[index]\n      };\n\n      for (var j = 0; j < attrs.length; j++) {\n        nameObj[attrs[j]] = name + capitalAttrs[j];\n      }\n\n      callback.call(context, nameObj);\n    });\n  };\n}\n/**\n * Iterate each dimension name.\n *\n * @public\n * @param {Function} callback The parameter is like:\n *                            {\n *                                name: 'angle',\n *                                capital: 'Angle',\n *                                axis: 'angleAxis',\n *                                axisIndex: 'angleAixs',\n *                                index: 'angleIndex'\n *                            }\n * @param {Object} context\n */\n\n\nvar eachAxisDim = createNameEach(AXIS_DIMS, ['axisIndex', 'axis', 'index', 'id']);\n/**\n * If tow dataZoomModels has the same axis controlled, we say that they are 'linked'.\n * dataZoomModels and 'links' make up one or more graphics.\n * This function finds the graphic where the source dataZoomModel is in.\n *\n * @public\n * @param {Function} forEachNode Node iterator.\n * @param {Function} forEachEdgeType edgeType iterator\n * @param {Function} edgeIdGetter Giving node and edgeType, return an array of edge id.\n * @return {Function} Input: sourceNode, Output: Like {nodes: [], dims: {}}\n */\n\nfunction createLinkedNodesFinder(forEachNode, forEachEdgeType, edgeIdGetter) {\n  return function (sourceNode) {\n    var result = {\n      nodes: [],\n      records: {} // key: edgeType.name, value: Object (key: edge id, value: boolean).\n\n    };\n    forEachEdgeType(function (edgeType) {\n      result.records[edgeType.name] = {};\n    });\n\n    if (!sourceNode) {\n      return result;\n    }\n\n    absorb(sourceNode, result);\n    var existsLink;\n\n    do {\n      existsLink = false;\n      forEachNode(processSingleNode);\n    } while (existsLink);\n\n    function processSingleNode(node) {\n      if (!isNodeAbsorded(node, result) && isLinked(node, result)) {\n        absorb(node, result);\n        existsLink = true;\n      }\n    }\n\n    return result;\n  };\n\n  function isNodeAbsorded(node, result) {\n    return zrUtil.indexOf(result.nodes, node) >= 0;\n  }\n\n  function isLinked(node, result) {\n    var hasLink = false;\n    forEachEdgeType(function (edgeType) {\n      zrUtil.each(edgeIdGetter(node, edgeType) || [], function (edgeId) {\n        result.records[edgeType.name][edgeId] && (hasLink = true);\n      });\n    });\n    return hasLink;\n  }\n\n  function absorb(node, result) {\n    result.nodes.push(node);\n    forEachEdgeType(function (edgeType) {\n      zrUtil.each(edgeIdGetter(node, edgeType) || [], function (edgeId) {\n        result.records[edgeType.name][edgeId] = true;\n      });\n    });\n  }\n}\n\nexports.isCoordSupported = isCoordSupported;\nexports.createNameEach = createNameEach;\nexports.eachAxisDim = eachAxisDim;\nexports.createLinkedNodesFinder = createLinkedNodesFinder;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/helper.js\n// module id = uF0F\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\n  };\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-define.js\n// module id = uH+j\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar RoamController = require(\"./RoamController\");\n\nvar roamHelper = require(\"../../component/helper/roamHelper\");\n\nvar _cursorHelper = require(\"../../component/helper/cursorHelper\");\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphic = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getFixedItemStyle(model, scale) {\n  var itemStyle = model.getItemStyle();\n  var areaColor = model.get('areaColor'); // If user want the color not to be changed when hover,\n  // they should both set areaColor and color to be null.\n\n  if (areaColor != null) {\n    itemStyle.fill = areaColor;\n  }\n\n  return itemStyle;\n}\n\nfunction updateMapSelectHandler(mapDraw, mapOrGeoModel, group, api, fromView) {\n  group.off('click');\n  group.off('mousedown');\n\n  if (mapOrGeoModel.get('selectedMode')) {\n    group.on('mousedown', function () {\n      mapDraw._mouseDownFlag = true;\n    });\n    group.on('click', function (e) {\n      if (!mapDraw._mouseDownFlag) {\n        return;\n      }\n\n      mapDraw._mouseDownFlag = false;\n      var el = e.target;\n\n      while (!el.__regions) {\n        el = el.parent;\n      }\n\n      if (!el) {\n        return;\n      }\n\n      var action = {\n        type: (mapOrGeoModel.mainType === 'geo' ? 'geo' : 'map') + 'ToggleSelect',\n        batch: zrUtil.map(el.__regions, function (region) {\n          return {\n            name: region.name,\n            from: fromView.uid\n          };\n        })\n      };\n      action[mapOrGeoModel.mainType + 'Id'] = mapOrGeoModel.id;\n      api.dispatchAction(action);\n      updateMapSelected(mapOrGeoModel, group);\n    });\n  }\n}\n\nfunction updateMapSelected(mapOrGeoModel, group) {\n  // FIXME\n  group.eachChild(function (otherRegionEl) {\n    zrUtil.each(otherRegionEl.__regions, function (region) {\n      otherRegionEl.trigger(mapOrGeoModel.isSelected(region.name) ? 'emphasis' : 'normal');\n    });\n  });\n}\n/**\n * @alias module:echarts/component/helper/MapDraw\n * @param {module:echarts/ExtensionAPI} api\n * @param {boolean} updateGroup\n */\n\n\nfunction MapDraw(api, updateGroup) {\n  var group = new graphic.Group();\n  /**\n   * @type {module:echarts/component/helper/RoamController}\n   * @private\n   */\n\n  this._controller = new RoamController(api.getZr());\n  /**\n   * @type {Object} {target, zoom, zoomLimit}\n   * @private\n   */\n\n  this._controllerHost = {\n    target: updateGroup ? group : null\n  };\n  /**\n   * @type {module:zrender/container/Group}\n   * @readOnly\n   */\n\n  this.group = group;\n  /**\n   * @type {boolean}\n   * @private\n   */\n\n  this._updateGroup = updateGroup;\n  /**\n   * This flag is used to make sure that only one among\n   * `pan`, `zoom`, `click` can occurs, otherwise 'selected'\n   * action may be triggered when `pan`, which is unexpected.\n   * @type {booelan}\n   */\n\n  this._mouseDownFlag;\n}\n\nMapDraw.prototype = {\n  constructor: MapDraw,\n  draw: function (mapOrGeoModel, ecModel, api, fromView, payload) {\n    var isGeo = mapOrGeoModel.mainType === 'geo'; // Map series has data. GEO model that controlled by map series\n    // will be assigned with map data. Other GEO model has no data.\n\n    var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n    isGeo && ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'map'\n    }, function (mapSeries) {\n      if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n        data = mapSeries.getData();\n      }\n    });\n    var geo = mapOrGeoModel.coordinateSystem;\n    var group = this.group;\n    var scale = geo.scale;\n    var groupNewProp = {\n      position: geo.position,\n      scale: scale\n    }; // No animation when first draw or in action\n\n    if (!group.childAt(0) || payload) {\n      group.attr(groupNewProp);\n    } else {\n      graphic.updateProps(group, groupNewProp, mapOrGeoModel);\n    }\n\n    group.removeAll();\n    var itemStyleAccessPath = ['itemStyle'];\n    var hoverItemStyleAccessPath = ['emphasis', 'itemStyle'];\n    var labelAccessPath = ['label'];\n    var hoverLabelAccessPath = ['emphasis', 'label'];\n    var nameMap = zrUtil.createHashMap();\n    zrUtil.each(geo.regions, function (region) {\n      // Consider in GeoJson properties.name may be duplicated, for example,\n      // there is multiple region named \"United Kindom\" or \"France\" (so many\n      // colonies). And it is not appropriate to merge them in geo, which\n      // will make them share the same label and bring trouble in label\n      // location calculation.\n      var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group());\n      var compoundPath = new graphic.CompoundPath({\n        shape: {\n          paths: []\n        }\n      });\n      regionGroup.add(compoundPath);\n      var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\n      var itemStyleModel = regionModel.getModel(itemStyleAccessPath);\n      var hoverItemStyleModel = regionModel.getModel(hoverItemStyleAccessPath);\n      var itemStyle = getFixedItemStyle(itemStyleModel, scale);\n      var hoverItemStyle = getFixedItemStyle(hoverItemStyleModel, scale);\n      var labelModel = regionModel.getModel(labelAccessPath);\n      var hoverLabelModel = regionModel.getModel(hoverLabelAccessPath);\n      var dataIdx; // Use the itemStyle in data if has data\n\n      if (data) {\n        dataIdx = data.indexOfName(region.name); // Only visual color of each item will be used. It can be encoded by dataRange\n        // But visual color of series is used in symbol drawing\n        //\n        // Visual color for each series is for the symbol draw\n\n        var visualColor = data.getItemVisual(dataIdx, 'color', true);\n\n        if (visualColor) {\n          itemStyle.fill = visualColor;\n        }\n      }\n\n      zrUtil.each(region.geometries, function (geometry) {\n        if (geometry.type !== 'polygon') {\n          return;\n        }\n\n        compoundPath.shape.paths.push(new graphic.Polygon({\n          shape: {\n            points: geometry.exterior\n          }\n        }));\n\n        for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); i++) {\n          compoundPath.shape.paths.push(new graphic.Polygon({\n            shape: {\n              points: geometry.interiors[i]\n            }\n          }));\n        }\n      });\n      compoundPath.setStyle(itemStyle);\n      compoundPath.style.strokeNoScale = true;\n      compoundPath.culling = true; // Label\n\n      var showLabel = labelModel.get('show');\n      var hoverShowLabel = hoverLabelModel.get('show');\n      var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n      var itemLayout = data && data.getItemLayout(dataIdx); // In the following cases label will be drawn\n      // 1. In map series and data value is NaN\n      // 2. In geo component\n      // 4. Region has no series legendSymbol, which will be add a showLabel flag in mapSymbolLayout\n\n      if (isGeo || isDataNaN && (showLabel || hoverShowLabel) || itemLayout && itemLayout.showLabel) {\n        var query = !isGeo ? dataIdx : region.name;\n        var labelFetcher; // Consider dataIdx not found.\n\n        if (!data || dataIdx >= 0) {\n          labelFetcher = mapOrGeoModel;\n        }\n\n        var textEl = new graphic.Text({\n          position: region.center.slice(),\n          scale: [1 / scale[0], 1 / scale[1]],\n          z2: 10,\n          silent: true\n        });\n        graphic.setLabelStyle(textEl.style, textEl.hoverStyle = {}, labelModel, hoverLabelModel, {\n          labelFetcher: labelFetcher,\n          labelDataIndex: query,\n          defaultText: region.name,\n          useInsideStyle: false\n        }, {\n          textAlign: 'center',\n          textVerticalAlign: 'middle'\n        });\n        regionGroup.add(textEl);\n      } // setItemGraphicEl, setHoverStyle after all polygons and labels\n      // are added to the rigionGroup\n\n\n      if (data) {\n        data.setItemGraphicEl(dataIdx, regionGroup);\n      } else {\n        var regionModel = mapOrGeoModel.getRegionModel(region.name); // Package custom mouse event for geo component\n\n        compoundPath.eventData = {\n          componentType: 'geo',\n          geoIndex: mapOrGeoModel.componentIndex,\n          name: region.name,\n          region: regionModel && regionModel.option || {}\n        };\n      }\n\n      var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n      groupRegions.push(region);\n      graphic.setHoverStyle(regionGroup, hoverItemStyle, {\n        hoverSilentOnTouch: !!mapOrGeoModel.get('selectedMode')\n      });\n      group.add(regionGroup);\n    });\n\n    this._updateController(mapOrGeoModel, ecModel, api);\n\n    updateMapSelectHandler(this, mapOrGeoModel, group, api, fromView);\n    updateMapSelected(mapOrGeoModel, group);\n  },\n  remove: function () {\n    this.group.removeAll();\n\n    this._controller.dispose();\n\n    this._controllerHost = {};\n  },\n  _updateController: function (mapOrGeoModel, ecModel, api) {\n    var geo = mapOrGeoModel.coordinateSystem;\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n    controllerHost.zoom = geo.getZoom(); // roamType is will be set default true if it is null\n\n    controller.enable(mapOrGeoModel.get('roam') || false);\n    var mainType = mapOrGeoModel.mainType;\n\n    function makeActionBase() {\n      var action = {\n        type: 'geoRoam',\n        componentType: mainType\n      };\n      action[mainType + 'Id'] = mapOrGeoModel.id;\n      return action;\n    }\n\n    controller.off('pan').on('pan', function (dx, dy) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnPan(controllerHost, dx, dy);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        dx: dx,\n        dy: dy\n      }));\n    }, this);\n    controller.off('zoom').on('zoom', function (zoom, mouseX, mouseY) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnZoom(controllerHost, zoom, mouseX, mouseY);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        zoom: zoom,\n        originX: mouseX,\n        originY: mouseY\n      }));\n\n      if (this._updateGroup) {\n        var group = this.group;\n        var scale = group.scale;\n        group.traverse(function (el) {\n          if (el.type === 'text') {\n            el.attr('scale', [1 / scale[0], 1 / scale[1]]);\n          }\n        });\n      }\n    }, this);\n    controller.setPointerChecker(function (e, x, y) {\n      return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n    });\n  }\n};\nvar _default = MapDraw;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/helper/MapDraw.js\n// module id = unHI\n// module chunks = 0","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%40/gi, '@').\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/helpers/buildURL.js\n// module id = ur+z\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar textContain = require(\"zrender/lib/contain/text\");\n\nvar numberUtil = require(\"./number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * 姣忎笁浣嶉粯璁ゅ姞,鏍煎紡鍖朶n * @param {string|number} x\n * @return {string}\n */\nfunction addCommas(x) {\n  if (isNaN(x)) {\n    return '-';\n  }\n\n  x = (x + '').split('.');\n  return x[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (x.length > 1 ? '.' + x[1] : '');\n}\n/**\n * @param {string} str\n * @param {boolean} [upperCaseFirst=false]\n * @return {string} str\n */\n\n\nfunction toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\n\nvar normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\n\nfunction encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\n\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n/**\n * Template formatter\n * @param {string} tpl\n * @param {Array.<Object>|Object} paramsList\n * @param {boolean} [encode=false]\n * @return {string}\n */\n\n\nfunction formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\n/**\n * simple Template formatter\n *\n * @param {string} tpl\n * @param {Object} param\n * @param {boolean} [encode=false]\n * @return {string}\n */\n\n\nfunction formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\n/**\n * @param {Object|string} [opt] If string, means color.\n * @param {string} [opt.color]\n * @param {string} [opt.extraCssText]\n * @param {string} [opt.type='item'] 'item' or 'subItem'\n * @return {string}\n */\n\n\nfunction getTooltipMarker(opt, extraCssText) {\n  opt = zrUtil.isString(opt) ? {\n    color: opt,\n    extraCssText: extraCssText\n  } : opt || {};\n  var color = opt.color;\n  var type = opt.type;\n  var extraCssText = opt.extraCssText;\n\n  if (!color) {\n    return '';\n  }\n\n  return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:5px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n}\n\nfunction pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\n/**\n * ISO Date format\n * @param {string} tpl\n * @param {number} value\n * @param {boolean} [isUTC=false] Default in local time.\n *           see `module:echarts/scale/Time`\n *           and `module:echarts/util/number#parseDate`.\n * @inner\n */\n\n\nfunction formatTime(tpl, value, isUTC) {\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = numberUtil.parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100).replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\n/**\n * Capital first\n * @param {string} str\n * @return {string}\n */\n\n\nfunction capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\n\nvar truncateText = textContain.truncateText;\nvar getTextRect = textContain.getBoundingRect;\nexports.addCommas = addCommas;\nexports.toCamelCase = toCamelCase;\nexports.normalizeCssArray = normalizeCssArray;\nexports.encodeHTML = encodeHTML;\nexports.formatTpl = formatTpl;\nexports.formatTplSimple = formatTplSimple;\nexports.getTooltipMarker = getTooltipMarker;\nexports.formatTime = formatTime;\nexports.capitalFirst = capitalFirst;\nexports.truncateText = truncateText;\nexports.getTextRect = getTextRect;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/format.js\n// module id = uxQp\n// module chunks = 0","var _event = require(\"../core/event\");\n\nvar addEventListener = _event.addEventListener;\nvar removeEventListener = _event.removeEventListener;\nvar normalizeEvent = _event.normalizeEvent;\n\nvar zrUtil = require(\"../core/util\");\n\nvar Eventful = require(\"../mixin/Eventful\");\n\nvar env = require(\"../core/env\");\n\nvar GestureMgr = require(\"../core/GestureMgr\");\n\nvar TOUCH_CLICK_DELAY = 300;\nvar mouseHandlerNames = ['click', 'dblclick', 'mousewheel', 'mouseout', 'mouseup', 'mousedown', 'mousemove', 'contextmenu'];\nvar touchHandlerNames = ['touchstart', 'touchend', 'touchmove'];\nvar pointerEventNames = {\n  pointerdown: 1,\n  pointerup: 1,\n  pointermove: 1,\n  pointerout: 1\n};\nvar pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n  var nm = name.replace('mouse', 'pointer');\n  return pointerEventNames[nm] ? nm : name;\n});\n\nfunction eventNameFix(name) {\n  return name === 'mousewheel' && env.browser.firefox ? 'DOMMouseScroll' : name;\n}\n\nfunction processGesture(proxy, event, stage) {\n  var gestureMgr = proxy._gestureMgr;\n  stage === 'start' && gestureMgr.clear();\n  var gestureInfo = gestureMgr.recognize(event, proxy.handler.findHover(event.zrX, event.zrY, null).target, proxy.dom);\n  stage === 'end' && gestureMgr.clear(); // Do not do any preventDefault here. Upper application do that if necessary.\n\n  if (gestureInfo) {\n    var type = gestureInfo.type;\n    event.gestureEvent = type;\n    proxy.handler.dispatchToElement({\n      target: gestureInfo.target\n    }, type, gestureInfo.event);\n  }\n} // function onMSGestureChange(proxy, event) {\n//     if (event.translationX || event.translationY) {\n//         // mousemove is carried by MSGesture to reduce the sensitivity.\n//         proxy.handler.dispatchToElement(event.target, 'mousemove', event);\n//     }\n//     if (event.scale !== 1) {\n//         event.pinchX = event.offsetX;\n//         event.pinchY = event.offsetY;\n//         event.pinchScale = event.scale;\n//         proxy.handler.dispatchToElement(event.target, 'pinch', event);\n//     }\n// }\n\n/**\n * Prevent mouse event from being dispatched after Touch Events action\n * @see <https://github.com/deltakosh/handjs/blob/master/src/hand.base.js>\n * 1. Mobile browsers dispatch mouse events 300ms after touchend.\n * 2. Chrome for Android dispatch mousedown for long-touch about 650ms\n * Result: Blocking Mouse Events for 700ms.\n */\n\n\nfunction setTouchTimer(instance) {\n  instance._touching = true;\n  clearTimeout(instance._touchTimer);\n  instance._touchTimer = setTimeout(function () {\n    instance._touching = false;\n  }, 700);\n}\n\nvar domHandlers = {\n  /**\n   * Mouse move handler\n   * @inner\n   * @param {Event} event\n   */\n  mousemove: function (event) {\n    event = normalizeEvent(this.dom, event);\n    this.trigger('mousemove', event);\n  },\n\n  /**\n   * Mouse out handler\n   * @inner\n   * @param {Event} event\n   */\n  mouseout: function (event) {\n    event = normalizeEvent(this.dom, event);\n    var element = event.toElement || event.relatedTarget;\n\n    if (element != this.dom) {\n      while (element && element.nodeType != 9) {\n        // 蹇界暐鍖呭惈鍦╮oot涓殑dom寮曡捣鐨刴ouseOut\n        if (element === this.dom) {\n          return;\n        }\n\n        element = element.parentNode;\n      }\n    }\n\n    this.trigger('mouseout', event);\n  },\n\n  /**\n   * Touch寮�濮嬪搷搴斿嚱鏁癨n   * @inner\n   * @param {Event} event\n   */\n  touchstart: function (event) {\n    // Default mouse behaviour should not be disabled here.\n    // For example, page may needs to be slided.\n    event = normalizeEvent(this.dom, event); // Mark touch, which is useful in distinguish touch and\n    // mouse event in upper applicatoin.\n\n    event.zrByTouch = true;\n    this._lastTouchMoment = new Date();\n    processGesture(this, event, 'start'); // In touch device, trigger `mousemove`(`mouseover`) should\n    // be triggered, and must before `mousedown` triggered.\n\n    domHandlers.mousemove.call(this, event);\n    domHandlers.mousedown.call(this, event);\n    setTouchTimer(this);\n  },\n\n  /**\n   * Touch绉诲姩鍝嶅簲鍑芥暟\n   * @inner\n   * @param {Event} event\n   */\n  touchmove: function (event) {\n    event = normalizeEvent(this.dom, event); // Mark touch, which is useful in distinguish touch and\n    // mouse event in upper applicatoin.\n\n    event.zrByTouch = true;\n    processGesture(this, event, 'change'); // Mouse move should always be triggered no matter whether\n    // there is gestrue event, because mouse move and pinch may\n    // be used at the same time.\n\n    domHandlers.mousemove.call(this, event);\n    setTouchTimer(this);\n  },\n\n  /**\n   * Touch缁撴潫鍝嶅簲鍑芥暟\n   * @inner\n   * @param {Event} event\n   */\n  touchend: function (event) {\n    event = normalizeEvent(this.dom, event); // Mark touch, which is useful in distinguish touch and\n    // mouse event in upper applicatoin.\n\n    event.zrByTouch = true;\n    processGesture(this, event, 'end');\n    domHandlers.mouseup.call(this, event); // Do not trigger `mouseout` here, in spite of `mousemove`(`mouseover`) is\n    // triggered in `touchstart`. This seems to be illogical, but by this mechanism,\n    // we can conveniently implement \"hover style\" in both PC and touch device just\n    // by listening to `mouseover` to add \"hover style\" and listening to `mouseout`\n    // to remove \"hover style\" on an element, without any additional code for\n    // compatibility. (`mouseout` will not be triggered in `touchend`, so \"hover\n    // style\" will remain for user view)\n    // click event should always be triggered no matter whether\n    // there is gestrue event. System click can not be prevented.\n\n    if (+new Date() - this._lastTouchMoment < TOUCH_CLICK_DELAY) {\n      domHandlers.click.call(this, event);\n    }\n\n    setTouchTimer(this);\n  },\n  pointerdown: function (event) {\n    domHandlers.mousedown.call(this, event); // if (useMSGuesture(this, event)) {\n    //     this._msGesture.addPointer(event.pointerId);\n    // }\n  },\n  pointermove: function (event) {\n    // FIXME\n    // pointermove is so sensitive that it always triggered when\n    // tap(click) on touch screen, which affect some judgement in\n    // upper application. So, we dont support mousemove on MS touch\n    // device yet.\n    if (!isPointerFromTouch(event)) {\n      domHandlers.mousemove.call(this, event);\n    }\n  },\n  pointerup: function (event) {\n    domHandlers.mouseup.call(this, event);\n  },\n  pointerout: function (event) {\n    // pointerout will be triggered when tap on touch screen\n    // (IE11+/Edge on MS Surface) after click event triggered,\n    // which is inconsistent with the mousout behavior we defined\n    // in touchend. So we unify them.\n    // (check domHandlers.touchend for detailed explanation)\n    if (!isPointerFromTouch(event)) {\n      domHandlers.mouseout.call(this, event);\n    }\n  }\n};\n\nfunction isPointerFromTouch(event) {\n  var pointerType = event.pointerType;\n  return pointerType === 'pen' || pointerType === 'touch';\n} // function useMSGuesture(handlerProxy, event) {\n//     return isPointerFromTouch(event) && !!handlerProxy._msGesture;\n// }\n// Common handlers\n\n\nzrUtil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n  domHandlers[name] = function (event) {\n    event = normalizeEvent(this.dom, event);\n    this.trigger(name, event);\n  };\n});\n/**\n * 涓烘帶鍒剁被瀹炰緥鍒濆鍖杁om 浜嬩欢澶勭悊鍑芥暟\n *\n * @inner\n * @param {module:zrender/Handler} instance 鎺у埗绫诲疄渚媆n */\n\nfunction initDomHandler(instance) {\n  zrUtil.each(touchHandlerNames, function (name) {\n    instance._handlers[name] = zrUtil.bind(domHandlers[name], instance);\n  });\n  zrUtil.each(pointerHandlerNames, function (name) {\n    instance._handlers[name] = zrUtil.bind(domHandlers[name], instance);\n  });\n  zrUtil.each(mouseHandlerNames, function (name) {\n    instance._handlers[name] = makeMouseHandler(domHandlers[name], instance);\n  });\n\n  function makeMouseHandler(fn, instance) {\n    return function () {\n      if (instance._touching) {\n        return;\n      }\n\n      return fn.apply(instance, arguments);\n    };\n  }\n}\n\nfunction HandlerDomProxy(dom) {\n  Eventful.call(this);\n  this.dom = dom;\n  /**\n   * @private\n   * @type {boolean}\n   */\n\n  this._touching = false;\n  /**\n   * @private\n   * @type {number}\n   */\n\n  this._touchTimer;\n  /**\n   * @private\n   * @type {module:zrender/core/GestureMgr}\n   */\n\n  this._gestureMgr = new GestureMgr();\n  this._handlers = {};\n  initDomHandler(this);\n\n  if (env.pointerEventsSupported) {\n    // Only IE11+/Edge\n    // 1. On devices that both enable touch and mouse (e.g., MS Surface and lenovo X240),\n    // IE11+/Edge do not trigger touch event, but trigger pointer event and mouse event\n    // at the same time.\n    // 2. On MS Surface, it probablely only trigger mousedown but no mouseup when tap on\n    // screen, which do not occurs in pointer event.\n    // So we use pointer event to both detect touch gesture and mouse behavior.\n    mountHandlers(pointerHandlerNames, this); // FIXME\n    // Note: MS Gesture require CSS touch-action set. But touch-action is not reliable,\n    // which does not prevent defuault behavior occasionally (which may cause view port\n    // zoomed in but use can not zoom it back). And event.preventDefault() does not work.\n    // So we have to not to use MSGesture and not to support touchmove and pinch on MS\n    // touch screen. And we only support click behavior on MS touch screen now.\n    // MS Gesture Event is only supported on IE11+/Edge and on Windows 8+.\n    // We dont support touch on IE on win7.\n    // See <https://msdn.microsoft.com/en-us/library/dn433243(v=vs.85).aspx>\n    // if (typeof MSGesture === 'function') {\n    //     (this._msGesture = new MSGesture()).target = dom; // jshint ignore:line\n    //     dom.addEventListener('MSGestureChange', onMSGestureChange);\n    // }\n  } else {\n    if (env.touchEventsSupported) {\n      mountHandlers(touchHandlerNames, this); // Handler of 'mouseout' event is needed in touch mode, which will be mounted below.\n      // addEventListener(root, 'mouseout', this._mouseoutHandler);\n    } // 1. Considering some devices that both enable touch and mouse event (like on MS Surface\n    // and lenovo X240, @see #2350), we make mouse event be always listened, otherwise\n    // mouse event can not be handle in those devices.\n    // 2. On MS Surface, Chrome will trigger both touch event and mouse event. How to prevent\n    // mouseevent after touch event triggered, see `setTouchTimer`.\n\n\n    mountHandlers(mouseHandlerNames, this);\n  }\n\n  function mountHandlers(handlerNames, instance) {\n    zrUtil.each(handlerNames, function (name) {\n      addEventListener(dom, eventNameFix(name), instance._handlers[name]);\n    }, instance);\n  }\n}\n\nvar handlerDomProxyProto = HandlerDomProxy.prototype;\n\nhandlerDomProxyProto.dispose = function () {\n  var handlerNames = mouseHandlerNames.concat(touchHandlerNames);\n\n  for (var i = 0; i < handlerNames.length; i++) {\n    var name = handlerNames[i];\n    removeEventListener(this.dom, eventNameFix(name), this._handlers[name]);\n  }\n};\n\nhandlerDomProxyProto.setCursor = function (cursorStyle) {\n  this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n};\n\nzrUtil.mixin(HandlerDomProxy, Eventful);\nvar _default = HandlerDomProxy;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/dom/HandlerProxy.js\n// module id = v854\n// module chunks = 0","/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar opacityAccessPath = ['lineStyle', 'normal', 'opacity'];\nvar _default = {\n  seriesType: 'parallel',\n  reset: function (seriesModel, ecModel, api) {\n    var itemStyleModel = seriesModel.getModel('itemStyle');\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var globalColors = ecModel.get('color');\n    var color = lineStyleModel.get('color') || itemStyleModel.get('color') || globalColors[seriesModel.seriesIndex % globalColors.length];\n    var inactiveOpacity = seriesModel.get('inactiveOpacity');\n    var activeOpacity = seriesModel.get('activeOpacity');\n    var lineStyle = seriesModel.getModel('lineStyle').getLineStyle();\n    var coordSys = seriesModel.coordinateSystem;\n    var data = seriesModel.getData();\n    var opacityMap = {\n      normal: lineStyle.opacity,\n      active: activeOpacity,\n      inactive: inactiveOpacity\n    };\n    data.setVisual('color', color);\n\n    function progress(params, data) {\n      coordSys.eachActiveState(data, function (activeState, dataIndex) {\n        var opacity = opacityMap[activeState];\n\n        if (activeState === 'normal' && data.hasItemOption) {\n          var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n          itemOpacity != null && (opacity = itemOpacity);\n        }\n\n        data.setItemVisual(dataIndex, 'opacity', opacity);\n      }, params.start, params.end);\n    }\n\n    return {\n      progress: progress\n    };\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/parallel/parallelVisual.js\n// module id = vKtP\n// module chunks = 0","function buildPath(ctx, shape) {\n  var x = shape.x;\n  var y = shape.y;\n  var width = shape.width;\n  var height = shape.height;\n  var r = shape.r;\n  var r1;\n  var r2;\n  var r3;\n  var r4; // Convert width and height to positive for better borderRadius\n\n  if (width < 0) {\n    x = x + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y = y + height;\n    height = -height;\n  }\n\n  if (typeof r === 'number') {\n    r1 = r2 = r3 = r4 = r;\n  } else if (r instanceof Array) {\n    if (r.length === 1) {\n      r1 = r2 = r3 = r4 = r[0];\n    } else if (r.length === 2) {\n      r1 = r3 = r[0];\n      r2 = r4 = r[1];\n    } else if (r.length === 3) {\n      r1 = r[0];\n      r2 = r4 = r[1];\n      r3 = r[2];\n    } else {\n      r1 = r[0];\n      r2 = r[1];\n      r3 = r[2];\n      r4 = r[3];\n    }\n  } else {\n    r1 = r2 = r3 = r4 = 0;\n  }\n\n  var total;\n\n  if (r1 + r2 > width) {\n    total = r1 + r2;\n    r1 *= width / total;\n    r2 *= width / total;\n  }\n\n  if (r3 + r4 > width) {\n    total = r3 + r4;\n    r3 *= width / total;\n    r4 *= width / total;\n  }\n\n  if (r2 + r3 > height) {\n    total = r2 + r3;\n    r2 *= height / total;\n    r3 *= height / total;\n  }\n\n  if (r1 + r4 > height) {\n    total = r1 + r4;\n    r1 *= height / total;\n    r4 *= height / total;\n  }\n\n  ctx.moveTo(x + r1, y);\n  ctx.lineTo(x + width - r2, y);\n  r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n  ctx.lineTo(x + width, y + height - r3);\n  r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n  ctx.lineTo(x + r4, y + height);\n  r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n  ctx.lineTo(x, y + r1);\n  r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n\nexports.buildPath = buildPath;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/roundRect.js\n// module id = vO1E\n// module chunks = 0","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/fn/object/assign.js\n// module id = vWcR\n// module chunks = 0","var _vector = require(\"../../core/vector\");\n\nvar v2Min = _vector.min;\nvar v2Max = _vector.max;\nvar v2Scale = _vector.scale;\nvar v2Distance = _vector.distance;\nvar v2Add = _vector.add;\nvar v2Clone = _vector.clone;\nvar v2Sub = _vector.sub;\n\n/**\n * 璐濆灏斿钩婊戞洸绾縗n * @module zrender/shape/util/smoothBezier\n * @author pissang (https://www.github.com/pissang)\n *         Kener (@Kener-鏋楀嘲, kener.linfeng@gmail.com)\n *         errorrik (errorrik@gmail.com)\n */\n\n/**\n * 璐濆灏斿钩婊戞洸绾縗n * @alias module:zrender/shape/util/smoothBezier\n * @param {Array} points 绾挎椤剁偣鏁扮粍\n * @param {number} smooth 骞虫粦绛夌骇, 0-1\n * @param {boolean} isLoop\n * @param {Array} constraint 灏嗚绠楀嚭鏉ョ殑鎺у埗鐐圭害鏉熷湪涓�涓寘鍥寸洅鍐匼n *                           姣斿 [[0, 0], [100, 100]], 杩欎釜鍖呭洿鐩掍細涓嶾n *                           鏁翠釜鎶樼嚎鐨勫寘鍥寸洅鍋氫竴涓苟闆嗙敤鏉ョ害鏉熸帶鍒剁偣銆俓n * @param {Array} 璁$畻鍑烘潵鐨勬帶鍒剁偣鏁扮粍\n */\nfunction _default(points, smooth, isLoop, constraint) {\n  var cps = [];\n  var v = [];\n  var v1 = [];\n  var v2 = [];\n  var prevPoint;\n  var nextPoint;\n  var min, max;\n\n  if (constraint) {\n    min = [Infinity, Infinity];\n    max = [-Infinity, -Infinity];\n\n    for (var i = 0, len = points.length; i < len; i++) {\n      v2Min(min, min, points[i]);\n      v2Max(max, max, points[i]);\n    } // 涓庢寚瀹氱殑鍖呭洿鐩掑仛骞堕泦\n\n\n    v2Min(min, min, constraint[0]);\n    v2Max(max, max, constraint[1]);\n  }\n\n  for (var i = 0, len = points.length; i < len; i++) {\n    var point = points[i];\n\n    if (isLoop) {\n      prevPoint = points[i ? i - 1 : len - 1];\n      nextPoint = points[(i + 1) % len];\n    } else {\n      if (i === 0 || i === len - 1) {\n        cps.push(v2Clone(points[i]));\n        continue;\n      } else {\n        prevPoint = points[i - 1];\n        nextPoint = points[i + 1];\n      }\n    }\n\n    v2Sub(v, nextPoint, prevPoint); // use degree to scale the handle length\n\n    v2Scale(v, v, smooth);\n    var d0 = v2Distance(point, prevPoint);\n    var d1 = v2Distance(point, nextPoint);\n    var sum = d0 + d1;\n\n    if (sum !== 0) {\n      d0 /= sum;\n      d1 /= sum;\n    }\n\n    v2Scale(v1, v, -d0);\n    v2Scale(v2, v, d1);\n    var cp0 = v2Add([], point, v1);\n    var cp1 = v2Add([], point, v2);\n\n    if (constraint) {\n      v2Max(cp0, cp0, min);\n      v2Min(cp0, cp0, max);\n      v2Max(cp1, cp1, min);\n      v2Min(cp1, cp1, max);\n    }\n\n    cps.push(cp0);\n    cps.push(cp1);\n  }\n\n  if (isLoop) {\n    cps.push(cps.shift());\n  }\n\n  return cps;\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/helper/smoothBezier.js\n// module id = vXc2\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./tooltip/TooltipModel\");\n\nrequire(\"./tooltip/TooltipView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// FIXME Better way to pack data in graphic element\n\n/**\n * @action\n * @property {string} type\n * @property {number} seriesIndex\n * @property {number} dataIndex\n * @property {number} [x]\n * @property {number} [y]\n */\necharts.registerAction({\n  type: 'showTip',\n  event: 'showTip',\n  update: 'tooltip:manuallyShowTip'\n}, // noop\nfunction () {});\necharts.registerAction({\n  type: 'hideTip',\n  event: 'hideTip',\n  update: 'tooltip:manuallyHideTip'\n}, // noop\nfunction () {});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/tooltip.js\n// module id = vfE7\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar isArray = zrUtil.isArray;\n/**\n * Make the name displayable. But we should\n * make sure it is not duplicated with user\n * specified name, so use '\\0';\n */\n\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\n/**\n * If value is not array, then translate it to array.\n * @param  {*} value\n * @return {Array} [value] or value\n */\n\nfunction normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\n/**\n * Sync default option between normal and emphasis like `position` and `show`\n * In case some one will write code like\n *     label: {\n *          show: false,\n *          position: 'outside',\n *          fontSize: 18\n *     },\n *     emphasis: {\n *          label: { show: true }\n *     }\n * @param {Object} opt\n * @param {string} key\n * @param {Array.<string>} subOpts\n */\n\n\nfunction defaultEmphasis(opt, key, subOpts) {\n  // Caution: performance sensitive.\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {}; // Default emphasis option from normal\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\n\nvar TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding']; // modelUtil.LABEL_OPTIONS = modelUtil.TEXT_STYLE_OPTIONS.concat([\n//     'position', 'offset', 'rotate', 'origin', 'show', 'distance', 'formatter',\n//     'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\n//     // FIXME: deprecated, check and remove it.\n//     'textStyle'\n// ]);\n\n/**\n * The method do not ensure performance.\n * data could be [12, 2323, {value: 223}, [1221, 23], {value: [2, 23]}]\n * This helper method retieves value from data.\n * @param {string|number|Date|Array|Object} dataItem\n * @return {number|string|Date|Array.<number|string|Date>}\n */\n\nfunction getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\n/**\n * data could be [12, 2323, {value: 223}, [1221, 23], {value: [2, 23]}]\n * This helper method determine if dataItem has extra option besides value\n * @param {string|number|Date|Array|Object} dataItem\n */\n\n\nfunction isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array); // // markLine data can be array\n  // && !(dataItem[0] && isObject(dataItem[0]) && !(dataItem[0] instanceof Array));\n}\n/**\n * Mapping to exists for merge.\n *\n * @public\n * @param {Array.<Object>|Array.<module:echarts/model/Component>} exists\n * @param {Object|Array.<Object>} newCptOptions\n * @return {Array.<Object>} Result, like [{exist: ..., option: ...}, {}],\n *                          index of which is the same as exists.\n */\n\n\nfunction mappingToExists(exists, newCptOptions) {\n  // Mapping by the order by original option (but not order of\n  // new option) in merge mode. Because we should ensure\n  // some specified index (like xAxisIndex) is consistent with\n  // original option, which is easy to understand, espatially in\n  // media query. And in most case, merge option is used to\n  // update partial option but not be expected to change order.\n  newCptOptions = (newCptOptions || []).slice();\n  var result = zrUtil.map(exists || [], function (obj, index) {\n    return {\n      exist: obj\n    };\n  }); // Mapping by id or name if specified.\n\n  each(newCptOptions, function (cptOption, index) {\n    if (!isObject(cptOption)) {\n      return;\n    } // id has highest priority.\n\n\n    for (var i = 0; i < result.length; i++) {\n      if (!result[i].option // Consider name: two map to one.\n      && cptOption.id != null && result[i].exist.id === cptOption.id + '') {\n        result[i].option = cptOption;\n        newCptOptions[index] = null;\n        return;\n      }\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var exist = result[i].exist;\n\n      if (!result[i].option // Consider name: two map to one.\n      // Can not match when both ids exist but different.\n      && (exist.id == null || cptOption.id == null) && cptOption.name != null && !isIdInner(cptOption) && !isIdInner(exist) && exist.name === cptOption.name + '') {\n        result[i].option = cptOption;\n        newCptOptions[index] = null;\n        return;\n      }\n    }\n  }); // Otherwise mapping by index.\n\n  each(newCptOptions, function (cptOption, index) {\n    if (!isObject(cptOption)) {\n      return;\n    }\n\n    var i = 0;\n\n    for (; i < result.length; i++) {\n      var exist = result[i].exist;\n\n      if (!result[i].option // Existing model that already has id should be able to\n      // mapped to (because after mapping performed model may\n      // be assigned with a id, whish should not affect next\n      // mapping), except those has inner id.\n      && !isIdInner(exist) // Caution:\n      // Do not overwrite id. But name can be overwritten,\n      // because axis use name as 'show label text'.\n      // 'exist' always has id and name and we dont\n      // need to check it.\n      && cptOption.id == null) {\n        result[i].option = cptOption;\n        break;\n      }\n    }\n\n    if (i >= result.length) {\n      result.push({\n        option: cptOption\n      });\n    }\n  });\n  return result;\n}\n/**\n * Make id and name for mapping result (result of mappingToExists)\n * into `keyInfo` field.\n *\n * @public\n * @param {Array.<Object>} Result, like [{exist: ..., option: ...}, {}],\n *                          which order is the same as exists.\n * @return {Array.<Object>} The input.\n */\n\n\nfunction makeIdAndName(mapResult) {\n  // We use this id to hash component models and view instances\n  // in echarts. id can be specified by user, or auto generated.\n  // The id generation rule ensures new view instance are able\n  // to mapped to old instance when setOption are called in\n  // no-merge mode. So we generate model id by name and plus\n  // type in view id.\n  // name can be duplicated among components, which is convenient\n  // to specify multi components (like series) by one name.\n  // Ensure that each id is distinct.\n  var idMap = zrUtil.createHashMap();\n  each(mapResult, function (item, index) {\n    var existCpt = item.exist;\n    existCpt && idMap.set(existCpt.id, item);\n  });\n  each(mapResult, function (item, index) {\n    var opt = item.option;\n    zrUtil.assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  }); // Make name and id.\n\n  each(mapResult, function (item, index) {\n    var existCpt = item.exist;\n    var opt = item.option;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    } // name can be overwitten. Consider case: axis.name = '20km'.\n    // But id generated by name will not be changed, which affect\n    // only in that case: setOption with 'not merge mode' and view\n    // instance will be recreated, which can be accepted.\n\n\n    keyInfo.name = opt.name != null ? opt.name + '' : existCpt ? existCpt.name // Avoid diffferent series has the same name,\n    // because name may be used like in color pallet.\n    : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existCpt) {\n      keyInfo.id = existCpt.id;\n    } else if (opt.id != null) {\n      keyInfo.id = opt.id + '';\n    } else {\n      // Consider this situatoin:\n      //  optionA: [{name: 'a'}, {name: 'a'}, {..}]\n      //  optionB [{..}, {name: 'a'}, {name: 'a'}]\n      // Series with the same name between optionA and optionB\n      // should be mapped.\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction isNameSpecified(componentModel) {\n  var name = componentModel.name; // Is specified when `indexOf` get -1 or > 0.\n\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\n/**\n * @public\n * @param {Object} cptOption\n * @return {boolean}\n */\n\n\nfunction isIdInner(cptOption) {\n  return isObject(cptOption) && cptOption.id && (cptOption.id + '').indexOf('\\0_ec_\\0') === 0;\n}\n/**\n * A helper for removing duplicate items between batchA and batchB,\n * and in themselves, and categorize by series.\n *\n * @param {Array.<Object>} batchA Like: [{seriesId: 2, dataIndex: [32, 4, 5]}, ...]\n * @param {Array.<Object>} batchB Like: [{seriesId: 2, dataIndex: [32, 4, 5]}, ...]\n * @return {Array.<Array.<Object>, Array.<Object>>} result: [resultBatchA, resultBatchB]\n */\n\n\nfunction compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = sourceBatch[i].seriesId;\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\n/**\n * @param {module:echarts/data/List} data\n * @param {Object} payload Contains dataIndex (means rawIndex) / dataIndexInside / name\n *                         each of which can be Array or primary type.\n * @return {number|Array.<number>} dataIndex If not found, return undefined/null.\n */\n\n\nfunction queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return zrUtil.isArray(payload.dataIndex) ? zrUtil.map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return zrUtil.isArray(payload.name) ? zrUtil.map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\n/**\n * Enable property storage to any host object.\n * Notice: Serialization is not supported.\n *\n * For example:\n * var inner = zrUitl.makeInner();\n *\n * function some1(hostObj) {\n *      inner(hostObj).someProperty = 1212;\n *      ...\n * }\n * function some2() {\n *      var fields = inner(this);\n *      fields.someProperty1 = 1212;\n *      fields.someProperty2 = 'xx';\n *      ...\n * }\n *\n * @return {Function}\n */\n\n\nfunction makeInner() {\n  // Consider different scope by es module import.\n  var key = '__\\0ec_inner_' + innerUniqueIndex++ + '_' + Math.random().toFixed(5);\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\n\nvar innerUniqueIndex = 0;\n/**\n * @param {module:echarts/model/Global} ecModel\n * @param {string|Object} finder\n *        If string, e.g., 'geo', means {geoIndex: 0}.\n *        If Object, could contain some of these properties below:\n *        {\n *            seriesIndex, seriesId, seriesName,\n *            geoIndex, geoId, geoName,\n *            bmapIndex, bmapId, bmapName,\n *            xAxisIndex, xAxisId, xAxisName,\n *            yAxisIndex, yAxisId, yAxisName,\n *            gridIndex, gridId, gridName,\n *            ... (can be extended)\n *        }\n *        Each properties can be number|string|Array.<number>|Array.<string>\n *        For example, a finder could be\n *        {\n *            seriesIndex: 3,\n *            geoId: ['aa', 'cc'],\n *            gridName: ['xx', 'rr']\n *        }\n *        xxxIndex can be set as 'all' (means all xxx) or 'none' (means not specify)\n *        If nothing or null/undefined specified, return nothing.\n * @param {Object} [opt]\n * @param {string} [opt.defaultMainType]\n * @param {Array.<string>} [opt.includeMainTypes]\n * @return {Object} result like:\n *        {\n *            seriesModels: [seriesModel1, seriesModel2],\n *            seriesModel: seriesModel1, // The first model\n *            geoModels: [geoModel1, geoModel2],\n *            geoModel: geoModel1, // The first model\n *            ...\n *        }\n */\n\nfunction parseFinder(ecModel, finder, opt) {\n  if (zrUtil.isString(finder)) {\n    var obj = {};\n    obj[finder + 'Index'] = 0;\n    finder = obj;\n  }\n\n  var defaultMainType = opt && opt.defaultMainType;\n\n  if (defaultMainType && !has(finder, defaultMainType + 'Index') && !has(finder, defaultMainType + 'Id') && !has(finder, defaultMainType + 'Name')) {\n    finder[defaultMainType + 'Index'] = 0;\n  }\n\n  var result = {};\n  each(finder, function (value, key) {\n    var value = finder[key]; // Exclude 'dataIndex' and other illgal keys.\n\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || value == null || queryType === 'index' && value === 'none' || opt && opt.includeMainTypes && zrUtil.indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    var queryParam = {\n      mainType: mainType\n    };\n\n    if (queryType !== 'index' || value !== 'all') {\n      queryParam[queryType] = value;\n    }\n\n    var models = ecModel.queryComponents(queryParam);\n    result[mainType + 'Models'] = models;\n    result[mainType + 'Model'] = models[0];\n  });\n  return result;\n}\n\nfunction has(obj, prop) {\n  return obj && obj.hasOwnProperty(prop);\n}\n\nfunction setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\n\nfunction getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\n\nexports.normalizeToArray = normalizeToArray;\nexports.defaultEmphasis = defaultEmphasis;\nexports.TEXT_STYLE_OPTIONS = TEXT_STYLE_OPTIONS;\nexports.getDataItemValue = getDataItemValue;\nexports.isDataItemOption = isDataItemOption;\nexports.mappingToExists = mappingToExists;\nexports.makeIdAndName = makeIdAndName;\nexports.isNameSpecified = isNameSpecified;\nexports.isIdInner = isIdInner;\nexports.compressBatches = compressBatches;\nexports.queryDataIndex = queryDataIndex;\nexports.makeInner = makeInner;\nexports.parseFinder = parseFinder;\nexports.setAttribute = setAttribute;\nexports.getAttribute = getAttribute;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/model.js\n// module id = vqvJ\n// module chunks = 0","/**\n * 缂撳姩浠g爜鏉ヨ嚜 https://github.com/sole/tween.js/blob/master/src/Tween.js\n * @see http://sole.github.io/tween.js/examples/03_graphs.html\n * @exports zrender/animation/easing\n */\nvar easing = {\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  linear: function (k) {\n    return k;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quadraticIn: function (k) {\n    return k * k;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quadraticOut: function (k) {\n    return k * (2 - k);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quadraticInOut: function (k) {\n    if ((k *= 2) < 1) {\n      return 0.5 * k * k;\n    }\n\n    return -0.5 * (--k * (k - 2) - 1);\n  },\n  // 涓夋鏂圭殑缂撳姩锛坱^3锛塡n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  cubicIn: function (k) {\n    return k * k * k;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  cubicOut: function (k) {\n    return --k * k * k + 1;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  cubicInOut: function (k) {\n    if ((k *= 2) < 1) {\n      return 0.5 * k * k * k;\n    }\n\n    return 0.5 * ((k -= 2) * k * k + 2);\n  },\n  // 鍥涙鏂圭殑缂撳姩锛坱^4锛塡n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quarticIn: function (k) {\n    return k * k * k * k;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quarticOut: function (k) {\n    return 1 - --k * k * k * k;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quarticInOut: function (k) {\n    if ((k *= 2) < 1) {\n      return 0.5 * k * k * k * k;\n    }\n\n    return -0.5 * ((k -= 2) * k * k * k - 2);\n  },\n  // 浜旀鏂圭殑缂撳姩锛坱^5锛塡n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quinticIn: function (k) {\n    return k * k * k * k * k;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quinticOut: function (k) {\n    return --k * k * k * k * k + 1;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  quinticInOut: function (k) {\n    if ((k *= 2) < 1) {\n      return 0.5 * k * k * k * k * k;\n    }\n\n    return 0.5 * ((k -= 2) * k * k * k * k + 2);\n  },\n  // 姝e鸡鏇茬嚎鐨勭紦鍔紙sin(t)锛塡n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  sinusoidalIn: function (k) {\n    return 1 - Math.cos(k * Math.PI / 2);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  sinusoidalOut: function (k) {\n    return Math.sin(k * Math.PI / 2);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  sinusoidalInOut: function (k) {\n    return 0.5 * (1 - Math.cos(Math.PI * k));\n  },\n  // 鎸囨暟鏇茬嚎鐨勭紦鍔紙2^t锛塡n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  exponentialIn: function (k) {\n    return k === 0 ? 0 : Math.pow(1024, k - 1);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  exponentialOut: function (k) {\n    return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  exponentialInOut: function (k) {\n    if (k === 0) {\n      return 0;\n    }\n\n    if (k === 1) {\n      return 1;\n    }\n\n    if ((k *= 2) < 1) {\n      return 0.5 * Math.pow(1024, k - 1);\n    }\n\n    return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n  },\n  // 鍦嗗舰鏇茬嚎鐨勭紦鍔紙sqrt(1-t^2)锛塡n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  circularIn: function (k) {\n    return 1 - Math.sqrt(1 - k * k);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  circularOut: function (k) {\n    return Math.sqrt(1 - --k * k);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  circularInOut: function (k) {\n    if ((k *= 2) < 1) {\n      return -0.5 * (Math.sqrt(1 - k * k) - 1);\n    }\n\n    return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n  },\n  // 鍒涘缓绫讳技浜庡脊绨у湪鍋滄鍓嶆潵鍥炴尟鑽$殑鍔ㄧ敾\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  elasticIn: function (k) {\n    var s;\n    var a = 0.1;\n    var p = 0.4;\n\n    if (k === 0) {\n      return 0;\n    }\n\n    if (k === 1) {\n      return 1;\n    }\n\n    if (!a || a < 1) {\n      a = 1;\n      s = p / 4;\n    } else {\n      s = p * Math.asin(1 / a) / (2 * Math.PI);\n    }\n\n    return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  elasticOut: function (k) {\n    var s;\n    var a = 0.1;\n    var p = 0.4;\n\n    if (k === 0) {\n      return 0;\n    }\n\n    if (k === 1) {\n      return 1;\n    }\n\n    if (!a || a < 1) {\n      a = 1;\n      s = p / 4;\n    } else {\n      s = p * Math.asin(1 / a) / (2 * Math.PI);\n    }\n\n    return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  elasticInOut: function (k) {\n    var s;\n    var a = 0.1;\n    var p = 0.4;\n\n    if (k === 0) {\n      return 0;\n    }\n\n    if (k === 1) {\n      return 1;\n    }\n\n    if (!a || a < 1) {\n      a = 1;\n      s = p / 4;\n    } else {\n      s = p * Math.asin(1 / a) / (2 * Math.PI);\n    }\n\n    if ((k *= 2) < 1) {\n      return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p));\n    }\n\n    return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n  },\n  // 鍦ㄦ煇涓�鍔ㄧ敾寮�濮嬫部鎸囩ず鐨勮矾寰勮繘琛屽姩鐢诲鐞嗗墠绋嶇◢鏀跺洖璇ュ姩鐢荤殑绉诲姩\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  backIn: function (k) {\n    var s = 1.70158;\n    return k * k * ((s + 1) * k - s);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  backOut: function (k) {\n    var s = 1.70158;\n    return --k * k * ((s + 1) * k + s) + 1;\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  backInOut: function (k) {\n    var s = 1.70158 * 1.525;\n\n    if ((k *= 2) < 1) {\n      return 0.5 * (k * k * ((s + 1) * k - s));\n    }\n\n    return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n  },\n  // 鍒涘缓寮硅烦鏁堟灉\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  bounceIn: function (k) {\n    return 1 - easing.bounceOut(1 - k);\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  bounceOut: function (k) {\n    if (k < 1 / 2.75) {\n      return 7.5625 * k * k;\n    } else if (k < 2 / 2.75) {\n      return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75;\n    } else if (k < 2.5 / 2.75) {\n      return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375;\n    } else {\n      return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375;\n    }\n  },\n\n  /**\n  * @param {number} k\n  * @return {number}\n  */\n  bounceInOut: function (k) {\n    if (k < 0.5) {\n      return easing.bounceIn(k * 2) * 0.5;\n    }\n\n    return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n  }\n};\nvar _default = easing;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/animation/easing.js\n// module id = w2U8\n// module chunks = 0","require(\"./gauge/GaugeSeries\");\n\nrequire(\"./gauge/GaugeView\");\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/gauge.js\n// module id = w4GH\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nvar _dom = require('element-ui/lib/utils/dom');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hasModal = false;\nvar hasInitZIndex = false;\nvar zIndex = 2000;\n\nvar getModal = function getModal() {\n  if (_vue2.default.prototype.$isServer) return;\n  var modalDom = PopupManager.modalDom;\n  if (modalDom) {\n    hasModal = true;\n  } else {\n    hasModal = false;\n    modalDom = document.createElement('div');\n    PopupManager.modalDom = modalDom;\n\n    modalDom.addEventListener('touchmove', function (event) {\n      event.preventDefault();\n      event.stopPropagation();\n    });\n\n    modalDom.addEventListener('click', function () {\n      PopupManager.doOnModalClick && PopupManager.doOnModalClick();\n    });\n  }\n\n  return modalDom;\n};\n\nvar instances = {};\n\nvar PopupManager = {\n  modalFade: true,\n\n  getInstance: function getInstance(id) {\n    return instances[id];\n  },\n\n  register: function register(id, instance) {\n    if (id && instance) {\n      instances[id] = instance;\n    }\n  },\n\n  deregister: function deregister(id) {\n    if (id) {\n      instances[id] = null;\n      delete instances[id];\n    }\n  },\n\n  nextZIndex: function nextZIndex() {\n    return PopupManager.zIndex++;\n  },\n\n  modalStack: [],\n\n  doOnModalClick: function doOnModalClick() {\n    var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n    if (!topItem) return;\n\n    var instance = PopupManager.getInstance(topItem.id);\n    if (instance && instance.closeOnClickModal) {\n      instance.close();\n    }\n  },\n\n  openModal: function openModal(id, zIndex, dom, modalClass, modalFade) {\n    if (_vue2.default.prototype.$isServer) return;\n    if (!id || zIndex === undefined) return;\n    this.modalFade = modalFade;\n\n    var modalStack = this.modalStack;\n\n    for (var i = 0, j = modalStack.length; i < j; i++) {\n      var item = modalStack[i];\n      if (item.id === id) {\n        return;\n      }\n    }\n\n    var modalDom = getModal();\n\n    (0, _dom.addClass)(modalDom, 'v-modal');\n    if (this.modalFade && !hasModal) {\n      (0, _dom.addClass)(modalDom, 'v-modal-enter');\n    }\n    if (modalClass) {\n      var classArr = modalClass.trim().split(/\\s+/);\n      classArr.forEach(function (item) {\n        return (0, _dom.addClass)(modalDom, item);\n      });\n    }\n    setTimeout(function () {\n      (0, _dom.removeClass)(modalDom, 'v-modal-enter');\n    }, 200);\n\n    if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {\n      dom.parentNode.appendChild(modalDom);\n    } else {\n      document.body.appendChild(modalDom);\n    }\n\n    if (zIndex) {\n      modalDom.style.zIndex = zIndex;\n    }\n    modalDom.tabIndex = 0;\n    modalDom.style.display = '';\n\n    this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });\n  },\n\n  closeModal: function closeModal(id) {\n    var modalStack = this.modalStack;\n    var modalDom = getModal();\n\n    if (modalStack.length > 0) {\n      var topItem = modalStack[modalStack.length - 1];\n      if (topItem.id === id) {\n        if (topItem.modalClass) {\n          var classArr = topItem.modalClass.trim().split(/\\s+/);\n          classArr.forEach(function (item) {\n            return (0, _dom.removeClass)(modalDom, item);\n          });\n        }\n\n        modalStack.pop();\n        if (modalStack.length > 0) {\n          modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;\n        }\n      } else {\n        for (var i = modalStack.length - 1; i >= 0; i--) {\n          if (modalStack[i].id === id) {\n            modalStack.splice(i, 1);\n            break;\n          }\n        }\n      }\n    }\n\n    if (modalStack.length === 0) {\n      if (this.modalFade) {\n        (0, _dom.addClass)(modalDom, 'v-modal-leave');\n      }\n      setTimeout(function () {\n        if (modalStack.length === 0) {\n          if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);\n          modalDom.style.display = 'none';\n          PopupManager.modalDom = undefined;\n        }\n        (0, _dom.removeClass)(modalDom, 'v-modal-leave');\n      }, 200);\n    }\n  }\n};\n\nObject.defineProperty(PopupManager, 'zIndex', {\n  configurable: true,\n  get: function get() {\n    if (!hasInitZIndex) {\n      zIndex = (_vue2.default.prototype.$ELEMENT || {}).zIndex || zIndex;\n      hasInitZIndex = true;\n    }\n    return zIndex;\n  },\n  set: function set(value) {\n    zIndex = value;\n  }\n});\n\nvar getTopPopup = function getTopPopup() {\n  if (_vue2.default.prototype.$isServer) return;\n  if (PopupManager.modalStack.length > 0) {\n    var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1];\n    if (!topPopup) return;\n    var instance = PopupManager.getInstance(topPopup.id);\n\n    return instance;\n  }\n};\n\nif (!_vue2.default.prototype.$isServer) {\n  // handle `esc` key when the popup is shown\n  window.addEventListener('keydown', function (event) {\n    if (event.keyCode === 27) {\n      var topPopup = getTopPopup();\n\n      if (topPopup && topPopup.closeOnPressEscape) {\n        topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close();\n      }\n    }\n  });\n}\n\nexports.default = PopupManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/popup/popup-manager.js\n// module id = wGXc\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar AxisBuilder = require(\"../axis/AxisBuilder\");\n\nvar graphic = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar _default = echarts.extendComponentView({\n  type: 'radar',\n  render: function (radarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n\n    this._buildAxes(radarModel);\n\n    this._buildSplitLineAndArea(radarModel);\n  },\n  _buildAxes: function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n    var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n      var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n        position: [radar.cx, radar.cy],\n        rotation: indicatorAxis.angle,\n        labelDirection: -1,\n        tickDirection: -1,\n        nameDirection: 1\n      });\n      return axisBuilder;\n    });\n    zrUtil.each(axisBuilders, function (axisBuilder) {\n      zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n      this.group.add(axisBuilder.getGroup());\n    }, this);\n  },\n  _buildSplitLineAndArea: function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n\n    if (!indicatorAxes.length) {\n      return;\n    }\n\n    var shape = radarModel.get('shape');\n    var splitLineModel = radarModel.getModel('splitLine');\n    var splitAreaModel = radarModel.getModel('splitArea');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var showSplitLine = splitLineModel.get('show');\n    var showSplitArea = splitAreaModel.get('show');\n    var splitLineColors = lineStyleModel.get('color');\n    var splitAreaColors = areaStyleModel.get('color');\n    splitLineColors = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n    splitAreaColors = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n    var splitLines = [];\n    var splitAreas = [];\n\n    function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n      var colorIndex = idx % areaOrLineColorList.length;\n      areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n      return colorIndex;\n    }\n\n    if (shape === 'circle') {\n      var ticksRadius = indicatorAxes[0].getTicksCoords();\n      var cx = radar.cx;\n      var cy = radar.cy;\n\n      for (var i = 0; i < ticksRadius.length; i++) {\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColors, i);\n          splitLines[colorIndex].push(new graphic.Circle({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r: ticksRadius[i].coord\n            }\n          }));\n        }\n\n        if (showSplitArea && i < ticksRadius.length - 1) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColors, i);\n          splitAreas[colorIndex].push(new graphic.Ring({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r0: ticksRadius[i].coord,\n              r: ticksRadius[i + 1].coord\n            }\n          }));\n        }\n      }\n    } // Polyyon\n    else {\n        var realSplitNumber;\n        var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n          var ticksCoords = indicatorAxis.getTicksCoords();\n          realSplitNumber = realSplitNumber == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber);\n          return zrUtil.map(ticksCoords, function (tickCoord) {\n            return radar.coordToPoint(tickCoord.coord, idx);\n          });\n        });\n        var prevPoints = [];\n\n        for (var i = 0; i <= realSplitNumber; i++) {\n          var points = [];\n\n          for (var j = 0; j < indicatorAxes.length; j++) {\n            points.push(axesTicksPoints[j][i]);\n          } // Close\n\n\n          if (points[0]) {\n            points.push(points[0].slice());\n          } else {}\n\n          if (showSplitLine) {\n            var colorIndex = getColorIndex(splitLines, splitLineColors, i);\n            splitLines[colorIndex].push(new graphic.Polyline({\n              shape: {\n                points: points\n              }\n            }));\n          }\n\n          if (showSplitArea && prevPoints) {\n            var colorIndex = getColorIndex(splitAreas, splitAreaColors, i - 1);\n            splitAreas[colorIndex].push(new graphic.Polygon({\n              shape: {\n                points: points.concat(prevPoints)\n              }\n            }));\n          }\n\n          prevPoints = points.slice().reverse();\n        }\n      }\n\n    var lineStyle = lineStyleModel.getLineStyle();\n    var areaStyle = areaStyleModel.getAreaStyle(); // Add splitArea before splitLine\n\n    zrUtil.each(splitAreas, function (splitAreas, idx) {\n      this.group.add(graphic.mergePath(splitAreas, {\n        style: zrUtil.defaults({\n          stroke: 'none',\n          fill: splitAreaColors[idx % splitAreaColors.length]\n        }, areaStyle),\n        silent: true\n      }));\n    }, this);\n    zrUtil.each(splitLines, function (splitLines, idx) {\n      this.group.add(graphic.mergePath(splitLines, {\n        style: zrUtil.defaults({\n          fill: 'none',\n          stroke: splitLineColors[idx % splitLineColors.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }, this);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/radar/RadarView.js\n// module id = wK34\n// module chunks = 0","var _config = require(\"../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\n/**\n * Notice, parseClassType('') should returns {main: '', sub: ''}\n * @public\n */\n\nfunction parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    componentType = componentType.split(TYPE_DELIMITER);\n    ret.main = componentType[0] || '';\n    ret.sub = componentType[1] || '';\n  }\n\n  return ret;\n}\n/**\n * @public\n */\n\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n/**\n * @public\n */\n\n\nfunction enableClassExtend(RootClass, mandatoryMethods) {\n  RootClass.$constructor = RootClass;\n\n  RootClass.extend = function (proto) {\n    var superClass = this;\n\n    var ExtendedClass = function () {\n      if (!proto.$constructor) {\n        superClass.apply(this, arguments);\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    };\n\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nvar classBase = 0;\n/**\n * Can not use instanceof, consider different scope by\n * cross domain or es module import in ec extensions.\n * Mount a method \"isInstance()\" to Clz.\n */\n\nfunction enableClassCheck(Clz) {\n  var classAttr = ['__\\0is_clz', classBase++, Math.random().toFixed(3)].join('_');\n  Clz.prototype[classAttr] = true;\n\n  Clz.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n} // superCall should have class info, which can not be fetch from 'this'.\n// Consider this case:\n// class A has method f,\n// class B inherits class A, overrides method f, f call superApply('f'),\n// class C inherits class B, do not overrides method f,\n// then when method of class C is called, dead loop occured.\n\n\nfunction superCall(context, methodName) {\n  var args = zrUtil.slice(arguments, 2);\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n/**\n * @param {Object} entity\n * @param {Object} options\n * @param {boolean} [options.registerWhenExtend]\n * @public\n */\n\n\nfunction enableClassManagement(entity, options) {\n  options = options || {};\n  /**\n   * Component model classes\n   * key: componentType,\n   * value:\n   *     componentClass, when componentType is 'xxx'\n   *     or Object.<subKey, componentClass>, when componentType is 'xxx.yy'\n   * @type {Object}\n   */\n\n  var storage = {};\n\n  entity.registerClass = function (Clazz, componentType) {\n    if (componentType) {\n      checkClassType(componentType);\n      componentType = parseClassType(componentType);\n\n      if (!componentType.sub) {\n        storage[componentType.main] = Clazz;\n      } else if (componentType.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentType);\n        container[componentType.sub] = Clazz;\n      }\n    }\n\n    return Clazz;\n  };\n\n  entity.getClass = function (componentMainType, subType, throwWhenNotFound) {\n    var Clazz = storage[componentMainType];\n\n    if (Clazz && Clazz[IS_CONTAINER]) {\n      Clazz = subType ? Clazz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !Clazz) {\n      throw new Error(!subType ? componentMainType + '.' + 'type should be specified.' : 'Component ' + componentMainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return Clazz;\n  };\n\n  entity.getClassesByMainType = function (componentType) {\n    componentType = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentType.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  entity.hasClass = function (componentType) {\n    // Just consider componentType.main.\n    componentType = parseClassType(componentType);\n    return !!storage[componentType.main];\n  };\n  /**\n   * @return {Array.<string>} Like ['aa', 'bb'], but can not be ['aa.xx']\n   */\n\n\n  entity.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n  /**\n   * If a main type is container and has sub types\n   * @param  {string}  mainType\n   * @return {boolean}\n   */\n\n\n  entity.hasSubTypes = function (componentType) {\n    componentType = parseClassType(componentType);\n    var obj = storage[componentType.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  entity.parseClassType = parseClassType;\n\n  function makeContainer(componentType) {\n    var container = storage[componentType.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentType.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n\n  if (options.registerWhenExtend) {\n    var originalExtend = entity.extend;\n\n    if (originalExtend) {\n      entity.extend = function (proto) {\n        var ExtendedClass = originalExtend.call(this, proto);\n        return entity.registerClass(ExtendedClass, proto.type);\n      };\n    }\n  }\n\n  return entity;\n}\n/**\n * @param {string|Array.<string>} properties\n */\n\n\nfunction setReadOnly(obj, properties) {// FIXME It seems broken in IE8 simulation of IE11\n  // if (!zrUtil.isArray(properties)) {\n  //     properties = properties != null ? [properties] : [];\n  // }\n  // zrUtil.each(properties, function (prop) {\n  //     var value = obj[prop];\n  //     Object.defineProperty\n  //         && Object.defineProperty(obj, prop, {\n  //             value: value, writable: false\n  //         });\n  //     zrUtil.isArray(obj[prop])\n  //         && Object.freeze\n  //         && Object.freeze(obj[prop]);\n  // });\n}\n\nexports.parseClassType = parseClassType;\nexports.enableClassExtend = enableClassExtend;\nexports.enableClassCheck = enableClassCheck;\nexports.enableClassManagement = enableClassManagement;\nexports.setReadOnly = setReadOnly;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/clazz.js\n// module id = wNlq\n// module chunks = 0","var Path = require(\"../Path\");\n\n/**\n * 鍦嗙幆\n * @module zrender/graphic/shape/Ring\n */\nvar _default = Path.extend({\n  type: 'ring',\n  shape: {\n    cx: 0,\n    cy: 0,\n    r: 0,\n    r0: 0\n  },\n  buildPath: function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var PI2 = Math.PI * 2;\n    ctx.moveTo(x + shape.r, y);\n    ctx.arc(x, y, shape.r, 0, PI2, false);\n    ctx.moveTo(x + shape.r0, y);\n    ctx.arc(x, y, shape.r0, 0, PI2, true);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Ring.js\n// module id = wO6C\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar _layout = require(\"../../util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/component/visualMap/VisualMapModel} visualMapModel\\\n * @param {module:echarts/ExtensionAPI} api\n * @param {Array.<number>} itemSize always [short, long]\n * @return {string} 'left' or 'right' or 'top' or 'bottom'\n */\nfunction getItemAlign(visualMapModel, api, itemSize) {\n  var modelOption = visualMapModel.option;\n  var itemAlign = modelOption.align;\n\n  if (itemAlign != null && itemAlign !== 'auto') {\n    return itemAlign;\n  } // Auto decision align.\n\n\n  var ecSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n  var paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\n  var reals = paramsSet[realIndex];\n  var fakeValue = [0, null, 10];\n  var layoutInput = {};\n\n  for (var i = 0; i < 3; i++) {\n    layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n    layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n  }\n\n  var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n  var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n  return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\n/**\n * Prepare dataIndex for outside usage, where dataIndex means rawIndex, and\n * dataIndexInside means filtered index.\n */\n\n\nfunction convertDataIndex(batch) {\n  zrUtil.each(batch || [], function (batchItem) {\n    if (batch.dataIndex != null) {\n      batch.dataIndexInside = batch.dataIndex;\n      batch.dataIndex = null;\n    }\n  });\n  return batch;\n}\n\nexports.getItemAlign = getItemAlign;\nexports.convertDataIndex = convertDataIndex;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/visualMap/helper.js\n// module id = wOHm\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/number/is-nan\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_babel-runtime@6.26.0@babel-runtime/core-js/number/is-nan.js\n// module id = wdUn\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar helper = require(\"./helper\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n/**\n * Operate single axis.\n * One axis can only operated by one axis operator.\n * Different dataZoomModels may be defined to operate the same axis.\n * (i.e. 'inside' data zoom and 'slider' data zoom components)\n * So dataZoomModels share one axisProxy in that case.\n *\n * @class\n */\n\nvar AxisProxy = function (dimName, axisIndex, dataZoomModel, ecModel) {\n  /**\n   * @private\n   * @type {string}\n   */\n  this._dimName = dimName;\n  /**\n   * @private\n   */\n\n  this._axisIndex = axisIndex;\n  /**\n   * @private\n   * @type {Array.<number>}\n   */\n\n  this._valueWindow;\n  /**\n   * @private\n   * @type {Array.<number>}\n   */\n\n  this._percentWindow;\n  /**\n   * @private\n   * @type {Array.<number>}\n   */\n\n  this._dataExtent;\n  /**\n   * {minSpan, maxSpan, minValueSpan, maxValueSpan}\n   * @private\n   * @type {Object}\n   */\n\n  this._minMaxSpan;\n  /**\n   * @readOnly\n   * @type {module: echarts/model/Global}\n   */\n\n  this.ecModel = ecModel;\n  /**\n   * @private\n   * @type {module: echarts/component/dataZoom/DataZoomModel}\n   */\n\n  this._dataZoomModel = dataZoomModel; // /**\n  //  * @readOnly\n  //  * @private\n  //  */\n  // this.hasSeriesStacked;\n};\n\nAxisProxy.prototype = {\n  constructor: AxisProxy,\n\n  /**\n   * Whether the axisProxy is hosted by dataZoomModel.\n   *\n   * @public\n   * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n   * @return {boolean}\n   */\n  hostedBy: function (dataZoomModel) {\n    return this._dataZoomModel === dataZoomModel;\n  },\n\n  /**\n   * @return {Array.<number>} Value can only be NaN or finite value.\n   */\n  getDataValueWindow: function () {\n    return this._valueWindow.slice();\n  },\n\n  /**\n   * @return {Array.<number>}\n   */\n  getDataPercentWindow: function () {\n    return this._percentWindow.slice();\n  },\n\n  /**\n   * @public\n   * @param {number} axisIndex\n   * @return {Array} seriesModels\n   */\n  getTargetSeriesModels: function () {\n    var seriesModels = [];\n    var ecModel = this.ecModel;\n    ecModel.eachSeries(function (seriesModel) {\n      if (helper.isCoordSupported(seriesModel.get('coordinateSystem'))) {\n        var dimName = this._dimName;\n        var axisModel = ecModel.queryComponents({\n          mainType: dimName + 'Axis',\n          index: seriesModel.get(dimName + 'AxisIndex'),\n          id: seriesModel.get(dimName + 'AxisId')\n        })[0];\n\n        if (this._axisIndex === (axisModel && axisModel.componentIndex)) {\n          seriesModels.push(seriesModel);\n        }\n      }\n    }, this);\n    return seriesModels;\n  },\n  getAxisModel: function () {\n    return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n  },\n  getOtherAxisModel: function () {\n    var axisDim = this._dimName;\n    var ecModel = this.ecModel;\n    var axisModel = this.getAxisModel();\n    var isCartesian = axisDim === 'x' || axisDim === 'y';\n    var otherAxisDim;\n    var coordSysIndexName;\n\n    if (isCartesian) {\n      coordSysIndexName = 'gridIndex';\n      otherAxisDim = axisDim === 'x' ? 'y' : 'x';\n    } else {\n      coordSysIndexName = 'polarIndex';\n      otherAxisDim = axisDim === 'angle' ? 'radius' : 'angle';\n    }\n\n    var foundOtherAxisModel;\n    ecModel.eachComponent(otherAxisDim + 'Axis', function (otherAxisModel) {\n      if ((otherAxisModel.get(coordSysIndexName) || 0) === (axisModel.get(coordSysIndexName) || 0)) {\n        foundOtherAxisModel = otherAxisModel;\n      }\n    });\n    return foundOtherAxisModel;\n  },\n  getMinMaxSpan: function () {\n    return zrUtil.clone(this._minMaxSpan);\n  },\n\n  /**\n   * Only calculate by given range and this._dataExtent, do not change anything.\n   *\n   * @param {Object} opt\n   * @param {number} [opt.start]\n   * @param {number} [opt.end]\n   * @param {number} [opt.startValue]\n   * @param {number} [opt.endValue]\n   */\n  calculateDataWindow: function (opt) {\n    var dataExtent = this._dataExtent;\n    var axisModel = this.getAxisModel();\n    var scale = axisModel.axis.scale;\n\n    var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n    var percentExtent = [0, 100];\n    var percentWindow = [opt.start, opt.end];\n    var valueWindow = [];\n    each(['startValue', 'endValue'], function (prop) {\n      valueWindow.push(opt[prop] != null ? scale.parse(opt[prop]) : null);\n    }); // Normalize bound.\n\n    each([0, 1], function (idx) {\n      var boundValue = valueWindow[idx];\n      var boundPercent = percentWindow[idx]; // Notice: dataZoom is based either on `percentProp` ('start', 'end') or\n      // on `valueProp` ('startValue', 'endValue'). The former one is suitable\n      // for cases that a dataZoom component controls multiple axes with different\n      // unit or extent, and the latter one is suitable for accurate zoom by pixel\n      // (e.g., in dataZoomSelect). `valueProp` can be calculated from `percentProp`,\n      // but it is awkward that `percentProp` can not be obtained from `valueProp`\n      // accurately (because all of values that are overflow the `dataExtent` will\n      // be calculated to percent '100%'). So we have to use\n      // `dataZoom.getRangePropMode()` to mark which prop is used.\n      // `rangePropMode` is updated only when setOption or dispatchAction, otherwise\n      // it remains its original value.\n\n      if (rangePropMode[idx] === 'percent') {\n        if (boundPercent == null) {\n          boundPercent = percentExtent[idx];\n        } // Use scale.parse to math round for category or time axis.\n\n\n        boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent, true));\n      } else {\n        // Calculating `percent` from `value` may be not accurate, because\n        // This calculation can not be inversed, because all of values that\n        // are overflow the `dataExtent` will be calculated to percent '100%'\n        boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent, true);\n      } // valueWindow[idx] = round(boundValue);\n      // percentWindow[idx] = round(boundPercent);\n\n\n      valueWindow[idx] = boundValue;\n      percentWindow[idx] = boundPercent;\n    });\n    return {\n      valueWindow: asc(valueWindow),\n      percentWindow: asc(percentWindow)\n    };\n  },\n\n  /**\n   * Notice: reset should not be called before series.restoreData() called,\n   * so it is recommanded to be called in \"process stage\" but not \"model init\n   * stage\".\n   *\n   * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n   */\n  reset: function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var targetSeries = this.getTargetSeriesModels(); // Culculate data window and data extent, and record them.\n\n    this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries); // this.hasSeriesStacked = false;\n    // each(targetSeries, function (series) {\n    // var data = series.getData();\n    // var dataDim = data.mapDimension(this._dimName);\n    // var stackedDimension = data.getCalculationInfo('stackedDimension');\n    // if (stackedDimension && stackedDimension === dataDim) {\n    // this.hasSeriesStacked = true;\n    // }\n    // }, this);\n\n    var dataWindow = this.calculateDataWindow(dataZoomModel.option);\n    this._valueWindow = dataWindow.valueWindow;\n    this._percentWindow = dataWindow.percentWindow;\n    setMinMaxSpan(this); // Update axis setting then.\n\n    setAxisModel(this);\n  },\n\n  /**\n   * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n   */\n  restore: function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    this._valueWindow = this._percentWindow = null;\n    setAxisModel(this, true);\n  },\n\n  /**\n   * @param {module: echarts/component/dataZoom/DataZoomModel} dataZoomModel\n   */\n  filterData: function (dataZoomModel, api) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var axisDim = this._dimName;\n    var seriesModels = this.getTargetSeriesModels();\n    var filterMode = dataZoomModel.get('filterMode');\n    var valueWindow = this._valueWindow;\n\n    if (filterMode === 'none') {\n      return;\n    } // FIXME\n    // Toolbox may has dataZoom injected. And if there are stacked bar chart\n    // with NaN data, NaN will be filtered and stack will be wrong.\n    // So we need to force the mode to be set empty.\n    // In fect, it is not a big deal that do not support filterMode-'filter'\n    // when using toolbox#dataZoom, utill tooltip#dataZoom support \"single axis\n    // selection\" some day, which might need \"adapt to data extent on the\n    // otherAxis\", which is disabled by filterMode-'empty'.\n    // But currently, stack has been fixed to based on value but not index,\n    // so this is not an issue any more.\n    // var otherAxisModel = this.getOtherAxisModel();\n    // if (dataZoomModel.get('$fromToolbox')\n    //     && otherAxisModel\n    //     && otherAxisModel.hasSeriesStacked\n    // ) {\n    //     filterMode = 'empty';\n    // }\n    // TODO\n    // filterMode 'weakFilter' and 'empty' is not optimized for huge data yet.\n    // Process series data\n\n\n    each(seriesModels, function (seriesModel) {\n      var seriesData = seriesModel.getData();\n      var dataDims = seriesData.mapDimension(axisDim, true);\n\n      if (filterMode === 'weakFilter') {\n        seriesData.filterSelf(function (dataIndex) {\n          var leftOut;\n          var rightOut;\n          var hasValue;\n\n          for (var i = 0; i < dataDims.length; i++) {\n            var value = seriesData.get(dataDims[i], dataIndex);\n            var thisHasValue = !isNaN(value);\n            var thisLeftOut = value < valueWindow[0];\n            var thisRightOut = value > valueWindow[1];\n\n            if (thisHasValue && !thisLeftOut && !thisRightOut) {\n              return true;\n            }\n\n            thisHasValue && (hasValue = true);\n            thisLeftOut && (leftOut = true);\n            thisRightOut && (rightOut = true);\n          } // If both left out and right out, do not filter.\n\n\n          return hasValue && leftOut && rightOut;\n        });\n      } else {\n        each(dataDims, function (dim) {\n          if (filterMode === 'empty') {\n            seriesModel.setData(seriesData.map(dim, function (value) {\n              return !isInWindow(value) ? NaN : value;\n            }));\n          } else {\n            var range = {};\n            range[dim] = valueWindow; // console.time('select');\n\n            seriesData.selectRange(range); // console.timeEnd('select');\n          }\n        });\n      }\n\n      each(dataDims, function (dim) {\n        seriesData.setApproximateExtent(valueWindow, dim);\n      });\n    });\n\n    function isInWindow(value) {\n      return value >= valueWindow[0] && value <= valueWindow[1];\n    }\n  }\n};\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n  var dataExtent = [Infinity, -Infinity];\n  each(seriesModels, function (seriesModel) {\n    var seriesData = seriesModel.getData();\n\n    if (seriesData) {\n      each(seriesData.mapDimension(axisDim, true), function (dim) {\n        var seriesExtent = seriesData.getApproximateExtent(dim);\n        seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n        seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n      });\n    }\n  });\n\n  if (dataExtent[1] < dataExtent[0]) {\n    dataExtent = [NaN, NaN];\n  } // It is important to get \"consistent\" extent when more then one axes is\n  // controlled by a `dataZoom`, otherwise those axes will not be synchronized\n  // when zooming. But it is difficult to know what is \"consistent\", considering\n  // axes have different type or even different meanings (For example, two\n  // time axes are used to compare data of the same date in different years).\n  // So basically dataZoom just obtains extent by series.data (in category axis\n  // extent can be obtained from axis.data).\n  // Nevertheless, user can set min/max/scale on axes to make extent of axes\n  // consistent.\n\n\n  fixExtentByAxis(axisProxy, dataExtent);\n  return dataExtent;\n}\n\nfunction fixExtentByAxis(axisProxy, dataExtent) {\n  var axisModel = axisProxy.getAxisModel();\n  var min = axisModel.getMin(true); // For category axis, if min/max/scale are not set, extent is determined\n  // by axis.data by default.\n\n  var isCategoryAxis = axisModel.get('type') === 'category';\n  var axisDataLen = isCategoryAxis && axisModel.getCategories().length;\n\n  if (min != null && min !== 'dataMin' && typeof min !== 'function') {\n    dataExtent[0] = min;\n  } else if (isCategoryAxis) {\n    dataExtent[0] = axisDataLen > 0 ? 0 : NaN;\n  }\n\n  var max = axisModel.getMax(true);\n\n  if (max != null && max !== 'dataMax' && typeof max !== 'function') {\n    dataExtent[1] = max;\n  } else if (isCategoryAxis) {\n    dataExtent[1] = axisDataLen > 0 ? axisDataLen - 1 : NaN;\n  }\n\n  if (!axisModel.get('scale', true)) {\n    dataExtent[0] > 0 && (dataExtent[0] = 0);\n    dataExtent[1] < 0 && (dataExtent[1] = 0);\n  } // For value axis, if min/max/scale are not set, we just use the extent obtained\n  // by series data, which may be a little different from the extent calculated by\n  // `axisHelper.getScaleExtent`. But the different just affects the experience a\n  // little when zooming. So it will not be fixed until some users require it strongly.\n\n\n  return dataExtent;\n}\n\nfunction setAxisModel(axisProxy, isRestore) {\n  var axisModel = axisProxy.getAxisModel();\n  var percentWindow = axisProxy._percentWindow;\n  var valueWindow = axisProxy._valueWindow;\n\n  if (!percentWindow) {\n    return;\n  } // [0, 500]: arbitrary value, guess axis extent.\n\n\n  var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n  precision = Math.min(precision, 20); // isRestore or isFull\n\n  var useOrigin = isRestore || percentWindow[0] === 0 && percentWindow[1] === 100;\n  axisModel.setRange(useOrigin ? null : +valueWindow[0].toFixed(precision), useOrigin ? null : +valueWindow[1].toFixed(precision));\n}\n\nfunction setMinMaxSpan(axisProxy) {\n  var minMaxSpan = axisProxy._minMaxSpan = {};\n  var dataZoomModel = axisProxy._dataZoomModel;\n  each(['min', 'max'], function (minMax) {\n    minMaxSpan[minMax + 'Span'] = dataZoomModel.get(minMax + 'Span'); // minValueSpan and maxValueSpan has higher priority than minSpan and maxSpan\n\n    var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n\n    if (valueSpan != null) {\n      minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n      valueSpan = axisProxy.getAxisModel().axis.scale.parse(valueSpan);\n\n      if (valueSpan != null) {\n        var dataExtent = axisProxy._dataExtent;\n        minMaxSpan[minMax + 'Span'] = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n      }\n    }\n  });\n}\n\nvar _default = AxisProxy;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/AxisProxy.js\n// module id = we00\n// module chunks = 0","var echarts = require(\"../../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar magicTypeLang = lang.toolbox.magicType;\n\nfunction MagicType(model) {\n  this.model = model;\n}\n\nMagicType.defaultOption = {\n  show: true,\n  type: [],\n  // Icon group\n  icon: {\n    line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n    bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n    stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z',\n    // jshint ignore:line\n    tiled: 'M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z'\n  },\n  // `line`, `bar`, `stack`, `tiled`\n  title: zrUtil.clone(magicTypeLang.title),\n  option: {},\n  seriesIndex: {}\n};\nvar proto = MagicType.prototype;\n\nproto.getIcons = function () {\n  var model = this.model;\n  var availableIcons = model.get('icon');\n  var icons = {};\n  zrUtil.each(model.get('type'), function (type) {\n    if (availableIcons[type]) {\n      icons[type] = availableIcons[type];\n    }\n  });\n  return icons;\n};\n\nvar seriesOptGenreator = {\n  'line': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'line',\n        // Preserve data related option\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get('option.line') || {}, true);\n    }\n  },\n  'bar': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'bar',\n        // Preserve data related option\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get('option.bar') || {}, true);\n    }\n  },\n  'stack': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line' || seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        stack: '__ec_magicType_stack__'\n      }, model.get('option.stack') || {}, true);\n    }\n  },\n  'tiled': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line' || seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        stack: ''\n      }, model.get('option.tiled') || {}, true);\n    }\n  }\n};\nvar radioTypes = [['line', 'bar'], ['stack', 'tiled']];\n\nproto.onclick = function (ecModel, api, type) {\n  var model = this.model;\n  var seriesIndex = model.get('seriesIndex.' + type); // Not supported magicType\n\n  if (!seriesOptGenreator[type]) {\n    return;\n  }\n\n  var newOption = {\n    series: []\n  };\n\n  var generateNewSeriesTypes = function (seriesModel) {\n    var seriesType = seriesModel.subType;\n    var seriesId = seriesModel.id;\n    var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n    if (newSeriesOpt) {\n      // PENDING If merge original option?\n      zrUtil.defaults(newSeriesOpt, seriesModel.option);\n      newOption.series.push(newSeriesOpt);\n    } // Modify boundaryGap\n\n\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n      var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n      if (categoryAxis) {\n        var axisDim = categoryAxis.dim;\n        var axisType = axisDim + 'Axis';\n        var axisModel = ecModel.queryComponents({\n          mainType: axisType,\n          index: seriesModel.get(name + 'Index'),\n          id: seriesModel.get(name + 'Id')\n        })[0];\n        var axisIndex = axisModel.componentIndex;\n        newOption[axisType] = newOption[axisType] || [];\n\n        for (var i = 0; i <= axisIndex; i++) {\n          newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n        }\n\n        newOption[axisType][axisIndex].boundaryGap = type === 'bar' ? true : false;\n      }\n    }\n  };\n\n  zrUtil.each(radioTypes, function (radio) {\n    if (zrUtil.indexOf(radio, type) >= 0) {\n      zrUtil.each(radio, function (item) {\n        model.setIconStatus(item, 'normal');\n      });\n    }\n  });\n  model.setIconStatus(type, 'emphasis');\n  ecModel.eachComponent({\n    mainType: 'series',\n    query: seriesIndex == null ? null : {\n      seriesIndex: seriesIndex\n    }\n  }, generateNewSeriesTypes);\n  api.dispatchAction({\n    type: 'changeMagicType',\n    currentType: type,\n    newOption: newOption\n  });\n};\n\necharts.registerAction({\n  type: 'changeMagicType',\n  event: 'magicTypeChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.mergeOption(payload.newOption);\n});\nfeatureManager.register('magicType', MagicType);\nvar _default = MagicType;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/toolbox/feature/MagicType.js\n// module id = wks9\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {Object} finder contains {seriesIndex, dataIndex, dataIndexInside}\n * @param {module:echarts/model/Global} ecModel\n * @return {Object} {point: [x, y], el: ...} point Will not be null.\n */\nfunction _default(finder, ecModel) {\n  var point = [];\n  var seriesIndex = finder.seriesIndex;\n  var seriesModel;\n\n  if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n    return {\n      point: []\n    };\n  }\n\n  var data = seriesModel.getData();\n  var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n  if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n    return {\n      point: []\n    };\n  }\n\n  var el = data.getItemGraphicEl(dataIndex);\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (seriesModel.getTooltipPosition) {\n    point = seriesModel.getTooltipPosition(dataIndex) || [];\n  } else if (coordSys && coordSys.dataToPoint) {\n    point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n      return data.mapDimension(dim);\n    }), dataIndex, true)) || [];\n  } else if (el) {\n    // Use graphic bounding rect\n    var rect = el.getBoundingRect().clone();\n    rect.applyTransform(el.transform);\n    point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n\n  return {\n    point: point,\n    el: el\n  };\n}\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/axisPointer/findPointFromSeries.js\n// module id = wsbZ\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"../component/singleAxis\");\n\nrequire(\"./themeRiver/ThemeRiverSeries\");\n\nrequire(\"./themeRiver/ThemeRiverView\");\n\nvar themeRiverLayout = require(\"./themeRiver/themeRiverLayout\");\n\nvar themeRiverVisual = require(\"./themeRiver/themeRiverVisual\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(themeRiverLayout);\necharts.registerVisual(themeRiverVisual);\necharts.registerProcessor(dataFilter('themeRiver'));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/themeRiver.js\n// module id = wxPZ\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./marker/MarkLineModel\");\n\nrequire(\"./marker/MarkLineView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerPreprocessor(function (opt) {\n  // Make sure markLine component is enabled\n  opt.markLine = opt.markLine || {};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/markLine.js\n// module id = x1f2\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports.isDef = isDef;\nexports.isKorean = isKorean;\nfunction isDef(val) {\n  return val !== undefined && val !== null;\n}\nfunction isKorean(text) {\n  var reg = /([(\\uAC00-\\uD7AF)|(\\u3130-\\u318F)])+/gi;\n  return reg.test(text);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/shared.js\n// module id = xHIt\n// module chunks = 0","var _dataProvider = require(\"../../data/helper/dataProvider\");\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\nvar _format = require(\"../../util/format\");\n\nvar getTooltipMarker = _format.getTooltipMarker;\nvar formatTpl = _format.formatTpl;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g; // PENDING A little ugly\n\nvar _default = {\n  /**\n   * Get params for formatter\n   * @param {number} dataIndex\n   * @param {string} [dataType]\n   * @return {Object}\n   */\n  getDataParams: function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var color = data.getItemVisual(dataIndex, 'color');\n    return {\n      componentType: this.mainType,\n      componentSubType: this.subType,\n      seriesType: this.mainType === 'series' ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: this.id,\n      seriesName: this.name,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      marker: getTooltipMarker(color),\n      // Param name list for mapping `a`, `b`, `c`, `d`, `e`\n      $vars: ['seriesName', 'name', 'value']\n    };\n  },\n\n  /**\n   * Format label\n   * @param {number} dataIndex\n   * @param {string} [status='normal'] 'normal' or 'emphasis'\n   * @param {string} [dataType]\n   * @param {number} [dimIndex]\n   * @param {string} [labelProp='label']\n   * @return {string} If not formatter, return null/undefined\n   */\n  getFormattedLabel: function (dataIndex, status, dataType, dimIndex, labelProp) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var itemModel = data.getItemModel(dataIndex);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (dimIndex != null && params.value instanceof Array) {\n      params.value = params.value[dimIndex];\n    }\n\n    var formatter = itemModel.get(status === 'normal' ? [labelProp || 'label', 'formatter'] : [status, labelProp || 'label', 'formatter']);\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params); // Support 'aaa{@[3]}bbb{@product}ccc'.\n      // Do not support '}' in dim name util have to.\n\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\n        var len = dim.length;\n\n        if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\n          dim = +dim.slice(1, len - 1); // Also: '[]' => 0\n        }\n\n        return retrieveRawValue(data, dataIndex, dim);\n      });\n    }\n  },\n\n  /**\n   * Get raw value in option\n   * @param {number} idx\n   * @param {string} [dataType]\n   * @return {Array|number|string}\n   */\n  getRawValue: function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  },\n\n  /**\n   * Should be implemented.\n   * @param {number} dataIndex\n   * @param {boolean} [multipleSeries=false]\n   * @param {number} [dataType]\n   * @return {string} tooltip string\n   */\n  formatTooltip: function () {// Empty function\n  }\n};\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/mixin/dataFormat.js\n// module id = xPAV\n// module chunks = 0","var echarts = require(\"../../echarts\");\n\nvar _roamHelper = require(\"../../action/roamHelper\");\n\nvar updateCenterAndZoom = _roamHelper.updateCenterAndZoom;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar actionInfo = {\n  type: 'graphRoam',\n  event: 'graphRoam',\n  update: 'none'\n};\n/**\n * @payload\n * @property {string} name Series name\n * @property {number} [dx]\n * @property {number} [dy]\n * @property {number} [zoom]\n * @property {number} [originX]\n * @property {number} [originY]\n */\n\necharts.registerAction(actionInfo, function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'series',\n    query: payload\n  }, function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var res = updateCenterAndZoom(coordSys, payload);\n    seriesModel.setCenter && seriesModel.setCenter(res.center);\n    seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n  });\n});\n/**\n * @payload\n * @property {number} [seriesIndex]\n * @property {string} [seriesId]\n * @property {string} [seriesName]\n * @property {number} [dataIndex]\n */\n\necharts.registerAction({\n  type: 'focusNodeAdjacency',\n  event: 'focusNodeAdjacency',\n  update: 'series.graph:focusNodeAdjacency'\n}, function () {});\n/**\n * @payload\n * @property {number} [seriesIndex]\n * @property {string} [seriesId]\n * @property {string} [seriesName]\n */\n\necharts.registerAction({\n  type: 'unfocusNodeAdjacency',\n  event: 'unfocusNodeAdjacency',\n  update: 'series.graph:unfocusNodeAdjacency'\n}, function () {});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/graph/graphAction.js\n// module id = xUwI\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar _model = require(\"../util/model\");\n\nvar makeInner = _model.makeInner;\n\nvar _clazz = require(\"../util/clazz\");\n\nvar enableClassExtend = _clazz.enableClassExtend;\nvar enableClassCheck = _clazz.enableClassCheck;\n\nvar lineStyleMixin = require(\"./mixin/lineStyle\");\n\nvar areaStyleMixin = require(\"./mixin/areaStyle\");\n\nvar textStyleMixin = require(\"./mixin/textStyle\");\n\nvar itemStyleMixin = require(\"./mixin/itemStyle\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/model/Model\n */\nvar mixin = zrUtil.mixin;\nvar inner = makeInner();\n/**\n * @alias module:echarts/model/Model\n * @constructor\n * @param {Object} option\n * @param {module:echarts/model/Model} [parentModel]\n * @param {module:echarts/model/Global} [ecModel]\n */\n\nfunction Model(option, parentModel, ecModel) {\n  /**\n   * @type {module:echarts/model/Model}\n   * @readOnly\n   */\n  this.parentModel = parentModel;\n  /**\n   * @type {module:echarts/model/Global}\n   * @readOnly\n   */\n\n  this.ecModel = ecModel;\n  /**\n   * @type {Object}\n   * @protected\n   */\n\n  this.option = option; // Simple optimization\n  // if (this.init) {\n  //     if (arguments.length <= 4) {\n  //         this.init(option, parentModel, ecModel, extraOpt);\n  //     }\n  //     else {\n  //         this.init.apply(this, arguments);\n  //     }\n  // }\n}\n\nModel.prototype = {\n  constructor: Model,\n\n  /**\n   * Model 鐨勫垵濮嬪寲鍑芥暟\n   * @param {Object} option\n   */\n  init: null,\n\n  /**\n   * 浠庢柊鐨� Option merge\n   */\n  mergeOption: function (option) {\n    zrUtil.merge(this.option, option, true);\n  },\n\n  /**\n   * @param {string|Array.<string>} path\n   * @param {boolean} [ignoreParent=false]\n   * @return {*}\n   */\n  get: function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return doGet(this.option, this.parsePath(path), !ignoreParent && getParent(this, path));\n  },\n\n  /**\n   * @param {string} key\n   * @param {boolean} [ignoreParent=false]\n   * @return {*}\n   */\n  getShallow: function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n    var parentModel = !ignoreParent && getParent(this, key);\n\n    if (val == null && parentModel) {\n      val = parentModel.getShallow(key);\n    }\n\n    return val;\n  },\n\n  /**\n   * @param {string|Array.<string>} [path]\n   * @param {module:echarts/model/Model} [parentModel]\n   * @return {module:echarts/model/Model}\n   */\n  getModel: function (path, parentModel) {\n    var obj = path == null ? this.option : doGet(this.option, path = this.parsePath(path));\n    var thisParentModel;\n    parentModel = parentModel || (thisParentModel = getParent(this, path)) && thisParentModel.getModel(path);\n    return new Model(obj, parentModel, this.ecModel);\n  },\n\n  /**\n   * If model has option\n   */\n  isEmpty: function () {\n    return this.option == null;\n  },\n  restoreData: function () {},\n  // Pending\n  clone: function () {\n    var Ctor = this.constructor;\n    return new Ctor(zrUtil.clone(this.option));\n  },\n  setReadOnly: function (properties) {// clazzUtil.setReadOnly(this, properties);\n  },\n  // If path is null/undefined, return null/undefined.\n  parsePath: function (path) {\n    if (typeof path === 'string') {\n      path = path.split('.');\n    }\n\n    return path;\n  },\n\n  /**\n   * @param {Function} getParentMethod\n   *        param {Array.<string>|string} path\n   *        return {module:echarts/model/Model}\n   */\n  customizeGetParent: function (getParentMethod) {\n    inner(this).getParent = getParentMethod;\n  },\n  isAnimationEnabled: function () {\n    if (!env.node) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  }\n};\n\nfunction doGet(obj, pathArr, parentModel) {\n  for (var i = 0; i < pathArr.length; i++) {\n    // Ignore empty\n    if (!pathArr[i]) {\n      continue;\n    } // obj could be number/string/... (like 0)\n\n\n    obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  if (obj == null && parentModel) {\n    obj = parentModel.get(pathArr);\n  }\n\n  return obj;\n} // `path` can be null/undefined\n\n\nfunction getParent(model, path) {\n  var getParentMethod = inner(model).getParent;\n  return getParentMethod ? getParentMethod.call(model, path) : model.parentModel;\n} // Enable Model.extend.\n\n\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, lineStyleMixin);\nmixin(Model, areaStyleMixin);\nmixin(Model, textStyleMixin);\nmixin(Model, itemStyleMixin);\nvar _default = Model;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/model/Model.js\n// module id = xWTI\n// module chunks = 0","var zrLog = require(\"../core/log\");\n\nvar vmlCore = require(\"./core\");\n\nvar _util = require(\"../core/util\");\n\nvar each = _util.each;\n\n/**\n * VML Painter.\n *\n * @module zrender/vml/Painter\n */\nfunction parseInt10(val) {\n  return parseInt(val, 10);\n}\n/**\n * @alias module:zrender/vml/Painter\n */\n\n\nfunction VMLPainter(root, storage) {\n  vmlCore.initVML();\n  this.root = root;\n  this.storage = storage;\n  var vmlViewport = document.createElement('div');\n  var vmlRoot = document.createElement('div');\n  vmlViewport.style.cssText = 'display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;';\n  vmlRoot.style.cssText = 'position:absolute;left:0;top:0;';\n  root.appendChild(vmlViewport);\n  this._vmlRoot = vmlRoot;\n  this._vmlViewport = vmlViewport;\n  this.resize(); // Modify storage\n\n  var oldDelFromStorage = storage.delFromStorage;\n  var oldAddToStorage = storage.addToStorage;\n\n  storage.delFromStorage = function (el) {\n    oldDelFromStorage.call(storage, el);\n\n    if (el) {\n      el.onRemove && el.onRemove(vmlRoot);\n    }\n  };\n\n  storage.addToStorage = function (el) {\n    // Displayable already has a vml node\n    el.onAdd && el.onAdd(vmlRoot);\n    oldAddToStorage.call(storage, el);\n  };\n\n  this._firstPaint = true;\n}\n\nVMLPainter.prototype = {\n  constructor: VMLPainter,\n  getType: function () {\n    return 'vml';\n  },\n\n  /**\n   * @return {HTMLDivElement}\n   */\n  getViewportRoot: function () {\n    return this._vmlViewport;\n  },\n  getViewportRootOffset: function () {\n    var viewportRoot = this.getViewportRoot();\n\n    if (viewportRoot) {\n      return {\n        offsetLeft: viewportRoot.offsetLeft || 0,\n        offsetTop: viewportRoot.offsetTop || 0\n      };\n    }\n  },\n\n  /**\n   * 鍒锋柊\n   */\n  refresh: function () {\n    var list = this.storage.getDisplayList(true, true);\n\n    this._paintList(list);\n  },\n  _paintList: function (list) {\n    var vmlRoot = this._vmlRoot;\n\n    for (var i = 0; i < list.length; i++) {\n      var el = list[i];\n\n      if (el.invisible || el.ignore) {\n        if (!el.__alreadyNotVisible) {\n          el.onRemove(vmlRoot);\n        } // Set as already invisible\n\n\n        el.__alreadyNotVisible = true;\n      } else {\n        if (el.__alreadyNotVisible) {\n          el.onAdd(vmlRoot);\n        }\n\n        el.__alreadyNotVisible = false;\n\n        if (el.__dirty) {\n          el.beforeBrush && el.beforeBrush();\n          (el.brushVML || el.brush).call(el, vmlRoot);\n          el.afterBrush && el.afterBrush();\n        }\n      }\n\n      el.__dirty = false;\n    }\n\n    if (this._firstPaint) {\n      // Detached from document at first time\n      // to avoid page refreshing too many times\n      // FIXME 濡傛灉姣忔閮藉厛 removeChild 鍙兘浼氬鑷翠竴浜涘~鍏呭拰鎻忚竟鐨勬晥鏋滄敼鍙榎n      this._vmlViewport.appendChild(vmlRoot);\n\n      this._firstPaint = false;\n    }\n  },\n  resize: function (width, height) {\n    var width = width == null ? this._getWidth() : width;\n    var height = height == null ? this._getHeight() : height;\n\n    if (this._width != width || this._height != height) {\n      this._width = width;\n      this._height = height;\n      var vmlViewportStyle = this._vmlViewport.style;\n      vmlViewportStyle.width = width + 'px';\n      vmlViewportStyle.height = height + 'px';\n    }\n  },\n  dispose: function () {\n    this.root.innerHTML = '';\n    this._vmlRoot = this._vmlViewport = this.storage = null;\n  },\n  getWidth: function () {\n    return this._width;\n  },\n  getHeight: function () {\n    return this._height;\n  },\n  clear: function () {\n    if (this._vmlViewport) {\n      this.root.removeChild(this._vmlViewport);\n    }\n  },\n  _getWidth: function () {\n    var root = this.root;\n    var stl = root.currentStyle;\n    return (root.clientWidth || parseInt10(stl.width)) - parseInt10(stl.paddingLeft) - parseInt10(stl.paddingRight) | 0;\n  },\n  _getHeight: function () {\n    var root = this.root;\n    var stl = root.currentStyle;\n    return (root.clientHeight || parseInt10(stl.height)) - parseInt10(stl.paddingTop) - parseInt10(stl.paddingBottom) | 0;\n  }\n}; // Not supported methods\n\nfunction createMethodNotSupport(method) {\n  return function () {\n    zrLog('In IE8.0 VML mode painter not support method \"' + method + '\"');\n  };\n} // Unsupported methods\n\n\neach(['getLayer', 'insertLayer', 'eachLayer', 'eachBuiltinLayer', 'eachOtherLayer', 'getLayers', 'modLayer', 'delLayer', 'clearLayer', 'toDataURL', 'pathToImage'], function (name) {\n  VMLPainter.prototype[name] = createMethodNotSupport(name);\n});\nvar _default = VMLPainter;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/vml/Painter.js\n// module id = xvXB\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = function (Vue) {\n\n  /**\n   * template\n   *\n   * @param {String} string\n   * @param {Array} ...args\n   * @return {String}\n   */\n\n  function template(string) {\n    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    if (args.length === 1 && _typeof(args[0]) === 'object') {\n      args = args[0];\n    }\n\n    if (!args || !args.hasOwnProperty) {\n      args = {};\n    }\n\n    return string.replace(RE_NARGS, function (match, prefix, i, index) {\n      var result = void 0;\n\n      if (string[index - 1] === '{' && string[index + match.length] === '}') {\n        return i;\n      } else {\n        result = (0, _util.hasOwn)(args, i) ? args[i] : null;\n        if (result === null || result === undefined) {\n          return '';\n        }\n\n        return result;\n      }\n    });\n  }\n\n  return template;\n};\n\nvar _util = require('element-ui/lib/utils/util');\n\nvar RE_NARGS = /(%|)\\{([0-9a-zA-Z_]+)\\}/g;\n/**\n *  String format template\n *  - Inspired:\n *    https://github.com/Matt-Esch/string-template/index.js\n */\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/locale/format.js\n// module id = xwJU\n// module chunks = 0","var numberUtil = require(\"../util/number\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * For testable.\n */\nvar roundNumber = numberUtil.round;\n/**\n * @param {Array.<number>} extent Both extent[0] and extent[1] should be valid number.\n *                                Should be extent[0] < extent[1].\n * @param {number} splitNumber splitNumber should be >= 1.\n * @param {number} [minInterval]\n * @param {number} [maxInterval]\n * @return {Object} {interval, intervalPrecision, niceTickExtent}\n */\n\nfunction intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  } // Tow more digital for tick.\n\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval); // Niced extent inside original extent\n\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\n/**\n * @param {number} interval\n * @return {number} interval precision\n */\n\n\nfunction getIntervalPrecision(interval) {\n  // Tow more digital for tick.\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n} // In some cases (e.g., splitNumber is 1), niceTickExtent may be out of extent.\n\n\nfunction fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\n\nfunction intervalScaleGetTicks(interval, extent, niceTickExtent, intervalPrecision) {\n  var ticks = []; // If interval is 0, return [];\n\n  if (!interval) {\n    return ticks;\n  } // Consider this case: using dataZoom toolbox, zoom and zoom.\n\n\n  var safeLimit = 10000;\n\n  if (extent[0] < niceTickExtent[0]) {\n    ticks.push(extent[0]);\n  }\n\n  var tick = niceTickExtent[0];\n\n  while (tick <= niceTickExtent[1]) {\n    ticks.push(tick); // Avoid rounding error\n\n    tick = roundNumber(tick + interval, intervalPrecision);\n\n    if (tick === ticks[ticks.length - 1]) {\n      // Consider out of safe float point, e.g.,\n      // -3711126.9907707 + 2e-10 === -3711126.9907707\n      break;\n    }\n\n    if (ticks.length > safeLimit) {\n      return [];\n    }\n  } // Consider this case: the last item of ticks is smaller\n  // than niceTickExtent[1] and niceTickExtent[1] === extent[1].\n\n\n  if (extent[1] > (ticks.length ? ticks[ticks.length - 1] : niceTickExtent[1])) {\n    ticks.push(extent[1]);\n  }\n\n  return ticks;\n}\n\nexports.intervalScaleNiceTicks = intervalScaleNiceTicks;\nexports.getIntervalPrecision = getIntervalPrecision;\nexports.fixExtent = fixExtent;\nexports.intervalScaleGetTicks = intervalScaleGetTicks;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/scale/helper.js\n// module id = yA/l\n// module chunks = 0","var Path = require(\"./Path\");\n\n// CompoundPath to improve performance\nvar _default = Path.extend({\n  type: 'compound',\n  shape: {\n    paths: null\n  },\n  _updatePathDirty: function () {\n    var dirtyPath = this.__dirtyPath;\n    var paths = this.shape.paths;\n\n    for (var i = 0; i < paths.length; i++) {\n      // Mark as dirty if any subpath is dirty\n      dirtyPath = dirtyPath || paths[i].__dirtyPath;\n    }\n\n    this.__dirtyPath = dirtyPath;\n    this.__dirty = this.__dirty || dirtyPath;\n  },\n  beforeBrush: function () {\n    this._updatePathDirty();\n\n    var paths = this.shape.paths || [];\n    var scale = this.getGlobalScale(); // Update path scale\n\n    for (var i = 0; i < paths.length; i++) {\n      if (!paths[i].path) {\n        paths[i].createPathProxy();\n      }\n\n      paths[i].path.setScale(scale[0], scale[1]);\n    }\n  },\n  buildPath: function (ctx, shape) {\n    var paths = shape.paths || [];\n\n    for (var i = 0; i < paths.length; i++) {\n      paths[i].buildPath(ctx, paths[i].shape, true);\n    }\n  },\n  afterBrush: function () {\n    var paths = this.shape.paths || [];\n\n    for (var i = 0; i < paths.length; i++) {\n      paths[i].__dirtyPath = false;\n    }\n  },\n  getBoundingRect: function () {\n    this._updatePathDirty();\n\n    return Path.prototype.getBoundingRect.call(this);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/CompoundPath.js\n// module id = yEOq\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nrequire(\"./sunburst/SunburstSeries\");\n\nrequire(\"./sunburst/SunburstView\");\n\nrequire(\"./sunburst/sunburstAction\");\n\nvar dataColor = require(\"../visual/dataColor\");\n\nvar sunburstLayout = require(\"./sunburst/sunburstLayout\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(zrUtil.curry(dataColor, 'sunburst'));\necharts.registerLayout(zrUtil.curry(sunburstLayout, 'sunburst'));\necharts.registerProcessor(zrUtil.curry(dataFilter, 'sunburst'));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst.js\n// module id = yEol\n// module chunks = 0","var clazzUtil = require(\"../util/clazz\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * // Scale class management\n * @module echarts/scale/Scale\n */\n\n/**\n * @param {Object} [setting]\n */\nfunction Scale(setting) {\n  this._setting = setting || {};\n  /**\n   * Extent\n   * @type {Array.<number>}\n   * @protected\n   */\n\n  this._extent = [Infinity, -Infinity];\n  /**\n   * Step is calculated in adjustExtent\n   * @type {Array.<number>}\n   * @protected\n   */\n\n  this._interval = 0;\n  this.init && this.init.apply(this, arguments);\n}\n/**\n * Parse input val to valid inner number.\n * @param {*} val\n * @return {number}\n */\n\n\nScale.prototype.parse = function (val) {\n  // Notice: This would be a trap here, If the implementation\n  // of this method depends on extent, and this method is used\n  // before extent set (like in dataZoom), it would be wrong.\n  // Nevertheless, parse does not depend on extent generally.\n  return val;\n};\n\nScale.prototype.getSetting = function (name) {\n  return this._setting[name];\n};\n\nScale.prototype.contain = function (val) {\n  var extent = this._extent;\n  return val >= extent[0] && val <= extent[1];\n};\n/**\n * Normalize value to linear [0, 1], return 0.5 if extent span is 0\n * @param {number} val\n * @return {number}\n */\n\n\nScale.prototype.normalize = function (val) {\n  var extent = this._extent;\n\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n};\n/**\n * Scale normalized value\n * @param {number} val\n * @return {number}\n */\n\n\nScale.prototype.scale = function (val) {\n  var extent = this._extent;\n  return val * (extent[1] - extent[0]) + extent[0];\n};\n/**\n * Set extent from data\n * @param {Array.<number>} other\n */\n\n\nScale.prototype.unionExtent = function (other) {\n  var extent = this._extent;\n  other[0] < extent[0] && (extent[0] = other[0]);\n  other[1] > extent[1] && (extent[1] = other[1]); // not setExtent because in log axis it may transformed to power\n  // this.setExtent(extent[0], extent[1]);\n};\n/**\n * Set extent from data\n * @param {module:echarts/data/List} data\n * @param {string} dim\n */\n\n\nScale.prototype.unionExtentFromData = function (data, dim) {\n  this.unionExtent(data.getApproximateExtent(dim));\n};\n/**\n * Get extent\n * @return {Array.<number>}\n */\n\n\nScale.prototype.getExtent = function () {\n  return this._extent.slice();\n};\n/**\n * Set extent\n * @param {number} start\n * @param {number} end\n */\n\n\nScale.prototype.setExtent = function (start, end) {\n  var thisExtent = this._extent;\n\n  if (!isNaN(start)) {\n    thisExtent[0] = start;\n  }\n\n  if (!isNaN(end)) {\n    thisExtent[1] = end;\n  }\n};\n/**\n * When axis extent depends on data and no data exists,\n * axis ticks should not be drawn, which is named 'blank'.\n */\n\n\nScale.prototype.isBlank = function () {\n  return this._isBlank;\n},\n/**\n * When axis extent depends on data and no data exists,\n * axis ticks should not be drawn, which is named 'blank'.\n */\nScale.prototype.setBlank = function (isBlank) {\n  this._isBlank = isBlank;\n};\n/**\n * @abstract\n * @param {*} tick\n * @return {string} label of the tick.\n */\n\nScale.prototype.getLabel = null;\nclazzUtil.enableClassExtend(Scale);\nclazzUtil.enableClassManagement(Scale, {\n  registerWhenExtend: true\n});\nvar _default = Scale;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/scale/Scale.js\n// module id = yIEC\n// module chunks = 0","var echarts = require(\"../echarts\");\n\nrequire(\"./marker/MarkPointModel\");\n\nrequire(\"./marker/MarkPointView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// HINT Markpoint can't be used too much\necharts.registerPreprocessor(function (opt) {\n  // Make sure markPoint component is enabled\n  opt.markPoint = opt.markPoint || {};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/markPoint.js\n// module id = yMl8\n// module chunks = 0","var isObject = require('./isObject'),\n    now = require('./now'),\n    toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nmodule.exports = debounce;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_lodash@4.17.11@lodash/debounce.js\n// module id = yRAu\n// module chunks = 0","var curve = require(\"./curve\");\n\nvar vec2 = require(\"./vector\");\n\nvar bbox = require(\"./bbox\");\n\nvar BoundingRect = require(\"./BoundingRect\");\n\nvar _config = require(\"../config\");\n\nvar dpr = _config.devicePixelRatio;\n\n/**\n * Path 浠g悊锛屽彲浠ュ湪`buildPath`涓敤浜庢浛浠ctx`, 浼氫繚瀛樻瘡涓猵ath鎿嶄綔鐨勫懡浠ゅ埌pathCommands灞炴�т腑\n * 鍙互鐢ㄤ簬 isInsidePath 鍒ゆ柇浠ュ強鑾峰彇boundingRect\n *\n * @module zrender/core/PathProxy\n * @author Yi Shen (http://www.github.com/pissang)\n */\n// TODO getTotalLength, getPointAtLength\nvar CMD = {\n  M: 1,\n  L: 2,\n  C: 3,\n  Q: 4,\n  A: 5,\n  Z: 6,\n  // Rect\n  R: 7\n}; // var CMD_MEM_SIZE = {\n//     M: 3,\n//     L: 3,\n//     C: 7,\n//     Q: 5,\n//     A: 9,\n//     R: 5,\n//     Z: 1\n// };\n\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar hasTypedArray = typeof Float32Array != 'undefined';\n/**\n * @alias module:zrender/core/PathProxy\n * @constructor\n */\n\nvar PathProxy = function (notSaveData) {\n  this._saveData = !(notSaveData || false);\n\n  if (this._saveData) {\n    /**\n     * Path data. Stored as flat array\n     * @type {Array.<Object>}\n     */\n    this.data = [];\n  }\n\n  this._ctx = null;\n};\n/**\n * 蹇�熻绠桺ath鍖呭洿鐩掞紙骞朵笉鏄渶灏忓寘鍥寸洅锛塡n * @return {Object}\n */\n\n\nPathProxy.prototype = {\n  constructor: PathProxy,\n  _xi: 0,\n  _yi: 0,\n  _x0: 0,\n  _y0: 0,\n  // Unit x, Unit y. Provide for avoiding drawing that too short line segment\n  _ux: 0,\n  _uy: 0,\n  _len: 0,\n  _lineDash: null,\n  _dashOffset: 0,\n  _dashIdx: 0,\n  _dashSum: 0,\n\n  /**\n   * @readOnly\n   */\n  setScale: function (sx, sy) {\n    this._ux = mathAbs(1 / dpr / sx) || 0;\n    this._uy = mathAbs(1 / dpr / sy) || 0;\n  },\n  getContext: function () {\n    return this._ctx;\n  },\n\n  /**\n   * @param  {CanvasRenderingContext2D} ctx\n   * @return {module:zrender/core/PathProxy}\n   */\n  beginPath: function (ctx) {\n    this._ctx = ctx;\n    ctx && ctx.beginPath();\n    ctx && (this.dpr = ctx.dpr); // Reset\n\n    if (this._saveData) {\n      this._len = 0;\n    }\n\n    if (this._lineDash) {\n      this._lineDash = null;\n      this._dashOffset = 0;\n    }\n\n    return this;\n  },\n\n  /**\n   * @param  {number} x\n   * @param  {number} y\n   * @return {module:zrender/core/PathProxy}\n   */\n  moveTo: function (x, y) {\n    this.addData(CMD.M, x, y);\n    this._ctx && this._ctx.moveTo(x, y); // x0, y0, xi, yi 鏄褰曞湪 _dashedXXXXTo 鏂规硶涓娇鐢╘n    // xi, yi 璁板綍褰撳墠鐐�, x0, y0 鍦� closePath 鐨勬椂鍊欏洖鍒拌捣濮嬬偣銆俓n    // 鏈夊彲鑳藉湪 beginPath 涔嬪悗鐩存帴璋冪敤 lineTo锛岃繖鏃跺�� x0, y0 闇�瑕乗n    // 鍦� lineTo 鏂规硶涓褰曪紝杩欓噷鍏堜笉鑰冭檻杩欑鎯呭喌锛宒ashed line 涔熷彧鍦� IE10- 涓笉鏀寔\n\n    this._x0 = x;\n    this._y0 = y;\n    this._xi = x;\n    this._yi = y;\n    return this;\n  },\n\n  /**\n   * @param  {number} x\n   * @param  {number} y\n   * @return {module:zrender/core/PathProxy}\n   */\n  lineTo: function (x, y) {\n    var exceedUnit = mathAbs(x - this._xi) > this._ux || mathAbs(y - this._yi) > this._uy // Force draw the first segment\n    || this._len < 5;\n    this.addData(CMD.L, x, y);\n\n    if (this._ctx && exceedUnit) {\n      this._needsDash() ? this._dashedLineTo(x, y) : this._ctx.lineTo(x, y);\n    }\n\n    if (exceedUnit) {\n      this._xi = x;\n      this._yi = y;\n    }\n\n    return this;\n  },\n\n  /**\n   * @param  {number} x1\n   * @param  {number} y1\n   * @param  {number} x2\n   * @param  {number} y2\n   * @param  {number} x3\n   * @param  {number} y3\n   * @return {module:zrender/core/PathProxy}\n   */\n  bezierCurveTo: function (x1, y1, x2, y2, x3, y3) {\n    this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n\n    if (this._ctx) {\n      this._needsDash() ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3) : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n    }\n\n    this._xi = x3;\n    this._yi = y3;\n    return this;\n  },\n\n  /**\n   * @param  {number} x1\n   * @param  {number} y1\n   * @param  {number} x2\n   * @param  {number} y2\n   * @return {module:zrender/core/PathProxy}\n   */\n  quadraticCurveTo: function (x1, y1, x2, y2) {\n    this.addData(CMD.Q, x1, y1, x2, y2);\n\n    if (this._ctx) {\n      this._needsDash() ? this._dashedQuadraticTo(x1, y1, x2, y2) : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n    }\n\n    this._xi = x2;\n    this._yi = y2;\n    return this;\n  },\n\n  /**\n   * @param  {number} cx\n   * @param  {number} cy\n   * @param  {number} r\n   * @param  {number} startAngle\n   * @param  {number} endAngle\n   * @param  {boolean} anticlockwise\n   * @return {module:zrender/core/PathProxy}\n   */\n  arc: function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n    this.addData(CMD.A, cx, cy, r, r, startAngle, endAngle - startAngle, 0, anticlockwise ? 0 : 1);\n    this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n    this._xi = mathCos(endAngle) * r + cx;\n    this._yi = mathSin(endAngle) * r + cx;\n    return this;\n  },\n  // TODO\n  arcTo: function (x1, y1, x2, y2, radius) {\n    if (this._ctx) {\n      this._ctx.arcTo(x1, y1, x2, y2, radius);\n    }\n\n    return this;\n  },\n  // TODO\n  rect: function (x, y, w, h) {\n    this._ctx && this._ctx.rect(x, y, w, h);\n    this.addData(CMD.R, x, y, w, h);\n    return this;\n  },\n\n  /**\n   * @return {module:zrender/core/PathProxy}\n   */\n  closePath: function () {\n    this.addData(CMD.Z);\n    var ctx = this._ctx;\n    var x0 = this._x0;\n    var y0 = this._y0;\n\n    if (ctx) {\n      this._needsDash() && this._dashedLineTo(x0, y0);\n      ctx.closePath();\n    }\n\n    this._xi = x0;\n    this._yi = y0;\n    return this;\n  },\n\n  /**\n   * Context 浠庡閮ㄤ紶鍏ワ紝鍥犱负鏈夊彲鑳芥槸 rebuildPath 瀹屼箣鍚庡啀 fill銆俓n   * stroke 鍚屾牱\n   * @param {CanvasRenderingContext2D} ctx\n   * @return {module:zrender/core/PathProxy}\n   */\n  fill: function (ctx) {\n    ctx && ctx.fill();\n    this.toStatic();\n  },\n\n  /**\n   * @param {CanvasRenderingContext2D} ctx\n   * @return {module:zrender/core/PathProxy}\n   */\n  stroke: function (ctx) {\n    ctx && ctx.stroke();\n    this.toStatic();\n  },\n\n  /**\n   * 蹇呴』鍦ㄥ叾瀹冪粯鍒跺懡浠ゅ墠璋冪敤\n   * Must be invoked before all other path drawing methods\n   * @return {module:zrender/core/PathProxy}\n   */\n  setLineDash: function (lineDash) {\n    if (lineDash instanceof Array) {\n      this._lineDash = lineDash;\n      this._dashIdx = 0;\n      var lineDashSum = 0;\n\n      for (var i = 0; i < lineDash.length; i++) {\n        lineDashSum += lineDash[i];\n      }\n\n      this._dashSum = lineDashSum;\n    }\n\n    return this;\n  },\n\n  /**\n   * 蹇呴』鍦ㄥ叾瀹冪粯鍒跺懡浠ゅ墠璋冪敤\n   * Must be invoked before all other path drawing methods\n   * @return {module:zrender/core/PathProxy}\n   */\n  setLineDashOffset: function (offset) {\n    this._dashOffset = offset;\n    return this;\n  },\n\n  /**\n   *\n   * @return {boolean}\n   */\n  len: function () {\n    return this._len;\n  },\n\n  /**\n   * 鐩存帴璁剧疆 Path 鏁版嵁\n   */\n  setData: function (data) {\n    var len = data.length;\n\n    if (!(this.data && this.data.length == len) && hasTypedArray) {\n      this.data = new Float32Array(len);\n    }\n\n    for (var i = 0; i < len; i++) {\n      this.data[i] = data[i];\n    }\n\n    this._len = len;\n  },\n\n  /**\n   * 娣诲姞瀛愯矾寰刓n   * @param {module:zrender/core/PathProxy|Array.<module:zrender/core/PathProxy>} path\n   */\n  appendPath: function (path) {\n    if (!(path instanceof Array)) {\n      path = [path];\n    }\n\n    var len = path.length;\n    var appendSize = 0;\n    var offset = this._len;\n\n    for (var i = 0; i < len; i++) {\n      appendSize += path[i].len();\n    }\n\n    if (hasTypedArray && this.data instanceof Float32Array) {\n      this.data = new Float32Array(offset + appendSize);\n    }\n\n    for (var i = 0; i < len; i++) {\n      var appendPathData = path[i].data;\n\n      for (var k = 0; k < appendPathData.length; k++) {\n        this.data[offset++] = appendPathData[k];\n      }\n    }\n\n    this._len = offset;\n  },\n\n  /**\n   * 濉厖 Path 鏁版嵁銆俓n   * 灏介噺澶嶇敤鑰屼笉鐢虫槑鏂扮殑鏁扮粍銆傚ぇ閮ㄥ垎鍥惧舰閲嶇粯鐨勬寚浠ゆ暟鎹暱搴﹂兘鏄笉鍙樼殑銆俓n   */\n  addData: function (cmd) {\n    if (!this._saveData) {\n      return;\n    }\n\n    var data = this.data;\n\n    if (this._len + arguments.length > data.length) {\n      // 鍥犱负涔嬪墠鐨勬暟缁勫凡缁忚浆鎹㈡垚闈欐�佺殑 Float32Array\n      // 鎵�浠ヤ笉澶熺敤鏃堕渶瑕佹墿灞曚竴涓柊鐨勫姩鎬佹暟缁刓n      this._expandData();\n\n      data = this.data;\n    }\n\n    for (var i = 0; i < arguments.length; i++) {\n      data[this._len++] = arguments[i];\n    }\n\n    this._prevCmd = cmd;\n  },\n  _expandData: function () {\n    // Only if data is Float32Array\n    if (!(this.data instanceof Array)) {\n      var newData = [];\n\n      for (var i = 0; i < this._len; i++) {\n        newData[i] = this.data[i];\n      }\n\n      this.data = newData;\n    }\n  },\n\n  /**\n   * If needs js implemented dashed line\n   * @return {boolean}\n   * @private\n   */\n  _needsDash: function () {\n    return this._lineDash;\n  },\n  _dashedLineTo: function (x1, y1) {\n    var dashSum = this._dashSum;\n    var offset = this._dashOffset;\n    var lineDash = this._lineDash;\n    var ctx = this._ctx;\n    var x0 = this._xi;\n    var y0 = this._yi;\n    var dx = x1 - x0;\n    var dy = y1 - y0;\n    var dist = mathSqrt(dx * dx + dy * dy);\n    var x = x0;\n    var y = y0;\n    var dash;\n    var nDash = lineDash.length;\n    var idx;\n    dx /= dist;\n    dy /= dist;\n\n    if (offset < 0) {\n      // Convert to positive offset\n      offset = dashSum + offset;\n    }\n\n    offset %= dashSum;\n    x -= offset * dx;\n    y -= offset * dy;\n\n    while (dx > 0 && x <= x1 || dx < 0 && x >= x1 || dx == 0 && (dy > 0 && y <= y1 || dy < 0 && y >= y1)) {\n      idx = this._dashIdx;\n      dash = lineDash[idx];\n      x += dx * dash;\n      y += dy * dash;\n      this._dashIdx = (idx + 1) % nDash; // Skip positive offset\n\n      if (dx > 0 && x < x0 || dx < 0 && x > x0 || dy > 0 && y < y0 || dy < 0 && y > y0) {\n        continue;\n      }\n\n      ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n    } // Offset for next lineTo\n\n\n    dx = x - x1;\n    dy = y - y1;\n    this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n  },\n  // Not accurate dashed line to\n  _dashedBezierTo: function (x1, y1, x2, y2, x3, y3) {\n    var dashSum = this._dashSum;\n    var offset = this._dashOffset;\n    var lineDash = this._lineDash;\n    var ctx = this._ctx;\n    var x0 = this._xi;\n    var y0 = this._yi;\n    var t;\n    var dx;\n    var dy;\n    var cubicAt = curve.cubicAt;\n    var bezierLen = 0;\n    var idx = this._dashIdx;\n    var nDash = lineDash.length;\n    var x;\n    var y;\n    var tmpLen = 0;\n\n    if (offset < 0) {\n      // Convert to positive offset\n      offset = dashSum + offset;\n    }\n\n    offset %= dashSum; // Bezier approx length\n\n    for (t = 0; t < 1; t += 0.1) {\n      dx = cubicAt(x0, x1, x2, x3, t + 0.1) - cubicAt(x0, x1, x2, x3, t);\n      dy = cubicAt(y0, y1, y2, y3, t + 0.1) - cubicAt(y0, y1, y2, y3, t);\n      bezierLen += mathSqrt(dx * dx + dy * dy);\n    } // Find idx after add offset\n\n\n    for (; idx < nDash; idx++) {\n      tmpLen += lineDash[idx];\n\n      if (tmpLen > offset) {\n        break;\n      }\n    }\n\n    t = (tmpLen - offset) / bezierLen;\n\n    while (t <= 1) {\n      x = cubicAt(x0, x1, x2, x3, t);\n      y = cubicAt(y0, y1, y2, y3, t); // Use line to approximate dashed bezier\n      // Bad result if dash is long\n\n      idx % 2 ? ctx.moveTo(x, y) : ctx.lineTo(x, y);\n      t += lineDash[idx] / bezierLen;\n      idx = (idx + 1) % nDash;\n    } // Finish the last segment and calculate the new offset\n\n\n    idx % 2 !== 0 && ctx.lineTo(x3, y3);\n    dx = x3 - x;\n    dy = y3 - y;\n    this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n  },\n  _dashedQuadraticTo: function (x1, y1, x2, y2) {\n    // Convert quadratic to cubic using degree elevation\n    var x3 = x2;\n    var y3 = y2;\n    x2 = (x2 + 2 * x1) / 3;\n    y2 = (y2 + 2 * y1) / 3;\n    x1 = (this._xi + 2 * x1) / 3;\n    y1 = (this._yi + 2 * y1) / 3;\n\n    this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n  },\n\n  /**\n   * 杞垚闈欐�佺殑 Float32Array 鍑忓皯鍫嗗唴瀛樺崰鐢╘n   * Convert dynamic array to static Float32Array\n   */\n  toStatic: function () {\n    var data = this.data;\n\n    if (data instanceof Array) {\n      data.length = this._len;\n\n      if (hasTypedArray) {\n        this.data = new Float32Array(data);\n      }\n    }\n  },\n\n  /**\n   * @return {module:zrender/core/BoundingRect}\n   */\n  getBoundingRect: function () {\n    min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n    max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n    var data = this.data;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n\n      if (i == 1) {\n        // 濡傛灉绗竴涓懡浠ゆ槸 L, C, Q\n        // 鍒� previous point 鍚岀粯鍒跺懡浠ょ殑绗竴涓� point\n        //\n        // 绗竴涓懡浠や负 Arc 鐨勬儏鍐典笅浼氬湪鍚庨潰鐗规畩澶勭悊\n        xi = data[i];\n        yi = data[i + 1];\n        x0 = xi;\n        y0 = yi;\n      }\n\n      switch (cmd) {\n        case CMD.M:\n          // moveTo 鍛戒护閲嶆柊鍒涘缓涓�涓柊鐨� subpath, 骞朵笖鏇存柊鏂扮殑璧风偣\n          // 鍦� closePath 鐨勬椂鍊欎娇鐢╘n          x0 = data[i++];\n          y0 = data[i++];\n          xi = x0;\n          yi = y0;\n          min2[0] = x0;\n          min2[1] = y0;\n          max2[0] = x0;\n          max2[1] = y0;\n          break;\n\n        case CMD.L:\n          bbox.fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n          xi = data[i++];\n          yi = data[i++];\n          break;\n\n        case CMD.C:\n          bbox.fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n          xi = data[i++];\n          yi = data[i++];\n          break;\n\n        case CMD.Q:\n          bbox.fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n          xi = data[i++];\n          yi = data[i++];\n          break;\n\n        case CMD.A:\n          // TODO Arc 鍒ゆ柇鐨勫紑閿�姣旇緝澶n          var cx = data[i++];\n          var cy = data[i++];\n          var rx = data[i++];\n          var ry = data[i++];\n          var startAngle = data[i++];\n          var endAngle = data[i++] + startAngle; // TODO Arc 鏃嬭浆\n\n          var psi = data[i++];\n          var anticlockwise = 1 - data[i++];\n\n          if (i == 1) {\n            // 鐩存帴浣跨敤 arc 鍛戒护\n            // 绗竴涓懡浠よ捣鐐硅繕鏈畾涔塡n            x0 = mathCos(startAngle) * rx + cx;\n            y0 = mathSin(startAngle) * ry + cy;\n          }\n\n          bbox.fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n          xi = mathCos(endAngle) * rx + cx;\n          yi = mathSin(endAngle) * ry + cy;\n          break;\n\n        case CMD.R:\n          x0 = xi = data[i++];\n          y0 = yi = data[i++];\n          var width = data[i++];\n          var height = data[i++]; // Use fromLine\n\n          bbox.fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n          break;\n\n        case CMD.Z:\n          xi = x0;\n          yi = y0;\n          break;\n      } // Union\n\n\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    } // No data\n\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  },\n\n  /**\n   * Rebuild path from current data\n   * Rebuild path will not consider javascript implemented line dash.\n   * @param {CanvasRenderingContext2D} ctx\n   */\n  rebuildPath: function (ctx) {\n    var d = this.data;\n    var x0, y0;\n    var xi, yi;\n    var x, y;\n    var ux = this._ux;\n    var uy = this._uy;\n    var len = this._len;\n\n    for (var i = 0; i < len;) {\n      var cmd = d[i++];\n\n      if (i == 1) {\n        // 濡傛灉绗竴涓懡浠ゆ槸 L, C, Q\n        // 鍒� previous point 鍚岀粯鍒跺懡浠ょ殑绗竴涓� point\n        //\n        // 绗竴涓懡浠や负 Arc 鐨勬儏鍐典笅浼氬湪鍚庨潰鐗规畩澶勭悊\n        xi = d[i];\n        yi = d[i + 1];\n        x0 = xi;\n        y0 = yi;\n      }\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = xi = d[i++];\n          y0 = yi = d[i++];\n          ctx.moveTo(xi, yi);\n          break;\n\n        case CMD.L:\n          x = d[i++];\n          y = d[i++]; // Not draw too small seg between\n\n          if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n            ctx.lineTo(x, y);\n            xi = x;\n            yi = y;\n          }\n\n          break;\n\n        case CMD.C:\n          ctx.bezierCurveTo(d[i++], d[i++], d[i++], d[i++], d[i++], d[i++]);\n          xi = d[i - 2];\n          yi = d[i - 1];\n          break;\n\n        case CMD.Q:\n          ctx.quadraticCurveTo(d[i++], d[i++], d[i++], d[i++]);\n          xi = d[i - 2];\n          yi = d[i - 1];\n          break;\n\n        case CMD.A:\n          var cx = d[i++];\n          var cy = d[i++];\n          var rx = d[i++];\n          var ry = d[i++];\n          var theta = d[i++];\n          var dTheta = d[i++];\n          var psi = d[i++];\n          var fs = d[i++];\n          var r = rx > ry ? rx : ry;\n          var scaleX = rx > ry ? 1 : rx / ry;\n          var scaleY = rx > ry ? ry / rx : 1;\n          var isEllipse = Math.abs(rx - ry) > 1e-3;\n          var endAngle = theta + dTheta;\n\n          if (isEllipse) {\n            ctx.translate(cx, cy);\n            ctx.rotate(psi);\n            ctx.scale(scaleX, scaleY);\n            ctx.arc(0, 0, r, theta, endAngle, 1 - fs);\n            ctx.scale(1 / scaleX, 1 / scaleY);\n            ctx.rotate(-psi);\n            ctx.translate(-cx, -cy);\n          } else {\n            ctx.arc(cx, cy, r, theta, endAngle, 1 - fs);\n          }\n\n          if (i == 1) {\n            // 鐩存帴浣跨敤 arc 鍛戒护\n            // 绗竴涓懡浠よ捣鐐硅繕鏈畾涔塡n            x0 = mathCos(theta) * rx + cx;\n            y0 = mathSin(theta) * ry + cy;\n          }\n\n          xi = mathCos(endAngle) * rx + cx;\n          yi = mathSin(endAngle) * ry + cy;\n          break;\n\n        case CMD.R:\n          x0 = xi = d[i];\n          y0 = yi = d[i + 1];\n          ctx.rect(d[i++], d[i++], d[i++], d[i++]);\n          break;\n\n        case CMD.Z:\n          ctx.closePath();\n          xi = x0;\n          yi = y0;\n      }\n    }\n  }\n};\nPathProxy.CMD = CMD;\nvar _default = PathProxy;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/core/PathProxy.js\n// module id = yX3w\n// module chunks = 0","var Path = require(\"../Path\");\n\nvar roundRectHelper = require(\"../helper/roundRect\");\n\n/**\n * 鐭╁舰\n * @module zrender/graphic/shape/Rect\n */\nvar _default = Path.extend({\n  type: 'rect',\n  shape: {\n    // 宸︿笂銆佸彸涓娿�佸彸涓嬨�佸乏涓嬭鐨勫崐寰勪緷娆′负r1銆乺2銆乺3銆乺4\n    // r缂╁啓涓�1         鐩稿綋浜� [1, 1, 1, 1]\n    // r缂╁啓涓篬1]       鐩稿綋浜� [1, 1, 1, 1]\n    // r缂╁啓涓篬1, 2]    鐩稿綋浜� [1, 2, 1, 2]\n    // r缂╁啓涓篬1, 2, 3] 鐩稿綋浜� [1, 2, 3, 2]\n    r: 0,\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n\n    if (!shape.r) {\n      ctx.rect(x, y, width, height);\n    } else {\n      roundRectHelper.buildPath(ctx, shape);\n    }\n\n    ctx.closePath();\n    return;\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Rect.js\n// module id = yXz6\n// module chunks = 0","var Path = require(\"../Path\");\n\n/**\n * 鍦嗗舰\n * @module zrender/shape/Circle\n */\nvar _default = Path.extend({\n  type: 'circle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    r: 0\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    // Better stroking in ShapeBundle\n    // Always do it may have performence issue ( fill may be 2x more cost)\n    if (inBundle) {\n      ctx.moveTo(shape.cx + shape.r, shape.cy);\n    } // else {\n    //     if (ctx.allocate && !ctx.data.length) {\n    //         ctx.allocate(ctx.CMD_MEM_SIZE.A);\n    //     }\n    // }\n    // Better stroking in ShapeBundle\n    // ctx.moveTo(shape.cx + shape.r, shape.cy);\n\n\n    ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2, true);\n  }\n});\n\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_zrender@4.0.4@zrender/lib/graphic/shape/Circle.js\n// module id = yayn\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n    var O = toObject(arrayLike);\n    var C = typeof this == 'function' ? this : Array;\n    var aLen = arguments.length;\n    var mapfn = aLen > 1 ? arguments[1] : undefined;\n    var mapping = mapfn !== undefined;\n    var index = 0;\n    var iterFn = getIterFn(O);\n    var length, result, step, iterator;\n    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n    // if object isn't iterable or it's array with default iterator - use simple case\n    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n      for (result = new C(length); length > index; index++) {\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n    result.length = index;\n    return result;\n  }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.array.from.js\n// module id = yrDz\n// module chunks = 0","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_axios@0.18.0@axios/lib/axios.js\n// module id = z1hY\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar helper = require(\"./helper\");\n\nvar AxisProxy = require(\"./AxisProxy\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar each = zrUtil.each;\nvar eachAxisDim = helper.eachAxisDim;\nvar DataZoomModel = echarts.extendComponentModel({\n  type: 'dataZoom',\n  dependencies: ['xAxis', 'yAxis', 'zAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series'],\n\n  /**\n   * @protected\n   */\n  defaultOption: {\n    zlevel: 0,\n    z: 4,\n    // Higher than normal component (z: 2).\n    orient: null,\n    // Default auto by axisIndex. Possible value: 'horizontal', 'vertical'.\n    xAxisIndex: null,\n    // Default the first horizontal category axis.\n    yAxisIndex: null,\n    // Default the first vertical category axis.\n    filterMode: 'filter',\n    // Possible values: 'filter' or 'empty' or 'weakFilter'.\n    // 'filter': data items which are out of window will be removed. This option is\n    //          applicable when filtering outliers. For each data item, it will be\n    //          filtered if one of the relevant dimensions is out of the window.\n    // 'weakFilter': data items which are out of window will be removed. This option\n    //          is applicable when filtering outliers. For each data item, it will be\n    //          filtered only if all  of the relevant dimensions are out of the same\n    //          side of the window.\n    // 'empty': data items which are out of window will be set to empty.\n    //          This option is applicable when user should not neglect\n    //          that there are some data items out of window.\n    // 'none': Do not filter.\n    // Taking line chart as an example, line will be broken in\n    // the filtered points when filterModel is set to 'empty', but\n    // be connected when set to 'filter'.\n    throttle: null,\n    // Dispatch action by the fixed rate, avoid frequency.\n    // default 100. Do not throttle when use null/undefined.\n    // If animation === true and animationDurationUpdate > 0,\n    // default value is 100, otherwise 20.\n    start: 0,\n    // Start percent. 0 ~ 100\n    end: 100,\n    // End percent. 0 ~ 100\n    startValue: null,\n    // Start value. If startValue specified, start is ignored.\n    endValue: null,\n    // End value. If endValue specified, end is ignored.\n    minSpan: null,\n    // 0 ~ 100\n    maxSpan: null,\n    // 0 ~ 100\n    minValueSpan: null,\n    // The range of dataZoom can not be smaller than that.\n    maxValueSpan: null,\n    // The range of dataZoom can not be larger than that.\n    rangeMode: null // Array, can be 'value' or 'percent'.\n\n  },\n\n  /**\n   * @override\n   */\n  init: function (option, parentModel, ecModel) {\n    /**\n     * key like x_0, y_1\n     * @private\n     * @type {Object}\n     */\n    this._dataIntervalByAxis = {};\n    /**\n     * @private\n     */\n\n    this._dataInfo = {};\n    /**\n     * key like x_0, y_1\n     * @private\n     */\n\n    this._axisProxies = {};\n    /**\n     * @readOnly\n     */\n\n    this.textStyleModel;\n    /**\n     * @private\n     */\n\n    this._autoThrottle = true;\n    /**\n     * 'percent' or 'value'\n     * @private\n     */\n\n    this._rangePropMode = ['percent', 'percent'];\n    var rawOption = retrieveRaw(option);\n    this.mergeDefaultAndTheme(option, ecModel);\n    this.doInit(rawOption);\n  },\n\n  /**\n   * @override\n   */\n  mergeOption: function (newOption) {\n    var rawOption = retrieveRaw(newOption); //FIX #2591\n\n    zrUtil.merge(this.option, newOption, true);\n    this.doInit(rawOption);\n  },\n\n  /**\n   * @protected\n   */\n  doInit: function (rawOption) {\n    var thisOption = this.option; // Disable realtime view update if canvas is not supported.\n\n    if (!env.canvasSupported) {\n      thisOption.realtime = false;\n    }\n\n    this._setDefaultThrottle(rawOption);\n\n    updateRangeUse(this, rawOption);\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      // start/end has higher priority over startValue/endValue if they\n      // both set, but we should make chart.setOption({endValue: 1000})\n      // effective, rather than chart.setOption({endValue: 1000, end: null}).\n      if (this._rangePropMode[index] === 'value') {\n        thisOption[names[0]] = null;\n      } // Otherwise do nothing and use the merge result.\n\n    }, this);\n    this.textStyleModel = this.getModel('textStyle');\n\n    this._resetTarget();\n\n    this._giveAxisProxies();\n  },\n\n  /**\n   * @private\n   */\n  _giveAxisProxies: function () {\n    var axisProxies = this._axisProxies;\n    this.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel, ecModel) {\n      var axisModel = this.dependentModels[dimNames.axis][axisIndex]; // If exists, share axisProxy with other dataZoomModels.\n\n      var axisProxy = axisModel.__dzAxisProxy || ( // Use the first dataZoomModel as the main model of axisProxy.\n      axisModel.__dzAxisProxy = new AxisProxy(dimNames.name, axisIndex, this, ecModel)); // FIXME\n      // dispose __dzAxisProxy\n\n      axisProxies[dimNames.name + '_' + axisIndex] = axisProxy;\n    }, this);\n  },\n\n  /**\n   * @private\n   */\n  _resetTarget: function () {\n    var thisOption = this.option;\n\n    var autoMode = this._judgeAutoMode();\n\n    eachAxisDim(function (dimNames) {\n      var axisIndexName = dimNames.axisIndex;\n      thisOption[axisIndexName] = modelUtil.normalizeToArray(thisOption[axisIndexName]);\n    }, this);\n\n    if (autoMode === 'axisIndex') {\n      this._autoSetAxisIndex();\n    } else if (autoMode === 'orient') {\n      this._autoSetOrient();\n    }\n  },\n\n  /**\n   * @private\n   */\n  _judgeAutoMode: function () {\n    // Auto set only works for setOption at the first time.\n    // The following is user's reponsibility. So using merged\n    // option is OK.\n    var thisOption = this.option;\n    var hasIndexSpecified = false;\n    eachAxisDim(function (dimNames) {\n      // When user set axisIndex as a empty array, we think that user specify axisIndex\n      // but do not want use auto mode. Because empty array may be encountered when\n      // some error occured.\n      if (thisOption[dimNames.axisIndex] != null) {\n        hasIndexSpecified = true;\n      }\n    }, this);\n    var orient = thisOption.orient;\n\n    if (orient == null && hasIndexSpecified) {\n      return 'orient';\n    } else if (!hasIndexSpecified) {\n      if (orient == null) {\n        thisOption.orient = 'horizontal';\n      }\n\n      return 'axisIndex';\n    }\n  },\n\n  /**\n   * @private\n   */\n  _autoSetAxisIndex: function () {\n    var autoAxisIndex = true;\n    var orient = this.get('orient', true);\n    var thisOption = this.option;\n    var dependentModels = this.dependentModels;\n\n    if (autoAxisIndex) {\n      // Find axis that parallel to dataZoom as default.\n      var dimName = orient === 'vertical' ? 'y' : 'x';\n\n      if (dependentModels[dimName + 'Axis'].length) {\n        thisOption[dimName + 'AxisIndex'] = [0];\n        autoAxisIndex = false;\n      } else {\n        each(dependentModels.singleAxis, function (singleAxisModel) {\n          if (autoAxisIndex && singleAxisModel.get('orient', true) === orient) {\n            thisOption.singleAxisIndex = [singleAxisModel.componentIndex];\n            autoAxisIndex = false;\n          }\n        });\n      }\n    }\n\n    if (autoAxisIndex) {\n      // Find the first category axis as default. (consider polar)\n      eachAxisDim(function (dimNames) {\n        if (!autoAxisIndex) {\n          return;\n        }\n\n        var axisIndices = [];\n        var axisModels = this.dependentModels[dimNames.axis];\n\n        if (axisModels.length && !axisIndices.length) {\n          for (var i = 0, len = axisModels.length; i < len; i++) {\n            if (axisModels[i].get('type') === 'category') {\n              axisIndices.push(i);\n            }\n          }\n        }\n\n        thisOption[dimNames.axisIndex] = axisIndices;\n\n        if (axisIndices.length) {\n          autoAxisIndex = false;\n        }\n      }, this);\n    }\n\n    if (autoAxisIndex) {\n      // FIXME\n      // 杩欓噷鏄吋瀹筫c2鐨勫啓娉曪紙娌℃寚瀹歺AxisIndex鍜寉AxisIndex鏃舵妸scatter鍜屽弻鏁板�艰酱鎶樻煴绾冲叆dataZoom鎺у埗锛夛紝\n      // 浣嗘槸瀹為檯鏄惁闇�瑕丟rid.js#getScaleByOption鏉ュ垽鏂紙鑰冭檻time锛宭og绛塧xis type锛夛紵\n      // If both dataZoom.xAxisIndex and dataZoom.yAxisIndex is not specified,\n      // dataZoom component auto adopts series that reference to\n      // both xAxis and yAxis which type is 'value'.\n      this.ecModel.eachSeries(function (seriesModel) {\n        if (this._isSeriesHasAllAxesTypeOf(seriesModel, 'value')) {\n          eachAxisDim(function (dimNames) {\n            var axisIndices = thisOption[dimNames.axisIndex];\n            var axisIndex = seriesModel.get(dimNames.axisIndex);\n            var axisId = seriesModel.get(dimNames.axisId);\n            var axisModel = seriesModel.ecModel.queryComponents({\n              mainType: dimNames.axis,\n              index: axisIndex,\n              id: axisId\n            })[0];\n            axisIndex = axisModel.componentIndex;\n\n            if (zrUtil.indexOf(axisIndices, axisIndex) < 0) {\n              axisIndices.push(axisIndex);\n            }\n          });\n        }\n      }, this);\n    }\n  },\n\n  /**\n   * @private\n   */\n  _autoSetOrient: function () {\n    var dim; // Find the first axis\n\n    this.eachTargetAxis(function (dimNames) {\n      !dim && (dim = dimNames.name);\n    }, this);\n    this.option.orient = dim === 'y' ? 'vertical' : 'horizontal';\n  },\n\n  /**\n   * @private\n   */\n  _isSeriesHasAllAxesTypeOf: function (seriesModel, axisType) {\n    // FIXME\n    // 闇�瑕乻eries鐨剎AxisIndex鍜寉AxisIndex閮介鍏堣嚜鍔ㄨ缃笂銆俓n    // 渚嬪series.type === scatter鏃躲�俓n    var is = true;\n    eachAxisDim(function (dimNames) {\n      var seriesAxisIndex = seriesModel.get(dimNames.axisIndex);\n      var axisModel = this.dependentModels[dimNames.axis][seriesAxisIndex];\n\n      if (!axisModel || axisModel.get('type') !== axisType) {\n        is = false;\n      }\n    }, this);\n    return is;\n  },\n\n  /**\n   * @private\n   */\n  _setDefaultThrottle: function (rawOption) {\n    // When first time user set throttle, auto throttle ends.\n    if (rawOption.hasOwnProperty('throttle')) {\n      this._autoThrottle = false;\n    }\n\n    if (this._autoThrottle) {\n      var globalOption = this.ecModel.option;\n      this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n    }\n  },\n\n  /**\n   * @public\n   */\n  getFirstTargetAxisModel: function () {\n    var firstAxisModel;\n    eachAxisDim(function (dimNames) {\n      if (firstAxisModel == null) {\n        var indices = this.get(dimNames.axisIndex);\n\n        if (indices.length) {\n          firstAxisModel = this.dependentModels[dimNames.axis][indices[0]];\n        }\n      }\n    }, this);\n    return firstAxisModel;\n  },\n\n  /**\n   * @public\n   * @param {Function} callback param: axisModel, dimNames, axisIndex, dataZoomModel, ecModel\n   */\n  eachTargetAxis: function (callback, context) {\n    var ecModel = this.ecModel;\n    eachAxisDim(function (dimNames) {\n      each(this.get(dimNames.axisIndex), function (axisIndex) {\n        callback.call(context, dimNames, axisIndex, this, ecModel);\n      }, this);\n    }, this);\n  },\n\n  /**\n   * @param {string} dimName\n   * @param {number} axisIndex\n   * @return {module:echarts/component/dataZoom/AxisProxy} If not found, return null/undefined.\n   */\n  getAxisProxy: function (dimName, axisIndex) {\n    return this._axisProxies[dimName + '_' + axisIndex];\n  },\n\n  /**\n   * @param {string} dimName\n   * @param {number} axisIndex\n   * @return {module:echarts/model/Model} If not found, return null/undefined.\n   */\n  getAxisModel: function (dimName, axisIndex) {\n    var axisProxy = this.getAxisProxy(dimName, axisIndex);\n    return axisProxy && axisProxy.getAxisModel();\n  },\n\n  /**\n   * If not specified, set to undefined.\n   *\n   * @public\n   * @param {Object} opt\n   * @param {number} [opt.start]\n   * @param {number} [opt.end]\n   * @param {number} [opt.startValue]\n   * @param {number} [opt.endValue]\n   * @param {boolean} [ignoreUpdateRangeUsg=false]\n   */\n  setRawRange: function (opt, ignoreUpdateRangeUsg) {\n    var option = this.option;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n      // If only one of 'start' and 'startValue' is not null/undefined, the other\n      // should be cleared, which enable clear the option.\n      // If both of them are not set, keep option with the original value, which\n      // enable use only set start but not set end when calling `dispatchAction`.\n      // The same as 'end' and 'endValue'.\n      if (opt[names[0]] != null || opt[names[1]] != null) {\n        option[names[0]] = opt[names[0]];\n        option[names[1]] = opt[names[1]];\n      }\n    }, this);\n    !ignoreUpdateRangeUsg && updateRangeUse(this, opt);\n  },\n\n  /**\n   * @public\n   * @return {Array.<number>} [startPercent, endPercent]\n   */\n  getPercentRange: function () {\n    var axisProxy = this.findRepresentativeAxisProxy();\n\n    if (axisProxy) {\n      return axisProxy.getDataPercentWindow();\n    }\n  },\n\n  /**\n   * @public\n   * For example, chart.getModel().getComponent('dataZoom').getValueRange('y', 0);\n   *\n   * @param {string} [axisDimName]\n   * @param {number} [axisIndex]\n   * @return {Array.<number>} [startValue, endValue] value can only be '-' or finite number.\n   */\n  getValueRange: function (axisDimName, axisIndex) {\n    if (axisDimName == null && axisIndex == null) {\n      var axisProxy = this.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        return axisProxy.getDataValueWindow();\n      }\n    } else {\n      return this.getAxisProxy(axisDimName, axisIndex).getDataValueWindow();\n    }\n  },\n\n  /**\n   * @public\n   * @param {module:echarts/model/Model} [axisModel] If axisModel given, find axisProxy\n   *      corresponding to the axisModel\n   * @return {module:echarts/component/dataZoom/AxisProxy}\n   */\n  findRepresentativeAxisProxy: function (axisModel) {\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    } // Find the first hosted axisProxy\n\n\n    var axisProxies = this._axisProxies;\n\n    for (var key in axisProxies) {\n      if (axisProxies.hasOwnProperty(key) && axisProxies[key].hostedBy(this)) {\n        return axisProxies[key];\n      }\n    } // If no hosted axis find not hosted axisProxy.\n    // Consider this case: dataZoomModel1 and dataZoomModel2 control the same axis,\n    // and the option.start or option.end settings are different. The percentRange\n    // should follow axisProxy.\n    // (We encounter this problem in toolbox data zoom.)\n\n\n    for (var key in axisProxies) {\n      if (axisProxies.hasOwnProperty(key) && !axisProxies[key].hostedBy(this)) {\n        return axisProxies[key];\n      }\n    }\n  },\n\n  /**\n   * @return {Array.<string>}\n   */\n  getRangePropMode: function () {\n    return this._rangePropMode.slice();\n  }\n});\n\nfunction retrieveRaw(option) {\n  var ret = {};\n  each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n    option.hasOwnProperty(name) && (ret[name] = option[name]);\n  });\n  return ret;\n}\n\nfunction updateRangeUse(dataZoomModel, rawOption) {\n  var rangePropMode = dataZoomModel._rangePropMode;\n  var rangeModeInOption = dataZoomModel.get('rangeMode');\n  each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n    var percentSpecified = rawOption[names[0]] != null;\n    var valueSpecified = rawOption[names[1]] != null;\n\n    if (percentSpecified && !valueSpecified) {\n      rangePropMode[index] = 'percent';\n    } else if (!percentSpecified && valueSpecified) {\n      rangePropMode[index] = 'value';\n    } else if (rangeModeInOption) {\n      rangePropMode[index] = rangeModeInOption[index];\n    } else if (percentSpecified) {\n      // percentSpecified && valueSpecified\n      rangePropMode[index] = 'percent';\n    } // else remain its original setting.\n\n  });\n}\n\nvar _default = DataZoomModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/dataZoom/DataZoomModel.js\n// module id = z1q5\n// module chunks = 0","module.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_iter-step.js\n// module id = z7iO\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/es6.array.iterator.js\n// module id = zAnu\n// module chunks = 0","var _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar dataFormatMixin = require(\"../../model/mixin/dataFormat\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar addCommas = formatUtil.addCommas;\nvar encodeHTML = formatUtil.encodeHTML;\n\nfunction fillLabel(opt) {\n  modelUtil.defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar MarkerModel = echarts.extendComponentModel({\n  type: 'marker',\n  dependencies: ['series', 'grid', 'polar', 'geo'],\n\n  /**\n   * @overrite\n   */\n  init: function (option, parentModel, ecModel, extraOpt) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    this.mergeOption(option, ecModel, extraOpt.createdBySelf, true);\n  },\n\n  /**\n   * @return {boolean}\n   */\n  isAnimationEnabled: function () {\n    if (env.node) {\n      return false;\n    }\n\n    var hostSeries = this.__hostSeries;\n    return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n  },\n  mergeOption: function (newOpt, ecModel, createdBySelf, isInit) {\n    var MarkerModel = this.constructor;\n    var modelPropName = this.mainType + 'Model';\n\n    if (!createdBySelf) {\n      ecModel.eachSeries(function (seriesModel) {\n        var markerOpt = seriesModel.get(this.mainType, true);\n        var markerModel = seriesModel[modelPropName];\n\n        if (!markerOpt || !markerOpt.data) {\n          seriesModel[modelPropName] = null;\n          return;\n        }\n\n        if (!markerModel) {\n          if (isInit) {\n            // Default label emphasis `position` and `show`\n            fillLabel(markerOpt);\n          }\n\n          zrUtil.each(markerOpt.data, function (item) {\n            // FIXME Overwrite fillLabel method ?\n            if (item instanceof Array) {\n              fillLabel(item[0]);\n              fillLabel(item[1]);\n            } else {\n              fillLabel(item);\n            }\n          });\n          markerModel = new MarkerModel(markerOpt, this, ecModel);\n          zrUtil.extend(markerModel, {\n            mainType: this.mainType,\n            // Use the same series index and name\n            seriesIndex: seriesModel.seriesIndex,\n            name: seriesModel.name,\n            createdBySelf: true\n          });\n          markerModel.__hostSeries = seriesModel;\n        } else {\n          markerModel.mergeOption(markerOpt, ecModel, true);\n        }\n\n        seriesModel[modelPropName] = markerModel;\n      }, this);\n    }\n  },\n  formatTooltip: function (dataIndex) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var formattedValue = zrUtil.isArray(value) ? zrUtil.map(value, addCommas).join(', ') : addCommas(value);\n    var name = data.getName(dataIndex);\n    var html = encodeHTML(this.name);\n\n    if (value != null || name) {\n      html += '<br />';\n    }\n\n    if (name) {\n      html += encodeHTML(name);\n\n      if (value != null) {\n        html += ' : ';\n      }\n    }\n\n    if (value != null) {\n      html += encodeHTML(formattedValue);\n    }\n\n    return html;\n  },\n  getData: function () {\n    return this._data;\n  },\n  setData: function (data) {\n    this._data = data;\n  }\n});\nzrUtil.mixin(MarkerModel, dataFormatMixin);\nvar _default = MarkerModel;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/component/marker/MarkerModel.js\n// module id = zBeA\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_core-js@2.5.7@core-js/library/modules/_enum-bug-keys.js\n// module id = zDlt\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {number} [time=500] Time in ms\n * @param {string} [easing='linear']\n * @param {number} [delay=0]\n * @param {Function} [callback]\n *\n * @example\n *  // Animate position\n *  animation\n *      .createWrap()\n *      .add(el1, {position: [10, 10]})\n *      .add(el2, {shape: {width: 500}, style: {fill: 'red'}}, 400)\n *      .done(function () { // done })\n *      .start('cubicOut');\n */\nfunction createWrap() {\n  var storage = [];\n  var elExistsMap = {};\n  var doneCallback;\n  return {\n    /**\n     * Caution: a el can only be added once, otherwise 'done'\n     * might not be called. This method checks this (by el.id),\n     * suppresses adding and returns false when existing el found.\n     *\n     * @param {modele:zrender/Element} el\n     * @param {Object} target\n     * @param {number} [time=500]\n     * @param {number} [delay=0]\n     * @param {string} [easing='linear']\n     * @return {boolean} Whether adding succeeded.\n     *\n     * @example\n     *     add(el, target, time, delay, easing);\n     *     add(el, target, time, easing);\n     *     add(el, target, time);\n     *     add(el, target);\n     */\n    add: function (el, target, time, delay, easing) {\n      if (zrUtil.isString(delay)) {\n        easing = delay;\n        delay = 0;\n      }\n\n      if (elExistsMap[el.id]) {\n        return false;\n      }\n\n      elExistsMap[el.id] = 1;\n      storage.push({\n        el: el,\n        target: target,\n        time: time,\n        delay: delay,\n        easing: easing\n      });\n      return true;\n    },\n\n    /**\n     * Only execute when animation finished. Will not execute when any\n     * of 'stop' or 'stopAnimation' called.\n     *\n     * @param {Function} callback\n     */\n    done: function (callback) {\n      doneCallback = callback;\n      return this;\n    },\n\n    /**\n     * Will stop exist animation firstly.\n     */\n    start: function () {\n      var count = storage.length;\n\n      for (var i = 0, len = storage.length; i < len; i++) {\n        var item = storage[i];\n        item.el.animateTo(item.target, item.time, item.delay, item.easing, done);\n      }\n\n      return this;\n\n      function done() {\n        count--;\n\n        if (!count) {\n          storage.length = 0;\n          elExistsMap = {};\n          doneCallback && doneCallback();\n        }\n      }\n    }\n  };\n}\n\nexports.createWrap = createWrap;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/util/animation.js\n// module id = zHd6\n// module chunks = 0","/**\n  * vue-router v3.0.1\n  * (c) 2017 Evan You\n  * @license MIT\n  */\n/*  */\n\nfunction assert (condition, message) {\n  if (!condition) {\n    throw new Error((\"[vue-router] \" + message))\n  }\n}\n\nfunction warn (condition, message) {\n  if (process.env.NODE_ENV !== 'production' && !condition) {\n    typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n  }\n}\n\nfunction isError (err) {\n  return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nvar View = {\n  name: 'router-view',\n  functional: true,\n  props: {\n    name: {\n      type: String,\n      default: 'default'\n    }\n  },\n  render: function render (_, ref) {\n    var props = ref.props;\n    var children = ref.children;\n    var parent = ref.parent;\n    var data = ref.data;\n\n    data.routerView = true;\n\n    // directly use parent context's createElement() function\n    // so that components rendered by router-view can resolve named slots\n    var h = parent.$createElement;\n    var name = props.name;\n    var route = parent.$route;\n    var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n    // determine current view depth, also check to see if the tree\n    // has been toggled inactive but kept-alive.\n    var depth = 0;\n    var inactive = false;\n    while (parent && parent._routerRoot !== parent) {\n      if (parent.$vnode && parent.$vnode.data.routerView) {\n        depth++;\n      }\n      if (parent._inactive) {\n        inactive = true;\n      }\n      parent = parent.$parent;\n    }\n    data.routerViewDepth = depth;\n\n    // render previous view if the tree is inactive and kept-alive\n    if (inactive) {\n      return h(cache[name], data, children)\n    }\n\n    var matched = route.matched[depth];\n    // render empty node if no matched route\n    if (!matched) {\n      cache[name] = null;\n      return h()\n    }\n\n    var component = cache[name] = matched.components[name];\n\n    // attach instance registration hook\n    // this will be called in the instance's injected lifecycle hooks\n    data.registerRouteInstance = function (vm, val) {\n      // val could be undefined for unregistration\n      var current = matched.instances[name];\n      if (\n        (val && current !== vm) ||\n        (!val && current === vm)\n      ) {\n        matched.instances[name] = val;\n      }\n    }\n\n    // also register instance in prepatch hook\n    // in case the same component instance is reused across different routes\n    ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n      matched.instances[name] = vnode.componentInstance;\n    };\n\n    // resolve props\n    var propsToPass = data.props = resolveProps(route, matched.props && matched.props[name]);\n    if (propsToPass) {\n      // clone to prevent mutation\n      propsToPass = data.props = extend({}, propsToPass);\n      // pass non-declared props as attrs\n      var attrs = data.attrs = data.attrs || {};\n      for (var key in propsToPass) {\n        if (!component.props || !(key in component.props)) {\n          attrs[key] = propsToPass[key];\n          delete propsToPass[key];\n        }\n      }\n    }\n\n    return h(component, data, children)\n  }\n};\n\nfunction resolveProps (route, config) {\n  switch (typeof config) {\n    case 'undefined':\n      return\n    case 'object':\n      return config\n    case 'function':\n      return config(route)\n    case 'boolean':\n      return config ? route.params : undefined\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        warn(\n          false,\n          \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n          \"expecting an object, function or boolean.\"\n        );\n      }\n  }\n}\n\nfunction extend (to, from) {\n  for (var key in from) {\n    to[key] = from[key];\n  }\n  return to\n}\n\n/*  */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n  .replace(encodeReserveRE, encodeReserveReplacer)\n  .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n  query,\n  extraQuery,\n  _parseQuery\n) {\n  if ( extraQuery === void 0 ) extraQuery = {};\n\n  var parse = _parseQuery || parseQuery;\n  var parsedQuery;\n  try {\n    parsedQuery = parse(query || '');\n  } catch (e) {\n    process.env.NODE_ENV !== 'production' && warn(false, e.message);\n    parsedQuery = {};\n  }\n  for (var key in extraQuery) {\n    parsedQuery[key] = extraQuery[key];\n  }\n  return parsedQuery\n}\n\nfunction parseQuery (query) {\n  var res = {};\n\n  query = query.trim().replace(/^(\\?|#|&)/, '');\n\n  if (!query) {\n    return res\n  }\n\n  query.split('&').forEach(function (param) {\n    var parts = param.replace(/\\+/g, ' ').split('=');\n    var key = decode(parts.shift());\n    var val = parts.length > 0\n      ? decode(parts.join('='))\n      : null;\n\n    if (res[key] === undefined) {\n      res[key] = val;\n    } else if (Array.isArray(res[key])) {\n      res[key].push(val);\n    } else {\n      res[key] = [res[key], val];\n    }\n  });\n\n  return res\n}\n\nfunction stringifyQuery (obj) {\n  var res = obj ? Object.keys(obj).map(function (key) {\n    var val = obj[key];\n\n    if (val === undefined) {\n      return ''\n    }\n\n    if (val === null) {\n      return encode(key)\n    }\n\n    if (Array.isArray(val)) {\n      var result = [];\n      val.forEach(function (val2) {\n        if (val2 === undefined) {\n          return\n        }\n        if (val2 === null) {\n          result.push(encode(key));\n        } else {\n          result.push(encode(key) + '=' + encode(val2));\n        }\n      });\n      return result.join('&')\n    }\n\n    return encode(key) + '=' + encode(val)\n  }).filter(function (x) { return x.length > 0; }).join('&') : null;\n  return res ? (\"?\" + res) : ''\n}\n\n/*  */\n\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n  record,\n  location,\n  redirectedFrom,\n  router\n) {\n  var stringifyQuery$$1 = router && router.options.stringifyQuery;\n\n  var query = location.query || {};\n  try {\n    query = clone(query);\n  } catch (e) {}\n\n  var route = {\n    name: location.name || (record && record.name),\n    meta: (record && record.meta) || {},\n    path: location.path || '/',\n    hash: location.hash || '',\n    query: query,\n    params: location.params || {},\n    fullPath: getFullPath(location, stringifyQuery$$1),\n    matched: record ? formatMatch(record) : []\n  };\n  if (redirectedFrom) {\n    route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery$$1);\n  }\n  return Object.freeze(route)\n}\n\nfunction clone (value) {\n  if (Array.isArray(value)) {\n    return value.map(clone)\n  } else if (value && typeof value === 'object') {\n    var res = {};\n    for (var key in value) {\n      res[key] = clone(value[key]);\n    }\n    return res\n  } else {\n    return value\n  }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n  path: '/'\n});\n\nfunction formatMatch (record) {\n  var res = [];\n  while (record) {\n    res.unshift(record);\n    record = record.parent;\n  }\n  return res\n}\n\nfunction getFullPath (\n  ref,\n  _stringifyQuery\n) {\n  var path = ref.path;\n  var query = ref.query; if ( query === void 0 ) query = {};\n  var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n  var stringify = _stringifyQuery || stringifyQuery;\n  return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n  if (b === START) {\n    return a === b\n  } else if (!b) {\n    return false\n  } else if (a.path && b.path) {\n    return (\n      a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n      a.hash === b.hash &&\n      isObjectEqual(a.query, b.query)\n    )\n  } else if (a.name && b.name) {\n    return (\n      a.name === b.name &&\n      a.hash === b.hash &&\n      isObjectEqual(a.query, b.query) &&\n      isObjectEqual(a.params, b.params)\n    )\n  } else {\n    return false\n  }\n}\n\nfunction isObjectEqual (a, b) {\n  if ( a === void 0 ) a = {};\n  if ( b === void 0 ) b = {};\n\n  // handle null value #1566\n  if (!a || !b) { return a === b }\n  var aKeys = Object.keys(a);\n  var bKeys = Object.keys(b);\n  if (aKeys.length !== bKeys.length) {\n    return false\n  }\n  return aKeys.every(function (key) {\n    var aVal = a[key];\n    var bVal = b[key];\n    // check nested equality\n    if (typeof aVal === 'object' && typeof bVal === 'object') {\n      return isObjectEqual(aVal, bVal)\n    }\n    return String(aVal) === String(bVal)\n  })\n}\n\nfunction isIncludedRoute (current, target) {\n  return (\n    current.path.replace(trailingSlashRE, '/').indexOf(\n      target.path.replace(trailingSlashRE, '/')\n    ) === 0 &&\n    (!target.hash || current.hash === target.hash) &&\n    queryIncludes(current.query, target.query)\n  )\n}\n\nfunction queryIncludes (current, target) {\n  for (var key in target) {\n    if (!(key in current)) {\n      return false\n    }\n  }\n  return true\n}\n\n/*  */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar Link = {\n  name: 'router-link',\n  props: {\n    to: {\n      type: toTypes,\n      required: true\n    },\n    tag: {\n      type: String,\n      default: 'a'\n    },\n    exact: Boolean,\n    append: Boolean,\n    replace: Boolean,\n    activeClass: String,\n    exactActiveClass: String,\n    event: {\n      type: eventTypes,\n      default: 'click'\n    }\n  },\n  render: function render (h) {\n    var this$1 = this;\n\n    var router = this.$router;\n    var current = this.$route;\n    var ref = router.resolve(this.to, current, this.append);\n    var location = ref.location;\n    var route = ref.route;\n    var href = ref.href;\n\n    var classes = {};\n    var globalActiveClass = router.options.linkActiveClass;\n    var globalExactActiveClass = router.options.linkExactActiveClass;\n    // Support global empty active class\n    var activeClassFallback = globalActiveClass == null\n            ? 'router-link-active'\n            : globalActiveClass;\n    var exactActiveClassFallback = globalExactActiveClass == null\n            ? 'router-link-exact-active'\n            : globalExactActiveClass;\n    var activeClass = this.activeClass == null\n            ? activeClassFallback\n            : this.activeClass;\n    var exactActiveClass = this.exactActiveClass == null\n            ? exactActiveClassFallback\n            : this.exactActiveClass;\n    var compareTarget = location.path\n      ? createRoute(null, location, null, router)\n      : route;\n\n    classes[exactActiveClass] = isSameRoute(current, compareTarget);\n    classes[activeClass] = this.exact\n      ? classes[exactActiveClass]\n      : isIncludedRoute(current, compareTarget);\n\n    var handler = function (e) {\n      if (guardEvent(e)) {\n        if (this$1.replace) {\n          router.replace(location);\n        } else {\n          router.push(location);\n        }\n      }\n    };\n\n    var on = { click: guardEvent };\n    if (Array.isArray(this.event)) {\n      this.event.forEach(function (e) { on[e] = handler; });\n    } else {\n      on[this.event] = handler;\n    }\n\n    var data = {\n      class: classes\n    };\n\n    if (this.tag === 'a') {\n      data.on = on;\n      data.attrs = { href: href };\n    } else {\n      // find the first <a> child and apply listener and href\n      var a = findAnchor(this.$slots.default);\n      if (a) {\n        // in case the <a> is a static node\n        a.isStatic = false;\n        var extend = _Vue.util.extend;\n        var aData = a.data = extend({}, a.data);\n        aData.on = on;\n        var aAttrs = a.data.attrs = extend({}, a.data.attrs);\n        aAttrs.href = href;\n      } else {\n        // doesn't have <a> child, apply listener to self\n        data.on = on;\n      }\n    }\n\n    return h(this.tag, data, this.$slots.default)\n  }\n};\n\nfunction guardEvent (e) {\n  // don't redirect with control keys\n  if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n  // don't redirect when preventDefault called\n  if (e.defaultPrevented) { return }\n  // don't redirect on right click\n  if (e.button !== undefined && e.button !== 0) { return }\n  // don't redirect if `target=\"_blank\"`\n  if (e.currentTarget && e.currentTarget.getAttribute) {\n    var target = e.currentTarget.getAttribute('target');\n    if (/\\b_blank\\b/i.test(target)) { return }\n  }\n  // this may be a Weex event which doesn't have this method\n  if (e.preventDefault) {\n    e.preventDefault();\n  }\n  return true\n}\n\nfunction findAnchor (children) {\n  if (children) {\n    var child;\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      if (child.tag === 'a') {\n        return child\n      }\n      if (child.children && (child = findAnchor(child.children))) {\n        return child\n      }\n    }\n  }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n  if (install.installed && _Vue === Vue) { return }\n  install.installed = true;\n\n  _Vue = Vue;\n\n  var isDef = function (v) { return v !== undefined; };\n\n  var registerInstance = function (vm, callVal) {\n    var i = vm.$options._parentVnode;\n    if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n      i(vm, callVal);\n    }\n  };\n\n  Vue.mixin({\n    beforeCreate: function beforeCreate () {\n      if (isDef(this.$options.router)) {\n        this._routerRoot = this;\n        this._router = this.$options.router;\n        this._router.init(this);\n        Vue.util.defineReactive(this, '_route', this._router.history.current);\n      } else {\n        this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n      }\n      registerInstance(this, this);\n    },\n    destroyed: function destroyed () {\n      registerInstance(this);\n    }\n  });\n\n  Object.defineProperty(Vue.prototype, '$router', {\n    get: function get () { return this._routerRoot._router }\n  });\n\n  Object.defineProperty(Vue.prototype, '$route', {\n    get: function get () { return this._routerRoot._route }\n  });\n\n  Vue.component('router-view', View);\n  Vue.component('router-link', Link);\n\n  var strats = Vue.config.optionMergeStrategies;\n  // use the same hook merging strategy for route hooks\n  strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/*  */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/*  */\n\nfunction resolvePath (\n  relative,\n  base,\n  append\n) {\n  var firstChar = relative.charAt(0);\n  if (firstChar === '/') {\n    return relative\n  }\n\n  if (firstChar === '?' || firstChar === '#') {\n    return base + relative\n  }\n\n  var stack = base.split('/');\n\n  // remove trailing segment if:\n  // - not appending\n  // - appending to trailing slash (last segment is empty)\n  if (!append || !stack[stack.length - 1]) {\n    stack.pop();\n  }\n\n  // resolve relative path\n  var segments = relative.replace(/^\\//, '').split('/');\n  for (var i = 0; i < segments.length; i++) {\n    var segment = segments[i];\n    if (segment === '..') {\n      stack.pop();\n    } else if (segment !== '.') {\n      stack.push(segment);\n    }\n  }\n\n  // ensure leading slash\n  if (stack[0] !== '') {\n    stack.unshift('');\n  }\n\n  return stack.join('/')\n}\n\nfunction parsePath (path) {\n  var hash = '';\n  var query = '';\n\n  var hashIndex = path.indexOf('#');\n  if (hashIndex >= 0) {\n    hash = path.slice(hashIndex);\n    path = path.slice(0, hashIndex);\n  }\n\n  var queryIndex = path.indexOf('?');\n  if (queryIndex >= 0) {\n    query = path.slice(queryIndex + 1);\n    path = path.slice(0, queryIndex);\n  }\n\n  return {\n    path: path,\n    query: query,\n    hash: hash\n  }\n}\n\nfunction cleanPath (path) {\n  return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n  return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n  // \"/route(\\\\d+)\"  => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n  // \"/*\"            => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n  '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = [];\n  var key = 0;\n  var index = 0;\n  var path = '';\n  var defaultDelimiter = options && options.delimiter || '/';\n  var res;\n\n  while ((res = PATH_REGEXP.exec(str)) != null) {\n    var m = res[0];\n    var escaped = res[1];\n    var offset = res.index;\n    path += str.slice(index, offset);\n    index = offset + m.length;\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1];\n      continue\n    }\n\n    var next = str[index];\n    var prefix = res[2];\n    var name = res[3];\n    var capture = res[4];\n    var group = res[5];\n    var modifier = res[6];\n    var asterisk = res[7];\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path);\n      path = '';\n    }\n\n    var partial = prefix != null && next != null && next !== prefix;\n    var repeat = modifier === '+' || modifier === '*';\n    var optional = modifier === '?' || modifier === '*';\n    var delimiter = res[2] || defaultDelimiter;\n    var pattern = capture || group;\n\n    tokens.push({\n      name: name || key++,\n      prefix: prefix || '',\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      partial: partial,\n      asterisk: !!asterisk,\n      pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n    });\n  }\n\n  // Match any characters still remaining.\n  if (index < str.length) {\n    path += str.substr(index);\n  }\n\n  // If the path exists, push it onto the end.\n  if (path) {\n    tokens.push(path);\n  }\n\n  return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n  return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param  {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n  return encodeURI(str).replace(/[?#]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length);\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n    }\n  }\n\n  return function (obj, opts) {\n    var path = '';\n    var data = obj || {};\n    var options = opts || {};\n    var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i];\n\n      if (typeof token === 'string') {\n        path += token;\n\n        continue\n      }\n\n      var value = data[token.name];\n      var segment;\n\n      if (value == null) {\n        if (token.optional) {\n          // Prepend partial segment prefixes.\n          if (token.partial) {\n            path += token.prefix;\n          }\n\n          continue\n        } else {\n          throw new TypeError('Expected \"' + token.name + '\" to be defined')\n        }\n      }\n\n      if (isarray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) {\n            continue\n          } else {\n            throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n          }\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j]);\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment;\n        }\n\n        continue\n      }\n\n      segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n      if (!matches[i].test(segment)) {\n        throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n      }\n\n      path += token.prefix + segment;\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param  {!RegExp} re\n * @param  {Array}   keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n  re.keys = keys;\n  return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {!Array}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g);\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        asterisk: false,\n        pattern: null\n      });\n    }\n  }\n\n  return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array}   keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = [];\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source);\n  }\n\n  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n  return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {!Array}  keys\n * @param  {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}          tokens\n * @param  {(Array|Object)=} keys\n * @param  {Object=}         options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options);\n    keys = [];\n  }\n\n  options = options || {};\n\n  var strict = options.strict;\n  var end = options.end !== false;\n  var route = '';\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i];\n\n    if (typeof token === 'string') {\n      route += escapeString(token);\n    } else {\n      var prefix = escapeString(token.prefix);\n      var capture = '(?:' + token.pattern + ')';\n\n      keys.push(token);\n\n      if (token.repeat) {\n        capture += '(?:' + prefix + capture + ')*';\n      }\n\n      if (token.optional) {\n        if (!token.partial) {\n          capture = '(?:' + prefix + '(' + capture + '))?';\n        } else {\n          capture = prefix + '(' + capture + ')?';\n        }\n      } else {\n        capture = prefix + '(' + capture + ')';\n      }\n\n      route += capture;\n    }\n  }\n\n  var delimiter = escapeString(options.delimiter || '/');\n  var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n  // In non-strict mode we allow a slash at the end of match. If the path to\n  // match already ends with a slash, we remove it for consistency. The slash\n  // is valid at the end of a path match, not in the middle. This is important\n  // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n  if (!strict) {\n    route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n  }\n\n  if (end) {\n    route += '$';\n  } else {\n    // In non-ending mode, we need the capturing groups to match as much as\n    // possible by using a positive lookahead to the end or next path segment.\n    route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n  }\n\n  return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {(Array|Object)=}       keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (!isarray(keys)) {\n    options = /** @type {!Object} */ (keys || options);\n    keys = [];\n  }\n\n  options = options || {};\n\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, /** @type {!Array} */ (keys))\n  }\n\n  if (isarray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/*  */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n  path,\n  params,\n  routeMsg\n) {\n  try {\n    var filler =\n      regexpCompileCache[path] ||\n      (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n    return filler(params || {}, { pretty: true })\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') {\n      warn(false, (\"missing param for \" + routeMsg + \": \" + (e.message)));\n    }\n    return ''\n  }\n}\n\n/*  */\n\nfunction createRouteMap (\n  routes,\n  oldPathList,\n  oldPathMap,\n  oldNameMap\n) {\n  // the path list is used to control path matching priority\n  var pathList = oldPathList || [];\n  // $flow-disable-line\n  var pathMap = oldPathMap || Object.create(null);\n  // $flow-disable-line\n  var nameMap = oldNameMap || Object.create(null);\n\n  routes.forEach(function (route) {\n    addRouteRecord(pathList, pathMap, nameMap, route);\n  });\n\n  // ensure wildcard routes are always at the end\n  for (var i = 0, l = pathList.length; i < l; i++) {\n    if (pathList[i] === '*') {\n      pathList.push(pathList.splice(i, 1)[0]);\n      l--;\n      i--;\n    }\n  }\n\n  return {\n    pathList: pathList,\n    pathMap: pathMap,\n    nameMap: nameMap\n  }\n}\n\nfunction addRouteRecord (\n  pathList,\n  pathMap,\n  nameMap,\n  route,\n  parent,\n  matchAs\n) {\n  var path = route.path;\n  var name = route.name;\n  if (process.env.NODE_ENV !== 'production') {\n    assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n    assert(\n      typeof route.component !== 'string',\n      \"route config \\\"component\\\" for path: \" + (String(path || name)) + \" cannot be a \" +\n      \"string id. Use an actual component instead.\"\n    );\n  }\n\n  var pathToRegexpOptions = route.pathToRegexpOptions || {};\n  var normalizedPath = normalizePath(\n    path,\n    parent,\n    pathToRegexpOptions.strict\n  );\n\n  if (typeof route.caseSensitive === 'boolean') {\n    pathToRegexpOptions.sensitive = route.caseSensitive;\n  }\n\n  var record = {\n    path: normalizedPath,\n    regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n    components: route.components || { default: route.component },\n    instances: {},\n    name: name,\n    parent: parent,\n    matchAs: matchAs,\n    redirect: route.redirect,\n    beforeEnter: route.beforeEnter,\n    meta: route.meta || {},\n    props: route.props == null\n      ? {}\n      : route.components\n        ? route.props\n        : { default: route.props }\n  };\n\n  if (route.children) {\n    // Warn if route is named, does not redirect and has a default child route.\n    // If users navigate to this route by name, the default child will\n    // not be rendered (GH Issue #629)\n    if (process.env.NODE_ENV !== 'production') {\n      if (route.name && !route.redirect && route.children.some(function (child) { return /^\\/?$/.test(child.path); })) {\n        warn(\n          false,\n          \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n          \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n          \"the default child route will not be rendered. Remove the name from \" +\n          \"this route and use the name of the default child route for named \" +\n          \"links instead.\"\n        );\n      }\n    }\n    route.children.forEach(function (child) {\n      var childMatchAs = matchAs\n        ? cleanPath((matchAs + \"/\" + (child.path)))\n        : undefined;\n      addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n    });\n  }\n\n  if (route.alias !== undefined) {\n    var aliases = Array.isArray(route.alias)\n      ? route.alias\n      : [route.alias];\n\n    aliases.forEach(function (alias) {\n      var aliasRoute = {\n        path: alias,\n        children: route.children\n      };\n      addRouteRecord(\n        pathList,\n        pathMap,\n        nameMap,\n        aliasRoute,\n        parent,\n        record.path || '/' // matchAs\n      );\n    });\n  }\n\n  if (!pathMap[record.path]) {\n    pathList.push(record.path);\n    pathMap[record.path] = record;\n  }\n\n  if (name) {\n    if (!nameMap[name]) {\n      nameMap[name] = record;\n    } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n      warn(\n        false,\n        \"Duplicate named routes definition: \" +\n        \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n      );\n    }\n  }\n}\n\nfunction compileRouteRegex (path, pathToRegexpOptions) {\n  var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n  if (process.env.NODE_ENV !== 'production') {\n    var keys = Object.create(null);\n    regex.keys.forEach(function (key) {\n      warn(!keys[key.name], (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\"));\n      keys[key.name] = true;\n    });\n  }\n  return regex\n}\n\nfunction normalizePath (path, parent, strict) {\n  if (!strict) { path = path.replace(/\\/$/, ''); }\n  if (path[0] === '/') { return path }\n  if (parent == null) { return path }\n  return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/*  */\n\n\nfunction normalizeLocation (\n  raw,\n  current,\n  append,\n  router\n) {\n  var next = typeof raw === 'string' ? { path: raw } : raw;\n  // named target\n  if (next.name || next._normalized) {\n    return next\n  }\n\n  // relative params\n  if (!next.path && next.params && current) {\n    next = assign({}, next);\n    next._normalized = true;\n    var params = assign(assign({}, current.params), next.params);\n    if (current.name) {\n      next.name = current.name;\n      next.params = params;\n    } else if (current.matched.length) {\n      var rawPath = current.matched[current.matched.length - 1].path;\n      next.path = fillParams(rawPath, params, (\"path \" + (current.path)));\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn(false, \"relative params navigation requires a current route.\");\n    }\n    return next\n  }\n\n  var parsedPath = parsePath(next.path || '');\n  var basePath = (current && current.path) || '/';\n  var path = parsedPath.path\n    ? resolvePath(parsedPath.path, basePath, append || next.append)\n    : basePath;\n\n  var query = resolveQuery(\n    parsedPath.query,\n    next.query,\n    router && router.options.parseQuery\n  );\n\n  var hash = next.hash || parsedPath.hash;\n  if (hash && hash.charAt(0) !== '#') {\n    hash = \"#\" + hash;\n  }\n\n  return {\n    _normalized: true,\n    path: path,\n    query: query,\n    hash: hash\n  }\n}\n\nfunction assign (a, b) {\n  for (var key in b) {\n    a[key] = b[key];\n  }\n  return a\n}\n\n/*  */\n\n\nfunction createMatcher (\n  routes,\n  router\n) {\n  var ref = createRouteMap(routes);\n  var pathList = ref.pathList;\n  var pathMap = ref.pathMap;\n  var nameMap = ref.nameMap;\n\n  function addRoutes (routes) {\n    createRouteMap(routes, pathList, pathMap, nameMap);\n  }\n\n  function match (\n    raw,\n    currentRoute,\n    redirectedFrom\n  ) {\n    var location = normalizeLocation(raw, currentRoute, false, router);\n    var name = location.name;\n\n    if (name) {\n      var record = nameMap[name];\n      if (process.env.NODE_ENV !== 'production') {\n        warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n      }\n      if (!record) { return _createRoute(null, location) }\n      var paramNames = record.regex.keys\n        .filter(function (key) { return !key.optional; })\n        .map(function (key) { return key.name; });\n\n      if (typeof location.params !== 'object') {\n        location.params = {};\n      }\n\n      if (currentRoute && typeof currentRoute.params === 'object') {\n        for (var key in currentRoute.params) {\n          if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n            location.params[key] = currentRoute.params[key];\n          }\n        }\n      }\n\n      if (record) {\n        location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n        return _createRoute(record, location, redirectedFrom)\n      }\n    } else if (location.path) {\n      location.params = {};\n      for (var i = 0; i < pathList.length; i++) {\n        var path = pathList[i];\n        var record$1 = pathMap[path];\n        if (matchRoute(record$1.regex, location.path, location.params)) {\n          return _createRoute(record$1, location, redirectedFrom)\n        }\n      }\n    }\n    // no match\n    return _createRoute(null, location)\n  }\n\n  function redirect (\n    record,\n    location\n  ) {\n    var originalRedirect = record.redirect;\n    var redirect = typeof originalRedirect === 'function'\n        ? originalRedirect(createRoute(record, location, null, router))\n        : originalRedirect;\n\n    if (typeof redirect === 'string') {\n      redirect = { path: redirect };\n    }\n\n    if (!redirect || typeof redirect !== 'object') {\n      if (process.env.NODE_ENV !== 'production') {\n        warn(\n          false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n        );\n      }\n      return _createRoute(null, location)\n    }\n\n    var re = redirect;\n    var name = re.name;\n    var path = re.path;\n    var query = location.query;\n    var hash = location.hash;\n    var params = location.params;\n    query = re.hasOwnProperty('query') ? re.query : query;\n    hash = re.hasOwnProperty('hash') ? re.hash : hash;\n    params = re.hasOwnProperty('params') ? re.params : params;\n\n    if (name) {\n      // resolved named direct\n      var targetRecord = nameMap[name];\n      if (process.env.NODE_ENV !== 'production') {\n        assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n      }\n      return match({\n        _normalized: true,\n        name: name,\n        query: query,\n        hash: hash,\n        params: params\n      }, undefined, location)\n    } else if (path) {\n      // 1. resolve relative redirect\n      var rawPath = resolveRecordPath(path, record);\n      // 2. resolve params\n      var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n      // 3. rematch with existing query and hash\n      return match({\n        _normalized: true,\n        path: resolvedPath,\n        query: query,\n        hash: hash\n      }, undefined, location)\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n      }\n      return _createRoute(null, location)\n    }\n  }\n\n  function alias (\n    record,\n    location,\n    matchAs\n  ) {\n    var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n    var aliasedMatch = match({\n      _normalized: true,\n      path: aliasedPath\n    });\n    if (aliasedMatch) {\n      var matched = aliasedMatch.matched;\n      var aliasedRecord = matched[matched.length - 1];\n      location.params = aliasedMatch.params;\n      return _createRoute(aliasedRecord, location)\n    }\n    return _createRoute(null, location)\n  }\n\n  function _createRoute (\n    record,\n    location,\n    redirectedFrom\n  ) {\n    if (record && record.redirect) {\n      return redirect(record, redirectedFrom || location)\n    }\n    if (record && record.matchAs) {\n      return alias(record, location, record.matchAs)\n    }\n    return createRoute(record, location, redirectedFrom, router)\n  }\n\n  return {\n    match: match,\n    addRoutes: addRoutes\n  }\n}\n\nfunction matchRoute (\n  regex,\n  path,\n  params\n) {\n  var m = path.match(regex);\n\n  if (!m) {\n    return false\n  } else if (!params) {\n    return true\n  }\n\n  for (var i = 1, len = m.length; i < len; ++i) {\n    var key = regex.keys[i - 1];\n    var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n    if (key) {\n      params[key.name] = val;\n    }\n  }\n\n  return true\n}\n\nfunction resolveRecordPath (path, record) {\n  return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/*  */\n\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n  // Fix for #1585 for Firefox\n  window.history.replaceState({ key: getStateKey() }, '');\n  window.addEventListener('popstate', function (e) {\n    saveScrollPosition();\n    if (e.state && e.state.key) {\n      setStateKey(e.state.key);\n    }\n  });\n}\n\nfunction handleScroll (\n  router,\n  to,\n  from,\n  isPop\n) {\n  if (!router.app) {\n    return\n  }\n\n  var behavior = router.options.scrollBehavior;\n  if (!behavior) {\n    return\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n  }\n\n  // wait until re-render finishes before scrolling\n  router.app.$nextTick(function () {\n    var position = getScrollPosition();\n    var shouldScroll = behavior(to, from, isPop ? position : null);\n\n    if (!shouldScroll) {\n      return\n    }\n\n    if (typeof shouldScroll.then === 'function') {\n      shouldScroll.then(function (shouldScroll) {\n        scrollToPosition((shouldScroll), position);\n      }).catch(function (err) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(false, err.toString());\n        }\n      });\n    } else {\n      scrollToPosition(shouldScroll, position);\n    }\n  });\n}\n\nfunction saveScrollPosition () {\n  var key = getStateKey();\n  if (key) {\n    positionStore[key] = {\n      x: window.pageXOffset,\n      y: window.pageYOffset\n    };\n  }\n}\n\nfunction getScrollPosition () {\n  var key = getStateKey();\n  if (key) {\n    return positionStore[key]\n  }\n}\n\nfunction getElementPosition (el, offset) {\n  var docEl = document.documentElement;\n  var docRect = docEl.getBoundingClientRect();\n  var elRect = el.getBoundingClientRect();\n  return {\n    x: elRect.left - docRect.left - offset.x,\n    y: elRect.top - docRect.top - offset.y\n  }\n}\n\nfunction isValidPosition (obj) {\n  return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n  return {\n    x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n    y: isNumber(obj.y) ? obj.y : window.pageYOffset\n  }\n}\n\nfunction normalizeOffset (obj) {\n  return {\n    x: isNumber(obj.x) ? obj.x : 0,\n    y: isNumber(obj.y) ? obj.y : 0\n  }\n}\n\nfunction isNumber (v) {\n  return typeof v === 'number'\n}\n\nfunction scrollToPosition (shouldScroll, position) {\n  var isObject = typeof shouldScroll === 'object';\n  if (isObject && typeof shouldScroll.selector === 'string') {\n    var el = document.querySelector(shouldScroll.selector);\n    if (el) {\n      var offset = shouldScroll.offset && typeof shouldScroll.offset === 'object' ? shouldScroll.offset : {};\n      offset = normalizeOffset(offset);\n      position = getElementPosition(el, offset);\n    } else if (isValidPosition(shouldScroll)) {\n      position = normalizePosition(shouldScroll);\n    }\n  } else if (isObject && isValidPosition(shouldScroll)) {\n    position = normalizePosition(shouldScroll);\n  }\n\n  if (position) {\n    window.scrollTo(position.x, position.y);\n  }\n}\n\n/*  */\n\nvar supportsPushState = inBrowser && (function () {\n  var ua = window.navigator.userAgent;\n\n  if (\n    (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n    ua.indexOf('Mobile Safari') !== -1 &&\n    ua.indexOf('Chrome') === -1 &&\n    ua.indexOf('Windows Phone') === -1\n  ) {\n    return false\n  }\n\n  return window.history && 'pushState' in window.history\n})();\n\n// use User Timing api (if present) for more accurate key precision\nvar Time = inBrowser && window.performance && window.performance.now\n  ? window.performance\n  : Date;\n\nvar _key = genKey();\n\nfunction genKey () {\n  return Time.now().toFixed(3)\n}\n\nfunction getStateKey () {\n  return _key\n}\n\nfunction setStateKey (key) {\n  _key = key;\n}\n\nfunction pushState (url, replace) {\n  saveScrollPosition();\n  // try...catch the pushState call to get around Safari\n  // DOM Exception 18 where it limits to 100 pushState calls\n  var history = window.history;\n  try {\n    if (replace) {\n      history.replaceState({ key: _key }, '', url);\n    } else {\n      _key = genKey();\n      history.pushState({ key: _key }, '', url);\n    }\n  } catch (e) {\n    window.location[replace ? 'replace' : 'assign'](url);\n  }\n}\n\nfunction replaceState (url) {\n  pushState(url, true);\n}\n\n/*  */\n\nfunction runQueue (queue, fn, cb) {\n  var step = function (index) {\n    if (index >= queue.length) {\n      cb();\n    } else {\n      if (queue[index]) {\n        fn(queue[index], function () {\n          step(index + 1);\n        });\n      } else {\n        step(index + 1);\n      }\n    }\n  };\n  step(0);\n}\n\n/*  */\n\nfunction resolveAsyncComponents (matched) {\n  return function (to, from, next) {\n    var hasAsync = false;\n    var pending = 0;\n    var error = null;\n\n    flatMapComponents(matched, function (def, _, match, key) {\n      // if it's a function and doesn't have cid attached,\n      // assume it's an async component resolve function.\n      // we are not using Vue's default async resolving mechanism because\n      // we want to halt the navigation until the incoming component has been\n      // resolved.\n      if (typeof def === 'function' && def.cid === undefined) {\n        hasAsync = true;\n        pending++;\n\n        var resolve = once(function (resolvedDef) {\n          if (isESModule(resolvedDef)) {\n            resolvedDef = resolvedDef.default;\n          }\n          // save resolved on async factory in case it's used elsewhere\n          def.resolved = typeof resolvedDef === 'function'\n            ? resolvedDef\n            : _Vue.extend(resolvedDef);\n          match.components[key] = resolvedDef;\n          pending--;\n          if (pending <= 0) {\n            next();\n          }\n        });\n\n        var reject = once(function (reason) {\n          var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n          process.env.NODE_ENV !== 'production' && warn(false, msg);\n          if (!error) {\n            error = isError(reason)\n              ? reason\n              : new Error(msg);\n            next(error);\n          }\n        });\n\n        var res;\n        try {\n          res = def(resolve, reject);\n        } catch (e) {\n          reject(e);\n        }\n        if (res) {\n          if (typeof res.then === 'function') {\n            res.then(resolve, reject);\n          } else {\n            // new syntax in Vue 2.3\n            var comp = res.component;\n            if (comp && typeof comp.then === 'function') {\n              comp.then(resolve, reject);\n            }\n          }\n        }\n      }\n    });\n\n    if (!hasAsync) { next(); }\n  }\n}\n\nfunction flatMapComponents (\n  matched,\n  fn\n) {\n  return flatten(matched.map(function (m) {\n    return Object.keys(m.components).map(function (key) { return fn(\n      m.components[key],\n      m.instances[key],\n      m, key\n    ); })\n  }))\n}\n\nfunction flatten (arr) {\n  return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n  typeof Symbol === 'function' &&\n  typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n  return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n  var called = false;\n  return function () {\n    var args = [], len = arguments.length;\n    while ( len-- ) args[ len ] = arguments[ len ];\n\n    if (called) { return }\n    called = true;\n    return fn.apply(this, args)\n  }\n}\n\n/*  */\n\nvar History = function History (router, base) {\n  this.router = router;\n  this.base = normalizeBase(base);\n  // start with a route object that stands for \"nowhere\"\n  this.current = START;\n  this.pending = null;\n  this.ready = false;\n  this.readyCbs = [];\n  this.readyErrorCbs = [];\n  this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n  this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n  if (this.ready) {\n    cb();\n  } else {\n    this.readyCbs.push(cb);\n    if (errorCb) {\n      this.readyErrorCbs.push(errorCb);\n    }\n  }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n  this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (location, onComplete, onAbort) {\n    var this$1 = this;\n\n  var route = this.router.match(location, this.current);\n  this.confirmTransition(route, function () {\n    this$1.updateRoute(route);\n    onComplete && onComplete(route);\n    this$1.ensureURL();\n\n    // fire ready cbs once\n    if (!this$1.ready) {\n      this$1.ready = true;\n      this$1.readyCbs.forEach(function (cb) { cb(route); });\n    }\n  }, function (err) {\n    if (onAbort) {\n      onAbort(err);\n    }\n    if (err && !this$1.ready) {\n      this$1.ready = true;\n      this$1.readyErrorCbs.forEach(function (cb) { cb(err); });\n    }\n  });\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n    var this$1 = this;\n\n  var current = this.current;\n  var abort = function (err) {\n    if (isError(err)) {\n      if (this$1.errorCbs.length) {\n        this$1.errorCbs.forEach(function (cb) { cb(err); });\n      } else {\n        warn(false, 'uncaught error during route navigation:');\n        console.error(err);\n      }\n    }\n    onAbort && onAbort(err);\n  };\n  if (\n    isSameRoute(route, current) &&\n    // in the case the route map has been dynamically appended to\n    route.matched.length === current.matched.length\n  ) {\n    this.ensureURL();\n    return abort()\n  }\n\n  var ref = resolveQueue(this.current.matched, route.matched);\n    var updated = ref.updated;\n    var deactivated = ref.deactivated;\n    var activated = ref.activated;\n\n  var queue = [].concat(\n    // in-component leave guards\n    extractLeaveGuards(deactivated),\n    // global before hooks\n    this.router.beforeHooks,\n    // in-component update hooks\n    extractUpdateHooks(updated),\n    // in-config enter guards\n    activated.map(function (m) { return m.beforeEnter; }),\n    // async components\n    resolveAsyncComponents(activated)\n  );\n\n  this.pending = route;\n  var iterator = function (hook, next) {\n    if (this$1.pending !== route) {\n      return abort()\n    }\n    try {\n      hook(route, current, function (to) {\n        if (to === false || isError(to)) {\n          // next(false) -> abort navigation, ensure current URL\n          this$1.ensureURL(true);\n          abort(to);\n        } else if (\n          typeof to === 'string' ||\n          (typeof to === 'object' && (\n            typeof to.path === 'string' ||\n            typeof to.name === 'string'\n          ))\n        ) {\n          // next('/') or next({ path: '/' }) -> redirect\n          abort();\n          if (typeof to === 'object' && to.replace) {\n            this$1.replace(to);\n          } else {\n            this$1.push(to);\n          }\n        } else {\n          // confirm transition and pass on the value\n          next(to);\n        }\n      });\n    } catch (e) {\n      abort(e);\n    }\n  };\n\n  runQueue(queue, iterator, function () {\n    var postEnterCbs = [];\n    var isValid = function () { return this$1.current === route; };\n    // wait until async components are resolved before\n    // extracting in-component enter guards\n    var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n    var queue = enterGuards.concat(this$1.router.resolveHooks);\n    runQueue(queue, iterator, function () {\n      if (this$1.pending !== route) {\n        return abort()\n      }\n      this$1.pending = null;\n      onComplete(route);\n      if (this$1.router.app) {\n        this$1.router.app.$nextTick(function () {\n          postEnterCbs.forEach(function (cb) { cb(); });\n        });\n      }\n    });\n  });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n  var prev = this.current;\n  this.current = route;\n  this.cb && this.cb(route);\n  this.router.afterHooks.forEach(function (hook) {\n    hook && hook(route, prev);\n  });\n};\n\nfunction normalizeBase (base) {\n  if (!base) {\n    if (inBrowser) {\n      // respect <base> tag\n      var baseEl = document.querySelector('base');\n      base = (baseEl && baseEl.getAttribute('href')) || '/';\n      // strip full URL origin\n      base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n    } else {\n      base = '/';\n    }\n  }\n  // make sure there's the starting slash\n  if (base.charAt(0) !== '/') {\n    base = '/' + base;\n  }\n  // remove trailing slash\n  return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n  current,\n  next\n) {\n  var i;\n  var max = Math.max(current.length, next.length);\n  for (i = 0; i < max; i++) {\n    if (current[i] !== next[i]) {\n      break\n    }\n  }\n  return {\n    updated: next.slice(0, i),\n    activated: next.slice(i),\n    deactivated: current.slice(i)\n  }\n}\n\nfunction extractGuards (\n  records,\n  name,\n  bind,\n  reverse\n) {\n  var guards = flatMapComponents(records, function (def, instance, match, key) {\n    var guard = extractGuard(def, name);\n    if (guard) {\n      return Array.isArray(guard)\n        ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n        : bind(guard, instance, match, key)\n    }\n  });\n  return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n  def,\n  key\n) {\n  if (typeof def !== 'function') {\n    // extend now so that global mixins are applied.\n    def = _Vue.extend(def);\n  }\n  return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n  return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n  return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n  if (instance) {\n    return function boundRouteGuard () {\n      return guard.apply(instance, arguments)\n    }\n  }\n}\n\nfunction extractEnterGuards (\n  activated,\n  cbs,\n  isValid\n) {\n  return extractGuards(activated, 'beforeRouteEnter', function (guard, _, match, key) {\n    return bindEnterGuard(guard, match, key, cbs, isValid)\n  })\n}\n\nfunction bindEnterGuard (\n  guard,\n  match,\n  key,\n  cbs,\n  isValid\n) {\n  return function routeEnterGuard (to, from, next) {\n    return guard(to, from, function (cb) {\n      next(cb);\n      if (typeof cb === 'function') {\n        cbs.push(function () {\n          // #750\n          // if a router-view is wrapped with an out-in transition,\n          // the instance may not have been registered at this time.\n          // we will need to poll for registration until current route\n          // is no longer valid.\n          poll(cb, match.instances, key, isValid);\n        });\n      }\n    })\n  }\n}\n\nfunction poll (\n  cb, // somehow flow cannot infer this is a function\n  instances,\n  key,\n  isValid\n) {\n  if (instances[key]) {\n    cb(instances[key]);\n  } else if (isValid()) {\n    setTimeout(function () {\n      poll(cb, instances, key, isValid);\n    }, 16);\n  }\n}\n\n/*  */\n\n\nvar HTML5History = (function (History$$1) {\n  function HTML5History (router, base) {\n    var this$1 = this;\n\n    History$$1.call(this, router, base);\n\n    var expectScroll = router.options.scrollBehavior;\n\n    if (expectScroll) {\n      setupScroll();\n    }\n\n    var initLocation = getLocation(this.base);\n    window.addEventListener('popstate', function (e) {\n      var current = this$1.current;\n\n      // Avoiding first `popstate` event dispatched in some browsers but first\n      // history route not updated since async guard at the same time.\n      var location = getLocation(this$1.base);\n      if (this$1.current === START && location === initLocation) {\n        return\n      }\n\n      this$1.transitionTo(location, function (route) {\n        if (expectScroll) {\n          handleScroll(router, route, current, true);\n        }\n      });\n    });\n  }\n\n  if ( History$$1 ) HTML5History.__proto__ = History$$1;\n  HTML5History.prototype = Object.create( History$$1 && History$$1.prototype );\n  HTML5History.prototype.constructor = HTML5History;\n\n  HTML5History.prototype.go = function go (n) {\n    window.history.go(n);\n  };\n\n  HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      pushState(cleanPath(this$1.base + route.fullPath));\n      handleScroll(this$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      replaceState(cleanPath(this$1.base + route.fullPath));\n      handleScroll(this$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HTML5History.prototype.ensureURL = function ensureURL (push) {\n    if (getLocation(this.base) !== this.current.fullPath) {\n      var current = cleanPath(this.base + this.current.fullPath);\n      push ? pushState(current) : replaceState(current);\n    }\n  };\n\n  HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n    return getLocation(this.base)\n  };\n\n  return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n  var path = window.location.pathname;\n  if (base && path.indexOf(base) === 0) {\n    path = path.slice(base.length);\n  }\n  return (path || '/') + window.location.search + window.location.hash\n}\n\n/*  */\n\n\nvar HashHistory = (function (History$$1) {\n  function HashHistory (router, base, fallback) {\n    History$$1.call(this, router, base);\n    // check history fallback deeplinking\n    if (fallback && checkFallback(this.base)) {\n      return\n    }\n    ensureSlash();\n  }\n\n  if ( History$$1 ) HashHistory.__proto__ = History$$1;\n  HashHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n  HashHistory.prototype.constructor = HashHistory;\n\n  // this is delayed until the app mounts\n  // to avoid the hashchange listener being fired too early\n  HashHistory.prototype.setupListeners = function setupListeners () {\n    var this$1 = this;\n\n    var router = this.router;\n    var expectScroll = router.options.scrollBehavior;\n    var supportsScroll = supportsPushState && expectScroll;\n\n    if (supportsScroll) {\n      setupScroll();\n    }\n\n    window.addEventListener(supportsPushState ? 'popstate' : 'hashchange', function () {\n      var current = this$1.current;\n      if (!ensureSlash()) {\n        return\n      }\n      this$1.transitionTo(getHash(), function (route) {\n        if (supportsScroll) {\n          handleScroll(this$1.router, route, current, true);\n        }\n        if (!supportsPushState) {\n          replaceHash(route.fullPath);\n        }\n      });\n    });\n  };\n\n  HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      pushHash(route.fullPath);\n      handleScroll(this$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    var ref = this;\n    var fromRoute = ref.current;\n    this.transitionTo(location, function (route) {\n      replaceHash(route.fullPath);\n      handleScroll(this$1.router, route, fromRoute, false);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  HashHistory.prototype.go = function go (n) {\n    window.history.go(n);\n  };\n\n  HashHistory.prototype.ensureURL = function ensureURL (push) {\n    var current = this.current.fullPath;\n    if (getHash() !== current) {\n      push ? pushHash(current) : replaceHash(current);\n    }\n  };\n\n  HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n    return getHash()\n  };\n\n  return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n  var location = getLocation(base);\n  if (!/^\\/#/.test(location)) {\n    window.location.replace(\n      cleanPath(base + '/#' + location)\n    );\n    return true\n  }\n}\n\nfunction ensureSlash () {\n  var path = getHash();\n  if (path.charAt(0) === '/') {\n    return true\n  }\n  replaceHash('/' + path);\n  return false\n}\n\nfunction getHash () {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  var href = window.location.href;\n  var index = href.indexOf('#');\n  return index === -1 ? '' : href.slice(index + 1)\n}\n\nfunction getUrl (path) {\n  var href = window.location.href;\n  var i = href.indexOf('#');\n  var base = i >= 0 ? href.slice(0, i) : href;\n  return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n  if (supportsPushState) {\n    pushState(getUrl(path));\n  } else {\n    window.location.hash = path;\n  }\n}\n\nfunction replaceHash (path) {\n  if (supportsPushState) {\n    replaceState(getUrl(path));\n  } else {\n    window.location.replace(getUrl(path));\n  }\n}\n\n/*  */\n\n\nvar AbstractHistory = (function (History$$1) {\n  function AbstractHistory (router, base) {\n    History$$1.call(this, router, base);\n    this.stack = [];\n    this.index = -1;\n  }\n\n  if ( History$$1 ) AbstractHistory.__proto__ = History$$1;\n  AbstractHistory.prototype = Object.create( History$$1 && History$$1.prototype );\n  AbstractHistory.prototype.constructor = AbstractHistory;\n\n  AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    this.transitionTo(location, function (route) {\n      this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n      this$1.index++;\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n    var this$1 = this;\n\n    this.transitionTo(location, function (route) {\n      this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n      onComplete && onComplete(route);\n    }, onAbort);\n  };\n\n  AbstractHistory.prototype.go = function go (n) {\n    var this$1 = this;\n\n    var targetIndex = this.index + n;\n    if (targetIndex < 0 || targetIndex >= this.stack.length) {\n      return\n    }\n    var route = this.stack[targetIndex];\n    this.confirmTransition(route, function () {\n      this$1.index = targetIndex;\n      this$1.updateRoute(route);\n    });\n  };\n\n  AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n    var current = this.stack[this.stack.length - 1];\n    return current ? current.fullPath : '/'\n  };\n\n  AbstractHistory.prototype.ensureURL = function ensureURL () {\n    // noop\n  };\n\n  return AbstractHistory;\n}(History));\n\n/*  */\n\nvar VueRouter = function VueRouter (options) {\n  if ( options === void 0 ) options = {};\n\n  this.app = null;\n  this.apps = [];\n  this.options = options;\n  this.beforeHooks = [];\n  this.resolveHooks = [];\n  this.afterHooks = [];\n  this.matcher = createMatcher(options.routes || [], this);\n\n  var mode = options.mode || 'hash';\n  this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n  if (this.fallback) {\n    mode = 'hash';\n  }\n  if (!inBrowser) {\n    mode = 'abstract';\n  }\n  this.mode = mode;\n\n  switch (mode) {\n    case 'history':\n      this.history = new HTML5History(this, options.base);\n      break\n    case 'hash':\n      this.history = new HashHistory(this, options.base, this.fallback);\n      break\n    case 'abstract':\n      this.history = new AbstractHistory(this, options.base);\n      break\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        assert(false, (\"invalid mode: \" + mode));\n      }\n  }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n  raw,\n  current,\n  redirectedFrom\n) {\n  return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n  return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n    var this$1 = this;\n\n  process.env.NODE_ENV !== 'production' && assert(\n    install.installed,\n    \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n    \"before creating root instance.\"\n  );\n\n  this.apps.push(app);\n\n  // main app already initialized.\n  if (this.app) {\n    return\n  }\n\n  this.app = app;\n\n  var history = this.history;\n\n  if (history instanceof HTML5History) {\n    history.transitionTo(history.getCurrentLocation());\n  } else if (history instanceof HashHistory) {\n    var setupHashListener = function () {\n      history.setupListeners();\n    };\n    history.transitionTo(\n      history.getCurrentLocation(),\n      setupHashListener,\n      setupHashListener\n    );\n  }\n\n  history.listen(function (route) {\n    this$1.apps.forEach(function (app) {\n      app._route = route;\n    });\n  });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n  return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n  return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n  return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n  this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n  this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n  this.history.push(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n  this.history.replace(location, onComplete, onAbort);\n};\n\nVueRouter.prototype.go = function go (n) {\n  this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n  this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n  this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n  var route = to\n    ? to.matched\n      ? to\n      : this.resolve(to).route\n    : this.currentRoute;\n  if (!route) {\n    return []\n  }\n  return [].concat.apply([], route.matched.map(function (m) {\n    return Object.keys(m.components).map(function (key) {\n      return m.components[key]\n    })\n  }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n  to,\n  current,\n  append\n) {\n  var location = normalizeLocation(\n    to,\n    current || this.history.current,\n    append,\n    this\n  );\n  var route = this.match(location, current);\n  var fullPath = route.redirectedFrom || route.fullPath;\n  var base = this.history.base;\n  var href = createHref(base, fullPath, this.mode);\n  return {\n    location: location,\n    route: route,\n    href: href,\n    // for backwards compat\n    normalizedTo: location,\n    resolved: route\n  }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n  this.matcher.addRoutes(routes);\n  if (this.history.current !== START) {\n    this.history.transitionTo(this.history.getCurrentLocation());\n  }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n  list.push(fn);\n  return function () {\n    var i = list.indexOf(fn);\n    if (i > -1) { list.splice(i, 1); }\n  }\n}\n\nfunction createHref (base, fullPath, mode) {\n  var path = mode === 'hash' ? '#' + fullPath : fullPath;\n  return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.0.1';\n\nif (inBrowser && window.Vue) {\n  window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-router@3.0.1@vue-router/dist/vue-router.esm.js\n// module id = zO6J\n// module chunks = 0","var zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar SunburstPiece = require(\"./SunburstPiece\");\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar SunburstView = ChartView.extend({\n  type: 'sunburst',\n  init: function () {},\n  render: function (seriesModel, ecModel, api, payload) {\n    var that = this;\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var data = seriesModel.getData();\n    var virtualRoot = data.tree.root;\n    var newRoot = seriesModel.getViewRoot();\n    var group = this.group;\n    var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n    var newChildren = [];\n    newRoot.eachNode(function (node) {\n      newChildren.push(node);\n    });\n    var oldChildren = this._oldChildren || [];\n    dualTravel(newChildren, oldChildren);\n    renderRollUp(virtualRoot, newRoot);\n\n    if (payload && payload.highlight && payload.highlight.piece) {\n      var highlightPolicy = seriesModel.getShallow('highlightPolicy');\n      payload.highlight.piece.onEmphasis(highlightPolicy);\n    } else if (payload && payload.unhighlight) {\n      var piece = this.virtualPiece;\n\n      if (!piece && virtualRoot.children.length) {\n        piece = virtualRoot.children[0].piece;\n      }\n\n      if (piece) {\n        piece.onNormal();\n      }\n    }\n\n    this._initEvents();\n\n    this._oldChildren = newChildren;\n\n    function dualTravel(newChildren, oldChildren) {\n      if (newChildren.length === 0 && oldChildren.length === 0) {\n        return;\n      }\n\n      new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newId, oldId) {\n        var newNode = newId == null ? null : newChildren[newId];\n        var oldNode = oldId == null ? null : oldChildren[oldId];\n        doRenderNode(newNode, oldNode);\n      }\n    }\n\n    function doRenderNode(newNode, oldNode) {\n      if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n        // Not render data with value 0\n        newNode = null;\n      }\n\n      if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n        if (oldNode && oldNode.piece) {\n          if (newNode) {\n            // Update\n            oldNode.piece.updateData(false, newNode, 'normal', seriesModel, ecModel); // For tooltip\n\n            data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n          } else {\n            // Remove\n            removeNode(oldNode);\n          }\n        } else if (newNode) {\n          // Add\n          var piece = new SunburstPiece(newNode, seriesModel, ecModel);\n          group.add(piece); // For tooltip\n\n          data.setItemGraphicEl(newNode.dataIndex, piece);\n        }\n      }\n    }\n\n    function removeNode(node) {\n      if (!node) {\n        return;\n      }\n\n      if (node.piece) {\n        group.remove(node.piece);\n        node.piece = null;\n      }\n    }\n\n    function renderRollUp(virtualRoot, viewRoot) {\n      if (viewRoot.depth > 0) {\n        // Render\n        if (that.virtualPiece) {\n          // Update\n          that.virtualPiece.updateData(false, virtualRoot, 'normal', seriesModel, ecModel);\n        } else {\n          // Add\n          that.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel);\n          group.add(that.virtualPiece);\n        }\n\n        if (viewRoot.piece._onclickEvent) {\n          viewRoot.piece.off('click', viewRoot.piece._onclickEvent);\n        }\n\n        var event = function (e) {\n          that._rootToNode(viewRoot.parentNode);\n        };\n\n        viewRoot.piece._onclickEvent = event;\n        that.virtualPiece.on('click', event);\n      } else if (that.virtualPiece) {\n        // Remove\n        group.remove(that.virtualPiece);\n        that.virtualPiece = null;\n      }\n    }\n  },\n  dispose: function () {},\n\n  /**\n   * @private\n   */\n  _initEvents: function () {\n    var that = this;\n\n    var event = function (e) {\n      var targetFound = false;\n      var viewRoot = that.seriesModel.getViewRoot();\n      viewRoot.eachNode(function (node) {\n        if (!targetFound && node.piece && node.piece.childAt(0) === e.target) {\n          var nodeClick = node.getModel().get('nodeClick');\n\n          if (nodeClick === 'rootToNode') {\n            that._rootToNode(node);\n          } else if (nodeClick === 'link') {\n            var itemModel = node.getModel();\n            var link = itemModel.get('link');\n\n            if (link) {\n              var linkTarget = itemModel.get('target', true) || '_blank';\n              window.open(link, linkTarget);\n            }\n          }\n\n          targetFound = true;\n        }\n      });\n    };\n\n    if (this.group._onclickEvent) {\n      this.group.off('click', this.group._onclickEvent);\n    }\n\n    this.group.on('click', event);\n    this.group._onclickEvent = event;\n  },\n\n  /**\n   * @private\n   */\n  _rootToNode: function (node) {\n    if (node !== this.seriesModel.getViewRoot()) {\n      this.api.dispatchAction({\n        type: ROOT_TO_NODE_ACTION,\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        targetNode: node\n      });\n    }\n  },\n\n  /**\n   * @implement\n   */\n  containPoint: function (point, seriesModel) {\n    var treeRoot = seriesModel.getData();\n    var itemLayout = treeRoot.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  }\n});\nvar _default = SunburstView;\nmodule.exports = _default;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_echarts@4.1.0@echarts/lib/chart/sunburst/SunburstView.js\n// module id = zQpG\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.default = scrollIntoView;\n\nvar _vue = require('vue');\n\nvar _vue2 = _interopRequireDefault(_vue);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction scrollIntoView(container, selected) {\n  if (_vue2.default.prototype.$isServer) return;\n\n  if (!selected) {\n    container.scrollTop = 0;\n    return;\n  }\n\n  var offsetParents = [];\n  var pointer = selected.offsetParent;\n  while (pointer && container !== pointer && container.contains(pointer)) {\n    offsetParents.push(pointer);\n    pointer = pointer.offsetParent;\n  }\n  var top = selected.offsetTop + offsetParents.reduce(function (prev, curr) {\n    return prev + curr.offsetTop;\n  }, 0);\n  var bottom = top + selected.offsetHeight;\n  var viewRectTop = container.scrollTop;\n  var viewRectBottom = viewRectTop + container.clientHeight;\n\n  if (top < viewRectTop) {\n    container.scrollTop = top;\n  } else if (bottom > viewRectBottom) {\n    container.scrollTop = bottom - container.clientHeight;\n  }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_element-ui@2.4.6@element-ui/lib/utils/scroll-into-view.js\n// module id = zdX1\n// module chunks = 0","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueBaiduMap=e():t.VueBaiduMap=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var o=n[i]={i:i,l:!1,exports:{}};return t[i].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\"\",e(e.s=43)}([function(t,e){t.exports=function(t,e,n,i){var o,a=t=t||{},r=typeof t.default;\"object\"!==r&&\"function\"!==r||(o=t,a=t.default);var s=\"function\"==typeof a?a.options:a;if(e&&(s.render=e.render,s.staticRenderFns=e.staticRenderFns),n&&(s._scopeId=n),i){var l=s.computed||(s.computed={});Object.keys(i).forEach(function(t){var e=i[t];l[t]=function(){return e}})}return{esModule:o,exports:a,options:s}}},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";function n(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function i(){var t=this.unload,e=this.renderByParent,n=this.$parent;e&&n.reload(),t()}Object.defineProperty(e,\"__esModule\",{value:!0});var o={control:{unload:\"removeControl\"},layer:{unload:\"removeTileLayer\"},overlay:{unload:\"removeOverlay\"},contextMenu:{unload:\"removeContextMenu\"}},a=function t(e){return e.abstract||e.$el===e.$children[0].$el?t(e.$parent):e},r=function t(e){n(this,t),this.methods={ready:function(){var t=a(this.$parent),e=this.BMap=t.BMap,n=this.map=t.map;this.load(),this.$emit(\"ready\",{BMap:e,map:n})},transmitEvent:function(t){this.$emit(t.type.replace(/^on/,\"\"),t)},reload:function(){var t=this;this&&this.BMap&&this.$nextTick(function(){t.unload(),t.$nextTick(t.load)})},unload:function(){var t=this.map,n=this.originInstance;try{switch(e.type){case\"search\":return n.clearResults();case\"autoComplete\":case\"lushu\":return n.dispose();case\"markerClusterer\":return n.clearMarkers();default:t[o[e.type].unload](n)}}catch(t){}}},this.computed={renderByParent:function(){return this.$parent.preventChildrenRender}},this.mounted=function(){var t=a(this.$parent),e=t.map,n=this.ready;e?n():t.$on(\"ready\",n)},this.destroyed=i,this.beforeDestroy=i};e.default=function(t){return new r({type:t})},t.exports=e.default})},function(t,e,n){var i,o,a;!function(n,r){o=[e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t){\"use strict\";function e(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.lng,i=e.lat;return new t.Point(n,i)}function n(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.x,i=e.y;return new t.Pixel(n,i)}function i(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.sw,o=n.ne;return new t.Bounds(e(t,i),e(t,o))}function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.width,i=e.height;return new t.Size(n,i)}function a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.url,i=e.size,a=e.opts,r=void 0===a?{}:a;return new t.Icon(n,o(t,i),{anchor:r.anchor&&o(t,r.anchor),imageSize:r.imageSize&&o(t,r.imageSize),imageOffset:r.imageOffset&&o(t,r.imageOffset),infoWindowAnchor:r.infoWindowAnchor&&o(t,r.infoWindowAnchor),printImageUrl:r.printImageUrl})}function r(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.content,a=n.opts;return new t.Label(i,{offset:a.offset&&o(t,a.offset),position:a.position&&e(t,a.position),enableMassClear:a.enableMassClear})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createPoint=e,t.createPixel=n,t.createBounds=i,t.createSize=o,t.createIcon=a,t.createLabel=r})},function(t,e){var n;n=function(){return this}();try{n=n||Function(\"return this\")()||(0,eval)(\"this\")}catch(t){\"object\"==typeof window&&(n=window)}t.exports=n},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(41),n(5)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function(t,e){var n=this,a=e||o.default[(0,i.toKebabCase)(this.$options._componentTag)];a&&a.forEach(function(e){var i=\"on\"===e.slice(0,2),o=i?e.slice(2):e,a=n.$listeners[o];a&&t.addEventListener(e,a.fns)})};var o=function(t){return t&&t.__esModule?t:{default:t}}(n);t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[e,n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.getPosition=t.toKebabCase=t.checkType=t.isPoint=void 0;var n=t.isPoint=function(t){return t.lng&&t.lat};t.checkType=function(t){return Object.prototype.toString.call(t).slice(8,-1)},t.toKebabCase=function(t){return t.replace(/[A-Z]/g,function(t){return\"-\"+t.toLowerCase()}).replace(/^-/,\"\")},t.getPosition=function(t,i){return n(i)?(0,e.createPoint)(t,i):i}})},function(t,e,n){var i=n(0)(n(72),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(44),n(89),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(45),n(87),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(46),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(47),n(94),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(48),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(49),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(50),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(51),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(52),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(53),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(54),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(55),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(56),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(57),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(58),n(90),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(59),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(60),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(61),n(97),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(62),n(83),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(63),n(95),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(64),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(65),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(66),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(67),n(84),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(68),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(69),n(96),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(70),n(85),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(71),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(73),null,null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(74),n(91),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(75),n(86),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(76),n(93),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(77),n(92),null,null);t.exports=i.exports},function(t,e,n){var i=n(0)(n(78),n(88),null,null);t.exports=i.exports},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={\"baidu-map\":[\"click\",\"dblclick\",\"rightclick\",\"rightdblclick\",\"maptypechange\",\"mousemove\",\"mouseover\",\"mouseout\",\"movestart\",\"moving\",\"moveend\",\"zoomstart\",\"zoomend\",\"addoverlay\",\"addcontrol\",\"removecontrol\",\"removeoverlay\",\"clearoverlays\",\"dragstart\",\"dragging\",\"dragend\",\"addtilelayer\",\"removetilelayer\",\"load\",\"resize\",\"hotspotclick\",\"hotspotover\",\"hotspotout\",\"tilesloaded\",\"touchstart\",\"touchmove\",\"touchend\",\"longpress\"],\"bm-geolocation\":[\"locationSuccess\",\"locationError\"],\"bm-overview-map\":[\"viewchanged\",\"viewchanging\"],\"bm-marker\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"infowindowclose\",\"infowindowopen\",\"dragstart\",\"dragging\",\"dragend\",\"rightclick\"],\"bm-polyline\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"lineupdate\"],\"bm-polygon\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"lineupdate\"],\"bm-circle\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"lineupdate\"],\"bm-label\":[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"rightclick\"],\"bm-info-window\":[\"close\",\"open\",\"maximize\",\"restore\",\"clickclose\"],\"bm-ground\":[\"click\",\"dblclick\"],\"bm-auto-complete\":[\"onconfirm\",\"onhighlight\"],\"bm-point-collection\":[\"click\",\"mouseover\",\"mouseout\"]},t.exports=e.default})},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";function n(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e<t.length;e++)n[e]=t[e];return n}return Array.from(t)}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}Object.defineProperty(e,\"__esModule\",{value:!0});var a=function t(e){var a=e.component,r=e.props,s=e.events,l=e.extraProps,c=e.exceptProps;o(this,t),this.render=function(t){var e=this;return t(a,{props:r.reduce(function(t,n){return Object.assign(t,i({},n,e[n]))},{}),on:s.reduce(function(t,n){return Object.assign(t,i({},n,e.transmitEvent))},{})})},this.props=[].concat(n(l),n(r.filter(function(t){return c.indexOf(t)})))};e.default=function(t){return new a(t)},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[e,n(24),n(25),n(17),n(14),n(13),n(15),n(12),n(11),n(9),n(16),n(10),n(32),n(34),n(35),n(6),n(28),n(29),n(31),n(30),n(33),n(8),n(7),n(38),n(39),n(40),n(37),n(36),n(22),n(23),n(27),n(26),n(21),n(20),n(19),n(18)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o,a,r,s,l,c,u,h,p,d,f,m,g,y,v,_,b,x,w,M,C,I,k,S,B,P,O,E,T,z,j,L){\"use strict\";function A(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.BmlCurveLine=t.BmlHeatmap=t.BmlLushu=t.BmlMarkerClusterer=t.BmAutoComplete=t.BmBoundary=t.BmTraffic=t.BmTile=t.BmBus=t.BmDriving=t.BmWalking=t.BmTransit=t.BmLocalSearch=t.BmContextMenuItem=t.BmContextMenu=t.BmOverlay=t.BmInfoWindow=t.BmLabel=t.BmGround=t.BmCircle=t.BmPolygon=t.BmPolyline=t.BmPointCollection=t.BmMarker=t.BmControl=t.BmPanorama=t.BmCityList=t.BmCopyright=t.BmGeolocation=t.BmOverviewMap=t.BmMapType=t.BmNavigation=t.BmScale=t.BmView=t.BaiduMap=void 0;var R=A(e),F=A(n),$=A(i),W=A(o),N=A(a),D=A(r),Z=A(s),V=A(l),H=A(c),G=A(u),U=A(h),J=A(p),K=A(d),X=A(f),q=A(m),Q=A(g),Y=A(y),tt=A(v),et=A(_),nt=A(b),it=A(x),ot=A(w),at=A(M),rt=A(C),st=A(I),lt=A(k),ct=A(S),ut=A(B),ht=A(P),pt=A(O),dt=A(E),ft=A(T),mt=A(z),gt=A(j),yt=A(L);t.default={install:function(t,e){var n=e.ak;t.prototype._BMap=function(){return{ak:n}},t.component(\"baidu-map\",R.default),t.component(\"bm-view\",F.default),t.component(\"bm-scale\",$.default),t.component(\"bm-navigation\",W.default),t.component(\"bm-map-type\",N.default),t.component(\"bm-overview-map\",D.default),t.component(\"bm-geolocation\",Z.default),t.component(\"bm-copyright\",V.default),t.component(\"bm-city-list\",H.default),t.component(\"bm-panorama\",G.default),t.component(\"bm-control\",U.default),t.component(\"bm-marker\",J.default),t.component(\"bm-point-collection\",K.default),t.component(\"bm-polyline\",X.default),t.component(\"bm-polygon\",q.default),t.component(\"bm-circle\",Q.default),t.component(\"bm-ground\",Y.default),t.component(\"bm-label\",tt.default),t.component(\"bm-info-window\",et.default),t.component(\"bm-overlay\",nt.default),t.component(\"bm-context-menu\",it.default),t.component(\"bm-context-menu-item\",ot.default),t.component(\"bm-local-search\",at.default),t.component(\"bm-transit\",rt.default),t.component(\"bm-walking\",st.default),t.component(\"bm-driving\",lt.default),t.component(\"bm-bus\",ct.default),t.component(\"bm-tile\",ut.default),t.component(\"bm-traffic\",ht.default),t.component(\"bm-auto-complete\",dt.default),t.component(\"bm-boundary\",pt.default)}},t.BaiduMap=R.default,t.BmView=F.default,t.BmScale=$.default,t.BmNavigation=W.default,t.BmMapType=N.default,t.BmOverviewMap=D.default,t.BmGeolocation=Z.default,t.BmCopyright=V.default,t.BmCityList=H.default,t.BmPanorama=G.default,t.BmControl=U.default,t.BmMarker=J.default,t.BmPointCollection=K.default,t.BmPolyline=X.default,t.BmPolygon=q.default,t.BmCircle=Q.default,t.BmGround=Y.default,t.BmLabel=tt.default,t.BmInfoWindow=et.default,t.BmOverlay=nt.default,t.BmContextMenu=it.default,t.BmContextMenuItem=ot.default,t.BmLocalSearch=at.default,t.BmTransit=rt.default,t.BmWalking=st.default,t.BmDriving=lt.default,t.BmBus=ct.default,t.BmTile=ut.default,t.BmTraffic=ht.default,t.BmBoundary=pt.default,t.BmAutoComplete=dt.default,t.BmlMarkerClusterer=ft.default,t.BmlLushu=mt.default,t.BmlHeatmap=gt.default,t.BmlCurveLine=yt.default})},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"bm-context-menu-item\",props:{callback:{type:Function,default:function(){}},text:{type:String},iconUrl:{type:String},id:{type:String},disabled:{type:Boolean},seperator:{type:Boolean}},methods:{reload:function(){this.$parent.map&&this.$parent.load()}},watch:{text:function(){this.reload()},iconUrl:function(){this.reload()},id:function(){this.reload()},disabled:function(){this.reload()},iseperator:function(){this.reload()},callback:function(){this.reload()}},destroyed:function(){this.reload()},mounted:function(){this.reload()}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-context-menu\",props:{width:{type:Number}},mixins:[(0,i.default)(\"contextMenu\")],methods:{load:function(){var t=this.width,e=this.BMap,n=this.map,i=this.$parent,o=this.parent=i.originInstance||n;o.removeContextMenu(this.originInstance);var a=this.originInstance=new e.ContextMenu,r=!0,s=!1,l=void 0;try{for(var c,u=this.$children[Symbol.iterator]();!(r=(c=u.next()).done);r=!0){(function(){var i=c.value;if(i.seperator)return a.addSeparator(),\"continue\";var r=new e.MenuItem(i.text,function(t,a){i.callback({point:t,pixel:a,BMap:e,map:n,target:o})},{width:t,id:i.id,iconUrl:i.iconUrl});i.disabled?r.disable():r.enable(),i.originInstance=r,a.addItem(r)})()}}catch(t){s=!0,l=t}finally{try{!r&&u.return&&u.return()}finally{if(s)throw l}}o.addContextMenu(a)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-city-list\",render:function(){},mixins:[(0,a.default)(\"control\")],props:{anchor:{type:String},offset:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset,r=this;this.originInstance=new t.CityListControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a),onChangeBefore:function(){r.$emit(\"changeBefore\")},onChangeAfter:function(){r.$emit(\"changeAfter\")}}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-control\",mixins:[(0,a.default)(\"control\")],props:[\"anchor\",\"offset\"],watch:{anchor:function(t){this.originInstance.setAnchor(t)},offset:function(t){this.originInstance.setOffset(t)}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset,r=this.$el,s=function(){this.defaultAnchor=i[n||\"BMAP_ANCHOR_TOP_LEFT\"],this.defaultOffset=(0,o.createSize)(t,a)};s.prototype=new t.Control,s.prototype.initialize=function(t){return t.getContainer().appendChild(r)},this.originInstance=new s(n,a),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-copyright\",render:function(){},mixins:[(0,a.default)(\"control\")],props:[\"anchor\",\"offset\",\"copyright\"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()},copyright:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.offset,a=this.anchor,r=this.updateCopyrightList;this.originInstance=new t.CopyrightControl({anchor:i[a],offset:n&&(0,o.createSize)(t,n)}),r(),e.addControl(this.originInstance)},updateCopyrightList:function(){var t=this,e=this.BMap,n=this.map,i=this.originInstance,o=i.removeCopyright,a=i.getCopyrightCollection,r=a();r&&r.forEach(function(t){o(t.id)}),this.copyright&&this.copyright.forEach(function(i){var o=i.bounds?new e.Bounds(new e.Point(i.bounds.sw.lng,i.bounds.sw.lat),new e.Point(i.bounds.ne.lng,i.bounds.ne.lat)):n.getBounds();t.originInstance.addCopyright({id:i.id,content:i.content,bounds:o}),t.originInstance.getCopyrightCollection()})}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(4),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(o);e.default={name:\"bm-geolocation\",render:function(){},mixins:[(0,s.default)(\"control\")],props:{anchor:{type:String},offset:{type:Object},showAddressBar:{type:Boolean},autoLocation:{type:Boolean},locationIcon:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},showAddressBar:function(){this.reload()},autoLocation:function(){this.reload()},locationIcon:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,o=this.showAddressBar,r=this.autoLocation,s=this.locationIcon,c=this.offset;this.originInstance=new t.GeolocationControl({anchor:i[n],showAddressBar:o,enableAutoLocation:r,offset:c&&(0,a.createSize)(t,c),locationIcon:s&&(0,a.createIcon)(t,s)}),l.default.call(this,this.originInstance),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-map-type\",render:function(){},mixins:[(0,a.default)(\"control\")],props:[\"type\",\"mapTypes\",\"anchor\",\"offset\"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()},type:function(){this.reload()},mapTypes:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset,r=this.type,s=[];this.mapTypes&&this.mapTypes.forEach(function(t){return s.push(i[t])}),this.originInstance=new t.MapTypeControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a),type:i[r],mapTypes:s}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-navigation\",render:function(){},mixins:[(0,a.default)(\"control\")],props:{anchor:{type:String},offset:{type:Object},type:{type:String},showZoomInfo:{type:Boolean},enableGeolocation:{type:Boolean,default:!1}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},type:function(){this.reload()},showZoomInfo:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset,r=this.type,s=this.showZoomInfo,l=this.enableGeolocation;this.originInstance=new t.NavigationControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a),type:i[r],showZoomInfo:s,enableGeolocation:l}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(2),n(1),n(4)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(o),l=r(a);e.default={name:\"bm-overview-map\",mixins:[(0,s.default)(\"control\")],render:function(){},props:{anchor:{type:String},offset:{type:Object},size:{type:Object},isOpen:{type:Boolean}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()},size:function(){this.reload()},isOpen:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,o=this.isOpen,a=this.size,r=this.offset,s=this.anchor,c=[];this.mapTypes&&this.mapTypes.forEach(function(t){c.push(i[t])}),this.originInstance=new t.OverviewMapControl({anchor:i[s],offset:(0,n.createSize)(t,r),size:(0,n.createSize)(t,a),isOpen:o}),l.default.call(this,this.originInstance),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-panorama\",mixins:[(0,a.default)(\"control\")],render:function(){},props:[\"anchor\",\"offset\"],watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset;this.originInstance=new t.PanoramaControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a)}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-scale\",render:function(){},mixins:[(0,a.default)(\"control\")],props:{anchor:{type:String},offset:{type:Object}},watch:{anchor:function(){this.reload()},offset:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.anchor,a=this.offset;this.originInstance=new t.ScaleControl({anchor:i[n],offset:a&&(0,o.createSize)(t,a)}),e.addControl(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(79),n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(i),c=r(o),u=[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\",\"lineupdate\"];e.default={name:\"bml-curve-line\",render:function(){},mixins:[(0,l.default)(\"overlay\")],props:{points:{type:Array,default:Array},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{points:{handler:function(t,e){this.originInstance.disableEditing(),this.reload()},deep:!0},strokeColor:function(t){this.originInstance.setStrokeColor(t)},strokeOpacity:function(t){this.originInstance.setStrokeOpacity(t)},strokeWeight:function(t){this.originInstance.setStrokeOpacity(t)},strokeStyle:function(t){this.originInstance.setStrokeStyle(t)},editing:function(t){t?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(t){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.points,i=this.strokeColor,o=this.strokeWeight,r=this.strokeOpacity,l=this.strokeStyle,h=this.editing,p=this.massClear,d=this.clicking,f=new s.default(n.map(function(e){return(0,a.createPoint)(t,e)}),{strokeColor:i,strokeWeight:o,strokeOpacity:r,strokeStyle:l,enableMassClear:p,enableClicking:d});h?f.enableEditing():f.disableEditing(),this.originInstance=f,e.addOverlay(f),c.default.call(this,f,u)}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(80)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i){\"use strict\";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var a=o(n),r=o(i);e.default={name:\"bml-heatmap\",render:function(){},mixins:[(0,a.default)(\"overlay\")],props:{data:{type:Array,default:Array},max:{type:Number},radius:{type:Number},gradient:{type:Object},opacity:{type:Number}},watch:{data:{handler:function(){this.reload()},deep:!0},max:function(){this.reload()},radius:function(t){var e=this.originInstance,n=this.opacity,i=this.gradient;e.setOptions({radius:t,opacity:n,gradient:i})},gradient:{handler:function(t){var e=this.originInstance,n=this.radius,i=this.opacity;e.setOptions({radius:n,opacity:i,gradient:t})},deep:!0},opacity:function(t){var e=this.originInstance,n=this.radius,i=this.gradient;e.setOptions({radius:n,opacity:t,gradient:i})}},methods:{load:function(){var t=this.map,e=this.data,n=this.max,i=this.radius,o=this.opacity,a=this.gradient,s=this.originInstance=new r.default({radius:i,opacity:o,gradient:a});t.addOverlay(s),s.setDataSet({data:e,max:n})}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(2),n(81)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(o);e.default={name:\"bm-lushu\",render:function(t){},mixins:[(0,r.default)(\"lushu\")],props:{path:{type:Array,default:[]},landmarkPois:{type:Array,default:function(){return[]}},icon:{type:Object},speed:{type:Number,default:4e3},content:{type:String,default:\"\"},autoView:{type:Boolean,default:!1},rotation:{type:Boolean,default:!1},infoWindow:{type:Boolean,default:!0},play:{type:Boolean,default:!0}},watch:{path:{handler:function(t){this.reload()},deep:!0},landmarkPois:{handler:function(t){this.reload()},deep:!0},icon:{handler:function(t){var e=this.originInstance,n=(this.content,(0,i.createIcon)(BMap,t));e._opts.icon=n,e._marker=n},deep:!0},speed:function(t){var e=this.originInstance;this.content;e._opts.speed=t},content:function(t){var e=this.originInstance,n=this.infoWindow;t&&n?e.showInfoWindow():e.hideInfoWindow(),e._opts.defaultContent=t,e._overlay&&e._overlay.setHtml(t)},autoView:function(t){var e=this.originInstance;this.content;e._opts.autoView=t},rotation:function(t){var e=this.originInstance;this.content;e._opts.enableRotation=t},infoWindow:function(t){var e=this.originInstance,n=this.content;e&&t&&n?e.showInfoWindow():e.hideInfoWindow()},play:function(t){var e=this.originInstance;t&&e?e.start():!this._isEnd&&e.pause()}},methods:{load:function(){var t=this,e=this.BMap,n=this.map,o=this.path,a=this.landmarkPois,r=this.icon,l=this.speed,c=this.content,u=this.autoView,h=this.rotation,p=this.infoWindow,d=this.play,f=this.originInstance=new s.default(n,o,{enableRotation:h,landmarkPois:a,showInfoWindow:p,defaultContent:c,icon:r&&(0,i.createIcon)(e,r),speed:l,autoView:u,onstart:function(e){t._isEnd=!1,t.$emit(\"start\")},onstop:function(e){t._isEnd=!0,t.$emit(\"stop\")},onpause:function(e){return t.$emit(\"pause\")}});d&&o.length&&f.start(this),o.length&&(c&&p?f.showInfoWindow():f.hideInfoWindow())}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(82),n(2),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(o);e.default={name:\"bml-marker-cluseter\",mixins:[(0,s.default)(\"markerClusterer\")],props:{gridSize:{type:Object},maxZoom:{type:Number},minClusterSize:{type:Object},styles:{type:Array,default:function(){return[]}},averageCenter:{type:Boolean,default:!1}},watch:{gridSize:{handler:function(t){var e=this.BMap;this.originInstance.setGridSize(e,t.map)},deep:!0},maxZoom:function(t){this.originInstance.setMaxZoom(t)},minClusterSize:{handler:function(t){var e=this.BMap;this.originInstance.setMinClusterSize((0,i.createSize)(e,t))},deep:!0},styles:{handler:function(t){var e=this.BMap,n=this.originInstance,o=JSON.parse(JSON.stringify(t)).map(function(t){return t.size=t.size&&(0,i.createSize)(e,t.size),t});n.setStyles(o)},deep:!0},averageCenter:function(t){this.reload()}},methods:{load:function(){var t=this,e=this.BMap,n=this.map,o=this.gridSize,a=this.minClusterSize,s=this.maxZoom,l=this.styles,c=this.averageCenter;this.originInstance=new r.default(n,{gridSize:o&&(0,i.createSize)(e,o),maxZoom:s,minClusterSize:a&&(0,i.createSize)(e,a),styles:l.map(function(t){return t.size=(0,i.createSize)(e,t.size),t}),isAverageCenter:c}),this.$nextTick(function(){var n=t.$children.map(function(t){return t.originInstance}).filter(function(t){return t instanceof e.Marker});t.originInstance.addMarkers(n)})}},beforeCreate:function(){this.preventChildrenRender=!0}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var o=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-tile\",render:function(t){},mixins:[(0,o.default)(\"layer\")],props:{transparentPng:{type:Boolean},tileUrlTemplate:{type:String},copyright:{},zIndex:{type:Number}},watch:{transparentPng:function(){this.reload()},tileUrlTemplate:function(){this.reload()},copyright:function(){this.reload()},zIndex:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.transparentPng,o=this.tileUrlTemplate,a=this.copyright,r=this.zIndex;this.originInstance=new t.TileLayer({transparentPng:n,tileUrlTemplate:o,copyright:a&&{id:a.id,content:a.content,bounds:a.bounds&&(0,i.createBounds)(a.bounds)},zIndex:r}),e.addTileLayer(this.originInstance)}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var i=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-triffic\",render:function(t){},mixins:[(0,i.default)(\"layer\")],props:{predictDate:{type:Object}},watch:{\"pridictDate.weekday\":function(){this.reload()},\"pridictDate.hour\":function(){this.reload()},pridictDate:function(){this.reload()}},methods:{load:function(){var t=this.pridictDate,e=this.BMap,n=this.map;this.originInstance=new e.TrafficLayer({pridictDate:t}),n.addTileLayer(this.originInstance)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(4),n(5)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default={name:\"bm-map\",props:{ak:{type:String},center:{type:[Object,String]},zoom:{type:Number},minZoom:{type:Number},maxZoom:{type:Number},highResolution:{type:Boolean,default:!0},mapClick:{type:Boolean,default:!0},mapType:{type:String},dragging:{type:Boolean,default:!0},scrollWheelZoom:{type:Boolean,default:!1},doubleClickZoom:{type:Boolean,default:!0},keyboard:{type:Boolean,default:!0},inertialDragging:{type:Boolean,default:!0},continuousZoom:{type:Boolean,default:!0},pinchToZoom:{type:Boolean,default:!0},autoResize:{type:Boolean,default:!0},theme:{type:Array},mapStyle:{type:Object}},watch:{center:function(t,e){var n=this.map,i=this.zoom;\"String\"===(0,o.checkType)(t)&&t!==e&&n.centerAndZoom(t,i)},\"center.lng\":function(t,e){var n=this.BMap,i=this.map,o=this.zoom,a=this.center;t!==e&&t>=-180&&t<=180&&i.centerAndZoom(new n.Point(t,a.lat),o)},\"center.lat\":function(t,e){var n=this.BMap,i=this.map,o=this.zoom,a=this.center;t!==e&&t>=-74&&t<=74&&i.centerAndZoom(new n.Point(a.lng,t),o)},zoom:function(t,e){var n=this.map;t!==e&&t>=3&&t<=19&&n.setZoom(t)},minZoom:function(t){this.map.setMinZoom(t)},maxZoom:function(t){this.map.setMaxZoom(t)},highResolution:function(){this.reset()},mapClick:function(){this.reset()},mapType:function(t){this.map.setMapType(i[t])},dragging:function(t){var e=this.map;t?e.enableDragging():e.disableDragging()},scrollWheelZoom:function(t){var e=this.map;t?e.enableScrollWheelZoom():e.disableScrollWheelZoom()},doubleClickZoom:function(t){var e=this.map;t?e.enableDoubleClickZoom():e.disableDoubleClickZoom()},keyboard:function(t){var e=this.map;t?e.enableKeyboard():e.disableKeyboard()},inertialDragging:function(t){var e=this.map;t?e.enableInertialDragging():e.disableInertialDragging()},continuousZoom:function(t){var e=this.map;t?e.enableContinuousZoom():e.disableContinuousZoom()},pinchToZoom:function(t){var e=this.map;t?e.enablePinchToZoom():e.disablePinchToZoom()},autoResize:function(t){var e=this.map;t?e.enableAutoResize():e.disableAutoResize()},theme:function(t){this.map.setMapStyle({styleJson:t})},\"mapStyle.features\":{handler:function(t,e){var n=this.map,i=this.mapStyle,o=i.style,a=i.styleJson;n.setMapStyle({styleJson:a,features:t,style:o})},deep:!0},\"mapStyle.style\":function(t,e){var n=this.map,i=this.mapStyle,o=i.features,a=i.styleJson;n.setMapStyle({styleJson:a,features:o,style:t})},\"mapStyle.styleJson\":{handler:function(t,e){var n=this.map,i=this.mapStyle,o=i.features,a=i.style;n.setMapStyle({styleJson:t,features:o,style:a})},deep:!0},mapStyle:function(t){var e=this.map;!this.theme&&e.setMapStyle(t)}},methods:{setMapOptions:function(){var t=this.map,e=this.minZoom,n=this.maxZoom,o=this.mapType,a=this.dragging,r=this.scrollWheelZoom,s=this.doubleClickZoom,l=this.keyboard,c=this.inertialDragging,u=this.continuousZoom,h=this.pinchToZoom,p=this.autoResize;e&&t.setMinZoom(e),n&&t.setMaxZoom(n),o&&t.setMapType(i[o]),a?t.enableDragging():t.disableDragging(),r?t.enableScrollWheelZoom():t.disableScrollWheelZoom(),s?t.enableDoubleClickZoom():t.disableDoubleClickZoom(),l?t.enableKeyboard():t.disableKeyboard(),c?t.enableInertialDragging():t.disableInertialDragging(),u?t.enableContinuousZoom():t.disableContinuousZoom(),h?t.enablePinchToZoom():t.disablePinchToZoom(),p?t.enableAutoResize():t.disableAutoResize()},init:function(t){if(!this.map){var e=this.$refs.view,n=!0,i=!1,o=void 0;try{for(var r,s=(this.$slots.default||[])[Symbol.iterator]();!(n=(r=s.next()).done);n=!0){var l=r.value;l.componentOptions&&\"bm-view\"===l.componentOptions.tag&&(this.hasBmView=!0,e=l.elm)}}catch(t){i=!0,o=t}finally{try{!n&&s.return&&s.return()}finally{if(i)throw o}}var c=new t.Map(e,{enableHighResolution:this.highResolution,enableMapClick:this.mapClick});this.map=c;var u=this.setMapOptions,h=this.zoom,p=this.getCenterPoint,d=this.theme,f=this.mapStyle;d?c.setMapStyle({styleJson:d}):c.setMapStyle(f),u(),a.default.call(this,c),c.reset(),c.centerAndZoom(p(),h),this.$emit(\"ready\",{BMap:t,map:c})}},getCenterPoint:function(){var t=this.center,e=this.BMap;switch((0,o.checkType)(t)){case\"String\":return t;case\"Object\":return new e.Point(t.lng,t.lat);default:return new e.Point}},initMap:function(t){this.BMap=t,this.init(t)},getMapScript:function(){if(i.BMap)return i.BMap._preloader?i.BMap._preloader:Promise.resolve(i.BMap);var t=this.ak||this._BMap().ak;return i.BMap={},i.BMap._preloader=new Promise(function(e,n){i._initBaiduMap=function(){e(i.BMap),i.document.body.removeChild(o),i.BMap._preloader=null,i._initBaiduMap=null};var o=document.createElement(\"script\");i.document.body.appendChild(o),o.src=\"https://api.map.baidu.com/api?v=2.0&ak=\"+t+\"&callback=_initBaiduMap\"}),i.BMap._preloader},reset:function(){var t=this.getMapScript,e=this.initMap;t().then(e)}},mounted:function(){this.reset()},data:function(){return{hasBmView:!1}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(n,r){o=[t,e],i=r,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default={name:\"bm-view\"},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i){\"use strict\";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var a=o(n),r=o(i);e.default={name:\"bm-autocomplete\",mixins:[(0,a.default)()],props:{types:{type:String},location:{type:String},sugStyle:{type:Object,default:function(){return{}}}},watch:{types:function(){this.reload()},location:function(){this.reload()}},methods:{load:function(){var t=this,e=this.BMap,n=this.map,i=this.$el,o=this.types,a=this.location,s=this.sugStyle,l=i.querySelector(\"input\");l&&(this.originInstance=new e.Autocomplete({input:l,types:o,location:a||n,onSearchComplete:function(e){var n=document.querySelectorAll(\".tangram-suggestion-main\"),i=!0,o=!1,a=void 0;try{for(var r,l=n[Symbol.iterator]();!(i=(r=l.next()).done);i=!0){var c=r.value;for(var u in s)c.style[u]=s[u].toString()}}catch(t){o=!0,a=t}finally{try{!i&&l.return&&l.return()}finally{if(o)throw a}}t.$emit(\"searchcomplete\",e)}}),this.originInstance.addEventListener(\"onconfirm\",function(e){var n=e.item.value;t.$emit(\"input\",n.province+n.city+n.district+n.street+n.business)}),r.default.call(this,this.originInstance))}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(6),n(1),n(42)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i),l=a(o),c=function(){function t(t,e){var n=[],i=!0,o=!1,a=void 0;try{for(var r,s=t[Symbol.iterator]();!(i=(r=s.next()).done)&&(n.push(r.value),!e||n.length!==e);i=!0);}catch(t){o=!0,a=t}finally{try{!i&&s.return&&s.return()}finally{if(o)throw a}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}();e.default={abstract:!0,mixins:[(0,s.default)(\"abstract\"),(0,l.default)({component:\"bm-polygon\",props:[\"path\",\"strokeColor\",\"strokeWeight\",\"strokeOpacity\",\"strokeStyle\",\"fillColor\",\"fillOpacity\",\"massClear\",\"clicking\"],extraProps:[\"name\"],exceptProps:[\"path\"],events:[\"click\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseout\",\"mouseover\",\"remove\"]})],data:function(){return{path:[]}},components:{BmPolygon:r.default},watch:{name:function(){this.reload()}},methods:{load:function(){var t=this,e=this.BMap,n=this.name;(new e.Boundary).get(n,function(e){t.path=(e.boundaries[0]||[]).split(\";\").map(function(t){return function(t){var e=c(t,2);return{lng:e[0],lat:e[1]}}(t.split(\",\").map(function(t){return+t}))})})}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-circle\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{center:{},radius:{},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},fillColor:{type:String},fillOpacity:{type:Number},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{\"center.lng\":function(t,e){var n=this.BMap,i=this.originInstance,a=this.isEditing,r=this.disableEditing,s=this.enableEditing,l=this.center,c=this.editing;if(!a){r();var u=t;t.toString()!==e.toString()&&u>=-180&&u<=180&&i.setCenter((0,o.createPoint)(n,{lng:u,lat:l.lat})),c&&s()}},\"center.lat\":function(t,e){var n=this.BMap,i=this.originInstance,a=this.isEditing,r=this.disableEditing,s=this.enableEditing,l=this.center,c=this.editing;if(!a){r();var u=t;t.toString()!==e.toString()&&u>=-74&&u<=74&&i.setCenter((0,o.createPoint)(n,{lng:l.lng,lat:u})),c&&s()}},radius:function(t,e){var n=this.originInstance,i=this.isEditing,o=this.disableEditing,a=this.enableEditing,r=this.editing;i||(o(),n.setRadius(t),r&&a())},strokeColor:function(t){this.originInstance.setStrokeColor(t)},strokeOpacity:function(t){this.originInstance.setStrokeOpacity(t)},strokeWeight:function(t){this.originInstance.setStrokeOpacity(t)},strokeStyle:function(t){this.originInstance.setStrokeStyle(t)},fillColor:function(t){this.originInstance.setFillColor(t)},fillOpacity:function(t){this.originInstance.setFillOpacity(t)},editing:function(t){t?this.enableEditing():this.disableEditing()},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(t){this.reload()}},methods:{dragStartHandler:function(){this.isEditing=!0},dragEndHandler:function(){this.isEditing=!1,this.bindEditingNodeEvents()},bindEditingNodeEvents:function(){var t=this.originInstance,e=this.editingKey,n=this.dragStartHandler,i=this.dragEndHandler;t[e].forEach(function(t){t.addEventListener(\"dragstart\",n),t.addEventListener(\"dragend\",i)})},enableEditing:function(){var t=this.originInstance,e=this.bindEditingNodeEvents;t.enableEditing(),e()},disableEditing:function(){this.originInstance.disableEditing()},getEditingKey:function(t){var e=this,n=[];t.enableEditing(),setTimeout(function(){for(var i in t)t[i]&&2===t[i].length&&n.push(i);t.disableEditing();for(var o in t)t[o]&&0===t[o].length&&~n.indexOf(o)&&(e.editingKey=o)},0)},load:function(){var t=this.BMap,e=this.map,n=this.center,i=this.radius,a=this.strokeColor,r=this.strokeWeight,l=this.strokeOpacity,c=this.strokeStyle,u=this.fillColor,h=this.fillOpacity,p=this.editing,d=this.massClear,f=this.clicking,m=this.enableEditing,g=this.disableEditing,y=this.getEditingKey,v=this.editingKey,_=new t.Circle((0,o.createPoint)(t,{lng:n.lng,lat:n.lat}),i,{strokeColor:a,strokeWeight:r,strokeOpacity:l,strokeStyle:c,fillColor:u,fillOpacity:h,enableMassClear:d,enableClicking:f});this.originInstance=_,e.addOverlay(_),s.default.call(this,_),!v&&y(_),setTimeout(function(){p?m():g()},0)}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-ground\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{bounds:{type:Object},opacity:{type:Number},imageURL:{type:String},displayOnMinLevel:{type:Number},displayOnMaxLevel:{type:Number}},watch:{bounds:{handler:function(t){var e=this.BMap;this.originInstance.setBounds((0,o.createBounds)(e,t))},deep:!0},opacity:function(t){this.originInstance.setOpacity(t)},imageURL:function(t){this.originInstance.setImageURL(t)},displayOnMinLevel:function(t){this.originInstance.setDisplayOnMinLevel(t)},displayOnMaxLevel:function(t){this.originInstance.setDisplayOnMaxLevel(t)}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.bounds,i=this.opacity,a=this.imageURL,r=this.displayOnMinLevel,l=this.displayOnMaxLevel,c=new t.GroundOverlay(n&&(0,o.createBounds)(t,n),{opacity:i,imageURL:a,displayOnMaxLevel:l,displayOnMinLevel:r});c.setImageURL(a),this.originInstance=c,s.default.call(this,c),e.addOverlay(c)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(4),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(o);e.default={name:\"bm-info-window\",mixins:[(0,s.default)(\"overlay\")],props:{show:{type:Boolean},position:{type:Object},title:{type:String},width:{type:Number},height:{type:Number},maxWidth:{type:Number},offset:{type:Object},maximize:{type:Boolean},autoPan:{type:Boolean},closeOnClick:{type:Boolean,default:!0},message:{type:String}},watch:{show:function(t){t?this.openInfoWindow():this.closeInfoWindow()},\"position.lng\":function(t,e){this.reload()},\"position.lat\":function(t,e){this.reload()},\"offset.width\":function(t,e){this.reload()},\"offset.height\":function(t){this.reload()},maxWidth:function(){this.reload()},width:function(t){this.originInstance.setWidth(t)},height:function(t){this.originInstance.setHeight(t)},title:function(t){this.originInstance.setTitle(t)},maximize:function(t){t?this.originInstance.enableMaximize():this.originInstance.disableMaximize()},autoPan:function(t){t?this.originInstance.enableAutoPan():this.originInstance.disableAutoPan()},closeOnClick:function(t){t?this.originInstance.enableCloseOnClick():this.originInstance.disableCloseOnClick()}},methods:{redraw:function(){this.originInstance.redraw()},load:function(){var t=this.BMap,e=this.map,n=this.show,i=this.title,o=this.width,r=this.height,s=this.maxWidth,c=this.offset,u=this.autoPan,h=this.closeOnClick,p=this.message,d=this.maximize,f=this.bindObserver,m=this.$parent,g=this.$el,y=new t.InfoWindow(g,{width:o,height:r,title:i,maxWidth:s,offset:(0,a.createSize)(t,c),enableAutoPan:u,enableCloseOnClick:h,enableMessage:void 0===p,message:p});d?y.enableMaximize():y.disableMaximize(),l.default.call(this,y),this.originInstance=y,y.redraw(),[].forEach.call(g.querySelectorAll(\"img\"),function(t){t.onload=function(){return y.redraw()}}),f(),this.$container=m.originInstance&&m.originInstance.openInfoWindow?m.originInstance:e,n&&this.openInfoWindow()},bindObserver:function(){var t=i.MutationObserver;if(t){var e=this.$el,n=this.originInstance;this.observer=new t(function(t){return n.redraw()}),this.observer.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}},openInfoWindow:function(){var t=this.BMap,e=this.$container,n=this.position,i=this.originInstance;e.openInfoWindow(i,(0,a.createPoint)(t,n))},closeInfoWindow:function(){this.$container.closeInfoWindow(this.originInstance)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-label\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{content:{type:String},title:{type:String},offset:{},position:{},labelStyle:{},zIndex:{type:Number,default:0},massClear:{type:Boolean,default:!0}},watch:{content:function(t){this.originInstance.setContent(t)},title:function(t){this.originInstance.setTitle(t)},\"offset.width\":function(t,e){var n=this.BMap;t.toString()!==e.toString()&&this.originInstance.setOffset((0,o.createSize)(n,{width:t,height:this.offset.height}))},\"offset.height\":function(t,e){var n=this.BMap;t.toString()!==e.toString()&&this.originInstance.setOffset((0,o.createSize)(n,{width:this.offset.width,height:t}))},\"position.lng\":function(t,e){var n=this.BMap,i=t;t.toString()!==e.toString()&&i>=-180&&i<=180&&this.originInstance.setCenter((0,o.createPoint)(n,{lng:i,lat:this.center.lat}))},\"position.lat\":function(t,e){var n=this.BMap,i=t;t.toString()!==e.toString()&&i>=-74&&i<=74&&this.originInstance.setCenter((0,o.createPoint)(n,{lng:this.center.lng,lat:i}))},labelStyle:{handler:function(t){this.originInstance.setStyle(t)},deep:!0},zIndex:function(t){this.originInstance.setZIndex(t)},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.content,i=this.title,a=this.offset,r=this.position,l=this.labelStyle,c=this.zIndex,u=this.massClear,h=this.$parent,p=new t.Label(n,{offset:(0,o.createSize)(t,a),position:(0,o.createPoint)(t,r),enableMassClear:u});this.originInstance=p;try{h.originInstance.setLabel(p)}catch(t){e.addOverlay(p)}i&&p.setTitle(i),l&&p.setStyle(l),c&&p.setZIndex(c),s.default.call(this,p)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(4),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(o);e.default={name:\"bm-marker\",mixins:[(0,s.default)(\"overlay\")],props:{position:{},offset:{},icon:{},massClear:{type:Boolean,default:!0},dragging:{type:Boolean,default:!1},clicking:{type:Boolean,default:!0},raiseOnDrag:{type:Boolean,default:!1},draggingCursor:{type:String},rotation:{type:Number},shadow:{type:Object},title:{type:String},label:{type:Object},animation:{type:String},top:{type:Boolean,default:!1},zIndex:{type:Number,default:0}},watch:{\"position.lng\":function(t,e){var n=this.BMap,i=this.originInstance,o=this.position,r=this.renderByParent,s=this.$parent;t!==e&&t>=-180&&t<=180&&i.setPosition((0,a.createPoint)(n,{lng:t,lat:o.lat})),r&&s.reload()},\"position.lat\":function(t,e){var n=this.BMap,i=this.originInstance,o=this.position,r=this.renderByParent,s=this.$parent;t!==e&&t>=-74&&t<=74&&i.setPosition((0,a.createPoint)(n,{lng:o.lng,lat:t})),r&&s.reload()},\"offset.width\":function(t,e){var n=this.BMap,i=this.originInstance;t!==e&&i.setOffset(new n.Size(t,this.offset.height))},\"offset.height\":function(t,e){var n=this.BMap,i=this.originInstance;t!==e&&i.setOffset(new n.Size(this.offset.width,t))},icon:{deep:!0,handler:function(t){var e=this.BMap,n=this.originInstance,i=this.rotation;n&&n.setIcon((0,a.createIcon)(e,t)),i&&n&&n.setRotation(i)}},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},dragging:function(t){t?this.originInstance.enableDragging():this.originInstance.disableDragging()},clicking:function(){this.reload()},raiseOnDrag:function(){this.reload()},draggingCursor:function(t){this.originInstance.setDraggingCursor(t)},rotation:function(t){this.originInstance.setRotation(t)},shadow:function(t){this.originInstance.setShadow(t)},title:function(t){this.originInstance.setTitle(t)},label:function(t){this.reload()},animation:function(t){this.originInstance.setAnimation(i[t])},top:function(t){this.originInstance.setTop(t)},zIndex:function(t){this.originInstance.setZIndex(t)}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.position,o=this.offset,r=this.icon,s=this.massClear,c=this.dragging,u=this.clicking,h=this.raiseOnDrag,p=this.draggingCursor,d=this.rotation,f=this.shadow,m=this.title,g=this.label,y=this.animation,v=this.top,_=this.renderByParent,b=this.$parent,x=this.zIndex,w=new t.Marker(new t.Point(n.lng,n.lat),{offset:o,icon:r&&(0,a.createIcon)(t,r),enableMassClear:s,enableDragging:c,enableClicking:u,raiseOnDrag:h,draggingCursor:p,rotation:d,shadow:f,title:m});this.originInstance=w,g&&w&&w.setLabel((0,a.createLabel)(t,g)),w.setTop(v),w.setZIndex(x),l.default.call(this,w),_?b.reload():e.addOverlay(w),w.setAnimation(i[y])}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n){\"use strict\";function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}function a(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(n),s=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,\"value\"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}();e.default={name:\"bm-overlay\",mixins:[(0,r.default)(\"overlay\")],props:{pane:{type:String}},watch:{pane:function(){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.$el,r=this.pane,l=this.$emit.bind(this),c=function(c){function u(){return i(this,u),o(this,(u.__proto__||Object.getPrototypeOf(u)).apply(this,arguments))}return a(u,c),s(u,[{key:\"initialize\",value:function(){l(\"initialize\",{BMap:t,map:e,el:n,overlay:this});try{e.getPanes()[r].appendChild(n)}catch(t){}return n}},{key:\"draw\",value:function(){l(\"draw\",{BMap:t,map:e,el:n,overlay:this})}}]),u}(t.Overlay),u=new c;this.originInstance=u,e.addOverlay(u)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(1),n(4),n(2)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var s=r(n),l=r(o);e.default={render:function(){},name:\"bm-point-collection\",mixins:[(0,s.default)(\"overlay\")],props:{points:{type:Array,default:function(){return[]}},shape:{type:String,default:\"BMAP_POINT_SHAPE_CIRCLE\"},color:{type:String},size:{type:String,default:\"BMAP_POINT_SIZE_NORMAL\"}},watch:{shape:function(t){var e=this.originInstance,n=this.color,o=this.size;e.setStyles({shape:i[t],color:n,size:i[o]})},size:function(t){var e=this.originInstance,n=this.color,o=this.shape;e.setStyles({shape:i[o],color:n,size:i[t]})},color:function(t){var e=this.originInstance,n=this.shape,o=this.size;e.setStyles({shape:i[n],color:t,size:i[o]})},points:{deep:!0,handler:function(t){var e=this.originInstance;e.clear(),e.setPoints(t)}}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.points,o=this.shape,r=this.color,s=this.size,c=this.originInstance=new t.PointCollection(n.map(function(e){return(0,a.createPoint)(t,e)}),{shape:i[o],color:r,size:i[s]});l.default.call(this,c),e.addOverlay(c)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-polygon\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{path:{type:Array,default:function(){return[]}},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},fillColor:{type:String},fillOpacity:{type:Number},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{path:{handler:function(t,e){this.reload()},deep:!0},strokeColor:function(t){this.originInstance.setStrokeColor(t)},strokeOpacity:function(t){this.originInstance.setStrokeOpacity(t)},strokeWeight:function(t){this.originInstance.setStrokeOpacity(t)},strokeStyle:function(t){this.originInstance.setStrokeStyle(t)},fillColor:function(t){this.originInstance.setFillColor(t)},fillOpacity:function(t){this.originInstance.setFillOpacity(t)},editing:function(t){t?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(t){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.path,i=this.strokeColor,a=this.strokeWeight,r=this.strokeOpacity,l=this.strokeStyle,c=this.fillColor,u=this.fillOpacity,h=this.editing,p=this.massClear,d=this.clicking,f=new t.Polygon(n.map(function(e){return(0,o.createPoint)(t,{lng:e.lng,lat:e.lat})}),{strokeColor:i,strokeWeight:a,strokeOpacity:r,strokeStyle:l,fillColor:c,fillOpacity:u,enableMassClear:p,enableClicking:d});this.originInstance=f,e.addOverlay(f),s.default.call(this,f),h?f.enableEditing():f.disableEditing()}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(1),n(4),n(2)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";function a(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=a(n),s=a(i);e.default={name:\"bm-polyline\",render:function(){},mixins:[(0,r.default)(\"overlay\")],props:{path:{type:Array},strokeColor:{type:String},strokeWeight:{type:Number},strokeOpacity:{type:Number},strokeStyle:{type:String},massClear:{type:Boolean,default:!0},clicking:{type:Boolean,default:!0},editing:{type:Boolean,default:!1}},watch:{path:{handler:function(t,e){this.reload()},deep:!0},strokeColor:function(t){this.originInstance.setStrokeColor(t)},strokeOpacity:function(t){this.originInstance.setStrokeOpacity(t)},strokeWeight:function(t){this.originInstance.setStrokeOpacity(t)},strokeStyle:function(t){this.originInstance.setStrokeStyle(t)},editing:function(t){t?this.originInstance.enableEditing():this.originInstance.disableEditing()},massClear:function(t){t?this.originInstance.enableMassClear():this.originInstance.disableMassClear()},clicking:function(t){this.reload()}},methods:{load:function(){var t=this.BMap,e=this.map,n=this.path,i=this.strokeColor,a=this.strokeWeight,r=this.strokeOpacity,l=this.strokeStyle,c=this.editing,u=this.massClear,h=this.clicking,p=new t.Polyline(n.map(function(e){return(0,o.createPoint)(t,{lng:e.lng,lat:e.lat})}),{strokeColor:i,strokeWeight:a,strokeOpacity:r,strokeStyle:l,enableEditing:c,enableMassClear:u,enableClicking:h});this.originInstance=p,e.addOverlay(p),s.default.call(this,p)}}},t.exports=e.default})},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(2),n(5),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:\"bm-bus\",mixins:[(0,a.default)(\"search\")],props:{location:{type:[Object,String]},keyword:{type:String},panel:{type:Boolean,default:!0},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.map;e.setLocation(t||n)},deep:!0},keyword:function(t){this.search(t)},panel:function(){this.reload()},autoViewport:function(t){this.reload()},selectFirstResult:function(t){this.reload()}},methods:{search:function(t){this.originInstance.getBusList(t)},load:function(){var t=this,e=this.location,o=this.selectFirstResult,a=this.autoViewport,r=this.highlightMode,s=this.keyword,l=this.search,c=this.BMap,u=this.map,h=this.originInstance,p=e?(0,i.isPoint)(e)?(0,n.createPoint)(c,e):e:u,d=this.originInstance=new c.BusLineSearch(p,{renderOptions:{map:u,panel:this.$el,selectFirstResult:o,autoViewport:a,highlightMode:r},onGetBusListComplete:function(e){h&&h!==d&&h.clearResults(),t.$emit(\"getbuslistcomplete\",e)},onGetBusLineComplete:function(e){h&&h!==d&&h.clearResults(),t.$emit(\"getbuslinecomplete\",e)},onBusListHtmlSet:function(e){t.$emit(\"buslisthtmlset\",e)},onBusLineHtmlSet:function(e){t.$emit(\"buslinehtmlset\",e)},onMarkersSet:function(e){t.$emit(\"markersset\",e)},onPolylinesSet:function(e){t.$emit(\"polylinesset\",e)}});l(s)}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(2),n(5),n(1)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(a);e.default={name:\"bm-driving\",mixins:[(0,r.default)(\"search\")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},startCity:{type:[String,Number]},endCity:{type:[String,Number]},waypoints:{type:Array},policy:{type:String},panel:{type:Boolean,default:!0},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.map;e.setLocation(t||n)},deep:!0},start:{handler:function(t){var e=this.originInstance,n=this.end,i=this.startCity,a=this.endCity,r=this.waypoints,s=this.BMap,l=this.getWaypoints;e.search((0,o.getPosition)(s,t),(0,o.getPosition)(s,n),{startCity:i,endCity:a,waypoints:l(r)})},deep:!0},end:{handler:function(t){var e=this.originInstance,n=this.start,i=this.startCity,a=this.endCity,r=this.waypoints,s=this.BMap,l=this.getWaypoints;e.search((0,o.getPosition)(s,n),(0,o.getPosition)(s,t),{startCity:i,endCity:a,waypoints:l(r)})},deep:!0},startCity:function(t){var e=this.originInstance,n=this.start,i=this.end,o=this.endCity,a=this.waypoints,r=this.getWaypoints;e.search(n,i,{val:t,endCity:o,waypoints:r(a)})},endCity:function(t){var e=this.originInstance,n=this.start,i=this.end,o=this.startCity,a=this.waypoints,r=this.getWaypoints;e.search(n,i,{startCity:o,val:t,waypoints:r(a)})},waypoints:{handler:function(t){var e=this.originInstance,n=this.start,i=this.end,o=this.startCity,a=this.endCity,r=this.getWaypoints;e.search(n,i,{startCity:o,endCity:a,waypoints:r(t)})},deep:!0},panel:function(){this.reload()},policy:function(t){this.reload()},autoViewport:function(){this.reload()},selectFirstResult:function(){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(t,e,n){var i=n.startCity,o=n.endCity,a=n.waypoints,r=this.originInstance,s=this.getWaypoints;r.search(t,e,{startCity:i,endCity:o,waypoints:s(a)})},getWaypoints:function(t){var e=this.BMap;if(t)return t.map(function(t){return(0,o.getPosition)(e,t)})},load:function(){var t=this,e=this.map,a=this.BMap,r=this.location,s=this.policy,l=this.selectFirstResult,c=this.autoViewport,u=this.highlightMode,h=this.search,p=this.start,d=this.end,f=this.startCity,m=this.endCity,g=this.waypoints,y=this.originInstance,v=this.getWaypoints,_=r?(0,o.isPoint)(r)?(0,n.createPoint)(a,r):r:e,b=this.originInstance=new a.DrivingRoute(_,{renderOptions:{map:e,panel:this.$el,selectFirstResult:l,autoViewport:c,highlightMode:u},policy:i[s],onSearchComplete:function(e){y&&y!==b&&y.clearResults(),t.$emit(\"searchcomplete\",e)},onMarkersSet:function(e){t.$emit(\"markersset\",e)},onInfoHtmlSet:function(e){t.$emit(\"infohtmlset\",e)},onPolylinesSet:function(e){t.$emit(\"polylinesset\",e)},onResultsHtmlSet:function(e){t.$emit(\"resultshtmlset\",e)}});h((0,o.getPosition)(a,p),(0,o.getPosition)(a,d),{startCity:f,endCity:m,waypoints:v(g)})}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(2),n(5),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:\"bm-local-search\",mixins:[(0,a.default)(\"search\")],props:{location:{type:[Object,String]},keyword:{type:[Array,String]},panel:{type:Boolean,default:!0},forceLocal:{type:Boolean},customData:{type:Object},bounds:{type:Object},nearby:{type:Object},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.search;e.setLocation(t||this.map),n()},deep:!0},keyword:function(){this.search()},bounds:{handler:function(t){(0,this.searchInBounds)(t)},deep:!0},nearby:{handler:function(t){(0,this.searchNearby)(t)},deep:!0},forceLocal:function(){this.reload()},customData:{deep:!0,handler:function(){this.reload()}},pageCapacity:function(t){this.originInstance&&this.originInstance.setPageCapacity(t)},autoViewport:function(t){this.originInstance&&(t?this.originInstance.enableAutoViewport():this.originInstance.disableAutoViewport())},selectFirstResult:function(t){this.originInstance&&(t?this.originInstance.enableFirstResultSelection():this.originInstance.disableFirstResultSelection())},highlightMode:function(){this.reload()}},methods:{searchNearby:function(t){var e=this.originInstance,i=this.keyword,o=this.customData,a=this.BMap;e.searchNearby(i,(0,n.createPoint)(a,t.center),t.radius,o)},searchInBounds:function(t){var e=this.originInstance,i=this.keyword,o=this.customData,a=this.BMap;e.searchInBounds(i,(0,n.createBounds)(a,t),o)},search:function(){var t=this.originInstance,e=this.keyword,n=this.forceLocal,i=this.customData,o=this.nearby,a=this.bounds,r=this.searchNearby,s=this.searchInBounds;o?r(o):a?s(a):t.search(e,{forceLocal:n,customData:i})},load:function(){var t=this,e=this.map,o=this.BMap,a=this.search,r=this.pageCapacity,s=this.autoViewport,l=this.selectFirstResult,c=this.highlightMode,u=this.location,h=this.originInstance,p=u?(0,i.isPoint)(u)?(0,n.createPoint)(o,u):u:e,d=this.originInstance=new o.LocalSearch(p,{onMarkersSet:function(e){t.$emit(\"markersset\",e)},onInfoHtmlSet:function(e){t.$emit(\"infohtmlset\",e)},onResultsHtmlSet:function(e){t.$emit(\"resultshtmlset\",e)},onSearchComplete:function(e){h&&h!==d&&h.clearResults(),t.$emit(\"searchcomplete\",e)},pageCapacity:r,renderOptions:{map:e,panel:this.$el,selectFirstResult:l,autoViewport:s,highlightMode:c}});a()}}},t.exports=e.default})},function(t,e,n){(function(i){var o,a,r;!function(i,s){a=[t,e,n(2),n(5),n(1)],o=s,void 0!==(r=\"function\"==typeof o?o.apply(e,a):o)&&(t.exports=r)}(0,function(t,e,n,o,a){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(a);e.default={name:\"bm-transit\",mixins:[(0,r.default)(\"search\")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},panel:{type:Boolean,default:!0},policy:{type:String},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.map;e.setLocation(t||n)},deep:!0},start:{handler:function(t){var e=this.originInstance,n=this.end,i=this.BMap;e.search((0,o.getPosition)(i,t),(0,o.getPosition)(i,n))},deep:!0},end:{handler:function(t){var e=this.originInstance,n=this.start,i=this.BMap;e.search((0,o.getPosition)(i,n),(0,o.getPosition)(i,t))},deep:!0},panel:function(){this.reload()},policy:function(t){this.originInstance.setPolicy(i[t])},pageCapacity:function(t){this.originInstance&&this.originInstance.setPageCapacity(t)},autoViewport:function(t){this.originInstance&&(t?this.originInstance.enableAutoViewport():this.originInstance.disableAutoViewport())},selectFirstResult:function(){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(t,e){this.originInstance.search(t,e)},load:function(){var t=this,e=this.map,a=this.BMap,r=this.location,s=this.policy,l=this.pageCapacity,c=this.selectFirstResult,u=this.autoViewport,h=this.highlightMode,p=this.search,d=this.start,f=this.end,m=this.originInstance,g=r?(0,o.isPoint)(r)?(0,n.createPoint)(a,r):r:e,y=this.originInstance=new a.TransitRoute(g,{renderOptions:{map:e,panel:this.$el,selectFirstResult:c,autoViewport:u,highlightMode:h},policy:i[s],pageCapacity:l,onSearchComplete:function(e){m&&m!==y&&m.clearResults(),t.$emit(\"searchcomplete\",e)},onMarkersSet:function(e){t.$emit(\"markersset\",e)},onInfoHtmlSet:function(e){t.$emit(\"infohtmlset\",e)},onPolylinesSet:function(e){t.$emit(\"polylinesset\",e)},onResultsHtmlSet:function(e){t.$emit(\"resultshtmlset\",e)}});p((0,o.isPoint)(d)?(0,n.createPoint)(a,d):d,(0,o.isPoint)(f)?(0,n.createPoint)(a,f):f)}}},t.exports=e.default})}).call(e,n(3))},function(t,e,n){var i,o,a;!function(r,s){o=[t,e,n(2),n(5),n(1)],i=s,void 0!==(a=\"function\"==typeof i?i.apply(e,o):i)&&(t.exports=a)}(0,function(t,e,n,i,o){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(t){return t&&t.__esModule?t:{default:t}}(o);e.default={name:\"bm-walking\",mixins:[(0,a.default)(\"search\")],props:{location:{type:[Object,String]},start:{type:[Object,String]},end:{type:[Object,String]},panel:{type:Boolean,default:!0},pageCapacity:{type:Number},autoViewport:{type:Boolean},selectFirstResult:{type:Boolean}},watch:{location:{handler:function(t){var e=this.originInstance,n=this.map;e.setLocation(t||n)},deep:!0},start:{handler:function(t){var e=this.originInstance,n=this.end,o=this.BMap;e.search((0,i.getPosition)(o,t),(0,i.getPosition)(o,n))},deep:!0},end:{handler:function(t){var e=this.originInstance,n=this.start,o=this.BMap;e.search((0,i.getPosition)(o,n),(0,i.getPosition)(o,t))},deep:!0},panel:function(){this.reload()},autoViewport:function(t){this.reload()},selectFirstResult:function(t){this.reload()},highlightMode:function(){this.reload()}},methods:{search:function(t,e){this.originInstance.search(t,e)},load:function(){var t=this,e=this.map,o=this.BMap,a=this.location,r=this.selectFirstResult,s=this.autoViewport,l=this.highlightMode,c=this.search,u=this.start,h=this.end,p=this.originInstance,d=a?(0,i.isPoint)(a)?(0,n.createPoint)(o,a):a:e,f=this.originInstance=new o.WalkingRoute(d,{renderOptions:{map:e,panel:this.$el,selectFirstResult:r,autoViewport:s,highlightMode:l},onSearchComplete:function(e){p&&p!==f&&p.clearResults(),t.$emit(\"searchcomplete\",e)},onMarkersSet:function(e){t.$emit(\"markersset\",e)},onInfoHtmlSet:function(e){t.$emit(\"infohtmlset\",e)},onPolylinesSet:function(e){t.$emit(\"polylinesset\",e)},onResultsHtmlSet:function(e){t.$emit(\"resultshtmlset\",e)}});c((0,i.isPoint)(u)?(0,n.createPoint)(o,u):u,(0,i.isPoint)(h)?(0,n.createPoint)(o,h):h)}}},t.exports=e.default})},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){function t(t,n){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}var i=e(t),o=new BMap.Polyline(i,n);return o.addEventListener(\"lineupdate\",function(){this.isEditing&&this.enableEditing()}),o.cornerPoints=t,o.editMarkers=[],o.enableEditing=function(){var t=this;if(t.map){t.disableEditing();for(var n=0;n<t.cornerPoints.length;n++){var i=new BMap.Marker(t.cornerPoints[n],{icon:new BMap.Icon(\"http://api.map.baidu.com/library/CurveLine/1.5/src/circle.png\",new BMap.Size(16,16)),enableDragging:!0,raiseOnDrag:!0});i.addEventListener(\"dragend\",function(){t.cornerPoints.length=0;for(var n=0;n<t.editMarkers.length;n++)t.cornerPoints.push(t.editMarkers[n].getPosition());var i=e(t.cornerPoints);t.setPath(i)}),i.index=n,t.editMarkers.push(i),t.map.addOverlay(i)}}t.isEditing=!0},o.disableEditing=function(){this.isEditing=!1;for(var t=0;t<this.editMarkers.length;t++)this.map.removeOverlay(this.editMarkers[t]),this.editMarkers[t]=null;this.editMarkers.length=0},o.getPath=function(){return i},o}function e(t){for(var e=[],i=0;i<t.length-1;i++){var o=n(t[i],t[i+1]);o&&o.length>0&&(e=e.concat(o))}return e}function n(t,e){var n=[];if(!(t&&e&&t instanceof BMap.Point&&e instanceof BMap.Point))return null;var i,o,a,r,s,l,c=function(t){return 1-2*t+t*t},u=function(t){return 2*t-2*t*t},h=function(t){return t*t},p=0,d=0;if(void 0===e)return void(void 0!==n&&(n=[]));var f=parseFloat(t.lat),m=parseFloat(e.lat),g=parseFloat(t.lng),y=parseFloat(e.lng);for(y>g&&parseFloat(y-g)>180&&g<0&&(g=parseFloat(360+g)),g>y&&parseFloat(g-y)>180&&y<0&&(y=parseFloat(360+y)),0,l=0,m==f?(i=0,o=g-y):y==g?(i=Math.PI/2,o=f-m):(i=Math.atan((m-f)/(y-g)),o=(m-f)/Math.sin(i)),0==l&&(l=i+Math.PI/5),a=o/2,s=a*Math.cos(l)+g,r=a*Math.sin(l)+f,p=0;p<31;p++)n.push(new BMap.Point(g*c(d)+s*u(d)+y*h(d),f*c(d)+r*u(d)+m*h(d))),d+=1/30;return n}return t})},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){function t(t,e,n){var i,o,a=t.prototype,r=new Function;r.prototype=e.prototype,o=t.prototype=new r;for(i in a)o[i]=a[i];t.prototype.constructor=t,t.superClass=e.prototype,\"string\"==typeof n&&(o._className=n)}var e=function(){var t=function(t){var e={data:[],heatmap:t};this.max=1,this.get=function(t){return e[t]},this.set=function(t,n){e[t]=n}};t.prototype={addDataPoint:function(t,e){if(!(t<0||e<0)){var n=this,i=n.get(\"heatmap\"),o=n.get(\"data\");if(o[t]||(o[t]=[]),o[t][e]||(o[t][e]=0),o[t][e]+=arguments.length<3?1:arguments[2],n.set(\"data\",o),n.max<o[t][e])return i.get(\"actx\").clearRect(0,0,i.get(\"width\"),i.get(\"height\")),void n.setDataSet({max:o[t][e],data:o},!0);i.drawAlpha(t,e,o[t][e],!0)}},setDataSet:function(t,e){var n=this,i=n.get(\"heatmap\"),o=[],a=t.data,r=a.length;if(i.clear(),this.max=t.max,i.get(\"legend\")&&i.get(\"legend\").update(t.max),null!=e&&e){for(var s in a)if(void 0!==s)for(var l in a[s])void 0!==l&&i.drawAlpha(s,l,a[s][l],!1)}else for(;r--;){var c=a[r];i.drawAlpha(c.x,c.y,c.count,!1),o[c.x]||(o[c.x]=[]),o[c.x][c.y]||(o[c.x][c.y]=0),o[c.x][c.y]=c.count}i.colorize(),this.set(\"data\",a)},exportDataSet:function(){var t=this,e=t.get(\"data\"),n=[];for(var i in e)if(void 0!==i)for(var o in e[i])void 0!==o&&n.push({x:parseInt(i,10),y:parseInt(o,10),count:e[i][o]});return{max:t.max,data:n}},generateRandomDataSet:function(t){var e=this.get(\"heatmap\"),n=e.get(\"width\"),i=e.get(\"height\"),o={},a=Math.floor(1e3*Math.random()+1);o.max=a;for(var r=[];t--;)r.push({x:Math.floor(Math.random()*n+1),y:Math.floor(Math.random()*i+1),count:Math.floor(Math.random()*a+1)});o.data=r,this.setDataSet(o)}};var e=function(t){this.config=t;var e={element:null,labelsEl:null,gradientCfg:null,ctx:null};this.get=function(t){return e[t]},this.set=function(t,n){e[t]=n},this.init()};e.prototype={init:function(){var t,e,n=this,i=n.config,o=i.title||\"Legend\",a=i.position,r=i.offset||10,s=(i.gradient,document.createElement(\"ul\")),l=\"\";n.processGradientObject(),a.indexOf(\"t\")>-1?l+=\"top:\"+r+\"px;\":l+=\"bottom:\"+r+\"px;\",a.indexOf(\"l\")>-1?l+=\"left:\"+r+\"px;\":l+=\"right:\"+r+\"px;\",t=document.createElement(\"div\"),t.style.cssText=\"border-radius:5px;position:absolute;\"+l+\"font-family:Helvetica; width:256px;z-index:10000000000; background:rgba(255,255,255,1);padding:10px;border:1px solid black;margin:0;\",t.innerHTML=\"<h3 style='padding:0;margin:0;text-align:center;font-size:16px;'>\"+o+\"</h3>\",s.style.cssText=\"position:relative;font-size:12px;display:block;list-style:none;list-style-type:none;margin:0;height:15px;\",e=document.createElement(\"div\"),e.style.cssText=[\"position:relative;display:block;width:256px;height:15px;border-bottom:1px solid black; background-image:url(\",n.createGradientImage(),\");\"].join(\"\"),t.appendChild(s),t.appendChild(e),n.set(\"element\",t),n.set(\"labelsEl\",s),n.update(1)},processGradientObject:function(){var t=this,e=this.config.gradient,n=[];for(var i in e)e.hasOwnProperty(i)&&n.push({stop:i,value:e[i]});n.sort(function(t,e){return t.stop-e.stop}),n.unshift({stop:0,value:\"rgba(0,0,0,0)\"}),t.set(\"gradientArr\",n)},createGradientImage:function(){var t,e=this,n=e.get(\"gradientArr\"),i=n.length,o=document.createElement(\"canvas\"),a=o.getContext(\"2d\");o.width=\"256\",o.height=\"15\",t=a.createLinearGradient(0,5,256,10);for(var r=0;r<i;r++)t.addColorStop(1/(i-1)*r,n[r].value);a.fillStyle=t,a.fillRect(0,5,256,10),a.strokeStyle=\"black\",a.beginPath();for(var r=0;r<i;r++)a.moveTo(.5+(1/(i-1)*r*256>>0),0),a.lineTo(.5+(1/(i-1)*r*256>>0),0==r?15:5);return a.moveTo(255.5,0),a.lineTo(255.5,15),a.moveTo(255.5,4.5),a.lineTo(0,4.5),a.stroke(),e.set(\"ctx\",a),o.toDataURL()},getElement:function(){return this.get(\"element\")},update:function(t){for(var e,n,i=this,o=i.get(\"gradientArr\"),a=i.get(\"ctx\"),r=i.get(\"labelsEl\"),s=\"\",l=0;l<o.length;l++)e=t*o[l].stop>>0,n=a.measureText(e).width/2>>0,0==l&&(n=0),l==o.length-1&&(n*=2),s+='<li style=\"position:absolute;left:'+(((1/(o.length-1)*l*256||0)>>0)-n+.5)+'px\">'+e+\"</li>\";r.innerHTML=s}};var n=function(e){var n={radius:40,element:{},canvas:{},acanvas:{},ctx:{},actx:{},legend:null,visible:!0,width:0,height:0,max:!1,gradient:!1,opacity:180,premultiplyAlpha:!1,bounds:{l:1e3,r:0,t:1e3,b:0},debug:!1};this.store=new t(this),this.get=function(t){return n[t]},this.set=function(t,e){n[t]=e},this.configure(e),this.init()};return n.prototype={configure:function(t){var n=this;if(n.set(\"radius\",t.radius||40),n.set(\"element\",t.element instanceof Object?t.element:document.getElementById(t.element)),n.set(\"visible\",null==t.visible||t.visible),n.set(\"max\",t.max||!1),n.set(\"gradient\",t.gradient||{.45:\"rgb(0,0,255)\",.55:\"rgb(0,255,255)\",.65:\"rgb(0,255,0)\",.95:\"yellow\",1:\"rgb(255,0,0)\"}),n.set(\"opacity\",parseInt(255/(100/t.opacity),10)||180),n.set(\"width\",t.width||0),n.set(\"height\",t.height||0),n.set(\"debug\",t.debug),t.legend){var i=t.legend;i.gradient=n.get(\"gradient\"),n.set(\"legend\",new e(i))}},resize:function(){var t=this,e=t.get(\"element\"),n=t.get(\"canvas\"),i=t.get(\"acanvas\");n.width=i.width=t.get(\"width\")||e.style.width.replace(/px/,\"\")||t.getWidth(e),this.set(\"width\",n.width),n.height=i.height=t.get(\"height\")||e.style.height.replace(/px/,\"\")||t.getHeight(e),this.set(\"height\",n.height)},init:function(){var t=this,e=document.createElement(\"canvas\"),n=document.createElement(\"canvas\"),i=e.getContext(\"2d\"),o=n.getContext(\"2d\"),a=t.get(\"element\");t.initColorPalette(),t.set(\"canvas\",e),t.set(\"ctx\",i),t.set(\"acanvas\",n),t.set(\"actx\",o),t.resize(),e.style.cssText=n.style.cssText=\"position:absolute;top:0;left:0;z-index:10000000;\",t.get(\"visible\")||(e.style.display=\"none\"),a.appendChild(e),t.get(\"legend\")&&a.appendChild(t.get(\"legend\").getElement()),t.get(\"debug\")&&document.body.appendChild(n),o.shadowOffsetX=15e3,o.shadowOffsetY=15e3,o.shadowBlur=15},initColorPalette:function(){var t,e,n,i=this,o=document.createElement(\"canvas\"),a=i.get(\"gradient\");o.width=\"1\",o.height=\"256\",t=o.getContext(\"2d\"),e=t.createLinearGradient(0,0,1,256),n=t.getImageData(0,0,1,1),n.data[0]=n.data[3]=64,n.data[1]=n.data[2]=0,t.putImageData(n,0,0),n=t.getImageData(0,0,1,1),i.set(\"premultiplyAlpha\",n.data[0]<60||n.data[0]>70);for(var r in a)e.addColorStop(r,a[r]);t.fillStyle=e,t.fillRect(0,0,1,256),i.set(\"gradient\",t.getImageData(0,0,1,256).data)},getWidth:function(t){var e=t.offsetWidth;return t.style.paddingLeft&&(e+=t.style.paddingLeft),t.style.paddingRight&&(e+=t.style.paddingRight),e},getHeight:function(t){var e=t.offsetHeight;return t.style.paddingTop&&(e+=t.style.paddingTop),t.style.paddingBottom&&(e+=t.style.paddingBottom),e},colorize:function(t,e){var n,i,o,a,r,s,l,c,u,h=this,p=h.get(\"width\"),d=h.get(\"radius\"),f=h.get(\"height\"),m=h.get(\"actx\"),g=h.get(\"ctx\"),y=3*d,v=h.get(\"premultiplyAlpha\"),_=h.get(\"gradient\"),b=h.get(\"opacity\"),x=h.get(\"bounds\");null!=t&&null!=e?(t+y>p&&(t=p-y),t<0&&(t=0),e<0&&(e=0),e+y>f&&(e=f-y),n=t,i=e,a=t+y,o=e+y):(n=x.l<0?0:x.l,a=x.r>p?p:x.r,i=x.t<0?0:x.t,o=x.b>f?f:x.b),r=m.getImageData(n,i,a-n,o-i),s=r.data.length;for(var w=3;w<s;w+=4)l=r.data[w],c=4*l,c&&(u=l<b?l:b,r.data[w-3]=_[c],r.data[w-2]=_[c+1],r.data[w-1]=_[c+2],v&&(r.data[w-3]/=255/u,r.data[w-2]/=255/u,r.data[w-1]/=255/u),r.data[w]=u);g.putImageData(r,n,i)},drawAlpha:function(t,e,n,i){var o=this,a=o.get(\"radius\"),r=o.get(\"actx\"),s=(o.get(\"max\"),o.get(\"bounds\")),l=t-1.5*a>>0,c=e-1.5*a>>0,u=t+1.5*a>>0,h=e+1.5*a>>0;r.shadowColor=\"rgba(0,0,0,\"+(n?n/o.store.max:\"0.1\")+\")\",r.shadowOffsetX=15e3,r.shadowOffsetY=15e3,r.shadowBlur=15,r.beginPath(),r.arc(t-15e3,e-15e3,a,0,2*Math.PI,!0),r.closePath(),r.fill(),i?o.colorize(l,c):(l<s.l&&(s.l=l),c<s.t&&(s.t=c),u>s.r&&(s.r=u),h>s.b&&(s.b=h))},toggleDisplay:function(){var t=this,e=t.get(\"visible\"),n=t.get(\"canvas\");n.style.display=e?\"none\":\"block\",t.set(\"visible\",!e)},getImageData:function(){return this.get(\"canvas\").toDataURL()},clear:function(){var t=this,e=t.get(\"width\"),n=t.get(\"height\");t.store.set(\"data\",[]),t.get(\"ctx\").clearRect(0,0,e,n),t.get(\"actx\").clearRect(0,0,e,n)},cleanup:function(){var t=this;t.get(\"element\").removeChild(t.get(\"canvas\"))}},{create:function(t){return new n(t)},util:{mousePosition:function(t){var e,n;if(t.layerX?(e=t.layerX,n=t.layerY):t.offsetX&&(e=t.offsetX,n=t.offsetY),void 0!==e)return[e,n]}}}}(),n=function(e){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}if(!n._isExtended){n._isExtended=!0,t(n,BMap.Overlay,\"HeatmapOverlay\");var i=new n(e);this.__proto__=i.__proto__}this.conf=e,this.heatmap=null,this.latlngs=[],this.bounds=null,this._moveendHandler=this._moveendHandler.bind(this)};return n.prototype.initialize=function(t){this._map=t;var n=document.createElement(\"div\");return n.style.position=\"absolute\",n.style.top=0,n.style.left=0,n.style.border=0,n.style.width=this._map.getSize().width+\"px\",n.style.height=this._map.getSize().height+\"px\",this.conf.element=n,t.getPanes().mapPane.appendChild(n),this.heatmap=e.create(this.conf),this._div=n,n},n.prototype.draw=function(){var t=this._map.getBounds();if(!t.equals(this.bounds)){this.bounds=t;var e=this._map.pointToOverlayPixel(t.getNorthEast()),n=this._map.pointToOverlayPixel(t.getSouthWest());if(e&&n){var i=e.y,o=n.x,a=n.y-e.y,r=e.x-n.x;if(this.conf.element.style.left=o+\"px\",this.conf.element.style.top=i+\"px\",this.conf.element.style.width=r+\"px\",this.conf.element.style.height=a+\"px\",this.heatmap.store.get(\"heatmap\").resize(),this.latlngs.length>0){this.heatmap.clear();for(var s=this.latlngs.length,l={max:this.heatmap.store.max,data:[]};s--;){var c=this.latlngs[s].latlng;if(t.containsPoint(c)){var u=this._map.pointToOverlayPixel(c),h=new BMap.Pixel(u.x-o,u.y-i),p=this.pixelTransform(h);l.data.push({x:p.x,y:p.y,count:this.latlngs[s].c})}}this.heatmap.store.setDataSet(l)}}}},n.prototype.pixelTransform=function(t){for(var e=this.heatmap.get(\"width\"),n=this.heatmap.get(\"height\");t.x<0;)t.x+=e;for(;t.x>e;)t.x-=e;for(;t.y<0;)t.y+=n;for(;t.y>n;)t.y-=n;return t.x=t.x>>0,t.y=t.y>>0,t},n.prototype._moveendHandler=function(t){this.setDataSet(this._data),delete this._data,this._map.removeEventListener(\"moveend\",this._moveendHandler)},n.prototype.setDataSet=function(t){if(this._map){var e=this._map.getBounds(),n=this._map.pointToOverlayPixel(e.getNorthEast()),i=this._map.pointToOverlayPixel(e.getSouthWest());n&&i||(this._data=t,this._map.addEventListener(\"moveend\",this._moveendHandler));var o={max:t.max,data:[]},a=t.data,r=a.length;for(this.latlngs=[];r--;){var s=new BMap.Point(a[r].lng,a[r].lat);if(this.latlngs.push({latlng:s,c:a[r].count}),e.containsPoint(s)){var l=this._map.pointToOverlayPixel(s),c=this._map.pointToOverlayPixel(e.getSouthWest()).x,u=this._map.pointToOverlayPixel(e.getNorthEast()).y,h=new BMap.Pixel(l.x-c,l.y-u),p=this.pixelTransform(h);o.data.push({x:p.x,y:p.y,count:a[r].count})}}this.heatmap.clear(),this.heatmap.store.setDataSet(o)}},n.prototype.addDataPoint=function(t,e,n){var i=new BMap.Point(t,e),o=this.pixelTransform(this._map.pointToOverlayPixel(i));this.heatmap.store.addDataPoint(o.x,o.y,n),this.latlngs.push({latlng:i,c:n})},n.prototype.toggle=function(){this.heatmap.toggleDisplay()},n})},function(t,e,n){!function(e,n){t.exports=n()}(0,function(){function t(t,e){this._point=t,this._html=e}function e(){t.prototype=new BMap.Overlay,t.prototype.initialize=function(t){var e=this._div=n.dom.create(\"div\",{style:\"border:solid 1px #ccc;width:auto;min-width:50px;text-align:center;position:absolute;background:#fff;color:#000;font-size:12px;border-radius: 10px;padding:5px;white-space: nowrap;\"});return e.innerHTML=this._html,t.getPanes().floatPane.appendChild(e),this._map=t,e},t.prototype.draw=function(){this.setPosition(this.lushuMain._marker.getPosition(),this.lushuMain._marker.getIcon().size)},n.object.extend(t.prototype,{setPosition:function(t,e){var i=this._map.pointToOverlayPixel(t),o=n.dom.getStyle(this._div,\"width\"),a=n.dom.getStyle(this._div,\"height\"),r=parseInt(this._div.clientWidth||o,10);parseInt(this._div.clientHeight||a,10);this._div.style.left=i.x-r/2+\"px\",this._div.style.bottom=-(i.y-e.height)+\"px\"},setHtml:function(t){this._div.innerHTML=t},setRelatedClass:function(t){this.lushuMain=t}})}var n={};n.dom={},n.dom.g=function(t){return\"string\"==typeof t||t instanceof String?document.getElementById(t):t&&t.nodeName&&(1==t.nodeType||9==t.nodeType)?t:null},n.g=n.G=n.dom.g,n.lang=n.lang||{},n.lang.isString=function(t){return\"[object String]\"==Object.prototype.toString.call(t)},n.isString=n.lang.isString,n.dom._g=function(t){return n.lang.isString(t)?document.getElementById(t):t},n._g=n.dom._g,n.dom.getDocument=function(t){return t=n.dom.g(t),9==t.nodeType?t:t.ownerDocument||t.document},n.browser=n.browser||{},n.browser.ie=n.ie=/msie (\\d+\\.\\d+)/i.test(navigator.userAgent)?document.documentMode||+RegExp.$1:void 0,n.dom.getComputedStyle=function(t,e){t=n.dom._g(t);var i,o=n.dom.getDocument(t);return o.defaultView&&o.defaultView.getComputedStyle&&(i=o.defaultView.getComputedStyle(t,null))?i[e]||i.getPropertyValue(e):\"\"},n.dom._styleFixer=n.dom._styleFixer||{},n.dom._styleFilter=n.dom._styleFilter||[],n.dom._styleFilter.filter=function(t,e,i){for(var o,a=0,r=n.dom._styleFilter;o=r[a];a++)(o=o[i])&&(e=o(t,e));return e},n.string=n.string||{},n.string.toCamelCase=function(t){return t.indexOf(\"-\")<0&&t.indexOf(\"_\")<0?t:t.replace(/[-_][^-_]/g,function(t){return t.charAt(1).toUpperCase()})},n.dom.getStyle=function(t,e){var i=n.dom;t=i.g(t),e=n.string.toCamelCase(e);var o=t.style[e]||(t.currentStyle?t.currentStyle[e]:\"\")||i.getComputedStyle(t,e);if(!o){var a=i._styleFixer[e];a&&(o=a.get?a.get(t):n.dom.getStyle(t,a))}return(a=i._styleFilter)&&(o=a.filter(e,o,\"get\")),o},n.getStyle=n.dom.getStyle,n.dom._NAME_ATTRS=function(){var t={cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",colspan:\"colSpan\",rowspan:\"rowSpan\",valign:\"vAlign\",usemap:\"useMap\",frameborder:\"frameBorder\"};return n.browser.ie<8?(t.for=\"htmlFor\",t.class=\"className\"):(t.htmlFor=\"for\",t.className=\"class\"),t}(),n.dom.setAttr=function(t,e,i){return t=n.dom.g(t),\"style\"==e?t.style.cssText=i:(e=n.dom._NAME_ATTRS[e]||e,t.setAttribute(e,i)),t},n.setAttr=n.dom.setAttr,n.dom.setAttrs=function(t,e){t=n.dom.g(t);for(var i in e)n.dom.setAttr(t,i,e[i]);return t},n.setAttrs=n.dom.setAttrs,n.dom.create=function(t,e){var i=document.createElement(t),o=e||{};return n.dom.setAttrs(i,o)},n.object=n.object||{},n.extend=n.object.extend=function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t};var i=function(t,e,n){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}!e||e.length<1||(this._map=t,this._path=e,this.i=0,this._setTimeoutQuene=[],this._projection=this._map.getMapType().getProjection(),this._opts={icon:null,speed:4e3,defaultContent:\"\",showInfoWindow:!1},this._setOptions(n),this._rotation=0,!this._opts.icon instanceof BMap.Icon&&(this._opts.icon=defaultIcon))};return i.prototype._setOptions=function(t){if(t)for(var e in t)t.hasOwnProperty(e)&&(this._opts[e]=t[e])},i.prototype.start=function(){var t=this,e=t._path.length;if(this._opts.onstart&&this._opts.onstart(t),t.i&&t.i<e-1){if(!t._fromPause)return;t._fromStop||t._moveNext(++t.i)}else!t._marker&&t._addMarker(),t._timeoutFlag=setTimeout(function(){!t._overlay&&t._addInfoWin(),t._moveNext(t.i)},400);this._fromPause=!1,this._fromStop=!1},i.prototype.stop=function(){this.i=0,this._fromStop=!0,clearInterval(this._intervalFlag),this._clearTimeout();for(var t=0,e=this._opts.landmarkPois,n=e.length;t<n;t++)e[t].bShow=!1;this._opts.onstop&&this._opts.onstop(this)},i.prototype.pause=function(){clearInterval(this._intervalFlag),this._fromPause=!0,this._clearTimeout(),this._opts.onpause&&this._opts.onpause(this)},i.prototype.hideInfoWindow=function(){this._opts.showInfoWindow=!1,this._overlay&&(this._overlay._div.style.visibility=\"hidden\")},i.prototype.showInfoWindow=function(){this._opts.showInfoWindow=!0,this._overlay&&(this._overlay._div.style.visibility=\"visible\")},i.prototype.dispose=function(){clearInterval(this._intervalFlag),this._setTimeoutQuene&&this._clearTimeout(),this._map&&(this._map.removeOverlay(this._overlay),this._map.removeOverlay(this._marker))},n.object.extend(i.prototype,{_addMarker:function(t){this._marker&&(this.stop(),this._map.removeOverlay(this._marker),clearTimeout(this._timeoutFlag)),this._overlay&&this._map.removeOverlay(this._overlay);var e=new BMap.Marker(this._path[0]);this._opts.icon&&e.setIcon(this._opts.icon),this._map.addOverlay(e),e.setAnimation(BMAP_ANIMATION_DROP),this._marker=e},_addInfoWin:function(){var n=this;!t.prototype.initialize&&e();var i=new t(n._marker.getPosition(),n._opts.defaultContent);i.setRelatedClass(this),this._overlay=i,this._map.addOverlay(i),this._opts.showInfoWindow?this.showInfoWindow():this.hideInfoWindow()},_getMercator:function(t){return this._map.getMapType().getProjection().lngLatToPoint(t)},_getDistance:function(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))},_move:function(t,e,n){var i=this,o=0,a=this._opts.speed/100,r=this._projection.lngLatToPoint(t),s=this._projection.lngLatToPoint(e),l=Math.round(i._getDistance(r,s)/a);if(l<1)return void i._moveNext(++i.i);i._intervalFlag=setInterval(function(){if(o>=l){if(clearInterval(i._intervalFlag),i.i>i._path.length)return;i._moveNext(++i.i)}else{o++;var a=n(r.x,s.x,o,l),c=n(r.y,s.y,o,l),u=i._projection.pointToLngLat(new BMap.Pixel(a,c));if(1==o){var h=null;i.i-1>=0&&(h=i._path[i.i-1]),1==i._opts.enableRotation&&i.setRotation(h,t,e),i._opts.autoView&&(i._map.getBounds().containsPoint(u)||i._map.setCenter(u))}i._marker.setPosition(u),i._setInfoWin(u)}},10)},setRotation:function(t,e,n){var i=this,o=0;if(e=i._map.pointToPixel(e),n=i._map.pointToPixel(n),n.x!=e.x){var a=(n.y-e.y)/(n.x-e.x);o=360*Math.atan(a)/(2*Math.PI),o=n.x<e.x?90-o+90:-o,i._marker.setRotation(-o)}else{var r=n.y-e.y,s=0;s=r>0?-1:1,i._marker.setRotation(90*-s)}},linePixellength:function(t,e){return Math.sqrt(Math.abs(t.x-e.x)*Math.abs(t.x-e.x)+Math.abs(t.y-e.y)*Math.abs(t.y-e.y))},pointToPoint:function(t,e){return Math.abs(t.x-e.x)*Math.abs(t.x-e.x)+Math.abs(t.y-e.y)*Math.abs(t.y-e.y)},_moveNext:function(t){var e=this;t<this._path.length-1?e._move(e._path[t],e._path[t+1],e._tween.linear):e.stop()},_setInfoWin:function(t){var e=this;e._overlay.setPosition(t,e._marker.getIcon().size);var n=e._troughPointIndex(t);-1!=n?(clearInterval(e._intervalFlag),e._overlay.setHtml(e._opts.landmarkPois[n].html),e._overlay.setPosition(t,e._marker.getIcon().size),e._pauseForView(n)):e._overlay.setHtml(e._opts.defaultContent)},_pauseForView:function(t){var e=this,n=setTimeout(function(){e._moveNext(++e.i)},1e3*e._opts.landmarkPois[t].pauseTime);e._setTimeoutQuene.push(n)},_clearTimeout:function(){for(var t in this._setTimeoutQuene)clearTimeout(this._setTimeoutQuene[t]);this._setTimeoutQuene.length=0},_tween:{linear:function(t,e,n,i){return(e-t)*n/i+t}},_troughPointIndex:function(t){for(var e=this._opts.landmarkPois,n=0,i=e.length;n<i;n++)if(!e[n].bShow&&this._map.getDistance(new BMap.Point(e[n].lng,e[n].lat),t)<10)return e[n].bShow=!0,n;return-1}}),i})},function(t,e,n){(function(e){var i,o;!function(e,n){t.exports=n()}(0,function(){\"use strict\";function t(t){this._markerClusterer=t,this._map=t.getMap(),this._minClusterSize=t.getMinClusterSize(),this._isAverageCenter=t.isAverageCenter(),this._center=null,this._markers=[],this._gridBounds=null,this._isReal=!1,this._clusterMarker=new s(this._center,this._markers.length,{styles:this._markerClusterer.getStyles()})}var a=\"undefined\"!=typeof window?window:void 0!==e?e:this,r=function(t,e){return e={exports:{}},t(e,e.exports,a),e.exports}(function(t,e,a){!function(a,r){\"object\"==typeof e?t.exports=r():(i=r,void 0!==(o=\"function\"==typeof i?i.call(e,n,e,t):i)&&(t.exports=o))}(0,function(){var t,e=t=e||{version:\"1.3.8\"},n={};e.guid=\"$BAIDU$\",n[e.guid]=n[e.guid]||{},e.dom=e.dom||{},e.dom.g=function(t){return\"string\"==typeof t||t instanceof String?document.getElementById(t):t&&t.nodeName&&(1==t.nodeType||9==t.nodeType)?t:null},e.g=e.G=e.dom.g,e.dom.getDocument=function(t){return t=e.dom.g(t),9==t.nodeType?t:t.ownerDocument||t.document},e.lang=e.lang||{},e.lang.isString=function(t){return\"[object String]\"==Object.prototype.toString.call(t)},e.isString=e.lang.isString,e.dom._g=function(t){return e.lang.isString(t)?document.getElementById(t):t},e._g=e.dom._g,e.browser=e.browser||{},/msie (\\d+\\.\\d)/i.test(navigator.userAgent)&&(e.browser.ie=e.ie=document.documentMode||+RegExp.$1),e.dom.getComputedStyle=function(t,n){t=e.dom._g(t);var i,o=e.dom.getDocument(t);return o.defaultView&&o.defaultView.getComputedStyle&&(i=o.defaultView.getComputedStyle(t,null))?i[n]||i.getPropertyValue(n):\"\"},e.dom._styleFixer=e.dom._styleFixer||{},e.dom._styleFilter=e.dom._styleFilter||[],e.dom._styleFilter.filter=function(t,n,i){for(var o,a=0,r=e.dom._styleFilter;o=r[a];a++)(o=o[i])&&(n=o(t,n));return n},e.string=e.string||{},e.string.toCamelCase=function(t){return t.indexOf(\"-\")<0&&t.indexOf(\"_\")<0?t:t.replace(/[-_][^-_]/g,function(t){return t.charAt(1).toUpperCase()})},e.dom.getStyle=function(t,n){var i=e.dom;t=i.g(t),n=e.string.toCamelCase(n);var o=t.style[n]||(t.currentStyle?t.currentStyle[n]:\"\")||i.getComputedStyle(t,n);if(!o){var a=i._styleFixer[n];a&&(o=a.get?a.get(t):e.dom.getStyle(t,a))}return(a=i._styleFilter)&&(o=a.filter(n,o,\"get\")),o},e.getStyle=e.dom.getStyle,/opera\\/(\\d+\\.\\d)/i.test(navigator.userAgent)&&(e.browser.opera=+RegExp.$1),e.browser.isWebkit=/webkit/i.test(navigator.userAgent),e.browser.isGecko=/gecko/i.test(navigator.userAgent)&&!/like gecko/i.test(navigator.userAgent),e.browser.isStrict=\"CSS1Compat\"==document.compatMode,e.dom.getPosition=function(t){t=e.dom.g(t);var n,i,o=e.dom.getDocument(t),a=e.browser,r=e.dom.getStyle,s=(a.isGecko>0&&o.getBoxObjectFor&&\"absolute\"==r(t,\"position\")&&(\"\"===t.style.top||t.style.left),{left:0,top:0}),l=a.ie&&!a.isStrict?o.body:o.documentElement;if(t==l)return s;if(t.getBoundingClientRect){i=t.getBoundingClientRect(),s.left=Math.floor(i.left)+Math.max(o.documentElement.scrollLeft,o.body.scrollLeft),s.top=Math.floor(i.top)+Math.max(o.documentElement.scrollTop,o.body.scrollTop),s.left-=o.documentElement.clientLeft,s.top-=o.documentElement.clientTop;var c=o.body,u=parseInt(r(c,\"borderLeftWidth\")),h=parseInt(r(c,\"borderTopWidth\"));a.ie&&!a.isStrict&&(s.left-=isNaN(u)?2:u,s.top-=isNaN(h)?2:h)}else{n=t;do{if(s.left+=n.offsetLeft,s.top+=n.offsetTop,a.isWebkit>0&&\"fixed\"==r(n,\"position\")){s.left+=o.body.scrollLeft,s.top+=o.body.scrollTop;break}n=n.offsetParent}while(n&&n!=t);for((a.opera>0||a.isWebkit>0&&\"absolute\"==r(t,\"position\"))&&(s.top-=o.body.offsetTop),n=t.offsetParent;n&&n!=o.body;)s.left-=n.scrollLeft,a.opera&&\"TR\"==n.tagName||(s.top-=n.scrollTop),n=n.offsetParent}return s},e.event=e.event||{},e.event._listeners=e.event._listeners||[],e.event.on=function(t,n,i){n=n.replace(/^on/i,\"\"),t=e.dom._g(t);var o,a=function(e){i.call(t,e)},r=e.event._listeners,s=e.event._eventFilter,l=n;return n=n.toLowerCase(),s&&s[n]&&(o=s[n](t,n,a),l=o.type,a=o.listener),t.addEventListener?t.addEventListener(l,a,!1):t.attachEvent&&t.attachEvent(\"on\"+l,a),r[r.length]=[t,n,i,a,l],t},e.on=e.event.on,function(){var t=n[e.guid];e.lang.guid=function(){return\"TANGRAM__\"+(t._counter++).toString(36)},t._counter=t._counter||1}(),n[e.guid]._instances=n[e.guid]._instances||{},e.lang.isFunction=function(t){return\"[object Function]\"==Object.prototype.toString.call(t)},e.lang.Class=function(t){this.guid=t||e.lang.guid(),n[e.guid]._instances[this.guid]=this},n[e.guid]._instances=n[e.guid]._instances||{},e.lang.Class.prototype.dispose=function(){delete n[e.guid]._instances[this.guid];for(var t in this)e.lang.isFunction(this[t])||delete this[t];this.disposed=!0},e.lang.Class.prototype.toString=function(){return\"[object \"+(this._className||\"Object\")+\"]\"},e.lang.Event=function(t,e){this.type=t,this.returnValue=!0,this.target=e||null,this.currentTarget=null},e.lang.Class.prototype.addEventListener=function(t,n,i){if(e.lang.isFunction(n)){!this.__listeners&&(this.__listeners={});var o,a=this.__listeners;if(\"string\"==typeof i&&i){if(/[^\\w\\-]/.test(i))throw\"nonstandard key:\"+i;n.hashCode=i,o=i}0!=t.indexOf(\"on\")&&(t=\"on\"+t),\"object\"!=typeof a[t]&&(a[t]={}),o=o||e.lang.guid(),n.hashCode=o,a[t][o]=n}},e.lang.Class.prototype.removeEventListener=function(t,n){if(void 0===n||(!e.lang.isFunction(n)||(n=n.hashCode))&&e.lang.isString(n)){!this.__listeners&&(this.__listeners={}),0!=t.indexOf(\"on\")&&(t=\"on\"+t);var i=this.__listeners;if(i[t])if(void 0!==n)i[t][n]&&delete i[t][n];else for(var o in i[t])delete i[t][o]}},e.lang.Class.prototype.dispatchEvent=function(t,n){e.lang.isString(t)&&(t=new e.lang.Event(t)),!this.__listeners&&(this.__listeners={}),n=n||{};for(var i in n)t[i]=n[i];var i,o=this.__listeners,a=t.type;if(t.target=t.target||this,t.currentTarget=this,0!=a.indexOf(\"on\")&&(a=\"on\"+a),e.lang.isFunction(this[a])&&this[a].apply(this,arguments),\"object\"==typeof o[a])for(i in o[a])o[a][i].apply(this,arguments);return t.returnValue},e.lang.inherits=function(t,e,n){var i,o,a=t.prototype,r=new Function;r.prototype=e.prototype,o=t.prototype=new r;for(i in a)o[i]=a[i];t.prototype.constructor=t,t.superClass=e.prototype,\"string\"==typeof n&&(o._className=n)},e.inherits=e.lang.inherits;var i=function(e,n,o){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}t.lang.inherits(i,BMap.Overlay,\"TextIconOverlay\"),this._position=e,this._text=n,this._options=o||{},this._styles=this._options.styles||[],!this._styles.length&&this._setupDefaultStyles()};return i.prototype._setupDefaultStyles=function(){for(var t,e=[53,56,66,78,90],n=0;t=e[n];n++)this._styles.push({url:\"http://api.map.baidu.com/library/TextIconOverlay/1.2/src/images/m\"+n+\".png\",size:new BMap.Size(t,t)})},i.prototype.initialize=function(t){return this._map=t,this._domElement=document.createElement(\"div\"),this._updateCss(),this._updateText(),this._updatePosition(),this._bind(),this._map.getPanes().markerMouseTarget.appendChild(this._domElement),this._domElement},i.prototype.draw=function(){this._map&&this._updatePosition()},i.prototype.getText=function(){return this._text},i.prototype.setText=function(t){!t||this._text&&this._text.toString()==t.toString()||(this._text=t,this._updateText(),this._updateCss(),this._updatePosition())},i.prototype.getPosition=function(){return this._position},i.prototype.setPosition=function(t){!t||this._position&&this._position.equals(t)||(this._position=t,this._updatePosition())},i.prototype.getStyleByText=function(t,e){var n=parseInt(t),i=parseInt(n/10);return i=Math.max(0,i),i=Math.min(i,e.length-1),e[i]},i.prototype._updateCss=function(){if(this._domElement){var t=this.getStyleByText(this._text,this._styles);this._domElement.style.cssText=this._buildCssText(t)}},i.prototype._updateText=function(){this._domElement&&(this._domElement.innerHTML=this._text)},i.prototype._updatePosition=function(){if(this._domElement&&this._position){var t=this._domElement.style,e=this._map.pointToOverlayPixel(this._position);e.x-=Math.ceil(parseInt(t.width)/2),e.y-=Math.ceil(parseInt(t.height)/2),t.left=e.x+\"px\",t.top=e.y+\"px\"}},i.prototype._buildCssText=function(e){var n=e.url,i=e.size,o=e.anchor,a=e.offset,r=e.textColor||\"black\",s=e.textSize||10,l=[];if(t.browser.ie<7)l.push('filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src=\"'+n+'\");');else{l.push(\"background-image:url(\"+n+\");\");var c=\"0 0\";a instanceof BMap.Size&&(c=a.width+\"px \"+a.height+\"px\"),l.push(\"background-position:\"+c+\";\")}return i instanceof BMap.Size&&(o instanceof BMap.Size?(o.height>0&&o.height<i.height&&l.push(\"height:\"+(i.height-o.height)+\"px; padding-top:\"+o.height+\"px;\"),o.width>0&&o.width<i.width&&l.push(\"width:\"+(i.width-o.width)+\"px; padding-left:\"+o.width+\"px;\")):(l.push(\"height:\"+i.height+\"px; line-height:\"+i.height+\"px;\"),l.push(\"width:\"+i.width+\"px; text-align:center;\"))),l.push(\"cursor:pointer; color:\"+r+\"; position:absolute; font-size:\"+s+\"px; font-family:Arial,sans-serif; font-weight:bold\"),l.join(\"\")},i.prototype._bind=function(){function e(e,n){var o=e.srcElement||e.target,a=e.clientX||e.pageX,r=e.clientY||e.pageY;if(e&&n&&a&&r&&o){var s=t.dom.getPosition(i.getContainer());n.pixel=new BMap.Pixel(a-s.left,r-s.top),n.point=i.pixelToPoint(n.pixel)}return n}if(this._domElement){var n=this,i=this._map,o=t.lang.Event;t.event.on(this._domElement,\"mouseover\",function(t){n.dispatchEvent(e(t,new o(\"onmouseover\")))}),t.event.on(this._domElement,\"mouseout\",function(t){n.dispatchEvent(e(t,new o(\"onmouseout\")))}),t.event.on(this._domElement,\"click\",function(t){n.dispatchEvent(e(t,new o(\"onclick\")))})}},i})}),s=r&&\"object\"==typeof r&&\"default\"in r?r.default:r,l=function(t,e,n){e=c(e);var i=t.pointToPixel(e.getNorthEast()),o=t.pointToPixel(e.getSouthWest());i.x+=n,i.y-=n,o.x-=n,o.y+=n;var a=t.pixelToPoint(i),r=t.pixelToPoint(o);return new BMap.Bounds(r,a)},c=function(t){var e=u(t.getNorthEast().lng,-180,180),n=u(t.getSouthWest().lng,-180,180),i=u(t.getNorthEast().lat,-74,74),o=u(t.getSouthWest().lat,-74,74);return new BMap.Bounds(new BMap.Point(n,o),new BMap.Point(e,i))},u=function(t,e,n){return e&&(t=Math.max(t,e)),n&&(t=Math.min(t,n)),t},h=function(t){return\"[object Array]\"===Object.prototype.toString.call(t)},p=function(t,e){var n=-1;if(h(e))if(e.indexOf)n=e.indexOf(t);else for(var i,o=0;i=e[o];o++)if(i===t){n=o;break}return n},d=function(t,e){try{BMap}catch(t){throw Error(\"Baidu Map JS API is not ready yet!\")}if(t){this._map=t,this._markers=[],this._clusters=[];var n=e||{};this._gridSize=n.gridSize||60,this._maxZoom=n.maxZoom||18,this._minClusterSize=n.minClusterSize||2,this._isAverageCenter=!1,void 0!=n.isAverageCenter&&(this._isAverageCenter=n.isAverageCenter),this._styles=n.styles||[];var i=this;this._map.addEventListener(\"zoomend\",function(){i._redraw()}),this._map.addEventListener(\"moveend\",function(){i._redraw()});var o=n.markers;h(o)&&this.addMarkers(o)}};return d.prototype.addMarkers=function(t){if(t.length){for(var e=0,n=t.length;e<n;e++)this._pushMarkerTo(t[e]);this._createClusters()}},d.prototype._pushMarkerTo=function(t){-1===p(t,this._markers)&&(t.isInCluster=!1,this._markers.push(t))},d.prototype.addMarker=function(t){this._pushMarkerTo(t),this._createClusters()},d.prototype._createClusters=function(){var t=this._map.getBounds();if(t.getCenter())for(var e,n=l(this._map,t,this._gridSize),i=0;e=this._markers[i];i++)!e.isInCluster&&n.containsPoint(e.getPosition())&&this._addToClosestCluster(e)},d.prototype._addToClosestCluster=function(e){for(var n,i=4e6,o=null,a=(e.getPosition(),0);n=this._clusters[a];a++){var r=n.getCenter();if(r){var s=this._map.getDistance(r,e.getPosition());s<i&&(i=s,o=n)}}if(o&&o.isMarkerInClusterBounds(e))o.addMarker(e);else{var n=new t(this);n.addMarker(e),this._clusters.push(n)}},d.prototype._clearLastClusters=function(){for(var t,e=0;t=this._clusters[e];e++)t.remove();this._clusters=[],this._removeMarkersFromCluster()},d.prototype._removeMarkersFromCluster=function(){for(var t,e=0;t=this._markers[e];e++)t.isInCluster=!1},d.prototype._removeMarkersFromMap=function(){for(var t,e=0;t=this._markers[e];e++){t.isInCluster=!1;var n=t.getLabel();this._map.removeOverlay(t),t.setLabel(n)}},d.prototype._removeMarker=function(t){var e=p(t,this._markers);return-1!==e&&(this._map.removeOverlay(t),this._markers.splice(e,1),!0)},d.prototype.removeMarker=function(t){var e=this._removeMarker(t);return e&&(this._clearLastClusters(),this._createClusters()),e},d.prototype.removeMarkers=function(t){for(var e=!1,n=0;n<t.length;n++){var i=this._removeMarker(t[n]);e=e||i}return e&&(this._clearLastClusters(),this._createClusters()),e},d.prototype.clearMarkers=function(){this._clearLastClusters(),this._removeMarkersFromMap(),this._markers=[]},d.prototype._redraw=function(){this._clearLastClusters(),this._createClusters()},d.prototype.getGridSize=function(){return this._gridSize},d.prototype.setGridSize=function(t){this._gridSize=t,this._redraw()},d.prototype.getMaxZoom=function(){return this._maxZoom},d.prototype.setMaxZoom=function(t){this._maxZoom=t,this._redraw()},d.prototype.getStyles=function(){return this._styles},d.prototype.setStyles=function(t){this._styles=t,this._redraw()},d.prototype.getMinClusterSize=function(){return this._minClusterSize},d.prototype.setMinClusterSize=function(t){this._minClusterSize=t,this._redraw()},d.prototype.isAverageCenter=function(){return this._isAverageCenter},d.prototype.getMap=function(){return this._map},d.prototype.getMarkers=function(){return this._markers},d.prototype.getClustersCount=function(){for(var t,e=0,n=0;t=this._clusters[n];n++)t.isReal()&&e++;return e},t.prototype.addMarker=function(t){if(this.isMarkerInCluster(t))return!1;if(this._center){if(this._isAverageCenter){var e=this._markers.length+1,n=(this._center.lat*(e-1)+t.getPosition().lat)/e,i=(this._center.lng*(e-1)+t.getPosition().lng)/e;this._center=new BMap.Point(i,n),this.updateGridBounds()}}else this._center=t.getPosition(),this.updateGridBounds();t.isInCluster=!0,this._markers.push(t);var o=this._markers.length;if(o<this._minClusterSize)return this._map.addOverlay(t),!0;if(o===this._minClusterSize)for(var a=0;a<o;a++){var r=this._markers[a].getLabel();this._markers[a].getMap()&&this._map.removeOverlay(this._markers[a]),this._markers[a].setLabel(r)}return this._map.addOverlay(this._clusterMarker),this._isReal=!0,this.updateClusterMarker(),!0},t.prototype.isMarkerInCluster=function(t){if(this._markers.indexOf)return-1!=this._markers.indexOf(t);for(var e,n=0;e=this._markers[n];n++)if(e===t)return!0;return!1},t.prototype.isMarkerInClusterBounds=function(t){return this._gridBounds.containsPoint(t.getPosition())},t.prototype.isReal=function(t){return this._isReal},t.prototype.updateGridBounds=function(){var t=new BMap.Bounds(this._center,this._center);this._gridBounds=l(this._map,t,this._markerClusterer.getGridSize())},t.prototype.updateClusterMarker=function(){if(this._map.getZoom()>this._markerClusterer.getMaxZoom()){this._clusterMarker&&this._map.removeOverlay(this._clusterMarker);for(var t,e=0;t=this._markers[e];e++)this._map.addOverlay(t)}else{if(this._markers.length<this._minClusterSize)return void this._clusterMarker.hide();this._clusterMarker.setPosition(this._center),this._clusterMarker.setText(this._markers.length),this._clusterMarker.addEventListener&&!this._clusterMarker._hasClickEvent&&this._clusterMarker.addEventListener(\"click\",function(t){this._clusterMarker._hasClickEvent=!0,this._markers&&this._map.setViewport(this.getBounds())}.bind(this))}},t.prototype.remove=function(){for(var t=0;this._markers[t];t++){var e=this._markers[t].getLabel();this._markers[t].getMap()&&this._map.removeOverlay(this._markers[t]),this._markers[t].setLabel(e)}this._map.removeOverlay(this._clusterMarker),this._markers.length=0,delete this._markers},t.prototype.getBounds=function(){for(var t,e=new BMap.Bounds(this._center,this._center),n=0;t=this._markers[n];n++)e.extend(t.getPosition());return e},t.prototype.getCenter=function(){return this._center},d})}).call(e,n(3))},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\")},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.show,expression:\"show\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"span\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"span\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]})},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.panel,expression:\"panel\"}]},[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"span\",[t._t(\"default\",[n(\"input\")])],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",[t._t(\"default\")],2)},staticRenderFns:[]}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",[t.hasBmView?t._e():n(\"div\",{ref:\"view\",staticStyle:{width:\"100%\",height:\"100%\"}}),t._v(\" \"),t._t(\"default\")],2)},staticRenderFns:[]}}])});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-baidu-map@0.21.11@vue-baidu-map/index.js\n// module id = zgOS\n// module chunks = 0"],"sourceRoot":""}
\ No newline at end of file
diff --git a/server/public/stylesheets/style.css b/server/public/stylesheets/style.css
deleted file mode 100644
index e62a4ff..0000000
--- a/server/public/stylesheets/style.css
+++ /dev/null
@@ -1,8 +0,0 @@
-body {
-  padding: 50px;
-  font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
-}
-
-a {
-  color: #00B7FF;
-}
diff --git "a/server/public/template/\345\221\250.docx" "b/server/public/template/\345\221\250.docx"
deleted file mode 100644
index 07de0e1..0000000
--- "a/server/public/template/\345\221\250.docx"
+++ /dev/null
Binary files differ
diff --git "a/server/public/template/\345\221\250.pdf" "b/server/public/template/\345\221\250.pdf"
deleted file mode 100644
index 91785ee..0000000
--- "a/server/public/template/\345\221\250.pdf"
+++ /dev/null
Binary files differ
diff --git "a/server/public/template/\346\227\245.docx" "b/server/public/template/\346\227\245.docx"
deleted file mode 100644
index f0eaf7d..0000000
--- "a/server/public/template/\346\227\245.docx"
+++ /dev/null
Binary files differ
diff --git "a/server/public/template/\346\227\245.pdf" "b/server/public/template/\346\227\245.pdf"
deleted file mode 100644
index 38aee59..0000000
--- "a/server/public/template/\346\227\245.pdf"
+++ /dev/null
Binary files differ
diff --git "a/server/public/template/\346\234\210.docx" "b/server/public/template/\346\234\210.docx"
deleted file mode 100644
index ab36e82..0000000
--- "a/server/public/template/\346\234\210.docx"
+++ /dev/null
Binary files differ
diff --git "a/server/public/template/\346\234\210.pdf" "b/server/public/template/\346\234\210.pdf"
deleted file mode 100644
index 46a7283..0000000
--- "a/server/public/template/\346\234\210.pdf"
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/.DS_Store b/server/public/ueditor/.DS_Store
deleted file mode 100644
index 88cc268..0000000
--- a/server/public/ueditor/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/anchor/anchor.html b/server/public/ueditor/dialogs/anchor/anchor.html
deleted file mode 100644
index a6c4066..0000000
--- a/server/public/ueditor/dialogs/anchor/anchor.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-        <title></title>
-        <style type="text/css">
-            *{color: #838383;margin: 0;padding: 0}
-            html,body {font-size: 12px;overflow: hidden; }
-            .content{padding:5px 0 0 15px;}
-            input{width:210px;height:21px;line-height:21px;margin-left: 4px;}
-        </style>
-    </head>
-    <body>
-        <div class="content">
-            <span><var id="lang_input_anchorName"></var></span><input id="anchorName"  value="" />
-        </div>
-        <script type="text/javascript" src="../internal.js"></script>
-        <script type="text/javascript">
-            var anchorInput = $G('anchorName'),
-                node = editor.selection.getRange().getClosedNode();
-            if(node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))){
-                anchorInput.value = node;
-            }
-            anchorInput.onkeydown = function(evt){
-                evt = evt || window.event;
-                if(evt.keyCode == 13){
-                    editor.execCommand('anchor', anchorInput.value);
-                    dialog.close();
-                    domUtils.preventDefault(evt)
-                }
-            };
-            dialog.onok = function (){
-                editor.execCommand('anchor', anchorInput.value);
-                dialog.close();
-            };
-            $focus(anchorInput);
-        </script>
-    </body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/attachment/attachment.css b/server/public/ueditor/dialogs/attachment/attachment.css
deleted file mode 100644
index e9d11af..0000000
--- a/server/public/ueditor/dialogs/attachment/attachment.css
+++ /dev/null
@@ -1,681 +0,0 @@
-@charset "utf-8";
-/* dialog鏍峰紡 */
-.wrapper {
-    zoom: 1;
-    width: 630px;
-    *width: 626px;
-    height: 380px;
-    margin: 0 auto;
-    padding: 10px;
-    position: relative;
-    font-family: sans-serif;
-}
-
-/*tab鏍峰紡妗嗗ぇ灏�*/
-.tabhead {
-    float:left;
-}
-.tabbody {
-    width: 100%;
-    height: 346px;
-    position: relative;
-    clear: both;
-}
-
-.tabbody .panel {
-    position: absolute;
-    width: 0;
-    height: 0;
-    background: #fff;
-    overflow: hidden;
-    display: none;
-}
-
-.tabbody .panel.focus {
-    width: 100%;
-    height: 346px;
-    display: block;
-}
-
-/* 涓婁紶闄勪欢 */
-.tabbody #upload.panel {
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-    background: #fff;
-    display: block;
-}
-
-.tabbody #upload.panel.focus {
-    width: 100%;
-    height: 346px;
-    display: block;
-    clip: auto;
-}
-
-#upload .queueList {
-    margin: 0;
-    width: 100%;
-    height: 100%;
-    position: absolute;
-    overflow: hidden;
-}
-
-#upload p {
-    margin: 0;
-}
-
-.element-invisible {
-    width: 0 !important;
-    height: 0 !important;
-    border: 0;
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-}
-
-#upload .placeholder {
-    margin: 10px;
-    border: 2px dashed #e6e6e6;
-    *border: 0px dashed #e6e6e6;
-    height: 172px;
-    padding-top: 150px;
-    text-align: center;
-    background: url(./images/image.png) center 70px no-repeat;
-    color: #cccccc;
-    font-size: 18px;
-    position: relative;
-    top:0;
-    *top: 10px;
-}
-
-#upload .placeholder .webuploader-pick {
-    font-size: 18px;
-    background: #00b7ee;
-    border-radius: 3px;
-    line-height: 44px;
-    padding: 0 30px;
-    *width: 120px;
-    color: #fff;
-    display: inline-block;
-    margin: 0 auto 20px auto;
-    cursor: pointer;
-    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-}
-
-#upload .placeholder .webuploader-pick-hover {
-    background: #00a2d4;
-}
-
-
-#filePickerContainer {
-    text-align: center;
-}
-
-#upload .placeholder .flashTip {
-    color: #666666;
-    font-size: 12px;
-    position: absolute;
-    width: 100%;
-    text-align: center;
-    bottom: 20px;
-}
-
-#upload .placeholder .flashTip a {
-    color: #0785d1;
-    text-decoration: none;
-}
-
-#upload .placeholder .flashTip a:hover {
-    text-decoration: underline;
-}
-
-#upload .placeholder.webuploader-dnd-over {
-    border-color: #999999;
-}
-
-#upload .filelist {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-    height: 300px;
-}
-
-#upload .filelist:after {
-    content: '';
-    display: block;
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    clear: both;
-}
-
-#upload .filelist li {
-    width: 113px;
-    height: 113px;
-    background: url(./images/bg.png);
-    text-align: center;
-    margin: 9px 0 0 9px;
-    *margin: 6px 0 0 6px;
-    position: relative;
-    display: block;
-    float: left;
-    overflow: hidden;
-    font-size: 12px;
-}
-
-#upload .filelist li p.log {
-    position: relative;
-    top: -45px;
-}
-
-#upload .filelist li p.title {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    top: 5px;
-    text-indent: 5px;
-    text-align: left;
-}
-
-#upload .filelist li p.progress {
-    position: absolute;
-    width: 100%;
-    bottom: 0;
-    left: 0;
-    height: 8px;
-    overflow: hidden;
-    z-index: 50;
-    margin: 0;
-    border-radius: 0;
-    background: none;
-    -webkit-box-shadow: 0 0 0;
-}
-
-#upload .filelist li p.progress span {
-    display: none;
-    overflow: hidden;
-    width: 0;
-    height: 100%;
-    background: #1483d8 url(./images/progress.png) repeat-x;
-
-    -webit-transition: width 200ms linear;
-    -moz-transition: width 200ms linear;
-    -o-transition: width 200ms linear;
-    -ms-transition: width 200ms linear;
-    transition: width 200ms linear;
-
-    -webkit-animation: progressmove 2s linear infinite;
-    -moz-animation: progressmove 2s linear infinite;
-    -o-animation: progressmove 2s linear infinite;
-    -ms-animation: progressmove 2s linear infinite;
-    animation: progressmove 2s linear infinite;
-
-    -webkit-transform: translateZ(0);
-}
-
-@-webkit-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@-moz-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-#upload .filelist li p.imgWrap {
-    position: relative;
-    z-index: 2;
-    line-height: 113px;
-    vertical-align: middle;
-    overflow: hidden;
-    width: 113px;
-    height: 113px;
-
-    -webkit-transform-origin: 50% 50%;
-    -moz-transform-origin: 50% 50%;
-    -o-transform-origin: 50% 50%;
-    -ms-transform-origin: 50% 50%;
-    transform-origin: 50% 50%;
-
-    -webit-transition: 200ms ease-out;
-    -moz-transition: 200ms ease-out;
-    -o-transition: 200ms ease-out;
-    -ms-transition: 200ms ease-out;
-    transition: 200ms ease-out;
-}
-#upload .filelist li p.imgWrap.notimage {
-    margin-top: 0;
-    width: 111px;
-    height: 111px;
-    border: 1px #eeeeee solid;
-}
-#upload .filelist li p.imgWrap.notimage i.file-preview {
-    margin-top: 15px;
-}
-
-#upload .filelist li img {
-    width: 100%;
-}
-
-#upload .filelist li p.error {
-    background: #f43838;
-    color: #fff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    height: 28px;
-    line-height: 28px;
-    width: 100%;
-    z-index: 100;
-    display:none;
-}
-
-#upload .filelist li .success {
-    display: block;
-    position: absolute;
-    left: 0;
-    bottom: 0;
-    height: 40px;
-    width: 100%;
-    z-index: 200;
-    background: url(./images/success.png) no-repeat right bottom;
-    background-image: url(./images/success.gif) \9;
-}
-
-#upload .filelist li.filePickerBlock {
-    width: 113px;
-    height: 113px;
-    background: url(./images/image.png) no-repeat center 12px;
-    border: 1px solid #eeeeee;
-    border-radius: 0;
-}
-#upload .filelist li.filePickerBlock div.webuploader-pick  {
-    width: 100%;
-    height: 100%;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    background: none;
-    font-size: 0;
-}
-
-#upload .filelist div.file-panel {
-    position: absolute;
-    height: 0;
-    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
-    background: rgba(0, 0, 0, 0.5);
-    width: 100%;
-    top: 0;
-    left: 0;
-    overflow: hidden;
-    z-index: 300;
-}
-
-#upload .filelist div.file-panel span {
-    width: 24px;
-    height: 24px;
-    display: inline;
-    float: right;
-    text-indent: -9999px;
-    overflow: hidden;
-    background: url(./images/icons.png) no-repeat;
-    background: url(./images/icons.gif) no-repeat \9;
-    margin: 5px 1px 1px;
-    cursor: pointer;
-    -webkit-tap-highlight-color: rgba(0,0,0,0);
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .filelist div.file-panel span.rotateLeft {
-    display:none;
-    background-position: 0 -24px;
-}
-
-#upload .filelist div.file-panel span.rotateLeft:hover {
-    background-position: 0 0;
-}
-
-#upload .filelist div.file-panel span.rotateRight {
-    display:none;
-    background-position: -24px -24px;
-}
-
-#upload .filelist div.file-panel span.rotateRight:hover {
-    background-position: -24px 0;
-}
-
-#upload .filelist div.file-panel span.cancel {
-    background-position: -48px -24px;
-}
-
-#upload .filelist div.file-panel span.cancel:hover {
-    background-position: -48px 0;
-}
-
-#upload .statusBar {
-    height: 45px;
-    border-bottom: 1px solid #dadada;
-    margin: 0 10px;
-    padding: 0;
-    line-height: 45px;
-    vertical-align: middle;
-    position: relative;
-}
-
-#upload .statusBar .progress {
-    border: 1px solid #1483d8;
-    width: 198px;
-    background: #fff;
-    height: 18px;
-    position: absolute;
-    top: 12px;
-    display: none;
-    text-align: center;
-    line-height: 18px;
-    color: #6dbfff;
-    margin: 0 10px 0 0;
-}
-#upload .statusBar .progress span.percentage {
-    width: 0;
-    height: 100%;
-    left: 0;
-    top: 0;
-    background: #1483d8;
-    position: absolute;
-}
-#upload .statusBar .progress span.text {
-    position: relative;
-    z-index: 10;
-}
-
-#upload .statusBar .info {
-    display: inline-block;
-    font-size: 14px;
-    color: #666666;
-}
-
-#upload .statusBar .btns {
-    position: absolute;
-    top: 7px;
-    right: 0;
-    line-height: 30px;
-}
-
-#filePickerBtn {
-    display: inline-block;
-    float: left;
-}
-#upload .statusBar .btns .webuploader-pick,
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-uploading,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #ffffff;
-    border: 1px solid #cfcfcf;
-    color: #565656;
-    padding: 0 18px;
-    display: inline-block;
-    border-radius: 3px;
-    margin-left: 10px;
-    cursor: pointer;
-    font-size: 14px;
-    float: left;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-#upload .statusBar .btns .webuploader-pick-hover,
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-uploading:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #f0f0f0;
-}
-
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-paused{
-    background: #00b7ee;
-    color: #fff;
-    border-color: transparent;
-}
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover{
-    background: #00a2d4;
-}
-
-#upload .statusBar .btns .uploadBtn.disabled {
-    pointer-events: none;
-    filter:alpha(opacity=60);
-    -moz-opacity:0.6;
-    -khtml-opacity: 0.6;
-    opacity: 0.6;
-}
-
-
-
-/* 鍥剧墖绠$悊鏍峰紡 */
-#online {
-    width: 100%;
-    height: 336px;
-    padding: 10px 0 0 0;
-}
-#online #fileList{
-    width: 100%;
-    height: 100%;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-}
-#online ul {
-    display: block;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-#online li {
-    float: left;
-    display: block;
-    list-style: none;
-    padding: 0;
-    width: 113px;
-    height: 113px;
-    margin: 0 0 9px 9px;
-    *margin: 0 0 6px 6px;
-    background-color: #eee;
-    overflow: hidden;
-    cursor: pointer;
-    position: relative;
-}
-#online li.clearFloat {
-    float: none;
-    clear: both;
-    display: block;
-    width:0;
-    height:0;
-    margin: 0;
-    padding: 0;
-}
-#online li img {
-    cursor: pointer;
-}
-#online li div.file-wrapper {
-    cursor: pointer;
-    position: absolute;
-    display: block;
-    width: 111px;
-    height: 111px;
-    border: 1px solid #eee;
-    background: url("./images/bg.png") repeat;
-}
-#online li div span.file-title{
-    display: block;
-    padding: 0 3px;
-    margin: 3px 0 0 0;
-    font-size: 12px;
-    height: 13px;
-    color: #555555;
-    text-align: center;
-    width: 107px;
-    white-space: nowrap;
-    word-break: break-all;
-    overflow: hidden;
-    text-overflow: ellipsis;
-}
-#online li .icon {
-    cursor: pointer;
-    width: 113px;
-    height: 113px;
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 2;
-    border: 0;
-    background-repeat: no-repeat;
-}
-#online li .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-}
-#online li.selected .icon {
-    background-image: url(images/success.png);
-    background-image: url(images/success.gif) \9;
-    background-position: 75px 75px;
-}
-#online li.selected .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-    background-position: 72px 72px;
-}
-
-
-/* 鍦ㄧ嚎鏂囦欢鐨勬枃浠堕瑙堝浘鏍� */
-i.file-preview {
-    display: block;
-    margin: 10px auto;
-    width: 70px;
-    height: 70px;
-    background-image: url("./images/file-icons.png");
-    background-image: url("./images/file-icons.gif") \9;
-    background-position: -140px center;
-    background-repeat: no-repeat;
-}
-i.file-preview.file-type-dir{
-    background-position: 0 center;
-}
-i.file-preview.file-type-file{
-    background-position: -140px center;
-}
-i.file-preview.file-type-filelist{
-    background-position: -210px center;
-}
-i.file-preview.file-type-zip,
-i.file-preview.file-type-rar,
-i.file-preview.file-type-7z,
-i.file-preview.file-type-tar,
-i.file-preview.file-type-gz,
-i.file-preview.file-type-bz2{
-    background-position: -280px center;
-}
-i.file-preview.file-type-xls,
-i.file-preview.file-type-xlsx{
-    background-position: -350px center;
-}
-i.file-preview.file-type-doc,
-i.file-preview.file-type-docx{
-    background-position: -420px center;
-}
-i.file-preview.file-type-ppt,
-i.file-preview.file-type-pptx{
-    background-position: -490px center;
-}
-i.file-preview.file-type-vsd{
-    background-position: -560px center;
-}
-i.file-preview.file-type-pdf{
-    background-position: -630px center;
-}
-i.file-preview.file-type-txt,
-i.file-preview.file-type-md,
-i.file-preview.file-type-json,
-i.file-preview.file-type-htm,
-i.file-preview.file-type-xml,
-i.file-preview.file-type-html,
-i.file-preview.file-type-js,
-i.file-preview.file-type-css,
-i.file-preview.file-type-php,
-i.file-preview.file-type-jsp,
-i.file-preview.file-type-asp{
-    background-position: -700px center;
-}
-i.file-preview.file-type-apk{
-    background-position: -770px center;
-}
-i.file-preview.file-type-exe{
-    background-position: -840px center;
-}
-i.file-preview.file-type-ipa{
-    background-position: -910px center;
-}
-i.file-preview.file-type-mp4,
-i.file-preview.file-type-swf,
-i.file-preview.file-type-mkv,
-i.file-preview.file-type-avi,
-i.file-preview.file-type-flv,
-i.file-preview.file-type-mov,
-i.file-preview.file-type-mpg,
-i.file-preview.file-type-mpeg,
-i.file-preview.file-type-ogv,
-i.file-preview.file-type-webm,
-i.file-preview.file-type-rm,
-i.file-preview.file-type-rmvb{
-    background-position: -980px center;
-}
-i.file-preview.file-type-ogg,
-i.file-preview.file-type-wav,
-i.file-preview.file-type-wmv,
-i.file-preview.file-type-mid,
-i.file-preview.file-type-mp3{
-    background-position: -1050px center;
-}
-i.file-preview.file-type-jpg,
-i.file-preview.file-type-jpeg,
-i.file-preview.file-type-gif,
-i.file-preview.file-type-bmp,
-i.file-preview.file-type-png,
-i.file-preview.file-type-psd{
-    background-position: -140px center;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/attachment/attachment.html b/server/public/ueditor/dialogs/attachment/attachment.html
deleted file mode 100644
index 1a52bb9..0000000
--- a/server/public/ueditor/dialogs/attachment/attachment.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!doctype html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>ueditor鍥剧墖瀵硅瘽妗�</title>
-    <script type="text/javascript" src="../internal.js"></script>
-
-    <!-- jquery -->
-    <script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
-
-    <!-- webuploader -->
-    <script src="../../third-party/webuploader/webuploader.min.js"></script>
-    <link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
-
-    <!-- attachment dialog -->
-    <link rel="stylesheet" href="attachment.css" type="text/css" />
-</head>
-<body>
-
-    <div class="wrapper">
-        <div id="tabhead" class="tabhead">
-            <span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
-            <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
-        </div>
-        <div id="tabbody" class="tabbody">
-            <!-- 涓婁紶鍥剧墖 -->
-            <div id="upload" class="panel focus">
-                <div id="queueList" class="queueList">
-                    <div class="statusBar element-invisible">
-                        <div class="progress">
-                            <span class="text">0%</span>
-                            <span class="percentage"></span>
-                        </div><div class="info"></div>
-                        <div class="btns">
-                            <div id="filePickerBtn"></div>
-                            <div class="uploadBtn"><var id="lang_start_upload"></var></div>
-                        </div>
-                    </div>
-                    <div id="dndArea" class="placeholder">
-                        <div class="filePickerContainer">
-                            <div id="filePickerReady"></div>
-                        </div>
-                    </div>
-                    <ul class="filelist element-invisible">
-                        <li id="filePickerBlock" class="filePickerBlock"></li>
-                    </ul>
-                </div>
-            </div>
-
-            <!-- 鍦ㄧ嚎鍥剧墖 -->
-            <div id="online" class="panel">
-                <div id="fileList"><var id="lang_imgLoading"></var></div>
-            </div>
-
-        </div>
-    </div>
-    <script type="text/javascript" src="attachment.js"></script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/attachment/attachment.js b/server/public/ueditor/dialogs/attachment/attachment.js
deleted file mode 100644
index 30c3706..0000000
--- a/server/public/ueditor/dialogs/attachment/attachment.js
+++ /dev/null
@@ -1,760 +0,0 @@
-/**
- * User: Jinqn
- * Date: 14-04-08
- * Time: 涓嬪崍16:34
- * 涓婁紶鍥剧墖瀵硅瘽妗嗛�昏緫浠g爜,鍖呮嫭tab: 杩滅▼鍥剧墖/涓婁紶鍥剧墖/鍦ㄧ嚎鍥剧墖/鎼滅储鍥剧墖
- */
-
-(function () {
-
-    var uploadFile,
-        onlineFile;
-
-    window.onload = function () {
-        initTabs();
-        initButtons();
-    };
-
-    /* 鍒濆鍖杢ab鏍囩 */
-    function initTabs() {
-        var tabs = $G('tabhead').children;
-        for (var i = 0; i < tabs.length; i++) {
-            domUtils.on(tabs[i], "click", function (e) {
-                var target = e.target || e.srcElement;
-                setTabFocus(target.getAttribute('data-content-id'));
-            });
-        }
-
-        setTabFocus('upload');
-    }
-
-    /* 鍒濆鍖杢abbody */
-    function setTabFocus(id) {
-        if(!id) return;
-        var i, bodyId, tabs = $G('tabhead').children;
-        for (i = 0; i < tabs.length; i++) {
-            bodyId = tabs[i].getAttribute('data-content-id')
-            if (bodyId == id) {
-                domUtils.addClass(tabs[i], 'focus');
-                domUtils.addClass($G(bodyId), 'focus');
-            } else {
-                domUtils.removeClasses(tabs[i], 'focus');
-                domUtils.removeClasses($G(bodyId), 'focus');
-            }
-        }
-        switch (id) {
-            case 'upload':
-                uploadFile = uploadFile || new UploadFile('queueList');
-                break;
-            case 'online':
-                onlineFile = onlineFile || new OnlineFile('fileList');
-                break;
-        }
-    }
-
-    /* 鍒濆鍖杘nok浜嬩欢 */
-    function initButtons() {
-
-        dialog.onok = function () {
-            var list = [], id, tabs = $G('tabhead').children;
-            for (var i = 0; i < tabs.length; i++) {
-                if (domUtils.hasClass(tabs[i], 'focus')) {
-                    id = tabs[i].getAttribute('data-content-id');
-                    break;
-                }
-            }
-
-            switch (id) {
-                case 'upload':
-                    list = uploadFile.getInsertList();
-                    var count = uploadFile.getQueueCount();
-                    if (count) {
-                        $('.info', '#queueList').html('<span style="color:red;">' + '杩樻湁2涓湭涓婁紶鏂囦欢'.replace(/[\d]/, count) + '</span>');
-                        return false;
-                    }
-                    break;
-                case 'online':
-                    list = onlineFile.getInsertList();
-                    break;
-            }
-
-            editor.execCommand('insertfile', list);
-        };
-    }
-
-
-    /* 涓婁紶闄勪欢 */
-    function UploadFile(target) {
-        this.$wrap = target.constructor == String ? $('#' + target) : $(target);
-        this.init();
-    }
-    UploadFile.prototype = {
-        init: function () {
-            this.fileList = [];
-            this.initContainer();
-            this.initUploader();
-        },
-        initContainer: function () {
-            this.$queue = this.$wrap.find('.filelist');
-        },
-        /* 鍒濆鍖栧鍣� */
-        initUploader: function () {
-            var _this = this,
-                $ = jQuery,    // just in case. Make sure it's not an other libaray.
-                $wrap = _this.$wrap,
-            // 鍥剧墖瀹瑰櫒
-                $queue = $wrap.find('.filelist'),
-            // 鐘舵�佹爮锛屽寘鎷繘搴﹀拰鎺у埗鎸夐挳
-                $statusBar = $wrap.find('.statusBar'),
-            // 鏂囦欢鎬讳綋閫夋嫨淇℃伅銆�
-                $info = $statusBar.find('.info'),
-            // 涓婁紶鎸夐挳
-                $upload = $wrap.find('.uploadBtn'),
-            // 涓婁紶鎸夐挳
-                $filePickerBtn = $wrap.find('.filePickerBtn'),
-            // 涓婁紶鎸夐挳
-                $filePickerBlock = $wrap.find('.filePickerBlock'),
-            // 娌¢�夋嫨鏂囦欢涔嬪墠鐨勫唴瀹广��
-                $placeHolder = $wrap.find('.placeholder'),
-            // 鎬讳綋杩涘害鏉�
-                $progress = $statusBar.find('.progress').hide(),
-            // 娣诲姞鐨勬枃浠舵暟閲�
-                fileCount = 0,
-            // 娣诲姞鐨勬枃浠舵�诲ぇ灏�
-                fileSize = 0,
-            // 浼樺寲retina, 鍦╮etina涓嬭繖涓�兼槸2
-                ratio = window.devicePixelRatio || 1,
-            // 缂╃暐鍥惧ぇ灏�
-                thumbnailWidth = 113 * ratio,
-                thumbnailHeight = 113 * ratio,
-            // 鍙兘鏈塸edding, ready, uploading, confirm, done.
-                state = '',
-            // 鎵�鏈夋枃浠剁殑杩涘害淇℃伅锛宬ey涓篺ile id
-                percentages = {},
-                supportTransition = (function () {
-                    var s = document.createElement('p').style,
-                        r = 'transition' in s ||
-                            'WebkitTransition' in s ||
-                            'MozTransition' in s ||
-                            'msTransition' in s ||
-                            'OTransition' in s;
-                    s = null;
-                    return r;
-                })(),
-            // WebUploader瀹炰緥
-                uploader,
-                actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')),
-                fileMaxSize = editor.getOpt('fileMaxSize'),
-                acceptExtensions = (editor.getOpt('fileAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');;
-
-            if (!WebUploader.Uploader.support()) {
-                $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
-                return;
-            } else if (!editor.getOpt('fileActionName')) {
-                $('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
-                return;
-            }
-
-            uploader = _this.uploader = WebUploader.create({
-                pick: {
-                    id: '#filePickerReady',
-                    label: lang.uploadSelectFile
-                },
-                swf: '../../third-party/webuploader/Uploader.swf',
-                server: actionUrl,
-                fileVal: editor.getOpt('fileFieldName'),
-                duplicate: true,
-                fileSingleSizeLimit: fileMaxSize,
-                compress: false
-            });
-            uploader.addButton({
-                id: '#filePickerBlock'
-            });
-            uploader.addButton({
-                id: '#filePickerBtn',
-                label: lang.uploadAddFile
-            });
-
-            setState('pedding');
-
-            // 褰撴湁鏂囦欢娣诲姞杩涙潵鏃舵墽琛岋紝璐熻矗view鐨勫垱寤�
-            function addFile(file) {
-                var $li = $('<li id="' + file.id + '">' +
-                        '<p class="title">' + file.name + '</p>' +
-                        '<p class="imgWrap"></p>' +
-                        '<p class="progress"><span></span></p>' +
-                        '</li>'),
-
-                    $btns = $('<div class="file-panel">' +
-                        '<span class="cancel">' + lang.uploadDelete + '</span>' +
-                        '<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
-                        '<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
-                    $prgress = $li.find('p.progress span'),
-                    $wrap = $li.find('p.imgWrap'),
-                    $info = $('<p class="error"></p>').hide().appendTo($li),
-
-                    showError = function (code) {
-                        switch (code) {
-                            case 'exceed_size':
-                                text = lang.errorExceedSize;
-                                break;
-                            case 'interrupt':
-                                text = lang.errorInterrupt;
-                                break;
-                            case 'http':
-                                text = lang.errorHttp;
-                                break;
-                            case 'not_allow_type':
-                                text = lang.errorFileType;
-                                break;
-                            default:
-                                text = lang.errorUploadRetry;
-                                break;
-                        }
-                        $info.text(text).show();
-                    };
-
-                if (file.getStatus() === 'invalid') {
-                    showError(file.statusText);
-                } else {
-                    $wrap.text(lang.uploadPreview);
-                    if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) {
-                        $wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
-                        '<span class="file-title" title="' + file.name + '">' + file.name + '</span>');
-                    } else {
-                        if (browser.ie && browser.version <= 7) {
-                            $wrap.text(lang.uploadNoPreview);
-                        } else {
-                            uploader.makeThumb(file, function (error, src) {
-                                if (error || !src) {
-                                    $wrap.text(lang.uploadNoPreview);
-                                } else {
-                                    var $img = $('<img src="' + src + '">');
-                                    $wrap.empty().append($img);
-                                    $img.on('error', function () {
-                                        $wrap.text(lang.uploadNoPreview);
-                                    });
-                                }
-                            }, thumbnailWidth, thumbnailHeight);
-                        }
-                    }
-                    percentages[ file.id ] = [ file.size, 0 ];
-                    file.rotation = 0;
-
-                    /* 妫�鏌ユ枃浠舵牸寮� */
-                    if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
-                        showError('not_allow_type');
-                        uploader.removeFile(file);
-                    }
-                }
-
-                file.on('statuschange', function (cur, prev) {
-                    if (prev === 'progress') {
-                        $prgress.hide().width(0);
-                    } else if (prev === 'queued') {
-                        $li.off('mouseenter mouseleave');
-                        $btns.remove();
-                    }
-                    // 鎴愬姛
-                    if (cur === 'error' || cur === 'invalid') {
-                        showError(file.statusText);
-                        percentages[ file.id ][ 1 ] = 1;
-                    } else if (cur === 'interrupt') {
-                        showError('interrupt');
-                    } else if (cur === 'queued') {
-                        percentages[ file.id ][ 1 ] = 0;
-                    } else if (cur === 'progress') {
-                        $info.hide();
-                        $prgress.css('display', 'block');
-                    } else if (cur === 'complete') {
-                    }
-
-                    $li.removeClass('state-' + prev).addClass('state-' + cur);
-                });
-
-                $li.on('mouseenter', function () {
-                    $btns.stop().animate({height: 30});
-                });
-                $li.on('mouseleave', function () {
-                    $btns.stop().animate({height: 0});
-                });
-
-                $btns.on('click', 'span', function () {
-                    var index = $(this).index(),
-                        deg;
-
-                    switch (index) {
-                        case 0:
-                            uploader.removeFile(file);
-                            return;
-                        case 1:
-                            file.rotation += 90;
-                            break;
-                        case 2:
-                            file.rotation -= 90;
-                            break;
-                    }
-
-                    if (supportTransition) {
-                        deg = 'rotate(' + file.rotation + 'deg)';
-                        $wrap.css({
-                            '-webkit-transform': deg,
-                            '-mos-transform': deg,
-                            '-o-transform': deg,
-                            'transform': deg
-                        });
-                    } else {
-                        $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
-                    }
-
-                });
-
-                $li.insertBefore($filePickerBlock);
-            }
-
-            // 璐熻矗view鐨勯攢姣�
-            function removeFile(file) {
-                var $li = $('#' + file.id);
-                delete percentages[ file.id ];
-                updateTotalProgress();
-                $li.off().find('.file-panel').off().end().remove();
-            }
-
-            function updateTotalProgress() {
-                var loaded = 0,
-                    total = 0,
-                    spans = $progress.children(),
-                    percent;
-
-                $.each(percentages, function (k, v) {
-                    total += v[ 0 ];
-                    loaded += v[ 0 ] * v[ 1 ];
-                });
-
-                percent = total ? loaded / total : 0;
-
-                spans.eq(0).text(Math.round(percent * 100) + '%');
-                spans.eq(1).css('width', Math.round(percent * 100) + '%');
-                updateStatus();
-            }
-
-            function setState(val, files) {
-
-                if (val != state) {
-
-                    var stats = uploader.getStats();
-
-                    $upload.removeClass('state-' + state);
-                    $upload.addClass('state-' + val);
-
-                    switch (val) {
-
-                        /* 鏈�夋嫨鏂囦欢 */
-                        case 'pedding':
-                            $queue.addClass('element-invisible');
-                            $statusBar.addClass('element-invisible');
-                            $placeHolder.removeClass('element-invisible');
-                            $progress.hide(); $info.hide();
-                            uploader.refresh();
-                            break;
-
-                        /* 鍙互寮�濮嬩笂浼� */
-                        case 'ready':
-                            $placeHolder.addClass('element-invisible');
-                            $queue.removeClass('element-invisible');
-                            $statusBar.removeClass('element-invisible');
-                            $progress.hide(); $info.show();
-                            $upload.text(lang.uploadStart);
-                            uploader.refresh();
-                            break;
-
-                        /* 涓婁紶涓� */
-                        case 'uploading':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadPause);
-                            break;
-
-                        /* 鏆傚仠涓婁紶 */
-                        case 'paused':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadContinue);
-                            break;
-
-                        case 'confirm':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadStart);
-
-                            stats = uploader.getStats();
-                            if (stats.successNum && !stats.uploadFailNum) {
-                                setState('finish');
-                                return;
-                            }
-                            break;
-
-                        case 'finish':
-                            $progress.hide(); $info.show();
-                            if (stats.uploadFailNum) {
-                                $upload.text(lang.uploadRetry);
-                            } else {
-                                $upload.text(lang.uploadStart);
-                            }
-                            break;
-                    }
-
-                    state = val;
-                    updateStatus();
-
-                }
-
-                if (!_this.getQueueCount()) {
-                    $upload.addClass('disabled')
-                } else {
-                    $upload.removeClass('disabled')
-                }
-
-            }
-
-            function updateStatus() {
-                var text = '', stats;
-
-                if (state === 'ready') {
-                    text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
-                } else if (state === 'confirm') {
-                    stats = uploader.getStats();
-                    if (stats.uploadFailNum) {
-                        text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
-                    }
-                } else {
-                    stats = uploader.getStats();
-                    text = lang.updateStatusFinish.replace('_', fileCount).
-                        replace('_KB', WebUploader.formatSize(fileSize)).
-                        replace('_', stats.successNum);
-
-                    if (stats.uploadFailNum) {
-                        text += lang.updateStatusError.replace('_', stats.uploadFailNum);
-                    }
-                }
-
-                $info.html(text);
-            }
-
-            uploader.on('fileQueued', function (file) {
-                fileCount++;
-                fileSize += file.size;
-
-                if (fileCount === 1) {
-                    $placeHolder.addClass('element-invisible');
-                    $statusBar.show();
-                }
-
-                addFile(file);
-            });
-
-            uploader.on('fileDequeued', function (file) {
-                fileCount--;
-                fileSize -= file.size;
-
-                removeFile(file);
-                updateTotalProgress();
-            });
-
-            uploader.on('filesQueued', function (file) {
-                if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
-                    setState('ready');
-                }
-                updateTotalProgress();
-            });
-
-            uploader.on('all', function (type, files) {
-                switch (type) {
-                    case 'uploadFinished':
-                        setState('confirm', files);
-                        break;
-                    case 'startUpload':
-                        /* 娣诲姞棰濆鐨凣ET鍙傛暟 */
-                        var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-                            url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params);
-                        uploader.option('server', url);
-                        setState('uploading', files);
-                        break;
-                    case 'stopUpload':
-                        setState('paused', files);
-                        break;
-                }
-            });
-
-            uploader.on('uploadBeforeSend', function (file, data, header) {
-                //杩欓噷鍙互閫氳繃data瀵硅薄娣诲姞POST鍙傛暟
-                header['X_Requested_With'] = 'XMLHttpRequest';
-                // HaoChuan9421
-                if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){
-                    for(var key in editor.options.headers){
-                        header[key] = editor.options.headers[key]
-                    }
-                }
-            });
-
-            uploader.on('uploadProgress', function (file, percentage) {
-                var $li = $('#' + file.id),
-                    $percent = $li.find('.progress span');
-
-                $percent.css('width', percentage * 100 + '%');
-                percentages[ file.id ][ 1 ] = percentage;
-                updateTotalProgress();
-            });
-
-            uploader.on('uploadSuccess', function (file, ret) {
-                var $file = $('#' + file.id);
-                try {
-                    var responseText = (ret._raw || ret),
-                        json = utils.str2json(responseText);
-                    if (json.state == 'SUCCESS') {
-                        _this.fileList.push(json);
-                        $file.append('<span class="success"></span>');
-                    } else {
-                        $file.find('.error').text(json.state).show();
-                    }
-                } catch (e) {
-                    $file.find('.error').text(lang.errorServerUpload).show();
-                }
-            });
-
-            uploader.on('uploadError', function (file, code) {
-            });
-            uploader.on('error', function (code, file) {
-                if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
-                    addFile(file);
-                }
-            });
-            uploader.on('uploadComplete', function (file, ret) {
-            });
-
-            $upload.on('click', function () {
-                if ($(this).hasClass('disabled')) {
-                    return false;
-                }
-
-                if (state === 'ready') {
-                    uploader.upload();
-                } else if (state === 'paused') {
-                    uploader.upload();
-                } else if (state === 'uploading') {
-                    uploader.stop();
-                }
-            });
-
-            $upload.addClass('state-' + state);
-            updateTotalProgress();
-        },
-        getQueueCount: function () {
-            var file, i, status, readyFile = 0, files = this.uploader.getFiles();
-            for (i = 0; file = files[i++]; ) {
-                status = file.getStatus();
-                if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
-            }
-            return readyFile;
-        },
-        getInsertList: function () {
-            var i, link, data, list = [],
-                prefix = editor.getOpt('fileUrlPrefix');
-            for (i = 0; i < this.fileList.length; i++) {
-                data = this.fileList[i];
-                link = data.url;
-                list.push({
-                    title: data.original || link.substr(link.lastIndexOf('/') + 1),
-                    url: prefix + link
-                });
-            }
-            return list;
-        }
-    };
-
-
-    /* 鍦ㄧ嚎闄勪欢 */
-    function OnlineFile(target) {
-        this.container = utils.isString(target) ? document.getElementById(target) : target;
-        this.init();
-    }
-    OnlineFile.prototype = {
-        init: function () {
-            this.initContainer();
-            this.initEvents();
-            this.initData();
-        },
-        /* 鍒濆鍖栧鍣� */
-        initContainer: function () {
-            this.container.innerHTML = '';
-            this.list = document.createElement('ul');
-            this.clearFloat = document.createElement('li');
-
-            domUtils.addClass(this.list, 'list');
-            domUtils.addClass(this.clearFloat, 'clearFloat');
-
-            this.list.appendChild(this.clearFloat);
-            this.container.appendChild(this.list);
-        },
-        /* 鍒濆鍖栨粴鍔ㄤ簨浠�,婊氬姩鍒板湴姝ヨ嚜鍔ㄦ媺鍙栨暟鎹� */
-        initEvents: function () {
-            var _this = this;
-
-            /* 婊氬姩鎷夊彇鍥剧墖 */
-            domUtils.on($G('fileList'), 'scroll', function(e){
-                var panel = this;
-                if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
-                    _this.getFileData();
-                }
-            });
-            /* 閫変腑鍥剧墖 */
-            domUtils.on(this.list, 'click', function (e) {
-                var target = e.target || e.srcElement,
-                    li = target.parentNode;
-
-                if (li.tagName.toLowerCase() == 'li') {
-                    if (domUtils.hasClass(li, 'selected')) {
-                        domUtils.removeClasses(li, 'selected');
-                    } else {
-                        domUtils.addClass(li, 'selected');
-                    }
-                }
-            });
-        },
-        /* 鍒濆鍖栫涓�娆$殑鏁版嵁 */
-        initData: function () {
-
-            /* 鎷夊彇鏁版嵁闇�瑕佷娇鐢ㄧ殑鍊� */
-            this.state = 0;
-            this.listSize = editor.getOpt('fileManagerListSize');
-            this.listIndex = 0;
-            this.listEnd = false;
-
-            /* 绗竴娆℃媺鍙栨暟鎹� */
-            this.getFileData();
-        },
-        /* 鍚戝悗鍙版媺鍙栧浘鐗囧垪琛ㄦ暟鎹� */
-        getFileData: function () {
-            var _this = this;
-
-            if(!_this.listEnd && !this.isLoadingData) {
-                this.isLoadingData = true;
-                ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), {
-                    timeout: 100000,
-                    data: utils.extend({
-                            start: this.listIndex,
-                            size: this.listSize
-                        }, editor.queryCommandValue('serverparam')),
-                    method: 'get',
-                    onsuccess: function (r) {
-                        try {
-                            var json = eval('(' + r.responseText + ')');
-                            if (json.state == 'SUCCESS') {
-                                _this.pushData(json.list);
-                                _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
-                                if(_this.listIndex >= json.total) {
-                                    _this.listEnd = true;
-                                }
-                                _this.isLoadingData = false;
-                            }
-                        } catch (e) {
-                            if(r.responseText.indexOf('ue_separate_ue') != -1) {
-                                var list = r.responseText.split(r.responseText);
-                                _this.pushData(list);
-                                _this.listIndex = parseInt(list.length);
-                                _this.listEnd = true;
-                                _this.isLoadingData = false;
-                            }
-                        }
-                    },
-                    onerror: function () {
-                        _this.isLoadingData = false;
-                    }
-                });
-            }
-        },
-        /* 娣诲姞鍥剧墖鍒板垪琛ㄧ晫闈笂 */
-        pushData: function (list) {
-            var i, item, img, filetype, preview, icon, _this = this,
-                urlPrefix = editor.getOpt('fileManagerUrlPrefix');
-            for (i = 0; i < list.length; i++) {
-                if(list[i] && list[i].url) {
-                    item = document.createElement('li');
-                    icon = document.createElement('span');
-                    filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1);
-
-                    if ( "png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1 ) {
-                        preview = document.createElement('img');
-                        domUtils.on(preview, 'load', (function(image){
-                            return function(){
-                                _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
-                            };
-                        })(preview));
-                        preview.width = 113;
-                        preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) );
-                    } else {
-                        var ic = document.createElement('i'),
-                            textSpan = document.createElement('span');
-                        textSpan.innerHTML = list[i].url.substr(list[i].url.lastIndexOf('/') + 1);
-                        preview = document.createElement('div');
-                        preview.appendChild(ic);
-                        preview.appendChild(textSpan);
-                        domUtils.addClass(preview, 'file-wrapper');
-                        domUtils.addClass(textSpan, 'file-title');
-                        domUtils.addClass(ic, 'file-type-' + filetype);
-                        domUtils.addClass(ic, 'file-preview');
-                    }
-                    domUtils.addClass(icon, 'icon');
-                    item.setAttribute('data-url', urlPrefix + list[i].url);
-                    if (list[i].original) {
-                        item.setAttribute('data-title', list[i].original);
-                    }
-
-                    item.appendChild(preview);
-                    item.appendChild(icon);
-                    this.list.insertBefore(item, this.clearFloat);
-                }
-            }
-        },
-        /* 鏀瑰彉鍥剧墖澶у皬 */
-        scale: function (img, w, h, type) {
-            var ow = img.width,
-                oh = img.height;
-
-            if (type == 'justify') {
-                if (ow >= oh) {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            } else {
-                if (ow >= oh) {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            }
-        },
-        getInsertList: function () {
-            var i, lis = this.list.children, list = [];
-            for (i = 0; i < lis.length; i++) {
-                if (domUtils.hasClass(lis[i], 'selected')) {
-                    var url = lis[i].getAttribute('data-url');
-                    var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1);
-                    list.push({
-                        title: title,
-                        url: url
-                    });
-                }
-            }
-            return list;
-        }
-    };
-
-
-})();
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif
deleted file mode 100644
index 9ca4fb6..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_chm.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_default.png b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_default.png
deleted file mode 100644
index 50ac1cb..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_default.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif
deleted file mode 100644
index 206fede..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_doc.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif
deleted file mode 100644
index 2e3b7a2..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_exe.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif
deleted file mode 100644
index 5d5dec0..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_jpg.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
deleted file mode 100644
index b351a1f..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif
deleted file mode 100644
index 26019b0..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_mv.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
deleted file mode 100644
index bbb65c8..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif
deleted file mode 100644
index ccb26fb..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_ppt.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif
deleted file mode 100644
index 2e8743a..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_psd.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif
deleted file mode 100644
index 5359e46..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_rar.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif
deleted file mode 100644
index e7b8dd2..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_txt.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif b/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif
deleted file mode 100644
index e86c1c6..0000000
--- a/server/public/ueditor/dialogs/attachment/fileTypeImages/icon_xls.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/alignicon.gif b/server/public/ueditor/dialogs/attachment/images/alignicon.gif
deleted file mode 100644
index 005a5ac..0000000
--- a/server/public/ueditor/dialogs/attachment/images/alignicon.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/alignicon.png b/server/public/ueditor/dialogs/attachment/images/alignicon.png
deleted file mode 100644
index 4b6c444..0000000
--- a/server/public/ueditor/dialogs/attachment/images/alignicon.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/bg.png b/server/public/ueditor/dialogs/attachment/images/bg.png
deleted file mode 100644
index 580be0a..0000000
--- a/server/public/ueditor/dialogs/attachment/images/bg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/file-icons.gif b/server/public/ueditor/dialogs/attachment/images/file-icons.gif
deleted file mode 100644
index d8c02c2..0000000
--- a/server/public/ueditor/dialogs/attachment/images/file-icons.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/file-icons.png b/server/public/ueditor/dialogs/attachment/images/file-icons.png
deleted file mode 100644
index 3ff82c8..0000000
--- a/server/public/ueditor/dialogs/attachment/images/file-icons.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/icons.gif b/server/public/ueditor/dialogs/attachment/images/icons.gif
deleted file mode 100644
index 78459de..0000000
--- a/server/public/ueditor/dialogs/attachment/images/icons.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/icons.png b/server/public/ueditor/dialogs/attachment/images/icons.png
deleted file mode 100644
index 12e4700..0000000
--- a/server/public/ueditor/dialogs/attachment/images/icons.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/image.png b/server/public/ueditor/dialogs/attachment/images/image.png
deleted file mode 100644
index 19699f6..0000000
--- a/server/public/ueditor/dialogs/attachment/images/image.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/progress.png b/server/public/ueditor/dialogs/attachment/images/progress.png
deleted file mode 100644
index 717c486..0000000
--- a/server/public/ueditor/dialogs/attachment/images/progress.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/success.gif b/server/public/ueditor/dialogs/attachment/images/success.gif
deleted file mode 100644
index 8d4f311..0000000
--- a/server/public/ueditor/dialogs/attachment/images/success.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/attachment/images/success.png b/server/public/ueditor/dialogs/attachment/images/success.png
deleted file mode 100644
index 94f968d..0000000
--- a/server/public/ueditor/dialogs/attachment/images/success.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/background/background.css b/server/public/ueditor/dialogs/background/background.css
deleted file mode 100644
index 43200aa..0000000
--- a/server/public/ueditor/dialogs/background/background.css
+++ /dev/null
@@ -1,94 +0,0 @@
-.wrapper{ width: 424px;margin: 10px auto; zoom:1;position: relative}
-.tabbody{height:225px;}
-.tabbody .panel { position: absolute;width:100%; height:100%;background: #fff; display: none;}
-.tabbody .focus { display: block;}
-
-body{font-size: 12px;color: #888;overflow: hidden;}
-input,label{vertical-align:middle}
-.clear{clear: both;}
-.pl{padding-left: 18px;padding-left: 23px\9;}
-
-#imageList {width: 420px;height: 215px;margin-top: 10px;overflow: hidden;overflow-y: auto;}
-#imageList div {float: left;width: 100px;height: 95px;margin: 5px 10px;}
-#imageList img {cursor: pointer;border: 2px solid white;}
-
-.bgarea{margin: 10px;padding: 5px;height: 84%;border: 1px solid #A8A297;}
-.content div{margin: 10px 0 10px 5px;}
-.content .iptradio{margin: 0px 5px 5px 0px;}
-.txt{width:280px;}
-
-.wrapcolor{height: 19px;}
-div.color{float: left;margin: 0;}
-#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;margin: 0;float: left;}
-div.alignment,#custom{margin-left: 23px;margin-left: 28px\9;}
-#custom input{height: 15px;min-height: 15px;width:20px;}
-#repeatType{width:100px;}
-
-
-/* 鍥剧墖绠$悊鏍峰紡 */
-#imgManager {
-    width: 100%;
-    height: 225px;
-}
-#imgManager #imageList{
-    width: 100%;
-    overflow-x: hidden;
-    overflow-y: auto;
-}
-#imgManager ul {
-    display: block;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-#imgManager li {
-    float: left;
-    display: block;
-    list-style: none;
-    padding: 0;
-    width: 113px;
-    height: 113px;
-    margin: 9px 0 0 19px;
-    background-color: #eee;
-    overflow: hidden;
-    cursor: pointer;
-    position: relative;
-}
-#imgManager li.clearFloat {
-    float: none;
-    clear: both;
-    display: block;
-    width:0;
-    height:0;
-    margin: 0;
-    padding: 0;
-}
-#imgManager li img {
-    cursor: pointer;
-}
-#imgManager li .icon {
-    cursor: pointer;
-    width: 113px;
-    height: 113px;
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 2;
-    border: 0;
-    background-repeat: no-repeat;
-}
-#imgManager li .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-}
-#imgManager li.selected .icon {
-    background-image: url(images/success.png);
-    background-position: 75px 75px;
-}
-#imgManager li.selected .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-    background-position: 72px 72px;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/background/background.html b/server/public/ueditor/dialogs/background/background.html
deleted file mode 100644
index 8def8a7..0000000
--- a/server/public/ueditor/dialogs/background/background.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="background.css">
-</head>
-<body>
-    <div id="bg_container" class="wrapper">
-        <div id="tabHeads" class="tabhead">
-            <span class="focus" data-content-id="normal"><var id="lang_background_normal"></var></span>
-            <span class="" data-content-id="imgManager"><var id="lang_background_local"></var></span>
-        </div>
-        <div id="tabBodys" class="tabbody">
-            <div id="normal" class="panel focus">
-                <fieldset class="bgarea">
-                    <legend><var id="lang_background_set"></var></legend>
-                    <div class="content">
-                        <div>
-                            <label><input id="nocolorRadio" class="iptradio" type="radio" name="t" value="none" checked="checked"><var id="lang_background_none"></var></label>
-                            <label><input id="coloredRadio" class="iptradio" type="radio" name="t" value="color"><var id="lang_background_colored"></var></label>
-                        </div>
-                        <div class="wrapcolor pl">
-                            <div class="color">
-                                <var id="lang_background_color"></var>:
-                            </div>
-                            <div id="colorPicker"></div>
-                            <div class="clear"></div>
-                        </div>
-                        <div class="wrapcolor pl">
-                            <label><var id="lang_background_netimg"></var>:</label><input class="txt" type="text" id="url">
-                        </div>
-                        <div id="alignment" class="alignment">
-                            <var id="lang_background_align"></var>:<select id="repeatType">
-                                <option value="center"></option>
-                                <option value="repeat-x"></option>
-                                <option value="repeat-y"></option>
-                                <option value="repeat"></option>
-                                <option value="self"></option>
-                            </select>
-                        </div>
-                        <div id="custom" >
-                            <var id="lang_background_position"></var>:x:<input type="text" size="1" id="x" maxlength="4" value="0">px&nbsp;&nbsp;y:<input type="text" size="1" id="y" maxlength="4" value="0">px
-                        </div>
-                    </div>
-                </fieldset>
-
-            </div>
-            <div id="imgManager" class="panel">
-                <div id="imageList" style=""></div>
-            </div>
-        </div>
-    </div>
-    <script type="text/javascript" src="background.js"></script>
-</body>
-</html>
diff --git a/server/public/ueditor/dialogs/background/background.js b/server/public/ueditor/dialogs/background/background.js
deleted file mode 100644
index 9d63bad..0000000
--- a/server/public/ueditor/dialogs/background/background.js
+++ /dev/null
@@ -1,376 +0,0 @@
-(function () {
-
-    var onlineImage,
-        backupStyle = editor.queryCommandValue('background');
-
-    window.onload = function () {
-        initTabs();
-        initColorSelector();
-    };
-
-    /* 鍒濆鍖杢ab鏍囩 */
-    function initTabs(){
-        var tabs = $G('tabHeads').children;
-        for (var i = 0; i < tabs.length; i++) {
-            domUtils.on(tabs[i], "click", function (e) {
-                var target = e.target || e.srcElement;
-                for (var j = 0; j < tabs.length; j++) {
-                    if(tabs[j] == target){
-                        tabs[j].className = "focus";
-                        var contentId = tabs[j].getAttribute('data-content-id');
-                        $G(contentId).style.display = "block";
-                        if(contentId == 'imgManager') {
-                            initImagePanel();
-                        }
-                    }else {
-                        tabs[j].className = "";
-                        $G(tabs[j].getAttribute('data-content-id')).style.display = "none";
-                    }
-                }
-            });
-        }
-    }
-
-    /* 鍒濆鍖栭鑹茶缃� */
-    function initColorSelector () {
-        var obj = editor.queryCommandValue('background');
-        if (obj) {
-            var color = obj['background-color'],
-                repeat = obj['background-repeat'] || 'repeat',
-                image = obj['background-image'] || '',
-                position = obj['background-position'] || 'center center',
-                pos = position.split(' '),
-                x = parseInt(pos[0]) || 0,
-                y = parseInt(pos[1]) || 0;
-
-            if(repeat == 'no-repeat' && (x || y)) repeat = 'self';
-
-            image = image.match(/url[\s]*\(([^\)]*)\)/);
-            image = image ? image[1]:'';
-            updateFormState('colored', color, image, repeat, x, y);
-        } else {
-            updateFormState();
-        }
-
-        var updateHandler = function () {
-            updateFormState();
-            updateBackground();
-        }
-        domUtils.on($G('nocolorRadio'), 'click', updateBackground);
-        domUtils.on($G('coloredRadio'), 'click', updateHandler);
-        domUtils.on($G('url'), 'keyup', function(){
-            if($G('url').value && $G('alignment').style.display == "none") {
-                utils.each($G('repeatType').children, function(item){
-                    item.selected = ('repeat' == item.getAttribute('value') ? 'selected':false);
-                });
-            }
-            updateHandler();
-        });
-        domUtils.on($G('repeatType'), 'change', updateHandler);
-        domUtils.on($G('x'), 'keyup', updateBackground);
-        domUtils.on($G('y'), 'keyup', updateBackground);
-
-        initColorPicker();
-    }
-
-    /* 鍒濆鍖栭鑹查�夋嫨鍣� */
-    function initColorPicker() {
-        var me = editor,
-            cp = $G("colorPicker");
-
-        /* 鐢熸垚棰滆壊閫夋嫨鍣╱i瀵硅薄 */
-        var popup = new UE.ui.Popup({
-            content: new UE.ui.ColorPicker({
-                noColorText: me.getLang("clearColor"),
-                editor: me,
-                onpickcolor: function (t, color) {
-                    updateFormState('colored', color);
-                    updateBackground();
-                    UE.ui.Popup.postHide();
-                },
-                onpicknocolor: function (t, color) {
-                    updateFormState('colored', 'transparent');
-                    updateBackground();
-                    UE.ui.Popup.postHide();
-                }
-            }),
-            editor: me,
-            onhide: function () {
-            }
-        });
-
-        /* 璁剧疆棰滆壊閫夋嫨鍣� */
-        domUtils.on(cp, "click", function () {
-            popup.showAnchor(this);
-        });
-        domUtils.on(document, 'mousedown', function (evt) {
-            var el = evt.target || evt.srcElement;
-            UE.ui.Popup.postHide(el);
-        });
-        domUtils.on(window, 'scroll', function () {
-            UE.ui.Popup.postHide();
-        });
-    }
-
-    /* 鍒濆鍖栧湪绾垮浘鐗囧垪琛� */
-    function initImagePanel() {
-        onlineImage = onlineImage || new OnlineImage('imageList');
-    }
-
-    /* 鏇存柊鑳屾櫙鑹茶缃潰鏉� */
-    function updateFormState (radio, color, url, align, x, y) {
-        var nocolorRadio = $G('nocolorRadio'),
-            coloredRadio = $G('coloredRadio');
-
-        if(radio) {
-            nocolorRadio.checked = (radio == 'colored' ? false:'checked');
-            coloredRadio.checked = (radio == 'colored' ? 'checked':false);
-        }
-        if(color) {
-            domUtils.setStyle($G("colorPicker"), "background-color", color);
-        }
-
-        if(url && /^\//.test(url)) {
-            var a = document.createElement('a');
-            a.href = url;
-            browser.ie && (a.href = a.href);
-            url = browser.ie ? a.href:(a.protocol + '//' + a.host + a.pathname + a.search + a.hash);
-        }
-
-        if(url || url === '') {
-            $G('url').value = url;
-        }
-        if(align) {
-            utils.each($G('repeatType').children, function(item){
-                item.selected = (align == item.getAttribute('value') ? 'selected':false);
-            });
-        }
-        if(x || y) {
-            $G('x').value = parseInt(x) || 0;
-            $G('y').value = parseInt(y) || 0;
-        }
-
-        $G('alignment').style.display = coloredRadio.checked && $G('url').value ? '':'none';
-        $G('custom').style.display = coloredRadio.checked && $G('url').value && $G('repeatType').value == 'self' ? '':'none';
-    }
-
-    /* 鏇存柊鑳屾櫙棰滆壊 */
-    function updateBackground () {
-        if ($G('coloredRadio').checked) {
-            var color = domUtils.getStyle($G("colorPicker"), "background-color"),
-                bgimg = $G("url").value,
-                align = $G("repeatType").value,
-                backgroundObj = {
-                    "background-repeat": "no-repeat",
-                    "background-position": "center center"
-                };
-
-            if (color) backgroundObj["background-color"] = color;
-            if (bgimg) backgroundObj["background-image"] = 'url(' + bgimg + ')';
-            if (align == 'self') {
-                backgroundObj["background-position"] = $G("x").value + "px " + $G("y").value + "px";
-            } else if (align == 'repeat-x' || align == 'repeat-y' || align == 'repeat') {
-                backgroundObj["background-repeat"] = align;
-            }
-
-            editor.execCommand('background', backgroundObj);
-        } else {
-            editor.execCommand('background', null);
-        }
-    }
-
-
-    /* 鍦ㄧ嚎鍥剧墖 */
-    function OnlineImage(target) {
-        this.container = utils.isString(target) ? document.getElementById(target) : target;
-        this.init();
-    }
-    OnlineImage.prototype = {
-        init: function () {
-            this.reset();
-            this.initEvents();
-        },
-        /* 鍒濆鍖栧鍣� */
-        initContainer: function () {
-            this.container.innerHTML = '';
-            this.list = document.createElement('ul');
-            this.clearFloat = document.createElement('li');
-
-            domUtils.addClass(this.list, 'list');
-            domUtils.addClass(this.clearFloat, 'clearFloat');
-
-            this.list.id = 'imageListUl';
-            this.list.appendChild(this.clearFloat);
-            this.container.appendChild(this.list);
-        },
-        /* 鍒濆鍖栨粴鍔ㄤ簨浠�,婊氬姩鍒板湴姝ヨ嚜鍔ㄦ媺鍙栨暟鎹� */
-        initEvents: function () {
-            var _this = this;
-
-            /* 婊氬姩鎷夊彇鍥剧墖 */
-            domUtils.on($G('imageList'), 'scroll', function(e){
-                var panel = this;
-                if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
-                    _this.getImageData();
-                }
-            });
-            /* 閫変腑鍥剧墖 */
-            domUtils.on(this.container, 'click', function (e) {
-                var target = e.target || e.srcElement,
-                    li = target.parentNode,
-                    nodes = $G('imageListUl').childNodes;
-
-                if (li.tagName.toLowerCase() == 'li') {
-                    updateFormState('nocolor', null, '');
-                    for (var i = 0, node; node = nodes[i++];) {
-                        if (node == li && !domUtils.hasClass(node, 'selected')) {
-                            domUtils.addClass(node, 'selected');
-                            updateFormState('colored', null, li.firstChild.getAttribute("_src"), 'repeat');
-                        } else {
-                            domUtils.removeClasses(node, 'selected');
-                        }
-                    }
-                    updateBackground();
-                }
-            });
-        },
-        /* 鍒濆鍖栫涓�娆$殑鏁版嵁 */
-        initData: function () {
-
-            /* 鎷夊彇鏁版嵁闇�瑕佷娇鐢ㄧ殑鍊� */
-            this.state = 0;
-            this.listSize = editor.getOpt('imageManagerListSize');
-            this.listIndex = 0;
-            this.listEnd = false;
-
-            /* 绗竴娆℃媺鍙栨暟鎹� */
-            this.getImageData();
-        },
-        /* 閲嶇疆鐣岄潰 */
-        reset: function() {
-            this.initContainer();
-            this.initData();
-        },
-        /* 鍚戝悗鍙版媺鍙栧浘鐗囧垪琛ㄦ暟鎹� */
-        getImageData: function () {
-            var _this = this;
-
-            if(!_this.listEnd && !this.isLoadingData) {
-                this.isLoadingData = true;
-                var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')),
-                    isJsonp = utils.isCrossDomainUrl(url);
-                ajax.request(url, {
-                    'timeout': 100000,
-                    'dataType': isJsonp ? 'jsonp':'',
-                    'data': utils.extend({
-                            start: this.listIndex,
-                            size: this.listSize
-                        }, editor.queryCommandValue('serverparam')),
-                    'method': 'get',
-                    'onsuccess': function (r) {
-                        try {
-                            var json = isJsonp ? r:eval('(' + r.responseText + ')');
-                            if (json.state == 'SUCCESS') {
-                                _this.pushData(json.list);
-                                _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
-                                if(_this.listIndex >= json.total) {
-                                    _this.listEnd = true;
-                                }
-                                _this.isLoadingData = false;
-                            }
-                        } catch (e) {
-                            if(r.responseText.indexOf('ue_separate_ue') != -1) {
-                                var list = r.responseText.split(r.responseText);
-                                _this.pushData(list);
-                                _this.listIndex = parseInt(list.length);
-                                _this.listEnd = true;
-                                _this.isLoadingData = false;
-                            }
-                        }
-                    },
-                    'onerror': function () {
-                        _this.isLoadingData = false;
-                    }
-                });
-            }
-        },
-        /* 娣诲姞鍥剧墖鍒板垪琛ㄧ晫闈笂 */
-        pushData: function (list) {
-            var i, item, img, icon, _this = this,
-                urlPrefix = editor.getOpt('imageManagerUrlPrefix');
-            for (i = 0; i < list.length; i++) {
-                if(list[i] && list[i].url) {
-                    item = document.createElement('li');
-                    img = document.createElement('img');
-                    icon = document.createElement('span');
-
-                    domUtils.on(img, 'load', (function(image){
-                        return function(){
-                            _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
-                        }
-                    })(img));
-                    img.width = 113;
-                    img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) );
-                    img.setAttribute('_src', urlPrefix + list[i].url);
-                    domUtils.addClass(icon, 'icon');
-
-                    item.appendChild(img);
-                    item.appendChild(icon);
-                    this.list.insertBefore(item, this.clearFloat);
-                }
-            }
-        },
-        /* 鏀瑰彉鍥剧墖澶у皬 */
-        scale: function (img, w, h, type) {
-            var ow = img.width,
-                oh = img.height;
-
-            if (type == 'justify') {
-                if (ow >= oh) {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            } else {
-                if (ow >= oh) {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            }
-        },
-        getInsertList: function () {
-            var i, lis = this.list.children, list = [], align = getAlign();
-            for (i = 0; i < lis.length; i++) {
-                if (domUtils.hasClass(lis[i], 'selected')) {
-                    var img = lis[i].firstChild,
-                        src = img.getAttribute('_src');
-                    list.push({
-                        src: src,
-                        _src: src,
-                        floatStyle: align
-                    });
-                }
-
-            }
-            return list;
-        }
-    };
-
-    dialog.onok = function () {
-        updateBackground();
-        editor.fireEvent('saveScene');
-    };
-    dialog.oncancel = function () {
-        editor.execCommand('background', backupStyle);
-    };
-
-})();
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/background/images/bg.png b/server/public/ueditor/dialogs/background/images/bg.png
deleted file mode 100644
index 580be0a..0000000
--- a/server/public/ueditor/dialogs/background/images/bg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/background/images/success.png b/server/public/ueditor/dialogs/background/images/success.png
deleted file mode 100644
index 94f968d..0000000
--- a/server/public/ueditor/dialogs/background/images/success.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/charts/chart.config.js b/server/public/ueditor/dialogs/charts/chart.config.js
deleted file mode 100644
index 6483c96..0000000
--- a/server/public/ueditor/dialogs/charts/chart.config.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 鍥捐〃閰嶇疆鏂囦欢
- * */
-
-
-//涓嶅悓绫诲瀷鐨勯厤缃�
-var typeConfig = [
-    {
-        chart: {
-            type: 'line'
-        },
-        plotOptions: {
-            line: {
-                dataLabels: {
-                    enabled: false
-                },
-                enableMouseTracking: true
-            }
-        }
-    }, {
-        chart: {
-            type: 'line'
-        },
-        plotOptions: {
-            line: {
-                dataLabels: {
-                    enabled: true
-                },
-                enableMouseTracking: false
-            }
-        }
-    }, {
-        chart: {
-            type: 'area'
-        }
-    }, {
-        chart: {
-            type: 'bar'
-        }
-    }, {
-        chart: {
-            type: 'column'
-        }
-    }, {
-        chart: {
-            plotBackgroundColor: null,
-            plotBorderWidth: null,
-            plotShadow: false
-        },
-        plotOptions: {
-            pie: {
-                allowPointSelect: true,
-                cursor: 'pointer',
-                dataLabels: {
-                    enabled: true,
-                    color: '#000000',
-                    connectorColor: '#000000',
-                    formatter: function() {
-                        return '<b>'+ this.point.name +'</b>: '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %';
-                    }
-                }
-            }
-        }
-    }
-];
diff --git a/server/public/ueditor/dialogs/charts/charts.css b/server/public/ueditor/dialogs/charts/charts.css
deleted file mode 100644
index cec35c7..0000000
--- a/server/public/ueditor/dialogs/charts/charts.css
+++ /dev/null
@@ -1,165 +0,0 @@
-html, body {
-    width: 100%;
-    height: 100%;
-    margin: 0;
-    padding: 0;
-    overflow-x: hidden;
-}
-
-.main {
-    width: 100%;
-    overflow: hidden;
-}
-
-.table-view {
-    height: 100%;
-    float: left;
-    margin: 20px;
-    width: 40%;
-}
-
-.table-view .table-container {
-    width: 100%;
-    margin-bottom: 50px;
-    overflow: scroll;
-}
-
-.table-view th {
-    padding: 5px 10px;
-    background-color: #F7F7F7;
-}
-
-.table-view td {
-    width: 50px;
-    text-align: center;
-    padding:0;
-}
-
-.table-container input {
-    width: 40px;
-    padding: 5px;
-    border: none;
-    outline: none;
-}
-
-.table-view caption {
-    font-size: 18px;
-    text-align: left;
-}
-
-.charts-view {
-    /*margin-left: 49%!important;*/
-    width: 50%;
-    margin-left: 49%;
-    height: 400px;
-}
-
-.charts-container {
-    border-left: 1px solid #c3c3c3;
-}
-
-.charts-format fieldset {
-    padding-left: 20px;
-    margin-bottom: 50px;
-}
-
-.charts-format legend {
-    padding-left: 10px;
-    padding-right: 10px;
-}
-
-.format-item-container {
-    padding: 20px;
-}
-
-.format-item-container label {
-    display: block;
-    margin: 10px 0;
-}
-
-.charts-format .data-item {
-    border: 1px solid black;
-    outline: none;
-    padding: 2px 3px;
-}
-
-/* 鍥捐〃绫诲瀷 */
-
-.charts-type {
-    margin-top: 50px;
-    height: 300px;
-}
-
-.scroll-view {
-    border: 1px solid #c3c3c3;
-    border-left: none;
-    border-right: none;
-    overflow: hidden;
-}
-
-.scroll-container {
-    margin: 20px;
-    width: 100%;
-    overflow: hidden;
-}
-
-.scroll-bed {
-    width: 10000px;
-    _margin-top: 20px;
-    -webkit-transition: margin-left .5s ease;
-    -moz-transition: margin-left .5s ease;
-    transition: margin-left .5s ease;
-}
-
-.view-box {
-    display: inline-block;
-    *display: inline;
-    *zoom: 1;
-    margin-right: 20px;
-    border: 2px solid white;
-    line-height: 0;
-    overflow: hidden;
-    cursor: pointer;
-}
-
-.view-box img {
-    border: 1px solid #cecece;
-}
-
-.view-box.selected {
-    border-color: #7274A7;
-}
-
-.button-container {
-    margin-bottom: 20px;
-    text-align: center;
-}
-
-.button-container a {
-    display: inline-block;
-    width: 100px;
-    height: 25px;
-    line-height: 25px;
-    border: 1px solid #c2ccd1;
-    margin-right: 30px;
-    text-decoration: none;
-    color: black;
-    -webkit-border-radius: 2px;
-    -moz-border-radius: 2px;
-    border-radius: 2px;
-}
-
-.button-container a:HOVER {
-    background: #fcfcfc;
-}
-
-.button-container a:ACTIVE {
-    border-top-color: #c2ccd1;
-    box-shadow:inset 0 5px 4px -4px rgba(49, 49, 64, 0.1);
-}
-
-.edui-charts-not-data {
-    height: 100px;
-    line-height: 100px;
-    text-align: center;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/charts/charts.html b/server/public/ueditor/dialogs/charts/charts.html
deleted file mode 100644
index 735274f..0000000
--- a/server/public/ueditor/dialogs/charts/charts.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <title>chart</title>
-        <meta chartset="utf-8">
-        <link rel="stylesheet" type="text/css" href="charts.css">
-        <script type="text/javascript" src="../internal.js"></script>
-    </head>
-    <body>
-        <div class="main">
-            <div class="table-view">
-                <h3><var id="lang_data_source"></var></h3>
-                <div id="tableContainer" class="table-container"></div>
-                <h3><var id="lang_chart_format"></var></h3>
-                <form name="data-form">
-                    <div class="charts-format">
-                        <fieldset>
-                            <legend><var id="lang_data_align"></var></legend>
-                            <div class="format-item-container">
-                                <label>
-                                    <input type="radio" class="format-ctrl not-pie-item" name="charts-format" value="1" checked="checked">
-                                    <var id="lang_chart_align_same"></var>
-                                </label>
-                                <label>
-                                    <input type="radio" class="format-ctrl not-pie-item" name="charts-format" value="-1">
-                                    <var id="lang_chart_align_reverse"></var>
-                                </label>
-                                <br>
-                            </div>
-                        </fieldset>
-                        <fieldset>
-                            <legend><var id="lang_chart_title"></var></legend>
-                            <div class="format-item-container">
-                                <label>
-                                    <var id="lang_chart_main_title"></var><input type="text" name="title" class="data-item">
-                                </label>
-                                <label>
-                                    <var id="lang_chart_sub_title"></var><input type="text" name="sub-title" class="data-item not-pie-item">
-                                </label>
-                                <label>
-                                    <var id="lang_chart_x_title"></var><input type="text" name="x-title" class="data-item not-pie-item">
-                                </label>
-                                <label>
-                                    <var id="lang_chart_y_title"></var><input type="text" name="y-title" class="data-item not-pie-item">
-                                </label>
-                            </div>
-                        </fieldset>
-                        <fieldset>
-                            <legend><var id="lang_chart_tip"></var></legend>
-                            <div class="format-item-container">
-                                <label>
-                                    <var id="lang_cahrt_tip_prefix"></var>
-                                    <input type="text" id="tipInput" name="tip" class="data-item" disabled="disabled">
-                                </label>
-                                <p><var id="lang_cahrt_tip_description"></var></p>
-                            </div>
-                        </fieldset>
-                        <fieldset>
-                            <legend><var id="lang_chart_data_unit"></var></legend>
-                            <div class="format-item-container">
-                                <label><var id="lang_chart_data_unit_title"></var><input type="text" name="unit" class="data-item"></label>
-                                <p><var id="lang_chart_data_unit_description"></var></p>
-                            </div>
-                        </fieldset>
-                    </div>
-                </form>
-            </div>
-            <div class="charts-view">
-                <div id="chartsContainer" class="charts-container"></div>
-                <div id="chartsType" class="charts-type">
-                    <h3><var id="lang_chart_type"></var></h3>
-                    <div class="scroll-view">
-                        <div class="scroll-container">
-                            <div id="scrollBed" class="scroll-bed"></div>
-                        </div>
-                        <div id="buttonContainer" class="button-container">
-                            <a href="#" data-title="prev"><var id="lang_prev_btn"></var></a>
-                            <a href="#" data-title="next"><var id="lang_next_btn"></var></a>
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <script src="../../third-party/jquery-1.10.2.min.js"></script>
-        <script src="../../third-party/highcharts/highcharts.js"></script>
-        <script src="chart.config.js"></script>
-        <script src="charts.js"></script>
-    </body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/charts/charts.js b/server/public/ueditor/dialogs/charts/charts.js
deleted file mode 100644
index 29c0c03..0000000
--- a/server/public/ueditor/dialogs/charts/charts.js
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * 鍥剧墖杞崲瀵硅瘽妗嗚剼鏈�
- **/
-
-var tableData = [],
-    //缂栬緫鍣ㄩ〉闈able
-    editorTable = null,
-    chartsConfig = window.typeConfig,
-    resizeTimer = null,
-    //鍒濆榛樿鍥捐〃绫诲瀷
-    currentChartType = 0;
-
-window.onload = function () {
-
-    editorTable = domUtils.findParentByTagName( editor.selection.getRange().startContainer, 'table', true);
-
-    //鏈壘鍒拌〃鏍硷紝 鏄剧ず閿欒椤甸潰
-    if ( !editorTable ) {
-        document.body.innerHTML = "<div class='edui-charts-not-data'>鏈壘鍒版暟鎹�</div>";
-        return;
-    }
-
-    //鍒濆鍖栧浘琛ㄧ被鍨嬮�夋嫨
-    initChartsTypeView();
-    renderTable( editorTable );
-    initEvent();
-    initUserConfig( editorTable.getAttribute( "data-chart" ) );
-    $( "#scrollBed .view-box:eq("+ currentChartType +")" ).trigger( "click" );
-    updateViewType( currentChartType );
-
-    dialog.addListener( "resize", function () {
-
-        if ( resizeTimer != null ) {
-            window.clearTimeout( resizeTimer );
-        }
-
-        resizeTimer = window.setTimeout( function () {
-
-            resizeTimer = null;
-
-            renderCharts();
-
-        }, 500 );
-
-    } );
-
-};
-
-function initChartsTypeView () {
-
-    var contents = [];
-
-    for ( var i = 0, len = chartsConfig.length; i<len; i++ ) {
-
-        contents.push( '<div class="view-box" data-chart-type="'+ i +'"><img width="300" src="images/charts'+ i +'.png"></div>' );
-
-    }
-
-    $( "#scrollBed" ).html( contents.join( "" ) );
-
-}
-
-//娓叉煋table锛� 浠ヤ究鐢ㄦ埛淇敼鏁版嵁
-function renderTable ( table ) {
-
-    var tableHtml = [];
-
-    //鏋勯�犳暟鎹�
-    for ( var i = 0, row; row = table.rows[ i ]; i++ ) {
-
-        tableData[ i ] = [];
-        tableHtml[ i ] = [];
-
-        for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) {
-
-            var value = getCellValue( cell );
-
-            if ( i > 0 && j > 0 ) {
-                value = +value;
-            }
-
-            if ( i === 0 || j === 0 ) {
-                tableHtml[ i ].push( '<th>'+ value +'</th>' );
-            } else {
-                tableHtml[ i ].push( '<td><input type="text" class="data-item" value="'+ value +'"></td>' );
-            }
-
-            tableData[ i ][ j ] = value;
-
-        }
-
-        tableHtml[ i ] = tableHtml[ i ].join( "" );
-
-    }
-
-    //draw 琛ㄦ牸
-    $( "#tableContainer" ).html( '<table id="showTable" border="1"><tbody><tr>'+ tableHtml.join( "</tr><tr>" ) +'</tr></tbody></table>' );
-
-}
-
-/*
- * 鏍规嵁琛ㄦ牸宸叉湁鐨勫浘琛ㄥ睘鎬у垵濮嬪寲褰撳墠鍥捐〃灞炴��
- */
-function initUserConfig ( config ) {
-
-    var parsedConfig = {};
-
-    if ( !config ) {
-        return;
-    }
-
-    config = config.split( ";" );
-
-    $.each( config, function ( index, item ) {
-
-        item = item.split( ":" );
-        parsedConfig[ item[ 0 ] ] = item[ 1 ];
-
-    } );
-
-    setUserConfig( parsedConfig );
-
-}
-
-function initEvent () {
-
-    var cacheValue = null,
-        //鍥捐〃绫诲瀷鏁�
-        typeViewCount = chartsConfig.length- 1,
-        $chartsTypeViewBox = $( '#scrollBed .view-box' );
-
-    $( ".charts-format" ).delegate( ".format-ctrl", "change", function () {
-
-        renderCharts();
-
-    } )
-
-    $( ".table-view" ).delegate( ".data-item", "focus", function () {
-
-        cacheValue = this.value;
-
-    } ).delegate( ".data-item", "blur", function () {
-
-        if ( this.value !== cacheValue ) {
-            renderCharts();
-        }
-
-        cacheValue = null;
-
-    } );
-
-    $( "#buttonContainer" ).delegate( "a", "click", function (e) {
-
-        e.preventDefault();
-
-        if ( this.getAttribute( "data-title" ) === 'prev' ) {
-
-            if ( currentChartType > 0 ) {
-                currentChartType--;
-                updateViewType( currentChartType );
-            }
-
-        } else {
-
-            if ( currentChartType < typeViewCount ) {
-                currentChartType++;
-                updateViewType( currentChartType );
-            }
-
-        }
-
-    } );
-
-    //鍥捐〃绫诲瀷鍙樺寲
-    $( '#scrollBed' ).delegate( ".view-box", "click", function (e) {
-
-        var index = $( this ).attr( "data-chart-type" );
-        $chartsTypeViewBox.removeClass( "selected" );
-        $( $chartsTypeViewBox[ index ] ).addClass( "selected" );
-
-        currentChartType = index | 0;
-
-        //楗煎浘锛� 绂佺敤閮ㄥ垎閰嶇疆
-        if ( currentChartType === chartsConfig.length - 1 ) {
-
-            disableNotPieConfig();
-
-        //鍚敤瀹屾暣閰嶇疆
-        } else {
-
-            enableNotPieConfig();
-
-        }
-
-        renderCharts();
-
-    } );
-
-}
-
-function renderCharts () {
-
-    var data = collectData();
-
-    $('#chartsContainer').highcharts( $.extend( {}, chartsConfig[ currentChartType ], {
-
-        credits: {
-            enabled: false
-        },
-        exporting: {
-            enabled: false
-        },
-        title: {
-            text: data.title,
-            x: -20 //center
-        },
-        subtitle: {
-            text: data.subTitle,
-            x: -20
-        },
-        xAxis: {
-            title: {
-                text: data.xTitle
-            },
-            categories: data.categories
-        },
-        yAxis: {
-            title: {
-                text: data.yTitle
-            },
-            plotLines: [{
-                value: 0,
-                width: 1,
-                color: '#808080'
-            }]
-        },
-        tooltip: {
-            enabled: true,
-            valueSuffix: data.suffix
-        },
-        legend: {
-            layout: 'vertical',
-            align: 'right',
-            verticalAlign: 'middle',
-            borderWidth: 1
-        },
-        series: data.series
-
-    } ));
-
-}
-
-function updateViewType ( index ) {
-
-    $( "#scrollBed" ).css( 'marginLeft', -index*324+'px' );
-
-}
-
-function collectData () {
-
-    var form = document.forms[ 'data-form' ],
-        data = null;
-
-    if ( currentChartType !== chartsConfig.length - 1 ) {
-
-        data = getSeriesAndCategories();
-        $.extend( data, getUserConfig() );
-
-    //楗煎浘鏁版嵁鏍煎紡
-    } else {
-        data = getSeriesForPieChart();
-        data.title = form[ 'title' ].value;
-        data.suffix = form[ 'unit' ].value;
-    }
-
-    return data;
-
-}
-
-/**
- * 鑾峰彇鐢ㄦ埛閰嶇疆淇℃伅
- */
-function getUserConfig () {
-
-    var form = document.forms[ 'data-form' ],
-        info = {
-            title: form[ 'title' ].value,
-            subTitle: form[ 'sub-title' ].value,
-            xTitle: form[ 'x-title' ].value,
-            yTitle: form[ 'y-title' ].value,
-            suffix: form[ 'unit' ].value,
-            //鏁版嵁瀵归綈鏂瑰紡
-            tableDataFormat: getTableDataFormat (),
-            //楗煎浘鎻愮ず鏂囧瓧
-            tip: $( "#tipInput" ).val()
-        };
-
-    return info;
-
-}
-
-function setUserConfig ( config ) {
-
-    var form = document.forms[ 'data-form' ];
-
-    config.title && ( form[ 'title' ].value = config.title );
-    config.subTitle && ( form[ 'sub-title' ].value = config.subTitle );
-    config.xTitle && ( form[ 'x-title' ].value = config.xTitle );
-    config.yTitle && ( form[ 'y-title' ].value = config.yTitle );
-    config.suffix && ( form[ 'unit' ].value = config.suffix );
-    config.dataFormat == "-1" && ( form[ 'charts-format' ][ 1 ].checked = true );
-    config.tip && ( form[ 'tip' ].value = config.tip );
-    currentChartType = config.chartType || 0;
-
-}
-
-function getSeriesAndCategories () {
-
-    var form = document.forms[ 'data-form' ],
-        series = [],
-        categories = [],
-        tmp = [],
-        tableData = getTableData();
-
-    //鍙嶈浆鏁版嵁
-    if ( getTableDataFormat() === "-1" ) {
-
-        for ( var i = 0, len = tableData.length; i < len; i++ ) {
-
-            for ( var j = 0, jlen = tableData[ i ].length; j < jlen; j++ ) {
-
-                if ( !tmp[ j ] ) {
-                    tmp[ j ] = [];
-                }
-
-                tmp[ j ][ i ] = tableData[ i ][ j ];
-
-            }
-
-        }
-
-        tableData = tmp;
-
-    }
-
-    categories = tableData[0].slice( 1 );
-
-    for ( var i = 1, data; data = tableData[ i ]; i++ ) {
-
-        series.push( {
-            name: data[ 0 ],
-            data: data.slice( 1 )
-        } );
-
-    }
-
-    return {
-        series: series,
-        categories: categories
-    };
-
-}
-
-/*
- * 鑾峰彇鏁版嵁婧愭暟鎹榻愭柟寮�
- */
-function getTableDataFormat () {
-
-    var form = document.forms[ 'data-form' ],
-        items = form['charts-format'];
-
-    return items[ 0 ].checked ? items[ 0 ].value : items[ 1 ].value;
-
-}
-
-/*
- * 绂佺敤闈為ゼ鍥剧被鍨嬬殑閰嶇疆椤�
- */
-function disableNotPieConfig() {
-
-    updateConfigItem( 'disable' );
-
-}
-
-/*
- * 鍚敤闈為ゼ鍥剧被鍨嬬殑閰嶇疆椤�
- */
-function enableNotPieConfig() {
-
-    updateConfigItem( 'enable' );
-
-}
-
-function updateConfigItem ( value ) {
-
-    var table = $( "#showTable" )[ 0 ],
-        isDisable = value === 'disable' ? true : false;
-
-    //table涓殑input澶勭悊
-    for ( var i = 2 , row; row = table.rows[ i ]; i++ ) {
-
-        for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) {
-
-            $( "input", cell ).attr( "disabled", isDisable );
-
-        }
-
-    }
-
-    //鍏朵粬椤瑰鐞�
-    $( "input.not-pie-item" ).attr( "disabled", isDisable );
-    $( "#tipInput" ).attr( "disabled", !isDisable )
-
-}
-
-/*
- * 鑾峰彇楗煎浘鏁版嵁
- * 楗煎浘鐨勬暟鎹彧鍙栫涓�琛岀殑
- **/
-function getSeriesForPieChart () {
-
-    var series = {
-            type: 'pie',
-            name: $("#tipInput").val(),
-            data: []
-        },
-        tableData = getTableData();
-
-
-    for ( var j = 1, jlen = tableData[ 0 ].length; j < jlen; j++ ) {
-
-        var title = tableData[ 0 ][ j ],
-            val = tableData[ 1 ][ j ];
-
-        series.data.push( [ title, val ] );
-
-    }
-
-    return {
-        series: [ series ]
-    };
-
-}
-
-function getTableData () {
-
-    var table = document.getElementById( "showTable" ),
-        xCount = table.rows[0].cells.length - 1,
-        values = getTableInputValue();
-
-    for ( var i = 0, value; value = values[ i ]; i++ ) {
-
-        tableData[ Math.floor( i / xCount ) + 1 ][ i % xCount + 1 ] = values[ i ];
-
-    }
-
-    return tableData;
-
-}
-
-function getTableInputValue () {
-
-    var table = document.getElementById( "showTable" ),
-        inputs = table.getElementsByTagName( "input" ),
-        values = [];
-
-    for ( var i = 0, input; input = inputs[ i ]; i++ ) {
-        values.push( input.value | 0 );
-    }
-
-    return values;
-
-}
-
-function getCellValue ( cell ) {
-
-    var value = utils.trim( ( cell.innerText || cell.textContent || '' ) );
-
-    return value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' );
-
-}
-
-
-//dialog纭浜嬩欢
-dialog.onok = function () {
-
-    //鏀堕泦淇℃伅
-    var form = document.forms[ 'data-form' ],
-        info = getUserConfig();
-
-    //娣诲姞鍥捐〃绫诲瀷
-    info.chartType = currentChartType;
-
-    //鍚屾琛ㄦ牸鏁版嵁鍒扮紪杈戝櫒
-    syncTableData();
-
-    //鎵ц鍥捐〃鍛戒护
-    editor.execCommand( 'charts', info );
-
-};
-
-/*
- * 鍚屾鍥捐〃缂栬緫瑙嗗浘鐨勮〃鏍兼暟鎹埌缂栬緫鍣ㄩ噷鐨勫師濮嬭〃鏍�
- */
-function syncTableData () {
-
-    var tableData = getTableData();
-
-    for ( var i = 1, row; row = editorTable.rows[ i ]; i++ ) {
-
-        for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) {
-
-            cell.innerHTML = tableData[ i ] [ j ];
-
-        }
-
-    }
-
-}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/charts/images/charts0.png b/server/public/ueditor/dialogs/charts/images/charts0.png
deleted file mode 100644
index 9485e5e..0000000
--- a/server/public/ueditor/dialogs/charts/images/charts0.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/charts/images/charts1.png b/server/public/ueditor/dialogs/charts/images/charts1.png
deleted file mode 100644
index b5a0039..0000000
--- a/server/public/ueditor/dialogs/charts/images/charts1.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/charts/images/charts2.png b/server/public/ueditor/dialogs/charts/images/charts2.png
deleted file mode 100644
index 7c91a39..0000000
--- a/server/public/ueditor/dialogs/charts/images/charts2.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/charts/images/charts3.png b/server/public/ueditor/dialogs/charts/images/charts3.png
deleted file mode 100644
index a6bc29b..0000000
--- a/server/public/ueditor/dialogs/charts/images/charts3.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/charts/images/charts4.png b/server/public/ueditor/dialogs/charts/images/charts4.png
deleted file mode 100644
index 742006a..0000000
--- a/server/public/ueditor/dialogs/charts/images/charts4.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/charts/images/charts5.png b/server/public/ueditor/dialogs/charts/images/charts5.png
deleted file mode 100644
index c49a296..0000000
--- a/server/public/ueditor/dialogs/charts/images/charts5.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/emotion.css b/server/public/ueditor/dialogs/emotion/emotion.css
deleted file mode 100644
index e0a56dd..0000000
--- a/server/public/ueditor/dialogs/emotion/emotion.css
+++ /dev/null
@@ -1,43 +0,0 @@
-.jd img{
-    background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top;
-    cursor:pointer;width:35px;height:35px;display:block;
-}
-.pp img{
-    background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top;
-    cursor:pointer;width:25px;height:25px;display:block;
-}
-.ldw img{
-    background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top;
-    cursor:pointer;width:35px;height:35px;display:block;
-}
-.tsj img{
-    background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top;
-    cursor:pointer;width:35px;height:35px;display:block;
-}
-.cat img{
-    background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top;
-    cursor:pointer;width:35px;height:35px;display:block;
-}
-.bb img{
-    background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top;
-    cursor:pointer;width:35px;height:35px;display:block;
-}
-.youa img{
-    background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top;
-    cursor:pointer;width:35px;height:35px;display:block;
-}
-
-.smileytable td {height: 37px;}
-#tabPanel{margin-left:5px;overflow: hidden;}
-#tabContent {float:left;background:#FFFFFF;}
-#tabContent div{display: none;width:480px;overflow:hidden;}
-#tabIconReview.show{left:17px;display:block;}
-.menuFocus{background:#ACCD3C;}
-.menuDefault{background:#FFFFFF;}
-#tabIconReview{position:absolute;left:406px;left:398px \9;top:41px;z-index:65533;width:90px;height:76px;}
-img.review{width:90px;height:76px;border:2px solid #9cb945;background:#FFFFFF;background-position:center;background-repeat:no-repeat;}
-
-.wrapper .tabbody{position:relative;float:left;clear:both;padding:10px;width: 95%;}
-.tabbody table{width: 100%;}
-.tabbody td{border:1px solid #BAC498;}
-.tabbody td span{display: block;zoom:1;padding:0 4px;}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/emotion/emotion.html b/server/public/ueditor/dialogs/emotion/emotion.html
deleted file mode 100644
index 363d64c..0000000
--- a/server/public/ueditor/dialogs/emotion/emotion.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <meta name="robots" content="noindex, nofollow"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="emotion.css">
-</head>
-<body>
-<div id="tabPanel" class="wrapper">
-    <div id="tabHeads" class="tabhead">
-        <span><var id="lang_input_choice"></var></span>
-        <span><var id="lang_input_Tuzki"></var></span>
-        <span><var id="lang_input_lvdouwa"></var></span>
-        <span><var id="lang_input_BOBO"></var></span>
-        <span><var id="lang_input_babyCat"></var></span>
-        <span><var id="lang_input_bubble"></var></span>
-        <span><var id="lang_input_youa"></var></span>
-    </div>
-    <div id="tabBodys" class="tabbody">
-        <div id="tab0"></div>
-        <div id="tab1"></div>
-        <div id="tab2"></div>
-        <div id="tab3"></div>
-        <div id="tab4"></div>
-        <div id="tab5"></div>
-        <div id="tab6"></div>
-    </div>
-</div>
-<div id="tabIconReview">
-    <img id='faceReview' class='review' src="../../themes/default/images/spacer.gif"/>
-</div>
-<script type="text/javascript" src="emotion.js"></script>
-<script type="text/javascript">
-    var emotion = {
-        tabNum:7, //鍒囨崲闈㈡澘鏁伴噺
-        SmilmgName:{ tab0:['j_00', 84], tab1:['t_00', 40], tab2:['w_00', 52], tab3:['B_00', 63], tab4:['C_00', 20], tab5:['i_f', 50], tab6:['y_00', 40] }, //鍥剧墖鍓嶇紑鍚�
-        imageFolders:{ tab0:'jx2/', tab1:'tsj/', tab2:'ldw/', tab3:'bobo/', tab4:'babycat/', tab5:'face/', tab6:'youa/'}, //鍥剧墖瀵瑰簲鏂囦欢澶硅矾寰�
-        imageCss:{tab0:'jd', tab1:'tsj', tab2:'ldw', tab3:'bb', tab4:'cat', tab5:'pp', tab6:'youa'}, //鍥剧墖css绫诲悕
-        imageCssOffset:{tab0:35, tab1:35, tab2:35, tab3:35, tab4:35, tab5:25, tab6:35}, //鍥剧墖鍋忕Щ
-        SmileyInfor:{
-            tab0:['Kiss', 'Love', 'Yeah', '鍟婏紒', '鑳屾壄', '椤�', '鎶栬兏', '88', '姹�', '鐬岀潯', '椴佹媺', '鎷嶇爾', '鎻夎劯', '鐢熸棩蹇箰', '澶х瑧', '鐎戝竷姹梸', '鎯婅', '鑷編', '鍌荤瑧', '鎶涘獨鐪�', '鍙戞��', '鎵撻叡娌�', '淇崸鎾�', '姘旀劋', '?', '鍚�', '鎬�', '鑳滃埄', 'HI', 'KISS', '涓嶈', '涓嶈', '鎵姳', '澶у績', '椤�', '澶ф儕', '椋炲惢', '楝艰劯', '瀹崇緸', '鍙f按', '鐙傚摥', '鏉�', '鍙戣储浜�', '鍚冭タ鐡�', '濂楃墷', '瀹崇緸', '搴嗙', '鎴戞潵浜�', '鏁叉墦', '鏅曚簡', '鑳滃埄', '鑷編', '琚墦浜�', '璐悆', '杩庢帴', '閰�', '寰瑧', '浜插惢', '璋冪毊', '鎯婃亹', '鑰嶉叿', '鍙戠伀', '瀹崇緸', '姹楁按', '澶у摥', '', '鍔犳补', '鍥�', '浣燦B', '鏅曞��', '寮�蹇�', '鍋风瑧', '澶у摥', '婊存睏', '鍙规皵', '瓒呰禐', '??', '椋炲惢', '澶╀娇', '鎾掕姳', '鐢熸皵', '琚牳', '鍚撳偦', '闅忔剰鍚�'],
-            tab1:['Kiss', 'Love', 'Yeah', '鍟婏紒', '鑳屾壄', '椤�', '鎶栬兏', '88', '姹�', '鐬岀潯', '椴佹媺', '鎷嶇爾', '鎻夎劯', '鐢熸棩蹇箰', '鎽婃墜', '鐫¤', '鐦潗', '鏃犺亰', '鏄熸槦闂�', '鏃嬭浆', '涔熶笉琛�', '閮侀椃', '姝usic', '鎶撳', '鎾炲鑷虫', '姝ご', '鎴崇溂', '椋樿繃', '浜掔浉鎷嶇爾', '鐮嶆浣�', '鎵旀瀛�', '灏戞灄瀵�', '浠�涔堬紵', '杞ご', '鎴戠埍鐗涘ザ', '鎴戣涪', '鎽囨檭', '鏅曞帴', '鍦ㄧ瀛愰噷', '闇囪崱'],
-            tab2:['澶х瑧', '鐎戝竷姹梸', '鎯婅', '鑷編', '鍌荤瑧', '鎶涘獨鐪�', '鍙戞��', '鎴戦敊浜�', 'money', '姘旀劋', '鎸戦��', '鍚�', '鎬�', '鑳滃埄', '濮斿眻', '鍙椾激', '璇村暐鍛紵', '闂槾', '涓�', '閫椾綘鐜╁効', '椋炲惢', '鐪╂檿', '榄旀硶', '鎴戞潵浜�', '鐫′簡', '鎴戞墦', '闂槾', '鎵�', '鎵撴檿浜�', '鍒风墮', '鐖嗘弽', '鐐稿脊', '鍊掔珛', '鍒儭瀛�', '閭伓鐨勭瑧', '涓嶈涓嶈', '鐖辨亱涓�', '鏀惧ぇ浠旂粏鐪�', '鍋风', '瓒呴珮鍏�', '鏅�', '鏉惧彛姘�', '鎴戣窇', '浜彈', '淇吇', '鍝�', '姹�', '鍟妦', '鐑儓娆㈣繋', '鎵撻叡娌�', '淇崸鎾�', '?'],
-            tab3:['HI', 'KISS', '涓嶈', '涓嶈', '鎵姳', '澶у績', '椤�', '澶ф儕', '椋炲惢', '楝艰劯', '瀹崇緸', '鍙f按', '鐙傚摥', '鏉�', '娉溂', '娴佹唱', '鐢熸皵', '鍚愯垖', '鍠滄', '鏃嬭浆', '鍐嶈', '鎶撶媯', '姹�', '閯欒', '鎷�', '鍚愯', '鍢�', '鎵撲汉', '韫﹁烦', '鍙樿劯', '鎵倝', '鍚僒o', '鍚冭姳', '鍚规场娉$硸', '澶у彉韬�', '椋炲ぉ鑸�', '鍥炵湼', '鍙��', '鐚涙娊', '娉℃场', '鑻规灉', '浜�', '', '楠氳垶', '鐑ч', '鐫�', '濂楀▋濞�', '鎹呮崊', '鑸炲��', '瑗跨孩鏌�', '鐖辨厱', '鎽�', '鎽囨憜', '鏉傝��', '鎷涜储', '琚', '琚悆闂�', '澶ф儕', '鐞嗘兂', '娆ф墦', '鍛曞悙', '纰�', '鍚愮棸'],
-            tab4:['鍙戣储浜�', '鍚冭タ鐡�', '濂楃墷', '瀹崇緸', '搴嗙', '鎴戞潵浜�', '鏁叉墦', '鏅曚簡', '鑳滃埄', '鑷編', '琚墦浜�', '璐悆', '杩庢帴', '閰�', '椤�', '骞歌繍', '鐖卞績', '韬�', '閫佽姳', '閫夋嫨'],
-            tab5:['寰瑧', '浜插惢', '璋冪毊', '鎯婅', '鑰嶉叿', '鍙戠伀', '瀹崇緸', '姹楁按', '澶у摥', '寰楁剰', '閯欒', '鍥�', '澶稿', '鏅曞��', '鐤戦棶', '濯掑﹩', '鐙傚悙', '闈掕洐', '鍙戞剚', '浜插惢', '', '鐖卞績', '蹇冪', '鐜懓', '绀肩墿', '鍝�', '濂哥瑧', '鍙埍', '寰楁剰', '鍛茬墮', '鏆存睏', '妤氭鍙��', '鍥�', '鍝�', '鐢熸皵', '鎯婅', '鍙f按', '褰╄櫣', '澶滅┖', '澶槼', '閽遍挶', '鐏场', '鍜栧暋', '铔嬬硶', '闊充箰', '鐖�', '鑳滃埄', '璧�', '閯欒', 'OK'],
-            tab6:['鐢峰厹', '濂冲厹', '寮�蹇�', '涔栦箹', '鍋风瑧', '澶х瑧', '鎶芥常', '澶у摥', '鏃犲', '婊存睏', '鍙规皵', '鐙傛檿', '濮斿眻', '瓒呰禐', '??', '鐤戦棶', '椋炲惢', '澶╀娇', '鎾掕姳', '鐢熸皵', '琚牳', '鍙f按', '娉', '鍚撳偦', '鍚愯垖澶�', '鐐瑰ご', '闅忔剰鍚�', '鏃嬭浆', '鍥板洶', '閯欒', '鐙傞《', '绡悆', '鍐嶈', '娆㈣繋鍏変复', '鎭枩鍙戣储', '绋嶇瓑', '鎴戝湪绾�', '鎭曚笉璁环', '搴撴埧鏈夎揣', '璐у湪璺笂']
-        }
-    };
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/emotion/emotion.js b/server/public/ueditor/dialogs/emotion/emotion.js
deleted file mode 100644
index aa01380..0000000
--- a/server/public/ueditor/dialogs/emotion/emotion.js
+++ /dev/null
@@ -1,186 +0,0 @@
-window.onload = function () {
-    editor.setOpt({
-        emotionLocalization:false
-    });
-
-    emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/";
-    emotion.SmileyBox = createTabList( emotion.tabNum );
-    emotion.tabExist = createArr( emotion.tabNum );
-
-    initImgName();
-    initEvtHandler( "tabHeads" );
-};
-
-function initImgName() {
-    for ( var pro in emotion.SmilmgName ) {
-        var tempName = emotion.SmilmgName[pro],
-                tempBox = emotion.SmileyBox[pro],
-                tempStr = "";
-
-        if ( tempBox.length ) return;
-        for ( var i = 1; i <= tempName[1]; i++ ) {
-            tempStr = tempName[0];
-            if ( i < 10 ) tempStr = tempStr + '0';
-            tempStr = tempStr + i + '.gif';
-            tempBox.push( tempStr );
-        }
-    }
-}
-
-function initEvtHandler( conId ) {
-    var tabHeads = $G( conId );
-    for ( var i = 0, j = 0; i < tabHeads.childNodes.length; i++ ) {
-        var tabObj = tabHeads.childNodes[i];
-        if ( tabObj.nodeType == 1 ) {
-            domUtils.on( tabObj, "click", (function ( index ) {
-                return function () {
-                    switchTab( index );
-                };
-            })( j ) );
-            j++;
-        }
-    }
-    switchTab( 0 );
-    $G( "tabIconReview" ).style.display = 'none';
-}
-
-function InsertSmiley( url, evt ) {
-    var obj = {
-        src:editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url
-    };
-    obj._src = obj.src;
-    editor.execCommand( 'insertimage', obj );
-    if ( !evt.ctrlKey ) {
-        dialog.popup.hide();
-    }
-}
-
-function switchTab( index ) {
-
-    autoHeight( index );
-    if ( emotion.tabExist[index] == 0 ) {
-        emotion.tabExist[index] = 1;
-        createTab( 'tab' + index );
-    }
-    //鑾峰彇鍛堢幇鍏冪礌鍙ユ焺鏁扮粍
-    var tabHeads = $G( "tabHeads" ).getElementsByTagName( "span" ),
-            tabBodys = $G( "tabBodys" ).getElementsByTagName( "div" ),
-            i = 0, L = tabHeads.length;
-    //闅愯棌鎵�鏈夊憟鐜板厓绱�
-    for ( ; i < L; i++ ) {
-        tabHeads[i].className = "";
-        tabBodys[i].style.display = "none";
-    }
-    //鏄剧ず瀵瑰簲鍛堢幇鍏冪礌
-    tabHeads[index].className = "focus";
-    tabBodys[index].style.display = "block";
-}
-
-function autoHeight( index ) {
-    var iframe = dialog.getDom( "iframe" ),
-            parent = iframe.parentNode.parentNode;
-    switch ( index ) {
-        case 0:
-            iframe.style.height = "380px";
-            parent.style.height = "392px";
-            break;
-        case 1:
-            iframe.style.height = "220px";
-            parent.style.height = "232px";
-            break;
-        case 2:
-            iframe.style.height = "260px";
-            parent.style.height = "272px";
-            break;
-        case 3:
-            iframe.style.height = "300px";
-            parent.style.height = "312px";
-            break;
-        case 4:
-            iframe.style.height = "140px";
-            parent.style.height = "152px";
-            break;
-        case 5:
-            iframe.style.height = "260px";
-            parent.style.height = "272px";
-            break;
-        case 6:
-            iframe.style.height = "230px";
-            parent.style.height = "242px";
-            break;
-        default:
-
-    }
-}
-
-
-function createTab( tabName ) {
-    var faceVersion = "?v=1.1", //鐗堟湰鍙�
-            tab = $G( tabName ), //鑾峰彇灏嗚鐢熸垚鐨凞iv鍙ユ焺
-            imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //鑾峰彇鏄剧ず琛ㄦ儏鍜岄瑙堣〃鎯呯殑璺緞
-            positionLine = 11 / 2, //涓棿鏁�
-            iWidth = iHeight = 35, //鍥剧墖闀垮
-            iColWidth = 3, //琛ㄦ牸鍓╀綑绌洪棿鐨勬樉绀烘瘮渚�
-            tableCss = emotion.imageCss[tabName],
-            cssOffset = emotion.imageCssOffset[tabName],
-            textHTML = ['<table class="smileytable">'],
-            i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage,
-            sUrl, realUrl, posflag, offset, infor;
-
-    for ( ; i < imgNum; ) {
-        textHTML.push( '<tr>' );
-        for ( var j = 0; j < imgColNum; j++, i++ ) {
-            faceImage = emotion.SmileyBox[tabName][i];
-            if ( faceImage ) {
-                sUrl = imagePath + faceImage + faceVersion;
-                realUrl = imagePath + faceImage;
-                posflag = j < positionLine ? 0 : 1;
-                offset = cssOffset * i * (-1) - 1;
-                infor = emotion.SmileyInfor[tabName][i];
-
-                textHTML.push( '<td  class="' + tableCss + '"   border="1" width="' + iColWidth + '%" style="border-collapse:collapse;" align="center"  bgcolor="transparent" onclick="InsertSmiley(\'' + realUrl.replace( /'/g, "\\'" ) + '\',event)" onmouseover="over(this,\'' + sUrl + '\',\'' + posflag + '\')" onmouseout="out(this)">' );
-                textHTML.push( '<span>' );
-                textHTML.push( '<img  style="background-position:left ' + offset + 'px;" title="' + infor + '" src="' + emotion.SmileyPath + (editor.options.emotionLocalization ? '0.gif" width="' : 'default/0.gif" width="') + iWidth + '" height="' + iHeight + '"></img>' );
-                textHTML.push( '</span>' );
-            } else {
-                textHTML.push( '<td width="' + iColWidth + '%"   bgcolor="#FFFFFF">' );
-            }
-            textHTML.push( '</td>' );
-        }
-        textHTML.push( '</tr>' );
-    }
-    textHTML.push( '</table>' );
-    textHTML = textHTML.join( "" );
-    tab.innerHTML = textHTML;
-}
-
-function over( td, srcPath, posFlag ) {
-    td.style.backgroundColor = "#ACCD3C";
-    $G( 'faceReview' ).style.backgroundImage = "url(" + srcPath + ")";
-    if ( posFlag == 1 ) $G( "tabIconReview" ).className = "show";
-    $G( "tabIconReview" ).style.display = 'block';
-}
-
-function out( td ) {
-    td.style.backgroundColor = "transparent";
-    var tabIconRevew = $G( "tabIconReview" );
-    tabIconRevew.className = "";
-    tabIconRevew.style.display = 'none';
-}
-
-function createTabList( tabNum ) {
-    var obj = {};
-    for ( var i = 0; i < tabNum; i++ ) {
-        obj["tab" + i] = [];
-    }
-    return obj;
-}
-
-function createArr( tabNum ) {
-    var arr = [];
-    for ( var i = 0; i < tabNum; i++ ) {
-        arr[i] = 0;
-    }
-    return arr;
-}
-
diff --git a/server/public/ueditor/dialogs/emotion/images/0.gif b/server/public/ueditor/dialogs/emotion/images/0.gif
deleted file mode 100644
index 6964168..0000000
--- a/server/public/ueditor/dialogs/emotion/images/0.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/images/bface.gif b/server/public/ueditor/dialogs/emotion/images/bface.gif
deleted file mode 100644
index 14fe618..0000000
--- a/server/public/ueditor/dialogs/emotion/images/bface.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/images/cface.gif b/server/public/ueditor/dialogs/emotion/images/cface.gif
deleted file mode 100644
index bff947f..0000000
--- a/server/public/ueditor/dialogs/emotion/images/cface.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/images/fface.gif b/server/public/ueditor/dialogs/emotion/images/fface.gif
deleted file mode 100644
index 0d8a6af..0000000
--- a/server/public/ueditor/dialogs/emotion/images/fface.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/images/jxface2.gif b/server/public/ueditor/dialogs/emotion/images/jxface2.gif
deleted file mode 100644
index a959c90..0000000
--- a/server/public/ueditor/dialogs/emotion/images/jxface2.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/images/neweditor-tab-bg.png b/server/public/ueditor/dialogs/emotion/images/neweditor-tab-bg.png
deleted file mode 100644
index 8f398b0..0000000
--- a/server/public/ueditor/dialogs/emotion/images/neweditor-tab-bg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/images/tface.gif b/server/public/ueditor/dialogs/emotion/images/tface.gif
deleted file mode 100644
index 1354f54..0000000
--- a/server/public/ueditor/dialogs/emotion/images/tface.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/images/wface.gif b/server/public/ueditor/dialogs/emotion/images/wface.gif
deleted file mode 100644
index 5667160..0000000
--- a/server/public/ueditor/dialogs/emotion/images/wface.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/emotion/images/yface.gif b/server/public/ueditor/dialogs/emotion/images/yface.gif
deleted file mode 100644
index 51608be..0000000
--- a/server/public/ueditor/dialogs/emotion/images/yface.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/gmap/gmap.html b/server/public/ueditor/dialogs/gmap/gmap.html
deleted file mode 100644
index 4319a6f..0000000
--- a/server/public/ueditor/dialogs/gmap/gmap.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title></title>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        .content{width:530px; height: 350px;margin: 10px auto;}
-        .content table{width: 100%}
-        .content table td{vertical-align: middle;}
-        #address{width:220px;height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}
-    </style>
-    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
-</head>
-<body>
-<div class="content">
-    <table>
-        <tr>
-            <td><label for="address"><var id="lang_input_address"></var></label></td>
-            <td><input id="address" type="text" /></td>
-            <td><a id="doSearch" href="javascript:void(0)" class="button"><var id="lang_input_search"></var></a></td>
-        </tr>
-    </table>
-    <div id="container" style="width: 100%; height: 340px;margin: 5px auto; border: 1px solid gray;"></div>
-</div>
-<script type="text/javascript">
-    domUtils.on(window,"load",function(){
-        var map = new google.maps.Map(document.getElementById('container'), {
-                zoom: 3,
-                streetViewControl: false,
-                scaleControl: true,
-                mapTypeId: google.maps.MapTypeId.ROADMAP
-            });
-            var imgcss;
-            var marker = new google.maps.Marker({
-                map: map,
-                draggable: true
-            });
-            function doSearch(){
-                var address = document.getElementById('address').value;
-                var geocoder = new google.maps.Geocoder();
-                geocoder.geocode( { 'address': address}, function (results, status) {
-                    if (status == google.maps.GeocoderStatus.OK) {
-                        var bounds = results[0].geometry.viewport;
-                        map.fitBounds(bounds);
-                        marker.setPosition(results[0].geometry.location);
-                        marker.setTitle(address);
-                    } else alert(lang.searchError);
-                });
-            }
-            $G('address').onkeydown = function (evt){
-                evt = evt || event;
-                if (evt.keyCode == 13) {
-                    doSearch();
-                }
-            };
-            $G("doSearch").onclick = doSearch;
-            dialog.onok = function (){
-                var center = map.getCenter();
-                var point = marker.getPosition();
-                var url = "http://maps.googleapis.com/maps/api/staticmap?center=" + center.lat() + ',' + center.lng() + "&zoom=" + map.zoom + "&size=520x340&maptype=" + map.getMapTypeId() + "&markers=" + point.lat() + ',' + point.lng() + "&sensor=false";
-                editor.execCommand('inserthtml', '<img width="520" height="340" src="' + url + '"' + (imgcss ? ' style="' + imgcss + '"' :'') + '/>');
-            };
-
-            function getPars(str,par){
-                var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
-                return reg.exec(str)[1];
-            }
-            var img = editor.selection.getRange().getClosedNode();
-            if(img && img.src.indexOf("http://maps.googleapis.com/maps/api/staticmap")!=-1){
-                var url = img.getAttribute("src");
-                var centers = getPars(url,"center").split(",");
-                point = new google.maps.LatLng(Number(centers[0]),Number(centers[1]));
-                map.setCenter(point);
-                map.setZoom(Number(getPars(url,"zoom")));
-                centers = getPars(url,"markers").split(",");
-                marker.setPosition(new google.maps.LatLng(Number(centers[0]),Number(centers[1])));
-                imgcss = img.style.cssText;
-            }else{
-                setTimeout(function(){
-                    doSearch();
-                },30)
-            }
-    });
-
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/help/help.css b/server/public/ueditor/dialogs/help/help.css
deleted file mode 100644
index 39ade49..0000000
--- a/server/public/ueditor/dialogs/help/help.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.wrapper{width: 370px;margin: 10px auto;zoom: 1;}
-.tabbody{height: 360px;}
-.tabbody .panel{width:100%;height: 360px;position: absolute;background: #fff;}
-.tabbody .panel h1{font-size:26px;margin: 5px 0 0 5px;}
-.tabbody .panel p{font-size:12px;margin: 5px 0 0 5px;}
-.tabbody table{width:90%;line-height: 20px;margin: 5px 0 0 5px;;}
-.tabbody table thead{font-weight: bold;line-height: 25px;}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/help/help.html b/server/public/ueditor/dialogs/help/help.html
deleted file mode 100644
index 0d6f9ef..0000000
--- a/server/public/ueditor/dialogs/help/help.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title>甯姪</title>
-    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="help.css">
-</head>
-<body>
-<div class="wrapper" id="helptab">
-    <div id="tabHeads" class="tabhead">
-        <span class="focus" tabsrc="about"><var id="lang_input_about"></var></span>
-        <span tabsrc="shortcuts"><var id="lang_input_shortcuts"></var></span>
-    </div>
-    <div id="tabBodys" class="tabbody">
-        <div id="about" class="panel">
-            <h1>UEditor</h1>
-            <p id="version"></p>
-            <p><var id="lang_input_introduction"></var></p>
-        </div>
-        <div id="shortcuts" class="panel">
-            <table>
-                <thead>
-                <tr>
-                    <td><var id="lang_Txt_shortcuts"></var></td>
-                    <td><var id="lang_Txt_func"></var></td>
-                </tr>
-                </thead>
-                <tbody>
-                <tr>
-                    <td>ctrl+b</td>
-                    <td><var id="lang_Txt_bold"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+c</td>
-                    <td><var id="lang_Txt_copy"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+x</td>
-                    <td><var id="lang_Txt_cut"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+v</td>
-                    <td><var id="lang_Txt_Paste"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+y</td>
-                    <td><var id="lang_Txt_undo"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+z</td>
-                    <td><var id="lang_Txt_redo"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+i</td>
-                    <td><var id="lang_Txt_italic"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+u</td>
-                    <td><var id="lang_Txt_underline"></var></td>
-                </tr>
-                <tr>
-                    <td>ctrl+a</td>
-                    <td><var id="lang_Txt_selectAll"></var></td>
-                </tr>
-                <tr>
-                    <td>shift+enter</td>
-                    <td><var id="lang_Txt_visualEnter"></var></td>
-                </tr>
-                <tr>
-                    <td>alt+z</td>
-                    <td><var id="lang_Txt_fullscreen"></var></td>
-                </tr>
-                </tbody>
-            </table>
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="help.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/help/help.js b/server/public/ueditor/dialogs/help/help.js
deleted file mode 100644
index 4ad9e76..0000000
--- a/server/public/ueditor/dialogs/help/help.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-9-26
- * Time: 涓嬪崍1:06
- * To change this template use File | Settings | File Templates.
- */
-/**
- * tab鐐瑰嚮澶勭悊浜嬩欢
- * @param tabHeads
- * @param tabBodys
- * @param obj
- */
-function clickHandler( tabHeads,tabBodys,obj ) {
-    //head鏍峰紡鏇存敼
-    for ( var k = 0, len = tabHeads.length; k < len; k++ ) {
-        tabHeads[k].className = "";
-    }
-    obj.className = "focus";
-    //body鏄鹃殣
-    var tabSrc = obj.getAttribute( "tabSrc" );
-    for ( var j = 0, length = tabBodys.length; j < length; j++ ) {
-        var body = tabBodys[j],
-            id = body.getAttribute( "id" );
-        body.onclick = function(){
-            this.style.zoom = 1;
-        };
-        if ( id != tabSrc ) {
-            body.style.zIndex = 1;
-        } else {
-            body.style.zIndex = 200;
-        }
-    }
-
-}
-
-/**
- * TAB鍒囨崲
- * @param tabParentId  tab鐨勭埗鑺傜偣ID鎴栬�呭璞℃湰韬�
- */
-function switchTab( tabParentId ) {
-    var tabElements = $G( tabParentId ).children,
-        tabHeads = tabElements[0].children,
-        tabBodys = tabElements[1].children;
-
-    for ( var i = 0, length = tabHeads.length; i < length; i++ ) {
-        var head = tabHeads[i];
-        if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head );
-        head.onclick = function () {
-            clickHandler(tabHeads,tabBodys,this);
-        }
-    }
-}
-switchTab("helptab");
-
-document.getElementById('version').innerHTML = parent.UE.version;
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/image/image.css b/server/public/ueditor/dialogs/image/image.css
deleted file mode 100644
index 33310ac..0000000
--- a/server/public/ueditor/dialogs/image/image.css
+++ /dev/null
@@ -1,894 +0,0 @@
-@charset "utf-8";
-/* dialog鏍峰紡 */
-.wrapper {
-    zoom: 1;
-    width: 630px;
-    *width: 626px;
-    height: 380px;
-    margin: 0 auto;
-    padding: 10px;
-    position: relative;
-    font-family: sans-serif;
-}
-
-/*tab鏍峰紡妗嗗ぇ灏�*/
-.tabhead {
-    float:left;
-}
-.tabbody {
-    width: 100%;
-    height: 346px;
-    position: relative;
-    clear: both;
-}
-
-.tabbody .panel {
-    position: absolute;
-    width: 0;
-    height: 0;
-    background: #fff;
-    overflow: hidden;
-    display: none;
-}
-
-.tabbody .panel.focus {
-    width: 100%;
-    height: 346px;
-    display: block;
-}
-
-/* 鍥剧墖瀵归綈鏂瑰紡 */
-.alignBar{
-    float:right;
-    margin-top: 5px;
-    position: relative;
-}
-
-.alignBar .algnLabel{
-    float:left;
-    height: 20px;
-    line-height: 20px;
-}
-
-.alignBar #alignIcon{
-    zoom:1;
-    _display: inline;
-    display: inline-block;
-    position: relative;
-}
-.alignBar #alignIcon span{
-    float: left;
-    cursor: pointer;
-    display: block;
-    width: 19px;
-    height: 17px;
-    margin-right: 3px;
-    margin-left: 3px;
-    background-image: url(./images/alignicon.jpg);
-}
-.alignBar #alignIcon .none-align{
-    background-position: 0 -18px;
-}
-.alignBar #alignIcon .left-align{
-    background-position: -20px -18px;
-}
-.alignBar #alignIcon .right-align{
-    background-position: -40px -18px;
-}
-.alignBar #alignIcon .center-align{
-    background-position: -60px -18px;
-}
-.alignBar #alignIcon .none-align.focus{
-    background-position: 0 0;
-}
-.alignBar #alignIcon .left-align.focus{
-    background-position: -20px 0;
-}
-.alignBar #alignIcon .right-align.focus{
-    background-position: -40px 0;
-}
-.alignBar #alignIcon .center-align.focus{
-    background-position: -60px 0;
-}
-
-
-
-
-/* 杩滅▼鍥剧墖鏍峰紡 */
-#remote {
-    z-index: 200;
-}
-
-#remote .top{
-    width: 100%;
-    margin-top: 25px;
-}
-#remote .left{
-    display: block;
-    float: left;
-    width: 300px;
-    height:10px;
-}
-#remote .right{
-    display: block;
-    float: right;
-    width: 300px;
-    height:10px;
-}
-#remote .row{
-    margin-left: 20px;
-    clear: both;
-    height: 40px;
-}
-
-#remote .row label{
-    text-align: center;
-    width: 50px;
-    zoom:1;
-    _display: inline;
-    display:inline-block;
-    vertical-align: middle;
-}
-#remote .row label.algnLabel{
-    float: left;
-
-}
-
-#remote input.text{
-    width: 150px;
-    padding: 3px 6px;
-    font-size: 14px;
-    line-height: 1.42857143;
-    color: #555;
-    background-color: #fff;
-    background-image: none;
-    border: 1px solid #ccc;
-    border-radius: 4px;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-}
-#remote input.text:focus {
-    border-color: #66afe9;
-    outline: 0;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
-}
-#remote #url{
-    width: 500px;
-    margin-bottom: 2px;
-}
-#remote #width,
-#remote #height{
-    width: 20px;
-    margin-left: 2px;
-    margin-right: 2px;
-}
-#remote #border,
-#remote #vhSpace,
-#remote #title{
-    width: 180px;
-    margin-right: 5px;
-}
-#remote #lock{
-}
-#remote #lockicon{
-    zoom: 1;
-    _display:inline;
-    display: inline-block;
-    width: 20px;
-    height: 20px;
-    background: url("../../themes/default/images/lock.gif") -13px -13px no-repeat;
-    vertical-align: middle;
-}
-#remote #preview{
-    clear: both;
-    width: 260px;
-    height: 240px;
-    z-index: 9999;
-    margin-top: 10px;
-    background-color: #eee;
-    overflow: hidden;
-}
-
-/* 涓婁紶鍥剧墖 */
-.tabbody #upload.panel {
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-    background: #fff;
-    display: block;
-}
-
-.tabbody #upload.panel.focus {
-    width: 100%;
-    height: 346px;
-    display: block;
-    clip: auto;
-}
-
-#upload .queueList {
-    margin: 0;
-    width: 100%;
-    height: 100%;
-    position: absolute;
-    overflow: hidden;
-}
-
-#upload p {
-    margin: 0;
-}
-
-.element-invisible {
-    width: 0 !important;
-    height: 0 !important;
-    border: 0;
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-}
-
-#upload .placeholder {
-    margin: 10px;
-    border: 2px dashed #e6e6e6;
-    *border: 0px dashed #e6e6e6;
-    height: 172px;
-    padding-top: 150px;
-    text-align: center;
-    background: url(./images/image.png) center 70px no-repeat;
-    color: #cccccc;
-    font-size: 18px;
-    position: relative;
-    top:0;
-    *top: 10px;
-}
-
-#upload .placeholder .webuploader-pick {
-    font-size: 18px;
-    background: #00b7ee;
-    border-radius: 3px;
-    line-height: 44px;
-    padding: 0 30px;
-    *width: 120px;
-    color: #fff;
-    display: inline-block;
-    margin: 0 auto 20px auto;
-    cursor: pointer;
-    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-}
-
-#upload .placeholder .webuploader-pick-hover {
-    background: #00a2d4;
-}
-
-
-#filePickerContainer {
-    text-align: center;
-}
-
-#upload .placeholder .flashTip {
-    color: #666666;
-    font-size: 12px;
-    position: absolute;
-    width: 100%;
-    text-align: center;
-    bottom: 20px;
-}
-
-#upload .placeholder .flashTip a {
-    color: #0785d1;
-    text-decoration: none;
-}
-
-#upload .placeholder .flashTip a:hover {
-    text-decoration: underline;
-}
-
-#upload .placeholder.webuploader-dnd-over {
-    border-color: #999999;
-}
-
-#upload .filelist {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-    height: 300px;
-}
-
-#upload .filelist:after {
-    content: '';
-    display: block;
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    clear: both;
-    position: relative;
-}
-
-#upload .filelist li {
-    width: 113px;
-    height: 113px;
-    background: url(./images/bg.png);
-    text-align: center;
-    margin: 9px 0 0 9px;
-    *margin: 6px 0 0 6px;
-    position: relative;
-    display: block;
-    float: left;
-    overflow: hidden;
-    font-size: 12px;
-}
-
-#upload .filelist li p.log {
-    position: relative;
-    top: -45px;
-}
-
-#upload .filelist li p.title {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    top: 5px;
-    text-indent: 5px;
-    text-align: left;
-}
-
-#upload .filelist li p.progress {
-    position: absolute;
-    width: 100%;
-    bottom: 0;
-    left: 0;
-    height: 8px;
-    overflow: hidden;
-    z-index: 50;
-    margin: 0;
-    border-radius: 0;
-    background: none;
-    -webkit-box-shadow: 0 0 0;
-}
-
-#upload .filelist li p.progress span {
-    display: none;
-    overflow: hidden;
-    width: 0;
-    height: 100%;
-    background: #1483d8 url(./images/progress.png) repeat-x;
-
-    -webit-transition: width 200ms linear;
-    -moz-transition: width 200ms linear;
-    -o-transition: width 200ms linear;
-    -ms-transition: width 200ms linear;
-    transition: width 200ms linear;
-
-    -webkit-animation: progressmove 2s linear infinite;
-    -moz-animation: progressmove 2s linear infinite;
-    -o-animation: progressmove 2s linear infinite;
-    -ms-animation: progressmove 2s linear infinite;
-    animation: progressmove 2s linear infinite;
-
-    -webkit-transform: translateZ(0);
-}
-
-@-webkit-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@-moz-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-#upload .filelist li p.imgWrap {
-    position: relative;
-    z-index: 2;
-    line-height: 113px;
-    vertical-align: middle;
-    overflow: hidden;
-    width: 113px;
-    height: 113px;
-
-    -webkit-transform-origin: 50% 50%;
-    -moz-transform-origin: 50% 50%;
-    -o-transform-origin: 50% 50%;
-    -ms-transform-origin: 50% 50%;
-    transform-origin: 50% 50%;
-
-    -webit-transition: 200ms ease-out;
-    -moz-transition: 200ms ease-out;
-    -o-transition: 200ms ease-out;
-    -ms-transition: 200ms ease-out;
-    transition: 200ms ease-out;
-}
-
-#upload .filelist li img {
-    width: 100%;
-}
-
-#upload .filelist li p.error {
-    background: #f43838;
-    color: #fff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    height: 28px;
-    line-height: 28px;
-    width: 100%;
-    z-index: 100;
-    display:none;
-}
-
-#upload .filelist li .success {
-    display: block;
-    position: absolute;
-    left: 0;
-    bottom: 0;
-    height: 40px;
-    width: 100%;
-    z-index: 200;
-    background: url(./images/success.png) no-repeat right bottom;
-    background: url(./images/success.gif) no-repeat right bottom \9;
-}
-
-#upload .filelist li.filePickerBlock {
-    width: 113px;
-    height: 113px;
-    background: url(./images/image.png) no-repeat center 12px;
-    border: 1px solid #eeeeee;
-    border-radius: 0;
-}
-#upload .filelist li.filePickerBlock div.webuploader-pick  {
-    width: 100%;
-    height: 100%;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    background: none;
-    font-size: 0;
-}
-
-#upload .filelist div.file-panel {
-    position: absolute;
-    height: 0;
-    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
-    background: rgba(0, 0, 0, 0.5);
-    width: 100%;
-    top: 0;
-    left: 0;
-    overflow: hidden;
-    z-index: 300;
-}
-
-#upload .filelist div.file-panel span {
-    width: 24px;
-    height: 24px;
-    display: inline;
-    float: right;
-    text-indent: -9999px;
-    overflow: hidden;
-    background: url(./images/icons.png) no-repeat;
-    background: url(./images/icons.gif) no-repeat \9;
-    margin: 5px 1px 1px;
-    cursor: pointer;
-    -webkit-tap-highlight-color: rgba(0,0,0,0);
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .filelist div.file-panel span.rotateLeft {
-    display:none;
-    background-position: 0 -24px;
-}
-
-#upload .filelist div.file-panel span.rotateLeft:hover {
-    background-position: 0 0;
-}
-
-#upload .filelist div.file-panel span.rotateRight {
-    display:none;
-    background-position: -24px -24px;
-}
-
-#upload .filelist div.file-panel span.rotateRight:hover {
-    background-position: -24px 0;
-}
-
-#upload .filelist div.file-panel span.cancel {
-    background-position: -48px -24px;
-}
-
-#upload .filelist div.file-panel span.cancel:hover {
-    background-position: -48px 0;
-}
-
-#upload .statusBar {
-    height: 45px;
-    border-bottom: 1px solid #dadada;
-    margin: 0 10px;
-    padding: 0;
-    line-height: 45px;
-    vertical-align: middle;
-    position: relative;
-}
-
-#upload .statusBar .progress {
-    border: 1px solid #1483d8;
-    width: 198px;
-    background: #fff;
-    height: 18px;
-    position: absolute;
-    top: 12px;
-    display: none;
-    text-align: center;
-    line-height: 18px;
-    color: #6dbfff;
-    margin: 0 10px 0 0;
-}
-#upload .statusBar .progress span.percentage {
-    width: 0;
-    height: 100%;
-    left: 0;
-    top: 0;
-    background: #1483d8;
-    position: absolute;
-}
-#upload .statusBar .progress span.text {
-    position: relative;
-    z-index: 10;
-}
-
-#upload .statusBar .info {
-    display: inline-block;
-    font-size: 14px;
-    color: #666666;
-}
-
-#upload .statusBar .btns {
-    position: absolute;
-    top: 7px;
-    right: 0;
-    line-height: 30px;
-}
-
-#filePickerBtn {
-    display: inline-block;
-    float: left;
-}
-#upload .statusBar .btns .webuploader-pick,
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-uploading,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #ffffff;
-    border: 1px solid #cfcfcf;
-    color: #565656;
-    padding: 0 18px;
-    display: inline-block;
-    border-radius: 3px;
-    margin-left: 10px;
-    cursor: pointer;
-    font-size: 14px;
-    float: left;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-#upload .statusBar .btns .webuploader-pick-hover,
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-uploading:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #f0f0f0;
-}
-
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-paused{
-    background: #00b7ee;
-    color: #fff;
-    border-color: transparent;
-}
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover{
-    background: #00a2d4;
-}
-
-#upload .statusBar .btns .uploadBtn.disabled {
-    pointer-events: none;
-    filter:alpha(opacity=60);
-    -moz-opacity:0.6;
-    -khtml-opacity: 0.6;
-    opacity: 0.6;
-}
-
-
-
-/* 鍥剧墖绠$悊鏍峰紡 */
-#online {
-    width: 100%;
-    height: 336px;
-    padding: 10px 0 0 0;
-}
-#online #imageList{
-    width: 100%;
-    height: 100%;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-}
-#online ul {
-    display: block;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-}
-#online li {
-    float: left;
-    display: block;
-    list-style: none;
-    padding: 0;
-    width: 113px;
-    height: 113px;
-    margin: 0 0 9px 9px;
-    *margin: 0 0 6px 6px;
-    background-color: #eee;
-    overflow: hidden;
-    cursor: pointer;
-    position: relative;
-}
-#online li.clearFloat {
-    float: none;
-    clear: both;
-    display: block;
-    width:0;
-    height:0;
-    margin: 0;
-    padding: 0;
-}
-#online li img {
-    cursor: pointer;
-}
-#online li .icon {
-    cursor: pointer;
-    width: 113px;
-    height: 113px;
-    position: absolute;
-    top: 0;
-    left: 0;
-    z-index: 2;
-    border: 0;
-    background-repeat: no-repeat;
-}
-#online li .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-}
-#online li.selected .icon {
-    background-image: url(images/success.png);
-    background-image: url(images/success.gif)\9;
-    background-position: 75px 75px;
-}
-#online li.selected .icon:hover {
-    width: 107px;
-    height: 107px;
-    border: 3px solid #1094fa;
-    background-position: 72px 72px;
-}
-
-
-/* 鍥剧墖鎼滅储鏍峰紡 */
-#search .searchBar {
-    width: 100%;
-    height: 30px;
-    margin: 10px 0 5px 0;
-    padding: 0;
-}
-
-#search input.text{
-    width: 150px;
-    padding: 3px 6px;
-    font-size: 14px;
-    line-height: 1.42857143;
-    color: #555;
-    background-color: #fff;
-    background-image: none;
-    border: 1px solid #ccc;
-    border-radius: 4px;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-}
-#search input.text:focus {
-    border-color: #66afe9;
-    outline: 0;
-    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
-    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
-}
-#search input.searchTxt {
-    margin-left:5px;
-    padding-left: 5px;
-    background: #FFF;
-    width: 300px;
-    *width: 260px;
-    height: 21px;
-    line-height: 21px;
-    float: left;
-    dislay: block;
-}
-
-#search .searchType {
-    width: 65px;
-    height: 28px;
-    padding:0;
-    line-height: 28px;
-    border: 1px solid #d7d7d7;
-    border-radius: 0;
-    vertical-align: top;
-    margin-left: 5px;
-    float: left;
-    dislay: block;
-}
-
-#search #searchBtn,
-#search #searchReset {
-    display: inline-block;
-    margin-bottom: 0;
-    margin-right: 5px;
-    padding: 4px 10px;
-    font-weight: 400;
-    text-align: center;
-    vertical-align: middle;
-    cursor: pointer;
-    background-image: none;
-    border: 1px solid transparent;
-    white-space: nowrap;
-    font-size: 14px;
-    border-radius: 4px;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-    vertical-align: top;
-    float: right;
-}
-
-#search #searchBtn {
-    color: white;
-    border-color: #285e8e;
-    background-color: #3b97d7;
-}
-#search #searchReset {
-    color: #333;
-    border-color: #ccc;
-    background-color: #fff;
-}
-#search #searchBtn:hover {
-    background-color: #3276b1;
-}
-#search #searchReset:hover {
-    background-color: #eee;
-}
-
-#search .msg {
-    margin-left: 5px;
-}
-
-#search .searchList{
-    width: 100%;
-    height: 300px;
-    overflow: hidden;
-    clear: both;
-}
-#search .searchList ul{
-    margin:0;
-    padding:0;
-    list-style:none;
-    clear: both;
-    width: 100%;
-    height: 100%;
-    overflow-x: hidden;
-    overflow-y: auto;
-    zoom: 1;
-    position: relative;
-}
-
-#search .searchList li {
-    list-style:none;
-    float: left;
-    display: block;
-    width: 115px;
-    margin: 5px 10px 5px 20px;
-    *margin: 5px 10px 5px 15px;
-    padding:0;
-    font-size: 12px;
-    box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
-    -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
-    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
-    position: relative;
-    vertical-align: top;
-    text-align: center;
-    overflow: hidden;
-    cursor: pointer;
-    filter: alpha(Opacity=100);
-    -moz-opacity: 1;
-    opacity: 1;
-    border: 2px solid #eee;
-}
-
-#search .searchList li.selected {
-    filter: alpha(Opacity=40);
-    -moz-opacity: 0.4;
-    opacity: 0.4;
-    border: 2px solid #00a0e9;
-}
-
-#search .searchList li p {
-    background-color: #eee;
-    margin: 0;
-    padding: 0;
-    position: relative;
-    width:100%;
-    height:115px;
-    overflow: hidden;
-}
-
-#search .searchList li p img {
-    cursor: pointer;
-    border: 0;
-}
-
-#search .searchList li a {
-    color: #999;
-    border-top: 1px solid #F2F2F2;
-    background: #FAFAFA;
-    text-align: center;
-    display: block;
-    padding: 0 5px;
-    width: 105px;
-    height:32px;
-    line-height:32px;
-    white-space:nowrap;
-    text-overflow:ellipsis;
-    text-decoration: none;
-    overflow: hidden;
-    word-break: break-all;
-}
-
-#search .searchList a:hover {
-    text-decoration: underline;
-    color: #333;
-}
-#search .searchList .clearFloat{
-    clear: both;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/image/image.html b/server/public/ueditor/dialogs/image/image.html
deleted file mode 100644
index 81f45ad..0000000
--- a/server/public/ueditor/dialogs/image/image.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!doctype html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>ueditor鍥剧墖瀵硅瘽妗�</title>
-    <script type="text/javascript" src="../internal.js"></script>
-
-    <!-- jquery -->
-    <script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
-
-    <!-- webuploader -->
-    <script src="../../third-party/webuploader/webuploader.min.js"></script>
-    <link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
-
-    <!-- image dialog -->
-    <link rel="stylesheet" href="image.css" type="text/css" />
-</head>
-<body>
-
-    <div class="wrapper">
-        <div id="tabhead" class="tabhead">
-            <span class="tab" data-content-id="remote"><var id="lang_tab_remote"></var></span>
-            <span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
-            <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
-            <span class="tab" data-content-id="search"><var id="lang_tab_search"></var></span>
-        </div>
-        <div class="alignBar">
-            <label class="algnLabel"><var id="lang_input_align"></var></label>
-                    <span id="alignIcon">
-                        <span id="noneAlign" class="none-align focus" data-align="none"></span>
-                        <span id="leftAlign" class="left-align" data-align="left"></span>
-                        <span id="rightAlign" class="right-align" data-align="right"></span>
-                        <span id="centerAlign" class="center-align" data-align="center"></span>
-                    </span>
-            <input id="align" name="align" type="hidden" value="none"/>
-        </div>
-        <div id="tabbody" class="tabbody">
-
-            <!-- 杩滅▼鍥剧墖 -->
-            <div id="remote" class="panel">
-                <div class="top">
-                    <div class="row">
-                        <label for="url"><var id="lang_input_url"></var></label>
-                        <span><input class="text" id="url" type="text"/></span>
-                    </div>
-                </div>
-                <div class="left">
-                    <div class="row">
-                        <label><var id="lang_input_size"></var></label>
-                        <span><var id="lang_input_width">&nbsp;&nbsp;</var><input class="text" type="text" id="width"/>px </span>
-                        <span><var id="lang_input_height">&nbsp;&nbsp;</var><input class="text" type="text" id="height"/>px </span>
-                        <span><input id="lock" type="checkbox" disabled="disabled"><span id="lockicon"></span></span>
-                    </div>
-                    <div class="row">
-                        <label><var id="lang_input_border"></var></label>
-                        <span><input class="text" type="text" id="border"/>px </span>
-                    </div>
-                    <div class="row">
-                        <label><var id="lang_input_vhspace"></var></label>
-                        <span><input class="text" type="text" id="vhSpace"/>px </span>
-                    </div>
-                    <div class="row">
-                        <label><var id="lang_input_title"></var></label>
-                        <span><input class="text" type="text" id="title"/></span>
-                    </div>
-                </div>
-                <div class="right"><div id="preview"></div></div>
-            </div>
-
-            <!-- 涓婁紶鍥剧墖 -->
-            <div id="upload" class="panel focus">
-                <div id="queueList" class="queueList">
-                    <div class="statusBar element-invisible">
-                        <div class="progress">
-                            <span class="text">0%</span>
-                            <span class="percentage"></span>
-                        </div><div class="info"></div>
-                        <div class="btns">
-                            <div id="filePickerBtn"></div>
-                            <div class="uploadBtn"><var id="lang_start_upload"></var></div>
-                        </div>
-                    </div>
-                    <div id="dndArea" class="placeholder">
-                        <div class="filePickerContainer">
-                            <div id="filePickerReady"></div>
-                        </div>
-                    </div>
-                    <ul class="filelist element-invisible">
-                        <li id="filePickerBlock" class="filePickerBlock"></li>
-                    </ul>
-                </div>
-            </div>
-
-            <!-- 鍦ㄧ嚎鍥剧墖 -->
-            <div id="online" class="panel">
-                <div id="imageList"><var id="lang_imgLoading"></var></div>
-            </div>
-
-            <!-- 鎼滅储鍥剧墖 -->
-            <div id="search" class="panel">
-                <div class="searchBar">
-                    <input id="searchTxt" class="searchTxt text" type="text" />
-                    <select id="searchType" class="searchType">
-                        <option value="&s=4&z=0"></option>
-                        <option value="&s=1&z=19"></option>
-                        <option value="&s=2&z=0"></option>
-                        <option value="&s=3&z=0"></option>
-                    </select>
-                    <input id="searchReset" type="button"  />
-                    <input id="searchBtn" type="button"  />
-                </div>
-                <div id="searchList" class="searchList"><ul id="searchListUl"></ul></div>
-            </div>
-
-        </div>
-    </div>
-    <script type="text/javascript" src="image.js"></script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/image/image.js b/server/public/ueditor/dialogs/image/image.js
deleted file mode 100644
index b078d6a..0000000
--- a/server/public/ueditor/dialogs/image/image.js
+++ /dev/null
@@ -1,1148 +0,0 @@
-/**
- * User: Jinqn
- * Date: 14-04-08
- * Time: 涓嬪崍16:34
- * 涓婁紶鍥剧墖瀵硅瘽妗嗛�昏緫浠g爜,鍖呮嫭tab: 杩滅▼鍥剧墖/涓婁紶鍥剧墖/鍦ㄧ嚎鍥剧墖/鎼滅储鍥剧墖
- */
-
-(function () {
-
-    var remoteImage,
-        uploadImage,
-        onlineImage,
-        searchImage;
-
-    window.onload = function () {
-        initTabs();
-        initAlign();
-        initButtons();
-    };
-
-    /* 鍒濆鍖杢ab鏍囩 */
-    function initTabs() {
-        var tabs = $G('tabhead').children;
-        for (var i = 0; i < tabs.length; i++) {
-            domUtils.on(tabs[i], "click", function (e) {
-                var target = e.target || e.srcElement;
-                setTabFocus(target.getAttribute('data-content-id'));
-            });
-        }
-
-        var img = editor.selection.getRange().getClosedNode();
-        if (img && img.tagName && img.tagName.toLowerCase() == 'img') {
-            setTabFocus('remote');
-        } else {
-            setTabFocus('upload');
-        }
-    }
-
-    /* 鍒濆鍖杢abbody */
-    function setTabFocus(id) {
-        if(!id) return;
-        var i, bodyId, tabs = $G('tabhead').children;
-        for (i = 0; i < tabs.length; i++) {
-            bodyId = tabs[i].getAttribute('data-content-id');
-            if (bodyId == id) {
-                domUtils.addClass(tabs[i], 'focus');
-                domUtils.addClass($G(bodyId), 'focus');
-            } else {
-                domUtils.removeClasses(tabs[i], 'focus');
-                domUtils.removeClasses($G(bodyId), 'focus');
-            }
-        }
-        switch (id) {
-            case 'remote':
-                remoteImage = remoteImage || new RemoteImage();
-                break;
-            case 'upload':
-                setAlign(editor.getOpt('imageInsertAlign'));
-                uploadImage = uploadImage || new UploadImage('queueList');
-                break;
-            case 'online':
-                setAlign(editor.getOpt('imageManagerInsertAlign'));
-                onlineImage = onlineImage || new OnlineImage('imageList');
-                onlineImage.reset();
-                break;
-            case 'search':
-                setAlign(editor.getOpt('imageManagerInsertAlign'));
-                searchImage = searchImage || new SearchImage();
-                break;
-        }
-    }
-
-    /* 鍒濆鍖杘nok浜嬩欢 */
-    function initButtons() {
-
-        dialog.onok = function () {
-            var remote = false, list = [], id, tabs = $G('tabhead').children;
-            for (var i = 0; i < tabs.length; i++) {
-                if (domUtils.hasClass(tabs[i], 'focus')) {
-                    id = tabs[i].getAttribute('data-content-id');
-                    break;
-                }
-            }
-
-            switch (id) {
-                case 'remote':
-                    list = remoteImage.getInsertList();
-                    break;
-                case 'upload':
-                    list = uploadImage.getInsertList();
-                    var count = uploadImage.getQueueCount();
-                    if (count) {
-                        $('.info', '#queueList').html('<span style="color:red;">' + '杩樻湁2涓湭涓婁紶鏂囦欢'.replace(/[\d]/, count) + '</span>');
-                        return false;
-                    }
-                    break;
-                case 'online':
-                    list = onlineImage.getInsertList();
-                    break;
-                case 'search':
-                    list = searchImage.getInsertList();
-                    remote = true;
-                    break;
-            }
-
-            if(list) {
-                editor.execCommand('insertimage', list);
-                remote && editor.fireEvent("catchRemoteImage");
-            }
-        };
-    }
-
-
-    /* 鍒濆鍖栧鍏舵柟寮忕殑鐐瑰嚮浜嬩欢 */
-    function initAlign(){
-        /* 鐐瑰嚮align鍥炬爣 */
-        domUtils.on($G("alignIcon"), 'click', function(e){
-            var target = e.target || e.srcElement;
-            if(target.className && target.className.indexOf('-align') != -1) {
-                setAlign(target.getAttribute('data-align'));
-            }
-        });
-    }
-
-    /* 璁剧疆瀵归綈鏂瑰紡 */
-    function setAlign(align){
-        align = align || 'none';
-        var aligns = $G("alignIcon").children;
-        for(i = 0; i < aligns.length; i++){
-            if(aligns[i].getAttribute('data-align') == align) {
-                domUtils.addClass(aligns[i], 'focus');
-                $G("align").value = aligns[i].getAttribute('data-align');
-            } else {
-                domUtils.removeClasses(aligns[i], 'focus');
-            }
-        }
-    }
-    /* 鑾峰彇瀵归綈鏂瑰紡 */
-    function getAlign(){
-        var align = $G("align").value || 'none';
-        return align == 'none' ? '':align;
-    }
-
-
-    /* 鍦ㄧ嚎鍥剧墖 */
-    function RemoteImage(target) {
-        this.container = utils.isString(target) ? document.getElementById(target) : target;
-        this.init();
-    }
-    RemoteImage.prototype = {
-        init: function () {
-            this.initContainer();
-            this.initEvents();
-        },
-        initContainer: function () {
-            this.dom = {
-                'url': $G('url'),
-                'width': $G('width'),
-                'height': $G('height'),
-                'border': $G('border'),
-                'vhSpace': $G('vhSpace'),
-                'title': $G('title'),
-                'align': $G('align')
-            };
-            var img = editor.selection.getRange().getClosedNode();
-            if (img) {
-                this.setImage(img);
-            }
-        },
-        initEvents: function () {
-            var _this = this,
-                locker = $G('lock');
-
-            /* 鏀瑰彉url */
-            domUtils.on($G("url"), 'keyup', updatePreview);
-            domUtils.on($G("border"), 'keyup', updatePreview);
-            domUtils.on($G("title"), 'keyup', updatePreview);
-
-            domUtils.on($G("width"), 'keyup', function(){
-                updatePreview();
-                if(locker.checked) {
-                    var proportion =locker.getAttribute('data-proportion');
-                    $G('height').value = Math.round(this.value / proportion);
-                } else {
-                    _this.updateLocker();
-                }
-            });
-            domUtils.on($G("height"), 'keyup', function(){
-                updatePreview();
-                if(locker.checked) {
-                    var proportion =locker.getAttribute('data-proportion');
-                    $G('width').value = Math.round(this.value * proportion);
-                } else {
-                    _this.updateLocker();
-                }
-            });
-            domUtils.on($G("lock"), 'change', function(){
-                var proportion = parseInt($G("width").value) /parseInt($G("height").value);
-                locker.setAttribute('data-proportion', proportion);
-            });
-
-            function updatePreview(){
-                _this.setPreview();
-            }
-        },
-        updateLocker: function(){
-            var width = $G('width').value,
-                height = $G('height').value,
-                locker = $G('lock');
-            if(width && height && width == parseInt(width) && height == parseInt(height)) {
-                locker.disabled = false;
-                locker.title = '';
-            } else {
-                locker.checked = false;
-                locker.disabled = 'disabled';
-                locker.title = lang.remoteLockError;
-            }
-        },
-        setImage: function(img){
-            /* 涓嶆槸姝e父鐨勫浘鐗� */
-            if (!img.tagName || img.tagName.toLowerCase() != 'img' && !img.getAttribute("src") || !img.src) return;
-
-            var wordImgFlag = img.getAttribute("word_img"),
-                src = wordImgFlag ? wordImgFlag.replace("&amp;", "&") : (img.getAttribute('_src') || img.getAttribute("src", 2).replace("&amp;", "&")),
-                align = editor.queryCommandValue("imageFloat");
-
-            /* 闃叉onchange浜嬩欢寰幆璋冪敤 */
-            if (src !== $G("url").value) $G("url").value = src;
-            if(src) {
-                /* 璁剧疆琛ㄥ崟鍐呭 */
-                $G("width").value = img.width || '';
-                $G("height").value = img.height || '';
-                $G("border").value = img.getAttribute("border") || '0';
-                $G("vhSpace").value = img.getAttribute("vspace") || '0';
-                $G("title").value = img.title || img.alt || '';
-                setAlign(align);
-                this.setPreview();
-                this.updateLocker();
-            }
-        },
-        getData: function(){
-            var data = {};
-            for(var k in this.dom){
-                data[k] = this.dom[k].value;
-            }
-            return data;
-        },
-        setPreview: function(){
-            var url = $G('url').value,
-                ow = parseInt($G('width').value, 10) || 0,
-                oh = parseInt($G('height').value, 10) || 0,
-                border = parseInt($G('border').value, 10) || 0,
-                title = $G('title').value,
-                preview = $G('preview'),
-                width,
-                height;
-
-            url = utils.unhtmlForUrl(url);
-            title = utils.unhtml(title);
-
-            width = ((!ow || !oh) ? preview.offsetWidth:Math.min(ow, preview.offsetWidth));
-            width = width+(border*2) > preview.offsetWidth ? width:(preview.offsetWidth - (border*2));
-            height = (!ow || !oh) ? '':width*oh/ow;
-
-            if(url) {
-                preview.innerHTML = '<img src="' + url + '" width="' + width + '" height="' + height + '" border="' + border + 'px solid #000" title="' + title + '" />';
-            }
-        },
-        getInsertList: function () {
-            var data = this.getData();
-            if(data['url']) {
-                return [{
-                    src: data['url'],
-                    _src: data['url'],
-                    width: data['width'] || '',
-                    height: data['height'] || '',
-                    border: data['border'] || '',
-                    floatStyle: data['align'] || '',
-                    vspace: data['vhSpace'] || '',
-                    title: data['title'] || '',
-                    alt: data['title'] || '',
-                    style: "width:" + data['width'] + "px;height:" + data['height'] + "px;"
-                }];
-            } else {
-                return [];
-            }
-        }
-    };
-
-
-
-    /* 涓婁紶鍥剧墖 */
-    function UploadImage(target) {
-        this.$wrap = target.constructor == String ? $('#' + target) : $(target);
-        this.init();
-    }
-    UploadImage.prototype = {
-        init: function () {
-            this.imageList = [];
-            this.initContainer();
-            this.initUploader();
-        },
-        initContainer: function () {
-            this.$queue = this.$wrap.find('.filelist');
-        },
-        /* 鍒濆鍖栧鍣� */
-        initUploader: function () {
-            var _this = this,
-                $ = jQuery,    // just in case. Make sure it's not an other libaray.
-                $wrap = _this.$wrap,
-            // 鍥剧墖瀹瑰櫒
-                $queue = $wrap.find('.filelist'),
-            // 鐘舵�佹爮锛屽寘鎷繘搴﹀拰鎺у埗鎸夐挳
-                $statusBar = $wrap.find('.statusBar'),
-            // 鏂囦欢鎬讳綋閫夋嫨淇℃伅銆�
-                $info = $statusBar.find('.info'),
-            // 涓婁紶鎸夐挳
-                $upload = $wrap.find('.uploadBtn'),
-            // 涓婁紶鎸夐挳
-                $filePickerBtn = $wrap.find('.filePickerBtn'),
-            // 涓婁紶鎸夐挳
-                $filePickerBlock = $wrap.find('.filePickerBlock'),
-            // 娌¢�夋嫨鏂囦欢涔嬪墠鐨勫唴瀹广��
-                $placeHolder = $wrap.find('.placeholder'),
-            // 鎬讳綋杩涘害鏉�
-                $progress = $statusBar.find('.progress').hide(),
-            // 娣诲姞鐨勬枃浠舵暟閲�
-                fileCount = 0,
-            // 娣诲姞鐨勬枃浠舵�诲ぇ灏�
-                fileSize = 0,
-            // 浼樺寲retina, 鍦╮etina涓嬭繖涓�兼槸2
-                ratio = window.devicePixelRatio || 1,
-            // 缂╃暐鍥惧ぇ灏�
-                thumbnailWidth = 113 * ratio,
-                thumbnailHeight = 113 * ratio,
-            // 鍙兘鏈塸edding, ready, uploading, confirm, done.
-                state = '',
-            // 鎵�鏈夋枃浠剁殑杩涘害淇℃伅锛宬ey涓篺ile id
-                percentages = {},
-                supportTransition = (function () {
-                    var s = document.createElement('p').style,
-                        r = 'transition' in s ||
-                            'WebkitTransition' in s ||
-                            'MozTransition' in s ||
-                            'msTransition' in s ||
-                            'OTransition' in s;
-                    s = null;
-                    return r;
-                })(),
-            // WebUploader瀹炰緥
-                uploader,
-                actionUrl = editor.getActionUrl(editor.getOpt('imageActionName')),
-                acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''),
-                imageMaxSize = editor.getOpt('imageMaxSize'),
-                imageCompressBorder = editor.getOpt('imageCompressBorder');
-
-            if (!WebUploader.Uploader.support()) {
-                $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
-                return;
-            } else if (!editor.getOpt('imageActionName')) {
-                $('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
-                return;
-            }
-
-            uploader = _this.uploader = WebUploader.create({
-                pick: {
-                    id: '#filePickerReady',
-                    label: lang.uploadSelectFile
-                },
-                accept: {
-                    title: 'Images',
-                    extensions: acceptExtensions,
-                    mimeTypes: 'image/*'
-                },
-                swf: '../../third-party/webuploader/Uploader.swf',
-                server: actionUrl,
-                fileVal: editor.getOpt('imageFieldName'),
-                duplicate: true,
-                fileSingleSizeLimit: imageMaxSize,    // 榛樿 2 M
-                compress: editor.getOpt('imageCompressEnable') ? {
-                    width: imageCompressBorder,
-                    height: imageCompressBorder,
-                    // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-                    quality: 90,
-                    // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-                    allowMagnify: false,
-                    // 鏄惁鍏佽瑁佸壀銆�
-                    crop: false,
-                    // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-                    preserveHeaders: true
-                }:false
-            });
-            uploader.addButton({
-                id: '#filePickerBlock'
-            });
-            uploader.addButton({
-                id: '#filePickerBtn',
-                label: lang.uploadAddFile
-            });
-
-            setState('pedding');
-
-            // 褰撴湁鏂囦欢娣诲姞杩涙潵鏃舵墽琛岋紝璐熻矗view鐨勫垱寤�
-            function addFile(file) {
-                var $li = $('<li id="' + file.id + '">' +
-                        '<p class="title">' + file.name + '</p>' +
-                        '<p class="imgWrap"></p>' +
-                        '<p class="progress"><span></span></p>' +
-                        '</li>'),
-
-                    $btns = $('<div class="file-panel">' +
-                        '<span class="cancel">' + lang.uploadDelete + '</span>' +
-                        '<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
-                        '<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
-                    $prgress = $li.find('p.progress span'),
-                    $wrap = $li.find('p.imgWrap'),
-                    $info = $('<p class="error"></p>').hide().appendTo($li),
-
-                    showError = function (code) {
-                        switch (code) {
-                            case 'exceed_size':
-                                text = lang.errorExceedSize;
-                                break;
-                            case 'interrupt':
-                                text = lang.errorInterrupt;
-                                break;
-                            case 'http':
-                                text = lang.errorHttp;
-                                break;
-                            case 'not_allow_type':
-                                text = lang.errorFileType;
-                                break;
-                            default:
-                                text = lang.errorUploadRetry;
-                                break;
-                        }
-                        $info.text(text).show();
-                    };
-
-                if (file.getStatus() === 'invalid') {
-                    showError(file.statusText);
-                } else {
-                    $wrap.text(lang.uploadPreview);
-                    if (browser.ie && browser.version <= 7) {
-                        $wrap.text(lang.uploadNoPreview);
-                    } else {
-                        uploader.makeThumb(file, function (error, src) {
-                            if (error || !src) {
-                                $wrap.text(lang.uploadNoPreview);
-                            } else {
-                                var $img = $('<img src="' + src + '">');
-                                $wrap.empty().append($img);
-                                $img.on('error', function () {
-                                    $wrap.text(lang.uploadNoPreview);
-                                });
-                            }
-                        }, thumbnailWidth, thumbnailHeight);
-                    }
-                    percentages[ file.id ] = [ file.size, 0 ];
-                    file.rotation = 0;
-
-                    /* 妫�鏌ユ枃浠舵牸寮� */
-                    if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
-                        showError('not_allow_type');
-                        uploader.removeFile(file);
-                    }
-                }
-
-                file.on('statuschange', function (cur, prev) {
-                    if (prev === 'progress') {
-                        $prgress.hide().width(0);
-                    } else if (prev === 'queued') {
-                        $li.off('mouseenter mouseleave');
-                        $btns.remove();
-                    }
-                    // 鎴愬姛
-                    if (cur === 'error' || cur === 'invalid') {
-                        showError(file.statusText);
-                        percentages[ file.id ][ 1 ] = 1;
-                    } else if (cur === 'interrupt') {
-                        showError('interrupt');
-                    } else if (cur === 'queued') {
-                        percentages[ file.id ][ 1 ] = 0;
-                    } else if (cur === 'progress') {
-                        $info.hide();
-                        $prgress.css('display', 'block');
-                    } else if (cur === 'complete') {
-                    }
-
-                    $li.removeClass('state-' + prev).addClass('state-' + cur);
-                });
-
-                $li.on('mouseenter', function () {
-                    $btns.stop().animate({height: 30});
-                });
-                $li.on('mouseleave', function () {
-                    $btns.stop().animate({height: 0});
-                });
-
-                $btns.on('click', 'span', function () {
-                    var index = $(this).index(),
-                        deg;
-
-                    switch (index) {
-                        case 0:
-                            uploader.removeFile(file);
-                            return;
-                        case 1:
-                            file.rotation += 90;
-                            break;
-                        case 2:
-                            file.rotation -= 90;
-                            break;
-                    }
-
-                    if (supportTransition) {
-                        deg = 'rotate(' + file.rotation + 'deg)';
-                        $wrap.css({
-                            '-webkit-transform': deg,
-                            '-mos-transform': deg,
-                            '-o-transform': deg,
-                            'transform': deg
-                        });
-                    } else {
-                        $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
-                    }
-
-                });
-
-                $li.insertBefore($filePickerBlock);
-            }
-
-            // 璐熻矗view鐨勯攢姣�
-            function removeFile(file) {
-                var $li = $('#' + file.id);
-                delete percentages[ file.id ];
-                updateTotalProgress();
-                $li.off().find('.file-panel').off().end().remove();
-            }
-
-            function updateTotalProgress() {
-                var loaded = 0,
-                    total = 0,
-                    spans = $progress.children(),
-                    percent;
-
-                $.each(percentages, function (k, v) {
-                    total += v[ 0 ];
-                    loaded += v[ 0 ] * v[ 1 ];
-                });
-
-                percent = total ? loaded / total : 0;
-
-                spans.eq(0).text(Math.round(percent * 100) + '%');
-                spans.eq(1).css('width', Math.round(percent * 100) + '%');
-                updateStatus();
-            }
-
-            function setState(val, files) {
-
-                if (val != state) {
-
-                    var stats = uploader.getStats();
-
-                    $upload.removeClass('state-' + state);
-                    $upload.addClass('state-' + val);
-
-                    switch (val) {
-
-                        /* 鏈�夋嫨鏂囦欢 */
-                        case 'pedding':
-                            $queue.addClass('element-invisible');
-                            $statusBar.addClass('element-invisible');
-                            $placeHolder.removeClass('element-invisible');
-                            $progress.hide(); $info.hide();
-                            uploader.refresh();
-                            break;
-
-                        /* 鍙互寮�濮嬩笂浼� */
-                        case 'ready':
-                            $placeHolder.addClass('element-invisible');
-                            $queue.removeClass('element-invisible');
-                            $statusBar.removeClass('element-invisible');
-                            $progress.hide(); $info.show();
-                            $upload.text(lang.uploadStart);
-                            uploader.refresh();
-                            break;
-
-                        /* 涓婁紶涓� */
-                        case 'uploading':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadPause);
-                            break;
-
-                        /* 鏆傚仠涓婁紶 */
-                        case 'paused':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadContinue);
-                            break;
-
-                        case 'confirm':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadStart);
-
-                            stats = uploader.getStats();
-                            if (stats.successNum && !stats.uploadFailNum) {
-                                setState('finish');
-                                return;
-                            }
-                            break;
-
-                        case 'finish':
-                            $progress.hide(); $info.show();
-                            if (stats.uploadFailNum) {
-                                $upload.text(lang.uploadRetry);
-                            } else {
-                                $upload.text(lang.uploadStart);
-                            }
-                            break;
-                    }
-
-                    state = val;
-                    updateStatus();
-
-                }
-
-                if (!_this.getQueueCount()) {
-                    $upload.addClass('disabled')
-                } else {
-                    $upload.removeClass('disabled')
-                }
-
-            }
-
-            function updateStatus() {
-                var text = '', stats;
-
-                if (state === 'ready') {
-                    text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
-                } else if (state === 'confirm') {
-                    stats = uploader.getStats();
-                    if (stats.uploadFailNum) {
-                        text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
-                    }
-                } else {
-                    stats = uploader.getStats();
-                    text = lang.updateStatusFinish.replace('_', fileCount).
-                        replace('_KB', WebUploader.formatSize(fileSize)).
-                        replace('_', stats.successNum);
-
-                    if (stats.uploadFailNum) {
-                        text += lang.updateStatusError.replace('_', stats.uploadFailNum);
-                    }
-                }
-
-                $info.html(text);
-            }
-
-            uploader.on('fileQueued', function (file) {
-                fileCount++;
-                fileSize += file.size;
-
-                if (fileCount === 1) {
-                    $placeHolder.addClass('element-invisible');
-                    $statusBar.show();
-                }
-
-                addFile(file);
-            });
-
-            uploader.on('fileDequeued', function (file) {
-                fileCount--;
-                fileSize -= file.size;
-
-                removeFile(file);
-                updateTotalProgress();
-            });
-
-            uploader.on('filesQueued', function (file) {
-                if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
-                    setState('ready');
-                }
-                updateTotalProgress();
-            });
-
-            uploader.on('all', function (type, files) {
-                switch (type) {
-                    case 'uploadFinished':
-                        setState('confirm', files);
-                        break;
-                    case 'startUpload':
-                        /* 娣诲姞棰濆鐨凣ET鍙傛暟 */
-                        var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-                            url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params);
-                        uploader.option('server', url);
-                        setState('uploading', files);
-                        break;
-                    case 'stopUpload':
-                        setState('paused', files);
-                        break;
-                }
-            });
-
-            uploader.on('uploadBeforeSend', function (file, data, header) {
-                //杩欓噷鍙互閫氳繃data瀵硅薄娣诲姞POST鍙傛暟
-                header['X_Requested_With'] = 'XMLHttpRequest';
-                // HaoChuan9421
-                if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){
-                    for(var key in editor.options.headers){
-                        header[key] = editor.options.headers[key]
-                    }
-                }
-            });
-
-            uploader.on('uploadProgress', function (file, percentage) {
-                var $li = $('#' + file.id),
-                    $percent = $li.find('.progress span');
-
-                $percent.css('width', percentage * 100 + '%');
-                percentages[ file.id ][ 1 ] = percentage;
-                updateTotalProgress();
-            });
-
-            uploader.on('uploadSuccess', function (file, ret) {
-                var $file = $('#' + file.id);
-                try {
-                    var responseText = (ret._raw || ret),
-                        json = utils.str2json(responseText);
-                    if (json.state == 'SUCCESS') {
-                        _this.imageList.push(json);
-                        $file.append('<span class="success"></span>');
-                    } else {
-                        $file.find('.error').text(json.state).show();
-                    }
-                } catch (e) {
-                    $file.find('.error').text(lang.errorServerUpload).show();
-                }
-            });
-
-            uploader.on('uploadError', function (file, code) {
-            });
-            uploader.on('error', function (code, file) {
-                if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
-                    addFile(file);
-                }
-            });
-            uploader.on('uploadComplete', function (file, ret) {
-            });
-
-            $upload.on('click', function () {
-                if ($(this).hasClass('disabled')) {
-                    return false;
-                }
-
-                if (state === 'ready') {
-                    uploader.upload();
-                } else if (state === 'paused') {
-                    uploader.upload();
-                } else if (state === 'uploading') {
-                    uploader.stop();
-                }
-            });
-
-            $upload.addClass('state-' + state);
-            updateTotalProgress();
-        },
-        getQueueCount: function () {
-            var file, i, status, readyFile = 0, files = this.uploader.getFiles();
-            for (i = 0; file = files[i++]; ) {
-                status = file.getStatus();
-                if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
-            }
-            return readyFile;
-        },
-        destroy: function () {
-            this.$wrap.remove();
-        },
-        getInsertList: function () {
-            var i, data, list = [],
-                align = getAlign(),
-                prefix = editor.getOpt('imageUrlPrefix');
-            for (i = 0; i < this.imageList.length; i++) {
-                data = this.imageList[i];
-                list.push({
-                    src: prefix + data.url,
-                    _src: prefix + data.url,
-                    title: data.title,
-                    alt: data.original,
-                    floatStyle: align
-                });
-            }
-            return list;
-        }
-    };
-
-
-    /* 鍦ㄧ嚎鍥剧墖 */
-    function OnlineImage(target) {
-        this.container = utils.isString(target) ? document.getElementById(target) : target;
-        this.init();
-    }
-    OnlineImage.prototype = {
-        init: function () {
-            this.reset();
-            this.initEvents();
-        },
-        /* 鍒濆鍖栧鍣� */
-        initContainer: function () {
-            this.container.innerHTML = '';
-            this.list = document.createElement('ul');
-            this.clearFloat = document.createElement('li');
-
-            domUtils.addClass(this.list, 'list');
-            domUtils.addClass(this.clearFloat, 'clearFloat');
-
-            this.list.appendChild(this.clearFloat);
-            this.container.appendChild(this.list);
-        },
-        /* 鍒濆鍖栨粴鍔ㄤ簨浠�,婊氬姩鍒板湴姝ヨ嚜鍔ㄦ媺鍙栨暟鎹� */
-        initEvents: function () {
-            var _this = this;
-
-            /* 婊氬姩鎷夊彇鍥剧墖 */
-            domUtils.on($G('imageList'), 'scroll', function(e){
-                var panel = this;
-                if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
-                    _this.getImageData();
-                }
-            });
-            /* 閫変腑鍥剧墖 */
-            domUtils.on(this.container, 'click', function (e) {
-                var target = e.target || e.srcElement,
-                    li = target.parentNode;
-
-                if (li.tagName.toLowerCase() == 'li') {
-                    if (domUtils.hasClass(li, 'selected')) {
-                        domUtils.removeClasses(li, 'selected');
-                    } else {
-                        domUtils.addClass(li, 'selected');
-                    }
-                }
-            });
-        },
-        /* 鍒濆鍖栫涓�娆$殑鏁版嵁 */
-        initData: function () {
-
-            /* 鎷夊彇鏁版嵁闇�瑕佷娇鐢ㄧ殑鍊� */
-            this.state = 0;
-            this.listSize = editor.getOpt('imageManagerListSize');
-            this.listIndex = 0;
-            this.listEnd = false;
-
-            /* 绗竴娆℃媺鍙栨暟鎹� */
-            this.getImageData();
-        },
-        /* 閲嶇疆鐣岄潰 */
-        reset: function() {
-            this.initContainer();
-            this.initData();
-        },
-        /* 鍚戝悗鍙版媺鍙栧浘鐗囧垪琛ㄦ暟鎹� */
-        getImageData: function () {
-            var _this = this;
-
-            if(!_this.listEnd && !this.isLoadingData) {
-                this.isLoadingData = true;
-                var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')),
-                    isJsonp = utils.isCrossDomainUrl(url);
-                ajax.request(url, {
-                    'timeout': 100000,
-                    'dataType': isJsonp ? 'jsonp':'',
-                    'data': utils.extend({
-                            start: this.listIndex,
-                            size: this.listSize
-                        }, editor.queryCommandValue('serverparam')),
-                    'method': 'get',
-                    'onsuccess': function (r) {
-                        try {
-                            var json = isJsonp ? r:eval('(' + r.responseText + ')');
-                            if (json.state == 'SUCCESS') {
-                                _this.pushData(json.list);
-                                _this.listIndex = parseInt(json.start) + parseInt(json.list.length);
-                                if(_this.listIndex >= json.total) {
-                                    _this.listEnd = true;
-                                }
-                                _this.isLoadingData = false;
-                            }
-                        } catch (e) {
-                            if(r.responseText.indexOf('ue_separate_ue') != -1) {
-                                var list = r.responseText.split(r.responseText);
-                                _this.pushData(list);
-                                _this.listIndex = parseInt(list.length);
-                                _this.listEnd = true;
-                                _this.isLoadingData = false;
-                            }
-                        }
-                    },
-                    'onerror': function () {
-                        _this.isLoadingData = false;
-                    }
-                });
-            }
-        },
-        /* 娣诲姞鍥剧墖鍒板垪琛ㄧ晫闈笂 */
-        pushData: function (list) {
-            var i, item, img, icon, _this = this,
-                urlPrefix = editor.getOpt('imageManagerUrlPrefix');
-            for (i = 0; i < list.length; i++) {
-                if(list[i] && list[i].url) {
-                    item = document.createElement('li');
-                    img = document.createElement('img');
-                    icon = document.createElement('span');
-
-                    domUtils.on(img, 'load', (function(image){
-                        return function(){
-                            _this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
-                        }
-                    })(img));
-                    img.width = 113;
-                    img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) );
-                    img.setAttribute('_src', urlPrefix + list[i].url);
-                    domUtils.addClass(icon, 'icon');
-
-                    item.appendChild(img);
-                    item.appendChild(icon);
-                    this.list.insertBefore(item, this.clearFloat);
-                }
-            }
-        },
-        /* 鏀瑰彉鍥剧墖澶у皬 */
-        scale: function (img, w, h, type) {
-            var ow = img.width,
-                oh = img.height;
-
-            if (type == 'justify') {
-                if (ow >= oh) {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            } else {
-                if (ow >= oh) {
-                    img.width = w * ow / oh;
-                    img.height = h;
-                    img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-                } else {
-                    img.width = w;
-                    img.height = h * oh / ow;
-                    img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-                }
-            }
-        },
-        getInsertList: function () {
-            var i, lis = this.list.children, list = [], align = getAlign();
-            for (i = 0; i < lis.length; i++) {
-                if (domUtils.hasClass(lis[i], 'selected')) {
-                    var img = lis[i].firstChild,
-                        src = img.getAttribute('_src');
-                    list.push({
-                        src: src,
-                        _src: src,
-                        alt: src.substr(src.lastIndexOf('/') + 1),
-                        floatStyle: align
-                    });
-                }
-
-            }
-            return list;
-        }
-    };
-
-    /*鎼滅储鍥剧墖 */
-    function SearchImage() {
-        this.init();
-    }
-    SearchImage.prototype = {
-        init: function () {
-            this.initEvents();
-        },
-        initEvents: function(){
-            var _this = this;
-
-            /* 鐐瑰嚮鎼滅储鎸夐挳 */
-            domUtils.on($G('searchBtn'), 'click', function(){
-                var key = $G('searchTxt').value;
-                if(key && key != lang.searchRemind) {
-                    _this.getImageData();
-                }
-            });
-            /* 鐐瑰嚮娓呴櫎濡� */
-            domUtils.on($G('searchReset'), 'click', function(){
-                $G('searchTxt').value = lang.searchRemind;
-                $G('searchListUl').innerHTML = '';
-                $G('searchType').selectedIndex = 0;
-            });
-            /* 鎼滅储妗嗚仛鐒� */
-            domUtils.on($G('searchTxt'), 'focus', function(){
-                var key = $G('searchTxt').value;
-                if(key && key == lang.searchRemind) {
-                    $G('searchTxt').value = '';
-                }
-            });
-            /* 鎼滅储妗嗗洖杞﹂敭鎼滅储 */
-            domUtils.on($G('searchTxt'), 'keydown', function(e){
-                var keyCode = e.keyCode || e.which;
-                if (keyCode == 13) {
-                    $G('searchBtn').click();
-                }
-            });
-
-            /* 閫変腑鍥剧墖 */
-            domUtils.on($G('searchList'), 'click', function(e){
-                var target = e.target || e.srcElement,
-                    li = target.parentNode.parentNode;
-
-                if (li.tagName.toLowerCase() == 'li') {
-                    if (domUtils.hasClass(li, 'selected')) {
-                        domUtils.removeClasses(li, 'selected');
-                    } else {
-                        domUtils.addClass(li, 'selected');
-                    }
-                }
-            });
-        },
-        encodeToGb2312:function (str){
-            if(!str) return '';
-            var strOut = "",
-                z = 'D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9';
-
-            for (var i = 0; i < str.length; i++) {
-                var c = str.charAt(i),
-                    code = str.charCodeAt(i);
-                if (c == " ") strOut += "+";
-                else if (code >= 19968 && code <= 40869) {
-                    var index = code - 19968;
-                    strOut += "%" + z.substr(index * 4, 2) + "%" + z.substr(index * 4 + 2, 2);
-                } else {
-                    strOut += "%" + str.charCodeAt(i).toString(16);
-                }
-            }
-            return strOut;
-        },
-        /* 鏀瑰彉鍥剧墖澶у皬 */
-        scale: function (img, w, h) {
-            var ow = img.width,
-                oh = img.height;
-
-            if (ow >= oh) {
-                img.width = w * ow / oh;
-                img.height = h;
-                img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
-            } else {
-                img.width = w;
-                img.height = h * oh / ow;
-                img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
-            }
-        },
-        getImageData: function(){
-            var _this = this,
-                key = $G('searchTxt').value,
-                type = $G('searchType').value,
-                keepOriginName = editor.options.keepOriginName ? "1" : "0",
-                url = "http://image.baidu.com/i?ct=201326592&cl=2&lm=-1&st=-1&tn=baiduimagejson&istype=2&rn=32&fm=index&pv=&word=" + _this.encodeToGb2312(key) + type + "&keeporiginname=" + keepOriginName + "&" + +new Date;
-
-            $G('searchListUl').innerHTML = lang.searchLoading;
-            ajax.request(url, {
-                'dataType': 'jsonp',
-                'charset': 'GB18030',
-                'onsuccess':function(json){
-                    var list = [];
-                    if(json && json.data) {
-                        for(var i = 0; i < json.data.length; i++) {
-                            if(json.data[i].objURL) {
-                                list.push({
-                                    title: json.data[i].fromPageTitleEnc,
-                                    src: json.data[i].objURL,
-                                    url: json.data[i].fromURL
-                                });
-                            }
-                        }
-                    }
-                    _this.setList(list);
-                },
-                'onerror':function(){
-                    $G('searchListUl').innerHTML = lang.searchRetry;
-                }
-            });
-        },
-        /* 娣诲姞鍥剧墖鍒板垪琛ㄧ晫闈笂 */
-        setList: function (list) {
-            var i, item, p, img, link, _this = this,
-                listUl = $G('searchListUl');
-
-            listUl.innerHTML = '';
-            if(list.length) {
-                for (i = 0; i < list.length; i++) {
-                    item = document.createElement('li');
-                    p = document.createElement('p');
-                    img = document.createElement('img');
-                    link = document.createElement('a');
-
-                    img.onload = function () {
-                        _this.scale(this, 113, 113);
-                    };
-                    img.width = 113;
-                    img.setAttribute('src', list[i].src);
-
-                    link.href = list[i].url;
-                    link.target = '_blank';
-                    link.title = list[i].title;
-                    link.innerHTML = list[i].title;
-
-                    p.appendChild(img);
-                    item.appendChild(p);
-                    item.appendChild(link);
-                    listUl.appendChild(item);
-                }
-            } else {
-                listUl.innerHTML = lang.searchRetry;
-            }
-        },
-        getInsertList: function () {
-            var child,
-                src,
-                align = getAlign(),
-                list = [],
-                items = $G('searchListUl').children;
-            for(var i = 0; i < items.length; i++) {
-                child = items[i].firstChild && items[i].firstChild.firstChild;
-                if(child.tagName && child.tagName.toLowerCase() == 'img' && domUtils.hasClass(items[i], 'selected')) {
-                    src = child.src;
-                    list.push({
-                        src: src,
-                        _src: src,
-                        alt: src.substr(src.lastIndexOf('/') + 1),
-                        floatStyle: align
-                    });
-                }
-            }
-            return list;
-        }
-    };
-
-})();
diff --git a/server/public/ueditor/dialogs/image/images/alignicon.jpg b/server/public/ueditor/dialogs/image/images/alignicon.jpg
deleted file mode 100644
index 754755b..0000000
--- a/server/public/ueditor/dialogs/image/images/alignicon.jpg
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/image/images/bg.png b/server/public/ueditor/dialogs/image/images/bg.png
deleted file mode 100644
index 580be0a..0000000
--- a/server/public/ueditor/dialogs/image/images/bg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/image/images/icons.gif b/server/public/ueditor/dialogs/image/images/icons.gif
deleted file mode 100644
index 78459de..0000000
--- a/server/public/ueditor/dialogs/image/images/icons.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/image/images/icons.png b/server/public/ueditor/dialogs/image/images/icons.png
deleted file mode 100644
index 12e4700..0000000
--- a/server/public/ueditor/dialogs/image/images/icons.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/image/images/image.png b/server/public/ueditor/dialogs/image/images/image.png
deleted file mode 100644
index 19699f6..0000000
--- a/server/public/ueditor/dialogs/image/images/image.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/image/images/progress.png b/server/public/ueditor/dialogs/image/images/progress.png
deleted file mode 100644
index 717c486..0000000
--- a/server/public/ueditor/dialogs/image/images/progress.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/image/images/success.gif b/server/public/ueditor/dialogs/image/images/success.gif
deleted file mode 100644
index 8d4f311..0000000
--- a/server/public/ueditor/dialogs/image/images/success.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/image/images/success.png b/server/public/ueditor/dialogs/image/images/success.png
deleted file mode 100644
index 94f968d..0000000
--- a/server/public/ueditor/dialogs/image/images/success.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/insertframe/insertframe.html b/server/public/ueditor/dialogs/insertframe/insertframe.html
deleted file mode 100644
index 8271f0b..0000000
--- a/server/public/ueditor/dialogs/insertframe/insertframe.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <title></title>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        .warp {width: 320px;height: 153px;margin-left:5px;padding: 20px 0 0 15px;position: relative;}
-        #url {width: 290px; margin-bottom: 2px; margin-left: -6px; margin-left: -2px\9;*margin-left:0;_margin-left:0; }
-        .format span{display: inline-block; width: 58px;text-align: center; zoom:1;}
-        table td{padding:5px 0;}
-        #align{width: 65px;height: 23px;line-height: 22px;}
-    </style>
-</head>
-<body>
-<div class="warp">
-        <table width="300" cellpadding="0" cellspacing="0">
-            <tr>
-                <td colspan="2" class="format">
-                    <span><var id="lang_input_address"></var></span>
-                    <input style="width:200px" id="url" type="text" value=""/>
-                </td>
-            </tr>
-            <tr>
-                <td colspan="2" class="format"><span><var id="lang_input_width"></var></span><input style="width:200px" type="text" id="width"/> px</td>
-
-            </tr>
-            <tr>
-                <td colspan="2" class="format"><span><var id="lang_input_height"></var></span><input style="width:200px" type="text" id="height"/> px</td>
-            </tr>
-            <tr>
-                <td><span><var id="lang_input_isScroll"></var></span><input type="checkbox" id="scroll"/> </td>
-                <td><span><var id="lang_input_frameborder"></var></span><input type="checkbox" id="frameborder"/> </td>
-            </tr>
-
-            <tr>
-                <td colspan="2"><span><var id="lang_input_alignMode"></var></span>
-                    <select id="align">
-                        <option value=""></option>
-                        <option value="left"></option>
-                        <option value="right"></option>
-                    </select>
-                </td>
-            </tr>
-        </table>
-</div>
-<script type="text/javascript">
-    var iframe = editor._iframe;
-    if(iframe){
-        $G("url").value = iframe.getAttribute("src")||"";
-        $G("width").value = iframe.getAttribute("width")||iframe.style.width.replace("px","")||"";
-        $G("height").value = iframe.getAttribute("height") || iframe.style.height.replace("px","") ||"";
-        $G("scroll").checked = (iframe.getAttribute("scrolling") == "yes") ? true : false;
-        $G("frameborder").checked = (iframe.getAttribute("frameborder") == "1") ? true : false;
-        $G("align").value = iframe.align ? iframe.align : "";
-    }
-    function queding(){
-        var  url = $G("url").value.replace(/^\s*|\s*$/ig,""),
-                width = $G("width").value,
-                height = $G("height").value,
-                scroll = $G("scroll"),
-                frameborder = $G("frameborder"),
-                float = $G("align").value,
-                newIframe = editor.document.createElement("iframe"),
-                div;
-        if(!url){
-            alert(lang.enterAddress);
-            return false;
-        }
-        newIframe.setAttribute("src",/http:\/\/|https:\/\//ig.test(url) ? url : "http://"+url);
-        /^[1-9]+[.]?\d*$/g.test( width ) ? newIframe.setAttribute("width",width) : "";
-        /^[1-9]+[.]?\d*$/g.test( height ) ? newIframe.setAttribute("height",height) : "";
-        scroll.checked ?  newIframe.setAttribute("scrolling","yes") : newIframe.setAttribute("scrolling","no");
-        frameborder.checked ?  newIframe.setAttribute("frameborder","1",0) : newIframe.setAttribute("frameborder","0",0);
-        float ? newIframe.setAttribute("align",float) :  newIframe.setAttribute("align","");
-        if(iframe){
-            iframe.parentNode.insertBefore(newIframe,iframe);
-            domUtils.remove(iframe);
-        }else{
-            div = editor.document.createElement("div");
-            div.appendChild(newIframe);
-            editor.execCommand("inserthtml",div.innerHTML);
-        }
-        editor._iframe = null;
-        dialog.close();
-    }
-    dialog.onok = queding;
-    $G("url").onkeydown = function(evt){
-        evt = evt || event;
-        if(evt.keyCode == 13){
-            queding();
-        }
-    };
-    $focus($G( "url" ));
-
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/internal.js b/server/public/ueditor/dialogs/internal.js
deleted file mode 100644
index 1f6413b..0000000
--- a/server/public/ueditor/dialogs/internal.js
+++ /dev/null
@@ -1,81 +0,0 @@
-(function () {
-    var parent = window.parent;
-    //dialog瀵硅薄
-    dialog = parent.$EDITORUI[window.frameElement.id.replace( /_iframe$/, '' )];
-    //褰撳墠鎵撳紑dialog鐨勭紪杈戝櫒瀹炰緥
-    editor = dialog.editor;
-
-    UE = parent.UE;
-
-    domUtils = UE.dom.domUtils;
-
-    utils = UE.utils;
-
-    browser = UE.browser;
-
-    ajax = UE.ajax;
-
-    $G = function ( id ) {
-        return document.getElementById( id )
-    };
-    //focus鍏冪礌
-    $focus = function ( node ) {
-        setTimeout( function () {
-            if ( browser.ie ) {
-                var r = node.createTextRange();
-                r.collapse( false );
-                r.select();
-            } else {
-                node.focus()
-            }
-        }, 0 )
-    };
-    utils.loadFile(document,{
-        href:editor.options.themePath + editor.options.theme + "/dialogbase.css?cache="+Math.random(),
-        tag:"link",
-        type:"text/css",
-        rel:"stylesheet"
-    });
-    lang = editor.getLang(dialog.className.split( "-" )[2]);
-    if(lang){
-        domUtils.on(window,'load',function () {
-
-            var langImgPath = editor.options.langPath + editor.options.lang + "/images/";
-            //閽堝闈欐�佽祫婧�
-            for ( var i in lang["static"] ) {
-                var dom = $G( i );
-                if(!dom) continue;
-                var tagName = dom.tagName,
-                    content = lang["static"][i];
-                if(content.src){
-                    //clone
-                    content = utils.extend({},content,false);
-                    content.src = langImgPath + content.src;
-                }
-                if(content.style){
-                    content = utils.extend({},content,false);
-                    content.style = content.style.replace(/url\s*\(/g,"url(" + langImgPath)
-                }
-                switch ( tagName.toLowerCase() ) {
-                    case "var":
-                        dom.parentNode.replaceChild( document.createTextNode( content ), dom );
-                        break;
-                    case "select":
-                        var ops = dom.options;
-                        for ( var j = 0, oj; oj = ops[j]; ) {
-                            oj.innerHTML = content.options[j++];
-                        }
-                        for ( var p in content ) {
-                            p != "options" && dom.setAttribute( p, content[p] );
-                        }
-                        break;
-                    default :
-                        domUtils.setAttributes( dom, content);
-                }
-            }
-        } );
-    }
-
-
-})();
-
diff --git a/server/public/ueditor/dialogs/link/link.html b/server/public/ueditor/dialogs/link/link.html
deleted file mode 100644
index 317a650..0000000
--- a/server/public/ueditor/dialogs/link/link.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        *{margin:0;padding:0;color: #838383;}
-        table{font-size: 12px;margin: 10px;line-height: 30px}
-        .txt{width:300px;height:21px;line-height:21px;border:1px solid #d7d7d7;}
-    </style>
-</head>
-<body>
-    <table>
-        <tr>
-            <td><label for="text"> <var id="lang_input_text"></var></label></td>
-            <td><input class="txt" id="text" type="text" disabled="true"/></td>
-        </tr>
-        <tr>
-            <td><label for="href"> <var id="lang_input_url"></var></label></td>
-            <td><input class="txt" id="href" type="text" /></td>
-        </tr>
-        <tr>
-            <td><label for="title"> <var id="lang_input_title"></var></label></td>
-            <td><input class="txt" id="title" type="text"/></td>
-        </tr>
-        <tr>
-             <td colspan="2">
-                 <label for="target"><var id="lang_input_target"></var></label>
-                 <input id="target" type="checkbox"/>
-             </td>
-        </tr>
-        <tr>
-            <td colspan="2" id="msg"></td>
-        </tr>
-    </table>
-<script type="text/javascript">
-    var range = editor.selection.getRange(),
-        link = range.collapsed ? editor.queryCommandValue( "link" ) : editor.selection.getStart(),
-        url,
-        text = $G('text'),
-        rangeLink = domUtils.findParentByTagName(range.getCommonAncestor(),'a',true),
-        orgText;
-    link = domUtils.findParentByTagName( link, "a", true );
-    if(link){
-        url = utils.html(link.getAttribute( '_href' ) || link.getAttribute( 'href', 2 ));
-
-        if(rangeLink === link && !link.getElementsByTagName('img').length){
-            text.removeAttribute('disabled');
-            orgText = text.value = link[browser.ie ? 'innerText':'textContent'];
-        }else{
-            text.setAttribute('disabled','true');
-            text.value = lang.validLink;
-        }
-
-    }else{
-        if(range.collapsed){
-            text.removeAttribute('disabled');
-            text.value = '';
-        }else{
-            text.setAttribute('disabled','true');
-            text.value = lang.validLink;
-        }
-
-    }
-    $G("title").value = url ? link.title : "";
-    $G("href").value = url ? url: '';
-    $G("target").checked = url && link.target == "_blank" ? true :  false;
-    $focus($G("href"));
-
-    function handleDialogOk(){
-        var href =$G('href').value.replace(/^\s+|\s+$/g, '');
-        if(href){
-            if(!hrefStartWith(href,["http","/","ftp://",'#'])) {
-                href  = "http://" + href;
-            }
-            var obj = {
-                'href' : href,
-                'target' : $G("target").checked ? "_blank" : '_self',
-                'title' : $G("title").value.replace(/^\s+|\s+$/g, ''),
-                '_href':href
-            };
-            //淇敼閾炬帴鍐呭鐨勬儏鍐靛お鐗规畩浜嗭紝鎵�浠ュ厛鍋氬埌杩欓噷浜�
-            //todo:鎯呭喌澶氱殑鏃跺�欙紝鍋氬埌command閲�
-            if(orgText && text.value != orgText){
-                link[browser.ie ? 'innerText' : 'textContent'] =  obj.textValue = text.value;
-                range.selectNode(link).select()
-            }
-            if(range.collapsed){
-                obj.textValue = text.value;
-            }
-            editor.execCommand('link',utils.clearEmptyAttrs(obj) );
-            dialog.close();
-        }
-    }
-    dialog.onok = handleDialogOk;
-    $G('href').onkeydown = $G('title').onkeydown = function(evt){
-        evt = evt || window.event;
-        if (evt.keyCode == 13) {
-            handleDialogOk();
-            return false;
-        }
-    };
-    $G('href').onblur = function(){
-        if(!hrefStartWith(this.value,["http","/","ftp://",'#'])){
-            $G("msg").innerHTML = "<span style='color: red'>"+lang.httpPrompt+"</span>";
-        }else{
-            $G("msg").innerHTML = "";
-        }
-    };
-
-    function hrefStartWith(href,arr){
-        href = href.replace(/^\s+|\s+$/g, '');
-        for(var i=0,ai;ai=arr[i++];){
-            if(href.indexOf(ai)==0){
-                return true;
-            }
-        }
-        return false;
-    }
-
-
-</script>
-</body>
-</html>
diff --git a/server/public/ueditor/dialogs/map/map.html b/server/public/ueditor/dialogs/map/map.html
deleted file mode 100644
index 9857f2f..0000000
--- a/server/public/ueditor/dialogs/map/map.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title></title>
-    <script type="text/javascript" src="../internal.js"></script>
-    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true"></script>
-    <style type="text/css">
-        .content{width:530px; height: 350px;margin: 10px auto;}
-        .content table{width: 100%}
-        .content table td{vertical-align: middle;}
-        #city,#address{height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}
-        #city{width:60px}
-        #address{width:130px}
-        #is_dynamic_label span{vertical-align:middle;margin: 3px 0px 3px 3px;}
-        #is_dynamic_label input{vertical-align:middle;margin: 3px 3px 3px 50px;}
-    </style>
-</head>
-<body>
-<div class="content">
-    <table>
-        <tr>
-            <td><var id="lang_city"></var>:</td>
-            <td><input id="city" type="text" /></td>
-            <td><var id="lang_address"></var>:</td>
-            <td><input id="address" type="text" value="" /></td>
-            <td><a href="javascript:doSearch()" class="button"><var id="lang_search"></var></a></td>
-            <td><label id="is_dynamic_label" for="is_dynamic"><input id="is_dynamic" type="checkbox" name="is_dynamic" /><span><var id="lang_dynamicmap"></var></span></label></td>
-        </tr>
-    </table>
-    <div style="width:100%;height:340px;margin:5px auto;border:1px solid gray" id="container"></div>
-
-</div>
-<script type="text/javascript">
-    var map = new BMap.Map("container"),marker,point,styleStr;
-    map.enableScrollWheelZoom();
-    map.enableContinuousZoom();
-    function doSearch(){
-        if (!document.getElementById('city').value) {
-            alert(lang.cityMsg);
-            return;
-        }
-        var search = new BMap.LocalSearch(document.getElementById('city').value, {
-            onSearchComplete: function (results){
-                if (results && results.getNumPois()) {
-                    var points = [];
-                    for (var i=0; i<results.getCurrentNumPois(); i++) {
-                        points.push(results.getPoi(i).point);
-                    }
-                    if (points.length > 1) {
-                        map.setViewport(points);
-                    } else {
-                        map.centerAndZoom(points[0], 13);
-                    }
-                    point = map.getCenter();
-                    marker.setPoint(point);
-                } else {
-                    alert(lang.errorMsg);
-                }
-            }
-        });
-        search.search(document.getElementById('address').value || document.getElementById('city').value);
-    }
-    //鑾峰緱鍙傛暟
-    function getPars(str,par){
-        var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
-        return reg.exec(str)[1];
-    }
-    function init(){
-        var mapNode = editor.selection.getRange().getClosedNode(),
-            isMapImg = mapNode && /api[.]map[.]baidu[.]com/ig.test(mapNode.getAttribute("src")),
-            isMapIframe = mapNode && domUtils.hasClass(mapNode, 'ueditor_baidumap');
-        if(isMapImg || isMapIframe){
-            var url, centerPos, markerPos;
-            if(isMapIframe) {
-                url = decodeURIComponent(mapNode.getAttribute("src"));
-                $G('is_dynamic').checked = true;
-                styleStr = mapNode.style.cssText;
-            } else {
-                url = mapNode.getAttribute("src");
-                styleStr = mapNode.style.cssText;
-            }
-
-            centerPos = getPars(url,"center").split(",");
-            markerPos = getPars(url, "markers").split(",");
-            point = new BMap.Point(Number(centerPos[0]),Number(centerPos[1]));
-            marker = new BMap.Marker(new BMap.Point(Number(markerPos[0]), Number(markerPos[1])));
-            map.addControl(new BMap.NavigationControl());
-            map.centerAndZoom(point, Number(getPars(url,"zoom")));
-        }else{
-            point = new BMap.Point(116.404, 39.915);    // 鍒涘缓鐐瑰潗鏍�
-            marker = new BMap.Marker(point);
-            map.addControl(new BMap.NavigationControl());
-            map.centerAndZoom(point, 10);                     // 鍒濆鍖栧湴鍥�,璁剧疆涓績鐐瑰潗鏍囧拰鍦板浘绾у埆銆�
-        }
-        marker.enableDragging();
-        map.addOverlay(marker);
-    }
-    init();
-    document.getElementById('address').onkeydown = function (evt){
-        evt = evt || event;
-        if (evt.keyCode == 13) {
-            doSearch();
-        }
-    };
-    dialog.onok = function (){
-        var center = map.getCenter();
-        var zoom = map.zoomLevel;
-        var size = map.getSize();
-        var mapWidth = size.width;
-        var mapHeight = size.height;
-        var point = marker.getPoint();
-
-        if($G('is_dynamic').checked) {
-            var URL = editor.options.UEDITOR_HOME_URL,
-                url = [URL + (/\/$/.test(URL) ? '':'/') + "dialogs/map/show.html" +
-                    '#center=' + center.lng + ',' + center.lat,
-                    '&zoom=' + zoom,
-                    '&width=' + mapWidth,
-                    '&height=' + mapHeight,
-                    '&markers=' + point.lng + ',' + point.lat,
-                    '&markerStyles=' + 'l,A'].join('');
-            editor.execCommand('inserthtml', '<iframe class="ueditor_baidumap" src="' + url + '"' + (styleStr ? ' style="' + styleStr + '"' :'') + ' frameborder="0" width="' + (mapWidth+4) + '" height="' + (mapHeight+4) + '"></iframe>');
-        } else {
-            var url = "http://api.map.baidu.com/staticimage?center=" + center.lng + ',' + center.lat +
-                    "&zoom=" + zoom + "&width=" + size.width + '&height=' + size.height + "&markers=" + point.lng + ',' + point.lat;
-            editor.execCommand('inserthtml', '<img width="'+ size.width +'"height="'+ size.height +'" src="' + url + '"' + (styleStr ? ' style="' + styleStr + '"' :'') + '/>');
-        }
-    };
-    document.getElementById("address").focus();
-</script>
-
-
-</body>
-</html>
diff --git a/server/public/ueditor/dialogs/map/show.html b/server/public/ueditor/dialogs/map/show.html
deleted file mode 100644
index 4ed955d..0000000
--- a/server/public/ueditor/dialogs/map/show.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-    <meta charset="utf-8"/>
-    <meta name="keywords" content="鐧惧害鍦板浘,鐧惧害鍦板浘API锛岀櫨搴﹀湴鍥捐嚜瀹氫箟宸ュ叿锛岀櫨搴﹀湴鍥炬墍瑙佸嵆鎵�寰楀伐鍏�"/>
-    <meta name="description" content="鐧惧害鍦板浘API鑷畾涔夊湴鍥撅紝甯姪鐢ㄦ埛鍦ㄥ彲瑙嗗寲鎿嶄綔涓嬬敓鎴愮櫨搴﹀湴鍥�"/>
-    <title>鐧惧害鍦板浘API鑷畾涔夊湴鍥�</title>
-    <!--寮曠敤鐧惧害鍦板浘API-->
-    <style type="text/css">
-        html, body {
-            margin: 0;
-            padding: 0;
-            overflow: hidden;
-        }
-    </style>
-    <script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script>
-</head>
-
-<body onload="initMap();">
-<!--鐧惧害鍦板浘瀹瑰櫒-->
-<div style="width:697px;height:550px;border:#ccc solid 1px;" id="dituContent"></div>
-</body>
-<script type="text/javascript">
-    function getParam(name) {
-        return location.href.match(new RegExp('[?#&]' + name + '=([^?#&]+)', 'i')) ? RegExp.$1 : '';
-    }
-    var map, marker;
-    var centerParam = getParam('center');
-    var zoomParam = getParam('zoom');
-    var widthParam = getParam('width');
-    var heightParam = getParam('height');
-    var markersParam = getParam('markers');
-    var markerStylesParam = getParam('markerStyles');
-
-    //鍒涘缓鍜屽垵濮嬪寲鍦板浘鍑芥暟锛�
-    function initMap() {
-        // [FF]鍒囨崲妯″紡鍚庢姤閿�
-        if (!window.BMap) {
-            return;
-        }
-        var dituContent = document.getElementById('dituContent');
-        dituContent.style.width = widthParam + 'px';
-        dituContent.style.height = heightParam + 'px';
-
-        createMap();//鍒涘缓鍦板浘
-        setMapEvent();//璁剧疆鍦板浘浜嬩欢
-        addMapControl();//鍚戝湴鍥炬坊鍔犳帶浠�
-
-        // 鍒涘缓鏍囨敞
-        var markersArr = markersParam.split(',');
-        var point = new BMap.Point(markersArr[0], markersArr[1]);
-        marker = new BMap.Marker(point);
-        marker.enableDragging();
-        map.addOverlay(marker); // 灏嗘爣娉ㄦ坊鍔犲埌鍦板浘涓�
-
-        if(parent.editor && parent.document.body.contentEditable=="true") { //鍦ㄧ紪杈戠姸鎬佷笅
-            setMapListener();//鍦板浘鏀瑰彉淇敼澶栧眰鐨刬frame鏍囩src灞炴��
-        }
-    }
-
-    //鍒涘缓鍦板浘鍑芥暟锛�
-    function createMap() {
-        map = new BMap.Map("dituContent");//鍦ㄧ櫨搴﹀湴鍥惧鍣ㄤ腑鍒涘缓涓�涓湴鍥�
-        var centerArr = centerParam.split(',');
-        var point = new BMap.Point(parseFloat(centerArr[0]), parseFloat(centerArr[1]));//瀹氫箟涓�涓腑蹇冪偣鍧愭爣
-        map.centerAndZoom(point, parseInt(zoomParam));//璁惧畾鍦板浘鐨勪腑蹇冪偣鍜屽潗鏍囧苟灏嗗湴鍥炬樉绀哄湪鍦板浘瀹瑰櫒涓�
-    }
-
-    //鍦板浘浜嬩欢璁剧疆鍑芥暟锛�
-    function setMapEvent() {
-        map.enableDragging();//鍚敤鍦板浘鎷栨嫿浜嬩欢锛岄粯璁ゅ惎鐢�(鍙笉鍐�)
-        map.enableScrollWheelZoom();//鍚敤鍦板浘婊氳疆鏀惧ぇ缂╁皬
-        map.enableDoubleClickZoom();//鍚敤榧犳爣鍙屽嚮鏀惧ぇ锛岄粯璁ゅ惎鐢�(鍙笉鍐�)
-        map.enableKeyboard();//鍚敤閿洏涓婁笅宸﹀彸閿Щ鍔ㄥ湴鍥�
-    }
-
-    //鍦板浘鎺т欢娣诲姞鍑芥暟锛�
-    function addMapControl() {
-        //鍚戝湴鍥句腑娣诲姞缂╂斁鎺т欢
-        var ctrl_nav = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE});
-        map.addControl(ctrl_nav);
-        //鍚戝湴鍥句腑娣诲姞缂╃暐鍥炬帶浠�
-        var ctrl_ove = new BMap.OverviewMapControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, isOpen: 1});
-        map.addControl(ctrl_ove);
-        //鍚戝湴鍥句腑娣诲姞姣斾緥灏烘帶浠�
-        var ctrl_sca = new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT});
-        map.addControl(ctrl_sca);
-    }
-
-    function setMapListener() {
-        var editor = parent.editor, containerIframe,
-            iframes = parent.document.getElementsByTagName('iframe');
-        for (var key in iframes) {
-            if (iframes[key].contentWindow == window) {
-                containerIframe = iframes[key];
-                break;
-            }
-        }
-        if (containerIframe) {
-            map.addEventListener('moveend', mapListenerHandler);
-            map.addEventListener('zoomend', mapListenerHandler);
-            marker.addEventListener('dragend', mapListenerHandler);
-        }
-
-        function mapListenerHandler() {
-            var zoom = map.getZoom(),
-                center = map.getCenter(),
-                marker = window.marker.getPoint();
-            containerIframe.src = containerIframe.src.
-                replace(new RegExp('([?#&])center=([^?#&]+)', 'i'), '$1center=' + center.lng + ',' + center.lat).
-                replace(new RegExp('([?#&])markers=([^?#&]+)', 'i'), '$1markers=' + marker.lng + ',' + marker.lat).
-                replace(new RegExp('([?#&])zoom=([^?#&]+)', 'i'), '$1zoom=' + zoom);
-            editor.fireEvent('saveScene');
-        }
-    }
-</script>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/music/music.css b/server/public/ueditor/dialogs/music/music.css
deleted file mode 100644
index 82d6118..0000000
--- a/server/public/ueditor/dialogs/music/music.css
+++ /dev/null
@@ -1,30 +0,0 @@
-.wrapper{margin: 5px 10px;}
-
-.searchBar{height:30px;padding:7px 0 3px;text-align:center;}
-.searchBtn{font-size:13px;height:24px;}
-
-.resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;}
-
-.listPanel{overflow: hidden;}
-.panelon{display:block;}
-.paneloff{display:none}
-
-.page{width:220px;margin:20px auto;overflow: hidden;}
-.pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center}
-.pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff;
-   border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;}
-
-.m-box{width:460px;}
-.m-m{float: left;line-height: 20px;height: 20px;}
-.m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;}
-.m-l{float:left;width:40px; }
-.m-t{float:left;width:140px;}
-.m-s{float:left;width:110px;}
-.m-z{float:left;width:100px;}
-.m-try-t{float: left;width: 60px;;}
-
-.m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;}
-.m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;}
-
-.loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat}
-.empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/music/music.html b/server/public/ueditor/dialogs/music/music.html
deleted file mode 100644
index 7dad7a7..0000000
--- a/server/public/ueditor/dialogs/music/music.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta http-equiv="content-type" content="text/html; charset=utf-8">
-    <title>鎻掑叆闊充箰</title>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="music.css">
-</head>
-<body>
-<div class="wrapper">
-    <div class="searchBar">
-        <input id="J_searchName" type="text"/>
-        <input type="button" class="searchBtn" id="J_searchBtn">
-    </div>
-    <div class="resultBar" id="J_resultBar">
-        <div class="loading" style="display:none"></div>
-        <div class="empty"><var id="lang_input_tips"></var></div>
-    </div>
-    <div id="J_preview"></div>
-</div>
-<script type="text/javascript" src="music.js"></script>
-<script type="text/javascript">
-    var music = new Music;
-    dialog.onok = function () {
-        music.exec();
-    };
-    dialog.oncancel = function () {
-        $G('J_preview').innerHTML = "";
-    };
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/music/music.js b/server/public/ueditor/dialogs/music/music.js
deleted file mode 100644
index e43ea54..0000000
--- a/server/public/ueditor/dialogs/music/music.js
+++ /dev/null
@@ -1,192 +0,0 @@
-function Music() {
-    this.init();
-}
-(function () {
-    var pages = [],
-        panels = [],
-        selectedItem = null;
-    Music.prototype = {
-        total:70,
-        pageSize:10,
-        dataUrl:"http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.common",
-        playerUrl:"http://box.baidu.com/widget/flash/bdspacesong.swf",
-
-        init:function () {
-            var me = this;
-            domUtils.on($G("J_searchName"), "keyup", function (event) {
-                var e = window.event || event;
-                if (e.keyCode == 13) {
-                    me.dosearch();
-                }
-            });
-            domUtils.on($G("J_searchBtn"), "click", function () {
-                me.dosearch();
-            });
-        },
-        callback:function (data) {
-            var me = this;
-            me.data = data.song_list;
-            setTimeout(function () {
-                $G('J_resultBar').innerHTML = me._renderTemplate(data.song_list);
-            }, 300);
-        },
-        dosearch:function () {
-            var me = this;
-            selectedItem = null;
-            var key = $G('J_searchName').value;
-            if (utils.trim(key) == "")return false;
-            key = encodeURIComponent(key);
-            me._sent(key);
-        },
-        doselect:function (i) {
-            var me = this;
-            if (typeof i == 'object') {
-                selectedItem = i;
-            } else if (typeof i == 'number') {
-                selectedItem = me.data[i];
-            }
-        },
-        onpageclick:function (id) {
-            var me = this;
-            for (var i = 0; i < pages.length; i++) {
-                $G(pages[i]).className = 'pageoff';
-                $G(panels[i]).className = 'paneloff';
-            }
-            $G('page' + id).className = 'pageon';
-            $G('panel' + id).className = 'panelon';
-        },
-        listenTest:function (elem) {
-            var me = this,
-                view = $G('J_preview'),
-                is_play_action = (elem.className == 'm-try'),
-                old_trying = me._getTryingElem();
-
-            if (old_trying) {
-                old_trying.className = 'm-try';
-                view.innerHTML = '';
-            }
-            if (is_play_action) {
-                elem.className = 'm-trying';
-                view.innerHTML = me._buildMusicHtml(me._getUrl(true));
-            }
-        },
-        _sent:function (param) {
-            var me = this;
-            $G('J_resultBar').innerHTML = '<div class="loading"></div>';
-
-            utils.loadFile(document, {
-                src:me.dataUrl + '&query=' + param + '&page_size=' + me.total + '&callback=music.callback&.r=' + Math.random(),
-                tag:"script",
-                type:"text/javascript",
-                defer:"defer"
-            });
-        },
-        _removeHtml:function (str) {
-            var reg = /<\s*\/?\s*[^>]*\s*>/gi;
-            return str.replace(reg, "");
-        },
-        _getUrl:function (isTryListen) {
-            var me = this;
-            var param = 'from=tiebasongwidget&url=&name=' + encodeURIComponent(me._removeHtml(selectedItem.title)) + '&artist='
-                + encodeURIComponent(me._removeHtml(selectedItem.author)) + '&extra='
-                + encodeURIComponent(me._removeHtml(selectedItem.album_title))
-                + '&autoPlay='+isTryListen+'' + '&loop=true';
-            return  me.playerUrl + "?" + param;
-        },
-        _getTryingElem:function () {
-            var s = $G('J_listPanel').getElementsByTagName('span');
-
-            for (var i = 0; i < s.length; i++) {
-                if (s[i].className == 'm-trying')
-                    return s[i];
-            }
-            return null;
-        },
-        _buildMusicHtml:function (playerUrl) {
-            var html = '<embed class="BDE_try_Music" allowfullscreen="false" pluginspage="http://www.macromedia.com/go/getflashplayer"';
-            html += ' src="' + playerUrl + '"';
-            html += ' width="1" height="1" style="position:absolute;left:-2000px;"';
-            html += ' type="application/x-shockwave-flash" wmode="transparent" play="true" loop="false"';
-            html += ' menu="false" allowscriptaccess="never" scale="noborder">';
-            return html;
-        },
-        _byteLength:function (str) {
-            return str.replace(/[^\u0000-\u007f]/g, "\u0061\u0061").length;
-        },
-        _getMaxText:function (s) {
-            var me = this;
-            s = me._removeHtml(s);
-            if (me._byteLength(s) > 12)
-                return s.substring(0, 5) + '...';
-            if (!s) s = "&nbsp;";
-            return s;
-        },
-        _rebuildData:function (data) {
-            var me = this,
-                newData = [],
-                d = me.pageSize,
-                itembox;
-            for (var i = 0; i < data.length; i++) {
-                if ((i + d) % d == 0) {
-                    itembox = [];
-                    newData.push(itembox)
-                }
-                itembox.push(data[i]);
-            }
-            return newData;
-        },
-        _renderTemplate:function (data) {
-            var me = this;
-            if (data.length == 0)return '<div class="empty">' + lang.emptyTxt + '</div>';
-            data = me._rebuildData(data);
-            var s = [], p = [], t = [];
-            s.push('<div id="J_listPanel" class="listPanel">');
-            p.push('<div class="page">');
-            for (var i = 0, tmpList; tmpList = data[i++];) {
-                panels.push('panel' + i);
-                pages.push('page' + i);
-                if (i == 1) {
-                    s.push('<div id="panel' + i + '" class="panelon">');
-                    if (data.length != 1) {
-                        t.push('<div id="page' + i + '" onclick="music.onpageclick(' + i + ')" class="pageon">' + (i ) + '</div>');
-                    }
-                } else {
-                    s.push('<div id="panel' + i + '" class="paneloff">');
-                    t.push('<div id="page' + i + '" onclick="music.onpageclick(' + i + ')" class="pageoff">' + (i ) + '</div>');
-                }
-                s.push('<div class="m-box">');
-                s.push('<div class="m-h"><span class="m-t">' + lang.chapter + '</span><span class="m-s">' + lang.singer
-                    + '</span><span class="m-z">' + lang.special + '</span><span class="m-try-t">' + lang.listenTest + '</span></div>');
-                for (var j = 0, tmpObj; tmpObj = tmpList[j++];) {
-                    s.push('<label for="radio-' + i + '-' + j + '" class="m-m">');
-                    s.push('<input type="radio" id="radio-' + i + '-' + j + '" name="musicId" class="m-l" onclick="music.doselect(' + (me.pageSize * (i-1) + (j-1)) + ')"/>');
-                    s.push('<span class="m-t">' + me._getMaxText(tmpObj.title) + '</span>');
-                    s.push('<span class="m-s">' + me._getMaxText(tmpObj.author) + '</span>');
-                    s.push('<span class="m-z">' + me._getMaxText(tmpObj.album_title) + '</span>');
-                    s.push('<span class="m-try" onclick="music.doselect(' + (me.pageSize * (i-1) + (j-1)) + ');music.listenTest(this)"></span>');
-                    s.push('</label>');
-                }
-                s.push('</div>');
-                s.push('</div>');
-            }
-            t.reverse();
-            p.push(t.join(''));
-            s.push('</div>');
-            p.push('</div>');
-            return s.join('') + p.join('');
-        },
-        exec:function () {
-            var me = this;
-            if (selectedItem == null)   return;
-            $G('J_preview').innerHTML = "";
-            editor.execCommand('music', {
-                url:me._getUrl(false),
-                width:400,
-                height:95
-            });
-        }
-    };
-})();
-
-
-
diff --git a/server/public/ueditor/dialogs/preview/preview.html b/server/public/ueditor/dialogs/preview/preview.html
deleted file mode 100644
index ba3af27..0000000
--- a/server/public/ueditor/dialogs/preview/preview.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-    "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-        <style>
-            html,body{
-                height:100%;
-                width:100%;
-                padding:0;
-                margin:0;
-            }
-            #preview{
-                width:100%;
-                height:100%;
-                padding:0;
-                margin:0;
-            }
-            #preview *{font-family:sans-serif;font-size:16px;}
-        </style>
-        <script type="text/javascript" src="../internal.js"></script>
-        <script src="../../ueditor.parse.js"></script>
-        <title></title>
-    </head>
-    <body class="view">
-        <div id="preview" style="margin:8px">
-
-        </div>
-    </body>
-    <script>
-        document.getElementById('preview').innerHTML = editor.getContent();
-        uParse('#preview',{
-            rootPath : '../../',
-            chartContainerHeight:500
-        })
-        dialog.oncancel = function(){
-            document.getElementById('preview').innerHTML = '';
-        }
-    </script>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/scrawl/images/addimg.png b/server/public/ueditor/dialogs/scrawl/images/addimg.png
deleted file mode 100644
index 03a8713..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/addimg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/brush.png b/server/public/ueditor/dialogs/scrawl/images/brush.png
deleted file mode 100644
index efa6fdb..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/brush.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/delimg.png b/server/public/ueditor/dialogs/scrawl/images/delimg.png
deleted file mode 100644
index 5a892e4..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/delimg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/delimgH.png b/server/public/ueditor/dialogs/scrawl/images/delimgH.png
deleted file mode 100644
index 2f0c5c9..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/delimgH.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/empty.png b/server/public/ueditor/dialogs/scrawl/images/empty.png
deleted file mode 100644
index 0375196..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/empty.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/emptyH.png b/server/public/ueditor/dialogs/scrawl/images/emptyH.png
deleted file mode 100644
index 838ca72..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/emptyH.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/eraser.png b/server/public/ueditor/dialogs/scrawl/images/eraser.png
deleted file mode 100644
index 63e87ce..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/eraser.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/redo.png b/server/public/ueditor/dialogs/scrawl/images/redo.png
deleted file mode 100644
index 12cd9bb..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/redo.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/redoH.png b/server/public/ueditor/dialogs/scrawl/images/redoH.png
deleted file mode 100644
index d9f33d3..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/redoH.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/scale.png b/server/public/ueditor/dialogs/scrawl/images/scale.png
deleted file mode 100644
index 935a3f3..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/scale.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/scaleH.png b/server/public/ueditor/dialogs/scrawl/images/scaleH.png
deleted file mode 100644
index 72e64a9..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/scaleH.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/size.png b/server/public/ueditor/dialogs/scrawl/images/size.png
deleted file mode 100644
index 8366845..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/size.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/undo.png b/server/public/ueditor/dialogs/scrawl/images/undo.png
deleted file mode 100644
index 084c7cc..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/undo.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/images/undoH.png b/server/public/ueditor/dialogs/scrawl/images/undoH.png
deleted file mode 100644
index fde7eb3..0000000
--- a/server/public/ueditor/dialogs/scrawl/images/undoH.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/scrawl/scrawl.css b/server/public/ueditor/dialogs/scrawl/scrawl.css
deleted file mode 100644
index 4ea30c6..0000000
--- a/server/public/ueditor/dialogs/scrawl/scrawl.css
+++ /dev/null
@@ -1,72 +0,0 @@
-/*common
-*/
-body{margin: 0;}
-table{width:100%;}
-table td{padding:2px 4px;vertical-align: middle;}
-a{text-decoration: none;}
-em{font-style: normal;}
-.border_style1{border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;}
-/*module
-*/
-.main{margin: 8px;overflow: hidden;}
-
-.hot{float:left;height:335px;}
-.drawBoard{position: relative; cursor: crosshair;}
-.brushBorad{position: absolute;left:0;top:0;z-index: 998;}
-.picBoard{border: none;text-align: center;line-height: 300px;cursor: default;}
-.operateBar{margin-top:10px;font-size:12px;text-align: center;}
-.operateBar span{margin-left: 10px;}
-
-.drawToolbar{float:right;width:110px;height:300px;overflow: hidden;}
-.colorBar{margin-top:10px;font-size: 12px;text-align: center;}
-.colorBar a{display:block;width: 10px;height: 10px;border:1px solid #1006F1;border-radius: 3px; box-shadow:2px 2px 5px #d3d6da;opacity: 0.3}
-.sectionBar{margin-top:15px;font-size: 12px;text-align: center;}
-.sectionBar a{display:inline-block;width:10px;height:12px;color: #888;text-indent: -999px;opacity: 0.3}
-.size1{background: url('images/size.png') 1px center no-repeat ;}
-.size2{background: url('images/size.png') -10px center no-repeat;}
-.size3{background: url('images/size.png') -22px center no-repeat;}
-.size4{background: url('images/size.png') -35px center no-repeat;}
-
-.addImgH{position: relative;}
-.addImgH_form{position: absolute;left: 18px;top: -1px;width: 75px;height: 21px;opacity: 0;cursor: pointer;}
-.addImgH_form input{width: 100%;}
-/*scrawl閬僵灞�
-*/
-.maskLayerNull{display: none;}
-.maskLayer{position: absolute;top:0;left:0;width: 100%; height: 100%;opacity: 0.7;
-    background-color: #fff;text-align:center;font-weight:bold;line-height:300px;z-index: 1000;}
-/*btn state
-*/
-.previousStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undoH.png');cursor: pointer;}
-.previousStepH .text{color:#888;cursor:pointer;}
-.previousStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undo.png');cursor:default;}
-.previousStep .text{color:#ccc;cursor:default;}
-
-.nextStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redoH.png');cursor: pointer;}
-.nextStepH .text{color:#888;cursor:pointer;}
-.nextStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redo.png');cursor:default;}
-.nextStep .text{color:#ccc;cursor:default;}
-
-.clearBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/emptyH.png');cursor: pointer;}
-.clearBoardH .text{color:#888;cursor:pointer;}
-.clearBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/empty.png');cursor:default;}
-.clearBoard .text{color:#ccc;cursor:default;}
-
-.scaleBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scaleH.png');cursor: pointer;}
-.scaleBoardH .text{color:#888;cursor:pointer;}
-.scaleBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scale.png');cursor:default;}
-.scaleBoard .text{color:#ccc;cursor:default;}
-
-.removeImgH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimgH.png');cursor: pointer;}
-.removeImgH .text{color:#888;cursor:pointer;}
-.removeImg .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimg.png');cursor:default;}
-.removeImg .text{color:#ccc;cursor:default;}
-
-.addImgH .icon{vertical-align:top;display: inline-block;width:16px;height:16px;background-image: url('images/addimg.png')}
-.addImgH .text{color:#888;cursor:pointer;}
-/*icon
-*/
-.brushIcon{display: inline-block;width:16px;height:16px;background-image: url('images/brush.png')}
-.eraserIcon{display: inline-block;width:16px;height:16px;background-image: url('images/eraser.png')}
-
-
diff --git a/server/public/ueditor/dialogs/scrawl/scrawl.html b/server/public/ueditor/dialogs/scrawl/scrawl.html
deleted file mode 100644
index 13f6ab1..0000000
--- a/server/public/ueditor/dialogs/scrawl/scrawl.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <meta name="robots" content="noindex, nofollow"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="scrawl.css">
-</head>
-<body>
-<div class="main" id="J_wrap">
-    <div class="hot">
-        <div class="drawBoard border_style1">
-            <canvas id="J_brushBoard" class="brushBorad" width="360" height="300"></canvas>
-            <div id="J_picBoard" class="picBoard" style="width: 360px;height: 300px"></div>
-        </div>
-        <div id="J_operateBar" class="operateBar">
-            <span id="J_previousStep" class="previousStep">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_previousStep"></var></em>
-            </span>
-            <span id="J_nextStep" class="nextStep">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_nextsStep"></var></em>
-            </span>
-            <span id="J_clearBoard" class="clearBoard">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_clear"></var></em>
-            </span>
-            <span id="J_sacleBoard" class="scaleBoard">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_ScalePic"></var></em>
-            </span>
-        </div>
-    </div>
-    <div class="drawToolbar border_style1">
-        <div id="J_colorBar" class="colorBar"></div>
-        <div id="J_brushBar" class="sectionBar">
-            <em class="brushIcon"></em>
-            <a href="javascript:void(0)" class="size1">1</a>
-            <a href="javascript:void(0)" class="size2">3</a>
-            <a href="javascript:void(0)" class="size3">5</a>
-            <a href="javascript:void(0)" class="size4">7</a>
-        </div>
-        <div id="J_eraserBar" class="sectionBar">
-            <em class="eraserIcon"></em>
-            <a href="javascript:void(0)" class="size1">1</a>
-            <a href="javascript:void(0)" class="size2">3</a>
-            <a href="javascript:void(0)" class="size3">5</a>
-            <a href="javascript:void(0)" class="size4">7</a>
-        </div>
-        <div class="sectionBar">
-            <div id="J_addImg" class="addImgH">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_addPic"></var></em>
-                <form method="post" id="fileForm" enctype="multipart/form-data" class="addImgH_form" target="up">
-                    <input type="file" name="upfile" id="J_imgTxt"
-                           accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp"/>
-                </form>
-                <iframe name="up" style="display: none"></iframe>
-            </div>
-        </div>
-        <div class="sectionBar">
-            <span id="J_removeImg" class="removeImg">
-                <em class="icon"></em>
-                <em class="text"><var id="lang_input_removePic"></var></em>
-            </span>
-        </div>
-    </div>
-</div>
-<div id="J_maskLayer" class="maskLayerNull"></div>
-
-<script type="text/javascript" src="scrawl.js"></script>
-<script type="text/javascript">
-    var settings = {
-        drawBrushSize:3, //鐢荤瑪鍒濆澶у皬
-        drawBrushColor:"#4bacc6", //鐢荤瑪鍒濆棰滆壊
-        colorList:['c00000', 'ff0000', 'ffc000', 'ffff00', '92d050', '00b050', '00b0f0', '0070c0', '002060', '7030a0', 'ffffff',
-            '000000', 'eeece1', '1f497d', '4f81bd', 'c0504d', '9bbb59', '8064a2', '4bacc6', 'f79646'], //鐢荤瑪閫夋嫨棰滆壊
-        saveNum:10  //鎾ら攢娆℃暟
-    };
-
-    var scrawlObj = new scrawl( settings );
-    scrawlObj.isCancelScrawl = false;
-
-    dialog.onok = function () {
-        exec( scrawlObj );
-        return false;
-    };
-    dialog.oncancel = function () {
-        scrawlObj.isCancelScrawl = true;
-    };
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/scrawl/scrawl.js b/server/public/ueditor/dialogs/scrawl/scrawl.js
deleted file mode 100644
index cadb0cb..0000000
--- a/server/public/ueditor/dialogs/scrawl/scrawl.js
+++ /dev/null
@@ -1,671 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-5-22
- * Time: 涓婂崍11:38
- * To change this template use File | Settings | File Templates.
- */
-var scrawl = function (options) {
-    options && this.initOptions(options);
-};
-(function () {
-    var canvas = $G("J_brushBoard"),
-        context = canvas.getContext('2d'),
-        drawStep = [], //undo redo瀛樺偍
-        drawStepIndex = 0; //undo redo鎸囬拡
-
-    scrawl.prototype = {
-        isScrawl:false, //鏄惁娑傞甫
-        brushWidth:-1, //鐢荤瑪绮楃粏
-        brushColor:"", //鐢荤瑪棰滆壊
-
-        initOptions:function (options) {
-            var me = this;
-            me.originalState(options);//鍒濆椤甸潰鐘舵��
-            me._buildToolbarColor(options.colorList);//鍔ㄦ�佺敓鎴愰鑹查�夋嫨闆嗗悎
-
-            me._addBoardListener(options.saveNum);//娣诲姞鐢绘澘澶勭悊
-            me._addOPerateListener(options.saveNum);//娣诲姞undo redo clearBoard澶勭悊
-            me._addColorBarListener();//娣诲姞棰滆壊閫夋嫨澶勭悊
-            me._addBrushBarListener();//娣诲姞鐢荤瑪澶у皬澶勭悊
-            me._addEraserBarListener();//娣诲姞姗$毊澶у皬澶勭悊
-            me._addAddImgListener();//娣诲姞澧炴坊鑳屾櫙鍥剧墖澶勭悊
-            me._addRemoveImgListenter();//鍒犻櫎鑳屾櫙鍥剧墖澶勭悊
-            me._addScalePicListenter();//娣诲姞缂╂斁澶勭悊
-            me._addClearSelectionListenter();//娣诲姞娓呮閫変腑鐘舵�佸鐞�
-
-            me._originalColorSelect(options.drawBrushColor);//鍒濆鍖栭鑹查�変腑
-            me._originalBrushSelect(options.drawBrushSize);//鍒濆鍖栫敾绗旈�変腑
-            me._clearSelection();//娓呮閫変腑鐘舵��
-        },
-
-        originalState:function (options) {
-            var me = this;
-
-            me.brushWidth = options.drawBrushSize;//鍚屾鐢荤瑪绮楃粏
-            me.brushColor = options.drawBrushColor;//鍚屾鐢荤瑪棰滆壊
-
-            context.lineWidth = me.brushWidth;//鍒濆鐢荤瑪澶у皬
-            context.strokeStyle = me.brushColor;//鍒濆鐢荤瑪棰滆壊
-            context.fillStyle = "transparent";//鍒濆鐢诲竷鑳屾櫙棰滆壊
-            context.lineCap = "round";//鍘婚櫎閿娇
-            context.fill();
-        },
-        _buildToolbarColor:function (colorList) {
-            var tmp = null, arr = [];
-            arr.push("<table id='J_colorList'>");
-            for (var i = 0, color; color = colorList[i++];) {
-                if ((i - 1) % 5 == 0) {
-                    if (i != 1) {
-                        arr.push("</tr>");
-                    }
-                    arr.push("<tr>");
-                }
-                tmp = '#' + color;
-                arr.push("<td><a title='" + tmp + "' href='javascript:void(0)' style='background-color:" + tmp + "'></a></td>");
-            }
-            arr.push("</tr></table>");
-            $G("J_colorBar").innerHTML = arr.join("");
-        },
-
-        _addBoardListener:function (saveNum) {
-            var me = this,
-                margin = 0,
-                startX = -1,
-                startY = -1,
-                isMouseDown = false,
-                isMouseMove = false,
-                isMouseUp = false,
-                buttonPress = 0, button, flag = '';
-
-            margin = parseInt(domUtils.getComputedStyle($G("J_wrap"), "margin-left"));
-            drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height));
-            drawStepIndex += 1;
-
-            domUtils.on(canvas, ["mousedown", "mousemove", "mouseup", "mouseout"], function (e) {
-                button = browser.webkit ? e.which : buttonPress;
-                switch (e.type) {
-                    case 'mousedown':
-                        buttonPress = 1;
-                        flag = 1;
-                        isMouseDown = true;
-                        isMouseUp = false;
-                        isMouseMove = false;
-                        me.isScrawl = true;
-                        startX = e.clientX - margin;//10涓哄杈硅窛鎬诲拰
-                        startY = e.clientY - margin;
-                        context.beginPath();
-                        break;
-                    case 'mousemove' :
-                        if (!flag && button == 0) {
-                            return;
-                        }
-                        if (!flag && button) {
-                            startX = e.clientX - margin;//10涓哄杈硅窛鎬诲拰
-                            startY = e.clientY - margin;
-                            context.beginPath();
-                            flag = 1;
-                        }
-                        if (isMouseUp || !isMouseDown) {
-                            return;
-                        }
-                        var endX = e.clientX - margin,
-                            endY = e.clientY - margin;
-
-                        context.moveTo(startX, startY);
-                        context.lineTo(endX, endY);
-                        context.stroke();
-                        startX = endX;
-                        startY = endY;
-                        isMouseMove = true;
-                        break;
-                    case 'mouseup':
-                        buttonPress = 0;
-                        if (!isMouseDown)return;
-                        if (!isMouseMove) {
-                            context.arc(startX, startY, context.lineWidth, 0, Math.PI * 2, false);
-                            context.fillStyle = context.strokeStyle;
-                            context.fill();
-                        }
-                        context.closePath();
-                        me._saveOPerate(saveNum);
-                        isMouseDown = false;
-                        isMouseMove = false;
-                        isMouseUp = true;
-                        startX = -1;
-                        startY = -1;
-                        break;
-                    case 'mouseout':
-                        flag = '';
-                        buttonPress = 0;
-                        if (button == 1) return;
-                        context.closePath();
-                        break;
-                }
-            });
-        },
-        _addOPerateListener:function (saveNum) {
-            var me = this;
-            domUtils.on($G("J_previousStep"), "click", function () {
-                if (drawStepIndex > 1) {
-                    drawStepIndex -= 1;
-                    context.clearRect(0, 0, context.canvas.width, context.canvas.height);
-                    context.putImageData(drawStep[drawStepIndex - 1], 0, 0);
-                    me.btn2Highlight("J_nextStep");
-                    drawStepIndex == 1 && me.btn2disable("J_previousStep");
-                }
-            });
-            domUtils.on($G("J_nextStep"), "click", function () {
-                if (drawStepIndex > 0 && drawStepIndex < drawStep.length) {
-                    context.clearRect(0, 0, context.canvas.width, context.canvas.height);
-                    context.putImageData(drawStep[drawStepIndex], 0, 0);
-                    drawStepIndex += 1;
-                    me.btn2Highlight("J_previousStep");
-                    drawStepIndex == drawStep.length && me.btn2disable("J_nextStep");
-                }
-            });
-            domUtils.on($G("J_clearBoard"), "click", function () {
-                context.clearRect(0, 0, context.canvas.width, context.canvas.height);
-                drawStep = [];
-                me._saveOPerate(saveNum);
-                drawStepIndex = 1;
-                me.isScrawl = false;
-                me.btn2disable("J_previousStep");
-                me.btn2disable("J_nextStep");
-                me.btn2disable("J_clearBoard");
-            });
-        },
-        _addColorBarListener:function () {
-            var me = this;
-            domUtils.on($G("J_colorBar"), "click", function (e) {
-                var target = me.getTarget(e),
-                    color = target.title;
-                if (!!color) {
-                    me._addColorSelect(target);
-
-                    me.brushColor = color;
-                    context.globalCompositeOperation = "source-over";
-                    context.lineWidth = me.brushWidth;
-                    context.strokeStyle = color;
-                }
-            });
-        },
-        _addBrushBarListener:function () {
-            var me = this;
-            domUtils.on($G("J_brushBar"), "click", function (e) {
-                var target = me.getTarget(e),
-                    size = browser.ie ? target.innerText : target.text;
-                if (!!size) {
-                    me._addBESelect(target);
-
-                    context.globalCompositeOperation = "source-over";
-                    context.lineWidth = parseInt(size);
-                    context.strokeStyle = me.brushColor;
-                    me.brushWidth = context.lineWidth;
-                }
-            });
-        },
-        _addEraserBarListener:function () {
-            var me = this;
-            domUtils.on($G("J_eraserBar"), "click", function (e) {
-                var target = me.getTarget(e),
-                    size = browser.ie ? target.innerText : target.text;
-                if (!!size) {
-                    me._addBESelect(target);
-
-                    context.lineWidth = parseInt(size);
-                    context.globalCompositeOperation = "destination-out";
-                    context.strokeStyle = "#FFF";
-                }
-            });
-        },
-        _addAddImgListener:function () {
-            var file = $G("J_imgTxt");
-            if (!window.FileReader) {
-                $G("J_addImg").style.display = 'none';
-                $G("J_removeImg").style.display = 'none';
-                $G("J_sacleBoard").style.display = 'none';
-            }
-            domUtils.on(file, "change", function (e) {
-                var frm = file.parentNode;
-                addMaskLayer(lang.backgroundUploading);
-
-                var target = e.target || e.srcElement,
-                    reader = new FileReader();
-                reader.onload = function(evt){
-                    var target = evt.target || evt.srcElement;
-                    ue_callback(target.result, 'SUCCESS');
-                };
-                reader.readAsDataURL(target.files[0]);
-                frm.reset();
-            });
-        },
-        _addRemoveImgListenter:function () {
-            var me = this;
-            domUtils.on($G("J_removeImg"), "click", function () {
-                $G("J_picBoard").innerHTML = "";
-                me.btn2disable("J_removeImg");
-                me.btn2disable("J_sacleBoard");
-            });
-        },
-        _addScalePicListenter:function () {
-            domUtils.on($G("J_sacleBoard"), "click", function () {
-                var picBoard = $G("J_picBoard"),
-                    scaleCon = $G("J_scaleCon"),
-                    img = picBoard.children[0];
-
-                if (img) {
-                    if (!scaleCon) {
-                        picBoard.style.cssText = "position:relative;z-index:999;"+picBoard.style.cssText;
-                        img.style.cssText = "position: absolute;top:" + (canvas.height - img.height) / 2 + "px;left:" + (canvas.width - img.width) / 2 + "px;";
-                        var scale = new ScaleBoy();
-                        picBoard.appendChild(scale.init());
-                        scale.startScale(img);
-                    } else {
-                        if (scaleCon.style.visibility == "visible") {
-                            scaleCon.style.visibility = "hidden";
-                            picBoard.style.position = "";
-                            picBoard.style.zIndex = "";
-                        } else {
-                            scaleCon.style.visibility = "visible";
-                            picBoard.style.cssText += "position:relative;z-index:999";
-                        }
-                    }
-                }
-            });
-        },
-        _addClearSelectionListenter:function () {
-            var doc = document;
-            domUtils.on(doc, 'mousemove', function (e) {
-                if (browser.ie && browser.version < 11)
-                    doc.selection.clear();
-                else
-                    window.getSelection().removeAllRanges();
-            });
-        },
-        _clearSelection:function () {
-            var list = ["J_operateBar", "J_colorBar", "J_brushBar", "J_eraserBar", "J_picBoard"];
-            for (var i = 0, group; group = list[i++];) {
-                domUtils.unSelectable($G(group));
-            }
-        },
-
-        _saveOPerate:function (saveNum) {
-            var me = this;
-            if (drawStep.length <= saveNum) {
-                if(drawStepIndex<drawStep.length){
-                    me.btn2disable("J_nextStep");
-                    drawStep.splice(drawStepIndex);
-                }
-                drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height));
-                drawStepIndex = drawStep.length;
-            } else {
-                drawStep.shift();
-                drawStep.push(context.getImageData(0, 0, context.canvas.width, context.canvas.height));
-                drawStepIndex = drawStep.length;
-            }
-            me.btn2Highlight("J_previousStep");
-            me.btn2Highlight("J_clearBoard");
-        },
-
-        _originalColorSelect:function (title) {
-            var colorList = $G("J_colorList").getElementsByTagName("td");
-            for (var j = 0, cell; cell = colorList[j++];) {
-                if (cell.children[0].title.toLowerCase() == title) {
-                    cell.children[0].style.opacity = 1;
-                }
-            }
-        },
-        _originalBrushSelect:function (text) {
-            var brushList = $G("J_brushBar").children;
-            for (var i = 0, ele; ele = brushList[i++];) {
-                if (ele.tagName.toLowerCase() == "a") {
-                    var size = browser.ie ? ele.innerText : ele.text;
-                    if (size.toLowerCase() == text) {
-                        ele.style.opacity = 1;
-                    }
-                }
-            }
-        },
-        _addColorSelect:function (target) {
-            var me = this,
-                colorList = $G("J_colorList").getElementsByTagName("td"),
-                eraserList = $G("J_eraserBar").children,
-                brushList = $G("J_brushBar").children;
-
-            for (var i = 0, cell; cell = colorList[i++];) {
-                cell.children[0].style.opacity = 0.3;
-            }
-            for (var k = 0, ele; ele = brushList[k++];) {
-                if (ele.tagName.toLowerCase() == "a") {
-                    ele.style.opacity = 0.3;
-                    var size = browser.ie ? ele.innerText : ele.text;
-                    if (size.toLowerCase() == this.brushWidth) {
-                        ele.style.opacity = 1;
-                    }
-                }
-            }
-            for (var j = 0, node; node = eraserList[j++];) {
-                if (node.tagName.toLowerCase() == "a") {
-                    node.style.opacity = 0.3;
-                }
-            }
-
-            target.style.opacity = 1;
-            target.blur();
-        },
-        _addBESelect:function (target) {
-            var brushList = $G("J_brushBar").children;
-            var eraserList = $G("J_eraserBar").children;
-
-            for (var i = 0, ele; ele = brushList[i++];) {
-                if (ele.tagName.toLowerCase() == "a") {
-                    ele.style.opacity = 0.3;
-                }
-            }
-            for (var j = 0, node; node = eraserList[j++];) {
-                if (node.tagName.toLowerCase() == "a") {
-                    node.style.opacity = 0.3;
-                }
-            }
-
-            target.style.opacity = 1;
-            target.blur();
-        },
-        getCanvasData:function () {
-            var picContainer = $G("J_picBoard"),
-                img = picContainer.children[0];
-            if (img) {
-                var x, y;
-                if (img.style.position == "absolute") {
-                    x = parseInt(img.style.left);
-                    y = parseInt(img.style.top);
-                } else {
-                    x = (picContainer.offsetWidth - img.width) / 2;
-                    y = (picContainer.offsetHeight - img.height) / 2;
-                }
-                context.globalCompositeOperation = "destination-over";
-                context.drawImage(img, x, y, img.width, img.height);
-            } else {
-                context.globalCompositeOperation = "destination-atop";
-                context.fillStyle = "#fff";//閲嶇疆鐢诲竷鑳屾櫙鐧借壊
-                context.fillRect(0, 0, canvas.width, canvas.height);
-            }
-            try {
-                return canvas.toDataURL("image/png").substring(22);
-            } catch (e) {
-                return "";
-            }
-        },
-        btn2Highlight:function (id) {
-            var cur = $G(id);
-            cur.className.indexOf("H") == -1 && (cur.className += "H");
-        },
-        btn2disable:function (id) {
-            var cur = $G(id);
-            cur.className.indexOf("H") != -1 && (cur.className = cur.className.replace("H", ""));
-        },
-        getTarget:function (evt) {
-            return evt.target || evt.srcElement;
-        }
-    };
-})();
-
-var ScaleBoy = function () {
-    this.dom = null;
-    this.scalingElement = null;
-};
-(function () {
-    function _appendStyle() {
-        var doc = document,
-            head = doc.getElementsByTagName('head')[0],
-            style = doc.createElement('style'),
-            cssText = '.scale{visibility:hidden;cursor:move;position:absolute;left:0;top:0;width:100px;height:50px;background-color:#fff;font-size:0;line-height:0;opacity:.4;filter:Alpha(opacity=40);}'
-                + '.scale span{position:absolute;left:0;top:0;width:6px;height:6px;background-color:#006DAE;}'
-                + '.scale .hand0, .scale .hand7{cursor:nw-resize;}'
-                + '.scale .hand1, .scale .hand6{left:50%;margin-left:-3px;cursor:n-resize;}'
-                + '.scale .hand2, .scale .hand4, .scale .hand7{left:100%;margin-left:-6px;}'
-                + '.scale .hand3, .scale .hand4{top:50%;margin-top:-3px;cursor:w-resize;}'
-                + '.scale .hand5, .scale .hand6, .scale .hand7{margin-top:-6px;top:100%;}'
-                + '.scale .hand2, .scale .hand5{cursor:ne-resize;}';
-        style.type = 'text/css';
-
-        try {
-            style.appendChild(doc.createTextNode(cssText));
-        } catch (e) {
-            style.styleSheet.cssText = cssText;
-        }
-        head.appendChild(style);
-    }
-
-    function _getDom() {
-        var doc = document,
-            hand,
-            arr = [],
-            scale = doc.createElement('div');
-
-        scale.id = 'J_scaleCon';
-        scale.className = 'scale';
-        for (var i = 0; i < 8; i++) {
-            arr.push("<span class='hand" + i + "'></span>");
-        }
-        scale.innerHTML = arr.join("");
-        return scale;
-    }
-
-    var rect = [
-        //[left, top, width, height]
-        [1, 1, -1, -1],
-        [0, 1, 0, -1],
-        [0, 1, 1, -1],
-        [1, 0, -1, 0],
-        [0, 0, 1, 0],
-        [1, 0, -1, 1],
-        [0, 0, 0, 1],
-        [0, 0, 1, 1]
-    ];
-    ScaleBoy.prototype = {
-        init:function () {
-            _appendStyle();
-            var me = this,
-                scale = me.dom = _getDom();
-
-            me.scaleMousemove.fp = me;
-            domUtils.on(scale, 'mousedown', function (e) {
-                var target = e.target || e.srcElement;
-                me.start = {x:e.clientX, y:e.clientY};
-                if (target.className.indexOf('hand') != -1) {
-                    me.dir = target.className.replace('hand', '');
-                }
-                domUtils.on(document.body, 'mousemove', me.scaleMousemove);
-                e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;
-            });
-            domUtils.on(document.body, 'mouseup', function (e) {
-                if (me.start) {
-                    domUtils.un(document.body, 'mousemove', me.scaleMousemove);
-                    if (me.moved) {
-                        me.updateScaledElement({position:{x:scale.style.left, y:scale.style.top}, size:{w:scale.style.width, h:scale.style.height}});
-                    }
-                    delete me.start;
-                    delete me.moved;
-                    delete me.dir;
-                }
-            });
-            return scale;
-        },
-        startScale:function (objElement) {
-            var me = this, Idom = me.dom;
-
-            Idom.style.cssText = 'visibility:visible;top:' + objElement.style.top + ';left:' + objElement.style.left + ';width:' + objElement.offsetWidth + 'px;height:' + objElement.offsetHeight + 'px;';
-            me.scalingElement = objElement;
-        },
-        updateScaledElement:function (objStyle) {
-            var cur = this.scalingElement,
-                pos = objStyle.position,
-                size = objStyle.size;
-            if (pos) {
-                typeof pos.x != 'undefined' && (cur.style.left = pos.x);
-                typeof pos.y != 'undefined' && (cur.style.top = pos.y);
-            }
-            if (size) {
-                size.w && (cur.style.width = size.w);
-                size.h && (cur.style.height = size.h);
-            }
-        },
-        updateStyleByDir:function (dir, offset) {
-            var me = this,
-                dom = me.dom, tmp;
-
-            rect['def'] = [1, 1, 0, 0];
-            if (rect[dir][0] != 0) {
-                tmp = parseInt(dom.style.left) + offset.x;
-                dom.style.left = me._validScaledProp('left', tmp) + 'px';
-            }
-            if (rect[dir][1] != 0) {
-                tmp = parseInt(dom.style.top) + offset.y;
-                dom.style.top = me._validScaledProp('top', tmp) + 'px';
-            }
-            if (rect[dir][2] != 0) {
-                tmp = dom.clientWidth + rect[dir][2] * offset.x;
-                dom.style.width = me._validScaledProp('width', tmp) + 'px';
-            }
-            if (rect[dir][3] != 0) {
-                tmp = dom.clientHeight + rect[dir][3] * offset.y;
-                dom.style.height = me._validScaledProp('height', tmp) + 'px';
-            }
-            if (dir === 'def') {
-                me.updateScaledElement({position:{x:dom.style.left, y:dom.style.top}});
-            }
-        },
-        scaleMousemove:function (e) {
-            var me = arguments.callee.fp,
-                start = me.start,
-                dir = me.dir || 'def',
-                offset = {x:e.clientX - start.x, y:e.clientY - start.y};
-
-            me.updateStyleByDir(dir, offset);
-            arguments.callee.fp.start = {x:e.clientX, y:e.clientY};
-            arguments.callee.fp.moved = 1;
-        },
-        _validScaledProp:function (prop, value) {
-            var ele = this.dom,
-                wrap = $G("J_picBoard");
-
-            value = isNaN(value) ? 0 : value;
-            switch (prop) {
-                case 'left':
-                    return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth : value;
-                case 'top':
-                    return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight - ele.clientHeight : value;
-                case 'width':
-                    return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft : value;
-                case 'height':
-                    return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele.offsetTop : value;
-            }
-        }
-    };
-})();
-
-//鍚庡彴鍥炶皟
-function ue_callback(url, state) {
-    var doc = document,
-        picBorard = $G("J_picBoard"),
-        img = doc.createElement("img");
-
-    //鍥剧墖缂╂斁
-    function scale(img, max, oWidth, oHeight) {
-        var width = 0, height = 0, percent, ow = img.width || oWidth, oh = img.height || oHeight;
-        if (ow > max || oh > max) {
-            if (ow >= oh) {
-                if (width = ow - max) {
-                    percent = (width / ow).toFixed(2);
-                    img.height = oh - oh * percent;
-                    img.width = max;
-                }
-            } else {
-                if (height = oh - max) {
-                    percent = (height / oh).toFixed(2);
-                    img.width = ow - ow * percent;
-                    img.height = max;
-                }
-            }
-        }
-    }
-
-    //绉婚櫎閬僵灞�
-    removeMaskLayer();
-    //鐘舵�佸搷搴�
-    if (state == "SUCCESS") {
-        picBorard.innerHTML = "";
-        img.onload = function () {
-            scale(this, 300);
-            picBorard.appendChild(img);
-
-            var obj = new scrawl();
-            obj.btn2Highlight("J_removeImg");
-            //trace 2457
-            obj.btn2Highlight("J_sacleBoard");
-        };
-        img.src = url;
-    } else {
-        alert(state);
-    }
-}
-//鍘绘帀閬僵灞�
-function removeMaskLayer() {
-    var maskLayer = $G("J_maskLayer");
-    maskLayer.className = "maskLayerNull";
-    maskLayer.innerHTML = "";
-    dialog.buttons[0].setDisabled(false);
-}
-//娣诲姞閬僵灞�
-function addMaskLayer(html) {
-    var maskLayer = $G("J_maskLayer");
-    dialog.buttons[0].setDisabled(true);
-    maskLayer.className = "maskLayer";
-    maskLayer.innerHTML = html;
-}
-//鎵ц纭鎸夐挳鏂规硶
-function exec(scrawlObj) {
-    if (scrawlObj.isScrawl) {
-        addMaskLayer(lang.scrawlUpLoading);
-        var base64 = scrawlObj.getCanvasData();
-        if (!!base64) {
-            var options = {
-                timeout:100000,
-                onsuccess:function (xhr) {
-                    if (!scrawlObj.isCancelScrawl) {
-                        var responseObj;
-                        responseObj = eval("(" + xhr.responseText + ")");
-                        if (responseObj.state == "SUCCESS") {
-                            var imgObj = {},
-                                url = editor.options.scrawlUrlPrefix + responseObj.url;
-                            imgObj.src = url;
-                            imgObj._src = url;
-                            imgObj.alt = responseObj.original || '';
-                            imgObj.title = responseObj.title || '';
-                            editor.execCommand("insertImage", imgObj);
-                            dialog.close();
-                        } else {
-                            alert(responseObj.state);
-                        }
-
-                    }
-                },
-                onerror:function () {
-                    alert(lang.imageError);
-                    dialog.close();
-                }
-            };
-            options[editor.getOpt('scrawlFieldName')] = base64;
-
-            var actionUrl = editor.getActionUrl(editor.getOpt('scrawlActionName')),
-                params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-                url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + params);
-            ajax.request(url, options);
-        }
-    } else {
-        addMaskLayer(lang.noScarwl + "&nbsp;&nbsp;&nbsp;<input type='button' value='" + lang.continueBtn + "'  onclick='removeMaskLayer()'/>");
-    }
-}
-
diff --git a/server/public/ueditor/dialogs/searchreplace/searchreplace.html b/server/public/ueditor/dialogs/searchreplace/searchreplace.html
deleted file mode 100644
index b3eaaa5..0000000
--- a/server/public/ueditor/dialogs/searchreplace/searchreplace.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        .warpper{ position:relative;width: 380px; height: 100%; margin: 10px auto;}
-        .tabbody{height: 160px;}
-        .tabbody table{width:100%;border-collapse: separate;border-spacing: 3px;}
-        .tabbody .panel{width:373px;height:100%;padding-left: 5px;position: absolute;background-color: #fff;}
-        .tabbody input.int{ width:190px;height:21px;border:1px solid #d7d7d7;line-height:21px;}
-        .tabbody input.btn{padding: 0 5px; text-align:center;line-height:24px; text-decoration: none;height:24px;background:url("../../themes/default/images/dialog-title-bg.png") repeat-x;border:1px solid #ccc; }
-    </style>
-</head>
-<body>
-<div class="warpper" id="searchtab">
-    <div id="head" class="tabhead">
-        <span  tabsrc="find" class="focus"><var id="lang_tab_search"></var></span>
-        <span  tabsrc="replace" ><var id="lang_tab_replace"></var></span>
-    </div>
-    <div class="tabbody">
-        <div class="panel" id="find">
-            <table>
-                <tr>
-                    <td width="80"><var id="lang_search1"></var>: </td>
-                    <td><input id="findtxt" type="text" class="int" /></td>
-                </tr>
-                <!--<tr>-->
-
-                    <!--<td colspan="2"><span style="color:red"><var id="lang_searchReg"></var></span></td>-->
-                <!--</tr>-->
-                <tr>
-                    <td><var id="lang_case_sensitive1"></var></td>
-                    <td>
-                        <input id="matchCase" type="checkbox" />
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        <input id="nextFindBtn" type="button" class="btn" />
-                        <input id="preFindBtn" type="button" class="btn" />
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        &nbsp;
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        <span id="search-msg" style="color:red"></span>
-                    </td>
-                </tr>
-            </table>
-        </div>
-        <div class="panel" id="replace">
-            <table>
-                <tr>
-                    <td width="80"><var id="lang_search2"></var>: </td>
-                    <td><input id="findtxt1" type="text" class="int"  /></td>
-                </tr>
-                <!--<tr>-->
-
-                    <!--<td colspan="2"><span style="color:red"><var id="lang_searchReg1"></var></span></td>-->
-                <!--</tr>-->
-                <tr>
-                    <td><var id="lang_replace"></var>: </td>
-                    <td><input id="replacetxt" type="text" class="int" /></td>
-                </tr>
-                <tr>
-                    <td><var id="lang_case_sensitive2"></var></td>
-                    <td>
-                        <input id="matchCase1" type="checkbox" />
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        <input id="nextReplaceBtn" type="button" class="btn" />
-                        <input id="preReplaceBtn" type="button" class="btn" />
-                        <input id="repalceBtn" type="button" class="btn" />
-                        <input id="repalceAllBtn" type="button" class="btn" />
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        &nbsp;
-                    </td>
-                </tr>
-                <tr>
-                    <td colspan="2">
-                        <span id="replace-msg" style="color:red"></span>
-                    </td>
-                </tr>
-            </table>
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="searchreplace.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/searchreplace/searchreplace.js b/server/public/ueditor/dialogs/searchreplace/searchreplace.js
deleted file mode 100644
index b55bb7a..0000000
--- a/server/public/ueditor/dialogs/searchreplace/searchreplace.js
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-9-26
- * Time: 涓嬪崍12:29
- * To change this template use File | Settings | File Templates.
- */
-
-//娓呯┖涓婃鏌ラ�夌殑鐥曡抗
-editor.firstForSR = 0;
-editor.currentRangeForSR = null;
-//缁檛ab娉ㄥ唽鍒囨崲浜嬩欢
-/**
- * tab鐐瑰嚮澶勭悊浜嬩欢
- * @param tabHeads
- * @param tabBodys
- * @param obj
- */
-function clickHandler( tabHeads,tabBodys,obj ) {
-    //head鏍峰紡鏇存敼
-    for ( var k = 0, len = tabHeads.length; k < len; k++ ) {
-        tabHeads[k].className = "";
-    }
-    obj.className = "focus";
-    //body鏄鹃殣
-    var tabSrc = obj.getAttribute( "tabSrc" );
-    for ( var j = 0, length = tabBodys.length; j < length; j++ ) {
-        var body = tabBodys[j],
-            id = body.getAttribute( "id" );
-        if ( id != tabSrc ) {
-            body.style.zIndex = 1;
-        } else {
-            body.style.zIndex = 200;
-        }
-    }
-
-}
-
-/**
- * TAB鍒囨崲
- * @param tabParentId  tab鐨勭埗鑺傜偣ID鎴栬�呭璞℃湰韬�
- */
-function switchTab( tabParentId ) {
-    var tabElements = $G( tabParentId ).children,
-        tabHeads = tabElements[0].children,
-        tabBodys = tabElements[1].children;
-
-    for ( var i = 0, length = tabHeads.length; i < length; i++ ) {
-        var head = tabHeads[i];
-        if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head );
-        head.onclick = function () {
-            clickHandler(tabHeads,tabBodys,this);
-        }
-    }
-}
-$G('searchtab').onmousedown = function(){
-    $G('search-msg').innerHTML = '';
-    $G('replace-msg').innerHTML = ''
-}
-//鏄惁鍖哄垎澶у皬鍐�
-function getMatchCase(id) {
-    return $G(id).checked ? true : false;
-}
-//鏌ユ壘
-$G("nextFindBtn").onclick = function (txt, dir, mcase) {
-    var findtxt = $G("findtxt").value, obj;
-    if (!findtxt) {
-        return false;
-    }
-    obj = {
-        searchStr:findtxt,
-        dir:1,
-        casesensitive:getMatchCase("matchCase")
-    };
-    if (!frCommond(obj)) {
-        var bk = editor.selection.getRange().createBookmark();
-        $G('search-msg').innerHTML = lang.getEnd;
-        editor.selection.getRange().moveToBookmark(bk).select();
-
-
-    }
-};
-$G("nextReplaceBtn").onclick = function (txt, dir, mcase) {
-    var findtxt = $G("findtxt1").value, obj;
-    if (!findtxt) {
-        return false;
-    }
-    obj = {
-        searchStr:findtxt,
-        dir:1,
-        casesensitive:getMatchCase("matchCase1")
-    };
-    frCommond(obj);
-};
-$G("preFindBtn").onclick = function (txt, dir, mcase) {
-    var findtxt = $G("findtxt").value, obj;
-    if (!findtxt) {
-        return false;
-    }
-    obj = {
-        searchStr:findtxt,
-        dir:-1,
-        casesensitive:getMatchCase("matchCase")
-    };
-    if (!frCommond(obj)) {
-        $G('search-msg').innerHTML = lang.getStart;
-    }
-};
-$G("preReplaceBtn").onclick = function (txt, dir, mcase) {
-    var findtxt = $G("findtxt1").value, obj;
-    if (!findtxt) {
-        return false;
-    }
-    obj = {
-        searchStr:findtxt,
-        dir:-1,
-        casesensitive:getMatchCase("matchCase1")
-    };
-    frCommond(obj);
-};
-//鏇挎崲
-$G("repalceBtn").onclick = function () {
-    var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
-        replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
-    if (!findtxt) {
-        return false;
-    }
-    if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
-        return false;
-    }
-    obj = {
-        searchStr:findtxt,
-        dir:1,
-        casesensitive:getMatchCase("matchCase1"),
-        replaceStr:replacetxt
-    };
-    frCommond(obj);
-};
-//鍏ㄩ儴鏇挎崲
-$G("repalceAllBtn").onclick = function () {
-    var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
-        replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
-    if (!findtxt) {
-        return false;
-    }
-    if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
-        return false;
-    }
-    obj = {
-        searchStr:findtxt,
-        casesensitive:getMatchCase("matchCase1"),
-        replaceStr:replacetxt,
-        all:true
-    };
-    var num = frCommond(obj);
-    if (num) {
-        $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num);
-    }
-};
-//鎵ц
-var frCommond = function (obj) {
-    return editor.execCommand("searchreplace", obj);
-};
-switchTab("searchtab");
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/snapscreen/snapscreen.html b/server/public/ueditor/dialogs/snapscreen/snapscreen.html
deleted file mode 100644
index f359326..0000000
--- a/server/public/ueditor/dialogs/snapscreen/snapscreen.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-    <head>
-        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-        <title></title>
-        <script type="text/javascript" src="../internal.js"></script>
-        <style type="text/css">
-            *{color: #838383}
-            html,body {
-                font-size: 12px;
-                width:100%;
-                height:100%;
-                overflow: hidden;
-                margin:0px;
-                padding:0px;
-            }
-            h2 { font-size: 16px; margin: 20px auto;}
-            .content{
-                padding:5px 15px 0 15px;
-                height:100%;
-            }
-            dt,dd { margin-left: 0; padding-left: 0;}
-            dt a { display: block;
-                    height: 30px;
-                    line-height: 30px;
-                    width: 55px;
-                    background: #EFEFEF;
-                    border: 1px solid #CCC;
-                    padding: 0 10px;
-                    text-decoration: none;
-            }
-            dt a:hover{
-                background: #e0e0e0;
-                border-color: #999
-            }
-            dt a:active{
-                background: #ccc;
-                border-color: #999;
-                color: #666;
-            }
-            dd { line-height:20px;margin-top: 10px;}
-            span{ padding-right:4px;}
-            input{width:210px;height:21px;background: #FFF;border:1px solid #d7d7d7;padding: 0px; margin: 0px; }
-
-
-        </style>
-    </head>
-    <body>
-        <div class="content">
-            <h2><var id="lang_showMsg"></var></h2>
-            <dl>
-                <dt><a href="../../third-party/snapscreen/UEditorSnapscreen.exe" target="_blank" id="downlink"><var id="lang_download"></var></a></dt>
-                <dd><var id="lang_step1"></var></dd>
-                <dd><var id="lang_step2"></var></dd>
-            </dl>
-        </div>
-    </body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/spechars/spechars.html b/server/public/ueditor/dialogs/spechars/spechars.html
deleted file mode 100644
index d92f515..0000000
--- a/server/public/ueditor/dialogs/spechars/spechars.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        html,body{overflow:hidden;}
-        #specharsTab{width: 97%;margin: 10px auto; zoom:1;position: relative}
-        .tabbody {height:447px;}
-        .tabbody span{ margin: 5px 3px;text-align: center;display:inline-block;width: 40px;height:16px;line-height: 16px;cursor: pointer; }
-    </style>
-</head>
-<body>
-    <div id="specharsTab">
-        <div id="tabHeads" class="tabhead"></div><div id="tabBodys" class="tabbody"></div>
-    </div>
-<script type="text/javascript" src="spechars.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/spechars/spechars.js b/server/public/ueditor/dialogs/spechars/spechars.js
deleted file mode 100644
index bd3b36d..0000000
--- a/server/public/ueditor/dialogs/spechars/spechars.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-9-26
- * Time: 涓嬪崍1:09
- * To change this template use File | Settings | File Templates.
- */
-var charsContent = [
-    { name:"tsfh", title:lang.tsfh, content:toArray("銆�,銆�,路,藟,藝,篓,銆�,銆�,鈥�,锝�,鈥�,鈥�,鈥�,鈥�,鈥�,鈥�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,卤,脳,梅,鈭�,鈭�,鈭�,鈭�,鈭�,鈭�,鈭�,鈭�,鈭�,鈭�,鈯�,鈭�,鈭�,鈱�,鈯�,鈭�,鈭�,鈮�,鈮�,鈮�,鈭�,鈭�,鈮�,鈮�,鈮�,鈮�,鈮�,鈭�,鈭�,鈭�,鈾�,鈾�,掳,鈥�,鈥�,鈩�,锛�,陇,锟�,锟�,鈥�,搂,鈩�,鈽�,鈽�,鈼�,鈼�,鈼�,鈼�,鈼�,鈻�,鈻�,鈻�,鈻�,鈥�,鈫�,鈫�,鈫�,鈫�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銆�,銑�,銕�,銕�,銕�,銕�,銕�,銕�,銖�,銖�,銖�,銖�,銖�,锔�,锟�,锟�,鈩�,藠,藡,藱,鈥�,鈥�,鈥�,鈥�,鈩�,鈩�,鈫�,鈫�,鈫�,鈫�,鈭�,鈭�,鈭�,鈮�,鈮�,鈮�,鈯�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈺�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,锟�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈻�,鈼�,鈼�,鈼�,鈼�,鈽�,鈯�,銆�,銆�,銆�")},
-    { name:"lmsz", title:lang.lmsz, content:toArray("鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�,鈪�")},
-    { name:"szfh", title:lang.szfh, content:toArray("鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈷�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,鈶�,銏�,銏�,銏�,銏�,銏�,銏�,銏�,銏�,銏�,銏�")},
-    { name:"rwfh", title:lang.rwfh, content:toArray("銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銇�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銈�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�,銉�")},
-    { name:"xlzm", title:lang.xlzm, content:toArray("螒,螔,螕,螖,螘,螙,螚,螛,螜,螝,螞,螠,螡,螢,螣,螤,巍,危,韦,违,桅,围,唯,惟,伪,尾,纬,未,蔚,味,畏,胃,喂,魏,位,渭,谓,尉,慰,蟺,蟻,蟽,蟿,蠀,蠁,蠂,蠄,蠅")},
-    { name:"ewzm", title:lang.ewzm, content:toArray("袗,袘,袙,袚,袛,袝,衼,袞,袟,袠,袡,袣,袥,袦,袧,袨,袩,袪,小,孝,校,肖,啸,笑,效,楔,些,歇,蝎,鞋,协,挟,携,邪,斜,胁,谐,写,械,褢,卸,蟹,懈,泄,泻,谢,屑,薪,芯,锌,褉,褋,褌,褍,褎,褏,褑,褔,褕,褖,褗,褘,褜,褝,褞,褟")},
-    { name:"pyzm", title:lang.pyzm, content:toArray("膩,谩,菐,脿,膿,茅,臎,猫,墨,铆,菒,矛,艒,贸,菕,貌,奴,煤,菙,霉,菛,菢,菤,菧,眉")},
-    { name:"yyyb", title:lang.yyyb, content:toArray("i:,i,e,忙,蕦,蓹:,蓹,u:,u,蓴:,蓴,a:,ei,ai,蓴i,蓹u,au,i蓹,蔚蓹,u蓹,p,t,k,b,d,g,f,s,蕛,胃,h,v,z,蕭,冒,t蕛,tr,ts,d蕭,dr,dz,m,n,艐,l,r,w,j,")},
-    { name:"zyzf", title:lang.zyzf, content:toArray("銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�,銊�")}
-];
-(function createTab(content) {
-    for (var i = 0, ci; ci = content[i++];) {
-        var span = document.createElement("span");
-        span.setAttribute("tabSrc", ci.name);
-        span.innerHTML = ci.title;
-        if (i == 1)span.className = "focus";
-        domUtils.on(span, "click", function () {
-            var tmps = $G("tabHeads").children;
-            for (var k = 0, sk; sk = tmps[k++];) {
-                sk.className = "";
-            }
-            tmps = $G("tabBodys").children;
-            for (var k = 0, sk; sk = tmps[k++];) {
-                sk.style.display = "none";
-            }
-            this.className = "focus";
-            $G(this.getAttribute("tabSrc")).style.display = "";
-        });
-        $G("tabHeads").appendChild(span);
-        domUtils.insertAfter(span, document.createTextNode("\n"));
-        var div = document.createElement("div");
-        div.id = ci.name;
-        div.style.display = (i == 1) ? "" : "none";
-        var cons = ci.content;
-        for (var j = 0, con; con = cons[j++];) {
-            var charSpan = document.createElement("span");
-            charSpan.innerHTML = con;
-            domUtils.on(charSpan, "click", function () {
-                editor.execCommand("insertHTML", this.innerHTML);
-                dialog.close();
-            });
-            div.appendChild(charSpan);
-        }
-        $G("tabBodys").appendChild(div);
-    }
-})(charsContent);
-function toArray(str) {
-    return str.split(",");
-}
diff --git a/server/public/ueditor/dialogs/table/dragicon.png b/server/public/ueditor/dialogs/table/dragicon.png
deleted file mode 100644
index f26203b..0000000
--- a/server/public/ueditor/dialogs/table/dragicon.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/table/edittable.css b/server/public/ueditor/dialogs/table/edittable.css
deleted file mode 100644
index ff8e0e0..0000000
--- a/server/public/ueditor/dialogs/table/edittable.css
+++ /dev/null
@@ -1,84 +0,0 @@
-body{
-    overflow: hidden;
-    width: 540px;
-}
-.wrapper {
-    margin: 10px auto 0;
-    font-size: 12px;
-    overflow: hidden;
-    width: 520px;
-    height: 315px;
-}
-
-.clear {
-    clear: both;
-}
-
-.wrapper .left {
-    float: left;
-    margin-left: 10px;;
-}
-
-.wrapper .right {
-    float: right;
-    border-left: 2px dotted #EDEDED;
-    padding-left: 15px;
-}
-
-.section {
-    margin-bottom: 15px;
-    width: 240px;
-    overflow: hidden;
-}
-
-.section h3 {
-    font-weight: bold;
-    padding: 5px 0;
-    margin-bottom: 10px;
-    border-bottom: 1px solid #EDEDED;
-    font-size: 12px;
-}
-
-.section ul {
-    list-style: none;
-    overflow: hidden;
-    clear: both;
-
-}
-
-.section li {
-    float: left;
-    width: 120px;;
-}
-
-.section .tone {
-    width: 80px;;
-}
-
-.section .preview {
-    width: 220px;
-}
-
-.section .preview table {
-    text-align: center;
-    vertical-align: middle;
-    color: #666;
-}
-
-.section .preview caption {
-    font-weight: bold;
-}
-
-.section .preview td {
-    border-width: 1px;
-    border-style: solid;
-    height: 22px;
-}
-
-.section .preview th {
-    border-style: solid;
-    border-color: #DDD;
-    border-width: 2px 1px 1px 1px;
-    height: 22px;
-    background-color: #F7F7F7;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/table/edittable.html b/server/public/ueditor/dialogs/table/edittable.html
deleted file mode 100644
index 217c20d..0000000
--- a/server/public/ueditor/dialogs/table/edittable.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title></title>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="edittable.css">
-</head>
-<body>
-<div class="wrapper">
-    <div class="left">
-        <div class="section">
-            <h3><var id="lang_tableStyle"></var></h3>
-            <ul>
-                <li>
-                    <label onselectstart="return false"><input type="checkbox" id="J_title" name="style"/><var id="lang_insertTitle"></var></label>
-                </li>
-                <li>
-                    <label onselectstart="return false"><input type="checkbox" id="J_titleCol" name="style"/><var id="lang_insertTitleCol"></var></label>
-                </li>
-            </ul>
-            <ul>
-                <li>
-                    <label onselectstart="return false"><input type="checkbox" id="J_caption" name="style"/><var id="lang_insertCaption"></var></label>
-                </li>
-                <li>
-                    <label onselectstart="return false"><input type="checkbox" id="J_sorttable" name="style"/><var id="lang_orderbycontent"></var></label>
-                </li>
-            </ul>
-            <div class="clear"></div>
-        </div>
-        <div class="section">
-            <h3><var id="lang_tableSize"></var></h3>
-            <ul>
-                <li>
-                    <label><input type="radio" id="J_autoSizeContent" name="size"/><var id="lang_autoSizeContent"></var></label>
-                </li>
-                <li>
-                    <label><input type="radio" id="J_autoSizePage" name="size"/><var id="lang_autoSizePage"></var></label>
-                </li>
-            </ul>
-            <div class="clear"></div>
-        </div>
-        <div class="section">
-            <h3><var id="lang_borderStyle"></var></h3>
-            <ul>
-                <li>
-                    <span><var id="lang_color"></var></span>
-                    <input type="text" class="tone" id="J_tone" readonly='readonly' />
-                </li>
-            </ul>
-            <div class="clear"></div>
-        </div>
-    </div>
-    <div class="right">
-        <div class="section">
-            <h3><var id="lang_example"></var></h3>
-            <div class="preview" id="J_preview">
-            </div>
-        </div>
-    </div>
-</div>
-<script type="text/javascript" src="edittable.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/table/edittable.js b/server/public/ueditor/dialogs/table/edittable.js
deleted file mode 100644
index 2b4a35e..0000000
--- a/server/public/ueditor/dialogs/table/edittable.js
+++ /dev/null
@@ -1,237 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-12-19
- * Time: 涓嬪崍4:55
- * To change this template use File | Settings | File Templates.
- */
-(function () {
-    var title = $G("J_title"),
-        titleCol = $G("J_titleCol"),
-        caption = $G("J_caption"),
-        sorttable = $G("J_sorttable"),
-        autoSizeContent = $G("J_autoSizeContent"),
-        autoSizePage = $G("J_autoSizePage"),
-        tone = $G("J_tone"),
-        me,
-        preview = $G("J_preview");
-
-    var editTable = function () {
-        me = this;
-        me.init();
-    };
-    editTable.prototype = {
-        init:function () {
-            var colorPiker = new UE.ui.ColorPicker({
-                    editor:editor
-                }),
-                colorPop = new UE.ui.Popup({
-                    editor:editor,
-                    content:colorPiker
-                });
-
-            title.checked = editor.queryCommandState("inserttitle") == -1;
-            titleCol.checked = editor.queryCommandState("inserttitlecol") == -1;
-            caption.checked = editor.queryCommandState("insertcaption") == -1;
-            sorttable.checked = editor.queryCommandState("enablesort") == 1;
-
-            var enablesortState = editor.queryCommandState("enablesort"),
-                disablesortState = editor.queryCommandState("disablesort");
-
-            sorttable.checked = !!(enablesortState < 0 && disablesortState >=0);
-            sorttable.disabled = !!(enablesortState < 0 && disablesortState < 0);
-            sorttable.title = enablesortState < 0 && disablesortState < 0 ? lang.errorMsg:'';
-
-            me.createTable(title.checked, titleCol.checked, caption.checked);
-            me.setAutoSize();
-            me.setColor(me.getColor());
-
-            domUtils.on(title, "click", me.titleHanler);
-            domUtils.on(titleCol, "click", me.titleColHanler);
-            domUtils.on(caption, "click", me.captionHanler);
-            domUtils.on(sorttable, "click", me.sorttableHanler);
-            domUtils.on(autoSizeContent, "click", me.autoSizeContentHanler);
-            domUtils.on(autoSizePage, "click", me.autoSizePageHanler);
-
-            domUtils.on(tone, "click", function () {
-                colorPop.showAnchor(tone);
-            });
-            domUtils.on(document, 'mousedown', function () {
-                colorPop.hide();
-            });
-            colorPiker.addListener("pickcolor", function () {
-                me.setColor(arguments[1]);
-                colorPop.hide();
-            });
-            colorPiker.addListener("picknocolor", function () {
-                me.setColor("");
-                colorPop.hide();
-            });
-        },
-
-        createTable:function (hasTitle, hasTitleCol, hasCaption) {
-            var arr = [],
-                sortSpan = '<span>^</span>';
-            arr.push("<table id='J_example'>");
-            if (hasCaption) {
-                arr.push("<caption>" + lang.captionName + "</caption>")
-            }
-            if (hasTitle) {
-                arr.push("<tr>");
-                if(hasTitleCol) { arr.push("<th>" + lang.titleName + "</th>"); }
-                for (var j = 0; j < 5; j++) {
-                    arr.push("<th>" + lang.titleName + "</th>");
-                }
-                arr.push("</tr>");
-            }
-            for (var i = 0; i < 6; i++) {
-                arr.push("<tr>");
-                if(hasTitleCol) { arr.push("<th>" + lang.titleName + "</th>") }
-                for (var k = 0; k < 5; k++) {
-                    arr.push("<td>" + lang.cellsName + "</td>")
-                }
-                arr.push("</tr>");
-            }
-            arr.push("</table>");
-            preview.innerHTML = arr.join("");
-            this.updateSortSpan();
-        },
-        titleHanler:function () {
-            var example = $G("J_example"),
-                frg=document.createDocumentFragment(),
-                color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"),
-                colCount = example.rows[0].children.length;
-
-            if (title.checked) {
-                example.insertRow(0);
-                for (var i = 0, node; i < colCount; i++) {
-                    node = document.createElement("th");
-                    node.innerHTML = lang.titleName;
-                    frg.appendChild(node);
-                }
-                example.rows[0].appendChild(frg);
-
-            } else {
-                domUtils.remove(example.rows[0]);
-            }
-            me.setColor(color);
-            me.updateSortSpan();
-        },
-        titleColHanler:function () {
-            var example = $G("J_example"),
-                color = domUtils.getComputedStyle(domUtils.getElementsByTagName(example, "td")[0], "border-color"),
-                colArr = example.rows,
-                colCount = colArr.length;
-
-            if (titleCol.checked) {
-                for (var i = 0, node; i < colCount; i++) {
-                    node = document.createElement("th");
-                    node.innerHTML = lang.titleName;
-                    colArr[i].insertBefore(node, colArr[i].children[0]);
-                }
-            } else {
-                for (var i = 0; i < colCount; i++) {
-                    domUtils.remove(colArr[i].children[0]);
-                }
-            }
-            me.setColor(color);
-            me.updateSortSpan();
-        },
-        captionHanler:function () {
-            var example = $G("J_example");
-            if (caption.checked) {
-                var row = document.createElement('caption');
-                row.innerHTML = lang.captionName;
-                example.insertBefore(row, example.firstChild);
-            } else {
-                domUtils.remove(domUtils.getElementsByTagName(example, 'caption')[0]);
-            }
-        },
-        sorttableHanler:function(){
-            me.updateSortSpan();
-        },
-        autoSizeContentHanler:function () {
-            var example = $G("J_example");
-            example.removeAttribute("width");
-        },
-        autoSizePageHanler:function () {
-            var example = $G("J_example");
-            var tds = example.getElementsByTagName(example, "td");
-            utils.each(tds, function (td) {
-                td.removeAttribute("width");
-            });
-            example.setAttribute('width', '100%');
-        },
-        updateSortSpan: function(){
-            var example = $G("J_example"),
-                row = example.rows[0];
-
-            var spans = domUtils.getElementsByTagName(example,"span");
-            utils.each(spans,function(span){
-                span.parentNode.removeChild(span);
-            });
-            if (sorttable.checked) {
-                utils.each(row.cells, function(cell, i){
-                    var span = document.createElement("span");
-                    span.innerHTML = "^";
-                    cell.appendChild(span);
-                });
-            }
-        },
-        getColor:function () {
-            var start = editor.selection.getStart(), color,
-                cell = domUtils.findParentByTagName(start, ["td", "th", "caption"], true);
-            color = cell && domUtils.getComputedStyle(cell, "border-color");
-            if (!color)  color = "#DDDDDD";
-            return color;
-        },
-        setColor:function (color) {
-            var example = $G("J_example"),
-                arr = domUtils.getElementsByTagName(example, "td").concat(
-                    domUtils.getElementsByTagName(example, "th"),
-                    domUtils.getElementsByTagName(example, "caption")
-                );
-
-            tone.value = color;
-            utils.each(arr, function (node) {
-                node.style.borderColor = color;
-            });
-
-        },
-        setAutoSize:function () {
-            var me = this;
-            autoSizePage.checked = true;
-            me.autoSizePageHanler();
-        }
-    };
-
-    new editTable;
-
-    dialog.onok = function () {
-        editor.__hasEnterExecCommand = true;
-
-        var checks = {
-            title:"inserttitle deletetitle",
-            titleCol:"inserttitlecol deletetitlecol",
-            caption:"insertcaption deletecaption",
-            sorttable:"enablesort disablesort"
-        };
-        editor.fireEvent('saveScene');
-        for(var i in checks){
-            var cmds = checks[i].split(" "),
-                input = $G("J_" + i);
-            if(input["checked"]){
-                editor.queryCommandState(cmds[0])!=-1 &&editor.execCommand(cmds[0]);
-            }else{
-                editor.queryCommandState(cmds[1])!=-1 &&editor.execCommand(cmds[1]);
-            }
-        }
-
-        editor.execCommand("edittable", tone.value);
-        autoSizeContent.checked ?editor.execCommand('adaptbytext') : "";
-        autoSizePage.checked ? editor.execCommand("adaptbywindow") : "";
-        editor.fireEvent('saveScene');
-
-        editor.__hasEnterExecCommand = false;
-    };
-})();
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/table/edittd.html b/server/public/ueditor/dialogs/table/edittd.html
deleted file mode 100644
index a42dc01..0000000
--- a/server/public/ueditor/dialogs/table/edittd.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title></title>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        .section {
-            text-align: center;
-            margin-top: 10px;
-        }
-        .section input {
-            margin-left: 5px;
-            width: 70px;
-        }
-    </style>
-</head>
-<body>
-<div class="section">
-    <span><var id="lang_tdBkColor"></var></span>
-    <input type="text" id="J_tone"/>
-</div>
-<script type="text/javascript">
-    var tone = $G("J_tone"),
-            colorPiker = new UE.ui.ColorPicker({
-                editor:editor
-            }),
-            colorPop = new UE.ui.Popup({
-                editor:editor,
-                content:colorPiker
-            });
-    domUtils.on(tone, "click", function () {
-        colorPop.showAnchor(tone);
-    });
-    domUtils.on(document, 'mousedown', function () {
-        colorPop.hide();
-    });
-    colorPiker.addListener("pickcolor", function () {
-        tone.value = arguments[1];
-        colorPop.hide();
-    });
-    colorPiker.addListener("picknocolor", function () {
-        tone.value="";
-        colorPop.hide();
-    });
-    dialog.onok=function(){
-        editor.execCommand("edittd",tone.value);
-    };
-
-    var start = editor.selection.getStart(),
-        cell = start && domUtils.findParentByTagName(start, ["td", "th"], true);
-    if(cell){
-        var color = domUtils.getComputedStyle(cell,'background-color');
-        if(/^#/.test(color)){
-            tone.value = color
-        }
-
-    }
-
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/table/edittip.html b/server/public/ueditor/dialogs/table/edittip.html
deleted file mode 100644
index 9d8f78d..0000000
--- a/server/public/ueditor/dialogs/table/edittip.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>琛ㄦ牸鍒犻櫎鎻愮ず</title>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        .section {
-            width: 200px;
-            margin: 10px auto 0;
-            font-size: 14px;
-        }
-
-        .item {
-            text-align: center;
-        }
-    </style>
-</head>
-<body>
-<div class="section">
-    <div class="item">
-        <label><input type="radio" id="J_delRow" name="cmd" checked/><var id="lang_delRow"></var></label>
-    </div>
-    <div class="item">
-        <label><input type="radio" id="J_delCol" name="cmd"/><var id="lang_delCol"></var></label>
-    </div>
-</div>
-<script type="text/javascript">
-    dialog.onok = function () {
-        $G("J_delRow").checked ? editor.execCommand("deleterow") : editor.execCommand("deletecol");
-    };
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/template/config.js b/server/public/ueditor/dialogs/template/config.js
deleted file mode 100644
index 42e474b..0000000
--- a/server/public/ueditor/dialogs/template/config.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-8-8
- * Time: 涓嬪崍2:00
- * To change this template use File | Settings | File Templates.
- */
-var templates = [
-    {
-        "pre":"pre0.png",
-        'title':lang.blank,
-        'preHtml':'<p class="ue_t">&nbsp;娆㈣繋浣跨敤UEditor锛�</p>',
-        "html":'<p class="ue_t">娆㈣繋浣跨敤UEditor锛�</p>'
-
-    },
-    {
-        "pre":"pre1.png",
-        'title':lang.blog,
-        'preHtml':'<h1 label="Title center" name="tc" style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;text-align:center;margin:0px 0px 20px;"><span style="color:#c0504d;">娣卞叆鐞嗚ВRange</span></h1><p style="text-align:center;"><strong class=" ">UEditor浜屾寮�鍙�</strong></p><h3><span class=" " style="font-family:骞煎渾">浠�涔堟槸Range</span></h3><p style="text-indent:2em;">瀵逛簬鈥滄彃鍏モ�濋�夐」鍗′笂鐨勫簱锛屽湪璁捐鏃堕兘鍏呭垎鑰冭檻浜嗗叾涓殑椤逛笌鏂囨。鏁翠綋澶栬鐨勫崗璋冩�с�� </p><br /><h3><span class=" " style="font-family:骞煎渾">Range鑳藉共浠�涔�</span></h3><p style="text-indent:2em;">鍦ㄢ�滃紑濮嬧�濋�夐」鍗′笂锛岄�氳繃浠庡揩閫熸牱寮忓簱涓负鎵�閫夋枃鏈�夋嫨涓�绉嶅瑙傦紝鎮ㄥ彲浠ユ柟渚垮湴鏇存敼鏂囨。涓墍閫夋枃鏈殑鏍煎紡銆�</p>',
-        "html":'<h1 class="ue_t" label="Title center" name="tc" style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;text-align:center;margin:0px 0px 20px;"><span style="color:#c0504d;">[閿叆鏂囨。鏍囬]</span></h1><p style="text-align:center;"><strong class="ue_t">[閿叆鏂囨。鍓爣棰榏</strong></p><h3><span class="ue_t" style="font-family:骞煎渾">[鏍囬 1]</span></h3><p class="ue_t"  style="text-indent:2em;">瀵逛簬鈥滄彃鍏モ�濋�夐」鍗′笂鐨勫簱锛屽湪璁捐鏃堕兘鍏呭垎鑰冭檻浜嗗叾涓殑椤逛笌鏂囨。鏁翠綋澶栬鐨勫崗璋冩�с�� 鎮ㄥ彲浠ヤ娇鐢ㄨ繖浜涘簱鏉ユ彃鍏ヨ〃鏍笺�侀〉鐪夈�侀〉鑴氥�佸垪琛ㄣ�佸皝闈互鍙婂叾浠栨枃妗f瀯寤哄熀鍧椼�� 鎮ㄥ垱寤虹殑鍥剧墖銆佸浘琛ㄦ垨鍏崇郴鍥句篃灏嗕笌褰撳墠鐨勬枃妗e瑙傚崗璋冧竴鑷淬��</p><h3><span class="ue_t" style="font-family:骞煎渾">[鏍囬 2]</span></h3><p class="ue_t"  style="text-indent:2em;">鍦ㄢ�滃紑濮嬧�濋�夐」鍗′笂锛岄�氳繃浠庡揩閫熸牱寮忓簱涓负鎵�閫夋枃鏈�夋嫨涓�绉嶅瑙傦紝鎮ㄥ彲浠ユ柟渚垮湴鏇存敼鏂囨。涓墍閫夋枃鏈殑鏍煎紡銆� 鎮ㄨ繕鍙互浣跨敤鈥滃紑濮嬧�濋�夐」鍗′笂鐨勫叾浠栨帶浠舵潵鐩存帴璁剧疆鏂囨湰鏍煎紡銆傚ぇ澶氭暟鎺т欢閮藉厑璁告偍閫夋嫨鏄娇鐢ㄥ綋鍓嶄富棰樺瑙傦紝杩樻槸浣跨敤鏌愮鐩存帴鎸囧畾鐨勬牸寮忋�� </p><h3><span class="ue_t" style="font-family:骞煎渾">[鏍囬 3]</span></h3><p class="ue_t">瀵逛簬鈥滄彃鍏モ�濋�夐」鍗′笂鐨勫簱锛屽湪璁捐鏃堕兘鍏呭垎鑰冭檻浜嗗叾涓殑椤逛笌鏂囨。鏁翠綋澶栬鐨勫崗璋冩�с�� 鎮ㄥ彲浠ヤ娇鐢ㄨ繖浜涘簱鏉ユ彃鍏ヨ〃鏍笺�侀〉鐪夈�侀〉鑴氥�佸垪琛ㄣ�佸皝闈互鍙婂叾浠栨枃妗f瀯寤哄熀鍧椼�� 鎮ㄥ垱寤虹殑鍥剧墖銆佸浘琛ㄦ垨鍏崇郴鍥句篃灏嗕笌褰撳墠鐨勬枃妗e瑙傚崗璋冧竴鑷淬��</p><p class="ue_t"><br /></p>'
-
-    },
-    {
-        "pre":"pre2.png",
-        'title':lang.resume,
-        'preHtml':'<h1 label="Title left" name="tl" style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;margin:0px 0px 10px;"><span style="color:#e36c09;" class=" ">WEB鍓嶇寮�鍙戠畝鍘�</span></h1><table width="100%" border="1" bordercolor="#95B3D7" style="border-collapse:collapse;"><tbody><tr><td width="100" style="text-align:center;"><p><span style="background-color:transparent;">鎻�</span><br /></p><p>鍏�</p><p>鐓�</p><p>鐗�</p></td><td><p><span style="background-color:transparent;"> 鑱旂郴鐢佃瘽锛�</span><span class="ue_t" style="background-color:transparent;">[閿叆鎮ㄧ殑鐢佃瘽]</span><br /></p><p><span style="background-color:transparent;"> 鐢靛瓙閭欢锛�</span><span class="ue_t" style="background-color:transparent;">[閿叆鎮ㄧ殑鐢靛瓙閭欢鍦板潃]</span><br /></p><p><span style="background-color:transparent;"> 瀹跺涵浣忓潃锛�</span><span class="ue_t" style="background-color:transparent;">[閿叆鎮ㄧ殑鍦板潃]</span><br /></p></td></tr></tbody></table><h3><span style="color:#E36C09;font-size:20px;">鐩爣鑱屼綅</span></h3><p style="text-indent:2em;" class=" ">WEB鍓嶇鐮斿彂宸ョ▼甯�</p><h3><span style="color:#e36c09;font-size:20px;">瀛﹀巻</span></h3><p><span style="display:none;line-height:0px;" id="_baidu_bookmark_start_26">锘�</span></p><ol style="list-style-type:decimal;"><li><p><span class="ue_t">[璧锋鏃堕棿]</span> <span class="ue_t">[瀛︽牎鍚嶇О] </span> <span class="ue_t">[鎵�瀛︿笓涓歖</span> <span class="ue_t">[鎵�鑾峰浣峕</span></p></li></ol><h3><span style="color:#e36c09;font-size:20px;" class="ue_t">宸ヤ綔缁忛獙</span></h3><p><br /></p>',
-        "html":'<h1 label="Title left" name="tl" style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;margin:0px 0px 10px;"><span style="color:#e36c09;" class="ue_t">[姝ゅ閿叆绠�鍘嗘爣棰榏</span></h1><p><span style="color:#e36c09;"><br /></span></p><table width="100%" border="1" bordercolor="#95B3D7" style="border-collapse:collapse;"><tbody><tr><td width="200" style="text-align:center;" class="ue_t">銆愭澶勬彃鍏ョ収鐗囥��</td><td><p><br /></p><p> 鑱旂郴鐢佃瘽锛�<span class="ue_t">[閿叆鎮ㄧ殑鐢佃瘽]</span></p><p><br /></p><p> 鐢靛瓙閭欢锛�<span class="ue_t">[閿叆鎮ㄧ殑鐢靛瓙閭欢鍦板潃]</span></p><p><br /></p><p> 瀹跺涵浣忓潃锛�<span class="ue_t">[閿叆鎮ㄧ殑鍦板潃]</span></p><p><br /></p></td></tr></tbody></table><h3><span style="color:#e36c09;font-size:20px;">鐩爣鑱屼綅</span></h3><p style="text-indent:2em;" class="ue_t">[姝ゅ閿叆鎮ㄧ殑鏈熸湜鑱屼綅]</p><h3><span style="color:#e36c09;font-size:20px;">瀛﹀巻</span></h3><p><span style="display:none;line-height:0px;" id="_baidu_bookmark_start_26">锘�</span></p><ol style="list-style-type:decimal;"><li><p><span class="ue_t">[閿叆璧锋鏃堕棿]</span> <span class="ue_t">[閿叆瀛︽牎鍚嶇О] </span> <span class="ue_t">[閿叆鎵�瀛︿笓涓歖</span> <span class="ue_t">[閿叆鎵�鑾峰浣峕</span></p></li><li><p><span class="ue_t">[閿叆璧锋鏃堕棿]</span> <span class="ue_t">[閿叆瀛︽牎鍚嶇О]</span> <span class="ue_t">[閿叆鎵�瀛︿笓涓歖</span> <span class="ue_t">[閿叆鎵�鑾峰浣峕</span></p></li></ol><h3><span style="color:#e36c09;font-size:20px;" class="ue_t">宸ヤ綔缁忛獙</span></h3><ol style="list-style-type:decimal;"><li><p><span class="ue_t">[閿叆璧锋鏃堕棿]</span> <span class="ue_t">[閿叆鍏徃鍚嶇О]</span> <span class="ue_t">[閿叆鑱屼綅鍚嶇О]</span> </p></li><ol style="list-style-type:lower-alpha;"><li><p><span class="ue_t">[閿叆璐熻矗椤圭洰]</span> <span class="ue_t">[閿叆椤圭洰绠�浠媇</span></p></li><li><p><span class="ue_t">[閿叆璐熻矗椤圭洰]</span> <span class="ue_t">[閿叆椤圭洰绠�浠媇</span></p></li></ol><li><p><span class="ue_t">[閿叆璧锋鏃堕棿]</span> <span class="ue_t">[閿叆鍏徃鍚嶇О]</span> <span class="ue_t">[閿叆鑱屼綅鍚嶇О]</span> </p></li><ol style="list-style-type:lower-alpha;"><li><p><span class="ue_t">[閿叆璐熻矗椤圭洰]</span> <span class="ue_t">[閿叆椤圭洰绠�浠媇</span></p></li></ol></ol><p><span style="color:#e36c09;font-size:20px;">鎺屾彙鎶�鑳�</span></p><p style="text-indent:2em;"> &nbsp;<span class="ue_t">[杩欓噷鍙互閿叆鎮ㄦ墍鎺屾彙鐨勬妧鑳絔</span><br /></p>'
-
-    },
-    {
-        "pre":"pre3.png",
-        'title':lang.richText,
-        'preHtml':'<h1 label="Title center" name="tc" style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;text-align:center;margin:0px 0px 20px;" class="ue_t">[姝ゅ閿叆鏂囩珷鏍囬]</h1><p><img src="http://img.baidu.com/hi/youa/y_0034.gif" width="150" height="100" border="0" hspace="0" vspace="0" style="width:150px;height:100px;float:left;" />鍥炬枃娣锋帓鏂规硶</p><p>鍥剧墖灞呭乏锛屾枃瀛楀洿缁曞浘鐗囨帓鐗�</p><p>鏂规硶锛氬湪鏂囧瓧鍓嶉潰鎻掑叆鍥剧墖锛岃缃眳宸﹀榻愶紝鐒跺悗鍗冲彲鍦ㄥ彸杈硅緭鍏ュ琛屾枃</p><p><br /></p><p><img src="http://img.baidu.com/hi/youa/y_0040.gif" width="100" height="100" border="0" hspace="0" vspace="0" style="width:100px;height:100px;float:right;" /></p><p>杩樻湁娌℃湁浠�涔堝叾浠栫殑鐜粫鏂瑰紡鍛紵杩欓噷鏄眳鍙崇幆缁�</p><p><br /></p><p>娆㈣繋澶у澶氬灏濊瘯锛屼负UEditor鎻愪緵鏇村楂樿川閲忔ā鏉匡紒</p>',
-        "html":'<p><br /></p><h1 label="Title center" name="tc" style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;text-align:center;margin:0px 0px 20px;" class="ue_t">[姝ゅ閿叆鏂囩珷鏍囬]</h1><p><img src="http://img.baidu.com/hi/youa/y_0034.gif" width="300" height="200" border="0" hspace="0" vspace="0" style="width:300px;height:200px;float:left;" />鍥炬枃娣锋帓鏂规硶</p><p>1. 鍥剧墖灞呭乏锛屾枃瀛楀洿缁曞浘鐗囨帓鐗�</p><p>鏂规硶锛氬湪鏂囧瓧鍓嶉潰鎻掑叆鍥剧墖锛岃缃眳宸﹀榻愶紝鐒跺悗鍗冲彲鍦ㄥ彸杈硅緭鍏ュ琛屾枃鏈�</p><p><br /></p><p>2. 鍥剧墖灞呭彸锛屾枃瀛楀洿缁曞浘鐗囨帓鐗�</p><p>鏂规硶锛氬湪鏂囧瓧鍓嶉潰鎻掑叆鍥剧墖锛岃缃眳鍙冲榻愶紝鐒跺悗鍗冲彲鍦ㄥ乏杈硅緭鍏ュ琛屾枃鏈�</p><p><br /></p><p>3. 鍥剧墖灞呬腑鐜粫鎺掔増</p><p>鏂规硶锛氫翰锛岃繖涓湡蹇冩病鏈夊姙娉曘�傘�傘��</p><p><br /></p><p><br /></p><p><img src="http://img.baidu.com/hi/youa/y_0040.gif" width="300" height="300" border="0" hspace="0" vspace="0" style="width:300px;height:300px;float:right;" /></p><p>杩樻湁娌℃湁浠�涔堝叾浠栫殑鐜粫鏂瑰紡鍛紵杩欓噷鏄眳鍙崇幆缁�</p><p><br /></p><p>娆㈣繋澶у澶氬灏濊瘯锛屼负UEditor鎻愪緵鏇村楂樿川閲忔ā鏉匡紒</p><p><br /></p><p>鍗犱綅</p><p><br /></p><p>鍗犱綅</p><p><br /></p><p>鍗犱綅</p><p><br /></p><p>鍗犱綅</p><p><br /></p><p>鍗犱綅</p><p><br /></p><p><br /></p>'
-    },
-    {
-        "pre":"pre4.png",
-        'title':lang.sciPapers,
-        'preHtml':'<h2 style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;margin:0px 0px 10px;text-align:center;" class="ue_t">[閿叆鏂囩珷鏍囬]</h2><p><strong><span style="font-size:12px;">鎽樿</span></strong><span style="font-size:12px;" class="ue_t">锛氳繖閲屽彲浠ヨ緭鍏ュ緢闀垮緢闀垮緢闀垮緢闀垮緢闀垮緢闀垮緢闀垮緢闀垮緢宸殑鎽樿</span></p><p style="line-height:1.5em;"><strong>鏍囬 1</strong></p><p style="text-indent:2em;"><span style="font-size:14px;" class="ue_t">杩欓噷鍙互杈撳叆寰堝鍐呭锛屽彲浠ュ浘鏂囨贩鎺掞紝鍙互鏈夊垪琛ㄧ瓑銆�</span></p><p style="line-height:1.5em;"><strong>鏍囬 2</strong></p><ol style="list-style-type:lower-alpha;"><li><p class="ue_t">鍒楄〃 1</p></li><li><p class="ue_t">鍒楄〃 2</p></li><ol style="list-style-type:lower-roman;"><li><p class="ue_t">澶氱骇鍒楄〃 1</p></li><li><p class="ue_t">澶氱骇鍒楄〃 2</p></li></ol><li><p class="ue_t">鍒楄〃 3<br /></p></li></ol><p style="line-height:1.5em;"><strong>鏍囬 3</strong></p><p style="text-indent:2em;"><span style="font-size:14px;" class="ue_t">鏉ヤ釜鏂囧瓧鍥炬枃娣锋帓鐨�</span></p><p style="text-indent:2em;"><br /></p>',
-        'html':'<h2 style="border-bottom-color:#cccccc;border-bottom-width:2px;border-bottom-style:solid;padding:0px 4px 0px 0px;margin:0px 0px 10px;text-align:center;" class="ue_t">[閿叆鏂囩珷鏍囬]</h2><p><strong><span style="font-size:12px;">鎽樿</span></strong><span style="font-size:12px;" class="ue_t">锛氳繖閲屽彲浠ヨ緭鍏ュ緢闀垮緢闀垮緢闀垮緢闀垮緢闀垮緢闀垮緢闀垮緢闀垮緢宸殑鎽樿</span></p><p style="line-height:1.5em;"><strong>鏍囬 1</strong></p><p style="text-indent:2em;"><span style="font-size:14px;" class="ue_t">杩欓噷鍙互杈撳叆寰堝鍐呭锛屽彲浠ュ浘鏂囨贩鎺掞紝鍙互鏈夊垪琛ㄧ瓑銆�</span></p><p style="line-height:1.5em;"><strong>鏍囬 2</strong></p><p style="text-indent:2em;"><span style="font-size:14px;" class="ue_t">鏉ヤ釜鍒楄〃鐬呯瀰锛�</span></p><ol style="list-style-type:lower-alpha;"><li><p class="ue_t">鍒楄〃 1</p></li><li><p class="ue_t">鍒楄〃 2</p></li><ol style="list-style-type:lower-roman;"><li><p class="ue_t">澶氱骇鍒楄〃 1</p></li><li><p class="ue_t">澶氱骇鍒楄〃 2</p></li></ol><li><p class="ue_t">鍒楄〃 3<br /></p></li></ol><p style="line-height:1.5em;"><strong>鏍囬 3</strong></p><p style="text-indent:2em;"><span style="font-size:14px;" class="ue_t">鏉ヤ釜鏂囧瓧鍥炬枃娣锋帓鐨�</span></p><p style="text-indent:2em;"><span style="font-size:14px;" class="ue_t">杩欓噷鍙互澶氳</span></p><p style="text-indent:2em;"><span style="font-size:14px;" class="ue_t">鍙宠竟鏄浘鐗�</span></p><p style="text-indent:2em;"><span style="font-size:14px;" class="ue_t">缁濆娌℃湁闂鐨勶紝涓嶄俊浣犱篃鍙互璇曡瘯鐪�</span></p><p><br /></p>'
-    }
-];
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/template/images/bg.gif b/server/public/ueditor/dialogs/template/images/bg.gif
deleted file mode 100644
index 8c1d10a..0000000
--- a/server/public/ueditor/dialogs/template/images/bg.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/template/images/pre0.png b/server/public/ueditor/dialogs/template/images/pre0.png
deleted file mode 100644
index 8f3c16a..0000000
--- a/server/public/ueditor/dialogs/template/images/pre0.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/template/images/pre1.png b/server/public/ueditor/dialogs/template/images/pre1.png
deleted file mode 100644
index 5a03f96..0000000
--- a/server/public/ueditor/dialogs/template/images/pre1.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/template/images/pre2.png b/server/public/ueditor/dialogs/template/images/pre2.png
deleted file mode 100644
index 5a55672..0000000
--- a/server/public/ueditor/dialogs/template/images/pre2.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/template/images/pre3.png b/server/public/ueditor/dialogs/template/images/pre3.png
deleted file mode 100644
index d852d29..0000000
--- a/server/public/ueditor/dialogs/template/images/pre3.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/template/images/pre4.png b/server/public/ueditor/dialogs/template/images/pre4.png
deleted file mode 100644
index 0d7bc72..0000000
--- a/server/public/ueditor/dialogs/template/images/pre4.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/template/template.css b/server/public/ueditor/dialogs/template/template.css
deleted file mode 100644
index 2658bd2..0000000
--- a/server/public/ueditor/dialogs/template/template.css
+++ /dev/null
@@ -1,18 +0,0 @@
-.wrap{ padding: 5px;font-size: 14px;}
-.left{width:425px;float: left;}
-.right{width:160px;border: 1px solid #ccc;float: right;padding: 5px;margin-right: 5px;}
-.right .pre{height: 332px;overflow-y: auto;}
-.right .preitem{border: white 1px solid;margin: 5px 0;padding: 2px 0;}
-.right .preitem:hover{background-color: lemonChiffon;cursor: pointer;border: #ccc 1px solid;}
-.right .preitem img{display: block;margin: 0 auto;width:100px;}
-.clear{clear: both;}
-.top{height:26px;line-height: 26px;padding: 5px;}
-.bottom{height:320px;width:100%;margin: 0 auto;}
-.transparent{ background: url("images/bg.gif") repeat;}
-.bottom table tr td{border:1px dashed #ccc;}
-#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;}
-.border_style1{padding:2px;border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;}
-p{margin: 5px 0}
-table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all;}
-li{clear:both}
-ol{padding-left:40px; }
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/template/template.html b/server/public/ueditor/dialogs/template/template.html
deleted file mode 100644
index 9d71ece..0000000
--- a/server/public/ueditor/dialogs/template/template.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="template.css">
-</head>
-<body>
-    <div class="wrap">
-        <div class="left">
-            <div class="top">
-                <label><var id="lang_template_clear"></var>锛�<input id="issave" type="checkbox"></label>
-            </div>
-            <div class="bottom border_style1" id="preview"></div>
-        </div>
-        <fieldset  class="right border_style1">
-            <legend><var id="lang_template_select"></var></legend>
-            <div class="pre" id="preitem"></div>
-        </fieldset>
-        <div class="clear"></div>
-    </div>
-    <script type="text/javascript" src="config.js"></script>
-    <script type="text/javascript" src="template.js"></script>
-</body>
-</html>
diff --git a/server/public/ueditor/dialogs/template/template.js b/server/public/ueditor/dialogs/template/template.js
deleted file mode 100644
index 0f1cdad..0000000
--- a/server/public/ueditor/dialogs/template/template.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: xuheng
- * Date: 12-8-8
- * Time: 涓嬪崍2:09
- * To change this template use File | Settings | File Templates.
- */
-(function () {
-    var me = editor,
-            preview = $G( "preview" ),
-            preitem = $G( "preitem" ),
-            tmps = templates,
-            currentTmp;
-    var initPre = function () {
-        var str = "";
-        for ( var i = 0, tmp; tmp = tmps[i++]; ) {
-            str += '<div class="preitem" onclick="pre(' + i + ')"><img src="' + "images/" + tmp.pre + '" ' + (tmp.title ? "alt=" + tmp.title + " title=" + tmp.title + "" : "") + '></div>';
-        }
-        preitem.innerHTML = str;
-    };
-    var pre = function ( n ) {
-        var tmp = tmps[n - 1];
-        currentTmp = tmp;
-        clearItem();
-        domUtils.setStyles( preitem.childNodes[n - 1], {
-            "background-color":"lemonChiffon",
-            "border":"#ccc 1px solid"
-        } );
-        preview.innerHTML = tmp.preHtml ? tmp.preHtml : "";
-    };
-    var clearItem = function () {
-        var items = preitem.children;
-        for ( var i = 0, item; item = items[i++]; ) {
-            domUtils.setStyles( item, {
-                "background-color":"",
-                "border":"white 1px solid"
-            } );
-        }
-    };
-    dialog.onok = function () {
-        if ( !$G( "issave" ).checked ){
-            me.execCommand( "cleardoc" );
-        }
-        var obj = {
-            html:currentTmp && currentTmp.html
-        };
-        me.execCommand( "template", obj );
-    };
-    initPre();
-    window.pre = pre;
-    pre(2)
-
-})();
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/video/images/bg.png b/server/public/ueditor/dialogs/video/images/bg.png
deleted file mode 100644
index 580be0a..0000000
--- a/server/public/ueditor/dialogs/video/images/bg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/center_focus.jpg b/server/public/ueditor/dialogs/video/images/center_focus.jpg
deleted file mode 100644
index 262b029..0000000
--- a/server/public/ueditor/dialogs/video/images/center_focus.jpg
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/file-icons.gif b/server/public/ueditor/dialogs/video/images/file-icons.gif
deleted file mode 100644
index d8c02c2..0000000
--- a/server/public/ueditor/dialogs/video/images/file-icons.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/file-icons.png b/server/public/ueditor/dialogs/video/images/file-icons.png
deleted file mode 100644
index 3ff82c8..0000000
--- a/server/public/ueditor/dialogs/video/images/file-icons.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/icons.gif b/server/public/ueditor/dialogs/video/images/icons.gif
deleted file mode 100644
index 78459de..0000000
--- a/server/public/ueditor/dialogs/video/images/icons.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/icons.png b/server/public/ueditor/dialogs/video/images/icons.png
deleted file mode 100644
index 12e4700..0000000
--- a/server/public/ueditor/dialogs/video/images/icons.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/image.png b/server/public/ueditor/dialogs/video/images/image.png
deleted file mode 100644
index 19699f6..0000000
--- a/server/public/ueditor/dialogs/video/images/image.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/left_focus.jpg b/server/public/ueditor/dialogs/video/images/left_focus.jpg
deleted file mode 100644
index 7886d27..0000000
--- a/server/public/ueditor/dialogs/video/images/left_focus.jpg
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/none_focus.jpg b/server/public/ueditor/dialogs/video/images/none_focus.jpg
deleted file mode 100644
index 7c768dc..0000000
--- a/server/public/ueditor/dialogs/video/images/none_focus.jpg
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/progress.png b/server/public/ueditor/dialogs/video/images/progress.png
deleted file mode 100644
index 717c486..0000000
--- a/server/public/ueditor/dialogs/video/images/progress.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/right_focus.jpg b/server/public/ueditor/dialogs/video/images/right_focus.jpg
deleted file mode 100644
index 173e10d..0000000
--- a/server/public/ueditor/dialogs/video/images/right_focus.jpg
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/success.gif b/server/public/ueditor/dialogs/video/images/success.gif
deleted file mode 100644
index 8d4f311..0000000
--- a/server/public/ueditor/dialogs/video/images/success.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/images/success.png b/server/public/ueditor/dialogs/video/images/success.png
deleted file mode 100644
index 94f968d..0000000
--- a/server/public/ueditor/dialogs/video/images/success.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/video/video.css b/server/public/ueditor/dialogs/video/video.css
deleted file mode 100644
index 8a17284..0000000
--- a/server/public/ueditor/dialogs/video/video.css
+++ /dev/null
@@ -1,635 +0,0 @@
-@charset "utf-8";
-.wrapper{ width: 570px;_width:575px;margin: 10px auto; zoom:1;position: relative}
-.tabbody{height: 335px;}
-.tabbody .panel {
-    position: absolute;
-    width: 0;
-    height: 0;
-    background: #fff;
-    overflow: hidden;
-    display: none;
-}
-.tabbody .panel.focus {
-    width: 100%;
-    height: 335px;
-    display: block;
-}
-
-.tabbody .panel table td{vertical-align: middle;}
-#videoUrl {
-    width: 490px;
-    height: 21px;
-    line-height: 21px;
-    margin: 8px 5px;
-    background: #FFF;
-    border: 1px solid #d7d7d7;
-}
-#videoSearchTxt{margin-left:15px;background: #FFF;width:200px;height:21px;line-height:21px;border: 1px solid #d7d7d7;}
-#searchList{width: 570px;overflow: auto;zoom:1;height: 270px;}
-#searchList div{float: left;width: 120px;height: 135px;margin: 5px 15px;}
-#searchList img{margin: 2px 8px;cursor: pointer;border: 2px solid #fff} /*涓嶇敤缂╃暐鍥�*/
-#searchList p{margin-left: 10px;}
-#videoType{
-    width: 65px;
-    height: 23px;
-    line-height: 22px;
-    border: 1px solid #d7d7d7;
-}
-#videoSearchBtn,#videoSearchReset{
-    /*width: 80px;*/
-    height: 25px;
-    line-height: 25px;
-    background: #eee;
-    border: 1px solid #d7d7d7;
-    cursor: pointer;
-    padding: 0 5px;
-}
-
-
-
-#preview{position: relative;width: 420px;padding:0;overflow: hidden; margin-left: 10px; _margin-left:5px; height: 280px;background-color: #ddd;float: left}
-#preview .previewMsg {position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;background-color: #666;}
-#preview .previewMsg span{display:block;margin: 125px auto 0 auto;text-align:center;font-size:18px;color:#fff;}
-#preview .previewVideo {position:absolute;top:0;margin:0;padding:0;height:280px;width:100%;}
-.edui-video-wrapper fieldset{
-    border: 1px solid #ddd;
-    padding-left: 5px;
-    margin-bottom: 20px;
-    padding-bottom: 5px;
-    width: 115px;
-}
-
-#videoInfo {width: 120px;float: left;margin-left: 10px;_margin-left:7px;}
-fieldset{
-    border: 1px solid #ddd;
-    padding-left: 5px;
-    margin-bottom: 20px;
-    padding-bottom: 5px;
-    width: 115px;
-}
-fieldset legend{font-weight: bold;}
-fieldset p{line-height: 30px;}
-fieldset input.txt{
-    width: 65px;
-    height: 21px;
-    line-height: 21px;
-    margin: 8px 5px;
-    background: #FFF;
-    border: 1px solid #d7d7d7;
-}
-label.url{font-weight: bold;margin-left: 5px;color: #06c;}
-#videoFloat div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;}
-#videoFloat .focus{opacity: 1;filter: alpha(opacity = 100)}
-span.view{display: inline-block;width: 30px;float: right;cursor: pointer;color: blue}
-
-
-
-
-/* upload video */
-.tabbody #upload.panel {
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-    background: #fff;
-    display: block;
-}
-.tabbody #upload.panel.focus {
-    width: 100%;
-    height: 335px;
-    display: block;
-    clip: auto;
-}
-#upload_alignment div{cursor:pointer;opacity: 0.5;filter: alpha(opacity = 50);margin:9px;_margin:5px;width:38px;height:36px;float:left;}
-#upload_alignment .focus{opacity: 1;filter: alpha(opacity = 100)}
-#upload_left { width:427px; float:left; }
-#upload_left .controller { height: 30px; clear: both; }
-#uploadVideoInfo{margin-top:10px;float:right;padding-right:8px;}
-
-#upload .queueList {
-    margin: 0;
-}
-
-#upload p {
-    margin: 0;
-}
-
-.element-invisible {
-    width: 0 !important;
-    height: 0 !important;
-    border: 0;
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-    position: absolute !important;
-    clip: rect(1px, 1px, 1px, 1px);
-}
-
-#upload .placeholder {
-    margin: 10px;
-    margin-right:0;
-    border: 2px dashed #e6e6e6;
-    *border: 0px dashed #e6e6e6;
-    height: 161px;
-    padding-top: 150px;
-    text-align: center;
-    width: 97%;
-    float: left;
-    background: url(./images/image.png) center 70px no-repeat;
-    color: #cccccc;
-    font-size: 18px;
-    position: relative;
-    top:0;
-    *margin-left: 0;
-    *left: 10px;
-}
-
-#upload .placeholder .webuploader-pick {
-    font-size: 18px;
-    background: #00b7ee;
-    border-radius: 3px;
-    line-height: 44px;
-    padding: 0 30px;
-    *width: 120px;
-    color: #fff;
-    display: inline-block;
-    margin: 0 auto 20px auto;
-    cursor: pointer;
-    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
-}
-
-#upload .placeholder .webuploader-pick-hover {
-    background: #00a2d4;
-}
-
-
-#filePickerContainer {
-    text-align: center;
-}
-
-#upload .placeholder .flashTip {
-    color: #666666;
-    font-size: 12px;
-    position: absolute;
-    width: 100%;
-    text-align: center;
-    bottom: 20px;
-}
-
-#upload .placeholder .flashTip a {
-    color: #0785d1;
-    text-decoration: none;
-}
-
-#upload .placeholder .flashTip a:hover {
-    text-decoration: underline;
-}
-
-#upload .placeholder.webuploader-dnd-over {
-    border-color: #999999;
-}
-
-#upload .filelist {
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    overflow-x: hidden;
-    overflow-y: auto;
-    position: relative;
-    height: 285px;
-}
-
-#upload .filelist:after {
-    content: '';
-    display: block;
-    width: 0;
-    height: 0;
-    overflow: hidden;
-    clear: both;
-}
-
-#upload .filelist li {
-    width: 113px;
-    height: 113px;
-    background: url(./images/bg.png);
-    text-align: center;
-    margin: 15px 0 0 20px;
-    *margin: 15px 0 0 15px;
-    position: relative;
-    display: block;
-    float: left;
-    overflow: hidden;
-    font-size: 12px;
-}
-
-#upload .filelist li p.log {
-    position: relative;
-    top: -45px;
-}
-
-#upload .filelist li p.title {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 100%;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    top: 5px;
-    text-indent: 5px;
-    text-align: left;
-}
-
-#upload .filelist li p.progress {
-    position: absolute;
-    width: 100%;
-    bottom: 0;
-    left: 0;
-    height: 8px;
-    overflow: hidden;
-    z-index: 50;
-    margin: 0;
-    border-radius: 0;
-    background: none;
-    -webkit-box-shadow: 0 0 0;
-}
-
-#upload .filelist li p.progress span {
-    display: none;
-    overflow: hidden;
-    width: 0;
-    height: 100%;
-    background: #1483d8 url(./images/progress.png) repeat-x;
-
-    -webit-transition: width 200ms linear;
-    -moz-transition: width 200ms linear;
-    -o-transition: width 200ms linear;
-    -ms-transition: width 200ms linear;
-    transition: width 200ms linear;
-
-    -webkit-animation: progressmove 2s linear infinite;
-    -moz-animation: progressmove 2s linear infinite;
-    -o-animation: progressmove 2s linear infinite;
-    -ms-animation: progressmove 2s linear infinite;
-    animation: progressmove 2s linear infinite;
-
-    -webkit-transform: translateZ(0);
-}
-
-@-webkit-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@-moz-keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-@keyframes progressmove {
-    0% {
-        background-position: 0 0;
-    }
-    100% {
-        background-position: 17px 0;
-    }
-}
-
-#upload .filelist li p.imgWrap {
-    position: relative;
-    z-index: 2;
-    line-height: 113px;
-    vertical-align: middle;
-    overflow: hidden;
-    width: 113px;
-    height: 113px;
-
-    -webkit-transform-origin: 50% 50%;
-    -moz-transform-origin: 50% 50%;
-    -o-transform-origin: 50% 50%;
-    -ms-transform-origin: 50% 50%;
-    transform-origin: 50% 50%;
-
-    -webit-transition: 200ms ease-out;
-    -moz-transition: 200ms ease-out;
-    -o-transition: 200ms ease-out;
-    -ms-transition: 200ms ease-out;
-    transition: 200ms ease-out;
-}
-#upload .filelist li p.imgWrap.notimage {
-    margin-top: 0;
-    width: 111px;
-    height: 111px;
-    border: 1px #eeeeee solid;
-}
-#upload .filelist li p.imgWrap.notimage i.file-preview {
-    margin-top: 15px;
-}
-
-#upload .filelist li img {
-    width: 100%;
-}
-
-#upload .filelist li p.error {
-    background: #f43838;
-    color: #fff;
-    position: absolute;
-    bottom: 0;
-    left: 0;
-    height: 28px;
-    line-height: 28px;
-    width: 100%;
-    z-index: 100;
-    display:none;
-}
-
-#upload .filelist li .success {
-    display: block;
-    position: absolute;
-    left: 0;
-    bottom: 0;
-    height: 40px;
-    width: 100%;
-    z-index: 200;
-    background: url(./images/success.png) no-repeat right bottom;
-    background-image: url(./images/success.gif) \9;
-}
-
-#upload .filelist li.filePickerBlock {
-    width: 113px;
-    height: 113px;
-    background: url(./images/image.png) no-repeat center 12px;
-    border: 1px solid #eeeeee;
-    border-radius: 0;
-}
-#upload .filelist li.filePickerBlock div.webuploader-pick  {
-    width: 100%;
-    height: 100%;
-    margin: 0;
-    padding: 0;
-    opacity: 0;
-    background: none;
-    font-size: 0;
-}
-
-#upload .filelist div.file-panel {
-    position: absolute;
-    height: 0;
-    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
-    background: rgba(0, 0, 0, 0.5);
-    width: 100%;
-    top: 0;
-    left: 0;
-    overflow: hidden;
-    z-index: 300;
-}
-
-#upload .filelist div.file-panel span {
-    width: 24px;
-    height: 24px;
-    display: inline;
-    float: right;
-    text-indent: -9999px;
-    overflow: hidden;
-    background: url(./images/icons.png) no-repeat;
-    background: url(./images/icons.gif) no-repeat \9;
-    margin: 5px 1px 1px;
-    cursor: pointer;
-    -webkit-tap-highlight-color: rgba(0,0,0,0);
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-
-#upload .filelist div.file-panel span.rotateLeft {
-    display:none;
-    background-position: 0 -24px;
-}
-
-#upload .filelist div.file-panel span.rotateLeft:hover {
-    background-position: 0 0;
-}
-
-#upload .filelist div.file-panel span.rotateRight {
-    display:none;
-    background-position: -24px -24px;
-}
-
-#upload .filelist div.file-panel span.rotateRight:hover {
-    background-position: -24px 0;
-}
-
-#upload .filelist div.file-panel span.cancel {
-    background-position: -48px -24px;
-}
-
-#upload .filelist div.file-panel span.cancel:hover {
-    background-position: -48px 0;
-}
-
-#upload .statusBar {
-    height: 45px;
-    border-bottom: 1px solid #dadada;
-    margin: 0 10px;
-    padding: 0;
-    line-height: 45px;
-    vertical-align: middle;
-    position: relative;
-}
-
-#upload .statusBar .progress {
-    border: 1px solid #1483d8;
-    width: 198px;
-    background: #fff;
-    height: 18px;
-    position: absolute;
-    top: 12px;
-    display: none;
-    text-align: center;
-    line-height: 18px;
-    color: #6dbfff;
-    margin: 0 10px 0 0;
-}
-#upload .statusBar .progress span.percentage {
-    width: 0;
-    height: 100%;
-    left: 0;
-    top: 0;
-    background: #1483d8;
-    position: absolute;
-}
-#upload .statusBar .progress span.text {
-    position: relative;
-    z-index: 10;
-}
-
-#upload .statusBar .info {
-    display: inline-block;
-    font-size: 14px;
-    color: #666666;
-}
-
-#upload .statusBar .btns {
-    position: absolute;
-    top: 7px;
-    right: 0;
-    line-height: 30px;
-}
-
-#filePickerBtn {
-    display: inline-block;
-    float: left;
-}
-#upload .statusBar .btns .webuploader-pick,
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-uploading,
-#upload .statusBar .btns .uploadBtn.state-paused {
-    background: #ffffff;
-    border: 1px solid #cfcfcf;
-    color: #565656;
-    padding: 0 18px;
-    display: inline-block;
-    border-radius: 3px;
-    margin-left: 10px;
-    cursor: pointer;
-    font-size: 14px;
-    float: left;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none;
-}
-#upload .statusBar .btns .webuploader-pick-hover,
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-uploading:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover {
-    background: #f0f0f0;
-}
-
-#upload .statusBar .btns .uploadBtn,
-#upload .statusBar .btns .uploadBtn.state-paused{
-    background: #00b7ee;
-    color: #fff;
-    border-color: transparent;
-}
-#upload .statusBar .btns .uploadBtn:hover,
-#upload .statusBar .btns .uploadBtn.state-paused:hover{
-    background: #00a2d4;
-}
-
-#upload .statusBar .btns .uploadBtn.disabled {
-    pointer-events: none;
-    filter:alpha(opacity=60);
-    -moz-opacity:0.6;
-    -khtml-opacity: 0.6;
-    opacity: 0.6;
-}
-
-
-/* 鍦ㄧ嚎鏂囦欢鐨勬枃浠堕瑙堝浘鏍� */
-i.file-preview {
-    display: block;
-    margin: 10px auto;
-    width: 70px;
-    height: 70px;
-    background-image: url("./images/file-icons.png");
-    background-image: url("./images/file-icons.gif") \9;
-    background-position: -140px center;
-    background-repeat: no-repeat;
-}
-i.file-preview.file-type-dir{
-    background-position: 0 center;
-}
-i.file-preview.file-type-file{
-    background-position: -140px center;
-}
-i.file-preview.file-type-filelist{
-    background-position: -210px center;
-}
-i.file-preview.file-type-zip,
-i.file-preview.file-type-rar,
-i.file-preview.file-type-7z,
-i.file-preview.file-type-tar,
-i.file-preview.file-type-gz,
-i.file-preview.file-type-bz2{
-    background-position: -280px center;
-}
-i.file-preview.file-type-xls,
-i.file-preview.file-type-xlsx{
-    background-position: -350px center;
-}
-i.file-preview.file-type-doc,
-i.file-preview.file-type-docx{
-    background-position: -420px center;
-}
-i.file-preview.file-type-ppt,
-i.file-preview.file-type-pptx{
-    background-position: -490px center;
-}
-i.file-preview.file-type-vsd{
-    background-position: -560px center;
-}
-i.file-preview.file-type-pdf{
-    background-position: -630px center;
-}
-i.file-preview.file-type-txt,
-i.file-preview.file-type-md,
-i.file-preview.file-type-json,
-i.file-preview.file-type-htm,
-i.file-preview.file-type-xml,
-i.file-preview.file-type-html,
-i.file-preview.file-type-js,
-i.file-preview.file-type-css,
-i.file-preview.file-type-php,
-i.file-preview.file-type-jsp,
-i.file-preview.file-type-asp{
-    background-position: -700px center;
-}
-i.file-preview.file-type-apk{
-    background-position: -770px center;
-}
-i.file-preview.file-type-exe{
-    background-position: -840px center;
-}
-i.file-preview.file-type-ipa{
-    background-position: -910px center;
-}
-i.file-preview.file-type-mp4,
-i.file-preview.file-type-swf,
-i.file-preview.file-type-mkv,
-i.file-preview.file-type-avi,
-i.file-preview.file-type-flv,
-i.file-preview.file-type-mov,
-i.file-preview.file-type-mpg,
-i.file-preview.file-type-mpeg,
-i.file-preview.file-type-ogv,
-i.file-preview.file-type-webm,
-i.file-preview.file-type-rm,
-i.file-preview.file-type-rmvb{
-    background-position: -980px center;
-}
-i.file-preview.file-type-ogg,
-i.file-preview.file-type-wav,
-i.file-preview.file-type-wmv,
-i.file-preview.file-type-mid,
-i.file-preview.file-type-mp3{
-    background-position: -1050px center;
-}
-i.file-preview.file-type-jpg,
-i.file-preview.file-type-jpeg,
-i.file-preview.file-type-gif,
-i.file-preview.file-type-bmp,
-i.file-preview.file-type-png,
-i.file-preview.file-type-psd{
-    background-position: -140px center;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/video/video.html b/server/public/ueditor/dialogs/video/video.html
deleted file mode 100644
index 14f10f4..0000000
--- a/server/public/ueditor/dialogs/video/video.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <link rel="stylesheet" type="text/css" href="video.css" />
-</head>
-<body>
-<div class="wrapper">
-    <div id="videoTab">
-        <div id="tabHeads" class="tabhead">
-            <span tabSrc="video" class="focus" data-content-id="video"><var id="lang_tab_insertV"></var></span>
-            <span tabSrc="upload" data-content-id="upload"><var id="lang_tab_uploadV"></var></span>
-        </div>
-        <div id="tabBodys" class="tabbody">
-            <div id="video" class="panel focus">
-               <table><tr><td><label for="videoUrl" class="url"><var id="lang_video_url"></var></label></td><td><input id="videoUrl" type="text"></td></tr></table>
-               <div id="preview"></div>
-               <div id="videoInfo">
-                   <fieldset>
-                       <legend><var id="lang_video_size"></var></legend>
-                       <table>
-                           <tr><td><label for="videoWidth"><var id="lang_videoW"></var></label></td><td><input class="txt" id="videoWidth" type="text"/></td></tr>
-                           <tr><td><label for="videoHeight"><var id="lang_videoH"></var></label></td><td><input class="txt" id="videoHeight" type="text"/></td></tr>
-                       </table>
-                   </fieldset>
-                   <fieldset>
-                      <legend><var id="lang_alignment"></var></legend>
-                      <div id="videoFloat"></div>
-                  </fieldset>
-               </div>
-            </div>
-            <div id="upload" class="panel">
-                <div id="upload_left">
-                    <div id="queueList" class="queueList">
-                        <div class="statusBar element-invisible">
-                            <div class="progress">
-                                <span class="text">0%</span>
-                                <span class="percentage"></span>
-                            </div><div class="info"></div>
-                            <div class="btns">
-                                <div id="filePickerBtn"></div>
-                                <div class="uploadBtn"><var id="lang_start_upload"></var></div>
-                            </div>
-                        </div>
-                        <div id="dndArea" class="placeholder">
-                            <div class="filePickerContainer">
-                                <div id="filePickerReady"></div>
-                            </div>
-                        </div>
-                        <ul class="filelist element-invisible">
-                            <li id="filePickerBlock" class="filePickerBlock"></li>
-                        </ul>
-                    </div>
-                </div>
-                <div id="uploadVideoInfo">
-                    <fieldset>
-                        <legend><var id="lang_upload_size"></var></legend>
-                        <table>
-                            <tr><td><label><var id="lang_upload_width"></var></label></td><td><input class="txt" id="upload_width" type="text"/></td></tr>
-                            <tr><td><label><var id="lang_upload_height"></var></label></td><td><input class="txt" id="upload_height" type="text"/></td></tr>
-                        </table>
-                    </fieldset>
-                    <fieldset>
-                        <legend><var id="lang_upload_alignment"></var></legend>
-                        <div id="upload_alignment"></div>
-                    </fieldset>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-<!-- jquery -->
-<script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
-
-<!-- webuploader -->
-<script type="text/javascript" src="../../third-party/webuploader/webuploader.min.js"></script>
-<link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
-
-<!-- video -->
-<script type="text/javascript" src="video.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/video/video.js b/server/public/ueditor/dialogs/video/video.js
deleted file mode 100644
index 7b9378b..0000000
--- a/server/public/ueditor/dialogs/video/video.js
+++ /dev/null
@@ -1,797 +0,0 @@
-/**
- * Created by JetBrains PhpStorm.
- * User: taoqili
- * Date: 12-2-20
- * Time: 涓婂崍11:19
- * To change this template use File | Settings | File Templates.
- */
-
-(function(){
-
-    var video = {},
-        uploadVideoList = [],
-        isModifyUploadVideo = false,
-        uploadFile;
-
-    window.onload = function(){
-        $focus($G("videoUrl"));
-        initTabs();
-        initVideo();
-        initUpload();
-    };
-
-    /* 鍒濆鍖杢ab鏍囩 */
-    function initTabs(){
-        var tabs = $G('tabHeads').children;
-        for (var i = 0; i < tabs.length; i++) {
-            domUtils.on(tabs[i], "click", function (e) {
-                var j, bodyId, target = e.target || e.srcElement;
-                for (j = 0; j < tabs.length; j++) {
-                    bodyId = tabs[j].getAttribute('data-content-id');
-                    if(tabs[j] == target){
-                        domUtils.addClass(tabs[j], 'focus');
-                        domUtils.addClass($G(bodyId), 'focus');
-                    }else {
-                        domUtils.removeClasses(tabs[j], 'focus');
-                        domUtils.removeClasses($G(bodyId), 'focus');
-                    }
-                }
-            });
-        }
-    }
-
-    function initVideo(){
-        createAlignButton( ["videoFloat", "upload_alignment"] );
-        addUrlChangeListener($G("videoUrl"));
-        addOkListener();
-
-        //缂栬緫瑙嗛鏃跺垵濮嬪寲鐩稿叧淇℃伅
-        (function(){
-            var img = editor.selection.getRange().getClosedNode(),url;
-            if(img && img.className){
-                var hasFakedClass = (img.className == "edui-faked-video"),
-                    hasUploadClass = img.className.indexOf("edui-upload-video")!=-1;
-                if(hasFakedClass || hasUploadClass) {
-                    $G("videoUrl").value = url = img.getAttribute("_url");
-                    $G("videoWidth").value = img.width;
-                    $G("videoHeight").value = img.height;
-                    var align = domUtils.getComputedStyle(img,"float"),
-                        parentAlign = domUtils.getComputedStyle(img.parentNode,"text-align");
-                    updateAlignButton(parentAlign==="center"?"center":align);
-                }
-                if(hasUploadClass) {
-                    isModifyUploadVideo = true;
-                }
-            }
-            createPreviewVideo(url);
-        })();
-    }
-
-    /**
-     * 鐩戝惉纭鍜屽彇娑堜袱涓寜閽簨浠讹紝鐢ㄦ埛鎵ц鎻掑叆鎴栬�呮竻绌烘鍦ㄦ挱鏀剧殑瑙嗛瀹炰緥鎿嶄綔
-     */
-    function addOkListener(){
-        dialog.onok = function(){
-            $G("preview").innerHTML = "";
-            var currentTab =  findFocus("tabHeads","tabSrc");
-            switch(currentTab){
-                case "video":
-                    return insertSingle();
-                    break;
-                case "videoSearch":
-                    return insertSearch("searchList");
-                    break;
-                case "upload":
-                    return insertUpload();
-                    break;
-            }
-        };
-        dialog.oncancel = function(){
-            $G("preview").innerHTML = "";
-        };
-    }
-
-    /**
-     * 渚濇嵁浼犲叆鐨刟lign鍊兼洿鏂版寜閽俊鎭�
-     * @param align
-     */
-    function updateAlignButton( align ) {
-        var aligns = $G( "videoFloat" ).children;
-        for ( var i = 0, ci; ci = aligns[i++]; ) {
-            if ( ci.getAttribute( "name" ) == align ) {
-                if ( ci.className !="focus" ) {
-                    ci.className = "focus";
-                }
-            } else {
-                if ( ci.className =="focus" ) {
-                    ci.className = "";
-                }
-            }
-        }
-    }
-
-    /**
-     * 灏嗗崟涓棰戜俊鎭彃鍏ョ紪杈戝櫒涓�
-     */
-    function insertSingle(){
-        var width = $G("videoWidth"),
-            height = $G("videoHeight"),
-            url=$G('videoUrl').value,
-            align = findFocus("videoFloat","name");
-        if(!url) return false;
-        if ( !checkNum( [width, height] ) ) return false;
-        editor.execCommand('insertvideo', {
-            url: convert_url(url),
-            width: width.value,
-            height: height.value,
-            align: align
-        }, isModifyUploadVideo ? 'upload':null);
-    }
-
-    /**
-     * 灏嗗厓绱爄d涓嬬殑鎵�鏈変唬琛ㄨ棰戠殑鍥剧墖鎻掑叆缂栬緫鍣ㄤ腑
-     * @param id
-     */
-    function insertSearch(id){
-        var imgs = domUtils.getElementsByTagName($G(id),"img"),
-            videoObjs=[];
-        for(var i=0,img; img=imgs[i++];){
-            if(img.getAttribute("selected")){
-                videoObjs.push({
-                    url:img.getAttribute("ue_video_url"),
-                    width:420,
-                    height:280,
-                    align:"none"
-                });
-            }
-        }
-        editor.execCommand('insertvideo',videoObjs);
-    }
-
-    /**
-     * 鎵惧埌id涓嬪叿鏈塮ocus绫荤殑鑺傜偣骞惰繑鍥炶鑺傜偣涓嬬殑鏌愪釜灞炴��
-     * @param id
-     * @param returnProperty
-     */
-    function findFocus( id, returnProperty ) {
-        var tabs = $G( id ).children,
-                property;
-        for ( var i = 0, ci; ci = tabs[i++]; ) {
-            if ( ci.className=="focus" ) {
-                property = ci.getAttribute( returnProperty );
-                break;
-            }
-        }
-        return property;
-    }
-    function convert_url(url){
-        if ( !url ) return '';
-        url = utils.trim(url)
-            .replace(/v\.youku\.com\/v_show\/id_([\w\-=]+)\.html/i, 'player.youku.com/player.php/sid/$1/v.swf')
-            .replace(/(www\.)?youtube\.com\/watch\?v=([\w\-]+)/i, "www.youtube.com/v/$2")
-            .replace(/youtu.be\/(\w+)$/i, "www.youtube.com/v/$1")
-            .replace(/v\.ku6\.com\/.+\/([\w\.]+)\.html.*$/i, "player.ku6.com/refer/$1/v.swf")
-            .replace(/www\.56\.com\/u\d+\/v_([\w\-]+)\.html/i, "player.56.com/v_$1.swf")
-            .replace(/www.56.com\/w\d+\/play_album\-aid\-\d+_vid\-([^.]+)\.html/i, "player.56.com/v_$1.swf")
-            .replace(/v\.pps\.tv\/play_([\w]+)\.html.*$/i, "player.pps.tv/player/sid/$1/v.swf")
-            .replace(/www\.letv\.com\/ptv\/vplay\/([\d]+)\.html.*$/i, "i7.imgs.letv.com/player/swfPlayer.swf?id=$1&autoplay=0")
-            .replace(/www\.tudou\.com\/programs\/view\/([\w\-]+)\/?/i, "www.tudou.com/v/$1")
-            .replace(/v\.qq\.com\/cover\/[\w]+\/[\w]+\/([\w]+)\.html/i, "static.video.qq.com/TPout.swf?vid=$1")
-            .replace(/v\.qq\.com\/.+[\?\&]vid=([^&]+).*$/i, "static.video.qq.com/TPout.swf?vid=$1")
-            .replace(/my\.tv\.sohu\.com\/[\w]+\/[\d]+\/([\d]+)\.shtml.*$/i, "share.vrs.sohu.com/my/v.swf&id=$1");
-
-        return url;
-    }
-
-    /**
-      * 妫�娴嬩紶鍏ョ殑鎵�鏈塱nput妗嗕腑杈撳叆鐨勯暱瀹芥槸鍚︽槸姝f暟
-      * @param nodes input妗嗛泦鍚堬紝
-      */
-     function checkNum( nodes ) {
-         for ( var i = 0, ci; ci = nodes[i++]; ) {
-             var value = ci.value;
-             if ( !isNumber( value ) && value) {
-                 alert( lang.numError );
-                 ci.value = "";
-                 ci.focus();
-                 return false;
-             }
-         }
-         return true;
-     }
-
-    /**
-     * 鏁板瓧鍒ゆ柇
-     * @param value
-     */
-    function isNumber( value ) {
-        return /(0|^[1-9]\d*$)/.test( value );
-    }
-
-    /**
-      * 鍒涘缓鍥剧墖娴姩閫夋嫨鎸夐挳
-      * @param ids
-      */
-     function createAlignButton( ids ) {
-         for ( var i = 0, ci; ci = ids[i++]; ) {
-             var floatContainer = $G( ci ),
-                     nameMaps = {"none":lang['default'], "left":lang.floatLeft, "right":lang.floatRight, "center":lang.block};
-             for ( var j in nameMaps ) {
-                 var div = document.createElement( "div" );
-                 div.setAttribute( "name", j );
-                 if ( j == "none" ) div.className="focus";
-                 div.style.cssText = "background:url(images/" + j + "_focus.jpg);";
-                 div.setAttribute( "title", nameMaps[j] );
-                 floatContainer.appendChild( div );
-             }
-             switchSelect( ci );
-         }
-     }
-
-    /**
-     * 閫夋嫨鍒囨崲
-     * @param selectParentId
-     */
-    function switchSelect( selectParentId ) {
-        var selects = $G( selectParentId ).children;
-        for ( var i = 0, ci; ci = selects[i++]; ) {
-            domUtils.on( ci, "click", function () {
-                for ( var j = 0, cj; cj = selects[j++]; ) {
-                    cj.className = "";
-                    cj.removeAttribute && cj.removeAttribute( "class" );
-                }
-                this.className = "focus";
-            } )
-        }
-    }
-
-    /**
-     * 鐩戝惉url鏀瑰彉浜嬩欢
-     * @param url
-     */
-    function addUrlChangeListener(url){
-        if (browser.ie) {
-            url.onpropertychange = function () {
-                createPreviewVideo( this.value );
-            }
-        } else {
-            url.addEventListener( "input", function () {
-                createPreviewVideo( this.value );
-            }, false );
-        }
-    }
-
-    /**
-     * 鏍规嵁url鐢熸垚瑙嗛棰勮
-     * @param url
-     */
-    function createPreviewVideo(url){
-        if ( !url )return;
-
-        var conUrl = convert_url(url);
-
-        conUrl = utils.unhtmlForUrl(conUrl);
-
-        $G("preview").innerHTML = '<div class="previewMsg"><span>'+lang.urlError+'</span></div>'+
-        '<embed class="previewVideo" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
-            ' src="' + conUrl + '"' +
-            ' width="' + 420  + '"' +
-            ' height="' + 280  + '"' +
-            ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >' +
-        '</embed>';
-    }
-
-
-    /* 鎻掑叆涓婁紶瑙嗛 */
-    function insertUpload(){
-        var videoObjs=[],
-            uploadDir = editor.getOpt('videoUrlPrefix'),
-            width = parseInt($G('upload_width').value, 10) || 420,
-            height = parseInt($G('upload_height').value, 10) || 280,
-            align = findFocus("upload_alignment","name") || 'none';
-        for(var key in uploadVideoList) {
-            var file = uploadVideoList[key];
-            videoObjs.push({
-                url: uploadDir + file.url,
-                width:width,
-                height:height,
-                align:align
-            });
-        }
-
-        var count = uploadFile.getQueueCount();
-        if (count) {
-            $('.info', '#queueList').html('<span style="color:red;">' + '杩樻湁2涓湭涓婁紶鏂囦欢'.replace(/[\d]/, count) + '</span>');
-            return false;
-        } else {
-            editor.execCommand('insertvideo', videoObjs, 'upload');
-        }
-    }
-
-    /*鍒濆鍖栦笂浼犳爣绛�*/
-    function initUpload(){
-        uploadFile = new UploadFile('queueList');
-    }
-
-
-    /* 涓婁紶闄勪欢 */
-    function UploadFile(target) {
-        this.$wrap = target.constructor == String ? $('#' + target) : $(target);
-        this.init();
-    }
-    UploadFile.prototype = {
-        init: function () {
-            this.fileList = [];
-            this.initContainer();
-            this.initUploader();
-        },
-        initContainer: function () {
-            this.$queue = this.$wrap.find('.filelist');
-        },
-        /* 鍒濆鍖栧鍣� */
-        initUploader: function () {
-            var _this = this,
-                $ = jQuery,    // just in case. Make sure it's not an other libaray.
-                $wrap = _this.$wrap,
-            // 鍥剧墖瀹瑰櫒
-                $queue = $wrap.find('.filelist'),
-            // 鐘舵�佹爮锛屽寘鎷繘搴﹀拰鎺у埗鎸夐挳
-                $statusBar = $wrap.find('.statusBar'),
-            // 鏂囦欢鎬讳綋閫夋嫨淇℃伅銆�
-                $info = $statusBar.find('.info'),
-            // 涓婁紶鎸夐挳
-                $upload = $wrap.find('.uploadBtn'),
-            // 涓婁紶鎸夐挳
-                $filePickerBtn = $wrap.find('.filePickerBtn'),
-            // 涓婁紶鎸夐挳
-                $filePickerBlock = $wrap.find('.filePickerBlock'),
-            // 娌¢�夋嫨鏂囦欢涔嬪墠鐨勫唴瀹广��
-                $placeHolder = $wrap.find('.placeholder'),
-            // 鎬讳綋杩涘害鏉�
-                $progress = $statusBar.find('.progress').hide(),
-            // 娣诲姞鐨勬枃浠舵暟閲�
-                fileCount = 0,
-            // 娣诲姞鐨勬枃浠舵�诲ぇ灏�
-                fileSize = 0,
-            // 浼樺寲retina, 鍦╮etina涓嬭繖涓�兼槸2
-                ratio = window.devicePixelRatio || 1,
-            // 缂╃暐鍥惧ぇ灏�
-                thumbnailWidth = 113 * ratio,
-                thumbnailHeight = 113 * ratio,
-            // 鍙兘鏈塸edding, ready, uploading, confirm, done.
-                state = '',
-            // 鎵�鏈夋枃浠剁殑杩涘害淇℃伅锛宬ey涓篺ile id
-                percentages = {},
-                supportTransition = (function () {
-                    var s = document.createElement('p').style,
-                        r = 'transition' in s ||
-                            'WebkitTransition' in s ||
-                            'MozTransition' in s ||
-                            'msTransition' in s ||
-                            'OTransition' in s;
-                    s = null;
-                    return r;
-                })(),
-            // WebUploader瀹炰緥
-                uploader,
-                actionUrl = editor.getActionUrl(editor.getOpt('videoActionName')),
-                fileMaxSize = editor.getOpt('videoMaxSize'),
-                acceptExtensions = (editor.getOpt('videoAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, '');;
-
-            if (!WebUploader.Uploader.support()) {
-                $('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
-                return;
-            } else if (!editor.getOpt('videoActionName')) {
-                $('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
-                return;
-            }
-
-            uploader = _this.uploader = WebUploader.create({
-                pick: {
-                    id: '#filePickerReady',
-                    label: lang.uploadSelectFile
-                },
-                swf: '../../third-party/webuploader/Uploader.swf',
-                server: actionUrl,
-                fileVal: editor.getOpt('videoFieldName'),
-                duplicate: true,
-                fileSingleSizeLimit: fileMaxSize,
-                compress: false
-            });
-            uploader.addButton({
-                id: '#filePickerBlock'
-            });
-            uploader.addButton({
-                id: '#filePickerBtn',
-                label: lang.uploadAddFile
-            });
-
-            setState('pedding');
-
-            // 褰撴湁鏂囦欢娣诲姞杩涙潵鏃舵墽琛岋紝璐熻矗view鐨勫垱寤�
-            function addFile(file) {
-                var $li = $('<li id="' + file.id + '">' +
-                        '<p class="title">' + file.name + '</p>' +
-                        '<p class="imgWrap"></p>' +
-                        '<p class="progress"><span></span></p>' +
-                        '</li>'),
-
-                    $btns = $('<div class="file-panel">' +
-                        '<span class="cancel">' + lang.uploadDelete + '</span>' +
-                        '<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
-                        '<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
-                    $prgress = $li.find('p.progress span'),
-                    $wrap = $li.find('p.imgWrap'),
-                    $info = $('<p class="error"></p>').hide().appendTo($li),
-
-                    showError = function (code) {
-                        switch (code) {
-                            case 'exceed_size':
-                                text = lang.errorExceedSize;
-                                break;
-                            case 'interrupt':
-                                text = lang.errorInterrupt;
-                                break;
-                            case 'http':
-                                text = lang.errorHttp;
-                                break;
-                            case 'not_allow_type':
-                                text = lang.errorFileType;
-                                break;
-                            default:
-                                text = lang.errorUploadRetry;
-                                break;
-                        }
-                        $info.text(text).show();
-                    };
-
-                if (file.getStatus() === 'invalid') {
-                    showError(file.statusText);
-                } else {
-                    $wrap.text(lang.uploadPreview);
-                    if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) {
-                        $wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
-                            '<span class="file-title">' + file.name + '</span>');
-                    } else {
-                        if (browser.ie && browser.version <= 7) {
-                            $wrap.text(lang.uploadNoPreview);
-                        } else {
-                            uploader.makeThumb(file, function (error, src) {
-                                if (error || !src || (/^data:/.test(src) && browser.ie && browser.version <= 7)) {
-                                    $wrap.text(lang.uploadNoPreview);
-                                } else {
-                                    var $img = $('<img src="' + src + '">');
-                                    $wrap.empty().append($img);
-                                    $img.on('error', function () {
-                                        $wrap.text(lang.uploadNoPreview);
-                                    });
-                                }
-                            }, thumbnailWidth, thumbnailHeight);
-                        }
-                    }
-                    percentages[ file.id ] = [ file.size, 0 ];
-                    file.rotation = 0;
-
-                    /* 妫�鏌ユ枃浠舵牸寮� */
-                    if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
-                        showError('not_allow_type');
-                        uploader.removeFile(file);
-                    }
-                }
-
-                file.on('statuschange', function (cur, prev) {
-                    if (prev === 'progress') {
-                        $prgress.hide().width(0);
-                    } else if (prev === 'queued') {
-                        $li.off('mouseenter mouseleave');
-                        $btns.remove();
-                    }
-                    // 鎴愬姛
-                    if (cur === 'error' || cur === 'invalid') {
-                        showError(file.statusText);
-                        percentages[ file.id ][ 1 ] = 1;
-                    } else if (cur === 'interrupt') {
-                        showError('interrupt');
-                    } else if (cur === 'queued') {
-                        percentages[ file.id ][ 1 ] = 0;
-                    } else if (cur === 'progress') {
-                        $info.hide();
-                        $prgress.css('display', 'block');
-                    } else if (cur === 'complete') {
-                    }
-
-                    $li.removeClass('state-' + prev).addClass('state-' + cur);
-                });
-
-                $li.on('mouseenter', function () {
-                    $btns.stop().animate({height: 30});
-                });
-                $li.on('mouseleave', function () {
-                    $btns.stop().animate({height: 0});
-                });
-
-                $btns.on('click', 'span', function () {
-                    var index = $(this).index(),
-                        deg;
-
-                    switch (index) {
-                        case 0:
-                            uploader.removeFile(file);
-                            return;
-                        case 1:
-                            file.rotation += 90;
-                            break;
-                        case 2:
-                            file.rotation -= 90;
-                            break;
-                    }
-
-                    if (supportTransition) {
-                        deg = 'rotate(' + file.rotation + 'deg)';
-                        $wrap.css({
-                            '-webkit-transform': deg,
-                            '-mos-transform': deg,
-                            '-o-transform': deg,
-                            'transform': deg
-                        });
-                    } else {
-                        $wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
-                    }
-
-                });
-
-                $li.insertBefore($filePickerBlock);
-            }
-
-            // 璐熻矗view鐨勯攢姣�
-            function removeFile(file) {
-                var $li = $('#' + file.id);
-                delete percentages[ file.id ];
-                updateTotalProgress();
-                $li.off().find('.file-panel').off().end().remove();
-            }
-
-            function updateTotalProgress() {
-                var loaded = 0,
-                    total = 0,
-                    spans = $progress.children(),
-                    percent;
-
-                $.each(percentages, function (k, v) {
-                    total += v[ 0 ];
-                    loaded += v[ 0 ] * v[ 1 ];
-                });
-
-                percent = total ? loaded / total : 0;
-
-                spans.eq(0).text(Math.round(percent * 100) + '%');
-                spans.eq(1).css('width', Math.round(percent * 100) + '%');
-                updateStatus();
-            }
-
-            function setState(val, files) {
-
-                if (val != state) {
-
-                    var stats = uploader.getStats();
-
-                    $upload.removeClass('state-' + state);
-                    $upload.addClass('state-' + val);
-
-                    switch (val) {
-
-                        /* 鏈�夋嫨鏂囦欢 */
-                        case 'pedding':
-                            $queue.addClass('element-invisible');
-                            $statusBar.addClass('element-invisible');
-                            $placeHolder.removeClass('element-invisible');
-                            $progress.hide(); $info.hide();
-                            uploader.refresh();
-                            break;
-
-                        /* 鍙互寮�濮嬩笂浼� */
-                        case 'ready':
-                            $placeHolder.addClass('element-invisible');
-                            $queue.removeClass('element-invisible');
-                            $statusBar.removeClass('element-invisible');
-                            $progress.hide(); $info.show();
-                            $upload.text(lang.uploadStart);
-                            uploader.refresh();
-                            break;
-
-                        /* 涓婁紶涓� */
-                        case 'uploading':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadPause);
-                            break;
-
-                        /* 鏆傚仠涓婁紶 */
-                        case 'paused':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadContinue);
-                            break;
-
-                        case 'confirm':
-                            $progress.show(); $info.hide();
-                            $upload.text(lang.uploadStart);
-
-                            stats = uploader.getStats();
-                            if (stats.successNum && !stats.uploadFailNum) {
-                                setState('finish');
-                                return;
-                            }
-                            break;
-
-                        case 'finish':
-                            $progress.hide(); $info.show();
-                            if (stats.uploadFailNum) {
-                                $upload.text(lang.uploadRetry);
-                            } else {
-                                $upload.text(lang.uploadStart);
-                            }
-                            break;
-                    }
-
-                    state = val;
-                    updateStatus();
-
-                }
-
-                if (!_this.getQueueCount()) {
-                    $upload.addClass('disabled')
-                } else {
-                    $upload.removeClass('disabled')
-                }
-
-            }
-
-            function updateStatus() {
-                var text = '', stats;
-
-                if (state === 'ready') {
-                    text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
-                } else if (state === 'confirm') {
-                    stats = uploader.getStats();
-                    if (stats.uploadFailNum) {
-                        text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
-                    }
-                } else {
-                    stats = uploader.getStats();
-                    text = lang.updateStatusFinish.replace('_', fileCount).
-                        replace('_KB', WebUploader.formatSize(fileSize)).
-                        replace('_', stats.successNum);
-
-                    if (stats.uploadFailNum) {
-                        text += lang.updateStatusError.replace('_', stats.uploadFailNum);
-                    }
-                }
-
-                $info.html(text);
-            }
-
-            uploader.on('fileQueued', function (file) {
-                fileCount++;
-                fileSize += file.size;
-
-                if (fileCount === 1) {
-                    $placeHolder.addClass('element-invisible');
-                    $statusBar.show();
-                }
-
-                addFile(file);
-            });
-
-            uploader.on('fileDequeued', function (file) {
-                fileCount--;
-                fileSize -= file.size;
-
-                removeFile(file);
-                updateTotalProgress();
-            });
-
-            uploader.on('filesQueued', function (file) {
-                if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
-                    setState('ready');
-                }
-                updateTotalProgress();
-            });
-
-            uploader.on('all', function (type, files) {
-                switch (type) {
-                    case 'uploadFinished':
-                        setState('confirm', files);
-                        break;
-                    case 'startUpload':
-                        /* 娣诲姞棰濆鐨凣ET鍙傛暟 */
-                        var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-                            url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params);
-                        uploader.option('server', url);
-                        setState('uploading', files);
-                        break;
-                    case 'stopUpload':
-                        setState('paused', files);
-                        break;
-                }
-            });
-
-            uploader.on('uploadBeforeSend', function (file, data, header) {
-                //杩欓噷鍙互閫氳繃data瀵硅薄娣诲姞POST鍙傛暟
-                header['X_Requested_With'] = 'XMLHttpRequest';
-                // HaoChuan9421
-                if(editor.options.headers && Object.prototype.toString.apply(editor.options.headers) === "[object Object]"){
-                    for(var key in editor.options.headers){
-                        header[key] = editor.options.headers[key]
-                    }
-                }
-            });
-
-            uploader.on('uploadProgress', function (file, percentage) {
-                var $li = $('#' + file.id),
-                    $percent = $li.find('.progress span');
-
-                $percent.css('width', percentage * 100 + '%');
-                percentages[ file.id ][ 1 ] = percentage;
-                updateTotalProgress();
-            });
-
-            uploader.on('uploadSuccess', function (file, ret) {
-                var $file = $('#' + file.id);
-                try {
-                    var responseText = (ret._raw || ret),
-                        json = utils.str2json(responseText);
-                    if (json.state == 'SUCCESS') {
-                        uploadVideoList.push({
-                            'url': json.url,
-                            'type': json.type,
-                            'original':json.original
-                        });
-                        $file.append('<span class="success"></span>');
-                    } else {
-                        $file.find('.error').text(json.state).show();
-                    }
-                } catch (e) {
-                    $file.find('.error').text(lang.errorServerUpload).show();
-                }
-            });
-
-            uploader.on('uploadError', function (file, code) {
-            });
-            uploader.on('error', function (code, file) {
-                if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
-                    addFile(file);
-                }
-            });
-            uploader.on('uploadComplete', function (file, ret) {
-            });
-
-            $upload.on('click', function () {
-                if ($(this).hasClass('disabled')) {
-                    return false;
-                }
-
-                if (state === 'ready') {
-                    uploader.upload();
-                } else if (state === 'paused') {
-                    uploader.upload();
-                } else if (state === 'uploading') {
-                    uploader.stop();
-                }
-            });
-
-            $upload.addClass('state-' + state);
-            updateTotalProgress();
-        },
-        getQueueCount: function () {
-            var file, i, status, readyFile = 0, files = this.uploader.getFiles();
-            for (i = 0; file = files[i++]; ) {
-                status = file.getStatus();
-                if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
-            }
-            return readyFile;
-        },
-        refresh: function(){
-            this.uploader.refresh();
-        }
-    };
-
-})();
diff --git a/server/public/ueditor/dialogs/webapp/webapp.html b/server/public/ueditor/dialogs/webapp/webapp.html
deleted file mode 100644
index 73f8dc2..0000000
--- a/server/public/ueditor/dialogs/webapp/webapp.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE>
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        .wrapper{width: 540px; margin: 10px auto;}
-        #appShow {border: 1px solid #ddd;}
-        .errorMsg{font-size: 13px;margin: 10px;color: #dd0000}
-    </style>
-</head>
-<body>
-    <div class="wrapper">
-        <div id="appShow"></div>
-    </div>
-    <script type="text/javascript">
-        //姝ゅ閰嶇疆鎮ㄥ湪鐧惧害涓婄敵璇峰埌鐨刟ppkey銆�
-        var apikey = editor.options.webAppKey;
-        if ( apikey && apikey.length == 24 ) {
-            var searchConfig = {
-                container:'appShow', //瀹瑰櫒ID
-                tips:"", //璇ュ�肩敤浜庤嚜鍔ㄦ竻绌�
-                search:1, //鏄惁鏄剧ず鎼滅储妗�
-                ps:12, //姣忛〉鏄剧ず鐨勬潯鏁�
-                suggest:1, //鏄惁寮�鍚悳绱㈣嚜鍔ㄥ畬鎴�
-                limit:0, //鎼滅储缁撴灉鏄剧ず鏉℃暟锛�0琛ㄧず鏃犻檺鍒�
-                searchNow:0, //鏄惁鍦ㄥ垵濮嬪寲瀹屾垚鏃剁珛鍗虫悳绱�
-                apikey:apikey, //姣忎汉寰�
-                pager:1,
-                cid:7134562,
-                outputHTML:1
-            },baiduApp;
-
-            function clickCallback() {
-                baiduApp.addEventListener( 'getAppHTML', function ( e, data ) {
-                    var url = 'http://app.baidu.com/app/enter?appid='+data.data['app_id'] +'&tn=app_canvas&app_spce_id=1&apikey='+apikey+'&api_key=' + apikey;
-                    editor.execCommand( "webapp", {url:url,width:data.uniWidth,height:data.uniHeight+60,logo:data.data['app_logo'],title:data.data['app_name']});
-                    dialog.close();
-                } );
-            }
-
-            var script = document.createElement( "script" );
-            script.type = "text/javascript";
-            script.src = "http://app.baidu.com/appweb/api/search?auto=yes&container=container&apikey=" + apikey + "&instanceName=baiduApp&callback=clickCallback&config=searchConfig";
-            document.body.appendChild( script );
-        } else {
-            $G( "appShow" ).innerHTML = "<p class='errorMsg'>"+lang.tip1+"<a title='"+lang.anthorApi+"' href='http://app.baidu.com/static/cms/getapikey.html' target='_blank'>"+lang.applyFor+"</a></p><p class='errorMsg'>"+lang.tip2+"</p>" ;
-        }
-
-    </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/wordimage/fClipboard_ueditor.swf b/server/public/ueditor/dialogs/wordimage/fClipboard_ueditor.swf
deleted file mode 100644
index ac5d27f..0000000
--- a/server/public/ueditor/dialogs/wordimage/fClipboard_ueditor.swf
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/wordimage/imageUploader.swf b/server/public/ueditor/dialogs/wordimage/imageUploader.swf
deleted file mode 100644
index 2a554ca..0000000
--- a/server/public/ueditor/dialogs/wordimage/imageUploader.swf
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/dialogs/wordimage/tangram.js b/server/public/ueditor/dialogs/wordimage/tangram.js
deleted file mode 100644
index f449962..0000000
--- a/server/public/ueditor/dialogs/wordimage/tangram.js
+++ /dev/null
@@ -1,1495 +0,0 @@
-// Copyright (c) 2009, Baidu Inc. All rights reserved.
-// 
-// Licensed under the BSD License
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// 
-//      http:// tangram.baidu.com/license.html
-// 
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
- /**
- * @namespace T Tangram涓冨阀鏉�
- * @name T
- * @version 1.6.0
-*/
-
-/**
- * 澹版槑baidu鍖�
- * @author: allstar, erik, meizz, berg
- */
-var T,
-    baidu = T = baidu || {version: "1.5.0"};
-baidu.guid = "$BAIDU$";
-baidu.$$ = window[baidu.guid] = window[baidu.guid] || {global:{}};
-
-/**
- * 浣跨敤flash璧勬簮灏佽鐨勪竴浜涘姛鑳�
- * @namespace baidu.flash
- */
-baidu.flash = baidu.flash || {};
-
-/**
- * 鎿嶄綔dom鐨勬柟娉�
- * @namespace baidu.dom 
- */
-baidu.dom = baidu.dom || {};
-
-
-/**
- * 浠庢枃妗d腑鑾峰彇鎸囧畾鐨凞OM鍏冪礌
- * @name baidu.dom.g
- * @function
- * @grammar baidu.dom.g(id)
- * @param {string|HTMLElement} id 鍏冪礌鐨刬d鎴朌OM鍏冪礌.
- * @shortcut g,T.G
- * @meta standard
- * @see baidu.dom.q
- *
- * @return {HTMLElement|null} 鑾峰彇鐨勫厓绱狅紝鏌ユ壘涓嶅埌鏃惰繑鍥瀗ull,濡傛灉鍙傛暟涓嶅悎娉曪紝鐩存帴杩斿洖鍙傛暟.
- */
-baidu.dom.g = function(id) {
-    if (!id) return null;
-    if ('string' == typeof id || id instanceof String) {
-        return document.getElementById(id);
-    } else if (id.nodeName && (id.nodeType == 1 || id.nodeType == 9)) {
-        return id;
-    }
-    return null;
-};
-baidu.g = baidu.G = baidu.dom.g;
-
-
-/**
- * 鎿嶄綔鏁扮粍鐨勬柟娉�
- * @namespace baidu.array
- */
-
-baidu.array = baidu.array || {};
-
-
-/**
- * 閬嶅巻鏁扮粍涓墍鏈夊厓绱�
- * @name baidu.array.each
- * @function
- * @grammar baidu.array.each(source, iterator[, thisObject])
- * @param {Array} source 闇�瑕侀亶鍘嗙殑鏁扮粍
- * @param {Function} iterator 瀵规瘡涓暟缁勫厓绱犺繘琛岃皟鐢ㄧ殑鍑芥暟锛岃鍑芥暟鏈変袱涓弬鏁帮紝绗竴涓负鏁扮粍鍏冪礌锛岀浜屼釜涓烘暟缁勭储寮曞�硷紝function (item, index)銆�
- * @param {Object} [thisObject] 鍑芥暟璋冪敤鏃剁殑this鎸囬拡锛屽鏋滄病鏈夋鍙傛暟锛岄粯璁ゆ槸褰撳墠閬嶅巻鐨勬暟缁�
- * @remark
- * each鏂规硶涓嶆敮鎸佸Object鐨勯亶鍘�,瀵筄bject鐨勯亶鍘嗕娇鐢╞aidu.object.each 銆�
- * @shortcut each
- * @meta standard
- *             
- * @returns {Array} 閬嶅巻鐨勬暟缁�
- */
- 
-baidu.each = baidu.array.forEach = baidu.array.each = function (source, iterator, thisObject) {
-    var returnValue, item, i, len = source.length;
-    
-    if ('function' == typeof iterator) {
-        for (i = 0; i < len; i++) {
-            item = source[i];
-            returnValue = iterator.call(thisObject || source, item, i);
-    
-            if (returnValue === false) {
-                break;
-            }
-        }
-    }
-    return source;
-};
-
-/**
- * 瀵硅瑷�灞傞潰鐨勫皝瑁咃紝鍖呮嫭绫诲瀷鍒ゆ柇銆佹ā鍧楁墿灞曘�佺户鎵垮熀绫讳互鍙婂璞¤嚜瀹氫箟浜嬩欢鐨勬敮鎸併��
- * @namespace baidu.lang
- */
-baidu.lang = baidu.lang || {};
-
-
-/**
- * 鍒ゆ柇鐩爣鍙傛暟鏄惁涓篺unction鎴朏unction瀹炰緥
- * @name baidu.lang.isFunction
- * @function
- * @grammar baidu.lang.isFunction(source)
- * @param {Any} source 鐩爣鍙傛暟
- * @version 1.2
- * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate
- * @meta standard
- * @returns {boolean} 绫诲瀷鍒ゆ柇缁撴灉
- */
-baidu.lang.isFunction = function (source) {
-    return '[object Function]' == Object.prototype.toString.call(source);
-};
-
-/**
- * 鍒ゆ柇鐩爣鍙傛暟鏄惁string绫诲瀷鎴朣tring瀵硅薄
- * @name baidu.lang.isString
- * @function
- * @grammar baidu.lang.isString(source)
- * @param {Any} source 鐩爣鍙傛暟
- * @shortcut isString
- * @meta standard
- * @see baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isArray,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate
- *             
- * @returns {boolean} 绫诲瀷鍒ゆ柇缁撴灉
- */
-baidu.lang.isString = function (source) {
-    return '[object String]' == Object.prototype.toString.call(source);
-};
-baidu.isString = baidu.lang.isString;
-
-
-/**
- * 鍒ゆ柇娴忚鍣ㄧ被鍨嬪拰鐗规�х殑灞炴��
- * @namespace baidu.browser
- */
-baidu.browser = baidu.browser || {};
-
-
-/**
- * 鍒ゆ柇鏄惁涓簅pera娴忚鍣�
- * @property opera opera鐗堟湰鍙�
- * @grammar baidu.browser.opera
- * @meta standard
- * @see baidu.browser.ie,baidu.browser.firefox,baidu.browser.safari,baidu.browser.chrome
- * @returns {Number} opera鐗堟湰鍙�
- */
-
-/**
- * opera 浠�10寮�濮嬩笉鏄敤opera鍚庨潰鐨勫瓧绗︿覆杩涜鐗堟湰鐨勫垽鏂�
- * 鍦˙rowser identification鏈�鍚庢坊鍔燰ersion + 鏁板瓧杩涜鐗堟湰鏍囪瘑
- * opera鍚庨潰鐨勬暟瀛椾繚鎸佸湪9.80涓嶅彉
- */
-baidu.browser.opera = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i.test(navigator.userAgent) ?  + ( RegExp["\x246"] || RegExp["\x242"] ) : undefined;
-
-
-/**
- * 鍦ㄧ洰鏍囧厓绱犵殑鎸囧畾浣嶇疆鎻掑叆HTML浠g爜
- * @name baidu.dom.insertHTML
- * @function
- * @grammar baidu.dom.insertHTML(element, position, html)
- * @param {HTMLElement|string} element 鐩爣鍏冪礌鎴栫洰鏍囧厓绱犵殑id
- * @param {string} position 鎻掑叆html鐨勪綅缃俊鎭紝鍙栧�间负beforeBegin,afterBegin,beforeEnd,afterEnd
- * @param {string} html 瑕佹彃鍏ョ殑html
- * @remark
- * 
- * 瀵逛簬position鍙傛暟锛屽ぇ灏忓啓涓嶆晱鎰�<br>
- * 鍙傛暟鐨勬剰鎬濓細beforeBegin&lt;span&gt;afterBegin   this is span! beforeEnd&lt;/span&gt; afterEnd <br />
- * 姝ゅ锛屽鏋滀娇鐢ㄦ湰鍑芥暟鎻掑叆甯︽湁script鏍囩鐨凥TML瀛楃涓诧紝script鏍囩瀵瑰簲鐨勮剼鏈皢涓嶄細琚墽琛屻��
- * 
- * @shortcut insertHTML
- * @meta standard
- *             
- * @returns {HTMLElement} 鐩爣鍏冪礌
- */
-baidu.dom.insertHTML = function (element, position, html) {
-    element = baidu.dom.g(element);
-    var range,begin;
-    if (element.insertAdjacentHTML && !baidu.browser.opera) {
-        element.insertAdjacentHTML(position, html);
-    } else {
-        range = element.ownerDocument.createRange();
-        position = position.toUpperCase();
-        if (position == 'AFTERBEGIN' || position == 'BEFOREEND') {
-            range.selectNodeContents(element);
-            range.collapse(position == 'AFTERBEGIN');
-        } else {
-            begin = position == 'BEFOREBEGIN';
-            range[begin ? 'setStartBefore' : 'setEndAfter'](element);
-            range.collapse(begin);
-        }
-        range.insertNode(range.createContextualFragment(html));
-    }
-    return element;
-};
-
-baidu.insertHTML = baidu.dom.insertHTML;
-
-/**
- * 鎿嶄綔flash瀵硅薄鐨勬柟娉曪紝鍖呮嫭鍒涘缓flash瀵硅薄銆佽幏鍙杅lash瀵硅薄浠ュ強鍒ゆ柇flash鎻掍欢鐨勭増鏈彿
- * @namespace baidu.swf
- */
-baidu.swf = baidu.swf || {};
-
-
-/**
- * 娴忚鍣ㄦ敮鎸佺殑flash鎻掍欢鐗堟湰
- * @property version 娴忚鍣ㄦ敮鎸佺殑flash鎻掍欢鐗堟湰
- * @grammar baidu.swf.version
- * @return {String} 鐗堟湰鍙�
- * @meta standard
- */
-baidu.swf.version = (function () {
-    var n = navigator;
-    if (n.plugins && n.mimeTypes.length) {
-        var plugin = n.plugins["Shockwave Flash"];
-        if (plugin && plugin.description) {
-            return plugin.description
-                    .replace(/([a-zA-Z]|\s)+/, "")
-                    .replace(/(\s)+r/, ".") + ".0";
-        }
-    } else if (window.ActiveXObject && !window.opera) {
-        for (var i = 12; i >= 2; i--) {
-            try {
-                var c = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.' + i);
-                if (c) {
-                    var version = c.GetVariable("$version");
-                    return version.replace(/WIN/g,'').replace(/,/g,'.');
-                }
-            } catch(e) {}
-        }
-    }
-})();
-
-/**
- * 鎿嶄綔瀛楃涓茬殑鏂规硶
- * @namespace baidu.string
- */
-baidu.string = baidu.string || {};
-
-
-/**
- * 瀵圭洰鏍囧瓧绗︿覆杩涜html缂栫爜
- * @name baidu.string.encodeHTML
- * @function
- * @grammar baidu.string.encodeHTML(source)
- * @param {string} source 鐩爣瀛楃涓�
- * @remark
- * 缂栫爜瀛楃鏈�5涓細&<>"'
- * @shortcut encodeHTML
- * @meta standard
- * @see baidu.string.decodeHTML
- *             
- * @returns {string} html缂栫爜鍚庣殑瀛楃涓�
- */
-baidu.string.encodeHTML = function (source) {
-    return String(source)
-                .replace(/&/g,'&amp;')
-                .replace(/</g,'&lt;')
-                .replace(/>/g,'&gt;')
-                .replace(/"/g, "&quot;")
-                .replace(/'/g, "&#39;");
-};
-
-baidu.encodeHTML = baidu.string.encodeHTML;
-
-/**
- * 鍒涘缓flash瀵硅薄鐨刪tml瀛楃涓�
- * @name baidu.swf.createHTML
- * @function
- * @grammar baidu.swf.createHTML(options)
- * 
- * @param {Object} 	options 					鍒涘缓flash鐨勯�夐」鍙傛暟
- * @param {string} 	options.id 					瑕佸垱寤虹殑flash鐨勬爣璇�
- * @param {string} 	options.url 				flash鏂囦欢鐨剈rl
- * @param {String} 	options.errorMessage 		鏈畨瑁協lash player鎴杅lash player鐗堟湰鍙疯繃浣庢椂鐨勬彁绀�
- * @param {string} 	options.ver 				鏈�浣庨渶瑕佺殑flash player鐗堟湰鍙�
- * @param {string} 	options.width 				flash鐨勫搴�
- * @param {string} 	options.height 				flash鐨勯珮搴�
- * @param {string} 	options.align 				flash鐨勫榻愭柟寮忥紝鍏佽鍊硷細middle/left/right/top/bottom
- * @param {string} 	options.base 				璁剧疆鐢ㄤ簬瑙f瀽swf鏂囦欢涓殑鎵�鏈夌浉瀵硅矾寰勮鍙ョ殑鍩烘湰鐩綍鎴朥RL
- * @param {string} 	options.bgcolor 			swf鏂囦欢鐨勮儗鏅壊
- * @param {string} 	options.salign 				璁剧疆缂╂斁鐨剆wf鏂囦欢鍦ㄧ敱width鍜宧eight璁剧疆瀹氫箟鐨勫尯鍩熷唴鐨勪綅缃�傚厑璁稿�硷細l/r/t/b/tl/tr/bl/br
- * @param {boolean} options.menu 				鏄惁鏄剧ず鍙抽敭鑿滃崟锛屽厑璁稿�硷細true/false
- * @param {boolean} options.loop 				鎾斁鍒版渶鍚庝竴甯ф椂鏄惁閲嶆柊鎾斁锛屽厑璁稿�硷細 true/false
- * @param {boolean} options.play 				flash鏄惁鍦ㄦ祻瑙堝櫒鍔犺浇鏃跺氨寮�濮嬫挱鏀俱�傚厑璁稿�硷細true/false
- * @param {string} 	options.quality 			璁剧疆flash鎾斁鐨勭敾璐紝鍏佽鍊硷細low/medium/high/autolow/autohigh/best
- * @param {string} 	options.scale 				璁剧疆flash鍐呭濡備綍缂╂斁鏉ラ�傚簲璁剧疆鐨勫楂樸�傚厑璁稿�硷細showall/noborder/exactfit
- * @param {string} 	options.wmode 				璁剧疆flash鐨勬樉绀烘ā寮忋�傚厑璁稿�硷細window/opaque/transparent
- * @param {string} 	options.allowscriptaccess 	璁剧疆flash涓庨〉闈㈢殑閫氫俊鏉冮檺銆傚厑璁稿�硷細always/never/sameDomain
- * @param {string} 	options.allownetworking 	璁剧疆swf鏂囦欢涓厑璁镐娇鐢ㄧ殑缃戠粶API銆傚厑璁稿�硷細all/internal/none
- * @param {boolean} options.allowfullscreen 	鏄惁鍏佽flash鍏ㄥ睆銆傚厑璁稿�硷細true/false
- * @param {boolean} options.seamlesstabbing 	鍏佽璁剧疆鎵ц鏃犵紳璺虫牸锛屼粠鑰屼娇鐢ㄦ埛鑳借烦鍑篺lash搴旂敤绋嬪簭銆傝鍙傛暟鍙兘鍦ㄥ畨瑁匜lash7鍙婃洿楂樼増鏈殑Windows涓娇鐢ㄣ�傚厑璁稿�硷細true/false
- * @param {boolean} options.devicefont 			璁剧疆闈欐�佹枃鏈璞℃槸鍚︿互璁惧瀛椾綋鍛堢幇銆傚厑璁稿�硷細true/false
- * @param {boolean} options.swliveconnect 		绗竴娆″姞杞絝lash鏃舵祻瑙堝櫒鏄惁搴斿惎鍔↗ava銆傚厑璁稿�硷細true/false
- * @param {Object} 	options.vars 				瑕佷紶閫掔粰flash鐨勫弬鏁帮紝鏀寔JSON鎴杝tring绫诲瀷銆�
- * 
- * @see baidu.swf.create
- * @meta standard
- * @returns {string} flash瀵硅薄鐨刪tml瀛楃涓�
- */
-baidu.swf.createHTML = function (options) {
-    options = options || {};
-    var version = baidu.swf.version, 
-        needVersion = options['ver'] || '6.0.0', 
-        vUnit1, vUnit2, i, k, len, item, tmpOpt = {},
-        encodeHTML = baidu.string.encodeHTML;
-    for (k in options) {
-        tmpOpt[k] = options[k];
-    }
-    options = tmpOpt;
-    if (version) {
-        version = version.split('.');
-        needVersion = needVersion.split('.');
-        for (i = 0; i < 3; i++) {
-            vUnit1 = parseInt(version[i], 10);
-            vUnit2 = parseInt(needVersion[i], 10);
-            if (vUnit2 < vUnit1) {
-                break;
-            } else if (vUnit2 > vUnit1) {
-                return '';
-            }
-        }
-    } else {
-        return '';
-    }
-    
-    var vars = options['vars'],
-        objProperties = ['classid', 'codebase', 'id', 'width', 'height', 'align'];
-    options['align'] = options['align'] || 'middle';
-    options['classid'] = 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000';
-    options['codebase'] = 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0';
-    options['movie'] = options['url'] || '';
-    delete options['vars'];
-    delete options['url'];
-    if ('string' == typeof vars) {
-        options['flashvars'] = vars;
-    } else {
-        var fvars = [];
-        for (k in vars) {
-            item = vars[k];
-            fvars.push(k + "=" + encodeURIComponent(item));
-        }
-        options['flashvars'] = fvars.join('&');
-    }
-    var str = ['<object '];
-    for (i = 0, len = objProperties.length; i < len; i++) {
-        item = objProperties[i];
-        str.push(' ', item, '="', encodeHTML(options[item]), '"');
-    }
-    str.push('>');
-    var params = {
-        'wmode'             : 1,
-        'scale'             : 1,
-        'quality'           : 1,
-        'play'              : 1,
-        'loop'              : 1,
-        'menu'              : 1,
-        'salign'            : 1,
-        'bgcolor'           : 1,
-        'base'              : 1,
-        'allowscriptaccess' : 1,
-        'allownetworking'   : 1,
-        'allowfullscreen'   : 1,
-        'seamlesstabbing'   : 1,
-        'devicefont'        : 1,
-        'swliveconnect'     : 1,
-        'flashvars'         : 1,
-        'movie'             : 1
-    };
-    
-    for (k in options) {
-        item = options[k];
-        k = k.toLowerCase();
-        if (params[k] && (item || item === false || item === 0)) {
-            str.push('<param name="' + k + '" value="' + encodeHTML(item) + '" />');
-        }
-    }
-    options['src']  = options['movie'];
-    options['name'] = options['id'];
-    delete options['id'];
-    delete options['movie'];
-    delete options['classid'];
-    delete options['codebase'];
-    options['type'] = 'application/x-shockwave-flash';
-    options['pluginspage'] = 'http://www.macromedia.com/go/getflashplayer';
-    str.push('<embed');
-    var salign;
-    for (k in options) {
-        item = options[k];
-        if (item || item === false || item === 0) {
-            if ((new RegExp("^salign\x24", "i")).test(k)) {
-                salign = item;
-                continue;
-            }
-            
-            str.push(' ', k, '="', encodeHTML(item), '"');
-        }
-    }
-    
-    if (salign) {
-        str.push(' salign="', encodeHTML(salign), '"');
-    }
-    str.push('></embed></object>');
-    
-    return str.join('');
-};
-
-
-/**
- * 鍦ㄩ〉闈腑鍒涘缓涓�涓猣lash瀵硅薄
- * @name baidu.swf.create
- * @function
- * @grammar baidu.swf.create(options[, container])
- * 
- * @param {Object} 	options 					鍒涘缓flash鐨勯�夐」鍙傛暟
- * @param {string} 	options.id 					瑕佸垱寤虹殑flash鐨勬爣璇�
- * @param {string} 	options.url 				flash鏂囦欢鐨剈rl
- * @param {String} 	options.errorMessage 		鏈畨瑁協lash player鎴杅lash player鐗堟湰鍙疯繃浣庢椂鐨勬彁绀�
- * @param {string} 	options.ver 				鏈�浣庨渶瑕佺殑flash player鐗堟湰鍙�
- * @param {string} 	options.width 				flash鐨勫搴�
- * @param {string} 	options.height 				flash鐨勯珮搴�
- * @param {string} 	options.align 				flash鐨勫榻愭柟寮忥紝鍏佽鍊硷細middle/left/right/top/bottom
- * @param {string} 	options.base 				璁剧疆鐢ㄤ簬瑙f瀽swf鏂囦欢涓殑鎵�鏈夌浉瀵硅矾寰勮鍙ョ殑鍩烘湰鐩綍鎴朥RL
- * @param {string} 	options.bgcolor 			swf鏂囦欢鐨勮儗鏅壊
- * @param {string} 	options.salign 				璁剧疆缂╂斁鐨剆wf鏂囦欢鍦ㄧ敱width鍜宧eight璁剧疆瀹氫箟鐨勫尯鍩熷唴鐨勪綅缃�傚厑璁稿�硷細l/r/t/b/tl/tr/bl/br
- * @param {boolean} options.menu 				鏄惁鏄剧ず鍙抽敭鑿滃崟锛屽厑璁稿�硷細true/false
- * @param {boolean} options.loop 				鎾斁鍒版渶鍚庝竴甯ф椂鏄惁閲嶆柊鎾斁锛屽厑璁稿�硷細 true/false
- * @param {boolean} options.play 				flash鏄惁鍦ㄦ祻瑙堝櫒鍔犺浇鏃跺氨寮�濮嬫挱鏀俱�傚厑璁稿�硷細true/false
- * @param {string} 	options.quality 			璁剧疆flash鎾斁鐨勭敾璐紝鍏佽鍊硷細low/medium/high/autolow/autohigh/best
- * @param {string} 	options.scale 				璁剧疆flash鍐呭濡備綍缂╂斁鏉ラ�傚簲璁剧疆鐨勫楂樸�傚厑璁稿�硷細showall/noborder/exactfit
- * @param {string} 	options.wmode 				璁剧疆flash鐨勬樉绀烘ā寮忋�傚厑璁稿�硷細window/opaque/transparent
- * @param {string} 	options.allowscriptaccess 	璁剧疆flash涓庨〉闈㈢殑閫氫俊鏉冮檺銆傚厑璁稿�硷細always/never/sameDomain
- * @param {string} 	options.allownetworking 	璁剧疆swf鏂囦欢涓厑璁镐娇鐢ㄧ殑缃戠粶API銆傚厑璁稿�硷細all/internal/none
- * @param {boolean} options.allowfullscreen 	鏄惁鍏佽flash鍏ㄥ睆銆傚厑璁稿�硷細true/false
- * @param {boolean} options.seamlesstabbing 	鍏佽璁剧疆鎵ц鏃犵紳璺虫牸锛屼粠鑰屼娇鐢ㄦ埛鑳借烦鍑篺lash搴旂敤绋嬪簭銆傝鍙傛暟鍙兘鍦ㄥ畨瑁匜lash7鍙婃洿楂樼増鏈殑Windows涓娇鐢ㄣ�傚厑璁稿�硷細true/false
- * @param {boolean} options.devicefont 			璁剧疆闈欐�佹枃鏈璞℃槸鍚︿互璁惧瀛椾綋鍛堢幇銆傚厑璁稿�硷細true/false
- * @param {boolean} options.swliveconnect 		绗竴娆″姞杞絝lash鏃舵祻瑙堝櫒鏄惁搴斿惎鍔↗ava銆傚厑璁稿�硷細true/false
- * @param {Object} 	options.vars 				瑕佷紶閫掔粰flash鐨勫弬鏁帮紝鏀寔JSON鎴杝tring绫诲瀷銆�
- * 
- * @param {HTMLElement|string} [container] 		flash瀵硅薄鐨勭埗瀹瑰櫒鍏冪礌锛屼笉浼犻�掕鍙傛暟鏃跺湪褰撳墠浠g爜浣嶇疆鍒涘缓flash瀵硅薄銆�
- * @meta standard
- * @see baidu.swf.createHTML,baidu.swf.getMovie
- */
-baidu.swf.create = function (options, target) {
-    options = options || {};
-    var html = baidu.swf.createHTML(options) 
-               || options['errorMessage'] 
-               || '';
-                
-    if (target && 'string' == typeof target) {
-        target = document.getElementById(target);
-    }
-    baidu.dom.insertHTML( target || document.body ,'beforeEnd',html );
-};
-/**
- * 鍒ゆ柇鏄惁涓篿e娴忚鍣�
- * @name baidu.browser.ie
- * @field
- * @grammar baidu.browser.ie
- * @returns {Number} IE鐗堟湰鍙�
- */
-baidu.browser.ie = baidu.ie = /msie (\d+\.\d+)/i.test(navigator.userAgent) ? (document.documentMode || + RegExp['\x241']) : undefined;
-
-/**
- * 绉婚櫎鏁扮粍涓殑椤�
- * @name baidu.array.remove
- * @function
- * @grammar baidu.array.remove(source, match)
- * @param {Array} source 闇�瑕佺Щ闄ら」鐨勬暟缁�
- * @param {Any} match 瑕佺Щ闄ょ殑椤�
- * @meta standard
- * @see baidu.array.removeAt
- *             
- * @returns {Array} 绉婚櫎鍚庣殑鏁扮粍
- */
-baidu.array.remove = function (source, match) {
-    var len = source.length;
-        
-    while (len--) {
-        if (len in source && source[len] === match) {
-            source.splice(len, 1);
-        }
-    }
-    return source;
-};
-
-/**
- * 鍒ゆ柇鐩爣鍙傛暟鏄惁Array瀵硅薄
- * @name baidu.lang.isArray
- * @function
- * @grammar baidu.lang.isArray(source)
- * @param {Any} source 鐩爣鍙傛暟
- * @meta standard
- * @see baidu.lang.isString,baidu.lang.isObject,baidu.lang.isNumber,baidu.lang.isElement,baidu.lang.isBoolean,baidu.lang.isDate
- *             
- * @returns {boolean} 绫诲瀷鍒ゆ柇缁撴灉
- */
-baidu.lang.isArray = function (source) {
-    return '[object Array]' == Object.prototype.toString.call(source);
-};
-
-
-
-/**
- * 灏嗕竴涓彉閲忚浆鎹㈡垚array
- * @name baidu.lang.toArray
- * @function
- * @grammar baidu.lang.toArray(source)
- * @param {mix} source 闇�瑕佽浆鎹㈡垚array鐨勫彉閲�
- * @version 1.3
- * @meta standard
- * @returns {array} 杞崲鍚庣殑array
- */
-baidu.lang.toArray = function (source) {
-    if (source === null || source === undefined)
-        return [];
-    if (baidu.lang.isArray(source))
-        return source;
-    if (typeof source.length !== 'number' || typeof source === 'string' || baidu.lang.isFunction(source)) {
-        return [source];
-    }
-    if (source.item) {
-        var l = source.length, array = new Array(l);
-        while (l--)
-            array[l] = source[l];
-        return array;
-    }
-
-    return [].slice.call(source);
-};
-
-/**
- * 鑾峰緱flash瀵硅薄鐨勫疄渚�
- * @name baidu.swf.getMovie
- * @function
- * @grammar baidu.swf.getMovie(name)
- * @param {string} name flash瀵硅薄鐨勫悕绉�
- * @see baidu.swf.create
- * @meta standard
- * @returns {HTMLElement} flash瀵硅薄鐨勫疄渚�
- */
-baidu.swf.getMovie = function (name) {
-	var movie = document[name], ret;
-    return baidu.browser.ie == 9 ?
-    	movie && movie.length ? 
-    		(ret = baidu.array.remove(baidu.lang.toArray(movie),function(item){
-    			return item.tagName.toLowerCase() != "embed";
-    		})).length == 1 ? ret[0] : ret
-    		: movie
-    	: movie || window[name];
-};
-
-
-baidu.flash._Base = (function(){
-   
-    var prefix = 'bd__flash__';
-
-    /**
-     * 鍒涘缓涓�涓殢鏈虹殑瀛楃涓�
-     * @private
-     * @return {String}
-     */
-    function _createString(){
-        return  prefix + Math.floor(Math.random() * 2147483648).toString(36);
-    };
-   
-    /**
-     * 妫�鏌lash鐘舵��
-     * @private
-     * @param {Object} target flash瀵硅薄
-     * @return {Boolean}
-     */
-    function _checkReady(target){
-        if(typeof target !== 'undefined' && typeof target.flashInit !== 'undefined' && target.flashInit()){
-            return true;
-        }else{
-            return false;
-        }
-    };
-
-    /**
-     * 璋冪敤涔嬪墠杩涜鍘嬫爤鐨勫嚱鏁�
-     * @private
-     * @param {Array} callQueue 璋冪敤闃熷垪
-     * @param {Object} target flash瀵硅薄
-     * @return {Null}
-     */
-    function _callFn(callQueue, target){
-        var result = null;
-        
-        callQueue = callQueue.reverse();
-        baidu.each(callQueue, function(item){
-            result = target.call(item.fnName, item.params);
-            item.callBack(result);
-        });
-    };
-
-    /**
-     * 涓轰紶鍏ョ殑鍖垮悕鍑芥暟鍒涘缓鍑芥暟鍚�
-     * @private
-     * @param {String|Function} fun 浼犲叆鐨勫尶鍚嶅嚱鏁版垨鑰呭嚱鏁板悕
-     * @return {String}
-     */
-    function _createFunName(fun){
-        var name = '';
-
-        if(baidu.lang.isFunction(fun)){
-            name = _createString();
-            window[name] = function(){
-                fun.apply(window, arguments);
-            };
-
-            return name;
-        }else if(baidu.lang.isString){
-            return fun;
-        }
-    };
-
-    /**
-     * 缁樺埗flash
-     * @private
-     * @param {Object} options 鍒涘缓鍙傛暟
-     * @return {Object} 
-     */
-    function _render(options){
-        if(!options.id){
-            options.id = _createString();
-        }
-        
-        var container = options.container || '';
-        delete(options.container);
-        
-        baidu.swf.create(options, container);
-        
-        return baidu.swf.getMovie(options.id);
-    };
-
-    return function(options, callBack){
-        var me = this,
-            autoRender = (typeof options.autoRender !== 'undefined' ? options.autoRender : true),
-            createOptions = options.createOptions || {},
-            target = null,
-            isReady = false,
-            callQueue = [],
-            timeHandle = null,
-            callBack = callBack || [];
-
-        /**
-         * 灏唂lash鏂囦欢缁樺埗鍒伴〉闈笂
-         * @public
-         * @return {Null}
-         */
-        me.render = function(){
-            target = _render(createOptions);
-            
-            if(callBack.length > 0){
-                baidu.each(callBack, function(funName, index){
-                    callBack[index] = _createFunName(options[funName] || new Function());
-                });    
-            }
-            me.call('setJSFuncName', [callBack]);
-        };
-
-        /**
-         * 杩斿洖flash鐘舵��
-         * @return {Boolean}
-         */
-        me.isReady = function(){
-            return isReady;
-        };
-
-        /**
-         * 璋冪敤flash鎺ュ彛鐨勭粺涓�鍏ュ彛
-         * @param {String} fnName 璋冪敤鐨勫嚱鏁板悕
-         * @param {Array} params 浼犲叆鐨勫弬鏁扮粍鎴愮殑鏁扮粍,鑻ヤ笉璁歌鍙傛暟锛岄渶浼犲叆绌烘暟缁�
-         * @param {Function} [callBack] 寮傛璋冪敤鍚庡皢杩斿洖鍊间綔涓哄弬鏁扮殑璋冪敤鍥炶皟鍑芥暟锛屽鏃犺繑鍥炲�硷紝鍙互涓嶄紶鍏ユ鍙傛暟
-         * @return {Null}
-        */
-        me.call = function(fnName, params, callBack){
-            if(!fnName) return null;
-            callBack = callBack || new Function();
-
-            var result = null;
-    
-            if(isReady){
-                result = target.call(fnName, params);
-                callBack(result);
-            }else{
-                callQueue.push({
-                    fnName: fnName,
-                    params: params,
-                    callBack: callBack
-                });
-    
-                (!timeHandle) && (timeHandle = setInterval(_check, 200));
-            }
-        };
-    
-        /**
-         * 涓轰紶鍏ョ殑鍖垮悕鍑芥暟鍒涘缓鍑芥暟鍚�
-         * @public
-         * @param {String|Function} fun 浼犲叆鐨勫尶鍚嶅嚱鏁版垨鑰呭嚱鏁板悕
-         * @return {String}
-         */
-        me.createFunName = function(fun){
-            return _createFunName(fun);    
-        };
-
-        /**
-         * 妫�鏌lash鏄惁ready锛� 骞惰繘琛岃皟鐢�
-         * @private
-         * @return {Null}
-         */
-        function _check(){
-            if(_checkReady(target)){
-                clearInterval(timeHandle);
-                timeHandle = null;
-                _call();
-
-                isReady = true;
-            }               
-        };
-
-        /**
-         * 璋冪敤涔嬪墠杩涜鍘嬫爤鐨勫嚱鏁�
-         * @private
-         * @return {Null}
-         */
-        function _call(){
-            _callFn(callQueue, target);
-            callQueue = [];
-        }
-
-        autoRender && me.render(); 
-    };
-})();
-
-
-
-/**
- * 鍒涘缓flash based imageUploader
- * @class
- * @grammar baidu.flash.imageUploader(options)
- * @param {Object} createOptions 鍒涘缓flash鏃堕渶瑕佺殑鍙傛暟锛岃鍙傜収baidu.swf.create鏂囨。
- * @config {Object} vars 鍒涘缓imageUploader鏃舵墍闇�瑕佺殑鍙傛暟
- * @config {Number} vars.gridWidth 姣忎竴涓瑙堝浘鐗囨墍鍗犵殑瀹藉害锛屽簲璇ヤ负flash瀵涚殑鏁撮櫎
- * @config {Number} vars.gridHeight 姣忎竴涓瑙堝浘鐗囨墍鍗犵殑楂樺害锛屽簲璇ヤ负flash楂樼殑鏁撮櫎
- * @config {Number} vars.picWidth 鍗曞紶棰勮鍥剧墖鐨勫搴�
- * @config {Number} vars.picHeight 鍗曞紶棰勮鍥剧墖鐨勯珮搴�
- * @config {String} vars.uploadDataFieldName POST璇锋眰涓浘鐗囨暟鎹殑key,榛樿鍊�'picdata'
- * @config {String} vars.picDescFieldName POST璇锋眰涓浘鐗囨弿杩扮殑key,榛樿鍊�'picDesc'
- * @config {Number} vars.maxSize 鏂囦欢鐨勬渶澶т綋绉�,鍗曚綅'MB'
- * @config {Number} vars.compressSize 涓婁紶鍓嶅鏋滃浘鐗囦綋绉秴杩囪鍊硷紝浼氬厛鍘嬬缉
- * @config {Number} vars.maxNum:32 鏈�澶т笂浼犲灏戜釜鏂囦欢
- * @config {Number} vars.compressLength 鑳芥帴鍙楃殑鏈�澶ц竟闀匡紝瓒呰繃璇ュ�间細绛夋瘮鍘嬬缉
- * @config {String} vars.url 涓婁紶鐨剈rl鍦板潃
- * @config {Number} vars.mode mode == 0鏃讹紝鏄娇鐢ㄦ粴鍔ㄦ潯锛宮ode == 1鏃讹紝鎷変几flash, 榛樿鍊间负0
- * @see baidu.swf.createHTML
- * @param {String} backgroundUrl 鑳屾櫙鍥剧墖璺緞
- * @param {String} listBacgroundkUrl 甯冨眬鎺т欢鑳屾櫙
- * @param {String} buttonUrl 鎸夐挳鍥剧墖涓嶈儗鏅�
- * @param {String|Function} selectFileCallback 閫夋嫨鏂囦欢鐨勫洖璋�
- * @param {String|Function} exceedFileCallback鏂囦欢瓒呭嚭闄愬埗鐨勬渶澶т綋绉椂鐨勫洖璋�
- * @param {String|Function} deleteFileCallback 鍒犻櫎鏂囦欢鐨勫洖璋�
- * @param {String|Function} startUploadCallback 寮�濮嬩笂浼犳煇涓枃浠舵椂鐨勫洖璋�
- * @param {String|Function} uploadCompleteCallback 鏌愪釜鏂囦欢涓婁紶瀹屾垚鐨勫洖璋�
- * @param {String|Function} uploadErrorCallback 鏌愪釜鏂囦欢涓婁紶澶辫触鐨勫洖璋�
- * @param {String|Function} allCompleteCallback 鍏ㄩ儴涓婁紶瀹屾垚鏃剁殑鍥炶皟
- * @param {String|Function} changeFlashHeight 鏀瑰彉Flash鐨勯珮搴︼紝mode==1鐨勬椂鍊欐墠鏈夌敤
- */ 
-baidu.flash.imageUploader = baidu.flash.imageUploader || function(options){
-   
-    var me = this,
-        options = options || {},
-        _flash = new baidu.flash._Base(options, [
-            'selectFileCallback', 
-            'exceedFileCallback', 
-            'deleteFileCallback', 
-            'startUploadCallback',
-            'uploadCompleteCallback',
-            'uploadErrorCallback',
-            'allCompleteCallback',
-            'changeFlashHeight'
-        ]);
-    /**
-     * 寮�濮嬫垨鍥炲涓婁紶鍥剧墖
-     * @public
-     * @return {Null}
-     */
-    me.upload = function(){
-        _flash.call('upload');
-    };
-
-    /**
-     * 鏆傚仠涓婁紶鍥剧墖
-     * @public
-     * @return {Null}
-     */
-    me.pause = function(){
-        _flash.call('pause');
-    };
-    me.addCustomizedParams = function(index,obj){
-        _flash.call('addCustomizedParams',[index,obj]);
-    }
-};
-
-/**
- * 鎿嶄綔鍘熺敓瀵硅薄鐨勬柟娉�
- * @namespace baidu.object
- */
-baidu.object = baidu.object || {};
-
-
-/**
- * 灏嗘簮瀵硅薄鐨勬墍鏈夊睘鎬ф嫹璐濆埌鐩爣瀵硅薄涓�
- * @author erik
- * @name baidu.object.extend
- * @function
- * @grammar baidu.object.extend(target, source)
- * @param {Object} target 鐩爣瀵硅薄
- * @param {Object} source 婧愬璞�
- * @see baidu.array.merge
- * @remark
- * 
-1.鐩爣瀵硅薄涓紝涓庢簮瀵硅薄key鐩稿悓鐨勬垚鍛樺皢浼氳瑕嗙洊銆�<br>
-2.婧愬璞$殑prototype鎴愬憳涓嶄細鎷疯礉銆�
-		
- * @shortcut extend
- * @meta standard
- *             
- * @returns {Object} 鐩爣瀵硅薄
- */
-baidu.extend =
-baidu.object.extend = function (target, source) {
-    for (var p in source) {
-        if (source.hasOwnProperty(p)) {
-            target[p] = source[p];
-        }
-    }
-    
-    return target;
-};
-
-
-
-
-
-/**
- * 鍒涘缓flash based fileUploader
- * @class
- * @grammar baidu.flash.fileUploader(options)
- * @param {Object} options
- * @config {Object} createOptions 鍒涘缓flash鏃堕渶瑕佺殑鍙傛暟锛岃鍙傜収baidu.swf.create鏂囨。
- * @config {String} createOptions.width
- * @config {String} createOptions.height
- * @config {Number} maxNum 鏈�澶у彲閫夋枃浠舵暟
- * @config {Function|String} selectFile
- * @config {Function|String} exceedMaxSize
- * @config {Function|String} deleteFile
- * @config {Function|String} uploadStart
- * @config {Function|String} uploadComplete
- * @config {Function|String} uploadError
- * @config {Function|String} uploadProgress
- */
-baidu.flash.fileUploader = baidu.flash.fileUploader || function(options){
-    var me = this,
-        options = options || {};
-    
-    options.createOptions = baidu.extend({
-        wmod: 'transparent'
-    },options.createOptions || {});
-    
-    var _flash = new baidu.flash._Base(options, [
-        'selectFile',
-        'exceedMaxSize',
-        'deleteFile',
-        'uploadStart',
-        'uploadComplete',
-        'uploadError', 
-        'uploadProgress'
-    ]);
-
-    _flash.call('setMaxNum', options.maxNum ? [options.maxNum] : [1]);
-
-    /**
-     * 璁剧疆褰撻紶鏍囩Щ鍔ㄥ埌flash涓婃椂锛屾槸鍚﹀彉鎴愭墜鍨�
-     * @public
-     * @param {Boolean} isCursor
-     * @return {Null}
-     */
-    me.setHandCursor = function(isCursor){
-        _flash.call('setHandCursor', [isCursor || false]);
-    };
-
-    /**
-     * 璁剧疆榧犳爣鐩稿簲鍑芥暟鍚�
-     * @param {String|Function} fun
-     */
-    me.setMSFunName = function(fun){
-        _flash.call('setMSFunName',[_flash.createFunName(fun)]);
-    }; 
-
-    /**
-     * 鎵ц涓婁紶鎿嶄綔
-     * @param {String} url 涓婁紶鐨剈rl
-     * @param {String} fieldName 涓婁紶鐨勮〃鍗曞瓧娈靛悕
-     * @param {Object} postData 閿�煎锛屼笂浼犵殑POST鏁版嵁
-     * @param {Number|Array|null|-1} [index]涓婁紶鐨勬枃浠跺簭鍒�
-     *                            Int鍊间笂浼犺鏂囦欢
-     *                            Array涓�娆′覆琛屼笂浼犺搴忓垪鏂囦欢
-     *                            -1/null涓婁紶鎵�鏈夋枃浠�
-     * @return {Null}
-     */
-    me.upload = function(url, fieldName, postData, index){
-
-        if(typeof url !== 'string' || typeof fieldName !== 'string') return null;
-        if(typeof index === 'undefined') index = -1;
-
-        _flash.call('upload', [url, fieldName, postData, index]);
-    };
-
-    /**
-     * 鍙栨秷涓婁紶鎿嶄綔
-     * @public
-     * @param {Number|-1} index
-     */
-    me.cancel = function(index){
-        if(typeof index === 'undefined') index = -1;
-        _flash.call('cancel', [index]);
-    };
-
-    /**
-     * 鍒犻櫎鏂囦欢
-     * @public
-     * @param {Number|Array} [index] 瑕佸垹闄ょ殑index锛屼笉浼犲垯鍏ㄩ儴鍒犻櫎
-     * @param {Function} callBack
-     * */
-    me.deleteFile = function(index, callBack){
-
-        var callBackAll = function(list){
-                callBack && callBack(list);
-            };
-
-        if(typeof index === 'undefined'){
-            _flash.call('deleteFilesAll', [], callBackAll);
-            return;
-        };
-        
-        if(typeof index === 'Number') index = [index];
-        index.sort(function(a,b){
-            return b-a;
-        });
-        baidu.each(index, function(item){
-            _flash.call('deleteFileBy', item, callBackAll);
-        });
-    };
-
-    /**
-     * 娣诲姞鏂囦欢绫诲瀷锛屾敮鎸乵acType
-     * @public
-     * @param {Object|Array[Object]} type {description:String, extention:String}
-     * @return {Null};
-     */
-    me.addFileType = function(type){
-        var type = type || [[]];
-        
-        if(type instanceof Array) type = [type];
-        else type = [[type]];
-        _flash.call('addFileTypes', type);
-    };
-    
-    /**
-     * 璁剧疆鏂囦欢绫诲瀷锛屾敮鎸乵acType
-     * @public
-     * @param {Object|Array[Object]} type {description:String, extention:String}
-     * @return {Null};
-     */
-    me.setFileType = function(type){
-        var type = type || [[]];
-        
-        if(type instanceof Array) type = [type];
-        else type = [[type]];
-        _flash.call('setFileTypes', type);
-    };
-
-    /**
-     * 璁剧疆鍙�夋枃浠剁殑鏁伴噺闄愬埗
-     * @public
-     * @param {Number} num
-     * @return {Null}
-     */
-    me.setMaxNum = function(num){
-        _flash.call('setMaxNum', [num]);
-    };
-
-    /**
-     * 璁剧疆鍙�夋枃浠跺ぇ灏忛檺鍒讹紝浠ュ厗M涓哄崟浣�
-     * @public
-     * @param {Number} num,0涓烘棤闄愬埗
-     * @return {Null}
-     */
-    me.setMaxSize = function(num){
-        _flash.call('setMaxSize', [num]);
-    };
-
-    /**
-     * @public
-     */
-    me.getFileAll = function(callBack){
-        _flash.call('getFileAll', [], callBack);
-    };
-
-    /**
-     * @public
-     * @param {Number} index
-     * @param {Function} [callBack]
-     */
-    me.getFileByIndex = function(index, callBack){
-        _flash.call('getFileByIndex', [], callBack);
-    };
-
-    /**
-     * @public
-     * @param {Number} index
-     * @param {function} [callBack]
-     */
-    me.getStatusByIndex = function(index, callBack){
-        _flash.call('getStatusByIndex', [], callBack);
-    };
-};
-
-/**
- * 浣跨敤鍔ㄦ�乻cript鏍囩璇锋眰鏈嶅姟鍣ㄨ祫婧愶紝鍖呮嫭鐢辨湇鍔″櫒绔殑鍥炶皟鍜屾祻瑙堝櫒绔殑鍥炶皟
- * @namespace baidu.sio
- */
-baidu.sio = baidu.sio || {};
-
-/**
- * 
- * @param {HTMLElement} src script鑺傜偣
- * @param {String} url script鑺傜偣鐨勫湴鍧�
- * @param {String} [charset] 缂栫爜
- */
-baidu.sio._createScriptTag = function(scr, url, charset){
-    scr.setAttribute('type', 'text/javascript');
-    charset && scr.setAttribute('charset', charset);
-    scr.setAttribute('src', url);
-    document.getElementsByTagName('head')[0].appendChild(scr);
-};
-
-/**
- * 鍒犻櫎script鐨勫睘鎬э紝鍐嶅垹闄cript鏍囩锛屼互瑙e喅淇鍐呭瓨娉勬紡鐨勯棶棰�
- * 
- * @param {HTMLElement} src script鑺傜偣
- */
-baidu.sio._removeScriptTag = function(scr){
-    if (scr.clearAttributes) {
-        scr.clearAttributes();
-    } else {
-        for (var attr in scr) {
-            if (scr.hasOwnProperty(attr)) {
-                delete scr[attr];
-            }
-        }
-    }
-    if(scr && scr.parentNode){
-        scr.parentNode.removeChild(scr);
-    }
-    scr = null;
-};
-
-
-/**
- * 閫氳繃script鏍囩鍔犺浇鏁版嵁锛屽姞杞藉畬鎴愮敱娴忚鍣ㄧ瑙﹀彂鍥炶皟
- * @name baidu.sio.callByBrowser
- * @function
- * @grammar baidu.sio.callByBrowser(url, opt_callback, opt_options)
- * @param {string} url 鍔犺浇鏁版嵁鐨剈rl
- * @param {Function|string} opt_callback 鏁版嵁鍔犺浇缁撴潫鏃惰皟鐢ㄧ殑鍑芥暟鎴栧嚱鏁板悕
- * @param {Object} opt_options 鍏朵粬鍙�夐」
- * @config {String} [charset] script鐨勫瓧绗﹂泦
- * @config {Integer} [timeOut] 瓒呮椂鏃堕棿锛岃秴杩囪繖涓椂闂村皢涓嶅啀鍝嶅簲鏈姹傦紝骞惰Е鍙憃nfailure鍑芥暟
- * @config {Function} [onfailure] timeOut璁惧畾鍚庢墠鐢熸晥锛屽埌杈捐秴鏃舵椂闂存椂瑙﹀彂鏈嚱鏁�
- * @remark
- * 1銆佷笌callByServer涓嶅悓锛宑allback鍙傛暟鍙敮鎸丗unction绫诲瀷锛屼笉鏀寔string銆�
- * 2銆佸鏋滆姹備簡涓�涓笉瀛樺湪鐨勯〉闈紝callback鍑芥暟鍦↖E/opera涓嬩篃浼氳璋冪敤锛屽洜姝や娇鐢ㄨ�呴渶瑕佸湪onsuccess鍑芥暟涓垽鏂暟鎹槸鍚︽纭姞杞姐��
- * @meta standard
- * @see baidu.sio.callByServer
- */
-baidu.sio.callByBrowser = function (url, opt_callback, opt_options) {
-    var scr = document.createElement("SCRIPT"),
-        scriptLoaded = 0,
-        options = opt_options || {},
-        charset = options['charset'],
-        callback = opt_callback || function(){},
-        timeOut = options['timeOut'] || 0,
-        timer;
-    scr.onload = scr.onreadystatechange = function () {
-        if (scriptLoaded) {
-            return;
-        }
-        
-        var readyState = scr.readyState;
-        if ('undefined' == typeof readyState
-            || readyState == "loaded"
-            || readyState == "complete") {
-            scriptLoaded = 1;
-            try {
-                callback();
-                clearTimeout(timer);
-            } finally {
-                scr.onload = scr.onreadystatechange = null;
-                baidu.sio._removeScriptTag(scr);
-            }
-        }
-    };
-
-    if( timeOut ){
-        timer = setTimeout(function(){
-            scr.onload = scr.onreadystatechange = null;
-            baidu.sio._removeScriptTag(scr);
-            options.onfailure && options.onfailure();
-        }, timeOut);
-    }
-    
-    baidu.sio._createScriptTag(scr, url, charset);
-};
-
-/**
- * 閫氳繃script鏍囩鍔犺浇鏁版嵁锛屽姞杞藉畬鎴愮敱鏈嶅姟鍣ㄧ瑙﹀彂鍥炶皟
- * @name baidu.sio.callByServer
- * @function
- * @grammar baidu.sio.callByServer(url, callback[, opt_options])
- * @param {string} url 鍔犺浇鏁版嵁鐨剈rl.
- * @param {Function|string} callback 鏈嶅姟鍣ㄧ璋冪敤鐨勫嚱鏁版垨鍑芥暟鍚嶃�傚鏋滄病鏈夋寚瀹氭湰鍙傛暟锛屽皢鍦║RL涓鎵緊ptions['queryField']鍋氫负callback鐨勬柟娉曞悕.
- * @param {Object} opt_options 鍔犺浇鏁版嵁鏃剁殑閫夐」.
- * @config {string} [charset] script鐨勫瓧绗﹂泦
- * @config {string} [queryField] 鏈嶅姟鍣ㄧcallback璇锋眰瀛楁鍚嶏紝榛樿涓篶allback
- * @config {Integer} [timeOut] 瓒呮椂鏃堕棿(鍗曚綅锛歮s)锛岃秴杩囪繖涓椂闂村皢涓嶅啀鍝嶅簲鏈姹傦紝骞惰Е鍙憃nfailure鍑芥暟
- * @config {Function} [onfailure] timeOut璁惧畾鍚庢墠鐢熸晥锛屽埌杈捐秴鏃舵椂闂存椂瑙﹀彂鏈嚱鏁�
- * @remark
- * 濡傛灉url涓凡缁忓寘鍚玨ey涓衡�渙ptions['queryField']鈥濈殑query椤癸紝灏嗕細琚浛鎹㈡垚callback涓弬鏁颁紶閫掓垨鑷姩鐢熸垚鐨勫嚱鏁板悕銆�
- * @meta standard
- * @see baidu.sio.callByBrowser
- */
-baidu.sio.callByServer = /**@function*/function(url, callback, opt_options) {
-    var scr = document.createElement('SCRIPT'),
-        prefix = 'bd__cbs__',
-        callbackName,
-        callbackImpl,
-        options = opt_options || {},
-        charset = options['charset'],
-        queryField = options['queryField'] || 'callback',
-        timeOut = options['timeOut'] || 0,
-        timer,
-        reg = new RegExp('(\\?|&)' + queryField + '=([^&]*)'),
-        matches;
-
-    if (baidu.lang.isFunction(callback)) {
-        callbackName = prefix + Math.floor(Math.random() * 2147483648).toString(36);
-        window[callbackName] = getCallBack(0);
-    } else if(baidu.lang.isString(callback)){
-        callbackName = callback;
-    } else {
-        if (matches = reg.exec(url)) {
-            callbackName = matches[2];
-        }
-    }
-
-    if( timeOut ){
-        timer = setTimeout(getCallBack(1), timeOut);
-    }
-    url = url.replace(reg, '\x241' + queryField + '=' + callbackName);
-    
-    if (url.search(reg) < 0) {
-        url += (url.indexOf('?') < 0 ? '?' : '&') + queryField + '=' + callbackName;
-    }
-    baidu.sio._createScriptTag(scr, url, charset);
-
-    /*
-     * 杩斿洖涓�涓嚱鏁帮紝鐢ㄤ簬绔嬪嵆锛堟寕鍦╳indow涓婏級鎴栬�呰秴鏃讹紙鎸傚湪setTimeout涓級鏃舵墽琛�
-     */
-    function getCallBack(onTimeOut){
-        /*global callbackName, callback, scr, options;*/
-        return function(){
-            try {
-                if( onTimeOut ){
-                    options.onfailure && options.onfailure();
-                }else{
-                    callback.apply(window, arguments);
-                    clearTimeout(timer);
-                }
-                window[callbackName] = null;
-                delete window[callbackName];
-            } catch (exception) {
-            } finally {
-                baidu.sio._removeScriptTag(scr);
-            }
-        }
-    }
-};
-
-/**
- * 閫氳繃璇锋眰涓�涓浘鐗囩殑鏂瑰紡浠ゆ湇鍔″櫒瀛樺偍涓�鏉℃棩蹇�
- * @function
- * @grammar baidu.sio.log(url)
- * @param {string} url 瑕佸彂閫佺殑鍦板潃.
- * @author: int08h,leeight
- */
-baidu.sio.log = function(url) {
-  var img = new Image(),
-      key = 'tangram_sio_log_' + Math.floor(Math.random() *
-            2147483648).toString(36);
-  window[key] = img;
-
-  img.onload = img.onerror = img.onabort = function() {
-    img.onload = img.onerror = img.onabort = null;
-
-    window[key] = null;
-    img = null;
-  };
-  img.src = url;
-};
-
-
-
-/*
- * Tangram
- * Copyright 2009 Baidu Inc. All rights reserved.
- * 
- * path: baidu/json.js
- * author: erik
- * version: 1.1.0
- * date: 2009/12/02
- */
-
-
-/**
- * 鎿嶄綔json瀵硅薄鐨勬柟娉�
- * @namespace baidu.json
- */
-baidu.json = baidu.json || {};
-/*
- * Tangram
- * Copyright 2009 Baidu Inc. All rights reserved.
- * 
- * path: baidu/json/parse.js
- * author: erik, berg
- * version: 1.2
- * date: 2009/11/23
- */
-
-
-
-/**
- * 灏嗗瓧绗︿覆瑙f瀽鎴恓son瀵硅薄銆傛敞锛氫笉浼氳嚜鍔ㄧ闄ょ┖鏍�
- * @name baidu.json.parse
- * @function
- * @grammar baidu.json.parse(data)
- * @param {string} source 闇�瑕佽В鏋愮殑瀛楃涓�
- * @remark
- * 璇ユ柟娉曠殑瀹炵幇涓巈cma-262绗簲鐗堜腑瑙勫畾鐨凧SON.parse涓嶅悓锛屾殏鏃跺彧鏀寔浼犲叆涓�涓弬鏁般�傚悗缁細杩涜鍔熻兘涓板瘜銆�
- * @meta standard
- * @see baidu.json.stringify,baidu.json.decode
- *             
- * @returns {JSON} 瑙f瀽缁撴灉json瀵硅薄
- */
-baidu.json.parse = function (data) {
-    //2010/12/09锛氭洿鏂拌嚦涓嶄娇鐢ㄥ師鐢焢arse锛屼笉妫�娴嬬敤鎴疯緭鍏ユ槸鍚︽纭�
-    return (new Function("return (" + data + ")"))();
-};
-/*
- * Tangram
- * Copyright 2009 Baidu Inc. All rights reserved.
- * 
- * path: baidu/json/decode.js
- * author: erik, cat
- * version: 1.3.4
- * date: 2010/12/23
- */
-
-
-
-/**
- * 灏嗗瓧绗︿覆瑙f瀽鎴恓son瀵硅薄锛屼负杩囨椂鎺ュ彛锛屼粖鍚庝細琚玝aidu.json.parse浠f浛
- * @name baidu.json.decode
- * @function
- * @grammar baidu.json.decode(source)
- * @param {string} source 闇�瑕佽В鏋愮殑瀛楃涓�
- * @meta out
- * @see baidu.json.encode,baidu.json.parse
- *             
- * @returns {JSON} 瑙f瀽缁撴灉json瀵硅薄
- */
-baidu.json.decode = baidu.json.parse;
-/*
- * Tangram
- * Copyright 2009 Baidu Inc. All rights reserved.
- * 
- * path: baidu/json/stringify.js
- * author: erik
- * version: 1.1.0
- * date: 2010/01/11
- */
-
-
-
-/**
- * 灏唈son瀵硅薄搴忓垪鍖�
- * @name baidu.json.stringify
- * @function
- * @grammar baidu.json.stringify(value)
- * @param {JSON} value 闇�瑕佸簭鍒楀寲鐨刯son瀵硅薄
- * @remark
- * 璇ユ柟娉曠殑瀹炵幇涓巈cma-262绗簲鐗堜腑瑙勫畾鐨凧SON.stringify涓嶅悓锛屾殏鏃跺彧鏀寔浼犲叆涓�涓弬鏁般�傚悗缁細杩涜鍔熻兘涓板瘜銆�
- * @meta standard
- * @see baidu.json.parse,baidu.json.encode
- *             
- * @returns {string} 搴忓垪鍖栧悗鐨勫瓧绗︿覆
- */
-baidu.json.stringify = (function () {
-    /**
-     * 瀛楃涓插鐞嗘椂闇�瑕佽浆涔夌殑瀛楃琛�
-     * @private
-     */
-    var escapeMap = {
-        "\b": '\\b',
-        "\t": '\\t',
-        "\n": '\\n',
-        "\f": '\\f',
-        "\r": '\\r',
-        '"' : '\\"',
-        "\\": '\\\\'
-    };
-    
-    /**
-     * 瀛楃涓插簭鍒楀寲
-     * @private
-     */
-    function encodeString(source) {
-        if (/["\\\x00-\x1f]/.test(source)) {
-            source = source.replace(
-                /["\\\x00-\x1f]/g, 
-                function (match) {
-                    var c = escapeMap[match];
-                    if (c) {
-                        return c;
-                    }
-                    c = match.charCodeAt();
-                    return "\\u00" 
-                            + Math.floor(c / 16).toString(16) 
-                            + (c % 16).toString(16);
-                });
-        }
-        return '"' + source + '"';
-    }
-    
-    /**
-     * 鏁扮粍搴忓垪鍖�
-     * @private
-     */
-    function encodeArray(source) {
-        var result = ["["], 
-            l = source.length,
-            preComma, i, item;
-            
-        for (i = 0; i < l; i++) {
-            item = source[i];
-            
-            switch (typeof item) {
-            case "undefined":
-            case "function":
-            case "unknown":
-                break;
-            default:
-                if(preComma) {
-                    result.push(',');
-                }
-                result.push(baidu.json.stringify(item));
-                preComma = 1;
-            }
-        }
-        result.push("]");
-        return result.join("");
-    }
-    
-    /**
-     * 澶勭悊鏃ユ湡搴忓垪鍖栨椂鐨勮ˉ闆�
-     * @private
-     */
-    function pad(source) {
-        return source < 10 ? '0' + source : source;
-    }
-    
-    /**
-     * 鏃ユ湡搴忓垪鍖�
-     * @private
-     */
-    function encodeDate(source){
-        return '"' + source.getFullYear() + "-" 
-                + pad(source.getMonth() + 1) + "-" 
-                + pad(source.getDate()) + "T" 
-                + pad(source.getHours()) + ":" 
-                + pad(source.getMinutes()) + ":" 
-                + pad(source.getSeconds()) + '"';
-    }
-    
-    return function (value) {
-        switch (typeof value) {
-        case 'undefined':
-            return 'undefined';
-            
-        case 'number':
-            return isFinite(value) ? String(value) : "null";
-            
-        case 'string':
-            return encodeString(value);
-            
-        case 'boolean':
-            return String(value);
-            
-        default:
-            if (value === null) {
-                return 'null';
-            } else if (value instanceof Array) {
-                return encodeArray(value);
-            } else if (value instanceof Date) {
-                return encodeDate(value);
-            } else {
-                var result = ['{'],
-                    encode = baidu.json.stringify,
-                    preComma,
-                    item;
-                    
-                for (var key in value) {
-                    if (Object.prototype.hasOwnProperty.call(value, key)) {
-                        item = value[key];
-                        switch (typeof item) {
-                        case 'undefined':
-                        case 'unknown':
-                        case 'function':
-                            break;
-                        default:
-                            if (preComma) {
-                                result.push(',');
-                            }
-                            preComma = 1;
-                            result.push(encode(key) + ':' + encode(item));
-                        }
-                    }
-                }
-                result.push('}');
-                return result.join('');
-            }
-        }
-    };
-})();
-/*
- * Tangram
- * Copyright 2009 Baidu Inc. All rights reserved.
- * 
- * path: baidu/json/encode.js
- * author: erik, cat
- * version: 1.3.4
- * date: 2010/12/23
- */
-
-
-
-/**
- * 灏唈son瀵硅薄搴忓垪鍖栵紝涓鸿繃鏃舵帴鍙o紝浠婂悗浼氳baidu.json.stringify浠f浛
- * @name baidu.json.encode
- * @function
- * @grammar baidu.json.encode(value)
- * @param {JSON} value 闇�瑕佸簭鍒楀寲鐨刯son瀵硅薄
- * @meta out
- * @see baidu.json.decode,baidu.json.stringify
- *             
- * @returns {string} 搴忓垪鍖栧悗鐨勫瓧绗︿覆
- */
-baidu.json.encode = baidu.json.stringify;
diff --git a/server/public/ueditor/dialogs/wordimage/wordimage.html b/server/public/ueditor/dialogs/wordimage/wordimage.html
deleted file mode 100644
index f8c0905..0000000
--- a/server/public/ueditor/dialogs/wordimage/wordimage.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title></title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" src="../internal.js"></script>
-    <style type="text/css">
-        .wrapper{width: 600px;padding: 10px;height: 352px;overflow: hidden;position: relative;border-bottom: 1px solid #d7d7d7}
-        .localPath input{float: left;width: 350px;line-height: 20px;height: 20px;}
-        #clipboard{float:left;width: 70px;height: 30px; }
-        .description{ color: #0066cc; margin-top: 2px; width: 450px; height: 45px;float: left;line-height: 22px}
-        #upload{width: 100px;height: 30px;float: right; margin:10px 2px 0 0;cursor: pointer;}
-        #msg{ width: 140px; height: 30px; line-height:25px;float: left;color: red}
-    </style>
-</head>
-<body>
-    <div class="wrapper">
-        <div class="localPath">
-            <input id="localPath" type="text" readonly />
-            <div id="clipboard"></div>
-            <div id="msg"></div>
-        </div>
-        <div id="flashContainer"></div>
-        <div>
-            <div id="upload" style="display: none" ><img id="uploadBtn"></div>
-            <div class="description">
-                <span style="color: red"><var id="lang_resave"></var>: </span><var id="lang_step"></var>
-            </div>
-          </div>
-    </div>
-    <script type="text/javascript" src="tangram.js"></script>
-    <script type="text/javascript" src="wordimage.js"></script>
-    <script type="text/javascript">
-        editor.setOpt({
-            wordImageFieldName:"upfile",
-            compressSide:0,
-            maxImageSideLength:900
-        });
-
-            //鍏ㄥ眬鍙橀噺
-        var imageUrls = [],          //鐢ㄤ簬淇濆瓨浠庢湇鍔″櫒杩斿洖鐨勫浘鐗囦俊鎭暟缁�
-            selectedImageCount = 0,  //褰撳墠宸查�夋嫨鐨勪絾鏈笂浼犵殑鍥剧墖鏁伴噺
-            optImageUrl = editor.getActionUrl(editor.getOpt('imageActionName')),
-            optImageFieldName = editor.getOpt('imageFieldName'),
-            optImageCompressBorder = editor.getOpt('imageCompressEnable') ? editor.getOpt('imageCompressBorder'):null,
-            maxSize = editor.getOpt('imageMaxSize') / 1024,
-            extension = editor.getOpt('imageAllowFiles').join(';').replace(/\./g, '*.');
-
-        /* 娣诲姞棰濆鐨凣ET鍙傛暟 */
-        var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '',
-            urlWidthParams = optImageUrl + (optImageUrl.indexOf('?') == -1 ? '?':'&') + params;
-
-        utils.domReady(function(){
-            //鍒涘缓Flash鐩稿叧鐨勫弬鏁伴泦鍚�
-            var flashOptions = {
-                container:"flashContainer",                                                    //flash瀹瑰櫒id
-                url:urlWidthParams,                                           // 涓婁紶澶勭悊椤甸潰鐨剈rl鍦板潃
-                ext:editor.queryCommandValue('serverParam') || {},                                 //鍙悜鏈嶅姟鍣ㄦ彁浜ょ殑鑷畾涔夊弬鏁板垪琛�
-                fileType:'{"description":"'+lang.fileType+'", "extension":"' + extension + '"}',     //涓婁紶鏂囦欢鏍煎紡闄愬埗
-                flashUrl:'imageUploader.swf',                                                  //涓婁紶鐢ㄧ殑flash缁勪欢鍦板潃
-                width:600,          //flash鐨勫搴�
-                height:272,         //flash鐨勯珮搴�
-                gridWidth:120,     // 姣忎竴涓瑙堝浘鐗囨墍鍗犵殑瀹藉害
-                gridHeight:120,    // 姣忎竴涓瑙堝浘鐗囨墍鍗犵殑楂樺害
-                picWidth:100,      // 鍗曞紶棰勮鍥剧墖鐨勫搴�
-                picHeight:100,     // 鍗曞紶棰勮鍥剧墖鐨勯珮搴�
-                uploadDataFieldName: optImageFieldName,    // POST璇锋眰涓浘鐗囨暟鎹殑key
-                picDescFieldName:'pictitle',      // POST璇锋眰涓浘鐗囨弿杩扮殑key
-                maxSize: maxSize,                         // 鏂囦欢鐨勬渶澶т綋绉�,鍗曚綅M
-                compressSize:1,                   // 涓婁紶鍓嶅鏋滃浘鐗囦綋绉秴杩囪鍊硷紝浼氬厛鍘嬬缉,鍗曚綅M
-                maxNum:32,                         // 鍗曟鏈�澶у彲涓婁紶澶氬皯涓枃浠�
-                compressSide: 0,                 //绛夋瘮鍘嬬缉鐨勫熀鍑嗭紝0涓烘寜鐓ф渶闀胯竟锛�1涓烘寜鐓у搴︼紝2涓烘寜鐓ч珮搴�
-                compressLength: optImageCompressBorder        //鑳芥帴鍙楃殑鏈�澶ц竟闀匡紝瓒呰繃璇ュ�糉lash浼氳嚜鍔ㄧ瓑姣斿帇缂�
-            };
-            //鍥炶皟鍑芥暟闆嗗悎锛屾敮鎸佷紶閫掑嚱鏁板悕鐨勫瓧绗︿覆銆佸嚱鏁板彞鏌勪互鍙婂嚱鏁版湰韬笁绉嶇被鍨�
-            var callbacks={
-                selectFileCallback: function(selectFiles){                // 閫夋嫨鏂囦欢鐨勫洖璋�
-                    selectedImageCount += selectFiles.length;
-                    if(selectedImageCount) baidu.g("upload").style.display = "";
-                    dialog.buttons[0].setDisabled(true); //鍒濆鍖栨椂缃伆纭畾鎸夐挳
-                },
-                deleteFileCallback: function(delFiles){                 // 鍒犻櫎鏂囦欢鐨勫洖璋�
-                    selectedImageCount -= delFiles.length;
-                    if (!selectedImageCount) {
-                        baidu.g("upload").style.display = "none";
-                        dialog.buttons[0].setDisabled(false);         //娌℃湁閫夋嫨鍥剧墖鏃堕噸鏂扮偣浜寜閽�
-                    }
-                },
-                uploadCompleteCallback: function(data){               // 鍗曚釜鏂囦欢涓婁紶瀹屾垚鐨勫洖璋�
-                    try{var info = eval("(" + data.info + ")");
-                    info && imageUrls.push(info);
-                    selectedImageCount--;
-                    }catch(e){}
-                },
-                uploadErrorCallback: function (data){         // 鍗曚釜鏂囦欢涓婁紶澶辫触鐨勫洖璋�,
-                    console && console.log(data);
-                },
-                allCompleteCallback: function(){              // 鍏ㄩ儴涓婁紶瀹屾垚鏃剁殑鍥炶皟
-                    dialog.buttons[0].setDisabled(false);    //涓婁紶瀹屾瘯鍚庣偣浜寜閽�
-                }
-                //exceedFileCallback: 'exceedFileCallback',   // 鏂囦欢瓒呭嚭闄愬埗鐨勬渶澶т綋绉椂鐨勫洖璋�
-                //startUploadCallback: startUploadCallback    // 寮�濮嬩笂浼犳煇涓枃浠舵椂鐨勫洖璋�
-            };
-            wordImage.init(flashOptions,callbacks);
-        });
-
-    </script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/dialogs/wordimage/wordimage.js b/server/public/ueditor/dialogs/wordimage/wordimage.js
deleted file mode 100644
index e360263..0000000
--- a/server/public/ueditor/dialogs/wordimage/wordimage.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/**
- * Created by JetBrains PhpStorm.
- * User: taoqili
- * Date: 12-1-30
- * Time: 涓嬪崍12:50
- * To change this template use File | Settings | File Templates.
- */
-
-
-
-var wordImage = {};
-//(function(){
-var g = baidu.g,
-	flashObj,flashContainer;
-
-wordImage.init = function(opt, callbacks) {
-	showLocalPath("localPath");
-	//createCopyButton("clipboard","localPath");
-	createFlashUploader(opt, callbacks);
-	addUploadListener();
-	addOkListener();
-};
-
-function hideFlash(){
-    flashObj = null;
-    flashContainer.innerHTML = "";
-}
-function addOkListener() {
-	dialog.onok = function() {
-		if (!imageUrls.length) return;
-		var urlPrefix = editor.getOpt('imageUrlPrefix'),
-            images = domUtils.getElementsByTagName(editor.document,"img");
-        editor.fireEvent('saveScene');
-		for (var i = 0,img; img = images[i++];) {
-			var src = img.getAttribute("word_img");
-			if (!src) continue;
-			for (var j = 0,url; url = imageUrls[j++];) {
-				if (src.indexOf(url.original.replace(" ","")) != -1) {
-					img.src = urlPrefix + url.url;
-					img.setAttribute("_src", urlPrefix + url.url);  //鍚屾椂淇敼"_src"灞炴��
-					img.setAttribute("title",url.title);
-                    domUtils.removeAttributes(img, ["word_img","style","width","height"]);
-					editor.fireEvent("selectionchange");
-					break;
-				}
-			}
-		}
-        editor.fireEvent('saveScene');
-        hideFlash();
-	};
-    dialog.oncancel = function(){
-        hideFlash();
-    }
-}
-
-/**
- * 缁戝畾寮�濮嬩笂浼犱簨浠�
- */
-function addUploadListener() {
-	g("upload").onclick = function () {
-		flashObj.upload();
-		this.style.display = "none";
-	};
-}
-
-function showLocalPath(id) {
-    //鍗曞紶缂栬緫
-    var img = editor.selection.getRange().getClosedNode();
-    var images = editor.execCommand('wordimage');
-    if(images.length==1 || img && img.tagName == 'IMG'){
-        g(id).value = images[0];
-        return;
-    }
-	var path = images[0];
-    var leftSlashIndex  = path.lastIndexOf("/")||0,  //涓嶅悓鐗堟湰鐨刣oc鍜屾祻瑙堝櫒閮藉彲鑳藉奖鍝嶅埌杩欎釜绗﹀彿锛屾晠鐩存帴鍒ゆ柇涓ょ
-        rightSlashIndex = path.lastIndexOf("\\")||0,
-        separater = leftSlashIndex > rightSlashIndex ? "/":"\\" ;
-
-	path = path.substring(0, path.lastIndexOf(separater)+1);
-	g(id).value = path;
-}
-
-function createFlashUploader(opt, callbacks) {
-    //鐢变簬lang.flashI18n鏄潤鎬佸睘鎬э紝涓嶅彲浠ョ洿鎺ヨ繘琛屼慨鏀癸紝鍚﹀垯浼氬奖鍝嶅埌鍚庣画鍐呭
-    var i18n = utils.extend({},lang.flashI18n);
-    //澶勭悊鍥剧墖璧勬簮鍦板潃鐨勭紪鐮侊紝琛ュ叏绛夐棶棰�
-    for(var i in i18n){
-        if(!(i in {"lang":1,"uploadingTF":1,"imageTF":1,"textEncoding":1}) && i18n[i]){
-            i18n[i] = encodeURIComponent(editor.options.langPath + editor.options.lang + "/images/" + i18n[i]);
-        }
-    }
-    opt = utils.extend(opt,i18n,false);
-	var option = {
-		createOptions:{
-			id:'flash',
-			url:opt.flashUrl,
-			width:opt.width,
-			height:opt.height,
-			errorMessage:lang.flashError,
-			wmode:browser.safari ? 'transparent' : 'window',
-			ver:'10.0.0',
-			vars:opt,
-			container:opt.container
-		}
-	};
-
-	option = extendProperty(callbacks, option);
-	flashObj = new baidu.flash.imageUploader(option);
-    flashContainer = $G(opt.container);
-}
-
-function extendProperty(fromObj, toObj) {
-	for (var i in fromObj) {
-		if (!toObj[i]) {
-			toObj[i] = fromObj[i];
-		}
-	}
-	return toObj;
-}
-
-//})();
-
-function getPasteData(id) {
-	baidu.g("msg").innerHTML = lang.copySuccess + "</br>";
-	setTimeout(function() {
-		baidu.g("msg").innerHTML = "";
-	}, 5000);
-	return baidu.g(id).value;
-}
-
-function createCopyButton(id, dataFrom) {
-	baidu.swf.create({
-			id:"copyFlash",
-			url:"fClipboard_ueditor.swf",
-			width:"58",
-			height:"25",
-			errorMessage:"",
-			bgColor:"#CBCBCB",
-			wmode:"transparent",
-			ver:"10.0.0",
-			vars:{
-				tid:dataFrom
-			}
-		}, id
-	);
-
-	var clipboard = baidu.swf.getMovie("copyFlash");
-	var clipinterval = setInterval(function() {
-		if (clipboard && clipboard.flashInit) {
-			clearInterval(clipinterval);
-			clipboard.setHandCursor(true);
-			clipboard.setContentFuncName("getPasteData");
-			//clipboard.setMEFuncName("mouseEventHandler");
-		}
-	}, 500);
-}
-createCopyButton("clipboard", "localPath");
\ No newline at end of file
diff --git a/server/public/ueditor/index.html b/server/public/ueditor/index.html
deleted file mode 100644
index f02b43c..0000000
--- a/server/public/ueditor/index.html
+++ /dev/null
@@ -1,175 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <title>瀹屾暣demo</title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
-    <script type="text/javascript" charset="utf-8" src="ueditor.config.js"></script>
-    <script type="text/javascript" charset="utf-8" src="ueditor.all.min.js"> </script>
-    <!--寤鸿鎵嬪姩鍔犲湪璇█锛岄伩鍏嶅湪ie涓嬫湁鏃跺洜涓哄姞杞借瑷�澶辫触瀵艰嚧缂栬緫鍣ㄥ姞杞藉け璐�-->
-    <!--杩欓噷鍔犺浇鐨勮瑷�鏂囦欢浼氳鐩栦綘鍦ㄩ厤缃」鐩噷娣诲姞鐨勮瑷�绫诲瀷锛屾瘮濡備綘鍦ㄩ厤缃」鐩噷閰嶇疆鐨勬槸鑻辨枃锛岃繖閲屽姞杞界殑涓枃锛岄偅鏈�鍚庡氨鏄腑鏂�-->
-    <script type="text/javascript" charset="utf-8" src="lang/zh-cn/zh-cn.js"></script>
-
-    <style type="text/css">
-        div{
-            width:100%;
-        }
-    </style>
-</head>
-<body>
-<div>
-    <h1>瀹屾暣demo</h1>
-    <script id="editor" type="text/plain" style="width:1024px;height:500px;"></script>
-</div>
-<div id="btns">
-    <div>
-        <button onclick="getAllHtml()">鑾峰緱鏁翠釜html鐨勫唴瀹�</button>
-        <button onclick="getContent()">鑾峰緱鍐呭</button>
-        <button onclick="setContent()">鍐欏叆鍐呭</button>
-        <button onclick="setContent(true)">杩藉姞鍐呭</button>
-        <button onclick="getContentTxt()">鑾峰緱绾枃鏈�</button>
-        <button onclick="getPlainTxt()">鑾峰緱甯︽牸寮忕殑绾枃鏈�</button>
-        <button onclick="hasContent()">鍒ゆ柇鏄惁鏈夊唴瀹�</button>
-        <button onclick="setFocus()">浣跨紪杈戝櫒鑾峰緱鐒︾偣</button>
-        <button onmousedown="isFocus(event)">缂栬緫鍣ㄦ槸鍚﹁幏寰楃劍鐐�</button>
-        <button onmousedown="setblur(event)" >缂栬緫鍣ㄥけ鍘荤劍鐐�</button>
-
-    </div>
-    <div>
-        <button onclick="getText()">鑾峰緱褰撳墠閫変腑鐨勬枃鏈�</button>
-        <button onclick="insertHtml()">鎻掑叆缁欏畾鐨勫唴瀹�</button>
-        <button id="enable" onclick="setEnabled()">鍙互缂栬緫</button>
-        <button onclick="setDisabled()">涓嶅彲缂栬緫</button>
-        <button onclick=" UE.getEditor('editor').setHide()">闅愯棌缂栬緫鍣�</button>
-        <button onclick=" UE.getEditor('editor').setShow()">鏄剧ず缂栬緫鍣�</button>
-        <button onclick=" UE.getEditor('editor').setHeight(300)">璁剧疆楂樺害涓�300榛樿鍏抽棴浜嗚嚜鍔ㄩ暱楂�</button>
-    </div>
-
-    <div>
-        <button onclick="getLocalData()" >鑾峰彇鑽夌绠卞唴瀹�</button>
-        <button onclick="clearLocalData()" >娓呯┖鑽夌绠�</button>
-    </div>
-
-</div>
-<div>
-    <button onclick="createEditor()">
-    鍒涘缓缂栬緫鍣�</button>
-    <button onclick="deleteEditor()">
-    鍒犻櫎缂栬緫鍣�</button>
-</div>
-
-<script type="text/javascript">
-
-    //瀹炰緥鍖栫紪杈戝櫒
-    //寤鸿浣跨敤宸ュ巶鏂规硶getEditor鍒涘缓鍜屽紩鐢ㄧ紪杈戝櫒瀹炰緥锛屽鏋滃湪鏌愪釜闂寘涓嬪紩鐢ㄨ缂栬緫鍣紝鐩存帴璋冪敤UE.getEditor('editor')灏辫兘鎷垮埌鐩稿叧鐨勫疄渚�
-    var ue = UE.getEditor('editor');
-
-
-    function isFocus(e){
-        alert(UE.getEditor('editor').isFocus());
-        UE.dom.domUtils.preventDefault(e)
-    }
-    function setblur(e){
-        UE.getEditor('editor').blur();
-        UE.dom.domUtils.preventDefault(e)
-    }
-    function insertHtml() {
-        var value = prompt('鎻掑叆html浠g爜', '');
-        UE.getEditor('editor').execCommand('insertHtml', value)
-    }
-    function createEditor() {
-        enableBtn();
-        UE.getEditor('editor');
-    }
-    function getAllHtml() {
-        alert(UE.getEditor('editor').getAllHtml())
-    }
-    function getContent() {
-        var arr = [];
-        arr.push("浣跨敤editor.getContent()鏂规硶鍙互鑾峰緱缂栬緫鍣ㄧ殑鍐呭");
-        arr.push("鍐呭涓猴細");
-        arr.push(UE.getEditor('editor').getContent());
-        alert(arr.join("\n"));
-    }
-    function getPlainTxt() {
-        var arr = [];
-        arr.push("浣跨敤editor.getPlainTxt()鏂规硶鍙互鑾峰緱缂栬緫鍣ㄧ殑甯︽牸寮忕殑绾枃鏈唴瀹�");
-        arr.push("鍐呭涓猴細");
-        arr.push(UE.getEditor('editor').getPlainTxt());
-        alert(arr.join('\n'))
-    }
-    function setContent(isAppendTo) {
-        var arr = [];
-        arr.push("浣跨敤editor.setContent('娆㈣繋浣跨敤ueditor')鏂规硶鍙互璁剧疆缂栬緫鍣ㄧ殑鍐呭");
-        UE.getEditor('editor').setContent('娆㈣繋浣跨敤ueditor', isAppendTo);
-        alert(arr.join("\n"));
-    }
-    function setDisabled() {
-        UE.getEditor('editor').setDisabled('fullscreen');
-        disableBtn("enable");
-    }
-
-    function setEnabled() {
-        UE.getEditor('editor').setEnabled();
-        enableBtn();
-    }
-
-    function getText() {
-        //褰撲綘鐐瑰嚮鎸夐挳鏃剁紪杈戝尯鍩熷凡缁忓け鍘讳簡鐒︾偣锛屽鏋滅洿鎺ョ敤getText灏嗕笉浼氬緱鍒板唴瀹癸紝鎵�浠ヨ鍦ㄩ�夊洖鏉ワ紝鐒跺悗鍙栧緱鍐呭
-        var range = UE.getEditor('editor').selection.getRange();
-        range.select();
-        var txt = UE.getEditor('editor').selection.getText();
-        alert(txt)
-    }
-
-    function getContentTxt() {
-        var arr = [];
-        arr.push("浣跨敤editor.getContentTxt()鏂规硶鍙互鑾峰緱缂栬緫鍣ㄧ殑绾枃鏈唴瀹�");
-        arr.push("缂栬緫鍣ㄧ殑绾枃鏈唴瀹逛负锛�");
-        arr.push(UE.getEditor('editor').getContentTxt());
-        alert(arr.join("\n"));
-    }
-    function hasContent() {
-        var arr = [];
-        arr.push("浣跨敤editor.hasContents()鏂规硶鍒ゆ柇缂栬緫鍣ㄩ噷鏄惁鏈夊唴瀹�");
-        arr.push("鍒ゆ柇缁撴灉涓猴細");
-        arr.push(UE.getEditor('editor').hasContents());
-        alert(arr.join("\n"));
-    }
-    function setFocus() {
-        UE.getEditor('editor').focus();
-    }
-    function deleteEditor() {
-        disableBtn();
-        UE.getEditor('editor').destroy();
-    }
-    function disableBtn(str) {
-        var div = document.getElementById('btns');
-        var btns = UE.dom.domUtils.getElementsByTagName(div, "button");
-        for (var i = 0, btn; btn = btns[i++];) {
-            if (btn.id == str) {
-                UE.dom.domUtils.removeAttributes(btn, ["disabled"]);
-            } else {
-                btn.setAttribute("disabled", "true");
-            }
-        }
-    }
-    function enableBtn() {
-        var div = document.getElementById('btns');
-        var btns = UE.dom.domUtils.getElementsByTagName(div, "button");
-        for (var i = 0, btn; btn = btns[i++];) {
-            UE.dom.domUtils.removeAttributes(btn, ["disabled"]);
-        }
-    }
-
-    function getLocalData () {
-        alert(UE.getEditor('editor').execCommand( "getlocaldata" ));
-    }
-
-    function clearLocalData () {
-        UE.getEditor('editor').execCommand( "clearlocaldata" );
-        alert("宸叉竻绌鸿崏绋跨")
-    }
-</script>
-</body>
-</html>
\ No newline at end of file
diff --git a/server/public/ueditor/lang/en/en.js b/server/public/ueditor/lang/en/en.js
deleted file mode 100644
index c2bdbbb..0000000
--- a/server/public/ueditor/lang/en/en.js
+++ /dev/null
@@ -1,684 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: taoqili
- * Date: 12-6-12
- * Time: 涓嬪崍6:57
- * To change this template use File | Settings | File Templates.
- */
-UE.I18N['en'] = {
-    'labelMap':{
-        'anchor':'Anchor', 'undo':'Undo', 'redo':'Redo', 'bold':'Bold', 'indent':'Indent', 'snapscreen':'SnapScreen',
-        'italic':'Italic', 'underline':'Underline', 'strikethrough':'Strikethrough', 'subscript':'SubScript','fontborder':'text border',
-        'superscript':'SuperScript', 'formatmatch':'Format Match', 'source':'Source', 'blockquote':'BlockQuote',
-        'pasteplain':'PastePlain', 'selectall':'SelectAll', 'print':'Print', 'preview':'Preview',
-        'horizontal':'Horizontal', 'removeformat':'RemoveFormat', 'time':'Time', 'date':'Date',
-        'unlink':'Unlink', 'insertrow':'InsertRow', 'insertcol':'InsertCol', 'mergeright':'MergeRight', 'mergedown':'MergeDown',
-        'deleterow':'DeleteRow', 'deletecol':'DeleteCol', 'splittorows':'SplitToRows','insertcode':'insert code',
-        'splittocols':'SplitToCols', 'splittocells':'SplitToCells','deletecaption':'DeleteCaption','inserttitle':'InsertTitle',
-        'mergecells':'MergeCells', 'deletetable':'DeleteTable', 'cleardoc':'Clear', 'insertparagraphbeforetable':"InsertParagraphBeforeTable",
-        'fontfamily':'FontFamily', 'fontsize':'FontSize', 'paragraph':'Paragraph','simpleupload':'Single Image','insertimage':'Multi Image','edittable':'Edit Table', 'edittd':'Edit Td','link':'Link',
-        'emotion':'Emotion', 'spechars':'Spechars', 'searchreplace':'SearchReplace', 'map':'BaiduMap', 'gmap':'GoogleMap',
-        'insertvideo':'Video', 'help':'Help', 'justifyleft':'JustifyLeft', 'justifyright':'JustifyRight', 'justifycenter':'JustifyCenter',
-        'justifyjustify':'Justify', 'forecolor':'FontColor', 'backcolor':'BackColor', 'insertorderedlist':'OL',
-        'insertunorderedlist':'UL', 'fullscreen':'FullScreen', 'directionalityltr':'EnterFromLeft', 'directionalityrtl':'EnterFromRight',
-        'rowspacingtop':'RowSpacingTop', 'rowspacingbottom':'RowSpacingBottom', 'pagebreak':'PageBreak', 'insertframe':'Iframe', 'imagenone':'Default',
-        'imageleft':'ImageLeft', 'imageright':'ImageRight', 'attachment':'Attachment', 'imagecenter':'ImageCenter', 'wordimage':'WordImage',
-        'lineheight':'LineHeight','edittip':'EditTip','customstyle':'CustomStyle', 'scrawl':'Scrawl', 'autotypeset':'AutoTypeset',
-        'webapp':'WebAPP', 'touppercase':'UpperCase', 'tolowercase':'LowerCase','template':'Template','background':'Background','inserttable':'InsertTable',
-        'music':'Music', 'charts': 'charts','drafts': 'Load from Drafts'
-    },
-    'insertorderedlist':{
-        'num':'1,2,3...',
-        'num1':'1),2),3)...',
-        'num2':'(1),(2),(3)...',
-        'cn':'涓�,浜�,涓�....',
-        'cn1':'涓�),浜�),涓�)....',
-        'cn2':'(涓�),(浜�),(涓�)....',
-        'decimal':'1,2,3...',
-        'lower-alpha':'a,b,c...',
-        'lower-roman':'i,ii,iii...',
-        'upper-alpha':'A,B,C...',
-        'upper-roman':'I,II,III...'
-    },
-    'insertunorderedlist':{
-        'circle':'鈼� Circle',
-        'disc':'鈼� Circle dot',
-        'square':'鈻� Rectangle ',
-        'dash' :'锛� Dash',
-        'dot' : '銆俤ot'
-    },
-    'paragraph':{'p':'Paragraph', 'h1':'Title 1', 'h2':'Title 2', 'h3':'Title 3', 'h4':'Title 4', 'h5':'Title 5', 'h6':'Title 6'},
-    'fontfamily':{
-        'songti':'Sim Sun',
-        'kaiti':'Sim Kai',
-        'heiti':'Sim Hei',
-        'lishu':'Sim Li',
-        'yahei': 'Microsoft YaHei',
-        'andaleMono':'Andale Mono',
-        'arial': 'Arial',
-        'arialBlack':'Arial Black',
-        'comicSansMs':'Comic Sans MS',
-        'impact':'Impact',
-        'timesNewRoman':'Times New Roman'
-    },
-    'customstyle':{
-        'tc':'Title center',
-        'tl':'Title left',
-        'im':'Important',
-        'hi':'Highlight'
-    },
-    'autoupload': {
-        'exceedSizeError': 'File Size Exceed',
-        'exceedTypeError': 'File Type Not Allow',
-        'jsonEncodeError': 'Server Return Format Error',
-        'loading':"loading...",
-        'loadError':"load error",
-        'errorLoadConfig': 'Server config not loaded, upload can not work.',
-    },
-    'simpleupload':{
-        'exceedSizeError': 'File Size Exceed',
-        'exceedTypeError': 'File Type Not Allow',
-        'jsonEncodeError': 'Server Return Format Error',
-        'loading':"loading...",
-        'loadError':"load error",
-        'errorLoadConfig': 'Server config not loaded, upload can not work.',
-    },
-    'elementPathTip':"Path",
-    'wordCountTip':"Word Count",
-    'wordCountMsg':'{#count} characters entered,{#leave} left. ',
-    'wordOverFlowMsg':'<span style="color:red;">The number of characters has exceeded allowable maximum values, the server may refuse to save!</span>',
-    'ok':"OK",
-    'cancel':"Cancel",
-    'closeDialog':"closeDialog",
-    'tableDrag':"You must import the file uiUtils.js before drag! ",
-    'autofloatMsg':"The plugin AutoFloat depends on EditorUI!",
-    'loadconfigError': 'Get server config error.',
-    'loadconfigFormatError': 'Server config format error.',
-    'loadconfigHttpError': 'Get server config http error.',
-    'snapScreen_plugin':{
-        'browserMsg':"Only IE supported!",
-        'callBackErrorMsg':"The callback data is wrong,please check the config!",
-        'uploadErrorMsg':"Upload error,please check your server environment! "
-    },
-    'insertcode':{
-        'as3':'ActionScript 3',
-        'bash':'Bash/Shell',
-        'cpp':'C/C++',
-        'css':'CSS',
-        'cf':'ColdFusion',
-        'c#':'C#',
-        'delphi':'Delphi',
-        'diff':'Diff',
-        'erlang':'Erlang',
-        'groovy':'Groovy',
-        'html':'HTML',
-        'java':'Java',
-        'jfx':'JavaFX',
-        'js':'JavaScript',
-        'pl':'Perl',
-        'php':'PHP',
-        'plain':'Plain Text',
-        'ps':'PowerShell',
-        'python':'Python',
-        'ruby':'Ruby',
-        'scala':'Scala',
-        'sql':'SQL',
-        'vb':'Visual Basic',
-        'xml':'XML'
-    },
-    'confirmClear':"Do you confirm to clear the Document?",
-    'contextMenu':{
-        'delete':"Delete",
-        'selectall':"Select all",
-        'deletecode':"Delete Code",
-        'cleardoc':"Clear Document",
-        'confirmclear':"Do you confirm to clear the Document?",
-        'unlink':"Unlink",
-        'paragraph':"Paragraph",
-        'edittable':"Table property",
-        'aligncell':'Align cell',
-        'aligntable':'Table alignment',
-        'tableleft':'Left float',
-        'tablecenter':'Center',
-        'tableright':'Right float',
-        'aligntd':'Cell alignment',
-        'edittd':"Cell property",
-        'setbordervisible':'set table edge visible',
-        'table':"Table",
-        'justifyleft':'Justify Left',
-        'justifyright':'Justify Right',
-        'justifycenter':'Justify Center',
-        'justifyjustify':'Default',
-        'deletetable':"Delete table",
-        'insertparagraphbefore':"InsertedBeforeLine",
-        'insertparagraphafter':'InsertedAfterLine',
-        'inserttable':'Insert table',
-        'insertcaption':'Insert caption',
-        'deletecaption':'Delete Caption',
-        'inserttitle':'Insert Title',
-        'deletetitle':'Delete Title',
-        'inserttitlecol':'Insert Title Col',
-        'deletetitlecol':'Delete Title Col',
-        'averageDiseRow':'AverageDise Row',
-        'averageDisCol':'AverageDis Col',
-        'deleterow':"Delete row",
-        'deletecol':"Delete col",
-        'insertrow':"Insert row",
-        'insertcol':"Insert col",
-        'insertrownext':'Insert Row Next',
-        'insertcolnext':'Insert Col Next',
-        'mergeright':"Merge right",
-        'mergeleft':"Merge left",
-        'mergedown':"Merge down",
-        'mergecells':"Merge cells",
-        'splittocells':"Split to cells",
-        'splittocols':"Split to Cols",
-        'splittorows':"Split to Rows",
-        'tablesort':'Table sorting',
-        'enablesort':'Sorting Enable',
-        'disablesort':'Sorting Disable',
-        'reversecurrent':'Reverse current',
-        'orderbyasc':'Order By ASCII',
-        'reversebyasc':'Reverse By ASCII',
-        'orderbynum':'Order By Num',
-        'reversebynum':'Reverse By Num',
-        'borderbk':'Border shading',
-        'setcolor':'interlaced color',
-        'unsetcolor':'Cancel interlacedcolor',
-        'setbackground':'Background interlaced',
-        'unsetbackground':'Cancel Bk interlaced',
-        'redandblue':'Blue and red',
-        'threecolorgradient':'Three-color gradient',
-        'copy':"Copy(Ctrl + c)",
-        'copymsg':"Browser does not support. Please use 'Ctrl + c' instead!",
-        'paste':"Paste(Ctrl + v)",
-        'pastemsg':"Browser does not support. Please use 'Ctrl + v' instead!"
-    },
-    'copymsg': "Browser does not support. Please use 'Ctrl + c' instead!",
-    'pastemsg': "Browser does not support. Please use 'Ctrl + v' instead!",
-    'anthorMsg':"Link",
-    'clearColor':'Clear',
-    'standardColor':'Standard color',
-    'themeColor':'Theme color',
-    'property':'Property',
-    'default':'Default',
-    'modify':'Modify',
-    'justifyleft':'Justify Left',
-    'justifyright':'Justify Right',
-    'justifycenter':'Justify Center',
-    'justify':'Default',
-    'clear':'Clear',
-    'anchorMsg':'Anchor',
-    'delete':'Delete',
-    'clickToUpload':"Click to upload",
-    'unset':'Language hasn\'t been set!',
-    't_row':'row',
-    't_col':'col',
-    'pasteOpt':'Paste Option',
-    'pasteSourceFormat':"Keep Source Formatting",
-    'tagFormat':'Keep tag',
-    'pasteTextFormat':'Keep Text only',
-    'more':'More',
-    'autoTypeSet':{
-        'mergeLine':"Merge empty line",
-        'delLine':"Del empty line",
-        'removeFormat':"Remove format",
-        'indent':"Indent",
-        'alignment':"Alignment",
-        'imageFloat':"Image float",
-        'removeFontsize':"Remove font size",
-        'removeFontFamily':"Remove fontFamily",
-        'removeHtml':"Remove redundant HTML code",
-        'pasteFilter':"Paste filter",
-        'run':"Done",
-        'symbol':'Symbol Conversion',
-        'bdc2sb':'Full-width to Half-width',
-        'tobdc':'Half-width to Full-width'
-    },
-
-    'background':{
-        'static':{
-            'lang_background_normal':'Normal',
-            'lang_background_local':'Online',
-            'lang_background_set':'Background Set',
-            'lang_background_none':'No Background',
-            'lang_background_colored':'Colored Background',
-            'lang_background_color':'Color Set',
-            'lang_background_netimg':'Net-Image',
-            'lang_background_align':'Align Type',
-            'lang_background_position':'Position',
-            'repeatType':{'options':["Center", "Repeat-x", "Repeat-y", "Tile","Custom"]}
-        },
-        'noUploadImage':"No pictures has been uploaded锛�",
-        'toggleSelect':'Change the active state by click!\n Image Size: '
-    },
-    //===============dialog i18N=======================
-    'insertimage':{
-        'static':{
-            'lang_tab_remote':"Insert",
-            'lang_tab_upload':"Local",
-            'lang_tab_online':"Manager",
-            'lang_tab_search':"Search",
-            'lang_input_url':"Address:",
-            'lang_input_size':"Size:",
-            'lang_input_width':"Width",
-            'lang_input_height':"Height",
-            'lang_input_border':"Border:",
-            'lang_input_vhspace':"Margins:",
-            'lang_input_title':"Title:",
-            'lang_input_align':'Image Float Style:',
-            'lang_imgLoading':"Loading...",
-            'lang_start_upload':"Start Upload",
-            'lock':{'title':"Lock rate"},
-            'searchType':{'title':"ImageType", 'options':["News", "Wallpaper", "emotions", "photo"]},
-            'searchTxt':{'value':"Enter the search keyword!"},
-            'searchBtn':{'value':"Search"},
-            'searchReset':{'value':"Clear"},
-            'noneAlign':{'title':'None Float'},
-            'leftAlign':{'title':'Left Float'},
-            'rightAlign':{'title':'Right Float'},
-            'centerAlign':{'title':'Center In A Line'}
-        },
-        'uploadSelectFile':'Select File',
-        'uploadAddFile':'Add File',
-        'uploadStart':'Start Upload',
-        'uploadPause':'Pause Upload',
-        'uploadContinue':'Continue Upload',
-        'uploadRetry':'Retry Upload',
-        'uploadDelete':'Delete',
-        'uploadTurnLeft':'Turn Left',
-        'uploadTurnRight':'Turn Right',
-        'uploadPreview':'Doing Preview',
-        'uploadNoPreview':'Can Not Preview',
-        'updateStatusReady': 'Selected _ pictures, total _KB.',
-        'updateStatusConfirm': '_ uploaded successfully and _ upload failed',
-        'updateStatusFinish': 'Total _ pictures (_KB), _  uploaded successfully',
-        'updateStatusError': ' and _ upload failed',
-        'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player',
-        'errorLoadConfig': 'Server config not loaded, upload can not work.',
-        'errorExceedSize':'File Size Exceed',
-        'errorFileType':'File Type Not Allow',
-        'errorInterrupt':'File Upload Interrupted',
-        'errorUploadRetry':'Upload Error, Please Retry.',
-        'errorHttp':'Http Error',
-        'errorServerUpload':'Server Result Error.',
-        'remoteLockError':"Cannot Lock the Proportion between width and height",
-        'numError':"Please enter the correct Num. e.g 123,400",
-        'imageUrlError':"The image format may be wrong!",
-        'imageLoadError':"Error,please check the network or URL锛�",
-        'searchRemind':"Enter the search keyword!",
-        'searchLoading':"Image is loading,please wait...",
-        'searchRetry':" Sorry,can't find the image,please try again!"
-    },
-    'attachment':{
-        'static':{
-            'lang_tab_upload': 'Upload',
-            'lang_tab_online': 'Online',
-            'lang_start_upload':"Start upload",
-            'lang_drop_remind':"You can drop files here, a single maximum of 300 files"
-        },
-        'uploadSelectFile':'Select File',
-        'uploadAddFile':'Add File',
-        'uploadStart':'Start Upload',
-        'uploadPause':'Pause Upload',
-        'uploadContinue':'Continue Upload',
-        'uploadRetry':'Retry Upload',
-        'uploadDelete':'Delete',
-        'uploadTurnLeft':'Turn Left',
-        'uploadTurnRight':'Turn Right',
-        'uploadPreview':'Doing Preview',
-        'updateStatusReady': 'Selected _ files, total _KB.',
-        'updateStatusConfirm': '_ uploaded successfully and _ upload failed',
-        'updateStatusFinish': 'Total _ files (_KB), _  uploaded successfully',
-        'updateStatusError': ' and _ upload failed',
-        'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player',
-        'errorLoadConfig': 'Server config not loaded, upload can not work.',
-        'errorExceedSize':'File Size Exceed',
-        'errorFileType':'File Type Not Allow',
-        'errorInterrupt':'File Upload Interrupted',
-        'errorUploadRetry':'Upload Error, Please Retry.',
-        'errorHttp':'Http Error',
-        'errorServerUpload':'Server Result Error.'
-    },
-
-    'insertvideo':{
-        'static':{
-            'lang_tab_insertV':"Video",
-            'lang_tab_searchV':"Search",
-            'lang_tab_uploadV':"Upload",
-            'lang_video_url':" URL ",
-            'lang_video_size':"Video Size",
-            'lang_videoW':"Width",
-            'lang_videoH':"Height",
-            'lang_alignment':"Alignment",
-            'videoSearchTxt':{'value':"Enter the search keyword!"},
-            'videoType':{'options':["All", "Hot", "Entertainment", "Funny", "Sports", "Science", "variety"]},
-            'videoSearchBtn':{'value':"Search in Baidu"},
-            'videoSearchReset':{'value':"Clear result"},
-
-            'lang_input_fileStatus':' No file uploaded!',
-            'startUpload':{'style':"background:url(upload.png) no-repeat;"},
-
-            'lang_upload_size':"Video Size",
-            'lang_upload_width':"Width",
-            'lang_upload_height':"Height",
-            'lang_upload_alignment':"Alignment",
-            'lang_format_advice':"Recommends mp4 format."
-        },
-        'numError':"Please enter the correct Num. e.g 123,400",
-        'floatLeft':"Float left",
-        'floatRight':"Float right",
-        'default':"Default",
-        'block':"Display in block",
-        'urlError':"The video url format may be wrong!",
-        'loading':" &nbsp;The video is loading, please wait鈥�",
-        'clickToSelect':"Click to select",
-        'goToSource':'Visit source video ',
-        'noVideo':" &nbsp; &nbsp;Sorry,can't find the video,please try again!",
-
-        'browseFiles':'Open files',
-        'uploadSuccess':'Upload Successful!',
-        'delSuccessFile':'Remove from the success of the queue',
-        'delFailSaveFile':'Remove the save failed file',
-        'statusPrompt':' file(s) uploaded! ',
-        'flashVersionError':'The current Flash version is too low, please update FlashPlayer,then try again!',
-        'flashLoadingError':'The Flash failed loading! Please check the path or network state',
-        'fileUploadReady':'Wait for uploading...',
-        'delUploadQueue':'Remove from the uploading queue ',
-        'limitPrompt1':'Can not choose more than single',
-        'limitPrompt2':'file(s)锛丳lease choose again锛�',
-        'delFailFile':'Remove failure file',
-        'fileSizeLimit':'File size exceeds the limit锛�',
-        'emptyFile':'Can not upload an empty file锛�',
-        'fileTypeError':'File type error锛�',
-        'unknownError':'Unknown error锛�',
-        'fileUploading':'Uploading,please wait...',
-        'cancelUpload':'Cancel upload',
-        'netError':'Network error',
-        'failUpload':'Upload failed',
-        'serverIOError':'Server IO error锛�',
-        'noAuthority':'No Permission锛�',
-        'fileNumLimit':'Upload limit to the number',
-        'failCheck':'Authentication fails, the upload is skipped!',
-        'fileCanceling':'Cancel, please wait...',
-        'stopUploading':'Upload has stopped...',
-
-        'uploadSelectFile':'Select File',
-        'uploadAddFile':'Add File',
-        'uploadStart':'Start Upload',
-        'uploadPause':'Pause Upload',
-        'uploadContinue':'Continue Upload',
-        'uploadRetry':'Retry Upload',
-        'uploadDelete':'Delete',
-        'uploadTurnLeft':'Turn Left',
-        'uploadTurnRight':'Turn Right',
-        'uploadPreview':'Doing Preview',
-        'updateStatusReady': 'Selected _ files, total _KB.',
-        'updateStatusConfirm': '_ uploaded successfully and _ upload failed',
-        'updateStatusFinish': 'Total _ files (_KB), _  uploaded successfully',
-        'updateStatusError': ' and _ upload failed',
-        'errorNotSupport': 'WebUploader does not support the browser you are using. Please upgrade your browser or flash player',
-        'errorLoadConfig': 'Server config not loaded, upload can not work.',
-        'errorExceedSize':'File Size Exceed',
-        'errorFileType':'File Type Not Allow',
-        'errorInterrupt':'File Upload Interrupted',
-        'errorUploadRetry':'Upload Error, Please Retry.',
-        'errorHttp':'Http Error',
-        'errorServerUpload':'Server Result Error.'
-    },
-    'webapp':{
-        'tip1':"This function provided by Baidu APP,please apply for baidu APPKey webmaster first!",
-        'tip2':"And then open the file ueditor.config.js to set it! ",
-        'applyFor':"APPLY FOR",
-        'anthorApi':"Baidu API"
-    },
-    'template':{
-        'static':{
-            'lang_template_bkcolor':'Background Color',
-            'lang_template_clear' : 'Keep Content',
-            'lang_template_select':'Select Template'
-        },
-        'blank':"Blank",
-        'blog':"Blog",
-        'resume':"Resume",
-        'richText':"Rich Text",
-        'scrPapers':"Scientific Papers"
-    },
-    scrawl:{
-        'static':{
-            'lang_input_previousStep':"Previous",
-            'lang_input_nextsStep':"Next",
-            'lang_input_clear':'Clear',
-            'lang_input_addPic':'AddImage',
-            'lang_input_ScalePic':'ScaleImage',
-            'lang_input_removePic':'RemoveImage',
-            'J_imgTxt':{title:'Add background image'}
-        },
-        'noScarwl':"No paint, a white paper...",
-        'scrawlUpLoading':"Image is uploading, please wait...",
-        'continueBtn':"Try again",
-        'imageError':"Image failed to load!",
-        'backgroundUploading':'Image is uploading,please wait...'
-    },
-    'music':{
-        'static':{
-            'lang_input_tips':"Input singer/song/album, search you interested in music!",
-            'J_searchBtn':{value:'Search songs'}
-        },
-        'emptyTxt':'Not search to the relevant music results, please change a keyword try.',
-        'chapter':'Songs',
-        'singer':'Singer',
-        'special':'Album',
-        'listenTest':'Audition'
-    },
-    anchor:{
-        'static':{
-            'lang_input_anchorName':'Anchor Name:'
-        }
-    },
-    'charts':{
-        'static':{
-            'lang_data_source':'Data source:',
-            'lang_chart_format': 'Chart format:',
-            'lang_data_align': 'Align',
-            'lang_chart_align_same': 'Consistent with the X-axis Y-axis',
-            'lang_chart_align_reverse': 'X-axis Y-axis opposite',
-            'lang_chart_title': 'Title',
-            'lang_chart_main_title': 'main title:',
-            'lang_chart_sub_title': 'sub title:',
-            'lang_chart_x_title': 'X-axis title:',
-            'lang_chart_y_title': 'Y-axis title:',
-            'lang_chart_tip': 'Prompt',
-            'lang_cahrt_tip_prefix': 'prefix:',
-            'lang_cahrt_tip_description': '浠呴ゼ鍥炬湁鏁堬紝 褰撻紶鏍囩Щ鍔ㄥ埌楗煎浘涓浉搴旂殑鍧椾笂鏃讹紝鎻愮ず妗嗗唴鐨勬枃瀛楃殑鍓嶇紑',
-            'lang_chart_data_unit': 'Unit',
-            'lang_chart_data_unit_title': 'unit:',
-            'lang_chart_data_unit_description': '鏄剧ず鍦ㄦ瘡涓暟鎹偣涓婄殑鏁版嵁鐨勫崟浣嶏紝 姣斿锛� 娓╁害鐨勫崟浣� 鈩�',
-            'lang_chart_type': 'Chart type:',
-            'lang_prev_btn': 'Previous',
-            'lang_next_btn': 'Next'
-        }
-    },
-    emotion:{
-        'static':{
-            'lang_input_choice':'Choice',
-            'lang_input_Tuzki':'Tuzki',
-            'lang_input_lvdouwa':'LvDouWa',
-            'lang_input_BOBO':'BOBO',
-            'lang_input_babyCat':'BabyCat',
-            'lang_input_bubble':'Bubble',
-            'lang_input_youa':'YouA'
-        }
-    },
-    gmap:{
-        'static':{
-            'lang_input_address':'Address:',
-            'lang_input_search':'Search',
-            'address':{value:"Beijing"}
-        },
-        searchError:'Unable to locate the address!'
-    },
-    help:{
-        'static':{
-            'lang_input_about':'About',
-            'lang_input_shortcuts':'Shortcuts',
-            'lang_input_introduction':"UEditor is developed by Baidu Co.ltd.  It is lightweight, customizable , focusing on user experience and etc. , UEditor is based on open source BSD license , allowing free use and redistribution.",
-            'lang_Txt_shortcuts':'Shortcuts',
-            'lang_Txt_func':'Function',
-            'lang_Txt_bold':'Bold',
-            'lang_Txt_copy':'Copy',
-            'lang_Txt_cut':'Cut',
-            'lang_Txt_Paste':'Paste',
-            'lang_Txt_undo':'Undo',
-            'lang_Txt_redo':'Redo',
-            'lang_Txt_italic':'Italic',
-            'lang_Txt_underline':'Underline',
-            'lang_Txt_selectAll':'Select All',
-            'lang_Txt_visualEnter':'Submit',
-            'lang_Txt_fullscreen':'Fullscreen'
-        }
-    },
-    insertframe:{
-        'static':{
-            'lang_input_address':'Address锛�',
-            'lang_input_width':'Width锛�',
-            'lang_input_height':'height锛�',
-            'lang_input_isScroll':'Enable scrollbars锛�',
-            'lang_input_frameborder':'Show frame border锛�',
-            'lang_input_alignMode':'Alignment锛�',
-            'align':{title:"Alignment", options:["Default", "Left", "Right", "Center"]}
-        },
-        'enterAddress':'Please enter an address!'
-    },
-    link:{
-        'static':{
-            'lang_input_text':'Text锛�',
-            'lang_input_url':'URL锛�',
-            'lang_input_title':'Title锛�',
-            'lang_input_target':'open in new window锛�'
-        },
-        'validLink':'Supports only effective when a link is selected',
-        'httpPrompt':'The hyperlink you enter should start with "http|https|ftp://"!'
-    },
-    map:{
-        'static':{
-            lang_city:"City",
-            lang_address:"Address",
-            city:{value:"Beijing"},
-            lang_search:"Search",
-            lang_dynamicmap:"Dynamic map"
-        },
-        cityMsg:"Please enter the city name!",
-        errorMsg:"Can't find the place!"
-    },
-    searchreplace:{
-        'static':{
-            lang_tab_search:"Search",
-            lang_tab_replace:"Replace",
-            lang_search1:"Search",
-            lang_search2:"Search",
-            lang_replace:"Replace",
-            lang_searchReg:'Support regular expression ,which starts and ends with a slash ,for example "/expression/"',
-            lang_searchReg1:'Support regular expression ,which starts and ends with a slash ,for example "/expression/"',
-            lang_case_sensitive1:"Case sense",
-            lang_case_sensitive2:"Case sense",
-            nextFindBtn:{value:"Next"},
-            preFindBtn:{value:"Preview"},
-            nextReplaceBtn:{value:"Next"},
-            preReplaceBtn:{value:"Preview"},
-            repalceBtn:{value:"Replace"},
-            repalceAllBtn:{value:"Replace all"}
-        },
-        getEnd:"Has the search to the bottom!",
-        getStart:"Has the search to the top!",
-        countMsg:"Altogether replaced {#count} character(s)!"
-    },
-    snapscreen:{
-        'static':{
-            lang_showMsg:"You should install the UEditor screenshots program first!",
-            lang_download:"Download!",
-            lang_step1:"Step1:Download the program and then run it",
-            lang_step2:"Step2:After complete install,try to click the button again"
-        }
-    },
-    spechars:{
-        'static':{},
-        tsfh:"Special",
-        lmsz:"Roman",
-        szfh:"Numeral",
-        rwfh:"Japanese",
-        xlzm:"The Greek",
-        ewzm:"Russian",
-        pyzm:"Phonetic",
-        yyyb:"English",
-        zyzf:"Others"
-    },
-    'edittable':{
-        'static':{
-            'lang_tableStyle':'Table style',
-            'lang_insertCaption':'Add table header row',
-            'lang_insertTitle':'Add table title row',
-            'lang_insertTitleCol':'Add table title col',
-            'lang_tableSize':'Automatically adjust table size',
-            'lang_autoSizeContent':'Adaptive by form text',
-            'lang_orderbycontent':"Table of contents sortable",
-            'lang_autoSizePage':'Page width adaptive',
-            'lang_example':'Example',
-            'lang_borderStyle':'Table Border',
-            'lang_color':'Color:'
-        },
-        captionName:'Caption',
-        titleName:'Title',
-        cellsName:'text',
-        errorMsg:'There are merged cells, can not sort.'
-    },
-    'edittip':{
-        'static':{
-            lang_delRow:'Delete entire row',
-            lang_delCol:'Delete entire col'
-        }
-    },
-    'edittd':{
-        'static':{
-            lang_tdBkColor:'Background Color:'
-        }
-    },
-    'formula':{
-        'static':{
-        }
-    },
-    wordimage:{
-        'static':{
-            lang_resave:"The re-save step",
-            uploadBtn:{src:"upload.png", alt:"Upload"},
-            clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"},
-            lang_step:" 1. Click top button to copy the url and then open the dialog to paste it. 2. Open after choose photos uploaded process."
-        },
-        fileType:"Image",
-        flashError:"Flash initialization failed!",
-        netError:"Network error! Please try again!",
-        copySuccess:"URL has been copied!",
-
-        'flashI18n':{
-            lang:encodeURI( '{"UploadingState":"totalNum: ${a},uploadComplete: ${b}", "BeforeUpload":"waitingNum: ${a}", "ExceedSize":"Size exceed${a}", "ErrorInPreview":"Preview failed", "DefaultDescription":"Description", "LoadingImage":"Loading..."}' ),
-            uploadingTF:encodeURI( '{"font":"Arial", "size":12, "color":"0x000", "bold":"true", "italic":"false", "underline":"false"}' ),
-            imageTF:encodeURI( '{"font":"Arial", "size":11, "color":"red", "bold":"false", "italic":"false", "underline":"false"}' ),
-            textEncoding:"utf-8",
-            addImageSkinURL:"addImage.png",
-            allDeleteBtnUpSkinURL:"allDeleteBtnUpSkin.png",
-            allDeleteBtnHoverSkinURL:"allDeleteBtnHoverSkin.png",
-            rotateLeftBtnEnableSkinURL:"rotateLeftEnable.png",
-            rotateLeftBtnDisableSkinURL:"rotateLeftDisable.png",
-            rotateRightBtnEnableSkinURL:"rotateRightEnable.png",
-            rotateRightBtnDisableSkinURL:"rotateRightDisable.png",
-            deleteBtnEnableSkinURL:"deleteEnable.png",
-            deleteBtnDisableSkinURL:"deleteDisable.png",
-            backgroundURL:'',
-            listBackgroundURL:'',
-            buttonURL:'button.png'
-        }
-    },
-    'autosave': {
-        'success':'Local conservation success'
-    }
-};
diff --git a/server/public/ueditor/lang/en/images/addimage.png b/server/public/ueditor/lang/en/images/addimage.png
deleted file mode 100644
index 3a2fd17..0000000
--- a/server/public/ueditor/lang/en/images/addimage.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/alldeletebtnhoverskin.png b/server/public/ueditor/lang/en/images/alldeletebtnhoverskin.png
deleted file mode 100644
index 355eeab..0000000
--- a/server/public/ueditor/lang/en/images/alldeletebtnhoverskin.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/alldeletebtnupskin.png b/server/public/ueditor/lang/en/images/alldeletebtnupskin.png
deleted file mode 100644
index 61658ce..0000000
--- a/server/public/ueditor/lang/en/images/alldeletebtnupskin.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/background.png b/server/public/ueditor/lang/en/images/background.png
deleted file mode 100644
index d5bf5fd..0000000
--- a/server/public/ueditor/lang/en/images/background.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/button.png b/server/public/ueditor/lang/en/images/button.png
deleted file mode 100644
index 098874c..0000000
--- a/server/public/ueditor/lang/en/images/button.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/copy.png b/server/public/ueditor/lang/en/images/copy.png
deleted file mode 100644
index f982e8b..0000000
--- a/server/public/ueditor/lang/en/images/copy.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/deletedisable.png b/server/public/ueditor/lang/en/images/deletedisable.png
deleted file mode 100644
index c8ee750..0000000
--- a/server/public/ueditor/lang/en/images/deletedisable.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/deleteenable.png b/server/public/ueditor/lang/en/images/deleteenable.png
deleted file mode 100644
index 26acc88..0000000
--- a/server/public/ueditor/lang/en/images/deleteenable.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/listbackground.png b/server/public/ueditor/lang/en/images/listbackground.png
deleted file mode 100644
index 4f82ccd..0000000
--- a/server/public/ueditor/lang/en/images/listbackground.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/localimage.png b/server/public/ueditor/lang/en/images/localimage.png
deleted file mode 100644
index 12c8e6a..0000000
--- a/server/public/ueditor/lang/en/images/localimage.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/music.png b/server/public/ueditor/lang/en/images/music.png
deleted file mode 100644
index 2f495fe..0000000
--- a/server/public/ueditor/lang/en/images/music.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/rotateleftdisable.png b/server/public/ueditor/lang/en/images/rotateleftdisable.png
deleted file mode 100644
index 741526e..0000000
--- a/server/public/ueditor/lang/en/images/rotateleftdisable.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/rotateleftenable.png b/server/public/ueditor/lang/en/images/rotateleftenable.png
deleted file mode 100644
index e164ddb..0000000
--- a/server/public/ueditor/lang/en/images/rotateleftenable.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/rotaterightdisable.png b/server/public/ueditor/lang/en/images/rotaterightdisable.png
deleted file mode 100644
index 5a78c26..0000000
--- a/server/public/ueditor/lang/en/images/rotaterightdisable.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/rotaterightenable.png b/server/public/ueditor/lang/en/images/rotaterightenable.png
deleted file mode 100644
index d768531..0000000
--- a/server/public/ueditor/lang/en/images/rotaterightenable.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/en/images/upload.png b/server/public/ueditor/lang/en/images/upload.png
deleted file mode 100644
index 7bb15b3..0000000
--- a/server/public/ueditor/lang/en/images/upload.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/zh-cn/images/copy.png b/server/public/ueditor/lang/zh-cn/images/copy.png
deleted file mode 100644
index b2536aa..0000000
--- a/server/public/ueditor/lang/zh-cn/images/copy.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/zh-cn/images/localimage.png b/server/public/ueditor/lang/zh-cn/images/localimage.png
deleted file mode 100644
index 7303c36..0000000
--- a/server/public/ueditor/lang/zh-cn/images/localimage.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/zh-cn/images/music.png b/server/public/ueditor/lang/zh-cn/images/music.png
deleted file mode 100644
index 354edeb..0000000
--- a/server/public/ueditor/lang/zh-cn/images/music.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/zh-cn/images/upload.png b/server/public/ueditor/lang/zh-cn/images/upload.png
deleted file mode 100644
index 08d4d92..0000000
--- a/server/public/ueditor/lang/zh-cn/images/upload.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/lang/zh-cn/zh-cn.js b/server/public/ueditor/lang/zh-cn/zh-cn.js
deleted file mode 100644
index 10ff151..0000000
--- a/server/public/ueditor/lang/zh-cn/zh-cn.js
+++ /dev/null
@@ -1,669 +0,0 @@
-/**
- * Created with JetBrains PhpStorm.
- * User: taoqili
- * Date: 12-6-12
- * Time: 涓嬪崍5:02
- * To change this template use File | Settings | File Templates.
- */
-UE.I18N['zh-cn'] = {
-    'labelMap':{
-        'anchor':'閿氱偣', 'undo':'鎾ら攢', 'redo':'閲嶅仛', 'bold':'鍔犵矖', 'indent':'棣栬缂╄繘', 'snapscreen':'鎴浘',
-        'italic':'鏂滀綋', 'underline':'涓嬪垝绾�', 'strikethrough':'鍒犻櫎绾�', 'subscript':'涓嬫爣','fontborder':'瀛楃杈规',
-        'superscript':'涓婃爣', 'formatmatch':'鏍煎紡鍒�', 'source':'婧愪唬鐮�', 'blockquote':'寮曠敤',
-        'pasteplain':'绾枃鏈矘璐存ā寮�', 'selectall':'鍏ㄩ��', 'print':'鎵撳嵃', 'preview':'棰勮',
-        'horizontal':'鍒嗛殧绾�', 'removeformat':'娓呴櫎鏍煎紡', 'time':'鏃堕棿', 'date':'鏃ユ湡',
-        'unlink':'鍙栨秷閾炬帴', 'insertrow':'鍓嶆彃鍏ヨ', 'insertcol':'鍓嶆彃鍏ュ垪', 'mergeright':'鍙冲悎骞跺崟鍏冩牸', 'mergedown':'涓嬪悎骞跺崟鍏冩牸',
-        'deleterow':'鍒犻櫎琛�', 'deletecol':'鍒犻櫎鍒�', 'splittorows':'鎷嗗垎鎴愯',
-        'splittocols':'鎷嗗垎鎴愬垪', 'splittocells':'瀹屽叏鎷嗗垎鍗曞厓鏍�','deletecaption':'鍒犻櫎琛ㄦ牸鏍囬','inserttitle':'鎻掑叆鏍囬',
-        'mergecells':'鍚堝苟澶氫釜鍗曞厓鏍�', 'deletetable':'鍒犻櫎琛ㄦ牸', 'cleardoc':'娓呯┖鏂囨。','insertparagraphbeforetable':"琛ㄦ牸鍓嶆彃鍏ヨ",'insertcode':'浠g爜璇█',
-        'fontfamily':'瀛椾綋', 'fontsize':'瀛楀彿', 'paragraph':'娈佃惤鏍煎紡', 'simpleupload':'鍗曞浘涓婁紶', 'insertimage':'澶氬浘涓婁紶','edittable':'琛ㄦ牸灞炴��','edittd':'鍗曞厓鏍煎睘鎬�', 'link':'瓒呴摼鎺�',
-        'emotion':'琛ㄦ儏', 'spechars':'鐗规畩瀛楃', 'searchreplace':'鏌ヨ鏇挎崲', 'map':'Baidu鍦板浘', 'gmap':'Google鍦板浘',
-        'insertvideo':'瑙嗛', 'help':'甯姪', 'justifyleft':'灞呭乏瀵归綈', 'justifyright':'灞呭彸瀵归綈', 'justifycenter':'灞呬腑瀵归綈',
-        'justifyjustify':'涓ょ瀵归綈', 'forecolor':'瀛椾綋棰滆壊', 'backcolor':'鑳屾櫙鑹�', 'insertorderedlist':'鏈夊簭鍒楄〃',
-        'insertunorderedlist':'鏃犲簭鍒楄〃', 'fullscreen':'鍏ㄥ睆', 'directionalityltr':'浠庡乏鍚戝彸杈撳叆', 'directionalityrtl':'浠庡彸鍚戝乏杈撳叆',
-        'rowspacingtop':'娈靛墠璺�', 'rowspacingbottom':'娈靛悗璺�',  'pagebreak':'鍒嗛〉', 'insertframe':'鎻掑叆Iframe', 'imagenone':'榛樿',
-        'imageleft':'宸︽诞鍔�', 'imageright':'鍙虫诞鍔�', 'attachment':'闄勪欢', 'imagecenter':'灞呬腑', 'wordimage':'鍥剧墖杞瓨',
-        'lineheight':'琛岄棿璺�','edittip' :'缂栬緫鎻愮ず','customstyle':'鑷畾涔夋爣棰�', 'autotypeset':'鑷姩鎺掔増',
-        'webapp':'鐧惧害搴旂敤','touppercase':'瀛楁瘝澶у啓', 'tolowercase':'瀛楁瘝灏忓啓','background':'鑳屾櫙','template':'妯℃澘','scrawl':'娑傞甫',
-        'music':'闊充箰','inserttable':'鎻掑叆琛ㄦ牸','drafts': '浠庤崏绋跨鍔犺浇', 'charts': '鍥捐〃'
-    },
-    'insertorderedlist':{
-        'num':'1,2,3...',
-        'num1':'1),2),3)...',
-        'num2':'(1),(2),(3)...',
-        'cn':'涓�,浜�,涓�....',
-        'cn1':'涓�),浜�),涓�)....',
-        'cn2':'(涓�),(浜�),(涓�)....',
-        'decimal':'1,2,3...',
-        'lower-alpha':'a,b,c...',
-        'lower-roman':'i,ii,iii...',
-        'upper-alpha':'A,B,C...',
-        'upper-roman':'I,II,III...'
-    },
-    'insertunorderedlist':{
-        'circle':'鈼� 澶у渾鍦�',
-        'disc':'鈼� 灏忛粦鐐�',
-        'square':'鈻� 灏忔柟鍧� ',
-        'dash' :'鈥� 鐮存姌鍙�',
-        'dot':' 銆� 灏忓渾鍦�'
-    },
-    'paragraph':{'p':'娈佃惤', 'h1':'鏍囬 1', 'h2':'鏍囬 2', 'h3':'鏍囬 3', 'h4':'鏍囬 4', 'h5':'鏍囬 5', 'h6':'鏍囬 6'},
-    'fontfamily':{
-        'songti':'瀹嬩綋',
-        'kaiti':'妤蜂綋',
-        'heiti':'榛戜綋',
-        'lishu':'闅朵功',
-        'yahei':'寰蒋闆呴粦',
-        'andaleMono':'andale mono',
-        'arial': 'arial',
-        'arialBlack':'arial black',
-        'comicSansMs':'comic sans ms',
-        'impact':'impact',
-        'timesNewRoman':'times new roman'
-    },
-    'customstyle':{
-        'tc':'鏍囬灞呬腑',
-        'tl':'鏍囬灞呭乏',
-        'im':'寮鸿皟',
-        'hi':'鏄庢樉寮鸿皟'
-    },
-    'autoupload': {
-        'exceedSizeError': '鏂囦欢澶у皬瓒呭嚭闄愬埗',
-        'exceedTypeError': '鏂囦欢鏍煎紡涓嶅厑璁�',
-        'jsonEncodeError': '鏈嶅姟鍣ㄨ繑鍥炴牸寮忛敊璇�',
-        'loading':"姝e湪涓婁紶...",
-        'loadError':"涓婁紶閿欒",
-        'errorLoadConfig': '鍚庣閰嶇疆椤规病鏈夋甯稿姞杞斤紝涓婁紶鎻掍欢涓嶈兘姝e父浣跨敤锛�'
-    },
-    'simpleupload':{
-        'exceedSizeError': '鏂囦欢澶у皬瓒呭嚭闄愬埗',
-        'exceedTypeError': '鏂囦欢鏍煎紡涓嶅厑璁�',
-        'jsonEncodeError': '鏈嶅姟鍣ㄨ繑鍥炴牸寮忛敊璇�',
-        'loading':"姝e湪涓婁紶...",
-        'loadError':"涓婁紶閿欒",
-        'errorLoadConfig': '鍚庣閰嶇疆椤规病鏈夋甯稿姞杞斤紝涓婁紶鎻掍欢涓嶈兘姝e父浣跨敤锛�'
-    },
-    'elementPathTip':"鍏冪礌璺緞",
-    'wordCountTip':"瀛楁暟缁熻",
-    'wordCountMsg':'褰撳墠宸茶緭鍏#count}涓瓧绗�, 鎮ㄨ繕鍙互杈撳叆{#leave}涓瓧绗︺�� ',
-    'wordOverFlowMsg':'<span style="color:red;">瀛楁暟瓒呭嚭鏈�澶у厑璁稿�硷紝鏈嶅姟鍣ㄥ彲鑳芥嫆缁濅繚瀛橈紒</span>',
-    'ok':"纭",
-    'cancel':"鍙栨秷",
-    'closeDialog':"鍏抽棴瀵硅瘽妗�",
-    'tableDrag':"琛ㄦ牸鎷栧姩蹇呴』寮曞叆uiUtils.js鏂囦欢锛�",
-    'autofloatMsg':"宸ュ叿鏍忔诞鍔ㄤ緷璧栫紪杈戝櫒UI锛屾偍棣栧厛闇�瑕佸紩鍏I鏂囦欢!",
-    'loadconfigError': '鑾峰彇鍚庡彴閰嶇疆椤硅姹傚嚭閿欙紝涓婁紶鍔熻兘灏嗕笉鑳芥甯镐娇鐢紒',
-    'loadconfigFormatError': '鍚庡彴閰嶇疆椤硅繑鍥炴牸寮忓嚭閿欙紝涓婁紶鍔熻兘灏嗕笉鑳芥甯镐娇鐢紒',
-    'loadconfigHttpError': '璇锋眰鍚庡彴閰嶇疆椤筯ttp閿欒锛屼笂浼犲姛鑳藉皢涓嶈兘姝e父浣跨敤锛�',
-    'snapScreen_plugin':{
-        'browserMsg':"浠呮敮鎸両E娴忚鍣紒",
-        'callBackErrorMsg':"鏈嶅姟鍣ㄨ繑鍥炴暟鎹湁璇紝璇锋鏌ラ厤缃」涔嬪悗閲嶈瘯銆�",
-        'uploadErrorMsg':"鎴浘涓婁紶澶辫触锛岃妫�鏌ユ湇鍔″櫒绔幆澧�! "
-    },
-    'insertcode':{
-        'as3':'ActionScript 3',
-        'bash':'Bash/Shell',
-        'cpp':'C/C++',
-        'css':'CSS',
-        'cf':'ColdFusion',
-        'c#':'C#',
-        'delphi':'Delphi',
-        'diff':'Diff',
-        'erlang':'Erlang',
-        'groovy':'Groovy',
-        'html':'HTML',
-        'java':'Java',
-        'jfx':'JavaFX',
-        'js':'JavaScript',
-        'pl':'Perl',
-        'php':'PHP',
-        'plain':'Plain Text',
-        'ps':'PowerShell',
-        'python':'Python',
-        'ruby':'Ruby',
-        'scala':'Scala',
-        'sql':'SQL',
-        'vb':'Visual Basic',
-        'xml':'XML'
-    },
-    'confirmClear':"纭畾娓呯┖褰撳墠鏂囨。涔堬紵",
-    'contextMenu':{
-        'delete':"鍒犻櫎",
-        'selectall':"鍏ㄩ��",
-        'deletecode':"鍒犻櫎浠g爜",
-        'cleardoc':"娓呯┖鏂囨。",
-        'confirmclear':"纭畾娓呯┖褰撳墠鏂囨。涔堬紵",
-        'unlink':"鍒犻櫎瓒呴摼鎺�",
-        'paragraph':"娈佃惤鏍煎紡",
-        'edittable':"琛ㄦ牸灞炴��",
-        'aligntd':"鍗曞厓鏍煎榻愭柟寮�",
-        'aligntable':'琛ㄦ牸瀵归綈鏂瑰紡',
-        'tableleft':'宸︽诞鍔�',
-        'tablecenter':'灞呬腑鏄剧ず',
-        'tableright':'鍙虫诞鍔�',
-        'edittd':"鍗曞厓鏍煎睘鎬�",
-        'setbordervisible':'璁剧疆琛ㄦ牸杈圭嚎鍙',
-        'justifyleft':'宸﹀榻�',
-        'justifyright':'鍙冲榻�',
-        'justifycenter':'灞呬腑瀵归綈',
-        'justifyjustify':'涓ょ瀵归綈',
-        'table':"琛ㄦ牸",
-        'inserttable':'鎻掑叆琛ㄦ牸',
-        'deletetable':"鍒犻櫎琛ㄦ牸",
-        'insertparagraphbefore':"鍓嶆彃鍏ユ钀�",
-        'insertparagraphafter':'鍚庢彃鍏ユ钀�',
-        'deleterow':"鍒犻櫎褰撳墠琛�",
-        'deletecol':"鍒犻櫎褰撳墠鍒�",
-        'insertrow':"鍓嶆彃鍏ヨ",
-        'insertcol':"宸︽彃鍏ュ垪",
-        'insertrownext':'鍚庢彃鍏ヨ',
-        'insertcolnext':'鍙虫彃鍏ュ垪',
-        'insertcaption':'鎻掑叆琛ㄦ牸鍚嶇О',
-        'deletecaption':'鍒犻櫎琛ㄦ牸鍚嶇О',
-        'inserttitle':'鎻掑叆琛ㄦ牸鏍囬琛�',
-        'deletetitle':'鍒犻櫎琛ㄦ牸鏍囬琛�',
-        'inserttitlecol':'鎻掑叆琛ㄦ牸鏍囬鍒�',
-        'deletetitlecol':'鍒犻櫎琛ㄦ牸鏍囬鍒�',
-        'averageDiseRow':'骞冲潎鍒嗗竷鍚勮',
-        'averageDisCol':'骞冲潎鍒嗗竷鍚勫垪',
-        'mergeright':"鍚戝彸鍚堝苟",
-        'mergeleft':"鍚戝乏鍚堝苟",
-        'mergedown':"鍚戜笅鍚堝苟",
-        'mergecells':"鍚堝苟鍗曞厓鏍�",
-        'splittocells':"瀹屽叏鎷嗗垎鍗曞厓鏍�",
-        'splittocols':"鎷嗗垎鎴愬垪",
-        'splittorows':"鎷嗗垎鎴愯",
-        'tablesort':'琛ㄦ牸鎺掑簭',
-        'enablesort':'璁剧疆琛ㄦ牸鍙帓搴�',
-        'disablesort':'鍙栨秷琛ㄦ牸鍙帓搴�',
-        'reversecurrent':'閫嗗簭褰撳墠',
-        'orderbyasc':'鎸堿SCII瀛楃鍗囧簭',
-        'reversebyasc':'鎸堿SCII瀛楃闄嶅簭',
-        'orderbynum':'鎸夋暟鍊煎ぇ灏忓崌搴�',
-        'reversebynum':'鎸夋暟鍊煎ぇ灏忛檷搴�',
-        'borderbk':'杈规搴曠汗',
-        'setcolor':'琛ㄦ牸闅旇鍙樿壊',
-        'unsetcolor':'鍙栨秷琛ㄦ牸闅旇鍙樿壊',
-        'setbackground':'閫夊尯鑳屾櫙闅旇',
-        'unsetbackground':'鍙栨秷閫夊尯鑳屾櫙',
-        'redandblue':'绾㈣摑鐩搁棿',
-        'threecolorgradient':'涓夎壊娓愬彉',
-        'copy':"澶嶅埗(Ctrl + c)",
-        'copymsg': "娴忚鍣ㄤ笉鏀寔,璇蜂娇鐢� 'Ctrl + c'",
-        'paste':"绮樿创(Ctrl + v)",
-         'pastemsg': "娴忚鍣ㄤ笉鏀寔,璇蜂娇鐢� 'Ctrl + v'"
-    },
-    'copymsg': "娴忚鍣ㄤ笉鏀寔,璇蜂娇鐢� 'Ctrl + c'",
-    'pastemsg': "娴忚鍣ㄤ笉鏀寔,璇蜂娇鐢� 'Ctrl + v'",
-    'anthorMsg':"閾炬帴",
-    'clearColor':'娓呯┖棰滆壊',
-    'standardColor':'鏍囧噯棰滆壊',
-    'themeColor':'涓婚棰滆壊',
-    'property':'灞炴��',
-    'default':'榛樿',
-    'modify':'淇敼',
-    'justifyleft':'宸﹀榻�',
-    'justifyright':'鍙冲榻�',
-    'justifycenter':'灞呬腑',
-    'justify':'榛樿',
-    'clear':'娓呴櫎',
-    'anchorMsg':'閿氱偣',
-    'delete':'鍒犻櫎',
-    'clickToUpload':"鐐瑰嚮涓婁紶",
-    'unset':'灏氭湭璁剧疆璇█鏂囦欢',
-    't_row':'琛�',
-    't_col':'鍒�',
-    'more':'鏇村',
-    'pasteOpt':'绮樿创閫夐」',
-    'pasteSourceFormat':"淇濈暀婧愭牸寮�",
-    'tagFormat':'鍙繚鐣欐爣绛�',
-    'pasteTextFormat':'鍙繚鐣欐枃鏈�',
-    'autoTypeSet':{
-        'mergeLine':"鍚堝苟绌鸿",
-        'delLine':"娓呴櫎绌鸿",
-        'removeFormat':"娓呴櫎鏍煎紡",
-        'indent':"棣栬缂╄繘",
-        'alignment':"瀵归綈鏂瑰紡",
-        'imageFloat':"鍥剧墖娴姩",
-        'removeFontsize':"娓呴櫎瀛楀彿",
-        'removeFontFamily':"娓呴櫎瀛椾綋",
-        'removeHtml':"娓呴櫎鍐椾綑HTML浠g爜",
-        'pasteFilter':"绮樿创杩囨护",
-        'run':"鎵ц",
-        'symbol':'绗﹀彿杞崲',
-        'bdc2sb':'鍏ㄨ杞崐瑙�',
-        'tobdc':'鍗婅杞叏瑙�'
-    },
-
-    'background':{
-        'static':{
-            'lang_background_normal':'鑳屾櫙璁剧疆',
-            'lang_background_local':'鍦ㄧ嚎鍥剧墖',
-            'lang_background_set':'閫夐」',
-            'lang_background_none':'鏃犺儗鏅壊',
-            'lang_background_colored':'鏈夎儗鏅壊',
-            'lang_background_color':'棰滆壊璁剧疆',
-            'lang_background_netimg':'缃戠粶鍥剧墖',
-            'lang_background_align':'瀵归綈鏂瑰紡',
-            'lang_background_position':'绮剧‘瀹氫綅',
-            'repeatType':{'options':["灞呬腑", "妯悜閲嶅", "绾靛悜閲嶅", "骞抽摵","鑷畾涔�"]}
-
-        },
-        'noUploadImage':"褰撳墠鏈笂浼犺繃浠讳綍鍥剧墖锛�",
-        'toggleSelect':"鍗曞嚮鍙垏鎹㈤�変腑鐘舵�乗n鍘熷浘灏哄: "
-    },
-    //===============dialog i18N=======================
-    'insertimage':{
-        'static':{
-            'lang_tab_remote':"鎻掑叆鍥剧墖", //鑺傜偣
-            'lang_tab_upload':"鏈湴涓婁紶",
-            'lang_tab_online':"鍦ㄧ嚎绠$悊",
-            'lang_tab_search':"鍥剧墖鎼滅储",
-            'lang_input_url':"鍦� 鍧�锛�",
-            'lang_input_size':"澶� 灏忥細",
-            'lang_input_width':"瀹藉害",
-            'lang_input_height':"楂樺害",
-            'lang_input_border':"杈� 妗嗭細",
-            'lang_input_vhspace':"杈� 璺濓細",
-            'lang_input_title':"鎻� 杩帮細",
-            'lang_input_align':'鍥剧墖娴姩鏂瑰紡锛�',
-            'lang_imgLoading':"銆�鍥剧墖鍔犺浇涓�︹��",
-            'lang_start_upload':"寮�濮嬩笂浼�",
-            'lock':{'title':"閿佸畾瀹介珮姣斾緥"}, //灞炴��
-            'searchType':{'title':"鍥剧墖绫诲瀷", 'options':["鏂伴椈", "澹佺焊", "琛ㄦ儏", "澶村儚"]}, //select鐨刼ption
-            'searchTxt':{'value':"璇疯緭鍏ユ悳绱㈠叧閿瘝"},
-            'searchBtn':{'value':"鐧惧害涓�涓�"},
-            'searchReset':{'value':"娓呯┖鎼滅储"},
-            'noneAlign':{'title':'鏃犳诞鍔�'},
-            'leftAlign':{'title':'宸︽诞鍔�'},
-            'rightAlign':{'title':'鍙虫诞鍔�'},
-            'centerAlign':{'title':'灞呬腑鐙崰涓�琛�'}
-        },
-        'uploadSelectFile':'鐐瑰嚮閫夋嫨鍥剧墖',
-        'uploadAddFile':'缁х画娣诲姞',
-        'uploadStart':'寮�濮嬩笂浼�',
-        'uploadPause':'鏆傚仠涓婁紶',
-        'uploadContinue':'缁х画涓婁紶',
-        'uploadRetry':'閲嶈瘯涓婁紶',
-        'uploadDelete':'鍒犻櫎',
-        'uploadTurnLeft':'鍚戝乏鏃嬭浆',
-        'uploadTurnRight':'鍚戝彸鏃嬭浆',
-        'uploadPreview':'棰勮涓�',
-        'uploadNoPreview':'涓嶈兘棰勮',
-        'updateStatusReady': '閫変腑_寮犲浘鐗囷紝鍏盻KB銆�',
-        'updateStatusConfirm': '宸叉垚鍔熶笂浼燺寮犵収鐗囷紝_寮犵収鐗囦笂浼犲け璐�',
-        'updateStatusFinish': '鍏盻寮狅紙_KB锛夛紝_寮犱笂浼犳垚鍔�',
-        'updateStatusError': '锛宊寮犱笂浼犲け璐ャ��',
-        'errorNotSupport': 'WebUploader 涓嶆敮鎸佹偍鐨勬祻瑙堝櫒锛佸鏋滀綘浣跨敤鐨勬槸IE娴忚鍣紝璇峰皾璇曞崌绾� flash 鎾斁鍣ㄣ��',
-        'errorLoadConfig': '鍚庣閰嶇疆椤规病鏈夋甯稿姞杞斤紝涓婁紶鎻掍欢涓嶈兘姝e父浣跨敤锛�',
-        'errorExceedSize':'鏂囦欢澶у皬瓒呭嚭',
-        'errorFileType':'鏂囦欢鏍煎紡涓嶅厑璁�',
-        'errorInterrupt':'鏂囦欢浼犺緭涓柇',
-        'errorUploadRetry':'涓婁紶澶辫触锛岃閲嶈瘯',
-        'errorHttp':'http璇锋眰閿欒',
-        'errorServerUpload':'鏈嶅姟鍣ㄨ繑鍥炲嚭閿�',
-        'remoteLockError':"瀹介珮涓嶆纭�,涓嶈兘鎵�瀹氭瘮渚�",
-        'numError':"璇疯緭鍏ユ纭殑闀垮害鎴栬�呭搴﹀�硷紒渚嬪锛�123锛�400",
-        'imageUrlError':"涓嶅厑璁哥殑鍥剧墖鏍煎紡鎴栬�呭浘鐗囧煙锛�",
-        'imageLoadError':"鍥剧墖鍔犺浇澶辫触锛佽妫�鏌ラ摼鎺ュ湴鍧�鎴栫綉缁滅姸鎬侊紒",
-        'searchRemind':"璇疯緭鍏ユ悳绱㈠叧閿瘝",
-        'searchLoading':"鍥剧墖鍔犺浇涓紝璇风◢鍚庘�︹��",
-        'searchRetry':" :( 锛屾姳姝夛紝娌℃湁鎵惧埌鍥剧墖锛佽閲嶈瘯涓�娆★紒"
-    },
-    'attachment':{
-        'static':{
-            'lang_tab_upload': '涓婁紶闄勪欢',
-            'lang_tab_online': '鍦ㄧ嚎闄勪欢',
-            'lang_start_upload':"寮�濮嬩笂浼�",
-            'lang_drop_remind':"鍙互灏嗘枃浠舵嫋鍒拌繖閲岋紝鍗曟鏈�澶氬彲閫�100涓枃浠�"
-        },
-        'uploadSelectFile':'鐐瑰嚮閫夋嫨鏂囦欢',
-        'uploadAddFile':'缁х画娣诲姞',
-        'uploadStart':'寮�濮嬩笂浼�',
-        'uploadPause':'鏆傚仠涓婁紶',
-        'uploadContinue':'缁х画涓婁紶',
-        'uploadRetry':'閲嶈瘯涓婁紶',
-        'uploadDelete':'鍒犻櫎',
-        'uploadTurnLeft':'鍚戝乏鏃嬭浆',
-        'uploadTurnRight':'鍚戝彸鏃嬭浆',
-        'uploadPreview':'棰勮涓�',
-        'updateStatusReady': '閫変腑_涓枃浠讹紝鍏盻KB銆�',
-        'updateStatusConfirm': '宸叉垚鍔熶笂浼燺涓枃浠讹紝_涓枃浠朵笂浼犲け璐�',
-        'updateStatusFinish': '鍏盻涓紙_KB锛夛紝_涓笂浼犳垚鍔�',
-        'updateStatusError': '锛宊寮犱笂浼犲け璐ャ��',
-        'errorNotSupport': 'WebUploader 涓嶆敮鎸佹偍鐨勬祻瑙堝櫒锛佸鏋滀綘浣跨敤鐨勬槸IE娴忚鍣紝璇峰皾璇曞崌绾� flash 鎾斁鍣ㄣ��',
-        'errorLoadConfig': '鍚庣閰嶇疆椤规病鏈夋甯稿姞杞斤紝涓婁紶鎻掍欢涓嶈兘姝e父浣跨敤锛�',
-        'errorExceedSize':'鏂囦欢澶у皬瓒呭嚭',
-        'errorFileType':'鏂囦欢鏍煎紡涓嶅厑璁�',
-        'errorInterrupt':'鏂囦欢浼犺緭涓柇',
-        'errorUploadRetry':'涓婁紶澶辫触锛岃閲嶈瘯',
-        'errorHttp':'http璇锋眰閿欒',
-        'errorServerUpload':'鏈嶅姟鍣ㄨ繑鍥炲嚭閿�'
-    },
-    'insertvideo':{
-        'static':{
-            'lang_tab_insertV':"鎻掑叆瑙嗛",
-            'lang_tab_searchV':"鎼滅储瑙嗛",
-            'lang_tab_uploadV':"涓婁紶瑙嗛",
-            'lang_video_url':"瑙嗛缃戝潃",
-            'lang_video_size':"瑙嗛灏哄",
-            'lang_videoW':"瀹藉害",
-            'lang_videoH':"楂樺害",
-            'lang_alignment':"瀵归綈鏂瑰紡",
-            'videoSearchTxt':{'value':"璇疯緭鍏ユ悳绱㈠叧閿瓧锛�"},
-            'videoType':{'options':["鍏ㄩ儴", "鐑棬", "濞变箰", "鎼炵瑧", "浣撹偛", "绉戞妧", "缁艰壓"]},
-            'videoSearchBtn':{'value':"鐧惧害涓�涓�"},
-            'videoSearchReset':{'value':"娓呯┖缁撴灉"},
-
-            'lang_input_fileStatus':' 褰撳墠鏈笂浼犳枃浠�',
-            'startUpload':{'style':"background:url(upload.png) no-repeat;"},
-
-            'lang_upload_size':"瑙嗛灏哄",
-            'lang_upload_width':"瀹藉害",
-            'lang_upload_height':"楂樺害",
-            'lang_upload_alignment':"瀵归綈鏂瑰紡",
-            'lang_format_advice':"寤鸿浣跨敤mp4鏍煎紡."
-
-        },
-        'numError':"璇疯緭鍏ユ纭殑鏁板�硷紝濡�123,400",
-        'floatLeft':"宸︽诞鍔�",
-        'floatRight':"鍙虫诞鍔�",
-        '"default"':"榛樿",
-        'block':"鐙崰涓�琛�",
-        'urlError':"杈撳叆鐨勮棰戝湴鍧�鏈夎锛岃妫�鏌ュ悗鍐嶈瘯锛�",
-        'loading':" &nbsp;瑙嗛鍔犺浇涓紝璇风瓑寰呪�︹��",
-        'clickToSelect':"鐐瑰嚮閫変腑",
-        'goToSource':'璁块棶婧愯棰�',
-        'noVideo':" &nbsp; &nbsp;鎶辨瓑锛屾壘涓嶅埌瀵瑰簲鐨勮棰戯紝璇烽噸璇曪紒",
-
-        'browseFiles':'娴忚鏂囦欢',
-        'uploadSuccess':'涓婁紶鎴愬姛!',
-        'delSuccessFile':'浠庢垚鍔熼槦鍒椾腑绉婚櫎',
-        'delFailSaveFile':'绉婚櫎淇濆瓨澶辫触鏂囦欢',
-        'statusPrompt':' 涓枃浠跺凡涓婁紶锛� ',
-        'flashVersionError':'褰撳墠Flash鐗堟湰杩囦綆锛岃鏇存柊FlashPlayer鍚庨噸璇曪紒',
-        'flashLoadingError':'Flash鍔犺浇澶辫触!璇锋鏌ヨ矾寰勬垨缃戠粶鐘舵��',
-        'fileUploadReady':'绛夊緟涓婁紶鈥︹��',
-        'delUploadQueue':'浠庝笂浼犻槦鍒椾腑绉婚櫎',
-        'limitPrompt1':'鍗曟涓嶈兘閫夋嫨瓒呰繃',
-        'limitPrompt2':'涓枃浠讹紒璇烽噸鏂伴�夋嫨锛�',
-        'delFailFile':'绉婚櫎澶辫触鏂囦欢',
-        'fileSizeLimit':'鏂囦欢澶у皬瓒呭嚭闄愬埗锛�',
-        'emptyFile':'绌烘枃浠舵棤娉曚笂浼狅紒',
-        'fileTypeError':'鏂囦欢绫诲瀷涓嶅厑璁革紒',
-        'unknownError':'鏈煡閿欒锛�',
-        'fileUploading':'涓婁紶涓紝璇风瓑寰呪�︹��',
-        'cancelUpload':'鍙栨秷涓婁紶',
-        'netError':'缃戠粶閿欒',
-        'failUpload':'涓婁紶澶辫触!',
-        'serverIOError':'鏈嶅姟鍣↖O閿欒锛�',
-        'noAuthority':'鏃犳潈闄愶紒',
-        'fileNumLimit':'涓婁紶涓暟闄愬埗',
-        'failCheck':'楠岃瘉澶辫触锛屾湰娆′笂浼犺璺宠繃锛�',
-        'fileCanceling':'鍙栨秷涓紝璇风瓑寰呪�︹��',
-        'stopUploading':'涓婁紶宸插仠姝⑩�︹��',
-
-        'uploadSelectFile':'鐐瑰嚮閫夋嫨鏂囦欢',
-        'uploadAddFile':'缁х画娣诲姞',
-        'uploadStart':'寮�濮嬩笂浼�',
-        'uploadPause':'鏆傚仠涓婁紶',
-        'uploadContinue':'缁х画涓婁紶',
-        'uploadRetry':'閲嶈瘯涓婁紶',
-        'uploadDelete':'鍒犻櫎',
-        'uploadTurnLeft':'鍚戝乏鏃嬭浆',
-        'uploadTurnRight':'鍚戝彸鏃嬭浆',
-        'uploadPreview':'棰勮涓�',
-        'updateStatusReady': '閫変腑_涓枃浠讹紝鍏盻KB銆�',
-        'updateStatusConfirm': '鎴愬姛涓婁紶_涓紝_涓け璐�',
-        'updateStatusFinish': '鍏盻涓�(_KB)锛宊涓垚鍔熶笂浼�',
-        'updateStatusError': '锛宊寮犱笂浼犲け璐ャ��',
-        'errorNotSupport': 'WebUploader 涓嶆敮鎸佹偍鐨勬祻瑙堝櫒锛佸鏋滀綘浣跨敤鐨勬槸IE娴忚鍣紝璇峰皾璇曞崌绾� flash 鎾斁鍣ㄣ��',
-        'errorLoadConfig': '鍚庣閰嶇疆椤规病鏈夋甯稿姞杞斤紝涓婁紶鎻掍欢涓嶈兘姝e父浣跨敤锛�',
-        'errorExceedSize':'鏂囦欢澶у皬瓒呭嚭',
-        'errorFileType':'鏂囦欢鏍煎紡涓嶅厑璁�',
-        'errorInterrupt':'鏂囦欢浼犺緭涓柇',
-        'errorUploadRetry':'涓婁紶澶辫触锛岃閲嶈瘯',
-        'errorHttp':'http璇锋眰閿欒',
-        'errorServerUpload':'鏈嶅姟鍣ㄨ繑鍥炲嚭閿�'
-    },
-    'webapp':{
-        'tip1':"鏈姛鑳界敱鐧惧害APP鎻愪緵锛屽鐪嬪埌姝ら〉闈紝璇峰悇浣嶇珯闀块鍏堢敵璇风櫨搴PPKey!",
-        'tip2':"鐢宠瀹屾垚涔嬪悗璇疯嚦ueditor.config.js涓厤缃幏寰楃殑appkey! ",
-        'applyFor':"鐐规鐢宠",
-        'anthorApi':"鐧惧害API"
-    },
-    'template':{
-        'static':{
-            'lang_template_bkcolor':'鑳屾櫙棰滆壊',
-            'lang_template_clear' : '淇濈暀鍘熸湁鍐呭',
-            'lang_template_select' : '閫夋嫨妯℃澘'
-        },
-        'blank':"绌虹櫧鏂囨。",
-        'blog':"鍗氬鏂囩珷",
-        'resume':"涓汉绠�鍘�",
-        'richText':"鍥炬枃娣锋帓",
-        'sciPapers':"绉戞妧璁烘枃"
-
-
-    },
-    'scrawl':{
-        'static':{
-            'lang_input_previousStep':"涓婁竴姝�",
-            'lang_input_nextsStep':"涓嬩竴姝�",
-            'lang_input_clear':'娓呯┖',
-            'lang_input_addPic':'娣诲姞鑳屾櫙',
-            'lang_input_ScalePic':'缂╂斁鑳屾櫙',
-            'lang_input_removePic':'鍒犻櫎鑳屾櫙',
-            'J_imgTxt':{title:'娣诲姞鑳屾櫙鍥剧墖'}
-        },
-        'noScarwl':"灏氭湭浣滅敾锛岀櫧绾镐竴寮爚",
-        'scrawlUpLoading':"娑傞甫涓婁紶涓�,鍒�ュ摝~",
-        'continueBtn':"缁х画",
-        'imageError':"绯熺硶锛屽浘鐗囪鍙栧け璐ヤ簡锛�",
-        'backgroundUploading':'鑳屾櫙鍥剧墖涓婁紶涓�,鍒�ュ摝~'
-    },
-    'music':{
-        'static':{
-            'lang_input_tips':"杈撳叆姝屾墜/姝屾洸/涓撹緫锛屾悳绱㈡偍鎰熷叴瓒g殑闊充箰锛�",
-            'J_searchBtn':{value:'鎼滅储姝屾洸'}
-        },
-        'emptyTxt':'鏈悳绱㈠埌鐩稿叧闊充箰缁撴灉锛岃鎹竴涓叧閿瘝璇曡瘯銆�',
-        'chapter':'姝屾洸',
-        'singer':'姝屾墜',
-        'special':'涓撹緫',
-        'listenTest':'璇曞惉'
-    },
-    'anchor':{
-        'static':{
-            'lang_input_anchorName':'閿氱偣鍚嶅瓧锛�'
-        }
-    },
-    'charts':{
-        'static':{
-            'lang_data_source':'鏁版嵁婧愶細',
-            'lang_chart_format': '鍥捐〃鏍煎紡锛�',
-            'lang_data_align': '鏁版嵁瀵归綈鏂瑰紡',
-            'lang_chart_align_same': '鏁版嵁婧愪笌鍥捐〃X杞碮杞翠竴鑷�',
-            'lang_chart_align_reverse': '鏁版嵁婧愪笌鍥捐〃X杞碮杞寸浉鍙�',
-            'lang_chart_title': '鍥捐〃鏍囬',
-            'lang_chart_main_title': '涓绘爣棰橈細',
-            'lang_chart_sub_title': '瀛愭爣棰橈細',
-            'lang_chart_x_title': 'X杞存爣棰橈細',
-            'lang_chart_y_title': 'Y杞存爣棰橈細',
-            'lang_chart_tip': '鎻愮ず鏂囧瓧',
-            'lang_cahrt_tip_prefix': '鎻愮ず鏂囧瓧鍓嶇紑锛�',
-            'lang_cahrt_tip_description': '浠呴ゼ鍥炬湁鏁堬紝 褰撻紶鏍囩Щ鍔ㄥ埌楗煎浘涓浉搴旂殑鍧椾笂鏃讹紝鎻愮ず妗嗗唴鐨勬枃瀛楃殑鍓嶇紑',
-            'lang_chart_data_unit': '鏁版嵁鍗曚綅',
-            'lang_chart_data_unit_title': '鍗曚綅锛�',
-            'lang_chart_data_unit_description': '鏄剧ず鍦ㄦ瘡涓暟鎹偣涓婄殑鏁版嵁鐨勫崟浣嶏紝 姣斿锛� 娓╁害鐨勫崟浣� 鈩�',
-            'lang_chart_type': '鍥捐〃绫诲瀷锛�',
-            'lang_prev_btn': '涓婁竴涓�',
-            'lang_next_btn': '涓嬩竴涓�'
-        }
-    },
-    'emotion':{
-        'static':{
-            'lang_input_choice':'绮鹃��',
-            'lang_input_Tuzki':'鍏旀柉鍩�',
-            'lang_input_BOBO':'BOBO',
-            'lang_input_lvdouwa':'缁胯眴铔�',
-            'lang_input_babyCat':'baby鐚�',
-            'lang_input_bubble':'娉℃场',
-            'lang_input_youa':'鏈夊晩'
-        }
-    },
-    'gmap':{
-        'static':{
-            'lang_input_address':'鍦板潃',
-            'lang_input_search':'鎼滅储',
-            'address':{value:"鍖椾含"}
-        },
-        searchError:'鏃犳硶瀹氫綅鍒拌鍦板潃!'
-    },
-    'help':{
-        'static':{
-            'lang_input_about':'鍏充簬UEditor',
-            'lang_input_shortcuts':'蹇嵎閿�',
-            'lang_input_introduction':'UEditor鏄敱鐧惧害web鍓嶇鐮斿彂閮ㄥ紑鍙戠殑鎵�瑙佸嵆鎵�寰楀瘜鏂囨湰web缂栬緫鍣紝鍏锋湁杞婚噺锛屽彲瀹氬埗锛屾敞閲嶇敤鎴蜂綋楠岀瓑鐗圭偣銆傚紑婧愬熀浜嶣SD鍗忚锛屽厑璁歌嚜鐢变娇鐢ㄥ拰淇敼浠g爜銆�',
-            'lang_Txt_shortcuts':'蹇嵎閿�',
-            'lang_Txt_func':'鍔熻兘',
-            'lang_Txt_bold':'缁欓�変腑瀛楄缃负鍔犵矖',
-            'lang_Txt_copy':'澶嶅埗閫変腑鍐呭',
-            'lang_Txt_cut':'鍓垏閫変腑鍐呭',
-            'lang_Txt_Paste':'绮樿创',
-            'lang_Txt_undo':'閲嶆柊鎵ц涓婃鎿嶄綔',
-            'lang_Txt_redo':'鎾ら攢涓婁竴娆℃搷浣�',
-            'lang_Txt_italic':'缁欓�変腑瀛楄缃负鏂滀綋',
-            'lang_Txt_underline':'缁欓�変腑瀛楀姞涓嬪垝绾�',
-            'lang_Txt_selectAll':'鍏ㄩ儴閫変腑',
-            'lang_Txt_visualEnter':'杞洖杞�',
-            'lang_Txt_fullscreen':'鍏ㄥ睆'
-        }
-    },
-    'insertframe':{
-        'static':{
-            'lang_input_address':'鍦板潃锛�',
-            'lang_input_width':'瀹藉害锛�',
-            'lang_input_height':'楂樺害锛�',
-            'lang_input_isScroll':'鍏佽婊氬姩鏉★細',
-            'lang_input_frameborder':'鏄剧ず妗嗘灦杈规锛�',
-            'lang_input_alignMode':'瀵归綈鏂瑰紡锛�',
-            'align':{title:"瀵归綈鏂瑰紡", options:["榛樿", "宸﹀榻�", "鍙冲榻�", "灞呬腑"]}
-        },
-        'enterAddress':'璇疯緭鍏ュ湴鍧�!'
-    },
-    'link':{
-        'static':{
-            'lang_input_text':'鏂囨湰鍐呭锛�',
-            'lang_input_url':'閾炬帴鍦板潃锛�',
-            'lang_input_title':'鏍囬锛�',
-            'lang_input_target':'鏄惁鍦ㄦ柊绐楀彛鎵撳紑锛�'
-        },
-        'validLink':'鍙敮鎸侀�変腑涓�涓摼鎺ユ椂鐢熸晥',
-        'httpPrompt':'鎮ㄨ緭鍏ョ殑瓒呴摼鎺ヤ腑涓嶅寘鍚玥ttp绛夊崗璁悕绉帮紝榛樿灏嗕负鎮ㄦ坊鍔爃ttp://鍓嶇紑'
-    },
-    'map':{
-        'static':{
-            lang_city:"鍩庡競",
-            lang_address:"鍦板潃",
-            city:{value:"鍖椾含"},
-            lang_search:"鎼滅储",
-            lang_dynamicmap:"鎻掑叆鍔ㄦ�佸湴鍥�"
-        },
-        cityMsg:"璇烽�夋嫨鍩庡競",
-        errorMsg:"鎶辨瓑锛屾壘涓嶅埌璇ヤ綅缃紒"
-    },
-    'searchreplace':{
-        'static':{
-            lang_tab_search:"鏌ユ壘",
-            lang_tab_replace:"鏇挎崲",
-            lang_search1:"鏌ユ壘",
-            lang_search2:"鏌ユ壘",
-            lang_replace:"鏇挎崲",
-            lang_searchReg:'鏀寔姝e垯琛ㄨ揪寮忥紝娣诲姞鍓嶅悗鏂滄潬鏍囩ず涓烘鍒欒〃杈惧紡锛屼緥濡傗��/琛ㄨ揪寮�/鈥�',
-            lang_searchReg1:'鏀寔姝e垯琛ㄨ揪寮忥紝娣诲姞鍓嶅悗鏂滄潬鏍囩ず涓烘鍒欒〃杈惧紡锛屼緥濡傗��/琛ㄨ揪寮�/鈥�',
-            lang_case_sensitive1:"鍖哄垎澶у皬鍐�",
-            lang_case_sensitive2:"鍖哄垎澶у皬鍐�",
-            nextFindBtn:{value:"涓嬩竴涓�"},
-            preFindBtn:{value:"涓婁竴涓�"},
-            nextReplaceBtn:{value:"涓嬩竴涓�"},
-            preReplaceBtn:{value:"涓婁竴涓�"},
-            repalceBtn:{value:"鏇挎崲"},
-            repalceAllBtn:{value:"鍏ㄩ儴鏇挎崲"}
-        },
-        getEnd:"宸茬粡鎼滅储鍒版枃绔犳湯灏撅紒",
-        getStart:"宸茬粡鎼滅储鍒版枃绔犲ご閮�",
-        countMsg:"鎬诲叡鏇挎崲浜唟#count}澶勶紒"
-    },
-    'snapscreen':{
-        'static':{
-            lang_showMsg:"鎴浘鍔熻兘闇�瑕侀鍏堝畨瑁匲Editor鎴浘鎻掍欢锛� ",
-            lang_download:"鐐规涓嬭浇",
-            lang_step1:"绗竴姝ワ紝涓嬭浇UEditor鎴浘鎻掍欢骞惰繍琛屽畨瑁呫��",
-            lang_step2:"绗簩姝ワ紝鎻掍欢瀹夎瀹屾垚鍚庡嵆鍙娇鐢紝濡備笉鐢熸晥锛岃閲嶅惎娴忚鍣ㄥ悗鍐嶈瘯锛�"
-        }
-    },
-    'spechars':{
-        'static':{},
-        tsfh:"鐗规畩瀛楃",
-        lmsz:"缃楅┈瀛楃",
-        szfh:"鏁板瀛楃",
-        rwfh:"鏃ユ枃瀛楃",
-        xlzm:"甯岃厞瀛楁瘝",
-        ewzm:"淇勬枃瀛楃",
-        pyzm:"鎷奸煶瀛楁瘝",
-        yyyb:"鑻辫闊虫爣",
-        zyzf:"鍏朵粬"
-    },
-    'edittable':{
-        'static':{
-            'lang_tableStyle':'琛ㄦ牸鏍峰紡',
-            'lang_insertCaption':'娣诲姞琛ㄦ牸鍚嶇О琛�',
-            'lang_insertTitle':'娣诲姞琛ㄦ牸鏍囬琛�',
-            'lang_insertTitleCol':'娣诲姞琛ㄦ牸鏍囬鍒�',
-            'lang_orderbycontent':"浣胯〃鏍煎唴瀹瑰彲鎺掑簭",
-            'lang_tableSize':'鑷姩璋冩暣琛ㄦ牸灏哄',
-            'lang_autoSizeContent':'鎸夎〃鏍兼枃瀛楄嚜閫傚簲',
-            'lang_autoSizePage':'鎸夐〉闈㈠搴﹁嚜閫傚簲',
-            'lang_example':'绀轰緥',
-            'lang_borderStyle':'琛ㄦ牸杈规',
-            'lang_color':'棰滆壊:'
-        },
-        captionName:'琛ㄦ牸鍚嶇О',
-        titleName:'鏍囬',
-        cellsName:'鍐呭',
-        errorMsg:'鏈夊悎骞跺崟鍏冩牸锛屼笉鍙帓搴�'
-    },
-    'edittip':{
-        'static':{
-            lang_delRow:'鍒犻櫎鏁磋',
-            lang_delCol:'鍒犻櫎鏁村垪'
-        }
-    },
-    'edittd':{
-        'static':{
-            lang_tdBkColor:'鑳屾櫙棰滆壊:'
-        }
-    },
-    'formula':{
-        'static':{
-        }
-    },
-    'wordimage':{
-        'static':{
-            lang_resave:"杞瓨姝ラ",
-            uploadBtn:{src:"upload.png",alt:"涓婁紶"},
-            clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"},
-            lang_step:"1銆佺偣鍑婚《閮ㄥ鍒舵寜閽紝灏嗗湴鍧�澶嶅埗鍒板壀璐存澘锛�2銆佺偣鍑绘坊鍔犵収鐗囨寜閽紝鍦ㄥ脊鍑虹殑瀵硅瘽妗嗕腑浣跨敤Ctrl+V绮樿创鍦板潃锛�3銆佺偣鍑绘墦寮�鍚庨�夋嫨鍥剧墖涓婁紶娴佺▼銆�"
-        },
-        'fileType':"鍥剧墖",
-        'flashError':"FLASH鍒濆鍖栧け璐ワ紝璇锋鏌LASH鎻掍欢鏄惁姝g‘瀹夎锛�",
-        'netError':"缃戠粶杩炴帴閿欒锛岃閲嶈瘯锛�",
-        'copySuccess':"鍥剧墖鍦板潃宸茬粡澶嶅埗锛�",
-        'flashI18n':{} //鐣欑┖榛樿涓枃
-    },
-    'autosave': {
-        'saving':'淇濆瓨涓�...',
-        'success':'鏈湴淇濆瓨鎴愬姛'
-    }
-};
diff --git a/server/public/ueditor/php/Uploader.class.php b/server/public/ueditor/php/Uploader.class.php
deleted file mode 100644
index ae9818a..0000000
--- a/server/public/ueditor/php/Uploader.class.php
+++ /dev/null
@@ -1,372 +0,0 @@
-<?php
-
-/**
- * Created by JetBrains PhpStorm.
- * User: taoqili
- * Date: 12-7-18
- * Time: 涓婂崍11: 32
- * UEditor缂栬緫鍣ㄩ�氱敤涓婁紶绫�
- */
-class Uploader
-{
-    private $fileField; //鏂囦欢鍩熷悕
-    private $file; //鏂囦欢涓婁紶瀵硅薄
-    private $base64; //鏂囦欢涓婁紶瀵硅薄
-    private $config; //閰嶇疆淇℃伅
-    private $oriName; //鍘熷鏂囦欢鍚�
-    private $fileName; //鏂版枃浠跺悕
-    private $fullName; //瀹屾暣鏂囦欢鍚�,鍗充粠褰撳墠閰嶇疆鐩綍寮�濮嬬殑URL
-    private $filePath; //瀹屾暣鏂囦欢鍚�,鍗充粠褰撳墠閰嶇疆鐩綍寮�濮嬬殑URL
-    private $fileSize; //鏂囦欢澶у皬
-    private $fileType; //鏂囦欢绫诲瀷
-    private $stateInfo; //涓婁紶鐘舵�佷俊鎭�,
-    private $stateMap = array( //涓婁紶鐘舵�佹槧灏勮〃锛屽浗闄呭寲鐢ㄦ埛闇�鑰冭檻姝ゅ鏁版嵁鐨勫浗闄呭寲
-        "SUCCESS", //涓婁紶鎴愬姛鏍囪锛屽湪UEditor涓唴涓嶅彲鏀瑰彉锛屽惁鍒檉lash鍒ゆ柇浼氬嚭閿�
-        "鏂囦欢澶у皬瓒呭嚭 upload_max_filesize 闄愬埗",
-        "鏂囦欢澶у皬瓒呭嚭 MAX_FILE_SIZE 闄愬埗",
-        "鏂囦欢鏈瀹屾暣涓婁紶",
-        "娌℃湁鏂囦欢琚笂浼�",
-        "涓婁紶鏂囦欢涓虹┖",
-        "ERROR_TMP_FILE" => "涓存椂鏂囦欢閿欒",
-        "ERROR_TMP_FILE_NOT_FOUND" => "鎵句笉鍒颁复鏃舵枃浠�",
-        "ERROR_SIZE_EXCEED" => "鏂囦欢澶у皬瓒呭嚭缃戠珯闄愬埗",
-        "ERROR_TYPE_NOT_ALLOWED" => "鏂囦欢绫诲瀷涓嶅厑璁�",
-        "ERROR_CREATE_DIR" => "鐩綍鍒涘缓澶辫触",
-        "ERROR_DIR_NOT_WRITEABLE" => "鐩綍娌℃湁鍐欐潈闄�",
-        "ERROR_FILE_MOVE" => "鏂囦欢淇濆瓨鏃跺嚭閿�",
-        "ERROR_FILE_NOT_FOUND" => "鎵句笉鍒颁笂浼犳枃浠�",
-        "ERROR_WRITE_CONTENT" => "鍐欏叆鏂囦欢鍐呭閿欒",
-        "ERROR_UNKNOWN" => "鏈煡閿欒",
-        "ERROR_DEAD_LINK" => "閾炬帴涓嶅彲鐢�",
-        "ERROR_HTTP_LINK" => "閾炬帴涓嶆槸http閾炬帴",
-        "ERROR_HTTP_CONTENTTYPE" => "閾炬帴contentType涓嶆纭�",
-        "INVALID_URL" => "闈炴硶 URL",
-        "INVALID_IP" => "闈炴硶 IP"
-    );
-
-    /**
-     * 鏋勯�犲嚱鏁�
-     * @param string $fileField 琛ㄥ崟鍚嶇О
-     * @param array $config 閰嶇疆椤�
-     * @param bool $base64 鏄惁瑙f瀽base64缂栫爜锛屽彲鐪佺暐銆傝嫢寮�鍚紝鍒�$fileField浠h〃鐨勬槸base64缂栫爜鐨勫瓧绗︿覆琛ㄥ崟鍚�
-     */
-    public function __construct($fileField, $config, $type = "upload")
-    {
-        $this->fileField = $fileField;
-        $this->config = $config;
-        $this->type = $type;
-        if ($type == "remote") {
-            $this->saveRemote();
-        } else if($type == "base64") {
-            $this->upBase64();
-        } else {
-            $this->upFile();
-        }
-
-        $this->stateMap['ERROR_TYPE_NOT_ALLOWED'] = iconv('unicode', 'utf-8', $this->stateMap['ERROR_TYPE_NOT_ALLOWED']);
-    }
-
-    /**
-     * 涓婁紶鏂囦欢鐨勪富澶勭悊鏂规硶
-     * @return mixed
-     */
-    private function upFile()
-    {
-        $file = $this->file = $_FILES[$this->fileField];
-        if (!$file) {
-            $this->stateInfo = $this->getStateInfo("ERROR_FILE_NOT_FOUND");
-            return;
-        }
-        if ($this->file['error']) {
-            $this->stateInfo = $this->getStateInfo($file['error']);
-            return;
-        } else if (!file_exists($file['tmp_name'])) {
-            $this->stateInfo = $this->getStateInfo("ERROR_TMP_FILE_NOT_FOUND");
-            return;
-        } else if (!is_uploaded_file($file['tmp_name'])) {
-            $this->stateInfo = $this->getStateInfo("ERROR_TMPFILE");
-            return;
-        }
-
-        $this->oriName = $file['name'];
-        $this->fileSize = $file['size'];
-        $this->fileType = $this->getFileExt();
-        $this->fullName = $this->getFullName();
-        $this->filePath = $this->getFilePath();
-        $this->fileName = $this->getFileName();
-        $dirname = dirname($this->filePath);
-
-        //妫�鏌ユ枃浠跺ぇ灏忔槸鍚﹁秴鍑洪檺鍒�
-        if (!$this->checkSize()) {
-            $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED");
-            return;
-        }
-
-        //妫�鏌ユ槸鍚︿笉鍏佽鐨勬枃浠舵牸寮�
-        if (!$this->checkType()) {
-            $this->stateInfo = $this->getStateInfo("ERROR_TYPE_NOT_ALLOWED");
-            return;
-        }
-
-        //鍒涘缓鐩綍澶辫触
-        if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) {
-            $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR");
-            return;
-        } else if (!is_writeable($dirname)) {
-            $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE");
-            return;
-        }
-
-        //绉诲姩鏂囦欢
-        if (!(move_uploaded_file($file["tmp_name"], $this->filePath) && file_exists($this->filePath))) { //绉诲姩澶辫触
-            $this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");
-        } else { //绉诲姩鎴愬姛
-            $this->stateInfo = $this->stateMap[0];
-        }
-    }
-
-    /**
-     * 澶勭悊base64缂栫爜鐨勫浘鐗囦笂浼�
-     * @return mixed
-     */
-    private function upBase64()
-    {
-        $base64Data = $_POST[$this->fileField];
-        $img = base64_decode($base64Data);
-
-        $this->oriName = $this->config['oriName'];
-        $this->fileSize = strlen($img);
-        $this->fileType = $this->getFileExt();
-        $this->fullName = $this->getFullName();
-        $this->filePath = $this->getFilePath();
-        $this->fileName = $this->getFileName();
-        $dirname = dirname($this->filePath);
-
-        //妫�鏌ユ枃浠跺ぇ灏忔槸鍚﹁秴鍑洪檺鍒�
-        if (!$this->checkSize()) {
-            $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED");
-            return;
-        }
-
-        //鍒涘缓鐩綍澶辫触
-        if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) {
-            $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR");
-            return;
-        } else if (!is_writeable($dirname)) {
-            $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE");
-            return;
-        }
-
-        //绉诲姩鏂囦欢
-        if (!(file_put_contents($this->filePath, $img) && file_exists($this->filePath))) { //绉诲姩澶辫触
-            $this->stateInfo = $this->getStateInfo("ERROR_WRITE_CONTENT");
-        } else { //绉诲姩鎴愬姛
-            $this->stateInfo = $this->stateMap[0];
-        }
-
-    }
-
-    /**
-     * 鎷夊彇杩滅▼鍥剧墖
-     * @return mixed
-     */
-    private function saveRemote()
-    {
-        $imgUrl = htmlspecialchars($this->fileField);
-        $imgUrl = str_replace("&amp;", "&", $imgUrl);
-
-        //http寮�澶撮獙璇�
-        if (strpos($imgUrl, "http") !== 0) {
-            $this->stateInfo = $this->getStateInfo("ERROR_HTTP_LINK");
-            return;
-        }
-
-        preg_match('/(^https*:\/\/[^:\/]+)/', $imgUrl, $matches);
-        $host_with_protocol = count($matches) > 1 ? $matches[1] : '';
-
-        // 鍒ゆ柇鏄惁鏄悎娉� url
-        if (!filter_var($host_with_protocol, FILTER_VALIDATE_URL)) {
-            $this->stateInfo = $this->getStateInfo("INVALID_URL");
-            return;
-        }
-
-        preg_match('/^https*:\/\/(.+)/', $host_with_protocol, $matches);
-        $host_without_protocol = count($matches) > 1 ? $matches[1] : '';
-
-        // 姝ゆ椂鎻愬彇鍑烘潵鐨勫彲鑳芥槸 ip 涔熸湁鍙兘鏄煙鍚嶏紝鍏堣幏鍙� ip
-        $ip = gethostbyname($host_without_protocol);
-        // 鍒ゆ柇鏄惁鏄鏈� ip
-        if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)) {
-            $this->stateInfo = $this->getStateInfo("INVALID_IP");
-            return;
-        }
-
-        //鑾峰彇璇锋眰澶村苟妫�娴嬫閾�
-        $heads = get_headers($imgUrl, 1);
-        if (!(stristr($heads[0], "200") && stristr($heads[0], "OK"))) {
-            $this->stateInfo = $this->getStateInfo("ERROR_DEAD_LINK");
-            return;
-        }
-        //鏍煎紡楠岃瘉(鎵╁睍鍚嶉獙璇佸拰Content-Type楠岃瘉)
-        $fileType = strtolower(strrchr($imgUrl, '.'));
-        if (!in_array($fileType, $this->config['allowFiles']) || !isset($heads['Content-Type']) || !stristr($heads['Content-Type'], "image")) {
-            $this->stateInfo = $this->getStateInfo("ERROR_HTTP_CONTENTTYPE");
-            return;
-        }
-
-        //鎵撳紑杈撳嚭缂撳啿鍖哄苟鑾峰彇杩滅▼鍥剧墖
-        ob_start();
-        $context = stream_context_create(
-            array('http' => array(
-                'follow_location' => false // don't follow redirects
-            ))
-        );
-        readfile($imgUrl, false, $context);
-        $img = ob_get_contents();
-        ob_end_clean();
-        preg_match("/[\/]([^\/]*)[\.]?[^\.\/]*$/", $imgUrl, $m);
-
-        $this->oriName = $m ? $m[1]:"";
-        $this->fileSize = strlen($img);
-        $this->fileType = $this->getFileExt();
-        $this->fullName = $this->getFullName();
-        $this->filePath = $this->getFilePath();
-        $this->fileName = $this->getFileName();
-        $dirname = dirname($this->filePath);
-
-        //妫�鏌ユ枃浠跺ぇ灏忔槸鍚﹁秴鍑洪檺鍒�
-        if (!$this->checkSize()) {
-            $this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED");
-            return;
-        }
-
-        //鍒涘缓鐩綍澶辫触
-        if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) {
-            $this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR");
-            return;
-        } else if (!is_writeable($dirname)) {
-            $this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE");
-            return;
-        }
-
-        //绉诲姩鏂囦欢
-        if (!(file_put_contents($this->filePath, $img) && file_exists($this->filePath))) { //绉诲姩澶辫触
-            $this->stateInfo = $this->getStateInfo("ERROR_WRITE_CONTENT");
-        } else { //绉诲姩鎴愬姛
-            $this->stateInfo = $this->stateMap[0];
-        }
-
-    }
-
-    /**
-     * 涓婁紶閿欒妫�鏌�
-     * @param $errCode
-     * @return string
-     */
-    private function getStateInfo($errCode)
-    {
-        return !$this->stateMap[$errCode] ? $this->stateMap["ERROR_UNKNOWN"] : $this->stateMap[$errCode];
-    }
-
-    /**
-     * 鑾峰彇鏂囦欢鎵╁睍鍚�
-     * @return string
-     */
-    private function getFileExt()
-    {
-        return strtolower(strrchr($this->oriName, '.'));
-    }
-
-    /**
-     * 閲嶅懡鍚嶆枃浠�
-     * @return string
-     */
-    private function getFullName()
-    {
-        //鏇挎崲鏃ユ湡浜嬩欢
-        $t = time();
-        $d = explode('-', date("Y-y-m-d-H-i-s"));
-        $format = $this->config["pathFormat"];
-        $format = str_replace("{yyyy}", $d[0], $format);
-        $format = str_replace("{yy}", $d[1], $format);
-        $format = str_replace("{mm}", $d[2], $format);
-        $format = str_replace("{dd}", $d[3], $format);
-        $format = str_replace("{hh}", $d[4], $format);
-        $format = str_replace("{ii}", $d[5], $format);
-        $format = str_replace("{ss}", $d[6], $format);
-        $format = str_replace("{time}", $t, $format);
-
-        //杩囨护鏂囦欢鍚嶇殑闈炴硶鑷礋,骞舵浛鎹㈡枃浠跺悕
-        $oriName = substr($this->oriName, 0, strrpos($this->oriName, '.'));
-        $oriName = preg_replace("/[\|\?\"\<\>\/\*\\\\]+/", '', $oriName);
-        $format = str_replace("{filename}", $oriName, $format);
-
-        //鏇挎崲闅忔満瀛楃涓�
-        $randNum = rand(1, 10000000000) . rand(1, 10000000000);
-        if (preg_match("/\{rand\:([\d]*)\}/i", $format, $matches)) {
-            $format = preg_replace("/\{rand\:[\d]*\}/i", substr($randNum, 0, $matches[1]), $format);
-        }
-
-        $ext = $this->getFileExt();
-        return $format . $ext;
-    }
-
-    /**
-     * 鑾峰彇鏂囦欢鍚�
-     * @return string
-     */
-    private function getFileName () {
-        return substr($this->filePath, strrpos($this->filePath, '/') + 1);
-    }
-
-    /**
-     * 鑾峰彇鏂囦欢瀹屾暣璺緞
-     * @return string
-     */
-    private function getFilePath()
-    {
-        $fullname = $this->fullName;
-        $rootPath = $_SERVER['DOCUMENT_ROOT'];
-
-        if (substr($fullname, 0, 1) != '/') {
-            $fullname = '/' . $fullname;
-        }
-
-        return $rootPath . $fullname;
-    }
-
-    /**
-     * 鏂囦欢绫诲瀷妫�娴�
-     * @return bool
-     */
-    private function checkType()
-    {
-        return in_array($this->getFileExt(), $this->config["allowFiles"]);
-    }
-
-    /**
-     * 鏂囦欢澶у皬妫�娴�
-     * @return bool
-     */
-    private function  checkSize()
-    {
-        return $this->fileSize <= ($this->config["maxSize"]);
-    }
-
-    /**
-     * 鑾峰彇褰撳墠涓婁紶鎴愬姛鏂囦欢鐨勫悇椤逛俊鎭�
-     * @return array
-     */
-    public function getFileInfo()
-    {
-        return array(
-            "state" => $this->stateInfo,
-            "url" => $this->fullName,
-            "title" => $this->fileName,
-            "original" => $this->oriName,
-            "type" => $this->fileType,
-            "size" => $this->fileSize
-        );
-    }
-
-}
\ No newline at end of file
diff --git a/server/public/ueditor/php/action_crawler.php b/server/public/ueditor/php/action_crawler.php
deleted file mode 100644
index a6a17bb..0000000
--- a/server/public/ueditor/php/action_crawler.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * 鎶撳彇杩滅▼鍥剧墖
- * User: Jinqn
- * Date: 14-04-14
- * Time: 涓嬪崍19:18
- */
-set_time_limit(0);
-include("Uploader.class.php");
-
-/* 涓婁紶閰嶇疆 */
-$config = array(
-    "pathFormat" => $CONFIG['catcherPathFormat'],
-    "maxSize" => $CONFIG['catcherMaxSize'],
-    "allowFiles" => $CONFIG['catcherAllowFiles'],
-    "oriName" => "remote.png"
-);
-$fieldName = $CONFIG['catcherFieldName'];
-
-/* 鎶撳彇杩滅▼鍥剧墖 */
-$list = array();
-if (isset($_POST[$fieldName])) {
-    $source = $_POST[$fieldName];
-} else {
-    $source = $_GET[$fieldName];
-}
-foreach ($source as $imgUrl) {
-    $item = new Uploader($imgUrl, $config, "remote");
-    $info = $item->getFileInfo();
-    array_push($list, array(
-        "state" => $info["state"],
-        "url" => $info["url"],
-        "size" => $info["size"],
-        "title" => htmlspecialchars($info["title"]),
-        "original" => htmlspecialchars($info["original"]),
-        "source" => htmlspecialchars($imgUrl)
-    ));
-}
-
-/* 杩斿洖鎶撳彇鏁版嵁 */
-return json_encode(array(
-    'state'=> count($list) ? 'SUCCESS':'ERROR',
-    'list'=> $list
-));
\ No newline at end of file
diff --git a/server/public/ueditor/php/action_list.php b/server/public/ueditor/php/action_list.php
deleted file mode 100644
index 4821018..0000000
--- a/server/public/ueditor/php/action_list.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-/**
- * 鑾峰彇宸蹭笂浼犵殑鏂囦欢鍒楄〃
- * User: Jinqn
- * Date: 14-04-09
- * Time: 涓婂崍10:17
- */
-include "Uploader.class.php";
-
-/* 鍒ゆ柇绫诲瀷 */
-switch ($_GET['action']) {
-    /* 鍒楀嚭鏂囦欢 */
-    case 'listfile':
-        $allowFiles = $CONFIG['fileManagerAllowFiles'];
-        $listSize = $CONFIG['fileManagerListSize'];
-        $path = $CONFIG['fileManagerListPath'];
-        break;
-    /* 鍒楀嚭鍥剧墖 */
-    case 'listimage':
-    default:
-        $allowFiles = $CONFIG['imageManagerAllowFiles'];
-        $listSize = $CONFIG['imageManagerListSize'];
-        $path = $CONFIG['imageManagerListPath'];
-}
-$allowFiles = substr(str_replace(".", "|", join("", $allowFiles)), 1);
-
-/* 鑾峰彇鍙傛暟 */
-$size = isset($_GET['size']) ? htmlspecialchars($_GET['size']) : $listSize;
-$start = isset($_GET['start']) ? htmlspecialchars($_GET['start']) : 0;
-$end = $start + $size;
-
-/* 鑾峰彇鏂囦欢鍒楄〃 */
-$path = $_SERVER['DOCUMENT_ROOT'] . (substr($path, 0, 1) == "/" ? "":"/") . $path;
-$files = getfiles($path, $allowFiles);
-if (!count($files)) {
-    return json_encode(array(
-        "state" => "no match file",
-        "list" => array(),
-        "start" => $start,
-        "total" => count($files)
-    ));
-}
-
-/* 鑾峰彇鎸囧畾鑼冨洿鐨勫垪琛� */
-$len = count($files);
-for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--){
-    $list[] = $files[$i];
-}
-//鍊掑簭
-//for ($i = $end, $list = array(); $i < $len && $i < $end; $i++){
-//    $list[] = $files[$i];
-//}
-
-/* 杩斿洖鏁版嵁 */
-$result = json_encode(array(
-    "state" => "SUCCESS",
-    "list" => $list,
-    "start" => $start,
-    "total" => count($files)
-));
-
-return $result;
-
-
-/**
- * 閬嶅巻鑾峰彇鐩綍涓嬬殑鎸囧畾绫诲瀷鐨勬枃浠�
- * @param $path
- * @param array $files
- * @return array
- */
-function getfiles($path, $allowFiles, &$files = array())
-{
-    if (!is_dir($path)) return null;
-    if(substr($path, strlen($path) - 1) != '/') $path .= '/';
-    $handle = opendir($path);
-    while (false !== ($file = readdir($handle))) {
-        if ($file != '.' && $file != '..') {
-            $path2 = $path . $file;
-            if (is_dir($path2)) {
-                getfiles($path2, $allowFiles, $files);
-            } else {
-                if (preg_match("/\.(".$allowFiles.")$/i", $file)) {
-                    $files[] = array(
-                        'url'=> substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])),
-                        'mtime'=> filemtime($path2)
-                    );
-                }
-            }
-        }
-    }
-    return $files;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/php/action_upload.php b/server/public/ueditor/php/action_upload.php
deleted file mode 100644
index cbec3fb..0000000
--- a/server/public/ueditor/php/action_upload.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-/**
- * 涓婁紶闄勪欢鍜屼笂浼犺棰�
- * User: Jinqn
- * Date: 14-04-09
- * Time: 涓婂崍10:17
- */
-include "Uploader.class.php";
-
-/* 涓婁紶閰嶇疆 */
-$base64 = "upload";
-switch (htmlspecialchars($_GET['action'])) {
-    case 'uploadimage':
-        $config = array(
-            "pathFormat" => $CONFIG['imagePathFormat'],
-            "maxSize" => $CONFIG['imageMaxSize'],
-            "allowFiles" => $CONFIG['imageAllowFiles']
-        );
-        $fieldName = $CONFIG['imageFieldName'];
-        break;
-    case 'uploadscrawl':
-        $config = array(
-            "pathFormat" => $CONFIG['scrawlPathFormat'],
-            "maxSize" => $CONFIG['scrawlMaxSize'],
-            "allowFiles" => $CONFIG['scrawlAllowFiles'],
-            "oriName" => "scrawl.png"
-        );
-        $fieldName = $CONFIG['scrawlFieldName'];
-        $base64 = "base64";
-        break;
-    case 'uploadvideo':
-        $config = array(
-            "pathFormat" => $CONFIG['videoPathFormat'],
-            "maxSize" => $CONFIG['videoMaxSize'],
-            "allowFiles" => $CONFIG['videoAllowFiles']
-        );
-        $fieldName = $CONFIG['videoFieldName'];
-        break;
-    case 'uploadfile':
-    default:
-        $config = array(
-            "pathFormat" => $CONFIG['filePathFormat'],
-            "maxSize" => $CONFIG['fileMaxSize'],
-            "allowFiles" => $CONFIG['fileAllowFiles']
-        );
-        $fieldName = $CONFIG['fileFieldName'];
-        break;
-}
-
-/* 鐢熸垚涓婁紶瀹炰緥瀵硅薄骞跺畬鎴愪笂浼� */
-$up = new Uploader($fieldName, $config, $base64);
-
-/**
- * 寰楀埌涓婁紶鏂囦欢鎵�瀵瑰簲鐨勫悇涓弬鏁�,鏁扮粍缁撴瀯
- * array(
- *     "state" => "",          //涓婁紶鐘舵�侊紝涓婁紶鎴愬姛鏃跺繀椤昏繑鍥�"SUCCESS"
- *     "url" => "",            //杩斿洖鐨勫湴鍧�
- *     "title" => "",          //鏂版枃浠跺悕
- *     "original" => "",       //鍘熷鏂囦欢鍚�
- *     "type" => ""            //鏂囦欢绫诲瀷
- *     "size" => "",           //鏂囦欢澶у皬
- * )
- */
-
-/* 杩斿洖鏁版嵁 */
-return json_encode($up->getFileInfo());
diff --git a/server/public/ueditor/php/config.json b/server/public/ueditor/php/config.json
deleted file mode 100644
index f25d016..0000000
--- a/server/public/ueditor/php/config.json
+++ /dev/null
@@ -1,94 +0,0 @@
-/* 鍓嶅悗绔�氫俊鐩稿叧鐨勯厤缃�,娉ㄩ噴鍙厑璁镐娇鐢ㄥ琛屾柟寮� */
-{
-    /* 涓婁紶鍥剧墖閰嶇疆椤� */
-    "imageActionName": "uploadimage", /* 鎵ц涓婁紶鍥剧墖鐨刟ction鍚嶇О */
-    "imageFieldName": "upfile", /* 鎻愪氦鐨勫浘鐗囪〃鍗曞悕绉� */
-    "imageMaxSize": 2048000, /* 涓婁紶澶у皬闄愬埗锛屽崟浣岯 */
-    "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 涓婁紶鍥剧墖鏍煎紡鏄剧ず */
-    "imageCompressEnable": true, /* 鏄惁鍘嬬缉鍥剧墖,榛樿鏄痶rue */
-    "imageCompressBorder": 1600, /* 鍥剧墖鍘嬬缉鏈�闀胯竟闄愬埗 */
-    "imageInsertAlign": "none", /* 鎻掑叆鐨勫浘鐗囨诞鍔ㄦ柟寮� */
-    "imageUrlPrefix": "", /* 鍥剧墖璁块棶璺緞鍓嶇紑 */
-    "imagePathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 涓婁紶淇濆瓨璺緞,鍙互鑷畾涔変繚瀛樿矾寰勫拰鏂囦欢鍚嶆牸寮� */
-                                /* {filename} 浼氭浛鎹㈡垚鍘熸枃浠跺悕,閰嶇疆杩欓」闇�瑕佹敞鎰忎腑鏂囦贡鐮侀棶棰� */
-                                /* {rand:6} 浼氭浛鎹㈡垚闅忔満鏁�,鍚庨潰鐨勬暟瀛楁槸闅忔満鏁扮殑浣嶆暟 */
-                                /* {time} 浼氭浛鎹㈡垚鏃堕棿鎴� */
-                                /* {yyyy} 浼氭浛鎹㈡垚鍥涗綅骞翠唤 */
-                                /* {yy} 浼氭浛鎹㈡垚涓や綅骞翠唤 */
-                                /* {mm} 浼氭浛鎹㈡垚涓や綅鏈堜唤 */
-                                /* {dd} 浼氭浛鎹㈡垚涓や綅鏃ユ湡 */
-                                /* {hh} 浼氭浛鎹㈡垚涓や綅灏忔椂 */
-                                /* {ii} 浼氭浛鎹㈡垚涓や綅鍒嗛挓 */
-                                /* {ss} 浼氭浛鎹㈡垚涓や綅绉� */
-                                /* 闈炴硶瀛楃 \ : * ? " < > | */
-                                /* 鍏疯浣撶湅绾夸笂鏂囨。: fex.baidu.com/ueditor/#use-format_upload_filename */
-
-    /* 娑傞甫鍥剧墖涓婁紶閰嶇疆椤� */
-    "scrawlActionName": "uploadscrawl", /* 鎵ц涓婁紶娑傞甫鐨刟ction鍚嶇О */
-    "scrawlFieldName": "upfile", /* 鎻愪氦鐨勫浘鐗囪〃鍗曞悕绉� */
-    "scrawlPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 涓婁紶淇濆瓨璺緞,鍙互鑷畾涔変繚瀛樿矾寰勫拰鏂囦欢鍚嶆牸寮� */
-    "scrawlMaxSize": 2048000, /* 涓婁紶澶у皬闄愬埗锛屽崟浣岯 */
-    "scrawlUrlPrefix": "", /* 鍥剧墖璁块棶璺緞鍓嶇紑 */
-    "scrawlInsertAlign": "none",
-
-    /* 鎴浘宸ュ叿涓婁紶 */
-    "snapscreenActionName": "uploadimage", /* 鎵ц涓婁紶鎴浘鐨刟ction鍚嶇О */
-    "snapscreenPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 涓婁紶淇濆瓨璺緞,鍙互鑷畾涔変繚瀛樿矾寰勫拰鏂囦欢鍚嶆牸寮� */
-    "snapscreenUrlPrefix": "", /* 鍥剧墖璁块棶璺緞鍓嶇紑 */
-    "snapscreenInsertAlign": "none", /* 鎻掑叆鐨勫浘鐗囨诞鍔ㄦ柟寮� */
-
-    /* 鎶撳彇杩滅▼鍥剧墖閰嶇疆 */
-    "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],
-    "catcherActionName": "catchimage", /* 鎵ц鎶撳彇杩滅▼鍥剧墖鐨刟ction鍚嶇О */
-    "catcherFieldName": "source", /* 鎻愪氦鐨勫浘鐗囧垪琛ㄨ〃鍗曞悕绉� */
-    "catcherPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 涓婁紶淇濆瓨璺緞,鍙互鑷畾涔変繚瀛樿矾寰勫拰鏂囦欢鍚嶆牸寮� */
-    "catcherUrlPrefix": "", /* 鍥剧墖璁块棶璺緞鍓嶇紑 */
-    "catcherMaxSize": 2048000, /* 涓婁紶澶у皬闄愬埗锛屽崟浣岯 */
-    "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 鎶撳彇鍥剧墖鏍煎紡鏄剧ず */
-
-    /* 涓婁紶瑙嗛閰嶇疆 */
-    "videoActionName": "uploadvideo", /* 鎵ц涓婁紶瑙嗛鐨刟ction鍚嶇О */
-    "videoFieldName": "upfile", /* 鎻愪氦鐨勮棰戣〃鍗曞悕绉� */
-    "videoPathFormat": "/ueditor/php/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 涓婁紶淇濆瓨璺緞,鍙互鑷畾涔変繚瀛樿矾寰勫拰鏂囦欢鍚嶆牸寮� */
-    "videoUrlPrefix": "", /* 瑙嗛璁块棶璺緞鍓嶇紑 */
-    "videoMaxSize": 102400000, /* 涓婁紶澶у皬闄愬埗锛屽崟浣岯锛岄粯璁�100MB */
-    "videoAllowFiles": [
-        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
-        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 涓婁紶瑙嗛鏍煎紡鏄剧ず */
-
-    /* 涓婁紶鏂囦欢閰嶇疆 */
-    "fileActionName": "uploadfile", /* controller閲�,鎵ц涓婁紶瑙嗛鐨刟ction鍚嶇О */
-    "fileFieldName": "upfile", /* 鎻愪氦鐨勬枃浠惰〃鍗曞悕绉� */
-    "filePathFormat": "/ueditor/php/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 涓婁紶淇濆瓨璺緞,鍙互鑷畾涔変繚瀛樿矾寰勫拰鏂囦欢鍚嶆牸寮� */
-    "fileUrlPrefix": "", /* 鏂囦欢璁块棶璺緞鍓嶇紑 */
-    "fileMaxSize": 51200000, /* 涓婁紶澶у皬闄愬埗锛屽崟浣岯锛岄粯璁�50MB */
-    "fileAllowFiles": [
-        ".png", ".jpg", ".jpeg", ".gif", ".bmp",
-        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
-        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
-        ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
-        ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
-    ], /* 涓婁紶鏂囦欢鏍煎紡鏄剧ず */
-
-    /* 鍒楀嚭鎸囧畾鐩綍涓嬬殑鍥剧墖 */
-    "imageManagerActionName": "listimage", /* 鎵ц鍥剧墖绠$悊鐨刟ction鍚嶇О */
-    "imageManagerListPath": "/ueditor/php/upload/image/", /* 鎸囧畾瑕佸垪鍑哄浘鐗囩殑鐩綍 */
-    "imageManagerListSize": 20, /* 姣忔鍒楀嚭鏂囦欢鏁伴噺 */
-    "imageManagerUrlPrefix": "", /* 鍥剧墖璁块棶璺緞鍓嶇紑 */
-    "imageManagerInsertAlign": "none", /* 鎻掑叆鐨勫浘鐗囨诞鍔ㄦ柟寮� */
-    "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 鍒楀嚭鐨勬枃浠剁被鍨� */
-
-    /* 鍒楀嚭鎸囧畾鐩綍涓嬬殑鏂囦欢 */
-    "fileManagerActionName": "listfile", /* 鎵ц鏂囦欢绠$悊鐨刟ction鍚嶇О */
-    "fileManagerListPath": "/ueditor/php/upload/file/", /* 鎸囧畾瑕佸垪鍑烘枃浠剁殑鐩綍 */
-    "fileManagerUrlPrefix": "", /* 鏂囦欢璁块棶璺緞鍓嶇紑 */
-    "fileManagerListSize": 20, /* 姣忔鍒楀嚭鏂囦欢鏁伴噺 */
-    "fileManagerAllowFiles": [
-        ".png", ".jpg", ".jpeg", ".gif", ".bmp",
-        ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",
-        ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",
-        ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",
-        ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"
-    ] /* 鍒楀嚭鐨勬枃浠剁被鍨� */
-
-}
diff --git a/server/public/ueditor/php/controller.php b/server/public/ueditor/php/controller.php
deleted file mode 100644
index 411094c..0000000
--- a/server/public/ueditor/php/controller.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-//header('Access-Control-Allow-Origin: http://www.baidu.com'); //璁剧疆http://www.baidu.com鍏佽璺ㄥ煙璁块棶
-//header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With'); //璁剧疆鍏佽鐨勮法鍩焗eader
-date_default_timezone_set("Asia/chongqing");
-error_reporting(E_ERROR);
-header("Content-Type: text/html; charset=utf-8");
-
-$CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("config.json")), true);
-$action = $_GET['action'];
-
-switch ($action) {
-    case 'config':
-        $result =  json_encode($CONFIG);
-        break;
-
-    /* 涓婁紶鍥剧墖 */
-    case 'uploadimage':
-    /* 涓婁紶娑傞甫 */
-    case 'uploadscrawl':
-    /* 涓婁紶瑙嗛 */
-    case 'uploadvideo':
-    /* 涓婁紶鏂囦欢 */
-    case 'uploadfile':
-        $result = include("action_upload.php");
-        break;
-
-    /* 鍒楀嚭鍥剧墖 */
-    case 'listimage':
-        $result = include("action_list.php");
-        break;
-    /* 鍒楀嚭鏂囦欢 */
-    case 'listfile':
-        $result = include("action_list.php");
-        break;
-
-    /* 鎶撳彇杩滅▼鏂囦欢 */
-    case 'catchimage':
-        $result = include("action_crawler.php");
-        break;
-
-    default:
-        $result = json_encode(array(
-            'state'=> '璇锋眰鍦板潃鍑洪敊'
-        ));
-        break;
-}
-
-/* 杈撳嚭缁撴灉 */
-if (isset($_GET["callback"])) {
-    if (preg_match("/^[\w_]+$/", $_GET["callback"])) {
-        echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
-    } else {
-        echo json_encode(array(
-            'state'=> 'callback鍙傛暟涓嶅悎娉�'
-        ));
-    }
-} else {
-    echo $result;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/themes/default/css/ueditor.css b/server/public/ueditor/themes/default/css/ueditor.css
deleted file mode 100644
index 1e775ee..0000000
--- a/server/public/ueditor/themes/default/css/ueditor.css
+++ /dev/null
@@ -1,1903 +0,0 @@
-/*鍩虹UI鏋勫缓
-*/
-/* common layer */
-.edui-default .edui-box {
-    border: none;
-    padding: 0;
-    margin: 0;
-    overflow: hidden;
-}
-
-.edui-default a.edui-box {
-    display: block;
-    text-decoration: none;
-    color: black;
-}
-
-.edui-default a.edui-box:hover {
-    text-decoration: none;
-}
-
-.edui-default a.edui-box:active {
-    text-decoration: none;
-}
-
-.edui-default table.edui-box {
-    border-collapse: collapse;
-}
-
-.edui-default ul.edui-box {
-    list-style-type: none;
-}
-
-div.edui-box {
-    position: relative;
-    display: -moz-inline-box !important;
-    display: inline-block !important;
-    vertical-align: top;
-}
-
-.edui-default .edui-clearfix {
-    zoom: 1
-}
-
-.edui-default .edui-clearfix:after {
-    content: '\20';
-    display: block;
-    clear: both;
-}
-
- * html div.edui-box {
-    display: inline !important;
-}
-
-*:first-child+html div.edui-box {
-    display: inline !important;
-}
-
-/* control layout */
-.edui-default .edui-button-body, .edui-splitbutton-body, .edui-menubutton-body, .edui-combox-body {
-    position: relative;
-}
-
-.edui-default .edui-popup {
-    position: absolute;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-}
-
-.edui-default .edui-popup .edui-shadow {
-    position: absolute;
-    z-index: -1;
-}
-
-.edui-default .edui-popup .edui-bordereraser {
-    position: absolute;
-    overflow: hidden;
-}
-
-.edui-default .edui-tablepicker .edui-canvas {
-    position: relative;
-}
-
-.edui-default .edui-tablepicker .edui-canvas .edui-overlay {
-    position: absolute;
-}
-
-.edui-default .edui-dialog-modalmask, .edui-dialog-dragmask {
-    position: absolute;
-    left: 0;
-    top: 0;
-    width: 100%;
-    height: 100%;
-}
-
-.edui-default .edui-toolbar {
-    position: relative;
-}
-
-/*
- * default theme
- */
-.edui-default .edui-label {
-    cursor: default;
-}
-
-.edui-default span.edui-clickable {
-    color: blue;
-    cursor: pointer;
-    text-decoration: underline;
-}
-
-.edui-default span.edui-unclickable {
-    color: gray;
-    cursor: default;
-}
-/* 宸ュ叿鏍� */
-.edui-default .edui-toolbar {
-    cursor: default;
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    padding: 1px;
-    overflow: hidden; /*鍏ㄥ睆涓嬪崟鐙竴琛屼笉鍗犱綅*/
-    zoom: 1;
-    width:auto;
-    height:auto;
-}
-
-.edui-default .edui-toolbar .edui-button,
-.edui-default .edui-toolbar .edui-splitbutton,
-.edui-default .edui-toolbar .edui-menubutton,
-.edui-default .edui-toolbar .edui-combox {
-    margin: 1px;
-}
-/*UI宸ュ叿鏍忋�佺紪杈戝尯鍩熴�佸簳閮�*/
-.edui-default .edui-editor {
-    border: 1px solid #d4d4d4;
-    background-color: white;
-    position: relative;
-    overflow: visible;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-}
-.edui-editor div{
-    width:auto;
-    height:auto;
-}
-.edui-default .edui-editor-toolbarbox {
-    position: relative;
-    zoom: 1;
-    -webkit-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6);
-    -moz-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6);
-    box-shadow:0 1px 4px rgba(204, 204, 204, 0.6);
-    border-top-left-radius:2px;
-    border-top-right-radius:2px;
-}
-
-.edui-default .edui-editor-toolbarboxouter {
-    border-bottom: 1px solid #d4d4d4;
-    background-color: #fafafa;
-    background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
-    background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
-    background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
-    background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
-    background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
-    background-repeat: repeat-x;
-    /*border: 1px solid #d4d4d4;*/
-    -webkit-border-radius: 4px 4px 0 0;
-    -moz-border-radius: 4px 4px 0 0;
-    border-radius: 4px 4px 0 0;
-    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
-    *zoom: 1;
-    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
-}
-
-.edui-default .edui-editor-toolbarboxinner {
-    padding: 2px;
-}
-
-.edui-default .edui-editor-iframeholder {
-    position: relative;
-    /*for fix ie6 toolbarmsg under iframe bug. relative -> static */
-    /*_position: static !important;*
-}
-
-.edui-default .edui-editor-iframeholder textarea {
-    font-family: consolas, "Courier New", "lucida console", monospace;
-    font-size: 12px;
-    line-height: 18px;
-}
-
-.edui-default .edui-editor-bottombar {
-    /*border-top: 1px solid #ccc;*/
-    /*height: 20px;*/
-    /*width: 40%;*/
-    /*float: left;*/
-    /*overflow: hidden;*/
-}
-
-.edui-default .edui-editor-bottomContainer {
-    overflow: hidden;
-}
-
-.edui-default .edui-editor-bottomContainer table {
-    width: 100%;
-    height: 0;
-    overflow: hidden;
-    border-spacing: 0;
-}
-
-.edui-default .edui-editor-bottomContainer td {
-    white-space: nowrap;
-    border-top: 1px solid #ccc;
-    line-height: 20px;
-    font-size: 12px;
-    font-family: Arial, Helvetica, Tahoma, Verdana, Sans-Serif;
-}
-
-.edui-default .edui-editor-wordcount {
-    text-align: right;
-    margin-right: 5px;
-    color: #aaa;
-}
-.edui-default .edui-editor-scale {
-    width: 12px;
-}
-.edui-default .edui-editor-scale .edui-editor-icon {
-    float: right;
-    width: 100%;
-    height: 12px;
-    margin-top: 10px;
-    background: url(../images/scale.png) no-repeat;
-    cursor: se-resize;
-}
-.edui-default .edui-editor-breadcrumb {
-    margin: 2px 0 0 3px;
-}
-
-.edui-default .edui-editor-breadcrumb span {
-    cursor: pointer;
-    text-decoration: underline;
-    color: blue;
-}
-
-.edui-default .edui-toolbar .edui-for-fullscreen {
-    float: right;
-}
-
-.edui-default .edui-bubble .edui-popup-content {
-    border: 1px solid #DCAC6C;
-    background-color: #fff6d9;
-    padding: 5px;
-    font-size: 10pt;
-    font-family: "瀹嬩綋";
-}
-
-.edui-default .edui-bubble .edui-shadow {
-    /*box-shadow: 1px 1px 3px #818181;*/
-    /*-webkit-box-shadow: 2px 2px 3px #818181;*/
-    /*-moz-box-shadow: 2px 2px 3px #818181;*/
-    /*filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius = '2', MakeShadow = 'true', ShadowOpacity = '0.5');*/
-}
-
-.edui-default .edui-editor-toolbarmsg {
-    background-color: #FFF6D9;
-    border-bottom: 1px solid #ccc;
-    position: absolute;
-    bottom: -25px;
-    left: 0;
-    z-index: 1009;
-    width: 99.9%;
-}
-
-.edui-default .edui-editor-toolbarmsg-upload {
-    font-size: 14px;
-    color: blue;
-    width: 100px;
-    height: 16px;
-    line-height: 16px;
-    cursor: pointer;
-    position: absolute;
-    top: 5px;
-    left: 350px;
-}
-
-.edui-default .edui-editor-toolbarmsg-label {
-    font-size: 12px;
-    line-height: 16px;
-    padding: 4px;
-}
-
-.edui-default .edui-editor-toolbarmsg-close {
-    float: right;
-    width: 20px;
-    height: 16px;
-    line-height: 16px;
-    cursor: pointer;
-    color: red;
-}
-/*鍙�変腑鑿滃崟鎸夐挳*/
-.edui-default .edui-list .edui-bordereraser {
-    display: none;
-}
-
-.edui-default .edui-listitem {
-    padding: 1px;
-    white-space: nowrap;
-}
-
-.edui-default .edui-list .edui-state-hover {
-    position: relative;
-    background-color: #fff5d4;
-    border: 1px solid #dcac6c;
-    padding: 0;
-}
-
-.edui-default .edui-for-fontfamily .edui-listitem-label {
-    min-width: 130px;
-    _width: 120px;
-    font-size: 12px;
-    height: 22px;
-    line-height: 22px;
-    padding-left: 5px;
-}
-.edui-default .edui-for-insertcode .edui-listitem-label {
-    min-width: 120px;
-    _width: 120px;
-    font-size: 12px;
-    height: 22px;
-    line-height: 22px;
-    padding-left: 5px;
-}
-.edui-default .edui-for-underline .edui-listitem-label {
-    min-width: 120px;
-    _width: 120px;
-    padding: 3px 5px;
-    font-size: 12px;
-}
-
-.edui-default .edui-for-fontsize .edui-listitem-label {
-    min-width: 120px;
-    _width: 120px;
-    padding: 3px 5px;
-
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label {
-    min-width: 200px;
-    _width: 200px;
-    padding: 2px 5px;
-}
-
-.edui-default .edui-for-rowspacingtop .edui-listitem-label,
-.edui-default .edui-for-rowspacingbottom .edui-listitem-label {
-    min-width: 53px;
-    _width: 53px;
-    padding: 2px 5px;
-}
-
-.edui-default .edui-for-lineheight .edui-listitem-label {
-    min-width: 53px;
-    _width: 53px;
-    padding: 2px 5px;
-}
-
-.edui-default .edui-for-customstyle .edui-listitem-label {
-    min-width: 200px;
-    _width: 200px;
-    width: 200px !important;
-    padding: 2px 5px;
-}
-/* 鍙�変腑鎸夐挳寮瑰嚭鑿滃崟*/
-.edui-default .edui-menu {
-    z-index: 3000;
-}
-
-.edui-default .edui-menu .edui-popup-content {
-    padding: 3px;
-}
-
-.edui-default .edui-menu-body {
-    _width: 150px;
-    min-width: 170px;
-    background: url("../images/sparator_v.png") repeat-y 25px;
-}
-
-.edui-default .edui-menuitem-body {
-}
-
-.edui-default .edui-menuitem {
-    height: 20px;
-    cursor: default;
-    vertical-align: top;
-}
-
-.edui-default .edui-menuitem .edui-icon {
-    width: 20px !important;
-    height: 20px !important;
-    background: url(../images/icons.png) 0 -4000px;
-    background: url(../images/icons.gif) 0 -4000px\9;
-}
-
-.edui-default .edui-menuitem .edui-label {
-    font-size: 12px;
-    line-height: 20px;
-    height: 20px;
-    padding-left: 10px;
-}
-
-.edui-default .edui-state-checked .edui-menuitem-body {
-    background: url("../images/icons-all.gif") no-repeat 6px -205px;
-}
-
-.edui-default .edui-state-disabled .edui-menuitem-label {
-    color: gray;
-}
-
-
-/*涓嶅彲閫変腑鑿滃崟鎸夐挳 */
-.edui-default .edui-toolbar .edui-combox-body .edui-button-body {
-    width: 60px;
-    font-size: 12px;
-    height: 20px;
-    line-height: 20px;
-    padding-left: 5px;
-    white-space: nowrap;
-    margin: 0 3px 0 0;
-}
-
-.edui-default .edui-toolbar .edui-combox-body .edui-arrow {
-    background: url(../images/icons.png) -741px 0;
-    _background: url(../images/icons.gif) -741px 0;
-    height: 20px;
-    width: 9px;
-}
-
-.edui-default .edui-toolbar .edui-combox .edui-combox-body {
-    border: 1px solid #CCC;
-    background-color: white;
-    border-radius: 2px;
-    -webkit-border-radius: 2px;
-    -moz-border-radius: 2px;
-}
-
-.edui-default .edui-toolbar .edui-combox-body .edui-splitborder {
-    display: none;
-}
-
-.edui-default .edui-toolbar .edui-combox-body .edui-arrow {
-    border-left: 1px solid #CCC;
-}
-
-.edui-default .edui-toolbar .edui-state-hover .edui-combox-body {
-    background-color: #fff5d4;
-    border: 1px solid #dcac6c;
-}
-
-.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow {
-    border-left: 1px solid #dcac6c;
-}
-
-.edui-default .edui-toolbar .edui-state-checked .edui-combox-body {
-    background-color: #FFE69F;
-    border: 1px solid #DCAC6C;
-}
-
-.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow {
-    border-left: 1px solid #DCAC6C;
-}
-
-.edui-toolbar .edui-state-disabled .edui-combox-body {
-    background-color: #F0F0EE;
-    opacity: 0.3;
-    filter: alpha(opacity = 30);
-}
-
-.edui-toolbar .edui-state-opened .edui-combox-body {
-    background-color: white;
-    border: 1px solid gray;
-}
-/*鏅�氭寜閽牱寮忓強鐘舵��*/
-.edui-default .edui-toolbar .edui-button .edui-icon,
-.edui-default .edui-toolbar .edui-menubutton .edui-icon,
-.edui-default .edui-toolbar .edui-splitbutton .edui-icon {
-    height: 20px !important;
-    width: 20px !important;
-    background-image: url(../images/icons.png);
-    background-image: url(../images/icons.gif) \9;
-}
-
-.edui-default .edui-toolbar .edui-button .edui-button-wrap {
-    padding: 1px;
-    position: relative;
-}
-
-.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap {
-    background-color: #fff5d4;
-    padding: 0;
-    border: 1px solid #dcac6c;
-}
-
-.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap {
-    background-color: #ffe69f;
-    padding: 0;
-    border: 1px solid #dcac6c;
-    border-radius: 2px;
-    -webkit-border-radius: 2px;
-    -moz-border-radius: 2px;
-}
-
-.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap {
-    background-color: #ffffff;
-    padding: 0;
-    border: 1px solid gray;
-}
-.edui-default .edui-toolbar .edui-state-disabled .edui-label {
-    color: #ccc;
-}
-.edui-default .edui-toolbar .edui-state-disabled .edui-icon {
-    opacity: 0.3;
-    filter: alpha(opacity = 30);
-}
-
-/* toolbar icons */
-.edui-default .edui-for-undo .edui-icon {
-    background-position: -160px 0;
-}
-
-.edui-default  .edui-for-redo .edui-icon {
-    background-position: -100px 0;
-}
-
-.edui-default  .edui-for-bold .edui-icon {
-    background-position: 0 0;
-}
-
-.edui-default  .edui-for-italic .edui-icon {
-    background-position: -60px 0;
-}
-
-.edui-default  .edui-for-fontborder .edui-icon {
-    background-position:-160px -40px;
-}
-.edui-default  .edui-for-underline .edui-icon {
-    background-position: -140px 0;
-}
-
-.edui-default  .edui-for-strikethrough .edui-icon {
-    background-position: -120px 0;
-}
-
-.edui-default  .edui-for-subscript .edui-icon {
-    background-position: -600px 0;
-}
-
-.edui-default  .edui-for-superscript .edui-icon {
-    background-position: -620px 0;
-}
-
-.edui-default  .edui-for-blockquote .edui-icon {
-    background-position: -220px 0;
-}
-
-.edui-default  .edui-for-forecolor .edui-icon {
-    background-position: -720px 0;
-}
-
-.edui-default  .edui-for-backcolor .edui-icon {
-    background-position: -760px 0;
-}
-
-.edui-default  .edui-for-inserttable .edui-icon {
-    background-position: -580px -20px;
-}
-
-.edui-default  .edui-for-autotypeset .edui-icon {
-    background-position: -640px -40px;
-}
-
-.edui-default  .edui-for-justifyleft .edui-icon {
-    background-position: -460px 0;
-}
-
-.edui-default  .edui-for-justifycenter .edui-icon {
-    background-position: -420px 0;
-}
-
-.edui-default  .edui-for-justifyright .edui-icon {
-    background-position: -480px 0;
-}
-
-.edui-default  .edui-for-justifyjustify .edui-icon {
-    background-position: -440px 0;
-}
-
-.edui-default  .edui-for-insertorderedlist .edui-icon {
-    background-position: -80px 0;
-}
-
-.edui-default  .edui-for-insertunorderedlist .edui-icon {
-    background-position: -20px 0;
-}
-
-.edui-default  .edui-for-lineheight .edui-icon {
-    background-position: -725px -40px;
-}
-
-.edui-default  .edui-for-rowspacingbottom .edui-icon {
-    background-position: -745px -40px;
-}
-
-.edui-default  .edui-for-rowspacingtop .edui-icon {
-    background-position: -765px -40px;
-}
-
-.edui-default  .edui-for-horizontal .edui-icon {
-    background-position: -360px 0;
-}
-
-.edui-default  .edui-for-link .edui-icon {
-    background-position: -500px 0;
-}
-
-.edui-default  .edui-for-code .edui-icon {
-    background-position: -440px -40px;
-}
-
-.edui-default  .edui-for-insertimage .edui-icon {
-    background-position: -726px -77px;
-}
-
-.edui-default  .edui-for-insertframe .edui-icon {
-    background-position: -240px -40px;
-}
-
-.edui-default  .edui-for-emoticon .edui-icon {
-    background-position: -60px -20px;
-}
-
-.edui-default  .edui-for-spechars .edui-icon {
-    background-position: -240px 0;
-}
-
-.edui-default  .edui-for-help .edui-icon {
-    background-position: -340px 0;
-}
-
-.edui-default  .edui-for-print .edui-icon {
-    background-position: -440px -20px;
-}
-
-.edui-default  .edui-for-preview .edui-icon {
-    background-position: -420px -20px;
-}
-
-.edui-default  .edui-for-selectall .edui-icon {
-    background-position: -400px -20px;
-}
-
-.edui-default  .edui-for-searchreplace .edui-icon {
-    background-position: -520px -20px;
-}
-
-.edui-default  .edui-for-map .edui-icon {
-    background-position: -40px -40px;
-}
-
-.edui-default  .edui-for-gmap .edui-icon {
-    background-position: -260px -40px;
-}
-
-.edui-default  .edui-for-insertvideo .edui-icon {
-    background-position: -320px -20px;
-}
-
-.edui-default  .edui-for-time .edui-icon {
-    background-position: -160px -20px;
-}
-
-.edui-default  .edui-for-date .edui-icon {
-    background-position: -140px -20px;
-}
-
-.edui-default  .edui-for-cut .edui-icon {
-    background-position: -680px 0;
-}
-
-.edui-default  .edui-for-copy .edui-icon {
-    background-position: -700px 0;
-}
-
-.edui-default  .edui-for-paste .edui-icon {
-    background-position: -560px 0;
-}
-
-.edui-default  .edui-for-formatmatch .edui-icon {
-    background-position: -40px 0;
-}
-
-.edui-default  .edui-for-pasteplain .edui-icon {
-    background-position: -360px -20px;
-}
-
-.edui-default  .edui-for-directionalityltr .edui-icon {
-    background-position: -20px -20px;
-}
-
-.edui-default  .edui-for-directionalityrtl .edui-icon {
-    background-position: -40px -20px;
-}
-
-.edui-default  .edui-for-source .edui-icon {
-    background-position: -261px -0px;
-}
-
-.edui-default  .edui-for-removeformat .edui-icon {
-    background-position: -580px 0;
-}
-
-.edui-default  .edui-for-unlink .edui-icon {
-    background-position: -640px 0;
-}
-
-.edui-default  .edui-for-touppercase .edui-icon {
-    background-position: -786px 0;
-}
-
-.edui-default  .edui-for-tolowercase .edui-icon {
-    background-position: -806px 0;
-}
-
-.edui-default  .edui-for-insertrow .edui-icon {
-    background-position: -478px -76px;
-}
-
-.edui-default  .edui-for-insertrownext .edui-icon {
-    background-position: -498px -76px;
-}
-
-.edui-default  .edui-for-insertcol .edui-icon {
-    background-position: -455px -76px;
-}
-
-.edui-default  .edui-for-insertcolnext  .edui-icon {
-    background-position: -429px -76px;
-}
-
-.edui-default  .edui-for-mergeright .edui-icon {
-    background-position: -60px -40px;
-}
-
-.edui-default  .edui-for-mergedown .edui-icon {
-    background-position: -80px -40px;
-}
-
-.edui-default  .edui-for-splittorows .edui-icon {
-    background-position: -100px -40px;
-}
-
-.edui-default  .edui-for-splittocols .edui-icon {
-    background-position: -120px -40px;
-}
-
-.edui-default  .edui-for-insertparagraphbeforetable .edui-icon {
-    background-position: -140px -40px;
-}
-
-.edui-default  .edui-for-deleterow .edui-icon {
-    background-position: -660px -20px;
-}
-
-.edui-default  .edui-for-deletecol .edui-icon {
-    background-position: -640px -20px;
-}
-
-.edui-default  .edui-for-splittocells .edui-icon {
-    background-position: -800px -20px;
-}
-
-.edui-default  .edui-for-mergecells .edui-icon {
-    background-position: -760px -20px;
-}
-
-.edui-default  .edui-for-deletetable .edui-icon {
-    background-position: -620px -20px;
-}
-
-.edui-default  .edui-for-cleardoc .edui-icon {
-    background-position: -520px 0;
-}
-
-.edui-default  .edui-for-fullscreen .edui-icon {
-    background-position: -100px -20px;
-}
-
-.edui-default  .edui-for-anchor .edui-icon {
-    background-position: -200px 0;
-}
-
-.edui-default  .edui-for-pagebreak .edui-icon {
-    background-position: -460px -40px;
-}
-
-.edui-default  .edui-for-imagenone .edui-icon {
-    background-position: -480px -40px;
-}
-
-.edui-default  .edui-for-imageleft .edui-icon {
-    background-position: -500px -40px;
-}
-
-.edui-default  .edui-for-wordimage .edui-icon {
-    background-position: -660px -40px;
-}
-
-.edui-default  .edui-for-imageright .edui-icon {
-    background-position: -520px -40px;
-}
-
-.edui-default  .edui-for-imagecenter .edui-icon {
-    background-position: -540px -40px;
-}
-
-.edui-default  .edui-for-indent .edui-icon {
-    background-position: -400px 0;
-}
-
-.edui-default  .edui-for-outdent .edui-icon {
-    background-position: -540px 0;
-}
-
-.edui-default  .edui-for-webapp .edui-icon {
-    background-position: -601px -40px
-}
-
-.edui-default  .edui-for-table .edui-icon {
-    background-position: -580px -20px;
-}
-
-.edui-default  .edui-for-edittable .edui-icon {
-    background-position: -420px -40px;
-}
-
-.edui-default  .edui-for-template .edui-icon {
-    background-position: -339px -40px;
-}
-
-.edui-default  .edui-for-delete .edui-icon {
-    background-position: -360px -40px;
-}
-
-.edui-default  .edui-for-attachment .edui-icon {
-    background-position: -620px -40px;
-}
-
-.edui-default  .edui-for-edittd .edui-icon {
-    background-position: -700px -40px;
-}
-
-.edui-default  .edui-for-snapscreen .edui-icon {
-    background-position: -581px -40px
-}
-
-.edui-default  .edui-for-scrawl .edui-icon {
-    background-position: -801px -41px
-}
-
-.edui-default  .edui-for-background .edui-icon {
-    background-position: -680px -40px;
-}
-
-.edui-default  .edui-for-music .edui-icon {
-    background-position: -18px -40px
-}
-
-.edui-default  .edui-for-formula .edui-icon {
-    background-position: -200px -40px
-}
-
-.edui-default  .edui-for-aligntd  .edui-icon {
-    background-position: -236px -76px;
-}
-
-.edui-default  .edui-for-insertparagraphtrue  .edui-icon {
-    background-position: -625px -76px;
-}
-
-.edui-default  .edui-for-insertparagraph  .edui-icon {
-    background-position: -602px -76px;
-}
-
-.edui-default  .edui-for-insertcaption  .edui-icon {
-    background-position: -336px -76px;
-}
-
-.edui-default  .edui-for-deletecaption  .edui-icon {
-    background-position: -362px -76px;
-}
-
-.edui-default  .edui-for-inserttitle  .edui-icon {
-    background-position: -286px -76px;
-}
-
-.edui-default  .edui-for-deletetitle  .edui-icon {
-    background-position: -311px -76px;
-}
-
-.edui-default  .edui-for-aligntable  .edui-icon {
-    background-position: -440px 0;
-}
-
-.edui-default  .edui-for-tablealignment-left  .edui-icon {
-    background-position: -460px 0;
-}
-
-.edui-default  .edui-for-tablealignment-center  .edui-icon {
-    background-position: -420px 0;
-}
-
-.edui-default  .edui-for-tablealignment-right  .edui-icon {
-    background-position: -480px 0;
-}
-
-.edui-default  .edui-for-drafts  .edui-icon {
-    background-position: -560px 0;
-}
-
-.edui-default  .edui-for-charts  .edui-icon {
-    background: url( ../images/charts.png ) no-repeat 2px 3px!important;
-}
-
-.edui-default  .edui-for-inserttitlecol  .edui-icon {
-    background-position: -673px -76px;
-}
-
-.edui-default  .edui-for-deletetitlecol  .edui-icon {
-    background-position: -698px -76px;
-}
-
-.edui-default  .edui-for-simpleupload  .edui-icon {
-    background-position: -380px 0px;
-}
-/*splitbutton*/
-.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow,
-.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow {
-    background: url(../images/icons.png) -741px 0;
-    _background: url(../images/icons.gif) -741px 0;
-    height: 20px;
-    width: 9px;
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body {
-    padding: 1px;
-}
-
-.edui-default .edui-toolbar .edui-splitborder {
-    width: 1px;
-    height: 20px;
-}
-
-.edui-default .edui-toolbar .edui-state-hover .edui-splitborder {
-    width: 1px;
-    border-left: 0px solid #dcac6c;
-}
-
-.edui-default .edui-toolbar .edui-state-active .edui-splitborder {
-    width: 0;
-    border-left: 1px solid gray;
-}
-
-.edui-default .edui-toolbar .edui-state-opened .edui-splitborder {
-    width: 1px;
-    border: 0;
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body {
-    background-color: #fff5d4;
-    border: 1px solid #dcac6c;
-    padding: 0;
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body {
-    background-color: #FFE69F;
-    border: 1px solid #DCAC6C;
-    padding: 0;
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body {
-    background-color: #ffffff;
-    border: 1px solid gray;
-    padding: 0;
-}
-
-.edui-default .edui-state-disabled .edui-arrow {
-    opacity: 0.3;
-    _filter: alpha(opacity = 30);
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body {
-    background-color: white;
-    border: 1px solid gray;
-    padding: 0;
-}
-
-.edui-default .edui-for-insertorderedlist .edui-bordereraser,
-.edui-default .edui-for-lineheight .edui-bordereraser,
-.edui-default .edui-for-rowspacingtop .edui-bordereraser,
-.edui-default .edui-for-rowspacingbottom .edui-bordereraser,
-.edui-default .edui-for-insertunorderedlist .edui-bordereraser {
-    background-color: white;
-}
-
-/* 瑙e喅宓屽瀵艰嚧鐨勫浘鏍囬棶棰� */
-.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon,
-.edui-default .edui-for-lineheight .edui-popup-body .edui-icon,
-.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon,
-.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon,
-.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon {
-    /*background-position: 0 -40px;*/
-    background-image: none  ;
-}
-
-/* 寮瑰嚭鑿滃崟 */
-.edui-default .edui-popup {
-    z-index: 3000;
-    background-color: #ffffff;
-    width:auto;
-    height:auto;
-
-}
-
-.edui-default .edui-popup .edui-shadow {
-    left: 0;
-    top: 0;
-    width: 100%;
-    height: 100%;
-}
-
-.edui-default .edui-popup-content {
-    border:1px solid #ccc;
-    border: 1px solid rgba(0, 0, 0, 0.2);
-    *border-right-width: 2px;
-    *border-bottom-width: 2px;
-    -webkit-border-radius: 6px;
-    -moz-border-radius: 6px;
-    border-radius: 6px;
-    -webkit-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2);
-    -moz-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2);
-    box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2);
-    -webkit-background-clip: padding-box;
-    -moz-background-clip: padding;
-    background-clip: padding-box;
-    padding: 5px;
-    background:#ffffff;
-}
-
-.edui-default .edui-popup .edui-bordereraser {
-    background-color: white;
-    height: 3px;
-}
-
-.edui-default .edui-menu .edui-bordereraser {
-    height: 3px;
-}
-
-.edui-default .edui-anchor-topleft .edui-bordereraser {
-    left: 1px;
-    top: -2px;
-}
-
-.edui-default .edui-anchor-topright .edui-bordereraser {
-    right: 1px;
-    top: -2px;
-}
-
-.edui-default .edui-anchor-bottomleft .edui-bordereraser {
-    left: 0;
-    bottom: -6px;
-    height: 7px;
-    border-left: 1px solid gray;
-    border-right: 1px solid gray;
-}
-
-.edui-default .edui-anchor-bottomright .edui-bordereraser {
-    right: 0;
-    bottom: -6px;
-    height: 7px;
-    border-left: 1px solid gray;
-    border-right: 1px solid gray;
-}
-
-.edui-popup div{
-    width:auto;
-    height:auto;
-}
-.edui-default .edui-editor-messageholder {
-    display: block;
-    width: 150px;
-    height: auto;
-    border: 0;
-    margin: 0;
-    padding: 0;
-    position: absolute;
-    top: 28px;
-    right: 3px;
-}
-
-.edui-default .edui-message{
-    min-height: 10px;
-    text-shadow: 0 1px 0 rgba(255,255,255,0.5);
-    padding: 0;
-    margin-bottom: 3px;
-    position: relative;
-}
-.edui-default .edui-message-body{
-    border-radius: 3px;
-    padding: 8px 15px 8px 8px;
-    color: #c09853;
-    background-color: #fcf8e3;
-    border: 1px solid #fbeed5;
-}
-.edui-default .edui-message-type-info{
-    color: #3a87ad;
-    background-color: #d9edf7;
-    border-color: #bce8f1
-}
-.edui-default .edui-message-type-success{
-    color: #468847;
-    background-color: #dff0d8;
-    border-color: #d6e9c6
-}
-.edui-default .edui-message-type-danger,
-.edui-default .edui-message-type-error{
-    color: #b94a48;
-    background-color: #f2dede;
-    border-color: #eed3d7
-}
-.edui-default .edui-message .edui-message-closer {
-    display: block;
-    width: 16px;
-    height: 16px;
-    line-height: 16px;
-    position: absolute;
-    top: 0;
-    right: 0;
-    padding: 0;
-    cursor: pointer;
-    background: transparent;
-    border: 0;
-    float: right;
-    font-size: 20px;
-    font-weight: bold;
-    color: #999;
-    text-shadow: 0 1px 0 #fff;
-    font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
-}
-.edui-default .edui-message .edui-message-content {
-    font-size: 10pt;
-    word-wrap: break-word;
-    word-break: normal;
-}
-/* 寮瑰嚭瀵硅瘽妗嗘寜閽拰瀵硅瘽妗嗗ぇ灏� */
-.edui-default .edui-dialog {
-    z-index: 2000;
-    position: absolute;
-
-}
-
-.edui-dialog div{
-    width:auto;
-}
-
-.edui-default .edui-dialog-wrap {
-    margin-right: 6px;
-    margin-bottom: 6px;
-}
-
-.edui-default .edui-dialog-fullscreen-flag {
-    margin-right: 0;
-    margin-bottom: 0;
-}
-
-.edui-default .edui-dialog-body {
-    position: relative;
-    padding:2px 0 0 2px;
-    _zoom: 1;
-}
-
-.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body {
-    padding: 0;
-}
-
-.edui-default .edui-dialog-shadow {
-    position: absolute;
-    z-index: -1;
-    left: 0;
-    top: 0;
-    width: 100%;
-    height: 100%;
-    background-color: #ffffff;
-    border: 1px solid #ccc;
-    border: 1px solid rgba(0, 0, 0, 0.2);
-    *border-right-width: 2px;
-    *border-bottom-width: 2px;
-    -webkit-border-radius: 6px;
-    -moz-border-radius: 6px;
-    border-radius: 6px;
-    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-    -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-    -webkit-background-clip: padding-box;
-    -moz-background-clip: padding;
-    background-clip: padding-box;
-}
-
-.edui-default .edui-dialog-foot {
-    background-color: white;
-}
-
-.edui-default .edui-dialog-titlebar {
-    height: 26px;
-    border-bottom: 1px solid #c6c6c6;
-    background: url(../images/dialog-title-bg.png) repeat-x bottom;
-    position: relative;
-    cursor: move;
-}
-.edui-default .edui-dialog-caption {
-    font-weight: bold;
-    font-size: 12px;
-    line-height: 26px;
-    padding-left: 5px;
-}
-
-.edui-default .edui-dialog-draghandle {
-    height: 26px;
-}
-
-.edui-default .edui-dialog-closebutton {
-    position: absolute !important;
-    right: 5px;
-    top: 3px;
-}
-
-.edui-default .edui-dialog-closebutton .edui-button-body {
-    height: 20px;
-    width: 20px;
-    cursor: pointer;
-    background: url("../images/icons-all.gif") no-repeat 0 -59px;
-}
-
-.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body {
-    background: url("../images/icons-all.gif") no-repeat 0 -89px;
-}
-
-.edui-default .edui-dialog-foot {
-    height: 40px;
-}
-
-.edui-default .edui-dialog-buttons {
-    position: absolute;
-    right: 0;
-}
-
-.edui-default .edui-dialog-buttons .edui-button {
-    margin-right: 10px;
-}
-
-.edui-default .edui-dialog-buttons .edui-button .edui-button-body {
-    background: url("../images/icons-all.gif") no-repeat;
-    height: 24px;
-    width: 96px;
-    font-size: 12px;
-    line-height: 24px;
-    text-align: center;
-    cursor: default;
-}
-
-.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body {
-    background: url("../images/icons-all.gif") no-repeat 0 -30px;
-}
-
-.edui-default .edui-dialog iframe {
-    border: 0;
-    padding: 0;
-    margin: 0;
-    vertical-align: top;
-}
-
-.edui-default .edui-dialog-modalmask {
-    opacity: 0.3;
-    filter: alpha(opacity = 30);
-    background-color: #ccc;
-    position: absolute;
-    /*z-index: 1999;*/
-}
-
-.edui-default .edui-dialog-dragmask {
-    position: absolute;
-    /*z-index: 2001;*/
-    background-color: transparent;
-    cursor: move;
-}
-
-.edui-default .edui-dialog-content {
-    position: relative;
-}
-
-.edui-default .dialogcontmask {
-    cursor: move;
-    visibility: hidden;
-    display: block;
-    position: absolute;
-    width: 100%;
-    height: 100%;
-    opacity: 0;
-    filter: alpha(opacity = 0);
-}
-
-/*link-dialog*/
-.edui-default .edui-for-link .edui-dialog-content {
-    width: 420px;
-    height: 200px;
-    overflow: hidden;
-}
-/*background-dialog*/
-.edui-default .edui-for-background .edui-dialog-content {
-    width: 440px;
-    height: 280px;
-    overflow: hidden;
-}
-
-/*template-dialog*/
-.edui-default .edui-for-template .edui-dialog-content {
-    width: 630px;
-    height: 390px;
-    overflow: hidden;
-}
-
-/*scrawl-dialog*/
-.edui-default .edui-for-scrawl .edui-dialog-content {
-    width: 515px;
-    *width: 506px;
-    height: 360px;
-}
-
-/*spechars-dialog*/
-.edui-default .edui-for-spechars .edui-dialog-content {
-    width: 620px;
-    height: 500px;
-    *width: 630px;
-    *height: 570px;
-}
-
-/*image-dialog*/
-.edui-default .edui-for-insertimage .edui-dialog-content {
-    width: 650px;
-    height: 400px;
-    overflow: hidden;
-}
-/*webapp-dialog*/
-.edui-default .edui-for-webapp .edui-dialog-content {
-    width: 560px;
-    _width: 565px;
-    height: 450px;
-    overflow: hidden;
-}
-
-/*image-insertframe*/
-.edui-default .edui-for-insertframe .edui-dialog-content {
-    width: 350px;
-    height: 200px;
-    overflow: hidden;
-}
-
-/*wordImage-dialog*/
-.edui-default .edui-for-wordimage .edui-dialog-content {
-    width: 620px;
-    height: 380px;
-    overflow: hidden;
-}
-
-/*attachment-dialog*/
-.edui-default .edui-for-attachment .edui-dialog-content {
-    width: 650px;
-    height: 400px;
-    overflow: hidden;
-}
-
-
-/*map-dialog*/
-.edui-default .edui-for-map .edui-dialog-content {
-    width: 550px;
-    height: 400px;
-}
-
-/*gmap-dialog*/
-.edui-default .edui-for-gmap .edui-dialog-content {
-    width: 550px;
-    height: 400px;
-}
-
-/*video-dialog*/
-.edui-default .edui-for-insertvideo .edui-dialog-content {
-    width: 590px;
-    height: 390px;
-}
-
-/*anchor-dialog*/
-.edui-default .edui-for-anchor .edui-dialog-content {
-    width: 320px;
-    height: 60px;
-    overflow: hidden;
-}
-
-/*searchreplace-dialog*/
-.edui-default .edui-for-searchreplace .edui-dialog-content {
-    width: 400px;
-    height: 220px;
-}
-
-/*help-dialog*/
-.edui-default .edui-for-help .edui-dialog-content {
-    width: 400px;
-    height: 420px;
-}
-
-/*edittable-dialog*/
-.edui-default .edui-for-edittable .edui-dialog-content {
-    width: 540px;
-    _width:590px;
-    height: 335px;
-}
-
-/*edittip-dialog*/
-.edui-default .edui-for-edittip .edui-dialog-content {
-    width: 225px;
-    height: 60px;
-}
-
-/*edittd-dialog*/
-.edui-default .edui-for-edittd .edui-dialog-content {
-    width: 240px;
-    height: 50px;
-}
-/*snapscreen-dialog*/
-.edui-default .edui-for-snapscreen .edui-dialog-content {
-    width: 400px;
-    height: 220px;
-}
-
-/*music-dialog*/
-.edui-default .edui-for-music .edui-dialog-content {
-    width: 515px;
-    height: 360px;
-}
-
-/*娈佃惤寮瑰嚭鑿滃崟*/
-.edui-default .edui-for-paragraph .edui-listitem-label {
-    font-family: Tahoma, Verdana, Arial, Helvetica;
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p {
-    font-size: 22px;
-    line-height: 27px;
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1 {
-    font-weight: bolder;
-    font-size: 32px;
-    line-height: 36px;
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2 {
-    font-weight: bolder;
-    font-size: 27px;
-    line-height: 29px;
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3 {
-    font-weight: bolder;
-    font-size: 19px;
-    line-height: 23px;
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4 {
-    font-weight: bolder;
-    font-size: 16px;
-    line-height: 19px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5 {
-    font-weight: bolder;
-    font-size: 13px;
-    line-height: 16px;
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6 {
-    font-weight: bolder;
-    font-size: 12px;
-    line-height: 14px;
-}
-/* 琛ㄦ牸寮瑰嚭鑿滃崟 */
-.edui-default .edui-for-inserttable .edui-splitborder {
-    display: none
-}
-.edui-default .edui-for-inserttable  .edui-splitbutton-body .edui-arrow {
-    width: 0
-}
-.edui-default .edui-toolbar .edui-for-inserttable  .edui-state-active .edui-splitborder{
-    border-left: 1px solid transparent;
-}
-.edui-default .edui-tablepicker .edui-infoarea {
-    height: 14px;
-    line-height: 14px;
-    font-size: 12px;
-    width: 220px;
-    margin-bottom: 3px;
-    clear: both;
-}
-
-.edui-default .edui-tablepicker .edui-infoarea .edui-label {
-    float: left;
-}
-
-.edui-default .edui-dialog-buttons .edui-label {
-    line-height: 24px;
-}
-
-.edui-default .edui-tablepicker .edui-infoarea .edui-clickable {
-    float: right;
-}
-
-.edui-default .edui-tablepicker .edui-pickarea {
-    background: url("../images/unhighlighted.gif") repeat;
-    height: 220px;
-    width: 220px;
-}
-
-.edui-default .edui-tablepicker .edui-pickarea .edui-overlay {
-    background: url("../images/highlighted.gif") repeat;
-}
-
-/* 棰滆壊寮瑰嚭鑿滃崟 */
-.edui-default .edui-colorpicker-topbar {
-    height: 27px;
-    width: 200px;
-    /*border-bottom: 1px gray dashed;*/
-}
-
-.edui-default .edui-colorpicker-preview {
-    height: 20px;
-    border: 1px inset black;
-    margin-left: 1px;
-    width: 128px;
-    float: left;
-}
-
-.edui-default .edui-colorpicker-nocolor {
-    float: right;
-    margin-right: 1px;
-    font-size: 12px;
-    line-height: 14px;
-    height: 14px;
-    border: 1px solid #333;
-    padding: 3px 5px;
-    cursor: pointer;
-}
-
-.edui-default .edui-colorpicker-tablefirstrow {
-    height: 30px;
-}
-
-.edui-default .edui-colorpicker-colorcell {
-    width: 14px;
-    height: 14px;
-    display: block;
-    margin: 0;
-    cursor: pointer;
-}
-
-.edui-default .edui-colorpicker-colorcell:hover {
-    width: 14px;
-    height: 14px;
-    margin: 0;
-}
-.edui-default .edui-colorpicker-advbtn{
-    display: block;
-    text-align: center;
-    cursor: pointer;
-    height:20px;
-}
-.arrow_down{
-    background: white url('../images/arrow_down.png') no-repeat center;
-}
-.arrow_up{
-    background: white url('../images/arrow_up.png') no-repeat center;
-}
-/*楂樼骇鐨勬牱寮�*/
-.edui-colorpicker-adv{
-    position: relative;
-    overflow: hidden;
-    height: 180px;
-    display: none;
-}
-.edui-colorpicker-plant, .edui-colorpicker-hue {
-    border: solid 1px #666;
-}
-.edui-colorpicker-pad {
-    width: 150px;
-    height: 150px;
-    left: 14px;
-    top: 13px;
-    position: absolute;
-    background: red;
-    overflow: hidden;
-    cursor: crosshair;
-}
-.edui-colorpicker-cover{
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 150px;
-    height: 150px;
-    background: url("../images/tangram-colorpicker.png") -160px -200px;
-}
-.edui-colorpicker-padDot{
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: 11px;
-    height: 11px;
-    overflow: hidden;
-    background: url(../images/tangram-colorpicker.png) 0px -200px repeat-x;
-    z-index: 1000;
-
-}
-.edui-colorpicker-sliderMain {
-    position: absolute;
-    left: 171px;
-    top: 13px;
-    width: 19px;
-    height: 152px;
-    background: url(../images/tangram-colorpicker.png) -179px -12px no-repeat;
-
-}
-.edui-colorpicker-slider {
-    width: 100%;
-    height: 100%;
-    cursor: pointer;
-}
-.edui-colorpicker-thumb{
-    position: absolute;
-    top: 0;
-    cursor: pointer;
-    height: 3px;
-    left: -1px;
-    right: -1px;
-    border: 1px solid black;
-    background: white;
-    opacity: .8;
-}
-/*鑷姩鎺掔増寮瑰嚭鑿滃崟*/
-.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body {
-    font-size: 12px;
-    margin-bottom: 3px;
-    clear: both;
-}
-
-.edui-default .edui-autotypesetpicker-body table {
-    border-collapse: separate;
-    border-spacing: 2px;
-}
-
-.edui-default .edui-autotypesetpicker-body td {
-    font-size: 12px;
-    word-wrap:break-word;
-}
-
-.edui-default .edui-autotypesetpicker-body td input {
-    margin: 3px 3px 3px 4px;
-    *margin: 1px 0 0 0;
-}
-/*鑷姩鎺掔増寮瑰嚭鑿滃崟*/
-.edui-default .edui-cellalignpicker .edui-cellalignpicker-body {
-    width: 70px;
-    font-size: 12px;
-    cursor: default;
-}
-
-.edui-default .edui-cellalignpicker-body table {
-    border-collapse: separate;
-    border-spacing: 0;
-}
-.edui-default .edui-cellalignpicker-body td{
-    padding: 1px;
-}
-.edui-default .edui-cellalignpicker-body .edui-icon{
-    height: 20px;
-    width: 20px;
-    padding: 1px;
-    background-image: url(../images/table-cell-align.png);
-}
-
-.edui-default .edui-cellalignpicker-body .edui-left{
-    background-position: 0 0;
-}
-
-.edui-default .edui-cellalignpicker-body .edui-center{
-    background-position: -25px 0;
-}
-.edui-default .edui-cellalignpicker-body .edui-right{
-    background-position: -51px 0;
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{
-    background-position: -73px 0;
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{
-    background-position: -98px 0;
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{
-    background-position: -124px 0;
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left {
-    background-position: -146px 0;
-    background-color: #f1f4f5;
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center {
-    background-position: -245px 0;
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right {
-    background-position: -271px 0;
-}
-/*鍒嗛殧绾�*/
-.edui-default .edui-toolbar .edui-separator {
-    width: 2px;
-    height: 20px;
-    margin: 2px 4px 2px 3px;
-    background: url(../images/icons.png) -181px 0;
-    background: url(../images/icons.gif) -181px 0 \9;
-}
-
-/*棰滆壊鎸夐挳 */
-.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump {
-    position: absolute;
-    overflow: hidden;
-    bottom: 1px;
-    left: 1px;
-    width: 18px;
-    height: 4px;
-}
-/*琛ㄦ儏鎸夐挳鍙婂脊鍑鸿彍鍗�*/
-/*鍘婚櫎浜嗚〃鎯呯殑涓嬫媺绠ご*/
-.edui-default .edui-for-emotion .edui-icon {
-    background-position: -60px -20px;
-}
-.edui-default .edui-for-emotion .edui-popup-content iframe
-{
-    width: 514px;
-    height: 380px;
-    overflow: hidden;
-}
-.edui-default .edui-for-emotion .edui-popup-content
-{
-    position: relative;
-    z-index: 555
-}
-
-.edui-default .edui-for-emotion .edui-splitborder {
-    display: none
-}
-
-.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow
-{
-    width: 0
-}
-.edui-default .edui-toolbar .edui-for-emotion  .edui-state-active .edui-splitborder
-{
-    border-left: 1px solid transparent;
-}
-/*contextmenu*/
-.edui-default .edui-hassubmenu .edui-arrow {
-    height: 20px;
-    width: 20px;
-    float: right;
-    background: url("../images/icons-all.gif") no-repeat 10px -233px;
-}
-
-.edui-default .edui-menu-body .edui-menuitem {
-    padding: 1px;
-}
-
-.edui-default .edui-menuseparator {
-    margin: 2px 0;
-    height: 1px;
-    overflow: hidden;
-}
-
-.edui-default .edui-menuseparator-inner {
-    border-bottom: 1px solid #e2e3e3;
-    margin-left: 29px;
-    margin-right: 1px;
-}
-
-.edui-default .edui-menu-body .edui-state-hover {
-    padding: 0 !important;
-    background-color: #fff5d4;
-    border: 1px solid #dcac6c;
-}
-/*寮瑰嚭鑿滃崟*/
-.edui-default .edui-shortcutmenu {
-    padding: 2px;
-    width: 190px;
-    height: 50px;
-    background-color: #fff;
-    border: 1px solid #ccc;
-    border-radius: 5px;
-}
-
-/*绮樿创寮瑰嚭鑿滃崟*/
-.edui-default .edui-wordpastepop .edui-popup-content{
-    border: none;
-    padding: 0;
-    width: 54px;
-    height: 21px;
-}
-.edui-default  .edui-pasteicon {
-    width: 100%;
-    height: 100%;
-    background-image: url('../images/wordpaste.png');
-    background-position: 0 0;
-}
-
-.edui-default  .edui-pasteicon.edui-state-opened {
-    background-position: 0 -34px;
-}
-
-.edui-default  .edui-pastecontainer {
-    position: relative;
-    visibility: hidden;
-    width: 97px;
-    background: #fff;
-    border: 1px solid #ccc;
-}
-
-.edui-default  .edui-pastecontainer .edui-title {
-    font-weight: bold;
-    background: #F8F8FF;
-    height: 25px;
-    line-height: 25px;
-    font-size: 12px;
-    padding-left: 5px;
-}
-
-.edui-default  .edui-pastecontainer .edui-button {
-    overflow: hidden;
-    margin: 3px 0;
-}
-
-.edui-default  .edui-pastecontainer .edui-button .edui-richtxticon,
-.edui-default  .edui-pastecontainer .edui-button .edui-tagicon,
-.edui-default  .edui-pastecontainer .edui-button .edui-plaintxticon{
-    float: left;
-    cursor: pointer;
-    width: 29px;
-    height: 29px;
-    margin-left: 5px;
-    background-image: url('../images/wordpaste.png');
-    background-repeat: no-repeat;
-}
-.edui-default  .edui-pastecontainer .edui-button .edui-richtxticon {
-    margin-left: 0;
-    background-position: -109px 0;
-}
-.edui-default  .edui-pastecontainer .edui-button .edui-tagicon {
-    background-position: -148px 1px;
-}
-
-.edui-default  .edui-pastecontainer .edui-button .edui-plaintxticon {
-    background-position: -72px 0;
-}
-
-.edui-default  .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon {
-    background-position: -109px -34px;
-}
-.edui-default  .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{
-    background-position: -148px -34px;
-}
-.edui-default  .edui-pastecontainer .edui-button  .edui-state-hover .edui-plaintxticon{
-    background-position: -72px -34px;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/themes/default/css/ueditor.min.css b/server/public/ueditor/themes/default/css/ueditor.min.css
deleted file mode 100644
index d13fb2c..0000000
--- a/server/public/ueditor/themes/default/css/ueditor.min.css
+++ /dev/null
@@ -1,1885 +0,0 @@
-/*!
- * UEditor
- * version: ueditor
- * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST)
- */
-
-
-.edui-default .edui-box {
-  border: 0;
-  padding: 0;
-  margin: 0;
-  overflow: hidden
-}
-
-.edui-default a.edui-box {
-  display: block;
-  text-decoration: none;
-  color: #000
-}
-
-.edui-default a.edui-box:hover {
-  text-decoration: none
-}
-
-.edui-default a.edui-box:active {
-  text-decoration: none
-}
-
-.edui-default table.edui-box {
-  border-collapse: collapse
-}
-
-.edui-default ul.edui-box {
-  list-style-type: none
-}
-
-div.edui-box {
-  position: relative;
-  display: -moz-inline-box !important;
-  display: inline-block !important;
-  vertical-align: top
-}
-
-.edui-default .edui-clearfix {
-  zoom: 1
-}
-
-.edui-default .edui-clearfix:after {
-  content: '\20';
-  display: block;
-  clear: both
-}
-
-* html div.edui-box {
-  display: inline !important
-}
-
-:first-child+html div.edui-box {
-  display: inline !important
-}
-
-.edui-default .edui-button-body,
-.edui-splitbutton-body,
-.edui-menubutton-body,
-.edui-combox-body {
-  position: relative
-}
-
-.edui-default .edui-popup {
-  position: absolute;
-  -webkit-user-select: none;
-  -moz-user-select: none
-}
-
-.edui-default .edui-popup .edui-shadow {
-  position: absolute;
-  z-index: -1
-}
-
-.edui-default .edui-popup .edui-bordereraser {
-  position: absolute;
-  overflow: hidden
-}
-
-.edui-default .edui-tablepicker .edui-canvas {
-  position: relative
-}
-
-.edui-default .edui-tablepicker .edui-canvas .edui-overlay {
-  position: absolute
-}
-
-.edui-default .edui-dialog-modalmask,
-.edui-dialog-dragmask {
-  position: absolute;
-  left: 0;
-  top: 0;
-  width: 100%;
-  height: 100%
-}
-
-.edui-default .edui-toolbar {
-  position: relative
-}
-
-.edui-default .edui-label {
-  cursor: default
-}
-
-.edui-default span.edui-clickable {
-  color: #00f;
-  cursor: pointer;
-  text-decoration: underline
-}
-
-.edui-default span.edui-unclickable {
-  color: gray;
-  cursor: default
-}
-
-.edui-default .edui-toolbar {
-  cursor: default;
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  padding: 1px;
-  overflow: hidden;
-  zoom: 1;
-  width: auto;
-  height: auto
-}
-
-.edui-default .edui-toolbar .edui-button,
-.edui-default .edui-toolbar .edui-splitbutton,
-.edui-default .edui-toolbar .edui-menubutton,
-.edui-default .edui-toolbar .edui-combox {
-  margin: 1px
-}
-
-.edui-default .edui-editor {
-  border: 1px solid #d4d4d4;
-  background-color: #fff;
-  position: relative;
-  overflow: visible;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px
-}
-
-.edui-editor div {
-  width: auto;
-  height: auto
-}
-
-.edui-default .edui-editor-toolbarbox {
-  position: relative;
-  zoom: 1;
-  -webkit-box-shadow: 0 1px 4px rgba(204, 204, 204, .6);
-  -moz-box-shadow: 0 1px 4px rgba(204, 204, 204, .6);
-  box-shadow: 0 1px 4px rgba(204, 204, 204, .6);
-  border-top-left-radius: 2px;
-  border-top-right-radius: 2px
-}
-
-.edui-default .edui-editor-toolbarboxouter {
-  border-bottom: 1px solid #d4d4d4;
-  background-color: #fafafa;
-  background-image: -moz-linear-gradient(top, #fff, #f2f2f2);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#f2f2f2));
-  background-image: -webkit-linear-gradient(top, #fff, #f2f2f2);
-  background-image: -o-linear-gradient(top, #fff, #f2f2f2);
-  background-image: linear-gradient(to bottom, #fff, #f2f2f2);
-  background-repeat: repeat-x;
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
-  *zoom: 1;
-  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, .065);
-  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, .065);
-  box-shadow: 0 1px 4px rgba(0, 0, 0, .065)
-}
-
-.edui-default .edui-editor-toolbarboxinner {
-  padding: 2px
-}
-
-.edui-default .edui-editor-iframeholder {
-  position: relative
-}
-
-.edui-default .edui-editor-bottomContainer {
-  overflow: hidden
-}
-
-.edui-default .edui-editor-bottomContainer table {
-  width: 100%;
-  height: 0;
-  overflow: hidden;
-  border-spacing: 0
-}
-
-.edui-default .edui-editor-bottomContainer td {
-  white-space: nowrap;
-  border-top: 1px solid #ccc;
-  line-height: 20px;
-  font-size: 12px;
-  font-family: Arial, Helvetica, Tahoma, Verdana, Sans-Serif
-}
-
-.edui-default .edui-editor-wordcount {
-  text-align: right;
-  margin-right: 5px;
-  color: #aaa
-}
-
-.edui-default .edui-editor-scale {
-  width: 12px
-}
-
-.edui-default .edui-editor-scale .edui-editor-icon {
-  float: right;
-  width: 100%;
-  height: 12px;
-  margin-top: 10px;
-  background: url(../images/scale.png) no-repeat;
-  cursor: se-resize
-}
-
-.edui-default .edui-editor-breadcrumb {
-  margin: 2px 0 0 3px
-}
-
-.edui-default .edui-editor-breadcrumb span {
-  cursor: pointer;
-  text-decoration: underline;
-  color: #00f
-}
-
-.edui-default .edui-toolbar .edui-for-fullscreen {
-  float: right
-}
-
-.edui-default .edui-bubble .edui-popup-content {
-  border: 1px solid #DCAC6C;
-  background-color: #fff6d9;
-  padding: 5px;
-  font-size: 10pt;
-  font-family: "瀹嬩綋"
-}
-
-.edui-default .edui-bubble .edui-shadow {}
-
-.edui-default .edui-editor-toolbarmsg {
-  background-color: #FFF6D9;
-  border-bottom: 1px solid #ccc;
-  position: absolute;
-  bottom: -25px;
-  left: 0;
-  z-index: 1009;
-  width: 99.9%
-}
-
-.edui-default .edui-editor-toolbarmsg-upload {
-  font-size: 14px;
-  color: #00f;
-  width: 100px;
-  height: 16px;
-  line-height: 16px;
-  cursor: pointer;
-  position: absolute;
-  top: 5px;
-  left: 350px
-}
-
-.edui-default .edui-editor-toolbarmsg-label {
-  font-size: 12px;
-  line-height: 16px;
-  padding: 4px
-}
-
-.edui-default .edui-editor-toolbarmsg-close {
-  float: right;
-  width: 20px;
-  height: 16px;
-  line-height: 16px;
-  cursor: pointer;
-  color: red
-}
-
-.edui-default .edui-list .edui-bordereraser {
-  display: none
-}
-
-.edui-default .edui-listitem {
-  padding: 1px;
-  white-space: nowrap
-}
-
-.edui-default .edui-list .edui-state-hover {
-  position: relative;
-  background-color: #fff5d4;
-  border: 1px solid #dcac6c;
-  padding: 0
-}
-
-.edui-default .edui-for-fontfamily .edui-listitem-label {
-  min-width: 130px;
-  _width: 120px;
-  font-size: 12px;
-  height: 22px;
-  line-height: 22px;
-  padding-left: 5px
-}
-
-.edui-default .edui-for-insertcode .edui-listitem-label {
-  min-width: 120px;
-  _width: 120px;
-  font-size: 12px;
-  height: 22px;
-  line-height: 22px;
-  padding-left: 5px
-}
-
-.edui-default .edui-for-underline .edui-listitem-label {
-  min-width: 120px;
-  _width: 120px;
-  padding: 3px 5px;
-  font-size: 12px
-}
-
-.edui-default .edui-for-fontsize .edui-listitem-label {
-  min-width: 120px;
-  _width: 120px;
-  padding: 3px 5px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label {
-  min-width: 200px;
-  _width: 200px;
-  padding: 2px 5px
-}
-
-.edui-default .edui-for-rowspacingtop .edui-listitem-label,
-.edui-default .edui-for-rowspacingbottom .edui-listitem-label {
-  min-width: 53px;
-  _width: 53px;
-  padding: 2px 5px
-}
-
-.edui-default .edui-for-lineheight .edui-listitem-label {
-  min-width: 53px;
-  _width: 53px;
-  padding: 2px 5px
-}
-
-.edui-default .edui-for-customstyle .edui-listitem-label {
-  min-width: 200px;
-  _width: 200px;
-  width: 200px !important;
-  padding: 2px 5px
-}
-
-.edui-default .edui-menu {
-  z-index: 3000
-}
-
-.edui-default .edui-menu .edui-popup-content {
-  padding: 3px
-}
-
-.edui-default .edui-menu-body {
-  _width: 150px;
-  min-width: 170px;
-  background: url(../images/sparator_v.png) repeat-y 25px
-}
-
-.edui-default .edui-menuitem-body {}
-
-.edui-default .edui-menuitem {
-  height: 20px;
-  cursor: default;
-  vertical-align: top
-}
-
-.edui-default .edui-menuitem .edui-icon {
-  width: 20px !important;
-  height: 20px !important;
-  background: url(../images/icons.png) 0 -4000px;
-  background: url(../images/icons.gif) 0 -4000px\9
-}
-
-.edui-default .edui-menuitem .edui-label {
-  font-size: 12px;
-  line-height: 20px;
-  height: 20px;
-  padding-left: 10px
-}
-
-.edui-default .edui-state-checked .edui-menuitem-body {
-  background: url(../images/icons-all.gif) no-repeat 6px -205px
-}
-
-.edui-default .edui-state-disabled .edui-menuitem-label {
-  color: gray
-}
-
-.edui-default .edui-toolbar .edui-combox-body .edui-button-body {
-  width: 60px;
-  font-size: 12px;
-  height: 20px;
-  line-height: 20px;
-  padding-left: 5px;
-  white-space: nowrap;
-  margin: 0 3px 0 0
-}
-
-.edui-default .edui-toolbar .edui-combox-body .edui-arrow {
-  background: url(../images/icons.png) -741px 0;
-  _background: url(../images/icons.gif) -741px 0;
-  height: 20px;
-  width: 9px
-}
-
-.edui-default .edui-toolbar .edui-combox .edui-combox-body {
-  border: 1px solid #CCC;
-  background-color: #fff;
-  border-radius: 2px;
-  -webkit-border-radius: 2px;
-  -moz-border-radius: 2px
-}
-
-.edui-default .edui-toolbar .edui-combox-body .edui-splitborder {
-  display: none
-}
-
-.edui-default .edui-toolbar .edui-combox-body .edui-arrow {
-  border-left: 1px solid #CCC
-}
-
-.edui-default .edui-toolbar .edui-state-hover .edui-combox-body {
-  background-color: #fff5d4;
-  border: 1px solid #dcac6c
-}
-
-.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow {
-  border-left: 1px solid #dcac6c
-}
-
-.edui-default .edui-toolbar .edui-state-checked .edui-combox-body {
-  background-color: #FFE69F;
-  border: 1px solid #DCAC6C
-}
-
-.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow {
-  border-left: 1px solid #DCAC6C
-}
-
-.edui-toolbar .edui-state-disabled .edui-combox-body {
-  background-color: #F0F0EE;
-  opacity: .3;
-  filter: alpha(opacity=30)
-}
-
-.edui-toolbar .edui-state-opened .edui-combox-body {
-  background-color: #fff;
-  border: 1px solid gray
-}
-
-.edui-default .edui-toolbar .edui-button .edui-icon,
-.edui-default .edui-toolbar .edui-menubutton .edui-icon,
-.edui-default .edui-toolbar .edui-splitbutton .edui-icon {
-  height: 20px !important;
-  width: 20px !important;
-  background-image: url(../images/icons.png);
-  background-image: url(../images/icons.gif) \9
-}
-
-.edui-default .edui-toolbar .edui-button .edui-button-wrap {
-  padding: 1px;
-  position: relative
-}
-
-.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap {
-  background-color: #fff5d4;
-  padding: 0;
-  border: 1px solid #dcac6c
-}
-
-.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap {
-  background-color: #ffe69f;
-  padding: 0;
-  border: 1px solid #dcac6c;
-  border-radius: 2px;
-  -webkit-border-radius: 2px;
-  -moz-border-radius: 2px
-}
-
-.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap {
-  background-color: #fff;
-  padding: 0;
-  border: 1px solid gray
-}
-
-.edui-default .edui-toolbar .edui-state-disabled .edui-label {
-  color: #ccc
-}
-
-.edui-default .edui-toolbar .edui-state-disabled .edui-icon {
-  opacity: .3;
-  filter: alpha(opacity=30)
-}
-
-.edui-default .edui-for-undo .edui-icon {
-  background-position: -160px 0
-}
-
-.edui-default .edui-for-redo .edui-icon {
-  background-position: -100px 0
-}
-
-.edui-default .edui-for-bold .edui-icon {
-  background-position: 0 0
-}
-
-.edui-default .edui-for-italic .edui-icon {
-  background-position: -60px 0
-}
-
-.edui-default .edui-for-fontborder .edui-icon {
-  background-position: -160px -40px
-}
-
-.edui-default .edui-for-underline .edui-icon {
-  background-position: -140px 0
-}
-
-.edui-default .edui-for-strikethrough .edui-icon {
-  background-position: -120px 0
-}
-
-.edui-default .edui-for-subscript .edui-icon {
-  background-position: -600px 0
-}
-
-.edui-default .edui-for-superscript .edui-icon {
-  background-position: -620px 0
-}
-
-.edui-default .edui-for-blockquote .edui-icon {
-  background-position: -220px 0
-}
-
-.edui-default .edui-for-forecolor .edui-icon {
-  background-position: -720px 0
-}
-
-.edui-default .edui-for-backcolor .edui-icon {
-  background-position: -760px 0
-}
-
-.edui-default .edui-for-inserttable .edui-icon {
-  background-position: -580px -20px
-}
-
-.edui-default .edui-for-autotypeset .edui-icon {
-  background-position: -640px -40px
-}
-
-.edui-default .edui-for-justifyleft .edui-icon {
-  background-position: -460px 0
-}
-
-.edui-default .edui-for-justifycenter .edui-icon {
-  background-position: -420px 0
-}
-
-.edui-default .edui-for-justifyright .edui-icon {
-  background-position: -480px 0
-}
-
-.edui-default .edui-for-justifyjustify .edui-icon {
-  background-position: -440px 0
-}
-
-.edui-default .edui-for-insertorderedlist .edui-icon {
-  background-position: -80px 0
-}
-
-.edui-default .edui-for-insertunorderedlist .edui-icon {
-  background-position: -20px 0
-}
-
-.edui-default .edui-for-lineheight .edui-icon {
-  background-position: -725px -40px
-}
-
-.edui-default .edui-for-rowspacingbottom .edui-icon {
-  background-position: -745px -40px
-}
-
-.edui-default .edui-for-rowspacingtop .edui-icon {
-  background-position: -765px -40px
-}
-
-.edui-default .edui-for-horizontal .edui-icon {
-  background-position: -360px 0
-}
-
-.edui-default .edui-for-link .edui-icon {
-  background-position: -500px 0
-}
-
-.edui-default .edui-for-code .edui-icon {
-  background-position: -440px -40px
-}
-
-.edui-default .edui-for-insertimage .edui-icon {
-  background-position: -726px -77px
-}
-
-.edui-default .edui-for-insertframe .edui-icon {
-  background-position: -240px -40px
-}
-
-.edui-default .edui-for-emoticon .edui-icon {
-  background-position: -60px -20px
-}
-
-.edui-default .edui-for-spechars .edui-icon {
-  background-position: -240px 0
-}
-
-.edui-default .edui-for-help .edui-icon {
-  background-position: -340px 0
-}
-
-.edui-default .edui-for-print .edui-icon {
-  background-position: -440px -20px
-}
-
-.edui-default .edui-for-preview .edui-icon {
-  background-position: -420px -20px
-}
-
-.edui-default .edui-for-selectall .edui-icon {
-  background-position: -400px -20px
-}
-
-.edui-default .edui-for-searchreplace .edui-icon {
-  background-position: -520px -20px
-}
-
-.edui-default .edui-for-map .edui-icon {
-  background-position: -40px -40px
-}
-
-.edui-default .edui-for-gmap .edui-icon {
-  background-position: -260px -40px
-}
-
-.edui-default .edui-for-insertvideo .edui-icon {
-  background-position: -320px -20px
-}
-
-.edui-default .edui-for-time .edui-icon {
-  background-position: -160px -20px
-}
-
-.edui-default .edui-for-date .edui-icon {
-  background-position: -140px -20px
-}
-
-.edui-default .edui-for-cut .edui-icon {
-  background-position: -680px 0
-}
-
-.edui-default .edui-for-copy .edui-icon {
-  background-position: -700px 0
-}
-
-.edui-default .edui-for-paste .edui-icon {
-  background-position: -560px 0
-}
-
-.edui-default .edui-for-formatmatch .edui-icon {
-  background-position: -40px 0
-}
-
-.edui-default .edui-for-pasteplain .edui-icon {
-  background-position: -360px -20px
-}
-
-.edui-default .edui-for-directionalityltr .edui-icon {
-  background-position: -20px -20px
-}
-
-.edui-default .edui-for-directionalityrtl .edui-icon {
-  background-position: -40px -20px
-}
-
-.edui-default .edui-for-source .edui-icon {
-  background-position: -261px -0px
-}
-
-.edui-default .edui-for-removeformat .edui-icon {
-  background-position: -580px 0
-}
-
-.edui-default .edui-for-unlink .edui-icon {
-  background-position: -640px 0
-}
-
-.edui-default .edui-for-touppercase .edui-icon {
-  background-position: -786px 0
-}
-
-.edui-default .edui-for-tolowercase .edui-icon {
-  background-position: -806px 0
-}
-
-.edui-default .edui-for-insertrow .edui-icon {
-  background-position: -478px -76px
-}
-
-.edui-default .edui-for-insertrownext .edui-icon {
-  background-position: -498px -76px
-}
-
-.edui-default .edui-for-insertcol .edui-icon {
-  background-position: -455px -76px
-}
-
-.edui-default .edui-for-insertcolnext .edui-icon {
-  background-position: -429px -76px
-}
-
-.edui-default .edui-for-mergeright .edui-icon {
-  background-position: -60px -40px
-}
-
-.edui-default .edui-for-mergedown .edui-icon {
-  background-position: -80px -40px
-}
-
-.edui-default .edui-for-splittorows .edui-icon {
-  background-position: -100px -40px
-}
-
-.edui-default .edui-for-splittocols .edui-icon {
-  background-position: -120px -40px
-}
-
-.edui-default .edui-for-insertparagraphbeforetable .edui-icon {
-  background-position: -140px -40px
-}
-
-.edui-default .edui-for-deleterow .edui-icon {
-  background-position: -660px -20px
-}
-
-.edui-default .edui-for-deletecol .edui-icon {
-  background-position: -640px -20px
-}
-
-.edui-default .edui-for-splittocells .edui-icon {
-  background-position: -800px -20px
-}
-
-.edui-default .edui-for-mergecells .edui-icon {
-  background-position: -760px -20px
-}
-
-.edui-default .edui-for-deletetable .edui-icon {
-  background-position: -620px -20px
-}
-
-.edui-default .edui-for-cleardoc .edui-icon {
-  background-position: -520px 0
-}
-
-.edui-default .edui-for-fullscreen .edui-icon {
-  background-position: -100px -20px
-}
-
-.edui-default .edui-for-anchor .edui-icon {
-  background-position: -200px 0
-}
-
-.edui-default .edui-for-pagebreak .edui-icon {
-  background-position: -460px -40px
-}
-
-.edui-default .edui-for-imagenone .edui-icon {
-  background-position: -480px -40px
-}
-
-.edui-default .edui-for-imageleft .edui-icon {
-  background-position: -500px -40px
-}
-
-.edui-default .edui-for-wordimage .edui-icon {
-  background-position: -660px -40px
-}
-
-.edui-default .edui-for-imageright .edui-icon {
-  background-position: -520px -40px
-}
-
-.edui-default .edui-for-imagecenter .edui-icon {
-  background-position: -540px -40px
-}
-
-.edui-default .edui-for-indent .edui-icon {
-  background-position: -400px 0
-}
-
-.edui-default .edui-for-outdent .edui-icon {
-  background-position: -540px 0
-}
-
-.edui-default .edui-for-webapp .edui-icon {
-  background-position: -601px -40px
-}
-
-.edui-default .edui-for-table .edui-icon {
-  background-position: -580px -20px
-}
-
-.edui-default .edui-for-edittable .edui-icon {
-  background-position: -420px -40px
-}
-
-.edui-default .edui-for-template .edui-icon {
-  background-position: -339px -40px
-}
-
-.edui-default .edui-for-delete .edui-icon {
-  background-position: -360px -40px
-}
-
-.edui-default .edui-for-attachment .edui-icon {
-  background-position: -620px -40px
-}
-
-.edui-default .edui-for-edittd .edui-icon {
-  background-position: -700px -40px
-}
-
-.edui-default .edui-for-snapscreen .edui-icon {
-  background-position: -581px -40px
-}
-
-.edui-default .edui-for-scrawl .edui-icon {
-  background-position: -801px -41px
-}
-
-.edui-default .edui-for-background .edui-icon {
-  background-position: -680px -40px
-}
-
-.edui-default .edui-for-music .edui-icon {
-  background-position: -18px -40px
-}
-
-.edui-default .edui-for-formula .edui-icon {
-  background-position: -200px -40px
-}
-
-.edui-default .edui-for-aligntd .edui-icon {
-  background-position: -236px -76px
-}
-
-.edui-default .edui-for-insertparagraphtrue .edui-icon {
-  background-position: -625px -76px
-}
-
-.edui-default .edui-for-insertparagraph .edui-icon {
-  background-position: -602px -76px
-}
-
-.edui-default .edui-for-insertcaption .edui-icon {
-  background-position: -336px -76px
-}
-
-.edui-default .edui-for-deletecaption .edui-icon {
-  background-position: -362px -76px
-}
-
-.edui-default .edui-for-inserttitle .edui-icon {
-  background-position: -286px -76px
-}
-
-.edui-default .edui-for-deletetitle .edui-icon {
-  background-position: -311px -76px
-}
-
-.edui-default .edui-for-aligntable .edui-icon {
-  background-position: -440px 0
-}
-
-.edui-default .edui-for-tablealignment-left .edui-icon {
-  background-position: -460px 0
-}
-
-.edui-default .edui-for-tablealignment-center .edui-icon {
-  background-position: -420px 0
-}
-
-.edui-default .edui-for-tablealignment-right .edui-icon {
-  background-position: -480px 0
-}
-
-.edui-default .edui-for-drafts .edui-icon {
-  background-position: -560px 0
-}
-
-.edui-default .edui-for-charts .edui-icon {
-  background: url(../images/charts.png ) no-repeat 2px 3px !important
-}
-
-.edui-default .edui-for-inserttitlecol .edui-icon {
-  background-position: -673px -76px
-}
-
-.edui-default .edui-for-deletetitlecol .edui-icon {
-  background-position: -698px -76px
-}
-
-.edui-default .edui-for-simpleupload .edui-icon {
-  background-position: -380px 0
-}
-
-.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow,
-.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow {
-  background: url(../images/icons.png) -741px 0;
-  _background: url(../images/icons.gif) -741px 0;
-  height: 20px;
-  width: 9px
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body {
-  padding: 1px
-}
-
-.edui-default .edui-toolbar .edui-splitborder {
-  width: 1px;
-  height: 20px
-}
-
-.edui-default .edui-toolbar .edui-state-hover .edui-splitborder {
-  width: 1px;
-  border-left: 0 solid #dcac6c
-}
-
-.edui-default .edui-toolbar .edui-state-active .edui-splitborder {
-  width: 0;
-  border-left: 1px solid gray
-}
-
-.edui-default .edui-toolbar .edui-state-opened .edui-splitborder {
-  width: 1px;
-  border: 0
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body {
-  background-color: #fff5d4;
-  border: 1px solid #dcac6c;
-  padding: 0
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body {
-  background-color: #FFE69F;
-  border: 1px solid #DCAC6C;
-  padding: 0
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body {
-  background-color: #fff;
-  border: 1px solid gray;
-  padding: 0
-}
-
-.edui-default .edui-state-disabled .edui-arrow {
-  opacity: .3;
-  _filter: alpha(opacity=30)
-}
-
-.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,
-.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body {
-  background-color: #fff;
-  border: 1px solid gray;
-  padding: 0
-}
-
-.edui-default .edui-for-insertorderedlist .edui-bordereraser,
-.edui-default .edui-for-lineheight .edui-bordereraser,
-.edui-default .edui-for-rowspacingtop .edui-bordereraser,
-.edui-default .edui-for-rowspacingbottom .edui-bordereraser,
-.edui-default .edui-for-insertunorderedlist .edui-bordereraser {
-  background-color: #fff
-}
-
-.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon,
-.edui-default .edui-for-lineheight .edui-popup-body .edui-icon,
-.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon,
-.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon,
-.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon {
-  background-image: none
-}
-
-.edui-default .edui-popup {
-  z-index: 3000;
-  background-color: #fff;
-  width: auto;
-  height: auto
-}
-
-.edui-default .edui-popup .edui-shadow {
-  left: 0;
-  top: 0;
-  width: 100%;
-  height: 100%
-}
-
-.edui-default .edui-popup-content {
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, .2);
-  *border-right-width: 2px;
-  *border-bottom-width: 2px;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 4px rgba(0, 0, 0, .2);
-  -moz-box-shadow: 0 3px 4px rgba(0, 0, 0, .2);
-  box-shadow: 0 3px 4px rgba(0, 0, 0, .2);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding;
-  background-clip: padding-box;
-  padding: 5px;
-  background: #fff
-}
-
-.edui-default .edui-popup .edui-bordereraser {
-  background-color: #fff;
-  height: 3px
-}
-
-.edui-default .edui-menu .edui-bordereraser {
-  height: 3px
-}
-
-.edui-default .edui-anchor-topleft .edui-bordereraser {
-  left: 1px;
-  top: -2px
-}
-
-.edui-default .edui-anchor-topright .edui-bordereraser {
-  right: 1px;
-  top: -2px
-}
-
-.edui-default .edui-anchor-bottomleft .edui-bordereraser {
-  left: 0;
-  bottom: -6px;
-  height: 7px;
-  border-left: 1px solid gray;
-  border-right: 1px solid gray
-}
-
-.edui-default .edui-anchor-bottomright .edui-bordereraser {
-  right: 0;
-  bottom: -6px;
-  height: 7px;
-  border-left: 1px solid gray;
-  border-right: 1px solid gray
-}
-
-.edui-popup div {
-  width: auto;
-  height: auto
-}
-
-.edui-default .edui-editor-messageholder {
-  display: block;
-  width: 150px;
-  height: auto;
-  border: 0;
-  margin: 0;
-  padding: 0;
-  position: absolute;
-  top: 28px;
-  right: 3px
-}
-
-.edui-default .edui-message {
-  min-height: 10px;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
-  padding: 0;
-  margin-bottom: 3px;
-  position: relative
-}
-
-.edui-default .edui-message-body {
-  border-radius: 3px;
-  padding: 8px 15px 8px 8px;
-  color: #c09853;
-  background-color: #fcf8e3;
-  border: 1px solid #fbeed5
-}
-
-.edui-default .edui-message-type-info {
-  color: #3a87ad;
-  background-color: #d9edf7;
-  border-color: #bce8f1
-}
-
-.edui-default .edui-message-type-success {
-  color: #468847;
-  background-color: #dff0d8;
-  border-color: #d6e9c6
-}
-
-.edui-default .edui-message-type-danger,
-.edui-default .edui-message-type-error {
-  color: #b94a48;
-  background-color: #f2dede;
-  border-color: #eed3d7
-}
-
-.edui-default .edui-message .edui-message-closer {
-  display: block;
-  width: 16px;
-  height: 16px;
-  line-height: 16px;
-  position: absolute;
-  top: 0;
-  right: 0;
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  float: right;
-  font-size: 20px;
-  font-weight: 700;
-  color: #999;
-  text-shadow: 0 1px 0 #fff;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif
-}
-
-.edui-default .edui-message .edui-message-content {
-  font-size: 10pt;
-  word-wrap: break-word;
-  word-break: normal
-}
-
-.edui-default .edui-dialog {
-  z-index: 2000;
-  position: absolute
-}
-
-.edui-dialog div {
-  width: auto
-}
-
-.edui-default .edui-dialog-wrap {
-  margin-right: 6px;
-  margin-bottom: 6px
-}
-
-.edui-default .edui-dialog-fullscreen-flag {
-  margin-right: 0;
-  margin-bottom: 0
-}
-
-.edui-default .edui-dialog-body {
-  position: relative;
-  padding: 2px 0 0 2px;
-  _zoom: 1
-}
-
-.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body {
-  padding: 0
-}
-
-.edui-default .edui-dialog-shadow {
-  position: absolute;
-  z-index: -1;
-  left: 0;
-  top: 0;
-  width: 100%;
-  height: 100%;
-  background-color: #fff;
-  border: 1px solid #ccc;
-  border: 1px solid rgba(0, 0, 0, .2);
-  *border-right-width: 2px;
-  *border-bottom-width: 2px;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-  box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding;
-  background-clip: padding-box
-}
-
-.edui-default .edui-dialog-foot {
-  background-color: #fff
-}
-
-.edui-default .edui-dialog-titlebar {
-  height: 26px;
-  border-bottom: 1px solid #c6c6c6;
-  background: url(../images/dialog-title-bg.png) repeat-x bottom;
-  position: relative;
-  cursor: move
-}
-
-.edui-default .edui-dialog-caption {
-  font-weight: 700;
-  font-size: 12px;
-  line-height: 26px;
-  padding-left: 5px
-}
-
-.edui-default .edui-dialog-draghandle {
-  height: 26px
-}
-
-.edui-default .edui-dialog-closebutton {
-  position: absolute !important;
-  right: 5px;
-  top: 3px
-}
-
-.edui-default .edui-dialog-closebutton .edui-button-body {
-  height: 20px;
-  width: 20px;
-  cursor: pointer;
-  background: url(../images/icons-all.gif) no-repeat 0 -59px
-}
-
-.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body {
-  background: url(../images/icons-all.gif) no-repeat 0 -89px
-}
-
-.edui-default .edui-dialog-foot {
-  height: 40px
-}
-
-.edui-default .edui-dialog-buttons {
-  position: absolute;
-  right: 0
-}
-
-.edui-default .edui-dialog-buttons .edui-button {
-  margin-right: 10px
-}
-
-.edui-default .edui-dialog-buttons .edui-button .edui-button-body {
-  background: url(../images/icons-all.gif) no-repeat;
-  height: 24px;
-  width: 96px;
-  font-size: 12px;
-  line-height: 24px;
-  text-align: center;
-  cursor: default
-}
-
-.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body {
-  background: url(../images/icons-all.gif) no-repeat 0 -30px
-}
-
-.edui-default .edui-dialog iframe {
-  border: 0;
-  padding: 0;
-  margin: 0;
-  vertical-align: top
-}
-
-.edui-default .edui-dialog-modalmask {
-  opacity: .3;
-  filter: alpha(opacity=30);
-  background-color: #ccc;
-  position: absolute
-}
-
-.edui-default .edui-dialog-dragmask {
-  position: absolute;
-  background-color: transparent;
-  cursor: move
-}
-
-.edui-default .edui-dialog-content {
-  position: relative
-}
-
-.edui-default .dialogcontmask {
-  cursor: move;
-  visibility: hidden;
-  display: block;
-  position: absolute;
-  width: 100%;
-  height: 100%;
-  opacity: 0;
-  filter: alpha(opacity=0)
-}
-
-.edui-default .edui-for-link .edui-dialog-content {
-  width: 420px;
-  height: 200px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-background .edui-dialog-content {
-  width: 440px;
-  height: 280px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-template .edui-dialog-content {
-  width: 630px;
-  height: 390px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-scrawl .edui-dialog-content {
-  width: 515px;
-  *width: 506px;
-  height: 360px
-}
-
-.edui-default .edui-for-spechars .edui-dialog-content {
-  width: 620px;
-  height: 500px;
-  *width: 630px;
-  *height: 570px
-}
-
-.edui-default .edui-for-insertimage .edui-dialog-content {
-  width: 650px;
-  height: 400px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-webapp .edui-dialog-content {
-  width: 560px;
-  _width: 565px;
-  height: 450px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-insertframe .edui-dialog-content {
-  width: 350px;
-  height: 200px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-wordimage .edui-dialog-content {
-  width: 620px;
-  height: 380px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-attachment .edui-dialog-content {
-  width: 650px;
-  height: 400px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-map .edui-dialog-content {
-  width: 550px;
-  height: 400px
-}
-
-.edui-default .edui-for-gmap .edui-dialog-content {
-  width: 550px;
-  height: 400px
-}
-
-.edui-default .edui-for-insertvideo .edui-dialog-content {
-  width: 590px;
-  height: 390px
-}
-
-.edui-default .edui-for-anchor .edui-dialog-content {
-  width: 320px;
-  height: 60px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-searchreplace .edui-dialog-content {
-  width: 400px;
-  height: 220px
-}
-
-.edui-default .edui-for-help .edui-dialog-content {
-  width: 400px;
-  height: 420px
-}
-
-.edui-default .edui-for-edittable .edui-dialog-content {
-  width: 540px;
-  _width: 590px;
-  height: 335px
-}
-
-.edui-default .edui-for-edittip .edui-dialog-content {
-  width: 225px;
-  height: 60px
-}
-
-.edui-default .edui-for-edittd .edui-dialog-content {
-  width: 240px;
-  height: 50px
-}
-
-.edui-default .edui-for-snapscreen .edui-dialog-content {
-  width: 400px;
-  height: 220px
-}
-
-.edui-default .edui-for-music .edui-dialog-content {
-  width: 515px;
-  height: 360px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label {
-  font-family: Tahoma, Verdana, Arial, Helvetica
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p {
-  font-size: 22px;
-  line-height: 27px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1 {
-  font-weight: bolder;
-  font-size: 32px;
-  line-height: 36px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2 {
-  font-weight: bolder;
-  font-size: 27px;
-  line-height: 29px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3 {
-  font-weight: bolder;
-  font-size: 19px;
-  line-height: 23px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4 {
-  font-weight: bolder;
-  font-size: 16px;
-  line-height: 19px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5 {
-  font-weight: bolder;
-  font-size: 13px;
-  line-height: 16px
-}
-
-.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6 {
-  font-weight: bolder;
-  font-size: 12px;
-  line-height: 14px
-}
-
-.edui-default .edui-for-inserttable .edui-splitborder {
-  display: none
-}
-
-.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow {
-  width: 0
-}
-
-.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder {
-  border-left: 1px solid transparent
-}
-
-.edui-default .edui-tablepicker .edui-infoarea {
-  height: 14px;
-  line-height: 14px;
-  font-size: 12px;
-  width: 220px;
-  margin-bottom: 3px;
-  clear: both
-}
-
-.edui-default .edui-tablepicker .edui-infoarea .edui-label {
-  float: left
-}
-
-.edui-default .edui-dialog-buttons .edui-label {
-  line-height: 24px
-}
-
-.edui-default .edui-tablepicker .edui-infoarea .edui-clickable {
-  float: right
-}
-
-.edui-default .edui-tablepicker .edui-pickarea {
-  background: url(../images/unhighlighted.gif) repeat;
-  height: 220px;
-  width: 220px
-}
-
-.edui-default .edui-tablepicker .edui-pickarea .edui-overlay {
-  background: url(../images/highlighted.gif) repeat
-}
-
-.edui-default .edui-colorpicker-topbar {
-  height: 27px;
-  width: 200px
-}
-
-.edui-default .edui-colorpicker-preview {
-  height: 20px;
-  border: 1px inset #000;
-  margin-left: 1px;
-  width: 128px;
-  float: left
-}
-
-.edui-default .edui-colorpicker-nocolor {
-  float: right;
-  margin-right: 1px;
-  font-size: 12px;
-  line-height: 14px;
-  height: 14px;
-  border: 1px solid #333;
-  padding: 3px 5px;
-  cursor: pointer
-}
-
-.edui-default .edui-colorpicker-tablefirstrow {
-  height: 30px
-}
-
-.edui-default .edui-colorpicker-colorcell {
-  width: 14px;
-  height: 14px;
-  display: block;
-  margin: 0;
-  cursor: pointer
-}
-
-.edui-default .edui-colorpicker-colorcell:hover {
-  width: 14px;
-  height: 14px;
-  margin: 0
-}
-
-.edui-default .edui-colorpicker-advbtn {
-  display: block;
-  text-align: center;
-  cursor: pointer;
-  height: 20px
-}
-
-.arrow_down {
-  background: #fff url(../images/arrow_down.png) no-repeat center
-}
-
-.arrow_up {
-  background: #fff url(../images/arrow_up.png) no-repeat center
-}
-
-.edui-colorpicker-adv {
-  position: relative;
-  overflow: hidden;
-  height: 180px;
-  display: none
-}
-
-.edui-colorpicker-plant,
-.edui-colorpicker-hue {
-  border: solid 1px #666
-}
-
-.edui-colorpicker-pad {
-  width: 150px;
-  height: 150px;
-  left: 14px;
-  top: 13px;
-  position: absolute;
-  background: red;
-  overflow: hidden;
-  cursor: crosshair
-}
-
-.edui-colorpicker-cover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 150px;
-  height: 150px;
-  background: url(../images/tangram-colorpicker.png) -160px -200px
-}
-
-.edui-colorpicker-padDot {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 11px;
-  height: 11px;
-  overflow: hidden;
-  background: url(../images/tangram-colorpicker.png) 0 -200px repeat-x;
-  z-index: 1000
-}
-
-.edui-colorpicker-sliderMain {
-  position: absolute;
-  left: 171px;
-  top: 13px;
-  width: 19px;
-  height: 152px;
-  background: url(../images/tangram-colorpicker.png) -179px -12px no-repeat
-}
-
-.edui-colorpicker-slider {
-  width: 100%;
-  height: 100%;
-  cursor: pointer
-}
-
-.edui-colorpicker-thumb {
-  position: absolute;
-  top: 0;
-  cursor: pointer;
-  height: 3px;
-  left: -1px;
-  right: -1px;
-  border: 1px solid #000;
-  background: #fff;
-  opacity: .8
-}
-
-.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body {
-  font-size: 12px;
-  margin-bottom: 3px;
-  clear: both
-}
-
-.edui-default .edui-autotypesetpicker-body table {
-  border-collapse: separate;
-  border-spacing: 2px
-}
-
-.edui-default .edui-autotypesetpicker-body td {
-  font-size: 12px;
-  word-wrap: break-word
-}
-
-.edui-default .edui-autotypesetpicker-body td input {
-  margin: 3px 3px 3px 4px;
-  *margin: 1px 0 0
-}
-
-.edui-default .edui-cellalignpicker .edui-cellalignpicker-body {
-  width: 70px;
-  font-size: 12px;
-  cursor: default
-}
-
-.edui-default .edui-cellalignpicker-body table {
-  border-collapse: separate;
-  border-spacing: 0
-}
-
-.edui-default .edui-cellalignpicker-body td {
-  padding: 1px
-}
-
-.edui-default .edui-cellalignpicker-body .edui-icon {
-  height: 20px;
-  width: 20px;
-  padding: 1px;
-  background-image: url(../images/table-cell-align.png)
-}
-
-.edui-default .edui-cellalignpicker-body .edui-left {
-  background-position: 0 0
-}
-
-.edui-default .edui-cellalignpicker-body .edui-center {
-  background-position: -25px 0
-}
-
-.edui-default .edui-cellalignpicker-body .edui-right {
-  background-position: -51px 0
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left {
-  background-position: -73px 0
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center {
-  background-position: -98px 0
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right {
-  background-position: -124px 0
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left {
-  background-position: -146px 0;
-  background-color: #f1f4f5
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center {
-  background-position: -245px 0
-}
-
-.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right {
-  background-position: -271px 0
-}
-
-.edui-default .edui-toolbar .edui-separator {
-  width: 2px;
-  height: 20px;
-  margin: 2px 4px 2px 3px;
-  background: url(../images/icons.png) -181px 0;
-  background: url(../images/icons.gif) -181px 0 \9
-}
-
-.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump {
-  position: absolute;
-  overflow: hidden;
-  bottom: 1px;
-  left: 1px;
-  width: 18px;
-  height: 4px
-}
-
-.edui-default .edui-for-emotion .edui-icon {
-  background-position: -60px -20px
-}
-
-.edui-default .edui-for-emotion .edui-popup-content iframe {
-  width: 514px;
-  height: 380px;
-  overflow: hidden
-}
-
-.edui-default .edui-for-emotion .edui-popup-content {
-  position: relative;
-  z-index: 555
-}
-
-.edui-default .edui-for-emotion .edui-splitborder {
-  display: none
-}
-
-.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow {
-  width: 0
-}
-
-.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder {
-  border-left: 1px solid transparent
-}
-
-.edui-default .edui-hassubmenu .edui-arrow {
-  height: 20px;
-  width: 20px;
-  float: right;
-  background: url(../images/icons-all.gif) no-repeat 10px -233px
-}
-
-.edui-default .edui-menu-body .edui-menuitem {
-  padding: 1px
-}
-
-.edui-default .edui-menuseparator {
-  margin: 2px 0;
-  height: 1px;
-  overflow: hidden
-}
-
-.edui-default .edui-menuseparator-inner {
-  border-bottom: 1px solid #e2e3e3;
-  margin-left: 29px;
-  margin-right: 1px
-}
-
-.edui-default .edui-menu-body .edui-state-hover {
-  padding: 0 !important;
-  background-color: #fff5d4;
-  border: 1px solid #dcac6c
-}
-
-.edui-default .edui-shortcutmenu {
-  padding: 2px;
-  width: 190px;
-  height: 50px;
-  background-color: #fff;
-  border: 1px solid #ccc;
-  border-radius: 5px
-}
-
-.edui-default .edui-wordpastepop .edui-popup-content {
-  border: 0;
-  padding: 0;
-  width: 54px;
-  height: 21px
-}
-
-.edui-default .edui-pasteicon {
-  width: 100%;
-  height: 100%;
-  background-image: url(../images/wordpaste.png);
-  background-position: 0 0
-}
-
-.edui-default .edui-pasteicon.edui-state-opened {
-  background-position: 0 -34px
-}
-
-.edui-default .edui-pastecontainer {
-  position: relative;
-  visibility: hidden;
-  width: 97px;
-  background: #fff;
-  border: 1px solid #ccc
-}
-
-.edui-default .edui-pastecontainer .edui-title {
-  font-weight: 700;
-  background: #F8F8FF;
-  height: 25px;
-  line-height: 25px;
-  font-size: 12px;
-  padding-left: 5px
-}
-
-.edui-default .edui-pastecontainer .edui-button {
-  overflow: hidden;
-  margin: 3px 0
-}
-
-.edui-default .edui-pastecontainer .edui-button .edui-richtxticon,
-.edui-default .edui-pastecontainer .edui-button .edui-tagicon,
-.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon {
-  float: left;
-  cursor: pointer;
-  width: 29px;
-  height: 29px;
-  margin-left: 5px;
-  background-image: url(../images/wordpaste.png);
-  background-repeat: no-repeat
-}
-
-.edui-default .edui-pastecontainer .edui-button .edui-richtxticon {
-  margin-left: 0;
-  background-position: -109px 0
-}
-
-.edui-default .edui-pastecontainer .edui-button .edui-tagicon {
-  background-position: -148px 1px
-}
-
-.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon {
-  background-position: -72px 0
-}
-
-.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon {
-  background-position: -109px -34px
-}
-
-.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon {
-  background-position: -148px -34px
-}
-
-.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon {
-  background-position: -72px -34px
-}
diff --git a/server/public/ueditor/themes/default/dialogbase.css b/server/public/ueditor/themes/default/dialogbase.css
deleted file mode 100644
index ea71266..0000000
--- a/server/public/ueditor/themes/default/dialogbase.css
+++ /dev/null
@@ -1,100 +0,0 @@
-/*寮瑰嚭瀵硅瘽妗嗛〉闈㈡牱寮忕粍浠�
-*/
-
-/*reset
-*/
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td {
-    margin: 0;
-    padding: 0;
-    outline: 0;
-    font-size: 100%;
-}
-
-body {
-    line-height: 1;
-}
-
-ol, ul {
-    list-style: none;
-}
-
-blockquote, q {
-    quotes: none;
-}
-
-ins {
-    text-decoration: none;
-}
-
-del {
-    text-decoration: line-through;
-}
-
-table {
-    border-collapse: collapse;
-    border-spacing: 0;
-}
-
-/*module
-*/
-body {
-    background-color: #fff;
-    font: 12px/1.5 sans-serif, "瀹嬩綋", "Arial Narrow", HELVETICA;
-    color: #646464;
-}
-
-/*tab*/
-.tabhead {
-    position: relative;
-    z-index: 10;
-}
-
-.tabhead span {
-    display: inline-block;
-    padding: 0 5px;
-    height: 30px;
-    border: 1px solid #ccc;
-    background: url("images/dialog-title-bg.png") repeat-x;
-    text-align: center;
-    line-height: 30px;
-    cursor: pointer;
-    *margin-right: 5px;
-}
-
-.tabhead span.focus {
-    height: 31px;
-    border-bottom: none;
-    background: #fff;
-}
-
-.tabbody {
-    position: relative;
-    top: -1px;
-    margin: 0 auto;
-    border: 1px solid #ccc;
-}
-
-/*button*/
-a.button {
-    display: block;
-    text-align: center;
-    line-height: 24px;
-    text-decoration: none;
-    height: 24px;
-    width: 95px;
-    border: 0;
-    color: #838383;
-    background: url(../../themes/default/images/icons-all.gif) no-repeat;
-}
-
-a.button:hover {
-    background-position: 0 -30px;
-}
\ No newline at end of file
diff --git a/server/public/ueditor/themes/default/images/anchor.gif b/server/public/ueditor/themes/default/images/anchor.gif
deleted file mode 100644
index 5aa797b..0000000
--- a/server/public/ueditor/themes/default/images/anchor.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/arrow.png b/server/public/ueditor/themes/default/images/arrow.png
deleted file mode 100644
index d900886..0000000
--- a/server/public/ueditor/themes/default/images/arrow.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/arrow_down.png b/server/public/ueditor/themes/default/images/arrow_down.png
deleted file mode 100644
index e9257e8..0000000
--- a/server/public/ueditor/themes/default/images/arrow_down.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/arrow_up.png b/server/public/ueditor/themes/default/images/arrow_up.png
deleted file mode 100644
index 74277af..0000000
--- a/server/public/ueditor/themes/default/images/arrow_up.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/button-bg.gif b/server/public/ueditor/themes/default/images/button-bg.gif
deleted file mode 100644
index ec7fa2e..0000000
--- a/server/public/ueditor/themes/default/images/button-bg.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/cancelbutton.gif b/server/public/ueditor/themes/default/images/cancelbutton.gif
deleted file mode 100644
index df4bc2c..0000000
--- a/server/public/ueditor/themes/default/images/cancelbutton.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/charts.png b/server/public/ueditor/themes/default/images/charts.png
deleted file mode 100644
index 713965c..0000000
--- a/server/public/ueditor/themes/default/images/charts.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/cursor_h.gif b/server/public/ueditor/themes/default/images/cursor_h.gif
deleted file mode 100644
index d7c3e7e..0000000
--- a/server/public/ueditor/themes/default/images/cursor_h.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/cursor_h.png b/server/public/ueditor/themes/default/images/cursor_h.png
deleted file mode 100644
index 2088fc2..0000000
--- a/server/public/ueditor/themes/default/images/cursor_h.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/cursor_v.gif b/server/public/ueditor/themes/default/images/cursor_v.gif
deleted file mode 100644
index bb508db..0000000
--- a/server/public/ueditor/themes/default/images/cursor_v.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/cursor_v.png b/server/public/ueditor/themes/default/images/cursor_v.png
deleted file mode 100644
index 6f39ca3..0000000
--- a/server/public/ueditor/themes/default/images/cursor_v.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/dialog-title-bg.png b/server/public/ueditor/themes/default/images/dialog-title-bg.png
deleted file mode 100644
index f744f26..0000000
--- a/server/public/ueditor/themes/default/images/dialog-title-bg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/filescan.png b/server/public/ueditor/themes/default/images/filescan.png
deleted file mode 100644
index 1d27158..0000000
--- a/server/public/ueditor/themes/default/images/filescan.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/highlighted.gif b/server/public/ueditor/themes/default/images/highlighted.gif
deleted file mode 100644
index 9272b49..0000000
--- a/server/public/ueditor/themes/default/images/highlighted.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/icons-all.gif b/server/public/ueditor/themes/default/images/icons-all.gif
deleted file mode 100644
index 21915e5..0000000
--- a/server/public/ueditor/themes/default/images/icons-all.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/icons.gif b/server/public/ueditor/themes/default/images/icons.gif
deleted file mode 100644
index 7abd30a..0000000
--- a/server/public/ueditor/themes/default/images/icons.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/icons.png b/server/public/ueditor/themes/default/images/icons.png
deleted file mode 100644
index c015e3a..0000000
--- a/server/public/ueditor/themes/default/images/icons.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/loaderror.png b/server/public/ueditor/themes/default/images/loaderror.png
deleted file mode 100644
index 35ff333..0000000
--- a/server/public/ueditor/themes/default/images/loaderror.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/loading.gif b/server/public/ueditor/themes/default/images/loading.gif
deleted file mode 100644
index b713e27..0000000
--- a/server/public/ueditor/themes/default/images/loading.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/lock.gif b/server/public/ueditor/themes/default/images/lock.gif
deleted file mode 100644
index b4e6d78..0000000
--- a/server/public/ueditor/themes/default/images/lock.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/neweditor-tab-bg.png b/server/public/ueditor/themes/default/images/neweditor-tab-bg.png
deleted file mode 100644
index 8f398b0..0000000
--- a/server/public/ueditor/themes/default/images/neweditor-tab-bg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/pagebreak.gif b/server/public/ueditor/themes/default/images/pagebreak.gif
deleted file mode 100644
index 8d1cffd..0000000
--- a/server/public/ueditor/themes/default/images/pagebreak.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/scale.png b/server/public/ueditor/themes/default/images/scale.png
deleted file mode 100644
index f45adb5..0000000
--- a/server/public/ueditor/themes/default/images/scale.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/sortable.png b/server/public/ueditor/themes/default/images/sortable.png
deleted file mode 100644
index 1bca649..0000000
--- a/server/public/ueditor/themes/default/images/sortable.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/spacer.gif b/server/public/ueditor/themes/default/images/spacer.gif
deleted file mode 100644
index 5bfd67a..0000000
--- a/server/public/ueditor/themes/default/images/spacer.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/sparator_v.png b/server/public/ueditor/themes/default/images/sparator_v.png
deleted file mode 100644
index 8cf5662..0000000
--- a/server/public/ueditor/themes/default/images/sparator_v.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/table-cell-align.png b/server/public/ueditor/themes/default/images/table-cell-align.png
deleted file mode 100644
index ddf4285..0000000
--- a/server/public/ueditor/themes/default/images/table-cell-align.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/tangram-colorpicker.png b/server/public/ueditor/themes/default/images/tangram-colorpicker.png
deleted file mode 100644
index 738e500..0000000
--- a/server/public/ueditor/themes/default/images/tangram-colorpicker.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/toolbar_bg.png b/server/public/ueditor/themes/default/images/toolbar_bg.png
deleted file mode 100644
index 7ab685f..0000000
--- a/server/public/ueditor/themes/default/images/toolbar_bg.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/unhighlighted.gif b/server/public/ueditor/themes/default/images/unhighlighted.gif
deleted file mode 100644
index 7ad0b67..0000000
--- a/server/public/ueditor/themes/default/images/unhighlighted.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/upload.png b/server/public/ueditor/themes/default/images/upload.png
deleted file mode 100644
index 08d4d92..0000000
--- a/server/public/ueditor/themes/default/images/upload.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/videologo.gif b/server/public/ueditor/themes/default/images/videologo.gif
deleted file mode 100644
index 555af74..0000000
--- a/server/public/ueditor/themes/default/images/videologo.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/word.gif b/server/public/ueditor/themes/default/images/word.gif
deleted file mode 100644
index 9ef5d09..0000000
--- a/server/public/ueditor/themes/default/images/word.gif
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/default/images/wordpaste.png b/server/public/ueditor/themes/default/images/wordpaste.png
deleted file mode 100644
index 9367758..0000000
--- a/server/public/ueditor/themes/default/images/wordpaste.png
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/themes/iframe.css b/server/public/ueditor/themes/iframe.css
deleted file mode 100644
index 32e7222..0000000
--- a/server/public/ueditor/themes/iframe.css
+++ /dev/null
@@ -1 +0,0 @@
-/*鍙互鍦ㄨ繖閲屾坊鍔犱綘鑷繁鐨刢ss*/
diff --git a/server/public/ueditor/third-party/SyntaxHighlighter/shCore.js b/server/public/ueditor/third-party/SyntaxHighlighter/shCore.js
deleted file mode 100644
index 27e59fa..0000000
--- a/server/public/ueditor/third-party/SyntaxHighlighter/shCore.js
+++ /dev/null
@@ -1,3655 +0,0 @@
-// XRegExp 1.5.1
-// (c) 2007-2012 Steven Levithan
-// MIT License
-// <http://xregexp.com>
-// Provides an augmented, extensible, cross-browser implementation of regular expressions,
-// including support for additional syntax, flags, and methods
-
-var XRegExp;
-
-if (XRegExp) {
-    // Avoid running twice, since that would break references to native globals
-    throw Error("can't load XRegExp twice in the same frame");
-}
-
-// Run within an anonymous function to protect variables and avoid new globals
-(function (undefined) {
-
-    //---------------------------------
-    //  Constructor
-    //---------------------------------
-
-    // Accepts a pattern and flags; returns a new, extended `RegExp` object. Differs from a native
-    // regular expression in that additional syntax and flags are supported and cross-browser
-    // syntax inconsistencies are ameliorated. `XRegExp(/regex/)` clones an existing regex and
-    // converts to type XRegExp
-    XRegExp = function (pattern, flags) {
-        var output = [],
-            currScope = XRegExp.OUTSIDE_CLASS,
-            pos = 0,
-            context, tokenResult, match, chr, regex;
-
-        if (XRegExp.isRegExp(pattern)) {
-            if (flags !== undefined)
-                throw TypeError("can't supply flags when constructing one RegExp from another");
-            return clone(pattern);
-        }
-        // Tokens become part of the regex construction process, so protect against infinite
-        // recursion when an XRegExp is constructed within a token handler or trigger
-        if (isInsideConstructor)
-            throw Error("can't call the XRegExp constructor within token definition functions");
-
-        flags = flags || "";
-        context = { // `this` object for custom tokens
-            hasNamedCapture: false,
-            captureNames: [],
-            hasFlag: function (flag) {return flags.indexOf(flag) > -1;},
-            setFlag: function (flag) {flags += flag;}
-        };
-
-        while (pos < pattern.length) {
-            // Check for custom tokens at the current position
-            tokenResult = runTokens(pattern, pos, currScope, context);
-
-            if (tokenResult) {
-                output.push(tokenResult.output);
-                pos += (tokenResult.match[0].length || 1);
-            } else {
-                // Check for native multicharacter metasequences (excluding character classes) at
-                // the current position
-                if (match = nativ.exec.call(nativeTokens[currScope], pattern.slice(pos))) {
-                    output.push(match[0]);
-                    pos += match[0].length;
-                } else {
-                    chr = pattern.charAt(pos);
-                    if (chr === "[")
-                        currScope = XRegExp.INSIDE_CLASS;
-                    else if (chr === "]")
-                        currScope = XRegExp.OUTSIDE_CLASS;
-                    // Advance position one character
-                    output.push(chr);
-                    pos++;
-                }
-            }
-        }
-
-        regex = RegExp(output.join(""), nativ.replace.call(flags, flagClip, ""));
-        regex._xregexp = {
-            source: pattern,
-            captureNames: context.hasNamedCapture ? context.captureNames : null
-        };
-        return regex;
-    };
-
-
-    //---------------------------------
-    //  Public properties
-    //---------------------------------
-
-    XRegExp.version = "1.5.1";
-
-    // Token scope bitflags
-    XRegExp.INSIDE_CLASS = 1;
-    XRegExp.OUTSIDE_CLASS = 2;
-
-
-    //---------------------------------
-    //  Private variables
-    //---------------------------------
-
-    var replacementToken = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g,
-        flagClip = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, // Nonnative and duplicate flags
-        quantifier = /^(?:[?*+]|{\d+(?:,\d*)?})\??/,
-        isInsideConstructor = false,
-        tokens = [],
-    // Copy native globals for reference ("native" is an ES3 reserved keyword)
-        nativ = {
-            exec: RegExp.prototype.exec,
-            test: RegExp.prototype.test,
-            match: String.prototype.match,
-            replace: String.prototype.replace,
-            split: String.prototype.split
-        },
-        compliantExecNpcg = nativ.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups
-        compliantLastIndexIncrement = function () {
-            var x = /^/g;
-            nativ.test.call(x, "");
-            return !x.lastIndex;
-        }(),
-        hasNativeY = RegExp.prototype.sticky !== undefined,
-        nativeTokens = {};
-
-    // `nativeTokens` match native multicharacter metasequences only (including deprecated octals,
-    // excluding character classes)
-    nativeTokens[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/;
-    nativeTokens[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/;
-
-
-    //---------------------------------
-    //  Public methods
-    //---------------------------------
-
-    // Lets you extend or change XRegExp syntax and create custom flags. This is used internally by
-    // the XRegExp library and can be used to create XRegExp plugins. This function is intended for
-    // users with advanced knowledge of JavaScript's regular expression syntax and behavior. It can
-    // be disabled by `XRegExp.freezeTokens`
-    XRegExp.addToken = function (regex, handler, scope, trigger) {
-        tokens.push({
-            pattern: clone(regex, "g" + (hasNativeY ? "y" : "")),
-            handler: handler,
-            scope: scope || XRegExp.OUTSIDE_CLASS,
-            trigger: trigger || null
-        });
-    };
-
-    // Accepts a pattern and flags; returns an extended `RegExp` object. If the pattern and flag
-    // combination has previously been cached, the cached copy is returned; otherwise the newly
-    // created regex is cached
-    XRegExp.cache = function (pattern, flags) {
-        var key = pattern + "/" + (flags || "");
-        return XRegExp.cache[key] || (XRegExp.cache[key] = XRegExp(pattern, flags));
-    };
-
-    // Accepts a `RegExp` instance; returns a copy with the `/g` flag set. The copy has a fresh
-    // `lastIndex` (set to zero). If you want to copy a regex without forcing the `global`
-    // property, use `XRegExp(regex)`. Do not use `RegExp(regex)` because it will not preserve
-    // special properties required for named capture
-    XRegExp.copyAsGlobal = function (regex) {
-        return clone(regex, "g");
-    };
-
-    // Accepts a string; returns the string with regex metacharacters escaped. The returned string
-    // can safely be used at any point within a regex to match the provided literal string. Escaped
-    // characters are [ ] { } ( ) * + ? - . , \ ^ $ | # and whitespace
-    XRegExp.escape = function (str) {
-        return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
-    };
-
-    // Accepts a string to search, regex to search with, position to start the search within the
-    // string (default: 0), and an optional Boolean indicating whether matches must start at-or-
-    // after the position or at the specified position only. This function ignores the `lastIndex`
-    // of the provided regex in its own handling, but updates the property for compatibility
-    XRegExp.execAt = function (str, regex, pos, anchored) {
-        var r2 = clone(regex, "g" + ((anchored && hasNativeY) ? "y" : "")),
-            match;
-        r2.lastIndex = pos = pos || 0;
-        match = r2.exec(str); // Run the altered `exec` (required for `lastIndex` fix, etc.)
-        if (anchored && match && match.index !== pos)
-            match = null;
-        if (regex.global)
-            regex.lastIndex = match ? r2.lastIndex : 0;
-        return match;
-    };
-
-    // Breaks the unrestorable link to XRegExp's private list of tokens, thereby preventing
-    // syntax and flag changes. Should be run after XRegExp and any plugins are loaded
-    XRegExp.freezeTokens = function () {
-        XRegExp.addToken = function () {
-            throw Error("can't run addToken after freezeTokens");
-        };
-    };
-
-    // Accepts any value; returns a Boolean indicating whether the argument is a `RegExp` object.
-    // Note that this is also `true` for regex literals and regexes created by the `XRegExp`
-    // constructor. This works correctly for variables created in another frame, when `instanceof`
-    // and `constructor` checks would fail to work as intended
-    XRegExp.isRegExp = function (o) {
-        return Object.prototype.toString.call(o) === "[object RegExp]";
-    };
-
-    // Executes `callback` once per match within `str`. Provides a simpler and cleaner way to
-    // iterate over regex matches compared to the traditional approaches of subverting
-    // `String.prototype.replace` or repeatedly calling `exec` within a `while` loop
-    XRegExp.iterate = function (str, regex, callback, context) {
-        var r2 = clone(regex, "g"),
-            i = -1, match;
-        while (match = r2.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.)
-            if (regex.global)
-                regex.lastIndex = r2.lastIndex; // Doing this to follow expectations if `lastIndex` is checked within `callback`
-            callback.call(context, match, ++i, str, regex);
-            if (r2.lastIndex === match.index)
-                r2.lastIndex++;
-        }
-        if (regex.global)
-            regex.lastIndex = 0;
-    };
-
-    // Accepts a string and an array of regexes; returns the result of using each successive regex
-    // to search within the matches of the previous regex. The array of regexes can also contain
-    // objects with `regex` and `backref` properties, in which case the named or numbered back-
-    // references specified are passed forward to the next regex or returned. E.g.:
-    // var xregexpImgFileNames = XRegExp.matchChain(html, [
-    //     {regex: /<img\b([^>]+)>/i, backref: 1}, // <img> tag attributes
-    //     {regex: XRegExp('(?ix) \\s src=" (?<src> [^"]+ )'), backref: "src"}, // src attribute values
-    //     {regex: XRegExp("^http://xregexp\\.com(/[^#?]+)", "i"), backref: 1}, // xregexp.com paths
-    //     /[^\/]+$/ // filenames (strip directory paths)
-    // ]);
-    XRegExp.matchChain = function (str, chain) {
-        return function recurseChain (values, level) {
-            var item = chain[level].regex ? chain[level] : {regex: chain[level]},
-                regex = clone(item.regex, "g"),
-                matches = [], i;
-            for (i = 0; i < values.length; i++) {
-                XRegExp.iterate(values[i], regex, function (match) {
-                    matches.push(item.backref ? (match[item.backref] || "") : match[0]);
-                });
-            }
-            return ((level === chain.length - 1) || !matches.length) ?
-                matches : recurseChain(matches, level + 1);
-        }([str], 0);
-    };
-
-
-    //---------------------------------
-    //  New RegExp prototype methods
-    //---------------------------------
-
-    // Accepts a context object and arguments array; returns the result of calling `exec` with the
-    // first value in the arguments array. the context is ignored but is accepted for congruity
-    // with `Function.prototype.apply`
-    RegExp.prototype.apply = function (context, args) {
-        return this.exec(args[0]);
-    };
-
-    // Accepts a context object and string; returns the result of calling `exec` with the provided
-    // string. the context is ignored but is accepted for congruity with `Function.prototype.call`
-    RegExp.prototype.call = function (context, str) {
-        return this.exec(str);
-    };
-
-
-    //---------------------------------
-    //  Overriden native methods
-    //---------------------------------
-
-    // Adds named capture support (with backreferences returned as `result.name`), and fixes two
-    // cross-browser issues per ES3:
-    // - Captured values for nonparticipating capturing groups should be returned as `undefined`,
-    //   rather than the empty string.
-    // - `lastIndex` should not be incremented after zero-length matches.
-    RegExp.prototype.exec = function (str) {
-        var match, name, r2, origLastIndex;
-        if (!this.global)
-            origLastIndex = this.lastIndex;
-        match = nativ.exec.apply(this, arguments);
-        if (match) {
-            // Fix browsers whose `exec` methods don't consistently return `undefined` for
-            // nonparticipating capturing groups
-            if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) {
-                r2 = RegExp(this.source, nativ.replace.call(getNativeFlags(this), "g", ""));
-                // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed
-                // matching due to characters outside the match
-                nativ.replace.call((str + "").slice(match.index), r2, function () {
-                    for (var i = 1; i < arguments.length - 2; i++) {
-                        if (arguments[i] === undefined)
-                            match[i] = undefined;
-                    }
-                });
-            }
-            // Attach named capture properties
-            if (this._xregexp && this._xregexp.captureNames) {
-                for (var i = 1; i < match.length; i++) {
-                    name = this._xregexp.captureNames[i - 1];
-                    if (name)
-                        match[name] = match[i];
-                }
-            }
-            // Fix browsers that increment `lastIndex` after zero-length matches
-            if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))
-                this.lastIndex--;
-        }
-        if (!this.global)
-            this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows)
-        return match;
-    };
-
-    // Fix browser bugs in native method
-    RegExp.prototype.test = function (str) {
-        // Use the native `exec` to skip some processing overhead, even though the altered
-        // `exec` would take care of the `lastIndex` fixes
-        var match, origLastIndex;
-        if (!this.global)
-            origLastIndex = this.lastIndex;
-        match = nativ.exec.call(this, str);
-        // Fix browsers that increment `lastIndex` after zero-length matches
-        if (match && !compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index))
-            this.lastIndex--;
-        if (!this.global)
-            this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows)
-        return !!match;
-    };
-
-    // Adds named capture support and fixes browser bugs in native method
-    String.prototype.match = function (regex) {
-        if (!XRegExp.isRegExp(regex))
-            regex = RegExp(regex); // Native `RegExp`
-        if (regex.global) {
-            var result = nativ.match.apply(this, arguments);
-            regex.lastIndex = 0; // Fix IE bug
-            return result;
-        }
-        return regex.exec(this); // Run the altered `exec`
-    };
-
-    // Adds support for `${n}` tokens for named and numbered backreferences in replacement text,
-    // and provides named backreferences to replacement functions as `arguments[0].name`. Also
-    // fixes cross-browser differences in replacement text syntax when performing a replacement
-    // using a nonregex search value, and the value of replacement regexes' `lastIndex` property
-    // during replacement iterations. Note that this doesn't support SpiderMonkey's proprietary
-    // third (`flags`) parameter
-    String.prototype.replace = function (search, replacement) {
-        var isRegex = XRegExp.isRegExp(search),
-            captureNames, result, str, origLastIndex;
-
-        // There are too many combinations of search/replacement types/values and browser bugs that
-        // preclude passing to native `replace`, so don't try
-        //if (...)
-        //    return nativ.replace.apply(this, arguments);
-
-        if (isRegex) {
-            if (search._xregexp)
-                captureNames = search._xregexp.captureNames; // Array or `null`
-            if (!search.global)
-                origLastIndex = search.lastIndex;
-        } else {
-            search = search + ""; // Type conversion
-        }
-
-        if (Object.prototype.toString.call(replacement) === "[object Function]") {
-            result = nativ.replace.call(this + "", search, function () {
-                if (captureNames) {
-                    // Change the `arguments[0]` string primitive to a String object which can store properties
-                    arguments[0] = new String(arguments[0]);
-                    // Store named backreferences on `arguments[0]`
-                    for (var i = 0; i < captureNames.length; i++) {
-                        if (captureNames[i])
-                            arguments[0][captureNames[i]] = arguments[i + 1];
-                    }
-                }
-                // Update `lastIndex` before calling `replacement` (fix browsers)
-                if (isRegex && search.global)
-                    search.lastIndex = arguments[arguments.length - 2] + arguments[0].length;
-                return replacement.apply(null, arguments);
-            });
-        } else {
-            str = this + ""; // Type conversion, so `args[args.length - 1]` will be a string (given nonstring `this`)
-            result = nativ.replace.call(str, search, function () {
-                var args = arguments; // Keep this function's `arguments` available through closure
-                return nativ.replace.call(replacement + "", replacementToken, function ($0, $1, $2) {
-                    // Numbered backreference (without delimiters) or special variable
-                    if ($1) {
-                        switch ($1) {
-                            case "$": return "$";
-                            case "&": return args[0];
-                            case "`": return args[args.length - 1].slice(0, args[args.length - 2]);
-                            case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length);
-                            // Numbered backreference
-                            default:
-                                // What does "$10" mean?
-                                // - Backreference 10, if 10 or more capturing groups exist
-                                // - Backreference 1 followed by "0", if 1-9 capturing groups exist
-                                // - Otherwise, it's the string "$10"
-                                // Also note:
-                                // - Backreferences cannot be more than two digits (enforced by `replacementToken`)
-                                // - "$01" is equivalent to "$1" if a capturing group exists, otherwise it's the string "$01"
-                                // - There is no "$0" token ("$&" is the entire match)
-                                var literalNumbers = "";
-                                $1 = +$1; // Type conversion; drop leading zero
-                                if (!$1) // `$1` was "0" or "00"
-                                    return $0;
-                                while ($1 > args.length - 3) {
-                                    literalNumbers = String.prototype.slice.call($1, -1) + literalNumbers;
-                                    $1 = Math.floor($1 / 10); // Drop the last digit
-                                }
-                                return ($1 ? args[$1] || "" : "$") + literalNumbers;
-                        }
-                        // Named backreference or delimited numbered backreference
-                    } else {
-                        // What does "${n}" mean?
-                        // - Backreference to numbered capture n. Two differences from "$n":
-                        //   - n can be more than two digits
-                        //   - Backreference 0 is allowed, and is the entire match
-                        // - Backreference to named capture n, if it exists and is not a number overridden by numbered capture
-                        // - Otherwise, it's the string "${n}"
-                        var n = +$2; // Type conversion; drop leading zeros
-                        if (n <= args.length - 3)
-                            return args[n];
-                        n = captureNames ? indexOf(captureNames, $2) : -1;
-                        return n > -1 ? args[n + 1] : $0;
-                    }
-                });
-            });
-        }
-
-        if (isRegex) {
-            if (search.global)
-                search.lastIndex = 0; // Fix IE, Safari bug (last tested IE 9.0.5, Safari 5.1.2 on Windows)
-            else
-                search.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows)
-        }
-
-        return result;
-    };
-
-    // A consistent cross-browser, ES3 compliant `split`
-    String.prototype.split = function (s /* separator */, limit) {
-        // If separator `s` is not a regex, use the native `split`
-        if (!XRegExp.isRegExp(s))
-            return nativ.split.apply(this, arguments);
-
-        var str = this + "", // Type conversion
-            output = [],
-            lastLastIndex = 0,
-            match, lastLength;
-
-        // Behavior for `limit`: if it's...
-        // - `undefined`: No limit
-        // - `NaN` or zero: Return an empty array
-        // - A positive number: Use `Math.floor(limit)`
-        // - A negative number: No limit
-        // - Other: Type-convert, then use the above rules
-        if (limit === undefined || +limit < 0) {
-            limit = Infinity;
-        } else {
-            limit = Math.floor(+limit);
-            if (!limit)
-                return [];
-        }
-
-        // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero
-        // and restore it to its original value when we're done using the regex
-        s = XRegExp.copyAsGlobal(s);
-
-        while (match = s.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.)
-            if (s.lastIndex > lastLastIndex) {
-                output.push(str.slice(lastLastIndex, match.index));
-
-                if (match.length > 1 && match.index < str.length)
-                    Array.prototype.push.apply(output, match.slice(1));
-
-                lastLength = match[0].length;
-                lastLastIndex = s.lastIndex;
-
-                if (output.length >= limit)
-                    break;
-            }
-
-            if (s.lastIndex === match.index)
-                s.lastIndex++;
-        }
-
-        if (lastLastIndex === str.length) {
-            if (!nativ.test.call(s, "") || lastLength)
-                output.push("");
-        } else {
-            output.push(str.slice(lastLastIndex));
-        }
-
-        return output.length > limit ? output.slice(0, limit) : output;
-    };
-
-
-    //---------------------------------
-    //  Private helper functions
-    //---------------------------------
-
-    // Supporting function for `XRegExp`, `XRegExp.copyAsGlobal`, etc. Returns a copy of a `RegExp`
-    // instance with a fresh `lastIndex` (set to zero), preserving properties required for named
-    // capture. Also allows adding new flags in the process of copying the regex
-    function clone (regex, additionalFlags) {
-        if (!XRegExp.isRegExp(regex))
-            throw TypeError("type RegExp expected");
-        var x = regex._xregexp;
-        regex = XRegExp(regex.source, getNativeFlags(regex) + (additionalFlags || ""));
-        if (x) {
-            regex._xregexp = {
-                source: x.source,
-                captureNames: x.captureNames ? x.captureNames.slice(0) : null
-            };
-        }
-        return regex;
-    }
-
-    function getNativeFlags (regex) {
-        return (regex.global     ? "g" : "") +
-            (regex.ignoreCase ? "i" : "") +
-            (regex.multiline  ? "m" : "") +
-            (regex.extended   ? "x" : "") + // Proposed for ES4; included in AS3
-            (regex.sticky     ? "y" : "");
-    }
-
-    function runTokens (pattern, index, scope, context) {
-        var i = tokens.length,
-            result, match, t;
-        // Protect against constructing XRegExps within token handler and trigger functions
-        isInsideConstructor = true;
-        // Must reset `isInsideConstructor`, even if a `trigger` or `handler` throws
-        try {
-            while (i--) { // Run in reverse order
-                t = tokens[i];
-                if ((scope & t.scope) && (!t.trigger || t.trigger.call(context))) {
-                    t.pattern.lastIndex = index;
-                    match = t.pattern.exec(pattern); // Running the altered `exec` here allows use of named backreferences, etc.
-                    if (match && match.index === index) {
-                        result = {
-                            output: t.handler.call(context, match, scope),
-                            match: match
-                        };
-                        break;
-                    }
-                }
-            }
-        } catch (err) {
-            throw err;
-        } finally {
-            isInsideConstructor = false;
-        }
-        return result;
-    }
-
-    function indexOf (array, item, from) {
-        if (Array.prototype.indexOf) // Use the native array method if available
-            return array.indexOf(item, from);
-        for (var i = from || 0; i < array.length; i++) {
-            if (array[i] === item)
-                return i;
-        }
-        return -1;
-    }
-
-
-    //---------------------------------
-    //  Built-in tokens
-    //---------------------------------
-
-    // Augment XRegExp's regular expression syntax and flags. Note that when adding tokens, the
-    // third (`scope`) argument defaults to `XRegExp.OUTSIDE_CLASS`
-
-    // Comment pattern: (?# )
-    XRegExp.addToken(
-        /\(\?#[^)]*\)/,
-        function (match) {
-            // Keep tokens separated unless the following token is a quantifier
-            return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)";
-        }
-    );
-
-    // Capturing group (match the opening parenthesis only).
-    // Required for support of named capturing groups
-    XRegExp.addToken(
-        /\((?!\?)/,
-        function () {
-            this.captureNames.push(null);
-            return "(";
-        }
-    );
-
-    // Named capturing group (match the opening delimiter only): (?<name>
-    XRegExp.addToken(
-        /\(\?<([$\w]+)>/,
-        function (match) {
-            this.captureNames.push(match[1]);
-            this.hasNamedCapture = true;
-            return "(";
-        }
-    );
-
-    // Named backreference: \k<name>
-    XRegExp.addToken(
-        /\\k<([\w$]+)>/,
-        function (match) {
-            var index = indexOf(this.captureNames, match[1]);
-            // Keep backreferences separate from subsequent literal numbers. Preserve back-
-            // references to named groups that are undefined at this point as literal strings
-            return index > -1 ?
-                "\\" + (index + 1) + (isNaN(match.input.charAt(match.index + match[0].length)) ? "" : "(?:)") :
-                match[0];
-        }
-    );
-
-    // Empty character class: [] or [^]
-    XRegExp.addToken(
-        /\[\^?]/,
-        function (match) {
-            // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S].
-            // (?!) should work like \b\B, but is unreliable in Firefox
-            return match[0] === "[]" ? "\\b\\B" : "[\\s\\S]";
-        }
-    );
-
-    // Mode modifier at the start of the pattern only, with any combination of flags imsx: (?imsx)
-    // Does not support x(?i), (?-i), (?i-m), (?i: ), (?i)(?m), etc.
-    XRegExp.addToken(
-        /^\(\?([imsx]+)\)/,
-        function (match) {
-            this.setFlag(match[1]);
-            return "";
-        }
-    );
-
-    // Whitespace and comments, in free-spacing (aka extended) mode only
-    XRegExp.addToken(
-        /(?:\s+|#.*)+/,
-        function (match) {
-            // Keep tokens separated unless the following token is a quantifier
-            return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)";
-        },
-        XRegExp.OUTSIDE_CLASS,
-        function () {return this.hasFlag("x");}
-    );
-
-    // Dot, in dotall (aka singleline) mode only
-    XRegExp.addToken(
-        /\./,
-        function () {return "[\\s\\S]";},
-        XRegExp.OUTSIDE_CLASS,
-        function () {return this.hasFlag("s");}
-    );
-
-
-    //---------------------------------
-    //  Backward compatibility
-    //---------------------------------
-
-    // Uncomment the following block for compatibility with XRegExp 1.0-1.2:
-    /*
-     XRegExp.matchWithinChain = XRegExp.matchChain;
-     RegExp.prototype.addFlags = function (s) {return clone(this, s);};
-     RegExp.prototype.execAll = function (s) {var r = []; XRegExp.iterate(s, this, function (m) {r.push(m);}); return r;};
-     RegExp.prototype.forEachExec = function (s, f, c) {return XRegExp.iterate(s, this, f, c);};
-     RegExp.prototype.validate = function (s) {var r = RegExp("^(?:" + this.source + ")$(?!\\s)", getNativeFlags(this)); if (this.global) this.lastIndex = 0; return s.search(r) === 0;};
-     */
-
-})();
-
-//
-// Begin anonymous function. This is used to contain local scope variables without polutting global scope.
-//
-if (typeof(SyntaxHighlighter) == 'undefined') var SyntaxHighlighter = function() {
-
-// CommonJS
-    if (typeof(require) != 'undefined' && typeof(XRegExp) == 'undefined')
-    {
-        XRegExp = require('XRegExp').XRegExp;
-    }
-
-// Shortcut object which will be assigned to the SyntaxHighlighter variable.
-// This is a shorthand for local reference in order to avoid long namespace
-// references to SyntaxHighlighter.whatever...
-    var sh = {
-        defaults : {
-            /** Additional CSS class names to be added to highlighter elements. */
-            'class-name' : '',
-
-            /** First line number. */
-            'first-line' : 1,
-
-            /**
-             * Pads line numbers. Possible values are:
-             *
-             *   false - don't pad line numbers.
-             *   true  - automaticaly pad numbers with minimum required number of leading zeroes.
-             *   [int] - length up to which pad line numbers.
-             */
-            'pad-line-numbers' : false,
-
-            /** Lines to highlight. */
-            'highlight' : false,
-
-            /** Title to be displayed above the code block. */
-            'title' : null,
-
-            /** Enables or disables smart tabs. */
-            'smart-tabs' : true,
-
-            /** Gets or sets tab size. */
-            'tab-size' : 4,
-
-            /** Enables or disables gutter. */
-            'gutter' : true,
-
-            /** Enables or disables toolbar. */
-            'toolbar' : true,
-
-            /** Enables quick code copy and paste from double click. */
-            'quick-code' : true,
-
-            /** Forces code view to be collapsed. */
-            'collapse' : false,
-
-            /** Enables or disables automatic links. */
-            'auto-links' : false,
-
-            /** Gets or sets light mode. Equavalent to turning off gutter and toolbar. */
-            'light' : false,
-
-            'unindent' : true,
-
-            'html-script' : false
-        },
-
-        config : {
-            space : '&nbsp;',
-
-            /** Enables use of <SCRIPT type="syntaxhighlighter" /> tags. */
-            useScriptTags : true,
-
-            /** Blogger mode flag. */
-            bloggerMode : false,
-
-            stripBrs : false,
-
-            /** Name of the tag that SyntaxHighlighter will automatically look for. */
-            tagName : 'pre',
-
-            strings : {
-                expandSource : 'expand source',
-                help : '?',
-                alert: 'SyntaxHighlighter\n\n',
-                noBrush : 'Can\'t find brush for: ',
-                brushNotHtmlScript : 'Brush wasn\'t configured for html-script option: ',
-
-                // this is populated by the build script
-                aboutDialog : '@ABOUT@'
-            }
-        },
-
-        /** Internal 'global' variables. */
-        vars : {
-            discoveredBrushes : null,
-            highlighters : {}
-        },
-
-        /** This object is populated by user included external brush files. */
-        brushes : {},
-
-        /** Common regular expressions. */
-        regexLib : {
-            multiLineCComments			: /\/\*[\s\S]*?\*\//gm,
-            singleLineCComments			: /\/\/.*$/gm,
-            singleLinePerlComments		: /#.*$/gm,
-            doubleQuotedString			: /"([^\\"\n]|\\.)*"/g,
-            singleQuotedString			: /'([^\\'\n]|\\.)*'/g,
-            multiLineDoubleQuotedString	: new XRegExp('"([^\\\\"]|\\\\.)*"', 'gs'),
-            multiLineSingleQuotedString	: new XRegExp("'([^\\\\']|\\\\.)*'", 'gs'),
-            xmlComments					: /(&lt;|<)!--[\s\S]*?--(&gt;|>)/gm,
-            url							: /\w+:\/\/[\w-.\/?%&=:@;#]*/g,
-
-            /** <?= ?> tags. */
-            phpScriptTags 				: { left: /(&lt;|<)\?(?:=|php)?/g, right: /\?(&gt;|>)/g, 'eof' : true },
-
-            /** <%= %> tags. */
-            aspScriptTags				: { left: /(&lt;|<)%=?/g, right: /%(&gt;|>)/g },
-
-            /** <script> tags. */
-            scriptScriptTags			: { left: /(&lt;|<)\s*script.*?(&gt;|>)/gi, right: /(&lt;|<)\/\s*script\s*(&gt;|>)/gi }
-        },
-
-        toolbar: {
-            /**
-             * Generates HTML markup for the toolbar.
-             * @param {Highlighter} highlighter Highlighter instance.
-             * @return {String} Returns HTML markup.
-             */
-            getHtml: function(highlighter)
-            {
-                var html = '<div class="toolbar">',
-                    items = sh.toolbar.items,
-                    list = items.list
-                    ;
-
-                function defaultGetHtml(highlighter, name)
-                {
-                    return sh.toolbar.getButtonHtml(highlighter, name, sh.config.strings[name]);
-                };
-
-                for (var i = 0; i < list.length; i++)
-                    html += (items[list[i]].getHtml || defaultGetHtml)(highlighter, list[i]);
-
-                html += '</div>';
-
-                return html;
-            },
-
-            /**
-             * Generates HTML markup for a regular button in the toolbar.
-             * @param {Highlighter} highlighter Highlighter instance.
-             * @param {String} commandName		Command name that would be executed.
-             * @param {String} label			Label text to display.
-             * @return {String}					Returns HTML markup.
-             */
-            getButtonHtml: function(highlighter, commandName, label)
-            {
-                return '<span><a href="#" class="toolbar_item'
-                    + ' command_' + commandName
-                    + ' ' + commandName
-                    + '">' + label + '</a></span>'
-                    ;
-            },
-
-            /**
-             * Event handler for a toolbar anchor.
-             */
-            handler: function(e)
-            {
-                var target = e.target,
-                    className = target.className || ''
-                    ;
-
-                function getValue(name)
-                {
-                    var r = new RegExp(name + '_(\\w+)'),
-                        match = r.exec(className)
-                        ;
-
-                    return match ? match[1] : null;
-                };
-
-                var highlighter = getHighlighterById(findParentElement(target, '.syntaxhighlighter').id),
-                    commandName = getValue('command')
-                    ;
-
-                // execute the toolbar command
-                if (highlighter && commandName)
-                    sh.toolbar.items[commandName].execute(highlighter);
-
-                // disable default A click behaviour
-                e.preventDefault();
-            },
-
-            /** Collection of toolbar items. */
-            items : {
-                // Ordered lis of items in the toolbar. Can't expect `for (var n in items)` to be consistent.
-                list: ['expandSource', 'help'],
-
-                expandSource: {
-                    getHtml: function(highlighter)
-                    {
-                        if (highlighter.getParam('collapse') != true)
-                            return '';
-
-                        var title = highlighter.getParam('title');
-                        return sh.toolbar.getButtonHtml(highlighter, 'expandSource', title ? title : sh.config.strings.expandSource);
-                    },
-
-                    execute: function(highlighter)
-                    {
-                        var div = getHighlighterDivById(highlighter.id);
-                        removeClass(div, 'collapsed');
-                    }
-                },
-
-                /** Command to display the about dialog window. */
-                help: {
-                    execute: function(highlighter)
-                    {
-                        var wnd = popup('', '_blank', 500, 250, 'scrollbars=0'),
-                            doc = wnd.document
-                            ;
-
-                        doc.write(sh.config.strings.aboutDialog);
-                        doc.close();
-                        wnd.focus();
-                    }
-                }
-            }
-        },
-
-        /**
-         * Finds all elements on the page which should be processes by SyntaxHighlighter.
-         *
-         * @param {Object} globalParams		Optional parameters which override element's
-         * 									parameters. Only used if element is specified.
-         *
-         * @param {Object} element	Optional element to highlight. If none is
-         * 							provided, all elements in the current document
-         * 							are returned which qualify.
-         *
-         * @return {Array}	Returns list of <code>{ target: DOMElement, params: Object }</code> objects.
-         */
-        findElements: function(globalParams, element)
-        {
-            var elements = element ? [element] : toArray(document.getElementsByTagName(sh.config.tagName)),
-                conf = sh.config,
-                result = []
-                ;
-
-            // support for <SCRIPT TYPE="syntaxhighlighter" /> feature
-            if (conf.useScriptTags)
-                elements = elements.concat(getSyntaxHighlighterScriptTags());
-
-            if (elements.length === 0)
-                return result;
-
-            for (var i = 0; i < elements.length; i++)
-            {
-                var item = {
-                    target: elements[i],
-                    // local params take precedence over globals
-                    params: merge(globalParams, parseParams(elements[i].className))
-                };
-
-                if (item.params['brush'] == null)
-                    continue;
-
-                result.push(item);
-            }
-
-            return result;
-        },
-
-        /**
-         * Shorthand to highlight all elements on the page that are marked as
-         * SyntaxHighlighter source code.
-         *
-         * @param {Object} globalParams		Optional parameters which override element's
-         * 									parameters. Only used if element is specified.
-         *
-         * @param {Object} element	Optional element to highlight. If none is
-         * 							provided, all elements in the current document
-         * 							are highlighted.
-         */
-        highlight: function(globalParams, element)
-        {
-            var elements = this.findElements(globalParams, element),
-                propertyName = 'innerHTML',
-                highlighter = null,
-                conf = sh.config
-                ;
-
-            if (elements.length === 0)
-                return;
-
-            for (var i = 0; i < elements.length; i++)
-            {
-                var element = elements[i],
-                    target = element.target,
-                    params = element.params,
-                    brushName = params.brush,
-                    code
-                    ;
-
-                if (brushName == null)
-                    continue;
-
-                // Instantiate a brush
-                if (params['html-script'] == 'true' || sh.defaults['html-script'] == true)
-                {
-                    highlighter = new sh.HtmlScript(brushName);
-                    brushName = 'htmlscript';
-                }
-                else
-                {
-                    var brush = findBrush(brushName);
-
-                    if (brush)
-                        highlighter = new brush();
-                    else
-                        continue;
-                }
-
-                code = target[propertyName];
-
-                // remove CDATA from <SCRIPT/> tags if it's present
-                if (conf.useScriptTags)
-                    code = stripCData(code);
-
-                // Inject title if the attribute is present
-                if ((target.title || '') != '')
-                    params.title = target.title;
-
-                params['brush'] = brushName;
-                highlighter.init(params);
-                element = highlighter.getDiv(code);
-
-                // carry over ID
-                if ((target.id || '') != '')
-                    element.id = target.id;
-                //by zhanyi 鍘绘帀澶氫綑鐨勫鍥磀iv
-                var tmp = element.firstChild.firstChild;
-                tmp.className = element.firstChild.className;
-
-                target.parentNode.replaceChild(tmp, target);
-            }
-        },
-
-        /**
-         * Main entry point for the SyntaxHighlighter.
-         * @param {Object} params Optional params to apply to all highlighted elements.
-         */
-        all: function(params)
-        {
-            attachEvent(
-                window,
-                'load',
-                function() { sh.highlight(params); }
-            );
-        }
-    }; // end of sh
-
-    /**
-     * Checks if target DOM elements has specified CSS class.
-     * @param {DOMElement} target Target DOM element to check.
-     * @param {String} className Name of the CSS class to check for.
-     * @return {Boolean} Returns true if class name is present, false otherwise.
-     */
-    function hasClass(target, className)
-    {
-        return target.className.indexOf(className) != -1;
-    };
-
-    /**
-     * Adds CSS class name to the target DOM element.
-     * @param {DOMElement} target Target DOM element.
-     * @param {String} className New CSS class to add.
-     */
-    function addClass(target, className)
-    {
-        if (!hasClass(target, className))
-            target.className += ' ' + className;
-    };
-
-    /**
-     * Removes CSS class name from the target DOM element.
-     * @param {DOMElement} target Target DOM element.
-     * @param {String} className CSS class to remove.
-     */
-    function removeClass(target, className)
-    {
-        target.className = target.className.replace(className, '');
-    };
-
-    /**
-     * Converts the source to array object. Mostly used for function arguments and
-     * lists returned by getElementsByTagName() which aren't Array objects.
-     * @param {List} source Source list.
-     * @return {Array} Returns array.
-     */
-    function toArray(source)
-    {
-        var result = [];
-
-        for (var i = 0; i < source.length; i++)
-            result.push(source[i]);
-
-        return result;
-    };
-
-    /**
-     * Splits block of text into lines.
-     * @param {String} block Block of text.
-     * @return {Array} Returns array of lines.
-     */
-    function splitLines(block)
-    {
-        return block.split(/\r?\n/);
-    }
-
-    /**
-     * Generates HTML ID for the highlighter.
-     * @param {String} highlighterId Highlighter ID.
-     * @return {String} Returns HTML ID.
-     */
-    function getHighlighterId(id)
-    {
-        var prefix = 'highlighter_';
-        return id.indexOf(prefix) == 0 ? id : prefix + id;
-    };
-
-    /**
-     * Finds Highlighter instance by ID.
-     * @param {String} highlighterId Highlighter ID.
-     * @return {Highlighter} Returns instance of the highlighter.
-     */
-    function getHighlighterById(id)
-    {
-        return sh.vars.highlighters[getHighlighterId(id)];
-    };
-
-    /**
-     * Finds highlighter's DIV container.
-     * @param {String} highlighterId Highlighter ID.
-     * @return {Element} Returns highlighter's DIV element.
-     */
-    function getHighlighterDivById(id)
-    {
-        return document.getElementById(getHighlighterId(id));
-    };
-
-    /**
-     * Stores highlighter so that getHighlighterById() can do its thing. Each
-     * highlighter must call this method to preserve itself.
-     * @param {Highilghter} highlighter Highlighter instance.
-     */
-    function storeHighlighter(highlighter)
-    {
-        sh.vars.highlighters[getHighlighterId(highlighter.id)] = highlighter;
-    };
-
-    /**
-     * Looks for a child or parent node which has specified classname.
-     * Equivalent to jQuery's $(container).find(".className")
-     * @param {Element} target Target element.
-     * @param {String} search Class name or node name to look for.
-     * @param {Boolean} reverse If set to true, will go up the node tree instead of down.
-     * @return {Element} Returns found child or parent element on null.
-     */
-    function findElement(target, search, reverse /* optional */)
-    {
-        if (target == null)
-            return null;
-
-        var nodes			= reverse != true ? target.childNodes : [ target.parentNode ],
-            propertyToFind	= { '#' : 'id', '.' : 'className' }[search.substr(0, 1)] || 'nodeName',
-            expectedValue,
-            found
-            ;
-
-        expectedValue = propertyToFind != 'nodeName'
-            ? search.substr(1)
-            : search.toUpperCase()
-        ;
-
-        // main return of the found node
-        if ((target[propertyToFind] || '').indexOf(expectedValue) != -1)
-            return target;
-
-        for (var i = 0; nodes && i < nodes.length && found == null; i++)
-            found = findElement(nodes[i], search, reverse);
-
-        return found;
-    };
-
-    /**
-     * Looks for a parent node which has specified classname.
-     * This is an alias to <code>findElement(container, className, true)</code>.
-     * @param {Element} target Target element.
-     * @param {String} className Class name to look for.
-     * @return {Element} Returns found parent element on null.
-     */
-    function findParentElement(target, className)
-    {
-        return findElement(target, className, true);
-    };
-
-    /**
-     * Finds an index of element in the array.
-     * @ignore
-     * @param {Object} searchElement
-     * @param {Number} fromIndex
-     * @return {Number} Returns index of element if found; -1 otherwise.
-     */
-    function indexOf(array, searchElement, fromIndex)
-    {
-        fromIndex = Math.max(fromIndex || 0, 0);
-
-        for (var i = fromIndex; i < array.length; i++)
-            if(array[i] == searchElement)
-                return i;
-
-        return -1;
-    };
-
-    /**
-     * Generates a unique element ID.
-     */
-    function guid(prefix)
-    {
-        return (prefix || '') + Math.round(Math.random() * 1000000).toString();
-    };
-
-    /**
-     * Merges two objects. Values from obj2 override values in obj1.
-     * Function is NOT recursive and works only for one dimensional objects.
-     * @param {Object} obj1 First object.
-     * @param {Object} obj2 Second object.
-     * @return {Object} Returns combination of both objects.
-     */
-    function merge(obj1, obj2)
-    {
-        var result = {}, name;
-
-        for (name in obj1)
-            result[name] = obj1[name];
-
-        for (name in obj2)
-            result[name] = obj2[name];
-
-        return result;
-    };
-
-    /**
-     * Attempts to convert string to boolean.
-     * @param {String} value Input string.
-     * @return {Boolean} Returns true if input was "true", false if input was "false" and value otherwise.
-     */
-    function toBoolean(value)
-    {
-        var result = { "true" : true, "false" : false }[value];
-        return result == null ? value : result;
-    };
-
-    /**
-     * Opens up a centered popup window.
-     * @param {String} url		URL to open in the window.
-     * @param {String} name		Popup name.
-     * @param {int} width		Popup width.
-     * @param {int} height		Popup height.
-     * @param {String} options	window.open() options.
-     * @return {Window}			Returns window instance.
-     */
-    function popup(url, name, width, height, options)
-    {
-        var x = (screen.width - width) / 2,
-            y = (screen.height - height) / 2
-            ;
-
-        options +=	', left=' + x +
-            ', top=' + y +
-            ', width=' + width +
-            ', height=' + height
-        ;
-        options = options.replace(/^,/, '');
-
-        var win = window.open(url, name, options);
-        win.focus();
-        return win;
-    };
-
-    /**
-     * Adds event handler to the target object.
-     * @param {Object} obj		Target object.
-     * @param {String} type		Name of the event.
-     * @param {Function} func	Handling function.
-     */
-    function attachEvent(obj, type, func, scope)
-    {
-        function handler(e)
-        {
-            e = e || window.event;
-
-            if (!e.target)
-            {
-                e.target = e.srcElement;
-                e.preventDefault = function()
-                {
-                    this.returnValue = false;
-                };
-            }
-
-            func.call(scope || window, e);
-        };
-
-        if (obj.attachEvent)
-        {
-            obj.attachEvent('on' + type, handler);
-        }
-        else
-        {
-            obj.addEventListener(type, handler, false);
-        }
-    };
-
-    /**
-     * Displays an alert.
-     * @param {String} str String to display.
-     */
-    function alert(str)
-    {
-        window.alert(sh.config.strings.alert + str);
-    };
-
-    /**
-     * Finds a brush by its alias.
-     *
-     * @param {String} alias		Brush alias.
-     * @param {Boolean} showAlert	Suppresses the alert if false.
-     * @return {Brush}				Returns bursh constructor if found, null otherwise.
-     */
-    function findBrush(alias, showAlert)
-    {
-        var brushes = sh.vars.discoveredBrushes,
-            result = null
-            ;
-
-        if (brushes == null)
-        {
-            brushes = {};
-
-            // Find all brushes
-            for (var brush in sh.brushes)
-            {
-                var info = sh.brushes[brush],
-                    aliases = info.aliases
-                    ;
-
-                if (aliases == null)
-                    continue;
-
-                // keep the brush name
-                info.brushName = brush.toLowerCase();
-
-                for (var i = 0; i < aliases.length; i++)
-                    brushes[aliases[i]] = brush;
-            }
-
-            sh.vars.discoveredBrushes = brushes;
-        }
-
-        result = sh.brushes[brushes[alias]];
-
-        if (result == null && showAlert)
-            alert(sh.config.strings.noBrush + alias);
-
-        return result;
-    };
-
-    /**
-     * Executes a callback on each line and replaces each line with result from the callback.
-     * @param {Object} str			Input string.
-     * @param {Object} callback		Callback function taking one string argument and returning a string.
-     */
-    function eachLine(str, callback)
-    {
-        var lines = splitLines(str);
-
-        for (var i = 0; i < lines.length; i++)
-            lines[i] = callback(lines[i], i);
-
-        // include \r to enable copy-paste on windows (ie8) without getting everything on one line
-        return lines.join('\r\n');
-    };
-
-    /**
-     * This is a special trim which only removes first and last empty lines
-     * and doesn't affect valid leading space on the first line.
-     *
-     * @param {String} str   Input string
-     * @return {String}      Returns string without empty first and last lines.
-     */
-    function trimFirstAndLastLines(str)
-    {
-        return str.replace(/^[ ]*[\n]+|[\n]*[ ]*$/g, '');
-    };
-
-    /**
-     * Parses key/value pairs into hash object.
-     *
-     * Understands the following formats:
-     * - name: word;
-     * - name: [word, word];
-     * - name: "string";
-     * - name: 'string';
-     *
-     * For example:
-     *   name1: value; name2: [value, value]; name3: 'value'
-     *
-     * @param {String} str    Input string.
-     * @return {Object}       Returns deserialized object.
-     */
-    function parseParams(str)
-    {
-        var match,
-            result = {},
-            arrayRegex = new XRegExp("^\\[(?<values>(.*?))\\]$"),
-            regex = new XRegExp(
-                "(?<name>[\\w-]+)" +
-                    "\\s*:\\s*" +
-                    "(?<value>" +
-                    "[\\w-%#]+|" +		// word
-                    "\\[.*?\\]|" +		// [] array
-                    '".*?"|' +			// "" string
-                    "'.*?'" +			// '' string
-                    ")\\s*;?",
-                "g"
-            )
-            ;
-
-        while ((match = regex.exec(str)) != null)
-        {
-            var value = match.value
-                    .replace(/^['"]|['"]$/g, '') // strip quotes from end of strings
-                ;
-
-            // try to parse array value
-            if (value != null && arrayRegex.test(value))
-            {
-                var m = arrayRegex.exec(value);
-                value = m.values.length > 0 ? m.values.split(/\s*,\s*/) : [];
-            }
-
-            result[match.name] = value;
-        }
-
-        return result;
-    };
-
-    /**
-     * Wraps each line of the string into <code/> tag with given style applied to it.
-     *
-     * @param {String} str   Input string.
-     * @param {String} css   Style name to apply to the string.
-     * @return {String}      Returns input string with each line surrounded by <span/> tag.
-     */
-    function wrapLinesWithCode(str, css)
-    {
-        if (str == null || str.length == 0 || str == '\n')
-            return str;
-
-        str = str.replace(/</g, '&lt;');
-
-        // Replace two or more sequential spaces with &nbsp; leaving last space untouched.
-        str = str.replace(/ {2,}/g, function(m)
-        {
-            var spaces = '';
-
-            for (var i = 0; i < m.length - 1; i++)
-                spaces += sh.config.space;
-
-            return spaces + ' ';
-        });
-
-        // Split each line and apply <span class="...">...</span> to them so that
-        // leading spaces aren't included.
-        if (css != null)
-            str = eachLine(str, function(line)
-            {
-                if (line.length == 0)
-                    return '';
-
-                var spaces = '';
-
-                line = line.replace(/^(&nbsp;| )+/, function(s)
-                {
-                    spaces = s;
-                    return '';
-                });
-
-                if (line.length == 0)
-                    return spaces;
-
-                return spaces + '<code class="' + css + '">' + line + '</code>';
-            });
-
-        return str;
-    };
-
-    /**
-     * Pads number with zeros until it's length is the same as given length.
-     *
-     * @param {Number} number	Number to pad.
-     * @param {Number} length	Max string length with.
-     * @return {String}			Returns a string padded with proper amount of '0'.
-     */
-    function padNumber(number, length)
-    {
-        var result = number.toString();
-
-        while (result.length < length)
-            result = '0' + result;
-
-        return result;
-    };
-
-    /**
-     * Replaces tabs with spaces.
-     *
-     * @param {String} code		Source code.
-     * @param {Number} tabSize	Size of the tab.
-     * @return {String}			Returns code with all tabs replaces by spaces.
-     */
-    function processTabs(code, tabSize)
-    {
-        var tab = '';
-
-        for (var i = 0; i < tabSize; i++)
-            tab += ' ';
-
-        return code.replace(/\t/g, tab);
-    };
-
-    /**
-     * Replaces tabs with smart spaces.
-     *
-     * @param {String} code    Code to fix the tabs in.
-     * @param {Number} tabSize Number of spaces in a column.
-     * @return {String}        Returns code with all tabs replaces with roper amount of spaces.
-     */
-    function processSmartTabs(code, tabSize)
-    {
-        var lines = splitLines(code),
-            tab = '\t',
-            spaces = ''
-            ;
-
-        // Create a string with 1000 spaces to copy spaces from...
-        // It's assumed that there would be no indentation longer than that.
-        for (var i = 0; i < 50; i++)
-            spaces += '                    '; // 20 spaces * 50
-
-        // This function inserts specified amount of spaces in the string
-        // where a tab is while removing that given tab.
-        function insertSpaces(line, pos, count)
-        {
-            return line.substr(0, pos)
-                + spaces.substr(0, count)
-                + line.substr(pos + 1, line.length) // pos + 1 will get rid of the tab
-                ;
-        };
-
-        // Go through all the lines and do the 'smart tabs' magic.
-        code = eachLine(code, function(line)
-        {
-            if (line.indexOf(tab) == -1)
-                return line;
-
-            var pos = 0;
-
-            while ((pos = line.indexOf(tab)) != -1)
-            {
-                // This is pretty much all there is to the 'smart tabs' logic.
-                // Based on the position within the line and size of a tab,
-                // calculate the amount of spaces we need to insert.
-                var spaces = tabSize - pos % tabSize;
-                line = insertSpaces(line, pos, spaces);
-            }
-
-            return line;
-        });
-
-        return code;
-    };
-
-    /**
-     * Performs various string fixes based on configuration.
-     */
-    function fixInputString(str)
-    {
-        var br = /<br\s*\/?>|&lt;br\s*\/?&gt;/gi;
-
-        if (sh.config.bloggerMode == true)
-            str = str.replace(br, '\n');
-
-        if (sh.config.stripBrs == true)
-            str = str.replace(br, '');
-
-        return str;
-    };
-
-    /**
-     * Removes all white space at the begining and end of a string.
-     *
-     * @param {String} str   String to trim.
-     * @return {String}      Returns string without leading and following white space characters.
-     */
-    function trim(str)
-    {
-        return str.replace(/^\s+|\s+$/g, '');
-    };
-
-    /**
-     * Unindents a block of text by the lowest common indent amount.
-     * @param {String} str   Text to unindent.
-     * @return {String}      Returns unindented text block.
-     */
-    function unindent(str)
-    {
-        var lines = splitLines(fixInputString(str)),
-            indents = new Array(),
-            regex = /^\s*/,
-            min = 1000
-            ;
-
-        // go through every line and check for common number of indents
-        for (var i = 0; i < lines.length && min > 0; i++)
-        {
-            var line = lines[i];
-
-            if (trim(line).length == 0)
-                continue;
-
-            var matches = regex.exec(line);
-
-            // In the event that just one line doesn't have leading white space
-            // we can't unindent anything, so bail completely.
-            if (matches == null)
-                return str;
-
-            min = Math.min(matches[0].length, min);
-        }
-
-        // trim minimum common number of white space from the begining of every line
-        if (min > 0)
-            for (var i = 0; i < lines.length; i++)
-                lines[i] = lines[i].substr(min);
-
-        return lines.join('\n');
-    };
-
-    /**
-     * Callback method for Array.sort() which sorts matches by
-     * index position and then by length.
-     *
-     * @param {Match} m1	Left object.
-     * @param {Match} m2    Right object.
-     * @return {Number}     Returns -1, 0 or -1 as a comparison result.
-     */
-    function matchesSortCallback(m1, m2)
-    {
-        // sort matches by index first
-        if(m1.index < m2.index)
-            return -1;
-        else if(m1.index > m2.index)
-            return 1;
-        else
-        {
-            // if index is the same, sort by length
-            if(m1.length < m2.length)
-                return -1;
-            else if(m1.length > m2.length)
-                return 1;
-        }
-
-        return 0;
-    };
-
-    /**
-     * Executes given regular expression on provided code and returns all
-     * matches that are found.
-     *
-     * @param {String} code    Code to execute regular expression on.
-     * @param {Object} regex   Regular expression item info from <code>regexList</code> collection.
-     * @return {Array}         Returns a list of Match objects.
-     */
-    function getMatches(code, regexInfo)
-    {
-        function defaultAdd(match, regexInfo)
-        {
-            return match[0];
-        };
-
-        var index = 0,
-            match = null,
-            matches = [],
-            func = regexInfo.func ? regexInfo.func : defaultAdd
-            ;
-
-        while((match = regexInfo.regex.exec(code)) != null)
-        {
-            var resultMatch = func(match, regexInfo);
-
-            if (typeof(resultMatch) == 'string')
-                resultMatch = [new sh.Match(resultMatch, match.index, regexInfo.css)];
-
-            matches = matches.concat(resultMatch);
-        }
-
-        return matches;
-    };
-
-    /**
-     * Turns all URLs in the code into <a/> tags.
-     * @param {String} code Input code.
-     * @return {String} Returns code with </a> tags.
-     */
-    function processUrls(code)
-    {
-        var gt = /(.*)((&gt;|&lt;).*)/;
-
-        return code.replace(sh.regexLib.url, function(m)
-        {
-            var suffix = '',
-                match = null
-                ;
-
-            // We include &lt; and &gt; in the URL for the common cases like <http://google.com>
-            // The problem is that they get transformed into &lt;http://google.com&gt;
-            // Where as &gt; easily looks like part of the URL string.
-
-            if (match = gt.exec(m))
-            {
-                m = match[1];
-                suffix = match[2];
-            }
-
-            return '<a href="' + m + '">' + m + '</a>' + suffix;
-        });
-    };
-
-    /**
-     * Finds all <SCRIPT TYPE="syntaxhighlighter" /> elementss.
-     * @return {Array} Returns array of all found SyntaxHighlighter tags.
-     */
-    function getSyntaxHighlighterScriptTags()
-    {
-        var tags = document.getElementsByTagName('script'),
-            result = []
-            ;
-
-        for (var i = 0; i < tags.length; i++)
-            if (tags[i].type == 'syntaxhighlighter')
-                result.push(tags[i]);
-
-        return result;
-    };
-
-    /**
-     * Strips <![CDATA[]]> from <SCRIPT /> content because it should be used
-     * there in most cases for XHTML compliance.
-     * @param {String} original	Input code.
-     * @return {String} Returns code without leading <![CDATA[]]> tags.
-     */
-    function stripCData(original)
-    {
-        var left = '<![CDATA[',
-            right = ']]>',
-        // for some reason IE inserts some leading blanks here
-            copy = trim(original),
-            changed = false,
-            leftLength = left.length,
-            rightLength = right.length
-            ;
-
-        if (copy.indexOf(left) == 0)
-        {
-            copy = copy.substring(leftLength);
-            changed = true;
-        }
-
-        var copyLength = copy.length;
-
-        if (copy.indexOf(right) == copyLength - rightLength)
-        {
-            copy = copy.substring(0, copyLength - rightLength);
-            changed = true;
-        }
-
-        return changed ? copy : original;
-    };
-
-
-    /**
-     * Quick code mouse double click handler.
-     */
-    function quickCodeHandler(e)
-    {
-        var target = e.target,
-            highlighterDiv = findParentElement(target, '.syntaxhighlighter'),
-            container = findParentElement(target, '.container'),
-            textarea = document.createElement('textarea'),
-            highlighter
-            ;
-
-        if (!container || !highlighterDiv || findElement(container, 'textarea'))
-            return;
-
-        highlighter = getHighlighterById(highlighterDiv.id);
-
-        // add source class name
-        addClass(highlighterDiv, 'source');
-
-        // Have to go over each line and grab it's text, can't just do it on the
-        // container because Firefox loses all \n where as Webkit doesn't.
-        var lines = container.childNodes,
-            code = []
-            ;
-
-        for (var i = 0; i < lines.length; i++)
-            code.push(lines[i].innerText || lines[i].textContent);
-
-        // using \r instead of \r or \r\n makes this work equally well on IE, FF and Webkit
-        code = code.join('\r');
-
-        // For Webkit browsers, replace nbsp with a breaking space
-        code = code.replace(/\u00a0/g, " ");
-
-        // inject <textarea/> tag
-        textarea.appendChild(document.createTextNode(code));
-        container.appendChild(textarea);
-
-        // preselect all text
-        textarea.focus();
-        textarea.select();
-
-        // set up handler for lost focus
-        attachEvent(textarea, 'blur', function(e)
-        {
-            textarea.parentNode.removeChild(textarea);
-            removeClass(highlighterDiv, 'source');
-        });
-    };
-
-    /**
-     * Match object.
-     */
-    sh.Match = function(value, index, css)
-    {
-        this.value = value;
-        this.index = index;
-        this.length = value.length;
-        this.css = css;
-        this.brushName = null;
-    };
-
-    sh.Match.prototype.toString = function()
-    {
-        return this.value;
-    };
-
-    /**
-     * Simulates HTML code with a scripting language embedded.
-     *
-     * @param {String} scriptBrushName Brush name of the scripting language.
-     */
-    sh.HtmlScript = function(scriptBrushName)
-    {
-        var brushClass = findBrush(scriptBrushName),
-            scriptBrush,
-            xmlBrush = new sh.brushes.Xml(),
-            bracketsRegex = null,
-            ref = this,
-            methodsToExpose = 'getDiv getHtml init'.split(' ')
-            ;
-
-        if (brushClass == null)
-            return;
-
-        scriptBrush = new brushClass();
-
-        for(var i = 0; i < methodsToExpose.length; i++)
-            // make a closure so we don't lose the name after i changes
-            (function() {
-                var name = methodsToExpose[i];
-
-                ref[name] = function()
-                {
-                    return xmlBrush[name].apply(xmlBrush, arguments);
-                };
-            })();
-
-        if (scriptBrush.htmlScript == null)
-        {
-            alert(sh.config.strings.brushNotHtmlScript + scriptBrushName);
-            return;
-        }
-
-        xmlBrush.regexList.push(
-            { regex: scriptBrush.htmlScript.code, func: process }
-        );
-
-        function offsetMatches(matches, offset)
-        {
-            for (var j = 0; j < matches.length; j++)
-                matches[j].index += offset;
-        }
-
-        function process(match, info)
-        {
-            var code = match.code,
-                matches = [],
-                regexList = scriptBrush.regexList,
-                offset = match.index + match.left.length,
-                htmlScript = scriptBrush.htmlScript,
-                result
-                ;
-
-            // add all matches from the code
-            for (var i = 0; i < regexList.length; i++)
-            {
-                result = getMatches(code, regexList[i]);
-                offsetMatches(result, offset);
-                matches = matches.concat(result);
-            }
-
-            // add left script bracket
-            if (htmlScript.left != null && match.left != null)
-            {
-                result = getMatches(match.left, htmlScript.left);
-                offsetMatches(result, match.index);
-                matches = matches.concat(result);
-            }
-
-            // add right script bracket
-            if (htmlScript.right != null && match.right != null)
-            {
-                result = getMatches(match.right, htmlScript.right);
-                offsetMatches(result, match.index + match[0].lastIndexOf(match.right));
-                matches = matches.concat(result);
-            }
-
-            for (var j = 0; j < matches.length; j++)
-                matches[j].brushName = brushClass.brushName;
-
-            return matches;
-        }
-    };
-
-    /**
-     * Main Highlither class.
-     * @constructor
-     */
-    sh.Highlighter = function()
-    {
-        // not putting any code in here because of the prototype inheritance
-    };
-
-    sh.Highlighter.prototype = {
-        /**
-         * Returns value of the parameter passed to the highlighter.
-         * @param {String} name				Name of the parameter.
-         * @param {Object} defaultValue		Default value.
-         * @return {Object}					Returns found value or default value otherwise.
-         */
-        getParam: function(name, defaultValue)
-        {
-            var result = this.params[name];
-            return toBoolean(result == null ? defaultValue : result);
-        },
-
-        /**
-         * Shortcut to document.createElement().
-         * @param {String} name		Name of the element to create (DIV, A, etc).
-         * @return {HTMLElement}	Returns new HTML element.
-         */
-        create: function(name)
-        {
-            return document.createElement(name);
-        },
-
-        /**
-         * Applies all regular expression to the code and stores all found
-         * matches in the `this.matches` array.
-         * @param {Array} regexList		List of regular expressions.
-         * @param {String} code			Source code.
-         * @return {Array}				Returns list of matches.
-         */
-        findMatches: function(regexList, code)
-        {
-            var result = [];
-
-            if (regexList != null)
-                for (var i = 0; i < regexList.length; i++)
-                    // BUG: length returns len+1 for array if methods added to prototype chain (oising@gmail.com)
-                    if (typeof (regexList[i]) == "object")
-                        result = result.concat(getMatches(code, regexList[i]));
-
-            // sort and remove nested the matches
-            return this.removeNestedMatches(result.sort(matchesSortCallback));
-        },
-
-        /**
-         * Checks to see if any of the matches are inside of other matches.
-         * This process would get rid of highligted strings inside comments,
-         * keywords inside strings and so on.
-         */
-        removeNestedMatches: function(matches)
-        {
-            // Optimized by Jose Prado (http://joseprado.com)
-            for (var i = 0; i < matches.length; i++)
-            {
-                if (matches[i] === null)
-                    continue;
-
-                var itemI = matches[i],
-                    itemIEndPos = itemI.index + itemI.length
-                    ;
-
-                for (var j = i + 1; j < matches.length && matches[i] !== null; j++)
-                {
-                    var itemJ = matches[j];
-
-                    if (itemJ === null)
-                        continue;
-                    else if (itemJ.index > itemIEndPos)
-                        break;
-                    else if (itemJ.index == itemI.index && itemJ.length > itemI.length)
-                        matches[i] = null;
-                    else if (itemJ.index >= itemI.index && itemJ.index < itemIEndPos)
-                        matches[j] = null;
-                }
-            }
-
-            return matches;
-        },
-
-        /**
-         * Creates an array containing integer line numbers starting from the 'first-line' param.
-         * @return {Array} Returns array of integers.
-         */
-        figureOutLineNumbers: function(code)
-        {
-            var lines = [],
-                firstLine = parseInt(this.getParam('first-line'))
-                ;
-
-            eachLine(code, function(line, index)
-            {
-                lines.push(index + firstLine);
-            });
-
-            return lines;
-        },
-
-        /**
-         * Determines if specified line number is in the highlighted list.
-         */
-        isLineHighlighted: function(lineNumber)
-        {
-            var list = this.getParam('highlight', []);
-
-            if (typeof(list) != 'object' && list.push == null)
-                list = [ list ];
-
-            return indexOf(list, lineNumber.toString()) != -1;
-        },
-
-        /**
-         * Generates HTML markup for a single line of code while determining alternating line style.
-         * @param {Integer} lineNumber	Line number.
-         * @param {String} code Line	HTML markup.
-         * @return {String}				Returns HTML markup.
-         */
-        getLineHtml: function(lineIndex, lineNumber, code)
-        {
-            var classes = [
-                'line',
-                'number' + lineNumber,
-                'index' + lineIndex,
-                'alt' + (lineNumber % 2 == 0 ? 1 : 2).toString()
-            ];
-
-            if (this.isLineHighlighted(lineNumber))
-                classes.push('highlighted');
-
-            if (lineNumber == 0)
-                classes.push('break');
-
-            return '<div class="' + classes.join(' ') + '">' + code + '</div>';
-        },
-
-        /**
-         * Generates HTML markup for line number column.
-         * @param {String} code			Complete code HTML markup.
-         * @param {Array} lineNumbers	Calculated line numbers.
-         * @return {String}				Returns HTML markup.
-         */
-        getLineNumbersHtml: function(code, lineNumbers)
-        {
-            var html = '',
-                count = splitLines(code).length,
-                firstLine = parseInt(this.getParam('first-line')),
-                pad = this.getParam('pad-line-numbers')
-                ;
-
-            if (pad == true)
-                pad = (firstLine + count - 1).toString().length;
-            else if (isNaN(pad) == true)
-                pad = 0;
-
-            for (var i = 0; i < count; i++)
-            {
-                var lineNumber = lineNumbers ? lineNumbers[i] : firstLine + i,
-                    code = lineNumber == 0 ? sh.config.space : padNumber(lineNumber, pad)
-                    ;
-
-                html += this.getLineHtml(i, lineNumber, code);
-            }
-
-            return html;
-        },
-
-        /**
-         * Splits block of text into individual DIV lines.
-         * @param {String} code			Code to highlight.
-         * @param {Array} lineNumbers	Calculated line numbers.
-         * @return {String}				Returns highlighted code in HTML form.
-         */
-        getCodeLinesHtml: function(html, lineNumbers)
-        {
-            html = trim(html);
-
-            var lines = splitLines(html),
-                padLength = this.getParam('pad-line-numbers'),
-                firstLine = parseInt(this.getParam('first-line')),
-                html = '',
-                brushName = this.getParam('brush')
-                ;
-
-            for (var i = 0; i < lines.length; i++)
-            {
-                var line = lines[i],
-                    indent = /^(&nbsp;|\s)+/.exec(line),
-                    spaces = null,
-                    lineNumber = lineNumbers ? lineNumbers[i] : firstLine + i;
-                ;
-
-                if (indent != null)
-                {
-                    spaces = indent[0].toString();
-                    line = line.substr(spaces.length);
-                    spaces = spaces.replace(' ', sh.config.space);
-                }
-
-                line = trim(line);
-
-                if (line.length == 0)
-                    line = sh.config.space;
-
-                html += this.getLineHtml(
-                    i,
-                    lineNumber,
-                    (spaces != null ? '<code class="' + brushName + ' spaces">' + spaces + '</code>' : '') + line
-                );
-            }
-
-            return html;
-        },
-
-        /**
-         * Returns HTML for the table title or empty string if title is null.
-         */
-        getTitleHtml: function(title)
-        {
-            return title ? '<caption>' + title + '</caption>' : '';
-        },
-
-        /**
-         * Finds all matches in the source code.
-         * @param {String} code		Source code to process matches in.
-         * @param {Array} matches	Discovered regex matches.
-         * @return {String} Returns formatted HTML with processed mathes.
-         */
-        getMatchesHtml: function(code, matches)
-        {
-            var pos = 0,
-                result = '',
-                brushName = this.getParam('brush', '')
-                ;
-
-            function getBrushNameCss(match)
-            {
-                var result = match ? (match.brushName || brushName) : brushName;
-                return result ? result + ' ' : '';
-            };
-
-            // Finally, go through the final list of matches and pull the all
-            // together adding everything in between that isn't a match.
-            for (var i = 0; i < matches.length; i++)
-            {
-                var match = matches[i],
-                    matchBrushName
-                    ;
-
-                if (match === null || match.length === 0)
-                    continue;
-
-                matchBrushName = getBrushNameCss(match);
-
-                result += wrapLinesWithCode(code.substr(pos, match.index - pos), matchBrushName + 'plain')
-                    + wrapLinesWithCode(match.value, matchBrushName + match.css)
-                ;
-
-                pos = match.index + match.length + (match.offset || 0);
-            }
-
-            // don't forget to add whatever's remaining in the string
-            result += wrapLinesWithCode(code.substr(pos), getBrushNameCss() + 'plain');
-
-            return result;
-        },
-
-        /**
-         * Generates HTML markup for the whole syntax highlighter.
-         * @param {String} code Source code.
-         * @return {String} Returns HTML markup.
-         */
-        getHtml: function(code)
-        {
-            var html = '',
-                classes = [ 'syntaxhighlighter' ],
-                tabSize,
-                matches,
-                lineNumbers
-                ;
-
-            // process light mode
-            if (this.getParam('light') == true)
-                this.params.toolbar = this.params.gutter = false;
-
-            className = 'syntaxhighlighter';
-
-            if (this.getParam('collapse') == true)
-                classes.push('collapsed');
-
-            if ((gutter = this.getParam('gutter')) == false)
-                classes.push('nogutter');
-
-            // add custom user style name
-            classes.push(this.getParam('class-name'));
-
-            // add brush alias to the class name for custom CSS
-            classes.push(this.getParam('brush'));
-
-            code = trimFirstAndLastLines(code)
-                .replace(/\r/g, ' ') // IE lets these buggers through
-            ;
-
-            tabSize = this.getParam('tab-size');
-
-            // replace tabs with spaces
-            code = this.getParam('smart-tabs') == true
-                ? processSmartTabs(code, tabSize)
-                : processTabs(code, tabSize)
-            ;
-
-            // unindent code by the common indentation
-            if (this.getParam('unindent'))
-                code = unindent(code);
-
-            if (gutter)
-                lineNumbers = this.figureOutLineNumbers(code);
-
-            // find matches in the code using brushes regex list
-            matches = this.findMatches(this.regexList, code);
-            // processes found matches into the html
-            html = this.getMatchesHtml(code, matches);
-            // finally, split all lines so that they wrap well
-            html = this.getCodeLinesHtml(html, lineNumbers);
-
-            // finally, process the links
-            if (this.getParam('auto-links'))
-                html = processUrls(html);
-
-            if (typeof(navigator) != 'undefined' && navigator.userAgent && navigator.userAgent.match(/MSIE/))
-                classes.push('ie');
-
-            html =
-                '<div id="' + getHighlighterId(this.id) + '" class="' + classes.join(' ') + '">'
-                    + (this.getParam('toolbar') ? sh.toolbar.getHtml(this) : '')
-                    + '<table border="0" cellpadding="0" cellspacing="0">'
-                    + this.getTitleHtml(this.getParam('title'))
-                    + '<tbody>'
-                    + '<tr>'
-                    + (gutter ? '<td class="gutter">' + this.getLineNumbersHtml(code) + '</td>' : '')
-                    + '<td class="code">'
-                    + '<div class="container">'
-                    + html
-                    + '</div>'
-                    + '</td>'
-                    + '</tr>'
-                    + '</tbody>'
-                    + '</table>'
-                    + '</div>'
-            ;
-
-            return html;
-        },
-
-        /**
-         * Highlights the code and returns complete HTML.
-         * @param {String} code     Code to highlight.
-         * @return {Element}        Returns container DIV element with all markup.
-         */
-        getDiv: function(code)
-        {
-            if (code === null)
-                code = '';
-
-            this.code = code;
-
-            var div = this.create('div');
-
-            // create main HTML
-            div.innerHTML = this.getHtml(code);
-
-            // set up click handlers
-            if (this.getParam('toolbar'))
-                attachEvent(findElement(div, '.toolbar'), 'click', sh.toolbar.handler);
-
-            if (this.getParam('quick-code'))
-                attachEvent(findElement(div, '.code'), 'dblclick', quickCodeHandler);
-
-            return div;
-        },
-
-        /**
-         * Initializes the highlighter/brush.
-         *
-         * Constructor isn't used for initialization so that nothing executes during necessary
-         * `new SyntaxHighlighter.Highlighter()` call when setting up brush inheritence.
-         *
-         * @param {Hash} params Highlighter parameters.
-         */
-        init: function(params)
-        {
-            this.id = guid();
-
-            // register this instance in the highlighters list
-            storeHighlighter(this);
-
-            // local params take precedence over defaults
-            this.params = merge(sh.defaults, params || {})
-
-            // process light mode
-            if (this.getParam('light') == true)
-                this.params.toolbar = this.params.gutter = false;
-        },
-
-        /**
-         * Converts space separated list of keywords into a regular expression string.
-         * @param {String} str    Space separated keywords.
-         * @return {String}       Returns regular expression string.
-         */
-        getKeywords: function(str)
-        {
-            str = str
-                .replace(/^\s+|\s+$/g, '')
-                .replace(/\s+/g, '|')
-            ;
-
-            return '\\b(?:' + str + ')\\b';
-        },
-
-        /**
-         * Makes a brush compatible with the `html-script` functionality.
-         * @param {Object} regexGroup Object containing `left` and `right` regular expressions.
-         */
-        forHtmlScript: function(regexGroup)
-        {
-            var regex = { 'end' : regexGroup.right.source };
-
-            if(regexGroup.eof)
-                regex.end = "(?:(?:" + regex.end + ")|$)";
-
-            this.htmlScript = {
-                left : { regex: regexGroup.left, css: 'script' },
-                right : { regex: regexGroup.right, css: 'script' },
-                code : new XRegExp(
-                    "(?<left>" + regexGroup.left.source + ")" +
-                        "(?<code>.*?)" +
-                        "(?<right>" + regex.end + ")",
-                    "sgi"
-                )
-            };
-        }
-    }; // end of Highlighter
-
-    return sh;
-}(); // end of anonymous function
-
-// CommonJS
-typeof(exports) != 'undefined' ? exports.SyntaxHighlighter = SyntaxHighlighter : null;
-
-;(function()
-{
-    // CommonJS
-    SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-    function Brush()
-    {
-        // Created by Peter Atoria @ http://iAtoria.com
-
-        var inits 	 =  'class interface function package';
-
-        var keywords =	'-Infinity ...rest Array as AS3 Boolean break case catch const continue Date decodeURI ' +
-                'decodeURIComponent default delete do dynamic each else encodeURI encodeURIComponent escape ' +
-                'extends false final finally flash_proxy for get if implements import in include Infinity ' +
-                'instanceof int internal is isFinite isNaN isXMLName label namespace NaN native new null ' +
-                'Null Number Object object_proxy override parseFloat parseInt private protected public ' +
-                'return set static String super switch this throw true try typeof uint undefined unescape ' +
-                'use void while with'
-            ;
-
-        this.regexList = [
-            { regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },		// one line comments
-            { regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },		// multiline comments
-            { regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },		// double quoted strings
-            { regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// single quoted strings
-            { regex: /\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi,				css: 'value' },			// numbers
-            { regex: new RegExp(this.getKeywords(inits), 'gm'),			css: 'color3' },		// initializations
-            { regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' },		// keywords
-            { regex: new RegExp('var', 'gm'),							css: 'variable' },		// variable
-            { regex: new RegExp('trace', 'gm'),							css: 'color1' }			// trace
-        ];
-
-        this.forHtmlScript(SyntaxHighlighter.regexLib.scriptScriptTags);
-    };
-
-    Brush.prototype	= new SyntaxHighlighter.Highlighter();
-    Brush.aliases	= ['actionscript3', 'as3'];
-
-    SyntaxHighlighter.brushes.AS3 = Brush;
-
-    // CommonJS
-    typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-
-;(function()
-{
-    // CommonJS
-    SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-    function Brush()
-    {
-        // AppleScript brush by David Chambers
-        // http://davidchambersdesign.com/
-        var keywords   = 'after before beginning continue copy each end every from return get global in local named of set some that the then times to where whose with without';
-        var ordinals   = 'first second third fourth fifth sixth seventh eighth ninth tenth last front back middle';
-        var specials   = 'activate add alias AppleScript ask attachment boolean class constant delete duplicate empty exists false id integer list make message modal modified new no paragraph pi properties quit real record remove rest result reveal reverse run running save string true word yes';
-
-        this.regexList = [
-
-            { regex: /(--|#).*$/gm,
-                css: 'comments' },
-
-            { regex: /\(\*(?:[\s\S]*?\(\*[\s\S]*?\*\))*[\s\S]*?\*\)/gm, // support nested comments
-                css: 'comments' },
-
-            { regex: /"[\s\S]*?"/gm,
-                css: 'string' },
-
-            { regex: /(?:,|:|卢|'s\b|\(|\)|\{|\}|芦|\b\w*禄)/g,
-                css: 'color1' },
-
-            { regex: /(-)?(\d)+(\.(\d)?)?(E\+(\d)+)?/g, // numbers
-                css: 'color1' },
-
-            { regex: /(?:&(amp;|gt;|lt;)?|=|锟� |>|<|鈮>=|鈮<=|\*|\+|-|\/|梅|\^)/g,
-                css: 'color2' },
-
-            { regex: /\b(?:and|as|div|mod|not|or|return(?!\s&)(ing)?|equals|(is(n't| not)? )?equal( to)?|does(n't| not) equal|(is(n't| not)? )?(greater|less) than( or equal( to)?)?|(comes|does(n't| not) come) (after|before)|is(n't| not)?( in)? (back|front) of|is(n't| not)? behind|is(n't| not)?( (in|contained by))?|does(n't| not) contain|contain(s)?|(start|begin|end)(s)? with|((but|end) )?(consider|ignor)ing|prop(erty)?|(a )?ref(erence)?( to)?|repeat (until|while|with)|((end|exit) )?repeat|((else|end) )?if|else|(end )?(script|tell|try)|(on )?error|(put )?into|(of )?(it|me)|its|my|with (timeout( of)?|transaction)|end (timeout|transaction))\b/g,
-                css: 'keyword' },
-
-            { regex: /\b\d+(st|nd|rd|th)\b/g, // ordinals
-                css: 'keyword' },
-
-            { regex: /\b(?:about|above|against|around|at|below|beneath|beside|between|by|(apart|aside) from|(instead|out) of|into|on(to)?|over|since|thr(ough|u)|under)\b/g,
-                css: 'color3' },
-
-            { regex: /\b(?:adding folder items to|after receiving|choose( ((remote )?application|color|folder|from list|URL))?|clipboard info|set the clipboard to|(the )?clipboard|entire contents|display(ing| (alert|dialog|mode))?|document( (edited|file|nib name))?|file( (name|type))?|(info )?for|giving up after|(name )?extension|quoted form|return(ed)?|second(?! item)(s)?|list (disks|folder)|text item(s| delimiters)?|(Unicode )?text|(disk )?item(s)?|((current|list) )?view|((container|key) )?window|with (data|icon( (caution|note|stop))?|parameter(s)?|prompt|properties|seed|title)|case|diacriticals|hyphens|numeric strings|punctuation|white space|folder creation|application(s( folder)?| (processes|scripts position|support))?|((desktop )?(pictures )?|(documents|downloads|favorites|home|keychain|library|movies|music|public|scripts|sites|system|users|utilities|workflows) )folder|desktop|Folder Action scripts|font(s| panel)?|help|internet plugins|modem scripts|(system )?preferences|printer descriptions|scripting (additions|components)|shared (documents|libraries)|startup (disk|items)|temporary items|trash|on server|in AppleTalk zone|((as|long|short) )?user name|user (ID|locale)|(with )?password|in (bundle( with identifier)?|directory)|(close|open for) access|read|write( permission)?|(g|s)et eof|using( delimiters)?|starting at|default (answer|button|color|country code|entr(y|ies)|identifiers|items|name|location|script editor)|hidden( answer)?|open(ed| (location|untitled))?|error (handling|reporting)|(do( shell)?|load|run|store) script|administrator privileges|altering line endings|get volume settings|(alert|boot|input|mount|output|set) volume|output muted|(fax|random )?number|round(ing)?|up|down|toward zero|to nearest|as taught in school|system (attribute|info)|((AppleScript( Studio)?|system) )?version|(home )?directory|(IPv4|primary Ethernet) address|CPU (type|speed)|physical memory|time (stamp|to GMT)|replacing|ASCII (character|number)|localized string|from table|offset|summarize|beep|delay|say|(empty|multiple) selections allowed|(of|preferred) type|invisibles|showing( package contents)?|editable URL|(File|FTP|News|Media|Web) [Ss]ervers|Telnet hosts|Directory services|Remote applications|waiting until completion|saving( (in|to))?|path (for|to( (((current|frontmost) )?application|resource))?)|POSIX (file|path)|(background|RGB) color|(OK|cancel) button name|cancel button|button(s)?|cubic ((centi)?met(re|er)s|yards|feet|inches)|square ((kilo)?met(re|er)s|miles|yards|feet)|(centi|kilo)?met(re|er)s|miles|yards|feet|inches|lit(re|er)s|gallons|quarts|(kilo)?grams|ounces|pounds|degrees (Celsius|Fahrenheit|Kelvin)|print( (dialog|settings))?|clos(e(able)?|ing)|(de)?miniaturized|miniaturizable|zoom(ed|able)|attribute run|action (method|property|title)|phone|email|((start|end)ing|home) page|((birth|creation|current|custom|modification) )?date|((((phonetic )?(first|last|middle))|computer|host|maiden|related) |nick)?name|aim|icq|jabber|msn|yahoo|address(es)?|save addressbook|should enable action|city|country( code)?|formatte(r|d address)|(palette )?label|state|street|zip|AIM [Hh]andle(s)?|my card|select(ion| all)?|unsaved|(alpha )?value|entr(y|ies)|group|(ICQ|Jabber|MSN) handle|person|people|company|department|icon image|job title|note|organization|suffix|vcard|url|copies|collating|pages (across|down)|request print time|target( printer)?|((GUI Scripting|Script menu) )?enabled|show Computer scripts|(de)?activated|awake from nib|became (key|main)|call method|of (class|object)|center|clicked toolbar item|closed|for document|exposed|(can )?hide|idle|keyboard (down|up)|event( (number|type))?|launch(ed)?|load (image|movie|nib|sound)|owner|log|mouse (down|dragged|entered|exited|moved|up)|move|column|localization|resource|script|register|drag (info|types)|resigned (active|key|main)|resiz(e(d)?|able)|right mouse (down|dragged|up)|scroll wheel|(at )?index|should (close|open( untitled)?|quit( after last window closed)?|zoom)|((proposed|screen) )?bounds|show(n)?|behind|in front of|size (mode|to fit)|update(d| toolbar item)?|was (hidden|miniaturized)|will (become active|close|finish launching|hide|miniaturize|move|open|quit|(resign )?active|((maximum|minimum|proposed) )?size|show|zoom)|bundle|data source|movie|pasteboard|sound|tool(bar| tip)|(color|open|save) panel|coordinate system|frontmost|main( (bundle|menu|window))?|((services|(excluded from )?windows) )?menu|((executable|frameworks|resource|scripts|shared (frameworks|support)) )?path|(selected item )?identifier|data|content(s| view)?|character(s)?|click count|(command|control|option|shift) key down|context|delta (x|y|z)|key( code)?|location|pressure|unmodified characters|types|(first )?responder|playing|(allowed|selectable) identifiers|allows customization|(auto saves )?configuration|visible|image( name)?|menu form representation|tag|user(-| )defaults|associated file name|(auto|needs) display|current field editor|floating|has (resize indicator|shadow)|hides when deactivated|level|minimized (image|title)|opaque|position|release when closed|sheet|title(d)?)\b/g,
-                css: 'color3' },
-
-            { regex: new RegExp(this.getKeywords(specials), 'gm'), css: 'color3' },
-            { regex: new RegExp(this.getKeywords(keywords), 'gm'), css: 'keyword' },
-            { regex: new RegExp(this.getKeywords(ordinals), 'gm'), css: 'keyword' }
-        ];
-    };
-
-    Brush.prototype = new SyntaxHighlighter.Highlighter();
-    Brush.aliases = ['applescript'];
-
-    SyntaxHighlighter.brushes.AppleScript = Brush;
-
-    // CommonJS
-    typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		var keywords =	'if fi then elif else for do done until while break continue case esac function return in eq ne ge le';
-		var commands =  'alias apropos awk basename bash bc bg builtin bzip2 cal cat cd cfdisk chgrp chmod chown chroot' +
-						'cksum clear cmp comm command cp cron crontab csplit cut date dc dd ddrescue declare df ' +
-						'diff diff3 dig dir dircolors dirname dirs du echo egrep eject enable env ethtool eval ' +
-						'exec exit expand export expr false fdformat fdisk fg fgrep file find fmt fold format ' +
-						'free fsck ftp gawk getopts grep groups gzip hash head history hostname id ifconfig ' +
-						'import install join kill less let ln local locate logname logout look lpc lpr lprint ' +
-						'lprintd lprintq lprm ls lsof make man mkdir mkfifo mkisofs mknod more mount mtools ' +
-						'mv netstat nice nl nohup nslookup open op passwd paste pathchk ping popd pr printcap ' +
-						'printenv printf ps pushd pwd quota quotacheck quotactl ram rcp read readonly renice ' +
-						'remsync rm rmdir rsync screen scp sdiff sed select seq set sftp shift shopt shutdown ' +
-						'sleep sort source split ssh strace su sudo sum symlink sync tail tar tee test time ' +
-						'times touch top traceroute trap tr true tsort tty type ulimit umask umount unalias ' +
-						'uname unexpand uniq units unset unshar useradd usermod users uuencode uudecode v vdir ' +
-						'vi watch wc whereis which who whoami Wget xargs yes'
-						;
-
-		this.regexList = [
-			{ regex: /^#!.*$/gm,											css: 'preprocessor bold' },
-			{ regex: /\/[\w-\/]+/gm,										css: 'plain' },
-			{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,		css: 'comments' },		// one line comments
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,			css: 'string' },		// double quoted strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,			css: 'string' },		// single quoted strings
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),			css: 'keyword' },		// keywords
-			{ regex: new RegExp(this.getKeywords(commands), 'gm'),			css: 'functions' }		// commands
-			];
-	}
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['bash', 'shell', 'sh'];
-
-	SyntaxHighlighter.brushes.Bash = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by Jen
-		// http://www.jensbits.com/2009/05/14/coldfusion-brush-for-syntaxhighlighter-plus
-	
-		var funcs	=	'Abs ACos AddSOAPRequestHeader AddSOAPResponseHeader AjaxLink AjaxOnLoad ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ' + 
-						'ArrayInsertAt ArrayIsDefined ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArraySet ArraySort ArraySum ArraySwap ArrayToList ' + 
-						'Asc ASin Atn BinaryDecode BinaryEncode BitAnd BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN BitSHRN BitXor ' + 
-						'Ceiling CharsetDecode CharsetEncode Chr CJustify Compare CompareNoCase Cos CreateDate CreateDateTime CreateObject ' + 
-						'CreateODBCDate CreateODBCDateTime CreateODBCTime CreateTime CreateTimeSpan CreateUUID DateAdd DateCompare DateConvert ' + 
-						'DateDiff DateFormat DatePart Day DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear DE DecimalFormat DecrementValue ' + 
-						'Decrypt DecryptBinary DeleteClientVariable DeserializeJSON DirectoryExists DollarFormat DotNetToCFType Duplicate Encrypt ' + 
-						'EncryptBinary Evaluate Exp ExpandPath FileClose FileCopy FileDelete FileExists FileIsEOF FileMove FileOpen FileRead ' + 
-						'FileReadBinary FileReadLine FileSetAccessMode FileSetAttribute FileSetLastModified FileWrite Find FindNoCase FindOneOf ' + 
-						'FirstDayOfMonth Fix FormatBaseN GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList GetBaseTemplatePath ' + 
-						'GetClientVariablesList GetComponentMetaData GetContextRoot GetCurrentTemplatePath GetDirectoryFromPath GetEncoding ' + 
-						'GetException GetFileFromPath GetFileInfo GetFunctionList GetGatewayHelper GetHttpRequestData GetHttpTimeString ' + 
-						'GetK2ServerDocCount GetK2ServerDocCountLimit GetLocale GetLocaleDisplayName GetLocalHostIP GetMetaData GetMetricData ' + 
-						'GetPageContext GetPrinterInfo GetProfileSections GetProfileString GetReadableImageFormats GetSOAPRequest GetSOAPRequestHeader ' + 
-						'GetSOAPResponse GetSOAPResponseHeader GetTempDirectory GetTempFile GetTemplatePath GetTickCount GetTimeZoneInfo GetToken ' + 
-						'GetUserRoles GetWriteableImageFormats Hash Hour HTMLCodeFormat HTMLEditFormat IIf ImageAddBorder ImageBlur ImageClearRect ' + 
-						'ImageCopy ImageCrop ImageDrawArc ImageDrawBeveledRect ImageDrawCubicCurve ImageDrawLine ImageDrawLines ImageDrawOval ' + 
-						'ImageDrawPoint ImageDrawQuadraticCurve ImageDrawRect ImageDrawRoundRect ImageDrawText ImageFlip ImageGetBlob ImageGetBufferedImage ' + 
-						'ImageGetEXIFTag ImageGetHeight ImageGetIPTCTag ImageGetWidth ImageGrayscale ImageInfo ImageNegative ImageNew ImageOverlay ImagePaste ' + 
-						'ImageRead ImageReadBase64 ImageResize ImageRotate ImageRotateDrawingAxis ImageScaleToFit ImageSetAntialiasing ImageSetBackgroundColor ' + 
-						'ImageSetDrawingColor ImageSetDrawingStroke ImageSetDrawingTransparency ImageSharpen ImageShear ImageShearDrawingAxis ImageTranslate ' + 
-						'ImageTranslateDrawingAxis ImageWrite ImageWriteBase64 ImageXORDrawingMode IncrementValue InputBaseN Insert Int IsArray IsBinary ' + 
-						'IsBoolean IsCustomFunction IsDate IsDDX IsDebugMode IsDefined IsImage IsImageFile IsInstanceOf IsJSON IsLeapYear IsLocalHost ' + 
-						'IsNumeric IsNumericDate IsObject IsPDFFile IsPDFObject IsQuery IsSimpleValue IsSOAPRequest IsStruct IsUserInAnyRole IsUserInRole ' + 
-						'IsUserLoggedIn IsValid IsWDDX IsXML IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot JavaCast JSStringFormat LCase Left Len ' + 
-						'ListAppend ListChangeDelims ListContains ListContainsNoCase ListDeleteAt ListFind ListFindNoCase ListFirst ListGetAt ListInsertAt ' + 
-						'ListLast ListLen ListPrepend ListQualify ListRest ListSetAt ListSort ListToArray ListValueCount ListValueCountNoCase LJustify Log ' + 
-						'Log10 LSCurrencyFormat LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime ' + 
-						'LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Max Mid Min Minute Month MonthAsString Now NumberFormat ParagraphFormat ParseDateTime ' + 
-						'Pi PrecisionEvaluate PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow QueryConvertForGrid QueryNew QuerySetCell QuotedValueList Rand ' + 
-						'Randomize RandRange REFind REFindNoCase ReleaseComObject REMatch REMatchNoCase RemoveChars RepeatString Replace ReplaceList ReplaceNoCase ' + 
-						'REReplace REReplaceNoCase Reverse Right RJustify Round RTrim Second SendGatewayMessage SerializeJSON SetEncoding SetLocale SetProfileString ' + 
-						'SetVariable Sgn Sin Sleep SpanExcluding SpanIncluding Sqr StripCR StructAppend StructClear StructCopy StructCount StructDelete StructFind ' + 
-						'StructFindKey StructFindValue StructGet StructInsert StructIsEmpty StructKeyArray StructKeyExists StructKeyList StructKeyList StructNew ' + 
-						'StructSort StructUpdate Tan TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase URLDecode URLEncodedFormat URLSessionFormat Val ' + 
-						'ValueList VerifyClient Week Wrap Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform ' + 
-						'XmlValidate Year YesNoFormat';
-
-		var keywords =	'cfabort cfajaximport cfajaxproxy cfapplet cfapplication cfargument cfassociate cfbreak cfcache cfcalendar ' + 
-						'cfcase cfcatch cfchart cfchartdata cfchartseries cfcol cfcollection cfcomponent cfcontent cfcookie cfdbinfo ' + 
-						'cfdefaultcase cfdirectory cfdiv cfdocument cfdocumentitem cfdocumentsection cfdump cfelse cfelseif cferror ' + 
-						'cfexchangecalendar cfexchangeconnection cfexchangecontact cfexchangefilter cfexchangemail cfexchangetask ' + 
-						'cfexecute cfexit cffeed cffile cfflush cfform cfformgroup cfformitem cfftp cffunction cfgrid cfgridcolumn ' + 
-						'cfgridrow cfgridupdate cfheader cfhtmlhead cfhttp cfhttpparam cfif cfimage cfimport cfinclude cfindex ' + 
-						'cfinput cfinsert cfinterface cfinvoke cfinvokeargument cflayout cflayoutarea cfldap cflocation cflock cflog ' + 
-						'cflogin cfloginuser cflogout cfloop cfmail cfmailparam cfmailpart cfmenu cfmenuitem cfmodule cfNTauthenticate ' + 
-						'cfobject cfobjectcache cfoutput cfparam cfpdf cfpdfform cfpdfformparam cfpdfparam cfpdfsubform cfpod cfpop ' + 
-						'cfpresentation cfpresentationslide cfpresenter cfprint cfprocessingdirective cfprocparam cfprocresult ' + 
-						'cfproperty cfquery cfqueryparam cfregistry cfreport cfreportparam cfrethrow cfreturn cfsavecontent cfschedule ' + 
-						'cfscript cfsearch cfselect cfset cfsetting cfsilent cfslider cfsprydataset cfstoredproc cfswitch cftable ' + 
-						'cftextarea cfthread cfthrow cftimer cftooltip cftrace cftransaction cftree cftreeitem cftry cfupdate cfwddx ' + 
-						'cfwindow cfxml cfzip cfzipparam';
-
-		var operators =	'all and any between cross in join like not null or outer some';
-
-		this.regexList = [
-			{ regex: new RegExp('--(.*)$', 'gm'),						css: 'comments' },  // one line and multiline comments
-			{ regex: SyntaxHighlighter.regexLib.xmlComments,			css: 'comments' },    // single quoted strings
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },    // double quoted strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },    // single quoted strings
-			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' }, // functions
-			{ regex: new RegExp(this.getKeywords(operators), 'gmi'),	css: 'color1' },    // operators and such
-			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),		css: 'keyword' }    // keyword
-			];
-	}
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['coldfusion','cf'];
-	
-	SyntaxHighlighter.brushes.ColdFusion = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Copyright 2006 Shin, YoungJin
-	
-		var datatypes =	'ATOM BOOL BOOLEAN BYTE CHAR COLORREF DWORD DWORDLONG DWORD_PTR ' +
-						'DWORD32 DWORD64 FLOAT HACCEL HALF_PTR HANDLE HBITMAP HBRUSH ' +
-						'HCOLORSPACE HCONV HCONVLIST HCURSOR HDC HDDEDATA HDESK HDROP HDWP ' +
-						'HENHMETAFILE HFILE HFONT HGDIOBJ HGLOBAL HHOOK HICON HINSTANCE HKEY ' +
-						'HKL HLOCAL HMENU HMETAFILE HMODULE HMONITOR HPALETTE HPEN HRESULT ' +
-						'HRGN HRSRC HSZ HWINSTA HWND INT INT_PTR INT32 INT64 LANGID LCID LCTYPE ' +
-						'LGRPID LONG LONGLONG LONG_PTR LONG32 LONG64 LPARAM LPBOOL LPBYTE LPCOLORREF ' +
-						'LPCSTR LPCTSTR LPCVOID LPCWSTR LPDWORD LPHANDLE LPINT LPLONG LPSTR LPTSTR ' +
-						'LPVOID LPWORD LPWSTR LRESULT PBOOL PBOOLEAN PBYTE PCHAR PCSTR PCTSTR PCWSTR ' +
-						'PDWORDLONG PDWORD_PTR PDWORD32 PDWORD64 PFLOAT PHALF_PTR PHANDLE PHKEY PINT ' +
-						'PINT_PTR PINT32 PINT64 PLCID PLONG PLONGLONG PLONG_PTR PLONG32 PLONG64 POINTER_32 ' +
-						'POINTER_64 PSHORT PSIZE_T PSSIZE_T PSTR PTBYTE PTCHAR PTSTR PUCHAR PUHALF_PTR ' +
-						'PUINT PUINT_PTR PUINT32 PUINT64 PULONG PULONGLONG PULONG_PTR PULONG32 PULONG64 ' +
-						'PUSHORT PVOID PWCHAR PWORD PWSTR SC_HANDLE SC_LOCK SERVICE_STATUS_HANDLE SHORT ' +
-						'SIZE_T SSIZE_T TBYTE TCHAR UCHAR UHALF_PTR UINT UINT_PTR UINT32 UINT64 ULONG ' +
-						'ULONGLONG ULONG_PTR ULONG32 ULONG64 USHORT USN VOID WCHAR WORD WPARAM WPARAM WPARAM ' +
-						'char bool short int __int32 __int64 __int8 __int16 long float double __wchar_t ' +
-						'clock_t _complex _dev_t _diskfree_t div_t ldiv_t _exception _EXCEPTION_POINTERS ' +
-						'FILE _finddata_t _finddatai64_t _wfinddata_t _wfinddatai64_t __finddata64_t ' +
-						'__wfinddata64_t _FPIEEE_RECORD fpos_t _HEAPINFO _HFILE lconv intptr_t ' +
-						'jmp_buf mbstate_t _off_t _onexit_t _PNH ptrdiff_t _purecall_handler ' +
-						'sig_atomic_t size_t _stat __stat64 _stati64 terminate_function ' +
-						'time_t __time64_t _timeb __timeb64 tm uintptr_t _utimbuf ' +
-						'va_list wchar_t wctrans_t wctype_t wint_t signed';
-
-		var keywords =	'auto break case catch class const decltype __finally __exception __try ' +
-						'const_cast continue private public protected __declspec ' +
-						'default delete deprecated dllexport dllimport do dynamic_cast ' +
-						'else enum explicit extern if for friend goto inline ' +
-						'mutable naked namespace new noinline noreturn nothrow ' +
-						'register reinterpret_cast return selectany ' +
-						'sizeof static static_cast struct switch template this ' +
-						'thread throw true false try typedef typeid typename union ' +
-						'using uuid virtual void volatile whcar_t while';
-					
-		var functions =	'assert isalnum isalpha iscntrl isdigit isgraph islower isprint' +
-						'ispunct isspace isupper isxdigit tolower toupper errno localeconv ' +
-						'setlocale acos asin atan atan2 ceil cos cosh exp fabs floor fmod ' +
-						'frexp ldexp log log10 modf pow sin sinh sqrt tan tanh jmp_buf ' +
-						'longjmp setjmp raise signal sig_atomic_t va_arg va_end va_start ' +
-						'clearerr fclose feof ferror fflush fgetc fgetpos fgets fopen ' +
-						'fprintf fputc fputs fread freopen fscanf fseek fsetpos ftell ' +
-						'fwrite getc getchar gets perror printf putc putchar puts remove ' +
-						'rename rewind scanf setbuf setvbuf sprintf sscanf tmpfile tmpnam ' +
-						'ungetc vfprintf vprintf vsprintf abort abs atexit atof atoi atol ' +
-						'bsearch calloc div exit free getenv labs ldiv malloc mblen mbstowcs ' +
-						'mbtowc qsort rand realloc srand strtod strtol strtoul system ' +
-						'wcstombs wctomb memchr memcmp memcpy memmove memset strcat strchr ' +
-						'strcmp strcoll strcpy strcspn strerror strlen strncat strncmp ' +
-						'strncpy strpbrk strrchr strspn strstr strtok strxfrm asctime ' +
-						'clock ctime difftime gmtime localtime mktime strftime time';
-
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },			// one line comments
-			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// strings
-			{ regex: /^ *#.*/gm,										css: 'preprocessor' },
-			{ regex: new RegExp(this.getKeywords(datatypes), 'gm'),		css: 'color1 bold' },
-			{ regex: new RegExp(this.getKeywords(functions), 'gm'),		css: 'functions bold' },
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword bold' }
-			];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['cpp', 'c'];
-
-	SyntaxHighlighter.brushes.Cpp = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		var keywords =	'abstract as base bool break byte case catch char checked class const ' +
-						'continue decimal default delegate do double else enum event explicit volatile ' +
-						'extern false finally fixed float for foreach get goto if implicit in int ' +
-						'interface internal is lock long namespace new null object operator out ' +
-						'override params private protected public readonly ref return sbyte sealed set ' +
-						'short sizeof stackalloc static string struct switch this throw true try ' +
-						'typeof uint ulong unchecked unsafe ushort using virtual void while var ' +
-						'from group by into select let where orderby join on equals ascending descending';
-
-		function fixComments(match, regexInfo)
-		{
-			var css = (match[0].indexOf("///") == 0)
-				? 'color1'
-				: 'comments'
-				;
-			
-			return [new SyntaxHighlighter.Match(match[0], match.index, css)];
-		}
-
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	func : fixComments },		// one line comments
-			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
-			{ regex: /@"(?:[^"]|"")*"/g,								css: 'string' },			// @-quoted strings
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// strings
-			{ regex: /^\s*#.*/gm,										css: 'preprocessor' },		// preprocessor tags like #region and #endregion
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' },			// c# keyword
-			{ regex: /\bpartial(?=\s+(?:class|interface|struct)\b)/g,	css: 'keyword' },			// contextual keyword: 'partial'
-			{ regex: /\byield(?=\s+(?:return|break)\b)/g,				css: 'keyword' }			// contextual keyword: 'yield'
-			];
-		
-		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['c#', 'c-sharp', 'csharp'];
-
-	SyntaxHighlighter.brushes.CSharp = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		function getKeywordsCSS(str)
-		{
-			return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b';
-		};
-	
-		function getValuesCSS(str)
-		{
-			return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b';
-		};
-
-		var keywords =	'ascent azimuth background-attachment background-color background-image background-position ' +
-						'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' +
-						'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' +
-						'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' +
-						'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' +
-						'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' +
-						'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' +
-						'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' +
-						'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' +
-						'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' +
-						'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' +
-						'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' +
-						'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' +
-						'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index';
-
-		var values =	'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+
-						'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed '+
-						'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero default digits disc dotted double '+
-						'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia '+
-						'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic '+
-						'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha '+
-						'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower '+
-						'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset '+
-						'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side '+
-						'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow '+
-						'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize '+
-						'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal '+
-						'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin '+
-						'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow';
-
-		var fonts =		'[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif';
-	
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },	// multiline comments
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },	// double quoted strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },	// single quoted strings
-			{ regex: /\#[a-fA-F0-9]{3,6}/g,								css: 'value' },		// html colors
-			{ regex: /(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)/g,				css: 'value' },		// sizes
-			{ regex: /!important/g,										css: 'color3' },	// !important
-			{ regex: new RegExp(getKeywordsCSS(keywords), 'gm'),		css: 'keyword' },	// keywords
-			{ regex: new RegExp(getValuesCSS(values), 'g'),				css: 'value' },		// values
-			{ regex: new RegExp(this.getKeywords(fonts), 'g'),			css: 'color1' }		// fonts
-			];
-
-		this.forHtmlScript({ 
-			left: /(&lt;|<)\s*style.*?(&gt;|>)/gi, 
-			right: /(&lt;|<)\/\s*style\s*(&gt;|>)/gi 
-			});
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['css'];
-
-	SyntaxHighlighter.brushes.CSS = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		var keywords =	'abs addr and ansichar ansistring array as asm begin boolean byte cardinal ' +
-						'case char class comp const constructor currency destructor div do double ' +
-						'downto else end except exports extended false file finalization finally ' +
-						'for function goto if implementation in inherited int64 initialization ' +
-						'integer interface is label library longint longword mod nil not object ' +
-						'of on or packed pansichar pansistring pchar pcurrency pdatetime pextended ' +
-						'pint64 pointer private procedure program property pshortstring pstring ' +
-						'pvariant pwidechar pwidestring protected public published raise real real48 ' +
-						'record repeat set shl shortint shortstring shr single smallint string then ' +
-						'threadvar to true try type unit until uses val var varirnt while widechar ' +
-						'widestring with word write writeln xor';
-
-		this.regexList = [
-			{ regex: /\(\*[\s\S]*?\*\)/gm,								css: 'comments' },  	// multiline comments (* *)
-			{ regex: /{(?!\$)[\s\S]*?}/gm,								css: 'comments' },  	// multiline comments { }
-			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },  	// one line
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// strings
-			{ regex: /\{\$[a-zA-Z]+ .+\}/g,								css: 'color1' },		// compiler Directives and Region tags
-			{ regex: /\b[\d\.]+\b/g,									css: 'value' },			// numbers 12345
-			{ regex: /\$[a-zA-Z0-9]+\b/g,								css: 'value' },			// numbers $F5D3
-			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),		css: 'keyword' }		// keyword
-			];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['delphi', 'pascal', 'pas'];
-
-	SyntaxHighlighter.brushes.Delphi = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		this.regexList = [
-			{ regex: /^\+\+\+ .*$/gm,	css: 'color2' },	// new file
-			{ regex: /^\-\-\- .*$/gm,	css: 'color2' },	// old file
-			{ regex: /^\s.*$/gm,		css: 'color1' },	// unchanged
-			{ regex: /^@@.*@@.*$/gm,	css: 'variable' },	// location
-			{ regex: /^\+.*$/gm,		css: 'string' },	// additions
-			{ regex: /^\-.*$/gm,		css: 'color3' }		// deletions
-			];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['diff', 'patch'];
-
-	SyntaxHighlighter.brushes.Diff = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by Jean-Lou Dupont
-		// http://jldupont.blogspot.com/2009/06/erlang-syntax-highlighter.html  
-
-		// According to: http://erlang.org/doc/reference_manual/introduction.html#1.5
-		var keywords = 'after and andalso band begin bnot bor bsl bsr bxor '+
-			'case catch cond div end fun if let not of or orelse '+
-			'query receive rem try when xor'+
-			// additional
-			' module export import define';
-
-		this.regexList = [
-			{ regex: new RegExp("[A-Z][A-Za-z0-9_]+", 'g'), 			css: 'constants' },
-			{ regex: new RegExp("\\%.+", 'gm'), 						css: 'comments' },
-			{ regex: new RegExp("\\?[A-Za-z0-9_]+", 'g'), 				css: 'preprocessor' },
-			{ regex: new RegExp("[a-z0-9_]+:[a-z0-9_]+", 'g'), 			css: 'functions' },
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },
-			{ regex: new RegExp(this.getKeywords(keywords),	'gm'),		css: 'keyword' }
-			];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['erl', 'erlang'];
-
-	SyntaxHighlighter.brushes.Erland = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by Andres Almiray
-		// http://jroller.com/aalmiray/entry/nice_source_code_syntax_highlighter
-
-		var keywords =	'as assert break case catch class continue def default do else extends finally ' +
-						'if in implements import instanceof interface new package property return switch ' +
-						'throw throws try while public protected private static';
-		var types    =  'void boolean byte char short int long float double';
-		var constants = 'null';
-		var methods   = 'allProperties count get size '+
-						'collect each eachProperty eachPropertyName eachWithIndex find findAll ' +
-						'findIndexOf grep inject max min reverseEach sort ' +
-						'asImmutable asSynchronized flatten intersect join pop reverse subMap toList ' +
-						'padRight padLeft contains eachMatch toCharacter toLong toUrl tokenize ' +
-						'eachFile eachFileRecurse eachB yte eachLine readBytes readLine getText ' +
-						'splitEachLine withReader append encodeBase64 decodeBase64 filterLine ' +
-						'transformChar transformLine withOutputStream withPrintWriter withStream ' +
-						'withStreams withWriter withWriterAppend write writeLine '+
-						'dump inspect invokeMethod print println step times upto use waitForOrKill '+
-						'getText';
-
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,				css: 'comments' },		// one line comments
-			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,					css: 'comments' },		// multiline comments
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,					css: 'string' },		// strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,					css: 'string' },		// strings
-			{ regex: /""".*"""/g,													css: 'string' },		// GStrings
-			{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),	css: 'value' },			// numbers
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),					css: 'keyword' },		// goovy keyword
-			{ regex: new RegExp(this.getKeywords(types), 'gm'),						css: 'color1' },		// goovy/java type
-			{ regex: new RegExp(this.getKeywords(constants), 'gm'),					css: 'constants' },		// constants
-			{ regex: new RegExp(this.getKeywords(methods), 'gm'),					css: 'functions' }		// methods
-			];
-
-		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
-	}
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['groovy'];
-
-	SyntaxHighlighter.brushes.Groovy = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		var keywords =	'abstract assert boolean break byte case catch char class const ' +
-						'continue default do double else enum extends ' +
-						'false final finally float for goto if implements import ' +
-						'instanceof int interface long native new null ' +
-						'package private protected public return ' +
-						'short static strictfp super switch synchronized this throw throws true ' +
-						'transient try void volatile while';
-
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },		// one line comments
-			{ regex: /\/\*([^\*][\s\S]*)?\*\//gm,						css: 'comments' },	 	// multiline comments
-			{ regex: /\/\*(?!\*\/)\*[\s\S]*?\*\//gm,					css: 'preprocessor' },	// documentation comments
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },		// strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// strings
-			{ regex: /\b([\d]+(\.[\d]+)?|0x[a-f0-9]+)\b/gi,				css: 'value' },			// numbers
-			{ regex: /(?!\@interface\b)\@[\$\w]+\b/g,					css: 'color1' },		// annotation @anno
-			{ regex: /\@interface\b/g,									css: 'color2' },		// @interface keyword
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }		// java keyword
-			];
-
-		this.forHtmlScript({
-			left	: /(&lt;|<)%[@!=]?/g, 
-			right	: /%(&gt;|>)/g 
-		});
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['java'];
-
-	SyntaxHighlighter.brushes.Java = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by Patrick Webster
-		// http://patrickwebster.blogspot.com/2009/04/javafx-brush-for-syntaxhighlighter.html
-		var datatypes =	'Boolean Byte Character Double Duration '
-						+ 'Float Integer Long Number Short String Void'
-						;
-
-		var keywords = 'abstract after and as assert at before bind bound break catch class '
-						+ 'continue def delete else exclusive extends false finally first for from '
-						+ 'function if import in indexof init insert instanceof into inverse last '
-						+ 'lazy mixin mod nativearray new not null on or override package postinit '
-						+ 'protected public public-init public-read replace return reverse sizeof '
-						+ 'step super then this throw true try tween typeof var where while with '
-						+ 'attribute let private readonly static trigger'
-						;
-
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },
-			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },
-			{ regex: /(-?\.?)(\b(\d*\.?\d+|\d+\.?\d*)(e[+-]?\d+)?|0x[a-f\d]+)\b\.?/gi, css: 'color2' },	// numbers
-			{ regex: new RegExp(this.getKeywords(datatypes), 'gm'),		css: 'variable' },	// datatypes
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }
-		];
-		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['jfx', 'javafx'];
-
-	SyntaxHighlighter.brushes.JavaFX = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		var keywords =	'break case catch continue ' +
-						'default delete do else false  ' +
-						'for function if in instanceof ' +
-						'new null return super switch ' +
-						'this throw true try typeof var while with'
-						;
-
-		var r = SyntaxHighlighter.regexLib;
-		
-		this.regexList = [
-			{ regex: r.multiLineDoubleQuotedString,					css: 'string' },			// double quoted strings
-			{ regex: r.multiLineSingleQuotedString,					css: 'string' },			// single quoted strings
-			{ regex: r.singleLineCComments,							css: 'comments' },			// one line comments
-			{ regex: r.multiLineCComments,							css: 'comments' },			// multiline comments
-			{ regex: /\s*#.*/gm,									css: 'preprocessor' },		// preprocessor tags like #region and #endregion
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),	css: 'keyword' }			// keywords
-			];
-	
-		this.forHtmlScript(r.scriptScriptTags);
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['js', 'jscript', 'javascript'];
-
-	SyntaxHighlighter.brushes.JScript = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by David Simmons-Duffin and Marty Kube
-	
-		var funcs = 
-			'abs accept alarm atan2 bind binmode chdir chmod chomp chop chown chr ' + 
-			'chroot close closedir connect cos crypt defined delete each endgrent ' + 
-			'endhostent endnetent endprotoent endpwent endservent eof exec exists ' + 
-			'exp fcntl fileno flock fork format formline getc getgrent getgrgid ' + 
-			'getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr ' + 
-			'getnetbyname getnetent getpeername getpgrp getppid getpriority ' + 
-			'getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid ' + 
-			'getservbyname getservbyport getservent getsockname getsockopt glob ' + 
-			'gmtime grep hex index int ioctl join keys kill lc lcfirst length link ' + 
-			'listen localtime lock log lstat map mkdir msgctl msgget msgrcv msgsnd ' + 
-			'oct open opendir ord pack pipe pop pos print printf prototype push ' + 
-			'quotemeta rand read readdir readline readlink readpipe recv rename ' + 
-			'reset reverse rewinddir rindex rmdir scalar seek seekdir select semctl ' + 
-			'semget semop send setgrent sethostent setnetent setpgrp setpriority ' + 
-			'setprotoent setpwent setservent setsockopt shift shmctl shmget shmread ' + 
-			'shmwrite shutdown sin sleep socket socketpair sort splice split sprintf ' + 
-			'sqrt srand stat study substr symlink syscall sysopen sysread sysseek ' + 
-			'system syswrite tell telldir time times tr truncate uc ucfirst umask ' + 
-			'undef unlink unpack unshift utime values vec wait waitpid warn write ' +
-			// feature
-			'say';
-    
-		var keywords =  
-			'bless caller continue dbmclose dbmopen die do dump else elsif eval exit ' +
-			'for foreach goto if import last local my next no our package redo ref ' + 
-			'require return sub tie tied unless untie until use wantarray while ' +
-			// feature
-			'given when default ' +
-			// Try::Tiny
-			'try catch finally ' +
-			// Moose
-			'has extends with before after around override augment';
-    
-		this.regexList = [
-			{ regex: /(<<|&lt;&lt;)((\w+)|(['"])(.+?)\4)[\s\S]+?\n\3\5\n/g,	css: 'string' },	// here doc (maybe html encoded)
-			{ regex: /#.*$/gm,										css: 'comments' },
-			{ regex: /^#!.*\n/g,									css: 'preprocessor' },	// shebang
-			{ regex: /-?\w+(?=\s*=(>|&gt;))/g,	css: 'string' }, // fat comma
-
-			// is this too much?
-			{ regex: /\bq[qwxr]?\([\s\S]*?\)/g,	css: 'string' }, // quote-like operators ()
-			{ regex: /\bq[qwxr]?\{[\s\S]*?\}/g,	css: 'string' }, // quote-like operators {}
-			{ regex: /\bq[qwxr]?\[[\s\S]*?\]/g,	css: 'string' }, // quote-like operators []
-			{ regex: /\bq[qwxr]?(<|&lt;)[\s\S]*?(>|&gt;)/g,	css: 'string' }, // quote-like operators <>
-			{ regex: /\bq[qwxr]?([^\w({<[])[\s\S]*?\1/g,	css: 'string' }, // quote-like operators non-paired
-
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,	css: 'string' },
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,	css: 'string' },
-			// currently ignoring single quote package separator and utf8 names
-			{ regex: /(?:&amp;|[$@%*]|\$#)[a-zA-Z_](\w+|::)*/g,   		css: 'variable' },
-			{ regex: /\b__(?:END|DATA)__\b[\s\S]*$/g,				css: 'comments' },
-			{ regex: /(^|\n)=\w[\s\S]*?(\n=cut\s*\n|$)/g,				css: 'comments' },		// pod
-			{ regex: new RegExp(this.getKeywords(funcs), 'gm'),		css: 'functions' },
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),	css: 'keyword' }
-		];
-
-		this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
-	}
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases		= ['perl', 'Perl', 'pl'];
-
-	SyntaxHighlighter.brushes.Perl = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		var funcs	=	'abs acos acosh addcslashes addslashes ' +
-						'array_change_key_case array_chunk array_combine array_count_values array_diff '+
-						'array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill '+
-						'array_filter array_flip array_intersect array_intersect_assoc array_intersect_key '+
-						'array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map '+
-						'array_merge array_merge_recursive array_multisort array_pad array_pop array_product '+
-						'array_push array_rand array_reduce array_reverse array_search array_shift '+
-						'array_slice array_splice array_sum array_udiff array_udiff_assoc '+
-						'array_udiff_uassoc array_uintersect array_uintersect_assoc '+
-						'array_uintersect_uassoc array_unique array_unshift array_values array_walk '+
-						'array_walk_recursive atan atan2 atanh base64_decode base64_encode base_convert '+
-						'basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain bzclose bzcompress '+
-						'bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread bzwrite ceil chdir '+
-						'checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split class_exists '+
-						'closedir closelog copy cos cosh count count_chars date decbin dechex decoct '+
-						'deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi eregi_replace error_log '+
-						'error_reporting escapeshellarg escapeshellcmd eval exec exit exp explode extension_loaded '+
-						'feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents '+
-						'fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype '+
-						'floatval flock floor flush fmod fnmatch fopen fpassthru fprintf fputcsv fputs fread fscanf '+
-						'fseek fsockopen fstat ftell ftok getallheaders getcwd getdate getenv gethostbyaddr gethostbyname '+
-						'gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode getmypid getmyuid getopt '+
-						'getprotobyname getprotobynumber getrandmax getrusage getservbyname getservbyport gettext '+
-						'gettimeofday gettype glob gmdate gmmktime ini_alter ini_get ini_get_all ini_restore ini_set '+
-						'interface_exists intval ip2long is_a is_array is_bool is_callable is_dir is_double '+
-						'is_executable is_file is_finite is_float is_infinite is_int is_integer is_link is_long '+
-						'is_nan is_null is_numeric is_object is_readable is_real is_resource is_scalar is_soap_fault '+
-						'is_string is_subclass_of is_uploaded_file is_writable is_writeable mkdir mktime nl2br '+
-						'parse_ini_file parse_str parse_url passthru pathinfo print readlink realpath rewind rewinddir rmdir '+
-						'round str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split '+
-						'str_word_count strcasecmp strchr strcmp strcoll strcspn strftime strip_tags stripcslashes '+
-						'stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk '+
-						'strpos strptime strrchr strrev strripos strrpos strspn strstr strtok strtolower strtotime '+
-						'strtoupper strtr strval substr substr_compare';
-
-		var keywords =	'abstract and array as break case catch cfunction class clone const continue declare default die do ' +
-						'else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach ' +
-						'function global goto if implements include include_once interface instanceof insteadof namespace new ' +
-						'old_function or private protected public return require require_once static switch ' +
-						'trait throw try use var while xor ';
-		
-		var constants	= '__FILE__ __LINE__ __METHOD__ __FUNCTION__ __CLASS__';
-
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,	css: 'comments' },			// one line comments
-			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,		css: 'comments' },			// multiline comments
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },			// double quoted strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },			// single quoted strings
-			{ regex: /\$\w+/g,											css: 'variable' },			// variables
-			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' },			// common functions
-			{ regex: new RegExp(this.getKeywords(constants), 'gmi'),	css: 'constants' },			// constants
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' }			// keyword
-			];
-
-		this.forHtmlScript(SyntaxHighlighter.regexLib.phpScriptTags);
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['php'];
-
-	SyntaxHighlighter.brushes.Php = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['text', 'plain'];
-
-	SyntaxHighlighter.brushes.Plain = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by Joel 'Jaykul' Bennett, http://PoshCode.org | http://HuddledMasses.org
-		var keywords =	'while validateset validaterange validatepattern validatelength validatecount ' +
-						'until trap switch return ref process param parameter in if global: '+
-						'function foreach for finally filter end elseif else dynamicparam do default ' +
-						'continue cmdletbinding break begin alias \\? % #script #private #local #global '+
-						'mandatory parametersetname position valuefrompipeline ' +
-						'valuefrompipelinebypropertyname valuefromremainingarguments helpmessage ';
-
-		var operators =	' and as band bnot bor bxor casesensitive ccontains ceq cge cgt cle ' +
-						'clike clt cmatch cne cnotcontains cnotlike cnotmatch contains ' +
-						'creplace eq exact f file ge gt icontains ieq ige igt ile ilike ilt ' +
-						'imatch ine inotcontains inotlike inotmatch ireplace is isnot le like ' +
-						'lt match ne not notcontains notlike notmatch or regex replace wildcard';
-						
-		var verbs =		'write where wait use update unregister undo trace test tee take suspend ' +
-						'stop start split sort skip show set send select scroll resume restore ' +
-						'restart resolve resize reset rename remove register receive read push ' +
-						'pop ping out new move measure limit join invoke import group get format ' +
-						'foreach export expand exit enter enable disconnect disable debug cxnew ' +
-						'copy convertto convertfrom convert connect complete compare clear ' +
-						'checkpoint aggregate add';
-
-		// I can't find a way to match the comment based help in multi-line comments, because SH won't highlight in highlights, and javascript doesn't support lookbehind
-		var commenthelp = ' component description example externalhelp forwardhelpcategory forwardhelptargetname forwardhelptargetname functionality inputs link notes outputs parameter remotehelprunspace role synopsis';
-
-		this.regexList = [
-			{ regex: new RegExp('^\\s*#[#\\s]*\\.('+this.getKeywords(commenthelp)+').*$', 'gim'),			css: 'preprocessor help bold' },		// comment-based help
-			{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,										css: 'comments' },						// one line comments
-			{ regex: /(&lt;|<)#[\s\S]*?#(&gt;|>)/gm,														css: 'comments here' },					// multi-line comments
-			
-			{ regex: new RegExp('@"\\n[\\s\\S]*?\\n"@', 'gm'),												css: 'script string here' },			// double quoted here-strings
-			{ regex: new RegExp("@'\\n[\\s\\S]*?\\n'@", 'gm'),												css: 'script string single here' },		// single quoted here-strings
-			{ regex: new RegExp('"(?:\\$\\([^\\)]*\\)|[^"]|`"|"")*[^`]"','g'),								css: 'string' },						// double quoted strings
-			{ regex: new RegExp("'(?:[^']|'')*'", 'g'),														css: 'string single' },					// single quoted strings
-			
-			{ regex: new RegExp('[\\$|@|@@](?:(?:global|script|private|env):)?[A-Z0-9_]+', 'gi'),			css: 'variable' },						// $variables
-			{ regex: new RegExp('(?:\\b'+verbs.replace(/ /g, '\\b|\\b')+')-[a-zA-Z_][a-zA-Z0-9_]*', 'gmi'),	css: 'functions' },						// functions and cmdlets
-			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),											css: 'keyword' },						// keywords
-			{ regex: new RegExp('-'+this.getKeywords(operators), 'gmi'),									css: 'operator value' },				// operators
-			{ regex: new RegExp('\\[[A-Z_\\[][A-Z0-9_. `,\\[\\]]*\\]', 'gi'),								css: 'constants' },						// .Net [Type]s
-			{ regex: new RegExp('\\s+-(?!'+this.getKeywords(operators)+')[a-zA-Z_][a-zA-Z0-9_]*', 'gmi'),	css: 'color1' },						// parameters	  
-		];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['powershell', 'ps', 'posh'];
-
-	SyntaxHighlighter.brushes.PowerShell = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by Gheorghe Milas and Ahmad Sherif
-	
-		var keywords =  'and assert break class continue def del elif else ' +
-						'except exec finally for from global if import in is ' +
-						'lambda not or pass print raise return try yield while';
-
-		var funcs = '__import__ abs all any apply basestring bin bool buffer callable ' +
-					'chr classmethod cmp coerce compile complex delattr dict dir ' +
-					'divmod enumerate eval execfile file filter float format frozenset ' +
-					'getattr globals hasattr hash help hex id input int intern ' +
-					'isinstance issubclass iter len list locals long map max min next ' +
-					'object oct open ord pow print property range raw_input reduce ' +
-					'reload repr reversed round set setattr slice sorted staticmethod ' +
-					'str sum super tuple type type unichr unicode vars xrange zip';
-
-		var special =  'None True False self cls class_';
-
-		this.regexList = [
-				{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments, css: 'comments' },
-				{ regex: /^\s*@\w+/gm, 										css: 'decorator' },
-				{ regex: /(['\"]{3})([^\1])*?\1/gm, 						css: 'comments' },
-				{ regex: /"(?!")(?:\.|\\\"|[^\""\n])*"/gm, 					css: 'string' },
-				{ regex: /'(?!')(?:\.|(\\\')|[^\''\n])*'/gm, 				css: 'string' },
-				{ regex: /\+|\-|\*|\/|\%|=|==/gm, 							css: 'keyword' },
-				{ regex: /\b\d+\.?\w*/g, 									css: 'value' },
-				{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),		css: 'functions' },
-				{ regex: new RegExp(this.getKeywords(keywords), 'gm'), 		css: 'keyword' },
-				{ regex: new RegExp(this.getKeywords(special), 'gm'), 		css: 'color1' }
-				];
-			
-		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['py', 'python'];
-
-	SyntaxHighlighter.brushes.Python = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by Erik Peterson.
-	
-		var keywords =	'alias and BEGIN begin break case class def define_method defined do each else elsif ' +
-						'END end ensure false for if in module new next nil not or raise redo rescue retry return ' +
-						'self super then throw true undef unless until when while yield';
-
-		var builtins =	'Array Bignum Binding Class Continuation Dir Exception FalseClass File::Stat File Fixnum Fload ' +
-						'Hash Integer IO MatchData Method Module NilClass Numeric Object Proc Range Regexp String Struct::TMS Symbol ' +
-						'ThreadGroup Thread Time TrueClass';
-
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.singleLinePerlComments,	css: 'comments' },		// one line comments
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,		css: 'string' },		// double quoted strings
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,		css: 'string' },		// single quoted strings
-			{ regex: /\b[A-Z0-9_]+\b/g,									css: 'constants' },		// constants
-			{ regex: /:[a-z][A-Za-z0-9_]*/g,							css: 'color2' },		// symbols
-			{ regex: /(\$|@@|@)\w+/g,									css: 'variable bold' },	// $global, @instance, and @@class variables
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),		css: 'keyword' },		// keywords
-			{ regex: new RegExp(this.getKeywords(builtins), 'gm'),		css: 'color1' }			// builtins
-			];
-
-		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['ruby', 'rails', 'ror', 'rb'];
-
-	SyntaxHighlighter.brushes.Ruby = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		function getKeywordsCSS(str)
-		{
-			return '\\b([a-z_]|)' + str.replace(/ /g, '(?=:)\\b|\\b([a-z_\\*]|\\*|)') + '(?=:)\\b';
-		};
-	
-		function getValuesCSS(str)
-		{
-			return '\\b' + str.replace(/ /g, '(?!-)(?!:)\\b|\\b()') + '\:\\b';
-		};
-
-		var keywords =	'ascent azimuth background-attachment background-color background-image background-position ' +
-						'background-repeat background baseline bbox border-collapse border-color border-spacing border-style border-top ' +
-						'border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color ' +
-						'border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width ' +
-						'border-bottom-width border-left-width border-width border bottom cap-height caption-side centerline clear clip color ' +
-						'content counter-increment counter-reset cue-after cue-before cue cursor definition-src descent direction display ' +
-						'elevation empty-cells float font-size-adjust font-family font-size font-stretch font-style font-variant font-weight font ' +
-						'height left letter-spacing line-height list-style-image list-style-position list-style-type list-style margin-top ' +
-						'margin-right margin-bottom margin-left margin marker-offset marks mathline max-height max-width min-height min-width orphans ' +
-						'outline-color outline-style outline-width outline overflow padding-top padding-right padding-bottom padding-left padding page ' +
-						'page-break-after page-break-before page-break-inside pause pause-after pause-before pitch pitch-range play-during position ' +
-						'quotes right richness size slope src speak-header speak-numeral speak-punctuation speak speech-rate stemh stemv stress ' +
-						'table-layout text-align top text-decoration text-indent text-shadow text-transform unicode-bidi unicode-range units-per-em ' +
-						'vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index';
-		
-		var values =	'above absolute all always aqua armenian attr aural auto avoid baseline behind below bidi-override black blink block blue bold bolder '+
-						'both bottom braille capitalize caption center center-left center-right circle close-quote code collapse compact condensed '+
-						'continuous counter counters crop cross crosshair cursive dashed decimal decimal-leading-zero digits disc dotted double '+
-						'embed embossed e-resize expanded extra-condensed extra-expanded fantasy far-left far-right fast faster fixed format fuchsia '+
-						'gray green groove handheld hebrew help hidden hide high higher icon inline-table inline inset inside invert italic '+
-						'justify landscape large larger left-side left leftwards level lighter lime line-through list-item local loud lower-alpha '+
-						'lowercase lower-greek lower-latin lower-roman lower low ltr marker maroon medium message-box middle mix move narrower '+
-						'navy ne-resize no-close-quote none no-open-quote no-repeat normal nowrap n-resize nw-resize oblique olive once open-quote outset '+
-						'outside overline pointer portrait pre print projection purple red relative repeat repeat-x repeat-y rgb ridge right right-side '+
-						'rightwards rtl run-in screen scroll semi-condensed semi-expanded separate se-resize show silent silver slower slow '+
-						'small small-caps small-caption smaller soft solid speech spell-out square s-resize static status-bar sub super sw-resize '+
-						'table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group teal '+
-						'text-bottom text-top thick thin top transparent tty tv ultra-condensed ultra-expanded underline upper-alpha uppercase upper-latin '+
-						'upper-roman url visible wait white wider w-resize x-fast x-high x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow';
-		
-		var fonts =		'[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica [sS]ans-serif [sS]erif [cC]ourier mono sans serif';
-		
-		var statements		= '!important !default';
-		var preprocessor	= '@import @extend @debug @warn @if @for @while @mixin @include';
-		
-		var r = SyntaxHighlighter.regexLib;
-		
-		this.regexList = [
-			{ regex: r.multiLineCComments,								css: 'comments' },		// multiline comments
-			{ regex: r.singleLineCComments,								css: 'comments' },		// singleline comments
-			{ regex: r.doubleQuotedString,								css: 'string' },		// double quoted strings
-			{ regex: r.singleQuotedString,								css: 'string' },		// single quoted strings
-			{ regex: /\#[a-fA-F0-9]{3,6}/g,								css: 'value' },			// html colors
-			{ regex: /\b(-?\d+)(\.\d+)?(px|em|pt|\:|\%|)\b/g,			css: 'value' },			// sizes
-			{ regex: /\$\w+/g,											css: 'variable' },		// variables
-			{ regex: new RegExp(this.getKeywords(statements), 'g'),		css: 'color3' },		// statements
-			{ regex: new RegExp(this.getKeywords(preprocessor), 'g'),	css: 'preprocessor' },	// preprocessor
-			{ regex: new RegExp(getKeywordsCSS(keywords), 'gm'),		css: 'keyword' },		// keywords
-			{ regex: new RegExp(getValuesCSS(values), 'g'),				css: 'value' },			// values
-			{ regex: new RegExp(this.getKeywords(fonts), 'g'),			css: 'color1' }			// fonts
-			];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['sass', 'scss'];
-
-	SyntaxHighlighter.brushes.Sass = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		// Contributed by Yegor Jbanov and David Bernard.
-	
-		var keywords =	'val sealed case def true trait implicit forSome import match object null finally super ' +
-						'override try lazy for var catch throw type extends class while with new final yield abstract ' +
-						'else do if return protected private this package false';
-
-		var keyops =	'[_:=><%#@]+';
-
-		this.regexList = [
-			{ regex: SyntaxHighlighter.regexLib.singleLineCComments,			css: 'comments' },	// one line comments
-			{ regex: SyntaxHighlighter.regexLib.multiLineCComments,				css: 'comments' },	// multiline comments
-			{ regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString,	css: 'string' },	// multi-line strings
-			{ regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,    css: 'string' },	// double-quoted string
-			{ regex: SyntaxHighlighter.regexLib.singleQuotedString,				css: 'string' },	// strings
-			{ regex: /0x[a-f0-9]+|\d+(\.\d+)?/gi,								css: 'value' },		// numbers
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),				css: 'keyword' },	// keywords
-			{ regex: new RegExp(keyops, 'gm'),									css: 'keyword' }	// scala keyword
-			];
-	}
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['scala'];
-
-	SyntaxHighlighter.brushes.Scala = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		var funcs	=	'abs avg case cast coalesce convert count current_timestamp ' +
-						'current_user day isnull left lower month nullif replace right ' +
-						'session_user space substring sum system_user upper user year';
-
-		var keywords =	'absolute action add after alter as asc at authorization begin bigint ' +
-						'binary bit by cascade char character check checkpoint close collate ' +
-						'column commit committed connect connection constraint contains continue ' +
-						'create cube current current_date current_time cursor database date ' +
-						'deallocate dec decimal declare default delete desc distinct double drop ' +
-						'dynamic else end end-exec escape except exec execute false fetch first ' +
-						'float for force foreign forward free from full function global goto grant ' +
-						'group grouping having hour ignore index inner insensitive insert instead ' +
-						'int integer intersect into is isolation key last level load local max min ' +
-						'minute modify move name national nchar next no numeric of off on only ' +
-						'open option order out output partial password precision prepare primary ' +
-						'prior privileges procedure public read real references relative repeatable ' +
-						'restrict return returns revoke rollback rollup rows rule schema scroll ' +
-						'second section select sequence serializable set size smallint static ' +
-						'statistics table temp temporary then time timestamp to top transaction ' +
-						'translation trigger true truncate uncommitted union unique update values ' +
-						'varchar varying view when where with work';
-
-		var operators =	'all and any between cross in join like not null or outer some';
-
-		this.regexList = [
-			{ regex: /--(.*)$/gm,												css: 'comments' },			// one line and multiline comments
-			{ regex: SyntaxHighlighter.regexLib.multiLineDoubleQuotedString,	css: 'string' },			// double quoted strings
-			{ regex: SyntaxHighlighter.regexLib.multiLineSingleQuotedString,	css: 'string' },			// single quoted strings
-			{ regex: new RegExp(this.getKeywords(funcs), 'gmi'),				css: 'color2' },			// functions
-			{ regex: new RegExp(this.getKeywords(operators), 'gmi'),			css: 'color1' },			// operators and such
-			{ regex: new RegExp(this.getKeywords(keywords), 'gmi'),				css: 'keyword' }			// keyword
-			];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['sql'];
-
-	SyntaxHighlighter.brushes.Sql = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		var keywords =	'AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto ' +
-						'Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate ' +
-						'CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType ' +
-						'Date Decimal Declare Default Delegate Dim DirectCast Do Double Each ' +
-						'Else ElseIf End Enum Erase Error Event Exit False Finally For Friend ' +
-						'Function Get GetType GoSub GoTo Handles If Implements Imports In ' +
-						'Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module ' +
-						'MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing ' +
-						'NotInheritable NotOverridable Object On Option Optional Or OrElse ' +
-						'Overloads Overridable Overrides ParamArray Preserve Private Property ' +
-						'Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler Resume ' +
-						'Return Select Set Shadows Shared Short Single Static Step Stop String ' +
-						'Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until ' +
-						'Variant When While With WithEvents WriteOnly Xor';
-
-		this.regexList = [
-			{ regex: /'.*$/gm,										css: 'comments' },			// one line comments
-			{ regex: SyntaxHighlighter.regexLib.doubleQuotedString,	css: 'string' },			// strings
-			{ regex: /^\s*#.*$/gm,									css: 'preprocessor' },		// preprocessor tags like #region and #endregion
-			{ regex: new RegExp(this.getKeywords(keywords), 'gm'),	css: 'keyword' }			// vb keyword
-			];
-
-		this.forHtmlScript(SyntaxHighlighter.regexLib.aspScriptTags);
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['vb', 'vbnet'];
-
-	SyntaxHighlighter.brushes.Vb = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
-;(function()
-{
-	// CommonJS
-	SyntaxHighlighter = SyntaxHighlighter || (typeof require !== 'undefined'? require('shCore').SyntaxHighlighter : null);
-
-	function Brush()
-	{
-		function process(match, regexInfo)
-		{
-			var constructor = SyntaxHighlighter.Match,
-				code = match[0],
-				tag = new XRegExp('(&lt;|<)[\\s\\/\\?]*(?<name>[:\\w-\\.]+)', 'xg').exec(code),
-				result = []
-				;
-		
-			if (match.attributes != null) 
-			{
-				var attributes,
-					regex = new XRegExp('(?<name> [\\w:\\-\\.]+)' +
-										'\\s*=\\s*' +
-										'(?<value> ".*?"|\'.*?\'|\\w+)',
-										'xg');
-
-				while ((attributes = regex.exec(code)) != null) 
-				{
-					result.push(new constructor(attributes.name, match.index + attributes.index, 'color1'));
-					result.push(new constructor(attributes.value, match.index + attributes.index + attributes[0].indexOf(attributes.value), 'string'));
-				}
-			}
-
-			if (tag != null)
-				result.push(
-					new constructor(tag.name, match.index + tag[0].indexOf(tag.name), 'keyword')
-				);
-
-			return result;
-		}
-	
-		this.regexList = [
-			{ regex: new XRegExp('(\\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\\&gt;|>)', 'gm'),			css: 'color2' },	// <![ ... [ ... ]]>
-			{ regex: SyntaxHighlighter.regexLib.xmlComments,												css: 'comments' },	// <!-- ... -->
-			{ regex: new XRegExp('(&lt;|<)[\\s\\/\\?]*(\\w+)(?<attributes>.*?)[\\s\\/\\?]*(&gt;|>)', 'sg'), func: process }
-		];
-	};
-
-	Brush.prototype	= new SyntaxHighlighter.Highlighter();
-	Brush.aliases	= ['xml', 'xhtml', 'xslt', 'html'];
-
-	SyntaxHighlighter.brushes.Xml = Brush;
-
-	// CommonJS
-	typeof(exports) != 'undefined' ? exports.Brush = Brush : null;
-})();
diff --git a/server/public/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css b/server/public/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css
deleted file mode 100644
index e156a6f..0000000
--- a/server/public/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css
+++ /dev/null
@@ -1 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter,.syntaxhighlighter td,.syntaxhighlighter tr,.syntaxhighlighter tbody,.syntaxhighlighter thead,.syntaxhighlighter caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0!important;-webkit-border-radius:0 0 0 0!important;background:none!important;border:0!important;bottom:auto!important;float:none!important;left:auto!important;line-height:1.1em!important;margin:0!important;outline:0!important;overflow:visible!important;padding:0!important;position:static!important;right:auto!important;text-align:left!important;top:auto!important;vertical-align:baseline!important;width:auto!important;box-sizing:content-box!important;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-weight:normal!important;font-style:normal!important;min-height:inherit!important;min-height:auto!important;font-size:13px!important}.syntaxhighlighter{width:100%!important;margin:.3em 0 .3em 0!important;position:relative!important;overflow:auto!important;background-color:#f5f5f5!important;border:1px solid #ccc!important;border-radius:4px!important;border-collapse:separate!important}.syntaxhighlighter.source{overflow:hidden!important}.syntaxhighlighter .bold{font-weight:bold!important}.syntaxhighlighter .italic{font-style:italic!important}.syntaxhighlighter .gutter div{white-space:pre!important;word-wrap:normal}.syntaxhighlighter caption{text-align:left!important;padding:.5em 0 .5em 1em!important}.syntaxhighlighter td.code{width:100%!important}.syntaxhighlighter td.code .container{position:relative!important}.syntaxhighlighter td.code .container textarea{box-sizing:border-box!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;border:none!important;background:white!important;padding-left:1em!important;overflow:hidden!important;white-space:pre!important}.syntaxhighlighter td.gutter .line{text-align:right!important;padding:0 .5em 0 1em!important}.syntaxhighlighter td.code .line{padding:0 1em!important}.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0!important}.syntaxhighlighter.show{display:block!important}.syntaxhighlighter.collapsed table{display:none!important}.syntaxhighlighter.collapsed .toolbar{padding:.1em .8em 0 .8em!important;font-size:1em!important;position:static!important;width:auto!important}.syntaxhighlighter.collapsed .toolbar span{display:inline!important;margin-right:1em!important}.syntaxhighlighter.collapsed .toolbar span a{padding:0!important;display:none!important}.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline!important}.syntaxhighlighter .toolbar{position:absolute!important;right:1px!important;top:1px!important;width:11px!important;height:11px!important;font-size:10px!important;z-index:10!important}.syntaxhighlighter .toolbar span.title{display:inline!important}.syntaxhighlighter .toolbar a{display:block!important;text-align:center!important;text-decoration:none!important;padding-top:1px!important}.syntaxhighlighter .toolbar a.expandSource{display:none!important}.syntaxhighlighter.ie{font-size:.9em!important;padding:1px 0 1px 0!important}.syntaxhighlighter.ie .toolbar{line-height:8px!important}.syntaxhighlighter.ie .toolbar a{padding-top:0!important}.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none!important}.syntaxhighlighter.printing .line .number{color:#bbb!important}.syntaxhighlighter.printing .line .content{color:black!important}.syntaxhighlighter.printing .toolbar{display:none!important}.syntaxhighlighter.printing a{text-decoration:none!important}.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black!important}.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200!important}.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue!important}.syntaxhighlighter.printing .keyword{color:#ff7800!important;font-weight:bold!important}.syntaxhighlighter.printing .preprocessor{color:gray!important}.syntaxhighlighter.printing .variable{color:#a70!important}.syntaxhighlighter.printing .value{color:#090!important}.syntaxhighlighter.printing .functions{color:#ff1493!important}.syntaxhighlighter.printing .constants{color:#06c!important}.syntaxhighlighter.printing .script{font-weight:bold!important}.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray!important}.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493!important}.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red!important}.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black!important}.syntaxhighlighter{background-color:#f5f5f5!important}.syntaxhighlighter .line.highlighted.number{color:black!important}.syntaxhighlighter caption{color:black!important}.syntaxhighlighter .gutter{color:#afafaf!important;background-color:#f7f7f9!important;border-right:1px solid #e1e1e8!important;padding:9.5px 0 9.5px 9.5px!important;border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;user-select:none!important;-moz-user-select:none!important;-webkit-user-select:none!important}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important}.syntaxhighlighter.printing .line .content{border:none!important}.syntaxhighlighter.collapsed{overflow:visible!important}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important}.syntaxhighlighter.collapsed .toolbar a{color:blue!important}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important}.syntaxhighlighter .toolbar a{color:white!important}.syntaxhighlighter .toolbar a:hover{color:black!important}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important}.syntaxhighlighter .keyword{color:#ff7800!important}.syntaxhighlighter .preprocessor{color:gray!important}.syntaxhighlighter .variable{color:#a70!important}.syntaxhighlighter .value{color:#090!important}.syntaxhighlighter .functions{color:#ff1493!important}.syntaxhighlighter .constants{color:#06c!important}.syntaxhighlighter .script{font-weight:bold!important;color:#ff7800!important;background-color:none!important}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important}.syntaxhighlighter .keyword{font-weight:bold!important}
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/codemirror/codemirror.css b/server/public/ueditor/third-party/codemirror/codemirror.css
deleted file mode 100644
index 527adeb..0000000
--- a/server/public/ueditor/third-party/codemirror/codemirror.css
+++ /dev/null
@@ -1,104 +0,0 @@
-.CodeMirror {
-    line-height: 1em;
-    font-family: monospace;
-}
-
-.CodeMirror-scroll {
-    overflow: auto;
-    height: 300px;
-    /* This is needed to prevent an IE[67] bug where the scrolled content
-       is visible outside of the scrolling box. */
-    position: relative;
-}
-
-.CodeMirror-gutter {
-    position: absolute; left: 0; top: 0;
-    z-index: 10;
-    background-color: #f7f7f7;
-    border-right: 1px solid #eee;
-    min-width: 2em;
-    height: 100%;
-}
-.CodeMirror-gutter-text {
-    color: #aaa;
-    text-align: right;
-    padding: .4em .2em .4em .4em;
-    white-space: pre !important;
-}
-.CodeMirror-lines {
-    padding: .4em;
-}
-
-.CodeMirror pre {
-    -moz-border-radius: 0;
-    -webkit-border-radius: 0;
-    -o-border-radius: 0;
-    border-radius: 0;
-    border-width: 0; margin: 0; padding: 0; background: transparent;
-    font-family: inherit;
-    font-size: inherit;
-    padding: 0; margin: 0;
-    white-space: pre;
-    word-wrap: normal;
-}
-
-.CodeMirror-wrap pre {
-    word-wrap: break-word;
-    white-space: pre-wrap;
-}
-.CodeMirror-wrap .CodeMirror-scroll {
-    overflow-x: hidden;
-}
-
-.CodeMirror textarea {
-    outline: none !important;
-}
-
-.CodeMirror pre.CodeMirror-cursor {
-    z-index: 10;
-    position: absolute;
-    visibility: hidden;
-    border-left: 1px solid black;
-}
-.CodeMirror-focused pre.CodeMirror-cursor {
-    visibility: visible;
-}
-
-span.CodeMirror-selected { background: #d9d9d9; }
-.CodeMirror-focused span.CodeMirror-selected { background: #d2dcf8; }
-
-.CodeMirror-searching {background: #ffa;}
-
-/* Default theme */
-
-.cm-s-default span.cm-keyword {color: #708;}
-.cm-s-default span.cm-atom {color: #219;}
-.cm-s-default span.cm-number {color: #164;}
-.cm-s-default span.cm-def {color: #00f;}
-.cm-s-default span.cm-variable {color: black;}
-.cm-s-default span.cm-variable-2 {color: #05a;}
-.cm-s-default span.cm-variable-3 {color: #085;}
-.cm-s-default span.cm-property {color: black;}
-.cm-s-default span.cm-operator {color: black;}
-.cm-s-default span.cm-comment {color: #a50;}
-.cm-s-default span.cm-string {color: #a11;}
-.cm-s-default span.cm-string-2 {color: #f50;}
-.cm-s-default span.cm-meta {color: #555;}
-.cm-s-default span.cm-error {color: #f00;}
-.cm-s-default span.cm-qualifier {color: #555;}
-.cm-s-default span.cm-builtin {color: #30a;}
-.cm-s-default span.cm-bracket {color: #cc7;}
-.cm-s-default span.cm-tag {color: #170;}
-.cm-s-default span.cm-attribute {color: #00c;}
-.cm-s-default span.cm-header {color: #a0a;}
-.cm-s-default span.cm-quote {color: #090;}
-.cm-s-default span.cm-hr {color: #999;}
-.cm-s-default span.cm-link {color: #00c;}
-
-span.cm-header, span.cm-strong {font-weight: bold;}
-span.cm-em {font-style: italic;}
-span.cm-emstrong {font-style: italic; font-weight: bold;}
-span.cm-link {text-decoration: underline;}
-
-div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
-div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
diff --git a/server/public/ueditor/third-party/codemirror/codemirror.js b/server/public/ueditor/third-party/codemirror/codemirror.js
deleted file mode 100644
index 083f242..0000000
--- a/server/public/ueditor/third-party/codemirror/codemirror.js
+++ /dev/null
@@ -1,3581 +0,0 @@
-// CodeMirror version 2.2
-//
-// All functions that need access to the editor's state live inside
-// the CodeMirror function. Below that, at the bottom of the file,
-// some utilities are defined.
-
-// CodeMirror is the only global var we claim
-var CodeMirror = (function() {
-    // This is the function that produces an editor instance. It's
-    // closure is used to store the editor state.
-    function CodeMirror(place, givenOptions) {
-        // Determine effective options based on given values and defaults.
-        var options = {}, defaults = CodeMirror.defaults;
-        for (var opt in defaults)
-            if (defaults.hasOwnProperty(opt))
-                options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt];
-
-        var targetDocument = options["document"];
-        // The element in which the editor lives.
-        var wrapper = targetDocument.createElement("div");
-        wrapper.className = "CodeMirror" + (options.lineWrapping ? " CodeMirror-wrap" : "");
-        // This mess creates the base DOM structure for the editor.
-        wrapper.innerHTML =
-            '<div style="overflow: hidden; position: relative; width: 3px; height: 0px;">' + // Wraps and hides input textarea
-                '<textarea style="position: absolute; padding: 0; width: 1px;" wrap="off" ' +
-                'autocorrect="off" autocapitalize="off"></textarea></div>' +
-                '<div class="CodeMirror-scroll" tabindex="-1">' +
-                '<div style="position: relative">' + // Set to the height of the text, causes scrolling
-                '<div style="position: relative">' + // Moved around its parent to cover visible view
-                '<div class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div>' +
-                // Provides positioning relative to (visible) text origin
-                '<div class="CodeMirror-lines"><div style="position: relative">' +
-                '<div style="position: absolute; width: 100%; height: 0; overflow: hidden; visibility: hidden"></div>' +
-                '<pre class="CodeMirror-cursor">&#160;</pre>' + // Absolutely positioned blinky cursor
-                '<div></div>' + // This DIV contains the actual code
-                '</div></div></div></div></div>';
-        if (place.appendChild) place.appendChild(wrapper); else place(wrapper);
-        // I've never seen more elegant code in my life.
-        var inputDiv = wrapper.firstChild, input = inputDiv.firstChild,
-            scroller = wrapper.lastChild, code = scroller.firstChild,
-            mover = code.firstChild, gutter = mover.firstChild, gutterText = gutter.firstChild,
-            lineSpace = gutter.nextSibling.firstChild, measure = lineSpace.firstChild,
-            cursor = measure.nextSibling, lineDiv = cursor.nextSibling;
-        themeChanged();
-        // Needed to hide big blue blinking cursor on Mobile Safari
-        if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) input.style.width = "0px";
-        if (!webkit) lineSpace.draggable = true;
-        if (options.tabindex != null) input.tabIndex = options.tabindex;
-        if (!options.gutter && !options.lineNumbers) gutter.style.display = "none";
-
-        // Check for problem with IE innerHTML not working when we have a
-        // P (or similar) parent node.
-        try { stringWidth("x"); }
-        catch (e) {
-            if (e.message.match(/runtime/i))
-                e = new Error("A CodeMirror inside a P-style element does not work in Internet Explorer. (innerHTML bug)");
-            throw e;
-        }
-
-        // Delayed object wrap timeouts, making sure only one is active. blinker holds an interval.
-        var poll = new Delayed(), highlight = new Delayed(), blinker;
-
-        // mode holds a mode API object. doc is the tree of Line objects,
-        // work an array of lines that should be parsed, and history the
-        // undo history (instance of History constructor).
-        var mode, doc = new BranchChunk([new LeafChunk([new Line("")])]), work, focused;
-        loadMode();
-        // The selection. These are always maintained to point at valid
-        // positions. Inverted is used to remember that the user is
-        // selecting bottom-to-top.
-        var sel = {from: {line: 0, ch: 0}, to: {line: 0, ch: 0}, inverted: false};
-        // Selection-related flags. shiftSelecting obviously tracks
-        // whether the user is holding shift.
-        var shiftSelecting, lastClick, lastDoubleClick, draggingText, overwrite = false;
-        // Variables used by startOperation/endOperation to track what
-        // happened during the operation.
-        var updateInput, userSelChange, changes, textChanged, selectionChanged, leaveInputAlone,
-            gutterDirty, callbacks;
-        // Current visible range (may be bigger than the view window).
-        var displayOffset = 0, showingFrom = 0, showingTo = 0, lastSizeC = 0;
-        // bracketHighlighted is used to remember that a backet has been
-        // marked.
-        var bracketHighlighted;
-        // Tracks the maximum line length so that the horizontal scrollbar
-        // can be kept static when scrolling.
-        var maxLine = "", maxWidth, tabText = computeTabText();
-
-        // Initialize the content.
-        operation(function(){setValue(options.value || ""); updateInput = false;})();
-        var history = new History();
-
-        // Register our event handlers.
-        connect(scroller, "mousedown", operation(onMouseDown));
-        connect(scroller, "dblclick", operation(onDoubleClick));
-        connect(lineSpace, "dragstart", onDragStart);
-        connect(lineSpace, "selectstart", e_preventDefault);
-        // Gecko browsers fire contextmenu *after* opening the menu, at
-        // which point we can't mess with it anymore. Context menu is
-        // handled in onMouseDown for Gecko.
-        if (!gecko) connect(scroller, "contextmenu", onContextMenu);
-        connect(scroller, "scroll", function() {
-            updateDisplay([]);
-            if (options.fixedGutter) gutter.style.left = scroller.scrollLeft + "px";
-            if (options.onScroll) options.onScroll(instance);
-        });
-        connect(window, "resize", function() {updateDisplay(true);});
-        connect(input, "keyup", operation(onKeyUp));
-        connect(input, "input", fastPoll);
-        connect(input, "keydown", operation(onKeyDown));
-        connect(input, "keypress", operation(onKeyPress));
-        connect(input, "focus", onFocus);
-        connect(input, "blur", onBlur);
-
-        connect(scroller, "dragenter", e_stop);
-        connect(scroller, "dragover", e_stop);
-        connect(scroller, "drop", operation(onDrop));
-        connect(scroller, "paste", function(){focusInput(); fastPoll();});
-        connect(input, "paste", fastPoll);
-        connect(input, "cut", operation(function(){replaceSelection("");}));
-
-        // IE throws unspecified error in certain cases, when
-        // trying to access activeElement before onload
-        var hasFocus; try { hasFocus = (targetDocument.activeElement == input); } catch(e) { }
-        if (hasFocus) setTimeout(onFocus, 20);
-        else onBlur();
-
-        function isLine(l) {return l >= 0 && l < doc.size;}
-        // The instance object that we'll return. Mostly calls out to
-        // local functions in the CodeMirror function. Some do some extra
-        // range checking and/or clipping. operation is used to wrap the
-        // call so that changes it makes are tracked, and the display is
-        // updated afterwards.
-        var instance = wrapper.CodeMirror = {
-            getValue: getValue,
-            setValue: operation(setValue),
-            getSelection: getSelection,
-            replaceSelection: operation(replaceSelection),
-            focus: function(){focusInput(); onFocus(); fastPoll();},
-            setOption: function(option, value) {
-                var oldVal = options[option];
-                options[option] = value;
-                if (option == "mode" || option == "indentUnit") loadMode();
-                else if (option == "readOnly" && value) {onBlur(); input.blur();}
-                else if (option == "theme") themeChanged();
-                else if (option == "lineWrapping" && oldVal != value) operation(wrappingChanged)();
-                else if (option == "tabSize") operation(tabsChanged)();
-                if (option == "lineNumbers" || option == "gutter" || option == "firstLineNumber" || option == "theme")
-                    operation(gutterChanged)();
-            },
-            getOption: function(option) {return options[option];},
-            undo: operation(undo),
-            redo: operation(redo),
-            indentLine: operation(function(n, dir) {
-                if (isLine(n)) indentLine(n, dir == null ? "smart" : dir ? "add" : "subtract");
-            }),
-            indentSelection: operation(indentSelected),
-            historySize: function() {return {undo: history.done.length, redo: history.undone.length};},
-            clearHistory: function() {history = new History();},
-            matchBrackets: operation(function(){matchBrackets(true);}),
-            getTokenAt: operation(function(pos) {
-                pos = clipPos(pos);
-                return getLine(pos.line).getTokenAt(mode, getStateBefore(pos.line), pos.ch);
-            }),
-            getStateAfter: function(line) {
-                line = clipLine(line == null ? doc.size - 1: line);
-                return getStateBefore(line + 1);
-            },
-            cursorCoords: function(start){
-                if (start == null) start = sel.inverted;
-                return pageCoords(start ? sel.from : sel.to);
-            },
-            charCoords: function(pos){return pageCoords(clipPos(pos));},
-            coordsChar: function(coords) {
-                var off = eltOffset(lineSpace);
-                return coordsChar(coords.x - off.left, coords.y - off.top);
-            },
-            markText: operation(markText),
-            setBookmark: setBookmark,
-            setMarker: operation(addGutterMarker),
-            clearMarker: operation(removeGutterMarker),
-            setLineClass: operation(setLineClass),
-            hideLine: operation(function(h) {return setLineHidden(h, true);}),
-            showLine: operation(function(h) {return setLineHidden(h, false);}),
-            onDeleteLine: function(line, f) {
-                if (typeof line == "number") {
-                    if (!isLine(line)) return null;
-                    line = getLine(line);
-                }
-                (line.handlers || (line.handlers = [])).push(f);
-                return line;
-            },
-            lineInfo: lineInfo,
-            addWidget: function(pos, node, scroll, vert, horiz) {
-                pos = localCoords(clipPos(pos));
-                var top = pos.yBot, left = pos.x;
-                node.style.position = "absolute";
-                code.appendChild(node);
-                if (vert == "over") top = pos.y;
-                else if (vert == "near") {
-                    var vspace = Math.max(scroller.offsetHeight, doc.height * textHeight()),
-                        hspace = Math.max(code.clientWidth, lineSpace.clientWidth) - paddingLeft();
-                    if (pos.yBot + node.offsetHeight > vspace && pos.y > node.offsetHeight)
-                        top = pos.y - node.offsetHeight;
-                    if (left + node.offsetWidth > hspace)
-                        left = hspace - node.offsetWidth;
-                }
-                node.style.top = (top + paddingTop()) + "px";
-                node.style.left = node.style.right = "";
-                if (horiz == "right") {
-                    left = code.clientWidth - node.offsetWidth;
-                    node.style.right = "0px";
-                } else {
-                    if (horiz == "left") left = 0;
-                    else if (horiz == "middle") left = (code.clientWidth - node.offsetWidth) / 2;
-                    node.style.left = (left + paddingLeft()) + "px";
-                }
-                if (scroll)
-                    scrollIntoView(left, top, left + node.offsetWidth, top + node.offsetHeight);
-            },
-
-            lineCount: function() {return doc.size;},
-            clipPos: clipPos,
-            getCursor: function(start) {
-                if (start == null) start = sel.inverted;
-                return copyPos(start ? sel.from : sel.to);
-            },
-            somethingSelected: function() {return !posEq(sel.from, sel.to);},
-            setCursor: operation(function(line, ch, user) {
-                if (ch == null && typeof line.line == "number") setCursor(line.line, line.ch, user);
-                else setCursor(line, ch, user);
-            }),
-            setSelection: operation(function(from, to, user) {
-                (user ? setSelectionUser : setSelection)(clipPos(from), clipPos(to || from));
-            }),
-            getLine: function(line) {if (isLine(line)) return getLine(line).text;},
-            getLineHandle: function(line) {if (isLine(line)) return getLine(line);},
-            setLine: operation(function(line, text) {
-                if (isLine(line)) replaceRange(text, {line: line, ch: 0}, {line: line, ch: getLine(line).text.length});
-            }),
-            removeLine: operation(function(line) {
-                if (isLine(line)) replaceRange("", {line: line, ch: 0}, clipPos({line: line+1, ch: 0}));
-            }),
-            replaceRange: operation(replaceRange),
-            getRange: function(from, to) {return getRange(clipPos(from), clipPos(to));},
-
-            execCommand: function(cmd) {return commands[cmd](instance);},
-            // Stuff used by commands, probably not much use to outside code.
-            moveH: operation(moveH),
-            deleteH: operation(deleteH),
-            moveV: operation(moveV),
-            toggleOverwrite: function() {overwrite = !overwrite;},
-
-            posFromIndex: function(off) {
-                var lineNo = 0, ch;
-                doc.iter(0, doc.size, function(line) {
-                    var sz = line.text.length + 1;
-                    if (sz > off) { ch = off; return true; }
-                    off -= sz;
-                    ++lineNo;
-                });
-                return clipPos({line: lineNo, ch: ch});
-            },
-            indexFromPos: function (coords) {
-                if (coords.line < 0 || coords.ch < 0) return 0;
-                var index = coords.ch;
-                doc.iter(0, coords.line, function (line) {
-                    index += line.text.length + 1;
-                });
-                return index;
-            },
-
-            operation: function(f){return operation(f)();},
-            refresh: function(){updateDisplay(true);},
-            getInputField: function(){return input;},
-            getWrapperElement: function(){return wrapper;},
-            getScrollerElement: function(){return scroller;},
-            getGutterElement: function(){return gutter;}
-        };
-
-        function getLine(n) { return getLineAt(doc, n); }
-        function updateLineHeight(line, height) {
-            gutterDirty = true;
-            var diff = height - line.height;
-            for (var n = line; n; n = n.parent) n.height += diff;
-        }
-
-        function setValue(code) {
-            var top = {line: 0, ch: 0};
-            updateLines(top, {line: doc.size - 1, ch: getLine(doc.size-1).text.length},
-                splitLines(code), top, top);
-            updateInput = true;
-        }
-        function getValue(code) {
-            var text = [];
-            doc.iter(0, doc.size, function(line) { text.push(line.text); });
-            return text.join("\n");
-        }
-
-        function onMouseDown(e) {
-            setShift(e.shiftKey);
-            // Check whether this is a click in a widget
-            for (var n = e_target(e); n != wrapper; n = n.parentNode)
-                if (n.parentNode == code && n != mover) return;
-
-            // See if this is a click in the gutter
-            for (var n = e_target(e); n != wrapper; n = n.parentNode)
-                if (n.parentNode == gutterText) {
-                    if (options.onGutterClick)
-                        options.onGutterClick(instance, indexOf(gutterText.childNodes, n) + showingFrom, e);
-                    return e_preventDefault(e);
-                }
-
-            var start = posFromMouse(e);
-
-            switch (e_button(e)) {
-                case 3:
-                    if (gecko && !mac) onContextMenu(e);
-                    return;
-                case 2:
-                    if (start) setCursor(start.line, start.ch, true);
-                    return;
-            }
-            // For button 1, if it was clicked inside the editor
-            // (posFromMouse returning non-null), we have to adjust the
-            // selection.
-            if (!start) {if (e_target(e) == scroller) e_preventDefault(e); return;}
-
-            if (!focused) onFocus();
-
-            var now = +new Date;
-            if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) {
-                e_preventDefault(e);
-                setTimeout(focusInput, 20);
-                return selectLine(start.line);
-            } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) {
-                lastDoubleClick = {time: now, pos: start};
-                e_preventDefault(e);
-                return selectWordAt(start);
-            } else { lastClick = {time: now, pos: start}; }
-
-            var last = start, going;
-            if (dragAndDrop && !posEq(sel.from, sel.to) &&
-                !posLess(start, sel.from) && !posLess(sel.to, start)) {
-                // Let the drag handler handle this.
-                if (webkit) lineSpace.draggable = true;
-                var up = connect(targetDocument, "mouseup", operation(function(e2) {
-                    if (webkit) lineSpace.draggable = false;
-                    draggingText = false;
-                    up();
-                    if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {
-                        e_preventDefault(e2);
-                        setCursor(start.line, start.ch, true);
-                        focusInput();
-                    }
-                }), true);
-                draggingText = true;
-                return;
-            }
-            e_preventDefault(e);
-            setCursor(start.line, start.ch, true);
-
-            function extend(e) {
-                var cur = posFromMouse(e, true);
-                if (cur && !posEq(cur, last)) {
-                    if (!focused) onFocus();
-                    last = cur;
-                    setSelectionUser(start, cur);
-                    updateInput = false;
-                    var visible = visibleLines();
-                    if (cur.line >= visible.to || cur.line < visible.from)
-                        going = setTimeout(operation(function(){extend(e);}), 150);
-                }
-            }
-
-            var move = connect(targetDocument, "mousemove", operation(function(e) {
-                clearTimeout(going);
-                e_preventDefault(e);
-                extend(e);
-            }), true);
-            var up = connect(targetDocument, "mouseup", operation(function(e) {
-                clearTimeout(going);
-                var cur = posFromMouse(e);
-                if (cur) setSelectionUser(start, cur);
-                e_preventDefault(e);
-                focusInput();
-                updateInput = true;
-                move(); up();
-            }), true);
-        }
-        function onDoubleClick(e) {
-            for (var n = e_target(e); n != wrapper; n = n.parentNode)
-                if (n.parentNode == gutterText) return e_preventDefault(e);
-            var start = posFromMouse(e);
-            if (!start) return;
-            lastDoubleClick = {time: +new Date, pos: start};
-            e_preventDefault(e);
-            selectWordAt(start);
-        }
-        function onDrop(e) {
-            e.preventDefault();
-            var pos = posFromMouse(e, true), files = e.dataTransfer.files;
-            if (!pos || options.readOnly) return;
-            if (files && files.length && window.FileReader && window.File) {
-                function loadFile(file, i) {
-                    var reader = new FileReader;
-                    reader.onload = function() {
-                        text[i] = reader.result;
-                        if (++read == n) {
-                            pos = clipPos(pos);
-                            operation(function() {
-                                var end = replaceRange(text.join(""), pos, pos);
-                                setSelectionUser(pos, end);
-                            })();
-                        }
-                    };
-                    reader.readAsText(file);
-                }
-                var n = files.length, text = Array(n), read = 0;
-                for (var i = 0; i < n; ++i) loadFile(files[i], i);
-            }
-            else {
-                try {
-                    var text = e.dataTransfer.getData("Text");
-                    if (text) {
-                        var end = replaceRange(text, pos, pos);
-                        var curFrom = sel.from, curTo = sel.to;
-                        setSelectionUser(pos, end);
-                        if (draggingText) replaceRange("", curFrom, curTo);
-                        focusInput();
-                    }
-                }
-                catch(e){}
-            }
-        }
-        function onDragStart(e) {
-            var txt = getSelection();
-            // This will reset escapeElement
-            htmlEscape(txt);
-            e.dataTransfer.setDragImage(escapeElement, 0, 0);
-            e.dataTransfer.setData("Text", txt);
-        }
-        function handleKeyBinding(e) {
-            var name = keyNames[e.keyCode], next = keyMap[options.keyMap].auto, bound, dropShift;
-            if (name == null || e.altGraphKey) {
-                if (next) options.keyMap = next;
-                return null;
-            }
-            if (e.altKey) name = "Alt-" + name;
-            if (e.ctrlKey) name = "Ctrl-" + name;
-            if (e.metaKey) name = "Cmd-" + name;
-            if (e.shiftKey && (bound = lookupKey("Shift-" + name, options.extraKeys, options.keyMap))) {
-                dropShift = true;
-            } else {
-                bound = lookupKey(name, options.extraKeys, options.keyMap);
-            }
-            if (typeof bound == "string") {
-                if (commands.propertyIsEnumerable(bound)) bound = commands[bound];
-                else bound = null;
-            }
-            if (next && (bound || !isModifierKey(e))) options.keyMap = next;
-            if (!bound) return false;
-            if (dropShift) {
-                var prevShift = shiftSelecting;
-                shiftSelecting = null;
-                bound(instance);
-                shiftSelecting = prevShift;
-            } else bound(instance);
-            e_preventDefault(e);
-            return true;
-        }
-        var lastStoppedKey = null;
-        function onKeyDown(e) {
-            if (!focused) onFocus();
-            var code = e.keyCode;
-            // IE does strange things with escape.
-            if (ie && code == 27) { e.returnValue = false; }
-            setShift(code == 16 || e.shiftKey);
-            // First give onKeyEvent option a chance to handle this.
-            if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
-            var handled = handleKeyBinding(e);
-            if (window.opera) {
-                lastStoppedKey = handled ? e.keyCode : null;
-                // Opera has no cut event... we try to at least catch the key combo
-                if (!handled && (mac ? e.metaKey : e.ctrlKey) && e.keyCode == 88)
-                    replaceSelection("");
-            }
-        }
-        function onKeyPress(e) {
-            if (window.opera && e.keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}
-            if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
-            if (window.opera && !e.which && handleKeyBinding(e)) return;
-            if (options.electricChars && mode.electricChars) {
-                var ch = String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode);
-                if (mode.electricChars.indexOf(ch) > -1)
-                    setTimeout(operation(function() {indentLine(sel.to.line, "smart");}), 75);
-            }
-            fastPoll();
-        }
-        function onKeyUp(e) {
-            if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return;
-            if (e.keyCode == 16) shiftSelecting = null;
-        }
-
-        function onFocus() {
-            if (options.readOnly) return;
-            if (!focused) {
-                if (options.onFocus) options.onFocus(instance);
-                focused = true;
-                if (wrapper.className.search(/\bCodeMirror-focused\b/) == -1)
-                    wrapper.className += " CodeMirror-focused";
-                if (!leaveInputAlone) resetInput(true);
-            }
-            slowPoll();
-            restartBlink();
-        }
-        function onBlur() {
-            if (focused) {
-                if (options.onBlur) options.onBlur(instance);
-                focused = false;
-                wrapper.className = wrapper.className.replace(" CodeMirror-focused", "");
-            }
-            clearInterval(blinker);
-            setTimeout(function() {if (!focused) shiftSelecting = null;}, 150);
-        }
-
-        // Replace the range from from to to by the strings in newText.
-        // Afterwards, set the selection to selFrom, selTo.
-        function updateLines(from, to, newText, selFrom, selTo) {
-            if (history) {
-                var old = [];
-                doc.iter(from.line, to.line + 1, function(line) { old.push(line.text); });
-                history.addChange(from.line, newText.length, old);
-                while (history.done.length > options.undoDepth) history.done.shift();
-            }
-            updateLinesNoUndo(from, to, newText, selFrom, selTo);
-        }
-        function unredoHelper(from, to) {
-            var change = from.pop();
-            if (change) {
-                var replaced = [], end = change.start + change.added;
-                doc.iter(change.start, end, function(line) { replaced.push(line.text); });
-                to.push({start: change.start, added: change.old.length, old: replaced});
-                var pos = clipPos({line: change.start + change.old.length - 1,
-                    ch: editEnd(replaced[replaced.length-1], change.old[change.old.length-1])});
-                updateLinesNoUndo({line: change.start, ch: 0}, {line: end - 1, ch: getLine(end-1).text.length}, change.old, pos, pos);
-                updateInput = true;
-            }
-        }
-        function undo() {unredoHelper(history.done, history.undone);}
-        function redo() {unredoHelper(history.undone, history.done);}
-
-        function updateLinesNoUndo(from, to, newText, selFrom, selTo) {
-            var recomputeMaxLength = false, maxLineLength = maxLine.length;
-            if (!options.lineWrapping)
-                doc.iter(from.line, to.line, function(line) {
-                    if (line.text.length == maxLineLength) {recomputeMaxLength = true; return true;}
-                });
-            if (from.line != to.line || newText.length > 1) gutterDirty = true;
-
-            var nlines = to.line - from.line, firstLine = getLine(from.line), lastLine = getLine(to.line);
-            // First adjust the line structure, taking some care to leave highlighting intact.
-            if (from.ch == 0 && to.ch == 0 && newText[newText.length - 1] == "") {
-                // This is a whole-line replace. Treated specially to make
-                // sure line objects move the way they are supposed to.
-                var added = [], prevLine = null;
-                if (from.line) {
-                    prevLine = getLine(from.line - 1);
-                    prevLine.fixMarkEnds(lastLine);
-                } else lastLine.fixMarkStarts();
-                for (var i = 0, e = newText.length - 1; i < e; ++i)
-                    added.push(Line.inheritMarks(newText[i], prevLine));
-                if (nlines) doc.remove(from.line, nlines, callbacks);
-                if (added.length) doc.insert(from.line, added);
-            } else if (firstLine == lastLine) {
-                if (newText.length == 1)
-                    firstLine.replace(from.ch, to.ch, newText[0]);
-                else {
-                    lastLine = firstLine.split(to.ch, newText[newText.length-1]);
-                    firstLine.replace(from.ch, null, newText[0]);
-                    firstLine.fixMarkEnds(lastLine);
-                    var added = [];
-                    for (var i = 1, e = newText.length - 1; i < e; ++i)
-                        added.push(Line.inheritMarks(newText[i], firstLine));
-                    added.push(lastLine);
-                    doc.insert(from.line + 1, added);
-                }
-            } else if (newText.length == 1) {
-                firstLine.replace(from.ch, null, newText[0]);
-                lastLine.replace(null, to.ch, "");
-                firstLine.append(lastLine);
-                doc.remove(from.line + 1, nlines, callbacks);
-            } else {
-                var added = [];
-                firstLine.replace(from.ch, null, newText[0]);
-                lastLine.replace(null, to.ch, newText[newText.length-1]);
-                firstLine.fixMarkEnds(lastLine);
-                for (var i = 1, e = newText.length - 1; i < e; ++i)
-                    added.push(Line.inheritMarks(newText[i], firstLine));
-                if (nlines > 1) doc.remove(from.line + 1, nlines - 1, callbacks);
-                doc.insert(from.line + 1, added);
-            }
-            if (options.lineWrapping) {
-                var perLine = scroller.clientWidth / charWidth() - 3;
-                doc.iter(from.line, from.line + newText.length, function(line) {
-                    if (line.hidden) return;
-                    var guess = Math.ceil(line.text.length / perLine) || 1;
-                    if (guess != line.height) updateLineHeight(line, guess);
-                });
-            } else {
-                doc.iter(from.line, i + newText.length, function(line) {
-                    var l = line.text;
-                    if (l.length > maxLineLength) {
-                        maxLine = l; maxLineLength = l.length; maxWidth = null;
-                        recomputeMaxLength = false;
-                    }
-                });
-                if (recomputeMaxLength) {
-                    maxLineLength = 0; maxLine = ""; maxWidth = null;
-                    doc.iter(0, doc.size, function(line) {
-                        var l = line.text;
-                        if (l.length > maxLineLength) {
-                            maxLineLength = l.length; maxLine = l;
-                        }
-                    });
-                }
-            }
-
-            // Add these lines to the work array, so that they will be
-            // highlighted. Adjust work lines if lines were added/removed.
-            var newWork = [], lendiff = newText.length - nlines - 1;
-            for (var i = 0, l = work.length; i < l; ++i) {
-                var task = work[i];
-                if (task < from.line) newWork.push(task);
-                else if (task > to.line) newWork.push(task + lendiff);
-            }
-            var hlEnd = from.line + Math.min(newText.length, 500);
-            highlightLines(from.line, hlEnd);
-            newWork.push(hlEnd);
-            work = newWork;
-            startWorker(100);
-            // Remember that these lines changed, for updating the display
-            changes.push({from: from.line, to: to.line + 1, diff: lendiff});
-            var changeObj = {from: from, to: to, text: newText};
-            if (textChanged) {
-                for (var cur = textChanged; cur.next; cur = cur.next) {}
-                cur.next = changeObj;
-            } else textChanged = changeObj;
-
-            // Update the selection
-            function updateLine(n) {return n <= Math.min(to.line, to.line + lendiff) ? n : n + lendiff;}
-            setSelection(selFrom, selTo, updateLine(sel.from.line), updateLine(sel.to.line));
-
-            // Make sure the scroll-size div has the correct height.
-            code.style.height = (doc.height * textHeight() + 2 * paddingTop()) + "px";
-        }
-
-        function replaceRange(code, from, to) {
-            from = clipPos(from);
-            if (!to) to = from; else to = clipPos(to);
-            code = splitLines(code);
-            function adjustPos(pos) {
-                if (posLess(pos, from)) return pos;
-                if (!posLess(to, pos)) return end;
-                var line = pos.line + code.length - (to.line - from.line) - 1;
-                var ch = pos.ch;
-                if (pos.line == to.line)
-                    ch += code[code.length-1].length - (to.ch - (to.line == from.line ? from.ch : 0));
-                return {line: line, ch: ch};
-            }
-            var end;
-            replaceRange1(code, from, to, function(end1) {
-                end = end1;
-                return {from: adjustPos(sel.from), to: adjustPos(sel.to)};
-            });
-            return end;
-        }
-        function replaceSelection(code, collapse) {
-            replaceRange1(splitLines(code), sel.from, sel.to, function(end) {
-                if (collapse == "end") return {from: end, to: end};
-                else if (collapse == "start") return {from: sel.from, to: sel.from};
-                else return {from: sel.from, to: end};
-            });
-        }
-        function replaceRange1(code, from, to, computeSel) {
-            var endch = code.length == 1 ? code[0].length + from.ch : code[code.length-1].length;
-            var newSel = computeSel({line: from.line + code.length - 1, ch: endch});
-            updateLines(from, to, code, newSel.from, newSel.to);
-        }
-
-        function getRange(from, to) {
-            var l1 = from.line, l2 = to.line;
-            if (l1 == l2) return getLine(l1).text.slice(from.ch, to.ch);
-            var code = [getLine(l1).text.slice(from.ch)];
-            doc.iter(l1 + 1, l2, function(line) { code.push(line.text); });
-            code.push(getLine(l2).text.slice(0, to.ch));
-            return code.join("\n");
-        }
-        function getSelection() {
-            return getRange(sel.from, sel.to);
-        }
-
-        var pollingFast = false; // Ensures slowPoll doesn't cancel fastPoll
-        function slowPoll() {
-            if (pollingFast) return;
-            poll.set(options.pollInterval, function() {
-                startOperation();
-                readInput();
-                if (focused) slowPoll();
-                endOperation();
-            });
-        }
-        function fastPoll() {
-            var missed = false;
-            pollingFast = true;
-            function p() {
-                startOperation();
-                var changed = readInput();
-                if (!changed && !missed) {missed = true; poll.set(60, p);}
-                else {pollingFast = false; slowPoll();}
-                endOperation();
-            }
-            poll.set(20, p);
-        }
-
-        // Previnput is a hack to work with IME. If we reset the textarea
-        // on every change, that breaks IME. So we look for changes
-        // compared to the previous content instead. (Modern browsers have
-        // events that indicate IME taking place, but these are not widely
-        // supported or compatible enough yet to rely on.)
-        var prevInput = "";
-        function readInput() {
-            if (leaveInputAlone || !focused || hasSelection(input)) return false;
-            var text = input.value;
-            if (text == prevInput) return false;
-            shiftSelecting = null;
-            var same = 0, l = Math.min(prevInput.length, text.length);
-            while (same < l && prevInput[same] == text[same]) ++same;
-            if (same < prevInput.length)
-                sel.from = {line: sel.from.line, ch: sel.from.ch - (prevInput.length - same)};
-            else if (overwrite && posEq(sel.from, sel.to))
-                sel.to = {line: sel.to.line, ch: Math.min(getLine(sel.to.line).text.length, sel.to.ch + (text.length - same))};
-            replaceSelection(text.slice(same), "end");
-            prevInput = text;
-            return true;
-        }
-        function resetInput(user) {
-            if (!posEq(sel.from, sel.to)) {
-                prevInput = "";
-                input.value = getSelection();
-                input.select();
-            } else if (user) prevInput = input.value = "";
-        }
-
-        function focusInput() {
-            if (!options.readOnly) input.focus();
-        }
-
-        function scrollEditorIntoView() {
-            if (!cursor.getBoundingClientRect) return;
-            var rect = cursor.getBoundingClientRect();
-            // IE returns bogus coordinates when the instance sits inside of an iframe and the cursor is hidden
-            if (ie && rect.top == rect.bottom) return;
-            var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);
-            if (rect.top < 0 || rect.bottom > winH) cursor.scrollIntoView();
-        }
-        function scrollCursorIntoView() {
-            var cursor = localCoords(sel.inverted ? sel.from : sel.to);
-            var x = options.lineWrapping ? Math.min(cursor.x, lineSpace.offsetWidth) : cursor.x;
-            return scrollIntoView(x, cursor.y, x, cursor.yBot);
-        }
-        function scrollIntoView(x1, y1, x2, y2) {
-            var pl = paddingLeft(), pt = paddingTop(), lh = textHeight();
-            y1 += pt; y2 += pt; x1 += pl; x2 += pl;
-            var screen = scroller.clientHeight, screentop = scroller.scrollTop, scrolled = false, result = true;
-            if (y1 < screentop) {scroller.scrollTop = Math.max(0, y1 - 2*lh); scrolled = true;}
-            else if (y2 > screentop + screen) {scroller.scrollTop = y2 + lh - screen; scrolled = true;}
-
-            var screenw = scroller.clientWidth, screenleft = scroller.scrollLeft;
-            var gutterw = options.fixedGutter ? gutter.clientWidth : 0;
-            if (x1 < screenleft + gutterw) {
-                if (x1 < 50) x1 = 0;
-                scroller.scrollLeft = Math.max(0, x1 - 10 - gutterw);
-                scrolled = true;
-            }
-            else if (x2 > screenw + screenleft - 3) {
-                scroller.scrollLeft = x2 + 10 - screenw;
-                scrolled = true;
-                if (x2 > code.clientWidth) result = false;
-            }
-            if (scrolled && options.onScroll) options.onScroll(instance);
-            return result;
-        }
-
-        function visibleLines() {
-            var lh = textHeight(), top = scroller.scrollTop - paddingTop();
-            var from_height = Math.max(0, Math.floor(top / lh));
-            var to_height = Math.ceil((top + scroller.clientHeight) / lh);
-            return {from: lineAtHeight(doc, from_height),
-                to: lineAtHeight(doc, to_height)};
-        }
-        // Uses a set of changes plus the current scroll position to
-        // determine which DOM updates have to be made, and makes the
-        // updates.
-        function updateDisplay(changes, suppressCallback) {
-            if (!scroller.clientWidth) {
-                showingFrom = showingTo = displayOffset = 0;
-                return;
-            }
-            // Compute the new visible window
-            var visible = visibleLines();
-            // Bail out if the visible area is already rendered and nothing changed.
-            if (changes !== true && changes.length == 0 && visible.from >= showingFrom && visible.to <= showingTo) return;
-            var from = Math.max(visible.from - 100, 0), to = Math.min(doc.size, visible.to + 100);
-            if (showingFrom < from && from - showingFrom < 20) from = showingFrom;
-            if (showingTo > to && showingTo - to < 20) to = Math.min(doc.size, showingTo);
-
-            // Create a range of theoretically intact lines, and punch holes
-            // in that using the change info.
-            var intact = changes === true ? [] :
-                computeIntact([{from: showingFrom, to: showingTo, domStart: 0}], changes);
-            // Clip off the parts that won't be visible
-            var intactLines = 0;
-            for (var i = 0; i < intact.length; ++i) {
-                var range = intact[i];
-                if (range.from < from) {range.domStart += (from - range.from); range.from = from;}
-                if (range.to > to) range.to = to;
-                if (range.from >= range.to) intact.splice(i--, 1);
-                else intactLines += range.to - range.from;
-            }
-            if (intactLines == to - from) return;
-            intact.sort(function(a, b) {return a.domStart - b.domStart;});
-
-            var th = textHeight(), gutterDisplay = gutter.style.display;
-            lineDiv.style.display = gutter.style.display = "none";
-            patchDisplay(from, to, intact);
-            lineDiv.style.display = "";
-
-            // Position the mover div to align with the lines it's supposed
-            // to be showing (which will cover the visible display)
-            var different = from != showingFrom || to != showingTo || lastSizeC != scroller.clientHeight + th;
-            // This is just a bogus formula that detects when the editor is
-            // resized or the font size changes.
-            if (different) lastSizeC = scroller.clientHeight + th;
-            showingFrom = from; showingTo = to;
-            displayOffset = heightAtLine(doc, from);
-            mover.style.top = (displayOffset * th) + "px";
-            code.style.height = (doc.height * th + 2 * paddingTop()) + "px";
-
-            // Since this is all rather error prone, it is honoured with the
-            // only assertion in the whole file.
-            if (lineDiv.childNodes.length != showingTo - showingFrom)
-                throw new Error("BAD PATCH! " + JSON.stringify(intact) + " size=" + (showingTo - showingFrom) +
-                    " nodes=" + lineDiv.childNodes.length);
-
-            if (options.lineWrapping) {
-                maxWidth = scroller.clientWidth;
-                var curNode = lineDiv.firstChild;
-                doc.iter(showingFrom, showingTo, function(line) {
-                    if (!line.hidden) {
-                        var height = Math.round(curNode.offsetHeight / th) || 1;
-                        if (line.height != height) {updateLineHeight(line, height); gutterDirty = true;}
-                    }
-                    curNode = curNode.nextSibling;
-                });
-            } else {
-                if (maxWidth == null) maxWidth = stringWidth(maxLine);
-                if (maxWidth > scroller.clientWidth) {
-                    lineSpace.style.width = maxWidth + "px";
-                    // Needed to prevent odd wrapping/hiding of widgets placed in here.
-                    code.style.width = "";
-                    code.style.width = scroller.scrollWidth + "px";
-                } else {
-                    lineSpace.style.width = code.style.width = "";
-                }
-            }
-            gutter.style.display = gutterDisplay;
-            if (different || gutterDirty) updateGutter();
-            updateCursor();
-            if (!suppressCallback && options.onUpdate) options.onUpdate(instance);
-            return true;
-        }
-
-        function computeIntact(intact, changes) {
-            for (var i = 0, l = changes.length || 0; i < l; ++i) {
-                var change = changes[i], intact2 = [], diff = change.diff || 0;
-                for (var j = 0, l2 = intact.length; j < l2; ++j) {
-                    var range = intact[j];
-                    if (change.to <= range.from && change.diff)
-                        intact2.push({from: range.from + diff, to: range.to + diff,
-                            domStart: range.domStart});
-                    else if (change.to <= range.from || change.from >= range.to)
-                        intact2.push(range);
-                    else {
-                        if (change.from > range.from)
-                            intact2.push({from: range.from, to: change.from, domStart: range.domStart});
-                        if (change.to < range.to)
-                            intact2.push({from: change.to + diff, to: range.to + diff,
-                                domStart: range.domStart + (change.to - range.from)});
-                    }
-                }
-                intact = intact2;
-            }
-            return intact;
-        }
-
-        function patchDisplay(from, to, intact) {
-            // The first pass removes the DOM nodes that aren't intact.
-            if (!intact.length) lineDiv.innerHTML = "";
-            else {
-                function killNode(node) {
-                    var tmp = node.nextSibling;
-                    node.parentNode.removeChild(node);
-                    return tmp;
-                }
-                var domPos = 0, curNode = lineDiv.firstChild, n;
-                for (var i = 0; i < intact.length; ++i) {
-                    var cur = intact[i];
-                    while (cur.domStart > domPos) {curNode = killNode(curNode); domPos++;}
-                    for (var j = 0, e = cur.to - cur.from; j < e; ++j) {curNode = curNode.nextSibling; domPos++;}
-                }
-                while (curNode) curNode = killNode(curNode);
-            }
-            // This pass fills in the lines that actually changed.
-            var nextIntact = intact.shift(), curNode = lineDiv.firstChild, j = from;
-            var sfrom = sel.from.line, sto = sel.to.line, inSel = sfrom < from && sto >= from;
-            var scratch = targetDocument.createElement("div"), newElt;
-            doc.iter(from, to, function(line) {
-                var ch1 = null, ch2 = null;
-                if (inSel) {
-                    ch1 = 0;
-                    if (sto == j) {inSel = false; ch2 = sel.to.ch;}
-                } else if (sfrom == j) {
-                    if (sto == j) {ch1 = sel.from.ch; ch2 = sel.to.ch;}
-                    else {inSel = true; ch1 = sel.from.ch;}
-                }
-                if (nextIntact && nextIntact.to == j) nextIntact = intact.shift();
-                if (!nextIntact || nextIntact.from > j) {
-                    if (line.hidden) scratch.innerHTML = "<pre></pre>";
-                    else scratch.innerHTML = line.getHTML(ch1, ch2, true, tabText);
-                    lineDiv.insertBefore(scratch.firstChild, curNode);
-                } else {
-                    curNode = curNode.nextSibling;
-                }
-                ++j;
-            });
-        }
-
-        function updateGutter() {
-            if (!options.gutter && !options.lineNumbers) return;
-            var hText = mover.offsetHeight, hEditor = scroller.clientHeight;
-            gutter.style.height = (hText - hEditor < 2 ? hEditor : hText) + "px";
-            var html = [], i = showingFrom;
-            doc.iter(showingFrom, Math.max(showingTo, showingFrom + 1), function(line) {
-                if (line.hidden) {
-                    html.push("<pre></pre>");
-                } else {
-                    var marker = line.gutterMarker;
-                    var text = options.lineNumbers ? i + options.firstLineNumber : null;
-                    if (marker && marker.text)
-                        text = marker.text.replace("%N%", text != null ? text : "");
-                    else if (text == null)
-                        text = "\u00a0";
-                    html.push((marker && marker.style ? '<pre class="' + marker.style + '">' : "<pre>"), text);
-                    for (var j = 1; j < line.height; ++j) html.push("<br/>&#160;");
-                    html.push("</pre>");
-                }
-                ++i;
-            });
-            gutter.style.display = "none";
-            gutterText.innerHTML = html.join("");
-            var minwidth = String(doc.size).length, firstNode = gutterText.firstChild, val = eltText(firstNode), pad = "";
-            while (val.length + pad.length < minwidth) pad += "\u00a0";
-            if (pad) firstNode.insertBefore(targetDocument.createTextNode(pad), firstNode.firstChild);
-            gutter.style.display = "";
-            lineSpace.style.marginLeft = gutter.offsetWidth + "px";
-            gutterDirty = false;
-        }
-        function updateCursor() {
-            var head = sel.inverted ? sel.from : sel.to, lh = textHeight();
-            var pos = localCoords(head, true);
-            var wrapOff = eltOffset(wrapper), lineOff = eltOffset(lineDiv);
-            inputDiv.style.top = (pos.y + lineOff.top - wrapOff.top) + "px";
-            inputDiv.style.left = (pos.x + lineOff.left - wrapOff.left) + "px";
-            if (posEq(sel.from, sel.to)) {
-                cursor.style.top = pos.y + "px";
-                cursor.style.left = (options.lineWrapping ? Math.min(pos.x, lineSpace.offsetWidth) : pos.x) + "px";
-                cursor.style.display = "";
-            }
-            else cursor.style.display = "none";
-        }
-
-        function setShift(val) {
-            if (val) shiftSelecting = shiftSelecting || (sel.inverted ? sel.to : sel.from);
-            else shiftSelecting = null;
-        }
-        function setSelectionUser(from, to) {
-            var sh = shiftSelecting && clipPos(shiftSelecting);
-            if (sh) {
-                if (posLess(sh, from)) from = sh;
-                else if (posLess(to, sh)) to = sh;
-            }
-            setSelection(from, to);
-            userSelChange = true;
-        }
-        // Update the selection. Last two args are only used by
-        // updateLines, since they have to be expressed in the line
-        // numbers before the update.
-        function setSelection(from, to, oldFrom, oldTo) {
-            goalColumn = null;
-            if (oldFrom == null) {oldFrom = sel.from.line; oldTo = sel.to.line;}
-            if (posEq(sel.from, from) && posEq(sel.to, to)) return;
-            if (posLess(to, from)) {var tmp = to; to = from; from = tmp;}
-
-            // Skip over hidden lines.
-            if (from.line != oldFrom) from = skipHidden(from, oldFrom, sel.from.ch);
-            if (to.line != oldTo) to = skipHidden(to, oldTo, sel.to.ch);
-
-            if (posEq(from, to)) sel.inverted = false;
-            else if (posEq(from, sel.to)) sel.inverted = false;
-            else if (posEq(to, sel.from)) sel.inverted = true;
-
-            // Some ugly logic used to only mark the lines that actually did
-            // see a change in selection as changed, rather than the whole
-            // selected range.
-            if (posEq(from, to)) {
-                if (!posEq(sel.from, sel.to))
-                    changes.push({from: oldFrom, to: oldTo + 1});
-            }
-            else if (posEq(sel.from, sel.to)) {
-                changes.push({from: from.line, to: to.line + 1});
-            }
-            else {
-                if (!posEq(from, sel.from)) {
-                    if (from.line < oldFrom)
-                        changes.push({from: from.line, to: Math.min(to.line, oldFrom) + 1});
-                    else
-                        changes.push({from: oldFrom, to: Math.min(oldTo, from.line) + 1});
-                }
-                if (!posEq(to, sel.to)) {
-                    if (to.line < oldTo)
-                        changes.push({from: Math.max(oldFrom, from.line), to: oldTo + 1});
-                    else
-                        changes.push({from: Math.max(from.line, oldTo), to: to.line + 1});
-                }
-            }
-            sel.from = from; sel.to = to;
-            selectionChanged = true;
-        }
-        function skipHidden(pos, oldLine, oldCh) {
-            function getNonHidden(dir) {
-                var lNo = pos.line + dir, end = dir == 1 ? doc.size : -1;
-                while (lNo != end) {
-                    var line = getLine(lNo);
-                    if (!line.hidden) {
-                        var ch = pos.ch;
-                        if (ch > oldCh || ch > line.text.length) ch = line.text.length;
-                        return {line: lNo, ch: ch};
-                    }
-                    lNo += dir;
-                }
-            }
-            var line = getLine(pos.line);
-            if (!line.hidden) return pos;
-            if (pos.line >= oldLine) return getNonHidden(1) || getNonHidden(-1);
-            else return getNonHidden(-1) || getNonHidden(1);
-        }
-        function setCursor(line, ch, user) {
-            var pos = clipPos({line: line, ch: ch || 0});
-            (user ? setSelectionUser : setSelection)(pos, pos);
-        }
-
-        function clipLine(n) {return Math.max(0, Math.min(n, doc.size-1));}
-        function clipPos(pos) {
-            if (pos.line < 0) return {line: 0, ch: 0};
-            if (pos.line >= doc.size) return {line: doc.size-1, ch: getLine(doc.size-1).text.length};
-            var ch = pos.ch, linelen = getLine(pos.line).text.length;
-            if (ch == null || ch > linelen) return {line: pos.line, ch: linelen};
-            else if (ch < 0) return {line: pos.line, ch: 0};
-            else return pos;
-        }
-
-        function findPosH(dir, unit) {
-            var end = sel.inverted ? sel.from : sel.to, line = end.line, ch = end.ch;
-            var lineObj = getLine(line);
-            function findNextLine() {
-                for (var l = line + dir, e = dir < 0 ? -1 : doc.size; l != e; l += dir) {
-                    var lo = getLine(l);
-                    if (!lo.hidden) { line = l; lineObj = lo; return true; }
-                }
-            }
-            function moveOnce(boundToLine) {
-                if (ch == (dir < 0 ? 0 : lineObj.text.length)) {
-                    if (!boundToLine && findNextLine()) ch = dir < 0 ? lineObj.text.length : 0;
-                    else return false;
-                } else ch += dir;
-                return true;
-            }
-            if (unit == "char") moveOnce();
-            else if (unit == "column") moveOnce(true);
-            else if (unit == "word") {
-                var sawWord = false;
-                for (;;) {
-                    if (dir < 0) if (!moveOnce()) break;
-                    if (isWordChar(lineObj.text.charAt(ch))) sawWord = true;
-                    else if (sawWord) {if (dir < 0) {dir = 1; moveOnce();} break;}
-                    if (dir > 0) if (!moveOnce()) break;
-                }
-            }
-            return {line: line, ch: ch};
-        }
-        function moveH(dir, unit) {
-            var pos = dir < 0 ? sel.from : sel.to;
-            if (shiftSelecting || posEq(sel.from, sel.to)) pos = findPosH(dir, unit);
-            setCursor(pos.line, pos.ch, true);
-        }
-        function deleteH(dir, unit) {
-            if (!posEq(sel.from, sel.to)) replaceRange("", sel.from, sel.to);
-            else if (dir < 0) replaceRange("", findPosH(dir, unit), sel.to);
-            else replaceRange("", sel.from, findPosH(dir, unit));
-            userSelChange = true;
-        }
-        var goalColumn = null;
-        function moveV(dir, unit) {
-            var dist = 0, pos = localCoords(sel.inverted ? sel.from : sel.to, true);
-            if (goalColumn != null) pos.x = goalColumn;
-            if (unit == "page") dist = scroller.clientHeight;
-            else if (unit == "line") dist = textHeight();
-            var target = coordsChar(pos.x, pos.y + dist * dir + 2);
-            setCursor(target.line, target.ch, true);
-            goalColumn = pos.x;
-        }
-
-        function selectWordAt(pos) {
-            var line = getLine(pos.line).text;
-            var start = pos.ch, end = pos.ch;
-            while (start > 0 && isWordChar(line.charAt(start - 1))) --start;
-            while (end < line.length && isWordChar(line.charAt(end))) ++end;
-            setSelectionUser({line: pos.line, ch: start}, {line: pos.line, ch: end});
-        }
-        function selectLine(line) {
-            setSelectionUser({line: line, ch: 0}, {line: line, ch: getLine(line).text.length});
-        }
-        function indentSelected(mode) {
-            if (posEq(sel.from, sel.to)) return indentLine(sel.from.line, mode);
-            var e = sel.to.line - (sel.to.ch ? 0 : 1);
-            for (var i = sel.from.line; i <= e; ++i) indentLine(i, mode);
-        }
-
-        function indentLine(n, how) {
-            if (!how) how = "add";
-            if (how == "smart") {
-                if (!mode.indent) how = "prev";
-                else var state = getStateBefore(n);
-            }
-
-            var line = getLine(n), curSpace = line.indentation(options.tabSize),
-                curSpaceString = line.text.match(/^\s*/)[0], indentation;
-            if (how == "prev") {
-                if (n) indentation = getLine(n-1).indentation(options.tabSize);
-                else indentation = 0;
-            }
-            else if (how == "smart") indentation = mode.indent(state, line.text.slice(curSpaceString.length), line.text);
-            else if (how == "add") indentation = curSpace + options.indentUnit;
-            else if (how == "subtract") indentation = curSpace - options.indentUnit;
-            indentation = Math.max(0, indentation);
-            var diff = indentation - curSpace;
-
-            if (!diff) {
-                if (sel.from.line != n && sel.to.line != n) return;
-                var indentString = curSpaceString;
-            }
-            else {
-                var indentString = "", pos = 0;
-                if (options.indentWithTabs)
-                    for (var i = Math.floor(indentation / options.tabSize); i; --i) {pos += options.tabSize; indentString += "\t";}
-                while (pos < indentation) {++pos; indentString += " ";}
-            }
-
-            replaceRange(indentString, {line: n, ch: 0}, {line: n, ch: curSpaceString.length});
-        }
-
-        function loadMode() {
-            mode = CodeMirror.getMode(options, options.mode);
-            doc.iter(0, doc.size, function(line) { line.stateAfter = null; });
-            work = [0];
-            startWorker();
-        }
-        function gutterChanged() {
-            var visible = options.gutter || options.lineNumbers;
-            gutter.style.display = visible ? "" : "none";
-            if (visible) gutterDirty = true;
-            else lineDiv.parentNode.style.marginLeft = 0;
-        }
-        function wrappingChanged(from, to) {
-            if (options.lineWrapping) {
-                wrapper.className += " CodeMirror-wrap";
-                var perLine = scroller.clientWidth / charWidth() - 3;
-                doc.iter(0, doc.size, function(line) {
-                    if (line.hidden) return;
-                    var guess = Math.ceil(line.text.length / perLine) || 1;
-                    if (guess != 1) updateLineHeight(line, guess);
-                });
-                lineSpace.style.width = code.style.width = "";
-            } else {
-                wrapper.className = wrapper.className.replace(" CodeMirror-wrap", "");
-                maxWidth = null; maxLine = "";
-                doc.iter(0, doc.size, function(line) {
-                    if (line.height != 1 && !line.hidden) updateLineHeight(line, 1);
-                    if (line.text.length > maxLine.length) maxLine = line.text;
-                });
-            }
-            changes.push({from: 0, to: doc.size});
-        }
-        function computeTabText() {
-            for (var str = '<span class="cm-tab">', i = 0; i < options.tabSize; ++i) str += " ";
-            return str + "</span>";
-        }
-        function tabsChanged() {
-            tabText = computeTabText();
-            updateDisplay(true);
-        }
-        function themeChanged() {
-            scroller.className = scroller.className.replace(/\s*cm-s-\w+/g, "") +
-                options.theme.replace(/(^|\s)\s*/g, " cm-s-");
-        }
-
-        function TextMarker() { this.set = []; }
-        TextMarker.prototype.clear = operation(function() {
-            var min = Infinity, max = -Infinity;
-            for (var i = 0, e = this.set.length; i < e; ++i) {
-                var line = this.set[i], mk = line.marked;
-                if (!mk || !line.parent) continue;
-                var lineN = lineNo(line);
-                min = Math.min(min, lineN); max = Math.max(max, lineN);
-                for (var j = 0; j < mk.length; ++j)
-                    if (mk[j].set == this.set) mk.splice(j--, 1);
-            }
-            if (min != Infinity)
-                changes.push({from: min, to: max + 1});
-        });
-        TextMarker.prototype.find = function() {
-            var from, to;
-            for (var i = 0, e = this.set.length; i < e; ++i) {
-                var line = this.set[i], mk = line.marked;
-                for (var j = 0; j < mk.length; ++j) {
-                    var mark = mk[j];
-                    if (mark.set == this.set) {
-                        if (mark.from != null || mark.to != null) {
-                            var found = lineNo(line);
-                            if (found != null) {
-                                if (mark.from != null) from = {line: found, ch: mark.from};
-                                if (mark.to != null) to = {line: found, ch: mark.to};
-                            }
-                        }
-                    }
-                }
-            }
-            return {from: from, to: to};
-        };
-
-        function markText(from, to, className) {
-            from = clipPos(from); to = clipPos(to);
-            var tm = new TextMarker();
-            function add(line, from, to, className) {
-                getLine(line).addMark(new MarkedText(from, to, className, tm.set));
-            }
-            if (from.line == to.line) add(from.line, from.ch, to.ch, className);
-            else {
-                add(from.line, from.ch, null, className);
-                for (var i = from.line + 1, e = to.line; i < e; ++i)
-                    add(i, null, null, className);
-                add(to.line, null, to.ch, className);
-            }
-            changes.push({from: from.line, to: to.line + 1});
-            return tm;
-        }
-
-        function setBookmark(pos) {
-            pos = clipPos(pos);
-            var bm = new Bookmark(pos.ch);
-            getLine(pos.line).addMark(bm);
-            return bm;
-        }
-
-        function addGutterMarker(line, text, className) {
-            if (typeof line == "number") line = getLine(clipLine(line));
-            line.gutterMarker = {text: text, style: className};
-            gutterDirty = true;
-            return line;
-        }
-        function removeGutterMarker(line) {
-            if (typeof line == "number") line = getLine(clipLine(line));
-            line.gutterMarker = null;
-            gutterDirty = true;
-        }
-
-        function changeLine(handle, op) {
-            var no = handle, line = handle;
-            if (typeof handle == "number") line = getLine(clipLine(handle));
-            else no = lineNo(handle);
-            if (no == null) return null;
-            if (op(line, no)) changes.push({from: no, to: no + 1});
-            else return null;
-            return line;
-        }
-        function setLineClass(handle, className) {
-            return changeLine(handle, function(line) {
-                if (line.className != className) {
-                    line.className = className;
-                    return true;
-                }
-            });
-        }
-        function setLineHidden(handle, hidden) {
-            return changeLine(handle, function(line, no) {
-                if (line.hidden != hidden) {
-                    line.hidden = hidden;
-                    updateLineHeight(line, hidden ? 0 : 1);
-                    if (hidden && (sel.from.line == no || sel.to.line == no))
-                        setSelection(skipHidden(sel.from, sel.from.line, sel.from.ch),
-                            skipHidden(sel.to, sel.to.line, sel.to.ch));
-                    return (gutterDirty = true);
-                }
-            });
-        }
-
-        function lineInfo(line) {
-            if (typeof line == "number") {
-                if (!isLine(line)) return null;
-                var n = line;
-                line = getLine(line);
-                if (!line) return null;
-            }
-            else {
-                var n = lineNo(line);
-                if (n == null) return null;
-            }
-            var marker = line.gutterMarker;
-            return {line: n, handle: line, text: line.text, markerText: marker && marker.text,
-                markerClass: marker && marker.style, lineClass: line.className};
-        }
-
-        function stringWidth(str) {
-            measure.innerHTML = "<pre><span>x</span></pre>";
-            measure.firstChild.firstChild.firstChild.nodeValue = str;
-            return measure.firstChild.firstChild.offsetWidth || 10;
-        }
-        // These are used to go from pixel positions to character
-        // positions, taking varying character widths into account.
-        function charFromX(line, x) {
-            if (x <= 0) return 0;
-            var lineObj = getLine(line), text = lineObj.text;
-            function getX(len) {
-                measure.innerHTML = "<pre><span>" + lineObj.getHTML(null, null, false, tabText, len) + "</span></pre>";
-                return measure.firstChild.firstChild.offsetWidth;
-            }
-            var from = 0, fromX = 0, to = text.length, toX;
-            // Guess a suitable upper bound for our search.
-            var estimated = Math.min(to, Math.ceil(x / charWidth()));
-            for (;;) {
-                var estX = getX(estimated);
-                if (estX <= x && estimated < to) estimated = Math.min(to, Math.ceil(estimated * 1.2));
-                else {toX = estX; to = estimated; break;}
-            }
-            if (x > toX) return to;
-            // Try to guess a suitable lower bound as well.
-            estimated = Math.floor(to * 0.8); estX = getX(estimated);
-            if (estX < x) {from = estimated; fromX = estX;}
-            // Do a binary search between these bounds.
-            for (;;) {
-                if (to - from <= 1) return (toX - x > x - fromX) ? from : to;
-                var middle = Math.ceil((from + to) / 2), middleX = getX(middle);
-                if (middleX > x) {to = middle; toX = middleX;}
-                else {from = middle; fromX = middleX;}
-            }
-        }
-
-        var tempId = Math.floor(Math.random() * 0xffffff).toString(16);
-        function measureLine(line, ch) {
-            var extra = "";
-            // Include extra text at the end to make sure the measured line is wrapped in the right way.
-            if (options.lineWrapping) {
-                var end = line.text.indexOf(" ", ch + 2);
-                extra = htmlEscape(line.text.slice(ch + 1, end < 0 ? line.text.length : end + (ie ? 5 : 0)));
-            }
-            measure.innerHTML = "<pre>" + line.getHTML(null, null, false, tabText, ch) +
-                '<span id="CodeMirror-temp-' + tempId + '">' + htmlEscape(line.text.charAt(ch) || " ") + "</span>" +
-                extra + "</pre>";
-            var elt = document.getElementById("CodeMirror-temp-" + tempId);
-            var top = elt.offsetTop, left = elt.offsetLeft;
-            // Older IEs report zero offsets for spans directly after a wrap
-            if (ie && ch && top == 0 && left == 0) {
-                var backup = document.createElement("span");
-                backup.innerHTML = "x";
-                elt.parentNode.insertBefore(backup, elt.nextSibling);
-                top = backup.offsetTop;
-            }
-            return {top: top, left: left};
-        }
-        function localCoords(pos, inLineWrap) {
-            var x, lh = textHeight(), y = lh * (heightAtLine(doc, pos.line) - (inLineWrap ? displayOffset : 0));
-            if (pos.ch == 0) x = 0;
-            else {
-                var sp = measureLine(getLine(pos.line), pos.ch);
-                x = sp.left;
-                if (options.lineWrapping) y += Math.max(0, sp.top);
-            }
-            return {x: x, y: y, yBot: y + lh};
-        }
-        // Coords must be lineSpace-local
-        function coordsChar(x, y) {
-            if (y < 0) y = 0;
-            var th = textHeight(), cw = charWidth(), heightPos = displayOffset + Math.floor(y / th);
-            var lineNo = lineAtHeight(doc, heightPos);
-            if (lineNo >= doc.size) return {line: doc.size - 1, ch: getLine(doc.size - 1).text.length};
-            var lineObj = getLine(lineNo), text = lineObj.text;
-            var tw = options.lineWrapping, innerOff = tw ? heightPos - heightAtLine(doc, lineNo) : 0;
-            if (x <= 0 && innerOff == 0) return {line: lineNo, ch: 0};
-            function getX(len) {
-                var sp = measureLine(lineObj, len);
-                if (tw) {
-                    var off = Math.round(sp.top / th);
-                    return Math.max(0, sp.left + (off - innerOff) * scroller.clientWidth);
-                }
-                return sp.left;
-            }
-            var from = 0, fromX = 0, to = text.length, toX;
-            // Guess a suitable upper bound for our search.
-            var estimated = Math.min(to, Math.ceil((x + innerOff * scroller.clientWidth * .9) / cw));
-            for (;;) {
-                var estX = getX(estimated);
-                if (estX <= x && estimated < to) estimated = Math.min(to, Math.ceil(estimated * 1.2));
-                else {toX = estX; to = estimated; break;}
-            }
-            if (x > toX) return {line: lineNo, ch: to};
-            // Try to guess a suitable lower bound as well.
-            estimated = Math.floor(to * 0.8); estX = getX(estimated);
-            if (estX < x) {from = estimated; fromX = estX;}
-            // Do a binary search between these bounds.
-            for (;;) {
-                if (to - from <= 1) return {line: lineNo, ch: (toX - x > x - fromX) ? from : to};
-                var middle = Math.ceil((from + to) / 2), middleX = getX(middle);
-                if (middleX > x) {to = middle; toX = middleX;}
-                else {from = middle; fromX = middleX;}
-            }
-        }
-        function pageCoords(pos) {
-            var local = localCoords(pos, true), off = eltOffset(lineSpace);
-            return {x: off.left + local.x, y: off.top + local.y, yBot: off.top + local.yBot};
-        }
-
-        var cachedHeight, cachedHeightFor, measureText;
-        function textHeight() {
-            if (measureText == null) {
-                measureText = "<pre>";
-                for (var i = 0; i < 49; ++i) measureText += "x<br/>";
-                measureText += "x</pre>";
-            }
-            var offsetHeight = lineDiv.clientHeight;
-            if (offsetHeight == cachedHeightFor) return cachedHeight;
-            cachedHeightFor = offsetHeight;
-            measure.innerHTML = measureText;
-            cachedHeight = measure.firstChild.offsetHeight / 50 || 1;
-            measure.innerHTML = "";
-            return cachedHeight;
-        }
-        var cachedWidth, cachedWidthFor = 0;
-        function charWidth() {
-            if (scroller.clientWidth == cachedWidthFor) return cachedWidth;
-            cachedWidthFor = scroller.clientWidth;
-            return (cachedWidth = stringWidth("x"));
-        }
-        function paddingTop() {return lineSpace.offsetTop;}
-        function paddingLeft() {return lineSpace.offsetLeft;}
-
-        function posFromMouse(e, liberal) {
-            var offW = eltOffset(scroller, true), x, y;
-            // Fails unpredictably on IE[67] when mouse is dragged around quickly.
-            try { x = e.clientX; y = e.clientY; } catch (e) { return null; }
-            // This is a mess of a heuristic to try and determine whether a
-            // scroll-bar was clicked or not, and to return null if one was
-            // (and !liberal).
-            if (!liberal && (x - offW.left > scroller.clientWidth || y - offW.top > scroller.clientHeight))
-                return null;
-            var offL = eltOffset(lineSpace, true);
-            return coordsChar(x - offL.left, y - offL.top);
-        }
-        function onContextMenu(e) {
-            var pos = posFromMouse(e);
-            if (!pos || window.opera) return; // Opera is difficult.
-            if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to))
-                operation(setCursor)(pos.line, pos.ch);
-
-            var oldCSS = input.style.cssText;
-            inputDiv.style.position = "absolute";
-            input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) +
-                "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: white; " +
-                "border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
-            leaveInputAlone = true;
-            var val = input.value = getSelection();
-            focusInput();
-            input.select();
-            function rehide() {
-                var newVal = splitLines(input.value).join("\n");
-                if (newVal != val) operation(replaceSelection)(newVal, "end");
-                inputDiv.style.position = "relative";
-                input.style.cssText = oldCSS;
-                leaveInputAlone = false;
-                resetInput(true);
-                slowPoll();
-            }
-
-            if (gecko) {
-                e_stop(e);
-                var mouseup = connect(window, "mouseup", function() {
-                    mouseup();
-                    setTimeout(rehide, 20);
-                }, true);
-            }
-            else {
-                setTimeout(rehide, 50);
-            }
-        }
-
-        // Cursor-blinking
-        function restartBlink() {
-            clearInterval(blinker);
-            var on = true;
-            cursor.style.visibility = "";
-            blinker = setInterval(function() {
-                cursor.style.visibility = (on = !on) ? "" : "hidden";
-            }, 650);
-        }
-
-        var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"};
-        function matchBrackets(autoclear) {
-            var head = sel.inverted ? sel.from : sel.to, line = getLine(head.line), pos = head.ch - 1;
-            var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)];
-            if (!match) return;
-            var ch = match.charAt(0), forward = match.charAt(1) == ">", d = forward ? 1 : -1, st = line.styles;
-            for (var off = pos + 1, i = 0, e = st.length; i < e; i+=2)
-                if ((off -= st[i].length) <= 0) {var style = st[i+1]; break;}
-
-            var stack = [line.text.charAt(pos)], re = /[(){}[\]]/;
-            function scan(line, from, to) {
-                if (!line.text) return;
-                var st = line.styles, pos = forward ? 0 : line.text.length - 1, cur;
-                for (var i = forward ? 0 : st.length - 2, e = forward ? st.length : -2; i != e; i += 2*d) {
-                    var text = st[i];
-                    if (st[i+1] != null && st[i+1] != style) {pos += d * text.length; continue;}
-                    for (var j = forward ? 0 : text.length - 1, te = forward ? text.length : -1; j != te; j += d, pos+=d) {
-                        if (pos >= from && pos < to && re.test(cur = text.charAt(j))) {
-                            var match = matching[cur];
-                            if (match.charAt(1) == ">" == forward) stack.push(cur);
-                            else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false};
-                            else if (!stack.length) return {pos: pos, match: true};
-                        }
-                    }
-                }
-            }
-            for (var i = head.line, e = forward ? Math.min(i + 100, doc.size) : Math.max(-1, i - 100); i != e; i+=d) {
-                var line = getLine(i), first = i == head.line;
-                var found = scan(line, first && forward ? pos + 1 : 0, first && !forward ? pos : line.text.length);
-                if (found) break;
-            }
-            if (!found) found = {pos: null, match: false};
-            var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket";
-            var one = markText({line: head.line, ch: pos}, {line: head.line, ch: pos+1}, style),
-                two = found.pos != null && markText({line: i, ch: found.pos}, {line: i, ch: found.pos + 1}, style);
-            var clear = operation(function(){one.clear(); two && two.clear();});
-            if (autoclear) setTimeout(clear, 800);
-            else bracketHighlighted = clear;
-        }
-
-        // Finds the line to start with when starting a parse. Tries to
-        // find a line with a stateAfter, so that it can start with a
-        // valid state. If that fails, it returns the line with the
-        // smallest indentation, which tends to need the least context to
-        // parse correctly.
-        function findStartLine(n) {
-            var minindent, minline;
-            for (var search = n, lim = n - 40; search > lim; --search) {
-                if (search == 0) return 0;
-                var line = getLine(search-1);
-                if (line.stateAfter) return search;
-                var indented = line.indentation(options.tabSize);
-                if (minline == null || minindent > indented) {
-                    minline = search - 1;
-                    minindent = indented;
-                }
-            }
-            return minline;
-        }
-        function getStateBefore(n) {
-            var start = findStartLine(n), state = start && getLine(start-1).stateAfter;
-            if (!state) state = startState(mode);
-            else state = copyState(mode, state);
-            doc.iter(start, n, function(line) {
-                line.highlight(mode, state, options.tabSize);
-                line.stateAfter = copyState(mode, state);
-            });
-            if (start < n) changes.push({from: start, to: n});
-            if (n < doc.size && !getLine(n).stateAfter) work.push(n);
-            return state;
-        }
-        function highlightLines(start, end) {
-            var state = getStateBefore(start);
-            doc.iter(start, end, function(line) {
-                line.highlight(mode, state, options.tabSize);
-                line.stateAfter = copyState(mode, state);
-            });
-        }
-        function highlightWorker() {
-            var end = +new Date + options.workTime;
-            var foundWork = work.length;
-            while (work.length) {
-                if (!getLine(showingFrom).stateAfter) var task = showingFrom;
-                else var task = work.pop();
-                if (task >= doc.size) continue;
-                var start = findStartLine(task), state = start && getLine(start-1).stateAfter;
-                if (state) state = copyState(mode, state);
-                else state = startState(mode);
-
-                var unchanged = 0, compare = mode.compareStates, realChange = false,
-                    i = start, bail = false;
-                doc.iter(i, doc.size, function(line) {
-                    var hadState = line.stateAfter;
-                    if (+new Date > end) {
-                        work.push(i);
-                        startWorker(options.workDelay);
-                        if (realChange) changes.push({from: task, to: i + 1});
-                        return (bail = true);
-                    }
-                    var changed = line.highlight(mode, state, options.tabSize);
-                    if (changed) realChange = true;
-                    line.stateAfter = copyState(mode, state);
-                    if (compare) {
-                        if (hadState && compare(hadState, state)) return true;
-                    } else {
-                        if (changed !== false || !hadState) unchanged = 0;
-                        else if (++unchanged > 3 && (!mode.indent || mode.indent(hadState, "") == mode.indent(state, "")))
-                            return true;
-                    }
-                    ++i;
-                });
-                if (bail) return;
-                if (realChange) changes.push({from: task, to: i + 1});
-            }
-            if (foundWork && options.onHighlightComplete)
-                options.onHighlightComplete(instance);
-        }
-        function startWorker(time) {
-            if (!work.length) return;
-            highlight.set(time, operation(highlightWorker));
-        }
-
-        // Operations are used to wrap changes in such a way that each
-        // change won't have to update the cursor and display (which would
-        // be awkward, slow, and error-prone), but instead updates are
-        // batched and then all combined and executed at once.
-        function startOperation() {
-            updateInput = userSelChange = textChanged = null;
-            changes = []; selectionChanged = false; callbacks = [];
-        }
-        function endOperation() {
-            var reScroll = false, updated;
-            if (selectionChanged) reScroll = !scrollCursorIntoView();
-            if (changes.length) updated = updateDisplay(changes, true);
-            else {
-                if (selectionChanged) updateCursor();
-                if (gutterDirty) updateGutter();
-            }
-            if (reScroll) scrollCursorIntoView();
-            if (selectionChanged) {scrollEditorIntoView(); restartBlink();}
-
-            if (focused && !leaveInputAlone &&
-                (updateInput === true || (updateInput !== false && selectionChanged)))
-                resetInput(userSelChange);
-
-            if (selectionChanged && options.matchBrackets)
-                setTimeout(operation(function() {
-                    if (bracketHighlighted) {bracketHighlighted(); bracketHighlighted = null;}
-                    if (posEq(sel.from, sel.to)) matchBrackets(false);
-                }), 20);
-            var tc = textChanged, cbs = callbacks; // these can be reset by callbacks
-            if (selectionChanged && options.onCursorActivity)
-                options.onCursorActivity(instance);
-            if (tc && options.onChange && instance)
-                options.onChange(instance, tc);
-            for (var i = 0; i < cbs.length; ++i) cbs[i](instance);
-            if (updated && options.onUpdate) options.onUpdate(instance);
-        }
-        var nestedOperation = 0;
-        function operation(f) {
-            return function() {
-                if (!nestedOperation++) startOperation();
-                try {var result = f.apply(this, arguments);}
-                finally {if (!--nestedOperation) endOperation();}
-                return result;
-            };
-        }
-
-        for (var ext in extensions)
-            if (extensions.propertyIsEnumerable(ext) &&
-                !instance.propertyIsEnumerable(ext))
-                instance[ext] = extensions[ext];
-        return instance;
-    } // (end of function CodeMirror)
-
-    // The default configuration options.
-    CodeMirror.defaults = {
-        value: "",
-        mode: null,
-        theme: "default",
-        indentUnit: 2,
-        indentWithTabs: false,
-        tabSize: 4,
-        keyMap: "default",
-        extraKeys: null,
-        electricChars: true,
-        onKeyEvent: null,
-        lineWrapping: false,
-        lineNumbers: false,
-        gutter: false,
-        fixedGutter: false,
-        firstLineNumber: 1,
-        readOnly: false,
-        onChange: null,
-        onCursorActivity: null,
-        onGutterClick: null,
-        onHighlightComplete: null,
-        onUpdate: null,
-        onFocus: null, onBlur: null, onScroll: null,
-        matchBrackets: false,
-        workTime: 100,
-        workDelay: 200,
-        pollInterval: 100,
-        undoDepth: 40,
-        tabindex: null,
-        document: window.document
-    };
-
-    var mac = /Mac/.test(navigator.platform);
-    var win = /Win/.test(navigator.platform);
-
-    // Known modes, by name and by MIME
-    var modes = {}, mimeModes = {};
-    CodeMirror.defineMode = function(name, mode) {
-        if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name;
-        modes[name] = mode;
-    };
-    CodeMirror.defineMIME = function(mime, spec) {
-        mimeModes[mime] = spec;
-    };
-    CodeMirror.getMode = function(options, spec) {
-        if (typeof spec == "string" && mimeModes.hasOwnProperty(spec))
-            spec = mimeModes[spec];
-        if (typeof spec == "string")
-            var mname = spec, config = {};
-        else if (spec != null)
-            var mname = spec.name, config = spec;
-        var mfactory = modes[mname];
-        if (!mfactory) {
-            if (window.console) console.warn("No mode " + mname + " found, falling back to plain text.");
-            return CodeMirror.getMode(options, "text/plain");
-        }
-        return mfactory(options, config || {});
-    };
-    CodeMirror.listModes = function() {
-        var list = [];
-        for (var m in modes)
-            if (modes.propertyIsEnumerable(m)) list.push(m);
-        return list;
-    };
-    CodeMirror.listMIMEs = function() {
-        var list = [];
-        for (var m in mimeModes)
-            if (mimeModes.propertyIsEnumerable(m)) list.push({mime: m, mode: mimeModes[m]});
-        return list;
-    };
-
-    var extensions = CodeMirror.extensions = {};
-    CodeMirror.defineExtension = function(name, func) {
-        extensions[name] = func;
-    };
-
-    var commands = CodeMirror.commands = {
-        selectAll: function(cm) {cm.setSelection({line: 0, ch: 0}, {line: cm.lineCount() - 1});},
-        killLine: function(cm) {
-            var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to);
-            if (!sel && cm.getLine(from.line).length == from.ch) cm.replaceRange("", from, {line: from.line + 1, ch: 0});
-            else cm.replaceRange("", from, sel ? to : {line: from.line});
-        },
-        deleteLine: function(cm) {var l = cm.getCursor().line; cm.replaceRange("", {line: l, ch: 0}, {line: l});},
-        undo: function(cm) {cm.undo();},
-        redo: function(cm) {cm.redo();},
-        goDocStart: function(cm) {cm.setCursor(0, 0, true);},
-        goDocEnd: function(cm) {cm.setSelection({line: cm.lineCount() - 1}, null, true);},
-        goLineStart: function(cm) {cm.setCursor(cm.getCursor().line, 0, true);},
-        goLineStartSmart: function(cm) {
-            var cur = cm.getCursor();
-            var text = cm.getLine(cur.line), firstNonWS = Math.max(0, text.search(/\S/));
-            cm.setCursor(cur.line, cur.ch <= firstNonWS && cur.ch ? 0 : firstNonWS, true);
-        },
-        goLineEnd: function(cm) {cm.setSelection({line: cm.getCursor().line}, null, true);},
-        goLineUp: function(cm) {cm.moveV(-1, "line");},
-        goLineDown: function(cm) {cm.moveV(1, "line");},
-        goPageUp: function(cm) {cm.moveV(-1, "page");},
-        goPageDown: function(cm) {cm.moveV(1, "page");},
-        goCharLeft: function(cm) {cm.moveH(-1, "char");},
-        goCharRight: function(cm) {cm.moveH(1, "char");},
-        goColumnLeft: function(cm) {cm.moveH(-1, "column");},
-        goColumnRight: function(cm) {cm.moveH(1, "column");},
-        goWordLeft: function(cm) {cm.moveH(-1, "word");},
-        goWordRight: function(cm) {cm.moveH(1, "word");},
-        delCharLeft: function(cm) {cm.deleteH(-1, "char");},
-        delCharRight: function(cm) {cm.deleteH(1, "char");},
-        delWordLeft: function(cm) {cm.deleteH(-1, "word");},
-        delWordRight: function(cm) {cm.deleteH(1, "word");},
-        indentAuto: function(cm) {cm.indentSelection("smart");},
-        indentMore: function(cm) {cm.indentSelection("add");},
-        indentLess: function(cm) {cm.indentSelection("subtract");},
-        insertTab: function(cm) {cm.replaceSelection("\t", "end");},
-        transposeChars: function(cm) {
-            var cur = cm.getCursor(), line = cm.getLine(cur.line);
-            if (cur.ch > 0 && cur.ch < line.length - 1)
-                cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1),
-                    {line: cur.line, ch: cur.ch - 1}, {line: cur.line, ch: cur.ch + 1});
-        },
-        newlineAndIndent: function(cm) {
-            cm.replaceSelection("\n", "end");
-            cm.indentLine(cm.getCursor().line);
-        },
-        toggleOverwrite: function(cm) {cm.toggleOverwrite();}
-    };
-
-    var keyMap = CodeMirror.keyMap = {};
-    keyMap.basic = {
-        "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
-        "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
-        "Delete": "delCharRight", "Backspace": "delCharLeft", "Tab": "indentMore", "Shift-Tab": "indentLess",
-        "Enter": "newlineAndIndent", "Insert": "toggleOverwrite"
-    };
-    // Note that the save and find-related commands aren't defined by
-    // default. Unknown commands are simply ignored.
-    keyMap.pcDefault = {
-        "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo",
-        "Ctrl-Home": "goDocStart", "Alt-Up": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Down": "goDocEnd",
-        "Ctrl-Left": "goWordLeft", "Ctrl-Right": "goWordRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd",
-        "Ctrl-Backspace": "delWordLeft", "Ctrl-Delete": "delWordRight", "Ctrl-S": "save", "Ctrl-F": "find",
-        "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
-        fallthrough: "basic"
-    };
-    keyMap.macDefault = {
-        "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
-        "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goWordLeft",
-        "Alt-Right": "goWordRight", "Cmd-Left": "goLineStart", "Cmd-Right": "goLineEnd", "Alt-Backspace": "delWordLeft",
-        "Ctrl-Alt-Backspace": "delWordRight", "Alt-Delete": "delWordRight", "Cmd-S": "save", "Cmd-F": "find",
-        "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
-        fallthrough: ["basic", "emacsy"]
-    };
-    keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
-    keyMap.emacsy = {
-        "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
-        "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
-        "Ctrl-V": "goPageUp", "Shift-Ctrl-V": "goPageDown", "Ctrl-D": "delCharRight", "Ctrl-H": "delCharLeft",
-        "Alt-D": "delWordRight", "Alt-Backspace": "delWordLeft", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars"
-    };
-
-    function lookupKey(name, extraMap, map) {
-        function lookup(name, map, ft) {
-            var found = map[name];
-            if (found != null) return found;
-            if (ft == null) ft = map.fallthrough;
-            if (ft == null) return map.catchall;
-            if (typeof ft == "string") return lookup(name, keyMap[ft]);
-            for (var i = 0, e = ft.length; i < e; ++i) {
-                found = lookup(name, keyMap[ft[i]]);
-                if (found != null) return found;
-            }
-            return null;
-        }
-        return extraMap ? lookup(name, extraMap, map) : lookup(name, keyMap[map]);
-    }
-    function isModifierKey(event) {
-        var name = keyNames[event.keyCode];
-        return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod";
-    }
-
-    CodeMirror.fromTextArea = function(textarea, options) {
-        if (!options) options = {};
-        options.value = textarea.value;
-        if (!options.tabindex && textarea.tabindex)
-            options.tabindex = textarea.tabindex;
-
-        function save() {textarea.value = instance.getValue();}
-        if (textarea.form) {
-            // Deplorable hack to make the submit method do the right thing.
-            var rmSubmit = connect(textarea.form, "submit", save, true);
-            if (typeof textarea.form.submit == "function") {
-                var realSubmit = textarea.form.submit;
-                function wrappedSubmit() {
-                    save();
-                    textarea.form.submit = realSubmit;
-                    textarea.form.submit();
-                    textarea.form.submit = wrappedSubmit;
-                }
-                textarea.form.submit = wrappedSubmit;
-            }
-        }
-
-        textarea.style.display = "none";
-        var instance = CodeMirror(function(node) {
-            textarea.parentNode.insertBefore(node, textarea.nextSibling);
-        }, options);
-        instance.save = save;
-        instance.getTextArea = function() { return textarea; };
-        instance.toTextArea = function() {
-            save();
-            textarea.parentNode.removeChild(instance.getWrapperElement());
-            textarea.style.display = "";
-            if (textarea.form) {
-                rmSubmit();
-                if (typeof textarea.form.submit == "function")
-                    textarea.form.submit = realSubmit;
-            }
-        };
-        return instance;
-    };
-
-    // Utility functions for working with state. Exported because modes
-    // sometimes need to do this.
-    function copyState(mode, state) {
-        if (state === true) return state;
-        if (mode.copyState) return mode.copyState(state);
-        var nstate = {};
-        for (var n in state) {
-            var val = state[n];
-            if (val instanceof Array) val = val.concat([]);
-            nstate[n] = val;
-        }
-        return nstate;
-    }
-    CodeMirror.copyState = copyState;
-    function startState(mode, a1, a2) {
-        return mode.startState ? mode.startState(a1, a2) : true;
-    }
-    CodeMirror.startState = startState;
-
-    // The character stream used by a mode's parser.
-    function StringStream(string, tabSize) {
-        this.pos = this.start = 0;
-        this.string = string;
-        this.tabSize = tabSize || 8;
-    }
-    StringStream.prototype = {
-        eol: function() {return this.pos >= this.string.length;},
-        sol: function() {return this.pos == 0;},
-        peek: function() {return this.string.charAt(this.pos);},
-        next: function() {
-            if (this.pos < this.string.length)
-                return this.string.charAt(this.pos++);
-        },
-        eat: function(match) {
-            var ch = this.string.charAt(this.pos);
-            if (typeof match == "string") var ok = ch == match;
-            else var ok = ch && (match.test ? match.test(ch) : match(ch));
-            if (ok) {++this.pos; return ch;}
-        },
-        eatWhile: function(match) {
-            var start = this.pos;
-            while (this.eat(match)){}
-            return this.pos > start;
-        },
-        eatSpace: function() {
-            var start = this.pos;
-            while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
-            return this.pos > start;
-        },
-        skipToEnd: function() {this.pos = this.string.length;},
-        skipTo: function(ch) {
-            var found = this.string.indexOf(ch, this.pos);
-            if (found > -1) {this.pos = found; return true;}
-        },
-        backUp: function(n) {this.pos -= n;},
-        column: function() {return countColumn(this.string, this.start, this.tabSize);},
-        indentation: function() {return countColumn(this.string, null, this.tabSize);},
-        match: function(pattern, consume, caseInsensitive) {
-            if (typeof pattern == "string") {
-                function cased(str) {return caseInsensitive ? str.toLowerCase() : str;}
-                if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) {
-                    if (consume !== false) this.pos += pattern.length;
-                    return true;
-                }
-            }
-            else {
-                var match = this.string.slice(this.pos).match(pattern);
-                if (match && consume !== false) this.pos += match[0].length;
-                return match;
-            }
-        },
-        current: function(){return this.string.slice(this.start, this.pos);}
-    };
-    CodeMirror.StringStream = StringStream;
-
-    function MarkedText(from, to, className, set) {
-        this.from = from; this.to = to; this.style = className; this.set = set;
-    }
-    MarkedText.prototype = {
-        attach: function(line) { this.set.push(line); },
-        detach: function(line) {
-            var ix = indexOf(this.set, line);
-            if (ix > -1) this.set.splice(ix, 1);
-        },
-        split: function(pos, lenBefore) {
-            if (this.to <= pos && this.to != null) return null;
-            var from = this.from < pos || this.from == null ? null : this.from - pos + lenBefore;
-            var to = this.to == null ? null : this.to - pos + lenBefore;
-            return new MarkedText(from, to, this.style, this.set);
-        },
-        dup: function() { return new MarkedText(null, null, this.style, this.set); },
-        clipTo: function(fromOpen, from, toOpen, to, diff) {
-            if (this.from != null && this.from >= from)
-                this.from = Math.max(to, this.from) + diff;
-            if (this.to != null && this.to > from)
-                this.to = to < this.to ? this.to + diff : from;
-            if (fromOpen && to > this.from && (to < this.to || this.to == null))
-                this.from = null;
-            if (toOpen && (from < this.to || this.to == null) && (from > this.from || this.from == null))
-                this.to = null;
-        },
-        isDead: function() { return this.from != null && this.to != null && this.from >= this.to; },
-        sameSet: function(x) { return this.set == x.set; }
-    };
-
-    function Bookmark(pos) {
-        this.from = pos; this.to = pos; this.line = null;
-    }
-    Bookmark.prototype = {
-        attach: function(line) { this.line = line; },
-        detach: function(line) { if (this.line == line) this.line = null; },
-        split: function(pos, lenBefore) {
-            if (pos < this.from) {
-                this.from = this.to = (this.from - pos) + lenBefore;
-                return this;
-            }
-        },
-        isDead: function() { return this.from > this.to; },
-        clipTo: function(fromOpen, from, toOpen, to, diff) {
-            if ((fromOpen || from < this.from) && (toOpen || to > this.to)) {
-                this.from = 0; this.to = -1;
-            } else if (this.from > from) {
-                this.from = this.to = Math.max(to, this.from) + diff;
-            }
-        },
-        sameSet: function(x) { return false; },
-        find: function() {
-            if (!this.line || !this.line.parent) return null;
-            return {line: lineNo(this.line), ch: this.from};
-        },
-        clear: function() {
-            if (this.line) {
-                var found = indexOf(this.line.marked, this);
-                if (found != -1) this.line.marked.splice(found, 1);
-                this.line = null;
-            }
-        }
-    };
-
-    // Line objects. These hold state related to a line, including
-    // highlighting info (the styles array).
-    function Line(text, styles) {
-        this.styles = styles || [text, null];
-        this.text = text;
-        this.height = 1;
-        this.marked = this.gutterMarker = this.className = this.handlers = null;
-        this.stateAfter = this.parent = this.hidden = null;
-    }
-    Line.inheritMarks = function(text, orig) {
-        var ln = new Line(text), mk = orig && orig.marked;
-        if (mk) {
-            for (var i = 0; i < mk.length; ++i) {
-                if (mk[i].to == null && mk[i].style) {
-                    var newmk = ln.marked || (ln.marked = []), mark = mk[i];
-                    var nmark = mark.dup(); newmk.push(nmark); nmark.attach(ln);
-                }
-            }
-        }
-        return ln;
-    }
-    Line.prototype = {
-        // Replace a piece of a line, keeping the styles around it intact.
-        replace: function(from, to_, text) {
-            var st = [], mk = this.marked, to = to_ == null ? this.text.length : to_;
-            copyStyles(0, from, this.styles, st);
-            if (text) st.push(text, null);
-            copyStyles(to, this.text.length, this.styles, st);
-            this.styles = st;
-            this.text = this.text.slice(0, from) + text + this.text.slice(to);
-            this.stateAfter = null;
-            if (mk) {
-                var diff = text.length - (to - from);
-                for (var i = 0, mark = mk[i]; i < mk.length; ++i) {
-                    mark.clipTo(from == null, from || 0, to_ == null, to, diff);
-                    if (mark.isDead()) {mark.detach(this); mk.splice(i--, 1);}
-                }
-            }
-        },
-        // Split a part off a line, keeping styles and markers intact.
-        split: function(pos, textBefore) {
-            var st = [textBefore, null], mk = this.marked;
-            copyStyles(pos, this.text.length, this.styles, st);
-            var taken = new Line(textBefore + this.text.slice(pos), st);
-            if (mk) {
-                for (var i = 0; i < mk.length; ++i) {
-                    var mark = mk[i];
-                    var newmark = mark.split(pos, textBefore.length);
-                    if (newmark) {
-                        if (!taken.marked) taken.marked = [];
-                        taken.marked.push(newmark); newmark.attach(taken);
-                    }
-                }
-            }
-            return taken;
-        },
-        append: function(line) {
-            var mylen = this.text.length, mk = line.marked, mymk = this.marked;
-            this.text += line.text;
-            copyStyles(0, line.text.length, line.styles, this.styles);
-            if (mymk) {
-                for (var i = 0; i < mymk.length; ++i)
-                    if (mymk[i].to == null) mymk[i].to = mylen;
-            }
-            if (mk && mk.length) {
-                if (!mymk) this.marked = mymk = [];
-                outer: for (var i = 0; i < mk.length; ++i) {
-                    var mark = mk[i];
-                    if (!mark.from) {
-                        for (var j = 0; j < mymk.length; ++j) {
-                            var mymark = mymk[j];
-                            if (mymark.to == mylen && mymark.sameSet(mark)) {
-                                mymark.to = mark.to == null ? null : mark.to + mylen;
-                                if (mymark.isDead()) {
-                                    mymark.detach(this);
-                                    mk.splice(i--, 1);
-                                }
-                                continue outer;
-                            }
-                        }
-                    }
-                    mymk.push(mark);
-                    mark.attach(this);
-                    mark.from += mylen;
-                    if (mark.to != null) mark.to += mylen;
-                }
-            }
-        },
-        fixMarkEnds: function(other) {
-            var mk = this.marked, omk = other.marked;
-            if (!mk) return;
-            for (var i = 0; i < mk.length; ++i) {
-                var mark = mk[i], close = mark.to == null;
-                if (close && omk) {
-                    for (var j = 0; j < omk.length; ++j)
-                        if (omk[j].sameSet(mark)) {close = false; break;}
-                }
-                if (close) mark.to = this.text.length;
-            }
-        },
-        fixMarkStarts: function() {
-            var mk = this.marked;
-            if (!mk) return;
-            for (var i = 0; i < mk.length; ++i)
-                if (mk[i].from == null) mk[i].from = 0;
-        },
-        addMark: function(mark) {
-            mark.attach(this);
-            if (this.marked == null) this.marked = [];
-            this.marked.push(mark);
-            this.marked.sort(function(a, b){return (a.from || 0) - (b.from || 0);});
-        },
-        // Run the given mode's parser over a line, update the styles
-        // array, which contains alternating fragments of text and CSS
-        // classes.
-        highlight: function(mode, state, tabSize) {
-            var stream = new StringStream(this.text, tabSize), st = this.styles, pos = 0;
-            var changed = false, curWord = st[0], prevWord;
-            if (this.text == "" && mode.blankLine) mode.blankLine(state);
-            while (!stream.eol()) {
-                var style = mode.token(stream, state);
-                var substr = this.text.slice(stream.start, stream.pos);
-                stream.start = stream.pos;
-                if (pos && st[pos-1] == style)
-                    st[pos-2] += substr;
-                else if (substr) {
-                    if (!changed && (st[pos+1] != style || (pos && st[pos-2] != prevWord))) changed = true;
-                    st[pos++] = substr; st[pos++] = style;
-                    prevWord = curWord; curWord = st[pos];
-                }
-                // Give up when line is ridiculously long
-                if (stream.pos > 5000) {
-                    st[pos++] = this.text.slice(stream.pos); st[pos++] = null;
-                    break;
-                }
-            }
-            if (st.length != pos) {st.length = pos; changed = true;}
-            if (pos && st[pos-2] != prevWord) changed = true;
-            // Short lines with simple highlights return null, and are
-            // counted as changed by the driver because they are likely to
-            // highlight the same way in various contexts.
-            return changed || (st.length < 5 && this.text.length < 10 ? null : false);
-        },
-        // Fetch the parser token for a given character. Useful for hacks
-        // that want to inspect the mode state (say, for completion).
-        getTokenAt: function(mode, state, ch) {
-            var txt = this.text, stream = new StringStream(txt);
-            while (stream.pos < ch && !stream.eol()) {
-                stream.start = stream.pos;
-                var style = mode.token(stream, state);
-            }
-            return {start: stream.start,
-                end: stream.pos,
-                string: stream.current(),
-                className: style || null,
-                state: state};
-        },
-        indentation: function(tabSize) {return countColumn(this.text, null, tabSize);},
-        // Produces an HTML fragment for the line, taking selection,
-        // marking, and highlighting into account.
-        getHTML: function(sfrom, sto, includePre, tabText, endAt) {
-            var html = [], first = true;
-            if (includePre)
-                html.push(this.className ? '<pre class="' + this.className + '">': "<pre>");
-            function span(text, style) {
-                if (!text) return;
-                // Work around a bug where, in some compat modes, IE ignores leading spaces
-                if (first && ie && text.charAt(0) == " ") text = "\u00a0" + text.slice(1);
-                first = false;
-                if (style) html.push('<span class="', style, '">', htmlEscape(text).replace(/\t/g, tabText), "</span>");
-                else html.push(htmlEscape(text).replace(/\t/g, tabText));
-            }
-            var st = this.styles, allText = this.text, marked = this.marked;
-            if (sfrom == sto) sfrom = null;
-            var len = allText.length;
-            if (endAt != null) len = Math.min(endAt, len);
-
-            if (!allText && endAt == null)
-                span(" ", sfrom != null && sto == null ? "CodeMirror-selected" : null);
-            else if (!marked && sfrom == null)
-                for (var i = 0, ch = 0; ch < len; i+=2) {
-                    var str = st[i], style = st[i+1], l = str.length;
-                    if (ch + l > len) str = str.slice(0, len - ch);
-                    ch += l;
-                    span(str, style && "cm-" + style);
-                }
-            else {
-                var pos = 0, i = 0, text = "", style, sg = 0;
-                var markpos = -1, mark = null;
-                function nextMark() {
-                    if (marked) {
-                        markpos += 1;
-                        mark = (markpos < marked.length) ? marked[markpos] : null;
-                    }
-                }
-                nextMark();
-                while (pos < len) {
-                    var upto = len;
-                    var extraStyle = "";
-                    if (sfrom != null) {
-                        if (sfrom > pos) upto = sfrom;
-                        else if (sto == null || sto > pos) {
-                            extraStyle = " CodeMirror-selected";
-                            if (sto != null) upto = Math.min(upto, sto);
-                        }
-                    }
-                    while (mark && mark.to != null && mark.to <= pos) nextMark();
-                    if (mark) {
-                        if (mark.from > pos) upto = Math.min(upto, mark.from);
-                        else {
-                            extraStyle += " " + mark.style;
-                            if (mark.to != null) upto = Math.min(upto, mark.to);
-                        }
-                    }
-                    for (;;) {
-                        var end = pos + text.length;
-                        var appliedStyle = style;
-                        if (extraStyle) appliedStyle = style ? style + extraStyle : extraStyle;
-                        span(end > upto ? text.slice(0, upto - pos) : text, appliedStyle);
-                        if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
-                        pos = end;
-                        text = st[i++]; style = "cm-" + st[i++];
-                    }
-                }
-                if (sfrom != null && sto == null) span(" ", "CodeMirror-selected");
-            }
-            if (includePre) html.push("</pre>");
-            return html.join("");
-        },
-        cleanUp: function() {
-            this.parent = null;
-            if (this.marked)
-                for (var i = 0, e = this.marked.length; i < e; ++i) this.marked[i].detach(this);
-        }
-    };
-    // Utility used by replace and split above
-    function copyStyles(from, to, source, dest) {
-        for (var i = 0, pos = 0, state = 0; pos < to; i+=2) {
-            var part = source[i], end = pos + part.length;
-            if (state == 0) {
-                if (end > from) dest.push(part.slice(from - pos, Math.min(part.length, to - pos)), source[i+1]);
-                if (end >= from) state = 1;
-            }
-            else if (state == 1) {
-                if (end > to) dest.push(part.slice(0, to - pos), source[i+1]);
-                else dest.push(part, source[i+1]);
-            }
-            pos = end;
-        }
-    }
-
-    // Data structure that holds the sequence of lines.
-    function LeafChunk(lines) {
-        this.lines = lines;
-        this.parent = null;
-        for (var i = 0, e = lines.length, height = 0; i < e; ++i) {
-            lines[i].parent = this;
-            height += lines[i].height;
-        }
-        this.height = height;
-    }
-    LeafChunk.prototype = {
-        chunkSize: function() { return this.lines.length; },
-        remove: function(at, n, callbacks) {
-            for (var i = at, e = at + n; i < e; ++i) {
-                var line = this.lines[i];
-                this.height -= line.height;
-                line.cleanUp();
-                if (line.handlers)
-                    for (var j = 0; j < line.handlers.length; ++j) callbacks.push(line.handlers[j]);
-            }
-            this.lines.splice(at, n);
-        },
-        collapse: function(lines) {
-            lines.splice.apply(lines, [lines.length, 0].concat(this.lines));
-        },
-        insertHeight: function(at, lines, height) {
-            this.height += height;
-            this.lines.splice.apply(this.lines, [at, 0].concat(lines));
-            for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this;
-        },
-        iterN: function(at, n, op) {
-            for (var e = at + n; at < e; ++at)
-                if (op(this.lines[at])) return true;
-        }
-    };
-    function BranchChunk(children) {
-        this.children = children;
-        var size = 0, height = 0;
-        for (var i = 0, e = children.length; i < e; ++i) {
-            var ch = children[i];
-            size += ch.chunkSize(); height += ch.height;
-            ch.parent = this;
-        }
-        this.size = size;
-        this.height = height;
-        this.parent = null;
-    }
-    BranchChunk.prototype = {
-        chunkSize: function() { return this.size; },
-        remove: function(at, n, callbacks) {
-            this.size -= n;
-            for (var i = 0; i < this.children.length; ++i) {
-                var child = this.children[i], sz = child.chunkSize();
-                if (at < sz) {
-                    var rm = Math.min(n, sz - at), oldHeight = child.height;
-                    child.remove(at, rm, callbacks);
-                    this.height -= oldHeight - child.height;
-                    if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }
-                    if ((n -= rm) == 0) break;
-                    at = 0;
-                } else at -= sz;
-            }
-            if (this.size - n < 25) {
-                var lines = [];
-                this.collapse(lines);
-                this.children = [new LeafChunk(lines)];
-            }
-        },
-        collapse: function(lines) {
-            for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines);
-        },
-        insert: function(at, lines) {
-            var height = 0;
-            for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height;
-            this.insertHeight(at, lines, height);
-        },
-        insertHeight: function(at, lines, height) {
-            this.size += lines.length;
-            this.height += height;
-            for (var i = 0, e = this.children.length; i < e; ++i) {
-                var child = this.children[i], sz = child.chunkSize();
-                if (at <= sz) {
-                    child.insertHeight(at, lines, height);
-                    if (child.lines && child.lines.length > 50) {
-                        while (child.lines.length > 50) {
-                            var spilled = child.lines.splice(child.lines.length - 25, 25);
-                            var newleaf = new LeafChunk(spilled);
-                            child.height -= newleaf.height;
-                            this.children.splice(i + 1, 0, newleaf);
-                            newleaf.parent = this;
-                        }
-                        this.maybeSpill();
-                    }
-                    break;
-                }
-                at -= sz;
-            }
-        },
-        maybeSpill: function() {
-            if (this.children.length <= 10) return;
-            var me = this;
-            do {
-                var spilled = me.children.splice(me.children.length - 5, 5);
-                var sibling = new BranchChunk(spilled);
-                if (!me.parent) { // Become the parent node
-                    var copy = new BranchChunk(me.children);
-                    copy.parent = me;
-                    me.children = [copy, sibling];
-                    me = copy;
-                } else {
-                    me.size -= sibling.size;
-                    me.height -= sibling.height;
-                    var myIndex = indexOf(me.parent.children, me);
-                    me.parent.children.splice(myIndex + 1, 0, sibling);
-                }
-                sibling.parent = me.parent;
-            } while (me.children.length > 10);
-            me.parent.maybeSpill();
-        },
-        iter: function(from, to, op) { this.iterN(from, to - from, op); },
-        iterN: function(at, n, op) {
-            for (var i = 0, e = this.children.length; i < e; ++i) {
-                var child = this.children[i], sz = child.chunkSize();
-                if (at < sz) {
-                    var used = Math.min(n, sz - at);
-                    if (child.iterN(at, used, op)) return true;
-                    if ((n -= used) == 0) break;
-                    at = 0;
-                } else at -= sz;
-            }
-        }
-    };
-
-    function getLineAt(chunk, n) {
-        while (!chunk.lines) {
-            for (var i = 0;; ++i) {
-                var child = chunk.children[i], sz = child.chunkSize();
-                if (n < sz) { chunk = child; break; }
-                n -= sz;
-            }
-        }
-        return chunk.lines[n];
-    }
-    function lineNo(line) {
-        if (line.parent == null) return null;
-        var cur = line.parent, no = indexOf(cur.lines, line);
-        for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
-            for (var i = 0, e = chunk.children.length; ; ++i) {
-                if (chunk.children[i] == cur) break;
-                no += chunk.children[i].chunkSize();
-            }
-        }
-        return no;
-    }
-    function lineAtHeight(chunk, h) {
-        var n = 0;
-        outer: do {
-            for (var i = 0, e = chunk.children.length; i < e; ++i) {
-                var child = chunk.children[i], ch = child.height;
-                if (h < ch) { chunk = child; continue outer; }
-                h -= ch;
-                n += child.chunkSize();
-            }
-            return n;
-        } while (!chunk.lines);
-        for (var i = 0, e = chunk.lines.length; i < e; ++i) {
-            var line = chunk.lines[i], lh = line.height;
-            if (h < lh) break;
-            h -= lh;
-        }
-        return n + i;
-    }
-    function heightAtLine(chunk, n) {
-        var h = 0;
-        outer: do {
-            for (var i = 0, e = chunk.children.length; i < e; ++i) {
-                var child = chunk.children[i], sz = child.chunkSize();
-                if (n < sz) { chunk = child; continue outer; }
-                n -= sz;
-                h += child.height;
-            }
-            return h;
-        } while (!chunk.lines);
-        for (var i = 0; i < n; ++i) h += chunk.lines[i].height;
-        return h;
-    }
-
-    // The history object 'chunks' changes that are made close together
-    // and at almost the same time into bigger undoable units.
-    function History() {
-        this.time = 0;
-        this.done = []; this.undone = [];
-    }
-    History.prototype = {
-        addChange: function(start, added, old) {
-            this.undone.length = 0;
-            var time = +new Date, last = this.done[this.done.length - 1];
-            if (time - this.time > 400 || !last ||
-                last.start > start + added || last.start + last.added < start - last.added + last.old.length)
-                this.done.push({start: start, added: added, old: old});
-            else {
-                var oldoff = 0;
-                if (start < last.start) {
-                    for (var i = last.start - start - 1; i >= 0; --i)
-                        last.old.unshift(old[i]);
-                    last.added += last.start - start;
-                    last.start = start;
-                }
-                else if (last.start < start) {
-                    oldoff = start - last.start;
-                    added += oldoff;
-                }
-                for (var i = last.added - oldoff, e = old.length; i < e; ++i)
-                    last.old.push(old[i]);
-                if (last.added < added) last.added = added;
-            }
-            this.time = time;
-        }
-    };
-
-    function stopMethod() {e_stop(this);}
-    // Ensure an event has a stop method.
-    function addStop(event) {
-        if (!event.stop) event.stop = stopMethod;
-        return event;
-    }
-
-    function e_preventDefault(e) {
-        if (e.preventDefault) e.preventDefault();
-        else e.returnValue = false;
-    }
-    function e_stopPropagation(e) {
-        if (e.stopPropagation) e.stopPropagation();
-        else e.cancelBubble = true;
-    }
-    function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}
-    CodeMirror.e_stop = e_stop;
-    CodeMirror.e_preventDefault = e_preventDefault;
-    CodeMirror.e_stopPropagation = e_stopPropagation;
-
-    function e_target(e) {return e.target || e.srcElement;}
-    function e_button(e) {
-        if (e.which) return e.which;
-        else if (e.button & 1) return 1;
-        else if (e.button & 2) return 3;
-        else if (e.button & 4) return 2;
-    }
-
-    // Event handler registration. If disconnect is true, it'll return a
-    // function that unregisters the handler.
-    function connect(node, type, handler, disconnect) {
-        if (typeof node.addEventListener == "function") {
-            node.addEventListener(type, handler, false);
-            if (disconnect) return function() {node.removeEventListener(type, handler, false);};
-        }
-        else {
-            var wrapHandler = function(event) {handler(event || window.event);};
-            node.attachEvent("on" + type, wrapHandler);
-            if (disconnect) return function() {node.detachEvent("on" + type, wrapHandler);};
-        }
-    }
-    CodeMirror.connect = connect;
-
-    function Delayed() {this.id = null;}
-    Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}};
-
-    // Detect drag-and-drop
-    var dragAndDrop = function() {
-        // IE8 has ondragstart and ondrop properties, but doesn't seem to
-        // actually support ondragstart the way it's supposed to work.
-        if (/MSIE [1-8]\b/.test(navigator.userAgent)) return false;
-        var div = document.createElement('div');
-        return "draggable" in div;
-    }();
-
-    var gecko = /gecko\/\d{7}/i.test(navigator.userAgent);
-    var ie = /MSIE \d/.test(navigator.userAgent);
-    var webkit = /WebKit\//.test(navigator.userAgent);
-
-    var lineSep = "\n";
-    // Feature-detect whether newlines in textareas are converted to \r\n
-    (function () {
-        var te = document.createElement("textarea");
-        te.value = "foo\nbar";
-        if (te.value.indexOf("\r") > -1) lineSep = "\r\n";
-    }());
-
-    // Counts the column offset in a string, taking tabs into account.
-    // Used mostly to find indentation.
-    function countColumn(string, end, tabSize) {
-        if (end == null) {
-            end = string.search(/[^\s\u00a0]/);
-            if (end == -1) end = string.length;
-        }
-        for (var i = 0, n = 0; i < end; ++i) {
-            if (string.charAt(i) == "\t") n += tabSize - (n % tabSize);
-            else ++n;
-        }
-        return n;
-    }
-
-    function computedStyle(elt) {
-        if (elt.currentStyle) return elt.currentStyle;
-        return window.getComputedStyle(elt, null);
-    }
-
-    // Find the position of an element by following the offsetParent chain.
-    // If screen==true, it returns screen (rather than page) coordinates.
-    function eltOffset(node, screen) {
-        var bod = node.ownerDocument.body;
-        var x = 0, y = 0, skipBody = false;
-        for (var n = node; n; n = n.offsetParent) {
-            var ol = n.offsetLeft, ot = n.offsetTop;
-            // Firefox reports weird inverted offsets when the body has a border.
-            if (n == bod) { x += Math.abs(ol); y += Math.abs(ot); }
-            else { x += ol, y += ot; }
-            if (screen && computedStyle(n).position == "fixed")
-                skipBody = true;
-        }
-        var e = screen && !skipBody ? null : bod;
-        for (var n = node.parentNode; n != e; n = n.parentNode)
-            if (n.scrollLeft != null) { x -= n.scrollLeft; y -= n.scrollTop;}
-        return {left: x, top: y};
-    }
-    // Use the faster and saner getBoundingClientRect method when possible.
-    if (document.documentElement.getBoundingClientRect != null) eltOffset = function(node, screen) {
-        // Take the parts of bounding client rect that we are interested in so we are able to edit if need be,
-        // since the returned value cannot be changed externally (they are kept in sync as the element moves within the page)
-        try { var box = node.getBoundingClientRect(); box = { top: box.top, left: box.left }; }
-        catch(e) { box = {top: 0, left: 0}; }
-        if (!screen) {
-            // Get the toplevel scroll, working around browser differences.
-            if (window.pageYOffset == null) {
-                var t = document.documentElement || document.body.parentNode;
-                if (t.scrollTop == null) t = document.body;
-                box.top += t.scrollTop; box.left += t.scrollLeft;
-            } else {
-                box.top += window.pageYOffset; box.left += window.pageXOffset;
-            }
-        }
-        return box;
-    };
-
-    // Get a node's text content.
-    function eltText(node) {
-        return node.textContent || node.innerText || node.nodeValue || "";
-    }
-
-    // Operations on {line, ch} objects.
-    function posEq(a, b) {return a.line == b.line && a.ch == b.ch;}
-    function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);}
-    function copyPos(x) {return {line: x.line, ch: x.ch};}
-
-    var escapeElement = document.createElement("pre");
-    function htmlEscape(str) {
-        escapeElement.textContent = str;
-        return escapeElement.innerHTML;
-    }
-    // Recent (late 2011) Opera betas insert bogus newlines at the start
-    // of the textContent, so we strip those.
-    if (htmlEscape("a") == "\na")
-        htmlEscape = function(str) {
-            escapeElement.textContent = str;
-            return escapeElement.innerHTML.slice(1);
-        };
-    // Some IEs don't preserve tabs through innerHTML
-    else if (htmlEscape("\t") != "\t")
-        htmlEscape = function(str) {
-            escapeElement.innerHTML = "";
-            escapeElement.appendChild(document.createTextNode(str));
-            return escapeElement.innerHTML;
-        };
-    CodeMirror.htmlEscape = htmlEscape;
-
-    // Used to position the cursor after an undo/redo by finding the
-    // last edited character.
-    function editEnd(from, to) {
-        if (!to) return from ? from.length : 0;
-        if (!from) return to.length;
-        for (var i = from.length, j = to.length; i >= 0 && j >= 0; --i, --j)
-            if (from.charAt(i) != to.charAt(j)) break;
-        return j + 1;
-    }
-
-    function indexOf(collection, elt) {
-        if (collection.indexOf) return collection.indexOf(elt);
-        for (var i = 0, e = collection.length; i < e; ++i)
-            if (collection[i] == elt) return i;
-        return -1;
-    }
-    function isWordChar(ch) {
-        return /\w/.test(ch) || ch.toUpperCase() != ch.toLowerCase();
-    }
-
-    // See if "".split is the broken IE version, if so, provide an
-    // alternative way to split lines.
-    var splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) {
-        var pos = 0, nl, result = [];
-        while ((nl = string.indexOf("\n", pos)) > -1) {
-            result.push(string.slice(pos, string.charAt(nl-1) == "\r" ? nl - 1 : nl));
-            pos = nl + 1;
-        }
-        result.push(string.slice(pos));
-        return result;
-    } : function(string){return string.split(/\r?\n/);};
-    CodeMirror.splitLines = splitLines;
-
-    var hasSelection = window.getSelection ? function(te) {
-        try { return te.selectionStart != te.selectionEnd; }
-        catch(e) { return false; }
-    } : function(te) {
-        try {var range = te.ownerDocument.selection.createRange();}
-        catch(e) {}
-        if (!range || range.parentElement() != te) return false;
-        return range.compareEndPoints("StartToEnd", range) != 0;
-    };
-
-    CodeMirror.defineMode("null", function() {
-        return {token: function(stream) {stream.skipToEnd();}};
-    });
-    CodeMirror.defineMIME("text/plain", "null");
-
-    var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
-        19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
-        36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
-        46: "Delete", 59: ";", 91: "Mod", 92: "Mod", 93: "Mod", 186: ";", 187: "=", 188: ",",
-        189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'", 63276: "PageUp",
-        63277: "PageDown", 63275: "End", 63273: "Home", 63234: "Left", 63232: "Up", 63235: "Right",
-        63233: "Down", 63302: "Insert", 63272: "Delete"};
-    CodeMirror.keyNames = keyNames;
-    (function() {
-        // Number keys
-        for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i);
-        // Alphabetic keys
-        for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);
-        // Function keys
-        for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i;
-    })();
-
-    return CodeMirror;
-})();
-CodeMirror.defineMode("xml", function(config, parserConfig) {
-    var indentUnit = config.indentUnit;
-    var Kludges = parserConfig.htmlMode ? {
-        autoSelfClosers: {"br": true, "img": true, "hr": true, "link": true, "input": true,
-            "meta": true, "col": true, "frame": true, "base": true, "area": true},
-        doNotIndent: {"pre": true},
-        allowUnquoted: true
-    } : {autoSelfClosers: {}, doNotIndent: {}, allowUnquoted: false};
-    var alignCDATA = parserConfig.alignCDATA;
-
-    // Return variables for tokenizers
-    var tagName, type;
-
-    function inText(stream, state) {
-        function chain(parser) {
-            state.tokenize = parser;
-            return parser(stream, state);
-        }
-
-        var ch = stream.next();
-        if (ch == "<") {
-            if (stream.eat("!")) {
-                if (stream.eat("[")) {
-                    if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>"));
-                    else return null;
-                }
-                else if (stream.match("--")) return chain(inBlock("comment", "-->"));
-                else if (stream.match("DOCTYPE", true, true)) {
-                    stream.eatWhile(/[\w\._\-]/);
-                    return chain(doctype(1));
-                }
-                else return null;
-            }
-            else if (stream.eat("?")) {
-                stream.eatWhile(/[\w\._\-]/);
-                state.tokenize = inBlock("meta", "?>");
-                return "meta";
-            }
-            else {
-                type = stream.eat("/") ? "closeTag" : "openTag";
-                stream.eatSpace();
-                tagName = "";
-                var c;
-                while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c;
-                state.tokenize = inTag;
-                return "tag";
-            }
-        }
-        else if (ch == "&") {
-            stream.eatWhile(/[^;]/);
-            stream.eat(";");
-            return "atom";
-        }
-        else {
-            stream.eatWhile(/[^&<]/);
-            return null;
-        }
-    }
-
-    function inTag(stream, state) {
-        var ch = stream.next();
-        if (ch == ">" || (ch == "/" && stream.eat(">"))) {
-            state.tokenize = inText;
-            type = ch == ">" ? "endTag" : "selfcloseTag";
-            return "tag";
-        }
-        else if (ch == "=") {
-            type = "equals";
-            return null;
-        }
-        else if (/[\'\"]/.test(ch)) {
-            state.tokenize = inAttribute(ch);
-            return state.tokenize(stream, state);
-        }
-        else {
-            stream.eatWhile(/[^\s\u00a0=<>\"\'\/?]/);
-            return "word";
-        }
-    }
-
-    function inAttribute(quote) {
-        return function(stream, state) {
-            while (!stream.eol()) {
-                if (stream.next() == quote) {
-                    state.tokenize = inTag;
-                    break;
-                }
-            }
-            return "string";
-        };
-    }
-
-    function inBlock(style, terminator) {
-        return function(stream, state) {
-            while (!stream.eol()) {
-                if (stream.match(terminator)) {
-                    state.tokenize = inText;
-                    break;
-                }
-                stream.next();
-            }
-            return style;
-        };
-    }
-    function doctype(depth) {
-        return function(stream, state) {
-            var ch;
-            while ((ch = stream.next()) != null) {
-                if (ch == "<") {
-                    state.tokenize = doctype(depth + 1);
-                    return state.tokenize(stream, state);
-                } else if (ch == ">") {
-                    if (depth == 1) {
-                        state.tokenize = inText;
-                        break;
-                    } else {
-                        state.tokenize = doctype(depth - 1);
-                        return state.tokenize(stream, state);
-                    }
-                }
-            }
-            return "meta";
-        };
-    }
-
-    var curState, setStyle;
-    function pass() {
-        for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]);
-    }
-    function cont() {
-        pass.apply(null, arguments);
-        return true;
-    }
-
-    function pushContext(tagName, startOfLine) {
-        var noIndent = Kludges.doNotIndent.hasOwnProperty(tagName) || (curState.context && curState.context.noIndent);
-        curState.context = {
-            prev: curState.context,
-            tagName: tagName,
-            indent: curState.indented,
-            startOfLine: startOfLine,
-            noIndent: noIndent
-        };
-    }
-    function popContext() {
-        if (curState.context) curState.context = curState.context.prev;
-    }
-
-    function element(type) {
-        if (type == "openTag") {
-            curState.tagName = tagName;
-            return cont(attributes, endtag(curState.startOfLine));
-        } else if (type == "closeTag") {
-            var err = false;
-            if (curState.context) {
-                err = curState.context.tagName != tagName;
-            } else {
-                err = true;
-            }
-            if (err) setStyle = "error";
-            return cont(endclosetag(err));
-        }
-        return cont();
-    }
-    function endtag(startOfLine) {
-        return function(type) {
-            if (type == "selfcloseTag" ||
-                (type == "endTag" && Kludges.autoSelfClosers.hasOwnProperty(curState.tagName.toLowerCase())))
-                return cont();
-            if (type == "endTag") {pushContext(curState.tagName, startOfLine); return cont();}
-            return cont();
-        };
-    }
-    function endclosetag(err) {
-        return function(type) {
-            if (err) setStyle = "error";
-            if (type == "endTag") { popContext(); return cont(); }
-            setStyle = "error";
-            return cont(arguments.callee);
-        }
-    }
-
-    function attributes(type) {
-        if (type == "word") {setStyle = "attribute"; return cont(attributes);}
-        if (type == "equals") return cont(attvalue, attributes);
-        if (type == "string") {setStyle = "error"; return cont(attributes);}
-        return pass();
-    }
-    function attvalue(type) {
-        if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return cont();}
-        if (type == "string") return cont(attvaluemaybe);
-        return pass();
-    }
-    function attvaluemaybe(type) {
-        if (type == "string") return cont(attvaluemaybe);
-        else return pass();
-    }
-
-    return {
-        startState: function() {
-            return {tokenize: inText, cc: [], indented: 0, startOfLine: true, tagName: null, context: null};
-        },
-
-        token: function(stream, state) {
-            if (stream.sol()) {
-                state.startOfLine = true;
-                state.indented = stream.indentation();
-            }
-            if (stream.eatSpace()) return null;
-
-            setStyle = type = tagName = null;
-            var style = state.tokenize(stream, state);
-            state.type = type;
-            if ((style || type) && style != "comment") {
-                curState = state;
-                while (true) {
-                    var comb = state.cc.pop() || element;
-                    if (comb(type || style)) break;
-                }
-            }
-            state.startOfLine = false;
-            return setStyle || style;
-        },
-
-        indent: function(state, textAfter, fullLine) {
-            var context = state.context;
-            if ((state.tokenize != inTag && state.tokenize != inText) ||
-                context && context.noIndent)
-                return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0;
-            if (alignCDATA && /<!\[CDATA\[/.test(textAfter)) return 0;
-            if (context && /^<\//.test(textAfter))
-                context = context.prev;
-            while (context && !context.startOfLine)
-                context = context.prev;
-            if (context) return context.indent + indentUnit;
-            else return 0;
-        },
-
-        compareStates: function(a, b) {
-            if (a.indented != b.indented || a.tokenize != b.tokenize) return false;
-            for (var ca = a.context, cb = b.context; ; ca = ca.prev, cb = cb.prev) {
-                if (!ca || !cb) return ca == cb;
-                if (ca.tagName != cb.tagName) return false;
-            }
-        },
-
-        electricChars: "/"
-    };
-});
-
-CodeMirror.defineMIME("application/xml", "xml");
-CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true});
-CodeMirror.defineMode("javascript", function(config, parserConfig) {
-    var indentUnit = config.indentUnit;
-    var jsonMode = parserConfig.json;
-
-    // Tokenizer
-
-    var keywords = function(){
-        function kw(type) {return {type: type, style: "keyword"};}
-        var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c");
-        var operator = kw("operator"), atom = {type: "atom", style: "atom"};
-        return {
-            "if": A, "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
-            "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C,
-            "var": kw("var"), "const": kw("var"), "let": kw("var"),
-            "function": kw("function"), "catch": kw("catch"),
-            "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
-            "in": operator, "typeof": operator, "instanceof": operator,
-            "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom
-        };
-    }();
-
-    var isOperatorChar = /[+\-*&%=<>!?|]/;
-
-    function chain(stream, state, f) {
-        state.tokenize = f;
-        return f(stream, state);
-    }
-
-    function nextUntilUnescaped(stream, end) {
-        var escaped = false, next;
-        while ((next = stream.next()) != null) {
-            if (next == end && !escaped)
-                return false;
-            escaped = !escaped && next == "\\";
-        }
-        return escaped;
-    }
-
-    // Used as scratch variables to communicate multiple values without
-    // consing up tons of objects.
-    var type, content;
-    function ret(tp, style, cont) {
-        type = tp; content = cont;
-        return style;
-    }
-
-    function jsTokenBase(stream, state) {
-        var ch = stream.next();
-        if (ch == '"' || ch == "'")
-            return chain(stream, state, jsTokenString(ch));
-        else if (/[\[\]{}\(\),;\:\.]/.test(ch))
-            return ret(ch);
-        else if (ch == "0" && stream.eat(/x/i)) {
-            stream.eatWhile(/[\da-f]/i);
-            return ret("number", "number");
-        }
-        else if (/\d/.test(ch)) {
-            stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/);
-            return ret("number", "number");
-        }
-        else if (ch == "/") {
-            if (stream.eat("*")) {
-                return chain(stream, state, jsTokenComment);
-            }
-            else if (stream.eat("/")) {
-                stream.skipToEnd();
-                return ret("comment", "comment");
-            }
-            else if (state.reAllowed) {
-                nextUntilUnescaped(stream, "/");
-                stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla
-                return ret("regexp", "string");
-            }
-            else {
-                stream.eatWhile(isOperatorChar);
-                return ret("operator", null, stream.current());
-            }
-        }
-        else if (ch == "#") {
-            stream.skipToEnd();
-            return ret("error", "error");
-        }
-        else if (isOperatorChar.test(ch)) {
-            stream.eatWhile(isOperatorChar);
-            return ret("operator", null, stream.current());
-        }
-        else {
-            stream.eatWhile(/[\w\$_]/);
-            var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word];
-            return (known && state.kwAllowed) ? ret(known.type, known.style, word) :
-                ret("variable", "variable", word);
-        }
-    }
-
-    function jsTokenString(quote) {
-        return function(stream, state) {
-            if (!nextUntilUnescaped(stream, quote))
-                state.tokenize = jsTokenBase;
-            return ret("string", "string");
-        };
-    }
-
-    function jsTokenComment(stream, state) {
-        var maybeEnd = false, ch;
-        while (ch = stream.next()) {
-            if (ch == "/" && maybeEnd) {
-                state.tokenize = jsTokenBase;
-                break;
-            }
-            maybeEnd = (ch == "*");
-        }
-        return ret("comment", "comment");
-    }
-
-    // Parser
-
-    var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true};
-
-    function JSLexical(indented, column, type, align, prev, info) {
-        this.indented = indented;
-        this.column = column;
-        this.type = type;
-        this.prev = prev;
-        this.info = info;
-        if (align != null) this.align = align;
-    }
-
-    function inScope(state, varname) {
-        for (var v = state.localVars; v; v = v.next)
-            if (v.name == varname) return true;
-    }
-
-    function parseJS(state, style, type, content, stream) {
-        var cc = state.cc;
-        // Communicate our context to the combinators.
-        // (Less wasteful than consing up a hundred closures on every call.)
-        cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc;
-
-        if (!state.lexical.hasOwnProperty("align"))
-            state.lexical.align = true;
-
-        while(true) {
-            var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;
-            if (combinator(type, content)) {
-                while(cc.length && cc[cc.length - 1].lex)
-                    cc.pop()();
-                if (cx.marked) return cx.marked;
-                if (type == "variable" && inScope(state, content)) return "variable-2";
-                return style;
-            }
-        }
-    }
-
-    // Combinator utils
-
-    var cx = {state: null, column: null, marked: null, cc: null};
-    function pass() {
-        for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
-    }
-    function cont() {
-        pass.apply(null, arguments);
-        return true;
-    }
-    function register(varname) {
-        var state = cx.state;
-        if (state.context) {
-            cx.marked = "def";
-            for (var v = state.localVars; v; v = v.next)
-                if (v.name == varname) return;
-            state.localVars = {name: varname, next: state.localVars};
-        }
-    }
-
-    // Combinators
-
-    var defaultVars = {name: "this", next: {name: "arguments"}};
-    function pushcontext() {
-        if (!cx.state.context) cx.state.localVars = defaultVars;
-        cx.state.context = {prev: cx.state.context, vars: cx.state.localVars};
-    }
-    function popcontext() {
-        cx.state.localVars = cx.state.context.vars;
-        cx.state.context = cx.state.context.prev;
-    }
-    function pushlex(type, info) {
-        var result = function() {
-            var state = cx.state;
-            state.lexical = new JSLexical(state.indented, cx.stream.column(), type, null, state.lexical, info)
-        };
-        result.lex = true;
-        return result;
-    }
-    function poplex() {
-        var state = cx.state;
-        if (state.lexical.prev) {
-            if (state.lexical.type == ")")
-                state.indented = state.lexical.indented;
-            state.lexical = state.lexical.prev;
-        }
-    }
-    poplex.lex = true;
-
-    function expect(wanted) {
-        return function expecting(type) {
-            if (type == wanted) return cont();
-            else if (wanted == ";") return pass();
-            else return cont(arguments.callee);
-        };
-    }
-
-    function statement(type) {
-        if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex);
-        if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex);
-        if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
-        if (type == "{") return cont(pushlex("}"), block, poplex);
-        if (type == ";") return cont();
-        if (type == "function") return cont(functiondef);
-        if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"),
-            poplex, statement, poplex);
-        if (type == "variable") return cont(pushlex("stat"), maybelabel);
-        if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"),
-            block, poplex, poplex);
-        if (type == "case") return cont(expression, expect(":"));
-        if (type == "default") return cont(expect(":"));
-        if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"),
-            statement, poplex, popcontext);
-        return pass(pushlex("stat"), expression, expect(";"), poplex);
-    }
-    function expression(type) {
-        if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator);
-        if (type == "function") return cont(functiondef);
-        if (type == "keyword c") return cont(maybeexpression);
-        if (type == "(") return cont(pushlex(")"), expression, expect(")"), poplex, maybeoperator);
-        if (type == "operator") return cont(expression);
-        if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator);
-        if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator);
-        return cont();
-    }
-    function maybeexpression(type) {
-        if (type.match(/[;\}\)\],]/)) return pass();
-        return pass(expression);
-    }
-
-    function maybeoperator(type, value) {
-        if (type == "operator" && /\+\+|--/.test(value)) return cont(maybeoperator);
-        if (type == "operator") return cont(expression);
-        if (type == ";") return;
-        if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator);
-        if (type == ".") return cont(property, maybeoperator);
-        if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator);
-    }
-    function maybelabel(type) {
-        if (type == ":") return cont(poplex, statement);
-        return pass(maybeoperator, expect(";"), poplex);
-    }
-    function property(type) {
-        if (type == "variable") {cx.marked = "property"; return cont();}
-    }
-    function objprop(type) {
-        if (type == "variable") cx.marked = "property";
-        if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression);
-    }
-    function commasep(what, end) {
-        function proceed(type) {
-            if (type == ",") return cont(what, proceed);
-            if (type == end) return cont();
-            return cont(expect(end));
-        }
-        return function commaSeparated(type) {
-            if (type == end) return cont();
-            else return pass(what, proceed);
-        };
-    }
-    function block(type) {
-        if (type == "}") return cont();
-        return pass(statement, block);
-    }
-    function vardef1(type, value) {
-        if (type == "variable"){register(value); return cont(vardef2);}
-        return cont();
-    }
-    function vardef2(type, value) {
-        if (value == "=") return cont(expression, vardef2);
-        if (type == ",") return cont(vardef1);
-    }
-    function forspec1(type) {
-        if (type == "var") return cont(vardef1, forspec2);
-        if (type == ";") return pass(forspec2);
-        if (type == "variable") return cont(formaybein);
-        return pass(forspec2);
-    }
-    function formaybein(type, value) {
-        if (value == "in") return cont(expression);
-        return cont(maybeoperator, forspec2);
-    }
-    function forspec2(type, value) {
-        if (type == ";") return cont(forspec3);
-        if (value == "in") return cont(expression);
-        return cont(expression, expect(";"), forspec3);
-    }
-    function forspec3(type) {
-        if (type != ")") cont(expression);
-    }
-    function functiondef(type, value) {
-        if (type == "variable") {register(value); return cont(functiondef);}
-        if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, statement, popcontext);
-    }
-    function funarg(type, value) {
-        if (type == "variable") {register(value); return cont();}
-    }
-
-    // Interface
-
-    return {
-        startState: function(basecolumn) {
-            return {
-                tokenize: jsTokenBase,
-                reAllowed: true,
-                kwAllowed: true,
-                cc: [],
-                lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
-                localVars: null,
-                context: null,
-                indented: 0
-            };
-        },
-
-        token: function(stream, state) {
-            if (stream.sol()) {
-                if (!state.lexical.hasOwnProperty("align"))
-                    state.lexical.align = false;
-                state.indented = stream.indentation();
-            }
-            if (stream.eatSpace()) return null;
-            var style = state.tokenize(stream, state);
-            if (type == "comment") return style;
-            state.reAllowed = type == "operator" || type == "keyword c" || type.match(/^[\[{}\(,;:]$/);
-            state.kwAllowed = type != '.';
-            return parseJS(state, style, type, content, stream);
-        },
-
-        indent: function(state, textAfter) {
-            if (state.tokenize != jsTokenBase) return 0;
-            var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical,
-                type = lexical.type, closing = firstChar == type;
-            if (type == "vardef") return lexical.indented + 4;
-            else if (type == "form" && firstChar == "{") return lexical.indented;
-            else if (type == "stat" || type == "form") return lexical.indented + indentUnit;
-            else if (lexical.info == "switch" && !closing)
-                return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
-            else if (lexical.align) return lexical.column + (closing ? 0 : 1);
-            else return lexical.indented + (closing ? 0 : indentUnit);
-        },
-
-        electricChars: ":{}"
-    };
-});
-
-CodeMirror.defineMIME("text/javascript", "javascript");
-CodeMirror.defineMIME("application/json", {name: "javascript", json: true});
-
-CodeMirror.defineMode("css", function(config) {
-    var indentUnit = config.indentUnit, type;
-    function ret(style, tp) {type = tp; return style;}
-
-    function tokenBase(stream, state) {
-        var ch = stream.next();
-        if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("meta", stream.current());}
-        else if (ch == "/" && stream.eat("*")) {
-            state.tokenize = tokenCComment;
-            return tokenCComment(stream, state);
-        }
-        else if (ch == "<" && stream.eat("!")) {
-            state.tokenize = tokenSGMLComment;
-            return tokenSGMLComment(stream, state);
-        }
-        else if (ch == "=") ret(null, "compare");
-        else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare");
-        else if (ch == "\"" || ch == "'") {
-            state.tokenize = tokenString(ch);
-            return state.tokenize(stream, state);
-        }
-        else if (ch == "#") {
-            stream.eatWhile(/[\w\\\-]/);
-            return ret("atom", "hash");
-        }
-        else if (ch == "!") {
-            stream.match(/^\s*\w*/);
-            return ret("keyword", "important");
-        }
-        else if (/\d/.test(ch)) {
-            stream.eatWhile(/[\w.%]/);
-            return ret("number", "unit");
-        }
-        else if (/[,.+>*\/]/.test(ch)) {
-            return ret(null, "select-op");
-        }
-        else if (/[;{}:\[\]]/.test(ch)) {
-            return ret(null, ch);
-        }
-        else {
-            stream.eatWhile(/[\w\\\-]/);
-            return ret("variable", "variable");
-        }
-    }
-
-    function tokenCComment(stream, state) {
-        var maybeEnd = false, ch;
-        while ((ch = stream.next()) != null) {
-            if (maybeEnd && ch == "/") {
-                state.tokenize = tokenBase;
-                break;
-            }
-            maybeEnd = (ch == "*");
-        }
-        return ret("comment", "comment");
-    }
-
-    function tokenSGMLComment(stream, state) {
-        var dashes = 0, ch;
-        while ((ch = stream.next()) != null) {
-            if (dashes >= 2 && ch == ">") {
-                state.tokenize = tokenBase;
-                break;
-            }
-            dashes = (ch == "-") ? dashes + 1 : 0;
-        }
-        return ret("comment", "comment");
-    }
-
-    function tokenString(quote) {
-        return function(stream, state) {
-            var escaped = false, ch;
-            while ((ch = stream.next()) != null) {
-                if (ch == quote && !escaped)
-                    break;
-                escaped = !escaped && ch == "\\";
-            }
-            if (!escaped) state.tokenize = tokenBase;
-            return ret("string", "string");
-        };
-    }
-
-    return {
-        startState: function(base) {
-            return {tokenize: tokenBase,
-                baseIndent: base || 0,
-                stack: []};
-        },
-
-        token: function(stream, state) {
-            if (stream.eatSpace()) return null;
-            var style = state.tokenize(stream, state);
-
-            var context = state.stack[state.stack.length-1];
-            if (type == "hash" && context == "rule") style = "atom";
-            else if (style == "variable") {
-                if (context == "rule") style = "number";
-                else if (!context || context == "@media{") style = "tag";
-            }
-
-            if (context == "rule" && /^[\{\};]$/.test(type))
-                state.stack.pop();
-            if (type == "{") {
-                if (context == "@media") state.stack[state.stack.length-1] = "@media{";
-                else state.stack.push("{");
-            }
-            else if (type == "}") state.stack.pop();
-            else if (type == "@media") state.stack.push("@media");
-            else if (context == "{" && type != "comment") state.stack.push("rule");
-            return style;
-        },
-
-        indent: function(state, textAfter) {
-            var n = state.stack.length;
-            if (/^\}/.test(textAfter))
-                n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1;
-            return state.baseIndent + n * indentUnit;
-        },
-
-        electricChars: "}"
-    };
-});
-
-CodeMirror.defineMIME("text/css", "css");
-CodeMirror.defineMode("htmlmixed", function(config, parserConfig) {
-    var htmlMode = CodeMirror.getMode(config, {name: "xml", htmlMode: true});
-    var jsMode = CodeMirror.getMode(config, "javascript");
-    var cssMode = CodeMirror.getMode(config, "css");
-
-    function html(stream, state) {
-        var style = htmlMode.token(stream, state.htmlState);
-        if (style == "tag" && stream.current() == ">" && state.htmlState.context) {
-            if (/^script$/i.test(state.htmlState.context.tagName)) {
-                state.token = javascript;
-                state.localState = jsMode.startState(htmlMode.indent(state.htmlState, ""));
-                state.mode = "javascript";
-            }
-            else if (/^style$/i.test(state.htmlState.context.tagName)) {
-                state.token = css;
-                state.localState = cssMode.startState(htmlMode.indent(state.htmlState, ""));
-                state.mode = "css";
-            }
-        }
-        return style;
-    }
-    function maybeBackup(stream, pat, style) {
-        var cur = stream.current();
-        var close = cur.search(pat);
-        if (close > -1) stream.backUp(cur.length - close);
-        return style;
-    }
-    function javascript(stream, state) {
-        if (stream.match(/^<\/\s*script\s*>/i, false)) {
-            state.token = html;
-            state.curState = null;
-            state.mode = "html";
-            return html(stream, state);
-        }
-        return maybeBackup(stream, /<\/\s*script\s*>/,
-            jsMode.token(stream, state.localState));
-    }
-    function css(stream, state) {
-        if (stream.match(/^<\/\s*style\s*>/i, false)) {
-            state.token = html;
-            state.localState = null;
-            state.mode = "html";
-            return html(stream, state);
-        }
-        return maybeBackup(stream, /<\/\s*style\s*>/,
-            cssMode.token(stream, state.localState));
-    }
-
-    return {
-        startState: function() {
-            var state = htmlMode.startState();
-            return {token: html, localState: null, mode: "html", htmlState: state};
-        },
-
-        copyState: function(state) {
-            if (state.localState)
-                var local = CodeMirror.copyState(state.token == css ? cssMode : jsMode, state.localState);
-            return {token: state.token, localState: local, mode: state.mode,
-                htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};
-        },
-
-        token: function(stream, state) {
-            return state.token(stream, state);
-        },
-
-        indent: function(state, textAfter) {
-            if (state.token == html || /^\s*<\//.test(textAfter))
-                return htmlMode.indent(state.htmlState, textAfter);
-            else if (state.token == javascript)
-                return jsMode.indent(state.localState, textAfter);
-            else
-                return cssMode.indent(state.localState, textAfter);
-        },
-
-        compareStates: function(a, b) {
-            return htmlMode.compareStates(a.htmlState, b.htmlState);
-        },
-
-        electricChars: "/{}:"
-    }
-});
-
-CodeMirror.defineMIME("text/html", "htmlmixed");
diff --git a/server/public/ueditor/third-party/highcharts/adapters/mootools-adapter.js b/server/public/ueditor/third-party/highcharts/adapters/mootools-adapter.js
deleted file mode 100644
index b02738e..0000000
--- a/server/public/ueditor/third-party/highcharts/adapters/mootools-adapter.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- Highcharts JS v3.0.6 (2013-10-04)
- MooTools adapter
-
- (c) 2010-2013 Torstein H酶nsi
-
- License: www.highcharts.com/license
-*/
-(function(){var e=window,h=document,f=e.MooTools.version.substring(0,3),i=f==="1.2"||f==="1.1",j=i||f==="1.3",g=e.$extend||function(){return Object.append.apply(Object,arguments)};e.HighchartsAdapter={init:function(a){var b=Fx.prototype,c=b.start,d=Fx.Morph.prototype,e=d.compute;b.start=function(b,d){var e=this.element;if(b.d)this.paths=a.init(e,e.d,this.toD);c.apply(this,arguments);return this};d.compute=function(b,c,d){var f=this.paths;if(f)this.element.attr("d",a.step(f[0],f[1],d,this.toD));else return e.apply(this,
-arguments)}},adapterRun:function(a,b){if(b==="width"||b==="height")return parseInt($(a).getStyle(b),10)},getScript:function(a,b){var c=h.getElementsByTagName("head")[0],d=h.createElement("script");d.type="text/javascript";d.src=a;d.onload=b;c.appendChild(d)},animate:function(a,b,c){var d=a.attr,f=c&&c.complete;if(d&&!a.setStyle)a.getStyle=a.attr,a.setStyle=function(){var a=arguments;this.attr.call(this,a[0],a[1][0])},a.$family=function(){return!0};e.HighchartsAdapter.stop(a);c=new Fx.Morph(d?a:$(a),
-g({transition:Fx.Transitions.Quad.easeInOut},c));if(d)c.element=a;if(b.d)c.toD=b.d;f&&c.addEvent("complete",f);c.start(b);a.fx=c},each:function(a,b){return i?$each(a,b):Array.each(a,b)},map:function(a,b){return a.map(b)},grep:function(a,b){return a.filter(b)},inArray:function(a,b,c){return b?b.indexOf(a,c):-1},offset:function(a){a=a.getPosition();return{left:a.x,top:a.y}},extendWithEvents:function(a){a.addEvent||(a.nodeName?$(a):g(a,new Events))},addEvent:function(a,b,c){typeof b==="string"&&(b===
-"unload"&&(b="beforeunload"),e.HighchartsAdapter.extendWithEvents(a),a.addEvent(b,c))},removeEvent:function(a,b,c){typeof a!=="string"&&a.addEvent&&(b?(b==="unload"&&(b="beforeunload"),c?a.removeEvent(b,c):a.removeEvents&&a.removeEvents(b)):a.removeEvents())},fireEvent:function(a,b,c,d){b={type:b,target:a};b=j?new Event(b):new DOMEvent(b);b=g(b,c);if(!b.target&&b.event)b.target=b.event.target;b.preventDefault=function(){d=null};a.fireEvent&&a.fireEvent(b.type,b);d&&d(b)},washMouseEvent:function(a){if(a.page)a.pageX=
-a.page.x,a.pageY=a.page.y;return a},stop:function(a){a.fx&&a.fx.cancel()}}})();
diff --git a/server/public/ueditor/third-party/highcharts/adapters/mootools-adapter.src.js b/server/public/ueditor/third-party/highcharts/adapters/mootools-adapter.src.js
deleted file mode 100644
index 5af6ba6..0000000
--- a/server/public/ueditor/third-party/highcharts/adapters/mootools-adapter.src.js
+++ /dev/null
@@ -1,313 +0,0 @@
-/**
- * @license Highcharts JS v3.0.6 (2013-10-04)
- * MooTools adapter
- *
- * (c) 2010-2013 Torstein H酶nsi
- *
- * License: www.highcharts.com/license
- */
-
-// JSLint options:
-/*global Fx, $, $extend, $each, $merge, Events, Event, DOMEvent */
-
-(function () {
-
-var win = window,
-	doc = document,
-	mooVersion = win.MooTools.version.substring(0, 3), // Get the first three characters of the version number
-	legacy = mooVersion === '1.2' || mooVersion === '1.1', // 1.1 && 1.2 considered legacy, 1.3 is not.
-	legacyEvent = legacy || mooVersion === '1.3', // In versions 1.1 - 1.3 the event class is named Event, in newer versions it is named DOMEvent.
-	$extend = win.$extend || function () {
-		return Object.append.apply(Object, arguments);
-	};
-
-win.HighchartsAdapter = {
-	/**
-	 * Initialize the adapter. This is run once as Highcharts is first run.
-	 * @param {Object} pathAnim The helper object to do animations across adapters.
-	 */
-	init: function (pathAnim) {
-		var fxProto = Fx.prototype,
-			fxStart = fxProto.start,
-			morphProto = Fx.Morph.prototype,
-			morphCompute = morphProto.compute;
-
-		// override Fx.start to allow animation of SVG element wrappers
-		/*jslint unparam: true*//* allow unused parameters in fx functions */
-		fxProto.start = function (from, to) {
-			var fx = this,
-				elem = fx.element;
-
-			// special for animating paths
-			if (from.d) {
-				//this.fromD = this.element.d.split(' ');
-				fx.paths = pathAnim.init(
-					elem,
-					elem.d,
-					fx.toD
-				);
-			}
-			fxStart.apply(fx, arguments);
-
-			return this; // chainable
-		};
-
-		// override Fx.step to allow animation of SVG element wrappers
-		morphProto.compute = function (from, to, delta) {
-			var fx = this,
-				paths = fx.paths;
-
-			if (paths) {
-				fx.element.attr(
-					'd',
-					pathAnim.step(paths[0], paths[1], delta, fx.toD)
-				);
-			} else {
-				return morphCompute.apply(fx, arguments);
-			}
-		};
-		/*jslint unparam: false*/
-	},
-	
-	/**
-	 * Run a general method on the framework, following jQuery syntax
-	 * @param {Object} el The HTML element
-	 * @param {String} method Which method to run on the wrapped element
-	 */
-	adapterRun: function (el, method) {
-		
-		// This currently works for getting inner width and height. If adding
-		// more methods later, we need a conditional implementation for each.
-		if (method === 'width' || method === 'height') {
-			return parseInt($(el).getStyle(method), 10);
-		}
-	},
-
-	/**
-	 * Downloads a script and executes a callback when done.
-	 * @param {String} scriptLocation
-	 * @param {Function} callback
-	 */
-	getScript: function (scriptLocation, callback) {
-		// We cannot assume that Assets class from mootools-more is available so instead insert a script tag to download script.
-		var head = doc.getElementsByTagName('head')[0];
-		var script = doc.createElement('script');
-
-		script.type = 'text/javascript';
-		script.src = scriptLocation;
-		script.onload = callback;
-
-		head.appendChild(script);
-	},
-
-	/**
-	 * Animate a HTML element or SVG element wrapper
-	 * @param {Object} el
-	 * @param {Object} params
-	 * @param {Object} options jQuery-like animation options: duration, easing, callback
-	 */
-	animate: function (el, params, options) {
-		var isSVGElement = el.attr,
-			effect,
-			complete = options && options.complete;
-
-		if (isSVGElement && !el.setStyle) {
-			// add setStyle and getStyle methods for internal use in Moo
-			el.getStyle = el.attr;
-			el.setStyle = function () { // property value is given as array in Moo - break it down
-				var args = arguments;
-				this.attr.call(this, args[0], args[1][0]);
-			};
-			// dirty hack to trick Moo into handling el as an element wrapper
-			el.$family = function () { return true; };
-		}
-
-		// stop running animations
-		win.HighchartsAdapter.stop(el);
-
-		// define and run the effect
-		effect = new Fx.Morph(
-			isSVGElement ? el : $(el),
-			$extend({
-				transition: Fx.Transitions.Quad.easeInOut
-			}, options)
-		);
-
-		// Make sure that the element reference is set when animating svg elements
-		if (isSVGElement) {
-			effect.element = el;
-		}
-
-		// special treatment for paths
-		if (params.d) {
-			effect.toD = params.d;
-		}
-
-		// jQuery-like events
-		if (complete) {
-			effect.addEvent('complete', complete);
-		}
-
-		// run
-		effect.start(params);
-
-		// record for use in stop method
-		el.fx = effect;
-	},
-
-	/**
-	 * MooTool's each function
-	 *
-	 */
-	each: function (arr, fn) {
-		return legacy ?
-			$each(arr, fn) :
-			Array.each(arr, fn);
-	},
-
-	/**
-	 * Map an array
-	 * @param {Array} arr
-	 * @param {Function} fn
-	 */
-	map: function (arr, fn) {
-		return arr.map(fn);
-	},
-
-	/**
-	 * Grep or filter an array
-	 * @param {Array} arr
-	 * @param {Function} fn
-	 */
-	grep: function (arr, fn) {
-		return arr.filter(fn);
-	},
-	
-	/**
-	 * Return the index of an item in an array, or -1 if not matched
-	 */
-	inArray: function (item, arr, from) {
-		return arr ? arr.indexOf(item, from) : -1;
-	},
-
-	/**
-	 * Get the offset of an element relative to the top left corner of the web page
-	 */
-	offset: function (el) {
-		var offsets = el.getPosition(); // #1496
-		return {
-			left: offsets.x,
-			top: offsets.y
-		};
-	},
-
-	/**
-	 * Extends an object with Events, if its not done
-	 */
-	extendWithEvents: function (el) {
-		// if the addEvent method is not defined, el is a custom Highcharts object
-		// like series or point
-		if (!el.addEvent) {
-			if (el.nodeName) {
-				el = $(el); // a dynamically generated node
-			} else {
-				$extend(el, new Events()); // a custom object
-			}
-		}
-	},
-
-	/**
-	 * Add an event listener
-	 * @param {Object} el HTML element or custom object
-	 * @param {String} type Event type
-	 * @param {Function} fn Event handler
-	 */
-	addEvent: function (el, type, fn) {
-		if (typeof type === 'string') { // chart broke due to el being string, type function
-
-			if (type === 'unload') { // Moo self destructs before custom unload events
-				type = 'beforeunload';
-			}
-
-			win.HighchartsAdapter.extendWithEvents(el);
-
-			el.addEvent(type, fn);
-		}
-	},
-
-	removeEvent: function (el, type, fn) {
-		if (typeof el === 'string') {
-			// el.removeEvents below apperantly calls this method again. Do not quite understand why, so for now just bail out.
-			return;
-		}
-		
-		if (el.addEvent) { // If el doesn't have an addEvent method, there are no events to remove
-			if (type) {
-				if (type === 'unload') { // Moo self destructs before custom unload events
-					type = 'beforeunload';
-				}
-	
-				if (fn) {
-					el.removeEvent(type, fn);
-				} else if (el.removeEvents) { // #958
-					el.removeEvents(type);
-				}
-			} else {
-				el.removeEvents();
-			}
-		}
-	},
-
-	fireEvent: function (el, event, eventArguments, defaultFunction) {
-		var eventArgs = {
-			type: event,
-			target: el
-		};
-		// create an event object that keeps all functions
-		event = legacyEvent ? new Event(eventArgs) : new DOMEvent(eventArgs);
-		event = $extend(event, eventArguments);
-
-		// When running an event on the Chart.prototype, MooTools nests the target in event.event
-		if (!event.target && event.event) {
-			event.target = event.event.target;
-		}
-
-		// override the preventDefault function to be able to use
-		// this for custom events
-		event.preventDefault = function () {
-			defaultFunction = null;
-		};
-		// if fireEvent is not available on the object, there hasn't been added
-		// any events to it above
-		if (el.fireEvent) {
-			el.fireEvent(event.type, event);
-		}
-
-		// fire the default if it is passed and it is not prevented above
-		if (defaultFunction) {
-			defaultFunction(event);
-		}
-	},
-	
-	/**
-	 * Set back e.pageX and e.pageY that MooTools has abstracted away. #1165, #1346.
-	 */
-	washMouseEvent: function (e) {
-		if (e.page) {
-			e.pageX = e.page.x;
-			e.pageY = e.page.y;
-		}
-		return e;
-	},
-
-	/**
-	 * Stop running animations on the object
-	 */
-	stop: function (el) {
-		if (el.fx) {
-			el.fx.cancel();
-		}
-	}
-};
-
-}());
diff --git a/server/public/ueditor/third-party/highcharts/adapters/prototype-adapter.js b/server/public/ueditor/third-party/highcharts/adapters/prototype-adapter.js
deleted file mode 100644
index 9011558..0000000
--- a/server/public/ueditor/third-party/highcharts/adapters/prototype-adapter.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- Highcharts JS v3.0.6 (2013-10-04)
- Prototype adapter
-
- @author Michael Nelson, Torstein H酶nsi.
-
- Feel free to use and modify this script.
- Highcharts license: www.highcharts.com/license.
-*/
-var HighchartsAdapter=function(){var f=typeof Effect!=="undefined";return{init:function(a){if(f)Effect.HighchartsTransition=Class.create(Effect.Base,{initialize:function(b,c,d,g){var e;this.element=b;this.key=c;e=b.attr?b.attr(c):$(b).getStyle(c);if(c==="d")this.paths=a.init(b,b.d,d),this.toD=d,e=0,d=1;this.start(Object.extend(g||{},{from:e,to:d,attribute:c}))},setup:function(){HighchartsAdapter._extend(this.element);if(!this.element._highchart_animation)this.element._highchart_animation={};this.element._highchart_animation[this.key]=
-this},update:function(b){var c=this.paths,d=this.element;c&&(b=a.step(c[0],c[1],b,this.toD));d.attr?d.element&&d.attr(this.options.attribute,b):(c={},c[this.options.attribute]=b,$(d).setStyle(c))},finish:function(){this.element&&this.element._highchart_animation&&delete this.element._highchart_animation[this.key]}})},adapterRun:function(a,b){return parseInt($(a).getStyle(b),10)},getScript:function(a,b){var c=$$("head")[0];c&&c.appendChild((new Element("script",{type:"text/javascript",src:a})).observe("load",
-b))},addNS:function(a){var b=/^(?:click|mouse(?:down|up|over|move|out))$/;return/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/.test(a)||b.test(a)?a:"h:"+a},addEvent:function(a,b,c){a.addEventListener||a.attachEvent?Event.observe($(a),HighchartsAdapter.addNS(b),c):(HighchartsAdapter._extend(a),a._highcharts_observe(b,c))},animate:function(a,b,c){var d,c=c||{};c.delay=0;c.duration=(c.duration||500)/1E3;c.afterFinish=c.complete;if(f)for(d in b)new Effect.HighchartsTransition($(a),
-d,b[d],c);else{if(a.attr)for(d in b)a.attr(d,b[d]);c.complete&&c.complete()}a.attr||$(a).setStyle(b)},stop:function(a){var b;if(a._highcharts_extended&&a._highchart_animation)for(b in a._highchart_animation)a._highchart_animation[b].cancel()},each:function(a,b){$A(a).each(b)},inArray:function(a,b,c){return b?b.indexOf(a,c):-1},offset:function(a){return $(a).cumulativeOffset()},fireEvent:function(a,b,c,d){a.fire?a.fire(HighchartsAdapter.addNS(b),c):a._highcharts_extended&&(c=c||{},a._highcharts_fire(b,
-c));c&&c.defaultPrevented&&(d=null);d&&d(c)},removeEvent:function(a,b,c){$(a).stopObserving&&(b&&(b=HighchartsAdapter.addNS(b)),$(a).stopObserving(b,c));window===a?Event.stopObserving(a,b,c):(HighchartsAdapter._extend(a),a._highcharts_stop_observing(b,c))},washMouseEvent:function(a){return a},grep:function(a,b){return a.findAll(b)},map:function(a,b){return a.map(b)},_extend:function(a){a._highcharts_extended||Object.extend(a,{_highchart_events:{},_highchart_animation:null,_highcharts_extended:!0,
-_highcharts_observe:function(b,a){this._highchart_events[b]=[this._highchart_events[b],a].compact().flatten()},_highcharts_stop_observing:function(b,a){b?a?this._highchart_events[b]=[this._highchart_events[b]].compact().flatten().without(a):delete this._highchart_events[b]:this._highchart_events={}},_highcharts_fire:function(a,c){var d=this;(this._highchart_events[a]||[]).each(function(a){if(!c.stopped)c.preventDefault=function(){c.defaultPrevented=!0},c.target=d,a.bind(this)(c)===!1&&c.preventDefault()}.bind(this))}})}}}();
diff --git a/server/public/ueditor/third-party/highcharts/adapters/prototype-adapter.src.js b/server/public/ueditor/third-party/highcharts/adapters/prototype-adapter.src.js
deleted file mode 100644
index f5e1d35..0000000
--- a/server/public/ueditor/third-party/highcharts/adapters/prototype-adapter.src.js
+++ /dev/null
@@ -1,316 +0,0 @@
-/**
- * @license Highcharts JS v3.0.6 (2013-10-04)
- * Prototype adapter
- *
- * @author Michael Nelson, Torstein H酶nsi.
- *
- * Feel free to use and modify this script.
- * Highcharts license: www.highcharts.com/license.
- */
-
-// JSLint options:
-/*global Effect, Class, Event, Element, $, $$, $A */
-
-// Adapter interface between prototype and the Highcharts charting library
-var HighchartsAdapter = (function () {
-
-var hasEffect = typeof Effect !== 'undefined';
-
-return {
-
-	/**
-	 * Initialize the adapter. This is run once as Highcharts is first run.
-	 * @param {Object} pathAnim The helper object to do animations across adapters.
-	 */
-	init: function (pathAnim) {
-		if (hasEffect) {
-			/**
-			 * Animation for Highcharts SVG element wrappers only
-			 * @param {Object} element
-			 * @param {Object} attribute
-			 * @param {Object} to
-			 * @param {Object} options
-			 */
-			Effect.HighchartsTransition = Class.create(Effect.Base, {
-				initialize: function (element, attr, to, options) {
-					var from,
-						opts;
-
-					this.element = element;
-					this.key = attr;
-					from = element.attr ? element.attr(attr) : $(element).getStyle(attr);
-
-					// special treatment for paths
-					if (attr === 'd') {
-						this.paths = pathAnim.init(
-							element,
-							element.d,
-							to
-						);
-						this.toD = to;
-
-
-						// fake values in order to read relative position as a float in update
-						from = 0;
-						to = 1;
-					}
-
-					opts = Object.extend((options || {}), {
-						from: from,
-						to: to,
-						attribute: attr
-					});
-					this.start(opts);
-				},
-				setup: function () {
-					HighchartsAdapter._extend(this.element);
-					// If this is the first animation on this object, create the _highcharts_animation helper that
-					// contain pointers to the animation objects.
-					if (!this.element._highchart_animation) {
-						this.element._highchart_animation = {};
-					}
-
-					// Store a reference to this animation instance.
-					this.element._highchart_animation[this.key] = this;
-				},
-				update: function (position) {
-					var paths = this.paths,
-						element = this.element,
-						obj;
-
-					if (paths) {
-						position = pathAnim.step(paths[0], paths[1], position, this.toD);
-					}
-
-					if (element.attr) { // SVGElement
-						
-						if (element.element) { // If not, it has been destroyed (#1405)
-							element.attr(this.options.attribute, position);
-						}
-					
-					} else { // HTML, #409
-						obj = {};
-						obj[this.options.attribute] = position;
-						$(element).setStyle(obj);
-					}
-					
-				},
-				finish: function () {
-					// Delete the property that holds this animation now that it is finished.
-					// Both canceled animations and complete ones gets a 'finish' call.
-					if (this.element && this.element._highchart_animation) { // #1405
-						delete this.element._highchart_animation[this.key];
-					}
-				}
-			});
-		}
-	},
-	
-	/**
-	 * Run a general method on the framework, following jQuery syntax
-	 * @param {Object} el The HTML element
-	 * @param {String} method Which method to run on the wrapped element
-	 */
-	adapterRun: function (el, method) {
-		
-		// This currently works for getting inner width and height. If adding
-		// more methods later, we need a conditional implementation for each.
-		return parseInt($(el).getStyle(method), 10);
-		
-	},
-
-	/**
-	 * Downloads a script and executes a callback when done.
-	 * @param {String} scriptLocation
-	 * @param {Function} callback
-	 */
-	getScript: function (scriptLocation, callback) {
-		var head = $$('head')[0]; // Returns an array, so pick the first element.
-		if (head) {
-			// Append a new 'script' element, set its type and src attributes, add a 'load' handler that calls the callback
-			head.appendChild(new Element('script', { type: 'text/javascript', src: scriptLocation}).observe('load', callback));
-		}
-	},
-
-	/**
-	 * Custom events in prototype needs to be namespaced. This method adds a namespace 'h:' in front of
-	 * events that are not recognized as native.
-	 */
-	addNS: function (eventName) {
-		var HTMLEvents = /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
-			MouseEvents = /^(?:click|mouse(?:down|up|over|move|out))$/;
-		return (HTMLEvents.test(eventName) || MouseEvents.test(eventName)) ?
-			eventName :
-			'h:' + eventName;
-	},
-
-	// el needs an event to be attached. el is not necessarily a dom element
-	addEvent: function (el, event, fn) {
-		if (el.addEventListener || el.attachEvent) {
-			Event.observe($(el), HighchartsAdapter.addNS(event), fn);
-
-		} else {
-			HighchartsAdapter._extend(el);
-			el._highcharts_observe(event, fn);
-		}
-	},
-
-	// motion makes things pretty. use it if effects is loaded, if not... still get to the end result.
-	animate: function (el, params, options) {
-		var key,
-			fx;
-
-		// default options
-		options = options || {};
-		options.delay = 0;
-		options.duration = (options.duration || 500) / 1000;
-		options.afterFinish = options.complete;
-
-		// animate wrappers and DOM elements
-		if (hasEffect) {
-			for (key in params) {
-				// The fx variable is seemingly thrown away here, but the Effect.setup will add itself to the _highcharts_animation object
-				// on the element itself so its not really lost.
-				fx = new Effect.HighchartsTransition($(el), key, params[key], options);
-			}
-		} else {
-			if (el.attr) { // #409 without effects
-				for (key in params) {
-					el.attr(key, params[key]);
-				}
-			}
-			if (options.complete) {
-				options.complete();
-			}
-		}
-
-		if (!el.attr) { // HTML element, #409
-			$(el).setStyle(params);
-		}
-	},
-
-	// this only occurs in higcharts 2.0+
-	stop: function (el) {
-		var key;
-		if (el._highcharts_extended && el._highchart_animation) {
-			for (key in el._highchart_animation) {
-				// Cancel the animation
-				// The 'finish' function in the Effect object will remove the reference
-				el._highchart_animation[key].cancel();
-			}
-		}
-	},
-
-	// um.. each
-	each: function (arr, fn) {
-		$A(arr).each(fn);
-	},
-	
-	inArray: function (item, arr, from) {
-		return arr ? arr.indexOf(item, from) : -1;
-	},
-
-	/**
-	 * Get the cumulative offset relative to the top left of the page. This method, unlike its
-	 * jQuery and MooTools counterpart, still suffers from issue #208 regarding the position
-	 * of a chart within a fixed container.
-	 */
-	offset: function (el) {
-		return $(el).cumulativeOffset();
-	},
-
-	// fire an event based on an event name (event) and an object (el).
-	// again, el may not be a dom element
-	fireEvent: function (el, event, eventArguments, defaultFunction) {
-		if (el.fire) {
-			el.fire(HighchartsAdapter.addNS(event), eventArguments);
-		} else if (el._highcharts_extended) {
-			eventArguments = eventArguments || {};
-			el._highcharts_fire(event, eventArguments);
-		}
-
-		if (eventArguments && eventArguments.defaultPrevented) {
-			defaultFunction = null;
-		}
-
-		if (defaultFunction) {
-			defaultFunction(eventArguments);
-		}
-	},
-
-	removeEvent: function (el, event, handler) {
-		if ($(el).stopObserving) {
-			if (event) {
-				event = HighchartsAdapter.addNS(event);
-			}
-			$(el).stopObserving(event, handler);
-		} if (window === el) {
-			Event.stopObserving(el, event, handler);
-		} else {
-			HighchartsAdapter._extend(el);
-			el._highcharts_stop_observing(event, handler);
-		}
-	},
-	
-	washMouseEvent: function (e) {
-		return e;
-	},
-
-	// um, grep
-	grep: function (arr, fn) {
-		return arr.findAll(fn);
-	},
-
-	// um, map
-	map: function (arr, fn) {
-		return arr.map(fn);
-	},
-
-	// extend an object to handle highchart events (highchart objects, not svg elements).
-	// this is a very simple way of handling events but whatever, it works (i think)
-	_extend: function (object) {
-		if (!object._highcharts_extended) {
-			Object.extend(object, {
-				_highchart_events: {},
-				_highchart_animation: null,
-				_highcharts_extended: true,
-				_highcharts_observe: function (name, fn) {
-					this._highchart_events[name] = [this._highchart_events[name], fn].compact().flatten();
-				},
-				_highcharts_stop_observing: function (name, fn) {
-					if (name) {
-						if (fn) {
-							this._highchart_events[name] = [this._highchart_events[name]].compact().flatten().without(fn);
-						} else {
-							delete this._highchart_events[name];
-						}
-					} else {
-						this._highchart_events = {};
-					}
-				},
-				_highcharts_fire: function (name, args) {
-					var target = this;
-					(this._highchart_events[name] || []).each(function (fn) {
-						// args is never null here
-						if (args.stopped) {
-							return; // "throw $break" wasn't working. i think because of the scope of 'this'.
-						}
-
-						// Attach a simple preventDefault function to skip default handler if called
-						args.preventDefault = function () {
-							args.defaultPrevented = true;
-						};
-						args.target = target;
-
-						// If the event handler return false, prevent the default handler from executing
-						if (fn.bind(this)(args) === false) {
-							args.preventDefault();
-						}
-					}
-.bind(this));
-				}
-			});
-		}
-	}
-};
-}());
diff --git a/server/public/ueditor/third-party/highcharts/adapters/standalone-framework.js b/server/public/ueditor/third-party/highcharts/adapters/standalone-framework.js
deleted file mode 100644
index 5f5d7f9..0000000
--- a/server/public/ueditor/third-party/highcharts/adapters/standalone-framework.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- Highcharts JS v3.0.6 (2013-10-04)
-
- Standalone Highcharts Framework
-
- License: MIT License
-*/
-var HighchartsAdapter=function(){function o(c){function a(a,b,d){a.removeEventListener(b,d,!1)}function d(a,b,d){d=a.HCProxiedMethods[d.toString()];a.detachEvent("on"+b,d)}function b(b,c){var f=b.HCEvents,i,g,k,j;if(b.removeEventListener)i=a;else if(b.attachEvent)i=d;else return;c?(g={},g[c]=!0):g=f;for(j in g)if(f[j])for(k=f[j].length;k--;)i(b,j,f[j][k])}c.HCExtended||Highcharts.extend(c,{HCExtended:!0,HCEvents:{},bind:function(b,a){var d=this,c=this.HCEvents,g;if(d.addEventListener)d.addEventListener(b,
-a,!1);else if(d.attachEvent){g=function(b){a.call(d,b)};if(!d.HCProxiedMethods)d.HCProxiedMethods={};d.HCProxiedMethods[a.toString()]=g;d.attachEvent("on"+b,g)}c[b]===r&&(c[b]=[]);c[b].push(a)},unbind:function(c,h){var f,i;c?(f=this.HCEvents[c]||[],h?(i=HighchartsAdapter.inArray(h,f),i>-1&&(f.splice(i,1),this.HCEvents[c]=f),this.removeEventListener?a(this,c,h):this.attachEvent&&d(this,c,h)):(b(this,c),this.HCEvents[c]=[])):(b(this),this.HCEvents={})},trigger:function(b,a){var d=this.HCEvents[b]||
-[],c=d.length,g,k,j;k=function(){a.defaultPrevented=!0};for(g=0;g<c;g++){j=d[g];if(a.stopped)break;a.preventDefault=k;a.target=this;a.type=b;j.call(this,a)===!1&&a.preventDefault()}}});return c}var r,l=document,p=[],m=[],q,n;Math.easeInOutSine=function(c,a,d,b){return-d/2*(Math.cos(Math.PI*c/b)-1)+a};return{init:function(c){if(!l.defaultView)this._getStyle=function(a,d){var b;return a.style[d]?a.style[d]:(d==="opacity"&&(d="filter"),b=a.currentStyle[d.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()})],
-d==="filter"&&(b=b.replace(/alpha\(opacity=([0-9]+)\)/,function(b,a){return a/100})),b===""?1:b)},this.adapterRun=function(a,d){var b={width:"clientWidth",height:"clientHeight"}[d];if(b)return a.style.zoom=1,a[b]-2*parseInt(HighchartsAdapter._getStyle(a,"padding"),10)};if(!Array.prototype.forEach)this.each=function(a,d){for(var b=0,c=a.length;b<c;b++)if(d.call(a[b],a[b],b,a)===!1)return b};if(!Array.prototype.indexOf)this.inArray=function(a,d){var b,c=0;if(d)for(b=d.length;c<b;c++)if(d[c]===a)return c;
-return-1};if(!Array.prototype.filter)this.grep=function(a,d){for(var b=[],c=0,h=a.length;c<h;c++)d(a[c],c)&&b.push(a[c]);return b};n=function(a,c,b){this.options=c;this.elem=a;this.prop=b};n.prototype={update:function(){var a;a=this.paths;var d=this.elem,b=d.element;a&&b?d.attr("d",c.step(a[0],a[1],this.now,this.toD)):d.attr?b&&d.attr(this.prop,this.now):(a={},a[d]=this.now+this.unit,Highcharts.css(d,a));this.options.step&&this.options.step.call(this.elem,this.now,this)},custom:function(a,c,b){var e=
-this,h=function(a){return e.step(a)},f;this.startTime=+new Date;this.start=a;this.end=c;this.unit=b;this.now=this.start;this.pos=this.state=0;h.elem=this.elem;h()&&m.push(h)===1&&(q=setInterval(function(){for(f=0;f<m.length;f++)m[f]()||m.splice(f--,1);m.length||clearInterval(q)},13))},step:function(a){var c=+new Date,b;b=this.options;var e;if(this.elem.stopAnimation)b=!1;else if(a||c>=b.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();a=this.options.curAnim[this.prop]=
-!0;for(e in b.curAnim)b.curAnim[e]!==!0&&(a=!1);a&&b.complete&&b.complete.call(this.elem);b=!1}else e=c-this.startTime,this.state=e/b.duration,this.pos=b.easing(e,0,1,b.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update(),b=!0;return b}};this.animate=function(a,d,b){var e,h="",f,i,g;a.stopAnimation=!1;if(typeof b!=="object"||b===null)e=arguments,b={duration:e[2],easing:e[3],complete:e[4]};if(typeof b.duration!=="number")b.duration=400;b.easing=Math[b.easing]||Math.easeInOutSine;
-b.curAnim=Highcharts.extend({},d);for(g in d)i=new n(a,b,g),f=null,g==="d"?(i.paths=c.init(a,a.d,d.d),i.toD=d.d,e=0,f=1):a.attr?e=a.attr(g):(e=parseFloat(HighchartsAdapter._getStyle(a,g))||0,g!=="opacity"&&(h="px")),f||(f=parseFloat(d[g])),i.custom(e,f,h)}},_getStyle:function(c,a){return window.getComputedStyle(c).getPropertyValue(a)},getScript:function(c,a){var d=l.getElementsByTagName("head")[0],b=l.createElement("script");b.type="text/javascript";b.src=c;b.onload=a;d.appendChild(b)},inArray:function(c,
-a){return a.indexOf?a.indexOf(c):p.indexOf.call(a,c)},adapterRun:function(c,a){return parseInt(HighchartsAdapter._getStyle(c,a),10)},grep:function(c,a){return p.filter.call(c,a)},map:function(c,a){for(var d=[],b=0,e=c.length;b<e;b++)d[b]=a.call(c[b],c[b],b,c);return d},offset:function(c){for(var a=0,d=0;c;)a+=c.offsetLeft,d+=c.offsetTop,c=c.offsetParent;return{left:a,top:d}},addEvent:function(c,a,d){o(c).bind(a,d)},removeEvent:function(c,a,d){o(c).unbind(a,d)},fireEvent:function(c,a,d,b){var e;l.createEvent&&
-(c.dispatchEvent||c.fireEvent)?(e=l.createEvent("Events"),e.initEvent(a,!0,!0),e.target=c,Highcharts.extend(e,d),c.dispatchEvent?c.dispatchEvent(e):c.fireEvent(a,e)):c.HCExtended===!0&&(d=d||{},c.trigger(a,d));d&&d.defaultPrevented&&(b=null);b&&b(d)},washMouseEvent:function(c){return c},stop:function(c){c.stopAnimation=!0},each:function(c,a){return Array.prototype.forEach.call(c,a)}}}();
diff --git a/server/public/ueditor/third-party/highcharts/adapters/standalone-framework.src.js b/server/public/ueditor/third-party/highcharts/adapters/standalone-framework.src.js
deleted file mode 100644
index daa94cc..0000000
--- a/server/public/ueditor/third-party/highcharts/adapters/standalone-framework.src.js
+++ /dev/null
@@ -1,583 +0,0 @@
-/**
- * @license Highcharts JS v3.0.6 (2013-10-04)
- *
- * Standalone Highcharts Framework
- *
- * License: MIT License
- */
-
-
-/*global Highcharts */
-var HighchartsAdapter = (function () {
-
-var UNDEFINED,
-	doc = document,
-	emptyArray = [],
-	timers = [],
-	timerId,
-	Fx;
-
-Math.easeInOutSine = function (t, b, c, d) {
-	return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;
-};
-
-
-
-/**
- * Extend given object with custom events
- */
-function augment(obj) {
-	function removeOneEvent(el, type, fn) {
-		el.removeEventListener(type, fn, false);
-	}
-
-	function IERemoveOneEvent(el, type, fn) {
-		fn = el.HCProxiedMethods[fn.toString()];
-		el.detachEvent('on' + type, fn);
-	}
-
-	function removeAllEvents(el, type) {
-		var events = el.HCEvents,
-			remove,
-			types,
-			len,
-			n;
-
-		if (el.removeEventListener) {
-			remove = removeOneEvent;
-		} else if (el.attachEvent) {
-			remove = IERemoveOneEvent;
-		} else {
-			return; // break on non-DOM events
-		}
-
-
-		if (type) {
-			types = {};
-			types[type] = true;
-		} else {
-			types = events;
-		}
-
-		for (n in types) {
-			if (events[n]) {
-				len = events[n].length;
-				while (len--) {
-					remove(el, n, events[n][len]);
-				}
-			}
-		}
-	}
-
-	if (!obj.HCExtended) {
-		Highcharts.extend(obj, {
-			HCExtended: true,
-
-			HCEvents: {},
-
-			bind: function (name, fn) {
-				var el = this,
-					events = this.HCEvents,
-					wrappedFn;
-
-				// handle DOM events in modern browsers
-				if (el.addEventListener) {
-					el.addEventListener(name, fn, false);
-
-				// handle old IE implementation
-				} else if (el.attachEvent) {
-					
-					wrappedFn = function (e) {
-						fn.call(el, e);
-					};
-
-					if (!el.HCProxiedMethods) {
-						el.HCProxiedMethods = {};
-					}
-
-					// link wrapped fn with original fn, so we can get this in removeEvent
-					el.HCProxiedMethods[fn.toString()] = wrappedFn;
-
-					el.attachEvent('on' + name, wrappedFn);
-				}
-
-
-				if (events[name] === UNDEFINED) {
-					events[name] = [];
-				}
-
-				events[name].push(fn);
-			},
-
-			unbind: function (name, fn) {
-				var events,
-					index;
-
-				if (name) {
-					events = this.HCEvents[name] || [];
-					if (fn) {
-						index = HighchartsAdapter.inArray(fn, events);
-						if (index > -1) {
-							events.splice(index, 1);
-							this.HCEvents[name] = events;
-						}
-						if (this.removeEventListener) {
-							removeOneEvent(this, name, fn);
-						} else if (this.attachEvent) {
-							IERemoveOneEvent(this, name, fn);
-						}
-					} else {
-						removeAllEvents(this, name);
-						this.HCEvents[name] = [];
-					}
-				} else {
-					removeAllEvents(this);
-					this.HCEvents = {};
-				}
-			},
-
-			trigger: function (name, args) {
-				var events = this.HCEvents[name] || [],
-					target = this,
-					len = events.length,
-					i,
-					preventDefault,
-					fn;
-
-				// Attach a simple preventDefault function to skip default handler if called
-				preventDefault = function () {
-					args.defaultPrevented = true;
-				};
-				
-				for (i = 0; i < len; i++) {
-					fn = events[i];
-
-					// args is never null here
-					if (args.stopped) {
-						return;
-					}
-
-					args.preventDefault = preventDefault;
-					args.target = target;
-					args.type = name; // #2297	
-					
-					// If the event handler return false, prevent the default handler from executing
-					if (fn.call(this, args) === false) {
-						args.preventDefault();
-					}
-				}
-			}
-		});
-	}
-
-	return obj;
-}
-
-
-return {
-	/**
-	 * Initialize the adapter. This is run once as Highcharts is first run.
-	 */
-	init: function (pathAnim) {
-
-		/**
-		 * Compatibility section to add support for legacy IE. This can be removed if old IE 
-		 * support is not needed.
-		 */
-		if (!doc.defaultView) {
-			this._getStyle = function (el, prop) {
-				var val;
-				if (el.style[prop]) {
-					return el.style[prop];
-				} else {
-					if (prop === 'opacity') {
-						prop = 'filter';
-					}
-					/*jslint unparam: true*/
-					val = el.currentStyle[prop.replace(/\-(\w)/g, function (a, b) { return b.toUpperCase(); })];
-					if (prop === 'filter') {
-						val = val.replace(
-							/alpha\(opacity=([0-9]+)\)/, 
-							function (a, b) { 
-								return b / 100; 
-							}
-						);
-					}
-					/*jslint unparam: false*/
-					return val === '' ? 1 : val;
-				} 
-			};
-			this.adapterRun = function (elem, method) {
-				var alias = { width: 'clientWidth', height: 'clientHeight' }[method];
-
-				if (alias) {
-					elem.style.zoom = 1;
-					return elem[alias] - 2 * parseInt(HighchartsAdapter._getStyle(elem, 'padding'), 10);
-				}
-			};
-		}
-
-		if (!Array.prototype.forEach) {
-			this.each = function (arr, fn) { // legacy
-				var i = 0, 
-					len = arr.length;
-				for (; i < len; i++) {
-					if (fn.call(arr[i], arr[i], i, arr) === false) {
-						return i;
-					}
-				}
-			};
-		}
-
-		if (!Array.prototype.indexOf) {
-			this.inArray = function (item, arr) {
-				var len, 
-					i = 0;
-
-				if (arr) {
-					len = arr.length;
-					
-					for (; i < len; i++) {
-						if (arr[i] === item) {
-							return i;
-						}
-					}
-				}
-
-				return -1;
-			};
-		}
-
-		if (!Array.prototype.filter) {
-			this.grep = function (elements, callback) {
-				var ret = [],
-					i = 0,
-					length = elements.length;
-
-				for (; i < length; i++) {
-					if (!!callback(elements[i], i)) {
-						ret.push(elements[i]);
-					}
-				}
-
-				return ret;
-			};
-		}
-
-		//--- End compatibility section ---
-
-
-		/**
-		 * Start of animation specific code
-		 */
-		Fx = function (elem, options, prop) {
-			this.options = options;
-			this.elem = elem;
-			this.prop = prop;
-		};
-		Fx.prototype = {
-			
-			update: function () {
-				var styles,
-					paths = this.paths,
-					elem = this.elem,
-					elemelem = elem.element; // if destroyed, it is null
-
-				// Animating a path definition on SVGElement
-				if (paths && elemelem) {
-					elem.attr('d', pathAnim.step(paths[0], paths[1], this.now, this.toD));
-				
-				// Other animations on SVGElement
-				} else if (elem.attr) {
-					if (elemelem) {
-						elem.attr(this.prop, this.now);
-					}
-
-				// HTML styles
-				} else {
-					styles = {};
-					styles[elem] = this.now + this.unit;
-					Highcharts.css(elem, styles);
-				}
-				
-				if (this.options.step) {
-					this.options.step.call(this.elem, this.now, this);
-				}
-
-			},
-			custom: function (from, to, unit) {
-				var self = this,
-					t = function (gotoEnd) {
-						return self.step(gotoEnd);
-					},
-					i;
-
-				this.startTime = +new Date();
-				this.start = from;
-				this.end = to;
-				this.unit = unit;
-				this.now = this.start;
-				this.pos = this.state = 0;
-
-				t.elem = this.elem;
-
-				if (t() && timers.push(t) === 1) {
-					timerId = setInterval(function () {
-						
-						for (i = 0; i < timers.length; i++) {
-							if (!timers[i]()) {
-								timers.splice(i--, 1);
-							}
-						}
-
-						if (!timers.length) {
-							clearInterval(timerId);
-						}
-					}, 13);
-				}
-			},
-			
-			step: function (gotoEnd) {
-				var t = +new Date(),
-					ret,
-					done,
-					options = this.options,
-					i;
-
-				if (this.elem.stopAnimation) {
-					ret = false;
-
-				} else if (gotoEnd || t >= options.duration + this.startTime) {
-					this.now = this.end;
-					this.pos = this.state = 1;
-					this.update();
-
-					this.options.curAnim[this.prop] = true;
-
-					done = true;
-					for (i in options.curAnim) {
-						if (options.curAnim[i] !== true) {
-							done = false;
-						}
-					}
-
-					if (done) {
-						if (options.complete) {
-							options.complete.call(this.elem);
-						}
-					}
-					ret = false;
-
-				} else {
-					var n = t - this.startTime;
-					this.state = n / options.duration;
-					this.pos = options.easing(n, 0, 1, options.duration);
-					this.now = this.start + ((this.end - this.start) * this.pos);
-					this.update();
-					ret = true;
-				}
-				return ret;
-			}
-		};
-
-		/**
-		 * The adapter animate method
-		 */
-		this.animate = function (el, prop, opt) {
-			var start,
-				unit = '',
-				end,
-				fx,
-				args,
-				name;
-
-			el.stopAnimation = false; // ready for new
-
-			if (typeof opt !== 'object' || opt === null) {
-				args = arguments;
-				opt = {
-					duration: args[2],
-					easing: args[3],
-					complete: args[4]
-				};
-			}
-			if (typeof opt.duration !== 'number') {
-				opt.duration = 400;
-			}
-			opt.easing = Math[opt.easing] || Math.easeInOutSine;
-			opt.curAnim = Highcharts.extend({}, prop);
-			
-			for (name in prop) {
-				fx = new Fx(el, opt, name);
-				end = null;
-				
-				if (name === 'd') {
-					fx.paths = pathAnim.init(
-						el,
-						el.d,
-						prop.d
-					);
-					fx.toD = prop.d;
-					start = 0;
-					end = 1;
-				} else if (el.attr) {
-					start = el.attr(name);
-				} else {
-					start = parseFloat(HighchartsAdapter._getStyle(el, name)) || 0;
-					if (name !== 'opacity') {
-						unit = 'px';
-					}
-				}
-	
-				if (!end) {
-					end = parseFloat(prop[name]);
-				}
-				fx.custom(start, end, unit);
-			}	
-		};
-	},
-
-	/**
-	 * Internal method to return CSS value for given element and property
-	 */
-	_getStyle: function (el, prop) {
-		return window.getComputedStyle(el).getPropertyValue(prop);
-	},
-
-	/**
-	 * Downloads a script and executes a callback when done.
-	 * @param {String} scriptLocation
-	 * @param {Function} callback
-	 */
-	getScript: function (scriptLocation, callback) {
-		// We cannot assume that Assets class from mootools-more is available so instead insert a script tag to download script.
-		var head = doc.getElementsByTagName('head')[0],
-			script = doc.createElement('script');
-
-		script.type = 'text/javascript';
-		script.src = scriptLocation;
-		script.onload = callback;
-
-		head.appendChild(script);
-	},
-
-	/**
-	 * Return the index of an item in an array, or -1 if not found
-	 */
-	inArray: function (item, arr) {
-		return arr.indexOf ? arr.indexOf(item) : emptyArray.indexOf.call(arr, item);
-	},
-
-
-	/**
-	 * A direct link to adapter methods
-	 */
-	adapterRun: function (elem, method) {
-		return parseInt(HighchartsAdapter._getStyle(elem, method), 10);
-	},
-
-	/**
-	 * Filter an array
-	 */
-	grep: function (elements, callback) {
-		return emptyArray.filter.call(elements, callback);
-	},
-
-	/**
-	 * Map an array
-	 */
-	map: function (arr, fn) {
-		var results = [], i = 0, len = arr.length;
-
-		for (; i < len; i++) {
-			results[i] = fn.call(arr[i], arr[i], i, arr);
-		}
-
-		return results;
-	},
-
-	offset: function (el) {
-		var left = 0,
-			top = 0;
-
-		while (el) {
-			left += el.offsetLeft;
-			top += el.offsetTop;
-			el = el.offsetParent;
-		}
-
-		return {
-			left: left,
-			top: top
-		};
-	},
-
-	/**
-	 * Add an event listener
-	 */
-	addEvent: function (el, type, fn) {
-		augment(el).bind(type, fn);
-	},
-
-	/**
-	 * Remove event added with addEvent
-	 */
-	removeEvent: function (el, type, fn) {
-		augment(el).unbind(type, fn);
-	},
-
-	/**
-	 * Fire an event on a custom object
-	 */
-	fireEvent: function (el, type, eventArguments, defaultFunction) {
-		var e;
-
-		if (doc.createEvent && (el.dispatchEvent || el.fireEvent)) {
-			e = doc.createEvent('Events');
-			e.initEvent(type, true, true);
-			e.target = el;
-
-			Highcharts.extend(e, eventArguments);
-
-			if (el.dispatchEvent) {
-				el.dispatchEvent(e);
-			} else {
-				el.fireEvent(type, e);
-			}
-
-		} else if (el.HCExtended === true) {
-			eventArguments = eventArguments || {};
-			el.trigger(type, eventArguments);
-		}
-
-		if (eventArguments && eventArguments.defaultPrevented) {
-			defaultFunction = null;
-		}
-
-		if (defaultFunction) {
-			defaultFunction(eventArguments);
-		}
-	},
-
-	washMouseEvent: function (e) {
-		return e;
-	},
-
-
-	/**
-	 * Stop running animation
-	 */
-	stop: function (el) {
-		el.stopAnimation = true;
-	},
-
-	/**
-	 * Utility for iterating over an array. Parameters are reversed compared to jQuery.
-	 * @param {Array} arr
-	 * @param {Function} fn
-	 */
-	each: function (arr, fn) { // modern browsers
-		return Array.prototype.forEach.call(arr, fn);
-	}
-};
-}());
diff --git a/server/public/ueditor/third-party/highcharts/highcharts-more.js b/server/public/ueditor/third-party/highcharts/highcharts-more.js
deleted file mode 100644
index 431f4fe..0000000
--- a/server/public/ueditor/third-party/highcharts/highcharts-more.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- Highcharts JS v3.0.6 (2013-10-04)
-
- (c) 2009-2013 Torstein H酶nsi
-
- License: www.highcharts.com/license
-*/
-(function(j,C){function J(a,b,c){this.init.call(this,a,b,c)}function K(a,b,c){a.call(this,b,c);if(this.chart.polar)this.closeSegment=function(a){var c=this.xAxis.center;a.push("L",c[0],c[1])},this.closedStacks=!0}function L(a,b){var c=this.chart,d=this.options.animation,g=this.group,f=this.markerGroup,e=this.xAxis.center,i=c.plotLeft,n=c.plotTop;if(c.polar){if(c.renderer.isSVG)if(d===!0&&(d={}),b){if(c={translateX:e[0]+i,translateY:e[1]+n,scaleX:0.001,scaleY:0.001},g.attr(c),f)f.attrSetters=g.attrSetters,
-f.attr(c)}else c={translateX:i,translateY:n,scaleX:1,scaleY:1},g.animate(c,d),f&&f.animate(c,d),this.animate=null}else a.call(this,b)}var P=j.arrayMin,Q=j.arrayMax,s=j.each,F=j.extend,p=j.merge,R=j.map,r=j.pick,v=j.pInt,m=j.getOptions().plotOptions,h=j.seriesTypes,x=j.extendClass,M=j.splat,o=j.wrap,N=j.Axis,u=j.Tick,z=j.Series,q=h.column.prototype,t=Math,D=t.round,A=t.floor,S=t.max,w=function(){};F(J.prototype,{init:function(a,b,c){var d=this,g=d.defaultOptions;d.chart=b;if(b.angular)g.background=
-{};d.options=a=p(g,a);(a=a.background)&&s([].concat(M(a)).reverse(),function(a){var b=a.backgroundColor,a=p(d.defaultBackgroundOptions,a);if(b)a.backgroundColor=b;a.color=a.backgroundColor;c.options.plotBands.unshift(a)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{shape:"circle",borderWidth:1,borderColor:"silver",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#FFF"],[1,"#DDD"]]},from:Number.MIN_VALUE,innerRadius:0,to:Number.MAX_VALUE,
-outerRadius:"105%"}});var G=N.prototype,u=u.prototype,T={getOffset:w,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:w,setCategories:w,setTitle:w},O={isRadial:!0,defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,plotBands:[],tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2},defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,
-distance:15,x:0,y:null},maxPadding:0,minPadding:0,plotBands:[],showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},plotBands:[],showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){this.options=p(this.defaultOptions,this.defaultRadialOptions,a)},getOffset:function(){G.getOffset.call(this);this.chart.axisOffset[this.side]=0},getLinePath:function(a,b){var c=this.center,b=r(b,c[2]/2-this.offset);return this.chart.renderer.symbols.arc(this.left+
-c[0],this.top+c[1],b,b,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})},setAxisTranslation:function(){G.setAxisTranslation.call(this);if(this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.isXAxis))this.minPixelPadding=this.transA*this.minPointOffset+(this.reversed?(this.endAngleRad-this.startAngleRad)/4:0)},beforeSetTickPositions:function(){this.autoConnect&&(this.max+=this.categories&&
-1||this.pointRange||this.closestPointRange||0)},setAxisSize:function(){G.setAxisSize.call(this);if(this.isRadial)this.center=this.pane.center=h.pie.prototype.getCenter.call(this.pane),this.len=this.width=this.height=this.isCircular?this.center[2]*(this.endAngleRad-this.startAngleRad)/2:this.center[2]/2},getPosition:function(a,b){if(!this.isCircular)b=this.translate(a),a=this.min;return this.postTranslate(this.translate(a),r(b,this.center[2]/2)-this.offset)},postTranslate:function(a,b){var c=this.chart,
-d=this.center,a=this.startAngleRad+a;return{x:c.plotLeft+d[0]+Math.cos(a)*b,y:c.plotTop+d[1]+Math.sin(a)*b}},getPlotBandPath:function(a,b,c){var d=this.center,g=this.startAngleRad,f=d[2]/2,e=[r(c.outerRadius,"100%"),c.innerRadius,r(c.thickness,10)],i=/%$/,n,l=this.isCircular;this.options.gridLineInterpolation==="polygon"?d=this.getPlotLinePath(a).concat(this.getPlotLinePath(b,!0)):(l||(e[0]=this.translate(a),e[1]=this.translate(b)),e=R(e,function(a){i.test(a)&&(a=v(a,10)*f/100);return a}),c.shape===
-"circle"||!l?(a=-Math.PI/2,b=Math.PI*1.5,n=!0):(a=g+this.translate(a),b=g+this.translate(b)),d=this.chart.renderer.symbols.arc(this.left+d[0],this.top+d[1],e[0],e[0],{start:a,end:b,innerR:r(e[1],e[0]-e[2]),open:n}));return d},getPlotLinePath:function(a,b){var c=this.center,d=this.chart,g=this.getPosition(a),f,e,i;this.isCircular?i=["M",c[0]+d.plotLeft,c[1]+d.plotTop,"L",g.x,g.y]:this.options.gridLineInterpolation==="circle"?(a=this.translate(a))&&(i=this.getLinePath(0,a)):(f=d.xAxis[0],i=[],a=this.translate(a),
-c=f.tickPositions,f.autoConnect&&(c=c.concat([c[0]])),b&&(c=[].concat(c).reverse()),s(c,function(c,b){e=f.getPosition(c,a);i.push(b?"L":"M",e.x,e.y)}));return i},getTitlePosition:function(){var a=this.center,b=this.chart,c=this.options.title;return{x:b.plotLeft+a[0]+(c.x||0),y:b.plotTop+a[1]-{high:0.5,middle:0.25,low:0}[c.align]*a[2]+(c.y||0)}}};o(G,"init",function(a,b,c){var k;var d=b.angular,g=b.polar,f=c.isX,e=d&&f,i,n;n=b.options;var l=c.pane||0;if(d){if(F(this,e?T:O),i=!f)this.defaultRadialOptions=
-this.defaultRadialGaugeOptions}else if(g)F(this,O),this.defaultRadialOptions=(i=f)?this.defaultRadialXOptions:p(this.defaultYAxisOptions,this.defaultRadialYOptions);a.call(this,b,c);if(!e&&(d||g)){a=this.options;if(!b.panes)b.panes=[];this.pane=(k=b.panes[l]=b.panes[l]||new J(M(n.pane)[l],b,this),l=k);l=l.options;b.inverted=!1;n.chart.zoomType=null;this.startAngleRad=b=(l.startAngle-90)*Math.PI/180;this.endAngleRad=n=(r(l.endAngle,l.startAngle+360)-90)*Math.PI/180;this.offset=a.offset||0;if((this.isCircular=
-i)&&c.max===C&&n-b===2*Math.PI)this.autoConnect=!0}});o(u,"getPosition",function(a,b,c,d,g){var f=this.axis;return f.getPosition?f.getPosition(c):a.call(this,b,c,d,g)});o(u,"getLabelPosition",function(a,b,c,d,g,f,e,i,n){var l=this.axis,k=f.y,h=f.align,j=(l.translate(this.pos)+l.startAngleRad+Math.PI/2)/Math.PI*180%360;l.isRadial?(a=l.getPosition(this.pos,l.center[2]/2+r(f.distance,-25)),f.rotation==="auto"?d.attr({rotation:j}):k===null&&(k=v(d.styles.lineHeight)*0.9-d.getBBox().height/2),h===null&&
-(h=l.isCircular?j>20&&j<160?"left":j>200&&j<340?"right":"center":"center",d.attr({align:h})),a.x+=f.x,a.y+=k):a=a.call(this,b,c,d,g,f,e,i,n);return a});o(u,"getMarkPath",function(a,b,c,d,g,f,e){var i=this.axis;i.isRadial?(a=i.getPosition(this.pos,i.center[2]/2+d),b=["M",b,c,"L",a.x,a.y]):b=a.call(this,b,c,d,g,f,e);return b});m.arearange=p(m.area,{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'<span style="color:{series.color}">{series.name}</span>: <b>{point.low}</b> - <b>{point.high}</b><br/>'},
-trackByArea:!0,dataLabels:{verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0}});h.arearange=j.extendClass(h.area,{type:"arearange",pointArrayMap:["low","high"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",getSegments:function(){var a=this;s(a.points,function(b){if(!a.options.connectNulls&&(b.low===null||b.high===null))b.y=null;else if(b.low===null&&b.high!==null)b.y=b.high});z.prototype.getSegments.call(this)},translate:function(){var a=this.yAxis;h.area.prototype.translate.apply(this);
-s(this.points,function(b){var c=b.low,d=b.high,g=b.plotY;d===null&&c===null?b.y=null:c===null?(b.plotLow=b.plotY=null,b.plotHigh=a.translate(d,0,1,0,1)):d===null?(b.plotLow=g,b.plotHigh=null):(b.plotLow=g,b.plotHigh=a.translate(d,0,1,0,1))})},getSegmentPath:function(a){var b,c=[],d=a.length,g=z.prototype.getSegmentPath,f,e;e=this.options;var i=e.step;for(b=HighchartsAdapter.grep(a,function(a){return a.plotLow!==null});d--;)f=a[d],f.plotHigh!==null&&c.push({plotX:f.plotX,plotY:f.plotHigh});a=g.call(this,
-b);if(i)i===!0&&(i="left"),e.step={left:"right",center:"center",right:"left"}[i];c=g.call(this,c);e.step=i;e=[].concat(a,c);c[0]="L";this.areaPath=this.areaPath.concat(a,c);return e},drawDataLabels:function(){var a=this.data,b=a.length,c,d=[],g=z.prototype,f=this.options.dataLabels,e,i=this.chart.inverted;if(f.enabled||this._hasPointLabels){for(c=b;c--;)e=a[c],e.y=e.high,e.plotY=e.plotHigh,d[c]=e.dataLabel,e.dataLabel=e.dataLabelUpper,e.below=!1,i?(f.align="left",f.x=f.xHigh):f.y=f.yHigh;g.drawDataLabels.apply(this,
-arguments);for(c=b;c--;)e=a[c],e.dataLabelUpper=e.dataLabel,e.dataLabel=d[c],e.y=e.low,e.plotY=e.plotLow,e.below=!0,i?(f.align="right",f.x=f.xLow):f.y=f.yLow;g.drawDataLabels.apply(this,arguments)}},alignDataLabel:h.column.prototype.alignDataLabel,getSymbol:h.column.prototype.getSymbol,drawPoints:w});m.areasplinerange=p(m.arearange);h.areasplinerange=x(h.arearange,{type:"areasplinerange",getPointSpline:h.spline.prototype.getPointSpline});m.columnrange=p(m.column,m.arearange,{lineWidth:1,pointRange:null});
-h.columnrange=x(h.arearange,{type:"columnrange",translate:function(){var a=this,b=a.yAxis,c;q.translate.apply(a);s(a.points,function(d){var g=d.shapeArgs,f=a.options.minPointLength,e;d.plotHigh=c=b.translate(d.high,0,1,0,1);d.plotLow=d.plotY;e=c;d=d.plotY-c;d<f&&(f-=d,d+=f,e-=f/2);g.height=d;g.y=e})},trackerGroups:["group","dataLabels"],drawGraph:w,pointAttrToOptions:q.pointAttrToOptions,drawPoints:q.drawPoints,drawTracker:q.drawTracker,animate:q.animate,getColumnMetrics:q.getColumnMetrics});m.gauge=
-p(m.line,{dataLabels:{enabled:!0,y:15,borderWidth:1,borderColor:"silver",borderRadius:3,style:{fontWeight:"bold"},verticalAlign:"top",zIndex:2},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1});u={type:"gauge",pointClass:j.extendClass(j.Point,{setState:function(a){this.state=a}}),angular:!0,drawGraph:w,fixedBox:!0,trackerGroups:["group","dataLabels"],translate:function(){var a=this.yAxis,b=this.options,c=a.center;this.generatePoints();s(this.points,function(d){var g=p(b.dial,d.dial),f=
-v(r(g.radius,80))*c[2]/200,e=v(r(g.baseLength,70))*f/100,i=v(r(g.rearLength,10))*f/100,n=g.baseWidth||3,l=g.topWidth||1,k=a.startAngleRad+a.translate(d.y,null,null,null,!0);b.wrap===!1&&(k=Math.max(a.startAngleRad,Math.min(a.endAngleRad,k)));k=k*180/Math.PI;d.shapeType="path";d.shapeArgs={d:g.path||["M",-i,-n/2,"L",e,-n/2,f,-l/2,f,l/2,e,n/2,-i,n/2,"z"],translateX:c[0],translateY:c[1],rotation:k};d.plotX=c[0];d.plotY=c[1]})},drawPoints:function(){var a=this,b=a.yAxis.center,c=a.pivot,d=a.options,g=
-d.pivot,f=a.chart.renderer;s(a.points,function(c){var b=c.graphic,g=c.shapeArgs,l=g.d,k=p(d.dial,c.dial);b?(b.animate(g),g.d=l):c.graphic=f[c.shapeType](g).attr({stroke:k.borderColor||"none","stroke-width":k.borderWidth||0,fill:k.backgroundColor||"black",rotation:g.rotation}).add(a.group)});c?c.animate({translateX:b[0],translateY:b[1]}):a.pivot=f.circle(0,0,r(g.radius,5)).attr({"stroke-width":g.borderWidth||0,stroke:g.borderColor||"silver",fill:g.backgroundColor||"black"}).translate(b[0],b[1]).add(a.group)},
-animate:function(a){var b=this;if(!a)s(b.points,function(a){var d=a.graphic;d&&(d.attr({rotation:b.yAxis.startAngleRad*180/Math.PI}),d.animate({rotation:a.shapeArgs.rotation},b.options.animation))}),b.animate=null},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);h.pie.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:h.pie.prototype.setData,drawTracker:h.column.prototype.drawTracker};h.gauge=
-j.extendClass(h.line,u);m.boxplot=p(m.column,{fillColor:"#FFFFFF",lineWidth:1,medianWidth:2,states:{hover:{brightness:-0.3}},threshold:null,tooltip:{pointFormat:'<span style="color:{series.color};font-weight:bold">{series.name}</span><br/>Maximum: {point.high}<br/>Upper quartile: {point.q3}<br/>Median: {point.median}<br/>Lower quartile: {point.q1}<br/>Minimum: {point.low}<br/>'},whiskerLength:"50%",whiskerWidth:2});h.boxplot=x(h.column,{type:"boxplot",pointArrayMap:["low","q1","median","q3","high"],
-toYData:function(a){return[a.low,a.q1,a.median,a.q3,a.high]},pointValKey:"high",pointAttrToOptions:{fill:"fillColor",stroke:"color","stroke-width":"lineWidth"},drawDataLabels:w,translate:function(){var a=this.yAxis,b=this.pointArrayMap;h.column.prototype.translate.apply(this);s(this.points,function(c){s(b,function(b){c[b]!==null&&(c[b+"Plot"]=a.translate(c[b],0,1,0,1))})})},drawPoints:function(){var a=this,b=a.points,c=a.options,d=a.chart.renderer,g,f,e,i,n,l,k,h,j,m,o,H,p,E,I,q,w,t,v,u,z,y,x=a.doQuartiles!==
-!1,B=parseInt(a.options.whiskerLength,10)/100;s(b,function(b){j=b.graphic;z=b.shapeArgs;o={};E={};q={};y=b.color||a.color;if(b.plotY!==C)if(g=b.pointAttr[b.selected?"selected":""],w=z.width,t=A(z.x),v=t+w,u=D(w/2),f=A(x?b.q1Plot:b.lowPlot),e=A(x?b.q3Plot:b.lowPlot),i=A(b.highPlot),n=A(b.lowPlot),o.stroke=b.stemColor||c.stemColor||y,o["stroke-width"]=r(b.stemWidth,c.stemWidth,c.lineWidth),o.dashstyle=b.stemDashStyle||c.stemDashStyle,E.stroke=b.whiskerColor||c.whiskerColor||y,E["stroke-width"]=r(b.whiskerWidth,
-c.whiskerWidth,c.lineWidth),q.stroke=b.medianColor||c.medianColor||y,q["stroke-width"]=r(b.medianWidth,c.medianWidth,c.lineWidth),k=o["stroke-width"]%2/2,h=t+u+k,m=["M",h,e,"L",h,i,"M",h,f,"L",h,n,"z"],x&&(k=g["stroke-width"]%2/2,h=A(h)+k,f=A(f)+k,e=A(e)+k,t+=k,v+=k,H=["M",t,e,"L",t,f,"L",v,f,"L",v,e,"L",t,e,"z"]),B&&(k=E["stroke-width"]%2/2,i+=k,n+=k,p=["M",h-u*B,i,"L",h+u*B,i,"M",h-u*B,n,"L",h+u*B,n]),k=q["stroke-width"]%2/2,l=D(b.medianPlot)+k,I=["M",t,l,"L",v,l,"z"],j)b.stem.animate({d:m}),B&&
-b.whiskers.animate({d:p}),x&&b.box.animate({d:H}),b.medianShape.animate({d:I});else{b.graphic=j=d.g().add(a.group);b.stem=d.path(m).attr(o).add(j);if(B)b.whiskers=d.path(p).attr(E).add(j);if(x)b.box=d.path(H).attr(g).add(j);b.medianShape=d.path(I).attr(q).add(j)}})}});m.errorbar=p(m.boxplot,{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:m.arearange.tooltip.pointFormat},whiskerWidth:null});h.errorbar=x(h.boxplot,{type:"errorbar",pointArrayMap:["low","high"],toYData:function(a){return[a.low,
-a.high]},pointValKey:"high",doQuartiles:!1,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||h.column.prototype.getColumnMetrics.call(this)}});m.waterfall=p(m.column,{lineWidth:1,lineColor:"#333",dashStyle:"dot",borderColor:"#333"});h.waterfall=x(h.column,{type:"waterfall",upColorProp:"fill",pointArrayMap:["low","y"],pointValKey:"y",init:function(a,b){b.stacking=!0;h.column.prototype.init.call(this,a,b)},translate:function(){var a=this.options,b=this.yAxis,c,d,
-g,f,e,i,n,l,k;c=a.threshold;a=a.borderWidth%2/2;h.column.prototype.translate.apply(this);l=c;g=this.points;for(d=0,c=g.length;d<c;d++){f=g[d];e=f.shapeArgs;i=this.getStack(d);k=i.points[this.index];if(isNaN(f.y))f.y=this.yData[d];n=S(l,l+f.y)+k[0];e.y=b.translate(n,0,1);f.isSum||f.isIntermediateSum?(e.y=b.translate(k[1],0,1),e.height=b.translate(k[0],0,1)-e.y):l+=i.total;e.height<0&&(e.y+=e.height,e.height*=-1);f.plotY=e.y=D(e.y)-a;e.height=D(e.height);f.yBottom=e.y+e.height}},processData:function(a){var b=
-this.yData,c=this.points,d,g=b.length,f=this.options.threshold||0,e,i,h,l,k,j;i=e=h=l=f;for(j=0;j<g;j++)k=b[j],d=c&&c[j]?c[j]:{},k==="sum"||d.isSum?b[j]=i:k==="intermediateSum"||d.isIntermediateSum?(b[j]=e,e=f):(i+=k,e+=k),h=Math.min(i,h),l=Math.max(i,l);z.prototype.processData.call(this,a);this.dataMin=h;this.dataMax=l},toYData:function(a){if(a.isSum)return"sum";else if(a.isIntermediateSum)return"intermediateSum";return a.y},getAttribs:function(){h.column.prototype.getAttribs.apply(this,arguments);
-var a=this.options,b=a.states,c=a.upColor||this.color,a=j.Color(c).brighten(0.1).get(),d=p(this.pointAttr),g=this.upColorProp;d[""][g]=c;d.hover[g]=b.hover.upColor||a;d.select[g]=b.select.upColor||c;s(this.points,function(a){if(a.y>0&&!a.color)a.pointAttr=d,a.color=c})},getGraphPath:function(){var a=this.data,b=a.length,c=D(this.options.lineWidth+this.options.borderWidth)%2/2,d=[],g,f,e;for(e=1;e<b;e++)f=a[e].shapeArgs,g=a[e-1].shapeArgs,f=["M",g.x+g.width,g.y+c,"L",f.x,g.y+c],a[e-1].y<0&&(f[2]+=
-g.height,f[5]+=g.height),d=d.concat(f);return d},getExtremes:w,getStack:function(a){var b=this.yAxis.stacks,c=this.stackKey;this.processedYData[a]<this.options.threshold&&(c="-"+c);return b[c][a]},drawGraph:z.prototype.drawGraph});m.bubble=p(m.scatter,{dataLabels:{inside:!0,style:{color:"white",textShadow:"0px 0px 3px black"},verticalAlign:"middle"},marker:{lineColor:null,lineWidth:1},minSize:8,maxSize:"20%",tooltip:{pointFormat:"({point.x}, {point.y}), Size: {point.z}"},turboThreshold:0,zThreshold:0});
-h.bubble=x(h.scatter,{type:"bubble",pointArrayMap:["y","z"],trackerGroups:["group","dataLabelsGroup"],pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor"},applyOpacity:function(a){var b=this.options.marker,c=r(b.fillOpacity,0.5),a=a||b.fillColor||this.color;c!==1&&(a=j.Color(a).setOpacity(c).get("rgba"));return a},convertAttribs:function(){var a=z.prototype.convertAttribs.apply(this,arguments);a.fill=this.applyOpacity(a.fill);return a},getRadii:function(a,b,c,d){var g,
-f,e,i=this.zData,h=[];for(f=0,g=i.length;f<g;f++)e=b-a,e=e>0?(i[f]-a)/(b-a):0.5,h.push(t.ceil(c+e*(d-c))/2);this.radii=h},animate:function(a){var b=this.options.animation;if(!a)s(this.points,function(a){var d=a.graphic,a=a.shapeArgs;d&&a&&(d.attr("r",1),d.animate({r:a.r},b))}),this.animate=null},translate:function(){var a,b=this.data,c,d,g=this.radii;h.scatter.prototype.translate.call(this);for(a=b.length;a--;)c=b[a],d=g?g[a]:0,c.negative=c.z<(this.options.zThreshold||0),d>=this.minPxSize/2?(c.shapeType=
-"circle",c.shapeArgs={x:c.plotX,y:c.plotY,r:d},c.dlBox={x:c.plotX-d,y:c.plotY-d,width:2*d,height:2*d}):c.shapeArgs=c.plotY=c.dlBox=C},drawLegendSymbol:function(a,b){var c=v(a.itemStyle.fontSize)/2;b.legendSymbol=this.chart.renderer.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup);b.legendSymbol.isMarker=!0},drawPoints:h.column.prototype.drawPoints,alignDataLabel:h.column.prototype.alignDataLabel});N.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,d=0,g=b,f=this.isXAxis,
-e=f?"xData":"yData",i=this.min,h={},j=t.min(c.plotWidth,c.plotHeight),k=Number.MAX_VALUE,m=-Number.MAX_VALUE,o=this.max-i,p=b/o,q=[];this.tickPositions&&(s(this.series,function(b){var c=b.options;if(b.type==="bubble"&&b.visible&&(a.allowZoomOutside=!0,q.push(b),f))s(["minSize","maxSize"],function(a){var b=c[a],d=/%$/.test(b),b=v(b);h[a]=d?j*b/100:b}),b.minPxSize=h.minSize,b=b.zData,b.length&&(k=t.min(k,t.max(P(b),c.displayNegative===!1?c.zThreshold:-Number.MAX_VALUE)),m=t.max(m,Q(b)))}),s(q,function(a){var b=
-a[e],c=b.length,j;f&&a.getRadii(k,m,h.minSize,h.maxSize);if(o>0)for(;c--;)j=a.radii[c],d=Math.min((b[c]-i)*p-j,d),g=Math.max((b[c]-i)*p+j,g)}),q.length&&o>0&&r(this.options.min,this.userMin)===C&&r(this.options.max,this.userMax)===C&&(g-=b,p*=(b+d-g)/b,this.min+=d/p,this.max+=g/p))};var y=z.prototype,m=j.Pointer.prototype;y.toXY=function(a){var b,c=this.chart;b=a.plotX;var d=a.plotY;a.rectPlotX=b;a.rectPlotY=d;a.clientX=(b/Math.PI*180+this.xAxis.pane.options.startAngle)%360;b=this.xAxis.postTranslate(a.plotX,
-this.yAxis.len-d);a.plotX=a.polarPlotX=b.x-c.plotLeft;a.plotY=a.polarPlotY=b.y-c.plotTop};y.orderTooltipPoints=function(a){if(this.chart.polar&&(a.sort(function(a,c){return a.clientX-c.clientX}),a[0]))a[0].wrappedClientX=a[0].clientX+360,a.push(a[0])};o(h.area.prototype,"init",K);o(h.areaspline.prototype,"init",K);o(h.spline.prototype,"getPointSpline",function(a,b,c,d){var g,f,e,i,h,j,k;if(this.chart.polar){g=c.plotX;f=c.plotY;a=b[d-1];e=b[d+1];this.connectEnds&&(a||(a=b[b.length-2]),e||(e=b[1]));
-if(a&&e)i=a.plotX,h=a.plotY,b=e.plotX,j=e.plotY,i=(1.5*g+i)/2.5,h=(1.5*f+h)/2.5,e=(1.5*g+b)/2.5,k=(1.5*f+j)/2.5,b=Math.sqrt(Math.pow(i-g,2)+Math.pow(h-f,2)),j=Math.sqrt(Math.pow(e-g,2)+Math.pow(k-f,2)),i=Math.atan2(h-f,i-g),h=Math.atan2(k-f,e-g),k=Math.PI/2+(i+h)/2,Math.abs(i-k)>Math.PI/2&&(k-=Math.PI),i=g+Math.cos(k)*b,h=f+Math.sin(k)*b,e=g+Math.cos(Math.PI+k)*j,k=f+Math.sin(Math.PI+k)*j,c.rightContX=e,c.rightContY=k;d?(c=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,i||g,h||f,g,f],a.rightContX=
-a.rightContY=null):c=["M",g,f]}else c=a.call(this,b,c,d);return c});o(y,"translate",function(a){a.call(this);if(this.chart.polar&&!this.preventPostTranslate)for(var a=this.points,b=a.length;b--;)this.toXY(a[b])});o(y,"getSegmentPath",function(a,b){var c=this.points;if(this.chart.polar&&this.options.connectEnds!==!1&&b[b.length-1]===c[c.length-1]&&c[0].y!==null)this.connectEnds=!0,b=[].concat(b,[c[0]]);return a.call(this,b)});o(y,"animate",L);o(q,"animate",L);o(y,"setTooltipPoints",function(a,b){this.chart.polar&&
-F(this.xAxis,{tooltipLen:360});return a.call(this,b)});o(q,"translate",function(a){var b=this.xAxis,c=this.yAxis.len,d=b.center,g=b.startAngleRad,f=this.chart.renderer,e,h;this.preventPostTranslate=!0;a.call(this);if(b.isRadial){b=this.points;for(h=b.length;h--;)e=b[h],a=e.barX+g,e.shapeType="path",e.shapeArgs={d:f.symbols.arc(d[0],d[1],c-e.plotY,null,{start:a,end:a+e.pointWidth,innerR:c-r(e.yBottom,c)})},this.toXY(e)}});o(q,"alignDataLabel",function(a,b,c,d,g,f){if(this.chart.polar){a=b.rectPlotX/
-Math.PI*180;if(d.align===null)d.align=a>20&&a<160?"left":a>200&&a<340?"right":"center";if(d.verticalAlign===null)d.verticalAlign=a<45||a>315?"bottom":a>135&&a<225?"top":"middle";y.alignDataLabel.call(this,b,c,d,g,f)}else a.call(this,b,c,d,g,f)});o(m,"getIndex",function(a,b){var c,d=this.chart,g;d.polar?(g=d.xAxis[0].center,c=b.chartX-g[0]-d.plotLeft,d=b.chartY-g[1]-d.plotTop,c=180-Math.round(Math.atan2(c,d)/Math.PI*180)):c=a.call(this,b);return c});o(m,"getCoordinates",function(a,b){var c=this.chart,
-d={xAxis:[],yAxis:[]};c.polar?s(c.axes,function(a){var f=a.isXAxis,e=a.center,h=b.chartX-e[0]-c.plotLeft,e=b.chartY-e[1]-c.plotTop;d[f?"xAxis":"yAxis"].push({axis:a,value:a.translate(f?Math.PI-Math.atan2(h,e):Math.sqrt(Math.pow(h,2)+Math.pow(e,2)),!0)})}):d=a.call(this,b);return d})})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/highcharts-more.src.js b/server/public/ueditor/third-party/highcharts/highcharts-more.src.js
deleted file mode 100644
index c8c5160..0000000
--- a/server/public/ueditor/third-party/highcharts/highcharts-more.src.js
+++ /dev/null
@@ -1,2430 +0,0 @@
-// ==ClosureCompiler==
-// @compilation_level SIMPLE_OPTIMIZATIONS
-
-/**
- * @license Highcharts JS v3.0.6 (2013-10-04)
- *
- * (c) 2009-2013 Torstein H酶nsi
- *
- * License: www.highcharts.com/license
- */
-
-// JSLint options:
-/*global Highcharts, HighchartsAdapter, document, window, navigator, setInterval, clearInterval, clearTimeout, setTimeout, location, jQuery, $, console */
-
-(function (Highcharts, UNDEFINED) {
-var arrayMin = Highcharts.arrayMin,
-	arrayMax = Highcharts.arrayMax,
-	each = Highcharts.each,
-	extend = Highcharts.extend,
-	merge = Highcharts.merge,
-	map = Highcharts.map,
-	pick = Highcharts.pick,
-	pInt = Highcharts.pInt,
-	defaultPlotOptions = Highcharts.getOptions().plotOptions,
-	seriesTypes = Highcharts.seriesTypes,
-	extendClass = Highcharts.extendClass,
-	splat = Highcharts.splat,
-	wrap = Highcharts.wrap,
-	Axis = Highcharts.Axis,
-	Tick = Highcharts.Tick,
-	Series = Highcharts.Series,
-	colProto = seriesTypes.column.prototype,
-	math = Math,
-	mathRound = math.round,
-	mathFloor = math.floor,
-	mathMax = math.max,
-	noop = function () {};/**
- * The Pane object allows options that are common to a set of X and Y axes.
- * 
- * In the future, this can be extended to basic Highcharts and Highstock.
- */
-function Pane(options, chart, firstAxis) {
-	this.init.call(this, options, chart, firstAxis);
-}
-
-// Extend the Pane prototype
-extend(Pane.prototype, {
-	
-	/**
-	 * Initiate the Pane object
-	 */
-	init: function (options, chart, firstAxis) {
-		var pane = this,
-			backgroundOption,
-			defaultOptions = pane.defaultOptions;
-		
-		pane.chart = chart;
-		
-		// Set options
-		if (chart.angular) { // gauges
-			defaultOptions.background = {}; // gets extended by this.defaultBackgroundOptions
-		}
-		pane.options = options = merge(defaultOptions, options);
-		
-		backgroundOption = options.background;
-		
-		// To avoid having weighty logic to place, update and remove the backgrounds,
-		// push them to the first axis' plot bands and borrow the existing logic there.
-		if (backgroundOption) {
-			each([].concat(splat(backgroundOption)).reverse(), function (config) {
-				var backgroundColor = config.backgroundColor; // if defined, replace the old one (specific for gradients)
-				config = merge(pane.defaultBackgroundOptions, config);
-				if (backgroundColor) {
-					config.backgroundColor = backgroundColor;
-				}
-				config.color = config.backgroundColor; // due to naming in plotBands
-				firstAxis.options.plotBands.unshift(config);
-			});
-		}
-	},
-	
-	/**
-	 * The default options object
-	 */
-	defaultOptions: {
-		// background: {conditional},
-		center: ['50%', '50%'],
-		size: '85%',
-		startAngle: 0
-		//endAngle: startAngle + 360
-	},	
-	
-	/**
-	 * The default background options
-	 */
-	defaultBackgroundOptions: {
-		shape: 'circle',
-		borderWidth: 1,
-		borderColor: 'silver',
-		backgroundColor: {
-			linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-			stops: [
-				[0, '#FFF'],
-				[1, '#DDD']
-			]
-		},
-		from: Number.MIN_VALUE, // corrected to axis min
-		innerRadius: 0,
-		to: Number.MAX_VALUE, // corrected to axis max
-		outerRadius: '105%'
-	}
-	
-});
-var axisProto = Axis.prototype,
-	tickProto = Tick.prototype;
-	
-/**
- * Augmented methods for the x axis in order to hide it completely, used for the X axis in gauges
- */
-var hiddenAxisMixin = {
-	getOffset: noop,
-	redraw: function () {
-		this.isDirty = false; // prevent setting Y axis dirty
-	},
-	render: function () {
-		this.isDirty = false; // prevent setting Y axis dirty
-	},
-	setScale: noop,
-	setCategories: noop,
-	setTitle: noop
-};
-
-/**
- * Augmented methods for the value axis
- */
-/*jslint unparam: true*/
-var radialAxisMixin = {
-	isRadial: true,
-	
-	/**
-	 * The default options extend defaultYAxisOptions
-	 */
-	defaultRadialGaugeOptions: {
-		labels: {
-			align: 'center',
-			x: 0,
-			y: null // auto
-		},
-		minorGridLineWidth: 0,
-		minorTickInterval: 'auto',
-		minorTickLength: 10,
-		minorTickPosition: 'inside',
-		minorTickWidth: 1,
-		plotBands: [],
-		tickLength: 10,
-		tickPosition: 'inside',
-		tickWidth: 2,
-		title: {
-			rotation: 0
-		},
-		zIndex: 2 // behind dials, points in the series group
-	},
-	
-	// Circular axis around the perimeter of a polar chart
-	defaultRadialXOptions: {
-		gridLineWidth: 1, // spokes
-		labels: {
-			align: null, // auto
-			distance: 15,
-			x: 0,
-			y: null // auto
-		},
-		maxPadding: 0,
-		minPadding: 0,
-		plotBands: [],
-		showLastLabel: false, 
-		tickLength: 0
-	},
-	
-	// Radial axis, like a spoke in a polar chart
-	defaultRadialYOptions: {
-		gridLineInterpolation: 'circle',
-		labels: {
-			align: 'right',
-			x: -3,
-			y: -2
-		},
-		plotBands: [],
-		showLastLabel: false,
-		title: {
-			x: 4,
-			text: null,
-			rotation: 90
-		}
-	},
-	
-	/**
-	 * Merge and set options
-	 */
-	setOptions: function (userOptions) {
-		
-		this.options = merge(
-			this.defaultOptions,
-			this.defaultRadialOptions,
-			userOptions
-		);
-		
-	},
-	
-	/**
-	 * Wrap the getOffset method to return zero offset for title or labels in a radial 
-	 * axis
-	 */
-	getOffset: function () {
-		// Call the Axis prototype method (the method we're in now is on the instance)
-		axisProto.getOffset.call(this);
-		
-		// Title or label offsets are not counted
-		this.chart.axisOffset[this.side] = 0;
-	},
-
-
-	/**
-	 * Get the path for the axis line. This method is also referenced in the getPlotLinePath
-	 * method.
-	 */
-	getLinePath: function (lineWidth, radius) {
-		var center = this.center;
-		radius = pick(radius, center[2] / 2 - this.offset);
-		
-		return this.chart.renderer.symbols.arc(
-			this.left + center[0],
-			this.top + center[1],
-			radius,
-			radius, 
-			{
-				start: this.startAngleRad,
-				end: this.endAngleRad,
-				open: true,
-				innerR: 0
-			}
-		);
-	},
-
-	/**
-	 * Override setAxisTranslation by setting the translation to the difference
-	 * in rotation. This allows the translate method to return angle for 
-	 * any given value.
-	 */
-	setAxisTranslation: function () {
-		
-		// Call uber method		
-		axisProto.setAxisTranslation.call(this);
-			
-		// Set transA and minPixelPadding
-		if (this.center) { // it's not defined the first time
-			if (this.isCircular) {
-				
-				this.transA = (this.endAngleRad - this.startAngleRad) / 
-					((this.max - this.min) || 1);
-					
-				
-			} else { 
-				this.transA = (this.center[2] / 2) / ((this.max - this.min) || 1);
-			}
-			
-			if (this.isXAxis) {
-				this.minPixelPadding = this.transA * this.minPointOffset +
-					(this.reversed ? (this.endAngleRad - this.startAngleRad) / 4 : 0); // ???
-			}
-		}
-	},
-	
-	/**
-	 * In case of auto connect, add one closestPointRange to the max value right before
-	 * tickPositions are computed, so that ticks will extend passed the real max.
-	 */
-	beforeSetTickPositions: function () {
-		if (this.autoConnect) {
-			this.max += (this.categories && 1) || this.pointRange || this.closestPointRange || 0; // #1197, #2260
-		}
-	},
-	
-	/**
-	 * Override the setAxisSize method to use the arc's circumference as length. This
-	 * allows tickPixelInterval to apply to pixel lengths along the perimeter
-	 */
-	setAxisSize: function () {
-		
-		axisProto.setAxisSize.call(this);
-
-		if (this.isRadial) {
-
-			// Set the center array
-			this.center = this.pane.center = seriesTypes.pie.prototype.getCenter.call(this.pane);
-			
-			this.len = this.width = this.height = this.isCircular ?
-				this.center[2] * (this.endAngleRad - this.startAngleRad) / 2 :
-				this.center[2] / 2;
-		}
-	},
-	
-	/**
-	 * Returns the x, y coordinate of a point given by a value and a pixel distance
-	 * from center
-	 */
-	getPosition: function (value, length) {
-		if (!this.isCircular) {
-			length = this.translate(value);
-			value = this.min;	
-		}
-		
-		return this.postTranslate(
-			this.translate(value),
-			pick(length, this.center[2] / 2) - this.offset
-		);		
-	},
-	
-	/**
-	 * Translate from intermediate plotX (angle), plotY (axis.len - radius) to final chart coordinates. 
-	 */
-	postTranslate: function (angle, radius) {
-		
-		var chart = this.chart,
-			center = this.center;
-			
-		angle = this.startAngleRad + angle;
-		
-		return {
-			x: chart.plotLeft + center[0] + Math.cos(angle) * radius,
-			y: chart.plotTop + center[1] + Math.sin(angle) * radius
-		}; 
-		
-	},
-	
-	/**
-	 * Find the path for plot bands along the radial axis
-	 */
-	getPlotBandPath: function (from, to, options) {
-		var center = this.center,
-			startAngleRad = this.startAngleRad,
-			fullRadius = center[2] / 2,
-			radii = [
-				pick(options.outerRadius, '100%'),
-				options.innerRadius,
-				pick(options.thickness, 10)
-			],
-			percentRegex = /%$/,
-			start,
-			end,
-			open,
-			isCircular = this.isCircular, // X axis in a polar chart
-			ret;
-			
-		// Polygonal plot bands
-		if (this.options.gridLineInterpolation === 'polygon') {
-			ret = this.getPlotLinePath(from).concat(this.getPlotLinePath(to, true));
-		
-		// Circular grid bands
-		} else {
-			
-			// Plot bands on Y axis (radial axis) - inner and outer radius depend on to and from
-			if (!isCircular) {
-				radii[0] = this.translate(from);
-				radii[1] = this.translate(to);
-			}
-			
-			// Convert percentages to pixel values
-			radii = map(radii, function (radius) {
-				if (percentRegex.test(radius)) {
-					radius = (pInt(radius, 10) * fullRadius) / 100;
-				}
-				return radius;
-			});
-			
-			// Handle full circle
-			if (options.shape === 'circle' || !isCircular) {
-				start = -Math.PI / 2;
-				end = Math.PI * 1.5;
-				open = true;
-			} else {
-				start = startAngleRad + this.translate(from);
-				end = startAngleRad + this.translate(to);
-			}
-		
-		
-			ret = this.chart.renderer.symbols.arc(
-				this.left + center[0],
-				this.top + center[1],
-				radii[0],
-				radii[0],
-				{
-					start: start,
-					end: end,
-					innerR: pick(radii[1], radii[0] - radii[2]),
-					open: open
-				}
-			);
-		}
-		 
-		return ret;
-	},
-	
-	/**
-	 * Find the path for plot lines perpendicular to the radial axis.
-	 */
-	getPlotLinePath: function (value, reverse) {
-		var axis = this,
-			center = axis.center,
-			chart = axis.chart,
-			end = axis.getPosition(value),
-			xAxis,
-			xy,
-			tickPositions,
-			ret;
-		
-		// Spokes
-		if (axis.isCircular) {
-			ret = ['M', center[0] + chart.plotLeft, center[1] + chart.plotTop, 'L', end.x, end.y];
-		
-		// Concentric circles			
-		} else if (axis.options.gridLineInterpolation === 'circle') {
-			value = axis.translate(value);
-			if (value) { // a value of 0 is in the center
-				ret = axis.getLinePath(0, value);
-			}
-		// Concentric polygons 
-		} else {
-			xAxis = chart.xAxis[0];
-			ret = [];
-			value = axis.translate(value);
-			tickPositions = xAxis.tickPositions;
-			if (xAxis.autoConnect) {
-				tickPositions = tickPositions.concat([tickPositions[0]]);
-			}
-			// Reverse the positions for concatenation of polygonal plot bands
-			if (reverse) {
-				tickPositions = [].concat(tickPositions).reverse();
-			}
-				
-			each(tickPositions, function (pos, i) {
-				xy = xAxis.getPosition(pos, value);
-				ret.push(i ? 'L' : 'M', xy.x, xy.y);
-			});
-			
-		}
-		return ret;
-	},
-	
-	/**
-	 * Find the position for the axis title, by default inside the gauge
-	 */
-	getTitlePosition: function () {
-		var center = this.center,
-			chart = this.chart,
-			titleOptions = this.options.title;
-		
-		return { 
-			x: chart.plotLeft + center[0] + (titleOptions.x || 0), 
-			y: chart.plotTop + center[1] - ({ high: 0.5, middle: 0.25, low: 0 }[titleOptions.align] * 
-				center[2]) + (titleOptions.y || 0)  
-		};
-	}
-	
-};
-/*jslint unparam: false*/
-
-/**
- * Override axisProto.init to mix in special axis instance functions and function overrides
- */
-wrap(axisProto, 'init', function (proceed, chart, userOptions) {
-	var axis = this,
-		angular = chart.angular,
-		polar = chart.polar,
-		isX = userOptions.isX,
-		isHidden = angular && isX,
-		isCircular,
-		startAngleRad,
-		endAngleRad,
-		options,
-		chartOptions = chart.options,
-		paneIndex = userOptions.pane || 0,
-		pane,
-		paneOptions;
-		
-	// Before prototype.init
-	if (angular) {
-		extend(this, isHidden ? hiddenAxisMixin : radialAxisMixin);
-		isCircular =  !isX;
-		if (isCircular) {
-			this.defaultRadialOptions = this.defaultRadialGaugeOptions;
-		}
-		
-	} else if (polar) {
-		//extend(this, userOptions.isX ? radialAxisMixin : radialAxisMixin);
-		extend(this, radialAxisMixin);
-		isCircular = isX;
-		this.defaultRadialOptions = isX ? this.defaultRadialXOptions : merge(this.defaultYAxisOptions, this.defaultRadialYOptions);
-		
-	}
-	
-	// Run prototype.init
-	proceed.call(this, chart, userOptions);
-	
-	if (!isHidden && (angular || polar)) {
-		options = this.options;
-		
-		// Create the pane and set the pane options.
-		if (!chart.panes) {
-			chart.panes = [];
-		}
-		this.pane = pane = chart.panes[paneIndex] = chart.panes[paneIndex] || new Pane(
-			splat(chartOptions.pane)[paneIndex],
-			chart,
-			axis
-		);
-		paneOptions = pane.options;
-		
-			
-		// Disable certain features on angular and polar axes
-		chart.inverted = false;
-		chartOptions.chart.zoomType = null;
-		
-		// Start and end angle options are
-		// given in degrees relative to top, while internal computations are
-		// in radians relative to right (like SVG).
-		this.startAngleRad = startAngleRad = (paneOptions.startAngle - 90) * Math.PI / 180;
-		this.endAngleRad = endAngleRad = (pick(paneOptions.endAngle, paneOptions.startAngle + 360)  - 90) * Math.PI / 180;
-		this.offset = options.offset || 0;
-		
-		this.isCircular = isCircular;
-		
-		// Automatically connect grid lines?
-		if (isCircular && userOptions.max === UNDEFINED && endAngleRad - startAngleRad === 2 * Math.PI) {
-			this.autoConnect = true;
-		}
-	}
-	
-});
-
-/**
- * Add special cases within the Tick class' methods for radial axes.
- */	
-wrap(tickProto, 'getPosition', function (proceed, horiz, pos, tickmarkOffset, old) {
-	var axis = this.axis;
-	
-	return axis.getPosition ? 
-		axis.getPosition(pos) :
-		proceed.call(this, horiz, pos, tickmarkOffset, old);	
-});
-
-/**
- * Wrap the getLabelPosition function to find the center position of the label
- * based on the distance option
- */	
-wrap(tickProto, 'getLabelPosition', function (proceed, x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
-	var axis = this.axis,
-		optionsY = labelOptions.y,
-		ret,
-		align = labelOptions.align,
-		angle = ((axis.translate(this.pos) + axis.startAngleRad + Math.PI / 2) / Math.PI * 180) % 360;
-	
-	if (axis.isRadial) {
-		ret = axis.getPosition(this.pos, (axis.center[2] / 2) + pick(labelOptions.distance, -25));
-		
-		// Automatically rotated
-		if (labelOptions.rotation === 'auto') {
-			label.attr({ 
-				rotation: angle
-			});
-		
-		// Vertically centered
-		} else if (optionsY === null) {
-			optionsY = pInt(label.styles.lineHeight) * 0.9 - label.getBBox().height / 2;
-		
-		}
-		
-		// Automatic alignment
-		if (align === null) {
-			if (axis.isCircular) {
-				if (angle > 20 && angle < 160) {
-					align = 'left'; // right hemisphere
-				} else if (angle > 200 && angle < 340) {
-					align = 'right'; // left hemisphere
-				} else {
-					align = 'center'; // top or bottom
-				}
-			} else {
-				align = 'center';
-			}
-			label.attr({
-				align: align
-			});
-		}
-		
-		ret.x += labelOptions.x;
-		ret.y += optionsY;
-		
-	} else {
-		ret = proceed.call(this, x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
-	}
-	return ret;
-});
-
-/**
- * Wrap the getMarkPath function to return the path of the radial marker
- */
-wrap(tickProto, 'getMarkPath', function (proceed, x, y, tickLength, tickWidth, horiz, renderer) {
-	var axis = this.axis,
-		endPoint,
-		ret;
-		
-	if (axis.isRadial) {
-		endPoint = axis.getPosition(this.pos, axis.center[2] / 2 + tickLength);
-		ret = [
-			'M',
-			x,
-			y,
-			'L',
-			endPoint.x,
-			endPoint.y
-		];
-	} else {
-		ret = proceed.call(this, x, y, tickLength, tickWidth, horiz, renderer);
-	}
-	return ret;
-});/* 
- * The AreaRangeSeries class
- * 
- */
-
-/**
- * Extend the default options with map options
- */
-defaultPlotOptions.arearange = merge(defaultPlotOptions.area, {
-	lineWidth: 1,
-	marker: null,
-	threshold: null,
-	tooltip: {
-		pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.low}</b> - <b>{point.high}</b><br/>' 
-	},
-	trackByArea: true,
-	dataLabels: {
-		verticalAlign: null,
-		xLow: 0,
-		xHigh: 0,
-		yLow: 0,
-		yHigh: 0	
-	}
-});
-
-/**
- * Add the series type
- */
-seriesTypes.arearange = Highcharts.extendClass(seriesTypes.area, {
-	type: 'arearange',
-	pointArrayMap: ['low', 'high'],
-	toYData: function (point) {
-		return [point.low, point.high];
-	},
-	pointValKey: 'low',
-	
-	/**
-	 * Extend getSegments to force null points if the higher value is null. #1703.
-	 */
-	getSegments: function () {
-		var series = this;
-
-		each(series.points, function (point) {
-			if (!series.options.connectNulls && (point.low === null || point.high === null)) {
-				point.y = null;
-			} else if (point.low === null && point.high !== null) {
-				point.y = point.high;
-			}
-		});
-		Series.prototype.getSegments.call(this);
-	},
-	
-	/**
-	 * Translate data points from raw values x and y to plotX and plotY
-	 */
-	translate: function () {
-		var series = this,
-			yAxis = series.yAxis;
-
-		seriesTypes.area.prototype.translate.apply(series);
-
-		// Set plotLow and plotHigh
-		each(series.points, function (point) {
-
-			var low = point.low,
-				high = point.high,
-				plotY = point.plotY;
-
-			if (high === null && low === null) {
-				point.y = null;
-			} else if (low === null) {
-				point.plotLow = point.plotY = null;
-				point.plotHigh = yAxis.translate(high, 0, 1, 0, 1);
-			} else if (high === null) {
-				point.plotLow = plotY;
-				point.plotHigh = null;
-			} else {
-				point.plotLow = plotY;
-				point.plotHigh = yAxis.translate(high, 0, 1, 0, 1);
-			}
-		});
-	},
-	
-	/**
-	 * Extend the line series' getSegmentPath method by applying the segment
-	 * path to both lower and higher values of the range
-	 */
-	getSegmentPath: function (segment) {
-		
-		var lowSegment,
-			highSegment = [],
-			i = segment.length,
-			baseGetSegmentPath = Series.prototype.getSegmentPath,
-			point,
-			linePath,
-			lowerPath,
-			options = this.options,
-			step = options.step,
-			higherPath;
-			
-		// Remove nulls from low segment
-		lowSegment = HighchartsAdapter.grep(segment, function (point) {
-			return point.plotLow !== null;
-		});
-		
-		// Make a segment with plotX and plotY for the top values
-		while (i--) {
-			point = segment[i];
-			if (point.plotHigh !== null) {
-				highSegment.push({
-					plotX: point.plotX,
-					plotY: point.plotHigh
-				});
-			}
-		}
-		
-		// Get the paths
-		lowerPath = baseGetSegmentPath.call(this, lowSegment);
-		if (step) {
-			if (step === true) {
-				step = 'left';
-			}
-			options.step = { left: 'right', center: 'center', right: 'left' }[step]; // swap for reading in getSegmentPath
-		}
-		higherPath = baseGetSegmentPath.call(this, highSegment);
-		options.step = step;
-		
-		// Create a line on both top and bottom of the range
-		linePath = [].concat(lowerPath, higherPath);
-		
-		// For the area path, we need to change the 'move' statement into 'lineTo' or 'curveTo'
-		higherPath[0] = 'L'; // this probably doesn't work for spline			
-		this.areaPath = this.areaPath.concat(lowerPath, higherPath);
-		
-		return linePath;
-	},
-	
-	/**
-	 * Extend the basic drawDataLabels method by running it for both lower and higher
-	 * values.
-	 */
-	drawDataLabels: function () {
-		
-		var data = this.data,
-			length = data.length,
-			i,
-			originalDataLabels = [],
-			seriesProto = Series.prototype,
-			dataLabelOptions = this.options.dataLabels,
-			point,
-			inverted = this.chart.inverted;
-			
-		if (dataLabelOptions.enabled || this._hasPointLabels) {
-			
-			// Step 1: set preliminary values for plotY and dataLabel and draw the upper labels
-			i = length;
-			while (i--) {
-				point = data[i];
-				
-				// Set preliminary values
-				point.y = point.high;
-				point.plotY = point.plotHigh;
-				
-				// Store original data labels and set preliminary label objects to be picked up 
-				// in the uber method
-				originalDataLabels[i] = point.dataLabel;
-				point.dataLabel = point.dataLabelUpper;
-				
-				// Set the default offset
-				point.below = false;
-				if (inverted) {
-					dataLabelOptions.align = 'left';
-					dataLabelOptions.x = dataLabelOptions.xHigh;								
-				} else {
-					dataLabelOptions.y = dataLabelOptions.yHigh;
-				}
-			}
-			seriesProto.drawDataLabels.apply(this, arguments); // #1209
-			
-			// Step 2: reorganize and handle data labels for the lower values
-			i = length;
-			while (i--) {
-				point = data[i];
-				
-				// Move the generated labels from step 1, and reassign the original data labels
-				point.dataLabelUpper = point.dataLabel;
-				point.dataLabel = originalDataLabels[i];
-				
-				// Reset values
-				point.y = point.low;
-				point.plotY = point.plotLow;
-				
-				// Set the default offset
-				point.below = true;
-				if (inverted) {
-					dataLabelOptions.align = 'right';
-					dataLabelOptions.x = dataLabelOptions.xLow;
-				} else {
-					dataLabelOptions.y = dataLabelOptions.yLow;
-				}
-			}
-			seriesProto.drawDataLabels.apply(this, arguments);
-		}
-	
-	},
-	
-	alignDataLabel: seriesTypes.column.prototype.alignDataLabel,
-	
-	getSymbol: seriesTypes.column.prototype.getSymbol,
-	
-	drawPoints: noop
-});/**
- * The AreaSplineRangeSeries class
- */
-
-defaultPlotOptions.areasplinerange = merge(defaultPlotOptions.arearange);
-
-/**
- * AreaSplineRangeSeries object
- */
-seriesTypes.areasplinerange = extendClass(seriesTypes.arearange, {
-	type: 'areasplinerange',
-	getPointSpline: seriesTypes.spline.prototype.getPointSpline
-});/**
- * The ColumnRangeSeries class
- */
-defaultPlotOptions.columnrange = merge(defaultPlotOptions.column, defaultPlotOptions.arearange, {
-	lineWidth: 1,
-	pointRange: null
-});
-
-/**
- * ColumnRangeSeries object
- */
-seriesTypes.columnrange = extendClass(seriesTypes.arearange, {
-	type: 'columnrange',
-	/**
-	 * Translate data points from raw values x and y to plotX and plotY
-	 */
-	translate: function () {
-		var series = this,
-			yAxis = series.yAxis,
-			plotHigh;
-
-		colProto.translate.apply(series);
-
-		// Set plotLow and plotHigh
-		each(series.points, function (point) {
-			var shapeArgs = point.shapeArgs,
-				minPointLength = series.options.minPointLength,
-				heightDifference,
-				height,
-				y;
-
-			point.plotHigh = plotHigh = yAxis.translate(point.high, 0, 1, 0, 1);
-			point.plotLow = point.plotY;
-
-			// adjust shape
-			y = plotHigh;
-			height = point.plotY - plotHigh;
-
-			if (height < minPointLength) {
-				heightDifference = (minPointLength - height);
-				height += heightDifference;
-				y -= heightDifference / 2;
-			}
-			shapeArgs.height = height;
-			shapeArgs.y = y;
-		});
-	},
-	trackerGroups: ['group', 'dataLabels'],
-	drawGraph: noop,
-	pointAttrToOptions: colProto.pointAttrToOptions,
-	drawPoints: colProto.drawPoints,
-	drawTracker: colProto.drawTracker,
-	animate: colProto.animate,
-	getColumnMetrics: colProto.getColumnMetrics
-});
-/* 
- * The GaugeSeries class
- */
-
-
-
-/**
- * Extend the default options
- */
-defaultPlotOptions.gauge = merge(defaultPlotOptions.line, {
-	dataLabels: {
-		enabled: true,
-		y: 15,
-		borderWidth: 1,
-		borderColor: 'silver',
-		borderRadius: 3,
-		style: {
-			fontWeight: 'bold'
-		},
-		verticalAlign: 'top',
-		zIndex: 2
-	},
-	dial: {
-		// radius: '80%',
-		// backgroundColor: 'black',
-		// borderColor: 'silver',
-		// borderWidth: 0,
-		// baseWidth: 3,
-		// topWidth: 1,
-		// baseLength: '70%' // of radius
-		// rearLength: '10%'
-	},
-	pivot: {
-		//radius: 5,
-		//borderWidth: 0
-		//borderColor: 'silver',
-		//backgroundColor: 'black'
-	},
-	tooltip: {
-		headerFormat: ''
-	},
-	showInLegend: false
-});
-
-/**
- * Extend the point object
- */
-var GaugePoint = Highcharts.extendClass(Highcharts.Point, {
-	/**
-	 * Don't do any hover colors or anything
-	 */
-	setState: function (state) {
-		this.state = state;
-	}
-});
-
-
-/**
- * Add the series type
- */
-var GaugeSeries = {
-	type: 'gauge',
-	pointClass: GaugePoint,
-	
-	// chart.angular will be set to true when a gauge series is present, and this will
-	// be used on the axes
-	angular: true, 
-	drawGraph: noop,
-	fixedBox: true,
-	trackerGroups: ['group', 'dataLabels'],
-	
-	/**
-	 * Calculate paths etc
-	 */
-	translate: function () {
-		
-		var series = this,
-			yAxis = series.yAxis,
-			options = series.options,
-			center = yAxis.center;
-			
-		series.generatePoints();
-		
-		each(series.points, function (point) {
-			
-			var dialOptions = merge(options.dial, point.dial),
-				radius = (pInt(pick(dialOptions.radius, 80)) * center[2]) / 200,
-				baseLength = (pInt(pick(dialOptions.baseLength, 70)) * radius) / 100,
-				rearLength = (pInt(pick(dialOptions.rearLength, 10)) * radius) / 100,
-				baseWidth = dialOptions.baseWidth || 3,
-				topWidth = dialOptions.topWidth || 1,
-				rotation = yAxis.startAngleRad + yAxis.translate(point.y, null, null, null, true);
-
-			// Handle the wrap option
-			if (options.wrap === false) {
-				rotation = Math.max(yAxis.startAngleRad, Math.min(yAxis.endAngleRad, rotation));
-			}
-			rotation = rotation * 180 / Math.PI;
-				
-			point.shapeType = 'path';
-			point.shapeArgs = {
-				d: dialOptions.path || [
-					'M', 
-					-rearLength, -baseWidth / 2, 
-					'L', 
-					baseLength, -baseWidth / 2,
-					radius, -topWidth / 2,
-					radius, topWidth / 2,
-					baseLength, baseWidth / 2,
-					-rearLength, baseWidth / 2,
-					'z'
-				],
-				translateX: center[0],
-				translateY: center[1],
-				rotation: rotation
-			};
-			
-			// Positions for data label
-			point.plotX = center[0];
-			point.plotY = center[1];
-		});
-	},
-	
-	/**
-	 * Draw the points where each point is one needle
-	 */
-	drawPoints: function () {
-		
-		var series = this,
-			center = series.yAxis.center,
-			pivot = series.pivot,
-			options = series.options,
-			pivotOptions = options.pivot,
-			renderer = series.chart.renderer;
-		
-		each(series.points, function (point) {
-			
-			var graphic = point.graphic,
-				shapeArgs = point.shapeArgs,
-				d = shapeArgs.d,
-				dialOptions = merge(options.dial, point.dial); // #1233
-			
-			if (graphic) {
-				graphic.animate(shapeArgs);
-				shapeArgs.d = d; // animate alters it
-			} else {
-				point.graphic = renderer[point.shapeType](shapeArgs)
-					.attr({
-						stroke: dialOptions.borderColor || 'none',
-						'stroke-width': dialOptions.borderWidth || 0,
-						fill: dialOptions.backgroundColor || 'black',
-						rotation: shapeArgs.rotation // required by VML when animation is false
-					})
-					.add(series.group);
-			}
-		});
-		
-		// Add or move the pivot
-		if (pivot) {
-			pivot.animate({ // #1235
-				translateX: center[0],
-				translateY: center[1]
-			});
-		} else {
-			series.pivot = renderer.circle(0, 0, pick(pivotOptions.radius, 5))
-				.attr({
-					'stroke-width': pivotOptions.borderWidth || 0,
-					stroke: pivotOptions.borderColor || 'silver',
-					fill: pivotOptions.backgroundColor || 'black'
-				})
-				.translate(center[0], center[1])
-				.add(series.group);
-		}
-	},
-	
-	/**
-	 * Animate the arrow up from startAngle
-	 */
-	animate: function (init) {
-		var series = this;
-
-		if (!init) {
-			each(series.points, function (point) {
-				var graphic = point.graphic;
-
-				if (graphic) {
-					// start value
-					graphic.attr({
-						rotation: series.yAxis.startAngleRad * 180 / Math.PI
-					});
-
-					// animate
-					graphic.animate({
-						rotation: point.shapeArgs.rotation
-					}, series.options.animation);
-				}
-			});
-
-			// delete this function to allow it only once
-			series.animate = null;
-		}
-	},
-	
-	render: function () {
-		this.group = this.plotGroup(
-			'group', 
-			'series', 
-			this.visible ? 'visible' : 'hidden', 
-			this.options.zIndex, 
-			this.chart.seriesGroup
-		);
-		seriesTypes.pie.prototype.render.call(this);
-		this.group.clip(this.chart.clipRect);
-	},
-	
-	setData: seriesTypes.pie.prototype.setData,
-	drawTracker: seriesTypes.column.prototype.drawTracker
-};
-seriesTypes.gauge = Highcharts.extendClass(seriesTypes.line, GaugeSeries);/* ****************************************************************************
- * Start Box plot series code											      *
- *****************************************************************************/
-
-// Set default options
-defaultPlotOptions.boxplot = merge(defaultPlotOptions.column, {
-	fillColor: '#FFFFFF',
-	lineWidth: 1,
-	//medianColor: null,
-	medianWidth: 2,
-	states: {
-		hover: {
-			brightness: -0.3
-		}
-	},
-	//stemColor: null,
-	//stemDashStyle: 'solid'
-	//stemWidth: null,
-	threshold: null,
-	tooltip: {
-		pointFormat: '<span style="color:{series.color};font-weight:bold">{series.name}</span><br/>' +
-			'Maximum: {point.high}<br/>' +
-			'Upper quartile: {point.q3}<br/>' +
-			'Median: {point.median}<br/>' +
-			'Lower quartile: {point.q1}<br/>' +
-			'Minimum: {point.low}<br/>'
-			
-	},
-	//whiskerColor: null,
-	whiskerLength: '50%',
-	whiskerWidth: 2
-});
-
-// Create the series object
-seriesTypes.boxplot = extendClass(seriesTypes.column, {
-	type: 'boxplot',
-	pointArrayMap: ['low', 'q1', 'median', 'q3', 'high'], // array point configs are mapped to this
-	toYData: function (point) { // return a plain array for speedy calculation
-		return [point.low, point.q1, point.median, point.q3, point.high];
-	},
-	pointValKey: 'high', // defines the top of the tracker
-	
-	/**
-	 * One-to-one mapping from options to SVG attributes
-	 */
-	pointAttrToOptions: { // mapping between SVG attributes and the corresponding options
-		fill: 'fillColor',
-		stroke: 'color',
-		'stroke-width': 'lineWidth'
-	},
-	
-	/**
-	 * Disable data labels for box plot
-	 */
-	drawDataLabels: noop,
-
-	/**
-	 * Translate data points from raw values x and y to plotX and plotY
-	 */
-	translate: function () {
-		var series = this,
-			yAxis = series.yAxis,
-			pointArrayMap = series.pointArrayMap;
-
-		seriesTypes.column.prototype.translate.apply(series);
-
-		// do the translation on each point dimension
-		each(series.points, function (point) {
-			each(pointArrayMap, function (key) {
-				if (point[key] !== null) {
-					point[key + 'Plot'] = yAxis.translate(point[key], 0, 1, 0, 1);
-				}
-			});
-		});
-	},
-
-	/**
-	 * Draw the data points
-	 */
-	drawPoints: function () {
-		var series = this,  //state = series.state,
-			points = series.points,
-			options = series.options,
-			chart = series.chart,
-			renderer = chart.renderer,
-			pointAttr,
-			q1Plot,
-			q3Plot,
-			highPlot,
-			lowPlot,
-			medianPlot,
-			crispCorr,
-			crispX,
-			graphic,
-			stemPath,
-			stemAttr,
-			boxPath,
-			whiskersPath,
-			whiskersAttr,
-			medianPath,
-			medianAttr,
-			width,
-			left,
-			right,
-			halfWidth,
-			shapeArgs,
-			color,
-			doQuartiles = series.doQuartiles !== false, // error bar inherits this series type but doesn't do quartiles
-			whiskerLength = parseInt(series.options.whiskerLength, 10) / 100;
-
-
-		each(points, function (point) {
-
-			graphic = point.graphic;
-			shapeArgs = point.shapeArgs; // the box
-			stemAttr = {};
-			whiskersAttr = {};
-			medianAttr = {};
-			color = point.color || series.color;
-			
-			if (point.plotY !== UNDEFINED) {
-
-				pointAttr = point.pointAttr[point.selected ? 'selected' : ''];
-
-				// crisp vector coordinates
-				width = shapeArgs.width;
-				left = mathFloor(shapeArgs.x);
-				right = left + width;
-				halfWidth = mathRound(width / 2);
-				//crispX = mathRound(left + halfWidth) + crispCorr;
-				q1Plot = mathFloor(doQuartiles ? point.q1Plot : point.lowPlot);// + crispCorr;
-				q3Plot = mathFloor(doQuartiles ? point.q3Plot : point.lowPlot);// + crispCorr;
-				highPlot = mathFloor(point.highPlot);// + crispCorr;
-				lowPlot = mathFloor(point.lowPlot);// + crispCorr;
-				
-				// Stem attributes
-				stemAttr.stroke = point.stemColor || options.stemColor || color;
-				stemAttr['stroke-width'] = pick(point.stemWidth, options.stemWidth, options.lineWidth);
-				stemAttr.dashstyle = point.stemDashStyle || options.stemDashStyle;
-				
-				// Whiskers attributes
-				whiskersAttr.stroke = point.whiskerColor || options.whiskerColor || color;
-				whiskersAttr['stroke-width'] = pick(point.whiskerWidth, options.whiskerWidth, options.lineWidth);
-				
-				// Median attributes
-				medianAttr.stroke = point.medianColor || options.medianColor || color;
-				medianAttr['stroke-width'] = pick(point.medianWidth, options.medianWidth, options.lineWidth);
-				
-				
-				// The stem
-				crispCorr = (stemAttr['stroke-width'] % 2) / 2;
-				crispX = left + halfWidth + crispCorr;				
-				stemPath = [
-					// stem up
-					'M',
-					crispX, q3Plot,
-					'L',
-					crispX, highPlot,
-					
-					// stem down
-					'M',
-					crispX, q1Plot,
-					'L',
-					crispX, lowPlot,
-					'z'
-				];
-				
-				// The box
-				if (doQuartiles) {
-					crispCorr = (pointAttr['stroke-width'] % 2) / 2;
-					crispX = mathFloor(crispX) + crispCorr;
-					q1Plot = mathFloor(q1Plot) + crispCorr;
-					q3Plot = mathFloor(q3Plot) + crispCorr;
-					left += crispCorr;
-					right += crispCorr;
-					boxPath = [
-						'M',
-						left, q3Plot,
-						'L',
-						left, q1Plot,
-						'L',
-						right, q1Plot,
-						'L',
-						right, q3Plot,
-						'L',
-						left, q3Plot,
-						'z'
-					];
-				}
-				
-				// The whiskers
-				if (whiskerLength) {
-					crispCorr = (whiskersAttr['stroke-width'] % 2) / 2;
-					highPlot = highPlot + crispCorr;
-					lowPlot = lowPlot + crispCorr;
-					whiskersPath = [
-						// High whisker
-						'M',
-						crispX - halfWidth * whiskerLength, 
-						highPlot,
-						'L',
-						crispX + halfWidth * whiskerLength, 
-						highPlot,
-						
-						// Low whisker
-						'M',
-						crispX - halfWidth * whiskerLength, 
-						lowPlot,
-						'L',
-						crispX + halfWidth * whiskerLength, 
-						lowPlot
-					];
-				}
-				
-				// The median
-				crispCorr = (medianAttr['stroke-width'] % 2) / 2;				
-				medianPlot = mathRound(point.medianPlot) + crispCorr;
-				medianPath = [
-					'M',
-					left, 
-					medianPlot,
-					'L',
-					right, 
-					medianPlot,
-					'z'
-				];
-				
-				// Create or update the graphics
-				if (graphic) { // update
-					
-					point.stem.animate({ d: stemPath });
-					if (whiskerLength) {
-						point.whiskers.animate({ d: whiskersPath });
-					}
-					if (doQuartiles) {
-						point.box.animate({ d: boxPath });
-					}
-					point.medianShape.animate({ d: medianPath });
-					
-				} else { // create new
-					point.graphic = graphic = renderer.g()
-						.add(series.group);
-					
-					point.stem = renderer.path(stemPath)
-						.attr(stemAttr)
-						.add(graphic);
-						
-					if (whiskerLength) {
-						point.whiskers = renderer.path(whiskersPath) 
-							.attr(whiskersAttr)
-							.add(graphic);
-					}
-					if (doQuartiles) {
-						point.box = renderer.path(boxPath)
-							.attr(pointAttr)
-							.add(graphic);
-					}	
-					point.medianShape = renderer.path(medianPath)
-						.attr(medianAttr)
-						.add(graphic);
-				}
-			}
-		});
-
-	}
-
-
-});
-
-/* ****************************************************************************
- * End Box plot series code												*
- *****************************************************************************/
-/* ****************************************************************************
- * Start error bar series code                                                *
- *****************************************************************************/
-
-// 1 - set default options
-defaultPlotOptions.errorbar = merge(defaultPlotOptions.boxplot, {
-	color: '#000000',
-	grouping: false,
-	linkedTo: ':previous',
-	tooltip: {
-		pointFormat: defaultPlotOptions.arearange.tooltip.pointFormat
-	},
-	whiskerWidth: null
-});
-
-// 2 - Create the series object
-seriesTypes.errorbar = extendClass(seriesTypes.boxplot, {
-	type: 'errorbar',
-	pointArrayMap: ['low', 'high'], // array point configs are mapped to this
-	toYData: function (point) { // return a plain array for speedy calculation
-		return [point.low, point.high];
-	},
-	pointValKey: 'high', // defines the top of the tracker
-	doQuartiles: false,
-
-	/**
-	 * Get the width and X offset, either on top of the linked series column
-	 * or standalone
-	 */
-	getColumnMetrics: function () {
-		return (this.linkedParent && this.linkedParent.columnMetrics) || 
-			seriesTypes.column.prototype.getColumnMetrics.call(this);
-	}
-});
-
-/* ****************************************************************************
- * End error bar series code                                                  *
- *****************************************************************************/
-/* ****************************************************************************
- * Start Waterfall series code                                                *
- *****************************************************************************/
-
-// 1 - set default options
-defaultPlotOptions.waterfall = merge(defaultPlotOptions.column, {
-	lineWidth: 1,
-	lineColor: '#333',
-	dashStyle: 'dot',
-	borderColor: '#333'
-});
-
-
-// 2 - Create the series object
-seriesTypes.waterfall = extendClass(seriesTypes.column, {
-	type: 'waterfall',
-
-	upColorProp: 'fill',
-
-	pointArrayMap: ['low', 'y'],
-
-	pointValKey: 'y',
-
-	/**
-	 * Init waterfall series, force stacking
-	 */
-	init: function (chart, options) {
-		// force stacking
-		options.stacking = true;
-
-		seriesTypes.column.prototype.init.call(this, chart, options);
-	},
-
-
-	/**
-	 * Translate data points from raw values
-	 */
-	translate: function () {
-		var series = this,
-			options = series.options,
-			axis = series.yAxis,
-			len,
-			i,
-			points,
-			point,
-			shapeArgs,
-			stack,
-			y,
-			previousY,
-			stackPoint,
-			threshold = options.threshold,
-			crispCorr = (options.borderWidth % 2) / 2;
-
-		// run column series translate
-		seriesTypes.column.prototype.translate.apply(this);
-
-		previousY = threshold;
-		points = series.points;
-
-		for (i = 0, len = points.length; i < len; i++) {
-			// cache current point object
-			point = points[i];
-			shapeArgs = point.shapeArgs;
-
-			// get current stack
-			stack = series.getStack(i);
-			stackPoint = stack.points[series.index];
-
-			// override point value for sums
-			if (isNaN(point.y)) {
-				point.y = series.yData[i];
-			}
-
-			// up points
-			y = mathMax(previousY, previousY + point.y) + stackPoint[0];
-			shapeArgs.y = axis.translate(y, 0, 1);
-
-
-			// sum points
-			if (point.isSum || point.isIntermediateSum) {
-				shapeArgs.y = axis.translate(stackPoint[1], 0, 1);
-				shapeArgs.height = axis.translate(stackPoint[0], 0, 1) - shapeArgs.y;
-
-			// if it's not the sum point, update previous stack end position
-			} else {
-				previousY += stack.total;
-			}
-
-			// negative points
-			if (shapeArgs.height < 0) {
-				shapeArgs.y += shapeArgs.height;
-				shapeArgs.height *= -1;
-			}
-
-			point.plotY = shapeArgs.y = mathRound(shapeArgs.y) - crispCorr;
-			shapeArgs.height = mathRound(shapeArgs.height);
-			point.yBottom = shapeArgs.y + shapeArgs.height;
-		}
-	},
-
-	/**
-	 * Call default processData then override yData to reflect waterfall's extremes on yAxis
-	 */
-	processData: function (force) {
-		var series = this,
-			options = series.options,
-			yData = series.yData,
-			points = series.points,
-			point,
-			dataLength = yData.length,
-			threshold = options.threshold || 0,
-			subSum,
-			sum,
-			dataMin,
-			dataMax,
-			y,
-			i;
-
-		sum = subSum = dataMin = dataMax = threshold;
-
-		for (i = 0; i < dataLength; i++) {
-			y = yData[i];
-			point = points && points[i] ? points[i] : {};
-
-			if (y === "sum" || point.isSum) {
-				yData[i] = sum;
-			} else if (y === "intermediateSum" || point.isIntermediateSum) {
-				yData[i] = subSum;
-				subSum = threshold;
-			} else {
-				sum += y;
-				subSum += y;
-			}
-			dataMin = Math.min(sum, dataMin);
-			dataMax = Math.max(sum, dataMax);
-		}
-
-		Series.prototype.processData.call(this, force);
-
-		// Record extremes
-		series.dataMin = dataMin;
-		series.dataMax = dataMax;
-	},
-
-	/**
-	 * Return y value or string if point is sum
-	 */
-	toYData: function (pt) {
-		if (pt.isSum) {
-			return "sum";
-		} else if (pt.isIntermediateSum) {
-			return "intermediateSum";
-		}
-
-		return pt.y;
-	},
-
-	/**
-	 * Postprocess mapping between options and SVG attributes
-	 */
-	getAttribs: function () {
-		seriesTypes.column.prototype.getAttribs.apply(this, arguments);
-
-		var series = this,
-			options = series.options,
-			stateOptions = options.states,
-			upColor = options.upColor || series.color,
-			hoverColor = Highcharts.Color(upColor).brighten(0.1).get(),
-			seriesDownPointAttr = merge(series.pointAttr),
-			upColorProp = series.upColorProp;
-
-		seriesDownPointAttr[''][upColorProp] = upColor;
-		seriesDownPointAttr.hover[upColorProp] = stateOptions.hover.upColor || hoverColor;
-		seriesDownPointAttr.select[upColorProp] = stateOptions.select.upColor || upColor;
-
-		each(series.points, function (point) {
-			if (point.y > 0 && !point.color) {
-				point.pointAttr = seriesDownPointAttr;
-				point.color = upColor;
-			}
-		});
-	},
-
-	/**
-	 * Draw columns' connector lines
-	 */
-	getGraphPath: function () {
-
-		var data = this.data,
-			length = data.length,
-			lineWidth = this.options.lineWidth + this.options.borderWidth,
-			normalizer = mathRound(lineWidth) % 2 / 2,
-			path = [],
-			M = 'M',
-			L = 'L',
-			prevArgs,
-			pointArgs,
-			i,
-			d;
-
-		for (i = 1; i < length; i++) {
-			pointArgs = data[i].shapeArgs;
-			prevArgs = data[i - 1].shapeArgs;
-
-			d = [
-				M,
-				prevArgs.x + prevArgs.width, prevArgs.y + normalizer,
-				L,
-				pointArgs.x, prevArgs.y + normalizer
-			];
-
-			if (data[i - 1].y < 0) {
-				d[2] += prevArgs.height;
-				d[5] += prevArgs.height;
-			}
-
-			path = path.concat(d);
-		}
-
-		return path;
-	},
-
-	/**
-	 * Extremes are recorded in processData
-	 */
-	getExtremes: noop,
-
-	/**
-	 * Return stack for given index
-	 */
-	getStack: function (i) {
-		var axis = this.yAxis,
-			stacks = axis.stacks,
-			key = this.stackKey;
-
-		if (this.processedYData[i] < this.options.threshold) {
-			key = '-' + key;
-		}
-
-		return stacks[key][i];
-	},
-
-	drawGraph: Series.prototype.drawGraph
-});
-
-/* ****************************************************************************
- * End Waterfall series code                                                  *
- *****************************************************************************/
-/* ****************************************************************************
- * Start Bubble series code											          *
- *****************************************************************************/
-
-// 1 - set default options
-defaultPlotOptions.bubble = merge(defaultPlotOptions.scatter, {
-	dataLabels: {
-		inside: true,
-		style: {
-			color: 'white',
-			textShadow: '0px 0px 3px black'
-		},
-		verticalAlign: 'middle'
-	},
-	// displayNegative: true,
-	marker: {
-		// fillOpacity: 0.5,
-		lineColor: null, // inherit from series.color
-		lineWidth: 1
-	},
-	minSize: 8,
-	maxSize: '20%',
-	// negativeColor: null,
-	tooltip: {
-		pointFormat: '({point.x}, {point.y}), Size: {point.z}'
-	},
-	turboThreshold: 0,
-	zThreshold: 0
-});
-
-// 2 - Create the series object
-seriesTypes.bubble = extendClass(seriesTypes.scatter, {
-	type: 'bubble',
-	pointArrayMap: ['y', 'z'],
-	trackerGroups: ['group', 'dataLabelsGroup'],
-	
-	/**
-	 * Mapping between SVG attributes and the corresponding options
-	 */
-	pointAttrToOptions: { 
-		stroke: 'lineColor',
-		'stroke-width': 'lineWidth',
-		fill: 'fillColor'
-	},
-	
-	/**
-	 * Apply the fillOpacity to all fill positions
-	 */
-	applyOpacity: function (fill) {
-		var markerOptions = this.options.marker,
-			fillOpacity = pick(markerOptions.fillOpacity, 0.5);
-		
-		// When called from Legend.colorizeItem, the fill isn't predefined
-		fill = fill || markerOptions.fillColor || this.color; 
-		
-		if (fillOpacity !== 1) {
-			fill = Highcharts.Color(fill).setOpacity(fillOpacity).get('rgba');
-		}
-		return fill;
-	},
-	
-	/**
-	 * Extend the convertAttribs method by applying opacity to the fill
-	 */
-	convertAttribs: function () {
-		var obj = Series.prototype.convertAttribs.apply(this, arguments);
-		
-		obj.fill = this.applyOpacity(obj.fill);
-		
-		return obj;
-	},
-
-	/**
-	 * Get the radius for each point based on the minSize, maxSize and each point's Z value. This
-	 * must be done prior to Series.translate because the axis needs to add padding in 
-	 * accordance with the point sizes.
-	 */
-	getRadii: function (zMin, zMax, minSize, maxSize) {
-		var len,
-			i,
-			pos,
-			zData = this.zData,
-			radii = [],
-			zRange;
-		
-		// Set the shape type and arguments to be picked up in drawPoints
-		for (i = 0, len = zData.length; i < len; i++) {
-			zRange = zMax - zMin;
-			pos = zRange > 0 ? // relative size, a number between 0 and 1
-				(zData[i] - zMin) / (zMax - zMin) : 
-				0.5;
-			radii.push(math.ceil(minSize + pos * (maxSize - minSize)) / 2);
-		}
-		this.radii = radii;
-	},
-	
-	/**
-	 * Perform animation on the bubbles
-	 */
-	animate: function (init) {
-		var animation = this.options.animation;
-		
-		if (!init) { // run the animation
-			each(this.points, function (point) {
-				var graphic = point.graphic,
-					shapeArgs = point.shapeArgs;
-
-				if (graphic && shapeArgs) {
-					// start values
-					graphic.attr('r', 1);
-
-					// animate
-					graphic.animate({
-						r: shapeArgs.r
-					}, animation);
-				}
-			});
-
-			// delete this function to allow it only once
-			this.animate = null;
-		}
-	},
-	
-	/**
-	 * Extend the base translate method to handle bubble size
-	 */
-	translate: function () {
-		
-		var i,
-			data = this.data,
-			point,
-			radius,
-			radii = this.radii;
-		
-		// Run the parent method
-		seriesTypes.scatter.prototype.translate.call(this);
-		
-		// Set the shape type and arguments to be picked up in drawPoints
-		i = data.length;
-		
-		while (i--) {
-			point = data[i];
-			radius = radii ? radii[i] : 0; // #1737
-
-			// Flag for negativeColor to be applied in Series.js
-			point.negative = point.z < (this.options.zThreshold || 0);
-			
-			if (radius >= this.minPxSize / 2) {
-				// Shape arguments
-				point.shapeType = 'circle';
-				point.shapeArgs = {
-					x: point.plotX,
-					y: point.plotY,
-					r: radius
-				};
-				
-				// Alignment box for the data label
-				point.dlBox = {
-					x: point.plotX - radius,
-					y: point.plotY - radius,
-					width: 2 * radius,
-					height: 2 * radius
-				};
-			} else { // below zThreshold
-				point.shapeArgs = point.plotY = point.dlBox = UNDEFINED; // #1691
-			}
-		}
-	},
-	
-	/**
-	 * Get the series' symbol in the legend
-	 * 
-	 * @param {Object} legend The legend object
-	 * @param {Object} item The series (this) or point
-	 */
-	drawLegendSymbol: function (legend, item) {
-		var radius = pInt(legend.itemStyle.fontSize) / 2;
-		
-		item.legendSymbol = this.chart.renderer.circle(
-			radius,
-			legend.baseline - radius,
-			radius
-		).attr({
-			zIndex: 3
-		}).add(item.legendGroup);
-		item.legendSymbol.isMarker = true;	
-		
-	},
-	
-	drawPoints: seriesTypes.column.prototype.drawPoints,
-	alignDataLabel: seriesTypes.column.prototype.alignDataLabel
-});
-
-/**
- * Add logic to pad each axis with the amount of pixels
- * necessary to avoid the bubbles to overflow.
- */
-Axis.prototype.beforePadding = function () {
-	var axis = this,
-		axisLength = this.len,
-		chart = this.chart,
-		pxMin = 0, 
-		pxMax = axisLength,
-		isXAxis = this.isXAxis,
-		dataKey = isXAxis ? 'xData' : 'yData',
-		min = this.min,
-		extremes = {},
-		smallestSize = math.min(chart.plotWidth, chart.plotHeight),
-		zMin = Number.MAX_VALUE,
-		zMax = -Number.MAX_VALUE,
-		range = this.max - min,
-		transA = axisLength / range,
-		activeSeries = [];
-
-	// Handle padding on the second pass, or on redraw
-	if (this.tickPositions) {
-		each(this.series, function (series) {
-
-			var seriesOptions = series.options,
-				zData;
-
-			if (series.type === 'bubble' && series.visible) {
-
-				// Correction for #1673
-				axis.allowZoomOutside = true;
-
-				// Cache it
-				activeSeries.push(series);
-
-				if (isXAxis) { // because X axis is evaluated first
-				
-					// For each series, translate the size extremes to pixel values
-					each(['minSize', 'maxSize'], function (prop) {
-						var length = seriesOptions[prop],
-							isPercent = /%$/.test(length);
-						
-						length = pInt(length);
-						extremes[prop] = isPercent ?
-							smallestSize * length / 100 :
-							length;
-						
-					});
-					series.minPxSize = extremes.minSize;
-					
-					// Find the min and max Z
-					zData = series.zData;
-					if (zData.length) { // #1735
-						zMin = math.min(
-							zMin,
-							math.max(
-								arrayMin(zData), 
-								seriesOptions.displayNegative === false ? seriesOptions.zThreshold : -Number.MAX_VALUE
-							)
-						);
-						zMax = math.max(zMax, arrayMax(zData));
-					}
-				}
-			}
-		});
-
-		each(activeSeries, function (series) {
-
-			var data = series[dataKey],
-				i = data.length,
-				radius;
-
-			if (isXAxis) {
-				series.getRadii(zMin, zMax, extremes.minSize, extremes.maxSize);
-			}
-			
-			if (range > 0) {
-				while (i--) {
-					radius = series.radii[i];
-					pxMin = Math.min(((data[i] - min) * transA) - radius, pxMin);
-					pxMax = Math.max(((data[i] - min) * transA) + radius, pxMax);
-				}
-			}
-		});
-		
-		if (activeSeries.length && range > 0 && pick(this.options.min, this.userMin) === UNDEFINED && pick(this.options.max, this.userMax) === UNDEFINED) {
-			pxMax -= axisLength;
-			transA *= (axisLength + pxMin - pxMax) / axisLength;
-			this.min += pxMin / transA;
-			this.max += pxMax / transA;
-		}
-	}
-};
-
-/* ****************************************************************************
- * End Bubble series code                                                     *
- *****************************************************************************/
-/**
- * Extensions for polar charts. Additionally, much of the geometry required for polar charts is
- * gathered in RadialAxes.js.
- * 
- */
-
-var seriesProto = Series.prototype,
-	pointerProto = Highcharts.Pointer.prototype;
-
-
-
-/**
- * Translate a point's plotX and plotY from the internal angle and radius measures to 
- * true plotX, plotY coordinates
- */
-seriesProto.toXY = function (point) {
-	var xy,
-		chart = this.chart,
-		plotX = point.plotX,
-		plotY = point.plotY;
-	
-	// Save rectangular plotX, plotY for later computation
-	point.rectPlotX = plotX;
-	point.rectPlotY = plotY;
-	
-	// Record the angle in degrees for use in tooltip
-	point.clientX = ((plotX / Math.PI * 180) + this.xAxis.pane.options.startAngle) % 360;
-	
-	// Find the polar plotX and plotY
-	xy = this.xAxis.postTranslate(point.plotX, this.yAxis.len - plotY);
-	point.plotX = point.polarPlotX = xy.x - chart.plotLeft;
-	point.plotY = point.polarPlotY = xy.y - chart.plotTop;
-};
-
-/** 
- * Order the tooltip points to get the mouse capture ranges correct. #1915. 
- */
-seriesProto.orderTooltipPoints = function (points) {
-	if (this.chart.polar) {
-		points.sort(function (a, b) {
-			return a.clientX - b.clientX;
-		});
-
-		// Wrap mouse tracking around to capture movement on the segment to the left
-		// of the north point (#1469, #2093).
-		if (points[0]) {
-			points[0].wrappedClientX = points[0].clientX + 360;
-			points.push(points[0]);
-		}
-	}
-};
-
-
-/**
- * Add some special init logic to areas and areasplines
- */
-function initArea(proceed, chart, options) {
-	proceed.call(this, chart, options);
-	if (this.chart.polar) {
-		
-		/**
-		 * Overridden method to close a segment path. While in a cartesian plane the area 
-		 * goes down to the threshold, in the polar chart it goes to the center.
-		 */
-		this.closeSegment = function (path) {
-			var center = this.xAxis.center;
-			path.push(
-				'L',
-				center[0],
-				center[1]
-			);			
-		};
-		
-		// Instead of complicated logic to draw an area around the inner area in a stack,
-		// just draw it behind
-		this.closedStacks = true;
-	}
-}
-wrap(seriesTypes.area.prototype, 'init', initArea);
-wrap(seriesTypes.areaspline.prototype, 'init', initArea);
-		
-
-/**
- * Overridden method for calculating a spline from one point to the next
- */
-wrap(seriesTypes.spline.prototype, 'getPointSpline', function (proceed, segment, point, i) {
-	
-	var ret,
-		smoothing = 1.5, // 1 means control points midway between points, 2 means 1/3 from the point, 3 is 1/4 etc;
-		denom = smoothing + 1,
-		plotX, 
-		plotY,
-		lastPoint,
-		nextPoint,
-		lastX,
-		lastY,
-		nextX,
-		nextY,
-		leftContX,
-		leftContY,
-		rightContX,
-		rightContY,
-		distanceLeftControlPoint,
-		distanceRightControlPoint,
-		leftContAngle,
-		rightContAngle,
-		jointAngle;
-		
-		
-	if (this.chart.polar) {
-		
-		plotX = point.plotX;
-		plotY = point.plotY;
-		lastPoint = segment[i - 1];
-		nextPoint = segment[i + 1];
-			
-		// Connect ends
-		if (this.connectEnds) {
-			if (!lastPoint) {
-				lastPoint = segment[segment.length - 2]; // not the last but the second last, because the segment is already connected
-			}
-			if (!nextPoint) {
-				nextPoint = segment[1];
-			}	
-		}
-
-		// find control points
-		if (lastPoint && nextPoint) {
-		
-			lastX = lastPoint.plotX;
-			lastY = lastPoint.plotY;
-			nextX = nextPoint.plotX;
-			nextY = nextPoint.plotY;
-			leftContX = (smoothing * plotX + lastX) / denom;
-			leftContY = (smoothing * plotY + lastY) / denom;
-			rightContX = (smoothing * plotX + nextX) / denom;
-			rightContY = (smoothing * plotY + nextY) / denom;
-			distanceLeftControlPoint = Math.sqrt(Math.pow(leftContX - plotX, 2) + Math.pow(leftContY - plotY, 2));
-			distanceRightControlPoint = Math.sqrt(Math.pow(rightContX - plotX, 2) + Math.pow(rightContY - plotY, 2));
-			leftContAngle = Math.atan2(leftContY - plotY, leftContX - plotX);
-			rightContAngle = Math.atan2(rightContY - plotY, rightContX - plotX);
-			jointAngle = (Math.PI / 2) + ((leftContAngle + rightContAngle) / 2);
-				
-				
-			// Ensure the right direction, jointAngle should be in the same quadrant as leftContAngle
-			if (Math.abs(leftContAngle - jointAngle) > Math.PI / 2) {
-				jointAngle -= Math.PI;
-			}
-			
-			// Find the corrected control points for a spline straight through the point
-			leftContX = plotX + Math.cos(jointAngle) * distanceLeftControlPoint;
-			leftContY = plotY + Math.sin(jointAngle) * distanceLeftControlPoint;
-			rightContX = plotX + Math.cos(Math.PI + jointAngle) * distanceRightControlPoint;
-			rightContY = plotY + Math.sin(Math.PI + jointAngle) * distanceRightControlPoint;
-			
-			// Record for drawing in next point
-			point.rightContX = rightContX;
-			point.rightContY = rightContY;
-
-		}
-		
-		
-		// moveTo or lineTo
-		if (!i) {
-			ret = ['M', plotX, plotY];
-		} else { // curve from last point to this
-			ret = [
-				'C',
-				lastPoint.rightContX || lastPoint.plotX,
-				lastPoint.rightContY || lastPoint.plotY,
-				leftContX || plotX,
-				leftContY || plotY,
-				plotX,
-				plotY
-			];
-			lastPoint.rightContX = lastPoint.rightContY = null; // reset for updating series later
-		}
-		
-		
-	} else {
-		ret = proceed.call(this, segment, point, i);
-	}
-	return ret;
-});
-
-/**
- * Extend translate. The plotX and plotY values are computed as if the polar chart were a
- * cartesian plane, where plotX denotes the angle in radians and (yAxis.len - plotY) is the pixel distance from
- * center. 
- */
-wrap(seriesProto, 'translate', function (proceed) {
-		
-	// Run uber method
-	proceed.call(this);
-	
-	// Postprocess plot coordinates
-	if (this.chart.polar && !this.preventPostTranslate) {
-		var points = this.points,
-			i = points.length;
-		while (i--) {
-			// Translate plotX, plotY from angle and radius to true plot coordinates
-			this.toXY(points[i]);
-		}
-	}
-});
-
-/** 
- * Extend getSegmentPath to allow connecting ends across 0 to provide a closed circle in 
- * line-like series.
- */
-wrap(seriesProto, 'getSegmentPath', function (proceed, segment) {
-		
-	var points = this.points;
-	
-	// Connect the path
-	if (this.chart.polar && this.options.connectEnds !== false && 
-			segment[segment.length - 1] === points[points.length - 1] && points[0].y !== null) {
-		this.connectEnds = true; // re-used in splines
-		segment = [].concat(segment, [points[0]]);
-	}
-	
-	// Run uber method
-	return proceed.call(this, segment);
-	
-});
-
-
-function polarAnimate(proceed, init) {
-	var chart = this.chart,
-		animation = this.options.animation,
-		group = this.group,
-		markerGroup = this.markerGroup,
-		center = this.xAxis.center,
-		plotLeft = chart.plotLeft,
-		plotTop = chart.plotTop,
-		attribs;
-
-	// Specific animation for polar charts
-	if (chart.polar) {
-		
-		// Enable animation on polar charts only in SVG. In VML, the scaling is different, plus animation
-		// would be so slow it would't matter.
-		if (chart.renderer.isSVG) {
-
-			if (animation === true) {
-				animation = {};
-			}
-	
-			// Initialize the animation
-			if (init) {
-				
-				// Scale down the group and place it in the center
-				attribs = {
-					translateX: center[0] + plotLeft,
-					translateY: center[1] + plotTop,
-					scaleX: 0.001, // #1499
-					scaleY: 0.001
-				};
-					
-				group.attr(attribs);
-				if (markerGroup) {
-					markerGroup.attrSetters = group.attrSetters;
-					markerGroup.attr(attribs);
-				}
-				
-			// Run the animation
-			} else {
-				attribs = {
-					translateX: plotLeft,
-					translateY: plotTop,
-					scaleX: 1,
-					scaleY: 1
-				};
-				group.animate(attribs, animation);
-				if (markerGroup) {
-					markerGroup.animate(attribs, animation);
-				}
-				
-				// Delete this function to allow it only once
-				this.animate = null;
-			}
-		}
-	
-	// For non-polar charts, revert to the basic animation
-	} else {
-		proceed.call(this, init);
-	} 
-}
-
-// Define the animate method for both regular series and column series and their derivatives
-wrap(seriesProto, 'animate', polarAnimate);
-wrap(colProto, 'animate', polarAnimate);
-
-
-/**
- * Throw in a couple of properties to let setTooltipPoints know we're indexing the points
- * in degrees (0-360), not plot pixel width.
- */
-wrap(seriesProto, 'setTooltipPoints', function (proceed, renew) {
-		
-	if (this.chart.polar) {
-		extend(this.xAxis, {
-			tooltipLen: 360 // degrees are the resolution unit of the tooltipPoints array
-		});	
-	}
-	
-	// Run uber method
-	return proceed.call(this, renew);
-});
-
-
-/**
- * Extend the column prototype's translate method
- */
-wrap(colProto, 'translate', function (proceed) {
-		
-	var xAxis = this.xAxis,
-		len = this.yAxis.len,
-		center = xAxis.center,
-		startAngleRad = xAxis.startAngleRad,
-		renderer = this.chart.renderer,
-		start,
-		points,
-		point,
-		i;
-	
-	this.preventPostTranslate = true;
-	
-	// Run uber method
-	proceed.call(this);
-	
-	// Postprocess plot coordinates
-	if (xAxis.isRadial) {
-		points = this.points;
-		i = points.length;
-		while (i--) {
-			point = points[i];
-			start = point.barX + startAngleRad;
-			point.shapeType = 'path';
-			point.shapeArgs = {
-				d: renderer.symbols.arc(
-					center[0],
-					center[1],
-					len - point.plotY,
-					null, 
-					{
-						start: start,
-						end: start + point.pointWidth,
-						innerR: len - pick(point.yBottom, len)
-					}
-				)
-			};
-			this.toXY(point); // provide correct plotX, plotY for tooltip
-		}
-	}
-});
-
-
-/**
- * Align column data labels outside the columns. #1199.
- */
-wrap(colProto, 'alignDataLabel', function (proceed, point, dataLabel, options, alignTo, isNew) {
-	
-	if (this.chart.polar) {
-		var angle = point.rectPlotX / Math.PI * 180,
-			align,
-			verticalAlign;
-		
-		// Align nicely outside the perimeter of the columns
-		if (options.align === null) {
-			if (angle > 20 && angle < 160) {
-				align = 'left'; // right hemisphere
-			} else if (angle > 200 && angle < 340) {
-				align = 'right'; // left hemisphere
-			} else {
-				align = 'center'; // top or bottom
-			}
-			options.align = align;
-		}
-		if (options.verticalAlign === null) {
-			if (angle < 45 || angle > 315) {
-				verticalAlign = 'bottom'; // top part
-			} else if (angle > 135 && angle < 225) {
-				verticalAlign = 'top'; // bottom part
-			} else {
-				verticalAlign = 'middle'; // left or right
-			}
-			options.verticalAlign = verticalAlign;
-		}
-		
-		seriesProto.alignDataLabel.call(this, point, dataLabel, options, alignTo, isNew);
-	} else {
-		proceed.call(this, point, dataLabel, options, alignTo, isNew);
-	}
-	
-});
-
-/**
- * Extend the mouse tracker to return the tooltip position index in terms of
- * degrees rather than pixels
- */
-wrap(pointerProto, 'getIndex', function (proceed, e) {
-	var ret,
-		chart = this.chart,
-		center,
-		x,
-		y;
-	
-	if (chart.polar) {
-		center = chart.xAxis[0].center;
-		x = e.chartX - center[0] - chart.plotLeft;
-		y = e.chartY - center[1] - chart.plotTop;
-		
-		ret = 180 - Math.round(Math.atan2(x, y) / Math.PI * 180);
-	
-	} else {
-	
-		// Run uber method
-		ret = proceed.call(this, e);
-	}
-	return ret;
-});
-
-/**
- * Extend getCoordinates to prepare for polar axis values
- */
-wrap(pointerProto, 'getCoordinates', function (proceed, e) {
-	var chart = this.chart,
-		ret = {
-			xAxis: [],
-			yAxis: []
-		};
-	
-	if (chart.polar) {	
-
-		each(chart.axes, function (axis) {
-			var isXAxis = axis.isXAxis,
-				center = axis.center,
-				x = e.chartX - center[0] - chart.plotLeft,
-				y = e.chartY - center[1] - chart.plotTop;
-			
-			ret[isXAxis ? 'xAxis' : 'yAxis'].push({
-				axis: axis,
-				value: axis.translate(
-					isXAxis ?
-						Math.PI - Math.atan2(x, y) : // angle 
-						Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)), // distance from center
-					true
-				)
-			});
-		});
-		
-	} else {
-		ret = proceed.call(this, e);
-	}
-	
-	return ret;
-});
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/highcharts.js b/server/public/ueditor/third-party/highcharts/highcharts.js
deleted file mode 100644
index 7708ac6..0000000
--- a/server/public/ueditor/third-party/highcharts/highcharts.js
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- Highcharts JS v3.0.6 (2013-10-04)
-
- (c) 2009-2013 Torstein H酶nsi
-
- License: www.highcharts.com/license
-*/
-(function(){function r(a,b){var c;a||(a={});for(c in b)a[c]=b[c];return a}function x(){var a,b=arguments.length,c={},d=function(a,b){var c,h;typeof a!=="object"&&(a={});for(h in b)b.hasOwnProperty(h)&&(c=b[h],a[h]=c&&typeof c==="object"&&Object.prototype.toString.call(c)!=="[object Array]"&&typeof c.nodeType!=="number"?d(a[h]||{},c):b[h]);return a};for(a=0;a<b;a++)c=d(c,arguments[a]);return c}function C(a,b){return parseInt(a,b||10)}function ea(a){return typeof a==="string"}function T(a){return typeof a===
-"object"}function Ia(a){return Object.prototype.toString.call(a)==="[object Array]"}function sa(a){return typeof a==="number"}function na(a){return R.log(a)/R.LN10}function fa(a){return R.pow(10,a)}function ga(a,b){for(var c=a.length;c--;)if(a[c]===b){a.splice(c,1);break}}function u(a){return a!==w&&a!==null}function v(a,b,c){var d,e;if(ea(b))u(c)?a.setAttribute(b,c):a&&a.getAttribute&&(e=a.getAttribute(b));else if(u(b)&&T(b))for(d in b)a.setAttribute(d,b[d]);return e}function ja(a){return Ia(a)?
-a:[a]}function o(){var a=arguments,b,c,d=a.length;for(b=0;b<d;b++)if(c=a[b],typeof c!=="undefined"&&c!==null)return c}function K(a,b){if(ta&&b&&b.opacity!==w)b.filter="alpha(opacity="+b.opacity*100+")";r(a.style,b)}function U(a,b,c,d,e){a=y.createElement(a);b&&r(a,b);e&&K(a,{padding:0,border:S,margin:0});c&&K(a,c);d&&d.appendChild(a);return a}function ha(a,b){var c=function(){};c.prototype=new a;r(c.prototype,b);return c}function Aa(a,b,c,d){var e=M.lang,a=+a||0,f=b===-1?(a.toString().split(".")[1]||
-"").length:isNaN(b=N(b))?2:b,b=c===void 0?e.decimalPoint:c,d=d===void 0?e.thousandsSep:d,e=a<0?"-":"",c=String(C(a=N(a).toFixed(f))),g=c.length>3?c.length%3:0;return e+(g?c.substr(0,g)+d:"")+c.substr(g).replace(/(\d{3})(?=\d)/g,"$1"+d)+(f?b+N(a-c).toFixed(f).slice(2):"")}function Ba(a,b){return Array((b||2)+1-String(a).length).join(0)+a}function mb(a,b,c){var d=a[b];a[b]=function(){var a=Array.prototype.slice.call(arguments);a.unshift(d);return c.apply(this,a)}}function Ca(a,b){for(var c="{",d=!1,
-e,f,g,h,i,j=[];(c=a.indexOf(c))!==-1;){e=a.slice(0,c);if(d){f=e.split(":");g=f.shift().split(".");i=g.length;e=b;for(h=0;h<i;h++)e=e[g[h]];if(f.length)f=f.join(":"),g=/\.([0-9])/,h=M.lang,i=void 0,/f$/.test(f)?(i=(i=f.match(g))?i[1]:-1,e=Aa(e,i,h.decimalPoint,f.indexOf(",")>-1?h.thousandsSep:"")):e=Xa(f,e)}j.push(e);a=a.slice(c+1);c=(d=!d)?"}":"{"}j.push(a);return j.join("")}function nb(a){return R.pow(10,P(R.log(a)/R.LN10))}function ob(a,b,c,d){var e,c=o(c,1);e=a/c;b||(b=[1,2,2.5,5,10],d&&d.allowDecimals===
-!1&&(c===1?b=[1,2,5,10]:c<=0.1&&(b=[1/c])));for(d=0;d<b.length;d++)if(a=b[d],e<=(b[d]+(b[d+1]||b[d]))/2)break;a*=c;return a}function Cb(a,b){var c=b||[[Db,[1,2,5,10,20,25,50,100,200,500]],[pb,[1,2,5,10,15,30]],[Ya,[1,2,5,10,15,30]],[Qa,[1,2,3,4,6,8,12]],[ua,[1,2]],[Za,[1,2]],[Ra,[1,2,3,4,6]],[Da,null]],d=c[c.length-1],e=D[d[0]],f=d[1],g;for(g=0;g<c.length;g++)if(d=c[g],e=D[d[0]],f=d[1],c[g+1]&&a<=(e*f[f.length-1]+D[c[g+1][0]])/2)break;e===D[Da]&&a<5*e&&(f=[1,2,5]);c=ob(a/e,f,d[0]===Da?nb(a/e):1);
-return{unitRange:e,count:c,unitName:d[0]}}function Eb(a,b,c,d){var e=[],f={},g=M.global.useUTC,h,i=new Date(b),j=a.unitRange,k=a.count;if(u(b)){j>=D[pb]&&(i.setMilliseconds(0),i.setSeconds(j>=D[Ya]?0:k*P(i.getSeconds()/k)));if(j>=D[Ya])i[Fb](j>=D[Qa]?0:k*P(i[qb]()/k));if(j>=D[Qa])i[Gb](j>=D[ua]?0:k*P(i[rb]()/k));if(j>=D[ua])i[sb](j>=D[Ra]?1:k*P(i[Sa]()/k));j>=D[Ra]&&(i[Hb](j>=D[Da]?0:k*P(i[$a]()/k)),h=i[ab]());j>=D[Da]&&(h-=h%k,i[Ib](h));if(j===D[Za])i[sb](i[Sa]()-i[tb]()+o(d,1));b=1;h=i[ab]();for(var d=
-i.getTime(),l=i[$a](),m=i[Sa](),p=g?0:(864E5+i.getTimezoneOffset()*6E4)%864E5;d<c;)e.push(d),j===D[Da]?d=bb(h+b*k,0):j===D[Ra]?d=bb(h,l+b*k):!g&&(j===D[ua]||j===D[Za])?d=bb(h,l,m+b*k*(j===D[ua]?1:7)):d+=j*k,b++;e.push(d);n(ub(e,function(a){return j<=D[Qa]&&a%D[ua]===p}),function(a){f[a]=ua})}e.info=r(a,{higherRanks:f,totalRange:j*k});return e}function Jb(){this.symbol=this.color=0}function Kb(a,b){var c=a.length,d,e;for(e=0;e<c;e++)a[e].ss_i=e;a.sort(function(a,c){d=b(a,c);return d===0?a.ss_i-c.ss_i:
-d});for(e=0;e<c;e++)delete a[e].ss_i}function Ja(a){for(var b=a.length,c=a[0];b--;)a[b]<c&&(c=a[b]);return c}function va(a){for(var b=a.length,c=a[0];b--;)a[b]>c&&(c=a[b]);return c}function Ka(a,b){for(var c in a)a[c]&&a[c]!==b&&a[c].destroy&&a[c].destroy(),delete a[c]}function Ta(a){cb||(cb=U(Ea));a&&cb.appendChild(a);cb.innerHTML=""}function ka(a,b){var c="Highcharts error #"+a+": www.highcharts.com/errors/"+a;if(b)throw c;else O.console&&console.log(c)}function ia(a){return parseFloat(a.toPrecision(14))}
-function La(a,b){Fa=o(a,b.animation)}function Lb(){var a=M.global.useUTC,b=a?"getUTC":"get",c=a?"setUTC":"set";bb=a?Date.UTC:function(a,b,c,g,h,i){return(new Date(a,b,o(c,1),o(g,0),o(h,0),o(i,0))).getTime()};qb=b+"Minutes";rb=b+"Hours";tb=b+"Day";Sa=b+"Date";$a=b+"Month";ab=b+"FullYear";Fb=c+"Minutes";Gb=c+"Hours";sb=c+"Date";Hb=c+"Month";Ib=c+"FullYear"}function wa(){}function Ma(a,b,c,d){this.axis=a;this.pos=b;this.type=c||"";this.isNew=!0;!c&&!d&&this.addLabel()}function vb(a,b){this.axis=a;if(b)this.options=
-b,this.id=b.id}function Mb(a,b,c,d,e,f){var g=a.chart.inverted;this.axis=a;this.isNegative=c;this.options=b;this.x=d;this.total=null;this.points={};this.stack=e;this.percent=f==="percent";this.alignOptions={align:b.align||(g?c?"left":"right":"center"),verticalAlign:b.verticalAlign||(g?"middle":c?"bottom":"top"),y:o(b.y,g?4:c?14:-6),x:o(b.x,g?c?-6:6:0)};this.textAlign=b.textAlign||(g?c?"right":"left":"center")}function db(){this.init.apply(this,arguments)}function wb(){this.init.apply(this,arguments)}
-function xb(a,b){this.init(a,b)}function eb(a,b){this.init(a,b)}function yb(){this.init.apply(this,arguments)}var w,y=document,O=window,R=Math,t=R.round,P=R.floor,xa=R.ceil,s=R.max,I=R.min,N=R.abs,V=R.cos,ca=R.sin,ya=R.PI,Ua=ya*2/360,oa=navigator.userAgent,Nb=O.opera,ta=/msie/i.test(oa)&&!Nb,fb=y.documentMode===8,gb=/AppleWebKit/.test(oa),hb=/Firefox/.test(oa),Ob=/(Mobile|Android|Windows Phone)/.test(oa),za="http://www.w3.org/2000/svg",Z=!!y.createElementNS&&!!y.createElementNS(za,"svg").createSVGRect,
-Ub=hb&&parseInt(oa.split("Firefox/")[1],10)<4,$=!Z&&!ta&&!!y.createElement("canvas").getContext,Va,ib=y.documentElement.ontouchstart!==w,Pb={},zb=0,cb,M,Xa,Fa,Ab,D,pa=function(){},Ga=[],Ea="div",S="none",Qb="rgba(192,192,192,"+(Z?1.0E-4:0.002)+")",Db="millisecond",pb="second",Ya="minute",Qa="hour",ua="day",Za="week",Ra="month",Da="year",Rb="stroke-width",bb,qb,rb,tb,Sa,$a,ab,Fb,Gb,sb,Hb,Ib,W={};O.Highcharts=O.Highcharts?ka(16,!0):{};Xa=function(a,b,c){if(!u(b)||isNaN(b))return"Invalid date";var a=
-o(a,"%Y-%m-%d %H:%M:%S"),d=new Date(b),e,f=d[rb](),g=d[tb](),h=d[Sa](),i=d[$a](),j=d[ab](),k=M.lang,l=k.weekdays,d=r({a:l[g].substr(0,3),A:l[g],d:Ba(h),e:h,b:k.shortMonths[i],B:k.months[i],m:Ba(i+1),y:j.toString().substr(2,2),Y:j,H:Ba(f),I:Ba(f%12||12),l:f%12||12,M:Ba(d[qb]()),p:f<12?"AM":"PM",P:f<12?"am":"pm",S:Ba(d.getSeconds()),L:Ba(t(b%1E3),3)},Highcharts.dateFormats);for(e in d)for(;a.indexOf("%"+e)!==-1;)a=a.replace("%"+e,typeof d[e]==="function"?d[e](b):d[e]);return c?a.substr(0,1).toUpperCase()+
-a.substr(1):a};Jb.prototype={wrapColor:function(a){if(this.color>=a)this.color=0},wrapSymbol:function(a){if(this.symbol>=a)this.symbol=0}};D=function(){for(var a=0,b=arguments,c=b.length,d={};a<c;a++)d[b[a++]]=b[a];return d}(Db,1,pb,1E3,Ya,6E4,Qa,36E5,ua,864E5,Za,6048E5,Ra,26784E5,Da,31556952E3);Ab={init:function(a,b,c){var b=b||"",d=a.shift,e=b.indexOf("C")>-1,f=e?7:3,g,b=b.split(" "),c=[].concat(c),h,i,j=function(a){for(g=a.length;g--;)a[g]==="M"&&a.splice(g+1,0,a[g+1],a[g+2],a[g+1],a[g+2])};e&&
-(j(b),j(c));a.isArea&&(h=b.splice(b.length-6,6),i=c.splice(c.length-6,6));if(d<=c.length/f&&b.length===c.length)for(;d--;)c=[].concat(c).splice(0,f).concat(c);a.shift=0;if(b.length)for(a=c.length;b.length<a;)d=[].concat(b).splice(b.length-f,f),e&&(d[f-6]=d[f-2],d[f-5]=d[f-1]),b=b.concat(d);h&&(b=b.concat(h),c=c.concat(i));return[b,c]},step:function(a,b,c,d){var e=[],f=a.length;if(c===1)e=d;else if(f===b.length&&c<1)for(;f--;)d=parseFloat(a[f]),e[f]=isNaN(d)?a[f]:c*parseFloat(b[f]-d)+d;else e=b;return e}};
-(function(a){O.HighchartsAdapter=O.HighchartsAdapter||a&&{init:function(b){var c=a.fx,d=c.step,e,f=a.Tween,g=f&&f.propHooks;e=a.cssHooks.opacity;a.extend(a.easing,{easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c}});a.each(["cur","_default","width","height","opacity"],function(a,b){var e=d,k,l;b==="cur"?e=c.prototype:b==="_default"&&f&&(e=g[b],b="set");(k=e[b])&&(e[b]=function(c){c=a?c:this;if(c.prop!=="align")return l=c.elem,l.attr?l.attr(c.prop,b==="cur"?w:c.now):k.apply(this,arguments)})});
-mb(e,"get",function(a,b,c){return b.attr?b.opacity||0:a.call(this,b,c)});e=function(a){var c=a.elem,d;if(!a.started)d=b.init(c,c.d,c.toD),a.start=d[0],a.end=d[1],a.started=!0;c.attr("d",b.step(a.start,a.end,a.pos,c.toD))};f?g.d={set:e}:d.d=e;this.each=Array.prototype.forEach?function(a,b){return Array.prototype.forEach.call(a,b)}:function(a,b){for(var c=0,d=a.length;c<d;c++)if(b.call(a[c],a[c],c,a)===!1)return c};a.fn.highcharts=function(){var a="Chart",b=arguments,c,d;ea(b[0])&&(a=b[0],b=Array.prototype.slice.call(b,
-1));c=b[0];if(c!==w)c.chart=c.chart||{},c.chart.renderTo=this[0],new Highcharts[a](c,b[1]),d=this;c===w&&(d=Ga[v(this[0],"data-highcharts-chart")]);return d}},getScript:a.getScript,inArray:a.inArray,adapterRun:function(b,c){return a(b)[c]()},grep:a.grep,map:function(a,c){for(var d=[],e=0,f=a.length;e<f;e++)d[e]=c.call(a[e],a[e],e,a);return d},offset:function(b){return a(b).offset()},addEvent:function(b,c,d){a(b).bind(c,d)},removeEvent:function(b,c,d){var e=y.removeEventListener?"removeEventListener":
-"detachEvent";y[e]&&b&&!b[e]&&(b[e]=function(){});a(b).unbind(c,d)},fireEvent:function(b,c,d,e){var f=a.Event(c),g="detached"+c,h;!ta&&d&&(delete d.layerX,delete d.layerY);r(f,d);b[c]&&(b[g]=b[c],b[c]=null);a.each(["preventDefault","stopPropagation"],function(a,b){var c=f[b];f[b]=function(){try{c.call(f)}catch(a){b==="preventDefault"&&(h=!0)}}});a(b).trigger(f);b[g]&&(b[c]=b[g],b[g]=null);e&&!f.isDefaultPrevented()&&!h&&e(f)},washMouseEvent:function(a){var c=a.originalEvent||a;if(c.pageX===w)c.pageX=
-a.pageX,c.pageY=a.pageY;return c},animate:function(b,c,d){var e=a(b);if(!b.style)b.style={};if(c.d)b.toD=c.d,c.d=1;e.stop();c.opacity!==w&&b.attr&&(c.opacity+="px");e.animate(c,d)},stop:function(b){a(b).stop()}}})(O.jQuery);var X=O.HighchartsAdapter,G=X||{};X&&X.init.call(X,Ab);var jb=G.adapterRun,Vb=G.getScript,qa=G.inArray,n=G.each,ub=G.grep,Wb=G.offset,Na=G.map,J=G.addEvent,aa=G.removeEvent,z=G.fireEvent,Xb=G.washMouseEvent,Bb=G.animate,Wa=G.stop,G={enabled:!0,x:0,y:15,style:{color:"#666",cursor:"default",
-fontSize:"11px",lineHeight:"14px"}};M={colors:"#2f7ed8,#0d233a,#8bbc21,#910000,#1aadce,#492970,#f28f43,#77a1e5,#c42525,#a6c96a".split(","),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January,February,March,April,May,June,July,August,September,October,November,December".split(","),shortMonths:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),weekdays:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday".split(","),decimalPoint:".",
-numericSymbols:"k,M,G,T,P,E".split(","),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:","},global:{useUTC:!0,canvasToolsURL:"http://code.highcharts.com/3.0.6/modules/canvas-tools.js",VMLRadialGradientURL:"http://code.highcharts.com/3.0.6/gfx/vml-radial-gradient.png"},chart:{borderColor:"#4572A7",borderRadius:5,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],style:{fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif',
-fontSize:"12px"},backgroundColor:"#FFFFFF",plotBorderColor:"#C0C0C0",resetZoomButton:{theme:{zIndex:20},position:{align:"right",x:-10,y:10}}},title:{text:"Chart title",align:"center",margin:15,style:{color:"#274b6d",fontSize:"16px"}},subtitle:{text:"",align:"center",style:{color:"#4d759e"}},plotOptions:{line:{allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},lineWidth:2,marker:{enabled:!0,lineWidth:0,radius:4,lineColor:"#FFFFFF",states:{hover:{enabled:!0},select:{fillColor:"#FFFFFF",
-lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:x(G,{align:"center",enabled:!1,formatter:function(){return this.y===null?"":Aa(this.y,-1)},verticalAlign:"bottom",y:0}),cropThreshold:300,pointRange:0,showInLegend:!0,states:{hover:{marker:{}},select:{marker:{}}},stickyTracking:!0}},labels:{style:{position:"absolute",color:"#3E576F"}},legend:{enabled:!0,align:"center",layout:"horizontal",labelFormatter:function(){return this.name},borderWidth:1,borderColor:"#909090",borderRadius:5,navigation:{activeColor:"#274b6d",
-inactiveColor:"#CCC"},shadow:!1,itemStyle:{cursor:"pointer",color:"#274b6d",fontSize:"12px"},itemHoverStyle:{color:"#000"},itemHiddenStyle:{color:"#CCC"},itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},symbolWidth:16,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"1em"},style:{position:"absolute",backgroundColor:"white",opacity:0.5,textAlign:"center"}},tooltip:{enabled:!0,animation:Z,
-backgroundColor:"rgba(255, 255, 255, .85)",borderWidth:1,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M",day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},headerFormat:'<span style="font-size: 10px">{point.key}</span><br/>',pointFormat:'<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>',shadow:!0,snap:Ob?25:10,style:{color:"#333333",cursor:"default",
-fontSize:"12px",padding:"8px",whiteSpace:"nowrap"}},credits:{enabled:!0,text:"Highcharts.com",href:"http://www.highcharts.com",position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#909090",fontSize:"9px"}}};var Y=M.plotOptions,X=Y.line;Lb();var ra=function(a){var b=[],c,d;(function(a){a&&a.stops?d=Na(a.stops,function(a){return ra(a[1])}):(c=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(a))?b=[C(c[1]),C(c[2]),
-C(c[3]),parseFloat(c[4],10)]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(a))?b=[C(c[1],16),C(c[2],16),C(c[3],16),1]:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(a))&&(b=[C(c[1]),C(c[2]),C(c[3]),1])})(a);return{get:function(c){var f;d?(f=x(a),f.stops=[].concat(f.stops),n(d,function(a,b){f.stops[b]=[f.stops[b][0],a.get(c)]})):f=b&&!isNaN(b[0])?c==="rgb"?"rgb("+b[0]+","+b[1]+","+b[2]+")":c==="a"?b[3]:"rgba("+b.join(",")+")":a;return f},brighten:function(a){if(d)n(d,
-function(b){b.brighten(a)});else if(sa(a)&&a!==0){var c;for(c=0;c<3;c++)b[c]+=C(a*255),b[c]<0&&(b[c]=0),b[c]>255&&(b[c]=255)}return this},rgba:b,setOpacity:function(a){b[3]=a;return this}}};wa.prototype={init:function(a,b){this.element=b==="span"?U(b):y.createElementNS(za,b);this.renderer=a;this.attrSetters={}},opacity:1,animate:function(a,b,c){b=o(b,Fa,!0);Wa(this);if(b){b=x(b);if(c)b.complete=c;Bb(this,a,b)}else this.attr(a),c&&c()},attr:function(a,b){var c,d,e,f,g=this.element,h=g.nodeName.toLowerCase(),
-i=this.renderer,j,k=this.attrSetters,l=this.shadows,m,p,q=this;ea(a)&&u(b)&&(c=a,a={},a[c]=b);if(ea(a))c=a,h==="circle"?c={x:"cx",y:"cy"}[c]||c:c==="strokeWidth"&&(c="stroke-width"),q=v(g,c)||this[c]||0,c!=="d"&&c!=="visibility"&&c!=="fill"&&(q=parseFloat(q));else{for(c in a)if(j=!1,d=a[c],e=k[c]&&k[c].call(this,d,c),e!==!1){e!==w&&(d=e);if(c==="d")d&&d.join&&(d=d.join(" ")),/(NaN| {2}|^$)/.test(d)&&(d="M 0 0");else if(c==="x"&&h==="text")for(e=0;e<g.childNodes.length;e++)f=g.childNodes[e],v(f,"x")===
-v(g,"x")&&v(f,"x",d);else if(this.rotation&&(c==="x"||c==="y"))p=!0;else if(c==="fill")d=i.color(d,g,c);else if(h==="circle"&&(c==="x"||c==="y"))c={x:"cx",y:"cy"}[c]||c;else if(h==="rect"&&c==="r")v(g,{rx:d,ry:d}),j=!0;else if(c==="translateX"||c==="translateY"||c==="rotation"||c==="verticalAlign"||c==="scaleX"||c==="scaleY")j=p=!0;else if(c==="stroke")d=i.color(d,g,c);else if(c==="dashstyle")if(c="stroke-dasharray",d=d&&d.toLowerCase(),d==="solid")d=S;else{if(d){d=d.replace("shortdashdotdot","3,1,1,1,1,1,").replace("shortdashdot",
-"3,1,1,1").replace("shortdot","1,1,").replace("shortdash","3,1,").replace("longdash","8,3,").replace(/dot/g,"1,3,").replace("dash","4,3,").replace(/,$/,"").split(",");for(e=d.length;e--;)d[e]=C(d[e])*o(a["stroke-width"],this["stroke-width"]);d=d.join(",")}}else if(c==="width")d=C(d);else if(c==="align")c="text-anchor",d={left:"start",center:"middle",right:"end"}[d];else if(c==="title")e=g.getElementsByTagName("title")[0],e||(e=y.createElementNS(za,"title"),g.appendChild(e)),e.textContent=d;c==="strokeWidth"&&
-(c="stroke-width");if(c==="stroke-width"||c==="stroke"){this[c]=d;if(this.stroke&&this["stroke-width"])v(g,"stroke",this.stroke),v(g,"stroke-width",this["stroke-width"]),this.hasStroke=!0;else if(c==="stroke-width"&&d===0&&this.hasStroke)g.removeAttribute("stroke"),this.hasStroke=!1;j=!0}this.symbolName&&/^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(c)&&(m||(this.symbolAttr(a),m=!0),j=!0);if(l&&/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(c))for(e=l.length;e--;)v(l[e],
-c,c==="height"?s(d-(l[e].cutHeight||0),0):d);if((c==="width"||c==="height")&&h==="rect"&&d<0)d=0;this[c]=d;c==="text"?(d!==this.textStr&&delete this.bBox,this.textStr=d,this.added&&i.buildText(this)):j||v(g,c,d)}p&&this.updateTransform()}return q},addClass:function(a){var b=this.element,c=v(b,"class")||"";c.indexOf(a)===-1&&v(b,"class",c+" "+a);return this},symbolAttr:function(a){var b=this;n("x,y,r,start,end,width,height,innerR,anchorX,anchorY".split(","),function(c){b[c]=o(a[c],b[c])});b.attr({d:b.renderer.symbols[b.symbolName](b.x,
-b.y,b.width,b.height,b)})},clip:function(a){return this.attr("clip-path",a?"url("+this.renderer.url+"#"+a.id+")":S)},crisp:function(a,b,c,d,e){var f,g={},h={},i,a=a||this.strokeWidth||this.attr&&this.attr("stroke-width")||0;i=t(a)%2/2;h.x=P(b||this.x||0)+i;h.y=P(c||this.y||0)+i;h.width=P((d||this.width||0)-2*i);h.height=P((e||this.height||0)-2*i);h.strokeWidth=a;for(f in h)this[f]!==h[f]&&(this[f]=g[f]=h[f]);return g},css:function(a){var b=this.element,c=a&&a.width&&b.nodeName.toLowerCase()==="text",
-d,e="",f=function(a,b){return"-"+b.toLowerCase()};if(a&&a.color)a.fill=a.color;this.styles=a=r(this.styles,a);$&&c&&delete a.width;if(ta&&!Z)c&&delete a.width,K(this.element,a);else{for(d in a)e+=d.replace(/([A-Z])/g,f)+":"+a[d]+";";v(b,"style",e)}c&&this.added&&this.renderer.buildText(this);return this},on:function(a,b){var c=this,d=c.element;ib&&a==="click"?(d.ontouchstart=function(a){c.touchEventFired=Date.now();a.preventDefault();b.call(d,a)},d.onclick=function(a){(oa.indexOf("Android")===-1||
-Date.now()-(c.touchEventFired||0)>1100)&&b.call(d,a)}):d["on"+a]=b;return this},setRadialReference:function(a){this.element.radialReference=a;return this},translate:function(a,b){return this.attr({translateX:a,translateY:b})},invert:function(){this.inverted=!0;this.updateTransform();return this},htmlCss:function(a){var b=this.element;if(b=a&&b.tagName==="SPAN"&&a.width)delete a.width,this.textWidth=b,this.updateTransform();this.styles=r(this.styles,a);K(this.element,a);return this},htmlGetBBox:function(){var a=
-this.element,b=this.bBox;if(!b){if(a.nodeName==="text")a.style.position="absolute";b=this.bBox={x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}}return b},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,b=this.element,c=this.translateX||0,d=this.translateY||0,e=this.x||0,f=this.y||0,g=this.textAlign||"left",h={left:0,center:0.5,right:1}[g],i=g&&g!=="left",j=this.shadows;K(b,{marginLeft:c,marginTop:d});j&&n(j,function(a){K(a,{marginLeft:c+1,marginTop:d+1})});
-this.inverted&&n(b.childNodes,function(c){a.invertChild(c,b)});if(b.tagName==="SPAN"){var k,l,j=this.rotation,m;k=0;var p=1,q=0,ba;m=C(this.textWidth);var A=this.xCorr||0,L=this.yCorr||0,Sb=[j,g,b.innerHTML,this.textWidth].join(",");if(Sb!==this.cTT){u(j)&&(k=j*Ua,p=V(k),q=ca(k),this.setSpanRotation(j,q,p));k=o(this.elemWidth,b.offsetWidth);l=o(this.elemHeight,b.offsetHeight);if(k>m&&/[ \-]/.test(b.textContent||b.innerText))K(b,{width:m+"px",display:"block",whiteSpace:"normal"}),k=m;m=a.fontMetrics(b.style.fontSize).b;
-A=p<0&&-k;L=q<0&&-l;ba=p*q<0;A+=q*m*(ba?1-h:h);L-=p*m*(j?ba?h:1-h:1);i&&(A-=k*h*(p<0?-1:1),j&&(L-=l*h*(q<0?-1:1)),K(b,{textAlign:g}));this.xCorr=A;this.yCorr=L}K(b,{left:e+A+"px",top:f+L+"px"});if(gb)l=b.offsetHeight;this.cTT=Sb}}else this.alignOnAdd=!0},setSpanRotation:function(a){var b={};b[ta?"-ms-transform":gb?"-webkit-transform":hb?"MozTransform":Nb?"-o-transform":""]=b.transform="rotate("+a+"deg)";K(this.element,b)},updateTransform:function(){var a=this.translateX||0,b=this.translateY||0,c=
-this.scaleX,d=this.scaleY,e=this.inverted,f=this.rotation;e&&(a+=this.attr("width"),b+=this.attr("height"));a=["translate("+a+","+b+")"];e?a.push("rotate(90) scale(-1,1)"):f&&a.push("rotate("+f+" "+(this.x||0)+" "+(this.y||0)+")");(u(c)||u(d))&&a.push("scale("+o(c,1)+" "+o(d,1)+")");a.length&&v(this.element,"transform",a.join(" "))},toFront:function(){var a=this.element;a.parentNode.appendChild(a);return this},align:function(a,b,c){var d,e,f,g,h={};e=this.renderer;f=e.alignedObjects;if(a){if(this.alignOptions=
-a,this.alignByTranslate=b,!c||ea(c))this.alignTo=d=c||"renderer",ga(f,this),f.push(this),c=null}else a=this.alignOptions,b=this.alignByTranslate,d=this.alignTo;c=o(c,e[d],e);d=a.align;e=a.verticalAlign;f=(c.x||0)+(a.x||0);g=(c.y||0)+(a.y||0);if(d==="right"||d==="center")f+=(c.width-(a.width||0))/{right:1,center:2}[d];h[b?"translateX":"x"]=t(f);if(e==="bottom"||e==="middle")g+=(c.height-(a.height||0))/({bottom:1,middle:2}[e]||1);h[b?"translateY":"y"]=t(g);this[this.placed?"animate":"attr"](h);this.placed=
-!0;this.alignAttr=h;return this},getBBox:function(){var a=this.bBox,b=this.renderer,c,d=this.rotation;c=this.element;var e=this.styles,f=d*Ua;if(!a){if(c.namespaceURI===za||b.forExport){try{a=c.getBBox?r({},c.getBBox()):{width:c.offsetWidth,height:c.offsetHeight}}catch(g){}if(!a||a.width<0)a={width:0,height:0}}else a=this.htmlGetBBox();if(b.isSVG){b=a.width;c=a.height;if(ta&&e&&e.fontSize==="11px"&&c.toPrecision(3)==="22.7")a.height=c=14;if(d)a.width=N(c*ca(f))+N(b*V(f)),a.height=N(c*V(f))+N(b*ca(f))}this.bBox=
-a}return a},show:function(){return this.attr({visibility:"visible"})},hide:function(){return this.attr({visibility:"hidden"})},fadeOut:function(a){var b=this;b.animate({opacity:0},{duration:a||150,complete:function(){b.hide()}})},add:function(a){var b=this.renderer,c=a||b,d=c.element||b.box,e=d.childNodes,f=this.element,g=v(f,"zIndex"),h;if(a)this.parentGroup=a;this.parentInverted=a&&a.inverted;this.textStr!==void 0&&b.buildText(this);if(g)c.handleZ=!0,g=C(g);if(c.handleZ)for(c=0;c<e.length;c++)if(a=
-e[c],b=v(a,"zIndex"),a!==f&&(C(b)>g||!u(g)&&u(b))){d.insertBefore(f,a);h=!0;break}h||d.appendChild(f);this.added=!0;z(this,"add");return this},safeRemoveChild:function(a){var b=a.parentNode;b&&b.removeChild(a)},destroy:function(){var a=this,b=a.element||{},c=a.shadows,d=a.renderer.isSVG&&b.nodeName==="SPAN"&&b.parentNode,e,f;b.onclick=b.onmouseout=b.onmouseover=b.onmousemove=b.point=null;Wa(a);if(a.clipPath)a.clipPath=a.clipPath.destroy();if(a.stops){for(f=0;f<a.stops.length;f++)a.stops[f]=a.stops[f].destroy();
-a.stops=null}a.safeRemoveChild(b);for(c&&n(c,function(b){a.safeRemoveChild(b)});d&&d.childNodes.length===0;)b=d.parentNode,a.safeRemoveChild(d),d=b;a.alignTo&&ga(a.renderer.alignedObjects,a);for(e in a)delete a[e];return null},shadow:function(a,b,c){var d=[],e,f,g=this.element,h,i,j,k;if(a){i=o(a.width,3);j=(a.opacity||0.15)/i;k=this.parentInverted?"(-1,-1)":"("+o(a.offsetX,1)+", "+o(a.offsetY,1)+")";for(e=1;e<=i;e++){f=g.cloneNode(0);h=i*2+1-2*e;v(f,{isShadow:"true",stroke:a.color||"black","stroke-opacity":j*
-e,"stroke-width":h,transform:"translate"+k,fill:S});if(c)v(f,"height",s(v(f,"height")-h,0)),f.cutHeight=h;b?b.element.appendChild(f):g.parentNode.insertBefore(f,g);d.push(f)}this.shadows=d}return this}};var Ha=function(){this.init.apply(this,arguments)};Ha.prototype={Element:wa,init:function(a,b,c,d){var e=location,f,g;f=this.createElement("svg").attr({version:"1.1"});g=f.element;a.appendChild(g);a.innerHTML.indexOf("xmlns")===-1&&v(g,"xmlns",za);this.isSVG=!0;this.box=g;this.boxWrapper=f;this.alignedObjects=
-[];this.url=(hb||gb)&&y.getElementsByTagName("base").length?e.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(y.createTextNode("Created with Highcharts 3.0.6"));this.defs=this.createElement("defs").add();this.forExport=d;this.gradients={};this.setSize(b,c,!1);var h;if(hb&&a.getBoundingClientRect)this.subPixelFix=b=function(){K(a,{left:0,top:0});h=a.getBoundingClientRect();K(a,{left:xa(h.left)-h.left+"px",top:xa(h.top)-
-h.top+"px"})},b(),J(O,"resize",b)},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();Ka(this.gradients||{});this.gradients=null;if(a)this.defs=a.destroy();this.subPixelFix&&aa(O,"resize",this.subPixelFix);return this.alignedObjects=null},createElement:function(a){var b=new this.Element;b.init(this,a);return b},draw:function(){},buildText:function(a){for(var b=a.element,c=this,d=c.forExport,e=o(a.textStr,
-"").toString().replace(/<(b|strong)>/g,'<span style="font-weight:bold">').replace(/<(i|em)>/g,'<span style="font-style:italic">').replace(/<a/g,"<span").replace(/<\/(b|strong|i|em|a)>/g,"</span>").split(/<br.*?>/g),f=b.childNodes,g=/style="([^"]+)"/,h=/href="(http[^"]+)"/,i=v(b,"x"),j=a.styles,k=j&&j.width&&C(j.width),l=j&&j.lineHeight,m=f.length;m--;)b.removeChild(f[m]);k&&!a.added&&this.box.appendChild(b);e[e.length-1]===""&&e.pop();n(e,function(e,f){var m,o=0,e=e.replace(/<span/g,"|||<span").replace(/<\/span>/g,
-"</span>|||");m=e.split("|||");n(m,function(e){if(e!==""||m.length===1){var p={},n=y.createElementNS(za,"tspan"),s;g.test(e)&&(s=e.match(g)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),v(n,"style",s));h.test(e)&&!d&&(v(n,"onclick",'location.href="'+e.match(h)[1]+'"'),K(n,{cursor:"pointer"}));e=(e.replace(/<(.|\n)*?>/g,"")||" ").replace(/&lt;/g,"<").replace(/&gt;/g,">");if(e!==" "&&(n.appendChild(y.createTextNode(e)),o?p.dx=0:p.x=i,v(n,p),!o&&f&&(!Z&&d&&K(n,{display:"block"}),v(n,"dy",l||c.fontMetrics(/px$/.test(n.style.fontSize)?
-n.style.fontSize:j.fontSize).h,gb&&n.offsetHeight)),b.appendChild(n),o++,k))for(var e=e.replace(/([^\^])-/g,"$1- ").split(" "),u,t,p=a._clipHeight,E=[],w=C(l||16),B=1;e.length||E.length;)delete a.bBox,u=a.getBBox(),t=u.width,u=t>k,!u||e.length===1?(e=E,E=[],e.length&&(B++,p&&B*w>p?(e=["..."],a.attr("title",a.textStr)):(n=y.createElementNS(za,"tspan"),v(n,{dy:w,x:i}),s&&v(n,"style",s),b.appendChild(n),t>k&&(k=t)))):(n.removeChild(n.firstChild),E.unshift(e.pop())),e.length&&n.appendChild(y.createTextNode(e.join(" ").replace(/- /g,
-"-")))}})})},button:function(a,b,c,d,e,f,g,h){var i=this.label(a,b,c,null,null,null,null,null,"button"),j=0,k,l,m,p,q,n,a={x1:0,y1:0,x2:0,y2:1},e=x({"stroke-width":1,stroke:"#CCCCCC",fill:{linearGradient:a,stops:[[0,"#FEFEFE"],[1,"#F6F6F6"]]},r:2,padding:5,style:{color:"black"}},e);m=e.style;delete e.style;f=x(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#FFF"],[1,"#ACF"]]}},f);p=f.style;delete f.style;g=x(e,{stroke:"#68A",fill:{linearGradient:a,stops:[[0,"#9BD"],[1,"#CDF"]]}},g);q=g.style;
-delete g.style;h=x(e,{style:{color:"#CCC"}},h);n=h.style;delete h.style;J(i.element,ta?"mouseover":"mouseenter",function(){j!==3&&i.attr(f).css(p)});J(i.element,ta?"mouseout":"mouseleave",function(){j!==3&&(k=[e,f,g][j],l=[m,p,q][j],i.attr(k).css(l))});i.setState=function(a){(i.state=j=a)?a===2?i.attr(g).css(q):a===3&&i.attr(h).css(n):i.attr(e).css(m)};return i.on("click",function(){j!==3&&d.call(i)}).attr(e).css(r({cursor:"default"},m))},crispLine:function(a,b){a[1]===a[4]&&(a[1]=a[4]=t(a[1])-b%
-2/2);a[2]===a[5]&&(a[2]=a[5]=t(a[2])+b%2/2);return a},path:function(a){var b={fill:S};Ia(a)?b.d=a:T(a)&&r(b,a);return this.createElement("path").attr(b)},circle:function(a,b,c){a=T(a)?a:{x:a,y:b,r:c};return this.createElement("circle").attr(a)},arc:function(a,b,c,d,e,f){if(T(a))b=a.y,c=a.r,d=a.innerR,e=a.start,f=a.end,a=a.x;a=this.symbol("arc",a||0,b||0,c||0,c||0,{innerR:d||0,start:e||0,end:f||0});a.r=c;return a},rect:function(a,b,c,d,e,f){e=T(a)?a.r:e;e=this.createElement("rect").attr({rx:e,ry:e,
-fill:S});return e.attr(T(a)?a:e.crisp(f,a,b,s(c,0),s(d,0)))},setSize:function(a,b,c){var d=this.alignedObjects,e=d.length;this.width=a;this.height=b;for(this.boxWrapper[o(c,!0)?"animate":"attr"]({width:a,height:b});e--;)d[e].align()},g:function(a){var b=this.createElement("g");return u(a)?b.attr({"class":"highcharts-"+a}):b},image:function(a,b,c,d,e){var f={preserveAspectRatio:S};arguments.length>1&&r(f,{x:b,y:c,width:d,height:e});f=this.createElement("image").attr(f);f.element.setAttributeNS?f.element.setAttributeNS("http://www.w3.org/1999/xlink",
-"href",a):f.element.setAttribute("hc-svg-href",a);return f},symbol:function(a,b,c,d,e,f){var g,h=this.symbols[a],h=h&&h(t(b),t(c),d,e,f),i=/^url\((.*?)\)$/,j,k;if(h)g=this.path(h),r(g,{symbolName:a,x:b,y:c,width:d,height:e}),f&&r(g,f);else if(i.test(a))k=function(a,b){a.element&&(a.attr({width:b[0],height:b[1]}),a.alignByTranslate||a.translate(t((d-b[0])/2),t((e-b[1])/2)))},j=a.match(i)[1],a=Pb[j],g=this.image(j).attr({x:b,y:c}),g.isImg=!0,a?k(g,a):(g.attr({width:0,height:0}),U("img",{onload:function(){k(g,
-Pb[j]=[this.width,this.height])},src:j}));return g},symbols:{circle:function(a,b,c,d){var e=0.166*c;return["M",a+c/2,b,"C",a+c+e,b,a+c+e,b+d,a+c/2,b+d,"C",a-e,b+d,a-e,b,a+c/2,b,"Z"]},square:function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c,b+d,a,b+d,"Z"]},triangle:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d,a,b+d,"Z"]},"triangle-down":function(a,b,c,d){return["M",a,b,"L",a+c,b,a+c/2,b+d,"Z"]},diamond:function(a,b,c,d){return["M",a+c/2,b,"L",a+c,b+d/2,a+c/2,b+d,a,b+d/2,"Z"]},arc:function(a,b,c,d,
-e){var f=e.start,c=e.r||c||d,g=e.end-0.001,d=e.innerR,h=e.open,i=V(f),j=ca(f),k=V(g),g=ca(g),e=e.end-f<ya?0:1;return["M",a+c*i,b+c*j,"A",c,c,0,e,1,a+c*k,b+c*g,h?"M":"L",a+d*k,b+d*g,"A",d,d,0,e,0,a+d*i,b+d*j,h?"":"Z"]}},clipRect:function(a,b,c,d){var e="highcharts-"+zb++,f=this.createElement("clipPath").attr({id:e}).add(this.defs),a=this.rect(a,b,c,d,0).add(f);a.id=e;a.clipPath=f;return a},color:function(a,b,c){var d=this,e,f=/^rgba/,g,h,i,j,k,l,m,p=[];a&&a.linearGradient?g="linearGradient":a&&a.radialGradient&&
-(g="radialGradient");if(g){c=a[g];h=d.gradients;j=a.stops;b=b.radialReference;Ia(c)&&(a[g]=c={x1:c[0],y1:c[1],x2:c[2],y2:c[3],gradientUnits:"userSpaceOnUse"});g==="radialGradient"&&b&&!u(c.gradientUnits)&&(c=x(c,{cx:b[0]-b[2]/2+c.cx*b[2],cy:b[1]-b[2]/2+c.cy*b[2],r:c.r*b[2],gradientUnits:"userSpaceOnUse"}));for(m in c)m!=="id"&&p.push(m,c[m]);for(m in j)p.push(j[m]);p=p.join(",");h[p]?a=h[p].id:(c.id=a="highcharts-"+zb++,h[p]=i=d.createElement(g).attr(c).add(d.defs),i.stops=[],n(j,function(a){f.test(a[1])?
-(e=ra(a[1]),k=e.get("rgb"),l=e.get("a")):(k=a[1],l=1);a=d.createElement("stop").attr({offset:a[0],"stop-color":k,"stop-opacity":l}).add(i);i.stops.push(a)}));return"url("+d.url+"#"+a+")"}else return f.test(a)?(e=ra(a),v(b,c+"-opacity",e.get("a")),e.get("rgb")):(b.removeAttribute(c+"-opacity"),a)},text:function(a,b,c,d){var e=M.chart.style,f=$||!Z&&this.forExport;if(d&&!this.forExport)return this.html(a,b,c);b=t(o(b,0));c=t(o(c,0));a=this.createElement("text").attr({x:b,y:c,text:a}).css({fontFamily:e.fontFamily,
-fontSize:e.fontSize});f&&a.css({position:"absolute"});a.x=b;a.y=c;return a},html:function(a,b,c){var d=M.chart.style,e=this.createElement("span"),f=e.attrSetters,g=e.element,h=e.renderer;f.text=function(a){a!==g.innerHTML&&delete this.bBox;g.innerHTML=a;return!1};f.x=f.y=f.align=function(a,b){b==="align"&&(b="textAlign");e[b]=a;e.htmlUpdateTransform();return!1};e.attr({text:a,x:t(b),y:t(c)}).css({position:"absolute",whiteSpace:"nowrap",fontFamily:d.fontFamily,fontSize:d.fontSize});e.css=e.htmlCss;
-if(h.isSVG)e.add=function(a){var b,c=h.box.parentNode,d=[];if(a){if(b=a.div,!b){for(;a;)d.push(a),a=a.parentGroup;n(d.reverse(),function(a){var d;b=a.div=a.div||U(Ea,{className:v(a.element,"class")},{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px"},b||c);d=b.style;r(a.attrSetters,{translateX:function(a){d.left=a+"px"},translateY:function(a){d.top=a+"px"},visibility:function(a,b){d[b]=a}})})}}else b=c;b.appendChild(g);e.added=!0;e.alignOnAdd&&e.htmlUpdateTransform();return e};
-return e},fontMetrics:function(a){var a=C(a||11),a=a<24?a+4:t(a*1.2),b=t(a*0.8);return{h:a,b:b}},label:function(a,b,c,d,e,f,g,h,i){function j(){var a,b;a=o.element.style;L=(Oa===void 0||la===void 0||q.styles.textAlign)&&o.getBBox();q.width=(Oa||L.width||0)+2*da+kb;q.height=(la||L.height||0)+2*da;v=da+p.fontMetrics(a&&a.fontSize).b;if(C){if(!A)a=t(-s*da),b=h?-v:0,q.box=A=d?p.symbol(d,a,b,q.width,q.height):p.rect(a,b,q.width,q.height,0,lb[Rb]),A.add(q);A.isImg||A.attr(x({width:q.width,height:q.height},
-lb));lb=null}}function k(){var a=q.styles,a=a&&a.textAlign,b=kb+da*(1-s),c;c=h?0:v;if(u(Oa)&&(a==="center"||a==="right"))b+={center:0.5,right:1}[a]*(Oa-L.width);(b!==o.x||c!==o.y)&&o.attr({x:b,y:c});o.x=b;o.y=c}function l(a,b){A?A.attr(a,b):lb[a]=b}function m(){o.add(q);q.attr({text:a,x:b,y:c});A&&u(e)&&q.attr({anchorX:e,anchorY:f})}var p=this,q=p.g(i),o=p.text("",0,0,g).attr({zIndex:1}),A,L,s=0,da=3,kb=0,Oa,la,E,H,B=0,lb={},v,g=q.attrSetters,C;J(q,"add",m);g.width=function(a){Oa=a;return!1};g.height=
-function(a){la=a;return!1};g.padding=function(a){u(a)&&a!==da&&(da=a,k());return!1};g.paddingLeft=function(a){u(a)&&a!==kb&&(kb=a,k());return!1};g.align=function(a){s={left:0,center:0.5,right:1}[a];return!1};g.text=function(a,b){o.attr(b,a);j();k();return!1};g[Rb]=function(a,b){C=!0;B=a%2/2;l(b,a);return!1};g.stroke=g.fill=g.r=function(a,b){b==="fill"&&(C=!0);l(b,a);return!1};g.anchorX=function(a,b){e=a;l(b,a+B-E);return!1};g.anchorY=function(a,b){f=a;l(b,a-H);return!1};g.x=function(a){q.x=a;a-=s*
-((Oa||L.width)+da);E=t(a);q.attr("translateX",E);return!1};g.y=function(a){H=q.y=t(a);q.attr("translateY",H);return!1};var y=q.css;return r(q,{css:function(a){if(a){var b={},a=x(a);n("fontSize,fontWeight,fontFamily,color,lineHeight,width,textDecoration,textShadow".split(","),function(c){a[c]!==w&&(b[c]=a[c],delete a[c])});o.css(b)}return y.call(q,a)},getBBox:function(){return{width:L.width+2*da,height:L.height+2*da,x:L.x-da,y:L.y-da}},shadow:function(a){A&&A.shadow(a);return q},destroy:function(){aa(q,
-"add",m);aa(q.element,"mouseenter");aa(q.element,"mouseleave");o&&(o=o.destroy());A&&(A=A.destroy());wa.prototype.destroy.call(q);q=p=j=k=l=m=null}})}};Va=Ha;var F;if(!Z&&!$){Highcharts.VMLElement=F={init:function(a,b){var c=["<",b,' filled="f" stroked="f"'],d=["position: ","absolute",";"],e=b===Ea;(b==="shape"||e)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",e?"hidden":"visible");c.push(' style="',d.join(""),'"/>');if(b)c=e||b==="span"||b==="img"?c.join(""):a.prepVML(c),this.element=
-U(c);this.renderer=a;this.attrSetters={}},add:function(a){var b=this.renderer,c=this.element,d=b.box,d=a?a.element||a:d;a&&a.inverted&&b.invertChild(c,d);d.appendChild(c);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();z(this,"add");return this},updateTransform:wa.prototype.htmlUpdateTransform,setSpanRotation:function(a,b,c){K(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11=",c,", M12=",-b,", M21=",b,", M22=",c,", sizingMethod='auto expand')"].join(""):
-S})},pathToVML:function(a){for(var b=a.length,c=[],d;b--;)if(sa(a[b]))c[b]=t(a[b]*10)-5;else if(a[b]==="Z")c[b]="x";else if(c[b]=a[b],a.isArc&&(a[b]==="wa"||a[b]==="at"))d=a[b]==="wa"?1:-1,c[b+5]===c[b+7]&&(c[b+7]-=d),c[b+6]===c[b+8]&&(c[b+8]-=d);return c.join(" ")||"x"},attr:function(a,b){var c,d,e,f=this.element||{},g=f.style,h=f.nodeName,i=this.renderer,j=this.symbolName,k,l=this.shadows,m,p=this.attrSetters,q=this;ea(a)&&u(b)&&(c=a,a={},a[c]=b);if(ea(a))c=a,q=c==="strokeWidth"||c==="stroke-width"?
-this.strokeweight:this[c];else for(c in a)if(d=a[c],m=!1,e=p[c]&&p[c].call(this,d,c),e!==!1&&d!==null){e!==w&&(d=e);if(j&&/^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(c))k||(this.symbolAttr(a),k=!0),m=!0;else if(c==="d"){d=d||[];this.d=d.join(" ");f.path=d=this.pathToVML(d);if(l)for(e=l.length;e--;)l[e].path=l[e].cutOff?this.cutOffPath(d,l[e].cutOff):d;m=!0}else if(c==="visibility"){if(l)for(e=l.length;e--;)l[e].style[c]=d;h==="DIV"&&(d=d==="hidden"?"-999em":0,fb||(g[c]=d?"visible":
-"hidden"),c="top");g[c]=d;m=!0}else if(c==="zIndex")d&&(g[c]=d),m=!0;else if(qa(c,["x","y","width","height"])!==-1)this[c]=d,c==="x"||c==="y"?c={x:"left",y:"top"}[c]:d=s(0,d),this.updateClipping?(this[c]=d,this.updateClipping()):g[c]=d,m=!0;else if(c==="class"&&h==="DIV")f.className=d;else if(c==="stroke")d=i.color(d,f,c),c="strokecolor";else if(c==="stroke-width"||c==="strokeWidth")f.stroked=d?!0:!1,c="strokeweight",this[c]=d,sa(d)&&(d+="px");else if(c==="dashstyle")(f.getElementsByTagName("stroke")[0]||
-U(i.prepVML(["<stroke/>"]),null,null,f))[c]=d||"solid",this.dashstyle=d,m=!0;else if(c==="fill")if(h==="SPAN")g.color=d;else{if(h!=="IMG")f.filled=d!==S?!0:!1,d=i.color(d,f,c,this),c="fillcolor"}else if(c==="opacity")m=!0;else if(h==="shape"&&c==="rotation")this[c]=f.style[c]=d,f.style.left=-t(ca(d*Ua)+1)+"px",f.style.top=t(V(d*Ua))+"px";else if(c==="translateX"||c==="translateY"||c==="rotation")this[c]=d,this.updateTransform(),m=!0;else if(c==="text")this.bBox=null,f.innerHTML=d,m=!0;m||(fb?f[c]=
-d:v(f,c,d))}return q},clip:function(a){var b=this,c;a?(c=a.members,ga(c,b),c.push(b),b.destroyClip=function(){ga(c,b)},a=a.getCSS(b)):(b.destroyClip&&b.destroyClip(),a={clip:fb?"inherit":"rect(auto)"});return b.css(a)},css:wa.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&Ta(a)},destroy:function(){this.destroyClip&&this.destroyClip();return wa.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=O.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,
-b){var c,a=a.split(/[ ,]/);c=a.length;if(c===9||c===11)a[c-4]=a[c-2]=C(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,c){var d=[],e,f=this.element,g=this.renderer,h,i=f.style,j,k=f.path,l,m,p,q;k&&typeof k.value!=="string"&&(k="x");m=k;if(a){p=o(a.width,3);q=(a.opacity||0.15)/p;for(e=1;e<=3;e++){l=p*2+1-2*e;c&&(m=this.cutOffPath(k.value,l+0.5));j=['<shape isShadow="true" strokeweight="',l,'" filled="false" path="',m,'" coordsize="10 10" style="',f.style.cssText,'" />'];h=U(g.prepVML(j),null,
-{left:C(i.left)+o(a.offsetX,1),top:C(i.top)+o(a.offsetY,1)});if(c)h.cutOff=l+1;j=['<stroke color="',a.color||"black",'" opacity="',q*e,'"/>'];U(g.prepVML(j),null,null,h);b?b.element.appendChild(h):f.parentNode.insertBefore(h,f);d.push(h)}this.shadows=d}return this}};F=ha(wa,F);var ma={Element:F,isIE8:oa.indexOf("MSIE 8.0")>-1,init:function(a,b,c){var d,e;this.alignedObjects=[];d=this.createElement(Ea);e=d.element;e.style.position="relative";a.appendChild(d.element);this.isVML=!0;this.box=e;this.boxWrapper=
-d;this.setSize(b,c,!1);y.namespaces.hcv||(y.namespaces.add("hcv","urn:schemas-microsoft-com:vml"),(y.styleSheets.length?y.styleSheets[0]:y.createStyleSheet()).cssText+="hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke{ behavior:url(#default#VML); display: inline-block; } ")},isHidden:function(){return!this.box.offsetWidth},clipRect:function(a,b,c,d){var e=this.createElement(),f=T(a);return r(e,{members:[],left:(f?a.x:a)+1,top:(f?a.y:b)+1,width:(f?a.width:c)-1,height:(f?a.height:d)-1,getCSS:function(a){var b=
-a.element,c=b.nodeName,a=a.inverted,d=this.top-(c==="shape"?b.offsetTop:0),e=this.left,b=e+this.width,f=d+this.height,d={clip:"rect("+t(a?e:d)+"px,"+t(a?f:b)+"px,"+t(a?b:f)+"px,"+t(a?d:e)+"px)"};!a&&fb&&c==="DIV"&&r(d,{width:b+"px",height:f+"px"});return d},updateClipping:function(){n(e.members,function(a){a.css(e.getCSS(a))})}})},color:function(a,b,c,d){var e=this,f,g=/^rgba/,h,i,j=S;a&&a.linearGradient?i="gradient":a&&a.radialGradient&&(i="pattern");if(i){var k,l,m=a.linearGradient||a.radialGradient,
-p,q,o,A,L,s="",a=a.stops,u,t=[],w=function(){h=['<fill colors="'+t.join(",")+'" opacity="',o,'" o:opacity2="',q,'" type="',i,'" ',s,'focus="100%" method="any" />'];U(e.prepVML(h),null,null,b)};p=a[0];u=a[a.length-1];p[0]>0&&a.unshift([0,p[1]]);u[0]<1&&a.push([1,u[1]]);n(a,function(a,b){g.test(a[1])?(f=ra(a[1]),k=f.get("rgb"),l=f.get("a")):(k=a[1],l=1);t.push(a[0]*100+"% "+k);b?(o=l,A=k):(q=l,L=k)});if(c==="fill")if(i==="gradient")c=m.x1||m[0]||0,a=m.y1||m[1]||0,p=m.x2||m[2]||0,m=m.y2||m[3]||0,s='angle="'+
-(90-R.atan((m-a)/(p-c))*180/ya)+'"',w();else{var j=m.r,r=j*2,E=j*2,H=m.cx,B=m.cy,x=b.radialReference,v,j=function(){x&&(v=d.getBBox(),H+=(x[0]-v.x)/v.width-0.5,B+=(x[1]-v.y)/v.height-0.5,r*=x[2]/v.width,E*=x[2]/v.height);s='src="'+M.global.VMLRadialGradientURL+'" size="'+r+","+E+'" origin="0.5,0.5" position="'+H+","+B+'" color2="'+L+'" ';w()};d.added?j():J(d,"add",j);j=A}else j=k}else if(g.test(a)&&b.tagName!=="IMG")f=ra(a),h=["<",c,' opacity="',f.get("a"),'"/>'],U(this.prepVML(h),null,null,b),j=
-f.get("rgb");else{j=b.getElementsByTagName(c);if(j.length)j[0].opacity=1,j[0].type="solid";j=a}return j},prepVML:function(a){var b=this.isIE8,a=a.join("");b?(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=a.indexOf('style="')===-1?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<","<hcv:");return a},text:Ha.prototype.html,path:function(a){var b={coordsize:"10 10"};
-Ia(a)?b.d=a:T(a)&&r(b,a);return this.createElement("shape").attr(b)},circle:function(a,b,c){var d=this.symbol("circle");if(T(a))c=a.r,b=a.y,a=a.x;d.isCircle=!0;d.r=c;return d.attr({x:a,y:b})},g:function(a){var b;a&&(b={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement(Ea).attr(b)},image:function(a,b,c,d,e){var f=this.createElement("img").attr({src:a});arguments.length>1&&f.attr({x:b,y:c,width:d,height:e});return f},rect:function(a,b,c,d,e,f){var g=this.symbol("rect");g.r=
-T(a)?a.r:e;return g.attr(T(a)?a:g.crisp(f,a,b,s(c,0),s(d,0)))},invertChild:function(a,b){var c=b.style;K(a,{flip:"x",left:C(c.width)-1,top:C(c.height)-1,rotation:-90})},symbols:{arc:function(a,b,c,d,e){var f=e.start,g=e.end,h=e.r||c||d,c=e.innerR,d=V(f),i=ca(f),j=V(g),k=ca(g);if(g-f===0)return["x"];f=["wa",a-h,b-h,a+h,b+h,a+h*d,b+h*i,a+h*j,b+h*k];e.open&&!c&&f.push("e","M",a,b);f.push("at",a-c,b-c,a+c,b+c,a+c*j,b+c*k,a+c*d,b+c*i,"x","e");f.isArc=!0;return f},circle:function(a,b,c,d,e){e&&(c=d=2*e.r);
-e&&e.isCircle&&(a-=c/2,b-=d/2);return["wa",a,b,a+c,b+d,a+c,b+d/2,a+c,b+d/2,"e"]},rect:function(a,b,c,d,e){var f=a+c,g=b+d,h;!u(e)||!e.r?f=Ha.prototype.symbols.square.apply(0,arguments):(h=I(e.r,c,d),f=["M",a+h,b,"L",f-h,b,"wa",f-2*h,b,f,b+2*h,f-h,b,f,b+h,"L",f,g-h,"wa",f-2*h,g-2*h,f,g,f,g-h,f-h,g,"L",a+h,g,"wa",a,g-2*h,a+2*h,g,a+h,g,a,g-h,"L",a,b+h,"wa",a,b,a+2*h,b+2*h,a,b+h,a+h,b,"x","e"]);return f}}};Highcharts.VMLRenderer=F=function(){this.init.apply(this,arguments)};F.prototype=x(Ha.prototype,
-ma);Va=F}var Tb;if($)Highcharts.CanVGRenderer=F=function(){za="http://www.w3.org/1999/xhtml"},F.prototype.symbols={},Tb=function(){function a(){var a=b.length,d;for(d=0;d<a;d++)b[d]();b=[]}var b=[];return{push:function(c,d){b.length===0&&Vb(d,a);b.push(c)}}}(),Va=F;Ma.prototype={addLabel:function(){var a=this.axis,b=a.options,c=a.chart,d=a.horiz,e=a.categories,f=a.series[0]&&a.series[0].names,g=this.pos,h=b.labels,i=a.tickPositions,d=d&&e&&!h.step&&!h.staggerLines&&!h.rotation&&c.plotWidth/i.length||
-!d&&(c.margin[3]||c.chartWidth*0.33),j=g===i[0],k=g===i[i.length-1],l,f=e?o(e[g],f&&f[g],g):g,e=this.label,m=i.info;a.isDatetimeAxis&&m&&(l=b.dateTimeLabelFormats[m.higherRanks[g]||m.unitName]);this.isFirst=j;this.isLast=k;b=a.labelFormatter.call({axis:a,chart:c,isFirst:j,isLast:k,dateTimeLabelFormat:l,value:a.isLog?ia(fa(f)):f});g=d&&{width:s(1,t(d-2*(h.padding||10)))+"px"};g=r(g,h.style);if(u(e))e&&e.attr({text:b}).css(g);else{l={align:a.labelAlign};if(sa(h.rotation))l.rotation=h.rotation;if(d&&
-h.ellipsis)l._clipHeight=a.len/i.length;this.label=u(b)&&h.enabled?c.renderer.text(b,0,0,h.useHTML).attr(l).css(g).add(a.labelGroup):null}},getLabelSize:function(){var a=this.label,b=this.axis;return a?(this.labelBBox=a.getBBox())[b.horiz?"height":"width"]:0},getLabelSides:function(){var a=this.axis,b=this.labelBBox.width,a=b*{left:0,center:0.5,right:1}[a.labelAlign]-a.options.labels.x;return[-a,b-a]},handleOverflow:function(a,b){var c=!0,d=this.axis,e=d.chart,f=this.isFirst,g=this.isLast,h=b.x,i=
-d.reversed,j=d.tickPositions;if(f||g){var k=this.getLabelSides(),l=k[0],k=k[1],e=e.plotLeft,m=e+d.len,j=(d=d.ticks[j[a+(f?1:-1)]])&&d.label.xy&&d.label.xy.x+d.getLabelSides()[f?0:1];f&&!i||g&&i?h+l<e&&(h=e-l,d&&h+k>j&&(c=!1)):h+k>m&&(h=m-k,d&&h+l<j&&(c=!1));b.x=h}return c},getPosition:function(a,b,c,d){var e=this.axis,f=e.chart,g=d&&f.oldChartHeight||f.chartHeight;return{x:a?e.translate(b+c,null,null,d)+e.transB:e.left+e.offset+(e.opposite?(d&&f.oldChartWidth||f.chartWidth)-e.right-e.left:0),y:a?
-g-e.bottom+e.offset-(e.opposite?e.height:0):g-e.translate(b+c,null,null,d)-e.transB}},getLabelPosition:function(a,b,c,d,e,f,g,h){var i=this.axis,j=i.transA,k=i.reversed,l=i.staggerLines,m=i.chart.renderer.fontMetrics(e.style.fontSize).b,p=e.rotation,a=a+e.x-(f&&d?f*j*(k?-1:1):0),b=b+e.y-(f&&!d?f*j*(k?1:-1):0);p&&i.side===2&&(b-=m-m*V(p*Ua));!u(e.y)&&!p&&(b+=m-c.getBBox().height/2);l&&(b+=g/(h||1)%l*(i.labelOffset/l));return{x:a,y:b}},getMarkPath:function(a,b,c,d,e,f){return f.crispLine(["M",a,b,"L",
-a+(e?0:-c),b+(e?c:0)],d)},render:function(a,b,c){var d=this.axis,e=d.options,f=d.chart.renderer,g=d.horiz,h=this.type,i=this.label,j=this.pos,k=e.labels,l=this.gridLine,m=h?h+"Grid":"grid",p=h?h+"Tick":"tick",q=e[m+"LineWidth"],n=e[m+"LineColor"],A=e[m+"LineDashStyle"],s=e[p+"Length"],m=e[p+"Width"]||0,u=e[p+"Color"],t=e[p+"Position"],p=this.mark,r=k.step,v=!0,x=d.tickmarkOffset,E=this.getPosition(g,j,x,b),H=E.x,E=E.y,B=g&&H===d.pos+d.len||!g&&E===d.pos?-1:1,C=d.staggerLines;this.isActive=!0;if(q){j=
-d.getPlotLinePath(j+x,q*B,b,!0);if(l===w){l={stroke:n,"stroke-width":q};if(A)l.dashstyle=A;if(!h)l.zIndex=1;if(b)l.opacity=0;this.gridLine=l=q?f.path(j).attr(l).add(d.gridGroup):null}if(!b&&l&&j)l[this.isNew?"attr":"animate"]({d:j,opacity:c})}if(m&&s)t==="inside"&&(s=-s),d.opposite&&(s=-s),b=this.getMarkPath(H,E,s,m*B,g,f),p?p.animate({d:b,opacity:c}):this.mark=f.path(b).attr({stroke:u,"stroke-width":m,opacity:c}).add(d.axisGroup);if(i&&!isNaN(H))i.xy=E=this.getLabelPosition(H,E,i,g,k,x,a,r),this.isFirst&&
-!this.isLast&&!o(e.showFirstLabel,1)||this.isLast&&!this.isFirst&&!o(e.showLastLabel,1)?v=!1:!C&&g&&k.overflow==="justify"&&!this.handleOverflow(a,E)&&(v=!1),r&&a%r&&(v=!1),v&&!isNaN(E.y)?(E.opacity=c,i[this.isNew?"attr":"animate"](E),this.isNew=!1):i.attr("y",-9999)},destroy:function(){Ka(this,this.axis)}};vb.prototype={render:function(){var a=this,b=a.axis,c=b.horiz,d=(b.pointRange||0)/2,e=a.options,f=e.label,g=a.label,h=e.width,i=e.to,j=e.from,k=u(j)&&u(i),l=e.value,m=e.dashStyle,p=a.svgElem,q=
-[],n,A=e.color,L=e.zIndex,t=e.events,w=b.chart.renderer;b.isLog&&(j=na(j),i=na(i),l=na(l));if(h){if(q=b.getPlotLinePath(l,h),d={stroke:A,"stroke-width":h},m)d.dashstyle=m}else if(k){if(j=s(j,b.min-d),i=I(i,b.max+d),q=b.getPlotBandPath(j,i,e),d={fill:A},e.borderWidth)d.stroke=e.borderColor,d["stroke-width"]=e.borderWidth}else return;if(u(L))d.zIndex=L;if(p)q?p.animate({d:q},null,p.onGetPath):(p.hide(),p.onGetPath=function(){p.show()});else if(q&&q.length&&(a.svgElem=p=w.path(q).attr(d).add(),t))for(n in e=
-function(b){p.on(b,function(c){t[b].apply(a,[c])})},t)e(n);if(f&&u(f.text)&&q&&q.length&&b.width>0&&b.height>0){f=x({align:c&&k&&"center",x:c?!k&&4:10,verticalAlign:!c&&k&&"middle",y:c?k?16:10:k?6:-4,rotation:c&&!k&&90},f);if(!g)a.label=g=w.text(f.text,0,0,f.useHTML).attr({align:f.textAlign||f.align,rotation:f.rotation,zIndex:L}).css(f.style).add();b=[q[1],q[4],o(q[6],q[1])];q=[q[2],q[5],o(q[7],q[2])];c=Ja(b);k=Ja(q);g.align(f,!1,{x:c,y:k,width:va(b)-c,height:va(q)-k});g.show()}else g&&g.hide();return a},
-destroy:function(){ga(this.axis.plotLinesAndBands,this);delete this.axis;Ka(this)}};Mb.prototype={destroy:function(){Ka(this,this.axis)},render:function(a){var b=this.options,c=b.format,c=c?Ca(c,this):b.formatter.call(this);this.label?this.label.attr({text:c,visibility:"hidden"}):this.label=this.axis.chart.renderer.text(c,0,0,b.useHTML).css(b.style).attr({align:this.textAlign,rotation:b.rotation,visibility:"hidden"}).add(a)},setOffset:function(a,b){var c=this.axis,d=c.chart,e=d.inverted,f=this.isNegative,
-g=c.translate(this.percent?100:this.total,0,0,0,1),c=c.translate(0),c=N(g-c),h=d.xAxis[0].translate(this.x)+a,i=d.plotHeight,f={x:e?f?g:g-c:h,y:e?i-h-b:f?i-g-c:i-g,width:e?c:b,height:e?b:c};if(e=this.label)e.align(this.alignOptions,null,f),f=e.alignAttr,e.attr({visibility:this.options.crop===!1||d.isInsidePlot(f.x,f.y)?Z?"inherit":"visible":"hidden"})}};db.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M",hour:"%H:%M",day:"%e. %b",week:"%e. %b",
-month:"%b '%y",year:"%Y"},endOnTick:!1,gridLineColor:"#C0C0C0",labels:G,lineColor:"#C0D0E0",lineWidth:1,minPadding:0.01,maxPadding:0.01,minorGridLineColor:"#E0E0E0",minorGridLineWidth:1,minorTickColor:"#A0A0A0",minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickColor:"#C0D0E0",tickLength:5,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",tickWidth:1,title:{align:"middle",style:{color:"#4d759e",fontWeight:"bold"}},type:"linear"},defaultYAxisOptions:{endOnTick:!0,
-gridLineWidth:1,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8,y:3},lineWidth:0,maxPadding:0.05,minPadding:0.05,startOnTick:!0,tickWidth:0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return Aa(this.total,-1)},style:G.style}},defaultLeftAxisOptions:{labels:{x:-8,y:null},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:8,y:null},title:{rotation:90}},defaultBottomAxisOptions:{labels:{x:0,y:14},title:{rotation:0}},defaultTopAxisOptions:{labels:{x:0,y:-5},
-title:{rotation:0}},init:function(a,b){var c=b.isX;this.horiz=a.inverted?!c:c;this.xOrY=(this.isXAxis=c)?"x":"y";this.opposite=b.opposite;this.side=this.horiz?this.opposite?0:2:this.opposite?1:3;this.setOptions(b);var d=this.options,e=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter;this.userOptions=b;this.minPixelPadding=0;this.chart=a;this.reversed=d.reversed;this.zoomEnabled=d.zoomEnabled!==!1;this.categories=d.categories||e==="category";this.isLog=e==="logarithmic";this.isDatetimeAxis=
-e==="datetime";this.isLinked=u(d.linkedTo);this.tickmarkOffset=this.categories&&d.tickmarkPlacement==="between"?0.5:0;this.ticks={};this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom;this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stackExtremes={};this.min=this.max=null;var f,d=this.options.events;qa(this,a.axes)===-1&&(a.axes.push(this),a[c?"xAxis":"yAxis"].push(this));this.series=this.series||
-[];if(a.inverted&&c&&this.reversed===w)this.reversed=!0;this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in d)J(this,f,d[f]);if(this.isLog)this.val2lin=na,this.lin2val=fa},setOptions:function(a){this.options=x(this.defaultOptions,this.isXAxis?{}:this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],x(M[this.isXAxis?"xAxis":"yAxis"],a))},update:function(a,b){var c=this.chart,a=c.options[this.xOrY+
-"Axis"][this.options.index]=x(this.userOptions,a);this.destroy(!0);this._addedPlotLB=this.userMin=this.userMax=w;this.init(c,r(a,{events:w}));c.isDirtyBox=!0;o(b,!0)&&c.redraw()},remove:function(a){var b=this.chart,c=this.xOrY+"Axis";n(this.series,function(a){a.remove(!1)});ga(b.axes,this);ga(b[c],this);b.options[c].splice(this.options.index,1);n(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;o(a,!0)&&b.redraw()},defaultLabelFormatter:function(){var a=this.axis,b=this.value,
-c=a.categories,d=this.dateTimeLabelFormat,e=M.lang.numericSymbols,f=e&&e.length,g,h=a.options.labels.format,a=a.isLog?b:a.tickInterval;if(h)g=Ca(h,this);else if(c)g=b;else if(d)g=Xa(d,b);else if(f&&a>=1E3)for(;f--&&g===w;)c=Math.pow(1E3,f+1),a>=c&&e[f]!==null&&(g=Aa(b/c,-1)+e[f]);g===w&&(g=b>=1E3?Aa(b,0):Aa(b,-1));return g},getSeriesExtremes:function(){var a=this,b=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=null;a.stackExtremes={};a.buildStacks();n(a.series,function(c){if(c.visible||!b.options.chart.ignoreHiddenSeries){var d;
-d=c.options.threshold;var e;a.hasVisibleSeries=!0;a.isLog&&d<=0&&(d=null);if(a.isXAxis){if(d=c.xData,d.length)a.dataMin=I(o(a.dataMin,d[0]),Ja(d)),a.dataMax=s(o(a.dataMax,d[0]),va(d))}else{c.getExtremes();e=c.dataMax;c=c.dataMin;if(u(c)&&u(e))a.dataMin=I(o(a.dataMin,c),c),a.dataMax=s(o(a.dataMax,e),e);if(u(d))if(a.dataMin>=d)a.dataMin=d,a.ignoreMinPadding=!0;else if(a.dataMax<d)a.dataMax=d,a.ignoreMaxPadding=!0}}})},translate:function(a,b,c,d,e,f){var g=this.len,h=1,i=0,j=d?this.oldTransA:this.transA,
-d=d?this.oldMin:this.min,k=this.minPixelPadding,e=(this.options.ordinal||this.isLog&&e)&&this.lin2val;if(!j)j=this.transA;c&&(h*=-1,i=g);this.reversed&&(h*=-1,i-=h*g);b?(a=a*h+i,a-=k,a=a/j+d,e&&(a=this.lin2val(a))):(e&&(a=this.val2lin(a)),f==="between"&&(f=0.5),a=h*(a-d)*j+i+h*k+(sa(f)?j*f*this.pointRange:0));return a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,
-b,c,d){var e=this.chart,f=this.left,g=this.top,h,i,j,a=this.translate(a,null,null,c),k=c&&e.oldChartHeight||e.chartHeight,l=c&&e.oldChartWidth||e.chartWidth,m;h=this.transB;c=i=t(a+h);h=j=t(k-a-h);if(isNaN(a))m=!0;else if(this.horiz){if(h=g,j=k-this.bottom,c<f||c>f+this.width)m=!0}else if(c=f,i=l-this.right,h<g||h>g+this.height)m=!0;return m&&!d?null:e.renderer.crispLine(["M",c,h,"L",i,j],b||0)},getPlotBandPath:function(a,b){var c=this.getPlotLinePath(b),d=this.getPlotLinePath(a);d&&c?d.push(c[4],
-c[5],c[1],c[2]):d=null;return d},getLinearTickPositions:function(a,b,c){for(var d,b=ia(P(b/a)*a),c=ia(xa(c/a)*a),e=[];b<=c;){e.push(b);b=ia(b+a);if(b===d)break;d=b}return e},getLogTickPositions:function(a,b,c,d){var e=this.options,f=this.len,g=[];if(!d)this._minorAutoInterval=null;if(a>=0.5)a=t(a),g=this.getLinearTickPositions(a,b,c);else if(a>=0.08)for(var f=P(b),h,i,j,k,l,e=a>0.3?[1,2,4]:a>0.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];f<c+1&&!l;f++){i=e.length;for(h=0;h<i&&!l;h++)j=na(fa(f)*e[h]),j>b&&(!d||
-k<=c)&&g.push(k),k>c&&(l=!0),k=j}else if(b=fa(b),c=fa(c),a=e[d?"minorTickInterval":"tickInterval"],a=o(a==="auto"?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length:f)||1)),a=ob(a,null,nb(a)),g=Na(this.getLinearTickPositions(a,b,c),na),!d)this._minorAutoInterval=a/5;if(!d)this.tickInterval=a;return g},getMinorTickPositions:function(){var a=this.options,b=this.tickPositions,c=this.minorTickInterval,d=[],e;if(this.isLog){e=b.length;for(a=1;a<e;a++)d=d.concat(this.getLogTickPositions(c,
-b[a-1],b[a],!0))}else if(this.isDatetimeAxis&&a.minorTickInterval==="auto")d=d.concat(Eb(Cb(c),this.min,this.max,a.startOfWeek)),d[0]<this.min&&d.shift();else for(b=this.min+(b[0]-this.min)%c;b<=this.max;b+=c)d.push(b);return d},adjustForMinRange:function(){var a=this.options,b=this.min,c=this.max,d,e=this.dataMax-this.dataMin>=this.minRange,f,g,h,i,j;if(this.isXAxis&&this.minRange===w&&!this.isLog)u(a.min)||u(a.max)?this.minRange=null:(n(this.series,function(a){i=a.xData;for(g=j=a.xIncrement?1:i.length-
-1;g>0;g--)if(h=i[g]-i[g-1],f===w||h<f)f=h}),this.minRange=I(f*5,this.dataMax-this.dataMin));if(c-b<this.minRange){var k=this.minRange;d=(k-c+b)/2;d=[b-d,o(a.min,b-d)];if(e)d[2]=this.dataMin;b=va(d);c=[b+k,o(a.max,b+k)];if(e)c[2]=this.dataMax;c=Ja(c);c-b<k&&(d[0]=c-k,d[1]=o(a.min,c-k),b=va(d))}this.min=b;this.max=c},setAxisTranslation:function(a){var b=this.max-this.min,c=0,d,e=0,f=0,g=this.linkedParent,h=this.transA;if(this.isXAxis)g?(e=g.minPointOffset,f=g.pointRangePadding):n(this.series,function(a){var g=
-a.pointRange,h=a.options.pointPlacement,l=a.closestPointRange;g>b&&(g=0);c=s(c,g);e=s(e,ea(h)?0:g/2);f=s(f,h==="on"?0:g);!a.noSharedTooltip&&u(l)&&(d=u(d)?I(d,l):l)}),g=this.ordinalSlope&&d?this.ordinalSlope/d:1,this.minPointOffset=e*=g,this.pointRangePadding=f*=g,this.pointRange=I(c,b),this.closestPointRange=d;if(a)this.oldTransA=h;this.translationSlope=this.transA=h=this.len/(b+f||1);this.transB=this.horiz?this.left:this.bottom;this.minPixelPadding=h*e},setTickPositions:function(a){var b=this,c=
-b.chart,d=b.options,e=b.isLog,f=b.isDatetimeAxis,g=b.isXAxis,h=b.isLinked,i=b.options.tickPositioner,j=d.maxPadding,k=d.minPadding,l=d.tickInterval,m=d.minTickInterval,p=d.tickPixelInterval,q,ba=b.categories;h?(b.linkedParent=c[g?"xAxis":"yAxis"][d.linkedTo],c=b.linkedParent.getExtremes(),b.min=o(c.min,c.dataMin),b.max=o(c.max,c.dataMax),d.type!==b.linkedParent.options.type&&ka(11,1)):(b.min=o(b.userMin,d.min,b.dataMin),b.max=o(b.userMax,d.max,b.dataMax));if(e)!a&&I(b.min,o(b.dataMin,b.min))<=0&&
-ka(10,1),b.min=ia(na(b.min)),b.max=ia(na(b.max));if(b.range&&(b.userMin=b.min=s(b.min,b.max-b.range),b.userMax=b.max,a))b.range=null;b.beforePadding&&b.beforePadding();b.adjustForMinRange();if(!ba&&!b.usePercentage&&!h&&u(b.min)&&u(b.max)&&(c=b.max-b.min)){if(!u(d.min)&&!u(b.userMin)&&k&&(b.dataMin<0||!b.ignoreMinPadding))b.min-=c*k;if(!u(d.max)&&!u(b.userMax)&&j&&(b.dataMax>0||!b.ignoreMaxPadding))b.max+=c*j}b.min===b.max||b.min===void 0||b.max===void 0?b.tickInterval=1:h&&!l&&p===b.linkedParent.options.tickPixelInterval?
-b.tickInterval=b.linkedParent.tickInterval:(b.tickInterval=o(l,ba?1:(b.max-b.min)*p/s(b.len,p)),!u(l)&&b.len<p&&!this.isRadial&&(q=!0,b.tickInterval/=4));g&&!a&&n(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();if(b.postProcessTickInterval)b.tickInterval=b.postProcessTickInterval(b.tickInterval);if(b.pointRange)b.tickInterval=s(b.pointRange,b.tickInterval);if(!l&&b.tickInterval<m)b.tickInterval=
-m;if(!f&&!e&&!l)b.tickInterval=ob(b.tickInterval,null,nb(b.tickInterval),d);b.minorTickInterval=d.minorTickInterval==="auto"&&b.tickInterval?b.tickInterval/5:d.minorTickInterval;b.tickPositions=a=d.tickPositions?[].concat(d.tickPositions):i&&i.apply(b,[b.min,b.max]);if(!a)!b.ordinalPositions&&(b.max-b.min)/b.tickInterval>s(2*b.len,200)&&ka(19,!0),a=f?(b.getNonLinearTimeTicks||Eb)(Cb(b.tickInterval,d.units),b.min,b.max,d.startOfWeek,b.ordinalPositions,b.closestPointRange,!0):e?b.getLogTickPositions(b.tickInterval,
-b.min,b.max):b.getLinearTickPositions(b.tickInterval,b.min,b.max),q&&a.splice(1,a.length-2),b.tickPositions=a;if(!h)e=a[0],f=a[a.length-1],h=b.minPointOffset||0,d.startOnTick?b.min=e:b.min-h>e&&a.shift(),d.endOnTick?b.max=f:b.max+h<f&&a.pop(),a.length===1&&(b.min-=0.001,b.max+=0.001)},setMaxTicks:function(){var a=this.chart,b=a.maxTicks||{},c=this.tickPositions,d=this._maxTicksKey=[this.xOrY,this.pos,this.len].join("-");if(!this.isLinked&&!this.isDatetimeAxis&&c&&c.length>(b[d]||0)&&this.options.alignTicks!==
-!1)b[d]=c.length;a.maxTicks=b},adjustTickAmount:function(){var a=this._maxTicksKey,b=this.tickPositions,c=this.chart.maxTicks;if(c&&c[a]&&!this.isDatetimeAxis&&!this.categories&&!this.isLinked&&this.options.alignTicks!==!1){var d=this.tickAmount,e=b.length;this.tickAmount=a=c[a];if(e<a){for(;b.length<a;)b.push(ia(b[b.length-1]+this.tickInterval));this.transA*=(e-1)/(a-1);this.max=b[b.length-1]}if(u(d)&&a!==d)this.isDirty=!0}},setScale:function(){var a=this.stacks,b,c,d,e;this.oldMin=this.min;this.oldMax=
-this.max;this.oldAxisLength=this.len;this.setAxisSize();e=this.len!==this.oldAxisLength;n(this.series,function(a){if(a.isDirtyData||a.isDirty||a.xAxis.isDirty)d=!0});if(e||d||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax){if(!this.isXAxis)for(b in a)delete a[b];this.forceRedraw=!1;this.getSeriesExtremes();this.setTickPositions();this.oldUserMin=this.userMin;this.oldUserMax=this.userMax;if(!this.isDirty)this.isDirty=e||this.min!==this.oldMin||this.max!==
-this.oldMax}else if(!this.isXAxis){if(this.oldStacks)a=this.stacks=this.oldStacks;for(b in a)for(c in a[b])a[b][c].cum=a[b][c].total}this.setMaxTicks()},setExtremes:function(a,b,c,d,e){var f=this,g=f.chart,c=o(c,!0),e=r(e,{min:a,max:b});z(f,"setExtremes",e,function(){f.userMin=a;f.userMax=b;f.eventArgs=e;f.isDirtyExtremes=!0;c&&g.redraw(d)})},zoom:function(a,b){this.allowZoomOutside||(u(this.dataMin)&&a<=this.dataMin&&(a=w),u(this.dataMax)&&b>=this.dataMax&&(b=w));this.displayBtn=a!==w||b!==w;this.setExtremes(a,
-b,!1,w,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=b.offsetRight||0,e=this.horiz,f,g;this.left=g=o(b.left,a.plotLeft+c);this.top=f=o(b.top,a.plotTop);this.width=c=o(b.width,a.plotWidth-c+d);this.height=b=o(b.height,a.plotHeight);this.bottom=a.chartHeight-b-f;this.right=a.chartWidth-c-g;this.len=s(e?c:b,0);this.pos=e?g:f},getExtremes:function(){var a=this.isLog;return{min:a?ia(fa(this.min)):this.min,max:a?ia(fa(this.max)):this.max,dataMin:this.dataMin,
-dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?fa(this.min):this.min,b=b?fa(this.max):this.max;c>a||a===null?a=c:b<a&&(a=b);return this.translate(a,0,1,0,1)},addPlotBand:function(a){this.addPlotBandOrLine(a,"plotBands")},addPlotLine:function(a){this.addPlotBandOrLine(a,"plotLines")},addPlotBandOrLine:function(a,b){var c=(new vb(this,a)).render(),d=this.userOptions;c&&(b&&(d[b]=d[b]||[],d[b].push(a)),this.plotLinesAndBands.push(c));return c},
-autoLabelAlign:function(a){a=(o(a,0)-this.side*90+720)%360;return a>15&&a<165?"right":a>195&&a<345?"left":"center"},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,g=a.horiz,h=a.side,i=b.inverted?[1,0,3,2][h]:h,j,k=0,l,m=0,p=d.title,q=d.labels,ba=0,A=b.axisOffset,L=b.clipOffset,t=[-1,1,1,-1][h],r,v=1,x=o(q.maxStaggerLines,5),la,E,H,B;a.hasData=j=a.hasVisibleSeries||u(a.min)&&u(a.max)&&!!e;a.showAxis=b=j||o(d.showEmpty,!0);a.staggerLines=a.horiz&&q.staggerLines;
-if(!a.axisGroup)a.gridGroup=c.g("grid").attr({zIndex:d.gridZIndex||1}).add(),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).add(),a.labelGroup=c.g("axis-labels").attr({zIndex:q.zIndex||7}).add();if(j||a.isLinked){a.labelAlign=o(q.align||a.autoLabelAlign(q.rotation));n(e,function(b){f[b]?f[b].addLabel():f[b]=new Ma(a,b)});if(a.horiz&&!a.staggerLines&&x&&!q.rotation){for(r=a.reversed?[].concat(e).reverse():e;v<x;){j=[];la=!1;for(q=0;q<r.length;q++)E=r[q],H=(H=f[E].label&&f[E].label.getBBox())?H.width:
-0,B=q%v,H&&(E=a.translate(E),j[B]!==w&&E<j[B]&&(la=!0),j[B]=E+H);if(la)v++;else break}if(v>1)a.staggerLines=v}n(e,function(b){if(h===0||h===2||{1:"left",3:"right"}[h]===a.labelAlign)ba=s(f[b].getLabelSize(),ba)});if(a.staggerLines)ba*=a.staggerLines,a.labelOffset=ba}else for(r in f)f[r].destroy(),delete f[r];if(p&&p.text&&p.enabled!==!1){if(!a.axisTitle)a.axisTitle=c.text(p.text,0,0,p.useHTML).attr({zIndex:7,rotation:p.rotation||0,align:p.textAlign||{low:"left",middle:"center",high:"right"}[p.align]}).css(p.style).add(a.axisGroup),
-a.axisTitle.isNew=!0;if(b)k=a.axisTitle.getBBox()[g?"height":"width"],m=o(p.margin,g?5:10),l=p.offset;a.axisTitle[b?"show":"hide"]()}a.offset=t*o(d.offset,A[h]);a.axisTitleMargin=o(l,ba+m+(h!==2&&ba&&t*d.labels[g?"y":"x"]));A[h]=s(A[h],a.axisTitleMargin+k+t*a.offset);L[i]=s(L[i],P(d.lineWidth/2)*2)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,e=this.horiz,f=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",
-e?this.left:f,e?d:this.top,"L",e?b.chartWidth-this.right:f,e?d:b.chartHeight-this.bottom],a)},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,e=this.options.title,f=a?b:c,g=this.opposite,h=this.offset,i=C(e.style.fontSize||12),d={low:f+(a?0:d),middle:f+d/2,high:f+(a?d:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(g?-1:1)*this.axisTitleMargin+(this.side===2?i:0);return{x:a?d:b+(g?this.width:0)+h+(e.x||0),y:a?b-(g?this.height:0)+h:d+(e.y||0)}},render:function(){var a=this,
-b=a.chart,c=b.renderer,d=a.options,e=a.isLog,f=a.isLinked,g=a.tickPositions,h=a.axisTitle,i=a.stacks,j=a.ticks,k=a.minorTicks,l=a.alternateBands,m=d.stackLabels,p=d.alternateGridColor,q=a.tickmarkOffset,o=d.lineWidth,A,s=b.hasRendered&&u(a.oldMin)&&!isNaN(a.oldMin);A=a.hasData;var t=a.showAxis,r,v;n([j,k,l],function(a){for(var b in a)a[b].isActive=!1});if(A||f)if(a.minorTickInterval&&!a.categories&&n(a.getMinorTickPositions(),function(b){k[b]||(k[b]=new Ma(a,b,"minor"));s&&k[b].isNew&&k[b].render(null,
-!0);k[b].render(null,!1,1)}),g.length&&(n(g.slice(1).concat([g[0]]),function(b,c){c=c===g.length-1?0:c+1;if(!f||b>=a.min&&b<=a.max)j[b]||(j[b]=new Ma(a,b)),s&&j[b].isNew&&j[b].render(c,!0),j[b].render(c,!1,1)}),q&&a.min===0&&(j[-1]||(j[-1]=new Ma(a,-1,null,!0)),j[-1].render(-1))),p&&n(g,function(b,c){if(c%2===0&&b<a.max)l[b]||(l[b]=new vb(a)),r=b+q,v=g[c+1]!==w?g[c+1]+q:a.max,l[b].options={from:e?fa(r):r,to:e?fa(v):v,color:p},l[b].render(),l[b].isActive=!0}),!a._addedPlotLB)n((d.plotLines||[]).concat(d.plotBands||
-[]),function(b){a.addPlotBandOrLine(b)}),a._addedPlotLB=!0;n([j,k,l],function(a){var c,d,e=[],f=Fa?Fa.duration||500:0,g=function(){for(d=e.length;d--;)a[e[d]]&&!a[e[d]].isActive&&(a[e[d]].destroy(),delete a[e[d]])};for(c in a)if(!a[c].isActive)a[c].render(c,!1,0),a[c].isActive=!1,e.push(c);a===l||!b.hasRendered||!f?g():f&&setTimeout(g,f)});if(o)A=a.getLinePath(o),a.axisLine?a.axisLine.animate({d:A}):a.axisLine=c.path(A).attr({stroke:d.lineColor,"stroke-width":o,zIndex:7}).add(a.axisGroup),a.axisLine[t?
-"show":"hide"]();if(h&&t)h[h.isNew?"attr":"animate"](a.getTitlePosition()),h.isNew=!1;if(m&&m.enabled){var x,la,d=a.stackTotalGroup;if(!d)a.stackTotalGroup=d=c.g("stack-labels").attr({visibility:"visible",zIndex:6}).add();d.translate(b.plotLeft,b.plotTop);for(x in i)for(la in c=i[x],c)c[la].render(d)}a.isDirty=!1},removePlotBandOrLine:function(a){for(var b=this.plotLinesAndBands,c=this.options,d=this.userOptions,e=b.length;e--;)b[e].id===a&&b[e].destroy();n([c.plotLines||[],d.plotLines||[],c.plotBands||
-[],d.plotBands||[]],function(b){for(e=b.length;e--;)b[e].id===a&&ga(b,b[e])})},setTitle:function(a,b){this.update({title:a},b)},redraw:function(){var a=this.chart.pointer;a.reset&&a.reset(!0);this.render();n(this.plotLinesAndBands,function(a){a.render()});n(this.series,function(a){a.isDirty=!0})},buildStacks:function(){var a=this.series,b=a.length;if(!this.isXAxis){for(;b--;)a[b].setStackedPoints();if(this.usePercentage)for(b=0;b<a.length;b++)a[b].setPercentStacks()}},setCategories:function(a,b){this.update({categories:a},
-b)},destroy:function(a){var b=this,c=b.stacks,d,e=b.plotLinesAndBands;a||aa(b);for(d in c)Ka(c[d]),c[d]=null;n([b.ticks,b.minorTicks,b.alternateBands],function(a){Ka(a)});for(a=e.length;a--;)e[a].destroy();n("stackTotalGroup,axisLine,axisGroup,gridGroup,labelGroup,axisTitle".split(","),function(a){b[a]&&(b[a]=b[a].destroy())})}};wb.prototype={init:function(a,b){var c=b.borderWidth,d=b.style,e=C(d.padding);this.chart=a;this.options=b;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.label=
-a.renderer.label("",0,0,b.shape,null,null,b.useHTML,null,"tooltip").attr({padding:e,fill:b.backgroundColor,"stroke-width":c,r:b.borderRadius,zIndex:8}).css(d).css({padding:0}).add().attr({y:-999});$||this.label.shadow(b.shadow);this.shared=b.shared},destroy:function(){n(this.crosshairs,function(a){a&&a.destroy()});if(this.label)this.label=this.label.destroy();clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,b,c,d){var e=this,f=e.now,g=e.options.animation!==!1&&!e.isHidden;
-r(f,{x:g?(2*f.x+a)/3:a,y:g?(f.y+b)/2:b,anchorX:g?(2*f.anchorX+c)/3:c,anchorY:g?(f.anchorY+d)/2:d});e.label.attr(f);if(g&&(N(a-f.x)>1||N(b-f.y)>1))clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){e&&e.move(a,b,c,d)},32)},hide:function(){var a=this,b;clearTimeout(this.hideTimer);if(!this.isHidden)b=this.chart.hoverPoints,this.hideTimer=setTimeout(function(){a.label.fadeOut();a.isHidden=!0},o(this.options.hideDelay,500)),b&&n(b,function(a){a.setState()}),this.chart.hoverPoints=
-null},hideCrosshairs:function(){n(this.crosshairs,function(a){a&&a.hide()})},getAnchor:function(a,b){var c,d=this.chart,e=d.inverted,f=d.plotTop,g=0,h=0,i,a=ja(a);c=a[0].tooltipPos;this.followPointer&&b&&(b.chartX===w&&(b=d.pointer.normalize(b)),c=[b.chartX-d.plotLeft,b.chartY-f]);c||(n(a,function(a){i=a.series.yAxis;g+=a.plotX;h+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!e&&i?i.top-f:0)}),g/=a.length,h/=a.length,c=[e?d.plotWidth-h:g,this.shared&&!e&&a.length>1&&b?b.chartY-f:e?d.plotHeight-g:
-h]);return Na(c,t)},getPosition:function(a,b,c){var d=this.chart,e=d.plotLeft,f=d.plotTop,g=d.plotWidth,h=d.plotHeight,i=o(this.options.distance,12),j=c.plotX,c=c.plotY,d=j+e+(d.inverted?i:-a-i),k=c-b+f+15,l;d<7&&(d=e+s(j,0)+i);d+a>e+g&&(d-=d+a-(e+g),k=c-b+f-i,l=!0);k<f+5&&(k=f+5,l&&c>=k&&c<=k+b&&(k=c+f+i));k+b>f+h&&(k=s(f,f+h-b-i));return{x:d,y:k}},defaultFormatter:function(a){var b=this.points||ja(this),c=b[0].series,d;d=[c.tooltipHeaderFormatter(b[0])];n(b,function(a){c=a.series;d.push(c.tooltipFormatter&&
-c.tooltipFormatter(a)||a.point.tooltipFormatter(c.tooltipOptions.pointFormat))});d.push(a.options.footerFormat||"");return d.join("")},refresh:function(a,b){var c=this.chart,d=this.label,e=this.options,f,g,h={},i,j=[];i=e.formatter||this.defaultFormatter;var h=c.hoverPoints,k,l=e.crosshairs,m=this.shared;clearTimeout(this.hideTimer);this.followPointer=ja(a)[0].series.tooltipOptions.followPointer;g=this.getAnchor(a,b);f=g[0];g=g[1];m&&(!a.series||!a.series.noSharedTooltip)?(c.hoverPoints=a,h&&n(h,
-function(a){a.setState()}),n(a,function(a){a.setState("hover");j.push(a.getLabelConfig())}),h={x:a[0].category,y:a[0].y},h.points=j,a=a[0]):h=a.getLabelConfig();i=i.call(h,this);h=a.series;i===!1?this.hide():(this.isHidden&&(Wa(d),d.attr("opacity",1).show()),d.attr({text:i}),k=e.borderColor||a.color||h.color||"#606060",d.attr({stroke:k}),this.updatePosition({plotX:f,plotY:g}),this.isHidden=!1);if(l){l=ja(l);for(d=l.length;d--;)if(m=a.series,e=m[d?"yAxis":"xAxis"],l[d]&&e)if(h=d?o(a.stackY,a.y):a.x,
-e.isLog&&(h=na(h)),d===1&&m.modifyValue&&(h=m.modifyValue(h)),e=e.getPlotLinePath(h,1),this.crosshairs[d])this.crosshairs[d].attr({d:e,visibility:"visible"});else{h={"stroke-width":l[d].width||1,stroke:l[d].color||"#C0C0C0",zIndex:l[d].zIndex||2};if(l[d].dashStyle)h.dashstyle=l[d].dashStyle;this.crosshairs[d]=c.renderer.path(e).attr(h).add()}}z(c,"tooltipRefresh",{text:i,x:f+c.plotLeft,y:g+c.plotTop,borderColor:k})},updatePosition:function(a){var b=this.chart,c=this.label,c=(this.options.positioner||
-this.getPosition).call(this,c.width,c.height,a);this.move(t(c.x),t(c.y),a.plotX+b.plotLeft,a.plotY+b.plotTop)}};xb.prototype={init:function(a,b){var c=b.chart,d=c.events,e=$?"":c.zoomType,c=a.inverted,f;this.options=b;this.chart=a;this.zoomX=f=/x/.test(e);this.zoomY=e=/y/.test(e);this.zoomHor=f&&!c||e&&c;this.zoomVert=e&&!c||f&&c;this.runChartClick=d&&!!d.click;this.pinchDown=[];this.lastValidTouch={};if(b.tooltip.enabled)a.tooltip=new wb(a,b.tooltip);this.setDOMEvents()},normalize:function(a,b){var c,
-d,a=a||O.event;if(!a.target)a.target=a.srcElement;a=Xb(a);d=a.touches?a.touches.item(0):a;if(!b)this.chartPosition=b=Wb(this.chart.container);d.pageX===w?(c=s(a.x,a.clientX-b.left),d=a.y):(c=d.pageX-b.left,d=d.pageY-b.top);return r(a,{chartX:t(c),chartY:t(d)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};n(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})});return b},getIndex:function(a){var b=this.chart;return b.inverted?
-b.plotHeight+b.plotTop-a.chartY:a.chartX-b.plotLeft},runPointActions:function(a){var b=this.chart,c=b.series,d=b.tooltip,e,f=b.hoverPoint,g=b.hoverSeries,h,i,j=b.chartWidth,k=this.getIndex(a);if(d&&this.options.tooltip.shared&&(!g||!g.noSharedTooltip)){e=[];h=c.length;for(i=0;i<h;i++)if(c[i].visible&&c[i].options.enableMouseTracking!==!1&&!c[i].noSharedTooltip&&c[i].tooltipPoints.length&&(b=c[i].tooltipPoints[k])&&b.series)b._dist=N(k-b.clientX),j=I(j,b._dist),e.push(b);for(h=e.length;h--;)e[h]._dist>
-j&&e.splice(h,1);if(e.length&&e[0].clientX!==this.hoverX)d.refresh(e,a),this.hoverX=e[0].clientX}if(g&&g.tracker){if((b=g.tooltipPoints[k])&&b!==f)b.onMouseOver(a)}else d&&d.followPointer&&!d.isHidden&&(a=d.getAnchor([{}],a),d.updatePosition({plotX:a[0],plotY:a[1]}))},reset:function(a){var b=this.chart,c=b.hoverSeries,d=b.hoverPoint,e=b.tooltip,b=e&&e.shared?b.hoverPoints:d;(a=a&&e&&b)&&ja(b)[0].plotX===w&&(a=!1);if(a)e.refresh(b);else{if(d)d.onMouseOut();if(c)c.onMouseOut();e&&(e.hide(),e.hideCrosshairs());
-this.hoverX=null}},scaleGroups:function(a,b){var c=this.chart,d;n(c.series,function(e){d=a||e.getPlotBox();e.xAxis&&e.xAxis.zoomEnabled&&(e.group.attr(d),e.markerGroup&&(e.markerGroup.attr(d),e.markerGroup.clip(b?c.clipRect:null)),e.dataLabelsGroup&&e.dataLabelsGroup.attr(d))});c.clipRect.attr(b||c.clipBox)},pinchTranslateDirection:function(a,b,c,d,e,f,g){var h=this.chart,i=a?"x":"y",j=a?"X":"Y",k="chart"+j,l=a?"width":"height",m=h["plot"+(a?"Left":"Top")],p,q,o=1,n=h.inverted,s=h.bounds[a?"h":"v"],
-t=b.length===1,u=b[0][k],r=c[0][k],w=!t&&b[1][k],v=!t&&c[1][k],x,c=function(){!t&&N(u-w)>20&&(o=N(r-v)/N(u-w));q=(m-r)/o+u;p=h["plot"+(a?"Width":"Height")]/o};c();b=q;b<s.min?(b=s.min,x=!0):b+p>s.max&&(b=s.max-p,x=!0);x?(r-=0.8*(r-g[i][0]),t||(v-=0.8*(v-g[i][1])),c()):g[i]=[r,v];n||(f[i]=q-m,f[l]=p);f=n?1/o:o;e[l]=p;e[i]=b;d[n?a?"scaleY":"scaleX":"scale"+j]=o;d["translate"+j]=f*m+(r-f*u)},pinch:function(a){var b=this,c=b.chart,d=b.pinchDown,e=c.tooltip&&c.tooltip.options.followTouchMove,f=a.touches,
-g=f.length,h=b.lastValidTouch,i=b.zoomHor||b.pinchHor,j=b.zoomVert||b.pinchVert,k=i||j,l=b.selectionMarker,m={},p=g===1&&(b.inClass(a.target,"highcharts-tracker")&&c.runTrackerClick||c.runChartClick),q={};(k||e)&&!p&&a.preventDefault();Na(f,function(a){return b.normalize(a)});if(a.type==="touchstart")n(f,function(a,b){d[b]={chartX:a.chartX,chartY:a.chartY}}),h.x=[d[0].chartX,d[1]&&d[1].chartX],h.y=[d[0].chartY,d[1]&&d[1].chartY],n(c.axes,function(a){if(a.zoomEnabled){var b=c.bounds[a.horiz?"h":"v"],
-d=a.minPixelPadding,e=a.toPixels(a.dataMin),f=a.toPixels(a.dataMax),g=I(e,f),e=s(e,f);b.min=I(a.pos,g-d);b.max=s(a.pos+a.len,e+d)}});else if(d.length){if(!l)b.selectionMarker=l=r({destroy:pa},c.plotBox);i&&b.pinchTranslateDirection(!0,d,f,m,l,q,h);j&&b.pinchTranslateDirection(!1,d,f,m,l,q,h);b.hasPinched=k;b.scaleGroups(m,q);!k&&e&&g===1&&this.runPointActions(b.normalize(a))}},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=
-this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,c=b.options.chart,d=a.chartX,e=a.chartY,f=this.zoomHor,g=this.zoomVert,h=b.plotLeft,i=b.plotTop,j=b.plotWidth,k=b.plotHeight,l,m=this.mouseDownX,p=this.mouseDownY;d<h?d=h:d>h+j&&(d=h+j);e<i?e=i:e>i+k&&(e=i+k);this.hasDragged=Math.sqrt(Math.pow(m-d,2)+Math.pow(p-e,2));if(this.hasDragged>10){l=b.isInsidePlot(m-h,p-i);if(b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&l&&!this.selectionMarker)this.selectionMarker=b.renderer.rect(h,i,f?1:j,g?
-1:k,0).attr({fill:c.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add();this.selectionMarker&&f&&(d-=m,this.selectionMarker.attr({width:N(d),x:(d>0?0:d)+m}));this.selectionMarker&&g&&(d=e-p,this.selectionMarker.attr({height:N(d),y:(d>0?0:d)+p}));l&&!this.selectionMarker&&c.panning&&b.pan(a,c.panning)}},drop:function(a){var b=this.chart,c=this.hasPinched;if(this.selectionMarker){var d={xAxis:[],yAxis:[],originalEvent:a.originalEvent||a},e=this.selectionMarker,f=e.x,g=e.y,h;if(this.hasDragged||
-c)n(b.axes,function(a){if(a.zoomEnabled){var b=a.horiz,c=a.toValue(b?f:g),b=a.toValue(b?f+e.width:g+e.height);!isNaN(c)&&!isNaN(b)&&(d[a.xOrY+"Axis"].push({axis:a,min:I(c,b),max:s(c,b)}),h=!0)}}),h&&z(b,"selection",d,function(a){b.zoom(r(a,c?{animation:!1}:null))});this.selectionMarker=this.selectionMarker.destroy();c&&this.scaleGroups()}if(b)K(b.container,{cursor:b._cursor}),b.cancelClick=this.hasDragged>10,b.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[]},onContainerMouseDown:function(a){a=
-this.normalize(a);a.preventDefault&&a.preventDefault();this.dragStart(a)},onDocumentMouseUp:function(a){this.drop(a)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition,d=b.hoverSeries,a=this.normalize(a,c);c&&d&&!this.inClass(a.target,"highcharts-tracker")&&!b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&this.reset()},onContainerMouseLeave:function(){this.reset();this.chartPosition=null},onContainerMouseMove:function(a){var b=this.chart,a=this.normalize(a);a.returnValue=
-!1;b.mouseIsDown==="mousedown"&&this.drag(a);(this.inClass(a.target,"highcharts-tracker")||b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop))&&!b.openMenu&&this.runPointActions(a)},inClass:function(a,b){for(var c;a;){if(c=v(a,"class"))if(c.indexOf(b)!==-1)return!0;else if(c.indexOf("highcharts-container")!==-1)return!1;a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries;if(b&&!b.options.stickyTracking&&!this.inClass(a.toElement||a.relatedTarget,"highcharts-tooltip"))b.onMouseOut()},
-onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,d=b.plotLeft,e=b.plotTop,f=b.inverted,g,h,i,a=this.normalize(a);a.cancelBubble=!0;if(!b.cancelClick)c&&this.inClass(a.target,"highcharts-tracker")?(g=this.chartPosition,h=c.plotX,i=c.plotY,r(c,{pageX:g.left+d+(f?b.plotWidth-i:h),pageY:g.top+e+(f?b.plotHeight-h:i)}),z(c.series,"click",r(a,{point:c})),b.hoverPoint&&c.firePointEvent("click",a)):(r(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&z(b,"click",a))},onContainerTouchStart:function(a){var b=
-this.chart;a.touches.length===1?(a=this.normalize(a),b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)?(this.runPointActions(a),this.pinch(a)):this.reset()):a.touches.length===2&&this.pinch(a)},onContainerTouchMove:function(a){(a.touches.length===1||a.touches.length===2)&&this.pinch(a)},onDocumentTouchEnd:function(a){this.drop(a)},setDOMEvents:function(){var a=this,b=a.chart.container,c;this._events=c=[[b,"onmousedown","onContainerMouseDown"],[b,"onmousemove","onContainerMouseMove"],[b,"onclick",
-"onContainerClick"],[b,"mouseleave","onContainerMouseLeave"],[y,"mousemove","onDocumentMouseMove"],[y,"mouseup","onDocumentMouseUp"]];ib&&c.push([b,"ontouchstart","onContainerTouchStart"],[b,"ontouchmove","onContainerTouchMove"],[y,"touchend","onDocumentTouchEnd"]);n(c,function(b){a["_"+b[2]]=function(c){a[b[2]](c)};b[1].indexOf("on")===0?b[0][b[1]]=a["_"+b[2]]:J(b[0],b[1],a["_"+b[2]])})},destroy:function(){var a=this;n(a._events,function(b){b[1].indexOf("on")===0?b[0][b[1]]=null:aa(b[0],b[1],a["_"+
-b[2]])});delete a._events;clearInterval(a.tooltipTimeout)}};eb.prototype={init:function(a,b){var c=this,d=b.itemStyle,e=o(b.padding,8),f=b.itemMarginTop||0;this.options=b;if(b.enabled)c.baseline=C(d.fontSize)+3+f,c.itemStyle=d,c.itemHiddenStyle=x(d,b.itemHiddenStyle),c.itemMarginTop=f,c.padding=e,c.initialItemX=e,c.initialItemY=e-5,c.maxItemWidth=0,c.chart=a,c.itemHeight=0,c.lastLineHeight=0,c.render(),J(c.chart,"endResize",function(){c.positionCheckboxes()})},colorizeItem:function(a,b){var c=this.options,
-d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,h=b?a.color:g,g=a.options&&a.options.marker,i={stroke:h,fill:h},j;d&&d.css({fill:c,color:c});e&&e.attr({stroke:h});if(f){if(g&&f.isMarker)for(j in g=a.convertAttribs(g),g)d=g[j],d!==w&&(i[j]=d);f.attr(i)}},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;a.legendGroup&&a.legendGroup.translate(b?e:this.legendWidth-e-2*c-4,d);if(f)f.x=
-e,f.y=d},destroyItem:function(a){var b=a.checkbox;n(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())});b&&Ta(a.checkbox)},destroy:function(){var a=this.group,b=this.box;if(b)this.box=b.destroy();if(a)this.group=a.destroy()},positionCheckboxes:function(a){var b=this.group.alignAttr,c,d=this.clipHeight||this.legendHeight;if(b)c=b.translateY,n(this.allItems,function(e){var f=e.checkbox,g;f&&(g=c+f.y+(a||0)+3,K(f,{left:b.translateX+e.legendItemWidth+f.x-
-20+"px",top:g+"px",display:g>c-6&&g<c+d-6?"":S}))})},renderTitle:function(){var a=this.padding,b=this.options.title,c=0;if(b.text){if(!this.title)this.title=this.chart.renderer.label(b.text,a-3,a-4,null,null,null,null,null,"legend-title").attr({zIndex:1}).css(b.style).add(this.group);a=this.title.getBBox();c=a.height;this.offsetWidth=a.width;this.contentGroup.attr({translateY:c})}this.titleHeight=c},renderItem:function(a){var B;var b=this,c=b.chart,d=c.renderer,e=b.options,f=e.layout==="horizontal",
-g=e.symbolWidth,h=e.symbolPadding,i=b.itemStyle,j=b.itemHiddenStyle,k=b.padding,l=f?o(e.itemDistance,8):0,m=!e.rtl,p=e.width,q=e.itemMarginBottom||0,n=b.itemMarginTop,A=b.initialItemX,t=a.legendItem,u=a.series||a,r=u.options,w=r.showCheckbox,v=e.useHTML;if(!t&&(a.legendGroup=d.g("legend-item").attr({zIndex:1}).add(b.scrollGroup),u.drawLegendSymbol(b,a),a.legendItem=t=d.text(e.labelFormat?Ca(e.labelFormat,a):e.labelFormatter.call(a),m?g+h:-h,b.baseline,v).css(x(a.visible?i:j)).attr({align:m?"left":
-"right",zIndex:2}).add(a.legendGroup),(v?t:a.legendGroup).on("mouseover",function(){a.setState("hover");t.css(b.options.itemHoverStyle)}).on("mouseout",function(){t.css(a.visible?i:j);a.setState()}).on("click",function(b){var c=function(){a.setVisible()},b={browserEvent:b};a.firePointEvent?a.firePointEvent("legendItemClick",b,c):z(a,"legendItemClick",b,c)}),b.colorizeItem(a,a.visible),r&&w))a.checkbox=U("input",{type:"checkbox",checked:a.selected,defaultChecked:a.selected},e.itemCheckboxStyle,c.container),
-J(a.checkbox,"click",function(b){z(a,"checkboxClick",{checked:b.target.checked},function(){a.select()})});d=t.getBBox();B=a.legendItemWidth=e.itemWidth||g+h+d.width+l+(w?20:0),e=B;b.itemHeight=g=d.height;if(f&&b.itemX-A+e>(p||c.chartWidth-2*k-A))b.itemX=A,b.itemY+=n+b.lastLineHeight+q,b.lastLineHeight=0;b.maxItemWidth=s(b.maxItemWidth,e);b.lastItemY=n+b.itemY+q;b.lastLineHeight=s(g,b.lastLineHeight);a._legendItemPos=[b.itemX,b.itemY];f?b.itemX+=e:(b.itemY+=n+g+q,b.lastLineHeight=g);b.offsetWidth=
-p||s((f?b.itemX-A-l:e)+k,b.offsetWidth)},render:function(){var a=this,b=a.chart,c=b.renderer,d=a.group,e,f,g,h,i=a.box,j=a.options,k=a.padding,l=j.borderWidth,m=j.backgroundColor;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;if(!d)a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup);a.renderTitle();e=[];n(b.series,function(a){var b=a.options;b.showInLegend&&!u(b.linkedTo)&&(e=e.concat(a.legendItems||
-(b.legendType==="point"?a.data:a)))});Kb(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});j.reversed&&e.reverse();a.allItems=e;a.display=f=!!e.length;n(e,function(b){a.renderItem(b)});g=j.width||a.offsetWidth;h=a.lastItemY+a.lastLineHeight+a.titleHeight;h=a.handleOverflow(h);if(l||m){g+=k;h+=k;if(i){if(g>0&&h>0)i[i.isNew?"attr":"animate"](i.crisp(null,null,null,g,h)),i.isNew=!1}else a.box=i=c.rect(0,0,g,h,j.borderRadius,l||0).attr({stroke:j.borderColor,
-"stroke-width":l||0,fill:m||S}).add(d).shadow(j.shadow),i.isNew=!0;i[f?"show":"hide"]()}a.legendWidth=g;a.legendHeight=h;n(e,function(b){a.positionItem(b)});f&&d.align(r({width:g,height:h},j),!0,"spacingBox");b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+(e.verticalAlign==="top"?-f:f)-this.padding,g=e.maxHeight,h=this.clipRect,i=e.navigation,j=o(i.animation,!0),k=i.arrowSize||12,l=this.nav;e.layout===
-"horizontal"&&(f/=2);g&&(f=I(f,g));if(a>f&&!e.useHTML){this.clipHeight=c=f-20-this.titleHeight;this.pageCount=xa(a/c);this.currentPage=o(this.currentPage,1);this.fullHeight=a;if(!h)h=b.clipRect=d.clipRect(0,0,9999,0),b.contentGroup.clip(h);h.attr({height:c});if(!l)this.nav=l=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,k,k).on("click",function(){b.scroll(-1,j)}).add(l),this.pager=d.text("",15,10).css(i.style).add(l),this.down=d.symbol("triangle-down",0,0,k,k).on("click",
-function(){b.scroll(1,j)}).add(l);b.scroll(0);a=f}else if(l)h.attr({height:c.chartHeight}),l.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0;return a},scroll:function(a,b){var c=this.pageCount,d=this.currentPage+a,e=this.clipHeight,f=this.options.navigation,g=f.activeColor,h=f.inactiveColor,f=this.pager,i=this.padding;d>c&&(d=c);if(d>0)b!==w&&La(b,this.chart),this.nav.attr({translateX:i,translateY:e+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:d===1?h:g}).css({cursor:d===
-1?"default":"pointer"}),f.attr({text:d+"/"+this.pageCount}),this.down.attr({x:18+this.pager.getBBox().width,fill:d===c?h:g}).css({cursor:d===c?"default":"pointer"}),e=-I(e*(d-1),this.fullHeight-e+i)+1,this.scrollGroup.animate({translateY:e}),f.attr({text:d+"/"+c}),this.currentPage=d,this.positionCheckboxes(e)}};/Trident.*?11\.0/.test(oa)&&mb(eb.prototype,"positionItem",function(a,b){var c=this;setTimeout(function(){a.call(c,b)})});yb.prototype={init:function(a,b){var c,d=a.series;a.series=null;c=
-x(M,a);c.series=a.series=d;d=c.chart;this.margin=this.splashArray("margin",d);this.spacing=this.splashArray("spacing",d);var e=d.events;this.bounds={h:{},v:{}};this.callback=b;this.isResizing=0;this.options=c;this.axes=[];this.series=[];this.hasCartesianSeries=d.showAxes;var f=this,g;f.index=Ga.length;Ga.push(f);d.reflow!==!1&&J(f,"load",function(){f.initReflow()});if(e)for(g in e)J(f,g,e[g]);f.xAxis=[];f.yAxis=[];f.animation=$?!1:o(d.animation,!0);f.pointCount=0;f.counters=new Jb;f.firstRender()},
-initSeries:function(a){var b=this.options.chart;(b=W[a.type||b.type||b.defaultSeriesType])||ka(17,!0);b=new b;b.init(this,a);return b},addSeries:function(a,b,c){var d,e=this;a&&(b=o(b,!0),z(e,"addSeries",{options:a},function(){d=e.initSeries(a);e.isDirtyLegend=!0;e.linkSeries();b&&e.redraw(c)}));return d},addAxis:function(a,b,c,d){var e=b?"xAxis":"yAxis",f=this.options;new db(this,x(a,{index:this[e].length,isX:b}));f[e]=ja(f[e]||{});f[e].push(a);o(c,!0)&&this.redraw(d)},isInsidePlot:function(a,b,
-c){var d=c?b:a,a=c?a:b;return d>=0&&d<=this.plotWidth&&a>=0&&a<=this.plotHeight},adjustTickAmounts:function(){this.options.chart.alignTicks!==!1&&n(this.axes,function(a){a.adjustTickAmount()});this.maxTicks=null},redraw:function(a){var b=this.axes,c=this.series,d=this.pointer,e=this.legend,f=this.isDirtyLegend,g,h,i=this.isDirtyBox,j=c.length,k=j,l=this.renderer,m=l.isHidden(),p=[];La(a,this);m&&this.cloneRenderTo();for(this.layOutTitles();k--;)if(a=c[k],a.options.stacking&&(g=!0,a.isDirty)){h=!0;
-break}if(h)for(k=j;k--;)if(a=c[k],a.options.stacking)a.isDirty=!0;n(c,function(a){a.isDirty&&a.options.legendType==="point"&&(f=!0)});if(f&&e.options.enabled)e.render(),this.isDirtyLegend=!1;g&&this.getStacks();if(this.hasCartesianSeries){if(!this.isResizing)this.maxTicks=null,n(b,function(a){a.setScale()});this.adjustTickAmounts();this.getMargins();n(b,function(a){a.isDirty&&(i=!0)});n(b,function(a){if(a.isDirtyExtremes)a.isDirtyExtremes=!1,p.push(function(){z(a,"afterSetExtremes",r(a.eventArgs,
-a.getExtremes()));delete a.eventArgs});(i||g)&&a.redraw()})}i&&this.drawChartBox();n(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian||a.xAxis)&&a.redraw()});d&&d.reset&&d.reset(!0);l.draw();z(this,"redraw");m&&this.cloneRenderTo(!0);n(p,function(a){a.call()})},showLoading:function(a){var b=this.options,c=this.loadingDiv,d=b.loading;if(!c)this.loadingDiv=c=U(Ea,{className:"highcharts-loading"},r(d.style,{zIndex:10,display:S}),this.container),this.loadingSpan=U("span",null,d.labelStyle,c);this.loadingSpan.innerHTML=
-a||b.lang.loading;if(!this.loadingShown)K(c,{opacity:0,display:"",left:this.plotLeft+"px",top:this.plotTop+"px",width:this.plotWidth+"px",height:this.plotHeight+"px"}),Bb(c,{opacity:d.style.opacity},{duration:d.showDuration||0}),this.loadingShown=!0},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&Bb(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){K(b,{display:S})}});this.loadingShown=!1},get:function(a){var b=this.axes,c=this.series,d,e;for(d=0;d<b.length;d++)if(b[d].options.id===
-a)return b[d];for(d=0;d<c.length;d++)if(c[d].options.id===a)return c[d];for(d=0;d<c.length;d++){e=c[d].points||[];for(b=0;b<e.length;b++)if(e[b].id===a)return e[b]}return null},getAxes:function(){var a=this,b=this.options,c=b.xAxis=ja(b.xAxis||{}),b=b.yAxis=ja(b.yAxis||{});n(c,function(a,b){a.index=b;a.isX=!0});n(b,function(a,b){a.index=b});c=c.concat(b);n(c,function(b){new db(a,b)});a.adjustTickAmounts()},getSelectedPoints:function(){var a=[];n(this.series,function(b){a=a.concat(ub(b.points||[],
-function(a){return a.selected}))});return a},getSelectedSeries:function(){return ub(this.series,function(a){return a.selected})},getStacks:function(){var a=this;n(a.yAxis,function(a){if(a.stacks&&a.hasVisibleSeries)a.oldStacks=a.stacks});n(a.series,function(b){if(b.options.stacking&&(b.visible===!0||a.options.chart.ignoreHiddenSeries===!1))b.stackKey=b.type+o(b.options.stack,"")})},showResetZoom:function(){var a=this,b=M.lang,c=a.options.chart.resetZoomButton,d=c.theme,e=d.states,f=c.relativeTo===
-"chart"?null:"plotBox";this.resetZoomButton=a.renderer.button(b.resetZoom,null,null,function(){a.zoomOut()},d,e&&e.hover).attr({align:c.position.align,title:b.resetZoomTitle}).add().align(c.position,!1,f)},zoomOut:function(){var a=this;z(a,"selection",{resetSelection:!0},function(){a.zoom()})},zoom:function(a){var b,c=this.pointer,d=!1,e;!a||a.resetSelection?n(this.axes,function(a){b=a.zoom()}):n(a.xAxis.concat(a.yAxis),function(a){var e=a.axis,h=e.isXAxis;if(c[h?"zoomX":"zoomY"]||c[h?"pinchX":"pinchY"])b=
-e.zoom(a.min,a.max),e.displayBtn&&(d=!0)});e=this.resetZoomButton;if(d&&!e)this.showResetZoom();else if(!d&&T(e))this.resetZoomButton=e.destroy();b&&this.redraw(o(this.options.chart.animation,a&&a.animation,this.pointCount<100))},pan:function(a,b){var c=this,d=c.hoverPoints,e;d&&n(d,function(a){a.setState()});n(b==="xy"?[1,0]:[1],function(b){var d=a[b?"chartX":"chartY"],h=c[b?"xAxis":"yAxis"][0],i=c[b?"mouseDownX":"mouseDownY"],j=(h.pointRange||0)/2,k=h.getExtremes(),l=h.toValue(i-d,!0)+j,i=h.toValue(i+
-c[b?"plotWidth":"plotHeight"]-d,!0)-j;h.series.length&&l>I(k.dataMin,k.min)&&i<s(k.dataMax,k.max)&&(h.setExtremes(l,i,!1,!1,{trigger:"pan"}),e=!0);c[b?"mouseDownX":"mouseDownY"]=d});e&&c.redraw(!1);K(c.container,{cursor:"move"})},setTitle:function(a,b){var f;var c=this,d=c.options,e;e=d.title=x(d.title,a);f=d.subtitle=x(d.subtitle,b),d=f;n([["title",a,e],["subtitle",b,d]],function(a){var b=a[0],d=c[b],e=a[1],a=a[2];d&&e&&(c[b]=d=d.destroy());a&&a.text&&!d&&(c[b]=c.renderer.text(a.text,0,0,a.useHTML).attr({align:a.align,
-"class":"highcharts-"+b,zIndex:a.zIndex||4}).css(a.style).add())});c.layOutTitles()},layOutTitles:function(){var a=0,b=this.title,c=this.subtitle,d=this.options,e=d.title,d=d.subtitle,f=this.spacingBox.width-44;if(b&&(b.css({width:(e.width||f)+"px"}).align(r({y:15},e),!1,"spacingBox"),!e.floating&&!e.verticalAlign))a=b.getBBox().height,a>=18&&a<=25&&(a=15);c&&(c.css({width:(d.width||f)+"px"}).align(r({y:a+e.margin},d),!1,"spacingBox"),!d.floating&&!d.verticalAlign&&(a=xa(a+c.getBBox().height)));this.titleOffset=
-a},getChartSize:function(){var a=this.options.chart,b=this.renderToClone||this.renderTo;this.containerWidth=jb(b,"width");this.containerHeight=jb(b,"height");this.chartWidth=s(0,a.width||this.containerWidth||600);this.chartHeight=s(0,o(a.height,this.containerHeight>19?this.containerHeight:400))},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Ta(b),delete this.renderToClone):(c&&c.parentNode===this.renderTo&&this.renderTo.removeChild(c),this.renderToClone=
-b=this.renderTo.cloneNode(0),K(b,{position:"absolute",top:"-9999px",display:"block"}),y.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var a,b=this.options.chart,c,d,e;this.renderTo=a=b.renderTo;e="highcharts-"+zb++;if(ea(a))this.renderTo=a=y.getElementById(a);a||ka(13,!0);c=C(v(a,"data-highcharts-chart"));!isNaN(c)&&Ga[c]&&Ga[c].destroy();v(a,"data-highcharts-chart",this.index);a.innerHTML="";a.offsetWidth||this.cloneRenderTo();this.getChartSize();c=this.chartWidth;d=this.chartHeight;
-this.container=a=U(Ea,{className:"highcharts-container"+(b.className?" "+b.className:""),id:e},r({position:"relative",overflow:"hidden",width:c+"px",height:d+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},b.style),this.renderToClone||a);this._cursor=a.style.cursor;this.renderer=b.forExport?new Ha(a,c,d,!0):new Va(a,c,d);$&&this.renderer.create(this,a,c,d)},getMargins:function(){var a=this.spacing,b,c=this.legend,d=this.margin,e=this.options.legend,
-f=o(e.margin,10),g=e.x,h=e.y,i=e.align,j=e.verticalAlign,k=this.titleOffset;this.resetMargins();b=this.axisOffset;if(k&&!u(d[0]))this.plotTop=s(this.plotTop,k+this.options.title.margin+a[0]);if(c.display&&!e.floating)if(i==="right"){if(!u(d[1]))this.marginRight=s(this.marginRight,c.legendWidth-g+f+a[1])}else if(i==="left"){if(!u(d[3]))this.plotLeft=s(this.plotLeft,c.legendWidth+g+f+a[3])}else if(j==="top"){if(!u(d[0]))this.plotTop=s(this.plotTop,c.legendHeight+h+f+a[0])}else if(j==="bottom"&&!u(d[2]))this.marginBottom=
-s(this.marginBottom,c.legendHeight-h+f+a[2]);this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin);this.extraTopMargin&&(this.plotTop+=this.extraTopMargin);this.hasCartesianSeries&&n(this.axes,function(a){a.getOffset()});u(d[3])||(this.plotLeft+=b[3]);u(d[0])||(this.plotTop+=b[0]);u(d[2])||(this.marginBottom+=b[2]);u(d[1])||(this.marginRight+=b[1]);this.setChartSize()},initReflow:function(){function a(a){var g=c.width||jb(d,"width"),h=c.height||jb(d,"height"),a=a?a.target:O;if(!b.hasUserSize&&
-g&&h&&(a===O||a===y)){if(g!==b.containerWidth||h!==b.containerHeight)clearTimeout(e),b.reflowTimeout=e=setTimeout(function(){if(b.container)b.setSize(g,h,!1),b.hasUserSize=null},100);b.containerWidth=g;b.containerHeight=h}}var b=this,c=b.options.chart,d=b.renderTo,e;b.reflow=a;J(O,"resize",a);J(b,"destroy",function(){aa(O,"resize",a)})},setSize:function(a,b,c){var d=this,e,f,g;d.isResizing+=1;g=function(){d&&z(d,"endResize",null,function(){d.isResizing-=1})};La(c,d);d.oldChartHeight=d.chartHeight;
-d.oldChartWidth=d.chartWidth;if(u(a))d.chartWidth=e=s(0,t(a)),d.hasUserSize=!!e;if(u(b))d.chartHeight=f=s(0,t(b));K(d.container,{width:e+"px",height:f+"px"});d.setChartSize(!0);d.renderer.setSize(e,f,c);d.maxTicks=null;n(d.axes,function(a){a.isDirty=!0;a.setScale()});n(d.series,function(a){a.isDirty=!0});d.isDirtyLegend=!0;d.isDirtyBox=!0;d.getMargins();d.redraw(c);d.oldChartHeight=null;z(d,"resize");Fa===!1?g():setTimeout(g,Fa&&Fa.duration||500)},setChartSize:function(a){var b=this.inverted,c=this.renderer,
-d=this.chartWidth,e=this.chartHeight,f=this.options.chart,g=this.spacing,h=this.clipOffset,i,j,k,l;this.plotLeft=i=t(this.plotLeft);this.plotTop=j=t(this.plotTop);this.plotWidth=k=s(0,t(d-i-this.marginRight));this.plotHeight=l=s(0,t(e-j-this.marginBottom));this.plotSizeX=b?l:k;this.plotSizeY=b?k:l;this.plotBorderWidth=f.plotBorderWidth||0;this.spacingBox=c.spacingBox={x:g[3],y:g[0],width:d-g[3]-g[1],height:e-g[0]-g[2]};this.plotBox=c.plotBox={x:i,y:j,width:k,height:l};d=2*P(this.plotBorderWidth/2);
-b=xa(s(d,h[3])/2);c=xa(s(d,h[0])/2);this.clipBox={x:b,y:c,width:P(this.plotSizeX-s(d,h[1])/2-b),height:P(this.plotSizeY-s(d,h[2])/2-c)};a||n(this.axes,function(a){a.setAxisSize();a.setAxisTranslation()})},resetMargins:function(){var a=this.spacing,b=this.margin;this.plotTop=o(b[0],a[0]);this.marginRight=o(b[1],a[1]);this.marginBottom=o(b[2],a[2]);this.plotLeft=o(b[3],a[3]);this.axisOffset=[0,0,0,0];this.clipOffset=[0,0,0,0]},drawChartBox:function(){var a=this.options.chart,b=this.renderer,c=this.chartWidth,
-d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,i=a.borderWidth||0,j=a.backgroundColor,k=a.plotBackgroundColor,l=a.plotBackgroundImage,m=a.plotBorderWidth||0,p,q=this.plotLeft,o=this.plotTop,n=this.plotWidth,s=this.plotHeight,t=this.plotBox,u=this.clipRect,r=this.clipBox;p=i+(a.shadow?8:0);if(i||j)if(e)e.animate(e.crisp(null,null,null,c-p,d-p));else{e={fill:j||S};if(i)e.stroke=a.borderColor,e["stroke-width"]=i;this.chartBackground=b.rect(p/2,p/
-2,c-p,d-p,a.borderRadius,i).attr(e).add().shadow(a.shadow)}if(k)f?f.animate(t):this.plotBackground=b.rect(q,o,n,s,0).attr({fill:k}).add().shadow(a.plotShadow);if(l)h?h.animate(t):this.plotBGImage=b.image(l,q,o,n,s).add();u?u.animate({width:r.width,height:r.height}):this.clipRect=b.clipRect(r);if(m)g?g.animate(g.crisp(null,q,o,n,s)):this.plotBorder=b.rect(q,o,n,s,0,-m).attr({stroke:a.plotBorderColor,"stroke-width":m,zIndex:1}).add();this.isDirtyBox=!1},propFromSeries:function(){var a=this,b=a.options.chart,
-c,d=a.options.series,e,f;n(["inverted","angular","polar"],function(g){c=W[b.type||b.defaultSeriesType];f=a[g]||b[g]||c&&c.prototype[g];for(e=d&&d.length;!f&&e--;)(c=W[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},linkSeries:function(){var a=this,b=a.series;n(b,function(a){a.linkedSeries.length=0});n(b,function(b){var d=b.options.linkedTo;if(ea(d)&&(d=d===":previous"?a.series[b.index-1]:a.get(d)))d.linkedSeries.push(b),b.linkedParent=d})},render:function(){var a=this,b=a.axes,c=a.renderer,d=a.options,
-e=d.labels,f=d.credits,g;a.setTitle();a.legend=new eb(a,d.legend);a.getStacks();n(b,function(a){a.setScale()});a.getMargins();a.maxTicks=null;n(b,function(a){a.setTickPositions(!0);a.setMaxTicks()});a.adjustTickAmounts();a.getMargins();a.drawChartBox();a.hasCartesianSeries&&n(b,function(a){a.render()});if(!a.seriesGroup)a.seriesGroup=c.g("series-group").attr({zIndex:3}).add();n(a.series,function(a){a.translate();a.setTooltipPoints();a.render()});e.items&&n(e.items,function(b){var d=r(e.style,b.style),
-f=C(d.left)+a.plotLeft,g=C(d.top)+a.plotTop+12;delete d.left;delete d.top;c.text(b.html,f,g).attr({zIndex:2}).css(d).add()});if(f.enabled&&!a.credits)g=f.href,a.credits=c.text(f.text,0,0).on("click",function(){if(g)location.href=g}).attr({align:f.position.align,zIndex:8}).css(f.style).add().align(f.position);a.hasRendered=!0},destroy:function(){var a=this,b=a.axes,c=a.series,d=a.container,e,f=d&&d.parentNode;z(a,"destroy");Ga[a.index]=w;a.renderTo.removeAttribute("data-highcharts-chart");aa(a);for(e=
-b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();n("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(b){var c=a[b];c&&c.destroy&&(a[b]=c.destroy())});if(d)d.innerHTML="",aa(d),f&&Ta(d);for(e in a)delete a[e]},isReadyToRender:function(){var a=this;return!Z&&O==O.top&&y.readyState!=="complete"||$&&!O.canvg?($?Tb.push(function(){a.firstRender()},
-a.options.global.canvasToolsURL):y.attachEvent("onreadystatechange",function(){y.detachEvent("onreadystatechange",a.firstRender);y.readyState==="complete"&&a.firstRender()}),!1):!0},firstRender:function(){var a=this,b=a.options,c=a.callback;if(a.isReadyToRender())a.getContainer(),z(a,"init"),a.resetMargins(),a.setChartSize(),a.propFromSeries(),a.getAxes(),n(b.series||[],function(b){a.initSeries(b)}),a.linkSeries(),z(a,"beforeRender"),a.pointer=new xb(a,b),a.render(),a.renderer.draw(),c&&c.apply(a,
-[a]),n(a.callbacks,function(b){b.apply(a,[a])}),a.cloneRenderTo(!0),z(a,"load")},splashArray:function(a,b){var c=b[a],c=T(c)?c:[c,c,c,c];return[o(b[a+"Top"],c[0]),o(b[a+"Right"],c[1]),o(b[a+"Bottom"],c[2]),o(b[a+"Left"],c[3])]}};yb.prototype.callbacks=[];var Pa=function(){};Pa.prototype={init:function(a,b,c){this.series=a;this.applyOptions(b,c);this.pointAttr={};if(a.options.colorByPoint&&(b=a.options.colors||a.chart.options.colors,this.color=this.color||b[a.colorCounter++],a.colorCounter===b.length))a.colorCounter=
-0;a.chart.pointCount++;return this},applyOptions:function(a,b){var c=this.series,d=c.pointValKey,a=Pa.prototype.optionsToObject.call(this,a);r(this,a);this.options=this.options?r(this.options,a):a;if(d)this.y=this[d];if(this.x===w&&c)this.x=b===w?c.autoIncrement():b;return this},optionsToObject:function(a){var b,c=this.series,d=c.pointArrayMap||["y"],e=d.length,f=0,g=0;if(typeof a==="number"||a===null)b={y:a};else if(Ia(a)){b={};if(a.length>e){c=typeof a[0];if(c==="string")b.name=a[0];else if(c===
-"number")b.x=a[0];f++}for(;g<e;)b[d[g++]]=a[f++]}else if(typeof a==="object"){b=a;if(a.dataLabels)c._hasPointLabels=!0;if(a.marker)c._hasPointMarkers=!0}return b},destroy:function(){var a=this.series.chart,b=a.hoverPoints,c;a.pointCount--;if(b&&(this.setState(),ga(b,this),!b.length))a.hoverPoints=null;if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)aa(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(c in this)this[c]=null},destroyElements:function(){for(var a=
-"graphic,dataLabel,dataLabelUpper,group,connector,shadowGroup".split(","),b,c=6;c--;)b=a[c],this[b]&&(this[b]=this[b].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},select:function(a,b){var c=this,d=c.series,e=d.chart,a=o(a,!c.selected);c.firePointEvent(a?"select":"unselect",{accumulate:b},function(){c.selected=c.options.selected=a;d.options.data[qa(c,d.data)]=
-c.options;c.setState(a&&"select");b||n(e.getSelectedPoints(),function(a){if(a.selected&&a!==c)a.selected=a.options.selected=!1,d.options.data[qa(a,d.data)]=a.options,a.setState(""),a.firePointEvent("unselect")})})},onMouseOver:function(a){var b=this.series,c=b.chart,d=c.tooltip,e=c.hoverPoint;if(e&&e!==this)e.onMouseOut();this.firePointEvent("mouseOver");d&&(!d.shared||b.noSharedTooltip)&&d.refresh(this,a);this.setState("hover");c.hoverPoint=this},onMouseOut:function(){var a=this.series.chart,b=a.hoverPoints;
-if(!b||qa(this,b)===-1)this.firePointEvent("mouseOut"),this.setState(),a.hoverPoint=null},tooltipFormatter:function(a){var b=this.series,c=b.tooltipOptions,d=o(c.valueDecimals,""),e=c.valuePrefix||"",f=c.valueSuffix||"";n(b.pointArrayMap||["y"],function(b){b="{point."+b;if(e||f)a=a.replace(b+"}",e+b+"}"+f);a=a.replace(b+"}",b+":,."+d+"f}")});return Ca(a,{point:this,series:this.series})},update:function(a,b,c){var d=this,e=d.series,f=d.graphic,g,h=e.data,i=e.chart,j=e.options,b=o(b,!0);d.firePointEvent("update",
-{options:a},function(){d.applyOptions(a);if(T(a)&&(e.getAttribs(),f))a.marker&&a.marker.symbol?d.graphic=f.destroy():f.attr(d.pointAttr[d.state||""]);g=qa(d,h);e.xData[g]=d.x;e.yData[g]=e.toYData?e.toYData(d):d.y;e.zData[g]=d.z;j.data[g]=d.options;e.isDirty=e.isDirtyData=!0;if(!e.fixedBox&&e.hasCartesianSeries)i.isDirtyBox=!0;j.legendType==="point"&&i.legend.destroyItem(d);b&&i.redraw(c)})},remove:function(a,b){var c=this,d=c.series,e=d.points,f=d.chart,g,h=d.data;La(b,f);a=o(a,!0);c.firePointEvent("remove",
-null,function(){g=qa(c,h);h.length===e.length&&e.splice(g,1);h.splice(g,1);d.options.data.splice(g,1);d.xData.splice(g,1);d.yData.splice(g,1);d.zData.splice(g,1);c.destroy();d.isDirty=!0;d.isDirtyData=!0;a&&f.redraw()})},firePointEvent:function(a,b,c){var d=this,e=this.series.options;(e.point.events[a]||d.options&&d.options.events&&d.options.events[a])&&this.importEvents();a==="click"&&e.allowPointSelect&&(c=function(a){d.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});z(this,a,b,c)},importEvents:function(){if(!this.hasImportedEvents){var a=
-x(this.series.options.point,this.options).events,b;this.events=a;for(b in a)J(this,b,a[b]);this.hasImportedEvents=!0}},setState:function(a){var b=this.plotX,c=this.plotY,d=this.series,e=d.options.states,f=Y[d.type].marker&&d.options.marker,g=f&&!f.enabled,h=f&&f.states[a],i=h&&h.enabled===!1,j=d.stateMarkerGraphic,k=this.marker||{},l=d.chart,m=this.pointAttr,a=a||"";if(!(a===this.state||this.selected&&a!=="select"||e[a]&&e[a].enabled===!1||a&&(i||g&&!h.enabled))){if(this.graphic)e=f&&this.graphic.symbolName&&
-m[a].r,this.graphic.attr(x(m[a],e?{x:b-e,y:c-e,width:2*e,height:2*e}:{}));else{if(a&&h)e=h.radius,k=k.symbol||d.symbol,j&&j.currentSymbol!==k&&(j=j.destroy()),j?j.attr({x:b-e,y:c-e}):(d.stateMarkerGraphic=j=l.renderer.symbol(k,b-e,c-e,2*e,2*e).attr(m[a]).add(d.markerGroup),j.currentSymbol=k);if(j)j[a&&l.isInsidePlot(b,c)?"show":"hide"]()}this.state=a}}};var Q=function(){};Q.prototype={isCartesian:!0,type:"line",pointClass:Pa,sorted:!0,requireSorting:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",
-fill:"fillColor",r:"radius"},colorCounter:0,init:function(a,b){var c,d,e=a.series;this.chart=a;this.options=b=this.setOptions(b);this.linkedSeries=[];this.bindAxes();r(this,{name:b.name,state:"",pointAttr:{},visible:b.visible!==!1,selected:b.selected===!0});if($)b.animation=!1;d=b.events;for(c in d)J(this,c,d[c]);if(d&&d.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;this.getColor();this.getSymbol();this.setData(b.data,!1);if(this.isCartesian)a.hasCartesianSeries=
-!0;e.push(this);this._i=e.length-1;Kb(e,function(a,b){return o(a.options.index,a._i)-o(b.options.index,a._i)});n(e,function(a,b){a.index=b;a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var a=this,b=a.options,c=a.chart,d;a.isCartesian&&n(["xAxis","yAxis"],function(e){n(c[e],function(c){d=c.options;if(b[e]===d.index||b[e]!==w&&b[e]===d.id||b[e]===w&&d.index===0)c.series.push(a),a[e]=c,c.isDirty=!0});a[e]||ka(18,!0)})},autoIncrement:function(){var a=this.options,b=this.xIncrement,b=o(b,a.pointStart,
-0);this.pointInterval=o(this.pointInterval,a.pointInterval,1);this.xIncrement=b+this.pointInterval;return b},getSegments:function(){var a=-1,b=[],c,d=this.points,e=d.length;if(e)if(this.options.connectNulls){for(c=e;c--;)d[c].y===null&&d.splice(c,1);d.length&&(b=[d])}else n(d,function(c,g){c.y===null?(g>a+1&&b.push(d.slice(a+1,g)),a=g):g===e-1&&b.push(d.slice(a+1,g+1))});this.segments=b},setOptions:function(a){var b=this.chart.options,c=b.plotOptions,d=c[this.type];this.userOptions=a;a=x(d,c.series,
-a);this.tooltipOptions=x(b.tooltip,a.tooltip);d.marker===null&&delete a.marker;return a},getColor:function(){var a=this.options,b=this.userOptions,c=this.chart.options.colors,d=this.chart.counters,e;e=a.color||Y[this.type].color;if(!e&&!a.colorByPoint)u(b._colorIndex)?a=b._colorIndex:(b._colorIndex=d.color,a=d.color++),e=c[a];this.color=e;d.wrapColor(c.length)},getSymbol:function(){var a=this.userOptions,b=this.options.marker,c=this.chart,d=c.options.symbols,c=c.counters;this.symbol=b.symbol;if(!this.symbol)u(a._symbolIndex)?
-a=a._symbolIndex:(a._symbolIndex=c.symbol,a=c.symbol++),this.symbol=d[a];if(/^url/.test(this.symbol))b.radius=0;c.wrapSymbol(d.length)},drawLegendSymbol:function(a){var b=this.options,c=b.marker,d=a.options,e;e=d.symbolWidth;var f=this.chart.renderer,g=this.legendGroup,a=a.baseline-t(f.fontMetrics(d.itemStyle.fontSize).b*0.3);if(b.lineWidth){d={"stroke-width":b.lineWidth};if(b.dashStyle)d.dashstyle=b.dashStyle;this.legendLine=f.path(["M",0,a,"L",e,a]).attr(d).add(g)}if(c&&c.enabled)b=c.radius,this.legendSymbol=
-e=f.symbol(this.symbol,e/2-b,a-b,2*b,2*b).add(g),e.isMarker=!0},addPoint:function(a,b,c,d){var e=this.options,f=this.data,g=this.graph,h=this.area,i=this.chart,j=this.xData,k=this.yData,l=this.zData,m=this.names,p=g&&g.shift||0,q=e.data,s;La(d,i);c&&n([g,h,this.graphNeg,this.areaNeg],function(a){if(a)a.shift=p+1});if(h)h.isArea=!0;b=o(b,!0);d={series:this};this.pointClass.prototype.applyOptions.apply(d,[a]);g=d.x;h=j.length;if(this.requireSorting&&g<j[h-1])for(s=!0;h&&j[h-1]>g;)h--;j.splice(h,0,g);
-k.splice(h,0,this.toYData?this.toYData(d):d.y);l.splice(h,0,d.z);if(m)m[g]=d.name;q.splice(h,0,a);s&&(this.data.splice(h,0,null),this.processData());e.legendType==="point"&&this.generatePoints();c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),j.shift(),k.shift(),l.shift(),q.shift()));this.isDirtyData=this.isDirty=!0;b&&(this.getAttribs(),i.redraw())},setData:function(a,b){var c=this.points,d=this.options,e=this.chart,f=null,g=this.xAxis,h=g&&g.categories&&!g.categories.length?[]:null,i;this.xIncrement=
-null;this.pointRange=g&&g.categories?1:d.pointRange;this.colorCounter=0;var j=[],k=[],l=[],m=a?a.length:[];i=o(d.turboThreshold,1E3);var p=this.pointArrayMap,p=p&&p.length,q=!!this.toYData;if(i&&m>i){for(i=0;f===null&&i<m;)f=a[i],i++;if(sa(f)){f=o(d.pointStart,0);d=o(d.pointInterval,1);for(i=0;i<m;i++)j[i]=f,k[i]=a[i],f+=d;this.xIncrement=f}else if(Ia(f))if(p)for(i=0;i<m;i++)d=a[i],j[i]=d[0],k[i]=d.slice(1,p+1);else for(i=0;i<m;i++)d=a[i],j[i]=d[0],k[i]=d[1];else ka(12)}else for(i=0;i<m;i++)if(a[i]!==
-w&&(d={series:this},this.pointClass.prototype.applyOptions.apply(d,[a[i]]),j[i]=d.x,k[i]=q?this.toYData(d):d.y,l[i]=d.z,h&&d.name))h[d.x]=d.name;ea(k[0])&&ka(14,!0);this.data=[];this.options.data=a;this.xData=j;this.yData=k;this.zData=l;this.names=h;for(i=c&&c.length||0;i--;)c[i]&&c[i].destroy&&c[i].destroy();if(g)g.minRange=g.userMinRange;this.isDirty=this.isDirtyData=e.isDirtyBox=!0;o(b,!0)&&e.redraw(!1)},remove:function(a,b){var c=this,d=c.chart,a=o(a,!0);if(!c.isRemoving)c.isRemoving=!0,z(c,"remove",
-null,function(){c.destroy();d.isDirtyLegend=d.isDirtyBox=!0;d.linkSeries();a&&d.redraw(b)});c.isRemoving=!1},processData:function(a){var b=this.xData,c=this.yData,d=b.length,e;e=0;var f,g,h=this.xAxis,i=this.options,j=i.cropThreshold,k=this.isCartesian;if(k&&!this.isDirty&&!h.isDirty&&!this.yAxis.isDirty&&!a)return!1;if(k&&this.sorted&&(!j||d>j||this.forceCrop))if(a=h.min,h=h.max,b[d-1]<a||b[0]>h)b=[],c=[];else if(b[0]<a||b[d-1]>h)e=this.cropData(this.xData,this.yData,a,h),b=e.xData,c=e.yData,e=e.start,
-f=!0;for(h=b.length-1;h>=0;h--)d=b[h]-b[h-1],d>0&&(g===w||d<g)?g=d:d<0&&this.requireSorting&&ka(15);this.cropped=f;this.cropStart=e;this.processedXData=b;this.processedYData=c;if(i.pointRange===null)this.pointRange=g||1;this.closestPointRange=g},cropData:function(a,b,c,d){var e=a.length,f=0,g=e,h=o(this.cropShoulder,1),i;for(i=0;i<e;i++)if(a[i]>=c){f=s(0,i-h);break}for(;i<e;i++)if(a[i]>d){g=i+h;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,
-b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,h=this.cropStart||0,i,j=this.hasGroupedData,k,l=[],m;if(!b&&!j)b=[],b.length=a.length,b=this.data=b;for(m=0;m<g;m++)i=h+m,j?l[m]=(new f).init(this,[d[m]].concat(ja(e[m]))):(b[i]?k=b[i]:a[i]!==w&&(b[i]=k=(new f).init(this,a[i],d[m])),l[m]=k);if(b&&(g!==(c=b.length)||j))for(m=0;m<c;m++)if(m===h&&!j&&(m+=g),b[m])b[m].destroyElements(),b[m].plotX=w;this.data=b;this.points=l},setStackedPoints:function(){if(this.options.stacking&&
-!(this.visible!==!0&&this.chart.options.chart.ignoreHiddenSeries!==!1)){var a=this.processedXData,b=this.processedYData,c=[],d=b.length,e=this.options,f=e.threshold,g=e.stack,e=e.stacking,h=this.stackKey,i="-"+h,j=this.negStacks,k=this.yAxis,l=k.stacks,m=k.oldStacks,p,q,o,n,t;for(o=0;o<d;o++){n=a[o];t=b[o];q=(p=j&&t<f)?i:h;l[q]||(l[q]={});if(!l[q][n])m[q]&&m[q][n]?(l[q][n]=m[q][n],l[q][n].total=null):l[q][n]=new Mb(k,k.options.stackLabels,p,n,g,e);q=l[q][n];q.points[this.index]=[q.cum||0];e==="percent"?
-(p=p?h:i,j&&l[p]&&l[p][n]?(p=l[p][n],q.total=p.total=s(p.total,q.total)+N(t)||0):q.total+=N(t)||0):q.total+=t||0;q.cum=(q.cum||0)+(t||0);q.points[this.index].push(q.cum);c[o]=q.cum}if(e==="percent")k.usePercentage=!0;this.stackedYData=c;k.oldStacks={}}},setPercentStacks:function(){var a=this,b=a.stackKey,c=a.yAxis.stacks;n([b,"-"+b],function(b){var d;for(var e=a.xData.length,f,g;e--;)if(f=a.xData[e],d=(g=c[b]&&c[b][f])&&g.points[a.index],f=d)g=g.total?100/g.total:0,f[0]=ia(f[0]*g),f[1]=ia(f[1]*g),
-a.stackedYData[e]=f[1]})},getExtremes:function(){var a=this.yAxis,b=this.processedXData,c=this.stackedYData||this.processedYData,d=c.length,e=[],f=0,g=this.xAxis.getExtremes(),h=g.min,g=g.max,i,j,k,l;for(l=0;l<d;l++)if(j=b[l],k=c[l],i=k!==null&&k!==w&&(!a.isLog||k.length||k>0),j=this.getExtremesFromAll||this.cropped||(b[l+1]||j)>=h&&(b[l-1]||j)<=g,i&&j)if(i=k.length)for(;i--;)k[i]!==null&&(e[f++]=k[i]);else e[f++]=k;this.dataMin=o(void 0,Ja(e));this.dataMax=o(void 0,va(e))},translate:function(){this.processedXData||
-this.processData();this.generatePoints();for(var a=this.options,b=a.stacking,c=this.xAxis,d=c.categories,e=this.yAxis,f=this.points,g=f.length,h=!!this.modifyValue,i=a.pointPlacement,j=i==="between"||sa(i),k=a.threshold,a=0;a<g;a++){var l=f[a],m=l.x,p=l.y,q=l.low,n=e.stacks[(this.negStacks&&p<k?"-":"")+this.stackKey];if(e.isLog&&p<=0)l.y=p=null;l.plotX=c.translate(m,0,0,0,1,i,this.type==="flags");if(b&&this.visible&&n&&n[m])n=n[m],p=n.points[this.index],q=p[0],p=p[1],q===0&&(q=o(k,e.min)),e.isLog&&
-q<=0&&(q=null),l.percentage=b==="percent"&&p,l.total=l.stackTotal=n.total,l.stackY=p,n.setOffset(this.pointXOffset||0,this.barW||0);l.yBottom=u(q)?e.translate(q,0,1,0,1):null;h&&(p=this.modifyValue(p,l));l.plotY=typeof p==="number"&&p!==Infinity?e.translate(p,0,1,0,1):w;l.clientX=j?c.translate(m,0,0,0,1):l.plotX;l.negative=l.y<(k||0);l.category=d&&d[l.x]!==w?d[l.x]:l.x}this.getSegments()},setTooltipPoints:function(a){var b=[],c,d,e=this.xAxis,f=e&&e.getExtremes(),g=e?e.tooltipLen||e.len:this.chart.plotSizeX,
-h,i,j=[];if(this.options.enableMouseTracking!==!1){if(a)this.tooltipPoints=null;n(this.segments||this.points,function(a){b=b.concat(a)});e&&e.reversed&&(b=b.reverse());this.orderTooltipPoints&&this.orderTooltipPoints(b);a=b.length;for(i=0;i<a;i++)if(e=b[i],c=e.x,c>=f.min&&c<=f.max){h=b[i+1];c=d===w?0:d+1;for(d=b[i+1]?I(s(0,P((e.clientX+(h?h.wrappedClientX||h.clientX:g))/2)),g):g;c>=0&&c<=d;)j[c++]=e}this.tooltipPoints=j}},tooltipHeaderFormatter:function(a){var b=this.tooltipOptions,c=b.xDateFormat,
-d=b.dateTimeLabelFormats,e=this.xAxis,f=e&&e.options.type==="datetime",b=b.headerFormat,e=e&&e.closestPointRange,g;if(f&&!c)if(e)for(g in D){if(D[g]>=e){c=d[g];break}}else c=d.day;f&&c&&sa(a.key)&&(b=b.replace("{point.key}","{point.key:"+c+"}"));return Ca(b,{point:a,series:this})},onMouseOver:function(){var a=this.chart,b=a.hoverSeries;if(b&&b!==this)b.onMouseOut();this.options.events.mouseOver&&z(this,"mouseOver");this.setState("hover");a.hoverSeries=this},onMouseOut:function(){var a=this.options,
-b=this.chart,c=b.tooltip,d=b.hoverPoint;if(d)d.onMouseOut();this&&a.events.mouseOut&&z(this,"mouseOut");c&&!a.stickyTracking&&(!c.shared||this.noSharedTooltip)&&c.hide();this.setState();b.hoverSeries=null},animate:function(a){var b=this,c=b.chart,d=c.renderer,e;e=b.options.animation;var f=c.clipBox,g=c.inverted,h;if(e&&!T(e))e=Y[b.type].animation;h="_sharedClip"+e.duration+e.easing;if(a)a=c[h],e=c[h+"m"],a||(c[h]=a=d.clipRect(r(f,{width:0})),c[h+"m"]=e=d.clipRect(-99,g?-c.plotLeft:-c.plotTop,99,g?
-c.chartWidth:c.chartHeight)),b.group.clip(a),b.markerGroup.clip(e),b.sharedClipKey=h;else{if(a=c[h])a.animate({width:c.plotSizeX},e),c[h+"m"].animate({width:c.plotSizeX+99},e);b.animate=null;b.animationTimeout=setTimeout(function(){b.afterAnimate()},e.duration)}},afterAnimate:function(){var a=this.chart,b=this.sharedClipKey,c=this.group;c&&this.options.clip!==!1&&(c.clip(a.clipRect),this.markerGroup.clip());setTimeout(function(){b&&a[b]&&(a[b]=a[b].destroy(),a[b+"m"]=a[b+"m"].destroy())},100)},drawPoints:function(){var a,
-b=this.points,c=this.chart,d,e,f,g,h,i,j,k,l=this.options.marker,m,p=this.markerGroup;if(l.enabled||this._hasPointMarkers)for(f=b.length;f--;)if(g=b[f],d=P(g.plotX),e=g.plotY,k=g.graphic,i=g.marker||{},a=l.enabled&&i.enabled===w||i.enabled,m=c.isInsidePlot(t(d),e,c.inverted),a&&e!==w&&!isNaN(e)&&g.y!==null)if(a=g.pointAttr[g.selected?"select":""],h=a.r,i=o(i.symbol,this.symbol),j=i.indexOf("url")===0,k)k.attr({visibility:m?Z?"inherit":"visible":"hidden"}).animate(r({x:d-h,y:e-h},k.symbolName?{width:2*
-h,height:2*h}:{}));else{if(m&&(h>0||j))g.graphic=c.renderer.symbol(i,d-h,e-h,2*h,2*h).attr(a).add(p)}else if(k)g.graphic=k.destroy()},convertAttribs:function(a,b,c,d){var e=this.pointAttrToOptions,f,g,h={},a=a||{},b=b||{},c=c||{},d=d||{};for(f in e)g=e[f],h[f]=o(a[g],b[f],c[f],d[f]);return h},getAttribs:function(){var a=this,b=a.options,c=Y[a.type].marker?b.marker:b,d=c.states,e=d.hover,f,g=a.color,h={stroke:g,fill:g},i=a.points||[],j=[],k,l=a.pointAttrToOptions,m=b.negativeColor,p=c.lineColor,q;
-b.marker?(e.radius=e.radius||c.radius+2,e.lineWidth=e.lineWidth||c.lineWidth+1):e.color=e.color||ra(e.color||g).brighten(e.brightness).get();j[""]=a.convertAttribs(c,h);n(["hover","select"],function(b){j[b]=a.convertAttribs(d[b],j[""])});a.pointAttr=j;for(g=i.length;g--;){h=i[g];if((c=h.options&&h.options.marker||h.options)&&c.enabled===!1)c.radius=0;if(h.negative&&m)h.color=h.fillColor=m;f=b.colorByPoint||h.color;if(h.options)for(q in l)u(c[l[q]])&&(f=!0);if(f){c=c||{};k=[];d=c.states||{};f=d.hover=
-d.hover||{};if(!b.marker)f.color=ra(f.color||h.color).brighten(f.brightness||e.brightness).get();k[""]=a.convertAttribs(r({color:h.color,fillColor:h.color,lineColor:p===null?h.color:w},c),j[""]);k.hover=a.convertAttribs(d.hover,j.hover,k[""]);k.select=a.convertAttribs(d.select,j.select,k[""])}else k=j;h.pointAttr=k}},update:function(a,b){var c=this.chart,d=this.type,e=W[d].prototype,f,a=x(this.userOptions,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1);
-for(f in e)e.hasOwnProperty(f)&&(this[f]=w);r(this,W[a.type||d].prototype);this.init(c,a);o(b,!0)&&c.redraw(!1)},destroy:function(){var a=this,b=a.chart,c=/AppleWebKit\/533/.test(oa),d,e,f=a.data||[],g,h,i;z(a,"destroy");aa(a);n(["xAxis","yAxis"],function(b){if(i=a[b])ga(i.series,a),i.isDirty=i.forceRedraw=!0,i.stacks={}});a.legendItem&&a.chart.legend.destroyItem(a);for(e=f.length;e--;)(g=f[e])&&g.destroy&&g.destroy();a.points=null;clearTimeout(a.animationTimeout);n("area,graph,dataLabelsGroup,group,markerGroup,tracker,graphNeg,areaNeg,posClip,negClip".split(","),
-function(b){a[b]&&(d=c&&b==="group"?"hide":"destroy",a[b][d]())});if(b.hoverSeries===a)b.hoverSeries=null;ga(b.series,a);for(h in a)delete a[h]},drawDataLabels:function(){var a=this,b=a.options.dataLabels,c=a.points,d,e,f,g;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),g=a.plotGroup("dataLabelsGroup","data-labels",a.visible?"visible":"hidden",b.zIndex||6),e=b,n(c,function(c){var i,j=c.dataLabel,k,l,m=c.connector,p=!0;d=c.options&&c.options.dataLabels;i=o(d&&d.enabled,e.enabled);
-if(j&&!i)c.dataLabel=j.destroy();else if(i){b=x(e,d);i=b.rotation;k=c.getLabelConfig();f=b.format?Ca(b.format,k):b.formatter.call(k,b);b.style.color=o(b.color,b.style.color,a.color,"black");if(j)if(u(f))j.attr({text:f}),p=!1;else{if(c.dataLabel=j=j.destroy(),m)c.connector=m.destroy()}else if(u(f)){j={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:i,padding:b.padding,zIndex:1};for(l in j)j[l]===w&&delete j[l];j=c.dataLabel=a.chart.renderer[i?"text":
-"label"](f,0,-999,null,null,null,b.useHTML).attr(j).css(b.style).add(g).shadow(b.shadow)}j&&a.alignDataLabel(c,j,b,null,p)}})},alignDataLabel:function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=o(a.plotX,-999),i=o(a.plotY,-999),j=b.getBBox();if(a=this.visible&&f.isInsidePlot(a.plotX,a.plotY,g))d=r({x:g?f.plotWidth-i:h,y:t(g?f.plotHeight-h:i),width:0,height:0},d),r(c,{width:j.width,height:j.height}),c.rotation?(g={align:c.align,x:d.x+c.x+d.width/2,y:d.y+c.y+d.height/2},b[e?"attr":"animate"](g)):(b.align(c,
-null,d),g=b.alignAttr,o(c.overflow,"justify")==="justify"?this.justifyDataLabel(b,c,g,j,d,e):o(c.crop,!0)&&(a=f.isInsidePlot(g.x,g.y)&&f.isInsidePlot(g.x+j.width,g.y+j.height)));a||b.attr({y:-999})},justifyDataLabel:function(a,b,c,d,e,f){var g=this.chart,h=b.align,i=b.verticalAlign,j,k;j=c.x;if(j<0)h==="right"?b.align="left":b.x=-j,k=!0;j=c.x+d.width;if(j>g.plotWidth)h==="left"?b.align="right":b.x=g.plotWidth-j,k=!0;j=c.y;if(j<0)i==="bottom"?b.verticalAlign="top":b.y=-j,k=!0;j=c.y+d.height;if(j>g.plotHeight)i===
-"top"?b.verticalAlign="bottom":b.y=g.plotHeight-j,k=!0;if(k)a.placed=!f,a.align(b,null,e)},getSegmentPath:function(a){var b=this,c=[],d=b.options.step;n(a,function(e,f){var g=e.plotX,h=e.plotY,i;b.getPointSpline?c.push.apply(c,b.getPointSpline(a,e,f)):(c.push(f?"L":"M"),d&&f&&(i=a[f-1],d==="right"?c.push(i.plotX,h):d==="center"?c.push((i.plotX+g)/2,i.plotY,(i.plotX+g)/2,h):c.push(g,i.plotY)),c.push(e.plotX,e.plotY))});return c},getGraphPath:function(){var a=this,b=[],c,d=[];n(a.segments,function(e){c=
-a.getSegmentPath(e);e.length>1?b=b.concat(c):d.push(e[0])});a.singlePoints=d;return a.graphPath=b},drawGraph:function(){var a=this,b=this.options,c=[["graph",b.lineColor||this.color]],d=b.lineWidth,e=b.dashStyle,f=this.getGraphPath(),g=b.negativeColor;g&&c.push(["graphNeg",g]);n(c,function(c,g){var j=c[0],k=a[j];if(k)Wa(k),k.animate({d:f});else if(d&&f.length)k={stroke:c[1],"stroke-width":d,zIndex:1},e?k.dashstyle=e:k["stroke-linecap"]=k["stroke-linejoin"]="round",a[j]=a.chart.renderer.path(f).attr(k).add(a.group).shadow(!g&&
-b.shadow)})},clipNeg:function(){var a=this.options,b=this.chart,c=b.renderer,d=a.negativeColor||a.negativeFillColor,e,f=this.graph,g=this.area,h=this.posClip,i=this.negClip;e=b.chartWidth;var j=b.chartHeight,k=s(e,j),l=this.yAxis;if(d&&(f||g)){d=t(l.toPixels(a.threshold||0,!0));a={x:0,y:0,width:k,height:d};k={x:0,y:d,width:k,height:k};if(b.inverted)a.height=k.y=b.plotWidth-d,c.isVML&&(a={x:b.plotWidth-d-b.plotLeft,y:0,width:e,height:j},k={x:d+b.plotLeft-e,y:0,width:b.plotLeft+d,height:e});l.reversed?
-(b=k,e=a):(b=a,e=k);h?(h.animate(b),i.animate(e)):(this.posClip=h=c.clipRect(b),this.negClip=i=c.clipRect(e),f&&this.graphNeg&&(f.clip(h),this.graphNeg.clip(i)),g&&(g.clip(h),this.areaNeg.clip(i)))}},invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};n(["group","markerGroup"],function(c){b[c]&&b[c].attr(a).invert()})}var b=this,c=b.chart;if(b.xAxis)J(c,"resize",a),J(b,"destroy",function(){aa(c,"resize",a)}),a(),b.invertGroups=a},plotGroup:function(a,b,c,d,e){var f=this[a],
-g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({visibility:c,zIndex:d||0.1}).add(e));f[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){return{translateX:this.xAxis?this.xAxis.left:this.chart.plotLeft,translateY:this.yAxis?this.yAxis.top:this.chart.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this.chart,b,c=this.options,d=c.animation&&!!this.animate&&a.renderer.isSVG,e=this.visible?"visible":"hidden",f=c.zIndex,g=this.hasRendered,h=a.seriesGroup;b=this.plotGroup("group",
-"series",e,f,h);this.markerGroup=this.plotGroup("markerGroup","markers",e,f,h);d&&this.animate(!0);this.getAttribs();b.inverted=this.isCartesian?a.inverted:!1;this.drawGraph&&(this.drawGraph(),this.clipNeg());this.drawDataLabels();this.drawPoints();this.options.enableMouseTracking!==!1&&this.drawTracker();a.inverted&&this.invertGroups();c.clip!==!1&&!this.sharedClipKey&&!g&&b.clip(a.clipRect);d?this.animate():g||this.afterAnimate();this.isDirty=this.isDirtyData=!1;this.hasRendered=!0},redraw:function(){var a=
-this.chart,b=this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:o(d&&d.left,a.plotLeft),translateY:o(e&&e.top,a.plotTop)}));this.translate();this.setTooltipPoints(!0);this.render();b&&z(this,"updatedData")},setState:function(a){var b=this.options,c=this.graph,d=this.graphNeg,e=b.states,b=b.lineWidth,a=a||"";if(this.state!==a)this.state=a,e[a]&&e[a].enabled===!1||(a&&(b=e[a].lineWidth||b+1),c&&!c.dashstyle&&
-(a={"stroke-width":b},c.attr(a),d&&d.attr(a)))},setVisible:function(a,b){var c=this,d=c.chart,e=c.legendItem,f,g=d.options.chart.ignoreHiddenSeries,h=c.visible;f=(c.visible=a=c.userOptions.visible=a===w?!h:a)?"show":"hide";n(["group","dataLabelsGroup","markerGroup","tracker"],function(a){if(c[a])c[a][f]()});if(d.hoverSeries===c)c.onMouseOut();e&&d.legend.colorizeItem(c,a);c.isDirty=!0;c.options.stacking&&n(d.series,function(a){if(a.options.stacking&&a.visible)a.isDirty=!0});n(c.linkedSeries,function(b){b.setVisible(a,
-!1)});if(g)d.isDirtyBox=!0;b!==!1&&d.redraw();z(c,f)},show:function(){this.setVisible(!0)},hide:function(){this.setVisible(!1)},select:function(a){this.selected=a=a===w?!this.selected:a;if(this.checkbox)this.checkbox.checked=a;z(this,a?"select":"unselect")},drawTracker:function(){var a=this,b=a.options,c=b.trackByArea,d=[].concat(c?a.areaPath:a.graphPath),e=d.length,f=a.chart,g=f.pointer,h=f.renderer,i=f.options.tooltip.snap,j=a.tracker,k=b.cursor,l=k&&{cursor:k},k=a.singlePoints,m,p=function(){if(f.hoverSeries!==
-a)a.onMouseOver()};if(e&&!c)for(m=e+1;m--;)d[m]==="M"&&d.splice(m+1,0,d[m+1]-i,d[m+2],"L"),(m&&d[m]==="M"||m===e)&&d.splice(m,0,"L",d[m-2]+i,d[m-1]);for(m=0;m<k.length;m++)e=k[m],d.push("M",e.plotX-i,e.plotY,"L",e.plotX+i,e.plotY);j?j.attr({d:d}):(a.tracker=h.path(d).attr({"stroke-linejoin":"round",visibility:a.visible?"visible":"hidden",stroke:Qb,fill:c?Qb:S,"stroke-width":b.lineWidth+(c?0:2*i),zIndex:2}).add(a.group),n([a.tracker,a.markerGroup],function(a){a.addClass("highcharts-tracker").on("mouseover",
-p).on("mouseout",function(a){g.onTrackerMouseOut(a)}).css(l);if(ib)a.on("touchstart",p)}))}};G=ha(Q);W.line=G;Y.area=x(X,{threshold:0});G=ha(Q,{type:"area",getSegments:function(){var a=[],b=[],c=[],d=this.xAxis,e=this.yAxis,f=e.stacks[this.stackKey],g={},h,i,j=this.points,k=this.options.connectNulls,l,m,p;if(this.options.stacking&&!this.cropped){for(m=0;m<j.length;m++)g[j[m].x]=j[m];for(p in f)c.push(+p);c.sort(function(a,b){return a-b});n(c,function(a){if(!k||g[a]&&g[a].y!==null)g[a]?b.push(g[a]):
-(h=d.translate(a),l=f[a].percent?f[a].total?f[a].cum*100/f[a].total:0:f[a].cum,i=e.toPixels(l,!0),b.push({y:null,plotX:h,clientX:h,plotY:i,yBottom:i,onMouseOver:pa}))});b.length&&a.push(b)}else Q.prototype.getSegments.call(this),a=this.segments;this.segments=a},getSegmentPath:function(a){var b=Q.prototype.getSegmentPath.call(this,a),c=[].concat(b),d,e=this.options;d=b.length;var f=this.yAxis.getThreshold(e.threshold),g;d===3&&c.push("L",b[1],b[2]);if(e.stacking&&!this.closedStacks)for(d=a.length-
-1;d>=0;d--)g=o(a[d].yBottom,f),d<a.length-1&&e.step&&c.push(a[d+1].plotX,g),c.push(a[d].plotX,g);else this.closeSegment(c,a,f);this.areaPath=this.areaPath.concat(c);return b},closeSegment:function(a,b,c){a.push("L",b[b.length-1].plotX,c,"L",b[0].plotX,c)},drawGraph:function(){this.areaPath=[];Q.prototype.drawGraph.apply(this);var a=this,b=this.areaPath,c=this.options,d=c.negativeColor,e=c.negativeFillColor,f=[["area",this.color,c.fillColor]];(d||e)&&f.push(["areaNeg",d,e]);n(f,function(d){var e=d[0],
-f=a[e];f?f.animate({d:b}):a[e]=a.chart.renderer.path(b).attr({fill:o(d[2],ra(d[1]).setOpacity(o(c.fillOpacity,0.75)).get()),zIndex:0}).add(a.group)})},drawLegendSymbol:function(a,b){b.legendSymbol=this.chart.renderer.rect(0,a.baseline-11,a.options.symbolWidth,12,2).attr({zIndex:3}).add(b.legendGroup)}});W.area=G;Y.spline=x(X);F=ha(Q,{type:"spline",getPointSpline:function(a,b,c){var d=b.plotX,e=b.plotY,f=a[c-1],g=a[c+1],h,i,j,k;if(f&&g){a=f.plotY;j=g.plotX;var g=g.plotY,l;h=(1.5*d+f.plotX)/2.5;i=(1.5*
-e+a)/2.5;j=(1.5*d+j)/2.5;k=(1.5*e+g)/2.5;l=(k-i)*(j-d)/(j-h)+e-k;i+=l;k+=l;i>a&&i>e?(i=s(a,e),k=2*e-i):i<a&&i<e&&(i=I(a,e),k=2*e-i);k>g&&k>e?(k=s(g,e),i=2*e-k):k<g&&k<e&&(k=I(g,e),i=2*e-k);b.rightContX=j;b.rightContY=k}c?(b=["C",f.rightContX||f.plotX,f.rightContY||f.plotY,h||d,i||e,d,e],f.rightContX=f.rightContY=null):b=["M",d,e];return b}});W.spline=F;Y.areaspline=x(Y.area);ma=G.prototype;F=ha(F,{type:"areaspline",closedStacks:!0,getSegmentPath:ma.getSegmentPath,closeSegment:ma.closeSegment,drawGraph:ma.drawGraph,
-drawLegendSymbol:ma.drawLegendSymbol});W.areaspline=F;Y.column=x(X,{borderColor:"#FFFFFF",borderWidth:1,borderRadius:0,groupPadding:0.2,marker:null,pointPadding:0.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:0.1,shadow:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},stickyTracking:!1,threshold:0});F=ha(Q,{type:"column",pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color",
-r:"borderRadius"},cropShoulder:0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){Q.prototype.init.apply(this,arguments);var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0})},getColumnMetrics:function(){var a=this,b=a.options,c=a.xAxis,d=a.yAxis,e=c.reversed,f,g={},h,i=0;b.grouping===!1?i=1:n(a.chart.series,function(b){var c=b.options,e=b.yAxis;if(b.type===a.type&&b.visible&&d.len===e.len&&d.pos===e.pos)c.stacking?(f=b.stackKey,g[f]===
-w&&(g[f]=i++),h=g[f]):c.grouping!==!1&&(h=i++),b.columnIndex=h});var c=I(N(c.transA)*(c.ordinalSlope||b.pointRange||c.closestPointRange||1),c.len),j=c*b.groupPadding,k=(c-2*j)/i,l=b.pointWidth,b=u(l)?(k-l)/2:k*b.pointPadding,l=o(l,k-2*b);return a.columnMetrics={width:l,offset:b+(j+((e?i-(a.columnIndex||0):a.columnIndex)||0)*k-c/2)*(e?-1:1)}},translate:function(){var a=this.chart,b=this.options,c=b.borderWidth,d=this.yAxis,e=this.translatedThreshold=d.getThreshold(b.threshold),f=o(b.minPointLength,
-5),b=this.getColumnMetrics(),g=b.width,h=this.barW=xa(s(g,1+2*c)),i=this.pointXOffset=b.offset,j=-(c%2?0.5:0),k=c%2?0.5:1;a.renderer.isVML&&a.inverted&&(k+=1);Q.prototype.translate.apply(this);n(this.points,function(a){var b=o(a.yBottom,e),c=I(s(-999-b,a.plotY),d.len+999+b),n=a.plotX+i,u=h,r=I(c,b),w,c=s(c,b)-r;N(c)<f&&f&&(c=f,r=t(N(r-e)>f?b-f:e-(d.translate(a.y,0,1,0,1)<=e?f:0)));a.barX=n;a.pointWidth=g;b=N(n)<0.5;u=t(n+u)+j;n=t(n)+j;u-=n;w=N(r)<0.5;c=t(r+c)+k;r=t(r)+k;c-=r;b&&(n+=1,u-=1);w&&(r-=
-1,c+=1);a.shapeType="rect";a.shapeArgs={x:n,y:r,width:u,height:c}})},getSymbol:pa,drawLegendSymbol:G.prototype.drawLegendSymbol,drawGraph:pa,drawPoints:function(){var a=this,b=a.options,c=a.chart.renderer,d;n(a.points,function(e){var f=e.plotY,g=e.graphic;if(f!==w&&!isNaN(f)&&e.y!==null)d=e.shapeArgs,g?(Wa(g),g.animate(x(d))):e.graphic=c[e.shapeType](d).attr(e.pointAttr[e.selected?"select":""]).add(a.group).shadow(b.shadow,null,b.stacking&&!b.borderRadius);else if(g)e.graphic=g.destroy()})},drawTracker:function(){var a=
-this,b=a.chart,c=b.pointer,d=a.options.cursor,e=d&&{cursor:d},f=function(c){var d=c.target,e;if(b.hoverSeries!==a)a.onMouseOver();for(;d&&!e;)e=d.point,d=d.parentNode;if(e!==w&&e!==b.hoverPoint)e.onMouseOver(c)};n(a.points,function(a){if(a.graphic)a.graphic.element.point=a;if(a.dataLabel)a.dataLabel.element.point=a});if(!a._hasTracking)n(a.trackerGroups,function(b){if(a[b]&&(a[b].addClass("highcharts-tracker").on("mouseover",f).on("mouseout",function(a){c.onTrackerMouseOut(a)}).css(e),ib))a[b].on("touchstart",
-f)}),a._hasTracking=!0},alignDataLabel:function(a,b,c,d,e){var f=this.chart,g=f.inverted,h=a.dlBox||a.shapeArgs,i=a.below||a.plotY>o(this.translatedThreshold,f.plotSizeY),j=o(c.inside,!!this.options.stacking);if(h&&(d=x(h),g&&(d={x:f.plotWidth-d.y-d.height,y:f.plotHeight-d.x-d.width,width:d.height,height:d.width}),!j))g?(d.x+=i?0:d.width,d.width=0):(d.y+=i?d.height:0,d.height=0);c.align=o(c.align,!g||j?"center":i?"right":"left");c.verticalAlign=o(c.verticalAlign,g||j?"middle":i?"top":"bottom");Q.prototype.alignDataLabel.call(this,
-a,b,c,d,e)},animate:function(a){var b=this.yAxis,c=this.options,d=this.chart.inverted,e={};if(Z)a?(e.scaleY=0.001,a=I(b.pos+b.len,s(b.pos,b.toPixels(c.threshold))),d?e.translateX=a-b.len:e.translateY=a,this.group.attr(e)):(e.scaleY=1,e[d?"translateX":"translateY"]=b.pos,this.group.animate(e,this.options.animation),this.animate=null)},remove:function(){var a=this,b=a.chart;b.hasRendered&&n(b.series,function(b){if(b.type===a.type)b.isDirty=!0});Q.prototype.remove.apply(a,arguments)}});W.column=F;Y.bar=
-x(Y.column);ma=ha(F,{type:"bar",inverted:!0});W.bar=ma;Y.scatter=x(X,{lineWidth:0,tooltip:{headerFormat:'<span style="font-size: 10px; color:{series.color}">{series.name}</span><br/>',pointFormat:"x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>",followPointer:!0},stickyTracking:!1});ma=ha(Q,{type:"scatter",sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["markerGroup"],drawTracker:F.prototype.drawTracker,setTooltipPoints:pa});W.scatter=ma;Y.pie=x(X,{borderColor:"#FFFFFF",borderWidth:1,
-center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return this.point.name}},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,states:{hover:{brightness:0.1,shadow:!1}},stickyTracking:!1,tooltip:{followPointer:!0}});X={type:"pie",isCartesian:!1,pointClass:ha(Pa,{init:function(){Pa.prototype.init.apply(this,arguments);var a=this,b;if(a.y<0)a.y=null;r(a,{visible:a.visible!==!1,name:o(a.name,"Slice")});b=function(b){a.slice(b.type===
-"select")};J(a,"select",b);J(a,"unselect",b);return a},setVisible:function(a){var b=this,c=b.series,d=c.chart,e;b.visible=b.options.visible=a=a===w?!b.visible:a;c.options.data[qa(b,c.data)]=b.options;e=a?"show":"hide";n(["graphic","dataLabel","connector","shadowGroup"],function(a){if(b[a])b[a][e]()});b.legendItem&&d.legend.colorizeItem(b,a);if(!c.isDirty&&c.options.ignoreHiddenPoint)c.isDirty=!0,d.redraw()},slice:function(a,b,c){var d=this.series;La(c,d.chart);o(b,!0);this.sliced=this.options.sliced=
-a=u(a)?a:!this.sliced;d.options.data[qa(this,d.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)}}),requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},getColor:pa,animate:function(a){var b=this,c=b.points,d=b.startAngleRad;if(!a)n(c,function(a){var c=a.graphic,a=a.shapeArgs;c&&(c.attr({r:b.center[3]/
-2,start:d,end:d}),c.animate({r:a.r,start:a.start,end:a.end},b.options.animation))}),b.animate=null},setData:function(a,b){Q.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();o(b,!0)&&this.chart.redraw()},generatePoints:function(){var a,b=0,c,d,e,f=this.options.ignoreHiddenPoint;Q.prototype.generatePoints.call(this);c=this.points;d=c.length;for(a=0;a<d;a++)e=c[a],b+=f&&!e.visible?0:e.y;this.total=b;for(a=0;a<d;a++)e=c[a],e.percentage=b>0?e.y/b*100:0,e.total=b},getCenter:function(){var a=
-this.options,b=this.chart,c=2*(a.slicedOffset||0),d,e=b.plotWidth-2*c,f=b.plotHeight-2*c,b=a.center,a=[o(b[0],"50%"),o(b[1],"50%"),a.size||"100%",a.innerSize||0],g=I(e,f),h;return Na(a,function(a,b){h=/%$/.test(a);d=b<2||b===2&&h;return(h?[e,f,g,g][b]*C(a)/100:a)+(d?c:0)})},translate:function(a){this.generatePoints();var b=0,c=this.options,d=c.slicedOffset,e=d+c.borderWidth,f,g,h,i=c.startAngle||0,j=this.startAngleRad=ya/180*(i-90),i=(this.endAngleRad=ya/180*((c.endAngle||i+360)-90))-j,k=this.points,
-l=c.dataLabels.distance,c=c.ignoreHiddenPoint,m,n=k.length,o;if(!a)this.center=a=this.getCenter();this.getX=function(b,c){h=R.asin((b-a[1])/(a[2]/2+l));return a[0]+(c?-1:1)*V(h)*(a[2]/2+l)};for(m=0;m<n;m++){o=k[m];f=j+b*i;if(!c||o.visible)b+=o.percentage/100;g=j+b*i;o.shapeType="arc";o.shapeArgs={x:a[0],y:a[1],r:a[2]/2,innerR:a[3]/2,start:t(f*1E3)/1E3,end:t(g*1E3)/1E3};h=(g+f)/2;h>0.75*i&&(h-=2*ya);o.slicedTranslation={translateX:t(V(h)*d),translateY:t(ca(h)*d)};f=V(h)*a[2]/2;g=ca(h)*a[2]/2;o.tooltipPos=
-[a[0]+f*0.7,a[1]+g*0.7];o.half=h<-ya/2||h>ya/2?1:0;o.angle=h;e=I(e,l/2);o.labelPos=[a[0]+f+V(h)*l,a[1]+g+ca(h)*l,a[0]+f+V(h)*e,a[1]+g+ca(h)*e,a[0]+f,a[1]+g,l<0?"center":o.half?"right":"left",h]}},setTooltipPoints:pa,drawGraph:null,drawPoints:function(){var a=this,b=a.chart.renderer,c,d,e=a.options.shadow,f,g;if(e&&!a.shadowGroup)a.shadowGroup=b.g("shadow").add(a.group);n(a.points,function(h){d=h.graphic;g=h.shapeArgs;f=h.shadowGroup;if(e&&!f)f=h.shadowGroup=b.g("shadow").add(a.shadowGroup);c=h.sliced?
-h.slicedTranslation:{translateX:0,translateY:0};f&&f.attr(c);d?d.animate(r(g,c)):h.graphic=d=b.arc(g).setRadialReference(a.center).attr(h.pointAttr[h.selected?"select":""]).attr({"stroke-linejoin":"round"}).attr(c).add(a.group).shadow(e,f);h.visible===!1&&h.setVisible(!1)})},sortByAngle:function(a,b){a.sort(function(a,d){return a.angle!==void 0&&(d.angle-a.angle)*b})},drawDataLabels:function(){var a=this,b=a.data,c,d=a.chart,e=a.options.dataLabels,f=o(e.connectorPadding,10),g=o(e.connectorWidth,1),
-h=d.plotWidth,d=d.plotHeight,i,j,k=o(e.softConnector,!0),l=e.distance,m=a.center,p=m[2]/2,q=m[1],u=l>0,r,w,v,x,C=[[],[]],y,z,E,H,B,D=[0,0,0,0],I=function(a,b){return b.y-a.y};if(a.visible&&(e.enabled||a._hasPointLabels)){Q.prototype.drawDataLabels.apply(a);n(b,function(a){a.dataLabel&&C[a.half].push(a)});for(H=0;!x&&b[H];)x=b[H]&&b[H].dataLabel&&(b[H].dataLabel.getBBox().height||21),H++;for(H=2;H--;){var b=[],K=[],G=C[H],J=G.length,F;a.sortByAngle(G,H-0.5);if(l>0){for(B=q-p-l;B<=q+p+l;B+=x)b.push(B);
-w=b.length;if(J>w){c=[].concat(G);c.sort(I);for(B=J;B--;)c[B].rank=B;for(B=J;B--;)G[B].rank>=w&&G.splice(B,1);J=G.length}for(B=0;B<J;B++){c=G[B];v=c.labelPos;c=9999;var O,M;for(M=0;M<w;M++)O=N(b[M]-v[1]),O<c&&(c=O,F=M);if(F<B&&b[B]!==null)F=B;else for(w<J-B+F&&b[B]!==null&&(F=w-J+B);b[F]===null;)F++;K.push({i:F,y:b[F]});b[F]=null}K.sort(I)}for(B=0;B<J;B++){c=G[B];v=c.labelPos;r=c.dataLabel;E=c.visible===!1?"hidden":"visible";c=v[1];if(l>0){if(w=K.pop(),F=w.i,z=w.y,c>z&&b[F+1]!==null||c<z&&b[F-1]!==
-null)z=c}else z=c;y=e.justify?m[0]+(H?-1:1)*(p+l):a.getX(F===0||F===b.length-1?c:z,H);r._attr={visibility:E,align:v[6]};r._pos={x:y+e.x+({left:f,right:-f}[v[6]]||0),y:z+e.y-10};r.connX=y;r.connY=z;if(this.options.size===null)w=r.width,y-w<f?D[3]=s(t(w-y+f),D[3]):y+w>h-f&&(D[1]=s(t(y+w-h+f),D[1])),z-x/2<0?D[0]=s(t(-z+x/2),D[0]):z+x/2>d&&(D[2]=s(t(z+x/2-d),D[2]))}}if(va(D)===0||this.verifyDataLabelOverflow(D))this.placeDataLabels(),u&&g&&n(this.points,function(b){i=b.connector;v=b.labelPos;if((r=b.dataLabel)&&
-r._pos)E=r._attr.visibility,y=r.connX,z=r.connY,j=k?["M",y+(v[6]==="left"?5:-5),z,"C",y,z,2*v[2]-v[4],2*v[3]-v[5],v[2],v[3],"L",v[4],v[5]]:["M",y+(v[6]==="left"?5:-5),z,"L",v[2],v[3],"L",v[4],v[5]],i?(i.animate({d:j}),i.attr("visibility",E)):b.connector=i=a.chart.renderer.path(j).attr({"stroke-width":g,stroke:e.connectorColor||b.color||"#606060",visibility:E}).add(a.group);else if(i)b.connector=i.destroy()})}},verifyDataLabelOverflow:function(a){var b=this.center,c=this.options,d=c.center,e=c=c.minSize||
-80,f;d[0]!==null?e=s(b[2]-s(a[1],a[3]),c):(e=s(b[2]-a[1]-a[3],c),b[0]+=(a[3]-a[1])/2);d[1]!==null?e=s(I(e,b[2]-s(a[0],a[2])),c):(e=s(I(e,b[2]-a[0]-a[2]),c),b[1]+=(a[0]-a[2])/2);e<b[2]?(b[2]=e,this.translate(b),n(this.points,function(a){if(a.dataLabel)a.dataLabel._pos=null}),this.drawDataLabels()):f=!0;return f},placeDataLabels:function(){n(this.points,function(a){var a=a.dataLabel,b;if(a)(b=a._pos)?(a.attr(a._attr),a[a.moved?"animate":"attr"](b),a.moved=!0):a&&a.attr({y:-999})})},alignDataLabel:pa,
-drawTracker:F.prototype.drawTracker,drawLegendSymbol:G.prototype.drawLegendSymbol,getSymbol:pa};X=ha(Q,X);W.pie=X;r(Highcharts,{Axis:db,Chart:yb,Color:ra,Legend:eb,Pointer:xb,Point:Pa,Tick:Ma,Tooltip:wb,Renderer:Va,Series:Q,SVGElement:wa,SVGRenderer:Ha,arrayMin:Ja,arrayMax:va,charts:Ga,dateFormat:Xa,format:Ca,pathAnim:Ab,getOptions:function(){return M},hasBidiBug:Ub,isTouchDevice:Ob,numberFormat:Aa,seriesTypes:W,setOptions:function(a){M=x(M,a);Lb();return M},addEvent:J,removeEvent:aa,createElement:U,
-discardElement:Ta,css:K,each:n,extend:r,map:Na,merge:x,pick:o,splat:ja,extendClass:ha,pInt:C,wrap:mb,svg:Z,canvas:$,vml:!Z&&!$,product:"Highcharts",version:"3.0.6"})})();
diff --git a/server/public/ueditor/third-party/highcharts/highcharts.src.js b/server/public/ueditor/third-party/highcharts/highcharts.src.js
deleted file mode 100644
index 1a9893a..0000000
--- a/server/public/ueditor/third-party/highcharts/highcharts.src.js
+++ /dev/null
@@ -1,16974 +0,0 @@
-// ==ClosureCompiler==
-// @compilation_level SIMPLE_OPTIMIZATIONS
-
-/**
- * @license Highcharts JS v3.0.6 (2013-10-04)
- *
- * (c) 2009-2013 Torstein H酶nsi
- *
- * License: www.highcharts.com/license
- */
-
-// JSLint options:
-/*global Highcharts, document, window, navigator, setInterval, clearInterval, clearTimeout, setTimeout, location, jQuery, $, console, each, grep */
-
-(function () {
-// encapsulated variables
-var UNDEFINED,
-	doc = document,
-	win = window,
-	math = Math,
-	mathRound = math.round,
-	mathFloor = math.floor,
-	mathCeil = math.ceil,
-	mathMax = math.max,
-	mathMin = math.min,
-	mathAbs = math.abs,
-	mathCos = math.cos,
-	mathSin = math.sin,
-	mathPI = math.PI,
-	deg2rad = mathPI * 2 / 360,
-
-
-	// some variables
-	userAgent = navigator.userAgent,
-	isOpera = win.opera,
-	isIE = /msie/i.test(userAgent) && !isOpera,
-	docMode8 = doc.documentMode === 8,
-	isWebKit = /AppleWebKit/.test(userAgent),
-	isFirefox = /Firefox/.test(userAgent),
-	isTouchDevice = /(Mobile|Android|Windows Phone)/.test(userAgent),
-	SVG_NS = 'http://www.w3.org/2000/svg',
-	hasSVG = !!doc.createElementNS && !!doc.createElementNS(SVG_NS, 'svg').createSVGRect,
-	hasBidiBug = isFirefox && parseInt(userAgent.split('Firefox/')[1], 10) < 4, // issue #38
-	useCanVG = !hasSVG && !isIE && !!doc.createElement('canvas').getContext,
-	Renderer,
-	hasTouch = doc.documentElement.ontouchstart !== UNDEFINED,
-	symbolSizes = {},
-	idCounter = 0,
-	garbageBin,
-	defaultOptions,
-	dateFormat, // function
-	globalAnimation,
-	pathAnim,
-	timeUnits,
-	noop = function () {},
-	charts = [],
-	PRODUCT = 'Highcharts',
-	VERSION = '3.0.6',
-
-	// some constants for frequently used strings
-	DIV = 'div',
-	ABSOLUTE = 'absolute',
-	RELATIVE = 'relative',
-	HIDDEN = 'hidden',
-	PREFIX = 'highcharts-',
-	VISIBLE = 'visible',
-	PX = 'px',
-	NONE = 'none',
-	M = 'M',
-	L = 'L',
-	/*
-	 * Empirical lowest possible opacities for TRACKER_FILL
-	 * IE6: 0.002
-	 * IE7: 0.002
-	 * IE8: 0.002
-	 * IE9: 0.00000000001 (unlimited)
-	 * IE10: 0.0001 (exporting only)
-	 * FF: 0.00000000001 (unlimited)
-	 * Chrome: 0.000001
-	 * Safari: 0.000001
-	 * Opera: 0.00000000001 (unlimited)
-	 */
-	TRACKER_FILL = 'rgba(192,192,192,' + (hasSVG ? 0.0001 : 0.002) + ')', // invisible but clickable
-	//TRACKER_FILL = 'rgba(192,192,192,0.5)',
-	NORMAL_STATE = '',
-	HOVER_STATE = 'hover',
-	SELECT_STATE = 'select',
-	MILLISECOND = 'millisecond',
-	SECOND = 'second',
-	MINUTE = 'minute',
-	HOUR = 'hour',
-	DAY = 'day',
-	WEEK = 'week',
-	MONTH = 'month',
-	YEAR = 'year',
-
-	// constants for attributes
-	LINEAR_GRADIENT = 'linearGradient',
-	STOPS = 'stops',
-	STROKE_WIDTH = 'stroke-width',
-
-	// time methods, changed based on whether or not UTC is used
-	makeTime,
-	getMinutes,
-	getHours,
-	getDay,
-	getDate,
-	getMonth,
-	getFullYear,
-	setMinutes,
-	setHours,
-	setDate,
-	setMonth,
-	setFullYear,
-
-
-	// lookup over the types and the associated classes
-	seriesTypes = {};
-
-// The Highcharts namespace
-win.Highcharts = win.Highcharts ? error(16, true) : {};
-
-/**
- * Extend an object with the members of another
- * @param {Object} a The object to be extended
- * @param {Object} b The object to add to the first one
- */
-function extend(a, b) {
-	var n;
-	if (!a) {
-		a = {};
-	}
-	for (n in b) {
-		a[n] = b[n];
-	}
-	return a;
-}
-	
-/**
- * Deep merge two or more objects and return a third object.
- * Previously this function redirected to jQuery.extend(true), but this had two limitations.
- * First, it deep merged arrays, which lead to workarounds in Highcharts. Second,
- * it copied properties from extended prototypes. 
- */
-function merge() {
-	var i,
-		len = arguments.length,
-		ret = {},
-		doCopy = function (copy, original) {
-			var value, key;
-
-			// An object is replacing a primitive
-			if (typeof copy !== 'object') {
-				copy = {};
-			}
-
-			for (key in original) {
-				if (original.hasOwnProperty(key)) {
-					value = original[key];
-
-					// Copy the contents of objects, but not arrays or DOM nodes
-					if (value && typeof value === 'object' && Object.prototype.toString.call(value) !== '[object Array]'
-							&& typeof value.nodeType !== 'number') {
-						copy[key] = doCopy(copy[key] || {}, value);
-				
-					// Primitives and arrays are copied over directly
-					} else {
-						copy[key] = original[key];
-					}
-				}
-			}
-			return copy;
-		};
-
-	// For each argument, extend the return
-	for (i = 0; i < len; i++) {
-		ret = doCopy(ret, arguments[i]);
-	}
-
-	return ret;
-}
-
-/**
- * Take an array and turn into a hash with even number arguments as keys and odd numbers as
- * values. Allows creating constants for commonly used style properties, attributes etc.
- * Avoid it in performance critical situations like looping
- */
-function hash() {
-	var i = 0,
-		args = arguments,
-		length = args.length,
-		obj = {};
-	for (; i < length; i++) {
-		obj[args[i++]] = args[i];
-	}
-	return obj;
-}
-
-/**
- * Shortcut for parseInt
- * @param {Object} s
- * @param {Number} mag Magnitude
- */
-function pInt(s, mag) {
-	return parseInt(s, mag || 10);
-}
-
-/**
- * Check for string
- * @param {Object} s
- */
-function isString(s) {
-	return typeof s === 'string';
-}
-
-/**
- * Check for object
- * @param {Object} obj
- */
-function isObject(obj) {
-	return typeof obj === 'object';
-}
-
-/**
- * Check for array
- * @param {Object} obj
- */
-function isArray(obj) {
-	return Object.prototype.toString.call(obj) === '[object Array]';
-}
-
-/**
- * Check for number
- * @param {Object} n
- */
-function isNumber(n) {
-	return typeof n === 'number';
-}
-
-function log2lin(num) {
-	return math.log(num) / math.LN10;
-}
-function lin2log(num) {
-	return math.pow(10, num);
-}
-
-/**
- * Remove last occurence of an item from an array
- * @param {Array} arr
- * @param {Mixed} item
- */
-function erase(arr, item) {
-	var i = arr.length;
-	while (i--) {
-		if (arr[i] === item) {
-			arr.splice(i, 1);
-			break;
-		}
-	}
-	//return arr;
-}
-
-/**
- * Returns true if the object is not null or undefined. Like MooTools' $.defined.
- * @param {Object} obj
- */
-function defined(obj) {
-	return obj !== UNDEFINED && obj !== null;
-}
-
-/**
- * Set or get an attribute or an object of attributes. Can't use jQuery attr because
- * it attempts to set expando properties on the SVG element, which is not allowed.
- *
- * @param {Object} elem The DOM element to receive the attribute(s)
- * @param {String|Object} prop The property or an abject of key-value pairs
- * @param {String} value The value if a single property is set
- */
-function attr(elem, prop, value) {
-	var key,
-		setAttribute = 'setAttribute',
-		ret;
-
-	// if the prop is a string
-	if (isString(prop)) {
-		// set the value
-		if (defined(value)) {
-
-			elem[setAttribute](prop, value);
-
-		// get the value
-		} else if (elem && elem.getAttribute) { // elem not defined when printing pie demo...
-			ret = elem.getAttribute(prop);
-		}
-
-	// else if prop is defined, it is a hash of key/value pairs
-	} else if (defined(prop) && isObject(prop)) {
-		for (key in prop) {
-			elem[setAttribute](key, prop[key]);
-		}
-	}
-	return ret;
-}
-/**
- * Check if an element is an array, and if not, make it into an array. Like
- * MooTools' $.splat.
- */
-function splat(obj) {
-	return isArray(obj) ? obj : [obj];
-}
-
-
-/**
- * Return the first value that is defined. Like MooTools' $.pick.
- */
-function pick() {
-	var args = arguments,
-		i,
-		arg,
-		length = args.length;
-	for (i = 0; i < length; i++) {
-		arg = args[i];
-		if (typeof arg !== 'undefined' && arg !== null) {
-			return arg;
-		}
-	}
-}
-
-/**
- * Set CSS on a given element
- * @param {Object} el
- * @param {Object} styles Style object with camel case property names
- */
-function css(el, styles) {
-	if (isIE) {
-		if (styles && styles.opacity !== UNDEFINED) {
-			styles.filter = 'alpha(opacity=' + (styles.opacity * 100) + ')';
-		}
-	}
-	extend(el.style, styles);
-}
-
-/**
- * Utility function to create element with attributes and styles
- * @param {Object} tag
- * @param {Object} attribs
- * @param {Object} styles
- * @param {Object} parent
- * @param {Object} nopad
- */
-function createElement(tag, attribs, styles, parent, nopad) {
-	var el = doc.createElement(tag);
-	if (attribs) {
-		extend(el, attribs);
-	}
-	if (nopad) {
-		css(el, {padding: 0, border: NONE, margin: 0});
-	}
-	if (styles) {
-		css(el, styles);
-	}
-	if (parent) {
-		parent.appendChild(el);
-	}
-	return el;
-}
-
-/**
- * Extend a prototyped class by new members
- * @param {Object} parent
- * @param {Object} members
- */
-function extendClass(parent, members) {
-	var object = function () {};
-	object.prototype = new parent();
-	extend(object.prototype, members);
-	return object;
-}
-
-/**
- * Format a number and return a string based on input settings
- * @param {Number} number The input number to format
- * @param {Number} decimals The amount of decimals
- * @param {String} decPoint The decimal point, defaults to the one given in the lang options
- * @param {String} thousandsSep The thousands separator, defaults to the one given in the lang options
- */
-function numberFormat(number, decimals, decPoint, thousandsSep) {
-	var lang = defaultOptions.lang,
-		// http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_number_format/
-		n = +number || 0,
-		c = decimals === -1 ?
-			(n.toString().split('.')[1] || '').length : // preserve decimals
-			(isNaN(decimals = mathAbs(decimals)) ? 2 : decimals),
-		d = decPoint === undefined ? lang.decimalPoint : decPoint,
-		t = thousandsSep === undefined ? lang.thousandsSep : thousandsSep,
-		s = n < 0 ? "-" : "",
-		i = String(pInt(n = mathAbs(n).toFixed(c))),
-		j = i.length > 3 ? i.length % 3 : 0;
-
-	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) +
-		(c ? d + mathAbs(n - i).toFixed(c).slice(2) : "");
-}
-
-/**
- * Pad a string to a given length by adding 0 to the beginning
- * @param {Number} number
- * @param {Number} length
- */
-function pad(number, length) {
-	// Create an array of the remaining length +1 and join it with 0's
-	return new Array((length || 2) + 1 - String(number).length).join(0) + number;
-}
-
-/**
- * Wrap a method with extended functionality, preserving the original function
- * @param {Object} obj The context object that the method belongs to 
- * @param {String} method The name of the method to extend
- * @param {Function} func A wrapper function callback. This function is called with the same arguments
- * as the original function, except that the original function is unshifted and passed as the first 
- * argument. 
- */
-function wrap(obj, method, func) {
-	var proceed = obj[method];
-	obj[method] = function () {
-		var args = Array.prototype.slice.call(arguments);
-		args.unshift(proceed);
-		return func.apply(this, args);
-	};
-}
-
-/**
- * Based on http://www.php.net/manual/en/function.strftime.php
- * @param {String} format
- * @param {Number} timestamp
- * @param {Boolean} capitalize
- */
-dateFormat = function (format, timestamp, capitalize) {
-	if (!defined(timestamp) || isNaN(timestamp)) {
-		return 'Invalid date';
-	}
-	format = pick(format, '%Y-%m-%d %H:%M:%S');
-
-	var date = new Date(timestamp),
-		key, // used in for constuct below
-		// get the basic time values
-		hours = date[getHours](),
-		day = date[getDay](),
-		dayOfMonth = date[getDate](),
-		month = date[getMonth](),
-		fullYear = date[getFullYear](),
-		lang = defaultOptions.lang,
-		langWeekdays = lang.weekdays,
-
-		// List all format keys. Custom formats can be added from the outside. 
-		replacements = extend({
-
-			// Day
-			'a': langWeekdays[day].substr(0, 3), // Short weekday, like 'Mon'
-			'A': langWeekdays[day], // Long weekday, like 'Monday'
-			'd': pad(dayOfMonth), // Two digit day of the month, 01 to 31
-			'e': dayOfMonth, // Day of the month, 1 through 31
-
-			// Week (none implemented)
-			//'W': weekNumber(),
-
-			// Month
-			'b': lang.shortMonths[month], // Short month, like 'Jan'
-			'B': lang.months[month], // Long month, like 'January'
-			'm': pad(month + 1), // Two digit month number, 01 through 12
-
-			// Year
-			'y': fullYear.toString().substr(2, 2), // Two digits year, like 09 for 2009
-			'Y': fullYear, // Four digits year, like 2009
-
-			// Time
-			'H': pad(hours), // Two digits hours in 24h format, 00 through 23
-			'I': pad((hours % 12) || 12), // Two digits hours in 12h format, 00 through 11
-			'l': (hours % 12) || 12, // Hours in 12h format, 1 through 12
-			'M': pad(date[getMinutes]()), // Two digits minutes, 00 through 59
-			'p': hours < 12 ? 'AM' : 'PM', // Upper case AM or PM
-			'P': hours < 12 ? 'am' : 'pm', // Lower case AM or PM
-			'S': pad(date.getSeconds()), // Two digits seconds, 00 through  59
-			'L': pad(mathRound(timestamp % 1000), 3) // Milliseconds (naming from Ruby)
-		}, Highcharts.dateFormats);
-
-
-	// do the replaces
-	for (key in replacements) {
-		while (format.indexOf('%' + key) !== -1) { // regex would do it in one line, but this is faster
-			format = format.replace('%' + key, typeof replacements[key] === 'function' ? replacements[key](timestamp) : replacements[key]);
-		}
-	}
-
-	// Optionally capitalize the string and return
-	return capitalize ? format.substr(0, 1).toUpperCase() + format.substr(1) : format;
-};
-
-/** 
- * Format a single variable. Similar to sprintf, without the % prefix.
- */
-function formatSingle(format, val) {
-	var floatRegex = /f$/,
-		decRegex = /\.([0-9])/,
-		lang = defaultOptions.lang,
-		decimals;
-
-	if (floatRegex.test(format)) { // float
-		decimals = format.match(decRegex);
-		decimals = decimals ? decimals[1] : -1;
-		val = numberFormat(
-			val,
-			decimals,
-			lang.decimalPoint,
-			format.indexOf(',') > -1 ? lang.thousandsSep : ''
-		);
-	} else {
-		val = dateFormat(format, val);
-	}
-	return val;
-}
-
-/**
- * Format a string according to a subset of the rules of Python's String.format method.
- */
-function format(str, ctx) {
-	var splitter = '{',
-		isInside = false,
-		segment,
-		valueAndFormat,
-		path,
-		i,
-		len,
-		ret = [],
-		val,
-		index;
-	
-	while ((index = str.indexOf(splitter)) !== -1) {
-		
-		segment = str.slice(0, index);
-		if (isInside) { // we're on the closing bracket looking back
-			
-			valueAndFormat = segment.split(':');
-			path = valueAndFormat.shift().split('.'); // get first and leave format
-			len = path.length;
-			val = ctx;
-
-			// Assign deeper paths
-			for (i = 0; i < len; i++) {
-				val = val[path[i]];
-			}
-
-			// Format the replacement
-			if (valueAndFormat.length) {
-				val = formatSingle(valueAndFormat.join(':'), val);
-			}
-
-			// Push the result and advance the cursor
-			ret.push(val);
-			
-		} else {
-			ret.push(segment);
-			
-		}
-		str = str.slice(index + 1); // the rest
-		isInside = !isInside; // toggle
-		splitter = isInside ? '}' : '{'; // now look for next matching bracket
-	}
-	ret.push(str);
-	return ret.join('');
-}
-
-/**
- * Get the magnitude of a number
- */
-function getMagnitude(num) {
-	return math.pow(10, mathFloor(math.log(num) / math.LN10));
-}
-
-/**
- * Take an interval and normalize it to multiples of 1, 2, 2.5 and 5
- * @param {Number} interval
- * @param {Array} multiples
- * @param {Number} magnitude
- * @param {Object} options
- */
-function normalizeTickInterval(interval, multiples, magnitude, options) {
-	var normalized, i;
-
-	// round to a tenfold of 1, 2, 2.5 or 5
-	magnitude = pick(magnitude, 1);
-	normalized = interval / magnitude;
-
-	// multiples for a linear scale
-	if (!multiples) {
-		multiples = [1, 2, 2.5, 5, 10];
-
-		// the allowDecimals option
-		if (options && options.allowDecimals === false) {
-			if (magnitude === 1) {
-				multiples = [1, 2, 5, 10];
-			} else if (magnitude <= 0.1) {
-				multiples = [1 / magnitude];
-			}
-		}
-	}
-
-	// normalize the interval to the nearest multiple
-	for (i = 0; i < multiples.length; i++) {
-		interval = multiples[i];
-		if (normalized <= (multiples[i] + (multiples[i + 1] || multiples[i])) / 2) {
-			break;
-		}
-	}
-
-	// multiply back to the correct magnitude
-	interval *= magnitude;
-
-	return interval;
-}
-
-/**
- * Get a normalized tick interval for dates. Returns a configuration object with
- * unit range (interval), count and name. Used to prepare data for getTimeTicks. 
- * Previously this logic was part of getTimeTicks, but as getTimeTicks now runs
- * of segments in stock charts, the normalizing logic was extracted in order to 
- * prevent it for running over again for each segment having the same interval. 
- * #662, #697.
- */
-function normalizeTimeTickInterval(tickInterval, unitsOption) {
-	var units = unitsOption || [[
-				MILLISECOND, // unit name
-				[1, 2, 5, 10, 20, 25, 50, 100, 200, 500] // allowed multiples
-			], [
-				SECOND,
-				[1, 2, 5, 10, 15, 30]
-			], [
-				MINUTE,
-				[1, 2, 5, 10, 15, 30]
-			], [
-				HOUR,
-				[1, 2, 3, 4, 6, 8, 12]
-			], [
-				DAY,
-				[1, 2]
-			], [
-				WEEK,
-				[1, 2]
-			], [
-				MONTH,
-				[1, 2, 3, 4, 6]
-			], [
-				YEAR,
-				null
-			]],
-		unit = units[units.length - 1], // default unit is years
-		interval = timeUnits[unit[0]],
-		multiples = unit[1],
-		count,
-		i;
-		
-	// loop through the units to find the one that best fits the tickInterval
-	for (i = 0; i < units.length; i++) {
-		unit = units[i];
-		interval = timeUnits[unit[0]];
-		multiples = unit[1];
-
-
-		if (units[i + 1]) {
-			// lessThan is in the middle between the highest multiple and the next unit.
-			var lessThan = (interval * multiples[multiples.length - 1] +
-						timeUnits[units[i + 1][0]]) / 2;
-
-			// break and keep the current unit
-			if (tickInterval <= lessThan) {
-				break;
-			}
-		}
-	}
-
-	// prevent 2.5 years intervals, though 25, 250 etc. are allowed
-	if (interval === timeUnits[YEAR] && tickInterval < 5 * interval) {
-		multiples = [1, 2, 5];
-	}
-
-	// get the count
-	count = normalizeTickInterval(
-		tickInterval / interval, 
-		multiples,
-		unit[0] === YEAR ? getMagnitude(tickInterval / interval) : 1 // #1913
-	);
-	
-	return {
-		unitRange: interval,
-		count: count,
-		unitName: unit[0]
-	};
-}
-
-/**
- * Set the tick positions to a time unit that makes sense, for example
- * on the first of each month or on every Monday. Return an array
- * with the time positions. Used in datetime axes as well as for grouping
- * data on a datetime axis.
- *
- * @param {Object} normalizedInterval The interval in axis values (ms) and the count
- * @param {Number} min The minimum in axis values
- * @param {Number} max The maximum in axis values
- * @param {Number} startOfWeek
- */
-function getTimeTicks(normalizedInterval, min, max, startOfWeek) {
-	var tickPositions = [],
-		i,
-		higherRanks = {},
-		useUTC = defaultOptions.global.useUTC,
-		minYear, // used in months and years as a basis for Date.UTC()
-		minDate = new Date(min),
-		interval = normalizedInterval.unitRange,
-		count = normalizedInterval.count;
-
-	if (defined(min)) { // #1300
-		if (interval >= timeUnits[SECOND]) { // second
-			minDate.setMilliseconds(0);
-			minDate.setSeconds(interval >= timeUnits[MINUTE] ? 0 :
-				count * mathFloor(minDate.getSeconds() / count));
-		}
-	
-		if (interval >= timeUnits[MINUTE]) { // minute
-			minDate[setMinutes](interval >= timeUnits[HOUR] ? 0 :
-				count * mathFloor(minDate[getMinutes]() / count));
-		}
-	
-		if (interval >= timeUnits[HOUR]) { // hour
-			minDate[setHours](interval >= timeUnits[DAY] ? 0 :
-				count * mathFloor(minDate[getHours]() / count));
-		}
-	
-		if (interval >= timeUnits[DAY]) { // day
-			minDate[setDate](interval >= timeUnits[MONTH] ? 1 :
-				count * mathFloor(minDate[getDate]() / count));
-		}
-	
-		if (interval >= timeUnits[MONTH]) { // month
-			minDate[setMonth](interval >= timeUnits[YEAR] ? 0 :
-				count * mathFloor(minDate[getMonth]() / count));
-			minYear = minDate[getFullYear]();
-		}
-	
-		if (interval >= timeUnits[YEAR]) { // year
-			minYear -= minYear % count;
-			minDate[setFullYear](minYear);
-		}
-	
-		// week is a special case that runs outside the hierarchy
-		if (interval === timeUnits[WEEK]) {
-			// get start of current week, independent of count
-			minDate[setDate](minDate[getDate]() - minDate[getDay]() +
-				pick(startOfWeek, 1));
-		}
-	
-	
-		// get tick positions
-		i = 1;
-		minYear = minDate[getFullYear]();
-		var time = minDate.getTime(),
-			minMonth = minDate[getMonth](),
-			minDateDate = minDate[getDate](),
-			timezoneOffset = useUTC ? 
-				0 : 
-				(24 * 3600 * 1000 + minDate.getTimezoneOffset() * 60 * 1000) % (24 * 3600 * 1000); // #950
-	
-		// iterate and add tick positions at appropriate values
-		while (time < max) {
-			tickPositions.push(time);
-	
-			// if the interval is years, use Date.UTC to increase years
-			if (interval === timeUnits[YEAR]) {
-				time = makeTime(minYear + i * count, 0);
-	
-			// if the interval is months, use Date.UTC to increase months
-			} else if (interval === timeUnits[MONTH]) {
-				time = makeTime(minYear, minMonth + i * count);
-	
-			// if we're using global time, the interval is not fixed as it jumps
-			// one hour at the DST crossover
-			} else if (!useUTC && (interval === timeUnits[DAY] || interval === timeUnits[WEEK])) {
-				time = makeTime(minYear, minMonth, minDateDate +
-					i * count * (interval === timeUnits[DAY] ? 1 : 7));
-	
-			// else, the interval is fixed and we use simple addition
-			} else {
-				time += interval * count;
-			}
-	
-			i++;
-		}
-	
-		// push the last time
-		tickPositions.push(time);
-
-
-		// mark new days if the time is dividible by day (#1649, #1760)
-		each(grep(tickPositions, function (time) {
-			return interval <= timeUnits[HOUR] && time % timeUnits[DAY] === timezoneOffset;
-		}), function (time) {
-			higherRanks[time] = DAY;
-		});
-	}
-
-
-	// record information on the chosen unit - for dynamic label formatter
-	tickPositions.info = extend(normalizedInterval, {
-		higherRanks: higherRanks,
-		totalRange: interval * count
-	});
-
-	return tickPositions;
-}
-
-/**
- * Helper class that contains variuos counters that are local to the chart.
- */
-function ChartCounters() {
-	this.color = 0;
-	this.symbol = 0;
-}
-
-ChartCounters.prototype =  {
-	/**
-	 * Wraps the color counter if it reaches the specified length.
-	 */
-	wrapColor: function (length) {
-		if (this.color >= length) {
-			this.color = 0;
-		}
-	},
-
-	/**
-	 * Wraps the symbol counter if it reaches the specified length.
-	 */
-	wrapSymbol: function (length) {
-		if (this.symbol >= length) {
-			this.symbol = 0;
-		}
-	}
-};
-
-
-/**
- * Utility method that sorts an object array and keeping the order of equal items.
- * ECMA script standard does not specify the behaviour when items are equal.
- */
-function stableSort(arr, sortFunction) {
-	var length = arr.length,
-		sortValue,
-		i;
-
-	// Add index to each item
-	for (i = 0; i < length; i++) {
-		arr[i].ss_i = i; // stable sort index
-	}
-
-	arr.sort(function (a, b) {
-		sortValue = sortFunction(a, b);
-		return sortValue === 0 ? a.ss_i - b.ss_i : sortValue;
-	});
-
-	// Remove index from items
-	for (i = 0; i < length; i++) {
-		delete arr[i].ss_i; // stable sort index
-	}
-}
-
-/**
- * Non-recursive method to find the lowest member of an array. Math.min raises a maximum
- * call stack size exceeded error in Chrome when trying to apply more than 150.000 points. This
- * method is slightly slower, but safe.
- */
-function arrayMin(data) {
-	var i = data.length,
-		min = data[0];
-
-	while (i--) {
-		if (data[i] < min) {
-			min = data[i];
-		}
-	}
-	return min;
-}
-
-/**
- * Non-recursive method to find the lowest member of an array. Math.min raises a maximum
- * call stack size exceeded error in Chrome when trying to apply more than 150.000 points. This
- * method is slightly slower, but safe.
- */
-function arrayMax(data) {
-	var i = data.length,
-		max = data[0];
-
-	while (i--) {
-		if (data[i] > max) {
-			max = data[i];
-		}
-	}
-	return max;
-}
-
-/**
- * Utility method that destroys any SVGElement or VMLElement that are properties on the given object.
- * It loops all properties and invokes destroy if there is a destroy method. The property is
- * then delete'ed.
- * @param {Object} The object to destroy properties on
- * @param {Object} Exception, do not destroy this property, only delete it.
- */
-function destroyObjectProperties(obj, except) {
-	var n;
-	for (n in obj) {
-		// If the object is non-null and destroy is defined
-		if (obj[n] && obj[n] !== except && obj[n].destroy) {
-			// Invoke the destroy
-			obj[n].destroy();
-		}
-
-		// Delete the property from the object.
-		delete obj[n];
-	}
-}
-
-
-/**
- * Discard an element by moving it to the bin and delete
- * @param {Object} The HTML node to discard
- */
-function discardElement(element) {
-	// create a garbage bin element, not part of the DOM
-	if (!garbageBin) {
-		garbageBin = createElement(DIV);
-	}
-
-	// move the node and empty bin
-	if (element) {
-		garbageBin.appendChild(element);
-	}
-	garbageBin.innerHTML = '';
-}
-
-/**
- * Provide error messages for debugging, with links to online explanation 
- */
-function error(code, stop) {
-	var msg = 'Highcharts error #' + code + ': www.highcharts.com/errors/' + code;
-	if (stop) {
-		throw msg;
-	} else if (win.console) {
-		console.log(msg);
-	}
-}
-
-/**
- * Fix JS round off float errors
- * @param {Number} num
- */
-function correctFloat(num) {
-	return parseFloat(
-		num.toPrecision(14)
-	);
-}
-
-/**
- * Set the global animation to either a given value, or fall back to the
- * given chart's animation option
- * @param {Object} animation
- * @param {Object} chart
- */
-function setAnimation(animation, chart) {
-	globalAnimation = pick(animation, chart.animation);
-}
-
-/**
- * The time unit lookup
- */
-/*jslint white: true*/
-timeUnits = hash(
-	MILLISECOND, 1,
-	SECOND, 1000,
-	MINUTE, 60000,
-	HOUR, 3600000,
-	DAY, 24 * 3600000,
-	WEEK, 7 * 24 * 3600000,
-	MONTH, 31 * 24 * 3600000,
-	YEAR, 31556952000
-);
-/*jslint white: false*/
-/**
- * Path interpolation algorithm used across adapters
- */
-pathAnim = {
-	/**
-	 * Prepare start and end values so that the path can be animated one to one
-	 */
-	init: function (elem, fromD, toD) {
-		fromD = fromD || '';
-		var shift = elem.shift,
-			bezier = fromD.indexOf('C') > -1,
-			numParams = bezier ? 7 : 3,
-			endLength,
-			slice,
-			i,
-			start = fromD.split(' '),
-			end = [].concat(toD), // copy
-			startBaseLine,
-			endBaseLine,
-			sixify = function (arr) { // in splines make move points have six parameters like bezier curves
-				i = arr.length;
-				while (i--) {
-					if (arr[i] === M) {
-						arr.splice(i + 1, 0, arr[i + 1], arr[i + 2], arr[i + 1], arr[i + 2]);
-					}
-				}
-			};
-
-		if (bezier) {
-			sixify(start);
-			sixify(end);
-		}
-
-		// pull out the base lines before padding
-		if (elem.isArea) {
-			startBaseLine = start.splice(start.length - 6, 6);
-			endBaseLine = end.splice(end.length - 6, 6);
-		}
-
-		// if shifting points, prepend a dummy point to the end path
-		if (shift <= end.length / numParams && start.length === end.length) {
-			while (shift--) {
-				end = [].concat(end).splice(0, numParams).concat(end);
-			}
-		}
-		elem.shift = 0; // reset for following animations
-
-		// copy and append last point until the length matches the end length
-		if (start.length) {
-			endLength = end.length;
-			while (start.length < endLength) {
-
-				//bezier && sixify(start);
-				slice = [].concat(start).splice(start.length - numParams, numParams);
-				if (bezier) { // disable first control point
-					slice[numParams - 6] = slice[numParams - 2];
-					slice[numParams - 5] = slice[numParams - 1];
-				}
-				start = start.concat(slice);
-			}
-		}
-
-		if (startBaseLine) { // append the base lines for areas
-			start = start.concat(startBaseLine);
-			end = end.concat(endBaseLine);
-		}
-		return [start, end];
-	},
-
-	/**
-	 * Interpolate each value of the path and return the array
-	 */
-	step: function (start, end, pos, complete) {
-		var ret = [],
-			i = start.length,
-			startVal;
-
-		if (pos === 1) { // land on the final path without adjustment points appended in the ends
-			ret = complete;
-
-		} else if (i === end.length && pos < 1) {
-			while (i--) {
-				startVal = parseFloat(start[i]);
-				ret[i] =
-					isNaN(startVal) ? // a letter instruction like M or L
-						start[i] :
-						pos * (parseFloat(end[i] - startVal)) + startVal;
-
-			}
-		} else { // if animation is finished or length not matching, land on right value
-			ret = end;
-		}
-		return ret;
-	}
-};
-
-(function ($) {
-	/**
-	 * The default HighchartsAdapter for jQuery
-	 */
-	win.HighchartsAdapter = win.HighchartsAdapter || ($ && {
-		
-		/**
-		 * Initialize the adapter by applying some extensions to jQuery
-		 */
-		init: function (pathAnim) {
-			
-			// extend the animate function to allow SVG animations
-			var Fx = $.fx,
-				Step = Fx.step,
-				dSetter,
-				Tween = $.Tween,
-				propHooks = Tween && Tween.propHooks,
-				opacityHook = $.cssHooks.opacity;
-			
-			/*jslint unparam: true*//* allow unused param x in this function */
-			$.extend($.easing, {
-				easeOutQuad: function (x, t, b, c, d) {
-					return -c * (t /= d) * (t - 2) + b;
-				}
-			});
-			/*jslint unparam: false*/
-		
-			// extend some methods to check for elem.attr, which means it is a Highcharts SVG object
-			$.each(['cur', '_default', 'width', 'height', 'opacity'], function (i, fn) {
-				var obj = Step,
-					base,
-					elem;
-					
-				// Handle different parent objects
-				if (fn === 'cur') {
-					obj = Fx.prototype; // 'cur', the getter, relates to Fx.prototype
-				
-				} else if (fn === '_default' && Tween) { // jQuery 1.8 model
-					obj = propHooks[fn];
-					fn = 'set';
-				}
-		
-				// Overwrite the method
-				base = obj[fn];
-				if (base) { // step.width and step.height don't exist in jQuery < 1.7
-		
-					// create the extended function replacement
-					obj[fn] = function (fx) {
-		
-						// Fx.prototype.cur does not use fx argument
-						fx = i ? fx : this;
-
-						// Don't run animations on textual properties like align (#1821)
-						if (fx.prop === 'align') {
-							return;
-						}
-		
-						// shortcut
-						elem = fx.elem;
-		
-						// Fx.prototype.cur returns the current value. The other ones are setters
-						// and returning a value has no effect.
-						return elem.attr ? // is SVG element wrapper
-							elem.attr(fx.prop, fn === 'cur' ? UNDEFINED : fx.now) : // apply the SVG wrapper's method
-							base.apply(this, arguments); // use jQuery's built-in method
-					};
-				}
-			});
-
-			// Extend the opacity getter, needed for fading opacity with IE9 and jQuery 1.10+
-			wrap(opacityHook, 'get', function (proceed, elem, computed) {
-				return elem.attr ? (elem.opacity || 0) : proceed.call(this, elem, computed);
-			});
-			
-			
-			// Define the setter function for d (path definitions)
-			dSetter = function (fx) {
-				var elem = fx.elem,
-					ends;
-		
-				// Normally start and end should be set in state == 0, but sometimes,
-				// for reasons unknown, this doesn't happen. Perhaps state == 0 is skipped
-				// in these cases
-				if (!fx.started) {
-					ends = pathAnim.init(elem, elem.d, elem.toD);
-					fx.start = ends[0];
-					fx.end = ends[1];
-					fx.started = true;
-				}
-		
-		
-				// interpolate each value of the path
-				elem.attr('d', pathAnim.step(fx.start, fx.end, fx.pos, elem.toD));
-			};
-			
-			// jQuery 1.8 style
-			if (Tween) {
-				propHooks.d = {
-					set: dSetter
-				};
-			// pre 1.8
-			} else {
-				// animate paths
-				Step.d = dSetter;
-			}
-			
-			/**
-			 * Utility for iterating over an array. Parameters are reversed compared to jQuery.
-			 * @param {Array} arr
-			 * @param {Function} fn
-			 */
-			this.each = Array.prototype.forEach ?
-				function (arr, fn) { // modern browsers
-					return Array.prototype.forEach.call(arr, fn);
-					
-				} : 
-				function (arr, fn) { // legacy
-					var i = 0, 
-						len = arr.length;
-					for (; i < len; i++) {
-						if (fn.call(arr[i], arr[i], i, arr) === false) {
-							return i;
-						}
-					}
-				};
-			
-			/**
-			 * Register Highcharts as a plugin in the respective framework
-			 */
-			$.fn.highcharts = function () {
-				var constr = 'Chart', // default constructor
-					args = arguments,
-					options,
-					ret,
-					chart;
-
-				if (isString(args[0])) {
-					constr = args[0];
-					args = Array.prototype.slice.call(args, 1); 
-				}
-				options = args[0];
-
-				// Create the chart
-				if (options !== UNDEFINED) {
-					/*jslint unused:false*/
-					options.chart = options.chart || {};
-					options.chart.renderTo = this[0];
-					chart = new Highcharts[constr](options, args[1]);
-					ret = this;
-					/*jslint unused:true*/
-				}
-
-				// When called without parameters or with the return argument, get a predefined chart
-				if (options === UNDEFINED) {
-					ret = charts[attr(this[0], 'data-highcharts-chart')];
-				}	
-
-				return ret;
-			};
-
-		},
-
-		
-		/**
-		 * Downloads a script and executes a callback when done.
-		 * @param {String} scriptLocation
-		 * @param {Function} callback
-		 */
-		getScript: $.getScript,
-		
-		/**
-		 * Return the index of an item in an array, or -1 if not found
-		 */
-		inArray: $.inArray,
-		
-		/**
-		 * A direct link to jQuery methods. MooTools and Prototype adapters must be implemented for each case of method.
-		 * @param {Object} elem The HTML element
-		 * @param {String} method Which method to run on the wrapped element
-		 */
-		adapterRun: function (elem, method) {
-			return $(elem)[method]();
-		},
-	
-		/**
-		 * Filter an array
-		 */
-		grep: $.grep,
-	
-		/**
-		 * Map an array
-		 * @param {Array} arr
-		 * @param {Function} fn
-		 */
-		map: function (arr, fn) {
-			//return jQuery.map(arr, fn);
-			var results = [],
-				i = 0,
-				len = arr.length;
-			for (; i < len; i++) {
-				results[i] = fn.call(arr[i], arr[i], i, arr);
-			}
-			return results;
-	
-		},
-	
-		/**
-		 * Get the position of an element relative to the top left of the page
-		 */
-		offset: function (el) {
-			return $(el).offset();
-		},
-	
-		/**
-		 * Add an event listener
-		 * @param {Object} el A HTML element or custom object
-		 * @param {String} event The event type
-		 * @param {Function} fn The event handler
-		 */
-		addEvent: function (el, event, fn) {
-			$(el).bind(event, fn);
-		},
-	
-		/**
-		 * Remove event added with addEvent
-		 * @param {Object} el The object
-		 * @param {String} eventType The event type. Leave blank to remove all events.
-		 * @param {Function} handler The function to remove
-		 */
-		removeEvent: function (el, eventType, handler) {
-			// workaround for jQuery issue with unbinding custom events:
-			// http://forum.jQuery.com/topic/javascript-error-when-unbinding-a-custom-event-using-jQuery-1-4-2
-			var func = doc.removeEventListener ? 'removeEventListener' : 'detachEvent';
-			if (doc[func] && el && !el[func]) {
-				el[func] = function () {};
-			}
-	
-			$(el).unbind(eventType, handler);
-		},
-	
-		/**
-		 * Fire an event on a custom object
-		 * @param {Object} el
-		 * @param {String} type
-		 * @param {Object} eventArguments
-		 * @param {Function} defaultFunction
-		 */
-		fireEvent: function (el, type, eventArguments, defaultFunction) {
-			var event = $.Event(type),
-				detachedType = 'detached' + type,
-				defaultPrevented;
-	
-			// Remove warnings in Chrome when accessing layerX and layerY. Although Highcharts
-			// never uses these properties, Chrome includes them in the default click event and
-			// raises the warning when they are copied over in the extend statement below.
-			//
-			// To avoid problems in IE (see #1010) where we cannot delete the properties and avoid
-			// testing if they are there (warning in chrome) the only option is to test if running IE.
-			if (!isIE && eventArguments) {
-				delete eventArguments.layerX;
-				delete eventArguments.layerY;
-			}
-	
-			extend(event, eventArguments);
-	
-			// Prevent jQuery from triggering the object method that is named the
-			// same as the event. For example, if the event is 'select', jQuery
-			// attempts calling el.select and it goes into a loop.
-			if (el[type]) {
-				el[detachedType] = el[type];
-				el[type] = null;
-			}
-	
-			// Wrap preventDefault and stopPropagation in try/catch blocks in
-			// order to prevent JS errors when cancelling events on non-DOM
-			// objects. #615.
-			/*jslint unparam: true*/
-			$.each(['preventDefault', 'stopPropagation'], function (i, fn) {
-				var base = event[fn];
-				event[fn] = function () {
-					try {
-						base.call(event);
-					} catch (e) {
-						if (fn === 'preventDefault') {
-							defaultPrevented = true;
-						}
-					}
-				};
-			});
-			/*jslint unparam: false*/
-	
-			// trigger it
-			$(el).trigger(event);
-	
-			// attach the method
-			if (el[detachedType]) {
-				el[type] = el[detachedType];
-				el[detachedType] = null;
-			}
-	
-			if (defaultFunction && !event.isDefaultPrevented() && !defaultPrevented) {
-				defaultFunction(event);
-			}
-		},
-		
-		/**
-		 * Extension method needed for MooTools
-		 */
-		washMouseEvent: function (e) {
-			var ret = e.originalEvent || e;
-			
-			// computed by jQuery, needed by IE8
-			if (ret.pageX === UNDEFINED) { // #1236
-				ret.pageX = e.pageX;
-				ret.pageY = e.pageY;
-			}
-			
-			return ret;
-		},
-	
-		/**
-		 * Animate a HTML element or SVG element wrapper
-		 * @param {Object} el
-		 * @param {Object} params
-		 * @param {Object} options jQuery-like animation options: duration, easing, callback
-		 */
-		animate: function (el, params, options) {
-			var $el = $(el);
-			if (!el.style) {
-				el.style = {}; // #1881
-			}
-			if (params.d) {
-				el.toD = params.d; // keep the array form for paths, used in $.fx.step.d
-				params.d = 1; // because in jQuery, animating to an array has a different meaning
-			}
-	
-			$el.stop();
-			if (params.opacity !== UNDEFINED && el.attr) {
-				params.opacity += 'px'; // force jQuery to use same logic as width and height (#2161)
-			}
-			$el.animate(params, options);
-	
-		},
-		/**
-		 * Stop running animation
-		 */
-		stop: function (el) {
-			$(el).stop();
-		}
-	});
-}(win.jQuery));
-
-
-// check for a custom HighchartsAdapter defined prior to this file
-var globalAdapter = win.HighchartsAdapter,
-	adapter = globalAdapter || {};
-	
-// Initialize the adapter
-if (globalAdapter) {
-	globalAdapter.init.call(globalAdapter, pathAnim);
-}
-
-
-// Utility functions. If the HighchartsAdapter is not defined, adapter is an empty object
-// and all the utility functions will be null. In that case they are populated by the
-// default adapters below.
-var adapterRun = adapter.adapterRun,
-	getScript = adapter.getScript,
-	inArray = adapter.inArray,
-	each = adapter.each,
-	grep = adapter.grep,
-	offset = adapter.offset,
-	map = adapter.map,
-	addEvent = adapter.addEvent,
-	removeEvent = adapter.removeEvent,
-	fireEvent = adapter.fireEvent,
-	washMouseEvent = adapter.washMouseEvent,
-	animate = adapter.animate,
-	stop = adapter.stop;
-
-
-
-/* ****************************************************************************
- * Handle the options                                                         *
- *****************************************************************************/
-var
-
-defaultLabelOptions = {
-	enabled: true,
-	// rotation: 0,
-	// align: 'center',
-	x: 0,
-	y: 15,
-	/*formatter: function () {
-		return this.value;
-	},*/
-	style: {
-		color: '#666',
-		cursor: 'default',
-		fontSize: '11px',
-		lineHeight: '14px'
-	}
-};
-
-defaultOptions = {
-	colors: ['#2f7ed8', '#0d233a', '#8bbc21', '#910000', '#1aadce', '#492970',
-		'#f28f43', '#77a1e5', '#c42525', '#a6c96a'],
-	symbols: ['circle', 'diamond', 'square', 'triangle', 'triangle-down'],
-	lang: {
-		loading: 'Loading...',
-		months: ['January', 'February', 'March', 'April', 'May', 'June', 'July',
-				'August', 'September', 'October', 'November', 'December'],
-		shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
-		weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
-		decimalPoint: '.',
-		numericSymbols: ['k', 'M', 'G', 'T', 'P', 'E'], // SI prefixes used in axis labels
-		resetZoom: 'Reset zoom',
-		resetZoomTitle: 'Reset zoom level 1:1',
-		thousandsSep: ','
-	},
-	global: {
-		useUTC: true,
-		canvasToolsURL: 'http://code.highcharts.com/3.0.6/modules/canvas-tools.js',
-		VMLRadialGradientURL: 'http://code.highcharts.com/3.0.6/gfx/vml-radial-gradient.png'
-	},
-	chart: {
-		//animation: true,
-		//alignTicks: false,
-		//reflow: true,
-		//className: null,
-		//events: { load, selection },
-		//margin: [null],
-		//marginTop: null,
-		//marginRight: null,
-		//marginBottom: null,
-		//marginLeft: null,
-		borderColor: '#4572A7',
-		//borderWidth: 0,
-		borderRadius: 5,
-		defaultSeriesType: 'line',
-		ignoreHiddenSeries: true,
-		//inverted: false,
-		//shadow: false,
-		spacing: [10, 10, 15, 10],
-		//spacingTop: 10,
-		//spacingRight: 10,
-		//spacingBottom: 15,
-		//spacingLeft: 10,
-		style: {
-			fontFamily: '"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif', // default font
-			fontSize: '12px'
-		},
-		backgroundColor: '#FFFFFF',
-		//plotBackgroundColor: null,
-		plotBorderColor: '#C0C0C0',
-		//plotBorderWidth: 0,
-		//plotShadow: false,
-		//zoomType: ''
-		resetZoomButton: {
-			theme: {
-				zIndex: 20
-			},
-			position: {
-				align: 'right',
-				x: -10,
-				//verticalAlign: 'top',
-				y: 10
-			}
-			// relativeTo: 'plot'
-		}
-	},
-	title: {
-		text: 'Chart title',
-		align: 'center',
-		// floating: false,
-		margin: 15,
-		// x: 0,
-		// verticalAlign: 'top',
-		// y: null,
-		style: {
-			color: '#274b6d',//#3E576F',
-			fontSize: '16px'
-		}
-
-	},
-	subtitle: {
-		text: '',
-		align: 'center',
-		// floating: false
-		// x: 0,
-		// verticalAlign: 'top',
-		// y: null,
-		style: {
-			color: '#4d759e'
-		}
-	},
-
-	plotOptions: {
-		line: { // base series options
-			allowPointSelect: false,
-			showCheckbox: false,
-			animation: {
-				duration: 1000
-			},
-			//connectNulls: false,
-			//cursor: 'default',
-			//clip: true,
-			//dashStyle: null,
-			//enableMouseTracking: true,
-			events: {},
-			//legendIndex: 0,
-			lineWidth: 2,
-			//shadow: false,
-			// stacking: null,
-			marker: {
-				enabled: true,
-				//symbol: null,
-				lineWidth: 0,
-				radius: 4,
-				lineColor: '#FFFFFF',
-				//fillColor: null,
-				states: { // states for a single point
-					hover: {
-						enabled: true
-						//radius: base + 2
-					},
-					select: {
-						fillColor: '#FFFFFF',
-						lineColor: '#000000',
-						lineWidth: 2
-					}
-				}
-			},
-			point: {
-				events: {}
-			},
-			dataLabels: merge(defaultLabelOptions, {
-				align: 'center',
-				enabled: false,
-				formatter: function () {
-					return this.y === null ? '' : numberFormat(this.y, -1);
-				},
-				verticalAlign: 'bottom', // above singular point
-				y: 0
-				// backgroundColor: undefined,
-				// borderColor: undefined,
-				// borderRadius: undefined,
-				// borderWidth: undefined,
-				// padding: 3,
-				// shadow: false
-			}),
-			cropThreshold: 300, // draw points outside the plot area when the number of points is less than this
-			pointRange: 0,
-			//pointStart: 0,
-			//pointInterval: 1,
-			showInLegend: true,
-			states: { // states for the entire series
-				hover: {
-					//enabled: false,
-					//lineWidth: base + 1,
-					marker: {
-						// lineWidth: base + 1,
-						// radius: base + 1
-					}
-				},
-				select: {
-					marker: {}
-				}
-			},
-			stickyTracking: true
-			//tooltip: {
-				//pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b>'
-				//valueDecimals: null,
-				//xDateFormat: '%A, %b %e, %Y',
-				//valuePrefix: '',
-				//ySuffix: ''				
-			//}
-			// turboThreshold: 1000
-			// zIndex: null
-		}
-	},
-	labels: {
-		//items: [],
-		style: {
-			//font: defaultFont,
-			position: ABSOLUTE,
-			color: '#3E576F'
-		}
-	},
-	legend: {
-		enabled: true,
-		align: 'center',
-		//floating: false,
-		layout: 'horizontal',
-		labelFormatter: function () {
-			return this.name;
-		},
-		borderWidth: 1,
-		borderColor: '#909090',
-		borderRadius: 5,
-		navigation: {
-			// animation: true,
-			activeColor: '#274b6d',
-			// arrowSize: 12
-			inactiveColor: '#CCC'
-			// style: {} // text styles
-		},
-		// margin: 10,
-		// reversed: false,
-		shadow: false,
-		// backgroundColor: null,
-		/*style: {
-			padding: '5px'
-		},*/
-		itemStyle: {
-			cursor: 'pointer',
-			color: '#274b6d',
-			fontSize: '12px'
-		},
-		itemHoverStyle: {
-			//cursor: 'pointer', removed as of #601
-			color: '#000'
-		},
-		itemHiddenStyle: {
-			color: '#CCC'
-		},
-		itemCheckboxStyle: {
-			position: ABSOLUTE,
-			width: '13px', // for IE precision
-			height: '13px'
-		},
-		// itemWidth: undefined,
-		symbolWidth: 16,
-		symbolPadding: 5,
-		verticalAlign: 'bottom',
-		// width: undefined,
-		x: 0,
-		y: 0,
-		title: {
-			//text: null,
-			style: {
-				fontWeight: 'bold'
-			}
-		}			
-	},
-
-	loading: {
-		// hideDuration: 100,
-		labelStyle: {
-			fontWeight: 'bold',
-			position: RELATIVE,
-			top: '1em'
-		},
-		// showDuration: 0,
-		style: {
-			position: ABSOLUTE,
-			backgroundColor: 'white',
-			opacity: 0.5,
-			textAlign: 'center'
-		}
-	},
-
-	tooltip: {
-		enabled: true,
-		animation: hasSVG,
-		//crosshairs: null,
-		backgroundColor: 'rgba(255, 255, 255, .85)',
-		borderWidth: 1,
-		borderRadius: 3,
-		dateTimeLabelFormats: { 
-			millisecond: '%A, %b %e, %H:%M:%S.%L',
-			second: '%A, %b %e, %H:%M:%S',
-			minute: '%A, %b %e, %H:%M',
-			hour: '%A, %b %e, %H:%M',
-			day: '%A, %b %e, %Y',
-			week: 'Week from %A, %b %e, %Y',
-			month: '%B %Y',
-			year: '%Y'
-		},
-		//formatter: defaultFormatter,
-		headerFormat: '<span style="font-size: 10px">{point.key}</span><br/>',
-		pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b><br/>',
-		shadow: true,
-		//shared: false,
-		snap: isTouchDevice ? 25 : 10,
-		style: {
-			color: '#333333',
-			cursor: 'default',
-			fontSize: '12px',
-			padding: '8px',
-			whiteSpace: 'nowrap'
-		}
-		//xDateFormat: '%A, %b %e, %Y',
-		//valueDecimals: null,
-		//valuePrefix: '',
-		//valueSuffix: ''
-	},
-
-	credits: {
-		enabled: true,
-		text: 'Highcharts.com',
-		href: 'http://www.highcharts.com',
-		position: {
-			align: 'right',
-			x: -10,
-			verticalAlign: 'bottom',
-			y: -5
-		},
-		style: {
-			cursor: 'pointer',
-			color: '#909090',
-			fontSize: '9px'
-		}
-	}
-};
-
-
-
-
-// Series defaults
-var defaultPlotOptions = defaultOptions.plotOptions,
-	defaultSeriesOptions = defaultPlotOptions.line;
-
-// set the default time methods
-setTimeMethods();
-
-
-
-/**
- * Set the time methods globally based on the useUTC option. Time method can be either
- * local time or UTC (default).
- */
-function setTimeMethods() {
-	var useUTC = defaultOptions.global.useUTC,
-		GET = useUTC ? 'getUTC' : 'get',
-		SET = useUTC ? 'setUTC' : 'set';
-
-	makeTime = useUTC ? Date.UTC : function (year, month, date, hours, minutes, seconds) {
-		return new Date(
-			year,
-			month,
-			pick(date, 1),
-			pick(hours, 0),
-			pick(minutes, 0),
-			pick(seconds, 0)
-		).getTime();
-	};
-	getMinutes =  GET + 'Minutes';
-	getHours =    GET + 'Hours';
-	getDay =      GET + 'Day';
-	getDate =     GET + 'Date';
-	getMonth =    GET + 'Month';
-	getFullYear = GET + 'FullYear';
-	setMinutes =  SET + 'Minutes';
-	setHours =    SET + 'Hours';
-	setDate =     SET + 'Date';
-	setMonth =    SET + 'Month';
-	setFullYear = SET + 'FullYear';
-
-}
-
-/**
- * Merge the default options with custom options and return the new options structure
- * @param {Object} options The new custom options
- */
-function setOptions(options) {
-	
-	// Pull out axis options and apply them to the respective default axis options 
-	/*defaultXAxisOptions = merge(defaultXAxisOptions, options.xAxis);
-	defaultYAxisOptions = merge(defaultYAxisOptions, options.yAxis);
-	options.xAxis = options.yAxis = UNDEFINED;*/
-	
-	// Merge in the default options
-	defaultOptions = merge(defaultOptions, options);
-	
-	// Apply UTC
-	setTimeMethods();
-
-	return defaultOptions;
-}
-
-/**
- * Get the updated default options. Merely exposing defaultOptions for outside modules
- * isn't enough because the setOptions method creates a new object.
- */
-function getOptions() {
-	return defaultOptions;
-}
-
-
-/**
- * Handle color operations. The object methods are chainable.
- * @param {String} input The input color in either rbga or hex format
- */
-var Color = function (input) {
-	// declare variables
-	var rgba = [], result, stops;
-
-	/**
-	 * Parse the input color to rgba array
-	 * @param {String} input
-	 */
-	function init(input) {
-
-		// Gradients
-		if (input && input.stops) {
-			stops = map(input.stops, function (stop) {
-				return Color(stop[1]);
-			});
-
-		// Solid colors
-		} else {
-			// rgba
-			result = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]?(?:\.[0-9]+)?)\s*\)/.exec(input);
-			if (result) {
-				rgba = [pInt(result[1]), pInt(result[2]), pInt(result[3]), parseFloat(result[4], 10)];
-			} else { 
-				// hex
-				result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(input);
-				if (result) {
-					rgba = [pInt(result[1], 16), pInt(result[2], 16), pInt(result[3], 16), 1];
-				} else {
-					// rgb
-					result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(input);
-					if (result) {
-						rgba = [pInt(result[1]), pInt(result[2]), pInt(result[3]), 1];
-					}
-				}
-			}
-		}		
-
-	}
-	/**
-	 * Return the color a specified format
-	 * @param {String} format
-	 */
-	function get(format) {
-		var ret;
-
-		if (stops) {
-			ret = merge(input);
-			ret.stops = [].concat(ret.stops);
-			each(stops, function (stop, i) {
-				ret.stops[i] = [ret.stops[i][0], stop.get(format)];
-			});
-
-		// it's NaN if gradient colors on a column chart
-		} else if (rgba && !isNaN(rgba[0])) {
-			if (format === 'rgb') {
-				ret = 'rgb(' + rgba[0] + ',' + rgba[1] + ',' + rgba[2] + ')';
-			} else if (format === 'a') {
-				ret = rgba[3];
-			} else {
-				ret = 'rgba(' + rgba.join(',') + ')';
-			}
-		} else {
-			ret = input;
-		}
-		return ret;
-	}
-
-	/**
-	 * Brighten the color
-	 * @param {Number} alpha
-	 */
-	function brighten(alpha) {
-		if (stops) {
-			each(stops, function (stop) {
-				stop.brighten(alpha);
-			});
-		
-		} else if (isNumber(alpha) && alpha !== 0) {
-			var i;
-			for (i = 0; i < 3; i++) {
-				rgba[i] += pInt(alpha * 255);
-
-				if (rgba[i] < 0) {
-					rgba[i] = 0;
-				}
-				if (rgba[i] > 255) {
-					rgba[i] = 255;
-				}
-			}
-		}
-		return this;
-	}
-	/**
-	 * Set the color's opacity to a given alpha value
-	 * @param {Number} alpha
-	 */
-	function setOpacity(alpha) {
-		rgba[3] = alpha;
-		return this;
-	}
-
-	// initialize: parse the input
-	init(input);
-
-	// public methods
-	return {
-		get: get,
-		brighten: brighten,
-		rgba: rgba,
-		setOpacity: setOpacity
-	};
-};
-
-
-/**
- * A wrapper object for SVG elements
- */
-function SVGElement() {}
-
-SVGElement.prototype = {
-	/**
-	 * Initialize the SVG renderer
-	 * @param {Object} renderer
-	 * @param {String} nodeName
-	 */
-	init: function (renderer, nodeName) {
-		var wrapper = this;
-		wrapper.element = nodeName === 'span' ?
-			createElement(nodeName) :
-			doc.createElementNS(SVG_NS, nodeName);
-		wrapper.renderer = renderer;
-		/**
-		 * A collection of attribute setters. These methods, if defined, are called right before a certain
-		 * attribute is set on an element wrapper. Returning false prevents the default attribute
-		 * setter to run. Returning a value causes the default setter to set that value. Used in
-		 * Renderer.label.
-		 */
-		wrapper.attrSetters = {};
-	},
-	/**
-	 * Default base for animation
-	 */
-	opacity: 1,
-	/**
-	 * Animate a given attribute
-	 * @param {Object} params
-	 * @param {Number} options The same options as in jQuery animation
-	 * @param {Function} complete Function to perform at the end of animation
-	 */
-	animate: function (params, options, complete) {
-		var animOptions = pick(options, globalAnimation, true);
-		stop(this); // stop regardless of animation actually running, or reverting to .attr (#607)
-		if (animOptions) {
-			animOptions = merge(animOptions);
-			if (complete) { // allows using a callback with the global animation without overwriting it
-				animOptions.complete = complete;
-			}
-			animate(this, params, animOptions);
-		} else {
-			this.attr(params);
-			if (complete) {
-				complete();
-			}
-		}
-	},
-	/**
-	 * Set or get a given attribute
-	 * @param {Object|String} hash
-	 * @param {Mixed|Undefined} val
-	 */
-	attr: function (hash, val) {
-		var wrapper = this,
-			key,
-			value,
-			result,
-			i,
-			child,
-			element = wrapper.element,
-			nodeName = element.nodeName.toLowerCase(), // Android2 requires lower for "text"
-			renderer = wrapper.renderer,
-			skipAttr,
-			titleNode,
-			attrSetters = wrapper.attrSetters,
-			shadows = wrapper.shadows,
-			hasSetSymbolSize,
-			doTransform,
-			ret = wrapper;
-
-		// single key-value pair
-		if (isString(hash) && defined(val)) {
-			key = hash;
-			hash = {};
-			hash[key] = val;
-		}
-
-		// used as a getter: first argument is a string, second is undefined
-		if (isString(hash)) {
-			key = hash;
-			if (nodeName === 'circle') {
-				key = { x: 'cx', y: 'cy' }[key] || key;
-			} else if (key === 'strokeWidth') {
-				key = 'stroke-width';
-			}
-			ret = attr(element, key) || wrapper[key] || 0;
-			if (key !== 'd' && key !== 'visibility' && key !== 'fill') { // 'd' is string in animation step
-				ret = parseFloat(ret);
-			}
-
-		// setter
-		} else {
-
-			for (key in hash) {
-				skipAttr = false; // reset
-				value = hash[key];
-
-				// check for a specific attribute setter
-				result = attrSetters[key] && attrSetters[key].call(wrapper, value, key);
-
-				if (result !== false) {
-					if (result !== UNDEFINED) {
-						value = result; // the attribute setter has returned a new value to set
-					}
-
-
-					// paths
-					if (key === 'd') {
-						if (value && value.join) { // join path
-							value = value.join(' ');
-						}
-						if (/(NaN| {2}|^$)/.test(value)) {
-							value = 'M 0 0';
-						}
-						//wrapper.d = value; // shortcut for animations
-
-					// update child tspans x values
-					} else if (key === 'x' && nodeName === 'text') {
-						for (i = 0; i < element.childNodes.length; i++) {
-							child = element.childNodes[i];
-							// if the x values are equal, the tspan represents a linebreak
-							if (attr(child, 'x') === attr(element, 'x')) {
-								//child.setAttribute('x', value);
-								attr(child, 'x', value);
-							}
-						}
-
-					} else if (wrapper.rotation && (key === 'x' || key === 'y')) {
-						doTransform = true;
-
-					// apply gradients
-					} else if (key === 'fill') {
-						value = renderer.color(value, element, key);
-
-					// circle x and y
-					} else if (nodeName === 'circle' && (key === 'x' || key === 'y')) {
-						key = { x: 'cx', y: 'cy' }[key] || key;
-
-					// rectangle border radius
-					} else if (nodeName === 'rect' && key === 'r') {
-						attr(element, {
-							rx: value,
-							ry: value
-						});
-						skipAttr = true;
-
-					// translation and text rotation
-					} else if (key === 'translateX' || key === 'translateY' || key === 'rotation' ||
-							key === 'verticalAlign' || key === 'scaleX' || key === 'scaleY') {
-						doTransform = true;
-						skipAttr = true;
-
-					// apply opacity as subnode (required by legacy WebKit and Batik)
-					} else if (key === 'stroke') {
-						value = renderer.color(value, element, key);
-
-					// emulate VML's dashstyle implementation
-					} else if (key === 'dashstyle') {
-						key = 'stroke-dasharray';
-						value = value && value.toLowerCase();
-						if (value === 'solid') {
-							value = NONE;
-						} else if (value) {
-							value = value
-								.replace('shortdashdotdot', '3,1,1,1,1,1,')
-								.replace('shortdashdot', '3,1,1,1')
-								.replace('shortdot', '1,1,')
-								.replace('shortdash', '3,1,')
-								.replace('longdash', '8,3,')
-								.replace(/dot/g, '1,3,')
-								.replace('dash', '4,3,')
-								.replace(/,$/, '')
-								.split(','); // ending comma
-
-							i = value.length;
-							while (i--) {
-								value[i] = pInt(value[i]) * pick(hash['stroke-width'], wrapper['stroke-width']);
-							}
-							value = value.join(',');
-						}
-
-					// IE9/MooTools combo: MooTools returns objects instead of numbers and IE9 Beta 2
-					// is unable to cast them. Test again with final IE9.
-					} else if (key === 'width') {
-						value = pInt(value);
-
-					// Text alignment
-					} else if (key === 'align') {
-						key = 'text-anchor';
-						value = { left: 'start', center: 'middle', right: 'end' }[value];
-
-					// Title requires a subnode, #431
-					} else if (key === 'title') {
-						titleNode = element.getElementsByTagName('title')[0];
-						if (!titleNode) {
-							titleNode = doc.createElementNS(SVG_NS, 'title');
-							element.appendChild(titleNode);
-						}
-						titleNode.textContent = value;
-					}
-
-					// jQuery animate changes case
-					if (key === 'strokeWidth') {
-						key = 'stroke-width';
-					}
-
-					// In Chrome/Win < 6 as well as Batik, the stroke attribute can't be set when the stroke-
-					// width is 0. #1369
-					if (key === 'stroke-width' || key === 'stroke') {
-						wrapper[key] = value;
-						// Only apply the stroke attribute if the stroke width is defined and larger than 0
-						if (wrapper.stroke && wrapper['stroke-width']) {
-							attr(element, 'stroke', wrapper.stroke);
-							attr(element, 'stroke-width', wrapper['stroke-width']);
-							wrapper.hasStroke = true;
-						} else if (key === 'stroke-width' && value === 0 && wrapper.hasStroke) {
-							element.removeAttribute('stroke');
-							wrapper.hasStroke = false;
-						}
-						skipAttr = true;
-					}
-
-					// symbols
-					if (wrapper.symbolName && /^(x|y|width|height|r|start|end|innerR|anchorX|anchorY)/.test(key)) {
-
-
-						if (!hasSetSymbolSize) {
-							wrapper.symbolAttr(hash);
-							hasSetSymbolSize = true;
-						}
-						skipAttr = true;
-					}
-
-					// let the shadow follow the main element
-					if (shadows && /^(width|height|visibility|x|y|d|transform|cx|cy|r)$/.test(key)) {
-						i = shadows.length;
-						while (i--) {
-							attr(
-								shadows[i],
-								key,
-								key === 'height' ?
-									mathMax(value - (shadows[i].cutHeight || 0), 0) :
-									value
-							);
-						}
-					}
-
-					// validate heights
-					if ((key === 'width' || key === 'height') && nodeName === 'rect' && value < 0) {
-						value = 0;
-					}
-
-					// Record for animation and quick access without polling the DOM
-					wrapper[key] = value;
-
-
-					if (key === 'text') {
-						// Delete bBox memo when the text changes
-						if (value !== wrapper.textStr) {
-							delete wrapper.bBox;
-						}
-						wrapper.textStr = value;
-						if (wrapper.added) {
-							renderer.buildText(wrapper);
-						}
-					} else if (!skipAttr) {
-						attr(element, key, value);
-					}
-
-				}
-
-			}
-
-			// Update transform. Do this outside the loop to prevent redundant updating for batch setting
-			// of attributes.
-			if (doTransform) {
-				wrapper.updateTransform();
-			}
-
-		}
-
-		return ret;
-	},
-
-
-	/**
-	 * Add a class name to an element
-	 */
-	addClass: function (className) {
-		var element = this.element,
-			currentClassName = attr(element, 'class') || '';
-
-		if (currentClassName.indexOf(className) === -1) {
-			attr(element, 'class', currentClassName + ' ' + className);
-		}
-		return this;
-	},
-	/* hasClass and removeClass are not (yet) needed
-	hasClass: function (className) {
-		return attr(this.element, 'class').indexOf(className) !== -1;
-	},
-	removeClass: function (className) {
-		attr(this.element, 'class', attr(this.element, 'class').replace(className, ''));
-		return this;
-	},
-	*/
-
-	/**
-	 * If one of the symbol size affecting parameters are changed,
-	 * check all the others only once for each call to an element's
-	 * .attr() method
-	 * @param {Object} hash
-	 */
-	symbolAttr: function (hash) {
-		var wrapper = this;
-
-		each(['x', 'y', 'r', 'start', 'end', 'width', 'height', 'innerR', 'anchorX', 'anchorY'], function (key) {
-			wrapper[key] = pick(hash[key], wrapper[key]);
-		});
-
-		wrapper.attr({
-			d: wrapper.renderer.symbols[wrapper.symbolName](
-				wrapper.x,
-				wrapper.y,
-				wrapper.width,
-				wrapper.height,
-				wrapper
-			)
-		});
-	},
-
-	/**
-	 * Apply a clipping path to this object
-	 * @param {String} id
-	 */
-	clip: function (clipRect) {
-		return this.attr('clip-path', clipRect ? 'url(' + this.renderer.url + '#' + clipRect.id + ')' : NONE);
-	},
-
-	/**
-	 * Calculate the coordinates needed for drawing a rectangle crisply and return the
-	 * calculated attributes
-	 * @param {Number} strokeWidth
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @param {Number} width
-	 * @param {Number} height
-	 */
-	crisp: function (strokeWidth, x, y, width, height) {
-
-		var wrapper = this,
-			key,
-			attribs = {},
-			values = {},
-			normalizer;
-
-		strokeWidth = strokeWidth || wrapper.strokeWidth || (wrapper.attr && wrapper.attr('stroke-width')) || 0;
-		normalizer = mathRound(strokeWidth) % 2 / 2; // mathRound because strokeWidth can sometimes have roundoff errors
-
-		// normalize for crisp edges
-		values.x = mathFloor(x || wrapper.x || 0) + normalizer;
-		values.y = mathFloor(y || wrapper.y || 0) + normalizer;
-		values.width = mathFloor((width || wrapper.width || 0) - 2 * normalizer);
-		values.height = mathFloor((height || wrapper.height || 0) - 2 * normalizer);
-		values.strokeWidth = strokeWidth;
-
-		for (key in values) {
-			if (wrapper[key] !== values[key]) { // only set attribute if changed
-				wrapper[key] = attribs[key] = values[key];
-			}
-		}
-
-		return attribs;
-	},
-
-	/**
-	 * Set styles for the element
-	 * @param {Object} styles
-	 */
-	css: function (styles) {
-		/*jslint unparam: true*//* allow unused param a in the regexp function below */
-		var elemWrapper = this,
-			elem = elemWrapper.element,
-			textWidth = styles && styles.width && elem.nodeName.toLowerCase() === 'text',
-			n,
-			serializedCss = '',
-			hyphenate = function (a, b) { return '-' + b.toLowerCase(); };
-		/*jslint unparam: false*/
-
-		// convert legacy
-		if (styles && styles.color) {
-			styles.fill = styles.color;
-		}
-
-		// Merge the new styles with the old ones
-		styles = extend(
-			elemWrapper.styles,
-			styles
-		);
-
-		// store object
-		elemWrapper.styles = styles;
-
-
-		// Don't handle line wrap on canvas
-		if (useCanVG && textWidth) {
-			delete styles.width;
-		}
-
-		// serialize and set style attribute
-		if (isIE && !hasSVG) { // legacy IE doesn't support setting style attribute
-			if (textWidth) {
-				delete styles.width;
-			}
-			css(elemWrapper.element, styles);
-		} else {
-			for (n in styles) {
-				serializedCss += n.replace(/([A-Z])/g, hyphenate) + ':' + styles[n] + ';';
-			}
-			attr(elem, 'style', serializedCss); // #1881
-		}
-
-
-		// re-build text
-		if (textWidth && elemWrapper.added) {
-			elemWrapper.renderer.buildText(elemWrapper);
-		}
-
-		return elemWrapper;
-	},
-
-	/**
-	 * Add an event listener
-	 * @param {String} eventType
-	 * @param {Function} handler
-	 */
-	on: function (eventType, handler) {
-		var svgElement = this,
-			element = svgElement.element;
-		
-		// touch
-		if (hasTouch && eventType === 'click') {
-			element.ontouchstart = function (e) {			
-				svgElement.touchEventFired = Date.now();				
-				e.preventDefault();
-				handler.call(element, e);
-			};
-			element.onclick = function (e) {												
-				if (userAgent.indexOf('Android') === -1 || Date.now() - (svgElement.touchEventFired || 0) > 1100) { // #2269
-					handler.call(element, e);
-				}
-			};			
-		} else {
-			// simplest possible event model for internal use
-			element['on' + eventType] = handler;
-		}
-		return this;
-	},
-
-	/**
-	 * Set the coordinates needed to draw a consistent radial gradient across
-	 * pie slices regardless of positioning inside the chart. The format is
-	 * [centerX, centerY, diameter] in pixels.
-	 */
-	setRadialReference: function (coordinates) {
-		this.element.radialReference = coordinates;
-		return this;
-	},
-
-	/**
-	 * Move an object and its children by x and y values
-	 * @param {Number} x
-	 * @param {Number} y
-	 */
-	translate: function (x, y) {
-		return this.attr({
-			translateX: x,
-			translateY: y
-		});
-	},
-
-	/**
-	 * Invert a group, rotate and flip
-	 */
-	invert: function () {
-		var wrapper = this;
-		wrapper.inverted = true;
-		wrapper.updateTransform();
-		return wrapper;
-	},
-
-	/**
-	 * Apply CSS to HTML elements. This is used in text within SVG rendering and
-	 * by the VML renderer
-	 */
-	htmlCss: function (styles) {
-		var wrapper = this,
-			element = wrapper.element,
-			textWidth = styles && element.tagName === 'SPAN' && styles.width;
-
-		if (textWidth) {
-			delete styles.width;
-			wrapper.textWidth = textWidth;
-			wrapper.updateTransform();
-		}
-
-		wrapper.styles = extend(wrapper.styles, styles);
-		css(wrapper.element, styles);
-
-		return wrapper;
-	},
-
-
-
-	/**
-	 * VML and useHTML method for calculating the bounding box based on offsets
-	 * @param {Boolean} refresh Whether to force a fresh value from the DOM or to
-	 * use the cached value
-	 *
-	 * @return {Object} A hash containing values for x, y, width and height
-	 */
-
-	htmlGetBBox: function () {
-		var wrapper = this,
-			element = wrapper.element,
-			bBox = wrapper.bBox;
-
-		// faking getBBox in exported SVG in legacy IE
-		if (!bBox) {
-			// faking getBBox in exported SVG in legacy IE (is this a duplicate of the fix for #1079?)
-			if (element.nodeName === 'text') {
-				element.style.position = ABSOLUTE;
-			}
-
-			bBox = wrapper.bBox = {
-				x: element.offsetLeft,
-				y: element.offsetTop,
-				width: element.offsetWidth,
-				height: element.offsetHeight
-			};
-		}
-
-		return bBox;
-	},
-
-	/**
-	 * VML override private method to update elements based on internal
-	 * properties based on SVG transform
-	 */
-	htmlUpdateTransform: function () {
-		// aligning non added elements is expensive
-		if (!this.added) {
-			this.alignOnAdd = true;
-			return;
-		}
-
-		var wrapper = this,
-			renderer = wrapper.renderer,
-			elem = wrapper.element,
-			translateX = wrapper.translateX || 0,
-			translateY = wrapper.translateY || 0,
-			x = wrapper.x || 0,
-			y = wrapper.y || 0,
-			align = wrapper.textAlign || 'left',
-			alignCorrection = { left: 0, center: 0.5, right: 1 }[align],
-			nonLeft = align && align !== 'left',
-			shadows = wrapper.shadows;
-
-		// apply translate
-		css(elem, {
-			marginLeft: translateX,
-			marginTop: translateY
-		});
-		if (shadows) { // used in labels/tooltip
-			each(shadows, function (shadow) {
-				css(shadow, {
-					marginLeft: translateX + 1,
-					marginTop: translateY + 1
-				});
-			});
-		}
-
-		// apply inversion
-		if (wrapper.inverted) { // wrapper is a group
-			each(elem.childNodes, function (child) {
-				renderer.invertChild(child, elem);
-			});
-		}
-
-		if (elem.tagName === 'SPAN') {
-
-			var width, height,
-				rotation = wrapper.rotation,
-				baseline,
-				radians = 0,
-				costheta = 1,
-				sintheta = 0,
-				quad,
-				textWidth = pInt(wrapper.textWidth),
-				xCorr = wrapper.xCorr || 0,
-				yCorr = wrapper.yCorr || 0,
-				currentTextTransform = [rotation, align, elem.innerHTML, wrapper.textWidth].join(',');
-
-			if (currentTextTransform !== wrapper.cTT) { // do the calculations and DOM access only if properties changed
-
-				if (defined(rotation)) {
-
-					radians = rotation * deg2rad; // deg to rad
-					costheta = mathCos(radians);
-					sintheta = mathSin(radians);
-
-					wrapper.setSpanRotation(rotation, sintheta, costheta);
-
-				}
-
-				width = pick(wrapper.elemWidth, elem.offsetWidth);
-				height = pick(wrapper.elemHeight, elem.offsetHeight);
-
-				// update textWidth
-				if (width > textWidth && /[ \-]/.test(elem.textContent || elem.innerText)) { // #983, #1254
-					css(elem, {
-						width: textWidth + PX,
-						display: 'block',
-						whiteSpace: 'normal'
-					});
-					width = textWidth;
-				}
-
-				// correct x and y
-				baseline = renderer.fontMetrics(elem.style.fontSize).b;
-				xCorr = costheta < 0 && -width;
-				yCorr = sintheta < 0 && -height;
-
-				// correct for baseline and corners spilling out after rotation
-				quad = costheta * sintheta < 0;
-				xCorr += sintheta * baseline * (quad ? 1 - alignCorrection : alignCorrection);
-				yCorr -= costheta * baseline * (rotation ? (quad ? alignCorrection : 1 - alignCorrection) : 1);
-
-				// correct for the length/height of the text
-				if (nonLeft) {
-					xCorr -= width * alignCorrection * (costheta < 0 ? -1 : 1);
-					if (rotation) {
-						yCorr -= height * alignCorrection * (sintheta < 0 ? -1 : 1);
-					}
-					css(elem, {
-						textAlign: align
-					});
-				}
-
-				// record correction
-				wrapper.xCorr = xCorr;
-				wrapper.yCorr = yCorr;
-			}
-
-			// apply position with correction
-			css(elem, {
-				left: (x + xCorr) + PX,
-				top: (y + yCorr) + PX
-			});
-
-			// force reflow in webkit to apply the left and top on useHTML element (#1249)
-			if (isWebKit) {
-				height = elem.offsetHeight; // assigned to height for JSLint purpose
-			}
-
-			// record current text transform
-			wrapper.cTT = currentTextTransform;
-		}
-	},
-
-	/**
-	 * Set the rotation of an individual HTML span
-	 */
-	setSpanRotation: function (rotation) {
-		var rotationStyle = {},
-			cssTransformKey = isIE ? '-ms-transform' : isWebKit ? '-webkit-transform' : isFirefox ? 'MozTransform' : isOpera ? '-o-transform' : '';
-
-		rotationStyle[cssTransformKey] = rotationStyle.transform = 'rotate(' + rotation + 'deg)';
-		css(this.element, rotationStyle);
-	},
-
-	/**
-	 * Private method to update the transform attribute based on internal
-	 * properties
-	 */
-	updateTransform: function () {
-		var wrapper = this,
-			translateX = wrapper.translateX || 0,
-			translateY = wrapper.translateY || 0,
-			scaleX = wrapper.scaleX,
-			scaleY = wrapper.scaleY,
-			inverted = wrapper.inverted,
-			rotation = wrapper.rotation,
-			transform;
-
-		// flipping affects translate as adjustment for flipping around the group's axis
-		if (inverted) {
-			translateX += wrapper.attr('width');
-			translateY += wrapper.attr('height');
-		}
-
-		// Apply translate. Nearly all transformed elements have translation, so instead
-		// of checking for translate = 0, do it always (#1767, #1846).
-		transform = ['translate(' + translateX + ',' + translateY + ')'];
-
-		// apply rotation
-		if (inverted) {
-			transform.push('rotate(90) scale(-1,1)');
-		} else if (rotation) { // text rotation
-			transform.push('rotate(' + rotation + ' ' + (wrapper.x || 0) + ' ' + (wrapper.y || 0) + ')');
-		}
-
-		// apply scale
-		if (defined(scaleX) || defined(scaleY)) {
-			transform.push('scale(' + pick(scaleX, 1) + ' ' + pick(scaleY, 1) + ')');
-		}
-
-		if (transform.length) {
-			attr(wrapper.element, 'transform', transform.join(' '));
-		}
-	},
-	/**
-	 * Bring the element to the front
-	 */
-	toFront: function () {
-		var element = this.element;
-		element.parentNode.appendChild(element);
-		return this;
-	},
-
-
-	/**
-	 * Break down alignment options like align, verticalAlign, x and y
-	 * to x and y relative to the chart.
-	 *
-	 * @param {Object} alignOptions
-	 * @param {Boolean} alignByTranslate
-	 * @param {String[Object} box The box to align to, needs a width and height. When the
-	 *        box is a string, it refers to an object in the Renderer. For example, when
-	 *        box is 'spacingBox', it refers to Renderer.spacingBox which holds width, height
-	 *        x and y properties.
-	 *
-	 */
-	align: function (alignOptions, alignByTranslate, box) {
-		var align,
-			vAlign,
-			x,
-			y,
-			attribs = {},
-			alignTo,
-			renderer = this.renderer,
-			alignedObjects = renderer.alignedObjects;
-
-		// First call on instanciate
-		if (alignOptions) {
-			this.alignOptions = alignOptions;
-			this.alignByTranslate = alignByTranslate;
-			if (!box || isString(box)) { // boxes other than renderer handle this internally
-				this.alignTo = alignTo = box || 'renderer';
-				erase(alignedObjects, this); // prevent duplicates, like legendGroup after resize
-				alignedObjects.push(this);
-				box = null; // reassign it below
-			}
-
-		// When called on resize, no arguments are supplied
-		} else {
-			alignOptions = this.alignOptions;
-			alignByTranslate = this.alignByTranslate;
-			alignTo = this.alignTo;
-		}
-
-		box = pick(box, renderer[alignTo], renderer);
-
-		// Assign variables
-		align = alignOptions.align;
-		vAlign = alignOptions.verticalAlign;
-		x = (box.x || 0) + (alignOptions.x || 0); // default: left align
-		y = (box.y || 0) + (alignOptions.y || 0); // default: top align
-
-		// Align
-		if (align === 'right' || align === 'center') {
-			x += (box.width - (alignOptions.width || 0)) /
-					{ right: 1, center: 2 }[align];
-		}
-		attribs[alignByTranslate ? 'translateX' : 'x'] = mathRound(x);
-
-
-		// Vertical align
-		if (vAlign === 'bottom' || vAlign === 'middle') {
-			y += (box.height - (alignOptions.height || 0)) /
-					({ bottom: 1, middle: 2 }[vAlign] || 1);
-
-		}
-		attribs[alignByTranslate ? 'translateY' : 'y'] = mathRound(y);
-
-		// Animate only if already placed
-		this[this.placed ? 'animate' : 'attr'](attribs);
-		this.placed = true;
-		this.alignAttr = attribs;
-
-		return this;
-	},
-
-	/**
-	 * Get the bounding box (width, height, x and y) for the element
-	 */
-	getBBox: function () {
-		var wrapper = this,
-			bBox = wrapper.bBox,
-			renderer = wrapper.renderer,
-			width,
-			height,
-			rotation = wrapper.rotation,
-			element = wrapper.element,
-			styles = wrapper.styles,
-			rad = rotation * deg2rad;
-
-		if (!bBox) {
-			// SVG elements
-			if (element.namespaceURI === SVG_NS || renderer.forExport) {
-				try { // Fails in Firefox if the container has display: none.
-
-					bBox = element.getBBox ?
-						// SVG: use extend because IE9 is not allowed to change width and height in case
-						// of rotation (below)
-						extend({}, element.getBBox()) :
-						// Canvas renderer and legacy IE in export mode
-						{
-							width: element.offsetWidth,
-							height: element.offsetHeight
-						};
-				} catch (e) {}
-
-				// If the bBox is not set, the try-catch block above failed. The other condition
-				// is for Opera that returns a width of -Infinity on hidden elements.
-				if (!bBox || bBox.width < 0) {
-					bBox = { width: 0, height: 0 };
-				}
-
-
-			// VML Renderer or useHTML within SVG
-			} else {
-
-				bBox = wrapper.htmlGetBBox();
-
-			}
-
-			// True SVG elements as well as HTML elements in modern browsers using the .useHTML option
-			// need to compensated for rotation
-			if (renderer.isSVG) {
-				width = bBox.width;
-				height = bBox.height;
-
-				// Workaround for wrong bounding box in IE9 and IE10 (#1101, #1505, #1669)
-				if (isIE && styles && styles.fontSize === '11px' && height.toPrecision(3) === '22.7') {
-					bBox.height = height = 14;
-				}
-
-				// Adjust for rotated text
-				if (rotation) {
-					bBox.width = mathAbs(height * mathSin(rad)) + mathAbs(width * mathCos(rad));
-					bBox.height = mathAbs(height * mathCos(rad)) + mathAbs(width * mathSin(rad));
-				}
-			}
-
-			wrapper.bBox = bBox;
-		}
-		return bBox;
-	},
-
-	/**
-	 * Show the element
-	 */
-	show: function () {
-		return this.attr({ visibility: VISIBLE });
-	},
-
-	/**
-	 * Hide the element
-	 */
-	hide: function () {
-		return this.attr({ visibility: HIDDEN });
-	},
-
-	fadeOut: function (duration) {
-		var elemWrapper = this;
-		elemWrapper.animate({
-			opacity: 0
-		}, {
-			duration: duration || 150,
-			complete: function () {
-				elemWrapper.hide();
-			}
-		});
-	},
-
-	/**
-	 * Add the element
-	 * @param {Object|Undefined} parent Can be an element, an element wrapper or undefined
-	 *    to append the element to the renderer.box.
-	 */
-	add: function (parent) {
-
-		var renderer = this.renderer,
-			parentWrapper = parent || renderer,
-			parentNode = parentWrapper.element || renderer.box,
-			childNodes = parentNode.childNodes,
-			element = this.element,
-			zIndex = attr(element, 'zIndex'),
-			otherElement,
-			otherZIndex,
-			i,
-			inserted;
-
-		if (parent) {
-			this.parentGroup = parent;
-		}
-
-		// mark as inverted
-		this.parentInverted = parent && parent.inverted;
-
-		// build formatted text
-		if (this.textStr !== undefined) {
-			renderer.buildText(this);
-		}
-
-		// mark the container as having z indexed children
-		if (zIndex) {
-			parentWrapper.handleZ = true;
-			zIndex = pInt(zIndex);
-		}
-
-		// insert according to this and other elements' zIndex
-		if (parentWrapper.handleZ) { // this element or any of its siblings has a z index
-			for (i = 0; i < childNodes.length; i++) {
-				otherElement = childNodes[i];
-				otherZIndex = attr(otherElement, 'zIndex');
-				if (otherElement !== element && (
-						// insert before the first element with a higher zIndex
-						pInt(otherZIndex) > zIndex ||
-						// if no zIndex given, insert before the first element with a zIndex
-						(!defined(zIndex) && defined(otherZIndex))
-
-						)) {
-					parentNode.insertBefore(element, otherElement);
-					inserted = true;
-					break;
-				}
-			}
-		}
-
-		// default: append at the end
-		if (!inserted) {
-			parentNode.appendChild(element);
-		}
-
-		// mark as added
-		this.added = true;
-
-		// fire an event for internal hooks
-		fireEvent(this, 'add');
-
-		return this;
-	},
-
-	/**
-	 * Removes a child either by removeChild or move to garbageBin.
-	 * Issue 490; in VML removeChild results in Orphaned nodes according to sIEve, discardElement does not.
-	 */
-	safeRemoveChild: function (element) {
-		var parentNode = element.parentNode;
-		if (parentNode) {
-			parentNode.removeChild(element);
-		}
-	},
-
-	/**
-	 * Destroy the element and element wrapper
-	 */
-	destroy: function () {
-		var wrapper = this,
-			element = wrapper.element || {},
-			shadows = wrapper.shadows,
-			parentToClean = wrapper.renderer.isSVG && element.nodeName === 'SPAN' && element.parentNode,
-			grandParent,
-			key,
-			i;
-
-		// remove events
-		element.onclick = element.onmouseout = element.onmouseover = element.onmousemove = element.point = null;
-		stop(wrapper); // stop running animations
-
-		if (wrapper.clipPath) {
-			wrapper.clipPath = wrapper.clipPath.destroy();
-		}
-
-		// Destroy stops in case this is a gradient object
-		if (wrapper.stops) {
-			for (i = 0; i < wrapper.stops.length; i++) {
-				wrapper.stops[i] = wrapper.stops[i].destroy();
-			}
-			wrapper.stops = null;
-		}
-
-		// remove element
-		wrapper.safeRemoveChild(element);
-
-		// destroy shadows
-		if (shadows) {
-			each(shadows, function (shadow) {
-				wrapper.safeRemoveChild(shadow);
-			});
-		}
-
-		// In case of useHTML, clean up empty containers emulating SVG groups (#1960).
-		while (parentToClean && parentToClean.childNodes.length === 0) {
-			grandParent = parentToClean.parentNode;
-			wrapper.safeRemoveChild(parentToClean);
-			parentToClean = grandParent;
-		}
-
-		// remove from alignObjects
-		if (wrapper.alignTo) {
-			erase(wrapper.renderer.alignedObjects, wrapper);
-		}
-
-		for (key in wrapper) {
-			delete wrapper[key];
-		}
-
-		return null;
-	},
-
-	/**
-	 * Add a shadow to the element. Must be done after the element is added to the DOM
-	 * @param {Boolean|Object} shadowOptions
-	 */
-	shadow: function (shadowOptions, group, cutOff) {
-		var shadows = [],
-			i,
-			shadow,
-			element = this.element,
-			strokeWidth,
-			shadowWidth,
-			shadowElementOpacity,
-
-			// compensate for inverted plot area
-			transform;
-
-
-		if (shadowOptions) {
-			shadowWidth = pick(shadowOptions.width, 3);
-			shadowElementOpacity = (shadowOptions.opacity || 0.15) / shadowWidth;
-			transform = this.parentInverted ?
-				'(-1,-1)' :
-				'(' + pick(shadowOptions.offsetX, 1) + ', ' + pick(shadowOptions.offsetY, 1) + ')';
-			for (i = 1; i <= shadowWidth; i++) {
-				shadow = element.cloneNode(0);
-				strokeWidth = (shadowWidth * 2) + 1 - (2 * i);
-				attr(shadow, {
-					'isShadow': 'true',
-					'stroke': shadowOptions.color || 'black',
-					'stroke-opacity': shadowElementOpacity * i,
-					'stroke-width': strokeWidth,
-					'transform': 'translate' + transform,
-					'fill': NONE
-				});
-				if (cutOff) {
-					attr(shadow, 'height', mathMax(attr(shadow, 'height') - strokeWidth, 0));
-					shadow.cutHeight = strokeWidth;
-				}
-
-				if (group) {
-					group.element.appendChild(shadow);
-				} else {
-					element.parentNode.insertBefore(shadow, element);
-				}
-
-				shadows.push(shadow);
-			}
-
-			this.shadows = shadows;
-		}
-		return this;
-
-	}
-};
-
-
-/**
- * The default SVG renderer
- */
-var SVGRenderer = function () {
-	this.init.apply(this, arguments);
-};
-SVGRenderer.prototype = {
-	Element: SVGElement,
-
-	/**
-	 * Initialize the SVGRenderer
-	 * @param {Object} container
-	 * @param {Number} width
-	 * @param {Number} height
-	 * @param {Boolean} forExport
-	 */
-	init: function (container, width, height, forExport) {
-		var renderer = this,
-			loc = location,
-			boxWrapper,
-			element,
-			desc;
-
-		boxWrapper = renderer.createElement('svg')
-			.attr({
-				version: '1.1'
-			});
-		element = boxWrapper.element;
-		container.appendChild(element);
-
-		// For browsers other than IE, add the namespace attribute (#1978)
-		if (container.innerHTML.indexOf('xmlns') === -1) {
-			attr(element, 'xmlns', SVG_NS);
-		}
-
-		// object properties
-		renderer.isSVG = true;
-		renderer.box = element;
-		renderer.boxWrapper = boxWrapper;
-		renderer.alignedObjects = [];
-
-		// Page url used for internal references. #24, #672, #1070
-		renderer.url = (isFirefox || isWebKit) && doc.getElementsByTagName('base').length ?
-			loc.href
-				.replace(/#.*?$/, '') // remove the hash
-				.replace(/([\('\)])/g, '\\$1') // escape parantheses and quotes
-				.replace(/ /g, '%20') : // replace spaces (needed for Safari only)
-			'';
-
-		// Add description
-		desc = this.createElement('desc').add();
-		desc.element.appendChild(doc.createTextNode('Created with ' + PRODUCT + ' ' + VERSION));
-
-
-		renderer.defs = this.createElement('defs').add();
-		renderer.forExport = forExport;
-		renderer.gradients = {}; // Object where gradient SvgElements are stored
-
-		renderer.setSize(width, height, false);
-
-
-
-		// Issue 110 workaround:
-		// In Firefox, if a div is positioned by percentage, its pixel position may land
-		// between pixels. The container itself doesn't display this, but an SVG element
-		// inside this container will be drawn at subpixel precision. In order to draw
-		// sharp lines, this must be compensated for. This doesn't seem to work inside
-		// iframes though (like in jsFiddle).
-		var subPixelFix, rect;
-		if (isFirefox && container.getBoundingClientRect) {
-			renderer.subPixelFix = subPixelFix = function () {
-				css(container, { left: 0, top: 0 });
-				rect = container.getBoundingClientRect();
-				css(container, {
-					left: (mathCeil(rect.left) - rect.left) + PX,
-					top: (mathCeil(rect.top) - rect.top) + PX
-				});
-			};
-
-			// run the fix now
-			subPixelFix();
-
-			// run it on resize
-			addEvent(win, 'resize', subPixelFix);
-		}
-	},
-
-	/**
-	 * Detect whether the renderer is hidden. This happens when one of the parent elements
-	 * has display: none. #608.
-	 */
-	isHidden: function () {
-		return !this.boxWrapper.getBBox().width;
-	},
-
-	/**
-	 * Destroys the renderer and its allocated members.
-	 */
-	destroy: function () {
-		var renderer = this,
-			rendererDefs = renderer.defs;
-		renderer.box = null;
-		renderer.boxWrapper = renderer.boxWrapper.destroy();
-
-		// Call destroy on all gradient elements
-		destroyObjectProperties(renderer.gradients || {});
-		renderer.gradients = null;
-
-		// Defs are null in VMLRenderer
-		// Otherwise, destroy them here.
-		if (rendererDefs) {
-			renderer.defs = rendererDefs.destroy();
-		}
-
-		// Remove sub pixel fix handler
-		// We need to check that there is a handler, otherwise all functions that are registered for event 'resize' are removed
-		// See issue #982
-		if (renderer.subPixelFix) {
-			removeEvent(win, 'resize', renderer.subPixelFix);
-		}
-
-		renderer.alignedObjects = null;
-
-		return null;
-	},
-
-	/**
-	 * Create a wrapper for an SVG element
-	 * @param {Object} nodeName
-	 */
-	createElement: function (nodeName) {
-		var wrapper = new this.Element();
-		wrapper.init(this, nodeName);
-		return wrapper;
-	},
-
-	/**
-	 * Dummy function for use in canvas renderer
-	 */
-	draw: function () {},
-
-	/**
-	 * Parse a simple HTML string into SVG tspans
-	 *
-	 * @param {Object} textNode The parent text SVG node
-	 */
-	buildText: function (wrapper) {
-		var textNode = wrapper.element,
-			renderer = this,
-			forExport = renderer.forExport,
-			lines = pick(wrapper.textStr, '').toString()
-				.replace(/<(b|strong)>/g, '<span style="font-weight:bold">')
-				.replace(/<(i|em)>/g, '<span style="font-style:italic">')
-				.replace(/<a/g, '<span')
-				.replace(/<\/(b|strong|i|em|a)>/g, '</span>')
-				.split(/<br.*?>/g),
-			childNodes = textNode.childNodes,
-			styleRegex = /style="([^"]+)"/,
-			hrefRegex = /href="(http[^"]+)"/,
-			parentX = attr(textNode, 'x'),
-			textStyles = wrapper.styles,
-			width = textStyles && textStyles.width && pInt(textStyles.width),
-			textLineHeight = textStyles && textStyles.lineHeight,
-			i = childNodes.length;
-
-		/// remove old text
-		while (i--) {
-			textNode.removeChild(childNodes[i]);
-		}
-
-		if (width && !wrapper.added) {
-			this.box.appendChild(textNode); // attach it to the DOM to read offset width
-		}
-
-		// remove empty line at end
-		if (lines[lines.length - 1] === '') {
-			lines.pop();
-		}
-
-		// build the lines
-		each(lines, function (line, lineNo) {
-			var spans, spanNo = 0;
-
-			line = line.replace(/<span/g, '|||<span').replace(/<\/span>/g, '</span>|||');
-			spans = line.split('|||');
-
-			each(spans, function (span) {
-				if (span !== '' || spans.length === 1) {
-					var attributes = {},
-						tspan = doc.createElementNS(SVG_NS, 'tspan'),
-						spanStyle; // #390
-					if (styleRegex.test(span)) {
-						spanStyle = span.match(styleRegex)[1].replace(/(;| |^)color([ :])/, '$1fill$2');
-						attr(tspan, 'style', spanStyle);
-					}
-					if (hrefRegex.test(span) && !forExport) { // Not for export - #1529
-						attr(tspan, 'onclick', 'location.href=\"' + span.match(hrefRegex)[1] + '\"');
-						css(tspan, { cursor: 'pointer' });
-					}
-
-					span = (span.replace(/<(.|\n)*?>/g, '') || ' ')
-						.replace(/&lt;/g, '<')
-						.replace(/&gt;/g, '>');
-
-					// Nested tags aren't supported, and cause crash in Safari (#1596)
-					if (span !== ' ') {
-
-						// add the text node
-						tspan.appendChild(doc.createTextNode(span));
-
-						if (!spanNo) { // first span in a line, align it to the left
-							attributes.x = parentX;
-						} else {
-							attributes.dx = 0; // #16
-						}
-
-						// add attributes
-						attr(tspan, attributes);
-
-						// first span on subsequent line, add the line height
-						if (!spanNo && lineNo) {
-
-							// allow getting the right offset height in exporting in IE
-							if (!hasSVG && forExport) {
-								css(tspan, { display: 'block' });
-							}
-
-							// Set the line height based on the font size of either
-							// the text element or the tspan element
-							attr(
-								tspan,
-								'dy',
-								textLineHeight || renderer.fontMetrics(
-									/px$/.test(tspan.style.fontSize) ?
-										tspan.style.fontSize :
-										textStyles.fontSize
-								).h,
-								// Safari 6.0.2 - too optimized for its own good (#1539)
-								// TODO: revisit this with future versions of Safari
-								isWebKit && tspan.offsetHeight
-							);
-						}
-
-						// Append it
-						textNode.appendChild(tspan);
-
-						spanNo++;
-
-						// check width and apply soft breaks
-						if (width) {
-							var words = span.replace(/([^\^])-/g, '$1- ').split(' '), // #1273
-								tooLong,
-								actualWidth,
-								clipHeight = wrapper._clipHeight,
-								rest = [],
-								dy = pInt(textLineHeight || 16),
-								softLineNo = 1,
-								bBox;
-
-							while (words.length || rest.length) {
-								delete wrapper.bBox; // delete cache
-								bBox = wrapper.getBBox();
-								actualWidth = bBox.width;
-								tooLong = actualWidth > width;
-								if (!tooLong || words.length === 1) { // new line needed
-									words = rest;
-									rest = [];
-									if (words.length) {
-										softLineNo++;
-
-										if (clipHeight && softLineNo * dy > clipHeight) {
-											words = ['...'];
-											wrapper.attr('title', wrapper.textStr);
-										} else {
-
-											tspan = doc.createElementNS(SVG_NS, 'tspan');
-											attr(tspan, {
-												dy: dy,
-												x: parentX
-											});
-											if (spanStyle) { // #390
-												attr(tspan, 'style', spanStyle);
-											}
-											textNode.appendChild(tspan);
-
-											if (actualWidth > width) { // a single word is pressing it out
-												width = actualWidth;
-											}
-										}
-									}
-								} else { // append to existing line tspan
-									tspan.removeChild(tspan.firstChild);
-									rest.unshift(words.pop());
-								}
-								if (words.length) {
-									tspan.appendChild(doc.createTextNode(words.join(' ').replace(/- /g, '-')));
-								}
-							}
-						}
-					}
-				}
-			});
-		});
-	},
-
-	/**
-	 * Create a button with preset states
-	 * @param {String} text
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @param {Function} callback
-	 * @param {Object} normalState
-	 * @param {Object} hoverState
-	 * @param {Object} pressedState
-	 */
-	button: function (text, x, y, callback, normalState, hoverState, pressedState, disabledState) {
-		var label = this.label(text, x, y, null, null, null, null, null, 'button'),
-			curState = 0,
-			stateOptions,
-			stateStyle,
-			normalStyle,
-			hoverStyle,
-			pressedStyle,
-			disabledStyle,
-			STYLE = 'style',
-			verticalGradient = { x1: 0, y1: 0, x2: 0, y2: 1 };
-
-		// Normal state - prepare the attributes
-		normalState = merge({
-			'stroke-width': 1,
-			stroke: '#CCCCCC',
-			fill: {
-				linearGradient: verticalGradient,
-				stops: [
-					[0, '#FEFEFE'],
-					[1, '#F6F6F6']
-				]
-			},
-			r: 2,
-			padding: 5,
-			style: {
-				color: 'black'
-			}
-		}, normalState);
-		normalStyle = normalState[STYLE];
-		delete normalState[STYLE];
-
-		// Hover state
-		hoverState = merge(normalState, {
-			stroke: '#68A',
-			fill: {
-				linearGradient: verticalGradient,
-				stops: [
-					[0, '#FFF'],
-					[1, '#ACF']
-				]
-			}
-		}, hoverState);
-		hoverStyle = hoverState[STYLE];
-		delete hoverState[STYLE];
-
-		// Pressed state
-		pressedState = merge(normalState, {
-			stroke: '#68A',
-			fill: {
-				linearGradient: verticalGradient,
-				stops: [
-					[0, '#9BD'],
-					[1, '#CDF']
-				]
-			}
-		}, pressedState);
-		pressedStyle = pressedState[STYLE];
-		delete pressedState[STYLE];
-
-		// Disabled state
-		disabledState = merge(normalState, {
-			style: {
-				color: '#CCC'
-			}
-		}, disabledState);
-		disabledStyle = disabledState[STYLE];
-		delete disabledState[STYLE];
-
-		// Add the events. IE9 and IE10 need mouseover and mouseout to funciton (#667).
-		addEvent(label.element, isIE ? 'mouseover' : 'mouseenter', function () {
-			if (curState !== 3) {
-				label.attr(hoverState)
-					.css(hoverStyle);
-			}
-		});
-		addEvent(label.element, isIE ? 'mouseout' : 'mouseleave', function () {
-			if (curState !== 3) {
-				stateOptions = [normalState, hoverState, pressedState][curState];
-				stateStyle = [normalStyle, hoverStyle, pressedStyle][curState];
-				label.attr(stateOptions)
-					.css(stateStyle);
-			}
-		});
-
-		label.setState = function (state) {
-			label.state = curState = state;
-			if (!state) {
-				label.attr(normalState)
-					.css(normalStyle);
-			} else if (state === 2) {
-				label.attr(pressedState)
-					.css(pressedStyle);
-			} else if (state === 3) {
-				label.attr(disabledState)
-					.css(disabledStyle);
-			}
-		};
-
-		return label
-			.on('click', function () {
-				if (curState !== 3) {
-					callback.call(label);
-				}
-			})
-			.attr(normalState)
-			.css(extend({ cursor: 'default' }, normalStyle));
-	},
-
-	/**
-	 * Make a straight line crisper by not spilling out to neighbour pixels
-	 * @param {Array} points
-	 * @param {Number} width
-	 */
-	crispLine: function (points, width) {
-		// points format: [M, 0, 0, L, 100, 0]
-		// normalize to a crisp line
-		if (points[1] === points[4]) {
-			// Substract due to #1129. Now bottom and left axis gridlines behave the same.
-			points[1] = points[4] = mathRound(points[1]) - (width % 2 / 2);
-		}
-		if (points[2] === points[5]) {
-			points[2] = points[5] = mathRound(points[2]) + (width % 2 / 2);
-		}
-		return points;
-	},
-
-
-	/**
-	 * Draw a path
-	 * @param {Array} path An SVG path in array form
-	 */
-	path: function (path) {
-		var attr = {
-			fill: NONE
-		};
-		if (isArray(path)) {
-			attr.d = path;
-		} else if (isObject(path)) { // attributes
-			extend(attr, path);
-		}
-		return this.createElement('path').attr(attr);
-	},
-
-	/**
-	 * Draw and return an SVG circle
-	 * @param {Number} x The x position
-	 * @param {Number} y The y position
-	 * @param {Number} r The radius
-	 */
-	circle: function (x, y, r) {
-		var attr = isObject(x) ?
-			x :
-			{
-				x: x,
-				y: y,
-				r: r
-			};
-
-		return this.createElement('circle').attr(attr);
-	},
-
-	/**
-	 * Draw and return an arc
-	 * @param {Number} x X position
-	 * @param {Number} y Y position
-	 * @param {Number} r Radius
-	 * @param {Number} innerR Inner radius like used in donut charts
-	 * @param {Number} start Starting angle
-	 * @param {Number} end Ending angle
-	 */
-	arc: function (x, y, r, innerR, start, end) {
-		var arc;
-
-		if (isObject(x)) {
-			y = x.y;
-			r = x.r;
-			innerR = x.innerR;
-			start = x.start;
-			end = x.end;
-			x = x.x;
-		}
-
-		// Arcs are defined as symbols for the ability to set
-		// attributes in attr and animate
-		arc = this.symbol('arc', x || 0, y || 0, r || 0, r || 0, {
-			innerR: innerR || 0,
-			start: start || 0,
-			end: end || 0
-		});
-		arc.r = r; // #959
-		return arc;
-	},
-
-	/**
-	 * Draw and return a rectangle
-	 * @param {Number} x Left position
-	 * @param {Number} y Top position
-	 * @param {Number} width
-	 * @param {Number} height
-	 * @param {Number} r Border corner radius
-	 * @param {Number} strokeWidth A stroke width can be supplied to allow crisp drawing
-	 */
-	rect: function (x, y, width, height, r, strokeWidth) {
-
-		r = isObject(x) ? x.r : r;
-
-		var wrapper = this.createElement('rect').attr({
-				rx: r,
-				ry: r,
-				fill: NONE
-			});
-		return wrapper.attr(
-				isObject(x) ?
-					x :
-					// do not crispify when an object is passed in (as in column charts)
-					wrapper.crisp(strokeWidth, x, y, mathMax(width, 0), mathMax(height, 0))
-			);
-	},
-
-	/**
-	 * Resize the box and re-align all aligned elements
-	 * @param {Object} width
-	 * @param {Object} height
-	 * @param {Boolean} animate
-	 *
-	 */
-	setSize: function (width, height, animate) {
-		var renderer = this,
-			alignedObjects = renderer.alignedObjects,
-			i = alignedObjects.length;
-
-		renderer.width = width;
-		renderer.height = height;
-
-		renderer.boxWrapper[pick(animate, true) ? 'animate' : 'attr']({
-			width: width,
-			height: height
-		});
-
-		while (i--) {
-			alignedObjects[i].align();
-		}
-	},
-
-	/**
-	 * Create a group
-	 * @param {String} name The group will be given a class name of 'highcharts-{name}'.
-	 *     This can be used for styling and scripting.
-	 */
-	g: function (name) {
-		var elem = this.createElement('g');
-		return defined(name) ? elem.attr({ 'class': PREFIX + name }) : elem;
-	},
-
-	/**
-	 * Display an image
-	 * @param {String} src
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @param {Number} width
-	 * @param {Number} height
-	 */
-	image: function (src, x, y, width, height) {
-		var attribs = {
-				preserveAspectRatio: NONE
-			},
-			elemWrapper;
-
-		// optional properties
-		if (arguments.length > 1) {
-			extend(attribs, {
-				x: x,
-				y: y,
-				width: width,
-				height: height
-			});
-		}
-
-		elemWrapper = this.createElement('image').attr(attribs);
-
-		// set the href in the xlink namespace
-		if (elemWrapper.element.setAttributeNS) {
-			elemWrapper.element.setAttributeNS('http://www.w3.org/1999/xlink',
-				'href', src);
-		} else {
-			// could be exporting in IE
-			// using href throws "not supported" in ie7 and under, requries regex shim to fix later
-			elemWrapper.element.setAttribute('hc-svg-href', src);
-	}
-
-		return elemWrapper;
-	},
-
-	/**
-	 * Draw a symbol out of pre-defined shape paths from the namespace 'symbol' object.
-	 *
-	 * @param {Object} symbol
-	 * @param {Object} x
-	 * @param {Object} y
-	 * @param {Object} radius
-	 * @param {Object} options
-	 */
-	symbol: function (symbol, x, y, width, height, options) {
-
-		var obj,
-
-			// get the symbol definition function
-			symbolFn = this.symbols[symbol],
-
-			// check if there's a path defined for this symbol
-			path = symbolFn && symbolFn(
-				mathRound(x),
-				mathRound(y),
-				width,
-				height,
-				options
-			),
-
-			imageElement,
-			imageRegex = /^url\((.*?)\)$/,
-			imageSrc,
-			imageSize,
-			centerImage;
-
-		if (path) {
-
-			obj = this.path(path);
-			// expando properties for use in animate and attr
-			extend(obj, {
-				symbolName: symbol,
-				x: x,
-				y: y,
-				width: width,
-				height: height
-			});
-			if (options) {
-				extend(obj, options);
-			}
-
-
-		// image symbols
-		} else if (imageRegex.test(symbol)) {
-
-			// On image load, set the size and position
-			centerImage = function (img, size) {
-				if (img.element) { // it may be destroyed in the meantime (#1390)
-					img.attr({
-						width: size[0],
-						height: size[1]
-					});
-
-					if (!img.alignByTranslate) { // #185
-						img.translate(
-							mathRound((width - size[0]) / 2), // #1378
-							mathRound((height - size[1]) / 2)
-						);
-					}
-				}
-			};
-
-			imageSrc = symbol.match(imageRegex)[1];
-			imageSize = symbolSizes[imageSrc];
-
-			// Ireate the image synchronously, add attribs async
-			obj = this.image(imageSrc)
-				.attr({
-					x: x,
-					y: y
-				});
-			obj.isImg = true;
-
-			if (imageSize) {
-				centerImage(obj, imageSize);
-			} else {
-				// Initialize image to be 0 size so export will still function if there's no cached sizes.
-				//
-				obj.attr({ width: 0, height: 0 });
-
-				// Create a dummy JavaScript image to get the width and height. Due to a bug in IE < 8,
-				// the created element must be assigned to a variable in order to load (#292).
-				imageElement = createElement('img', {
-					onload: function () {
-						centerImage(obj, symbolSizes[imageSrc] = [this.width, this.height]);
-					},
-					src: imageSrc
-				});
-			}
-		}
-
-		return obj;
-	},
-
-	/**
-	 * An extendable collection of functions for defining symbol paths.
-	 */
-	symbols: {
-		'circle': function (x, y, w, h) {
-			var cpw = 0.166 * w;
-			return [
-				M, x + w / 2, y,
-				'C', x + w + cpw, y, x + w + cpw, y + h, x + w / 2, y + h,
-				'C', x - cpw, y + h, x - cpw, y, x + w / 2, y,
-				'Z'
-			];
-		},
-
-		'square': function (x, y, w, h) {
-			return [
-				M, x, y,
-				L, x + w, y,
-				x + w, y + h,
-				x, y + h,
-				'Z'
-			];
-		},
-
-		'triangle': function (x, y, w, h) {
-			return [
-				M, x + w / 2, y,
-				L, x + w, y + h,
-				x, y + h,
-				'Z'
-			];
-		},
-
-		'triangle-down': function (x, y, w, h) {
-			return [
-				M, x, y,
-				L, x + w, y,
-				x + w / 2, y + h,
-				'Z'
-			];
-		},
-		'diamond': function (x, y, w, h) {
-			return [
-				M, x + w / 2, y,
-				L, x + w, y + h / 2,
-				x + w / 2, y + h,
-				x, y + h / 2,
-				'Z'
-			];
-		},
-		'arc': function (x, y, w, h, options) {
-			var start = options.start,
-				radius = options.r || w || h,
-				end = options.end - 0.001, // to prevent cos and sin of start and end from becoming equal on 360 arcs (related: #1561)
-				innerRadius = options.innerR,
-				open = options.open,
-				cosStart = mathCos(start),
-				sinStart = mathSin(start),
-				cosEnd = mathCos(end),
-				sinEnd = mathSin(end),
-				longArc = options.end - start < mathPI ? 0 : 1;
-
-			return [
-				M,
-				x + radius * cosStart,
-				y + radius * sinStart,
-				'A', // arcTo
-				radius, // x radius
-				radius, // y radius
-				0, // slanting
-				longArc, // long or short arc
-				1, // clockwise
-				x + radius * cosEnd,
-				y + radius * sinEnd,
-				open ? M : L,
-				x + innerRadius * cosEnd,
-				y + innerRadius * sinEnd,
-				'A', // arcTo
-				innerRadius, // x radius
-				innerRadius, // y radius
-				0, // slanting
-				longArc, // long or short arc
-				0, // clockwise
-				x + innerRadius * cosStart,
-				y + innerRadius * sinStart,
-
-				open ? '' : 'Z' // close
-			];
-		}
-	},
-
-	/**
-	 * Define a clipping rectangle
-	 * @param {String} id
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @param {Number} width
-	 * @param {Number} height
-	 */
-	clipRect: function (x, y, width, height) {
-		var wrapper,
-			id = PREFIX + idCounter++,
-
-			clipPath = this.createElement('clipPath').attr({
-				id: id
-			}).add(this.defs);
-
-		wrapper = this.rect(x, y, width, height, 0).add(clipPath);
-		wrapper.id = id;
-		wrapper.clipPath = clipPath;
-
-		return wrapper;
-	},
-
-
-	/**
-	 * Take a color and return it if it's a string, make it a gradient if it's a
-	 * gradient configuration object. Prior to Highstock, an array was used to define
-	 * a linear gradient with pixel positions relative to the SVG. In newer versions
-	 * we change the coordinates to apply relative to the shape, using coordinates
-	 * 0-1 within the shape. To preserve backwards compatibility, linearGradient
-	 * in this definition is an object of x1, y1, x2 and y2.
-	 *
-	 * @param {Object} color The color or config object
-	 */
-	color: function (color, elem, prop) {
-		var renderer = this,
-			colorObject,
-			regexRgba = /^rgba/,
-			gradName,
-			gradAttr,
-			gradients,
-			gradientObject,
-			stops,
-			stopColor,
-			stopOpacity,
-			radialReference,
-			n,
-			id,
-			key = [];
-
-		// Apply linear or radial gradients
-		if (color && color.linearGradient) {
-			gradName = 'linearGradient';
-		} else if (color && color.radialGradient) {
-			gradName = 'radialGradient';
-		}
-
-		if (gradName) {
-			gradAttr = color[gradName];
-			gradients = renderer.gradients;
-			stops = color.stops;
-			radialReference = elem.radialReference;
-
-			// Keep < 2.2 kompatibility
-			if (isArray(gradAttr)) {
-				color[gradName] = gradAttr = {
-					x1: gradAttr[0],
-					y1: gradAttr[1],
-					x2: gradAttr[2],
-					y2: gradAttr[3],
-					gradientUnits: 'userSpaceOnUse'
-				};
-			}
-
-			// Correct the radial gradient for the radial reference system
-			if (gradName === 'radialGradient' && radialReference && !defined(gradAttr.gradientUnits)) {
-				gradAttr = merge(gradAttr, {
-					cx: (radialReference[0] - radialReference[2] / 2) + gradAttr.cx * radialReference[2],
-					cy: (radialReference[1] - radialReference[2] / 2) + gradAttr.cy * radialReference[2],
-					r: gradAttr.r * radialReference[2],
-					gradientUnits: 'userSpaceOnUse'
-				});
-			}
-
-			// Build the unique key to detect whether we need to create a new element (#1282)
-			for (n in gradAttr) {
-				if (n !== 'id') {
-					key.push(n, gradAttr[n]);
-				}
-			}
-			for (n in stops) {
-				key.push(stops[n]);
-			}
-			key = key.join(',');
-
-			// Check if a gradient object with the same config object is created within this renderer
-			if (gradients[key]) {
-				id = gradients[key].id;
-
-			} else {
-
-				// Set the id and create the element
-				gradAttr.id = id = PREFIX + idCounter++;
-				gradients[key] = gradientObject = renderer.createElement(gradName)
-					.attr(gradAttr)
-					.add(renderer.defs);
-
-
-				// The gradient needs to keep a list of stops to be able to destroy them
-				gradientObject.stops = [];
-				each(stops, function (stop) {
-					var stopObject;
-					if (regexRgba.test(stop[1])) {
-						colorObject = Color(stop[1]);
-						stopColor = colorObject.get('rgb');
-						stopOpacity = colorObject.get('a');
-					} else {
-						stopColor = stop[1];
-						stopOpacity = 1;
-					}
-					stopObject = renderer.createElement('stop').attr({
-						offset: stop[0],
-						'stop-color': stopColor,
-						'stop-opacity': stopOpacity
-					}).add(gradientObject);
-
-					// Add the stop element to the gradient
-					gradientObject.stops.push(stopObject);
-				});
-			}
-
-			// Return the reference to the gradient object
-			return 'url(' + renderer.url + '#' + id + ')';
-
-		// Webkit and Batik can't show rgba.
-		} else if (regexRgba.test(color)) {
-			colorObject = Color(color);
-			attr(elem, prop + '-opacity', colorObject.get('a'));
-
-			return colorObject.get('rgb');
-
-
-		} else {
-			// Remove the opacity attribute added above. Does not throw if the attribute is not there.
-			elem.removeAttribute(prop + '-opacity');
-
-			return color;
-		}
-
-	},
-
-
-	/**
-	 * Add text to the SVG object
-	 * @param {String} str
-	 * @param {Number} x Left position
-	 * @param {Number} y Top position
-	 * @param {Boolean} useHTML Use HTML to render the text
-	 */
-	text: function (str, x, y, useHTML) {
-
-		// declare variables
-		var renderer = this,
-			defaultChartStyle = defaultOptions.chart.style,
-			fakeSVG = useCanVG || (!hasSVG && renderer.forExport),
-			wrapper;
-
-		if (useHTML && !renderer.forExport) {
-			return renderer.html(str, x, y);
-		}
-
-		x = mathRound(pick(x, 0));
-		y = mathRound(pick(y, 0));
-
-		wrapper = renderer.createElement('text')
-			.attr({
-				x: x,
-				y: y,
-				text: str
-			})
-			.css({
-				fontFamily: defaultChartStyle.fontFamily,
-				fontSize: defaultChartStyle.fontSize
-			});
-
-		// Prevent wrapping from creating false offsetWidths in export in legacy IE (#1079, #1063)
-		if (fakeSVG) {
-			wrapper.css({
-				position: ABSOLUTE
-			});
-		}
-
-		wrapper.x = x;
-		wrapper.y = y;
-		return wrapper;
-	},
-
-
-	/**
-	 * Create HTML text node. This is used by the VML renderer as well as the SVG
-	 * renderer through the useHTML option.
-	 *
-	 * @param {String} str
-	 * @param {Number} x
-	 * @param {Number} y
-	 */
-	html: function (str, x, y) {
-		var defaultChartStyle = defaultOptions.chart.style,
-			wrapper = this.createElement('span'),
-			attrSetters = wrapper.attrSetters,
-			element = wrapper.element,
-			renderer = wrapper.renderer;
-
-		// Text setter
-		attrSetters.text = function (value) {
-			if (value !== element.innerHTML) {
-				delete this.bBox;
-			}
-			element.innerHTML = value;
-			return false;
-		};
-
-		// Various setters which rely on update transform
-		attrSetters.x = attrSetters.y = attrSetters.align = function (value, key) {
-			if (key === 'align') {
-				key = 'textAlign'; // Do not overwrite the SVGElement.align method. Same as VML.
-			}
-			wrapper[key] = value;
-			wrapper.htmlUpdateTransform();
-			return false;
-		};
-
-		// Set the default attributes
-		wrapper.attr({
-				text: str,
-				x: mathRound(x),
-				y: mathRound(y)
-			})
-			.css({
-				position: ABSOLUTE,
-				whiteSpace: 'nowrap',
-				fontFamily: defaultChartStyle.fontFamily,
-				fontSize: defaultChartStyle.fontSize
-			});
-
-		// Use the HTML specific .css method
-		wrapper.css = wrapper.htmlCss;
-
-		// This is specific for HTML within SVG
-		if (renderer.isSVG) {
-			wrapper.add = function (svgGroupWrapper) {
-
-				var htmlGroup,
-					container = renderer.box.parentNode,
-					parentGroup,
-					parents = [];
-
-				// Create a mock group to hold the HTML elements
-				if (svgGroupWrapper) {
-					htmlGroup = svgGroupWrapper.div;
-					if (!htmlGroup) {
-
-						// Read the parent chain into an array and read from top down
-						parentGroup = svgGroupWrapper;
-						while (parentGroup) {
-
-							parents.push(parentGroup);
-
-							// Move up to the next parent group
-							parentGroup = parentGroup.parentGroup;
-						}
-
-						// Ensure dynamically updating position when any parent is translated
-						each(parents.reverse(), function (parentGroup) {
-							var htmlGroupStyle;
-
-							// Create a HTML div and append it to the parent div to emulate
-							// the SVG group structure
-							htmlGroup = parentGroup.div = parentGroup.div || createElement(DIV, {
-								className: attr(parentGroup.element, 'class')
-							}, {
-								position: ABSOLUTE,
-								left: (parentGroup.translateX || 0) + PX,
-								top: (parentGroup.translateY || 0) + PX
-							}, htmlGroup || container); // the top group is appended to container
-
-							// Shortcut
-							htmlGroupStyle = htmlGroup.style;
-
-							// Set listeners to update the HTML div's position whenever the SVG group
-							// position is changed
-							extend(parentGroup.attrSetters, {
-								translateX: function (value) {
-									htmlGroupStyle.left = value + PX;
-								},
-								translateY: function (value) {
-									htmlGroupStyle.top = value + PX;
-								},
-								visibility: function (value, key) {
-									htmlGroupStyle[key] = value;
-								}
-							});
-						});
-
-					}
-				} else {
-					htmlGroup = container;
-				}
-
-				htmlGroup.appendChild(element);
-
-				// Shared with VML:
-				wrapper.added = true;
-				if (wrapper.alignOnAdd) {
-					wrapper.htmlUpdateTransform();
-				}
-
-				return wrapper;
-			};
-		}
-		return wrapper;
-	},
-
-	/**
-	 * Utility to return the baseline offset and total line height from the font size
-	 */
-	fontMetrics: function (fontSize) {
-		fontSize = pInt(fontSize || 11);
-
-		// Empirical values found by comparing font size and bounding box height.
-		// Applies to the default font family. http://jsfiddle.net/highcharts/7xvn7/
-		var lineHeight = fontSize < 24 ? fontSize + 4 : mathRound(fontSize * 1.2),
-			baseline = mathRound(lineHeight * 0.8);
-
-		return {
-			h: lineHeight,
-			b: baseline
-		};
-	},
-
-	/**
-	 * Add a label, a text item that can hold a colored or gradient background
-	 * as well as a border and shadow.
-	 * @param {string} str
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @param {String} shape
-	 * @param {Number} anchorX In case the shape has a pointer, like a flag, this is the
-	 *    coordinates it should be pinned to
-	 * @param {Number} anchorY
-	 * @param {Boolean} baseline Whether to position the label relative to the text baseline,
-	 *    like renderer.text, or to the upper border of the rectangle.
-	 * @param {String} className Class name for the group
-	 */
-	label: function (str, x, y, shape, anchorX, anchorY, useHTML, baseline, className) {
-
-		var renderer = this,
-			wrapper = renderer.g(className),
-			text = renderer.text('', 0, 0, useHTML)
-				.attr({
-					zIndex: 1
-				}),
-				//.add(wrapper),
-			box,
-			bBox,
-			alignFactor = 0,
-			padding = 3,
-			paddingLeft = 0,
-			width,
-			height,
-			wrapperX,
-			wrapperY,
-			crispAdjust = 0,
-			deferredAttr = {},
-			baselineOffset,
-			attrSetters = wrapper.attrSetters,
-			needsBox;
-
-		/**
-		 * This function runs after the label is added to the DOM (when the bounding box is
-		 * available), and after the text of the label is updated to detect the new bounding
-		 * box and reflect it in the border box.
-		 */
-		function updateBoxSize() {
-			var boxX,
-				boxY,
-				style = text.element.style;
-
-			bBox = (width === undefined || height === undefined || wrapper.styles.textAlign) &&
-				text.getBBox();
-			wrapper.width = (width || bBox.width || 0) + 2 * padding + paddingLeft;
-			wrapper.height = (height || bBox.height || 0) + 2 * padding;
-
-			// update the label-scoped y offset
-			baselineOffset = padding + renderer.fontMetrics(style && style.fontSize).b;
-
-			if (needsBox) {
-
-				// create the border box if it is not already present
-				if (!box) {
-					boxX = mathRound(-alignFactor * padding);
-					boxY = baseline ? -baselineOffset : 0;
-
-					wrapper.box = box = shape ?
-						renderer.symbol(shape, boxX, boxY, wrapper.width, wrapper.height) :
-						renderer.rect(boxX, boxY, wrapper.width, wrapper.height, 0, deferredAttr[STROKE_WIDTH]);
-					box.add(wrapper);
-				}
-
-				// apply the box attributes
-				if (!box.isImg) { // #1630
-					box.attr(merge({
-						width: wrapper.width,
-						height: wrapper.height
-					}, deferredAttr));
-				}
-				deferredAttr = null;
-			}
-		}
-
-		/**
-		 * This function runs after setting text or padding, but only if padding is changed
-		 */
-		function updateTextPadding() {
-			var styles = wrapper.styles,
-				textAlign = styles && styles.textAlign,
-				x = paddingLeft + padding * (1 - alignFactor),
-				y;
-
-			// determin y based on the baseline
-			y = baseline ? 0 : baselineOffset;
-
-			// compensate for alignment
-			if (defined(width) && (textAlign === 'center' || textAlign === 'right')) {
-				x += { center: 0.5, right: 1 }[textAlign] * (width - bBox.width);
-			}
-
-			// update if anything changed
-			if (x !== text.x || y !== text.y) {
-				text.attr({
-					x: x,
-					y: y
-				});
-			}
-
-			// record current values
-			text.x = x;
-			text.y = y;
-		}
-
-		/**
-		 * Set a box attribute, or defer it if the box is not yet created
-		 * @param {Object} key
-		 * @param {Object} value
-		 */
-		function boxAttr(key, value) {
-			if (box) {
-				box.attr(key, value);
-			} else {
-				deferredAttr[key] = value;
-			}
-		}
-
-		function getSizeAfterAdd() {
-			text.add(wrapper);
-			wrapper.attr({
-				text: str, // alignment is available now
-				x: x,
-				y: y
-			});
-
-			if (box && defined(anchorX)) {
-				wrapper.attr({
-					anchorX: anchorX,
-					anchorY: anchorY
-				});
-			}
-		}
-
-		/**
-		 * After the text element is added, get the desired size of the border box
-		 * and add it before the text in the DOM.
-		 */
-		addEvent(wrapper, 'add', getSizeAfterAdd);
-
-		/*
-		 * Add specific attribute setters.
-		 */
-
-		// only change local variables
-		attrSetters.width = function (value) {
-			width = value;
-			return false;
-		};
-		attrSetters.height = function (value) {
-			height = value;
-			return false;
-		};
-		attrSetters.padding =  function (value) {
-			if (defined(value) && value !== padding) {
-				padding = value;
-				updateTextPadding();
-			}
-			return false;
-		};
-		attrSetters.paddingLeft =  function (value) {
-			if (defined(value) && value !== paddingLeft) {
-				paddingLeft = value;
-				updateTextPadding();
-			}
-			return false;
-		};
-
-
-		// change local variable and set attribue as well
-		attrSetters.align = function (value) {
-			alignFactor = { left: 0, center: 0.5, right: 1 }[value];
-			return false; // prevent setting text-anchor on the group
-		};
-
-		// apply these to the box and the text alike
-		attrSetters.text = function (value, key) {
-			text.attr(key, value);
-			updateBoxSize();
-			updateTextPadding();
-			return false;
-		};
-
-		// apply these to the box but not to the text
-		attrSetters[STROKE_WIDTH] = function (value, key) {
-			needsBox = true;
-			crispAdjust = value % 2 / 2;
-			boxAttr(key, value);
-			return false;
-		};
-		attrSetters.stroke = attrSetters.fill = attrSetters.r = function (value, key) {
-			if (key === 'fill') {
-				needsBox = true;
-			}
-			boxAttr(key, value);
-			return false;
-		};
-		attrSetters.anchorX = function (value, key) {
-			anchorX = value;
-			boxAttr(key, value + crispAdjust - wrapperX);
-			return false;
-		};
-		attrSetters.anchorY = function (value, key) {
-			anchorY = value;
-			boxAttr(key, value - wrapperY);
-			return false;
-		};
-
-		// rename attributes
-		attrSetters.x = function (value) {
-			wrapper.x = value; // for animation getter
-			value -= alignFactor * ((width || bBox.width) + padding);
-			wrapperX = mathRound(value);
-
-			wrapper.attr('translateX', wrapperX);
-			return false;
-		};
-		attrSetters.y = function (value) {
-			wrapperY = wrapper.y = mathRound(value);
-			wrapper.attr('translateY', wrapperY);
-			return false;
-		};
-
-		// Redirect certain methods to either the box or the text
-		var baseCss = wrapper.css;
-		return extend(wrapper, {
-			/**
-			 * Pick up some properties and apply them to the text instead of the wrapper
-			 */
-			css: function (styles) {
-				if (styles) {
-					var textStyles = {};
-					styles = merge(styles); // create a copy to avoid altering the original object (#537)
-					each(['fontSize', 'fontWeight', 'fontFamily', 'color', 'lineHeight', 'width', 'textDecoration', 'textShadow'], function (prop) {
-						if (styles[prop] !== UNDEFINED) {
-							textStyles[prop] = styles[prop];
-							delete styles[prop];
-						}
-					});
-					text.css(textStyles);
-				}
-				return baseCss.call(wrapper, styles);
-			},
-			/**
-			 * Return the bounding box of the box, not the group
-			 */
-			getBBox: function () {
-				return {
-					width: bBox.width + 2 * padding,
-					height: bBox.height + 2 * padding,
-					x: bBox.x - padding,
-					y: bBox.y - padding
-				};
-			},
-			/**
-			 * Apply the shadow to the box
-			 */
-			shadow: function (b) {
-				if (box) {
-					box.shadow(b);
-				}
-				return wrapper;
-			},
-			/**
-			 * Destroy and release memory.
-			 */
-			destroy: function () {
-				removeEvent(wrapper, 'add', getSizeAfterAdd);
-
-				// Added by button implementation
-				removeEvent(wrapper.element, 'mouseenter');
-				removeEvent(wrapper.element, 'mouseleave');
-
-				if (text) {
-					text = text.destroy();
-				}
-				if (box) {
-					box = box.destroy();
-				}
-				// Call base implementation to destroy the rest
-				SVGElement.prototype.destroy.call(wrapper);
-
-				// Release local pointers (#1298)
-				wrapper = renderer = updateBoxSize = updateTextPadding = boxAttr = getSizeAfterAdd = null;
-			}
-		});
-	}
-}; // end SVGRenderer
-
-
-// general renderer
-Renderer = SVGRenderer;
-
-
-/* ****************************************************************************
- *                                                                            *
- * START OF INTERNET EXPLORER <= 8 SPECIFIC CODE                              *
- *                                                                            *
- * For applications and websites that don't need IE support, like platform    *
- * targeted mobile apps and web apps, this code can be removed.               *
- *                                                                            *
- *****************************************************************************/
-
-/**
- * @constructor
- */
-var VMLRenderer, VMLElement;
-if (!hasSVG && !useCanVG) {
-
-/**
- * The VML element wrapper.
- */
-Highcharts.VMLElement = VMLElement = {
-
-	/**
-	 * Initialize a new VML element wrapper. It builds the markup as a string
-	 * to minimize DOM traffic.
-	 * @param {Object} renderer
-	 * @param {Object} nodeName
-	 */
-	init: function (renderer, nodeName) {
-		var wrapper = this,
-			markup =  ['<', nodeName, ' filled="f" stroked="f"'],
-			style = ['position: ', ABSOLUTE, ';'],
-			isDiv = nodeName === DIV;
-
-		// divs and shapes need size
-		if (nodeName === 'shape' || isDiv) {
-			style.push('left:0;top:0;width:1px;height:1px;');
-		}
-		style.push('visibility: ', isDiv ? HIDDEN : VISIBLE);
-
-		markup.push(' style="', style.join(''), '"/>');
-
-		// create element with default attributes and style
-		if (nodeName) {
-			markup = isDiv || nodeName === 'span' || nodeName === 'img' ?
-				markup.join('')
-				: renderer.prepVML(markup);
-			wrapper.element = createElement(markup);
-		}
-
-		wrapper.renderer = renderer;
-		wrapper.attrSetters = {};
-	},
-
-	/**
-	 * Add the node to the given parent
-	 * @param {Object} parent
-	 */
-	add: function (parent) {
-		var wrapper = this,
-			renderer = wrapper.renderer,
-			element = wrapper.element,
-			box = renderer.box,
-			inverted = parent && parent.inverted,
-
-			// get the parent node
-			parentNode = parent ?
-				parent.element || parent :
-				box;
-
-
-		// if the parent group is inverted, apply inversion on all children
-		if (inverted) { // only on groups
-			renderer.invertChild(element, parentNode);
-		}
-
-		// append it
-		parentNode.appendChild(element);
-
-		// align text after adding to be able to read offset
-		wrapper.added = true;
-		if (wrapper.alignOnAdd && !wrapper.deferUpdateTransform) {
-			wrapper.updateTransform();
-		}
-
-		// fire an event for internal hooks
-		fireEvent(wrapper, 'add');
-
-		return wrapper;
-	},
-
-	/**
-	 * VML always uses htmlUpdateTransform
-	 */
-	updateTransform: SVGElement.prototype.htmlUpdateTransform,
-
-	/**
-	 * Set the rotation of a span with oldIE's filter
-	 */
-	setSpanRotation: function (rotation, sintheta, costheta) {
-		// Adjust for alignment and rotation. Rotation of useHTML content is not yet implemented
-		// but it can probably be implemented for Firefox 3.5+ on user request. FF3.5+
-		// has support for CSS3 transform. The getBBox method also needs to be updated
-		// to compensate for the rotation, like it currently does for SVG.
-		// Test case: http://highcharts.com/tests/?file=text-rotation
-		css(this.element, {
-			filter: rotation ? ['progid:DXImageTransform.Microsoft.Matrix(M11=', costheta,
-				', M12=', -sintheta, ', M21=', sintheta, ', M22=', costheta,
-				', sizingMethod=\'auto expand\')'].join('') : NONE
-		});
-	},
-
-	/**
-	 * Converts a subset of an SVG path definition to its VML counterpart. Takes an array
-	 * as the parameter and returns a string.
-	 */
-	pathToVML: function (value) {
-		// convert paths
-		var i = value.length,
-			path = [],
-			clockwise;
-
-		while (i--) {
-
-			// Multiply by 10 to allow subpixel precision.
-			// Substracting half a pixel seems to make the coordinates
-			// align with SVG, but this hasn't been tested thoroughly
-			if (isNumber(value[i])) {
-				path[i] = mathRound(value[i] * 10) - 5;
-			} else if (value[i] === 'Z') { // close the path
-				path[i] = 'x';
-			} else {
-				path[i] = value[i];
-
-				// When the start X and end X coordinates of an arc are too close,
-				// they are rounded to the same value above. In this case, substract 1 from the end X
-				// position. #760, #1371.
-				if (value.isArc && (value[i] === 'wa' || value[i] === 'at')) {
-					clockwise = value[i] === 'wa' ? 1 : -1; // #1642
-					if (path[i + 5] === path[i + 7]) {
-						path[i + 7] -= clockwise;
-					}
-					// Start and end Y (#1410)
-					if (path[i + 6] === path[i + 8]) {
-						path[i + 8] -= clockwise;
-					}
-				}
-			}
-		}
-		// Loop up again to handle path shortcuts (#2132)
-		/*while (i++ < path.length) {
-			if (path[i] === 'H') { // horizontal line to
-				path[i] = 'L';
-				path.splice(i + 2, 0, path[i - 1]);
-			} else if (path[i] === 'V') { // vertical line to
-				path[i] = 'L';
-				path.splice(i + 1, 0, path[i - 2]);
-			}
-		}*/
-		return path.join(' ') || 'x';
-	},
-
-	/**
-	 * Get or set attributes
-	 */
-	attr: function (hash, val) {
-		var wrapper = this,
-			key,
-			value,
-			i,
-			result,
-			element = wrapper.element || {},
-			elemStyle = element.style,
-			nodeName = element.nodeName,
-			renderer = wrapper.renderer,
-			symbolName = wrapper.symbolName,
-			hasSetSymbolSize,
-			shadows = wrapper.shadows,
-			skipAttr,
-			attrSetters = wrapper.attrSetters,
-			ret = wrapper;
-
-		// single key-value pair
-		if (isString(hash) && defined(val)) {
-			key = hash;
-			hash = {};
-			hash[key] = val;
-		}
-
-		// used as a getter, val is undefined
-		if (isString(hash)) {
-			key = hash;
-			if (key === 'strokeWidth' || key === 'stroke-width') {
-				ret = wrapper.strokeweight;
-			} else {
-				ret = wrapper[key];
-			}
-
-		// setter
-		} else {
-			for (key in hash) {
-				value = hash[key];
-				skipAttr = false;
-
-				// check for a specific attribute setter
-				result = attrSetters[key] && attrSetters[key].call(wrapper, value, key);
-
-				if (result !== false && value !== null) { // #620
-
-					if (result !== UNDEFINED) {
-						value = result; // the attribute setter has returned a new value to set
-					}
-
-
-					// prepare paths
-					// symbols
-					if (symbolName && /^(x|y|r|start|end|width|height|innerR|anchorX|anchorY)/.test(key)) {
-						// if one of the symbol size affecting parameters are changed,
-						// check all the others only once for each call to an element's
-						// .attr() method
-						if (!hasSetSymbolSize) {
-							wrapper.symbolAttr(hash);
-
-							hasSetSymbolSize = true;
-						}
-						skipAttr = true;
-
-					} else if (key === 'd') {
-						value = value || [];
-						wrapper.d = value.join(' '); // used in getter for animation
-
-						element.path = value = wrapper.pathToVML(value);
-
-						// update shadows
-						if (shadows) {
-							i = shadows.length;
-							while (i--) {
-								shadows[i].path = shadows[i].cutOff ? this.cutOffPath(value, shadows[i].cutOff) : value;
-							}
-						}
-						skipAttr = true;
-
-					// handle visibility
-					} else if (key === 'visibility') {
-
-						// let the shadow follow the main element
-						if (shadows) {
-							i = shadows.length;
-							while (i--) {
-								shadows[i].style[key] = value;
-							}
-						}
-
-						// Instead of toggling the visibility CSS property, move the div out of the viewport.
-						// This works around #61 and #586
-						if (nodeName === 'DIV') {
-							value = value === HIDDEN ? '-999em' : 0;
-
-							// In order to redraw, IE7 needs the div to be visible when tucked away
-							// outside the viewport. So the visibility is actually opposite of
-							// the expected value. This applies to the tooltip only.
-							if (!docMode8) {
-								elemStyle[key] = value ? VISIBLE : HIDDEN;
-							}
-							key = 'top';
-						}
-						elemStyle[key] = value;
-						skipAttr = true;
-
-					// directly mapped to css
-					} else if (key === 'zIndex') {
-
-						if (value) {
-							elemStyle[key] = value;
-						}
-						skipAttr = true;
-
-					// x, y, width, height
-					} else if (inArray(key, ['x', 'y', 'width', 'height']) !== -1) {
-
-						wrapper[key] = value; // used in getter
-
-						if (key === 'x' || key === 'y') {
-							key = { x: 'left', y: 'top' }[key];
-						} else {
-							value = mathMax(0, value); // don't set width or height below zero (#311)
-						}
-
-						// clipping rectangle special
-						if (wrapper.updateClipping) {
-							wrapper[key] = value; // the key is now 'left' or 'top' for 'x' and 'y'
-							wrapper.updateClipping();
-						} else {
-							// normal
-							elemStyle[key] = value;
-						}
-
-						skipAttr = true;
-
-					// class name
-					} else if (key === 'class' && nodeName === 'DIV') {
-						// IE8 Standards mode has problems retrieving the className
-						element.className = value;
-
-					// stroke
-					} else if (key === 'stroke') {
-
-						value = renderer.color(value, element, key);
-
-						key = 'strokecolor';
-
-					// stroke width
-					} else if (key === 'stroke-width' || key === 'strokeWidth') {
-						element.stroked = value ? true : false;
-						key = 'strokeweight';
-						wrapper[key] = value; // used in getter, issue #113
-						if (isNumber(value)) {
-							value += PX;
-						}
-
-					// dashStyle
-					} else if (key === 'dashstyle') {
-						var strokeElem = element.getElementsByTagName('stroke')[0] ||
-							createElement(renderer.prepVML(['<stroke/>']), null, null, element);
-						strokeElem[key] = value || 'solid';
-						wrapper.dashstyle = value; /* because changing stroke-width will change the dash length
-							and cause an epileptic effect */
-						skipAttr = true;
-
-					// fill
-					} else if (key === 'fill') {
-
-						if (nodeName === 'SPAN') { // text color
-							elemStyle.color = value;
-						} else if (nodeName !== 'IMG') { // #1336
-							element.filled = value !== NONE ? true : false;
-
-							value = renderer.color(value, element, key, wrapper);
-
-							key = 'fillcolor';
-						}
-
-					// opacity: don't bother - animation is too slow and filters introduce artifacts
-					} else if (key === 'opacity') {
-						/*css(element, {
-							opacity: value
-						});*/
-						skipAttr = true;
-
-					// rotation on VML elements
-					} else if (nodeName === 'shape' && key === 'rotation') {
-
-						wrapper[key] = element.style[key] = value; // style is for #1873
-
-						// Correction for the 1x1 size of the shape container. Used in gauge needles.
-						element.style.left = -mathRound(mathSin(value * deg2rad) + 1) + PX;
-						element.style.top = mathRound(mathCos(value * deg2rad)) + PX;
-
-					// translation for animation
-					} else if (key === 'translateX' || key === 'translateY' || key === 'rotation') {
-						wrapper[key] = value;
-						wrapper.updateTransform();
-
-						skipAttr = true;
-
-					// text for rotated and non-rotated elements
-					} else if (key === 'text') {
-						this.bBox = null;
-						element.innerHTML = value;
-						skipAttr = true;
-					}
-
-
-					if (!skipAttr) {
-						if (docMode8) { // IE8 setAttribute bug
-							element[key] = value;
-						} else {
-							attr(element, key, value);
-						}
-					}
-
-				}
-			}
-		}
-		return ret;
-	},
-
-	/**
-	 * Set the element's clipping to a predefined rectangle
-	 *
-	 * @param {String} id The id of the clip rectangle
-	 */
-	clip: function (clipRect) {
-		var wrapper = this,
-			clipMembers,
-			cssRet;
-
-		if (clipRect) {
-			clipMembers = clipRect.members;
-			erase(clipMembers, wrapper); // Ensure unique list of elements (#1258)
-			clipMembers.push(wrapper);
-			wrapper.destroyClip = function () {
-				erase(clipMembers, wrapper);
-			};
-			cssRet = clipRect.getCSS(wrapper);
-
-		} else {
-			if (wrapper.destroyClip) {
-				wrapper.destroyClip();
-			}
-			cssRet = { clip: docMode8 ? 'inherit' : 'rect(auto)' }; // #1214
-		}
-
-		return wrapper.css(cssRet);
-
-	},
-
-	/**
-	 * Set styles for the element
-	 * @param {Object} styles
-	 */
-	css: SVGElement.prototype.htmlCss,
-
-	/**
-	 * Removes a child either by removeChild or move to garbageBin.
-	 * Issue 490; in VML removeChild results in Orphaned nodes according to sIEve, discardElement does not.
-	 */
-	safeRemoveChild: function (element) {
-		// discardElement will detach the node from its parent before attaching it
-		// to the garbage bin. Therefore it is important that the node is attached and have parent.
-		if (element.parentNode) {
-			discardElement(element);
-		}
-	},
-
-	/**
-	 * Extend element.destroy by removing it from the clip members array
-	 */
-	destroy: function () {
-		if (this.destroyClip) {
-			this.destroyClip();
-		}
-
-		return SVGElement.prototype.destroy.apply(this);
-	},
-
-	/**
-	 * Add an event listener. VML override for normalizing event parameters.
-	 * @param {String} eventType
-	 * @param {Function} handler
-	 */
-	on: function (eventType, handler) {
-		// simplest possible event model for internal use
-		this.element['on' + eventType] = function () {
-			var evt = win.event;
-			evt.target = evt.srcElement;
-			handler(evt);
-		};
-		return this;
-	},
-
-	/**
-	 * In stacked columns, cut off the shadows so that they don't overlap
-	 */
-	cutOffPath: function (path, length) {
-
-		var len;
-
-		path = path.split(/[ ,]/);
-		len = path.length;
-
-		if (len === 9 || len === 11) {
-			path[len - 4] = path[len - 2] = pInt(path[len - 2]) - 10 * length;
-		}
-		return path.join(' ');
-	},
-
-	/**
-	 * Apply a drop shadow by copying elements and giving them different strokes
-	 * @param {Boolean|Object} shadowOptions
-	 */
-	shadow: function (shadowOptions, group, cutOff) {
-		var shadows = [],
-			i,
-			element = this.element,
-			renderer = this.renderer,
-			shadow,
-			elemStyle = element.style,
-			markup,
-			path = element.path,
-			strokeWidth,
-			modifiedPath,
-			shadowWidth,
-			shadowElementOpacity;
-
-		// some times empty paths are not strings
-		if (path && typeof path.value !== 'string') {
-			path = 'x';
-		}
-		modifiedPath = path;
-
-		if (shadowOptions) {
-			shadowWidth = pick(shadowOptions.width, 3);
-			shadowElementOpacity = (shadowOptions.opacity || 0.15) / shadowWidth;
-			for (i = 1; i <= 3; i++) {
-
-				strokeWidth = (shadowWidth * 2) + 1 - (2 * i);
-
-				// Cut off shadows for stacked column items
-				if (cutOff) {
-					modifiedPath = this.cutOffPath(path.value, strokeWidth + 0.5);
-				}
-
-				markup = ['<shape isShadow="true" strokeweight="', strokeWidth,
-					'" filled="false" path="', modifiedPath,
-					'" coordsize="10 10" style="', element.style.cssText, '" />'];
-
-				shadow = createElement(renderer.prepVML(markup),
-					null, {
-						left: pInt(elemStyle.left) + pick(shadowOptions.offsetX, 1),
-						top: pInt(elemStyle.top) + pick(shadowOptions.offsetY, 1)
-					}
-				);
-				if (cutOff) {
-					shadow.cutOff = strokeWidth + 1;
-				}
-
-				// apply the opacity
-				markup = ['<stroke color="', shadowOptions.color || 'black', '" opacity="', shadowElementOpacity * i, '"/>'];
-				createElement(renderer.prepVML(markup), null, null, shadow);
-
-
-				// insert it
-				if (group) {
-					group.element.appendChild(shadow);
-				} else {
-					element.parentNode.insertBefore(shadow, element);
-				}
-
-				// record it
-				shadows.push(shadow);
-
-			}
-
-			this.shadows = shadows;
-		}
-		return this;
-
-	}
-};
-VMLElement = extendClass(SVGElement, VMLElement);
-
-/**
- * The VML renderer
- */
-var VMLRendererExtension = { // inherit SVGRenderer
-
-	Element: VMLElement,
-	isIE8: userAgent.indexOf('MSIE 8.0') > -1,
-
-
-	/**
-	 * Initialize the VMLRenderer
-	 * @param {Object} container
-	 * @param {Number} width
-	 * @param {Number} height
-	 */
-	init: function (container, width, height) {
-		var renderer = this,
-			boxWrapper,
-			box;
-
-		renderer.alignedObjects = [];
-
-		boxWrapper = renderer.createElement(DIV);
-		box = boxWrapper.element;
-		box.style.position = RELATIVE; // for freeform drawing using renderer directly
-		container.appendChild(boxWrapper.element);
-
-
-		// generate the containing box
-		renderer.isVML = true;
-		renderer.box = box;
-		renderer.boxWrapper = boxWrapper;
-
-
-		renderer.setSize(width, height, false);
-
-		// The only way to make IE6 and IE7 print is to use a global namespace. However,
-		// with IE8 the only way to make the dynamic shapes visible in screen and print mode
-		// seems to be to add the xmlns attribute and the behaviour style inline.
-		if (!doc.namespaces.hcv) {
-
-			doc.namespaces.add('hcv', 'urn:schemas-microsoft-com:vml');
-
-			// Setup default CSS (#2153)
-			(doc.styleSheets.length ? doc.styleSheets[0] : doc.createStyleSheet()).cssText +=
-				'hcv\\:fill, hcv\\:path, hcv\\:shape, hcv\\:stroke' +
-				'{ behavior:url(#default#VML); display: inline-block; } ';
-
-		}
-	},
-
-
-	/**
-	 * Detect whether the renderer is hidden. This happens when one of the parent elements
-	 * has display: none
-	 */
-	isHidden: function () {
-		return !this.box.offsetWidth;
-	},
-
-	/**
-	 * Define a clipping rectangle. In VML it is accomplished by storing the values
-	 * for setting the CSS style to all associated members.
-	 *
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @param {Number} width
-	 * @param {Number} height
-	 */
-	clipRect: function (x, y, width, height) {
-
-		// create a dummy element
-		var clipRect = this.createElement(),
-			isObj = isObject(x);
-
-		// mimic a rectangle with its style object for automatic updating in attr
-		return extend(clipRect, {
-			members: [],
-			left: (isObj ? x.x : x) + 1,
-			top: (isObj ? x.y : y) + 1,
-			width: (isObj ? x.width : width) - 1,
-			height: (isObj ? x.height : height) - 1,
-			getCSS: function (wrapper) {
-				var element = wrapper.element,
-					nodeName = element.nodeName,
-					isShape = nodeName === 'shape',
-					inverted = wrapper.inverted,
-					rect = this,
-					top = rect.top - (isShape ? element.offsetTop : 0),
-					left = rect.left,
-					right = left + rect.width,
-					bottom = top + rect.height,
-					ret = {
-						clip: 'rect(' +
-							mathRound(inverted ? left : top) + 'px,' +
-							mathRound(inverted ? bottom : right) + 'px,' +
-							mathRound(inverted ? right : bottom) + 'px,' +
-							mathRound(inverted ? top : left) + 'px)'
-					};
-
-				// issue 74 workaround
-				if (!inverted && docMode8 && nodeName === 'DIV') {
-					extend(ret, {
-						width: right + PX,
-						height: bottom + PX
-					});
-				}
-				return ret;
-			},
-
-			// used in attr and animation to update the clipping of all members
-			updateClipping: function () {
-				each(clipRect.members, function (member) {
-					member.css(clipRect.getCSS(member));
-				});
-			}
-		});
-
-	},
-
-
-	/**
-	 * Take a color and return it if it's a string, make it a gradient if it's a
-	 * gradient configuration object, and apply opacity.
-	 *
-	 * @param {Object} color The color or config object
-	 */
-	color: function (color, elem, prop, wrapper) {
-		var renderer = this,
-			colorObject,
-			regexRgba = /^rgba/,
-			markup,
-			fillType,
-			ret = NONE;
-
-		// Check for linear or radial gradient
-		if (color && color.linearGradient) {
-			fillType = 'gradient';
-		} else if (color && color.radialGradient) {
-			fillType = 'pattern';
-		}
-
-
-		if (fillType) {
-
-			var stopColor,
-				stopOpacity,
-				gradient = color.linearGradient || color.radialGradient,
-				x1,
-				y1,
-				x2,
-				y2,
-				opacity1,
-				opacity2,
-				color1,
-				color2,
-				fillAttr = '',
-				stops = color.stops,
-				firstStop,
-				lastStop,
-				colors = [],
-				addFillNode = function () {
-					// Add the fill subnode. When colors attribute is used, the meanings of opacity and o:opacity2
-					// are reversed.
-					markup = ['<fill colors="' + colors.join(',') + '" opacity="', opacity2, '" o:opacity2="', opacity1,
-						'" type="', fillType, '" ', fillAttr, 'focus="100%" method="any" />'];
-					createElement(renderer.prepVML(markup), null, null, elem);
-				};
-
-			// Extend from 0 to 1
-			firstStop = stops[0];
-			lastStop = stops[stops.length - 1];
-			if (firstStop[0] > 0) {
-				stops.unshift([
-					0,
-					firstStop[1]
-				]);
-			}
-			if (lastStop[0] < 1) {
-				stops.push([
-					1,
-					lastStop[1]
-				]);
-			}
-
-			// Compute the stops
-			each(stops, function (stop, i) {
-				if (regexRgba.test(stop[1])) {
-					colorObject = Color(stop[1]);
-					stopColor = colorObject.get('rgb');
-					stopOpacity = colorObject.get('a');
-				} else {
-					stopColor = stop[1];
-					stopOpacity = 1;
-				}
-
-				// Build the color attribute
-				colors.push((stop[0] * 100) + '% ' + stopColor);
-
-				// Only start and end opacities are allowed, so we use the first and the last
-				if (!i) {
-					opacity1 = stopOpacity;
-					color2 = stopColor;
-				} else {
-					opacity2 = stopOpacity;
-					color1 = stopColor;
-				}
-			});
-
-			// Apply the gradient to fills only.
-			if (prop === 'fill') {
-
-				// Handle linear gradient angle
-				if (fillType === 'gradient') {
-					x1 = gradient.x1 || gradient[0] || 0;
-					y1 = gradient.y1 || gradient[1] || 0;
-					x2 = gradient.x2 || gradient[2] || 0;
-					y2 = gradient.y2 || gradient[3] || 0;
-					fillAttr = 'angle="' + (90  - math.atan(
-						(y2 - y1) / // y vector
-						(x2 - x1) // x vector
-						) * 180 / mathPI) + '"';
-
-					addFillNode();
-
-				// Radial (circular) gradient
-				} else {
-
-					var r = gradient.r,
-						sizex = r * 2,
-						sizey = r * 2,
-						cx = gradient.cx,
-						cy = gradient.cy,
-						radialReference = elem.radialReference,
-						bBox,
-						applyRadialGradient = function () {
-							if (radialReference) {
-								bBox = wrapper.getBBox();
-								cx += (radialReference[0] - bBox.x) / bBox.width - 0.5;
-								cy += (radialReference[1] - bBox.y) / bBox.height - 0.5;
-								sizex *= radialReference[2] / bBox.width;
-								sizey *= radialReference[2] / bBox.height;
-							}
-							fillAttr = 'src="' + defaultOptions.global.VMLRadialGradientURL + '" ' +
-								'size="' + sizex + ',' + sizey + '" ' +
-								'origin="0.5,0.5" ' +
-								'position="' + cx + ',' + cy + '" ' +
-								'color2="' + color2 + '" ';
-
-							addFillNode();
-						};
-
-					// Apply radial gradient
-					if (wrapper.added) {
-						applyRadialGradient();
-					} else {
-						// We need to know the bounding box to get the size and position right
-						addEvent(wrapper, 'add', applyRadialGradient);
-					}
-
-					// The fill element's color attribute is broken in IE8 standards mode, so we
-					// need to set the parent shape's fillcolor attribute instead.
-					ret = color1;
-				}
-
-			// Gradients are not supported for VML stroke, return the first color. #722.
-			} else {
-				ret = stopColor;
-			}
-
-		// if the color is an rgba color, split it and add a fill node
-		// to hold the opacity component
-		} else if (regexRgba.test(color) && elem.tagName !== 'IMG') {
-
-			colorObject = Color(color);
-
-			markup = ['<', prop, ' opacity="', colorObject.get('a'), '"/>'];
-			createElement(this.prepVML(markup), null, null, elem);
-
-			ret = colorObject.get('rgb');
-
-
-		} else {
-			var propNodes = elem.getElementsByTagName(prop); // 'stroke' or 'fill' node
-			if (propNodes.length) {
-				propNodes[0].opacity = 1;
-				propNodes[0].type = 'solid';
-			}
-			ret = color;
-		}
-
-		return ret;
-	},
-
-	/**
-	 * Take a VML string and prepare it for either IE8 or IE6/IE7.
-	 * @param {Array} markup A string array of the VML markup to prepare
-	 */
-	prepVML: function (markup) {
-		var vmlStyle = 'display:inline-block;behavior:url(#default#VML);',
-			isIE8 = this.isIE8;
-
-		markup = markup.join('');
-
-		if (isIE8) { // add xmlns and style inline
-			markup = markup.replace('/>', ' xmlns="urn:schemas-microsoft-com:vml" />');
-			if (markup.indexOf('style="') === -1) {
-				markup = markup.replace('/>', ' style="' + vmlStyle + '" />');
-			} else {
-				markup = markup.replace('style="', 'style="' + vmlStyle);
-			}
-
-		} else { // add namespace
-			markup = markup.replace('<', '<hcv:');
-		}
-
-		return markup;
-	},
-
-	/**
-	 * Create rotated and aligned text
-	 * @param {String} str
-	 * @param {Number} x
-	 * @param {Number} y
-	 */
-	text: SVGRenderer.prototype.html,
-
-	/**
-	 * Create and return a path element
-	 * @param {Array} path
-	 */
-	path: function (path) {
-		var attr = {
-			// subpixel precision down to 0.1 (width and height = 1px)
-			coordsize: '10 10'
-		};
-		if (isArray(path)) {
-			attr.d = path;
-		} else if (isObject(path)) { // attributes
-			extend(attr, path);
-		}
-		// create the shape
-		return this.createElement('shape').attr(attr);
-	},
-
-	/**
-	 * Create and return a circle element. In VML circles are implemented as
-	 * shapes, which is faster than v:oval
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @param {Number} r
-	 */
-	circle: function (x, y, r) {
-		var circle = this.symbol('circle');
-		if (isObject(x)) {
-			r = x.r;
-			y = x.y;
-			x = x.x;
-		}
-		circle.isCircle = true; // Causes x and y to mean center (#1682)
-		circle.r = r;
-		return circle.attr({ x: x, y: y });
-	},
-
-	/**
-	 * Create a group using an outer div and an inner v:group to allow rotating
-	 * and flipping. A simple v:group would have problems with positioning
-	 * child HTML elements and CSS clip.
-	 *
-	 * @param {String} name The name of the group
-	 */
-	g: function (name) {
-		var wrapper,
-			attribs;
-
-		// set the class name
-		if (name) {
-			attribs = { 'className': PREFIX + name, 'class': PREFIX + name };
-		}
-
-		// the div to hold HTML and clipping
-		wrapper = this.createElement(DIV).attr(attribs);
-
-		return wrapper;
-	},
-
-	/**
-	 * VML override to create a regular HTML image
-	 * @param {String} src
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @param {Number} width
-	 * @param {Number} height
-	 */
-	image: function (src, x, y, width, height) {
-		var obj = this.createElement('img')
-			.attr({ src: src });
-
-		if (arguments.length > 1) {
-			obj.attr({
-				x: x,
-				y: y,
-				width: width,
-				height: height
-			});
-		}
-		return obj;
-	},
-
-	/**
-	 * VML uses a shape for rect to overcome bugs and rotation problems
-	 */
-	rect: function (x, y, width, height, r, strokeWidth) {
-
-		var wrapper = this.symbol('rect');
-		wrapper.r = isObject(x) ? x.r : r;
-
-		//return wrapper.attr(wrapper.crisp(strokeWidth, x, y, mathMax(width, 0), mathMax(height, 0)));
-		return wrapper.attr(
-				isObject(x) ?
-					x :
-					// do not crispify when an object is passed in (as in column charts)
-					wrapper.crisp(strokeWidth, x, y, mathMax(width, 0), mathMax(height, 0))
-			);
-	},
-
-	/**
-	 * In the VML renderer, each child of an inverted div (group) is inverted
-	 * @param {Object} element
-	 * @param {Object} parentNode
-	 */
-	invertChild: function (element, parentNode) {
-		var parentStyle = parentNode.style;
-		css(element, {
-			flip: 'x',
-			left: pInt(parentStyle.width) - 1,
-			top: pInt(parentStyle.height) - 1,
-			rotation: -90
-		});
-	},
-
-	/**
-	 * Symbol definitions that override the parent SVG renderer's symbols
-	 *
-	 */
-	symbols: {
-		// VML specific arc function
-		arc: function (x, y, w, h, options) {
-			var start = options.start,
-				end = options.end,
-				radius = options.r || w || h,
-				innerRadius = options.innerR,
-				cosStart = mathCos(start),
-				sinStart = mathSin(start),
-				cosEnd = mathCos(end),
-				sinEnd = mathSin(end),
-				ret;
-
-			if (end - start === 0) { // no angle, don't show it.
-				return ['x'];
-			}
-
-			ret = [
-				'wa', // clockwise arc to
-				x - radius, // left
-				y - radius, // top
-				x + radius, // right
-				y + radius, // bottom
-				x + radius * cosStart, // start x
-				y + radius * sinStart, // start y
-				x + radius * cosEnd, // end x
-				y + radius * sinEnd  // end y
-			];
-
-			if (options.open && !innerRadius) {
-				ret.push(
-					'e',
-					M,
-					x,// - innerRadius,
-					y// - innerRadius
-				);
-			}
-
-			ret.push(
-				'at', // anti clockwise arc to
-				x - innerRadius, // left
-				y - innerRadius, // top
-				x + innerRadius, // right
-				y + innerRadius, // bottom
-				x + innerRadius * cosEnd, // start x
-				y + innerRadius * sinEnd, // start y
-				x + innerRadius * cosStart, // end x
-				y + innerRadius * sinStart, // end y
-				'x', // finish path
-				'e' // close
-			);
-
-			ret.isArc = true;
-			return ret;
-
-		},
-		// Add circle symbol path. This performs significantly faster than v:oval.
-		circle: function (x, y, w, h, wrapper) {
-
-			if (wrapper) {
-				w = h = 2 * wrapper.r;
-			}
-
-			// Center correction, #1682
-			if (wrapper && wrapper.isCircle) {
-				x -= w / 2;
-				y -= h / 2;
-			}
-
-			// Return the path
-			return [
-				'wa', // clockwisearcto
-				x, // left
-				y, // top
-				x + w, // right
-				y + h, // bottom
-				x + w, // start x
-				y + h / 2,     // start y
-				x + w, // end x
-				y + h / 2,     // end y
-				//'x', // finish path
-				'e' // close
-			];
-		},
-		/**
-		 * Add rectangle symbol path which eases rotation and omits arcsize problems
-		 * compared to the built-in VML roundrect shape
-		 *
-		 * @param {Number} left Left position
-		 * @param {Number} top Top position
-		 * @param {Number} r Border radius
-		 * @param {Object} options Width and height
-		 */
-
-		rect: function (left, top, width, height, options) {
-
-			var right = left + width,
-				bottom = top + height,
-				ret,
-				r;
-
-			// No radius, return the more lightweight square
-			if (!defined(options) || !options.r) {
-				ret = SVGRenderer.prototype.symbols.square.apply(0, arguments);
-
-			// Has radius add arcs for the corners
-			} else {
-
-				r = mathMin(options.r, width, height);
-				ret = [
-					M,
-					left + r, top,
-
-					L,
-					right - r, top,
-					'wa',
-					right - 2 * r, top,
-					right, top + 2 * r,
-					right - r, top,
-					right, top + r,
-
-					L,
-					right, bottom - r,
-					'wa',
-					right - 2 * r, bottom - 2 * r,
-					right, bottom,
-					right, bottom - r,
-					right - r, bottom,
-
-					L,
-					left + r, bottom,
-					'wa',
-					left, bottom - 2 * r,
-					left + 2 * r, bottom,
-					left + r, bottom,
-					left, bottom - r,
-
-					L,
-					left, top + r,
-					'wa',
-					left, top,
-					left + 2 * r, top + 2 * r,
-					left, top + r,
-					left + r, top,
-
-
-					'x',
-					'e'
-				];
-			}
-			return ret;
-		}
-	}
-};
-Highcharts.VMLRenderer = VMLRenderer = function () {
-	this.init.apply(this, arguments);
-};
-VMLRenderer.prototype = merge(SVGRenderer.prototype, VMLRendererExtension);
-
-	// general renderer
-	Renderer = VMLRenderer;
-}
-
-/* ****************************************************************************
- *                                                                            *
- * END OF INTERNET EXPLORER <= 8 SPECIFIC CODE                                *
- *                                                                            *
- *****************************************************************************/
-/* ****************************************************************************
- *                                                                            *
- * START OF ANDROID < 3 SPECIFIC CODE. THIS CAN BE REMOVED IF YOU'RE NOT      *
- * TARGETING THAT SYSTEM.                                                     *
- *                                                                            *
- *****************************************************************************/
-var CanVGRenderer,
-	CanVGController;
-
-if (useCanVG) {
-	/**
-	 * The CanVGRenderer is empty from start to keep the source footprint small.
-	 * When requested, the CanVGController downloads the rest of the source packaged
-	 * together with the canvg library.
-	 */
-	Highcharts.CanVGRenderer = CanVGRenderer = function () {
-		// Override the global SVG namespace to fake SVG/HTML that accepts CSS
-		SVG_NS = 'http://www.w3.org/1999/xhtml';
-	};
-
-	/**
-	 * Start with an empty symbols object. This is needed when exporting is used (exporting.src.js will add a few symbols), but 
-	 * the implementation from SvgRenderer will not be merged in until first render.
-	 */
-	CanVGRenderer.prototype.symbols = {};
-
-	/**
-	 * Handles on demand download of canvg rendering support.
-	 */
-	CanVGController = (function () {
-		// List of renderering calls
-		var deferredRenderCalls = [];
-
-		/**
-		 * When downloaded, we are ready to draw deferred charts.
-		 */
-		function drawDeferred() {
-			var callLength = deferredRenderCalls.length,
-				callIndex;
-
-			// Draw all pending render calls
-			for (callIndex = 0; callIndex < callLength; callIndex++) {
-				deferredRenderCalls[callIndex]();
-			}
-			// Clear the list
-			deferredRenderCalls = [];
-		}
-
-		return {
-			push: function (func, scriptLocation) {
-				// Only get the script once
-				if (deferredRenderCalls.length === 0) {
-					getScript(scriptLocation, drawDeferred);
-				}
-				// Register render call
-				deferredRenderCalls.push(func);
-			}
-		};
-	}());
-
-	Renderer = CanVGRenderer;
-} // end CanVGRenderer
-
-/* ****************************************************************************
- *                                                                            *
- * END OF ANDROID < 3 SPECIFIC CODE                                           *
- *                                                                            *
- *****************************************************************************/
-
-/**
- * The Tick class
- */
-function Tick(axis, pos, type, noLabel) {
-	this.axis = axis;
-	this.pos = pos;
-	this.type = type || '';
-	this.isNew = true;
-
-	if (!type && !noLabel) {
-		this.addLabel();
-	}
-}
-
-Tick.prototype = {
-	/**
-	 * Write the tick label
-	 */
-	addLabel: function () {
-		var tick = this,
-			axis = tick.axis,
-			options = axis.options,
-			chart = axis.chart,
-			horiz = axis.horiz,
-			categories = axis.categories,
-			names = axis.series[0] && axis.series[0].names,
-			pos = tick.pos,
-			labelOptions = options.labels,
-			str,
-			tickPositions = axis.tickPositions,
-			width = (horiz && categories &&
-				!labelOptions.step && !labelOptions.staggerLines &&
-				!labelOptions.rotation &&
-				chart.plotWidth / tickPositions.length) ||
-				(!horiz && (chart.margin[3] || chart.chartWidth * 0.33)), // #1580, #1931
-			isFirst = pos === tickPositions[0],
-			isLast = pos === tickPositions[tickPositions.length - 1],
-			css,
-			attr,
-			value = categories ?
-				pick(categories[pos], names && names[pos], pos) : 
-				pos,
-			label = tick.label,
-			tickPositionInfo = tickPositions.info,
-			dateTimeLabelFormat;
-
-		// Set the datetime label format. If a higher rank is set for this position, use that. If not,
-		// use the general format.
-		if (axis.isDatetimeAxis && tickPositionInfo) {
-			dateTimeLabelFormat = options.dateTimeLabelFormats[tickPositionInfo.higherRanks[pos] || tickPositionInfo.unitName];
-		}
-
-		// set properties for access in render method
-		tick.isFirst = isFirst;
-		tick.isLast = isLast;
-
-		// get the string
-		str = axis.labelFormatter.call({
-			axis: axis,
-			chart: chart,
-			isFirst: isFirst,
-			isLast: isLast,
-			dateTimeLabelFormat: dateTimeLabelFormat,
-			value: axis.isLog ? correctFloat(lin2log(value)) : value
-		});
-
-		// prepare CSS
-		css = width && { width: mathMax(1, mathRound(width - 2 * (labelOptions.padding || 10))) + PX };
-		css = extend(css, labelOptions.style);
-
-		// first call
-		if (!defined(label)) {
-			attr = {
-				align: axis.labelAlign
-			};
-			if (isNumber(labelOptions.rotation)) {
-				attr.rotation = labelOptions.rotation;
-			}
-			if (width && labelOptions.ellipsis) {
-				attr._clipHeight = axis.len / tickPositions.length;
-			}
-
-			tick.label =
-				defined(str) && labelOptions.enabled ?
-					chart.renderer.text(
-							str,
-							0,
-							0,
-							labelOptions.useHTML
-						)
-						.attr(attr)
-						// without position absolute, IE export sometimes is wrong
-						.css(css)
-						.add(axis.labelGroup) :
-					null;
-
-		// update
-		} else if (label) {
-			label.attr({
-					text: str
-				})
-				.css(css);
-		}
-	},
-
-	/**
-	 * Get the offset height or width of the label
-	 */
-	getLabelSize: function () {
-		var label = this.label,
-			axis = this.axis;
-		return label ?
-			((this.labelBBox = label.getBBox()))[axis.horiz ? 'height' : 'width'] :
-			0;
-	},
-
-	/**
-	 * Find how far the labels extend to the right and left of the tick's x position. Used for anti-collision
-	 * detection with overflow logic.
-	 */
-	getLabelSides: function () {
-		var bBox = this.labelBBox, // assume getLabelSize has run at this point
-			axis = this.axis,
-			options = axis.options,
-			labelOptions = options.labels,
-			width = bBox.width,
-			leftSide = width * { left: 0, center: 0.5, right: 1 }[axis.labelAlign] - labelOptions.x;
-
-		return [-leftSide, width - leftSide];
-	},
-
-	/**
-	 * Handle the label overflow by adjusting the labels to the left and right edge, or
-	 * hide them if they collide into the neighbour label.
-	 */
-	handleOverflow: function (index, xy) {
-		var show = true,
-			axis = this.axis,
-			chart = axis.chart,
-			isFirst = this.isFirst,
-			isLast = this.isLast,
-			x = xy.x,
-			reversed = axis.reversed,
-			tickPositions = axis.tickPositions;
-
-		if (isFirst || isLast) {
-
-			var sides = this.getLabelSides(),
-				leftSide = sides[0],
-				rightSide = sides[1],
-				plotLeft = chart.plotLeft,
-				plotRight = plotLeft + axis.len,
-				neighbour = axis.ticks[tickPositions[index + (isFirst ? 1 : -1)]],
-				neighbourEdge = neighbour && neighbour.label.xy && neighbour.label.xy.x + neighbour.getLabelSides()[isFirst ? 0 : 1];
-
-			if ((isFirst && !reversed) || (isLast && reversed)) {
-				// Is the label spilling out to the left of the plot area?
-				if (x + leftSide < plotLeft) {
-
-					// Align it to plot left
-					x = plotLeft - leftSide;
-
-					// Hide it if it now overlaps the neighbour label
-					if (neighbour && x + rightSide > neighbourEdge) {
-						show = false;
-					}
-				}
-
-			} else {
-				// Is the label spilling out to the right of the plot area?
-				if (x + rightSide > plotRight) {
-
-					// Align it to plot right
-					x = plotRight - rightSide;
-
-					// Hide it if it now overlaps the neighbour label
-					if (neighbour && x + leftSide < neighbourEdge) {
-						show = false;
-					}
-
-				}
-			}
-
-			// Set the modified x position of the label
-			xy.x = x;
-		}
-		return show;
-	},
-
-	/**
-	 * Get the x and y position for ticks and labels
-	 */
-	getPosition: function (horiz, pos, tickmarkOffset, old) {
-		var axis = this.axis,
-			chart = axis.chart,
-			cHeight = (old && chart.oldChartHeight) || chart.chartHeight;
-		
-		return {
-			x: horiz ?
-				axis.translate(pos + tickmarkOffset, null, null, old) + axis.transB :
-				axis.left + axis.offset + (axis.opposite ? ((old && chart.oldChartWidth) || chart.chartWidth) - axis.right - axis.left : 0),
-
-			y: horiz ?
-				cHeight - axis.bottom + axis.offset - (axis.opposite ? axis.height : 0) :
-				cHeight - axis.translate(pos + tickmarkOffset, null, null, old) - axis.transB
-		};
-		
-	},
-	
-	/**
-	 * Get the x, y position of the tick label
-	 */
-	getLabelPosition: function (x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
-		var axis = this.axis,
-			transA = axis.transA,
-			reversed = axis.reversed,
-			staggerLines = axis.staggerLines,
-			baseline = axis.chart.renderer.fontMetrics(labelOptions.style.fontSize).b,
-			rotation = labelOptions.rotation;
-			
-		x = x + labelOptions.x - (tickmarkOffset && horiz ?
-			tickmarkOffset * transA * (reversed ? -1 : 1) : 0);
-		y = y + labelOptions.y - (tickmarkOffset && !horiz ?
-			tickmarkOffset * transA * (reversed ? 1 : -1) : 0);
-
-		// Correct for rotation (#1764)
-		if (rotation && axis.side === 2) {
-			y -= baseline - baseline * mathCos(rotation * deg2rad);
-		}
-		
-		// Vertically centered
-		if (!defined(labelOptions.y) && !rotation) { // #1951
-			y += baseline - label.getBBox().height / 2;
-		}
-		
-		// Correct for staggered labels
-		if (staggerLines) {
-			y += (index / (step || 1) % staggerLines) * (axis.labelOffset / staggerLines);
-		}
-		
-		return {
-			x: x,
-			y: y
-		};
-	},
-	
-	/**
-	 * Extendible method to return the path of the marker
-	 */
-	getMarkPath: function (x, y, tickLength, tickWidth, horiz, renderer) {
-		return renderer.crispLine([
-				M,
-				x,
-				y,
-				L,
-				x + (horiz ? 0 : -tickLength),
-				y + (horiz ? tickLength : 0)
-			], tickWidth);
-	},
-
-	/**
-	 * Put everything in place
-	 *
-	 * @param index {Number}
-	 * @param old {Boolean} Use old coordinates to prepare an animation into new position
-	 */
-	render: function (index, old, opacity) {
-		var tick = this,
-			axis = tick.axis,
-			options = axis.options,
-			chart = axis.chart,
-			renderer = chart.renderer,
-			horiz = axis.horiz,
-			type = tick.type,
-			label = tick.label,
-			pos = tick.pos,
-			labelOptions = options.labels,
-			gridLine = tick.gridLine,
-			gridPrefix = type ? type + 'Grid' : 'grid',
-			tickPrefix = type ? type + 'Tick' : 'tick',
-			gridLineWidth = options[gridPrefix + 'LineWidth'],
-			gridLineColor = options[gridPrefix + 'LineColor'],
-			dashStyle = options[gridPrefix + 'LineDashStyle'],
-			tickLength = options[tickPrefix + 'Length'],
-			tickWidth = options[tickPrefix + 'Width'] || 0,
-			tickColor = options[tickPrefix + 'Color'],
-			tickPosition = options[tickPrefix + 'Position'],
-			gridLinePath,
-			mark = tick.mark,
-			markPath,
-			step = labelOptions.step,
-			attribs,
-			show = true,
-			tickmarkOffset = axis.tickmarkOffset,
-			xy = tick.getPosition(horiz, pos, tickmarkOffset, old),
-			x = xy.x,
-			y = xy.y,
-			reverseCrisp = ((horiz && x === axis.pos + axis.len) || (!horiz && y === axis.pos)) ? -1 : 1, // #1480, #1687
-			staggerLines = axis.staggerLines;
-
-		this.isActive = true;
-		
-		// create the grid line
-		if (gridLineWidth) {
-			gridLinePath = axis.getPlotLinePath(pos + tickmarkOffset, gridLineWidth * reverseCrisp, old, true);
-
-			if (gridLine === UNDEFINED) {
-				attribs = {
-					stroke: gridLineColor,
-					'stroke-width': gridLineWidth
-				};
-				if (dashStyle) {
-					attribs.dashstyle = dashStyle;
-				}
-				if (!type) {
-					attribs.zIndex = 1;
-				}
-				if (old) {
-					attribs.opacity = 0;
-				}
-				tick.gridLine = gridLine =
-					gridLineWidth ?
-						renderer.path(gridLinePath)
-							.attr(attribs).add(axis.gridGroup) :
-						null;
-			}
-
-			// If the parameter 'old' is set, the current call will be followed
-			// by another call, therefore do not do any animations this time
-			if (!old && gridLine && gridLinePath) {
-				gridLine[tick.isNew ? 'attr' : 'animate']({
-					d: gridLinePath,
-					opacity: opacity
-				});
-			}
-		}
-
-		// create the tick mark
-		if (tickWidth && tickLength) {
-
-			// negate the length
-			if (tickPosition === 'inside') {
-				tickLength = -tickLength;
-			}
-			if (axis.opposite) {
-				tickLength = -tickLength;
-			}
-
-			markPath = tick.getMarkPath(x, y, tickLength, tickWidth * reverseCrisp, horiz, renderer);
-
-			if (mark) { // updating
-				mark.animate({
-					d: markPath,
-					opacity: opacity
-				});
-			} else { // first time
-				tick.mark = renderer.path(
-					markPath
-				).attr({
-					stroke: tickColor,
-					'stroke-width': tickWidth,
-					opacity: opacity
-				}).add(axis.axisGroup);
-			}
-		}
-
-		// the label is created on init - now move it into place
-		if (label && !isNaN(x)) {
-			label.xy = xy = tick.getLabelPosition(x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
-
-			// Apply show first and show last. If the tick is both first and last, it is 
-			// a single centered tick, in which case we show the label anyway (#2100).
-			if ((tick.isFirst && !tick.isLast && !pick(options.showFirstLabel, 1)) ||
-					(tick.isLast && !tick.isFirst && !pick(options.showLastLabel, 1))) {
-				show = false;
-
-			// Handle label overflow and show or hide accordingly
-			} else if (!staggerLines && horiz && labelOptions.overflow === 'justify' && !tick.handleOverflow(index, xy)) {
-				show = false;
-			}
-
-			// apply step
-			if (step && index % step) {
-				// show those indices dividable by step
-				show = false;
-			}
-
-			// Set the new position, and show or hide
-			if (show && !isNaN(xy.y)) {
-				xy.opacity = opacity;
-				label[tick.isNew ? 'attr' : 'animate'](xy);
-				tick.isNew = false;
-			} else {
-				label.attr('y', -9999); // #1338
-			}
-		}
-	},
-
-	/**
-	 * Destructor for the tick prototype
-	 */
-	destroy: function () {
-		destroyObjectProperties(this, this.axis);
-	}
-};
-
-/**
- * The object wrapper for plot lines and plot bands
- * @param {Object} options
- */
-function PlotLineOrBand(axis, options) {
-	this.axis = axis;
-
-	if (options) {
-		this.options = options;
-		this.id = options.id;
-	}
-}
-
-PlotLineOrBand.prototype = {
-	
-	/**
-	 * Render the plot line or plot band. If it is already existing,
-	 * move it.
-	 */
-	render: function () {
-		var plotLine = this,
-			axis = plotLine.axis,
-			horiz = axis.horiz,
-			halfPointRange = (axis.pointRange || 0) / 2,
-			options = plotLine.options,
-			optionsLabel = options.label,
-			label = plotLine.label,
-			width = options.width,
-			to = options.to,
-			from = options.from,
-			isBand = defined(from) && defined(to),
-			value = options.value,
-			dashStyle = options.dashStyle,
-			svgElem = plotLine.svgElem,
-			path = [],
-			addEvent,
-			eventType,
-			xs,
-			ys,
-			x,
-			y,
-			color = options.color,
-			zIndex = options.zIndex,
-			events = options.events,
-			attribs,
-			renderer = axis.chart.renderer;
-
-		// logarithmic conversion
-		if (axis.isLog) {
-			from = log2lin(from);
-			to = log2lin(to);
-			value = log2lin(value);
-		}
-
-		// plot line
-		if (width) {
-			path = axis.getPlotLinePath(value, width);
-			attribs = {
-				stroke: color,
-				'stroke-width': width
-			};
-			if (dashStyle) {
-				attribs.dashstyle = dashStyle;
-			}
-		} else if (isBand) { // plot band
-			
-			// keep within plot area
-			from = mathMax(from, axis.min - halfPointRange);
-			to = mathMin(to, axis.max + halfPointRange);
-			
-			path = axis.getPlotBandPath(from, to, options);
-			attribs = {
-				fill: color
-			};
-			if (options.borderWidth) {
-				attribs.stroke = options.borderColor;
-				attribs['stroke-width'] = options.borderWidth;
-			}
-		} else {
-			return;
-		}
-		// zIndex
-		if (defined(zIndex)) {
-			attribs.zIndex = zIndex;
-		}
-
-		// common for lines and bands
-		if (svgElem) {
-			if (path) {
-				svgElem.animate({
-					d: path
-				}, null, svgElem.onGetPath);
-			} else {
-				svgElem.hide();
-				svgElem.onGetPath = function () {
-					svgElem.show();
-				};
-			}
-		} else if (path && path.length) {
-			plotLine.svgElem = svgElem = renderer.path(path)
-				.attr(attribs).add();
-
-			// events
-			if (events) {
-				addEvent = function (eventType) {
-					svgElem.on(eventType, function (e) {
-						events[eventType].apply(plotLine, [e]);
-					});
-				};
-				for (eventType in events) {
-					addEvent(eventType);
-				}
-			}
-		}
-
-		// the plot band/line label
-		if (optionsLabel && defined(optionsLabel.text) && path && path.length && axis.width > 0 && axis.height > 0) {
-			// apply defaults
-			optionsLabel = merge({
-				align: horiz && isBand && 'center',
-				x: horiz ? !isBand && 4 : 10,
-				verticalAlign : !horiz && isBand && 'middle',
-				y: horiz ? isBand ? 16 : 10 : isBand ? 6 : -4,
-				rotation: horiz && !isBand && 90
-			}, optionsLabel);
-
-			// add the SVG element
-			if (!label) {
-				plotLine.label = label = renderer.text(
-						optionsLabel.text,
-						0,
-						0,
-						optionsLabel.useHTML
-					)
-					.attr({
-						align: optionsLabel.textAlign || optionsLabel.align,
-						rotation: optionsLabel.rotation,
-						zIndex: zIndex
-					})
-					.css(optionsLabel.style)
-					.add();
-			}
-
-			// get the bounding box and align the label
-			xs = [path[1], path[4], pick(path[6], path[1])];
-			ys = [path[2], path[5], pick(path[7], path[2])];
-			x = arrayMin(xs);
-			y = arrayMin(ys);
-
-			label.align(optionsLabel, false, {
-				x: x,
-				y: y,
-				width: arrayMax(xs) - x,
-				height: arrayMax(ys) - y
-			});
-			label.show();
-
-		} else if (label) { // move out of sight
-			label.hide();
-		}
-
-		// chainable
-		return plotLine;
-	},
-
-	/**
-	 * Remove the plot line or band
-	 */
-	destroy: function () {
-		// remove it from the lookup
-		erase(this.axis.plotLinesAndBands, this);
-		
-		delete this.axis;
-		destroyObjectProperties(this);
-	}
-};
-/**
- * The class for stack items
- */
-function StackItem(axis, options, isNegative, x, stackOption, stacking) {
-	
-	var inverted = axis.chart.inverted;
-
-	this.axis = axis;
-
-	// Tells if the stack is negative
-	this.isNegative = isNegative;
-
-	// Save the options to be able to style the label
-	this.options = options;
-
-	// Save the x value to be able to position the label later
-	this.x = x;
-
-	// Initialize total value
-	this.total = null;
-
-	// This will keep each points' extremes stored by series.index
-	this.points = {};
-
-	// Save the stack option on the series configuration object, and whether to treat it as percent
-	this.stack = stackOption;
-	this.percent = stacking === 'percent';
-
-	// The align options and text align varies on whether the stack is negative and
-	// if the chart is inverted or not.
-	// First test the user supplied value, then use the dynamic.
-	this.alignOptions = {
-		align: options.align || (inverted ? (isNegative ? 'left' : 'right') : 'center'),
-		verticalAlign: options.verticalAlign || (inverted ? 'middle' : (isNegative ? 'bottom' : 'top')),
-		y: pick(options.y, inverted ? 4 : (isNegative ? 14 : -6)),
-		x: pick(options.x, inverted ? (isNegative ? -6 : 6) : 0)
-	};
-
-	this.textAlign = options.textAlign || (inverted ? (isNegative ? 'right' : 'left') : 'center');
-}
-
-StackItem.prototype = {
-	destroy: function () {
-		destroyObjectProperties(this, this.axis);
-	},
-
-	/**
-	 * Renders the stack total label and adds it to the stack label group.
-	 */
-	render: function (group) {
-		var options = this.options,
-			formatOption = options.format,
-			str = formatOption ?
-				format(formatOption, this) : 
-				options.formatter.call(this);  // format the text in the label
-
-		// Change the text to reflect the new total and set visibility to hidden in case the serie is hidden
-		if (this.label) {
-			this.label.attr({text: str, visibility: HIDDEN});
-		// Create new label
-		} else {
-			this.label =
-				this.axis.chart.renderer.text(str, 0, 0, options.useHTML)		// dummy positions, actual position updated with setOffset method in columnseries
-					.css(options.style)				// apply style
-					.attr({
-						align: this.textAlign,				// fix the text-anchor
-						rotation: options.rotation,	// rotation
-						visibility: HIDDEN					// hidden until setOffset is called
-					})				
-					.add(group);							// add to the labels-group
-		}
-	},
-
-	/**
-	 * Sets the offset that the stack has from the x value and repositions the label.
-	 */
-	setOffset: function (xOffset, xWidth) {
-		var stackItem = this,
-			axis = stackItem.axis,
-			chart = axis.chart,
-			inverted = chart.inverted,
-			neg = this.isNegative,							// special treatment is needed for negative stacks
-			y = axis.translate(this.percent ? 100 : this.total, 0, 0, 0, 1), // stack value translated mapped to chart coordinates
-			yZero = axis.translate(0),						// stack origin
-			h = mathAbs(y - yZero),							// stack height
-			x = chart.xAxis[0].translate(this.x) + xOffset,	// stack x position
-			plotHeight = chart.plotHeight,
-			stackBox = {	// this is the box for the complete stack
-				x: inverted ? (neg ? y : y - h) : x,
-				y: inverted ? plotHeight - x - xWidth : (neg ? (plotHeight - y - h) : plotHeight - y),
-				width: inverted ? h : xWidth,
-				height: inverted ? xWidth : h
-			},
-			label = this.label,
-			alignAttr;
-		
-		if (label) {
-			label.align(this.alignOptions, null, stackBox);	// align the label to the box
-				
-			// Set visibility (#678)
-			alignAttr = label.alignAttr;
-			label.attr({ 
-				visibility: this.options.crop === false || chart.isInsidePlot(alignAttr.x, alignAttr.y) ? 
-					(hasSVG ? 'inherit' : VISIBLE) : 
-					HIDDEN
-			});
-		}
-	}
-};
-/**
- * Create a new axis object
- * @param {Object} chart
- * @param {Object} options
- */
-function Axis() {
-	this.init.apply(this, arguments);
-}
-
-Axis.prototype = {
-	
-	/**
-	 * Default options for the X axis - the Y axis has extended defaults 
-	 */
-	defaultOptions: {
-		// allowDecimals: null,
-		// alternateGridColor: null,
-		// categories: [],
-		dateTimeLabelFormats: {
-			millisecond: '%H:%M:%S.%L',
-			second: '%H:%M:%S',
-			minute: '%H:%M',
-			hour: '%H:%M',
-			day: '%e. %b',
-			week: '%e. %b',
-			month: '%b \'%y',
-			year: '%Y'
-		},
-		endOnTick: false,
-		gridLineColor: '#C0C0C0',
-		// gridLineDashStyle: 'solid',
-		// gridLineWidth: 0,
-		// reversed: false,
-	
-		labels: defaultLabelOptions,
-			// { step: null },
-		lineColor: '#C0D0E0',
-		lineWidth: 1,
-		//linkedTo: null,
-		//max: undefined,
-		//min: undefined,
-		minPadding: 0.01,
-		maxPadding: 0.01,
-		//minRange: null,
-		minorGridLineColor: '#E0E0E0',
-		// minorGridLineDashStyle: null,
-		minorGridLineWidth: 1,
-		minorTickColor: '#A0A0A0',
-		//minorTickInterval: null,
-		minorTickLength: 2,
-		minorTickPosition: 'outside', // inside or outside
-		//minorTickWidth: 0,
-		//opposite: false,
-		//offset: 0,
-		//plotBands: [{
-		//	events: {},
-		//	zIndex: 1,
-		//	labels: { align, x, verticalAlign, y, style, rotation, textAlign }
-		//}],
-		//plotLines: [{
-		//	events: {}
-		//  dashStyle: {}
-		//	zIndex:
-		//	labels: { align, x, verticalAlign, y, style, rotation, textAlign }
-		//}],
-		//reversed: false,
-		// showFirstLabel: true,
-		// showLastLabel: true,
-		startOfWeek: 1,
-		startOnTick: false,
-		tickColor: '#C0D0E0',
-		//tickInterval: null,
-		tickLength: 5,
-		tickmarkPlacement: 'between', // on or between
-		tickPixelInterval: 100,
-		tickPosition: 'outside',
-		tickWidth: 1,
-		title: {
-			//text: null,
-			align: 'middle', // low, middle or high
-			//margin: 0 for horizontal, 10 for vertical axes,
-			//rotation: 0,
-			//side: 'outside',
-			style: {
-				color: '#4d759e',
-				//font: defaultFont.replace('normal', 'bold')
-				fontWeight: 'bold'
-			}
-			//x: 0,
-			//y: 0
-		},
-		type: 'linear' // linear, logarithmic or datetime
-	},
-	
-	/**
-	 * This options set extends the defaultOptions for Y axes
-	 */
-	defaultYAxisOptions: {
-		endOnTick: true,
-		gridLineWidth: 1,
-		tickPixelInterval: 72,
-		showLastLabel: true,
-		labels: {
-			x: -8,
-			y: 3
-		},
-		lineWidth: 0,
-		maxPadding: 0.05,
-		minPadding: 0.05,
-		startOnTick: true,
-		tickWidth: 0,
-		title: {
-			rotation: 270,
-			text: 'Values'
-		},
-		stackLabels: {
-			enabled: false,
-			//align: dynamic,
-			//y: dynamic,
-			//x: dynamic,
-			//verticalAlign: dynamic,
-			//textAlign: dynamic,
-			//rotation: 0,
-			formatter: function () {
-				return numberFormat(this.total, -1);
-			},
-			style: defaultLabelOptions.style
-		}
-	},
-	
-	/**
-	 * These options extend the defaultOptions for left axes
-	 */
-	defaultLeftAxisOptions: {
-		labels: {
-			x: -8,
-			y: null
-		},
-		title: {
-			rotation: 270
-		}
-	},
-	
-	/**
-	 * These options extend the defaultOptions for right axes
-	 */
-	defaultRightAxisOptions: {
-		labels: {
-			x: 8,
-			y: null
-		},
-		title: {
-			rotation: 90
-		}
-	},
-	
-	/**
-	 * These options extend the defaultOptions for bottom axes
-	 */
-	defaultBottomAxisOptions: {
-		labels: {
-			x: 0,
-			y: 14
-			// overflow: undefined,
-			// staggerLines: null
-		},
-		title: {
-			rotation: 0
-		}
-	},
-	/**
-	 * These options extend the defaultOptions for left axes
-	 */
-	defaultTopAxisOptions: {
-		labels: {
-			x: 0,
-			y: -5
-			// overflow: undefined
-			// staggerLines: null
-		},
-		title: {
-			rotation: 0
-		}
-	},
-	
-	/**
-	 * Initialize the axis
-	 */
-	init: function (chart, userOptions) {
-			
-		
-		var isXAxis = userOptions.isX,
-			axis = this;
-	
-		// Flag, is the axis horizontal
-		axis.horiz = chart.inverted ? !isXAxis : isXAxis;
-		
-		// Flag, isXAxis
-		axis.isXAxis = isXAxis;
-		axis.xOrY = isXAxis ? 'x' : 'y';
-	
-	
-		axis.opposite = userOptions.opposite; // needed in setOptions
-		axis.side = axis.horiz ?
-				(axis.opposite ? 0 : 2) : // top : bottom
-				(axis.opposite ? 1 : 3);  // right : left
-	
-		axis.setOptions(userOptions);
-		
-	
-		var options = this.options,
-			type = options.type,
-			isDatetimeAxis = type === 'datetime';
-	
-		axis.labelFormatter = options.labels.formatter || axis.defaultLabelFormatter; // can be overwritten by dynamic format
-	
-	
-		// Flag, stagger lines or not
-		axis.userOptions = userOptions;
-	
-		//axis.axisTitleMargin = UNDEFINED,// = options.title.margin,
-		axis.minPixelPadding = 0;
-		//axis.ignoreMinPadding = UNDEFINED; // can be set to true by a column or bar series
-		//axis.ignoreMaxPadding = UNDEFINED;
-	
-		axis.chart = chart;
-		axis.reversed = options.reversed;
-		axis.zoomEnabled = options.zoomEnabled !== false;
-	
-		// Initial categories
-		axis.categories = options.categories || type === 'category';
-	
-		// Elements
-		//axis.axisGroup = UNDEFINED;
-		//axis.gridGroup = UNDEFINED;
-		//axis.axisTitle = UNDEFINED;
-		//axis.axisLine = UNDEFINED;
-	
-		// Shorthand types
-		axis.isLog = type === 'logarithmic';
-		axis.isDatetimeAxis = isDatetimeAxis;
-	
-		// Flag, if axis is linked to another axis
-		axis.isLinked = defined(options.linkedTo);
-		// Linked axis.
-		//axis.linkedParent = UNDEFINED;	
-		
-		// Tick positions
-		//axis.tickPositions = UNDEFINED; // array containing predefined positions
-		// Tick intervals
-		//axis.tickInterval = UNDEFINED;
-		//axis.minorTickInterval = UNDEFINED;
-		
-		axis.tickmarkOffset = (axis.categories && options.tickmarkPlacement === 'between') ? 0.5 : 0;
-	
-		// Major ticks
-		axis.ticks = {};
-		// Minor ticks
-		axis.minorTicks = {};
-		//axis.tickAmount = UNDEFINED;
-	
-		// List of plotLines/Bands
-		axis.plotLinesAndBands = [];
-	
-		// Alternate bands
-		axis.alternateBands = {};
-	
-		// Axis metrics
-		//axis.left = UNDEFINED;
-		//axis.top = UNDEFINED;
-		//axis.width = UNDEFINED;
-		//axis.height = UNDEFINED;
-		//axis.bottom = UNDEFINED;
-		//axis.right = UNDEFINED;
-		//axis.transA = UNDEFINED;
-		//axis.transB = UNDEFINED;
-		//axis.oldTransA = UNDEFINED;
-		axis.len = 0;
-		//axis.oldMin = UNDEFINED;
-		//axis.oldMax = UNDEFINED;
-		//axis.oldUserMin = UNDEFINED;
-		//axis.oldUserMax = UNDEFINED;
-		//axis.oldAxisLength = UNDEFINED;
-		axis.minRange = axis.userMinRange = options.minRange || options.maxZoom;
-		axis.range = options.range;
-		axis.offset = options.offset || 0;
-	
-	
-		// Dictionary for stacks
-		axis.stacks = {};
-		axis.oldStacks = {};
-
-		// Dictionary for stacks max values
-		axis.stackExtremes = {};
-
-		// Min and max in the data
-		//axis.dataMin = UNDEFINED,
-		//axis.dataMax = UNDEFINED,
-	
-		// The axis range
-		axis.max = null;
-		axis.min = null;
-	
-		// User set min and max
-		//axis.userMin = UNDEFINED,
-		//axis.userMax = UNDEFINED,
-
-		// Run Axis
-		
-		var eventType,
-			events = axis.options.events;
-
-		// Register
-		if (inArray(axis, chart.axes) === -1) { // don't add it again on Axis.update()
-			chart.axes.push(axis);
-			chart[isXAxis ? 'xAxis' : 'yAxis'].push(axis);
-		}
-
-		axis.series = axis.series || []; // populated by Series
-
-		// inverted charts have reversed xAxes as default
-		if (chart.inverted && isXAxis && axis.reversed === UNDEFINED) {
-			axis.reversed = true;
-		}
-
-		axis.removePlotBand = axis.removePlotBandOrLine;
-		axis.removePlotLine = axis.removePlotBandOrLine;
-
-
-		// register event listeners
-		for (eventType in events) {
-			addEvent(axis, eventType, events[eventType]);
-		}
-
-		// extend logarithmic axis
-		if (axis.isLog) {
-			axis.val2lin = log2lin;
-			axis.lin2val = lin2log;
-		}
-	},
-	
-	/**
-	 * Merge and set options
-	 */
-	setOptions: function (userOptions) {
-		this.options = merge(
-			this.defaultOptions,
-			this.isXAxis ? {} : this.defaultYAxisOptions,
-			[this.defaultTopAxisOptions, this.defaultRightAxisOptions,
-				this.defaultBottomAxisOptions, this.defaultLeftAxisOptions][this.side],
-			merge(
-				defaultOptions[this.isXAxis ? 'xAxis' : 'yAxis'], // if set in setOptions (#1053)
-				userOptions
-			)
-		);
-	},
-
-	/**
-	 * Update the axis with a new options structure
-	 */
-	update: function (newOptions, redraw) {
-		var chart = this.chart;
-
-		newOptions = chart.options[this.xOrY + 'Axis'][this.options.index] = merge(this.userOptions, newOptions);
-
-		this.destroy(true);
-		this._addedPlotLB = this.userMin = this.userMax = UNDEFINED; // #1611, #2306
-
-		this.init(chart, extend(newOptions, { events: UNDEFINED }));
-
-		chart.isDirtyBox = true;
-		if (pick(redraw, true)) {
-			chart.redraw();
-		}
-	},	
-	
-	/**
-     * Remove the axis from the chart
-     */
-	remove: function (redraw) {
-		var chart = this.chart,
-			key = this.xOrY + 'Axis'; // xAxis or yAxis
-
-		// Remove associated series
-		each(this.series, function (series) {
-			series.remove(false);
-		});
-
-		// Remove the axis
-		erase(chart.axes, this);
-		erase(chart[key], this);
-		chart.options[key].splice(this.options.index, 1);
-		each(chart[key], function (axis, i) { // Re-index, #1706
-			axis.options.index = i;
-		});
-		this.destroy();
-		chart.isDirtyBox = true;
-
-		if (pick(redraw, true)) {
-			chart.redraw();
-		}
-	},
-	
-	/** 
-	 * The default label formatter. The context is a special config object for the label.
-	 */
-	defaultLabelFormatter: function () {
-		var axis = this.axis,
-			value = this.value,
-			categories = axis.categories, 
-			dateTimeLabelFormat = this.dateTimeLabelFormat,
-			numericSymbols = defaultOptions.lang.numericSymbols,
-			i = numericSymbols && numericSymbols.length,
-			multi,
-			ret,
-			formatOption = axis.options.labels.format,
-			
-			// make sure the same symbol is added for all labels on a linear axis
-			numericSymbolDetector = axis.isLog ? value : axis.tickInterval;
-
-		if (formatOption) {
-			ret = format(formatOption, this);
-		
-		} else if (categories) {
-			ret = value;
-		
-		} else if (dateTimeLabelFormat) { // datetime axis
-			ret = dateFormat(dateTimeLabelFormat, value);
-		
-		} else if (i && numericSymbolDetector >= 1000) {
-			// Decide whether we should add a numeric symbol like k (thousands) or M (millions).
-			// If we are to enable this in tooltip or other places as well, we can move this
-			// logic to the numberFormatter and enable it by a parameter.
-			while (i-- && ret === UNDEFINED) {
-				multi = Math.pow(1000, i + 1);
-				if (numericSymbolDetector >= multi && numericSymbols[i] !== null) {
-					ret = numberFormat(value / multi, -1) + numericSymbols[i];
-				}
-			}
-		}
-		
-		if (ret === UNDEFINED) {
-			if (value >= 1000) { // add thousands separators
-				ret = numberFormat(value, 0);
-
-			} else { // small numbers
-				ret = numberFormat(value, -1);
-			}
-		}
-		
-		return ret;
-	},
-
-	/**
-	 * Get the minimum and maximum for the series of each axis
-	 */
-	getSeriesExtremes: function () {
-		var axis = this,
-			chart = axis.chart;
-
-		axis.hasVisibleSeries = false;
-
-		// reset dataMin and dataMax in case we're redrawing
-		axis.dataMin = axis.dataMax = null;
-
-		// reset cached stacking extremes
-		axis.stackExtremes = {};
-
-		axis.buildStacks();
-
-		// loop through this axis' series
-		each(axis.series, function (series) {
-
-			if (series.visible || !chart.options.chart.ignoreHiddenSeries) {
-
-				var seriesOptions = series.options,
-					xData,
-					threshold = seriesOptions.threshold,
-					seriesDataMin,
-					seriesDataMax;
-
-				axis.hasVisibleSeries = true;
-
-				// Validate threshold in logarithmic axes
-				if (axis.isLog && threshold <= 0) {
-					threshold = null;
-				}
-
-				// Get dataMin and dataMax for X axes
-				if (axis.isXAxis) {
-					xData = series.xData;
-					if (xData.length) {
-						axis.dataMin = mathMin(pick(axis.dataMin, xData[0]), arrayMin(xData));
-						axis.dataMax = mathMax(pick(axis.dataMax, xData[0]), arrayMax(xData));
-					}
-
-				// Get dataMin and dataMax for Y axes, as well as handle stacking and processed data
-				} else {
-
-					// Get this particular series extremes
-					series.getExtremes();
-					seriesDataMax = series.dataMax;
-					seriesDataMin = series.dataMin;
-
-					// Get the dataMin and dataMax so far. If percentage is used, the min and max are
-					// always 0 and 100. If seriesDataMin and seriesDataMax is null, then series
-					// doesn't have active y data, we continue with nulls
-					if (defined(seriesDataMin) && defined(seriesDataMax)) {
-						axis.dataMin = mathMin(pick(axis.dataMin, seriesDataMin), seriesDataMin);
-						axis.dataMax = mathMax(pick(axis.dataMax, seriesDataMax), seriesDataMax);
-					}
-
-					// Adjust to threshold
-					if (defined(threshold)) {
-						if (axis.dataMin >= threshold) {
-							axis.dataMin = threshold;
-							axis.ignoreMinPadding = true;
-						} else if (axis.dataMax < threshold) {
-							axis.dataMax = threshold;
-							axis.ignoreMaxPadding = true;
-						}
-					}
-				}
-			}
-		});
-	},
-
-	/**
-	 * Translate from axis value to pixel position on the chart, or back
-	 *
-	 */
-	translate: function (val, backwards, cvsCoord, old, handleLog, pointPlacement) {
-		var axis = this,
-			axisLength = axis.len,
-			sign = 1,
-			cvsOffset = 0,
-			localA = old ? axis.oldTransA : axis.transA,
-			localMin = old ? axis.oldMin : axis.min,
-			returnValue,
-			minPixelPadding = axis.minPixelPadding,
-			postTranslate = (axis.options.ordinal || (axis.isLog && handleLog)) && axis.lin2val;
-
-		if (!localA) {
-			localA = axis.transA;
-		}
-
-		// In vertical axes, the canvas coordinates start from 0 at the top like in 
-		// SVG. 
-		if (cvsCoord) {
-			sign *= -1; // canvas coordinates inverts the value
-			cvsOffset = axisLength;
-		}
-
-		// Handle reversed axis
-		if (axis.reversed) { 
-			sign *= -1;
-			cvsOffset -= sign * axisLength;
-		}
-
-		// From pixels to value
-		if (backwards) { // reverse translation
-			
-			val = val * sign + cvsOffset;
-			val -= minPixelPadding;
-			returnValue = val / localA + localMin; // from chart pixel to value
-			if (postTranslate) { // log and ordinal axes
-				returnValue = axis.lin2val(returnValue);
-			}
-
-		// From value to pixels
-		} else {
-			if (postTranslate) { // log and ordinal axes
-				val = axis.val2lin(val);
-			}
-			if (pointPlacement === 'between') {
-				pointPlacement = 0.5;
-			}
-			returnValue = sign * (val - localMin) * localA + cvsOffset + (sign * minPixelPadding) +
-				(isNumber(pointPlacement) ? localA * pointPlacement * axis.pointRange : 0);
-		}
-
-		return returnValue;
-	},
-
-	/**
-	 * Utility method to translate an axis value to pixel position. 
-	 * @param {Number} value A value in terms of axis units
-	 * @param {Boolean} paneCoordinates Whether to return the pixel coordinate relative to the chart
-	 *        or just the axis/pane itself.
-	 */
-	toPixels: function (value, paneCoordinates) {
-		return this.translate(value, false, !this.horiz, null, true) + (paneCoordinates ? 0 : this.pos);
-	},
-
-	/*
-	 * Utility method to translate a pixel position in to an axis value
-	 * @param {Number} pixel The pixel value coordinate
-	 * @param {Boolean} paneCoordiantes Whether the input pixel is relative to the chart or just the
-	 *        axis/pane itself.
-	 */
-	toValue: function (pixel, paneCoordinates) {
-		return this.translate(pixel - (paneCoordinates ? 0 : this.pos), true, !this.horiz, null, true);
-	},
-
-	/**
-	 * Create the path for a plot line that goes from the given value on
-	 * this axis, across the plot to the opposite side
-	 * @param {Number} value
-	 * @param {Number} lineWidth Used for calculation crisp line
-	 * @param {Number] old Use old coordinates (for resizing and rescaling)
-	 */
-	getPlotLinePath: function (value, lineWidth, old, force) {
-		var axis = this,
-			chart = axis.chart,
-			axisLeft = axis.left,
-			axisTop = axis.top,
-			x1,
-			y1,
-			x2,
-			y2,
-			translatedValue = axis.translate(value, null, null, old),
-			cHeight = (old && chart.oldChartHeight) || chart.chartHeight,
-			cWidth = (old && chart.oldChartWidth) || chart.chartWidth,
-			skip,
-			transB = axis.transB;
-
-		x1 = x2 = mathRound(translatedValue + transB);
-		y1 = y2 = mathRound(cHeight - translatedValue - transB);
-
-		if (isNaN(translatedValue)) { // no min or max
-			skip = true;
-
-		} else if (axis.horiz) {
-			y1 = axisTop;
-			y2 = cHeight - axis.bottom;
-			if (x1 < axisLeft || x1 > axisLeft + axis.width) {
-				skip = true;
-			}
-		} else {
-			x1 = axisLeft;
-			x2 = cWidth - axis.right;
-
-			if (y1 < axisTop || y1 > axisTop + axis.height) {
-				skip = true;
-			}
-		}
-		return skip && !force ?
-			null :
-			chart.renderer.crispLine([M, x1, y1, L, x2, y2], lineWidth || 0);
-	},
-	
-	/**
-	 * Create the path for a plot band
-	 */
-	getPlotBandPath: function (from, to) {
-
-		var toPath = this.getPlotLinePath(to),
-			path = this.getPlotLinePath(from);
-			
-		if (path && toPath) {
-			path.push(
-				toPath[4],
-				toPath[5],
-				toPath[1],
-				toPath[2]
-			);
-		} else { // outside the axis area
-			path = null;
-		}
-		
-		return path;
-	},
-	
-	/**
-	 * Set the tick positions of a linear axis to round values like whole tens or every five.
-	 */
-	getLinearTickPositions: function (tickInterval, min, max) {
-		var pos,
-			lastPos,
-			roundedMin = correctFloat(mathFloor(min / tickInterval) * tickInterval),
-			roundedMax = correctFloat(mathCeil(max / tickInterval) * tickInterval),
-			tickPositions = [];
-
-		// Populate the intermediate values
-		pos = roundedMin;
-		while (pos <= roundedMax) {
-
-			// Place the tick on the rounded value
-			tickPositions.push(pos);
-
-			// Always add the raw tickInterval, not the corrected one.
-			pos = correctFloat(pos + tickInterval);
-
-			// If the interval is not big enough in the current min - max range to actually increase
-			// the loop variable, we need to break out to prevent endless loop. Issue #619
-			if (pos === lastPos) {
-				break;
-			}
-
-			// Record the last value
-			lastPos = pos;
-		}
-		return tickPositions;
-	},
-	
-	/**
-	 * Set the tick positions of a logarithmic axis
-	 */
-	getLogTickPositions: function (interval, min, max, minor) {
-		var axis = this,
-			options = axis.options,
-			axisLength = axis.len,
-			// Since we use this method for both major and minor ticks,
-			// use a local variable and return the result
-			positions = []; 
-		
-		// Reset
-		if (!minor) {
-			axis._minorAutoInterval = null;
-		}
-		
-		// First case: All ticks fall on whole logarithms: 1, 10, 100 etc.
-		if (interval >= 0.5) {
-			interval = mathRound(interval);
-			positions = axis.getLinearTickPositions(interval, min, max);
-			
-		// Second case: We need intermediary ticks. For example 
-		// 1, 2, 4, 6, 8, 10, 20, 40 etc. 
-		} else if (interval >= 0.08) {
-			var roundedMin = mathFloor(min),
-				intermediate,
-				i,
-				j,
-				len,
-				pos,
-				lastPos,
-				break2;
-				
-			if (interval > 0.3) {
-				intermediate = [1, 2, 4];
-			} else if (interval > 0.15) { // 0.2 equals five minor ticks per 1, 10, 100 etc
-				intermediate = [1, 2, 4, 6, 8];
-			} else { // 0.1 equals ten minor ticks per 1, 10, 100 etc
-				intermediate = [1, 2, 3, 4, 5, 6, 7, 8, 9];
-			}
-			
-			for (i = roundedMin; i < max + 1 && !break2; i++) {
-				len = intermediate.length;
-				for (j = 0; j < len && !break2; j++) {
-					pos = log2lin(lin2log(i) * intermediate[j]);
-					
-					if (pos > min && (!minor || lastPos <= max)) { // #1670
-						positions.push(lastPos);
-					}
-					
-					if (lastPos > max) {
-						break2 = true;
-					}
-					lastPos = pos;
-				}
-			}
-			
-		// Third case: We are so deep in between whole logarithmic values that
-		// we might as well handle the tick positions like a linear axis. For
-		// example 1.01, 1.02, 1.03, 1.04.
-		} else {
-			var realMin = lin2log(min),
-				realMax = lin2log(max),
-				tickIntervalOption = options[minor ? 'minorTickInterval' : 'tickInterval'],
-				filteredTickIntervalOption = tickIntervalOption === 'auto' ? null : tickIntervalOption,
-				tickPixelIntervalOption = options.tickPixelInterval / (minor ? 5 : 1),
-				totalPixelLength = minor ? axisLength / axis.tickPositions.length : axisLength;
-			
-			interval = pick(
-				filteredTickIntervalOption,
-				axis._minorAutoInterval,
-				(realMax - realMin) * tickPixelIntervalOption / (totalPixelLength || 1)
-			);
-			
-			interval = normalizeTickInterval(
-				interval, 
-				null, 
-				getMagnitude(interval)
-			);
-			
-			positions = map(axis.getLinearTickPositions(
-				interval, 
-				realMin,
-				realMax	
-			), log2lin);
-			
-			if (!minor) {
-				axis._minorAutoInterval = interval / 5;
-			}
-		}
-		
-		// Set the axis-level tickInterval variable 
-		if (!minor) {
-			axis.tickInterval = interval;
-		}
-		return positions;
-	},
-
-	/**
-	 * Return the minor tick positions. For logarithmic axes, reuse the same logic
-	 * as for major ticks.
-	 */
-	getMinorTickPositions: function () {
-		var axis = this,
-			options = axis.options,
-			tickPositions = axis.tickPositions,
-			minorTickInterval = axis.minorTickInterval,
-			minorTickPositions = [],
-			pos,
-			i,
-			len;
-		
-		if (axis.isLog) {
-			len = tickPositions.length;
-			for (i = 1; i < len; i++) {
-				minorTickPositions = minorTickPositions.concat(
-					axis.getLogTickPositions(minorTickInterval, tickPositions[i - 1], tickPositions[i], true)
-				);	
-			}
-		} else if (axis.isDatetimeAxis && options.minorTickInterval === 'auto') { // #1314
-			minorTickPositions = minorTickPositions.concat(
-				getTimeTicks(
-					normalizeTimeTickInterval(minorTickInterval),
-					axis.min,
-					axis.max,
-					options.startOfWeek
-				)
-			);
-			if (minorTickPositions[0] < axis.min) {
-				minorTickPositions.shift();
-			}
-		} else {			
-			for (pos = axis.min + (tickPositions[0] - axis.min) % minorTickInterval; pos <= axis.max; pos += minorTickInterval) {
-				minorTickPositions.push(pos);
-			}
-		}
-		return minorTickPositions;
-	},
-
-	/**
-	 * Adjust the min and max for the minimum range. Keep in mind that the series data is 
-	 * not yet processed, so we don't have information on data cropping and grouping, or 
-	 * updated axis.pointRange or series.pointRange. The data can't be processed until
-	 * we have finally established min and max.
-	 */
-	adjustForMinRange: function () {
-		var axis = this,
-			options = axis.options,
-			min = axis.min,
-			max = axis.max,
-			zoomOffset,
-			spaceAvailable = axis.dataMax - axis.dataMin >= axis.minRange,
-			closestDataRange,
-			i,
-			distance,
-			xData,
-			loopLength,
-			minArgs,
-			maxArgs;
-
-		// Set the automatic minimum range based on the closest point distance
-		if (axis.isXAxis && axis.minRange === UNDEFINED && !axis.isLog) {
-
-			if (defined(options.min) || defined(options.max)) {
-				axis.minRange = null; // don't do this again
-
-			} else {
-
-				// Find the closest distance between raw data points, as opposed to
-				// closestPointRange that applies to processed points (cropped and grouped)
-				each(axis.series, function (series) {
-					xData = series.xData;
-					loopLength = series.xIncrement ? 1 : xData.length - 1;
-					for (i = loopLength; i > 0; i--) {
-						distance = xData[i] - xData[i - 1];
-						if (closestDataRange === UNDEFINED || distance < closestDataRange) {
-							closestDataRange = distance;
-						}
-					}
-				});
-				axis.minRange = mathMin(closestDataRange * 5, axis.dataMax - axis.dataMin);
-			}
-		}
-
-		// if minRange is exceeded, adjust
-		if (max - min < axis.minRange) {
-			var minRange = axis.minRange;
-			zoomOffset = (minRange - max + min) / 2;
-
-			// if min and max options have been set, don't go beyond it
-			minArgs = [min - zoomOffset, pick(options.min, min - zoomOffset)];
-			if (spaceAvailable) { // if space is available, stay within the data range
-				minArgs[2] = axis.dataMin;
-			}
-			min = arrayMax(minArgs);
-
-			maxArgs = [min + minRange, pick(options.max, min + minRange)];
-			if (spaceAvailable) { // if space is availabe, stay within the data range
-				maxArgs[2] = axis.dataMax;
-			}
-
-			max = arrayMin(maxArgs);
-
-			// now if the max is adjusted, adjust the min back
-			if (max - min < minRange) {
-				minArgs[0] = max - minRange;
-				minArgs[1] = pick(options.min, max - minRange);
-				min = arrayMax(minArgs);
-			}
-		}
-		
-		// Record modified extremes
-		axis.min = min;
-		axis.max = max;
-	},
-
-	/**
-	 * Update translation information
-	 */
-	setAxisTranslation: function (saveOld) {
-		var axis = this,
-			range = axis.max - axis.min,
-			pointRange = 0,
-			closestPointRange,
-			minPointOffset = 0,
-			pointRangePadding = 0,
-			linkedParent = axis.linkedParent,
-			ordinalCorrection,
-			transA = axis.transA;
-
-		// adjust translation for padding
-		if (axis.isXAxis) {
-			if (linkedParent) {
-				minPointOffset = linkedParent.minPointOffset;
-				pointRangePadding = linkedParent.pointRangePadding;
-				
-			} else {
-				each(axis.series, function (series) {
-					var seriesPointRange = series.pointRange,
-						pointPlacement = series.options.pointPlacement,
-						seriesClosestPointRange = series.closestPointRange;
-
-					if (seriesPointRange > range) { // #1446
-						seriesPointRange = 0;
-					}
-					pointRange = mathMax(pointRange, seriesPointRange);
-					
-					// minPointOffset is the value padding to the left of the axis in order to make
-					// room for points with a pointRange, typically columns. When the pointPlacement option
-					// is 'between' or 'on', this padding does not apply.
-					minPointOffset = mathMax(
-						minPointOffset, 
-						isString(pointPlacement) ? 0 : seriesPointRange / 2
-					);
-					
-					// Determine the total padding needed to the length of the axis to make room for the 
-					// pointRange. If the series' pointPlacement is 'on', no padding is added.
-					pointRangePadding = mathMax(
-						pointRangePadding,
-						pointPlacement === 'on' ? 0 : seriesPointRange
-					);
-
-					// Set the closestPointRange
-					if (!series.noSharedTooltip && defined(seriesClosestPointRange)) {
-						closestPointRange = defined(closestPointRange) ?
-							mathMin(closestPointRange, seriesClosestPointRange) :
-							seriesClosestPointRange;
-					}
-				});
-			}
-			
-			// Record minPointOffset and pointRangePadding
-			ordinalCorrection = axis.ordinalSlope && closestPointRange ? axis.ordinalSlope / closestPointRange : 1; // #988, #1853
-			axis.minPointOffset = minPointOffset = minPointOffset * ordinalCorrection;
-			axis.pointRangePadding = pointRangePadding = pointRangePadding * ordinalCorrection;
-
-			// pointRange means the width reserved for each point, like in a column chart
-			axis.pointRange = mathMin(pointRange, range);
-
-			// closestPointRange means the closest distance between points. In columns
-			// it is mostly equal to pointRange, but in lines pointRange is 0 while closestPointRange
-			// is some other value
-			axis.closestPointRange = closestPointRange;
-		}
-
-		// Secondary values
-		if (saveOld) {
-			axis.oldTransA = transA;
-		}
-		axis.translationSlope = axis.transA = transA = axis.len / ((range + pointRangePadding) || 1);
-		axis.transB = axis.horiz ? axis.left : axis.bottom; // translation addend
-		axis.minPixelPadding = transA * minPointOffset;
-	},
-
-	/**
-	 * Set the tick positions to round values and optionally extend the extremes
-	 * to the nearest tick
-	 */
-	setTickPositions: function (secondPass) {
-		var axis = this,
-			chart = axis.chart,
-			options = axis.options,
-			isLog = axis.isLog,
-			isDatetimeAxis = axis.isDatetimeAxis,
-			isXAxis = axis.isXAxis,
-			isLinked = axis.isLinked,
-			tickPositioner = axis.options.tickPositioner,
-			maxPadding = options.maxPadding,
-			minPadding = options.minPadding,
-			length,
-			linkedParentExtremes,
-			tickIntervalOption = options.tickInterval,
-			minTickIntervalOption = options.minTickInterval,
-			tickPixelIntervalOption = options.tickPixelInterval,
-			tickPositions,
-			keepTwoTicksOnly,
-			categories = axis.categories;
-
-		// linked axis gets the extremes from the parent axis
-		if (isLinked) {
-			axis.linkedParent = chart[isXAxis ? 'xAxis' : 'yAxis'][options.linkedTo];
-			linkedParentExtremes = axis.linkedParent.getExtremes();
-			axis.min = pick(linkedParentExtremes.min, linkedParentExtremes.dataMin);
-			axis.max = pick(linkedParentExtremes.max, linkedParentExtremes.dataMax);
-			if (options.type !== axis.linkedParent.options.type) {
-				error(11, 1); // Can't link axes of different type
-			}
-		} else { // initial min and max from the extreme data values
-			axis.min = pick(axis.userMin, options.min, axis.dataMin);
-			axis.max = pick(axis.userMax, options.max, axis.dataMax);
-		}
-
-		if (isLog) {
-			if (!secondPass && mathMin(axis.min, pick(axis.dataMin, axis.min)) <= 0) { // #978
-				error(10, 1); // Can't plot negative values on log axis
-			}
-			axis.min = correctFloat(log2lin(axis.min)); // correctFloat cures #934
-			axis.max = correctFloat(log2lin(axis.max));
-		}
-
-		// handle zoomed range
-		if (axis.range) {
-			axis.userMin = axis.min = mathMax(axis.min, axis.max - axis.range); // #618
-			axis.userMax = axis.max;
-			if (secondPass) {
-				axis.range = null;  // don't use it when running setExtremes
-			}
-		}
-		
-		// Hook for adjusting this.min and this.max. Used by bubble series.
-		if (axis.beforePadding) {
-			axis.beforePadding();
-		}
-
-		// adjust min and max for the minimum range
-		axis.adjustForMinRange();
-		
-		// Pad the values to get clear of the chart's edges. To avoid tickInterval taking the padding
-		// into account, we do this after computing tick interval (#1337).
-		if (!categories && !axis.usePercentage && !isLinked && defined(axis.min) && defined(axis.max)) {
-			length = axis.max - axis.min;
-			if (length) {
-				if (!defined(options.min) && !defined(axis.userMin) && minPadding && (axis.dataMin < 0 || !axis.ignoreMinPadding)) {
-					axis.min -= length * minPadding;
-				}
-				if (!defined(options.max) && !defined(axis.userMax)  && maxPadding && (axis.dataMax > 0 || !axis.ignoreMaxPadding)) {
-					axis.max += length * maxPadding;
-				}
-			}
-		}
-
-		// get tickInterval
-		if (axis.min === axis.max || axis.min === undefined || axis.max === undefined) {
-			axis.tickInterval = 1;
-		} else if (isLinked && !tickIntervalOption &&
-				tickPixelIntervalOption === axis.linkedParent.options.tickPixelInterval) {
-			axis.tickInterval = axis.linkedParent.tickInterval;
-		} else {
-			axis.tickInterval = pick(
-				tickIntervalOption,
-				categories ? // for categoried axis, 1 is default, for linear axis use tickPix
-					1 :
-					// don't let it be more than the data range
-					(axis.max - axis.min) * tickPixelIntervalOption / mathMax(axis.len, tickPixelIntervalOption)
-			);
-			// For squished axes, set only two ticks
-			if (!defined(tickIntervalOption) && axis.len < tickPixelIntervalOption && !this.isRadial) {
-				keepTwoTicksOnly = true;
-				axis.tickInterval /= 4; // tick extremes closer to the real values
-			}
-		}
-
-		// Now we're finished detecting min and max, crop and group series data. This
-		// is in turn needed in order to find tick positions in ordinal axes. 
-		if (isXAxis && !secondPass) {
-			each(axis.series, function (series) {
-				series.processData(axis.min !== axis.oldMin || axis.max !== axis.oldMax);
-			});
-		}
-
-		// set the translation factor used in translate function
-		axis.setAxisTranslation(true);
-
-		// hook for ordinal axes and radial axes
-		if (axis.beforeSetTickPositions) {
-			axis.beforeSetTickPositions();
-		}
-		
-		// hook for extensions, used in Highstock ordinal axes
-		if (axis.postProcessTickInterval) {
-			axis.tickInterval = axis.postProcessTickInterval(axis.tickInterval);
-		}
-
-		// In column-like charts, don't cramp in more ticks than there are points (#1943)
-		if (axis.pointRange) {
-			axis.tickInterval = mathMax(axis.pointRange, axis.tickInterval);
-		}
-		
-		// Before normalizing the tick interval, handle minimum tick interval. This applies only if tickInterval is not defined.
-		if (!tickIntervalOption && axis.tickInterval < minTickIntervalOption) {
-			axis.tickInterval = minTickIntervalOption;
-		}
-
-		// for linear axes, get magnitude and normalize the interval
-		if (!isDatetimeAxis && !isLog) { // linear
-			if (!tickIntervalOption) {
-				axis.tickInterval = normalizeTickInterval(axis.tickInterval, null, getMagnitude(axis.tickInterval), options);
-			}
-		}
-
-		// get minorTickInterval
-		axis.minorTickInterval = options.minorTickInterval === 'auto' && axis.tickInterval ?
-				axis.tickInterval / 5 : options.minorTickInterval;
-
-		// find the tick positions
-		axis.tickPositions = tickPositions = options.tickPositions ?
-			[].concat(options.tickPositions) : // Work on a copy (#1565)
-			(tickPositioner && tickPositioner.apply(axis, [axis.min, axis.max]));
-		if (!tickPositions) {
-			
-			// Too many ticks
-			if (!axis.ordinalPositions && (axis.max - axis.min) / axis.tickInterval > mathMax(2 * axis.len, 200)) {
-				error(19, true);
-			}
-			
-			if (isDatetimeAxis) {
-				tickPositions = (axis.getNonLinearTimeTicks || getTimeTicks)(
-					normalizeTimeTickInterval(axis.tickInterval, options.units),
-					axis.min,
-					axis.max,
-					options.startOfWeek,
-					axis.ordinalPositions,
-					axis.closestPointRange,
-					true
-				);
-			} else if (isLog) {
-				tickPositions = axis.getLogTickPositions(axis.tickInterval, axis.min, axis.max);
-			} else {
-				tickPositions = axis.getLinearTickPositions(axis.tickInterval, axis.min, axis.max);
-			}
-			if (keepTwoTicksOnly) {
-				tickPositions.splice(1, tickPositions.length - 2);
-			}
-
-			axis.tickPositions = tickPositions;
-		}
-
-		if (!isLinked) {
-
-			// reset min/max or remove extremes based on start/end on tick
-			var roundedMin = tickPositions[0],
-				roundedMax = tickPositions[tickPositions.length - 1],
-				minPointOffset = axis.minPointOffset || 0,
-				singlePad;
-
-			if (options.startOnTick) {
-				axis.min = roundedMin;
-			} else if (axis.min - minPointOffset > roundedMin) {
-				tickPositions.shift();
-			}
-
-			if (options.endOnTick) {
-				axis.max = roundedMax;
-			} else if (axis.max + minPointOffset < roundedMax) {
-				tickPositions.pop();
-			}
-			
-			// When there is only one point, or all points have the same value on this axis, then min
-			// and max are equal and tickPositions.length is 1. In this case, add some padding
-			// in order to center the point, but leave it with one tick. #1337.
-			if (tickPositions.length === 1) {
-				singlePad = 0.001; // The lowest possible number to avoid extra padding on columns
-				axis.min -= singlePad;
-				axis.max += singlePad;
-			}
-		}
-	},
-	
-	/**
-	 * Set the max ticks of either the x and y axis collection
-	 */
-	setMaxTicks: function () {
-		
-		var chart = this.chart,
-			maxTicks = chart.maxTicks || {},
-			tickPositions = this.tickPositions,
-			key = this._maxTicksKey = [this.xOrY, this.pos, this.len].join('-');
-		
-		if (!this.isLinked && !this.isDatetimeAxis && tickPositions && tickPositions.length > (maxTicks[key] || 0) && this.options.alignTicks !== false) {
-			maxTicks[key] = tickPositions.length;
-		}
-		chart.maxTicks = maxTicks;
-	},
-
-	/**
-	 * When using multiple axes, adjust the number of ticks to match the highest
-	 * number of ticks in that group
-	 */
-	adjustTickAmount: function () {
-		var axis = this,
-			chart = axis.chart,
-			key = axis._maxTicksKey,
-			tickPositions = axis.tickPositions,
-			maxTicks = chart.maxTicks;
-
-		if (maxTicks && maxTicks[key] && !axis.isDatetimeAxis && !axis.categories && !axis.isLinked && axis.options.alignTicks !== false) { // only apply to linear scale
-			var oldTickAmount = axis.tickAmount,
-				calculatedTickAmount = tickPositions.length,
-				tickAmount;
-
-			// set the axis-level tickAmount to use below
-			axis.tickAmount = tickAmount = maxTicks[key];
-
-			if (calculatedTickAmount < tickAmount) {
-				while (tickPositions.length < tickAmount) {
-					tickPositions.push(correctFloat(
-						tickPositions[tickPositions.length - 1] + axis.tickInterval
-					));
-				}
-				axis.transA *= (calculatedTickAmount - 1) / (tickAmount - 1);
-				axis.max = tickPositions[tickPositions.length - 1];
-
-			}
-			if (defined(oldTickAmount) && tickAmount !== oldTickAmount) {
-				axis.isDirty = true;
-			}
-		}
-	},
-
-	/**
-	 * Set the scale based on data min and max, user set min and max or options
-	 *
-	 */
-	setScale: function () {
-		var axis = this,
-			stacks = axis.stacks,
-			type,
-			i,
-			isDirtyData,
-			isDirtyAxisLength;
-
-		axis.oldMin = axis.min;
-		axis.oldMax = axis.max;
-		axis.oldAxisLength = axis.len;
-
-		// set the new axisLength
-		axis.setAxisSize();
-		//axisLength = horiz ? axisWidth : axisHeight;
-		isDirtyAxisLength = axis.len !== axis.oldAxisLength;
-
-		// is there new data?
-		each(axis.series, function (series) {
-			if (series.isDirtyData || series.isDirty ||
-					series.xAxis.isDirty) { // when x axis is dirty, we need new data extremes for y as well
-				isDirtyData = true;
-			}
-		});
-
-		// do we really need to go through all this?
-		if (isDirtyAxisLength || isDirtyData || axis.isLinked || axis.forceRedraw ||
-			axis.userMin !== axis.oldUserMin || axis.userMax !== axis.oldUserMax) {
-			
-			// reset stacks
-			if (!axis.isXAxis) {
-				for (type in stacks) {
-					delete stacks[type];
-				}
-			}
-
-			axis.forceRedraw = false;
-
-			// get data extremes if needed
-			axis.getSeriesExtremes();
-
-			// get fixed positions based on tickInterval
-			axis.setTickPositions();
-
-			// record old values to decide whether a rescale is necessary later on (#540)
-			axis.oldUserMin = axis.userMin;
-			axis.oldUserMax = axis.userMax;
-
-			// Mark as dirty if it is not already set to dirty and extremes have changed. #595.
-			if (!axis.isDirty) {
-				axis.isDirty = isDirtyAxisLength || axis.min !== axis.oldMin || axis.max !== axis.oldMax;
-			}
-		} else if (!axis.isXAxis) {
-			if (axis.oldStacks) {
-				stacks = axis.stacks = axis.oldStacks;
-			}
-
-			// reset stacks
-			for (type in stacks) {
-				for (i in stacks[type]) {
-					stacks[type][i].cum = stacks[type][i].total;
-				}
-			}
-		}
-		
-		// Set the maximum tick amount
-		axis.setMaxTicks();
-	},
-
-	/**
-	 * Set the extremes and optionally redraw
-	 * @param {Number} newMin
-	 * @param {Number} newMax
-	 * @param {Boolean} redraw
-	 * @param {Boolean|Object} animation Whether to apply animation, and optionally animation
-	 *    configuration
-	 * @param {Object} eventArguments 
-	 *
-	 */
-	setExtremes: function (newMin, newMax, redraw, animation, eventArguments) {
-		var axis = this,
-			chart = axis.chart;
-
-		redraw = pick(redraw, true); // defaults to true
-
-		// Extend the arguments with min and max
-		eventArguments = extend(eventArguments, {
-			min: newMin,
-			max: newMax
-		});
-
-		// Fire the event
-		fireEvent(axis, 'setExtremes', eventArguments, function () { // the default event handler
-
-			axis.userMin = newMin;
-			axis.userMax = newMax;
-			axis.eventArgs = eventArguments;
-
-			// Mark for running afterSetExtremes
-			axis.isDirtyExtremes = true;
-
-			// redraw
-			if (redraw) {
-				chart.redraw(animation);
-			}
-		});
-	},
-	
-	/**
-	 * Overridable method for zooming chart. Pulled out in a separate method to allow overriding
-	 * in stock charts.
-	 */
-	zoom: function (newMin, newMax) {
-
-		// Prevent pinch zooming out of range. Check for defined is for #1946.
-		if (!this.allowZoomOutside) {
-			if (defined(this.dataMin) && newMin <= this.dataMin) {
-				newMin = UNDEFINED;
-			}
-			if (defined(this.dataMax) && newMax >= this.dataMax) {
-				newMax = UNDEFINED;
-			}
-		}
-
-		// In full view, displaying the reset zoom button is not required
-		this.displayBtn = newMin !== UNDEFINED || newMax !== UNDEFINED;
-		
-		// Do it
-		this.setExtremes(
-			newMin,
-			newMax,
-			false, 
-			UNDEFINED, 
-			{ trigger: 'zoom' }
-		);
-		return true;
-	},
-	
-	/**
-	 * Update the axis metrics
-	 */
-	setAxisSize: function () {
-		var chart = this.chart,
-			options = this.options,
-			offsetLeft = options.offsetLeft || 0,
-			offsetRight = options.offsetRight || 0,
-			horiz = this.horiz,
-			width,
-			height,
-			top,
-			left;
-
-		// Expose basic values to use in Series object and navigator
-		this.left = left = pick(options.left, chart.plotLeft + offsetLeft);
-		this.top = top = pick(options.top, chart.plotTop);
-		this.width = width = pick(options.width, chart.plotWidth - offsetLeft + offsetRight);
-		this.height = height = pick(options.height, chart.plotHeight);
-		this.bottom = chart.chartHeight - height - top;
-		this.right = chart.chartWidth - width - left;
-
-		// Direction agnostic properties
-		this.len = mathMax(horiz ? width : height, 0); // mathMax fixes #905
-		this.pos = horiz ? left : top; // distance from SVG origin
-	},
-
-	/**
-	 * Get the actual axis extremes
-	 */
-	getExtremes: function () {
-		var axis = this,
-			isLog = axis.isLog;
-
-		return {
-			min: isLog ? correctFloat(lin2log(axis.min)) : axis.min,
-			max: isLog ? correctFloat(lin2log(axis.max)) : axis.max,
-			dataMin: axis.dataMin,
-			dataMax: axis.dataMax,
-			userMin: axis.userMin,
-			userMax: axis.userMax
-		};
-	},
-
-	/**
-	 * Get the zero plane either based on zero or on the min or max value.
-	 * Used in bar and area plots
-	 */
-	getThreshold: function (threshold) {
-		var axis = this,
-			isLog = axis.isLog;
-
-		var realMin = isLog ? lin2log(axis.min) : axis.min,
-			realMax = isLog ? lin2log(axis.max) : axis.max;
-		
-		if (realMin > threshold || threshold === null) {
-			threshold = realMin;
-		} else if (realMax < threshold) {
-			threshold = realMax;
-		}
-
-		return axis.translate(threshold, 0, 1, 0, 1);
-	},
-
-	addPlotBand: function (options) {
-		this.addPlotBandOrLine(options, 'plotBands');
-	},
-	
-	addPlotLine: function (options) {
-		this.addPlotBandOrLine(options, 'plotLines');
-	},
-
-	/**
-	 * Add a plot band or plot line after render time
-	 *
-	 * @param options {Object} The plotBand or plotLine configuration object
-	 */
-	addPlotBandOrLine: function (options, coll) {
-		var obj = new PlotLineOrBand(this, options).render(),
-			userOptions = this.userOptions;
-
-		if (obj) { // #2189
-			// Add it to the user options for exporting and Axis.update
-			if (coll) {
-				userOptions[coll] = userOptions[coll] || [];
-				userOptions[coll].push(options); 
-			}
-			this.plotLinesAndBands.push(obj); 
-		}
-		
-		return obj;
-	},
-
-	/**
-	 * Compute auto alignment for the axis label based on which side the axis is on 
-	 * and the given rotation for the label
-	 */
-	autoLabelAlign: function (rotation) {
-		var ret, 
-			angle = (pick(rotation, 0) - (this.side * 90) + 720) % 360;
-
-		if (angle > 15 && angle < 165) {
-			ret = 'right';
-		} else if (angle > 195 && angle < 345) {
-			ret = 'left';
-		} else {
-			ret = 'center';
-		}
-		return ret;
-	},
-
-	/**
-	 * Render the tick labels to a preliminary position to get their sizes
-	 */
-	getOffset: function () {
-		var axis = this,
-			chart = axis.chart,
-			renderer = chart.renderer,
-			options = axis.options,
-			tickPositions = axis.tickPositions,
-			ticks = axis.ticks,
-			horiz = axis.horiz,
-			side = axis.side,
-			invertedSide = chart.inverted ? [1, 0, 3, 2][side] : side,
-			hasData,
-			showAxis,
-			titleOffset = 0,
-			titleOffsetOption,
-			titleMargin = 0,
-			axisTitleOptions = options.title,
-			labelOptions = options.labels,
-			labelOffset = 0, // reset
-			axisOffset = chart.axisOffset,
-			clipOffset = chart.clipOffset,
-			directionFactor = [-1, 1, 1, -1][side],
-			n,
-			i,
-			autoStaggerLines = 1,
-			maxStaggerLines = pick(labelOptions.maxStaggerLines, 5),
-			sortedPositions,
-			lastRight,
-			overlap,
-			pos,
-			bBox,
-			x,
-			w,
-			lineNo;
-			
-		// For reuse in Axis.render
-		axis.hasData = hasData = (axis.hasVisibleSeries || (defined(axis.min) && defined(axis.max) && !!tickPositions));
-		axis.showAxis = showAxis = hasData || pick(options.showEmpty, true);
-
-		// Set/reset staggerLines
-		axis.staggerLines = axis.horiz && labelOptions.staggerLines;
-		
-		// Create the axisGroup and gridGroup elements on first iteration
-		if (!axis.axisGroup) {
-			axis.gridGroup = renderer.g('grid')
-				.attr({ zIndex: options.gridZIndex || 1 })
-				.add();
-			axis.axisGroup = renderer.g('axis')
-				.attr({ zIndex: options.zIndex || 2 })
-				.add();
-			axis.labelGroup = renderer.g('axis-labels')
-				.attr({ zIndex: labelOptions.zIndex || 7 })
-				.add();
-		}
-
-		if (hasData || axis.isLinked) {
-			
-			// Set the explicit or automatic label alignment
-			axis.labelAlign = pick(labelOptions.align || axis.autoLabelAlign(labelOptions.rotation));
-
-			each(tickPositions, function (pos) {
-				if (!ticks[pos]) {
-					ticks[pos] = new Tick(axis, pos);
-				} else {
-					ticks[pos].addLabel(); // update labels depending on tick interval
-				}
-			});
-
-			// Handle automatic stagger lines
-			if (axis.horiz && !axis.staggerLines && maxStaggerLines && !labelOptions.rotation) {
-				sortedPositions = axis.reversed ? [].concat(tickPositions).reverse() : tickPositions;
-				while (autoStaggerLines < maxStaggerLines) {
-					lastRight = [];
-					overlap = false;
-					
-					for (i = 0; i < sortedPositions.length; i++) {
-						pos = sortedPositions[i];
-						bBox = ticks[pos].label && ticks[pos].label.getBBox();
-						w = bBox ? bBox.width : 0;
-						lineNo = i % autoStaggerLines;
-						
-						if (w) {
-							x = axis.translate(pos); // don't handle log
-							if (lastRight[lineNo] !== UNDEFINED && x < lastRight[lineNo]) {
-								overlap = true;
-							}
-							lastRight[lineNo] = x + w;
-						}
-					}
-					if (overlap) {
-						autoStaggerLines++;
-					} else {
-						break;
-					}
-				}
-
-				if (autoStaggerLines > 1) {
-					axis.staggerLines = autoStaggerLines;
-				}
-			}
-
-
-			each(tickPositions, function (pos) {
-				// left side must be align: right and right side must have align: left for labels
-				if (side === 0 || side === 2 || { 1: 'left', 3: 'right' }[side] === axis.labelAlign) {
-
-					// get the highest offset
-					labelOffset = mathMax(
-						ticks[pos].getLabelSize(),
-						labelOffset
-					);
-				}
-
-			});
-			if (axis.staggerLines) {
-				labelOffset *= axis.staggerLines;
-				axis.labelOffset = labelOffset;
-			}
-			
-
-		} else { // doesn't have data
-			for (n in ticks) {
-				ticks[n].destroy();
-				delete ticks[n];
-			}
-		}
-
-		if (axisTitleOptions && axisTitleOptions.text && axisTitleOptions.enabled !== false) { 
-			if (!axis.axisTitle) {
-				axis.axisTitle = renderer.text(
-					axisTitleOptions.text,
-					0,
-					0,
-					axisTitleOptions.useHTML
-				)
-				.attr({
-					zIndex: 7,
-					rotation: axisTitleOptions.rotation || 0,
-					align:
-						axisTitleOptions.textAlign ||
-						{ low: 'left', middle: 'center', high: 'right' }[axisTitleOptions.align]
-				})
-				.css(axisTitleOptions.style)
-				.add(axis.axisGroup);
-				axis.axisTitle.isNew = true;
-			}
-
-			if (showAxis) {
-				titleOffset = axis.axisTitle.getBBox()[horiz ? 'height' : 'width'];
-				titleMargin = pick(axisTitleOptions.margin, horiz ? 5 : 10);
-				titleOffsetOption = axisTitleOptions.offset;
-			}
-
-			// hide or show the title depending on whether showEmpty is set
-			axis.axisTitle[showAxis ? 'show' : 'hide']();
-		}
-		
-		// handle automatic or user set offset
-		axis.offset = directionFactor * pick(options.offset, axisOffset[side]);
-		
-		axis.axisTitleMargin =
-			pick(titleOffsetOption,
-				labelOffset + titleMargin +
-				(side !== 2 && labelOffset && directionFactor * options.labels[horiz ? 'y' : 'x'])
-			);
-
-		axisOffset[side] = mathMax(
-			axisOffset[side],
-			axis.axisTitleMargin + titleOffset + directionFactor * axis.offset
-		);
-		clipOffset[invertedSide] = mathMax(clipOffset[invertedSide], mathFloor(options.lineWidth / 2) * 2);
-	},
-	
-	/**
-	 * Get the path for the axis line
-	 */
-	getLinePath: function (lineWidth) {
-		var chart = this.chart,
-			opposite = this.opposite,
-			offset = this.offset,
-			horiz = this.horiz,
-			lineLeft = this.left + (opposite ? this.width : 0) + offset,
-			lineTop = chart.chartHeight - this.bottom - (opposite ? this.height : 0) + offset;
-			
-		if (opposite) {
-			lineWidth *= -1; // crispify the other way - #1480, #1687
-		}
-
-		return chart.renderer.crispLine([
-				M,
-				horiz ?
-					this.left :
-					lineLeft,
-				horiz ?
-					lineTop :
-					this.top,
-				L,
-				horiz ?
-					chart.chartWidth - this.right :
-					lineLeft,
-				horiz ?
-					lineTop :
-					chart.chartHeight - this.bottom
-			], lineWidth);
-	},
-	
-	/**
-	 * Position the title
-	 */
-	getTitlePosition: function () {
-		// compute anchor points for each of the title align options
-		var horiz = this.horiz,
-			axisLeft = this.left,
-			axisTop = this.top,
-			axisLength = this.len,
-			axisTitleOptions = this.options.title,			
-			margin = horiz ? axisLeft : axisTop,
-			opposite = this.opposite,
-			offset = this.offset,
-			fontSize = pInt(axisTitleOptions.style.fontSize || 12),
-			
-			// the position in the length direction of the axis
-			alongAxis = {
-				low: margin + (horiz ? 0 : axisLength),
-				middle: margin + axisLength / 2,
-				high: margin + (horiz ? axisLength : 0)
-			}[axisTitleOptions.align],
-	
-			// the position in the perpendicular direction of the axis
-			offAxis = (horiz ? axisTop + this.height : axisLeft) +
-				(horiz ? 1 : -1) * // horizontal axis reverses the margin
-				(opposite ? -1 : 1) * // so does opposite axes
-				this.axisTitleMargin +
-				(this.side === 2 ? fontSize : 0);
-
-		return {
-			x: horiz ?
-				alongAxis :
-				offAxis + (opposite ? this.width : 0) + offset +
-					(axisTitleOptions.x || 0), // x
-			y: horiz ?
-				offAxis - (opposite ? this.height : 0) + offset :
-				alongAxis + (axisTitleOptions.y || 0) // y
-		};
-	},
-	
-	/**
-	 * Render the axis
-	 */
-	render: function () {
-		var axis = this,
-			chart = axis.chart,
-			renderer = chart.renderer,
-			options = axis.options,
-			isLog = axis.isLog,
-			isLinked = axis.isLinked,
-			tickPositions = axis.tickPositions,
-			axisTitle = axis.axisTitle,
-			stacks = axis.stacks,
-			ticks = axis.ticks,
-			minorTicks = axis.minorTicks,
-			alternateBands = axis.alternateBands,
-			stackLabelOptions = options.stackLabels,
-			alternateGridColor = options.alternateGridColor,
-			tickmarkOffset = axis.tickmarkOffset,
-			lineWidth = options.lineWidth,
-			linePath,
-			hasRendered = chart.hasRendered,
-			slideInTicks = hasRendered && defined(axis.oldMin) && !isNaN(axis.oldMin),
-			hasData = axis.hasData,
-			showAxis = axis.showAxis,
-			from,
-			to;
-
-		// Mark all elements inActive before we go over and mark the active ones
-		each([ticks, minorTicks, alternateBands], function (coll) {
-			var pos;
-			for (pos in coll) {
-				coll[pos].isActive = false;
-			}
-		});
-
-		// If the series has data draw the ticks. Else only the line and title
-		if (hasData || isLinked) {
-
-			// minor ticks
-			if (axis.minorTickInterval && !axis.categories) {
-				each(axis.getMinorTickPositions(), function (pos) {
-					if (!minorTicks[pos]) {
-						minorTicks[pos] = new Tick(axis, pos, 'minor');
-					}
-
-					// render new ticks in old position
-					if (slideInTicks && minorTicks[pos].isNew) {
-						minorTicks[pos].render(null, true);
-					}
-
-					minorTicks[pos].render(null, false, 1);
-				});
-			}
-
-			// Major ticks. Pull out the first item and render it last so that
-			// we can get the position of the neighbour label. #808.
-			if (tickPositions.length) { // #1300
-				each(tickPositions.slice(1).concat([tickPositions[0]]), function (pos, i) {
-	
-					// Reorganize the indices
-					i = (i === tickPositions.length - 1) ? 0 : i + 1;
-	
-					// linked axes need an extra check to find out if
-					if (!isLinked || (pos >= axis.min && pos <= axis.max)) {
-	
-						if (!ticks[pos]) {
-							ticks[pos] = new Tick(axis, pos);
-						}
-	
-						// render new ticks in old position
-						if (slideInTicks && ticks[pos].isNew) {
-							ticks[pos].render(i, true);
-						}
-	
-						ticks[pos].render(i, false, 1);
-					}
-	
-				});
-				// In a categorized axis, the tick marks are displayed between labels. So
-				// we need to add a tick mark and grid line at the left edge of the X axis.
-				if (tickmarkOffset && axis.min === 0) {
-					if (!ticks[-1]) {
-						ticks[-1] = new Tick(axis, -1, null, true);
-					}
-					ticks[-1].render(-1);
-				}
-				
-			}
-
-			// alternate grid color
-			if (alternateGridColor) {
-				each(tickPositions, function (pos, i) {
-					if (i % 2 === 0 && pos < axis.max) {
-						if (!alternateBands[pos]) {
-							alternateBands[pos] = new PlotLineOrBand(axis);
-						}
-						from = pos + tickmarkOffset; // #949
-						to = tickPositions[i + 1] !== UNDEFINED ? tickPositions[i + 1] + tickmarkOffset : axis.max;
-						alternateBands[pos].options = {
-							from: isLog ? lin2log(from) : from,
-							to: isLog ? lin2log(to) : to,
-							color: alternateGridColor
-						};
-						alternateBands[pos].render();
-						alternateBands[pos].isActive = true;
-					}
-				});
-			}
-
-			// custom plot lines and bands
-			if (!axis._addedPlotLB) { // only first time
-				each((options.plotLines || []).concat(options.plotBands || []), function (plotLineOptions) {
-					axis.addPlotBandOrLine(plotLineOptions);
-				});
-				axis._addedPlotLB = true;
-			}
-
-		} // end if hasData
-
-		// Remove inactive ticks
-		each([ticks, minorTicks, alternateBands], function (coll) {
-			var pos, 
-				i,
-				forDestruction = [],
-				delay = globalAnimation ? globalAnimation.duration || 500 : 0,
-				destroyInactiveItems = function () {
-					i = forDestruction.length;
-					while (i--) {
-						// When resizing rapidly, the same items may be destroyed in different timeouts,
-						// or the may be reactivated
-						if (coll[forDestruction[i]] && !coll[forDestruction[i]].isActive) {
-							coll[forDestruction[i]].destroy();
-							delete coll[forDestruction[i]];
-						}
-					}
-					
-				};
-
-			for (pos in coll) {
-
-				if (!coll[pos].isActive) {
-					// Render to zero opacity
-					coll[pos].render(pos, false, 0);
-					coll[pos].isActive = false;
-					forDestruction.push(pos);
-				}
-			}
-
-			// When the objects are finished fading out, destroy them
-			if (coll === alternateBands || !chart.hasRendered || !delay) {
-				destroyInactiveItems();
-			} else if (delay) {
-				setTimeout(destroyInactiveItems, delay);
-			}
-		});
-
-		// Static items. As the axis group is cleared on subsequent calls
-		// to render, these items are added outside the group.
-		// axis line
-		if (lineWidth) {
-			linePath = axis.getLinePath(lineWidth);
-			if (!axis.axisLine) {
-				axis.axisLine = renderer.path(linePath)
-					.attr({
-						stroke: options.lineColor,
-						'stroke-width': lineWidth,
-						zIndex: 7
-					})
-					.add(axis.axisGroup);
-			} else {
-				axis.axisLine.animate({ d: linePath });
-			}
-
-			// show or hide the line depending on options.showEmpty
-			axis.axisLine[showAxis ? 'show' : 'hide']();
-		}
-
-		if (axisTitle && showAxis) {
-			
-			axisTitle[axisTitle.isNew ? 'attr' : 'animate'](
-				axis.getTitlePosition()
-			);
-			axisTitle.isNew = false;
-		}
-
-		// Stacked totals:
-		if (stackLabelOptions && stackLabelOptions.enabled) {
-			var stackKey, oneStack, stackCategory,
-				stackTotalGroup = axis.stackTotalGroup;
-
-			// Create a separate group for the stack total labels
-			if (!stackTotalGroup) {
-				axis.stackTotalGroup = stackTotalGroup =
-					renderer.g('stack-labels')
-						.attr({
-							visibility: VISIBLE,
-							zIndex: 6
-						})
-						.add();
-			}
-
-			// plotLeft/Top will change when y axis gets wider so we need to translate the
-			// stackTotalGroup at every render call. See bug #506 and #516
-			stackTotalGroup.translate(chart.plotLeft, chart.plotTop);
-
-			// Render each stack total
-			for (stackKey in stacks) {
-				oneStack = stacks[stackKey];
-				for (stackCategory in oneStack) {
-					oneStack[stackCategory].render(stackTotalGroup);
-				}
-			}
-		}
-		// End stacked totals
-
-		axis.isDirty = false;
-	},
-
-	/**
-	 * Remove a plot band or plot line from the chart by id
-	 * @param {Object} id
-	 */
-	removePlotBandOrLine: function (id) {
-		var plotLinesAndBands = this.plotLinesAndBands,
-			options = this.options,
-			userOptions = this.userOptions,
-			i = plotLinesAndBands.length;
-		while (i--) {
-			if (plotLinesAndBands[i].id === id) {
-				plotLinesAndBands[i].destroy();
-			}
-		}
-		each([options.plotLines || [], userOptions.plotLines || [], options.plotBands || [], userOptions.plotBands || []], function (arr) {
-			i = arr.length;
-			while (i--) {
-				if (arr[i].id === id) {
-					erase(arr, arr[i]);
-				}
-			}
-		});
-
-	},
-
-	/**
-	 * Update the axis title by options
-	 */
-	setTitle: function (newTitleOptions, redraw) {
-		this.update({ title: newTitleOptions }, redraw);
-	},
-
-	/**
-	 * Redraw the axis to reflect changes in the data or axis extremes
-	 */
-	redraw: function () {
-		var axis = this,
-			chart = axis.chart,
-			pointer = chart.pointer;
-
-		// hide tooltip and hover states
-		if (pointer.reset) {
-			pointer.reset(true);
-		}
-
-		// render the axis
-		axis.render();
-
-		// move plot lines and bands
-		each(axis.plotLinesAndBands, function (plotLine) {
-			plotLine.render();
-		});
-
-		// mark associated series as dirty and ready for redraw
-		each(axis.series, function (series) {
-			series.isDirty = true;
-		});
-
-	},
-
-	/**
-	 * Build the stacks from top down
-	 */
-	buildStacks: function () {
-		var series = this.series,
-			i = series.length;
-		if (!this.isXAxis) {
-			while (i--) {
-				series[i].setStackedPoints();
-			}
-			// Loop up again to compute percent stack
-			if (this.usePercentage) {
-				for (i = 0; i < series.length; i++) {
-					series[i].setPercentStacks();
-				}
-			}
-		}
-	},
-
-	/**
-	 * Set new axis categories and optionally redraw
-	 * @param {Array} categories
-	 * @param {Boolean} redraw
-	 */
-	setCategories: function (categories, redraw) {
-		this.update({ categories: categories }, redraw);
-	},
-
-	/**
-	 * Destroys an Axis instance.
-	 */
-	destroy: function (keepEvents) {
-		var axis = this,
-			stacks = axis.stacks,
-			stackKey,
-			plotLinesAndBands = axis.plotLinesAndBands,
-			i;
-
-		// Remove the events
-		if (!keepEvents) {
-			removeEvent(axis);
-		}
-
-		// Destroy each stack total
-		for (stackKey in stacks) {
-			destroyObjectProperties(stacks[stackKey]);
-
-			stacks[stackKey] = null;
-		}
-
-		// Destroy collections
-		each([axis.ticks, axis.minorTicks, axis.alternateBands], function (coll) {
-			destroyObjectProperties(coll);
-		});
-		i = plotLinesAndBands.length;
-		while (i--) { // #1975
-			plotLinesAndBands[i].destroy();
-		}
-
-		// Destroy local variables
-		each(['stackTotalGroup', 'axisLine', 'axisGroup', 'gridGroup', 'labelGroup', 'axisTitle'], function (prop) {
-			if (axis[prop]) {
-				axis[prop] = axis[prop].destroy();
-			}
-		});
-	}
-
-	
-}; // end Axis
-
-/**
- * The tooltip object
- * @param {Object} chart The chart instance
- * @param {Object} options Tooltip options
- */
-function Tooltip() {
-	this.init.apply(this, arguments);
-}
-
-Tooltip.prototype = {
-
-	init: function (chart, options) {
-
-		var borderWidth = options.borderWidth,
-			style = options.style,
-			padding = pInt(style.padding);
-
-		// Save the chart and options
-		this.chart = chart;
-		this.options = options;
-
-		// Keep track of the current series
-		//this.currentSeries = UNDEFINED;
-
-		// List of crosshairs
-		this.crosshairs = [];
-
-		// Current values of x and y when animating
-		this.now = { x: 0, y: 0 };
-
-		// The tooltip is initially hidden
-		this.isHidden = true;
-
-
-		// create the label
-		this.label = chart.renderer.label('', 0, 0, options.shape, null, null, options.useHTML, null, 'tooltip')
-			.attr({
-				padding: padding,
-				fill: options.backgroundColor,
-				'stroke-width': borderWidth,
-				r: options.borderRadius,
-				zIndex: 8
-			})
-			.css(style)
-			.css({ padding: 0 }) // Remove it from VML, the padding is applied as an attribute instead (#1117)
-			.add()
-			.attr({ y: -999 }); // #2301
-
-		// When using canVG the shadow shows up as a gray circle
-		// even if the tooltip is hidden.
-		if (!useCanVG) {
-			this.label.shadow(options.shadow);
-		}
-
-		// Public property for getting the shared state.
-		this.shared = options.shared;
-	},
-
-	/**
-	 * Destroy the tooltip and its elements.
-	 */
-	destroy: function () {
-		each(this.crosshairs, function (crosshair) {
-			if (crosshair) {
-				crosshair.destroy();
-			}
-		});
-
-		// Destroy and clear local variables
-		if (this.label) {
-			this.label = this.label.destroy();
-		}
-		clearTimeout(this.hideTimer);
-		clearTimeout(this.tooltipTimeout);
-	},
-
-	/**
-	 * Provide a soft movement for the tooltip
-	 *
-	 * @param {Number} x
-	 * @param {Number} y
-	 * @private
-	 */
-	move: function (x, y, anchorX, anchorY) {
-		var tooltip = this,
-			now = tooltip.now,
-			animate = tooltip.options.animation !== false && !tooltip.isHidden;
-
-		// get intermediate values for animation
-		extend(now, {
-			x: animate ? (2 * now.x + x) / 3 : x,
-			y: animate ? (now.y + y) / 2 : y,
-			anchorX: animate ? (2 * now.anchorX + anchorX) / 3 : anchorX,
-			anchorY: animate ? (now.anchorY + anchorY) / 2 : anchorY
-		});
-
-		// move to the intermediate value
-		tooltip.label.attr(now);
-
-		
-		// run on next tick of the mouse tracker
-		if (animate && (mathAbs(x - now.x) > 1 || mathAbs(y - now.y) > 1)) {
-		
-			// never allow two timeouts
-			clearTimeout(this.tooltipTimeout);
-			
-			// set the fixed interval ticking for the smooth tooltip
-			this.tooltipTimeout = setTimeout(function () {
-				// The interval function may still be running during destroy, so check that the chart is really there before calling.
-				if (tooltip) {
-					tooltip.move(x, y, anchorX, anchorY);
-				}
-			}, 32);
-			
-		}
-	},
-
-	/**
-	 * Hide the tooltip
-	 */
-	hide: function () {
-		var tooltip = this,
-			hoverPoints;
-		
-		clearTimeout(this.hideTimer); // disallow duplicate timers (#1728, #1766)
-		if (!this.isHidden) {
-			hoverPoints = this.chart.hoverPoints;
-
-			this.hideTimer = setTimeout(function () {
-				tooltip.label.fadeOut();
-				tooltip.isHidden = true;
-			}, pick(this.options.hideDelay, 500));
-
-			// hide previous hoverPoints and set new
-			if (hoverPoints) {
-				each(hoverPoints, function (point) {
-					point.setState();
-				});
-			}
-
-			this.chart.hoverPoints = null;
-		}
-	},
-
-	/**
-	 * Hide the crosshairs
-	 */
-	hideCrosshairs: function () {
-		each(this.crosshairs, function (crosshair) {
-			if (crosshair) {
-				crosshair.hide();
-			}
-		});
-	},
-	
-	/** 
-	 * Extendable method to get the anchor position of the tooltip
-	 * from a point or set of points
-	 */
-	getAnchor: function (points, mouseEvent) {
-		var ret,
-			chart = this.chart,
-			inverted = chart.inverted,
-			plotTop = chart.plotTop,
-			plotX = 0,
-			plotY = 0,
-			yAxis;
-		
-		points = splat(points);
-		
-		// Pie uses a special tooltipPos
-		ret = points[0].tooltipPos;
-		
-		// When tooltip follows mouse, relate the position to the mouse
-		if (this.followPointer && mouseEvent) {
-			if (mouseEvent.chartX === UNDEFINED) {
-				mouseEvent = chart.pointer.normalize(mouseEvent);
-			}
-			ret = [
-				mouseEvent.chartX - chart.plotLeft,
-				mouseEvent.chartY - plotTop
-			];
-		}
-		// When shared, use the average position
-		if (!ret) {
-			each(points, function (point) {
-				yAxis = point.series.yAxis;
-				plotX += point.plotX;
-				plotY += (point.plotLow ? (point.plotLow + point.plotHigh) / 2 : point.plotY) +
-					(!inverted && yAxis ? yAxis.top - plotTop : 0); // #1151
-			});
-			
-			plotX /= points.length;
-			plotY /= points.length;
-			
-			ret = [
-				inverted ? chart.plotWidth - plotY : plotX,
-				this.shared && !inverted && points.length > 1 && mouseEvent ? 
-					mouseEvent.chartY - plotTop : // place shared tooltip next to the mouse (#424)
-					inverted ? chart.plotHeight - plotX : plotY
-			];
-		}
-
-		return map(ret, mathRound);
-	},
-	
-	/**
-	 * Place the tooltip in a chart without spilling over
-	 * and not covering the point it self.
-	 */
-	getPosition: function (boxWidth, boxHeight, point) {
-		
-		// Set up the variables
-		var chart = this.chart,
-			plotLeft = chart.plotLeft,
-			plotTop = chart.plotTop,
-			plotWidth = chart.plotWidth,
-			plotHeight = chart.plotHeight,
-			distance = pick(this.options.distance, 12),
-			pointX = point.plotX,
-			pointY = point.plotY,
-			x = pointX + plotLeft + (chart.inverted ? distance : -boxWidth - distance),
-			y = pointY - boxHeight + plotTop + 15, // 15 means the point is 15 pixels up from the bottom of the tooltip
-			alignedRight;
-	
-		// It is too far to the left, adjust it
-		if (x < 7) {
-			x = plotLeft + mathMax(pointX, 0) + distance;
-		}
-	
-		// Test to see if the tooltip is too far to the right,
-		// if it is, move it back to be inside and then up to not cover the point.
-		if ((x + boxWidth) > (plotLeft + plotWidth)) {
-			x -= (x + boxWidth) - (plotLeft + plotWidth);
-			y = pointY - boxHeight + plotTop - distance;
-			alignedRight = true;
-		}
-	
-		// If it is now above the plot area, align it to the top of the plot area
-		if (y < plotTop + 5) {
-			y = plotTop + 5;
-	
-			// If the tooltip is still covering the point, move it below instead
-			if (alignedRight && pointY >= y && pointY <= (y + boxHeight)) {
-				y = pointY + plotTop + distance; // below
-			}
-		} 
-	
-		// Now if the tooltip is below the chart, move it up. It's better to cover the
-		// point than to disappear outside the chart. #834.
-		if (y + boxHeight > plotTop + plotHeight) {
-			y = mathMax(plotTop, plotTop + plotHeight - boxHeight - distance); // below
-		}
-	
-		return {x: x, y: y};
-	},
-
-	/**
-	 * In case no user defined formatter is given, this will be used. Note that the context
-	 * here is an object holding point, series, x, y etc.
-	 */
-	defaultFormatter: function (tooltip) {
-		var items = this.points || splat(this),
-			series = items[0].series,
-			s;
-
-		// build the header
-		s = [series.tooltipHeaderFormatter(items[0])];
-
-		// build the values
-		each(items, function (item) {
-			series = item.series;
-			s.push((series.tooltipFormatter && series.tooltipFormatter(item)) ||
-				item.point.tooltipFormatter(series.tooltipOptions.pointFormat));
-		});
-
-		// footer
-		s.push(tooltip.options.footerFormat || '');
-
-		return s.join('');
-	},
-
-	/**
-	 * Refresh the tooltip's text and position.
-	 * @param {Object} point
-	 */
-	refresh: function (point, mouseEvent) {
-		var tooltip = this,
-			chart = tooltip.chart,
-			label = tooltip.label,
-			options = tooltip.options,
-			x,
-			y,
-			anchor,
-			textConfig = {},
-			text,
-			pointConfig = [],
-			formatter = options.formatter || tooltip.defaultFormatter,
-			hoverPoints = chart.hoverPoints,
-			borderColor,
-			crosshairsOptions = options.crosshairs,
-			shared = tooltip.shared,
-			currentSeries;
-			
-		clearTimeout(this.hideTimer);
-		
-		// get the reference point coordinates (pie charts use tooltipPos)
-		tooltip.followPointer = splat(point)[0].series.tooltipOptions.followPointer;
-		anchor = tooltip.getAnchor(point, mouseEvent);
-		x = anchor[0];
-		y = anchor[1];
-
-		// shared tooltip, array is sent over
-		if (shared && !(point.series && point.series.noSharedTooltip)) {
-			
-			// hide previous hoverPoints and set new
-			
-			chart.hoverPoints = point;
-			if (hoverPoints) {
-				each(hoverPoints, function (point) {
-					point.setState();
-				});
-			}
-
-			each(point, function (item) {
-				item.setState(HOVER_STATE);
-
-				pointConfig.push(item.getLabelConfig());
-			});
-
-			textConfig = {
-				x: point[0].category,
-				y: point[0].y
-			};
-			textConfig.points = pointConfig;
-			point = point[0];
-
-		// single point tooltip
-		} else {
-			textConfig = point.getLabelConfig();
-		}
-		text = formatter.call(textConfig, tooltip);
-
-		// register the current series
-		currentSeries = point.series;
-
-		// update the inner HTML
-		if (text === false) {
-			this.hide();
-		} else {
-
-			// show it
-			if (tooltip.isHidden) {
-				stop(label);
-				label.attr('opacity', 1).show();
-			}
-
-			// update text
-			label.attr({
-				text: text
-			});
-
-			// set the stroke color of the box
-			borderColor = options.borderColor || point.color || currentSeries.color || '#606060';
-			label.attr({
-				stroke: borderColor
-			});
-			
-			tooltip.updatePosition({ plotX: x, plotY: y });
-		
-			this.isHidden = false;
-		}
-
-		// crosshairs
-		if (crosshairsOptions) {
-			crosshairsOptions = splat(crosshairsOptions); // [x, y]
-
-			var path,
-				i = crosshairsOptions.length,
-				attribs,
-				axis,
-				val,
-				series;
-
-			while (i--) {
-				series = point.series;
-				axis = series[i ? 'yAxis' : 'xAxis'];
-				if (crosshairsOptions[i] && axis) {
-					val = i ? pick(point.stackY, point.y) : point.x; // #814
-					if (axis.isLog) { // #1671
-						val = log2lin(val);
-					}
-					if (i === 1 && series.modifyValue) { // #1205, #2316
-						val = series.modifyValue(val);
-					}
-
-					path = axis.getPlotLinePath(
-						val,
-						1
-					);
-
-					if (tooltip.crosshairs[i]) {
-						tooltip.crosshairs[i].attr({ d: path, visibility: VISIBLE });
-					} else {
-						attribs = {
-							'stroke-width': crosshairsOptions[i].width || 1,
-							stroke: crosshairsOptions[i].color || '#C0C0C0',
-							zIndex: crosshairsOptions[i].zIndex || 2
-						};
-						if (crosshairsOptions[i].dashStyle) {
-							attribs.dashstyle = crosshairsOptions[i].dashStyle;
-						}
-						tooltip.crosshairs[i] = chart.renderer.path(path)
-							.attr(attribs)
-							.add();
-					}
-				}
-			}
-		}
-		fireEvent(chart, 'tooltipRefresh', {
-				text: text,
-				x: x + chart.plotLeft,
-				y: y + chart.plotTop,
-				borderColor: borderColor
-			});
-	},
-	
-	/**
-	 * Find the new position and perform the move
-	 */
-	updatePosition: function (point) {
-		var chart = this.chart,
-			label = this.label, 
-			pos = (this.options.positioner || this.getPosition).call(
-				this,
-				label.width,
-				label.height,
-				point
-			);
-
-		// do the move
-		this.move(
-			mathRound(pos.x), 
-			mathRound(pos.y), 
-			point.plotX + chart.plotLeft, 
-			point.plotY + chart.plotTop
-		);
-	}
-};
-/**
- * The mouse tracker object. All methods starting with "on" are primary DOM event handlers. 
- * Subsequent methods should be named differently from what they are doing.
- * @param {Object} chart The Chart instance
- * @param {Object} options The root options object
- */
-function Pointer(chart, options) {
-	this.init(chart, options);
-}
-
-Pointer.prototype = {
-	/**
-	 * Initialize Pointer
-	 */
-	init: function (chart, options) {
-		
-		var chartOptions = options.chart,
-			chartEvents = chartOptions.events,
-			zoomType = useCanVG ? '' : chartOptions.zoomType,
-			inverted = chart.inverted,
-			zoomX,
-			zoomY;
-
-		// Store references
-		this.options = options;
-		this.chart = chart;
-		
-		// Zoom status
-		this.zoomX = zoomX = /x/.test(zoomType);
-		this.zoomY = zoomY = /y/.test(zoomType);
-		this.zoomHor = (zoomX && !inverted) || (zoomY && inverted);
-		this.zoomVert = (zoomY && !inverted) || (zoomX && inverted);
-
-		// Do we need to handle click on a touch device?
-		this.runChartClick = chartEvents && !!chartEvents.click;
-
-		this.pinchDown = [];
-		this.lastValidTouch = {};
-
-		if (options.tooltip.enabled) {
-			chart.tooltip = new Tooltip(chart, options.tooltip);
-		}
-
-		this.setDOMEvents();
-	}, 
-
-	/**
-	 * Add crossbrowser support for chartX and chartY
-	 * @param {Object} e The event object in standard browsers
-	 */
-	normalize: function (e, chartPosition) {
-		var chartX,
-			chartY,
-			ePos;
-
-		// common IE normalizing
-		e = e || win.event;
-		if (!e.target) {
-			e.target = e.srcElement;
-		}
-
-		// Framework specific normalizing (#1165)
-		e = washMouseEvent(e);
-		
-		// iOS
-		ePos = e.touches ? e.touches.item(0) : e;
-
-		// Get mouse position
-		if (!chartPosition) {
-			this.chartPosition = chartPosition = offset(this.chart.container);
-		}
-
-		// chartX and chartY
-		if (ePos.pageX === UNDEFINED) { // IE < 9. #886.
-			chartX = mathMax(e.x, e.clientX - chartPosition.left); // #2005, #2129: the second case is 
-				// for IE10 quirks mode within framesets
-			chartY = e.y;
-		} else {
-			chartX = ePos.pageX - chartPosition.left;
-			chartY = ePos.pageY - chartPosition.top;
-		}
-
-		return extend(e, {
-			chartX: mathRound(chartX),
-			chartY: mathRound(chartY)
-		});
-	},
-
-	/**
-	 * Get the click position in terms of axis values.
-	 *
-	 * @param {Object} e A pointer event
-	 */
-	getCoordinates: function (e) {
-		var coordinates = {
-				xAxis: [],
-				yAxis: []
-			};
-
-		each(this.chart.axes, function (axis) {
-			coordinates[axis.isXAxis ? 'xAxis' : 'yAxis'].push({
-				axis: axis,
-				value: axis.toValue(e[axis.horiz ? 'chartX' : 'chartY'])
-			});
-		});
-		return coordinates;
-	},
-	
-	/**
-	 * Return the index in the tooltipPoints array, corresponding to pixel position in 
-	 * the plot area.
-	 */
-	getIndex: function (e) {
-		var chart = this.chart;
-		return chart.inverted ? 
-			chart.plotHeight + chart.plotTop - e.chartY : 
-			e.chartX - chart.plotLeft;
-	},
-
-	/**
-	 * With line type charts with a single tracker, get the point closest to the mouse.
-	 * Run Point.onMouseOver and display tooltip for the point or points.
-	 */
-	runPointActions: function (e) {
-		var pointer = this,
-			chart = pointer.chart,
-			series = chart.series,
-			tooltip = chart.tooltip,
-			point,
-			points,
-			hoverPoint = chart.hoverPoint,
-			hoverSeries = chart.hoverSeries,
-			i,
-			j,
-			distance = chart.chartWidth,
-			index = pointer.getIndex(e),
-			anchor;
-
-		// shared tooltip
-		if (tooltip && pointer.options.tooltip.shared && !(hoverSeries && hoverSeries.noSharedTooltip)) {
-			points = [];
-
-			// loop over all series and find the ones with points closest to the mouse
-			i = series.length;
-			for (j = 0; j < i; j++) {
-				if (series[j].visible &&
-						series[j].options.enableMouseTracking !== false &&
-						!series[j].noSharedTooltip && series[j].tooltipPoints.length) {
-					point = series[j].tooltipPoints[index];
-					if (point && point.series) { // not a dummy point, #1544
-						point._dist = mathAbs(index - point.clientX);
-						distance = mathMin(distance, point._dist);
-						points.push(point);
-					}
-				}
-			}
-			// remove furthest points
-			i = points.length;
-			while (i--) {
-				if (points[i]._dist > distance) {
-					points.splice(i, 1);
-				}
-			}
-			// refresh the tooltip if necessary
-			if (points.length && (points[0].clientX !== pointer.hoverX)) {
-				tooltip.refresh(points, e);
-				pointer.hoverX = points[0].clientX;
-			}
-		}
-
-		// separate tooltip and general mouse events
-		if (hoverSeries && hoverSeries.tracker) { // only use for line-type series with common tracker
-
-			// get the point
-			point = hoverSeries.tooltipPoints[index];
-
-			// a new point is hovered, refresh the tooltip
-			if (point && point !== hoverPoint) {
-
-				// trigger the events
-				point.onMouseOver(e);
-
-			}
-			
-		} else if (tooltip && tooltip.followPointer && !tooltip.isHidden) {
-			anchor = tooltip.getAnchor([{}], e);
-			tooltip.updatePosition({ plotX: anchor[0], plotY: anchor[1] });
-		}
-	},
-
-
-
-	/**
-	 * Reset the tracking by hiding the tooltip, the hover series state and the hover point
-	 * 
-	 * @param allowMove {Boolean} Instead of destroying the tooltip altogether, allow moving it if possible
-	 */
-	reset: function (allowMove) {
-		var pointer = this,
-			chart = pointer.chart,
-			hoverSeries = chart.hoverSeries,
-			hoverPoint = chart.hoverPoint,
-			tooltip = chart.tooltip,
-			tooltipPoints = tooltip && tooltip.shared ? chart.hoverPoints : hoverPoint;
-			
-		// Narrow in allowMove
-		allowMove = allowMove && tooltip && tooltipPoints;
-			
-		// Check if the points have moved outside the plot area, #1003
-		if (allowMove && splat(tooltipPoints)[0].plotX === UNDEFINED) {
-			allowMove = false;
-		}	
-
-		// Just move the tooltip, #349
-		if (allowMove) {
-			tooltip.refresh(tooltipPoints);
-
-		// Full reset
-		} else {
-
-			if (hoverPoint) {
-				hoverPoint.onMouseOut();
-			}
-
-			if (hoverSeries) {
-				hoverSeries.onMouseOut();
-			}
-
-			if (tooltip) {
-				tooltip.hide();
-				tooltip.hideCrosshairs();
-			}
-
-			pointer.hoverX = null;
-
-		}
-	},
-
-	/**
-	 * Scale series groups to a certain scale and translation
-	 */
-	scaleGroups: function (attribs, clip) {
-
-		var chart = this.chart,
-			seriesAttribs;
-
-		// Scale each series
-		each(chart.series, function (series) {
-			seriesAttribs = attribs || series.getPlotBox(); // #1701
-			if (series.xAxis && series.xAxis.zoomEnabled) {
-				series.group.attr(seriesAttribs);
-				if (series.markerGroup) {
-					series.markerGroup.attr(seriesAttribs);
-					series.markerGroup.clip(clip ? chart.clipRect : null);
-				}
-				if (series.dataLabelsGroup) {
-					series.dataLabelsGroup.attr(seriesAttribs);
-				}
-			}
-		});
-		
-		// Clip
-		chart.clipRect.attr(clip || chart.clipBox);
-	},
-
-	/**
-	 * Run translation operations for each direction (horizontal and vertical) independently
-	 */
-	pinchTranslateDirection: function (horiz, pinchDown, touches, transform, selectionMarker, clip, lastValidTouch) {
-		var chart = this.chart,
-			xy = horiz ? 'x' : 'y',
-			XY = horiz ? 'X' : 'Y',
-			sChartXY = 'chart' + XY,
-			wh = horiz ? 'width' : 'height',
-			plotLeftTop = chart['plot' + (horiz ? 'Left' : 'Top')],
-			selectionWH,
-			selectionXY,
-			clipXY,
-			scale = 1,
-			inverted = chart.inverted,
-			bounds = chart.bounds[horiz ? 'h' : 'v'],
-			singleTouch = pinchDown.length === 1,
-			touch0Start = pinchDown[0][sChartXY],
-			touch0Now = touches[0][sChartXY],
-			touch1Start = !singleTouch && pinchDown[1][sChartXY],
-			touch1Now = !singleTouch && touches[1][sChartXY],
-			outOfBounds,
-			transformScale,
-			scaleKey,
-			setScale = function () {
-				if (!singleTouch && mathAbs(touch0Start - touch1Start) > 20) { // Don't zoom if fingers are too close on this axis
-					scale = mathAbs(touch0Now - touch1Now) / mathAbs(touch0Start - touch1Start);	
-				}
-				
-				clipXY = ((plotLeftTop - touch0Now) / scale) + touch0Start;
-				selectionWH = chart['plot' + (horiz ? 'Width' : 'Height')] / scale;
-			};
-
-		// Set the scale, first pass
-		setScale();
-
-		selectionXY = clipXY; // the clip position (x or y) is altered if out of bounds, the selection position is not
-
-		// Out of bounds
-		if (selectionXY < bounds.min) {
-			selectionXY = bounds.min;
-			outOfBounds = true;
-		} else if (selectionXY + selectionWH > bounds.max) {
-			selectionXY = bounds.max - selectionWH;
-			outOfBounds = true;
-		}
-		
-		// Is the chart dragged off its bounds, determined by dataMin and dataMax?
-		if (outOfBounds) {
-
-			// Modify the touchNow position in order to create an elastic drag movement. This indicates
-			// to the user that the chart is responsive but can't be dragged further.
-			touch0Now -= 0.8 * (touch0Now - lastValidTouch[xy][0]);
-			if (!singleTouch) {
-				touch1Now -= 0.8 * (touch1Now - lastValidTouch[xy][1]);
-			}
-
-			// Set the scale, second pass to adapt to the modified touchNow positions
-			setScale();
-
-		} else {
-			lastValidTouch[xy] = [touch0Now, touch1Now];
-		}
-
-		
-		// Set geometry for clipping, selection and transformation
-		if (!inverted) { // TODO: implement clipping for inverted charts
-			clip[xy] = clipXY - plotLeftTop;
-			clip[wh] = selectionWH;
-		}
-		scaleKey = inverted ? (horiz ? 'scaleY' : 'scaleX') : 'scale' + XY;
-		transformScale = inverted ? 1 / scale : scale;
-
-		selectionMarker[wh] = selectionWH;
-		selectionMarker[xy] = selectionXY;
-		transform[scaleKey] = scale;
-		transform['translate' + XY] = (transformScale * plotLeftTop) + (touch0Now - (transformScale * touch0Start));
-	},
-	
-	/**
-	 * Handle touch events with two touches
-	 */
-	pinch: function (e) {
-
-		var self = this,
-			chart = self.chart,
-			pinchDown = self.pinchDown,
-			followTouchMove = chart.tooltip && chart.tooltip.options.followTouchMove,
-			touches = e.touches,
-			touchesLength = touches.length,
-			lastValidTouch = self.lastValidTouch,
-			zoomHor = self.zoomHor || self.pinchHor,
-			zoomVert = self.zoomVert || self.pinchVert,
-			hasZoom = zoomHor || zoomVert,
-			selectionMarker = self.selectionMarker,
-			transform = {},
-			fireClickEvent = touchesLength === 1 && ((self.inClass(e.target, PREFIX + 'tracker') && 
-				chart.runTrackerClick) || chart.runChartClick),
-			clip = {};
-
-		// On touch devices, only proceed to trigger click if a handler is defined
-		if ((hasZoom || followTouchMove) && !fireClickEvent) {
-			e.preventDefault();
-		}
-		
-		// Normalize each touch
-		map(touches, function (e) {
-			return self.normalize(e);
-		});
-			
-		// Register the touch start position
-		if (e.type === 'touchstart') {
-			each(touches, function (e, i) {
-				pinchDown[i] = { chartX: e.chartX, chartY: e.chartY };
-			});
-			lastValidTouch.x = [pinchDown[0].chartX, pinchDown[1] && pinchDown[1].chartX];
-			lastValidTouch.y = [pinchDown[0].chartY, pinchDown[1] && pinchDown[1].chartY];
-
-			// Identify the data bounds in pixels
-			each(chart.axes, function (axis) {
-				if (axis.zoomEnabled) {
-					var bounds = chart.bounds[axis.horiz ? 'h' : 'v'],
-						minPixelPadding = axis.minPixelPadding,
-						min = axis.toPixels(axis.dataMin),
-						max = axis.toPixels(axis.dataMax),
-						absMin = mathMin(min, max),
-						absMax = mathMax(min, max);
-
-					// Store the bounds for use in the touchmove handler
-					bounds.min = mathMin(axis.pos, absMin - minPixelPadding);
-					bounds.max = mathMax(axis.pos + axis.len, absMax + minPixelPadding);
-				}
-			});
-		
-		// Event type is touchmove, handle panning and pinching
-		} else if (pinchDown.length) { // can be 0 when releasing, if touchend fires first
-			
-
-			// Set the marker
-			if (!selectionMarker) {
-				self.selectionMarker = selectionMarker = extend({
-					destroy: noop
-				}, chart.plotBox);
-			}
-
-			
-
-			if (zoomHor) {
-				self.pinchTranslateDirection(true, pinchDown, touches, transform, selectionMarker, clip, lastValidTouch);
-			}
-			if (zoomVert) {
-				self.pinchTranslateDirection(false, pinchDown, touches, transform, selectionMarker, clip, lastValidTouch);
-			}
-
-			self.hasPinched = hasZoom;
-
-			// Scale and translate the groups to provide visual feedback during pinching
-			self.scaleGroups(transform, clip);
-			
-			// Optionally move the tooltip on touchmove
-			if (!hasZoom && followTouchMove && touchesLength === 1) {
-				this.runPointActions(self.normalize(e));
-			}
-		}
-	},
-
-	/**
-	 * Start a drag operation
-	 */
-	dragStart: function (e) {
-		var chart = this.chart;
-
-		// Record the start position
-		chart.mouseIsDown = e.type;
-		chart.cancelClick = false;
-		chart.mouseDownX = this.mouseDownX = e.chartX;
-		chart.mouseDownY = this.mouseDownY = e.chartY;
-	},
-
-	/**
-	 * Perform a drag operation in response to a mousemove event while the mouse is down
-	 */
-	drag: function (e) {
-
-		var chart = this.chart,
-			chartOptions = chart.options.chart,
-			chartX = e.chartX,
-			chartY = e.chartY,
-			zoomHor = this.zoomHor,
-			zoomVert = this.zoomVert,
-			plotLeft = chart.plotLeft,
-			plotTop = chart.plotTop,
-			plotWidth = chart.plotWidth,
-			plotHeight = chart.plotHeight,
-			clickedInside,
-			size,
-			mouseDownX = this.mouseDownX,
-			mouseDownY = this.mouseDownY;
-
-		// If the mouse is outside the plot area, adjust to cooordinates
-		// inside to prevent the selection marker from going outside
-		if (chartX < plotLeft) {
-			chartX = plotLeft;
-		} else if (chartX > plotLeft + plotWidth) {
-			chartX = plotLeft + plotWidth;
-		}
-
-		if (chartY < plotTop) {
-			chartY = plotTop;
-		} else if (chartY > plotTop + plotHeight) {
-			chartY = plotTop + plotHeight;
-		}
-		
-		// determine if the mouse has moved more than 10px
-		this.hasDragged = Math.sqrt(
-			Math.pow(mouseDownX - chartX, 2) +
-			Math.pow(mouseDownY - chartY, 2)
-		);
-		if (this.hasDragged > 10) {
-			clickedInside = chart.isInsidePlot(mouseDownX - plotLeft, mouseDownY - plotTop);
-
-			// make a selection
-			if (chart.hasCartesianSeries && (this.zoomX || this.zoomY) && clickedInside) {
-				if (!this.selectionMarker) {
-					this.selectionMarker = chart.renderer.rect(
-						plotLeft,
-						plotTop,
-						zoomHor ? 1 : plotWidth,
-						zoomVert ? 1 : plotHeight,
-						0
-					)
-					.attr({
-						fill: chartOptions.selectionMarkerFill || 'rgba(69,114,167,0.25)',
-						zIndex: 7
-					})
-					.add();
-				}
-			}
-
-			// adjust the width of the selection marker
-			if (this.selectionMarker && zoomHor) {
-				size = chartX - mouseDownX;
-				this.selectionMarker.attr({
-					width: mathAbs(size),
-					x: (size > 0 ? 0 : size) + mouseDownX
-				});
-			}
-			// adjust the height of the selection marker
-			if (this.selectionMarker && zoomVert) {
-				size = chartY - mouseDownY;
-				this.selectionMarker.attr({
-					height: mathAbs(size),
-					y: (size > 0 ? 0 : size) + mouseDownY
-				});
-			}
-
-			// panning
-			if (clickedInside && !this.selectionMarker && chartOptions.panning) {
-				chart.pan(e, chartOptions.panning);
-			}
-		}
-	},
-
-	/**
-	 * On mouse up or touch end across the entire document, drop the selection.
-	 */
-	drop: function (e) {
-		var chart = this.chart,
-			hasPinched = this.hasPinched;
-
-		if (this.selectionMarker) {
-			var selectionData = {
-					xAxis: [],
-					yAxis: [],
-					originalEvent: e.originalEvent || e
-				},
-				selectionBox = this.selectionMarker,
-				selectionLeft = selectionBox.x,
-				selectionTop = selectionBox.y,
-				runZoom;
-			// a selection has been made
-			if (this.hasDragged || hasPinched) {
-
-				// record each axis' min and max
-				each(chart.axes, function (axis) {
-					if (axis.zoomEnabled) {
-						var horiz = axis.horiz,
-							selectionMin = axis.toValue((horiz ? selectionLeft : selectionTop)),
-							selectionMax = axis.toValue((horiz ? selectionLeft + selectionBox.width : selectionTop + selectionBox.height));
-
-						if (!isNaN(selectionMin) && !isNaN(selectionMax)) { // #859
-							selectionData[axis.xOrY + 'Axis'].push({
-								axis: axis,
-								min: mathMin(selectionMin, selectionMax), // for reversed axes,
-								max: mathMax(selectionMin, selectionMax)
-							});
-							runZoom = true;
-						}
-					}
-				});
-				if (runZoom) {
-					fireEvent(chart, 'selection', selectionData, function (args) { 
-						chart.zoom(extend(args, hasPinched ? { animation: false } : null)); 
-					});
-				}
-
-			}
-			this.selectionMarker = this.selectionMarker.destroy();
-
-			// Reset scaling preview
-			if (hasPinched) {
-				this.scaleGroups();
-			}
-		}
-
-		// Reset all
-		if (chart) { // it may be destroyed on mouse up - #877
-			css(chart.container, { cursor: chart._cursor });
-			chart.cancelClick = this.hasDragged > 10; // #370
-			chart.mouseIsDown = this.hasDragged = this.hasPinched = false;
-			this.pinchDown = [];
-		}
-	},
-
-	onContainerMouseDown: function (e) {
-
-		e = this.normalize(e);
-
-		// issue #295, dragging not always working in Firefox
-		if (e.preventDefault) {
-			e.preventDefault();
-		}
-		
-		this.dragStart(e);
-	},
-
-	
-
-	onDocumentMouseUp: function (e) {
-		this.drop(e);
-	},
-
-	/**
-	 * Special handler for mouse move that will hide the tooltip when the mouse leaves the plotarea.
-	 * Issue #149 workaround. The mouseleave event does not always fire. 
-	 */
-	onDocumentMouseMove: function (e) {
-		var chart = this.chart,
-			chartPosition = this.chartPosition,
-			hoverSeries = chart.hoverSeries;
-
-		e = this.normalize(e, chartPosition);
-
-		// If we're outside, hide the tooltip
-		if (chartPosition && hoverSeries && !this.inClass(e.target, 'highcharts-tracker') &&
-				!chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop)) {
-			this.reset();
-		}
-	},
-
-	/**
-	 * When mouse leaves the container, hide the tooltip.
-	 */
-	onContainerMouseLeave: function () {
-		this.reset();
-		this.chartPosition = null; // also reset the chart position, used in #149 fix
-	},
-
-	// The mousemove, touchmove and touchstart event handler
-	onContainerMouseMove: function (e) {
-
-		var chart = this.chart;
-
-		// normalize
-		e = this.normalize(e);
-
-		// #295
-		e.returnValue = false;
-		
-		
-		if (chart.mouseIsDown === 'mousedown') {
-			this.drag(e);
-		} 
-		
-		// Show the tooltip and run mouse over events (#977)
-		if ((this.inClass(e.target, 'highcharts-tracker') || 
-				chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop)) && !chart.openMenu) {
-			this.runPointActions(e);
-		}
-	},
-
-	/**
-	 * Utility to detect whether an element has, or has a parent with, a specific
-	 * class name. Used on detection of tracker objects and on deciding whether
-	 * hovering the tooltip should cause the active series to mouse out.
-	 */
-	inClass: function (element, className) {
-		var elemClassName;
-		while (element) {
-			elemClassName = attr(element, 'class');
-			if (elemClassName) {
-				if (elemClassName.indexOf(className) !== -1) {
-					return true;
-				} else if (elemClassName.indexOf(PREFIX + 'container') !== -1) {
-					return false;
-				}
-			}
-			element = element.parentNode;
-		}		
-	},
-
-	onTrackerMouseOut: function (e) {
-		var series = this.chart.hoverSeries;
-		if (series && !series.options.stickyTracking && !this.inClass(e.toElement || e.relatedTarget, PREFIX + 'tooltip')) {
-			series.onMouseOut();
-		}
-	},
-
-	onContainerClick: function (e) {
-		var chart = this.chart,
-			hoverPoint = chart.hoverPoint, 
-			plotLeft = chart.plotLeft,
-			plotTop = chart.plotTop,
-			inverted = chart.inverted,
-			chartPosition,
-			plotX,
-			plotY;
-		
-		e = this.normalize(e);
-		e.cancelBubble = true; // IE specific
-
-		if (!chart.cancelClick) {
-			
-			// On tracker click, fire the series and point events. #783, #1583
-			if (hoverPoint && this.inClass(e.target, PREFIX + 'tracker')) {
-				chartPosition = this.chartPosition;
-				plotX = hoverPoint.plotX;
-				plotY = hoverPoint.plotY;
-
-				// add page position info
-				extend(hoverPoint, {
-					pageX: chartPosition.left + plotLeft +
-						(inverted ? chart.plotWidth - plotY : plotX),
-					pageY: chartPosition.top + plotTop +
-						(inverted ? chart.plotHeight - plotX : plotY)
-				});
-			
-				// the series click event
-				fireEvent(hoverPoint.series, 'click', extend(e, {
-					point: hoverPoint
-				}));
-
-				// the point click event
-				if (chart.hoverPoint) { // it may be destroyed (#1844)
-					hoverPoint.firePointEvent('click', e);
-				}
-
-			// When clicking outside a tracker, fire a chart event
-			} else {
-				extend(e, this.getCoordinates(e));
-
-				// fire a click event in the chart
-				if (chart.isInsidePlot(e.chartX - plotLeft, e.chartY - plotTop)) {
-					fireEvent(chart, 'click', e);
-				}
-			}
-
-
-		}
-	},
-
-	onContainerTouchStart: function (e) {
-		var chart = this.chart;
-
-		if (e.touches.length === 1) {
-
-			e = this.normalize(e);
-
-			if (chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop)) {
-
-				// Prevent the click pseudo event from firing unless it is set in the options
-				/*if (!chart.runChartClick) {
-					e.preventDefault();
-				}*/
-			
-				// Run mouse events and display tooltip etc
-				this.runPointActions(e);
-
-				this.pinch(e);
-
-			} else {
-				// Hide the tooltip on touching outside the plot area (#1203)
-				this.reset();
-			}
-
-		} else if (e.touches.length === 2) {
-			this.pinch(e);
-		}		
-	},
-
-	onContainerTouchMove: function (e) {
-		if (e.touches.length === 1 || e.touches.length === 2) {
-			this.pinch(e);
-		}
-	},
-
-	onDocumentTouchEnd: function (e) {
-		this.drop(e);
-	},
-
-	/**
-	 * Set the JS DOM events on the container and document. This method should contain
-	 * a one-to-one assignment between methods and their handlers. Any advanced logic should
-	 * be moved to the handler reflecting the event's name.
-	 */
-	setDOMEvents: function () {
-
-		var pointer = this,
-			container = pointer.chart.container,
-			events;
-
-		this._events = events = [
-			[container, 'onmousedown', 'onContainerMouseDown'],
-			[container, 'onmousemove', 'onContainerMouseMove'],
-			[container, 'onclick', 'onContainerClick'],
-			[container, 'mouseleave', 'onContainerMouseLeave'],
-			[doc, 'mousemove', 'onDocumentMouseMove'],
-			[doc, 'mouseup', 'onDocumentMouseUp']
-		];
-
-		if (hasTouch) {
-			events.push(
-				[container, 'ontouchstart', 'onContainerTouchStart'],
-				[container, 'ontouchmove', 'onContainerTouchMove'],
-				[doc, 'touchend', 'onDocumentTouchEnd']
-			);
-		}
-
-		each(events, function (eventConfig) {
-
-			// First, create the callback function that in turn calls the method on Pointer
-			pointer['_' + eventConfig[2]] = function (e) {
-				pointer[eventConfig[2]](e);
-			};
-
-			// Now attach the function, either as a direct property or through addEvent
-			if (eventConfig[1].indexOf('on') === 0) {
-				eventConfig[0][eventConfig[1]] = pointer['_' + eventConfig[2]];
-			} else {
-				addEvent(eventConfig[0], eventConfig[1], pointer['_' + eventConfig[2]]);
-			}
-		});
-
-		
-	},
-
-	/**
-	 * Destroys the Pointer object and disconnects DOM events.
-	 */
-	destroy: function () {
-		var pointer = this;
-
-		// Release all DOM events
-		each(pointer._events, function (eventConfig) {	
-			if (eventConfig[1].indexOf('on') === 0) {
-				eventConfig[0][eventConfig[1]] = null; // delete breaks oldIE
-			} else {		
-				removeEvent(eventConfig[0], eventConfig[1], pointer['_' + eventConfig[2]]);
-			}
-		});
-		delete pointer._events;
-
-		// memory and CPU leak
-		clearInterval(pointer.tooltipTimeout);
-	}
-};
-/**
- * The overview of the chart's series
- */
-function Legend(chart, options) {
-	this.init(chart, options);
-}
-
-Legend.prototype = {
-	
-	/**
-	 * Initialize the legend
-	 */
-	init: function (chart, options) {
-		
-		var legend = this,
-			itemStyle = options.itemStyle,
-			padding = pick(options.padding, 8),
-			itemMarginTop = options.itemMarginTop || 0;
-	
-		this.options = options;
-
-		if (!options.enabled) {
-			return;
-		}
-	
-		legend.baseline = pInt(itemStyle.fontSize) + 3 + itemMarginTop; // used in Series prototype
-		legend.itemStyle = itemStyle;
-		legend.itemHiddenStyle = merge(itemStyle, options.itemHiddenStyle);
-		legend.itemMarginTop = itemMarginTop;
-		legend.padding = padding;
-		legend.initialItemX = padding;
-		legend.initialItemY = padding - 5; // 5 is the number of pixels above the text
-		legend.maxItemWidth = 0;
-		legend.chart = chart;
-		legend.itemHeight = 0;
-		legend.lastLineHeight = 0;
-
-		// Render it
-		legend.render();
-
-		// move checkboxes
-		addEvent(legend.chart, 'endResize', function () { 
-			legend.positionCheckboxes();
-		});
-
-	},
-
-	/**
-	 * Set the colors for the legend item
-	 * @param {Object} item A Series or Point instance
-	 * @param {Object} visible Dimmed or colored
-	 */
-	colorizeItem: function (item, visible) {
-		var legend = this,
-			options = legend.options,
-			legendItem = item.legendItem,
-			legendLine = item.legendLine,
-			legendSymbol = item.legendSymbol,
-			hiddenColor = legend.itemHiddenStyle.color,
-			textColor = visible ? options.itemStyle.color : hiddenColor,
-			symbolColor = visible ? item.color : hiddenColor,
-			markerOptions = item.options && item.options.marker,
-			symbolAttr = {
-				stroke: symbolColor,
-				fill: symbolColor
-			},
-			key,
-			val;
-		
-		if (legendItem) {
-			legendItem.css({ fill: textColor, color: textColor }); // color for #1553, oldIE
-		}
-		if (legendLine) {
-			legendLine.attr({ stroke: symbolColor });
-		}
-		
-		if (legendSymbol) {
-			
-			// Apply marker options
-			if (markerOptions && legendSymbol.isMarker) { // #585
-				markerOptions = item.convertAttribs(markerOptions);
-				for (key in markerOptions) {
-					val = markerOptions[key];
-					if (val !== UNDEFINED) {
-						symbolAttr[key] = val;
-					}
-				}
-			}
-
-			legendSymbol.attr(symbolAttr);
-		}
-	},
-
-	/**
-	 * Position the legend item
-	 * @param {Object} item A Series or Point instance
-	 */
-	positionItem: function (item) {
-		var legend = this,
-			options = legend.options,
-			symbolPadding = options.symbolPadding,
-			ltr = !options.rtl,
-			legendItemPos = item._legendItemPos,
-			itemX = legendItemPos[0],
-			itemY = legendItemPos[1],
-			checkbox = item.checkbox;
-
-		if (item.legendGroup) {
-			item.legendGroup.translate(
-				ltr ? itemX : legend.legendWidth - itemX - 2 * symbolPadding - 4,
-				itemY
-			);
-		}
-
-		if (checkbox) {
-			checkbox.x = itemX;
-			checkbox.y = itemY;
-		}
-	},
-
-	/**
-	 * Destroy a single legend item
-	 * @param {Object} item The series or point
-	 */
-	destroyItem: function (item) {
-		var checkbox = item.checkbox;
-
-		// destroy SVG elements
-		each(['legendItem', 'legendLine', 'legendSymbol', 'legendGroup'], function (key) {
-			if (item[key]) {
-				item[key] = item[key].destroy();
-			}
-		});
-
-		if (checkbox) {
-			discardElement(item.checkbox);
-		}
-	},
-
-	/**
-	 * Destroys the legend.
-	 */
-	destroy: function () {
-		var legend = this,
-			legendGroup = legend.group,
-			box = legend.box;
-
-		if (box) {
-			legend.box = box.destroy();
-		}
-
-		if (legendGroup) {
-			legend.group = legendGroup.destroy();
-		}
-	},
-
-	/**
-	 * Position the checkboxes after the width is determined
-	 */
-	positionCheckboxes: function (scrollOffset) {
-		var alignAttr = this.group.alignAttr,
-			translateY,
-			clipHeight = this.clipHeight || this.legendHeight;
-
-		if (alignAttr) {
-			translateY = alignAttr.translateY;
-			each(this.allItems, function (item) {
-				var checkbox = item.checkbox,
-					top;
-				
-				if (checkbox) {
-					top = (translateY + checkbox.y + (scrollOffset || 0) + 3);
-					css(checkbox, {
-						left: (alignAttr.translateX + item.legendItemWidth + checkbox.x - 20) + PX,
-						top: top + PX,
-						display: top > translateY - 6 && top < translateY + clipHeight - 6 ? '' : NONE
-					});
-				}
-			});
-		}
-	},
-	
-	/**
-	 * Render the legend title on top of the legend
-	 */
-	renderTitle: function () {
-		var options = this.options,
-			padding = this.padding,
-			titleOptions = options.title,
-			titleHeight = 0,
-			bBox;
-		
-		if (titleOptions.text) {
-			if (!this.title) {
-				this.title = this.chart.renderer.label(titleOptions.text, padding - 3, padding - 4, null, null, null, null, null, 'legend-title')
-					.attr({ zIndex: 1 })
-					.css(titleOptions.style)
-					.add(this.group);
-			}
-			bBox = this.title.getBBox();
-			titleHeight = bBox.height;
-			this.offsetWidth = bBox.width; // #1717
-			this.contentGroup.attr({ translateY: titleHeight });
-		}
-		this.titleHeight = titleHeight;
-	},
-
-	/**
-	 * Render a single specific legend item
-	 * @param {Object} item A series or point
-	 */
-	renderItem: function (item) {
-		var legend = this,
-			chart = legend.chart,
-			renderer = chart.renderer,
-			options = legend.options,
-			horizontal = options.layout === 'horizontal',
-			symbolWidth = options.symbolWidth,
-			symbolPadding = options.symbolPadding,
-			itemStyle = legend.itemStyle,
-			itemHiddenStyle = legend.itemHiddenStyle,
-			padding = legend.padding,
-			itemDistance = horizontal ? pick(options.itemDistance, 8) : 0,
-			ltr = !options.rtl,
-			itemHeight,
-			widthOption = options.width,
-			itemMarginBottom = options.itemMarginBottom || 0,
-			itemMarginTop = legend.itemMarginTop,
-			initialItemX = legend.initialItemX,
-			bBox,
-			itemWidth,
-			li = item.legendItem,
-			series = item.series || item,
-			itemOptions = series.options,
-			showCheckbox = itemOptions.showCheckbox,
-			useHTML = options.useHTML;
-
-		if (!li) { // generate it once, later move it
-
-			// Generate the group box
-			// A group to hold the symbol and text. Text is to be appended in Legend class.
-			item.legendGroup = renderer.g('legend-item')
-				.attr({ zIndex: 1 })
-				.add(legend.scrollGroup);
-
-			// Draw the legend symbol inside the group box
-			series.drawLegendSymbol(legend, item);
-
-			// Generate the list item text and add it to the group
-			item.legendItem = li = renderer.text(
-					options.labelFormat ? format(options.labelFormat, item) : options.labelFormatter.call(item),
-					ltr ? symbolWidth + symbolPadding : -symbolPadding,
-					legend.baseline,
-					useHTML
-				)
-				.css(merge(item.visible ? itemStyle : itemHiddenStyle)) // merge to prevent modifying original (#1021)
-				.attr({
-					align: ltr ? 'left' : 'right',
-					zIndex: 2
-				})
-				.add(item.legendGroup);
-
-			// Set the events on the item group, or in case of useHTML, the item itself (#1249)
-			(useHTML ? li : item.legendGroup).on('mouseover', function () {
-					item.setState(HOVER_STATE);
-					li.css(legend.options.itemHoverStyle);
-				})
-				.on('mouseout', function () {
-					li.css(item.visible ? itemStyle : itemHiddenStyle);
-					item.setState();
-				})
-				.on('click', function (event) {
-					var strLegendItemClick = 'legendItemClick',
-						fnLegendItemClick = function () {
-							item.setVisible();
-						};
-						
-					// Pass over the click/touch event. #4.
-					event = {
-						browserEvent: event
-					};
-
-					// click the name or symbol
-					if (item.firePointEvent) { // point
-						item.firePointEvent(strLegendItemClick, event, fnLegendItemClick);
-					} else {
-						fireEvent(item, strLegendItemClick, event, fnLegendItemClick);
-					}
-				});
-
-			// Colorize the items
-			legend.colorizeItem(item, item.visible);
-
-			// add the HTML checkbox on top
-			if (itemOptions && showCheckbox) {
-				item.checkbox = createElement('input', {
-					type: 'checkbox',
-					checked: item.selected,
-					defaultChecked: item.selected // required by IE7
-				}, options.itemCheckboxStyle, chart.container);
-
-				addEvent(item.checkbox, 'click', function (event) {
-					var target = event.target;
-					fireEvent(item, 'checkboxClick', {
-							checked: target.checked
-						},
-						function () {
-							item.select();
-						}
-					);
-				});
-			}
-		}
-
-		// calculate the positions for the next line
-		bBox = li.getBBox();
-
-		itemWidth = item.legendItemWidth =
-			options.itemWidth || symbolWidth + symbolPadding + bBox.width + itemDistance +
-			(showCheckbox ? 20 : 0);
-		legend.itemHeight = itemHeight = bBox.height;
-
-		// if the item exceeds the width, start a new line
-		if (horizontal && legend.itemX - initialItemX + itemWidth >
-				(widthOption || (chart.chartWidth - 2 * padding - initialItemX))) {
-			legend.itemX = initialItemX;
-			legend.itemY += itemMarginTop + legend.lastLineHeight + itemMarginBottom;
-			legend.lastLineHeight = 0; // reset for next line
-		}
-
-		// If the item exceeds the height, start a new column
-		/*if (!horizontal && legend.itemY + options.y + itemHeight > chart.chartHeight - spacingTop - spacingBottom) {
-			legend.itemY = legend.initialItemY;
-			legend.itemX += legend.maxItemWidth;
-			legend.maxItemWidth = 0;
-		}*/
-
-		// Set the edge positions
-		legend.maxItemWidth = mathMax(legend.maxItemWidth, itemWidth);
-		legend.lastItemY = itemMarginTop + legend.itemY + itemMarginBottom;
-		legend.lastLineHeight = mathMax(itemHeight, legend.lastLineHeight); // #915
-
-		// cache the position of the newly generated or reordered items
-		item._legendItemPos = [legend.itemX, legend.itemY];
-
-		// advance
-		if (horizontal) {
-			legend.itemX += itemWidth;
-
-		} else {
-			legend.itemY += itemMarginTop + itemHeight + itemMarginBottom;
-			legend.lastLineHeight = itemHeight;
-		}
-
-		// the width of the widest item
-		legend.offsetWidth = widthOption || mathMax(
-			(horizontal ? legend.itemX - initialItemX - itemDistance : itemWidth) + padding,
-			legend.offsetWidth
-		);
-	},
-
-	/**
-	 * Render the legend. This method can be called both before and after
-	 * chart.render. If called after, it will only rearrange items instead
-	 * of creating new ones.
-	 */
-	render: function () {
-		var legend = this,
-			chart = legend.chart,
-			renderer = chart.renderer,
-			legendGroup = legend.group,
-			allItems,
-			display,
-			legendWidth,
-			legendHeight,
-			box = legend.box,
-			options = legend.options,
-			padding = legend.padding,
-			legendBorderWidth = options.borderWidth,
-			legendBackgroundColor = options.backgroundColor;
-
-		legend.itemX = legend.initialItemX;
-		legend.itemY = legend.initialItemY;
-		legend.offsetWidth = 0;
-		legend.lastItemY = 0;
-
-		if (!legendGroup) {
-			legend.group = legendGroup = renderer.g('legend')
-				.attr({ zIndex: 7 }) 
-				.add();
-			legend.contentGroup = renderer.g()
-				.attr({ zIndex: 1 }) // above background
-				.add(legendGroup);
-			legend.scrollGroup = renderer.g()
-				.add(legend.contentGroup);
-		}
-		
-		legend.renderTitle();
-
-		// add each series or point
-		allItems = [];
-		each(chart.series, function (serie) {
-			var seriesOptions = serie.options;
-
-			if (!seriesOptions.showInLegend || defined(seriesOptions.linkedTo)) {
-				return;
-			}
-
-			// use points or series for the legend item depending on legendType
-			allItems = allItems.concat(
-					serie.legendItems ||
-					(seriesOptions.legendType === 'point' ?
-							serie.data :
-							serie)
-			);
-		});
-
-		// sort by legendIndex
-		stableSort(allItems, function (a, b) {
-			return ((a.options && a.options.legendIndex) || 0) - ((b.options && b.options.legendIndex) || 0);
-		});
-
-		// reversed legend
-		if (options.reversed) {
-			allItems.reverse();
-		}
-
-		legend.allItems = allItems;
-		legend.display = display = !!allItems.length;
-
-		// render the items
-		each(allItems, function (item) {
-			legend.renderItem(item); 
-		});
-
-		// Draw the border
-		legendWidth = options.width || legend.offsetWidth;
-		legendHeight = legend.lastItemY + legend.lastLineHeight + legend.titleHeight;
-		
-		
-		legendHeight = legend.handleOverflow(legendHeight);
-
-		if (legendBorderWidth || legendBackgroundColor) {
-			legendWidth += padding;
-			legendHeight += padding;
-
-			if (!box) {
-				legend.box = box = renderer.rect(
-					0,
-					0,
-					legendWidth,
-					legendHeight,
-					options.borderRadius,
-					legendBorderWidth || 0
-				).attr({
-					stroke: options.borderColor,
-					'stroke-width': legendBorderWidth || 0,
-					fill: legendBackgroundColor || NONE
-				})
-				.add(legendGroup)
-				.shadow(options.shadow);
-				box.isNew = true;
-
-			} else if (legendWidth > 0 && legendHeight > 0) {
-				box[box.isNew ? 'attr' : 'animate'](
-					box.crisp(null, null, null, legendWidth, legendHeight)
-				);
-				box.isNew = false;
-			}
-
-			// hide the border if no items
-			box[display ? 'show' : 'hide']();
-		}
-		
-		legend.legendWidth = legendWidth;
-		legend.legendHeight = legendHeight;
-
-		// Now that the legend width and height are established, put the items in the 
-		// final position
-		each(allItems, function (item) {
-			legend.positionItem(item);
-		});
-
-		// 1.x compatibility: positioning based on style
-		/*var props = ['left', 'right', 'top', 'bottom'],
-			prop,
-			i = 4;
-		while (i--) {
-			prop = props[i];
-			if (options.style[prop] && options.style[prop] !== 'auto') {
-				options[i < 2 ? 'align' : 'verticalAlign'] = prop;
-				options[i < 2 ? 'x' : 'y'] = pInt(options.style[prop]) * (i % 2 ? -1 : 1);
-			}
-		}*/
-
-		if (display) {
-			legendGroup.align(extend({
-				width: legendWidth,
-				height: legendHeight
-			}, options), true, 'spacingBox');
-		}
-
-		if (!chart.isResizing) {
-			this.positionCheckboxes();
-		}
-	},
-	
-	/**
-	 * Set up the overflow handling by adding navigation with up and down arrows below the
-	 * legend.
-	 */
-	handleOverflow: function (legendHeight) {
-		var legend = this,
-			chart = this.chart,
-			renderer = chart.renderer,
-			pageCount,
-			options = this.options,
-			optionsY = options.y,
-			alignTop = options.verticalAlign === 'top',
-			spaceHeight = chart.spacingBox.height + (alignTop ? -optionsY : optionsY) - this.padding,
-			maxHeight = options.maxHeight,
-			clipHeight,
-			clipRect = this.clipRect,
-			navOptions = options.navigation,
-			animation = pick(navOptions.animation, true),
-			arrowSize = navOptions.arrowSize || 12,
-			nav = this.nav;
-			
-		// Adjust the height
-		if (options.layout === 'horizontal') {
-			spaceHeight /= 2;
-		}
-		if (maxHeight) {
-			spaceHeight = mathMin(spaceHeight, maxHeight);
-		}
-		
-		// Reset the legend height and adjust the clipping rectangle
-		if (legendHeight > spaceHeight && !options.useHTML) {
-
-			this.clipHeight = clipHeight = spaceHeight - 20 - this.titleHeight;
-			this.pageCount = pageCount = mathCeil(legendHeight / clipHeight);
-			this.currentPage = pick(this.currentPage, 1);
-			this.fullHeight = legendHeight;
-			
-			// Only apply clipping if needed. Clipping causes blurred legend in PDF export (#1787)
-			if (!clipRect) {
-				clipRect = legend.clipRect = renderer.clipRect(0, 0, 9999, 0);
-				legend.contentGroup.clip(clipRect);
-			}
-			clipRect.attr({
-				height: clipHeight
-			});
-			
-			// Add navigation elements
-			if (!nav) {
-				this.nav = nav = renderer.g().attr({ zIndex: 1 }).add(this.group);
-				this.up = renderer.symbol('triangle', 0, 0, arrowSize, arrowSize)
-					.on('click', function () {
-						legend.scroll(-1, animation);
-					})
-					.add(nav);
-				this.pager = renderer.text('', 15, 10)
-					.css(navOptions.style)
-					.add(nav);
-				this.down = renderer.symbol('triangle-down', 0, 0, arrowSize, arrowSize)
-					.on('click', function () {
-						legend.scroll(1, animation);
-					})
-					.add(nav);
-			}
-			
-			// Set initial position
-			legend.scroll(0);
-			
-			legendHeight = spaceHeight;
-			
-		} else if (nav) {
-			clipRect.attr({
-				height: chart.chartHeight
-			});
-			nav.hide();
-			this.scrollGroup.attr({
-				translateY: 1
-			});
-			this.clipHeight = 0; // #1379
-		}
-		
-		return legendHeight;
-	},
-	
-	/**
-	 * Scroll the legend by a number of pages
-	 * @param {Object} scrollBy
-	 * @param {Object} animation
-	 */
-	scroll: function (scrollBy, animation) {
-		var pageCount = this.pageCount,
-			currentPage = this.currentPage + scrollBy,
-			clipHeight = this.clipHeight,
-			navOptions = this.options.navigation,
-			activeColor = navOptions.activeColor,
-			inactiveColor = navOptions.inactiveColor,
-			pager = this.pager,
-			padding = this.padding,
-			scrollOffset;
-		
-		// When resizing while looking at the last page
-		if (currentPage > pageCount) {
-			currentPage = pageCount;
-		}
-		
-		if (currentPage > 0) {
-			
-			if (animation !== UNDEFINED) {
-				setAnimation(animation, this.chart);
-			}
-			
-			this.nav.attr({
-				translateX: padding,
-				translateY: clipHeight + 7 + this.titleHeight,
-				visibility: VISIBLE
-			});
-			this.up.attr({
-					fill: currentPage === 1 ? inactiveColor : activeColor
-				})
-				.css({
-					cursor: currentPage === 1 ? 'default' : 'pointer'
-				});
-			pager.attr({
-				text: currentPage + '/' + this.pageCount
-			});
-			this.down.attr({
-					x: 18 + this.pager.getBBox().width, // adjust to text width
-					fill: currentPage === pageCount ? inactiveColor : activeColor
-				})
-				.css({
-					cursor: currentPage === pageCount ? 'default' : 'pointer'
-				});
-			
-			scrollOffset = -mathMin(clipHeight * (currentPage - 1), this.fullHeight - clipHeight + padding) + 1;
-			this.scrollGroup.animate({
-				translateY: scrollOffset
-			});
-			pager.attr({
-				text: currentPage + '/' + pageCount
-			});
-			
-			
-			this.currentPage = currentPage;
-			this.positionCheckboxes(scrollOffset);
-		}
-			
-	}
-	
-};
-
-// Workaround for #2030, horizontal legend items not displaying in IE11 Preview.
-// TODO: When IE11 is released, check again for this bug, and remove the fix
-// or make a better one.
-if (/Trident.*?11\.0/.test(userAgent)) {
-	wrap(Legend.prototype, 'positionItem', function (proceed, item) {
-		var legend = this;
-		setTimeout(function () {
-			proceed.call(legend, item);
-		});
-	});
-}
-
-/**
- * The chart class
- * @param {Object} options
- * @param {Function} callback Function to run when the chart has loaded
- */
-function Chart() {
-	this.init.apply(this, arguments);
-}
-
-Chart.prototype = {
-
-	/**
-	 * Initialize the chart
-	 */
-	init: function (userOptions, callback) {
-
-		// Handle regular options
-		var options,
-			seriesOptions = userOptions.series; // skip merging data points to increase performance
-
-		userOptions.series = null;
-		options = merge(defaultOptions, userOptions); // do the merge
-		options.series = userOptions.series = seriesOptions; // set back the series data
-
-		var optionsChart = options.chart;
-		
-		// Create margin & spacing array
-		this.margin = this.splashArray('margin', optionsChart);
-		this.spacing = this.splashArray('spacing', optionsChart);
-
-		var chartEvents = optionsChart.events;
-
-		//this.runChartClick = chartEvents && !!chartEvents.click;
-		this.bounds = { h: {}, v: {} }; // Pixel data bounds for touch zoom
-
-		this.callback = callback;
-		this.isResizing = 0;
-		this.options = options;
-		//chartTitleOptions = UNDEFINED;
-		//chartSubtitleOptions = UNDEFINED;
-
-		this.axes = [];
-		this.series = [];
-		this.hasCartesianSeries = optionsChart.showAxes;
-		//this.axisOffset = UNDEFINED;
-		//this.maxTicks = UNDEFINED; // handle the greatest amount of ticks on grouped axes
-		//this.inverted = UNDEFINED;
-		//this.loadingShown = UNDEFINED;
-		//this.container = UNDEFINED;
-		//this.chartWidth = UNDEFINED;
-		//this.chartHeight = UNDEFINED;
-		//this.marginRight = UNDEFINED;
-		//this.marginBottom = UNDEFINED;
-		//this.containerWidth = UNDEFINED;
-		//this.containerHeight = UNDEFINED;
-		//this.oldChartWidth = UNDEFINED;
-		//this.oldChartHeight = UNDEFINED;
-
-		//this.renderTo = UNDEFINED;
-		//this.renderToClone = UNDEFINED;
-
-		//this.spacingBox = UNDEFINED
-
-		//this.legend = UNDEFINED;
-
-		// Elements
-		//this.chartBackground = UNDEFINED;
-		//this.plotBackground = UNDEFINED;
-		//this.plotBGImage = UNDEFINED;
-		//this.plotBorder = UNDEFINED;
-		//this.loadingDiv = UNDEFINED;
-		//this.loadingSpan = UNDEFINED;
-
-		var chart = this,
-			eventType;
-
-		// Add the chart to the global lookup
-		chart.index = charts.length;
-		charts.push(chart);
-
-		// Set up auto resize
-		if (optionsChart.reflow !== false) {
-			addEvent(chart, 'load', function () {
-				chart.initReflow();
-			});
-		}
-
-		// Chart event handlers
-		if (chartEvents) {
-			for (eventType in chartEvents) {
-				addEvent(chart, eventType, chartEvents[eventType]);
-			}
-		}
-
-		chart.xAxis = [];
-		chart.yAxis = [];
-
-		// Expose methods and variables
-		chart.animation = useCanVG ? false : pick(optionsChart.animation, true);
-		chart.pointCount = 0;
-		chart.counters = new ChartCounters();
-
-		chart.firstRender();
-	},
-
-	/**
-	 * Initialize an individual series, called internally before render time
-	 */
-	initSeries: function (options) {
-		var chart = this,
-			optionsChart = chart.options.chart,
-			type = options.type || optionsChart.type || optionsChart.defaultSeriesType,
-			series,
-			constr = seriesTypes[type];
-
-		// No such series type
-		if (!constr) {
-			error(17, true);
-		}
-
-		series = new constr();
-		series.init(this, options);
-		return series;
-	},
-
-	/**
-	 * Add a series dynamically after  time
-	 *
-	 * @param {Object} options The config options
-	 * @param {Boolean} redraw Whether to redraw the chart after adding. Defaults to true.
-	 * @param {Boolean|Object} animation Whether to apply animation, and optionally animation
-	 *    configuration
-	 *
-	 * @return {Object} series The newly created series object
-	 */
-	addSeries: function (options, redraw, animation) {
-		var series,
-			chart = this;
-
-		if (options) {
-			redraw = pick(redraw, true); // defaults to true
-
-			fireEvent(chart, 'addSeries', { options: options }, function () {
-				series = chart.initSeries(options);
-				
-				chart.isDirtyLegend = true; // the series array is out of sync with the display
-				chart.linkSeries();
-				if (redraw) {
-					chart.redraw(animation);
-				}
-			});
-		}
-
-		return series;
-	},
-
-	/**
-     * Add an axis to the chart
-     * @param {Object} options The axis option
-     * @param {Boolean} isX Whether it is an X axis or a value axis
-     */
-	addAxis: function (options, isX, redraw, animation) {
-		var key = isX ? 'xAxis' : 'yAxis',
-			chartOptions = this.options,
-			axis;
-
-		/*jslint unused: false*/
-		axis = new Axis(this, merge(options, {
-			index: this[key].length,
-			isX: isX
-		}));
-		/*jslint unused: true*/
-
-		// Push the new axis options to the chart options
-		chartOptions[key] = splat(chartOptions[key] || {});
-		chartOptions[key].push(options);
-
-		if (pick(redraw, true)) {
-			this.redraw(animation);
-		}
-	},
-
-	/**
-	 * Check whether a given point is within the plot area
-	 *
-	 * @param {Number} plotX Pixel x relative to the plot area
-	 * @param {Number} plotY Pixel y relative to the plot area
-	 * @param {Boolean} inverted Whether the chart is inverted
-	 */
-	isInsidePlot: function (plotX, plotY, inverted) {
-		var x = inverted ? plotY : plotX,
-			y = inverted ? plotX : plotY;
-			
-		return x >= 0 &&
-			x <= this.plotWidth &&
-			y >= 0 &&
-			y <= this.plotHeight;
-	},
-
-	/**
-	 * Adjust all axes tick amounts
-	 */
-	adjustTickAmounts: function () {
-		if (this.options.chart.alignTicks !== false) {
-			each(this.axes, function (axis) {
-				axis.adjustTickAmount();
-			});
-		}
-		this.maxTicks = null;
-	},
-
-	/**
-	 * Redraw legend, axes or series based on updated data
-	 *
-	 * @param {Boolean|Object} animation Whether to apply animation, and optionally animation
-	 *    configuration
-	 */
-	redraw: function (animation) {
-		var chart = this,
-			axes = chart.axes,
-			series = chart.series,
-			pointer = chart.pointer,
-			legend = chart.legend,
-			redrawLegend = chart.isDirtyLegend,
-			hasStackedSeries,
-			hasDirtyStacks,
-			isDirtyBox = chart.isDirtyBox, // todo: check if it has actually changed?
-			seriesLength = series.length,
-			i = seriesLength,
-			serie,
-			renderer = chart.renderer,
-			isHiddenChart = renderer.isHidden(),
-			afterRedraw = [];
-			
-		setAnimation(animation, chart);
-		
-		if (isHiddenChart) {
-			chart.cloneRenderTo();
-		}
-
-		// Adjust title layout (reflow multiline text)
-		chart.layOutTitles();
-
-		// link stacked series
-		while (i--) {
-			serie = series[i];
-
-			if (serie.options.stacking) {
-				hasStackedSeries = true;
-				
-				if (serie.isDirty) {
-					hasDirtyStacks = true;
-					break;
-				}
-			}
-		}
-		if (hasDirtyStacks) { // mark others as dirty
-			i = seriesLength;
-			while (i--) {
-				serie = series[i];
-				if (serie.options.stacking) {
-					serie.isDirty = true;
-				}
-			}
-		}
-
-		// handle updated data in the series
-		each(series, function (serie) {
-			if (serie.isDirty) { // prepare the data so axis can read it
-				if (serie.options.legendType === 'point') {
-					redrawLegend = true;
-				}
-			}
-		});
-
-		// handle added or removed series
-		if (redrawLegend && legend.options.enabled) { // series or pie points are added or removed
-			// draw legend graphics
-			legend.render();
-
-			chart.isDirtyLegend = false;
-		}
-
-		// reset stacks
-		if (hasStackedSeries) {
-			chart.getStacks();
-		}
-
-
-		if (chart.hasCartesianSeries) {
-			if (!chart.isResizing) {
-
-				// reset maxTicks
-				chart.maxTicks = null;
-
-				// set axes scales
-				each(axes, function (axis) {
-					axis.setScale();
-				});
-			}
-
-			chart.adjustTickAmounts();
-			chart.getMargins();
-
-			// If one axis is dirty, all axes must be redrawn (#792, #2169)
-			each(axes, function (axis) {
-				if (axis.isDirty) {
-					isDirtyBox = true;
-				}
-			});
-
-			// redraw axes
-			each(axes, function (axis) {
-				
-				// Fire 'afterSetExtremes' only if extremes are set
-				if (axis.isDirtyExtremes) { // #821
-					axis.isDirtyExtremes = false;
-					afterRedraw.push(function () { // prevent a recursive call to chart.redraw() (#1119)
-						fireEvent(axis, 'afterSetExtremes', extend(axis.eventArgs, axis.getExtremes())); // #747, #751
-						delete axis.eventArgs;
-					});
-				}
-				
-				if (isDirtyBox || hasStackedSeries) {
-					axis.redraw();
-				}
-			});
-
-
-		}
-		// the plot areas size has changed
-		if (isDirtyBox) {
-			chart.drawChartBox();
-		}
-
-
-		// redraw affected series
-		each(series, function (serie) {
-			if (serie.isDirty && serie.visible &&
-					(!serie.isCartesian || serie.xAxis)) { // issue #153
-				serie.redraw();
-			}
-		});
-
-		// move tooltip or reset
-		if (pointer && pointer.reset) {
-			pointer.reset(true);
-		}
-
-		// redraw if canvas
-		renderer.draw();
-
-		// fire the event
-		fireEvent(chart, 'redraw'); // jQuery breaks this when calling it from addEvent. Overwrites chart.redraw
-		
-		if (isHiddenChart) {
-			chart.cloneRenderTo(true);
-		}
-		
-		// Fire callbacks that are put on hold until after the redraw
-		each(afterRedraw, function (callback) {
-			callback.call();
-		});
-	},
-
-
-
-	/**
-	 * Dim the chart and show a loading text or symbol
-	 * @param {String} str An optional text to show in the loading label instead of the default one
-	 */
-	showLoading: function (str) {
-		var chart = this,
-			options = chart.options,
-			loadingDiv = chart.loadingDiv;
-
-		var loadingOptions = options.loading;
-
-		// create the layer at the first call
-		if (!loadingDiv) {
-			chart.loadingDiv = loadingDiv = createElement(DIV, {
-				className: PREFIX + 'loading'
-			}, extend(loadingOptions.style, {
-				zIndex: 10,
-				display: NONE
-			}), chart.container);
-
-			chart.loadingSpan = createElement(
-				'span',
-				null,
-				loadingOptions.labelStyle,
-				loadingDiv
-			);
-
-		}
-
-		// update text
-		chart.loadingSpan.innerHTML = str || options.lang.loading;
-
-		// show it
-		if (!chart.loadingShown) {
-			css(loadingDiv, { 
-				opacity: 0, 
-				display: '',
-				left: chart.plotLeft + PX,
-				top: chart.plotTop + PX,
-				width: chart.plotWidth + PX,
-				height: chart.plotHeight + PX
-			});
-			animate(loadingDiv, {
-				opacity: loadingOptions.style.opacity
-			}, {
-				duration: loadingOptions.showDuration || 0
-			});
-			chart.loadingShown = true;
-		}
-	},
-
-	/**
-	 * Hide the loading layer
-	 */
-	hideLoading: function () {
-		var options = this.options,
-			loadingDiv = this.loadingDiv;
-
-		if (loadingDiv) {
-			animate(loadingDiv, {
-				opacity: 0
-			}, {
-				duration: options.loading.hideDuration || 100,
-				complete: function () {
-					css(loadingDiv, { display: NONE });
-				}
-			});
-		}
-		this.loadingShown = false;
-	},
-
-	/**
-	 * Get an axis, series or point object by id.
-	 * @param id {String} The id as given in the configuration options
-	 */
-	get: function (id) {
-		var chart = this,
-			axes = chart.axes,
-			series = chart.series;
-
-		var i,
-			j,
-			points;
-
-		// search axes
-		for (i = 0; i < axes.length; i++) {
-			if (axes[i].options.id === id) {
-				return axes[i];
-			}
-		}
-
-		// search series
-		for (i = 0; i < series.length; i++) {
-			if (series[i].options.id === id) {
-				return series[i];
-			}
-		}
-
-		// search points
-		for (i = 0; i < series.length; i++) {
-			points = series[i].points || [];
-			for (j = 0; j < points.length; j++) {
-				if (points[j].id === id) {
-					return points[j];
-				}
-			}
-		}
-		return null;
-	},
-
-	/**
-	 * Create the Axis instances based on the config options
-	 */
-	getAxes: function () {
-		var chart = this,
-			options = this.options,
-			xAxisOptions = options.xAxis = splat(options.xAxis || {}),
-			yAxisOptions = options.yAxis = splat(options.yAxis || {}),
-			optionsArray,
-			axis;
-
-		// make sure the options are arrays and add some members
-		each(xAxisOptions, function (axis, i) {
-			axis.index = i;
-			axis.isX = true;
-		});
-
-		each(yAxisOptions, function (axis, i) {
-			axis.index = i;
-		});
-
-		// concatenate all axis options into one array
-		optionsArray = xAxisOptions.concat(yAxisOptions);
-
-		each(optionsArray, function (axisOptions) {
-			axis = new Axis(chart, axisOptions);
-		});
-
-		chart.adjustTickAmounts();
-	},
-
-
-	/**
-	 * Get the currently selected points from all series
-	 */
-	getSelectedPoints: function () {
-		var points = [];
-		each(this.series, function (serie) {
-			points = points.concat(grep(serie.points || [], function (point) {
-				return point.selected;
-			}));
-		});
-		return points;
-	},
-
-	/**
-	 * Get the currently selected series
-	 */
-	getSelectedSeries: function () {
-		return grep(this.series, function (serie) {
-			return serie.selected;
-		});
-	},
-
-	/**
-	 * Generate stacks for each series and calculate stacks total values
-	 */
-	getStacks: function () {
-		var chart = this;
-
-		// reset stacks for each yAxis
-		each(chart.yAxis, function (axis) {
-			if (axis.stacks && axis.hasVisibleSeries) {
-				axis.oldStacks = axis.stacks;
-			}
-		});
-
-		each(chart.series, function (series) {
-			if (series.options.stacking && (series.visible === true || chart.options.chart.ignoreHiddenSeries === false)) {
-				series.stackKey = series.type + pick(series.options.stack, '');
-			}
-		});
-	},
-
-	/**
-	 * Display the zoom button
-	 */
-	showResetZoom: function () {
-		var chart = this,
-			lang = defaultOptions.lang,
-			btnOptions = chart.options.chart.resetZoomButton,
-			theme = btnOptions.theme,
-			states = theme.states,
-			alignTo = btnOptions.relativeTo === 'chart' ? null : 'plotBox';
-			
-		this.resetZoomButton = chart.renderer.button(lang.resetZoom, null, null, function () { chart.zoomOut(); }, theme, states && states.hover)
-			.attr({
-				align: btnOptions.position.align,
-				title: lang.resetZoomTitle
-			})
-			.add()
-			.align(btnOptions.position, false, alignTo);
-			
-	},
-
-	/**
-	 * Zoom out to 1:1
-	 */
-	zoomOut: function () {
-		var chart = this;
-		fireEvent(chart, 'selection', { resetSelection: true }, function () { 
-			chart.zoom();
-		});
-	},
-
-	/**
-	 * Zoom into a given portion of the chart given by axis coordinates
-	 * @param {Object} event
-	 */
-	zoom: function (event) {
-		var chart = this,
-			hasZoomed,
-			pointer = chart.pointer,
-			displayButton = false,
-			resetZoomButton;
-
-		// If zoom is called with no arguments, reset the axes
-		if (!event || event.resetSelection) {
-			each(chart.axes, function (axis) {
-				hasZoomed = axis.zoom();
-			});
-		} else { // else, zoom in on all axes
-			each(event.xAxis.concat(event.yAxis), function (axisData) {
-				var axis = axisData.axis,
-					isXAxis = axis.isXAxis;
-
-				// don't zoom more than minRange
-				if (pointer[isXAxis ? 'zoomX' : 'zoomY'] || pointer[isXAxis ? 'pinchX' : 'pinchY']) {
-					hasZoomed = axis.zoom(axisData.min, axisData.max);
-					if (axis.displayBtn) {
-						displayButton = true;
-					}
-				}
-			});
-		}
-		
-		// Show or hide the Reset zoom button
-		resetZoomButton = chart.resetZoomButton;
-		if (displayButton && !resetZoomButton) {
-			chart.showResetZoom();
-		} else if (!displayButton && isObject(resetZoomButton)) {
-			chart.resetZoomButton = resetZoomButton.destroy();
-		}
-		
-
-		// Redraw
-		if (hasZoomed) {
-			chart.redraw(
-				pick(chart.options.chart.animation, event && event.animation, chart.pointCount < 100) // animation
-			);
-		}
-	},
-
-	/**
-	 * Pan the chart by dragging the mouse across the pane. This function is called
-	 * on mouse move, and the distance to pan is computed from chartX compared to
-	 * the first chartX position in the dragging operation.
-	 */
-	pan: function (e, panning) {
-
-		var chart = this,
-			hoverPoints = chart.hoverPoints,
-			doRedraw;
-
-		// remove active points for shared tooltip
-		if (hoverPoints) {
-			each(hoverPoints, function (point) {
-				point.setState();
-			});
-		}
-
-		each(panning === 'xy' ? [1, 0] : [1], function (isX) { // xy is used in maps
-			var mousePos = e[isX ? 'chartX' : 'chartY'],
-				axis = chart[isX ? 'xAxis' : 'yAxis'][0],
-				startPos = chart[isX ? 'mouseDownX' : 'mouseDownY'],
-				halfPointRange = (axis.pointRange || 0) / 2,
-				extremes = axis.getExtremes(),
-				newMin = axis.toValue(startPos - mousePos, true) + halfPointRange,
-				newMax = axis.toValue(startPos + chart[isX ? 'plotWidth' : 'plotHeight'] - mousePos, true) - halfPointRange;
-
-			if (axis.series.length && newMin > mathMin(extremes.dataMin, extremes.min) && newMax < mathMax(extremes.dataMax, extremes.max)) {
-				axis.setExtremes(newMin, newMax, false, false, { trigger: 'pan' });
-				doRedraw = true;
-			}
-
-			chart[isX ? 'mouseDownX' : 'mouseDownY'] = mousePos; // set new reference for next run
-		});
-
-		if (doRedraw) {
-			chart.redraw(false);
-		}
-		css(chart.container, { cursor: 'move' });
-	},
-
-	/**
-	 * Show the title and subtitle of the chart
-	 *
-	 * @param titleOptions {Object} New title options
-	 * @param subtitleOptions {Object} New subtitle options
-	 *
-	 */
-	setTitle: function (titleOptions, subtitleOptions) {
-		var chart = this,
-			options = chart.options,
-			chartTitleOptions,
-			chartSubtitleOptions;
-
-		chartTitleOptions = options.title = merge(options.title, titleOptions);
-		chartSubtitleOptions = options.subtitle = merge(options.subtitle, subtitleOptions);
-
-		// add title and subtitle
-		each([
-			['title', titleOptions, chartTitleOptions],
-			['subtitle', subtitleOptions, chartSubtitleOptions]
-		], function (arr) {
-			var name = arr[0],
-				title = chart[name],
-				titleOptions = arr[1],
-				chartTitleOptions = arr[2];
-
-			if (title && titleOptions) {
-				chart[name] = title = title.destroy(); // remove old
-			}
-			
-			if (chartTitleOptions && chartTitleOptions.text && !title) {
-				chart[name] = chart.renderer.text(
-					chartTitleOptions.text,
-					0,
-					0,
-					chartTitleOptions.useHTML
-				)
-				.attr({
-					align: chartTitleOptions.align,
-					'class': PREFIX + name,
-					zIndex: chartTitleOptions.zIndex || 4
-				})
-				.css(chartTitleOptions.style)
-				.add();
-			}	
-		});
-		chart.layOutTitles();
-	},
-
-	/**
-	 * Lay out the chart titles and cache the full offset height for use in getMargins
-	 */
-	layOutTitles: function () {
-		var titleOffset = 0,
-			title = this.title,
-			subtitle = this.subtitle,
-			options = this.options,
-			titleOptions = options.title,
-			subtitleOptions = options.subtitle,
-			autoWidth = this.spacingBox.width - 44; // 44 makes room for default context button
-
-		if (title) {
-			title
-				.css({ width: (titleOptions.width || autoWidth) + PX })
-				.align(extend({ y: 15 }, titleOptions), false, 'spacingBox');
-			
-			if (!titleOptions.floating && !titleOptions.verticalAlign) {
-				titleOffset = title.getBBox().height;
-
-				// Adjust for browser consistency + backwards compat after #776 fix
-				if (titleOffset >= 18 && titleOffset <= 25) {
-					titleOffset = 15; 
-				}
-			}
-		}
-		if (subtitle) {
-			subtitle
-				.css({ width: (subtitleOptions.width || autoWidth) + PX })
-				.align(extend({ y: titleOffset + titleOptions.margin }, subtitleOptions), false, 'spacingBox');
-			
-			if (!subtitleOptions.floating && !subtitleOptions.verticalAlign) {
-				titleOffset = mathCeil(titleOffset + subtitle.getBBox().height);
-			}
-		}
-
-		this.titleOffset = titleOffset; // used in getMargins
-	},
-
-	/**
-	 * Get chart width and height according to options and container size
-	 */
-	getChartSize: function () {
-		var chart = this,
-			optionsChart = chart.options.chart,
-			renderTo = chart.renderToClone || chart.renderTo;
-
-		// get inner width and height from jQuery (#824)
-		chart.containerWidth = adapterRun(renderTo, 'width');
-		chart.containerHeight = adapterRun(renderTo, 'height');
-		
-		chart.chartWidth = mathMax(0, optionsChart.width || chart.containerWidth || 600); // #1393, 1460
-		chart.chartHeight = mathMax(0, pick(optionsChart.height,
-			// the offsetHeight of an empty container is 0 in standard browsers, but 19 in IE7:
-			chart.containerHeight > 19 ? chart.containerHeight : 400));
-	},
-
-	/**
-	 * Create a clone of the chart's renderTo div and place it outside the viewport to allow
-	 * size computation on chart.render and chart.redraw
-	 */
-	cloneRenderTo: function (revert) {
-		var clone = this.renderToClone,
-			container = this.container;
-		
-		// Destroy the clone and bring the container back to the real renderTo div
-		if (revert) {
-			if (clone) {
-				this.renderTo.appendChild(container);
-				discardElement(clone);
-				delete this.renderToClone;
-			}
-		
-		// Set up the clone
-		} else {
-			if (container && container.parentNode === this.renderTo) {
-				this.renderTo.removeChild(container); // do not clone this
-			}
-			this.renderToClone = clone = this.renderTo.cloneNode(0);
-			css(clone, {
-				position: ABSOLUTE,
-				top: '-9999px',
-				display: 'block' // #833
-			});
-			doc.body.appendChild(clone);
-			if (container) {
-				clone.appendChild(container);
-			}
-		}
-	},
-
-	/**
-	 * Get the containing element, determine the size and create the inner container
-	 * div to hold the chart
-	 */
-	getContainer: function () {
-		var chart = this,
-			container,
-			optionsChart = chart.options.chart,
-			chartWidth,
-			chartHeight,
-			renderTo,
-			indexAttrName = 'data-highcharts-chart',
-			oldChartIndex,
-			containerId;
-
-		chart.renderTo = renderTo = optionsChart.renderTo;
-		containerId = PREFIX + idCounter++;
-
-		if (isString(renderTo)) {
-			chart.renderTo = renderTo = doc.getElementById(renderTo);
-		}
-		
-		// Display an error if the renderTo is wrong
-		if (!renderTo) {
-			error(13, true);
-		}
-		
-		// If the container already holds a chart, destroy it
-		oldChartIndex = pInt(attr(renderTo, indexAttrName));
-		if (!isNaN(oldChartIndex) && charts[oldChartIndex]) {
-			charts[oldChartIndex].destroy();
-		}		
-		
-		// Make a reference to the chart from the div
-		attr(renderTo, indexAttrName, chart.index);
-
-		// remove previous chart
-		renderTo.innerHTML = '';
-
-		// If the container doesn't have an offsetWidth, it has or is a child of a node
-		// that has display:none. We need to temporarily move it out to a visible
-		// state to determine the size, else the legend and tooltips won't render
-		// properly
-		if (!renderTo.offsetWidth) {
-			chart.cloneRenderTo();
-		}
-
-		// get the width and height
-		chart.getChartSize();
-		chartWidth = chart.chartWidth;
-		chartHeight = chart.chartHeight;
-
-		// create the inner container
-		chart.container = container = createElement(DIV, {
-				className: PREFIX + 'container' +
-					(optionsChart.className ? ' ' + optionsChart.className : ''),
-				id: containerId
-			}, extend({
-				position: RELATIVE,
-				overflow: HIDDEN, // needed for context menu (avoid scrollbars) and
-					// content overflow in IE
-				width: chartWidth + PX,
-				height: chartHeight + PX,
-				textAlign: 'left',
-				lineHeight: 'normal', // #427
-				zIndex: 0, // #1072
-				'-webkit-tap-highlight-color': 'rgba(0,0,0,0)'
-			}, optionsChart.style),
-			chart.renderToClone || renderTo
-		);
-
-		// cache the cursor (#1650)
-		chart._cursor = container.style.cursor;
-
-		chart.renderer =
-			optionsChart.forExport ? // force SVG, used for SVG export
-				new SVGRenderer(container, chartWidth, chartHeight, true) :
-				new Renderer(container, chartWidth, chartHeight);
-
-		if (useCanVG) {
-			// If we need canvg library, extend and configure the renderer
-			// to get the tracker for translating mouse events
-			chart.renderer.create(chart, container, chartWidth, chartHeight);
-		}
-	},
-
-	/**
-	 * Calculate margins by rendering axis labels in a preliminary position. Title,
-	 * subtitle and legend have already been rendered at this stage, but will be
-	 * moved into their final positions
-	 */
-	getMargins: function () {
-		var chart = this,
-			spacing = chart.spacing,
-			axisOffset,
-			legend = chart.legend,
-			margin = chart.margin,
-			legendOptions = chart.options.legend,
-			legendMargin = pick(legendOptions.margin, 10),
-			legendX = legendOptions.x,
-			legendY = legendOptions.y,
-			align = legendOptions.align,
-			verticalAlign = legendOptions.verticalAlign,
-			titleOffset = chart.titleOffset;
-
-		chart.resetMargins();
-		axisOffset = chart.axisOffset;
-
-		// Adjust for title and subtitle
-		if (titleOffset && !defined(margin[0])) {
-			chart.plotTop = mathMax(chart.plotTop, titleOffset + chart.options.title.margin + spacing[0]);
-		}
-		
-		// Adjust for legend
-		if (legend.display && !legendOptions.floating) {
-			if (align === 'right') { // horizontal alignment handled first
-				if (!defined(margin[1])) {
-					chart.marginRight = mathMax(
-						chart.marginRight,
-						legend.legendWidth - legendX + legendMargin + spacing[1]
-					);
-				}
-			} else if (align === 'left') {
-				if (!defined(margin[3])) {
-					chart.plotLeft = mathMax(
-						chart.plotLeft,
-						legend.legendWidth + legendX + legendMargin + spacing[3]
-					);
-				}
-
-			} else if (verticalAlign === 'top') {
-				if (!defined(margin[0])) {
-					chart.plotTop = mathMax(
-						chart.plotTop,
-						legend.legendHeight + legendY + legendMargin + spacing[0]
-					);
-				}
-
-			} else if (verticalAlign === 'bottom') {
-				if (!defined(margin[2])) {
-					chart.marginBottom = mathMax(
-						chart.marginBottom,
-						legend.legendHeight - legendY + legendMargin + spacing[2]
-					);
-				}
-			}
-		}
-
-		// adjust for scroller
-		if (chart.extraBottomMargin) {
-			chart.marginBottom += chart.extraBottomMargin;
-		}
-		if (chart.extraTopMargin) {
-			chart.plotTop += chart.extraTopMargin;
-		}
-
-		// pre-render axes to get labels offset width
-		if (chart.hasCartesianSeries) {
-			each(chart.axes, function (axis) {
-				axis.getOffset();
-			});
-		}
-		
-		if (!defined(margin[3])) {
-			chart.plotLeft += axisOffset[3];
-		}
-		if (!defined(margin[0])) {
-			chart.plotTop += axisOffset[0];
-		}
-		if (!defined(margin[2])) {
-			chart.marginBottom += axisOffset[2];
-		}
-		if (!defined(margin[1])) {
-			chart.marginRight += axisOffset[1];
-		}
-
-		chart.setChartSize();
-
-	},
-
-	/**
-	 * Add the event handlers necessary for auto resizing
-	 *
-	 */
-	initReflow: function () {
-		var chart = this,
-			optionsChart = chart.options.chart,
-			renderTo = chart.renderTo,
-			reflowTimeout;
-			
-		function reflow(e) {
-			var width = optionsChart.width || adapterRun(renderTo, 'width'),
-				height = optionsChart.height || adapterRun(renderTo, 'height'),
-				target = e ? e.target : win; // #805 - MooTools doesn't supply e
-				
-			// Width and height checks for display:none. Target is doc in IE8 and Opera,
-			// win in Firefox, Chrome and IE9.
-			if (!chart.hasUserSize && width && height && (target === win || target === doc)) {
-				
-				if (width !== chart.containerWidth || height !== chart.containerHeight) {
-					clearTimeout(reflowTimeout);
-					chart.reflowTimeout = reflowTimeout = setTimeout(function () {
-						if (chart.container) { // It may have been destroyed in the meantime (#1257)
-							chart.setSize(width, height, false);
-							chart.hasUserSize = null;
-						}
-					}, 100);
-				}
-				chart.containerWidth = width;
-				chart.containerHeight = height;
-			}
-		}
-		chart.reflow = reflow;
-		addEvent(win, 'resize', reflow);
-		addEvent(chart, 'destroy', function () {
-			removeEvent(win, 'resize', reflow);
-		});
-	},
-
-	/**
-	 * Resize the chart to a given width and height
-	 * @param {Number} width
-	 * @param {Number} height
-	 * @param {Object|Boolean} animation
-	 */
-	setSize: function (width, height, animation) {
-		var chart = this,
-			chartWidth,
-			chartHeight,
-			fireEndResize;
-
-		// Handle the isResizing counter
-		chart.isResizing += 1;
-		fireEndResize = function () {
-			if (chart) {
-				fireEvent(chart, 'endResize', null, function () {
-					chart.isResizing -= 1;
-				});
-			}
-		};
-
-		// set the animation for the current process
-		setAnimation(animation, chart);
-
-		chart.oldChartHeight = chart.chartHeight;
-		chart.oldChartWidth = chart.chartWidth;
-		if (defined(width)) {
-			chart.chartWidth = chartWidth = mathMax(0, mathRound(width));
-			chart.hasUserSize = !!chartWidth;
-		}
-		if (defined(height)) {
-			chart.chartHeight = chartHeight = mathMax(0, mathRound(height));
-		}
-
-		css(chart.container, {
-			width: chartWidth + PX,
-			height: chartHeight + PX
-		});
-		chart.setChartSize(true);
-		chart.renderer.setSize(chartWidth, chartHeight, animation);
-
-		// handle axes
-		chart.maxTicks = null;
-		each(chart.axes, function (axis) {
-			axis.isDirty = true;
-			axis.setScale();
-		});
-
-		// make sure non-cartesian series are also handled
-		each(chart.series, function (serie) {
-			serie.isDirty = true;
-		});
-
-		chart.isDirtyLegend = true; // force legend redraw
-		chart.isDirtyBox = true; // force redraw of plot and chart border
-
-		chart.getMargins();
-
-		chart.redraw(animation);
-
-
-		chart.oldChartHeight = null;
-		fireEvent(chart, 'resize');
-
-		// fire endResize and set isResizing back
-		// If animation is disabled, fire without delay
-		if (globalAnimation === false) {
-			fireEndResize();
-		} else { // else set a timeout with the animation duration
-			setTimeout(fireEndResize, (globalAnimation && globalAnimation.duration) || 500);
-		}
-	},
-
-	/**
-	 * Set the public chart properties. This is done before and after the pre-render
-	 * to determine margin sizes
-	 */
-	setChartSize: function (skipAxes) {
-		var chart = this,
-			inverted = chart.inverted,
-			renderer = chart.renderer,
-			chartWidth = chart.chartWidth,
-			chartHeight = chart.chartHeight,
-			optionsChart = chart.options.chart,
-			spacing = chart.spacing,
-			clipOffset = chart.clipOffset,
-			clipX,
-			clipY,
-			plotLeft,
-			plotTop,
-			plotWidth,
-			plotHeight,
-			plotBorderWidth;
-
-		chart.plotLeft = plotLeft = mathRound(chart.plotLeft);
-		chart.plotTop = plotTop = mathRound(chart.plotTop);
-		chart.plotWidth = plotWidth = mathMax(0, mathRound(chartWidth - plotLeft - chart.marginRight));
-		chart.plotHeight = plotHeight = mathMax(0, mathRound(chartHeight - plotTop - chart.marginBottom));
-
-		chart.plotSizeX = inverted ? plotHeight : plotWidth;
-		chart.plotSizeY = inverted ? plotWidth : plotHeight;
-		
-		chart.plotBorderWidth = optionsChart.plotBorderWidth || 0;
-
-		// Set boxes used for alignment
-		chart.spacingBox = renderer.spacingBox = {
-			x: spacing[3],
-			y: spacing[0],
-			width: chartWidth - spacing[3] - spacing[1],
-			height: chartHeight - spacing[0] - spacing[2]
-		};
-		chart.plotBox = renderer.plotBox = {
-			x: plotLeft,
-			y: plotTop,
-			width: plotWidth,
-			height: plotHeight
-		};
-
-		plotBorderWidth = 2 * mathFloor(chart.plotBorderWidth / 2);
-		clipX = mathCeil(mathMax(plotBorderWidth, clipOffset[3]) / 2);
-		clipY = mathCeil(mathMax(plotBorderWidth, clipOffset[0]) / 2);
-		chart.clipBox = {
-			x: clipX, 
-			y: clipY, 
-			width: mathFloor(chart.plotSizeX - mathMax(plotBorderWidth, clipOffset[1]) / 2 - clipX), 
-			height: mathFloor(chart.plotSizeY - mathMax(plotBorderWidth, clipOffset[2]) / 2 - clipY)
-		};
-
-		if (!skipAxes) {
-			each(chart.axes, function (axis) {
-				axis.setAxisSize();
-				axis.setAxisTranslation();
-			});
-		}
-	},
-
-	/**
-	 * Initial margins before auto size margins are applied
-	 */
-	resetMargins: function () {
-		var chart = this,
-			spacing = chart.spacing,
-			margin = chart.margin;
-
-		chart.plotTop = pick(margin[0], spacing[0]);
-		chart.marginRight = pick(margin[1], spacing[1]);
-		chart.marginBottom = pick(margin[2], spacing[2]);
-		chart.plotLeft = pick(margin[3], spacing[3]);
-		chart.axisOffset = [0, 0, 0, 0]; // top, right, bottom, left
-		chart.clipOffset = [0, 0, 0, 0];
-	},
-
-	/**
-	 * Draw the borders and backgrounds for chart and plot area
-	 */
-	drawChartBox: function () {
-		var chart = this,
-			optionsChart = chart.options.chart,
-			renderer = chart.renderer,
-			chartWidth = chart.chartWidth,
-			chartHeight = chart.chartHeight,
-			chartBackground = chart.chartBackground,
-			plotBackground = chart.plotBackground,
-			plotBorder = chart.plotBorder,
-			plotBGImage = chart.plotBGImage,
-			chartBorderWidth = optionsChart.borderWidth || 0,
-			chartBackgroundColor = optionsChart.backgroundColor,
-			plotBackgroundColor = optionsChart.plotBackgroundColor,
-			plotBackgroundImage = optionsChart.plotBackgroundImage,
-			plotBorderWidth = optionsChart.plotBorderWidth || 0,
-			mgn,
-			bgAttr,
-			plotLeft = chart.plotLeft,
-			plotTop = chart.plotTop,
-			plotWidth = chart.plotWidth,
-			plotHeight = chart.plotHeight,
-			plotBox = chart.plotBox,
-			clipRect = chart.clipRect,
-			clipBox = chart.clipBox;
-
-		// Chart area
-		mgn = chartBorderWidth + (optionsChart.shadow ? 8 : 0);
-
-		if (chartBorderWidth || chartBackgroundColor) {
-			if (!chartBackground) {
-				
-				bgAttr = {
-					fill: chartBackgroundColor || NONE
-				};
-				if (chartBorderWidth) { // #980
-					bgAttr.stroke = optionsChart.borderColor;
-					bgAttr['stroke-width'] = chartBorderWidth;
-				}
-				chart.chartBackground = renderer.rect(mgn / 2, mgn / 2, chartWidth - mgn, chartHeight - mgn,
-						optionsChart.borderRadius, chartBorderWidth)
-					.attr(bgAttr)
-					.add()
-					.shadow(optionsChart.shadow);
-
-			} else { // resize
-				chartBackground.animate(
-					chartBackground.crisp(null, null, null, chartWidth - mgn, chartHeight - mgn)
-				);
-			}
-		}
-
-
-		// Plot background
-		if (plotBackgroundColor) {
-			if (!plotBackground) {
-				chart.plotBackground = renderer.rect(plotLeft, plotTop, plotWidth, plotHeight, 0)
-					.attr({
-						fill: plotBackgroundColor
-					})
-					.add()
-					.shadow(optionsChart.plotShadow);
-			} else {
-				plotBackground.animate(plotBox);
-			}
-		}
-		if (plotBackgroundImage) {
-			if (!plotBGImage) {
-				chart.plotBGImage = renderer.image(plotBackgroundImage, plotLeft, plotTop, plotWidth, plotHeight)
-					.add();
-			} else {
-				plotBGImage.animate(plotBox);
-			}
-		}
-		
-		// Plot clip
-		if (!clipRect) {
-			chart.clipRect = renderer.clipRect(clipBox);
-		} else {
-			clipRect.animate({
-				width: clipBox.width,
-				height: clipBox.height
-			});
-		}
-
-		// Plot area border
-		if (plotBorderWidth) {
-			if (!plotBorder) {
-				chart.plotBorder = renderer.rect(plotLeft, plotTop, plotWidth, plotHeight, 0, -plotBorderWidth)
-					.attr({
-						stroke: optionsChart.plotBorderColor,
-						'stroke-width': plotBorderWidth,
-						zIndex: 1
-					})
-					.add();
-			} else {
-				plotBorder.animate(
-					plotBorder.crisp(null, plotLeft, plotTop, plotWidth, plotHeight)
-				);
-			}
-		}
-
-		// reset
-		chart.isDirtyBox = false;
-	},
-
-	/**
-	 * Detect whether a certain chart property is needed based on inspecting its options
-	 * and series. This mainly applies to the chart.invert property, and in extensions to 
-	 * the chart.angular and chart.polar properties.
-	 */
-	propFromSeries: function () {
-		var chart = this,
-			optionsChart = chart.options.chart,
-			klass,
-			seriesOptions = chart.options.series,
-			i,
-			value;
-			
-			
-		each(['inverted', 'angular', 'polar'], function (key) {
-			
-			// The default series type's class
-			klass = seriesTypes[optionsChart.type || optionsChart.defaultSeriesType];
-			
-			// Get the value from available chart-wide properties
-			value = (
-				chart[key] || // 1. it is set before
-				optionsChart[key] || // 2. it is set in the options
-				(klass && klass.prototype[key]) // 3. it's default series class requires it
-			);
-	
-			// 4. Check if any the chart's series require it
-			i = seriesOptions && seriesOptions.length;
-			while (!value && i--) {
-				klass = seriesTypes[seriesOptions[i].type];
-				if (klass && klass.prototype[key]) {
-					value = true;
-				}
-			}
-	
-			// Set the chart property
-			chart[key] = value;	
-		});
-		
-	},
-
-	/**
-	 * Link two or more series together. This is done initially from Chart.render,
-	 * and after Chart.addSeries and Series.remove.
-	 */
-	linkSeries: function () {
-		var chart = this,
-			chartSeries = chart.series;
-
-		// Reset links
-		each(chartSeries, function (series) {
-			series.linkedSeries.length = 0;
-		});
-
-		// Apply new links
-		each(chartSeries, function (series) {
-			var linkedTo = series.options.linkedTo;
-			if (isString(linkedTo)) {
-				if (linkedTo === ':previous') {
-					linkedTo = chart.series[series.index - 1];
-				} else {
-					linkedTo = chart.get(linkedTo);
-				}
-				if (linkedTo) {
-					linkedTo.linkedSeries.push(series);
-					series.linkedParent = linkedTo;
-				}
-			}
-		});
-	},
-
-	/**
-	 * Render all graphics for the chart
-	 */
-	render: function () {
-		var chart = this,
-			axes = chart.axes,
-			renderer = chart.renderer,
-			options = chart.options;
-
-		var labels = options.labels,
-			credits = options.credits,
-			creditsHref;
-
-		// Title
-		chart.setTitle();
-
-
-		// Legend
-		chart.legend = new Legend(chart, options.legend);
-
-		chart.getStacks(); // render stacks
-
-		// Get margins by pre-rendering axes
-		// set axes scales
-		each(axes, function (axis) {
-			axis.setScale();
-		});
-
-		chart.getMargins();
-
-		chart.maxTicks = null; // reset for second pass
-		each(axes, function (axis) {
-			axis.setTickPositions(true); // update to reflect the new margins
-			axis.setMaxTicks();
-		});
-		chart.adjustTickAmounts();
-		chart.getMargins(); // second pass to check for new labels
-
-
-		// Draw the borders and backgrounds
-		chart.drawChartBox();		
-
-
-		// Axes
-		if (chart.hasCartesianSeries) {
-			each(axes, function (axis) {
-				axis.render();
-			});
-		}
-
-		// The series
-		if (!chart.seriesGroup) {
-			chart.seriesGroup = renderer.g('series-group')
-				.attr({ zIndex: 3 })
-				.add();
-		}
-		each(chart.series, function (serie) {
-			serie.translate();
-			serie.setTooltipPoints();
-			serie.render();
-		});
-
-		// Labels
-		if (labels.items) {
-			each(labels.items, function (label) {
-				var style = extend(labels.style, label.style),
-					x = pInt(style.left) + chart.plotLeft,
-					y = pInt(style.top) + chart.plotTop + 12;
-
-				// delete to prevent rewriting in IE
-				delete style.left;
-				delete style.top;
-
-				renderer.text(
-					label.html,
-					x,
-					y
-				)
-				.attr({ zIndex: 2 })
-				.css(style)
-				.add();
-
-			});
-		}
-
-		// Credits
-		if (credits.enabled && !chart.credits) {
-			creditsHref = credits.href;
-			chart.credits = renderer.text(
-				credits.text,
-				0,
-				0
-			)
-			.on('click', function () {
-				if (creditsHref) {
-					location.href = creditsHref;
-				}
-			})
-			.attr({
-				align: credits.position.align,
-				zIndex: 8
-			})
-			.css(credits.style)
-			.add()
-			.align(credits.position);
-		}
-
-		// Set flag
-		chart.hasRendered = true;
-
-	},
-
-	/**
-	 * Clean up memory usage
-	 */
-	destroy: function () {
-		var chart = this,
-			axes = chart.axes,
-			series = chart.series,
-			container = chart.container,
-			i,
-			parentNode = container && container.parentNode;
-			
-		// fire the chart.destoy event
-		fireEvent(chart, 'destroy');
-		
-		// Delete the chart from charts lookup array
-		charts[chart.index] = UNDEFINED;
-		chart.renderTo.removeAttribute('data-highcharts-chart');
-
-		// remove events
-		removeEvent(chart);
-
-		// ==== Destroy collections:
-		// Destroy axes
-		i = axes.length;
-		while (i--) {
-			axes[i] = axes[i].destroy();
-		}
-
-		// Destroy each series
-		i = series.length;
-		while (i--) {
-			series[i] = series[i].destroy();
-		}
-
-		// ==== Destroy chart properties:
-		each(['title', 'subtitle', 'chartBackground', 'plotBackground', 'plotBGImage', 
-				'plotBorder', 'seriesGroup', 'clipRect', 'credits', 'pointer', 'scroller', 
-				'rangeSelector', 'legend', 'resetZoomButton', 'tooltip', 'renderer'], function (name) {
-			var prop = chart[name];
-
-			if (prop && prop.destroy) {
-				chart[name] = prop.destroy();
-			}
-		});
-
-		// remove container and all SVG
-		if (container) { // can break in IE when destroyed before finished loading
-			container.innerHTML = '';
-			removeEvent(container);
-			if (parentNode) {
-				discardElement(container);
-			}
-
-		}
-
-		// clean it all up
-		for (i in chart) {
-			delete chart[i];
-		}
-
-	},
-
-
-	/**
-	 * VML namespaces can't be added until after complete. Listening
-	 * for Perini's doScroll hack is not enough.
-	 */
-	isReadyToRender: function () {
-		var chart = this;
-
-		// Note: in spite of JSLint's complaints, win == win.top is required
-		/*jslint eqeq: true*/
-		if ((!hasSVG && (win == win.top && doc.readyState !== 'complete')) || (useCanVG && !win.canvg)) {
-		/*jslint eqeq: false*/
-			if (useCanVG) {
-				// Delay rendering until canvg library is downloaded and ready
-				CanVGController.push(function () { chart.firstRender(); }, chart.options.global.canvasToolsURL);
-			} else {
-				doc.attachEvent('onreadystatechange', function () {
-					doc.detachEvent('onreadystatechange', chart.firstRender);
-					if (doc.readyState === 'complete') {
-						chart.firstRender();
-					}
-				});
-			}
-			return false;
-		}
-		return true;
-	},
-
-	/**
-	 * Prepare for first rendering after all data are loaded
-	 */
-	firstRender: function () {
-		var chart = this,
-			options = chart.options,
-			callback = chart.callback;
-
-		// Check whether the chart is ready to render
-		if (!chart.isReadyToRender()) {
-			return;
-		}
-
-		// Create the container
-		chart.getContainer();
-
-		// Run an early event after the container and renderer are established
-		fireEvent(chart, 'init');
-
-		
-		chart.resetMargins();
-		chart.setChartSize();
-
-		// Set the common chart properties (mainly invert) from the given series
-		chart.propFromSeries();
-
-		// get axes
-		chart.getAxes();
-
-		// Initialize the series
-		each(options.series || [], function (serieOptions) {
-			chart.initSeries(serieOptions);
-		});
-
-		chart.linkSeries();
-
-		// Run an event after axes and series are initialized, but before render. At this stage,
-		// the series data is indexed and cached in the xData and yData arrays, so we can access
-		// those before rendering. Used in Highstock. 
-		fireEvent(chart, 'beforeRender'); 
-
-		// depends on inverted and on margins being set
-		chart.pointer = new Pointer(chart, options);
-
-		chart.render();
-
-		// add canvas
-		chart.renderer.draw();
-		// run callbacks
-		if (callback) {
-			callback.apply(chart, [chart]);
-		}
-		each(chart.callbacks, function (fn) {
-			fn.apply(chart, [chart]);
-		});
-		
-		
-		// If the chart was rendered outside the top container, put it back in
-		chart.cloneRenderTo(true);
-
-		fireEvent(chart, 'load');
-
-	},
-
-	/**
-	* Creates arrays for spacing and margin from given options.
-	*/
-	splashArray: function (target, options) {
-		var oVar = options[target],
-			tArray = isObject(oVar) ? oVar : [oVar, oVar, oVar, oVar];
-
-		return [pick(options[target + 'Top'], tArray[0]),
-				pick(options[target + 'Right'], tArray[1]),
-				pick(options[target + 'Bottom'], tArray[2]),
-				pick(options[target + 'Left'], tArray[3])];
-	}
-}; // end Chart
-
-// Hook for exporting module
-Chart.prototype.callbacks = [];
-/**
- * The Point object and prototype. Inheritable and used as base for PiePoint
- */
-var Point = function () {};
-Point.prototype = {
-
-	/**
-	 * Initialize the point
-	 * @param {Object} series The series object containing this point
-	 * @param {Object} options The data in either number, array or object format
-	 */
-	init: function (series, options, x) {
-
-		var point = this,
-			colors;
-		point.series = series;
-		point.applyOptions(options, x);
-		point.pointAttr = {};
-
-		if (series.options.colorByPoint) {
-			colors = series.options.colors || series.chart.options.colors;
-			point.color = point.color || colors[series.colorCounter++];
-			// loop back to zero
-			if (series.colorCounter === colors.length) {
-				series.colorCounter = 0;
-			}
-		}
-
-		series.chart.pointCount++;
-		return point;
-	},
-	/**
-	 * Apply the options containing the x and y data and possible some extra properties.
-	 * This is called on point init or from point.update.
-	 *
-	 * @param {Object} options
-	 */
-	applyOptions: function (options, x) {
-		var point = this,
-			series = point.series,
-			pointValKey = series.pointValKey;
-
-		options = Point.prototype.optionsToObject.call(this, options);
-
-		// copy options directly to point
-		extend(point, options);
-		point.options = point.options ? extend(point.options, options) : options;
-			
-		// For higher dimension series types. For instance, for ranges, point.y is mapped to point.low.
-		if (pointValKey) {
-			point.y = point[pointValKey];
-		}
-		
-		// If no x is set by now, get auto incremented value. All points must have an
-		// x value, however the y value can be null to create a gap in the series
-		if (point.x === UNDEFINED && series) {
-			point.x = x === UNDEFINED ? series.autoIncrement() : x;
-		}
-		
-		return point;
-	},
-
-	/**
-	 * Transform number or array configs into objects
-	 */
-	optionsToObject: function (options) {
-		var ret,
-			series = this.series,
-			pointArrayMap = series.pointArrayMap || ['y'],
-			valueCount = pointArrayMap.length,
-			firstItemType,
-			i = 0,
-			j = 0;
-
-		if (typeof options === 'number' || options === null) {
-			ret = { y: options };
-
-		} else if (isArray(options)) {
-			ret = {};
-			// with leading x value
-			if (options.length > valueCount) {
-				firstItemType = typeof options[0];
-				if (firstItemType === 'string') {
-					ret.name = options[0];
-				} else if (firstItemType === 'number') {
-					ret.x = options[0];
-				}
-				i++;
-			}
-			while (j < valueCount) {
-				ret[pointArrayMap[j++]] = options[i++];
-			}			
-		} else if (typeof options === 'object') {
-			ret = options;
-
-			// This is the fastest way to detect if there are individual point dataLabels that need 
-			// to be considered in drawDataLabels. These can only occur in object configs.
-			if (options.dataLabels) {
-				series._hasPointLabels = true;
-			}
-
-			// Same approach as above for markers
-			if (options.marker) {
-				series._hasPointMarkers = true;
-			}
-		}
-		return ret;
-	},
-
-	/**
-	 * Destroy a point to clear memory. Its reference still stays in series.data.
-	 */
-	destroy: function () {
-		var point = this,
-			series = point.series,
-			chart = series.chart,
-			hoverPoints = chart.hoverPoints,
-			prop;
-
-		chart.pointCount--;
-
-		if (hoverPoints) {
-			point.setState();
-			erase(hoverPoints, point);
-			if (!hoverPoints.length) {
-				chart.hoverPoints = null;
-			}
-
-		}
-		if (point === chart.hoverPoint) {
-			point.onMouseOut();
-		}
-		
-		// remove all events
-		if (point.graphic || point.dataLabel) { // removeEvent and destroyElements are performance expensive
-			removeEvent(point);
-			point.destroyElements();
-		}
-
-		if (point.legendItem) { // pies have legend items
-			chart.legend.destroyItem(point);
-		}
-
-		for (prop in point) {
-			point[prop] = null;
-		}
-
-
-	},
-
-	/**
-	 * Destroy SVG elements associated with the point
-	 */
-	destroyElements: function () {
-		var point = this,
-			props = ['graphic', 'dataLabel', 'dataLabelUpper', 'group', 'connector', 'shadowGroup'],
-			prop,
-			i = 6;
-		while (i--) {
-			prop = props[i];
-			if (point[prop]) {
-				point[prop] = point[prop].destroy();
-			}
-		}
-	},
-
-	/**
-	 * Return the configuration hash needed for the data label and tooltip formatters
-	 */
-	getLabelConfig: function () {
-		var point = this;
-		return {
-			x: point.category,
-			y: point.y,
-			key: point.name || point.category,
-			series: point.series,
-			point: point,
-			percentage: point.percentage,
-			total: point.total || point.stackTotal
-		};
-	},
-
-	/**
-	 * Toggle the selection status of a point
-	 * @param {Boolean} selected Whether to select or unselect the point.
-	 * @param {Boolean} accumulate Whether to add to the previous selection. By default,
-	 *     this happens if the control key (Cmd on Mac) was pressed during clicking.
-	 */
-	select: function (selected, accumulate) {
-		var point = this,
-			series = point.series,
-			chart = series.chart;
-
-		selected = pick(selected, !point.selected);
-
-		// fire the event with the defalut handler
-		point.firePointEvent(selected ? 'select' : 'unselect', { accumulate: accumulate }, function () {
-			point.selected = point.options.selected = selected;
-			series.options.data[inArray(point, series.data)] = point.options;
-			
-			point.setState(selected && SELECT_STATE);
-
-			// unselect all other points unless Ctrl or Cmd + click
-			if (!accumulate) {
-				each(chart.getSelectedPoints(), function (loopPoint) {
-					if (loopPoint.selected && loopPoint !== point) {
-						loopPoint.selected = loopPoint.options.selected = false;
-						series.options.data[inArray(loopPoint, series.data)] = loopPoint.options;
-						loopPoint.setState(NORMAL_STATE);
-						loopPoint.firePointEvent('unselect');
-					}
-				});
-			}
-		});
-	},
-
-	/**
-	 * Runs on mouse over the point
-	 */
-	onMouseOver: function (e) {
-		var point = this,
-			series = point.series,
-			chart = series.chart,
-			tooltip = chart.tooltip,
-			hoverPoint = chart.hoverPoint;
-
-		// set normal state to previous series
-		if (hoverPoint && hoverPoint !== point) {
-			hoverPoint.onMouseOut();
-		}
-
-		// trigger the event
-		point.firePointEvent('mouseOver');
-
-		// update the tooltip
-		if (tooltip && (!tooltip.shared || series.noSharedTooltip)) {
-			tooltip.refresh(point, e);
-		}
-
-		// hover this
-		point.setState(HOVER_STATE);
-		chart.hoverPoint = point;
-	},
-	
-	/**
-	 * Runs on mouse out from the point
-	 */
-	onMouseOut: function () {
-		var chart = this.series.chart,
-			hoverPoints = chart.hoverPoints;
-		
-		if (!hoverPoints || inArray(this, hoverPoints) === -1) { // #887
-			this.firePointEvent('mouseOut');
-	
-			this.setState();
-			chart.hoverPoint = null;
-		}
-	},
-
-	/**
-	 * Extendable method for formatting each point's tooltip line
-	 *
-	 * @return {String} A string to be concatenated in to the common tooltip text
-	 */
-	tooltipFormatter: function (pointFormat) {
-		
-		// Insert options for valueDecimals, valuePrefix, and valueSuffix
-		var series = this.series,
-			seriesTooltipOptions = series.tooltipOptions,
-			valueDecimals = pick(seriesTooltipOptions.valueDecimals, ''),
-			valuePrefix = seriesTooltipOptions.valuePrefix || '',
-			valueSuffix = seriesTooltipOptions.valueSuffix || '';
-			
-		// Loop over the point array map and replace unformatted values with sprintf formatting markup
-		each(series.pointArrayMap || ['y'], function (key) {
-			key = '{point.' + key; // without the closing bracket
-			if (valuePrefix || valueSuffix) {
-				pointFormat = pointFormat.replace(key + '}', valuePrefix + key + '}' + valueSuffix);
-			}
-			pointFormat = pointFormat.replace(key + '}', key + ':,.' + valueDecimals + 'f}');
-		});
-		
-		return format(pointFormat, {
-			point: this,
-			series: this.series
-		});
-	},
-
-	/**
-	 * Update the point with new options (typically x/y data) and optionally redraw the series.
-	 *
-	 * @param {Object} options Point options as defined in the series.data array
-	 * @param {Boolean} redraw Whether to redraw the chart or wait for an explicit call
-	 * @param {Boolean|Object} animation Whether to apply animation, and optionally animation
-	 *    configuration
-	 *
-	 */
-	update: function (options, redraw, animation) {
-		var point = this,
-			series = point.series,
-			graphic = point.graphic,
-			i,
-			data = series.data,
-			chart = series.chart,
-			seriesOptions = series.options;
-
-		redraw = pick(redraw, true);
-
-		// fire the event with a default handler of doing the update
-		point.firePointEvent('update', { options: options }, function () {
-
-			point.applyOptions(options);
-
-			// update visuals
-			if (isObject(options)) {
-				series.getAttribs();
-				if (graphic) {
-					if (options.marker && options.marker.symbol) {
-						point.graphic = graphic.destroy();
-					} else {
-						graphic.attr(point.pointAttr[point.state || '']);
-					}
-				}
-			}
-
-			// record changes in the parallel arrays
-			i = inArray(point, data);
-			series.xData[i] = point.x;
-			series.yData[i] = series.toYData ? series.toYData(point) : point.y;
-			series.zData[i] = point.z;
-			seriesOptions.data[i] = point.options;
-
-			// redraw
-			series.isDirty = series.isDirtyData = true;
-			if (!series.fixedBox && series.hasCartesianSeries) { // #1906, #2320
-				chart.isDirtyBox = true;
-			}
-			
-			if (seriesOptions.legendType === 'point') { // #1831, #1885
-				chart.legend.destroyItem(point);
-			}
-			if (redraw) {
-				chart.redraw(animation);
-			}
-		});
-	},
-
-	/**
-	 * Remove a point and optionally redraw the series and if necessary the axes
-	 * @param {Boolean} redraw Whether to redraw the chart or wait for an explicit call
-	 * @param {Boolean|Object} animation Whether to apply animation, and optionally animation
-	 *    configuration
-	 */
-	remove: function (redraw, animation) {
-		var point = this,
-			series = point.series,
-			points = series.points,
-			chart = series.chart,
-			i,
-			data = series.data;
-
-		setAnimation(animation, chart);
-		redraw = pick(redraw, true);
-
-		// fire the event with a default handler of removing the point
-		point.firePointEvent('remove', null, function () {
-
-			// splice all the parallel arrays
-			i = inArray(point, data);
-			if (data.length === points.length) {
-				points.splice(i, 1);			
-			}
-			data.splice(i, 1);
-			series.options.data.splice(i, 1);
-			series.xData.splice(i, 1);
-			series.yData.splice(i, 1);
-			series.zData.splice(i, 1);
-
-			point.destroy();
-
-
-			// redraw
-			series.isDirty = true;
-			series.isDirtyData = true;
-			if (redraw) {
-				chart.redraw();
-			}
-		});
-
-
-	},
-
-	/**
-	 * Fire an event on the Point object. Must not be renamed to fireEvent, as this
-	 * causes a name clash in MooTools
-	 * @param {String} eventType
-	 * @param {Object} eventArgs Additional event arguments
-	 * @param {Function} defaultFunction Default event handler
-	 */
-	firePointEvent: function (eventType, eventArgs, defaultFunction) {
-		var point = this,
-			series = this.series,
-			seriesOptions = series.options;
-
-		// load event handlers on demand to save time on mouseover/out
-		if (seriesOptions.point.events[eventType] || (point.options && point.options.events && point.options.events[eventType])) {
-			this.importEvents();
-		}
-
-		// add default handler if in selection mode
-		if (eventType === 'click' && seriesOptions.allowPointSelect) {
-			defaultFunction = function (event) {
-				// Control key is for Windows, meta (= Cmd key) for Mac, Shift for Opera
-				point.select(null, event.ctrlKey || event.metaKey || event.shiftKey);
-			};
-		}
-
-		fireEvent(this, eventType, eventArgs, defaultFunction);
-	},
-	/**
-	 * Import events from the series' and point's options. Only do it on
-	 * demand, to save processing time on hovering.
-	 */
-	importEvents: function () {
-		if (!this.hasImportedEvents) {
-			var point = this,
-				options = merge(point.series.options.point, point.options),
-				events = options.events,
-				eventType;
-
-			point.events = events;
-
-			for (eventType in events) {
-				addEvent(point, eventType, events[eventType]);
-			}
-			this.hasImportedEvents = true;
-
-		}
-	},
-
-	/**
-	 * Set the point's state
-	 * @param {String} state
-	 */
-	setState: function (state) {
-		var point = this,
-			plotX = point.plotX,
-			plotY = point.plotY,
-			series = point.series,
-			stateOptions = series.options.states,
-			markerOptions = defaultPlotOptions[series.type].marker && series.options.marker,
-			normalDisabled = markerOptions && !markerOptions.enabled,
-			markerStateOptions = markerOptions && markerOptions.states[state],
-			stateDisabled = markerStateOptions && markerStateOptions.enabled === false,
-			stateMarkerGraphic = series.stateMarkerGraphic,
-			pointMarker = point.marker || {},
-			chart = series.chart,
-			radius,
-			newSymbol,
-			pointAttr = point.pointAttr;
-
-		state = state || NORMAL_STATE; // empty string
-
-		if (
-				// already has this state
-				state === point.state ||
-				// selected points don't respond to hover
-				(point.selected && state !== SELECT_STATE) ||
-				// series' state options is disabled
-				(stateOptions[state] && stateOptions[state].enabled === false) ||
-				// point marker's state options is disabled
-				(state && (stateDisabled || (normalDisabled && !markerStateOptions.enabled)))
-
-			) {
-			return;
-		}
-
-		// apply hover styles to the existing point
-		if (point.graphic) {
-			radius = markerOptions && point.graphic.symbolName && pointAttr[state].r;
-			point.graphic.attr(merge(
-				pointAttr[state],
-				radius ? { // new symbol attributes (#507, #612)
-					x: plotX - radius,
-					y: plotY - radius,
-					width: 2 * radius,
-					height: 2 * radius
-				} : {}
-			));
-		} else {
-			// if a graphic is not applied to each point in the normal state, create a shared
-			// graphic for the hover state
-			if (state && markerStateOptions) {
-				radius = markerStateOptions.radius;
-				newSymbol = pointMarker.symbol || series.symbol;
-
-				// If the point has another symbol than the previous one, throw away the 
-				// state marker graphic and force a new one (#1459)
-				if (stateMarkerGraphic && stateMarkerGraphic.currentSymbol !== newSymbol) {				
-					stateMarkerGraphic = stateMarkerGraphic.destroy();
-				}
-
-				// Add a new state marker graphic
-				if (!stateMarkerGraphic) {
-					series.stateMarkerGraphic = stateMarkerGraphic = chart.renderer.symbol(
-						newSymbol,
-						plotX - radius,
-						plotY - radius,
-						2 * radius,
-						2 * radius
-					)
-					.attr(pointAttr[state])
-					.add(series.markerGroup);
-					stateMarkerGraphic.currentSymbol = newSymbol;
-				
-				// Move the existing graphic
-				} else {
-					stateMarkerGraphic.attr({ // #1054
-						x: plotX - radius,
-						y: plotY - radius
-					});
-				}
-			}
-
-			if (stateMarkerGraphic) {
-				stateMarkerGraphic[state && chart.isInsidePlot(plotX, plotY) ? 'show' : 'hide']();
-			}
-		}
-
-		point.state = state;
-	}
-};
-
-/**
- * @classDescription The base function which all other series types inherit from. The data in the series is stored
- * in various arrays.
- *
- * - First, series.options.data contains all the original config options for
- * each point whether added by options or methods like series.addPoint.
- * - Next, series.data contains those values converted to points, but in case the series data length
- * exceeds the cropThreshold, or if the data is grouped, series.data doesn't contain all the points. It
- * only contains the points that have been created on demand.
- * - Then there's series.points that contains all currently visible point objects. In case of cropping,
- * the cropped-away points are not part of this array. The series.points array starts at series.cropStart
- * compared to series.data and series.options.data. If however the series data is grouped, these can't
- * be correlated one to one.
- * - series.xData and series.processedXData contain clean x values, equivalent to series.data and series.points.
- * - series.yData and series.processedYData contain clean x values, equivalent to series.data and series.points.
- *
- * @param {Object} chart
- * @param {Object} options
- */
-var Series = function () {};
-
-Series.prototype = {
-
-	isCartesian: true,
-	type: 'line',
-	pointClass: Point,
-	sorted: true, // requires the data to be sorted
-	requireSorting: true,
-	pointAttrToOptions: { // mapping between SVG attributes and the corresponding options
-		stroke: 'lineColor',
-		'stroke-width': 'lineWidth',
-		fill: 'fillColor',
-		r: 'radius'
-	},
-	colorCounter: 0,
-	init: function (chart, options) {
-		var series = this,
-			eventType,
-			events,
-			chartSeries = chart.series;
-
-		series.chart = chart;
-		series.options = options = series.setOptions(options); // merge with plotOptions
-		series.linkedSeries = [];
-
-		// bind the axes
-		series.bindAxes();
-
-		// set some variables
-		extend(series, {
-			name: options.name,
-			state: NORMAL_STATE,
-			pointAttr: {},
-			visible: options.visible !== false, // true by default
-			selected: options.selected === true // false by default
-		});
-		
-		// special
-		if (useCanVG) {
-			options.animation = false;
-		}
-
-		// register event listeners
-		events = options.events;
-		for (eventType in events) {
-			addEvent(series, eventType, events[eventType]);
-		}
-		if (
-			(events && events.click) ||
-			(options.point && options.point.events && options.point.events.click) ||
-			options.allowPointSelect
-		) {
-			chart.runTrackerClick = true;
-		}
-
-		series.getColor();
-		series.getSymbol();
-
-		// set the data
-		series.setData(options.data, false);
-		
-		// Mark cartesian
-		if (series.isCartesian) {
-			chart.hasCartesianSeries = true;
-		}
-
-		// Register it in the chart
-		chartSeries.push(series);
-		series._i = chartSeries.length - 1;
-		
-		// Sort series according to index option (#248, #1123)
-		stableSort(chartSeries, function (a, b) {
-			return pick(a.options.index, a._i) - pick(b.options.index, a._i);
-		});
-		each(chartSeries, function (series, i) {
-			series.index = i;
-			series.name = series.name || 'Series ' + (i + 1);
-		});
-
-	},
-	
-	/**
-	 * Set the xAxis and yAxis properties of cartesian series, and register the series
-	 * in the axis.series array
-	 */
-	bindAxes: function () {
-		var series = this,
-			seriesOptions = series.options,
-			chart = series.chart,
-			axisOptions;
-			
-		if (series.isCartesian) {
-			
-			each(['xAxis', 'yAxis'], function (AXIS) { // repeat for xAxis and yAxis
-				
-				each(chart[AXIS], function (axis) { // loop through the chart's axis objects
-					
-					axisOptions = axis.options;
-					
-					// apply if the series xAxis or yAxis option mathches the number of the 
-					// axis, or if undefined, use the first axis
-					if ((seriesOptions[AXIS] === axisOptions.index) ||
-							(seriesOptions[AXIS] !== UNDEFINED && seriesOptions[AXIS] === axisOptions.id) ||
-							(seriesOptions[AXIS] === UNDEFINED && axisOptions.index === 0)) {
-						
-						// register this series in the axis.series lookup
-						axis.series.push(series);
-						
-						// set this series.xAxis or series.yAxis reference
-						series[AXIS] = axis;
-						
-						// mark dirty for redraw
-						axis.isDirty = true;
-					}
-				});
-
-				// The series needs an X and an Y axis
-				if (!series[AXIS]) {
-					error(18, true);
-				}
-
-			});
-		}
-	},
-
-
-	/**
-	 * Return an auto incremented x value based on the pointStart and pointInterval options.
-	 * This is only used if an x value is not given for the point that calls autoIncrement.
-	 */
-	autoIncrement: function () {
-		var series = this,
-			options = series.options,
-			xIncrement = series.xIncrement;
-
-		xIncrement = pick(xIncrement, options.pointStart, 0);
-
-		series.pointInterval = pick(series.pointInterval, options.pointInterval, 1);
-
-		series.xIncrement = xIncrement + series.pointInterval;
-		return xIncrement;
-	},
-
-	/**
-	 * Divide the series data into segments divided by null values.
-	 */
-	getSegments: function () {
-		var series = this,
-			lastNull = -1,
-			segments = [],
-			i,
-			points = series.points,
-			pointsLength = points.length;
-
-		if (pointsLength) { // no action required for []
-			
-			// if connect nulls, just remove null points
-			if (series.options.connectNulls) {
-				i = pointsLength;
-				while (i--) {
-					if (points[i].y === null) {
-						points.splice(i, 1);
-					}
-				}
-				if (points.length) {
-					segments = [points];
-				}
-				
-			// else, split on null points
-			} else {
-				each(points, function (point, i) {
-					if (point.y === null) {
-						if (i > lastNull + 1) {
-							segments.push(points.slice(lastNull + 1, i));
-						}
-						lastNull = i;
-					} else if (i === pointsLength - 1) { // last value
-						segments.push(points.slice(lastNull + 1, i + 1));
-					}
-				});
-			}
-		}
-		
-		// register it
-		series.segments = segments;
-	},
-	
-	/**
-	 * Set the series options by merging from the options tree
-	 * @param {Object} itemOptions
-	 */
-	setOptions: function (itemOptions) {
-		var chart = this.chart,
-			chartOptions = chart.options,
-			plotOptions = chartOptions.plotOptions,
-			typeOptions = plotOptions[this.type],
-			options;
-
-		this.userOptions = itemOptions;
-
-		options = merge(
-			typeOptions,
-			plotOptions.series,
-			itemOptions
-		);
-		
-		// the tooltip options are merged between global and series specific options
-		this.tooltipOptions = merge(chartOptions.tooltip, options.tooltip);
-		
-		// Delte marker object if not allowed (#1125)
-		if (typeOptions.marker === null) {
-			delete options.marker;
-		}
-		
-		return options;
-
-	},
-	/**
-	 * Get the series' color
-	 */
-	getColor: function () {
-		var options = this.options,
-			userOptions = this.userOptions,
-			defaultColors = this.chart.options.colors,
-			counters = this.chart.counters,
-			color,
-			colorIndex;
-
-		color = options.color || defaultPlotOptions[this.type].color;
-
-		if (!color && !options.colorByPoint) {
-			if (defined(userOptions._colorIndex)) { // after Series.update()
-				colorIndex = userOptions._colorIndex;
-			} else {
-				userOptions._colorIndex = counters.color;
-				colorIndex = counters.color++;
-			}
-			color = defaultColors[colorIndex];
-		}
-		
-		this.color = color;
-		counters.wrapColor(defaultColors.length);
-	},
-	/**
-	 * Get the series' symbol
-	 */
-	getSymbol: function () {
-		var series = this,
-			userOptions = series.userOptions,
-			seriesMarkerOption = series.options.marker,
-			chart = series.chart,
-			defaultSymbols = chart.options.symbols,
-			counters = chart.counters,
-			symbolIndex;
-
-		series.symbol = seriesMarkerOption.symbol;
-		if (!series.symbol) {
-			if (defined(userOptions._symbolIndex)) { // after Series.update()
-				symbolIndex = userOptions._symbolIndex;
-			} else {
-				userOptions._symbolIndex = counters.symbol;
-				symbolIndex = counters.symbol++;
-			}
-			series.symbol = defaultSymbols[symbolIndex];
-		}
-
-		// don't substract radius in image symbols (#604)
-		if (/^url/.test(series.symbol)) {
-			seriesMarkerOption.radius = 0;
-		}
-		counters.wrapSymbol(defaultSymbols.length);
-	},
-
-	/**
-	 * Get the series' symbol in the legend. This method should be overridable to create custom 
-	 * symbols through Highcharts.seriesTypes[type].prototype.drawLegendSymbols.
-	 * 
-	 * @param {Object} legend The legend object
-	 */
-	drawLegendSymbol: function (legend) {
-		
-		var options = this.options,
-			markerOptions = options.marker,
-			radius,
-			legendOptions = legend.options,
-			legendSymbol,
-			symbolWidth = legendOptions.symbolWidth,
-			renderer = this.chart.renderer,
-			legendItemGroup = this.legendGroup,
-			verticalCenter = legend.baseline - mathRound(renderer.fontMetrics(legendOptions.itemStyle.fontSize).b * 0.3),
-			attr;
-			
-		// Draw the line
-		if (options.lineWidth) {
-			attr = {
-				'stroke-width': options.lineWidth
-			};
-			if (options.dashStyle) {
-				attr.dashstyle = options.dashStyle;
-			}
-			this.legendLine = renderer.path([
-				M,
-				0,
-				verticalCenter,
-				L,
-				symbolWidth,
-				verticalCenter
-			])
-			.attr(attr)
-			.add(legendItemGroup);
-		}
-		
-		// Draw the marker
-		if (markerOptions && markerOptions.enabled) {
-			radius = markerOptions.radius;
-			this.legendSymbol = legendSymbol = renderer.symbol(
-				this.symbol,
-				(symbolWidth / 2) - radius,
-				verticalCenter - radius,
-				2 * radius,
-				2 * radius
-			)
-			.add(legendItemGroup);
-			legendSymbol.isMarker = true;
-		}
-	},
-
-	/**
-	 * Add a point dynamically after chart load time
-	 * @param {Object} options Point options as given in series.data
-	 * @param {Boolean} redraw Whether to redraw the chart or wait for an explicit call
-	 * @param {Boolean} shift If shift is true, a point is shifted off the start
-	 *    of the series as one is appended to the end.
-	 * @param {Boolean|Object} animation Whether to apply animation, and optionally animation
-	 *    configuration
-	 */
-	addPoint: function (options, redraw, shift, animation) {
-		var series = this,
-			seriesOptions = series.options,
-			data = series.data,
-			graph = series.graph,
-			area = series.area,
-			chart = series.chart,
-			xData = series.xData,
-			yData = series.yData,
-			zData = series.zData,
-			names = series.names,
-			currentShift = (graph && graph.shift) || 0,
-			dataOptions = seriesOptions.data,
-			point,
-			isInTheMiddle,
-			x,
-			i;
-
-		setAnimation(animation, chart);
-
-		// Make graph animate sideways
-		if (shift) {
-			each([graph, area, series.graphNeg, series.areaNeg], function (shape) {
-				if (shape) {
-					shape.shift = currentShift + 1;
-				}
-			});
-		}
-		if (area) {
-			area.isArea = true; // needed in animation, both with and without shift
-		}
-		
-		// Optional redraw, defaults to true
-		redraw = pick(redraw, true);
-
-		// Get options and push the point to xData, yData and series.options. In series.generatePoints
-		// the Point instance will be created on demand and pushed to the series.data array.
-		point = { series: series };
-		series.pointClass.prototype.applyOptions.apply(point, [options]);
-		x = point.x;
-
-		// Get the insertion point
-		i = xData.length;
-		if (series.requireSorting && x < xData[i - 1]) {
-			isInTheMiddle = true;
-			while (i && xData[i - 1] > x) {
-				i--;
-			}
-		}
-		
-		xData.splice(i, 0, x);
-		yData.splice(i, 0, series.toYData ? series.toYData(point) : point.y);
-		zData.splice(i, 0, point.z);
-		if (names) {
-			names[x] = point.name;
-		}
-		dataOptions.splice(i, 0, options);
-
-		if (isInTheMiddle) {
-			series.data.splice(i, 0, null);
-			series.processData();
-		}
-		
-		// Generate points to be added to the legend (#1329) 
-		if (seriesOptions.legendType === 'point') {
-			series.generatePoints();
-		}
-
-		// Shift the first point off the parallel arrays
-		// todo: consider series.removePoint(i) method
-		if (shift) {
-			if (data[0] && data[0].remove) {
-				data[0].remove(false);
-			} else {
-				data.shift();
-				xData.shift();
-				yData.shift();
-				zData.shift();
-				dataOptions.shift();
-			}
-		}
-
-		// redraw
-		series.isDirty = true;
-		series.isDirtyData = true;
-		if (redraw) {
-			series.getAttribs(); // #1937
-			chart.redraw();
-		}
-	},
-
-	/**
-	 * Replace the series data with a new set of data
-	 * @param {Object} data
-	 * @param {Object} redraw
-	 */
-	setData: function (data, redraw) {
-		var series = this,
-			oldData = series.points,
-			options = series.options,
-			chart = series.chart,
-			firstPoint = null,
-			xAxis = series.xAxis,
-			names = xAxis && xAxis.categories && !xAxis.categories.length ? [] : null,
-			i;
-
-		// reset properties
-		series.xIncrement = null;
-		series.pointRange = xAxis && xAxis.categories ? 1 : options.pointRange;
-
-		series.colorCounter = 0; // for series with colorByPoint (#1547)
-		
-		// parallel arrays
-		var xData = [],
-			yData = [],
-			zData = [],
-			dataLength = data ? data.length : [],
-			turboThreshold = pick(options.turboThreshold, 1000),
-			pt,
-			pointArrayMap = series.pointArrayMap,
-			valueCount = pointArrayMap && pointArrayMap.length,
-			hasToYData = !!series.toYData;
-
-		// In turbo mode, only one- or twodimensional arrays of numbers are allowed. The
-		// first value is tested, and we assume that all the rest are defined the same
-		// way. Although the 'for' loops are similar, they are repeated inside each
-		// if-else conditional for max performance.
-		if (turboThreshold && dataLength > turboThreshold) { 
-			
-			// find the first non-null point
-			i = 0;
-			while (firstPoint === null && i < dataLength) {
-				firstPoint = data[i];
-				i++;
-			}
-		
-		
-			if (isNumber(firstPoint)) { // assume all points are numbers
-				var x = pick(options.pointStart, 0),
-					pointInterval = pick(options.pointInterval, 1);
-
-				for (i = 0; i < dataLength; i++) {
-					xData[i] = x;
-					yData[i] = data[i];
-					x += pointInterval;
-				}
-				series.xIncrement = x;
-			} else if (isArray(firstPoint)) { // assume all points are arrays
-				if (valueCount) { // [x, low, high] or [x, o, h, l, c]
-					for (i = 0; i < dataLength; i++) {
-						pt = data[i];
-						xData[i] = pt[0];
-						yData[i] = pt.slice(1, valueCount + 1);
-					}
-				} else { // [x, y]
-					for (i = 0; i < dataLength; i++) {
-						pt = data[i];
-						xData[i] = pt[0];
-						yData[i] = pt[1];
-					}
-				}
-			} else {
-				error(12); // Highcharts expects configs to be numbers or arrays in turbo mode
-			}
-		} else {
-			for (i = 0; i < dataLength; i++) {
-				if (data[i] !== UNDEFINED) { // stray commas in oldIE
-					pt = { series: series };
-					series.pointClass.prototype.applyOptions.apply(pt, [data[i]]);
-					xData[i] = pt.x;
-					yData[i] = hasToYData ? series.toYData(pt) : pt.y;
-					zData[i] = pt.z;
-					if (names && pt.name) {
-						names[pt.x] = pt.name; // #2046
-					}
-				}
-			}
-		}
-		
-		// Forgetting to cast strings to numbers is a common caveat when handling CSV or JSON		
-		if (isString(yData[0])) {
-			error(14, true);
-		} 
-
-		series.data = [];
-		series.options.data = data;
-		series.xData = xData;
-		series.yData = yData;
-		series.zData = zData;
-		series.names = names;
-
-		// destroy old points
-		i = (oldData && oldData.length) || 0;
-		while (i--) {
-			if (oldData[i] && oldData[i].destroy) {
-				oldData[i].destroy();
-			}
-		}
-
-		// reset minRange (#878)
-		if (xAxis) {
-			xAxis.minRange = xAxis.userMinRange;
-		}
-
-		// redraw
-		series.isDirty = series.isDirtyData = chart.isDirtyBox = true;
-		if (pick(redraw, true)) {
-			chart.redraw(false);
-		}
-	},
-
-	/**
-	 * Remove a series and optionally redraw the chart
-	 *
-	 * @param {Boolean} redraw Whether to redraw the chart or wait for an explicit call
-	 * @param {Boolean|Object} animation Whether to apply animation, and optionally animation
-	 *    configuration
-	 */
-
-	remove: function (redraw, animation) {
-		var series = this,
-			chart = series.chart;
-		redraw = pick(redraw, true);
-
-		if (!series.isRemoving) {  /* prevent triggering native event in jQuery
-				(calling the remove function from the remove event) */
-			series.isRemoving = true;
-
-			// fire the event with a default handler of removing the point
-			fireEvent(series, 'remove', null, function () {
-
-
-				// destroy elements
-				series.destroy();
-
-
-				// redraw
-				chart.isDirtyLegend = chart.isDirtyBox = true;
-				chart.linkSeries();
-				
-				if (redraw) {
-					chart.redraw(animation);
-				}
-			});
-
-		}
-		series.isRemoving = false;
-	},
-
-	/**
-	 * Process the data by cropping away unused data points if the series is longer
-	 * than the crop threshold. This saves computing time for lage series.
-	 */
-	processData: function (force) {
-		var series = this,
-			processedXData = series.xData, // copied during slice operation below
-			processedYData = series.yData,
-			dataLength = processedXData.length,
-			croppedData,
-			cropStart = 0,
-			cropped,
-			distance,
-			closestPointRange,
-			xAxis = series.xAxis,
-			i, // loop variable
-			options = series.options,
-			cropThreshold = options.cropThreshold,
-			isCartesian = series.isCartesian;
-
-		// If the series data or axes haven't changed, don't go through this. Return false to pass
-		// the message on to override methods like in data grouping. 
-		if (isCartesian && !series.isDirty && !xAxis.isDirty && !series.yAxis.isDirty && !force) {
-			return false;
-		}
-		
-
-		// optionally filter out points outside the plot area
-		if (isCartesian && series.sorted && (!cropThreshold || dataLength > cropThreshold || series.forceCrop)) {
-			var min = xAxis.min,
-				max = xAxis.max;
-
-			// it's outside current extremes
-			if (processedXData[dataLength - 1] < min || processedXData[0] > max) {
-				processedXData = [];
-				processedYData = [];
-			
-			// only crop if it's actually spilling out
-			} else if (processedXData[0] < min || processedXData[dataLength - 1] > max) {
-				croppedData = this.cropData(series.xData, series.yData, min, max);
-				processedXData = croppedData.xData;
-				processedYData = croppedData.yData;
-				cropStart = croppedData.start;
-				cropped = true;
-			}
-		}
-		
-		
-		// Find the closest distance between processed points
-		for (i = processedXData.length - 1; i >= 0; i--) {
-			distance = processedXData[i] - processedXData[i - 1];
-			if (distance > 0 && (closestPointRange === UNDEFINED || distance < closestPointRange)) {
-				closestPointRange = distance;
-
-			// Unsorted data is not supported by the line tooltip, as well as data grouping and 
-			// navigation in Stock charts (#725) and width calculation of columns (#1900)
-			} else if (distance < 0 && series.requireSorting) {
-				error(15);
-			}
-		}
-
-		// Record the properties
-		series.cropped = cropped; // undefined or true
-		series.cropStart = cropStart;
-		series.processedXData = processedXData;
-		series.processedYData = processedYData;
-
-		if (options.pointRange === null) { // null means auto, as for columns, candlesticks and OHLC
-			series.pointRange = closestPointRange || 1;
-		}
-		series.closestPointRange = closestPointRange;
-		
-	},
-
-	/**
-	 * Iterate over xData and crop values between min and max. Returns object containing crop start/end
-	 * cropped xData with corresponding part of yData, dataMin and dataMax within the cropped range
-	 */
-	cropData: function (xData, yData, min, max) {
-		var dataLength = xData.length,
-			cropStart = 0,
-			cropEnd = dataLength,
-			cropShoulder = pick(this.cropShoulder, 1), // line-type series need one point outside
-			i;
-
-		// iterate up to find slice start
-		for (i = 0; i < dataLength; i++) {
-			if (xData[i] >= min) {
-				cropStart = mathMax(0, i - cropShoulder);
-				break;
-			}
-		}
-
-		// proceed to find slice end
-		for (; i < dataLength; i++) {
-			if (xData[i] > max) {
-				cropEnd = i + cropShoulder;
-				break;
-			}
-		}
-
-		return {
-			xData: xData.slice(cropStart, cropEnd),
-			yData: yData.slice(cropStart, cropEnd),
-			start: cropStart,
-			end: cropEnd
-		};
-	},
-
-
-	/**
-	 * Generate the data point after the data has been processed by cropping away
-	 * unused points and optionally grouped in Highcharts Stock.
-	 */
-	generatePoints: function () {
-		var series = this,
-			options = series.options,
-			dataOptions = options.data,
-			data = series.data,
-			dataLength,
-			processedXData = series.processedXData,
-			processedYData = series.processedYData,
-			pointClass = series.pointClass,
-			processedDataLength = processedXData.length,
-			cropStart = series.cropStart || 0,
-			cursor,
-			hasGroupedData = series.hasGroupedData,
-			point,
-			points = [],
-			i;
-
-		if (!data && !hasGroupedData) {
-			var arr = [];
-			arr.length = dataOptions.length;
-			data = series.data = arr;
-		}
-
-		for (i = 0; i < processedDataLength; i++) {
-			cursor = cropStart + i;
-			if (!hasGroupedData) {
-				if (data[cursor]) {
-					point = data[cursor];
-				} else if (dataOptions[cursor] !== UNDEFINED) { // #970
-					data[cursor] = point = (new pointClass()).init(series, dataOptions[cursor], processedXData[i]);
-				}
-				points[i] = point;
-			} else {
-				// splat the y data in case of ohlc data array
-				points[i] = (new pointClass()).init(series, [processedXData[i]].concat(splat(processedYData[i])));
-			}
-		}
-
-		// Hide cropped-away points - this only runs when the number of points is above cropThreshold, or when
-		// swithching view from non-grouped data to grouped data (#637)	
-		if (data && (processedDataLength !== (dataLength = data.length) || hasGroupedData)) {
-			for (i = 0; i < dataLength; i++) {
-				if (i === cropStart && !hasGroupedData) { // when has grouped data, clear all points
-					i += processedDataLength;
-				}
-				if (data[i]) {
-					data[i].destroyElements();
-					data[i].plotX = UNDEFINED; // #1003
-				}
-			}
-		}
-
-		series.data = data;
-		series.points = points;
-	},
-
-	/**
-	 * Adds series' points value to corresponding stack
-	 */
-	setStackedPoints: function () {
-		if (!this.options.stacking || (this.visible !== true && this.chart.options.chart.ignoreHiddenSeries !== false)) {
-			return;
-		}
-
-		var series = this,
-			xData = series.processedXData,
-			yData = series.processedYData,
-			stackedYData = [],
-			yDataLength = yData.length,
-			seriesOptions = series.options,
-			threshold = seriesOptions.threshold,
-			stackOption = seriesOptions.stack,
-			stacking = seriesOptions.stacking,
-			stackKey = series.stackKey,
-			negKey = '-' + stackKey,
-			negStacks = series.negStacks,
-			yAxis = series.yAxis,
-			stacks = yAxis.stacks,
-			oldStacks = yAxis.oldStacks,
-			isNegative,
-			stack,
-			other,
-			key,
-			i,
-			x,
-			y;
-
-		// loop over the non-null y values and read them into a local array
-		for (i = 0; i < yDataLength; i++) {
-			x = xData[i];
-			y = yData[i];
-
-			// Read stacked values into a stack based on the x value,
-			// the sign of y and the stack key. Stacking is also handled for null values (#739)
-			isNegative = negStacks && y < threshold;
-			key = isNegative ? negKey : stackKey;
-
-			// Create empty object for this stack if it doesn't exist yet
-			if (!stacks[key]) {
-				stacks[key] = {};
-			}
-
-			// Initialize StackItem for this x
-			if (!stacks[key][x]) {
-				if (oldStacks[key] && oldStacks[key][x]) {
-					stacks[key][x] = oldStacks[key][x];
-					stacks[key][x].total = null;
-				} else {
-					stacks[key][x] = new StackItem(yAxis, yAxis.options.stackLabels, isNegative, x, stackOption, stacking);
-				}
-			}
-
-			// If the StackItem doesn't exist, create it first
-			stack = stacks[key][x];
-			stack.points[series.index] = [stack.cum || 0];
-
-			// Add value to the stack total
-			if (stacking === 'percent') {
-				
-				// Percent stacked column, totals are the same for the positive and negative stacks
-				other = isNegative ? stackKey : negKey;
-				if (negStacks && stacks[other] && stacks[other][x]) {
-					other = stacks[other][x];
-					stack.total = other.total = mathMax(other.total, stack.total) + mathAbs(y) || 0;
-
-				// Percent stacked areas					
-				} else {
-					stack.total += mathAbs(y) || 0;
-				}
-			} else {
-				stack.total += y || 0;
-			}
-
-			stack.cum = (stack.cum || 0) + (y || 0);
-
-			stack.points[series.index].push(stack.cum);
-			stackedYData[i] = stack.cum;
-
-		}
-
-		if (stacking === 'percent') {
-			yAxis.usePercentage = true;
-		}
-
-		this.stackedYData = stackedYData; // To be used in getExtremes
-		
-		// Reset old stacks
-		yAxis.oldStacks = {};
-	},
-
-	/**
-	 * Iterate over all stacks and compute the absolute values to percent
-	 */
-	setPercentStacks: function () {
-		var series = this,
-			stackKey = series.stackKey,
-			stacks = series.yAxis.stacks;
-		
-		each([stackKey, '-' + stackKey], function (key) {
-			var i = series.xData.length,
-				x,
-				stack,
-				pointExtremes,
-				totalFactor;
-
-			while (i--) {
-				x = series.xData[i];
-				stack = stacks[key] && stacks[key][x];
-				pointExtremes = stack && stack.points[series.index];
-				if (pointExtremes) {
-					totalFactor = stack.total ? 100 / stack.total : 0;
-					pointExtremes[0] = correctFloat(pointExtremes[0] * totalFactor); // Y bottom value
-					pointExtremes[1] = correctFloat(pointExtremes[1] * totalFactor); // Y value
-					series.stackedYData[i] = pointExtremes[1];
-				}
-			}
-		});
-	},
-
-	/**
-	 * Calculate Y extremes for visible data
-	 */
-	getExtremes: function () {
-		var xAxis = this.xAxis,
-			yAxis = this.yAxis,
-			xData = this.processedXData,
-			yData = this.stackedYData || this.processedYData,
-			yDataLength = yData.length,
-			activeYData = [],
-			activeCounter = 0,
-			xExtremes = xAxis.getExtremes(), // #2117, need to compensate for log X axis
-			xMin = xExtremes.min,
-			xMax = xExtremes.max,
-			validValue,
-			withinRange,
-			dataMin,
-			dataMax,
-			x,
-			y,
-			i,
-			j;
-
-		for (i = 0; i < yDataLength; i++) {
-			
-			x = xData[i];
-			y = yData[i];
-
-			// For points within the visible range, including the first point outside the
-			// visible range, consider y extremes
-			validValue = y !== null && y !== UNDEFINED && (!yAxis.isLog || (y.length || y > 0));
-			withinRange = this.getExtremesFromAll || this.cropped || ((xData[i + 1] || x) >= xMin && 
-				(xData[i - 1] || x) <= xMax);
-
-			if (validValue && withinRange) {
-
-				j = y.length;
-				if (j) { // array, like ohlc or range data
-					while (j--) {
-						if (y[j] !== null) {
-							activeYData[activeCounter++] = y[j];
-						}
-					}
-				} else {
-					activeYData[activeCounter++] = y;
-				}
-			}
-		}
-		this.dataMin = pick(dataMin, arrayMin(activeYData));
-		this.dataMax = pick(dataMax, arrayMax(activeYData));
-	},
-
-	/**
-	 * Translate data points from raw data values to chart specific positioning data
-	 * needed later in drawPoints, drawGraph and drawTracker.
-	 */
-	translate: function () {
-		if (!this.processedXData) { // hidden series
-			this.processData();
-		}
-		this.generatePoints();
-		var series = this,
-			options = series.options,
-			stacking = options.stacking,
-			xAxis = series.xAxis,
-			categories = xAxis.categories,
-			yAxis = series.yAxis,
-			points = series.points,
-			dataLength = points.length,
-			hasModifyValue = !!series.modifyValue,
-			i,
-			pointPlacement = options.pointPlacement,
-			dynamicallyPlaced = pointPlacement === 'between' || isNumber(pointPlacement),
-			threshold = options.threshold;
-
-		
-		// Translate each point
-		for (i = 0; i < dataLength; i++) {
-			var point = points[i],
-				xValue = point.x,
-				yValue = point.y,
-				yBottom = point.low,
-				stack = yAxis.stacks[(series.negStacks && yValue < threshold ? '-' : '') + series.stackKey],
-				pointStack,
-				stackValues;
-
-			// Discard disallowed y values for log axes
-			if (yAxis.isLog && yValue <= 0) {
-				point.y = yValue = null;
-			}
-			
-			// Get the plotX translation
-			point.plotX = xAxis.translate(xValue, 0, 0, 0, 1, pointPlacement, this.type === 'flags'); // Math.round fixes #591
-			
-
-			// Calculate the bottom y value for stacked series
-			if (stacking && series.visible && stack && stack[xValue]) {
-
-				pointStack = stack[xValue];
-				stackValues = pointStack.points[series.index];
-				yBottom = stackValues[0];
-				yValue = stackValues[1];
-
-				if (yBottom === 0) {
-					yBottom = pick(threshold, yAxis.min);
-				}
-				if (yAxis.isLog && yBottom <= 0) { // #1200, #1232
-					yBottom = null;
-				}
-
-				point.percentage = stacking === 'percent' && yValue;
-				point.total = point.stackTotal = pointStack.total;
-				point.stackY = yValue;
-
-				// Place the stack label
-				pointStack.setOffset(series.pointXOffset || 0, series.barW || 0);
-				
-			}
-
-			// Set translated yBottom or remove it
-			point.yBottom = defined(yBottom) ? 
-				yAxis.translate(yBottom, 0, 1, 0, 1) :
-				null;
-				
-			// general hook, used for Highstock compare mode
-			if (hasModifyValue) {
-				yValue = series.modifyValue(yValue, point);
-			}
-
-			// Set the the plotY value, reset it for redraws
-			point.plotY = (typeof yValue === 'number' && yValue !== Infinity) ? 
-				//mathRound(yAxis.translate(yValue, 0, 1, 0, 1) * 10) / 10 : // Math.round fixes #591
-				yAxis.translate(yValue, 0, 1, 0, 1) : 
-				UNDEFINED;
-			
-			// Set client related positions for mouse tracking
-			point.clientX = dynamicallyPlaced ? xAxis.translate(xValue, 0, 0, 0, 1) : point.plotX; // #1514
-				
-			point.negative = point.y < (threshold || 0);
-
-			// some API data
-			point.category = categories && categories[point.x] !== UNDEFINED ?
-				categories[point.x] : point.x;
-
-
-		}
-
-		// now that we have the cropped data, build the segments
-		series.getSegments();
-	},
-	/**
-	 * Memoize tooltip texts and positions
-	 */
-	setTooltipPoints: function (renew) {
-		var series = this,
-			points = [],
-			pointsLength,
-			low,
-			high,
-			xAxis = series.xAxis,
-			xExtremes = xAxis && xAxis.getExtremes(),
-			axisLength = xAxis ? (xAxis.tooltipLen || xAxis.len) : series.chart.plotSizeX, // tooltipLen and tooltipPosName used in polar
-			point,
-			pointX,
-			nextPoint,
-			i,
-			tooltipPoints = []; // a lookup array for each pixel in the x dimension
-
-		// don't waste resources if tracker is disabled
-		if (series.options.enableMouseTracking === false) {
-			return;
-		}
-
-		// renew
-		if (renew) {
-			series.tooltipPoints = null;
-		}
-
-		// concat segments to overcome null values
-		each(series.segments || series.points, function (segment) {
-			points = points.concat(segment);
-		});
-
-		// Reverse the points in case the X axis is reversed
-		if (xAxis && xAxis.reversed) {
-			points = points.reverse();
-		}
-
-		// Polar needs additional shaping
-		if (series.orderTooltipPoints) {
-			series.orderTooltipPoints(points);
-		}
-
-		// Assign each pixel position to the nearest point
-		pointsLength = points.length;
-		for (i = 0; i < pointsLength; i++) {
-			point = points[i];
-			pointX = point.x;
-			if (pointX >= xExtremes.min && pointX <= xExtremes.max) { // #1149
-				nextPoint = points[i + 1];
-				
-				// Set this range's low to the last range's high plus one
-				low = high === UNDEFINED ? 0 : high + 1;
-				// Now find the new high
-				high = points[i + 1] ?
-					mathMin(mathMax(0, mathFloor( // #2070
-						(point.clientX + (nextPoint ? (nextPoint.wrappedClientX || nextPoint.clientX) : axisLength)) / 2
-					)), axisLength) :
-					axisLength;
-
-				while (low >= 0 && low <= high) {
-					tooltipPoints[low++] = point;
-				}
-			}
-		}
-		series.tooltipPoints = tooltipPoints;
-	},
-
-	/**
-	 * Format the header of the tooltip
-	 */
-	tooltipHeaderFormatter: function (point) {
-		var series = this,
-			tooltipOptions = series.tooltipOptions,
-			xDateFormat = tooltipOptions.xDateFormat,
-			dateTimeLabelFormats = tooltipOptions.dateTimeLabelFormats,
-			xAxis = series.xAxis,
-			isDateTime = xAxis && xAxis.options.type === 'datetime',
-			headerFormat = tooltipOptions.headerFormat,
-			closestPointRange = xAxis && xAxis.closestPointRange,
-			n;
-			
-		// Guess the best date format based on the closest point distance (#568)
-		if (isDateTime && !xDateFormat) {
-			if (closestPointRange) {
-				for (n in timeUnits) {
-					if (timeUnits[n] >= closestPointRange) {
-						xDateFormat = dateTimeLabelFormats[n];
-						break;
-					}
-				}
-			} else {
-				xDateFormat = dateTimeLabelFormats.day;
-			}
-		}
-		
-		// Insert the header date format if any
-		if (isDateTime && xDateFormat && isNumber(point.key)) {
-			headerFormat = headerFormat.replace('{point.key}', '{point.key:' + xDateFormat + '}');
-		}
-		
-		return format(headerFormat, {
-			point: point,
-			series: series
-		});
-	},
-
-	/**
-	 * Series mouse over handler
-	 */
-	onMouseOver: function () {
-		var series = this,
-			chart = series.chart,
-			hoverSeries = chart.hoverSeries;
-
-		// set normal state to previous series
-		if (hoverSeries && hoverSeries !== series) {
-			hoverSeries.onMouseOut();
-		}
-
-		// trigger the event, but to save processing time,
-		// only if defined
-		if (series.options.events.mouseOver) {
-			fireEvent(series, 'mouseOver');
-		}
-
-		// hover this
-		series.setState(HOVER_STATE);
-		chart.hoverSeries = series;
-	},
-
-	/**
-	 * Series mouse out handler
-	 */
-	onMouseOut: function () {
-		// trigger the event only if listeners exist
-		var series = this,
-			options = series.options,
-			chart = series.chart,
-			tooltip = chart.tooltip,
-			hoverPoint = chart.hoverPoint;
-
-		// trigger mouse out on the point, which must be in this series
-		if (hoverPoint) {
-			hoverPoint.onMouseOut();
-		}
-
-		// fire the mouse out event
-		if (series && options.events.mouseOut) {
-			fireEvent(series, 'mouseOut');
-		}
-
-
-		// hide the tooltip
-		if (tooltip && !options.stickyTracking && (!tooltip.shared || series.noSharedTooltip)) {
-			tooltip.hide();
-		}
-
-		// set normal state
-		series.setState();
-		chart.hoverSeries = null;
-	},
-
-	/**
-	 * Animate in the series
-	 */
-	animate: function (init) {
-		var series = this,
-			chart = series.chart,
-			renderer = chart.renderer,
-			clipRect,
-			markerClipRect,
-			animation = series.options.animation,
-			clipBox = chart.clipBox,
-			inverted = chart.inverted,
-			sharedClipKey;
-
-		// Animation option is set to true
-		if (animation && !isObject(animation)) {
-			animation = defaultPlotOptions[series.type].animation;
-		}
-		sharedClipKey = '_sharedClip' + animation.duration + animation.easing;
-
-		// Initialize the animation. Set up the clipping rectangle.
-		if (init) { 
-			
-			// If a clipping rectangle with the same properties is currently present in the chart, use that. 
-			clipRect = chart[sharedClipKey];
-			markerClipRect = chart[sharedClipKey + 'm'];
-			if (!clipRect) {
-				chart[sharedClipKey] = clipRect = renderer.clipRect(
-					extend(clipBox, { width: 0 })
-				);
-				
-				chart[sharedClipKey + 'm'] = markerClipRect = renderer.clipRect(
-					-99, // include the width of the first marker
-					inverted ? -chart.plotLeft : -chart.plotTop, 
-					99,
-					inverted ? chart.chartWidth : chart.chartHeight
-				);
-			}
-			series.group.clip(clipRect);
-			series.markerGroup.clip(markerClipRect);
-			series.sharedClipKey = sharedClipKey;
-
-		// Run the animation
-		} else { 
-			clipRect = chart[sharedClipKey];
-			if (clipRect) {
-				clipRect.animate({
-					width: chart.plotSizeX
-				}, animation);
-				chart[sharedClipKey + 'm'].animate({
-					width: chart.plotSizeX + 99
-				}, animation);
-			}
-
-			// Delete this function to allow it only once
-			series.animate = null;
-			
-			// Call the afterAnimate function on animation complete (but don't overwrite the animation.complete option
-			// which should be available to the user).
-			series.animationTimeout = setTimeout(function () {
-				series.afterAnimate();
-			}, animation.duration);
-		}
-	},
-	
-	/**
-	 * This runs after animation to land on the final plot clipping
-	 */
-	afterAnimate: function () {
-		var chart = this.chart,
-			sharedClipKey = this.sharedClipKey,
-			group = this.group;
-			
-		if (group && this.options.clip !== false) {
-			group.clip(chart.clipRect);
-			this.markerGroup.clip(); // no clip
-		}
-		
-		// Remove the shared clipping rectancgle when all series are shown		
-		setTimeout(function () {
-			if (sharedClipKey && chart[sharedClipKey]) {
-				chart[sharedClipKey] = chart[sharedClipKey].destroy();
-				chart[sharedClipKey + 'm'] = chart[sharedClipKey + 'm'].destroy();
-			}
-		}, 100);
-	},
-
-	/**
-	 * Draw the markers
-	 */
-	drawPoints: function () {
-		var series = this,
-			pointAttr,
-			points = series.points,
-			chart = series.chart,
-			plotX,
-			plotY,
-			i,
-			point,
-			radius,
-			symbol,
-			isImage,
-			graphic,
-			options = series.options,
-			seriesMarkerOptions = options.marker,
-			pointMarkerOptions,
-			enabled,
-			isInside,
-			markerGroup = series.markerGroup;
-
-		if (seriesMarkerOptions.enabled || series._hasPointMarkers) {
-			
-			i = points.length;
-			while (i--) {
-				point = points[i];
-				plotX = mathFloor(point.plotX); // #1843
-				plotY = point.plotY;
-				graphic = point.graphic;
-				pointMarkerOptions = point.marker || {};
-				enabled = (seriesMarkerOptions.enabled && pointMarkerOptions.enabled === UNDEFINED) || pointMarkerOptions.enabled;
-				isInside = chart.isInsidePlot(mathRound(plotX), plotY, chart.inverted); // #1858
-				
-				// only draw the point if y is defined
-				if (enabled && plotY !== UNDEFINED && !isNaN(plotY) && point.y !== null) {
-
-					// shortcuts
-					pointAttr = point.pointAttr[point.selected ? SELECT_STATE : NORMAL_STATE];
-					radius = pointAttr.r;
-					symbol = pick(pointMarkerOptions.symbol, series.symbol);
-					isImage = symbol.indexOf('url') === 0;
-
-					if (graphic) { // update
-						graphic
-							.attr({ // Since the marker group isn't clipped, each individual marker must be toggled
-								visibility: isInside ? (hasSVG ? 'inherit' : VISIBLE) : HIDDEN
-							})
-							.animate(extend({
-								x: plotX - radius,
-								y: plotY - radius
-							}, graphic.symbolName ? { // don't apply to image symbols #507
-								width: 2 * radius,
-								height: 2 * radius
-							} : {}));
-					} else if (isInside && (radius > 0 || isImage)) {
-						point.graphic = graphic = chart.renderer.symbol(
-							symbol,
-							plotX - radius,
-							plotY - radius,
-							2 * radius,
-							2 * radius
-						)
-						.attr(pointAttr)
-						.add(markerGroup);
-					}
-					
-				} else if (graphic) {
-					point.graphic = graphic.destroy(); // #1269
-				}
-			}
-		}
-
-	},
-
-	/**
-	 * Convert state properties from API naming conventions to SVG attributes
-	 *
-	 * @param {Object} options API options object
-	 * @param {Object} base1 SVG attribute object to inherit from
-	 * @param {Object} base2 Second level SVG attribute object to inherit from
-	 */
-	convertAttribs: function (options, base1, base2, base3) {
-		var conversion = this.pointAttrToOptions,
-			attr,
-			option,
-			obj = {};
-
-		options = options || {};
-		base1 = base1 || {};
-		base2 = base2 || {};
-		base3 = base3 || {};
-
-		for (attr in conversion) {
-			option = conversion[attr];
-			obj[attr] = pick(options[option], base1[attr], base2[attr], base3[attr]);
-		}
-		return obj;
-	},
-
-	/**
-	 * Get the state attributes. Each series type has its own set of attributes
-	 * that are allowed to change on a point's state change. Series wide attributes are stored for
-	 * all series, and additionally point specific attributes are stored for all
-	 * points with individual marker options. If such options are not defined for the point,
-	 * a reference to the series wide attributes is stored in point.pointAttr.
-	 */
-	getAttribs: function () {
-		var series = this,
-			seriesOptions = series.options,
-			normalOptions = defaultPlotOptions[series.type].marker ? seriesOptions.marker : seriesOptions,
-			stateOptions = normalOptions.states,
-			stateOptionsHover = stateOptions[HOVER_STATE],
-			pointStateOptionsHover,
-			seriesColor = series.color,
-			normalDefaults = {
-				stroke: seriesColor,
-				fill: seriesColor
-			},
-			points = series.points || [], // #927
-			i,
-			point,
-			seriesPointAttr = [],
-			pointAttr,
-			pointAttrToOptions = series.pointAttrToOptions,
-			hasPointSpecificOptions,
-			negativeColor = seriesOptions.negativeColor,
-			defaultLineColor = normalOptions.lineColor,
-			key;
-
-		// series type specific modifications
-		if (seriesOptions.marker) { // line, spline, area, areaspline, scatter
-
-			// if no hover radius is given, default to normal radius + 2
-			stateOptionsHover.radius = stateOptionsHover.radius || normalOptions.radius + 2;
-			stateOptionsHover.lineWidth = stateOptionsHover.lineWidth || normalOptions.lineWidth + 1;
-			
-		} else { // column, bar, pie
-
-			// if no hover color is given, brighten the normal color
-			stateOptionsHover.color = stateOptionsHover.color ||
-				Color(stateOptionsHover.color || seriesColor)
-					.brighten(stateOptionsHover.brightness).get();
-		}
-
-		// general point attributes for the series normal state
-		seriesPointAttr[NORMAL_STATE] = series.convertAttribs(normalOptions, normalDefaults);
-
-		// HOVER_STATE and SELECT_STATE states inherit from normal state except the default radius
-		each([HOVER_STATE, SELECT_STATE], function (state) {
-			seriesPointAttr[state] =
-					series.convertAttribs(stateOptions[state], seriesPointAttr[NORMAL_STATE]);
-		});
-
-		// set it
-		series.pointAttr = seriesPointAttr;
-
-
-		// Generate the point-specific attribute collections if specific point
-		// options are given. If not, create a referance to the series wide point
-		// attributes
-		i = points.length;
-		while (i--) {
-			point = points[i];
-			normalOptions = (point.options && point.options.marker) || point.options;
-			if (normalOptions && normalOptions.enabled === false) {
-				normalOptions.radius = 0;
-			}
-			
-			if (point.negative && negativeColor) {
-				point.color = point.fillColor = negativeColor;
-			}
-			
-			hasPointSpecificOptions = seriesOptions.colorByPoint || point.color; // #868
-
-			// check if the point has specific visual options
-			if (point.options) {
-				for (key in pointAttrToOptions) {
-					if (defined(normalOptions[pointAttrToOptions[key]])) {
-						hasPointSpecificOptions = true;
-					}
-				}
-			}
-
-			// a specific marker config object is defined for the individual point:
-			// create it's own attribute collection
-			if (hasPointSpecificOptions) {
-				normalOptions = normalOptions || {};
-				pointAttr = [];
-				stateOptions = normalOptions.states || {}; // reassign for individual point
-				pointStateOptionsHover = stateOptions[HOVER_STATE] = stateOptions[HOVER_STATE] || {};
-
-				// Handle colors for column and pies
-				if (!seriesOptions.marker) { // column, bar, point
-					// if no hover color is given, brighten the normal color
-					pointStateOptionsHover.color =
-						Color(pointStateOptionsHover.color || point.color)
-							.brighten(pointStateOptionsHover.brightness ||
-								stateOptionsHover.brightness).get();
-
-				}
-
-				// normal point state inherits series wide normal state
-				pointAttr[NORMAL_STATE] = series.convertAttribs(extend({
-					color: point.color, // #868
-					fillColor: point.color, // Individual point color or negative color markers (#2219)
-					lineColor: defaultLineColor === null ? point.color : UNDEFINED // Bubbles take point color, line markers use white
-				}, normalOptions), seriesPointAttr[NORMAL_STATE]);
-
-				// inherit from point normal and series hover
-				pointAttr[HOVER_STATE] = series.convertAttribs(
-					stateOptions[HOVER_STATE],
-					seriesPointAttr[HOVER_STATE],
-					pointAttr[NORMAL_STATE]
-				);
-				
-				// inherit from point normal and series hover
-				pointAttr[SELECT_STATE] = series.convertAttribs(
-					stateOptions[SELECT_STATE],
-					seriesPointAttr[SELECT_STATE],
-					pointAttr[NORMAL_STATE]
-				);
-
-
-			// no marker config object is created: copy a reference to the series-wide
-			// attribute collection
-			} else {
-				pointAttr = seriesPointAttr;
-			}
-
-			point.pointAttr = pointAttr;
-
-		}
-
-	},
-	/**
-	 * Update the series with a new set of options
-	 */
-	update: function (newOptions, redraw) {
-		var chart = this.chart,
-			// must use user options when changing type because this.options is merged
-			// in with type specific plotOptions
-			oldOptions = this.userOptions,
-			oldType = this.type,
-			proto = seriesTypes[oldType].prototype,
-			n;
-
-		// Do the merge, with some forced options
-		newOptions = merge(oldOptions, {
-			animation: false,
-			index: this.index,
-			pointStart: this.xData[0] // when updating after addPoint
-		}, { data: this.options.data }, newOptions);
-
-		// Destroy the series and reinsert methods from the type prototype
-		this.remove(false);
-		for (n in proto) { // Overwrite series-type specific methods (#2270)
-			if (proto.hasOwnProperty(n)) {
-				this[n] = UNDEFINED;
-			}
-		}
-		extend(this, seriesTypes[newOptions.type || oldType].prototype);
-		
-
-		this.init(chart, newOptions);
-		if (pick(redraw, true)) {
-			chart.redraw(false);
-		}
-	},
-
-	/**
-	 * Clear DOM objects and free up memory
-	 */
-	destroy: function () {
-		var series = this,
-			chart = series.chart,
-			issue134 = /AppleWebKit\/533/.test(userAgent),
-			destroy,
-			i,
-			data = series.data || [],
-			point,
-			prop,
-			axis;
-
-		// add event hook
-		fireEvent(series, 'destroy');
-
-		// remove all events
-		removeEvent(series);
-		
-		// erase from axes
-		each(['xAxis', 'yAxis'], function (AXIS) {
-			axis = series[AXIS];
-			if (axis) {
-				erase(axis.series, series);
-				axis.isDirty = axis.forceRedraw = true;
-				axis.stacks = {}; // Rebuild stacks when updating (#2229)
-			}
-		});
-
-		// remove legend items
-		if (series.legendItem) {
-			series.chart.legend.destroyItem(series);
-		}
-
-		// destroy all points with their elements
-		i = data.length;
-		while (i--) {
-			point = data[i];
-			if (point && point.destroy) {
-				point.destroy();
-			}
-		}
-		series.points = null;
-
-		// Clear the animation timeout if we are destroying the series during initial animation
-		clearTimeout(series.animationTimeout);
-
-		// destroy all SVGElements associated to the series
-		each(['area', 'graph', 'dataLabelsGroup', 'group', 'markerGroup', 'tracker',
-				'graphNeg', 'areaNeg', 'posClip', 'negClip'], function (prop) {
-			if (series[prop]) {
-
-				// issue 134 workaround
-				destroy = issue134 && prop === 'group' ?
-					'hide' :
-					'destroy';
-
-				series[prop][destroy]();
-			}
-		});
-
-		// remove from hoverSeries
-		if (chart.hoverSeries === series) {
-			chart.hoverSeries = null;
-		}
-		erase(chart.series, series);
-
-		// clear all members
-		for (prop in series) {
-			delete series[prop];
-		}
-	},
-
-	/**
-	 * Draw the data labels
-	 */
-	drawDataLabels: function () {
-		
-		var series = this,
-			seriesOptions = series.options,
-			options = seriesOptions.dataLabels,
-			points = series.points,
-			pointOptions,
-			generalOptions,
-			str,
-			dataLabelsGroup;
-		
-		if (options.enabled || series._hasPointLabels) {
-						
-			// Process default alignment of data labels for columns
-			if (series.dlProcessOptions) {
-				series.dlProcessOptions(options);
-			}
-
-			// Create a separate group for the data labels to avoid rotation
-			dataLabelsGroup = series.plotGroup(
-				'dataLabelsGroup', 
-				'data-labels', 
-				series.visible ? VISIBLE : HIDDEN, 
-				options.zIndex || 6
-			);
-			
-			// Make the labels for each point
-			generalOptions = options;
-			each(points, function (point) {
-				
-				var enabled,
-					dataLabel = point.dataLabel,
-					labelConfig,
-					attr,
-					name,
-					rotation,
-					connector = point.connector,
-					isNew = true;
-				
-				// Determine if each data label is enabled
-				pointOptions = point.options && point.options.dataLabels;
-				enabled = pick(pointOptions && pointOptions.enabled, generalOptions.enabled); // #2282
-				
-				
-				// If the point is outside the plot area, destroy it. #678, #820
-				if (dataLabel && !enabled) {
-					point.dataLabel = dataLabel.destroy();
-				
-				// Individual labels are disabled if the are explicitly disabled 
-				// in the point options, or if they fall outside the plot area.
-				} else if (enabled) {
-					
-					// Create individual options structure that can be extended without 
-					// affecting others
-					options = merge(generalOptions, pointOptions);
-
-					rotation = options.rotation;
-					
-					// Get the string
-					labelConfig = point.getLabelConfig();
-					str = options.format ?
-						format(options.format, labelConfig) : 
-						options.formatter.call(labelConfig, options);
-					
-					// Determine the color
-					options.style.color = pick(options.color, options.style.color, series.color, 'black');
-	
-					
-					// update existing label
-					if (dataLabel) {
-						
-						if (defined(str)) {
-							dataLabel
-								.attr({
-									text: str
-								});
-							isNew = false;
-						
-						} else { // #1437 - the label is shown conditionally
-							point.dataLabel = dataLabel = dataLabel.destroy();
-							if (connector) {
-								point.connector = connector.destroy();
-							}
-						}
-						
-					// create new label
-					} else if (defined(str)) {
-						attr = {
-							//align: align,
-							fill: options.backgroundColor,
-							stroke: options.borderColor,
-							'stroke-width': options.borderWidth,
-							r: options.borderRadius || 0,
-							rotation: rotation,
-							padding: options.padding,
-							zIndex: 1
-						};
-						// Remove unused attributes (#947)
-						for (name in attr) {
-							if (attr[name] === UNDEFINED) {
-								delete attr[name];
-							}
-						}
-						
-						dataLabel = point.dataLabel = series.chart.renderer[rotation ? 'text' : 'label']( // labels don't support rotation
-							str,
-							0,
-							-999,
-							null,
-							null,
-							null,
-							options.useHTML
-						)
-						.attr(attr)
-						.css(options.style)
-						.add(dataLabelsGroup)
-						.shadow(options.shadow);
-						
-					}
-					
-					if (dataLabel) {
-						// Now the data label is created and placed at 0,0, so we need to align it
-						series.alignDataLabel(point, dataLabel, options, null, isNew);
-					}
-				}
-			});
-		}
-	},
-	
-	/**
-	 * Align each individual data label
-	 */
-	alignDataLabel: function (point, dataLabel, options, alignTo, isNew) {
-		var chart = this.chart,
-			inverted = chart.inverted,
-			plotX = pick(point.plotX, -999),
-			plotY = pick(point.plotY, -999),
-			bBox = dataLabel.getBBox(),
-			visible = this.visible && chart.isInsidePlot(point.plotX, point.plotY, inverted),
-			alignAttr; // the final position;
-				
-		if (visible) {
-
-			// The alignment box is a singular point
-			alignTo = extend({
-				x: inverted ? chart.plotWidth - plotY : plotX,
-				y: mathRound(inverted ? chart.plotHeight - plotX : plotY),
-				width: 0,
-				height: 0
-			}, alignTo);
-			
-			// Add the text size for alignment calculation
-			extend(options, {
-				width: bBox.width,
-				height: bBox.height
-			});
-
-			// Allow a hook for changing alignment in the last moment, then do the alignment
-			if (options.rotation) { // Fancy box alignment isn't supported for rotated text
-				alignAttr = {
-					align: options.align,
-					x: alignTo.x + options.x + alignTo.width / 2,
-					y: alignTo.y + options.y + alignTo.height / 2
-				};
-				dataLabel[isNew ? 'attr' : 'animate'](alignAttr);
-			} else {
-				dataLabel.align(options, null, alignTo);
-				alignAttr = dataLabel.alignAttr;
-
-				// Handle justify or crop
-				if (pick(options.overflow, 'justify') === 'justify') { // docs: overflow: justify, also crop only applies when not justify
-					this.justifyDataLabel(dataLabel, options, alignAttr, bBox, alignTo, isNew);
-				
-				} else if (pick(options.crop, true)) {
-					// Now check that the data label is within the plot area
-					visible = chart.isInsidePlot(alignAttr.x, alignAttr.y) && chart.isInsidePlot(alignAttr.x + bBox.width, alignAttr.y + bBox.height);
-				
-				}
-			}		
-		}
-
-		// Show or hide based on the final aligned position
-		if (!visible) {
-			dataLabel.attr({ y: -999 });
-		}
-				
-	},
-	
-	/**
-	 * If data labels fall partly outside the plot area, align them back in, in a way that
-	 * doesn't hide the point.
-	 */
-	justifyDataLabel: function (dataLabel, options, alignAttr, bBox, alignTo, isNew) {
-		var chart = this.chart,
-			align = options.align,
-			verticalAlign = options.verticalAlign,
-			off,
-			justified;
-
-		// Off left
-		off = alignAttr.x;
-		if (off < 0) {
-			if (align === 'right') {
-				options.align = 'left';
-			} else {
-				options.x = -off;
-			}
-			justified = true;
-		}
-
-		// Off right
-		off = alignAttr.x + bBox.width;
-		if (off > chart.plotWidth) {
-			if (align === 'left') {
-				options.align = 'right';
-			} else {
-				options.x = chart.plotWidth - off;
-			}
-			justified = true;
-		}
-
-		// Off top
-		off = alignAttr.y;
-		if (off < 0) {
-			if (verticalAlign === 'bottom') {
-				options.verticalAlign = 'top';
-			} else {
-				options.y = -off;
-			}
-			justified = true;
-		}
-
-		// Off bottom
-		off = alignAttr.y + bBox.height;
-		if (off > chart.plotHeight) {
-			if (verticalAlign === 'top') {
-				options.verticalAlign = 'bottom';
-			} else {
-				options.y = chart.plotHeight - off;
-			}
-			justified = true;
-		}
-		
-		if (justified) {
-			dataLabel.placed = !isNew;
-			dataLabel.align(options, null, alignTo);
-		}
-	},
-	
-	/**
-	 * Return the graph path of a segment
-	 */
-	getSegmentPath: function (segment) {		
-		var series = this,
-			segmentPath = [],
-			step = series.options.step;
-			
-		// build the segment line
-		each(segment, function (point, i) {
-			
-			var plotX = point.plotX,
-				plotY = point.plotY,
-				lastPoint;
-
-			if (series.getPointSpline) { // generate the spline as defined in the SplineSeries object
-				segmentPath.push.apply(segmentPath, series.getPointSpline(segment, point, i));
-
-			} else {
-
-				// moveTo or lineTo
-				segmentPath.push(i ? L : M);
-
-				// step line?
-				if (step && i) {
-					lastPoint = segment[i - 1];
-					if (step === 'right') {
-						segmentPath.push(
-							lastPoint.plotX,
-							plotY
-						);
-						
-					} else if (step === 'center') {
-						segmentPath.push(
-							(lastPoint.plotX + plotX) / 2,
-							lastPoint.plotY,
-							(lastPoint.plotX + plotX) / 2,
-							plotY
-						);
-						
-					} else {
-						segmentPath.push(
-							plotX,
-							lastPoint.plotY
-						);
-					}
-				}
-
-				// normal line to next point
-				segmentPath.push(
-					point.plotX,
-					point.plotY
-				);
-			}
-		});
-		
-		return segmentPath;
-	},
-
-	/**
-	 * Get the graph path
-	 */
-	getGraphPath: function () {
-		var series = this,
-			graphPath = [],
-			segmentPath,
-			singlePoints = []; // used in drawTracker
-
-		// Divide into segments and build graph and area paths
-		each(series.segments, function (segment) {
-			
-			segmentPath = series.getSegmentPath(segment);
-			
-			// add the segment to the graph, or a single point for tracking
-			if (segment.length > 1) {
-				graphPath = graphPath.concat(segmentPath);
-			} else {
-				singlePoints.push(segment[0]);
-			}
-		});
-
-		// Record it for use in drawGraph and drawTracker, and return graphPath
-		series.singlePoints = singlePoints;
-		series.graphPath = graphPath;
-		
-		return graphPath;
-		
-	},
-	
-	/**
-	 * Draw the actual graph
-	 */
-	drawGraph: function () {
-		var series = this,
-			options = this.options,
-			props = [['graph', options.lineColor || this.color]],
-			lineWidth = options.lineWidth,
-			dashStyle =  options.dashStyle,
-			graphPath = this.getGraphPath(),
-			negativeColor = options.negativeColor;
-			
-		if (negativeColor) {
-			props.push(['graphNeg', negativeColor]);
-		}
-		
-		// draw the graph
-		each(props, function (prop, i) {
-			var graphKey = prop[0],
-				graph = series[graphKey],
-				attribs;
-			
-			if (graph) {
-				stop(graph); // cancel running animations, #459
-				graph.animate({ d: graphPath });
-	
-			} else if (lineWidth && graphPath.length) { // #1487
-				attribs = {
-					stroke: prop[1],
-					'stroke-width': lineWidth,
-					zIndex: 1 // #1069
-				};
-				if (dashStyle) {
-					attribs.dashstyle = dashStyle;
-				} else {
-					attribs['stroke-linecap'] = attribs['stroke-linejoin'] = 'round';
-				}
-
-				series[graphKey] = series.chart.renderer.path(graphPath)
-					.attr(attribs)
-					.add(series.group)
-					.shadow(!i && options.shadow);
-			}
-		});
-	},
-	
-	/**
-	 * Clip the graphs into the positive and negative coloured graphs
-	 */
-	clipNeg: function () {
-		var options = this.options,
-			chart = this.chart,
-			renderer = chart.renderer,
-			negativeColor = options.negativeColor || options.negativeFillColor,
-			translatedThreshold,
-			posAttr,
-			negAttr,
-			graph = this.graph,
-			area = this.area,
-			posClip = this.posClip,
-			negClip = this.negClip,
-			chartWidth = chart.chartWidth,
-			chartHeight = chart.chartHeight,
-			chartSizeMax = mathMax(chartWidth, chartHeight),
-			yAxis = this.yAxis,
-			above,
-			below;
-		
-		if (negativeColor && (graph || area)) {
-			translatedThreshold = mathRound(yAxis.toPixels(options.threshold || 0, true));
-			above = {
-				x: 0,
-				y: 0,
-				width: chartSizeMax,
-				height: translatedThreshold
-			};
-			below = {
-				x: 0,
-				y: translatedThreshold,
-				width: chartSizeMax,
-				height: chartSizeMax
-			};
-			
-			if (chart.inverted) {
-
-				above.height = below.y = chart.plotWidth - translatedThreshold;
-				if (renderer.isVML) {
-					above = {
-						x: chart.plotWidth - translatedThreshold - chart.plotLeft,
-						y: 0,
-						width: chartWidth,
-						height: chartHeight
-					};
-					below = {
-						x: translatedThreshold + chart.plotLeft - chartWidth,
-						y: 0,
-						width: chart.plotLeft + translatedThreshold,
-						height: chartWidth
-					};
-				}
-			}
-			
-			if (yAxis.reversed) {
-				posAttr = below;
-				negAttr = above;
-			} else {
-				posAttr = above;
-				negAttr = below;
-			}
-		
-			if (posClip) { // update
-				posClip.animate(posAttr);
-				negClip.animate(negAttr);
-			} else {
-				
-				this.posClip = posClip = renderer.clipRect(posAttr);
-				this.negClip = negClip = renderer.clipRect(negAttr);
-				
-				if (graph && this.graphNeg) {
-					graph.clip(posClip);
-					this.graphNeg.clip(negClip);	
-				}
-				
-				if (area) {
-					area.clip(posClip);
-					this.areaNeg.clip(negClip);
-				} 
-			} 
-		}	
-	},
-
-	/**
-	 * Initialize and perform group inversion on series.group and series.markerGroup
-	 */
-	invertGroups: function () {
-		var series = this,
-			chart = series.chart;
-
-		// Pie, go away (#1736)
-		if (!series.xAxis) {
-			return;
-		}
-		
-		// A fixed size is needed for inversion to work
-		function setInvert() {			
-			var size = {
-				width: series.yAxis.len,
-				height: series.xAxis.len
-			};
-			
-			each(['group', 'markerGroup'], function (groupName) {
-				if (series[groupName]) {
-					series[groupName].attr(size).invert();
-				}
-			});
-		}
-
-		addEvent(chart, 'resize', setInvert); // do it on resize
-		addEvent(series, 'destroy', function () {
-			removeEvent(chart, 'resize', setInvert);
-		});
-
-		// Do it now
-		setInvert(); // do it now
-		
-		// On subsequent render and redraw, just do setInvert without setting up events again
-		series.invertGroups = setInvert;
-	},
-	
-	/**
-	 * General abstraction for creating plot groups like series.group, series.dataLabelsGroup and 
-	 * series.markerGroup. On subsequent calls, the group will only be adjusted to the updated plot size.
-	 */
-	plotGroup: function (prop, name, visibility, zIndex, parent) {
-		var group = this[prop],
-			isNew = !group;
-		
-		// Generate it on first call
-		if (isNew) {	
-			this[prop] = group = this.chart.renderer.g(name)
-				.attr({
-					visibility: visibility,
-					zIndex: zIndex || 0.1 // IE8 needs this
-				})
-				.add(parent);
-		}
-		// Place it on first and subsequent (redraw) calls
-		group[isNew ? 'attr' : 'animate'](this.getPlotBox());
-		return group;		
-	},
-
-	/**
-	 * Get the translation and scale for the plot area of this series
-	 */
-	getPlotBox: function () {
-		return {
-			translateX: this.xAxis ? this.xAxis.left : this.chart.plotLeft, 
-			translateY: this.yAxis ? this.yAxis.top : this.chart.plotTop,
-			scaleX: 1, // #1623
-			scaleY: 1
-		};
-	},
-	
-	/**
-	 * Render the graph and markers
-	 */
-	render: function () {
-		var series = this,
-			chart = series.chart,
-			group,
-			options = series.options,
-			animation = options.animation,
-			doAnimation = animation && !!series.animate && 
-				chart.renderer.isSVG, // this animation doesn't work in IE8 quirks when the group div is hidden,
-				// and looks bad in other oldIE
-			visibility = series.visible ? VISIBLE : HIDDEN,
-			zIndex = options.zIndex,
-			hasRendered = series.hasRendered,
-			chartSeriesGroup = chart.seriesGroup;
-		
-		// the group
-		group = series.plotGroup(
-			'group', 
-			'series', 
-			visibility, 
-			zIndex, 
-			chartSeriesGroup
-		);
-		
-		series.markerGroup = series.plotGroup(
-			'markerGroup', 
-			'markers', 
-			visibility, 
-			zIndex, 
-			chartSeriesGroup
-		);
-		
-		// initiate the animation
-		if (doAnimation) {
-			series.animate(true);
-		}
-
-		// cache attributes for shapes
-		series.getAttribs();
-
-		// SVGRenderer needs to know this before drawing elements (#1089, #1795)
-		group.inverted = series.isCartesian ? chart.inverted : false;
-		
-		// draw the graph if any
-		if (series.drawGraph) {
-			series.drawGraph();
-			series.clipNeg();
-		}
-
-		// draw the data labels (inn pies they go before the points)
-		series.drawDataLabels();
-		
-		// draw the points
-		series.drawPoints();
-
-
-		// draw the mouse tracking area
-		if (series.options.enableMouseTracking !== false) {
-			series.drawTracker();
-		}
-		
-		// Handle inverted series and tracker groups
-		if (chart.inverted) {
-			series.invertGroups();
-		}
-		
-		// Initial clipping, must be defined after inverting groups for VML
-		if (options.clip !== false && !series.sharedClipKey && !hasRendered) {
-			group.clip(chart.clipRect);
-		}
-
-		// Run the animation
-		if (doAnimation) {
-			series.animate();
-		} else if (!hasRendered) {
-			series.afterAnimate();
-		}
-
-		series.isDirty = series.isDirtyData = false; // means data is in accordance with what you see
-		// (See #322) series.isDirty = series.isDirtyData = false; // means data is in accordance with what you see
-		series.hasRendered = true;
-	},
-	
-	/**
-	 * Redraw the series after an update in the axes.
-	 */
-	redraw: function () {
-		var series = this,
-			chart = series.chart,
-			wasDirtyData = series.isDirtyData, // cache it here as it is set to false in render, but used after
-			group = series.group,
-			xAxis = series.xAxis,
-			yAxis = series.yAxis;
-
-		// reposition on resize
-		if (group) {
-			if (chart.inverted) {
-				group.attr({
-					width: chart.plotWidth,
-					height: chart.plotHeight
-				});
-			}
-
-			group.animate({
-				translateX: pick(xAxis && xAxis.left, chart.plotLeft),
-				translateY: pick(yAxis && yAxis.top, chart.plotTop)
-			});
-		}
-
-		series.translate();
-		series.setTooltipPoints(true);
-
-		series.render();
-		if (wasDirtyData) {
-			fireEvent(series, 'updatedData');
-		}
-	},
-
-	/**
-	 * Set the state of the graph
-	 */
-	setState: function (state) {
-		var series = this,
-			options = series.options,
-			graph = series.graph,
-			graphNeg = series.graphNeg,
-			stateOptions = options.states,
-			lineWidth = options.lineWidth,
-			attribs;
-
-		state = state || NORMAL_STATE;
-
-		if (series.state !== state) {
-			series.state = state;
-
-			if (stateOptions[state] && stateOptions[state].enabled === false) {
-				return;
-			}
-
-			if (state) {
-				lineWidth = stateOptions[state].lineWidth || lineWidth + 1;
-			}
-
-			if (graph && !graph.dashstyle) { // hover is turned off for dashed lines in VML
-				attribs = {
-					'stroke-width': lineWidth
-				};
-				// use attr because animate will cause any other animation on the graph to stop
-				graph.attr(attribs);
-				if (graphNeg) {
-					graphNeg.attr(attribs);
-				}
-			}
-		}
-	},
-
-	/**
-	 * Set the visibility of the graph
-	 *
-	 * @param vis {Boolean} True to show the series, false to hide. If UNDEFINED,
-	 *        the visibility is toggled.
-	 */
-	setVisible: function (vis, redraw) {
-		var series = this,
-			chart = series.chart,
-			legendItem = series.legendItem,
-			showOrHide,
-			ignoreHiddenSeries = chart.options.chart.ignoreHiddenSeries,
-			oldVisibility = series.visible;
-
-		// if called without an argument, toggle visibility
-		series.visible = vis = series.userOptions.visible = vis === UNDEFINED ? !oldVisibility : vis;
-		showOrHide = vis ? 'show' : 'hide';
-
-		// show or hide elements
-		each(['group', 'dataLabelsGroup', 'markerGroup', 'tracker'], function (key) {
-			if (series[key]) {
-				series[key][showOrHide]();
-			}
-		});
-
-		
-		// hide tooltip (#1361)
-		if (chart.hoverSeries === series) {
-			series.onMouseOut();
-		}
-
-
-		if (legendItem) {
-			chart.legend.colorizeItem(series, vis);
-		}
-
-
-		// rescale or adapt to resized chart
-		series.isDirty = true;
-		// in a stack, all other series are affected
-		if (series.options.stacking) {
-			each(chart.series, function (otherSeries) {
-				if (otherSeries.options.stacking && otherSeries.visible) {
-					otherSeries.isDirty = true;
-				}
-			});
-		}
-
-		// show or hide linked series
-		each(series.linkedSeries, function (otherSeries) {
-			otherSeries.setVisible(vis, false);
-		});
-
-		if (ignoreHiddenSeries) {
-			chart.isDirtyBox = true;
-		}
-		if (redraw !== false) {
-			chart.redraw();
-		}
-
-		fireEvent(series, showOrHide);
-	},
-
-	/**
-	 * Show the graph
-	 */
-	show: function () {
-		this.setVisible(true);
-	},
-
-	/**
-	 * Hide the graph
-	 */
-	hide: function () {
-		this.setVisible(false);
-	},
-
-
-	/**
-	 * Set the selected state of the graph
-	 *
-	 * @param selected {Boolean} True to select the series, false to unselect. If
-	 *        UNDEFINED, the selection state is toggled.
-	 */
-	select: function (selected) {
-		var series = this;
-		// if called without an argument, toggle
-		series.selected = selected = (selected === UNDEFINED) ? !series.selected : selected;
-
-		if (series.checkbox) {
-			series.checkbox.checked = selected;
-		}
-
-		fireEvent(series, selected ? 'select' : 'unselect');
-	},
-
-	/**
-	 * Draw the tracker object that sits above all data labels and markers to
-	 * track mouse events on the graph or points. For the line type charts
-	 * the tracker uses the same graphPath, but with a greater stroke width
-	 * for better control.
-	 */
-	drawTracker: function () {
-		var series = this,
-			options = series.options,
-			trackByArea = options.trackByArea,
-			trackerPath = [].concat(trackByArea ? series.areaPath : series.graphPath),
-			trackerPathLength = trackerPath.length,
-			chart = series.chart,
-			pointer = chart.pointer,
-			renderer = chart.renderer,
-			snap = chart.options.tooltip.snap,
-			tracker = series.tracker,
-			cursor = options.cursor,
-			css = cursor && { cursor: cursor },
-			singlePoints = series.singlePoints,
-			singlePoint,
-			i,
-			onMouseOver = function () {
-				if (chart.hoverSeries !== series) {
-					series.onMouseOver();
-				}
-			};
-
-		// Extend end points. A better way would be to use round linecaps,
-		// but those are not clickable in VML.
-		if (trackerPathLength && !trackByArea) {
-			i = trackerPathLength + 1;
-			while (i--) {
-				if (trackerPath[i] === M) { // extend left side
-					trackerPath.splice(i + 1, 0, trackerPath[i + 1] - snap, trackerPath[i + 2], L);
-				}
-				if ((i && trackerPath[i] === M) || i === trackerPathLength) { // extend right side
-					trackerPath.splice(i, 0, L, trackerPath[i - 2] + snap, trackerPath[i - 1]);
-				}
-			}
-		}
-
-		// handle single points
-		for (i = 0; i < singlePoints.length; i++) {
-			singlePoint = singlePoints[i];
-			trackerPath.push(M, singlePoint.plotX - snap, singlePoint.plotY,
-				L, singlePoint.plotX + snap, singlePoint.plotY);
-		}
-		
-		
-
-		// draw the tracker
-		if (tracker) {
-			tracker.attr({ d: trackerPath });
-
-		} else { // create
-				
-			series.tracker = renderer.path(trackerPath)
-				.attr({
-					'stroke-linejoin': 'round', // #1225
-					visibility: series.visible ? VISIBLE : HIDDEN,
-					stroke: TRACKER_FILL,
-					fill: trackByArea ? TRACKER_FILL : NONE,
-					'stroke-width' : options.lineWidth + (trackByArea ? 0 : 2 * snap),
-					zIndex: 2
-				})
-				.add(series.group);
-				
-			// The tracker is added to the series group, which is clipped, but is covered 
-			// by the marker group. So the marker group also needs to capture events.
-			each([series.tracker, series.markerGroup], function (tracker) {
-				tracker.addClass(PREFIX + 'tracker')
-					.on('mouseover', onMouseOver)
-					.on('mouseout', function (e) { pointer.onTrackerMouseOut(e); })
-					.css(css);
-
-				if (hasTouch) {
-					tracker.on('touchstart', onMouseOver);
-				} 
-			});
-		}
-
-	}
-
-}; // end Series prototype
-
-
-/**
- * LineSeries object
- */
-var LineSeries = extendClass(Series);
-seriesTypes.line = LineSeries;
-
-/**
- * Set the default options for area
- */
-defaultPlotOptions.area = merge(defaultSeriesOptions, {
-	threshold: 0
-	// trackByArea: false,
-	// lineColor: null, // overrides color, but lets fillColor be unaltered
-	// fillOpacity: 0.75,
-	// fillColor: null
-});
-
-/**
- * AreaSeries object
- */
-var AreaSeries = extendClass(Series, {
-	type: 'area',
-	
-	/**
-	 * For stacks, don't split segments on null values. Instead, draw null values with 
-	 * no marker. Also insert dummy points for any X position that exists in other series
-	 * in the stack.
-	 */ 
-	getSegments: function () {
-		var segments = [],
-			segment = [],
-			keys = [],
-			xAxis = this.xAxis,
-			yAxis = this.yAxis,
-			stack = yAxis.stacks[this.stackKey],
-			pointMap = {},
-			plotX,
-			plotY,
-			points = this.points,
-			connectNulls = this.options.connectNulls,
-			val,
-			i,
-			x;
-
-		if (this.options.stacking && !this.cropped) { // cropped causes artefacts in Stock, and perf issue
-			// Create a map where we can quickly look up the points by their X value.
-			for (i = 0; i < points.length; i++) {
-				pointMap[points[i].x] = points[i];
-			}
-
-			// Sort the keys (#1651)
-			for (x in stack) {
-				keys.push(+x);
-			}
-			keys.sort(function (a, b) {
-				return a - b;
-			});
-
-			each(keys, function (x) {
-				if (connectNulls && (!pointMap[x] || pointMap[x].y === null)) { // #1836
-					return;
-
-				// The point exists, push it to the segment
-				} else if (pointMap[x]) {
-					segment.push(pointMap[x]);
-
-				// There is no point for this X value in this series, so we 
-				// insert a dummy point in order for the areas to be drawn
-				// correctly.
-				} else {
-					plotX = xAxis.translate(x);
-					val = stack[x].percent ? (stack[x].total ? stack[x].cum * 100 / stack[x].total : 0) : stack[x].cum; // #1991
-					plotY = yAxis.toPixels(val, true);
-					segment.push({ 
-						y: null, 
-						plotX: plotX,
-						clientX: plotX, 
-						plotY: plotY, 
-						yBottom: plotY,
-						onMouseOver: noop
-					});
-				}
-			});
-
-			if (segment.length) {
-				segments.push(segment);
-			}
-
-		} else {
-			Series.prototype.getSegments.call(this);
-			segments = this.segments;
-		}
-
-		this.segments = segments;
-	},
-	
-	/**
-	 * Extend the base Series getSegmentPath method by adding the path for the area.
-	 * This path is pushed to the series.areaPath property.
-	 */
-	getSegmentPath: function (segment) {
-		
-		var segmentPath = Series.prototype.getSegmentPath.call(this, segment), // call base method
-			areaSegmentPath = [].concat(segmentPath), // work on a copy for the area path
-			i,
-			options = this.options,
-			segLength = segmentPath.length,
-			translatedThreshold = this.yAxis.getThreshold(options.threshold), // #2181
-			yBottom;
-		
-		if (segLength === 3) { // for animation from 1 to two points
-			areaSegmentPath.push(L, segmentPath[1], segmentPath[2]);
-		}
-		if (options.stacking && !this.closedStacks) {
-			
-			// Follow stack back. Todo: implement areaspline. A general solution could be to 
-			// reverse the entire graphPath of the previous series, though may be hard with
-			// splines and with series with different extremes
-			for (i = segment.length - 1; i >= 0; i--) {
-
-				yBottom = pick(segment[i].yBottom, translatedThreshold);
-			
-				// step line?
-				if (i < segment.length - 1 && options.step) {
-					areaSegmentPath.push(segment[i + 1].plotX, yBottom);
-				}
-				
-				areaSegmentPath.push(segment[i].plotX, yBottom);
-			}
-
-		} else { // follow zero line back
-			this.closeSegment(areaSegmentPath, segment, translatedThreshold);
-		}
-		this.areaPath = this.areaPath.concat(areaSegmentPath);
-		return segmentPath;
-	},
-	
-	/**
-	 * Extendable method to close the segment path of an area. This is overridden in polar 
-	 * charts.
-	 */
-	closeSegment: function (path, segment, translatedThreshold) {
-		path.push(
-			L,
-			segment[segment.length - 1].plotX,
-			translatedThreshold,
-			L,
-			segment[0].plotX,
-			translatedThreshold
-		);
-	},
-	
-	/**
-	 * Draw the graph and the underlying area. This method calls the Series base
-	 * function and adds the area. The areaPath is calculated in the getSegmentPath
-	 * method called from Series.prototype.drawGraph.
-	 */
-	drawGraph: function () {
-		
-		// Define or reset areaPath
-		this.areaPath = [];
-		
-		// Call the base method
-		Series.prototype.drawGraph.apply(this);
-		
-		// Define local variables
-		var series = this,
-			areaPath = this.areaPath,
-			options = this.options,
-			negativeColor = options.negativeColor,
-			negativeFillColor = options.negativeFillColor,
-			props = [['area', this.color, options.fillColor]]; // area name, main color, fill color
-		
-		if (negativeColor || negativeFillColor) {
-			props.push(['areaNeg', negativeColor, negativeFillColor]);
-		}
-		
-		each(props, function (prop) {
-			var areaKey = prop[0],
-				area = series[areaKey];
-				
-			// Create or update the area
-			if (area) { // update
-				area.animate({ d: areaPath });
-	
-			} else { // create
-				series[areaKey] = series.chart.renderer.path(areaPath)
-					.attr({
-						fill: pick(
-							prop[2],
-							Color(prop[1]).setOpacity(pick(options.fillOpacity, 0.75)).get()
-						),
-						zIndex: 0 // #1069
-					}).add(series.group);
-			}
-		});
-	},
-	
-	/**
-	 * Get the series' symbol in the legend
-	 * 
-	 * @param {Object} legend The legend object
-	 * @param {Object} item The series (this) or point
-	 */
-	drawLegendSymbol: function (legend, item) {
-		
-		item.legendSymbol = this.chart.renderer.rect(
-			0,
-			legend.baseline - 11,
-			legend.options.symbolWidth,
-			12,
-			2
-		).attr({
-			zIndex: 3
-		}).add(item.legendGroup);		
-		
-	}
-});
-
-seriesTypes.area = AreaSeries;/**
- * Set the default options for spline
- */
-defaultPlotOptions.spline = merge(defaultSeriesOptions);
-
-/**
- * SplineSeries object
- */
-var SplineSeries = extendClass(Series, {
-	type: 'spline',
-
-	/**
-	 * Get the spline segment from a given point's previous neighbour to the given point
-	 */
-	getPointSpline: function (segment, point, i) {
-		var smoothing = 1.5, // 1 means control points midway between points, 2 means 1/3 from the point, 3 is 1/4 etc
-			denom = smoothing + 1,
-			plotX = point.plotX,
-			plotY = point.plotY,
-			lastPoint = segment[i - 1],
-			nextPoint = segment[i + 1],
-			leftContX,
-			leftContY,
-			rightContX,
-			rightContY,
-			ret;
-
-		// find control points
-		if (lastPoint && nextPoint) {
-		
-			var lastX = lastPoint.plotX,
-				lastY = lastPoint.plotY,
-				nextX = nextPoint.plotX,
-				nextY = nextPoint.plotY,
-				correction;
-
-			leftContX = (smoothing * plotX + lastX) / denom;
-			leftContY = (smoothing * plotY + lastY) / denom;
-			rightContX = (smoothing * plotX + nextX) / denom;
-			rightContY = (smoothing * plotY + nextY) / denom;
-
-			// have the two control points make a straight line through main point
-			correction = ((rightContY - leftContY) * (rightContX - plotX)) /
-				(rightContX - leftContX) + plotY - rightContY;
-
-			leftContY += correction;
-			rightContY += correction;
-
-			// to prevent false extremes, check that control points are between
-			// neighbouring points' y values
-			if (leftContY > lastY && leftContY > plotY) {
-				leftContY = mathMax(lastY, plotY);
-				rightContY = 2 * plotY - leftContY; // mirror of left control point
-			} else if (leftContY < lastY && leftContY < plotY) {
-				leftContY = mathMin(lastY, plotY);
-				rightContY = 2 * plotY - leftContY;
-			}
-			if (rightContY > nextY && rightContY > plotY) {
-				rightContY = mathMax(nextY, plotY);
-				leftContY = 2 * plotY - rightContY;
-			} else if (rightContY < nextY && rightContY < plotY) {
-				rightContY = mathMin(nextY, plotY);
-				leftContY = 2 * plotY - rightContY;
-			}
-
-			// record for drawing in next point
-			point.rightContX = rightContX;
-			point.rightContY = rightContY;
-
-		}
-		
-		// Visualize control points for debugging
-		/*
-		if (leftContX) {
-			this.chart.renderer.circle(leftContX + this.chart.plotLeft, leftContY + this.chart.plotTop, 2)
-				.attr({
-					stroke: 'red',
-					'stroke-width': 1,
-					fill: 'none'
-				})
-				.add();
-			this.chart.renderer.path(['M', leftContX + this.chart.plotLeft, leftContY + this.chart.plotTop,
-				'L', plotX + this.chart.plotLeft, plotY + this.chart.plotTop])
-				.attr({
-					stroke: 'red',
-					'stroke-width': 1
-				})
-				.add();
-			this.chart.renderer.circle(rightContX + this.chart.plotLeft, rightContY + this.chart.plotTop, 2)
-				.attr({
-					stroke: 'green',
-					'stroke-width': 1,
-					fill: 'none'
-				})
-				.add();
-			this.chart.renderer.path(['M', rightContX + this.chart.plotLeft, rightContY + this.chart.plotTop,
-				'L', plotX + this.chart.plotLeft, plotY + this.chart.plotTop])
-				.attr({
-					stroke: 'green',
-					'stroke-width': 1
-				})
-				.add();
-		}
-		*/
-
-		// moveTo or lineTo
-		if (!i) {
-			ret = [M, plotX, plotY];
-		} else { // curve from last point to this
-			ret = [
-				'C',
-				lastPoint.rightContX || lastPoint.plotX,
-				lastPoint.rightContY || lastPoint.plotY,
-				leftContX || plotX,
-				leftContY || plotY,
-				plotX,
-				plotY
-			];
-			lastPoint.rightContX = lastPoint.rightContY = null; // reset for updating series later
-		}
-		return ret;
-	}
-});
-seriesTypes.spline = SplineSeries;
-
-/**
- * Set the default options for areaspline
- */
-defaultPlotOptions.areaspline = merge(defaultPlotOptions.area);
-
-/**
- * AreaSplineSeries object
- */
-var areaProto = AreaSeries.prototype,
-	AreaSplineSeries = extendClass(SplineSeries, {
-		type: 'areaspline',
-		closedStacks: true, // instead of following the previous graph back, follow the threshold back
-		
-		// Mix in methods from the area series
-		getSegmentPath: areaProto.getSegmentPath,
-		closeSegment: areaProto.closeSegment,
-		drawGraph: areaProto.drawGraph,
-		drawLegendSymbol: areaProto.drawLegendSymbol
-	});
-seriesTypes.areaspline = AreaSplineSeries;
-
-/**
- * Set the default options for column
- */
-defaultPlotOptions.column = merge(defaultSeriesOptions, {
-	borderColor: '#FFFFFF',
-	borderWidth: 1,
-	borderRadius: 0,
-	//colorByPoint: undefined,
-	groupPadding: 0.2,
-	//grouping: true,
-	marker: null, // point options are specified in the base options
-	pointPadding: 0.1,
-	//pointWidth: null,
-	minPointLength: 0,
-	cropThreshold: 50, // when there are more points, they will not animate out of the chart on xAxis.setExtremes
-	pointRange: null, // null means auto, meaning 1 in a categorized axis and least distance between points if not categories
-	states: {
-		hover: {
-			brightness: 0.1,
-			shadow: false
-		},
-		select: {
-			color: '#C0C0C0',
-			borderColor: '#000000',
-			shadow: false
-		}
-	},
-	dataLabels: {
-		align: null, // auto
-		verticalAlign: null, // auto
-		y: null
-	},
-	stickyTracking: false,
-	threshold: 0
-});
-
-/**
- * ColumnSeries object
- */
-var ColumnSeries = extendClass(Series, {
-	type: 'column',
-	pointAttrToOptions: { // mapping between SVG attributes and the corresponding options
-		stroke: 'borderColor',
-		'stroke-width': 'borderWidth',
-		fill: 'color',
-		r: 'borderRadius'
-	},
-	cropShoulder: 0,
-	trackerGroups: ['group', 'dataLabelsGroup'],
-	negStacks: true, // use separate negative stacks, unlike area stacks where a negative 
-		// point is substracted from previous (#1910)
-	
-	/**
-	 * Initialize the series
-	 */
-	init: function () {
-		Series.prototype.init.apply(this, arguments);
-
-		var series = this,
-			chart = series.chart;
-
-		// if the series is added dynamically, force redraw of other
-		// series affected by a new column
-		if (chart.hasRendered) {
-			each(chart.series, function (otherSeries) {
-				if (otherSeries.type === series.type) {
-					otherSeries.isDirty = true;
-				}
-			});
-		}
-	},
-
-	/**
-	 * Return the width and x offset of the columns adjusted for grouping, groupPadding, pointPadding,
-	 * pointWidth etc. 
-	 */
-	getColumnMetrics: function () {
-
-		var series = this,
-			options = series.options,
-			xAxis = series.xAxis,
-			yAxis = series.yAxis,
-			reversedXAxis = xAxis.reversed,
-			stackKey,
-			stackGroups = {},
-			columnIndex,
-			columnCount = 0;
-
-		// Get the total number of column type series.
-		// This is called on every series. Consider moving this logic to a
-		// chart.orderStacks() function and call it on init, addSeries and removeSeries
-		if (options.grouping === false) {
-			columnCount = 1;
-		} else {
-			each(series.chart.series, function (otherSeries) {
-				var otherOptions = otherSeries.options,
-					otherYAxis = otherSeries.yAxis;
-				if (otherSeries.type === series.type && otherSeries.visible &&
-						yAxis.len === otherYAxis.len && yAxis.pos === otherYAxis.pos) {  // #642, #2086
-					if (otherOptions.stacking) {
-						stackKey = otherSeries.stackKey;
-						if (stackGroups[stackKey] === UNDEFINED) {
-							stackGroups[stackKey] = columnCount++;
-						}
-						columnIndex = stackGroups[stackKey];
-					} else if (otherOptions.grouping !== false) { // #1162
-						columnIndex = columnCount++;
-					}
-					otherSeries.columnIndex = columnIndex;
-				}
-			});
-		}
-
-		var categoryWidth = mathMin(
-				mathAbs(xAxis.transA) * (xAxis.ordinalSlope || options.pointRange || xAxis.closestPointRange || 1), 
-				xAxis.len // #1535
-			),
-			groupPadding = categoryWidth * options.groupPadding,
-			groupWidth = categoryWidth - 2 * groupPadding,
-			pointOffsetWidth = groupWidth / columnCount,
-			optionPointWidth = options.pointWidth,
-			pointPadding = defined(optionPointWidth) ? (pointOffsetWidth - optionPointWidth) / 2 :
-				pointOffsetWidth * options.pointPadding,
-			pointWidth = pick(optionPointWidth, pointOffsetWidth - 2 * pointPadding), // exact point width, used in polar charts
-			colIndex = (reversedXAxis ? 
-				columnCount - (series.columnIndex || 0) : // #1251
-				series.columnIndex) || 0,
-			pointXOffset = pointPadding + (groupPadding + colIndex *
-				pointOffsetWidth - (categoryWidth / 2)) *
-				(reversedXAxis ? -1 : 1);
-
-		// Save it for reading in linked series (Error bars particularly)
-		return (series.columnMetrics = { 
-			width: pointWidth, 
-			offset: pointXOffset 
-		});
-			
-	},
-
-	/**
-	 * Translate each point to the plot area coordinate system and find shape positions
-	 */
-	translate: function () {
-		var series = this,
-			chart = series.chart,
-			options = series.options,
-			borderWidth = options.borderWidth,
-			yAxis = series.yAxis,
-			threshold = options.threshold,
-			translatedThreshold = series.translatedThreshold = yAxis.getThreshold(threshold),
-			minPointLength = pick(options.minPointLength, 5),
-			metrics = series.getColumnMetrics(),
-			pointWidth = metrics.width,
-			seriesBarW = series.barW = mathCeil(mathMax(pointWidth, 1 + 2 * borderWidth)), // rounded and postprocessed for border width
-			pointXOffset = series.pointXOffset = metrics.offset,
-			xCrisp = -(borderWidth % 2 ? 0.5 : 0),
-			yCrisp = borderWidth % 2 ? 0.5 : 1;
-
-		if (chart.renderer.isVML && chart.inverted) {
-			yCrisp += 1;
-		}
-
-		Series.prototype.translate.apply(series);
-
-		// record the new values
-		each(series.points, function (point) {
-			var yBottom = pick(point.yBottom, translatedThreshold),
-				plotY = mathMin(mathMax(-999 - yBottom, point.plotY), yAxis.len + 999 + yBottom), // Don't draw too far outside plot area (#1303, #2241)
-				barX = point.plotX + pointXOffset,
-				barW = seriesBarW,
-				barY = mathMin(plotY, yBottom),
-				right,
-				bottom,
-				fromTop,
-				fromLeft,
-				barH = mathMax(plotY, yBottom) - barY;
-
-			// Handle options.minPointLength
-			if (mathAbs(barH) < minPointLength) {
-				if (minPointLength) {
-					barH = minPointLength;
-					barY =
-						mathRound(mathAbs(barY - translatedThreshold) > minPointLength ? // stacked
-							yBottom - minPointLength : // keep position
-							translatedThreshold - (yAxis.translate(point.y, 0, 1, 0, 1) <= translatedThreshold ? minPointLength : 0)); // use exact yAxis.translation (#1485)
-				}
-			}
-
-			// Cache for access in polar
-			point.barX = barX;
-			point.pointWidth = pointWidth;
-
-
-			// Round off to obtain crisp edges
-			fromLeft = mathAbs(barX) < 0.5;
-			right = mathRound(barX + barW) + xCrisp;
-			barX = mathRound(barX) + xCrisp;
-			barW = right - barX;
-
-			fromTop = mathAbs(barY) < 0.5;
-			bottom = mathRound(barY + barH) + yCrisp;
-			barY = mathRound(barY) + yCrisp;
-			barH = bottom - barY;
-
-			// Top and left edges are exceptions
-			if (fromLeft) {
-				barX += 1;
-				barW -= 1;
-			}
-			if (fromTop) {
-				barY -= 1;
-				barH += 1;
-			}
-
-			// Register shape type and arguments to be used in drawPoints
-			point.shapeType = 'rect';
-			point.shapeArgs = {
-				x: barX,
-				y: barY,
-				width: barW,
-				height: barH
-			};
-		});
-
-	},
-
-	getSymbol: noop,
-	
-	/**
-	 * Use a solid rectangle like the area series types
-	 */
-	drawLegendSymbol: AreaSeries.prototype.drawLegendSymbol,
-	
-	
-	/**
-	 * Columns have no graph
-	 */
-	drawGraph: noop,
-
-	/**
-	 * Draw the columns. For bars, the series.group is rotated, so the same coordinates
-	 * apply for columns and bars. This method is inherited by scatter series.
-	 *
-	 */
-	drawPoints: function () {
-		var series = this,
-			options = series.options,
-			renderer = series.chart.renderer,
-			shapeArgs;
-
-
-		// draw the columns
-		each(series.points, function (point) {
-			var plotY = point.plotY,
-				graphic = point.graphic;
-
-			if (plotY !== UNDEFINED && !isNaN(plotY) && point.y !== null) {
-				shapeArgs = point.shapeArgs;
-				
-				if (graphic) { // update
-					stop(graphic);
-					graphic.animate(merge(shapeArgs));
-
-				} else {
-					point.graphic = graphic = renderer[point.shapeType](shapeArgs)
-						.attr(point.pointAttr[point.selected ? SELECT_STATE : NORMAL_STATE])
-						.add(series.group)
-						.shadow(options.shadow, null, options.stacking && !options.borderRadius);
-				}
-
-			} else if (graphic) {
-				point.graphic = graphic.destroy(); // #1269
-			}
-		});
-	},
-
-	/**
-	 * Add tracking event listener to the series group, so the point graphics
-	 * themselves act as trackers
-	 */
-	drawTracker: function () {
-		var series = this,
-			chart = series.chart,
-			pointer = chart.pointer,
-			cursor = series.options.cursor,
-			css = cursor && { cursor: cursor },
-			onMouseOver = function (e) {
-				var target = e.target,
-					point;
-
-				if (chart.hoverSeries !== series) {
-					series.onMouseOver();
-				}
-				while (target && !point) {
-					point = target.point;
-					target = target.parentNode;
-				}
-				if (point !== UNDEFINED && point !== chart.hoverPoint) { // undefined on graph in scatterchart
-					point.onMouseOver(e);
-				}
-			};
-
-		// Add reference to the point
-		each(series.points, function (point) {
-			if (point.graphic) {
-				point.graphic.element.point = point;
-			}
-			if (point.dataLabel) {
-				point.dataLabel.element.point = point;
-			}
-		});
-
-		// Add the event listeners, we need to do this only once
-		if (!series._hasTracking) {
-			each(series.trackerGroups, function (key) {
-				if (series[key]) { // we don't always have dataLabelsGroup
-					series[key]
-						.addClass(PREFIX + 'tracker')
-						.on('mouseover', onMouseOver)
-						.on('mouseout', function (e) { pointer.onTrackerMouseOut(e); })
-						.css(css);
-					if (hasTouch) {
-						series[key].on('touchstart', onMouseOver);
-					}
-				}
-			});
-			series._hasTracking = true;
-		}
-	},
-	
-	/** 
-	 * Override the basic data label alignment by adjusting for the position of the column
-	 */
-	alignDataLabel: function (point, dataLabel, options,  alignTo, isNew) {
-		var chart = this.chart,
-			inverted = chart.inverted,
-			dlBox = point.dlBox || point.shapeArgs, // data label box for alignment
-			below = point.below || (point.plotY > pick(this.translatedThreshold, chart.plotSizeY)),
-			inside = pick(options.inside, !!this.options.stacking); // draw it inside the box?
-		
-		// Align to the column itself, or the top of it
-		if (dlBox) { // Area range uses this method but not alignTo
-			alignTo = merge(dlBox);
-			if (inverted) {
-				alignTo = {
-					x: chart.plotWidth - alignTo.y - alignTo.height,
-					y: chart.plotHeight - alignTo.x - alignTo.width,
-					width: alignTo.height,
-					height: alignTo.width
-				};
-			}
-				
-			// Compute the alignment box
-			if (!inside) {
-				if (inverted) {
-					alignTo.x += below ? 0 : alignTo.width;
-					alignTo.width = 0;
-				} else {
-					alignTo.y += below ? alignTo.height : 0;
-					alignTo.height = 0;
-				}
-			}
-		}
-		
-		// When alignment is undefined (typically columns and bars), display the individual 
-		// point below or above the point depending on the threshold
-		options.align = pick(
-			options.align, 
-			!inverted || inside ? 'center' : below ? 'right' : 'left'
-		);
-		options.verticalAlign = pick(
-			options.verticalAlign, 
-			inverted || inside ? 'middle' : below ? 'top' : 'bottom'
-		);
-		
-		// Call the parent method
-		Series.prototype.alignDataLabel.call(this, point, dataLabel, options, alignTo, isNew);
-	},
-
-
-	/**
-	 * Animate the column heights one by one from zero
-	 * @param {Boolean} init Whether to initialize the animation or run it
-	 */
-	animate: function (init) {
-		var series = this,
-			yAxis = this.yAxis,
-			options = series.options,
-			inverted = this.chart.inverted,
-			attr = {},
-			translatedThreshold;
-
-		if (hasSVG) { // VML is too slow anyway
-			if (init) {
-				attr.scaleY = 0.001;
-				translatedThreshold = mathMin(yAxis.pos + yAxis.len, mathMax(yAxis.pos, yAxis.toPixels(options.threshold)));
-				if (inverted) {
-					attr.translateX = translatedThreshold - yAxis.len;
-				} else {
-					attr.translateY = translatedThreshold;
-				}
-				series.group.attr(attr);
-
-			} else { // run the animation
-				
-				attr.scaleY = 1;
-				attr[inverted ? 'translateX' : 'translateY'] = yAxis.pos;
-				series.group.animate(attr, series.options.animation);
-
-				// delete this function to allow it only once
-				series.animate = null;
-			}
-		}
-	},
-	
-	/**
-	 * Remove this series from the chart
-	 */
-	remove: function () {
-		var series = this,
-			chart = series.chart;
-
-		// column and bar series affects other series of the same type
-		// as they are either stacked or grouped
-		if (chart.hasRendered) {
-			each(chart.series, function (otherSeries) {
-				if (otherSeries.type === series.type) {
-					otherSeries.isDirty = true;
-				}
-			});
-		}
-
-		Series.prototype.remove.apply(series, arguments);
-	}
-});
-seriesTypes.column = ColumnSeries;
-/**
- * Set the default options for bar
- */
-defaultPlotOptions.bar = merge(defaultPlotOptions.column);
-/**
- * The Bar series class
- */
-var BarSeries = extendClass(ColumnSeries, {
-	type: 'bar',
-	inverted: true
-});
-seriesTypes.bar = BarSeries;
-
-/**
- * Set the default options for scatter
- */
-defaultPlotOptions.scatter = merge(defaultSeriesOptions, {
-	lineWidth: 0,
-	tooltip: {
-		headerFormat: '<span style="font-size: 10px; color:{series.color}">{series.name}</span><br/>',
-		pointFormat: 'x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>',
-		followPointer: true
-	},
-	stickyTracking: false
-});
-
-/**
- * The scatter series class
- */
-var ScatterSeries = extendClass(Series, {
-	type: 'scatter',
-	sorted: false,
-	requireSorting: false,
-	noSharedTooltip: true,
-	trackerGroups: ['markerGroup'],
-
-	drawTracker: ColumnSeries.prototype.drawTracker,
-	
-	setTooltipPoints: noop
-});
-seriesTypes.scatter = ScatterSeries;
-
-/**
- * Set the default options for pie
- */
-defaultPlotOptions.pie = merge(defaultSeriesOptions, {
-	borderColor: '#FFFFFF',
-	borderWidth: 1,
-	center: [null, null],
-	clip: false,
-	colorByPoint: true, // always true for pies
-	dataLabels: {
-		// align: null,
-		// connectorWidth: 1,
-		// connectorColor: point.color,
-		// connectorPadding: 5,
-		distance: 30,
-		enabled: true,
-		formatter: function () {
-			return this.point.name;
-		}
-		// softConnector: true,
-		//y: 0
-	},
-	ignoreHiddenPoint: true,
-	//innerSize: 0,
-	legendType: 'point',
-	marker: null, // point options are specified in the base options
-	size: null,
-	showInLegend: false,
-	slicedOffset: 10,
-	states: {
-		hover: {
-			brightness: 0.1,
-			shadow: false
-		}
-	},
-	stickyTracking: false,
-	tooltip: {
-		followPointer: true
-	}
-});
-
-/**
- * Extended point object for pies
- */
-var PiePoint = extendClass(Point, {
-	/**
-	 * Initiate the pie slice
-	 */
-	init: function () {
-
-		Point.prototype.init.apply(this, arguments);
-
-		var point = this,
-			toggleSlice;
-
-		// Disallow negative values (#1530)
-		if (point.y < 0) {
-			point.y = null;
-		}
-
-		//visible: options.visible !== false,
-		extend(point, {
-			visible: point.visible !== false,
-			name: pick(point.name, 'Slice')
-		});
-
-		// add event listener for select
-		toggleSlice = function (e) {
-			point.slice(e.type === 'select');
-		};
-		addEvent(point, 'select', toggleSlice);
-		addEvent(point, 'unselect', toggleSlice);
-
-		return point;
-	},
-
-	/**
-	 * Toggle the visibility of the pie slice
-	 * @param {Boolean} vis Whether to show the slice or not. If undefined, the
-	 *    visibility is toggled
-	 */
-	setVisible: function (vis) {
-		var point = this,
-			series = point.series,
-			chart = series.chart,
-			method;
-
-		// if called without an argument, toggle visibility
-		point.visible = point.options.visible = vis = vis === UNDEFINED ? !point.visible : vis;
-		series.options.data[inArray(point, series.data)] = point.options; // update userOptions.data
-		
-		method = vis ? 'show' : 'hide';
-
-		// Show and hide associated elements
-		each(['graphic', 'dataLabel', 'connector', 'shadowGroup'], function (key) {
-			if (point[key]) {
-				point[key][method]();
-			}
-		});
-
-		if (point.legendItem) {
-			chart.legend.colorizeItem(point, vis);
-		}
-		
-		// Handle ignore hidden slices
-		if (!series.isDirty && series.options.ignoreHiddenPoint) {
-			series.isDirty = true;
-			chart.redraw();
-		}
-	},
-
-	/**
-	 * Set or toggle whether the slice is cut out from the pie
-	 * @param {Boolean} sliced When undefined, the slice state is toggled
-	 * @param {Boolean} redraw Whether to redraw the chart. True by default.
-	 */
-	slice: function (sliced, redraw, animation) {
-		var point = this,
-			series = point.series,
-			chart = series.chart,
-			translation;
-
-		setAnimation(animation, chart);
-
-		// redraw is true by default
-		redraw = pick(redraw, true);
-
-		// if called without an argument, toggle
-		point.sliced = point.options.sliced = sliced = defined(sliced) ? sliced : !point.sliced;
-		series.options.data[inArray(point, series.data)] = point.options; // update userOptions.data
-
-		translation = sliced ? point.slicedTranslation : {
-			translateX: 0,
-			translateY: 0
-		};
-
-		point.graphic.animate(translation);
-		
-		if (point.shadowGroup) {
-			point.shadowGroup.animate(translation);
-		}
-
-	}
-});
-
-/**
- * The Pie series class
- */
-var PieSeries = {
-	type: 'pie',
-	isCartesian: false,
-	pointClass: PiePoint,
-	requireSorting: false,
-	noSharedTooltip: true,
-	trackerGroups: ['group', 'dataLabelsGroup'],
-	pointAttrToOptions: { // mapping between SVG attributes and the corresponding options
-		stroke: 'borderColor',
-		'stroke-width': 'borderWidth',
-		fill: 'color'
-	},
-
-	/**
-	 * Pies have one color each point
-	 */
-	getColor: noop,
-
-	/**
-	 * Animate the pies in
-	 */
-	animate: function (init) {
-		var series = this,
-			points = series.points,
-			startAngleRad = series.startAngleRad;
-
-		if (!init) {
-			each(points, function (point) {
-				var graphic = point.graphic,
-					args = point.shapeArgs;
-
-				if (graphic) {
-					// start values
-					graphic.attr({
-						r: series.center[3] / 2, // animate from inner radius (#779)
-						start: startAngleRad,
-						end: startAngleRad
-					});
-
-					// animate
-					graphic.animate({
-						r: args.r,
-						start: args.start,
-						end: args.end
-					}, series.options.animation);
-				}
-			});
-
-			// delete this function to allow it only once
-			series.animate = null;
-		}
-	},
-
-	/**
-	 * Extend the basic setData method by running processData and generatePoints immediately,
-	 * in order to access the points from the legend.
-	 */
-	setData: function (data, redraw) {
-		Series.prototype.setData.call(this, data, false);
-		this.processData();
-		this.generatePoints();
-		if (pick(redraw, true)) {
-			this.chart.redraw();
-		} 
-	},
-
-	/**
-	 * Extend the generatePoints method by adding total and percentage properties to each point
-	 */
-	generatePoints: function () {
-		var i,
-			total = 0,
-			points,
-			len,
-			point,
-			ignoreHiddenPoint = this.options.ignoreHiddenPoint;
-
-		Series.prototype.generatePoints.call(this);
-
-		// Populate local vars
-		points = this.points;
-		len = points.length;
-		
-		// Get the total sum
-		for (i = 0; i < len; i++) {
-			point = points[i];
-			total += (ignoreHiddenPoint && !point.visible) ? 0 : point.y;
-		}
-		this.total = total;
-
-		// Set each point's properties
-		for (i = 0; i < len; i++) {
-			point = points[i];
-			point.percentage = total > 0 ? (point.y / total) * 100 : 0;
-			point.total = total;
-		}
-		
-	},
-	
-	/**
-	 * Get the center of the pie based on the size and center options relative to the  
-	 * plot area. Borrowed by the polar and gauge series types.
-	 */
-	getCenter: function () {
-		
-		var options = this.options,
-			chart = this.chart,
-			slicingRoom = 2 * (options.slicedOffset || 0),
-			handleSlicingRoom,
-			plotWidth = chart.plotWidth - 2 * slicingRoom,
-			plotHeight = chart.plotHeight - 2 * slicingRoom,
-			centerOption = options.center,
-			positions = [pick(centerOption[0], '50%'), pick(centerOption[1], '50%'), options.size || '100%', options.innerSize || 0],
-			smallestSize = mathMin(plotWidth, plotHeight),
-			isPercent;
-		
-		return map(positions, function (length, i) {
-			isPercent = /%$/.test(length);
-			handleSlicingRoom = i < 2 || (i === 2 && isPercent);
-			return (isPercent ?
-				// i == 0: centerX, relative to width
-				// i == 1: centerY, relative to height
-				// i == 2: size, relative to smallestSize
-				// i == 4: innerSize, relative to smallestSize
-				[plotWidth, plotHeight, smallestSize, smallestSize][i] *
-					pInt(length) / 100 :
-				length) + (handleSlicingRoom ? slicingRoom : 0);
-		});
-	},
-	
-	/**
-	 * Do translation for pie slices
-	 */
-	translate: function (positions) {
-		this.generatePoints();
-		
-		var series = this,
-			cumulative = 0,
-			precision = 1000, // issue #172
-			options = series.options,
-			slicedOffset = options.slicedOffset,
-			connectorOffset = slicedOffset + options.borderWidth,
-			start,
-			end,
-			angle,
-			startAngle = options.startAngle || 0,
-			startAngleRad = series.startAngleRad = mathPI / 180 * (startAngle - 90),
-			endAngleRad = series.endAngleRad = mathPI / 180 * ((options.endAngle || (startAngle + 360)) - 90), // docs
-			circ = endAngleRad - startAngleRad, //2 * mathPI,
-			points = series.points,
-			radiusX, // the x component of the radius vector for a given point
-			radiusY,
-			labelDistance = options.dataLabels.distance,
-			ignoreHiddenPoint = options.ignoreHiddenPoint,
-			i,
-			len = points.length,
-			point;
-
-		// Get positions - either an integer or a percentage string must be given.
-		// If positions are passed as a parameter, we're in a recursive loop for adjusting
-		// space for data labels.
-		if (!positions) {
-			series.center = positions = series.getCenter();
-		}
-
-		// utility for getting the x value from a given y, used for anticollision logic in data labels
-		series.getX = function (y, left) {
-
-			angle = math.asin((y - positions[1]) / (positions[2] / 2 + labelDistance));
-
-			return positions[0] +
-				(left ? -1 : 1) *
-				(mathCos(angle) * (positions[2] / 2 + labelDistance));
-		};
-
-		// Calculate the geometry for each point
-		for (i = 0; i < len; i++) {
-			
-			point = points[i];
-			
-			// set start and end angle
-			start = startAngleRad + (cumulative * circ);
-			if (!ignoreHiddenPoint || point.visible) {
-				cumulative += point.percentage / 100;
-			}
-			end = startAngleRad + (cumulative * circ);
-
-			// set the shape
-			point.shapeType = 'arc';
-			point.shapeArgs = {
-				x: positions[0],
-				y: positions[1],
-				r: positions[2] / 2,
-				innerR: positions[3] / 2,
-				start: mathRound(start * precision) / precision,
-				end: mathRound(end * precision) / precision
-			};
-
-			// center for the sliced out slice
-			angle = (end + start) / 2;
-			if (angle > 0.75 * circ) {
-				angle -= 2 * mathPI;
-			}
-			point.slicedTranslation = {
-				translateX: mathRound(mathCos(angle) * slicedOffset),
-				translateY: mathRound(mathSin(angle) * slicedOffset)
-			};
-
-			// set the anchor point for tooltips
-			radiusX = mathCos(angle) * positions[2] / 2;
-			radiusY = mathSin(angle) * positions[2] / 2;
-			point.tooltipPos = [
-				positions[0] + radiusX * 0.7,
-				positions[1] + radiusY * 0.7
-			];
-			
-			point.half = angle < -mathPI / 2 || angle > mathPI / 2 ? 1 : 0;
-			point.angle = angle;
-
-			// set the anchor point for data labels
-			connectorOffset = mathMin(connectorOffset, labelDistance / 2); // #1678
-			point.labelPos = [
-				positions[0] + radiusX + mathCos(angle) * labelDistance, // first break of connector
-				positions[1] + radiusY + mathSin(angle) * labelDistance, // a/a
-				positions[0] + radiusX + mathCos(angle) * connectorOffset, // second break, right outside pie
-				positions[1] + radiusY + mathSin(angle) * connectorOffset, // a/a
-				positions[0] + radiusX, // landing point for connector
-				positions[1] + radiusY, // a/a
-				labelDistance < 0 ? // alignment
-					'center' :
-					point.half ? 'right' : 'left', // alignment
-				angle // center angle
-			];
-
-		}
-	},
-
-	setTooltipPoints: noop,
-	drawGraph: null,
-
-	/**
-	 * Draw the data points
-	 */
-	drawPoints: function () {
-		var series = this,
-			chart = series.chart,
-			renderer = chart.renderer,
-			groupTranslation,
-			//center,
-			graphic,
-			//group,
-			shadow = series.options.shadow,
-			shadowGroup,
-			shapeArgs;
-
-		if (shadow && !series.shadowGroup) {
-			series.shadowGroup = renderer.g('shadow')
-				.add(series.group);
-		}
-
-		// draw the slices
-		each(series.points, function (point) {
-			graphic = point.graphic;
-			shapeArgs = point.shapeArgs;
-			shadowGroup = point.shadowGroup;
-
-			// put the shadow behind all points
-			if (shadow && !shadowGroup) {
-				shadowGroup = point.shadowGroup = renderer.g('shadow')
-					.add(series.shadowGroup);
-			}
-
-			// if the point is sliced, use special translation, else use plot area traslation
-			groupTranslation = point.sliced ? point.slicedTranslation : {
-				translateX: 0,
-				translateY: 0
-			};
-
-			//group.translate(groupTranslation[0], groupTranslation[1]);
-			if (shadowGroup) {
-				shadowGroup.attr(groupTranslation);
-			}
-
-			// draw the slice
-			if (graphic) {
-				graphic.animate(extend(shapeArgs, groupTranslation));
-			} else {
-				point.graphic = graphic = renderer.arc(shapeArgs)
-					.setRadialReference(series.center)
-					.attr(
-						point.pointAttr[point.selected ? SELECT_STATE : NORMAL_STATE]
-					)
-					.attr({ 'stroke-linejoin': 'round' })
-					.attr(groupTranslation)
-					.add(series.group)
-					.shadow(shadow, shadowGroup);	
-			}
-
-			// detect point specific visibility
-			if (point.visible === false) {
-				point.setVisible(false);
-			}
-
-		});
-
-	},
-
-	/**
-	 * Utility for sorting data labels
-	 */
-	sortByAngle: function (points, sign) {
-		points.sort(function (a, b) {
-			return a.angle !== undefined && (b.angle - a.angle) * sign;
-		});
-	},
-
-	/**
-	 * Override the base drawDataLabels method by pie specific functionality
-	 */
-	drawDataLabels: function () {
-		var series = this,
-			data = series.data,
-			point,
-			chart = series.chart,
-			options = series.options.dataLabels,
-			connectorPadding = pick(options.connectorPadding, 10),
-			connectorWidth = pick(options.connectorWidth, 1),
-			plotWidth = chart.plotWidth,
-			plotHeight = chart.plotHeight,
-			connector,
-			connectorPath,
-			softConnector = pick(options.softConnector, true),
-			distanceOption = options.distance,
-			seriesCenter = series.center,
-			radius = seriesCenter[2] / 2,
-			centerY = seriesCenter[1],
-			outside = distanceOption > 0,
-			dataLabel,
-			dataLabelWidth,
-			labelPos,
-			labelHeight,
-			halves = [// divide the points into right and left halves for anti collision
-				[], // right
-				[]  // left
-			],
-			x,
-			y,
-			visibility,
-			rankArr,
-			i,
-			j,
-			overflow = [0, 0, 0, 0], // top, right, bottom, left
-			sort = function (a, b) {
-				return b.y - a.y;
-			};
-
-		// get out if not enabled
-		if (!series.visible || (!options.enabled && !series._hasPointLabels)) {
-			return;
-		}
-
-		// run parent method
-		Series.prototype.drawDataLabels.apply(series);
-
-		// arrange points for detection collision
-		each(data, function (point) {
-			if (point.dataLabel) { // it may have been cancelled in the base method (#407)
-				halves[point.half].push(point);
-			}
-		});
-
-		// assume equal label heights
-		i = 0;
-		while (!labelHeight && data[i]) { // #1569
-			labelHeight = data[i] && data[i].dataLabel && (data[i].dataLabel.getBBox().height || 21); // 21 is for #968
-			i++;
-		}
-
-		/* Loop over the points in each half, starting from the top and bottom
-		 * of the pie to detect overlapping labels.
-		 */
-		i = 2;
-		while (i--) {
-
-			var slots = [],
-				slotsLength,
-				usedSlots = [],
-				points = halves[i],
-				pos,
-				length = points.length,
-				slotIndex;
-				
-			// Sort by angle
-			series.sortByAngle(points, i - 0.5);
-
-			// Only do anti-collision when we are outside the pie and have connectors (#856)
-			if (distanceOption > 0) {
-				
-				// build the slots
-				for (pos = centerY - radius - distanceOption; pos <= centerY + radius + distanceOption; pos += labelHeight) {
-					slots.push(pos);
-					
-					// visualize the slot
-					/*
-					var slotX = series.getX(pos, i) + chart.plotLeft - (i ? 100 : 0),
-						slotY = pos + chart.plotTop;
-					if (!isNaN(slotX)) {
-						chart.renderer.rect(slotX, slotY - 7, 100, labelHeight, 1)
-							.attr({
-								'stroke-width': 1,
-								stroke: 'silver'
-							})
-							.add();
-						chart.renderer.text('Slot '+ (slots.length - 1), slotX, slotY + 4)
-							.attr({
-								fill: 'silver'
-							}).add();
-					}
-					*/
-				}
-				slotsLength = slots.length;
-	
-				// if there are more values than available slots, remove lowest values
-				if (length > slotsLength) {
-					// create an array for sorting and ranking the points within each quarter
-					rankArr = [].concat(points);
-					rankArr.sort(sort);
-					j = length;
-					while (j--) {
-						rankArr[j].rank = j;
-					}
-					j = length;
-					while (j--) {
-						if (points[j].rank >= slotsLength) {
-							points.splice(j, 1);
-						}
-					}
-					length = points.length;
-				}
-	
-				// The label goes to the nearest open slot, but not closer to the edge than
-				// the label's index.
-				for (j = 0; j < length; j++) {
-	
-					point = points[j];
-					labelPos = point.labelPos;
-	
-					var closest = 9999,
-						distance,
-						slotI;
-	
-					// find the closest slot index
-					for (slotI = 0; slotI < slotsLength; slotI++) {
-						distance = mathAbs(slots[slotI] - labelPos[1]);
-						if (distance < closest) {
-							closest = distance;
-							slotIndex = slotI;
-						}
-					}
-	
-					// if that slot index is closer to the edges of the slots, move it
-					// to the closest appropriate slot
-					if (slotIndex < j && slots[j] !== null) { // cluster at the top
-						slotIndex = j;
-					} else if (slotsLength  < length - j + slotIndex && slots[j] !== null) { // cluster at the bottom
-						slotIndex = slotsLength - length + j;
-						while (slots[slotIndex] === null) { // make sure it is not taken
-							slotIndex++;
-						}
-					} else {
-						// Slot is taken, find next free slot below. In the next run, the next slice will find the
-						// slot above these, because it is the closest one
-						while (slots[slotIndex] === null) { // make sure it is not taken
-							slotIndex++;
-						}
-					}
-	
-					usedSlots.push({ i: slotIndex, y: slots[slotIndex] });
-					slots[slotIndex] = null; // mark as taken
-				}
-				// sort them in order to fill in from the top
-				usedSlots.sort(sort);
-			}
-
-			// now the used slots are sorted, fill them up sequentially
-			for (j = 0; j < length; j++) {
-				
-				var slot, naturalY;
-
-				point = points[j];
-				labelPos = point.labelPos;
-				dataLabel = point.dataLabel;
-				visibility = point.visible === false ? HIDDEN : VISIBLE;
-				naturalY = labelPos[1];
-				
-				if (distanceOption > 0) {
-					slot = usedSlots.pop();
-					slotIndex = slot.i;
-
-					// if the slot next to currrent slot is free, the y value is allowed
-					// to fall back to the natural position
-					y = slot.y;
-					if ((naturalY > y && slots[slotIndex + 1] !== null) ||
-							(naturalY < y &&  slots[slotIndex - 1] !== null)) {
-						y = naturalY;
-					}
-					
-				} else {
-					y = naturalY;
-				}
-
-				// get the x - use the natural x position for first and last slot, to prevent the top
-				// and botton slice connectors from touching each other on either side
-				x = options.justify ? 
-					seriesCenter[0] + (i ? -1 : 1) * (radius + distanceOption) :
-					series.getX(slotIndex === 0 || slotIndex === slots.length - 1 ? naturalY : y, i);
-				
-			
-				// Record the placement and visibility
-				dataLabel._attr = {
-					visibility: visibility,
-					align: labelPos[6]
-				};
-				dataLabel._pos = {
-					x: x + options.x +
-						({ left: connectorPadding, right: -connectorPadding }[labelPos[6]] || 0),
-					y: y + options.y - 10 // 10 is for the baseline (label vs text)
-				};
-				dataLabel.connX = x;
-				dataLabel.connY = y;
-				
-						
-				// Detect overflowing data labels
-				if (this.options.size === null) {
-					dataLabelWidth = dataLabel.width;
-					// Overflow left
-					if (x - dataLabelWidth < connectorPadding) {
-						overflow[3] = mathMax(mathRound(dataLabelWidth - x + connectorPadding), overflow[3]);
-						
-					// Overflow right
-					} else if (x + dataLabelWidth > plotWidth - connectorPadding) {
-						overflow[1] = mathMax(mathRound(x + dataLabelWidth - plotWidth + connectorPadding), overflow[1]);
-					}
-					
-					// Overflow top
-					if (y - labelHeight / 2 < 0) {
-						overflow[0] = mathMax(mathRound(-y + labelHeight / 2), overflow[0]);
-						
-					// Overflow left
-					} else if (y + labelHeight / 2 > plotHeight) {
-						overflow[2] = mathMax(mathRound(y + labelHeight / 2 - plotHeight), overflow[2]);
-					}
-				}
-			} // for each point
-		} // for each half
-		
-		// Do not apply the final placement and draw the connectors until we have verified
-		// that labels are not spilling over. 
-		if (arrayMax(overflow) === 0 || this.verifyDataLabelOverflow(overflow)) {
-			
-			// Place the labels in the final position
-			this.placeDataLabels();
-			
-			// Draw the connectors
-			if (outside && connectorWidth) {
-				each(this.points, function (point) {
-					connector = point.connector;
-					labelPos = point.labelPos;
-					dataLabel = point.dataLabel;
-					
-					if (dataLabel && dataLabel._pos) {
-						visibility = dataLabel._attr.visibility;
-						x = dataLabel.connX;
-						y = dataLabel.connY;
-						connectorPath = softConnector ? [
-							M,
-							x + (labelPos[6] === 'left' ? 5 : -5), y, // end of the string at the label
-							'C',
-							x, y, // first break, next to the label
-							2 * labelPos[2] - labelPos[4], 2 * labelPos[3] - labelPos[5],
-							labelPos[2], labelPos[3], // second break
-							L,
-							labelPos[4], labelPos[5] // base
-						] : [
-							M,
-							x + (labelPos[6] === 'left' ? 5 : -5), y, // end of the string at the label
-							L,
-							labelPos[2], labelPos[3], // second break
-							L,
-							labelPos[4], labelPos[5] // base
-						];
-		
-						if (connector) {
-							connector.animate({ d: connectorPath });
-							connector.attr('visibility', visibility);
-		
-						} else {
-							point.connector = connector = series.chart.renderer.path(connectorPath).attr({
-								'stroke-width': connectorWidth,
-								stroke: options.connectorColor || point.color || '#606060',
-								visibility: visibility
-							})
-							.add(series.group);
-						}
-					} else if (connector) {
-						point.connector = connector.destroy();
-					}
-				});
-			}			
-		}
-	},
-	
-	/**
-	 * Verify whether the data labels are allowed to draw, or we should run more translation and data
-	 * label positioning to keep them inside the plot area. Returns true when data labels are ready 
-	 * to draw.
-	 */
-	verifyDataLabelOverflow: function (overflow) {
-		
-		var center = this.center,
-			options = this.options,
-			centerOption = options.center,
-			minSize = options.minSize || 80,
-			newSize = minSize,
-			ret;
-			
-		// Handle horizontal size and center
-		if (centerOption[0] !== null) { // Fixed center
-			newSize = mathMax(center[2] - mathMax(overflow[1], overflow[3]), minSize);
-			
-		} else { // Auto center
-			newSize = mathMax(
-				center[2] - overflow[1] - overflow[3], // horizontal overflow					
-				minSize
-			);
-			center[0] += (overflow[3] - overflow[1]) / 2; // horizontal center
-		}
-		
-		// Handle vertical size and center
-		if (centerOption[1] !== null) { // Fixed center
-			newSize = mathMax(mathMin(newSize, center[2] - mathMax(overflow[0], overflow[2])), minSize);
-			
-		} else { // Auto center
-			newSize = mathMax(
-				mathMin(
-					newSize,		
-					center[2] - overflow[0] - overflow[2] // vertical overflow
-				),
-				minSize
-			);
-			center[1] += (overflow[0] - overflow[2]) / 2; // vertical center
-		}
-		
-		// If the size must be decreased, we need to run translate and drawDataLabels again
-		if (newSize < center[2]) {
-			center[2] = newSize;
-			this.translate(center);
-			each(this.points, function (point) {
-				if (point.dataLabel) {
-					point.dataLabel._pos = null; // reset
-				}
-			});
-			this.drawDataLabels();
-			
-		// Else, return true to indicate that the pie and its labels is within the plot area
-		} else {
-			ret = true;
-		}
-		return ret;
-	},
-	
-	/**
-	 * Perform the final placement of the data labels after we have verified that they
-	 * fall within the plot area.
-	 */
-	placeDataLabels: function () {
-		each(this.points, function (point) {
-			var dataLabel = point.dataLabel,
-				_pos;
-			
-			if (dataLabel) {
-				_pos = dataLabel._pos;
-				if (_pos) {
-					dataLabel.attr(dataLabel._attr);			
-					dataLabel[dataLabel.moved ? 'animate' : 'attr'](_pos);
-					dataLabel.moved = true;
-				} else if (dataLabel) {
-					dataLabel.attr({ y: -999 });
-				}
-			}
-		});
-	},
-	
-	alignDataLabel: noop,
-
-	/**
-	 * Draw point specific tracker objects. Inherit directly from column series.
-	 */
-	drawTracker: ColumnSeries.prototype.drawTracker,
-
-	/**
-	 * Use a simple symbol from column prototype
-	 */
-	drawLegendSymbol: AreaSeries.prototype.drawLegendSymbol,
-
-	/**
-	 * Pies don't have point marker symbols
-	 */
-	getSymbol: noop
-
-};
-PieSeries = extendClass(Series, PieSeries);
-seriesTypes.pie = PieSeries;
-
-
-// global variables
-extend(Highcharts, {
-	
-	// Constructors
-	Axis: Axis,
-	Chart: Chart,
-	Color: Color,
-	Legend: Legend,
-	Pointer: Pointer,
-	Point: Point,
-	Tick: Tick,
-	Tooltip: Tooltip,
-	Renderer: Renderer,
-	Series: Series,
-	SVGElement: SVGElement,
-	SVGRenderer: SVGRenderer,
-	
-	// Various
-	arrayMin: arrayMin,
-	arrayMax: arrayMax,
-	charts: charts,
-	dateFormat: dateFormat,
-	format: format,
-	pathAnim: pathAnim,
-	getOptions: getOptions,
-	hasBidiBug: hasBidiBug,
-	isTouchDevice: isTouchDevice,
-	numberFormat: numberFormat,
-	seriesTypes: seriesTypes,
-	setOptions: setOptions,
-	addEvent: addEvent,
-	removeEvent: removeEvent,
-	createElement: createElement,
-	discardElement: discardElement,
-	css: css,
-	each: each,
-	extend: extend,
-	map: map,
-	merge: merge,
-	pick: pick,
-	splat: splat,
-	extendClass: extendClass,
-	pInt: pInt,
-	wrap: wrap,
-	svg: hasSVG,
-	canvas: useCanVG,
-	vml: !hasSVG && !useCanVG,
-	product: PRODUCT,
-	version: VERSION
-});
-}());
diff --git a/server/public/ueditor/third-party/highcharts/modules/annotations.js b/server/public/ueditor/third-party/highcharts/modules/annotations.js
deleted file mode 100644
index 773f292..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/annotations.js
+++ /dev/null
@@ -1,7 +0,0 @@
-(function(i,C){function m(a){return typeof a==="number"}function n(a){return a!==D&&a!==null}var D,p,r,s=i.Chart,t=i.extend,z=i.each;r=["path","rect","circle"];p={top:0,left:0,center:0.5,middle:0.5,bottom:1,right:1};var u=C.inArray,A=i.merge,B=function(){this.init.apply(this,arguments)};B.prototype={init:function(a,d){var c=d.shape&&d.shape.type;this.chart=a;var b,f;f={xAxis:0,yAxis:0,title:{style:{},text:"",x:0,y:0},shape:{params:{stroke:"#000000",fill:"transparent",strokeWidth:2}}};b={circle:{params:{x:0,
-y:0}}};if(b[c])f.shape=A(f.shape,b[c]);this.options=A({},f,d)},render:function(a){var d=this.chart,c=this.chart.renderer,b=this.group,f=this.title,e=this.shape,h=this.options,i=h.title,l=h.shape;if(!b)b=this.group=c.g();if(!e&&l&&u(l.type,r)!==-1)e=this.shape=c[h.shape.type](l.params),e.add(b);if(!f&&i)f=this.title=c.label(i),f.add(b);b.add(d.annotations.group);this.linkObjects();a!==!1&&this.redraw()},redraw:function(){var a=this.options,d=this.chart,c=this.group,b=this.title,f=this.shape,e=this.linkedObject,
-h=d.xAxis[a.xAxis],v=d.yAxis[a.yAxis],l=a.width,w=a.height,x=p[a.anchorY],y=p[a.anchorX],j,o,g,q;if(e)j=e instanceof i.Point?"point":e instanceof i.Series?"series":null,j==="point"?(a.xValue=e.x,a.yValue=e.y,o=e.series):j==="series"&&(o=e),c.visibility!==o.group.visibility&&c.attr({visibility:o.group.visibility});e=n(a.xValue)?h.toPixels(a.xValue+h.minPointOffset)-h.minPixelPadding:a.x;j=n(a.yValue)?v.toPixels(a.yValue):a.y;if(!isNaN(e)&&!isNaN(j)&&m(e)&&m(j)){b&&(b.attr(a.title),b.css(a.title.style));
-if(f){b=t({},a.shape.params);if(a.units==="values"){for(g in b)u(g,["width","x"])>-1?b[g]=h.translate(b[g]):u(g,["height","y"])>-1&&(b[g]=v.translate(b[g]));b.width&&(b.width-=h.toPixels(0)-h.left);b.x&&(b.x+=h.minPixelPadding);if(a.shape.type==="path"){g=b.d;o=e;for(var r=j,s=g.length,k=0;k<s;)typeof g[k]==="number"&&typeof g[k+1]==="number"?(g[k]=h.toPixels(g[k])-o,g[k+1]=v.toPixels(g[k+1])-r,k+=2):k+=1}}a.shape.type==="circle"&&(b.x+=b.r,b.y+=b.r);f.attr(b)}c.bBox=null;if(!m(l))q=c.getBBox(),l=
-q.width;if(!m(w))q||(q=c.getBBox()),w=q.height;if(!m(y))y=p.center;if(!m(x))x=p.center;e-=l*y;j-=w*x;d.animation&&n(c.translateX)&&n(c.translateY)?c.animate({translateX:e,translateY:j}):c.translate(e,j)}},destroy:function(){var a=this,d=this.chart.annotations.allItems,c=d.indexOf(a);c>-1&&d.splice(c,1);z(["title","shape","group"],function(b){a[b]&&(a[b].destroy(),a[b]=null)});a.group=a.title=a.shape=a.chart=a.options=null},update:function(a,d){t(this.options,a);this.linkObjects();this.render(d)},
-linkObjects:function(){var a=this.chart,d=this.linkedObject,c=d&&(d.id||d.options.id),b=this.options.linkedTo;if(n(b)){if(!n(d)||b!==c)this.linkedObject=a.get(b)}else this.linkedObject=null}};t(s.prototype,{annotations:{add:function(a,d){var c=this.allItems,b=this.chart,f,e;Object.prototype.toString.call(a)==="[object Array]"||(a=[a]);for(e=a.length;e--;)f=new B(b,a[e]),c.push(f),f.render(d)},redraw:function(){z(this.allItems,function(a){a.redraw()})}}});s.prototype.callbacks.push(function(a){var d=
-a.options.annotations,c;c=a.renderer.g("annotations");c.attr({zIndex:7});c.add();a.annotations.allItems=[];a.annotations.chart=a;a.annotations.group=c;Object.prototype.toString.call(d)==="[object Array]"&&d.length>0&&a.annotations.add(a.options.annotations);i.addEvent(a,"redraw",function(){a.annotations.redraw()})})})(Highcharts,HighchartsAdapter);
diff --git a/server/public/ueditor/third-party/highcharts/modules/annotations.src.js b/server/public/ueditor/third-party/highcharts/modules/annotations.src.js
deleted file mode 100644
index 38fea4e..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/annotations.src.js
+++ /dev/null
@@ -1,401 +0,0 @@
-(function (Highcharts, HighchartsAdapter) {
-
-var UNDEFINED,
-	ALIGN_FACTOR,
-	ALLOWED_SHAPES,
-	Chart = Highcharts.Chart,
-	extend = Highcharts.extend,
-	each = Highcharts.each;
-
-ALLOWED_SHAPES = ["path", "rect", "circle"];
-
-ALIGN_FACTOR = {
-	top: 0,
-	left: 0,
-	center: 0.5,
-	middle: 0.5,
-	bottom: 1,
-	right: 1
-};
-
-
-// Highcharts helper methods
-var inArray = HighchartsAdapter.inArray,
-	merge = Highcharts.merge;
-
-function defaultOptions(shapeType) {
-	var shapeOptions,
-		options;
-
-	options = {
-		xAxis: 0,
-		yAxis: 0,
-		title: {
-			style: {},
-			text: "",
-			x: 0,
-			y: 0
-		},
-		shape: {
-			params: {
-				stroke: "#000000",
-				fill: "transparent",
-				strokeWidth: 2
-			}
-		}
-	};
-
-	shapeOptions = {
-		circle: {
-			params: {
-				x: 0,
-				y: 0
-			}
-		}
-	};
-
-	if (shapeOptions[shapeType]) {
-		options.shape = merge(options.shape, shapeOptions[shapeType]);
-	}
-
-	return options;
-}
-
-function isArray(obj) {
-	return Object.prototype.toString.call(obj) === '[object Array]';
-}
-
-function isNumber(n) {
-	return typeof n === 'number';
-}
-
-function defined(obj) {
-	return obj !== UNDEFINED && obj !== null;
-}
-
-function translatePath(d, xAxis, yAxis, xOffset, yOffset) {
-	var len = d.length,
-		i = 0;
-
-	while (i < len) {
-		if (typeof d[i] === 'number' && typeof d[i + 1] === 'number') {
-			d[i] = xAxis.toPixels(d[i]) - xOffset;
-			d[i + 1] = yAxis.toPixels(d[i + 1]) - yOffset;
-			i += 2;
-		} else {
-			i += 1;
-		}
-	}
-
-	return d;
-}
-
-
-// Define annotation prototype
-var Annotation = function () {
-	this.init.apply(this, arguments);
-};
-Annotation.prototype = {
-	/* 
-	 * Initialize the annotation
-	 */
-	init: function (chart, options) {
-		var shapeType = options.shape && options.shape.type;
-
-		this.chart = chart;
-		this.options = merge({}, defaultOptions(shapeType), options);
-	},
-
-	/*
-	 * Render the annotation
-	 */
-	render: function (redraw) {
-		var annotation = this,
-			chart = this.chart,
-			renderer = annotation.chart.renderer,
-			group = annotation.group,
-			title = annotation.title,
-			shape = annotation.shape,
-			options = annotation.options,
-			titleOptions = options.title,
-			shapeOptions = options.shape;
-
-		if (!group) {
-			group = annotation.group = renderer.g();
-		}
-
-
-		if (!shape && shapeOptions && inArray(shapeOptions.type, ALLOWED_SHAPES) !== -1) {
-			shape = annotation.shape = renderer[options.shape.type](shapeOptions.params);
-			shape.add(group);
-		}
-
-		if (!title && titleOptions) {
-			title = annotation.title = renderer.label(titleOptions);
-			title.add(group);
-		}
-
-		group.add(chart.annotations.group);
-
-		// link annotations to point or series
-		annotation.linkObjects();
-
-		if (redraw !== false) {
-			annotation.redraw();
-		}
-	},
-
-	/*
-	 * Redraw the annotation title or shape after options update
-	 */
-	redraw: function () {
-		var options = this.options,
-			chart = this.chart,
-			group = this.group,
-			title = this.title,
-			shape = this.shape,
-			linkedTo = this.linkedObject,
-			xAxis = chart.xAxis[options.xAxis],
-			yAxis = chart.yAxis[options.yAxis],
-			width = options.width,
-			height = options.height,
-			anchorY = ALIGN_FACTOR[options.anchorY],
-			anchorX = ALIGN_FACTOR[options.anchorX],
-			resetBBox = false,
-			shapeParams,
-			linkType,
-			series,
-			param,
-			bbox,
-			x,
-			y;
-
-		if (linkedTo) {
-			linkType = (linkedTo instanceof Highcharts.Point) ? 'point' :
-						(linkedTo instanceof Highcharts.Series) ? 'series' : null;
-
-			if (linkType === 'point') {
-				options.xValue = linkedTo.x;
-				options.yValue = linkedTo.y;
-				series = linkedTo.series;
-			} else if (linkType === 'series') {
-				series = linkedTo;
-			}
-
-			if (group.visibility !== series.group.visibility) {
-				group.attr({
-					visibility: series.group.visibility
-				});
-			}
-		}
-
-
-		// Based on given options find annotation pixel position
-		x = (defined(options.xValue) ? xAxis.toPixels(options.xValue + xAxis.minPointOffset) - xAxis.minPixelPadding : options.x);
-		y = defined(options.yValue) ? yAxis.toPixels(options.yValue) : options.y;
-
-		if (isNaN(x) || isNaN(y) || !isNumber(x) || !isNumber(y)) {
-			return;
-		}
-
-
-		if (title) {
-			title.attr(options.title);
-			title.css(options.title.style);
-			resetBBox = true;
-		}
-
-		if (shape) {
-			shapeParams = extend({}, options.shape.params);
-
-			if (options.units === 'values') {
-				for (param in shapeParams) {
-					if (inArray(param, ['width', 'x']) > -1) {
-						shapeParams[param] = xAxis.translate(shapeParams[param]);
-					} else if (inArray(param, ['height', 'y']) > -1) {
-						shapeParams[param] = yAxis.translate(shapeParams[param]);
-					}
-				}
-
-				if (shapeParams.width) {
-					shapeParams.width -= xAxis.toPixels(0) - xAxis.left;
-				}
-
-				if (shapeParams.x) {
-					shapeParams.x += xAxis.minPixelPadding;
-				}
-
-				if (options.shape.type === 'path') {
-					translatePath(shapeParams.d, xAxis, yAxis, x, y);
-				}
-			}
-
-			// move the center of the circle to shape x/y
-			if (options.shape.type === 'circle') {
-				shapeParams.x += shapeParams.r;
-				shapeParams.y += shapeParams.r;
-			}
-
-			resetBBox = true;
-			shape.attr(shapeParams);
-		}
-
-		group.bBox = null;
-
-		// If annotation width or height is not defined in options use bounding box size
-		if (!isNumber(width)) {
-			bbox = group.getBBox();
-			width = bbox.width;
-		}
-
-		if (!isNumber(height)) {
-			// get bbox only if it wasn't set before
-			if (!bbox) {
-				bbox = group.getBBox();
-			}
-
-			height = bbox.height;
-		}
-
-		// Calculate anchor point
-		if (!isNumber(anchorX)) {
-			anchorX = ALIGN_FACTOR.center;
-		}
-
-		if (!isNumber(anchorY)) {
-			anchorY = ALIGN_FACTOR.center;
-		}
-
-		// Translate group according to its dimension and anchor point
-		x = x - width * anchorX;
-		y = y - height * anchorY;
-
-		if (chart.animation && defined(group.translateX) && defined(group.translateY)) {
-			group.animate({
-				translateX: x,
-				translateY: y
-			});
-		} else {
-			group.translate(x, y);
-		}
-	},
-
-	/*
-	 * Destroy the annotation
-	 */
-	destroy: function () {
-		var annotation = this,
-			chart = this.chart,
-			allItems = chart.annotations.allItems,
-			index = allItems.indexOf(annotation);
-
-		if (index > -1) {
-			allItems.splice(index, 1);
-		}
-
-		each(['title', 'shape', 'group'], function (element) {
-			if (annotation[element]) {
-				annotation[element].destroy();
-				annotation[element] = null;
-			}
-		});
-
-		annotation.group = annotation.title = annotation.shape = annotation.chart = annotation.options = null;
-	},
-
-	/*
-	 * Update the annotation with a given options
-	 */
-	update: function (options, redraw) {
-		extend(this.options, options);
-
-		// update link to point or series
-		this.linkObjects();
-
-		this.render(redraw);
-	},
-
-	linkObjects: function () {
-		var annotation = this,
-			chart = annotation.chart,
-			linkedTo = annotation.linkedObject,
-			linkedId = linkedTo && (linkedTo.id || linkedTo.options.id),
-			options = annotation.options,
-			id = options.linkedTo;
-
-		if (!defined(id)) {
-			annotation.linkedObject = null;
-		} else if (!defined(linkedTo) || id !== linkedId) {
-			annotation.linkedObject = chart.get(id);
-		}
-	}
-};
-
-
-// Add annotations methods to chart prototype
-extend(Chart.prototype, {
-	annotations: {
-		/*
-		 * Unified method for adding annotations to the chart
-		 */
-		add: function (options, redraw) {
-			var annotations = this.allItems,
-				chart = this.chart,
-				item,
-				len;
-
-			if (!isArray(options)) {
-				options = [options];
-			}
-
-			len = options.length;
-
-			while (len--) {
-				item = new Annotation(chart, options[len]);
-				annotations.push(item);
-				item.render(redraw);
-			}
-		},
-
-		/**
-		 * Redraw all annotations, method used in chart events
-		 */
-		redraw: function () {
-			each(this.allItems, function (annotation) {
-				annotation.redraw();
-			});
-		}
-	}
-});
-
-
-// Initialize on chart load
-Chart.prototype.callbacks.push(function (chart) {
-	var options = chart.options.annotations,
-		group;
-
-	group = chart.renderer.g("annotations");
-	group.attr({
-		zIndex: 7
-	});
-	group.add();
-
-	// initialize empty array for annotations
-	chart.annotations.allItems = [];
-
-	// link chart object to annotations
-	chart.annotations.chart = chart;
-
-	// link annotations group element to the chart
-	chart.annotations.group = group;
-
-	if (isArray(options) && options.length > 0) {
-		chart.annotations.add(chart.options.annotations);
-	}
-
-	// update annotations after chart redraw
-	Highcharts.addEvent(chart, 'redraw', function () {
-		chart.annotations.redraw();
-	});
-});
-}(Highcharts, HighchartsAdapter));
diff --git a/server/public/ueditor/third-party/highcharts/modules/canvas-tools.js b/server/public/ueditor/third-party/highcharts/modules/canvas-tools.js
deleted file mode 100644
index 28c3893..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/canvas-tools.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- A class to parse color values
- @author Stoyan Stefanov <sstoo@gmail.com>
- @link   http://www.phpied.com/rgb-color-parser-in-javascript/
- Use it if you like it
-
- canvg.js - Javascript SVG parser and renderer on Canvas
- MIT Licensed 
- Gabe Lerner (gabelerner@gmail.com)
- http://code.google.com/p/canvg/
-
- Requires: rgbcolor.js - http://www.phpied.com/rgb-color-parser-in-javascript/
-
- Highcharts JS v3.0.6 (2013-10-04)
- CanVGRenderer Extension module
-
- (c) 2011-2012 Torstein H酶nsi, Erik Olsson
-
- License: www.highcharts.com/license
-*/
-function RGBColor(m){this.ok=!1;m.charAt(0)=="#"&&(m=m.substr(1,6));var m=m.replace(/ /g,""),m=m.toLowerCase(),a={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",
-darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",
-gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",
-lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",
-oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",
-slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"},c;for(c in a)m==c&&(m=a[c]);var d=[{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(b){return[parseInt(b[1]),parseInt(b[2]),parseInt(b[3])]}},{re:/^(\w{2})(\w{2})(\w{2})$/,
-example:["#00ff00","336699"],process:function(b){return[parseInt(b[1],16),parseInt(b[2],16),parseInt(b[3],16)]}},{re:/^(\w{1})(\w{1})(\w{1})$/,example:["#fb0","f0f"],process:function(b){return[parseInt(b[1]+b[1],16),parseInt(b[2]+b[2],16),parseInt(b[3]+b[3],16)]}}];for(c=0;c<d.length;c++){var b=d[c].process,k=d[c].re.exec(m);if(k)channels=b(k),this.r=channels[0],this.g=channels[1],this.b=channels[2],this.ok=!0}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r;this.g=this.g<0||isNaN(this.g)?0:
-this.g>255?255:this.g;this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b;this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"};this.toHex=function(){var b=this.r.toString(16),a=this.g.toString(16),d=this.b.toString(16);b.length==1&&(b="0"+b);a.length==1&&(a="0"+a);d.length==1&&(d="0"+d);return"#"+b+a+d};this.getHelpXML=function(){for(var b=[],k=0;k<d.length;k++)for(var c=d[k].example,j=0;j<c.length;j++)b[b.length]=c[j];for(var h in a)b[b.length]=h;c=document.createElement("ul");
-c.setAttribute("id","rgbcolor-examples");for(k=0;k<b.length;k++)try{var l=document.createElement("li"),o=new RGBColor(b[k]),n=document.createElement("div");n.style.cssText="margin: 3px; border: 1px solid black; background:"+o.toHex()+"; color:"+o.toHex();n.appendChild(document.createTextNode("test"));var q=document.createTextNode(" "+b[k]+" -> "+o.toRGB()+" -> "+o.toHex());l.appendChild(n);l.appendChild(q);c.appendChild(l)}catch(p){}return c}}
-if(!window.console)window.console={},window.console.log=function(){},window.console.dir=function(){};if(!Array.prototype.indexOf)Array.prototype.indexOf=function(m){for(var a=0;a<this.length;a++)if(this[a]==m)return a;return-1};
-(function(){function m(){var a={FRAMERATE:30,MAX_VIRTUAL_PIXELS:3E4};a.init=function(c){a.Definitions={};a.Styles={};a.Animations=[];a.Images=[];a.ctx=c;a.ViewPort=new function(){this.viewPorts=[];this.Clear=function(){this.viewPorts=[]};this.SetCurrent=function(a,b){this.viewPorts.push({width:a,height:b})};this.RemoveCurrent=function(){this.viewPorts.pop()};this.Current=function(){return this.viewPorts[this.viewPorts.length-1]};this.width=function(){return this.Current().width};this.height=function(){return this.Current().height};
-this.ComputeSize=function(a){return a!=null&&typeof a=="number"?a:a=="x"?this.width():a=="y"?this.height():Math.sqrt(Math.pow(this.width(),2)+Math.pow(this.height(),2))/Math.sqrt(2)}}};a.init();a.ImagesLoaded=function(){for(var c=0;c<a.Images.length;c++)if(!a.Images[c].loaded)return!1;return!0};a.trim=function(a){return a.replace(/^\s+|\s+$/g,"")};a.compressSpaces=function(a){return a.replace(/[\s\r\t\n]+/gm," ")};a.ajax=function(a){var d;return(d=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"))?
-(d.open("GET",a,!1),d.send(null),d.responseText):null};a.parseXml=function(a){if(window.DOMParser)return(new DOMParser).parseFromString(a,"text/xml");else{var a=a.replace(/<!DOCTYPE svg[^>]*>/,""),d=new ActiveXObject("Microsoft.XMLDOM");d.async="false";d.loadXML(a);return d}};a.Property=function(c,d){this.name=c;this.value=d;this.hasValue=function(){return this.value!=null&&this.value!==""};this.numValue=function(){if(!this.hasValue())return 0;var b=parseFloat(this.value);(this.value+"").match(/%$/)&&
-(b/=100);return b};this.valueOrDefault=function(b){return this.hasValue()?this.value:b};this.numValueOrDefault=function(b){return this.hasValue()?this.numValue():b};var b=this;this.Color={addOpacity:function(d){var c=b.value;if(d!=null&&d!=""){var f=new RGBColor(b.value);f.ok&&(c="rgba("+f.r+", "+f.g+", "+f.b+", "+d+")")}return new a.Property(b.name,c)}};this.Definition={getDefinition:function(){var d=b.value.replace(/^(url\()?#([^\)]+)\)?$/,"$2");return a.Definitions[d]},isUrl:function(){return b.value.indexOf("url(")==
-0},getFillStyle:function(b){var d=this.getDefinition();return d!=null&&d.createGradient?d.createGradient(a.ctx,b):d!=null&&d.createPattern?d.createPattern(a.ctx,b):null}};this.Length={DPI:function(){return 96},EM:function(b){var d=12,c=new a.Property("fontSize",a.Font.Parse(a.ctx.font).fontSize);c.hasValue()&&(d=c.Length.toPixels(b));return d},toPixels:function(d){if(!b.hasValue())return 0;var c=b.value+"";return c.match(/em$/)?b.numValue()*this.EM(d):c.match(/ex$/)?b.numValue()*this.EM(d)/2:c.match(/px$/)?
-b.numValue():c.match(/pt$/)?b.numValue()*1.25:c.match(/pc$/)?b.numValue()*15:c.match(/cm$/)?b.numValue()*this.DPI(d)/2.54:c.match(/mm$/)?b.numValue()*this.DPI(d)/25.4:c.match(/in$/)?b.numValue()*this.DPI(d):c.match(/%$/)?b.numValue()*a.ViewPort.ComputeSize(d):b.numValue()}};this.Time={toMilliseconds:function(){if(!b.hasValue())return 0;var a=b.value+"";if(a.match(/s$/))return b.numValue()*1E3;a.match(/ms$/);return b.numValue()}};this.Angle={toRadians:function(){if(!b.hasValue())return 0;var a=b.value+
-"";return a.match(/deg$/)?b.numValue()*(Math.PI/180):a.match(/grad$/)?b.numValue()*(Math.PI/200):a.match(/rad$/)?b.numValue():b.numValue()*(Math.PI/180)}}};a.Font=new function(){this.Styles=["normal","italic","oblique","inherit"];this.Variants=["normal","small-caps","inherit"];this.Weights="normal,bold,bolder,lighter,100,200,300,400,500,600,700,800,900,inherit".split(",");this.CreateFont=function(d,b,c,e,f,g){g=g!=null?this.Parse(g):this.CreateFont("","","","","",a.ctx.font);return{fontFamily:f||
-g.fontFamily,fontSize:e||g.fontSize,fontStyle:d||g.fontStyle,fontWeight:c||g.fontWeight,fontVariant:b||g.fontVariant,toString:function(){return[this.fontStyle,this.fontVariant,this.fontWeight,this.fontSize,this.fontFamily].join(" ")}}};var c=this;this.Parse=function(d){for(var b={},d=a.trim(a.compressSpaces(d||"")).split(" "),k=!1,e=!1,f=!1,g=!1,j="",h=0;h<d.length;h++)if(!e&&c.Styles.indexOf(d[h])!=-1){if(d[h]!="inherit")b.fontStyle=d[h];e=!0}else if(!g&&c.Variants.indexOf(d[h])!=-1){if(d[h]!="inherit")b.fontVariant=
-d[h];e=g=!0}else if(!f&&c.Weights.indexOf(d[h])!=-1){if(d[h]!="inherit")b.fontWeight=d[h];e=g=f=!0}else if(k)d[h]!="inherit"&&(j+=d[h]);else{if(d[h]!="inherit")b.fontSize=d[h].split("/")[0];e=g=f=k=!0}if(j!="")b.fontFamily=j;return b}};a.ToNumberArray=function(c){for(var c=a.trim(a.compressSpaces((c||"").replace(/,/g," "))).split(" "),d=0;d<c.length;d++)c[d]=parseFloat(c[d]);return c};a.Point=function(a,d){this.x=a;this.y=d;this.angleTo=function(b){return Math.atan2(b.y-this.y,b.x-this.x)};this.applyTransform=
-function(b){var a=this.x*b[1]+this.y*b[3]+b[5];this.x=this.x*b[0]+this.y*b[2]+b[4];this.y=a}};a.CreatePoint=function(c){c=a.ToNumberArray(c);return new a.Point(c[0],c[1])};a.CreatePath=function(c){for(var c=a.ToNumberArray(c),d=[],b=0;b<c.length;b+=2)d.push(new a.Point(c[b],c[b+1]));return d};a.BoundingBox=function(a,d,b,k){this.y2=this.x2=this.y1=this.x1=Number.NaN;this.x=function(){return this.x1};this.y=function(){return this.y1};this.width=function(){return this.x2-this.x1};this.height=function(){return this.y2-
-this.y1};this.addPoint=function(b,a){if(b!=null){if(isNaN(this.x1)||isNaN(this.x2))this.x2=this.x1=b;if(b<this.x1)this.x1=b;if(b>this.x2)this.x2=b}if(a!=null){if(isNaN(this.y1)||isNaN(this.y2))this.y2=this.y1=a;if(a<this.y1)this.y1=a;if(a>this.y2)this.y2=a}};this.addX=function(b){this.addPoint(b,null)};this.addY=function(b){this.addPoint(null,b)};this.addBoundingBox=function(b){this.addPoint(b.x1,b.y1);this.addPoint(b.x2,b.y2)};this.addQuadraticCurve=function(b,a,d,c,k,l){d=b+2/3*(d-b);c=a+2/3*(c-
-a);this.addBezierCurve(b,a,d,d+1/3*(k-b),c,c+1/3*(l-a),k,l)};this.addBezierCurve=function(b,a,d,c,k,l,o,n){var q=[b,a],p=[d,c],t=[k,l],m=[o,n];this.addPoint(q[0],q[1]);this.addPoint(m[0],m[1]);for(i=0;i<=1;i++)b=function(b){return Math.pow(1-b,3)*q[i]+3*Math.pow(1-b,2)*b*p[i]+3*(1-b)*Math.pow(b,2)*t[i]+Math.pow(b,3)*m[i]},a=6*q[i]-12*p[i]+6*t[i],d=-3*q[i]+9*p[i]-9*t[i]+3*m[i],c=3*p[i]-3*q[i],d==0?a!=0&&(a=-c/a,0<a&&a<1&&(i==0&&this.addX(b(a)),i==1&&this.addY(b(a)))):(c=Math.pow(a,2)-4*c*d,c<0||(k=
-(-a+Math.sqrt(c))/(2*d),0<k&&k<1&&(i==0&&this.addX(b(k)),i==1&&this.addY(b(k))),a=(-a-Math.sqrt(c))/(2*d),0<a&&a<1&&(i==0&&this.addX(b(a)),i==1&&this.addY(b(a)))))};this.isPointInBox=function(b,a){return this.x1<=b&&b<=this.x2&&this.y1<=a&&a<=this.y2};this.addPoint(a,d);this.addPoint(b,k)};a.Transform=function(c){var d=this;this.Type={};this.Type.translate=function(b){this.p=a.CreatePoint(b);this.apply=function(b){b.translate(this.p.x||0,this.p.y||0)};this.applyToPoint=function(b){b.applyTransform([1,
-0,0,1,this.p.x||0,this.p.y||0])}};this.Type.rotate=function(b){b=a.ToNumberArray(b);this.angle=new a.Property("angle",b[0]);this.cx=b[1]||0;this.cy=b[2]||0;this.apply=function(b){b.translate(this.cx,this.cy);b.rotate(this.angle.Angle.toRadians());b.translate(-this.cx,-this.cy)};this.applyToPoint=function(b){var a=this.angle.Angle.toRadians();b.applyTransform([1,0,0,1,this.p.x||0,this.p.y||0]);b.applyTransform([Math.cos(a),Math.sin(a),-Math.sin(a),Math.cos(a),0,0]);b.applyTransform([1,0,0,1,-this.p.x||
-0,-this.p.y||0])}};this.Type.scale=function(b){this.p=a.CreatePoint(b);this.apply=function(b){b.scale(this.p.x||1,this.p.y||this.p.x||1)};this.applyToPoint=function(b){b.applyTransform([this.p.x||0,0,0,this.p.y||0,0,0])}};this.Type.matrix=function(b){this.m=a.ToNumberArray(b);this.apply=function(b){b.transform(this.m[0],this.m[1],this.m[2],this.m[3],this.m[4],this.m[5])};this.applyToPoint=function(b){b.applyTransform(this.m)}};this.Type.SkewBase=function(b){this.base=d.Type.matrix;this.base(b);this.angle=
-new a.Property("angle",b)};this.Type.SkewBase.prototype=new this.Type.matrix;this.Type.skewX=function(b){this.base=d.Type.SkewBase;this.base(b);this.m=[1,0,Math.tan(this.angle.Angle.toRadians()),1,0,0]};this.Type.skewX.prototype=new this.Type.SkewBase;this.Type.skewY=function(b){this.base=d.Type.SkewBase;this.base(b);this.m=[1,Math.tan(this.angle.Angle.toRadians()),0,1,0,0]};this.Type.skewY.prototype=new this.Type.SkewBase;this.transforms=[];this.apply=function(b){for(var a=0;a<this.transforms.length;a++)this.transforms[a].apply(b)};
-this.applyToPoint=function(b){for(var a=0;a<this.transforms.length;a++)this.transforms[a].applyToPoint(b)};for(var c=a.trim(a.compressSpaces(c)).split(/\s(?=[a-z])/),b=0;b<c.length;b++){var k=c[b].split("(")[0],e=c[b].split("(")[1].replace(")","");this.transforms.push(new this.Type[k](e))}};a.AspectRatio=function(c,d,b,k,e,f,g,j,h,l){var d=a.compressSpaces(d),d=d.replace(/^defer\s/,""),o=d.split(" ")[0]||"xMidYMid",d=d.split(" ")[1]||"meet",n=b/k,q=e/f,p=Math.min(n,q),m=Math.max(n,q);d=="meet"&&(k*=
-p,f*=p);d=="slice"&&(k*=m,f*=m);h=new a.Property("refX",h);l=new a.Property("refY",l);h.hasValue()&&l.hasValue()?c.translate(-p*h.Length.toPixels("x"),-p*l.Length.toPixels("y")):(o.match(/^xMid/)&&(d=="meet"&&p==q||d=="slice"&&m==q)&&c.translate(b/2-k/2,0),o.match(/YMid$/)&&(d=="meet"&&p==n||d=="slice"&&m==n)&&c.translate(0,e/2-f/2),o.match(/^xMax/)&&(d=="meet"&&p==q||d=="slice"&&m==q)&&c.translate(b-k,0),o.match(/YMax$/)&&(d=="meet"&&p==n||d=="slice"&&m==n)&&c.translate(0,e-f));o=="none"?c.scale(n,
-q):d=="meet"?c.scale(p,p):d=="slice"&&c.scale(m,m);c.translate(g==null?0:-g,j==null?0:-j)};a.Element={};a.Element.ElementBase=function(c){this.attributes={};this.styles={};this.children=[];this.attribute=function(b,d){var c=this.attributes[b];if(c!=null)return c;c=new a.Property(b,"");d==!0&&(this.attributes[b]=c);return c};this.style=function(b,d){var c=this.styles[b];if(c!=null)return c;c=this.attribute(b);if(c!=null&&c.hasValue())return c;c=this.parent;if(c!=null&&(c=c.style(b),c!=null&&c.hasValue()))return c;
-c=new a.Property(b,"");d==!0&&(this.styles[b]=c);return c};this.render=function(b){if(this.style("display").value!="none"&&this.attribute("visibility").value!="hidden"){b.save();this.setContext(b);if(this.attribute("mask").hasValue()){var a=this.attribute("mask").Definition.getDefinition();a!=null&&a.apply(b,this)}else this.style("filter").hasValue()?(a=this.style("filter").Definition.getDefinition(),a!=null&&a.apply(b,this)):this.renderChildren(b);this.clearContext(b);b.restore()}};this.setContext=
-function(){};this.clearContext=function(){};this.renderChildren=function(b){for(var a=0;a<this.children.length;a++)this.children[a].render(b)};this.addChild=function(b,d){var c=b;d&&(c=a.CreateElement(b));c.parent=this;this.children.push(c)};if(c!=null&&c.nodeType==1){for(var d=0;d<c.childNodes.length;d++){var b=c.childNodes[d];b.nodeType==1&&this.addChild(b,!0)}for(d=0;d<c.attributes.length;d++)b=c.attributes[d],this.attributes[b.nodeName]=new a.Property(b.nodeName,b.nodeValue);b=a.Styles[c.nodeName];
-if(b!=null)for(var k in b)this.styles[k]=b[k];if(this.attribute("class").hasValue())for(var d=a.compressSpaces(this.attribute("class").value).split(" "),e=0;e<d.length;e++){b=a.Styles["."+d[e]];if(b!=null)for(k in b)this.styles[k]=b[k];b=a.Styles[c.nodeName+"."+d[e]];if(b!=null)for(k in b)this.styles[k]=b[k]}if(this.attribute("style").hasValue()){b=this.attribute("style").value.split(";");for(d=0;d<b.length;d++)a.trim(b[d])!=""&&(c=b[d].split(":"),k=a.trim(c[0]),c=a.trim(c[1]),this.styles[k]=new a.Property(k,
-c))}this.attribute("id").hasValue()&&a.Definitions[this.attribute("id").value]==null&&(a.Definitions[this.attribute("id").value]=this)}};a.Element.RenderedElementBase=function(c){this.base=a.Element.ElementBase;this.base(c);this.setContext=function(d){if(this.style("fill").Definition.isUrl()){var b=this.style("fill").Definition.getFillStyle(this);if(b!=null)d.fillStyle=b}else if(this.style("fill").hasValue())b=this.style("fill"),this.style("fill-opacity").hasValue()&&(b=b.Color.addOpacity(this.style("fill-opacity").value)),
-d.fillStyle=b.value=="none"?"rgba(0,0,0,0)":b.value;if(this.style("stroke").Definition.isUrl()){if(b=this.style("stroke").Definition.getFillStyle(this),b!=null)d.strokeStyle=b}else if(this.style("stroke").hasValue())b=this.style("stroke"),this.style("stroke-opacity").hasValue()&&(b=b.Color.addOpacity(this.style("stroke-opacity").value)),d.strokeStyle=b.value=="none"?"rgba(0,0,0,0)":b.value;if(this.style("stroke-width").hasValue())d.lineWidth=this.style("stroke-width").Length.toPixels();if(this.style("stroke-linecap").hasValue())d.lineCap=
-this.style("stroke-linecap").value;if(this.style("stroke-linejoin").hasValue())d.lineJoin=this.style("stroke-linejoin").value;if(this.style("stroke-miterlimit").hasValue())d.miterLimit=this.style("stroke-miterlimit").value;if(typeof d.font!="undefined")d.font=a.Font.CreateFont(this.style("font-style").value,this.style("font-variant").value,this.style("font-weight").value,this.style("font-size").hasValue()?this.style("font-size").Length.toPixels()+"px":"",this.style("font-family").value).toString();
-this.attribute("transform").hasValue()&&(new a.Transform(this.attribute("transform").value)).apply(d);this.attribute("clip-path").hasValue()&&(b=this.attribute("clip-path").Definition.getDefinition(),b!=null&&b.apply(d));if(this.style("opacity").hasValue())d.globalAlpha=this.style("opacity").numValue()}};a.Element.RenderedElementBase.prototype=new a.Element.ElementBase;a.Element.PathElementBase=function(c){this.base=a.Element.RenderedElementBase;this.base(c);this.path=function(d){d!=null&&d.beginPath();
-return new a.BoundingBox};this.renderChildren=function(d){this.path(d);a.Mouse.checkPath(this,d);d.fillStyle!=""&&d.fill();d.strokeStyle!=""&&d.stroke();var b=this.getMarkers();if(b!=null){if(this.style("marker-start").Definition.isUrl()){var c=this.style("marker-start").Definition.getDefinition();c.render(d,b[0][0],b[0][1])}if(this.style("marker-mid").Definition.isUrl())for(var c=this.style("marker-mid").Definition.getDefinition(),e=1;e<b.length-1;e++)c.render(d,b[e][0],b[e][1]);this.style("marker-end").Definition.isUrl()&&
-(c=this.style("marker-end").Definition.getDefinition(),c.render(d,b[b.length-1][0],b[b.length-1][1]))}};this.getBoundingBox=function(){return this.path()};this.getMarkers=function(){return null}};a.Element.PathElementBase.prototype=new a.Element.RenderedElementBase;a.Element.svg=function(c){this.base=a.Element.RenderedElementBase;this.base(c);this.baseClearContext=this.clearContext;this.clearContext=function(d){this.baseClearContext(d);a.ViewPort.RemoveCurrent()};this.baseSetContext=this.setContext;
-this.setContext=function(d){d.strokeStyle="rgba(0,0,0,0)";d.lineCap="butt";d.lineJoin="miter";d.miterLimit=4;this.baseSetContext(d);this.attribute("x").hasValue()&&this.attribute("y").hasValue()&&d.translate(this.attribute("x").Length.toPixels("x"),this.attribute("y").Length.toPixels("y"));var b=a.ViewPort.width(),c=a.ViewPort.height();if(typeof this.root=="undefined"&&this.attribute("width").hasValue()&&this.attribute("height").hasValue()){var b=this.attribute("width").Length.toPixels("x"),c=this.attribute("height").Length.toPixels("y"),
-e=0,f=0;this.attribute("refX").hasValue()&&this.attribute("refY").hasValue()&&(e=-this.attribute("refX").Length.toPixels("x"),f=-this.attribute("refY").Length.toPixels("y"));d.beginPath();d.moveTo(e,f);d.lineTo(b,f);d.lineTo(b,c);d.lineTo(e,c);d.closePath();d.clip()}a.ViewPort.SetCurrent(b,c);if(this.attribute("viewBox").hasValue()){var e=a.ToNumberArray(this.attribute("viewBox").value),f=e[0],g=e[1],b=e[2],c=e[3];a.AspectRatio(d,this.attribute("preserveAspectRatio").value,a.ViewPort.width(),b,a.ViewPort.height(),
-c,f,g,this.attribute("refX").value,this.attribute("refY").value);a.ViewPort.RemoveCurrent();a.ViewPort.SetCurrent(e[2],e[3])}}};a.Element.svg.prototype=new a.Element.RenderedElementBase;a.Element.rect=function(c){this.base=a.Element.PathElementBase;this.base(c);this.path=function(d){var b=this.attribute("x").Length.toPixels("x"),c=this.attribute("y").Length.toPixels("y"),e=this.attribute("width").Length.toPixels("x"),f=this.attribute("height").Length.toPixels("y"),g=this.attribute("rx").Length.toPixels("x"),
-j=this.attribute("ry").Length.toPixels("y");this.attribute("rx").hasValue()&&!this.attribute("ry").hasValue()&&(j=g);this.attribute("ry").hasValue()&&!this.attribute("rx").hasValue()&&(g=j);d!=null&&(d.beginPath(),d.moveTo(b+g,c),d.lineTo(b+e-g,c),d.quadraticCurveTo(b+e,c,b+e,c+j),d.lineTo(b+e,c+f-j),d.quadraticCurveTo(b+e,c+f,b+e-g,c+f),d.lineTo(b+g,c+f),d.quadraticCurveTo(b,c+f,b,c+f-j),d.lineTo(b,c+j),d.quadraticCurveTo(b,c,b+g,c),d.closePath());return new a.BoundingBox(b,c,b+e,c+f)}};a.Element.rect.prototype=
-new a.Element.PathElementBase;a.Element.circle=function(c){this.base=a.Element.PathElementBase;this.base(c);this.path=function(d){var b=this.attribute("cx").Length.toPixels("x"),c=this.attribute("cy").Length.toPixels("y"),e=this.attribute("r").Length.toPixels();d!=null&&(d.beginPath(),d.arc(b,c,e,0,Math.PI*2,!0),d.closePath());return new a.BoundingBox(b-e,c-e,b+e,c+e)}};a.Element.circle.prototype=new a.Element.PathElementBase;a.Element.ellipse=function(c){this.base=a.Element.PathElementBase;this.base(c);
-this.path=function(d){var b=4*((Math.sqrt(2)-1)/3),c=this.attribute("rx").Length.toPixels("x"),e=this.attribute("ry").Length.toPixels("y"),f=this.attribute("cx").Length.toPixels("x"),g=this.attribute("cy").Length.toPixels("y");d!=null&&(d.beginPath(),d.moveTo(f,g-e),d.bezierCurveTo(f+b*c,g-e,f+c,g-b*e,f+c,g),d.bezierCurveTo(f+c,g+b*e,f+b*c,g+e,f,g+e),d.bezierCurveTo(f-b*c,g+e,f-c,g+b*e,f-c,g),d.bezierCurveTo(f-c,g-b*e,f-b*c,g-e,f,g-e),d.closePath());return new a.BoundingBox(f-c,g-e,f+c,g+e)}};a.Element.ellipse.prototype=
-new a.Element.PathElementBase;a.Element.line=function(c){this.base=a.Element.PathElementBase;this.base(c);this.getPoints=function(){return[new a.Point(this.attribute("x1").Length.toPixels("x"),this.attribute("y1").Length.toPixels("y")),new a.Point(this.attribute("x2").Length.toPixels("x"),this.attribute("y2").Length.toPixels("y"))]};this.path=function(d){var b=this.getPoints();d!=null&&(d.beginPath(),d.moveTo(b[0].x,b[0].y),d.lineTo(b[1].x,b[1].y));return new a.BoundingBox(b[0].x,b[0].y,b[1].x,b[1].y)};
-this.getMarkers=function(){var a=this.getPoints(),b=a[0].angleTo(a[1]);return[[a[0],b],[a[1],b]]}};a.Element.line.prototype=new a.Element.PathElementBase;a.Element.polyline=function(c){this.base=a.Element.PathElementBase;this.base(c);this.points=a.CreatePath(this.attribute("points").value);this.path=function(d){var b=new a.BoundingBox(this.points[0].x,this.points[0].y);d!=null&&(d.beginPath(),d.moveTo(this.points[0].x,this.points[0].y));for(var c=1;c<this.points.length;c++)b.addPoint(this.points[c].x,
-this.points[c].y),d!=null&&d.lineTo(this.points[c].x,this.points[c].y);return b};this.getMarkers=function(){for(var a=[],b=0;b<this.points.length-1;b++)a.push([this.points[b],this.points[b].angleTo(this.points[b+1])]);a.push([this.points[this.points.length-1],a[a.length-1][1]]);return a}};a.Element.polyline.prototype=new a.Element.PathElementBase;a.Element.polygon=function(c){this.base=a.Element.polyline;this.base(c);this.basePath=this.path;this.path=function(a){var b=this.basePath(a);a!=null&&(a.lineTo(this.points[0].x,
-this.points[0].y),a.closePath());return b}};a.Element.polygon.prototype=new a.Element.polyline;a.Element.path=function(c){this.base=a.Element.PathElementBase;this.base(c);c=this.attribute("d").value;c=c.replace(/,/gm," ");c=c.replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2");c=c.replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2");c=c.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm,"$1 $2");c=c.replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm,"$1 $2");c=c.replace(/([0-9])([+\-])/gm,
-"$1 $2");c=c.replace(/(\.[0-9]*)(\.)/gm,"$1 $2");c=c.replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm,"$1 $3 $4 ");c=a.compressSpaces(c);c=a.trim(c);this.PathParser=new function(d){this.tokens=d.split(" ");this.reset=function(){this.i=-1;this.previousCommand=this.command="";this.start=new a.Point(0,0);this.control=new a.Point(0,0);this.current=new a.Point(0,0);this.points=[];this.angles=[]};this.isEnd=function(){return this.i>=this.tokens.length-1};this.isCommandOrEnd=function(){return this.isEnd()?
-!0:this.tokens[this.i+1].match(/^[A-Za-z]$/)!=null};this.isRelativeCommand=function(){return this.command==this.command.toLowerCase()};this.getToken=function(){this.i+=1;return this.tokens[this.i]};this.getScalar=function(){return parseFloat(this.getToken())};this.nextCommand=function(){this.previousCommand=this.command;this.command=this.getToken()};this.getPoint=function(){return this.makeAbsolute(new a.Point(this.getScalar(),this.getScalar()))};this.getAsControlPoint=function(){var b=this.getPoint();
-return this.control=b};this.getAsCurrentPoint=function(){var b=this.getPoint();return this.current=b};this.getReflectedControlPoint=function(){return this.previousCommand.toLowerCase()!="c"&&this.previousCommand.toLowerCase()!="s"?this.current:new a.Point(2*this.current.x-this.control.x,2*this.current.y-this.control.y)};this.makeAbsolute=function(b){if(this.isRelativeCommand())b.x=this.current.x+b.x,b.y=this.current.y+b.y;return b};this.addMarker=function(b,a,d){d!=null&&this.angles.length>0&&this.angles[this.angles.length-
-1]==null&&(this.angles[this.angles.length-1]=this.points[this.points.length-1].angleTo(d));this.addMarkerAngle(b,a==null?null:a.angleTo(b))};this.addMarkerAngle=function(b,a){this.points.push(b);this.angles.push(a)};this.getMarkerPoints=function(){return this.points};this.getMarkerAngles=function(){for(var b=0;b<this.angles.length;b++)if(this.angles[b]==null)for(var a=b+1;a<this.angles.length;a++)if(this.angles[a]!=null){this.angles[b]=this.angles[a];break}return this.angles}}(c);this.path=function(d){var b=
-this.PathParser;b.reset();var c=new a.BoundingBox;for(d!=null&&d.beginPath();!b.isEnd();)switch(b.nextCommand(),b.command.toUpperCase()){case "M":var e=b.getAsCurrentPoint();b.addMarker(e);c.addPoint(e.x,e.y);d!=null&&d.moveTo(e.x,e.y);for(b.start=b.current;!b.isCommandOrEnd();)e=b.getAsCurrentPoint(),b.addMarker(e,b.start),c.addPoint(e.x,e.y),d!=null&&d.lineTo(e.x,e.y);break;case "L":for(;!b.isCommandOrEnd();){var f=b.current,e=b.getAsCurrentPoint();b.addMarker(e,f);c.addPoint(e.x,e.y);d!=null&&
-d.lineTo(e.x,e.y)}break;case "H":for(;!b.isCommandOrEnd();)e=new a.Point((b.isRelativeCommand()?b.current.x:0)+b.getScalar(),b.current.y),b.addMarker(e,b.current),b.current=e,c.addPoint(b.current.x,b.current.y),d!=null&&d.lineTo(b.current.x,b.current.y);break;case "V":for(;!b.isCommandOrEnd();)e=new a.Point(b.current.x,(b.isRelativeCommand()?b.current.y:0)+b.getScalar()),b.addMarker(e,b.current),b.current=e,c.addPoint(b.current.x,b.current.y),d!=null&&d.lineTo(b.current.x,b.current.y);break;case "C":for(;!b.isCommandOrEnd();){var g=
-b.current,f=b.getPoint(),j=b.getAsControlPoint(),e=b.getAsCurrentPoint();b.addMarker(e,j,f);c.addBezierCurve(g.x,g.y,f.x,f.y,j.x,j.y,e.x,e.y);d!=null&&d.bezierCurveTo(f.x,f.y,j.x,j.y,e.x,e.y)}break;case "S":for(;!b.isCommandOrEnd();)g=b.current,f=b.getReflectedControlPoint(),j=b.getAsControlPoint(),e=b.getAsCurrentPoint(),b.addMarker(e,j,f),c.addBezierCurve(g.x,g.y,f.x,f.y,j.x,j.y,e.x,e.y),d!=null&&d.bezierCurveTo(f.x,f.y,j.x,j.y,e.x,e.y);break;case "Q":for(;!b.isCommandOrEnd();)g=b.current,j=b.getAsControlPoint(),
-e=b.getAsCurrentPoint(),b.addMarker(e,j,j),c.addQuadraticCurve(g.x,g.y,j.x,j.y,e.x,e.y),d!=null&&d.quadraticCurveTo(j.x,j.y,e.x,e.y);break;case "T":for(;!b.isCommandOrEnd();)g=b.current,j=b.getReflectedControlPoint(),b.control=j,e=b.getAsCurrentPoint(),b.addMarker(e,j,j),c.addQuadraticCurve(g.x,g.y,j.x,j.y,e.x,e.y),d!=null&&d.quadraticCurveTo(j.x,j.y,e.x,e.y);break;case "A":for(;!b.isCommandOrEnd();){var g=b.current,h=b.getScalar(),l=b.getScalar(),f=b.getScalar()*(Math.PI/180),o=b.getScalar(),j=b.getScalar(),
-e=b.getAsCurrentPoint(),n=new a.Point(Math.cos(f)*(g.x-e.x)/2+Math.sin(f)*(g.y-e.y)/2,-Math.sin(f)*(g.x-e.x)/2+Math.cos(f)*(g.y-e.y)/2),q=Math.pow(n.x,2)/Math.pow(h,2)+Math.pow(n.y,2)/Math.pow(l,2);q>1&&(h*=Math.sqrt(q),l*=Math.sqrt(q));o=(o==j?-1:1)*Math.sqrt((Math.pow(h,2)*Math.pow(l,2)-Math.pow(h,2)*Math.pow(n.y,2)-Math.pow(l,2)*Math.pow(n.x,2))/(Math.pow(h,2)*Math.pow(n.y,2)+Math.pow(l,2)*Math.pow(n.x,2)));isNaN(o)&&(o=0);var p=new a.Point(o*h*n.y/l,o*-l*n.x/h),g=new a.Point((g.x+e.x)/2+Math.cos(f)*
-p.x-Math.sin(f)*p.y,(g.y+e.y)/2+Math.sin(f)*p.x+Math.cos(f)*p.y),m=function(b,a){return(b[0]*a[0]+b[1]*a[1])/(Math.sqrt(Math.pow(b[0],2)+Math.pow(b[1],2))*Math.sqrt(Math.pow(a[0],2)+Math.pow(a[1],2)))},s=function(b,a){return(b[0]*a[1]<b[1]*a[0]?-1:1)*Math.acos(m(b,a))},o=s([1,0],[(n.x-p.x)/h,(n.y-p.y)/l]),q=[(n.x-p.x)/h,(n.y-p.y)/l],p=[(-n.x-p.x)/h,(-n.y-p.y)/l],n=s(q,p);if(m(q,p)<=-1)n=Math.PI;m(q,p)>=1&&(n=0);j==0&&n>0&&(n-=2*Math.PI);j==1&&n<0&&(n+=2*Math.PI);q=new a.Point(g.x-h*Math.cos((o+n)/
-2),g.y-l*Math.sin((o+n)/2));b.addMarkerAngle(q,(o+n)/2+(j==0?1:-1)*Math.PI/2);b.addMarkerAngle(e,n+(j==0?1:-1)*Math.PI/2);c.addPoint(e.x,e.y);d!=null&&(m=h>l?h:l,e=h>l?1:h/l,h=h>l?l/h:1,d.translate(g.x,g.y),d.rotate(f),d.scale(e,h),d.arc(0,0,m,o,o+n,1-j),d.scale(1/e,1/h),d.rotate(-f),d.translate(-g.x,-g.y))}break;case "Z":d!=null&&d.closePath(),b.current=b.start}return c};this.getMarkers=function(){for(var a=this.PathParser.getMarkerPoints(),b=this.PathParser.getMarkerAngles(),c=[],e=0;e<a.length;e++)c.push([a[e],
-b[e]]);return c}};a.Element.path.prototype=new a.Element.PathElementBase;a.Element.pattern=function(c){this.base=a.Element.ElementBase;this.base(c);this.createPattern=function(d){var b=new a.Element.svg;b.attributes.viewBox=new a.Property("viewBox",this.attribute("viewBox").value);b.attributes.x=new a.Property("x",this.attribute("x").value);b.attributes.y=new a.Property("y",this.attribute("y").value);b.attributes.width=new a.Property("width",this.attribute("width").value);b.attributes.height=new a.Property("height",
-this.attribute("height").value);b.children=this.children;var c=document.createElement("canvas");c.width=this.attribute("width").Length.toPixels("x");c.height=this.attribute("height").Length.toPixels("y");b.render(c.getContext("2d"));return d.createPattern(c,"repeat")}};a.Element.pattern.prototype=new a.Element.ElementBase;a.Element.marker=function(c){this.base=a.Element.ElementBase;this.base(c);this.baseRender=this.render;this.render=function(d,b,c){d.translate(b.x,b.y);this.attribute("orient").valueOrDefault("auto")==
-"auto"&&d.rotate(c);this.attribute("markerUnits").valueOrDefault("strokeWidth")=="strokeWidth"&&d.scale(d.lineWidth,d.lineWidth);d.save();var e=new a.Element.svg;e.attributes.viewBox=new a.Property("viewBox",this.attribute("viewBox").value);e.attributes.refX=new a.Property("refX",this.attribute("refX").value);e.attributes.refY=new a.Property("refY",this.attribute("refY").value);e.attributes.width=new a.Property("width",this.attribute("markerWidth").value);e.attributes.height=new a.Property("height",
-this.attribute("markerHeight").value);e.attributes.fill=new a.Property("fill",this.attribute("fill").valueOrDefault("black"));e.attributes.stroke=new a.Property("stroke",this.attribute("stroke").valueOrDefault("none"));e.children=this.children;e.render(d);d.restore();this.attribute("markerUnits").valueOrDefault("strokeWidth")=="strokeWidth"&&d.scale(1/d.lineWidth,1/d.lineWidth);this.attribute("orient").valueOrDefault("auto")=="auto"&&d.rotate(-c);d.translate(-b.x,-b.y)}};a.Element.marker.prototype=
-new a.Element.ElementBase;a.Element.defs=function(c){this.base=a.Element.ElementBase;this.base(c);this.render=function(){}};a.Element.defs.prototype=new a.Element.ElementBase;a.Element.GradientBase=function(c){this.base=a.Element.ElementBase;this.base(c);this.gradientUnits=this.attribute("gradientUnits").valueOrDefault("objectBoundingBox");this.stops=[];for(c=0;c<this.children.length;c++)this.stops.push(this.children[c]);this.getGradient=function(){};this.createGradient=function(d,b){var c=this;this.attribute("xlink:href").hasValue()&&
-(c=this.attribute("xlink:href").Definition.getDefinition());for(var e=this.getGradient(d,b),f=0;f<c.stops.length;f++)e.addColorStop(c.stops[f].offset,c.stops[f].color);if(this.attribute("gradientTransform").hasValue()){c=a.ViewPort.viewPorts[0];f=new a.Element.rect;f.attributes.x=new a.Property("x",-a.MAX_VIRTUAL_PIXELS/3);f.attributes.y=new a.Property("y",-a.MAX_VIRTUAL_PIXELS/3);f.attributes.width=new a.Property("width",a.MAX_VIRTUAL_PIXELS);f.attributes.height=new a.Property("height",a.MAX_VIRTUAL_PIXELS);
-var g=new a.Element.g;g.attributes.transform=new a.Property("transform",this.attribute("gradientTransform").value);g.children=[f];f=new a.Element.svg;f.attributes.x=new a.Property("x",0);f.attributes.y=new a.Property("y",0);f.attributes.width=new a.Property("width",c.width);f.attributes.height=new a.Property("height",c.height);f.children=[g];g=document.createElement("canvas");g.width=c.width;g.height=c.height;c=g.getContext("2d");c.fillStyle=e;f.render(c);return c.createPattern(g,"no-repeat")}return e}};
-a.Element.GradientBase.prototype=new a.Element.ElementBase;a.Element.linearGradient=function(c){this.base=a.Element.GradientBase;this.base(c);this.getGradient=function(a,b){var c=b.getBoundingBox(),e=this.gradientUnits=="objectBoundingBox"?c.x()+c.width()*this.attribute("x1").numValue():this.attribute("x1").Length.toPixels("x"),f=this.gradientUnits=="objectBoundingBox"?c.y()+c.height()*this.attribute("y1").numValue():this.attribute("y1").Length.toPixels("y"),g=this.gradientUnits=="objectBoundingBox"?
-c.x()+c.width()*this.attribute("x2").numValue():this.attribute("x2").Length.toPixels("x"),c=this.gradientUnits=="objectBoundingBox"?c.y()+c.height()*this.attribute("y2").numValue():this.attribute("y2").Length.toPixels("y");return a.createLinearGradient(e,f,g,c)}};a.Element.linearGradient.prototype=new a.Element.GradientBase;a.Element.radialGradient=function(c){this.base=a.Element.GradientBase;this.base(c);this.getGradient=function(a,b){var c=b.getBoundingBox(),e=this.gradientUnits=="objectBoundingBox"?
-c.x()+c.width()*this.attribute("cx").numValue():this.attribute("cx").Length.toPixels("x"),f=this.gradientUnits=="objectBoundingBox"?c.y()+c.height()*this.attribute("cy").numValue():this.attribute("cy").Length.toPixels("y"),g=e,j=f;this.attribute("fx").hasValue()&&(g=this.gradientUnits=="objectBoundingBox"?c.x()+c.width()*this.attribute("fx").numValue():this.attribute("fx").Length.toPixels("x"));this.attribute("fy").hasValue()&&(j=this.gradientUnits=="objectBoundingBox"?c.y()+c.height()*this.attribute("fy").numValue():
-this.attribute("fy").Length.toPixels("y"));c=this.gradientUnits=="objectBoundingBox"?(c.width()+c.height())/2*this.attribute("r").numValue():this.attribute("r").Length.toPixels();return a.createRadialGradient(g,j,0,e,f,c)}};a.Element.radialGradient.prototype=new a.Element.GradientBase;a.Element.stop=function(c){this.base=a.Element.ElementBase;this.base(c);this.offset=this.attribute("offset").numValue();c=this.style("stop-color");this.style("stop-opacity").hasValue()&&(c=c.Color.addOpacity(this.style("stop-opacity").value));
-this.color=c.value};a.Element.stop.prototype=new a.Element.ElementBase;a.Element.AnimateBase=function(c){this.base=a.Element.ElementBase;this.base(c);a.Animations.push(this);this.duration=0;this.begin=this.attribute("begin").Time.toMilliseconds();this.maxDuration=this.begin+this.attribute("dur").Time.toMilliseconds();this.getProperty=function(){var a=this.attribute("attributeType").value,b=this.attribute("attributeName").value;return a=="CSS"?this.parent.style(b,!0):this.parent.attribute(b,!0)};this.initialValue=
-null;this.removed=!1;this.calcValue=function(){return""};this.update=function(a){if(this.initialValue==null)this.initialValue=this.getProperty().value;if(this.duration>this.maxDuration)if(this.attribute("repeatCount").value=="indefinite")this.duration=0;else return this.attribute("fill").valueOrDefault("remove")=="remove"&&!this.removed?(this.removed=!0,this.getProperty().value=this.initialValue,!0):!1;this.duration+=a;a=!1;if(this.begin<this.duration)a=this.calcValue(),this.attribute("type").hasValue()&&
-(a=this.attribute("type").value+"("+a+")"),this.getProperty().value=a,a=!0;return a};this.progress=function(){return(this.duration-this.begin)/(this.maxDuration-this.begin)}};a.Element.AnimateBase.prototype=new a.Element.ElementBase;a.Element.animate=function(c){this.base=a.Element.AnimateBase;this.base(c);this.calcValue=function(){var a=this.attribute("from").numValue(),b=this.attribute("to").numValue();return a+(b-a)*this.progress()}};a.Element.animate.prototype=new a.Element.AnimateBase;a.Element.animateColor=
-function(c){this.base=a.Element.AnimateBase;this.base(c);this.calcValue=function(){var a=new RGBColor(this.attribute("from").value),b=new RGBColor(this.attribute("to").value);if(a.ok&&b.ok){var c=a.r+(b.r-a.r)*this.progress(),e=a.g+(b.g-a.g)*this.progress(),a=a.b+(b.b-a.b)*this.progress();return"rgb("+parseInt(c,10)+","+parseInt(e,10)+","+parseInt(a,10)+")"}return this.attribute("from").value}};a.Element.animateColor.prototype=new a.Element.AnimateBase;a.Element.animateTransform=function(c){this.base=
-a.Element.animate;this.base(c)};a.Element.animateTransform.prototype=new a.Element.animate;a.Element.font=function(c){this.base=a.Element.ElementBase;this.base(c);this.horizAdvX=this.attribute("horiz-adv-x").numValue();this.isArabic=this.isRTL=!1;this.missingGlyph=this.fontFace=null;this.glyphs=[];for(c=0;c<this.children.length;c++){var d=this.children[c];if(d.type=="font-face")this.fontFace=d,d.style("font-family").hasValue()&&(a.Definitions[d.style("font-family").value]=this);else if(d.type=="missing-glyph")this.missingGlyph=
-d;else if(d.type=="glyph")d.arabicForm!=""?(this.isArabic=this.isRTL=!0,typeof this.glyphs[d.unicode]=="undefined"&&(this.glyphs[d.unicode]=[]),this.glyphs[d.unicode][d.arabicForm]=d):this.glyphs[d.unicode]=d}};a.Element.font.prototype=new a.Element.ElementBase;a.Element.fontface=function(c){this.base=a.Element.ElementBase;this.base(c);this.ascent=this.attribute("ascent").value;this.descent=this.attribute("descent").value;this.unitsPerEm=this.attribute("units-per-em").numValue()};a.Element.fontface.prototype=
-new a.Element.ElementBase;a.Element.missingglyph=function(c){this.base=a.Element.path;this.base(c);this.horizAdvX=0};a.Element.missingglyph.prototype=new a.Element.path;a.Element.glyph=function(c){this.base=a.Element.path;this.base(c);this.horizAdvX=this.attribute("horiz-adv-x").numValue();this.unicode=this.attribute("unicode").value;this.arabicForm=this.attribute("arabic-form").value};a.Element.glyph.prototype=new a.Element.path;a.Element.text=function(c){this.base=a.Element.RenderedElementBase;
-this.base(c);if(c!=null){this.children=[];for(var d=0;d<c.childNodes.length;d++){var b=c.childNodes[d];b.nodeType==1?this.addChild(b,!0):b.nodeType==3&&this.addChild(new a.Element.tspan(b),!1)}}this.baseSetContext=this.setContext;this.setContext=function(b){this.baseSetContext(b);if(this.style("dominant-baseline").hasValue())b.textBaseline=this.style("dominant-baseline").value;if(this.style("alignment-baseline").hasValue())b.textBaseline=this.style("alignment-baseline").value};this.renderChildren=
-function(b){for(var a=this.style("text-anchor").valueOrDefault("start"),c=this.attribute("x").Length.toPixels("x"),d=this.attribute("y").Length.toPixels("y"),j=0;j<this.children.length;j++){var h=this.children[j];h.attribute("x").hasValue()?h.x=h.attribute("x").Length.toPixels("x"):(h.attribute("dx").hasValue()&&(c+=h.attribute("dx").Length.toPixels("x")),h.x=c);c=h.measureText(b);if(a!="start"&&(j==0||h.attribute("x").hasValue())){for(var l=c,o=j+1;o<this.children.length;o++){var n=this.children[o];
-if(n.attribute("x").hasValue())break;l+=n.measureText(b)}h.x-=a=="end"?l:l/2}c=h.x+c;h.attribute("y").hasValue()?h.y=h.attribute("y").Length.toPixels("y"):(h.attribute("dy").hasValue()&&(d+=h.attribute("dy").Length.toPixels("y")),h.y=d);d=h.y;h.render(b)}}};a.Element.text.prototype=new a.Element.RenderedElementBase;a.Element.TextElementBase=function(c){this.base=a.Element.RenderedElementBase;this.base(c);this.getGlyph=function(a,b,c){var e=b[c],f=null;if(a.isArabic){var g="isolated";if((c==0||b[c-
-1]==" ")&&c<b.length-2&&b[c+1]!=" ")g="terminal";c>0&&b[c-1]!=" "&&c<b.length-2&&b[c+1]!=" "&&(g="medial");if(c>0&&b[c-1]!=" "&&(c==b.length-1||b[c+1]==" "))g="initial";typeof a.glyphs[e]!="undefined"&&(f=a.glyphs[e][g],f==null&&a.glyphs[e].type=="glyph"&&(f=a.glyphs[e]))}else f=a.glyphs[e];if(f==null)f=a.missingGlyph;return f};this.renderChildren=function(c){var b=this.parent.style("font-family").Definition.getDefinition();if(b!=null){var k=this.parent.style("font-size").numValueOrDefault(a.Font.Parse(a.ctx.font).fontSize),
-e=this.parent.style("font-style").valueOrDefault(a.Font.Parse(a.ctx.font).fontStyle),f=this.getText();b.isRTL&&(f=f.split("").reverse().join(""));for(var g=a.ToNumberArray(this.parent.attribute("dx").value),j=0;j<f.length;j++){var h=this.getGlyph(b,f,j),l=k/b.fontFace.unitsPerEm;c.translate(this.x,this.y);c.scale(l,-l);var o=c.lineWidth;c.lineWidth=c.lineWidth*b.fontFace.unitsPerEm/k;e=="italic"&&c.transform(1,0,0.4,1,0,0);h.render(c);e=="italic"&&c.transform(1,0,-0.4,1,0,0);c.lineWidth=o;c.scale(1/
-l,-1/l);c.translate(-this.x,-this.y);this.x+=k*(h.horizAdvX||b.horizAdvX)/b.fontFace.unitsPerEm;typeof g[j]!="undefined"&&!isNaN(g[j])&&(this.x+=g[j])}}else c.strokeStyle!=""&&c.strokeText(a.compressSpaces(this.getText()),this.x,this.y),c.fillStyle!=""&&c.fillText(a.compressSpaces(this.getText()),this.x,this.y)};this.getText=function(){};this.measureText=function(c){var b=this.parent.style("font-family").Definition.getDefinition();if(b!=null){var c=this.parent.style("font-size").numValueOrDefault(a.Font.Parse(a.ctx.font).fontSize),
-k=0,e=this.getText();b.isRTL&&(e=e.split("").reverse().join(""));for(var f=a.ToNumberArray(this.parent.attribute("dx").value),g=0;g<e.length;g++){var j=this.getGlyph(b,e,g);k+=(j.horizAdvX||b.horizAdvX)*c/b.fontFace.unitsPerEm;typeof f[g]!="undefined"&&!isNaN(f[g])&&(k+=f[g])}return k}b=a.compressSpaces(this.getText());if(!c.measureText)return b.length*10;c.save();this.setContext(c);b=c.measureText(b).width;c.restore();return b}};a.Element.TextElementBase.prototype=new a.Element.RenderedElementBase;
-a.Element.tspan=function(c){this.base=a.Element.TextElementBase;this.base(c);this.text=c.nodeType==3?c.nodeValue:c.childNodes.length>0?c.childNodes[0].nodeValue:c.text;this.getText=function(){return this.text}};a.Element.tspan.prototype=new a.Element.TextElementBase;a.Element.tref=function(c){this.base=a.Element.TextElementBase;this.base(c);this.getText=function(){var a=this.attribute("xlink:href").Definition.getDefinition();if(a!=null)return a.children[0].getText()}};a.Element.tref.prototype=new a.Element.TextElementBase;
-a.Element.a=function(c){this.base=a.Element.TextElementBase;this.base(c);this.hasText=!0;for(var d=0;d<c.childNodes.length;d++)if(c.childNodes[d].nodeType!=3)this.hasText=!1;this.text=this.hasText?c.childNodes[0].nodeValue:"";this.getText=function(){return this.text};this.baseRenderChildren=this.renderChildren;this.renderChildren=function(b){if(this.hasText){this.baseRenderChildren(b);var c=new a.Property("fontSize",a.Font.Parse(a.ctx.font).fontSize);a.Mouse.checkBoundingBox(this,new a.BoundingBox(this.x,
-this.y-c.Length.toPixels("y"),this.x+this.measureText(b),this.y))}else c=new a.Element.g,c.children=this.children,c.parent=this,c.render(b)};this.onclick=function(){window.open(this.attribute("xlink:href").value)};this.onmousemove=function(){a.ctx.canvas.style.cursor="pointer"}};a.Element.a.prototype=new a.Element.TextElementBase;a.Element.image=function(c){this.base=a.Element.RenderedElementBase;this.base(c);a.Images.push(this);this.img=document.createElement("img");this.loaded=!1;var d=this;this.img.onload=
-function(){d.loaded=!0};this.img.src=this.attribute("xlink:href").value;this.renderChildren=function(b){var c=this.attribute("x").Length.toPixels("x"),d=this.attribute("y").Length.toPixels("y"),f=this.attribute("width").Length.toPixels("x"),g=this.attribute("height").Length.toPixels("y");f==0||g==0||(b.save(),b.translate(c,d),a.AspectRatio(b,this.attribute("preserveAspectRatio").value,f,this.img.width,g,this.img.height,0,0),b.drawImage(this.img,0,0),b.restore())}};a.Element.image.prototype=new a.Element.RenderedElementBase;
-a.Element.g=function(c){this.base=a.Element.RenderedElementBase;this.base(c);this.getBoundingBox=function(){for(var c=new a.BoundingBox,b=0;b<this.children.length;b++)c.addBoundingBox(this.children[b].getBoundingBox());return c}};a.Element.g.prototype=new a.Element.RenderedElementBase;a.Element.symbol=function(c){this.base=a.Element.RenderedElementBase;this.base(c);this.baseSetContext=this.setContext;this.setContext=function(c){this.baseSetContext(c);if(this.attribute("viewBox").hasValue()){var b=
-a.ToNumberArray(this.attribute("viewBox").value),k=b[0],e=b[1];width=b[2];height=b[3];a.AspectRatio(c,this.attribute("preserveAspectRatio").value,this.attribute("width").Length.toPixels("x"),width,this.attribute("height").Length.toPixels("y"),height,k,e);a.ViewPort.SetCurrent(b[2],b[3])}}};a.Element.symbol.prototype=new a.Element.RenderedElementBase;a.Element.style=function(c){this.base=a.Element.ElementBase;this.base(c);for(var c=c.childNodes[0].nodeValue+(c.childNodes.length>1?c.childNodes[1].nodeValue:
-""),c=c.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,""),c=a.compressSpaces(c),c=c.split("}"),d=0;d<c.length;d++)if(a.trim(c[d])!="")for(var b=c[d].split("{"),k=b[0].split(","),b=b[1].split(";"),e=0;e<k.length;e++){var f=a.trim(k[e]);if(f!=""){for(var g={},j=0;j<b.length;j++){var h=b[j].indexOf(":"),l=b[j].substr(0,h),h=b[j].substr(h+1,b[j].length-h);l!=null&&h!=null&&(g[a.trim(l)]=new a.Property(a.trim(l),a.trim(h)))}a.Styles[f]=g;if(f=="@font-face"){f=g["font-family"].value.replace(/"/g,
-"");g=g.src.value.split(",");for(j=0;j<g.length;j++)if(g[j].indexOf('format("svg")')>0){l=g[j].indexOf("url");h=g[j].indexOf(")",l);l=g[j].substr(l+5,h-l-6);l=a.parseXml(a.ajax(l)).getElementsByTagName("font");for(h=0;h<l.length;h++){var o=a.CreateElement(l[h]);a.Definitions[f]=o}}}}}};a.Element.style.prototype=new a.Element.ElementBase;a.Element.use=function(c){this.base=a.Element.RenderedElementBase;this.base(c);this.baseSetContext=this.setContext;this.setContext=function(a){this.baseSetContext(a);
-this.attribute("x").hasValue()&&a.translate(this.attribute("x").Length.toPixels("x"),0);this.attribute("y").hasValue()&&a.translate(0,this.attribute("y").Length.toPixels("y"))};this.getDefinition=function(){var a=this.attribute("xlink:href").Definition.getDefinition();if(this.attribute("width").hasValue())a.attribute("width",!0).value=this.attribute("width").value;if(this.attribute("height").hasValue())a.attribute("height",!0).value=this.attribute("height").value;return a};this.path=function(a){var b=
-this.getDefinition();b!=null&&b.path(a)};this.renderChildren=function(a){var b=this.getDefinition();b!=null&&b.render(a)}};a.Element.use.prototype=new a.Element.RenderedElementBase;a.Element.mask=function(c){this.base=a.Element.ElementBase;this.base(c);this.apply=function(a,b){var c=this.attribute("x").Length.toPixels("x"),e=this.attribute("y").Length.toPixels("y"),f=this.attribute("width").Length.toPixels("x"),g=this.attribute("height").Length.toPixels("y"),j=b.attribute("mask").value;b.attribute("mask").value=
-"";var h=document.createElement("canvas");h.width=c+f;h.height=e+g;var l=h.getContext("2d");this.renderChildren(l);var o=document.createElement("canvas");o.width=c+f;o.height=e+g;var n=o.getContext("2d");b.render(n);n.globalCompositeOperation="destination-in";n.fillStyle=l.createPattern(h,"no-repeat");n.fillRect(0,0,c+f,e+g);a.fillStyle=n.createPattern(o,"no-repeat");a.fillRect(0,0,c+f,e+g);b.attribute("mask").value=j};this.render=function(){}};a.Element.mask.prototype=new a.Element.ElementBase;a.Element.clipPath=
-function(c){this.base=a.Element.ElementBase;this.base(c);this.apply=function(a){for(var b=0;b<this.children.length;b++)this.children[b].path&&(this.children[b].path(a),a.clip())};this.render=function(){}};a.Element.clipPath.prototype=new a.Element.ElementBase;a.Element.filter=function(c){this.base=a.Element.ElementBase;this.base(c);this.apply=function(a,b){var c=b.getBoundingBox(),e=this.attribute("x").Length.toPixels("x"),f=this.attribute("y").Length.toPixels("y");if(e==0||f==0)e=c.x1,f=c.y1;var g=
-this.attribute("width").Length.toPixels("x"),j=this.attribute("height").Length.toPixels("y");if(g==0||j==0)g=c.width(),j=c.height();c=b.style("filter").value;b.style("filter").value="";var h=0.2*g,l=0.2*j,o=document.createElement("canvas");o.width=g+2*h;o.height=j+2*l;var n=o.getContext("2d");n.translate(-e+h,-f+l);b.render(n);for(var q=0;q<this.children.length;q++)this.children[q].apply(n,0,0,g+2*h,j+2*l);a.drawImage(o,0,0,g+2*h,j+2*l,e-h,f-l,g+2*h,j+2*l);b.style("filter",!0).value=c};this.render=
-function(){}};a.Element.filter.prototype=new a.Element.ElementBase;a.Element.feGaussianBlur=function(c){function d(a,c,d,f,g){for(var j=0;j<g;j++)for(var h=0;h<f;h++)for(var l=a[j*f*4+h*4+3]/255,o=0;o<4;o++){for(var n=d[0]*(l==0?255:a[j*f*4+h*4+o])*(l==0||o==3?1:l),q=1;q<d.length;q++){var p=Math.max(h-q,0),m=a[j*f*4+p*4+3]/255,p=Math.min(h+q,f-1),p=a[j*f*4+p*4+3]/255,s=d[q],r;m==0?r=255:(r=Math.max(h-q,0),r=a[j*f*4+r*4+o]);m=r*(m==0||o==3?1:m);p==0?r=255:(r=Math.min(h+q,f-1),r=a[j*f*4+r*4+o]);n+=
-s*(m+r*(p==0||o==3?1:p))}c[h*g*4+j*4+o]=n}}this.base=a.Element.ElementBase;this.base(c);this.apply=function(a,c,e,f,g){var e=this.attribute("stdDeviation").numValue(),c=a.getImageData(0,0,f,g),e=Math.max(e,0.01),j=Math.ceil(e*4)+1;mask=[];for(var h=0;h<j;h++)mask[h]=Math.exp(-0.5*(h/e)*(h/e));e=mask;j=0;for(h=1;h<e.length;h++)j+=Math.abs(e[h]);j=2*j+Math.abs(e[0]);for(h=0;h<e.length;h++)e[h]/=j;tmp=[];d(c.data,tmp,e,f,g);d(tmp,c.data,e,g,f);a.clearRect(0,0,f,g);a.putImageData(c,0,0)}};a.Element.filter.prototype=
-new a.Element.feGaussianBlur;a.Element.title=function(){};a.Element.title.prototype=new a.Element.ElementBase;a.Element.desc=function(){};a.Element.desc.prototype=new a.Element.ElementBase;a.Element.MISSING=function(a){console.log("ERROR: Element '"+a.nodeName+"' not yet implemented.")};a.Element.MISSING.prototype=new a.Element.ElementBase;a.CreateElement=function(c){var d=c.nodeName.replace(/^[^:]+:/,""),d=d.replace(/\-/g,""),b=null,b=typeof a.Element[d]!="undefined"?new a.Element[d](c):new a.Element.MISSING(c);
-b.type=c.nodeName;return b};a.load=function(c,d){a.loadXml(c,a.ajax(d))};a.loadXml=function(c,d){a.loadXmlDoc(c,a.parseXml(d))};a.loadXmlDoc=function(c,d){a.init(c);var b=function(a){for(var b=c.canvas;b;)a.x-=b.offsetLeft,a.y-=b.offsetTop,b=b.offsetParent;window.scrollX&&(a.x+=window.scrollX);window.scrollY&&(a.y+=window.scrollY);return a};if(a.opts.ignoreMouse!=!0)c.canvas.onclick=function(c){c=b(new a.Point(c!=null?c.clientX:event.clientX,c!=null?c.clientY:event.clientY));a.Mouse.onclick(c.x,c.y)},
-c.canvas.onmousemove=function(c){c=b(new a.Point(c!=null?c.clientX:event.clientX,c!=null?c.clientY:event.clientY));a.Mouse.onmousemove(c.x,c.y)};var k=a.CreateElement(d.documentElement),e=k.root=!0,f=function(){a.ViewPort.Clear();c.canvas.parentNode&&a.ViewPort.SetCurrent(c.canvas.parentNode.clientWidth,c.canvas.parentNode.clientHeight);if(a.opts.ignoreDimensions!=!0){if(k.style("width").hasValue())c.canvas.width=k.style("width").Length.toPixels("x"),c.canvas.style.width=c.canvas.width+"px";if(k.style("height").hasValue())c.canvas.height=
-k.style("height").Length.toPixels("y"),c.canvas.style.height=c.canvas.height+"px"}var b=c.canvas.clientWidth||c.canvas.width,d=c.canvas.clientHeight||c.canvas.height;a.ViewPort.SetCurrent(b,d);if(a.opts!=null&&a.opts.offsetX!=null)k.attribute("x",!0).value=a.opts.offsetX;if(a.opts!=null&&a.opts.offsetY!=null)k.attribute("y",!0).value=a.opts.offsetY;if(a.opts!=null&&a.opts.scaleWidth!=null&&a.opts.scaleHeight!=null){var f=1,g=1;k.attribute("width").hasValue()&&(f=k.attribute("width").Length.toPixels("x")/
-a.opts.scaleWidth);k.attribute("height").hasValue()&&(g=k.attribute("height").Length.toPixels("y")/a.opts.scaleHeight);k.attribute("width",!0).value=a.opts.scaleWidth;k.attribute("height",!0).value=a.opts.scaleHeight;k.attribute("viewBox",!0).value="0 0 "+b*f+" "+d*g;k.attribute("preserveAspectRatio",!0).value="none"}a.opts.ignoreClear!=!0&&c.clearRect(0,0,b,d);k.render(c);e&&(e=!1,a.opts!=null&&typeof a.opts.renderCallback=="function"&&a.opts.renderCallback())},g=!0;a.ImagesLoaded()&&(g=!1,f());
-a.intervalID=setInterval(function(){var b=!1;g&&a.ImagesLoaded()&&(g=!1,b=!0);a.opts.ignoreMouse!=!0&&(b|=a.Mouse.hasEvents());if(a.opts.ignoreAnimation!=!0)for(var c=0;c<a.Animations.length;c++)b|=a.Animations[c].update(1E3/a.FRAMERATE);a.opts!=null&&typeof a.opts.forceRedraw=="function"&&a.opts.forceRedraw()==!0&&(b=!0);b&&(f(),a.Mouse.runEvents())},1E3/a.FRAMERATE)};a.stop=function(){a.intervalID&&clearInterval(a.intervalID)};a.Mouse=new function(){this.events=[];this.hasEvents=function(){return this.events.length!=
-0};this.onclick=function(a,d){this.events.push({type:"onclick",x:a,y:d,run:function(a){if(a.onclick)a.onclick()}})};this.onmousemove=function(a,d){this.events.push({type:"onmousemove",x:a,y:d,run:function(a){if(a.onmousemove)a.onmousemove()}})};this.eventElements=[];this.checkPath=function(a,d){for(var b=0;b<this.events.length;b++){var k=this.events[b];d.isPointInPath&&d.isPointInPath(k.x,k.y)&&(this.eventElements[b]=a)}};this.checkBoundingBox=function(a,d){for(var b=0;b<this.events.length;b++){var k=
-this.events[b];d.isPointInBox(k.x,k.y)&&(this.eventElements[b]=a)}};this.runEvents=function(){a.ctx.canvas.style.cursor="";for(var c=0;c<this.events.length;c++)for(var d=this.events[c],b=this.eventElements[c];b;)d.run(b),b=b.parent;this.events=[];this.eventElements=[]}};return a}this.canvg=function(a,c,d){if(a==null&&c==null&&d==null)for(var c=document.getElementsByTagName("svg"),b=0;b<c.length;b++){a=c[b];d=document.createElement("canvas");d.width=a.clientWidth;d.height=a.clientHeight;a.parentNode.insertBefore(d,
-a);a.parentNode.removeChild(a);var k=document.createElement("div");k.appendChild(a);canvg(d,k.innerHTML)}else d=d||{},typeof a=="string"&&(a=document.getElementById(a)),a.svg==null?(b=m(),a.svg=b):(b=a.svg,b.stop()),b.opts=d,a=a.getContext("2d"),typeof c.documentElement!="undefined"?b.loadXmlDoc(a,c):c.substr(0,1)=="<"?b.loadXml(a,c):b.load(a,c)}})();
-if(CanvasRenderingContext2D)CanvasRenderingContext2D.prototype.drawSvg=function(m,a,c,d,b){canvg(this.canvas,m,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:a,offsetY:c,scaleWidth:d,scaleHeight:b})};
-(function(m){var a=m.css,c=m.CanVGRenderer,d=m.SVGRenderer,b=m.extend,k=m.merge,e=m.addEvent,f=m.createElement,g=m.discardElement;b(c.prototype,d.prototype);b(c.prototype,{create:function(a,b,c,d){this.setContainer(b,c,d);this.configure(a)},setContainer:function(a,b,c){var d=a.style,e=a.parentNode,g=d.left,d=d.top,k=a.offsetWidth,m=a.offsetHeight,s={visibility:"hidden",position:"absolute"};this.init.apply(this,[a,b,c]);this.canvas=f("canvas",{width:k,height:m},{position:"relative",left:g,top:d},a);
-this.ttLine=f("div",null,s,e);this.ttDiv=f("div",null,s,e);this.ttTimer=void 0;this.hiddenSvg=a=f("div",{width:k,height:m},{visibility:"hidden",left:g,top:d},e);a.appendChild(this.box)},configure:function(b){var c=this,d=b.options.tooltip,f=d.borderWidth,g=c.ttDiv,m=d.style,p=c.ttLine,t=parseInt(m.padding,10),m=k(m,{padding:t+"px","background-color":d.backgroundColor,"border-style":"solid","border-width":f+"px","border-radius":d.borderRadius+"px"});d.shadow&&(m=k(m,{"box-shadow":"1px 1px 3px gray",
-"-webkit-box-shadow":"1px 1px 3px gray"}));a(g,m);a(p,{"border-left":"1px solid darkgray"});e(b,"tooltipRefresh",function(d){var e=b.container,f=e.offsetLeft,e=e.offsetTop,k;g.innerHTML=d.text;k=b.tooltip.getPosition(g.offsetWidth,g.offsetHeight,{plotX:d.x,plotY:d.y});a(g,{visibility:"visible",left:k.x+"px",top:k.y+"px","border-color":d.borderColor});a(p,{visibility:"visible",left:f+d.x+"px",top:e+b.plotTop+"px",height:b.plotHeight+"px"});c.ttTimer!==void 0&&clearTimeout(c.ttTimer);c.ttTimer=setTimeout(function(){a(g,
-{visibility:"hidden"});a(p,{visibility:"hidden"})},3E3)})},destroy:function(){g(this.canvas);this.ttTimer!==void 0&&clearTimeout(this.ttTimer);g(this.ttLine);g(this.ttDiv);g(this.hiddenSvg);return d.prototype.destroy.apply(this)},color:function(a,b,c){a&&a.linearGradient&&(a=a.stops[a.stops.length-1][1]);return d.prototype.color.call(this,a,b,c)},draw:function(){window.canvg(this.canvas,this.hiddenSvg.innerHTML)}})})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/modules/canvas-tools.src.js b/server/public/ueditor/third-party/highcharts/modules/canvas-tools.src.js
deleted file mode 100644
index 178189e..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/canvas-tools.src.js
+++ /dev/null
@@ -1,3113 +0,0 @@
-/**
- * @license A class to parse color values
- * @author Stoyan Stefanov <sstoo@gmail.com>
- * @link   http://www.phpied.com/rgb-color-parser-in-javascript/
- * Use it if you like it
- *
- */
-function RGBColor(color_string)
-{
-    this.ok = false;
-
-    // strip any leading #
-    if (color_string.charAt(0) == '#') { // remove # if any
-        color_string = color_string.substr(1,6);
-    }
-
-    color_string = color_string.replace(/ /g,'');
-    color_string = color_string.toLowerCase();
-
-    // before getting into regexps, try simple matches
-    // and overwrite the input
-    var simple_colors = {
-        aliceblue: 'f0f8ff',
-        antiquewhite: 'faebd7',
-        aqua: '00ffff',
-        aquamarine: '7fffd4',
-        azure: 'f0ffff',
-        beige: 'f5f5dc',
-        bisque: 'ffe4c4',
-        black: '000000',
-        blanchedalmond: 'ffebcd',
-        blue: '0000ff',
-        blueviolet: '8a2be2',
-        brown: 'a52a2a',
-        burlywood: 'deb887',
-        cadetblue: '5f9ea0',
-        chartreuse: '7fff00',
-        chocolate: 'd2691e',
-        coral: 'ff7f50',
-        cornflowerblue: '6495ed',
-        cornsilk: 'fff8dc',
-        crimson: 'dc143c',
-        cyan: '00ffff',
-        darkblue: '00008b',
-        darkcyan: '008b8b',
-        darkgoldenrod: 'b8860b',
-        darkgray: 'a9a9a9',
-        darkgreen: '006400',
-        darkkhaki: 'bdb76b',
-        darkmagenta: '8b008b',
-        darkolivegreen: '556b2f',
-        darkorange: 'ff8c00',
-        darkorchid: '9932cc',
-        darkred: '8b0000',
-        darksalmon: 'e9967a',
-        darkseagreen: '8fbc8f',
-        darkslateblue: '483d8b',
-        darkslategray: '2f4f4f',
-        darkturquoise: '00ced1',
-        darkviolet: '9400d3',
-        deeppink: 'ff1493',
-        deepskyblue: '00bfff',
-        dimgray: '696969',
-        dodgerblue: '1e90ff',
-        feldspar: 'd19275',
-        firebrick: 'b22222',
-        floralwhite: 'fffaf0',
-        forestgreen: '228b22',
-        fuchsia: 'ff00ff',
-        gainsboro: 'dcdcdc',
-        ghostwhite: 'f8f8ff',
-        gold: 'ffd700',
-        goldenrod: 'daa520',
-        gray: '808080',
-        green: '008000',
-        greenyellow: 'adff2f',
-        honeydew: 'f0fff0',
-        hotpink: 'ff69b4',
-        indianred : 'cd5c5c',
-        indigo : '4b0082',
-        ivory: 'fffff0',
-        khaki: 'f0e68c',
-        lavender: 'e6e6fa',
-        lavenderblush: 'fff0f5',
-        lawngreen: '7cfc00',
-        lemonchiffon: 'fffacd',
-        lightblue: 'add8e6',
-        lightcoral: 'f08080',
-        lightcyan: 'e0ffff',
-        lightgoldenrodyellow: 'fafad2',
-        lightgrey: 'd3d3d3',
-        lightgreen: '90ee90',
-        lightpink: 'ffb6c1',
-        lightsalmon: 'ffa07a',
-        lightseagreen: '20b2aa',
-        lightskyblue: '87cefa',
-        lightslateblue: '8470ff',
-        lightslategray: '778899',
-        lightsteelblue: 'b0c4de',
-        lightyellow: 'ffffe0',
-        lime: '00ff00',
-        limegreen: '32cd32',
-        linen: 'faf0e6',
-        magenta: 'ff00ff',
-        maroon: '800000',
-        mediumaquamarine: '66cdaa',
-        mediumblue: '0000cd',
-        mediumorchid: 'ba55d3',
-        mediumpurple: '9370d8',
-        mediumseagreen: '3cb371',
-        mediumslateblue: '7b68ee',
-        mediumspringgreen: '00fa9a',
-        mediumturquoise: '48d1cc',
-        mediumvioletred: 'c71585',
-        midnightblue: '191970',
-        mintcream: 'f5fffa',
-        mistyrose: 'ffe4e1',
-        moccasin: 'ffe4b5',
-        navajowhite: 'ffdead',
-        navy: '000080',
-        oldlace: 'fdf5e6',
-        olive: '808000',
-        olivedrab: '6b8e23',
-        orange: 'ffa500',
-        orangered: 'ff4500',
-        orchid: 'da70d6',
-        palegoldenrod: 'eee8aa',
-        palegreen: '98fb98',
-        paleturquoise: 'afeeee',
-        palevioletred: 'd87093',
-        papayawhip: 'ffefd5',
-        peachpuff: 'ffdab9',
-        peru: 'cd853f',
-        pink: 'ffc0cb',
-        plum: 'dda0dd',
-        powderblue: 'b0e0e6',
-        purple: '800080',
-        red: 'ff0000',
-        rosybrown: 'bc8f8f',
-        royalblue: '4169e1',
-        saddlebrown: '8b4513',
-        salmon: 'fa8072',
-        sandybrown: 'f4a460',
-        seagreen: '2e8b57',
-        seashell: 'fff5ee',
-        sienna: 'a0522d',
-        silver: 'c0c0c0',
-        skyblue: '87ceeb',
-        slateblue: '6a5acd',
-        slategray: '708090',
-        snow: 'fffafa',
-        springgreen: '00ff7f',
-        steelblue: '4682b4',
-        tan: 'd2b48c',
-        teal: '008080',
-        thistle: 'd8bfd8',
-        tomato: 'ff6347',
-        turquoise: '40e0d0',
-        violet: 'ee82ee',
-        violetred: 'd02090',
-        wheat: 'f5deb3',
-        white: 'ffffff',
-        whitesmoke: 'f5f5f5',
-        yellow: 'ffff00',
-        yellowgreen: '9acd32'
-    };
-    for (var key in simple_colors) {
-        if (color_string == key) {
-            color_string = simple_colors[key];
-        }
-    }
-    // emd of simple type-in colors
-
-    // array of color definition objects
-    var color_defs = [
-        {
-            re: /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,
-            example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],
-            process: function (bits){
-                return [
-                    parseInt(bits[1]),
-                    parseInt(bits[2]),
-                    parseInt(bits[3])
-                ];
-            }
-        },
-        {
-            re: /^(\w{2})(\w{2})(\w{2})$/,
-            example: ['#00ff00', '336699'],
-            process: function (bits){
-                return [
-                    parseInt(bits[1], 16),
-                    parseInt(bits[2], 16),
-                    parseInt(bits[3], 16)
-                ];
-            }
-        },
-        {
-            re: /^(\w{1})(\w{1})(\w{1})$/,
-            example: ['#fb0', 'f0f'],
-            process: function (bits){
-                return [
-                    parseInt(bits[1] + bits[1], 16),
-                    parseInt(bits[2] + bits[2], 16),
-                    parseInt(bits[3] + bits[3], 16)
-                ];
-            }
-        }
-    ];
-
-    // search through the definitions to find a match
-    for (var i = 0; i < color_defs.length; i++) {
-        var re = color_defs[i].re;
-        var processor = color_defs[i].process;
-        var bits = re.exec(color_string);
-        if (bits) {
-            channels = processor(bits);
-            this.r = channels[0];
-            this.g = channels[1];
-            this.b = channels[2];
-            this.ok = true;
-        }
-
-    }
-
-    // validate/cleanup values
-    this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);
-    this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);
-    this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);
-
-    // some getters
-    this.toRGB = function () {
-        return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';
-    }
-    this.toHex = function () {
-        var r = this.r.toString(16);
-        var g = this.g.toString(16);
-        var b = this.b.toString(16);
-        if (r.length == 1) r = '0' + r;
-        if (g.length == 1) g = '0' + g;
-        if (b.length == 1) b = '0' + b;
-        return '#' + r + g + b;
-    }
-
-    // help
-    this.getHelpXML = function () {
-
-        var examples = new Array();
-        // add regexps
-        for (var i = 0; i < color_defs.length; i++) {
-            var example = color_defs[i].example;
-            for (var j = 0; j < example.length; j++) {
-                examples[examples.length] = example[j];
-            }
-        }
-        // add type-in colors
-        for (var sc in simple_colors) {
-            examples[examples.length] = sc;
-        }
-
-        var xml = document.createElement('ul');
-        xml.setAttribute('id', 'rgbcolor-examples');
-        for (var i = 0; i < examples.length; i++) {
-            try {
-                var list_item = document.createElement('li');
-                var list_color = new RGBColor(examples[i]);
-                var example_div = document.createElement('div');
-                example_div.style.cssText =
-                        'margin: 3px; '
-                        + 'border: 1px solid black; '
-                        + 'background:' + list_color.toHex() + '; '
-                        + 'color:' + list_color.toHex()
-                ;
-                example_div.appendChild(document.createTextNode('test'));
-                var list_item_value = document.createTextNode(
-                    ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()
-                );
-                list_item.appendChild(example_div);
-                list_item.appendChild(list_item_value);
-                xml.appendChild(list_item);
-
-            } catch(e){}
-        }
-        return xml;
-
-    }
-
-}
-
-/**
- * @license canvg.js - Javascript SVG parser and renderer on Canvas
- * MIT Licensed 
- * Gabe Lerner (gabelerner@gmail.com)
- * http://code.google.com/p/canvg/
- *
- * Requires: rgbcolor.js - http://www.phpied.com/rgb-color-parser-in-javascript/
- *
- */
-if(!window.console) {
-	window.console = {};
-	window.console.log = function(str) {};
-	window.console.dir = function(str) {};
-}
-
-if(!Array.prototype.indexOf){
-	Array.prototype.indexOf = function(obj){
-		for(var i=0; i<this.length; i++){
-			if(this[i]==obj){
-				return i;
-			}
-		}
-		return -1;
-	}
-}
-
-(function(){
-	// canvg(target, s)
-	// empty parameters: replace all 'svg' elements on page with 'canvas' elements
-	// target: canvas element or the id of a canvas element
-	// s: svg string, url to svg file, or xml document
-	// opts: optional hash of options
-	//		 ignoreMouse: true => ignore mouse events
-	//		 ignoreAnimation: true => ignore animations
-	//		 ignoreDimensions: true => does not try to resize canvas
-	//		 ignoreClear: true => does not clear canvas
-	//		 offsetX: int => draws at a x offset
-	//		 offsetY: int => draws at a y offset
-	//		 scaleWidth: int => scales horizontally to width
-	//		 scaleHeight: int => scales vertically to height
-	//		 renderCallback: function => will call the function after the first render is completed
-	//		 forceRedraw: function => will call the function on every frame, if it returns true, will redraw
-	this.canvg = function (target, s, opts) {
-		// no parameters
-		if (target == null && s == null && opts == null) {
-			var svgTags = document.getElementsByTagName('svg');
-			for (var i=0; i<svgTags.length; i++) {
-				var svgTag = svgTags[i];
-				var c = document.createElement('canvas');
-				c.width = svgTag.clientWidth;
-				c.height = svgTag.clientHeight;
-				svgTag.parentNode.insertBefore(c, svgTag);
-				svgTag.parentNode.removeChild(svgTag);
-				var div = document.createElement('div');
-				div.appendChild(svgTag);
-				canvg(c, div.innerHTML);
-			}
-			return;
-		}	
-		opts = opts || {};
-	
-		if (typeof target == 'string') {
-			target = document.getElementById(target);
-		}
-		
-		// reuse class per canvas
-		var svg;
-		if (target.svg == null) {
-			svg = build();
-			target.svg = svg;
-		}
-		else {
-			svg = target.svg;
-			svg.stop();
-		}
-		svg.opts = opts;
-		
-		var ctx = target.getContext('2d');
-		if (typeof(s.documentElement) != 'undefined') {
-			// load from xml doc
-			svg.loadXmlDoc(ctx, s);
-		}
-		else if (s.substr(0,1) == '<') {
-			// load from xml string
-			svg.loadXml(ctx, s);
-		}
-		else {
-			// load from url
-			svg.load(ctx, s);
-		}
-	}
-
-	function build() {
-		var svg = { };
-		
-		svg.FRAMERATE = 30;
-		svg.MAX_VIRTUAL_PIXELS = 30000;
-		
-		// globals
-		svg.init = function(ctx) {
-			svg.Definitions = {};
-			svg.Styles = {};
-			svg.Animations = [];
-			svg.Images = [];
-			svg.ctx = ctx;
-			svg.ViewPort = new (function () {
-				this.viewPorts = [];
-				this.Clear = function() { this.viewPorts = []; }
-				this.SetCurrent = function(width, height) { this.viewPorts.push({ width: width, height: height }); }
-				this.RemoveCurrent = function() { this.viewPorts.pop(); }
-				this.Current = function() { return this.viewPorts[this.viewPorts.length - 1]; }
-				this.width = function() { return this.Current().width; }
-				this.height = function() { return this.Current().height; }
-				this.ComputeSize = function(d) {
-					if (d != null && typeof(d) == 'number') return d;
-					if (d == 'x') return this.width();
-					if (d == 'y') return this.height();
-					return Math.sqrt(Math.pow(this.width(), 2) + Math.pow(this.height(), 2)) / Math.sqrt(2);			
-				}
-			});
-		}
-		svg.init();
-		
-		// images loaded
-		svg.ImagesLoaded = function() { 
-			for (var i=0; i<svg.Images.length; i++) {
-				if (!svg.Images[i].loaded) return false;
-			}
-			return true;
-		}
-
-		// trim
-		svg.trim = function(s) { return s.replace(/^\s+|\s+$/g, ''); }
-		
-		// compress spaces
-		svg.compressSpaces = function(s) { return s.replace(/[\s\r\t\n]+/gm,' '); }
-		
-		// ajax
-		svg.ajax = function(url) {
-			var AJAX;
-			if(window.XMLHttpRequest){AJAX=new XMLHttpRequest();}
-			else{AJAX=new ActiveXObject('Microsoft.XMLHTTP');}
-			if(AJAX){
-			   AJAX.open('GET',url,false);
-			   AJAX.send(null);
-			   return AJAX.responseText;
-			}
-			return null;
-		} 
-		
-		// parse xml
-		svg.parseXml = function(xml) {
-			if (window.DOMParser)
-			{
-				var parser = new DOMParser();
-				return parser.parseFromString(xml, 'text/xml');
-			}
-			else 
-			{
-				xml = xml.replace(/<!DOCTYPE svg[^>]*>/, '');
-				var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
-				xmlDoc.async = 'false';
-				xmlDoc.loadXML(xml); 
-				return xmlDoc;
-			}		
-		}
-		
-		svg.Property = function(name, value) {
-			this.name = name;
-			this.value = value;
-			
-			this.hasValue = function() {
-				return (this.value != null && this.value !== '');
-			}
-							
-			// return the numerical value of the property
-			this.numValue = function() {
-				if (!this.hasValue()) return 0;
-				
-				var n = parseFloat(this.value);
-				if ((this.value + '').match(/%$/)) {
-					n = n / 100.0;
-				}
-				return n;
-			}
-			
-			this.valueOrDefault = function(def) {
-				if (this.hasValue()) return this.value;
-				return def;
-			}
-			
-			this.numValueOrDefault = function(def) {
-				if (this.hasValue()) return this.numValue();
-				return def;
-			}
-			
-			/* EXTENSIONS */
-			var that = this;
-			
-			// color extensions
-			this.Color = {
-				// augment the current color value with the opacity
-				addOpacity: function(opacity) {
-					var newValue = that.value;
-					if (opacity != null && opacity != '') {
-						var color = new RGBColor(that.value);
-						if (color.ok) {
-							newValue = 'rgba(' + color.r + ', ' + color.g + ', ' + color.b + ', ' + opacity + ')';
-						}
-					}
-					return new svg.Property(that.name, newValue);
-				}
-			}
-			
-			// definition extensions
-			this.Definition = {
-				// get the definition from the definitions table
-				getDefinition: function() {
-					var name = that.value.replace(/^(url\()?#([^\)]+)\)?$/, '$2');
-					return svg.Definitions[name];
-				},
-				
-				isUrl: function() {
-					return that.value.indexOf('url(') == 0
-				},
-				
-				getFillStyle: function(e) {
-					var def = this.getDefinition();
-					
-					// gradient
-					if (def != null && def.createGradient) {
-						return def.createGradient(svg.ctx, e);
-					}
-					
-					// pattern
-					if (def != null && def.createPattern) {
-						return def.createPattern(svg.ctx, e);
-					}
-					
-					return null;
-				}
-			}
-			
-			// length extensions
-			this.Length = {
-				DPI: function(viewPort) {
-					return 96.0; // TODO: compute?
-				},
-				
-				EM: function(viewPort) {
-					var em = 12;
-					
-					var fontSize = new svg.Property('fontSize', svg.Font.Parse(svg.ctx.font).fontSize);
-					if (fontSize.hasValue()) em = fontSize.Length.toPixels(viewPort);
-					
-					return em;
-				},
-			
-				// get the length as pixels
-				toPixels: function(viewPort) {
-					if (!that.hasValue()) return 0;
-					var s = that.value+'';
-					if (s.match(/em$/)) return that.numValue() * this.EM(viewPort);
-					if (s.match(/ex$/)) return that.numValue() * this.EM(viewPort) / 2.0;
-					if (s.match(/px$/)) return that.numValue();
-					if (s.match(/pt$/)) return that.numValue() * 1.25;
-					if (s.match(/pc$/)) return that.numValue() * 15;
-					if (s.match(/cm$/)) return that.numValue() * this.DPI(viewPort) / 2.54;
-					if (s.match(/mm$/)) return that.numValue() * this.DPI(viewPort) / 25.4;
-					if (s.match(/in$/)) return that.numValue() * this.DPI(viewPort);
-					if (s.match(/%$/)) return that.numValue() * svg.ViewPort.ComputeSize(viewPort);
-					return that.numValue();
-				}
-			}
-			
-			// time extensions
-			this.Time = {
-				// get the time as milliseconds
-				toMilliseconds: function() {
-					if (!that.hasValue()) return 0;
-					var s = that.value+'';
-					if (s.match(/s$/)) return that.numValue() * 1000;
-					if (s.match(/ms$/)) return that.numValue();
-					return that.numValue();
-				}
-			}
-			
-			// angle extensions
-			this.Angle = {
-				// get the angle as radians
-				toRadians: function() {
-					if (!that.hasValue()) return 0;
-					var s = that.value+'';
-					if (s.match(/deg$/)) return that.numValue() * (Math.PI / 180.0);
-					if (s.match(/grad$/)) return that.numValue() * (Math.PI / 200.0);
-					if (s.match(/rad$/)) return that.numValue();
-					return that.numValue() * (Math.PI / 180.0);
-				}
-			}
-		}
-		
-		// fonts
-		svg.Font = new (function() {
-			this.Styles = ['normal','italic','oblique','inherit'];
-			this.Variants = ['normal','small-caps','inherit'];
-			this.Weights = ['normal','bold','bolder','lighter','100','200','300','400','500','600','700','800','900','inherit'];
-			
-			this.CreateFont = function(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) { 
-				var f = inherit != null ? this.Parse(inherit) : this.CreateFont('', '', '', '', '', svg.ctx.font);
-				return { 
-					fontFamily: fontFamily || f.fontFamily, 
-					fontSize: fontSize || f.fontSize, 
-					fontStyle: fontStyle || f.fontStyle, 
-					fontWeight: fontWeight || f.fontWeight, 
-					fontVariant: fontVariant || f.fontVariant,
-					toString: function () { return [this.fontStyle, this.fontVariant, this.fontWeight, this.fontSize, this.fontFamily].join(' ') } 
-				} 
-			}
-			
-			var that = this;
-			this.Parse = function(s) {
-				var f = {};
-				var d = svg.trim(svg.compressSpaces(s || '')).split(' ');
-				var set = { fontSize: false, fontStyle: false, fontWeight: false, fontVariant: false }
-				var ff = '';
-				for (var i=0; i<d.length; i++) {
-					if (!set.fontStyle && that.Styles.indexOf(d[i]) != -1) { if (d[i] != 'inherit') f.fontStyle = d[i]; set.fontStyle = true; }
-					else if (!set.fontVariant && that.Variants.indexOf(d[i]) != -1) { if (d[i] != 'inherit') f.fontVariant = d[i]; set.fontStyle = set.fontVariant = true;	}
-					else if (!set.fontWeight && that.Weights.indexOf(d[i]) != -1) {	if (d[i] != 'inherit') f.fontWeight = d[i]; set.fontStyle = set.fontVariant = set.fontWeight = true; }
-					else if (!set.fontSize) { if (d[i] != 'inherit') f.fontSize = d[i].split('/')[0]; set.fontStyle = set.fontVariant = set.fontWeight = set.fontSize = true; }
-					else { if (d[i] != 'inherit') ff += d[i]; }
-				} if (ff != '') f.fontFamily = ff;
-				return f;
-			}
-		});
-		
-		// points and paths
-		svg.ToNumberArray = function(s) {
-			var a = svg.trim(svg.compressSpaces((s || '').replace(/,/g, ' '))).split(' ');
-			for (var i=0; i<a.length; i++) {
-				a[i] = parseFloat(a[i]);
-			}
-			return a;
-		}		
-		svg.Point = function(x, y) {
-			this.x = x;
-			this.y = y;
-			
-			this.angleTo = function(p) {
-				return Math.atan2(p.y - this.y, p.x - this.x);
-			}
-			
-			this.applyTransform = function(v) {
-				var xp = this.x * v[0] + this.y * v[2] + v[4];
-				var yp = this.x * v[1] + this.y * v[3] + v[5];
-				this.x = xp;
-				this.y = yp;
-			}
-		}
-		svg.CreatePoint = function(s) {
-			var a = svg.ToNumberArray(s);
-			return new svg.Point(a[0], a[1]);
-		}
-		svg.CreatePath = function(s) {
-			var a = svg.ToNumberArray(s);
-			var path = [];
-			for (var i=0; i<a.length; i+=2) {
-				path.push(new svg.Point(a[i], a[i+1]));
-			}
-			return path;
-		}
-		
-		// bounding box
-		svg.BoundingBox = function(x1, y1, x2, y2) { // pass in initial points if you want
-			this.x1 = Number.NaN;
-			this.y1 = Number.NaN;
-			this.x2 = Number.NaN;
-			this.y2 = Number.NaN;
-			
-			this.x = function() { return this.x1; }
-			this.y = function() { return this.y1; }
-			this.width = function() { return this.x2 - this.x1; }
-			this.height = function() { return this.y2 - this.y1; }
-			
-			this.addPoint = function(x, y) {	
-				if (x != null) {
-					if (isNaN(this.x1) || isNaN(this.x2)) {
-						this.x1 = x;
-						this.x2 = x;
-					}
-					if (x < this.x1) this.x1 = x;
-					if (x > this.x2) this.x2 = x;
-				}
-			
-				if (y != null) {
-					if (isNaN(this.y1) || isNaN(this.y2)) {
-						this.y1 = y;
-						this.y2 = y;
-					}
-					if (y < this.y1) this.y1 = y;
-					if (y > this.y2) this.y2 = y;
-				}
-			}			
-			this.addX = function(x) { this.addPoint(x, null); }
-			this.addY = function(y) { this.addPoint(null, y); }
-			
-			this.addBoundingBox = function(bb) {
-				this.addPoint(bb.x1, bb.y1);
-				this.addPoint(bb.x2, bb.y2);
-			}
-			
-			this.addQuadraticCurve = function(p0x, p0y, p1x, p1y, p2x, p2y) {
-				var cp1x = p0x + 2/3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)
-				var cp1y = p0y + 2/3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)
-				var cp2x = cp1x + 1/3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)
-				var cp2y = cp1y + 1/3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)
-				this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y,	cp2y, p2x, p2y);
-			}
-			
-			this.addBezierCurve = function(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {
-				// from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html
-				var p0 = [p0x, p0y], p1 = [p1x, p1y], p2 = [p2x, p2y], p3 = [p3x, p3y];
-				this.addPoint(p0[0], p0[1]);
-				this.addPoint(p3[0], p3[1]);
-				
-				for (i=0; i<=1; i++) {
-					var f = function(t) { 
-						return Math.pow(1-t, 3) * p0[i]
-						+ 3 * Math.pow(1-t, 2) * t * p1[i]
-						+ 3 * (1-t) * Math.pow(t, 2) * p2[i]
-						+ Math.pow(t, 3) * p3[i];
-					}
-					
-					var b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];
-					var a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];
-					var c = 3 * p1[i] - 3 * p0[i];
-					
-					if (a == 0) {
-						if (b == 0) continue;
-						var t = -c / b;
-						if (0 < t && t < 1) {
-							if (i == 0) this.addX(f(t));
-							if (i == 1) this.addY(f(t));
-						}
-						continue;
-					}
-					
-					var b2ac = Math.pow(b, 2) - 4 * c * a;
-					if (b2ac < 0) continue;
-					var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);
-					if (0 < t1 && t1 < 1) {
-						if (i == 0) this.addX(f(t1));
-						if (i == 1) this.addY(f(t1));
-					}
-					var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);
-					if (0 < t2 && t2 < 1) {
-						if (i == 0) this.addX(f(t2));
-						if (i == 1) this.addY(f(t2));
-					}
-				}
-			}
-			
-			this.isPointInBox = function(x, y) {
-				return (this.x1 <= x && x <= this.x2 && this.y1 <= y && y <= this.y2);
-			}
-			
-			this.addPoint(x1, y1);
-			this.addPoint(x2, y2);
-		}
-		
-		// transforms
-		svg.Transform = function(v) {	
-			var that = this;
-			this.Type = {}
-		
-			// translate
-			this.Type.translate = function(s) {
-				this.p = svg.CreatePoint(s);			
-				this.apply = function(ctx) {
-					ctx.translate(this.p.x || 0.0, this.p.y || 0.0);
-				}
-				this.applyToPoint = function(p) {
-					p.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);
-				}
-			}
-			
-			// rotate
-			this.Type.rotate = function(s) {
-				var a = svg.ToNumberArray(s);
-				this.angle = new svg.Property('angle', a[0]);
-				this.cx = a[1] || 0;
-				this.cy = a[2] || 0;
-				this.apply = function(ctx) {
-					ctx.translate(this.cx, this.cy);
-					ctx.rotate(this.angle.Angle.toRadians());
-					ctx.translate(-this.cx, -this.cy);
-				}
-				this.applyToPoint = function(p) {
-					var a = this.angle.Angle.toRadians();
-					p.applyTransform([1, 0, 0, 1, this.p.x || 0.0, this.p.y || 0.0]);
-					p.applyTransform([Math.cos(a), Math.sin(a), -Math.sin(a), Math.cos(a), 0, 0]);
-					p.applyTransform([1, 0, 0, 1, -this.p.x || 0.0, -this.p.y || 0.0]);
-				}			
-			}
-			
-			this.Type.scale = function(s) {
-				this.p = svg.CreatePoint(s);
-				this.apply = function(ctx) {
-					ctx.scale(this.p.x || 1.0, this.p.y || this.p.x || 1.0);
-				}
-				this.applyToPoint = function(p) {
-					p.applyTransform([this.p.x || 0.0, 0, 0, this.p.y || 0.0, 0, 0]);
-				}				
-			}
-			
-			this.Type.matrix = function(s) {
-				this.m = svg.ToNumberArray(s);
-				this.apply = function(ctx) {
-					ctx.transform(this.m[0], this.m[1], this.m[2], this.m[3], this.m[4], this.m[5]);
-				}
-				this.applyToPoint = function(p) {
-					p.applyTransform(this.m);
-				}					
-			}
-			
-			this.Type.SkewBase = function(s) {
-				this.base = that.Type.matrix;
-				this.base(s);
-				this.angle = new svg.Property('angle', s);
-			}
-			this.Type.SkewBase.prototype = new this.Type.matrix;
-			
-			this.Type.skewX = function(s) {
-				this.base = that.Type.SkewBase;
-				this.base(s);
-				this.m = [1, 0, Math.tan(this.angle.Angle.toRadians()), 1, 0, 0];
-			}
-			this.Type.skewX.prototype = new this.Type.SkewBase;
-			
-			this.Type.skewY = function(s) {
-				this.base = that.Type.SkewBase;
-				this.base(s);
-				this.m = [1, Math.tan(this.angle.Angle.toRadians()), 0, 1, 0, 0];
-			}
-			this.Type.skewY.prototype = new this.Type.SkewBase;
-		
-			this.transforms = [];
-			
-			this.apply = function(ctx) {
-				for (var i=0; i<this.transforms.length; i++) {
-					this.transforms[i].apply(ctx);
-				}
-			}
-			
-			this.applyToPoint = function(p) {
-				for (var i=0; i<this.transforms.length; i++) {
-					this.transforms[i].applyToPoint(p);
-				}
-			}
-			
-			var data = svg.trim(svg.compressSpaces(v)).split(/\s(?=[a-z])/);
-			for (var i=0; i<data.length; i++) {
-				var type = data[i].split('(')[0];
-				var s = data[i].split('(')[1].replace(')','');
-				var transform = new this.Type[type](s);
-				this.transforms.push(transform);
-			}
-		}
-		
-		// aspect ratio
-		svg.AspectRatio = function(ctx, aspectRatio, width, desiredWidth, height, desiredHeight, minX, minY, refX, refY) {
-			// aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute
-			aspectRatio = svg.compressSpaces(aspectRatio);
-			aspectRatio = aspectRatio.replace(/^defer\s/,''); // ignore defer
-			var align = aspectRatio.split(' ')[0] || 'xMidYMid';
-			var meetOrSlice = aspectRatio.split(' ')[1] || 'meet';					
-	
-			// calculate scale
-			var scaleX = width / desiredWidth;
-			var scaleY = height / desiredHeight;
-			var scaleMin = Math.min(scaleX, scaleY);
-			var scaleMax = Math.max(scaleX, scaleY);
-			if (meetOrSlice == 'meet') { desiredWidth *= scaleMin; desiredHeight *= scaleMin; }
-			if (meetOrSlice == 'slice') { desiredWidth *= scaleMax; desiredHeight *= scaleMax; }	
-			
-			refX = new svg.Property('refX', refX);
-			refY = new svg.Property('refY', refY);
-			if (refX.hasValue() && refY.hasValue()) {				
-				ctx.translate(-scaleMin * refX.Length.toPixels('x'), -scaleMin * refY.Length.toPixels('y'));
-			} 
-			else {					
-				// align
-				if (align.match(/^xMid/) && ((meetOrSlice == 'meet' && scaleMin == scaleY) || (meetOrSlice == 'slice' && scaleMax == scaleY))) ctx.translate(width / 2.0 - desiredWidth / 2.0, 0); 
-				if (align.match(/YMid$/) && ((meetOrSlice == 'meet' && scaleMin == scaleX) || (meetOrSlice == 'slice' && scaleMax == scaleX))) ctx.translate(0, height / 2.0 - desiredHeight / 2.0); 
-				if (align.match(/^xMax/) && ((meetOrSlice == 'meet' && scaleMin == scaleY) || (meetOrSlice == 'slice' && scaleMax == scaleY))) ctx.translate(width - desiredWidth, 0); 
-				if (align.match(/YMax$/) && ((meetOrSlice == 'meet' && scaleMin == scaleX) || (meetOrSlice == 'slice' && scaleMax == scaleX))) ctx.translate(0, height - desiredHeight); 
-			}
-			
-			// scale
-			if (align == 'none') ctx.scale(scaleX, scaleY);
-			else if (meetOrSlice == 'meet') ctx.scale(scaleMin, scaleMin); 
-			else if (meetOrSlice == 'slice') ctx.scale(scaleMax, scaleMax); 	
-			
-			// translate
-			ctx.translate(minX == null ? 0 : -minX, minY == null ? 0 : -minY);			
-		}
-		
-		// elements
-		svg.Element = {}
-		
-		svg.Element.ElementBase = function(node) {	
-			this.attributes = {};
-			this.styles = {};
-			this.children = [];
-			
-			// get or create attribute
-			this.attribute = function(name, createIfNotExists) {
-				var a = this.attributes[name];
-				if (a != null) return a;
-							
-				a = new svg.Property(name, '');
-				if (createIfNotExists == true) this.attributes[name] = a;
-				return a;
-			}
-			
-			// get or create style, crawls up node tree
-			this.style = function(name, createIfNotExists) {
-				var s = this.styles[name];
-				if (s != null) return s;
-				
-				var a = this.attribute(name);
-				if (a != null && a.hasValue()) {
-					return a;
-				}
-				
-				var p = this.parent;
-				if (p != null) {
-					var ps = p.style(name);
-					if (ps != null && ps.hasValue()) {
-						return ps;
-					}
-				}
-					
-				s = new svg.Property(name, '');
-				if (createIfNotExists == true) this.styles[name] = s;
-				return s;
-			}
-			
-			// base render
-			this.render = function(ctx) {
-				// don't render display=none
-				if (this.style('display').value == 'none') return;
-				
-				// don't render visibility=hidden
-				if (this.attribute('visibility').value == 'hidden') return;
-			
-				ctx.save();
-					this.setContext(ctx);
-						// mask
-						if (this.attribute('mask').hasValue()) {
-							var mask = this.attribute('mask').Definition.getDefinition();
-							if (mask != null) mask.apply(ctx, this);
-						}
-						else if (this.style('filter').hasValue()) {
-							var filter = this.style('filter').Definition.getDefinition();
-							if (filter != null) filter.apply(ctx, this);
-						}
-						else this.renderChildren(ctx);				
-					this.clearContext(ctx);
-				ctx.restore();
-			}
-			
-			// base set context
-			this.setContext = function(ctx) {
-				// OVERRIDE ME!
-			}
-			
-			// base clear context
-			this.clearContext = function(ctx) {
-				// OVERRIDE ME!
-			}			
-			
-			// base render children
-			this.renderChildren = function(ctx) {
-				for (var i=0; i<this.children.length; i++) {
-					this.children[i].render(ctx);
-				}
-			}
-			
-			this.addChild = function(childNode, create) {
-				var child = childNode;
-				if (create) child = svg.CreateElement(childNode);
-				child.parent = this;
-				this.children.push(child);			
-			}
-				
-			if (node != null && node.nodeType == 1) { //ELEMENT_NODE
-				// add children
-				for (var i=0; i<node.childNodes.length; i++) {
-					var childNode = node.childNodes[i];
-					if (childNode.nodeType == 1) this.addChild(childNode, true); //ELEMENT_NODE
-				}
-				
-				// add attributes
-				for (var i=0; i<node.attributes.length; i++) {
-					var attribute = node.attributes[i];
-					this.attributes[attribute.nodeName] = new svg.Property(attribute.nodeName, attribute.nodeValue);
-				}
-										
-				// add tag styles
-				var styles = svg.Styles[node.nodeName];
-				if (styles != null) {
-					for (var name in styles) {
-						this.styles[name] = styles[name];
-					}
-				}					
-				
-				// add class styles
-				if (this.attribute('class').hasValue()) {
-					var classes = svg.compressSpaces(this.attribute('class').value).split(' ');
-					for (var j=0; j<classes.length; j++) {
-						styles = svg.Styles['.'+classes[j]];
-						if (styles != null) {
-							for (var name in styles) {
-								this.styles[name] = styles[name];
-							}
-						}
-						styles = svg.Styles[node.nodeName+'.'+classes[j]];
-						if (styles != null) {
-							for (var name in styles) {
-								this.styles[name] = styles[name];
-							}
-						}
-					}
-				}
-				
-				// add inline styles
-				if (this.attribute('style').hasValue()) {
-					var styles = this.attribute('style').value.split(';');
-					for (var i=0; i<styles.length; i++) {
-						if (svg.trim(styles[i]) != '') {
-							var style = styles[i].split(':');
-							var name = svg.trim(style[0]);
-							var value = svg.trim(style[1]);
-							this.styles[name] = new svg.Property(name, value);
-						}
-					}
-				}	
-
-				// add id
-				if (this.attribute('id').hasValue()) {
-					if (svg.Definitions[this.attribute('id').value] == null) {
-						svg.Definitions[this.attribute('id').value] = this;
-					}
-				}
-			}
-		}
-		
-		svg.Element.RenderedElementBase = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-			
-			this.setContext = function(ctx) {
-				// fill
-				if (this.style('fill').Definition.isUrl()) {
-					var fs = this.style('fill').Definition.getFillStyle(this);
-					if (fs != null) ctx.fillStyle = fs;
-				}
-				else if (this.style('fill').hasValue()) {
-					var fillStyle = this.style('fill');
-					if (this.style('fill-opacity').hasValue()) fillStyle = fillStyle.Color.addOpacity(this.style('fill-opacity').value);
-					ctx.fillStyle = (fillStyle.value == 'none' ? 'rgba(0,0,0,0)' : fillStyle.value);
-				}
-									
-				// stroke
-				if (this.style('stroke').Definition.isUrl()) {
-					var fs = this.style('stroke').Definition.getFillStyle(this);
-					if (fs != null) ctx.strokeStyle = fs;
-				}
-				else if (this.style('stroke').hasValue()) {
-					var strokeStyle = this.style('stroke');
-					if (this.style('stroke-opacity').hasValue()) strokeStyle = strokeStyle.Color.addOpacity(this.style('stroke-opacity').value);
-					ctx.strokeStyle = (strokeStyle.value == 'none' ? 'rgba(0,0,0,0)' : strokeStyle.value);
-				}
-				if (this.style('stroke-width').hasValue()) ctx.lineWidth = this.style('stroke-width').Length.toPixels();
-				if (this.style('stroke-linecap').hasValue()) ctx.lineCap = this.style('stroke-linecap').value;
-				if (this.style('stroke-linejoin').hasValue()) ctx.lineJoin = this.style('stroke-linejoin').value;
-				if (this.style('stroke-miterlimit').hasValue()) ctx.miterLimit = this.style('stroke-miterlimit').value;
-
-				// font
-				if (typeof(ctx.font) != 'undefined') {
-					ctx.font = svg.Font.CreateFont( 
-						this.style('font-style').value, 
-						this.style('font-variant').value, 
-						this.style('font-weight').value, 
-						this.style('font-size').hasValue() ? this.style('font-size').Length.toPixels() + 'px' : '', 
-						this.style('font-family').value).toString();
-				}
-				
-				// transform
-				if (this.attribute('transform').hasValue()) { 
-					var transform = new svg.Transform(this.attribute('transform').value);
-					transform.apply(ctx);
-				}
-				
-				// clip
-				if (this.attribute('clip-path').hasValue()) {
-					var clip = this.attribute('clip-path').Definition.getDefinition();
-					if (clip != null) clip.apply(ctx);
-				}
-				
-				// opacity
-				if (this.style('opacity').hasValue()) {
-					ctx.globalAlpha = this.style('opacity').numValue();
-				}
-			}		
-		}
-		svg.Element.RenderedElementBase.prototype = new svg.Element.ElementBase;
-		
-		svg.Element.PathElementBase = function(node) {
-			this.base = svg.Element.RenderedElementBase;
-			this.base(node);
-			
-			this.path = function(ctx) {
-				if (ctx != null) ctx.beginPath();
-				return new svg.BoundingBox();
-			}
-			
-			this.renderChildren = function(ctx) {
-				this.path(ctx);
-				svg.Mouse.checkPath(this, ctx);
-				if (ctx.fillStyle != '') ctx.fill();
-				if (ctx.strokeStyle != '') ctx.stroke();
-				
-				var markers = this.getMarkers();
-				if (markers != null) {
-					if (this.style('marker-start').Definition.isUrl()) {
-						var marker = this.style('marker-start').Definition.getDefinition();
-						marker.render(ctx, markers[0][0], markers[0][1]);
-					}
-					if (this.style('marker-mid').Definition.isUrl()) {
-						var marker = this.style('marker-mid').Definition.getDefinition();
-						for (var i=1;i<markers.length-1;i++) {
-							marker.render(ctx, markers[i][0], markers[i][1]);
-						}
-					}
-					if (this.style('marker-end').Definition.isUrl()) {
-						var marker = this.style('marker-end').Definition.getDefinition();
-						marker.render(ctx, markers[markers.length-1][0], markers[markers.length-1][1]);
-					}
-				}					
-			}
-			
-			this.getBoundingBox = function() {
-				return this.path();
-			}
-			
-			this.getMarkers = function() {
-				return null;
-			}
-		}
-		svg.Element.PathElementBase.prototype = new svg.Element.RenderedElementBase;
-		
-		// svg element
-		svg.Element.svg = function(node) {
-			this.base = svg.Element.RenderedElementBase;
-			this.base(node);
-			
-			this.baseClearContext = this.clearContext;
-			this.clearContext = function(ctx) {
-				this.baseClearContext(ctx);
-				svg.ViewPort.RemoveCurrent();
-			}
-			
-			this.baseSetContext = this.setContext;
-			this.setContext = function(ctx) {
-				// initial values
-				ctx.strokeStyle = 'rgba(0,0,0,0)';
-				ctx.lineCap = 'butt';
-				ctx.lineJoin = 'miter';
-				ctx.miterLimit = 4;			
-			
-				this.baseSetContext(ctx);
-				
-				// create new view port
-				if (this.attribute('x').hasValue() && this.attribute('y').hasValue()) {
-					ctx.translate(this.attribute('x').Length.toPixels('x'), this.attribute('y').Length.toPixels('y'));
-				}
-				
-				var width = svg.ViewPort.width();
-				var height = svg.ViewPort.height();
-				if (typeof(this.root) == 'undefined' && this.attribute('width').hasValue() && this.attribute('height').hasValue()) {
-					width = this.attribute('width').Length.toPixels('x');
-					height = this.attribute('height').Length.toPixels('y');
-					
-					var x = 0;
-					var y = 0;
-					if (this.attribute('refX').hasValue() && this.attribute('refY').hasValue()) {
-						x = -this.attribute('refX').Length.toPixels('x');
-						y = -this.attribute('refY').Length.toPixels('y');
-					}
-					
-					ctx.beginPath();
-					ctx.moveTo(x, y);
-					ctx.lineTo(width, y);
-					ctx.lineTo(width, height);
-					ctx.lineTo(x, height);
-					ctx.closePath();
-					ctx.clip();
-				}
-				svg.ViewPort.SetCurrent(width, height);	
-						
-				// viewbox
-				if (this.attribute('viewBox').hasValue()) {				
-					var viewBox = svg.ToNumberArray(this.attribute('viewBox').value);
-					var minX = viewBox[0];
-					var minY = viewBox[1];
-					width = viewBox[2];
-					height = viewBox[3];
-					
-					svg.AspectRatio(ctx,
-									this.attribute('preserveAspectRatio').value, 
-									svg.ViewPort.width(), 
-									width,
-									svg.ViewPort.height(),
-									height,
-									minX,
-									minY,
-									this.attribute('refX').value,
-									this.attribute('refY').value);
-										
-					svg.ViewPort.RemoveCurrent();	
-					svg.ViewPort.SetCurrent(viewBox[2], viewBox[3]);						
-				}				
-			}
-		}
-		svg.Element.svg.prototype = new svg.Element.RenderedElementBase;
-
-		// rect element
-		svg.Element.rect = function(node) {
-			this.base = svg.Element.PathElementBase;
-			this.base(node);
-			
-			this.path = function(ctx) {
-				var x = this.attribute('x').Length.toPixels('x');
-				var y = this.attribute('y').Length.toPixels('y');
-				var width = this.attribute('width').Length.toPixels('x');
-				var height = this.attribute('height').Length.toPixels('y');
-				var rx = this.attribute('rx').Length.toPixels('x');
-				var ry = this.attribute('ry').Length.toPixels('y');
-				if (this.attribute('rx').hasValue() && !this.attribute('ry').hasValue()) ry = rx;
-				if (this.attribute('ry').hasValue() && !this.attribute('rx').hasValue()) rx = ry;
-				
-				if (ctx != null) {
-					ctx.beginPath();
-					ctx.moveTo(x + rx, y);
-					ctx.lineTo(x + width - rx, y);
-					ctx.quadraticCurveTo(x + width, y, x + width, y + ry)
-					ctx.lineTo(x + width, y + height - ry);
-					ctx.quadraticCurveTo(x + width, y + height, x + width - rx, y + height)
-					ctx.lineTo(x + rx, y + height);
-					ctx.quadraticCurveTo(x, y + height, x, y + height - ry)
-					ctx.lineTo(x, y + ry);
-					ctx.quadraticCurveTo(x, y, x + rx, y)
-					ctx.closePath();
-				}
-				
-				return new svg.BoundingBox(x, y, x + width, y + height);
-			}
-		}
-		svg.Element.rect.prototype = new svg.Element.PathElementBase;
-		
-		// circle element
-		svg.Element.circle = function(node) {
-			this.base = svg.Element.PathElementBase;
-			this.base(node);
-			
-			this.path = function(ctx) {
-				var cx = this.attribute('cx').Length.toPixels('x');
-				var cy = this.attribute('cy').Length.toPixels('y');
-				var r = this.attribute('r').Length.toPixels();
-			
-				if (ctx != null) {
-					ctx.beginPath();
-					ctx.arc(cx, cy, r, 0, Math.PI * 2, true); 
-					ctx.closePath();
-				}
-				
-				return new svg.BoundingBox(cx - r, cy - r, cx + r, cy + r);
-			}
-		}
-		svg.Element.circle.prototype = new svg.Element.PathElementBase;	
-
-		// ellipse element
-		svg.Element.ellipse = function(node) {
-			this.base = svg.Element.PathElementBase;
-			this.base(node);
-			
-			this.path = function(ctx) {
-				var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);
-				var rx = this.attribute('rx').Length.toPixels('x');
-				var ry = this.attribute('ry').Length.toPixels('y');
-				var cx = this.attribute('cx').Length.toPixels('x');
-				var cy = this.attribute('cy').Length.toPixels('y');
-				
-				if (ctx != null) {
-					ctx.beginPath();
-					ctx.moveTo(cx, cy - ry);
-					ctx.bezierCurveTo(cx + (KAPPA * rx), cy - ry,  cx + rx, cy - (KAPPA * ry), cx + rx, cy);
-					ctx.bezierCurveTo(cx + rx, cy + (KAPPA * ry), cx + (KAPPA * rx), cy + ry, cx, cy + ry);
-					ctx.bezierCurveTo(cx - (KAPPA * rx), cy + ry, cx - rx, cy + (KAPPA * ry), cx - rx, cy);
-					ctx.bezierCurveTo(cx - rx, cy - (KAPPA * ry), cx - (KAPPA * rx), cy - ry, cx, cy - ry);
-					ctx.closePath();
-				}
-				
-				return new svg.BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);
-			}
-		}
-		svg.Element.ellipse.prototype = new svg.Element.PathElementBase;			
-		
-		// line element
-		svg.Element.line = function(node) {
-			this.base = svg.Element.PathElementBase;
-			this.base(node);
-			
-			this.getPoints = function() {
-				return [
-					new svg.Point(this.attribute('x1').Length.toPixels('x'), this.attribute('y1').Length.toPixels('y')),
-					new svg.Point(this.attribute('x2').Length.toPixels('x'), this.attribute('y2').Length.toPixels('y'))];
-			}
-								
-			this.path = function(ctx) {
-				var points = this.getPoints();
-				
-				if (ctx != null) {
-					ctx.beginPath();
-					ctx.moveTo(points[0].x, points[0].y);
-					ctx.lineTo(points[1].x, points[1].y);
-				}
-				
-				return new svg.BoundingBox(points[0].x, points[0].y, points[1].x, points[1].y);
-			}
-			
-			this.getMarkers = function() {
-				var points = this.getPoints();	
-				var a = points[0].angleTo(points[1]);
-				return [[points[0], a], [points[1], a]];
-			}
-		}
-		svg.Element.line.prototype = new svg.Element.PathElementBase;		
-				
-		// polyline element
-		svg.Element.polyline = function(node) {
-			this.base = svg.Element.PathElementBase;
-			this.base(node);
-			
-			this.points = svg.CreatePath(this.attribute('points').value);
-			this.path = function(ctx) {
-				var bb = new svg.BoundingBox(this.points[0].x, this.points[0].y);
-				if (ctx != null) {
-					ctx.beginPath();
-					ctx.moveTo(this.points[0].x, this.points[0].y);
-				}
-				for (var i=1; i<this.points.length; i++) {
-					bb.addPoint(this.points[i].x, this.points[i].y);
-					if (ctx != null) ctx.lineTo(this.points[i].x, this.points[i].y);
-				}
-				return bb;
-			}
-			
-			this.getMarkers = function() {
-				var markers = [];
-				for (var i=0; i<this.points.length - 1; i++) {
-					markers.push([this.points[i], this.points[i].angleTo(this.points[i+1])]);
-				}
-				markers.push([this.points[this.points.length-1], markers[markers.length-1][1]]);
-				return markers;
-			}			
-		}
-		svg.Element.polyline.prototype = new svg.Element.PathElementBase;				
-				
-		// polygon element
-		svg.Element.polygon = function(node) {
-			this.base = svg.Element.polyline;
-			this.base(node);
-			
-			this.basePath = this.path;
-			this.path = function(ctx) {
-				var bb = this.basePath(ctx);
-				if (ctx != null) {
-					ctx.lineTo(this.points[0].x, this.points[0].y);
-					ctx.closePath();
-				}
-				return bb;
-			}
-		}
-		svg.Element.polygon.prototype = new svg.Element.polyline;
-
-		// path element
-		svg.Element.path = function(node) {
-			this.base = svg.Element.PathElementBase;
-			this.base(node);
-					
-			var d = this.attribute('d').value;
-			// TODO: convert to real lexer based on http://www.w3.org/TR/SVG11/paths.html#PathDataBNF
-			d = d.replace(/,/gm,' '); // get rid of all commas
-			d = d.replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,'$1 $2'); // separate commands from commands
-			d = d.replace(/([MmZzLlHhVvCcSsQqTtAa])([MmZzLlHhVvCcSsQqTtAa])/gm,'$1 $2'); // separate commands from commands
-			d = d.replace(/([MmZzLlHhVvCcSsQqTtAa])([^\s])/gm,'$1 $2'); // separate commands from points
-			d = d.replace(/([^\s])([MmZzLlHhVvCcSsQqTtAa])/gm,'$1 $2'); // separate commands from points
-			d = d.replace(/([0-9])([+\-])/gm,'$1 $2'); // separate digits when no comma
-			d = d.replace(/(\.[0-9]*)(\.)/gm,'$1 $2'); // separate digits when no comma
-			d = d.replace(/([Aa](\s+[0-9]+){3})\s+([01])\s*([01])/gm,'$1 $3 $4 '); // shorthand elliptical arc path syntax
-			d = svg.compressSpaces(d); // compress multiple spaces
-			d = svg.trim(d);
-			this.PathParser = new (function(d) {
-				this.tokens = d.split(' ');
-				
-				this.reset = function() {
-					this.i = -1;
-					this.command = '';
-					this.previousCommand = '';
-					this.start = new svg.Point(0, 0);
-					this.control = new svg.Point(0, 0);
-					this.current = new svg.Point(0, 0);
-					this.points = [];
-					this.angles = [];
-				}
-								
-				this.isEnd = function() {
-					return this.i >= this.tokens.length - 1;
-				}
-				
-				this.isCommandOrEnd = function() {
-					if (this.isEnd()) return true;
-					return this.tokens[this.i + 1].match(/^[A-Za-z]$/) != null;
-				}
-				
-				this.isRelativeCommand = function() {
-					return this.command == this.command.toLowerCase();
-				}
-							
-				this.getToken = function() {
-					this.i = this.i + 1;
-					return this.tokens[this.i];
-				}
-				
-				this.getScalar = function() {
-					return parseFloat(this.getToken());
-				}
-				
-				this.nextCommand = function() {
-					this.previousCommand = this.command;
-					this.command = this.getToken();
-				}				
-				
-				this.getPoint = function() {
-					var p = new svg.Point(this.getScalar(), this.getScalar());
-					return this.makeAbsolute(p);
-				}
-				
-				this.getAsControlPoint = function() {
-					var p = this.getPoint();
-					this.control = p;
-					return p;
-				}
-				
-				this.getAsCurrentPoint = function() {
-					var p = this.getPoint();
-					this.current = p;
-					return p;	
-				}
-				
-				this.getReflectedControlPoint = function() {
-					if (this.previousCommand.toLowerCase() != 'c' && this.previousCommand.toLowerCase() != 's') {
-						return this.current;
-					}
-					
-					// reflect point
-					var p = new svg.Point(2 * this.current.x - this.control.x, 2 * this.current.y - this.control.y);					
-					return p;
-				}
-				
-				this.makeAbsolute = function(p) {
-					if (this.isRelativeCommand()) {
-						p.x = this.current.x + p.x;
-						p.y = this.current.y + p.y;
-					}
-					return p;
-				}
-				
-				this.addMarker = function(p, from, priorTo) {
-					// if the last angle isn't filled in because we didn't have this point yet ...
-					if (priorTo != null && this.angles.length > 0 && this.angles[this.angles.length-1] == null) {
-						this.angles[this.angles.length-1] = this.points[this.points.length-1].angleTo(priorTo);
-					}
-					this.addMarkerAngle(p, from == null ? null : from.angleTo(p));
-				}
-				
-				this.addMarkerAngle = function(p, a) {
-					this.points.push(p);
-					this.angles.push(a);
-				}				
-				
-				this.getMarkerPoints = function() { return this.points; }
-				this.getMarkerAngles = function() {
-					for (var i=0; i<this.angles.length; i++) {
-						if (this.angles[i] == null) {
-							for (var j=i+1; j<this.angles.length; j++) {
-								if (this.angles[j] != null) {
-									this.angles[i] = this.angles[j];
-									break;
-								}
-							}
-						}
-					}
-					return this.angles;
-				}
-			})(d);
-
-			this.path = function(ctx) {
-				var pp = this.PathParser;
-				pp.reset();
-
-				var bb = new svg.BoundingBox();
-				if (ctx != null) ctx.beginPath();
-				while (!pp.isEnd()) {
-					pp.nextCommand();
-					switch (pp.command.toUpperCase()) {
-					case 'M':
-						var p = pp.getAsCurrentPoint();
-						pp.addMarker(p);
-						bb.addPoint(p.x, p.y);
-						if (ctx != null) ctx.moveTo(p.x, p.y);
-						pp.start = pp.current;
-						while (!pp.isCommandOrEnd()) {
-							var p = pp.getAsCurrentPoint();
-							pp.addMarker(p, pp.start);
-							bb.addPoint(p.x, p.y);
-							if (ctx != null) ctx.lineTo(p.x, p.y);
-						}
-						break;
-					case 'L':
-						while (!pp.isCommandOrEnd()) {
-							var c = pp.current;
-							var p = pp.getAsCurrentPoint();
-							pp.addMarker(p, c);
-							bb.addPoint(p.x, p.y);
-							if (ctx != null) ctx.lineTo(p.x, p.y);
-						}
-						break;
-					case 'H':
-						while (!pp.isCommandOrEnd()) {
-							var newP = new svg.Point((pp.isRelativeCommand() ? pp.current.x : 0) + pp.getScalar(), pp.current.y);
-							pp.addMarker(newP, pp.current);
-							pp.current = newP;
-							bb.addPoint(pp.current.x, pp.current.y);
-							if (ctx != null) ctx.lineTo(pp.current.x, pp.current.y);
-						}
-						break;
-					case 'V':
-						while (!pp.isCommandOrEnd()) {
-							var newP = new svg.Point(pp.current.x, (pp.isRelativeCommand() ? pp.current.y : 0) + pp.getScalar());
-							pp.addMarker(newP, pp.current);
-							pp.current = newP;
-							bb.addPoint(pp.current.x, pp.current.y);
-							if (ctx != null) ctx.lineTo(pp.current.x, pp.current.y);
-						}
-						break;
-					case 'C':
-						while (!pp.isCommandOrEnd()) {
-							var curr = pp.current;
-							var p1 = pp.getPoint();
-							var cntrl = pp.getAsControlPoint();
-							var cp = pp.getAsCurrentPoint();
-							pp.addMarker(cp, cntrl, p1);
-							bb.addBezierCurve(curr.x, curr.y, p1.x, p1.y, cntrl.x, cntrl.y, cp.x, cp.y);
-							if (ctx != null) ctx.bezierCurveTo(p1.x, p1.y, cntrl.x, cntrl.y, cp.x, cp.y);
-						}
-						break;
-					case 'S':
-						while (!pp.isCommandOrEnd()) {
-							var curr = pp.current;
-							var p1 = pp.getReflectedControlPoint();
-							var cntrl = pp.getAsControlPoint();
-							var cp = pp.getAsCurrentPoint();
-							pp.addMarker(cp, cntrl, p1);
-							bb.addBezierCurve(curr.x, curr.y, p1.x, p1.y, cntrl.x, cntrl.y, cp.x, cp.y);
-							if (ctx != null) ctx.bezierCurveTo(p1.x, p1.y, cntrl.x, cntrl.y, cp.x, cp.y);
-						}
-						break;
-					case 'Q':
-						while (!pp.isCommandOrEnd()) {
-							var curr = pp.current;
-							var cntrl = pp.getAsControlPoint();
-							var cp = pp.getAsCurrentPoint();
-							pp.addMarker(cp, cntrl, cntrl);
-							bb.addQuadraticCurve(curr.x, curr.y, cntrl.x, cntrl.y, cp.x, cp.y);
-							if (ctx != null) ctx.quadraticCurveTo(cntrl.x, cntrl.y, cp.x, cp.y);
-						}
-						break;
-					case 'T':
-						while (!pp.isCommandOrEnd()) {
-							var curr = pp.current;
-							var cntrl = pp.getReflectedControlPoint();
-							pp.control = cntrl;
-							var cp = pp.getAsCurrentPoint();
-							pp.addMarker(cp, cntrl, cntrl);
-							bb.addQuadraticCurve(curr.x, curr.y, cntrl.x, cntrl.y, cp.x, cp.y);
-							if (ctx != null) ctx.quadraticCurveTo(cntrl.x, cntrl.y, cp.x, cp.y);
-						}
-						break;
-					case 'A':
-						while (!pp.isCommandOrEnd()) {
-						    var curr = pp.current;
-							var rx = pp.getScalar();
-							var ry = pp.getScalar();
-							var xAxisRotation = pp.getScalar() * (Math.PI / 180.0);
-							var largeArcFlag = pp.getScalar();
-							var sweepFlag = pp.getScalar();
-							var cp = pp.getAsCurrentPoint();
-
-							// Conversion from endpoint to center parameterization
-							// http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
-							// x1', y1'
-							var currp = new svg.Point(
-								Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0,
-								-Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0
-							);
-							// adjust radii
-							var l = Math.pow(currp.x,2)/Math.pow(rx,2)+Math.pow(currp.y,2)/Math.pow(ry,2);
-							if (l > 1) {
-								rx *= Math.sqrt(l);
-								ry *= Math.sqrt(l);
-							}
-							// cx', cy'
-							var s = (largeArcFlag == sweepFlag ? -1 : 1) * Math.sqrt(
-								((Math.pow(rx,2)*Math.pow(ry,2))-(Math.pow(rx,2)*Math.pow(currp.y,2))-(Math.pow(ry,2)*Math.pow(currp.x,2))) /
-								(Math.pow(rx,2)*Math.pow(currp.y,2)+Math.pow(ry,2)*Math.pow(currp.x,2))
-							);
-							if (isNaN(s)) s = 0;
-							var cpp = new svg.Point(s * rx * currp.y / ry, s * -ry * currp.x / rx);
-							// cx, cy
-							var centp = new svg.Point(
-								(curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,
-								(curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y
-							);
-							// vector magnitude
-							var m = function(v) { return Math.sqrt(Math.pow(v[0],2) + Math.pow(v[1],2)); }
-							// ratio between two vectors
-							var r = function(u, v) { return (u[0]*v[0]+u[1]*v[1]) / (m(u)*m(v)) }
-							// angle between two vectors
-							var a = function(u, v) { return (u[0]*v[1] < u[1]*v[0] ? -1 : 1) * Math.acos(r(u,v)); }
-							// initial angle
-							var a1 = a([1,0], [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry]);
-							// angle delta
-							var u = [(currp.x-cpp.x)/rx,(currp.y-cpp.y)/ry];
-							var v = [(-currp.x-cpp.x)/rx,(-currp.y-cpp.y)/ry];
-							var ad = a(u, v);
-							if (r(u,v) <= -1) ad = Math.PI;
-							if (r(u,v) >= 1) ad = 0;
-
-							if (sweepFlag == 0 && ad > 0) ad = ad - 2 * Math.PI;
-							if (sweepFlag == 1 && ad < 0) ad = ad + 2 * Math.PI;
-
-							// for markers
-							var halfWay = new svg.Point(
-								centp.x - rx * Math.cos((a1 + ad) / 2),
-								centp.y - ry * Math.sin((a1 + ad) / 2)
-							);
-							pp.addMarkerAngle(halfWay, (a1 + ad) / 2 + (sweepFlag == 0 ? 1 : -1) * Math.PI / 2);
-							pp.addMarkerAngle(cp, ad + (sweepFlag == 0 ? 1 : -1) * Math.PI / 2);
-
-							bb.addPoint(cp.x, cp.y); // TODO: this is too naive, make it better
-							if (ctx != null) {
-								var r = rx > ry ? rx : ry;
-								var sx = rx > ry ? 1 : rx / ry;
-								var sy = rx > ry ? ry / rx : 1;
-
-								ctx.translate(centp.x, centp.y);
-								ctx.rotate(xAxisRotation);
-								ctx.scale(sx, sy);
-								ctx.arc(0, 0, r, a1, a1 + ad, 1 - sweepFlag);
-								ctx.scale(1/sx, 1/sy);
-								ctx.rotate(-xAxisRotation);
-								ctx.translate(-centp.x, -centp.y);
-							}
-						}
-						break;
-					case 'Z':
-						if (ctx != null) ctx.closePath();
-						pp.current = pp.start;
-					}
-				}
-
-				return bb;
-			}
-
-			this.getMarkers = function() {
-				var points = this.PathParser.getMarkerPoints();
-				var angles = this.PathParser.getMarkerAngles();
-				
-				var markers = [];
-				for (var i=0; i<points.length; i++) {
-					markers.push([points[i], angles[i]]);
-				}
-				return markers;
-			}
-		}
-		svg.Element.path.prototype = new svg.Element.PathElementBase;
-		
-		// pattern element
-		svg.Element.pattern = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-			
-			this.createPattern = function(ctx, element) {
-				// render me using a temporary svg element
-				var tempSvg = new svg.Element.svg();
-				tempSvg.attributes['viewBox'] = new svg.Property('viewBox', this.attribute('viewBox').value);
-				tempSvg.attributes['x'] = new svg.Property('x', this.attribute('x').value);
-				tempSvg.attributes['y'] = new svg.Property('y', this.attribute('y').value);
-				tempSvg.attributes['width'] = new svg.Property('width', this.attribute('width').value);
-				tempSvg.attributes['height'] = new svg.Property('height', this.attribute('height').value);
-				tempSvg.children = this.children;
-				
-				var c = document.createElement('canvas');
-				c.width = this.attribute('width').Length.toPixels('x');
-				c.height = this.attribute('height').Length.toPixels('y');
-				tempSvg.render(c.getContext('2d'));		
-				return ctx.createPattern(c, 'repeat');
-			}
-		}
-		svg.Element.pattern.prototype = new svg.Element.ElementBase;
-		
-		// marker element
-		svg.Element.marker = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-			
-			this.baseRender = this.render;
-			this.render = function(ctx, point, angle) {
-				ctx.translate(point.x, point.y);
-				if (this.attribute('orient').valueOrDefault('auto') == 'auto') ctx.rotate(angle);
-				if (this.attribute('markerUnits').valueOrDefault('strokeWidth') == 'strokeWidth') ctx.scale(ctx.lineWidth, ctx.lineWidth);
-				ctx.save();
-							
-				// render me using a temporary svg element
-				var tempSvg = new svg.Element.svg();
-				tempSvg.attributes['viewBox'] = new svg.Property('viewBox', this.attribute('viewBox').value);
-				tempSvg.attributes['refX'] = new svg.Property('refX', this.attribute('refX').value);
-				tempSvg.attributes['refY'] = new svg.Property('refY', this.attribute('refY').value);
-				tempSvg.attributes['width'] = new svg.Property('width', this.attribute('markerWidth').value);
-				tempSvg.attributes['height'] = new svg.Property('height', this.attribute('markerHeight').value);
-				tempSvg.attributes['fill'] = new svg.Property('fill', this.attribute('fill').valueOrDefault('black'));
-				tempSvg.attributes['stroke'] = new svg.Property('stroke', this.attribute('stroke').valueOrDefault('none'));
-				tempSvg.children = this.children;
-				tempSvg.render(ctx);
-				
-				ctx.restore();
-				if (this.attribute('markerUnits').valueOrDefault('strokeWidth') == 'strokeWidth') ctx.scale(1/ctx.lineWidth, 1/ctx.lineWidth);
-				if (this.attribute('orient').valueOrDefault('auto') == 'auto') ctx.rotate(-angle);
-				ctx.translate(-point.x, -point.y);
-			}
-		}
-		svg.Element.marker.prototype = new svg.Element.ElementBase;
-		
-		// definitions element
-		svg.Element.defs = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);	
-			
-			this.render = function(ctx) {
-				// NOOP
-			}
-		}
-		svg.Element.defs.prototype = new svg.Element.ElementBase;
-		
-		// base for gradients
-		svg.Element.GradientBase = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-			
-			this.gradientUnits = this.attribute('gradientUnits').valueOrDefault('objectBoundingBox');
-			
-			this.stops = [];			
-			for (var i=0; i<this.children.length; i++) {
-				var child = this.children[i];
-				this.stops.push(child);
-			}	
-			
-			this.getGradient = function() {
-				// OVERRIDE ME!
-			}			
-
-			this.createGradient = function(ctx, element) {
-				var stopsContainer = this;
-				if (this.attribute('xlink:href').hasValue()) {
-					stopsContainer = this.attribute('xlink:href').Definition.getDefinition();
-				}
-			
-				var g = this.getGradient(ctx, element);
-				for (var i=0; i<stopsContainer.stops.length; i++) {
-					g.addColorStop(stopsContainer.stops[i].offset, stopsContainer.stops[i].color);
-				}
-				
-				if (this.attribute('gradientTransform').hasValue()) {
-					// render as transformed pattern on temporary canvas
-					var rootView = svg.ViewPort.viewPorts[0];
-					
-					var rect = new svg.Element.rect();
-					rect.attributes['x'] = new svg.Property('x', -svg.MAX_VIRTUAL_PIXELS/3.0);
-					rect.attributes['y'] = new svg.Property('y', -svg.MAX_VIRTUAL_PIXELS/3.0);
-					rect.attributes['width'] = new svg.Property('width', svg.MAX_VIRTUAL_PIXELS);
-					rect.attributes['height'] = new svg.Property('height', svg.MAX_VIRTUAL_PIXELS);
-					
-					var group = new svg.Element.g();
-					group.attributes['transform'] = new svg.Property('transform', this.attribute('gradientTransform').value);
-					group.children = [ rect ];
-					
-					var tempSvg = new svg.Element.svg();
-					tempSvg.attributes['x'] = new svg.Property('x', 0);
-					tempSvg.attributes['y'] = new svg.Property('y', 0);
-					tempSvg.attributes['width'] = new svg.Property('width', rootView.width);
-					tempSvg.attributes['height'] = new svg.Property('height', rootView.height);
-					tempSvg.children = [ group ];
-					
-					var c = document.createElement('canvas');
-					c.width = rootView.width;
-					c.height = rootView.height;
-					var tempCtx = c.getContext('2d');
-					tempCtx.fillStyle = g;
-					tempSvg.render(tempCtx);		
-					return tempCtx.createPattern(c, 'no-repeat');
-				}
-				
-				return g;				
-			}
-		}
-		svg.Element.GradientBase.prototype = new svg.Element.ElementBase;
-		
-		// linear gradient element
-		svg.Element.linearGradient = function(node) {
-			this.base = svg.Element.GradientBase;
-			this.base(node);
-			
-			this.getGradient = function(ctx, element) {
-				var bb = element.getBoundingBox();
-				
-				var x1 = (this.gradientUnits == 'objectBoundingBox' 
-					? bb.x() + bb.width() * this.attribute('x1').numValue() 
-					: this.attribute('x1').Length.toPixels('x'));
-				var y1 = (this.gradientUnits == 'objectBoundingBox' 
-					? bb.y() + bb.height() * this.attribute('y1').numValue()
-					: this.attribute('y1').Length.toPixels('y'));
-				var x2 = (this.gradientUnits == 'objectBoundingBox' 
-					? bb.x() + bb.width() * this.attribute('x2').numValue()
-					: this.attribute('x2').Length.toPixels('x'));
-				var y2 = (this.gradientUnits == 'objectBoundingBox' 
-					? bb.y() + bb.height() * this.attribute('y2').numValue()
-					: this.attribute('y2').Length.toPixels('y'));
-
-				return ctx.createLinearGradient(x1, y1, x2, y2);
-			}
-		}
-		svg.Element.linearGradient.prototype = new svg.Element.GradientBase;
-		
-		// radial gradient element
-		svg.Element.radialGradient = function(node) {
-			this.base = svg.Element.GradientBase;
-			this.base(node);
-			
-			this.getGradient = function(ctx, element) {
-				var bb = element.getBoundingBox();
-				
-				var cx = (this.gradientUnits == 'objectBoundingBox' 
-					? bb.x() + bb.width() * this.attribute('cx').numValue() 
-					: this.attribute('cx').Length.toPixels('x'));
-				var cy = (this.gradientUnits == 'objectBoundingBox' 
-					? bb.y() + bb.height() * this.attribute('cy').numValue() 
-					: this.attribute('cy').Length.toPixels('y'));
-				
-				var fx = cx;
-				var fy = cy;
-				if (this.attribute('fx').hasValue()) {
-					fx = (this.gradientUnits == 'objectBoundingBox' 
-					? bb.x() + bb.width() * this.attribute('fx').numValue() 
-					: this.attribute('fx').Length.toPixels('x'));
-				}
-				if (this.attribute('fy').hasValue()) {
-					fy = (this.gradientUnits == 'objectBoundingBox' 
-					? bb.y() + bb.height() * this.attribute('fy').numValue() 
-					: this.attribute('fy').Length.toPixels('y'));
-				}
-				
-				var r = (this.gradientUnits == 'objectBoundingBox' 
-					? (bb.width() + bb.height()) / 2.0 * this.attribute('r').numValue()
-					: this.attribute('r').Length.toPixels());
-				
-				return ctx.createRadialGradient(fx, fy, 0, cx, cy, r);
-			}
-		}
-		svg.Element.radialGradient.prototype = new svg.Element.GradientBase;
-		
-		// gradient stop element
-		svg.Element.stop = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-			
-			this.offset = this.attribute('offset').numValue();
-			
-			var stopColor = this.style('stop-color');
-			if (this.style('stop-opacity').hasValue()) stopColor = stopColor.Color.addOpacity(this.style('stop-opacity').value);
-			this.color = stopColor.value;
-		}
-		svg.Element.stop.prototype = new svg.Element.ElementBase;
-		
-		// animation base element
-		svg.Element.AnimateBase = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-			
-			svg.Animations.push(this);
-			
-			this.duration = 0.0;
-			this.begin = this.attribute('begin').Time.toMilliseconds();
-			this.maxDuration = this.begin + this.attribute('dur').Time.toMilliseconds();
-			
-			this.getProperty = function() {
-				var attributeType = this.attribute('attributeType').value;
-				var attributeName = this.attribute('attributeName').value;
-				
-				if (attributeType == 'CSS') {
-					return this.parent.style(attributeName, true);
-				}
-				return this.parent.attribute(attributeName, true);			
-			};
-			
-			this.initialValue = null;
-			this.removed = false;			
-
-			this.calcValue = function() {
-				// OVERRIDE ME!
-				return '';
-			}
-			
-			this.update = function(delta) {	
-				// set initial value
-				if (this.initialValue == null) {
-					this.initialValue = this.getProperty().value;
-				}
-			
-				// if we're past the end time
-				if (this.duration > this.maxDuration) {
-					// loop for indefinitely repeating animations
-					if (this.attribute('repeatCount').value == 'indefinite') {
-						this.duration = 0.0
-					}
-					else if (this.attribute('fill').valueOrDefault('remove') == 'remove' && !this.removed) {
-						this.removed = true;
-						this.getProperty().value = this.initialValue;
-						return true;
-					}
-					else {
-						return false; // no updates made
-					}
-				}			
-				this.duration = this.duration + delta;
-			
-				// if we're past the begin time
-				var updated = false;
-				if (this.begin < this.duration) {
-					var newValue = this.calcValue(); // tween
-					
-					if (this.attribute('type').hasValue()) {
-						// for transform, etc.
-						var type = this.attribute('type').value;
-						newValue = type + '(' + newValue + ')';
-					}
-					
-					this.getProperty().value = newValue;
-					updated = true;
-				}
-				
-				return updated;
-			}
-			
-			// fraction of duration we've covered
-			this.progress = function() {
-				return ((this.duration - this.begin) / (this.maxDuration - this.begin));
-			}			
-		}
-		svg.Element.AnimateBase.prototype = new svg.Element.ElementBase;
-		
-		// animate element
-		svg.Element.animate = function(node) {
-			this.base = svg.Element.AnimateBase;
-			this.base(node);
-			
-			this.calcValue = function() {
-				var from = this.attribute('from').numValue();
-				var to = this.attribute('to').numValue();
-				
-				// tween value linearly
-				return from + (to - from) * this.progress(); 
-			};
-		}
-		svg.Element.animate.prototype = new svg.Element.AnimateBase;
-			
-		// animate color element
-		svg.Element.animateColor = function(node) {
-			this.base = svg.Element.AnimateBase;
-			this.base(node);
-
-			this.calcValue = function() {
-				var from = new RGBColor(this.attribute('from').value);
-				var to = new RGBColor(this.attribute('to').value);
-				
-				if (from.ok && to.ok) {
-					// tween color linearly
-					var r = from.r + (to.r - from.r) * this.progress();
-					var g = from.g + (to.g - from.g) * this.progress();
-					var b = from.b + (to.b - from.b) * this.progress();
-					return 'rgb('+parseInt(r,10)+','+parseInt(g,10)+','+parseInt(b,10)+')';
-				}
-				return this.attribute('from').value;
-			};
-		}
-		svg.Element.animateColor.prototype = new svg.Element.AnimateBase;
-		
-		// animate transform element
-		svg.Element.animateTransform = function(node) {
-			this.base = svg.Element.animate;
-			this.base(node);
-		}
-		svg.Element.animateTransform.prototype = new svg.Element.animate;
-		
-		// font element
-		svg.Element.font = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-
-			this.horizAdvX = this.attribute('horiz-adv-x').numValue();			
-			
-			this.isRTL = false;
-			this.isArabic = false;
-			this.fontFace = null;
-			this.missingGlyph = null;
-			this.glyphs = [];			
-			for (var i=0; i<this.children.length; i++) {
-				var child = this.children[i];
-				if (child.type == 'font-face') {
-					this.fontFace = child;
-					if (child.style('font-family').hasValue()) {
-						svg.Definitions[child.style('font-family').value] = this;
-					}
-				}
-				else if (child.type == 'missing-glyph') this.missingGlyph = child;
-				else if (child.type == 'glyph') {
-					if (child.arabicForm != '') {
-						this.isRTL = true;
-						this.isArabic = true;
-						if (typeof(this.glyphs[child.unicode]) == 'undefined') this.glyphs[child.unicode] = [];
-						this.glyphs[child.unicode][child.arabicForm] = child;
-					}
-					else {
-						this.glyphs[child.unicode] = child;
-					}
-				}
-			}	
-		}
-		svg.Element.font.prototype = new svg.Element.ElementBase;
-		
-		// font-face element
-		svg.Element.fontface = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);	
-			
-			this.ascent = this.attribute('ascent').value;
-			this.descent = this.attribute('descent').value;
-			this.unitsPerEm = this.attribute('units-per-em').numValue();				
-		}
-		svg.Element.fontface.prototype = new svg.Element.ElementBase;
-		
-		// missing-glyph element
-		svg.Element.missingglyph = function(node) {
-			this.base = svg.Element.path;
-			this.base(node);	
-			
-			this.horizAdvX = 0;
-		}
-		svg.Element.missingglyph.prototype = new svg.Element.path;
-		
-		// glyph element
-		svg.Element.glyph = function(node) {
-			this.base = svg.Element.path;
-			this.base(node);	
-			
-			this.horizAdvX = this.attribute('horiz-adv-x').numValue();
-			this.unicode = this.attribute('unicode').value;
-			this.arabicForm = this.attribute('arabic-form').value;
-		}
-		svg.Element.glyph.prototype = new svg.Element.path;
-		
-		// text element
-		svg.Element.text = function(node) {
-			this.base = svg.Element.RenderedElementBase;
-			this.base(node);
-			
-			if (node != null) {
-				// add children
-				this.children = [];
-				for (var i=0; i<node.childNodes.length; i++) {
-					var childNode = node.childNodes[i];
-					if (childNode.nodeType == 1) { // capture tspan and tref nodes
-						this.addChild(childNode, true);
-					}
-					else if (childNode.nodeType == 3) { // capture text
-						this.addChild(new svg.Element.tspan(childNode), false);
-					}
-				}
-			}
-			
-			this.baseSetContext = this.setContext;
-			this.setContext = function(ctx) {
-				this.baseSetContext(ctx);
-				if (this.style('dominant-baseline').hasValue()) ctx.textBaseline = this.style('dominant-baseline').value;
-				if (this.style('alignment-baseline').hasValue()) ctx.textBaseline = this.style('alignment-baseline').value;
-			}
-			
-			this.renderChildren = function(ctx) {
-				var textAnchor = this.style('text-anchor').valueOrDefault('start');
-				var x = this.attribute('x').Length.toPixels('x');
-				var y = this.attribute('y').Length.toPixels('y');
-				for (var i=0; i<this.children.length; i++) {
-					var child = this.children[i];
-				
-					if (child.attribute('x').hasValue()) {
-						child.x = child.attribute('x').Length.toPixels('x');
-					}
-					else {
-						if (child.attribute('dx').hasValue()) x += child.attribute('dx').Length.toPixels('x');
-						child.x = x;
-					}
-					
-					var childLength = child.measureText(ctx);
-					if (textAnchor != 'start' && (i==0 || child.attribute('x').hasValue())) { // new group?
-						// loop through rest of children
-						var groupLength = childLength;
-						for (var j=i+1; j<this.children.length; j++) {
-							var childInGroup = this.children[j];
-							if (childInGroup.attribute('x').hasValue()) break; // new group
-							groupLength += childInGroup.measureText(ctx);
-						}
-						child.x -= (textAnchor == 'end' ? groupLength : groupLength / 2.0);
-					}
-					x = child.x + childLength;
-					
-					if (child.attribute('y').hasValue()) {
-						child.y = child.attribute('y').Length.toPixels('y');
-					}
-					else {
-						if (child.attribute('dy').hasValue()) y += child.attribute('dy').Length.toPixels('y');
-						child.y = y;
-					}	
-					y = child.y;
-					
-					child.render(ctx);
-				}
-			}
-		}
-		svg.Element.text.prototype = new svg.Element.RenderedElementBase;
-		
-		// text base
-		svg.Element.TextElementBase = function(node) {
-			this.base = svg.Element.RenderedElementBase;
-			this.base(node);
-			
-			this.getGlyph = function(font, text, i) {
-				var c = text[i];
-				var glyph = null;
-				if (font.isArabic) {
-					var arabicForm = 'isolated';
-					if ((i==0 || text[i-1]==' ') && i<text.length-2 && text[i+1]!=' ') arabicForm = 'terminal'; 
-					if (i>0 && text[i-1]!=' ' && i<text.length-2 && text[i+1]!=' ') arabicForm = 'medial';
-					if (i>0 && text[i-1]!=' ' && (i == text.length-1 || text[i+1]==' ')) arabicForm = 'initial';
-					if (typeof(font.glyphs[c]) != 'undefined') {
-						glyph = font.glyphs[c][arabicForm];
-						if (glyph == null && font.glyphs[c].type == 'glyph') glyph = font.glyphs[c];
-					}
-				}
-				else {
-					glyph = font.glyphs[c];
-				}
-				if (glyph == null) glyph = font.missingGlyph;
-				return glyph;
-			}
-			
-			this.renderChildren = function(ctx) {
-				var customFont = this.parent.style('font-family').Definition.getDefinition();
-				if (customFont != null) {
-					var fontSize = this.parent.style('font-size').numValueOrDefault(svg.Font.Parse(svg.ctx.font).fontSize);
-					var fontStyle = this.parent.style('font-style').valueOrDefault(svg.Font.Parse(svg.ctx.font).fontStyle);
-					var text = this.getText();
-					if (customFont.isRTL) text = text.split("").reverse().join("");
-					
-					var dx = svg.ToNumberArray(this.parent.attribute('dx').value);
-					for (var i=0; i<text.length; i++) {
-						var glyph = this.getGlyph(customFont, text, i);
-						var scale = fontSize / customFont.fontFace.unitsPerEm;
-						ctx.translate(this.x, this.y);
-						ctx.scale(scale, -scale);
-						var lw = ctx.lineWidth;
-						ctx.lineWidth = ctx.lineWidth * customFont.fontFace.unitsPerEm / fontSize;
-						if (fontStyle == 'italic') ctx.transform(1, 0, .4, 1, 0, 0);
-						glyph.render(ctx);
-						if (fontStyle == 'italic') ctx.transform(1, 0, -.4, 1, 0, 0);
-						ctx.lineWidth = lw;
-						ctx.scale(1/scale, -1/scale);
-						ctx.translate(-this.x, -this.y);	
-						
-						this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / customFont.fontFace.unitsPerEm;
-						if (typeof(dx[i]) != 'undefined' && !isNaN(dx[i])) {
-							this.x += dx[i];
-						}
-					}
-					return;
-				}
-			
-				if (ctx.strokeStyle != '') ctx.strokeText(svg.compressSpaces(this.getText()), this.x, this.y);
-				if (ctx.fillStyle != '') ctx.fillText(svg.compressSpaces(this.getText()), this.x, this.y);
-			}
-			
-			this.getText = function() {
-				// OVERRIDE ME
-			}
-			
-			this.measureText = function(ctx) {
-				var customFont = this.parent.style('font-family').Definition.getDefinition();
-				if (customFont != null) {
-					var fontSize = this.parent.style('font-size').numValueOrDefault(svg.Font.Parse(svg.ctx.font).fontSize);
-					var measure = 0;
-					var text = this.getText();
-					if (customFont.isRTL) text = text.split("").reverse().join("");
-					var dx = svg.ToNumberArray(this.parent.attribute('dx').value);
-					for (var i=0; i<text.length; i++) {
-						var glyph = this.getGlyph(customFont, text, i);
-						measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;
-						if (typeof(dx[i]) != 'undefined' && !isNaN(dx[i])) {
-							measure += dx[i];
-						}
-					}
-					return measure;
-				}
-			
-				var textToMeasure = svg.compressSpaces(this.getText());
-				if (!ctx.measureText) return textToMeasure.length * 10;
-				
-				ctx.save();
-				this.setContext(ctx);
-				var width = ctx.measureText(textToMeasure).width;
-				ctx.restore();
-				return width;
-			}
-		}
-		svg.Element.TextElementBase.prototype = new svg.Element.RenderedElementBase;
-		
-		// tspan 
-		svg.Element.tspan = function(node) {
-			this.base = svg.Element.TextElementBase;
-			this.base(node);
-			
-			this.text = node.nodeType == 3 ? node.nodeValue : // text
-						node.childNodes.length > 0 ? node.childNodes[0].nodeValue : // element
-						node.text;
-			this.getText = function() {
-				return this.text;
-			}
-		}
-		svg.Element.tspan.prototype = new svg.Element.TextElementBase;
-		
-		// tref
-		svg.Element.tref = function(node) {
-			this.base = svg.Element.TextElementBase;
-			this.base(node);
-			
-			this.getText = function() {
-				var element = this.attribute('xlink:href').Definition.getDefinition();
-				if (element != null) return element.children[0].getText();
-			}
-		}
-		svg.Element.tref.prototype = new svg.Element.TextElementBase;		
-		
-		// a element
-		svg.Element.a = function(node) {
-			this.base = svg.Element.TextElementBase;
-			this.base(node);
-			
-			this.hasText = true;
-			for (var i=0; i<node.childNodes.length; i++) {
-				if (node.childNodes[i].nodeType != 3) this.hasText = false;
-			}
-			
-			// this might contain text
-			this.text = this.hasText ? node.childNodes[0].nodeValue : '';
-			this.getText = function() {
-				return this.text;
-			}		
-
-			this.baseRenderChildren = this.renderChildren;
-			this.renderChildren = function(ctx) {
-				if (this.hasText) {
-					// render as text element
-					this.baseRenderChildren(ctx);
-					var fontSize = new svg.Property('fontSize', svg.Font.Parse(svg.ctx.font).fontSize);
-					svg.Mouse.checkBoundingBox(this, new svg.BoundingBox(this.x, this.y - fontSize.Length.toPixels('y'), this.x + this.measureText(ctx), this.y));					
-				}
-				else {
-					// render as temporary group
-					var g = new svg.Element.g();
-					g.children = this.children;
-					g.parent = this;
-					g.render(ctx);
-				}
-			}
-			
-			this.onclick = function() {
-				window.open(this.attribute('xlink:href').value);
-			}
-			
-			this.onmousemove = function() {
-				svg.ctx.canvas.style.cursor = 'pointer';
-			}
-		}
-		svg.Element.a.prototype = new svg.Element.TextElementBase;		
-		
-		// image element
-		svg.Element.image = function(node) {
-			this.base = svg.Element.RenderedElementBase;
-			this.base(node);
-			
-			svg.Images.push(this);
-			this.img = document.createElement('img');
-			this.loaded = false;
-			var that = this;
-			this.img.onload = function() { that.loaded = true; }
-			this.img.src = this.attribute('xlink:href').value;
-			
-			this.renderChildren = function(ctx) {
-				var x = this.attribute('x').Length.toPixels('x');
-				var y = this.attribute('y').Length.toPixels('y');
-				
-				var width = this.attribute('width').Length.toPixels('x');
-				var height = this.attribute('height').Length.toPixels('y');			
-				if (width == 0 || height == 0) return;
-			
-				ctx.save();
-				ctx.translate(x, y);
-				svg.AspectRatio(ctx,
-								this.attribute('preserveAspectRatio').value,
-								width,
-								this.img.width,
-								height,
-								this.img.height,
-								0,
-								0);	
-				ctx.drawImage(this.img, 0, 0);			
-				ctx.restore();
-			}
-		}
-		svg.Element.image.prototype = new svg.Element.RenderedElementBase;
-		
-		// group element
-		svg.Element.g = function(node) {
-			this.base = svg.Element.RenderedElementBase;
-			this.base(node);
-			
-			this.getBoundingBox = function() {
-				var bb = new svg.BoundingBox();
-				for (var i=0; i<this.children.length; i++) {
-					bb.addBoundingBox(this.children[i].getBoundingBox());
-				}
-				return bb;
-			};
-		}
-		svg.Element.g.prototype = new svg.Element.RenderedElementBase;
-
-		// symbol element
-		svg.Element.symbol = function(node) {
-			this.base = svg.Element.RenderedElementBase;
-			this.base(node);
-			
-			this.baseSetContext = this.setContext;
-			this.setContext = function(ctx) {		
-				this.baseSetContext(ctx);
-				
-				// viewbox
-				if (this.attribute('viewBox').hasValue()) {				
-					var viewBox = svg.ToNumberArray(this.attribute('viewBox').value);
-					var minX = viewBox[0];
-					var minY = viewBox[1];
-					width = viewBox[2];
-					height = viewBox[3];
-					
-					svg.AspectRatio(ctx,
-									this.attribute('preserveAspectRatio').value, 
-									this.attribute('width').Length.toPixels('x'),
-									width,
-									this.attribute('height').Length.toPixels('y'),
-									height,
-									minX,
-									minY);
-
-					svg.ViewPort.SetCurrent(viewBox[2], viewBox[3]);						
-				}
-			}			
-		}
-		svg.Element.symbol.prototype = new svg.Element.RenderedElementBase;		
-			
-		// style element
-		svg.Element.style = function(node) { 
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-			
-			// text, or spaces then CDATA
-			var css = node.childNodes[0].nodeValue + (node.childNodes.length > 1 ? node.childNodes[1].nodeValue : '');
-			css = css.replace(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm, ''); // remove comments
-			css = svg.compressSpaces(css); // replace whitespace
-			var cssDefs = css.split('}');
-			for (var i=0; i<cssDefs.length; i++) {
-				if (svg.trim(cssDefs[i]) != '') {
-					var cssDef = cssDefs[i].split('{');
-					var cssClasses = cssDef[0].split(',');
-					var cssProps = cssDef[1].split(';');
-					for (var j=0; j<cssClasses.length; j++) {
-						var cssClass = svg.trim(cssClasses[j]);
-						if (cssClass != '') {
-							var props = {};
-							for (var k=0; k<cssProps.length; k++) {
-								var prop = cssProps[k].indexOf(':');
-								var name = cssProps[k].substr(0, prop);
-								var value = cssProps[k].substr(prop + 1, cssProps[k].length - prop);
-								if (name != null && value != null) {
-									props[svg.trim(name)] = new svg.Property(svg.trim(name), svg.trim(value));
-								}
-							}
-							svg.Styles[cssClass] = props;
-							if (cssClass == '@font-face') {
-								var fontFamily = props['font-family'].value.replace(/"/g,'');
-								var srcs = props['src'].value.split(',');
-								for (var s=0; s<srcs.length; s++) {
-									if (srcs[s].indexOf('format("svg")') > 0) {
-										var urlStart = srcs[s].indexOf('url');
-										var urlEnd = srcs[s].indexOf(')', urlStart);
-										var url = srcs[s].substr(urlStart + 5, urlEnd - urlStart - 6);
-										var doc = svg.parseXml(svg.ajax(url));
-										var fonts = doc.getElementsByTagName('font');
-										for (var f=0; f<fonts.length; f++) {
-											var font = svg.CreateElement(fonts[f]);
-											svg.Definitions[fontFamily] = font;
-										}
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-		svg.Element.style.prototype = new svg.Element.ElementBase;
-		
-		// use element 
-		svg.Element.use = function(node) {
-			this.base = svg.Element.RenderedElementBase;
-			this.base(node);
-			
-			this.baseSetContext = this.setContext;
-			this.setContext = function(ctx) {
-				this.baseSetContext(ctx);
-				if (this.attribute('x').hasValue()) ctx.translate(this.attribute('x').Length.toPixels('x'), 0);
-				if (this.attribute('y').hasValue()) ctx.translate(0, this.attribute('y').Length.toPixels('y'));
-			}
-			
-			this.getDefinition = function() {
-				var element = this.attribute('xlink:href').Definition.getDefinition();
-				if (this.attribute('width').hasValue()) element.attribute('width', true).value = this.attribute('width').value;
-				if (this.attribute('height').hasValue()) element.attribute('height', true).value = this.attribute('height').value;
-				return element;
-			}
-			
-			this.path = function(ctx) {
-				var element = this.getDefinition();
-				if (element != null) element.path(ctx);
-			}
-			
-			this.renderChildren = function(ctx) {
-				var element = this.getDefinition();
-				if (element != null) element.render(ctx);
-			}
-		}
-		svg.Element.use.prototype = new svg.Element.RenderedElementBase;
-		
-		// mask element
-		svg.Element.mask = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-						
-			this.apply = function(ctx, element) {
-				// render as temp svg	
-				var x = this.attribute('x').Length.toPixels('x');
-				var y = this.attribute('y').Length.toPixels('y');
-				var width = this.attribute('width').Length.toPixels('x');
-				var height = this.attribute('height').Length.toPixels('y');
-				
-				// temporarily remove mask to avoid recursion
-				var mask = element.attribute('mask').value;
-				element.attribute('mask').value = '';
-				
-					var cMask = document.createElement('canvas');
-					cMask.width = x + width;
-					cMask.height = y + height;
-					var maskCtx = cMask.getContext('2d');
-					this.renderChildren(maskCtx);
-				
-					var c = document.createElement('canvas');
-					c.width = x + width;
-					c.height = y + height;
-					var tempCtx = c.getContext('2d');
-					element.render(tempCtx);
-					tempCtx.globalCompositeOperation = 'destination-in';
-					tempCtx.fillStyle = maskCtx.createPattern(cMask, 'no-repeat');
-					tempCtx.fillRect(0, 0, x + width, y + height);
-					
-					ctx.fillStyle = tempCtx.createPattern(c, 'no-repeat');
-					ctx.fillRect(0, 0, x + width, y + height);
-					
-				// reassign mask
-				element.attribute('mask').value = mask;	
-			}
-			
-			this.render = function(ctx) {
-				// NO RENDER
-			}
-		}
-		svg.Element.mask.prototype = new svg.Element.ElementBase;
-		
-		// clip element
-		svg.Element.clipPath = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-			
-			this.apply = function(ctx) {
-				for (var i=0; i<this.children.length; i++) {
-					if (this.children[i].path) {
-						this.children[i].path(ctx);
-						ctx.clip();
-					}
-				}
-			}
-			
-			this.render = function(ctx) {
-				// NO RENDER
-			}
-		}
-		svg.Element.clipPath.prototype = new svg.Element.ElementBase;
-
-		// filters
-		svg.Element.filter = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);
-						
-			this.apply = function(ctx, element) {
-				// render as temp svg	
-				var bb = element.getBoundingBox();
-				var x = this.attribute('x').Length.toPixels('x');
-				var y = this.attribute('y').Length.toPixels('y');
-				if (x == 0 || y == 0) {
-					x = bb.x1;
-					y = bb.y1;
-				}
-				var width = this.attribute('width').Length.toPixels('x');
-				var height = this.attribute('height').Length.toPixels('y');
-				if (width == 0 || height == 0) {
-					width = bb.width();
-					height = bb.height();
-				}
-				
-				// temporarily remove filter to avoid recursion
-				var filter = element.style('filter').value;
-				element.style('filter').value = '';
-				
-				// max filter distance
-				var extraPercent = .20;
-				var px = extraPercent * width;
-				var py = extraPercent * height;
-				
-				var c = document.createElement('canvas');
-				c.width = width + 2*px;
-				c.height = height + 2*py;
-				var tempCtx = c.getContext('2d');
-				tempCtx.translate(-x + px, -y + py);
-				element.render(tempCtx);
-			
-				// apply filters
-				for (var i=0; i<this.children.length; i++) {
-					this.children[i].apply(tempCtx, 0, 0, width + 2*px, height + 2*py);
-				}
-				
-				// render on me
-				ctx.drawImage(c, 0, 0, width + 2*px, height + 2*py, x - px, y - py, width + 2*px, height + 2*py);
-				
-				// reassign filter
-				element.style('filter', true).value = filter;	
-			}
-			
-			this.render = function(ctx) {
-				// NO RENDER
-			}		
-		}
-		svg.Element.filter.prototype = new svg.Element.ElementBase;
-		
-		svg.Element.feGaussianBlur = function(node) {
-			this.base = svg.Element.ElementBase;
-			this.base(node);	
-			
-			function make_fgauss(sigma) {
-				sigma = Math.max(sigma, 0.01);			      
-				var len = Math.ceil(sigma * 4.0) + 1;                     
-				mask = [];                               
-				for (var i = 0; i < len; i++) {                             
-					mask[i] = Math.exp(-0.5 * (i / sigma) * (i / sigma));                                           
-				}                                                           
-				return mask; 
-			}
-			
-			function normalize(mask) {
-				var sum = 0;
-				for (var i = 1; i < mask.length; i++) {
-					sum += Math.abs(mask[i]);
-				}
-				sum = 2 * sum + Math.abs(mask[0]);
-				for (var i = 0; i < mask.length; i++) {
-					mask[i] /= sum;
-				}
-				return mask;
-			}
-			
-			function convolve_even(src, dst, mask, width, height) {
-			  for (var y = 0; y < height; y++) {
-				for (var x = 0; x < width; x++) {
-				  var a = imGet(src, x, y, width, height, 3)/255;
-				  for (var rgba = 0; rgba < 4; rgba++) {					  
-					  var sum = mask[0] * (a==0?255:imGet(src, x, y, width, height, rgba)) * (a==0||rgba==3?1:a);
-					  for (var i = 1; i < mask.length; i++) {
-						var a1 = imGet(src, Math.max(x-i,0), y, width, height, 3)/255;
-					    var a2 = imGet(src, Math.min(x+i, width-1), y, width, height, 3)/255;
-						sum += mask[i] * 
-						  ((a1==0?255:imGet(src, Math.max(x-i,0), y, width, height, rgba)) * (a1==0||rgba==3?1:a1) + 
-						   (a2==0?255:imGet(src, Math.min(x+i, width-1), y, width, height, rgba)) * (a2==0||rgba==3?1:a2));
-					  }
-					  imSet(dst, y, x, height, width, rgba, sum);
-				  }			  
-				}
-			  }
-			}		
-
-			function imGet(img, x, y, width, height, rgba) {
-				return img[y*width*4 + x*4 + rgba];
-			}
-			
-			function imSet(img, x, y, width, height, rgba, val) {
-				img[y*width*4 + x*4 + rgba] = val;
-			}
-						
-			function blur(ctx, width, height, sigma)
-			{
-				var srcData = ctx.getImageData(0, 0, width, height);
-				var mask = make_fgauss(sigma);
-				mask = normalize(mask);
-				tmp = [];
-				convolve_even(srcData.data, tmp, mask, width, height);
-				convolve_even(tmp, srcData.data, mask, height, width);
-				ctx.clearRect(0, 0, width, height);
-				ctx.putImageData(srcData, 0, 0);
-			}			
-		
-			this.apply = function(ctx, x, y, width, height) {
-				// assuming x==0 && y==0 for now
-				blur(ctx, width, height, this.attribute('stdDeviation').numValue());
-			}
-		}
-		svg.Element.filter.prototype = new svg.Element.feGaussianBlur;
-		
-		// title element, do nothing
-		svg.Element.title = function(node) {
-		}
-		svg.Element.title.prototype = new svg.Element.ElementBase;
-
-		// desc element, do nothing
-		svg.Element.desc = function(node) {
-		}
-		svg.Element.desc.prototype = new svg.Element.ElementBase;		
-		
-		svg.Element.MISSING = function(node) {
-			console.log('ERROR: Element \'' + node.nodeName + '\' not yet implemented.');
-		}
-		svg.Element.MISSING.prototype = new svg.Element.ElementBase;
-		
-		// element factory
-		svg.CreateElement = function(node) {	
-			var className = node.nodeName.replace(/^[^:]+:/,''); // remove namespace
-			className = className.replace(/\-/g,''); // remove dashes
-			var e = null;
-			if (typeof(svg.Element[className]) != 'undefined') {
-				e = new svg.Element[className](node);
-			}
-			else {
-				e = new svg.Element.MISSING(node);
-			}
-
-			e.type = node.nodeName;
-			return e;
-		}
-				
-		// load from url
-		svg.load = function(ctx, url) {
-			svg.loadXml(ctx, svg.ajax(url));
-		}
-		
-		// load from xml
-		svg.loadXml = function(ctx, xml) {
-			svg.loadXmlDoc(ctx, svg.parseXml(xml));
-		}
-		
-		svg.loadXmlDoc = function(ctx, dom) {
-			svg.init(ctx);
-			
-			var mapXY = function(p) {
-				var e = ctx.canvas;
-				while (e) {
-					p.x -= e.offsetLeft;
-					p.y -= e.offsetTop;
-					e = e.offsetParent;
-				}
-				if (window.scrollX) p.x += window.scrollX;
-				if (window.scrollY) p.y += window.scrollY;
-				return p;
-			}
-			
-			// bind mouse
-			if (svg.opts['ignoreMouse'] != true) {
-				ctx.canvas.onclick = function(e) {
-					var p = mapXY(new svg.Point(e != null ? e.clientX : event.clientX, e != null ? e.clientY : event.clientY));
-					svg.Mouse.onclick(p.x, p.y);
-				};
-				ctx.canvas.onmousemove = function(e) {
-					var p = mapXY(new svg.Point(e != null ? e.clientX : event.clientX, e != null ? e.clientY : event.clientY));
-					svg.Mouse.onmousemove(p.x, p.y);
-				};
-			}
-		
-			var e = svg.CreateElement(dom.documentElement);
-			e.root = true;
-					
-			// render loop
-			var isFirstRender = true;
-			var draw = function() {
-				svg.ViewPort.Clear();
-				if (ctx.canvas.parentNode) svg.ViewPort.SetCurrent(ctx.canvas.parentNode.clientWidth, ctx.canvas.parentNode.clientHeight);
-			
-				if (svg.opts['ignoreDimensions'] != true) {
-					// set canvas size
-					if (e.style('width').hasValue()) {
-						ctx.canvas.width = e.style('width').Length.toPixels('x');
-						ctx.canvas.style.width = ctx.canvas.width + 'px';
-					}
-					if (e.style('height').hasValue()) {
-						ctx.canvas.height = e.style('height').Length.toPixels('y');
-						ctx.canvas.style.height = ctx.canvas.height + 'px';
-					}
-				}
-				var cWidth = ctx.canvas.clientWidth || ctx.canvas.width;
-				var cHeight = ctx.canvas.clientHeight || ctx.canvas.height;
-				svg.ViewPort.SetCurrent(cWidth, cHeight);		
-				
-				if (svg.opts != null && svg.opts['offsetX'] != null) e.attribute('x', true).value = svg.opts['offsetX'];
-				if (svg.opts != null && svg.opts['offsetY'] != null) e.attribute('y', true).value = svg.opts['offsetY'];
-				if (svg.opts != null && svg.opts['scaleWidth'] != null && svg.opts['scaleHeight'] != null) {
-					var xRatio = 1, yRatio = 1;
-					if (e.attribute('width').hasValue()) xRatio = e.attribute('width').Length.toPixels('x') / svg.opts['scaleWidth'];
-					if (e.attribute('height').hasValue()) yRatio = e.attribute('height').Length.toPixels('y') / svg.opts['scaleHeight'];
-				
-					e.attribute('width', true).value = svg.opts['scaleWidth'];
-					e.attribute('height', true).value = svg.opts['scaleHeight'];			
-					e.attribute('viewBox', true).value = '0 0 ' + (cWidth * xRatio) + ' ' + (cHeight * yRatio);
-					e.attribute('preserveAspectRatio', true).value = 'none';
-				}
-			
-				// clear and render
-				if (svg.opts['ignoreClear'] != true) {
-					ctx.clearRect(0, 0, cWidth, cHeight);
-				}
-				e.render(ctx);
-				if (isFirstRender) {
-					isFirstRender = false;
-					if (svg.opts != null && typeof(svg.opts['renderCallback']) == 'function') svg.opts['renderCallback']();
-				}			
-			}
-			
-			var waitingForImages = true;
-			if (svg.ImagesLoaded()) {
-				waitingForImages = false;
-				draw();
-			}
-			svg.intervalID = setInterval(function() { 
-				var needUpdate = false;
-				
-				if (waitingForImages && svg.ImagesLoaded()) {
-					waitingForImages = false;
-					needUpdate = true;
-				}
-			
-				// need update from mouse events?
-				if (svg.opts['ignoreMouse'] != true) {
-					needUpdate = needUpdate | svg.Mouse.hasEvents();
-				}
-			
-				// need update from animations?
-				if (svg.opts['ignoreAnimation'] != true) {
-					for (var i=0; i<svg.Animations.length; i++) {
-						needUpdate = needUpdate | svg.Animations[i].update(1000 / svg.FRAMERATE);
-					}
-				}
-				
-				// need update from redraw?
-				if (svg.opts != null && typeof(svg.opts['forceRedraw']) == 'function') {
-					if (svg.opts['forceRedraw']() == true) needUpdate = true;
-				}
-				
-				// render if needed
-				if (needUpdate) {
-					draw();				
-					svg.Mouse.runEvents(); // run and clear our events
-				}
-			}, 1000 / svg.FRAMERATE);
-		}
-		
-		svg.stop = function() {
-			if (svg.intervalID) {
-				clearInterval(svg.intervalID);
-			}
-		}
-		
-		svg.Mouse = new (function() {
-			this.events = [];
-			this.hasEvents = function() { return this.events.length != 0; }
-		
-			this.onclick = function(x, y) {
-				this.events.push({ type: 'onclick', x: x, y: y, 
-					run: function(e) { if (e.onclick) e.onclick(); }
-				});
-			}
-			
-			this.onmousemove = function(x, y) {
-				this.events.push({ type: 'onmousemove', x: x, y: y,
-					run: function(e) { if (e.onmousemove) e.onmousemove(); }
-				});
-			}			
-			
-			this.eventElements = [];
-			
-			this.checkPath = function(element, ctx) {
-				for (var i=0; i<this.events.length; i++) {
-					var e = this.events[i];
-					if (ctx.isPointInPath && ctx.isPointInPath(e.x, e.y)) this.eventElements[i] = element;
-				}
-			}
-			
-			this.checkBoundingBox = function(element, bb) {
-				for (var i=0; i<this.events.length; i++) {
-					var e = this.events[i];
-					if (bb.isPointInBox(e.x, e.y)) this.eventElements[i] = element;
-				}			
-			}
-			
-			this.runEvents = function() {
-				svg.ctx.canvas.style.cursor = '';
-				
-				for (var i=0; i<this.events.length; i++) {
-					var e = this.events[i];
-					var element = this.eventElements[i];
-					while (element) {
-						e.run(element);
-						element = element.parent;
-					}
-				}		
-			
-				// done running, clear
-				this.events = []; 
-				this.eventElements = [];
-			}
-		});
-		
-		return svg;
-	}
-})();
-
-if (CanvasRenderingContext2D) {
-	CanvasRenderingContext2D.prototype.drawSvg = function(s, dx, dy, dw, dh) {
-		canvg(this.canvas, s, { 
-			ignoreMouse: true, 
-			ignoreAnimation: true, 
-			ignoreDimensions: true, 
-			ignoreClear: true, 
-			offsetX: dx, 
-			offsetY: dy, 
-			scaleWidth: dw, 
-			scaleHeight: dh
-		});
-	}
-}/**
- * @license Highcharts JS v3.0.6 (2013-10-04)
- * CanVGRenderer Extension module
- *
- * (c) 2011-2012 Torstein H酶nsi, Erik Olsson
- *
- * License: www.highcharts.com/license
- */
-
-// JSLint options:
-/*global Highcharts */
-
-(function (Highcharts) { // encapsulate
-	var UNDEFINED,
-		DIV = 'div',
-		ABSOLUTE = 'absolute',
-		RELATIVE = 'relative',
-		HIDDEN = 'hidden',
-		VISIBLE = 'visible',
-		PX = 'px',
-		css = Highcharts.css,
-		CanVGRenderer = Highcharts.CanVGRenderer,
-		SVGRenderer = Highcharts.SVGRenderer,
-		extend = Highcharts.extend,
-		merge = Highcharts.merge,
-		addEvent = Highcharts.addEvent,
-		createElement = Highcharts.createElement,
-		discardElement = Highcharts.discardElement;
-
-	// Extend CanVG renderer on demand, inherit from SVGRenderer
-	extend(CanVGRenderer.prototype, SVGRenderer.prototype);
-
-	// Add additional functionality:
-	extend(CanVGRenderer.prototype, {
-		create: function (chart, container, chartWidth, chartHeight) {
-			this.setContainer(container, chartWidth, chartHeight);
-			this.configure(chart);
-		},
-		setContainer: function (container, chartWidth, chartHeight) {
-			var containerStyle = container.style,
-				containerParent = container.parentNode,
-				containerLeft = containerStyle.left,
-				containerTop = containerStyle.top,
-				containerOffsetWidth = container.offsetWidth,
-				containerOffsetHeight = container.offsetHeight,
-				canvas,
-				initialHiddenStyle = { visibility: HIDDEN, position: ABSOLUTE };
-
-			this.init.apply(this, [container, chartWidth, chartHeight]);
-
-			// add the canvas above it
-			canvas = createElement('canvas', {
-				width: containerOffsetWidth,
-				height: containerOffsetHeight
-			}, {
-				position: RELATIVE,
-				left: containerLeft,
-				top: containerTop
-			}, container);
-			this.canvas = canvas;
-
-			// Create the tooltip line and div, they are placed as siblings to
-			// the container (and as direct childs to the div specified in the html page)
-			this.ttLine = createElement(DIV, null, initialHiddenStyle, containerParent);
-			this.ttDiv = createElement(DIV, null, initialHiddenStyle, containerParent);
-			this.ttTimer = UNDEFINED;
-
-			// Move away the svg node to a new div inside the container's parent so we can hide it.
-			var hiddenSvg = createElement(DIV, {
-				width: containerOffsetWidth,
-				height: containerOffsetHeight
-			}, {
-				visibility: HIDDEN,
-				left: containerLeft,
-				top: containerTop
-			}, containerParent);
-			this.hiddenSvg = hiddenSvg;
-			hiddenSvg.appendChild(this.box);
-		},
-
-		/**
-		 * Configures the renderer with the chart. Attach a listener to the event tooltipRefresh.
-		 **/
-		configure: function (chart) {
-			var renderer = this,
-				options = chart.options.tooltip,
-				borderWidth = options.borderWidth,
-				tooltipDiv = renderer.ttDiv,
-				tooltipDivStyle = options.style,
-				tooltipLine = renderer.ttLine,
-				padding = parseInt(tooltipDivStyle.padding, 10);
-
-			// Add border styling from options to the style
-			tooltipDivStyle = merge(tooltipDivStyle, {
-				padding: padding + PX,
-				'background-color': options.backgroundColor,
-				'border-style': 'solid',
-				'border-width': borderWidth + PX,
-				'border-radius': options.borderRadius + PX
-			});
-
-			// Optionally add shadow
-			if (options.shadow) {
-				tooltipDivStyle = merge(tooltipDivStyle, {
-					'box-shadow': '1px 1px 3px gray', // w3c
-					'-webkit-box-shadow': '1px 1px 3px gray' // webkit
-				});
-			}
-			css(tooltipDiv, tooltipDivStyle);
-
-			// Set simple style on the line
-			css(tooltipLine, {
-				'border-left': '1px solid darkgray'
-			});
-
-			// This event is triggered when a new tooltip should be shown
-			addEvent(chart, 'tooltipRefresh', function (args) {
-				var chartContainer = chart.container,
-					offsetLeft = chartContainer.offsetLeft,
-					offsetTop = chartContainer.offsetTop,
-					position;
-
-				// Set the content of the tooltip
-				tooltipDiv.innerHTML = args.text;
-
-				// Compute the best position for the tooltip based on the divs size and container size.
-				position = chart.tooltip.getPosition(tooltipDiv.offsetWidth, tooltipDiv.offsetHeight, {plotX: args.x, plotY: args.y});
-
-				css(tooltipDiv, {
-					visibility: VISIBLE,
-					left: position.x + PX,
-					top: position.y + PX,
-					'border-color': args.borderColor
-				});
-
-				// Position the tooltip line
-				css(tooltipLine, {
-					visibility: VISIBLE,
-					left: offsetLeft + args.x + PX,
-					top: offsetTop + chart.plotTop + PX,
-					height: chart.plotHeight  + PX
-				});
-
-				// This timeout hides the tooltip after 3 seconds
-				// First clear any existing timer
-				if (renderer.ttTimer !== UNDEFINED) {
-					clearTimeout(renderer.ttTimer);
-				}
-
-				// Start a new timer that hides tooltip and line
-				renderer.ttTimer = setTimeout(function () {
-					css(tooltipDiv, { visibility: HIDDEN });
-					css(tooltipLine, { visibility: HIDDEN });
-				}, 3000);
-			});
-		},
-
-		/**
-		 * Extend SVGRenderer.destroy to also destroy the elements added by CanVGRenderer.
-		 */
-		destroy: function () {
-			var renderer = this;
-
-			// Remove the canvas
-			discardElement(renderer.canvas);
-
-			// Kill the timer
-			if (renderer.ttTimer !== UNDEFINED) {
-				clearTimeout(renderer.ttTimer);
-			}
-
-			// Remove the divs for tooltip and line
-			discardElement(renderer.ttLine);
-			discardElement(renderer.ttDiv);
-			discardElement(renderer.hiddenSvg);
-
-			// Continue with base class
-			return SVGRenderer.prototype.destroy.apply(renderer);
-		},
-
-		/**
-		 * Take a color and return it if it's a string, do not make it a gradient even if it is a
-		 * gradient. Currently canvg cannot render gradients (turns out black),
-		 * see: http://code.google.com/p/canvg/issues/detail?id=104
-		 *
-		 * @param {Object} color The color or config object
-		 */
-		color: function (color, elem, prop) {
-			if (color && color.linearGradient) {
-				// Pick the end color and forward to base implementation
-				color = color.stops[color.stops.length - 1][1];
-			}
-			return SVGRenderer.prototype.color.call(this, color, elem, prop);
-		},
-
-		/**
-		 * Draws the SVG on the canvas or adds a draw invokation to the deferred list.
-		 */
-		draw: function () {
-			var renderer = this;
-			window.canvg(renderer.canvas, renderer.hiddenSvg.innerHTML);
-		}
-	});
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/modules/data.js b/server/public/ueditor/third-party/highcharts/modules/data.js
deleted file mode 100644
index 4c00248..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/data.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- Data plugin for Highcharts
-
- (c) 2012-2013 Torstein H酶nsi
- Last revision 2013-06-07
-
- License: www.highcharts.com/license
-*/
-(function(h){var k=h.each,m=function(b,a){this.init(b,a)};h.extend(m.prototype,{init:function(b,a){this.options=b;this.chartOptions=a;this.columns=b.columns||this.rowsToColumns(b.rows)||[];this.columns.length?this.dataFound():(this.parseCSV(),this.parseTable(),this.parseGoogleSpreadsheet())},getColumnDistribution:function(){var b=this.chartOptions,a=b&&b.chart&&b.chart.type,c=[];k(b&&b.series||[],function(b){c.push((h.seriesTypes[b.type||a||"line"].prototype.pointArrayMap||[0]).length)});this.valueCount=
-{global:(h.seriesTypes[a||"line"].prototype.pointArrayMap||[0]).length,individual:c}},dataFound:function(){this.parseTypes();this.findHeaderRow();this.parsed();this.complete()},parseCSV:function(){var b=this,a=this.options,c=a.csv,d=this.columns,f=a.startRow||0,i=a.endRow||Number.MAX_VALUE,j=a.startColumn||0,e=a.endColumn||Number.MAX_VALUE,g=0;c&&(c=c.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split(a.lineDelimiter||"\n"),k(c,function(c,h){var n=b.trim(c),p=n.indexOf("#")===0;h>=f&&h<=i&&!p&&n!==""&&
-(n=c.split(a.itemDelimiter||","),k(n,function(b,a){a>=j&&a<=e&&(d[a-j]||(d[a-j]=[]),d[a-j][g]=b)}),g+=1)}),this.dataFound())},parseTable:function(){var b=this.options,a=b.table,c=this.columns,d=b.startRow||0,f=b.endRow||Number.MAX_VALUE,i=b.startColumn||0,j=b.endColumn||Number.MAX_VALUE,e;a&&(typeof a==="string"&&(a=document.getElementById(a)),k(a.getElementsByTagName("tr"),function(a,b){e=0;b>=d&&b<=f&&k(a.childNodes,function(a){if((a.tagName==="TD"||a.tagName==="TH")&&e>=i&&e<=j)c[e]||(c[e]=[]),
-c[e][b-d]=a.innerHTML,e+=1})}),this.dataFound())},parseGoogleSpreadsheet:function(){var b=this,a=this.options,c=a.googleSpreadsheetKey,d=this.columns,f=a.startRow||0,i=a.endRow||Number.MAX_VALUE,j=a.startColumn||0,e=a.endColumn||Number.MAX_VALUE,g,h;c&&jQuery.getJSON("https://spreadsheets.google.com/feeds/cells/"+c+"/"+(a.googleSpreadsheetWorksheet||"od6")+"/public/values?alt=json-in-script&callback=?",function(a){var a=a.feed.entry,c,k=a.length,m=0,o=0,l;for(l=0;l<k;l++)c=a[l],m=Math.max(m,c.gs$cell.col),
-o=Math.max(o,c.gs$cell.row);for(l=0;l<m;l++)if(l>=j&&l<=e)d[l-j]=[],d[l-j].length=Math.min(o,i-f);for(l=0;l<k;l++)if(c=a[l],g=c.gs$cell.row-1,h=c.gs$cell.col-1,h>=j&&h<=e&&g>=f&&g<=i)d[h-j][g-f]=c.content.$t;b.dataFound()})},findHeaderRow:function(){k(this.columns,function(){});this.headerRow=0},trim:function(b){return typeof b==="string"?b.replace(/^\s+|\s+$/g,""):b},parseTypes:function(){for(var b=this.columns,a=b.length,c,d,f,i;a--;)for(c=b[a].length;c--;)d=b[a][c],f=parseFloat(d),i=this.trim(d),
-i==f?(b[a][c]=f,f>31536E6?b[a].isDatetime=!0:b[a].isNumeric=!0):(d=this.parseDate(d),a===0&&typeof d==="number"&&!isNaN(d)?(b[a][c]=d,b[a].isDatetime=!0):b[a][c]=i===""?null:i)},dateFormats:{"YYYY-mm-dd":{regex:"^([0-9]{4})-([0-9]{2})-([0-9]{2})$",parser:function(b){return Date.UTC(+b[1],b[2]-1,+b[3])}}},parseDate:function(b){var a=this.options.parseDate,c,d,f;a&&(c=a(b));if(typeof b==="string")for(d in this.dateFormats)a=this.dateFormats[d],(f=b.match(a.regex))&&(c=a.parser(f));return c},rowsToColumns:function(b){var a,
-c,d,f,i;if(b){i=[];c=b.length;for(a=0;a<c;a++){f=b[a].length;for(d=0;d<f;d++)i[d]||(i[d]=[]),i[d][a]=b[a][d]}}return i},parsed:function(){this.options.parsed&&this.options.parsed.call(this,this.columns)},complete:function(){var b=this.columns,a,c,d=this.options,f,i,j,e,g,k;if(d.complete){this.getColumnDistribution();b.length>1&&(a=b.shift(),this.headerRow===0&&a.shift(),a.isDatetime?c="datetime":a.isNumeric||(c="category"));for(e=0;e<b.length;e++)if(this.headerRow===0)b[e].name=b[e].shift();i=[];
-for(e=0,k=0;e<b.length;k++){f=h.pick(this.valueCount.individual[k],this.valueCount.global);j=[];for(g=0;g<b[e].length;g++)j[g]=[a[g],b[e][g]!==void 0?b[e][g]:null],f>1&&j[g].push(b[e+1][g]!==void 0?b[e+1][g]:null),f>2&&j[g].push(b[e+2][g]!==void 0?b[e+2][g]:null),f>3&&j[g].push(b[e+3][g]!==void 0?b[e+3][g]:null),f>4&&j[g].push(b[e+4][g]!==void 0?b[e+4][g]:null);i[k]={name:b[e].name,data:j};e+=f}d.complete({xAxis:{type:c},series:i})}}});h.Data=m;h.data=function(b,a){return new m(b,a)};h.wrap(h.Chart.prototype,
-"init",function(b,a,c){var d=this;a&&a.data?h.data(h.extend(a.data,{complete:function(f){a.series&&k(a.series,function(b,c){a.series[c]=h.merge(b,f.series[c])});a=h.merge(f,a);b.call(d,a,c)}}),a):b.call(d,a,c)})})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/modules/data.src.js b/server/public/ueditor/third-party/highcharts/modules/data.src.js
deleted file mode 100644
index 4bc71a4..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/data.src.js
+++ /dev/null
@@ -1,582 +0,0 @@
-/**
- * @license Data plugin for Highcharts
- *
- * (c) 2012-2013 Torstein H酶nsi
- * Last revision 2013-06-07
- *
- * License: www.highcharts.com/license
- */
-
-/*
- * The Highcharts Data plugin is a utility to ease parsing of input sources like
- * CSV, HTML tables or grid views into basic configuration options for use 
- * directly in the Highcharts constructor.
- *
- * Demo: http://jsfiddle.net/highcharts/SnLFj/
- *
- * --- OPTIONS ---
- *
- * - columns : Array<Array<Mixed>>
- * A two-dimensional array representing the input data on tabular form. This input can
- * be used when the data is already parsed, for example from a grid view component.
- * Each cell can be a string or number. If not switchRowsAndColumns is set, the columns
- * are interpreted as series. See also the rows option.
- *
- * - complete : Function(chartOptions)
- * The callback that is evaluated when the data is finished loading, optionally from an 
- * external source, and parsed. The first argument passed is a finished chart options
- * object, containing series and an xAxis with categories if applicable. Thise options
- * can be extended with additional options and passed directly to the chart constructor.
- *
- * - csv : String
- * A comma delimited string to be parsed. Related options are startRow, endRow, startColumn
- * and endColumn to delimit what part of the table is used. The lineDelimiter and 
- * itemDelimiter options define the CSV delimiter formats.
- * 
- * - endColumn : Integer
- * In tabular input data, the first row (indexed by 0) to use. Defaults to the last 
- * column containing data.
- *
- * - endRow : Integer
- * In tabular input data, the last row (indexed by 0) to use. Defaults to the last row
- * containing data.
- *
- * - googleSpreadsheetKey : String 
- * A Google Spreadsheet key. See https://developers.google.com/gdata/samples/spreadsheet_sample
- * for general information on GS.
- *
- * - googleSpreadsheetWorksheet : String 
- * The Google Spreadsheet worksheet. The available id's can be read from 
- * https://spreadsheets.google.com/feeds/worksheets/{key}/public/basic
- *
- * - itemDelimiter : String
- * Item or cell delimiter for parsing CSV. Defaults to ",".
- *
- * - lineDelimiter : String
- * Line delimiter for parsing CSV. Defaults to "\n".
- *
- * - parsed : Function
- * A callback function to access the parsed columns, the two-dimentional input data
- * array directly, before they are interpreted into series data and categories.
- *
- * - parseDate : Function
- * A callback function to parse string representations of dates into JavaScript timestamps.
- * Return an integer on success.
- *
- * - rows : Array<Array<Mixed>>
- * The same as the columns input option, but defining rows intead of columns.
- *
- * - startColumn : Integer
- * In tabular input data, the first column (indexed by 0) to use. 
- *
- * - startRow : Integer
- * In tabular input data, the first row (indexed by 0) to use.
- *
- * - table : String|HTMLElement
- * A HTML table or the id of such to be parsed as input data. Related options ara startRow,
- * endRow, startColumn and endColumn to delimit what part of the table is used.
- */
-
-// JSLint options:
-/*global jQuery */
-
-(function (Highcharts) {	
-	
-	// Utilities
-	var each = Highcharts.each;
-	
-	
-	// The Data constructor
-	var Data = function (dataOptions, chartOptions) {
-		this.init(dataOptions, chartOptions);
-	};
-	
-	// Set the prototype properties
-	Highcharts.extend(Data.prototype, {
-		
-	/**
-	 * Initialize the Data object with the given options
-	 */
-	init: function (options, chartOptions) {
-		this.options = options;
-		this.chartOptions = chartOptions;
-		this.columns = options.columns || this.rowsToColumns(options.rows) || [];
-
-		// No need to parse or interpret anything
-		if (this.columns.length) {
-			this.dataFound();
-
-		// Parse and interpret
-		} else {
-
-			// Parse a CSV string if options.csv is given
-			this.parseCSV();
-			
-			// Parse a HTML table if options.table is given
-			this.parseTable();
-
-			// Parse a Google Spreadsheet 
-			this.parseGoogleSpreadsheet();	
-		}
-
-	},
-
-	/**
-	 * Get the column distribution. For example, a line series takes a single column for 
-	 * Y values. A range series takes two columns for low and high values respectively,
-	 * and an OHLC series takes four columns.
-	 */
-	getColumnDistribution: function () {
-		var chartOptions = this.chartOptions,
-			getValueCount = function (type) {
-				return (Highcharts.seriesTypes[type || 'line'].prototype.pointArrayMap || [0]).length;
-			},
-			globalType = chartOptions && chartOptions.chart && chartOptions.chart.type,
-			individualCounts = [];
-
-		each((chartOptions && chartOptions.series) || [], function (series) {
-			individualCounts.push(getValueCount(series.type || globalType));
-		});
-
-		this.valueCount = {
-			global: getValueCount(globalType),
-			individual: individualCounts
-		};
-	},
-
-
-	dataFound: function () {
-		// Interpret the values into right types
-		this.parseTypes();
-		
-		// Use first row for series names?
-		this.findHeaderRow();
-		
-		// Handle columns if a handleColumns callback is given
-		this.parsed();
-		
-		// Complete if a complete callback is given
-		this.complete();
-		
-	},
-	
-	/**
-	 * Parse a CSV input string
-	 */
-	parseCSV: function () {
-		var self = this,
-			options = this.options,
-			csv = options.csv,
-			columns = this.columns,
-			startRow = options.startRow || 0,
-			endRow = options.endRow || Number.MAX_VALUE,
-			startColumn = options.startColumn || 0,
-			endColumn = options.endColumn || Number.MAX_VALUE,
-			lines,
-			activeRowNo = 0;
-			
-		if (csv) {
-			
-			lines = csv
-				.replace(/\r\n/g, "\n") // Unix
-				.replace(/\r/g, "\n") // Mac
-				.split(options.lineDelimiter || "\n");
-			
-			each(lines, function (line, rowNo) {
-				var trimmed = self.trim(line),
-					isComment = trimmed.indexOf('#') === 0,
-					isBlank = trimmed === '',
-					items;
-				
-				if (rowNo >= startRow && rowNo <= endRow && !isComment && !isBlank) {
-					items = line.split(options.itemDelimiter || ',');
-					each(items, function (item, colNo) {
-						if (colNo >= startColumn && colNo <= endColumn) {
-							if (!columns[colNo - startColumn]) {
-								columns[colNo - startColumn] = [];					
-							}
-							
-							columns[colNo - startColumn][activeRowNo] = item;
-						}
-					});
-					activeRowNo += 1;
-				}
-			});
-
-			this.dataFound();
-		}
-	},
-	
-	/**
-	 * Parse a HTML table
-	 */
-	parseTable: function () {
-		var options = this.options,
-			table = options.table,
-			columns = this.columns,
-			startRow = options.startRow || 0,
-			endRow = options.endRow || Number.MAX_VALUE,
-			startColumn = options.startColumn || 0,
-			endColumn = options.endColumn || Number.MAX_VALUE,
-			colNo;
-			
-		if (table) {
-			
-			if (typeof table === 'string') {
-				table = document.getElementById(table);
-			}
-			
-			each(table.getElementsByTagName('tr'), function (tr, rowNo) {
-				colNo = 0; 
-				if (rowNo >= startRow && rowNo <= endRow) {
-					each(tr.childNodes, function (item) {
-						if ((item.tagName === 'TD' || item.tagName === 'TH') && colNo >= startColumn && colNo <= endColumn) {
-							if (!columns[colNo]) {
-								columns[colNo] = [];					
-							}
-							columns[colNo][rowNo - startRow] = item.innerHTML;
-							
-							colNo += 1;
-						}
-					});
-				}
-			});
-
-			this.dataFound(); // continue
-		}
-	},
-
-	/**
-	 * TODO: 
-	 * - switchRowsAndColumns
-	 */
-	parseGoogleSpreadsheet: function () {
-		var self = this,
-			options = this.options,
-			googleSpreadsheetKey = options.googleSpreadsheetKey,
-			columns = this.columns,
-			startRow = options.startRow || 0,
-			endRow = options.endRow || Number.MAX_VALUE,
-			startColumn = options.startColumn || 0,
-			endColumn = options.endColumn || Number.MAX_VALUE,
-			gr, // google row
-			gc; // google column
-
-		if (googleSpreadsheetKey) {
-			jQuery.getJSON('https://spreadsheets.google.com/feeds/cells/' + 
-				  googleSpreadsheetKey + '/' + (options.googleSpreadsheetWorksheet || 'od6') +
-					  '/public/values?alt=json-in-script&callback=?',
-					  function (json) {
-					
-				// Prepare the data from the spreadsheat
-				var cells = json.feed.entry,
-					cell,
-					cellCount = cells.length,
-					colCount = 0,
-					rowCount = 0,
-					i;
-			
-				// First, find the total number of columns and rows that 
-				// are actually filled with data
-				for (i = 0; i < cellCount; i++) {
-					cell = cells[i];
-					colCount = Math.max(colCount, cell.gs$cell.col);
-					rowCount = Math.max(rowCount, cell.gs$cell.row);			
-				}
-			
-				// Set up arrays containing the column data
-				for (i = 0; i < colCount; i++) {
-					if (i >= startColumn && i <= endColumn) {
-						// Create new columns with the length of either end-start or rowCount
-						columns[i - startColumn] = [];
-
-						// Setting the length to avoid jslint warning
-						columns[i - startColumn].length = Math.min(rowCount, endRow - startRow);
-					}
-				}
-				
-				// Loop over the cells and assign the value to the right
-				// place in the column arrays
-				for (i = 0; i < cellCount; i++) {
-					cell = cells[i];
-					gr = cell.gs$cell.row - 1; // rows start at 1
-					gc = cell.gs$cell.col - 1; // columns start at 1
-
-					// If both row and col falls inside start and end
-					// set the transposed cell value in the newly created columns
-					if (gc >= startColumn && gc <= endColumn &&
-						gr >= startRow && gr <= endRow) {
-						columns[gc - startColumn][gr - startRow] = cell.content.$t;
-					}
-				}
-				self.dataFound();
-			});
-		}
-	},
-	
-	/**
-	 * Find the header row. For now, we just check whether the first row contains
-	 * numbers or strings. Later we could loop down and find the first row with 
-	 * numbers.
-	 */
-	findHeaderRow: function () {
-		var headerRow = 0;
-		each(this.columns, function (column) {
-			if (typeof column[0] !== 'string') {
-				headerRow = null;
-			}
-		});
-		this.headerRow = 0;			
-	},
-	
-	/**
-	 * Trim a string from whitespace
-	 */
-	trim: function (str) {
-		return typeof str === 'string' ? str.replace(/^\s+|\s+$/g, '') : str;
-	},
-	
-	/**
-	 * Parse numeric cells in to number types and date types in to true dates.
-	 * @param {Object} columns
-	 */
-	parseTypes: function () {
-		var columns = this.columns,
-			col = columns.length, 
-			row,
-			val,
-			floatVal,
-			trimVal,
-			dateVal;
-			
-		while (col--) {
-			row = columns[col].length;
-			while (row--) {
-				val = columns[col][row];
-				floatVal = parseFloat(val);
-				trimVal = this.trim(val);
-
-				/*jslint eqeq: true*/
-				if (trimVal == floatVal) { // is numeric
-				/*jslint eqeq: false*/
-					columns[col][row] = floatVal;
-					
-					// If the number is greater than milliseconds in a year, assume datetime
-					if (floatVal > 365 * 24 * 3600 * 1000) {
-						columns[col].isDatetime = true;
-					} else {
-						columns[col].isNumeric = true;
-					}					
-				
-				} else { // string, continue to determine if it is a date string or really a string
-					dateVal = this.parseDate(val);
-					
-					if (col === 0 && typeof dateVal === 'number' && !isNaN(dateVal)) { // is date
-						columns[col][row] = dateVal;
-						columns[col].isDatetime = true;
-					
-					} else { // string
-						columns[col][row] = trimVal === '' ? null : trimVal;
-					}
-				}
-				
-			}
-		}
-	},
-	//*
-	dateFormats: {
-		'YYYY-mm-dd': {
-			regex: '^([0-9]{4})-([0-9]{2})-([0-9]{2})$',
-			parser: function (match) {
-				return Date.UTC(+match[1], match[2] - 1, +match[3]);
-			}
-		}
-	},
-	// */
-	/**
-	 * Parse a date and return it as a number. Overridable through options.parseDate.
-	 */
-	parseDate: function (val) {
-		var parseDate = this.options.parseDate,
-			ret,
-			key,
-			format,
-			match;
-
-		if (parseDate) {
-			ret = parseDate(val);
-		}
-			
-		if (typeof val === 'string') {
-			for (key in this.dateFormats) {
-				format = this.dateFormats[key];
-				match = val.match(format.regex);
-				if (match) {
-					ret = format.parser(match);
-				}
-			}
-		}
-		return ret;
-	},
-	
-	/**
-	 * Reorganize rows into columns
-	 */
-	rowsToColumns: function (rows) {
-		var row,
-			rowsLength,
-			col,
-			colsLength,
-			columns;
-
-		if (rows) {
-			columns = [];
-			rowsLength = rows.length;
-			for (row = 0; row < rowsLength; row++) {
-				colsLength = rows[row].length;
-				for (col = 0; col < colsLength; col++) {
-					if (!columns[col]) {
-						columns[col] = [];
-					}
-					columns[col][row] = rows[row][col];
-				}
-			}
-		}
-		return columns;
-	},
-	
-	/**
-	 * A hook for working directly on the parsed columns
-	 */
-	parsed: function () {
-		if (this.options.parsed) {
-			this.options.parsed.call(this, this.columns);
-		}
-	},
-	
-	/**
-	 * If a complete callback function is provided in the options, interpret the 
-	 * columns into a Highcharts options object.
-	 */
-	complete: function () {
-		
-		var columns = this.columns,
-			firstCol,
-			type,
-			options = this.options,
-			valueCount,
-			series,
-			data,
-			i,
-			j,
-			seriesIndex;
-			
-		
-		if (options.complete) {
-
-			this.getColumnDistribution();
-			
-			// Use first column for X data or categories?
-			if (columns.length > 1) {
-				firstCol = columns.shift();
-				if (this.headerRow === 0) {
-					firstCol.shift(); // remove the first cell
-				}
-				
-				
-				if (firstCol.isDatetime) {
-					type = 'datetime';
-				} else if (!firstCol.isNumeric) {
-					type = 'category';
-				}
-			}
-
-			// Get the names and shift the top row
-			for (i = 0; i < columns.length; i++) {
-				if (this.headerRow === 0) {
-					columns[i].name = columns[i].shift();
-				}
-			}
-			
-			// Use the next columns for series
-			series = [];
-			for (i = 0, seriesIndex = 0; i < columns.length; seriesIndex++) {
-
-				// This series' value count
-				valueCount = Highcharts.pick(this.valueCount.individual[seriesIndex], this.valueCount.global);
-				
-				// Iterate down the cells of each column and add data to the series
-				data = [];
-				for (j = 0; j < columns[i].length; j++) {
-					data[j] = [
-						firstCol[j], 
-						columns[i][j] !== undefined ? columns[i][j] : null
-					];
-					if (valueCount > 1) {
-						data[j].push(columns[i + 1][j] !== undefined ? columns[i + 1][j] : null);
-					}
-					if (valueCount > 2) {
-						data[j].push(columns[i + 2][j] !== undefined ? columns[i + 2][j] : null);
-					}
-					if (valueCount > 3) {
-						data[j].push(columns[i + 3][j] !== undefined ? columns[i + 3][j] : null);
-					}
-					if (valueCount > 4) {
-						data[j].push(columns[i + 4][j] !== undefined ? columns[i + 4][j] : null);
-					}
-				}
-
-				// Add the series
-				series[seriesIndex] = {
-					name: columns[i].name,
-					data: data
-				};
-
-				i += valueCount;
-			}
-			
-			// Do the callback
-			options.complete({
-				xAxis: {
-					type: type
-				},
-				series: series
-			});
-		}
-	}
-	});
-	
-	// Register the Data prototype and data function on Highcharts
-	Highcharts.Data = Data;
-	Highcharts.data = function (options, chartOptions) {
-		return new Data(options, chartOptions);
-	};
-
-	// Extend Chart.init so that the Chart constructor accepts a new configuration
-	// option group, data.
-	Highcharts.wrap(Highcharts.Chart.prototype, 'init', function (proceed, userOptions, callback) {
-		var chart = this;
-
-		if (userOptions && userOptions.data) {
-			Highcharts.data(Highcharts.extend(userOptions.data, {
-				complete: function (dataOptions) {
-					
-					// Merge series configs
-					if (userOptions.series) {
-						each(userOptions.series, function (series, i) {
-							userOptions.series[i] = Highcharts.merge(series, dataOptions.series[i]);
-						});
-					}
-
-					// Do the merge
-					userOptions = Highcharts.merge(dataOptions, userOptions);
-
-					proceed.call(chart, userOptions, callback);
-				}
-			}), userOptions);
-		} else {
-			proceed.call(chart, userOptions, callback);
-		}
-	});
-
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/modules/drilldown.js b/server/public/ueditor/third-party/highcharts/modules/drilldown.js
deleted file mode 100644
index 9c9cfa3..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/drilldown.js
+++ /dev/null
@@ -1,11 +0,0 @@
-(function(e){function q(b,a,c){return"rgba("+[Math.round(b[0]+(a[0]-b[0])*c),Math.round(b[1]+(a[1]-b[1])*c),Math.round(b[2]+(a[2]-b[2])*c),b[3]+(a[3]-b[3])*c].join(",")+")"}var m=function(){},j=e.getOptions(),g=e.each,n=e.extend,o=e.wrap,h=e.Chart,i=e.seriesTypes,k=i.pie,l=i.column,r=HighchartsAdapter.fireEvent;n(j.lang,{drillUpText:"鈼� Back to {series.name}"});j.drilldown={activeAxisLabelStyle:{cursor:"pointer",color:"#039",fontWeight:"bold",textDecoration:"underline"},activeDataLabelStyle:{cursor:"pointer",
-color:"#039",fontWeight:"bold",textDecoration:"underline"},animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};e.SVGRenderer.prototype.Element.prototype.fadeIn=function(){this.attr({opacity:0.1,visibility:"visible"}).animate({opacity:1},{duration:250})};h.prototype.drilldownLevels=[];h.prototype.addSeriesAsDrilldown=function(b,a){var c=b.series,d=c.xAxis,f=c.yAxis,e;e=b.color||c.color;var g,a=n({color:e},a);g=HighchartsAdapter.inArray(this,c.points);this.drilldownLevels.push({seriesOptions:c.userOptions,
-shapeArgs:b.shapeArgs,bBox:b.graphic.getBBox(),color:e,newSeries:a,pointOptions:c.options.data[g],pointIndex:g,oldExtremes:{xMin:d&&d.userMin,xMax:d&&d.userMax,yMin:f&&f.userMin,yMax:f&&f.userMax}});e=this.addSeries(a,!1);if(d)d.oldPos=d.pos,d.userMin=d.userMax=null,f.userMin=f.userMax=null;if(c.type===e.type)e.animate=e.animateDrilldown||m,e.options.animation=!0;c.remove(!1);this.redraw();this.showDrillUpButton()};h.prototype.getDrilldownBackText=function(){return this.options.lang.drillUpText.replace("{series.name}",
-this.drilldownLevels[this.drilldownLevels.length-1].seriesOptions.name)};h.prototype.showDrillUpButton=function(){var b=this,a=this.getDrilldownBackText(),c=b.options.drilldown.drillUpButton;this.drillUpButton?this.drillUpButton.attr({text:a}).align():this.drillUpButton=this.renderer.button(a,null,null,function(){b.drillUp()}).attr(n({align:c.position.align,zIndex:9},c.theme)).add().align(c.position,!1,c.relativeTo||"plotBox")};h.prototype.drillUp=function(){var b=this.drilldownLevels.pop(),a=this.series[0],
-c=b.oldExtremes,d=this.addSeries(b.seriesOptions,!1);r(this,"drillup",{seriesOptions:b.seriesOptions});if(d.type===a.type)d.drilldownLevel=b,d.animate=d.animateDrillupTo||m,d.options.animation=!0,a.animateDrillupFrom&&a.animateDrillupFrom(b);a.remove(!1);d.xAxis&&(d.xAxis.setExtremes(c.xMin,c.xMax,!1),d.yAxis.setExtremes(c.yMin,c.yMax,!1));this.redraw();this.drilldownLevels.length===0?this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align()};
-k.prototype.animateDrilldown=function(b){var a=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],c=this.chart.options.drilldown.animation,d=a.shapeArgs,f=d.start,s=(d.end-f)/this.points.length,h=e.Color(a.color).rgba;b||g(this.points,function(a,b){var g=e.Color(a.color).rgba;a.graphic.attr(e.merge(d,{start:f+b*s,end:f+(b+1)*s})).animate(a.shapeArgs,e.merge(c,{step:function(a,d){d.prop==="start"&&this.attr({fill:q(h,g,d.pos)})}}))})};k.prototype.animateDrillupTo=l.prototype.animateDrillupTo=
-function(b){if(!b){var a=this,c=a.drilldownLevel;g(this.points,function(a){a.graphic.hide();a.dataLabel&&a.dataLabel.hide();a.connector&&a.connector.hide()});setTimeout(function(){g(a.points,function(a,b){var e=b===c.pointIndex?"show":"fadeIn";a.graphic[e]();if(a.dataLabel)a.dataLabel[e]();if(a.connector)a.connector[e]()})},Math.max(this.chart.options.drilldown.animation.duration-50,0));this.animate=m}};l.prototype.animateDrilldown=function(b){var a=this.chart.drilldownLevels[this.chart.drilldownLevels.length-
-1].shapeArgs,c=this.chart.options.drilldown.animation;b||(a.x+=this.xAxis.oldPos-this.xAxis.pos,g(this.points,function(b){b.graphic.attr(a).animate(b.shapeArgs,c)}))};l.prototype.animateDrillupFrom=k.prototype.animateDrillupFrom=function(b){var a=this.chart.options.drilldown.animation,c=this.group;delete this.group;g(this.points,function(d){var f=d.graphic,g=e.Color(d.color).rgba;delete d.graphic;f.animate(b.shapeArgs,e.merge(a,{step:function(a,c){c.prop==="start"&&this.attr({fill:q(g,e.Color(b.color).rgba,
-c.pos)})},complete:function(){f.destroy();c&&(c=c.destroy())}}))})};e.Point.prototype.doDrilldown=function(){for(var b=this.series.chart,a=b.options.drilldown,c=a.series.length,d;c--&&!d;)a.series[c].id===this.drilldown&&(d=a.series[c]);r(b,"drilldown",{point:this,seriesOptions:d});d&&b.addSeriesAsDrilldown(this,d)};o(e.Point.prototype,"init",function(b,a,c,d){var f=b.call(this,a,c,d),b=a.chart,a=(a=a.xAxis&&a.xAxis.ticks[d])&&a.label;if(f.drilldown){if(e.addEvent(f,"click",function(){f.doDrilldown()}),
-a){if(!a._basicStyle)a._basicStyle=a.element.getAttribute("style");a.addClass("highcharts-drilldown-axis-label").css(b.options.drilldown.activeAxisLabelStyle).on("click",function(){f.doDrilldown&&f.doDrilldown()})}}else a&&a._basicStyle&&a.element.setAttribute("style",a._basicStyle);return f});o(e.Series.prototype,"drawDataLabels",function(b){var a=this.chart.options.drilldown.activeDataLabelStyle;b.call(this);g(this.points,function(b){if(b.drilldown&&b.dataLabel)b.dataLabel.attr({"class":"highcharts-drilldown-data-label"}).css(a).on("click",
-function(){b.doDrilldown()})})});l.prototype.supportsDrilldown=!0;k.prototype.supportsDrilldown=!0;var p,j=function(b){b.call(this);g(this.points,function(a){a.drilldown&&a.graphic&&a.graphic.attr({"class":"highcharts-drilldown-point"}).css({cursor:"pointer"})})};for(p in i)i[p].prototype.supportsDrilldown&&o(i[p].prototype,"drawTracker",j)})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/modules/drilldown.src.js b/server/public/ueditor/third-party/highcharts/modules/drilldown.src.js
deleted file mode 100644
index 4934a6a..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/drilldown.src.js
+++ /dev/null
@@ -1,447 +0,0 @@
-/**
- * Highcharts Drilldown plugin
- * 
- * Author: Torstein Honsi
- * Last revision: 2013-02-18
- * License: MIT License
- *
- * Demo: http://jsfiddle.net/highcharts/Vf3yT/
- */
-
-/*global HighchartsAdapter*/
-(function (H) {
-
-	"use strict";
-
-	var noop = function () {},
-		defaultOptions = H.getOptions(),
-		each = H.each,
-		extend = H.extend,
-		wrap = H.wrap,
-		Chart = H.Chart,
-		seriesTypes = H.seriesTypes,
-		PieSeries = seriesTypes.pie,
-		ColumnSeries = seriesTypes.column,
-		fireEvent = HighchartsAdapter.fireEvent;
-
-	// Utilities
-	function tweenColors(startColor, endColor, pos) {
-		var rgba = [
-				Math.round(startColor[0] + (endColor[0] - startColor[0]) * pos),
-				Math.round(startColor[1] + (endColor[1] - startColor[1]) * pos),
-				Math.round(startColor[2] + (endColor[2] - startColor[2]) * pos),
-				startColor[3] + (endColor[3] - startColor[3]) * pos
-			];
-		return 'rgba(' + rgba.join(',') + ')';
-	}
-
-	// Add language
-	extend(defaultOptions.lang, {
-		drillUpText: '鈼� Back to {series.name}'
-	});
-	defaultOptions.drilldown = {
-		activeAxisLabelStyle: {
-			cursor: 'pointer',
-			color: '#039',
-			fontWeight: 'bold',
-			textDecoration: 'underline'			
-		},
-		activeDataLabelStyle: {
-			cursor: 'pointer',
-			color: '#039',
-			fontWeight: 'bold',
-			textDecoration: 'underline'			
-		},
-		animation: {
-			duration: 500
-		},
-		drillUpButton: {
-			position: { 
-				align: 'right',
-				x: -10,
-				y: 10
-			}
-			// relativeTo: 'plotBox'
-			// theme
-		}
-	};	
-
-	/**
-	 * A general fadeIn method
-	 */
-	H.SVGRenderer.prototype.Element.prototype.fadeIn = function () {
-		this
-		.attr({
-			opacity: 0.1,
-			visibility: 'visible'
-		})
-		.animate({
-			opacity: 1
-		}, {
-			duration: 250
-		});
-	};
-
-	// Extend the Chart prototype
-	Chart.prototype.drilldownLevels = [];
-
-	Chart.prototype.addSeriesAsDrilldown = function (point, ddOptions) {
-		var oldSeries = point.series,
-			xAxis = oldSeries.xAxis,
-			yAxis = oldSeries.yAxis,
-			newSeries,
-			color = point.color || oldSeries.color,
-			pointIndex,
-			level;
-			
-		ddOptions = extend({
-			color: color
-		}, ddOptions);
-		pointIndex = HighchartsAdapter.inArray(this, oldSeries.points);
-		level = {
-			seriesOptions: oldSeries.userOptions,
-			shapeArgs: point.shapeArgs,
-			bBox: point.graphic.getBBox(),
-			color: color,
-			newSeries: ddOptions,
-			pointOptions: oldSeries.options.data[pointIndex],
-			pointIndex: pointIndex,
-			oldExtremes: {
-				xMin: xAxis && xAxis.userMin,
-				xMax: xAxis && xAxis.userMax,
-				yMin: yAxis && yAxis.userMin,
-				yMax: yAxis && yAxis.userMax
-			}
-		};
-
-		this.drilldownLevels.push(level);
-
-		newSeries = this.addSeries(ddOptions, false);
-		if (xAxis) {
-			xAxis.oldPos = xAxis.pos;
-			xAxis.userMin = xAxis.userMax = null;
-			yAxis.userMin = yAxis.userMax = null;
-		}
-
-		// Run fancy cross-animation on supported and equal types
-		if (oldSeries.type === newSeries.type) {
-			newSeries.animate = newSeries.animateDrilldown || noop;
-			newSeries.options.animation = true;
-		}
-		
-		oldSeries.remove(false);
-		
-		this.redraw();
-		this.showDrillUpButton();
-	};
-
-	Chart.prototype.getDrilldownBackText = function () {
-		var lastLevel = this.drilldownLevels[this.drilldownLevels.length - 1];
-
-		return this.options.lang.drillUpText.replace('{series.name}', lastLevel.seriesOptions.name);
-
-	};
-
-	Chart.prototype.showDrillUpButton = function () {
-		var chart = this,
-			backText = this.getDrilldownBackText(),
-			buttonOptions = chart.options.drilldown.drillUpButton;
-			
-
-		if (!this.drillUpButton) {
-			this.drillUpButton = this.renderer.button(
-				backText,
-				null,
-				null,
-				function () {
-					chart.drillUp(); 
-				}
-			)
-			.attr(extend({
-				align: buttonOptions.position.align,
-				zIndex: 9
-			}, buttonOptions.theme))
-			.add()
-			.align(buttonOptions.position, false, buttonOptions.relativeTo || 'plotBox');
-		} else {
-			this.drillUpButton.attr({
-				text: backText
-			})
-			.align();
-		}
-	};
-
-	Chart.prototype.drillUp = function () {
-		var chart = this,
-			level = chart.drilldownLevels.pop(),
-			oldSeries = chart.series[0],
-			oldExtremes = level.oldExtremes,
-			newSeries = chart.addSeries(level.seriesOptions, false);
-		
-		fireEvent(chart, 'drillup', { seriesOptions: level.seriesOptions });
-
-		if (newSeries.type === oldSeries.type) {
-			newSeries.drilldownLevel = level;
-			newSeries.animate = newSeries.animateDrillupTo || noop;
-			newSeries.options.animation = true;
-
-			if (oldSeries.animateDrillupFrom) {
-				oldSeries.animateDrillupFrom(level);
-			}
-		}
-
-		oldSeries.remove(false);
-
-		// Reset the zoom level of the upper series
-		if (newSeries.xAxis) {
-			newSeries.xAxis.setExtremes(oldExtremes.xMin, oldExtremes.xMax, false);
-			newSeries.yAxis.setExtremes(oldExtremes.yMin, oldExtremes.yMax, false);
-		}
-
-
-		this.redraw();
-
-		if (this.drilldownLevels.length === 0) {
-			this.drillUpButton = this.drillUpButton.destroy();
-		} else {
-			this.drillUpButton.attr({
-				text: this.getDrilldownBackText()
-			})
-			.align();
-		}
-	};
-
-	PieSeries.prototype.animateDrilldown = function (init) {
-		var level = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1],
-			animationOptions = this.chart.options.drilldown.animation,
-			animateFrom = level.shapeArgs,
-			start = animateFrom.start,
-			angle = animateFrom.end - start,
-			startAngle = angle / this.points.length,
-			startColor = H.Color(level.color).rgba;
-
-		if (!init) {
-			each(this.points, function (point, i) {
-				var endColor = H.Color(point.color).rgba;
-
-				/*jslint unparam: true*/
-				point.graphic
-					.attr(H.merge(animateFrom, {
-						start: start + i * startAngle,
-						end: start + (i + 1) * startAngle
-					}))
-					.animate(point.shapeArgs, H.merge(animationOptions, {
-						step: function (val, fx) {
-							if (fx.prop === 'start') {
-								this.attr({
-									fill: tweenColors(startColor, endColor, fx.pos)
-								});
-							}
-						}
-					}));
-				/*jslint unparam: false*/
-			});
-		}
-	};
-
-
-	/**
-	 * When drilling up, keep the upper series invisible until the lower series has
-	 * moved into place
-	 */
-	PieSeries.prototype.animateDrillupTo = 
-			ColumnSeries.prototype.animateDrillupTo = function (init) {
-		if (!init) {
-			var newSeries = this,
-				level = newSeries.drilldownLevel;
-
-			each(this.points, function (point) {
-				point.graphic.hide();
-				if (point.dataLabel) {
-					point.dataLabel.hide();
-				}
-				if (point.connector) {
-					point.connector.hide();
-				}
-			});
-
-
-			// Do dummy animation on first point to get to complete
-			setTimeout(function () {
-				each(newSeries.points, function (point, i) {  
-					// Fade in other points			  
-					var verb = i === level.pointIndex ? 'show' : 'fadeIn';
-					point.graphic[verb]();
-					if (point.dataLabel) {
-						point.dataLabel[verb]();
-					}
-					if (point.connector) {
-						point.connector[verb]();
-					}
-				});
-			}, Math.max(this.chart.options.drilldown.animation.duration - 50, 0));
-
-			// Reset
-			this.animate = noop;
-		}
-
-	};
-	
-	ColumnSeries.prototype.animateDrilldown = function (init) {
-		var animateFrom = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1].shapeArgs,
-			animationOptions = this.chart.options.drilldown.animation;
-			
-		if (!init) {
-
-			animateFrom.x += (this.xAxis.oldPos - this.xAxis.pos);
-	
-			each(this.points, function (point) {
-				point.graphic
-					.attr(animateFrom)
-					.animate(point.shapeArgs, animationOptions);
-			});
-		}
-		
-	};
-
-	/**
-	 * When drilling up, pull out the individual point graphics from the lower series
-	 * and animate them into the origin point in the upper series.
-	 */
-	ColumnSeries.prototype.animateDrillupFrom = 
-		PieSeries.prototype.animateDrillupFrom =
-	function (level) {
-		var animationOptions = this.chart.options.drilldown.animation,
-			group = this.group;
-
-		delete this.group;
-		each(this.points, function (point) {
-			var graphic = point.graphic,
-				startColor = H.Color(point.color).rgba;
-
-			delete point.graphic;
-
-			/*jslint unparam: true*/
-			graphic.animate(level.shapeArgs, H.merge(animationOptions, {
-
-				step: function (val, fx) {
-					if (fx.prop === 'start') {
-						this.attr({
-							fill: tweenColors(startColor, H.Color(level.color).rgba, fx.pos)
-						});
-					}
-				},
-				complete: function () {
-					graphic.destroy();
-					if (group) {
-						group = group.destroy();
-					}
-				}
-			}));
-			/*jslint unparam: false*/
-		});
-	};
-	
-	H.Point.prototype.doDrilldown = function () {
-		var series = this.series,
-			chart = series.chart,
-			drilldown = chart.options.drilldown,
-			i = drilldown.series.length,
-			seriesOptions;
-		
-		while (i-- && !seriesOptions) {
-			if (drilldown.series[i].id === this.drilldown) {
-				seriesOptions = drilldown.series[i];
-			}
-		}
-
-		// Fire the event. If seriesOptions is undefined, the implementer can check for 
-		// seriesOptions, and call addSeriesAsDrilldown async if necessary.
-		fireEvent(chart, 'drilldown', { 
-			point: this,
-			seriesOptions: seriesOptions
-		});
-		
-		if (seriesOptions) {
-			chart.addSeriesAsDrilldown(this, seriesOptions);
-		}
-
-	};
-	
-	wrap(H.Point.prototype, 'init', function (proceed, series, options, x) {
-		var point = proceed.call(this, series, options, x),
-			chart = series.chart,
-			tick = series.xAxis && series.xAxis.ticks[x],
-			tickLabel = tick && tick.label;
-		
-		if (point.drilldown) {
-			
-			// Add the click event to the point label
-			H.addEvent(point, 'click', function () {
-				point.doDrilldown();
-			});
-			
-			// Make axis labels clickable
-			if (tickLabel) {
-				if (!tickLabel._basicStyle) {
-					tickLabel._basicStyle = tickLabel.element.getAttribute('style');
-				}
-				tickLabel
-					.addClass('highcharts-drilldown-axis-label')
-					.css(chart.options.drilldown.activeAxisLabelStyle)
-					.on('click', function () {
-						if (point.doDrilldown) {
-							point.doDrilldown();
-						}
-					});
-					
-			}
-		} else if (tickLabel && tickLabel._basicStyle) {
-			tickLabel.element.setAttribute('style', tickLabel._basicStyle);
-		}
-		
-		return point;
-	});
-
-	wrap(H.Series.prototype, 'drawDataLabels', function (proceed) {
-		var css = this.chart.options.drilldown.activeDataLabelStyle;
-
-		proceed.call(this);
-
-		each(this.points, function (point) {
-			if (point.drilldown && point.dataLabel) {
-				point.dataLabel
-					.attr({
-						'class': 'highcharts-drilldown-data-label'
-					})
-					.css(css)
-					.on('click', function () {
-						point.doDrilldown();
-					});
-			}
-		});
-	});
-
-	// Mark the trackers with a pointer 
-	ColumnSeries.prototype.supportsDrilldown = true;
-	PieSeries.prototype.supportsDrilldown = true;
-	var type, 
-		drawTrackerWrapper = function (proceed) {
-			proceed.call(this);
-			each(this.points, function (point) {
-				if (point.drilldown && point.graphic) {
-					point.graphic
-						.attr({
-							'class': 'highcharts-drilldown-point'
-						})
-						.css({ cursor: 'pointer' });
-				}
-			});
-		};
-	for (type in seriesTypes) {
-		if (seriesTypes[type].prototype.supportsDrilldown) {
-			wrap(seriesTypes[type].prototype, 'drawTracker', drawTrackerWrapper);
-		}
-	}
-		
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/modules/exporting.js b/server/public/ueditor/third-party/highcharts/modules/exporting.js
deleted file mode 100644
index cac80e0..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/exporting.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Highcharts JS v3.0.6 (2013-10-04)
- Exporting module
-
- (c) 2010-2013 Torstein H酶nsi
-
- License: www.highcharts.com/license
-*/
-(function(f){var A=f.Chart,t=f.addEvent,C=f.removeEvent,k=f.createElement,n=f.discardElement,u=f.css,o=f.merge,r=f.each,p=f.extend,D=Math.max,j=document,B=window,E=f.isTouchDevice,F=f.Renderer.prototype.symbols,x=f.getOptions(),y;p(x.lang,{printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"});x.navigation={menuStyle:{border:"1px solid #A0A0A0",
-background:"#FFFFFF",padding:"5px 0"},menuItemStyle:{padding:"0 10px",background:"none",color:"#303030",fontSize:E?"14px":"11px"},menuItemHoverStyle:{background:"#4572A5",color:"#FFFFFF"},buttonOptions:{symbolFill:"#E0E0E0",symbolSize:14,symbolStroke:"#666",symbolStrokeWidth:3,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,theme:{fill:"white",stroke:"none"},verticalAlign:"top",width:24}};x.exporting={type:"image/png",url:"http://export.highcharts.com/",buttons:{contextButton:{menuClassName:"highcharts-contextmenu",
-symbol:"menu",_titleKey:"contextButtonTitle",menuItems:[{textKey:"printChart",onclick:function(){this.print()}},{separator:!0},{textKey:"downloadPNG",onclick:function(){this.exportChart()}},{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}]}}};f.post=function(c,a){var d,b;b=k("form",{method:"post",
-action:c,enctype:"multipart/form-data"},{display:"none"},j.body);for(d in a)k("input",{type:"hidden",name:d,value:a[d]},null,b);b.submit();n(b)};p(A.prototype,{getSVG:function(c){var a=this,d,b,z,h,g=o(a.options,c);if(!j.createElementNS)j.createElementNS=function(a,b){return j.createElement(b)};c=k("div",null,{position:"absolute",top:"-9999em",width:a.chartWidth+"px",height:a.chartHeight+"px"},j.body);b=a.renderTo.style.width;h=a.renderTo.style.height;b=g.exporting.sourceWidth||g.chart.width||/px$/.test(b)&&
-parseInt(b,10)||600;h=g.exporting.sourceHeight||g.chart.height||/px$/.test(h)&&parseInt(h,10)||400;p(g.chart,{animation:!1,renderTo:c,forExport:!0,width:b,height:h});g.exporting.enabled=!1;g.series=[];r(a.series,function(a){z=o(a.options,{animation:!1,showCheckbox:!1,visible:a.visible});z.isInternal||g.series.push(z)});d=new f.Chart(g,a.callback);r(["xAxis","yAxis"],function(b){r(a[b],function(a,c){var g=d[b][c],f=a.getExtremes(),h=f.userMin,f=f.userMax;g&&(h!==void 0||f!==void 0)&&g.setExtremes(h,
-f,!0,!1)})});b=d.container.innerHTML;g=null;d.destroy();n(c);b=b.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\([^#]+#/g,"url(#").replace(/<svg /,'<svg xmlns:xlink="http://www.w3.org/1999/xlink" ').replace(/ href=/g," xlink:href=").replace(/\n/," ").replace(/<\/svg>.*?$/,"</svg>").replace(/&nbsp;/g,"聽").replace(/&shy;/g,"颅").replace(/<IMG /g,"<image ").replace(/height=([^" ]+)/g,'height="$1"').replace(/width=([^" ]+)/g,
-'width="$1"').replace(/hc-svg-href="([^"]+)">/g,'xlink:href="$1"/>').replace(/id=([^" >]+)/g,'id="$1"').replace(/class=([^" >]+)/g,'class="$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(a){return a.toLowerCase()});return b=b.replace(/(url\(#highcharts-[0-9]+)&quot;/g,"$1").replace(/&quot;/g,"'")},exportChart:function(c,a){var c=c||{},d=this.options.exporting,d=this.getSVG(o({chart:{borderRadius:0}},d.chartOptions,a,{exporting:{sourceWidth:c.sourceWidth||
-d.sourceWidth,sourceHeight:c.sourceHeight||d.sourceHeight}})),c=o(this.options.exporting,c);f.post(c.url,{filename:c.filename||"chart",type:c.type,width:c.width||0,scale:c.scale||2,svg:d})},print:function(){var c=this,a=c.container,d=[],b=a.parentNode,f=j.body,h=f.childNodes;if(!c.isPrinting)c.isPrinting=!0,r(h,function(a,b){if(a.nodeType===1)d[b]=a.style.display,a.style.display="none"}),f.appendChild(a),B.focus(),B.print(),setTimeout(function(){b.appendChild(a);r(h,function(a,b){if(a.nodeType===
-1)a.style.display=d[b]});c.isPrinting=!1},1E3)},contextMenu:function(c,a,d,b,f,h,g){var e=this,j=e.options.navigation,q=j.menuItemStyle,l=e.chartWidth,m=e.chartHeight,o="cache-"+c,i=e[o],s=D(f,h),v,w,n;if(!i)e[o]=i=k("div",{className:c},{position:"absolute",zIndex:1E3,padding:s+"px"},e.container),v=k("div",null,p({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},j.menuStyle),i),w=function(){u(i,{display:"none"});g&&g.setState(0);e.openMenu=!1},t(i,
-"mouseleave",function(){n=setTimeout(w,500)}),t(i,"mouseenter",function(){clearTimeout(n)}),t(document,"mousedown",function(a){e.pointer.inClass(a.target,c)||w()}),r(a,function(a){if(a){var b=a.separator?k("hr",null,null,v):k("div",{onmouseover:function(){u(this,j.menuItemHoverStyle)},onmouseout:function(){u(this,q)},onclick:function(){w();a.onclick.apply(e,arguments)},innerHTML:a.text||e.options.lang[a.textKey]},p({cursor:"pointer"},q),v);e.exportDivElements.push(b)}}),e.exportDivElements.push(v,
-i),e.exportMenuWidth=i.offsetWidth,e.exportMenuHeight=i.offsetHeight;a={display:"block"};d+e.exportMenuWidth>l?a.right=l-d-f-s+"px":a.left=d-s+"px";b+h+e.exportMenuHeight>m&&g.alignOptions.verticalAlign!=="top"?a.bottom=m-b-s+"px":a.top=b+h-s+"px";u(i,a);e.openMenu=!0},addButton:function(c){var a=this,d=a.renderer,b=o(a.options.navigation.buttonOptions,c),j=b.onclick,h=b.menuItems,g,e,k={stroke:b.symbolStroke,fill:b.symbolFill},q=b.symbolSize||12;if(!a.btnCount)a.btnCount=0;if(!a.exportDivElements)a.exportDivElements=
-[],a.exportSVGElements=[];if(b.enabled!==!1){var l=b.theme,m=l.states,n=m&&m.hover,m=m&&m.select,i;delete l.states;j?i=function(){j.apply(a,arguments)}:h&&(i=function(){a.contextMenu(e.menuClassName,h,e.translateX,e.translateY,e.width,e.height,e);e.setState(2)});b.text&&b.symbol?l.paddingLeft=f.pick(l.paddingLeft,25):b.text||p(l,{width:b.width,height:b.height,padding:0});e=d.button(b.text,0,0,i,l,n,m).attr({title:a.options.lang[b._titleKey],"stroke-linecap":"round"});e.menuClassName=c.menuClassName||
-"highcharts-menu-"+a.btnCount++;b.symbol&&(g=d.symbol(b.symbol,b.symbolX-q/2,b.symbolY-q/2,q,q).attr(p(k,{"stroke-width":b.symbolStrokeWidth||1,zIndex:1})).add(e));e.add().align(p(b,{width:e.width,x:f.pick(b.x,y)}),!0,"spacingBox");y+=(e.width+b.buttonSpacing)*(b.align==="right"?-1:1);a.exportSVGElements.push(e,g)}},destroyExport:function(c){var c=c.target,a,d;for(a=0;a<c.exportSVGElements.length;a++)if(d=c.exportSVGElements[a])d.onclick=d.ontouchstart=null,c.exportSVGElements[a]=d.destroy();for(a=
-0;a<c.exportDivElements.length;a++)d=c.exportDivElements[a],C(d,"mouseleave"),c.exportDivElements[a]=d.onmouseout=d.onmouseover=d.ontouchstart=d.onclick=null,n(d)}});F.menu=function(c,a,d,b){return["M",c,a+2.5,"L",c+d,a+2.5,"M",c,a+b/2+0.5,"L",c+d,a+b/2+0.5,"M",c,a+b-1.5,"L",c+d,a+b-1.5]};A.prototype.callbacks.push(function(c){var a,d=c.options.exporting,b=d.buttons;y=0;if(d.enabled!==!1){for(a in b)c.addButton(b[a]);t(c,"destroy",c.destroyExport)}})})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/modules/exporting.src.js b/server/public/ueditor/third-party/highcharts/modules/exporting.src.js
deleted file mode 100644
index 13423d5..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/exporting.src.js
+++ /dev/null
@@ -1,709 +0,0 @@
-/**
- * @license Highcharts JS v3.0.6 (2013-10-04)
- * Exporting module
- *
- * (c) 2010-2013 Torstein H酶nsi
- *
- * License: www.highcharts.com/license
- */
-
-// JSLint options:
-/*global Highcharts, document, window, Math, setTimeout */
-
-(function (Highcharts) { // encapsulate
-
-// create shortcuts
-var Chart = Highcharts.Chart,
-	addEvent = Highcharts.addEvent,
-	removeEvent = Highcharts.removeEvent,
-	createElement = Highcharts.createElement,
-	discardElement = Highcharts.discardElement,
-	css = Highcharts.css,
-	merge = Highcharts.merge,
-	each = Highcharts.each,
-	extend = Highcharts.extend,
-	math = Math,
-	mathMax = math.max,
-	doc = document,
-	win = window,
-	isTouchDevice = Highcharts.isTouchDevice,
-	M = 'M',
-	L = 'L',
-	DIV = 'div',
-	HIDDEN = 'hidden',
-	NONE = 'none',
-	PREFIX = 'highcharts-',
-	ABSOLUTE = 'absolute',
-	PX = 'px',
-	UNDEFINED,
-	symbols = Highcharts.Renderer.prototype.symbols,
-	defaultOptions = Highcharts.getOptions(),
-	buttonOffset;
-
-	// Add language
-	extend(defaultOptions.lang, {
-		printChart: 'Print chart',
-		downloadPNG: 'Download PNG image',
-		downloadJPEG: 'Download JPEG image',
-		downloadPDF: 'Download PDF document',
-		downloadSVG: 'Download SVG vector image',
-		contextButtonTitle: 'Chart context menu'
-	});
-
-// Buttons and menus are collected in a separate config option set called 'navigation'.
-// This can be extended later to add control buttons like zoom and pan right click menus.
-defaultOptions.navigation = {
-	menuStyle: {
-		border: '1px solid #A0A0A0',
-		background: '#FFFFFF',
-		padding: '5px 0'
-	},
-	menuItemStyle: {
-		padding: '0 10px',
-		background: NONE,
-		color: '#303030',
-		fontSize: isTouchDevice ? '14px' : '11px'
-	},
-	menuItemHoverStyle: {
-		background: '#4572A5',
-		color: '#FFFFFF'
-	},
-
-	buttonOptions: {
-		symbolFill: '#E0E0E0',
-		symbolSize: 14,
-		symbolStroke: '#666',
-		symbolStrokeWidth: 3,
-		symbolX: 12.5,
-		symbolY: 10.5,
-		align: 'right',
-		buttonSpacing: 3, 
-		height: 22,
-		// text: null,
-		theme: {
-			fill: 'white', // capture hover
-			stroke: 'none'
-		},
-		verticalAlign: 'top',
-		width: 24
-	}
-};
-
-
-
-// Add the export related options
-defaultOptions.exporting = {
-	//enabled: true,
-	//filename: 'chart',
-	type: 'image/png',
-	url: 'http://export.highcharts.com/',
-	//width: undefined,
-	//scale: 2
-	buttons: {
-		contextButton: {
-			menuClassName: PREFIX + 'contextmenu',
-			//x: -10,
-			symbol: 'menu',
-			_titleKey: 'contextButtonTitle',
-			menuItems: [{
-				textKey: 'printChart',
-				onclick: function () {
-					this.print();
-				}
-			}, {
-				separator: true
-			}, {
-				textKey: 'downloadPNG',
-				onclick: function () {
-					this.exportChart();
-				}
-			}, {
-				textKey: 'downloadJPEG',
-				onclick: function () {
-					this.exportChart({
-						type: 'image/jpeg'
-					});
-				}
-			}, {
-				textKey: 'downloadPDF',
-				onclick: function () {
-					this.exportChart({
-						type: 'application/pdf'
-					});
-				}
-			}, {
-				textKey: 'downloadSVG',
-				onclick: function () {
-					this.exportChart({
-						type: 'image/svg+xml'
-					});
-				}
-			}
-			// Enable this block to add "View SVG" to the dropdown menu
-			/*
-			,{
-
-				text: 'View SVG',
-				onclick: function () {
-					var svg = this.getSVG()
-						.replace(/</g, '\n&lt;')
-						.replace(/>/g, '&gt;');
-
-					doc.body.innerHTML = '<pre>' + svg + '</pre>';
-				}
-			} // */
-			]
-		}
-	}
-};
-
-// Add the Highcharts.post utility
-Highcharts.post = function (url, data) {
-	var name,
-		form;
-	
-	// create the form
-	form = createElement('form', {
-		method: 'post',
-		action: url,
-		enctype: 'multipart/form-data'
-	}, {
-		display: NONE
-	}, doc.body);
-
-	// add the data
-	for (name in data) {
-		createElement('input', {
-			type: HIDDEN,
-			name: name,
-			value: data[name]
-		}, null, form);
-	}
-
-	// submit
-	form.submit();
-
-	// clean up
-	discardElement(form);
-};
-
-extend(Chart.prototype, {
-
-	/**
-	 * Return an SVG representation of the chart
-	 *
-	 * @param additionalOptions {Object} Additional chart options for the generated SVG representation
-	 */
-	getSVG: function (additionalOptions) {
-		var chart = this,
-			chartCopy,
-			sandbox,
-			svg,
-			seriesOptions,
-			sourceWidth,
-			sourceHeight,
-			cssWidth,
-			cssHeight,
-			options = merge(chart.options, additionalOptions); // copy the options and add extra options
-
-		// IE compatibility hack for generating SVG content that it doesn't really understand
-		if (!doc.createElementNS) {
-			/*jslint unparam: true*//* allow unused parameter ns in function below */
-			doc.createElementNS = function (ns, tagName) {
-				return doc.createElement(tagName);
-			};
-			/*jslint unparam: false*/
-		}
-
-		// create a sandbox where a new chart will be generated
-		sandbox = createElement(DIV, null, {
-			position: ABSOLUTE,
-			top: '-9999em',
-			width: chart.chartWidth + PX,
-			height: chart.chartHeight + PX
-		}, doc.body);
-		
-		// get the source size
-		cssWidth = chart.renderTo.style.width;
-		cssHeight = chart.renderTo.style.height;
-		sourceWidth = options.exporting.sourceWidth ||
-			options.chart.width ||
-			(/px$/.test(cssWidth) && parseInt(cssWidth, 10)) ||
-			600;
-		sourceHeight = options.exporting.sourceHeight ||
-			options.chart.height ||
-			(/px$/.test(cssHeight) && parseInt(cssHeight, 10)) ||
-			400;
-
-		// override some options
-		extend(options.chart, {
-			animation: false,
-			renderTo: sandbox,
-			forExport: true,
-			width: sourceWidth,
-			height: sourceHeight
-		});
-		options.exporting.enabled = false; // hide buttons in print
-		
-		// prepare for replicating the chart
-		options.series = [];
-		each(chart.series, function (serie) {
-			seriesOptions = merge(serie.options, {
-				animation: false, // turn off animation
-				showCheckbox: false,
-				visible: serie.visible
-			});
-
-			if (!seriesOptions.isInternal) { // used for the navigator series that has its own option set
-				options.series.push(seriesOptions);
-			}
-		});
-
-		// generate the chart copy
-		chartCopy = new Highcharts.Chart(options, chart.callback);
-
-		// reflect axis extremes in the export
-		each(['xAxis', 'yAxis'], function (axisType) {
-			each(chart[axisType], function (axis, i) {
-				var axisCopy = chartCopy[axisType][i],
-					extremes = axis.getExtremes(),
-					userMin = extremes.userMin,
-					userMax = extremes.userMax;
-
-				if (axisCopy && (userMin !== UNDEFINED || userMax !== UNDEFINED)) {
-					axisCopy.setExtremes(userMin, userMax, true, false);
-				}
-			});
-		});
-
-		// get the SVG from the container's innerHTML
-		svg = chartCopy.container.innerHTML;
-
-		// free up memory
-		options = null;
-		chartCopy.destroy();
-		discardElement(sandbox);
-
-		// sanitize
-		svg = svg
-			.replace(/zIndex="[^"]+"/g, '')
-			.replace(/isShadow="[^"]+"/g, '')
-			.replace(/symbolName="[^"]+"/g, '')
-			.replace(/jQuery[0-9]+="[^"]+"/g, '')
-			.replace(/url\([^#]+#/g, 'url(#')
-			.replace(/<svg /, '<svg xmlns:xlink="http://www.w3.org/1999/xlink" ')
-			.replace(/ href=/g, ' xlink:href=')
-			.replace(/\n/, ' ')
-			.replace(/<\/svg>.*?$/, '</svg>') // any HTML added to the container after the SVG (#894)
-			/* This fails in IE < 8
-			.replace(/([0-9]+)\.([0-9]+)/g, function(s1, s2, s3) { // round off to save weight
-				return s2 +'.'+ s3[0];
-			})*/
-
-			// Replace HTML entities, issue #347
-			.replace(/&nbsp;/g, '\u00A0') // no-break space
-			.replace(/&shy;/g,  '\u00AD') // soft hyphen
-
-			// IE specific
-			.replace(/<IMG /g, '<image ')
-			.replace(/height=([^" ]+)/g, 'height="$1"')
-			.replace(/width=([^" ]+)/g, 'width="$1"')
-			.replace(/hc-svg-href="([^"]+)">/g, 'xlink:href="$1"/>')
-			.replace(/id=([^" >]+)/g, 'id="$1"')
-			.replace(/class=([^" >]+)/g, 'class="$1"')
-			.replace(/ transform /g, ' ')
-			.replace(/:(path|rect)/g, '$1')
-			.replace(/style="([^"]+)"/g, function (s) {
-				return s.toLowerCase();
-			});
-
-		// IE9 beta bugs with innerHTML. Test again with final IE9.
-		svg = svg.replace(/(url\(#highcharts-[0-9]+)&quot;/g, '$1')
-			.replace(/&quot;/g, "'");
-
-		return svg;
-	},
-
-	/**
-	 * Submit the SVG representation of the chart to the server
-	 * @param {Object} options Exporting options. Possible members are url, type and width.
-	 * @param {Object} chartOptions Additional chart options for the SVG representation of the chart
-	 */
-	exportChart: function (options, chartOptions) {
-		options = options || {};
-		
-		var chart = this,
-			chartExportingOptions = chart.options.exporting,
-			svg = chart.getSVG(merge(
-				{ chart: { borderRadius: 0 } },
-				chartExportingOptions.chartOptions,
-				chartOptions, 
-				{
-					exporting: {
-						sourceWidth: options.sourceWidth || chartExportingOptions.sourceWidth,
-						sourceHeight: options.sourceHeight || chartExportingOptions.sourceHeight
-					}
-				}
-			));
-
-		// merge the options
-		options = merge(chart.options.exporting, options);
-		
-		// do the post
-		Highcharts.post(options.url, {
-			filename: options.filename || 'chart',
-			type: options.type,
-			width: options.width || 0, // IE8 fails to post undefined correctly, so use 0
-			scale: options.scale || 2,
-			svg: svg
-		});
-
-	},
-	
-	/**
-	 * Print the chart
-	 */
-	print: function () {
-
-		var chart = this,
-			container = chart.container,
-			origDisplay = [],
-			origParent = container.parentNode,
-			body = doc.body,
-			childNodes = body.childNodes;
-
-		if (chart.isPrinting) { // block the button while in printing mode
-			return;
-		}
-
-		chart.isPrinting = true;
-
-		// hide all body content
-		each(childNodes, function (node, i) {
-			if (node.nodeType === 1) {
-				origDisplay[i] = node.style.display;
-				node.style.display = NONE;
-			}
-		});
-
-		// pull out the chart
-		body.appendChild(container);
-
-		// print
-		win.focus(); // #1510
-		win.print();
-
-		// allow the browser to prepare before reverting
-		setTimeout(function () {
-
-			// put the chart back in
-			origParent.appendChild(container);
-
-			// restore all body content
-			each(childNodes, function (node, i) {
-				if (node.nodeType === 1) {
-					node.style.display = origDisplay[i];
-				}
-			});
-
-			chart.isPrinting = false;
-
-		}, 1000);
-
-	},
-
-	/**
-	 * Display a popup menu for choosing the export type
-	 *
-	 * @param {String} className An identifier for the menu
-	 * @param {Array} items A collection with text and onclicks for the items
-	 * @param {Number} x The x position of the opener button
-	 * @param {Number} y The y position of the opener button
-	 * @param {Number} width The width of the opener button
-	 * @param {Number} height The height of the opener button
-	 */
-	contextMenu: function (className, items, x, y, width, height, button) {
-		var chart = this,
-			navOptions = chart.options.navigation,
-			menuItemStyle = navOptions.menuItemStyle,
-			chartWidth = chart.chartWidth,
-			chartHeight = chart.chartHeight,
-			cacheName = 'cache-' + className,
-			menu = chart[cacheName],
-			menuPadding = mathMax(width, height), // for mouse leave detection
-			boxShadow = '3px 3px 10px #888',
-			innerMenu,
-			hide,
-			hideTimer,
-			menuStyle;
-
-		// create the menu only the first time
-		if (!menu) {
-
-			// create a HTML element above the SVG
-			chart[cacheName] = menu = createElement(DIV, {
-				className: className
-			}, {
-				position: ABSOLUTE,
-				zIndex: 1000,
-				padding: menuPadding + PX
-			}, chart.container);
-
-			innerMenu = createElement(DIV, null,
-				extend({
-					MozBoxShadow: boxShadow,
-					WebkitBoxShadow: boxShadow,
-					boxShadow: boxShadow
-				}, navOptions.menuStyle), menu);
-
-			// hide on mouse out
-			hide = function () {
-				css(menu, { display: NONE });
-				if (button) {
-					button.setState(0);
-				}
-				chart.openMenu = false;
-			};
-
-			// Hide the menu some time after mouse leave (#1357)
-			addEvent(menu, 'mouseleave', function () {
-				hideTimer = setTimeout(hide, 500);
-			});
-			addEvent(menu, 'mouseenter', function () {
-				clearTimeout(hideTimer);
-			});
-			// Hide it on clicking or touching outside the menu (#2258)
-			addEvent(document, 'mousedown', function (e) {
-				if (!chart.pointer.inClass(e.target, className)) {
-					hide();
-				}
-			});
-
-
-			// create the items
-			each(items, function (item) {
-				if (item) {
-					var element = item.separator ? 
-						createElement('hr', null, null, innerMenu) :
-						createElement(DIV, {
-							onmouseover: function () {
-								css(this, navOptions.menuItemHoverStyle);
-							},
-							onmouseout: function () {
-								css(this, menuItemStyle);
-							},
-							onclick: function () {
-								hide();
-								item.onclick.apply(chart, arguments);
-							},
-							innerHTML: item.text || chart.options.lang[item.textKey]
-						}, extend({
-							cursor: 'pointer'
-						}, menuItemStyle), innerMenu);
-
-
-					// Keep references to menu divs to be able to destroy them
-					chart.exportDivElements.push(element);
-				}
-			});
-
-			// Keep references to menu and innerMenu div to be able to destroy them
-			chart.exportDivElements.push(innerMenu, menu);
-
-			chart.exportMenuWidth = menu.offsetWidth;
-			chart.exportMenuHeight = menu.offsetHeight;
-		}
-
-		menuStyle = { display: 'block' };
-
-		// if outside right, right align it
-		if (x + chart.exportMenuWidth > chartWidth) {
-			menuStyle.right = (chartWidth - x - width - menuPadding) + PX;
-		} else {
-			menuStyle.left = (x - menuPadding) + PX;
-		}
-		// if outside bottom, bottom align it
-		if (y + height + chart.exportMenuHeight > chartHeight && button.alignOptions.verticalAlign !== 'top') {
-			menuStyle.bottom = (chartHeight - y - menuPadding)  + PX;
-		} else {
-			menuStyle.top = (y + height - menuPadding) + PX;
-		}
-
-		css(menu, menuStyle);
-		chart.openMenu = true;
-	},
-
-	/**
-	 * Add the export button to the chart
-	 */
-	addButton: function (options) {
-		var chart = this,
-			renderer = chart.renderer,
-			btnOptions = merge(chart.options.navigation.buttonOptions, options),
-			onclick = btnOptions.onclick,
-			menuItems = btnOptions.menuItems,
-			symbol,
-			button,
-			symbolAttr = {
-				stroke: btnOptions.symbolStroke,
-				fill: btnOptions.symbolFill
-			},
-			symbolSize = btnOptions.symbolSize || 12;
-		if (!chart.btnCount) {
-			chart.btnCount = 0;
-		}
-
-		// Keeps references to the button elements
-		if (!chart.exportDivElements) {
-			chart.exportDivElements = [];
-			chart.exportSVGElements = [];
-		}
-
-		if (btnOptions.enabled === false) {
-			return;
-		}
-
-
-		var attr = btnOptions.theme,
-			states = attr.states,
-			hover = states && states.hover,
-			select = states && states.select,
-			callback;
-
-		delete attr.states;
-
-		if (onclick) {
-			callback = function () {
-				onclick.apply(chart, arguments);
-			};
-
-		} else if (menuItems) {
-			callback = function () {
-				chart.contextMenu(
-					button.menuClassName, 
-					menuItems, 
-					button.translateX, 
-					button.translateY, 
-					button.width, 
-					button.height,
-					button
-				);
-				button.setState(2);
-			};
-		}
-
-
-		if (btnOptions.text && btnOptions.symbol) {
-			attr.paddingLeft = Highcharts.pick(attr.paddingLeft, 25);
-		
-		} else if (!btnOptions.text) {
-			extend(attr, {
-				width: btnOptions.width,
-				height: btnOptions.height,
-				padding: 0
-			});
-		}
-
-		button = renderer.button(btnOptions.text, 0, 0, callback, attr, hover, select)
-			.attr({
-				title: chart.options.lang[btnOptions._titleKey],
-				'stroke-linecap': 'round'
-			});
-		button.menuClassName = options.menuClassName || PREFIX + 'menu-' + chart.btnCount++;
-
-		if (btnOptions.symbol) {
-			symbol = renderer.symbol(
-					btnOptions.symbol,
-					btnOptions.symbolX - (symbolSize / 2),
-					btnOptions.symbolY - (symbolSize / 2),
-					symbolSize,				
-					symbolSize
-				)
-				.attr(extend(symbolAttr, {
-					'stroke-width': btnOptions.symbolStrokeWidth || 1,
-					zIndex: 1
-				})).add(button);
-		}
-
-		button.add()
-			.align(extend(btnOptions, {
-				width: button.width,
-				x: Highcharts.pick(btnOptions.x, buttonOffset) // #1654
-			}), true, 'spacingBox');
-
-		buttonOffset += (button.width + btnOptions.buttonSpacing) * (btnOptions.align === 'right' ? -1 : 1);
-
-		chart.exportSVGElements.push(button, symbol);
-
-	},
-
-	/**
-	 * Destroy the buttons.
-	 */
-	destroyExport: function (e) {
-		var chart = e.target,
-			i,
-			elem;
-
-		// Destroy the extra buttons added
-		for (i = 0; i < chart.exportSVGElements.length; i++) {
-			elem = chart.exportSVGElements[i];
-			
-			// Destroy and null the svg/vml elements
-			if (elem) { // #1822
-				elem.onclick = elem.ontouchstart = null;
-				chart.exportSVGElements[i] = elem.destroy();
-			}
-		}
-
-		// Destroy the divs for the menu
-		for (i = 0; i < chart.exportDivElements.length; i++) {
-			elem = chart.exportDivElements[i];
-
-			// Remove the event handler
-			removeEvent(elem, 'mouseleave');
-
-			// Remove inline events
-			chart.exportDivElements[i] = elem.onmouseout = elem.onmouseover = elem.ontouchstart = elem.onclick = null;
-
-			// Destroy the div by moving to garbage bin
-			discardElement(elem);
-		}
-	}
-});
-
-
-symbols.menu = function (x, y, width, height) {
-	var arr = [
-		M, x, y + 2.5,
-		L, x + width, y + 2.5,
-		M, x, y + height / 2 + 0.5,
-		L, x + width, y + height / 2 + 0.5,
-		M, x, y + height - 1.5,
-		L, x + width, y + height - 1.5
-	];
-	return arr;
-};
-
-// Add the buttons on chart load
-Chart.prototype.callbacks.push(function (chart) {
-	var n,
-		exportingOptions = chart.options.exporting,
-		buttons = exportingOptions.buttons;
-
-	buttonOffset = 0;
-
-	if (exportingOptions.enabled !== false) {
-
-		for (n in buttons) {
-			chart.addButton(buttons[n]);
-		}
-
-		// Destroy the export elements at chart destroy
-		addEvent(chart, 'destroy', chart.destroyExport);
-	}
-
-});
-
-
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/modules/funnel.js b/server/public/ueditor/third-party/highcharts/modules/funnel.js
deleted file mode 100644
index 172ad01..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/funnel.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- 
- Highcharts funnel module, Beta
-
- (c) 2010-2012 Torstein H酶nsi
-
- License: www.highcharts.com/license
-*/
-(function(d){var u=d.getOptions().plotOptions,p=d.seriesTypes,D=d.merge,z=function(){},A=d.each;u.funnel=D(u.pie,{center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",dataLabels:{connectorWidth:1,connectorColor:"#606060"},size:!0,states:{select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}}});p.funnel=d.extendClass(p.pie,{type:"funnel",animate:z,translate:function(){var a=function(k,a){return/%$/.test(k)?a*parseInt(k,10)/100:parseInt(k,10)},g=0,e=this.chart,f=e.plotWidth,
-e=e.plotHeight,h=0,c=this.options,C=c.center,b=a(C[0],f),d=a(C[0],e),p=a(c.width,f),i,q,j=a(c.height,e),r=a(c.neckWidth,f),s=a(c.neckHeight,e),v=j-s,a=this.data,w,x,u=c.dataLabels.position==="left"?1:0,y,m,B,n,l,t,o;this.getWidthAt=q=function(k){return k>j-s||j===s?r:r+(p-r)*((j-s-k)/(j-s))};this.getX=function(k,a){return b+(a?-1:1)*(q(k)/2+c.dataLabels.distance)};this.center=[b,d,j];this.centerX=b;A(a,function(a){g+=a.y});A(a,function(a){o=null;x=g?a.y/g:0;m=d-j/2+h*j;l=m+x*j;i=q(m);y=b-i/2;B=y+
-i;i=q(l);n=b-i/2;t=n+i;m>v?(y=n=b-r/2,B=t=b+r/2):l>v&&(o=l,i=q(v),n=b-i/2,t=n+i,l=v);w=["M",y,m,"L",B,m,t,l];o&&w.push(t,o,n,o);w.push(n,l,"Z");a.shapeType="path";a.shapeArgs={d:w};a.percentage=x*100;a.plotX=b;a.plotY=(m+(o||l))/2;a.tooltipPos=[b,a.plotY];a.slice=z;a.half=u;h+=x});this.setTooltipPoints()},drawPoints:function(){var a=this,g=a.options,e=a.chart.renderer;A(a.data,function(f){var h=f.graphic,c=f.shapeArgs;h?h.animate(c):f.graphic=e.path(c).attr({fill:f.color,stroke:g.borderColor,"stroke-width":g.borderWidth}).add(a.group)})},
-sortByAngle:z,drawDataLabels:function(){var a=this.data,g=this.options.dataLabels.distance,e,f,h,c=a.length,d,b;for(this.center[2]-=2*g;c--;)h=a[c],f=(e=h.half)?1:-1,b=h.plotY,d=this.getX(b,e),h.labelPos=[0,b,d+(g-5)*f,b,d+g*f,b,e?"right":"left",0];p.pie.prototype.drawDataLabels.call(this)}})})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/modules/funnel.src.js b/server/public/ueditor/third-party/highcharts/modules/funnel.src.js
deleted file mode 100644
index 983d7ff..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/funnel.src.js
+++ /dev/null
@@ -1,289 +0,0 @@
-/**
- * @license 
- * Highcharts funnel module, Beta
- *
- * (c) 2010-2012 Torstein H酶nsi
- *
- * License: www.highcharts.com/license
- */
-
-/*global Highcharts */
-(function (Highcharts) {
-	
-'use strict';
-
-// create shortcuts
-var defaultOptions = Highcharts.getOptions(),
-	defaultPlotOptions = defaultOptions.plotOptions,
-	seriesTypes = Highcharts.seriesTypes,
-	merge = Highcharts.merge,
-	noop = function () {},
-	each = Highcharts.each;
-
-// set default options
-defaultPlotOptions.funnel = merge(defaultPlotOptions.pie, {
-	center: ['50%', '50%'],
-	width: '90%',
-	neckWidth: '30%',
-	height: '100%',
-	neckHeight: '25%',
-
-	dataLabels: {
-		//position: 'right',
-		connectorWidth: 1,
-		connectorColor: '#606060'
-	},
-	size: true, // to avoid adapting to data label size in Pie.drawDataLabels
-	states: {
-		select: {
-			color: '#C0C0C0',
-			borderColor: '#000000',
-			shadow: false
-		}
-	}	
-});
-
-
-seriesTypes.funnel = Highcharts.extendClass(seriesTypes.pie, {
-	
-	type: 'funnel',
-	animate: noop,
-
-	/**
-	 * Overrides the pie translate method
-	 */
-	translate: function () {
-		
-		var 
-			// Get positions - either an integer or a percentage string must be given
-			getLength = function (length, relativeTo) {
-				return (/%$/).test(length) ?
-					relativeTo * parseInt(length, 10) / 100 :
-					parseInt(length, 10);
-			},
-			
-			sum = 0,
-			series = this,
-			chart = series.chart,
-			plotWidth = chart.plotWidth,
-			plotHeight = chart.plotHeight,
-			cumulative = 0, // start at top
-			options = series.options,
-			center = options.center,
-			centerX = getLength(center[0], plotWidth),
-			centerY = getLength(center[0], plotHeight),
-			width = getLength(options.width, plotWidth),
-			tempWidth,
-			getWidthAt,
-			height = getLength(options.height, plotHeight),
-			neckWidth = getLength(options.neckWidth, plotWidth),
-			neckHeight = getLength(options.neckHeight, plotHeight),
-			neckY = height - neckHeight,
-			data = series.data,
-			path,
-			fraction,
-			half = options.dataLabels.position === 'left' ? 1 : 0,
-
-			x1, 
-			y1, 
-			x2, 
-			x3, 
-			y3, 
-			x4, 
-			y5;
-
-		// Return the width at a specific y coordinate
-		series.getWidthAt = getWidthAt = function (y) {
-			return y > height - neckHeight || height === neckHeight ?
-				neckWidth :
-				neckWidth + (width - neckWidth) * ((height - neckHeight - y) / (height - neckHeight));
-		};
-		series.getX = function (y, half) {
-			return centerX + (half ? -1 : 1) * ((getWidthAt(y) / 2) + options.dataLabels.distance);
-		};
-
-		// Expose
-		series.center = [centerX, centerY, height];
-		series.centerX = centerX;
-
-		/*
-		 * Individual point coordinate naming:
-		 *
-		 * x1,y1 _________________ x2,y1
-		 *  \                         /
-		 *   \                       /
-		 *    \                     /
-		 *     \                   /
-		 *      \                 /
-		 *     x3,y3 _________ x4,y3
-		 *
-		 * Additional for the base of the neck:
-		 *
-		 *       |               |
-		 *       |               |
-		 *       |               |
-		 *     x3,y5 _________ x4,y5
-		 */
-
-
-
-
-		// get the total sum
-		each(data, function (point) {
-			sum += point.y;
-		});
-
-		each(data, function (point) {
-			// set start and end positions
-			y5 = null;
-			fraction = sum ? point.y / sum : 0;
-			y1 = centerY - height / 2 + cumulative * height;
-			y3 = y1 + fraction * height;
-			//tempWidth = neckWidth + (width - neckWidth) * ((height - neckHeight - y1) / (height - neckHeight));
-			tempWidth = getWidthAt(y1);
-			x1 = centerX - tempWidth / 2;
-			x2 = x1 + tempWidth;
-			tempWidth = getWidthAt(y3);
-			x3 = centerX - tempWidth / 2;
-			x4 = x3 + tempWidth;
-
-			// the entire point is within the neck
-			if (y1 > neckY) {
-				x1 = x3 = centerX - neckWidth / 2;
-				x2 = x4 = centerX + neckWidth / 2;
-			
-			// the base of the neck
-			} else if (y3 > neckY) {
-				y5 = y3;
-
-				tempWidth = getWidthAt(neckY);
-				x3 = centerX - tempWidth / 2;
-				x4 = x3 + tempWidth;
-
-				y3 = neckY;
-			}
-
-			// save the path
-			path = [
-				'M',
-				x1, y1,
-				'L',
-				x2, y1,
-				x4, y3
-			];
-			if (y5) {
-				path.push(x4, y5, x3, y5);
-			}
-			path.push(x3, y3, 'Z');
-
-			// prepare for using shared dr
-			point.shapeType = 'path';
-			point.shapeArgs = { d: path };
-
-
-			// for tooltips and data labels
-			point.percentage = fraction * 100;
-			point.plotX = centerX;
-			point.plotY = (y1 + (y5 || y3)) / 2;
-
-			// Placement of tooltips and data labels
-			point.tooltipPos = [
-				centerX,
-				point.plotY
-			];
-
-			// Slice is a noop on funnel points
-			point.slice = noop;
-			
-			// Mimicking pie data label placement logic
-			point.half = half;
-
-			cumulative += fraction;
-		});
-
-
-		series.setTooltipPoints();
-	},
-	/**
-	 * Draw a single point (wedge)
-	 * @param {Object} point The point object
-	 * @param {Object} color The color of the point
-	 * @param {Number} brightness The brightness relative to the color
-	 */
-	drawPoints: function () {
-		var series = this,
-			options = series.options,
-			chart = series.chart,
-			renderer = chart.renderer;
-
-		each(series.data, function (point) {
-			
-			var graphic = point.graphic,
-				shapeArgs = point.shapeArgs;
-
-			if (!graphic) { // Create the shapes
-				point.graphic = renderer.path(shapeArgs).
-					attr({
-						fill: point.color,
-						stroke: options.borderColor,
-						'stroke-width': options.borderWidth
-					}).
-					add(series.group);
-					
-			} else { // Update the shapes
-				graphic.animate(shapeArgs);
-			}
-		});
-	},
-
-	/**
-	 * Funnel items don't have angles (#2289)
-	 */
-	sortByAngle: noop,
-	
-	/**
-	 * Extend the pie data label method
-	 */
-	drawDataLabels: function () {
-		var data = this.data,
-			labelDistance = this.options.dataLabels.distance,
-			leftSide,
-			sign,
-			point,
-			i = data.length,
-			x,
-			y;
-		
-		// In the original pie label anticollision logic, the slots are distributed
-		// from one labelDistance above to one labelDistance below the pie. In funnels
-		// we don't want this.
-		this.center[2] -= 2 * labelDistance;
-		
-		// Set the label position array for each point.
-		while (i--) {
-			point = data[i];
-			leftSide = point.half;
-			sign = leftSide ? 1 : -1;
-			y = point.plotY;
-			x = this.getX(y, leftSide);
-				
-			// set the anchor point for data labels
-			point.labelPos = [
-				0, // first break of connector
-				y, // a/a
-				x + (labelDistance - 5) * sign, // second break, right outside point shape
-				y, // a/a
-				x + labelDistance * sign, // landing point for connector
-				y, // a/a
-				leftSide ? 'right' : 'left', // alignment
-				0 // center angle
-			];
-		}
-		
-		seriesTypes.pie.prototype.drawDataLabels.call(this);
-	}
-
-});
-
-
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/modules/heatmap.js b/server/public/ueditor/third-party/highcharts/modules/heatmap.js
deleted file mode 100644
index c487e99..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/heatmap.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(b){var k=b.seriesTypes,l=b.each;k.heatmap=b.extendClass(k.map,{colorKey:"z",useMapGeometry:!1,pointArrayMap:["y","z"],translate:function(){var c=this,b=c.options,i=Number.MAX_VALUE,j=Number.MIN_VALUE;c.generatePoints();l(c.data,function(a){var e=a.x,f=a.y,d=a.z,g=(b.colsize||1)/2,h=(b.rowsize||1)/2;a.path=["M",e-g,f-h,"L",e+g,f-h,"L",e+g,f+h,"L",e-g,f+h,"Z"];a.shapeType="path";a.shapeArgs={d:c.translatePath(a.path)};typeof d==="number"&&(d>j?j=d:d<i&&(i=d))});c.translateColors(i,j)},getBox:function(){}})})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/modules/heatmap.src.js b/server/public/ueditor/third-party/highcharts/modules/heatmap.src.js
deleted file mode 100644
index 59006c5..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/heatmap.src.js
+++ /dev/null
@@ -1,53 +0,0 @@
-(function (Highcharts) {
-	var seriesTypes = Highcharts.seriesTypes,
-		each = Highcharts.each;
-	
-	seriesTypes.heatmap = Highcharts.extendClass(seriesTypes.map, {
-		colorKey: 'z',
-		useMapGeometry: false,
-		pointArrayMap: ['y', 'z'],
-		translate: function () {
-			var series = this,
-				options = series.options,
-				dataMin = Number.MAX_VALUE,
-				dataMax = Number.MIN_VALUE;
-
-			series.generatePoints();
-	
-			each(series.data, function (point) {
-				var x = point.x,
-					y = point.y,
-					value = point.z,
-					xPad = (options.colsize || 1) / 2,
-					yPad = (options.rowsize || 1) / 2;
-
-				point.path = [
-					'M', x - xPad, y - yPad,
-					'L', x + xPad, y - yPad,
-					'L', x + xPad, y + yPad,
-					'L', x - xPad, y + yPad,
-					'Z'
-				];
-				
-				point.shapeType = 'path';
-				point.shapeArgs = {
-					d: series.translatePath(point.path)
-				};
-				
-				if (typeof value === 'number') {
-					if (value > dataMax) {
-						dataMax = value;
-					} else if (value < dataMin) {
-						dataMin = value;
-					}
-				}
-			});
-			
-			series.translateColors(dataMin, dataMax);
-		},
-		
-		getBox: function () {}
-			
-	});
-	
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/modules/map.js b/server/public/ueditor/third-party/highcharts/modules/map.js
deleted file mode 100644
index b9ac2e1..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/map.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Map plugin v0.1 for Highcharts
-
- (c) 2011-2013 Torstein H酶nsi
-
- License: www.highcharts.com/license
-*/
-(function(g){function x(a,b,c){for(var d=4,e=[];d--;)e[d]=Math.round(b.rgba[d]+(a.rgba[d]-b.rgba[d])*(1-c));return"rgba("+e.join(",")+")"}var r=g.Axis,y=g.Chart,s=g.Point,z=g.Pointer,l=g.each,v=g.extend,p=g.merge,n=g.pick,A=g.numberFormat,B=g.getOptions(),k=g.seriesTypes,q=B.plotOptions,t=g.wrap,u=g.Color,w=function(){};B.mapNavigation={buttonOptions:{align:"right",verticalAlign:"bottom",x:0,width:18,height:18,style:{fontSize:"15px",fontWeight:"bold",textAlign:"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(0.5)},
-text:"+",y:-32},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:0}}};g.splitPath=function(a){var b,a=a.replace(/([A-Za-z])/g," $1 "),a=a.replace(/^\s*/,"").replace(/\s*$/,""),a=a.split(/[ ,]+/);for(b=0;b<a.length;b++)/[a-zA-Z]/.test(a[b])||(a[b]=parseFloat(a[b]));return a};g.maps={};t(r.prototype,"getSeriesExtremes",function(a){var b=this.isXAxis,c,d,e=[];l(this.series,function(a,b){if(a.useMapGeometry)e[b]=a.xData,a.xData=[]});a.call(this);c=n(this.dataMin,Number.MAX_VALUE);d=n(this.dataMax,
-Number.MIN_VALUE);l(this.series,function(a,i){if(a.useMapGeometry)c=Math.min(c,a[b?"minX":"minY"]),d=Math.max(d,a[b?"maxX":"maxY"]),a.xData=e[i]});this.dataMin=c;this.dataMax=d});t(r.prototype,"setAxisTranslation",function(a){var b=this.chart,c=b.plotWidth/b.plotHeight,d=this.isXAxis,e=b.xAxis[0];a.call(this);if(b.options.chart.type==="map"&&!d&&e.transA!==void 0)this.transA=e.transA=Math.min(this.transA,e.transA),a=(e.max-e.min)/(this.max-this.min),e=a>c?this:e,c=(e.max-e.min)*e.transA,e.minPixelPadding=
-(e.len-c)/2});t(y.prototype,"render",function(a){var b=this,c=b.options.mapNavigation;a.call(b);b.renderMapNavigation();c.zoomOnDoubleClick&&g.addEvent(b.container,"dblclick",function(a){b.pointer.onContainerDblClick(a)});c.zoomOnMouseWheel&&g.addEvent(b.container,document.onmousewheel===void 0?"DOMMouseScroll":"mousewheel",function(a){b.pointer.onContainerMouseWheel(a)})});v(z.prototype,{onContainerDblClick:function(a){var b=this.chart,a=this.normalize(a);b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-
-b.plotTop)&&b.mapZoom(0.5,b.xAxis[0].toValue(a.chartX),b.yAxis[0].toValue(a.chartY))},onContainerMouseWheel:function(a){var b=this.chart,c,a=this.normalize(a);c=a.detail||-(a.wheelDelta/120);b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&b.mapZoom(c>0?2:0.5,b.xAxis[0].toValue(a.chartX),b.yAxis[0].toValue(a.chartY))}});t(z.prototype,"init",function(a,b,c){a.call(this,b,c);if(c.mapNavigation.enableTouchZoom)this.pinchX=this.pinchHor=this.pinchY=this.pinchVert=!0});v(y.prototype,{renderMapNavigation:function(){var a=
-this,b=this.options.mapNavigation,c=b.buttons,d,e,f,i=function(){this.handler.call(a)};if(b.enableButtons)for(d in c)if(c.hasOwnProperty(d))f=p(b.buttonOptions,c[d]),e=a.renderer.button(f.text,0,0,i).attr({width:f.width,height:f.height}).css(f.style).add(),e.handler=f.onclick,e.align(v(f,{width:e.width,height:e.height}),null,"spacingBox")},fitToBox:function(a,b){l([["x","width"],["y","height"]],function(c){var d=c[0],c=c[1];a[d]+a[c]>b[d]+b[c]&&(a[c]>b[c]?(a[c]=b[c],a[d]=b[d]):a[d]=b[d]+b[c]-a[c]);
-a[c]>b[c]&&(a[c]=b[c]);a[d]<b[d]&&(a[d]=b[d])});return a},mapZoom:function(a,b,c){if(!this.isMapZooming){var d=this,e=d.xAxis[0],f=e.max-e.min,i=n(b,e.min+f/2),b=f*a,f=d.yAxis[0],h=f.max-f.min,c=n(c,f.min+h/2);a*=h;i-=b/2;h=c-a/2;c=n(d.options.chart.animation,!0);b=d.fitToBox({x:i,y:h,width:b,height:a},{x:e.dataMin,y:f.dataMin,width:e.dataMax-e.dataMin,height:f.dataMax-f.dataMin});e.setExtremes(b.x,b.x+b.width,!1);f.setExtremes(b.y,b.y+b.height,!1);if(e=c?c.duration||500:0)d.isMapZooming=!0,setTimeout(function(){d.isMapZooming=
-!1},e);d.redraw()}}});q.map=p(q.scatter,{animation:!1,nullColor:"#F8F8F8",borderColor:"silver",borderWidth:1,marker:null,stickyTracking:!1,dataLabels:{verticalAlign:"middle"},turboThreshold:0,tooltip:{followPointer:!0,pointFormat:"{point.name}: {point.y}<br/>"},states:{normal:{animation:!0}}});r=g.extendClass(s,{applyOptions:function(a,b){var c=s.prototype.applyOptions.call(this,a,b);if(c.path&&typeof c.path==="string")c.path=c.options.path=g.splitPath(c.path);return c},onMouseOver:function(){clearTimeout(this.colorInterval);
-s.prototype.onMouseOver.call(this)},onMouseOut:function(){var a=this,b=+new Date,c=u(a.options.color),d=u(a.pointAttr.hover.fill),e=a.series.options.states.normal.animation,f=e&&(e.duration||500);if(f&&c.rgba.length===4&&d.rgba.length===4)delete a.pointAttr[""].fill,clearTimeout(a.colorInterval),a.colorInterval=setInterval(function(){var e=(new Date-b)/f,h=a.graphic;e>1&&(e=1);h&&h.attr("fill",x(d,c,e));e>=1&&clearTimeout(a.colorInterval)},13);s.prototype.onMouseOut.call(a)}});k.map=g.extendClass(k.scatter,
-{type:"map",pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},colorKey:"y",pointClass:r,trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:w,supportsDrilldown:!0,getExtremesFromAll:!0,useMapGeometry:!0,init:function(a){var b=this,c=a.options.legend.valueDecimals,d=[],e,f,i,h,j,o,m;o=a.options.legend.layout==="horizontal";g.Series.prototype.init.apply(this,arguments);j=b.options.colorRange;if(h=b.options.valueRanges)l(h,function(a){f=a.from;i=a.to;e=
-"";f===void 0?e="< ":i===void 0&&(e="> ");f!==void 0&&(e+=A(f,c));f!==void 0&&i!==void 0&&(e+=" - ");i!==void 0&&(e+=A(i,c));d.push(g.extend({chart:b.chart,name:e,options:{},drawLegendSymbol:k.area.prototype.drawLegendSymbol,visible:!0,setState:function(){},setVisible:function(){}},a))}),b.legendItems=d;else if(j)f=j.from,i=j.to,h=j.fromLabel,j=j.toLabel,m=o?[0,0,1,0]:[0,1,0,0],o||(o=h,h=j,j=o),o={linearGradient:{x1:m[0],y1:m[1],x2:m[2],y2:m[3]},stops:[[0,f],[1,i]]},d=[{chart:b.chart,options:{},fromLabel:h,
-toLabel:j,color:o,drawLegendSymbol:this.drawLegendSymbolGradient,visible:!0,setState:function(){},setVisible:function(){}}],b.legendItems=d},drawLegendSymbol:k.area.prototype.drawLegendSymbol,drawLegendSymbolGradient:function(a,b){var c=a.options.symbolPadding,d=n(a.options.padding,8),e,f,i=this.chart.renderer.fontMetrics(a.options.itemStyle.fontSize).h,h=a.options.layout==="horizontal",j;j=n(a.options.rectangleLength,200);h?(e=-(c/2),f=0):(e=-j+a.baseline-c/2,f=d+i);b.fromText=this.chart.renderer.text(b.fromLabel,
-f,e).attr({zIndex:2}).add(b.legendGroup);f=b.fromText.getBBox();b.legendSymbol=this.chart.renderer.rect(h?f.x+f.width+c:f.x-i-c,f.y,h?j:i,h?i:j,2).attr({zIndex:1}).add(b.legendGroup);j=b.legendSymbol.getBBox();b.toText=this.chart.renderer.text(b.toLabel,j.x+j.width+c,h?e:j.y+j.height-c).attr({zIndex:2}).add(b.legendGroup);e=b.toText.getBBox();h?(a.offsetWidth=f.width+j.width+e.width+c*2+d,a.itemY=i+d):(a.offsetWidth=Math.max(f.width,e.width)+c+j.width+d,a.itemY=j.height+d,a.itemX=c)},getBox:function(a){var b=
-Number.MIN_VALUE,c=Number.MAX_VALUE,d=Number.MIN_VALUE,e=Number.MAX_VALUE;l(a||this.options.data,function(a){for(var i=a.path,h=i.length,j=!1,g=Number.MIN_VALUE,m=Number.MAX_VALUE,k=Number.MIN_VALUE,l=Number.MAX_VALUE;h--;)typeof i[h]==="number"&&!isNaN(i[h])&&(j?(g=Math.max(g,i[h]),m=Math.min(m,i[h])):(k=Math.max(k,i[h]),l=Math.min(l,i[h])),j=!j);a._maxX=g;a._minX=m;a._maxY=k;a._minY=l;b=Math.max(b,g);c=Math.min(c,m);d=Math.max(d,k);e=Math.min(e,l)});this.minY=e;this.maxY=d;this.minX=c;this.maxX=
-b},translatePath:function(a){var b=!1,c=this.xAxis,d=this.yAxis,e,a=[].concat(a);for(e=a.length;e--;)typeof a[e]==="number"&&(a[e]=b?Math.round(c.translate(a[e])):Math.round(d.len-d.translate(a[e])),b=!b);return a},setData:function(){g.Series.prototype.setData.apply(this,arguments);this.getBox()},translate:function(){var a=this,b=Number.MAX_VALUE,c=Number.MIN_VALUE;a.generatePoints();l(a.data,function(d){d.shapeType="path";d.shapeArgs={d:a.translatePath(d.path)};if(typeof d.y==="number")if(d.y>c)c=
-d.y;else if(d.y<b)b=d.y});a.translateColors(b,c)},translateColors:function(a,b){var c=this.options,d=c.valueRanges,e=c.colorRange,f=this.colorKey,i,h;e&&(i=u(e.from),h=u(e.to));l(this.data,function(g){var k=g[f],m,l,n;if(d)for(n=d.length;n--;){if(m=d[n],i=m.from,h=m.to,(i===void 0||k>=i)&&(h===void 0||k<=h)){l=m.color;break}}else e&&k!==void 0&&(m=1-(b-k)/(b-a),l=k===null?c.nullColor:x(i,h,m));if(l)g.color=null,g.options.color=l})},drawGraph:w,drawDataLabels:w,drawPoints:function(){var a=this.xAxis,
-b=this.yAxis,c=this.colorKey;l(this.data,function(a){a.plotY=1;if(a[c]===null)a[c]=0,a.isNull=!0});k.column.prototype.drawPoints.apply(this);l(this.data,function(d){var e=d.dataLabels,f=a.toPixels(d._minX,!0),g=a.toPixels(d._maxX,!0),h=b.toPixels(d._minY,!0),j=b.toPixels(d._maxY,!0);d.plotX=Math.round(f+(g-f)*n(e&&e.anchorX,0.5));d.plotY=Math.round(h+(j-h)*n(e&&e.anchorY,0.5));d.isNull&&(d[c]=null)});g.Series.prototype.drawDataLabels.call(this)},animateDrilldown:function(a){var b=this.chart.plotBox,
-c=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],d=c.bBox,e=this.chart.options.drilldown.animation;if(!a)a=Math.min(d.width/b.width,d.height/b.height),c.shapeArgs={scaleX:a,scaleY:a,translateX:d.x,translateY:d.y},l(this.points,function(a){a.graphic.attr(c.shapeArgs).animate({scaleX:1,scaleY:1,translateX:0,translateY:0},e)}),delete this.animate},animateDrillupFrom:function(a){k.column.prototype.animateDrillupFrom.call(this,a)},animateDrillupTo:function(a){k.column.prototype.animateDrillupTo.call(this,
-a)}});q.mapline=p(q.map,{lineWidth:1,backgroundColor:"none"});k.mapline=g.extendClass(k.map,{type:"mapline",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth",fill:"backgroundColor"},drawLegendSymbol:k.line.prototype.drawLegendSymbol});q.mappoint=p(q.scatter,{dataLabels:{enabled:!0,format:"{point.name}",color:"black",style:{textShadow:"0 0 5px white"}}});k.mappoint=g.extendClass(k.scatter,{type:"mappoint"});g.Map=function(a,b){var c={endOnTick:!1,gridLineWidth:0,labels:{enabled:!1},lineWidth:0,
-minPadding:0,maxPadding:0,startOnTick:!1,tickWidth:0,title:null},d;d=a.series;a.series=null;a=p({chart:{type:"map",panning:"xy"},xAxis:c,yAxis:p(c,{reversed:!0})},a,{chart:{inverted:!1}});a.series=d;return new g.Chart(a,b)}})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/modules/map.src.js b/server/public/ueditor/third-party/highcharts/modules/map.src.js
deleted file mode 100644
index 671ed6c..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/map.src.js
+++ /dev/null
@@ -1,1002 +0,0 @@
-/**
- * @license Map plugin v0.1 for Highcharts
- *
- * (c) 2011-2013 Torstein H酶nsi
- *
- * License: www.highcharts.com/license
- */
-
-/* 
- * See www.highcharts.com/studies/world-map.htm for use case.
- *
- * To do:
- * - Optimize long variable names and alias adapter methods and Highcharts namespace variables
- * - Zoom and pan GUI
- */
-(function (Highcharts) {
-	var UNDEFINED,
-		Axis = Highcharts.Axis,
-		Chart = Highcharts.Chart,
-		Point = Highcharts.Point,
-		Pointer = Highcharts.Pointer,
-		each = Highcharts.each,
-		extend = Highcharts.extend,
-		merge = Highcharts.merge,
-		pick = Highcharts.pick,
-		numberFormat = Highcharts.numberFormat,
-		defaultOptions = Highcharts.getOptions(),
-		seriesTypes = Highcharts.seriesTypes,
-		plotOptions = defaultOptions.plotOptions,
-		wrap = Highcharts.wrap,
-		Color = Highcharts.Color,
-		noop = function () {};
-
-	
-
-	/*
-	 * Return an intermediate color between two colors, according to pos where 0
-	 * is the from color and 1 is the to color
-	 */
-	function tweenColors(from, to, pos) {
-		var i = 4,
-			rgba = [];
-
-		while (i--) {
-			rgba[i] = Math.round(
-				to.rgba[i] + (from.rgba[i] - to.rgba[i]) * (1 - pos)
-			);
-		}
-		return 'rgba(' + rgba.join(',') + ')';
-	}
-
-	// Set the default map navigation options
-	defaultOptions.mapNavigation = {
-		buttonOptions: {
-			align: 'right',
-			verticalAlign: 'bottom',
-			x: 0,
-			width: 18,
-			height: 18,
-			style: {
-				fontSize: '15px',
-				fontWeight: 'bold',
-				textAlign: 'center'
-			}
-		},
-		buttons: {
-			zoomIn: {
-				onclick: function () {
-					this.mapZoom(0.5);
-				},
-				text: '+',
-				y: -32
-			},
-			zoomOut: {
-				onclick: function () {
-					this.mapZoom(2);
-				},
-				text: '-',
-				y: 0
-			}
-		}
-		// enableButtons: false,
-		// enableTouchZoom: false,
-		// zoomOnDoubleClick: false,
-		// zoomOnMouseWheel: false
-
-	};
-	
-	/**
-	 * Utility for reading SVG paths directly.
-	 */
-	Highcharts.splitPath = function (path) {
-		var i;
-
-		// Move letters apart
-		path = path.replace(/([A-Za-z])/g, ' $1 ');
-		// Trim
-		path = path.replace(/^\s*/, "").replace(/\s*$/, "");
-		
-		// Split on spaces and commas
-		path = path.split(/[ ,]+/);
-		
-		// Parse numbers
-		for (i = 0; i < path.length; i++) {
-			if (!/[a-zA-Z]/.test(path[i])) {
-				path[i] = parseFloat(path[i]);
-			}
-		}
-		return path;
-	};
-
-	// A placeholder for map definitions
-	Highcharts.maps = {};
-	
-	/**
-	 * Override to use the extreme coordinates from the SVG shape, not the
-	 * data values
-	 */
-	wrap(Axis.prototype, 'getSeriesExtremes', function (proceed) {
-		var isXAxis = this.isXAxis,
-			dataMin,
-			dataMax,
-			xData = [];
-
-		// Remove the xData array and cache it locally so that the proceed method doesn't use it
-		each(this.series, function (series, i) {
-			if (series.useMapGeometry) {
-				xData[i] = series.xData;
-				series.xData = [];
-			}
-		});
-
-		// Call base to reach normal cartesian series (like mappoint)
-		proceed.call(this);
-
-		// Run extremes logic for map and mapline
-		dataMin = pick(this.dataMin, Number.MAX_VALUE);
-		dataMax = pick(this.dataMax, Number.MIN_VALUE);
-		each(this.series, function (series, i) {
-			if (series.useMapGeometry) {
-				dataMin = Math.min(dataMin, series[isXAxis ? 'minX' : 'minY']);
-				dataMax = Math.max(dataMax, series[isXAxis ? 'maxX' : 'maxY']);
-				series.xData = xData[i]; // Reset xData array
-			}
-		});
-		
-		this.dataMin = dataMin;
-		this.dataMax = dataMax;
-	});
-	
-	/**
-	 * Override axis translation to make sure the aspect ratio is always kept
-	 */
-	wrap(Axis.prototype, 'setAxisTranslation', function (proceed) {
-		var chart = this.chart,
-			mapRatio,
-			plotRatio = chart.plotWidth / chart.plotHeight,
-			isXAxis = this.isXAxis,
-			adjustedAxisLength,
-			xAxis = chart.xAxis[0],
-			padAxis;
-		
-		// Run the parent method
-		proceed.call(this);
-		
-		// On Y axis, handle both
-		if (chart.options.chart.type === 'map' && !isXAxis && xAxis.transA !== UNDEFINED) {
-			
-			// Use the same translation for both axes
-			this.transA = xAxis.transA = Math.min(this.transA, xAxis.transA);
-			
-			mapRatio = (xAxis.max - xAxis.min) / (this.max - this.min);
-			
-			// What axis to pad to put the map in the middle
-			padAxis = mapRatio > plotRatio ? this : xAxis;
-			
-			// Pad it
-			adjustedAxisLength = (padAxis.max - padAxis.min) * padAxis.transA;
-			padAxis.minPixelPadding = (padAxis.len - adjustedAxisLength) / 2;
-		}
-	});
-
-
-	//--- Start zooming and panning features
-
-	wrap(Chart.prototype, 'render', function (proceed) {
-		var chart = this,
-			mapNavigation = chart.options.mapNavigation;
-
-		proceed.call(chart);
-
-		// Render the plus and minus buttons
-		chart.renderMapNavigation();
-
-		// Add the double click event
-		if (mapNavigation.zoomOnDoubleClick) {
-			Highcharts.addEvent(chart.container, 'dblclick', function (e) {
-				chart.pointer.onContainerDblClick(e);
-			});
-		}
-
-		// Add the mousewheel event
-		if (mapNavigation.zoomOnMouseWheel) {
-			Highcharts.addEvent(chart.container, document.onmousewheel === undefined ? 'DOMMouseScroll' : 'mousewheel', function (e) {
-				chart.pointer.onContainerMouseWheel(e);
-			});
-		}
-	});
-
-	// Extend the Pointer
-	extend(Pointer.prototype, {
-
-		/**
-		 * The event handler for the doubleclick event
-		 */
-		onContainerDblClick: function (e) {
-			var chart = this.chart;
-
-			e = this.normalize(e);
-
-			if (chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop)) {
-				chart.mapZoom(
-					0.5,
-					chart.xAxis[0].toValue(e.chartX),
-					chart.yAxis[0].toValue(e.chartY)
-				);
-			}
-		},
-
-		/**
-		 * The event handler for the mouse scroll event
-		 */
-		onContainerMouseWheel: function (e) {
-			var chart = this.chart,
-				delta;
-
-			e = this.normalize(e);
-
-			// Firefox uses e.detail, WebKit and IE uses wheelDelta
-			delta = e.detail || -(e.wheelDelta / 120);
-			if (chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop)) {
-				chart.mapZoom(
-					delta > 0 ? 2 : 0.5,
-					chart.xAxis[0].toValue(e.chartX),
-					chart.yAxis[0].toValue(e.chartY)
-				);
-			}
-		}
-	});
-	// Implement the pinchType option
-	wrap(Pointer.prototype, 'init', function (proceed, chart, options) {
-
-		proceed.call(this, chart, options);
-
-		// Pinch status
-		if (options.mapNavigation.enableTouchZoom) {
-			this.pinchX = this.pinchHor = 
-				this.pinchY = this.pinchVert = true;
-		}
-	});
-
-	// Add events to the Chart object itself
-	extend(Chart.prototype, {
-		renderMapNavigation: function () {
-			var chart = this,
-				options = this.options.mapNavigation,
-				buttons = options.buttons,
-				n,
-				button,
-				buttonOptions,
-				outerHandler = function () { 
-					this.handler.call(chart); 
-				};
-
-			if (options.enableButtons) {
-				for (n in buttons) {
-					if (buttons.hasOwnProperty(n)) {
-						buttonOptions = merge(options.buttonOptions, buttons[n]);
-
-						button = chart.renderer.button(buttonOptions.text, 0, 0, outerHandler)
-							.attr({
-								width: buttonOptions.width,
-								height: buttonOptions.height
-							})
-							.css(buttonOptions.style)
-							.add();
-						button.handler = buttonOptions.onclick;
-						button.align(extend(buttonOptions, { width: button.width, height: button.height }), null, 'spacingBox');
-					}
-				}
-			}
-		},
-
-		/**
-		 * Fit an inner box to an outer. If the inner box overflows left or right, align it to the sides of the
-		 * outer. If it overflows both sides, fit it within the outer. This is a pattern that occurs more places
-		 * in Highcharts, perhaps it should be elevated to a common utility function.
-		 */
-		fitToBox: function (inner, outer) {
-			each([['x', 'width'], ['y', 'height']], function (dim) {
-				var pos = dim[0],
-					size = dim[1];
-				if (inner[pos] + inner[size] > outer[pos] + outer[size]) { // right overflow
-					if (inner[size] > outer[size]) { // the general size is greater, fit fully to outer
-						inner[size] = outer[size];
-						inner[pos] = outer[pos];
-					} else { // align right
-						inner[pos] = outer[pos] + outer[size] - inner[size];
-					}
-				}
-				if (inner[size] > outer[size]) {
-					inner[size] = outer[size];
-				}
-				if (inner[pos] < outer[pos]) {
-					inner[pos] = outer[pos];
-				}
-				
-			});
-
-			return inner;
-		},
-
-		/**
-		 * Zoom the map in or out by a certain amount. Less than 1 zooms in, greater than 1 zooms out.
-		 */
-		mapZoom: function (howMuch, centerXArg, centerYArg) {
-
-			if (this.isMapZooming) {
-				return;
-			}
-
-			var chart = this,
-				xAxis = chart.xAxis[0],
-				xRange = xAxis.max - xAxis.min,
-				centerX = pick(centerXArg, xAxis.min + xRange / 2),
-				newXRange = xRange * howMuch,
-				yAxis = chart.yAxis[0],
-				yRange = yAxis.max - yAxis.min,
-				centerY = pick(centerYArg, yAxis.min + yRange / 2),
-				newYRange = yRange * howMuch,
-				newXMin = centerX - newXRange / 2,
-				newYMin = centerY - newYRange / 2,
-				animation = pick(chart.options.chart.animation, true),
-				delay,
-				newExt = chart.fitToBox({
-					x: newXMin,
-					y: newYMin,
-					width: newXRange,
-					height: newYRange
-				}, {
-					x: xAxis.dataMin,
-					y: yAxis.dataMin,
-					width: xAxis.dataMax - xAxis.dataMin,
-					height: yAxis.dataMax - yAxis.dataMin
-				});
-
-			xAxis.setExtremes(newExt.x, newExt.x + newExt.width, false);
-			yAxis.setExtremes(newExt.y, newExt.y + newExt.height, false);
-
-			// Prevent zooming until this one is finished animating
-			delay = animation ? animation.duration || 500 : 0;
-			if (delay) {
-				chart.isMapZooming = true;
-				setTimeout(function () {
-					chart.isMapZooming = false;
-				}, delay);
-			}
-
-			chart.redraw();
-		}
-	});
-	
-	/**
-	 * Extend the default options with map options
-	 */
-	plotOptions.map = merge(plotOptions.scatter, {
-		animation: false, // makes the complex shapes slow
-		nullColor: '#F8F8F8',
-		borderColor: 'silver',
-		borderWidth: 1,
-		marker: null,
-		stickyTracking: false,
-		dataLabels: {
-			verticalAlign: 'middle'
-		},
-		turboThreshold: 0,
-		tooltip: {
-			followPointer: true,
-			pointFormat: '{point.name}: {point.y}<br/>'
-		},
-		states: {
-			normal: {
-				animation: true
-			}
-		}
-	});
-
-	var MapAreaPoint = Highcharts.extendClass(Point, {
-		/**
-		 * Extend the Point object to split paths
-		 */
-		applyOptions: function (options, x) {
-
-			var point = Point.prototype.applyOptions.call(this, options, x);
-
-			if (point.path && typeof point.path === 'string') {
-				point.path = point.options.path = Highcharts.splitPath(point.path);
-			}
-
-			return point;
-		},
-		/**
-		 * Stop the fade-out 
-		 */
-		onMouseOver: function () {
-			clearTimeout(this.colorInterval);
-			Point.prototype.onMouseOver.call(this);
-		},
-		/**
-		 * Custom animation for tweening out the colors. Animation reduces blinking when hovering
-		 * over islands and coast lines. We run a custom implementation of animation becuase we
-		 * need to be able to run this independently from other animations like zoom redraw. Also,
-		 * adding color animation to the adapters would introduce almost the same amount of code.
-		 */
-		onMouseOut: function () {
-			var point = this,
-				start = +new Date(),
-				normalColor = Color(point.options.color),
-				hoverColor = Color(point.pointAttr.hover.fill),
-				animation = point.series.options.states.normal.animation,
-				duration = animation && (animation.duration || 500);
-
-			if (duration && normalColor.rgba.length === 4 && hoverColor.rgba.length === 4) {
-				delete point.pointAttr[''].fill; // avoid resetting it in Point.setState
-
-				clearTimeout(point.colorInterval);
-				point.colorInterval = setInterval(function () {
-					var pos = (new Date() - start) / duration,
-						graphic = point.graphic;
-					if (pos > 1) {
-						pos = 1;
-					}
-					if (graphic) {
-						graphic.attr('fill', tweenColors(hoverColor, normalColor, pos));
-					}
-					if (pos >= 1) {
-						clearTimeout(point.colorInterval);
-					}
-				}, 13);
-			}
-			Point.prototype.onMouseOut.call(point);
-		}
-	});
-
-	/**
-	 * Add the series type
-	 */
-	seriesTypes.map = Highcharts.extendClass(seriesTypes.scatter, {
-		type: 'map',
-		pointAttrToOptions: { // mapping between SVG attributes and the corresponding options
-			stroke: 'borderColor',
-			'stroke-width': 'borderWidth',
-			fill: 'color'
-		},
-		colorKey: 'y',
-		pointClass: MapAreaPoint,
-		trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
-		getSymbol: noop,
-		supportsDrilldown: true,
-		getExtremesFromAll: true,
-		useMapGeometry: true, // get axis extremes from paths, not values
-		init: function (chart) {
-			var series = this,
-				valueDecimals = chart.options.legend.valueDecimals,
-				legendItems = [],
-				name,
-				from,
-				to,
-				fromLabel,
-				toLabel,
-				colorRange,
-				valueRanges,
-				gradientColor,
-				grad,
-				tmpLabel,
-				horizontal = chart.options.legend.layout === 'horizontal';
-
-			
-			Highcharts.Series.prototype.init.apply(this, arguments);
-			colorRange = series.options.colorRange;
-			valueRanges = series.options.valueRanges;
-
-			if (valueRanges) {
-				each(valueRanges, function (range) {
-					from = range.from;
-					to = range.to;
-					
-					// Assemble the default name. This can be overridden by legend.options.labelFormatter
-					name = '';
-					if (from === UNDEFINED) {
-						name = '< ';
-					} else if (to === UNDEFINED) {
-						name = '> ';
-					}
-					if (from !== UNDEFINED) {
-						name += numberFormat(from, valueDecimals);
-					}
-					if (from !== UNDEFINED && to !== UNDEFINED) {
-						name += ' - ';
-					}
-					if (to !== UNDEFINED) {
-						name += numberFormat(to, valueDecimals);
-					}
-					
-					// Add a mock object to the legend items
-					legendItems.push(Highcharts.extend({
-						chart: series.chart,
-						name: name,
-						options: {},
-						drawLegendSymbol: seriesTypes.area.prototype.drawLegendSymbol,
-						visible: true,
-						setState: function () {},
-						setVisible: function () {}
-					}, range));
-				});
-				series.legendItems = legendItems;
-
-			} else if (colorRange) {
-
-				from = colorRange.from;
-				to = colorRange.to;
-				fromLabel = colorRange.fromLabel;
-				toLabel = colorRange.toLabel;
-
-				// Flips linearGradient variables and label text.
-				grad = horizontal ? [0, 0, 1, 0] : [0, 1, 0, 0]; 
-				if (!horizontal) {
-					tmpLabel = fromLabel;
-					fromLabel = toLabel;
-					toLabel = tmpLabel;
-				} 
-
-				// Creates color gradient.
-				gradientColor = {
-					linearGradient: { x1: grad[0], y1: grad[1], x2: grad[2], y2: grad[3] },
-					stops: 
-					[
-						[0, from],
-						[1, to]
-					]
-				};
-
-				// Add a mock object to the legend items.
-				legendItems = [{
-					chart: series.chart,
-					options: {},
-					fromLabel: fromLabel,
-					toLabel: toLabel,
-					color: gradientColor,
-					drawLegendSymbol: this.drawLegendSymbolGradient,
-					visible: true,
-					setState: function () {},
-					setVisible: function () {}
-				}];
-
-				series.legendItems = legendItems;
-			}
-		},
-
-		/**
-		 * If neither valueRanges nor colorRanges are defined, use basic area symbol.
-		 */
-		drawLegendSymbol: seriesTypes.area.prototype.drawLegendSymbol,
-
-		/**
-		 * Gets the series' symbol in the legend and extended legend with more information.
-		 * 
-		 * @param {Object} legend The legend object
-		 * @param {Object} item The series (this) or point
-		 */
-		drawLegendSymbolGradient: function (legend, item) {
-			var spacing = legend.options.symbolPadding,
-				padding = pick(legend.options.padding, 8),
-				positionY,
-				positionX,
-				gradientSize = this.chart.renderer.fontMetrics(legend.options.itemStyle.fontSize).h,
-				horizontal = legend.options.layout === 'horizontal',
-				box1,
-				box2,
-				box3,
-				rectangleLength = pick(legend.options.rectangleLength, 200);
-
-			// Set local variables based on option.
-			if (horizontal) {
-				positionY = -(spacing / 2);
-				positionX = 0;
-			} else {
-				positionY = -rectangleLength + legend.baseline - (spacing / 2);
-				positionX = padding + gradientSize;
-			}
-
-			// Creates the from text.
-			item.fromText = this.chart.renderer.text(
-					item.fromLabel,	// Text.
-					positionX,		// Lower left x.
-					positionY		// Lower left y.
-				).attr({
-					zIndex: 2
-				}).add(item.legendGroup);
-			box1 = item.fromText.getBBox();
-
-			// Creates legend symbol.
-			// Ternary changes variables based on option.
-			item.legendSymbol = this.chart.renderer.rect(
-				horizontal ? box1.x + box1.width + spacing : box1.x - gradientSize - spacing,		// Upper left x.
-				box1.y,																				// Upper left y.
-				horizontal ? rectangleLength : gradientSize,											// Width.
-				horizontal ? gradientSize : rectangleLength,										// Height.
-				2																					// Corner radius.
-			).attr({
-				zIndex: 1
-			}).add(item.legendGroup);
-			box2 = item.legendSymbol.getBBox();
-
-			// Creates the to text.
-			// Vertical coordinate changed based on option.
-			item.toText = this.chart.renderer.text(
-					item.toLabel,
-					box2.x + box2.width + spacing,
-					horizontal ? positionY : box2.y + box2.height - spacing
-				).attr({
-					zIndex: 2
-				}).add(item.legendGroup);
-			box3 = item.toText.getBBox();
-
-			// Changes legend box settings based on option.
-			if (horizontal) {
-				legend.offsetWidth = box1.width + box2.width + box3.width + (spacing * 2) + padding;
-				legend.itemY = gradientSize + padding;
-			} else {
-				legend.offsetWidth = Math.max(box1.width, box3.width) + (spacing) + box2.width + padding;
-				legend.itemY = box2.height + padding;
-				legend.itemX = spacing;
-			}
-		},
-
-		/**
-		 * Get the bounding box of all paths in the map combined.
-		 */
-		getBox: function (paths) {
-			var maxX = Number.MIN_VALUE, 
-				minX =  Number.MAX_VALUE, 
-				maxY = Number.MIN_VALUE, 
-				minY =  Number.MAX_VALUE;
-			
-			
-			// Find the bounding box
-			each(paths || this.options.data, function (point) {
-				var path = point.path,
-					i = path.length,
-					even = false, // while loop reads from the end
-					pointMaxX = Number.MIN_VALUE, 
-					pointMinX =  Number.MAX_VALUE, 
-					pointMaxY = Number.MIN_VALUE, 
-					pointMinY =  Number.MAX_VALUE;
-					
-				while (i--) {
-					if (typeof path[i] === 'number' && !isNaN(path[i])) {
-						if (even) { // even = x
-							pointMaxX = Math.max(pointMaxX, path[i]);
-							pointMinX = Math.min(pointMinX, path[i]);
-						} else { // odd = Y
-							pointMaxY = Math.max(pointMaxY, path[i]);
-							pointMinY = Math.min(pointMinY, path[i]);
-						}
-						even = !even;
-					}
-				}
-				// Cache point bounding box for use to position data labels
-				point._maxX = pointMaxX;
-				point._minX = pointMinX;
-				point._maxY = pointMaxY;
-				point._minY = pointMinY;
-
-				maxX = Math.max(maxX, pointMaxX);
-				minX = Math.min(minX, pointMinX);
-				maxY = Math.max(maxY, pointMaxY);
-				minY = Math.min(minY, pointMinY);
-			});
-			this.minY = minY;
-			this.maxY = maxY;
-			this.minX = minX;
-			this.maxX = maxX;
-			
-		},
-		
-		
-		
-		/**
-		 * Translate the path so that it automatically fits into the plot area box
-		 * @param {Object} path
-		 */
-		translatePath: function (path) {
-			
-			var series = this,
-				even = false, // while loop reads from the end
-				xAxis = series.xAxis,
-				yAxis = series.yAxis,
-				i;
-				
-			// Preserve the original
-			path = [].concat(path);
-				
-			// Do the translation
-			i = path.length;
-			while (i--) {
-				if (typeof path[i] === 'number') {
-					if (even) { // even = x
-						path[i] = Math.round(xAxis.translate(path[i]));
-					} else { // odd = Y
-						path[i] = Math.round(yAxis.len - yAxis.translate(path[i]));
-					}
-					even = !even;
-				}
-			}
-			return path;
-		},
-		
-		setData: function () {
-			Highcharts.Series.prototype.setData.apply(this, arguments);
-			this.getBox();
-		},
-		
-		/**
-		 * Add the path option for data points. Find the max value for color calculation.
-		 */
-		translate: function () {
-			var series = this,
-				dataMin = Number.MAX_VALUE,
-				dataMax = Number.MIN_VALUE;
-	
-			series.generatePoints();
-	
-			each(series.data, function (point) {
-				
-				point.shapeType = 'path';
-				point.shapeArgs = {
-					d: series.translatePath(point.path)
-				};
-				
-				// TODO: do point colors in drawPoints instead of point.init
-				if (typeof point.y === 'number') {
-					if (point.y > dataMax) {
-						dataMax = point.y;
-					} else if (point.y < dataMin) {
-						dataMin = point.y;
-					}
-				}
-			});
-			
-			series.translateColors(dataMin, dataMax);
-		},
-		
-		/**
-		 * In choropleth maps, the color is a result of the value, so this needs translation too
-		 */
-		translateColors: function (dataMin, dataMax) {
-			
-			var seriesOptions = this.options,
-				valueRanges = seriesOptions.valueRanges,
-				colorRange = seriesOptions.colorRange,
-				colorKey = this.colorKey,
-				from,
-				to;
-
-			if (colorRange) {
-				from = Color(colorRange.from);
-				to = Color(colorRange.to);
-			}
-			
-			each(this.data, function (point) {
-				var value = point[colorKey],
-					range,
-					color,
-					i,
-					pos;
-
-				if (valueRanges) {
-					i = valueRanges.length;
-					while (i--) {
-						range = valueRanges[i];
-						from = range.from;
-						to = range.to;
-						if ((from === UNDEFINED || value >= from) && (to === UNDEFINED || value <= to)) {
-							color = range.color;
-							break;
-						}
-							
-					}
-				} else if (colorRange && value !== undefined) {
-
-					pos = 1 - ((dataMax - value) / (dataMax - dataMin));
-					color = value === null ? seriesOptions.nullColor : tweenColors(from, to, pos);
-				}
-
-				if (color) {
-					point.color = null; // reset from previous drilldowns, use of the same data options
-					point.options.color = color;
-				}
-			});
-		},
-		
-		drawGraph: noop,
-		
-		/**
-		 * We need the points' bounding boxes in order to draw the data labels, so 
-		 * we skip it now and call if from drawPoints instead.
-		 */
-		drawDataLabels: noop,
-		
-		/** 
-		 * Use the drawPoints method of column, that is able to handle simple shapeArgs.
-		 * Extend it by assigning the tooltip position.
-		 */
-		drawPoints: function () {
-			var series = this,
-				xAxis = series.xAxis,
-				yAxis = series.yAxis,
-				colorKey = series.colorKey;
-			
-			// Make points pass test in drawing
-			each(series.data, function (point) {
-				point.plotY = 1; // pass null test in column.drawPoints
-				if (point[colorKey] === null) {
-					point[colorKey] = 0;
-					point.isNull = true;
-				}
-			});
-			
-			// Draw them
-			seriesTypes.column.prototype.drawPoints.apply(series);
-			
-			each(series.data, function (point) {
-
-				var dataLabels = point.dataLabels,
-					minX = xAxis.toPixels(point._minX, true),
-					maxX = xAxis.toPixels(point._maxX, true),
-					minY = yAxis.toPixels(point._minY, true),
-					maxY = yAxis.toPixels(point._maxY, true);
-
-				point.plotX = Math.round(minX + (maxX - minX) * pick(dataLabels && dataLabels.anchorX, 0.5));
-				point.plotY = Math.round(minY + (maxY - minY) * pick(dataLabels && dataLabels.anchorY, 0.5)); 
-				
-				
-				// Reset escaped null points
-				if (point.isNull) {
-					point[colorKey] = null;
-				}
-			});
-
-			// Now draw the data labels
-			Highcharts.Series.prototype.drawDataLabels.call(series);
-			
-		},
-
-		/**
-		 * Animate in the new series from the clicked point in the old series.
-		 * Depends on the drilldown.js module
-		 */
-		animateDrilldown: function (init) {
-			var toBox = this.chart.plotBox,
-				level = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1],
-				fromBox = level.bBox,
-				animationOptions = this.chart.options.drilldown.animation,
-				scale;
-				
-			if (!init) {
-
-				scale = Math.min(fromBox.width / toBox.width, fromBox.height / toBox.height);
-				level.shapeArgs = {
-					scaleX: scale,
-					scaleY: scale,
-					translateX: fromBox.x,
-					translateY: fromBox.y
-				};
-				
-				// TODO: Animate this.group instead
-				each(this.points, function (point) {
-
-					point.graphic
-						.attr(level.shapeArgs)
-						.animate({
-							scaleX: 1,
-							scaleY: 1,
-							translateX: 0,
-							translateY: 0
-						}, animationOptions);
-
-				});
-
-				delete this.animate;
-			}
-			
-		},
-
-		/**
-		 * When drilling up, pull out the individual point graphics from the lower series
-		 * and animate them into the origin point in the upper series.
-		 */
-		animateDrillupFrom: function (level) {
-			seriesTypes.column.prototype.animateDrillupFrom.call(this, level);
-		},
-
-
-		/**
-		 * When drilling up, keep the upper series invisible until the lower series has
-		 * moved into place
-		 */
-		animateDrillupTo: function (init) {
-			seriesTypes.column.prototype.animateDrillupTo.call(this, init);
-		}
-	});
-
-
-	// The mapline series type
-	plotOptions.mapline = merge(plotOptions.map, {
-		lineWidth: 1,
-		backgroundColor: 'none'
-	});
-	seriesTypes.mapline = Highcharts.extendClass(seriesTypes.map, {
-		type: 'mapline',
-		pointAttrToOptions: { // mapping between SVG attributes and the corresponding options
-			stroke: 'color',
-			'stroke-width': 'lineWidth',
-			fill: 'backgroundColor'
-		},
-		drawLegendSymbol: seriesTypes.line.prototype.drawLegendSymbol
-	});
-
-	// The mappoint series type
-	plotOptions.mappoint = merge(plotOptions.scatter, {
-		dataLabels: {
-			enabled: true,
-			format: '{point.name}',
-			color: 'black',
-			style: {
-				textShadow: '0 0 5px white'
-			}
-		}
-	});
-	seriesTypes.mappoint = Highcharts.extendClass(seriesTypes.scatter, {
-		type: 'mappoint'
-	});
-	
-
-	
-	/**
-	 * A wrapper for Chart with all the default values for a Map
-	 */
-	Highcharts.Map = function (options, callback) {
-		
-		var hiddenAxis = {
-				endOnTick: false,
-				gridLineWidth: 0,
-				labels: {
-					enabled: false
-				},
-				lineWidth: 0,
-				minPadding: 0,
-				maxPadding: 0,
-				startOnTick: false,
-				tickWidth: 0,
-				title: null
-			},
-			seriesOptions;
-		
-		// Don't merge the data
-		seriesOptions = options.series;
-		options.series = null;
-		
-		options = merge({
-			chart: {
-				type: 'map',
-				panning: 'xy'
-			},
-			xAxis: hiddenAxis,
-			yAxis: merge(hiddenAxis, { reversed: true })	
-		},
-		options, // user's options
-	
-		{ // forced options
-			chart: {
-				inverted: false
-			}
-		});
-	
-		options.series = seriesOptions;
-	
-	
-		return new Highcharts.Chart(options, callback);
-	};
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/modules/no-data-to-display.js b/server/public/ueditor/third-party/highcharts/modules/no-data-to-display.js
deleted file mode 100644
index d10bb50..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/no-data-to-display.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- Highcharts JS v3.0.6 (2013-10-04)
- Plugin for displaying a message when there is no data visible in chart.
-
- (c) 2010-2013 Highsoft AS
- Author: 脴ystein Moseng
-
- License: www.highcharts.com/license
-*/
-(function(c){function f(){return!!this.points.length}function g(){this.hasData()?this.hideNoData():this.showNoData()}var d=c.seriesTypes,e=c.Chart.prototype,h=c.getOptions(),i=c.extend;i(h.lang,{noData:"No data to display"});h.noData={position:{x:0,y:0,align:"center",verticalAlign:"middle"},attr:{},style:{fontWeight:"bold",fontSize:"12px",color:"#60606a"}};d.pie.prototype.hasData=f;if(d.gauge)d.gauge.prototype.hasData=f;if(d.waterfall)d.waterfall.prototype.hasData=f;c.Series.prototype.hasData=function(){return this.dataMax!==
-void 0&&this.dataMin!==void 0};e.showNoData=function(a){var b=this.options,a=a||b.lang.noData,b=b.noData;if(!this.noDataLabel)this.noDataLabel=this.renderer.label(a,0,0,null,null,null,null,null,"no-data").attr(b.attr).css(b.style).add(),this.noDataLabel.align(i(this.noDataLabel.getBBox(),b.position),!1,"plotBox")};e.hideNoData=function(){if(this.noDataLabel)this.noDataLabel=this.noDataLabel.destroy()};e.hasData=function(){for(var a=this.series,b=a.length;b--;)if(a[b].hasData()&&!a[b].options.isInternal)return!0;
-return!1};e.callbacks.push(function(a){c.addEvent(a,"load",g);c.addEvent(a,"redraw",g)})})(Highcharts);
diff --git a/server/public/ueditor/third-party/highcharts/modules/no-data-to-display.src.js b/server/public/ueditor/third-party/highcharts/modules/no-data-to-display.src.js
deleted file mode 100644
index bf91079..0000000
--- a/server/public/ueditor/third-party/highcharts/modules/no-data-to-display.src.js
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * @license Highcharts JS v3.0.6 (2013-10-04)
- * Plugin for displaying a message when there is no data visible in chart.
- *
- * (c) 2010-2013 Highsoft AS
- * Author: 脴ystein Moseng
- *
- * License: www.highcharts.com/license
- */
-
-(function (H) { // docs
-	
-	var seriesTypes = H.seriesTypes,
-		chartPrototype = H.Chart.prototype,
-		defaultOptions = H.getOptions(),
-		extend = H.extend;
-
-	// Add language option
-	extend(defaultOptions.lang, {
-		noData: 'No data to display'
-	});
-	
-	// Add default display options for message
-	defaultOptions.noData = {
-		position: {
-			x: 0,
-			y: 0,			
-			align: 'center',
-			verticalAlign: 'middle'
-		},
-		attr: {						
-		},
-		style: {	
-			fontWeight: 'bold',		
-			fontSize: '12px',
-			color: '#60606a'		
-		}
-	};
-
-	/**
-	 * Define hasData functions for series. These return true if there are data points on this series within the plot area
-	 */	
-	function hasDataPie() {
-		return !!this.points.length; /* != 0 */
-	}
-
-	seriesTypes.pie.prototype.hasData = hasDataPie;
-
-	if (seriesTypes.gauge) {
-		seriesTypes.gauge.prototype.hasData = hasDataPie;
-	}
-
-	if (seriesTypes.waterfall) {
-		seriesTypes.waterfall.prototype.hasData = hasDataPie;
-	}
-
-	H.Series.prototype.hasData = function () {
-		return this.dataMax !== undefined && this.dataMin !== undefined;
-	};
-	
-	/**
-	 * Display a no-data message.
-	 *
-	 * @param {String} str An optional message to show in place of the default one 
-	 */
-	chartPrototype.showNoData = function (str) {
-		var chart = this,
-			options = chart.options,
-			text = str || options.lang.noData,
-			noDataOptions = options.noData;
-
-		if (!chart.noDataLabel) {
-			chart.noDataLabel = chart.renderer.label(text, 0, 0, null, null, null, null, null, 'no-data')
-				.attr(noDataOptions.attr)
-				.css(noDataOptions.style)
-				.add();
-			chart.noDataLabel.align(extend(chart.noDataLabel.getBBox(), noDataOptions.position), false, 'plotBox');
-		}
-	};
-
-	/**
-	 * Hide no-data message	
-	 */	
-	chartPrototype.hideNoData = function () {
-		var chart = this;
-		if (chart.noDataLabel) {
-			chart.noDataLabel = chart.noDataLabel.destroy();
-		}
-	};
-
-	/**
-	 * Returns true if there are data points within the plot area now
-	 */	
-	chartPrototype.hasData = function () {
-		var chart = this,
-			series = chart.series,
-			i = series.length;
-
-		while (i--) {
-			if (series[i].hasData() && !series[i].options.isInternal) { 
-				return true;
-			}	
-		}
-
-		return false;
-	};
-
-	/**
-	 * Show no-data message if there is no data in sight. Otherwise, hide it.
-	 */
-	function handleNoData() {
-		var chart = this;
-		if (chart.hasData()) {
-			chart.hideNoData();
-		} else {
-			chart.showNoData();
-		}
-	}
-
-	/**
-	 * Add event listener to handle automatic display of no-data message
-	 */
-	chartPrototype.callbacks.push(function (chart) {
-		H.addEvent(chart, 'load', handleNoData);
-		H.addEvent(chart, 'redraw', handleNoData);
-	});
-
-}(Highcharts));
diff --git a/server/public/ueditor/third-party/highcharts/themes/dark-blue.js b/server/public/ueditor/third-party/highcharts/themes/dark-blue.js
deleted file mode 100644
index edf8a54..0000000
--- a/server/public/ueditor/third-party/highcharts/themes/dark-blue.js
+++ /dev/null
@@ -1,254 +0,0 @@
-/**
- * Dark blue theme for Highcharts JS
- * @author Torstein H酶nsi
- */
-
-Highcharts.theme = {
-	colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee",
-		"#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
-	chart: {
-		backgroundColor: {
-			linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
-			stops: [
-				[0, 'rgb(48, 48, 96)'],
-				[1, 'rgb(0, 0, 0)']
-			]
-		},
-		borderColor: '#000000',
-		borderWidth: 2,
-		className: 'dark-container',
-		plotBackgroundColor: 'rgba(255, 255, 255, .1)',
-		plotBorderColor: '#CCCCCC',
-		plotBorderWidth: 1
-	},
-	title: {
-		style: {
-			color: '#C0C0C0',
-			font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
-		}
-	},
-	subtitle: {
-		style: {
-			color: '#666666',
-			font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
-		}
-	},
-	xAxis: {
-		gridLineColor: '#333333',
-		gridLineWidth: 1,
-		labels: {
-			style: {
-				color: '#A0A0A0'
-			}
-		},
-		lineColor: '#A0A0A0',
-		tickColor: '#A0A0A0',
-		title: {
-			style: {
-				color: '#CCC',
-				fontWeight: 'bold',
-				fontSize: '12px',
-				fontFamily: 'Trebuchet MS, Verdana, sans-serif'
-
-			}
-		}
-	},
-	yAxis: {
-		gridLineColor: '#333333',
-		labels: {
-			style: {
-				color: '#A0A0A0'
-			}
-		},
-		lineColor: '#A0A0A0',
-		minorTickInterval: null,
-		tickColor: '#A0A0A0',
-		tickWidth: 1,
-		title: {
-			style: {
-				color: '#CCC',
-				fontWeight: 'bold',
-				fontSize: '12px',
-				fontFamily: 'Trebuchet MS, Verdana, sans-serif'
-			}
-		}
-	},
-	tooltip: {
-		backgroundColor: 'rgba(0, 0, 0, 0.75)',
-		style: {
-			color: '#F0F0F0'
-		}
-	},
-	toolbar: {
-		itemStyle: {
-			color: 'silver'
-		}
-	},
-	plotOptions: {
-		line: {
-			dataLabels: {
-				color: '#CCC'
-			},
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		spline: {
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		scatter: {
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		candlestick: {
-			lineColor: 'white'
-		}
-	},
-	legend: {
-		itemStyle: {
-			font: '9pt Trebuchet MS, Verdana, sans-serif',
-			color: '#A0A0A0'
-		},
-		itemHoverStyle: {
-			color: '#FFF'
-		},
-		itemHiddenStyle: {
-			color: '#444'
-		}
-	},
-	credits: {
-		style: {
-			color: '#666'
-		}
-	},
-	labels: {
-		style: {
-			color: '#CCC'
-		}
-	},
-
-	navigation: {
-		buttonOptions: {
-			symbolStroke: '#DDDDDD',
-			hoverSymbolStroke: '#FFFFFF',
-			theme: {
-				fill: {
-					linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-					stops: [
-						[0.4, '#606060'],
-						[0.6, '#333333']
-					]
-				},
-				stroke: '#000000'
-			}
-		}
-	},
-
-	// scroll charts
-	rangeSelector: {
-		buttonTheme: {
-			fill: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-			stroke: '#000000',
-			style: {
-				color: '#CCC',
-				fontWeight: 'bold'
-			},
-			states: {
-				hover: {
-					fill: {
-						linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-						stops: [
-							[0.4, '#BBB'],
-							[0.6, '#888']
-						]
-					},
-					stroke: '#000000',
-					style: {
-						color: 'white'
-					}
-				},
-				select: {
-					fill: {
-						linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-						stops: [
-							[0.1, '#000'],
-							[0.3, '#333']
-						]
-					},
-					stroke: '#000000',
-					style: {
-						color: 'yellow'
-					}
-				}
-			}
-		},
-		inputStyle: {
-			backgroundColor: '#333',
-			color: 'silver'
-		},
-		labelStyle: {
-			color: 'silver'
-		}
-	},
-
-	navigator: {
-		handles: {
-			backgroundColor: '#666',
-			borderColor: '#AAA'
-		},
-		outlineColor: '#CCC',
-		maskFill: 'rgba(16, 16, 16, 0.5)',
-		series: {
-			color: '#7798BF',
-			lineColor: '#A6C7ED'
-		}
-	},
-
-	scrollbar: {
-		barBackgroundColor: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-		barBorderColor: '#CCC',
-		buttonArrowColor: '#CCC',
-		buttonBackgroundColor: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-		buttonBorderColor: '#CCC',
-		rifleColor: '#FFF',
-		trackBackgroundColor: {
-			linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-			stops: [
-				[0, '#000'],
-				[1, '#333']
-			]
-		},
-		trackBorderColor: '#666'
-	},
-
-	// special colors for some of the
-	legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
-	legendBackgroundColorSolid: 'rgb(35, 35, 70)',
-	dataLabelsColor: '#444',
-	textColor: '#C0C0C0',
-	maskColor: 'rgba(255,255,255,0.3)'
-};
-
-// Apply the theme
-var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
diff --git a/server/public/ueditor/third-party/highcharts/themes/dark-green.js b/server/public/ueditor/third-party/highcharts/themes/dark-green.js
deleted file mode 100644
index 09e47cf..0000000
--- a/server/public/ueditor/third-party/highcharts/themes/dark-green.js
+++ /dev/null
@@ -1,255 +0,0 @@
-/**
- * Dark blue theme for Highcharts JS
- * @author Torstein H酶nsi
- */
-
-Highcharts.theme = {
-	colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee",
-		"#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
-	chart: {
-		backgroundColor: {
-			linearGradient: [0, 0, 250, 500],
-			stops: [
-				[0, 'rgb(48, 96, 48)'],
-				[1, 'rgb(0, 0, 0)']
-			]
-		},
-		borderColor: '#000000',
-		borderWidth: 2,
-		className: 'dark-container',
-		plotBackgroundColor: 'rgba(255, 255, 255, .1)',
-		plotBorderColor: '#CCCCCC',
-		plotBorderWidth: 1
-	},
-	title: {
-		style: {
-			color: '#C0C0C0',
-			font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
-		}
-	},
-	subtitle: {
-		style: {
-			color: '#666666',
-			font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
-		}
-	},
-	xAxis: {
-		gridLineColor: '#333333',
-		gridLineWidth: 1,
-		labels: {
-			style: {
-				color: '#A0A0A0'
-			}
-		},
-		lineColor: '#A0A0A0',
-		tickColor: '#A0A0A0',
-		title: {
-			style: {
-				color: '#CCC',
-				fontWeight: 'bold',
-				fontSize: '12px',
-				fontFamily: 'Trebuchet MS, Verdana, sans-serif'
-
-			}
-		}
-	},
-	yAxis: {
-		gridLineColor: '#333333',
-		labels: {
-			style: {
-				color: '#A0A0A0'
-			}
-		},
-		lineColor: '#A0A0A0',
-		minorTickInterval: null,
-		tickColor: '#A0A0A0',
-		tickWidth: 1,
-		title: {
-			style: {
-				color: '#CCC',
-				fontWeight: 'bold',
-				fontSize: '12px',
-				fontFamily: 'Trebuchet MS, Verdana, sans-serif'
-			}
-		}
-	},
-	tooltip: {
-		backgroundColor: 'rgba(0, 0, 0, 0.75)',
-		style: {
-			color: '#F0F0F0'
-		}
-	},
-	toolbar: {
-		itemStyle: {
-			color: 'silver'
-		}
-	},
-	plotOptions: {
-		line: {
-			dataLabels: {
-				color: '#CCC'
-			},
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		spline: {
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		scatter: {
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		candlestick: {
-			lineColor: 'white'
-		}
-	},
-	legend: {
-		itemStyle: {
-			font: '9pt Trebuchet MS, Verdana, sans-serif',
-			color: '#A0A0A0'
-		},
-		itemHoverStyle: {
-			color: '#FFF'
-		},
-		itemHiddenStyle: {
-			color: '#444'
-		}
-	},
-	credits: {
-		style: {
-			color: '#666'
-		}
-	},
-	labels: {
-		style: {
-			color: '#CCC'
-		}
-	},
-
-
-	navigation: {
-		buttonOptions: {
-			symbolStroke: '#DDDDDD',
-			hoverSymbolStroke: '#FFFFFF',
-			theme: {
-				fill: {
-					linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-					stops: [
-						[0.4, '#606060'],
-						[0.6, '#333333']
-					]
-				},
-				stroke: '#000000'
-			}
-		}
-	},
-
-	// scroll charts
-	rangeSelector: {
-		buttonTheme: {
-			fill: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-			stroke: '#000000',
-			style: {
-				color: '#CCC',
-				fontWeight: 'bold'
-			},
-			states: {
-				hover: {
-					fill: {
-						linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-						stops: [
-							[0.4, '#BBB'],
-							[0.6, '#888']
-						]
-					},
-					stroke: '#000000',
-					style: {
-						color: 'white'
-					}
-				},
-				select: {
-					fill: {
-						linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-						stops: [
-							[0.1, '#000'],
-							[0.3, '#333']
-						]
-					},
-					stroke: '#000000',
-					style: {
-						color: 'yellow'
-					}
-				}
-			}
-		},
-		inputStyle: {
-			backgroundColor: '#333',
-			color: 'silver'
-		},
-		labelStyle: {
-			color: 'silver'
-		}
-	},
-
-	navigator: {
-		handles: {
-			backgroundColor: '#666',
-			borderColor: '#AAA'
-		},
-		outlineColor: '#CCC',
-		maskFill: 'rgba(16, 16, 16, 0.5)',
-		series: {
-			color: '#7798BF',
-			lineColor: '#A6C7ED'
-		}
-	},
-
-	scrollbar: {
-		barBackgroundColor: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-		barBorderColor: '#CCC',
-		buttonArrowColor: '#CCC',
-		buttonBackgroundColor: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-		buttonBorderColor: '#CCC',
-		rifleColor: '#FFF',
-		trackBackgroundColor: {
-			linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-			stops: [
-				[0, '#000'],
-				[1, '#333']
-			]
-		},
-		trackBorderColor: '#666'
-	},
-
-	// special colors for some of the
-	legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
-	legendBackgroundColorSolid: 'rgb(35, 35, 70)',
-	dataLabelsColor: '#444',
-	textColor: '#C0C0C0',
-	maskColor: 'rgba(255,255,255,0.3)'
-};
-
-// Apply the theme
-var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
diff --git a/server/public/ueditor/third-party/highcharts/themes/gray.js b/server/public/ueditor/third-party/highcharts/themes/gray.js
deleted file mode 100644
index 4ab0af2..0000000
--- a/server/public/ueditor/third-party/highcharts/themes/gray.js
+++ /dev/null
@@ -1,257 +0,0 @@
-/**
- * Gray theme for Highcharts JS
- * @author Torstein H酶nsi
- */
-
-Highcharts.theme = {
-	colors: ["#DDDF0D", "#7798BF", "#55BF3B", "#DF5353", "#aaeeee", "#ff0066", "#eeaaee",
-		"#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
-	chart: {
-		backgroundColor: {
-			linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-			stops: [
-				[0, 'rgb(96, 96, 96)'],
-				[1, 'rgb(16, 16, 16)']
-			]
-		},
-		borderWidth: 0,
-		borderRadius: 15,
-		plotBackgroundColor: null,
-		plotShadow: false,
-		plotBorderWidth: 0
-	},
-	title: {
-		style: {
-			color: '#FFF',
-			font: '16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
-		}
-	},
-	subtitle: {
-		style: {
-			color: '#DDD',
-			font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
-		}
-	},
-	xAxis: {
-		gridLineWidth: 0,
-		lineColor: '#999',
-		tickColor: '#999',
-		labels: {
-			style: {
-				color: '#999',
-				fontWeight: 'bold'
-			}
-		},
-		title: {
-			style: {
-				color: '#AAA',
-				font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
-			}
-		}
-	},
-	yAxis: {
-		alternateGridColor: null,
-		minorTickInterval: null,
-		gridLineColor: 'rgba(255, 255, 255, .1)',
-		minorGridLineColor: 'rgba(255,255,255,0.07)',
-		lineWidth: 0,
-		tickWidth: 0,
-		labels: {
-			style: {
-				color: '#999',
-				fontWeight: 'bold'
-			}
-		},
-		title: {
-			style: {
-				color: '#AAA',
-				font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
-			}
-		}
-	},
-	legend: {
-		itemStyle: {
-			color: '#CCC'
-		},
-		itemHoverStyle: {
-			color: '#FFF'
-		},
-		itemHiddenStyle: {
-			color: '#333'
-		}
-	},
-	labels: {
-		style: {
-			color: '#CCC'
-		}
-	},
-	tooltip: {
-		backgroundColor: {
-			linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-			stops: [
-				[0, 'rgba(96, 96, 96, .8)'],
-				[1, 'rgba(16, 16, 16, .8)']
-			]
-		},
-		borderWidth: 0,
-		style: {
-			color: '#FFF'
-		}
-	},
-
-
-	plotOptions: {
-		series: {
-			shadow: true
-		},
-		line: {
-			dataLabels: {
-				color: '#CCC'
-			},
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		spline: {
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		scatter: {
-			marker: {
-				lineColor: '#333'
-			}
-		},
-		candlestick: {
-			lineColor: 'white'
-		}
-	},
-
-	toolbar: {
-		itemStyle: {
-			color: '#CCC'
-		}
-	},
-
-	navigation: {
-		buttonOptions: {
-			symbolStroke: '#DDDDDD',
-			hoverSymbolStroke: '#FFFFFF',
-			theme: {
-				fill: {
-					linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-					stops: [
-						[0.4, '#606060'],
-						[0.6, '#333333']
-					]
-				},
-				stroke: '#000000'
-			}
-		}
-	},
-
-	// scroll charts
-	rangeSelector: {
-		buttonTheme: {
-			fill: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-			stroke: '#000000',
-			style: {
-				color: '#CCC',
-				fontWeight: 'bold'
-			},
-			states: {
-				hover: {
-					fill: {
-						linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-						stops: [
-							[0.4, '#BBB'],
-							[0.6, '#888']
-						]
-					},
-					stroke: '#000000',
-					style: {
-						color: 'white'
-					}
-				},
-				select: {
-					fill: {
-						linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-						stops: [
-							[0.1, '#000'],
-							[0.3, '#333']
-						]
-					},
-					stroke: '#000000',
-					style: {
-						color: 'yellow'
-					}
-				}
-			}
-		},
-		inputStyle: {
-			backgroundColor: '#333',
-			color: 'silver'
-		},
-		labelStyle: {
-			color: 'silver'
-		}
-	},
-
-	navigator: {
-		handles: {
-			backgroundColor: '#666',
-			borderColor: '#AAA'
-		},
-		outlineColor: '#CCC',
-		maskFill: 'rgba(16, 16, 16, 0.5)',
-		series: {
-			color: '#7798BF',
-			lineColor: '#A6C7ED'
-		}
-	},
-
-	scrollbar: {
-		barBackgroundColor: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-		barBorderColor: '#CCC',
-		buttonArrowColor: '#CCC',
-		buttonBackgroundColor: {
-				linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-				stops: [
-					[0.4, '#888'],
-					[0.6, '#555']
-				]
-			},
-		buttonBorderColor: '#CCC',
-		rifleColor: '#FFF',
-		trackBackgroundColor: {
-			linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
-			stops: [
-				[0, '#000'],
-				[1, '#333']
-			]
-		},
-		trackBorderColor: '#666'
-	},
-
-	// special colors for some of the demo examples
-	legendBackgroundColor: 'rgba(48, 48, 48, 0.8)',
-	legendBackgroundColorSolid: 'rgb(70, 70, 70)',
-	dataLabelsColor: '#444',
-	textColor: '#E0E0E0',
-	maskColor: 'rgba(255,255,255,0.3)'
-};
-
-// Apply the theme
-var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
diff --git a/server/public/ueditor/third-party/highcharts/themes/grid.js b/server/public/ueditor/third-party/highcharts/themes/grid.js
deleted file mode 100644
index 7131230..0000000
--- a/server/public/ueditor/third-party/highcharts/themes/grid.js
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * Grid theme for Highcharts JS
- * @author Torstein H酶nsi
- */
-
-Highcharts.theme = {
-	colors: ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'],
-	chart: {
-		backgroundColor: {
-			linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
-			stops: [
-				[0, 'rgb(255, 255, 255)'],
-				[1, 'rgb(240, 240, 255)']
-			]
-		},
-		borderWidth: 2,
-		plotBackgroundColor: 'rgba(255, 255, 255, .9)',
-		plotShadow: true,
-		plotBorderWidth: 1
-	},
-	title: {
-		style: {
-			color: '#000',
-			font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
-		}
-	},
-	subtitle: {
-		style: {
-			color: '#666666',
-			font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
-		}
-	},
-	xAxis: {
-		gridLineWidth: 1,
-		lineColor: '#000',
-		tickColor: '#000',
-		labels: {
-			style: {
-				color: '#000',
-				font: '11px Trebuchet MS, Verdana, sans-serif'
-			}
-		},
-		title: {
-			style: {
-				color: '#333',
-				fontWeight: 'bold',
-				fontSize: '12px',
-				fontFamily: 'Trebuchet MS, Verdana, sans-serif'
-
-			}
-		}
-	},
-	yAxis: {
-		minorTickInterval: 'auto',
-		lineColor: '#000',
-		lineWidth: 1,
-		tickWidth: 1,
-		tickColor: '#000',
-		labels: {
-			style: {
-				color: '#000',
-				font: '11px Trebuchet MS, Verdana, sans-serif'
-			}
-		},
-		title: {
-			style: {
-				color: '#333',
-				fontWeight: 'bold',
-				fontSize: '12px',
-				fontFamily: 'Trebuchet MS, Verdana, sans-serif'
-			}
-		}
-	},
-	legend: {
-		itemStyle: {
-			font: '9pt Trebuchet MS, Verdana, sans-serif',
-			color: 'black'
-
-		},
-		itemHoverStyle: {
-			color: '#039'
-		},
-		itemHiddenStyle: {
-			color: 'gray'
-		}
-	},
-	labels: {
-		style: {
-			color: '#99b'
-		}
-	},
-
-	navigation: {
-		buttonOptions: {
-			theme: {
-				stroke: '#CCCCCC'
-			}
-		}
-	}
-};
-
-// Apply the theme
-var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
diff --git a/server/public/ueditor/third-party/highcharts/themes/skies.js b/server/public/ueditor/third-party/highcharts/themes/skies.js
deleted file mode 100644
index 99cac16..0000000
--- a/server/public/ueditor/third-party/highcharts/themes/skies.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * Skies theme for Highcharts JS
- * @author Torstein H酶nsi
- */
-
-Highcharts.theme = {
-	colors: ["#514F78", "#42A07B", "#9B5E4A", "#72727F", "#1F949A", "#82914E", "#86777F", "#42A07B"],
-	chart: {
-		className: 'skies',
-		borderWidth: 0,
-		plotShadow: true,
-		plotBackgroundImage: 'http://www.highcharts.com/demo/gfx/skies.jpg',
-		plotBackgroundColor: {
-			linearGradient: [0, 0, 250, 500],
-			stops: [
-				[0, 'rgba(255, 255, 255, 1)'],
-				[1, 'rgba(255, 255, 255, 0)']
-			]
-		},
-		plotBorderWidth: 1
-	},
-	title: {
-		style: {
-			color: '#3E576F',
-			font: '16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
-		}
-	},
-	subtitle: {
-		style: {
-			color: '#6D869F',
-			font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
-		}
-	},
-	xAxis: {
-		gridLineWidth: 0,
-		lineColor: '#C0D0E0',
-		tickColor: '#C0D0E0',
-		labels: {
-			style: {
-				color: '#666',
-				fontWeight: 'bold'
-			}
-		},
-		title: {
-			style: {
-				color: '#666',
-				font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
-			}
-		}
-	},
-	yAxis: {
-		alternateGridColor: 'rgba(255, 255, 255, .5)',
-		lineColor: '#C0D0E0',
-		tickColor: '#C0D0E0',
-		tickWidth: 1,
-		labels: {
-			style: {
-				color: '#666',
-				fontWeight: 'bold'
-			}
-		},
-		title: {
-			style: {
-				color: '#666',
-				font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
-			}
-		}
-	},
-	legend: {
-		itemStyle: {
-			font: '9pt Trebuchet MS, Verdana, sans-serif',
-			color: '#3E576F'
-		},
-		itemHoverStyle: {
-			color: 'black'
-		},
-		itemHiddenStyle: {
-			color: 'silver'
-		}
-	},
-	labels: {
-		style: {
-			color: '#3E576F'
-		}
-	}
-};
-
-// Apply the theme
-var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
diff --git a/server/public/ueditor/third-party/jquery-1.10.2.js b/server/public/ueditor/third-party/jquery-1.10.2.js
deleted file mode 100644
index 9dbf800..0000000
--- a/server/public/ueditor/third-party/jquery-1.10.2.js
+++ /dev/null
@@ -1,9789 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.10.2
- * http://jquery.com/
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- *
- * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2013-07-03T13:48Z
- */
-(function( window, undefined ) {
-
-// Can't do this because several apps including ASP.NET trace
-// the stack via arguments.caller.callee and Firefox dies if
-// you try to trace through "use strict" call chains. (#13335)
-// Support: Firefox 18+
-//"use strict";
-var
-	// The deferred used on DOM ready
-	readyList,
-
-	// A central reference to the root jQuery(document)
-	rootjQuery,
-
-	// Support: IE<10
-	// For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`
-	core_strundefined = typeof undefined,
-
-	// Use the correct document accordingly with window argument (sandbox)
-	location = window.location,
-	document = window.document,
-	docElem = document.documentElement,
-
-	// Map over jQuery in case of overwrite
-	_jQuery = window.jQuery,
-
-	// Map over the $ in case of overwrite
-	_$ = window.$,
-
-	// [[Class]] -> type pairs
-	class2type = {},
-
-	// List of deleted data cache ids, so we can reuse them
-	core_deletedIds = [],
-
-	core_version = "1.10.2",
-
-	// Save a reference to some core methods
-	core_concat = core_deletedIds.concat,
-	core_push = core_deletedIds.push,
-	core_slice = core_deletedIds.slice,
-	core_indexOf = core_deletedIds.indexOf,
-	core_toString = class2type.toString,
-	core_hasOwn = class2type.hasOwnProperty,
-	core_trim = core_version.trim,
-
-	// Define a local copy of jQuery
-	jQuery = function( selector, context ) {
-		// The jQuery object is actually just the init constructor 'enhanced'
-		return new jQuery.fn.init( selector, context, rootjQuery );
-	},
-
-	// Used for matching numbers
-	core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
-
-	// Used for splitting on whitespace
-	core_rnotwhite = /\S+/g,
-
-	// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
-	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
-	// A simple way to check for HTML strings
-	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
-	// Strict HTML recognition (#11290: must start with <)
-	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
-
-	// Match a standalone tag
-	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
-
-	// JSON RegExp
-	rvalidchars = /^[\],:{}\s]*$/,
-	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-	rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
-	rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
-
-	// Matches dashed string for camelizing
-	rmsPrefix = /^-ms-/,
-	rdashAlpha = /-([\da-z])/gi,
-
-	// Used by jQuery.camelCase as callback to replace()
-	fcamelCase = function( all, letter ) {
-		return letter.toUpperCase();
-	},
-
-	// The ready event handler
-	completed = function( event ) {
-
-		// readyState === "complete" is good enough for us to call the dom ready in oldIE
-		if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
-			detach();
-			jQuery.ready();
-		}
-	},
-	// Clean-up method for dom ready events
-	detach = function() {
-		if ( document.addEventListener ) {
-			document.removeEventListener( "DOMContentLoaded", completed, false );
-			window.removeEventListener( "load", completed, false );
-
-		} else {
-			document.detachEvent( "onreadystatechange", completed );
-			window.detachEvent( "onload", completed );
-		}
-	};
-
-jQuery.fn = jQuery.prototype = {
-	// The current version of jQuery being used
-	jquery: core_version,
-
-	constructor: jQuery,
-	init: function( selector, context, rootjQuery ) {
-		var match, elem;
-
-		// HANDLE: $(""), $(null), $(undefined), $(false)
-		if ( !selector ) {
-			return this;
-		}
-
-		// Handle HTML strings
-		if ( typeof selector === "string" ) {
-			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
-				// Assume that strings that start and end with <> are HTML and skip the regex check
-				match = [ null, selector, null ];
-
-			} else {
-				match = rquickExpr.exec( selector );
-			}
-
-			// Match html or make sure no context is specified for #id
-			if ( match && (match[1] || !context) ) {
-
-				// HANDLE: $(html) -> $(array)
-				if ( match[1] ) {
-					context = context instanceof jQuery ? context[0] : context;
-
-					// scripts is true for back-compat
-					jQuery.merge( this, jQuery.parseHTML(
-						match[1],
-						context && context.nodeType ? context.ownerDocument || context : document,
-						true
-					) );
-
-					// HANDLE: $(html, props)
-					if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
-						for ( match in context ) {
-							// Properties of context are called as methods if possible
-							if ( jQuery.isFunction( this[ match ] ) ) {
-								this[ match ]( context[ match ] );
-
-							// ...and otherwise set as attributes
-							} else {
-								this.attr( match, context[ match ] );
-							}
-						}
-					}
-
-					return this;
-
-				// HANDLE: $(#id)
-				} else {
-					elem = document.getElementById( match[2] );
-
-					// Check parentNode to catch when Blackberry 4.6 returns
-					// nodes that are no longer in the document #6963
-					if ( elem && elem.parentNode ) {
-						// Handle the case where IE and Opera return items
-						// by name instead of ID
-						if ( elem.id !== match[2] ) {
-							return rootjQuery.find( selector );
-						}
-
-						// Otherwise, we inject the element directly into the jQuery object
-						this.length = 1;
-						this[0] = elem;
-					}
-
-					this.context = document;
-					this.selector = selector;
-					return this;
-				}
-
-			// HANDLE: $(expr, $(...))
-			} else if ( !context || context.jquery ) {
-				return ( context || rootjQuery ).find( selector );
-
-			// HANDLE: $(expr, context)
-			// (which is just equivalent to: $(context).find(expr)
-			} else {
-				return this.constructor( context ).find( selector );
-			}
-
-		// HANDLE: $(DOMElement)
-		} else if ( selector.nodeType ) {
-			this.context = this[0] = selector;
-			this.length = 1;
-			return this;
-
-		// HANDLE: $(function)
-		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) ) {
-			return rootjQuery.ready( selector );
-		}
-
-		if ( selector.selector !== undefined ) {
-			this.selector = selector.selector;
-			this.context = selector.context;
-		}
-
-		return jQuery.makeArray( selector, this );
-	},
-
-	// Start with an empty selector
-	selector: "",
-
-	// The default length of a jQuery object is 0
-	length: 0,
-
-	toArray: function() {
-		return core_slice.call( this );
-	},
-
-	// Get the Nth element in the matched element set OR
-	// Get the whole matched element set as a clean array
-	get: function( num ) {
-		return num == null ?
-
-			// Return a 'clean' array
-			this.toArray() :
-
-			// Return just the object
-			( num < 0 ? this[ this.length + num ] : this[ num ] );
-	},
-
-	// Take an array of elements and push it onto the stack
-	// (returning the new matched element set)
-	pushStack: function( elems ) {
-
-		// Build a new jQuery matched element set
-		var ret = jQuery.merge( this.constructor(), elems );
-
-		// Add the old object onto the stack (as a reference)
-		ret.prevObject = this;
-		ret.context = this.context;
-
-		// Return the newly-formed element set
-		return ret;
-	},
-
-	// Execute a callback for every element in the matched set.
-	// (You can seed the arguments with an array of args, but this is
-	// only used internally.)
-	each: function( callback, args ) {
-		return jQuery.each( this, callback, args );
-	},
-
-	ready: function( fn ) {
-		// Add the callback
-		jQuery.ready.promise().done( fn );
-
-		return this;
-	},
-
-	slice: function() {
-		return this.pushStack( core_slice.apply( this, arguments ) );
-	},
-
-	first: function() {
-		return this.eq( 0 );
-	},
-
-	last: function() {
-		return this.eq( -1 );
-	},
-
-	eq: function( i ) {
-		var len = this.length,
-			j = +i + ( i < 0 ? len : 0 );
-		return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
-	},
-
-	map: function( callback ) {
-		return this.pushStack( jQuery.map(this, function( elem, i ) {
-			return callback.call( elem, i, elem );
-		}));
-	},
-
-	end: function() {
-		return this.prevObject || this.constructor(null);
-	},
-
-	// For internal use only.
-	// Behaves like an Array's method, not like a jQuery method.
-	push: core_push,
-	sort: [].sort,
-	splice: [].splice
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-jQuery.extend = jQuery.fn.extend = function() {
-	var src, copyIsArray, copy, name, options, clone,
-		target = arguments[0] || {},
-		i = 1,
-		length = arguments.length,
-		deep = false;
-
-	// Handle a deep copy situation
-	if ( typeof target === "boolean" ) {
-		deep = target;
-		target = arguments[1] || {};
-		// skip the boolean and the target
-		i = 2;
-	}
-
-	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
-		target = {};
-	}
-
-	// extend jQuery itself if only one argument is passed
-	if ( length === i ) {
-		target = this;
-		--i;
-	}
-
-	for ( ; i < length; i++ ) {
-		// Only deal with non-null/undefined values
-		if ( (options = arguments[ i ]) != null ) {
-			// Extend the base object
-			for ( name in options ) {
-				src = target[ name ];
-				copy = options[ name ];
-
-				// Prevent never-ending loop
-				if ( target === copy ) {
-					continue;
-				}
-
-				// Recurse if we're merging plain objects or arrays
-				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
-					if ( copyIsArray ) {
-						copyIsArray = false;
-						clone = src && jQuery.isArray(src) ? src : [];
-
-					} else {
-						clone = src && jQuery.isPlainObject(src) ? src : {};
-					}
-
-					// Never move original objects, clone them
-					target[ name ] = jQuery.extend( deep, clone, copy );
-
-				// Don't bring in undefined values
-				} else if ( copy !== undefined ) {
-					target[ name ] = copy;
-				}
-			}
-		}
-	}
-
-	// Return the modified object
-	return target;
-};
-
-jQuery.extend({
-	// Unique for each copy of jQuery on the page
-	// Non-digits removed to match rinlinejQuery
-	expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ),
-
-	noConflict: function( deep ) {
-		if ( window.$ === jQuery ) {
-			window.$ = _$;
-		}
-
-		if ( deep && window.jQuery === jQuery ) {
-			window.jQuery = _jQuery;
-		}
-
-		return jQuery;
-	},
-
-	// Is the DOM ready to be used? Set to true once it occurs.
-	isReady: false,
-
-	// A counter to track how many items to wait for before
-	// the ready event fires. See #6781
-	readyWait: 1,
-
-	// Hold (or release) the ready event
-	holdReady: function( hold ) {
-		if ( hold ) {
-			jQuery.readyWait++;
-		} else {
-			jQuery.ready( true );
-		}
-	},
-
-	// Handle when the DOM is ready
-	ready: function( wait ) {
-
-		// Abort if there are pending holds or we're already ready
-		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
-			return;
-		}
-
-		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-		if ( !document.body ) {
-			return setTimeout( jQuery.ready );
-		}
-
-		// Remember that the DOM is ready
-		jQuery.isReady = true;
-
-		// If a normal DOM Ready event fired, decrement, and wait if need be
-		if ( wait !== true && --jQuery.readyWait > 0 ) {
-			return;
-		}
-
-		// If there are functions bound, to execute
-		readyList.resolveWith( document, [ jQuery ] );
-
-		// Trigger any bound ready events
-		if ( jQuery.fn.trigger ) {
-			jQuery( document ).trigger("ready").off("ready");
-		}
-	},
-
-	// See test/unit/core.js for details concerning isFunction.
-	// Since version 1.3, DOM methods and functions like alert
-	// aren't supported. They return false on IE (#2968).
-	isFunction: function( obj ) {
-		return jQuery.type(obj) === "function";
-	},
-
-	isArray: Array.isArray || function( obj ) {
-		return jQuery.type(obj) === "array";
-	},
-
-	isWindow: function( obj ) {
-		/* jshint eqeqeq: false */
-		return obj != null && obj == obj.window;
-	},
-
-	isNumeric: function( obj ) {
-		return !isNaN( parseFloat(obj) ) && isFinite( obj );
-	},
-
-	type: function( obj ) {
-		if ( obj == null ) {
-			return String( obj );
-		}
-		return typeof obj === "object" || typeof obj === "function" ?
-			class2type[ core_toString.call(obj) ] || "object" :
-			typeof obj;
-	},
-
-	isPlainObject: function( obj ) {
-		var key;
-
-		// Must be an Object.
-		// Because of IE, we also have to check the presence of the constructor property.
-		// Make sure that DOM nodes and window objects don't pass through, as well
-		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
-			return false;
-		}
-
-		try {
-			// Not own constructor property must be Object
-			if ( obj.constructor &&
-				!core_hasOwn.call(obj, "constructor") &&
-				!core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
-				return false;
-			}
-		} catch ( e ) {
-			// IE8,9 Will throw exceptions on certain host objects #9897
-			return false;
-		}
-
-		// Support: IE<9
-		// Handle iteration over inherited properties before own properties.
-		if ( jQuery.support.ownLast ) {
-			for ( key in obj ) {
-				return core_hasOwn.call( obj, key );
-			}
-		}
-
-		// Own properties are enumerated firstly, so to speed up,
-		// if last one is own, then all properties are own.
-		for ( key in obj ) {}
-
-		return key === undefined || core_hasOwn.call( obj, key );
-	},
-
-	isEmptyObject: function( obj ) {
-		var name;
-		for ( name in obj ) {
-			return false;
-		}
-		return true;
-	},
-
-	error: function( msg ) {
-		throw new Error( msg );
-	},
-
-	// data: string of html
-	// context (optional): If specified, the fragment will be created in this context, defaults to document
-	// keepScripts (optional): If true, will include scripts passed in the html string
-	parseHTML: function( data, context, keepScripts ) {
-		if ( !data || typeof data !== "string" ) {
-			return null;
-		}
-		if ( typeof context === "boolean" ) {
-			keepScripts = context;
-			context = false;
-		}
-		context = context || document;
-
-		var parsed = rsingleTag.exec( data ),
-			scripts = !keepScripts && [];
-
-		// Single tag
-		if ( parsed ) {
-			return [ context.createElement( parsed[1] ) ];
-		}
-
-		parsed = jQuery.buildFragment( [ data ], context, scripts );
-		if ( scripts ) {
-			jQuery( scripts ).remove();
-		}
-		return jQuery.merge( [], parsed.childNodes );
-	},
-
-	parseJSON: function( data ) {
-		// Attempt to parse using the native JSON parser first
-		if ( window.JSON && window.JSON.parse ) {
-			return window.JSON.parse( data );
-		}
-
-		if ( data === null ) {
-			return data;
-		}
-
-		if ( typeof data === "string" ) {
-
-			// Make sure leading/trailing whitespace is removed (IE can't handle it)
-			data = jQuery.trim( data );
-
-			if ( data ) {
-				// Make sure the incoming data is actual JSON
-				// Logic borrowed from http://json.org/json2.js
-				if ( rvalidchars.test( data.replace( rvalidescape, "@" )
-					.replace( rvalidtokens, "]" )
-					.replace( rvalidbraces, "")) ) {
-
-					return ( new Function( "return " + data ) )();
-				}
-			}
-		}
-
-		jQuery.error( "Invalid JSON: " + data );
-	},
-
-	// Cross-browser xml parsing
-	parseXML: function( data ) {
-		var xml, tmp;
-		if ( !data || typeof data !== "string" ) {
-			return null;
-		}
-		try {
-			if ( window.DOMParser ) { // Standard
-				tmp = new DOMParser();
-				xml = tmp.parseFromString( data , "text/xml" );
-			} else { // IE
-				xml = new ActiveXObject( "Microsoft.XMLDOM" );
-				xml.async = "false";
-				xml.loadXML( data );
-			}
-		} catch( e ) {
-			xml = undefined;
-		}
-		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
-			jQuery.error( "Invalid XML: " + data );
-		}
-		return xml;
-	},
-
-	noop: function() {},
-
-	// Evaluates a script in a global context
-	// Workarounds based on findings by Jim Driscoll
-	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
-	globalEval: function( data ) {
-		if ( data && jQuery.trim( data ) ) {
-			// We use execScript on Internet Explorer
-			// We use an anonymous function so that context is window
-			// rather than jQuery in Firefox
-			( window.execScript || function( data ) {
-				window[ "eval" ].call( window, data );
-			} )( data );
-		}
-	},
-
-	// Convert dashed to camelCase; used by the css and data modules
-	// Microsoft forgot to hump their vendor prefix (#9572)
-	camelCase: function( string ) {
-		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
-	},
-
-	nodeName: function( elem, name ) {
-		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
-	},
-
-	// args is for internal usage only
-	each: function( obj, callback, args ) {
-		var value,
-			i = 0,
-			length = obj.length,
-			isArray = isArraylike( obj );
-
-		if ( args ) {
-			if ( isArray ) {
-				for ( ; i < length; i++ ) {
-					value = callback.apply( obj[ i ], args );
-
-					if ( value === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( i in obj ) {
-					value = callback.apply( obj[ i ], args );
-
-					if ( value === false ) {
-						break;
-					}
-				}
-			}
-
-		// A special, fast, case for the most common use of each
-		} else {
-			if ( isArray ) {
-				for ( ; i < length; i++ ) {
-					value = callback.call( obj[ i ], i, obj[ i ] );
-
-					if ( value === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( i in obj ) {
-					value = callback.call( obj[ i ], i, obj[ i ] );
-
-					if ( value === false ) {
-						break;
-					}
-				}
-			}
-		}
-
-		return obj;
-	},
-
-	// Use native String.trim function wherever possible
-	trim: core_trim && !core_trim.call("\uFEFF\xA0") ?
-		function( text ) {
-			return text == null ?
-				"" :
-				core_trim.call( text );
-		} :
-
-		// Otherwise use our own trimming functionality
-		function( text ) {
-			return text == null ?
-				"" :
-				( text + "" ).replace( rtrim, "" );
-		},
-
-	// results is for internal usage only
-	makeArray: function( arr, results ) {
-		var ret = results || [];
-
-		if ( arr != null ) {
-			if ( isArraylike( Object(arr) ) ) {
-				jQuery.merge( ret,
-					typeof arr === "string" ?
-					[ arr ] : arr
-				);
-			} else {
-				core_push.call( ret, arr );
-			}
-		}
-
-		return ret;
-	},
-
-	inArray: function( elem, arr, i ) {
-		var len;
-
-		if ( arr ) {
-			if ( core_indexOf ) {
-				return core_indexOf.call( arr, elem, i );
-			}
-
-			len = arr.length;
-			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
-
-			for ( ; i < len; i++ ) {
-				// Skip accessing in sparse arrays
-				if ( i in arr && arr[ i ] === elem ) {
-					return i;
-				}
-			}
-		}
-
-		return -1;
-	},
-
-	merge: function( first, second ) {
-		var l = second.length,
-			i = first.length,
-			j = 0;
-
-		if ( typeof l === "number" ) {
-			for ( ; j < l; j++ ) {
-				first[ i++ ] = second[ j ];
-			}
-		} else {
-			while ( second[j] !== undefined ) {
-				first[ i++ ] = second[ j++ ];
-			}
-		}
-
-		first.length = i;
-
-		return first;
-	},
-
-	grep: function( elems, callback, inv ) {
-		var retVal,
-			ret = [],
-			i = 0,
-			length = elems.length;
-		inv = !!inv;
-
-		// Go through the array, only saving the items
-		// that pass the validator function
-		for ( ; i < length; i++ ) {
-			retVal = !!callback( elems[ i ], i );
-			if ( inv !== retVal ) {
-				ret.push( elems[ i ] );
-			}
-		}
-
-		return ret;
-	},
-
-	// arg is for internal usage only
-	map: function( elems, callback, arg ) {
-		var value,
-			i = 0,
-			length = elems.length,
-			isArray = isArraylike( elems ),
-			ret = [];
-
-		// Go through the array, translating each of the items to their
-		if ( isArray ) {
-			for ( ; i < length; i++ ) {
-				value = callback( elems[ i ], i, arg );
-
-				if ( value != null ) {
-					ret[ ret.length ] = value;
-				}
-			}
-
-		// Go through every key on the object,
-		} else {
-			for ( i in elems ) {
-				value = callback( elems[ i ], i, arg );
-
-				if ( value != null ) {
-					ret[ ret.length ] = value;
-				}
-			}
-		}
-
-		// Flatten any nested arrays
-		return core_concat.apply( [], ret );
-	},
-
-	// A global GUID counter for objects
-	guid: 1,
-
-	// Bind a function to a context, optionally partially applying any
-	// arguments.
-	proxy: function( fn, context ) {
-		var args, proxy, tmp;
-
-		if ( typeof context === "string" ) {
-			tmp = fn[ context ];
-			context = fn;
-			fn = tmp;
-		}
-
-		// Quick check to determine if target is callable, in the spec
-		// this throws a TypeError, but we will just return undefined.
-		if ( !jQuery.isFunction( fn ) ) {
-			return undefined;
-		}
-
-		// Simulated bind
-		args = core_slice.call( arguments, 2 );
-		proxy = function() {
-			return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) );
-		};
-
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
-		return proxy;
-	},
-
-	// Multifunctional method to get and set values of a collection
-	// The value/s can optionally be executed if it's a function
-	access: function( elems, fn, key, value, chainable, emptyGet, raw ) {
-		var i = 0,
-			length = elems.length,
-			bulk = key == null;
-
-		// Sets many values
-		if ( jQuery.type( key ) === "object" ) {
-			chainable = true;
-			for ( i in key ) {
-				jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
-			}
-
-		// Sets one value
-		} else if ( value !== undefined ) {
-			chainable = true;
-
-			if ( !jQuery.isFunction( value ) ) {
-				raw = true;
-			}
-
-			if ( bulk ) {
-				// Bulk operations run against the entire set
-				if ( raw ) {
-					fn.call( elems, value );
-					fn = null;
-
-				// ...except when executing function values
-				} else {
-					bulk = fn;
-					fn = function( elem, key, value ) {
-						return bulk.call( jQuery( elem ), value );
-					};
-				}
-			}
-
-			if ( fn ) {
-				for ( ; i < length; i++ ) {
-					fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
-				}
-			}
-		}
-
-		return chainable ?
-			elems :
-
-			// Gets
-			bulk ?
-				fn.call( elems ) :
-				length ? fn( elems[0], key ) : emptyGet;
-	},
-
-	now: function() {
-		return ( new Date() ).getTime();
-	},
-
-	// A method for quickly swapping in/out CSS properties to get correct calculations.
-	// Note: this method belongs to the css module but it's needed here for the support module.
-	// If support gets modularized, this method should be moved back to the css module.
-	swap: function( elem, options, callback, args ) {
-		var ret, name,
-			old = {};
-
-		// Remember the old values, and insert the new ones
-		for ( name in options ) {
-			old[ name ] = elem.style[ name ];
-			elem.style[ name ] = options[ name ];
-		}
-
-		ret = callback.apply( elem, args || [] );
-
-		// Revert the old values
-		for ( name in options ) {
-			elem.style[ name ] = old[ name ];
-		}
-
-		return ret;
-	}
-});
-
-jQuery.ready.promise = function( obj ) {
-	if ( !readyList ) {
-
-		readyList = jQuery.Deferred();
-
-		// Catch cases where $(document).ready() is called after the browser event has already occurred.
-		// we once tried to use readyState "interactive" here, but it caused issues like the one
-		// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
-		if ( document.readyState === "complete" ) {
-			// Handle it asynchronously to allow scripts the opportunity to delay ready
-			setTimeout( jQuery.ready );
-
-		// Standards-based browsers support DOMContentLoaded
-		} else if ( document.addEventListener ) {
-			// Use the handy event callback
-			document.addEventListener( "DOMContentLoaded", completed, false );
-
-			// A fallback to window.onload, that will always work
-			window.addEventListener( "load", completed, false );
-
-		// If IE event model is used
-		} else {
-			// Ensure firing before onload, maybe late but safe also for iframes
-			document.attachEvent( "onreadystatechange", completed );
-
-			// A fallback to window.onload, that will always work
-			window.attachEvent( "onload", completed );
-
-			// If IE and not a frame
-			// continually check to see if the document is ready
-			var top = false;
-
-			try {
-				top = window.frameElement == null && document.documentElement;
-			} catch(e) {}
-
-			if ( top && top.doScroll ) {
-				(function doScrollCheck() {
-					if ( !jQuery.isReady ) {
-
-						try {
-							// Use the trick by Diego Perini
-							// http://javascript.nwbox.com/IEContentLoaded/
-							top.doScroll("left");
-						} catch(e) {
-							return setTimeout( doScrollCheck, 50 );
-						}
-
-						// detach all dom ready events
-						detach();
-
-						// and execute any waiting functions
-						jQuery.ready();
-					}
-				})();
-			}
-		}
-	}
-	return readyList.promise( obj );
-};
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-function isArraylike( obj ) {
-	var length = obj.length,
-		type = jQuery.type( obj );
-
-	if ( jQuery.isWindow( obj ) ) {
-		return false;
-	}
-
-	if ( obj.nodeType === 1 && length ) {
-		return true;
-	}
-
-	return type === "array" || type !== "function" &&
-		( length === 0 ||
-		typeof length === "number" && length > 0 && ( length - 1 ) in obj );
-}
-
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-/*!
- * Sizzle CSS Selector Engine v1.10.2
- * http://sizzlejs.com/
- *
- * Copyright 2013 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2013-07-03
- */
-(function( window, undefined ) {
-
-var i,
-	support,
-	cachedruns,
-	Expr,
-	getText,
-	isXML,
-	compile,
-	outermostContext,
-	sortInput,
-
-	// Local document vars
-	setDocument,
-	document,
-	docElem,
-	documentIsHTML,
-	rbuggyQSA,
-	rbuggyMatches,
-	matches,
-	contains,
-
-	// Instance-specific data
-	expando = "sizzle" + -(new Date()),
-	preferredDoc = window.document,
-	dirruns = 0,
-	done = 0,
-	classCache = createCache(),
-	tokenCache = createCache(),
-	compilerCache = createCache(),
-	hasDuplicate = false,
-	sortOrder = function( a, b ) {
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-		return 0;
-	},
-
-	// General-purpose constants
-	strundefined = typeof undefined,
-	MAX_NEGATIVE = 1 << 31,
-
-	// Instance methods
-	hasOwn = ({}).hasOwnProperty,
-	arr = [],
-	pop = arr.pop,
-	push_native = arr.push,
-	push = arr.push,
-	slice = arr.slice,
-	// Use a stripped-down indexOf if we can't use a native one
-	indexOf = arr.indexOf || function( elem ) {
-		var i = 0,
-			len = this.length;
-		for ( ; i < len; i++ ) {
-			if ( this[i] === elem ) {
-				return i;
-			}
-		}
-		return -1;
-	},
-
-	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
-
-	// Regular expressions
-
-	// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
-	whitespace = "[\\x20\\t\\r\\n\\f]",
-	// http://www.w3.org/TR/css3-syntax/#characters
-	characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
-
-	// Loosely modeled on CSS identifier characters
-	// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
-	// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
-	identifier = characterEncoding.replace( "w", "w#" ),
-
-	// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
-	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
-		"*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
-
-	// Prefer arguments quoted,
-	//   then not containing pseudos/brackets,
-	//   then attribute selectors/non-parenthetical expressions,
-	//   then anything else
-	// These preferences are here to reduce the number of selectors
-	//   needing tokenize in the PSEUDO preFilter
-	pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
-
-	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
-	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
-	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
-	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
-	rsibling = new RegExp( whitespace + "*[+~]" ),
-	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ),
-
-	rpseudo = new RegExp( pseudos ),
-	ridentifier = new RegExp( "^" + identifier + "$" ),
-
-	matchExpr = {
-		"ID": new RegExp( "^#(" + characterEncoding + ")" ),
-		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
-		"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
-		"ATTR": new RegExp( "^" + attributes ),
-		"PSEUDO": new RegExp( "^" + pseudos ),
-		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
-			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
-			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
-		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
-		// For use in libraries implementing .is()
-		// We use this for POS matching in `select`
-		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
-			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
-	},
-
-	rnative = /^[^{]+\{\s*\[native \w/,
-
-	// Easily-parseable/retrievable ID or TAG or CLASS selectors
-	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
-
-	rinputs = /^(?:input|select|textarea|button)$/i,
-	rheader = /^h\d$/i,
-
-	rescape = /'|\\/g,
-
-	// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
-	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
-	funescape = function( _, escaped, escapedWhitespace ) {
-		var high = "0x" + escaped - 0x10000;
-		// NaN means non-codepoint
-		// Support: Firefox
-		// Workaround erroneous numeric interpretation of +"0x"
-		return high !== high || escapedWhitespace ?
-			escaped :
-			// BMP codepoint
-			high < 0 ?
-				String.fromCharCode( high + 0x10000 ) :
-				// Supplemental Plane codepoint (surrogate pair)
-				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
-	};
-
-// Optimize for push.apply( _, NodeList )
-try {
-	push.apply(
-		(arr = slice.call( preferredDoc.childNodes )),
-		preferredDoc.childNodes
-	);
-	// Support: Android<4.0
-	// Detect silently failing push.apply
-	arr[ preferredDoc.childNodes.length ].nodeType;
-} catch ( e ) {
-	push = { apply: arr.length ?
-
-		// Leverage slice if possible
-		function( target, els ) {
-			push_native.apply( target, slice.call(els) );
-		} :
-
-		// Support: IE<9
-		// Otherwise append directly
-		function( target, els ) {
-			var j = target.length,
-				i = 0;
-			// Can't trust NodeList.length
-			while ( (target[j++] = els[i++]) ) {}
-			target.length = j - 1;
-		}
-	};
-}
-
-function Sizzle( selector, context, results, seed ) {
-	var match, elem, m, nodeType,
-		// QSA vars
-		i, groups, old, nid, newContext, newSelector;
-
-	if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
-		setDocument( context );
-	}
-
-	context = context || document;
-	results = results || [];
-
-	if ( !selector || typeof selector !== "string" ) {
-		return results;
-	}
-
-	if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
-		return [];
-	}
-
-	if ( documentIsHTML && !seed ) {
-
-		// Shortcuts
-		if ( (match = rquickExpr.exec( selector )) ) {
-			// Speed-up: Sizzle("#ID")
-			if ( (m = match[1]) ) {
-				if ( nodeType === 9 ) {
-					elem = context.getElementById( m );
-					// Check parentNode to catch when Blackberry 4.6 returns
-					// nodes that are no longer in the document #6963
-					if ( elem && elem.parentNode ) {
-						// Handle the case where IE, Opera, and Webkit return items
-						// by name instead of ID
-						if ( elem.id === m ) {
-							results.push( elem );
-							return results;
-						}
-					} else {
-						return results;
-					}
-				} else {
-					// Context is not a document
-					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
-						contains( context, elem ) && elem.id === m ) {
-						results.push( elem );
-						return results;
-					}
-				}
-
-			// Speed-up: Sizzle("TAG")
-			} else if ( match[2] ) {
-				push.apply( results, context.getElementsByTagName( selector ) );
-				return results;
-
-			// Speed-up: Sizzle(".CLASS")
-			} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
-				push.apply( results, context.getElementsByClassName( m ) );
-				return results;
-			}
-		}
-
-		// QSA path
-		if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
-			nid = old = expando;
-			newContext = context;
-			newSelector = nodeType === 9 && selector;
-
-			// qSA works strangely on Element-rooted queries
-			// We can work around this by specifying an extra ID on the root
-			// and working up from there (Thanks to Andrew Dupont for the technique)
-			// IE 8 doesn't work on object elements
-			if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-				groups = tokenize( selector );
-
-				if ( (old = context.getAttribute("id")) ) {
-					nid = old.replace( rescape, "\\$&" );
-				} else {
-					context.setAttribute( "id", nid );
-				}
-				nid = "[id='" + nid + "'] ";
-
-				i = groups.length;
-				while ( i-- ) {
-					groups[i] = nid + toSelector( groups[i] );
-				}
-				newContext = rsibling.test( selector ) && context.parentNode || context;
-				newSelector = groups.join(",");
-			}
-
-			if ( newSelector ) {
-				try {
-					push.apply( results,
-						newContext.querySelectorAll( newSelector )
-					);
-					return results;
-				} catch(qsaError) {
-				} finally {
-					if ( !old ) {
-						context.removeAttribute("id");
-					}
-				}
-			}
-		}
-	}
-
-	// All others
-	return select( selector.replace( rtrim, "$1" ), context, results, seed );
-}
-
-/**
- * Create key-value caches of limited size
- * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
- *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- *	deleting the oldest entry
- */
-function createCache() {
-	var keys = [];
-
-	function cache( key, value ) {
-		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
-		if ( keys.push( key += " " ) > Expr.cacheLength ) {
-			// Only keep the most recent entries
-			delete cache[ keys.shift() ];
-		}
-		return (cache[ key ] = value);
-	}
-	return cache;
-}
-
-/**
- * Mark a function for special use by Sizzle
- * @param {Function} fn The function to mark
- */
-function markFunction( fn ) {
-	fn[ expando ] = true;
-	return fn;
-}
-
-/**
- * Support testing using an element
- * @param {Function} fn Passed the created div and expects a boolean result
- */
-function assert( fn ) {
-	var div = document.createElement("div");
-
-	try {
-		return !!fn( div );
-	} catch (e) {
-		return false;
-	} finally {
-		// Remove from its parent by default
-		if ( div.parentNode ) {
-			div.parentNode.removeChild( div );
-		}
-		// release memory in IE
-		div = null;
-	}
-}
-
-/**
- * Adds the same handler for all of the specified attrs
- * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied
- */
-function addHandle( attrs, handler ) {
-	var arr = attrs.split("|"),
-		i = attrs.length;
-
-	while ( i-- ) {
-		Expr.attrHandle[ arr[i] ] = handler;
-	}
-}
-
-/**
- * Checks document order of two siblings
- * @param {Element} a
- * @param {Element} b
- * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
- */
-function siblingCheck( a, b ) {
-	var cur = b && a,
-		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
-			( ~b.sourceIndex || MAX_NEGATIVE ) -
-			( ~a.sourceIndex || MAX_NEGATIVE );
-
-	// Use IE sourceIndex if available on both nodes
-	if ( diff ) {
-		return diff;
-	}
-
-	// Check if b follows a
-	if ( cur ) {
-		while ( (cur = cur.nextSibling) ) {
-			if ( cur === b ) {
-				return -1;
-			}
-		}
-	}
-
-	return a ? 1 : -1;
-}
-
-/**
- * Returns a function to use in pseudos for input types
- * @param {String} type
- */
-function createInputPseudo( type ) {
-	return function( elem ) {
-		var name = elem.nodeName.toLowerCase();
-		return name === "input" && elem.type === type;
-	};
-}
-
-/**
- * Returns a function to use in pseudos for buttons
- * @param {String} type
- */
-function createButtonPseudo( type ) {
-	return function( elem ) {
-		var name = elem.nodeName.toLowerCase();
-		return (name === "input" || name === "button") && elem.type === type;
-	};
-}
-
-/**
- * Returns a function to use in pseudos for positionals
- * @param {Function} fn
- */
-function createPositionalPseudo( fn ) {
-	return markFunction(function( argument ) {
-		argument = +argument;
-		return markFunction(function( seed, matches ) {
-			var j,
-				matchIndexes = fn( [], seed.length, argument ),
-				i = matchIndexes.length;
-
-			// Match elements found at the specified indexes
-			while ( i-- ) {
-				if ( seed[ (j = matchIndexes[i]) ] ) {
-					seed[j] = !(matches[j] = seed[j]);
-				}
-			}
-		});
-	});
-}
-
-/**
- * Detect xml
- * @param {Element|Object} elem An element or a document
- */
-isXML = Sizzle.isXML = function( elem ) {
-	// documentElement is verified for cases where it doesn't yet exist
-	// (such as loading iframes in IE - #4833)
-	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-// Expose support vars for convenience
-support = Sizzle.support = {};
-
-/**
- * Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
- * @returns {Object} Returns the current document
- */
-setDocument = Sizzle.setDocument = function( node ) {
-	var doc = node ? node.ownerDocument || node : preferredDoc,
-		parent = doc.defaultView;
-
-	// If no document and documentElement is available, return
-	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
-		return document;
-	}
-
-	// Set our document
-	document = doc;
-	docElem = doc.documentElement;
-
-	// Support tests
-	documentIsHTML = !isXML( doc );
-
-	// Support: IE>8
-	// If iframe document is assigned to "document" variable and if iframe has been reloaded,
-	// IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
-	// IE6-8 do not support the defaultView property so parent will be undefined
-	if ( parent && parent.attachEvent && parent !== parent.top ) {
-		parent.attachEvent( "onbeforeunload", function() {
-			setDocument();
-		});
-	}
-
-	/* Attributes
-	---------------------------------------------------------------------- */
-
-	// Support: IE<8
-	// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
-	support.attributes = assert(function( div ) {
-		div.className = "i";
-		return !div.getAttribute("className");
-	});
-
-	/* getElement(s)By*
-	---------------------------------------------------------------------- */
-
-	// Check if getElementsByTagName("*") returns only elements
-	support.getElementsByTagName = assert(function( div ) {
-		div.appendChild( doc.createComment("") );
-		return !div.getElementsByTagName("*").length;
-	});
-
-	// Check if getElementsByClassName can be trusted
-	support.getElementsByClassName = assert(function( div ) {
-		div.innerHTML = "<div class='a'></div><div class='a i'></div>";
-
-		// Support: Safari<4
-		// Catch class over-caching
-		div.firstChild.className = "i";
-		// Support: Opera<10
-		// Catch gEBCN failure to find non-leading classes
-		return div.getElementsByClassName("i").length === 2;
-	});
-
-	// Support: IE<10
-	// Check if getElementById returns elements by name
-	// The broken getElementById methods don't pick up programatically-set names,
-	// so use a roundabout getElementsByName test
-	support.getById = assert(function( div ) {
-		docElem.appendChild( div ).id = expando;
-		return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
-	});
-
-	// ID find and filter
-	if ( support.getById ) {
-		Expr.find["ID"] = function( id, context ) {
-			if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
-				var m = context.getElementById( id );
-				// Check parentNode to catch when Blackberry 4.6 returns
-				// nodes that are no longer in the document #6963
-				return m && m.parentNode ? [m] : [];
-			}
-		};
-		Expr.filter["ID"] = function( id ) {
-			var attrId = id.replace( runescape, funescape );
-			return function( elem ) {
-				return elem.getAttribute("id") === attrId;
-			};
-		};
-	} else {
-		// Support: IE6/7
-		// getElementById is not reliable as a find shortcut
-		delete Expr.find["ID"];
-
-		Expr.filter["ID"] =  function( id ) {
-			var attrId = id.replace( runescape, funescape );
-			return function( elem ) {
-				var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
-				return node && node.value === attrId;
-			};
-		};
-	}
-
-	// Tag
-	Expr.find["TAG"] = support.getElementsByTagName ?
-		function( tag, context ) {
-			if ( typeof context.getElementsByTagName !== strundefined ) {
-				return context.getElementsByTagName( tag );
-			}
-		} :
-		function( tag, context ) {
-			var elem,
-				tmp = [],
-				i = 0,
-				results = context.getElementsByTagName( tag );
-
-			// Filter out possible comments
-			if ( tag === "*" ) {
-				while ( (elem = results[i++]) ) {
-					if ( elem.nodeType === 1 ) {
-						tmp.push( elem );
-					}
-				}
-
-				return tmp;
-			}
-			return results;
-		};
-
-	// Class
-	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
-		if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
-			return context.getElementsByClassName( className );
-		}
-	};
-
-	/* QSA/matchesSelector
-	---------------------------------------------------------------------- */
-
-	// QSA and matchesSelector support
-
-	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
-	rbuggyMatches = [];
-
-	// qSa(:focus) reports false when true (Chrome 21)
-	// We allow this because of a bug in IE8/9 that throws an error
-	// whenever `document.activeElement` is accessed on an iframe
-	// So, we allow :focus to pass through QSA all the time to avoid the IE error
-	// See http://bugs.jquery.com/ticket/13378
-	rbuggyQSA = [];
-
-	if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
-		// Build QSA regex
-		// Regex strategy adopted from Diego Perini
-		assert(function( div ) {
-			// Select is set to empty string on purpose
-			// This is to test IE's treatment of not explicitly
-			// setting a boolean content attribute,
-			// since its presence should be enough
-			// http://bugs.jquery.com/ticket/12359
-			div.innerHTML = "<select><option selected=''></option></select>";
-
-			// Support: IE8
-			// Boolean attributes and "value" are not treated correctly
-			if ( !div.querySelectorAll("[selected]").length ) {
-				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
-			}
-
-			// Webkit/Opera - :checked should return selected option elements
-			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
-			// IE8 throws error here and will not see later tests
-			if ( !div.querySelectorAll(":checked").length ) {
-				rbuggyQSA.push(":checked");
-			}
-		});
-
-		assert(function( div ) {
-
-			// Support: Opera 10-12/IE8
-			// ^= $= *= and empty values
-			// Should not select anything
-			// Support: Windows 8 Native Apps
-			// The type attribute is restricted during .innerHTML assignment
-			var input = doc.createElement("input");
-			input.setAttribute( "type", "hidden" );
-			div.appendChild( input ).setAttribute( "t", "" );
-
-			if ( div.querySelectorAll("[t^='']").length ) {
-				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
-			}
-
-			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
-			// IE8 throws error here and will not see later tests
-			if ( !div.querySelectorAll(":enabled").length ) {
-				rbuggyQSA.push( ":enabled", ":disabled" );
-			}
-
-			// Opera 10-11 does not throw on post-comma invalid pseudos
-			div.querySelectorAll("*,:x");
-			rbuggyQSA.push(",.*:");
-		});
-	}
-
-	if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
-		docElem.mozMatchesSelector ||
-		docElem.oMatchesSelector ||
-		docElem.msMatchesSelector) )) ) {
-
-		assert(function( div ) {
-			// Check to see if it's possible to do matchesSelector
-			// on a disconnected node (IE 9)
-			support.disconnectedMatch = matches.call( div, "div" );
-
-			// This should fail with an exception
-			// Gecko does not error, returns false instead
-			matches.call( div, "[s!='']:x" );
-			rbuggyMatches.push( "!=", pseudos );
-		});
-	}
-
-	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
-	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
-
-	/* Contains
-	---------------------------------------------------------------------- */
-
-	// Element contains another
-	// Purposefully does not implement inclusive descendent
-	// As in, an element does not contain itself
-	contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ?
-		function( a, b ) {
-			var adown = a.nodeType === 9 ? a.documentElement : a,
-				bup = b && b.parentNode;
-			return a === bup || !!( bup && bup.nodeType === 1 && (
-				adown.contains ?
-					adown.contains( bup ) :
-					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
-			));
-		} :
-		function( a, b ) {
-			if ( b ) {
-				while ( (b = b.parentNode) ) {
-					if ( b === a ) {
-						return true;
-					}
-				}
-			}
-			return false;
-		};
-
-	/* Sorting
-	---------------------------------------------------------------------- */
-
-	// Document order sorting
-	sortOrder = docElem.compareDocumentPosition ?
-	function( a, b ) {
-
-		// Flag for duplicate removal
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-
-		var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );
-
-		if ( compare ) {
-			// Disconnected nodes
-			if ( compare & 1 ||
-				(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
-
-				// Choose the first element that is related to our preferred document
-				if ( a === doc || contains(preferredDoc, a) ) {
-					return -1;
-				}
-				if ( b === doc || contains(preferredDoc, b) ) {
-					return 1;
-				}
-
-				// Maintain original order
-				return sortInput ?
-					( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
-					0;
-			}
-
-			return compare & 4 ? -1 : 1;
-		}
-
-		// Not directly comparable, sort on existence of method
-		return a.compareDocumentPosition ? -1 : 1;
-	} :
-	function( a, b ) {
-		var cur,
-			i = 0,
-			aup = a.parentNode,
-			bup = b.parentNode,
-			ap = [ a ],
-			bp = [ b ];
-
-		// Exit early if the nodes are identical
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-
-		// Parentless nodes are either documents or disconnected
-		} else if ( !aup || !bup ) {
-			return a === doc ? -1 :
-				b === doc ? 1 :
-				aup ? -1 :
-				bup ? 1 :
-				sortInput ?
-				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
-				0;
-
-		// If the nodes are siblings, we can do a quick check
-		} else if ( aup === bup ) {
-			return siblingCheck( a, b );
-		}
-
-		// Otherwise we need full lists of their ancestors for comparison
-		cur = a;
-		while ( (cur = cur.parentNode) ) {
-			ap.unshift( cur );
-		}
-		cur = b;
-		while ( (cur = cur.parentNode) ) {
-			bp.unshift( cur );
-		}
-
-		// Walk down the tree looking for a discrepancy
-		while ( ap[i] === bp[i] ) {
-			i++;
-		}
-
-		return i ?
-			// Do a sibling check if the nodes have a common ancestor
-			siblingCheck( ap[i], bp[i] ) :
-
-			// Otherwise nodes in our document sort first
-			ap[i] === preferredDoc ? -1 :
-			bp[i] === preferredDoc ? 1 :
-			0;
-	};
-
-	return doc;
-};
-
-Sizzle.matches = function( expr, elements ) {
-	return Sizzle( expr, null, null, elements );
-};
-
-Sizzle.matchesSelector = function( elem, expr ) {
-	// Set document vars if needed
-	if ( ( elem.ownerDocument || elem ) !== document ) {
-		setDocument( elem );
-	}
-
-	// Make sure that attribute selectors are quoted
-	expr = expr.replace( rattributeQuotes, "='$1']" );
-
-	if ( support.matchesSelector && documentIsHTML &&
-		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
-		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
-
-		try {
-			var ret = matches.call( elem, expr );
-
-			// IE 9's matchesSelector returns false on disconnected nodes
-			if ( ret || support.disconnectedMatch ||
-					// As well, disconnected nodes are said to be in a document
-					// fragment in IE 9
-					elem.document && elem.document.nodeType !== 11 ) {
-				return ret;
-			}
-		} catch(e) {}
-	}
-
-	return Sizzle( expr, document, null, [elem] ).length > 0;
-};
-
-Sizzle.contains = function( context, elem ) {
-	// Set document vars if needed
-	if ( ( context.ownerDocument || context ) !== document ) {
-		setDocument( context );
-	}
-	return contains( context, elem );
-};
-
-Sizzle.attr = function( elem, name ) {
-	// Set document vars if needed
-	if ( ( elem.ownerDocument || elem ) !== document ) {
-		setDocument( elem );
-	}
-
-	var fn = Expr.attrHandle[ name.toLowerCase() ],
-		// Don't get fooled by Object.prototype properties (jQuery #13807)
-		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
-			fn( elem, name, !documentIsHTML ) :
-			undefined;
-
-	return val === undefined ?
-		support.attributes || !documentIsHTML ?
-			elem.getAttribute( name ) :
-			(val = elem.getAttributeNode(name)) && val.specified ?
-				val.value :
-				null :
-		val;
-};
-
-Sizzle.error = function( msg ) {
-	throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-/**
- * Document sorting and removing duplicates
- * @param {ArrayLike} results
- */
-Sizzle.uniqueSort = function( results ) {
-	var elem,
-		duplicates = [],
-		j = 0,
-		i = 0;
-
-	// Unless we *know* we can detect duplicates, assume their presence
-	hasDuplicate = !support.detectDuplicates;
-	sortInput = !support.sortStable && results.slice( 0 );
-	results.sort( sortOrder );
-
-	if ( hasDuplicate ) {
-		while ( (elem = results[i++]) ) {
-			if ( elem === results[ i ] ) {
-				j = duplicates.push( i );
-			}
-		}
-		while ( j-- ) {
-			results.splice( duplicates[ j ], 1 );
-		}
-	}
-
-	return results;
-};
-
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
-	var node,
-		ret = "",
-		i = 0,
-		nodeType = elem.nodeType;
-
-	if ( !nodeType ) {
-		// If no nodeType, this is expected to be an array
-		for ( ; (node = elem[i]); i++ ) {
-			// Do not traverse comment nodes
-			ret += getText( node );
-		}
-	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
-		// Use textContent for elements
-		// innerText usage removed for consistency of new lines (see #11153)
-		if ( typeof elem.textContent === "string" ) {
-			return elem.textContent;
-		} else {
-			// Traverse its children
-			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
-				ret += getText( elem );
-			}
-		}
-	} else if ( nodeType === 3 || nodeType === 4 ) {
-		return elem.nodeValue;
-	}
-	// Do not include comment or processing instruction nodes
-
-	return ret;
-};
-
-Expr = Sizzle.selectors = {
-
-	// Can be adjusted by the user
-	cacheLength: 50,
-
-	createPseudo: markFunction,
-
-	match: matchExpr,
-
-	attrHandle: {},
-
-	find: {},
-
-	relative: {
-		">": { dir: "parentNode", first: true },
-		" ": { dir: "parentNode" },
-		"+": { dir: "previousSibling", first: true },
-		"~": { dir: "previousSibling" }
-	},
-
-	preFilter: {
-		"ATTR": function( match ) {
-			match[1] = match[1].replace( runescape, funescape );
-
-			// Move the given value to match[3] whether quoted or unquoted
-			match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
-
-			if ( match[2] === "~=" ) {
-				match[3] = " " + match[3] + " ";
-			}
-
-			return match.slice( 0, 4 );
-		},
-
-		"CHILD": function( match ) {
-			/* matches from matchExpr["CHILD"]
-				1 type (only|nth|...)
-				2 what (child|of-type)
-				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
-				4 xn-component of xn+y argument ([+-]?\d*n|)
-				5 sign of xn-component
-				6 x of xn-component
-				7 sign of y-component
-				8 y of y-component
-			*/
-			match[1] = match[1].toLowerCase();
-
-			if ( match[1].slice( 0, 3 ) === "nth" ) {
-				// nth-* requires argument
-				if ( !match[3] ) {
-					Sizzle.error( match[0] );
-				}
-
-				// numeric x and y parameters for Expr.filter.CHILD
-				// remember that false/true cast respectively to 0/1
-				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
-				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
-
-			// other types prohibit arguments
-			} else if ( match[3] ) {
-				Sizzle.error( match[0] );
-			}
-
-			return match;
-		},
-
-		"PSEUDO": function( match ) {
-			var excess,
-				unquoted = !match[5] && match[2];
-
-			if ( matchExpr["CHILD"].test( match[0] ) ) {
-				return null;
-			}
-
-			// Accept quoted arguments as-is
-			if ( match[3] && match[4] !== undefined ) {
-				match[2] = match[4];
-
-			// Strip excess characters from unquoted arguments
-			} else if ( unquoted && rpseudo.test( unquoted ) &&
-				// Get excess from tokenize (recursively)
-				(excess = tokenize( unquoted, true )) &&
-				// advance to the next closing parenthesis
-				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
-
-				// excess is a negative index
-				match[0] = match[0].slice( 0, excess );
-				match[2] = unquoted.slice( 0, excess );
-			}
-
-			// Return only captures needed by the pseudo filter method (type and argument)
-			return match.slice( 0, 3 );
-		}
-	},
-
-	filter: {
-
-		"TAG": function( nodeNameSelector ) {
-			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
-			return nodeNameSelector === "*" ?
-				function() { return true; } :
-				function( elem ) {
-					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
-				};
-		},
-
-		"CLASS": function( className ) {
-			var pattern = classCache[ className + " " ];
-
-			return pattern ||
-				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
-				classCache( className, function( elem ) {
-					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
-				});
-		},
-
-		"ATTR": function( name, operator, check ) {
-			return function( elem ) {
-				var result = Sizzle.attr( elem, name );
-
-				if ( result == null ) {
-					return operator === "!=";
-				}
-				if ( !operator ) {
-					return true;
-				}
-
-				result += "";
-
-				return operator === "=" ? result === check :
-					operator === "!=" ? result !== check :
-					operator === "^=" ? check && result.indexOf( check ) === 0 :
-					operator === "*=" ? check && result.indexOf( check ) > -1 :
-					operator === "$=" ? check && result.slice( -check.length ) === check :
-					operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
-					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
-					false;
-			};
-		},
-
-		"CHILD": function( type, what, argument, first, last ) {
-			var simple = type.slice( 0, 3 ) !== "nth",
-				forward = type.slice( -4 ) !== "last",
-				ofType = what === "of-type";
-
-			return first === 1 && last === 0 ?
-
-				// Shortcut for :nth-*(n)
-				function( elem ) {
-					return !!elem.parentNode;
-				} :
-
-				function( elem, context, xml ) {
-					var cache, outerCache, node, diff, nodeIndex, start,
-						dir = simple !== forward ? "nextSibling" : "previousSibling",
-						parent = elem.parentNode,
-						name = ofType && elem.nodeName.toLowerCase(),
-						useCache = !xml && !ofType;
-
-					if ( parent ) {
-
-						// :(first|last|only)-(child|of-type)
-						if ( simple ) {
-							while ( dir ) {
-								node = elem;
-								while ( (node = node[ dir ]) ) {
-									if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
-										return false;
-									}
-								}
-								// Reverse direction for :only-* (if we haven't yet done so)
-								start = dir = type === "only" && !start && "nextSibling";
-							}
-							return true;
-						}
-
-						start = [ forward ? parent.firstChild : parent.lastChild ];
-
-						// non-xml :nth-child(...) stores cache data on `parent`
-						if ( forward && useCache ) {
-							// Seek `elem` from a previously-cached index
-							outerCache = parent[ expando ] || (parent[ expando ] = {});
-							cache = outerCache[ type ] || [];
-							nodeIndex = cache[0] === dirruns && cache[1];
-							diff = cache[0] === dirruns && cache[2];
-							node = nodeIndex && parent.childNodes[ nodeIndex ];
-
-							while ( (node = ++nodeIndex && node && node[ dir ] ||
-
-								// Fallback to seeking `elem` from the start
-								(diff = nodeIndex = 0) || start.pop()) ) {
-
-								// When found, cache indexes on `parent` and break
-								if ( node.nodeType === 1 && ++diff && node === elem ) {
-									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
-									break;
-								}
-							}
-
-						// Use previously-cached element index if available
-						} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
-							diff = cache[1];
-
-						// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
-						} else {
-							// Use the same loop as above to seek `elem` from the start
-							while ( (node = ++nodeIndex && node && node[ dir ] ||
-								(diff = nodeIndex = 0) || start.pop()) ) {
-
-								if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
-									// Cache the index of each encountered element
-									if ( useCache ) {
-										(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
-									}
-
-									if ( node === elem ) {
-										break;
-									}
-								}
-							}
-						}
-
-						// Incorporate the offset, then check against cycle size
-						diff -= last;
-						return diff === first || ( diff % first === 0 && diff / first >= 0 );
-					}
-				};
-		},
-
-		"PSEUDO": function( pseudo, argument ) {
-			// pseudo-class names are case-insensitive
-			// http://www.w3.org/TR/selectors/#pseudo-classes
-			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
-			// Remember that setFilters inherits from pseudos
-			var args,
-				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
-					Sizzle.error( "unsupported pseudo: " + pseudo );
-
-			// The user may use createPseudo to indicate that
-			// arguments are needed to create the filter function
-			// just as Sizzle does
-			if ( fn[ expando ] ) {
-				return fn( argument );
-			}
-
-			// But maintain support for old signatures
-			if ( fn.length > 1 ) {
-				args = [ pseudo, pseudo, "", argument ];
-				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
-					markFunction(function( seed, matches ) {
-						var idx,
-							matched = fn( seed, argument ),
-							i = matched.length;
-						while ( i-- ) {
-							idx = indexOf.call( seed, matched[i] );
-							seed[ idx ] = !( matches[ idx ] = matched[i] );
-						}
-					}) :
-					function( elem ) {
-						return fn( elem, 0, args );
-					};
-			}
-
-			return fn;
-		}
-	},
-
-	pseudos: {
-		// Potentially complex pseudos
-		"not": markFunction(function( selector ) {
-			// Trim the selector passed to compile
-			// to avoid treating leading and trailing
-			// spaces as combinators
-			var input = [],
-				results = [],
-				matcher = compile( selector.replace( rtrim, "$1" ) );
-
-			return matcher[ expando ] ?
-				markFunction(function( seed, matches, context, xml ) {
-					var elem,
-						unmatched = matcher( seed, null, xml, [] ),
-						i = seed.length;
-
-					// Match elements unmatched by `matcher`
-					while ( i-- ) {
-						if ( (elem = unmatched[i]) ) {
-							seed[i] = !(matches[i] = elem);
-						}
-					}
-				}) :
-				function( elem, context, xml ) {
-					input[0] = elem;
-					matcher( input, null, xml, results );
-					return !results.pop();
-				};
-		}),
-
-		"has": markFunction(function( selector ) {
-			return function( elem ) {
-				return Sizzle( selector, elem ).length > 0;
-			};
-		}),
-
-		"contains": markFunction(function( text ) {
-			return function( elem ) {
-				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
-			};
-		}),
-
-		// "Whether an element is represented by a :lang() selector
-		// is based solely on the element's language value
-		// being equal to the identifier C,
-		// or beginning with the identifier C immediately followed by "-".
-		// The matching of C against the element's language value is performed case-insensitively.
-		// The identifier C does not have to be a valid language name."
-		// http://www.w3.org/TR/selectors/#lang-pseudo
-		"lang": markFunction( function( lang ) {
-			// lang value must be a valid identifier
-			if ( !ridentifier.test(lang || "") ) {
-				Sizzle.error( "unsupported lang: " + lang );
-			}
-			lang = lang.replace( runescape, funescape ).toLowerCase();
-			return function( elem ) {
-				var elemLang;
-				do {
-					if ( (elemLang = documentIsHTML ?
-						elem.lang :
-						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
-
-						elemLang = elemLang.toLowerCase();
-						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
-					}
-				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
-				return false;
-			};
-		}),
-
-		// Miscellaneous
-		"target": function( elem ) {
-			var hash = window.location && window.location.hash;
-			return hash && hash.slice( 1 ) === elem.id;
-		},
-
-		"root": function( elem ) {
-			return elem === docElem;
-		},
-
-		"focus": function( elem ) {
-			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
-		},
-
-		// Boolean properties
-		"enabled": function( elem ) {
-			return elem.disabled === false;
-		},
-
-		"disabled": function( elem ) {
-			return elem.disabled === true;
-		},
-
-		"checked": function( elem ) {
-			// In CSS3, :checked should return both checked and selected elements
-			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
-			var nodeName = elem.nodeName.toLowerCase();
-			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
-		},
-
-		"selected": function( elem ) {
-			// Accessing this property makes selected-by-default
-			// options in Safari work properly
-			if ( elem.parentNode ) {
-				elem.parentNode.selectedIndex;
-			}
-
-			return elem.selected === true;
-		},
-
-		// Contents
-		"empty": function( elem ) {
-			// http://www.w3.org/TR/selectors/#empty-pseudo
-			// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
-			//   not comment, processing instructions, or others
-			// Thanks to Diego Perini for the nodeName shortcut
-			//   Greater than "@" means alpha characters (specifically not starting with "#" or "?")
-			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
-				if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) {
-					return false;
-				}
-			}
-			return true;
-		},
-
-		"parent": function( elem ) {
-			return !Expr.pseudos["empty"]( elem );
-		},
-
-		// Element/input types
-		"header": function( elem ) {
-			return rheader.test( elem.nodeName );
-		},
-
-		"input": function( elem ) {
-			return rinputs.test( elem.nodeName );
-		},
-
-		"button": function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return name === "input" && elem.type === "button" || name === "button";
-		},
-
-		"text": function( elem ) {
-			var attr;
-			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
-			// use getAttribute instead to test this case
-			return elem.nodeName.toLowerCase() === "input" &&
-				elem.type === "text" &&
-				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type );
-		},
-
-		// Position-in-collection
-		"first": createPositionalPseudo(function() {
-			return [ 0 ];
-		}),
-
-		"last": createPositionalPseudo(function( matchIndexes, length ) {
-			return [ length - 1 ];
-		}),
-
-		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			return [ argument < 0 ? argument + length : argument ];
-		}),
-
-		"even": createPositionalPseudo(function( matchIndexes, length ) {
-			var i = 0;
-			for ( ; i < length; i += 2 ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"odd": createPositionalPseudo(function( matchIndexes, length ) {
-			var i = 1;
-			for ( ; i < length; i += 2 ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			var i = argument < 0 ? argument + length : argument;
-			for ( ; --i >= 0; ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			var i = argument < 0 ? argument + length : argument;
-			for ( ; ++i < length; ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		})
-	}
-};
-
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-// Add button/input type pseudos
-for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
-	Expr.pseudos[ i ] = createInputPseudo( i );
-}
-for ( i in { submit: true, reset: true } ) {
-	Expr.pseudos[ i ] = createButtonPseudo( i );
-}
-
-// Easy API for creating new setFilters
-function setFilters() {}
-setFilters.prototype = Expr.filters = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
-function tokenize( selector, parseOnly ) {
-	var matched, match, tokens, type,
-		soFar, groups, preFilters,
-		cached = tokenCache[ selector + " " ];
-
-	if ( cached ) {
-		return parseOnly ? 0 : cached.slice( 0 );
-	}
-
-	soFar = selector;
-	groups = [];
-	preFilters = Expr.preFilter;
-
-	while ( soFar ) {
-
-		// Comma and first run
-		if ( !matched || (match = rcomma.exec( soFar )) ) {
-			if ( match ) {
-				// Don't consume trailing commas as valid
-				soFar = soFar.slice( match[0].length ) || soFar;
-			}
-			groups.push( tokens = [] );
-		}
-
-		matched = false;
-
-		// Combinators
-		if ( (match = rcombinators.exec( soFar )) ) {
-			matched = match.shift();
-			tokens.push({
-				value: matched,
-				// Cast descendant combinators to space
-				type: match[0].replace( rtrim, " " )
-			});
-			soFar = soFar.slice( matched.length );
-		}
-
-		// Filters
-		for ( type in Expr.filter ) {
-			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
-				(match = preFilters[ type ]( match ))) ) {
-				matched = match.shift();
-				tokens.push({
-					value: matched,
-					type: type,
-					matches: match
-				});
-				soFar = soFar.slice( matched.length );
-			}
-		}
-
-		if ( !matched ) {
-			break;
-		}
-	}
-
-	// Return the length of the invalid excess
-	// if we're just parsing
-	// Otherwise, throw an error or return tokens
-	return parseOnly ?
-		soFar.length :
-		soFar ?
-			Sizzle.error( selector ) :
-			// Cache the tokens
-			tokenCache( selector, groups ).slice( 0 );
-}
-
-function toSelector( tokens ) {
-	var i = 0,
-		len = tokens.length,
-		selector = "";
-	for ( ; i < len; i++ ) {
-		selector += tokens[i].value;
-	}
-	return selector;
-}
-
-function addCombinator( matcher, combinator, base ) {
-	var dir = combinator.dir,
-		checkNonElements = base && dir === "parentNode",
-		doneName = done++;
-
-	return combinator.first ?
-		// Check against closest ancestor/preceding element
-		function( elem, context, xml ) {
-			while ( (elem = elem[ dir ]) ) {
-				if ( elem.nodeType === 1 || checkNonElements ) {
-					return matcher( elem, context, xml );
-				}
-			}
-		} :
-
-		// Check against all ancestor/preceding elements
-		function( elem, context, xml ) {
-			var data, cache, outerCache,
-				dirkey = dirruns + " " + doneName;
-
-			// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
-			if ( xml ) {
-				while ( (elem = elem[ dir ]) ) {
-					if ( elem.nodeType === 1 || checkNonElements ) {
-						if ( matcher( elem, context, xml ) ) {
-							return true;
-						}
-					}
-				}
-			} else {
-				while ( (elem = elem[ dir ]) ) {
-					if ( elem.nodeType === 1 || checkNonElements ) {
-						outerCache = elem[ expando ] || (elem[ expando ] = {});
-						if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {
-							if ( (data = cache[1]) === true || data === cachedruns ) {
-								return data === true;
-							}
-						} else {
-							cache = outerCache[ dir ] = [ dirkey ];
-							cache[1] = matcher( elem, context, xml ) || cachedruns;
-							if ( cache[1] === true ) {
-								return true;
-							}
-						}
-					}
-				}
-			}
-		};
-}
-
-function elementMatcher( matchers ) {
-	return matchers.length > 1 ?
-		function( elem, context, xml ) {
-			var i = matchers.length;
-			while ( i-- ) {
-				if ( !matchers[i]( elem, context, xml ) ) {
-					return false;
-				}
-			}
-			return true;
-		} :
-		matchers[0];
-}
-
-function condense( unmatched, map, filter, context, xml ) {
-	var elem,
-		newUnmatched = [],
-		i = 0,
-		len = unmatched.length,
-		mapped = map != null;
-
-	for ( ; i < len; i++ ) {
-		if ( (elem = unmatched[i]) ) {
-			if ( !filter || filter( elem, context, xml ) ) {
-				newUnmatched.push( elem );
-				if ( mapped ) {
-					map.push( i );
-				}
-			}
-		}
-	}
-
-	return newUnmatched;
-}
-
-function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
-	if ( postFilter && !postFilter[ expando ] ) {
-		postFilter = setMatcher( postFilter );
-	}
-	if ( postFinder && !postFinder[ expando ] ) {
-		postFinder = setMatcher( postFinder, postSelector );
-	}
-	return markFunction(function( seed, results, context, xml ) {
-		var temp, i, elem,
-			preMap = [],
-			postMap = [],
-			preexisting = results.length,
-
-			// Get initial elements from seed or context
-			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
-
-			// Prefilter to get matcher input, preserving a map for seed-results synchronization
-			matcherIn = preFilter && ( seed || !selector ) ?
-				condense( elems, preMap, preFilter, context, xml ) :
-				elems,
-
-			matcherOut = matcher ?
-				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
-				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
-
-					// ...intermediate processing is necessary
-					[] :
-
-					// ...otherwise use results directly
-					results :
-				matcherIn;
-
-		// Find primary matches
-		if ( matcher ) {
-			matcher( matcherIn, matcherOut, context, xml );
-		}
-
-		// Apply postFilter
-		if ( postFilter ) {
-			temp = condense( matcherOut, postMap );
-			postFilter( temp, [], context, xml );
-
-			// Un-match failing elements by moving them back to matcherIn
-			i = temp.length;
-			while ( i-- ) {
-				if ( (elem = temp[i]) ) {
-					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
-				}
-			}
-		}
-
-		if ( seed ) {
-			if ( postFinder || preFilter ) {
-				if ( postFinder ) {
-					// Get the final matcherOut by condensing this intermediate into postFinder contexts
-					temp = [];
-					i = matcherOut.length;
-					while ( i-- ) {
-						if ( (elem = matcherOut[i]) ) {
-							// Restore matcherIn since elem is not yet a final match
-							temp.push( (matcherIn[i] = elem) );
-						}
-					}
-					postFinder( null, (matcherOut = []), temp, xml );
-				}
-
-				// Move matched elements from seed to results to keep them synchronized
-				i = matcherOut.length;
-				while ( i-- ) {
-					if ( (elem = matcherOut[i]) &&
-						(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
-
-						seed[temp] = !(results[temp] = elem);
-					}
-				}
-			}
-
-		// Add elements to results, through postFinder if defined
-		} else {
-			matcherOut = condense(
-				matcherOut === results ?
-					matcherOut.splice( preexisting, matcherOut.length ) :
-					matcherOut
-			);
-			if ( postFinder ) {
-				postFinder( null, results, matcherOut, xml );
-			} else {
-				push.apply( results, matcherOut );
-			}
-		}
-	});
-}
-
-function matcherFromTokens( tokens ) {
-	var checkContext, matcher, j,
-		len = tokens.length,
-		leadingRelative = Expr.relative[ tokens[0].type ],
-		implicitRelative = leadingRelative || Expr.relative[" "],
-		i = leadingRelative ? 1 : 0,
-
-		// The foundational matcher ensures that elements are reachable from top-level context(s)
-		matchContext = addCombinator( function( elem ) {
-			return elem === checkContext;
-		}, implicitRelative, true ),
-		matchAnyContext = addCombinator( function( elem ) {
-			return indexOf.call( checkContext, elem ) > -1;
-		}, implicitRelative, true ),
-		matchers = [ function( elem, context, xml ) {
-			return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
-				(checkContext = context).nodeType ?
-					matchContext( elem, context, xml ) :
-					matchAnyContext( elem, context, xml ) );
-		} ];
-
-	for ( ; i < len; i++ ) {
-		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
-			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
-		} else {
-			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
-
-			// Return special upon seeing a positional matcher
-			if ( matcher[ expando ] ) {
-				// Find the next relative operator (if any) for proper handling
-				j = ++i;
-				for ( ; j < len; j++ ) {
-					if ( Expr.relative[ tokens[j].type ] ) {
-						break;
-					}
-				}
-				return setMatcher(
-					i > 1 && elementMatcher( matchers ),
-					i > 1 && toSelector(
-						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
-						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
-					).replace( rtrim, "$1" ),
-					matcher,
-					i < j && matcherFromTokens( tokens.slice( i, j ) ),
-					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
-					j < len && toSelector( tokens )
-				);
-			}
-			matchers.push( matcher );
-		}
-	}
-
-	return elementMatcher( matchers );
-}
-
-function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
-	// A counter to specify which element is currently being matched
-	var matcherCachedRuns = 0,
-		bySet = setMatchers.length > 0,
-		byElement = elementMatchers.length > 0,
-		superMatcher = function( seed, context, xml, results, expandContext ) {
-			var elem, j, matcher,
-				setMatched = [],
-				matchedCount = 0,
-				i = "0",
-				unmatched = seed && [],
-				outermost = expandContext != null,
-				contextBackup = outermostContext,
-				// We must always have either seed elements or context
-				elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),
-				// Use integer dirruns iff this is the outermost matcher
-				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);
-
-			if ( outermost ) {
-				outermostContext = context !== document && context;
-				cachedruns = matcherCachedRuns;
-			}
-
-			// Add elements passing elementMatchers directly to results
-			// Keep `i` a string if there are no elements so `matchedCount` will be "00" below
-			for ( ; (elem = elems[i]) != null; i++ ) {
-				if ( byElement && elem ) {
-					j = 0;
-					while ( (matcher = elementMatchers[j++]) ) {
-						if ( matcher( elem, context, xml ) ) {
-							results.push( elem );
-							break;
-						}
-					}
-					if ( outermost ) {
-						dirruns = dirrunsUnique;
-						cachedruns = ++matcherCachedRuns;
-					}
-				}
-
-				// Track unmatched elements for set filters
-				if ( bySet ) {
-					// They will have gone through all possible matchers
-					if ( (elem = !matcher && elem) ) {
-						matchedCount--;
-					}
-
-					// Lengthen the array for every element, matched or not
-					if ( seed ) {
-						unmatched.push( elem );
-					}
-				}
-			}
-
-			// Apply set filters to unmatched elements
-			matchedCount += i;
-			if ( bySet && i !== matchedCount ) {
-				j = 0;
-				while ( (matcher = setMatchers[j++]) ) {
-					matcher( unmatched, setMatched, context, xml );
-				}
-
-				if ( seed ) {
-					// Reintegrate element matches to eliminate the need for sorting
-					if ( matchedCount > 0 ) {
-						while ( i-- ) {
-							if ( !(unmatched[i] || setMatched[i]) ) {
-								setMatched[i] = pop.call( results );
-							}
-						}
-					}
-
-					// Discard index placeholder values to get only actual matches
-					setMatched = condense( setMatched );
-				}
-
-				// Add matches to results
-				push.apply( results, setMatched );
-
-				// Seedless set matches succeeding multiple successful matchers stipulate sorting
-				if ( outermost && !seed && setMatched.length > 0 &&
-					( matchedCount + setMatchers.length ) > 1 ) {
-
-					Sizzle.uniqueSort( results );
-				}
-			}
-
-			// Override manipulation of globals by nested matchers
-			if ( outermost ) {
-				dirruns = dirrunsUnique;
-				outermostContext = contextBackup;
-			}
-
-			return unmatched;
-		};
-
-	return bySet ?
-		markFunction( superMatcher ) :
-		superMatcher;
-}
-
-compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
-	var i,
-		setMatchers = [],
-		elementMatchers = [],
-		cached = compilerCache[ selector + " " ];
-
-	if ( !cached ) {
-		// Generate a function of recursive functions that can be used to check each element
-		if ( !group ) {
-			group = tokenize( selector );
-		}
-		i = group.length;
-		while ( i-- ) {
-			cached = matcherFromTokens( group[i] );
-			if ( cached[ expando ] ) {
-				setMatchers.push( cached );
-			} else {
-				elementMatchers.push( cached );
-			}
-		}
-
-		// Cache the compiled function
-		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
-	}
-	return cached;
-};
-
-function multipleContexts( selector, contexts, results ) {
-	var i = 0,
-		len = contexts.length;
-	for ( ; i < len; i++ ) {
-		Sizzle( selector, contexts[i], results );
-	}
-	return results;
-}
-
-function select( selector, context, results, seed ) {
-	var i, tokens, token, type, find,
-		match = tokenize( selector );
-
-	if ( !seed ) {
-		// Try to minimize operations if there is only one group
-		if ( match.length === 1 ) {
-
-			// Take a shortcut and set the context if the root selector is an ID
-			tokens = match[0] = match[0].slice( 0 );
-			if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
-					support.getById && context.nodeType === 9 && documentIsHTML &&
-					Expr.relative[ tokens[1].type ] ) {
-
-				context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
-				if ( !context ) {
-					return results;
-				}
-				selector = selector.slice( tokens.shift().value.length );
-			}
-
-			// Fetch a seed set for right-to-left matching
-			i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
-			while ( i-- ) {
-				token = tokens[i];
-
-				// Abort if we hit a combinator
-				if ( Expr.relative[ (type = token.type) ] ) {
-					break;
-				}
-				if ( (find = Expr.find[ type ]) ) {
-					// Search, expanding context for leading sibling combinators
-					if ( (seed = find(
-						token.matches[0].replace( runescape, funescape ),
-						rsibling.test( tokens[0].type ) && context.parentNode || context
-					)) ) {
-
-						// If seed is empty or no tokens remain, we can return early
-						tokens.splice( i, 1 );
-						selector = seed.length && toSelector( tokens );
-						if ( !selector ) {
-							push.apply( results, seed );
-							return results;
-						}
-
-						break;
-					}
-				}
-			}
-		}
-	}
-
-	// Compile and execute a filtering function
-	// Provide `match` to avoid retokenization if we modified the selector above
-	compile( selector, match )(
-		seed,
-		context,
-		!documentIsHTML,
-		results,
-		rsibling.test( selector )
-	);
-	return results;
-}
-
-// One-time assignments
-
-// Sort stability
-support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
-
-// Support: Chrome<14
-// Always assume duplicates if they aren't passed to the comparison function
-support.detectDuplicates = hasDuplicate;
-
-// Initialize against the default document
-setDocument();
-
-// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
-// Detached nodes confoundingly follow *each other*
-support.sortDetached = assert(function( div1 ) {
-	// Should return 1, but returns 4 (following)
-	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
-});
-
-// Support: IE<8
-// Prevent attribute/property "interpolation"
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !assert(function( div ) {
-	div.innerHTML = "<a href='#'></a>";
-	return div.firstChild.getAttribute("href") === "#" ;
-}) ) {
-	addHandle( "type|href|height|width", function( elem, name, isXML ) {
-		if ( !isXML ) {
-			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
-		}
-	});
-}
-
-// Support: IE<9
-// Use defaultValue in place of getAttribute("value")
-if ( !support.attributes || !assert(function( div ) {
-	div.innerHTML = "<input/>";
-	div.firstChild.setAttribute( "value", "" );
-	return div.firstChild.getAttribute( "value" ) === "";
-}) ) {
-	addHandle( "value", function( elem, name, isXML ) {
-		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
-			return elem.defaultValue;
-		}
-	});
-}
-
-// Support: IE<9
-// Use getAttributeNode to fetch booleans when getAttribute lies
-if ( !assert(function( div ) {
-	return div.getAttribute("disabled") == null;
-}) ) {
-	addHandle( booleans, function( elem, name, isXML ) {
-		var val;
-		if ( !isXML ) {
-			return (val = elem.getAttributeNode( name )) && val.specified ?
-				val.value :
-				elem[ name ] === true ? name.toLowerCase() : null;
-		}
-	});
-}
-
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.pseudos;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-})( window );
-// String to Object options format cache
-var optionsCache = {};
-
-// Convert String-formatted options into Object-formatted ones and store in cache
-function createOptions( options ) {
-	var object = optionsCache[ options ] = {};
-	jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) {
-		object[ flag ] = true;
-	});
-	return object;
-}
-
-/*
- * Create a callback list using the following parameters:
- *
- *	options: an optional list of space-separated options that will change how
- *			the callback list behaves or a more traditional option object
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible options:
- *
- *	once:			will ensure the callback list can only be fired once (like a Deferred)
- *
- *	memory:			will keep track of previous values and will call any callback added
- *					after the list has been fired right away with the latest "memorized"
- *					values (like a Deferred)
- *
- *	unique:			will ensure a callback can only be added once (no duplicate in the list)
- *
- *	stopOnFalse:	interrupt callings when a callback returns false
- *
- */
-jQuery.Callbacks = function( options ) {
-
-	// Convert options from String-formatted to Object-formatted if needed
-	// (we check in cache first)
-	options = typeof options === "string" ?
-		( optionsCache[ options ] || createOptions( options ) ) :
-		jQuery.extend( {}, options );
-
-	var // Flag to know if list is currently firing
-		firing,
-		// Last fire value (for non-forgettable lists)
-		memory,
-		// Flag to know if list was already fired
-		fired,
-		// End of the loop when firing
-		firingLength,
-		// Index of currently firing callback (modified by remove if needed)
-		firingIndex,
-		// First callback to fire (used internally by add and fireWith)
-		firingStart,
-		// Actual callback list
-		list = [],
-		// Stack of fire calls for repeatable lists
-		stack = !options.once && [],
-		// Fire callbacks
-		fire = function( data ) {
-			memory = options.memory && data;
-			fired = true;
-			firingIndex = firingStart || 0;
-			firingStart = 0;
-			firingLength = list.length;
-			firing = true;
-			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
-				if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
-					memory = false; // To prevent further calls using add
-					break;
-				}
-			}
-			firing = false;
-			if ( list ) {
-				if ( stack ) {
-					if ( stack.length ) {
-						fire( stack.shift() );
-					}
-				} else if ( memory ) {
-					list = [];
-				} else {
-					self.disable();
-				}
-			}
-		},
-		// Actual Callbacks object
-		self = {
-			// Add a callback or a collection of callbacks to the list
-			add: function() {
-				if ( list ) {
-					// First, we save the current length
-					var start = list.length;
-					(function add( args ) {
-						jQuery.each( args, function( _, arg ) {
-							var type = jQuery.type( arg );
-							if ( type === "function" ) {
-								if ( !options.unique || !self.has( arg ) ) {
-									list.push( arg );
-								}
-							} else if ( arg && arg.length && type !== "string" ) {
-								// Inspect recursively
-								add( arg );
-							}
-						});
-					})( arguments );
-					// Do we need to add the callbacks to the
-					// current firing batch?
-					if ( firing ) {
-						firingLength = list.length;
-					// With memory, if we're not firing then
-					// we should call right away
-					} else if ( memory ) {
-						firingStart = start;
-						fire( memory );
-					}
-				}
-				return this;
-			},
-			// Remove a callback from the list
-			remove: function() {
-				if ( list ) {
-					jQuery.each( arguments, function( _, arg ) {
-						var index;
-						while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
-							list.splice( index, 1 );
-							// Handle firing indexes
-							if ( firing ) {
-								if ( index <= firingLength ) {
-									firingLength--;
-								}
-								if ( index <= firingIndex ) {
-									firingIndex--;
-								}
-							}
-						}
-					});
-				}
-				return this;
-			},
-			// Check if a given callback is in the list.
-			// If no argument is given, return whether or not list has callbacks attached.
-			has: function( fn ) {
-				return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
-			},
-			// Remove all callbacks from the list
-			empty: function() {
-				list = [];
-				firingLength = 0;
-				return this;
-			},
-			// Have the list do nothing anymore
-			disable: function() {
-				list = stack = memory = undefined;
-				return this;
-			},
-			// Is it disabled?
-			disabled: function() {
-				return !list;
-			},
-			// Lock the list in its current state
-			lock: function() {
-				stack = undefined;
-				if ( !memory ) {
-					self.disable();
-				}
-				return this;
-			},
-			// Is it locked?
-			locked: function() {
-				return !stack;
-			},
-			// Call all callbacks with the given context and arguments
-			fireWith: function( context, args ) {
-				if ( list && ( !fired || stack ) ) {
-					args = args || [];
-					args = [ context, args.slice ? args.slice() : args ];
-					if ( firing ) {
-						stack.push( args );
-					} else {
-						fire( args );
-					}
-				}
-				return this;
-			},
-			// Call all the callbacks with the given arguments
-			fire: function() {
-				self.fireWith( this, arguments );
-				return this;
-			},
-			// To know if the callbacks have already been called at least once
-			fired: function() {
-				return !!fired;
-			}
-		};
-
-	return self;
-};
-jQuery.extend({
-
-	Deferred: function( func ) {
-		var tuples = [
-				// action, add listener, listener list, final state
-				[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
-				[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
-				[ "notify", "progress", jQuery.Callbacks("memory") ]
-			],
-			state = "pending",
-			promise = {
-				state: function() {
-					return state;
-				},
-				always: function() {
-					deferred.done( arguments ).fail( arguments );
-					return this;
-				},
-				then: function( /* fnDone, fnFail, fnProgress */ ) {
-					var fns = arguments;
-					return jQuery.Deferred(function( newDefer ) {
-						jQuery.each( tuples, function( i, tuple ) {
-							var action = tuple[ 0 ],
-								fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
-							// deferred[ done | fail | progress ] for forwarding actions to newDefer
-							deferred[ tuple[1] ](function() {
-								var returned = fn && fn.apply( this, arguments );
-								if ( returned && jQuery.isFunction( returned.promise ) ) {
-									returned.promise()
-										.done( newDefer.resolve )
-										.fail( newDefer.reject )
-										.progress( newDefer.notify );
-								} else {
-									newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
-								}
-							});
-						});
-						fns = null;
-					}).promise();
-				},
-				// Get a promise for this deferred
-				// If obj is provided, the promise aspect is added to the object
-				promise: function( obj ) {
-					return obj != null ? jQuery.extend( obj, promise ) : promise;
-				}
-			},
-			deferred = {};
-
-		// Keep pipe for back-compat
-		promise.pipe = promise.then;
-
-		// Add list-specific methods
-		jQuery.each( tuples, function( i, tuple ) {
-			var list = tuple[ 2 ],
-				stateString = tuple[ 3 ];
-
-			// promise[ done | fail | progress ] = list.add
-			promise[ tuple[1] ] = list.add;
-
-			// Handle state
-			if ( stateString ) {
-				list.add(function() {
-					// state = [ resolved | rejected ]
-					state = stateString;
-
-				// [ reject_list | resolve_list ].disable; progress_list.lock
-				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
-			}
-
-			// deferred[ resolve | reject | notify ]
-			deferred[ tuple[0] ] = function() {
-				deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
-				return this;
-			};
-			deferred[ tuple[0] + "With" ] = list.fireWith;
-		});
-
-		// Make the deferred a promise
-		promise.promise( deferred );
-
-		// Call given func if any
-		if ( func ) {
-			func.call( deferred, deferred );
-		}
-
-		// All done!
-		return deferred;
-	},
-
-	// Deferred helper
-	when: function( subordinate /* , ..., subordinateN */ ) {
-		var i = 0,
-			resolveValues = core_slice.call( arguments ),
-			length = resolveValues.length,
-
-			// the count of uncompleted subordinates
-			remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
-
-			// the master Deferred. If resolveValues consist of only a single Deferred, just use that.
-			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
-
-			// Update function for both resolve and progress values
-			updateFunc = function( i, contexts, values ) {
-				return function( value ) {
-					contexts[ i ] = this;
-					values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
-					if( values === progressValues ) {
-						deferred.notifyWith( contexts, values );
-					} else if ( !( --remaining ) ) {
-						deferred.resolveWith( contexts, values );
-					}
-				};
-			},
-
-			progressValues, progressContexts, resolveContexts;
-
-		// add listeners to Deferred subordinates; treat others as resolved
-		if ( length > 1 ) {
-			progressValues = new Array( length );
-			progressContexts = new Array( length );
-			resolveContexts = new Array( length );
-			for ( ; i < length; i++ ) {
-				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
-					resolveValues[ i ].promise()
-						.done( updateFunc( i, resolveContexts, resolveValues ) )
-						.fail( deferred.reject )
-						.progress( updateFunc( i, progressContexts, progressValues ) );
-				} else {
-					--remaining;
-				}
-			}
-		}
-
-		// if we're not waiting on anything, resolve the master
-		if ( !remaining ) {
-			deferred.resolveWith( resolveContexts, resolveValues );
-		}
-
-		return deferred.promise();
-	}
-});
-jQuery.support = (function( support ) {
-
-	var all, a, input, select, fragment, opt, eventName, isSupported, i,
-		div = document.createElement("div");
-
-	// Setup
-	div.setAttribute( "className", "t" );
-	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
-
-	// Finish early in limited (non-browser) environments
-	all = div.getElementsByTagName("*") || [];
-	a = div.getElementsByTagName("a")[ 0 ];
-	if ( !a || !a.style || !all.length ) {
-		return support;
-	}
-
-	// First batch of tests
-	select = document.createElement("select");
-	opt = select.appendChild( document.createElement("option") );
-	input = div.getElementsByTagName("input")[ 0 ];
-
-	a.style.cssText = "top:1px;float:left;opacity:.5";
-
-	// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
-	support.getSetAttribute = div.className !== "t";
-
-	// IE strips leading whitespace when .innerHTML is used
-	support.leadingWhitespace = div.firstChild.nodeType === 3;
-
-	// Make sure that tbody elements aren't automatically inserted
-	// IE will insert them into empty tables
-	support.tbody = !div.getElementsByTagName("tbody").length;
-
-	// Make sure that link elements get serialized correctly by innerHTML
-	// This requires a wrapper element in IE
-	support.htmlSerialize = !!div.getElementsByTagName("link").length;
-
-	// Get the style information from getAttribute
-	// (IE uses .cssText instead)
-	support.style = /top/.test( a.getAttribute("style") );
-
-	// Make sure that URLs aren't manipulated
-	// (IE normalizes it by default)
-	support.hrefNormalized = a.getAttribute("href") === "/a";
-
-	// Make sure that element opacity exists
-	// (IE uses filter instead)
-	// Use a regex to work around a WebKit issue. See #5145
-	support.opacity = /^0.5/.test( a.style.opacity );
-
-	// Verify style float existence
-	// (IE uses styleFloat instead of cssFloat)
-	support.cssFloat = !!a.style.cssFloat;
-
-	// Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
-	support.checkOn = !!input.value;
-
-	// Make sure that a selected-by-default option has a working selected property.
-	// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
-	support.optSelected = opt.selected;
-
-	// Tests for enctype support on a form (#6743)
-	support.enctype = !!document.createElement("form").enctype;
-
-	// Makes sure cloning an html5 element does not cause problems
-	// Where outerHTML is undefined, this still works
-	support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>";
-
-	// Will be defined later
-	support.inlineBlockNeedsLayout = false;
-	support.shrinkWrapBlocks = false;
-	support.pixelPosition = false;
-	support.deleteExpando = true;
-	support.noCloneEvent = true;
-	support.reliableMarginRight = true;
-	support.boxSizingReliable = true;
-
-	// Make sure checked status is properly cloned
-	input.checked = true;
-	support.noCloneChecked = input.cloneNode( true ).checked;
-
-	// Make sure that the options inside disabled selects aren't marked as disabled
-	// (WebKit marks them as disabled)
-	select.disabled = true;
-	support.optDisabled = !opt.disabled;
-
-	// Support: IE<9
-	try {
-		delete div.test;
-	} catch( e ) {
-		support.deleteExpando = false;
-	}
-
-	// Check if we can trust getAttribute("value")
-	input = document.createElement("input");
-	input.setAttribute( "value", "" );
-	support.input = input.getAttribute( "value" ) === "";
-
-	// Check if an input maintains its value after becoming a radio
-	input.value = "t";
-	input.setAttribute( "type", "radio" );
-	support.radioValue = input.value === "t";
-
-	// #11217 - WebKit loses check when the name is after the checked attribute
-	input.setAttribute( "checked", "t" );
-	input.setAttribute( "name", "t" );
-
-	fragment = document.createDocumentFragment();
-	fragment.appendChild( input );
-
-	// Check if a disconnected checkbox will retain its checked
-	// value of true after appended to the DOM (IE6/7)
-	support.appendChecked = input.checked;
-
-	// WebKit doesn't clone checked state correctly in fragments
-	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
-	// Support: IE<9
-	// Opera does not clone events (and typeof div.attachEvent === undefined).
-	// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
-	if ( div.attachEvent ) {
-		div.attachEvent( "onclick", function() {
-			support.noCloneEvent = false;
-		});
-
-		div.cloneNode( true ).click();
-	}
-
-	// Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)
-	// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
-	for ( i in { submit: true, change: true, focusin: true }) {
-		div.setAttribute( eventName = "on" + i, "t" );
-
-		support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false;
-	}
-
-	div.style.backgroundClip = "content-box";
-	div.cloneNode( true ).style.backgroundClip = "";
-	support.clearCloneStyle = div.style.backgroundClip === "content-box";
-
-	// Support: IE<9
-	// Iteration over object's inherited properties before its own.
-	for ( i in jQuery( support ) ) {
-		break;
-	}
-	support.ownLast = i !== "0";
-
-	// Run tests that need a body at doc ready
-	jQuery(function() {
-		var container, marginDiv, tds,
-			divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
-			body = document.getElementsByTagName("body")[0];
-
-		if ( !body ) {
-			// Return for frameset docs that don't have a body
-			return;
-		}
-
-		container = document.createElement("div");
-		container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
-
-		body.appendChild( container ).appendChild( div );
-
-		// Support: IE8
-		// Check if table cells still have offsetWidth/Height when they are set
-		// to display:none and there are still other visible table cells in a
-		// table row; if so, offsetWidth/Height are not reliable for use when
-		// determining if an element has been hidden directly using
-		// display:none (it is still safe to use offsets if a parent element is
-		// hidden; don safety goggles and see bug #4512 for more information).
-		div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
-		tds = div.getElementsByTagName("td");
-		tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
-		isSupported = ( tds[ 0 ].offsetHeight === 0 );
-
-		tds[ 0 ].style.display = "";
-		tds[ 1 ].style.display = "none";
-
-		// Support: IE8
-		// Check if empty table cells still have offsetWidth/Height
-		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-
-		// Check box-sizing and margin behavior.
-		div.innerHTML = "";
-		div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
-
-		// Workaround failing boxSizing test due to offsetWidth returning wrong value
-		// with some non-1 values of body zoom, ticket #13543
-		jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
-			support.boxSizing = div.offsetWidth === 4;
-		});
-
-		// Use window.getComputedStyle because jsdom on node.js will break without it.
-		if ( window.getComputedStyle ) {
-			support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
-			support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
-
-			// Check if div with explicit width and no margin-right incorrectly
-			// gets computed margin-right based on width of container. (#3333)
-			// Fails in WebKit before Feb 2011 nightlies
-			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-			marginDiv = div.appendChild( document.createElement("div") );
-			marginDiv.style.cssText = div.style.cssText = divReset;
-			marginDiv.style.marginRight = marginDiv.style.width = "0";
-			div.style.width = "1px";
-
-			support.reliableMarginRight =
-				!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
-		}
-
-		if ( typeof div.style.zoom !== core_strundefined ) {
-			// Support: IE<8
-			// Check if natively block-level elements act like inline-block
-			// elements when setting their display to 'inline' and giving
-			// them layout
-			div.innerHTML = "";
-			div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
-			support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
-
-			// Support: IE6
-			// Check if elements with layout shrink-wrap their children
-			div.style.display = "block";
-			div.innerHTML = "<div></div>";
-			div.firstChild.style.width = "5px";
-			support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
-
-			if ( support.inlineBlockNeedsLayout ) {
-				// Prevent IE 6 from affecting layout for positioned elements #11048
-				// Prevent IE from shrinking the body in IE 7 mode #12869
-				// Support: IE<8
-				body.style.zoom = 1;
-			}
-		}
-
-		body.removeChild( container );
-
-		// Null elements to avoid leaks in IE
-		container = div = tds = marginDiv = null;
-	});
-
-	// Null elements to avoid leaks in IE
-	all = select = fragment = opt = a = input = null;
-
-	return support;
-})({});
-
-var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
-	rmultiDash = /([A-Z])/g;
-
-function internalData( elem, name, data, pvt /* Internal Use Only */ ){
-	if ( !jQuery.acceptData( elem ) ) {
-		return;
-	}
-
-	var ret, thisCache,
-		internalKey = jQuery.expando,
-
-		// We have to handle DOM nodes and JS objects differently because IE6-7
-		// can't GC object references properly across the DOM-JS boundary
-		isNode = elem.nodeType,
-
-		// Only DOM nodes need the global jQuery cache; JS object data is
-		// attached directly to the object so GC can occur automatically
-		cache = isNode ? jQuery.cache : elem,
-
-		// Only defining an ID for JS objects if its cache already exists allows
-		// the code to shortcut on the same path as a DOM node with no cache
-		id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
-
-	// Avoid doing any more work than we need to when trying to get data on an
-	// object that has no data at all
-	if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) {
-		return;
-	}
-
-	if ( !id ) {
-		// Only DOM nodes need a new unique ID for each element since their data
-		// ends up in the global cache
-		if ( isNode ) {
-			id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++;
-		} else {
-			id = internalKey;
-		}
-	}
-
-	if ( !cache[ id ] ) {
-		// Avoid exposing jQuery metadata on plain JS objects when the object
-		// is serialized using JSON.stringify
-		cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
-	}
-
-	// An object can be passed to jQuery.data instead of a key/value pair; this gets
-	// shallow copied over onto the existing cache
-	if ( typeof name === "object" || typeof name === "function" ) {
-		if ( pvt ) {
-			cache[ id ] = jQuery.extend( cache[ id ], name );
-		} else {
-			cache[ id ].data = jQuery.extend( cache[ id ].data, name );
-		}
-	}
-
-	thisCache = cache[ id ];
-
-	// jQuery data() is stored in a separate object inside the object's internal data
-	// cache in order to avoid key collisions between internal data and user-defined
-	// data.
-	if ( !pvt ) {
-		if ( !thisCache.data ) {
-			thisCache.data = {};
-		}
-
-		thisCache = thisCache.data;
-	}
-
-	if ( data !== undefined ) {
-		thisCache[ jQuery.camelCase( name ) ] = data;
-	}
-
-	// Check for both converted-to-camel and non-converted data property names
-	// If a data property was specified
-	if ( typeof name === "string" ) {
-
-		// First Try to find as-is property data
-		ret = thisCache[ name ];
-
-		// Test for null|undefined property data
-		if ( ret == null ) {
-
-			// Try to find the camelCased property
-			ret = thisCache[ jQuery.camelCase( name ) ];
-		}
-	} else {
-		ret = thisCache;
-	}
-
-	return ret;
-}
-
-function internalRemoveData( elem, name, pvt ) {
-	if ( !jQuery.acceptData( elem ) ) {
-		return;
-	}
-
-	var thisCache, i,
-		isNode = elem.nodeType,
-
-		// See jQuery.data for more information
-		cache = isNode ? jQuery.cache : elem,
-		id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
-
-	// If there is already no cache entry for this object, there is no
-	// purpose in continuing
-	if ( !cache[ id ] ) {
-		return;
-	}
-
-	if ( name ) {
-
-		thisCache = pvt ? cache[ id ] : cache[ id ].data;
-
-		if ( thisCache ) {
-
-			// Support array or space separated string names for data keys
-			if ( !jQuery.isArray( name ) ) {
-
-				// try the string as a key before any manipulation
-				if ( name in thisCache ) {
-					name = [ name ];
-				} else {
-
-					// split the camel cased version by spaces unless a key with the spaces exists
-					name = jQuery.camelCase( name );
-					if ( name in thisCache ) {
-						name = [ name ];
-					} else {
-						name = name.split(" ");
-					}
-				}
-			} else {
-				// If "name" is an array of keys...
-				// When data is initially created, via ("key", "val") signature,
-				// keys will be converted to camelCase.
-				// Since there is no way to tell _how_ a key was added, remove
-				// both plain key and camelCase key. #12786
-				// This will only penalize the array argument path.
-				name = name.concat( jQuery.map( name, jQuery.camelCase ) );
-			}
-
-			i = name.length;
-			while ( i-- ) {
-				delete thisCache[ name[i] ];
-			}
-
-			// If there is no data left in the cache, we want to continue
-			// and let the cache object itself get destroyed
-			if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {
-				return;
-			}
-		}
-	}
-
-	// See jQuery.data for more information
-	if ( !pvt ) {
-		delete cache[ id ].data;
-
-		// Don't destroy the parent cache unless the internal data object
-		// had been the only thing left in it
-		if ( !isEmptyDataObject( cache[ id ] ) ) {
-			return;
-		}
-	}
-
-	// Destroy the cache
-	if ( isNode ) {
-		jQuery.cleanData( [ elem ], true );
-
-	// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
-	/* jshint eqeqeq: false */
-	} else if ( jQuery.support.deleteExpando || cache != cache.window ) {
-		/* jshint eqeqeq: true */
-		delete cache[ id ];
-
-	// When all else fails, null
-	} else {
-		cache[ id ] = null;
-	}
-}
-
-jQuery.extend({
-	cache: {},
-
-	// The following elements throw uncatchable exceptions if you
-	// attempt to add expando properties to them.
-	noData: {
-		"applet": true,
-		"embed": true,
-		// Ban all objects except for Flash (which handle expandos)
-		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
-	},
-
-	hasData: function( elem ) {
-		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
-		return !!elem && !isEmptyDataObject( elem );
-	},
-
-	data: function( elem, name, data ) {
-		return internalData( elem, name, data );
-	},
-
-	removeData: function( elem, name ) {
-		return internalRemoveData( elem, name );
-	},
-
-	// For internal use only.
-	_data: function( elem, name, data ) {
-		return internalData( elem, name, data, true );
-	},
-
-	_removeData: function( elem, name ) {
-		return internalRemoveData( elem, name, true );
-	},
-
-	// A method for determining if a DOM node can handle the data expando
-	acceptData: function( elem ) {
-		// Do not set data on non-element because it will not be cleared (#8335).
-		if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) {
-			return false;
-		}
-
-		var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];
-
-		// nodes accept data unless otherwise specified; rejection can be conditional
-		return !noData || noData !== true && elem.getAttribute("classid") === noData;
-	}
-});
-
-jQuery.fn.extend({
-	data: function( key, value ) {
-		var attrs, name,
-			data = null,
-			i = 0,
-			elem = this[0];
-
-		// Special expections of .data basically thwart jQuery.access,
-		// so implement the relevant behavior ourselves
-
-		// Gets all values
-		if ( key === undefined ) {
-			if ( this.length ) {
-				data = jQuery.data( elem );
-
-				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
-					attrs = elem.attributes;
-					for ( ; i < attrs.length; i++ ) {
-						name = attrs[i].name;
-
-						if ( name.indexOf("data-") === 0 ) {
-							name = jQuery.camelCase( name.slice(5) );
-
-							dataAttr( elem, name, data[ name ] );
-						}
-					}
-					jQuery._data( elem, "parsedAttrs", true );
-				}
-			}
-
-			return data;
-		}
-
-		// Sets multiple values
-		if ( typeof key === "object" ) {
-			return this.each(function() {
-				jQuery.data( this, key );
-			});
-		}
-
-		return arguments.length > 1 ?
-
-			// Sets one value
-			this.each(function() {
-				jQuery.data( this, key, value );
-			}) :
-
-			// Gets one value
-			// Try to fetch any internally stored data first
-			elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;
-	},
-
-	removeData: function( key ) {
-		return this.each(function() {
-			jQuery.removeData( this, key );
-		});
-	}
-});
-
-function dataAttr( elem, key, data ) {
-	// If nothing was found internally, try to fetch any
-	// data from the HTML5 data-* attribute
-	if ( data === undefined && elem.nodeType === 1 ) {
-
-		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
-
-		data = elem.getAttribute( name );
-
-		if ( typeof data === "string" ) {
-			try {
-				data = data === "true" ? true :
-					data === "false" ? false :
-					data === "null" ? null :
-					// Only convert to a number if it doesn't change the string
-					+data + "" === data ? +data :
-					rbrace.test( data ) ? jQuery.parseJSON( data ) :
-						data;
-			} catch( e ) {}
-
-			// Make sure we set the data so it isn't changed later
-			jQuery.data( elem, key, data );
-
-		} else {
-			data = undefined;
-		}
-	}
-
-	return data;
-}
-
-// checks a cache object for emptiness
-function isEmptyDataObject( obj ) {
-	var name;
-	for ( name in obj ) {
-
-		// if the public data object is empty, the private is still empty
-		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
-			continue;
-		}
-		if ( name !== "toJSON" ) {
-			return false;
-		}
-	}
-
-	return true;
-}
-jQuery.extend({
-	queue: function( elem, type, data ) {
-		var queue;
-
-		if ( elem ) {
-			type = ( type || "fx" ) + "queue";
-			queue = jQuery._data( elem, type );
-
-			// Speed up dequeue by getting out quickly if this is just a lookup
-			if ( data ) {
-				if ( !queue || jQuery.isArray(data) ) {
-					queue = jQuery._data( elem, type, jQuery.makeArray(data) );
-				} else {
-					queue.push( data );
-				}
-			}
-			return queue || [];
-		}
-	},
-
-	dequeue: function( elem, type ) {
-		type = type || "fx";
-
-		var queue = jQuery.queue( elem, type ),
-			startLength = queue.length,
-			fn = queue.shift(),
-			hooks = jQuery._queueHooks( elem, type ),
-			next = function() {
-				jQuery.dequeue( elem, type );
-			};
-
-		// If the fx queue is dequeued, always remove the progress sentinel
-		if ( fn === "inprogress" ) {
-			fn = queue.shift();
-			startLength--;
-		}
-
-		if ( fn ) {
-
-			// Add a progress sentinel to prevent the fx queue from being
-			// automatically dequeued
-			if ( type === "fx" ) {
-				queue.unshift( "inprogress" );
-			}
-
-			// clear up the last queue stop function
-			delete hooks.stop;
-			fn.call( elem, next, hooks );
-		}
-
-		if ( !startLength && hooks ) {
-			hooks.empty.fire();
-		}
-	},
-
-	// not intended for public consumption - generates a queueHooks object, or returns the current one
-	_queueHooks: function( elem, type ) {
-		var key = type + "queueHooks";
-		return jQuery._data( elem, key ) || jQuery._data( elem, key, {
-			empty: jQuery.Callbacks("once memory").add(function() {
-				jQuery._removeData( elem, type + "queue" );
-				jQuery._removeData( elem, key );
-			})
-		});
-	}
-});
-
-jQuery.fn.extend({
-	queue: function( type, data ) {
-		var setter = 2;
-
-		if ( typeof type !== "string" ) {
-			data = type;
-			type = "fx";
-			setter--;
-		}
-
-		if ( arguments.length < setter ) {
-			return jQuery.queue( this[0], type );
-		}
-
-		return data === undefined ?
-			this :
-			this.each(function() {
-				var queue = jQuery.queue( this, type, data );
-
-				// ensure a hooks for this queue
-				jQuery._queueHooks( this, type );
-
-				if ( type === "fx" && queue[0] !== "inprogress" ) {
-					jQuery.dequeue( this, type );
-				}
-			});
-	},
-	dequeue: function( type ) {
-		return this.each(function() {
-			jQuery.dequeue( this, type );
-		});
-	},
-	// Based off of the plugin by Clint Helfers, with permission.
-	// http://blindsignals.com/index.php/2009/07/jquery-delay/
-	delay: function( time, type ) {
-		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
-		type = type || "fx";
-
-		return this.queue( type, function( next, hooks ) {
-			var timeout = setTimeout( next, time );
-			hooks.stop = function() {
-				clearTimeout( timeout );
-			};
-		});
-	},
-	clearQueue: function( type ) {
-		return this.queue( type || "fx", [] );
-	},
-	// Get a promise resolved when queues of a certain type
-	// are emptied (fx is the type by default)
-	promise: function( type, obj ) {
-		var tmp,
-			count = 1,
-			defer = jQuery.Deferred(),
-			elements = this,
-			i = this.length,
-			resolve = function() {
-				if ( !( --count ) ) {
-					defer.resolveWith( elements, [ elements ] );
-				}
-			};
-
-		if ( typeof type !== "string" ) {
-			obj = type;
-			type = undefined;
-		}
-		type = type || "fx";
-
-		while( i-- ) {
-			tmp = jQuery._data( elements[ i ], type + "queueHooks" );
-			if ( tmp && tmp.empty ) {
-				count++;
-				tmp.empty.add( resolve );
-			}
-		}
-		resolve();
-		return defer.promise( obj );
-	}
-});
-var nodeHook, boolHook,
-	rclass = /[\t\r\n\f]/g,
-	rreturn = /\r/g,
-	rfocusable = /^(?:input|select|textarea|button|object)$/i,
-	rclickable = /^(?:a|area)$/i,
-	ruseDefault = /^(?:checked|selected)$/i,
-	getSetAttribute = jQuery.support.getSetAttribute,
-	getSetInput = jQuery.support.input;
-
-jQuery.fn.extend({
-	attr: function( name, value ) {
-		return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
-	},
-
-	removeAttr: function( name ) {
-		return this.each(function() {
-			jQuery.removeAttr( this, name );
-		});
-	},
-
-	prop: function( name, value ) {
-		return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
-	},
-
-	removeProp: function( name ) {
-		name = jQuery.propFix[ name ] || name;
-		return this.each(function() {
-			// try/catch handles cases where IE balks (such as removing a property on window)
-			try {
-				this[ name ] = undefined;
-				delete this[ name ];
-			} catch( e ) {}
-		});
-	},
-
-	addClass: function( value ) {
-		var classes, elem, cur, clazz, j,
-			i = 0,
-			len = this.length,
-			proceed = typeof value === "string" && value;
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( j ) {
-				jQuery( this ).addClass( value.call( this, j, this.className ) );
-			});
-		}
-
-		if ( proceed ) {
-			// The disjunction here is for better compressibility (see removeClass)
-			classes = ( value || "" ).match( core_rnotwhite ) || [];
-
-			for ( ; i < len; i++ ) {
-				elem = this[ i ];
-				cur = elem.nodeType === 1 && ( elem.className ?
-					( " " + elem.className + " " ).replace( rclass, " " ) :
-					" "
-				);
-
-				if ( cur ) {
-					j = 0;
-					while ( (clazz = classes[j++]) ) {
-						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
-							cur += clazz + " ";
-						}
-					}
-					elem.className = jQuery.trim( cur );
-
-				}
-			}
-		}
-
-		return this;
-	},
-
-	removeClass: function( value ) {
-		var classes, elem, cur, clazz, j,
-			i = 0,
-			len = this.length,
-			proceed = arguments.length === 0 || typeof value === "string" && value;
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( j ) {
-				jQuery( this ).removeClass( value.call( this, j, this.className ) );
-			});
-		}
-		if ( proceed ) {
-			classes = ( value || "" ).match( core_rnotwhite ) || [];
-
-			for ( ; i < len; i++ ) {
-				elem = this[ i ];
-				// This expression is here for better compressibility (see addClass)
-				cur = elem.nodeType === 1 && ( elem.className ?
-					( " " + elem.className + " " ).replace( rclass, " " ) :
-					""
-				);
-
-				if ( cur ) {
-					j = 0;
-					while ( (clazz = classes[j++]) ) {
-						// Remove *all* instances
-						while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
-							cur = cur.replace( " " + clazz + " ", " " );
-						}
-					}
-					elem.className = value ? jQuery.trim( cur ) : "";
-				}
-			}
-		}
-
-		return this;
-	},
-
-	toggleClass: function( value, stateVal ) {
-		var type = typeof value;
-
-		if ( typeof stateVal === "boolean" && type === "string" ) {
-			return stateVal ? this.addClass( value ) : this.removeClass( value );
-		}
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( i ) {
-				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
-			});
-		}
-
-		return this.each(function() {
-			if ( type === "string" ) {
-				// toggle individual class names
-				var className,
-					i = 0,
-					self = jQuery( this ),
-					classNames = value.match( core_rnotwhite ) || [];
-
-				while ( (className = classNames[ i++ ]) ) {
-					// check each className given, space separated list
-					if ( self.hasClass( className ) ) {
-						self.removeClass( className );
-					} else {
-						self.addClass( className );
-					}
-				}
-
-			// Toggle whole class name
-			} else if ( type === core_strundefined || type === "boolean" ) {
-				if ( this.className ) {
-					// store className if set
-					jQuery._data( this, "__className__", this.className );
-				}
-
-				// If the element has a class name or if we're passed "false",
-				// then remove the whole classname (if there was one, the above saved it).
-				// Otherwise bring back whatever was previously saved (if anything),
-				// falling back to the empty string if nothing was stored.
-				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
-			}
-		});
-	},
-
-	hasClass: function( selector ) {
-		var className = " " + selector + " ",
-			i = 0,
-			l = this.length;
-		for ( ; i < l; i++ ) {
-			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
-				return true;
-			}
-		}
-
-		return false;
-	},
-
-	val: function( value ) {
-		var ret, hooks, isFunction,
-			elem = this[0];
-
-		if ( !arguments.length ) {
-			if ( elem ) {
-				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
-
-				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
-					return ret;
-				}
-
-				ret = elem.value;
-
-				return typeof ret === "string" ?
-					// handle most common string cases
-					ret.replace(rreturn, "") :
-					// handle cases where value is null/undef or number
-					ret == null ? "" : ret;
-			}
-
-			return;
-		}
-
-		isFunction = jQuery.isFunction( value );
-
-		return this.each(function( i ) {
-			var val;
-
-			if ( this.nodeType !== 1 ) {
-				return;
-			}
-
-			if ( isFunction ) {
-				val = value.call( this, i, jQuery( this ).val() );
-			} else {
-				val = value;
-			}
-
-			// Treat null/undefined as ""; convert numbers to string
-			if ( val == null ) {
-				val = "";
-			} else if ( typeof val === "number" ) {
-				val += "";
-			} else if ( jQuery.isArray( val ) ) {
-				val = jQuery.map(val, function ( value ) {
-					return value == null ? "" : value + "";
-				});
-			}
-
-			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
-
-			// If set returns undefined, fall back to normal setting
-			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
-				this.value = val;
-			}
-		});
-	}
-});
-
-jQuery.extend({
-	valHooks: {
-		option: {
-			get: function( elem ) {
-				// Use proper attribute retrieval(#6932, #12072)
-				var val = jQuery.find.attr( elem, "value" );
-				return val != null ?
-					val :
-					elem.text;
-			}
-		},
-		select: {
-			get: function( elem ) {
-				var value, option,
-					options = elem.options,
-					index = elem.selectedIndex,
-					one = elem.type === "select-one" || index < 0,
-					values = one ? null : [],
-					max = one ? index + 1 : options.length,
-					i = index < 0 ?
-						max :
-						one ? index : 0;
-
-				// Loop through all the selected options
-				for ( ; i < max; i++ ) {
-					option = options[ i ];
-
-					// oldIE doesn't update selected after form reset (#2551)
-					if ( ( option.selected || i === index ) &&
-							// Don't return options that are disabled or in a disabled optgroup
-							( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
-							( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
-
-						// Get the specific value for the option
-						value = jQuery( option ).val();
-
-						// We don't need an array for one selects
-						if ( one ) {
-							return value;
-						}
-
-						// Multi-Selects return an array
-						values.push( value );
-					}
-				}
-
-				return values;
-			},
-
-			set: function( elem, value ) {
-				var optionSet, option,
-					options = elem.options,
-					values = jQuery.makeArray( value ),
-					i = options.length;
-
-				while ( i-- ) {
-					option = options[ i ];
-					if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) {
-						optionSet = true;
-					}
-				}
-
-				// force browsers to behave consistently when non-matching value is set
-				if ( !optionSet ) {
-					elem.selectedIndex = -1;
-				}
-				return values;
-			}
-		}
-	},
-
-	attr: function( elem, name, value ) {
-		var hooks, ret,
-			nType = elem.nodeType;
-
-		// don't get/set attributes on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return;
-		}
-
-		// Fallback to prop when attributes are not supported
-		if ( typeof elem.getAttribute === core_strundefined ) {
-			return jQuery.prop( elem, name, value );
-		}
-
-		// All attributes are lowercase
-		// Grab necessary hook if one is defined
-		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
-			name = name.toLowerCase();
-			hooks = jQuery.attrHooks[ name ] ||
-				( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
-		}
-
-		if ( value !== undefined ) {
-
-			if ( value === null ) {
-				jQuery.removeAttr( elem, name );
-
-			} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
-				return ret;
-
-			} else {
-				elem.setAttribute( name, value + "" );
-				return value;
-			}
-
-		} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
-			return ret;
-
-		} else {
-			ret = jQuery.find.attr( elem, name );
-
-			// Non-existent attributes return null, we normalize to undefined
-			return ret == null ?
-				undefined :
-				ret;
-		}
-	},
-
-	removeAttr: function( elem, value ) {
-		var name, propName,
-			i = 0,
-			attrNames = value && value.match( core_rnotwhite );
-
-		if ( attrNames && elem.nodeType === 1 ) {
-			while ( (name = attrNames[i++]) ) {
-				propName = jQuery.propFix[ name ] || name;
-
-				// Boolean attributes get special treatment (#10870)
-				if ( jQuery.expr.match.bool.test( name ) ) {
-					// Set corresponding property to false
-					if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
-						elem[ propName ] = false;
-					// Support: IE<9
-					// Also clear defaultChecked/defaultSelected (if appropriate)
-					} else {
-						elem[ jQuery.camelCase( "default-" + name ) ] =
-							elem[ propName ] = false;
-					}
-
-				// See #9699 for explanation of this approach (setting first, then removal)
-				} else {
-					jQuery.attr( elem, name, "" );
-				}
-
-				elem.removeAttribute( getSetAttribute ? name : propName );
-			}
-		}
-	},
-
-	attrHooks: {
-		type: {
-			set: function( elem, value ) {
-				if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
-					// Setting the type on a radio button after the value resets the value in IE6-9
-					// Reset value to default in case type is set after value during creation
-					var val = elem.value;
-					elem.setAttribute( "type", value );
-					if ( val ) {
-						elem.value = val;
-					}
-					return value;
-				}
-			}
-		}
-	},
-
-	propFix: {
-		"for": "htmlFor",
-		"class": "className"
-	},
-
-	prop: function( elem, name, value ) {
-		var ret, hooks, notxml,
-			nType = elem.nodeType;
-
-		// don't get/set properties on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return;
-		}
-
-		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
-		if ( notxml ) {
-			// Fix name and attach hooks
-			name = jQuery.propFix[ name ] || name;
-			hooks = jQuery.propHooks[ name ];
-		}
-
-		if ( value !== undefined ) {
-			return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
-				ret :
-				( elem[ name ] = value );
-
-		} else {
-			return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
-				ret :
-				elem[ name ];
-		}
-	},
-
-	propHooks: {
-		tabIndex: {
-			get: function( elem ) {
-				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
-				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				// Use proper attribute retrieval(#12072)
-				var tabindex = jQuery.find.attr( elem, "tabindex" );
-
-				return tabindex ?
-					parseInt( tabindex, 10 ) :
-					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
-						0 :
-						-1;
-			}
-		}
-	}
-});
-
-// Hooks for boolean attributes
-boolHook = {
-	set: function( elem, value, name ) {
-		if ( value === false ) {
-			// Remove boolean attributes when set to false
-			jQuery.removeAttr( elem, name );
-		} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
-			// IE<8 needs the *property* name
-			elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
-
-		// Use defaultChecked and defaultSelected for oldIE
-		} else {
-			elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
-		}
-
-		return name;
-	}
-};
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
-	var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr;
-
-	jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?
-		function( elem, name, isXML ) {
-			var fn = jQuery.expr.attrHandle[ name ],
-				ret = isXML ?
-					undefined :
-					/* jshint eqeqeq: false */
-					(jQuery.expr.attrHandle[ name ] = undefined) !=
-						getter( elem, name, isXML ) ?
-
-						name.toLowerCase() :
-						null;
-			jQuery.expr.attrHandle[ name ] = fn;
-			return ret;
-		} :
-		function( elem, name, isXML ) {
-			return isXML ?
-				undefined :
-				elem[ jQuery.camelCase( "default-" + name ) ] ?
-					name.toLowerCase() :
-					null;
-		};
-});
-
-// fix oldIE attroperties
-if ( !getSetInput || !getSetAttribute ) {
-	jQuery.attrHooks.value = {
-		set: function( elem, value, name ) {
-			if ( jQuery.nodeName( elem, "input" ) ) {
-				// Does not return so that setAttribute is also used
-				elem.defaultValue = value;
-			} else {
-				// Use nodeHook if defined (#1954); otherwise setAttribute is fine
-				return nodeHook && nodeHook.set( elem, value, name );
-			}
-		}
-	};
-}
-
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !getSetAttribute ) {
-
-	// Use this for any attribute in IE6/7
-	// This fixes almost every IE6/7 issue
-	nodeHook = {
-		set: function( elem, value, name ) {
-			// Set the existing or create a new attribute node
-			var ret = elem.getAttributeNode( name );
-			if ( !ret ) {
-				elem.setAttributeNode(
-					(ret = elem.ownerDocument.createAttribute( name ))
-				);
-			}
-
-			ret.value = value += "";
-
-			// Break association with cloned elements by also using setAttribute (#9646)
-			return name === "value" || value === elem.getAttribute( name ) ?
-				value :
-				undefined;
-		}
-	};
-	jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords =
-		// Some attributes are constructed with empty-string values when not defined
-		function( elem, name, isXML ) {
-			var ret;
-			return isXML ?
-				undefined :
-				(ret = elem.getAttributeNode( name )) && ret.value !== "" ?
-					ret.value :
-					null;
-		};
-	jQuery.valHooks.button = {
-		get: function( elem, name ) {
-			var ret = elem.getAttributeNode( name );
-			return ret && ret.specified ?
-				ret.value :
-				undefined;
-		},
-		set: nodeHook.set
-	};
-
-	// Set contenteditable to false on removals(#10429)
-	// Setting to empty string throws an error as an invalid value
-	jQuery.attrHooks.contenteditable = {
-		set: function( elem, value, name ) {
-			nodeHook.set( elem, value === "" ? false : value, name );
-		}
-	};
-
-	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
-	// This is for removals
-	jQuery.each([ "width", "height" ], function( i, name ) {
-		jQuery.attrHooks[ name ] = {
-			set: function( elem, value ) {
-				if ( value === "" ) {
-					elem.setAttribute( name, "auto" );
-					return value;
-				}
-			}
-		};
-	});
-}
-
-
-// Some attributes require a special call on IE
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !jQuery.support.hrefNormalized ) {
-	// href/src property should get the full normalized URL (#10299/#12915)
-	jQuery.each([ "href", "src" ], function( i, name ) {
-		jQuery.propHooks[ name ] = {
-			get: function( elem ) {
-				return elem.getAttribute( name, 4 );
-			}
-		};
-	});
-}
-
-if ( !jQuery.support.style ) {
-	jQuery.attrHooks.style = {
-		get: function( elem ) {
-			// Return undefined in the case of empty string
-			// Note: IE uppercases css property names, but if we were to .toLowerCase()
-			// .cssText, that would destroy case senstitivity in URL's, like in "background"
-			return elem.style.cssText || undefined;
-		},
-		set: function( elem, value ) {
-			return ( elem.style.cssText = value + "" );
-		}
-	};
-}
-
-// Safari mis-reports the default selected property of an option
-// Accessing the parent's selectedIndex property fixes it
-if ( !jQuery.support.optSelected ) {
-	jQuery.propHooks.selected = {
-		get: function( elem ) {
-			var parent = elem.parentNode;
-
-			if ( parent ) {
-				parent.selectedIndex;
-
-				// Make sure that it also works with optgroups, see #5701
-				if ( parent.parentNode ) {
-					parent.parentNode.selectedIndex;
-				}
-			}
-			return null;
-		}
-	};
-}
-
-jQuery.each([
-	"tabIndex",
-	"readOnly",
-	"maxLength",
-	"cellSpacing",
-	"cellPadding",
-	"rowSpan",
-	"colSpan",
-	"useMap",
-	"frameBorder",
-	"contentEditable"
-], function() {
-	jQuery.propFix[ this.toLowerCase() ] = this;
-});
-
-// IE6/7 call enctype encoding
-if ( !jQuery.support.enctype ) {
-	jQuery.propFix.enctype = "encoding";
-}
-
-// Radios and checkboxes getter/setter
-jQuery.each([ "radio", "checkbox" ], function() {
-	jQuery.valHooks[ this ] = {
-		set: function( elem, value ) {
-			if ( jQuery.isArray( value ) ) {
-				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
-			}
-		}
-	};
-	if ( !jQuery.support.checkOn ) {
-		jQuery.valHooks[ this ].get = function( elem ) {
-			// Support: Webkit
-			// "" is returned instead of "on" if a value isn't specified
-			return elem.getAttribute("value") === null ? "on" : elem.value;
-		};
-	}
-});
-var rformElems = /^(?:input|select|textarea)$/i,
-	rkeyEvent = /^key/,
-	rmouseEvent = /^(?:mouse|contextmenu)|click/,
-	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
-	rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
-
-function returnTrue() {
-	return true;
-}
-
-function returnFalse() {
-	return false;
-}
-
-function safeActiveElement() {
-	try {
-		return document.activeElement;
-	} catch ( err ) { }
-}
-
-/*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
-jQuery.event = {
-
-	global: {},
-
-	add: function( elem, types, handler, data, selector ) {
-		var tmp, events, t, handleObjIn,
-			special, eventHandle, handleObj,
-			handlers, type, namespaces, origType,
-			elemData = jQuery._data( elem );
-
-		// Don't attach events to noData or text/comment nodes (but allow plain objects)
-		if ( !elemData ) {
-			return;
-		}
-
-		// Caller can pass in an object of custom data in lieu of the handler
-		if ( handler.handler ) {
-			handleObjIn = handler;
-			handler = handleObjIn.handler;
-			selector = handleObjIn.selector;
-		}
-
-		// Make sure that the handler has a unique ID, used to find/remove it later
-		if ( !handler.guid ) {
-			handler.guid = jQuery.guid++;
-		}
-
-		// Init the element's event structure and main handler, if this is the first
-		if ( !(events = elemData.events) ) {
-			events = elemData.events = {};
-		}
-		if ( !(eventHandle = elemData.handle) ) {
-			eventHandle = elemData.handle = function( e ) {
-				// Discard the second event of a jQuery.event.trigger() and
-				// when an event is called after a page has unloaded
-				return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?
-					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
-					undefined;
-			};
-			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
-			eventHandle.elem = elem;
-		}
-
-		// Handle multiple events separated by a space
-		types = ( types || "" ).match( core_rnotwhite ) || [""];
-		t = types.length;
-		while ( t-- ) {
-			tmp = rtypenamespace.exec( types[t] ) || [];
-			type = origType = tmp[1];
-			namespaces = ( tmp[2] || "" ).split( "." ).sort();
-
-			// There *must* be a type, no attaching namespace-only handlers
-			if ( !type ) {
-				continue;
-			}
-
-			// If event changes its type, use the special event handlers for the changed type
-			special = jQuery.event.special[ type ] || {};
-
-			// If selector defined, determine special event api type, otherwise given type
-			type = ( selector ? special.delegateType : special.bindType ) || type;
-
-			// Update special based on newly reset type
-			special = jQuery.event.special[ type ] || {};
-
-			// handleObj is passed to all event handlers
-			handleObj = jQuery.extend({
-				type: type,
-				origType: origType,
-				data: data,
-				handler: handler,
-				guid: handler.guid,
-				selector: selector,
-				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
-				namespace: namespaces.join(".")
-			}, handleObjIn );
-
-			// Init the event handler queue if we're the first
-			if ( !(handlers = events[ type ]) ) {
-				handlers = events[ type ] = [];
-				handlers.delegateCount = 0;
-
-				// Only use addEventListener/attachEvent if the special events handler returns false
-				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-					// Bind the global event handler to the element
-					if ( elem.addEventListener ) {
-						elem.addEventListener( type, eventHandle, false );
-
-					} else if ( elem.attachEvent ) {
-						elem.attachEvent( "on" + type, eventHandle );
-					}
-				}
-			}
-
-			if ( special.add ) {
-				special.add.call( elem, handleObj );
-
-				if ( !handleObj.handler.guid ) {
-					handleObj.handler.guid = handler.guid;
-				}
-			}
-
-			// Add to the element's handler list, delegates in front
-			if ( selector ) {
-				handlers.splice( handlers.delegateCount++, 0, handleObj );
-			} else {
-				handlers.push( handleObj );
-			}
-
-			// Keep track of which events have ever been used, for event optimization
-			jQuery.event.global[ type ] = true;
-		}
-
-		// Nullify elem to prevent memory leaks in IE
-		elem = null;
-	},
-
-	// Detach an event or set of events from an element
-	remove: function( elem, types, handler, selector, mappedTypes ) {
-		var j, handleObj, tmp,
-			origCount, t, events,
-			special, handlers, type,
-			namespaces, origType,
-			elemData = jQuery.hasData( elem ) && jQuery._data( elem );
-
-		if ( !elemData || !(events = elemData.events) ) {
-			return;
-		}
-
-		// Once for each type.namespace in types; type may be omitted
-		types = ( types || "" ).match( core_rnotwhite ) || [""];
-		t = types.length;
-		while ( t-- ) {
-			tmp = rtypenamespace.exec( types[t] ) || [];
-			type = origType = tmp[1];
-			namespaces = ( tmp[2] || "" ).split( "." ).sort();
-
-			// Unbind all events (on this namespace, if provided) for the element
-			if ( !type ) {
-				for ( type in events ) {
-					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
-				}
-				continue;
-			}
-
-			special = jQuery.event.special[ type ] || {};
-			type = ( selector ? special.delegateType : special.bindType ) || type;
-			handlers = events[ type ] || [];
-			tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
-
-			// Remove matching events
-			origCount = j = handlers.length;
-			while ( j-- ) {
-				handleObj = handlers[ j ];
-
-				if ( ( mappedTypes || origType === handleObj.origType ) &&
-					( !handler || handler.guid === handleObj.guid ) &&
-					( !tmp || tmp.test( handleObj.namespace ) ) &&
-					( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
-					handlers.splice( j, 1 );
-
-					if ( handleObj.selector ) {
-						handlers.delegateCount--;
-					}
-					if ( special.remove ) {
-						special.remove.call( elem, handleObj );
-					}
-				}
-			}
-
-			// Remove generic event handler if we removed something and no more handlers exist
-			// (avoids potential for endless recursion during removal of special event handlers)
-			if ( origCount && !handlers.length ) {
-				if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
-					jQuery.removeEvent( elem, type, elemData.handle );
-				}
-
-				delete events[ type ];
-			}
-		}
-
-		// Remove the expando if it's no longer used
-		if ( jQuery.isEmptyObject( events ) ) {
-			delete elemData.handle;
-
-			// removeData also checks for emptiness and clears the expando if empty
-			// so use it instead of delete
-			jQuery._removeData( elem, "events" );
-		}
-	},
-
-	trigger: function( event, data, elem, onlyHandlers ) {
-		var handle, ontype, cur,
-			bubbleType, special, tmp, i,
-			eventPath = [ elem || document ],
-			type = core_hasOwn.call( event, "type" ) ? event.type : event,
-			namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
-
-		cur = tmp = elem = elem || document;
-
-		// Don't do events on text and comment nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
-
-		// focus/blur morphs to focusin/out; ensure we're not firing them right now
-		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
-			return;
-		}
-
-		if ( type.indexOf(".") >= 0 ) {
-			// Namespaced trigger; create a regexp to match event type in handle()
-			namespaces = type.split(".");
-			type = namespaces.shift();
-			namespaces.sort();
-		}
-		ontype = type.indexOf(":") < 0 && "on" + type;
-
-		// Caller can pass in a jQuery.Event object, Object, or just an event type string
-		event = event[ jQuery.expando ] ?
-			event :
-			new jQuery.Event( type, typeof event === "object" && event );
-
-		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
-		event.isTrigger = onlyHandlers ? 2 : 3;
-		event.namespace = namespaces.join(".");
-		event.namespace_re = event.namespace ?
-			new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
-			null;
-
-		// Clean up the event in case it is being reused
-		event.result = undefined;
-		if ( !event.target ) {
-			event.target = elem;
-		}
-
-		// Clone any incoming data and prepend the event, creating the handler arg list
-		data = data == null ?
-			[ event ] :
-			jQuery.makeArray( data, [ event ] );
-
-		// Allow special events to draw outside the lines
-		special = jQuery.event.special[ type ] || {};
-		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
-			return;
-		}
-
-		// Determine event propagation path in advance, per W3C events spec (#9951)
-		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
-		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
-
-			bubbleType = special.delegateType || type;
-			if ( !rfocusMorph.test( bubbleType + type ) ) {
-				cur = cur.parentNode;
-			}
-			for ( ; cur; cur = cur.parentNode ) {
-				eventPath.push( cur );
-				tmp = cur;
-			}
-
-			// Only add window if we got to document (e.g., not plain obj or detached DOM)
-			if ( tmp === (elem.ownerDocument || document) ) {
-				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
-			}
-		}
-
-		// Fire handlers on the event path
-		i = 0;
-		while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
-
-			event.type = i > 1 ?
-				bubbleType :
-				special.bindType || type;
-
-			// jQuery handler
-			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
-			if ( handle ) {
-				handle.apply( cur, data );
-			}
-
-			// Native handler
-			handle = ontype && cur[ ontype ];
-			if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {
-				event.preventDefault();
-			}
-		}
-		event.type = type;
-
-		// If nobody prevented the default action, do it now
-		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
-
-			if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
-				jQuery.acceptData( elem ) ) {
-
-				// Call a native DOM method on the target with the same name name as the event.
-				// Can't use an .isFunction() check here because IE6/7 fails that test.
-				// Don't do default actions on window, that's where global variables be (#6170)
-				if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
-
-					// Don't re-trigger an onFOO event when we call its FOO() method
-					tmp = elem[ ontype ];
-
-					if ( tmp ) {
-						elem[ ontype ] = null;
-					}
-
-					// Prevent re-triggering of the same event, since we already bubbled it above
-					jQuery.event.triggered = type;
-					try {
-						elem[ type ]();
-					} catch ( e ) {
-						// IE<9 dies on focus/blur to hidden element (#1486,#12518)
-						// only reproducible on winXP IE8 native, not IE9 in IE8 mode
-					}
-					jQuery.event.triggered = undefined;
-
-					if ( tmp ) {
-						elem[ ontype ] = tmp;
-					}
-				}
-			}
-		}
-
-		return event.result;
-	},
-
-	dispatch: function( event ) {
-
-		// Make a writable jQuery.Event from the native event object
-		event = jQuery.event.fix( event );
-
-		var i, ret, handleObj, matched, j,
-			handlerQueue = [],
-			args = core_slice.call( arguments ),
-			handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
-			special = jQuery.event.special[ event.type ] || {};
-
-		// Use the fix-ed jQuery.Event rather than the (read-only) native event
-		args[0] = event;
-		event.delegateTarget = this;
-
-		// Call the preDispatch hook for the mapped type, and let it bail if desired
-		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
-			return;
-		}
-
-		// Determine handlers
-		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
-
-		// Run delegates first; they may want to stop propagation beneath us
-		i = 0;
-		while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
-			event.currentTarget = matched.elem;
-
-			j = 0;
-			while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
-
-				// Triggered event must either 1) have no namespace, or
-				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
-				if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
-
-					event.handleObj = handleObj;
-					event.data = handleObj.data;
-
-					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
-							.apply( matched.elem, args );
-
-					if ( ret !== undefined ) {
-						if ( (event.result = ret) === false ) {
-							event.preventDefault();
-							event.stopPropagation();
-						}
-					}
-				}
-			}
-		}
-
-		// Call the postDispatch hook for the mapped type
-		if ( special.postDispatch ) {
-			special.postDispatch.call( this, event );
-		}
-
-		return event.result;
-	},
-
-	handlers: function( event, handlers ) {
-		var sel, handleObj, matches, i,
-			handlerQueue = [],
-			delegateCount = handlers.delegateCount,
-			cur = event.target;
-
-		// Find delegate handlers
-		// Black-hole SVG <use> instance trees (#13180)
-		// Avoid non-left-click bubbling in Firefox (#3861)
-		if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
-
-			/* jshint eqeqeq: false */
-			for ( ; cur != this; cur = cur.parentNode || this ) {
-				/* jshint eqeqeq: true */
-
-				// Don't check non-elements (#13208)
-				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
-				if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) {
-					matches = [];
-					for ( i = 0; i < delegateCount; i++ ) {
-						handleObj = handlers[ i ];
-
-						// Don't conflict with Object.prototype properties (#13203)
-						sel = handleObj.selector + " ";
-
-						if ( matches[ sel ] === undefined ) {
-							matches[ sel ] = handleObj.needsContext ?
-								jQuery( sel, this ).index( cur ) >= 0 :
-								jQuery.find( sel, this, null, [ cur ] ).length;
-						}
-						if ( matches[ sel ] ) {
-							matches.push( handleObj );
-						}
-					}
-					if ( matches.length ) {
-						handlerQueue.push({ elem: cur, handlers: matches });
-					}
-				}
-			}
-		}
-
-		// Add the remaining (directly-bound) handlers
-		if ( delegateCount < handlers.length ) {
-			handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
-		}
-
-		return handlerQueue;
-	},
-
-	fix: function( event ) {
-		if ( event[ jQuery.expando ] ) {
-			return event;
-		}
-
-		// Create a writable copy of the event object and normalize some properties
-		var i, prop, copy,
-			type = event.type,
-			originalEvent = event,
-			fixHook = this.fixHooks[ type ];
-
-		if ( !fixHook ) {
-			this.fixHooks[ type ] = fixHook =
-				rmouseEvent.test( type ) ? this.mouseHooks :
-				rkeyEvent.test( type ) ? this.keyHooks :
-				{};
-		}
-		copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
-
-		event = new jQuery.Event( originalEvent );
-
-		i = copy.length;
-		while ( i-- ) {
-			prop = copy[ i ];
-			event[ prop ] = originalEvent[ prop ];
-		}
-
-		// Support: IE<9
-		// Fix target property (#1925)
-		if ( !event.target ) {
-			event.target = originalEvent.srcElement || document;
-		}
-
-		// Support: Chrome 23+, Safari?
-		// Target should not be a text node (#504, #13143)
-		if ( event.target.nodeType === 3 ) {
-			event.target = event.target.parentNode;
-		}
-
-		// Support: IE<9
-		// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
-		event.metaKey = !!event.metaKey;
-
-		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
-	},
-
-	// Includes some event props shared by KeyEvent and MouseEvent
-	props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
-
-	fixHooks: {},
-
-	keyHooks: {
-		props: "char charCode key keyCode".split(" "),
-		filter: function( event, original ) {
-
-			// Add which for key events
-			if ( event.which == null ) {
-				event.which = original.charCode != null ? original.charCode : original.keyCode;
-			}
-
-			return event;
-		}
-	},
-
-	mouseHooks: {
-		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
-		filter: function( event, original ) {
-			var body, eventDoc, doc,
-				button = original.button,
-				fromElement = original.fromElement;
-
-			// Calculate pageX/Y if missing and clientX/Y available
-			if ( event.pageX == null && original.clientX != null ) {
-				eventDoc = event.target.ownerDocument || document;
-				doc = eventDoc.documentElement;
-				body = eventDoc.body;
-
-				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
-				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
-			}
-
-			// Add relatedTarget, if necessary
-			if ( !event.relatedTarget && fromElement ) {
-				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
-			}
-
-			// Add which for click: 1 === left; 2 === middle; 3 === right
-			// Note: button is not normalized, so don't use it
-			if ( !event.which && button !== undefined ) {
-				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
-			}
-
-			return event;
-		}
-	},
-
-	special: {
-		load: {
-			// Prevent triggered image.load events from bubbling to window.load
-			noBubble: true
-		},
-		focus: {
-			// Fire native event if possible so blur/focus sequence is correct
-			trigger: function() {
-				if ( this !== safeActiveElement() && this.focus ) {
-					try {
-						this.focus();
-						return false;
-					} catch ( e ) {
-						// Support: IE<9
-						// If we error on focus to hidden element (#1486, #12518),
-						// let .trigger() run the handlers
-					}
-				}
-			},
-			delegateType: "focusin"
-		},
-		blur: {
-			trigger: function() {
-				if ( this === safeActiveElement() && this.blur ) {
-					this.blur();
-					return false;
-				}
-			},
-			delegateType: "focusout"
-		},
-		click: {
-			// For checkbox, fire native event so checked state will be right
-			trigger: function() {
-				if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
-					this.click();
-					return false;
-				}
-			},
-
-			// For cross-browser consistency, don't fire native .click() on links
-			_default: function( event ) {
-				return jQuery.nodeName( event.target, "a" );
-			}
-		},
-
-		beforeunload: {
-			postDispatch: function( event ) {
-
-				// Even when returnValue equals to undefined Firefox will still show alert
-				if ( event.result !== undefined ) {
-					event.originalEvent.returnValue = event.result;
-				}
-			}
-		}
-	},
-
-	simulate: function( type, elem, event, bubble ) {
-		// Piggyback on a donor event to simulate a different one.
-		// Fake originalEvent to avoid donor's stopPropagation, but if the
-		// simulated event prevents default then we do the same on the donor.
-		var e = jQuery.extend(
-			new jQuery.Event(),
-			event,
-			{
-				type: type,
-				isSimulated: true,
-				originalEvent: {}
-			}
-		);
-		if ( bubble ) {
-			jQuery.event.trigger( e, null, elem );
-		} else {
-			jQuery.event.dispatch.call( elem, e );
-		}
-		if ( e.isDefaultPrevented() ) {
-			event.preventDefault();
-		}
-	}
-};
-
-jQuery.removeEvent = document.removeEventListener ?
-	function( elem, type, handle ) {
-		if ( elem.removeEventListener ) {
-			elem.removeEventListener( type, handle, false );
-		}
-	} :
-	function( elem, type, handle ) {
-		var name = "on" + type;
-
-		if ( elem.detachEvent ) {
-
-			// #8545, #7054, preventing memory leaks for custom events in IE6-8
-			// detachEvent needed property on element, by name of that event, to properly expose it to GC
-			if ( typeof elem[ name ] === core_strundefined ) {
-				elem[ name ] = null;
-			}
-
-			elem.detachEvent( name, handle );
-		}
-	};
-
-jQuery.Event = function( src, props ) {
-	// Allow instantiation without the 'new' keyword
-	if ( !(this instanceof jQuery.Event) ) {
-		return new jQuery.Event( src, props );
-	}
-
-	// Event object
-	if ( src && src.type ) {
-		this.originalEvent = src;
-		this.type = src.type;
-
-		// Events bubbling up the document may have been marked as prevented
-		// by a handler lower down the tree; reflect the correct value.
-		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
-			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
-
-	// Event type
-	} else {
-		this.type = src;
-	}
-
-	// Put explicitly provided properties onto the event object
-	if ( props ) {
-		jQuery.extend( this, props );
-	}
-
-	// Create a timestamp if incoming event doesn't have one
-	this.timeStamp = src && src.timeStamp || jQuery.now();
-
-	// Mark it as fixed
-	this[ jQuery.expando ] = true;
-};
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
-	isDefaultPrevented: returnFalse,
-	isPropagationStopped: returnFalse,
-	isImmediatePropagationStopped: returnFalse,
-
-	preventDefault: function() {
-		var e = this.originalEvent;
-
-		this.isDefaultPrevented = returnTrue;
-		if ( !e ) {
-			return;
-		}
-
-		// If preventDefault exists, run it on the original event
-		if ( e.preventDefault ) {
-			e.preventDefault();
-
-		// Support: IE
-		// Otherwise set the returnValue property of the original event to false
-		} else {
-			e.returnValue = false;
-		}
-	},
-	stopPropagation: function() {
-		var e = this.originalEvent;
-
-		this.isPropagationStopped = returnTrue;
-		if ( !e ) {
-			return;
-		}
-		// If stopPropagation exists, run it on the original event
-		if ( e.stopPropagation ) {
-			e.stopPropagation();
-		}
-
-		// Support: IE
-		// Set the cancelBubble property of the original event to true
-		e.cancelBubble = true;
-	},
-	stopImmediatePropagation: function() {
-		this.isImmediatePropagationStopped = returnTrue;
-		this.stopPropagation();
-	}
-};
-
-// Create mouseenter/leave events using mouseover/out and event-time checks
-jQuery.each({
-	mouseenter: "mouseover",
-	mouseleave: "mouseout"
-}, function( orig, fix ) {
-	jQuery.event.special[ orig ] = {
-		delegateType: fix,
-		bindType: fix,
-
-		handle: function( event ) {
-			var ret,
-				target = this,
-				related = event.relatedTarget,
-				handleObj = event.handleObj;
-
-			// For mousenter/leave call the handler if related is outside the target.
-			// NB: No relatedTarget if the mouse left/entered the browser window
-			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
-				event.type = handleObj.origType;
-				ret = handleObj.handler.apply( this, arguments );
-				event.type = fix;
-			}
-			return ret;
-		}
-	};
-});
-
-// IE submit delegation
-if ( !jQuery.support.submitBubbles ) {
-
-	jQuery.event.special.submit = {
-		setup: function() {
-			// Only need this for delegated form submit events
-			if ( jQuery.nodeName( this, "form" ) ) {
-				return false;
-			}
-
-			// Lazy-add a submit handler when a descendant form may potentially be submitted
-			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
-				// Node name check avoids a VML-related crash in IE (#9807)
-				var elem = e.target,
-					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
-				if ( form && !jQuery._data( form, "submitBubbles" ) ) {
-					jQuery.event.add( form, "submit._submit", function( event ) {
-						event._submit_bubble = true;
-					});
-					jQuery._data( form, "submitBubbles", true );
-				}
-			});
-			// return undefined since we don't need an event listener
-		},
-
-		postDispatch: function( event ) {
-			// If form was submitted by the user, bubble the event up the tree
-			if ( event._submit_bubble ) {
-				delete event._submit_bubble;
-				if ( this.parentNode && !event.isTrigger ) {
-					jQuery.event.simulate( "submit", this.parentNode, event, true );
-				}
-			}
-		},
-
-		teardown: function() {
-			// Only need this for delegated form submit events
-			if ( jQuery.nodeName( this, "form" ) ) {
-				return false;
-			}
-
-			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
-			jQuery.event.remove( this, "._submit" );
-		}
-	};
-}
-
-// IE change delegation and checkbox/radio fix
-if ( !jQuery.support.changeBubbles ) {
-
-	jQuery.event.special.change = {
-
-		setup: function() {
-
-			if ( rformElems.test( this.nodeName ) ) {
-				// IE doesn't fire change on a check/radio until blur; trigger it on click
-				// after a propertychange. Eat the blur-change in special.change.handle.
-				// This still fires onchange a second time for check/radio after blur.
-				if ( this.type === "checkbox" || this.type === "radio" ) {
-					jQuery.event.add( this, "propertychange._change", function( event ) {
-						if ( event.originalEvent.propertyName === "checked" ) {
-							this._just_changed = true;
-						}
-					});
-					jQuery.event.add( this, "click._change", function( event ) {
-						if ( this._just_changed && !event.isTrigger ) {
-							this._just_changed = false;
-						}
-						// Allow triggered, simulated change events (#11500)
-						jQuery.event.simulate( "change", this, event, true );
-					});
-				}
-				return false;
-			}
-			// Delegated event; lazy-add a change handler on descendant inputs
-			jQuery.event.add( this, "beforeactivate._change", function( e ) {
-				var elem = e.target;
-
-				if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) {
-					jQuery.event.add( elem, "change._change", function( event ) {
-						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
-							jQuery.event.simulate( "change", this.parentNode, event, true );
-						}
-					});
-					jQuery._data( elem, "changeBubbles", true );
-				}
-			});
-		},
-
-		handle: function( event ) {
-			var elem = event.target;
-
-			// Swallow native change events from checkbox/radio, we already triggered them above
-			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
-				return event.handleObj.handler.apply( this, arguments );
-			}
-		},
-
-		teardown: function() {
-			jQuery.event.remove( this, "._change" );
-
-			return !rformElems.test( this.nodeName );
-		}
-	};
-}
-
-// Create "bubbling" focus and blur events
-if ( !jQuery.support.focusinBubbles ) {
-	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
-		// Attach a single capturing handler while someone wants focusin/focusout
-		var attaches = 0,
-			handler = function( event ) {
-				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
-			};
-
-		jQuery.event.special[ fix ] = {
-			setup: function() {
-				if ( attaches++ === 0 ) {
-					document.addEventListener( orig, handler, true );
-				}
-			},
-			teardown: function() {
-				if ( --attaches === 0 ) {
-					document.removeEventListener( orig, handler, true );
-				}
-			}
-		};
-	});
-}
-
-jQuery.fn.extend({
-
-	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
-		var type, origFn;
-
-		// Types can be a map of types/handlers
-		if ( typeof types === "object" ) {
-			// ( types-Object, selector, data )
-			if ( typeof selector !== "string" ) {
-				// ( types-Object, data )
-				data = data || selector;
-				selector = undefined;
-			}
-			for ( type in types ) {
-				this.on( type, selector, data, types[ type ], one );
-			}
-			return this;
-		}
-
-		if ( data == null && fn == null ) {
-			// ( types, fn )
-			fn = selector;
-			data = selector = undefined;
-		} else if ( fn == null ) {
-			if ( typeof selector === "string" ) {
-				// ( types, selector, fn )
-				fn = data;
-				data = undefined;
-			} else {
-				// ( types, data, fn )
-				fn = data;
-				data = selector;
-				selector = undefined;
-			}
-		}
-		if ( fn === false ) {
-			fn = returnFalse;
-		} else if ( !fn ) {
-			return this;
-		}
-
-		if ( one === 1 ) {
-			origFn = fn;
-			fn = function( event ) {
-				// Can use an empty set, since event contains the info
-				jQuery().off( event );
-				return origFn.apply( this, arguments );
-			};
-			// Use same guid so caller can remove using origFn
-			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
-		}
-		return this.each( function() {
-			jQuery.event.add( this, types, fn, data, selector );
-		});
-	},
-	one: function( types, selector, data, fn ) {
-		return this.on( types, selector, data, fn, 1 );
-	},
-	off: function( types, selector, fn ) {
-		var handleObj, type;
-		if ( types && types.preventDefault && types.handleObj ) {
-			// ( event )  dispatched jQuery.Event
-			handleObj = types.handleObj;
-			jQuery( types.delegateTarget ).off(
-				handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
-				handleObj.selector,
-				handleObj.handler
-			);
-			return this;
-		}
-		if ( typeof types === "object" ) {
-			// ( types-object [, selector] )
-			for ( type in types ) {
-				this.off( type, selector, types[ type ] );
-			}
-			return this;
-		}
-		if ( selector === false || typeof selector === "function" ) {
-			// ( types [, fn] )
-			fn = selector;
-			selector = undefined;
-		}
-		if ( fn === false ) {
-			fn = returnFalse;
-		}
-		return this.each(function() {
-			jQuery.event.remove( this, types, fn, selector );
-		});
-	},
-
-	trigger: function( type, data ) {
-		return this.each(function() {
-			jQuery.event.trigger( type, data, this );
-		});
-	},
-	triggerHandler: function( type, data ) {
-		var elem = this[0];
-		if ( elem ) {
-			return jQuery.event.trigger( type, data, elem, true );
-		}
-	}
-});
-var isSimple = /^.[^:#\[\.,]*$/,
-	rparentsprev = /^(?:parents|prev(?:Until|All))/,
-	rneedsContext = jQuery.expr.match.needsContext,
-	// methods guaranteed to produce a unique set when starting from a unique set
-	guaranteedUnique = {
-		children: true,
-		contents: true,
-		next: true,
-		prev: true
-	};
-
-jQuery.fn.extend({
-	find: function( selector ) {
-		var i,
-			ret = [],
-			self = this,
-			len = self.length;
-
-		if ( typeof selector !== "string" ) {
-			return this.pushStack( jQuery( selector ).filter(function() {
-				for ( i = 0; i < len; i++ ) {
-					if ( jQuery.contains( self[ i ], this ) ) {
-						return true;
-					}
-				}
-			}) );
-		}
-
-		for ( i = 0; i < len; i++ ) {
-			jQuery.find( selector, self[ i ], ret );
-		}
-
-		// Needed because $( selector, context ) becomes $( context ).find( selector )
-		ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
-		ret.selector = this.selector ? this.selector + " " + selector : selector;
-		return ret;
-	},
-
-	has: function( target ) {
-		var i,
-			targets = jQuery( target, this ),
-			len = targets.length;
-
-		return this.filter(function() {
-			for ( i = 0; i < len; i++ ) {
-				if ( jQuery.contains( this, targets[i] ) ) {
-					return true;
-				}
-			}
-		});
-	},
-
-	not: function( selector ) {
-		return this.pushStack( winnow(this, selector || [], true) );
-	},
-
-	filter: function( selector ) {
-		return this.pushStack( winnow(this, selector || [], false) );
-	},
-
-	is: function( selector ) {
-		return !!winnow(
-			this,
-
-			// If this is a positional/relative selector, check membership in the returned set
-			// so $("p:first").is("p:last") won't return true for a doc with two "p".
-			typeof selector === "string" && rneedsContext.test( selector ) ?
-				jQuery( selector ) :
-				selector || [],
-			false
-		).length;
-	},
-
-	closest: function( selectors, context ) {
-		var cur,
-			i = 0,
-			l = this.length,
-			ret = [],
-			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
-				jQuery( selectors, context || this.context ) :
-				0;
-
-		for ( ; i < l; i++ ) {
-			for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
-				// Always skip document fragments
-				if ( cur.nodeType < 11 && (pos ?
-					pos.index(cur) > -1 :
-
-					// Don't pass non-elements to Sizzle
-					cur.nodeType === 1 &&
-						jQuery.find.matchesSelector(cur, selectors)) ) {
-
-					cur = ret.push( cur );
-					break;
-				}
-			}
-		}
-
-		return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );
-	},
-
-	// Determine the position of an element within
-	// the matched set of elements
-	index: function( elem ) {
-
-		// No argument, return index in parent
-		if ( !elem ) {
-			return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;
-		}
-
-		// index in selector
-		if ( typeof elem === "string" ) {
-			return jQuery.inArray( this[0], jQuery( elem ) );
-		}
-
-		// Locate the position of the desired element
-		return jQuery.inArray(
-			// If it receives a jQuery object, the first element is used
-			elem.jquery ? elem[0] : elem, this );
-	},
-
-	add: function( selector, context ) {
-		var set = typeof selector === "string" ?
-				jQuery( selector, context ) :
-				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
-			all = jQuery.merge( this.get(), set );
-
-		return this.pushStack( jQuery.unique(all) );
-	},
-
-	addBack: function( selector ) {
-		return this.add( selector == null ?
-			this.prevObject : this.prevObject.filter(selector)
-		);
-	}
-});
-
-function sibling( cur, dir ) {
-	do {
-		cur = cur[ dir ];
-	} while ( cur && cur.nodeType !== 1 );
-
-	return cur;
-}
-
-jQuery.each({
-	parent: function( elem ) {
-		var parent = elem.parentNode;
-		return parent && parent.nodeType !== 11 ? parent : null;
-	},
-	parents: function( elem ) {
-		return jQuery.dir( elem, "parentNode" );
-	},
-	parentsUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "parentNode", until );
-	},
-	next: function( elem ) {
-		return sibling( elem, "nextSibling" );
-	},
-	prev: function( elem ) {
-		return sibling( elem, "previousSibling" );
-	},
-	nextAll: function( elem ) {
-		return jQuery.dir( elem, "nextSibling" );
-	},
-	prevAll: function( elem ) {
-		return jQuery.dir( elem, "previousSibling" );
-	},
-	nextUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "nextSibling", until );
-	},
-	prevUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "previousSibling", until );
-	},
-	siblings: function( elem ) {
-		return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
-	},
-	children: function( elem ) {
-		return jQuery.sibling( elem.firstChild );
-	},
-	contents: function( elem ) {
-		return jQuery.nodeName( elem, "iframe" ) ?
-			elem.contentDocument || elem.contentWindow.document :
-			jQuery.merge( [], elem.childNodes );
-	}
-}, function( name, fn ) {
-	jQuery.fn[ name ] = function( until, selector ) {
-		var ret = jQuery.map( this, fn, until );
-
-		if ( name.slice( -5 ) !== "Until" ) {
-			selector = until;
-		}
-
-		if ( selector && typeof selector === "string" ) {
-			ret = jQuery.filter( selector, ret );
-		}
-
-		if ( this.length > 1 ) {
-			// Remove duplicates
-			if ( !guaranteedUnique[ name ] ) {
-				ret = jQuery.unique( ret );
-			}
-
-			// Reverse order for parents* and prev-derivatives
-			if ( rparentsprev.test( name ) ) {
-				ret = ret.reverse();
-			}
-		}
-
-		return this.pushStack( ret );
-	};
-});
-
-jQuery.extend({
-	filter: function( expr, elems, not ) {
-		var elem = elems[ 0 ];
-
-		if ( not ) {
-			expr = ":not(" + expr + ")";
-		}
-
-		return elems.length === 1 && elem.nodeType === 1 ?
-			jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
-			jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
-				return elem.nodeType === 1;
-			}));
-	},
-
-	dir: function( elem, dir, until ) {
-		var matched = [],
-			cur = elem[ dir ];
-
-		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
-			if ( cur.nodeType === 1 ) {
-				matched.push( cur );
-			}
-			cur = cur[dir];
-		}
-		return matched;
-	},
-
-	sibling: function( n, elem ) {
-		var r = [];
-
-		for ( ; n; n = n.nextSibling ) {
-			if ( n.nodeType === 1 && n !== elem ) {
-				r.push( n );
-			}
-		}
-
-		return r;
-	}
-});
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, not ) {
-	if ( jQuery.isFunction( qualifier ) ) {
-		return jQuery.grep( elements, function( elem, i ) {
-			/* jshint -W018 */
-			return !!qualifier.call( elem, i, elem ) !== not;
-		});
-
-	}
-
-	if ( qualifier.nodeType ) {
-		return jQuery.grep( elements, function( elem ) {
-			return ( elem === qualifier ) !== not;
-		});
-
-	}
-
-	if ( typeof qualifier === "string" ) {
-		if ( isSimple.test( qualifier ) ) {
-			return jQuery.filter( qualifier, elements, not );
-		}
-
-		qualifier = jQuery.filter( qualifier, elements );
-	}
-
-	return jQuery.grep( elements, function( elem ) {
-		return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;
-	});
-}
-function createSafeFragment( document ) {
-	var list = nodeNames.split( "|" ),
-		safeFrag = document.createDocumentFragment();
-
-	if ( safeFrag.createElement ) {
-		while ( list.length ) {
-			safeFrag.createElement(
-				list.pop()
-			);
-		}
-	}
-	return safeFrag;
-}
-
-var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
-		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
-	rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
-	rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
-	rleadingWhitespace = /^\s+/,
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
-	rtagName = /<([\w:]+)/,
-	rtbody = /<tbody/i,
-	rhtml = /<|&#?\w+;/,
-	rnoInnerhtml = /<(?:script|style|link)/i,
-	manipulation_rcheckableType = /^(?:checkbox|radio)$/i,
-	// checked="checked" or checked
-	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-	rscriptType = /^$|\/(?:java|ecma)script/i,
-	rscriptTypeMasked = /^true\/(.*)/,
-	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
-
-	// We have to close these tags to support XHTML (#13200)
-	wrapMap = {
-		option: [ 1, "<select multiple='multiple'>", "</select>" ],
-		legend: [ 1, "<fieldset>", "</fieldset>" ],
-		area: [ 1, "<map>", "</map>" ],
-		param: [ 1, "<object>", "</object>" ],
-		thead: [ 1, "<table>", "</table>" ],
-		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
-		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
-		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-
-		// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
-		// unless wrapped in a div with non-breaking characters in front of it.
-		_default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>"  ]
-	},
-	safeFragment = createSafeFragment( document ),
-	fragmentDiv = safeFragment.appendChild( document.createElement("div") );
-
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-jQuery.fn.extend({
-	text: function( value ) {
-		return jQuery.access( this, function( value ) {
-			return value === undefined ?
-				jQuery.text( this ) :
-				this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
-		}, null, value, arguments.length );
-	},
-
-	append: function() {
-		return this.domManip( arguments, function( elem ) {
-			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
-				var target = manipulationTarget( this, elem );
-				target.appendChild( elem );
-			}
-		});
-	},
-
-	prepend: function() {
-		return this.domManip( arguments, function( elem ) {
-			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
-				var target = manipulationTarget( this, elem );
-				target.insertBefore( elem, target.firstChild );
-			}
-		});
-	},
-
-	before: function() {
-		return this.domManip( arguments, function( elem ) {
-			if ( this.parentNode ) {
-				this.parentNode.insertBefore( elem, this );
-			}
-		});
-	},
-
-	after: function() {
-		return this.domManip( arguments, function( elem ) {
-			if ( this.parentNode ) {
-				this.parentNode.insertBefore( elem, this.nextSibling );
-			}
-		});
-	},
-
-	// keepData is for internal use only--do not document
-	remove: function( selector, keepData ) {
-		var elem,
-			elems = selector ? jQuery.filter( selector, this ) : this,
-			i = 0;
-
-		for ( ; (elem = elems[i]) != null; i++ ) {
-
-			if ( !keepData && elem.nodeType === 1 ) {
-				jQuery.cleanData( getAll( elem ) );
-			}
-
-			if ( elem.parentNode ) {
-				if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
-					setGlobalEval( getAll( elem, "script" ) );
-				}
-				elem.parentNode.removeChild( elem );
-			}
-		}
-
-		return this;
-	},
-
-	empty: function() {
-		var elem,
-			i = 0;
-
-		for ( ; (elem = this[i]) != null; i++ ) {
-			// Remove element nodes and prevent memory leaks
-			if ( elem.nodeType === 1 ) {
-				jQuery.cleanData( getAll( elem, false ) );
-			}
-
-			// Remove any remaining nodes
-			while ( elem.firstChild ) {
-				elem.removeChild( elem.firstChild );
-			}
-
-			// If this is a select, ensure that it displays empty (#12336)
-			// Support: IE<9
-			if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
-				elem.options.length = 0;
-			}
-		}
-
-		return this;
-	},
-
-	clone: function( dataAndEvents, deepDataAndEvents ) {
-		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
-		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
-		return this.map( function () {
-			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
-		});
-	},
-
-	html: function( value ) {
-		return jQuery.access( this, function( value ) {
-			var elem = this[0] || {},
-				i = 0,
-				l = this.length;
-
-			if ( value === undefined ) {
-				return elem.nodeType === 1 ?
-					elem.innerHTML.replace( rinlinejQuery, "" ) :
-					undefined;
-			}
-
-			// See if we can take a shortcut and just use innerHTML
-			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
-				( jQuery.support.htmlSerialize || !rnoshimcache.test( value )  ) &&
-				( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
-				!wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
-
-				value = value.replace( rxhtmlTag, "<$1></$2>" );
-
-				try {
-					for (; i < l; i++ ) {
-						// Remove element nodes and prevent memory leaks
-						elem = this[i] || {};
-						if ( elem.nodeType === 1 ) {
-							jQuery.cleanData( getAll( elem, false ) );
-							elem.innerHTML = value;
-						}
-					}
-
-					elem = 0;
-
-				// If using innerHTML throws an exception, use the fallback method
-				} catch(e) {}
-			}
-
-			if ( elem ) {
-				this.empty().append( value );
-			}
-		}, null, value, arguments.length );
-	},
-
-	replaceWith: function() {
-		var
-			// Snapshot the DOM in case .domManip sweeps something relevant into its fragment
-			args = jQuery.map( this, function( elem ) {
-				return [ elem.nextSibling, elem.parentNode ];
-			}),
-			i = 0;
-
-		// Make the changes, replacing each context element with the new content
-		this.domManip( arguments, function( elem ) {
-			var next = args[ i++ ],
-				parent = args[ i++ ];
-
-			if ( parent ) {
-				// Don't use the snapshot next if it has moved (#13810)
-				if ( next && next.parentNode !== parent ) {
-					next = this.nextSibling;
-				}
-				jQuery( this ).remove();
-				parent.insertBefore( elem, next );
-			}
-		// Allow new content to include elements from the context set
-		}, true );
-
-		// Force removal if there was no new content (e.g., from empty arguments)
-		return i ? this : this.remove();
-	},
-
-	detach: function( selector ) {
-		return this.remove( selector, true );
-	},
-
-	domManip: function( args, callback, allowIntersection ) {
-
-		// Flatten any nested arrays
-		args = core_concat.apply( [], args );
-
-		var first, node, hasScripts,
-			scripts, doc, fragment,
-			i = 0,
-			l = this.length,
-			set = this,
-			iNoClone = l - 1,
-			value = args[0],
-			isFunction = jQuery.isFunction( value );
-
-		// We can't cloneNode fragments that contain checked, in WebKit
-		if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {
-			return this.each(function( index ) {
-				var self = set.eq( index );
-				if ( isFunction ) {
-					args[0] = value.call( this, index, self.html() );
-				}
-				self.domManip( args, callback, allowIntersection );
-			});
-		}
-
-		if ( l ) {
-			fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this );
-			first = fragment.firstChild;
-
-			if ( fragment.childNodes.length === 1 ) {
-				fragment = first;
-			}
-
-			if ( first ) {
-				scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
-				hasScripts = scripts.length;
-
-				// Use the original fragment for the last item instead of the first because it can end up
-				// being emptied incorrectly in certain situations (#8070).
-				for ( ; i < l; i++ ) {
-					node = fragment;
-
-					if ( i !== iNoClone ) {
-						node = jQuery.clone( node, true, true );
-
-						// Keep references to cloned scripts for later restoration
-						if ( hasScripts ) {
-							jQuery.merge( scripts, getAll( node, "script" ) );
-						}
-					}
-
-					callback.call( this[i], node, i );
-				}
-
-				if ( hasScripts ) {
-					doc = scripts[ scripts.length - 1 ].ownerDocument;
-
-					// Reenable scripts
-					jQuery.map( scripts, restoreScript );
-
-					// Evaluate executable scripts on first document insertion
-					for ( i = 0; i < hasScripts; i++ ) {
-						node = scripts[ i ];
-						if ( rscriptType.test( node.type || "" ) &&
-							!jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
-
-							if ( node.src ) {
-								// Hope ajax is available...
-								jQuery._evalUrl( node.src );
-							} else {
-								jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) );
-							}
-						}
-					}
-				}
-
-				// Fix #11809: Avoid leaking memory
-				fragment = first = null;
-			}
-		}
-
-		return this;
-	}
-});
-
-// Support: IE<8
-// Manipulating tables requires a tbody
-function manipulationTarget( elem, content ) {
-	return jQuery.nodeName( elem, "table" ) &&
-		jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ?
-
-		elem.getElementsByTagName("tbody")[0] ||
-			elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
-		elem;
-}
-
-// Replace/restore the type attribute of script elements for safe DOM manipulation
-function disableScript( elem ) {
-	elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type;
-	return elem;
-}
-function restoreScript( elem ) {
-	var match = rscriptTypeMasked.exec( elem.type );
-	if ( match ) {
-		elem.type = match[1];
-	} else {
-		elem.removeAttribute("type");
-	}
-	return elem;
-}
-
-// Mark scripts as having already been evaluated
-function setGlobalEval( elems, refElements ) {
-	var elem,
-		i = 0;
-	for ( ; (elem = elems[i]) != null; i++ ) {
-		jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) );
-	}
-}
-
-function cloneCopyEvent( src, dest ) {
-
-	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
-		return;
-	}
-
-	var type, i, l,
-		oldData = jQuery._data( src ),
-		curData = jQuery._data( dest, oldData ),
-		events = oldData.events;
-
-	if ( events ) {
-		delete curData.handle;
-		curData.events = {};
-
-		for ( type in events ) {
-			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
-				jQuery.event.add( dest, type, events[ type ][ i ] );
-			}
-		}
-	}
-
-	// make the cloned public data object a copy from the original
-	if ( curData.data ) {
-		curData.data = jQuery.extend( {}, curData.data );
-	}
-}
-
-function fixCloneNodeIssues( src, dest ) {
-	var nodeName, e, data;
-
-	// We do not need to do anything for non-Elements
-	if ( dest.nodeType !== 1 ) {
-		return;
-	}
-
-	nodeName = dest.nodeName.toLowerCase();
-
-	// IE6-8 copies events bound via attachEvent when using cloneNode.
-	if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {
-		data = jQuery._data( dest );
-
-		for ( e in data.events ) {
-			jQuery.removeEvent( dest, e, data.handle );
-		}
-
-		// Event data gets referenced instead of copied if the expando gets copied too
-		dest.removeAttribute( jQuery.expando );
-	}
-
-	// IE blanks contents when cloning scripts, and tries to evaluate newly-set text
-	if ( nodeName === "script" && dest.text !== src.text ) {
-		disableScript( dest ).text = src.text;
-		restoreScript( dest );
-
-	// IE6-10 improperly clones children of object elements using classid.
-	// IE10 throws NoModificationAllowedError if parent is null, #12132.
-	} else if ( nodeName === "object" ) {
-		if ( dest.parentNode ) {
-			dest.outerHTML = src.outerHTML;
-		}
-
-		// This path appears unavoidable for IE9. When cloning an object
-		// element in IE9, the outerHTML strategy above is not sufficient.
-		// If the src has innerHTML and the destination does not,
-		// copy the src.innerHTML into the dest.innerHTML. #10324
-		if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {
-			dest.innerHTML = src.innerHTML;
-		}
-
-	} else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) {
-		// IE6-8 fails to persist the checked state of a cloned checkbox
-		// or radio button. Worse, IE6-7 fail to give the cloned element
-		// a checked appearance if the defaultChecked value isn't also set
-
-		dest.defaultChecked = dest.checked = src.checked;
-
-		// IE6-7 get confused and end up setting the value of a cloned
-		// checkbox/radio button to an empty string instead of "on"
-		if ( dest.value !== src.value ) {
-			dest.value = src.value;
-		}
-
-	// IE6-8 fails to return the selected option to the default selected
-	// state when cloning options
-	} else if ( nodeName === "option" ) {
-		dest.defaultSelected = dest.selected = src.defaultSelected;
-
-	// IE6-8 fails to set the defaultValue to the correct value when
-	// cloning other types of input fields
-	} else if ( nodeName === "input" || nodeName === "textarea" ) {
-		dest.defaultValue = src.defaultValue;
-	}
-}
-
-jQuery.each({
-	appendTo: "append",
-	prependTo: "prepend",
-	insertBefore: "before",
-	insertAfter: "after",
-	replaceAll: "replaceWith"
-}, function( name, original ) {
-	jQuery.fn[ name ] = function( selector ) {
-		var elems,
-			i = 0,
-			ret = [],
-			insert = jQuery( selector ),
-			last = insert.length - 1;
-
-		for ( ; i <= last; i++ ) {
-			elems = i === last ? this : this.clone(true);
-			jQuery( insert[i] )[ original ]( elems );
-
-			// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
-			core_push.apply( ret, elems.get() );
-		}
-
-		return this.pushStack( ret );
-	};
-});
-
-function getAll( context, tag ) {
-	var elems, elem,
-		i = 0,
-		found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) :
-			typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) :
-			undefined;
-
-	if ( !found ) {
-		for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {
-			if ( !tag || jQuery.nodeName( elem, tag ) ) {
-				found.push( elem );
-			} else {
-				jQuery.merge( found, getAll( elem, tag ) );
-			}
-		}
-	}
-
-	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
-		jQuery.merge( [ context ], found ) :
-		found;
-}
-
-// Used in buildFragment, fixes the defaultChecked property
-function fixDefaultChecked( elem ) {
-	if ( manipulation_rcheckableType.test( elem.type ) ) {
-		elem.defaultChecked = elem.checked;
-	}
-}
-
-jQuery.extend({
-	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
-		var destElements, node, clone, i, srcElements,
-			inPage = jQuery.contains( elem.ownerDocument, elem );
-
-		if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
-			clone = elem.cloneNode( true );
-
-		// IE<=8 does not properly clone detached, unknown element nodes
-		} else {
-			fragmentDiv.innerHTML = elem.outerHTML;
-			fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
-		}
-
-		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
-				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
-
-			// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
-			destElements = getAll( clone );
-			srcElements = getAll( elem );
-
-			// Fix all IE cloning issues
-			for ( i = 0; (node = srcElements[i]) != null; ++i ) {
-				// Ensure that the destination node is not null; Fixes #9587
-				if ( destElements[i] ) {
-					fixCloneNodeIssues( node, destElements[i] );
-				}
-			}
-		}
-
-		// Copy the events from the original to the clone
-		if ( dataAndEvents ) {
-			if ( deepDataAndEvents ) {
-				srcElements = srcElements || getAll( elem );
-				destElements = destElements || getAll( clone );
-
-				for ( i = 0; (node = srcElements[i]) != null; i++ ) {
-					cloneCopyEvent( node, destElements[i] );
-				}
-			} else {
-				cloneCopyEvent( elem, clone );
-			}
-		}
-
-		// Preserve script evaluation history
-		destElements = getAll( clone, "script" );
-		if ( destElements.length > 0 ) {
-			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
-		}
-
-		destElements = srcElements = node = null;
-
-		// Return the cloned set
-		return clone;
-	},
-
-	buildFragment: function( elems, context, scripts, selection ) {
-		var j, elem, contains,
-			tmp, tag, tbody, wrap,
-			l = elems.length,
-
-			// Ensure a safe fragment
-			safe = createSafeFragment( context ),
-
-			nodes = [],
-			i = 0;
-
-		for ( ; i < l; i++ ) {
-			elem = elems[ i ];
-
-			if ( elem || elem === 0 ) {
-
-				// Add nodes directly
-				if ( jQuery.type( elem ) === "object" ) {
-					jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
-
-				// Convert non-html into a text node
-				} else if ( !rhtml.test( elem ) ) {
-					nodes.push( context.createTextNode( elem ) );
-
-				// Convert html into DOM nodes
-				} else {
-					tmp = tmp || safe.appendChild( context.createElement("div") );
-
-					// Deserialize a standard representation
-					tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
-					wrap = wrapMap[ tag ] || wrapMap._default;
-
-					tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2];
-
-					// Descend through wrappers to the right content
-					j = wrap[0];
-					while ( j-- ) {
-						tmp = tmp.lastChild;
-					}
-
-					// Manually add leading whitespace removed by IE
-					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
-						nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );
-					}
-
-					// Remove IE's autoinserted <tbody> from table fragments
-					if ( !jQuery.support.tbody ) {
-
-						// String was a <table>, *may* have spurious <tbody>
-						elem = tag === "table" && !rtbody.test( elem ) ?
-							tmp.firstChild :
-
-							// String was a bare <thead> or <tfoot>
-							wrap[1] === "<table>" && !rtbody.test( elem ) ?
-								tmp :
-								0;
-
-						j = elem && elem.childNodes.length;
-						while ( j-- ) {
-							if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) {
-								elem.removeChild( tbody );
-							}
-						}
-					}
-
-					jQuery.merge( nodes, tmp.childNodes );
-
-					// Fix #12392 for WebKit and IE > 9
-					tmp.textContent = "";
-
-					// Fix #12392 for oldIE
-					while ( tmp.firstChild ) {
-						tmp.removeChild( tmp.firstChild );
-					}
-
-					// Remember the top-level container for proper cleanup
-					tmp = safe.lastChild;
-				}
-			}
-		}
-
-		// Fix #11356: Clear elements from fragment
-		if ( tmp ) {
-			safe.removeChild( tmp );
-		}
-
-		// Reset defaultChecked for any radios and checkboxes
-		// about to be appended to the DOM in IE 6/7 (#8060)
-		if ( !jQuery.support.appendChecked ) {
-			jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
-		}
-
-		i = 0;
-		while ( (elem = nodes[ i++ ]) ) {
-
-			// #4087 - If origin and destination elements are the same, and this is
-			// that element, do not do anything
-			if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
-				continue;
-			}
-
-			contains = jQuery.contains( elem.ownerDocument, elem );
-
-			// Append to fragment
-			tmp = getAll( safe.appendChild( elem ), "script" );
-
-			// Preserve script evaluation history
-			if ( contains ) {
-				setGlobalEval( tmp );
-			}
-
-			// Capture executables
-			if ( scripts ) {
-				j = 0;
-				while ( (elem = tmp[ j++ ]) ) {
-					if ( rscriptType.test( elem.type || "" ) ) {
-						scripts.push( elem );
-					}
-				}
-			}
-		}
-
-		tmp = null;
-
-		return safe;
-	},
-
-	cleanData: function( elems, /* internal */ acceptData ) {
-		var elem, type, id, data,
-			i = 0,
-			internalKey = jQuery.expando,
-			cache = jQuery.cache,
-			deleteExpando = jQuery.support.deleteExpando,
-			special = jQuery.event.special;
-
-		for ( ; (elem = elems[i]) != null; i++ ) {
-
-			if ( acceptData || jQuery.acceptData( elem ) ) {
-
-				id = elem[ internalKey ];
-				data = id && cache[ id ];
-
-				if ( data ) {
-					if ( data.events ) {
-						for ( type in data.events ) {
-							if ( special[ type ] ) {
-								jQuery.event.remove( elem, type );
-
-							// This is a shortcut to avoid jQuery.event.remove's overhead
-							} else {
-								jQuery.removeEvent( elem, type, data.handle );
-							}
-						}
-					}
-
-					// Remove cache only if it was not already removed by jQuery.event.remove
-					if ( cache[ id ] ) {
-
-						delete cache[ id ];
-
-						// IE does not allow us to delete expando properties from nodes,
-						// nor does it have a removeAttribute function on Document nodes;
-						// we must handle all of these cases
-						if ( deleteExpando ) {
-							delete elem[ internalKey ];
-
-						} else if ( typeof elem.removeAttribute !== core_strundefined ) {
-							elem.removeAttribute( internalKey );
-
-						} else {
-							elem[ internalKey ] = null;
-						}
-
-						core_deletedIds.push( id );
-					}
-				}
-			}
-		}
-	},
-
-	_evalUrl: function( url ) {
-		return jQuery.ajax({
-			url: url,
-			type: "GET",
-			dataType: "script",
-			async: false,
-			global: false,
-			"throws": true
-		});
-	}
-});
-jQuery.fn.extend({
-	wrapAll: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapAll( html.call(this, i) );
-			});
-		}
-
-		if ( this[0] ) {
-			// The elements to wrap the target around
-			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
-
-			if ( this[0].parentNode ) {
-				wrap.insertBefore( this[0] );
-			}
-
-			wrap.map(function() {
-				var elem = this;
-
-				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
-					elem = elem.firstChild;
-				}
-
-				return elem;
-			}).append( this );
-		}
-
-		return this;
-	},
-
-	wrapInner: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapInner( html.call(this, i) );
-			});
-		}
-
-		return this.each(function() {
-			var self = jQuery( this ),
-				contents = self.contents();
-
-			if ( contents.length ) {
-				contents.wrapAll( html );
-
-			} else {
-				self.append( html );
-			}
-		});
-	},
-
-	wrap: function( html ) {
-		var isFunction = jQuery.isFunction( html );
-
-		return this.each(function(i) {
-			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
-		});
-	},
-
-	unwrap: function() {
-		return this.parent().each(function() {
-			if ( !jQuery.nodeName( this, "body" ) ) {
-				jQuery( this ).replaceWith( this.childNodes );
-			}
-		}).end();
-	}
-});
-var iframe, getStyles, curCSS,
-	ralpha = /alpha\([^)]*\)/i,
-	ropacity = /opacity\s*=\s*([^)]*)/,
-	rposition = /^(top|right|bottom|left)$/,
-	// swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
-	// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
-	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
-	rmargin = /^margin/,
-	rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
-	rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
-	rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ),
-	elemdisplay = { BODY: "block" },
-
-	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-	cssNormalTransform = {
-		letterSpacing: 0,
-		fontWeight: 400
-	},
-
-	cssExpand = [ "Top", "Right", "Bottom", "Left" ],
-	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
-
-// return a css property mapped to a potentially vendor prefixed property
-function vendorPropName( style, name ) {
-
-	// shortcut for names that are not vendor prefixed
-	if ( name in style ) {
-		return name;
-	}
-
-	// check for vendor prefixed names
-	var capName = name.charAt(0).toUpperCase() + name.slice(1),
-		origName = name,
-		i = cssPrefixes.length;
-
-	while ( i-- ) {
-		name = cssPrefixes[ i ] + capName;
-		if ( name in style ) {
-			return name;
-		}
-	}
-
-	return origName;
-}
-
-function isHidden( elem, el ) {
-	// isHidden might be called from jQuery#filter function;
-	// in that case, element will be second argument
-	elem = el || elem;
-	return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
-}
-
-function showHide( elements, show ) {
-	var display, elem, hidden,
-		values = [],
-		index = 0,
-		length = elements.length;
-
-	for ( ; index < length; index++ ) {
-		elem = elements[ index ];
-		if ( !elem.style ) {
-			continue;
-		}
-
-		values[ index ] = jQuery._data( elem, "olddisplay" );
-		display = elem.style.display;
-		if ( show ) {
-			// Reset the inline display of this element to learn if it is
-			// being hidden by cascaded rules or not
-			if ( !values[ index ] && display === "none" ) {
-				elem.style.display = "";
-			}
-
-			// Set elements which have been overridden with display: none
-			// in a stylesheet to whatever the default browser style is
-			// for such an element
-			if ( elem.style.display === "" && isHidden( elem ) ) {
-				values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
-			}
-		} else {
-
-			if ( !values[ index ] ) {
-				hidden = isHidden( elem );
-
-				if ( display && display !== "none" || !hidden ) {
-					jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
-				}
-			}
-		}
-	}
-
-	// Set the display of most of the elements in a second loop
-	// to avoid the constant reflow
-	for ( index = 0; index < length; index++ ) {
-		elem = elements[ index ];
-		if ( !elem.style ) {
-			continue;
-		}
-		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
-			elem.style.display = show ? values[ index ] || "" : "none";
-		}
-	}
-
-	return elements;
-}
-
-jQuery.fn.extend({
-	css: function( name, value ) {
-		return jQuery.access( this, function( elem, name, value ) {
-			var len, styles,
-				map = {},
-				i = 0;
-
-			if ( jQuery.isArray( name ) ) {
-				styles = getStyles( elem );
-				len = name.length;
-
-				for ( ; i < len; i++ ) {
-					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
-				}
-
-				return map;
-			}
-
-			return value !== undefined ?
-				jQuery.style( elem, name, value ) :
-				jQuery.css( elem, name );
-		}, name, value, arguments.length > 1 );
-	},
-	show: function() {
-		return showHide( this, true );
-	},
-	hide: function() {
-		return showHide( this );
-	},
-	toggle: function( state ) {
-		if ( typeof state === "boolean" ) {
-			return state ? this.show() : this.hide();
-		}
-
-		return this.each(function() {
-			if ( isHidden( this ) ) {
-				jQuery( this ).show();
-			} else {
-				jQuery( this ).hide();
-			}
-		});
-	}
-});
-
-jQuery.extend({
-	// Add in style property hooks for overriding the default
-	// behavior of getting and setting a style property
-	cssHooks: {
-		opacity: {
-			get: function( elem, computed ) {
-				if ( computed ) {
-					// We should always get a number back from opacity
-					var ret = curCSS( elem, "opacity" );
-					return ret === "" ? "1" : ret;
-				}
-			}
-		}
-	},
-
-	// Don't automatically add "px" to these possibly-unitless properties
-	cssNumber: {
-		"columnCount": true,
-		"fillOpacity": true,
-		"fontWeight": true,
-		"lineHeight": true,
-		"opacity": true,
-		"order": true,
-		"orphans": true,
-		"widows": true,
-		"zIndex": true,
-		"zoom": true
-	},
-
-	// Add in properties whose names you wish to fix before
-	// setting or getting the value
-	cssProps: {
-		// normalize float css property
-		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
-	},
-
-	// Get and set the style property on a DOM Node
-	style: function( elem, name, value, extra ) {
-		// Don't set styles on text and comment nodes
-		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
-			return;
-		}
-
-		// Make sure that we're working with the right name
-		var ret, type, hooks,
-			origName = jQuery.camelCase( name ),
-			style = elem.style;
-
-		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
-
-		// gets hook for the prefixed version
-		// followed by the unprefixed version
-		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
-		// Check if we're setting a value
-		if ( value !== undefined ) {
-			type = typeof value;
-
-			// convert relative number strings (+= or -=) to relative numbers. #7345
-			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
-				value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
-				// Fixes bug #9237
-				type = "number";
-			}
-
-			// Make sure that NaN and null values aren't set. See: #7116
-			if ( value == null || type === "number" && isNaN( value ) ) {
-				return;
-			}
-
-			// If a number was passed in, add 'px' to the (except for certain CSS properties)
-			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
-				value += "px";
-			}
-
-			// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
-			// but it would mean to define eight (for every problematic property) identical functions
-			if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) {
-				style[ name ] = "inherit";
-			}
-
-			// If a hook was provided, use that value, otherwise just set the specified value
-			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
-
-				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
-				// Fixes bug #5509
-				try {
-					style[ name ] = value;
-				} catch(e) {}
-			}
-
-		} else {
-			// If a hook was provided get the non-computed value from there
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
-				return ret;
-			}
-
-			// Otherwise just get the value from the style object
-			return style[ name ];
-		}
-	},
-
-	css: function( elem, name, extra, styles ) {
-		var num, val, hooks,
-			origName = jQuery.camelCase( name );
-
-		// Make sure that we're working with the right name
-		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
-
-		// gets hook for the prefixed version
-		// followed by the unprefixed version
-		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
-		// If a hook was provided get the computed value from there
-		if ( hooks && "get" in hooks ) {
-			val = hooks.get( elem, true, extra );
-		}
-
-		// Otherwise, if a way to get the computed value exists, use that
-		if ( val === undefined ) {
-			val = curCSS( elem, name, styles );
-		}
-
-		//convert "normal" to computed value
-		if ( val === "normal" && name in cssNormalTransform ) {
-			val = cssNormalTransform[ name ];
-		}
-
-		// Return, converting to number if forced or a qualifier was provided and val looks numeric
-		if ( extra === "" || extra ) {
-			num = parseFloat( val );
-			return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
-		}
-		return val;
-	}
-});
-
-// NOTE: we've included the "window" in window.getComputedStyle
-// because jsdom on node.js will break without it.
-if ( window.getComputedStyle ) {
-	getStyles = function( elem ) {
-		return window.getComputedStyle( elem, null );
-	};
-
-	curCSS = function( elem, name, _computed ) {
-		var width, minWidth, maxWidth,
-			computed = _computed || getStyles( elem ),
-
-			// getPropertyValue is only needed for .css('filter') in IE9, see #12537
-			ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,
-			style = elem.style;
-
-		if ( computed ) {
-
-			if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
-				ret = jQuery.style( elem, name );
-			}
-
-			// A tribute to the "awesome hack by Dean Edwards"
-			// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
-			// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
-			// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
-			if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
-
-				// Remember the original values
-				width = style.width;
-				minWidth = style.minWidth;
-				maxWidth = style.maxWidth;
-
-				// Put in the new values to get a computed value out
-				style.minWidth = style.maxWidth = style.width = ret;
-				ret = computed.width;
-
-				// Revert the changed values
-				style.width = width;
-				style.minWidth = minWidth;
-				style.maxWidth = maxWidth;
-			}
-		}
-
-		return ret;
-	};
-} else if ( document.documentElement.currentStyle ) {
-	getStyles = function( elem ) {
-		return elem.currentStyle;
-	};
-
-	curCSS = function( elem, name, _computed ) {
-		var left, rs, rsLeft,
-			computed = _computed || getStyles( elem ),
-			ret = computed ? computed[ name ] : undefined,
-			style = elem.style;
-
-		// Avoid setting ret to empty string here
-		// so we don't default to auto
-		if ( ret == null && style && style[ name ] ) {
-			ret = style[ name ];
-		}
-
-		// From the awesome hack by Dean Edwards
-		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
-		// If we're not dealing with a regular pixel number
-		// but a number that has a weird ending, we need to convert it to pixels
-		// but not position css attributes, as those are proportional to the parent element instead
-		// and we can't measure the parent instead because it might trigger a "stacking dolls" problem
-		if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
-
-			// Remember the original values
-			left = style.left;
-			rs = elem.runtimeStyle;
-			rsLeft = rs && rs.left;
-
-			// Put in the new values to get a computed value out
-			if ( rsLeft ) {
-				rs.left = elem.currentStyle.left;
-			}
-			style.left = name === "fontSize" ? "1em" : ret;
-			ret = style.pixelLeft + "px";
-
-			// Revert the changed values
-			style.left = left;
-			if ( rsLeft ) {
-				rs.left = rsLeft;
-			}
-		}
-
-		return ret === "" ? "auto" : ret;
-	};
-}
-
-function setPositiveNumber( elem, value, subtract ) {
-	var matches = rnumsplit.exec( value );
-	return matches ?
-		// Guard against undefined "subtract", e.g., when used as in cssHooks
-		Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
-		value;
-}
-
-function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
-	var i = extra === ( isBorderBox ? "border" : "content" ) ?
-		// If we already have the right measurement, avoid augmentation
-		4 :
-		// Otherwise initialize for horizontal or vertical properties
-		name === "width" ? 1 : 0,
-
-		val = 0;
-
-	for ( ; i < 4; i += 2 ) {
-		// both box models exclude margin, so add it if we want it
-		if ( extra === "margin" ) {
-			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
-		}
-
-		if ( isBorderBox ) {
-			// border-box includes padding, so remove it if we want content
-			if ( extra === "content" ) {
-				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
-			}
-
-			// at this point, extra isn't border nor margin, so remove border
-			if ( extra !== "margin" ) {
-				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
-			}
-		} else {
-			// at this point, extra isn't content, so add padding
-			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
-
-			// at this point, extra isn't content nor padding, so add border
-			if ( extra !== "padding" ) {
-				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
-			}
-		}
-	}
-
-	return val;
-}
-
-function getWidthOrHeight( elem, name, extra ) {
-
-	// Start with offset property, which is equivalent to the border-box value
-	var valueIsBorderBox = true,
-		val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
-		styles = getStyles( elem ),
-		isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
-
-	// some non-html elements return undefined for offsetWidth, so check for null/undefined
-	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
-	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
-	if ( val <= 0 || val == null ) {
-		// Fall back to computed then uncomputed css if necessary
-		val = curCSS( elem, name, styles );
-		if ( val < 0 || val == null ) {
-			val = elem.style[ name ];
-		}
-
-		// Computed unit is not pixels. Stop here and return.
-		if ( rnumnonpx.test(val) ) {
-			return val;
-		}
-
-		// we need the check for style in case a browser which returns unreliable values
-		// for getComputedStyle silently falls back to the reliable elem.style
-		valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );
-
-		// Normalize "", auto, and prepare for extra
-		val = parseFloat( val ) || 0;
-	}
-
-	// use the active box-sizing model to add/subtract irrelevant styles
-	return ( val +
-		augmentWidthOrHeight(
-			elem,
-			name,
-			extra || ( isBorderBox ? "border" : "content" ),
-			valueIsBorderBox,
-			styles
-		)
-	) + "px";
-}
-
-// Try to determine the default display value of an element
-function css_defaultDisplay( nodeName ) {
-	var doc = document,
-		display = elemdisplay[ nodeName ];
-
-	if ( !display ) {
-		display = actualDisplay( nodeName, doc );
-
-		// If the simple way fails, read from inside an iframe
-		if ( display === "none" || !display ) {
-			// Use the already-created iframe if possible
-			iframe = ( iframe ||
-				jQuery("<iframe frameborder='0' width='0' height='0'/>")
-				.css( "cssText", "display:block !important" )
-			).appendTo( doc.documentElement );
-
-			// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
-			doc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document;
-			doc.write("<!doctype html><html><body>");
-			doc.close();
-
-			display = actualDisplay( nodeName, doc );
-			iframe.detach();
-		}
-
-		// Store the correct default display
-		elemdisplay[ nodeName ] = display;
-	}
-
-	return display;
-}
-
-// Called ONLY from within css_defaultDisplay
-function actualDisplay( name, doc ) {
-	var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
-		display = jQuery.css( elem[0], "display" );
-	elem.remove();
-	return display;
-}
-
-jQuery.each([ "height", "width" ], function( i, name ) {
-	jQuery.cssHooks[ name ] = {
-		get: function( elem, computed, extra ) {
-			if ( computed ) {
-				// certain elements can have dimension info if we invisibly show them
-				// however, it must have a current display style that would benefit from this
-				return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
-					jQuery.swap( elem, cssShow, function() {
-						return getWidthOrHeight( elem, name, extra );
-					}) :
-					getWidthOrHeight( elem, name, extra );
-			}
-		},
-
-		set: function( elem, value, extra ) {
-			var styles = extra && getStyles( elem );
-			return setPositiveNumber( elem, value, extra ?
-				augmentWidthOrHeight(
-					elem,
-					name,
-					extra,
-					jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
-					styles
-				) : 0
-			);
-		}
-	};
-});
-
-if ( !jQuery.support.opacity ) {
-	jQuery.cssHooks.opacity = {
-		get: function( elem, computed ) {
-			// IE uses filters for opacity
-			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
-				( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
-				computed ? "1" : "";
-		},
-
-		set: function( elem, value ) {
-			var style = elem.style,
-				currentStyle = elem.currentStyle,
-				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
-				filter = currentStyle && currentStyle.filter || style.filter || "";
-
-			// IE has trouble with opacity if it does not have layout
-			// Force it by setting the zoom level
-			style.zoom = 1;
-
-			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
-			// if value === "", then remove inline opacity #12685
-			if ( ( value >= 1 || value === "" ) &&
-					jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
-					style.removeAttribute ) {
-
-				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
-				// if "filter:" is present at all, clearType is disabled, we want to avoid this
-				// style.removeAttribute is IE Only, but so apparently is this code path...
-				style.removeAttribute( "filter" );
-
-				// if there is no filter style applied in a css rule or unset inline opacity, we are done
-				if ( value === "" || currentStyle && !currentStyle.filter ) {
-					return;
-				}
-			}
-
-			// otherwise, set new filter values
-			style.filter = ralpha.test( filter ) ?
-				filter.replace( ralpha, opacity ) :
-				filter + " " + opacity;
-		}
-	};
-}
-
-// These hooks cannot be added until DOM ready because the support test
-// for it is not run until after DOM ready
-jQuery(function() {
-	if ( !jQuery.support.reliableMarginRight ) {
-		jQuery.cssHooks.marginRight = {
-			get: function( elem, computed ) {
-				if ( computed ) {
-					// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-					// Work around by temporarily setting element display to inline-block
-					return jQuery.swap( elem, { "display": "inline-block" },
-						curCSS, [ elem, "marginRight" ] );
-				}
-			}
-		};
-	}
-
-	// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
-	// getComputedStyle returns percent when specified for top/left/bottom/right
-	// rather than make the css module depend on the offset module, we just check for it here
-	if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
-		jQuery.each( [ "top", "left" ], function( i, prop ) {
-			jQuery.cssHooks[ prop ] = {
-				get: function( elem, computed ) {
-					if ( computed ) {
-						computed = curCSS( elem, prop );
-						// if curCSS returns percentage, fallback to offset
-						return rnumnonpx.test( computed ) ?
-							jQuery( elem ).position()[ prop ] + "px" :
-							computed;
-					}
-				}
-			};
-		});
-	}
-
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.hidden = function( elem ) {
-		// Support: Opera <= 12.12
-		// Opera reports offsetWidths and offsetHeights less than zero on some elements
-		return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||
-			(!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
-	};
-
-	jQuery.expr.filters.visible = function( elem ) {
-		return !jQuery.expr.filters.hidden( elem );
-	};
-}
-
-// These hooks are used by animate to expand properties
-jQuery.each({
-	margin: "",
-	padding: "",
-	border: "Width"
-}, function( prefix, suffix ) {
-	jQuery.cssHooks[ prefix + suffix ] = {
-		expand: function( value ) {
-			var i = 0,
-				expanded = {},
-
-				// assumes a single number if not a string
-				parts = typeof value === "string" ? value.split(" ") : [ value ];
-
-			for ( ; i < 4; i++ ) {
-				expanded[ prefix + cssExpand[ i ] + suffix ] =
-					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
-			}
-
-			return expanded;
-		}
-	};
-
-	if ( !rmargin.test( prefix ) ) {
-		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
-	}
-});
-var r20 = /%20/g,
-	rbracket = /\[\]$/,
-	rCRLF = /\r?\n/g,
-	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
-	rsubmittable = /^(?:input|select|textarea|keygen)/i;
-
-jQuery.fn.extend({
-	serialize: function() {
-		return jQuery.param( this.serializeArray() );
-	},
-	serializeArray: function() {
-		return this.map(function(){
-			// Can add propHook for "elements" to filter or add form elements
-			var elements = jQuery.prop( this, "elements" );
-			return elements ? jQuery.makeArray( elements ) : this;
-		})
-		.filter(function(){
-			var type = this.type;
-			// Use .is(":disabled") so that fieldset[disabled] works
-			return this.name && !jQuery( this ).is( ":disabled" ) &&
-				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
-				( this.checked || !manipulation_rcheckableType.test( type ) );
-		})
-		.map(function( i, elem ){
-			var val = jQuery( this ).val();
-
-			return val == null ?
-				null :
-				jQuery.isArray( val ) ?
-					jQuery.map( val, function( val ){
-						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-					}) :
-					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-		}).get();
-	}
-});
-
-//Serialize an array of form elements or a set of
-//key/values into a query string
-jQuery.param = function( a, traditional ) {
-	var prefix,
-		s = [],
-		add = function( key, value ) {
-			// If value is a function, invoke it and return its value
-			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
-			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
-		};
-
-	// Set traditional to true for jQuery <= 1.3.2 behavior.
-	if ( traditional === undefined ) {
-		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
-	}
-
-	// If an array was passed in, assume that it is an array of form elements.
-	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
-		// Serialize the form elements
-		jQuery.each( a, function() {
-			add( this.name, this.value );
-		});
-
-	} else {
-		// If traditional, encode the "old" way (the way 1.3.2 or older
-		// did it), otherwise encode params recursively.
-		for ( prefix in a ) {
-			buildParams( prefix, a[ prefix ], traditional, add );
-		}
-	}
-
-	// Return the resulting serialization
-	return s.join( "&" ).replace( r20, "+" );
-};
-
-function buildParams( prefix, obj, traditional, add ) {
-	var name;
-
-	if ( jQuery.isArray( obj ) ) {
-		// Serialize array item.
-		jQuery.each( obj, function( i, v ) {
-			if ( traditional || rbracket.test( prefix ) ) {
-				// Treat each array item as a scalar.
-				add( prefix, v );
-
-			} else {
-				// Item is non-scalar (array or object), encode its numeric index.
-				buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
-			}
-		});
-
-	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
-		// Serialize object item.
-		for ( name in obj ) {
-			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
-		}
-
-	} else {
-		// Serialize scalar item.
-		add( prefix, obj );
-	}
-}
-jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
-	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
-	"change select submit keydown keypress keyup error contextmenu").split(" "), function( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		return arguments.length > 0 ?
-			this.on( name, null, data, fn ) :
-			this.trigger( name );
-	};
-});
-
-jQuery.fn.extend({
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-	},
-
-	bind: function( types, data, fn ) {
-		return this.on( types, null, data, fn );
-	},
-	unbind: function( types, fn ) {
-		return this.off( types, null, fn );
-	},
-
-	delegate: function( selector, types, data, fn ) {
-		return this.on( types, selector, data, fn );
-	},
-	undelegate: function( selector, types, fn ) {
-		// ( namespace ) or ( selector, types [, fn] )
-		return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
-	}
-});
-var
-	// Document location
-	ajaxLocParts,
-	ajaxLocation,
-	ajax_nonce = jQuery.now(),
-
-	ajax_rquery = /\?/,
-	rhash = /#.*$/,
-	rts = /([?&])_=[^&]*/,
-	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
-	// #7653, #8125, #8152: local protocol detection
-	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
-	rnoContent = /^(?:GET|HEAD)$/,
-	rprotocol = /^\/\//,
-	rurl = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
-
-	// Keep a copy of the old load method
-	_load = jQuery.fn.load,
-
-	/* Prefilters
-	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
-	 * 2) These are called:
-	 *    - BEFORE asking for a transport
-	 *    - AFTER param serialization (s.data is a string if s.processData is true)
-	 * 3) key is the dataType
-	 * 4) the catchall symbol "*" can be used
-	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
-	 */
-	prefilters = {},
-
-	/* Transports bindings
-	 * 1) key is the dataType
-	 * 2) the catchall symbol "*" can be used
-	 * 3) selection will start with transport dataType and THEN go to "*" if needed
-	 */
-	transports = {},
-
-	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
-	allTypes = "*/".concat("*");
-
-// #8138, IE may throw an exception when accessing
-// a field from window.location if document.domain has been set
-try {
-	ajaxLocation = location.href;
-} catch( e ) {
-	// Use the href attribute of an A element
-	// since IE will modify it given document.location
-	ajaxLocation = document.createElement( "a" );
-	ajaxLocation.href = "";
-	ajaxLocation = ajaxLocation.href;
-}
-
-// Segment location into parts
-ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
-	// dataTypeExpression is optional and defaults to "*"
-	return function( dataTypeExpression, func ) {
-
-		if ( typeof dataTypeExpression !== "string" ) {
-			func = dataTypeExpression;
-			dataTypeExpression = "*";
-		}
-
-		var dataType,
-			i = 0,
-			dataTypes = dataTypeExpression.toLowerCase().match( core_rnotwhite ) || [];
-
-		if ( jQuery.isFunction( func ) ) {
-			// For each dataType in the dataTypeExpression
-			while ( (dataType = dataTypes[i++]) ) {
-				// Prepend if requested
-				if ( dataType[0] === "+" ) {
-					dataType = dataType.slice( 1 ) || "*";
-					(structure[ dataType ] = structure[ dataType ] || []).unshift( func );
-
-				// Otherwise append
-				} else {
-					(structure[ dataType ] = structure[ dataType ] || []).push( func );
-				}
-			}
-		}
-	};
-}
-
-// Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
-
-	var inspected = {},
-		seekingTransport = ( structure === transports );
-
-	function inspect( dataType ) {
-		var selected;
-		inspected[ dataType ] = true;
-		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
-			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
-			if( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
-				options.dataTypes.unshift( dataTypeOrTransport );
-				inspect( dataTypeOrTransport );
-				return false;
-			} else if ( seekingTransport ) {
-				return !( selected = dataTypeOrTransport );
-			}
-		});
-		return selected;
-	}
-
-	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
-}
-
-// A special extend for ajax options
-// that takes "flat" options (not to be deep extended)
-// Fixes #9887
-function ajaxExtend( target, src ) {
-	var deep, key,
-		flatOptions = jQuery.ajaxSettings.flatOptions || {};
-
-	for ( key in src ) {
-		if ( src[ key ] !== undefined ) {
-			( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
-		}
-	}
-	if ( deep ) {
-		jQuery.extend( true, target, deep );
-	}
-
-	return target;
-}
-
-jQuery.fn.load = function( url, params, callback ) {
-	if ( typeof url !== "string" && _load ) {
-		return _load.apply( this, arguments );
-	}
-
-	var selector, response, type,
-		self = this,
-		off = url.indexOf(" ");
-
-	if ( off >= 0 ) {
-		selector = url.slice( off, url.length );
-		url = url.slice( 0, off );
-	}
-
-	// If it's a function
-	if ( jQuery.isFunction( params ) ) {
-
-		// We assume that it's the callback
-		callback = params;
-		params = undefined;
-
-	// Otherwise, build a param string
-	} else if ( params && typeof params === "object" ) {
-		type = "POST";
-	}
-
-	// If we have elements to modify, make the request
-	if ( self.length > 0 ) {
-		jQuery.ajax({
-			url: url,
-
-			// if "type" variable is undefined, then "GET" method will be used
-			type: type,
-			dataType: "html",
-			data: params
-		}).done(function( responseText ) {
-
-			// Save response for use in complete callback
-			response = arguments;
-
-			self.html( selector ?
-
-				// If a selector was specified, locate the right elements in a dummy div
-				// Exclude scripts to avoid IE 'Permission Denied' errors
-				jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
-
-				// Otherwise use the full result
-				responseText );
-
-		}).complete( callback && function( jqXHR, status ) {
-			self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
-		});
-	}
-
-	return this;
-};
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ){
-	jQuery.fn[ type ] = function( fn ){
-		return this.on( type, fn );
-	};
-});
-
-jQuery.extend({
-
-	// Counter for holding the number of active queries
-	active: 0,
-
-	// Last-Modified header cache for next request
-	lastModified: {},
-	etag: {},
-
-	ajaxSettings: {
-		url: ajaxLocation,
-		type: "GET",
-		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
-		global: true,
-		processData: true,
-		async: true,
-		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
-		/*
-		timeout: 0,
-		data: null,
-		dataType: null,
-		username: null,
-		password: null,
-		cache: null,
-		throws: false,
-		traditional: false,
-		headers: {},
-		*/
-
-		accepts: {
-			"*": allTypes,
-			text: "text/plain",
-			html: "text/html",
-			xml: "application/xml, text/xml",
-			json: "application/json, text/javascript"
-		},
-
-		contents: {
-			xml: /xml/,
-			html: /html/,
-			json: /json/
-		},
-
-		responseFields: {
-			xml: "responseXML",
-			text: "responseText",
-			json: "responseJSON"
-		},
-
-		// Data converters
-		// Keys separate source (or catchall "*") and destination types with a single space
-		converters: {
-
-			// Convert anything to text
-			"* text": String,
-
-			// Text to html (true = no transformation)
-			"text html": true,
-
-			// Evaluate text as a json expression
-			"text json": jQuery.parseJSON,
-
-			// Parse text as xml
-			"text xml": jQuery.parseXML
-		},
-
-		// For options that shouldn't be deep extended:
-		// you can add your own custom options here if
-		// and when you create one that shouldn't be
-		// deep extended (see ajaxExtend)
-		flatOptions: {
-			url: true,
-			context: true
-		}
-	},
-
-	// Creates a full fledged settings object into target
-	// with both ajaxSettings and settings fields.
-	// If target is omitted, writes into ajaxSettings.
-	ajaxSetup: function( target, settings ) {
-		return settings ?
-
-			// Building a settings object
-			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
-
-			// Extending ajaxSettings
-			ajaxExtend( jQuery.ajaxSettings, target );
-	},
-
-	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
-	ajaxTransport: addToPrefiltersOrTransports( transports ),
-
-	// Main method
-	ajax: function( url, options ) {
-
-		// If url is an object, simulate pre-1.5 signature
-		if ( typeof url === "object" ) {
-			options = url;
-			url = undefined;
-		}
-
-		// Force options to be an object
-		options = options || {};
-
-		var // Cross-domain detection vars
-			parts,
-			// Loop variable
-			i,
-			// URL without anti-cache param
-			cacheURL,
-			// Response headers as string
-			responseHeadersString,
-			// timeout handle
-			timeoutTimer,
-
-			// To know if global events are to be dispatched
-			fireGlobals,
-
-			transport,
-			// Response headers
-			responseHeaders,
-			// Create the final options object
-			s = jQuery.ajaxSetup( {}, options ),
-			// Callbacks context
-			callbackContext = s.context || s,
-			// Context for global events is callbackContext if it is a DOM node or jQuery collection
-			globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
-				jQuery( callbackContext ) :
-				jQuery.event,
-			// Deferreds
-			deferred = jQuery.Deferred(),
-			completeDeferred = jQuery.Callbacks("once memory"),
-			// Status-dependent callbacks
-			statusCode = s.statusCode || {},
-			// Headers (they are sent all at once)
-			requestHeaders = {},
-			requestHeadersNames = {},
-			// The jqXHR state
-			state = 0,
-			// Default abort message
-			strAbort = "canceled",
-			// Fake xhr
-			jqXHR = {
-				readyState: 0,
-
-				// Builds headers hashtable if needed
-				getResponseHeader: function( key ) {
-					var match;
-					if ( state === 2 ) {
-						if ( !responseHeaders ) {
-							responseHeaders = {};
-							while ( (match = rheaders.exec( responseHeadersString )) ) {
-								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
-							}
-						}
-						match = responseHeaders[ key.toLowerCase() ];
-					}
-					return match == null ? null : match;
-				},
-
-				// Raw string
-				getAllResponseHeaders: function() {
-					return state === 2 ? responseHeadersString : null;
-				},
-
-				// Caches the header
-				setRequestHeader: function( name, value ) {
-					var lname = name.toLowerCase();
-					if ( !state ) {
-						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
-						requestHeaders[ name ] = value;
-					}
-					return this;
-				},
-
-				// Overrides response content-type header
-				overrideMimeType: function( type ) {
-					if ( !state ) {
-						s.mimeType = type;
-					}
-					return this;
-				},
-
-				// Status-dependent callbacks
-				statusCode: function( map ) {
-					var code;
-					if ( map ) {
-						if ( state < 2 ) {
-							for ( code in map ) {
-								// Lazy-add the new callback in a way that preserves old ones
-								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
-							}
-						} else {
-							// Execute the appropriate callbacks
-							jqXHR.always( map[ jqXHR.status ] );
-						}
-					}
-					return this;
-				},
-
-				// Cancel the request
-				abort: function( statusText ) {
-					var finalText = statusText || strAbort;
-					if ( transport ) {
-						transport.abort( finalText );
-					}
-					done( 0, finalText );
-					return this;
-				}
-			};
-
-		// Attach deferreds
-		deferred.promise( jqXHR ).complete = completeDeferred.add;
-		jqXHR.success = jqXHR.done;
-		jqXHR.error = jqXHR.fail;
-
-		// Remove hash character (#7531: and string promotion)
-		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
-		// Handle falsy url in the settings object (#10093: consistency with old signature)
-		// We also use the url parameter if available
-		s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
-		// Alias method option to type as per ticket #12004
-		s.type = options.method || options.type || s.method || s.type;
-
-		// Extract dataTypes list
-		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( core_rnotwhite ) || [""];
-
-		// A cross-domain request is in order when we have a protocol:host:port mismatch
-		if ( s.crossDomain == null ) {
-			parts = rurl.exec( s.url.toLowerCase() );
-			s.crossDomain = !!( parts &&
-				( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
-					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
-						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
-			);
-		}
-
-		// Convert data if not already a string
-		if ( s.data && s.processData && typeof s.data !== "string" ) {
-			s.data = jQuery.param( s.data, s.traditional );
-		}
-
-		// Apply prefilters
-		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
-		// If request was aborted inside a prefilter, stop there
-		if ( state === 2 ) {
-			return jqXHR;
-		}
-
-		// We can fire global events as of now if asked to
-		fireGlobals = s.global;
-
-		// Watch for a new set of requests
-		if ( fireGlobals && jQuery.active++ === 0 ) {
-			jQuery.event.trigger("ajaxStart");
-		}
-
-		// Uppercase the type
-		s.type = s.type.toUpperCase();
-
-		// Determine if request has content
-		s.hasContent = !rnoContent.test( s.type );
-
-		// Save the URL in case we're toying with the If-Modified-Since
-		// and/or If-None-Match header later on
-		cacheURL = s.url;
-
-		// More options handling for requests with no content
-		if ( !s.hasContent ) {
-
-			// If data is available, append data to url
-			if ( s.data ) {
-				cacheURL = ( s.url += ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
-				// #9682: remove data so that it's not used in an eventual retry
-				delete s.data;
-			}
-
-			// Add anti-cache in url if needed
-			if ( s.cache === false ) {
-				s.url = rts.test( cacheURL ) ?
-
-					// If there is already a '_' parameter, set its value
-					cacheURL.replace( rts, "$1_=" + ajax_nonce++ ) :
-
-					// Otherwise add one to the end
-					cacheURL + ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ajax_nonce++;
-			}
-		}
-
-		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-		if ( s.ifModified ) {
-			if ( jQuery.lastModified[ cacheURL ] ) {
-				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
-			}
-			if ( jQuery.etag[ cacheURL ] ) {
-				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
-			}
-		}
-
-		// Set the correct header, if data is being sent
-		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
-			jqXHR.setRequestHeader( "Content-Type", s.contentType );
-		}
-
-		// Set the Accepts header for the server, depending on the dataType
-		jqXHR.setRequestHeader(
-			"Accept",
-			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
-				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
-				s.accepts[ "*" ]
-		);
-
-		// Check for headers option
-		for ( i in s.headers ) {
-			jqXHR.setRequestHeader( i, s.headers[ i ] );
-		}
-
-		// Allow custom headers/mimetypes and early abort
-		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
-			// Abort if not done already and return
-			return jqXHR.abort();
-		}
-
-		// aborting is no longer a cancellation
-		strAbort = "abort";
-
-		// Install callbacks on deferreds
-		for ( i in { success: 1, error: 1, complete: 1 } ) {
-			jqXHR[ i ]( s[ i ] );
-		}
-
-		// Get transport
-		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
-		// If no transport, we auto-abort
-		if ( !transport ) {
-			done( -1, "No Transport" );
-		} else {
-			jqXHR.readyState = 1;
-
-			// Send global event
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
-			}
-			// Timeout
-			if ( s.async && s.timeout > 0 ) {
-				timeoutTimer = setTimeout(function() {
-					jqXHR.abort("timeout");
-				}, s.timeout );
-			}
-
-			try {
-				state = 1;
-				transport.send( requestHeaders, done );
-			} catch ( e ) {
-				// Propagate exception as error if not done
-				if ( state < 2 ) {
-					done( -1, e );
-				// Simply rethrow otherwise
-				} else {
-					throw e;
-				}
-			}
-		}
-
-		// Callback for when everything is done
-		function done( status, nativeStatusText, responses, headers ) {
-			var isSuccess, success, error, response, modified,
-				statusText = nativeStatusText;
-
-			// Called once
-			if ( state === 2 ) {
-				return;
-			}
-
-			// State is "done" now
-			state = 2;
-
-			// Clear timeout if it exists
-			if ( timeoutTimer ) {
-				clearTimeout( timeoutTimer );
-			}
-
-			// Dereference transport for early garbage collection
-			// (no matter how long the jqXHR object will be used)
-			transport = undefined;
-
-			// Cache response headers
-			responseHeadersString = headers || "";
-
-			// Set readyState
-			jqXHR.readyState = status > 0 ? 4 : 0;
-
-			// Determine if successful
-			isSuccess = status >= 200 && status < 300 || status === 304;
-
-			// Get response data
-			if ( responses ) {
-				response = ajaxHandleResponses( s, jqXHR, responses );
-			}
-
-			// Convert no matter what (that way responseXXX fields are always set)
-			response = ajaxConvert( s, response, jqXHR, isSuccess );
-
-			// If successful, handle type chaining
-			if ( isSuccess ) {
-
-				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-				if ( s.ifModified ) {
-					modified = jqXHR.getResponseHeader("Last-Modified");
-					if ( modified ) {
-						jQuery.lastModified[ cacheURL ] = modified;
-					}
-					modified = jqXHR.getResponseHeader("etag");
-					if ( modified ) {
-						jQuery.etag[ cacheURL ] = modified;
-					}
-				}
-
-				// if no content
-				if ( status === 204 || s.type === "HEAD" ) {
-					statusText = "nocontent";
-
-				// if not modified
-				} else if ( status === 304 ) {
-					statusText = "notmodified";
-
-				// If we have data, let's convert it
-				} else {
-					statusText = response.state;
-					success = response.data;
-					error = response.error;
-					isSuccess = !error;
-				}
-			} else {
-				// We extract error from statusText
-				// then normalize statusText and status for non-aborts
-				error = statusText;
-				if ( status || !statusText ) {
-					statusText = "error";
-					if ( status < 0 ) {
-						status = 0;
-					}
-				}
-			}
-
-			// Set data for the fake xhr object
-			jqXHR.status = status;
-			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
-
-			// Success/Error
-			if ( isSuccess ) {
-				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
-			} else {
-				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
-			}
-
-			// Status-dependent callbacks
-			jqXHR.statusCode( statusCode );
-			statusCode = undefined;
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
-					[ jqXHR, s, isSuccess ? success : error ] );
-			}
-
-			// Complete
-			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
-				// Handle the global AJAX counter
-				if ( !( --jQuery.active ) ) {
-					jQuery.event.trigger("ajaxStop");
-				}
-			}
-		}
-
-		return jqXHR;
-	},
-
-	getJSON: function( url, data, callback ) {
-		return jQuery.get( url, data, callback, "json" );
-	},
-
-	getScript: function( url, callback ) {
-		return jQuery.get( url, undefined, callback, "script" );
-	}
-});
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
-	jQuery[ method ] = function( url, data, callback, type ) {
-		// shift arguments if data argument was omitted
-		if ( jQuery.isFunction( data ) ) {
-			type = type || callback;
-			callback = data;
-			data = undefined;
-		}
-
-		return jQuery.ajax({
-			url: url,
-			type: method,
-			dataType: type,
-			data: data,
-			success: callback
-		});
-	};
-});
-
-/* Handles responses to an ajax request:
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
-	var firstDataType, ct, finalDataType, type,
-		contents = s.contents,
-		dataTypes = s.dataTypes;
-
-	// Remove auto dataType and get content-type in the process
-	while( dataTypes[ 0 ] === "*" ) {
-		dataTypes.shift();
-		if ( ct === undefined ) {
-			ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
-		}
-	}
-
-	// Check if we're dealing with a known content-type
-	if ( ct ) {
-		for ( type in contents ) {
-			if ( contents[ type ] && contents[ type ].test( ct ) ) {
-				dataTypes.unshift( type );
-				break;
-			}
-		}
-	}
-
-	// Check to see if we have a response for the expected dataType
-	if ( dataTypes[ 0 ] in responses ) {
-		finalDataType = dataTypes[ 0 ];
-	} else {
-		// Try convertible dataTypes
-		for ( type in responses ) {
-			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
-				finalDataType = type;
-				break;
-			}
-			if ( !firstDataType ) {
-				firstDataType = type;
-			}
-		}
-		// Or just use first one
-		finalDataType = finalDataType || firstDataType;
-	}
-
-	// If we found a dataType
-	// We add the dataType to the list if needed
-	// and return the corresponding response
-	if ( finalDataType ) {
-		if ( finalDataType !== dataTypes[ 0 ] ) {
-			dataTypes.unshift( finalDataType );
-		}
-		return responses[ finalDataType ];
-	}
-}
-
-/* Chain conversions given the request and the original response
- * Also sets the responseXXX fields on the jqXHR instance
- */
-function ajaxConvert( s, response, jqXHR, isSuccess ) {
-	var conv2, current, conv, tmp, prev,
-		converters = {},
-		// Work with a copy of dataTypes in case we need to modify it for conversion
-		dataTypes = s.dataTypes.slice();
-
-	// Create converters map with lowercased keys
-	if ( dataTypes[ 1 ] ) {
-		for ( conv in s.converters ) {
-			converters[ conv.toLowerCase() ] = s.converters[ conv ];
-		}
-	}
-
-	current = dataTypes.shift();
-
-	// Convert to each sequential dataType
-	while ( current ) {
-
-		if ( s.responseFields[ current ] ) {
-			jqXHR[ s.responseFields[ current ] ] = response;
-		}
-
-		// Apply the dataFilter if provided
-		if ( !prev && isSuccess && s.dataFilter ) {
-			response = s.dataFilter( response, s.dataType );
-		}
-
-		prev = current;
-		current = dataTypes.shift();
-
-		if ( current ) {
-
-			// There's only work to do if current dataType is non-auto
-			if ( current === "*" ) {
-
-				current = prev;
-
-			// Convert response if prev dataType is non-auto and differs from current
-			} else if ( prev !== "*" && prev !== current ) {
-
-				// Seek a direct converter
-				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
-
-				// If none found, seek a pair
-				if ( !conv ) {
-					for ( conv2 in converters ) {
-
-						// If conv2 outputs current
-						tmp = conv2.split( " " );
-						if ( tmp[ 1 ] === current ) {
-
-							// If prev can be converted to accepted input
-							conv = converters[ prev + " " + tmp[ 0 ] ] ||
-								converters[ "* " + tmp[ 0 ] ];
-							if ( conv ) {
-								// Condense equivalence converters
-								if ( conv === true ) {
-									conv = converters[ conv2 ];
-
-								// Otherwise, insert the intermediate dataType
-								} else if ( converters[ conv2 ] !== true ) {
-									current = tmp[ 0 ];
-									dataTypes.unshift( tmp[ 1 ] );
-								}
-								break;
-							}
-						}
-					}
-				}
-
-				// Apply converter (if not an equivalence)
-				if ( conv !== true ) {
-
-					// Unless errors are allowed to bubble, catch and return them
-					if ( conv && s[ "throws" ] ) {
-						response = conv( response );
-					} else {
-						try {
-							response = conv( response );
-						} catch ( e ) {
-							return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
-						}
-					}
-				}
-			}
-		}
-	}
-
-	return { state: "success", data: response };
-}
-// Install script dataType
-jQuery.ajaxSetup({
-	accepts: {
-		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
-	},
-	contents: {
-		script: /(?:java|ecma)script/
-	},
-	converters: {
-		"text script": function( text ) {
-			jQuery.globalEval( text );
-			return text;
-		}
-	}
-});
-
-// Handle cache's special case and global
-jQuery.ajaxPrefilter( "script", function( s ) {
-	if ( s.cache === undefined ) {
-		s.cache = false;
-	}
-	if ( s.crossDomain ) {
-		s.type = "GET";
-		s.global = false;
-	}
-});
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function(s) {
-
-	// This transport only deals with cross domain requests
-	if ( s.crossDomain ) {
-
-		var script,
-			head = document.head || jQuery("head")[0] || document.documentElement;
-
-		return {
-
-			send: function( _, callback ) {
-
-				script = document.createElement("script");
-
-				script.async = true;
-
-				if ( s.scriptCharset ) {
-					script.charset = s.scriptCharset;
-				}
-
-				script.src = s.url;
-
-				// Attach handlers for all browsers
-				script.onload = script.onreadystatechange = function( _, isAbort ) {
-
-					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
-						// Handle memory leak in IE
-						script.onload = script.onreadystatechange = null;
-
-						// Remove the script
-						if ( script.parentNode ) {
-							script.parentNode.removeChild( script );
-						}
-
-						// Dereference the script
-						script = null;
-
-						// Callback if not abort
-						if ( !isAbort ) {
-							callback( 200, "success" );
-						}
-					}
-				};
-
-				// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
-				// Use native DOM manipulation to avoid our domManip AJAX trickery
-				head.insertBefore( script, head.firstChild );
-			},
-
-			abort: function() {
-				if ( script ) {
-					script.onload( undefined, true );
-				}
-			}
-		};
-	}
-});
-var oldCallbacks = [],
-	rjsonp = /(=)\?(?=&|$)|\?\?/;
-
-// Default jsonp settings
-jQuery.ajaxSetup({
-	jsonp: "callback",
-	jsonpCallback: function() {
-		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( ajax_nonce++ ) );
-		this[ callback ] = true;
-		return callback;
-	}
-});
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
-	var callbackName, overwritten, responseContainer,
-		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
-			"url" :
-			typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
-		);
-
-	// Handle iff the expected data type is "jsonp" or we have a parameter to set
-	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
-
-		// Get callback name, remembering preexisting value associated with it
-		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
-			s.jsonpCallback() :
-			s.jsonpCallback;
-
-		// Insert callback into url or form data
-		if ( jsonProp ) {
-			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
-		} else if ( s.jsonp !== false ) {
-			s.url += ( ajax_rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
-		}
-
-		// Use data converter to retrieve json after script execution
-		s.converters["script json"] = function() {
-			if ( !responseContainer ) {
-				jQuery.error( callbackName + " was not called" );
-			}
-			return responseContainer[ 0 ];
-		};
-
-		// force json dataType
-		s.dataTypes[ 0 ] = "json";
-
-		// Install callback
-		overwritten = window[ callbackName ];
-		window[ callbackName ] = function() {
-			responseContainer = arguments;
-		};
-
-		// Clean-up function (fires after converters)
-		jqXHR.always(function() {
-			// Restore preexisting value
-			window[ callbackName ] = overwritten;
-
-			// Save back as free
-			if ( s[ callbackName ] ) {
-				// make sure that re-using the options doesn't screw things around
-				s.jsonpCallback = originalSettings.jsonpCallback;
-
-				// save the callback name for future use
-				oldCallbacks.push( callbackName );
-			}
-
-			// Call if it was a function and we have a response
-			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
-				overwritten( responseContainer[ 0 ] );
-			}
-
-			responseContainer = overwritten = undefined;
-		});
-
-		// Delegate to script
-		return "script";
-	}
-});
-var xhrCallbacks, xhrSupported,
-	xhrId = 0,
-	// #5280: Internet Explorer will keep connections alive if we don't abort on unload
-	xhrOnUnloadAbort = window.ActiveXObject && function() {
-		// Abort all pending requests
-		var key;
-		for ( key in xhrCallbacks ) {
-			xhrCallbacks[ key ]( undefined, true );
-		}
-	};
-
-// Functions to create xhrs
-function createStandardXHR() {
-	try {
-		return new window.XMLHttpRequest();
-	} catch( e ) {}
-}
-
-function createActiveXHR() {
-	try {
-		return new window.ActiveXObject("Microsoft.XMLHTTP");
-	} catch( e ) {}
-}
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject ?
-	/* Microsoft failed to properly
-	 * implement the XMLHttpRequest in IE7 (can't request local files),
-	 * so we use the ActiveXObject when it is available
-	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
-	 * we need a fallback.
-	 */
-	function() {
-		return !this.isLocal && createStandardXHR() || createActiveXHR();
-	} :
-	// For all other browsers, use the standard XMLHttpRequest object
-	createStandardXHR;
-
-// Determine support properties
-xhrSupported = jQuery.ajaxSettings.xhr();
-jQuery.support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
-xhrSupported = jQuery.support.ajax = !!xhrSupported;
-
-// Create transport if the browser can provide an xhr
-if ( xhrSupported ) {
-
-	jQuery.ajaxTransport(function( s ) {
-		// Cross domain only allowed if supported through XMLHttpRequest
-		if ( !s.crossDomain || jQuery.support.cors ) {
-
-			var callback;
-
-			return {
-				send: function( headers, complete ) {
-
-					// Get a new xhr
-					var handle, i,
-						xhr = s.xhr();
-
-					// Open the socket
-					// Passing null username, generates a login popup on Opera (#2865)
-					if ( s.username ) {
-						xhr.open( s.type, s.url, s.async, s.username, s.password );
-					} else {
-						xhr.open( s.type, s.url, s.async );
-					}
-
-					// Apply custom fields if provided
-					if ( s.xhrFields ) {
-						for ( i in s.xhrFields ) {
-							xhr[ i ] = s.xhrFields[ i ];
-						}
-					}
-
-					// Override mime type if needed
-					if ( s.mimeType && xhr.overrideMimeType ) {
-						xhr.overrideMimeType( s.mimeType );
-					}
-
-					// X-Requested-With header
-					// For cross-domain requests, seeing as conditions for a preflight are
-					// akin to a jigsaw puzzle, we simply never set it to be sure.
-					// (it can always be set on a per-request basis or even using ajaxSetup)
-					// For same-domain requests, won't change header if already provided.
-					if ( !s.crossDomain && !headers["X-Requested-With"] ) {
-						headers["X-Requested-With"] = "XMLHttpRequest";
-					}
-
-					// Need an extra try/catch for cross domain requests in Firefox 3
-					try {
-						for ( i in headers ) {
-							xhr.setRequestHeader( i, headers[ i ] );
-						}
-					} catch( err ) {}
-
-					// Do send the request
-					// This may raise an exception which is actually
-					// handled in jQuery.ajax (so no try/catch here)
-					xhr.send( ( s.hasContent && s.data ) || null );
-
-					// Listener
-					callback = function( _, isAbort ) {
-						var status, responseHeaders, statusText, responses;
-
-						// Firefox throws exceptions when accessing properties
-						// of an xhr when a network error occurred
-						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
-						try {
-
-							// Was never called and is aborted or complete
-							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
-								// Only called once
-								callback = undefined;
-
-								// Do not keep as active anymore
-								if ( handle ) {
-									xhr.onreadystatechange = jQuery.noop;
-									if ( xhrOnUnloadAbort ) {
-										delete xhrCallbacks[ handle ];
-									}
-								}
-
-								// If it's an abort
-								if ( isAbort ) {
-									// Abort it manually if needed
-									if ( xhr.readyState !== 4 ) {
-										xhr.abort();
-									}
-								} else {
-									responses = {};
-									status = xhr.status;
-									responseHeaders = xhr.getAllResponseHeaders();
-
-									// When requesting binary data, IE6-9 will throw an exception
-									// on any attempt to access responseText (#11426)
-									if ( typeof xhr.responseText === "string" ) {
-										responses.text = xhr.responseText;
-									}
-
-									// Firefox throws an exception when accessing
-									// statusText for faulty cross-domain requests
-									try {
-										statusText = xhr.statusText;
-									} catch( e ) {
-										// We normalize with Webkit giving an empty statusText
-										statusText = "";
-									}
-
-									// Filter status for non standard behaviors
-
-									// If the request is local and we have data: assume a success
-									// (success with no data won't get notified, that's the best we
-									// can do given current implementations)
-									if ( !status && s.isLocal && !s.crossDomain ) {
-										status = responses.text ? 200 : 404;
-									// IE - #1450: sometimes returns 1223 when it should be 204
-									} else if ( status === 1223 ) {
-										status = 204;
-									}
-								}
-							}
-						} catch( firefoxAccessException ) {
-							if ( !isAbort ) {
-								complete( -1, firefoxAccessException );
-							}
-						}
-
-						// Call complete if needed
-						if ( responses ) {
-							complete( status, statusText, responses, responseHeaders );
-						}
-					};
-
-					if ( !s.async ) {
-						// if we're in sync mode we fire the callback
-						callback();
-					} else if ( xhr.readyState === 4 ) {
-						// (IE6 & IE7) if it's in cache and has been
-						// retrieved directly we need to fire the callback
-						setTimeout( callback );
-					} else {
-						handle = ++xhrId;
-						if ( xhrOnUnloadAbort ) {
-							// Create the active xhrs callbacks list if needed
-							// and attach the unload handler
-							if ( !xhrCallbacks ) {
-								xhrCallbacks = {};
-								jQuery( window ).unload( xhrOnUnloadAbort );
-							}
-							// Add to list of active xhrs callbacks
-							xhrCallbacks[ handle ] = callback;
-						}
-						xhr.onreadystatechange = callback;
-					}
-				},
-
-				abort: function() {
-					if ( callback ) {
-						callback( undefined, true );
-					}
-				}
-			};
-		}
-	});
-}
-var fxNow, timerId,
-	rfxtypes = /^(?:toggle|show|hide)$/,
-	rfxnum = new RegExp( "^(?:([+-])=|)(" + core_pnum + ")([a-z%]*)$", "i" ),
-	rrun = /queueHooks$/,
-	animationPrefilters = [ defaultPrefilter ],
-	tweeners = {
-		"*": [function( prop, value ) {
-			var tween = this.createTween( prop, value ),
-				target = tween.cur(),
-				parts = rfxnum.exec( value ),
-				unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
-
-				// Starting value computation is required for potential unit mismatches
-				start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
-					rfxnum.exec( jQuery.css( tween.elem, prop ) ),
-				scale = 1,
-				maxIterations = 20;
-
-			if ( start && start[ 3 ] !== unit ) {
-				// Trust units reported by jQuery.css
-				unit = unit || start[ 3 ];
-
-				// Make sure we update the tween properties later on
-				parts = parts || [];
-
-				// Iteratively approximate from a nonzero starting point
-				start = +target || 1;
-
-				do {
-					// If previous iteration zeroed out, double until we get *something*
-					// Use a string for doubling factor so we don't accidentally see scale as unchanged below
-					scale = scale || ".5";
-
-					// Adjust and apply
-					start = start / scale;
-					jQuery.style( tween.elem, prop, start + unit );
-
-				// Update scale, tolerating zero or NaN from tween.cur()
-				// And breaking the loop if scale is unchanged or perfect, or if we've just had enough
-				} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
-			}
-
-			// Update tween properties
-			if ( parts ) {
-				start = tween.start = +start || +target || 0;
-				tween.unit = unit;
-				// If a +=/-= token was provided, we're doing a relative animation
-				tween.end = parts[ 1 ] ?
-					start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
-					+parts[ 2 ];
-			}
-
-			return tween;
-		}]
-	};
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
-	setTimeout(function() {
-		fxNow = undefined;
-	});
-	return ( fxNow = jQuery.now() );
-}
-
-function createTween( value, prop, animation ) {
-	var tween,
-		collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
-		index = 0,
-		length = collection.length;
-	for ( ; index < length; index++ ) {
-		if ( (tween = collection[ index ].call( animation, prop, value )) ) {
-
-			// we're done with this property
-			return tween;
-		}
-	}
-}
-
-function Animation( elem, properties, options ) {
-	var result,
-		stopped,
-		index = 0,
-		length = animationPrefilters.length,
-		deferred = jQuery.Deferred().always( function() {
-			// don't match elem in the :animated selector
-			delete tick.elem;
-		}),
-		tick = function() {
-			if ( stopped ) {
-				return false;
-			}
-			var currentTime = fxNow || createFxNow(),
-				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
-				// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
-				temp = remaining / animation.duration || 0,
-				percent = 1 - temp,
-				index = 0,
-				length = animation.tweens.length;
-
-			for ( ; index < length ; index++ ) {
-				animation.tweens[ index ].run( percent );
-			}
-
-			deferred.notifyWith( elem, [ animation, percent, remaining ]);
-
-			if ( percent < 1 && length ) {
-				return remaining;
-			} else {
-				deferred.resolveWith( elem, [ animation ] );
-				return false;
-			}
-		},
-		animation = deferred.promise({
-			elem: elem,
-			props: jQuery.extend( {}, properties ),
-			opts: jQuery.extend( true, { specialEasing: {} }, options ),
-			originalProperties: properties,
-			originalOptions: options,
-			startTime: fxNow || createFxNow(),
-			duration: options.duration,
-			tweens: [],
-			createTween: function( prop, end ) {
-				var tween = jQuery.Tween( elem, animation.opts, prop, end,
-						animation.opts.specialEasing[ prop ] || animation.opts.easing );
-				animation.tweens.push( tween );
-				return tween;
-			},
-			stop: function( gotoEnd ) {
-				var index = 0,
-					// if we are going to the end, we want to run all the tweens
-					// otherwise we skip this part
-					length = gotoEnd ? animation.tweens.length : 0;
-				if ( stopped ) {
-					return this;
-				}
-				stopped = true;
-				for ( ; index < length ; index++ ) {
-					animation.tweens[ index ].run( 1 );
-				}
-
-				// resolve when we played the last frame
-				// otherwise, reject
-				if ( gotoEnd ) {
-					deferred.resolveWith( elem, [ animation, gotoEnd ] );
-				} else {
-					deferred.rejectWith( elem, [ animation, gotoEnd ] );
-				}
-				return this;
-			}
-		}),
-		props = animation.props;
-
-	propFilter( props, animation.opts.specialEasing );
-
-	for ( ; index < length ; index++ ) {
-		result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
-		if ( result ) {
-			return result;
-		}
-	}
-
-	jQuery.map( props, createTween, animation );
-
-	if ( jQuery.isFunction( animation.opts.start ) ) {
-		animation.opts.start.call( elem, animation );
-	}
-
-	jQuery.fx.timer(
-		jQuery.extend( tick, {
-			elem: elem,
-			anim: animation,
-			queue: animation.opts.queue
-		})
-	);
-
-	// attach callbacks from options
-	return animation.progress( animation.opts.progress )
-		.done( animation.opts.done, animation.opts.complete )
-		.fail( animation.opts.fail )
-		.always( animation.opts.always );
-}
-
-function propFilter( props, specialEasing ) {
-	var index, name, easing, value, hooks;
-
-	// camelCase, specialEasing and expand cssHook pass
-	for ( index in props ) {
-		name = jQuery.camelCase( index );
-		easing = specialEasing[ name ];
-		value = props[ index ];
-		if ( jQuery.isArray( value ) ) {
-			easing = value[ 1 ];
-			value = props[ index ] = value[ 0 ];
-		}
-
-		if ( index !== name ) {
-			props[ name ] = value;
-			delete props[ index ];
-		}
-
-		hooks = jQuery.cssHooks[ name ];
-		if ( hooks && "expand" in hooks ) {
-			value = hooks.expand( value );
-			delete props[ name ];
-
-			// not quite $.extend, this wont overwrite keys already present.
-			// also - reusing 'index' from above because we have the correct "name"
-			for ( index in value ) {
-				if ( !( index in props ) ) {
-					props[ index ] = value[ index ];
-					specialEasing[ index ] = easing;
-				}
-			}
-		} else {
-			specialEasing[ name ] = easing;
-		}
-	}
-}
-
-jQuery.Animation = jQuery.extend( Animation, {
-
-	tweener: function( props, callback ) {
-		if ( jQuery.isFunction( props ) ) {
-			callback = props;
-			props = [ "*" ];
-		} else {
-			props = props.split(" ");
-		}
-
-		var prop,
-			index = 0,
-			length = props.length;
-
-		for ( ; index < length ; index++ ) {
-			prop = props[ index ];
-			tweeners[ prop ] = tweeners[ prop ] || [];
-			tweeners[ prop ].unshift( callback );
-		}
-	},
-
-	prefilter: function( callback, prepend ) {
-		if ( prepend ) {
-			animationPrefilters.unshift( callback );
-		} else {
-			animationPrefilters.push( callback );
-		}
-	}
-});
-
-function defaultPrefilter( elem, props, opts ) {
-	/* jshint validthis: true */
-	var prop, value, toggle, tween, hooks, oldfire,
-		anim = this,
-		orig = {},
-		style = elem.style,
-		hidden = elem.nodeType && isHidden( elem ),
-		dataShow = jQuery._data( elem, "fxshow" );
-
-	// handle queue: false promises
-	if ( !opts.queue ) {
-		hooks = jQuery._queueHooks( elem, "fx" );
-		if ( hooks.unqueued == null ) {
-			hooks.unqueued = 0;
-			oldfire = hooks.empty.fire;
-			hooks.empty.fire = function() {
-				if ( !hooks.unqueued ) {
-					oldfire();
-				}
-			};
-		}
-		hooks.unqueued++;
-
-		anim.always(function() {
-			// doing this makes sure that the complete handler will be called
-			// before this completes
-			anim.always(function() {
-				hooks.unqueued--;
-				if ( !jQuery.queue( elem, "fx" ).length ) {
-					hooks.empty.fire();
-				}
-			});
-		});
-	}
-
-	// height/width overflow pass
-	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
-		// Make sure that nothing sneaks out
-		// Record all 3 overflow attributes because IE does not
-		// change the overflow attribute when overflowX and
-		// overflowY are set to the same value
-		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
-
-		// Set display property to inline-block for height/width
-		// animations on inline elements that are having width/height animated
-		if ( jQuery.css( elem, "display" ) === "inline" &&
-				jQuery.css( elem, "float" ) === "none" ) {
-
-			// inline-level elements accept inline-block;
-			// block-level elements need to be inline with layout
-			if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
-				style.display = "inline-block";
-
-			} else {
-				style.zoom = 1;
-			}
-		}
-	}
-
-	if ( opts.overflow ) {
-		style.overflow = "hidden";
-		if ( !jQuery.support.shrinkWrapBlocks ) {
-			anim.always(function() {
-				style.overflow = opts.overflow[ 0 ];
-				style.overflowX = opts.overflow[ 1 ];
-				style.overflowY = opts.overflow[ 2 ];
-			});
-		}
-	}
-
-
-	// show/hide pass
-	for ( prop in props ) {
-		value = props[ prop ];
-		if ( rfxtypes.exec( value ) ) {
-			delete props[ prop ];
-			toggle = toggle || value === "toggle";
-			if ( value === ( hidden ? "hide" : "show" ) ) {
-				continue;
-			}
-			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
-		}
-	}
-
-	if ( !jQuery.isEmptyObject( orig ) ) {
-		if ( dataShow ) {
-			if ( "hidden" in dataShow ) {
-				hidden = dataShow.hidden;
-			}
-		} else {
-			dataShow = jQuery._data( elem, "fxshow", {} );
-		}
-
-		// store state if its toggle - enables .stop().toggle() to "reverse"
-		if ( toggle ) {
-			dataShow.hidden = !hidden;
-		}
-		if ( hidden ) {
-			jQuery( elem ).show();
-		} else {
-			anim.done(function() {
-				jQuery( elem ).hide();
-			});
-		}
-		anim.done(function() {
-			var prop;
-			jQuery._removeData( elem, "fxshow" );
-			for ( prop in orig ) {
-				jQuery.style( elem, prop, orig[ prop ] );
-			}
-		});
-		for ( prop in orig ) {
-			tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
-
-			if ( !( prop in dataShow ) ) {
-				dataShow[ prop ] = tween.start;
-				if ( hidden ) {
-					tween.end = tween.start;
-					tween.start = prop === "width" || prop === "height" ? 1 : 0;
-				}
-			}
-		}
-	}
-}
-
-function Tween( elem, options, prop, end, easing ) {
-	return new Tween.prototype.init( elem, options, prop, end, easing );
-}
-jQuery.Tween = Tween;
-
-Tween.prototype = {
-	constructor: Tween,
-	init: function( elem, options, prop, end, easing, unit ) {
-		this.elem = elem;
-		this.prop = prop;
-		this.easing = easing || "swing";
-		this.options = options;
-		this.start = this.now = this.cur();
-		this.end = end;
-		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
-	},
-	cur: function() {
-		var hooks = Tween.propHooks[ this.prop ];
-
-		return hooks && hooks.get ?
-			hooks.get( this ) :
-			Tween.propHooks._default.get( this );
-	},
-	run: function( percent ) {
-		var eased,
-			hooks = Tween.propHooks[ this.prop ];
-
-		if ( this.options.duration ) {
-			this.pos = eased = jQuery.easing[ this.easing ](
-				percent, this.options.duration * percent, 0, 1, this.options.duration
-			);
-		} else {
-			this.pos = eased = percent;
-		}
-		this.now = ( this.end - this.start ) * eased + this.start;
-
-		if ( this.options.step ) {
-			this.options.step.call( this.elem, this.now, this );
-		}
-
-		if ( hooks && hooks.set ) {
-			hooks.set( this );
-		} else {
-			Tween.propHooks._default.set( this );
-		}
-		return this;
-	}
-};
-
-Tween.prototype.init.prototype = Tween.prototype;
-
-Tween.propHooks = {
-	_default: {
-		get: function( tween ) {
-			var result;
-
-			if ( tween.elem[ tween.prop ] != null &&
-				(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
-				return tween.elem[ tween.prop ];
-			}
-
-			// passing an empty string as a 3rd parameter to .css will automatically
-			// attempt a parseFloat and fallback to a string if the parse fails
-			// so, simple values such as "10px" are parsed to Float.
-			// complex values such as "rotate(1rad)" are returned as is.
-			result = jQuery.css( tween.elem, tween.prop, "" );
-			// Empty strings, null, undefined and "auto" are converted to 0.
-			return !result || result === "auto" ? 0 : result;
-		},
-		set: function( tween ) {
-			// use step hook for back compat - use cssHook if its there - use .style if its
-			// available and use plain properties where available
-			if ( jQuery.fx.step[ tween.prop ] ) {
-				jQuery.fx.step[ tween.prop ]( tween );
-			} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
-				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
-			} else {
-				tween.elem[ tween.prop ] = tween.now;
-			}
-		}
-	}
-};
-
-// Support: IE <=9
-// Panic based approach to setting things on disconnected nodes
-
-Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
-	set: function( tween ) {
-		if ( tween.elem.nodeType && tween.elem.parentNode ) {
-			tween.elem[ tween.prop ] = tween.now;
-		}
-	}
-};
-
-jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
-	var cssFn = jQuery.fn[ name ];
-	jQuery.fn[ name ] = function( speed, easing, callback ) {
-		return speed == null || typeof speed === "boolean" ?
-			cssFn.apply( this, arguments ) :
-			this.animate( genFx( name, true ), speed, easing, callback );
-	};
-});
-
-jQuery.fn.extend({
-	fadeTo: function( speed, to, easing, callback ) {
-
-		// show any hidden elements after setting opacity to 0
-		return this.filter( isHidden ).css( "opacity", 0 ).show()
-
-			// animate to the value specified
-			.end().animate({ opacity: to }, speed, easing, callback );
-	},
-	animate: function( prop, speed, easing, callback ) {
-		var empty = jQuery.isEmptyObject( prop ),
-			optall = jQuery.speed( speed, easing, callback ),
-			doAnimation = function() {
-				// Operate on a copy of prop so per-property easing won't be lost
-				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
-
-				// Empty animations, or finishing resolves immediately
-				if ( empty || jQuery._data( this, "finish" ) ) {
-					anim.stop( true );
-				}
-			};
-			doAnimation.finish = doAnimation;
-
-		return empty || optall.queue === false ?
-			this.each( doAnimation ) :
-			this.queue( optall.queue, doAnimation );
-	},
-	stop: function( type, clearQueue, gotoEnd ) {
-		var stopQueue = function( hooks ) {
-			var stop = hooks.stop;
-			delete hooks.stop;
-			stop( gotoEnd );
-		};
-
-		if ( typeof type !== "string" ) {
-			gotoEnd = clearQueue;
-			clearQueue = type;
-			type = undefined;
-		}
-		if ( clearQueue && type !== false ) {
-			this.queue( type || "fx", [] );
-		}
-
-		return this.each(function() {
-			var dequeue = true,
-				index = type != null && type + "queueHooks",
-				timers = jQuery.timers,
-				data = jQuery._data( this );
-
-			if ( index ) {
-				if ( data[ index ] && data[ index ].stop ) {
-					stopQueue( data[ index ] );
-				}
-			} else {
-				for ( index in data ) {
-					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
-						stopQueue( data[ index ] );
-					}
-				}
-			}
-
-			for ( index = timers.length; index--; ) {
-				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
-					timers[ index ].anim.stop( gotoEnd );
-					dequeue = false;
-					timers.splice( index, 1 );
-				}
-			}
-
-			// start the next in the queue if the last step wasn't forced
-			// timers currently will call their complete callbacks, which will dequeue
-			// but only if they were gotoEnd
-			if ( dequeue || !gotoEnd ) {
-				jQuery.dequeue( this, type );
-			}
-		});
-	},
-	finish: function( type ) {
-		if ( type !== false ) {
-			type = type || "fx";
-		}
-		return this.each(function() {
-			var index,
-				data = jQuery._data( this ),
-				queue = data[ type + "queue" ],
-				hooks = data[ type + "queueHooks" ],
-				timers = jQuery.timers,
-				length = queue ? queue.length : 0;
-
-			// enable finishing flag on private data
-			data.finish = true;
-
-			// empty the queue first
-			jQuery.queue( this, type, [] );
-
-			if ( hooks && hooks.stop ) {
-				hooks.stop.call( this, true );
-			}
-
-			// look for any active animations, and finish them
-			for ( index = timers.length; index--; ) {
-				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
-					timers[ index ].anim.stop( true );
-					timers.splice( index, 1 );
-				}
-			}
-
-			// look for any animations in the old queue and finish them
-			for ( index = 0; index < length; index++ ) {
-				if ( queue[ index ] && queue[ index ].finish ) {
-					queue[ index ].finish.call( this );
-				}
-			}
-
-			// turn off finishing flag
-			delete data.finish;
-		});
-	}
-});
-
-// Generate parameters to create a standard animation
-function genFx( type, includeWidth ) {
-	var which,
-		attrs = { height: type },
-		i = 0;
-
-	// if we include width, step value is 1 to do all cssExpand values,
-	// if we don't include width, step value is 2 to skip over Left and Right
-	includeWidth = includeWidth? 1 : 0;
-	for( ; i < 4 ; i += 2 - includeWidth ) {
-		which = cssExpand[ i ];
-		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
-	}
-
-	if ( includeWidth ) {
-		attrs.opacity = attrs.width = type;
-	}
-
-	return attrs;
-}
-
-// Generate shortcuts for custom animations
-jQuery.each({
-	slideDown: genFx("show"),
-	slideUp: genFx("hide"),
-	slideToggle: genFx("toggle"),
-	fadeIn: { opacity: "show" },
-	fadeOut: { opacity: "hide" },
-	fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
-	jQuery.fn[ name ] = function( speed, easing, callback ) {
-		return this.animate( props, speed, easing, callback );
-	};
-});
-
-jQuery.speed = function( speed, easing, fn ) {
-	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
-		complete: fn || !fn && easing ||
-			jQuery.isFunction( speed ) && speed,
-		duration: speed,
-		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
-	};
-
-	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
-		opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
-
-	// normalize opt.queue - true/undefined/null -> "fx"
-	if ( opt.queue == null || opt.queue === true ) {
-		opt.queue = "fx";
-	}
-
-	// Queueing
-	opt.old = opt.complete;
-
-	opt.complete = function() {
-		if ( jQuery.isFunction( opt.old ) ) {
-			opt.old.call( this );
-		}
-
-		if ( opt.queue ) {
-			jQuery.dequeue( this, opt.queue );
-		}
-	};
-
-	return opt;
-};
-
-jQuery.easing = {
-	linear: function( p ) {
-		return p;
-	},
-	swing: function( p ) {
-		return 0.5 - Math.cos( p*Math.PI ) / 2;
-	}
-};
-
-jQuery.timers = [];
-jQuery.fx = Tween.prototype.init;
-jQuery.fx.tick = function() {
-	var timer,
-		timers = jQuery.timers,
-		i = 0;
-
-	fxNow = jQuery.now();
-
-	for ( ; i < timers.length; i++ ) {
-		timer = timers[ i ];
-		// Checks the timer has not already been removed
-		if ( !timer() && timers[ i ] === timer ) {
-			timers.splice( i--, 1 );
-		}
-	}
-
-	if ( !timers.length ) {
-		jQuery.fx.stop();
-	}
-	fxNow = undefined;
-};
-
-jQuery.fx.timer = function( timer ) {
-	if ( timer() && jQuery.timers.push( timer ) ) {
-		jQuery.fx.start();
-	}
-};
-
-jQuery.fx.interval = 13;
-
-jQuery.fx.start = function() {
-	if ( !timerId ) {
-		timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
-	}
-};
-
-jQuery.fx.stop = function() {
-	clearInterval( timerId );
-	timerId = null;
-};
-
-jQuery.fx.speeds = {
-	slow: 600,
-	fast: 200,
-	// Default speed
-	_default: 400
-};
-
-// Back Compat <1.8 extension point
-jQuery.fx.step = {};
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.animated = function( elem ) {
-		return jQuery.grep(jQuery.timers, function( fn ) {
-			return elem === fn.elem;
-		}).length;
-	};
-}
-jQuery.fn.offset = function( options ) {
-	if ( arguments.length ) {
-		return options === undefined ?
-			this :
-			this.each(function( i ) {
-				jQuery.offset.setOffset( this, options, i );
-			});
-	}
-
-	var docElem, win,
-		box = { top: 0, left: 0 },
-		elem = this[ 0 ],
-		doc = elem && elem.ownerDocument;
-
-	if ( !doc ) {
-		return;
-	}
-
-	docElem = doc.documentElement;
-
-	// Make sure it's not a disconnected DOM node
-	if ( !jQuery.contains( docElem, elem ) ) {
-		return box;
-	}
-
-	// If we don't have gBCR, just use 0,0 rather than error
-	// BlackBerry 5, iOS 3 (original iPhone)
-	if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
-		box = elem.getBoundingClientRect();
-	}
-	win = getWindow( doc );
-	return {
-		top: box.top  + ( win.pageYOffset || docElem.scrollTop )  - ( docElem.clientTop  || 0 ),
-		left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
-	};
-};
-
-jQuery.offset = {
-
-	setOffset: function( elem, options, i ) {
-		var position = jQuery.css( elem, "position" );
-
-		// set position first, in-case top/left are set even on static elem
-		if ( position === "static" ) {
-			elem.style.position = "relative";
-		}
-
-		var curElem = jQuery( elem ),
-			curOffset = curElem.offset(),
-			curCSSTop = jQuery.css( elem, "top" ),
-			curCSSLeft = jQuery.css( elem, "left" ),
-			calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
-			props = {}, curPosition = {}, curTop, curLeft;
-
-		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
-		if ( calculatePosition ) {
-			curPosition = curElem.position();
-			curTop = curPosition.top;
-			curLeft = curPosition.left;
-		} else {
-			curTop = parseFloat( curCSSTop ) || 0;
-			curLeft = parseFloat( curCSSLeft ) || 0;
-		}
-
-		if ( jQuery.isFunction( options ) ) {
-			options = options.call( elem, i, curOffset );
-		}
-
-		if ( options.top != null ) {
-			props.top = ( options.top - curOffset.top ) + curTop;
-		}
-		if ( options.left != null ) {
-			props.left = ( options.left - curOffset.left ) + curLeft;
-		}
-
-		if ( "using" in options ) {
-			options.using.call( elem, props );
-		} else {
-			curElem.css( props );
-		}
-	}
-};
-
-
-jQuery.fn.extend({
-
-	position: function() {
-		if ( !this[ 0 ] ) {
-			return;
-		}
-
-		var offsetParent, offset,
-			parentOffset = { top: 0, left: 0 },
-			elem = this[ 0 ];
-
-		// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
-		if ( jQuery.css( elem, "position" ) === "fixed" ) {
-			// we assume that getBoundingClientRect is available when computed position is fixed
-			offset = elem.getBoundingClientRect();
-		} else {
-			// Get *real* offsetParent
-			offsetParent = this.offsetParent();
-
-			// Get correct offsets
-			offset = this.offset();
-			if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
-				parentOffset = offsetParent.offset();
-			}
-
-			// Add offsetParent borders
-			parentOffset.top  += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
-			parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
-		}
-
-		// Subtract parent offsets and element margins
-		// note: when an element has margin: auto the offsetLeft and marginLeft
-		// are the same in Safari causing offset.left to incorrectly be 0
-		return {
-			top:  offset.top  - parentOffset.top - jQuery.css( elem, "marginTop", true ),
-			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
-		};
-	},
-
-	offsetParent: function() {
-		return this.map(function() {
-			var offsetParent = this.offsetParent || docElem;
-			while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
-				offsetParent = offsetParent.offsetParent;
-			}
-			return offsetParent || docElem;
-		});
-	}
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
-	var top = /Y/.test( prop );
-
-	jQuery.fn[ method ] = function( val ) {
-		return jQuery.access( this, function( elem, method, val ) {
-			var win = getWindow( elem );
-
-			if ( val === undefined ) {
-				return win ? (prop in win) ? win[ prop ] :
-					win.document.documentElement[ method ] :
-					elem[ method ];
-			}
-
-			if ( win ) {
-				win.scrollTo(
-					!top ? val : jQuery( win ).scrollLeft(),
-					top ? val : jQuery( win ).scrollTop()
-				);
-
-			} else {
-				elem[ method ] = val;
-			}
-		}, method, val, arguments.length, null );
-	};
-});
-
-function getWindow( elem ) {
-	return jQuery.isWindow( elem ) ?
-		elem :
-		elem.nodeType === 9 ?
-			elem.defaultView || elem.parentWindow :
-			false;
-}
-// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
-jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
-	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
-		// margin is only for outerHeight, outerWidth
-		jQuery.fn[ funcName ] = function( margin, value ) {
-			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
-				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
-
-			return jQuery.access( this, function( elem, type, value ) {
-				var doc;
-
-				if ( jQuery.isWindow( elem ) ) {
-					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
-					// isn't a whole lot we can do. See pull request at this URL for discussion:
-					// https://github.com/jquery/jquery/pull/764
-					return elem.document.documentElement[ "client" + name ];
-				}
-
-				// Get document width or height
-				if ( elem.nodeType === 9 ) {
-					doc = elem.documentElement;
-
-					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
-					// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
-					return Math.max(
-						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
-						elem.body[ "offset" + name ], doc[ "offset" + name ],
-						doc[ "client" + name ]
-					);
-				}
-
-				return value === undefined ?
-					// Get width or height on the element, requesting but not forcing parseFloat
-					jQuery.css( elem, type, extra ) :
-
-					// Set width or height on the element
-					jQuery.style( elem, type, value, extra );
-			}, type, chainable ? margin : undefined, chainable, null );
-		};
-	});
-});
-// Limit scope pollution from any deprecated API
-// (function() {
-
-// The number of elements contained in the matched element set
-jQuery.fn.size = function() {
-	return this.length;
-};
-
-jQuery.fn.andSelf = jQuery.fn.addBack;
-
-// })();
-if ( typeof module === "object" && module && typeof module.exports === "object" ) {
-	// Expose jQuery as module.exports in loaders that implement the Node
-	// module pattern (including browserify). Do not create the global, since
-	// the user will be storing it themselves locally, and globals are frowned
-	// upon in the Node module world.
-	module.exports = jQuery;
-} else {
-	// Otherwise expose jQuery to the global object as usual
-	window.jQuery = window.$ = jQuery;
-
-	// Register as a named AMD module, since jQuery can be concatenated with other
-	// files that may use define, but not via a proper concatenation script that
-	// understands anonymous AMD modules. A named AMD is safest and most robust
-	// way to register. Lowercase jquery is used because AMD module names are
-	// derived from file names, and jQuery is normally delivered in a lowercase
-	// file name. Do this after creating the global so that if an AMD module wants
-	// to call noConflict to hide this version of jQuery, it will work.
-	if ( typeof define === "function" && define.amd ) {
-		define( "jquery", [], function () { return jQuery; } );
-	}
-}
-
-})( window );
diff --git a/server/public/ueditor/third-party/jquery-1.10.2.min.js b/server/public/ueditor/third-party/jquery-1.10.2.min.js
deleted file mode 100644
index f4c12ca..0000000
--- a/server/public/ueditor/third-party/jquery-1.10.2.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
-//@ sourceMappingURL=jquery-1.10.2.min.map
-*/
-(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
-}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
-u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
diff --git a/server/public/ueditor/third-party/jquery-1.10.2.min.map b/server/public/ueditor/third-party/jquery-1.10.2.min.map
deleted file mode 100644
index 4dc4920..0000000
--- a/server/public/ueditor/third-party/jquery-1.10.2.min.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"jquery-1.10.2.min.js","sources":["jquery-1.10.2.js"],"names":["window","undefined","readyList","rootjQuery","core_strundefined","location","document","docElem","documentElement","_jQuery","jQuery","_$","$","class2type","core_deletedIds","core_version","core_concat","concat","core_push","push","core_slice","slice","core_indexOf","indexOf","core_toString","toString","core_hasOwn","hasOwnProperty","core_trim","trim","selector","context","fn","init","core_pnum","source","core_rnotwhite","rtrim","rquickExpr","rsingleTag","rvalidchars","rvalidbraces","rvalidescape","rvalidtokens","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","completed","event","addEventListener","type","readyState","detach","ready","removeEventListener","detachEvent","prototype","jquery","constructor","match","elem","this","charAt","length","exec","find","merge","parseHTML","nodeType","ownerDocument","test","isPlainObject","isFunction","attr","getElementById","parentNode","id","makeArray","toArray","call","get","num","pushStack","elems","ret","prevObject","each","callback","args","promise","done","apply","arguments","first","eq","last","i","len","j","map","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isArray","expando","Math","random","replace","noConflict","isReady","readyWait","holdReady","hold","wait","body","setTimeout","resolveWith","trigger","off","obj","Array","isWindow","isNumeric","isNaN","parseFloat","isFinite","String","key","e","support","ownLast","isEmptyObject","error","msg","Error","data","keepScripts","parsed","scripts","createElement","buildFragment","remove","childNodes","parseJSON","JSON","parse","Function","parseXML","xml","tmp","DOMParser","parseFromString","ActiveXObject","async","loadXML","getElementsByTagName","noop","globalEval","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","arr","results","Object","inArray","max","second","l","grep","inv","retVal","arg","guid","proxy","access","chainable","emptyGet","raw","bulk","now","Date","getTime","swap","old","style","Deferred","attachEvent","top","frameElement","doScroll","doScrollCheck","split","cachedruns","Expr","getText","isXML","compile","outermostContext","sortInput","setDocument","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","hasDuplicate","sortOrder","a","b","strundefined","MAX_NEGATIVE","hasOwn","pop","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rcomma","rcombinators","rsibling","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rnative","rinputs","rheader","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","fromCharCode","els","Sizzle","seed","m","groups","nid","newContext","newSelector","getElementsByClassName","qsa","tokenize","getAttribute","setAttribute","toSelector","join","querySelectorAll","qsaError","removeAttribute","select","keys","cache","cacheLength","shift","markFunction","assert","div","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","node","doc","parent","defaultView","className","appendChild","createComment","innerHTML","firstChild","getById","getElementsByName","filter","attrId","getAttributeNode","tag","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","dirkey","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","matcherCachedRuns","bySet","byElement","superMatcher","expandContext","setMatched","matchedCount","outermost","contextBackup","dirrunsUnique","group","contexts","token","div1","defaultValue","unique","isXMLDoc","optionsCache","createOptions","object","flag","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","list","stack","once","fire","stopOnFalse","self","disable","add","index","lock","locked","fireWith","func","tuples","state","always","deferred","fail","then","fns","newDefer","tuple","action","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","progressContexts","resolveContexts","fragment","opt","eventName","isSupported","cssText","getSetAttribute","leadingWhitespace","tbody","htmlSerialize","hrefNormalized","opacity","cssFloat","checkOn","optSelected","enctype","html5Clone","cloneNode","outerHTML","inlineBlockNeedsLayout","shrinkWrapBlocks","pixelPosition","deleteExpando","noCloneEvent","reliableMarginRight","boxSizingReliable","noCloneChecked","optDisabled","radioValue","createDocumentFragment","appendChecked","checkClone","click","change","focusin","backgroundClip","clearCloneStyle","container","marginDiv","tds","divReset","offsetHeight","display","reliableHiddenOffsets","zoom","boxSizing","offsetWidth","getComputedStyle","width","marginRight","rbrace","rmultiDash","internalData","pvt","acceptData","thisCache","internalKey","isNode","toJSON","internalRemoveData","isEmptyDataObject","cleanData","noData","applet","embed","hasData","removeData","_data","_removeData","dataAttr","queue","dequeue","startLength","hooks","_queueHooks","next","stop","setter","delay","time","fx","speeds","timeout","clearTimeout","clearQueue","count","defer","nodeHook","boolHook","rclass","rreturn","rfocusable","rclickable","ruseDefault","getSetInput","removeAttr","prop","removeProp","propFix","addClass","classes","clazz","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","valHooks","set","option","one","optionSet","nType","attrHooks","propName","attrNames","for","class","notxml","propHooks","tabindex","parseInt","getter","setAttributeNode","createAttribute","coords","contenteditable","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","global","types","events","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","orig","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","origFn","triggerHandler","isSimple","rparentsprev","rneedsContext","guaranteedUnique","children","contents","prev","targets","winnow","is","closest","pos","prevAll","addBack","sibling","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","n","r","qualifier","createSafeFragment","nodeNames","safeFrag","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","manipulation_rcheckableType","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","append","createTextNode","domManip","manipulationTarget","prepend","insertBefore","before","after","keepData","getAll","setGlobalEval","dataAndEvents","deepDataAndEvents","html","replaceWith","allowIntersection","hasScripts","iNoClone","disableScript","restoreScript","_evalUrl","content","refElements","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultChecked","defaultSelected","appendTo","prependTo","insertAfter","replaceAll","insert","found","fixDefaultChecked","destElements","srcElements","inPage","selection","wrap","safe","nodes","url","ajax","dataType","throws","wrapAll","wrapInner","unwrap","iframe","getStyles","curCSS","ralpha","ropacity","rposition","rdisplayswap","rmargin","rnumsplit","rnumnonpx","rrelNum","elemdisplay","BODY","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssExpand","cssPrefixes","vendorPropName","capName","origName","isHidden","el","css","showHide","show","hidden","css_defaultDisplay","styles","hide","toggle","cssHooks","computed","cssNumber","columnCount","fillOpacity","lineHeight","order","orphans","widows","zIndex","cssProps","float","extra","_computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","setPositiveNumber","subtract","augmentWidthOrHeight","isBorderBox","getWidthOrHeight","valueIsBorderBox","actualDisplay","write","close","$1","visible","margin","padding","border","prefix","suffix","expand","expanded","parts","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","serialize","serializeArray","traditional","s","encodeURIComponent","ajaxSettings","buildParams","v","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","ajaxLocParts","ajaxLocation","ajax_nonce","ajax_rquery","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","_load","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","params","response","responseText","complete","status","active","lastModified","etag","isLocal","processData","contentType","accepts","*","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","code","abort","statusText","finalText","success","method","crossDomain","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","modified","ajaxHandleResponses","ajaxConvert","rejectWith","getJSON","getScript","firstDataType","ct","finalDataType","conv2","current","conv","dataFilter","script","text script","head","scriptCharset","charset","onload","onreadystatechange","isAbort","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","xhrCallbacks","xhrSupported","xhrId","xhrOnUnloadAbort","createStandardXHR","XMLHttpRequest","createActiveXHR","xhr","cors","username","open","xhrFields","firefoxAccessException","unload","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","tween","createTween","unit","scale","maxIterations","createFxNow","animation","collection","Animation","properties","stopped","tick","currentTime","startTime","duration","percent","tweens","run","opts","specialEasing","originalProperties","Tween","easing","gotoEnd","propFilter","timer","anim","tweener","prefilter","oldfire","dataShow","unqueued","overflow","overflowX","overflowY","eased","step","cssFn","speed","animate","genFx","fadeTo","to","optall","doAnimation","finish","stopQueue","timers","includeWidth","height","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","linear","p","swing","cos","PI","interval","setInterval","clearInterval","slow","fast","animated","offset","setOffset","win","box","getBoundingClientRect","getWindow","pageYOffset","pageXOffset","curElem","curOffset","curCSSTop","curCSSLeft","calculatePosition","curPosition","curTop","curLeft","using","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","module","exports","define","amd"],"mappings":"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"}
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/snapscreen/UEditorSnapscreen.exe b/server/public/ueditor/third-party/snapscreen/UEditorSnapscreen.exe
deleted file mode 100644
index db68508..0000000
--- a/server/public/ueditor/third-party/snapscreen/UEditorSnapscreen.exe
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/third-party/video-js/font/vjs.eot b/server/public/ueditor/third-party/video-js/font/vjs.eot
deleted file mode 100644
index a075c19..0000000
--- a/server/public/ueditor/third-party/video-js/font/vjs.eot
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/third-party/video-js/font/vjs.svg b/server/public/ueditor/third-party/video-js/font/vjs.svg
deleted file mode 100644
index 2274b88..0000000
--- a/server/public/ueditor/third-party/video-js/font/vjs.svg
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>
-This is a custom SVG font generated by IcoMoon.
-<iconset grid="16"></iconset>
-</metadata>
-<defs>
-<font id="VideoJS" horiz-adv-x="512" >
-<font-face units-per-em="512" ascent="480" descent="-32" />
-<missing-glyph horiz-adv-x="512" />
-<glyph class="hidden" unicode="&#xf000;" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
-<glyph unicode="&#xe002;" d="M 64,416L 224,416L 224,32L 64,32zM 288,416L 448,416L 448,32L 288,32z"  />
-<glyph unicode="&#xe003;" d="M 200.666,440.666 C 213.5,453.5 224,449.15 224,431 L 224,17 C 224-1.15 213.5-5.499 200.666,7.335 L 80,128 L 0,128 L 0,320 L 80,320 L 200.666,440.666 Z"  />
-<glyph unicode="&#xe004;" d="M 274.51,109.49c-6.143,0-12.284,2.343-16.971,7.029c-9.373,9.373-9.373,24.568,0,33.941
-		c 40.55,40.55, 40.55,106.529,0,147.078c-9.373,9.373-9.373,24.569,0,33.941c 9.373,9.372, 24.568,9.372, 33.941,0
-		c 59.265-59.265, 59.265-155.696,0-214.961C 286.794,111.833, 280.652,109.49, 274.51,109.49zM 200.666,440.666 C 213.5,453.5 224,449.15 224,431 L 224,17 C 224-1.15 213.5-5.499 200.666,7.335 L 80,128 L 0,128 L 0,320 L 80,320 L 200.666,440.666 Z"  />
-<glyph unicode="&#xe005;" d="M 359.765,64.235c-6.143,0-12.284,2.343-16.971,7.029c-9.372,9.372-9.372,24.568,0,33.941
-		c 65.503,65.503, 65.503,172.085,0,237.588c-9.372,9.373-9.372,24.569,0,33.941c 9.372,9.371, 24.569,9.372, 33.941,0
-		C 417.532,335.938, 440,281.696, 440,224c0-57.695-22.468-111.938-63.265-152.735C 372.049,66.578, 365.907,64.235, 359.765,64.235zM 274.51,109.49c-6.143,0-12.284,2.343-16.971,7.029c-9.373,9.373-9.373,24.568,0,33.941
-		c 40.55,40.55, 40.55,106.529,0,147.078c-9.373,9.373-9.373,24.569,0,33.941c 9.373,9.372, 24.568,9.372, 33.941,0
-		c 59.265-59.265, 59.265-155.696,0-214.961C 286.794,111.833, 280.652,109.49, 274.51,109.49zM 200.666,440.666 C 213.5,453.5 224,449.15 224,431 L 224,17 C 224-1.15 213.5-5.499 200.666,7.335 L 80,128 L 0,128 L 0,320 L 80,320 L 200.666,440.666 Z"  />
-<glyph unicode="&#xe006;" d="M 445.020,18.98c-6.143,0-12.284,2.343-16.971,7.029c-9.372,9.373-9.372,24.568,0,33.941
-		C 471.868,103.771, 496.001,162.030, 496.001,224c0,61.969-24.133,120.229-67.952,164.049c-9.372,9.373-9.372,24.569,0,33.941
-		c 9.372,9.372, 24.569,9.372, 33.941,0c 52.885-52.886, 82.011-123.2, 82.011-197.99c0-74.791-29.126-145.104-82.011-197.99
-		C 457.304,21.323, 451.162,18.98, 445.020,18.98zM 359.765,64.235c-6.143,0-12.284,2.343-16.971,7.029c-9.372,9.372-9.372,24.568,0,33.941
-		c 65.503,65.503, 65.503,172.085,0,237.588c-9.372,9.373-9.372,24.569,0,33.941c 9.372,9.371, 24.569,9.372, 33.941,0
-		C 417.532,335.938, 440,281.696, 440,224c0-57.695-22.468-111.938-63.265-152.735C 372.049,66.578, 365.907,64.235, 359.765,64.235zM 274.51,109.49c-6.143,0-12.284,2.343-16.971,7.029c-9.373,9.373-9.373,24.568,0,33.941
-		c 40.55,40.55, 40.55,106.529,0,147.078c-9.373,9.373-9.373,24.569,0,33.941c 9.373,9.372, 24.568,9.372, 33.941,0
-		c 59.265-59.265, 59.265-155.696,0-214.961C 286.794,111.833, 280.652,109.49, 274.51,109.49zM 200.666,440.666 C 213.5,453.5 224,449.15 224,431 L 224,17 C 224-1.15 213.5-5.499 200.666,7.335 L 80,128 L 0,128 L 0,320 L 80,320 L 200.666,440.666 Z" horiz-adv-x="544"  />
-<glyph unicode="&#xe007;" d="M 256,480L 96,224L 256-32L 416,224 z"  />
-<glyph unicode="&#xe008;" d="M 0,480 L 687.158,480 L 687.158-35.207 L 0-35.207 L 0,480 z M 622.731,224.638 C 621.878,314.664 618.46,353.922 597.131,381.656 C 593.291,387.629 586.038,391.042 580.065,395.304 C 559.158,410.669 460.593,416.211 346.247,416.211 C 231.896,416.211 128.642,410.669 108.162,395.304 C 101.762,391.042 94.504,387.629 90.242,381.656 C 69.331,353.922 66.349,314.664 65.069,224.638 C 66.349,134.607 69.331,95.353 90.242,67.62 C 94.504,61.22 101.762,58.233 108.162,53.967 C 128.642,38.18 231.896,33.060 346.247,32.207 C 460.593,33.060 559.158,38.18 580.065,53.967 C 586.038,58.233 593.291,61.22 597.131,67.62 C 618.46,95.353 621.878,134.607 622.731,224.638 z M 331.179,247.952 C 325.389,318.401 287.924,359.905 220.901,359.905 C 159.672,359.905 111.54,304.689 111.54,215.965 C 111.54,126.859 155.405,71.267 227.907,71.267 C 285.79,71.267 326.306,113.916 332.701,184.742 L 263.55,184.742 C 260.81,158.468 249.843,138.285 226.69,138.285 C 190.136,138.285 183.435,174.462 183.435,212.92 C 183.435,265.854 198.665,292.886 223.951,292.886 C 246.492,292.886 260.81,276.511 262.939,247.952 L 331.179,247.952 z M 570.013,247.952 C 564.228,318.401 526.758,359.905 459.74,359.905 C 398.507,359.905 350.379,304.689 350.379,215.965 C 350.379,126.859 394.244,71.267 466.746,71.267 C 524.625,71.267 565.14,113.916 571.536,184.742 L 502.384,184.742 C 499.649,158.468 488.682,138.285 465.529,138.285 C 428.971,138.285 422.27,174.462 422.27,212.92 C 422.27,265.854 437.504,292.886 462.785,292.886 C 485.327,292.886 499.649,276.511 501.778,247.952 L 570.013,247.952 z " horiz-adv-x="687.158"  />
-<glyph unicode="&#xe009;" d="M 64,416L 448,416L 448,32L 64,32z"  />
-<glyph unicode="&#xe00a;" d="M 192,416A64,64 12780 1 1 320,416A64,64 12780 1 1 192,416zM 327.765,359.765A64,64 12780 1 1 455.765,359.765A64,64 12780 1 1 327.765,359.765zM 416,224A32,32 12780 1 1 480,224A32,32 12780 1 1 416,224zM 359.765,88.235A32,32 12780 1 1 423.765,88.23500000000001A32,32 12780 1 1 359.765,88.23500000000001zM 224.001,32A32,32 12780 1 1 288.001,32A32,32 12780 1 1 224.001,32zM 88.236,88.235A32,32 12780 1 1 152.236,88.23500000000001A32,32 12780 1 1 88.236,88.23500000000001zM 72.236,359.765A48,48 12780 1 1 168.236,359.765A48,48 12780 1 1 72.236,359.765zM 28,224A36,36 12780 1 1 100,224A36,36 12780 1 1 28,224z"  />
-<glyph unicode="&#xe00b;" d="M 224,192 L 224-16 L 144,64 L 48-32 L 0,16 L 96,112 L 16,192 ZM 512,432 L 416,336 L 496,256 L 288,256 L 288,464 L 368,384 L 464,480 Z"  />
-<glyph unicode="&#xe00c;" d="M 256,448 C 397.385,448 512,354.875 512,240 C 512,125.124 397.385,32 256,32 C 242.422,32 229.095,32.867 216.088,34.522 C 161.099-20.467 95.463-30.328 32-31.776 L 32-18.318 C 66.268-1.529 96,29.052 96,64 C 96,68.877 95.621,73.665 94.918,78.348 C 37.020,116.48 0,174.725 0,240 C 0,354.875 114.615,448 256,448 Z"  />
-<glyph unicode="&#xe00d;" d="M 256,480C 114.615,480,0,365.385,0,224s 114.615-256, 256-256s 256,114.615, 256,256S 397.385,480, 256,480z M 256,352
-	c 70.692,0, 128-57.308, 128-128s-57.308-128-128-128s-128,57.308-128,128S 185.308,352, 256,352z M 408.735,71.265
-	C 367.938,30.468, 313.695,8, 256,8c-57.696,0-111.938,22.468-152.735,63.265C 62.468,112.062, 40,166.304, 40,224
-	c0,57.695, 22.468,111.938, 63.265,152.735l 33.941-33.941c0,0,0,0,0,0c-65.503-65.503-65.503-172.085,0-237.588
-	C 168.937,73.475, 211.125,56, 256,56c 44.874,0, 87.062,17.475, 118.794,49.206c 65.503,65.503, 65.503,172.084,0,237.588l 33.941,33.941
-	C 449.532,335.938, 472,281.695, 472,224C 472,166.304, 449.532,112.062, 408.735,71.265z"  />
-<glyph unicode="&#xe01e;" d="M 512,224c-0.639,33.431-7.892,66.758-21.288,97.231c-13.352,30.5-32.731,58.129-56.521,80.96
-	c-23.776,22.848-51.972,40.91-82.492,52.826C 321.197,466.979, 288.401,472.693, 256,472c-32.405-0.641-64.666-7.687-94.167-20.678
-	c-29.524-12.948-56.271-31.735-78.367-54.788c-22.112-23.041-39.58-50.354-51.093-79.899C 20.816,287.104, 15.309,255.375, 16,224
-	c 0.643-31.38, 7.482-62.574, 20.067-91.103c 12.544-28.55, 30.738-54.414, 53.055-75.774c 22.305-21.377, 48.736-38.252, 77.307-49.36
-	C 194.988-3.389, 225.652-8.688, 256-8c 30.354,0.645, 60.481,7.277, 88.038,19.457c 27.575,12.141, 52.558,29.74, 73.183,51.322
-	c 20.641,21.57, 36.922,47.118, 47.627,74.715c 6.517,16.729, 10.94,34.2, 13.271,51.899c 0.623-0.036, 1.249-0.060, 1.881-0.060
-	c 17.673,0, 32,14.326, 32,32c0,0.898-0.047,1.786-0.119,2.666L 512,223.999 z M 461.153,139.026c-11.736-26.601-28.742-50.7-49.589-70.59
-	c-20.835-19.905-45.5-35.593-72.122-45.895C 312.828,12.202, 284.297,7.315, 256,8c-28.302,0.649-56.298,6.868-81.91,18.237
-	c-25.625,11.333-48.842,27.745-67.997,47.856c-19.169,20.099-34.264,43.882-44.161,69.529C 51.997,169.264, 47.318,196.729, 48,224
-	c 0.651,27.276, 6.664,54.206, 17.627,78.845c 10.929,24.65, 26.749,46.985, 46.123,65.405c 19.365,18.434, 42.265,32.935, 66.937,42.428
-	C 203.356,420.208, 229.755,424.681, 256,424c 26.25-0.653, 52.114-6.459, 75.781-17.017c 23.676-10.525, 45.128-25.751, 62.812-44.391
-	c 17.698-18.629, 31.605-40.647, 40.695-64.344C 444.412,274.552, 448.679,249.219, 448,224l 0.119,0 c-0.072-0.88-0.119-1.768-0.119-2.666
-	c0-16.506, 12.496-30.087, 28.543-31.812C 473.431,172.111, 468.278,155.113, 461.153,139.026z"  />
-<glyph unicode="&#xe01f;" d="M 256,480 C 116.626,480 3.271,368.619 0.076,230.013 C 3.036,350.945 94.992,448 208,448 C 322.875,448 416,347.712 416,224 C 416,197.49 437.49,176 464,176 C 490.51,176 512,197.49 512,224 C 512,365.385 397.385,480 256,480 ZM 256-32 C 395.374-32 508.729,79.381 511.924,217.987 C 508.964,97.055 417.008,0 304,0 C 189.125,0 96,100.288 96,224 C 96,250.51 74.51,272 48,272 C 21.49,272 0,250.51 0,224 C 0,82.615 114.615-32 256-32 Z"  />
-<glyph unicode="&#xe00e;" d="M 432,128c-22.58,0-42.96-9.369-57.506-24.415L 158.992,211.336C 159.649,215.462, 160,219.689, 160,224
-	s-0.351,8.538-1.008,12.663l 215.502,107.751C 389.040,329.369, 409.42,320, 432,320c 44.183,0, 80,35.817, 80,80S 476.183,480, 432,480
-	s-80-35.817-80-80c0-4.311, 0.352-8.538, 1.008-12.663L 137.506,279.585C 122.96,294.63, 102.58,304, 80,304c-44.183,0-80-35.818-80-80
-	c0-44.184, 35.817-80, 80-80c 22.58,0, 42.96,9.369, 57.506,24.414l 215.502-107.751C 352.352,56.538, 352,52.311, 352,48
-	c0-44.184, 35.817-80, 80-80s 80,35.816, 80,80C 512,92.182, 476.183,128, 432,128z"  />
-<glyph unicode="&#xe001;" d="M 96,416L 416,224L 96,32 z"  />
-<glyph unicode="&#xe000;" d="M 512,480 L 512,272 L 432,352 L 336,256 L 288,304 L 384,400 L 304,480 ZM 224,144 L 128,48 L 208-32 L 0-32 L 0,176 L 80,96 L 176,192 Z"  />
-<glyph unicode="&#x20;" horiz-adv-x="256" />
-</font></defs></svg>
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/video-js/font/vjs.ttf b/server/public/ueditor/third-party/video-js/font/vjs.ttf
deleted file mode 100644
index eb24637..0000000
--- a/server/public/ueditor/third-party/video-js/font/vjs.ttf
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/third-party/video-js/font/vjs.woff b/server/public/ueditor/third-party/video-js/font/vjs.woff
deleted file mode 100644
index c3f0f1d..0000000
--- a/server/public/ueditor/third-party/video-js/font/vjs.woff
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/third-party/video-js/video-js.css b/server/public/ueditor/third-party/video-js/video-js.css
deleted file mode 100644
index 66b6192..0000000
--- a/server/public/ueditor/third-party/video-js/video-js.css
+++ /dev/null
@@ -1,766 +0,0 @@
-/*!
-Video.js Default Styles (http://videojs.com)
-Version 4.3.0
-Create your own skin at http://designer.videojs.com
-*/
-/* SKIN
-================================================================================
-The main class name for all skin-specific styles. To make your own skin,
-replace all occurances of 'vjs-default-skin' with a new name. Then add your new
-skin name to your video tag instead of the default skin.
-e.g. <video class="video-js my-skin-name">
-*/
-.vjs-default-skin {
-  color: #cccccc;
-}
-/* Custom Icon Font
---------------------------------------------------------------------------------
-The control icons are from a custom font. Each icon corresponds to a character
-(e.g. "\e001"). Font icons allow for easy scaling and coloring of icons.
-*/
-@font-face {
-  font-family: 'VideoJS';
-  src: url('font/vjs.eot');
-  src: url('font/vjs.eot?#iefix') format('embedded-opentype'), url('font/vjs.woff') format('woff'), url('font/vjs.ttf') format('truetype');
-  font-weight: normal;
-  font-style: normal;
-}
-/* Base UI Component Classes
---------------------------------------------------------------------------------
-*/
-/* Slider - used for Volume bar and Seek bar */
-.vjs-default-skin .vjs-slider {
-  /* Replace browser focus hightlight with handle highlight */
-  outline: 0;
-  position: relative;
-  cursor: pointer;
-  padding: 0;
-  /* background-color-with-alpha */
-  background-color: #333333;
-  background-color: rgba(51, 51, 51, 0.9);
-}
-.vjs-default-skin .vjs-slider:focus {
-  /* box-shadow */
-  -webkit-box-shadow: 0 0 2em #ffffff;
-  -moz-box-shadow: 0 0 2em #ffffff;
-  box-shadow: 0 0 2em #ffffff;
-}
-.vjs-default-skin .vjs-slider-handle {
-  position: absolute;
-  /* Needed for IE6 */
-  left: 0;
-  top: 0;
-}
-.vjs-default-skin .vjs-slider-handle:before {
-  content: "\e009";
-  font-family: VideoJS;
-  font-size: 1em;
-  line-height: 1;
-  text-align: center;
-  text-shadow: 0em 0em 1em #fff;
-  position: absolute;
-  top: 0;
-  left: 0;
-  /* Rotate the square icon to make a diamond */
-  /* transform */
-  -webkit-transform: rotate(-45deg);
-  -moz-transform: rotate(-45deg);
-  -ms-transform: rotate(-45deg);
-  -o-transform: rotate(-45deg);
-  transform: rotate(-45deg);
-}
-/* Control Bar
---------------------------------------------------------------------------------
-The default control bar that is a container for most of the controls.
-*/
-.vjs-default-skin .vjs-control-bar {
-  /* Start hidden */
-  display: none;
-  position: absolute;
-  /* Place control bar at the bottom of the player box/video.
-     If you want more margin below the control bar, add more height. */
-  bottom: 0;
-  /* Use left/right to stretch to 100% width of player div */
-  left: 0;
-  right: 0;
-  /* Height includes any margin you want above or below control items */
-  height: 3.0em;
-  /* background-color-with-alpha */
-  background-color: #07141e;
-  background-color: rgba(7, 20, 30, 0.7);
-}
-/* Show the control bar only once the video has started playing */
-.vjs-default-skin.vjs-has-started .vjs-control-bar {
-  display: block;
-  /* Visibility needed to make sure things hide in older browsers too. */
-
-  visibility: visible;
-  opacity: 1;
-  /* transition */
-  -webkit-transition: visibility 0.1s, opacity 0.1s;
-  -moz-transition: visibility 0.1s, opacity 0.1s;
-  -o-transition: visibility 0.1s, opacity 0.1s;
-  transition: visibility 0.1s, opacity 0.1s;
-}
-/* Hide the control bar when the video is playing and the user is inactive  */
-.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
-  display: block;
-  visibility: hidden;
-  opacity: 0;
-  /* transition */
-  -webkit-transition: visibility 1s, opacity 1s;
-  -moz-transition: visibility 1s, opacity 1s;
-  -o-transition: visibility 1s, opacity 1s;
-  transition: visibility 1s, opacity 1s;
-}
-.vjs-default-skin.vjs-controls-disabled .vjs-control-bar {
-  display: none;
-}
-.vjs-default-skin.vjs-using-native-controls .vjs-control-bar {
-  display: none;
-}
-/* IE8 is flakey with fonts, and you have to change the actual content to force
-fonts to show/hide properly.
-  - "\9" IE8 hack didn't work for this
-  - Found in XP IE8 from http://modern.ie. Does not show up in "IE8 mode" in IE9
-*/
-@media \0screen {
-  .vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before {
-    content: "";
-  }
-}
-/* General styles for individual controls. */
-.vjs-default-skin .vjs-control {
-  outline: none;
-  position: relative;
-  float: left;
-  text-align: center;
-  margin: 0;
-  padding: 0;
-  height: 3.0em;
-  width: 4em;
-}
-/* FontAwsome button icons */
-.vjs-default-skin .vjs-control:before {
-  font-family: VideoJS;
-  font-size: 1.5em;
-  line-height: 2;
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-  text-align: center;
-  text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
-}
-/* Replacement for focus outline */
-.vjs-default-skin .vjs-control:focus:before,
-.vjs-default-skin .vjs-control:hover:before {
-  text-shadow: 0em 0em 1em #ffffff;
-}
-.vjs-default-skin .vjs-control:focus {
-  /*  outline: 0; */
-  /* keyboard-only users cannot see the focus on several of the UI elements when
-  this is set to 0 */
-
-}
-/* Hide control text visually, but have it available for screenreaders */
-.vjs-default-skin .vjs-control-text {
-  /* hide-visually */
-  border: 0;
-  clip: rect(0 0 0 0);
-  height: 1px;
-  margin: -1px;
-  overflow: hidden;
-  padding: 0;
-  position: absolute;
-  width: 1px;
-}
-/* Play/Pause
---------------------------------------------------------------------------------
-*/
-.vjs-default-skin .vjs-play-control {
-  width: 5em;
-  cursor: pointer;
-}
-.vjs-default-skin .vjs-play-control:before {
-  content: "\e001";
-}
-.vjs-default-skin.vjs-playing .vjs-play-control:before {
-  content: "\e002";
-}
-/* Volume/Mute
--------------------------------------------------------------------------------- */
-.vjs-default-skin .vjs-mute-control,
-.vjs-default-skin .vjs-volume-menu-button {
-  cursor: pointer;
-  float: right;
-}
-.vjs-default-skin .vjs-mute-control:before,
-.vjs-default-skin .vjs-volume-menu-button:before {
-  content: "\e006";
-}
-.vjs-default-skin .vjs-mute-control.vjs-vol-0:before,
-.vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before {
-  content: "\e003";
-}
-.vjs-default-skin .vjs-mute-control.vjs-vol-1:before,
-.vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before {
-  content: "\e004";
-}
-.vjs-default-skin .vjs-mute-control.vjs-vol-2:before,
-.vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before {
-  content: "\e005";
-}
-.vjs-default-skin .vjs-volume-control {
-  width: 5em;
-  float: right;
-}
-.vjs-default-skin .vjs-volume-bar {
-  width: 5em;
-  height: 0.6em;
-  margin: 1.1em auto 0;
-}
-.vjs-default-skin .vjs-volume-menu-button .vjs-menu-content {
-  height: 2.9em;
-}
-.vjs-default-skin .vjs-volume-level {
-  position: absolute;
-  top: 0;
-  left: 0;
-  height: 0.5em;
-  background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat;
-}
-.vjs-default-skin .vjs-volume-bar .vjs-volume-handle {
-  width: 0.5em;
-  height: 0.5em;
-}
-.vjs-default-skin .vjs-volume-handle:before {
-  font-size: 0.9em;
-  top: -0.2em;
-  left: -0.2em;
-  width: 1em;
-  height: 1em;
-}
-.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content {
-  width: 6em;
-  left: -4em;
-}
-/* Progress
---------------------------------------------------------------------------------
-*/
-.vjs-default-skin .vjs-progress-control {
-  position: absolute;
-  left: 0;
-  right: 0;
-  width: auto;
-  font-size: 0.3em;
-  height: 1em;
-  /* Set above the rest of the controls. */
-  top: -1em;
-  /* Shrink the bar slower than it grows. */
-  /* transition */
-  -webkit-transition: all 0.4s;
-  -moz-transition: all 0.4s;
-  -o-transition: all 0.4s;
-  transition: all 0.4s;
-}
-/* On hover, make the progress bar grow to something that's more clickable.
-    This simply changes the overall font for the progress bar, and this
-    updates both the em-based widths and heights, as wells as the icon font */
-.vjs-default-skin:hover .vjs-progress-control {
-  font-size: .9em;
-  /* Even though we're not changing the top/height, we need to include them in
-      the transition so they're handled correctly. */
-
-  /* transition */
-  -webkit-transition: all 0.2s;
-  -moz-transition: all 0.2s;
-  -o-transition: all 0.2s;
-  transition: all 0.2s;
-}
-/* Box containing play and load progresses. Also acts as seek scrubber. */
-.vjs-default-skin .vjs-progress-holder {
-  height: 100%;
-}
-/* Progress Bars */
-.vjs-default-skin .vjs-progress-holder .vjs-play-progress,
-.vjs-default-skin .vjs-progress-holder .vjs-load-progress {
-  position: absolute;
-  display: block;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-  /* Needed for IE6 */
-  left: 0;
-  top: 0;
-}
-.vjs-default-skin .vjs-play-progress {
-  /*
-    Using a data URI to create the white diagonal lines with a transparent
-      background. Surprisingly works in IE8.
-      Created using http://www.patternify.com
-    Changing the first color value will change the bar color.
-    Also using a paralax effect to make the lines move backwards.
-      The -50% left position makes that happen.
-  */
-
-  background: #66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat;
-}
-.vjs-default-skin .vjs-load-progress {
-  background: #646464 /* IE8- Fallback */;
-  background: rgba(255, 255, 255, 0.4);
-}
-.vjs-default-skin .vjs-seek-handle {
-  width: 1.5em;
-  height: 100%;
-}
-.vjs-default-skin .vjs-seek-handle:before {
-  padding-top: 0.1em /* Minor adjustment */;
-}
-/* Time Display
---------------------------------------------------------------------------------
-*/
-.vjs-default-skin .vjs-time-controls {
-  font-size: 1em;
-  /* Align vertically by making the line height the same as the control bar */
-  line-height: 3em;
-}
-.vjs-default-skin .vjs-current-time {
-  float: left;
-}
-.vjs-default-skin .vjs-duration {
-  float: left;
-}
-/* Remaining time is in the HTML, but not included in default design */
-.vjs-default-skin .vjs-remaining-time {
-  display: none;
-  float: left;
-}
-.vjs-time-divider {
-  float: left;
-  line-height: 3em;
-}
-/* Fullscreen
---------------------------------------------------------------------------------
-*/
-.vjs-default-skin .vjs-fullscreen-control {
-  width: 3.8em;
-  cursor: pointer;
-  float: right;
-}
-.vjs-default-skin .vjs-fullscreen-control:before {
-  content: "\e000";
-}
-/* Switch to the exit icon when the player is in fullscreen */
-.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before {
-  content: "\e00b";
-}
-/* Big Play Button (play button at start)
---------------------------------------------------------------------------------
-Positioning of the play button in the center or other corners can be done more
-easily in the skin designer. http://designer.videojs.com/
-*/
-.vjs-default-skin .vjs-big-play-button {
-  left: 0.5em;
-  top: 0.5em;
-  font-size: 3em;
-  display: block;
-  z-index: 2;
-  position: absolute;
-  width: 4em;
-  height: 2.6em;
-  text-align: center;
-  vertical-align: middle;
-  cursor: pointer;
-  opacity: 1;
-  /* Need a slightly gray bg so it can be seen on black backgrounds */
-  /* background-color-with-alpha */
-  background-color: #07141e;
-  background-color: rgba(7, 20, 30, 0.7);
-  border: 0.1em solid #3b4249;
-  /* border-radius */
-  -webkit-border-radius: 0.8em;
-  -moz-border-radius: 0.8em;
-  border-radius: 0.8em;
-  /* box-shadow */
-  -webkit-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
-  -moz-box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
-  box-shadow: 0px 0px 1em rgba(255, 255, 255, 0.25);
-  /* transition */
-  -webkit-transition: all 0.4s;
-  -moz-transition: all 0.4s;
-  -o-transition: all 0.4s;
-  transition: all 0.4s;
-}
-/* Optionally center */
-.vjs-default-skin.vjs-big-play-centered .vjs-big-play-button {
-  /* Center it horizontally */
-  left: 50%;
-  margin-left: -2.1em;
-  /* Center it vertically */
-  top: 50%;
-  margin-top: -1.4000000000000001em;
-}
-/* Hide if controls are disabled */
-.vjs-default-skin.vjs-controls-disabled .vjs-big-play-button {
-  display: none;
-}
-/* Hide when video starts playing */
-.vjs-default-skin.vjs-has-started .vjs-big-play-button {
-  display: none;
-}
-/* Hide on mobile devices. Remove when we stop using native controls
-    by default on mobile  */
-.vjs-default-skin.vjs-using-native-controls .vjs-big-play-button {
-  display: none;
-}
-.vjs-default-skin:hover .vjs-big-play-button,
-.vjs-default-skin .vjs-big-play-button:focus {
-  outline: 0;
-  border-color: #fff;
-  /* IE8 needs a non-glow hover state */
-  background-color: #505050;
-  background-color: rgba(50, 50, 50, 0.75);
-  /* box-shadow */
-  -webkit-box-shadow: 0 0 3em #ffffff;
-  -moz-box-shadow: 0 0 3em #ffffff;
-  box-shadow: 0 0 3em #ffffff;
-  /* transition */
-  -webkit-transition: all 0s;
-  -moz-transition: all 0s;
-  -o-transition: all 0s;
-  transition: all 0s;
-}
-.vjs-default-skin .vjs-big-play-button:before {
-  content: "\e001";
-  font-family: VideoJS;
-  /* In order to center the play icon vertically we need to set the line height
-     to the same as the button height */
-
-  line-height: 2.6em;
-  text-shadow: 0.05em 0.05em 0.1em #000;
-  text-align: center /* Needed for IE8 */;
-  position: absolute;
-  left: 0;
-  width: 100%;
-  height: 100%;
-}
-/* Loading Spinner
---------------------------------------------------------------------------------
-*/
-.vjs-loading-spinner {
-  display: none;
-  position: absolute;
-  top: 50%;
-  left: 50%;
-  font-size: 4em;
-  line-height: 1;
-  width: 1em;
-  height: 1em;
-  margin-left: -0.5em;
-  margin-top: -0.5em;
-  opacity: 0.75;
-  /* animation */
-  -webkit-animation: spin 1.5s infinite linear;
-  -moz-animation: spin 1.5s infinite linear;
-  -o-animation: spin 1.5s infinite linear;
-  animation: spin 1.5s infinite linear;
-}
-.vjs-default-skin .vjs-loading-spinner:before {
-  content: "\e01e";
-  font-family: VideoJS;
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 1em;
-  height: 1em;
-  text-align: center;
-  text-shadow: 0em 0em 0.1em #000;
-}
-@-moz-keyframes spin {
-  0% {
-    -moz-transform: rotate(0deg);
-  }
-  100% {
-    -moz-transform: rotate(359deg);
-  }
-}
-@-webkit-keyframes spin {
-  0% {
-    -webkit-transform: rotate(0deg);
-  }
-  100% {
-    -webkit-transform: rotate(359deg);
-  }
-}
-@-o-keyframes spin {
-  0% {
-    -o-transform: rotate(0deg);
-  }
-  100% {
-    -o-transform: rotate(359deg);
-  }
-}
-@keyframes spin {
-  0% {
-    transform: rotate(0deg);
-  }
-  100% {
-    transform: rotate(359deg);
-  }
-}
-/* Menu Buttons (Captions/Subtitles/etc.)
---------------------------------------------------------------------------------
-*/
-.vjs-default-skin .vjs-menu-button {
-  float: right;
-  cursor: pointer;
-}
-.vjs-default-skin .vjs-menu {
-  display: none;
-  position: absolute;
-  bottom: 0;
-  left: 0em;
-  /* (Width of vjs-menu - width of button) / 2 */
-
-  width: 0em;
-  height: 0em;
-  margin-bottom: 3em;
-  border-left: 2em solid transparent;
-  border-right: 2em solid transparent;
-  border-top: 1.55em solid #000000;
-  /* Same width top as ul bottom */
-
-  border-top-color: rgba(7, 40, 50, 0.5);
-  /* Same as ul background */
-
-}
-/* Button Pop-up Menu */
-.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content {
-  display: block;
-  padding: 0;
-  margin: 0;
-  position: absolute;
-  width: 10em;
-  bottom: 1.5em;
-  /* Same bottom as vjs-menu border-top */
-
-  max-height: 15em;
-  overflow: auto;
-  left: -5em;
-  /* Width of menu - width of button / 2 */
-
-  /* background-color-with-alpha */
-  background-color: #07141e;
-  background-color: rgba(7, 20, 30, 0.7);
-  /* box-shadow */
-  -webkit-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
-  -moz-box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
-  box-shadow: -0.2em -0.2em 0.3em rgba(255, 255, 255, 0.2);
-}
-.vjs-default-skin .vjs-menu-button:hover .vjs-menu {
-  display: block;
-}
-.vjs-default-skin .vjs-menu-button ul li {
-  list-style: none;
-  margin: 0;
-  padding: 0.3em 0 0.3em 0;
-  line-height: 1.4em;
-  font-size: 1.2em;
-  text-align: center;
-  text-transform: lowercase;
-}
-.vjs-default-skin .vjs-menu-button ul li.vjs-selected {
-  background-color: #000;
-}
-.vjs-default-skin .vjs-menu-button ul li:focus,
-.vjs-default-skin .vjs-menu-button ul li:hover,
-.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,
-.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover {
-  outline: 0;
-  color: #111;
-  /* background-color-with-alpha */
-  background-color: #ffffff;
-  background-color: rgba(255, 255, 255, 0.75);
-  /* box-shadow */
-  -webkit-box-shadow: 0 0 1em #ffffff;
-  -moz-box-shadow: 0 0 1em #ffffff;
-  box-shadow: 0 0 1em #ffffff;
-}
-.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title {
-  text-align: center;
-  text-transform: uppercase;
-  font-size: 1em;
-  line-height: 2em;
-  padding: 0;
-  margin: 0 0 0.3em 0;
-  font-weight: bold;
-  cursor: default;
-}
-/* Subtitles Button */
-.vjs-default-skin .vjs-subtitles-button:before {
-  content: "\e00c";
-}
-/* Captions Button */
-.vjs-default-skin .vjs-captions-button:before {
-  content: "\e008";
-}
-/* Replacement for focus outline */
-.vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,
-.vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before {
-  /* box-shadow */
-  -webkit-box-shadow: 0 0 1em #ffffff;
-  -moz-box-shadow: 0 0 1em #ffffff;
-  box-shadow: 0 0 1em #ffffff;
-}
-/*
-REQUIRED STYLES (be careful overriding)
-================================================================================
-When loading the player, the video tag is replaced with a DIV,
-that will hold the video tag or object tag for other playback methods.
-The div contains the video playback element (Flash or HTML5) and controls,
-and sets the width and height of the video.
-
-** If you want to add some kind of border/padding (e.g. a frame), or special
-positioning, use another containing element. Otherwise you risk messing up
-control positioning and full window mode. **
-*/
-.video-js {
-  background-color: #000;
-  position: relative;
-  padding: 0;
-  /* Start with 10px for base font size so other dimensions can be em based and
-     easily calculable. */
-
-  font-size: 10px;
-  /* Allow poster to be vertially aligned. */
-
-  vertical-align: middle;
-  /*  display: table-cell; */
-  /*This works in Safari but not Firefox.*/
-
-  /* Provide some basic defaults for fonts */
-
-  font-weight: normal;
-  font-style: normal;
-  /* Avoiding helvetica: issue #376 */
-
-  font-family: Arial, sans-serif;
-  /* Turn off user selection (text highlighting) by default.
-     The majority of player components will not be text blocks.
-     Text areas will need to turn user selection back on. */
-
-  /* user-select */
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  -ms-user-select: none;
-  user-select: none;
-}
-/* Playback technology elements expand to the width/height of the containing div
-    <video> or <object> */
-.video-js .vjs-tech {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 100%;
-  height: 100%;
-}
-/* Fix for Firefox 9 fullscreen (only if it is enabled). Not needed when
-   checking fullScreenEnabled. */
-.video-js:-moz-full-screen {
-  position: absolute;
-}
-/* Fullscreen Styles */
-body.vjs-full-window {
-  padding: 0;
-  margin: 0;
-  height: 100%;
-  /* Fix for IE6 full-window. http://www.cssplay.co.uk/layouts/fixed.html */
-  overflow-y: auto;
-}
-.video-js.vjs-fullscreen {
-  position: fixed;
-  overflow: hidden;
-  z-index: 1000;
-  left: 0;
-  top: 0;
-  bottom: 0;
-  right: 0;
-  width: 100% !important;
-  height: 100% !important;
-  /* IE6 full-window (underscore hack) */
-  _position: absolute;
-}
-.video-js:-webkit-full-screen {
-  width: 100% !important;
-  height: 100% !important;
-}
-.video-js.vjs-fullscreen.vjs-user-inactive {
-  cursor: none;
-}
-/* Poster Styles */
-.vjs-poster {
-  background-repeat: no-repeat;
-  background-position: 50% 50%;
-  background-size: contain;
-  cursor: pointer;
-  height: 100%;
-  margin: 0;
-  padding: 0;
-  position: relative;
-  width: 100%;
-}
-.vjs-poster img {
-  display: block;
-  margin: 0 auto;
-  max-height: 100%;
-  padding: 0;
-  width: 100%;
-}
-/* Hide the poster when native controls are used otherwise it covers them */
-.video-js.vjs-using-native-controls .vjs-poster {
-  display: none;
-}
-/* Text Track Styles */
-/* Overall track holder for both captions and subtitles */
-.video-js .vjs-text-track-display {
-  text-align: center;
-  position: absolute;
-  bottom: 4em;
-  /* Leave padding on left and right */
-  left: 1em;
-  right: 1em;
-}
-/* Individual tracks */
-.video-js .vjs-text-track {
-  display: none;
-  font-size: 1.4em;
-  text-align: center;
-  margin-bottom: 0.1em;
-  /* Transparent black background, or fallback to all black (oldIE) */
-  /* background-color-with-alpha */
-  background-color: #000000;
-  background-color: rgba(0, 0, 0, 0.5);
-}
-.video-js .vjs-subtitles {
-  color: #ffffff /* Subtitles are white */;
-}
-.video-js .vjs-captions {
-  color: #ffcc66 /* Captions are yellow */;
-}
-.vjs-tt-cue {
-  display: block;
-}
-/* Hide disabled or unsupported controls */
-.vjs-default-skin .vjs-hidden {
-  display: none;
-}
-.vjs-lock-showing {
-  display: block !important;
-  opacity: 1;
-  visibility: visible;
-}
-/* -----------------------------------------------------------------------------
-The original source of this file lives at
-https://github.com/videojs/video.js/blob/master/src/css/video-js.less */
diff --git a/server/public/ueditor/third-party/video-js/video-js.min.css b/server/public/ueditor/third-party/video-js/video-js.min.css
deleted file mode 100644
index 5463899..0000000
--- a/server/public/ueditor/third-party/video-js/video-js.min.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!
-Video.js Default Styles (http://videojs.com)
-Version 4.3.0
-Create your own skin at http://designer.videojs.com
-*/.vjs-default-skin{color:#ccc}@font-face{font-family:VideoJS;src:url(font/vjs.eot);src:url(font/vjs.eot?#iefix) format('embedded-opentype'),url(font/vjs.woff) format('woff'),url(font/vjs.ttf) format('truetype');font-weight:400;font-style:normal}.vjs-default-skin .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#333;background-color:rgba(51,51,51,.9)}.vjs-default-skin .vjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.vjs-default-skin .vjs-slider-handle{position:absolute;left:0;top:0}.vjs-default-skin .vjs-slider-handle:before{content:"\e009";font-family:VideoJS;font-size:1em;line-height:1;text-align:center;text-shadow:0 0 1em #fff;position:absolute;top:0;left:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.vjs-default-skin .vjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#07141e;background-color:rgba(7,20,30,.7)}.vjs-default-skin.vjs-has-started .vjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.vjs-default-skin.vjs-controls-disabled .vjs-control-bar{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-control-bar{display:none}@media \0screen{.vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.vjs-default-skin .vjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.vjs-default-skin .vjs-control:before{font-family:VideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.vjs-default-skin .vjs-control:focus:before,.vjs-default-skin .vjs-control:hover:before{text-shadow:0 0 1em #fff}.vjs-default-skin .vjs-control:focus{}.vjs-default-skin .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-default-skin .vjs-play-control{width:5em;cursor:pointer}.vjs-default-skin .vjs-play-control:before{content:"\e001"}.vjs-default-skin.vjs-playing .vjs-play-control:before{content:"\e002"}.vjs-default-skin .vjs-mute-control,.vjs-default-skin .vjs-volume-menu-button{cursor:pointer;float:right}.vjs-default-skin .vjs-mute-control:before,.vjs-default-skin .vjs-volume-menu-button:before{content:"\e006"}.vjs-default-skin .vjs-mute-control.vjs-vol-0:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before{content:"\e003"}.vjs-default-skin .vjs-mute-control.vjs-vol-1:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before{content:"\e004"}.vjs-default-skin .vjs-mute-control.vjs-vol-2:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before{content:"\e005"}.vjs-default-skin .vjs-volume-control{width:5em;float:right}.vjs-default-skin .vjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.vjs-default-skin .vjs-volume-menu-button .vjs-menu-content{height:2.9em}.vjs-default-skin .vjs-volume-level{position:absolute;top:0;left:0;height:.5em;background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-volume-bar .vjs-volume-handle{width:.5em;height:.5em}.vjs-default-skin .vjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content{width:6em;left:-4em}.vjs-default-skin .vjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin:hover .vjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.vjs-default-skin .vjs-progress-holder{height:100%}.vjs-default-skin .vjs-progress-holder .vjs-play-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.vjs-default-skin .vjs-play-progress{background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.vjs-default-skin .vjs-seek-handle{width:1.5em;height:100%}.vjs-default-skin .vjs-seek-handle:before{padding-top:.1em}.vjs-default-skin .vjs-time-controls{font-size:1em;line-height:3em}.vjs-default-skin .vjs-current-time{float:left}.vjs-default-skin .vjs-duration{float:left}.vjs-default-skin .vjs-remaining-time{display:none;float:left}.vjs-time-divider{float:left;line-height:3em}.vjs-default-skin .vjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.vjs-default-skin .vjs-fullscreen-control:before{content:"\e000"}.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before{content:"\e00b"}.vjs-default-skin .vjs-big-play-button{left:.5em;top:.5em;font-size:3em;display:block;z-index:2;position:absolute;width:4em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#07141e;background-color:rgba(7,20,30,.7);border:.1em solid #3b4249;-webkit-border-radius:.8em;-moz-border-radius:.8em;border-radius:.8em;-webkit-box-shadow:0 0 1em rgba(255,255,255,.25);-moz-box-shadow:0 0 1em rgba(255,255,255,.25);box-shadow:0 0 1em rgba(255,255,255,.25);-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin.vjs-big-play-centered .vjs-big-play-button{left:50%;margin-left:-2.1em;top:50%;margin-top:-1.4000000000000001em}.vjs-default-skin.vjs-controls-disabled .vjs-big-play-button{display:none}.vjs-default-skin.vjs-has-started .vjs-big-play-button{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-default-skin:hover .vjs-big-play-button,.vjs-default-skin .vjs-big-play-button:focus{outline:0;border-color:#fff;background-color:#505050;background-color:rgba(50,50,50,.75);-webkit-box-shadow:0 0 3em #fff;-moz-box-shadow:0 0 3em #fff;box-shadow:0 0 3em #fff;-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-default-skin .vjs-big-play-button:before{content:"\e001";font-family:VideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;opacity:.75;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.vjs-default-skin .vjs-loading-spinner:before{content:"\e01e";font-family:VideoJS;position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.vjs-default-skin .vjs-menu-button{float:right;cursor:pointer}.vjs-default-skin .vjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.vjs-default-skin .vjs-menu-button:hover .vjs-menu{display:block}.vjs-default-skin .vjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-default-skin .vjs-menu-button ul li.vjs-selected{background-color:#000}.vjs-default-skin .vjs-menu-button ul li:focus,.vjs-default-skin .vjs-menu-button ul li:hover,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover{outline:0;color:#111;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-default-skin .vjs-subtitles-button:before{content:"\e00c"}.vjs-default-skin .vjs-captions-button:before{content:"\e008"}.vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,.vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js{background-color:#000;position:relative;padding:0;font-size:10px;vertical-align:middle;font-weight:400;font-style:normal;font-family:Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js:-moz-full-screen{position:absolute}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;_position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-poster{background-repeat:no-repeat;background-position:50% 50%;background-size:contain;cursor:pointer;height:100%;margin:0;padding:0;position:relative;width:100%}.vjs-poster img{display:block;margin:0 auto;max-height:100%;padding:0;width:100%}.video-js.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-text-track-display{text-align:center;position:absolute;bottom:4em;left:1em;right:1em}.video-js .vjs-text-track{display:none;font-size:1.4em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.5)}.video-js .vjs-subtitles{color:#fff}.video-js .vjs-captions{color:#fc6}.vjs-tt-cue{display:block}.vjs-default-skin .vjs-hidden{display:none}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/video-js/video-js.swf b/server/public/ueditor/third-party/video-js/video-js.swf
deleted file mode 100644
index 9cf537a..0000000
--- a/server/public/ueditor/third-party/video-js/video-js.swf
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/third-party/video-js/video.dev.js b/server/public/ueditor/third-party/video-js/video.dev.js
deleted file mode 100644
index 598e0c6..0000000
--- a/server/public/ueditor/third-party/video-js/video.dev.js
+++ /dev/null
@@ -1,7108 +0,0 @@
-/**
- * @fileoverview Main function src.
- */
-
-// HTML5 Shiv. Must be in <head> to support older browsers.
-document.createElement('video');
-document.createElement('audio');
-document.createElement('track');
-
-/**
- * Doubles as the main function for users to create a player instance and also
- * the main library object.
- *
- * **ALIASES** videojs, _V_ (deprecated)
- *
- * The `vjs` function can be used to initialize or retrieve a player.
- *
- *     var myPlayer = vjs('my_video_id');
- *
- * @param  {String|Element} id      Video element or video element ID
- * @param  {Object=} options        Optional options object for config/settings
- * @param  {Function=} ready        Optional ready callback
- * @return {vjs.Player}             A player instance
- * @namespace
- */
-var vjs = function(id, options, ready){
-  var tag; // Element of ID
-
-  // Allow for element or ID to be passed in
-  // String ID
-  if (typeof id === 'string') {
-
-    // Adjust for jQuery ID syntax
-    if (id.indexOf('#') === 0) {
-      id = id.slice(1);
-    }
-
-    // If a player instance has already been created for this ID return it.
-    if (vjs.players[id]) {
-      return vjs.players[id];
-
-    // Otherwise get element for ID
-    } else {
-      tag = vjs.el(id);
-    }
-
-  // ID is a media element
-  } else {
-    tag = id;
-  }
-
-  // Check for a useable element
-  if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also
-    throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns
-  }
-
-  // Element may have a player attr referring to an already created player instance.
-  // If not, set up a new player and return the instance.
-  return tag['player'] || new vjs.Player(tag, options, ready);
-};
-
-// Extended name, also available externally, window.videojs
-var videojs = vjs;
-window.videojs = window.vjs = vjs;
-
-// CDN Version. Used to target right flash swf.
-vjs.CDN_VERSION = '4.3';
-vjs.ACCESS_PROTOCOL = ('https:' == document.location.protocol ? 'https://' : 'http://');
-
-/**
- * Global Player instance options, surfaced from vjs.Player.prototype.options_
- * vjs.options = vjs.Player.prototype.options_
- * All options should use string keys so they avoid
- * renaming by closure compiler
- * @type {Object}
- */
-vjs.options = {
-  // Default order of fallback technology
-  'techOrder': ['html5','flash'],
-  // techOrder: ['flash','html5'],
-
-  'html5': {},
-  'flash': {},
-
-  // Default of web browser is 300x150. Should rely on source width/height.
-  'width': 300,
-  'height': 150,
-  // defaultVolume: 0.85,
-  'defaultVolume': 0.00, // The freakin seaguls are driving me crazy!
-
-  // Included control sets
-  'children': {
-    'mediaLoader': {},
-    'posterImage': {},
-    'textTrackDisplay': {},
-    'loadingSpinner': {},
-    'bigPlayButton': {},
-    'controlBar': {}
-  },
-
-  // Default message to show when a video cannot be played.
-  'notSupportedMessage': 'Sorry, no compatible source and playback ' +
-      'technology were found for this video. Try using another browser ' +
-      'like <a href="http://bit.ly/ccMUEC">Chrome</a> or download the ' +
-      'latest <a href="http://adobe.ly/mwfN1">Adobe Flash Player</a>.'
-};
-
-// Set CDN Version of swf
-// The added (+) blocks the replace from changing this 4.3 string
-if (vjs.CDN_VERSION !== 'GENERATED'+'_CDN_VSN') {
-  videojs.options['flash']['swf'] = vjs.ACCESS_PROTOCOL + 'vjs.zencdn.net/'+vjs.CDN_VERSION+'/video-js.swf';
-}
-
-/**
- * Global player list
- * @type {Object}
- */
-vjs.players = {};
-/**
- * Core Object/Class for objects that use inheritance + contstructors
- *
- * To create a class that can be subclassed itself, extend the CoreObject class.
- *
- *     var Animal = CoreObject.extend();
- *     var Horse = Animal.extend();
- *
- * The constructor can be defined through the init property of an object argument.
- *
- *     var Animal = CoreObject.extend({
- *       init: function(name, sound){
- *         this.name = name;
- *       }
- *     });
- *
- * Other methods and properties can be added the same way, or directly to the
- * prototype.
- *
- *    var Animal = CoreObject.extend({
- *       init: function(name){
- *         this.name = name;
- *       },
- *       getName: function(){
- *         return this.name;
- *       },
- *       sound: '...'
- *    });
- *
- *    Animal.prototype.makeSound = function(){
- *      alert(this.sound);
- *    };
- *
- * To create an instance of a class, use the create method.
- *
- *    var fluffy = Animal.create('Fluffy');
- *    fluffy.getName(); // -> Fluffy
- *
- * Methods and properties can be overridden in subclasses.
- *
- *     var Horse = Animal.extend({
- *       sound: 'Neighhhhh!'
- *     });
- *
- *     var horsey = Horse.create('Horsey');
- *     horsey.getName(); // -> Horsey
- *     horsey.makeSound(); // -> Alert: Neighhhhh!
- *
- * @class
- * @constructor
- */
-vjs.CoreObject = vjs['CoreObject'] = function(){};
-// Manually exporting vjs['CoreObject'] here for Closure Compiler
-// because of the use of the extend/create class methods
-// If we didn't do this, those functions would get flattend to something like
-// `a = ...` and `this.prototype` would refer to the global object instead of
-// CoreObject
-
-/**
- * Create a new object that inherits from this Object
- *
- *     var Animal = CoreObject.extend();
- *     var Horse = Animal.extend();
- *
- * @param {Object} props Functions and properties to be applied to the
- *                       new object's prototype
- * @return {vjs.CoreObject} An object that inherits from CoreObject
- * @this {*}
- */
-vjs.CoreObject.extend = function(props){
-  var init, subObj;
-
-  props = props || {};
-  // Set up the constructor using the supplied init method
-  // or using the init of the parent object
-  // Make sure to check the unobfuscated version for external libs
-  init = props['init'] || props.init || this.prototype['init'] || this.prototype.init || function(){};
-  // In Resig's simple class inheritance (previously used) the constructor
-  //  is a function that calls `this.init.apply(arguments)`
-  // However that would prevent us from using `ParentObject.call(this);`
-  //  in a Child constuctor because the `this` in `this.init`
-  //  would still refer to the Child and cause an inifinite loop.
-  // We would instead have to do
-  //    `ParentObject.prototype.init.apply(this, argumnents);`
-  //  Bleh. We're not creating a _super() function, so it's good to keep
-  //  the parent constructor reference simple.
-  subObj = function(){
-    init.apply(this, arguments);
-  };
-
-  // Inherit from this object's prototype
-  subObj.prototype = vjs.obj.create(this.prototype);
-  // Reset the constructor property for subObj otherwise
-  // instances of subObj would have the constructor of the parent Object
-  subObj.prototype.constructor = subObj;
-
-  // Make the class extendable
-  subObj.extend = vjs.CoreObject.extend;
-  // Make a function for creating instances
-  subObj.create = vjs.CoreObject.create;
-
-  // Extend subObj's prototype with functions and other properties from props
-  for (var name in props) {
-    if (props.hasOwnProperty(name)) {
-      subObj.prototype[name] = props[name];
-    }
-  }
-
-  return subObj;
-};
-
-/**
- * Create a new instace of this Object class
- *
- *     var myAnimal = Animal.create();
- *
- * @return {vjs.CoreObject} An instance of a CoreObject subclass
- * @this {*}
- */
-vjs.CoreObject.create = function(){
-  // Create a new object that inherits from this object's prototype
-  var inst = vjs.obj.create(this.prototype);
-
-  // Apply this constructor function to the new object
-  this.apply(inst, arguments);
-
-  // Return the new object
-  return inst;
-};
-/**
- * @fileoverview Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)
- * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)
- * This should work very similarly to jQuery's events, however it's based off the book version which isn't as
- * robust as jquery's, so there's probably some differences.
- */
-
-/**
- * Add an event listener to element
- * It stores the handler function in a separate cache object
- * and adds a generic handler to the element's event,
- * along with a unique id (guid) to the element.
- * @param  {Element|Object}   elem Element or object to bind listeners to
- * @param  {String}   type Type of event to bind to.
- * @param  {Function} fn   Event listener.
- * @private
- */
-vjs.on = function(elem, type, fn){
-  var data = vjs.getData(elem);
-
-  // We need a place to store all our handler data
-  if (!data.handlers) data.handlers = {};
-
-  if (!data.handlers[type]) data.handlers[type] = [];
-
-  if (!fn.guid) fn.guid = vjs.guid++;
-
-  data.handlers[type].push(fn);
-
-  if (!data.dispatcher) {
-    data.disabled = false;
-
-    data.dispatcher = function (event){
-
-      if (data.disabled) return;
-      event = vjs.fixEvent(event);
-
-      var handlers = data.handlers[event.type];
-
-      if (handlers) {
-        // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.
-        var handlersCopy = handlers.slice(0);
-
-        for (var m = 0, n = handlersCopy.length; m < n; m++) {
-          if (event.isImmediatePropagationStopped()) {
-            break;
-          } else {
-            handlersCopy[m].call(elem, event);
-          }
-        }
-      }
-    };
-  }
-
-  if (data.handlers[type].length == 1) {
-    if (document.addEventListener) {
-      elem.addEventListener(type, data.dispatcher, false);
-    } else if (document.attachEvent) {
-      elem.attachEvent('on' + type, data.dispatcher);
-    }
-  }
-};
-
-/**
- * Removes event listeners from an element
- * @param  {Element|Object}   elem Object to remove listeners from
- * @param  {String=}   type Type of listener to remove. Don't include to remove all events from element.
- * @param  {Function} fn   Specific listener to remove. Don't incldue to remove listeners for an event type.
- * @private
- */
-vjs.off = function(elem, type, fn) {
-  // Don't want to add a cache object through getData if not needed
-  if (!vjs.hasData(elem)) return;
-
-  var data = vjs.getData(elem);
-
-  // If no events exist, nothing to unbind
-  if (!data.handlers) { return; }
-
-  // Utility function
-  var removeType = function(t){
-     data.handlers[t] = [];
-     vjs.cleanUpEvents(elem,t);
-  };
-
-  // Are we removing all bound events?
-  if (!type) {
-    for (var t in data.handlers) removeType(t);
-    return;
-  }
-
-  var handlers = data.handlers[type];
-
-  // If no handlers exist, nothing to unbind
-  if (!handlers) return;
-
-  // If no listener was provided, remove all listeners for type
-  if (!fn) {
-    removeType(type);
-    return;
-  }
-
-  // We're only removing a single handler
-  if (fn.guid) {
-    for (var n = 0; n < handlers.length; n++) {
-      if (handlers[n].guid === fn.guid) {
-        handlers.splice(n--, 1);
-      }
-    }
-  }
-
-  vjs.cleanUpEvents(elem, type);
-};
-
-/**
- * Clean up the listener cache and dispatchers
- * @param  {Element|Object} elem Element to clean up
- * @param  {String} type Type of event to clean up
- * @private
- */
-vjs.cleanUpEvents = function(elem, type) {
-  var data = vjs.getData(elem);
-
-  // Remove the events of a particular type if there are none left
-  if (data.handlers[type].length === 0) {
-    delete data.handlers[type];
-    // data.handlers[type] = null;
-    // Setting to null was causing an error with data.handlers
-
-    // Remove the meta-handler from the element
-    if (document.removeEventListener) {
-      elem.removeEventListener(type, data.dispatcher, false);
-    } else if (document.detachEvent) {
-      elem.detachEvent('on' + type, data.dispatcher);
-    }
-  }
-
-  // Remove the events object if there are no types left
-  if (vjs.isEmpty(data.handlers)) {
-    delete data.handlers;
-    delete data.dispatcher;
-    delete data.disabled;
-
-    // data.handlers = null;
-    // data.dispatcher = null;
-    // data.disabled = null;
-  }
-
-  // Finally remove the expando if there is no data left
-  if (vjs.isEmpty(data)) {
-    vjs.removeData(elem);
-  }
-};
-
-/**
- * Fix a native event to have standard property values
- * @param  {Object} event Event object to fix
- * @return {Object}
- * @private
- */
-vjs.fixEvent = function(event) {
-
-  function returnTrue() { return true; }
-  function returnFalse() { return false; }
-
-  // Test if fixing up is needed
-  // Used to check if !event.stopPropagation instead of isPropagationStopped
-  // But native events return true for stopPropagation, but don't have
-  // other expected methods like isPropagationStopped. Seems to be a problem
-  // with the Javascript Ninja code. So we're just overriding all events now.
-  if (!event || !event.isPropagationStopped) {
-    var old = event || window.event;
-
-    event = {};
-    // Clone the old object so that we can modify the values event = {};
-    // IE8 Doesn't like when you mess with native event properties
-    // Firefox returns false for event.hasOwnProperty('type') and other props
-    //  which makes copying more difficult.
-    // TODO: Probably best to create a whitelist of event props
-    for (var key in old) {
-      // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y
-      if (key !== 'layerX' && key !== 'layerY') {
-        event[key] = old[key];
-      }
-    }
-
-    // The event occurred on this element
-    if (!event.target) {
-      event.target = event.srcElement || document;
-    }
-
-    // Handle which other element the event is related to
-    event.relatedTarget = event.fromElement === event.target ?
-      event.toElement :
-      event.fromElement;
-
-    // Stop the default browser action
-    event.preventDefault = function () {
-      if (old.preventDefault) {
-        old.preventDefault();
-      }
-      event.returnValue = false;
-      event.isDefaultPrevented = returnTrue;
-    };
-
-    event.isDefaultPrevented = returnFalse;
-
-    // Stop the event from bubbling
-    event.stopPropagation = function () {
-      if (old.stopPropagation) {
-        old.stopPropagation();
-      }
-      event.cancelBubble = true;
-      event.isPropagationStopped = returnTrue;
-    };
-
-    event.isPropagationStopped = returnFalse;
-
-    // Stop the event from bubbling and executing other handlers
-    event.stopImmediatePropagation = function () {
-      if (old.stopImmediatePropagation) {
-        old.stopImmediatePropagation();
-      }
-      event.isImmediatePropagationStopped = returnTrue;
-      event.stopPropagation();
-    };
-
-    event.isImmediatePropagationStopped = returnFalse;
-
-    // Handle mouse position
-    if (event.clientX != null) {
-      var doc = document.documentElement, body = document.body;
-
-      event.pageX = event.clientX +
-        (doc && doc.scrollLeft || body && body.scrollLeft || 0) -
-        (doc && doc.clientLeft || body && body.clientLeft || 0);
-      event.pageY = event.clientY +
-        (doc && doc.scrollTop || body && body.scrollTop || 0) -
-        (doc && doc.clientTop || body && body.clientTop || 0);
-    }
-
-    // Handle key presses
-    event.which = event.charCode || event.keyCode;
-
-    // Fix button for mouse clicks:
-    // 0 == left; 1 == middle; 2 == right
-    if (event.button != null) {
-      event.button = (event.button & 1 ? 0 :
-        (event.button & 4 ? 1 :
-          (event.button & 2 ? 2 : 0)));
-    }
-  }
-
-  // Returns fixed-up instance
-  return event;
-};
-
-/**
- * Trigger an event for an element
- * @param  {Element|Object} elem  Element to trigger an event on
- * @param  {String} event Type of event to trigger
- * @private
- */
-vjs.trigger = function(elem, event) {
-  // Fetches element data and a reference to the parent (for bubbling).
-  // Don't want to add a data object to cache for every parent,
-  // so checking hasData first.
-  var elemData = (vjs.hasData(elem)) ? vjs.getData(elem) : {};
-  var parent = elem.parentNode || elem.ownerDocument;
-      // type = event.type || event,
-      // handler;
-
-  // If an event name was passed as a string, creates an event out of it
-  if (typeof event === 'string') {
-    event = { type:event, target:elem };
-  }
-  // Normalizes the event properties.
-  event = vjs.fixEvent(event);
-
-  // If the passed element has a dispatcher, executes the established handlers.
-  if (elemData.dispatcher) {
-    elemData.dispatcher.call(elem, event);
-  }
-
-  // Unless explicitly stopped or the event does not bubble (e.g. media events)
-    // recursively calls this function to bubble the event up the DOM.
-    if (parent && !event.isPropagationStopped() && event.bubbles !== false) {
-    vjs.trigger(parent, event);
-
-  // If at the top of the DOM, triggers the default action unless disabled.
-  } else if (!parent && !event.isDefaultPrevented()) {
-    var targetData = vjs.getData(event.target);
-
-    // Checks if the target has a default action for this event.
-    if (event.target[event.type]) {
-      // Temporarily disables event dispatching on the target as we have already executed the handler.
-      targetData.disabled = true;
-      // Executes the default action.
-      if (typeof event.target[event.type] === 'function') {
-        event.target[event.type]();
-      }
-      // Re-enables event dispatching.
-      targetData.disabled = false;
-    }
-  }
-
-  // Inform the triggerer if the default was prevented by returning false
-  return !event.isDefaultPrevented();
-  /* Original version of js ninja events wasn't complete.
-   * We've since updated to the latest version, but keeping this around
-   * for now just in case.
-   */
-  // // Added in attion to book. Book code was broke.
-  // event = typeof event === 'object' ?
-  //   event[vjs.expando] ?
-  //     event :
-  //     new vjs.Event(type, event) :
-  //   new vjs.Event(type);
-
-  // event.type = type;
-  // if (handler) {
-  //   handler.call(elem, event);
-  // }
-
-  // // Clean up the event in case it is being reused
-  // event.result = undefined;
-  // event.target = elem;
-};
-
-/**
- * Trigger a listener only once for an event
- * @param  {Element|Object}   elem Element or object to
- * @param  {String}   type
- * @param  {Function} fn
- * @private
- */
-vjs.one = function(elem, type, fn) {
-  var func = function(){
-    vjs.off(elem, type, func);
-    fn.apply(this, arguments);
-  };
-  func.guid = fn.guid = fn.guid || vjs.guid++;
-  vjs.on(elem, type, func);
-};
-var hasOwnProp = Object.prototype.hasOwnProperty;
-
-/**
- * Creates an element and applies properties.
- * @param  {String=} tagName    Name of tag to be created.
- * @param  {Object=} properties Element properties to be applied.
- * @return {Element}
- * @private
- */
-vjs.createEl = function(tagName, properties){
-  var el, propName;
-
-  el = document.createElement(tagName || 'div');
-
-  for (propName in properties){
-    if (hasOwnProp.call(properties, propName)) {
-      //el[propName] = properties[propName];
-      // Not remembering why we were checking for dash
-      // but using setAttribute means you have to use getAttribute
-
-      // The check for dash checks for the aria-* attributes, like aria-label, aria-valuemin.
-      // The additional check for "role" is because the default method for adding attributes does not
-      // add the attribute "role". My guess is because it's not a valid attribute in some namespaces, although
-      // browsers handle the attribute just fine. The W3C allows for aria-* attributes to be used in pre-HTML5 docs.
-      // http://www.w3.org/TR/wai-aria-primer/#ariahtml. Using setAttribute gets around this problem.
-
-       if (propName.indexOf('aria-') !== -1 || propName=='role') {
-         el.setAttribute(propName, properties[propName]);
-       } else {
-         el[propName] = properties[propName];
-       }
-    }
-  }
-  return el;
-};
-
-/**
- * Uppercase the first letter of a string
- * @param  {String} string String to be uppercased
- * @return {String}
- * @private
- */
-vjs.capitalize = function(string){
-  return string.charAt(0).toUpperCase() + string.slice(1);
-};
-
-/**
- * Object functions container
- * @type {Object}
- * @private
- */
-vjs.obj = {};
-
-/**
- * Object.create shim for prototypal inheritance
- *
- * https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/create
- *
- * @function
- * @param  {Object}   obj Object to use as prototype
- * @private
- */
- vjs.obj.create = Object.create || function(obj){
-  //Create a new function called 'F' which is just an empty object.
-  function F() {}
-
-  //the prototype of the 'F' function should point to the
-  //parameter of the anonymous function.
-  F.prototype = obj;
-
-  //create a new constructor function based off of the 'F' function.
-  return new F();
-};
-
-/**
- * Loop through each property in an object and call a function
- * whose arguments are (key,value)
- * @param  {Object}   obj Object of properties
- * @param  {Function} fn  Function to be called on each property.
- * @this {*}
- * @private
- */
-vjs.obj.each = function(obj, fn, context){
-  for (var key in obj) {
-    if (hasOwnProp.call(obj, key)) {
-      fn.call(context || this, key, obj[key]);
-    }
-  }
-};
-
-/**
- * Merge two objects together and return the original.
- * @param  {Object} obj1
- * @param  {Object} obj2
- * @return {Object}
- * @private
- */
-vjs.obj.merge = function(obj1, obj2){
-  if (!obj2) { return obj1; }
-  for (var key in obj2){
-    if (hasOwnProp.call(obj2, key)) {
-      obj1[key] = obj2[key];
-    }
-  }
-  return obj1;
-};
-
-/**
- * Merge two objects, and merge any properties that are objects
- * instead of just overwriting one. Uses to merge options hashes
- * where deeper default settings are important.
- * @param  {Object} obj1 Object to override
- * @param  {Object} obj2 Overriding object
- * @return {Object}      New object. Obj1 and Obj2 will be untouched.
- * @private
- */
-vjs.obj.deepMerge = function(obj1, obj2){
-  var key, val1, val2;
-
-  // make a copy of obj1 so we're not ovewriting original values.
-  // like prototype.options_ and all sub options objects
-  obj1 = vjs.obj.copy(obj1);
-
-  for (key in obj2){
-    if (hasOwnProp.call(obj2, key)) {
-      val1 = obj1[key];
-      val2 = obj2[key];
-
-      // Check if both properties are pure objects and do a deep merge if so
-      if (vjs.obj.isPlain(val1) && vjs.obj.isPlain(val2)) {
-        obj1[key] = vjs.obj.deepMerge(val1, val2);
-      } else {
-        obj1[key] = obj2[key];
-      }
-    }
-  }
-  return obj1;
-};
-
-/**
- * Make a copy of the supplied object
- * @param  {Object} obj Object to copy
- * @return {Object}     Copy of object
- * @private
- */
-vjs.obj.copy = function(obj){
-  return vjs.obj.merge({}, obj);
-};
-
-/**
- * Check if an object is plain, and not a dom node or any object sub-instance
- * @param  {Object} obj Object to check
- * @return {Boolean}     True if plain, false otherwise
- * @private
- */
-vjs.obj.isPlain = function(obj){
-  return !!obj
-    && typeof obj === 'object'
-    && obj.toString() === '[object Object]'
-    && obj.constructor === Object;
-};
-
-/**
- * Bind (a.k.a proxy or Context). A simple method for changing the context of a function
-   It also stores a unique id on the function so it can be easily removed from events
- * @param  {*}   context The object to bind as scope
- * @param  {Function} fn      The function to be bound to a scope
- * @param  {Number=}   uid     An optional unique ID for the function to be set
- * @return {Function}
- * @private
- */
-vjs.bind = function(context, fn, uid) {
-  // Make sure the function has a unique ID
-  if (!fn.guid) { fn.guid = vjs.guid++; }
-
-  // Create the new function that changes the context
-  var ret = function() {
-    return fn.apply(context, arguments);
-  };
-
-  // Allow for the ability to individualize this function
-  // Needed in the case where multiple objects might share the same prototype
-  // IF both items add an event listener with the same function, then you try to remove just one
-  // it will remove both because they both have the same guid.
-  // when using this, you need to use the bind method when you remove the listener as well.
-  // currently used in text tracks
-  ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;
-
-  return ret;
-};
-
-/**
- * Element Data Store. Allows for binding data to an element without putting it directly on the element.
- * Ex. Event listneres are stored here.
- * (also from jsninja.com, slightly modified and updated for closure compiler)
- * @type {Object}
- * @private
- */
-vjs.cache = {};
-
-/**
- * Unique ID for an element or function
- * @type {Number}
- * @private
- */
-vjs.guid = 1;
-
-/**
- * Unique attribute name to store an element's guid in
- * @type {String}
- * @constant
- * @private
- */
-vjs.expando = 'vdata' + (new Date()).getTime();
-
-/**
- * Returns the cache object where data for an element is stored
- * @param  {Element} el Element to store data for.
- * @return {Object}
- * @private
- */
-vjs.getData = function(el){
-  var id = el[vjs.expando];
-  if (!id) {
-    id = el[vjs.expando] = vjs.guid++;
-    vjs.cache[id] = {};
-  }
-  return vjs.cache[id];
-};
-
-/**
- * Returns the cache object where data for an element is stored
- * @param  {Element} el Element to store data for.
- * @return {Object}
- * @private
- */
-vjs.hasData = function(el){
-  var id = el[vjs.expando];
-  return !(!id || vjs.isEmpty(vjs.cache[id]));
-};
-
-/**
- * Delete data for the element from the cache and the guid attr from getElementById
- * @param  {Element} el Remove data for an element
- * @private
- */
-vjs.removeData = function(el){
-  var id = el[vjs.expando];
-  if (!id) { return; }
-  // Remove all stored data
-  // Changed to = null
-  // http://coding.smashingmagazine.com/2012/11/05/writing-fast-memory-efficient-javascript/
-  // vjs.cache[id] = null;
-  delete vjs.cache[id];
-
-  // Remove the expando property from the DOM node
-  try {
-    delete el[vjs.expando];
-  } catch(e) {
-    if (el.removeAttribute) {
-      el.removeAttribute(vjs.expando);
-    } else {
-      // IE doesn't appear to support removeAttribute on the document element
-      el[vjs.expando] = null;
-    }
-  }
-};
-
-/**
- * Check if an object is empty
- * @param  {Object}  obj The object to check for emptiness
- * @return {Boolean}
- * @private
- */
-vjs.isEmpty = function(obj) {
-  for (var prop in obj) {
-    // Inlude null properties as empty.
-    if (obj[prop] !== null) {
-      return false;
-    }
-  }
-  return true;
-};
-
-/**
- * Add a CSS class name to an element
- * @param {Element} element    Element to add class name to
- * @param {String} classToAdd Classname to add
- * @private
- */
-vjs.addClass = function(element, classToAdd){
-  if ((' '+element.className+' ').indexOf(' '+classToAdd+' ') == -1) {
-    element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;
-  }
-};
-
-/**
- * Remove a CSS class name from an element
- * @param {Element} element    Element to remove from class name
- * @param {String} classToAdd Classname to remove
- * @private
- */
-vjs.removeClass = function(element, classToRemove){
-  var classNames, i;
-
-  if (element.className.indexOf(classToRemove) == -1) { return; }
-
-  classNames = element.className.split(' ');
-
-  // no arr.indexOf in ie8, and we don't want to add a big shim
-  for (i = classNames.length - 1; i >= 0; i--) {
-    if (classNames[i] === classToRemove) {
-      classNames.splice(i,1);
-    }
-  }
-
-  element.className = classNames.join(' ');
-};
-
-/**
- * Element for testing browser HTML5 video capabilities
- * @type {Element}
- * @constant
- * @private
- */
-vjs.TEST_VID = vjs.createEl('video');
-
-/**
- * Useragent for browser testing.
- * @type {String}
- * @constant
- * @private
- */
-vjs.USER_AGENT = navigator.userAgent;
-
-/**
- * Device is an iPhone
- * @type {Boolean}
- * @constant
- * @private
- */
-vjs.IS_IPHONE = (/iPhone/i).test(vjs.USER_AGENT);
-vjs.IS_IPAD = (/iPad/i).test(vjs.USER_AGENT);
-vjs.IS_IPOD = (/iPod/i).test(vjs.USER_AGENT);
-vjs.IS_IOS = vjs.IS_IPHONE || vjs.IS_IPAD || vjs.IS_IPOD;
-
-vjs.IOS_VERSION = (function(){
-  var match = vjs.USER_AGENT.match(/OS (\d+)_/i);
-  if (match && match[1]) { return match[1]; }
-})();
-
-vjs.IS_ANDROID = (/Android/i).test(vjs.USER_AGENT);
-vjs.ANDROID_VERSION = (function() {
-  // This matches Android Major.Minor.Patch versions
-  // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned
-  var match = vjs.USER_AGENT.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i),
-    major,
-    minor;
-
-  if (!match) {
-    return null;
-  }
-
-  major = match[1] && parseFloat(match[1]);
-  minor = match[2] && parseFloat(match[2]);
-
-  if (major && minor) {
-    return parseFloat(match[1] + '.' + match[2]);
-  } else if (major) {
-    return major;
-  } else {
-    return null;
-  }
-})();
-// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser
-vjs.IS_OLD_ANDROID = vjs.IS_ANDROID && (/webkit/i).test(vjs.USER_AGENT) && vjs.ANDROID_VERSION < 2.3;
-
-vjs.IS_FIREFOX = (/Firefox/i).test(vjs.USER_AGENT);
-vjs.IS_CHROME = (/Chrome/i).test(vjs.USER_AGENT);
-
-vjs.TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);
-
-/**
- * Get an element's attribute values, as defined on the HTML tag
- * Attributs are not the same as properties. They're defined on the tag
- * or with setAttribute (which shouldn't be used with HTML)
- * This will return true or false for boolean attributes.
- * @param  {Element} tag Element from which to get tag attributes
- * @return {Object}
- * @private
- */
-vjs.getAttributeValues = function(tag){
-  var obj, knownBooleans, attrs, attrName, attrVal;
-
-  obj = {};
-
-  // known boolean attributes
-  // we can check for matching boolean properties, but older browsers
-  // won't know about HTML5 boolean attributes that we still read from
-  knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';
-
-  if (tag && tag.attributes && tag.attributes.length > 0) {
-    attrs = tag.attributes;
-
-    for (var i = attrs.length - 1; i >= 0; i--) {
-      attrName = attrs[i].name;
-      attrVal = attrs[i].value;
-
-      // check for known booleans
-      // the matching element property will return a value for typeof
-      if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {
-        // the value of an included boolean attribute is typically an empty
-        // string ('') which would equal false if we just check for a false value.
-        // we also don't want support bad code like autoplay='false'
-        attrVal = (attrVal !== null) ? true : false;
-      }
-
-      obj[attrName] = attrVal;
-    }
-  }
-
-  return obj;
-};
-
-/**
- * Get the computed style value for an element
- * From http://robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/
- * @param  {Element} el        Element to get style value for
- * @param  {String} strCssRule Style name
- * @return {String}            Style value
- * @private
- */
-vjs.getComputedDimension = function(el, strCssRule){
-  var strValue = '';
-  if(document.defaultView && document.defaultView.getComputedStyle){
-    strValue = document.defaultView.getComputedStyle(el, '').getPropertyValue(strCssRule);
-
-  } else if(el.currentStyle){
-    // IE8 Width/Height support
-    strValue = el['client'+strCssRule.substr(0,1).toUpperCase() + strCssRule.substr(1)] + 'px';
-  }
-  return strValue;
-};
-
-/**
- * Insert an element as the first child node of another
- * @param  {Element} child   Element to insert
- * @param  {[type]} parent Element to insert child into
- * @private
- */
-vjs.insertFirst = function(child, parent){
-  if (parent.firstChild) {
-    parent.insertBefore(child, parent.firstChild);
-  } else {
-    parent.appendChild(child);
-  }
-};
-
-/**
- * Object to hold browser support information
- * @type {Object}
- * @private
- */
-vjs.support = {};
-
-/**
- * Shorthand for document.getElementById()
- * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.
- * @param  {String} id  Element ID
- * @return {Element}    Element with supplied ID
- * @private
- */
-vjs.el = function(id){
-  if (id.indexOf('#') === 0) {
-    id = id.slice(1);
-  }
-
-  return document.getElementById(id);
-};
-
-/**
- * Format seconds as a time string, H:MM:SS or M:SS
- * Supplying a guide (in seconds) will force a number of leading zeros
- * to cover the length of the guide
- * @param  {Number} seconds Number of seconds to be turned into a string
- * @param  {Number} guide   Number (in seconds) to model the string after
- * @return {String}         Time formatted as H:MM:SS or M:SS
- * @private
- */
-vjs.formatTime = function(seconds, guide) {
-  // Default to using seconds as guide
-  guide = guide || seconds;
-  var s = Math.floor(seconds % 60),
-      m = Math.floor(seconds / 60 % 60),
-      h = Math.floor(seconds / 3600),
-      gm = Math.floor(guide / 60 % 60),
-      gh = Math.floor(guide / 3600);
-
-  // handle invalid times
-  if (isNaN(seconds) || seconds === Infinity) {
-    // '-' is false for all relational operators (e.g. <, >=) so this setting
-    // will add the minimum number of fields specified by the guide
-    h = m = s = '-';
-  }
-
-  // Check if we need to show hours
-  h = (h > 0 || gh > 0) ? h + ':' : '';
-
-  // If hours are showing, we may need to add a leading zero.
-  // Always show at least one digit of minutes.
-  m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';
-
-  // Check if leading zero is need for seconds
-  s = (s < 10) ? '0' + s : s;
-
-  return h + m + s;
-};
-
-// Attempt to block the ability to select text while dragging controls
-vjs.blockTextSelection = function(){
-  document.body.focus();
-  document.onselectstart = function () { return false; };
-};
-// Turn off text selection blocking
-vjs.unblockTextSelection = function(){ document.onselectstart = function () { return true; }; };
-
-/**
- * Trim whitespace from the ends of a string.
- * @param  {String} string String to trim
- * @return {String}        Trimmed string
- * @private
- */
-vjs.trim = function(str){
-  return (str+'').replace(/^\s+|\s+$/g, '');
-};
-
-/**
- * Should round off a number to a decimal place
- * @param  {Number} num Number to round
- * @param  {Number} dec Number of decimal places to round to
- * @return {Number}     Rounded number
- * @private
- */
-vjs.round = function(num, dec) {
-  if (!dec) { dec = 0; }
-  return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
-};
-
-/**
- * Should create a fake TimeRange object
- * Mimics an HTML5 time range instance, which has functions that
- * return the start and end times for a range
- * TimeRanges are returned by the buffered() method
- * @param  {Number} start Start time in seconds
- * @param  {Number} end   End time in seconds
- * @return {Object}       Fake TimeRange object
- * @private
- */
-vjs.createTimeRange = function(start, end){
-  return {
-    length: 1,
-    start: function() { return start; },
-    end: function() { return end; }
-  };
-};
-
-/**
- * Simple http request for retrieving external files (e.g. text tracks)
- * @param  {String} url           URL of resource
- * @param  {Function=} onSuccess  Success callback
- * @param  {Function=} onError    Error callback
- * @private
- */
-vjs.get = function(url, onSuccess, onError){
-  var local, request;
-
-  if (typeof XMLHttpRequest === 'undefined') {
-    window.XMLHttpRequest = function () {
-      try { return new window.ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) {}
-      try { return new window.ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch (f) {}
-      try { return new window.ActiveXObject('Msxml2.XMLHTTP'); } catch (g) {}
-      throw new Error('This browser does not support XMLHttpRequest.');
-    };
-  }
-
-  request = new XMLHttpRequest();
-  try {
-    request.open('GET', url);
-  } catch(e) {
-    onError(e);
-  }
-
-  local = (url.indexOf('file:') === 0 || (window.location.href.indexOf('file:') === 0 && url.indexOf('http') === -1));
-
-  request.onreadystatechange = function() {
-    if (request.readyState === 4) {
-      if (request.status === 200 || local && request.status === 0) {
-        onSuccess(request.responseText);
-      } else {
-        if (onError) {
-          onError();
-        }
-      }
-    }
-  };
-
-  try {
-    request.send();
-  } catch(e) {
-    if (onError) {
-      onError(e);
-    }
-  }
-};
-
-/**
- * Add to local storage (may removeable)
- * @private
- */
-vjs.setLocalStorage = function(key, value){
-  try {
-    // IE was throwing errors referencing the var anywhere without this
-    var localStorage = window.localStorage || false;
-    if (!localStorage) { return; }
-    localStorage[key] = value;
-  } catch(e) {
-    if (e.code == 22 || e.code == 1014) { // Webkit == 22 / Firefox == 1014
-      vjs.log('LocalStorage Full (VideoJS)', e);
-    } else {
-      if (e.code == 18) {
-        vjs.log('LocalStorage not allowed (VideoJS)', e);
-      } else {
-        vjs.log('LocalStorage Error (VideoJS)', e);
-      }
-    }
-  }
-};
-
-/**
- * Get abosolute version of relative URL. Used to tell flash correct URL.
- * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue
- * @param  {String} url URL to make absolute
- * @return {String}     Absolute URL
- * @private
- */
-vjs.getAbsoluteURL = function(url){
-
-  // Check if absolute URL
-  if (!url.match(/^https?:\/\//)) {
-    // Convert to absolute URL. Flash hosted off-site needs an absolute URL.
-    url = vjs.createEl('div', {
-      innerHTML: '<a href="'+url+'">x</a>'
-    }).firstChild.href;
-  }
-
-  return url;
-};
-
-// usage: log('inside coolFunc',this,arguments);
-// http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
-vjs.log = function(){
-  vjs.log.history = vjs.log.history || [];   // store logs to an array for reference
-  vjs.log.history.push(arguments);
-  if(window.console){
-    window.console.log(Array.prototype.slice.call(arguments));
-  }
-};
-
-// Offset Left
-// getBoundingClientRect technique from John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/
-vjs.findPosition = function(el) {
-    var box, docEl, body, clientLeft, scrollLeft, left, clientTop, scrollTop, top;
-
-    if (el.getBoundingClientRect && el.parentNode) {
-      box = el.getBoundingClientRect();
-    }
-
-    if (!box) {
-      return {
-        left: 0,
-        top: 0
-      };
-    }
-
-    docEl = document.documentElement;
-    body = document.body;
-
-    clientLeft = docEl.clientLeft || body.clientLeft || 0;
-    scrollLeft = window.pageXOffset || body.scrollLeft;
-    left = box.left + scrollLeft - clientLeft;
-
-    clientTop = docEl.clientTop || body.clientTop || 0;
-    scrollTop = window.pageYOffset || body.scrollTop;
-    top = box.top + scrollTop - clientTop;
-
-    return {
-      left: left,
-      top: top
-    };
-};
-/**
- * @fileoverview Player Component - Base class for all UI objects
- *
- */
-
-/**
- * Base UI Component class
- *
- * Components are embeddable UI objects that are represented by both a
- * javascript object and an element in the DOM. They can be children of other
- * components, and can have many children themselves.
- *
- *     // adding a button to the player
- *     var button = player.addChild('button');
- *     button.el(); // -> button element
- *
- *     <div class="video-js">
- *       <div class="vjs-button">Button</div>
- *     </div>
- *
- * Components are also event emitters.
- *
- *     button.on('click', function(){
- *       console.log('Button Clicked!');
- *     });
- *
- *     button.trigger('customevent');
- *
- * @param {Object} player  Main Player
- * @param {Object=} options
- * @class
- * @constructor
- * @extends vjs.CoreObject
- */
-vjs.Component = vjs.CoreObject.extend({
-  /**
-   * the constructor funciton for the class
-   *
-   * @constructor
-   */
-  init: function(player, options, ready){
-    this.player_ = player;
-
-    // Make a copy of prototype.options_ to protect against overriding global defaults
-    this.options_ = vjs.obj.copy(this.options_);
-
-    // Updated options with supplied options
-    options = this.options(options);
-
-    // Get ID from options, element, or create using player ID and unique ID
-    this.id_ = options['id'] || ((options['el'] && options['el']['id']) ? options['el']['id'] : player.id() + '_component_' + vjs.guid++ );
-
-    this.name_ = options['name'] || null;
-
-    // Create element if one wasn't provided in options
-    this.el_ = options['el'] || this.createEl();
-
-    this.children_ = [];
-    this.childIndex_ = {};
-    this.childNameIndex_ = {};
-
-    // Add any child components in options
-    this.initChildren();
-
-    this.ready(ready);
-    // Don't want to trigger ready here or it will before init is actually
-    // finished for all children that run this constructor
-  }
-});
-
-/**
- * Dispose of the component and all child components
- */
-vjs.Component.prototype.dispose = function(){
-  this.trigger('dispose');
-
-  // Dispose all children.
-  if (this.children_) {
-    for (var i = this.children_.length - 1; i >= 0; i--) {
-      if (this.children_[i].dispose) {
-        this.children_[i].dispose();
-      }
-    }
-  }
-
-  // Delete child references
-  this.children_ = null;
-  this.childIndex_ = null;
-  this.childNameIndex_ = null;
-
-  // Remove all event listeners.
-  this.off();
-
-  // Remove element from DOM
-  if (this.el_.parentNode) {
-    this.el_.parentNode.removeChild(this.el_);
-  }
-
-  vjs.removeData(this.el_);
-  this.el_ = null;
-};
-
-/**
- * Reference to main player instance
- *
- * @type {vjs.Player}
- * @private
- */
-vjs.Component.prototype.player_ = true;
-
-/**
- * Return the component's player
- *
- * @return {vjs.Player}
- */
-vjs.Component.prototype.player = function(){
-  return this.player_;
-};
-
-/**
- * The component's options object
- *
- * @type {Object}
- * @private
- */
-vjs.Component.prototype.options_;
-
-/**
- * Deep merge of options objects
- *
- * Whenever a property is an object on both options objects
- * the two properties will be merged using vjs.obj.deepMerge.
- *
- * This is used for merging options for child components. We
- * want it to be easy to override individual options on a child
- * component without having to rewrite all the other default options.
- *
- *     Parent.prototype.options_ = {
- *       children: {
- *         'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },
- *         'childTwo': {},
- *         'childThree': {}
- *       }
- *     }
- *     newOptions = {
- *       children: {
- *         'childOne': { 'foo': 'baz', 'abc': '123' }
- *         'childTwo': null,
- *         'childFour': {}
- *       }
- *     }
- *
- *     this.options(newOptions);
- *
- * RESULT
- *
- *     {
- *       children: {
- *         'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },
- *         'childTwo': null, // Disabled. Won't be initialized.
- *         'childThree': {},
- *         'childFour': {}
- *       }
- *     }
- *
- * @param  {Object} obj Object whose values will be overwritten
- * @return {Object}     NEW merged object. Does not return obj1.
- */
-vjs.Component.prototype.options = function(obj){
-  if (obj === undefined) return this.options_;
-
-  return this.options_ = vjs.obj.deepMerge(this.options_, obj);
-};
-
-/**
- * The DOM element for the component
- *
- * @type {Element}
- * @private
- */
-vjs.Component.prototype.el_;
-
-/**
- * Create the component's DOM element
- *
- * @param  {String=} tagName  Element's node type. e.g. 'div'
- * @param  {Object=} attributes An object of element attributes that should be set on the element
- * @return {Element}
- */
-vjs.Component.prototype.createEl = function(tagName, attributes){
-  return vjs.createEl(tagName, attributes);
-};
-
-/**
- * Get the component's DOM element
- *
- *     var domEl = myComponent.el();
- *
- * @return {Element}
- */
-vjs.Component.prototype.el = function(){
-  return this.el_;
-};
-
-/**
- * An optional element where, if defined, children will be inserted instead of
- * directly in `el_`
- *
- * @type {Element}
- * @private
- */
-vjs.Component.prototype.contentEl_;
-
-/**
- * Return the component's DOM element for embedding content.
- * Will either be el_ or a new element defined in createEl.
- *
- * @return {Element}
- */
-vjs.Component.prototype.contentEl = function(){
-  return this.contentEl_ || this.el_;
-};
-
-/**
- * The ID for the component
- *
- * @type {String}
- * @private
- */
-vjs.Component.prototype.id_;
-
-/**
- * Get the component's ID
- *
- *     var id = myComponent.id();
- *
- * @return {String}
- */
-vjs.Component.prototype.id = function(){
-  return this.id_;
-};
-
-/**
- * The name for the component. Often used to reference the component.
- *
- * @type {String}
- * @private
- */
-vjs.Component.prototype.name_;
-
-/**
- * Get the component's name. The name is often used to reference the component.
- *
- *     var name = myComponent.name();
- *
- * @return {String}
- */
-vjs.Component.prototype.name = function(){
-  return this.name_;
-};
-
-/**
- * Array of child components
- *
- * @type {Array}
- * @private
- */
-vjs.Component.prototype.children_;
-
-/**
- * Get an array of all child components
- *
- *     var kids = myComponent.children();
- *
- * @return {Array} The children
- */
-vjs.Component.prototype.children = function(){
-  return this.children_;
-};
-
-/**
- * Object of child components by ID
- *
- * @type {Object}
- * @private
- */
-vjs.Component.prototype.childIndex_;
-
-/**
- * Returns a child component with the provided ID
- *
- * @return {vjs.Component}
- */
-vjs.Component.prototype.getChildById = function(id){
-  return this.childIndex_[id];
-};
-
-/**
- * Object of child components by name
- *
- * @type {Object}
- * @private
- */
-vjs.Component.prototype.childNameIndex_;
-
-/**
- * Returns a child component with the provided ID
- *
- * @return {vjs.Component}
- */
-vjs.Component.prototype.getChild = function(name){
-  return this.childNameIndex_[name];
-};
-
-/**
- * Adds a child component inside this component
- *
- *     myComponent.el();
- *     // -> <div class='my-component'></div>
- *     myComonent.children();
- *     // [empty array]
- *
- *     var myButton = myComponent.addChild('MyButton');
- *     // -> <div class='my-component'><div class="my-button">myButton<div></div>
- *     // -> myButton === myComonent.children()[0];
- *
- * Pass in options for child constructors and options for children of the child
- *
- *    var myButton = myComponent.addChild('MyButton', {
- *      text: 'Press Me',
- *      children: {
- *        buttonChildExample: {
- *          buttonChildOption: true
- *        }
- *      }
- *    });
- *
- * @param {String|vjs.Component} child The class name or instance of a child to add
- * @param {Object=} options Options, including options to be passed to children of the child.
- * @return {vjs.Component} The child component (created by this process if a string was used)
- * @suppress {accessControls|checkRegExp|checkTypes|checkVars|const|constantProperty|deprecated|duplicate|es5Strict|fileoverviewTags|globalThis|invalidCasts|missingProperties|nonStandardJsDocs|strictModuleDepCheck|undefinedNames|undefinedVars|unknownDefines|uselessCode|visibility}
- */
-vjs.Component.prototype.addChild = function(child, options){
-  var component, componentClass, componentName, componentId;
-
-  // If string, create new component with options
-  if (typeof child === 'string') {
-
-    componentName = child;
-
-    // Make sure options is at least an empty object to protect against errors
-    options = options || {};
-
-    // Assume name of set is a lowercased name of the UI Class (PlayButton, etc.)
-    componentClass = options['componentClass'] || vjs.capitalize(componentName);
-
-    // Set name through options
-    options['name'] = componentName;
-
-    // Create a new object & element for this controls set
-    // If there's no .player_, this is a player
-    // Closure Compiler throws an 'incomplete alias' warning if we use the vjs variable directly.
-    // Every class should be exported, so this should never be a problem here.
-    component = new window['videojs'][componentClass](this.player_ || this, options);
-
-  // child is a component instance
-  } else {
-    component = child;
-  }
-
-  this.children_.push(component);
-
-  if (typeof component.id === 'function') {
-    this.childIndex_[component.id()] = component;
-  }
-
-  // If a name wasn't used to create the component, check if we can use the
-  // name function of the component
-  componentName = componentName || (component.name && component.name());
-
-  if (componentName) {
-    this.childNameIndex_[componentName] = component;
-  }
-
-  // Add the UI object's element to the container div (box)
-  // Having an element is not required
-  if (typeof component['el'] === 'function' && component['el']()) {
-    this.contentEl().appendChild(component['el']());
-  }
-
-  // Return so it can stored on parent object if desired.
-  return component;
-};
-
-/**
- * Remove a child component from this component's list of children, and the
- * child component's element from this component's element
- *
- * @param  {vjs.Component} component Component to remove
- */
-vjs.Component.prototype.removeChild = function(component){
-  if (typeof component === 'string') {
-    component = this.getChild(component);
-  }
-
-  if (!component || !this.children_) return;
-
-  var childFound = false;
-  for (var i = this.children_.length - 1; i >= 0; i--) {
-    if (this.children_[i] === component) {
-      childFound = true;
-      this.children_.splice(i,1);
-      break;
-    }
-  }
-
-  if (!childFound) return;
-
-  this.childIndex_[component.id] = null;
-  this.childNameIndex_[component.name] = null;
-
-  var compEl = component.el();
-  if (compEl && compEl.parentNode === this.contentEl()) {
-    this.contentEl().removeChild(component.el());
-  }
-};
-
-/**
- * Add and initialize default child components from options
- *
- *     // when an instance of MyComponent is created, all children in options
- *     // will be added to the instance by their name strings and options
- *     MyComponent.prototype.options_.children = {
- *       myChildComponent: {
- *         myChildOption: true
- *       }
- *     }
- */
-vjs.Component.prototype.initChildren = function(){
-  var options = this.options_;
-
-  if (options && options['children']) {
-    var self = this;
-
-    // Loop through components and add them to the player
-    vjs.obj.each(options['children'], function(name, opts){
-      // Allow for disabling default components
-      // e.g. vjs.options['children']['posterImage'] = false
-      if (opts === false) return;
-
-      // Allow waiting to add components until a specific event is called
-      var tempAdd = function(){
-        // Set property name on player. Could cause conflicts with other prop names, but it's worth making refs easy.
-        self[name] = self.addChild(name, opts);
-      };
-
-      if (opts['loadEvent']) {
-        // this.one(opts.loadEvent, tempAdd)
-      } else {
-        tempAdd();
-      }
-    });
-  }
-};
-
-/**
- * Allows sub components to stack CSS class names
- *
- * @return {String} The constructed class name
- */
-vjs.Component.prototype.buildCSSClass = function(){
-    // Child classes can include a function that does:
-    // return 'CLASS NAME' + this._super();
-    return '';
-};
-
-/* Events
-============================================================================= */
-
-/**
- * Add an event listener to this component's element
- *
- *     var myFunc = function(){
- *       var myPlayer = this;
- *       // Do something when the event is fired
- *     };
- *
- *     myPlayer.on("eventName", myFunc);
- *
- * The context will be the component.
- *
- * @param  {String}   type The event type e.g. 'click'
- * @param  {Function} fn   The event listener
- * @return {vjs.Component} self
- */
-vjs.Component.prototype.on = function(type, fn){
-  vjs.on(this.el_, type, vjs.bind(this, fn));
-  return this;
-};
-
-/**
- * Remove an event listener from the component's element
- *
- *     myComponent.off("eventName", myFunc);
- *
- * @param  {String=}   type Event type. Without type it will remove all listeners.
- * @param  {Function=} fn   Event listener. Without fn it will remove all listeners for a type.
- * @return {vjs.Component}
- */
-vjs.Component.prototype.off = function(type, fn){
-  vjs.off(this.el_, type, fn);
-  return this;
-};
-
-/**
- * Add an event listener to be triggered only once and then removed
- *
- * @param  {String}   type Event type
- * @param  {Function} fn   Event listener
- * @return {vjs.Component}
- */
-vjs.Component.prototype.one = function(type, fn) {
-  vjs.one(this.el_, type, vjs.bind(this, fn));
-  return this;
-};
-
-/**
- * Trigger an event on an element
- *
- *     myComponent.trigger('eventName');
- *
- * @param  {String}       type  The event type to trigger, e.g. 'click'
- * @param  {Event|Object} event The event object to be passed to the listener
- * @return {vjs.Component}      self
- */
-vjs.Component.prototype.trigger = function(type, event){
-  vjs.trigger(this.el_, type, event);
-  return this;
-};
-
-/* Ready
-================================================================================ */
-/**
- * Is the component loaded
- * This can mean different things depending on the component.
- *
- * @private
- * @type {Boolean}
- */
-vjs.Component.prototype.isReady_;
-
-/**
- * Trigger ready as soon as initialization is finished
- *
- * Allows for delaying ready. Override on a sub class prototype.
- * If you set this.isReadyOnInitFinish_ it will affect all components.
- * Specially used when waiting for the Flash player to asynchrnously load.
- *
- * @type {Boolean}
- * @private
- */
-vjs.Component.prototype.isReadyOnInitFinish_ = true;
-
-/**
- * List of ready listeners
- *
- * @type {Array}
- * @private
- */
-vjs.Component.prototype.readyQueue_;
-
-/**
- * Bind a listener to the component's ready state
- *
- * Different from event listeners in that if the ready event has already happend
- * it will trigger the function immediately.
- *
- * @param  {Function} fn Ready listener
- * @return {vjs.Component}
- */
-vjs.Component.prototype.ready = function(fn){
-  if (fn) {
-    if (this.isReady_) {
-      fn.call(this);
-    } else {
-      if (this.readyQueue_ === undefined) {
-        this.readyQueue_ = [];
-      }
-      this.readyQueue_.push(fn);
-    }
-  }
-  return this;
-};
-
-/**
- * Trigger the ready listeners
- *
- * @return {vjs.Component}
- */
-vjs.Component.prototype.triggerReady = function(){
-  this.isReady_ = true;
-
-  var readyQueue = this.readyQueue_;
-
-  if (readyQueue && readyQueue.length > 0) {
-
-    for (var i = 0, j = readyQueue.length; i < j; i++) {
-      readyQueue[i].call(this);
-    }
-
-    // Reset Ready Queue
-    this.readyQueue_ = [];
-
-    // Allow for using event listeners also, in case you want to do something everytime a source is ready.
-    this.trigger('ready');
-  }
-};
-
-/* Display
-============================================================================= */
-
-/**
- * Add a CSS class name to the component's element
- *
- * @param {String} classToAdd Classname to add
- * @return {vjs.Component}
- */
-vjs.Component.prototype.addClass = function(classToAdd){
-  vjs.addClass(this.el_, classToAdd);
-  return this;
-};
-
-/**
- * Remove a CSS class name from the component's element
- *
- * @param {String} classToRemove Classname to remove
- * @return {vjs.Component}
- */
-vjs.Component.prototype.removeClass = function(classToRemove){
-  vjs.removeClass(this.el_, classToRemove);
-  return this;
-};
-
-/**
- * Show the component element if hidden
- *
- * @return {vjs.Component}
- */
-vjs.Component.prototype.show = function(){
-  this.el_.style.display = 'block';
-  return this;
-};
-
-/**
- * Hide the component element if hidden
- *
- * @return {vjs.Component}
- */
-vjs.Component.prototype.hide = function(){
-  this.el_.style.display = 'none';
-  return this;
-};
-
-/**
- * Lock an item in its visible state
- * To be used with fadeIn/fadeOut.
- *
- * @return {vjs.Component}
- * @private
- */
-vjs.Component.prototype.lockShowing = function(){
-  this.addClass('vjs-lock-showing');
-  return this;
-};
-
-/**
- * Unlock an item to be hidden
- * To be used with fadeIn/fadeOut.
- *
- * @return {vjs.Component}
- * @private
- */
-vjs.Component.prototype.unlockShowing = function(){
-  this.removeClass('vjs-lock-showing');
-  return this;
-};
-
-/**
- * Disable component by making it unshowable
- */
-vjs.Component.prototype.disable = function(){
-  this.hide();
-  this.show = function(){};
-};
-
-/**
- * Set or get the width of the component (CSS values)
- *
- * Video tag width/height only work in pixels. No percents.
- * But allowing limited percents use. e.g. width() will return number+%, not computed width
- *
- * @param  {Number|String=} num   Optional width number
- * @param  {Boolean} skipListeners Skip the 'resize' event trigger
- * @return {vjs.Component} Returns 'this' if width was set
- * @return {Number|String} Returns the width if nothing was set
- */
-vjs.Component.prototype.width = function(num, skipListeners){
-  return this.dimension('width', num, skipListeners);
-};
-
-/**
- * Get or set the height of the component (CSS values)
- *
- * @param  {Number|String=} num     New component height
- * @param  {Boolean=} skipListeners Skip the resize event trigger
- * @return {vjs.Component} The component if the height was set
- * @return {Number|String} The height if it wasn't set
- */
-vjs.Component.prototype.height = function(num, skipListeners){
-  return this.dimension('height', num, skipListeners);
-};
-
-/**
- * Set both width and height at the same time
- *
- * @param  {Number|String} width
- * @param  {Number|String} height
- * @return {vjs.Component} The component
- */
-vjs.Component.prototype.dimensions = function(width, height){
-  // Skip resize listeners on width for optimization
-  return this.width(width, true).height(height);
-};
-
-/**
- * Get or set width or height
- *
- * This is the shared code for the width() and height() methods.
- * All for an integer, integer + 'px' or integer + '%';
- *
- * Known issue: Hidden elements officially have a width of 0. We're defaulting
- * to the style.width value and falling back to computedStyle which has the
- * hidden element issue. Info, but probably not an efficient fix:
- * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/
- *
- * @param  {String} widthOrHeight  'width' or 'height'
- * @param  {Number|String=} num     New dimension
- * @param  {Boolean=} skipListeners Skip resize event trigger
- * @return {vjs.Component} The component if a dimension was set
- * @return {Number|String} The dimension if nothing was set
- * @private
- */
-vjs.Component.prototype.dimension = function(widthOrHeight, num, skipListeners){
-  if (num !== undefined) {
-
-    // Check if using css width/height (% or px) and adjust
-    if ((''+num).indexOf('%') !== -1 || (''+num).indexOf('px') !== -1) {
-      this.el_.style[widthOrHeight] = num;
-    } else if (num === 'auto') {
-      this.el_.style[widthOrHeight] = '';
-    } else {
-      this.el_.style[widthOrHeight] = num+'px';
-    }
-
-    // skipListeners allows us to avoid triggering the resize event when setting both width and height
-    if (!skipListeners) { this.trigger('resize'); }
-
-    // Return component
-    return this;
-  }
-
-  // Not setting a value, so getting it
-  // Make sure element exists
-  if (!this.el_) return 0;
-
-  // Get dimension value from style
-  var val = this.el_.style[widthOrHeight];
-  var pxIndex = val.indexOf('px');
-  if (pxIndex !== -1) {
-    // Return the pixel value with no 'px'
-    return parseInt(val.slice(0,pxIndex), 10);
-
-  // No px so using % or no style was set, so falling back to offsetWidth/height
-  // If component has display:none, offset will return 0
-  // TODO: handle display:none and no dimension style using px
-  } else {
-
-    return parseInt(this.el_['offset'+vjs.capitalize(widthOrHeight)], 10);
-
-    // ComputedStyle version.
-    // Only difference is if the element is hidden it will return
-    // the percent value (e.g. '100%'')
-    // instead of zero like offsetWidth returns.
-    // var val = vjs.getComputedStyleValue(this.el_, widthOrHeight);
-    // var pxIndex = val.indexOf('px');
-
-    // if (pxIndex !== -1) {
-    //   return val.slice(0, pxIndex);
-    // } else {
-    //   return val;
-    // }
-  }
-};
-
-/**
- * Fired when the width and/or height of the component changes
- * @event resize
- */
-vjs.Component.prototype.onResize;
-
-/**
- * Emit 'tap' events when touch events are supported
- *
- * This is used to support toggling the controls through a tap on the video.
- *
- * We're requireing them to be enabled because otherwise every component would
- * have this extra overhead unnecessarily, on mobile devices where extra
- * overhead is especially bad.
- * @private
- */
-vjs.Component.prototype.emitTapEvents = function(){
-  var touchStart, touchTime, couldBeTap, noTap;
-
-  // Track the start time so we can determine how long the touch lasted
-  touchStart = 0;
-
-  this.on('touchstart', function(event) {
-    // Record start time so we can detect a tap vs. "touch and hold"
-    touchStart = new Date().getTime();
-    // Reset couldBeTap tracking
-    couldBeTap = true;
-  });
-
-  noTap = function(){
-    couldBeTap = false;
-  };
-  // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s
-  this.on('touchmove', noTap);
-  this.on('touchleave', noTap);
-  this.on('touchcancel', noTap);
-
-  // When the touch ends, measure how long it took and trigger the appropriate
-  // event
-  this.on('touchend', function() {
-    // Proceed only if the touchmove/leave/cancel event didn't happen
-    if (couldBeTap === true) {
-      // Measure how long the touch lasted
-      touchTime = new Date().getTime() - touchStart;
-      // The touch needs to be quick in order to consider it a tap
-      if (touchTime < 250) {
-        this.trigger('tap');
-        // It may be good to copy the touchend event object and change the
-        // type to tap, if the other event properties aren't exact after
-        // vjs.fixEvent runs (e.g. event.target)
-      }
-    }
-  });
-};
-/* Button - Base class for all buttons
-================================================================================ */
-/**
- * Base class for all buttons
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @class
- * @constructor
- */
-vjs.Button = vjs.Component.extend({
-  /**
-   * @constructor
-   * @inheritDoc
-   */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-
-    var touchstart = false;
-    this.on('touchstart', function(event) {
-      // Stop click and other mouse events from triggering also
-      event.preventDefault();
-      touchstart = true;
-    });
-    this.on('touchmove', function() {
-      touchstart = false;
-    });
-    var self = this;
-    this.on('touchend', function(event) {
-      if (touchstart) {
-        self.onClick(event);
-      }
-      event.preventDefault();
-    });
-
-    this.on('click', this.onClick);
-    this.on('focus', this.onFocus);
-    this.on('blur', this.onBlur);
-  }
-});
-
-vjs.Button.prototype.createEl = function(type, props){
-  // Add standard Aria and Tabindex info
-  props = vjs.obj.merge({
-    className: this.buildCSSClass(),
-    innerHTML: '<div class="vjs-control-content"><span class="vjs-control-text">' + (this.buttonText || 'Need Text') + '</span></div>',
-    role: 'button',
-    'aria-live': 'polite', // let the screen reader user know that the text of the button may change
-    tabIndex: 0
-  }, props);
-
-  return vjs.Component.prototype.createEl.call(this, type, props);
-};
-
-vjs.Button.prototype.buildCSSClass = function(){
-  // TODO: Change vjs-control to vjs-button?
-  return 'vjs-control ' + vjs.Component.prototype.buildCSSClass.call(this);
-};
-
-  // Click - Override with specific functionality for button
-vjs.Button.prototype.onClick = function(){};
-
-  // Focus - Add keyboard functionality to element
-vjs.Button.prototype.onFocus = function(){
-  vjs.on(document, 'keyup', vjs.bind(this, this.onKeyPress));
-};
-
-  // KeyPress (document level) - Trigger click when keys are pressed
-vjs.Button.prototype.onKeyPress = function(event){
-  // Check for space bar (32) or enter (13) keys
-  if (event.which == 32 || event.which == 13) {
-    event.preventDefault();
-    this.onClick();
-  }
-};
-
-// Blur - Remove keyboard triggers
-vjs.Button.prototype.onBlur = function(){
-  vjs.off(document, 'keyup', vjs.bind(this, this.onKeyPress));
-};
-/* Slider
-================================================================================ */
-/**
- * The base functionality for sliders like the volume bar and seek bar
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.Slider = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-
-    // Set property names to bar and handle to match with the child Slider class is looking for
-    this.bar = this.getChild(this.options_['barName']);
-    this.handle = this.getChild(this.options_['handleName']);
-
-    player.on(this.playerEvent, vjs.bind(this, this.update));
-
-    this.on('mousedown', this.onMouseDown);
-    this.on('touchstart', this.onMouseDown);
-    this.on('focus', this.onFocus);
-    this.on('blur', this.onBlur);
-    this.on('click', this.onClick);
-
-    this.player_.on('controlsvisible', vjs.bind(this, this.update));
-
-    // This is actually to fix the volume handle position. http://twitter.com/#!/gerritvanaaken/status/159046254519787520
-    // this.player_.one('timeupdate', vjs.bind(this, this.update));
-
-    player.ready(vjs.bind(this, this.update));
-
-    this.boundEvents = {};
-  }
-});
-
-vjs.Slider.prototype.createEl = function(type, props) {
-  props = props || {};
-  // Add the slider element class to all sub classes
-  props.className = props.className + ' vjs-slider';
-  props = vjs.obj.merge({
-    role: 'slider',
-    'aria-valuenow': 0,
-    'aria-valuemin': 0,
-    'aria-valuemax': 100,
-    tabIndex: 0
-  }, props);
-
-  return vjs.Component.prototype.createEl.call(this, type, props);
-};
-
-vjs.Slider.prototype.onMouseDown = function(event){
-  event.preventDefault();
-  vjs.blockTextSelection();
-
-  this.boundEvents.move = vjs.bind(this, this.onMouseMove);
-  this.boundEvents.end = vjs.bind(this, this.onMouseUp);
-
-  vjs.on(document, 'mousemove', this.boundEvents.move);
-  vjs.on(document, 'mouseup', this.boundEvents.end);
-  vjs.on(document, 'touchmove', this.boundEvents.move);
-  vjs.on(document, 'touchend', this.boundEvents.end);
-
-  this.onMouseMove(event);
-};
-
-vjs.Slider.prototype.onMouseUp = function() {
-  vjs.unblockTextSelection();
-  vjs.off(document, 'mousemove', this.boundEvents.move, false);
-  vjs.off(document, 'mouseup', this.boundEvents.end, false);
-  vjs.off(document, 'touchmove', this.boundEvents.move, false);
-  vjs.off(document, 'touchend', this.boundEvents.end, false);
-
-  this.update();
-};
-
-vjs.Slider.prototype.update = function(){
-  // In VolumeBar init we have a setTimeout for update that pops and update to the end of the
-  // execution stack. The player is destroyed before then update will cause an error
-  if (!this.el_) return;
-
-  // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.
-  // On HTML5 browsers scrubbing is really smooth, but some flash players are slow, so we might want to utilize this later.
-  // var progress =  (this.player_.scrubbing) ? this.player_.getCache().currentTime / this.player_.duration() : this.player_.currentTime() / this.player_.duration();
-
-  var barProgress,
-      progress = this.getPercent(),
-      handle = this.handle,
-      bar = this.bar;
-
-  // Protect against no duration and other division issues
-  if (isNaN(progress)) { progress = 0; }
-
-  barProgress = progress;
-
-  // If there is a handle, we need to account for the handle in our calculation for progress bar
-  // so that it doesn't fall short of or extend past the handle.
-  if (handle) {
-
-    var box = this.el_,
-        boxWidth = box.offsetWidth,
-
-        handleWidth = handle.el().offsetWidth,
-
-        // The width of the handle in percent of the containing box
-        // In IE, widths may not be ready yet causing NaN
-        handlePercent = (handleWidth) ? handleWidth / boxWidth : 0,
-
-        // Get the adjusted size of the box, considering that the handle's center never touches the left or right side.
-        // There is a margin of half the handle's width on both sides.
-        boxAdjustedPercent = 1 - handlePercent,
-
-        // Adjust the progress that we'll use to set widths to the new adjusted box width
-        adjustedProgress = progress * boxAdjustedPercent;
-
-    // The bar does reach the left side, so we need to account for this in the bar's width
-    barProgress = adjustedProgress + (handlePercent / 2);
-
-    // Move the handle from the left based on the adjected progress
-    handle.el().style.left = vjs.round(adjustedProgress * 100, 2) + '%';
-  }
-
-  // Set the new bar width
-  bar.el().style.width = vjs.round(barProgress * 100, 2) + '%';
-};
-
-vjs.Slider.prototype.calculateDistance = function(event){
-  var el, box, boxX, boxY, boxW, boxH, handle, pageX, pageY;
-
-  el = this.el_;
-  box = vjs.findPosition(el);
-  boxW = boxH = el.offsetWidth;
-  handle = this.handle;
-
-  if (this.options_.vertical) {
-    boxY = box.top;
-
-    if (event.changedTouches) {
-      pageY = event.changedTouches[0].pageY;
-    } else {
-      pageY = event.pageY;
-    }
-
-    if (handle) {
-      var handleH = handle.el().offsetHeight;
-      // Adjusted X and Width, so handle doesn't go outside the bar
-      boxY = boxY + (handleH / 2);
-      boxH = boxH - handleH;
-    }
-
-    // Percent that the click is through the adjusted area
-    return Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));
-
-  } else {
-    boxX = box.left;
-
-    if (event.changedTouches) {
-      pageX = event.changedTouches[0].pageX;
-    } else {
-      pageX = event.pageX;
-    }
-
-    if (handle) {
-      var handleW = handle.el().offsetWidth;
-
-      // Adjusted X and Width, so handle doesn't go outside the bar
-      boxX = boxX + (handleW / 2);
-      boxW = boxW - handleW;
-    }
-
-    // Percent that the click is through the adjusted area
-    return Math.max(0, Math.min(1, (pageX - boxX) / boxW));
-  }
-};
-
-vjs.Slider.prototype.onFocus = function(){
-  vjs.on(document, 'keyup', vjs.bind(this, this.onKeyPress));
-};
-
-vjs.Slider.prototype.onKeyPress = function(event){
-  if (event.which == 37) { // Left Arrow
-    event.preventDefault();
-    this.stepBack();
-  } else if (event.which == 39) { // Right Arrow
-    event.preventDefault();
-    this.stepForward();
-  }
-};
-
-vjs.Slider.prototype.onBlur = function(){
-  vjs.off(document, 'keyup', vjs.bind(this, this.onKeyPress));
-};
-
-/**
- * Listener for click events on slider, used to prevent clicks
- *   from bubbling up to parent elements like button menus.
- * @param  {Object} event Event object
- */
-vjs.Slider.prototype.onClick = function(event){
-  event.stopImmediatePropagation();
-  event.preventDefault();
-};
-
-/**
- * SeekBar Behavior includes play progress bar, and seek handle
- * Needed so it can determine seek position based on handle position/size
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.SliderHandle = vjs.Component.extend();
-
-/**
- * Default value of the slider
- *
- * @type {Number}
- * @private
- */
-vjs.SliderHandle.prototype.defaultValue = 0;
-
-/** @inheritDoc */
-vjs.SliderHandle.prototype.createEl = function(type, props) {
-  props = props || {};
-  // Add the slider element class to all sub classes
-  props.className = props.className + ' vjs-slider-handle';
-  props = vjs.obj.merge({
-    innerHTML: '<span class="vjs-control-text">'+this.defaultValue+'</span>'
-  }, props);
-
-  return vjs.Component.prototype.createEl.call(this, 'div', props);
-};
-/* Menu
-================================================================================ */
-/**
- * The Menu component is used to build pop up menus, including subtitle and
- * captions selection menus.
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @class
- * @constructor
- */
-vjs.Menu = vjs.Component.extend();
-
-/**
- * Add a menu item to the menu
- * @param {Object|String} component Component or component type to add
- */
-vjs.Menu.prototype.addItem = function(component){
-  this.addChild(component);
-  component.on('click', vjs.bind(this, function(){
-    this.unlockShowing();
-  }));
-};
-
-/** @inheritDoc */
-vjs.Menu.prototype.createEl = function(){
-  var contentElType = this.options().contentElType || 'ul';
-  this.contentEl_ = vjs.createEl(contentElType, {
-    className: 'vjs-menu-content'
-  });
-  var el = vjs.Component.prototype.createEl.call(this, 'div', {
-    append: this.contentEl_,
-    className: 'vjs-menu'
-  });
-  el.appendChild(this.contentEl_);
-
-  // Prevent clicks from bubbling up. Needed for Menu Buttons,
-  // where a click on the parent is significant
-  vjs.on(el, 'click', function(event){
-    event.preventDefault();
-    event.stopImmediatePropagation();
-  });
-
-  return el;
-};
-
-/**
- * The component for a menu item. `<li>`
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @class
- * @constructor
- */
-vjs.MenuItem = vjs.Button.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Button.call(this, player, options);
-    this.selected(options['selected']);
-  }
-});
-
-/** @inheritDoc */
-vjs.MenuItem.prototype.createEl = function(type, props){
-  return vjs.Button.prototype.createEl.call(this, 'li', vjs.obj.merge({
-    className: 'vjs-menu-item',
-    innerHTML: this.options_['label']
-  }, props));
-};
-
-/**
- * Handle a click on the menu item, and set it to selected
- */
-vjs.MenuItem.prototype.onClick = function(){
-  this.selected(true);
-};
-
-/**
- * Set this menu item as selected or not
- * @param  {Boolean} selected
- */
-vjs.MenuItem.prototype.selected = function(selected){
-  if (selected) {
-    this.addClass('vjs-selected');
-    this.el_.setAttribute('aria-selected',true);
-  } else {
-    this.removeClass('vjs-selected');
-    this.el_.setAttribute('aria-selected',false);
-  }
-};
-
-
-/**
- * A button class with a popup menu
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.MenuButton = vjs.Button.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Button.call(this, player, options);
-
-    this.menu = this.createMenu();
-
-    // Add list to element
-    this.addChild(this.menu);
-
-    // Automatically hide empty menu buttons
-    if (this.items && this.items.length === 0) {
-      this.hide();
-    }
-
-    this.on('keyup', this.onKeyPress);
-    this.el_.setAttribute('aria-haspopup', true);
-    this.el_.setAttribute('role', 'button');
-  }
-});
-
-/**
- * Track the state of the menu button
- * @type {Boolean}
- * @private
- */
-vjs.MenuButton.prototype.buttonPressed_ = false;
-
-vjs.MenuButton.prototype.createMenu = function(){
-  var menu = new vjs.Menu(this.player_);
-
-  // Add a title list item to the top
-  if (this.options().title) {
-    menu.el().appendChild(vjs.createEl('li', {
-      className: 'vjs-menu-title',
-      innerHTML: vjs.capitalize(this.kind_),
-      tabindex: -1
-    }));
-  }
-
-  this.items = this['createItems']();
-
-  if (this.items) {
-    // Add menu items to the menu
-    for (var i = 0; i < this.items.length; i++) {
-      menu.addItem(this.items[i]);
-    }
-  }
-
-  return menu;
-};
-
-/**
- * Create the list of menu items. Specific to each subclass.
- */
-vjs.MenuButton.prototype.createItems = function(){};
-
-/** @inheritDoc */
-vjs.MenuButton.prototype.buildCSSClass = function(){
-  return this.className + ' vjs-menu-button ' + vjs.Button.prototype.buildCSSClass.call(this);
-};
-
-// Focus - Add keyboard functionality to element
-// This function is not needed anymore. Instead, the keyboard functionality is handled by
-// treating the button as triggering a submenu. When the button is pressed, the submenu
-// appears. Pressing the button again makes the submenu disappear.
-vjs.MenuButton.prototype.onFocus = function(){};
-// Can't turn off list display that we turned on with focus, because list would go away.
-vjs.MenuButton.prototype.onBlur = function(){};
-
-vjs.MenuButton.prototype.onClick = function(){
-  // When you click the button it adds focus, which will show the menu indefinitely.
-  // So we'll remove focus when the mouse leaves the button.
-  // Focus is needed for tab navigation.
-  this.one('mouseout', vjs.bind(this, function(){
-    this.menu.unlockShowing();
-    this.el_.blur();
-  }));
-  if (this.buttonPressed_){
-    this.unpressButton();
-  } else {
-    this.pressButton();
-  }
-};
-
-vjs.MenuButton.prototype.onKeyPress = function(event){
-  event.preventDefault();
-
-  // Check for space bar (32) or enter (13) keys
-  if (event.which == 32 || event.which == 13) {
-    if (this.buttonPressed_){
-      this.unpressButton();
-    } else {
-      this.pressButton();
-    }
-  // Check for escape (27) key
-  } else if (event.which == 27){
-    if (this.buttonPressed_){
-      this.unpressButton();
-    }
-  }
-};
-
-vjs.MenuButton.prototype.pressButton = function(){
-  this.buttonPressed_ = true;
-  this.menu.lockShowing();
-  this.el_.setAttribute('aria-pressed', true);
-  if (this.items && this.items.length > 0) {
-    this.items[0].el().focus(); // set the focus to the title of the submenu
-  }
-};
-
-vjs.MenuButton.prototype.unpressButton = function(){
-  this.buttonPressed_ = false;
-  this.menu.unlockShowing();
-  this.el_.setAttribute('aria-pressed', false);
-};
-
-/**
- * An instance of the `vjs.Player` class is created when any of the Video.js setup methods are used to initialize a video.
- *
- * ```js
- * var myPlayer = videojs('example_video_1');
- * ```
- *
- * In the follwing example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.
- *
- * ```html
- * <video id="example_video_1" data-setup='{}' controls>
- *   <source src="my-source.mp4" type="video/mp4">
- * </video>
- * ```
- *
- * After an instance has been created it can be accessed globally using `Video('example_video_1')`.
- *
- * @class
- * @extends vjs.Component
- */
-vjs.Player = vjs.Component.extend({
-
-  /**
-   * player's constructor function
-   *
-   * @constructs
-   * @method init
-   * @param {Element} tag        The original video tag used for configuring options
-   * @param {Object=} options    Player options
-   * @param {Function=} ready    Ready callback function
-   */
-  init: function(tag, options, ready){
-    this.tag = tag; // Store the original tag used to set options
-
-    // Set Options
-    // The options argument overrides options set in the video tag
-    // which overrides globally set options.
-    // This latter part coincides with the load order
-    // (tag must exist before Player)
-    options = vjs.obj.merge(this.getTagSettings(tag), options);
-
-    // Cache for video property values.
-    this.cache_ = {};
-
-    // Set poster
-    this.poster_ = options['poster'];
-    // Set controls
-    this.controls_ = options['controls'];
-    // Original tag settings stored in options
-    // now remove immediately so native controls don't flash.
-    // May be turned back on by HTML5 tech if nativeControlsForTouch is true
-    tag.controls = false;
-
-    // Run base component initializing with new options.
-    // Builds the element through createEl()
-    // Inits and embeds any child components in opts
-    vjs.Component.call(this, this, options, ready);
-
-    // Update controls className. Can't do this when the controls are initially
-    // set because the element doesn't exist yet.
-    if (this.controls()) {
-      this.addClass('vjs-controls-enabled');
-    } else {
-      this.addClass('vjs-controls-disabled');
-    }
-
-    // TODO: Make this smarter. Toggle user state between touching/mousing
-    // using events, since devices can have both touch and mouse events.
-    // if (vjs.TOUCH_ENABLED) {
-    //   this.addClass('vjs-touch-enabled');
-    // }
-
-    // Firstplay event implimentation. Not sold on the event yet.
-    // Could probably just check currentTime==0?
-    this.one('play', function(e){
-      var fpEvent = { type: 'firstplay', target: this.el_ };
-      // Using vjs.trigger so we can check if default was prevented
-      var keepGoing = vjs.trigger(this.el_, fpEvent);
-
-      if (!keepGoing) {
-        e.preventDefault();
-        e.stopPropagation();
-        e.stopImmediatePropagation();
-      }
-    });
-
-    this.on('ended', this.onEnded);
-    this.on('play', this.onPlay);
-    this.on('firstplay', this.onFirstPlay);
-    this.on('pause', this.onPause);
-    this.on('progress', this.onProgress);
-    this.on('durationchange', this.onDurationChange);
-    this.on('error', this.onError);
-    this.on('fullscreenchange', this.onFullscreenChange);
-
-    // Make player easily findable by ID
-    vjs.players[this.id_] = this;
-
-    if (options['plugins']) {
-      vjs.obj.each(options['plugins'], function(key, val){
-        this[key](val);
-      }, this);
-    }
-
-    this.listenForUserActivity();
-  }
-});
-
-/**
- * Player instance options, surfaced using vjs.options
- * vjs.options = vjs.Player.prototype.options_
- * Make changes in vjs.options, not here.
- * All options should use string keys so they avoid
- * renaming by closure compiler
- * @type {Object}
- * @private
- */
-vjs.Player.prototype.options_ = vjs.options;
-
-/**
- * Destroys the video player and does any necessary cleanup
- *
- *     myPlayer.dispose();
- *
- * This is especially helpful if you are dynamically adding and removing videos
- * to/from the DOM.
- */
-vjs.Player.prototype.dispose = function(){
-  this.trigger('dispose');
-  // prevent dispose from being called twice
-  this.off('dispose');
-
-  // Kill reference to this player
-  vjs.players[this.id_] = null;
-  if (this.tag && this.tag['player']) { this.tag['player'] = null; }
-  if (this.el_ && this.el_['player']) { this.el_['player'] = null; }
-
-  // Ensure that tracking progress and time progress will stop and plater deleted
-  this.stopTrackingProgress();
-  this.stopTrackingCurrentTime();
-
-  if (this.tech) { this.tech.dispose(); }
-
-  // Component dispose
-  vjs.Component.prototype.dispose.call(this);
-};
-
-vjs.Player.prototype.getTagSettings = function(tag){
-  var options = {
-    'sources': [],
-    'tracks': []
-  };
-
-  vjs.obj.merge(options, vjs.getAttributeValues(tag));
-
-  // Get tag children settings
-  if (tag.hasChildNodes()) {
-    var children, child, childName, i, j;
-
-    children = tag.childNodes;
-
-    for (i=0,j=children.length; i<j; i++) {
-      child = children[i];
-      // Change case needed: http://ejohn.org/blog/nodename-case-sensitivity/
-      childName = child.nodeName.toLowerCase();
-      if (childName === 'source') {
-        options['sources'].push(vjs.getAttributeValues(child));
-      } else if (childName === 'track') {
-        options['tracks'].push(vjs.getAttributeValues(child));
-      }
-    }
-  }
-
-  return options;
-};
-
-vjs.Player.prototype.createEl = function(){
-  var el = this.el_ = vjs.Component.prototype.createEl.call(this, 'div');
-  var tag = this.tag;
-
-  // Remove width/height attrs from tag so CSS can make it 100% width/height
-  tag.removeAttribute('width');
-  tag.removeAttribute('height');
-  // Empty video tag tracks so the built-in player doesn't use them also.
-  // This may not be fast enough to stop HTML5 browsers from reading the tags
-  // so we'll need to turn off any default tracks if we're manually doing
-  // captions and subtitles. videoElement.textTracks
-  if (tag.hasChildNodes()) {
-    var nodes, nodesLength, i, node, nodeName, removeNodes;
-
-    nodes = tag.childNodes;
-    nodesLength = nodes.length;
-    removeNodes = [];
-
-    while (nodesLength--) {
-      node = nodes[nodesLength];
-      nodeName = node.nodeName.toLowerCase();
-      if (nodeName === 'track') {
-        removeNodes.push(node);
-      }
-    }
-
-    for (i=0; i<removeNodes.length; i++) {
-      tag.removeChild(removeNodes[i]);
-    }
-  }
-
-  // Make sure tag ID exists
-  tag.id = tag.id || 'vjs_video_' + vjs.guid++;
-
-  // Give video tag ID and class to player div
-  // ID will now reference player box, not the video tag
-  el.id = tag.id;
-  el.className = tag.className;
-
-  // Update tag id/class for use as HTML5 playback tech
-  // Might think we should do this after embedding in container so .vjs-tech class
-  // doesn't flash 100% width/height, but class only applies with .video-js parent
-  tag.id += '_html5_api';
-  tag.className = 'vjs-tech';
-
-  // Make player findable on elements
-  tag['player'] = el['player'] = this;
-  // Default state of video is paused
-  this.addClass('vjs-paused');
-
-  // Make box use width/height of tag, or rely on default implementation
-  // Enforce with CSS since width/height attrs don't work on divs
-  this.width(this.options_['width'], true); // (true) Skip resize listener on load
-  this.height(this.options_['height'], true);
-
-  // Wrap video tag in div (el/box) container
-  if (tag.parentNode) {
-    tag.parentNode.insertBefore(el, tag);
-  }
-  vjs.insertFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.
-
-  return el;
-};
-
-// /* Media Technology (tech)
-// ================================================================================ */
-// Load/Create an instance of playback technlogy including element and API methods
-// And append playback element in player div.
-vjs.Player.prototype.loadTech = function(techName, source){
-
-  // Pause and remove current playback technology
-  if (this.tech) {
-    this.unloadTech();
-
-  // if this is the first time loading, HTML5 tag will exist but won't be initialized
-  // so we need to remove it if we're not loading HTML5
-  } else if (techName !== 'Html5' && this.tag) {
-    vjs.Html5.disposeMediaElement(this.tag);
-    this.tag = null;
-  }
-
-  this.techName = techName;
-
-  // Turn off API access because we're loading a new tech that might load asynchronously
-  this.isReady_ = false;
-
-  var techReady = function(){
-    this.player_.triggerReady();
-
-    // Manually track progress in cases where the browser/flash player doesn't report it.
-    if (!this.features['progressEvents']) {
-      this.player_.manualProgressOn();
-    }
-
-    // Manually track timeudpates in cases where the browser/flash player doesn't report it.
-    if (!this.features['timeupdateEvents']) {
-      this.player_.manualTimeUpdatesOn();
-    }
-  };
-
-  // Grab tech-specific options from player options and add source and parent element to use.
-  var techOptions = vjs.obj.merge({ 'source': source, 'parentEl': this.el_ }, this.options_[techName.toLowerCase()]);
-
-  if (source) {
-    if (source.src == this.cache_.src && this.cache_.currentTime > 0) {
-      techOptions['startTime'] = this.cache_.currentTime;
-    }
-
-    this.cache_.src = source.src;
-  }
-
-  // Initialize tech instance
-  this.tech = new window['videojs'][techName](this, techOptions);
-
-  this.tech.ready(techReady);
-};
-
-vjs.Player.prototype.unloadTech = function(){
-  this.isReady_ = false;
-  this.tech.dispose();
-
-  // Turn off any manual progress or timeupdate tracking
-  if (this.manualProgress) { this.manualProgressOff(); }
-
-  if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }
-
-  this.tech = false;
-};
-
-// There's many issues around changing the size of a Flash (or other plugin) object.
-// First is a plugin reload issue in Firefox that has been around for 11 years: https://bugzilla.mozilla.org/show_bug.cgi?id=90268
-// Then with the new fullscreen API, Mozilla and webkit browsers will reload the flash object after going to fullscreen.
-// To get around this, we're unloading the tech, caching source and currentTime values, and reloading the tech once the plugin is resized.
-// reloadTech: function(betweenFn){
-//   vjs.log('unloadingTech')
-//   this.unloadTech();
-//   vjs.log('unloadedTech')
-//   if (betweenFn) { betweenFn.call(); }
-//   vjs.log('LoadingTech')
-//   this.loadTech(this.techName, { src: this.cache_.src })
-//   vjs.log('loadedTech')
-// },
-
-/* Fallbacks for unsupported event types
-================================================================================ */
-// Manually trigger progress events based on changes to the buffered amount
-// Many flash players and older HTML5 browsers don't send progress or progress-like events
-vjs.Player.prototype.manualProgressOn = function(){
-  this.manualProgress = true;
-
-  // Trigger progress watching when a source begins loading
-  this.trackProgress();
-
-  // Watch for a native progress event call on the tech element
-  // In HTML5, some older versions don't support the progress event
-  // So we're assuming they don't, and turning off manual progress if they do.
-  // As opposed to doing user agent detection
-  this.tech.one('progress', function(){
-
-    // Update known progress support for this playback technology
-    this.features['progressEvents'] = true;
-
-    // Turn off manual progress tracking
-    this.player_.manualProgressOff();
-  });
-};
-
-vjs.Player.prototype.manualProgressOff = function(){
-  this.manualProgress = false;
-  this.stopTrackingProgress();
-};
-
-vjs.Player.prototype.trackProgress = function(){
-
-  this.progressInterval = setInterval(vjs.bind(this, function(){
-    // Don't trigger unless buffered amount is greater than last time
-    // log(this.cache_.bufferEnd, this.buffered().end(0), this.duration())
-    /* TODO: update for multiple buffered regions */
-    if (this.cache_.bufferEnd < this.buffered().end(0)) {
-      this.trigger('progress');
-    } else if (this.bufferedPercent() == 1) {
-      this.stopTrackingProgress();
-      this.trigger('progress'); // Last update
-    }
-  }), 500);
-};
-vjs.Player.prototype.stopTrackingProgress = function(){ clearInterval(this.progressInterval); };
-
-/*! Time Tracking -------------------------------------------------------------- */
-vjs.Player.prototype.manualTimeUpdatesOn = function(){
-  this.manualTimeUpdates = true;
-
-  this.on('play', this.trackCurrentTime);
-  this.on('pause', this.stopTrackingCurrentTime);
-  // timeupdate is also called by .currentTime whenever current time is set
-
-  // Watch for native timeupdate event
-  this.tech.one('timeupdate', function(){
-    // Update known progress support for this playback technology
-    this.features['timeupdateEvents'] = true;
-    // Turn off manual progress tracking
-    this.player_.manualTimeUpdatesOff();
-  });
-};
-
-vjs.Player.prototype.manualTimeUpdatesOff = function(){
-  this.manualTimeUpdates = false;
-  this.stopTrackingCurrentTime();
-  this.off('play', this.trackCurrentTime);
-  this.off('pause', this.stopTrackingCurrentTime);
-};
-
-vjs.Player.prototype.trackCurrentTime = function(){
-  if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }
-  this.currentTimeInterval = setInterval(vjs.bind(this, function(){
-    this.trigger('timeupdate');
-  }), 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15
-};
-
-// Turn off play progress tracking (when paused or dragging)
-vjs.Player.prototype.stopTrackingCurrentTime = function(){ clearInterval(this.currentTimeInterval); };
-
-// /* Player event handlers (how the player reacts to certain events)
-// ================================================================================ */
-
-/**
- * Fired when the user agent begins looking for media data
- * @event loadstart
- */
-vjs.Player.prototype.onLoadStart;
-
-/**
- * Fired when the player has initial duration and dimension information
- * @event loadedmetadata
- */
-vjs.Player.prototype.onLoadedMetaData;
-
-/**
- * Fired when the player has downloaded data at the current playback position
- * @event loadeddata
- */
-vjs.Player.prototype.onLoadedData;
-
-/**
- * Fired when the player has finished downloading the source data
- * @event loadedalldata
- */
-vjs.Player.prototype.onLoadedAllData;
-
-/**
- * Fired whenever the media begins or resumes playback
- * @event play
- */
-vjs.Player.prototype.onPlay = function(){
-  vjs.removeClass(this.el_, 'vjs-paused');
-  vjs.addClass(this.el_, 'vjs-playing');
-};
-
-/**
- * Fired the first time a video is played
- *
- * Not part of the HLS spec, and we're not sure if this is the best
- * implementation yet, so use sparingly. If you don't have a reason to
- * prevent playback, use `myPlayer.one('play');` instead.
- *
- * @event firstplay
- */
-vjs.Player.prototype.onFirstPlay = function(){
-    //If the first starttime attribute is specified
-    //then we will start at the given offset in seconds
-    if(this.options_['starttime']){
-      this.currentTime(this.options_['starttime']);
-    }
-
-    this.addClass('vjs-has-started');
-};
-
-/**
- * Fired whenever the media has been paused
- * @event pause
- */
-vjs.Player.prototype.onPause = function(){
-  vjs.removeClass(this.el_, 'vjs-playing');
-  vjs.addClass(this.el_, 'vjs-paused');
-};
-
-/**
- * Fired when the current playback position has changed
- *
- * During playback this is fired every 15-250 milliseconds, depnding on the
- * playback technology in use.
- * @event timeupdate
- */
-vjs.Player.prototype.onTimeUpdate;
-
-/**
- * Fired while the user agent is downloading media data
- * @event progress
- */
-vjs.Player.prototype.onProgress = function(){
-  // Add custom event for when source is finished downloading.
-  if (this.bufferedPercent() == 1) {
-    this.trigger('loadedalldata');
-  }
-};
-
-/**
- * Fired when the end of the media resource is reached (currentTime == duration)
- * @event ended
- */
-vjs.Player.prototype.onEnded = function(){
-  if (this.options_['loop']) {
-    this.currentTime(0);
-    this.play();
-  }
-};
-
-/**
- * Fired when the duration of the media resource is first known or changed
- * @event durationchange
- */
-vjs.Player.prototype.onDurationChange = function(){
-  // Allows for cacheing value instead of asking player each time.
-  this.duration(this.techGet('duration'));
-};
-
-/**
- * Fired when the volume changes
- * @event volumechange
- */
-vjs.Player.prototype.onVolumeChange;
-
-/**
- * Fired when the player switches in or out of fullscreen mode
- * @event fullscreenchange
- */
-vjs.Player.prototype.onFullscreenChange = function() {
-  if (this.isFullScreen) {
-    this.addClass('vjs-fullscreen');
-  } else {
-    this.removeClass('vjs-fullscreen');
-  }
-};
-
-/**
- * Fired when there is an error in playback
- * @event error
- */
-vjs.Player.prototype.onError = function(e) {
-  vjs.log('Video Error', e);
-};
-
-// /* Player API
-// ================================================================================ */
-
-/**
- * Object for cached values.
- * @private
- */
-vjs.Player.prototype.cache_;
-
-vjs.Player.prototype.getCache = function(){
-  return this.cache_;
-};
-
-// Pass values to the playback tech
-vjs.Player.prototype.techCall = function(method, arg){
-  // If it's not ready yet, call method when it is
-  if (this.tech && !this.tech.isReady_) {
-    this.tech.ready(function(){
-      this[method](arg);
-    });
-
-  // Otherwise call method now
-  } else {
-    try {
-      this.tech[method](arg);
-    } catch(e) {
-      vjs.log(e);
-      throw e;
-    }
-  }
-};
-
-// Get calls can't wait for the tech, and sometimes don't need to.
-vjs.Player.prototype.techGet = function(method){
-
-  if (this.tech && this.tech.isReady_) {
-
-    // Flash likes to die and reload when you hide or reposition it.
-    // In these cases the object methods go away and we get errors.
-    // When that happens we'll catch the errors and inform tech that it's not ready any more.
-    try {
-      return this.tech[method]();
-    } catch(e) {
-      // When building additional tech libs, an expected method may not be defined yet
-      if (this.tech[method] === undefined) {
-        vjs.log('Video.js: ' + method + ' method not defined for '+this.techName+' playback technology.', e);
-      } else {
-        // When a method isn't available on the object it throws a TypeError
-        if (e.name == 'TypeError') {
-          vjs.log('Video.js: ' + method + ' unavailable on '+this.techName+' playback technology element.', e);
-          this.tech.isReady_ = false;
-        } else {
-          vjs.log(e);
-        }
-      }
-      throw e;
-    }
-  }
-
-  return;
-};
-
-/**
- * start media playback
- *
- *     myPlayer.play();
- *
- * @return {vjs.Player} self
- */
-vjs.Player.prototype.play = function(){
-  this.techCall('play');
-  return this;
-};
-
-/**
- * Pause the video playback
- *
- *     myPlayer.pause();
- *
- * @return {vjs.Player} self
- */
-vjs.Player.prototype.pause = function(){
-  this.techCall('pause');
-  return this;
-};
-
-/**
- * Check if the player is paused
- *
- *     var isPaused = myPlayer.paused();
- *     var isPlaying = !myPlayer.paused();
- *
- * @return {Boolean} false if the media is currently playing, or true otherwise
- */
-vjs.Player.prototype.paused = function(){
-  // The initial state of paused should be true (in Safari it's actually false)
-  return (this.techGet('paused') === false) ? false : true;
-};
-
-/**
- * Get or set the current time (in seconds)
- *
- *     // get
- *     var whereYouAt = myPlayer.currentTime();
- *
- *     // set
- *     myPlayer.currentTime(120); // 2 minutes into the video
- *
- * @param  {Number|String=} seconds The time to seek to
- * @return {Number}        The time in seconds, when not setting
- * @return {vjs.Player}    self, when the current time is set
- */
-vjs.Player.prototype.currentTime = function(seconds){
-  if (seconds !== undefined) {
-
-    // cache the last set value for smoother scrubbing
-    this.cache_.lastSetCurrentTime = seconds;
-
-    this.techCall('setCurrentTime', seconds);
-
-    // improve the accuracy of manual timeupdates
-    if (this.manualTimeUpdates) { this.trigger('timeupdate'); }
-
-    return this;
-  }
-
-  // cache last currentTime and return
-  // default to 0 seconds
-  return this.cache_.currentTime = (this.techGet('currentTime') || 0);
-};
-
-/**
- * Get the length in time of the video in seconds
- *
- *     var lengthOfVideo = myPlayer.duration();
- *
- * **NOTE**: The video must have started loading before the duration can be
- * known, and in the case of Flash, may not be known until the video starts
- * playing.
- *
- * @return {Number} The duration of the video in seconds
- */
-vjs.Player.prototype.duration = function(seconds){
-  if (seconds !== undefined) {
-
-    // cache the last set value for optimiized scrubbing (esp. Flash)
-    this.cache_.duration = parseFloat(seconds);
-
-    return this;
-  }
-
-  if (this.cache_.duration === undefined) {
-    this.onDurationChange();
-  }
-
-  return this.cache_.duration;
-};
-
-// Calculates how much time is left. Not in spec, but useful.
-vjs.Player.prototype.remainingTime = function(){
-  return this.duration() - this.currentTime();
-};
-
-// http://dev.w3.org/html5/spec/video.html#dom-media-buffered
-// Buffered returns a timerange object.
-// Kind of like an array of portions of the video that have been downloaded.
-// So far no browsers return more than one range (portion)
-
-/**
- * Get a TimeRange object with the times of the video that have been downloaded
- *
- * If you just want the percent of the video that's been downloaded,
- * use bufferedPercent.
- *
- *     // Number of different ranges of time have been buffered. Usually 1.
- *     numberOfRanges = bufferedTimeRange.length,
- *
- *     // Time in seconds when the first range starts. Usually 0.
- *     firstRangeStart = bufferedTimeRange.start(0),
- *
- *     // Time in seconds when the first range ends
- *     firstRangeEnd = bufferedTimeRange.end(0),
- *
- *     // Length in seconds of the first time range
- *     firstRangeLength = firstRangeEnd - firstRangeStart;
- *
- * @return {Object} A mock TimeRange object (following HTML spec)
- */
-vjs.Player.prototype.buffered = function(){
-  var buffered = this.techGet('buffered'),
-      start = 0,
-      buflast = buffered.length - 1,
-      // Default end to 0 and store in values
-      end = this.cache_.bufferEnd = this.cache_.bufferEnd || 0;
-
-  if (buffered && buflast >= 0 && buffered.end(buflast) !== end) {
-    end = buffered.end(buflast);
-    // Storing values allows them be overridden by setBufferedFromProgress
-    this.cache_.bufferEnd = end;
-  }
-
-  return vjs.createTimeRange(start, end);
-};
-
-/**
- * Get the percent (as a decimal) of the video that's been downloaded
- *
- *     var howMuchIsDownloaded = myPlayer.bufferedPercent();
- *
- * 0 means none, 1 means all.
- * (This method isn't in the HTML5 spec, but it's very convenient)
- *
- * @return {Number} A decimal between 0 and 1 representing the percent
- */
-vjs.Player.prototype.bufferedPercent = function(){
-  return (this.duration()) ? this.buffered().end(0) / this.duration() : 0;
-};
-
-/**
- * Get or set the current volume of the media
- *
- *     // get
- *     var howLoudIsIt = myPlayer.volume();
- *
- *     // set
- *     myPlayer.volume(0.5); // Set volume to half
- *
- * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.
- *
- * @param  {Number} percentAsDecimal The new volume as a decimal percent
- * @return {Number}                  The current volume, when getting
- * @return {vjs.Player}              self, when setting
- */
-vjs.Player.prototype.volume = function(percentAsDecimal){
-  var vol;
-
-  if (percentAsDecimal !== undefined) {
-    vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1
-    this.cache_.volume = vol;
-    this.techCall('setVolume', vol);
-    vjs.setLocalStorage('volume', vol);
-    return this;
-  }
-
-  // Default to 1 when returning current volume.
-  vol = parseFloat(this.techGet('volume'));
-  return (isNaN(vol)) ? 1 : vol;
-};
-
-
-/**
- * Get the current muted state, or turn mute on or off
- *
- *     // get
- *     var isVolumeMuted = myPlayer.muted();
- *
- *     // set
- *     myPlayer.muted(true); // mute the volume
- *
- * @param  {Boolean=} muted True to mute, false to unmute
- * @return {Boolean} True if mute is on, false if not, when getting
- * @return {vjs.Player} self, when setting mute
- */
-vjs.Player.prototype.muted = function(muted){
-  if (muted !== undefined) {
-    this.techCall('setMuted', muted);
-    return this;
-  }
-  return this.techGet('muted') || false; // Default to false
-};
-
-// Check if current tech can support native fullscreen (e.g. with built in controls lik iOS, so not our flash swf)
-vjs.Player.prototype.supportsFullScreen = function(){ return this.techGet('supportsFullScreen') || false; };
-
-/**
- * Increase the size of the video to full screen
- *
- *     myPlayer.requestFullScreen();
- *
- * In some browsers, full screen is not supported natively, so it enters
- * "full window mode", where the video fills the browser window.
- * In browsers and devices that support native full screen, sometimes the
- * browser's default controls will be shown, and not the Video.js custom skin.
- * This includes most mobile devices (iOS, Android) and older versions of
- * Safari.
- *
- * @return {vjs.Player} self
- */
-vjs.Player.prototype.requestFullScreen = function(){
-  var requestFullScreen = vjs.support.requestFullScreen;
-  this.isFullScreen = true;
-
-  if (requestFullScreen) {
-    // the browser supports going fullscreen at the element level so we can
-    // take the controls fullscreen as well as the video
-
-    // Trigger fullscreenchange event after change
-    // We have to specifically add this each time, and remove
-    // when cancelling fullscreen. Otherwise if there's multiple
-    // players on a page, they would all be reacting to the same fullscreen
-    // events
-    vjs.on(document, requestFullScreen.eventName, vjs.bind(this, function(e){
-      this.isFullScreen = document[requestFullScreen.isFullScreen];
-
-      // If cancelling fullscreen, remove event listener.
-      if (this.isFullScreen === false) {
-        vjs.off(document, requestFullScreen.eventName, arguments.callee);
-      }
-
-      this.trigger('fullscreenchange');
-    }));
-
-    this.el_[requestFullScreen.requestFn]();
-
-  } else if (this.tech.supportsFullScreen()) {
-    // we can't take the video.js controls fullscreen but we can go fullscreen
-    // with native controls
-    this.techCall('enterFullScreen');
-  } else {
-    // fullscreen isn't supported so we'll just stretch the video element to
-    // fill the viewport
-    this.enterFullWindow();
-    this.trigger('fullscreenchange');
-  }
-
-  return this;
-};
-
-/**
- * Return the video to its normal size after having been in full screen mode
- *
- *     myPlayer.cancelFullScreen();
- *
- * @return {vjs.Player} self
- */
-vjs.Player.prototype.cancelFullScreen = function(){
-  var requestFullScreen = vjs.support.requestFullScreen;
-  this.isFullScreen = false;
-
-  // Check for browser element fullscreen support
-  if (requestFullScreen) {
-    document[requestFullScreen.cancelFn]();
-  } else if (this.tech.supportsFullScreen()) {
-   this.techCall('exitFullScreen');
-  } else {
-   this.exitFullWindow();
-   this.trigger('fullscreenchange');
-  }
-
-  return this;
-};
-
-// When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.
-vjs.Player.prototype.enterFullWindow = function(){
-  this.isFullWindow = true;
-
-  // Storing original doc overflow value to return to when fullscreen is off
-  this.docOrigOverflow = document.documentElement.style.overflow;
-
-  // Add listener for esc key to exit fullscreen
-  vjs.on(document, 'keydown', vjs.bind(this, this.fullWindowOnEscKey));
-
-  // Hide any scroll bars
-  document.documentElement.style.overflow = 'hidden';
-
-  // Apply fullscreen styles
-  vjs.addClass(document.body, 'vjs-full-window');
-
-  this.trigger('enterFullWindow');
-};
-vjs.Player.prototype.fullWindowOnEscKey = function(event){
-  if (event.keyCode === 27) {
-    if (this.isFullScreen === true) {
-      this.cancelFullScreen();
-    } else {
-      this.exitFullWindow();
-    }
-  }
-};
-
-vjs.Player.prototype.exitFullWindow = function(){
-  this.isFullWindow = false;
-  vjs.off(document, 'keydown', this.fullWindowOnEscKey);
-
-  // Unhide scroll bars.
-  document.documentElement.style.overflow = this.docOrigOverflow;
-
-  // Remove fullscreen styles
-  vjs.removeClass(document.body, 'vjs-full-window');
-
-  // Resize the box, controller, and poster to original sizes
-  // this.positionAll();
-  this.trigger('exitFullWindow');
-};
-
-vjs.Player.prototype.selectSource = function(sources){
-
-  // Loop through each playback technology in the options order
-  for (var i=0,j=this.options_['techOrder'];i<j.length;i++) {
-    var techName = vjs.capitalize(j[i]),
-        tech = window['videojs'][techName];
-
-    // Check if the browser supports this technology
-    if (tech.isSupported()) {
-      // Loop through each source object
-      for (var a=0,b=sources;a<b.length;a++) {
-        var source = b[a];
-
-        // Check if source can be played with this technology
-        if (tech['canPlaySource'](source)) {
-          return { source: source, tech: techName };
-        }
-      }
-    }
-  }
-
-  return false;
-};
-
-/**
- * The source function updates the video source
- *
- * There are three types of variables you can pass as the argument.
- *
- * **URL String**: A URL to the the video file. Use this method if you are sure
- * the current playback technology (HTML5/Flash) can support the source you
- * provide. Currently only MP4 files can be used in both HTML5 and Flash.
- *
- *     myPlayer.src("http://www.example.com/path/to/video.mp4");
- *
- * **Source Object (or element):** A javascript object containing information
- * about the source file. Use this method if you want the player to determine if
- * it can support the file using the type information.
- *
- *     myPlayer.src({ type: "video/mp4", src: "http://www.example.com/path/to/video.mp4" });
- *
- * **Array of Source Objects:** To provide multiple versions of the source so
- * that it can be played using HTML5 across browsers you can use an array of
- * source objects. Video.js will detect which version is supported and load that
- * file.
- *
- *     myPlayer.src([
- *       { type: "video/mp4", src: "http://www.example.com/path/to/video.mp4" },
- *       { type: "video/webm", src: "http://www.example.com/path/to/video.webm" },
- *       { type: "video/ogg", src: "http://www.example.com/path/to/video.ogv" }
- *     ]);
- *
- * @param  {String|Object|Array=} source The source URL, object, or array of sources
- * @return {vjs.Player} self
- */
-vjs.Player.prototype.src = function(source){
-  // Case: Array of source objects to choose from and pick the best to play
-  if (source instanceof Array) {
-
-    var sourceTech = this.selectSource(source),
-        techName;
-
-    if (sourceTech) {
-        source = sourceTech.source;
-        techName = sourceTech.tech;
-
-      // If this technology is already loaded, set source
-      if (techName == this.techName) {
-        this.src(source); // Passing the source object
-      // Otherwise load this technology with chosen source
-      } else {
-        this.loadTech(techName, source);
-      }
-    } else {
-      this.el_.appendChild(vjs.createEl('p', {
-        innerHTML: this.options()['notSupportedMessage']
-      }));
-    }
-
-  // Case: Source object { src: '', type: '' ... }
-  } else if (source instanceof Object) {
-
-    if (window['videojs'][this.techName]['canPlaySource'](source)) {
-      this.src(source.src);
-    } else {
-      // Send through tech loop to check for a compatible technology.
-      this.src([source]);
-    }
-
-  // Case: URL String (http://myvideo...)
-  } else {
-    // Cache for getting last set source
-    this.cache_.src = source;
-
-    if (!this.isReady_) {
-      this.ready(function(){
-        this.src(source);
-      });
-    } else {
-      this.techCall('src', source);
-      if (this.options_['preload'] == 'auto') {
-        this.load();
-      }
-      if (this.options_['autoplay']) {
-        this.play();
-      }
-    }
-  }
-  return this;
-};
-
-// Begin loading the src data
-// http://dev.w3.org/html5/spec/video.html#dom-media-load
-vjs.Player.prototype.load = function(){
-  this.techCall('load');
-  return this;
-};
-
-// http://dev.w3.org/html5/spec/video.html#dom-media-currentsrc
-vjs.Player.prototype.currentSrc = function(){
-  return this.techGet('currentSrc') || this.cache_.src || '';
-};
-
-// Attributes/Options
-vjs.Player.prototype.preload = function(value){
-  if (value !== undefined) {
-    this.techCall('setPreload', value);
-    this.options_['preload'] = value;
-    return this;
-  }
-  return this.techGet('preload');
-};
-vjs.Player.prototype.autoplay = function(value){
-  if (value !== undefined) {
-    this.techCall('setAutoplay', value);
-    this.options_['autoplay'] = value;
-    return this;
-  }
-  return this.techGet('autoplay', value);
-};
-vjs.Player.prototype.loop = function(value){
-  if (value !== undefined) {
-    this.techCall('setLoop', value);
-    this.options_['loop'] = value;
-    return this;
-  }
-  return this.techGet('loop');
-};
-
-/**
- * the url of the poster image source
- * @type {String}
- * @private
- */
-vjs.Player.prototype.poster_;
-
-/**
- * get or set the poster image source url
- *
- * ##### EXAMPLE:
- *
- *     // getting
- *     var currentPoster = myPlayer.poster();
- *
- *     // setting
- *     myPlayer.poster('http://example.com/myImage.jpg');
- *
- * @param  {String=} [src] Poster image source URL
- * @return {String} poster URL when getting
- * @return {vjs.Player} self when setting
- */
-vjs.Player.prototype.poster = function(src){
-  if (src !== undefined) {
-    this.poster_ = src;
-    return this;
-  }
-  return this.poster_;
-};
-
-/**
- * Whether or not the controls are showing
- * @type {Boolean}
- * @private
- */
-vjs.Player.prototype.controls_;
-
-/**
- * Get or set whether or not the controls are showing.
- * @param  {Boolean} controls Set controls to showing or not
- * @return {Boolean}    Controls are showing
- */
-vjs.Player.prototype.controls = function(bool){
-  if (bool !== undefined) {
-    bool = !!bool; // force boolean
-    // Don't trigger a change event unless it actually changed
-    if (this.controls_ !== bool) {
-      this.controls_ = bool;
-      if (bool) {
-        this.removeClass('vjs-controls-disabled');
-        this.addClass('vjs-controls-enabled');
-        this.trigger('controlsenabled');
-      } else {
-        this.removeClass('vjs-controls-enabled');
-        this.addClass('vjs-controls-disabled');
-        this.trigger('controlsdisabled');
-      }
-    }
-    return this;
-  }
-  return this.controls_;
-};
-
-vjs.Player.prototype.usingNativeControls_;
-
-/**
- * Toggle native controls on/off. Native controls are the controls built into
- * devices (e.g. default iPhone controls), Flash, or other techs
- * (e.g. Vimeo Controls)
- *
- * **This should only be set by the current tech, because only the tech knows
- * if it can support native controls**
- *
- * @param  {Boolean} bool    True signals that native controls are on
- * @return {vjs.Player}      Returns the player
- * @private
- */
-vjs.Player.prototype.usingNativeControls = function(bool){
-  if (bool !== undefined) {
-    bool = !!bool; // force boolean
-    // Don't trigger a change event unless it actually changed
-    if (this.usingNativeControls_ !== bool) {
-      this.usingNativeControls_ = bool;
-      if (bool) {
-        this.addClass('vjs-using-native-controls');
-
-        /**
-         * player is using the native device controls
-         *
-         * @event usingnativecontrols
-         * @memberof vjs.Player
-         * @instance
-         * @private
-         */
-        this.trigger('usingnativecontrols');
-      } else {
-        this.removeClass('vjs-using-native-controls');
-
-        /**
-         * player is using the custom HTML controls
-         *
-         * @event usingcustomcontrols
-         * @memberof vjs.Player
-         * @instance
-         * @private
-         */
-        this.trigger('usingcustomcontrols');
-      }
-    }
-    return this;
-  }
-  return this.usingNativeControls_;
-};
-
-vjs.Player.prototype.error = function(){ return this.techGet('error'); };
-vjs.Player.prototype.ended = function(){ return this.techGet('ended'); };
-vjs.Player.prototype.seeking = function(){ return this.techGet('seeking'); };
-
-// When the player is first initialized, trigger activity so components
-// like the control bar show themselves if needed
-vjs.Player.prototype.userActivity_ = true;
-vjs.Player.prototype.reportUserActivity = function(event){
-  this.userActivity_ = true;
-};
-
-vjs.Player.prototype.userActive_ = true;
-vjs.Player.prototype.userActive = function(bool){
-  if (bool !== undefined) {
-    bool = !!bool;
-    if (bool !== this.userActive_) {
-      this.userActive_ = bool;
-      if (bool) {
-        // If the user was inactive and is now active we want to reset the
-        // inactivity timer
-        this.userActivity_ = true;
-        this.removeClass('vjs-user-inactive');
-        this.addClass('vjs-user-active');
-        this.trigger('useractive');
-      } else {
-        // We're switching the state to inactive manually, so erase any other
-        // activity
-        this.userActivity_ = false;
-
-        // Chrome/Safari/IE have bugs where when you change the cursor it can
-        // trigger a mousemove event. This causes an issue when you're hiding
-        // the cursor when the user is inactive, and a mousemove signals user
-        // activity. Making it impossible to go into inactive mode. Specifically
-        // this happens in fullscreen when we really need to hide the cursor.
-        //
-        // When this gets resolved in ALL browsers it can be removed
-        // https://code.google.com/p/chromium/issues/detail?id=103041
-        this.tech.one('mousemove', function(e){
-          e.stopPropagation();
-          e.preventDefault();
-        });
-        this.removeClass('vjs-user-active');
-        this.addClass('vjs-user-inactive');
-        this.trigger('userinactive');
-      }
-    }
-    return this;
-  }
-  return this.userActive_;
-};
-
-vjs.Player.prototype.listenForUserActivity = function(){
-  var onMouseActivity, onMouseDown, mouseInProgress, onMouseUp,
-      activityCheck, inactivityTimeout;
-
-  onMouseActivity = this.reportUserActivity;
-
-  onMouseDown = function() {
-    onMouseActivity();
-    // For as long as the they are touching the device or have their mouse down,
-    // we consider them active even if they're not moving their finger or mouse.
-    // So we want to continue to update that they are active
-    clearInterval(mouseInProgress);
-    // Setting userActivity=true now and setting the interval to the same time
-    // as the activityCheck interval (250) should ensure we never miss the
-    // next activityCheck
-    mouseInProgress = setInterval(vjs.bind(this, onMouseActivity), 250);
-  };
-
-  onMouseUp = function(event) {
-    onMouseActivity();
-    // Stop the interval that maintains activity if the mouse/touch is down
-    clearInterval(mouseInProgress);
-  };
-
-  // Any mouse movement will be considered user activity
-  this.on('mousedown', onMouseDown);
-  this.on('mousemove', onMouseActivity);
-  this.on('mouseup', onMouseUp);
-
-  // Listen for keyboard navigation
-  // Shouldn't need to use inProgress interval because of key repeat
-  this.on('keydown', onMouseActivity);
-  this.on('keyup', onMouseActivity);
-
-  // Consider any touch events that bubble up to be activity
-  // Certain touches on the tech will be blocked from bubbling because they
-  // toggle controls
-  this.on('touchstart', onMouseDown);
-  this.on('touchmove', onMouseActivity);
-  this.on('touchend', onMouseUp);
-  this.on('touchcancel', onMouseUp);
-
-  // Run an interval every 250 milliseconds instead of stuffing everything into
-  // the mousemove/touchmove function itself, to prevent performance degradation.
-  // `this.reportUserActivity` simply sets this.userActivity_ to true, which
-  // then gets picked up by this loop
-  // http://ejohn.org/blog/learning-from-twitter/
-  activityCheck = setInterval(vjs.bind(this, function() {
-    // Check to see if mouse/touch activity has happened
-    if (this.userActivity_) {
-      // Reset the activity tracker
-      this.userActivity_ = false;
-
-      // If the user state was inactive, set the state to active
-      this.userActive(true);
-
-      // Clear any existing inactivity timeout to start the timer over
-      clearTimeout(inactivityTimeout);
-
-      // In X seconds, if no more activity has occurred the user will be
-      // considered inactive
-      inactivityTimeout = setTimeout(vjs.bind(this, function() {
-        // Protect against the case where the inactivityTimeout can trigger just
-        // before the next user activity is picked up by the activityCheck loop
-        // causing a flicker
-        if (!this.userActivity_) {
-          this.userActive(false);
-        }
-      }), 2000);
-    }
-  }), 250);
-
-  // Clean up the intervals when we kill the player
-  this.on('dispose', function(){
-    clearInterval(activityCheck);
-    clearTimeout(inactivityTimeout);
-  });
-};
-
-// Methods to add support for
-// networkState: function(){ return this.techCall('networkState'); },
-// readyState: function(){ return this.techCall('readyState'); },
-// seeking: function(){ return this.techCall('seeking'); },
-// initialTime: function(){ return this.techCall('initialTime'); },
-// startOffsetTime: function(){ return this.techCall('startOffsetTime'); },
-// played: function(){ return this.techCall('played'); },
-// seekable: function(){ return this.techCall('seekable'); },
-// videoTracks: function(){ return this.techCall('videoTracks'); },
-// audioTracks: function(){ return this.techCall('audioTracks'); },
-// videoWidth: function(){ return this.techCall('videoWidth'); },
-// videoHeight: function(){ return this.techCall('videoHeight'); },
-// defaultPlaybackRate: function(){ return this.techCall('defaultPlaybackRate'); },
-// playbackRate: function(){ return this.techCall('playbackRate'); },
-// mediaGroup: function(){ return this.techCall('mediaGroup'); },
-// controller: function(){ return this.techCall('controller'); },
-// defaultMuted: function(){ return this.techCall('defaultMuted'); }
-
-// TODO
-// currentSrcList: the array of sources including other formats and bitrates
-// playList: array of source lists in order of playback
-
-// RequestFullscreen API
-(function(){
-  var prefix, requestFS, div;
-
-  div = document.createElement('div');
-
-  requestFS = {};
-
-  // Current W3C Spec
-  // http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html#api
-  // Mozilla Draft: https://wiki.mozilla.org/Gecko:FullScreenAPI#fullscreenchange_event
-  // New: https://dvcs.w3.org/hg/fullscreen/raw-file/529a67b8d9f3/Overview.html
-  if (div.cancelFullscreen !== undefined) {
-    requestFS.requestFn = 'requestFullscreen';
-    requestFS.cancelFn = 'exitFullscreen';
-    requestFS.eventName = 'fullscreenchange';
-    requestFS.isFullScreen = 'fullScreen';
-
-  // Webkit (Chrome/Safari) and Mozilla (Firefox) have working implementations
-  // that use prefixes and vary slightly from the new W3C spec. Specifically,
-  // using 'exit' instead of 'cancel', and lowercasing the 'S' in Fullscreen.
-  // Other browsers don't have any hints of which version they might follow yet,
-  // so not going to try to predict by looping through all prefixes.
-  } else {
-
-    if (document.mozCancelFullScreen) {
-      prefix = 'moz';
-      requestFS.isFullScreen = prefix + 'FullScreen';
-    } else {
-      prefix = 'webkit';
-      requestFS.isFullScreen = prefix + 'IsFullScreen';
-    }
-
-    if (div[prefix + 'RequestFullScreen']) {
-      requestFS.requestFn = prefix + 'RequestFullScreen';
-      requestFS.cancelFn = prefix + 'CancelFullScreen';
-    }
-    requestFS.eventName = prefix + 'fullscreenchange';
-  }
-
-  if (document[requestFS.cancelFn]) {
-    vjs.support.requestFullScreen = requestFS;
-  }
-
-})();
-
-
-/**
- * Container of main controls
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @class
- * @constructor
- * @extends vjs.Component
- */
-vjs.ControlBar = vjs.Component.extend();
-
-vjs.ControlBar.prototype.options_ = {
-  loadEvent: 'play',
-  children: {
-    'playToggle': {},
-    'currentTimeDisplay': {},
-    'timeDivider': {},
-    'durationDisplay': {},
-    'remainingTimeDisplay': {},
-    'progressControl': {},
-    'fullscreenToggle': {},
-    'volumeControl': {},
-    'muteToggle': {}
-    // 'volumeMenuButton': {}
-  }
-};
-
-vjs.ControlBar.prototype.createEl = function(){
-  return vjs.createEl('div', {
-    className: 'vjs-control-bar'
-  });
-};
-/**
- * Button to toggle between play and pause
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @class
- * @constructor
- */
-vjs.PlayToggle = vjs.Button.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Button.call(this, player, options);
-
-    player.on('play', vjs.bind(this, this.onPlay));
-    player.on('pause', vjs.bind(this, this.onPause));
-  }
-});
-
-vjs.PlayToggle.prototype.buttonText = 'Play';
-
-vjs.PlayToggle.prototype.buildCSSClass = function(){
-  return 'vjs-play-control ' + vjs.Button.prototype.buildCSSClass.call(this);
-};
-
-// OnClick - Toggle between play and pause
-vjs.PlayToggle.prototype.onClick = function(){
-  if (this.player_.paused()) {
-    this.player_.play();
-  } else {
-    this.player_.pause();
-  }
-};
-
-  // OnPlay - Add the vjs-playing class to the element so it can change appearance
-vjs.PlayToggle.prototype.onPlay = function(){
-  vjs.removeClass(this.el_, 'vjs-paused');
-  vjs.addClass(this.el_, 'vjs-playing');
-  this.el_.children[0].children[0].innerHTML = 'Pause'; // change the button text to "Pause"
-};
-
-  // OnPause - Add the vjs-paused class to the element so it can change appearance
-vjs.PlayToggle.prototype.onPause = function(){
-  vjs.removeClass(this.el_, 'vjs-playing');
-  vjs.addClass(this.el_, 'vjs-paused');
-  this.el_.children[0].children[0].innerHTML = 'Play'; // change the button text to "Play"
-};
-/**
- * Displays the current time
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.CurrentTimeDisplay = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-
-    player.on('timeupdate', vjs.bind(this, this.updateContent));
-  }
-});
-
-vjs.CurrentTimeDisplay.prototype.createEl = function(){
-  var el = vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-current-time vjs-time-controls vjs-control'
-  });
-
-  this.content = vjs.createEl('div', {
-    className: 'vjs-current-time-display',
-    innerHTML: '<span class="vjs-control-text">Current Time </span>' + '0:00', // label the current time for screen reader users
-    'aria-live': 'off' // tell screen readers not to automatically read the time as it changes
-  });
-
-  el.appendChild(vjs.createEl('div').appendChild(this.content));
-  return el;
-};
-
-vjs.CurrentTimeDisplay.prototype.updateContent = function(){
-  // Allows for smooth scrubbing, when player can't keep up.
-  var time = (this.player_.scrubbing) ? this.player_.getCache().currentTime : this.player_.currentTime();
-  this.content.innerHTML = '<span class="vjs-control-text">Current Time </span>' + vjs.formatTime(time, this.player_.duration());
-};
-
-/**
- * Displays the duration
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.DurationDisplay = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-
-    player.on('timeupdate', vjs.bind(this, this.updateContent)); // this might need to be changes to 'durationchange' instead of 'timeupdate' eventually, however the durationchange event fires before this.player_.duration() is set, so the value cannot be written out using this method. Once the order of durationchange and this.player_.duration() being set is figured out, this can be updated.
-  }
-});
-
-vjs.DurationDisplay.prototype.createEl = function(){
-  var el = vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-duration vjs-time-controls vjs-control'
-  });
-
-  this.content = vjs.createEl('div', {
-    className: 'vjs-duration-display',
-    innerHTML: '<span class="vjs-control-text">Duration Time </span>' + '0:00', // label the duration time for screen reader users
-    'aria-live': 'off' // tell screen readers not to automatically read the time as it changes
-  });
-
-  el.appendChild(vjs.createEl('div').appendChild(this.content));
-  return el;
-};
-
-vjs.DurationDisplay.prototype.updateContent = function(){
-  var duration = this.player_.duration();
-  if (duration) {
-      this.content.innerHTML = '<span class="vjs-control-text">Duration Time </span>' + vjs.formatTime(duration); // label the duration time for screen reader users
-  }
-};
-
-/**
- * The separator between the current time and duration
- *
- * Can be hidden if it's not needed in the design.
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.TimeDivider = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-  }
-});
-
-vjs.TimeDivider.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-time-divider',
-    innerHTML: '<div><span>/</span></div>'
-  });
-};
-
-/**
- * Displays the time left in the video
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.RemainingTimeDisplay = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-
-    player.on('timeupdate', vjs.bind(this, this.updateContent));
-  }
-});
-
-vjs.RemainingTimeDisplay.prototype.createEl = function(){
-  var el = vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-remaining-time vjs-time-controls vjs-control'
-  });
-
-  this.content = vjs.createEl('div', {
-    className: 'vjs-remaining-time-display',
-    innerHTML: '<span class="vjs-control-text">Remaining Time </span>' + '-0:00', // label the remaining time for screen reader users
-    'aria-live': 'off' // tell screen readers not to automatically read the time as it changes
-  });
-
-  el.appendChild(vjs.createEl('div').appendChild(this.content));
-  return el;
-};
-
-vjs.RemainingTimeDisplay.prototype.updateContent = function(){
-  if (this.player_.duration()) {
-    this.content.innerHTML = '<span class="vjs-control-text">Remaining Time </span>' + '-'+ vjs.formatTime(this.player_.remainingTime());
-  }
-
-  // Allows for smooth scrubbing, when player can't keep up.
-  // var time = (this.player_.scrubbing) ? this.player_.getCache().currentTime : this.player_.currentTime();
-  // this.content.innerHTML = vjs.formatTime(time, this.player_.duration());
-};
-/**
- * Toggle fullscreen video
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @class
- * @extends vjs.Button
- */
-vjs.FullscreenToggle = vjs.Button.extend({
-  /**
-   * @constructor
-   * @memberof vjs.FullscreenToggle
-   * @instance
-   */
-  init: function(player, options){
-    vjs.Button.call(this, player, options);
-  }
-});
-
-vjs.FullscreenToggle.prototype.buttonText = 'Fullscreen';
-
-vjs.FullscreenToggle.prototype.buildCSSClass = function(){
-  return 'vjs-fullscreen-control ' + vjs.Button.prototype.buildCSSClass.call(this);
-};
-
-vjs.FullscreenToggle.prototype.onClick = function(){
-  if (!this.player_.isFullScreen) {
-    this.player_.requestFullScreen();
-    this.el_.children[0].children[0].innerHTML = 'Non-Fullscreen'; // change the button text to "Non-Fullscreen"
-  } else {
-    this.player_.cancelFullScreen();
-    this.el_.children[0].children[0].innerHTML = 'Fullscreen'; // change the button to "Fullscreen"
-  }
-};
-/**
- * The Progress Control component contains the seek bar, load progress,
- * and play progress
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.ProgressControl = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-  }
-});
-
-vjs.ProgressControl.prototype.options_ = {
-  children: {
-    'seekBar': {}
-  }
-};
-
-vjs.ProgressControl.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-progress-control vjs-control'
-  });
-};
-
-/**
- * Seek Bar and holder for the progress bars
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.SeekBar = vjs.Slider.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Slider.call(this, player, options);
-    player.on('timeupdate', vjs.bind(this, this.updateARIAAttributes));
-    player.ready(vjs.bind(this, this.updateARIAAttributes));
-  }
-});
-
-vjs.SeekBar.prototype.options_ = {
-  children: {
-    'loadProgressBar': {},
-    'playProgressBar': {},
-    'seekHandle': {}
-  },
-  'barName': 'playProgressBar',
-  'handleName': 'seekHandle'
-};
-
-vjs.SeekBar.prototype.playerEvent = 'timeupdate';
-
-vjs.SeekBar.prototype.createEl = function(){
-  return vjs.Slider.prototype.createEl.call(this, 'div', {
-    className: 'vjs-progress-holder',
-    'aria-label': 'video progress bar'
-  });
-};
-
-vjs.SeekBar.prototype.updateARIAAttributes = function(){
-    // Allows for smooth scrubbing, when player can't keep up.
-    var time = (this.player_.scrubbing) ? this.player_.getCache().currentTime : this.player_.currentTime();
-    this.el_.setAttribute('aria-valuenow',vjs.round(this.getPercent()*100, 2)); // machine readable value of progress bar (percentage complete)
-    this.el_.setAttribute('aria-valuetext',vjs.formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)
-};
-
-vjs.SeekBar.prototype.getPercent = function(){
-  var currentTime;
-  // Flash RTMP provider will not report the correct time
-  // immediately after a seek. This isn't noticeable if you're
-  // seeking while the video is playing, but it is if you seek
-  // while the video is paused.
-  if (this.player_.techName === 'Flash' && this.player_.seeking()) {
-    var cache = this.player_.getCache();
-    if (cache.lastSetCurrentTime) {
-      currentTime = cache.lastSetCurrentTime;
-    }
-    else {
-      currentTime = this.player_.currentTime();
-    }
-  }
-  else {
-    currentTime = this.player_.currentTime();
-  }
-
-  return currentTime / this.player_.duration();
-};
-
-vjs.SeekBar.prototype.onMouseDown = function(event){
-  vjs.Slider.prototype.onMouseDown.call(this, event);
-
-  this.player_.scrubbing = true;
-
-  this.videoWasPlaying = !this.player_.paused();
-  this.player_.pause();
-};
-
-vjs.SeekBar.prototype.onMouseMove = function(event){
-  var newTime = this.calculateDistance(event) * this.player_.duration();
-
-  // Don't let video end while scrubbing.
-  if (newTime == this.player_.duration()) { newTime = newTime - 0.1; }
-
-  // Set new time (tell player to seek to new time)
-  this.player_.currentTime(newTime);
-};
-
-vjs.SeekBar.prototype.onMouseUp = function(event){
-    debugger
-  vjs.Slider.prototype.onMouseUp.call(this, event);
-
-  this.player_.scrubbing = false;
-  if (this.videoWasPlaying) {
-      debugger
-    this.player_.play();
-  }
-};
-
-vjs.SeekBar.prototype.stepForward = function(){
-  this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users
-};
-
-vjs.SeekBar.prototype.stepBack = function(){
-  this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users
-};
-
-
-/**
- * Shows load progress
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.LoadProgressBar = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-    player.on('progress', vjs.bind(this, this.update));
-  }
-});
-
-vjs.LoadProgressBar.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-load-progress',
-    innerHTML: '<span class="vjs-control-text">Loaded: 0%</span>'
-  });
-};
-
-vjs.LoadProgressBar.prototype.update = function(){
-  if (this.el_.style) { this.el_.style.width = vjs.round(this.player_.bufferedPercent() * 100, 2) + '%'; }
-};
-
-
-/**
- * Shows play progress
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.PlayProgressBar = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-  }
-});
-
-vjs.PlayProgressBar.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-play-progress',
-    innerHTML: '<span class="vjs-control-text">Progress: 0%</span>'
-  });
-};
-
-/**
- * The Seek Handle shows the current position of the playhead during playback,
- * and can be dragged to adjust the playhead.
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.SeekHandle = vjs.SliderHandle.extend();
-
-/**
- * The default value for the handle content, which may be read by screen readers
- *
- * @type {String}
- * @private
- */
-vjs.SeekHandle.prototype.defaultValue = '00:00';
-
-/** @inheritDoc */
-vjs.SeekHandle.prototype.createEl = function(){
-  return vjs.SliderHandle.prototype.createEl.call(this, 'div', {
-    className: 'vjs-seek-handle'
-  });
-};
-/**
- * The component for controlling the volume level
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.VolumeControl = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-
-    // hide volume controls when they're not supported by the current tech
-    if (player.tech && player.tech.features && player.tech.features['volumeControl'] === false) {
-      this.addClass('vjs-hidden');
-    }
-    player.on('loadstart', vjs.bind(this, function(){
-      if (player.tech.features && player.tech.features['volumeControl'] === false) {
-        this.addClass('vjs-hidden');
-      } else {
-        this.removeClass('vjs-hidden');
-      }
-    }));
-  }
-});
-
-vjs.VolumeControl.prototype.options_ = {
-  children: {
-    'volumeBar': {}
-  }
-};
-
-vjs.VolumeControl.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-volume-control vjs-control'
-  });
-};
-
-/**
- * The bar that contains the volume level and can be clicked on to adjust the level
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.VolumeBar = vjs.Slider.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Slider.call(this, player, options);
-    player.on('volumechange', vjs.bind(this, this.updateARIAAttributes));
-    player.ready(vjs.bind(this, this.updateARIAAttributes));
-    setTimeout(vjs.bind(this, this.update), 0); // update when elements is in DOM
-  }
-});
-
-vjs.VolumeBar.prototype.updateARIAAttributes = function(){
-  // Current value of volume bar as a percentage
-  this.el_.setAttribute('aria-valuenow',vjs.round(this.player_.volume()*100, 2));
-  this.el_.setAttribute('aria-valuetext',vjs.round(this.player_.volume()*100, 2)+'%');
-};
-
-vjs.VolumeBar.prototype.options_ = {
-  children: {
-    'volumeLevel': {},
-    'volumeHandle': {}
-  },
-  'barName': 'volumeLevel',
-  'handleName': 'volumeHandle'
-};
-
-vjs.VolumeBar.prototype.playerEvent = 'volumechange';
-
-vjs.VolumeBar.prototype.createEl = function(){
-  return vjs.Slider.prototype.createEl.call(this, 'div', {
-    className: 'vjs-volume-bar',
-    'aria-label': 'volume level'
-  });
-};
-
-vjs.VolumeBar.prototype.onMouseMove = function(event) {
-  if (this.player_.muted()) {
-    this.player_.muted(false);
-  }
-
-  this.player_.volume(this.calculateDistance(event));
-};
-
-vjs.VolumeBar.prototype.getPercent = function(){
-  if (this.player_.muted()) {
-    return 0;
-  } else {
-    return this.player_.volume();
-  }
-};
-
-vjs.VolumeBar.prototype.stepForward = function(){
-  this.player_.volume(this.player_.volume() + 0.1);
-};
-
-vjs.VolumeBar.prototype.stepBack = function(){
-  this.player_.volume(this.player_.volume() - 0.1);
-};
-
-/**
- * Shows volume level
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.VolumeLevel = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-  }
-});
-
-vjs.VolumeLevel.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-volume-level',
-    innerHTML: '<span class="vjs-control-text"></span>'
-  });
-};
-
-/**
- * The volume handle can be dragged to adjust the volume level
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
- vjs.VolumeHandle = vjs.SliderHandle.extend();
-
- vjs.VolumeHandle.prototype.defaultValue = '00:00';
-
- /** @inheritDoc */
- vjs.VolumeHandle.prototype.createEl = function(){
-   return vjs.SliderHandle.prototype.createEl.call(this, 'div', {
-     className: 'vjs-volume-handle'
-   });
- };
-/**
- * A button component for muting the audio
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.MuteToggle = vjs.Button.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Button.call(this, player, options);
-
-    player.on('volumechange', vjs.bind(this, this.update));
-
-    // hide mute toggle if the current tech doesn't support volume control
-    if (player.tech && player.tech.features && player.tech.features['volumeControl'] === false) {
-      this.addClass('vjs-hidden');
-    }
-    player.on('loadstart', vjs.bind(this, function(){
-      if (player.tech.features && player.tech.features['volumeControl'] === false) {
-        this.addClass('vjs-hidden');
-      } else {
-        this.removeClass('vjs-hidden');
-      }
-    }));
-  }
-});
-
-vjs.MuteToggle.prototype.createEl = function(){
-  return vjs.Button.prototype.createEl.call(this, 'div', {
-    className: 'vjs-mute-control vjs-control',
-    innerHTML: '<div><span class="vjs-control-text">Mute</span></div>'
-  });
-};
-
-vjs.MuteToggle.prototype.onClick = function(){
-  this.player_.muted( this.player_.muted() ? false : true );
-};
-
-vjs.MuteToggle.prototype.update = function(){
-  var vol = this.player_.volume(),
-      level = 3;
-
-  if (vol === 0 || this.player_.muted()) {
-    level = 0;
-  } else if (vol < 0.33) {
-    level = 1;
-  } else if (vol < 0.67) {
-    level = 2;
-  }
-
-  // Don't rewrite the button text if the actual text doesn't change.
-  // This causes unnecessary and confusing information for screen reader users.
-  // This check is needed because this function gets called every time the volume level is changed.
-  if(this.player_.muted()){
-      if(this.el_.children[0].children[0].innerHTML!='Unmute'){
-          this.el_.children[0].children[0].innerHTML = 'Unmute'; // change the button text to "Unmute"
-      }
-  } else {
-      if(this.el_.children[0].children[0].innerHTML!='Mute'){
-          this.el_.children[0].children[0].innerHTML = 'Mute'; // change the button text to "Mute"
-      }
-  }
-
-  /* TODO improve muted icon classes */
-  for (var i = 0; i < 4; i++) {
-    vjs.removeClass(this.el_, 'vjs-vol-'+i);
-  }
-  vjs.addClass(this.el_, 'vjs-vol-'+level);
-};
-/**
- * Menu button with a popup for showing the volume slider.
- * @constructor
- */
-vjs.VolumeMenuButton = vjs.MenuButton.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.MenuButton.call(this, player, options);
-
-    // Same listeners as MuteToggle
-    player.on('volumechange', vjs.bind(this, this.update));
-
-    // hide mute toggle if the current tech doesn't support volume control
-    if (player.tech && player.tech.features && player.tech.features.volumeControl === false) {
-      this.addClass('vjs-hidden');
-    }
-    player.on('loadstart', vjs.bind(this, function(){
-      if (player.tech.features && player.tech.features.volumeControl === false) {
-        this.addClass('vjs-hidden');
-      } else {
-        this.removeClass('vjs-hidden');
-      }
-    }));
-    this.addClass('vjs-menu-button');
-  }
-});
-
-vjs.VolumeMenuButton.prototype.createMenu = function(){
-  var menu = new vjs.Menu(this.player_, {
-    contentElType: 'div'
-  });
-  var vc = new vjs.VolumeBar(this.player_, vjs.obj.merge({vertical: true}, this.options_.volumeBar));
-  menu.addChild(vc);
-  return menu;
-};
-
-vjs.VolumeMenuButton.prototype.onClick = function(){
-  vjs.MuteToggle.prototype.onClick.call(this);
-  vjs.MenuButton.prototype.onClick.call(this);
-};
-
-vjs.VolumeMenuButton.prototype.createEl = function(){
-  return vjs.Button.prototype.createEl.call(this, 'div', {
-    className: 'vjs-volume-menu-button vjs-menu-button vjs-control',
-    innerHTML: '<div><span class="vjs-control-text">Mute</span></div>'
-  });
-};
-vjs.VolumeMenuButton.prototype.update = vjs.MuteToggle.prototype.update;
-/* Poster Image
-================================================================================ */
-/**
- * The component that handles showing the poster image.
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.PosterImage = vjs.Button.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Button.call(this, player, options);
-
-    if (!player.poster() || !player.controls()) {
-      this.hide();
-    }
-
-    player.on('play', vjs.bind(this, this.hide));
-  }
-});
-
-vjs.PosterImage.prototype.createEl = function(){
-  var el = vjs.createEl('div', {
-        className: 'vjs-poster',
-
-        // Don't want poster to be tabbable.
-        tabIndex: -1
-      }),
-      poster = this.player_.poster();
-
-  if (poster) {
-    if ('backgroundSize' in el.style) {
-      el.style.backgroundImage = 'url("' + poster + '")';
-    } else {
-      el.appendChild(vjs.createEl('img', { src: poster }));
-    }
-  }
-
-  return el;
-};
-
-vjs.PosterImage.prototype.onClick = function(){
-  // Only accept clicks when controls are enabled
-  if (this.player().controls()) {
-    this.player_.play();
-  }
-};
-/* Loading Spinner
-================================================================================ */
-/**
- * Loading spinner for waiting events
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @class
- * @constructor
- */
-vjs.LoadingSpinner = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-
-    player.on('canplay', vjs.bind(this, this.hide));
-    player.on('canplaythrough', vjs.bind(this, this.hide));
-    player.on('playing', vjs.bind(this, this.hide));
-    player.on('seeked', vjs.bind(this, this.hide));
-
-    player.on('seeking', vjs.bind(this, this.show));
-
-    // in some browsers seeking does not trigger the 'playing' event,
-    // so we also need to trap 'seeked' if we are going to set a
-    // 'seeking' event
-    player.on('seeked', vjs.bind(this, this.hide));
-
-    player.on('error', vjs.bind(this, this.show));
-
-    // Not showing spinner on stalled any more. Browsers may stall and then not trigger any events that would remove the spinner.
-    // Checked in Chrome 16 and Safari 5.1.2. http://help.videojs.com/discussions/problems/883-why-is-the-download-progress-showing
-    // player.on('stalled', vjs.bind(this, this.show));
-
-    player.on('waiting', vjs.bind(this, this.show));
-  }
-});
-
-vjs.LoadingSpinner.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-loading-spinner'
-  });
-};
-/* Big Play Button
-================================================================================ */
-/**
- * Initial play button. Shows before the video has played. The hiding of the
- * big play button is done via CSS and player states.
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @class
- * @constructor
- */
-vjs.BigPlayButton = vjs.Button.extend();
-
-vjs.BigPlayButton.prototype.createEl = function(){
-  return vjs.Button.prototype.createEl.call(this, 'div', {
-    className: 'vjs-big-play-button',
-    innerHTML: '<span aria-hidden="true"></span>',
-    'aria-label': 'play video'
-  });
-};
-
-vjs.BigPlayButton.prototype.onClick = function(){
-  this.player_.play();
-};
-/**
- * @fileoverview Media Technology Controller - Base class for media playback
- * technology controllers like Flash and HTML5
- */
-
-/**
- * Base class for media (HTML5 Video, Flash) controllers
- * @param {vjs.Player|Object} player  Central player instance
- * @param {Object=} options Options object
- * @constructor
- */
-vjs.MediaTechController = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options, ready){
-    vjs.Component.call(this, player, options, ready);
-
-    this.initControlsListeners();
-  }
-});
-
-/**
- * Set up click and touch listeners for the playback element
- * On desktops, a click on the video itself will toggle playback,
- * on a mobile device a click on the video toggles controls.
- * (toggling controls is done by toggling the user state between active and
- * inactive)
- *
- * A tap can signal that a user has become active, or has become inactive
- * e.g. a quick tap on an iPhone movie should reveal the controls. Another
- * quick tap should hide them again (signaling the user is in an inactive
- * viewing state)
- *
- * In addition to this, we still want the user to be considered inactive after
- * a few seconds of inactivity.
- *
- * Note: the only part of iOS interaction we can't mimic with this setup
- * is a touch and hold on the video element counting as activity in order to
- * keep the controls showing, but that shouldn't be an issue. A touch and hold on
- * any controls will still keep the user active
- */
-vjs.MediaTechController.prototype.initControlsListeners = function(){
-  var player, tech, activateControls, deactivateControls;
-
-  tech = this;
-  player = this.player();
-
-  var activateControls = function(){
-    if (player.controls() && !player.usingNativeControls()) {
-      tech.addControlsListeners();
-    }
-  };
-
-  deactivateControls = vjs.bind(tech, tech.removeControlsListeners);
-
-  // Set up event listeners once the tech is ready and has an element to apply
-  // listeners to
-  this.ready(activateControls);
-  player.on('controlsenabled', activateControls);
-  player.on('controlsdisabled', deactivateControls);
-};
-
-vjs.MediaTechController.prototype.addControlsListeners = function(){
-  var preventBubble, userWasActive;
-
-  // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do
-  // trigger mousedown/up.
-  // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object
-  // Any touch events are set to block the mousedown event from happening
-  this.on('mousedown', this.onClick);
-
-  // We need to block touch events on the video element from bubbling up,
-  // otherwise they'll signal activity prematurely. The specific use case is
-  // when the video is playing and the controls have faded out. In this case
-  // only a tap (fast touch) should toggle the user active state and turn the
-  // controls back on. A touch and move or touch and hold should not trigger
-  // the controls (per iOS as an example at least)
-  //
-  // We always want to stop propagation on touchstart because touchstart
-  // at the player level starts the touchInProgress interval. We can still
-  // report activity on the other events, but won't let them bubble for
-  // consistency. We don't want to bubble a touchend without a touchstart.
-  this.on('touchstart', function(event) {
-    // Stop the mouse events from also happening
-    event.preventDefault();
-    event.stopPropagation();
-    // Record if the user was active now so we don't have to keep polling it
-    userWasActive = this.player_.userActive();
-  });
-
-  preventBubble = function(event){
-    event.stopPropagation();
-    if (userWasActive) {
-      this.player_.reportUserActivity();
-    }
-  };
-
-  // Treat all touch events the same for consistency
-  this.on('touchmove', preventBubble);
-  this.on('touchleave', preventBubble);
-  this.on('touchcancel', preventBubble);
-  this.on('touchend', preventBubble);
-
-  // Turn on component tap events
-  this.emitTapEvents();
-
-  // The tap listener needs to come after the touchend listener because the tap
-  // listener cancels out any reportedUserActivity when setting userActive(false)
-  this.on('tap', this.onTap);
-};
-
-/**
- * Remove the listeners used for click and tap controls. This is needed for
- * toggling to controls disabled, where a tap/touch should do nothing.
- */
-vjs.MediaTechController.prototype.removeControlsListeners = function(){
-  // We don't want to just use `this.off()` because there might be other needed
-  // listeners added by techs that extend this.
-  this.off('tap');
-  this.off('touchstart');
-  this.off('touchmove');
-  this.off('touchleave');
-  this.off('touchcancel');
-  this.off('touchend');
-  this.off('click');
-  this.off('mousedown');
-};
-
-/**
- * Handle a click on the media element. By default will play/pause the media.
- */
-vjs.MediaTechController.prototype.onClick = function(event){
-  // We're using mousedown to detect clicks thanks to Flash, but mousedown
-  // will also be triggered with right-clicks, so we need to prevent that
-  if (event.button !== 0) return;
-
-  // When controls are disabled a click should not toggle playback because
-  // the click is considered a control
-  if (this.player().controls()) {
-    if (this.player().paused()) {
-      this.player().play();
-    } else {
-      this.player().pause();
-    }
-  }
-};
-
-/**
- * Handle a tap on the media element. By default it will toggle the user
- * activity state, which hides and shows the controls.
- */
-
-vjs.MediaTechController.prototype.onTap = function(){
-  this.player().userActive(!this.player().userActive());
-};
-
-vjs.MediaTechController.prototype.features = {
-  'volumeControl': true,
-
-  // Resizing plugins using request fullscreen reloads the plugin
-  'fullscreenResize': false,
-
-  // Optional events that we can manually mimic with timers
-  // currently not triggered by video-js-swf
-  'progressEvents': false,
-  'timeupdateEvents': false
-};
-
-vjs.media = {};
-
-/**
- * List of default API methods for any MediaTechController
- * @type {String}
- */
-vjs.media.ApiMethods = 'play,pause,paused,currentTime,setCurrentTime,duration,buffered,volume,setVolume,muted,setMuted,width,height,supportsFullScreen,enterFullScreen,src,load,currentSrc,preload,setPreload,autoplay,setAutoplay,loop,setLoop,error,networkState,readyState,seeking,initialTime,startOffsetTime,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks,defaultPlaybackRate,playbackRate,mediaGroup,controller,controls,defaultMuted'.split(',');
-// Create placeholder methods for each that warn when a method isn't supported by the current playback technology
-
-function createMethod(methodName){
-  return function(){
-    throw new Error('The "'+methodName+'" method is not available on the playback technology\'s API');
-  };
-}
-
-for (var i = vjs.media.ApiMethods.length - 1; i >= 0; i--) {
-  var methodName = vjs.media.ApiMethods[i];
-  vjs.MediaTechController.prototype[vjs.media.ApiMethods[i]] = createMethod(methodName);
-}
-/**
- * @fileoverview HTML5 Media Controller - Wrapper for HTML5 Media API
- */
-
-/**
- * HTML5 Media Controller - Wrapper for HTML5 Media API
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @param {Function=} ready
- * @constructor
- */
-vjs.Html5 = vjs.MediaTechController.extend({
-  /** @constructor */
-  init: function(player, options, ready){
-    // volume cannot be changed from 1 on iOS
-    this.features['volumeControl'] = vjs.Html5.canControlVolume();
-
-    // In iOS, if you move a video element in the DOM, it breaks video playback.
-    this.features['movingMediaElementInDOM'] = !vjs.IS_IOS;
-
-    // HTML video is able to automatically resize when going to fullscreen
-    this.features['fullscreenResize'] = true;
-
-    vjs.MediaTechController.call(this, player, options, ready);
-
-    var source = options['source'];
-
-    // If the element source is already set, we may have missed the loadstart event, and want to trigger it.
-    // We don't want to set the source again and interrupt playback.
-    if (source && this.el_.currentSrc === source.src && this.el_.networkState > 0) {
-      player.trigger('loadstart');
-
-    // Otherwise set the source if one was provided.
-    } else if (source) {
-      this.el_.src = source.src;
-    }
-
-    // Determine if native controls should be used
-    // Our goal should be to get the custom controls on mobile solid everywhere
-    // so we can remove this all together. Right now this will block custom
-    // controls on touch enabled laptops like the Chrome Pixel
-    if (vjs.TOUCH_ENABLED && player.options()['nativeControlsForTouch'] !== false) {
-      this.useNativeControls();
-    }
-
-    // Chrome and Safari both have issues with autoplay.
-    // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.
-    // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)
-    // This fixes both issues. Need to wait for API, so it updates displays correctly
-    player.ready(function(){
-      if (this.tag && this.options_['autoplay'] && this.paused()) {
-        delete this.tag['poster']; // Chrome Fix. Fixed in Chrome v16.
-        this.play();
-      }
-    });
-
-    this.setupTriggers();
-    this.triggerReady();
-  }
-});
-
-vjs.Html5.prototype.dispose = function(){
-  vjs.MediaTechController.prototype.dispose.call(this);
-};
-
-vjs.Html5.prototype.createEl = function(){
-  var player = this.player_,
-      // If possible, reuse original tag for HTML5 playback technology element
-      el = player.tag,
-      newEl,
-      clone;
-
-  // Check if this browser supports moving the element into the box.
-  // On the iPhone video will break if you move the element,
-  // So we have to create a brand new element.
-  if (!el || this.features['movingMediaElementInDOM'] === false) {
-
-    // If the original tag is still there, clone and remove it.
-    if (el) {
-      clone = el.cloneNode(false);
-      vjs.Html5.disposeMediaElement(el);
-      el = clone;
-      player.tag = null;
-    } else {
-      el = vjs.createEl('video', {
-        id:player.id() + '_html5_api',
-        className:'vjs-tech'
-      });
-    }
-    // associate the player with the new tag
-    el['player'] = player;
-
-    vjs.insertFirst(el, player.el());
-  }
-
-  // Update specific tag settings, in case they were overridden
-  var attrs = ['autoplay','preload','loop','muted'];
-  for (var i = attrs.length - 1; i >= 0; i--) {
-    var attr = attrs[i];
-    if (player.options_[attr] !== null) {
-      el[attr] = player.options_[attr];
-    }
-  }
-
-  return el;
-  // jenniisawesome = true;
-};
-
-// Make video events trigger player events
-// May seem verbose here, but makes other APIs possible.
-vjs.Html5.prototype.setupTriggers = function(){
-  for (var i = vjs.Html5.Events.length - 1; i >= 0; i--) {
-    vjs.on(this.el_, vjs.Html5.Events[i], vjs.bind(this.player_, this.eventHandler));
-  }
-};
-// Triggers removed using this.off when disposed
-
-vjs.Html5.prototype.eventHandler = function(e){
-  this.trigger(e);
-
-  // No need for media events to bubble up.
-  e.stopPropagation();
-};
-
-vjs.Html5.prototype.useNativeControls = function(){
-  var tech, player, controlsOn, controlsOff, cleanUp;
-
-  tech = this;
-  player = this.player();
-
-  // If the player controls are enabled turn on the native controls
-  tech.setControls(player.controls());
-
-  // Update the native controls when player controls state is updated
-  controlsOn = function(){
-    tech.setControls(true);
-  };
-  controlsOff = function(){
-    tech.setControls(false);
-  };
-  player.on('controlsenabled', controlsOn);
-  player.on('controlsdisabled', controlsOff);
-
-  // Clean up when not using native controls anymore
-  cleanUp = function(){
-    player.off('controlsenabled', controlsOn);
-    player.off('controlsdisabled', controlsOff);
-  };
-  tech.on('dispose', cleanUp);
-  player.on('usingcustomcontrols', cleanUp);
-
-  // Update the state of the player to using native controls
-  player.usingNativeControls(true);
-};
-
-
-vjs.Html5.prototype.play = function(){ this.el_.play(); };
-vjs.Html5.prototype.pause = function(){ this.el_.pause(); };
-vjs.Html5.prototype.paused = function(){ return this.el_.paused; };
-
-vjs.Html5.prototype.currentTime = function(){ return this.el_.currentTime; };
-vjs.Html5.prototype.setCurrentTime = function(seconds){
-  try {
-    this.el_.currentTime = seconds;
-  } catch(e) {
-    vjs.log(e, 'Video is not ready. (Video.js)');
-    // this.warning(VideoJS.warnings.videoNotReady);
-  }
-};
-
-vjs.Html5.prototype.duration = function(){ return this.el_.duration || 0; };
-vjs.Html5.prototype.buffered = function(){ return this.el_.buffered; };
-
-vjs.Html5.prototype.volume = function(){ return this.el_.volume; };
-vjs.Html5.prototype.setVolume = function(percentAsDecimal){ this.el_.volume = percentAsDecimal; };
-vjs.Html5.prototype.muted = function(){ return this.el_.muted; };
-vjs.Html5.prototype.setMuted = function(muted){ this.el_.muted = muted; };
-
-vjs.Html5.prototype.width = function(){ return this.el_.offsetWidth; };
-vjs.Html5.prototype.height = function(){ return this.el_.offsetHeight; };
-
-vjs.Html5.prototype.supportsFullScreen = function(){
-  if (typeof this.el_.webkitEnterFullScreen == 'function') {
-
-    // Seems to be broken in Chromium/Chrome && Safari in Leopard
-    if (/Android/.test(vjs.USER_AGENT) || !/Chrome|Mac OS X 10.5/.test(vjs.USER_AGENT)) {
-      return true;
-    }
-  }
-  return false;
-};
-
-vjs.Html5.prototype.enterFullScreen = function(){
-  var video = this.el_;
-  if (video.paused && video.networkState <= video.HAVE_METADATA) {
-    // attempt to prime the video element for programmatic access
-    // this isn't necessary on the desktop but shouldn't hurt
-    this.el_.play();
-
-    // playing and pausing synchronously during the transition to fullscreen
-    // can get iOS ~6.1 devices into a play/pause loop
-    setTimeout(function(){
-      video.pause();
-      video.webkitEnterFullScreen();
-    }, 0);
-  } else {
-    video.webkitEnterFullScreen();
-  }
-};
-vjs.Html5.prototype.exitFullScreen = function(){
-  this.el_.webkitExitFullScreen();
-};
-vjs.Html5.prototype.src = function(src){ this.el_.src = src; };
-vjs.Html5.prototype.load = function(){ this.el_.load(); };
-vjs.Html5.prototype.currentSrc = function(){ return this.el_.currentSrc; };
-
-vjs.Html5.prototype.preload = function(){ return this.el_.preload; };
-vjs.Html5.prototype.setPreload = function(val){ this.el_.preload = val; };
-
-vjs.Html5.prototype.autoplay = function(){ return this.el_.autoplay; };
-vjs.Html5.prototype.setAutoplay = function(val){ this.el_.autoplay = val; };
-
-vjs.Html5.prototype.controls = function(){ return this.el_.controls; }
-vjs.Html5.prototype.setControls = function(val){ this.el_.controls = !!val; }
-
-vjs.Html5.prototype.loop = function(){ return this.el_.loop; };
-vjs.Html5.prototype.setLoop = function(val){ this.el_.loop = val; };
-
-vjs.Html5.prototype.error = function(){ return this.el_.error; };
-vjs.Html5.prototype.seeking = function(){ return this.el_.seeking; };
-vjs.Html5.prototype.ended = function(){ return this.el_.ended; };
-vjs.Html5.prototype.defaultMuted = function(){ return this.el_.defaultMuted; };
-
-/* HTML5 Support Testing ---------------------------------------------------- */
-
-vjs.Html5.isSupported = function(){
-  return !!vjs.TEST_VID.canPlayType;
-};
-
-vjs.Html5.canPlaySource = function(srcObj){
-  // IE9 on Windows 7 without MediaPlayer throws an error here
-  // https://github.com/videojs/video.js/issues/519
-  try {
-    return !!vjs.TEST_VID.canPlayType(srcObj.type);
-  } catch(e) {
-    return '';
-  }
-  // TODO: Check Type
-  // If no Type, check ext
-  // Check Media Type
-};
-
-vjs.Html5.canControlVolume = function(){
-  var volume =  vjs.TEST_VID.volume;
-  vjs.TEST_VID.volume = (volume / 2) + 0.1;
-  return volume !== vjs.TEST_VID.volume;
-};
-
-// List of all HTML5 events (various uses).
-vjs.Html5.Events = 'loadstart,suspend,abort,error,emptied,stalled,loadedmetadata,loadeddata,canplay,canplaythrough,playing,waiting,seeking,seeked,ended,durationchange,timeupdate,progress,play,pause,ratechange,volumechange'.split(',');
-
-vjs.Html5.disposeMediaElement = function(el){
-  if (!el) { return; }
-
-  el['player'] = null;
-
-  if (el.parentNode) {
-    el.parentNode.removeChild(el);
-  }
-
-  // remove any child track or source nodes to prevent their loading
-  while(el.hasChildNodes()) {
-    el.removeChild(el.firstChild);
-  }
-
-  // remove any src reference. not setting `src=''` because that causes a warning
-  // in firefox
-  el.removeAttribute('src');
-
-  // force the media element to update its loading state by calling load()
-  if (typeof el.load === 'function') {
-    el.load();
-  }
-};
-
-// HTML5 Feature detection and Device Fixes --------------------------------- //
-
-  // Override Android 2.2 and less canPlayType method which is broken
-if (vjs.IS_OLD_ANDROID) {
-  document.createElement('video').constructor.prototype.canPlayType = function(type){
-    return (type && type.toLowerCase().indexOf('video/mp4') != -1) ? 'maybe' : '';
-  };
-}
-/**
- * @fileoverview VideoJS-SWF - Custom Flash Player with HTML5-ish API
- * https://github.com/zencoder/video-js-swf
- * Not using setupTriggers. Using global onEvent func to distribute events
- */
-
-/**
- * Flash Media Controller - Wrapper for fallback SWF API
- *
- * @param {vjs.Player} player
- * @param {Object=} options
- * @param {Function=} ready
- * @constructor
- */
-vjs.Flash = vjs.MediaTechController.extend({
-  /** @constructor */
-  init: function(player, options, ready){
-    vjs.MediaTechController.call(this, player, options, ready);
-
-    var source = options['source'],
-
-        // Which element to embed in
-        parentEl = options['parentEl'],
-
-        // Create a temporary element to be replaced by swf object
-        placeHolder = this.el_ = vjs.createEl('div', { id: player.id() + '_temp_flash' }),
-
-        // Generate ID for swf object
-        objId = player.id()+'_flash_api',
-
-        // Store player options in local var for optimization
-        // TODO: switch to using player methods instead of options
-        // e.g. player.autoplay();
-        playerOptions = player.options_,
-
-        // Merge default flashvars with ones passed in to init
-        flashVars = vjs.obj.merge({
-
-          // SWF Callback Functions
-          'readyFunction': 'videojs.Flash.onReady',
-          'eventProxyFunction': 'videojs.Flash.onEvent',
-          'errorEventProxyFunction': 'videojs.Flash.onError',
-
-          // Player Settings
-          'autoplay': playerOptions.autoplay,
-          'preload': playerOptions.preload,
-          'loop': playerOptions.loop,
-          'muted': playerOptions.muted
-
-        }, options['flashVars']),
-
-        // Merge default parames with ones passed in
-        params = vjs.obj.merge({
-          'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance
-          'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading
-        }, options['params']),
-
-        // Merge default attributes with ones passed in
-        attributes = vjs.obj.merge({
-          'id': objId,
-          'name': objId, // Both ID and Name needed or swf to identifty itself
-          'class': 'vjs-tech'
-        }, options['attributes'])
-    ;
-
-    // If source was supplied pass as a flash var.
-    if (source) {
-      if (source.type && vjs.Flash.isStreamingType(source.type)) {
-        var parts = vjs.Flash.streamToParts(source.src);
-        flashVars['rtmpConnection'] = encodeURIComponent(parts.connection);
-        flashVars['rtmpStream'] = encodeURIComponent(parts.stream);
-      }
-      else {
-        flashVars['src'] = encodeURIComponent(vjs.getAbsoluteURL(source.src));
-      }
-    }
-
-    // Add placeholder to player div
-    vjs.insertFirst(placeHolder, parentEl);
-
-    // Having issues with Flash reloading on certain page actions (hide/resize/fullscreen) in certain browsers
-    // This allows resetting the playhead when we catch the reload
-    if (options['startTime']) {
-      this.ready(function(){
-        this.load();
-        this.play();
-        this.currentTime(options['startTime']);
-      });
-    }
-
-    // Flash iFrame Mode
-    // In web browsers there are multiple instances where changing the parent element or visibility of a plugin causes the plugin to reload.
-    // - Firefox just about always. https://bugzilla.mozilla.org/show_bug.cgi?id=90268 (might be fixed by version 13)
-    // - Webkit when hiding the plugin
-    // - Webkit and Firefox when using requestFullScreen on a parent element
-    // Loading the flash plugin into a dynamically generated iFrame gets around most of these issues.
-    // Issues that remain include hiding the element and requestFullScreen in Firefox specifically
-
-    // There's on particularly annoying issue with this method which is that Firefox throws a security error on an offsite Flash object loaded into a dynamically created iFrame.
-    // Even though the iframe was inserted into a page on the web, Firefox + Flash considers it a local app trying to access an internet file.
-    // I tried mulitple ways of setting the iframe src attribute but couldn't find a src that worked well. Tried a real/fake source, in/out of domain.
-    // Also tried a method from stackoverflow that caused a security error in all browsers. http://stackoverflow.com/questions/2486901/how-to-set-document-domain-for-a-dynamically-generated-iframe
-    // In the end the solution I found to work was setting the iframe window.location.href right before doing a document.write of the Flash object.
-    // The only downside of this it seems to trigger another http request to the original page (no matter what's put in the href). Not sure why that is.
-
-    // NOTE (2012-01-29): Cannot get Firefox to load the remote hosted SWF into a dynamically created iFrame
-    // Firefox 9 throws a security error, unleess you call location.href right before doc.write.
-    //    Not sure why that even works, but it causes the browser to look like it's continuously trying to load the page.
-    // Firefox 3.6 keeps calling the iframe onload function anytime I write to it, causing an endless loop.
-
-    if (options['iFrameMode'] === true && !vjs.IS_FIREFOX) {
-
-      // Create iFrame with vjs-tech class so it's 100% width/height
-      var iFrm = vjs.createEl('iframe', {
-        'id': objId + '_iframe',
-        'name': objId + '_iframe',
-        'className': 'vjs-tech',
-        'scrolling': 'no',
-        'marginWidth': 0,
-        'marginHeight': 0,
-        'frameBorder': 0
-      });
-
-      // Update ready function names in flash vars for iframe window
-      flashVars['readyFunction'] = 'ready';
-      flashVars['eventProxyFunction'] = 'events';
-      flashVars['errorEventProxyFunction'] = 'errors';
-
-      // Tried multiple methods to get this to work in all browsers
-
-      // Tried embedding the flash object in the page first, and then adding a place holder to the iframe, then replacing the placeholder with the page object.
-      // The goal here was to try to load the swf URL in the parent page first and hope that got around the firefox security error
-      // var newObj = vjs.Flash.embed(options['swf'], placeHolder, flashVars, params, attributes);
-      // (in onload)
-      //  var temp = vjs.createEl('a', { id:'asdf', innerHTML: 'asdf' } );
-      //  iDoc.body.appendChild(temp);
-
-      // Tried embedding the flash object through javascript in the iframe source.
-      // This works in webkit but still triggers the firefox security error
-      // iFrm.src = 'javascript: document.write('"+vjs.Flash.getEmbedCode(options['swf'], flashVars, params, attributes)+"');";
-
-      // Tried an actual local iframe just to make sure that works, but it kills the easiness of the CDN version if you require the user to host an iframe
-      // We should add an option to host the iframe locally though, because it could help a lot of issues.
-      // iFrm.src = "iframe.html";
-
-      // Wait until iFrame has loaded to write into it.
-      vjs.on(iFrm, 'load', vjs.bind(this, function(){
-
-        var iDoc,
-            iWin = iFrm.contentWindow;
-
-        // The one working method I found was to use the iframe's document.write() to create the swf object
-        // This got around the security issue in all browsers except firefox.
-        // I did find a hack where if I call the iframe's window.location.href='', it would get around the security error
-        // However, the main page would look like it was loading indefinitely (URL bar loading spinner would never stop)
-        // Plus Firefox 3.6 didn't work no matter what I tried.
-        // if (vjs.USER_AGENT.match('Firefox')) {
-        //   iWin.location.href = '';
-        // }
-
-        // Get the iFrame's document depending on what the browser supports
-        iDoc = iFrm.contentDocument ? iFrm.contentDocument : iFrm.contentWindow.document;
-
-        // Tried ensuring both document domains were the same, but they already were, so that wasn't the issue.
-        // Even tried adding /. that was mentioned in a browser security writeup
-        // document.domain = document.domain+'/.';
-        // iDoc.domain = document.domain+'/.';
-
-        // Tried adding the object to the iframe doc's innerHTML. Security error in all browsers.
-        // iDoc.body.innerHTML = swfObjectHTML;
-
-        // Tried appending the object to the iframe doc's body. Security error in all browsers.
-        // iDoc.body.appendChild(swfObject);
-
-        // Using document.write actually got around the security error that browsers were throwing.
-        // Again, it's a dynamically generated (same domain) iframe, loading an external Flash swf.
-        // Not sure why that's a security issue, but apparently it is.
-        iDoc.write(vjs.Flash.getEmbedCode(options['swf'], flashVars, params, attributes));
-
-        // Setting variables on the window needs to come after the doc write because otherwise they can get reset in some browsers
-        // So far no issues with swf ready event being called before it's set on the window.
-        iWin['player'] = this.player_;
-
-        // Create swf ready function for iFrame window
-        iWin['ready'] = vjs.bind(this.player_, function(currSwf){
-          var el = iDoc.getElementById(currSwf),
-              player = this,
-              tech = player.tech;
-
-          // Update reference to playback technology element
-          tech.el_ = el;
-
-          // Make sure swf is actually ready. Sometimes the API isn't actually yet.
-          vjs.Flash.checkReady(tech);
-        });
-
-        // Create event listener for all swf events
-        iWin['events'] = vjs.bind(this.player_, function(swfID, eventName){
-          var player = this;
-          if (player && player.techName === 'flash') {
-            player.trigger(eventName);
-          }
-        });
-
-        // Create error listener for all swf errors
-        iWin['errors'] = vjs.bind(this.player_, function(swfID, eventName){
-          vjs.log('Flash Error', eventName);
-        });
-
-      }));
-
-      // Replace placeholder with iFrame (it will load now)
-      placeHolder.parentNode.replaceChild(iFrm, placeHolder);
-
-    // If not using iFrame mode, embed as normal object
-    } else {
-      vjs.Flash.embed(options['swf'], placeHolder, flashVars, params, attributes);
-    }
-  }
-});
-
-vjs.Flash.prototype.dispose = function(){
-  vjs.MediaTechController.prototype.dispose.call(this);
-};
-
-vjs.Flash.prototype.play = function(){
-  this.el_.vjs_play();
-};
-
-vjs.Flash.prototype.pause = function(){
-  this.el_.vjs_pause();
-};
-
-vjs.Flash.prototype.src = function(src){
-  if (vjs.Flash.isStreamingSrc(src)) {
-    src = vjs.Flash.streamToParts(src);
-    this.setRtmpConnection(src.connection);
-    this.setRtmpStream(src.stream);
-  }
-  else {
-    // Make sure source URL is abosolute.
-    src = vjs.getAbsoluteURL(src);
-    this.el_.vjs_src(src);
-  }
-
-  // Currently the SWF doesn't autoplay if you load a source later.
-  // e.g. Load player w/ no source, wait 2s, set src.
-  if (this.player_.autoplay()) {
-    var tech = this;
-    setTimeout(function(){ tech.play(); }, 0);
-  }
-};
-
-vjs.Flash.prototype.currentSrc = function(){
-  var src = this.el_.vjs_getProperty('currentSrc');
-  // no src, check and see if RTMP
-  if (src == null) {
-    var connection = this.rtmpConnection(),
-        stream = this.rtmpStream();
-
-    if (connection && stream) {
-      src = vjs.Flash.streamFromParts(connection, stream);
-    }
-  }
-  return src;
-};
-
-vjs.Flash.prototype.load = function(){
-  this.el_.vjs_load();
-};
-
-vjs.Flash.prototype.poster = function(){
-  this.el_.vjs_getProperty('poster');
-};
-
-vjs.Flash.prototype.buffered = function(){
-  return vjs.createTimeRange(0, this.el_.vjs_getProperty('buffered'));
-};
-
-vjs.Flash.prototype.supportsFullScreen = function(){
-  return false; // Flash does not allow fullscreen through javascript
-};
-
-vjs.Flash.prototype.enterFullScreen = function(){
-  return false;
-};
-
-
-// Create setters and getters for attributes
-var api = vjs.Flash.prototype,
-    readWrite = 'rtmpConnection,rtmpStream,preload,currentTime,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(','),
-    readOnly = 'error,currentSrc,networkState,readyState,seeking,initialTime,duration,startOffsetTime,paused,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks'.split(',');
-    // Overridden: buffered
-
-/**
- * @this {*}
- * @private
- */
-var createSetter = function(attr){
-  var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);
-  api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };
-};
-
-/**
- * @this {*}
- * @private
- */
-var createGetter = function(attr){
-  api[attr] = function(){ return this.el_.vjs_getProperty(attr); };
-};
-
-(function(){
-  var i;
-  // Create getter and setters for all read/write attributes
-  for (i = 0; i < readWrite.length; i++) {
-    createGetter(readWrite[i]);
-    createSetter(readWrite[i]);
-  }
-
-  // Create getters for read-only attributes
-  for (i = 0; i < readOnly.length; i++) {
-    createGetter(readOnly[i]);
-  }
-})();
-
-/* Flash Support Testing -------------------------------------------------------- */
-
-vjs.Flash.isSupported = function(){
-  return vjs.Flash.version()[0] >= 10;
-  // return swfobject.hasFlashPlayerVersion('10');
-};
-
-vjs.Flash.canPlaySource = function(srcObj){
-  var type;
-
-  if (!srcObj.type) {
-    return '';
-  }
-
-  type = srcObj.type.replace(/;.*/,'').toLowerCase();
-  if (type in vjs.Flash.formats || type in vjs.Flash.streamingFormats) {
-    return 'maybe';
-  }
-};
-
-vjs.Flash.formats = {
-  'video/flv': 'FLV',
-  'video/x-flv': 'FLV',
-  'video/mp4': 'MP4',
-  'video/m4v': 'MP4'
-};
-
-vjs.Flash.streamingFormats = {
-  'rtmp/mp4': 'MP4',
-  'rtmp/flv': 'FLV'
-};
-
-vjs.Flash['onReady'] = function(currSwf){
-  var el = vjs.el(currSwf);
-
-  // Get player from box
-  // On firefox reloads, el might already have a player
-  var player = el['player'] || el.parentNode['player'],
-      tech = player.tech;
-
-  // Reference player on tech element
-  el['player'] = player;
-
-  // Update reference to playback technology element
-  tech.el_ = el;
-
-  vjs.Flash.checkReady(tech);
-};
-
-// The SWF isn't alwasy ready when it says it is. Sometimes the API functions still need to be added to the object.
-// If it's not ready, we set a timeout to check again shortly.
-vjs.Flash.checkReady = function(tech){
-
-  // Check if API property exists
-  if (tech.el().vjs_getProperty) {
-
-    // If so, tell tech it's ready
-    tech.triggerReady();
-
-  // Otherwise wait longer.
-  } else {
-
-    setTimeout(function(){
-      vjs.Flash.checkReady(tech);
-    }, 50);
-
-  }
-};
-
-// Trigger events from the swf on the player
-vjs.Flash['onEvent'] = function(swfID, eventName){
-  var player = vjs.el(swfID)['player'];
-  player.trigger(eventName);
-};
-
-// Log errors from the swf
-vjs.Flash['onError'] = function(swfID, err){
-  var player = vjs.el(swfID)['player'];
-  player.trigger('error');
-  vjs.log('Flash Error', err, swfID);
-};
-
-// Flash Version Check
-vjs.Flash.version = function(){
-  var version = '0,0,0';
-
-  // IE
-  try {
-    version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
-
-  // other browsers
-  } catch(e) {
-    try {
-      if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){
-        version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
-      }
-    } catch(err) {}
-  }
-  return version.split(',');
-};
-
-// Flash embedding method. Only used in non-iframe mode
-vjs.Flash.embed = function(swf, placeHolder, flashVars, params, attributes){
-  var code = vjs.Flash.getEmbedCode(swf, flashVars, params, attributes),
-
-      // Get element by embedding code and retrieving created element
-      obj = vjs.createEl('div', { innerHTML: code }).childNodes[0],
-
-      par = placeHolder.parentNode
-  ;
-
-  placeHolder.parentNode.replaceChild(obj, placeHolder);
-
-  // IE6 seems to have an issue where it won't initialize the swf object after injecting it.
-  // This is a dumb fix
-  var newObj = par.childNodes[0];
-  setTimeout(function(){
-    newObj.style.display = 'block';
-  }, 1000);
-
-  return obj;
-
-};
-
-vjs.Flash.getEmbedCode = function(swf, flashVars, params, attributes){
-
-  var objTag = '<object type="application/x-shockwave-flash"',
-      flashVarsString = '',
-      paramsString = '',
-      attrsString = '';
-
-  // Convert flash vars to string
-  if (flashVars) {
-    vjs.obj.each(flashVars, function(key, val){
-      flashVarsString += (key + '=' + val + '&amp;');
-    });
-  }
-
-  // Add swf, flashVars, and other default params
-  params = vjs.obj.merge({
-    'movie': swf,
-    'flashvars': flashVarsString,
-    'allowScriptAccess': 'always', // Required to talk to swf
-    'allowNetworking': 'all' // All should be default, but having security issues.
-  }, params);
-
-  // Create param tags string
-  vjs.obj.each(params, function(key, val){
-    paramsString += '<param name="'+key+'" value="'+val+'" />';
-  });
-
-  attributes = vjs.obj.merge({
-    // Add swf to attributes (need both for IE and Others to work)
-    'data': swf,
-
-    // Default to 100% width/height
-    'width': '100%',
-    'height': '100%'
-
-  }, attributes);
-
-  // Create Attributes string
-  vjs.obj.each(attributes, function(key, val){
-    attrsString += (key + '="' + val + '" ');
-  });
-
-  return objTag + attrsString + '>' + paramsString + '</object>';
-};
-
-vjs.Flash.streamFromParts = function(connection, stream) {
-  return connection + '&' + stream;
-};
-
-vjs.Flash.streamToParts = function(src) {
-  var parts = {
-    connection: '',
-    stream: ''
-  };
-
-  if (! src) {
-    return parts;
-  }
-
-  // Look for the normal URL separator we expect, '&'.
-  // If found, we split the URL into two pieces around the
-  // first '&'.
-  var connEnd = src.indexOf('&');
-  var streamBegin;
-  if (connEnd !== -1) {
-    streamBegin = connEnd + 1;
-  }
-  else {
-    // If there's not a '&', we use the last '/' as the delimiter.
-    connEnd = streamBegin = src.lastIndexOf('/') + 1;
-    if (connEnd === 0) {
-      // really, there's not a '/'?
-      connEnd = streamBegin = src.length;
-    }
-  }
-  parts.connection = src.substring(0, connEnd);
-  parts.stream = src.substring(streamBegin, src.length);
-
-  return parts;
-};
-
-vjs.Flash.isStreamingType = function(srcType) {
-  return srcType in vjs.Flash.streamingFormats;
-};
-
-// RTMP has four variations, any string starting
-// with one of these protocols should be valid
-vjs.Flash.RTMP_RE = /^rtmp[set]?:\/\//i;
-
-vjs.Flash.isStreamingSrc = function(src) {
-  return vjs.Flash.RTMP_RE.test(src);
-};
-/**
- * The Media Loader is the component that decides which playback technology to load
- * when the player is initialized.
- *
- * @constructor
- */
-vjs.MediaLoader = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options, ready){
-    vjs.Component.call(this, player, options, ready);
-
-    // If there are no sources when the player is initialized,
-    // load the first supported playback technology.
-    if (!player.options_['sources'] || player.options_['sources'].length === 0) {
-      for (var i=0,j=player.options_['techOrder']; i<j.length; i++) {
-        var techName = vjs.capitalize(j[i]),
-            tech = window['videojs'][techName];
-
-        // Check if the browser supports this technology
-        if (tech && tech.isSupported()) {
-          player.loadTech(techName);
-          break;
-        }
-      }
-    } else {
-      // // Loop through playback technologies (HTML5, Flash) and check for support.
-      // // Then load the best source.
-      // // A few assumptions here:
-      // //   All playback technologies respect preload false.
-      player.src(player.options_['sources']);
-    }
-  }
-});
-/**
- * @fileoverview Text Tracks
- * Text tracks are tracks of timed text events.
- * Captions - text displayed over the video for the hearing impared
- * Subtitles - text displayed over the video for those who don't understand langauge in the video
- * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video
- * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device
- */
-
-// Player Additions - Functions add to the player object for easier access to tracks
-
-/**
- * List of associated text tracks
- * @type {Array}
- * @private
- */
-vjs.Player.prototype.textTracks_;
-
-/**
- * Get an array of associated text tracks. captions, subtitles, chapters, descriptions
- * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks
- * @return {Array}           Array of track objects
- * @private
- */
-vjs.Player.prototype.textTracks = function(){
-  this.textTracks_ = this.textTracks_ || [];
-  return this.textTracks_;
-};
-
-/**
- * Add a text track
- * In addition to the W3C settings we allow adding additional info through options.
- * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack
- * @param {String}  kind        Captions, subtitles, chapters, descriptions, or metadata
- * @param {String=} label       Optional label
- * @param {String=} language    Optional language
- * @param {Object=} options     Additional track options, like src
- * @private
- */
-vjs.Player.prototype.addTextTrack = function(kind, label, language, options){
-  var tracks = this.textTracks_ = this.textTracks_ || [];
-  options = options || {};
-
-  options['kind'] = kind;
-  options['label'] = label;
-  options['language'] = language;
-
-  // HTML5 Spec says default to subtitles.
-  // Uppercase first letter to match class names
-  var Kind = vjs.capitalize(kind || 'subtitles');
-
-  // Create correct texttrack class. CaptionsTrack, etc.
-  var track = new window['videojs'][Kind + 'Track'](this, options);
-
-  tracks.push(track);
-
-  // If track.dflt() is set, start showing immediately
-  // TODO: Add a process to deterime the best track to show for the specific kind
-  // Incase there are mulitple defaulted tracks of the same kind
-  // Or the user has a set preference of a specific language that should override the default
-  // if (track.dflt()) {
-  //   this.ready(vjs.bind(track, track.show));
-  // }
-
-  return track;
-};
-
-/**
- * Add an array of text tracks. captions, subtitles, chapters, descriptions
- * Track objects will be stored in the player.textTracks() array
- * @param {Array} trackList Array of track elements or objects (fake track elements)
- * @private
- */
-vjs.Player.prototype.addTextTracks = function(trackList){
-  var trackObj;
-
-  for (var i = 0; i < trackList.length; i++) {
-    trackObj = trackList[i];
-    this.addTextTrack(trackObj['kind'], trackObj['label'], trackObj['language'], trackObj);
-  }
-
-  return this;
-};
-
-// Show a text track
-// disableSameKind: disable all other tracks of the same kind. Value should be a track kind (captions, etc.)
-vjs.Player.prototype.showTextTrack = function(id, disableSameKind){
-  var tracks = this.textTracks_,
-      i = 0,
-      j = tracks.length,
-      track, showTrack, kind;
-
-  // Find Track with same ID
-  for (;i<j;i++) {
-    track = tracks[i];
-    if (track.id() === id) {
-      track.show();
-      showTrack = track;
-
-    // Disable tracks of the same kind
-    } else if (disableSameKind && track.kind() == disableSameKind && track.mode() > 0) {
-      track.disable();
-    }
-  }
-
-  // Get track kind from shown track or disableSameKind
-  kind = (showTrack) ? showTrack.kind() : ((disableSameKind) ? disableSameKind : false);
-
-  // Trigger trackchange event, captionstrackchange, subtitlestrackchange, etc.
-  if (kind) {
-    this.trigger(kind+'trackchange');
-  }
-
-  return this;
-};
-
-/**
- * The base class for all text tracks
- *
- * Handles the parsing, hiding, and showing of text track cues
- *
- * @param {vjs.Player|Object} player
- * @param {Object=} options
- * @constructor
- */
-vjs.TextTrack = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.Component.call(this, player, options);
-
-    // Apply track info to track object
-    // Options will often be a track element
-
-    // Build ID if one doesn't exist
-    this.id_ = options['id'] || ('vjs_' + options['kind'] + '_' + options['language'] + '_' + vjs.guid++);
-    this.src_ = options['src'];
-    // 'default' is a reserved keyword in js so we use an abbreviated version
-    this.dflt_ = options['default'] || options['dflt'];
-    this.title_ = options['title'];
-    this.language_ = options['srclang'];
-    this.label_ = options['label'];
-    this.cues_ = [];
-    this.activeCues_ = [];
-    this.readyState_ = 0;
-    this.mode_ = 0;
-
-    this.player_.on('fullscreenchange', vjs.bind(this, this.adjustFontSize));
-  }
-});
-
-/**
- * Track kind value. Captions, subtitles, etc.
- * @private
- */
-vjs.TextTrack.prototype.kind_;
-
-/**
- * Get the track kind value
- * @return {String}
- */
-vjs.TextTrack.prototype.kind = function(){
-  return this.kind_;
-};
-
-/**
- * Track src value
- * @private
- */
-vjs.TextTrack.prototype.src_;
-
-/**
- * Get the track src value
- * @return {String}
- */
-vjs.TextTrack.prototype.src = function(){
-  return this.src_;
-};
-
-/**
- * Track default value
- * If default is used, subtitles/captions to start showing
- * @private
- */
-vjs.TextTrack.prototype.dflt_;
-
-/**
- * Get the track default value. ('default' is a reserved keyword)
- * @return {Boolean}
- */
-vjs.TextTrack.prototype.dflt = function(){
-  return this.dflt_;
-};
-
-/**
- * Track title value
- * @private
- */
-vjs.TextTrack.prototype.title_;
-
-/**
- * Get the track title value
- * @return {String}
- */
-vjs.TextTrack.prototype.title = function(){
-  return this.title_;
-};
-
-/**
- * Language - two letter string to represent track language, e.g. 'en' for English
- * Spec def: readonly attribute DOMString language;
- * @private
- */
-vjs.TextTrack.prototype.language_;
-
-/**
- * Get the track language value
- * @return {String}
- */
-vjs.TextTrack.prototype.language = function(){
-  return this.language_;
-};
-
-/**
- * Track label e.g. 'English'
- * Spec def: readonly attribute DOMString label;
- * @private
- */
-vjs.TextTrack.prototype.label_;
-
-/**
- * Get the track label value
- * @return {String}
- */
-vjs.TextTrack.prototype.label = function(){
-  return this.label_;
-};
-
-/**
- * All cues of the track. Cues have a startTime, endTime, text, and other properties.
- * Spec def: readonly attribute TextTrackCueList cues;
- * @private
- */
-vjs.TextTrack.prototype.cues_;
-
-/**
- * Get the track cues
- * @return {Array}
- */
-vjs.TextTrack.prototype.cues = function(){
-  return this.cues_;
-};
-
-/**
- * ActiveCues is all cues that are currently showing
- * Spec def: readonly attribute TextTrackCueList activeCues;
- * @private
- */
-vjs.TextTrack.prototype.activeCues_;
-
-/**
- * Get the track active cues
- * @return {Array}
- */
-vjs.TextTrack.prototype.activeCues = function(){
-  return this.activeCues_;
-};
-
-/**
- * ReadyState describes if the text file has been loaded
- * const unsigned short NONE = 0;
- * const unsigned short LOADING = 1;
- * const unsigned short LOADED = 2;
- * const unsigned short ERROR = 3;
- * readonly attribute unsigned short readyState;
- * @private
- */
-vjs.TextTrack.prototype.readyState_;
-
-/**
- * Get the track readyState
- * @return {Number}
- */
-vjs.TextTrack.prototype.readyState = function(){
-  return this.readyState_;
-};
-
-/**
- * Mode describes if the track is showing, hidden, or disabled
- * const unsigned short OFF = 0;
- * const unsigned short HIDDEN = 1; (still triggering cuechange events, but not visible)
- * const unsigned short SHOWING = 2;
- * attribute unsigned short mode;
- * @private
- */
-vjs.TextTrack.prototype.mode_;
-
-/**
- * Get the track mode
- * @return {Number}
- */
-vjs.TextTrack.prototype.mode = function(){
-  return this.mode_;
-};
-
-/**
- * Change the font size of the text track to make it larger when playing in fullscreen mode
- * and restore it to its normal size when not in fullscreen mode.
- */
-vjs.TextTrack.prototype.adjustFontSize = function(){
-    if (this.player_.isFullScreen) {
-        // Scale the font by the same factor as increasing the video width to the full screen window width.
-        // Additionally, multiply that factor by 1.4, which is the default font size for
-        // the caption track (from the CSS)
-        this.el_.style.fontSize = screen.width / this.player_.width() * 1.4 * 100 + '%';
-    } else {
-        // Change the font size of the text track back to its original non-fullscreen size
-        this.el_.style.fontSize = '';
-    }
-};
-
-/**
- * Create basic div to hold cue text
- * @return {Element}
- */
-vjs.TextTrack.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-' + this.kind_ + ' vjs-text-track'
-  });
-};
-
-/**
- * Show: Mode Showing (2)
- * Indicates that the text track is active. If no attempt has yet been made to obtain the track's cues, the user agent will perform such an attempt momentarily.
- * The user agent is maintaining a list of which cues are active, and events are being fired accordingly.
- * In addition, for text tracks whose kind is subtitles or captions, the cues are being displayed over the video as appropriate;
- * for text tracks whose kind is descriptions, the user agent is making the cues available to the user in a non-visual fashion;
- * and for text tracks whose kind is chapters, the user agent is making available to the user a mechanism by which the user can navigate to any point in the media resource by selecting a cue.
- * The showing by default state is used in conjunction with the default attribute on track elements to indicate that the text track was enabled due to that attribute.
- * This allows the user agent to override the state if a later track is discovered that is more appropriate per the user's preferences.
- */
-vjs.TextTrack.prototype.show = function(){
-  this.activate();
-
-  this.mode_ = 2;
-
-  // Show element.
-  vjs.Component.prototype.show.call(this);
-};
-
-/**
- * Hide: Mode Hidden (1)
- * Indicates that the text track is active, but that the user agent is not actively displaying the cues.
- * If no attempt has yet been made to obtain the track's cues, the user agent will perform such an attempt momentarily.
- * The user agent is maintaining a list of which cues are active, and events are being fired accordingly.
- */
-vjs.TextTrack.prototype.hide = function(){
-  // When hidden, cues are still triggered. Disable to stop triggering.
-  this.activate();
-
-  this.mode_ = 1;
-
-  // Hide element.
-  vjs.Component.prototype.hide.call(this);
-};
-
-/**
- * Disable: Mode Off/Disable (0)
- * Indicates that the text track is not active. Other than for the purposes of exposing the track in the DOM, the user agent is ignoring the text track.
- * No cues are active, no events are fired, and the user agent will not attempt to obtain the track's cues.
- */
-vjs.TextTrack.prototype.disable = function(){
-  // If showing, hide.
-  if (this.mode_ == 2) { this.hide(); }
-
-  // Stop triggering cues
-  this.deactivate();
-
-  // Switch Mode to Off
-  this.mode_ = 0;
-};
-
-/**
- * Turn on cue tracking. Tracks that are showing OR hidden are active.
- */
-vjs.TextTrack.prototype.activate = function(){
-  // Load text file if it hasn't been yet.
-  if (this.readyState_ === 0) { this.load(); }
-
-  // Only activate if not already active.
-  if (this.mode_ === 0) {
-    // Update current cue on timeupdate
-    // Using unique ID for bind function so other tracks don't remove listener
-    this.player_.on('timeupdate', vjs.bind(this, this.update, this.id_));
-
-    // Reset cue time on media end
-    this.player_.on('ended', vjs.bind(this, this.reset, this.id_));
-
-    // Add to display
-    if (this.kind_ === 'captions' || this.kind_ === 'subtitles') {
-      this.player_.getChild('textTrackDisplay').addChild(this);
-    }
-  }
-};
-
-/**
- * Turn off cue tracking.
- */
-vjs.TextTrack.prototype.deactivate = function(){
-  // Using unique ID for bind function so other tracks don't remove listener
-  this.player_.off('timeupdate', vjs.bind(this, this.update, this.id_));
-  this.player_.off('ended', vjs.bind(this, this.reset, this.id_));
-  this.reset(); // Reset
-
-  // Remove from display
-  this.player_.getChild('textTrackDisplay').removeChild(this);
-};
-
-// A readiness state
-// One of the following:
-//
-// Not loaded
-// Indicates that the text track is known to exist (e.g. it has been declared with a track element), but its cues have not been obtained.
-//
-// Loading
-// Indicates that the text track is loading and there have been no fatal errors encountered so far. Further cues might still be added to the track.
-//
-// Loaded
-// Indicates that the text track has been loaded with no fatal errors. No new cues will be added to the track except if the text track corresponds to a MutableTextTrack object.
-//
-// Failed to load
-// Indicates that the text track was enabled, but when the user agent attempted to obtain it, this failed in some way (e.g. URL could not be resolved, network error, unknown text track format). Some or all of the cues are likely missing and will not be obtained.
-vjs.TextTrack.prototype.load = function(){
-
-  // Only load if not loaded yet.
-  if (this.readyState_ === 0) {
-    this.readyState_ = 1;
-    vjs.get(this.src_, vjs.bind(this, this.parseCues), vjs.bind(this, this.onError));
-  }
-
-};
-
-vjs.TextTrack.prototype.onError = function(err){
-  this.error = err;
-  this.readyState_ = 3;
-  this.trigger('error');
-};
-
-// Parse the WebVTT text format for cue times.
-// TODO: Separate parser into own class so alternative timed text formats can be used. (TTML, DFXP)
-vjs.TextTrack.prototype.parseCues = function(srcContent) {
-  var cue, time, text,
-      lines = srcContent.split('\n'),
-      line = '', id;
-
-  for (var i=1, j=lines.length; i<j; i++) {
-    // Line 0 should be 'WEBVTT', so skipping i=0
-
-    line = vjs.trim(lines[i]); // Trim whitespace and linebreaks
-
-    if (line) { // Loop until a line with content
-
-      // First line could be an optional cue ID
-      // Check if line has the time separator
-      if (line.indexOf('-->') == -1) {
-        id = line;
-        // Advance to next line for timing.
-        line = vjs.trim(lines[++i]);
-      } else {
-        id = this.cues_.length;
-      }
-
-      // First line - Number
-      cue = {
-        id: id, // Cue Number
-        index: this.cues_.length // Position in Array
-      };
-
-      // Timing line
-      time = line.split(' --> ');
-      cue.startTime = this.parseCueTime(time[0]);
-      cue.endTime = this.parseCueTime(time[1]);
-
-      // Additional lines - Cue Text
-      text = [];
-
-      // Loop until a blank line or end of lines
-      // Assumeing trim('') returns false for blank lines
-      while (lines[++i] && (line = vjs.trim(lines[i]))) {
-        text.push(line);
-      }
-
-      cue.text = text.join('<br/>');
-
-      // Add this cue
-      this.cues_.push(cue);
-    }
-  }
-
-  this.readyState_ = 2;
-  this.trigger('loaded');
-};
-
-
-vjs.TextTrack.prototype.parseCueTime = function(timeText) {
-  var parts = timeText.split(':'),
-      time = 0,
-      hours, minutes, other, seconds, ms;
-
-  // Check if optional hours place is included
-  // 00:00:00.000 vs. 00:00.000
-  if (parts.length == 3) {
-    hours = parts[0];
-    minutes = parts[1];
-    other = parts[2];
-  } else {
-    hours = 0;
-    minutes = parts[0];
-    other = parts[1];
-  }
-
-  // Break other (seconds, milliseconds, and flags) by spaces
-  // TODO: Make additional cue layout settings work with flags
-  other = other.split(/\s+/);
-  // Remove seconds. Seconds is the first part before any spaces.
-  seconds = other.splice(0,1)[0];
-  // Could use either . or , for decimal
-  seconds = seconds.split(/\.|,/);
-  // Get milliseconds
-  ms = parseFloat(seconds[1]);
-  seconds = seconds[0];
-
-  // hours => seconds
-  time += parseFloat(hours) * 3600;
-  // minutes => seconds
-  time += parseFloat(minutes) * 60;
-  // Add seconds
-  time += parseFloat(seconds);
-  // Add milliseconds
-  if (ms) { time += ms/1000; }
-
-  return time;
-};
-
-// Update active cues whenever timeupdate events are triggered on the player.
-vjs.TextTrack.prototype.update = function(){
-  if (this.cues_.length > 0) {
-
-    // Get curent player time
-    var time = this.player_.currentTime();
-
-    // Check if the new time is outside the time box created by the the last update.
-    if (this.prevChange === undefined || time < this.prevChange || this.nextChange <= time) {
-      var cues = this.cues_,
-
-          // Create a new time box for this state.
-          newNextChange = this.player_.duration(), // Start at beginning of the timeline
-          newPrevChange = 0, // Start at end
-
-          reverse = false, // Set the direction of the loop through the cues. Optimized the cue check.
-          newCues = [], // Store new active cues.
-
-          // Store where in the loop the current active cues are, to provide a smart starting point for the next loop.
-          firstActiveIndex, lastActiveIndex,
-          cue, i; // Loop vars
-
-      // Check if time is going forwards or backwards (scrubbing/rewinding)
-      // If we know the direction we can optimize the starting position and direction of the loop through the cues array.
-      if (time >= this.nextChange || this.nextChange === undefined) { // NextChange should happen
-        // Forwards, so start at the index of the first active cue and loop forward
-        i = (this.firstActiveIndex !== undefined) ? this.firstActiveIndex : 0;
-      } else {
-        // Backwards, so start at the index of the last active cue and loop backward
-        reverse = true;
-        i = (this.lastActiveIndex !== undefined) ? this.lastActiveIndex : cues.length - 1;
-      }
-
-      while (true) { // Loop until broken
-        cue = cues[i];
-
-        // Cue ended at this point
-        if (cue.endTime <= time) {
-          newPrevChange = Math.max(newPrevChange, cue.endTime);
-
-          if (cue.active) {
-            cue.active = false;
-          }
-
-          // No earlier cues should have an active start time.
-          // Nevermind. Assume first cue could have a duration the same as the video.
-          // In that case we need to loop all the way back to the beginning.
-          // if (reverse && cue.startTime) { break; }
-
-        // Cue hasn't started
-        } else if (time < cue.startTime) {
-          newNextChange = Math.min(newNextChange, cue.startTime);
-
-          if (cue.active) {
-            cue.active = false;
-          }
-
-          // No later cues should have an active start time.
-          if (!reverse) { break; }
-
-        // Cue is current
-        } else {
-
-          if (reverse) {
-            // Add cue to front of array to keep in time order
-            newCues.splice(0,0,cue);
-
-            // If in reverse, the first current cue is our lastActiveCue
-            if (lastActiveIndex === undefined) { lastActiveIndex = i; }
-            firstActiveIndex = i;
-          } else {
-            // Add cue to end of array
-            newCues.push(cue);
-
-            // If forward, the first current cue is our firstActiveIndex
-            if (firstActiveIndex === undefined) { firstActiveIndex = i; }
-            lastActiveIndex = i;
-          }
-
-          newNextChange = Math.min(newNextChange, cue.endTime);
-          newPrevChange = Math.max(newPrevChange, cue.startTime);
-
-          cue.active = true;
-        }
-
-        if (reverse) {
-          // Reverse down the array of cues, break if at first
-          if (i === 0) { break; } else { i--; }
-        } else {
-          // Walk up the array fo cues, break if at last
-          if (i === cues.length - 1) { break; } else { i++; }
-        }
-
-      }
-
-      this.activeCues_ = newCues;
-      this.nextChange = newNextChange;
-      this.prevChange = newPrevChange;
-      this.firstActiveIndex = firstActiveIndex;
-      this.lastActiveIndex = lastActiveIndex;
-
-      this.updateDisplay();
-
-      this.trigger('cuechange');
-    }
-  }
-};
-
-// Add cue HTML to display
-vjs.TextTrack.prototype.updateDisplay = function(){
-  var cues = this.activeCues_,
-      html = '',
-      i=0,j=cues.length;
-
-  for (;i<j;i++) {
-    html += '<span class="vjs-tt-cue">'+cues[i].text+'</span>';
-  }
-
-  this.el_.innerHTML = html;
-};
-
-// Set all loop helper values back
-vjs.TextTrack.prototype.reset = function(){
-  this.nextChange = 0;
-  this.prevChange = this.player_.duration();
-  this.firstActiveIndex = 0;
-  this.lastActiveIndex = 0;
-};
-
-// Create specific track types
-/**
- * The track component for managing the hiding and showing of captions
- *
- * @constructor
- */
-vjs.CaptionsTrack = vjs.TextTrack.extend();
-vjs.CaptionsTrack.prototype.kind_ = 'captions';
-// Exporting here because Track creation requires the track kind
-// to be available on global object. e.g. new window['videojs'][Kind + 'Track']
-
-/**
- * The track component for managing the hiding and showing of subtitles
- *
- * @constructor
- */
-vjs.SubtitlesTrack = vjs.TextTrack.extend();
-vjs.SubtitlesTrack.prototype.kind_ = 'subtitles';
-
-/**
- * The track component for managing the hiding and showing of chapters
- *
- * @constructor
- */
-vjs.ChaptersTrack = vjs.TextTrack.extend();
-vjs.ChaptersTrack.prototype.kind_ = 'chapters';
-
-
-/* Text Track Display
-============================================================================= */
-// Global container for both subtitle and captions text. Simple div container.
-
-/**
- * The component for displaying text track cues
- *
- * @constructor
- */
-vjs.TextTrackDisplay = vjs.Component.extend({
-  /** @constructor */
-  init: function(player, options, ready){
-    vjs.Component.call(this, player, options, ready);
-
-    // This used to be called during player init, but was causing an error
-    // if a track should show by default and the display hadn't loaded yet.
-    // Should probably be moved to an external track loader when we support
-    // tracks that don't need a display.
-    if (player.options_['tracks'] && player.options_['tracks'].length > 0) {
-      this.player_.addTextTracks(player.options_['tracks']);
-    }
-  }
-});
-
-vjs.TextTrackDisplay.prototype.createEl = function(){
-  return vjs.Component.prototype.createEl.call(this, 'div', {
-    className: 'vjs-text-track-display'
-  });
-};
-
-
-/**
- * The specific menu item type for selecting a language within a text track kind
- *
- * @constructor
- */
-vjs.TextTrackMenuItem = vjs.MenuItem.extend({
-  /** @constructor */
-  init: function(player, options){
-    var track = this.track = options['track'];
-
-    // Modify options for parent MenuItem class's init.
-    options['label'] = track.label();
-    options['selected'] = track.dflt();
-    vjs.MenuItem.call(this, player, options);
-
-    this.player_.on(track.kind() + 'trackchange', vjs.bind(this, this.update));
-  }
-});
-
-vjs.TextTrackMenuItem.prototype.onClick = function(){
-  vjs.MenuItem.prototype.onClick.call(this);
-  this.player_.showTextTrack(this.track.id_, this.track.kind());
-};
-
-vjs.TextTrackMenuItem.prototype.update = function(){
-  this.selected(this.track.mode() == 2);
-};
-
-/**
- * A special menu item for turning of a specific type of text track
- *
- * @constructor
- */
-vjs.OffTextTrackMenuItem = vjs.TextTrackMenuItem.extend({
-  /** @constructor */
-  init: function(player, options){
-    // Create pseudo track info
-    // Requires options['kind']
-    options['track'] = {
-      kind: function() { return options['kind']; },
-      player: player,
-      label: function(){ return options['kind'] + ' off'; },
-      dflt: function(){ return false; },
-      mode: function(){ return false; }
-    };
-    vjs.TextTrackMenuItem.call(this, player, options);
-    this.selected(true);
-  }
-});
-
-vjs.OffTextTrackMenuItem.prototype.onClick = function(){
-  vjs.TextTrackMenuItem.prototype.onClick.call(this);
-  this.player_.showTextTrack(this.track.id_, this.track.kind());
-};
-
-vjs.OffTextTrackMenuItem.prototype.update = function(){
-  var tracks = this.player_.textTracks(),
-      i=0, j=tracks.length, track,
-      off = true;
-
-  for (;i<j;i++) {
-    track = tracks[i];
-    if (track.kind() == this.track.kind() && track.mode() == 2) {
-      off = false;
-    }
-  }
-
-  this.selected(off);
-};
-
-/**
- * The base class for buttons that toggle specific text track types (e.g. subtitles)
- *
- * @constructor
- */
-vjs.TextTrackButton = vjs.MenuButton.extend({
-  /** @constructor */
-  init: function(player, options){
-    vjs.MenuButton.call(this, player, options);
-
-    if (this.items.length <= 1) {
-      this.hide();
-    }
-  }
-});
-
-// vjs.TextTrackButton.prototype.buttonPressed = false;
-
-// vjs.TextTrackButton.prototype.createMenu = function(){
-//   var menu = new vjs.Menu(this.player_);
-
-//   // Add a title list item to the top
-//   // menu.el().appendChild(vjs.createEl('li', {
-//   //   className: 'vjs-menu-title',
-//   //   innerHTML: vjs.capitalize(this.kind_),
-//   //   tabindex: -1
-//   // }));
-
-//   this.items = this.createItems();
-
-//   // Add menu items to the menu
-//   for (var i = 0; i < this.items.length; i++) {
-//     menu.addItem(this.items[i]);
-//   }
-
-//   // Add list to element
-//   this.addChild(menu);
-
-//   return menu;
-// };
-
-// Create a menu item for each text track
-vjs.TextTrackButton.prototype.createItems = function(){
-  var items = [], track;
-
-  // Add an OFF menu item to turn all tracks off
-  items.push(new vjs.OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));
-
-  for (var i = 0; i < this.player_.textTracks().length; i++) {
-    track = this.player_.textTracks()[i];
-    if (track.kind() === this.kind_) {
-      items.push(new vjs.TextTrackMenuItem(this.player_, {
-        'track': track
-      }));
-    }
-  }
-
-  return items;
-};
-
-/**
- * The button component for toggling and selecting captions
- *
- * @constructor
- */
-vjs.CaptionsButton = vjs.TextTrackButton.extend({
-  /** @constructor */
-  init: function(player, options, ready){
-    vjs.TextTrackButton.call(this, player, options, ready);
-    this.el_.setAttribute('aria-label','Captions Menu');
-  }
-});
-vjs.CaptionsButton.prototype.kind_ = 'captions';
-vjs.CaptionsButton.prototype.buttonText = 'Captions';
-vjs.CaptionsButton.prototype.className = 'vjs-captions-button';
-
-/**
- * The button component for toggling and selecting subtitles
- *
- * @constructor
- */
-vjs.SubtitlesButton = vjs.TextTrackButton.extend({
-  /** @constructor */
-  init: function(player, options, ready){
-    vjs.TextTrackButton.call(this, player, options, ready);
-    this.el_.setAttribute('aria-label','Subtitles Menu');
-  }
-});
-vjs.SubtitlesButton.prototype.kind_ = 'subtitles';
-vjs.SubtitlesButton.prototype.buttonText = 'Subtitles';
-vjs.SubtitlesButton.prototype.className = 'vjs-subtitles-button';
-
-// Chapters act much differently than other text tracks
-// Cues are navigation vs. other tracks of alternative languages
-/**
- * The button component for toggling and selecting chapters
- *
- * @constructor
- */
-vjs.ChaptersButton = vjs.TextTrackButton.extend({
-  /** @constructor */
-  init: function(player, options, ready){
-    vjs.TextTrackButton.call(this, player, options, ready);
-    this.el_.setAttribute('aria-label','Chapters Menu');
-  }
-});
-vjs.ChaptersButton.prototype.kind_ = 'chapters';
-vjs.ChaptersButton.prototype.buttonText = 'Chapters';
-vjs.ChaptersButton.prototype.className = 'vjs-chapters-button';
-
-// Create a menu item for each text track
-vjs.ChaptersButton.prototype.createItems = function(){
-  var items = [], track;
-
-  for (var i = 0; i < this.player_.textTracks().length; i++) {
-    track = this.player_.textTracks()[i];
-    if (track.kind() === this.kind_) {
-      items.push(new vjs.TextTrackMenuItem(this.player_, {
-        'track': track
-      }));
-    }
-  }
-
-  return items;
-};
-
-vjs.ChaptersButton.prototype.createMenu = function(){
-  var tracks = this.player_.textTracks(),
-      i = 0,
-      j = tracks.length,
-      track, chaptersTrack,
-      items = this.items = [];
-
-  for (;i<j;i++) {
-    track = tracks[i];
-    if (track.kind() == this.kind_ && track.dflt()) {
-      if (track.readyState() < 2) {
-        this.chaptersTrack = track;
-        track.on('loaded', vjs.bind(this, this.createMenu));
-        return;
-      } else {
-        chaptersTrack = track;
-        break;
-      }
-    }
-  }
-
-  var menu = this.menu = new vjs.Menu(this.player_);
-
-  menu.el_.appendChild(vjs.createEl('li', {
-    className: 'vjs-menu-title',
-    innerHTML: vjs.capitalize(this.kind_),
-    tabindex: -1
-  }));
-
-  if (chaptersTrack) {
-    var cues = chaptersTrack.cues_, cue, mi;
-    i = 0;
-    j = cues.length;
-
-    for (;i<j;i++) {
-      cue = cues[i];
-
-      mi = new vjs.ChaptersTrackMenuItem(this.player_, {
-        'track': chaptersTrack,
-        'cue': cue
-      });
-
-      items.push(mi);
-
-      menu.addChild(mi);
-    }
-  }
-
-  if (this.items.length > 0) {
-    this.show();
-  }
-
-  return menu;
-};
-
-
-/**
- * @constructor
- */
-vjs.ChaptersTrackMenuItem = vjs.MenuItem.extend({
-  /** @constructor */
-  init: function(player, options){
-    var track = this.track = options['track'],
-        cue = this.cue = options['cue'],
-        currentTime = player.currentTime();
-
-    // Modify options for parent MenuItem class's init.
-    options['label'] = cue.text;
-    options['selected'] = (cue.startTime <= currentTime && currentTime < cue.endTime);
-    vjs.MenuItem.call(this, player, options);
-
-    track.on('cuechange', vjs.bind(this, this.update));
-  }
-});
-
-vjs.ChaptersTrackMenuItem.prototype.onClick = function(){
-  vjs.MenuItem.prototype.onClick.call(this);
-  this.player_.currentTime(this.cue.startTime);
-  this.update(this.cue.startTime);
-};
-
-vjs.ChaptersTrackMenuItem.prototype.update = function(){
-  var cue = this.cue,
-      currentTime = this.player_.currentTime();
-
-  // vjs.log(currentTime, cue.startTime);
-  this.selected(cue.startTime <= currentTime && currentTime < cue.endTime);
-};
-
-// Add Buttons to controlBar
-vjs.obj.merge(vjs.ControlBar.prototype.options_['children'], {
-  'subtitlesButton': {},
-  'captionsButton': {},
-  'chaptersButton': {}
-});
-
-// vjs.Cue = vjs.Component.extend({
-//   /** @constructor */
-//   init: function(player, options){
-//     vjs.Component.call(this, player, options);
-//   }
-// });
-/**
- * @fileoverview Add JSON support
- * @suppress {undefinedVars}
- * (Compiler doesn't like JSON not being declared)
- */
-
-/**
- * Javascript JSON implementation
- * (Parse Method Only)
- * https://github.com/douglascrockford/JSON-js/blob/master/json2.js
- * Only using for parse method when parsing data-setup attribute JSON.
- * @suppress {undefinedVars}
- * @namespace
- * @private
- */
-vjs.JSON;
-
-if (typeof window.JSON !== 'undefined' && window.JSON.parse === 'function') {
-  vjs.JSON = window.JSON;
-
-} else {
-  vjs.JSON = {};
-
-  var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
-
-  /**
-   * parse the json
-   *
-   * @memberof vjs.JSON
-   * @return {Object|Array} The parsed JSON
-   */
-  vjs.JSON.parse = function (text, reviver) {
-      var j;
-
-      function walk(holder, key) {
-          var k, v, value = holder[key];
-          if (value && typeof value === 'object') {
-              for (k in value) {
-                  if (Object.prototype.hasOwnProperty.call(value, k)) {
-                      v = walk(value, k);
-                      if (v !== undefined) {
-                          value[k] = v;
-                      } else {
-                          delete value[k];
-                      }
-                  }
-              }
-          }
-          return reviver.call(holder, key, value);
-      }
-      text = String(text);
-      cx.lastIndex = 0;
-      if (cx.test(text)) {
-          text = text.replace(cx, function (a) {
-              return '\\u' +
-                  ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-          });
-      }
-
-      if (/^[\],:{}\s]*$/
-              .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
-                  .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
-                  .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-
-          j = eval('(' + text + ')');
-
-          return typeof reviver === 'function' ?
-              walk({'': j}, '') : j;
-      }
-
-      throw new SyntaxError('JSON.parse(): invalid or malformed JSON data');
-  };
-}
-/**
- * @fileoverview Functions for automatically setting up a player
- * based on the data-setup attribute of the video tag
- */
-
-// Automatically set up any tags that have a data-setup attribute
-vjs.autoSetup = function(){
-  var options, vid, player,
-      vids = document.getElementsByTagName('video');
-
-  // Check if any media elements exist
-  if (vids && vids.length > 0) {
-
-    for (var i=0,j=vids.length; i<j; i++) {
-      vid = vids[i];
-
-      // Check if element exists, has getAttribute func.
-      // IE seems to consider typeof el.getAttribute == 'object' instead of 'function' like expected, at least when loading the player immediately.
-      if (vid && vid.getAttribute) {
-
-        // Make sure this player hasn't already been set up.
-        if (vid['player'] === undefined) {
-          options = vid.getAttribute('data-setup');
-
-          // Check if data-setup attr exists.
-          // We only auto-setup if they've added the data-setup attr.
-          if (options !== null) {
-
-            // Parse options JSON
-            // If empty string, make it a parsable json object.
-            options = vjs.JSON.parse(options || '{}');
-
-            // Create new video.js instance.
-            player = videojs(vid, options);
-          }
-        }
-
-      // If getAttribute isn't defined, we need to wait for the DOM.
-      } else {
-        vjs.autoSetupTimeout(1);
-        break;
-      }
-    }
-
-  // No videos were found, so keep looping unless page is finisehd loading.
-  } else if (!vjs.windowLoaded) {
-    vjs.autoSetupTimeout(1);
-  }
-};
-
-// Pause to let the DOM keep processing
-vjs.autoSetupTimeout = function(wait){
-  setTimeout(vjs.autoSetup, wait);
-};
-
-if (document.readyState === 'complete') {
-  vjs.windowLoaded = true;
-} else {
-  vjs.one(window, 'load', function(){
-    vjs.windowLoaded = true;
-  });
-}
-
-// Run Auto-load players
-// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)
-vjs.autoSetupTimeout(1);
-/**
- * the method for registering a video.js plugin
- *
- * @param  {String} name The name of the plugin
- * @param  {Function} init The function that is run when the player inits
- */
-vjs.plugin = function(name, init){
-  vjs.Player.prototype[name] = init;
-};
diff --git a/server/public/ueditor/third-party/video-js/video.js b/server/public/ueditor/third-party/video-js/video.js
deleted file mode 100644
index 7f98466..0000000
--- a/server/public/ueditor/third-party/video-js/video.js
+++ /dev/null
@@ -1,129 +0,0 @@
-/*! Video.js v4.3.0 Copyright 2013 Brightcove, Inc. https://github.com/videojs/video.js/blob/master/LICENSE */ (function() {var b=void 0,f=!0,h=null,l=!1;function m(){return function(){}}function p(a){return function(){return this[a]}}function s(a){return function(){return a}}var t;document.createElement("video");document.createElement("audio");document.createElement("track");function u(a,c,d){if("string"===typeof a){0===a.indexOf("#")&&(a=a.slice(1));if(u.xa[a])return u.xa[a];a=u.w(a)}if(!a||!a.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return a.player||new u.s(a,c,d)}var v=u;
-window.Td=window.Ud=u;u.Tb="4.3";u.Fc="https:"==document.location.protocol?"https://":"http://";u.options={techOrder:["html5","flash"],html5:{},flash:{},width:300,height:150,defaultVolume:0,children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{}},notSupportedMessage:'Sorry, no compatible source and playback technology were found for this video. Try using another browser like <a href="http://bit.ly/ccMUEC">Chrome</a> or download the latest <a href="http://adobe.ly/mwfN1">Adobe Flash Player</a>.'};
-"GENERATED_CDN_VSN"!==u.Tb&&(v.options.flash.swf=u.Fc+"vjs.zencdn.net/"+u.Tb+"/video-js.swf");u.xa={};u.la=u.CoreObject=m();u.la.extend=function(a){var c,d;a=a||{};c=a.init||a.i||this.prototype.init||this.prototype.i||m();d=function(){c.apply(this,arguments)};d.prototype=u.k.create(this.prototype);d.prototype.constructor=d;d.extend=u.la.extend;d.create=u.la.create;for(var e in a)a.hasOwnProperty(e)&&(d.prototype[e]=a[e]);return d};
-u.la.create=function(){var a=u.k.create(this.prototype);this.apply(a,arguments);return a};u.d=function(a,c,d){var e=u.getData(a);e.z||(e.z={});e.z[c]||(e.z[c]=[]);d.t||(d.t=u.t++);e.z[c].push(d);e.W||(e.disabled=l,e.W=function(c){if(!e.disabled){c=u.kc(c);var d=e.z[c.type];if(d)for(var d=d.slice(0),k=0,q=d.length;k<q&&!c.pc();k++)d[k].call(a,c)}});1==e.z[c].length&&(document.addEventListener?a.addEventListener(c,e.W,l):document.attachEvent&&a.attachEvent("on"+c,e.W))};
-u.o=function(a,c,d){if(u.oc(a)){var e=u.getData(a);if(e.z)if(c){var g=e.z[c];if(g){if(d){if(d.t)for(e=0;e<g.length;e++)g[e].t===d.t&&g.splice(e--,1)}else e.z[c]=[];u.gc(a,c)}}else for(g in e.z)c=g,e.z[c]=[],u.gc(a,c)}};u.gc=function(a,c){var d=u.getData(a);0===d.z[c].length&&(delete d.z[c],document.removeEventListener?a.removeEventListener(c,d.W,l):document.detachEvent&&a.detachEvent("on"+c,d.W));u.Bb(d.z)&&(delete d.z,delete d.W,delete d.disabled);u.Bb(d)&&u.vc(a)};
-u.kc=function(a){function c(){return f}function d(){return l}if(!a||!a.Cb){var e=a||window.event;a={};for(var g in e)"layerX"!==g&&"layerY"!==g&&(a[g]=e[g]);a.target||(a.target=a.srcElement||document);a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;a.preventDefault=function(){e.preventDefault&&e.preventDefault();a.returnValue=l;a.Ab=c};a.Ab=d;a.stopPropagation=function(){e.stopPropagation&&e.stopPropagation();a.cancelBubble=f;a.Cb=c};a.Cb=d;a.stopImmediatePropagation=function(){e.stopImmediatePropagation&&
-e.stopImmediatePropagation();a.pc=c;a.stopPropagation()};a.pc=d;if(a.clientX!=h){g=document.documentElement;var j=document.body;a.pageX=a.clientX+(g&&g.scrollLeft||j&&j.scrollLeft||0)-(g&&g.clientLeft||j&&j.clientLeft||0);a.pageY=a.clientY+(g&&g.scrollTop||j&&j.scrollTop||0)-(g&&g.clientTop||j&&j.clientTop||0)}a.which=a.charCode||a.keyCode;a.button!=h&&(a.button=a.button&1?0:a.button&4?1:a.button&2?2:0)}return a};
-u.j=function(a,c){var d=u.oc(a)?u.getData(a):{},e=a.parentNode||a.ownerDocument;"string"===typeof c&&(c={type:c,target:a});c=u.kc(c);d.W&&d.W.call(a,c);if(e&&!c.Cb()&&c.bubbles!==l)u.j(e,c);else if(!e&&!c.Ab()&&(d=u.getData(c.target),c.target[c.type])){d.disabled=f;if("function"===typeof c.target[c.type])c.target[c.type]();d.disabled=l}return!c.Ab()};u.U=function(a,c,d){function e(){u.o(a,c,e);d.apply(this,arguments)}e.t=d.t=d.t||u.t++;u.d(a,c,e)};var w=Object.prototype.hasOwnProperty;
-u.e=function(a,c){var d,e;d=document.createElement(a||"div");for(e in c)w.call(c,e)&&(-1!==e.indexOf("aria-")||"role"==e?d.setAttribute(e,c[e]):d[e]=c[e]);return d};u.$=function(a){return a.charAt(0).toUpperCase()+a.slice(1)};u.k={};u.k.create=Object.create||function(a){function c(){}c.prototype=a;return new c};u.k.ua=function(a,c,d){for(var e in a)w.call(a,e)&&c.call(d||this,e,a[e])};u.k.B=function(a,c){if(!c)return a;for(var d in c)w.call(c,d)&&(a[d]=c[d]);return a};
-u.k.ic=function(a,c){var d,e,g;a=u.k.copy(a);for(d in c)w.call(c,d)&&(e=a[d],g=c[d],a[d]=u.k.qc(e)&&u.k.qc(g)?u.k.ic(e,g):c[d]);return a};u.k.copy=function(a){return u.k.B({},a)};u.k.qc=function(a){return!!a&&"object"===typeof a&&"[object Object]"===a.toString()&&a.constructor===Object};u.bind=function(a,c,d){function e(){return c.apply(a,arguments)}c.t||(c.t=u.t++);e.t=d?d+"_"+c.t:c.t;return e};u.ra={};u.t=1;u.expando="vdata"+(new Date).getTime();
-u.getData=function(a){var c=a[u.expando];c||(c=a[u.expando]=u.t++,u.ra[c]={});return u.ra[c]};u.oc=function(a){a=a[u.expando];return!(!a||u.Bb(u.ra[a]))};u.vc=function(a){var c=a[u.expando];if(c){delete u.ra[c];try{delete a[u.expando]}catch(d){a.removeAttribute?a.removeAttribute(u.expando):a[u.expando]=h}}};u.Bb=function(a){for(var c in a)if(a[c]!==h)return l;return f};u.n=function(a,c){-1==(" "+a.className+" ").indexOf(" "+c+" ")&&(a.className=""===a.className?c:a.className+" "+c)};
-u.u=function(a,c){var d,e;if(-1!=a.className.indexOf(c)){d=a.className.split(" ");for(e=d.length-1;0<=e;e--)d[e]===c&&d.splice(e,1);a.className=d.join(" ")}};u.na=u.e("video");u.F=navigator.userAgent;u.Mc=/iPhone/i.test(u.F);u.Lc=/iPad/i.test(u.F);u.Nc=/iPod/i.test(u.F);u.Kc=u.Mc||u.Lc||u.Nc;var aa=u,x;var y=u.F.match(/OS (\d+)_/i);x=y&&y[1]?y[1]:b;aa.Fd=x;u.Ic=/Android/i.test(u.F);var ba=u,z;var A=u.F.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i),B,C;
-A?(B=A[1]&&parseFloat(A[1]),C=A[2]&&parseFloat(A[2]),z=B&&C?parseFloat(A[1]+"."+A[2]):B?B:h):z=h;ba.Gc=z;u.Oc=u.Ic&&/webkit/i.test(u.F)&&2.3>u.Gc;u.Jc=/Firefox/i.test(u.F);u.Gd=/Chrome/i.test(u.F);u.ac=!!("ontouchstart"in window||window.Hc&&document instanceof window.Hc);
-u.xb=function(a){var c,d,e,g;c={};if(a&&a.attributes&&0<a.attributes.length){d=a.attributes;for(var j=d.length-1;0<=j;j--){e=d[j].name;g=d[j].value;if("boolean"===typeof a[e]||-1!==",autoplay,controls,loop,muted,default,".indexOf(","+e+","))g=g!==h?f:l;c[e]=g}}return c};
-u.Kd=function(a,c){var d="";document.defaultView&&document.defaultView.getComputedStyle?d=document.defaultView.getComputedStyle(a,"").getPropertyValue(c):a.currentStyle&&(d=a["client"+c.substr(0,1).toUpperCase()+c.substr(1)]+"px");return d};u.zb=function(a,c){c.firstChild?c.insertBefore(a,c.firstChild):c.appendChild(a)};u.Pb={};u.w=function(a){0===a.indexOf("#")&&(a=a.slice(1));return document.getElementById(a)};
-u.La=function(a,c){c=c||a;var d=Math.floor(a%60),e=Math.floor(a/60%60),g=Math.floor(a/3600),j=Math.floor(c/60%60),k=Math.floor(c/3600);if(isNaN(a)||Infinity===a)g=e=d="-";g=0<g||0<k?g+":":"";return g+(((g||10<=j)&&10>e?"0"+e:e)+":")+(10>d?"0"+d:d)};u.Tc=function(){document.body.focus();document.onselectstart=s(l)};u.Bd=function(){document.onselectstart=s(f)};u.trim=function(a){return(a+"").replace(/^\s+|\s+$/g,"")};u.round=function(a,c){c||(c=0);return Math.round(a*Math.pow(10,c))/Math.pow(10,c)};
-u.tb=function(a,c){return{length:1,start:function(){return a},end:function(){return c}}};
-u.get=function(a,c,d){var e,g;"undefined"===typeof XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new window.ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new window.ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(c){}try{return new window.ActiveXObject("Msxml2.XMLHTTP")}catch(d){}throw Error("This browser does not support XMLHttpRequest.");});g=new XMLHttpRequest;try{g.open("GET",a)}catch(j){d(j)}e=0===a.indexOf("file:")||0===window.location.href.indexOf("file:")&&-1===a.indexOf("http");
-g.onreadystatechange=function(){4===g.readyState&&(200===g.status||e&&0===g.status?c(g.responseText):d&&d())};try{g.send()}catch(k){d&&d(k)}};u.td=function(a){try{var c=window.localStorage||l;c&&(c.volume=a)}catch(d){22==d.code||1014==d.code?u.log("LocalStorage Full (VideoJS)",d):18==d.code?u.log("LocalStorage not allowed (VideoJS)",d):u.log("LocalStorage Error (VideoJS)",d)}};u.mc=function(a){a.match(/^https?:\/\//)||(a=u.e("div",{innerHTML:'<a href="'+a+'">x</a>'}).firstChild.href);return a};
-u.log=function(){u.log.history=u.log.history||[];u.log.history.push(arguments);window.console&&window.console.log(Array.prototype.slice.call(arguments))};u.ad=function(a){var c,d;a.getBoundingClientRect&&a.parentNode&&(c=a.getBoundingClientRect());if(!c)return{left:0,top:0};a=document.documentElement;d=document.body;return{left:c.left+(window.pageXOffset||d.scrollLeft)-(a.clientLeft||d.clientLeft||0),top:c.top+(window.pageYOffset||d.scrollTop)-(a.clientTop||d.clientTop||0)}};
-u.c=u.la.extend({i:function(a,c,d){this.b=a;this.g=u.k.copy(this.g);c=this.options(c);this.Q=c.id||(c.el&&c.el.id?c.el.id:a.id()+"_component_"+u.t++);this.gd=c.name||h;this.a=c.el||this.e();this.G=[];this.qb={};this.V={};if((a=this.g)&&a.children){var e=this;u.k.ua(a.children,function(a,c){c!==l&&!c.loadEvent&&(e[a]=e.Z(a,c))})}this.L(d)}});t=u.c.prototype;
-t.D=function(){this.j("dispose");if(this.G)for(var a=this.G.length-1;0<=a;a--)this.G[a].D&&this.G[a].D();this.V=this.qb=this.G=h;this.o();this.a.parentNode&&this.a.parentNode.removeChild(this.a);u.vc(this.a);this.a=h};t.b=f;t.K=p("b");t.options=function(a){return a===b?this.g:this.g=u.k.ic(this.g,a)};t.e=function(a,c){return u.e(a,c)};t.w=p("a");t.id=p("Q");t.name=p("gd");t.children=p("G");
-t.Z=function(a,c){var d,e;"string"===typeof a?(e=a,c=c||{},d=c.componentClass||u.$(e),c.name=e,d=new window.videojs[d](this.b||this,c)):d=a;this.G.push(d);"function"===typeof d.id&&(this.qb[d.id()]=d);(e=e||d.name&&d.name())&&(this.V[e]=d);"function"===typeof d.el&&d.el()&&(this.sa||this.a).appendChild(d.el());return d};
-t.removeChild=function(a){"string"===typeof a&&(a=this.V[a]);if(a&&this.G){for(var c=l,d=this.G.length-1;0<=d;d--)if(this.G[d]===a){c=f;this.G.splice(d,1);break}c&&(this.qb[a.id]=h,this.V[a.name]=h,(c=a.w())&&c.parentNode===(this.sa||this.a)&&(this.sa||this.a).removeChild(a.w()))}};t.T=s("");t.d=function(a,c){u.d(this.a,a,u.bind(this,c));return this};t.o=function(a,c){u.o(this.a,a,c);return this};t.U=function(a,c){u.U(this.a,a,u.bind(this,c));return this};t.j=function(a,c){u.j(this.a,a,c);return this};
-t.L=function(a){a&&(this.aa?a.call(this):(this.Sa===b&&(this.Sa=[]),this.Sa.push(a)));return this};t.Ua=function(){this.aa=f;var a=this.Sa;if(a&&0<a.length){for(var c=0,d=a.length;c<d;c++)a[c].call(this);this.Sa=[];this.j("ready")}};t.n=function(a){u.n(this.a,a);return this};t.u=function(a){u.u(this.a,a);return this};t.show=function(){this.a.style.display="block";return this};t.C=function(){this.a.style.display="none";return this};function D(a){a.u("vjs-lock-showing")}
-t.disable=function(){this.C();this.show=m()};t.width=function(a,c){return E(this,"width",a,c)};t.height=function(a,c){return E(this,"height",a,c)};t.Xc=function(a,c){return this.width(a,f).height(c)};function E(a,c,d,e){if(d!==b)return a.a.style[c]=-1!==(""+d).indexOf("%")||-1!==(""+d).indexOf("px")?d:"auto"===d?"":d+"px",e||a.j("resize"),a;if(!a.a)return 0;d=a.a.style[c];e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(a.a["offset"+u.$(c)],10)}
-u.q=u.c.extend({i:function(a,c){u.c.call(this,a,c);var d=l;this.d("touchstart",function(a){a.preventDefault();d=f});this.d("touchmove",function(){d=l});var e=this;this.d("touchend",function(a){d&&e.p(a);a.preventDefault()});this.d("click",this.p);this.d("focus",this.Oa);this.d("blur",this.Na)}});t=u.q.prototype;
-t.e=function(a,c){c=u.k.B({className:this.T(),innerHTML:'<div class="vjs-control-content"><span class="vjs-control-text">'+(this.qa||"Need Text")+"</span></div>",qd:"button","aria-live":"polite",tabIndex:0},c);return u.c.prototype.e.call(this,a,c)};t.T=function(){return"vjs-control "+u.c.prototype.T.call(this)};t.p=m();t.Oa=function(){u.d(document,"keyup",u.bind(this,this.ba))};t.ba=function(a){if(32==a.which||13==a.which)a.preventDefault(),this.p()};
-t.Na=function(){u.o(document,"keyup",u.bind(this,this.ba))};u.O=u.c.extend({i:function(a,c){u.c.call(this,a,c);this.Sc=this.V[this.g.barName];this.handle=this.V[this.g.handleName];a.d(this.tc,u.bind(this,this.update));this.d("mousedown",this.Pa);this.d("touchstart",this.Pa);this.d("focus",this.Oa);this.d("blur",this.Na);this.d("click",this.p);this.b.d("controlsvisible",u.bind(this,this.update));a.L(u.bind(this,this.update));this.P={}}});t=u.O.prototype;
-t.e=function(a,c){c=c||{};c.className+=" vjs-slider";c=u.k.B({qd:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c);return u.c.prototype.e.call(this,a,c)};t.Pa=function(a){a.preventDefault();u.Tc();this.P.move=u.bind(this,this.Hb);this.P.end=u.bind(this,this.Ib);u.d(document,"mousemove",this.P.move);u.d(document,"mouseup",this.P.end);u.d(document,"touchmove",this.P.move);u.d(document,"touchend",this.P.end);this.Hb(a)};
-t.Ib=function(){u.Bd();u.o(document,"mousemove",this.P.move,l);u.o(document,"mouseup",this.P.end,l);u.o(document,"touchmove",this.P.move,l);u.o(document,"touchend",this.P.end,l);this.update()};t.update=function(){if(this.a){var a,c=this.yb(),d=this.handle,e=this.Sc;isNaN(c)&&(c=0);a=c;if(d){a=this.a.offsetWidth;var g=d.w().offsetWidth;a=g?g/a:0;c*=1-a;a=c+a/2;d.w().style.left=u.round(100*c,2)+"%"}e.w().style.width=u.round(100*a,2)+"%"}};
-function F(a,c){var d,e,g,j;d=a.a;e=u.ad(d);j=g=d.offsetWidth;d=a.handle;if(a.g.Cd)return j=e.top,e=c.changedTouches?c.changedTouches[0].pageY:c.pageY,d&&(d=d.w().offsetHeight,j+=d/2,g-=d),Math.max(0,Math.min(1,(j-e+g)/g));g=e.left;e=c.changedTouches?c.changedTouches[0].pageX:c.pageX;d&&(d=d.w().offsetWidth,g+=d/2,j-=d);return Math.max(0,Math.min(1,(e-g)/j))}t.Oa=function(){u.d(document,"keyup",u.bind(this,this.ba))};
-t.ba=function(a){37==a.which?(a.preventDefault(),this.yc()):39==a.which&&(a.preventDefault(),this.zc())};t.Na=function(){u.o(document,"keyup",u.bind(this,this.ba))};t.p=function(a){a.stopImmediatePropagation();a.preventDefault()};u.ea=u.c.extend();u.ea.prototype.defaultValue=0;u.ea.prototype.e=function(a,c){c=c||{};c.className+=" vjs-slider-handle";c=u.k.B({innerHTML:'<span class="vjs-control-text">'+this.defaultValue+"</span>"},c);return u.c.prototype.e.call(this,"div",c)};u.ma=u.c.extend();
-function ca(a,c){a.Z(c);c.d("click",u.bind(a,function(){D(this)}))}u.ma.prototype.e=function(){var a=this.options().Vc||"ul";this.sa=u.e(a,{className:"vjs-menu-content"});a=u.c.prototype.e.call(this,"div",{append:this.sa,className:"vjs-menu"});a.appendChild(this.sa);u.d(a,"click",function(a){a.preventDefault();a.stopImmediatePropagation()});return a};u.N=u.q.extend({i:function(a,c){u.q.call(this,a,c);this.selected(c.selected)}});
-u.N.prototype.e=function(a,c){return u.q.prototype.e.call(this,"li",u.k.B({className:"vjs-menu-item",innerHTML:this.g.label},c))};u.N.prototype.p=function(){this.selected(f)};u.N.prototype.selected=function(a){a?(this.n("vjs-selected"),this.a.setAttribute("aria-selected",f)):(this.u("vjs-selected"),this.a.setAttribute("aria-selected",l))};
-u.R=u.q.extend({i:function(a,c){u.q.call(this,a,c);this.wa=this.Ka();this.Z(this.wa);this.I&&0===this.I.length&&this.C();this.d("keyup",this.ba);this.a.setAttribute("aria-haspopup",f);this.a.setAttribute("role","button")}});t=u.R.prototype;t.pa=l;t.Ka=function(){var a=new u.ma(this.b);this.options().title&&a.w().appendChild(u.e("li",{className:"vjs-menu-title",innerHTML:u.$(this.A),zd:-1}));if(this.I=this.createItems())for(var c=0;c<this.I.length;c++)ca(a,this.I[c]);return a};t.ta=m();
-t.T=function(){return this.className+" vjs-menu-button "+u.q.prototype.T.call(this)};t.Oa=m();t.Na=m();t.p=function(){this.U("mouseout",u.bind(this,function(){D(this.wa);this.a.blur()}));this.pa?G(this):H(this)};t.ba=function(a){a.preventDefault();32==a.which||13==a.which?this.pa?G(this):H(this):27==a.which&&this.pa&&G(this)};function H(a){a.pa=f;a.wa.n("vjs-lock-showing");a.a.setAttribute("aria-pressed",f);a.I&&0<a.I.length&&a.I[0].w().focus()}
-function G(a){a.pa=l;D(a.wa);a.a.setAttribute("aria-pressed",l)}
-u.s=u.c.extend({i:function(a,c,d){this.M=a;c=u.k.B(da(a),c);this.v={};this.uc=c.poster;this.sb=c.controls;a.controls=l;u.c.call(this,this,c,d);this.controls()?this.n("vjs-controls-enabled"):this.n("vjs-controls-disabled");this.U("play",function(a){u.j(this.a,{type:"firstplay",target:this.a})||(a.preventDefault(),a.stopPropagation(),a.stopImmediatePropagation())});this.d("ended",this.hd);this.d("play",this.Kb);this.d("firstplay",this.jd);this.d("pause",this.Jb);this.d("progress",this.ld);this.d("durationchange",
-this.sc);this.d("error",this.Gb);this.d("fullscreenchange",this.kd);u.xa[this.Q]=this;c.plugins&&u.k.ua(c.plugins,function(a,c){this[a](c)},this);var e,g,j,k;e=this.Mb;a=function(){e();clearInterval(g);g=setInterval(u.bind(this,e),250)};c=function(){e();clearInterval(g)};this.d("mousedown",a);this.d("mousemove",e);this.d("mouseup",c);this.d("keydown",e);this.d("keyup",e);this.d("touchstart",a);this.d("touchmove",e);this.d("touchend",c);this.d("touchcancel",c);j=setInterval(u.bind(this,function(){this.ka&&
-(this.ka=l,this.ja(f),clearTimeout(k),k=setTimeout(u.bind(this,function(){this.ka||this.ja(l)}),2E3))}),250);this.d("dispose",function(){clearInterval(j);clearTimeout(k)})}});t=u.s.prototype;t.g=u.options;t.D=function(){this.j("dispose");this.o("dispose");u.xa[this.Q]=h;this.M&&this.M.player&&(this.M.player=h);this.a&&this.a.player&&(this.a.player=h);clearInterval(this.Ra);this.za();this.h&&this.h.D();u.c.prototype.D.call(this)};
-function da(a){var c={sources:[],tracks:[]};u.k.B(c,u.xb(a));if(a.hasChildNodes()){var d,e,g,j;a=a.childNodes;g=0;for(j=a.length;g<j;g++)d=a[g],e=d.nodeName.toLowerCase(),"source"===e?c.sources.push(u.xb(d)):"track"===e&&c.tracks.push(u.xb(d))}return c}
-t.e=function(){var a=this.a=u.c.prototype.e.call(this,"div"),c=this.M;c.removeAttribute("width");c.removeAttribute("height");if(c.hasChildNodes()){var d,e,g,j,k;d=c.childNodes;e=d.length;for(k=[];e--;)g=d[e],j=g.nodeName.toLowerCase(),"track"===j&&k.push(g);for(d=0;d<k.length;d++)c.removeChild(k[d])}c.id=c.id||"vjs_video_"+u.t++;a.id=c.id;a.className=c.className;c.id+="_html5_api";c.className="vjs-tech";c.player=a.player=this;this.n("vjs-paused");this.width(this.g.width,f);this.height(this.g.height,
-f);c.parentNode&&c.parentNode.insertBefore(a,c);u.zb(c,a);return a};
-function I(a,c,d){a.h?(a.aa=l,a.h.D(),a.Eb&&(a.Eb=l,clearInterval(a.Ra)),a.Fb&&J(a),a.h=l):"Html5"!==c&&a.M&&(u.l.jc(a.M),a.M=h);a.ia=c;a.aa=l;var e=u.k.B({source:d,parentEl:a.a},a.g[c.toLowerCase()]);d&&(d.src==a.v.src&&0<a.v.currentTime&&(e.startTime=a.v.currentTime),a.v.src=d.src);a.h=new window.videojs[c](a,e);a.h.L(function(){this.b.Ua();if(!this.m.progressEvents){var a=this.b;a.Eb=f;a.Ra=setInterval(u.bind(a,function(){this.v.lb<this.buffered().end(0)?this.j("progress"):1==this.Ja()&&(clearInterval(this.Ra),
-this.j("progress"))}),500);a.h.U("progress",function(){this.m.progressEvents=f;var a=this.b;a.Eb=l;clearInterval(a.Ra)})}this.m.timeupdateEvents||(a=this.b,a.Fb=f,a.d("play",a.Cc),a.d("pause",a.za),a.h.U("timeupdate",function(){this.m.timeupdateEvents=f;J(this.b)}))})}function J(a){a.Fb=l;a.za();a.o("play",a.Cc);a.o("pause",a.za)}t.Cc=function(){this.hc&&this.za();this.hc=setInterval(u.bind(this,function(){this.j("timeupdate")}),250)};t.za=function(){clearInterval(this.hc)};
-t.Kb=function(){u.u(this.a,"vjs-paused");u.n(this.a,"vjs-playing")};t.jd=function(){this.g.starttime&&this.currentTime(this.g.starttime);this.n("vjs-has-started")};t.Jb=function(){u.u(this.a,"vjs-playing");u.n(this.a,"vjs-paused")};t.ld=function(){1==this.Ja()&&this.j("loadedalldata")};t.hd=function(){this.g.loop&&(this.currentTime(0),this.play())};t.sc=function(){this.duration(K(this,"duration"))};t.kd=function(){this.H?this.n("vjs-fullscreen"):this.u("vjs-fullscreen")};
-t.Gb=function(a){u.log("Video Error",a)};function L(a,c,d){if(a.h&&!a.h.aa)a.h.L(function(){this[c](d)});else try{a.h[c](d)}catch(e){throw u.log(e),e;}}function K(a,c){if(a.h&&a.h.aa)try{return a.h[c]()}catch(d){throw a.h[c]===b?u.log("Video.js: "+c+" method not defined for "+a.ia+" playback technology.",d):"TypeError"==d.name?(u.log("Video.js: "+c+" unavailable on "+a.ia+" playback technology element.",d),a.h.aa=l):u.log(d),d;}}t.play=function(){L(this,"play");return this};
-t.pause=function(){L(this,"pause");return this};t.paused=function(){return K(this,"paused")===l?l:f};t.currentTime=function(a){return a!==b?(this.v.rc=a,L(this,"setCurrentTime",a),this.Fb&&this.j("timeupdate"),this):this.v.currentTime=K(this,"currentTime")||0};t.duration=function(a){if(a!==b)return this.v.duration=parseFloat(a),this;this.v.duration===b&&this.sc();return this.v.duration};
-t.buffered=function(){var a=K(this,"buffered"),c=a.length-1,d=this.v.lb=this.v.lb||0;a&&(0<=c&&a.end(c)!==d)&&(d=a.end(c),this.v.lb=d);return u.tb(0,d)};t.Ja=function(){return this.duration()?this.buffered().end(0)/this.duration():0};t.volume=function(a){if(a!==b)return a=Math.max(0,Math.min(1,parseFloat(a))),this.v.volume=a,L(this,"setVolume",a),u.td(a),this;a=parseFloat(K(this,"volume"));return isNaN(a)?1:a};t.muted=function(a){return a!==b?(L(this,"setMuted",a),this):K(this,"muted")||l};
-t.Ta=function(){return K(this,"supportsFullScreen")||l};
-t.ya=function(){var a=u.Pb.ya;this.H=f;a?(u.d(document,a.vb,u.bind(this,function(c){this.H=document[a.H];this.H===l&&u.o(document,a.vb,arguments.callee);this.j("fullscreenchange")})),this.a[a.wc]()):this.h.Ta()?L(this,"enterFullScreen"):(this.cd=f,this.Yc=document.documentElement.style.overflow,u.d(document,"keydown",u.bind(this,this.lc)),document.documentElement.style.overflow="hidden",u.n(document.body,"vjs-full-window"),this.j("enterFullWindow"),this.j("fullscreenchange"));return this};
-t.ob=function(){var a=u.Pb.ya;this.H=l;if(a)document[a.nb]();else this.h.Ta()?L(this,"exitFullScreen"):(M(this),this.j("fullscreenchange"));return this};t.lc=function(a){27===a.keyCode&&(this.H===f?this.ob():M(this))};function M(a){a.cd=l;u.o(document,"keydown",a.lc);document.documentElement.style.overflow=a.Yc;u.u(document.body,"vjs-full-window");a.j("exitFullWindow")}
-t.src=function(a){if(a instanceof Array){var c;a:{c=a;for(var d=0,e=this.g.techOrder;d<e.length;d++){var g=u.$(e[d]),j=window.videojs[g];if(j.isSupported())for(var k=0,q=c;k<q.length;k++){var n=q[k];if(j.canPlaySource(n)){c={source:n,h:g};break a}}}c=l}c?(a=c.source,c=c.h,c==this.ia?this.src(a):I(this,c,a)):this.a.appendChild(u.e("p",{innerHTML:this.options().notSupportedMessage}))}else a instanceof Object?window.videojs[this.ia].canPlaySource(a)?this.src(a.src):this.src([a]):(this.v.src=a,this.aa?
-(L(this,"src",a),"auto"==this.g.preload&&this.load(),this.g.autoplay&&this.play()):this.L(function(){this.src(a)}));return this};t.load=function(){L(this,"load");return this};t.currentSrc=function(){return K(this,"currentSrc")||this.v.src||""};t.Qa=function(a){return a!==b?(L(this,"setPreload",a),this.g.preload=a,this):K(this,"preload")};t.autoplay=function(a){return a!==b?(L(this,"setAutoplay",a),this.g.autoplay=a,this):K(this,"autoplay")};
-t.loop=function(a){return a!==b?(L(this,"setLoop",a),this.g.loop=a,this):K(this,"loop")};t.poster=function(a){return a!==b?(this.uc=a,this):this.uc};t.controls=function(a){return a!==b?(a=!!a,this.sb!==a&&((this.sb=a)?(this.u("vjs-controls-disabled"),this.n("vjs-controls-enabled"),this.j("controlsenabled")):(this.u("vjs-controls-enabled"),this.n("vjs-controls-disabled"),this.j("controlsdisabled"))),this):this.sb};u.s.prototype.Sb;t=u.s.prototype;
-t.Rb=function(a){return a!==b?(a=!!a,this.Sb!==a&&((this.Sb=a)?(this.n("vjs-using-native-controls"),this.j("usingnativecontrols")):(this.u("vjs-using-native-controls"),this.j("usingcustomcontrols"))),this):this.Sb};t.error=function(){return K(this,"error")};t.seeking=function(){return K(this,"seeking")};t.ka=f;t.Mb=function(){this.ka=f};t.Qb=f;
-t.ja=function(a){return a!==b?(a=!!a,a!==this.Qb&&((this.Qb=a)?(this.ka=f,this.u("vjs-user-inactive"),this.n("vjs-user-active"),this.j("useractive")):(this.ka=l,this.h.U("mousemove",function(a){a.stopPropagation();a.preventDefault()}),this.u("vjs-user-active"),this.n("vjs-user-inactive"),this.j("userinactive"))),this):this.Qb};var N,O,P;P=document.createElement("div");O={};
-P.Hd!==b?(O.wc="requestFullscreen",O.nb="exitFullscreen",O.vb="fullscreenchange",O.H="fullScreen"):(document.mozCancelFullScreen?(N="moz",O.H=N+"FullScreen"):(N="webkit",O.H=N+"IsFullScreen"),P[N+"RequestFullScreen"]&&(O.wc=N+"RequestFullScreen",O.nb=N+"CancelFullScreen"),O.vb=N+"fullscreenchange");document[O.nb]&&(u.Pb.ya=O);u.Fa=u.c.extend();
-u.Fa.prototype.g={Md:"play",children:{playToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},progressControl:{},fullscreenToggle:{},volumeControl:{},muteToggle:{}}};u.Fa.prototype.e=function(){return u.e("div",{className:"vjs-control-bar"})};u.Yb=u.q.extend({i:function(a,c){u.q.call(this,a,c);a.d("play",u.bind(this,this.Kb));a.d("pause",u.bind(this,this.Jb))}});t=u.Yb.prototype;t.qa="Play";t.T=function(){return"vjs-play-control "+u.q.prototype.T.call(this)};
-t.p=function(){this.b.paused()?this.b.play():this.b.pause()};t.Kb=function(){u.u(this.a,"vjs-paused");u.n(this.a,"vjs-playing");this.a.children[0].children[0].innerHTML="Pause"};t.Jb=function(){u.u(this.a,"vjs-playing");u.n(this.a,"vjs-paused");this.a.children[0].children[0].innerHTML="Play"};u.Ya=u.c.extend({i:function(a,c){u.c.call(this,a,c);a.d("timeupdate",u.bind(this,this.Ca))}});
-u.Ya.prototype.e=function(){var a=u.c.prototype.e.call(this,"div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.content=u.e("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00',"aria-live":"off"});a.appendChild(u.e("div").appendChild(this.content));return a};
-u.Ya.prototype.Ca=function(){var a=this.b.Nb?this.b.v.currentTime:this.b.currentTime();this.content.innerHTML='<span class="vjs-control-text">Current Time </span>'+u.La(a,this.b.duration())};u.Za=u.c.extend({i:function(a,c){u.c.call(this,a,c);a.d("timeupdate",u.bind(this,this.Ca))}});
-u.Za.prototype.e=function(){var a=u.c.prototype.e.call(this,"div",{className:"vjs-duration vjs-time-controls vjs-control"});this.content=u.e("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">Duration Time </span>0:00',"aria-live":"off"});a.appendChild(u.e("div").appendChild(this.content));return a};u.Za.prototype.Ca=function(){var a=this.b.duration();a&&(this.content.innerHTML='<span class="vjs-control-text">Duration Time </span>'+u.La(a))};
-u.cc=u.c.extend({i:function(a,c){u.c.call(this,a,c)}});u.cc.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})};u.fb=u.c.extend({i:function(a,c){u.c.call(this,a,c);a.d("timeupdate",u.bind(this,this.Ca))}});
-u.fb.prototype.e=function(){var a=u.c.prototype.e.call(this,"div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.content=u.e("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">Remaining Time </span>-0:00',"aria-live":"off"});a.appendChild(u.e("div").appendChild(this.content));return a};u.fb.prototype.Ca=function(){this.b.duration()&&(this.content.innerHTML='<span class="vjs-control-text">Remaining Time </span>-'+u.La(this.b.duration()-this.b.currentTime()))};
-u.Ga=u.q.extend({i:function(a,c){u.q.call(this,a,c)}});u.Ga.prototype.qa="Fullscreen";u.Ga.prototype.T=function(){return"vjs-fullscreen-control "+u.q.prototype.T.call(this)};u.Ga.prototype.p=function(){this.b.H?(this.b.ob(),this.a.children[0].children[0].innerHTML="Fullscreen"):(this.b.ya(),this.a.children[0].children[0].innerHTML="Non-Fullscreen")};u.eb=u.c.extend({i:function(a,c){u.c.call(this,a,c)}});u.eb.prototype.g={children:{seekBar:{}}};
-u.eb.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-progress-control vjs-control"})};u.Zb=u.O.extend({i:function(a,c){u.O.call(this,a,c);a.d("timeupdate",u.bind(this,this.Ba));a.L(u.bind(this,this.Ba))}});t=u.Zb.prototype;t.g={children:{loadProgressBar:{},playProgressBar:{},seekHandle:{}},barName:"playProgressBar",handleName:"seekHandle"};t.tc="timeupdate";t.e=function(){return u.O.prototype.e.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})};
-t.Ba=function(){var a=this.b.Nb?this.b.v.currentTime:this.b.currentTime();this.a.setAttribute("aria-valuenow",u.round(100*this.yb(),2));this.a.setAttribute("aria-valuetext",u.La(a,this.b.duration()))};t.yb=function(){var a;"Flash"===this.b.ia&&this.b.seeking()?(a=this.b.v,a=a.rc?a.rc:this.b.currentTime()):a=this.b.currentTime();return a/this.b.duration()};t.Pa=function(a){u.O.prototype.Pa.call(this,a);this.b.Nb=f;this.Dd=!this.b.paused();this.b.pause()};
-t.Hb=function(a){a=F(this,a)*this.b.duration();a==this.b.duration()&&(a-=0.1);this.b.currentTime(a)};t.Ib=function(a){u.O.prototype.Ib.call(this,a);this.b.Nb=l;this.Dd&&this.b.play()};t.zc=function(){this.b.currentTime(this.b.currentTime()+5)};t.yc=function(){this.b.currentTime(this.b.currentTime()-5)};u.ab=u.c.extend({i:function(a,c){u.c.call(this,a,c);a.d("progress",u.bind(this,this.update))}});u.ab.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text">Loaded: 0%</span>'})};
-u.ab.prototype.update=function(){this.a.style&&(this.a.style.width=u.round(100*this.b.Ja(),2)+"%")};u.Xb=u.c.extend({i:function(a,c){u.c.call(this,a,c)}});u.Xb.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text">Progress: 0%</span>'})};u.gb=u.ea.extend();u.gb.prototype.defaultValue="00:00";u.gb.prototype.e=function(){return u.ea.prototype.e.call(this,"div",{className:"vjs-seek-handle"})};
-u.ib=u.c.extend({i:function(a,c){u.c.call(this,a,c);a.h&&(a.h.m&&a.h.m.volumeControl===l)&&this.n("vjs-hidden");a.d("loadstart",u.bind(this,function(){a.h.m&&a.h.m.volumeControl===l?this.n("vjs-hidden"):this.u("vjs-hidden")}))}});u.ib.prototype.g={children:{volumeBar:{}}};u.ib.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-volume-control vjs-control"})};
-u.hb=u.O.extend({i:function(a,c){u.O.call(this,a,c);a.d("volumechange",u.bind(this,this.Ba));a.L(u.bind(this,this.Ba));setTimeout(u.bind(this,this.update),0)}});t=u.hb.prototype;t.Ba=function(){this.a.setAttribute("aria-valuenow",u.round(100*this.b.volume(),2));this.a.setAttribute("aria-valuetext",u.round(100*this.b.volume(),2)+"%")};t.g={children:{volumeLevel:{},volumeHandle:{}},barName:"volumeLevel",handleName:"volumeHandle"};t.tc="volumechange";
-t.e=function(){return u.O.prototype.e.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})};t.Hb=function(a){this.b.muted()&&this.b.muted(l);this.b.volume(F(this,a))};t.yb=function(){return this.b.muted()?0:this.b.volume()};t.zc=function(){this.b.volume(this.b.volume()+0.1)};t.yc=function(){this.b.volume(this.b.volume()-0.1)};u.dc=u.c.extend({i:function(a,c){u.c.call(this,a,c)}});
-u.dc.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})};u.jb=u.ea.extend();u.jb.prototype.defaultValue="00:00";u.jb.prototype.e=function(){return u.ea.prototype.e.call(this,"div",{className:"vjs-volume-handle"})};
-u.da=u.q.extend({i:function(a,c){u.q.call(this,a,c);a.d("volumechange",u.bind(this,this.update));a.h&&(a.h.m&&a.h.m.volumeControl===l)&&this.n("vjs-hidden");a.d("loadstart",u.bind(this,function(){a.h.m&&a.h.m.volumeControl===l?this.n("vjs-hidden"):this.u("vjs-hidden")}))}});u.da.prototype.e=function(){return u.q.prototype.e.call(this,"div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute</span></div>'})};
-u.da.prototype.p=function(){this.b.muted(this.b.muted()?l:f)};u.da.prototype.update=function(){var a=this.b.volume(),c=3;0===a||this.b.muted()?c=0:0.33>a?c=1:0.67>a&&(c=2);this.b.muted()?"Unmute"!=this.a.children[0].children[0].innerHTML&&(this.a.children[0].children[0].innerHTML="Unmute"):"Mute"!=this.a.children[0].children[0].innerHTML&&(this.a.children[0].children[0].innerHTML="Mute");for(a=0;4>a;a++)u.u(this.a,"vjs-vol-"+a);u.n(this.a,"vjs-vol-"+c)};
-u.oa=u.R.extend({i:function(a,c){u.R.call(this,a,c);a.d("volumechange",u.bind(this,this.update));a.h&&(a.h.m&&a.h.m.Dc===l)&&this.n("vjs-hidden");a.d("loadstart",u.bind(this,function(){a.h.m&&a.h.m.Dc===l?this.n("vjs-hidden"):this.u("vjs-hidden")}));this.n("vjs-menu-button")}});u.oa.prototype.Ka=function(){var a=new u.ma(this.b,{Vc:"div"}),c=new u.hb(this.b,u.k.B({Cd:f},this.g.Vd));a.Z(c);return a};u.oa.prototype.p=function(){u.da.prototype.p.call(this);u.R.prototype.p.call(this)};
-u.oa.prototype.e=function(){return u.q.prototype.e.call(this,"div",{className:"vjs-volume-menu-button vjs-menu-button vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute</span></div>'})};u.oa.prototype.update=u.da.prototype.update;u.cb=u.q.extend({i:function(a,c){u.q.call(this,a,c);(!a.poster()||!a.controls())&&this.C();a.d("play",u.bind(this,this.C))}});
-u.cb.prototype.e=function(){var a=u.e("div",{className:"vjs-poster",tabIndex:-1}),c=this.b.poster();c&&("backgroundSize"in a.style?a.style.backgroundImage='url("'+c+'")':a.appendChild(u.e("img",{src:c})));return a};u.cb.prototype.p=function(){this.K().controls()&&this.b.play()};
-u.Wb=u.c.extend({i:function(a,c){u.c.call(this,a,c);a.d("canplay",u.bind(this,this.C));a.d("canplaythrough",u.bind(this,this.C));a.d("playing",u.bind(this,this.C));a.d("seeked",u.bind(this,this.C));a.d("seeking",u.bind(this,this.show));a.d("seeked",u.bind(this,this.C));a.d("error",u.bind(this,this.show));a.d("waiting",u.bind(this,this.show))}});u.Wb.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-loading-spinner"})};u.Wa=u.q.extend();
-u.Wa.prototype.e=function(){return u.q.prototype.e.call(this,"div",{className:"vjs-big-play-button",innerHTML:'<span aria-hidden="true"></span>',"aria-label":"play video"})};u.Wa.prototype.p=function(){this.b.play()};
-u.r=u.c.extend({i:function(a,c,d){u.c.call(this,a,c,d);var e,g;g=this;e=this.K();a=function(){if(e.controls()&&!e.Rb()){var a,c;g.d("mousedown",g.p);g.d("touchstart",function(a){a.preventDefault();a.stopPropagation();c=this.b.ja()});a=function(a){a.stopPropagation();c&&this.b.Mb()};g.d("touchmove",a);g.d("touchleave",a);g.d("touchcancel",a);g.d("touchend",a);var d,n,r;d=0;g.d("touchstart",function(){d=(new Date).getTime();r=f});a=function(){r=l};g.d("touchmove",a);g.d("touchleave",a);g.d("touchcancel",
-a);g.d("touchend",function(){r===f&&(n=(new Date).getTime()-d,250>n&&this.j("tap"))});g.d("tap",g.md)}};c=u.bind(g,g.pd);this.L(a);e.d("controlsenabled",a);e.d("controlsdisabled",c)}});u.r.prototype.pd=function(){this.o("tap");this.o("touchstart");this.o("touchmove");this.o("touchleave");this.o("touchcancel");this.o("touchend");this.o("click");this.o("mousedown")};u.r.prototype.p=function(a){0===a.button&&this.K().controls()&&(this.K().paused()?this.K().play():this.K().pause())};
-u.r.prototype.md=function(){this.K().ja(!this.K().ja())};u.r.prototype.m={volumeControl:f,fullscreenResize:l,progressEvents:l,timeupdateEvents:l};u.media={};u.media.Va="play pause paused currentTime setCurrentTime duration buffered volume setVolume muted setMuted width height supportsFullScreen enterFullScreen src load currentSrc preload setPreload autoplay setAutoplay loop setLoop error networkState readyState seeking initialTime startOffsetTime played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks defaultPlaybackRate playbackRate mediaGroup controller controls defaultMuted".split(" ");
-function ea(){var a=u.media.Va[i];return function(){throw Error('The "'+a+"\" method is not available on the playback technology's API");}}for(var i=u.media.Va.length-1;0<=i;i--)u.r.prototype[u.media.Va[i]]=ea();
-u.l=u.r.extend({i:function(a,c,d){this.m.volumeControl=u.l.Uc();this.m.movingMediaElementInDOM=!u.Kc;this.m.fullscreenResize=f;u.r.call(this,a,c,d);(c=c.source)&&this.a.currentSrc===c.src&&0<this.a.networkState?a.j("loadstart"):c&&(this.a.src=c.src);if(u.ac&&a.options().nativeControlsForTouch!==l){var e,g,j,k;e=this;g=this.K();c=g.controls();e.a.controls=!!c;j=function(){e.a.controls=f};k=function(){e.a.controls=l};g.d("controlsenabled",j);g.d("controlsdisabled",k);c=function(){g.o("controlsenabled",
-j);g.o("controlsdisabled",k)};e.d("dispose",c);g.d("usingcustomcontrols",c);g.Rb(f)}a.L(function(){this.M&&(this.g.autoplay&&this.paused())&&(delete this.M.poster,this.play())});for(a=u.l.$a.length-1;0<=a;a--)u.d(this.a,u.l.$a[a],u.bind(this.b,this.$c));this.Ua()}});t=u.l.prototype;t.D=function(){u.r.prototype.D.call(this)};
-t.e=function(){var a=this.b,c=a.M,d;if(!c||this.m.movingMediaElementInDOM===l)c?(d=c.cloneNode(l),u.l.jc(c),c=d,a.M=h):c=u.e("video",{id:a.id()+"_html5_api",className:"vjs-tech"}),c.player=a,u.zb(c,a.w());d=["autoplay","preload","loop","muted"];for(var e=d.length-1;0<=e;e--){var g=d[e];a.g[g]!==h&&(c[g]=a.g[g])}return c};t.$c=function(a){this.j(a);a.stopPropagation()};t.play=function(){this.a.play()};t.pause=function(){this.a.pause()};t.paused=function(){return this.a.paused};t.currentTime=function(){return this.a.currentTime};
-t.sd=function(a){try{this.a.currentTime=a}catch(c){u.log(c,"Video is not ready. (Video.js)")}};t.duration=function(){return this.a.duration||0};t.buffered=function(){return this.a.buffered};t.volume=function(){return this.a.volume};t.xd=function(a){this.a.volume=a};t.muted=function(){return this.a.muted};t.vd=function(a){this.a.muted=a};t.width=function(){return this.a.offsetWidth};t.height=function(){return this.a.offsetHeight};
-t.Ta=function(){return"function"==typeof this.a.webkitEnterFullScreen&&(/Android/.test(u.F)||!/Chrome|Mac OS X 10.5/.test(u.F))?f:l};t.src=function(a){this.a.src=a};t.load=function(){this.a.load()};t.currentSrc=function(){return this.a.currentSrc};t.Qa=function(){return this.a.Qa};t.wd=function(a){this.a.Qa=a};t.autoplay=function(){return this.a.autoplay};t.rd=function(a){this.a.autoplay=a};t.controls=function(){return this.a.controls};t.loop=function(){return this.a.loop};
-t.ud=function(a){this.a.loop=a};t.error=function(){return this.a.error};t.seeking=function(){return this.a.seeking};u.l.isSupported=function(){return!!u.na.canPlayType};u.l.mb=function(a){try{return!!u.na.canPlayType(a.type)}catch(c){return""}};u.l.Uc=function(){var a=u.na.volume;u.na.volume=a/2+0.1;return a!==u.na.volume};u.l.$a="loadstart suspend abort error emptied stalled loadedmetadata loadeddata canplay canplaythrough playing waiting seeking seeked ended durationchange timeupdate progress play pause ratechange volumechange".split(" ");
-u.l.jc=function(a){if(a){a.player=h;for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src");"function"===typeof a.load&&a.load()}};u.Oc&&(document.createElement("video").constructor.prototype.canPlayType=function(a){return a&&-1!=a.toLowerCase().indexOf("video/mp4")?"maybe":""});
-u.f=u.r.extend({i:function(a,c,d){u.r.call(this,a,c,d);var e=c.source;d=c.parentEl;var g=this.a=u.e("div",{id:a.id()+"_temp_flash"}),j=a.id()+"_flash_api";a=a.g;var k=u.k.B({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.Qa,loop:a.loop,muted:a.muted},c.flashVars),q=u.k.B({wmode:"opaque",bgcolor:"#000000"},c.params),n=u.k.B({id:j,name:j,"class":"vjs-tech"},c.attributes);e&&(e.type&&u.f.ed(e.type)?
-(a=u.f.Ac(e.src),k.rtmpConnection=encodeURIComponent(a.rb),k.rtmpStream=encodeURIComponent(a.Ob)):k.src=encodeURIComponent(u.mc(e.src)));u.zb(g,d);c.startTime&&this.L(function(){this.load();this.play();this.currentTime(c.startTime)});if(c.iFrameMode===f&&!u.Jc){var r=u.e("iframe",{id:j+"_iframe",name:j+"_iframe",className:"vjs-tech",scrolling:"no",marginWidth:0,marginHeight:0,frameBorder:0});k.readyFunction="ready";k.eventProxyFunction="events";k.errorEventProxyFunction="errors";u.d(r,"load",u.bind(this,
-function(){var a,d=r.contentWindow;a=r.contentDocument?r.contentDocument:r.contentWindow.document;a.write(u.f.nc(c.swf,k,q,n));d.player=this.b;d.ready=u.bind(this.b,function(c){var d=this.h;d.a=a.getElementById(c);u.f.pb(d)});d.events=u.bind(this.b,function(a,c){this&&"flash"===this.ia&&this.j(c)});d.errors=u.bind(this.b,function(a,c){u.log("Flash Error",c)})}));g.parentNode.replaceChild(r,g)}else u.f.Zc(c.swf,g,k,q,n)}});t=u.f.prototype;t.D=function(){u.r.prototype.D.call(this)};t.play=function(){this.a.vjs_play()};
-t.pause=function(){this.a.vjs_pause()};t.src=function(a){u.f.dd(a)?(a=u.f.Ac(a),this.Qd(a.rb),this.Rd(a.Ob)):(a=u.mc(a),this.a.vjs_src(a));if(this.b.autoplay()){var c=this;setTimeout(function(){c.play()},0)}};t.currentSrc=function(){var a=this.a.vjs_getProperty("currentSrc");if(a==h){var c=this.Od(),d=this.Pd();c&&d&&(a=u.f.yd(c,d))}return a};t.load=function(){this.a.vjs_load()};t.poster=function(){this.a.vjs_getProperty("poster")};t.buffered=function(){return u.tb(0,this.a.vjs_getProperty("buffered"))};
-t.Ta=s(l);var Q=u.f.prototype,R="rtmpConnection rtmpStream preload currentTime defaultPlaybackRate playbackRate autoplay loop mediaGroup controller controls volume muted defaultMuted".split(" "),S="error currentSrc networkState readyState seeking initialTime duration startOffsetTime paused played seekable ended videoTracks audioTracks videoWidth videoHeight textTracks".split(" ");
-function fa(){var a=R[T],c=a.charAt(0).toUpperCase()+a.slice(1);Q["set"+c]=function(c){return this.a.vjs_setProperty(a,c)}}function U(a){Q[a]=function(){return this.a.vjs_getProperty(a)}}var T;for(T=0;T<R.length;T++)U(R[T]),fa();for(T=0;T<S.length;T++)U(S[T]);u.f.isSupported=function(){return 10<=u.f.version()[0]};u.f.mb=function(a){if(!a.type)return"";a=a.type.replace(/;.*/,"").toLowerCase();if(a in u.f.bd||a in u.f.Bc)return"maybe"};
-u.f.bd={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"};u.f.Bc={"rtmp/mp4":"MP4","rtmp/flv":"FLV"};u.f.onReady=function(a){a=u.w(a);var c=a.player||a.parentNode.player,d=c.h;a.player=c;d.a=a;u.f.pb(d)};u.f.pb=function(a){a.w().vjs_getProperty?a.Ua():setTimeout(function(){u.f.pb(a)},50)};u.f.onEvent=function(a,c){u.w(a).player.j(c)};u.f.onError=function(a,c){u.w(a).player.j("error");u.log("Flash Error",c,a)};
-u.f.version=function(){var a="0,0,0";try{a=(new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(c){try{navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(d){}}return a.split(",")};
-u.f.Zc=function(a,c,d,e,g){a=u.f.nc(a,d,e,g);a=u.e("div",{innerHTML:a}).childNodes[0];d=c.parentNode;c.parentNode.replaceChild(a,c);var j=d.childNodes[0];setTimeout(function(){j.style.display="block"},1E3)};
-u.f.nc=function(a,c,d,e){var g="",j="",k="";c&&u.k.ua(c,function(a,c){g+=a+"="+c+"&amp;"});d=u.k.B({movie:a,flashvars:g,allowScriptAccess:"always",allowNetworking:"all"},d);u.k.ua(d,function(a,c){j+='<param name="'+a+'" value="'+c+'" />'});e=u.k.B({data:a,width:"100%",height:"100%"},e);u.k.ua(e,function(a,c){k+=a+'="'+c+'" '});return'<object type="application/x-shockwave-flash"'+k+">"+j+"</object>"};u.f.yd=function(a,c){return a+"&"+c};
-u.f.Ac=function(a){var c={rb:"",Ob:""};if(!a)return c;var d=a.indexOf("&"),e;-1!==d?e=d+1:(d=e=a.lastIndexOf("/")+1,0===d&&(d=e=a.length));c.rb=a.substring(0,d);c.Ob=a.substring(e,a.length);return c};u.f.ed=function(a){return a in u.f.Bc};u.f.Qc=/^rtmp[set]?:\/\//i;u.f.dd=function(a){return u.f.Qc.test(a)};
-u.Pc=u.c.extend({i:function(a,c,d){u.c.call(this,a,c,d);if(!a.g.sources||0===a.g.sources.length){c=0;for(d=a.g.techOrder;c<d.length;c++){var e=u.$(d[c]),g=window.videojs[e];if(g&&g.isSupported()){I(a,e);break}}}else a.src(a.g.sources)}});function V(a){a.Aa=a.Aa||[];return a.Aa}function W(a,c,d){for(var e=a.Aa,g=0,j=e.length,k,q;g<j;g++)k=e[g],k.id()===c?(k.show(),q=k):d&&(k.J()==d&&0<k.mode())&&k.disable();(c=q?q.J():d?d:l)&&a.j(c+"trackchange")}
-u.X=u.c.extend({i:function(a,c){u.c.call(this,a,c);this.Q=c.id||"vjs_"+c.kind+"_"+c.language+"_"+u.t++;this.xc=c.src;this.Wc=c["default"]||c.dflt;this.Ad=c.title;this.Ld=c.srclang;this.fd=c.label;this.fa=[];this.ec=[];this.ga=this.ha=0;this.b.d("fullscreenchange",u.bind(this,this.Rc))}});t=u.X.prototype;t.J=p("A");t.src=p("xc");t.ub=p("Wc");t.title=p("Ad");t.label=p("fd");t.readyState=p("ha");t.mode=p("ga");t.Rc=function(){this.a.style.fontSize=this.b.H?140*(screen.width/this.b.width())+"%":""};
-t.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-"+this.A+" vjs-text-track"})};t.show=function(){X(this);this.ga=2;u.c.prototype.show.call(this)};t.C=function(){X(this);this.ga=1;u.c.prototype.C.call(this)};t.disable=function(){2==this.ga&&this.C();this.b.o("timeupdate",u.bind(this,this.update,this.Q));this.b.o("ended",u.bind(this,this.reset,this.Q));this.reset();this.b.V.textTrackDisplay.removeChild(this);this.ga=0};
-function X(a){0===a.ha&&a.load();0===a.ga&&(a.b.d("timeupdate",u.bind(a,a.update,a.Q)),a.b.d("ended",u.bind(a,a.reset,a.Q)),("captions"===a.A||"subtitles"===a.A)&&a.b.V.textTrackDisplay.Z(a))}t.load=function(){0===this.ha&&(this.ha=1,u.get(this.xc,u.bind(this,this.nd),u.bind(this,this.Gb)))};t.Gb=function(a){this.error=a;this.ha=3;this.j("error")};
-t.nd=function(a){var c,d;a=a.split("\n");for(var e="",g=1,j=a.length;g<j;g++)if(e=u.trim(a[g])){-1==e.indexOf("--\x3e")?(c=e,e=u.trim(a[++g])):c=this.fa.length;c={id:c,index:this.fa.length};d=e.split(" --\x3e ");c.startTime=Y(d[0]);c.va=Y(d[1]);for(d=[];a[++g]&&(e=u.trim(a[g]));)d.push(e);c.text=d.join("<br/>");this.fa.push(c)}this.ha=2;this.j("loaded")};
-function Y(a){var c=a.split(":");a=0;var d,e,g;3==c.length?(d=c[0],e=c[1],c=c[2]):(d=0,e=c[0],c=c[1]);c=c.split(/\s+/);c=c.splice(0,1)[0];c=c.split(/\.|,/);g=parseFloat(c[1]);c=c[0];a+=3600*parseFloat(d);a+=60*parseFloat(e);a+=parseFloat(c);g&&(a+=g/1E3);return a}
-t.update=function(){if(0<this.fa.length){var a=this.b.currentTime();if(this.Lb===b||a<this.Lb||this.Ma<=a){var c=this.fa,d=this.b.duration(),e=0,g=l,j=[],k,q,n,r;a>=this.Ma||this.Ma===b?r=this.wb!==b?this.wb:0:(g=f,r=this.Db!==b?this.Db:c.length-1);for(;;){n=c[r];if(n.va<=a)e=Math.max(e,n.va),n.Ia&&(n.Ia=l);else if(a<n.startTime){if(d=Math.min(d,n.startTime),n.Ia&&(n.Ia=l),!g)break}else g?(j.splice(0,0,n),q===b&&(q=r),k=r):(j.push(n),k===b&&(k=r),q=r),d=Math.min(d,n.va),e=Math.max(e,n.startTime),
-n.Ia=f;if(g)if(0===r)break;else r--;else if(r===c.length-1)break;else r++}this.ec=j;this.Ma=d;this.Lb=e;this.wb=k;this.Db=q;a=this.ec;c="";d=0;for(e=a.length;d<e;d++)c+='<span class="vjs-tt-cue">'+a[d].text+"</span>";this.a.innerHTML=c;this.j("cuechange")}}};t.reset=function(){this.Ma=0;this.Lb=this.b.duration();this.Db=this.wb=0};u.Ub=u.X.extend();u.Ub.prototype.A="captions";u.$b=u.X.extend();u.$b.prototype.A="subtitles";u.Vb=u.X.extend();u.Vb.prototype.A="chapters";
-u.bc=u.c.extend({i:function(a,c,d){u.c.call(this,a,c,d);if(a.g.tracks&&0<a.g.tracks.length){c=this.b;a=a.g.tracks;var e;for(d=0;d<a.length;d++){e=a[d];var g=c,j=e.kind,k=e.label,q=e.language,n=e;e=g.Aa=g.Aa||[];n=n||{};n.kind=j;n.label=k;n.language=q;j=u.$(j||"subtitles");g=new window.videojs[j+"Track"](g,n);e.push(g)}}}});u.bc.prototype.e=function(){return u.c.prototype.e.call(this,"div",{className:"vjs-text-track-display"})};
-u.Y=u.N.extend({i:function(a,c){var d=this.ca=c.track;c.label=d.label();c.selected=d.ub();u.N.call(this,a,c);this.b.d(d.J()+"trackchange",u.bind(this,this.update))}});u.Y.prototype.p=function(){u.N.prototype.p.call(this);W(this.b,this.ca.Q,this.ca.J())};u.Y.prototype.update=function(){this.selected(2==this.ca.mode())};u.bb=u.Y.extend({i:function(a,c){c.track={J:function(){return c.kind},K:a,label:function(){return c.kind+" off"},ub:s(l),mode:s(l)};u.Y.call(this,a,c);this.selected(f)}});
-u.bb.prototype.p=function(){u.Y.prototype.p.call(this);W(this.b,this.ca.Q,this.ca.J())};u.bb.prototype.update=function(){for(var a=V(this.b),c=0,d=a.length,e,g=f;c<d;c++)e=a[c],e.J()==this.ca.J()&&2==e.mode()&&(g=l);this.selected(g)};u.S=u.R.extend({i:function(a,c){u.R.call(this,a,c);1>=this.I.length&&this.C()}});u.S.prototype.ta=function(){var a=[],c;a.push(new u.bb(this.b,{kind:this.A}));for(var d=0;d<V(this.b).length;d++)c=V(this.b)[d],c.J()===this.A&&a.push(new u.Y(this.b,{track:c}));return a};
-u.Da=u.S.extend({i:function(a,c,d){u.S.call(this,a,c,d);this.a.setAttribute("aria-label","Captions Menu")}});u.Da.prototype.A="captions";u.Da.prototype.qa="Captions";u.Da.prototype.className="vjs-captions-button";u.Ha=u.S.extend({i:function(a,c,d){u.S.call(this,a,c,d);this.a.setAttribute("aria-label","Subtitles Menu")}});u.Ha.prototype.A="subtitles";u.Ha.prototype.qa="Subtitles";u.Ha.prototype.className="vjs-subtitles-button";
-u.Ea=u.S.extend({i:function(a,c,d){u.S.call(this,a,c,d);this.a.setAttribute("aria-label","Chapters Menu")}});t=u.Ea.prototype;t.A="chapters";t.qa="Chapters";t.className="vjs-chapters-button";t.ta=function(){for(var a=[],c,d=0;d<V(this.b).length;d++)c=V(this.b)[d],c.J()===this.A&&a.push(new u.Y(this.b,{track:c}));return a};
-t.Ka=function(){for(var a=V(this.b),c=0,d=a.length,e,g,j=this.I=[];c<d;c++)if(e=a[c],e.J()==this.A&&e.ub()){if(2>e.readyState()){this.Id=e;e.d("loaded",u.bind(this,this.Ka));return}g=e;break}a=this.wa=new u.ma(this.b);a.a.appendChild(u.e("li",{className:"vjs-menu-title",innerHTML:u.$(this.A),zd:-1}));if(g){e=g.fa;for(var k,c=0,d=e.length;c<d;c++)k=e[c],k=new u.Xa(this.b,{track:g,cue:k}),j.push(k),a.Z(k)}0<this.I.length&&this.show();return a};
-u.Xa=u.N.extend({i:function(a,c){var d=this.ca=c.track,e=this.cue=c.cue,g=a.currentTime();c.label=e.text;c.selected=e.startTime<=g&&g<e.va;u.N.call(this,a,c);d.d("cuechange",u.bind(this,this.update))}});u.Xa.prototype.p=function(){u.N.prototype.p.call(this);this.b.currentTime(this.cue.startTime);this.update(this.cue.startTime)};u.Xa.prototype.update=function(){var a=this.cue,c=this.b.currentTime();this.selected(a.startTime<=c&&c<a.va)};
-u.k.B(u.Fa.prototype.g.children,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});
-if("undefined"!==typeof window.JSON&&"function"===window.JSON.parse)u.JSON=window.JSON;else{u.JSON={};var Z=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;u.JSON.parse=function(a,c){function d(a,e){var k,q,n=a[e];if(n&&"object"===typeof n)for(k in n)Object.prototype.hasOwnProperty.call(n,k)&&(q=d(n,k),q!==b?n[k]=q:delete n[k]);return c.call(a,e,n)}var e;a=String(a);Z.lastIndex=0;Z.test(a)&&(a=a.replace(Z,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));
-if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return e=eval("("+a+")"),"function"===typeof c?d({"":e},""):e;throw new SyntaxError("JSON.parse(): invalid or malformed JSON data");}}
-u.fc=function(){var a,c,d=document.getElementsByTagName("video");if(d&&0<d.length)for(var e=0,g=d.length;e<g;e++)if((c=d[e])&&c.getAttribute)c.player===b&&(a=c.getAttribute("data-setup"),a!==h&&(a=u.JSON.parse(a||"{}"),v(c,a)));else{u.kb();break}else u.Ec||u.kb()};u.kb=function(){setTimeout(u.fc,1)};"complete"===document.readyState?u.Ec=f:u.U(window,"load",function(){u.Ec=f});u.kb();u.od=function(a,c){u.s.prototype[a]=c};var ga=this;ga.Ed=f;function $(a,c){var d=a.split("."),e=ga;!(d[0]in e)&&e.execScript&&e.execScript("var "+d[0]);for(var g;d.length&&(g=d.shift());)!d.length&&c!==b?e[g]=c:e=e[g]?e[g]:e[g]={}};$("videojs",u);$("_V_",u);$("videojs.options",u.options);$("videojs.players",u.xa);$("videojs.TOUCH_ENABLED",u.ac);$("videojs.cache",u.ra);$("videojs.Component",u.c);u.c.prototype.player=u.c.prototype.K;u.c.prototype.dispose=u.c.prototype.D;u.c.prototype.createEl=u.c.prototype.e;u.c.prototype.el=u.c.prototype.w;u.c.prototype.addChild=u.c.prototype.Z;u.c.prototype.children=u.c.prototype.children;u.c.prototype.on=u.c.prototype.d;u.c.prototype.off=u.c.prototype.o;u.c.prototype.one=u.c.prototype.U;
-u.c.prototype.trigger=u.c.prototype.j;u.c.prototype.triggerReady=u.c.prototype.Ua;u.c.prototype.show=u.c.prototype.show;u.c.prototype.hide=u.c.prototype.C;u.c.prototype.width=u.c.prototype.width;u.c.prototype.height=u.c.prototype.height;u.c.prototype.dimensions=u.c.prototype.Xc;u.c.prototype.ready=u.c.prototype.L;u.c.prototype.addClass=u.c.prototype.n;u.c.prototype.removeClass=u.c.prototype.u;$("videojs.Player",u.s);u.s.prototype.dispose=u.s.prototype.D;u.s.prototype.requestFullScreen=u.s.prototype.ya;
-u.s.prototype.cancelFullScreen=u.s.prototype.ob;u.s.prototype.bufferedPercent=u.s.prototype.Ja;u.s.prototype.usingNativeControls=u.s.prototype.Rb;u.s.prototype.reportUserActivity=u.s.prototype.Mb;u.s.prototype.userActive=u.s.prototype.ja;$("videojs.MediaLoader",u.Pc);$("videojs.TextTrackDisplay",u.bc);$("videojs.ControlBar",u.Fa);$("videojs.Button",u.q);$("videojs.PlayToggle",u.Yb);$("videojs.FullscreenToggle",u.Ga);$("videojs.BigPlayButton",u.Wa);$("videojs.LoadingSpinner",u.Wb);
-$("videojs.CurrentTimeDisplay",u.Ya);$("videojs.DurationDisplay",u.Za);$("videojs.TimeDivider",u.cc);$("videojs.RemainingTimeDisplay",u.fb);$("videojs.Slider",u.O);$("videojs.ProgressControl",u.eb);$("videojs.SeekBar",u.Zb);$("videojs.LoadProgressBar",u.ab);$("videojs.PlayProgressBar",u.Xb);$("videojs.SeekHandle",u.gb);$("videojs.VolumeControl",u.ib);$("videojs.VolumeBar",u.hb);$("videojs.VolumeLevel",u.dc);$("videojs.VolumeMenuButton",u.oa);$("videojs.VolumeHandle",u.jb);$("videojs.MuteToggle",u.da);
-$("videojs.PosterImage",u.cb);$("videojs.Menu",u.ma);$("videojs.MenuItem",u.N);$("videojs.MenuButton",u.R);u.R.prototype.createItems=u.R.prototype.ta;u.S.prototype.createItems=u.S.prototype.ta;u.Ea.prototype.createItems=u.Ea.prototype.ta;$("videojs.SubtitlesButton",u.Ha);$("videojs.CaptionsButton",u.Da);$("videojs.ChaptersButton",u.Ea);$("videojs.MediaTechController",u.r);u.r.prototype.features=u.r.prototype.m;u.r.prototype.m.volumeControl=u.r.prototype.m.Dc;u.r.prototype.m.fullscreenResize=u.r.prototype.m.Jd;
-u.r.prototype.m.progressEvents=u.r.prototype.m.Nd;u.r.prototype.m.timeupdateEvents=u.r.prototype.m.Sd;$("videojs.Html5",u.l);u.l.Events=u.l.$a;u.l.isSupported=u.l.isSupported;u.l.canPlaySource=u.l.mb;u.l.prototype.setCurrentTime=u.l.prototype.sd;u.l.prototype.setVolume=u.l.prototype.xd;u.l.prototype.setMuted=u.l.prototype.vd;u.l.prototype.setPreload=u.l.prototype.wd;u.l.prototype.setAutoplay=u.l.prototype.rd;u.l.prototype.setLoop=u.l.prototype.ud;$("videojs.Flash",u.f);u.f.isSupported=u.f.isSupported;
-u.f.canPlaySource=u.f.mb;u.f.onReady=u.f.onReady;$("videojs.TextTrack",u.X);u.X.prototype.label=u.X.prototype.label;$("videojs.CaptionsTrack",u.Ub);$("videojs.SubtitlesTrack",u.$b);$("videojs.ChaptersTrack",u.Vb);$("videojs.autoSetup",u.fc);$("videojs.plugin",u.od);$("videojs.createTimeRange",u.tb);})();
diff --git a/server/public/ueditor/third-party/webuploader/Uploader.swf b/server/public/ueditor/third-party/webuploader/Uploader.swf
deleted file mode 100644
index 7c37835..0000000
--- a/server/public/ueditor/third-party/webuploader/Uploader.swf
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.css b/server/public/ueditor/third-party/webuploader/webuploader.css
deleted file mode 100644
index 43d744d..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.css
+++ /dev/null
@@ -1,28 +0,0 @@
-.webuploader-container {
-	position: relative;
-}
-.webuploader-element-invisible {
-	position: absolute !important;
-	clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
-    clip: rect(1px,1px,1px,1px);
-}
-.webuploader-pick {
-	position: relative;
-	display: inline-block;
-	cursor: pointer;
-	background: #00b7ee;
-	padding: 10px 15px;
-	color: #fff;
-	text-align: center;
-	border-radius: 3px;
-	overflow: hidden;
-}
-.webuploader-pick-hover {
-	background: #00a2d4;
-}
-
-.webuploader-pick-disable {
-	opacity: 0.6;
-	pointer-events:none;
-}
-
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.custom.js b/server/public/ueditor/third-party/webuploader/webuploader.custom.js
deleted file mode 100644
index 06f2d52..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.custom.js
+++ /dev/null
@@ -1,5670 +0,0 @@
-/*! WebUploader 0.1.2 */
-
-
-/**
- * @fileOverview 璁╁唴閮ㄥ悇涓儴浠剁殑浠g爜鍙互鐢╗amd](https://github.com/amdjs/amdjs-api/wiki/AMD)妯″潡瀹氫箟鏂瑰紡缁勭粐璧锋潵銆�
- *
- * AMD API 鍐呴儴鐨勭畝鍗曚笉瀹屽叏瀹炵幇锛岃蹇界暐銆傚彧鏈夊綋WebUploader琚悎骞舵垚涓�涓枃浠剁殑鏃跺�欐墠浼氬紩鍏ャ��
- */
-(function( root, factory ) {
-    var modules = {},
-
-        // 鍐呴儴require, 绠�鍗曚笉瀹屽叏瀹炵幇銆�
-        // https://github.com/amdjs/amdjs-api/wiki/require
-        _require = function( deps, callback ) {
-            var args, len, i;
-
-            // 濡傛灉deps涓嶆槸鏁扮粍锛屽垯鐩存帴杩斿洖鎸囧畾module
-            if ( typeof deps === 'string' ) {
-                return getModule( deps );
-            } else {
-                args = [];
-                for( len = deps.length, i = 0; i < len; i++ ) {
-                    args.push( getModule( deps[ i ] ) );
-                }
-
-                return callback.apply( null, args );
-            }
-        },
-
-        // 鍐呴儴define锛屾殏鏃朵笉鏀寔涓嶆寚瀹歩d.
-        _define = function( id, deps, factory ) {
-            if ( arguments.length === 2 ) {
-                factory = deps;
-                deps = null;
-            }
-
-            _require( deps || [], function() {
-                setModule( id, factory, arguments );
-            });
-        },
-
-        // 璁剧疆module, 鍏煎CommonJs鍐欐硶銆�
-        setModule = function( id, factory, args ) {
-            var module = {
-                    exports: factory
-                },
-                returned;
-
-            if ( typeof factory === 'function' ) {
-                args.length || (args = [ _require, module.exports, module ]);
-                returned = factory.apply( null, args );
-                returned !== undefined && (module.exports = returned);
-            }
-
-            modules[ id ] = module.exports;
-        },
-
-        // 鏍规嵁id鑾峰彇module
-        getModule = function( id ) {
-            var module = modules[ id ] || root[ id ];
-
-            if ( !module ) {
-                throw new Error( '`' + id + '` is undefined' );
-            }
-
-            return module;
-        },
-
-        // 灏嗘墍鏈塵odules锛屽皢璺緞ids瑁呮崲鎴愬璞°��
-        exportsTo = function( obj ) {
-            var key, host, parts, part, last, ucFirst;
-
-            // make the first character upper case.
-            ucFirst = function( str ) {
-                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
-            };
-
-            for ( key in modules ) {
-                host = obj;
-
-                if ( !modules.hasOwnProperty( key ) ) {
-                    continue;
-                }
-
-                parts = key.split('/');
-                last = ucFirst( parts.pop() );
-
-                while( (part = ucFirst( parts.shift() )) ) {
-                    host[ part ] = host[ part ] || {};
-                    host = host[ part ];
-                }
-
-                host[ last ] = modules[ key ];
-            }
-        },
-
-        exports = factory( root, _define, _require ),
-        origin;
-
-    // exports every module.
-    exportsTo( exports );
-
-    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
-
-        // For CommonJS and CommonJS-like environments where a proper window is present,
-        module.exports = exports;
-    } else if ( typeof define === 'function' && define.amd ) {
-
-        // Allow using this built library as an AMD module
-        // in another project. That other project will only
-        // see this AMD call, not the internal modules in
-        // the closure below.
-        define([], exports );
-    } else {
-
-        // Browser globals case. Just assign the
-        // result to a property on the global.
-        origin = root.WebUploader;
-        root.WebUploader = exports;
-        root.WebUploader.noConflict = function() {
-            root.WebUploader = origin;
-        };
-    }
-})( this, function( window, define, require ) {
-
-
-    /**
-     * @fileOverview jQuery or Zepto
-     */
-    define('dollar-third',[],function() {
-        return window.jQuery || window.Zepto;
-    });
-    /**
-     * @fileOverview Dom 鎿嶄綔鐩稿叧
-     */
-    define('dollar',[
-        'dollar-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 浣跨敤jQuery鐨凱romise
-     */
-    define('promise-third',[
-        'dollar'
-    ], function( $ ) {
-        return {
-            Deferred: $.Deferred,
-            when: $.when,
-    
-            isPromise: function( anything ) {
-                return anything && typeof anything.then === 'function';
-            }
-        };
-    });
-    /**
-     * @fileOverview Promise/A+
-     */
-    define('promise',[
-        'promise-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 鍩虹绫绘柟娉曘��
-     */
-    
-    /**
-     * Web Uploader鍐呴儴绫荤殑璇︾粏璇存槑锛屼互涓嬫彁鍙婄殑鍔熻兘绫伙紝閮藉彲浠ュ湪`WebUploader`杩欎釜鍙橀噺涓闂埌銆�
-     *
-     * As you know, Web Uploader鐨勬瘡涓枃浠堕兘鏄敤杩嘯AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)瑙勮寖涓殑`define`缁勭粐璧锋潵鐨�, 姣忎釜Module閮戒細鏈変釜module id.
-     * 榛樿module id璇ユ枃浠剁殑璺緞锛岃�屾璺緞灏嗕細杞寲鎴愬悕瀛楃┖闂村瓨鏀惧湪WebUploader涓�傚锛�
-     *
-     * * module `base`锛歐ebUploader.Base
-     * * module `file`: WebUploader.File
-     * * module `lib/dnd`: WebUploader.Lib.Dnd
-     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
-     *
-     *
-     * 浠ヤ笅鏂囨。灏嗗彲鑳界渷鐣WebUploader`鍓嶇紑銆�
-     * @module WebUploader
-     * @title WebUploader API鏂囨。
-     */
-    define('base',[
-        'dollar',
-        'promise'
-    ], function( $, promise ) {
-    
-        var noop = function() {},
-            call = Function.call;
-    
-        // http://jsperf.com/uncurrythis
-        // 鍙嶇閲屽寲
-        function uncurryThis( fn ) {
-            return function() {
-                return call.apply( fn, arguments );
-            };
-        }
-    
-        function bindFn( fn, context ) {
-            return function() {
-                return fn.apply( context, arguments );
-            };
-        }
-    
-        function createObject( proto ) {
-            var f;
-    
-            if ( Object.create ) {
-                return Object.create( proto );
-            } else {
-                f = function() {};
-                f.prototype = proto;
-                return new f();
-            }
-        }
-    
-    
-        /**
-         * 鍩虹绫伙紝鎻愪緵涓�浜涚畝鍗曞父鐢ㄧ殑鏂规硶銆�
-         * @class Base
-         */
-        return {
-    
-            /**
-             * @property {String} version 褰撳墠鐗堟湰鍙枫��
-             */
-            version: '0.1.2',
-    
-            /**
-             * @property {jQuery|Zepto} $ 寮曠敤渚濊禆鐨刯Query鎴栬�匷epto瀵硅薄銆�
-             */
-            $: $,
-    
-            Deferred: promise.Deferred,
-    
-            isPromise: promise.isPromise,
-    
-            when: promise.when,
-    
-            /**
-             * @description  绠�鍗曠殑娴忚鍣ㄦ鏌ョ粨鏋溿��
-             *
-             * * `webkit`  webkit鐗堟湰鍙凤紝濡傛灉娴忚鍣ㄤ负闈瀢ebkit鍐呮牳锛屾灞炴�т负`undefined`銆�
-             * * `chrome`  chrome娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓篶hrome锛屾灞炴�т负`undefined`銆�
-             * * `ie`  ie娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪ie锛屾灞炴�т负`undefined`銆�**鏆備笉鏀寔ie10+**
-             * * `firefox`  firefox娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪firefox锛屾灞炴�т负`undefined`銆�
-             * * `safari`  safari娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪safari锛屾灞炴�т负`undefined`銆�
-             * * `opera`  opera娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪opera锛屾灞炴�т负`undefined`銆�
-             *
-             * @property {Object} [browser]
-             */
-            browser: (function( ua ) {
-                var ret = {},
-                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
-                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
-                        ua.match( /CriOS\/([\d.]+)/ ),
-    
-                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
-                        ua.match(/(?:trident)(?:.*rv:([\w.]+))?/i),
-                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
-                    safari = ua.match( /Safari\/([\d.]+)/ ),
-                    opera = ua.match( /OPR\/([\d.]+)/ );
-    
-                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
-                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
-                ie && (ret.ie = parseFloat( ie[ 1 ] ));
-                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
-                safari && (ret.safari = parseFloat( safari[ 1 ] ));
-                opera && (ret.opera = parseFloat( opera[ 1 ] ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * @description  鎿嶄綔绯荤粺妫�鏌ョ粨鏋溿��
-             *
-             * * `android`  濡傛灉鍦╝ndroid娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刟ndroid鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * * `ios` 濡傛灉鍦╥os娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刬os鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * @property {Object} [os]
-             */
-            os: (function( ua ) {
-                var ret = {},
-    
-                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
-                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
-                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
-    
-                // osx && (ret.osx = true);
-                android && (ret.android = parseFloat( android[ 1 ] ));
-                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * 瀹炵幇绫讳笌绫讳箣闂寸殑缁ф壙銆�
-             * @method inherits
-             * @grammar Base.inherits( super ) => child
-             * @grammar Base.inherits( super, protos ) => child
-             * @grammar Base.inherits( super, protos, statics ) => child
-             * @param  {Class} super 鐖剁被
-             * @param  {Object | Function} [protos] 瀛愮被鎴栬�呭璞°�傚鏋滃璞′腑鍖呭惈constructor锛屽瓙绫诲皢鏄敤姝ゅ睘鎬у�笺��
-             * @param  {Function} [protos.constructor] 瀛愮被鏋勯�犲櫒锛屼笉鎸囧畾鐨勮瘽灏嗗垱寤轰釜涓存椂鐨勭洿鎺ユ墽琛岀埗绫绘瀯閫犲櫒鐨勬柟娉曘��
-             * @param  {Object} [statics] 闈欐�佸睘鎬ф垨鏂规硶銆�
-             * @return {Class} 杩斿洖瀛愮被銆�
-             * @example
-             * function Person() {
-             *     console.log( 'Super' );
-             * }
-             * Person.prototype.hello = function() {
-             *     console.log( 'hello' );
-             * };
-             *
-             * var Manager = Base.inherits( Person, {
-             *     world: function() {
-             *         console.log( 'World' );
-             *     }
-             * });
-             *
-             * // 鍥犱负娌℃湁鎸囧畾鏋勯�犲櫒锛岀埗绫荤殑鏋勯�犲櫒灏嗕細鎵ц銆�
-             * var instance = new Manager();    // => Super
-             *
-             * // 缁ф壙瀛愮埗绫荤殑鏂规硶
-             * instance.hello();    // => hello
-             * instance.world();    // => World
-             *
-             * // 瀛愮被鐨刜_super__灞炴�ф寚鍚戠埗绫�
-             * console.log( Manager.__super__ === Person );    // => true
-             */
-            inherits: function( Super, protos, staticProtos ) {
-                var child;
-    
-                if ( typeof protos === 'function' ) {
-                    child = protos;
-                    protos = null;
-                } else if ( protos && protos.hasOwnProperty('constructor') ) {
-                    child = protos.constructor;
-                } else {
-                    child = function() {
-                        return Super.apply( this, arguments );
-                    };
-                }
-    
-                // 澶嶅埗闈欐�佹柟娉�
-                $.extend( true, child, Super, staticProtos || {} );
-    
-                /* jshint camelcase: false */
-    
-                // 璁╁瓙绫荤殑__super__灞炴�ф寚鍚戠埗绫汇��
-                child.__super__ = Super.prototype;
-    
-                // 鏋勫缓鍘熷瀷锛屾坊鍔犲師鍨嬫柟娉曟垨灞炴�с��
-                // 鏆傛椂鐢∣bject.create瀹炵幇銆�
-                child.prototype = createObject( Super.prototype );
-                protos && $.extend( true, child.prototype, protos );
-    
-                return child;
-            },
-    
-            /**
-             * 涓�涓笉鍋氫换浣曚簨鎯呯殑鏂规硶銆傚彲浠ョ敤鏉ヨ祴鍊肩粰榛樿鐨刢allback.
-             * @method noop
-             */
-            noop: noop,
-    
-            /**
-             * 杩斿洖涓�涓柊鐨勬柟娉曪紝姝ゆ柟娉曞皢宸叉寚瀹氱殑`context`鏉ユ墽琛屻��
-             * @grammar Base.bindFn( fn, context ) => Function
-             * @method bindFn
-             * @example
-             * var doSomething = function() {
-             *         console.log( this.name );
-             *     },
-             *     obj = {
-             *         name: 'Object Name'
-             *     },
-             *     aliasFn = Base.bind( doSomething, obj );
-             *
-             *  aliasFn();    // => Object Name
-             *
-             */
-            bindFn: bindFn,
-    
-            /**
-             * 寮曠敤Console.log濡傛灉瀛樺湪鐨勮瘽锛屽惁鍒欏紩鐢ㄤ竴涓猍绌哄嚱鏁發oop](#WebUploader:Base.log)銆�
-             * @grammar Base.log( args... ) => undefined
-             * @method log
-             */
-            log: (function() {
-                if ( window.console ) {
-                    return bindFn( console.log, console );
-                }
-                return noop;
-            })(),
-    
-            nextTick: (function() {
-    
-                return function( cb ) {
-                    setTimeout( cb, 1 );
-                };
-    
-                // @bug 褰撴祻瑙堝櫒涓嶅湪褰撳墠绐楀彛鏃跺氨鍋滀簡銆�
-                // var next = window.requestAnimationFrame ||
-                //     window.webkitRequestAnimationFrame ||
-                //     window.mozRequestAnimationFrame ||
-                //     function( cb ) {
-                //         window.setTimeout( cb, 1000 / 60 );
-                //     };
-    
-                // // fix: Uncaught TypeError: Illegal invocation
-                // return bindFn( next, window );
-            })(),
-    
-            /**
-             * 琚玔uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)鐨勬暟缁剆lice鏂规硶銆�
-             * 灏嗙敤鏉ュ皢闈炴暟缁勫璞¤浆鍖栨垚鏁扮粍瀵硅薄銆�
-             * @grammar Base.slice( target, start[, end] ) => Array
-             * @method slice
-             * @example
-             * function doSomthing() {
-             *     var args = Base.slice( arguments, 1 );
-             *     console.log( args );
-             * }
-             *
-             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
-             */
-            slice: uncurryThis( [].slice ),
-    
-            /**
-             * 鐢熸垚鍞竴鐨処D
-             * @method guid
-             * @grammar Base.guid() => String
-             * @grammar Base.guid( prefx ) => String
-             */
-            guid: (function() {
-                var counter = 0;
-    
-                return function( prefix ) {
-                    var guid = (+new Date()).toString( 32 ),
-                        i = 0;
-    
-                    for ( ; i < 5; i++ ) {
-                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
-                    }
-    
-                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
-                };
-            })(),
-    
-            /**
-             * 鏍煎紡鍖栨枃浠跺ぇ灏�, 杈撳嚭鎴愬甫鍗曚綅鐨勫瓧绗︿覆
-             * @method formatSize
-             * @grammar Base.formatSize( size ) => String
-             * @grammar Base.formatSize( size, pointLength ) => String
-             * @grammar Base.formatSize( size, pointLength, units ) => String
-             * @param {Number} size 鏂囦欢澶у皬
-             * @param {Number} [pointLength=2] 绮剧‘鍒扮殑灏忔暟鐐规暟銆�
-             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 鍗曚綅鏁扮粍銆備粠瀛楄妭锛屽埌鍗冨瓧鑺傦紝涓�鐩村線涓婃寚瀹氥�傚鏋滃崟浣嶆暟缁勯噷闈㈠彧鎸囧畾浜嗗埌浜咾(鍗冨瓧鑺�)锛屽悓鏃舵枃浠跺ぇ灏忓ぇ浜嶮, 姝ゆ柟娉曠殑杈撳嚭灏嗚繕鏄樉绀烘垚澶氬皯K.
-             * @example
-             * console.log( Base.formatSize( 100 ) );    // => 100B
-             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
-             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
-             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
-             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
-             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
-             */
-            formatSize: function( size, pointLength, units ) {
-                var unit;
-    
-                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
-    
-                while ( (unit = units.shift()) && size > 1024 ) {
-                    size = size / 1024;
-                }
-    
-                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
-                        unit;
-            }
-        };
-    });
-    /**
-     * 浜嬩欢澶勭悊绫伙紝鍙互鐙珛浣跨敤锛屼篃鍙互鎵╁睍缁欏璞′娇鐢ㄣ��
-     * @fileOverview Mediator
-     */
-    define('mediator',[
-        'base'
-    ], function( Base ) {
-        var $ = Base.$,
-            slice = [].slice,
-            separator = /\s+/,
-            protos;
-    
-        // 鏍规嵁鏉′欢杩囨护鍑轰簨浠秇andlers.
-        function findHandlers( arr, name, callback, context ) {
-            return $.grep( arr, function( handler ) {
-                return handler &&
-                        (!name || handler.e === name) &&
-                        (!callback || handler.cb === callback ||
-                        handler.cb._cb === callback) &&
-                        (!context || handler.ctx === context);
-            });
-        }
-    
-        function eachEvent( events, callback, iterator ) {
-            // 涓嶆敮鎸佸璞★紝鍙敮鎸佸涓猠vent鐢ㄧ┖鏍奸殧寮�
-            $.each( (events || '').split( separator ), function( _, key ) {
-                iterator( key, callback );
-            });
-        }
-    
-        function triggerHanders( events, args ) {
-            var stoped = false,
-                i = -1,
-                len = events.length,
-                handler;
-    
-            while ( ++i < len ) {
-                handler = events[ i ];
-    
-                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
-                    stoped = true;
-                    break;
-                }
-            }
-    
-            return !stoped;
-        }
-    
-        protos = {
-    
-            /**
-             * 缁戝畾浜嬩欢銆�
-             *
-             * `callback`鏂规硶鍦ㄦ墽琛屾椂锛宎rguments灏嗕細鏉ユ簮浜巘rigger鐨勬椂鍊欐惡甯︾殑鍙傛暟銆傚
-             * ```javascript
-             * var obj = {};
-             *
-             * // 浣垮緱obj鏈変簨浠惰涓�
-             * Mediator.installTo( obj );
-             *
-             * obj.on( 'testa', function( arg1, arg2 ) {
-             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
-             * });
-             *
-             * obj.trigger( 'testa', 'arg1', 'arg2' );
-             * ```
-             *
-             * 濡傛灉`callback`涓紝鏌愪竴涓柟娉昤return false`浜嗭紝鍒欏悗缁殑鍏朵粬`callback`閮戒笉浼氳鎵ц鍒般��
-             * 鍒囦細褰卞搷鍒癭trigger`鏂规硶鐨勮繑鍥炲�硷紝涓篳false`銆�
-             *
-             * `on`杩樺彲浠ョ敤鏉ユ坊鍔犱竴涓壒娈婁簨浠禶all`, 杩欐牱鎵�鏈夌殑浜嬩欢瑙﹀彂閮戒細鍝嶅簲鍒般�傚悓鏃舵绫籤callback`涓殑arguments鏈変竴涓笉鍚屽锛�
-             * 灏辨槸绗竴涓弬鏁颁负`type`锛岃褰曞綋鍓嶆槸浠�涔堜簨浠跺湪瑙﹀彂銆傛绫籤callback`鐨勪紭鍏堢骇姣旇剼浣庯紝浼氬啀姝e父`callback`鎵ц瀹屽悗瑙﹀彂銆�
-             * ```javascript
-             * obj.on( 'all', function( type, arg1, arg2 ) {
-             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
-             * });
-             * ```
-             *
-             * @method on
-             * @grammar on( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚嶏紝鏀寔澶氫釜浜嬩欢鐢ㄧ┖鏍奸殧寮�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             * @class Mediator
-             */
-            on: function( name, callback, context ) {
-                var me = this,
-                    set;
-    
-                if ( !callback ) {
-                    return this;
-                }
-    
-                set = this._events || (this._events = []);
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var handler = { e: name };
-    
-                    handler.cb = callback;
-                    handler.ctx = context;
-                    handler.ctx2 = context || me;
-                    handler.id = set.length;
-    
-                    set.push( handler );
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 缁戝畾浜嬩欢锛屼笖褰揾andler鎵ц瀹屽悗锛岃嚜鍔ㄨВ闄ょ粦瀹氥��
-             * @method once
-             * @grammar once( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            once: function( name, callback, context ) {
-                var me = this;
-    
-                if ( !callback ) {
-                    return me;
-                }
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var once = function() {
-                            me.off( name, once );
-                            return callback.apply( context || me, arguments );
-                        };
-    
-                    once._cb = callback;
-                    me.on( name, once, context );
-                });
-    
-                return me;
-            },
-    
-            /**
-             * 瑙i櫎浜嬩欢缁戝畾
-             * @method off
-             * @grammar off( [name[, callback[, context] ] ] ) => self
-             * @param  {String}   [name]     浜嬩欢鍚�
-             * @param  {Function} [callback] 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            off: function( name, cb, ctx ) {
-                var events = this._events;
-    
-                if ( !events ) {
-                    return this;
-                }
-    
-                if ( !name && !cb && !ctx ) {
-                    this._events = [];
-                    return this;
-                }
-    
-                eachEvent( name, cb, function( name, cb ) {
-                    $.each( findHandlers( events, name, cb, ctx ), function() {
-                        delete events[ this.id ];
-                    });
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 瑙﹀彂浜嬩欢
-             * @method trigger
-             * @grammar trigger( name[, args...] ) => self
-             * @param  {String}   type     浜嬩欢鍚�
-             * @param  {*} [...] 浠绘剰鍙傛暟
-             * @return {Boolean} 濡傛灉handler涓璻eturn false浜嗭紝鍒欒繑鍥瀎alse, 鍚﹀垯杩斿洖true
-             */
-            trigger: function( type ) {
-                var args, events, allEvents;
-    
-                if ( !this._events || !type ) {
-                    return this;
-                }
-    
-                args = slice.call( arguments, 1 );
-                events = findHandlers( this._events, type );
-                allEvents = findHandlers( this._events, 'all' );
-    
-                return triggerHanders( events, args ) &&
-                        triggerHanders( allEvents, arguments );
-            }
-        };
-    
-        /**
-         * 涓粙鑰咃紝瀹冩湰韬槸涓崟渚嬶紝浣嗗彲浠ラ�氳繃[installTo](#WebUploader:Mediator:installTo)鏂规硶锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢琛屼负銆�
-         * 涓昏鐩殑鏄礋璐fā鍧椾笌妯″潡涔嬮棿鐨勫悎浣滐紝闄嶄綆鑰﹀悎搴︺��
-         *
-         * @class Mediator
-         */
-        return $.extend({
-    
-            /**
-             * 鍙互閫氳繃杩欎釜鎺ュ彛锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢鍔熻兘銆�
-             * @method installTo
-             * @param  {Object} obj 闇�瑕佸叿澶囦簨浠惰涓虹殑瀵硅薄銆�
-             * @return {Object} 杩斿洖obj.
-             */
-            installTo: function( obj ) {
-                return $.extend( obj, protos );
-            }
-    
-        }, protos );
-    });
-    /**
-     * @fileOverview Uploader涓婁紶绫�
-     */
-    define('uploader',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$;
-    
-        /**
-         * 涓婁紶鍏ュ彛绫汇��
-         * @class Uploader
-         * @constructor
-         * @grammar new Uploader( opts ) => Uploader
-         * @example
-         * var uploader = WebUploader.Uploader({
-         *     swf: 'path_of_swf/Uploader.swf',
-         *
-         *     // 寮�璧峰垎鐗囦笂浼犮��
-         *     chunked: true
-         * });
-         */
-        function Uploader( opts ) {
-            this.options = $.extend( true, {}, Uploader.options, opts );
-            this._init( this.options );
-        }
-    
-        // default Options
-        // widgets涓湁鐩稿簲鎵╁睍
-        Uploader.options = {};
-        Mediator.installTo( Uploader.prototype );
-    
-        // 鎵归噺娣诲姞绾懡浠ゅ紡鏂规硶銆�
-        $.each({
-            upload: 'start-upload',
-            stop: 'stop-upload',
-            getFile: 'get-file',
-            getFiles: 'get-files',
-            addFile: 'add-file',
-            addFiles: 'add-file',
-            sort: 'sort-files',
-            removeFile: 'remove-file',
-            skipFile: 'skip-file',
-            retry: 'retry',
-            isInProgress: 'is-in-progress',
-            makeThumb: 'make-thumb',
-            getDimension: 'get-dimension',
-            addButton: 'add-btn',
-            getRuntimeType: 'get-runtime-type',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable',
-            reset: 'reset'
-        }, function( fn, command ) {
-            Uploader.prototype[ fn ] = function() {
-                return this.request( command, arguments );
-            };
-        });
-    
-        $.extend( Uploader.prototype, {
-            state: 'pending',
-    
-            _init: function( opts ) {
-                var me = this;
-    
-                me.request( 'init', opts, function() {
-                    me.state = 'ready';
-                    me.trigger('ready');
-                });
-            },
-    
-            /**
-             * 鑾峰彇鎴栬�呰缃甎ploader閰嶇疆椤广��
-             * @method option
-             * @grammar option( key ) => *
-             * @grammar option( key, val ) => self
-             * @example
-             *
-             * // 鍒濆鐘舵�佸浘鐗囦笂浼犲墠涓嶄細鍘嬬缉
-             * var uploader = new WebUploader.Uploader({
-             *     resize: null;
-             * });
-             *
-             * // 淇敼鍚庡浘鐗囦笂浼犲墠锛屽皾璇曞皢鍥剧墖鍘嬬缉鍒�1600 * 1600
-             * uploader.options( 'resize', {
-             *     width: 1600,
-             *     height: 1600
-             * });
-             */
-            option: function( key, val ) {
-                var opts = this.options;
-    
-                // setter
-                if ( arguments.length > 1 ) {
-    
-                    if ( $.isPlainObject( val ) &&
-                            $.isPlainObject( opts[ key ] ) ) {
-                        $.extend( opts[ key ], val );
-                    } else {
-                        opts[ key ] = val;
-                    }
-    
-                } else {    // getter
-                    return key ? opts[ key ] : opts;
-                }
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢缁熻淇℃伅銆傝繑鍥炰竴涓寘鍚竴涓嬩俊鎭殑瀵硅薄銆�
-             * * `successNum` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `uploadFailNum` 涓婁紶澶辫触鐨勬枃浠舵暟
-             * * `cancelNum` 琚垹闄ょ殑鏂囦欢鏁�
-             * * `invalidNum` 鏃犳晥鐨勬枃浠舵暟
-             * * `queueNum` 杩樺湪闃熷垪涓殑鏂囦欢鏁�
-             * @method getStats
-             * @grammar getStats() => Object
-             */
-            getStats: function() {
-                // return this._mgr.getStats.apply( this._mgr, arguments );
-                var stats = this.request('get-stats');
-    
-                return {
-                    successNum: stats.numOfSuccess,
-    
-                    // who care?
-                    // queueFailNum: 0,
-                    cancelNum: stats.numOfCancel,
-                    invalidNum: stats.numOfInvalid,
-                    uploadFailNum: stats.numOfUploadFailed,
-                    queueNum: stats.numOfQueue
-                };
-            },
-    
-            // 闇�瑕侀噸鍐欐鏂规硶鏉ユ潵鏀寔opts.onEvent鍜宨nstance.onEvent鐨勫鐞嗗櫒
-            trigger: function( type/*, args...*/ ) {
-                var args = [].slice.call( arguments, 1 ),
-                    opts = this.options,
-                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
-                        type.substring( 1 );
-    
-                if (
-                        // 璋冪敤閫氳繃on鏂规硶娉ㄥ唽鐨刪andler.
-                        Mediator.trigger.apply( this, arguments ) === false ||
-    
-                        // 璋冪敤opts.onEvent
-                        $.isFunction( opts[ name ] ) &&
-                        opts[ name ].apply( this, args ) === false ||
-    
-                        // 璋冪敤this.onEvent
-                        $.isFunction( this[ name ] ) &&
-                        this[ name ].apply( this, args ) === false ||
-    
-                        // 骞挎挱鎵�鏈塽ploader鐨勪簨浠躲��
-                        Mediator.trigger.apply( Mediator,
-                        [ this, type ].concat( args ) ) === false ) {
-    
-                    return false;
-                }
-    
-                return true;
-            },
-    
-            // widgets/widget.js灏嗚ˉ鍏呮鏂规硶鐨勮缁嗘枃妗c��
-            request: Base.noop
-        });
-    
-        /**
-         * 鍒涘缓Uploader瀹炰緥锛岀瓑鍚屼簬new Uploader( opts );
-         * @method create
-         * @class Base
-         * @static
-         * @grammar Base.create( opts ) => Uploader
-         */
-        Base.create = Uploader.create = function( opts ) {
-            return new Uploader( opts );
-        };
-    
-        // 鏆撮湶Uploader锛屽彲浠ラ�氳繃瀹冩潵鎵╁睍涓氬姟閫昏緫銆�
-        Base.Uploader = Uploader;
-    
-        return Uploader;
-    });
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/runtime',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            factories = {},
-    
-            // 鑾峰彇瀵硅薄鐨勭涓�涓猭ey
-            getFirstKey = function( obj ) {
-                for ( var key in obj ) {
-                    if ( obj.hasOwnProperty( key ) ) {
-                        return key;
-                    }
-                }
-                return null;
-            };
-    
-        // 鎺ュ彛绫汇��
-        function Runtime( options ) {
-            this.options = $.extend({
-                container: document.body
-            }, options );
-            this.uid = Base.guid('rt_');
-        }
-    
-        $.extend( Runtime.prototype, {
-    
-            getContainer: function() {
-                var opts = this.options,
-                    parent, container;
-    
-                if ( this._container ) {
-                    return this._container;
-                }
-    
-                parent = $( opts.container || document.body );
-                container = $( document.createElement('div') );
-    
-                container.attr( 'id', 'rt_' + this.uid );
-                container.css({
-                    position: 'absolute',
-                    top: '0px',
-                    left: '0px',
-                    width: '1px',
-                    height: '1px',
-                    overflow: 'hidden'
-                });
-    
-                parent.append( container );
-                parent.addClass('webuploader-container');
-                this._container = container;
-                return container;
-            },
-    
-            init: Base.noop,
-            exec: Base.noop,
-    
-            destroy: function() {
-                if ( this._container ) {
-                    this._container.parentNode.removeChild( this.__container );
-                }
-    
-                this.off();
-            }
-        });
-    
-        Runtime.orders = 'html5,flash';
-    
-    
-        /**
-         * 娣诲姞Runtime瀹炵幇銆�
-         * @param {String} type    绫诲瀷
-         * @param {Runtime} factory 鍏蜂綋Runtime瀹炵幇銆�
-         */
-        Runtime.addRuntime = function( type, factory ) {
-            factories[ type ] = factory;
-        };
-    
-        Runtime.hasRuntime = function( type ) {
-            return !!(type ? factories[ type ] : getFirstKey( factories ));
-        };
-    
-        Runtime.create = function( opts, orders ) {
-            var type, runtime;
-    
-            orders = orders || Runtime.orders;
-            $.each( orders.split( /\s*,\s*/g ), function() {
-                if ( factories[ this ] ) {
-                    type = this;
-                    return false;
-                }
-            });
-    
-            type = type || getFirstKey( factories );
-    
-            if ( !type ) {
-                throw new Error('Runtime Error');
-            }
-    
-            runtime = new factories[ type ]( opts );
-            return runtime;
-        };
-    
-        Mediator.installTo( Runtime.prototype );
-        return Runtime;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/client',[
-        'base',
-        'mediator',
-        'runtime/runtime'
-    ], function( Base, Mediator, Runtime ) {
-    
-        var cache;
-    
-        cache = (function() {
-            var obj = {};
-    
-            return {
-                add: function( runtime ) {
-                    obj[ runtime.uid ] = runtime;
-                },
-    
-                get: function( ruid, standalone ) {
-                    var i;
-    
-                    if ( ruid ) {
-                        return obj[ ruid ];
-                    }
-    
-                    for ( i in obj ) {
-                        // 鏈変簺绫诲瀷涓嶈兘閲嶇敤锛屾瘮濡俧ilepicker.
-                        if ( standalone && obj[ i ].__standalone ) {
-                            continue;
-                        }
-    
-                        return obj[ i ];
-                    }
-    
-                    return null;
-                },
-    
-                remove: function( runtime ) {
-                    delete obj[ runtime.uid ];
-                }
-            };
-        })();
-    
-        function RuntimeClient( component, standalone ) {
-            var deferred = Base.Deferred(),
-                runtime;
-    
-            this.uid = Base.guid('client_');
-    
-            // 鍏佽runtime娌℃湁鍒濆鍖栦箣鍓嶏紝娉ㄥ唽涓�浜涙柟娉曞湪鍒濆鍖栧悗鎵ц銆�
-            this.runtimeReady = function( cb ) {
-                return deferred.done( cb );
-            };
-    
-            this.connectRuntime = function( opts, cb ) {
-    
-                // already connected.
-                if ( runtime ) {
-                    throw new Error('already connected!');
-                }
-    
-                deferred.done( cb );
-    
-                if ( typeof opts === 'string' && cache.get( opts ) ) {
-                    runtime = cache.get( opts );
-                }
-    
-                // 鍍廸ilePicker鍙兘鐙珛瀛樺湪锛屼笉鑳藉叕鐢ㄣ��
-                runtime = runtime || cache.get( null, standalone );
-    
-                // 闇�瑕佸垱寤�
-                if ( !runtime ) {
-                    runtime = Runtime.create( opts, opts.runtimeOrder );
-                    runtime.__promise = deferred.promise();
-                    runtime.once( 'ready', deferred.resolve );
-                    runtime.init();
-                    cache.add( runtime );
-                    runtime.__client = 1;
-                } else {
-                    // 鏉ヨ嚜cache
-                    Base.$.extend( runtime.options, opts );
-                    runtime.__promise.then( deferred.resolve );
-                    runtime.__client++;
-                }
-    
-                standalone && (runtime.__standalone = standalone);
-                return runtime;
-            };
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.disconnectRuntime = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                runtime.__client--;
-    
-                if ( runtime.__client <= 0 ) {
-                    cache.remove( runtime );
-                    delete runtime.__promise;
-                    runtime.destroy();
-                }
-    
-                runtime = null;
-            };
-    
-            this.exec = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                var args = Base.slice( arguments );
-                component && args.unshift( component );
-    
-                return runtime.exec.apply( this, args );
-            };
-    
-            this.getRuid = function() {
-                return runtime && runtime.uid;
-            };
-    
-            this.destroy = (function( destroy ) {
-                return function() {
-                    destroy && destroy.apply( this, arguments );
-                    this.trigger('destroy');
-                    this.off();
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                };
-            })( this.destroy );
-        }
-    
-        Mediator.installTo( RuntimeClient.prototype );
-        return RuntimeClient;
-    });
-    /**
-     * @fileOverview Blob
-     */
-    define('lib/blob',[
-        'base',
-        'runtime/client'
-    ], function( Base, RuntimeClient ) {
-    
-        function Blob( ruid, source ) {
-            var me = this;
-    
-            me.source = source;
-            me.ruid = ruid;
-    
-            RuntimeClient.call( me, 'Blob' );
-    
-            this.uid = source.uid || this.uid;
-            this.type = source.type || '';
-            this.size = source.size || 0;
-    
-            if ( ruid ) {
-                me.connectRuntime( ruid );
-            }
-        }
-    
-        Base.inherits( RuntimeClient, {
-            constructor: Blob,
-    
-            slice: function( start, end ) {
-                return this.exec( 'slice', start, end );
-            },
-    
-            getSource: function() {
-                return this.source;
-            }
-        });
-    
-        return Blob;
-    });
-    /**
-     * 涓轰簡缁熶竴鍖朏lash鐨凢ile鍜孒TML5鐨凢ile鑰屽瓨鍦ㄣ��
-     * 浠ヨ嚦浜庤璋冪敤Flash閲岄潰鐨凢ile锛屼篃鍙互鍍忚皟鐢℉TML5鐗堟湰鐨凢ile涓�涓嬨��
-     * @fileOverview File
-     */
-    define('lib/file',[
-        'base',
-        'lib/blob'
-    ], function( Base, Blob ) {
-    
-        var uid = 1,
-            rExt = /\.([^.]+)$/;
-    
-        function File( ruid, file ) {
-            var ext;
-    
-            Blob.apply( this, arguments );
-            this.name = file.name || ('untitled' + uid++);
-            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
-    
-            // todo 鏀寔鍏朵粬绫诲瀷鏂囦欢鐨勮浆鎹€��
-    
-            // 濡傛灉鏈塵imetype, 浣嗘槸鏂囦欢鍚嶉噷闈㈡病鏈夋壘鍑哄悗缂�瑙勫緥
-            if ( !ext && this.type ) {
-                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( this.type ) ?
-                        RegExp.$1.toLowerCase() : '';
-                this.name += '.' + ext;
-            }
-    
-            // 濡傛灉娌℃湁鎸囧畾mimetype, 浣嗘槸鐭ラ亾鏂囦欢鍚庣紑銆�
-            if ( !this.type &&  ~'jpg,jpeg,png,gif,bmp'.indexOf( ext ) ) {
-                this.type = 'image/' + (ext === 'jpg' ? 'jpeg' : ext);
-            }
-    
-            this.ext = ext;
-            this.lastModifiedDate = file.lastModifiedDate ||
-                    (new Date()).toLocaleString();
-        }
-    
-        return Base.inherits( Blob, File );
-    });
-    
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/filepicker',[
-        'base',
-        'runtime/client',
-        'lib/file'
-    ], function( Base, RuntimeClent, File ) {
-    
-        var $ = Base.$;
-    
-        function FilePicker( opts ) {
-            opts = this.options = $.extend({}, FilePicker.options, opts );
-    
-            opts.container = $( opts.id );
-    
-            if ( !opts.container.length ) {
-                throw new Error('鎸夐挳鎸囧畾閿欒');
-            }
-    
-            opts.innerHTML = opts.innerHTML || opts.label ||
-                    opts.container.html() || '';
-    
-            opts.button = $( opts.button || document.createElement('div') );
-            opts.button.html( opts.innerHTML );
-            opts.container.html( opts.button );
-    
-            RuntimeClent.call( this, 'FilePicker', true );
-        }
-    
-        FilePicker.options = {
-            button: null,
-            container: null,
-            label: null,
-            innerHTML: null,
-            multiple: true,
-            accept: null,
-            name: 'file'
-        };
-    
-        Base.inherits( RuntimeClent, {
-            constructor: FilePicker,
-    
-            init: function() {
-                var me = this,
-                    opts = me.options,
-                    button = opts.button;
-    
-                button.addClass('webuploader-pick');
-    
-                me.on( 'all', function( type ) {
-                    var files;
-    
-                    switch ( type ) {
-                        case 'mouseenter':
-                            button.addClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'mouseleave':
-                            button.removeClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'change':
-                            files = me.exec('getFiles');
-                            me.trigger( 'select', $.map( files, function( file ) {
-                                file = new File( me.getRuid(), file );
-    
-                                // 璁板綍鏉ユ簮銆�
-                                file._refer = opts.container;
-                                return file;
-                            }), opts.container );
-                            break;
-                    }
-                });
-    
-                me.connectRuntime( opts, function() {
-                    me.refresh();
-                    me.exec( 'init', opts );
-                    me.trigger('ready');
-                });
-    
-                $( window ).on( 'resize', function() {
-                    me.refresh();
-                });
-            },
-    
-            refresh: function() {
-                var shimContainer = this.getRuntime().getContainer(),
-                    button = this.options.button,
-                    width = button.outerWidth ?
-                            button.outerWidth() : button.width(),
-    
-                    height = button.outerHeight ?
-                            button.outerHeight() : button.height(),
-    
-                    pos = button.offset();
-    
-                width && height && shimContainer.css({
-                    bottom: 'auto',
-                    right: 'auto',
-                    width: width + 'px',
-                    height: height + 'px'
-                }).offset( pos );
-            },
-    
-            enable: function() {
-                var btn = this.options.button;
-    
-                btn.removeClass('webuploader-pick-disable');
-                this.refresh();
-            },
-    
-            disable: function() {
-                var btn = this.options.button;
-    
-                this.getRuntime().getContainer().css({
-                    top: '-99999px'
-                });
-    
-                btn.addClass('webuploader-pick-disable');
-            },
-    
-            destroy: function() {
-                if ( this.runtime ) {
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                }
-            }
-        });
-    
-        return FilePicker;
-    });
-    
-    /**
-     * @fileOverview 缁勪欢鍩虹被銆�
-     */
-    define('widgets/widget',[
-        'base',
-        'uploader'
-    ], function( Base, Uploader ) {
-    
-        var $ = Base.$,
-            _init = Uploader.prototype._init,
-            IGNORE = {},
-            widgetClass = [];
-    
-        function isArrayLike( obj ) {
-            if ( !obj ) {
-                return false;
-            }
-    
-            var length = obj.length,
-                type = $.type( obj );
-    
-            if ( obj.nodeType === 1 && length ) {
-                return true;
-            }
-    
-            return type === 'array' || type !== 'function' && type !== 'string' &&
-                    (length === 0 || typeof length === 'number' && length > 0 &&
-                    (length - 1) in obj);
-        }
-    
-        function Widget( uploader ) {
-            this.owner = uploader;
-            this.options = uploader.options;
-        }
-    
-        $.extend( Widget.prototype, {
-    
-            init: Base.noop,
-    
-            // 绫籅ackbone鐨勪簨浠剁洃鍚0鏄庯紝鐩戝惉uploader瀹炰緥涓婄殑浜嬩欢
-            // widget鐩存帴鏃犳硶鐩戝惉浜嬩欢锛屼簨浠跺彧鑳介�氳繃uploader鏉ヤ紶閫�
-            invoke: function( apiName, args ) {
-    
-                /*
-                    {
-                        'make-thumb': 'makeThumb'
-                    }
-                 */
-                var map = this.responseMap;
-    
-                // 濡傛灉鏃燗PI鍝嶅簲澹版槑鍒欏拷鐣�
-                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
-                        !$.isFunction( this[ map[ apiName ] ] ) ) {
-    
-                    return IGNORE;
-                }
-    
-                return this[ map[ apiName ] ].apply( this, args );
-    
-            },
-    
-            /**
-             * 鍙戦�佸懡浠ゃ�傚綋浼犲叆`callback`鎴栬�卄handler`涓繑鍥瀈promise`鏃躲�傝繑鍥炰竴涓綋鎵�鏈塦handler`涓殑promise閮藉畬鎴愬悗瀹屾垚鐨勬柊`promise`銆�
-             * @method request
-             * @grammar request( command, args ) => * | Promise
-             * @grammar request( command, args, callback ) => Promise
-             * @for  Uploader
-             */
-            request: function() {
-                return this.owner.request.apply( this.owner, arguments );
-            }
-        });
-    
-        // 鎵╁睍Uploader.
-        $.extend( Uploader.prototype, {
-    
-            // 瑕嗗啓_init鐢ㄦ潵鍒濆鍖杦idgets
-            _init: function() {
-                var me = this,
-                    widgets = me._widgets = [];
-    
-                $.each( widgetClass, function( _, klass ) {
-                    widgets.push( new klass( me ) );
-                });
-    
-                return _init.apply( me, arguments );
-            },
-    
-            request: function( apiName, args, callback ) {
-                var i = 0,
-                    widgets = this._widgets,
-                    len = widgets.length,
-                    rlts = [],
-                    dfds = [],
-                    widget, rlt, promise, key;
-    
-                args = isArrayLike( args ) ? args : [ args ];
-    
-                for ( ; i < len; i++ ) {
-                    widget = widgets[ i ];
-                    rlt = widget.invoke( apiName, args );
-    
-                    if ( rlt !== IGNORE ) {
-    
-                        // Deferred瀵硅薄
-                        if ( Base.isPromise( rlt ) ) {
-                            dfds.push( rlt );
-                        } else {
-                            rlts.push( rlt );
-                        }
-                    }
-                }
-    
-                // 濡傛灉鏈塩allback锛屽垯鐢ㄥ紓姝ユ柟寮忋��
-                if ( callback || dfds.length ) {
-                    promise = Base.when.apply( Base, dfds );
-                    key = promise.pipe ? 'pipe' : 'then';
-    
-                    // 寰堥噸瑕佷笉鑳藉垹闄ゃ�傚垹闄や簡浼氭寰幆銆�
-                    // 淇濊瘉鎵ц椤哄簭銆傝callback鎬绘槸鍦ㄤ笅涓�涓猼ick涓墽琛屻��
-                    return promise[ key ](function() {
-                                var deferred = Base.Deferred(),
-                                    args = arguments;
-    
-                                setTimeout(function() {
-                                    deferred.resolve.apply( deferred, args );
-                                }, 1 );
-    
-                                return deferred.promise();
-                            })[ key ]( callback || Base.noop );
-                } else {
-                    return rlts[ 0 ];
-                }
-            }
-        });
-    
-        /**
-         * 娣诲姞缁勪欢
-         * @param  {object} widgetProto 缁勪欢鍘熷瀷锛屾瀯閫犲嚱鏁伴�氳繃constructor灞炴�у畾涔�
-         * @param  {object} responseMap API鍚嶇О涓庡嚱鏁板疄鐜扮殑鏄犲皠
-         * @example
-         *     Uploader.register( {
-         *         init: function( options ) {},
-         *         makeThumb: function() {}
-         *     }, {
-         *         'make-thumb': 'makeThumb'
-         *     } );
-         */
-        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
-            var map = { init: 'init' },
-                klass;
-    
-            if ( arguments.length === 1 ) {
-                widgetProto = responseMap;
-                widgetProto.responseMap = map;
-            } else {
-                widgetProto.responseMap = $.extend( map, responseMap );
-            }
-    
-            klass = Base.inherits( Widget, widgetProto );
-            widgetClass.push( klass );
-    
-            return klass;
-        };
-    
-        return Widget;
-    });
-    /**
-     * @fileOverview 鏂囦欢閫夋嫨鐩稿叧
-     */
-    define('widgets/filepicker',[
-        'base',
-        'uploader',
-        'lib/filepicker',
-        'widgets/widget'
-    ], function( Base, Uploader, FilePicker ) {
-        var $ = Base.$;
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Selector | Object} [pick=undefined]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             *
-             * * `id` {Seletor} 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             * * `label` {String} 璇烽噰鐢� `innerHTML` 浠f浛
-             * * `innerHTML` {String} 鎸囧畾鎸夐挳鏂囧瓧銆備笉鎸囧畾鏃朵紭鍏堜粠鎸囧畾鐨勫鍣ㄤ腑鐪嬫槸鍚﹁嚜甯︽枃瀛椼��
-             * * `multiple` {Boolean} 鏄惁寮�璧峰悓鏃堕�夋嫨澶氫釜鏂囦欢鑳藉姏銆�
-             */
-            pick: null,
-    
-            /**
-             * @property {Arroy} [accept=null]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾鎺ュ彈鍝簺绫诲瀷鐨勬枃浠躲�� 鐢变簬鐩墠杩樻湁ext杞琺imeType琛紝鎵�浠ヨ繖閲岄渶瑕佸垎寮�鎸囧畾銆�
-             *
-             * * `title` {String} 鏂囧瓧鎻忚堪
-             * * `extensions` {String} 鍏佽鐨勬枃浠跺悗缂�锛屼笉甯︾偣锛屽涓敤閫楀彿鍒嗗壊銆�
-             * * `mimeTypes` {String} 澶氫釜鐢ㄩ�楀彿鍒嗗壊銆�
-             *
-             * 濡傦細
-             *
-             * ```
-             * {
-             *     title: 'Images',
-             *     extensions: 'gif,jpg,jpeg,bmp,png',
-             *     mimeTypes: 'image/*'
-             * }
-             * ```
-             */
-            accept: null/*{
-                title: 'Images',
-                extensions: 'gif,jpg,jpeg,bmp,png',
-                mimeTypes: 'image/*'
-            }*/
-        });
-    
-        return Uploader.register({
-            'add-btn': 'addButton',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable'
-        }, {
-    
-            init: function( opts ) {
-                this.pickers = [];
-                return opts.pick && this.addButton( opts.pick );
-            },
-    
-            refresh: function() {
-                $.each( this.pickers, function() {
-                    this.refresh();
-                });
-            },
-    
-            /**
-             * @method addButton
-             * @for Uploader
-             * @grammar addButton( pick ) => Promise
-             * @description
-             * 娣诲姞鏂囦欢閫夋嫨鎸夐挳锛屽鏋滀竴涓寜閽笉澶燂紝闇�瑕佽皟鐢ㄦ鏂规硶鏉ユ坊鍔犮�傚弬鏁拌窡[options.pick](#WebUploader:Uploader:options)涓�鑷淬��
-             * @example
-             * uploader.addButton({
-             *     id: '#btnContainer',
-             *     innerHTML: '閫夋嫨鏂囦欢'
-             * });
-             */
-            addButton: function( pick ) {
-                var me = this,
-                    opts = me.options,
-                    accept = opts.accept,
-                    options, picker, deferred;
-    
-                if ( !pick ) {
-                    return;
-                }
-    
-                deferred = Base.Deferred();
-                $.isPlainObject( pick ) || (pick = {
-                    id: pick
-                });
-    
-                options = $.extend({}, pick, {
-                    accept: $.isPlainObject( accept ) ? [ accept ] : accept,
-                    swf: opts.swf,
-                    runtimeOrder: opts.runtimeOrder
-                });
-    
-                picker = new FilePicker( options );
-    
-                picker.once( 'ready', deferred.resolve );
-                picker.on( 'select', function( files ) {
-                    me.owner.request( 'add-file', [ files ]);
-                });
-                picker.init();
-    
-                this.pickers.push( picker );
-    
-                return deferred.promise();
-            },
-    
-            disable: function() {
-                $.each( this.pickers, function() {
-                    this.disable();
-                });
-            },
-    
-            enable: function() {
-                $.each( this.pickers, function() {
-                    this.enable();
-                });
-            }
-        });
-    });
-    /**
-     * @fileOverview Image
-     */
-    define('lib/image',[
-        'base',
-        'runtime/client',
-        'lib/blob'
-    ], function( Base, RuntimeClient, Blob ) {
-        var $ = Base.$;
-    
-        // 鏋勯�犲櫒銆�
-        function Image( opts ) {
-            this.options = $.extend({}, Image.options, opts );
-            RuntimeClient.call( this, 'Image' );
-    
-            this.on( 'load', function() {
-                this._info = this.exec('info');
-                this._meta = this.exec('meta');
-            });
-        }
-    
-        // 榛樿閫夐」銆�
-        Image.options = {
-    
-            // 榛樿鐨勫浘鐗囧鐞嗚川閲�
-            quality: 90,
-    
-            // 鏄惁瑁佸壀
-            crop: false,
-    
-            // 鏄惁淇濈暀澶撮儴淇℃伅
-            preserveHeaders: true,
-    
-            // 鏄惁鍏佽鏀惧ぇ銆�
-            allowMagnify: true
-        };
-    
-        // 缁ф壙RuntimeClient.
-        Base.inherits( RuntimeClient, {
-            constructor: Image,
-    
-            info: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._info = val;
-                    return this;
-                }
-    
-                // getter
-                return this._info;
-            },
-    
-            meta: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._meta = val;
-                    return this;
-                }
-    
-                // getter
-                return this._meta;
-            },
-    
-            loadFromBlob: function( blob ) {
-                var me = this,
-                    ruid = blob.getRuid();
-    
-                this.connectRuntime( ruid, function() {
-                    me.exec( 'init', me.options );
-                    me.exec( 'loadFromBlob', blob );
-                });
-            },
-    
-            resize: function() {
-                var args = Base.slice( arguments );
-                return this.exec.apply( this, [ 'resize' ].concat( args ) );
-            },
-    
-            getAsDataUrl: function( type ) {
-                return this.exec( 'getAsDataUrl', type );
-            },
-    
-            getAsBlob: function( type ) {
-                var blob = this.exec( 'getAsBlob', type );
-    
-                return new Blob( this.getRuid(), blob );
-            }
-        });
-    
-        return Image;
-    });
-    /**
-     * @fileOverview 鍥剧墖鎿嶄綔, 璐熻矗棰勮鍥剧墖鍜屼笂浼犲墠鍘嬬缉鍥剧墖
-     */
-    define('widgets/image',[
-        'base',
-        'uploader',
-        'lib/image',
-        'widgets/widget'
-    ], function( Base, Uploader, Image ) {
-    
-        var $ = Base.$,
-            throttle;
-    
-        // 鏍规嵁瑕佸鐞嗙殑鏂囦欢澶у皬鏉ヨ妭娴侊紝涓�娆′笉鑳藉鐞嗗お澶氾紝浼氬崱銆�
-        throttle = (function( max ) {
-            var occupied = 0,
-                waiting = [],
-                tick = function() {
-                    var item;
-    
-                    while ( waiting.length && occupied < max ) {
-                        item = waiting.shift();
-                        occupied += item[ 0 ];
-                        item[ 1 ]();
-                    }
-                };
-    
-            return function( emiter, size, cb ) {
-                waiting.push([ size, cb ]);
-                emiter.once( 'destroy', function() {
-                    occupied -= size;
-                    setTimeout( tick, 1 );
-                });
-                setTimeout( tick, 1 );
-            };
-        })( 5 * 1024 * 1024 );
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Object} [thumb]
-             * @namespace options
-             * @for Uploader
-             * @description 閰嶇疆鐢熸垚缂╃暐鍥剧殑閫夐」銆�
-             *
-             * 榛樿涓猴細
-             *
-             * ```javascript
-             * {
-             *     width: 110,
-             *     height: 110,
-             *
-             *     // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-             *     quality: 70,
-             *
-             *     // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-             *     allowMagnify: true,
-             *
-             *     // 鏄惁鍏佽瑁佸壀銆�
-             *     crop: true,
-             *
-             *     // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-             *     preserveHeaders: false,
-             *
-             *     // 涓虹┖鐨勮瘽鍒欎繚鐣欏師鏈夊浘鐗囨牸寮忋��
-             *     // 鍚﹀垯寮哄埗杞崲鎴愭寚瀹氱殑绫诲瀷銆�
-             *     type: 'image/jpeg'
-             * }
-             * ```
-             */
-            thumb: {
-                width: 110,
-                height: 110,
-                quality: 70,
-                allowMagnify: true,
-                crop: true,
-                preserveHeaders: false,
-    
-                // 涓虹┖鐨勮瘽鍒欎繚鐣欏師鏈夊浘鐗囨牸寮忋��
-                // 鍚﹀垯寮哄埗杞崲鎴愭寚瀹氱殑绫诲瀷銆�
-                // IE 8涓嬮潰 base64 澶у皬涓嶈兘瓒呰繃 32K 鍚﹀垯棰勮澶辫触锛岃�岄潪 jpeg 缂栫爜鐨勫浘鐗囧緢鍙�
-                // 鑳戒細瓒呰繃 32k, 鎵�浠ヨ繖閲岃缃垚棰勮鐨勬椂鍊欓兘鏄� image/jpeg
-                type: 'image/jpeg'
-            },
-    
-            /**
-             * @property {Object} [compress]
-             * @namespace options
-             * @for Uploader
-             * @description 閰嶇疆鍘嬬缉鐨勫浘鐗囩殑閫夐」銆傚鏋滄閫夐」涓篳false`, 鍒欏浘鐗囧湪涓婁紶鍓嶄笉杩涜鍘嬬缉銆�
-             *
-             * 榛樿涓猴細
-             *
-             * ```javascript
-             * {
-             *     width: 1600,
-             *     height: 1600,
-             *
-             *     // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-             *     quality: 90,
-             *
-             *     // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-             *     allowMagnify: false,
-             *
-             *     // 鏄惁鍏佽瑁佸壀銆�
-             *     crop: false,
-             *
-             *     // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-             *     preserveHeaders: true
-             * }
-             * ```
-             */
-            compress: {
-                width: 1600,
-                height: 1600,
-                quality: 90,
-                allowMagnify: false,
-                crop: false,
-                preserveHeaders: true
-            }
-        });
-    
-        return Uploader.register({
-            'make-thumb': 'makeThumb',
-            'before-send-file': 'compressImage'
-        }, {
-    
-    
-            /**
-             * 鐢熸垚缂╃暐鍥撅紝姝よ繃绋嬩负寮傛锛屾墍浠ラ渶瑕佷紶鍏callback`銆�
-             * 閫氬父鎯呭喌鍦ㄥ浘鐗囧姞鍏ラ槦閲屽悗璋冪敤姝ゆ柟娉曟潵鐢熸垚棰勮鍥句互澧炲己浜や簰鏁堟灉銆�
-             *
-             * `callback`涓彲浠ユ帴鏀跺埌涓や釜鍙傛暟銆�
-             * * 绗竴涓负error锛屽鏋滅敓鎴愮缉鐣ュ浘鏈夐敊璇紝姝rror灏嗕负鐪熴��
-             * * 绗簩涓负ret, 缂╃暐鍥剧殑Data URL鍊笺��
-             *
-             * **娉ㄦ剰**
-             * Date URL鍦↖E6/7涓笉鏀寔锛屾墍浠ヤ笉鐢ㄨ皟鐢ㄦ鏂规硶浜嗭紝鐩存帴鏄剧ず涓�寮犳殏涓嶆敮鎸侀瑙堝浘鐗囧ソ浜嗐��
-             *
-             *
-             * @method makeThumb
-             * @grammar makeThumb( file, callback ) => undefined
-             * @grammar makeThumb( file, callback, width, height ) => undefined
-             * @for Uploader
-             * @example
-             *
-             * uploader.on( 'fileQueued', function( file ) {
-             *     var $li = ...;
-             *
-             *     uploader.makeThumb( file, function( error, ret ) {
-             *         if ( error ) {
-             *             $li.text('棰勮閿欒');
-             *         } else {
-             *             $li.append('<img alt="" src="' + ret + '" />');
-             *         }
-             *     });
-             *
-             * });
-             */
-            makeThumb: function( file, cb, width, height ) {
-                var opts, image;
-    
-                file = this.request( 'get-file', file );
-    
-                // 鍙瑙堝浘鐗囨牸寮忋��
-                if ( !file.type.match( /^image/ ) ) {
-                    cb( true );
-                    return;
-                }
-    
-                opts = $.extend({}, this.options.thumb );
-    
-                // 濡傛灉浼犲叆鐨勬槸object.
-                if ( $.isPlainObject( width ) ) {
-                    opts = $.extend( opts, width );
-                    width = null;
-                }
-    
-                width = width || opts.width;
-                height = height || opts.height;
-    
-                image = new Image( opts );
-    
-                image.once( 'load', function() {
-                    file._info = file._info || image.info();
-                    file._meta = file._meta || image.meta();
-                    image.resize( width, height );
-                });
-    
-                image.once( 'complete', function() {
-                    cb( false, image.getAsDataUrl( opts.type ) );
-                    image.destroy();
-                });
-    
-                image.once( 'error', function() {
-                    cb( true );
-                    image.destroy();
-                });
-    
-                throttle( image, file.source.size, function() {
-                    file._info && image.info( file._info );
-                    file._meta && image.meta( file._meta );
-                    image.loadFromBlob( file.source );
-                });
-            },
-    
-            compressImage: function( file ) {
-                var opts = this.options.compress || this.options.resize,
-                    compressSize = opts && opts.compressSize || 300 * 1024,
-                    image, deferred;
-    
-                file = this.request( 'get-file', file );
-    
-                // 鍙瑙堝浘鐗囨牸寮忋��
-                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
-                        file.size < compressSize ||
-                        file._compressed ) {
-                    return;
-                }
-    
-                opts = $.extend({}, opts );
-                deferred = Base.Deferred();
-    
-                image = new Image( opts );
-    
-                deferred.always(function() {
-                    image.destroy();
-                    image = null;
-                });
-                image.once( 'error', deferred.reject );
-                image.once( 'load', function() {
-                    file._info = file._info || image.info();
-                    file._meta = file._meta || image.meta();
-                    image.resize( opts.width, opts.height );
-                });
-    
-                image.once( 'complete', function() {
-                    var blob, size;
-    
-                    // 绉诲姩绔� UC / qq 娴忚鍣ㄧ殑鏃犲浘妯″紡涓�
-                    // ctx.getImageData 澶勭悊澶у浘鐨勬椂鍊欎細鎶� Exception
-                    // INDEX_SIZE_ERR: DOM Exception 1
-                    try {
-                        blob = image.getAsBlob( opts.type );
-    
-                        size = file.size;
-    
-                        // 濡傛灉鍘嬬缉鍚庯紝姣斿師鏉ヨ繕澶у垯涓嶇敤鍘嬬缉鍚庣殑銆�
-                        if ( blob.size < size ) {
-                            // file.source.destroy && file.source.destroy();
-                            file.source = blob;
-                            file.size = blob.size;
-    
-                            file.trigger( 'resize', blob.size, size );
-                        }
-    
-                        // 鏍囪锛岄伩鍏嶉噸澶嶅帇缂┿��
-                        file._compressed = true;
-                        deferred.resolve();
-                    } catch ( e ) {
-                        // 鍑洪敊浜嗙洿鎺ョ户缁紝璁╁叾涓婁紶鍘熷鍥剧墖
-                        deferred.resolve();
-                    }
-                });
-    
-                file._info && image.info( file._info );
-                file._meta && image.meta( file._meta );
-    
-                image.loadFromBlob( file.source );
-                return deferred.promise();
-            }
-        });
-    });
-    /**
-     * @fileOverview 鏂囦欢灞炴�у皝瑁�
-     */
-    define('file',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            idPrefix = 'WU_FILE_',
-            idSuffix = 0,
-            rExt = /\.([^.]+)$/,
-            statusMap = {};
-    
-        function gid() {
-            return idPrefix + idSuffix++;
-        }
-    
-        /**
-         * 鏂囦欢绫�
-         * @class File
-         * @constructor 鏋勯�犲嚱鏁�
-         * @grammar new File( source ) => File
-         * @param {Lib.File} source [lib.File](#Lib.File)瀹炰緥, 姝ource瀵硅薄鏄甫鏈塕untime淇℃伅鐨勩��
-         */
-        function WUFile( source ) {
-    
-            /**
-             * 鏂囦欢鍚嶏紝鍖呮嫭鎵╁睍鍚嶏紙鍚庣紑锛�
-             * @property name
-             * @type {string}
-             */
-            this.name = source.name || 'Untitled';
-    
-            /**
-             * 鏂囦欢浣撶Н锛堝瓧鑺傦級
-             * @property size
-             * @type {uint}
-             * @default 0
-             */
-            this.size = source.size || 0;
-    
-            /**
-             * 鏂囦欢MIMETYPE绫诲瀷锛屼笌鏂囦欢绫诲瀷鐨勫搴斿叧绯昏鍙傝�僛http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
-             * @property type
-             * @type {string}
-             * @default 'application'
-             */
-            this.type = source.type || 'application';
-    
-            /**
-             * 鏂囦欢鏈�鍚庝慨鏀规棩鏈�
-             * @property lastModifiedDate
-             * @type {int}
-             * @default 褰撳墠鏃堕棿鎴�
-             */
-            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
-    
-            /**
-             * 鏂囦欢ID锛屾瘡涓璞″叿鏈夊敮涓�ID锛屼笌鏂囦欢鍚嶆棤鍏�
-             * @property id
-             * @type {string}
-             */
-            this.id = gid();
-    
-            /**
-             * 鏂囦欢鎵╁睍鍚嶏紝閫氳繃鏂囦欢鍚嶈幏鍙栵紝渚嬪test.png鐨勬墿灞曞悕涓簆ng
-             * @property ext
-             * @type {string}
-             */
-            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
-    
-    
-            /**
-             * 鐘舵�佹枃瀛楄鏄庛�傚湪涓嶅悓鐨剆tatus璇涓嬫湁涓嶅悓鐨勭敤閫斻��
-             * @property statusText
-             * @type {string}
-             */
-            this.statusText = '';
-    
-            // 瀛樺偍鏂囦欢鐘舵�侊紝闃叉閫氳繃灞炴�х洿鎺ヤ慨鏀�
-            statusMap[ this.id ] = WUFile.Status.INITED;
-    
-            this.source = source;
-            this.loaded = 0;
-    
-            this.on( 'error', function( msg ) {
-                this.setStatus( WUFile.Status.ERROR, msg );
-            });
-        }
-    
-        $.extend( WUFile.prototype, {
-    
-            /**
-             * 璁剧疆鐘舵�侊紝鐘舵�佸彉鍖栨椂浼氳Е鍙慲change`浜嬩欢銆�
-             * @method setStatus
-             * @grammar setStatus( status[, statusText] );
-             * @param {File.Status|String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @param {String} [statusText=''] 鐘舵�佽鏄庯紝甯稿湪error鏃朵娇鐢紝鐢╤ttp, abort,server绛夋潵鏍囪鏄敱浜庝粈涔堝師鍥犲鑷存枃浠堕敊璇��
-             */
-            setStatus: function( status, text ) {
-    
-                var prevStatus = statusMap[ this.id ];
-    
-                typeof text !== 'undefined' && (this.statusText = text);
-    
-                if ( status !== prevStatus ) {
-                    statusMap[ this.id ] = status;
-                    /**
-                     * 鏂囦欢鐘舵�佸彉鍖�
-                     * @event statuschange
-                     */
-                    this.trigger( 'statuschange', status, prevStatus );
-                }
-    
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鐘舵��
-             * @return {File.Status}
-             * @example
-                     鏂囦欢鐘舵�佸叿浣撳寘鎷互涓嬪嚑绉嶇被鍨嬶細
-                     {
-                         // 鍒濆鍖�
-                        INITED:     0,
-                        // 宸插叆闃熷垪
-                        QUEUED:     1,
-                        // 姝e湪涓婁紶
-                        PROGRESS:     2,
-                        // 涓婁紶鍑洪敊
-                        ERROR:         3,
-                        // 涓婁紶鎴愬姛
-                        COMPLETE:     4,
-                        // 涓婁紶鍙栨秷
-                        CANCELLED:     5
-                    }
-             */
-            getStatus: function() {
-                return statusMap[ this.id ];
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鍘熷淇℃伅銆�
-             * @return {*}
-             */
-            getSource: function() {
-                return this.source;
-            },
-    
-            destory: function() {
-                delete statusMap[ this.id ];
-            }
-        });
-    
-        Mediator.installTo( WUFile.prototype );
-    
-        /**
-         * 鏂囦欢鐘舵�佸�硷紝鍏蜂綋鍖呮嫭浠ヤ笅鍑犵绫诲瀷锛�
-         * * `inited` 鍒濆鐘舵��
-         * * `queued` 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-         * * `progress` 涓婁紶涓�
-         * * `complete` 涓婁紶瀹屾垚銆�
-         * * `error` 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-         * * `interrupt` 涓婁紶涓柇锛屽彲缁紶銆�
-         * * `invalid` 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆備細鑷姩浠庨槦鍒椾腑绉婚櫎銆�
-         * * `cancelled` 鏂囦欢琚Щ闄ゃ��
-         * @property {Object} Status
-         * @namespace File
-         * @class File
-         * @static
-         */
-        WUFile.Status = {
-            INITED:     'inited',    // 鍒濆鐘舵��
-            QUEUED:     'queued',    // 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-            PROGRESS:   'progress',    // 涓婁紶涓�
-            ERROR:      'error',    // 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-            COMPLETE:   'complete',    // 涓婁紶瀹屾垚銆�
-            CANCELLED:  'cancelled',    // 涓婁紶鍙栨秷銆�
-            INTERRUPT:  'interrupt',    // 涓婁紶涓柇锛屽彲缁紶銆�
-            INVALID:    'invalid'    // 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆�
-        };
-    
-        return WUFile;
-    });
-    
-    /**
-     * @fileOverview 鏂囦欢闃熷垪
-     */
-    define('queue',[
-        'base',
-        'mediator',
-        'file'
-    ], function( Base, Mediator, WUFile ) {
-    
-        var $ = Base.$,
-            STATUS = WUFile.Status;
-    
-        /**
-         * 鏂囦欢闃熷垪, 鐢ㄦ潵瀛樺偍鍚勪釜鐘舵�佷腑鐨勬枃浠躲��
-         * @class Queue
-         * @extends Mediator
-         */
-        function Queue() {
-    
-            /**
-             * 缁熻鏂囦欢鏁般��
-             * * `numOfQueue` 闃熷垪涓殑鏂囦欢鏁般��
-             * * `numOfSuccess` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `numOfCancel` 琚Щ闄ょ殑鏂囦欢鏁�
-             * * `numOfProgress` 姝e湪涓婁紶涓殑鏂囦欢鏁�
-             * * `numOfUploadFailed` 涓婁紶閿欒鐨勬枃浠舵暟銆�
-             * * `numOfInvalid` 鏃犳晥鐨勬枃浠舵暟銆�
-             * @property {Object} stats
-             */
-            this.stats = {
-                numOfQueue: 0,
-                numOfSuccess: 0,
-                numOfCancel: 0,
-                numOfProgress: 0,
-                numOfUploadFailed: 0,
-                numOfInvalid: 0
-            };
-    
-            // 涓婁紶闃熷垪锛屼粎鍖呮嫭绛夊緟涓婁紶鐨勬枃浠�
-            this._queue = [];
-    
-            // 瀛樺偍鎵�鏈夋枃浠�
-            this._map = {};
-        }
-    
-        $.extend( Queue.prototype, {
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀熬閮�
-             *
-             * @method append
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            append: function( file ) {
-                this._queue.push( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀ご閮�
-             *
-             * @method prepend
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            prepend: function( file ) {
-                this._queue.unshift( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢瀵硅薄
-             *
-             * @method getFile
-             * @param  {String} fileId   鏂囦欢ID
-             * @return {File}
-             */
-            getFile: function( fileId ) {
-                if ( typeof fileId !== 'string' ) {
-                    return fileId;
-                }
-                return this._map[ fileId ];
-            },
-    
-            /**
-             * 浠庨槦鍒椾腑鍙栧嚭涓�涓寚瀹氱姸鎬佺殑鏂囦欢銆�
-             * @grammar fetch( status ) => File
-             * @method fetch
-             * @param {String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @return {File} [File](#WebUploader:File)
-             */
-            fetch: function( status ) {
-                var len = this._queue.length,
-                    i, file;
-    
-                status = status || STATUS.QUEUED;
-    
-                for ( i = 0; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( status === file.getStatus() ) {
-                        return file;
-                    }
-                }
-    
-                return null;
-            },
-    
-            /**
-             * 瀵归槦鍒楄繘琛屾帓搴忥紝鑳藉鎺у埗鏂囦欢涓婁紶椤哄簭銆�
-             * @grammar sort( fn ) => undefined
-             * @method sort
-             * @param {Function} fn 鎺掑簭鏂规硶
-             */
-            sort: function( fn ) {
-                if ( typeof fn === 'function' ) {
-                    this._queue.sort( fn );
-                }
-            },
-    
-            /**
-             * 鑾峰彇鎸囧畾绫诲瀷鐨勬枃浠跺垪琛�, 鍒楄〃涓瘡涓�涓垚鍛樹负[File](#WebUploader:File)瀵硅薄銆�
-             * @grammar getFiles( [status1[, status2 ...]] ) => Array
-             * @method getFiles
-             * @param {String} [status] [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             */
-            getFiles: function() {
-                var sts = [].slice.call( arguments, 0 ),
-                    ret = [],
-                    i = 0,
-                    len = this._queue.length,
-                    file;
-    
-                for ( ; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
-                        continue;
-                    }
-    
-                    ret.push( file );
-                }
-    
-                return ret;
-            },
-    
-            _fileAdded: function( file ) {
-                var me = this,
-                    existing = this._map[ file.id ];
-    
-                if ( !existing ) {
-                    this._map[ file.id ] = file;
-    
-                    file.on( 'statuschange', function( cur, pre ) {
-                        me._onFileStatusChange( cur, pre );
-                    });
-                }
-    
-                file.setStatus( STATUS.QUEUED );
-            },
-    
-            _onFileStatusChange: function( curStatus, preStatus ) {
-                var stats = this.stats;
-    
-                switch ( preStatus ) {
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress--;
-                        break;
-    
-                    case STATUS.QUEUED:
-                        stats.numOfQueue --;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed--;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid--;
-                        break;
-                }
-    
-                switch ( curStatus ) {
-                    case STATUS.QUEUED:
-                        stats.numOfQueue++;
-                        break;
-    
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress++;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed++;
-                        break;
-    
-                    case STATUS.COMPLETE:
-                        stats.numOfSuccess++;
-                        break;
-    
-                    case STATUS.CANCELLED:
-                        stats.numOfCancel++;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid++;
-                        break;
-                }
-            }
-    
-        });
-    
-        Mediator.installTo( Queue.prototype );
-    
-        return Queue;
-    });
-    /**
-     * @fileOverview 闃熷垪
-     */
-    define('widgets/queue',[
-        'base',
-        'uploader',
-        'queue',
-        'file',
-        'lib/file',
-        'runtime/client',
-        'widgets/widget'
-    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
-    
-        var $ = Base.$,
-            rExt = /\.\w+$/,
-            Status = WUFile.Status;
-    
-        return Uploader.register({
-            'sort-files': 'sortFiles',
-            'add-file': 'addFiles',
-            'get-file': 'getFile',
-            'fetch-file': 'fetchFile',
-            'get-stats': 'getStats',
-            'get-files': 'getFiles',
-            'remove-file': 'removeFile',
-            'retry': 'retry',
-            'reset': 'reset',
-            'accept-file': 'acceptFile'
-        }, {
-    
-            init: function( opts ) {
-                var me = this,
-                    deferred, len, i, item, arr, accept, runtime;
-    
-                if ( $.isPlainObject( opts.accept ) ) {
-                    opts.accept = [ opts.accept ];
-                }
-    
-                // accept涓殑涓敓鎴愬尮閰嶆鍒欍��
-                if ( opts.accept ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        item = opts.accept[ i ].extensions;
-                        item && arr.push( item );
-                    }
-    
-                    if ( arr.length ) {
-                        accept = '\\.' + arr.join(',')
-                                .replace( /,/g, '$|\\.' )
-                                .replace( /\*/g, '.*' ) + '$';
-                    }
-    
-                    me.accept = new RegExp( accept, 'i' );
-                }
-    
-                me.queue = new Queue();
-                me.stats = me.queue.stats;
-    
-                // 濡傛灉褰撳墠涓嶆槸html5杩愯鏃讹紝閭e氨绠椾簡銆�
-                // 涓嶆墽琛屽悗缁搷浣�
-                if ( this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                // 鍒涘缓涓�涓� html5 杩愯鏃剁殑 placeholder
-                // 浠ヨ嚦浜庡閮ㄦ坊鍔犲師鐢� File 瀵硅薄鐨勬椂鍊欒兘姝g‘鍖呰9涓�涓嬩緵 webuploader 浣跨敤銆�
-                deferred = Base.Deferred();
-                runtime = new RuntimeClient('Placeholder');
-                runtime.connectRuntime({
-                    runtimeOrder: 'html5'
-                }, function() {
-                    me._ruid = runtime.getRuid();
-                    deferred.resolve();
-                });
-                return deferred.promise();
-            },
-    
-    
-            // 涓轰簡鏀寔澶栭儴鐩存帴娣诲姞涓�涓師鐢烣ile瀵硅薄銆�
-            _wrapFile: function( file ) {
-                if ( !(file instanceof WUFile) ) {
-    
-                    if ( !(file instanceof File) ) {
-                        if ( !this._ruid ) {
-                            throw new Error('Can\'t add external files.');
-                        }
-                        file = new File( this._ruid, file );
-                    }
-    
-                    file = new WUFile( file );
-                }
-    
-                return file;
-            },
-    
-            // 鍒ゆ柇鏂囦欢鏄惁鍙互琚姞鍏ラ槦鍒�
-            acceptFile: function( file ) {
-                var invalid = !file || file.size < 6 || this.accept &&
-    
-                        // 濡傛灉鍚嶅瓧涓湁鍚庣紑锛屾墠鍋氬悗缂�鐧藉悕鍗曞鐞嗐��
-                        rExt.exec( file.name ) && !this.accept.test( file.name );
-    
-                return !invalid;
-            },
-    
-    
-            /**
-             * @event beforeFileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪涔嬪墠瑙﹀彂锛屾浜嬩欢鐨刪andler杩斿洖鍊间负`false`锛屽垯姝ゆ枃浠朵笉浼氳娣诲姞杩涘叆闃熷垪銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event fileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            _addFile: function( file ) {
-                var me = this;
-    
-                file = me._wrapFile( file );
-    
-                // 涓嶈繃绫诲瀷鍒ゆ柇鍏佽涓嶅厑璁革紝鍏堟淳閫� `beforeFileQueued`
-                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
-                    return;
-                }
-    
-                // 绫诲瀷涓嶅尮閰嶏紝鍒欐淳閫侀敊璇簨浠讹紝骞惰繑鍥炪��
-                if ( !me.acceptFile( file ) ) {
-                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
-                    return;
-                }
-    
-                me.queue.append( file );
-                me.owner.trigger( 'fileQueued', file );
-                return file;
-            },
-    
-            getFile: function( fileId ) {
-                return this.queue.getFile( fileId );
-            },
-    
-            /**
-             * @event filesQueued
-             * @param {File} files 鏁扮粍锛屽唴瀹逛负鍘熷File(lib/File锛夊璞°��
-             * @description 褰撲竴鎵规枃浠舵坊鍔犺繘闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @method addFiles
-             * @grammar addFiles( file ) => undefined
-             * @grammar addFiles( [file1, file2 ...] ) => undefined
-             * @param {Array of File or File} [files] Files 瀵硅薄 鏁扮粍
-             * @description 娣诲姞鏂囦欢鍒伴槦鍒�
-             * @for  Uploader
-             */
-            addFiles: function( files ) {
-                var me = this;
-    
-                if ( !files.length ) {
-                    files = [ files ];
-                }
-    
-                files = $.map( files, function( file ) {
-                    return me._addFile( file );
-                });
-    
-                me.owner.trigger( 'filesQueued', files );
-    
-                if ( me.options.auto ) {
-                    me.request('start-upload');
-                }
-            },
-    
-            getStats: function() {
-                return this.stats;
-            },
-    
-            /**
-             * @event fileDequeued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰绉婚櫎闃熷垪鍚庤Е鍙戙��
-             * @for  Uploader
-             */
-    
-            /**
-             * @method removeFile
-             * @grammar removeFile( file ) => undefined
-             * @grammar removeFile( id ) => undefined
-             * @param {File|id} file File瀵硅薄鎴栬繖File瀵硅薄鐨刬d
-             * @description 绉婚櫎鏌愪竴鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             *
-             * $li.on('click', '.remove-this', function() {
-             *     uploader.removeFile( file );
-             * })
-             */
-            removeFile: function( file ) {
-                var me = this;
-    
-                file = file.id ? file : me.queue.getFile( file );
-    
-                file.setStatus( Status.CANCELLED );
-                me.owner.trigger( 'fileDequeued', file );
-            },
-    
-            /**
-             * @method getFiles
-             * @grammar getFiles() => Array
-             * @grammar getFiles( status1, status2, status... ) => Array
-             * @description 杩斿洖鎸囧畾鐘舵�佺殑鏂囦欢闆嗗悎锛屼笉浼犲弬鏁板皢杩斿洖鎵�鏈夌姸鎬佺殑鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             * console.log( uploader.getFiles() );    // => all files
-             * console.log( uploader.getFiles('error') )    // => all error files.
-             */
-            getFiles: function() {
-                return this.queue.getFiles.apply( this.queue, arguments );
-            },
-    
-            fetchFile: function() {
-                return this.queue.fetch.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method retry
-             * @grammar retry() => undefined
-             * @grammar retry( file ) => undefined
-             * @description 閲嶈瘯涓婁紶锛岄噸璇曟寚瀹氭枃浠讹紝鎴栬�呬粠鍑洪敊鐨勬枃浠跺紑濮嬮噸鏂颁笂浼犮��
-             * @for  Uploader
-             * @example
-             * function retry() {
-             *     uploader.retry();
-             * }
-             */
-            retry: function( file, noForceStart ) {
-                var me = this,
-                    files, i, len;
-    
-                if ( file ) {
-                    file = file.id ? file : me.queue.getFile( file );
-                    file.setStatus( Status.QUEUED );
-                    noForceStart || me.request('start-upload');
-                    return;
-                }
-    
-                files = me.queue.getFiles( Status.ERROR );
-                i = 0;
-                len = files.length;
-    
-                for ( ; i < len; i++ ) {
-                    file = files[ i ];
-                    file.setStatus( Status.QUEUED );
-                }
-    
-                me.request('start-upload');
-            },
-    
-            /**
-             * @method sort
-             * @grammar sort( fn ) => undefined
-             * @description 鎺掑簭闃熷垪涓殑鏂囦欢锛屽湪涓婁紶涔嬪墠璋冩暣鍙互鎺у埗涓婁紶椤哄簭銆�
-             * @for  Uploader
-             */
-            sortFiles: function() {
-                return this.queue.sort.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method reset
-             * @grammar reset() => undefined
-             * @description 閲嶇疆uploader銆傜洰鍓嶅彧閲嶇疆浜嗛槦鍒椼��
-             * @for  Uploader
-             * @example
-             * uploader.reset();
-             */
-            reset: function() {
-                this.queue = new Queue();
-                this.stats = this.queue.stats;
-            }
-        });
-    
-    });
-    /**
-     * @fileOverview 娣诲姞鑾峰彇Runtime鐩稿叧淇℃伅鐨勬柟娉曘��
-     */
-    define('widgets/runtime',[
-        'uploader',
-        'runtime/runtime',
-        'widgets/widget'
-    ], function( Uploader, Runtime ) {
-    
-        Uploader.support = function() {
-            return Runtime.hasRuntime.apply( Runtime, arguments );
-        };
-    
-        return Uploader.register({
-            'predict-runtime-type': 'predictRuntmeType'
-        }, {
-    
-            init: function() {
-                if ( !this.predictRuntmeType() ) {
-                    throw Error('Runtime Error');
-                }
-            },
-    
-            /**
-             * 棰勬祴Uploader灏嗛噰鐢ㄥ摢涓猔Runtime`
-             * @grammar predictRuntmeType() => String
-             * @method predictRuntmeType
-             * @for  Uploader
-             */
-            predictRuntmeType: function() {
-                var orders = this.options.runtimeOrder || Runtime.orders,
-                    type = this.type,
-                    i, len;
-    
-                if ( !type ) {
-                    orders = orders.split( /\s*,\s*/g );
-    
-                    for ( i = 0, len = orders.length; i < len; i++ ) {
-                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
-                            this.type = type = orders[ i ];
-                            break;
-                        }
-                    }
-                }
-    
-                return type;
-            }
-        });
-    });
-    /**
-     * @fileOverview Transport
-     */
-    define('lib/transport',[
-        'base',
-        'runtime/client',
-        'mediator'
-    ], function( Base, RuntimeClient, Mediator ) {
-    
-        var $ = Base.$;
-    
-        function Transport( opts ) {
-            var me = this;
-    
-            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
-            RuntimeClient.call( this, 'Transport' );
-    
-            this._blob = null;
-            this._formData = opts.formData || {};
-            this._headers = opts.headers || {};
-    
-            this.on( 'progress', this._timeout );
-            this.on( 'load error', function() {
-                me.trigger( 'progress', 1 );
-                clearTimeout( me._timer );
-            });
-        }
-    
-        Transport.options = {
-            server: '',
-            method: 'POST',
-    
-            // 璺ㄥ煙鏃讹紝鏄惁鍏佽鎼哄甫cookie, 鍙湁html5 runtime鎵嶆湁鏁�
-            withCredentials: false,
-            fileVal: 'file',
-            timeout: 2 * 60 * 1000,    // 2鍒嗛挓
-            formData: {},
-            headers: {},
-            sendAsBinary: false
-        };
-    
-        $.extend( Transport.prototype, {
-    
-            // 娣诲姞Blob, 鍙兘娣诲姞涓�娆★紝鏈�鍚庝竴娆℃湁鏁堛��
-            appendBlob: function( key, blob, filename ) {
-                var me = this,
-                    opts = me.options;
-    
-                if ( me.getRuid() ) {
-                    me.disconnectRuntime();
-                }
-    
-                // 杩炴帴鍒癰lob褰掑睘鐨勫悓涓�涓猺untime.
-                me.connectRuntime( blob.ruid, function() {
-                    me.exec('init');
-                });
-    
-                me._blob = blob;
-                opts.fileVal = key || opts.fileVal;
-                opts.filename = filename || opts.filename;
-            },
-    
-            // 娣诲姞鍏朵粬瀛楁
-            append: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._formData, key );
-                } else {
-                    this._formData[ key ] = value;
-                }
-            },
-    
-            setRequestHeader: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._headers, key );
-                } else {
-                    this._headers[ key ] = value;
-                }
-            },
-    
-            send: function( method ) {
-                this.exec( 'send', method );
-                this._timeout();
-            },
-    
-            abort: function() {
-                clearTimeout( this._timer );
-                return this.exec('abort');
-            },
-    
-            destroy: function() {
-                this.trigger('destroy');
-                this.off();
-                this.exec('destroy');
-                this.disconnectRuntime();
-            },
-    
-            getResponse: function() {
-                return this.exec('getResponse');
-            },
-    
-            getResponseAsJson: function() {
-                return this.exec('getResponseAsJson');
-            },
-    
-            getStatus: function() {
-                return this.exec('getStatus');
-            },
-    
-            _timeout: function() {
-                var me = this,
-                    duration = me.options.timeout;
-    
-                if ( !duration ) {
-                    return;
-                }
-    
-                clearTimeout( me._timer );
-                me._timer = setTimeout(function() {
-                    me.abort();
-                    me.trigger( 'error', 'timeout' );
-                }, duration );
-            }
-    
-        });
-    
-        // 璁㏕ransport鍏峰浜嬩欢鍔熻兘銆�
-        Mediator.installTo( Transport.prototype );
-    
-        return Transport;
-    });
-    /**
-     * @fileOverview 璐熻矗鏂囦欢涓婁紶鐩稿叧銆�
-     */
-    define('widgets/upload',[
-        'base',
-        'uploader',
-        'file',
-        'lib/transport',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile, Transport ) {
-    
-        var $ = Base.$,
-            isPromise = Base.isPromise,
-            Status = WUFile.Status;
-    
-        // 娣诲姞榛樿閰嶇疆椤�
-        $.extend( Uploader.options, {
-    
-    
-            /**
-             * @property {Boolean} [prepareNextFile=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁鍏佽鍦ㄦ枃浠朵紶杈撴椂鎻愬墠鎶婁笅涓�涓枃浠跺噯澶囧ソ銆�
-             * 瀵逛簬涓�涓枃浠剁殑鍑嗗宸ヤ綔姣旇緝鑰楁椂锛屾瘮濡傚浘鐗囧帇缂╋紝md5搴忓垪鍖栥��
-             * 濡傛灉鑳芥彁鍓嶅湪褰撳墠鏂囦欢浼犺緭鏈熷鐞嗭紝鍙互鑺傜渷鎬讳綋鑰楁椂銆�
-             */
-            prepareNextFile: false,
-    
-            /**
-             * @property {Boolean} [chunked=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁瑕佸垎鐗囧鐞嗗ぇ鏂囦欢涓婁紶銆�
-             */
-            chunked: false,
-    
-            /**
-             * @property {Boolean} [chunkSize=5242880]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉瑕佸垎鐗囷紝鍒嗗澶т竴鐗囷紵 榛樿澶у皬涓�5M.
-             */
-            chunkSize: 5 * 1024 * 1024,
-    
-            /**
-             * @property {Boolean} [chunkRetry=2]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉鏌愪釜鍒嗙墖鐢变簬缃戠粶闂鍑洪敊锛屽厑璁歌嚜鍔ㄩ噸浼犲灏戞锛�
-             */
-            chunkRetry: 2,
-    
-            /**
-             * @property {Boolean} [threads=3]
-             * @namespace options
-             * @for Uploader
-             * @description 涓婁紶骞跺彂鏁般�傚厑璁稿悓鏃舵渶澶т笂浼犺繘绋嬫暟銆�
-             */
-            threads: 3,
-    
-    
-            /**
-             * @property {Object} [formData]
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶璇锋眰鐨勫弬鏁拌〃锛屾瘡娆″彂閫侀兘浼氬彂閫佹瀵硅薄涓殑鍙傛暟銆�
-             */
-            formData: null
-    
-            /**
-             * @property {Object} [fileVal='file']
-             * @namespace options
-             * @for Uploader
-             * @description 璁剧疆鏂囦欢涓婁紶鍩熺殑name銆�
-             */
-    
-            /**
-             * @property {Object} [method='POST']
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶鏂瑰紡锛宍POST`鎴栬�卄GET`銆�
-             */
-    
-            /**
-             * @property {Object} [sendAsBinary=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁宸蹭簩杩涘埗鐨勬祦鐨勬柟寮忓彂閫佹枃浠讹紝杩欐牱鏁翠釜涓婁紶鍐呭`php://input`閮戒负鏂囦欢鍐呭锛�
-             * 鍏朵粬鍙傛暟鍦�$_GET鏁扮粍涓��
-             */
-        });
-    
-        // 璐熻矗灏嗘枃浠跺垏鐗囥��
-        function CuteFile( file, chunkSize ) {
-            var pending = [],
-                blob = file.source,
-                total = blob.size,
-                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
-                start = 0,
-                index = 0,
-                len;
-    
-            while ( index < chunks ) {
-                len = Math.min( chunkSize, total - start );
-    
-                pending.push({
-                    file: file,
-                    start: start,
-                    end: chunkSize ? (start + len) : total,
-                    total: total,
-                    chunks: chunks,
-                    chunk: index++
-                });
-                start += len;
-            }
-    
-            file.blocks = pending.concat();
-            file.remaning = pending.length;
-    
-            return {
-                file: file,
-    
-                has: function() {
-                    return !!pending.length;
-                },
-    
-                fetch: function() {
-                    return pending.shift();
-                }
-            };
-        }
-    
-        Uploader.register({
-            'start-upload': 'start',
-            'stop-upload': 'stop',
-            'skip-file': 'skipFile',
-            'is-in-progress': 'isInProgress'
-        }, {
-    
-            init: function() {
-                var owner = this.owner;
-    
-                this.runing = false;
-    
-                // 璁板綍褰撳墠姝e湪浼犵殑鏁版嵁锛岃窡threads鐩稿叧
-                this.pool = [];
-    
-                // 缂撳瓨鍗冲皢涓婁紶鐨勬枃浠躲��
-                this.pending = [];
-    
-                // 璺熻釜杩樻湁澶氬皯鍒嗙墖娌℃湁瀹屾垚涓婁紶銆�
-                this.remaning = 0;
-                this.__tick = Base.bindFn( this._tick, this );
-    
-                owner.on( 'uploadComplete', function( file ) {
-                    // 鎶婂叾浠栧潡鍙栨秷浜嗐��
-                    file.blocks && $.each( file.blocks, function( _, v ) {
-                        v.transport && (v.transport.abort(), v.transport.destroy());
-                        delete v.transport;
-                    });
-    
-                    delete file.blocks;
-                    delete file.remaning;
-                });
-            },
-    
-            /**
-             * @event startUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 寮�濮嬩笂浼犮�傛鏂规硶鍙互浠庡垵濮嬬姸鎬佽皟鐢ㄥ紑濮嬩笂浼犳祦绋嬶紝涔熷彲浠ヤ粠鏆傚仠鐘舵�佽皟鐢紝缁х画涓婁紶娴佺▼銆�
-             * @grammar upload() => undefined
-             * @method upload
-             * @for  Uploader
-             */
-            start: function() {
-                var me = this;
-    
-                // 绉诲嚭invalid鐨勬枃浠�
-                $.each( me.request( 'get-files', Status.INVALID ), function() {
-                    me.request( 'remove-file', this );
-                });
-    
-                if ( me.runing ) {
-                    return;
-                }
-    
-                me.runing = true;
-    
-                // 濡傛灉鏈夋殏鍋滅殑锛屽垯缁紶
-                $.each( me.pool, function( _, v ) {
-                    var file = v.file;
-    
-                    if ( file.getStatus() === Status.INTERRUPT ) {
-                        file.setStatus( Status.PROGRESS );
-                        me._trigged = false;
-                        v.transport && v.transport.send();
-                    }
-                });
-    
-                me._trigged = false;
-                me.owner.trigger('startUpload');
-                Base.nextTick( me.__tick );
-            },
-    
-            /**
-             * @event stopUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫殏鍋滄椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 鏆傚仠涓婁紶銆傜涓�涓弬鏁颁负鏄惁涓柇涓婁紶褰撳墠姝e湪涓婁紶鐨勬枃浠躲��
-             * @grammar stop() => undefined
-             * @grammar stop( true ) => undefined
-             * @method stop
-             * @for  Uploader
-             */
-            stop: function( interrupt ) {
-                var me = this;
-    
-                if ( me.runing === false ) {
-                    return;
-                }
-    
-                me.runing = false;
-    
-                interrupt && $.each( me.pool, function( _, v ) {
-                    v.transport && v.transport.abort();
-                    v.file.setStatus( Status.INTERRUPT );
-                });
-    
-                me.owner.trigger('stopUpload');
-            },
-    
-            /**
-             * 鍒ゆ柇`Uplaode`r鏄惁姝e湪涓婁紶涓��
-             * @grammar isInProgress() => Boolean
-             * @method isInProgress
-             * @for  Uploader
-             */
-            isInProgress: function() {
-                return !!this.runing;
-            },
-    
-            getStats: function() {
-                return this.request('get-stats');
-            },
-    
-            /**
-             * 鎺夎繃涓�涓枃浠朵笂浼狅紝鐩存帴鏍囪鎸囧畾鏂囦欢涓哄凡涓婁紶鐘舵�併��
-             * @grammar skipFile( file ) => undefined
-             * @method skipFile
-             * @for  Uploader
-             */
-            skipFile: function( file, status ) {
-                file = this.request( 'get-file', file );
-    
-                file.setStatus( status || Status.COMPLETE );
-                file.skipped = true;
-    
-                // 濡傛灉姝e湪涓婁紶銆�
-                file.blocks && $.each( file.blocks, function( _, v ) {
-                    var _tr = v.transport;
-    
-                    if ( _tr ) {
-                        _tr.abort();
-                        _tr.destroy();
-                        delete v.transport;
-                    }
-                });
-    
-                this.owner.trigger( 'uploadSkip', file );
-            },
-    
-            /**
-             * @event uploadFinished
-             * @description 褰撴墍鏈夋枃浠朵笂浼犵粨鏉熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-            _tick: function() {
-                var me = this,
-                    opts = me.options,
-                    fn, val;
-    
-                // 涓婁竴涓猵romise杩樻病鏈夌粨鏉燂紝鍒欑瓑寰呭畬鎴愬悗鍐嶆墽琛屻��
-                if ( me._promise ) {
-                    return me._promise.always( me.__tick );
-                }
-    
-                // 杩樻湁浣嶇疆锛屼笖杩樻湁鏂囦欢瑕佸鐞嗙殑璇濄��
-                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
-                    me._trigged = false;
-    
-                    fn = function( val ) {
-                        me._promise = null;
-    
-                        // 鏈夊彲鑳芥槸reject杩囨潵鐨勶紝鎵�浠ヨ妫�娴媣al鐨勭被鍨嬨��
-                        val && val.file && me._startSend( val );
-                        Base.nextTick( me.__tick );
-                    };
-    
-                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
-    
-                // 娌℃湁瑕佷笂浼犵殑浜嗭紝涓旀病鏈夋鍦ㄤ紶杈撶殑浜嗐��
-                } else if ( !me.remaning && !me.getStats().numOfQueue ) {
-                    me.runing = false;
-    
-                    me._trigged || Base.nextTick(function() {
-                        me.owner.trigger('uploadFinished');
-                    });
-                    me._trigged = true;
-                }
-            },
-    
-            _nextBlock: function() {
-                var me = this,
-                    act = me._act,
-                    opts = me.options,
-                    next, done;
-    
-                // 濡傛灉褰撳墠鏂囦欢杩樻湁娌℃湁闇�瑕佷紶杈撶殑锛屽垯鐩存帴杩斿洖鍓╀笅鐨勩��
-                if ( act && act.has() &&
-                        act.file.getStatus() === Status.PROGRESS ) {
-    
-                    // 鏄惁鎻愬墠鍑嗗涓嬩竴涓枃浠�
-                    if ( opts.prepareNextFile && !me.pending.length ) {
-                        me._prepareNextFile();
-                    }
-    
-                    return act.fetch();
-    
-                // 鍚﹀垯锛屽鏋滄鍦ㄨ繍琛岋紝鍒欏噯澶囦笅涓�涓枃浠讹紝骞剁瓑寰呭畬鎴愬悗杩斿洖涓嬩釜鍒嗙墖銆�
-                } else if ( me.runing ) {
-    
-                    // 濡傛灉缂撳瓨涓湁锛屽垯鐩存帴鍦ㄧ紦瀛樹腑鍙栵紝娌℃湁鍒欏幓queue涓彇銆�
-                    if ( !me.pending.length && me.getStats().numOfQueue ) {
-                        me._prepareNextFile();
-                    }
-    
-                    next = me.pending.shift();
-                    done = function( file ) {
-                        if ( !file ) {
-                            return null;
-                        }
-    
-                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
-                        me._act = act;
-                        return act.fetch();
-                    };
-    
-                    // 鏂囦欢鍙兘杩樺湪prepare涓紝涔熸湁鍙兘宸茬粡瀹屽叏鍑嗗濂戒簡銆�
-                    return isPromise( next ) ?
-                            next[ next.pipe ? 'pipe' : 'then']( done ) :
-                            done( next );
-                }
-            },
-    
-    
-            /**
-             * @event uploadStart
-             * @param {File} file File瀵硅薄
-             * @description 鏌愪釜鏂囦欢寮�濮嬩笂浼犲墠瑙﹀彂锛屼竴涓枃浠跺彧浼氳Е鍙戜竴娆°��
-             * @for  Uploader
-             */
-            _prepareNextFile: function() {
-                var me = this,
-                    file = me.request('fetch-file'),
-                    pending = me.pending,
-                    promise;
-    
-                if ( file ) {
-                    promise = me.request( 'before-send-file', file, function() {
-    
-                        // 鏈夊彲鑳芥枃浠惰skip鎺変簡銆傛枃浠惰skip鎺夊悗锛岀姸鎬佸潙瀹氫笉鏄疩ueued.
-                        if ( file.getStatus() === Status.QUEUED ) {
-                            me.owner.trigger( 'uploadStart', file );
-                            file.setStatus( Status.PROGRESS );
-                            return file;
-                        }
-    
-                        return me._finishFile( file );
-                    });
-    
-                    // 濡傛灉杩樺湪pending涓紝鍒欐浛鎹㈡垚鏂囦欢鏈韩銆�
-                    promise.done(function() {
-                        var idx = $.inArray( promise, pending );
-    
-                        ~idx && pending.splice( idx, 1, file );
-                    });
-    
-                    // befeore-send-file鐨勯挬瀛愬氨鏈夐敊璇彂鐢熴��
-                    promise.fail(function( reason ) {
-                        file.setStatus( Status.ERROR, reason );
-                        me.owner.trigger( 'uploadError', file, reason );
-                        me.owner.trigger( 'uploadComplete', file );
-                    });
-    
-                    pending.push( promise );
-                }
-            },
-    
-            // 璁╁嚭浣嶇疆浜嗭紝鍙互璁╁叾浠栧垎鐗囧紑濮嬩笂浼�
-            _popBlock: function( block ) {
-                var idx = $.inArray( block, this.pool );
-    
-                this.pool.splice( idx, 1 );
-                block.file.remaning--;
-                this.remaning--;
-            },
-    
-            // 寮�濮嬩笂浼狅紝鍙互琚帀杩囥�傚鏋減romise琚玶eject浜嗭紝鍒欒〃绀鸿烦杩囨鍒嗙墖銆�
-            _startSend: function( block ) {
-                var me = this,
-                    file = block.file,
-                    promise;
-    
-                me.pool.push( block );
-                me.remaning++;
-    
-                // 濡傛灉娌℃湁鍒嗙墖锛屽垯鐩存帴浣跨敤鍘熷鐨勩��
-                // 涓嶄細涓㈠けcontent-type淇℃伅銆�
-                block.blob = block.chunks === 1 ? file.source :
-                        file.source.slice( block.start, block.end );
-    
-                // hook, 姣忎釜鍒嗙墖鍙戦�佷箣鍓嶅彲鑳借鍋氫簺寮傛鐨勪簨鎯呫��
-                promise = me.request( 'before-send', block, function() {
-    
-                    // 鏈夊彲鑳芥枃浠跺凡缁忎笂浼犲嚭閿欎簡锛屾墍浠ヤ笉闇�瑕佸啀浼犺緭浜嗐��
-                    if ( file.getStatus() === Status.PROGRESS ) {
-                        me._doSend( block );
-                    } else {
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-    
-                // 濡傛灉涓篺ail浜嗭紝鍒欒烦杩囨鍒嗙墖銆�
-                promise.fail(function() {
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file ).always(function() {
-                            block.percentage = 1;
-                            me._popBlock( block );
-                            me.owner.trigger( 'uploadComplete', file );
-                            Base.nextTick( me.__tick );
-                        });
-                    } else {
-                        block.percentage = 1;
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-            },
-    
-    
-            /**
-             * @event uploadBeforeSend
-             * @param {Object} object
-             * @param {Object} data 榛樿鐨勪笂浼犲弬鏁帮紝鍙互鎵╁睍姝ゅ璞℃潵鎺у埗涓婁紶鍙傛暟銆�
-             * @description 褰撴煇涓枃浠剁殑鍒嗗潡鍦ㄥ彂閫佸墠瑙﹀彂锛屼富瑕佺敤鏉ヨ闂槸鍚﹁娣诲姞闄勫甫鍙傛暟锛屽ぇ鏂囦欢鍦ㄥ紑璧峰垎鐗囦笂浼犵殑鍓嶆彁涓嬫浜嬩欢鍙兘浼氳Е鍙戝娆°��
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadAccept
-             * @param {Object} object
-             * @param {Object} ret 鏈嶅姟绔殑杩斿洖鏁版嵁锛宩son鏍煎紡锛屽鏋滄湇鍔$涓嶆槸json鏍煎紡锛屼粠ret._raw涓彇鏁版嵁锛岃嚜琛岃В鏋愩��
-             * @description 褰撴煇涓枃浠朵笂浼犲埌鏈嶅姟绔搷搴斿悗锛屼細娲鹃�佹浜嬩欢鏉ヨ闂湇鍔$鍝嶅簲鏄惁鏈夋晥銆傚鏋滄浜嬩欢handler杩斿洖鍊间负`false`, 鍒欐鏂囦欢灏嗘淳閫乣server`绫诲瀷鐨刞uploadError`浜嬩欢銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadProgress
-             * @param {File} file File瀵硅薄
-             * @param {Number} percentage 涓婁紶杩涘害
-             * @description 涓婁紶杩囩▼涓Е鍙戯紝鎼哄甫涓婁紶杩涘害銆�
-             * @for  Uploader
-             */
-    
-    
-            /**
-             * @event uploadError
-             * @param {File} file File瀵硅薄
-             * @param {String} reason 鍑洪敊鐨刢ode
-             * @description 褰撴枃浠朵笂浼犲嚭閿欐椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadSuccess
-             * @param {File} file File瀵硅薄
-             * @param {Object} response 鏈嶅姟绔繑鍥炵殑鏁版嵁
-             * @description 褰撴枃浠朵笂浼犳垚鍔熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadComplete
-             * @param {File} [file] File瀵硅薄
-             * @description 涓嶇鎴愬姛鎴栬�呭け璐ワ紝鏂囦欢涓婁紶瀹屾垚鏃惰Е鍙戙��
-             * @for  Uploader
-             */
-    
-            // 鍋氫笂浼犳搷浣溿��
-            _doSend: function( block ) {
-                var me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    file = block.file,
-                    tr = new Transport( opts ),
-                    data = $.extend({}, opts.formData ),
-                    headers = $.extend({}, opts.headers ),
-                    requestAccept, ret;
-    
-                block.transport = tr;
-    
-                tr.on( 'destroy', function() {
-                    delete block.transport;
-                    me._popBlock( block );
-                    Base.nextTick( me.__tick );
-                });
-    
-                // 骞挎挱涓婁紶杩涘害銆備互鏂囦欢涓哄崟浣嶃��
-                tr.on( 'progress', function( percentage ) {
-                    var totalPercent = 0,
-                        uploaded = 0;
-    
-                    // 鍙兘娌℃湁abort鎺夛紝progress杩樻槸鎵ц杩涙潵浜嗐��
-                    // if ( !file.blocks ) {
-                    //     return;
-                    // }
-    
-                    totalPercent = block.percentage = percentage;
-    
-                    if ( block.chunks > 1 ) {    // 璁$畻鏂囦欢鐨勬暣浣撻�熷害銆�
-                        $.each( file.blocks, function( _, v ) {
-                            uploaded += (v.percentage || 0) * (v.end - v.start);
-                        });
-    
-                        totalPercent = uploaded / file.size;
-                    }
-    
-                    owner.trigger( 'uploadProgress', file, totalPercent || 0 );
-                });
-    
-                // 鐢ㄦ潵璇㈤棶锛屾槸鍚﹁繑鍥炵殑缁撴灉鏄湁閿欒鐨勩��
-                requestAccept = function( reject ) {
-                    var fn;
-    
-                    ret = tr.getResponseAsJson() || {};
-                    ret._raw = tr.getResponse();
-                    fn = function( value ) {
-                        reject = value;
-                    };
-    
-                    // 鏈嶅姟绔搷搴斾簡锛屼笉浠h〃鎴愬姛浜嗭紝璇㈤棶鏄惁鍝嶅簲姝g‘銆�
-                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
-                        reject = reject || 'server';
-                    }
-    
-                    return reject;
-                };
-    
-                // 灏濊瘯閲嶈瘯锛岀劧鍚庡箍鎾枃浠朵笂浼犲嚭閿欍��
-                tr.on( 'error', function( type, flag ) {
-                    block.retried = block.retried || 0;
-    
-                    // 鑷姩閲嶈瘯
-                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
-                            block.retried < opts.chunkRetry ) {
-    
-                        block.retried++;
-                        tr.send();
-    
-                    } else {
-    
-                        // http status 500 ~ 600
-                        if ( !flag && type === 'server' ) {
-                            type = requestAccept( type );
-                        }
-    
-                        file.setStatus( Status.ERROR, type );
-                        owner.trigger( 'uploadError', file, type );
-                        owner.trigger( 'uploadComplete', file );
-                    }
-                });
-    
-                // 涓婁紶鎴愬姛
-                tr.on( 'load', function() {
-                    var reason;
-    
-                    // 濡傛灉闈為鏈燂紝杞悜涓婁紶鍑洪敊銆�
-                    if ( (reason = requestAccept()) ) {
-                        tr.trigger( 'error', reason, true );
-                        return;
-                    }
-    
-                    // 鍏ㄩ儴涓婁紶瀹屾垚銆�
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file, ret );
-                    } else {
-                        tr.destroy();
-                    }
-                });
-    
-                // 閰嶇疆榛樿鐨勪笂浼犲瓧娈点��
-                data = $.extend( data, {
-                    id: file.id,
-                    name: file.name,
-                    type: file.type,
-                    lastModifiedDate: file.lastModifiedDate,
-                    size: file.size
-                });
-    
-                block.chunks > 1 && $.extend( data, {
-                    chunks: block.chunks,
-                    chunk: block.chunk
-                });
-    
-                // 鍦ㄥ彂閫佷箣闂村彲浠ユ坊鍔犲瓧娈典粈涔堢殑銆傘�傘��
-                // 濡傛灉榛樿鐨勫瓧娈典笉澶熶娇鐢紝鍙互閫氳繃鐩戝惉姝や簨浠舵潵鎵╁睍
-                owner.trigger( 'uploadBeforeSend', block, data, headers );
-    
-                // 寮�濮嬪彂閫併��
-                tr.appendBlob( opts.fileVal, block.blob, file.name );
-                tr.append( data );
-                tr.setRequestHeader( headers );
-                tr.send();
-            },
-    
-            // 瀹屾垚涓婁紶銆�
-            _finishFile: function( file, ret, hds ) {
-                var owner = this.owner;
-    
-                return owner
-                        .request( 'after-send-file', arguments, function() {
-                            file.setStatus( Status.COMPLETE );
-                            owner.trigger( 'uploadSuccess', file, ret, hds );
-                        })
-                        .fail(function( reason ) {
-    
-                            // 濡傛灉澶栭儴宸茬粡鏍囪涓篿nvalid浠�涔堢殑锛屼笉鍐嶆敼鐘舵�併��
-                            if ( file.getStatus() === Status.PROGRESS ) {
-                                file.setStatus( Status.ERROR, reason );
-                            }
-    
-                            owner.trigger( 'uploadError', file, reason );
-                        })
-                        .always(function() {
-                            owner.trigger( 'uploadComplete', file );
-                        });
-            }
-    
-        });
-    });
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/compbase',[],function() {
-    
-        function CompBase( owner, runtime ) {
-    
-            this.owner = owner;
-            this.options = owner.options;
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.getRuid = function() {
-                return runtime.uid;
-            };
-    
-            this.trigger = function() {
-                return owner.trigger.apply( owner, arguments );
-            };
-        }
-    
-        return CompBase;
-    });
-    /**
-     * @fileOverview Html5Runtime
-     */
-    define('runtime/html5/runtime',[
-        'base',
-        'runtime/runtime',
-        'runtime/compbase'
-    ], function( Base, Runtime, CompBase ) {
-    
-        var type = 'html5',
-            components = {};
-    
-        function Html5Runtime() {
-            var pool = {},
-                me = this,
-                destory = this.destory;
-    
-            Runtime.apply( me, arguments );
-            me.type = type;
-    
-    
-            // 杩欎釜鏂规硶鐨勮皟鐢ㄨ�咃紝瀹為檯涓婃槸RuntimeClient
-            me.exec = function( comp, fn/*, args...*/) {
-                var client = this,
-                    uid = client.uid,
-                    args = Base.slice( arguments, 2 ),
-                    instance;
-    
-                if ( components[ comp ] ) {
-                    instance = pool[ uid ] = pool[ uid ] ||
-                            new components[ comp ]( client, me );
-    
-                    if ( instance[ fn ] ) {
-                        return instance[ fn ].apply( instance, args );
-                    }
-                }
-            };
-    
-            me.destory = function() {
-                // @todo 鍒犻櫎姹犲瓙涓殑鎵�鏈夊疄渚�
-                return destory && destory.apply( this, arguments );
-            };
-        }
-    
-        Base.inherits( Runtime, {
-            constructor: Html5Runtime,
-    
-            // 涓嶉渶瑕佽繛鎺ュ叾浠栫▼搴忥紝鐩存帴鎵цcallback
-            init: function() {
-                var me = this;
-                setTimeout(function() {
-                    me.trigger('ready');
-                }, 1 );
-            }
-    
-        });
-    
-        // 娉ㄥ唽Components
-        Html5Runtime.register = function( name, component ) {
-            var klass = components[ name ] = Base.inherits( CompBase, component );
-            return klass;
-        };
-    
-        // 娉ㄥ唽html5杩愯鏃躲��
-        // 鍙湁鍦ㄦ敮鎸佺殑鍓嶆彁涓嬫敞鍐屻��
-        if ( window.Blob && window.FileReader && window.DataView ) {
-            Runtime.addRuntime( type, Html5Runtime );
-        }
-    
-        return Html5Runtime;
-    });
-    /**
-     * @fileOverview Blob Html瀹炵幇
-     */
-    define('runtime/html5/blob',[
-        'runtime/html5/runtime',
-        'lib/blob'
-    ], function( Html5Runtime, Blob ) {
-    
-        return Html5Runtime.register( 'Blob', {
-            slice: function( start, end ) {
-                var blob = this.owner.source,
-                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
-    
-                blob = slice.call( blob, start, end );
-    
-                return new Blob( this.getRuid(), blob );
-            }
-        });
-    });
-    /**
-     * @fileOverview FilePicker
-     */
-    define('runtime/html5/filepicker',[
-        'base',
-        'runtime/html5/runtime'
-    ], function( Base, Html5Runtime ) {
-    
-        var $ = Base.$;
-    
-        return Html5Runtime.register( 'FilePicker', {
-            init: function() {
-                var container = this.getRuntime().getContainer(),
-                    me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    lable = $( document.createElement('label') ),
-                    input = $( document.createElement('input') ),
-                    arr, i, len, mouseHandler;
-    
-                input.attr( 'type', 'file' );
-                input.attr( 'name', opts.name );
-                input.addClass('webuploader-element-invisible');
-    
-                lable.on( 'click', function() {
-                    input.trigger('click');
-                });
-    
-                lable.css({
-                    opacity: 0,
-                    width: '100%',
-                    height: '100%',
-                    display: 'block',
-                    cursor: 'pointer',
-                    background: '#ffffff'
-                });
-    
-                if ( opts.multiple ) {
-                    input.attr( 'multiple', 'multiple' );
-                }
-    
-                // @todo Firefox涓嶆敮鎸佸崟鐙寚瀹氬悗缂�
-                if ( opts.accept && opts.accept.length > 0 ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        arr.push( opts.accept[ i ].mimeTypes );
-                    }
-    
-                    input.attr( 'accept', arr.join(',') );
-                }
-    
-                container.append( input );
-                container.append( lable );
-    
-                mouseHandler = function( e ) {
-                    owner.trigger( e.type );
-                };
-    
-                input.on( 'change', function( e ) {
-                    var fn = arguments.callee,
-                        clone;
-    
-                    me.files = e.target.files;
-    
-                    // reset input
-                    clone = this.cloneNode( true );
-                    this.parentNode.replaceChild( clone, this );
-    
-                    input.off();
-                    input = $( clone ).on( 'change', fn )
-                            .on( 'mouseenter mouseleave', mouseHandler );
-    
-                    owner.trigger('change');
-                });
-    
-                lable.on( 'mouseenter mouseleave', mouseHandler );
-    
-            },
-    
-    
-            getFiles: function() {
-                return this.files;
-            },
-    
-            destroy: function() {
-                // todo
-            }
-        });
-    });
-    /**
-     * Terms:
-     *
-     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
-     * @fileOverview Image鎺т欢
-     */
-    define('runtime/html5/util',[
-        'base'
-    ], function( Base ) {
-    
-        var urlAPI = window.createObjectURL && window ||
-                window.URL && URL.revokeObjectURL && URL ||
-                window.webkitURL,
-            createObjectURL = Base.noop,
-            revokeObjectURL = createObjectURL;
-    
-        if ( urlAPI ) {
-    
-            // 鏇村畨鍏ㄧ殑鏂瑰紡璋冪敤锛屾瘮濡俛ndroid閲岄潰灏辫兘鎶奵ontext鏀规垚鍏朵粬鐨勫璞°��
-            createObjectURL = function() {
-                return urlAPI.createObjectURL.apply( urlAPI, arguments );
-            };
-    
-            revokeObjectURL = function() {
-                return urlAPI.revokeObjectURL.apply( urlAPI, arguments );
-            };
-        }
-    
-        return {
-            createObjectURL: createObjectURL,
-            revokeObjectURL: revokeObjectURL,
-    
-            dataURL2Blob: function( dataURI ) {
-                var byteStr, intArray, ab, i, mimetype, parts;
-    
-                parts = dataURI.split(',');
-    
-                if ( ~parts[ 0 ].indexOf('base64') ) {
-                    byteStr = atob( parts[ 1 ] );
-                } else {
-                    byteStr = decodeURIComponent( parts[ 1 ] );
-                }
-    
-                ab = new ArrayBuffer( byteStr.length );
-                intArray = new Uint8Array( ab );
-    
-                for ( i = 0; i < byteStr.length; i++ ) {
-                    intArray[ i ] = byteStr.charCodeAt( i );
-                }
-    
-                mimetype = parts[ 0 ].split(':')[ 1 ].split(';')[ 0 ];
-    
-                return this.arrayBufferToBlob( ab, mimetype );
-            },
-    
-            dataURL2ArrayBuffer: function( dataURI ) {
-                var byteStr, intArray, i, parts;
-    
-                parts = dataURI.split(',');
-    
-                if ( ~parts[ 0 ].indexOf('base64') ) {
-                    byteStr = atob( parts[ 1 ] );
-                } else {
-                    byteStr = decodeURIComponent( parts[ 1 ] );
-                }
-    
-                intArray = new Uint8Array( byteStr.length );
-    
-                for ( i = 0; i < byteStr.length; i++ ) {
-                    intArray[ i ] = byteStr.charCodeAt( i );
-                }
-    
-                return intArray.buffer;
-            },
-    
-            arrayBufferToBlob: function( buffer, type ) {
-                var builder = window.BlobBuilder || window.WebKitBlobBuilder,
-                    bb;
-    
-                // android涓嶆敮鎸佺洿鎺ew Blob, 鍙兘鍊熷姪blobbuilder.
-                if ( builder ) {
-                    bb = new builder();
-                    bb.append( buffer );
-                    return bb.getBlob( type );
-                }
-    
-                return new Blob([ buffer ], type ? { type: type } : {} );
-            },
-    
-            // 鎶藉嚭鏉ヤ富瑕佹槸涓轰簡瑙e喅android涓嬮潰canvas.toDataUrl涓嶆敮鎸乯peg.
-            // 浣犲緱鍒扮殑缁撴灉鏄痯ng.
-            canvasToDataUrl: function( canvas, type, quality ) {
-                return canvas.toDataURL( type, quality / 100 );
-            },
-    
-            // imagemeat浼氬鍐欒繖涓柟娉曪紝濡傛灉鐢ㄦ埛閫夋嫨鍔犺浇閭d釜鏂囦欢浜嗙殑璇濄��
-            parseMeta: function( blob, callback ) {
-                callback( false, {});
-            },
-    
-            // imagemeat浼氬鍐欒繖涓柟娉曪紝濡傛灉鐢ㄦ埛閫夋嫨鍔犺浇閭d釜鏂囦欢浜嗙殑璇濄��
-            updateImageHead: function( data ) {
-                return data;
-            }
-        };
-    });
-    /**
-     * Terms:
-     *
-     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
-     * @fileOverview Image鎺т欢
-     */
-    define('runtime/html5/imagemeta',[
-        'runtime/html5/util'
-    ], function( Util ) {
-    
-        var api;
-    
-        api = {
-            parsers: {
-                0xffe1: []
-            },
-    
-            maxMetaDataSize: 262144,
-    
-            parse: function( blob, cb ) {
-                var me = this,
-                    fr = new FileReader();
-    
-                fr.onload = function() {
-                    cb( false, me._parse( this.result ) );
-                    fr = fr.onload = fr.onerror = null;
-                };
-    
-                fr.onerror = function( e ) {
-                    cb( e.message );
-                    fr = fr.onload = fr.onerror = null;
-                };
-    
-                blob = blob.slice( 0, me.maxMetaDataSize );
-                fr.readAsArrayBuffer( blob.getSource() );
-            },
-    
-            _parse: function( buffer, noParse ) {
-                if ( buffer.byteLength < 6 ) {
-                    return;
-                }
-    
-                var dataview = new DataView( buffer ),
-                    offset = 2,
-                    maxOffset = dataview.byteLength - 4,
-                    headLength = offset,
-                    ret = {},
-                    markerBytes, markerLength, parsers, i;
-    
-                if ( dataview.getUint16( 0 ) === 0xffd8 ) {
-    
-                    while ( offset < maxOffset ) {
-                        markerBytes = dataview.getUint16( offset );
-    
-                        if ( markerBytes >= 0xffe0 && markerBytes <= 0xffef ||
-                                markerBytes === 0xfffe ) {
-    
-                            markerLength = dataview.getUint16( offset + 2 ) + 2;
-    
-                            if ( offset + markerLength > dataview.byteLength ) {
-                                break;
-                            }
-    
-                            parsers = api.parsers[ markerBytes ];
-    
-                            if ( !noParse && parsers ) {
-                                for ( i = 0; i < parsers.length; i += 1 ) {
-                                    parsers[ i ].call( api, dataview, offset,
-                                            markerLength, ret );
-                                }
-                            }
-    
-                            offset += markerLength;
-                            headLength = offset;
-                        } else {
-                            break;
-                        }
-                    }
-    
-                    if ( headLength > 6 ) {
-                        if ( buffer.slice ) {
-                            ret.imageHead = buffer.slice( 2, headLength );
-                        } else {
-                            // Workaround for IE10, which does not yet
-                            // support ArrayBuffer.slice:
-                            ret.imageHead = new Uint8Array( buffer )
-                                    .subarray( 2, headLength );
-                        }
-                    }
-                }
-    
-                return ret;
-            },
-    
-            updateImageHead: function( buffer, head ) {
-                var data = this._parse( buffer, true ),
-                    buf1, buf2, bodyoffset;
-    
-    
-                bodyoffset = 2;
-                if ( data.imageHead ) {
-                    bodyoffset = 2 + data.imageHead.byteLength;
-                }
-    
-                if ( buffer.slice ) {
-                    buf2 = buffer.slice( bodyoffset );
-                } else {
-                    buf2 = new Uint8Array( buffer ).subarray( bodyoffset );
-                }
-    
-                buf1 = new Uint8Array( head.byteLength + 2 + buf2.byteLength );
-    
-                buf1[ 0 ] = 0xFF;
-                buf1[ 1 ] = 0xD8;
-                buf1.set( new Uint8Array( head ), 2 );
-                buf1.set( new Uint8Array( buf2 ), head.byteLength + 2 );
-    
-                return buf1.buffer;
-            }
-        };
-    
-        Util.parseMeta = function() {
-            return api.parse.apply( api, arguments );
-        };
-    
-        Util.updateImageHead = function() {
-            return api.updateImageHead.apply( api, arguments );
-        };
-    
-        return api;
-    });
-    /**
-     * 浠g爜鏉ヨ嚜浜庯細https://github.com/blueimp/JavaScript-Load-Image
-     * 鏆傛椂椤圭洰涓彧鐢ㄤ簡orientation.
-     *
-     * 鍘婚櫎浜� Exif Sub IFD Pointer, GPS Info IFD Pointer, Exif Thumbnail.
-     * @fileOverview EXIF瑙f瀽
-     */
-    
-    // Sample
-    // ====================================
-    // Make : Apple
-    // Model : iPhone 4S
-    // Orientation : 1
-    // XResolution : 72 [72/1]
-    // YResolution : 72 [72/1]
-    // ResolutionUnit : 2
-    // Software : QuickTime 7.7.1
-    // DateTime : 2013:09:01 22:53:55
-    // ExifIFDPointer : 190
-    // ExposureTime : 0.058823529411764705 [1/17]
-    // FNumber : 2.4 [12/5]
-    // ExposureProgram : Normal program
-    // ISOSpeedRatings : 800
-    // ExifVersion : 0220
-    // DateTimeOriginal : 2013:09:01 22:52:51
-    // DateTimeDigitized : 2013:09:01 22:52:51
-    // ComponentsConfiguration : YCbCr
-    // ShutterSpeedValue : 4.058893515764426
-    // ApertureValue : 2.5260688216892597 [4845/1918]
-    // BrightnessValue : -0.3126686601998395
-    // MeteringMode : Pattern
-    // Flash : Flash did not fire, compulsory flash mode
-    // FocalLength : 4.28 [107/25]
-    // SubjectArea : [4 values]
-    // FlashpixVersion : 0100
-    // ColorSpace : 1
-    // PixelXDimension : 2448
-    // PixelYDimension : 3264
-    // SensingMethod : One-chip color area sensor
-    // ExposureMode : 0
-    // WhiteBalance : Auto white balance
-    // FocalLengthIn35mmFilm : 35
-    // SceneCaptureType : Standard
-    define('runtime/html5/imagemeta/exif',[
-        'base',
-        'runtime/html5/imagemeta'
-    ], function( Base, ImageMeta ) {
-    
-        var EXIF = {};
-    
-        EXIF.ExifMap = function() {
-            return this;
-        };
-    
-        EXIF.ExifMap.prototype.map = {
-            'Orientation': 0x0112
-        };
-    
-        EXIF.ExifMap.prototype.get = function( id ) {
-            return this[ id ] || this[ this.map[ id ] ];
-        };
-    
-        EXIF.exifTagTypes = {
-            // byte, 8-bit unsigned int:
-            1: {
-                getValue: function( dataView, dataOffset ) {
-                    return dataView.getUint8( dataOffset );
-                },
-                size: 1
-            },
-    
-            // ascii, 8-bit byte:
-            2: {
-                getValue: function( dataView, dataOffset ) {
-                    return String.fromCharCode( dataView.getUint8( dataOffset ) );
-                },
-                size: 1,
-                ascii: true
-            },
-    
-            // short, 16 bit int:
-            3: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint16( dataOffset, littleEndian );
-                },
-                size: 2
-            },
-    
-            // long, 32 bit int:
-            4: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint32( dataOffset, littleEndian );
-                },
-                size: 4
-            },
-    
-            // rational = two long values,
-            // first is numerator, second is denominator:
-            5: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint32( dataOffset, littleEndian ) /
-                        dataView.getUint32( dataOffset + 4, littleEndian );
-                },
-                size: 8
-            },
-    
-            // slong, 32 bit signed int:
-            9: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getInt32( dataOffset, littleEndian );
-                },
-                size: 4
-            },
-    
-            // srational, two slongs, first is numerator, second is denominator:
-            10: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getInt32( dataOffset, littleEndian ) /
-                        dataView.getInt32( dataOffset + 4, littleEndian );
-                },
-                size: 8
-            }
-        };
-    
-        // undefined, 8-bit byte, value depending on field:
-        EXIF.exifTagTypes[ 7 ] = EXIF.exifTagTypes[ 1 ];
-    
-        EXIF.getExifValue = function( dataView, tiffOffset, offset, type, length,
-                littleEndian ) {
-    
-            var tagType = EXIF.exifTagTypes[ type ],
-                tagSize, dataOffset, values, i, str, c;
-    
-            if ( !tagType ) {
-                Base.log('Invalid Exif data: Invalid tag type.');
-                return;
-            }
-    
-            tagSize = tagType.size * length;
-    
-            // Determine if the value is contained in the dataOffset bytes,
-            // or if the value at the dataOffset is a pointer to the actual data:
-            dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32( offset + 8,
-                    littleEndian ) : (offset + 8);
-    
-            if ( dataOffset + tagSize > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid data offset.');
-                return;
-            }
-    
-            if ( length === 1 ) {
-                return tagType.getValue( dataView, dataOffset, littleEndian );
-            }
-    
-            values = [];
-    
-            for ( i = 0; i < length; i += 1 ) {
-                values[ i ] = tagType.getValue( dataView,
-                        dataOffset + i * tagType.size, littleEndian );
-            }
-    
-            if ( tagType.ascii ) {
-                str = '';
-    
-                // Concatenate the chars:
-                for ( i = 0; i < values.length; i += 1 ) {
-                    c = values[ i ];
-    
-                    // Ignore the terminating NULL byte(s):
-                    if ( c === '\u0000' ) {
-                        break;
-                    }
-                    str += c;
-                }
-    
-                return str;
-            }
-            return values;
-        };
-    
-        EXIF.parseExifTag = function( dataView, tiffOffset, offset, littleEndian,
-                data ) {
-    
-            var tag = dataView.getUint16( offset, littleEndian );
-            data.exif[ tag ] = EXIF.getExifValue( dataView, tiffOffset, offset,
-                    dataView.getUint16( offset + 2, littleEndian ),    // tag type
-                    dataView.getUint32( offset + 4, littleEndian ),    // tag length
-                    littleEndian );
-        };
-    
-        EXIF.parseExifTags = function( dataView, tiffOffset, dirOffset,
-                littleEndian, data ) {
-    
-            var tagsNumber, dirEndOffset, i;
-    
-            if ( dirOffset + 6 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid directory offset.');
-                return;
-            }
-    
-            tagsNumber = dataView.getUint16( dirOffset, littleEndian );
-            dirEndOffset = dirOffset + 2 + 12 * tagsNumber;
-    
-            if ( dirEndOffset + 4 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid directory size.');
-                return;
-            }
-    
-            for ( i = 0; i < tagsNumber; i += 1 ) {
-                this.parseExifTag( dataView, tiffOffset,
-                        dirOffset + 2 + 12 * i,    // tag offset
-                        littleEndian, data );
-            }
-    
-            // Return the offset to the next directory:
-            return dataView.getUint32( dirEndOffset, littleEndian );
-        };
-    
-        // EXIF.getExifThumbnail = function(dataView, offset, length) {
-        //     var hexData,
-        //         i,
-        //         b;
-        //     if (!length || offset + length > dataView.byteLength) {
-        //         Base.log('Invalid Exif data: Invalid thumbnail data.');
-        //         return;
-        //     }
-        //     hexData = [];
-        //     for (i = 0; i < length; i += 1) {
-        //         b = dataView.getUint8(offset + i);
-        //         hexData.push((b < 16 ? '0' : '') + b.toString(16));
-        //     }
-        //     return 'data:image/jpeg,%' + hexData.join('%');
-        // };
-    
-        EXIF.parseExifData = function( dataView, offset, length, data ) {
-    
-            var tiffOffset = offset + 10,
-                littleEndian, dirOffset;
-    
-            // Check for the ASCII code for "Exif" (0x45786966):
-            if ( dataView.getUint32( offset + 4 ) !== 0x45786966 ) {
-                // No Exif data, might be XMP data instead
-                return;
-            }
-            if ( tiffOffset + 8 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid segment size.');
-                return;
-            }
-    
-            // Check for the two null bytes:
-            if ( dataView.getUint16( offset + 8 ) !== 0x0000 ) {
-                Base.log('Invalid Exif data: Missing byte alignment offset.');
-                return;
-            }
-    
-            // Check the byte alignment:
-            switch ( dataView.getUint16( tiffOffset ) ) {
-                case 0x4949:
-                    littleEndian = true;
-                    break;
-    
-                case 0x4D4D:
-                    littleEndian = false;
-                    break;
-    
-                default:
-                    Base.log('Invalid Exif data: Invalid byte alignment marker.');
-                    return;
-            }
-    
-            // Check for the TIFF tag marker (0x002A):
-            if ( dataView.getUint16( tiffOffset + 2, littleEndian ) !== 0x002A ) {
-                Base.log('Invalid Exif data: Missing TIFF marker.');
-                return;
-            }
-    
-            // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:
-            dirOffset = dataView.getUint32( tiffOffset + 4, littleEndian );
-            // Create the exif object to store the tags:
-            data.exif = new EXIF.ExifMap();
-            // Parse the tags of the main image directory and retrieve the
-            // offset to the next directory, usually the thumbnail directory:
-            dirOffset = EXIF.parseExifTags( dataView, tiffOffset,
-                    tiffOffset + dirOffset, littleEndian, data );
-    
-            // 灏濊瘯璇诲彇缂╃暐鍥�
-            // if ( dirOffset ) {
-            //     thumbnailData = {exif: {}};
-            //     dirOffset = EXIF.parseExifTags(
-            //         dataView,
-            //         tiffOffset,
-            //         tiffOffset + dirOffset,
-            //         littleEndian,
-            //         thumbnailData
-            //     );
-    
-            //     // Check for JPEG Thumbnail offset:
-            //     if (thumbnailData.exif[0x0201]) {
-            //         data.exif.Thumbnail = EXIF.getExifThumbnail(
-            //             dataView,
-            //             tiffOffset + thumbnailData.exif[0x0201],
-            //             thumbnailData.exif[0x0202] // Thumbnail data length
-            //         );
-            //     }
-            // }
-        };
-    
-        ImageMeta.parsers[ 0xffe1 ].push( EXIF.parseExifData );
-        return EXIF;
-    });
-    /**
-     * @fileOverview Image
-     */
-    define('runtime/html5/image',[
-        'base',
-        'runtime/html5/runtime',
-        'runtime/html5/util'
-    ], function( Base, Html5Runtime, Util ) {
-    
-        var BLANK = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D';
-    
-        return Html5Runtime.register( 'Image', {
-    
-            // flag: 鏍囪鏄惁琚慨鏀硅繃銆�
-            modified: false,
-    
-            init: function() {
-                var me = this,
-                    img = new Image();
-    
-                img.onload = function() {
-    
-                    me._info = {
-                        type: me.type,
-                        width: this.width,
-                        height: this.height
-                    };
-    
-                    // 璇诲彇meta淇℃伅銆�
-                    if ( !me._metas && 'image/jpeg' === me.type ) {
-                        Util.parseMeta( me._blob, function( error, ret ) {
-                            me._metas = ret;
-                            me.owner.trigger('load');
-                        });
-                    } else {
-                        me.owner.trigger('load');
-                    }
-                };
-    
-                img.onerror = function() {
-                    me.owner.trigger('error');
-                };
-    
-                me._img = img;
-            },
-    
-            loadFromBlob: function( blob ) {
-                var me = this,
-                    img = me._img;
-    
-                me._blob = blob;
-                me.type = blob.type;
-                img.src = Util.createObjectURL( blob.getSource() );
-                me.owner.once( 'load', function() {
-                    Util.revokeObjectURL( img.src );
-                });
-            },
-    
-            resize: function( width, height ) {
-                var canvas = this._canvas ||
-                        (this._canvas = document.createElement('canvas'));
-    
-                this._resize( this._img, canvas, width, height );
-                this._blob = null;    // 娌$敤浜嗭紝鍙互鍒犳帀浜嗐��
-                this.modified = true;
-                this.owner.trigger('complete');
-            },
-    
-            getAsBlob: function( type ) {
-                var blob = this._blob,
-                    opts = this.options,
-                    canvas;
-    
-                type = type || this.type;
-    
-                // blob闇�瑕侀噸鏂扮敓鎴愩��
-                if ( this.modified || this.type !== type ) {
-                    canvas = this._canvas;
-    
-                    if ( type === 'image/jpeg' ) {
-    
-                        blob = Util.canvasToDataUrl( canvas, 'image/jpeg',
-                                opts.quality );
-    
-                        if ( opts.preserveHeaders && this._metas &&
-                                this._metas.imageHead ) {
-    
-                            blob = Util.dataURL2ArrayBuffer( blob );
-                            blob = Util.updateImageHead( blob,
-                                    this._metas.imageHead );
-                            blob = Util.arrayBufferToBlob( blob, type );
-                            return blob;
-                        }
-                    } else {
-                        blob = Util.canvasToDataUrl( canvas, type );
-                    }
-    
-                    blob = Util.dataURL2Blob( blob );
-                }
-    
-                return blob;
-            },
-    
-            getAsDataUrl: function( type ) {
-                var opts = this.options;
-    
-                type = type || this.type;
-    
-                if ( type === 'image/jpeg' ) {
-                    return Util.canvasToDataUrl( this._canvas, type, opts.quality );
-                } else {
-                    return this._canvas.toDataURL( type );
-                }
-            },
-    
-            getOrientation: function() {
-                return this._metas && this._metas.exif &&
-                        this._metas.exif.get('Orientation') || 1;
-            },
-    
-            info: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._info = val;
-                    return this;
-                }
-    
-                // getter
-                return this._info;
-            },
-    
-            meta: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._meta = val;
-                    return this;
-                }
-    
-                // getter
-                return this._meta;
-            },
-    
-            destroy: function() {
-                var canvas = this._canvas;
-                this._img.onload = null;
-    
-                if ( canvas ) {
-                    canvas.getContext('2d')
-                            .clearRect( 0, 0, canvas.width, canvas.height );
-                    canvas.width = canvas.height = 0;
-                    this._canvas = null;
-                }
-    
-                // 閲婃斁鍐呭瓨銆傞潪甯搁噸瑕侊紝鍚﹀垯閲婃斁涓嶄簡image鐨勫唴瀛樸��
-                this._img.src = BLANK;
-                this._img = this._blob = null;
-            },
-    
-            _resize: function( img, cvs, width, height ) {
-                var opts = this.options,
-                    naturalWidth = img.width,
-                    naturalHeight = img.height,
-                    orientation = this.getOrientation(),
-                    scale, w, h, x, y;
-    
-                // values that require 90 degree rotation
-                if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
-    
-                    // 浜ゆ崲width, height鐨勫�笺��
-                    width ^= height;
-                    height ^= width;
-                    width ^= height;
-                }
-    
-                scale = Math[ opts.crop ? 'max' : 'min' ]( width / naturalWidth,
-                        height / naturalHeight );
-    
-                // 涓嶅厑璁告斁澶с��
-                opts.allowMagnify || (scale = Math.min( 1, scale ));
-    
-                w = naturalWidth * scale;
-                h = naturalHeight * scale;
-    
-                if ( opts.crop ) {
-                    cvs.width = width;
-                    cvs.height = height;
-                } else {
-                    cvs.width = w;
-                    cvs.height = h;
-                }
-    
-                x = (cvs.width - w) / 2;
-                y = (cvs.height - h) / 2;
-    
-                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
-    
-                this._renderImageToCanvas( cvs, img, x, y, w, h );
-            },
-    
-            _rotate2Orientaion: function( canvas, orientation ) {
-                var width = canvas.width,
-                    height = canvas.height,
-                    ctx = canvas.getContext('2d');
-    
-                switch ( orientation ) {
-                    case 5:
-                    case 6:
-                    case 7:
-                    case 8:
-                        canvas.width = height;
-                        canvas.height = width;
-                        break;
-                }
-    
-                switch ( orientation ) {
-                    case 2:    // horizontal flip
-                        ctx.translate( width, 0 );
-                        ctx.scale( -1, 1 );
-                        break;
-    
-                    case 3:    // 180 rotate left
-                        ctx.translate( width, height );
-                        ctx.rotate( Math.PI );
-                        break;
-    
-                    case 4:    // vertical flip
-                        ctx.translate( 0, height );
-                        ctx.scale( 1, -1 );
-                        break;
-    
-                    case 5:    // vertical flip + 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.scale( 1, -1 );
-                        break;
-    
-                    case 6:    // 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.translate( 0, -height );
-                        break;
-    
-                    case 7:    // horizontal flip + 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.translate( width, -height );
-                        ctx.scale( -1, 1 );
-                        break;
-    
-                    case 8:    // 90 rotate left
-                        ctx.rotate( -0.5 * Math.PI );
-                        ctx.translate( -width, 0 );
-                        break;
-                }
-            },
-    
-            // https://github.com/stomita/ios-imagefile-megapixel/
-            // blob/master/src/megapix-image.js
-            _renderImageToCanvas: (function() {
-    
-                // 濡傛灉涓嶆槸ios, 涓嶉渶瑕佽繖涔堝鏉傦紒
-                if ( !Base.os.ios ) {
-                    return function( canvas, img, x, y, w, h ) {
-                        canvas.getContext('2d').drawImage( img, x, y, w, h );
-                    };
-                }
-    
-                /**
-                 * Detecting vertical squash in loaded image.
-                 * Fixes a bug which squash image vertically while drawing into
-                 * canvas for some images.
-                 */
-                function detectVerticalSquash( img, iw, ih ) {
-                    var canvas = document.createElement('canvas'),
-                        ctx = canvas.getContext('2d'),
-                        sy = 0,
-                        ey = ih,
-                        py = ih,
-                        data, alpha, ratio;
-    
-    
-                    canvas.width = 1;
-                    canvas.height = ih;
-                    ctx.drawImage( img, 0, 0 );
-                    data = ctx.getImageData( 0, 0, 1, ih ).data;
-    
-                    // search image edge pixel position in case
-                    // it is squashed vertically.
-                    while ( py > sy ) {
-                        alpha = data[ (py - 1) * 4 + 3 ];
-    
-                        if ( alpha === 0 ) {
-                            ey = py;
-                        } else {
-                            sy = py;
-                        }
-    
-                        py = (ey + sy) >> 1;
-                    }
-    
-                    ratio = (py / ih);
-                    return (ratio === 0) ? 1 : ratio;
-                }
-    
-                // fix ie7 bug
-                // http://stackoverflow.com/questions/11929099/
-                // html5-canvas-drawimage-ratio-bug-ios
-                if ( Base.os.ios >= 7 ) {
-                    return function( canvas, img, x, y, w, h ) {
-                        var iw = img.naturalWidth,
-                            ih = img.naturalHeight,
-                            vertSquashRatio = detectVerticalSquash( img, iw, ih );
-    
-                        return canvas.getContext('2d').drawImage( img, 0, 0,
-                            iw * vertSquashRatio, ih * vertSquashRatio,
-                            x, y, w, h );
-                    };
-                }
-    
-                /**
-                 * Detect subsampling in loaded image.
-                 * In iOS, larger images than 2M pixels may be
-                 * subsampled in rendering.
-                 */
-                function detectSubsampling( img ) {
-                    var iw = img.naturalWidth,
-                        ih = img.naturalHeight,
-                        canvas, ctx;
-    
-                    // subsampling may happen overmegapixel image
-                    if ( iw * ih > 1024 * 1024 ) {
-                        canvas = document.createElement('canvas');
-                        canvas.width = canvas.height = 1;
-                        ctx = canvas.getContext('2d');
-                        ctx.drawImage( img, -iw + 1, 0 );
-    
-                        // subsampled image becomes half smaller in rendering size.
-                        // check alpha channel value to confirm image is covering
-                        // edge pixel or not. if alpha value is 0
-                        // image is not covering, hence subsampled.
-                        return ctx.getImageData( 0, 0, 1, 1 ).data[ 3 ] === 0;
-                    } else {
-                        return false;
-                    }
-                }
-    
-    
-                return function( canvas, img, x, y, width, height ) {
-                    var iw = img.naturalWidth,
-                        ih = img.naturalHeight,
-                        ctx = canvas.getContext('2d'),
-                        subsampled = detectSubsampling( img ),
-                        doSquash = this.type === 'image/jpeg',
-                        d = 1024,
-                        sy = 0,
-                        dy = 0,
-                        tmpCanvas, tmpCtx, vertSquashRatio, dw, dh, sx, dx;
-    
-                    if ( subsampled ) {
-                        iw /= 2;
-                        ih /= 2;
-                    }
-    
-                    ctx.save();
-                    tmpCanvas = document.createElement('canvas');
-                    tmpCanvas.width = tmpCanvas.height = d;
-    
-                    tmpCtx = tmpCanvas.getContext('2d');
-                    vertSquashRatio = doSquash ?
-                            detectVerticalSquash( img, iw, ih ) : 1;
-    
-                    dw = Math.ceil( d * width / iw );
-                    dh = Math.ceil( d * height / ih / vertSquashRatio );
-    
-                    while ( sy < ih ) {
-                        sx = 0;
-                        dx = 0;
-                        while ( sx < iw ) {
-                            tmpCtx.clearRect( 0, 0, d, d );
-                            tmpCtx.drawImage( img, -sx, -sy );
-                            ctx.drawImage( tmpCanvas, 0, 0, d, d,
-                                    x + dx, y + dy, dw, dh );
-                            sx += d;
-                            dx += dw;
-                        }
-                        sy += d;
-                        dy += dh;
-                    }
-                    ctx.restore();
-                    tmpCanvas = tmpCtx = null;
-                };
-            })()
-        });
-    });
-    /**
-     * 杩欎釜鏂瑰紡鎬ц兘涓嶈锛屼絾鏄彲浠ヨВ鍐砤ndroid閲岄潰鐨則oDataUrl鐨刡ug
-     * android閲岄潰toDataUrl('image/jpege')寰楀埌鐨勭粨鏋滃嵈鏄痯ng.
-     *
-     * 鎵�浠ヨ繖閲屾病杈欙紝鍙兘鍊熷姪杩欎釜宸ュ叿
-     * @fileOverview jpeg encoder
-     */
-    define('runtime/html5/jpegencoder',[], function( require, exports, module ) {
-    
-        /*
-          Copyright (c) 2008, Adobe Systems Incorporated
-          All rights reserved.
-    
-          Redistribution and use in source and binary forms, with or without
-          modification, are permitted provided that the following conditions are
-          met:
-    
-          * Redistributions of source code must retain the above copyright notice,
-            this list of conditions and the following disclaimer.
-    
-          * Redistributions in binary form must reproduce the above copyright
-            notice, this list of conditions and the following disclaimer in the
-            documentation and/or other materials provided with the distribution.
-    
-          * Neither the name of Adobe Systems Incorporated nor the names of its
-            contributors may be used to endorse or promote products derived from
-            this software without specific prior written permission.
-    
-          THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-          IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-          THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-          PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-          CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-          EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-          PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-          PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-          LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-          NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-          SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-        */
-        /*
-        JPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009
-    
-        Basic GUI blocking jpeg encoder
-        */
-    
-        function JPEGEncoder(quality) {
-          var self = this;
-            var fround = Math.round;
-            var ffloor = Math.floor;
-            var YTable = new Array(64);
-            var UVTable = new Array(64);
-            var fdtbl_Y = new Array(64);
-            var fdtbl_UV = new Array(64);
-            var YDC_HT;
-            var UVDC_HT;
-            var YAC_HT;
-            var UVAC_HT;
-    
-            var bitcode = new Array(65535);
-            var category = new Array(65535);
-            var outputfDCTQuant = new Array(64);
-            var DU = new Array(64);
-            var byteout = [];
-            var bytenew = 0;
-            var bytepos = 7;
-    
-            var YDU = new Array(64);
-            var UDU = new Array(64);
-            var VDU = new Array(64);
-            var clt = new Array(256);
-            var RGB_YUV_TABLE = new Array(2048);
-            var currentQuality;
-    
-            var ZigZag = [
-                     0, 1, 5, 6,14,15,27,28,
-                     2, 4, 7,13,16,26,29,42,
-                     3, 8,12,17,25,30,41,43,
-                     9,11,18,24,31,40,44,53,
-                    10,19,23,32,39,45,52,54,
-                    20,22,33,38,46,51,55,60,
-                    21,34,37,47,50,56,59,61,
-                    35,36,48,49,57,58,62,63
-                ];
-    
-            var std_dc_luminance_nrcodes = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
-            var std_dc_luminance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
-            var std_ac_luminance_nrcodes = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
-            var std_ac_luminance_values = [
-                    0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
-                    0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
-                    0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
-                    0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
-                    0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
-                    0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
-                    0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
-                    0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
-                    0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
-                    0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
-                    0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
-                    0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
-                    0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
-                    0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
-                    0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
-                    0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
-                    0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
-                    0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
-                    0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
-                    0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
-                    0xf9,0xfa
-                ];
-    
-            var std_dc_chrominance_nrcodes = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
-            var std_dc_chrominance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
-            var std_ac_chrominance_nrcodes = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
-            var std_ac_chrominance_values = [
-                    0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
-                    0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
-                    0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
-                    0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
-                    0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
-                    0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
-                    0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
-                    0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
-                    0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
-                    0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
-                    0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
-                    0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
-                    0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
-                    0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
-                    0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
-                    0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
-                    0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
-                    0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
-                    0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
-                    0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
-                    0xf9,0xfa
-                ];
-    
-            function initQuantTables(sf){
-                    var YQT = [
-                        16, 11, 10, 16, 24, 40, 51, 61,
-                        12, 12, 14, 19, 26, 58, 60, 55,
-                        14, 13, 16, 24, 40, 57, 69, 56,
-                        14, 17, 22, 29, 51, 87, 80, 62,
-                        18, 22, 37, 56, 68,109,103, 77,
-                        24, 35, 55, 64, 81,104,113, 92,
-                        49, 64, 78, 87,103,121,120,101,
-                        72, 92, 95, 98,112,100,103, 99
-                    ];
-    
-                    for (var i = 0; i < 64; i++) {
-                        var t = ffloor((YQT[i]*sf+50)/100);
-                        if (t < 1) {
-                            t = 1;
-                        } else if (t > 255) {
-                            t = 255;
-                        }
-                        YTable[ZigZag[i]] = t;
-                    }
-                    var UVQT = [
-                        17, 18, 24, 47, 99, 99, 99, 99,
-                        18, 21, 26, 66, 99, 99, 99, 99,
-                        24, 26, 56, 99, 99, 99, 99, 99,
-                        47, 66, 99, 99, 99, 99, 99, 99,
-                        99, 99, 99, 99, 99, 99, 99, 99,
-                        99, 99, 99, 99, 99, 99, 99, 99,
-                        99, 99, 99, 99, 99, 99, 99, 99,
-                        99, 99, 99, 99, 99, 99, 99, 99
-                    ];
-                    for (var j = 0; j < 64; j++) {
-                        var u = ffloor((UVQT[j]*sf+50)/100);
-                        if (u < 1) {
-                            u = 1;
-                        } else if (u > 255) {
-                            u = 255;
-                        }
-                        UVTable[ZigZag[j]] = u;
-                    }
-                    var aasf = [
-                        1.0, 1.387039845, 1.306562965, 1.175875602,
-                        1.0, 0.785694958, 0.541196100, 0.275899379
-                    ];
-                    var k = 0;
-                    for (var row = 0; row < 8; row++)
-                    {
-                        for (var col = 0; col < 8; col++)
-                        {
-                            fdtbl_Y[k]  = (1.0 / (YTable [ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
-                            fdtbl_UV[k] = (1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
-                            k++;
-                        }
-                    }
-                }
-    
-                function computeHuffmanTbl(nrcodes, std_table){
-                    var codevalue = 0;
-                    var pos_in_table = 0;
-                    var HT = new Array();
-                    for (var k = 1; k <= 16; k++) {
-                        for (var j = 1; j <= nrcodes[k]; j++) {
-                            HT[std_table[pos_in_table]] = [];
-                            HT[std_table[pos_in_table]][0] = codevalue;
-                            HT[std_table[pos_in_table]][1] = k;
-                            pos_in_table++;
-                            codevalue++;
-                        }
-                        codevalue*=2;
-                    }
-                    return HT;
-                }
-    
-                function initHuffmanTbl()
-                {
-                    YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
-                    UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
-                    YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
-                    UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
-                }
-    
-                function initCategoryNumber()
-                {
-                    var nrlower = 1;
-                    var nrupper = 2;
-                    for (var cat = 1; cat <= 15; cat++) {
-                        //Positive numbers
-                        for (var nr = nrlower; nr<nrupper; nr++) {
-                            category[32767+nr] = cat;
-                            bitcode[32767+nr] = [];
-                            bitcode[32767+nr][1] = cat;
-                            bitcode[32767+nr][0] = nr;
-                        }
-                        //Negative numbers
-                        for (var nrneg =-(nrupper-1); nrneg<=-nrlower; nrneg++) {
-                            category[32767+nrneg] = cat;
-                            bitcode[32767+nrneg] = [];
-                            bitcode[32767+nrneg][1] = cat;
-                            bitcode[32767+nrneg][0] = nrupper-1+nrneg;
-                        }
-                        nrlower <<= 1;
-                        nrupper <<= 1;
-                    }
-                }
-    
-                function initRGBYUVTable() {
-                    for(var i = 0; i < 256;i++) {
-                        RGB_YUV_TABLE[i]            =  19595 * i;
-                        RGB_YUV_TABLE[(i+ 256)>>0]  =  38470 * i;
-                        RGB_YUV_TABLE[(i+ 512)>>0]  =   7471 * i + 0x8000;
-                        RGB_YUV_TABLE[(i+ 768)>>0]  = -11059 * i;
-                        RGB_YUV_TABLE[(i+1024)>>0]  = -21709 * i;
-                        RGB_YUV_TABLE[(i+1280)>>0]  =  32768 * i + 0x807FFF;
-                        RGB_YUV_TABLE[(i+1536)>>0]  = -27439 * i;
-                        RGB_YUV_TABLE[(i+1792)>>0]  = - 5329 * i;
-                    }
-                }
-    
-                // IO functions
-                function writeBits(bs)
-                {
-                    var value = bs[0];
-                    var posval = bs[1]-1;
-                    while ( posval >= 0 ) {
-                        if (value & (1 << posval) ) {
-                            bytenew |= (1 << bytepos);
-                        }
-                        posval--;
-                        bytepos--;
-                        if (bytepos < 0) {
-                            if (bytenew == 0xFF) {
-                                writeByte(0xFF);
-                                writeByte(0);
-                            }
-                            else {
-                                writeByte(bytenew);
-                            }
-                            bytepos=7;
-                            bytenew=0;
-                        }
-                    }
-                }
-    
-                function writeByte(value)
-                {
-                    byteout.push(clt[value]); // write char directly instead of converting later
-                }
-    
-                function writeWord(value)
-                {
-                    writeByte((value>>8)&0xFF);
-                    writeByte((value   )&0xFF);
-                }
-    
-                // DCT & quantization core
-                function fDCTQuant(data, fdtbl)
-                {
-                    var d0, d1, d2, d3, d4, d5, d6, d7;
-                    /* Pass 1: process rows. */
-                    var dataOff=0;
-                    var i;
-                    var I8 = 8;
-                    var I64 = 64;
-                    for (i=0; i<I8; ++i)
-                    {
-                        d0 = data[dataOff];
-                        d1 = data[dataOff+1];
-                        d2 = data[dataOff+2];
-                        d3 = data[dataOff+3];
-                        d4 = data[dataOff+4];
-                        d5 = data[dataOff+5];
-                        d6 = data[dataOff+6];
-                        d7 = data[dataOff+7];
-    
-                        var tmp0 = d0 + d7;
-                        var tmp7 = d0 - d7;
-                        var tmp1 = d1 + d6;
-                        var tmp6 = d1 - d6;
-                        var tmp2 = d2 + d5;
-                        var tmp5 = d2 - d5;
-                        var tmp3 = d3 + d4;
-                        var tmp4 = d3 - d4;
-    
-                        /* Even part */
-                        var tmp10 = tmp0 + tmp3;    /* phase 2 */
-                        var tmp13 = tmp0 - tmp3;
-                        var tmp11 = tmp1 + tmp2;
-                        var tmp12 = tmp1 - tmp2;
-    
-                        data[dataOff] = tmp10 + tmp11; /* phase 3 */
-                        data[dataOff+4] = tmp10 - tmp11;
-    
-                        var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
-                        data[dataOff+2] = tmp13 + z1; /* phase 5 */
-                        data[dataOff+6] = tmp13 - z1;
-    
-                        /* Odd part */
-                        tmp10 = tmp4 + tmp5; /* phase 2 */
-                        tmp11 = tmp5 + tmp6;
-                        tmp12 = tmp6 + tmp7;
-    
-                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
-                        var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
-                        var z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
-                        var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
-                        var z3 = tmp11 * 0.707106781; /* c4 */
-    
-                        var z11 = tmp7 + z3;    /* phase 5 */
-                        var z13 = tmp7 - z3;
-    
-                        data[dataOff+5] = z13 + z2; /* phase 6 */
-                        data[dataOff+3] = z13 - z2;
-                        data[dataOff+1] = z11 + z4;
-                        data[dataOff+7] = z11 - z4;
-    
-                        dataOff += 8; /* advance pointer to next row */
-                    }
-    
-                    /* Pass 2: process columns. */
-                    dataOff = 0;
-                    for (i=0; i<I8; ++i)
-                    {
-                        d0 = data[dataOff];
-                        d1 = data[dataOff + 8];
-                        d2 = data[dataOff + 16];
-                        d3 = data[dataOff + 24];
-                        d4 = data[dataOff + 32];
-                        d5 = data[dataOff + 40];
-                        d6 = data[dataOff + 48];
-                        d7 = data[dataOff + 56];
-    
-                        var tmp0p2 = d0 + d7;
-                        var tmp7p2 = d0 - d7;
-                        var tmp1p2 = d1 + d6;
-                        var tmp6p2 = d1 - d6;
-                        var tmp2p2 = d2 + d5;
-                        var tmp5p2 = d2 - d5;
-                        var tmp3p2 = d3 + d4;
-                        var tmp4p2 = d3 - d4;
-    
-                        /* Even part */
-                        var tmp10p2 = tmp0p2 + tmp3p2;  /* phase 2 */
-                        var tmp13p2 = tmp0p2 - tmp3p2;
-                        var tmp11p2 = tmp1p2 + tmp2p2;
-                        var tmp12p2 = tmp1p2 - tmp2p2;
-    
-                        data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */
-                        data[dataOff+32] = tmp10p2 - tmp11p2;
-    
-                        var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */
-                        data[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */
-                        data[dataOff+48] = tmp13p2 - z1p2;
-    
-                        /* Odd part */
-                        tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */
-                        tmp11p2 = tmp5p2 + tmp6p2;
-                        tmp12p2 = tmp6p2 + tmp7p2;
-    
-                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
-                        var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */
-                        var z2p2 = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */
-                        var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */
-                        var z3p2 = tmp11p2 * 0.707106781; /* c4 */
-    
-                        var z11p2 = tmp7p2 + z3p2;  /* phase 5 */
-                        var z13p2 = tmp7p2 - z3p2;
-    
-                        data[dataOff+40] = z13p2 + z2p2; /* phase 6 */
-                        data[dataOff+24] = z13p2 - z2p2;
-                        data[dataOff+ 8] = z11p2 + z4p2;
-                        data[dataOff+56] = z11p2 - z4p2;
-    
-                        dataOff++; /* advance pointer to next column */
-                    }
-    
-                    // Quantize/descale the coefficients
-                    var fDCTQuant;
-                    for (i=0; i<I64; ++i)
-                    {
-                        // Apply the quantization and scaling factor & Round to nearest integer
-                        fDCTQuant = data[i]*fdtbl[i];
-                        outputfDCTQuant[i] = (fDCTQuant > 0.0) ? ((fDCTQuant + 0.5)|0) : ((fDCTQuant - 0.5)|0);
-                        //outputfDCTQuant[i] = fround(fDCTQuant);
-    
-                    }
-                    return outputfDCTQuant;
-                }
-    
-                function writeAPP0()
-                {
-                    writeWord(0xFFE0); // marker
-                    writeWord(16); // length
-                    writeByte(0x4A); // J
-                    writeByte(0x46); // F
-                    writeByte(0x49); // I
-                    writeByte(0x46); // F
-                    writeByte(0); // = "JFIF",'\0'
-                    writeByte(1); // versionhi
-                    writeByte(1); // versionlo
-                    writeByte(0); // xyunits
-                    writeWord(1); // xdensity
-                    writeWord(1); // ydensity
-                    writeByte(0); // thumbnwidth
-                    writeByte(0); // thumbnheight
-                }
-    
-                function writeSOF0(width, height)
-                {
-                    writeWord(0xFFC0); // marker
-                    writeWord(17);   // length, truecolor YUV JPG
-                    writeByte(8);    // precision
-                    writeWord(height);
-                    writeWord(width);
-                    writeByte(3);    // nrofcomponents
-                    writeByte(1);    // IdY
-                    writeByte(0x11); // HVY
-                    writeByte(0);    // QTY
-                    writeByte(2);    // IdU
-                    writeByte(0x11); // HVU
-                    writeByte(1);    // QTU
-                    writeByte(3);    // IdV
-                    writeByte(0x11); // HVV
-                    writeByte(1);    // QTV
-                }
-    
-                function writeDQT()
-                {
-                    writeWord(0xFFDB); // marker
-                    writeWord(132);    // length
-                    writeByte(0);
-                    for (var i=0; i<64; i++) {
-                        writeByte(YTable[i]);
-                    }
-                    writeByte(1);
-                    for (var j=0; j<64; j++) {
-                        writeByte(UVTable[j]);
-                    }
-                }
-    
-                function writeDHT()
-                {
-                    writeWord(0xFFC4); // marker
-                    writeWord(0x01A2); // length
-    
-                    writeByte(0); // HTYDCinfo
-                    for (var i=0; i<16; i++) {
-                        writeByte(std_dc_luminance_nrcodes[i+1]);
-                    }
-                    for (var j=0; j<=11; j++) {
-                        writeByte(std_dc_luminance_values[j]);
-                    }
-    
-                    writeByte(0x10); // HTYACinfo
-                    for (var k=0; k<16; k++) {
-                        writeByte(std_ac_luminance_nrcodes[k+1]);
-                    }
-                    for (var l=0; l<=161; l++) {
-                        writeByte(std_ac_luminance_values[l]);
-                    }
-    
-                    writeByte(1); // HTUDCinfo
-                    for (var m=0; m<16; m++) {
-                        writeByte(std_dc_chrominance_nrcodes[m+1]);
-                    }
-                    for (var n=0; n<=11; n++) {
-                        writeByte(std_dc_chrominance_values[n]);
-                    }
-    
-                    writeByte(0x11); // HTUACinfo
-                    for (var o=0; o<16; o++) {
-                        writeByte(std_ac_chrominance_nrcodes[o+1]);
-                    }
-                    for (var p=0; p<=161; p++) {
-                        writeByte(std_ac_chrominance_values[p]);
-                    }
-                }
-    
-                function writeSOS()
-                {
-                    writeWord(0xFFDA); // marker
-                    writeWord(12); // length
-                    writeByte(3); // nrofcomponents
-                    writeByte(1); // IdY
-                    writeByte(0); // HTY
-                    writeByte(2); // IdU
-                    writeByte(0x11); // HTU
-                    writeByte(3); // IdV
-                    writeByte(0x11); // HTV
-                    writeByte(0); // Ss
-                    writeByte(0x3f); // Se
-                    writeByte(0); // Bf
-                }
-    
-                function processDU(CDU, fdtbl, DC, HTDC, HTAC){
-                    var EOB = HTAC[0x00];
-                    var M16zeroes = HTAC[0xF0];
-                    var pos;
-                    var I16 = 16;
-                    var I63 = 63;
-                    var I64 = 64;
-                    var DU_DCT = fDCTQuant(CDU, fdtbl);
-                    //ZigZag reorder
-                    for (var j=0;j<I64;++j) {
-                        DU[ZigZag[j]]=DU_DCT[j];
-                    }
-                    var Diff = DU[0] - DC; DC = DU[0];
-                    //Encode DC
-                    if (Diff==0) {
-                        writeBits(HTDC[0]); // Diff might be 0
-                    } else {
-                        pos = 32767+Diff;
-                        writeBits(HTDC[category[pos]]);
-                        writeBits(bitcode[pos]);
-                    }
-                    //Encode ACs
-                    var end0pos = 63; // was const... which is crazy
-                    for (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {};
-                    //end0pos = first element in reverse order !=0
-                    if ( end0pos == 0) {
-                        writeBits(EOB);
-                        return DC;
-                    }
-                    var i = 1;
-                    var lng;
-                    while ( i <= end0pos ) {
-                        var startpos = i;
-                        for (; (DU[i]==0) && (i<=end0pos); ++i) {}
-                        var nrzeroes = i-startpos;
-                        if ( nrzeroes >= I16 ) {
-                            lng = nrzeroes>>4;
-                            for (var nrmarker=1; nrmarker <= lng; ++nrmarker)
-                                writeBits(M16zeroes);
-                            nrzeroes = nrzeroes&0xF;
-                        }
-                        pos = 32767+DU[i];
-                        writeBits(HTAC[(nrzeroes<<4)+category[pos]]);
-                        writeBits(bitcode[pos]);
-                        i++;
-                    }
-                    if ( end0pos != I63 ) {
-                        writeBits(EOB);
-                    }
-                    return DC;
-                }
-    
-                function initCharLookupTable(){
-                    var sfcc = String.fromCharCode;
-                    for(var i=0; i < 256; i++){ ///// ACHTUNG // 255
-                        clt[i] = sfcc(i);
-                    }
-                }
-    
-                this.encode = function(image,quality) // image data object
-                {
-                    // var time_start = new Date().getTime();
-    
-                    if(quality) setQuality(quality);
-    
-                    // Initialize bit writer
-                    byteout = new Array();
-                    bytenew=0;
-                    bytepos=7;
-    
-                    // Add JPEG headers
-                    writeWord(0xFFD8); // SOI
-                    writeAPP0();
-                    writeDQT();
-                    writeSOF0(image.width,image.height);
-                    writeDHT();
-                    writeSOS();
-    
-    
-                    // Encode 8x8 macroblocks
-                    var DCY=0;
-                    var DCU=0;
-                    var DCV=0;
-    
-                    bytenew=0;
-                    bytepos=7;
-    
-    
-                    this.encode.displayName = "_encode_";
-    
-                    var imageData = image.data;
-                    var width = image.width;
-                    var height = image.height;
-    
-                    var quadWidth = width*4;
-                    var tripleWidth = width*3;
-    
-                    var x, y = 0;
-                    var r, g, b;
-                    var start,p, col,row,pos;
-                    while(y < height){
-                        x = 0;
-                        while(x < quadWidth){
-                        start = quadWidth * y + x;
-                        p = start;
-                        col = -1;
-                        row = 0;
-    
-                        for(pos=0; pos < 64; pos++){
-                            row = pos >> 3;// /8
-                            col = ( pos & 7 ) * 4; // %8
-                            p = start + ( row * quadWidth ) + col;
-    
-                            if(y+row >= height){ // padding bottom
-                                p-= (quadWidth*(y+1+row-height));
-                            }
-    
-                            if(x+col >= quadWidth){ // padding right
-                                p-= ((x+col) - quadWidth +4)
-                            }
-    
-                            r = imageData[ p++ ];
-                            g = imageData[ p++ ];
-                            b = imageData[ p++ ];
-    
-    
-                            /* // calculate YUV values dynamically
-                            YDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80
-                            UDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));
-                            VDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));
-                            */
-    
-                            // use lookup table (slightly faster)
-                            YDU[pos] = ((RGB_YUV_TABLE[r]             + RGB_YUV_TABLE[(g +  256)>>0] + RGB_YUV_TABLE[(b +  512)>>0]) >> 16)-128;
-                            UDU[pos] = ((RGB_YUV_TABLE[(r +  768)>>0] + RGB_YUV_TABLE[(g + 1024)>>0] + RGB_YUV_TABLE[(b + 1280)>>0]) >> 16)-128;
-                            VDU[pos] = ((RGB_YUV_TABLE[(r + 1280)>>0] + RGB_YUV_TABLE[(g + 1536)>>0] + RGB_YUV_TABLE[(b + 1792)>>0]) >> 16)-128;
-    
-                        }
-    
-                        DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
-                        DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
-                        DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
-                        x+=32;
-                        }
-                        y+=8;
-                    }
-    
-    
-                    ////////////////////////////////////////////////////////////////
-    
-                    // Do the bit alignment of the EOI marker
-                    if ( bytepos >= 0 ) {
-                        var fillbits = [];
-                        fillbits[1] = bytepos+1;
-                        fillbits[0] = (1<<(bytepos+1))-1;
-                        writeBits(fillbits);
-                    }
-    
-                    writeWord(0xFFD9); //EOI
-    
-                    var jpegDataUri = 'data:image/jpeg;base64,' + btoa(byteout.join(''));
-    
-                    byteout = [];
-    
-                    // benchmarking
-                    // var duration = new Date().getTime() - time_start;
-                    // console.log('Encoding time: '+ currentQuality + 'ms');
-                    //
-    
-                    return jpegDataUri
-            }
-    
-            function setQuality(quality){
-                if (quality <= 0) {
-                    quality = 1;
-                }
-                if (quality > 100) {
-                    quality = 100;
-                }
-    
-                if(currentQuality == quality) return // don't recalc if unchanged
-    
-                var sf = 0;
-                if (quality < 50) {
-                    sf = Math.floor(5000 / quality);
-                } else {
-                    sf = Math.floor(200 - quality*2);
-                }
-    
-                initQuantTables(sf);
-                currentQuality = quality;
-                // console.log('Quality set to: '+quality +'%');
-            }
-    
-            function init(){
-                // var time_start = new Date().getTime();
-                if(!quality) quality = 50;
-                // Create tables
-                initCharLookupTable()
-                initHuffmanTbl();
-                initCategoryNumber();
-                initRGBYUVTable();
-    
-                setQuality(quality);
-                // var duration = new Date().getTime() - time_start;
-                // console.log('Initialization '+ duration + 'ms');
-            }
-    
-            init();
-    
-        };
-    
-        JPEGEncoder.encode = function( data, quality ) {
-            var encoder = new JPEGEncoder( quality );
-    
-            return encoder.encode( data );
-        }
-    
-        return JPEGEncoder;
-    });
-    /**
-     * @fileOverview Fix android canvas.toDataUrl bug.
-     */
-    define('runtime/html5/androidpatch',[
-        'runtime/html5/util',
-        'runtime/html5/jpegencoder',
-        'base'
-    ], function( Util, encoder, Base ) {
-        var origin = Util.canvasToDataUrl,
-            supportJpeg;
-    
-        Util.canvasToDataUrl = function( canvas, type, quality ) {
-            var ctx, w, h, fragement, parts;
-    
-            // 闈瀉ndroid鎵嬫満鐩存帴璺宠繃銆�
-            if ( !Base.os.android ) {
-                return origin.apply( null, arguments );
-            }
-    
-            // 妫�娴嬫槸鍚anvas鏀寔jpeg瀵煎嚭锛屾牴鎹暟鎹牸寮忔潵鍒ゆ柇銆�
-            // JPEG 鍓嶄袱浣嶅垎鍒槸锛�255, 216
-            if ( type === 'image/jpeg' && typeof supportJpeg === 'undefined' ) {
-                fragement = origin.apply( null, arguments );
-    
-                parts = fragement.split(',');
-    
-                if ( ~parts[ 0 ].indexOf('base64') ) {
-                    fragement = atob( parts[ 1 ] );
-                } else {
-                    fragement = decodeURIComponent( parts[ 1 ] );
-                }
-    
-                fragement = fragement.substring( 0, 2 );
-    
-                supportJpeg = fragement.charCodeAt( 0 ) === 255 &&
-                        fragement.charCodeAt( 1 ) === 216;
-            }
-    
-            // 鍙湁鍦╝ndroid鐜涓嬫墠淇
-            if ( type === 'image/jpeg' && !supportJpeg ) {
-                w = canvas.width;
-                h = canvas.height;
-                ctx = canvas.getContext('2d');
-    
-                return encoder.encode( ctx.getImageData( 0, 0, w, h ), quality );
-            }
-    
-            return origin.apply( null, arguments );
-        };
-    });
-    /**
-     * @fileOverview Transport
-     * @todo 鏀寔chunked浼犺緭锛屼紭鍔匡細
-     * 鍙互灏嗗ぇ鏂囦欢鍒嗘垚灏忓潡锛屾尐涓紶杈擄紝鍙互鎻愰珮澶ф枃浠舵垚鍔熺巼锛屽綋澶辫触鐨勬椂鍊欙紝涔熷彧闇�瑕侀噸浼犻偅灏忛儴鍒嗭紝
-     * 鑰屼笉闇�瑕侀噸澶村啀浼犱竴娆°�傚彟澶栨柇鐐圭画浼犱篃闇�瑕佺敤chunked鏂瑰紡銆�
-     */
-    define('runtime/html5/transport',[
-        'base',
-        'runtime/html5/runtime'
-    ], function( Base, Html5Runtime ) {
-    
-        var noop = Base.noop,
-            $ = Base.$;
-    
-        return Html5Runtime.register( 'Transport', {
-            init: function() {
-                this._status = 0;
-                this._response = null;
-            },
-    
-            send: function() {
-                var owner = this.owner,
-                    opts = this.options,
-                    xhr = this._initAjax(),
-                    blob = owner._blob,
-                    server = opts.server,
-                    formData, binary, fr;
-    
-                if ( opts.sendAsBinary ) {
-                    server += (/\?/.test( server ) ? '&' : '?') +
-                            $.param( owner._formData );
-    
-                    binary = blob.getSource();
-                } else {
-                    formData = new FormData();
-                    $.each( owner._formData, function( k, v ) {
-                        formData.append( k, v );
-                    });
-    
-                    formData.append( opts.fileVal, blob.getSource(),
-                            opts.filename || owner._formData.name || '' );
-                }
-    
-                if ( opts.withCredentials && 'withCredentials' in xhr ) {
-                    xhr.open( opts.method, server, true );
-                    xhr.withCredentials = true;
-                } else {
-                    xhr.open( opts.method, server );
-                }
-    
-                this._setRequestHeader( xhr, opts.headers );
-    
-                if ( binary ) {
-                    xhr.overrideMimeType('application/octet-stream');
-    
-                    // android鐩存帴鍙戦�乥lob浼氬鑷存湇鍔$鎺ユ敹鍒扮殑鏄┖鏂囦欢銆�
-                    // bug璇︽儏銆�
-                    // https://code.google.com/p/android/issues/detail?id=39882
-                    // 鎵�浠ュ厛鐢╢ileReader璇诲彇鍑烘潵鍐嶉�氳繃arraybuffer鐨勬柟寮忓彂閫併��
-                    if ( Base.os.android ) {
-                        fr = new FileReader();
-    
-                        fr.onload = function() {
-                            xhr.send( this.result );
-                            fr = fr.onload = null;
-                        };
-    
-                        fr.readAsArrayBuffer( binary );
-                    } else {
-                        xhr.send( binary );
-                    }
-                } else {
-                    xhr.send( formData );
-                }
-            },
-    
-            getResponse: function() {
-                return this._response;
-            },
-    
-            getResponseAsJson: function() {
-                return this._parseJson( this._response );
-            },
-    
-            getStatus: function() {
-                return this._status;
-            },
-    
-            abort: function() {
-                var xhr = this._xhr;
-    
-                if ( xhr ) {
-                    xhr.upload.onprogress = noop;
-                    xhr.onreadystatechange = noop;
-                    xhr.abort();
-    
-                    this._xhr = xhr = null;
-                }
-            },
-    
-            destroy: function() {
-                this.abort();
-            },
-    
-            _initAjax: function() {
-                var me = this,
-                    xhr = new XMLHttpRequest(),
-                    opts = this.options;
-    
-                if ( opts.withCredentials && !('withCredentials' in xhr) &&
-                        typeof XDomainRequest !== 'undefined' ) {
-                    xhr = new XDomainRequest();
-                }
-    
-                xhr.upload.onprogress = function( e ) {
-                    var percentage = 0;
-    
-                    if ( e.lengthComputable ) {
-                        percentage = e.loaded / e.total;
-                    }
-    
-                    return me.trigger( 'progress', percentage );
-                };
-    
-                xhr.onreadystatechange = function() {
-    
-                    if ( xhr.readyState !== 4 ) {
-                        return;
-                    }
-    
-                    xhr.upload.onprogress = noop;
-                    xhr.onreadystatechange = noop;
-                    me._xhr = null;
-                    me._status = xhr.status;
-    
-                    if ( xhr.status >= 200 && xhr.status < 300 ) {
-                        me._response = xhr.responseText;
-                        return me.trigger('load');
-                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
-                        me._response = xhr.responseText;
-                        return me.trigger( 'error', 'server' );
-                    }
-    
-    
-                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
-                };
-    
-                me._xhr = xhr;
-                return xhr;
-            },
-    
-            _setRequestHeader: function( xhr, headers ) {
-                $.each( headers, function( key, val ) {
-                    xhr.setRequestHeader( key, val );
-                });
-            },
-    
-            _parseJson: function( str ) {
-                var json;
-    
-                try {
-                    json = JSON.parse( str );
-                } catch ( ex ) {
-                    json = {};
-                }
-    
-                return json;
-            }
-        });
-    });
-    define('webuploader',[
-        'base',
-        'widgets/filepicker',
-        'widgets/image',
-        'widgets/queue',
-        'widgets/runtime',
-        'widgets/upload',
-        'runtime/html5/blob',
-        'runtime/html5/filepicker',
-        'runtime/html5/imagemeta/exif',
-        'runtime/html5/image',
-        'runtime/html5/androidpatch',
-        'runtime/html5/transport'
-    ], function( Base ) {
-        return Base;
-    });
-    return require('webuploader');
-});
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.custom.min.js b/server/public/ueditor/third-party/webuploader/webuploader.custom.min.js
deleted file mode 100644
index cb5540f..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.custom.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* WebUploader 0.1.2 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}},j=b(a,f,e);i(j),"object"==typeof module&&"object"==typeof module.exports?module.exports=j:"function"==typeof define&&define.amd?define([],j):(c=a.WebUploader,a.WebUploader=j,a.WebUploader.noConflict=function(){a.WebUploader=c})}(this,function(a,b,c){return b("dollar-third",[],function(){return a.jQuery||a.Zepto}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.2",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",getDimension:"get-dimension",addButton:"add-btn",getRuntimeType:"get-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return{successNum:a.numOfSuccess,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.parentNode.removeChild(this.__container),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,b.call(d,"Blob"),this.uid=c.uid||this.uid,this.type=c.type||"",this.size=c.size||0,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;b.apply(this,arguments),this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&this.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(this.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),!this.type&&~"jpg,jpeg,png,gif,bmp".indexOf(f)&&(this.type="image/"+("jpg"===f?"jpeg":f)),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString()}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("鎸夐挳鎸囧畾閿欒");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var b=this,c=b.options,e=c.button;e.addClass("webuploader-pick"),b.on("all",function(a){var g;switch(a){case"mouseenter":e.addClass("webuploader-pick-hover");break;case"mouseleave":e.removeClass("webuploader-pick-hover");break;case"change":g=b.exec("getFiles"),b.trigger("select",f.map(g,function(a){return a=new d(b.getRuid(),a),a._refer=c.container,a}),c.container)}}),b.connectRuntime(c,function(){b.refresh(),b.exec("init",c),b.trigger("ready")}),f(a).on("resize",function(){b.refresh()})},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){this.runtime&&(this.exec("destroy"),this.disconnectRuntime())}}),e}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g={},h=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):g},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[];return e.each(h,function(c,d){b.push(new d(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,h,i,j,k=0,l=this._widgets,m=l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],h=f.invoke(b,d),h!==g&&(a.isPromise(h)?o.push(h):n.push(h));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return setTimeout(function(){b.resolve.apply(b,c)},1),b.promise()})[j](e||a.noop)):n[0]}}),b.register=d.register=function(b,c){var f,g={init:"init"};return 1===arguments.length?(c=b,c.responseMap=g):c.responseMap=e.extend(g,b),f=a.inherits(d,c),h.push(f),f},d}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({"add-btn":"addButton",refresh:"refresh",disable:"disable",enable:"enable"},{init:function(a){return this.pickers=[],a.pick&&this.addButton(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addButton:function(b){var e,f,g,h=this,i=h.options,j=i.accept;if(b)return g=a.Deferred(),d.isPlainObject(b)||(b={id:b}),e=d.extend({},b,{accept:d.isPlainObject(j)?[j]:j,swf:i.swf,runtimeOrder:i.runtimeOrder}),f=new c(e),f.once("ready",g.resolve),f.on("select",function(a){h.owner.request("add-file",[a])}),f.init(),this.pickers.push(f),g.promise()},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!0,allowMagnify:!0},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({"make-thumb":"makeThumb","before-send-file":"compressImage"},{makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(){b(!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},compressImage:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||307200;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){b._info=b._info||d.info(),b._meta=b._meta||d.meta(),d.resize(g.width,g.height)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,a.size<c&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destory:function(){delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)})),a.setStatus(f.QUEUED)},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({"sort-files":"sortFiles","add-file":"addFiles","get-file":"getFile","fetch-file":"fetchFile","get-stats":"getStats","get-files":"getFiles","remove-file":"removeFile",retry:"retry",reset:"reset","accept-file":"acceptFile"},{init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||a.size<6||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFiles:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&b.request("start-upload")},getStats:function(){return this.stats},removeFile:function(a){var b=this;a=a.id?a:b.queue.getFile(a),a.setStatus(i.CANCELLED),b.owner.trigger("fileDequeued",a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.queue=new c,this.stats=this.queue.stats}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({"predict-runtime-type":"predictRuntmeType"},{init:function(){if(!this.predictRuntmeType())throw Error("Runtime Error")},predictRuntmeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){for(var c,d=[],e=a.source,f=e.size,g=b?Math.ceil(f/b):1,h=0,i=0;g>i;)c=Math.min(b,f-h),d.push({file:a,start:h,end:b?h+c:f,total:f,chunks:g,chunk:i++}),h+=c;return a.blocks=d.concat(),a.remaning=d.length,{file:a,has:function(){return!!d.length},fetch:function(){return d.shift()}}}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:null}),b.register({"start-upload":"start","stop-upload":"stop","skip-file":"skipFile","is-in-progress":"isInProgress"},{init:function(){var b=this.owner;this.runing=!1,this.pool=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},start:function(){var b=this;f.each(b.request("get-files",h.INVALID),function(){b.request("remove-file",this)}),b.runing||(b.runing=!0,f.each(b.pool,function(a,c){var d=c.file;d.getStatus()===h.INTERRUPT&&(d.setStatus(h.PROGRESS),b._trigged=!1,c.transport&&c.transport.send())}),b._trigged=!1,b.owner.trigger("startUpload"),a.nextTick(b.__tick))},stop:function(a){var b=this;b.runing!==!1&&(b.runing=!1,a&&f.each(b.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),b.owner.trigger("stopUpload"))},isInProgress:function(){return!!this.runing},getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d.getStats().numOfQueue||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_nextBlock:function(){var a,b,c=this,d=c._act,f=c.options;return d&&d.has()&&d.file.getStatus()===h.PROGRESS?(f.prepareNextFile&&!c.pending.length&&c._prepareNextFile(),d.fetch()):c.runing?(!c.pending.length&&c.getStats().numOfQueue&&c._prepareNextFile(),a=c.pending.shift(),b=function(a){return a?(d=e(a,f.chunked?f.chunkSize:0),c._act=d,d.fetch()):null},g(a)?a[a.pipe?"pipe":"then"](b):b(a)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.QUEUED?(b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),c):b._finishFile(c)}),a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d._popBlock(b),a.nextTick(d.__tick))})},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){var c=0,d=0;c=b.percentage=a,b.chunks>1&&(f.each(k.blocks,function(a,b){d+=(b.percentage||0)*(b.end-b.start)}),c=d/k.size),i.trigger("uploadProgress",k,c||0)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})}})}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destory;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destory=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=c(document.createElement("label")),k=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){}})}),b("runtime/html5/util",["base"],function(b){var c=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL,d=b.noop,e=d;return c&&(d=function(){return c.createObjectURL.apply(c,arguments)},e=function(){return c.revokeObjectURL.apply(c,arguments)}),{createObjectURL:d,revokeObjectURL:e,dataURL2Blob:function(a){var b,c,d,e,f,g;for(g=a.split(","),b=~g[0].indexOf("base64")?atob(g[1]):decodeURIComponent(g[1]),d=new ArrayBuffer(b.length),c=new Uint8Array(d),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return f=g[0].split(":")[1].split(";")[0],this.arrayBufferToBlob(d,f)},dataURL2ArrayBuffer:function(a){var b,c,d,e;for(e=a.split(","),b=~e[0].indexOf("base64")?atob(e[1]):decodeURIComponent(e[1]),c=new Uint8Array(b.length),d=0;d<b.length;d++)c[d]=b.charCodeAt(d);return c.buffer},arrayBufferToBlob:function(b,c){var d,e=a.BlobBuilder||a.WebKitBlobBuilder;return e?(d=new e,d.append(b),d.getBlob(c)):new Blob([b],c?{type:c}:{})},canvasToDataUrl:function(a,b,c){return a.toDataURL(b,c/100)},parseMeta:function(a,b){b(!1,{})},updateImageHead:function(a){return a}}}),b("runtime/html5/imagemeta",["runtime/html5/util"],function(a){var b;return b={parsers:{65505:[]},maxMetaDataSize:262144,parse:function(a,b){var c=this,d=new FileReader;d.onload=function(){b(!1,c._parse(this.result)),d=d.onload=d.onerror=null},d.onerror=function(a){b(a.message),d=d.onload=d.onerror=null},a=a.slice(0,c.maxMetaDataSize),d.readAsArrayBuffer(a.getSource())},_parse:function(a,c){if(!(a.byteLength<6)){var d,e,f,g,h=new DataView(a),i=2,j=h.byteLength-4,k=i,l={};if(65496===h.getUint16(0)){for(;j>i&&(d=h.getUint16(i),d>=65504&&65519>=d||65534===d)&&(e=h.getUint16(i+2)+2,!(i+e>h.byteLength));){if(f=b.parsers[d],!c&&f)for(g=0;g<f.length;g+=1)f[g].call(b,h,i,e,l);i+=e,k=i}k>6&&(l.imageHead=a.slice?a.slice(2,k):new Uint8Array(a).subarray(2,k))}return l}},updateImageHead:function(a,b){var c,d,e,f=this._parse(a,!0);return e=2,f.imageHead&&(e=2+f.imageHead.byteLength),d=a.slice?a.slice(e):new Uint8Array(a).subarray(e),c=new Uint8Array(b.byteLength+2+d.byteLength),c[0]=255,c[1]=216,c.set(new Uint8Array(b),2),c.set(new Uint8Array(d),b.byteLength+2),c.buffer}},a.parseMeta=function(){return b.parse.apply(b,arguments)},a.updateImageHead=function(){return b.updateImageHead.apply(b,arguments)},b}),b("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(a,b){var c={};return c.ExifMap=function(){return this},c.ExifMap.prototype.map={Orientation:274},c.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},c.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)
-},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},c.exifTagTypes[7]=c.exifTagTypes[1],c.getExifValue=function(b,d,e,f,g,h){var i,j,k,l,m,n,o=c.exifTagTypes[f];if(!o)return void a.log("Invalid Exif data: Invalid tag type.");if(i=o.size*g,j=i>4?d+b.getUint32(e+8,h):e+8,j+i>b.byteLength)return void a.log("Invalid Exif data: Invalid data offset.");if(1===g)return o.getValue(b,j,h);for(k=[],l=0;g>l;l+=1)k[l]=o.getValue(b,j+l*o.size,h);if(o.ascii){for(m="",l=0;l<k.length&&(n=k[l],"\x00"!==n);l+=1)m+=n;return m}return k},c.parseExifTag=function(a,b,d,e,f){var g=a.getUint16(d,e);f.exif[g]=c.getExifValue(a,b,d,a.getUint16(d+2,e),a.getUint32(d+4,e),e)},c.parseExifTags=function(b,c,d,e,f){var g,h,i;if(d+6>b.byteLength)return void a.log("Invalid Exif data: Invalid directory offset.");if(g=b.getUint16(d,e),h=d+2+12*g,h+4>b.byteLength)return void a.log("Invalid Exif data: Invalid directory size.");for(i=0;g>i;i+=1)this.parseExifTag(b,c,d+2+12*i,e,f);return b.getUint32(h,e)},c.parseExifData=function(b,d,e,f){var g,h,i=d+10;if(1165519206===b.getUint32(d+4)){if(i+8>b.byteLength)return void a.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(d+8))return void a.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(i)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void a.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(i+2,g))return void a.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(i+4,g),f.exif=new c.ExifMap,h=c.parseExifTags(b,i,i+h,g,f)}},b.parsers[65505].push(c.parseExifData),c}),b("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(a,b,c){var d="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return b.register("Image",{modified:!1,init:function(){var a=this,b=new Image;b.onload=function(){a._info={type:a.type,width:this.width,height:this.height},a._metas||"image/jpeg"!==a.type?a.owner.trigger("load"):c.parseMeta(a._blob,function(b,c){a._metas=c,a.owner.trigger("load")})},b.onerror=function(){a.owner.trigger("error")},a._img=b},loadFromBlob:function(a){var b=this,d=b._img;b._blob=a,b.type=a.type,d.src=c.createObjectURL(a.getSource()),b.owner.once("load",function(){c.revokeObjectURL(d.src)})},resize:function(a,b){var c=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,c,a,b),this._blob=null,this.modified=!0,this.owner.trigger("complete")},getAsBlob:function(a){var b,d=this._blob,e=this.options;if(a=a||this.type,this.modified||this.type!==a){if(b=this._canvas,"image/jpeg"===a){if(d=c.canvasToDataUrl(b,"image/jpeg",e.quality),e.preserveHeaders&&this._metas&&this._metas.imageHead)return d=c.dataURL2ArrayBuffer(d),d=c.updateImageHead(d,this._metas.imageHead),d=c.arrayBufferToBlob(d,a)}else d=c.canvasToDataUrl(b,a);d=c.dataURL2Blob(d)}return d},getAsDataUrl:function(a){var b=this.options;return a=a||this.type,"image/jpeg"===a?c.canvasToDataUrl(this._canvas,a,b.quality):this._canvas.toDataURL(a)},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},destroy:function(){var a=this._canvas;this._img.onload=null,a&&(a.getContext("2d").clearRect(0,0,a.width,a.height),a.width=a.height=0,this._canvas=null),this._img.src=d,this._img=this._blob=null},_resize:function(a,b,c,d){var e,f,g,h,i,j=this.options,k=a.width,l=a.height,m=this.getOrientation();~[5,6,7,8].indexOf(m)&&(c^=d,d^=c,c^=d),e=Math[j.crop?"max":"min"](c/k,d/l),j.allowMagnify||(e=Math.min(1,e)),f=k*e,g=l*e,j.crop?(b.width=c,b.height=d):(b.width=f,b.height=g),h=(b.width-f)/2,i=(b.height-g)/2,j.preserveHeaders||this._rotate2Orientaion(b,m),this._renderImageToCanvas(b,a,h,i,f,g)},_rotate2Orientaion:function(a,b){var c=a.width,d=a.height,e=a.getContext("2d");switch(b){case 5:case 6:case 7:case 8:a.width=d,a.height=c}switch(b){case 2:e.translate(c,0),e.scale(-1,1);break;case 3:e.translate(c,d),e.rotate(Math.PI);break;case 4:e.translate(0,d),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-d);break;case 7:e.rotate(.5*Math.PI),e.translate(c,-d),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-c,0)}},_renderImageToCanvas:function(){function b(a,b,c){var d,e,f,g=document.createElement("canvas"),h=g.getContext("2d"),i=0,j=c,k=c;for(g.width=1,g.height=c,h.drawImage(a,0,0),d=h.getImageData(0,0,1,c).data;k>i;)e=d[4*(k-1)+3],0===e?j=k:i=k,k=j+i>>1;return f=k/c,0===f?1:f}function c(a){var b,c,d=a.naturalWidth,e=a.naturalHeight;return d*e>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-d+1,0),0===c.getImageData(0,0,1,1).data[3]):!1}return a.os.ios?a.os.ios>=7?function(a,c,d,e,f,g){var h=c.naturalWidth,i=c.naturalHeight,j=b(c,h,i);return a.getContext("2d").drawImage(c,0,0,h*j,i*j,d,e,f,g)}:function(a,d,e,f,g,h){var i,j,k,l,m,n,o,p=d.naturalWidth,q=d.naturalHeight,r=a.getContext("2d"),s=c(d),t="image/jpeg"===this.type,u=1024,v=0,w=0;for(s&&(p/=2,q/=2),r.save(),i=document.createElement("canvas"),i.width=i.height=u,j=i.getContext("2d"),k=t?b(d,p,q):1,l=Math.ceil(u*g/p),m=Math.ceil(u*h/q/k);q>v;){for(n=0,o=0;p>n;)j.clearRect(0,0,u,u),j.drawImage(d,-n,-v),r.drawImage(i,0,0,u,u,e+o,f+w,l,m),n+=u,o+=l;v+=u,w+=m}r.restore(),i=j=null}:function(a,b,c,d,e,f){a.getContext("2d").drawImage(b,c,d,e,f)}}()})}),b("runtime/html5/jpegencoder",[],function(){function a(a){function b(a){for(var b=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],c=0;64>c;c++){var d=y((b[c]*a+50)/100);1>d?d=1:d>255&&(d=255),z[P[c]]=d}for(var e=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],f=0;64>f;f++){var g=y((e[f]*a+50)/100);1>g?g=1:g>255&&(g=255),A[P[f]]=g}for(var h=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],i=0,j=0;8>j;j++)for(var k=0;8>k;k++)B[i]=1/(z[P[i]]*h[j]*h[k]*8),C[i]=1/(A[P[i]]*h[j]*h[k]*8),i++}function c(a,b){for(var c=0,d=0,e=new Array,f=1;16>=f;f++){for(var g=1;g<=a[f];g++)e[b[d]]=[],e[b[d]][0]=c,e[b[d]][1]=f,d++,c++;c*=2}return e}function d(){t=c(Q,R),u=c(U,V),v=c(S,T),w=c(W,X)}function e(){for(var a=1,b=2,c=1;15>=c;c++){for(var d=a;b>d;d++)E[32767+d]=c,D[32767+d]=[],D[32767+d][1]=c,D[32767+d][0]=d;for(var e=-(b-1);-a>=e;e++)E[32767+e]=c,D[32767+e]=[],D[32767+e][1]=c,D[32767+e][0]=b-1+e;a<<=1,b<<=1}}function f(){for(var a=0;256>a;a++)O[a]=19595*a,O[a+256>>0]=38470*a,O[a+512>>0]=7471*a+32768,O[a+768>>0]=-11059*a,O[a+1024>>0]=-21709*a,O[a+1280>>0]=32768*a+8421375,O[a+1536>>0]=-27439*a,O[a+1792>>0]=-5329*a}function g(a){for(var b=a[0],c=a[1]-1;c>=0;)b&1<<c&&(I|=1<<J),c--,J--,0>J&&(255==I?(h(255),h(0)):h(I),J=7,I=0)}function h(a){H.push(N[a])}function i(a){h(a>>8&255),h(255&a)}function j(a,b){var c,d,e,f,g,h,i,j,k,l=0,m=8,n=64;for(k=0;m>k;++k){c=a[l],d=a[l+1],e=a[l+2],f=a[l+3],g=a[l+4],h=a[l+5],i=a[l+6],j=a[l+7];var o=c+j,p=c-j,q=d+i,r=d-i,s=e+h,t=e-h,u=f+g,v=f-g,w=o+u,x=o-u,y=q+s,z=q-s;a[l]=w+y,a[l+4]=w-y;var A=.707106781*(z+x);a[l+2]=x+A,a[l+6]=x-A,w=v+t,y=t+r,z=r+p;var B=.382683433*(w-z),C=.5411961*w+B,D=1.306562965*z+B,E=.707106781*y,G=p+E,H=p-E;a[l+5]=H+C,a[l+3]=H-C,a[l+1]=G+D,a[l+7]=G-D,l+=8}for(l=0,k=0;m>k;++k){c=a[l],d=a[l+8],e=a[l+16],f=a[l+24],g=a[l+32],h=a[l+40],i=a[l+48],j=a[l+56];var I=c+j,J=c-j,K=d+i,L=d-i,M=e+h,N=e-h,O=f+g,P=f-g,Q=I+O,R=I-O,S=K+M,T=K-M;a[l]=Q+S,a[l+32]=Q-S;var U=.707106781*(T+R);a[l+16]=R+U,a[l+48]=R-U,Q=P+N,S=N+L,T=L+J;var V=.382683433*(Q-T),W=.5411961*Q+V,X=1.306562965*T+V,Y=.707106781*S,Z=J+Y,$=J-Y;a[l+40]=$+W,a[l+24]=$-W,a[l+8]=Z+X,a[l+56]=Z-X,l++}var _;for(k=0;n>k;++k)_=a[k]*b[k],F[k]=_>0?_+.5|0:_-.5|0;return F}function k(){i(65504),i(16),h(74),h(70),h(73),h(70),h(0),h(1),h(1),h(0),i(1),i(1),h(0),h(0)}function l(a,b){i(65472),i(17),h(8),i(b),i(a),h(3),h(1),h(17),h(0),h(2),h(17),h(1),h(3),h(17),h(1)}function m(){i(65499),i(132),h(0);for(var a=0;64>a;a++)h(z[a]);h(1);for(var b=0;64>b;b++)h(A[b])}function n(){i(65476),i(418),h(0);for(var a=0;16>a;a++)h(Q[a+1]);for(var b=0;11>=b;b++)h(R[b]);h(16);for(var c=0;16>c;c++)h(S[c+1]);for(var d=0;161>=d;d++)h(T[d]);h(1);for(var e=0;16>e;e++)h(U[e+1]);for(var f=0;11>=f;f++)h(V[f]);h(17);for(var g=0;16>g;g++)h(W[g+1]);for(var j=0;161>=j;j++)h(X[j])}function o(){i(65498),i(12),h(3),h(1),h(0),h(2),h(17),h(3),h(17),h(0),h(63),h(0)}function p(a,b,c,d,e){for(var f,h=e[0],i=e[240],k=16,l=63,m=64,n=j(a,b),o=0;m>o;++o)G[P[o]]=n[o];var p=G[0]-c;c=G[0],0==p?g(d[0]):(f=32767+p,g(d[E[f]]),g(D[f]));for(var q=63;q>0&&0==G[q];q--);if(0==q)return g(h),c;for(var r,s=1;q>=s;){for(var t=s;0==G[s]&&q>=s;++s);var u=s-t;if(u>=k){r=u>>4;for(var v=1;r>=v;++v)g(i);u=15&u}f=32767+G[s],g(e[(u<<4)+E[f]]),g(D[f]),s++}return q!=l&&g(h),c}function q(){for(var a=String.fromCharCode,b=0;256>b;b++)N[b]=a(b)}function r(a){if(0>=a&&(a=1),a>100&&(a=100),x!=a){var c=0;c=Math.floor(50>a?5e3/a:200-2*a),b(c),x=a}}function s(){a||(a=50),q(),d(),e(),f(),r(a)}var t,u,v,w,x,y=(Math.round,Math.floor),z=new Array(64),A=new Array(64),B=new Array(64),C=new Array(64),D=new Array(65535),E=new Array(65535),F=new Array(64),G=new Array(64),H=[],I=0,J=7,K=new Array(64),L=new Array(64),M=new Array(64),N=new Array(256),O=new Array(2048),P=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],Q=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],R=[0,1,2,3,4,5,6,7,8,9,10,11],S=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],T=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],U=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],V=[0,1,2,3,4,5,6,7,8,9,10,11],W=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],X=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];this.encode=function(a,b){b&&r(b),H=new Array,I=0,J=7,i(65496),k(),m(),l(a.width,a.height),n(),o();var c=0,d=0,e=0;I=0,J=7,this.encode.displayName="_encode_";for(var f,h,j,q,s,x,y,z,A,D=a.data,E=a.width,F=a.height,G=4*E,N=0;F>N;){for(f=0;G>f;){for(s=G*N+f,x=s,y=-1,z=0,A=0;64>A;A++)z=A>>3,y=4*(7&A),x=s+z*G+y,N+z>=F&&(x-=G*(N+1+z-F)),f+y>=G&&(x-=f+y-G+4),h=D[x++],j=D[x++],q=D[x++],K[A]=(O[h]+O[j+256>>0]+O[q+512>>0]>>16)-128,L[A]=(O[h+768>>0]+O[j+1024>>0]+O[q+1280>>0]>>16)-128,M[A]=(O[h+1280>>0]+O[j+1536>>0]+O[q+1792>>0]>>16)-128;c=p(K,B,c,t,v),d=p(L,C,d,u,w),e=p(M,C,e,u,w),f+=32}N+=8}if(J>=0){var P=[];P[1]=J+1,P[0]=(1<<J+1)-1,g(P)}i(65497);var Q="data:image/jpeg;base64,"+btoa(H.join(""));return H=[],Q},s()}return a.encode=function(b,c){var d=new a(c);return d.encode(b)},a}),b("runtime/html5/androidpatch",["runtime/html5/util","runtime/html5/jpegencoder","base"],function(a,b,c){var d,e=a.canvasToDataUrl;a.canvasToDataUrl=function(a,f,g){var h,i,j,k,l;return c.os.android?("image/jpeg"===f&&"undefined"==typeof d&&(k=e.apply(null,arguments),l=k.split(","),k=~l[0].indexOf("base64")?atob(l[1]):decodeURIComponent(l[1]),k=k.substring(0,2),d=255===k.charCodeAt(0)&&216===k.charCodeAt(1)),"image/jpeg"!==f||d?e.apply(null,arguments):(i=a.width,j=a.height,h=a.getContext("2d"),b.encode(h.getImageData(0,0,i,j),g))):e.apply(null,arguments)}}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("webuploader",["base","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","runtime/html5/blob","runtime/html5/filepicker","runtime/html5/imagemeta/exif","runtime/html5/image","runtime/html5/androidpatch","runtime/html5/transport"],function(a){return a}),c("webuploader")});
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.flashonly.js b/server/public/ueditor/third-party/webuploader/webuploader.flashonly.js
deleted file mode 100644
index d64d75b..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.flashonly.js
+++ /dev/null
@@ -1,4176 +0,0 @@
-/*! WebUploader 0.1.2 */
-
-
-/**
- * @fileOverview 璁╁唴閮ㄥ悇涓儴浠剁殑浠g爜鍙互鐢╗amd](https://github.com/amdjs/amdjs-api/wiki/AMD)妯″潡瀹氫箟鏂瑰紡缁勭粐璧锋潵銆�
- *
- * AMD API 鍐呴儴鐨勭畝鍗曚笉瀹屽叏瀹炵幇锛岃蹇界暐銆傚彧鏈夊綋WebUploader琚悎骞舵垚涓�涓枃浠剁殑鏃跺�欐墠浼氬紩鍏ャ��
- */
-(function( root, factory ) {
-    var modules = {},
-
-        // 鍐呴儴require, 绠�鍗曚笉瀹屽叏瀹炵幇銆�
-        // https://github.com/amdjs/amdjs-api/wiki/require
-        _require = function( deps, callback ) {
-            var args, len, i;
-
-            // 濡傛灉deps涓嶆槸鏁扮粍锛屽垯鐩存帴杩斿洖鎸囧畾module
-            if ( typeof deps === 'string' ) {
-                return getModule( deps );
-            } else {
-                args = [];
-                for( len = deps.length, i = 0; i < len; i++ ) {
-                    args.push( getModule( deps[ i ] ) );
-                }
-
-                return callback.apply( null, args );
-            }
-        },
-
-        // 鍐呴儴define锛屾殏鏃朵笉鏀寔涓嶆寚瀹歩d.
-        _define = function( id, deps, factory ) {
-            if ( arguments.length === 2 ) {
-                factory = deps;
-                deps = null;
-            }
-
-            _require( deps || [], function() {
-                setModule( id, factory, arguments );
-            });
-        },
-
-        // 璁剧疆module, 鍏煎CommonJs鍐欐硶銆�
-        setModule = function( id, factory, args ) {
-            var module = {
-                    exports: factory
-                },
-                returned;
-
-            if ( typeof factory === 'function' ) {
-                args.length || (args = [ _require, module.exports, module ]);
-                returned = factory.apply( null, args );
-                returned !== undefined && (module.exports = returned);
-            }
-
-            modules[ id ] = module.exports;
-        },
-
-        // 鏍规嵁id鑾峰彇module
-        getModule = function( id ) {
-            var module = modules[ id ] || root[ id ];
-
-            if ( !module ) {
-                throw new Error( '`' + id + '` is undefined' );
-            }
-
-            return module;
-        },
-
-        // 灏嗘墍鏈塵odules锛屽皢璺緞ids瑁呮崲鎴愬璞°��
-        exportsTo = function( obj ) {
-            var key, host, parts, part, last, ucFirst;
-
-            // make the first character upper case.
-            ucFirst = function( str ) {
-                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
-            };
-
-            for ( key in modules ) {
-                host = obj;
-
-                if ( !modules.hasOwnProperty( key ) ) {
-                    continue;
-                }
-
-                parts = key.split('/');
-                last = ucFirst( parts.pop() );
-
-                while( (part = ucFirst( parts.shift() )) ) {
-                    host[ part ] = host[ part ] || {};
-                    host = host[ part ];
-                }
-
-                host[ last ] = modules[ key ];
-            }
-        },
-
-        exports = factory( root, _define, _require ),
-        origin;
-
-    // exports every module.
-    exportsTo( exports );
-
-    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
-
-        // For CommonJS and CommonJS-like environments where a proper window is present,
-        module.exports = exports;
-    } else if ( typeof define === 'function' && define.amd ) {
-
-        // Allow using this built library as an AMD module
-        // in another project. That other project will only
-        // see this AMD call, not the internal modules in
-        // the closure below.
-        define([], exports );
-    } else {
-
-        // Browser globals case. Just assign the
-        // result to a property on the global.
-        origin = root.WebUploader;
-        root.WebUploader = exports;
-        root.WebUploader.noConflict = function() {
-            root.WebUploader = origin;
-        };
-    }
-})( this, function( window, define, require ) {
-
-
-    /**
-     * @fileOverview jQuery or Zepto
-     */
-    define('dollar-third',[],function() {
-        return window.jQuery || window.Zepto;
-    });
-    /**
-     * @fileOverview Dom 鎿嶄綔鐩稿叧
-     */
-    define('dollar',[
-        'dollar-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 浣跨敤jQuery鐨凱romise
-     */
-    define('promise-third',[
-        'dollar'
-    ], function( $ ) {
-        return {
-            Deferred: $.Deferred,
-            when: $.when,
-    
-            isPromise: function( anything ) {
-                return anything && typeof anything.then === 'function';
-            }
-        };
-    });
-    /**
-     * @fileOverview Promise/A+
-     */
-    define('promise',[
-        'promise-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 鍩虹绫绘柟娉曘��
-     */
-    
-    /**
-     * Web Uploader鍐呴儴绫荤殑璇︾粏璇存槑锛屼互涓嬫彁鍙婄殑鍔熻兘绫伙紝閮藉彲浠ュ湪`WebUploader`杩欎釜鍙橀噺涓闂埌銆�
-     *
-     * As you know, Web Uploader鐨勬瘡涓枃浠堕兘鏄敤杩嘯AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)瑙勮寖涓殑`define`缁勭粐璧锋潵鐨�, 姣忎釜Module閮戒細鏈変釜module id.
-     * 榛樿module id璇ユ枃浠剁殑璺緞锛岃�屾璺緞灏嗕細杞寲鎴愬悕瀛楃┖闂村瓨鏀惧湪WebUploader涓�傚锛�
-     *
-     * * module `base`锛歐ebUploader.Base
-     * * module `file`: WebUploader.File
-     * * module `lib/dnd`: WebUploader.Lib.Dnd
-     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
-     *
-     *
-     * 浠ヤ笅鏂囨。灏嗗彲鑳界渷鐣WebUploader`鍓嶇紑銆�
-     * @module WebUploader
-     * @title WebUploader API鏂囨。
-     */
-    define('base',[
-        'dollar',
-        'promise'
-    ], function( $, promise ) {
-    
-        var noop = function() {},
-            call = Function.call;
-    
-        // http://jsperf.com/uncurrythis
-        // 鍙嶇閲屽寲
-        function uncurryThis( fn ) {
-            return function() {
-                return call.apply( fn, arguments );
-            };
-        }
-    
-        function bindFn( fn, context ) {
-            return function() {
-                return fn.apply( context, arguments );
-            };
-        }
-    
-        function createObject( proto ) {
-            var f;
-    
-            if ( Object.create ) {
-                return Object.create( proto );
-            } else {
-                f = function() {};
-                f.prototype = proto;
-                return new f();
-            }
-        }
-    
-    
-        /**
-         * 鍩虹绫伙紝鎻愪緵涓�浜涚畝鍗曞父鐢ㄧ殑鏂规硶銆�
-         * @class Base
-         */
-        return {
-    
-            /**
-             * @property {String} version 褰撳墠鐗堟湰鍙枫��
-             */
-            version: '0.1.2',
-    
-            /**
-             * @property {jQuery|Zepto} $ 寮曠敤渚濊禆鐨刯Query鎴栬�匷epto瀵硅薄銆�
-             */
-            $: $,
-    
-            Deferred: promise.Deferred,
-    
-            isPromise: promise.isPromise,
-    
-            when: promise.when,
-    
-            /**
-             * @description  绠�鍗曠殑娴忚鍣ㄦ鏌ョ粨鏋溿��
-             *
-             * * `webkit`  webkit鐗堟湰鍙凤紝濡傛灉娴忚鍣ㄤ负闈瀢ebkit鍐呮牳锛屾灞炴�т负`undefined`銆�
-             * * `chrome`  chrome娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓篶hrome锛屾灞炴�т负`undefined`銆�
-             * * `ie`  ie娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪ie锛屾灞炴�т负`undefined`銆�**鏆備笉鏀寔ie10+**
-             * * `firefox`  firefox娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪firefox锛屾灞炴�т负`undefined`銆�
-             * * `safari`  safari娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪safari锛屾灞炴�т负`undefined`銆�
-             * * `opera`  opera娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪opera锛屾灞炴�т负`undefined`銆�
-             *
-             * @property {Object} [browser]
-             */
-            browser: (function( ua ) {
-                var ret = {},
-                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
-                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
-                        ua.match( /CriOS\/([\d.]+)/ ),
-    
-                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
-                        ua.match(/(?:trident)(?:.*rv:([\w.]+))?/i),
-                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
-                    safari = ua.match( /Safari\/([\d.]+)/ ),
-                    opera = ua.match( /OPR\/([\d.]+)/ );
-    
-                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
-                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
-                ie && (ret.ie = parseFloat( ie[ 1 ] ));
-                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
-                safari && (ret.safari = parseFloat( safari[ 1 ] ));
-                opera && (ret.opera = parseFloat( opera[ 1 ] ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * @description  鎿嶄綔绯荤粺妫�鏌ョ粨鏋溿��
-             *
-             * * `android`  濡傛灉鍦╝ndroid娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刟ndroid鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * * `ios` 濡傛灉鍦╥os娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刬os鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * @property {Object} [os]
-             */
-            os: (function( ua ) {
-                var ret = {},
-    
-                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
-                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
-                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
-    
-                // osx && (ret.osx = true);
-                android && (ret.android = parseFloat( android[ 1 ] ));
-                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * 瀹炵幇绫讳笌绫讳箣闂寸殑缁ф壙銆�
-             * @method inherits
-             * @grammar Base.inherits( super ) => child
-             * @grammar Base.inherits( super, protos ) => child
-             * @grammar Base.inherits( super, protos, statics ) => child
-             * @param  {Class} super 鐖剁被
-             * @param  {Object | Function} [protos] 瀛愮被鎴栬�呭璞°�傚鏋滃璞′腑鍖呭惈constructor锛屽瓙绫诲皢鏄敤姝ゅ睘鎬у�笺��
-             * @param  {Function} [protos.constructor] 瀛愮被鏋勯�犲櫒锛屼笉鎸囧畾鐨勮瘽灏嗗垱寤轰釜涓存椂鐨勭洿鎺ユ墽琛岀埗绫绘瀯閫犲櫒鐨勬柟娉曘��
-             * @param  {Object} [statics] 闈欐�佸睘鎬ф垨鏂规硶銆�
-             * @return {Class} 杩斿洖瀛愮被銆�
-             * @example
-             * function Person() {
-             *     console.log( 'Super' );
-             * }
-             * Person.prototype.hello = function() {
-             *     console.log( 'hello' );
-             * };
-             *
-             * var Manager = Base.inherits( Person, {
-             *     world: function() {
-             *         console.log( 'World' );
-             *     }
-             * });
-             *
-             * // 鍥犱负娌℃湁鎸囧畾鏋勯�犲櫒锛岀埗绫荤殑鏋勯�犲櫒灏嗕細鎵ц銆�
-             * var instance = new Manager();    // => Super
-             *
-             * // 缁ф壙瀛愮埗绫荤殑鏂规硶
-             * instance.hello();    // => hello
-             * instance.world();    // => World
-             *
-             * // 瀛愮被鐨刜_super__灞炴�ф寚鍚戠埗绫�
-             * console.log( Manager.__super__ === Person );    // => true
-             */
-            inherits: function( Super, protos, staticProtos ) {
-                var child;
-    
-                if ( typeof protos === 'function' ) {
-                    child = protos;
-                    protos = null;
-                } else if ( protos && protos.hasOwnProperty('constructor') ) {
-                    child = protos.constructor;
-                } else {
-                    child = function() {
-                        return Super.apply( this, arguments );
-                    };
-                }
-    
-                // 澶嶅埗闈欐�佹柟娉�
-                $.extend( true, child, Super, staticProtos || {} );
-    
-                /* jshint camelcase: false */
-    
-                // 璁╁瓙绫荤殑__super__灞炴�ф寚鍚戠埗绫汇��
-                child.__super__ = Super.prototype;
-    
-                // 鏋勫缓鍘熷瀷锛屾坊鍔犲師鍨嬫柟娉曟垨灞炴�с��
-                // 鏆傛椂鐢∣bject.create瀹炵幇銆�
-                child.prototype = createObject( Super.prototype );
-                protos && $.extend( true, child.prototype, protos );
-    
-                return child;
-            },
-    
-            /**
-             * 涓�涓笉鍋氫换浣曚簨鎯呯殑鏂规硶銆傚彲浠ョ敤鏉ヨ祴鍊肩粰榛樿鐨刢allback.
-             * @method noop
-             */
-            noop: noop,
-    
-            /**
-             * 杩斿洖涓�涓柊鐨勬柟娉曪紝姝ゆ柟娉曞皢宸叉寚瀹氱殑`context`鏉ユ墽琛屻��
-             * @grammar Base.bindFn( fn, context ) => Function
-             * @method bindFn
-             * @example
-             * var doSomething = function() {
-             *         console.log( this.name );
-             *     },
-             *     obj = {
-             *         name: 'Object Name'
-             *     },
-             *     aliasFn = Base.bind( doSomething, obj );
-             *
-             *  aliasFn();    // => Object Name
-             *
-             */
-            bindFn: bindFn,
-    
-            /**
-             * 寮曠敤Console.log濡傛灉瀛樺湪鐨勮瘽锛屽惁鍒欏紩鐢ㄤ竴涓猍绌哄嚱鏁發oop](#WebUploader:Base.log)銆�
-             * @grammar Base.log( args... ) => undefined
-             * @method log
-             */
-            log: (function() {
-                if ( window.console ) {
-                    return bindFn( console.log, console );
-                }
-                return noop;
-            })(),
-    
-            nextTick: (function() {
-    
-                return function( cb ) {
-                    setTimeout( cb, 1 );
-                };
-    
-                // @bug 褰撴祻瑙堝櫒涓嶅湪褰撳墠绐楀彛鏃跺氨鍋滀簡銆�
-                // var next = window.requestAnimationFrame ||
-                //     window.webkitRequestAnimationFrame ||
-                //     window.mozRequestAnimationFrame ||
-                //     function( cb ) {
-                //         window.setTimeout( cb, 1000 / 60 );
-                //     };
-    
-                // // fix: Uncaught TypeError: Illegal invocation
-                // return bindFn( next, window );
-            })(),
-    
-            /**
-             * 琚玔uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)鐨勬暟缁剆lice鏂规硶銆�
-             * 灏嗙敤鏉ュ皢闈炴暟缁勫璞¤浆鍖栨垚鏁扮粍瀵硅薄銆�
-             * @grammar Base.slice( target, start[, end] ) => Array
-             * @method slice
-             * @example
-             * function doSomthing() {
-             *     var args = Base.slice( arguments, 1 );
-             *     console.log( args );
-             * }
-             *
-             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
-             */
-            slice: uncurryThis( [].slice ),
-    
-            /**
-             * 鐢熸垚鍞竴鐨処D
-             * @method guid
-             * @grammar Base.guid() => String
-             * @grammar Base.guid( prefx ) => String
-             */
-            guid: (function() {
-                var counter = 0;
-    
-                return function( prefix ) {
-                    var guid = (+new Date()).toString( 32 ),
-                        i = 0;
-    
-                    for ( ; i < 5; i++ ) {
-                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
-                    }
-    
-                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
-                };
-            })(),
-    
-            /**
-             * 鏍煎紡鍖栨枃浠跺ぇ灏�, 杈撳嚭鎴愬甫鍗曚綅鐨勫瓧绗︿覆
-             * @method formatSize
-             * @grammar Base.formatSize( size ) => String
-             * @grammar Base.formatSize( size, pointLength ) => String
-             * @grammar Base.formatSize( size, pointLength, units ) => String
-             * @param {Number} size 鏂囦欢澶у皬
-             * @param {Number} [pointLength=2] 绮剧‘鍒扮殑灏忔暟鐐规暟銆�
-             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 鍗曚綅鏁扮粍銆備粠瀛楄妭锛屽埌鍗冨瓧鑺傦紝涓�鐩村線涓婃寚瀹氥�傚鏋滃崟浣嶆暟缁勯噷闈㈠彧鎸囧畾浜嗗埌浜咾(鍗冨瓧鑺�)锛屽悓鏃舵枃浠跺ぇ灏忓ぇ浜嶮, 姝ゆ柟娉曠殑杈撳嚭灏嗚繕鏄樉绀烘垚澶氬皯K.
-             * @example
-             * console.log( Base.formatSize( 100 ) );    // => 100B
-             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
-             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
-             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
-             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
-             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
-             */
-            formatSize: function( size, pointLength, units ) {
-                var unit;
-    
-                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
-    
-                while ( (unit = units.shift()) && size > 1024 ) {
-                    size = size / 1024;
-                }
-    
-                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
-                        unit;
-            }
-        };
-    });
-    /**
-     * 浜嬩欢澶勭悊绫伙紝鍙互鐙珛浣跨敤锛屼篃鍙互鎵╁睍缁欏璞′娇鐢ㄣ��
-     * @fileOverview Mediator
-     */
-    define('mediator',[
-        'base'
-    ], function( Base ) {
-        var $ = Base.$,
-            slice = [].slice,
-            separator = /\s+/,
-            protos;
-    
-        // 鏍规嵁鏉′欢杩囨护鍑轰簨浠秇andlers.
-        function findHandlers( arr, name, callback, context ) {
-            return $.grep( arr, function( handler ) {
-                return handler &&
-                        (!name || handler.e === name) &&
-                        (!callback || handler.cb === callback ||
-                        handler.cb._cb === callback) &&
-                        (!context || handler.ctx === context);
-            });
-        }
-    
-        function eachEvent( events, callback, iterator ) {
-            // 涓嶆敮鎸佸璞★紝鍙敮鎸佸涓猠vent鐢ㄧ┖鏍奸殧寮�
-            $.each( (events || '').split( separator ), function( _, key ) {
-                iterator( key, callback );
-            });
-        }
-    
-        function triggerHanders( events, args ) {
-            var stoped = false,
-                i = -1,
-                len = events.length,
-                handler;
-    
-            while ( ++i < len ) {
-                handler = events[ i ];
-    
-                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
-                    stoped = true;
-                    break;
-                }
-            }
-    
-            return !stoped;
-        }
-    
-        protos = {
-    
-            /**
-             * 缁戝畾浜嬩欢銆�
-             *
-             * `callback`鏂规硶鍦ㄦ墽琛屾椂锛宎rguments灏嗕細鏉ユ簮浜巘rigger鐨勬椂鍊欐惡甯︾殑鍙傛暟銆傚
-             * ```javascript
-             * var obj = {};
-             *
-             * // 浣垮緱obj鏈変簨浠惰涓�
-             * Mediator.installTo( obj );
-             *
-             * obj.on( 'testa', function( arg1, arg2 ) {
-             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
-             * });
-             *
-             * obj.trigger( 'testa', 'arg1', 'arg2' );
-             * ```
-             *
-             * 濡傛灉`callback`涓紝鏌愪竴涓柟娉昤return false`浜嗭紝鍒欏悗缁殑鍏朵粬`callback`閮戒笉浼氳鎵ц鍒般��
-             * 鍒囦細褰卞搷鍒癭trigger`鏂规硶鐨勮繑鍥炲�硷紝涓篳false`銆�
-             *
-             * `on`杩樺彲浠ョ敤鏉ユ坊鍔犱竴涓壒娈婁簨浠禶all`, 杩欐牱鎵�鏈夌殑浜嬩欢瑙﹀彂閮戒細鍝嶅簲鍒般�傚悓鏃舵绫籤callback`涓殑arguments鏈変竴涓笉鍚屽锛�
-             * 灏辨槸绗竴涓弬鏁颁负`type`锛岃褰曞綋鍓嶆槸浠�涔堜簨浠跺湪瑙﹀彂銆傛绫籤callback`鐨勪紭鍏堢骇姣旇剼浣庯紝浼氬啀姝e父`callback`鎵ц瀹屽悗瑙﹀彂銆�
-             * ```javascript
-             * obj.on( 'all', function( type, arg1, arg2 ) {
-             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
-             * });
-             * ```
-             *
-             * @method on
-             * @grammar on( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚嶏紝鏀寔澶氫釜浜嬩欢鐢ㄧ┖鏍奸殧寮�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             * @class Mediator
-             */
-            on: function( name, callback, context ) {
-                var me = this,
-                    set;
-    
-                if ( !callback ) {
-                    return this;
-                }
-    
-                set = this._events || (this._events = []);
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var handler = { e: name };
-    
-                    handler.cb = callback;
-                    handler.ctx = context;
-                    handler.ctx2 = context || me;
-                    handler.id = set.length;
-    
-                    set.push( handler );
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 缁戝畾浜嬩欢锛屼笖褰揾andler鎵ц瀹屽悗锛岃嚜鍔ㄨВ闄ょ粦瀹氥��
-             * @method once
-             * @grammar once( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            once: function( name, callback, context ) {
-                var me = this;
-    
-                if ( !callback ) {
-                    return me;
-                }
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var once = function() {
-                            me.off( name, once );
-                            return callback.apply( context || me, arguments );
-                        };
-    
-                    once._cb = callback;
-                    me.on( name, once, context );
-                });
-    
-                return me;
-            },
-    
-            /**
-             * 瑙i櫎浜嬩欢缁戝畾
-             * @method off
-             * @grammar off( [name[, callback[, context] ] ] ) => self
-             * @param  {String}   [name]     浜嬩欢鍚�
-             * @param  {Function} [callback] 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            off: function( name, cb, ctx ) {
-                var events = this._events;
-    
-                if ( !events ) {
-                    return this;
-                }
-    
-                if ( !name && !cb && !ctx ) {
-                    this._events = [];
-                    return this;
-                }
-    
-                eachEvent( name, cb, function( name, cb ) {
-                    $.each( findHandlers( events, name, cb, ctx ), function() {
-                        delete events[ this.id ];
-                    });
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 瑙﹀彂浜嬩欢
-             * @method trigger
-             * @grammar trigger( name[, args...] ) => self
-             * @param  {String}   type     浜嬩欢鍚�
-             * @param  {*} [...] 浠绘剰鍙傛暟
-             * @return {Boolean} 濡傛灉handler涓璻eturn false浜嗭紝鍒欒繑鍥瀎alse, 鍚﹀垯杩斿洖true
-             */
-            trigger: function( type ) {
-                var args, events, allEvents;
-    
-                if ( !this._events || !type ) {
-                    return this;
-                }
-    
-                args = slice.call( arguments, 1 );
-                events = findHandlers( this._events, type );
-                allEvents = findHandlers( this._events, 'all' );
-    
-                return triggerHanders( events, args ) &&
-                        triggerHanders( allEvents, arguments );
-            }
-        };
-    
-        /**
-         * 涓粙鑰咃紝瀹冩湰韬槸涓崟渚嬶紝浣嗗彲浠ラ�氳繃[installTo](#WebUploader:Mediator:installTo)鏂规硶锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢琛屼负銆�
-         * 涓昏鐩殑鏄礋璐fā鍧椾笌妯″潡涔嬮棿鐨勫悎浣滐紝闄嶄綆鑰﹀悎搴︺��
-         *
-         * @class Mediator
-         */
-        return $.extend({
-    
-            /**
-             * 鍙互閫氳繃杩欎釜鎺ュ彛锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢鍔熻兘銆�
-             * @method installTo
-             * @param  {Object} obj 闇�瑕佸叿澶囦簨浠惰涓虹殑瀵硅薄銆�
-             * @return {Object} 杩斿洖obj.
-             */
-            installTo: function( obj ) {
-                return $.extend( obj, protos );
-            }
-    
-        }, protos );
-    });
-    /**
-     * @fileOverview Uploader涓婁紶绫�
-     */
-    define('uploader',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$;
-    
-        /**
-         * 涓婁紶鍏ュ彛绫汇��
-         * @class Uploader
-         * @constructor
-         * @grammar new Uploader( opts ) => Uploader
-         * @example
-         * var uploader = WebUploader.Uploader({
-         *     swf: 'path_of_swf/Uploader.swf',
-         *
-         *     // 寮�璧峰垎鐗囦笂浼犮��
-         *     chunked: true
-         * });
-         */
-        function Uploader( opts ) {
-            this.options = $.extend( true, {}, Uploader.options, opts );
-            this._init( this.options );
-        }
-    
-        // default Options
-        // widgets涓湁鐩稿簲鎵╁睍
-        Uploader.options = {};
-        Mediator.installTo( Uploader.prototype );
-    
-        // 鎵归噺娣诲姞绾懡浠ゅ紡鏂规硶銆�
-        $.each({
-            upload: 'start-upload',
-            stop: 'stop-upload',
-            getFile: 'get-file',
-            getFiles: 'get-files',
-            addFile: 'add-file',
-            addFiles: 'add-file',
-            sort: 'sort-files',
-            removeFile: 'remove-file',
-            skipFile: 'skip-file',
-            retry: 'retry',
-            isInProgress: 'is-in-progress',
-            makeThumb: 'make-thumb',
-            getDimension: 'get-dimension',
-            addButton: 'add-btn',
-            getRuntimeType: 'get-runtime-type',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable',
-            reset: 'reset'
-        }, function( fn, command ) {
-            Uploader.prototype[ fn ] = function() {
-                return this.request( command, arguments );
-            };
-        });
-    
-        $.extend( Uploader.prototype, {
-            state: 'pending',
-    
-            _init: function( opts ) {
-                var me = this;
-    
-                me.request( 'init', opts, function() {
-                    me.state = 'ready';
-                    me.trigger('ready');
-                });
-            },
-    
-            /**
-             * 鑾峰彇鎴栬�呰缃甎ploader閰嶇疆椤广��
-             * @method option
-             * @grammar option( key ) => *
-             * @grammar option( key, val ) => self
-             * @example
-             *
-             * // 鍒濆鐘舵�佸浘鐗囦笂浼犲墠涓嶄細鍘嬬缉
-             * var uploader = new WebUploader.Uploader({
-             *     resize: null;
-             * });
-             *
-             * // 淇敼鍚庡浘鐗囦笂浼犲墠锛屽皾璇曞皢鍥剧墖鍘嬬缉鍒�1600 * 1600
-             * uploader.options( 'resize', {
-             *     width: 1600,
-             *     height: 1600
-             * });
-             */
-            option: function( key, val ) {
-                var opts = this.options;
-    
-                // setter
-                if ( arguments.length > 1 ) {
-    
-                    if ( $.isPlainObject( val ) &&
-                            $.isPlainObject( opts[ key ] ) ) {
-                        $.extend( opts[ key ], val );
-                    } else {
-                        opts[ key ] = val;
-                    }
-    
-                } else {    // getter
-                    return key ? opts[ key ] : opts;
-                }
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢缁熻淇℃伅銆傝繑鍥炰竴涓寘鍚竴涓嬩俊鎭殑瀵硅薄銆�
-             * * `successNum` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `uploadFailNum` 涓婁紶澶辫触鐨勬枃浠舵暟
-             * * `cancelNum` 琚垹闄ょ殑鏂囦欢鏁�
-             * * `invalidNum` 鏃犳晥鐨勬枃浠舵暟
-             * * `queueNum` 杩樺湪闃熷垪涓殑鏂囦欢鏁�
-             * @method getStats
-             * @grammar getStats() => Object
-             */
-            getStats: function() {
-                // return this._mgr.getStats.apply( this._mgr, arguments );
-                var stats = this.request('get-stats');
-    
-                return {
-                    successNum: stats.numOfSuccess,
-    
-                    // who care?
-                    // queueFailNum: 0,
-                    cancelNum: stats.numOfCancel,
-                    invalidNum: stats.numOfInvalid,
-                    uploadFailNum: stats.numOfUploadFailed,
-                    queueNum: stats.numOfQueue
-                };
-            },
-    
-            // 闇�瑕侀噸鍐欐鏂规硶鏉ユ潵鏀寔opts.onEvent鍜宨nstance.onEvent鐨勫鐞嗗櫒
-            trigger: function( type/*, args...*/ ) {
-                var args = [].slice.call( arguments, 1 ),
-                    opts = this.options,
-                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
-                        type.substring( 1 );
-    
-                if (
-                        // 璋冪敤閫氳繃on鏂规硶娉ㄥ唽鐨刪andler.
-                        Mediator.trigger.apply( this, arguments ) === false ||
-    
-                        // 璋冪敤opts.onEvent
-                        $.isFunction( opts[ name ] ) &&
-                        opts[ name ].apply( this, args ) === false ||
-    
-                        // 璋冪敤this.onEvent
-                        $.isFunction( this[ name ] ) &&
-                        this[ name ].apply( this, args ) === false ||
-    
-                        // 骞挎挱鎵�鏈塽ploader鐨勪簨浠躲��
-                        Mediator.trigger.apply( Mediator,
-                        [ this, type ].concat( args ) ) === false ) {
-    
-                    return false;
-                }
-    
-                return true;
-            },
-    
-            // widgets/widget.js灏嗚ˉ鍏呮鏂规硶鐨勮缁嗘枃妗c��
-            request: Base.noop
-        });
-    
-        /**
-         * 鍒涘缓Uploader瀹炰緥锛岀瓑鍚屼簬new Uploader( opts );
-         * @method create
-         * @class Base
-         * @static
-         * @grammar Base.create( opts ) => Uploader
-         */
-        Base.create = Uploader.create = function( opts ) {
-            return new Uploader( opts );
-        };
-    
-        // 鏆撮湶Uploader锛屽彲浠ラ�氳繃瀹冩潵鎵╁睍涓氬姟閫昏緫銆�
-        Base.Uploader = Uploader;
-    
-        return Uploader;
-    });
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/runtime',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            factories = {},
-    
-            // 鑾峰彇瀵硅薄鐨勭涓�涓猭ey
-            getFirstKey = function( obj ) {
-                for ( var key in obj ) {
-                    if ( obj.hasOwnProperty( key ) ) {
-                        return key;
-                    }
-                }
-                return null;
-            };
-    
-        // 鎺ュ彛绫汇��
-        function Runtime( options ) {
-            this.options = $.extend({
-                container: document.body
-            }, options );
-            this.uid = Base.guid('rt_');
-        }
-    
-        $.extend( Runtime.prototype, {
-    
-            getContainer: function() {
-                var opts = this.options,
-                    parent, container;
-    
-                if ( this._container ) {
-                    return this._container;
-                }
-    
-                parent = $( opts.container || document.body );
-                container = $( document.createElement('div') );
-    
-                container.attr( 'id', 'rt_' + this.uid );
-                container.css({
-                    position: 'absolute',
-                    top: '0px',
-                    left: '0px',
-                    width: '1px',
-                    height: '1px',
-                    overflow: 'hidden'
-                });
-    
-                parent.append( container );
-                parent.addClass('webuploader-container');
-                this._container = container;
-                return container;
-            },
-    
-            init: Base.noop,
-            exec: Base.noop,
-    
-            destroy: function() {
-                if ( this._container ) {
-                    this._container.parentNode.removeChild( this.__container );
-                }
-    
-                this.off();
-            }
-        });
-    
-        Runtime.orders = 'html5,flash';
-    
-    
-        /**
-         * 娣诲姞Runtime瀹炵幇銆�
-         * @param {String} type    绫诲瀷
-         * @param {Runtime} factory 鍏蜂綋Runtime瀹炵幇銆�
-         */
-        Runtime.addRuntime = function( type, factory ) {
-            factories[ type ] = factory;
-        };
-    
-        Runtime.hasRuntime = function( type ) {
-            return !!(type ? factories[ type ] : getFirstKey( factories ));
-        };
-    
-        Runtime.create = function( opts, orders ) {
-            var type, runtime;
-    
-            orders = orders || Runtime.orders;
-            $.each( orders.split( /\s*,\s*/g ), function() {
-                if ( factories[ this ] ) {
-                    type = this;
-                    return false;
-                }
-            });
-    
-            type = type || getFirstKey( factories );
-    
-            if ( !type ) {
-                throw new Error('Runtime Error');
-            }
-    
-            runtime = new factories[ type ]( opts );
-            return runtime;
-        };
-    
-        Mediator.installTo( Runtime.prototype );
-        return Runtime;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/client',[
-        'base',
-        'mediator',
-        'runtime/runtime'
-    ], function( Base, Mediator, Runtime ) {
-    
-        var cache;
-    
-        cache = (function() {
-            var obj = {};
-    
-            return {
-                add: function( runtime ) {
-                    obj[ runtime.uid ] = runtime;
-                },
-    
-                get: function( ruid, standalone ) {
-                    var i;
-    
-                    if ( ruid ) {
-                        return obj[ ruid ];
-                    }
-    
-                    for ( i in obj ) {
-                        // 鏈変簺绫诲瀷涓嶈兘閲嶇敤锛屾瘮濡俧ilepicker.
-                        if ( standalone && obj[ i ].__standalone ) {
-                            continue;
-                        }
-    
-                        return obj[ i ];
-                    }
-    
-                    return null;
-                },
-    
-                remove: function( runtime ) {
-                    delete obj[ runtime.uid ];
-                }
-            };
-        })();
-    
-        function RuntimeClient( component, standalone ) {
-            var deferred = Base.Deferred(),
-                runtime;
-    
-            this.uid = Base.guid('client_');
-    
-            // 鍏佽runtime娌℃湁鍒濆鍖栦箣鍓嶏紝娉ㄥ唽涓�浜涙柟娉曞湪鍒濆鍖栧悗鎵ц銆�
-            this.runtimeReady = function( cb ) {
-                return deferred.done( cb );
-            };
-    
-            this.connectRuntime = function( opts, cb ) {
-    
-                // already connected.
-                if ( runtime ) {
-                    throw new Error('already connected!');
-                }
-    
-                deferred.done( cb );
-    
-                if ( typeof opts === 'string' && cache.get( opts ) ) {
-                    runtime = cache.get( opts );
-                }
-    
-                // 鍍廸ilePicker鍙兘鐙珛瀛樺湪锛屼笉鑳藉叕鐢ㄣ��
-                runtime = runtime || cache.get( null, standalone );
-    
-                // 闇�瑕佸垱寤�
-                if ( !runtime ) {
-                    runtime = Runtime.create( opts, opts.runtimeOrder );
-                    runtime.__promise = deferred.promise();
-                    runtime.once( 'ready', deferred.resolve );
-                    runtime.init();
-                    cache.add( runtime );
-                    runtime.__client = 1;
-                } else {
-                    // 鏉ヨ嚜cache
-                    Base.$.extend( runtime.options, opts );
-                    runtime.__promise.then( deferred.resolve );
-                    runtime.__client++;
-                }
-    
-                standalone && (runtime.__standalone = standalone);
-                return runtime;
-            };
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.disconnectRuntime = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                runtime.__client--;
-    
-                if ( runtime.__client <= 0 ) {
-                    cache.remove( runtime );
-                    delete runtime.__promise;
-                    runtime.destroy();
-                }
-    
-                runtime = null;
-            };
-    
-            this.exec = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                var args = Base.slice( arguments );
-                component && args.unshift( component );
-    
-                return runtime.exec.apply( this, args );
-            };
-    
-            this.getRuid = function() {
-                return runtime && runtime.uid;
-            };
-    
-            this.destroy = (function( destroy ) {
-                return function() {
-                    destroy && destroy.apply( this, arguments );
-                    this.trigger('destroy');
-                    this.off();
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                };
-            })( this.destroy );
-        }
-    
-        Mediator.installTo( RuntimeClient.prototype );
-        return RuntimeClient;
-    });
-    /**
-     * @fileOverview Blob
-     */
-    define('lib/blob',[
-        'base',
-        'runtime/client'
-    ], function( Base, RuntimeClient ) {
-    
-        function Blob( ruid, source ) {
-            var me = this;
-    
-            me.source = source;
-            me.ruid = ruid;
-    
-            RuntimeClient.call( me, 'Blob' );
-    
-            this.uid = source.uid || this.uid;
-            this.type = source.type || '';
-            this.size = source.size || 0;
-    
-            if ( ruid ) {
-                me.connectRuntime( ruid );
-            }
-        }
-    
-        Base.inherits( RuntimeClient, {
-            constructor: Blob,
-    
-            slice: function( start, end ) {
-                return this.exec( 'slice', start, end );
-            },
-    
-            getSource: function() {
-                return this.source;
-            }
-        });
-    
-        return Blob;
-    });
-    /**
-     * 涓轰簡缁熶竴鍖朏lash鐨凢ile鍜孒TML5鐨凢ile鑰屽瓨鍦ㄣ��
-     * 浠ヨ嚦浜庤璋冪敤Flash閲岄潰鐨凢ile锛屼篃鍙互鍍忚皟鐢℉TML5鐗堟湰鐨凢ile涓�涓嬨��
-     * @fileOverview File
-     */
-    define('lib/file',[
-        'base',
-        'lib/blob'
-    ], function( Base, Blob ) {
-    
-        var uid = 1,
-            rExt = /\.([^.]+)$/;
-    
-        function File( ruid, file ) {
-            var ext;
-    
-            Blob.apply( this, arguments );
-            this.name = file.name || ('untitled' + uid++);
-            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
-    
-            // todo 鏀寔鍏朵粬绫诲瀷鏂囦欢鐨勮浆鎹€��
-    
-            // 濡傛灉鏈塵imetype, 浣嗘槸鏂囦欢鍚嶉噷闈㈡病鏈夋壘鍑哄悗缂�瑙勫緥
-            if ( !ext && this.type ) {
-                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( this.type ) ?
-                        RegExp.$1.toLowerCase() : '';
-                this.name += '.' + ext;
-            }
-    
-            // 濡傛灉娌℃湁鎸囧畾mimetype, 浣嗘槸鐭ラ亾鏂囦欢鍚庣紑銆�
-            if ( !this.type &&  ~'jpg,jpeg,png,gif,bmp'.indexOf( ext ) ) {
-                this.type = 'image/' + (ext === 'jpg' ? 'jpeg' : ext);
-            }
-    
-            this.ext = ext;
-            this.lastModifiedDate = file.lastModifiedDate ||
-                    (new Date()).toLocaleString();
-        }
-    
-        return Base.inherits( Blob, File );
-    });
-    
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/filepicker',[
-        'base',
-        'runtime/client',
-        'lib/file'
-    ], function( Base, RuntimeClent, File ) {
-    
-        var $ = Base.$;
-    
-        function FilePicker( opts ) {
-            opts = this.options = $.extend({}, FilePicker.options, opts );
-    
-            opts.container = $( opts.id );
-    
-            if ( !opts.container.length ) {
-                throw new Error('鎸夐挳鎸囧畾閿欒');
-            }
-    
-            opts.innerHTML = opts.innerHTML || opts.label ||
-                    opts.container.html() || '';
-    
-            opts.button = $( opts.button || document.createElement('div') );
-            opts.button.html( opts.innerHTML );
-            opts.container.html( opts.button );
-    
-            RuntimeClent.call( this, 'FilePicker', true );
-        }
-    
-        FilePicker.options = {
-            button: null,
-            container: null,
-            label: null,
-            innerHTML: null,
-            multiple: true,
-            accept: null,
-            name: 'file'
-        };
-    
-        Base.inherits( RuntimeClent, {
-            constructor: FilePicker,
-    
-            init: function() {
-                var me = this,
-                    opts = me.options,
-                    button = opts.button;
-    
-                button.addClass('webuploader-pick');
-    
-                me.on( 'all', function( type ) {
-                    var files;
-    
-                    switch ( type ) {
-                        case 'mouseenter':
-                            button.addClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'mouseleave':
-                            button.removeClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'change':
-                            files = me.exec('getFiles');
-                            me.trigger( 'select', $.map( files, function( file ) {
-                                file = new File( me.getRuid(), file );
-    
-                                // 璁板綍鏉ユ簮銆�
-                                file._refer = opts.container;
-                                return file;
-                            }), opts.container );
-                            break;
-                    }
-                });
-    
-                me.connectRuntime( opts, function() {
-                    me.refresh();
-                    me.exec( 'init', opts );
-                    me.trigger('ready');
-                });
-    
-                $( window ).on( 'resize', function() {
-                    me.refresh();
-                });
-            },
-    
-            refresh: function() {
-                var shimContainer = this.getRuntime().getContainer(),
-                    button = this.options.button,
-                    width = button.outerWidth ?
-                            button.outerWidth() : button.width(),
-    
-                    height = button.outerHeight ?
-                            button.outerHeight() : button.height(),
-    
-                    pos = button.offset();
-    
-                width && height && shimContainer.css({
-                    bottom: 'auto',
-                    right: 'auto',
-                    width: width + 'px',
-                    height: height + 'px'
-                }).offset( pos );
-            },
-    
-            enable: function() {
-                var btn = this.options.button;
-    
-                btn.removeClass('webuploader-pick-disable');
-                this.refresh();
-            },
-    
-            disable: function() {
-                var btn = this.options.button;
-    
-                this.getRuntime().getContainer().css({
-                    top: '-99999px'
-                });
-    
-                btn.addClass('webuploader-pick-disable');
-            },
-    
-            destroy: function() {
-                if ( this.runtime ) {
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                }
-            }
-        });
-    
-        return FilePicker;
-    });
-    
-    /**
-     * @fileOverview 缁勪欢鍩虹被銆�
-     */
-    define('widgets/widget',[
-        'base',
-        'uploader'
-    ], function( Base, Uploader ) {
-    
-        var $ = Base.$,
-            _init = Uploader.prototype._init,
-            IGNORE = {},
-            widgetClass = [];
-    
-        function isArrayLike( obj ) {
-            if ( !obj ) {
-                return false;
-            }
-    
-            var length = obj.length,
-                type = $.type( obj );
-    
-            if ( obj.nodeType === 1 && length ) {
-                return true;
-            }
-    
-            return type === 'array' || type !== 'function' && type !== 'string' &&
-                    (length === 0 || typeof length === 'number' && length > 0 &&
-                    (length - 1) in obj);
-        }
-    
-        function Widget( uploader ) {
-            this.owner = uploader;
-            this.options = uploader.options;
-        }
-    
-        $.extend( Widget.prototype, {
-    
-            init: Base.noop,
-    
-            // 绫籅ackbone鐨勪簨浠剁洃鍚0鏄庯紝鐩戝惉uploader瀹炰緥涓婄殑浜嬩欢
-            // widget鐩存帴鏃犳硶鐩戝惉浜嬩欢锛屼簨浠跺彧鑳介�氳繃uploader鏉ヤ紶閫�
-            invoke: function( apiName, args ) {
-    
-                /*
-                    {
-                        'make-thumb': 'makeThumb'
-                    }
-                 */
-                var map = this.responseMap;
-    
-                // 濡傛灉鏃燗PI鍝嶅簲澹版槑鍒欏拷鐣�
-                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
-                        !$.isFunction( this[ map[ apiName ] ] ) ) {
-    
-                    return IGNORE;
-                }
-    
-                return this[ map[ apiName ] ].apply( this, args );
-    
-            },
-    
-            /**
-             * 鍙戦�佸懡浠ゃ�傚綋浼犲叆`callback`鎴栬�卄handler`涓繑鍥瀈promise`鏃躲�傝繑鍥炰竴涓綋鎵�鏈塦handler`涓殑promise閮藉畬鎴愬悗瀹屾垚鐨勬柊`promise`銆�
-             * @method request
-             * @grammar request( command, args ) => * | Promise
-             * @grammar request( command, args, callback ) => Promise
-             * @for  Uploader
-             */
-            request: function() {
-                return this.owner.request.apply( this.owner, arguments );
-            }
-        });
-    
-        // 鎵╁睍Uploader.
-        $.extend( Uploader.prototype, {
-    
-            // 瑕嗗啓_init鐢ㄦ潵鍒濆鍖杦idgets
-            _init: function() {
-                var me = this,
-                    widgets = me._widgets = [];
-    
-                $.each( widgetClass, function( _, klass ) {
-                    widgets.push( new klass( me ) );
-                });
-    
-                return _init.apply( me, arguments );
-            },
-    
-            request: function( apiName, args, callback ) {
-                var i = 0,
-                    widgets = this._widgets,
-                    len = widgets.length,
-                    rlts = [],
-                    dfds = [],
-                    widget, rlt, promise, key;
-    
-                args = isArrayLike( args ) ? args : [ args ];
-    
-                for ( ; i < len; i++ ) {
-                    widget = widgets[ i ];
-                    rlt = widget.invoke( apiName, args );
-    
-                    if ( rlt !== IGNORE ) {
-    
-                        // Deferred瀵硅薄
-                        if ( Base.isPromise( rlt ) ) {
-                            dfds.push( rlt );
-                        } else {
-                            rlts.push( rlt );
-                        }
-                    }
-                }
-    
-                // 濡傛灉鏈塩allback锛屽垯鐢ㄥ紓姝ユ柟寮忋��
-                if ( callback || dfds.length ) {
-                    promise = Base.when.apply( Base, dfds );
-                    key = promise.pipe ? 'pipe' : 'then';
-    
-                    // 寰堥噸瑕佷笉鑳藉垹闄ゃ�傚垹闄や簡浼氭寰幆銆�
-                    // 淇濊瘉鎵ц椤哄簭銆傝callback鎬绘槸鍦ㄤ笅涓�涓猼ick涓墽琛屻��
-                    return promise[ key ](function() {
-                                var deferred = Base.Deferred(),
-                                    args = arguments;
-    
-                                setTimeout(function() {
-                                    deferred.resolve.apply( deferred, args );
-                                }, 1 );
-    
-                                return deferred.promise();
-                            })[ key ]( callback || Base.noop );
-                } else {
-                    return rlts[ 0 ];
-                }
-            }
-        });
-    
-        /**
-         * 娣诲姞缁勪欢
-         * @param  {object} widgetProto 缁勪欢鍘熷瀷锛屾瀯閫犲嚱鏁伴�氳繃constructor灞炴�у畾涔�
-         * @param  {object} responseMap API鍚嶇О涓庡嚱鏁板疄鐜扮殑鏄犲皠
-         * @example
-         *     Uploader.register( {
-         *         init: function( options ) {},
-         *         makeThumb: function() {}
-         *     }, {
-         *         'make-thumb': 'makeThumb'
-         *     } );
-         */
-        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
-            var map = { init: 'init' },
-                klass;
-    
-            if ( arguments.length === 1 ) {
-                widgetProto = responseMap;
-                widgetProto.responseMap = map;
-            } else {
-                widgetProto.responseMap = $.extend( map, responseMap );
-            }
-    
-            klass = Base.inherits( Widget, widgetProto );
-            widgetClass.push( klass );
-    
-            return klass;
-        };
-    
-        return Widget;
-    });
-    /**
-     * @fileOverview 鏂囦欢閫夋嫨鐩稿叧
-     */
-    define('widgets/filepicker',[
-        'base',
-        'uploader',
-        'lib/filepicker',
-        'widgets/widget'
-    ], function( Base, Uploader, FilePicker ) {
-        var $ = Base.$;
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Selector | Object} [pick=undefined]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             *
-             * * `id` {Seletor} 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             * * `label` {String} 璇烽噰鐢� `innerHTML` 浠f浛
-             * * `innerHTML` {String} 鎸囧畾鎸夐挳鏂囧瓧銆備笉鎸囧畾鏃朵紭鍏堜粠鎸囧畾鐨勫鍣ㄤ腑鐪嬫槸鍚﹁嚜甯︽枃瀛椼��
-             * * `multiple` {Boolean} 鏄惁寮�璧峰悓鏃堕�夋嫨澶氫釜鏂囦欢鑳藉姏銆�
-             */
-            pick: null,
-    
-            /**
-             * @property {Arroy} [accept=null]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾鎺ュ彈鍝簺绫诲瀷鐨勬枃浠躲�� 鐢变簬鐩墠杩樻湁ext杞琺imeType琛紝鎵�浠ヨ繖閲岄渶瑕佸垎寮�鎸囧畾銆�
-             *
-             * * `title` {String} 鏂囧瓧鎻忚堪
-             * * `extensions` {String} 鍏佽鐨勬枃浠跺悗缂�锛屼笉甯︾偣锛屽涓敤閫楀彿鍒嗗壊銆�
-             * * `mimeTypes` {String} 澶氫釜鐢ㄩ�楀彿鍒嗗壊銆�
-             *
-             * 濡傦細
-             *
-             * ```
-             * {
-             *     title: 'Images',
-             *     extensions: 'gif,jpg,jpeg,bmp,png',
-             *     mimeTypes: 'image/*'
-             * }
-             * ```
-             */
-            accept: null/*{
-                title: 'Images',
-                extensions: 'gif,jpg,jpeg,bmp,png',
-                mimeTypes: 'image/*'
-            }*/
-        });
-    
-        return Uploader.register({
-            'add-btn': 'addButton',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable'
-        }, {
-    
-            init: function( opts ) {
-                this.pickers = [];
-                return opts.pick && this.addButton( opts.pick );
-            },
-    
-            refresh: function() {
-                $.each( this.pickers, function() {
-                    this.refresh();
-                });
-            },
-    
-            /**
-             * @method addButton
-             * @for Uploader
-             * @grammar addButton( pick ) => Promise
-             * @description
-             * 娣诲姞鏂囦欢閫夋嫨鎸夐挳锛屽鏋滀竴涓寜閽笉澶燂紝闇�瑕佽皟鐢ㄦ鏂规硶鏉ユ坊鍔犮�傚弬鏁拌窡[options.pick](#WebUploader:Uploader:options)涓�鑷淬��
-             * @example
-             * uploader.addButton({
-             *     id: '#btnContainer',
-             *     innerHTML: '閫夋嫨鏂囦欢'
-             * });
-             */
-            addButton: function( pick ) {
-                var me = this,
-                    opts = me.options,
-                    accept = opts.accept,
-                    options, picker, deferred;
-    
-                if ( !pick ) {
-                    return;
-                }
-    
-                deferred = Base.Deferred();
-                $.isPlainObject( pick ) || (pick = {
-                    id: pick
-                });
-    
-                options = $.extend({}, pick, {
-                    accept: $.isPlainObject( accept ) ? [ accept ] : accept,
-                    swf: opts.swf,
-                    runtimeOrder: opts.runtimeOrder
-                });
-    
-                picker = new FilePicker( options );
-    
-                picker.once( 'ready', deferred.resolve );
-                picker.on( 'select', function( files ) {
-                    me.owner.request( 'add-file', [ files ]);
-                });
-                picker.init();
-    
-                this.pickers.push( picker );
-    
-                return deferred.promise();
-            },
-    
-            disable: function() {
-                $.each( this.pickers, function() {
-                    this.disable();
-                });
-            },
-    
-            enable: function() {
-                $.each( this.pickers, function() {
-                    this.enable();
-                });
-            }
-        });
-    });
-    /**
-     * @fileOverview Image
-     */
-    define('lib/image',[
-        'base',
-        'runtime/client',
-        'lib/blob'
-    ], function( Base, RuntimeClient, Blob ) {
-        var $ = Base.$;
-    
-        // 鏋勯�犲櫒銆�
-        function Image( opts ) {
-            this.options = $.extend({}, Image.options, opts );
-            RuntimeClient.call( this, 'Image' );
-    
-            this.on( 'load', function() {
-                this._info = this.exec('info');
-                this._meta = this.exec('meta');
-            });
-        }
-    
-        // 榛樿閫夐」銆�
-        Image.options = {
-    
-            // 榛樿鐨勫浘鐗囧鐞嗚川閲�
-            quality: 90,
-    
-            // 鏄惁瑁佸壀
-            crop: false,
-    
-            // 鏄惁淇濈暀澶撮儴淇℃伅
-            preserveHeaders: true,
-    
-            // 鏄惁鍏佽鏀惧ぇ銆�
-            allowMagnify: true
-        };
-    
-        // 缁ф壙RuntimeClient.
-        Base.inherits( RuntimeClient, {
-            constructor: Image,
-    
-            info: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._info = val;
-                    return this;
-                }
-    
-                // getter
-                return this._info;
-            },
-    
-            meta: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._meta = val;
-                    return this;
-                }
-    
-                // getter
-                return this._meta;
-            },
-    
-            loadFromBlob: function( blob ) {
-                var me = this,
-                    ruid = blob.getRuid();
-    
-                this.connectRuntime( ruid, function() {
-                    me.exec( 'init', me.options );
-                    me.exec( 'loadFromBlob', blob );
-                });
-            },
-    
-            resize: function() {
-                var args = Base.slice( arguments );
-                return this.exec.apply( this, [ 'resize' ].concat( args ) );
-            },
-    
-            getAsDataUrl: function( type ) {
-                return this.exec( 'getAsDataUrl', type );
-            },
-    
-            getAsBlob: function( type ) {
-                var blob = this.exec( 'getAsBlob', type );
-    
-                return new Blob( this.getRuid(), blob );
-            }
-        });
-    
-        return Image;
-    });
-    /**
-     * @fileOverview 鍥剧墖鎿嶄綔, 璐熻矗棰勮鍥剧墖鍜屼笂浼犲墠鍘嬬缉鍥剧墖
-     */
-    define('widgets/image',[
-        'base',
-        'uploader',
-        'lib/image',
-        'widgets/widget'
-    ], function( Base, Uploader, Image ) {
-    
-        var $ = Base.$,
-            throttle;
-    
-        // 鏍规嵁瑕佸鐞嗙殑鏂囦欢澶у皬鏉ヨ妭娴侊紝涓�娆′笉鑳藉鐞嗗お澶氾紝浼氬崱銆�
-        throttle = (function( max ) {
-            var occupied = 0,
-                waiting = [],
-                tick = function() {
-                    var item;
-    
-                    while ( waiting.length && occupied < max ) {
-                        item = waiting.shift();
-                        occupied += item[ 0 ];
-                        item[ 1 ]();
-                    }
-                };
-    
-            return function( emiter, size, cb ) {
-                waiting.push([ size, cb ]);
-                emiter.once( 'destroy', function() {
-                    occupied -= size;
-                    setTimeout( tick, 1 );
-                });
-                setTimeout( tick, 1 );
-            };
-        })( 5 * 1024 * 1024 );
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Object} [thumb]
-             * @namespace options
-             * @for Uploader
-             * @description 閰嶇疆鐢熸垚缂╃暐鍥剧殑閫夐」銆�
-             *
-             * 榛樿涓猴細
-             *
-             * ```javascript
-             * {
-             *     width: 110,
-             *     height: 110,
-             *
-             *     // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-             *     quality: 70,
-             *
-             *     // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-             *     allowMagnify: true,
-             *
-             *     // 鏄惁鍏佽瑁佸壀銆�
-             *     crop: true,
-             *
-             *     // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-             *     preserveHeaders: false,
-             *
-             *     // 涓虹┖鐨勮瘽鍒欎繚鐣欏師鏈夊浘鐗囨牸寮忋��
-             *     // 鍚﹀垯寮哄埗杞崲鎴愭寚瀹氱殑绫诲瀷銆�
-             *     type: 'image/jpeg'
-             * }
-             * ```
-             */
-            thumb: {
-                width: 110,
-                height: 110,
-                quality: 70,
-                allowMagnify: true,
-                crop: true,
-                preserveHeaders: false,
-    
-                // 涓虹┖鐨勮瘽鍒欎繚鐣欏師鏈夊浘鐗囨牸寮忋��
-                // 鍚﹀垯寮哄埗杞崲鎴愭寚瀹氱殑绫诲瀷銆�
-                // IE 8涓嬮潰 base64 澶у皬涓嶈兘瓒呰繃 32K 鍚﹀垯棰勮澶辫触锛岃�岄潪 jpeg 缂栫爜鐨勫浘鐗囧緢鍙�
-                // 鑳戒細瓒呰繃 32k, 鎵�浠ヨ繖閲岃缃垚棰勮鐨勬椂鍊欓兘鏄� image/jpeg
-                type: 'image/jpeg'
-            },
-    
-            /**
-             * @property {Object} [compress]
-             * @namespace options
-             * @for Uploader
-             * @description 閰嶇疆鍘嬬缉鐨勫浘鐗囩殑閫夐」銆傚鏋滄閫夐」涓篳false`, 鍒欏浘鐗囧湪涓婁紶鍓嶄笉杩涜鍘嬬缉銆�
-             *
-             * 榛樿涓猴細
-             *
-             * ```javascript
-             * {
-             *     width: 1600,
-             *     height: 1600,
-             *
-             *     // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-             *     quality: 90,
-             *
-             *     // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-             *     allowMagnify: false,
-             *
-             *     // 鏄惁鍏佽瑁佸壀銆�
-             *     crop: false,
-             *
-             *     // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-             *     preserveHeaders: true
-             * }
-             * ```
-             */
-            compress: {
-                width: 1600,
-                height: 1600,
-                quality: 90,
-                allowMagnify: false,
-                crop: false,
-                preserveHeaders: true
-            }
-        });
-    
-        return Uploader.register({
-            'make-thumb': 'makeThumb',
-            'before-send-file': 'compressImage'
-        }, {
-    
-    
-            /**
-             * 鐢熸垚缂╃暐鍥撅紝姝よ繃绋嬩负寮傛锛屾墍浠ラ渶瑕佷紶鍏callback`銆�
-             * 閫氬父鎯呭喌鍦ㄥ浘鐗囧姞鍏ラ槦閲屽悗璋冪敤姝ゆ柟娉曟潵鐢熸垚棰勮鍥句互澧炲己浜や簰鏁堟灉銆�
-             *
-             * `callback`涓彲浠ユ帴鏀跺埌涓や釜鍙傛暟銆�
-             * * 绗竴涓负error锛屽鏋滅敓鎴愮缉鐣ュ浘鏈夐敊璇紝姝rror灏嗕负鐪熴��
-             * * 绗簩涓负ret, 缂╃暐鍥剧殑Data URL鍊笺��
-             *
-             * **娉ㄦ剰**
-             * Date URL鍦↖E6/7涓笉鏀寔锛屾墍浠ヤ笉鐢ㄨ皟鐢ㄦ鏂规硶浜嗭紝鐩存帴鏄剧ず涓�寮犳殏涓嶆敮鎸侀瑙堝浘鐗囧ソ浜嗐��
-             *
-             *
-             * @method makeThumb
-             * @grammar makeThumb( file, callback ) => undefined
-             * @grammar makeThumb( file, callback, width, height ) => undefined
-             * @for Uploader
-             * @example
-             *
-             * uploader.on( 'fileQueued', function( file ) {
-             *     var $li = ...;
-             *
-             *     uploader.makeThumb( file, function( error, ret ) {
-             *         if ( error ) {
-             *             $li.text('棰勮閿欒');
-             *         } else {
-             *             $li.append('<img alt="" src="' + ret + '" />');
-             *         }
-             *     });
-             *
-             * });
-             */
-            makeThumb: function( file, cb, width, height ) {
-                var opts, image;
-    
-                file = this.request( 'get-file', file );
-    
-                // 鍙瑙堝浘鐗囨牸寮忋��
-                if ( !file.type.match( /^image/ ) ) {
-                    cb( true );
-                    return;
-                }
-    
-                opts = $.extend({}, this.options.thumb );
-    
-                // 濡傛灉浼犲叆鐨勬槸object.
-                if ( $.isPlainObject( width ) ) {
-                    opts = $.extend( opts, width );
-                    width = null;
-                }
-    
-                width = width || opts.width;
-                height = height || opts.height;
-    
-                image = new Image( opts );
-    
-                image.once( 'load', function() {
-                    file._info = file._info || image.info();
-                    file._meta = file._meta || image.meta();
-                    image.resize( width, height );
-                });
-    
-                image.once( 'complete', function() {
-                    cb( false, image.getAsDataUrl( opts.type ) );
-                    image.destroy();
-                });
-    
-                image.once( 'error', function() {
-                    cb( true );
-                    image.destroy();
-                });
-    
-                throttle( image, file.source.size, function() {
-                    file._info && image.info( file._info );
-                    file._meta && image.meta( file._meta );
-                    image.loadFromBlob( file.source );
-                });
-            },
-    
-            compressImage: function( file ) {
-                var opts = this.options.compress || this.options.resize,
-                    compressSize = opts && opts.compressSize || 300 * 1024,
-                    image, deferred;
-    
-                file = this.request( 'get-file', file );
-    
-                // 鍙瑙堝浘鐗囨牸寮忋��
-                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
-                        file.size < compressSize ||
-                        file._compressed ) {
-                    return;
-                }
-    
-                opts = $.extend({}, opts );
-                deferred = Base.Deferred();
-    
-                image = new Image( opts );
-    
-                deferred.always(function() {
-                    image.destroy();
-                    image = null;
-                });
-                image.once( 'error', deferred.reject );
-                image.once( 'load', function() {
-                    file._info = file._info || image.info();
-                    file._meta = file._meta || image.meta();
-                    image.resize( opts.width, opts.height );
-                });
-    
-                image.once( 'complete', function() {
-                    var blob, size;
-    
-                    // 绉诲姩绔� UC / qq 娴忚鍣ㄧ殑鏃犲浘妯″紡涓�
-                    // ctx.getImageData 澶勭悊澶у浘鐨勬椂鍊欎細鎶� Exception
-                    // INDEX_SIZE_ERR: DOM Exception 1
-                    try {
-                        blob = image.getAsBlob( opts.type );
-    
-                        size = file.size;
-    
-                        // 濡傛灉鍘嬬缉鍚庯紝姣斿師鏉ヨ繕澶у垯涓嶇敤鍘嬬缉鍚庣殑銆�
-                        if ( blob.size < size ) {
-                            // file.source.destroy && file.source.destroy();
-                            file.source = blob;
-                            file.size = blob.size;
-    
-                            file.trigger( 'resize', blob.size, size );
-                        }
-    
-                        // 鏍囪锛岄伩鍏嶉噸澶嶅帇缂┿��
-                        file._compressed = true;
-                        deferred.resolve();
-                    } catch ( e ) {
-                        // 鍑洪敊浜嗙洿鎺ョ户缁紝璁╁叾涓婁紶鍘熷鍥剧墖
-                        deferred.resolve();
-                    }
-                });
-    
-                file._info && image.info( file._info );
-                file._meta && image.meta( file._meta );
-    
-                image.loadFromBlob( file.source );
-                return deferred.promise();
-            }
-        });
-    });
-    /**
-     * @fileOverview 鏂囦欢灞炴�у皝瑁�
-     */
-    define('file',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            idPrefix = 'WU_FILE_',
-            idSuffix = 0,
-            rExt = /\.([^.]+)$/,
-            statusMap = {};
-    
-        function gid() {
-            return idPrefix + idSuffix++;
-        }
-    
-        /**
-         * 鏂囦欢绫�
-         * @class File
-         * @constructor 鏋勯�犲嚱鏁�
-         * @grammar new File( source ) => File
-         * @param {Lib.File} source [lib.File](#Lib.File)瀹炰緥, 姝ource瀵硅薄鏄甫鏈塕untime淇℃伅鐨勩��
-         */
-        function WUFile( source ) {
-    
-            /**
-             * 鏂囦欢鍚嶏紝鍖呮嫭鎵╁睍鍚嶏紙鍚庣紑锛�
-             * @property name
-             * @type {string}
-             */
-            this.name = source.name || 'Untitled';
-    
-            /**
-             * 鏂囦欢浣撶Н锛堝瓧鑺傦級
-             * @property size
-             * @type {uint}
-             * @default 0
-             */
-            this.size = source.size || 0;
-    
-            /**
-             * 鏂囦欢MIMETYPE绫诲瀷锛屼笌鏂囦欢绫诲瀷鐨勫搴斿叧绯昏鍙傝�僛http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
-             * @property type
-             * @type {string}
-             * @default 'application'
-             */
-            this.type = source.type || 'application';
-    
-            /**
-             * 鏂囦欢鏈�鍚庝慨鏀规棩鏈�
-             * @property lastModifiedDate
-             * @type {int}
-             * @default 褰撳墠鏃堕棿鎴�
-             */
-            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
-    
-            /**
-             * 鏂囦欢ID锛屾瘡涓璞″叿鏈夊敮涓�ID锛屼笌鏂囦欢鍚嶆棤鍏�
-             * @property id
-             * @type {string}
-             */
-            this.id = gid();
-    
-            /**
-             * 鏂囦欢鎵╁睍鍚嶏紝閫氳繃鏂囦欢鍚嶈幏鍙栵紝渚嬪test.png鐨勬墿灞曞悕涓簆ng
-             * @property ext
-             * @type {string}
-             */
-            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
-    
-    
-            /**
-             * 鐘舵�佹枃瀛楄鏄庛�傚湪涓嶅悓鐨剆tatus璇涓嬫湁涓嶅悓鐨勭敤閫斻��
-             * @property statusText
-             * @type {string}
-             */
-            this.statusText = '';
-    
-            // 瀛樺偍鏂囦欢鐘舵�侊紝闃叉閫氳繃灞炴�х洿鎺ヤ慨鏀�
-            statusMap[ this.id ] = WUFile.Status.INITED;
-    
-            this.source = source;
-            this.loaded = 0;
-    
-            this.on( 'error', function( msg ) {
-                this.setStatus( WUFile.Status.ERROR, msg );
-            });
-        }
-    
-        $.extend( WUFile.prototype, {
-    
-            /**
-             * 璁剧疆鐘舵�侊紝鐘舵�佸彉鍖栨椂浼氳Е鍙慲change`浜嬩欢銆�
-             * @method setStatus
-             * @grammar setStatus( status[, statusText] );
-             * @param {File.Status|String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @param {String} [statusText=''] 鐘舵�佽鏄庯紝甯稿湪error鏃朵娇鐢紝鐢╤ttp, abort,server绛夋潵鏍囪鏄敱浜庝粈涔堝師鍥犲鑷存枃浠堕敊璇��
-             */
-            setStatus: function( status, text ) {
-    
-                var prevStatus = statusMap[ this.id ];
-    
-                typeof text !== 'undefined' && (this.statusText = text);
-    
-                if ( status !== prevStatus ) {
-                    statusMap[ this.id ] = status;
-                    /**
-                     * 鏂囦欢鐘舵�佸彉鍖�
-                     * @event statuschange
-                     */
-                    this.trigger( 'statuschange', status, prevStatus );
-                }
-    
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鐘舵��
-             * @return {File.Status}
-             * @example
-                     鏂囦欢鐘舵�佸叿浣撳寘鎷互涓嬪嚑绉嶇被鍨嬶細
-                     {
-                         // 鍒濆鍖�
-                        INITED:     0,
-                        // 宸插叆闃熷垪
-                        QUEUED:     1,
-                        // 姝e湪涓婁紶
-                        PROGRESS:     2,
-                        // 涓婁紶鍑洪敊
-                        ERROR:         3,
-                        // 涓婁紶鎴愬姛
-                        COMPLETE:     4,
-                        // 涓婁紶鍙栨秷
-                        CANCELLED:     5
-                    }
-             */
-            getStatus: function() {
-                return statusMap[ this.id ];
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鍘熷淇℃伅銆�
-             * @return {*}
-             */
-            getSource: function() {
-                return this.source;
-            },
-    
-            destory: function() {
-                delete statusMap[ this.id ];
-            }
-        });
-    
-        Mediator.installTo( WUFile.prototype );
-    
-        /**
-         * 鏂囦欢鐘舵�佸�硷紝鍏蜂綋鍖呮嫭浠ヤ笅鍑犵绫诲瀷锛�
-         * * `inited` 鍒濆鐘舵��
-         * * `queued` 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-         * * `progress` 涓婁紶涓�
-         * * `complete` 涓婁紶瀹屾垚銆�
-         * * `error` 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-         * * `interrupt` 涓婁紶涓柇锛屽彲缁紶銆�
-         * * `invalid` 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆備細鑷姩浠庨槦鍒椾腑绉婚櫎銆�
-         * * `cancelled` 鏂囦欢琚Щ闄ゃ��
-         * @property {Object} Status
-         * @namespace File
-         * @class File
-         * @static
-         */
-        WUFile.Status = {
-            INITED:     'inited',    // 鍒濆鐘舵��
-            QUEUED:     'queued',    // 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-            PROGRESS:   'progress',    // 涓婁紶涓�
-            ERROR:      'error',    // 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-            COMPLETE:   'complete',    // 涓婁紶瀹屾垚銆�
-            CANCELLED:  'cancelled',    // 涓婁紶鍙栨秷銆�
-            INTERRUPT:  'interrupt',    // 涓婁紶涓柇锛屽彲缁紶銆�
-            INVALID:    'invalid'    // 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆�
-        };
-    
-        return WUFile;
-    });
-    
-    /**
-     * @fileOverview 鏂囦欢闃熷垪
-     */
-    define('queue',[
-        'base',
-        'mediator',
-        'file'
-    ], function( Base, Mediator, WUFile ) {
-    
-        var $ = Base.$,
-            STATUS = WUFile.Status;
-    
-        /**
-         * 鏂囦欢闃熷垪, 鐢ㄦ潵瀛樺偍鍚勪釜鐘舵�佷腑鐨勬枃浠躲��
-         * @class Queue
-         * @extends Mediator
-         */
-        function Queue() {
-    
-            /**
-             * 缁熻鏂囦欢鏁般��
-             * * `numOfQueue` 闃熷垪涓殑鏂囦欢鏁般��
-             * * `numOfSuccess` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `numOfCancel` 琚Щ闄ょ殑鏂囦欢鏁�
-             * * `numOfProgress` 姝e湪涓婁紶涓殑鏂囦欢鏁�
-             * * `numOfUploadFailed` 涓婁紶閿欒鐨勬枃浠舵暟銆�
-             * * `numOfInvalid` 鏃犳晥鐨勬枃浠舵暟銆�
-             * @property {Object} stats
-             */
-            this.stats = {
-                numOfQueue: 0,
-                numOfSuccess: 0,
-                numOfCancel: 0,
-                numOfProgress: 0,
-                numOfUploadFailed: 0,
-                numOfInvalid: 0
-            };
-    
-            // 涓婁紶闃熷垪锛屼粎鍖呮嫭绛夊緟涓婁紶鐨勬枃浠�
-            this._queue = [];
-    
-            // 瀛樺偍鎵�鏈夋枃浠�
-            this._map = {};
-        }
-    
-        $.extend( Queue.prototype, {
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀熬閮�
-             *
-             * @method append
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            append: function( file ) {
-                this._queue.push( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀ご閮�
-             *
-             * @method prepend
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            prepend: function( file ) {
-                this._queue.unshift( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢瀵硅薄
-             *
-             * @method getFile
-             * @param  {String} fileId   鏂囦欢ID
-             * @return {File}
-             */
-            getFile: function( fileId ) {
-                if ( typeof fileId !== 'string' ) {
-                    return fileId;
-                }
-                return this._map[ fileId ];
-            },
-    
-            /**
-             * 浠庨槦鍒椾腑鍙栧嚭涓�涓寚瀹氱姸鎬佺殑鏂囦欢銆�
-             * @grammar fetch( status ) => File
-             * @method fetch
-             * @param {String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @return {File} [File](#WebUploader:File)
-             */
-            fetch: function( status ) {
-                var len = this._queue.length,
-                    i, file;
-    
-                status = status || STATUS.QUEUED;
-    
-                for ( i = 0; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( status === file.getStatus() ) {
-                        return file;
-                    }
-                }
-    
-                return null;
-            },
-    
-            /**
-             * 瀵归槦鍒楄繘琛屾帓搴忥紝鑳藉鎺у埗鏂囦欢涓婁紶椤哄簭銆�
-             * @grammar sort( fn ) => undefined
-             * @method sort
-             * @param {Function} fn 鎺掑簭鏂规硶
-             */
-            sort: function( fn ) {
-                if ( typeof fn === 'function' ) {
-                    this._queue.sort( fn );
-                }
-            },
-    
-            /**
-             * 鑾峰彇鎸囧畾绫诲瀷鐨勬枃浠跺垪琛�, 鍒楄〃涓瘡涓�涓垚鍛樹负[File](#WebUploader:File)瀵硅薄銆�
-             * @grammar getFiles( [status1[, status2 ...]] ) => Array
-             * @method getFiles
-             * @param {String} [status] [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             */
-            getFiles: function() {
-                var sts = [].slice.call( arguments, 0 ),
-                    ret = [],
-                    i = 0,
-                    len = this._queue.length,
-                    file;
-    
-                for ( ; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
-                        continue;
-                    }
-    
-                    ret.push( file );
-                }
-    
-                return ret;
-            },
-    
-            _fileAdded: function( file ) {
-                var me = this,
-                    existing = this._map[ file.id ];
-    
-                if ( !existing ) {
-                    this._map[ file.id ] = file;
-    
-                    file.on( 'statuschange', function( cur, pre ) {
-                        me._onFileStatusChange( cur, pre );
-                    });
-                }
-    
-                file.setStatus( STATUS.QUEUED );
-            },
-    
-            _onFileStatusChange: function( curStatus, preStatus ) {
-                var stats = this.stats;
-    
-                switch ( preStatus ) {
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress--;
-                        break;
-    
-                    case STATUS.QUEUED:
-                        stats.numOfQueue --;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed--;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid--;
-                        break;
-                }
-    
-                switch ( curStatus ) {
-                    case STATUS.QUEUED:
-                        stats.numOfQueue++;
-                        break;
-    
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress++;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed++;
-                        break;
-    
-                    case STATUS.COMPLETE:
-                        stats.numOfSuccess++;
-                        break;
-    
-                    case STATUS.CANCELLED:
-                        stats.numOfCancel++;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid++;
-                        break;
-                }
-            }
-    
-        });
-    
-        Mediator.installTo( Queue.prototype );
-    
-        return Queue;
-    });
-    /**
-     * @fileOverview 闃熷垪
-     */
-    define('widgets/queue',[
-        'base',
-        'uploader',
-        'queue',
-        'file',
-        'lib/file',
-        'runtime/client',
-        'widgets/widget'
-    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
-    
-        var $ = Base.$,
-            rExt = /\.\w+$/,
-            Status = WUFile.Status;
-    
-        return Uploader.register({
-            'sort-files': 'sortFiles',
-            'add-file': 'addFiles',
-            'get-file': 'getFile',
-            'fetch-file': 'fetchFile',
-            'get-stats': 'getStats',
-            'get-files': 'getFiles',
-            'remove-file': 'removeFile',
-            'retry': 'retry',
-            'reset': 'reset',
-            'accept-file': 'acceptFile'
-        }, {
-    
-            init: function( opts ) {
-                var me = this,
-                    deferred, len, i, item, arr, accept, runtime;
-    
-                if ( $.isPlainObject( opts.accept ) ) {
-                    opts.accept = [ opts.accept ];
-                }
-    
-                // accept涓殑涓敓鎴愬尮閰嶆鍒欍��
-                if ( opts.accept ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        item = opts.accept[ i ].extensions;
-                        item && arr.push( item );
-                    }
-    
-                    if ( arr.length ) {
-                        accept = '\\.' + arr.join(',')
-                                .replace( /,/g, '$|\\.' )
-                                .replace( /\*/g, '.*' ) + '$';
-                    }
-    
-                    me.accept = new RegExp( accept, 'i' );
-                }
-    
-                me.queue = new Queue();
-                me.stats = me.queue.stats;
-    
-                // 濡傛灉褰撳墠涓嶆槸html5杩愯鏃讹紝閭e氨绠椾簡銆�
-                // 涓嶆墽琛屽悗缁搷浣�
-                if ( this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                // 鍒涘缓涓�涓� html5 杩愯鏃剁殑 placeholder
-                // 浠ヨ嚦浜庡閮ㄦ坊鍔犲師鐢� File 瀵硅薄鐨勬椂鍊欒兘姝g‘鍖呰9涓�涓嬩緵 webuploader 浣跨敤銆�
-                deferred = Base.Deferred();
-                runtime = new RuntimeClient('Placeholder');
-                runtime.connectRuntime({
-                    runtimeOrder: 'html5'
-                }, function() {
-                    me._ruid = runtime.getRuid();
-                    deferred.resolve();
-                });
-                return deferred.promise();
-            },
-    
-    
-            // 涓轰簡鏀寔澶栭儴鐩存帴娣诲姞涓�涓師鐢烣ile瀵硅薄銆�
-            _wrapFile: function( file ) {
-                if ( !(file instanceof WUFile) ) {
-    
-                    if ( !(file instanceof File) ) {
-                        if ( !this._ruid ) {
-                            throw new Error('Can\'t add external files.');
-                        }
-                        file = new File( this._ruid, file );
-                    }
-    
-                    file = new WUFile( file );
-                }
-    
-                return file;
-            },
-    
-            // 鍒ゆ柇鏂囦欢鏄惁鍙互琚姞鍏ラ槦鍒�
-            acceptFile: function( file ) {
-                var invalid = !file || file.size < 6 || this.accept &&
-    
-                        // 濡傛灉鍚嶅瓧涓湁鍚庣紑锛屾墠鍋氬悗缂�鐧藉悕鍗曞鐞嗐��
-                        rExt.exec( file.name ) && !this.accept.test( file.name );
-    
-                return !invalid;
-            },
-    
-    
-            /**
-             * @event beforeFileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪涔嬪墠瑙﹀彂锛屾浜嬩欢鐨刪andler杩斿洖鍊间负`false`锛屽垯姝ゆ枃浠朵笉浼氳娣诲姞杩涘叆闃熷垪銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event fileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            _addFile: function( file ) {
-                var me = this;
-    
-                file = me._wrapFile( file );
-    
-                // 涓嶈繃绫诲瀷鍒ゆ柇鍏佽涓嶅厑璁革紝鍏堟淳閫� `beforeFileQueued`
-                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
-                    return;
-                }
-    
-                // 绫诲瀷涓嶅尮閰嶏紝鍒欐淳閫侀敊璇簨浠讹紝骞惰繑鍥炪��
-                if ( !me.acceptFile( file ) ) {
-                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
-                    return;
-                }
-    
-                me.queue.append( file );
-                me.owner.trigger( 'fileQueued', file );
-                return file;
-            },
-    
-            getFile: function( fileId ) {
-                return this.queue.getFile( fileId );
-            },
-    
-            /**
-             * @event filesQueued
-             * @param {File} files 鏁扮粍锛屽唴瀹逛负鍘熷File(lib/File锛夊璞°��
-             * @description 褰撲竴鎵规枃浠舵坊鍔犺繘闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @method addFiles
-             * @grammar addFiles( file ) => undefined
-             * @grammar addFiles( [file1, file2 ...] ) => undefined
-             * @param {Array of File or File} [files] Files 瀵硅薄 鏁扮粍
-             * @description 娣诲姞鏂囦欢鍒伴槦鍒�
-             * @for  Uploader
-             */
-            addFiles: function( files ) {
-                var me = this;
-    
-                if ( !files.length ) {
-                    files = [ files ];
-                }
-    
-                files = $.map( files, function( file ) {
-                    return me._addFile( file );
-                });
-    
-                me.owner.trigger( 'filesQueued', files );
-    
-                if ( me.options.auto ) {
-                    me.request('start-upload');
-                }
-            },
-    
-            getStats: function() {
-                return this.stats;
-            },
-    
-            /**
-             * @event fileDequeued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰绉婚櫎闃熷垪鍚庤Е鍙戙��
-             * @for  Uploader
-             */
-    
-            /**
-             * @method removeFile
-             * @grammar removeFile( file ) => undefined
-             * @grammar removeFile( id ) => undefined
-             * @param {File|id} file File瀵硅薄鎴栬繖File瀵硅薄鐨刬d
-             * @description 绉婚櫎鏌愪竴鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             *
-             * $li.on('click', '.remove-this', function() {
-             *     uploader.removeFile( file );
-             * })
-             */
-            removeFile: function( file ) {
-                var me = this;
-    
-                file = file.id ? file : me.queue.getFile( file );
-    
-                file.setStatus( Status.CANCELLED );
-                me.owner.trigger( 'fileDequeued', file );
-            },
-    
-            /**
-             * @method getFiles
-             * @grammar getFiles() => Array
-             * @grammar getFiles( status1, status2, status... ) => Array
-             * @description 杩斿洖鎸囧畾鐘舵�佺殑鏂囦欢闆嗗悎锛屼笉浼犲弬鏁板皢杩斿洖鎵�鏈夌姸鎬佺殑鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             * console.log( uploader.getFiles() );    // => all files
-             * console.log( uploader.getFiles('error') )    // => all error files.
-             */
-            getFiles: function() {
-                return this.queue.getFiles.apply( this.queue, arguments );
-            },
-    
-            fetchFile: function() {
-                return this.queue.fetch.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method retry
-             * @grammar retry() => undefined
-             * @grammar retry( file ) => undefined
-             * @description 閲嶈瘯涓婁紶锛岄噸璇曟寚瀹氭枃浠讹紝鎴栬�呬粠鍑洪敊鐨勬枃浠跺紑濮嬮噸鏂颁笂浼犮��
-             * @for  Uploader
-             * @example
-             * function retry() {
-             *     uploader.retry();
-             * }
-             */
-            retry: function( file, noForceStart ) {
-                var me = this,
-                    files, i, len;
-    
-                if ( file ) {
-                    file = file.id ? file : me.queue.getFile( file );
-                    file.setStatus( Status.QUEUED );
-                    noForceStart || me.request('start-upload');
-                    return;
-                }
-    
-                files = me.queue.getFiles( Status.ERROR );
-                i = 0;
-                len = files.length;
-    
-                for ( ; i < len; i++ ) {
-                    file = files[ i ];
-                    file.setStatus( Status.QUEUED );
-                }
-    
-                me.request('start-upload');
-            },
-    
-            /**
-             * @method sort
-             * @grammar sort( fn ) => undefined
-             * @description 鎺掑簭闃熷垪涓殑鏂囦欢锛屽湪涓婁紶涔嬪墠璋冩暣鍙互鎺у埗涓婁紶椤哄簭銆�
-             * @for  Uploader
-             */
-            sortFiles: function() {
-                return this.queue.sort.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method reset
-             * @grammar reset() => undefined
-             * @description 閲嶇疆uploader銆傜洰鍓嶅彧閲嶇疆浜嗛槦鍒椼��
-             * @for  Uploader
-             * @example
-             * uploader.reset();
-             */
-            reset: function() {
-                this.queue = new Queue();
-                this.stats = this.queue.stats;
-            }
-        });
-    
-    });
-    /**
-     * @fileOverview 娣诲姞鑾峰彇Runtime鐩稿叧淇℃伅鐨勬柟娉曘��
-     */
-    define('widgets/runtime',[
-        'uploader',
-        'runtime/runtime',
-        'widgets/widget'
-    ], function( Uploader, Runtime ) {
-    
-        Uploader.support = function() {
-            return Runtime.hasRuntime.apply( Runtime, arguments );
-        };
-    
-        return Uploader.register({
-            'predict-runtime-type': 'predictRuntmeType'
-        }, {
-    
-            init: function() {
-                if ( !this.predictRuntmeType() ) {
-                    throw Error('Runtime Error');
-                }
-            },
-    
-            /**
-             * 棰勬祴Uploader灏嗛噰鐢ㄥ摢涓猔Runtime`
-             * @grammar predictRuntmeType() => String
-             * @method predictRuntmeType
-             * @for  Uploader
-             */
-            predictRuntmeType: function() {
-                var orders = this.options.runtimeOrder || Runtime.orders,
-                    type = this.type,
-                    i, len;
-    
-                if ( !type ) {
-                    orders = orders.split( /\s*,\s*/g );
-    
-                    for ( i = 0, len = orders.length; i < len; i++ ) {
-                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
-                            this.type = type = orders[ i ];
-                            break;
-                        }
-                    }
-                }
-    
-                return type;
-            }
-        });
-    });
-    /**
-     * @fileOverview Transport
-     */
-    define('lib/transport',[
-        'base',
-        'runtime/client',
-        'mediator'
-    ], function( Base, RuntimeClient, Mediator ) {
-    
-        var $ = Base.$;
-    
-        function Transport( opts ) {
-            var me = this;
-    
-            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
-            RuntimeClient.call( this, 'Transport' );
-    
-            this._blob = null;
-            this._formData = opts.formData || {};
-            this._headers = opts.headers || {};
-    
-            this.on( 'progress', this._timeout );
-            this.on( 'load error', function() {
-                me.trigger( 'progress', 1 );
-                clearTimeout( me._timer );
-            });
-        }
-    
-        Transport.options = {
-            server: '',
-            method: 'POST',
-    
-            // 璺ㄥ煙鏃讹紝鏄惁鍏佽鎼哄甫cookie, 鍙湁html5 runtime鎵嶆湁鏁�
-            withCredentials: false,
-            fileVal: 'file',
-            timeout: 2 * 60 * 1000,    // 2鍒嗛挓
-            formData: {},
-            headers: {},
-            sendAsBinary: false
-        };
-    
-        $.extend( Transport.prototype, {
-    
-            // 娣诲姞Blob, 鍙兘娣诲姞涓�娆★紝鏈�鍚庝竴娆℃湁鏁堛��
-            appendBlob: function( key, blob, filename ) {
-                var me = this,
-                    opts = me.options;
-    
-                if ( me.getRuid() ) {
-                    me.disconnectRuntime();
-                }
-    
-                // 杩炴帴鍒癰lob褰掑睘鐨勫悓涓�涓猺untime.
-                me.connectRuntime( blob.ruid, function() {
-                    me.exec('init');
-                });
-    
-                me._blob = blob;
-                opts.fileVal = key || opts.fileVal;
-                opts.filename = filename || opts.filename;
-            },
-    
-            // 娣诲姞鍏朵粬瀛楁
-            append: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._formData, key );
-                } else {
-                    this._formData[ key ] = value;
-                }
-            },
-    
-            setRequestHeader: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._headers, key );
-                } else {
-                    this._headers[ key ] = value;
-                }
-            },
-    
-            send: function( method ) {
-                this.exec( 'send', method );
-                this._timeout();
-            },
-    
-            abort: function() {
-                clearTimeout( this._timer );
-                return this.exec('abort');
-            },
-    
-            destroy: function() {
-                this.trigger('destroy');
-                this.off();
-                this.exec('destroy');
-                this.disconnectRuntime();
-            },
-    
-            getResponse: function() {
-                return this.exec('getResponse');
-            },
-    
-            getResponseAsJson: function() {
-                return this.exec('getResponseAsJson');
-            },
-    
-            getStatus: function() {
-                return this.exec('getStatus');
-            },
-    
-            _timeout: function() {
-                var me = this,
-                    duration = me.options.timeout;
-    
-                if ( !duration ) {
-                    return;
-                }
-    
-                clearTimeout( me._timer );
-                me._timer = setTimeout(function() {
-                    me.abort();
-                    me.trigger( 'error', 'timeout' );
-                }, duration );
-            }
-    
-        });
-    
-        // 璁㏕ransport鍏峰浜嬩欢鍔熻兘銆�
-        Mediator.installTo( Transport.prototype );
-    
-        return Transport;
-    });
-    /**
-     * @fileOverview 璐熻矗鏂囦欢涓婁紶鐩稿叧銆�
-     */
-    define('widgets/upload',[
-        'base',
-        'uploader',
-        'file',
-        'lib/transport',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile, Transport ) {
-    
-        var $ = Base.$,
-            isPromise = Base.isPromise,
-            Status = WUFile.Status;
-    
-        // 娣诲姞榛樿閰嶇疆椤�
-        $.extend( Uploader.options, {
-    
-    
-            /**
-             * @property {Boolean} [prepareNextFile=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁鍏佽鍦ㄦ枃浠朵紶杈撴椂鎻愬墠鎶婁笅涓�涓枃浠跺噯澶囧ソ銆�
-             * 瀵逛簬涓�涓枃浠剁殑鍑嗗宸ヤ綔姣旇緝鑰楁椂锛屾瘮濡傚浘鐗囧帇缂╋紝md5搴忓垪鍖栥��
-             * 濡傛灉鑳芥彁鍓嶅湪褰撳墠鏂囦欢浼犺緭鏈熷鐞嗭紝鍙互鑺傜渷鎬讳綋鑰楁椂銆�
-             */
-            prepareNextFile: false,
-    
-            /**
-             * @property {Boolean} [chunked=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁瑕佸垎鐗囧鐞嗗ぇ鏂囦欢涓婁紶銆�
-             */
-            chunked: false,
-    
-            /**
-             * @property {Boolean} [chunkSize=5242880]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉瑕佸垎鐗囷紝鍒嗗澶т竴鐗囷紵 榛樿澶у皬涓�5M.
-             */
-            chunkSize: 5 * 1024 * 1024,
-    
-            /**
-             * @property {Boolean} [chunkRetry=2]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉鏌愪釜鍒嗙墖鐢变簬缃戠粶闂鍑洪敊锛屽厑璁歌嚜鍔ㄩ噸浼犲灏戞锛�
-             */
-            chunkRetry: 2,
-    
-            /**
-             * @property {Boolean} [threads=3]
-             * @namespace options
-             * @for Uploader
-             * @description 涓婁紶骞跺彂鏁般�傚厑璁稿悓鏃舵渶澶т笂浼犺繘绋嬫暟銆�
-             */
-            threads: 3,
-    
-    
-            /**
-             * @property {Object} [formData]
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶璇锋眰鐨勫弬鏁拌〃锛屾瘡娆″彂閫侀兘浼氬彂閫佹瀵硅薄涓殑鍙傛暟銆�
-             */
-            formData: null
-    
-            /**
-             * @property {Object} [fileVal='file']
-             * @namespace options
-             * @for Uploader
-             * @description 璁剧疆鏂囦欢涓婁紶鍩熺殑name銆�
-             */
-    
-            /**
-             * @property {Object} [method='POST']
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶鏂瑰紡锛宍POST`鎴栬�卄GET`銆�
-             */
-    
-            /**
-             * @property {Object} [sendAsBinary=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁宸蹭簩杩涘埗鐨勬祦鐨勬柟寮忓彂閫佹枃浠讹紝杩欐牱鏁翠釜涓婁紶鍐呭`php://input`閮戒负鏂囦欢鍐呭锛�
-             * 鍏朵粬鍙傛暟鍦�$_GET鏁扮粍涓��
-             */
-        });
-    
-        // 璐熻矗灏嗘枃浠跺垏鐗囥��
-        function CuteFile( file, chunkSize ) {
-            var pending = [],
-                blob = file.source,
-                total = blob.size,
-                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
-                start = 0,
-                index = 0,
-                len;
-    
-            while ( index < chunks ) {
-                len = Math.min( chunkSize, total - start );
-    
-                pending.push({
-                    file: file,
-                    start: start,
-                    end: chunkSize ? (start + len) : total,
-                    total: total,
-                    chunks: chunks,
-                    chunk: index++
-                });
-                start += len;
-            }
-    
-            file.blocks = pending.concat();
-            file.remaning = pending.length;
-    
-            return {
-                file: file,
-    
-                has: function() {
-                    return !!pending.length;
-                },
-    
-                fetch: function() {
-                    return pending.shift();
-                }
-            };
-        }
-    
-        Uploader.register({
-            'start-upload': 'start',
-            'stop-upload': 'stop',
-            'skip-file': 'skipFile',
-            'is-in-progress': 'isInProgress'
-        }, {
-    
-            init: function() {
-                var owner = this.owner;
-    
-                this.runing = false;
-    
-                // 璁板綍褰撳墠姝e湪浼犵殑鏁版嵁锛岃窡threads鐩稿叧
-                this.pool = [];
-    
-                // 缂撳瓨鍗冲皢涓婁紶鐨勬枃浠躲��
-                this.pending = [];
-    
-                // 璺熻釜杩樻湁澶氬皯鍒嗙墖娌℃湁瀹屾垚涓婁紶銆�
-                this.remaning = 0;
-                this.__tick = Base.bindFn( this._tick, this );
-    
-                owner.on( 'uploadComplete', function( file ) {
-                    // 鎶婂叾浠栧潡鍙栨秷浜嗐��
-                    file.blocks && $.each( file.blocks, function( _, v ) {
-                        v.transport && (v.transport.abort(), v.transport.destroy());
-                        delete v.transport;
-                    });
-    
-                    delete file.blocks;
-                    delete file.remaning;
-                });
-            },
-    
-            /**
-             * @event startUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 寮�濮嬩笂浼犮�傛鏂规硶鍙互浠庡垵濮嬬姸鎬佽皟鐢ㄥ紑濮嬩笂浼犳祦绋嬶紝涔熷彲浠ヤ粠鏆傚仠鐘舵�佽皟鐢紝缁х画涓婁紶娴佺▼銆�
-             * @grammar upload() => undefined
-             * @method upload
-             * @for  Uploader
-             */
-            start: function() {
-                var me = this;
-    
-                // 绉诲嚭invalid鐨勬枃浠�
-                $.each( me.request( 'get-files', Status.INVALID ), function() {
-                    me.request( 'remove-file', this );
-                });
-    
-                if ( me.runing ) {
-                    return;
-                }
-    
-                me.runing = true;
-    
-                // 濡傛灉鏈夋殏鍋滅殑锛屽垯缁紶
-                $.each( me.pool, function( _, v ) {
-                    var file = v.file;
-    
-                    if ( file.getStatus() === Status.INTERRUPT ) {
-                        file.setStatus( Status.PROGRESS );
-                        me._trigged = false;
-                        v.transport && v.transport.send();
-                    }
-                });
-    
-                me._trigged = false;
-                me.owner.trigger('startUpload');
-                Base.nextTick( me.__tick );
-            },
-    
-            /**
-             * @event stopUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫殏鍋滄椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 鏆傚仠涓婁紶銆傜涓�涓弬鏁颁负鏄惁涓柇涓婁紶褰撳墠姝e湪涓婁紶鐨勬枃浠躲��
-             * @grammar stop() => undefined
-             * @grammar stop( true ) => undefined
-             * @method stop
-             * @for  Uploader
-             */
-            stop: function( interrupt ) {
-                var me = this;
-    
-                if ( me.runing === false ) {
-                    return;
-                }
-    
-                me.runing = false;
-    
-                interrupt && $.each( me.pool, function( _, v ) {
-                    v.transport && v.transport.abort();
-                    v.file.setStatus( Status.INTERRUPT );
-                });
-    
-                me.owner.trigger('stopUpload');
-            },
-    
-            /**
-             * 鍒ゆ柇`Uplaode`r鏄惁姝e湪涓婁紶涓��
-             * @grammar isInProgress() => Boolean
-             * @method isInProgress
-             * @for  Uploader
-             */
-            isInProgress: function() {
-                return !!this.runing;
-            },
-    
-            getStats: function() {
-                return this.request('get-stats');
-            },
-    
-            /**
-             * 鎺夎繃涓�涓枃浠朵笂浼狅紝鐩存帴鏍囪鎸囧畾鏂囦欢涓哄凡涓婁紶鐘舵�併��
-             * @grammar skipFile( file ) => undefined
-             * @method skipFile
-             * @for  Uploader
-             */
-            skipFile: function( file, status ) {
-                file = this.request( 'get-file', file );
-    
-                file.setStatus( status || Status.COMPLETE );
-                file.skipped = true;
-    
-                // 濡傛灉姝e湪涓婁紶銆�
-                file.blocks && $.each( file.blocks, function( _, v ) {
-                    var _tr = v.transport;
-    
-                    if ( _tr ) {
-                        _tr.abort();
-                        _tr.destroy();
-                        delete v.transport;
-                    }
-                });
-    
-                this.owner.trigger( 'uploadSkip', file );
-            },
-    
-            /**
-             * @event uploadFinished
-             * @description 褰撴墍鏈夋枃浠朵笂浼犵粨鏉熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-            _tick: function() {
-                var me = this,
-                    opts = me.options,
-                    fn, val;
-    
-                // 涓婁竴涓猵romise杩樻病鏈夌粨鏉燂紝鍒欑瓑寰呭畬鎴愬悗鍐嶆墽琛屻��
-                if ( me._promise ) {
-                    return me._promise.always( me.__tick );
-                }
-    
-                // 杩樻湁浣嶇疆锛屼笖杩樻湁鏂囦欢瑕佸鐞嗙殑璇濄��
-                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
-                    me._trigged = false;
-    
-                    fn = function( val ) {
-                        me._promise = null;
-    
-                        // 鏈夊彲鑳芥槸reject杩囨潵鐨勶紝鎵�浠ヨ妫�娴媣al鐨勭被鍨嬨��
-                        val && val.file && me._startSend( val );
-                        Base.nextTick( me.__tick );
-                    };
-    
-                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
-    
-                // 娌℃湁瑕佷笂浼犵殑浜嗭紝涓旀病鏈夋鍦ㄤ紶杈撶殑浜嗐��
-                } else if ( !me.remaning && !me.getStats().numOfQueue ) {
-                    me.runing = false;
-    
-                    me._trigged || Base.nextTick(function() {
-                        me.owner.trigger('uploadFinished');
-                    });
-                    me._trigged = true;
-                }
-            },
-    
-            _nextBlock: function() {
-                var me = this,
-                    act = me._act,
-                    opts = me.options,
-                    next, done;
-    
-                // 濡傛灉褰撳墠鏂囦欢杩樻湁娌℃湁闇�瑕佷紶杈撶殑锛屽垯鐩存帴杩斿洖鍓╀笅鐨勩��
-                if ( act && act.has() &&
-                        act.file.getStatus() === Status.PROGRESS ) {
-    
-                    // 鏄惁鎻愬墠鍑嗗涓嬩竴涓枃浠�
-                    if ( opts.prepareNextFile && !me.pending.length ) {
-                        me._prepareNextFile();
-                    }
-    
-                    return act.fetch();
-    
-                // 鍚﹀垯锛屽鏋滄鍦ㄨ繍琛岋紝鍒欏噯澶囦笅涓�涓枃浠讹紝骞剁瓑寰呭畬鎴愬悗杩斿洖涓嬩釜鍒嗙墖銆�
-                } else if ( me.runing ) {
-    
-                    // 濡傛灉缂撳瓨涓湁锛屽垯鐩存帴鍦ㄧ紦瀛樹腑鍙栵紝娌℃湁鍒欏幓queue涓彇銆�
-                    if ( !me.pending.length && me.getStats().numOfQueue ) {
-                        me._prepareNextFile();
-                    }
-    
-                    next = me.pending.shift();
-                    done = function( file ) {
-                        if ( !file ) {
-                            return null;
-                        }
-    
-                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
-                        me._act = act;
-                        return act.fetch();
-                    };
-    
-                    // 鏂囦欢鍙兘杩樺湪prepare涓紝涔熸湁鍙兘宸茬粡瀹屽叏鍑嗗濂戒簡銆�
-                    return isPromise( next ) ?
-                            next[ next.pipe ? 'pipe' : 'then']( done ) :
-                            done( next );
-                }
-            },
-    
-    
-            /**
-             * @event uploadStart
-             * @param {File} file File瀵硅薄
-             * @description 鏌愪釜鏂囦欢寮�濮嬩笂浼犲墠瑙﹀彂锛屼竴涓枃浠跺彧浼氳Е鍙戜竴娆°��
-             * @for  Uploader
-             */
-            _prepareNextFile: function() {
-                var me = this,
-                    file = me.request('fetch-file'),
-                    pending = me.pending,
-                    promise;
-    
-                if ( file ) {
-                    promise = me.request( 'before-send-file', file, function() {
-    
-                        // 鏈夊彲鑳芥枃浠惰skip鎺変簡銆傛枃浠惰skip鎺夊悗锛岀姸鎬佸潙瀹氫笉鏄疩ueued.
-                        if ( file.getStatus() === Status.QUEUED ) {
-                            me.owner.trigger( 'uploadStart', file );
-                            file.setStatus( Status.PROGRESS );
-                            return file;
-                        }
-    
-                        return me._finishFile( file );
-                    });
-    
-                    // 濡傛灉杩樺湪pending涓紝鍒欐浛鎹㈡垚鏂囦欢鏈韩銆�
-                    promise.done(function() {
-                        var idx = $.inArray( promise, pending );
-    
-                        ~idx && pending.splice( idx, 1, file );
-                    });
-    
-                    // befeore-send-file鐨勯挬瀛愬氨鏈夐敊璇彂鐢熴��
-                    promise.fail(function( reason ) {
-                        file.setStatus( Status.ERROR, reason );
-                        me.owner.trigger( 'uploadError', file, reason );
-                        me.owner.trigger( 'uploadComplete', file );
-                    });
-    
-                    pending.push( promise );
-                }
-            },
-    
-            // 璁╁嚭浣嶇疆浜嗭紝鍙互璁╁叾浠栧垎鐗囧紑濮嬩笂浼�
-            _popBlock: function( block ) {
-                var idx = $.inArray( block, this.pool );
-    
-                this.pool.splice( idx, 1 );
-                block.file.remaning--;
-                this.remaning--;
-            },
-    
-            // 寮�濮嬩笂浼狅紝鍙互琚帀杩囥�傚鏋減romise琚玶eject浜嗭紝鍒欒〃绀鸿烦杩囨鍒嗙墖銆�
-            _startSend: function( block ) {
-                var me = this,
-                    file = block.file,
-                    promise;
-    
-                me.pool.push( block );
-                me.remaning++;
-    
-                // 濡傛灉娌℃湁鍒嗙墖锛屽垯鐩存帴浣跨敤鍘熷鐨勩��
-                // 涓嶄細涓㈠けcontent-type淇℃伅銆�
-                block.blob = block.chunks === 1 ? file.source :
-                        file.source.slice( block.start, block.end );
-    
-                // hook, 姣忎釜鍒嗙墖鍙戦�佷箣鍓嶅彲鑳借鍋氫簺寮傛鐨勪簨鎯呫��
-                promise = me.request( 'before-send', block, function() {
-    
-                    // 鏈夊彲鑳芥枃浠跺凡缁忎笂浼犲嚭閿欎簡锛屾墍浠ヤ笉闇�瑕佸啀浼犺緭浜嗐��
-                    if ( file.getStatus() === Status.PROGRESS ) {
-                        me._doSend( block );
-                    } else {
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-    
-                // 濡傛灉涓篺ail浜嗭紝鍒欒烦杩囨鍒嗙墖銆�
-                promise.fail(function() {
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file ).always(function() {
-                            block.percentage = 1;
-                            me._popBlock( block );
-                            me.owner.trigger( 'uploadComplete', file );
-                            Base.nextTick( me.__tick );
-                        });
-                    } else {
-                        block.percentage = 1;
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-            },
-    
-    
-            /**
-             * @event uploadBeforeSend
-             * @param {Object} object
-             * @param {Object} data 榛樿鐨勪笂浼犲弬鏁帮紝鍙互鎵╁睍姝ゅ璞℃潵鎺у埗涓婁紶鍙傛暟銆�
-             * @description 褰撴煇涓枃浠剁殑鍒嗗潡鍦ㄥ彂閫佸墠瑙﹀彂锛屼富瑕佺敤鏉ヨ闂槸鍚﹁娣诲姞闄勫甫鍙傛暟锛屽ぇ鏂囦欢鍦ㄥ紑璧峰垎鐗囦笂浼犵殑鍓嶆彁涓嬫浜嬩欢鍙兘浼氳Е鍙戝娆°��
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadAccept
-             * @param {Object} object
-             * @param {Object} ret 鏈嶅姟绔殑杩斿洖鏁版嵁锛宩son鏍煎紡锛屽鏋滄湇鍔$涓嶆槸json鏍煎紡锛屼粠ret._raw涓彇鏁版嵁锛岃嚜琛岃В鏋愩��
-             * @description 褰撴煇涓枃浠朵笂浼犲埌鏈嶅姟绔搷搴斿悗锛屼細娲鹃�佹浜嬩欢鏉ヨ闂湇鍔$鍝嶅簲鏄惁鏈夋晥銆傚鏋滄浜嬩欢handler杩斿洖鍊间负`false`, 鍒欐鏂囦欢灏嗘淳閫乣server`绫诲瀷鐨刞uploadError`浜嬩欢銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadProgress
-             * @param {File} file File瀵硅薄
-             * @param {Number} percentage 涓婁紶杩涘害
-             * @description 涓婁紶杩囩▼涓Е鍙戯紝鎼哄甫涓婁紶杩涘害銆�
-             * @for  Uploader
-             */
-    
-    
-            /**
-             * @event uploadError
-             * @param {File} file File瀵硅薄
-             * @param {String} reason 鍑洪敊鐨刢ode
-             * @description 褰撴枃浠朵笂浼犲嚭閿欐椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadSuccess
-             * @param {File} file File瀵硅薄
-             * @param {Object} response 鏈嶅姟绔繑鍥炵殑鏁版嵁
-             * @description 褰撴枃浠朵笂浼犳垚鍔熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadComplete
-             * @param {File} [file] File瀵硅薄
-             * @description 涓嶇鎴愬姛鎴栬�呭け璐ワ紝鏂囦欢涓婁紶瀹屾垚鏃惰Е鍙戙��
-             * @for  Uploader
-             */
-    
-            // 鍋氫笂浼犳搷浣溿��
-            _doSend: function( block ) {
-                var me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    file = block.file,
-                    tr = new Transport( opts ),
-                    data = $.extend({}, opts.formData ),
-                    headers = $.extend({}, opts.headers ),
-                    requestAccept, ret;
-    
-                block.transport = tr;
-    
-                tr.on( 'destroy', function() {
-                    delete block.transport;
-                    me._popBlock( block );
-                    Base.nextTick( me.__tick );
-                });
-    
-                // 骞挎挱涓婁紶杩涘害銆備互鏂囦欢涓哄崟浣嶃��
-                tr.on( 'progress', function( percentage ) {
-                    var totalPercent = 0,
-                        uploaded = 0;
-    
-                    // 鍙兘娌℃湁abort鎺夛紝progress杩樻槸鎵ц杩涙潵浜嗐��
-                    // if ( !file.blocks ) {
-                    //     return;
-                    // }
-    
-                    totalPercent = block.percentage = percentage;
-    
-                    if ( block.chunks > 1 ) {    // 璁$畻鏂囦欢鐨勬暣浣撻�熷害銆�
-                        $.each( file.blocks, function( _, v ) {
-                            uploaded += (v.percentage || 0) * (v.end - v.start);
-                        });
-    
-                        totalPercent = uploaded / file.size;
-                    }
-    
-                    owner.trigger( 'uploadProgress', file, totalPercent || 0 );
-                });
-    
-                // 鐢ㄦ潵璇㈤棶锛屾槸鍚﹁繑鍥炵殑缁撴灉鏄湁閿欒鐨勩��
-                requestAccept = function( reject ) {
-                    var fn;
-    
-                    ret = tr.getResponseAsJson() || {};
-                    ret._raw = tr.getResponse();
-                    fn = function( value ) {
-                        reject = value;
-                    };
-    
-                    // 鏈嶅姟绔搷搴斾簡锛屼笉浠h〃鎴愬姛浜嗭紝璇㈤棶鏄惁鍝嶅簲姝g‘銆�
-                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
-                        reject = reject || 'server';
-                    }
-    
-                    return reject;
-                };
-    
-                // 灏濊瘯閲嶈瘯锛岀劧鍚庡箍鎾枃浠朵笂浼犲嚭閿欍��
-                tr.on( 'error', function( type, flag ) {
-                    block.retried = block.retried || 0;
-    
-                    // 鑷姩閲嶈瘯
-                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
-                            block.retried < opts.chunkRetry ) {
-    
-                        block.retried++;
-                        tr.send();
-    
-                    } else {
-    
-                        // http status 500 ~ 600
-                        if ( !flag && type === 'server' ) {
-                            type = requestAccept( type );
-                        }
-    
-                        file.setStatus( Status.ERROR, type );
-                        owner.trigger( 'uploadError', file, type );
-                        owner.trigger( 'uploadComplete', file );
-                    }
-                });
-    
-                // 涓婁紶鎴愬姛
-                tr.on( 'load', function() {
-                    var reason;
-    
-                    // 濡傛灉闈為鏈燂紝杞悜涓婁紶鍑洪敊銆�
-                    if ( (reason = requestAccept()) ) {
-                        tr.trigger( 'error', reason, true );
-                        return;
-                    }
-    
-                    // 鍏ㄩ儴涓婁紶瀹屾垚銆�
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file, ret );
-                    } else {
-                        tr.destroy();
-                    }
-                });
-    
-                // 閰嶇疆榛樿鐨勪笂浼犲瓧娈点��
-                data = $.extend( data, {
-                    id: file.id,
-                    name: file.name,
-                    type: file.type,
-                    lastModifiedDate: file.lastModifiedDate,
-                    size: file.size
-                });
-    
-                block.chunks > 1 && $.extend( data, {
-                    chunks: block.chunks,
-                    chunk: block.chunk
-                });
-    
-                // 鍦ㄥ彂閫佷箣闂村彲浠ユ坊鍔犲瓧娈典粈涔堢殑銆傘�傘��
-                // 濡傛灉榛樿鐨勫瓧娈典笉澶熶娇鐢紝鍙互閫氳繃鐩戝惉姝や簨浠舵潵鎵╁睍
-                owner.trigger( 'uploadBeforeSend', block, data, headers );
-    
-                // 寮�濮嬪彂閫併��
-                tr.appendBlob( opts.fileVal, block.blob, file.name );
-                tr.append( data );
-                tr.setRequestHeader( headers );
-                tr.send();
-            },
-    
-            // 瀹屾垚涓婁紶銆�
-            _finishFile: function( file, ret, hds ) {
-                var owner = this.owner;
-    
-                return owner
-                        .request( 'after-send-file', arguments, function() {
-                            file.setStatus( Status.COMPLETE );
-                            owner.trigger( 'uploadSuccess', file, ret, hds );
-                        })
-                        .fail(function( reason ) {
-    
-                            // 濡傛灉澶栭儴宸茬粡鏍囪涓篿nvalid浠�涔堢殑锛屼笉鍐嶆敼鐘舵�併��
-                            if ( file.getStatus() === Status.PROGRESS ) {
-                                file.setStatus( Status.ERROR, reason );
-                            }
-    
-                            owner.trigger( 'uploadError', file, reason );
-                        })
-                        .always(function() {
-                            owner.trigger( 'uploadComplete', file );
-                        });
-            }
-    
-        });
-    });
-    /**
-     * @fileOverview 鍚勭楠岃瘉锛屽寘鎷枃浠舵�诲ぇ灏忔槸鍚﹁秴鍑恒�佸崟鏂囦欢鏄惁瓒呭嚭鍜屾枃浠舵槸鍚﹂噸澶嶃��
-     */
-    
-    define('widgets/validator',[
-        'base',
-        'uploader',
-        'file',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile ) {
-    
-        var $ = Base.$,
-            validators = {},
-            api;
-    
-        /**
-         * @event error
-         * @param {String} type 閿欒绫诲瀷銆�
-         * @description 褰搗alidate涓嶉�氳繃鏃讹紝浼氫互娲鹃�侀敊璇簨浠剁殑褰㈠紡閫氱煡璋冪敤鑰呫�傞�氳繃`upload.on('error', handler)`鍙互鎹曡幏鍒版绫婚敊璇紝鐩墠鏈変互涓嬮敊璇細鍦ㄧ壒瀹氱殑鎯呭喌涓嬫淳閫侀敊鏉ャ��
-         *
-         * * `Q_EXCEED_NUM_LIMIT` 鍦ㄨ缃簡`fileNumLimit`涓斿皾璇曠粰`uploader`娣诲姞鐨勬枃浠舵暟閲忚秴鍑鸿繖涓�兼椂娲鹃�併��
-         * * `Q_EXCEED_SIZE_LIMIT` 鍦ㄨ缃簡`Q_EXCEED_SIZE_LIMIT`涓斿皾璇曠粰`uploader`娣诲姞鐨勬枃浠舵�诲ぇ灏忚秴鍑鸿繖涓�兼椂娲鹃�併��
-         * @for  Uploader
-         */
-    
-        // 鏆撮湶缁欏闈㈢殑api
-        api = {
-    
-            // 娣诲姞楠岃瘉鍣�
-            addValidator: function( type, cb ) {
-                validators[ type ] = cb;
-            },
-    
-            // 绉婚櫎楠岃瘉鍣�
-            removeValidator: function( type ) {
-                delete validators[ type ];
-            }
-        };
-    
-        // 鍦║ploader鍒濆鍖栫殑鏃跺�欏惎鍔╒alidators鐨勫垵濮嬪寲
-        Uploader.register({
-            init: function() {
-                var me = this;
-                $.each( validators, function() {
-                    this.call( me.owner );
-                });
-            }
-        });
-    
-        /**
-         * @property {int} [fileNumLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鏂囦欢鎬绘暟閲�, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileNumLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                count = 0,
-                max = opts.fileNumLimit >> 0,
-                flag = true;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-    
-                if ( count >= max && flag ) {
-                    flag = false;
-                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
-                    setTimeout(function() {
-                        flag = true;
-                    }, 1 );
-                }
-    
-                return count >= max ? false : true;
-            });
-    
-            uploader.on( 'fileQueued', function() {
-                count++;
-            });
-    
-            uploader.on( 'fileDequeued', function() {
-                count--;
-            });
-    
-            uploader.on( 'uploadFinished', function() {
-                count = 0;
-            });
-        });
-    
-    
-        /**
-         * @property {int} [fileSizeLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鏂囦欢鎬诲ぇ灏忔槸鍚﹁秴鍑洪檺鍒�, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileSizeLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                count = 0,
-                max = opts.fileSizeLimit >> 0,
-                flag = true;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-                var invalid = count + file.size > max;
-    
-                if ( invalid && flag ) {
-                    flag = false;
-                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
-                    setTimeout(function() {
-                        flag = true;
-                    }, 1 );
-                }
-    
-                return invalid ? false : true;
-            });
-    
-            uploader.on( 'fileQueued', function( file ) {
-                count += file.size;
-            });
-    
-            uploader.on( 'fileDequeued', function( file ) {
-                count -= file.size;
-            });
-    
-            uploader.on( 'uploadFinished', function() {
-                count = 0;
-            });
-        });
-    
-        /**
-         * @property {int} [fileSingleSizeLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鍗曚釜鏂囦欢澶у皬鏄惁瓒呭嚭闄愬埗, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileSingleSizeLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                max = opts.fileSingleSizeLimit;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-    
-                if ( file.size > max ) {
-                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
-                    this.trigger( 'error', 'F_EXCEED_SIZE', file );
-                    return false;
-                }
-    
-            });
-    
-        });
-    
-        /**
-         * @property {int} [duplicate=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 鍘婚噸锛� 鏍规嵁鏂囦欢鍚嶅瓧銆佹枃浠跺ぇ灏忓拰鏈�鍚庝慨鏀规椂闂存潵鐢熸垚hash Key.
-         */
-        api.addValidator( 'duplicate', function() {
-            var uploader = this,
-                opts = uploader.options,
-                mapping = {};
-    
-            if ( opts.duplicate ) {
-                return;
-            }
-    
-            function hashString( str ) {
-                var hash = 0,
-                    i = 0,
-                    len = str.length,
-                    _char;
-    
-                for ( ; i < len; i++ ) {
-                    _char = str.charCodeAt( i );
-                    hash = _char + (hash << 6) + (hash << 16) - hash;
-                }
-    
-                return hash;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-                var hash = file.__hash || (file.__hash = hashString( file.name +
-                        file.size + file.lastModifiedDate ));
-    
-                // 宸茬粡閲嶅浜�
-                if ( mapping[ hash ] ) {
-                    this.trigger( 'error', 'F_DUPLICATE', file );
-                    return false;
-                }
-            });
-    
-            uploader.on( 'fileQueued', function( file ) {
-                var hash = file.__hash;
-    
-                hash && (mapping[ hash ] = true);
-            });
-    
-            uploader.on( 'fileDequeued', function( file ) {
-                var hash = file.__hash;
-    
-                hash && (delete mapping[ hash ]);
-            });
-        });
-    
-        return api;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/compbase',[],function() {
-    
-        function CompBase( owner, runtime ) {
-    
-            this.owner = owner;
-            this.options = owner.options;
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.getRuid = function() {
-                return runtime.uid;
-            };
-    
-            this.trigger = function() {
-                return owner.trigger.apply( owner, arguments );
-            };
-        }
-    
-        return CompBase;
-    });
-    /**
-     * @fileOverview FlashRuntime
-     */
-    define('runtime/flash/runtime',[
-        'base',
-        'runtime/runtime',
-        'runtime/compbase'
-    ], function( Base, Runtime, CompBase ) {
-    
-        var $ = Base.$,
-            type = 'flash',
-            components = {};
-    
-    
-        function getFlashVersion() {
-            var version;
-    
-            try {
-                version = navigator.plugins[ 'Shockwave Flash' ];
-                version = version.description;
-            } catch ( ex ) {
-                try {
-                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
-                            .GetVariable('$version');
-                } catch ( ex2 ) {
-                    version = '0.0';
-                }
-            }
-            version = version.match( /\d+/g );
-            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
-        }
-    
-        function FlashRuntime() {
-            var pool = {},
-                clients = {},
-                destory = this.destory,
-                me = this,
-                jsreciver = Base.guid('webuploader_');
-    
-            Runtime.apply( me, arguments );
-            me.type = type;
-    
-    
-            // 杩欎釜鏂规硶鐨勮皟鐢ㄨ�咃紝瀹為檯涓婃槸RuntimeClient
-            me.exec = function( comp, fn/*, args...*/ ) {
-                var client = this,
-                    uid = client.uid,
-                    args = Base.slice( arguments, 2 ),
-                    instance;
-    
-                clients[ uid ] = client;
-    
-                if ( components[ comp ] ) {
-                    if ( !pool[ uid ] ) {
-                        pool[ uid ] = new components[ comp ]( client, me );
-                    }
-    
-                    instance = pool[ uid ];
-    
-                    if ( instance[ fn ] ) {
-                        return instance[ fn ].apply( instance, args );
-                    }
-                }
-    
-                return me.flashExec.apply( client, arguments );
-            };
-    
-            function handler( evt, obj ) {
-                var type = evt.type || evt,
-                    parts, uid;
-    
-                parts = type.split('::');
-                uid = parts[ 0 ];
-                type = parts[ 1 ];
-    
-                // console.log.apply( console, arguments );
-    
-                if ( type === 'Ready' && uid === me.uid ) {
-                    me.trigger('ready');
-                } else if ( clients[ uid ] ) {
-                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
-                }
-    
-                // Base.log( evt, obj );
-            }
-    
-            // flash鐨勬帴鍙楀櫒銆�
-            window[ jsreciver ] = function() {
-                var args = arguments;
-    
-                // 涓轰簡鑳芥崟鑾峰緱鍒般��
-                setTimeout(function() {
-                    handler.apply( null, args );
-                }, 1 );
-            };
-    
-            this.jsreciver = jsreciver;
-    
-            this.destory = function() {
-                // @todo 鍒犻櫎姹犲瓙涓殑鎵�鏈夊疄渚�
-                return destory && destory.apply( this, arguments );
-            };
-    
-            this.flashExec = function( comp, fn ) {
-                var flash = me.getFlash(),
-                    args = Base.slice( arguments, 2 );
-    
-                return flash.exec( this.uid, comp, fn, args );
-            };
-    
-            // @todo
-        }
-    
-        Base.inherits( Runtime, {
-            constructor: FlashRuntime,
-    
-            init: function() {
-                var container = this.getContainer(),
-                    opts = this.options,
-                    html;
-    
-                // if not the minimal height, shims are not initialized
-                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
-                container.css({
-                    position: 'absolute',
-                    top: '-8px',
-                    left: '-8px',
-                    width: '9px',
-                    height: '9px',
-                    overflow: 'hidden'
-                });
-    
-                // insert flash object
-                html = '<object id="' + this.uid + '" type="application/' +
-                        'x-shockwave-flash" data="' +  opts.swf + '" ';
-    
-                if ( Base.browser.ie ) {
-                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
-                }
-    
-                html += 'width="100%" height="100%" style="outline:0">'  +
-                    '<param name="movie" value="' + opts.swf + '" />' +
-                    '<param name="flashvars" value="uid=' + this.uid +
-                    '&jsreciver=' + this.jsreciver + '" />' +
-                    '<param name="wmode" value="transparent" />' +
-                    '<param name="allowscriptaccess" value="always" />' +
-                '</object>';
-    
-                container.html( html );
-            },
-    
-            getFlash: function() {
-                if ( this._flash ) {
-                    return this._flash;
-                }
-    
-                this._flash = $( '#' + this.uid ).get( 0 );
-                return this._flash;
-            }
-    
-        });
-    
-        FlashRuntime.register = function( name, component ) {
-            component = components[ name ] = Base.inherits( CompBase, $.extend({
-    
-                // @todo fix this later
-                flashExec: function() {
-                    var owner = this.owner,
-                        runtime = this.getRuntime();
-    
-                    return runtime.flashExec.apply( owner, arguments );
-                }
-            }, component ) );
-    
-            return component;
-        };
-    
-        if ( getFlashVersion() >= 11.4 ) {
-            Runtime.addRuntime( type, FlashRuntime );
-        }
-    
-        return FlashRuntime;
-    });
-    /**
-     * @fileOverview FilePicker
-     */
-    define('runtime/flash/filepicker',[
-        'base',
-        'runtime/flash/runtime'
-    ], function( Base, FlashRuntime ) {
-        var $ = Base.$;
-    
-        return FlashRuntime.register( 'FilePicker', {
-            init: function( opts ) {
-                var copy = $.extend({}, opts ),
-                    len, i;
-    
-                // 淇Flash鍐嶆病鏈夎缃畉itle鐨勬儏鍐典笅鏃犳硶寮瑰嚭flash鏂囦欢閫夋嫨妗嗙殑bug.
-                len = copy.accept && copy.accept.length;
-                for (  i = 0; i < len; i++ ) {
-                    if ( !copy.accept[ i ].title ) {
-                        copy.accept[ i ].title = 'Files';
-                    }
-                }
-    
-                delete copy.button;
-                delete copy.container;
-    
-                this.flashExec( 'FilePicker', 'init', copy );
-            },
-    
-            destroy: function() {
-                // todo
-            }
-        });
-    });
-    /**
-     * @fileOverview 鍥剧墖鍘嬬缉
-     */
-    define('runtime/flash/image',[
-        'runtime/flash/runtime'
-    ], function( FlashRuntime ) {
-    
-        return FlashRuntime.register( 'Image', {
-            // init: function( options ) {
-            //     var owner = this.owner;
-    
-            //     this.flashExec( 'Image', 'init', options );
-            //     owner.on( 'load', function() {
-            //         debugger;
-            //     });
-            // },
-    
-            loadFromBlob: function( blob ) {
-                var owner = this.owner;
-    
-                owner.info() && this.flashExec( 'Image', 'info', owner.info() );
-                owner.meta() && this.flashExec( 'Image', 'meta', owner.meta() );
-    
-                this.flashExec( 'Image', 'loadFromBlob', blob.uid );
-            }
-        });
-    });
-    /**
-     * @fileOverview  Transport flash瀹炵幇
-     */
-    define('runtime/flash/transport',[
-        'base',
-        'runtime/flash/runtime',
-        'runtime/client'
-    ], function( Base, FlashRuntime, RuntimeClient ) {
-        var $ = Base.$;
-    
-        return FlashRuntime.register( 'Transport', {
-            init: function() {
-                this._status = 0;
-                this._response = null;
-                this._responseJson = null;
-            },
-    
-            send: function() {
-                var owner = this.owner,
-                    opts = this.options,
-                    xhr = this._initAjax(),
-                    blob = owner._blob,
-                    server = opts.server,
-                    binary;
-    
-                xhr.connectRuntime( blob.ruid );
-    
-                if ( opts.sendAsBinary ) {
-                    server += (/\?/.test( server ) ? '&' : '?') +
-                            $.param( owner._formData );
-    
-                    binary = blob.uid;
-                } else {
-                    $.each( owner._formData, function( k, v ) {
-                        xhr.exec( 'append', k, v );
-                    });
-    
-                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
-                            opts.filename || owner._formData.name || '' );
-                }
-    
-                this._setRequestHeader( xhr, opts.headers );
-                xhr.exec( 'send', {
-                    method: opts.method,
-                    url: server
-                }, binary );
-            },
-    
-            getStatus: function() {
-                return this._status;
-            },
-    
-            getResponse: function() {
-                return this._response;
-            },
-    
-            getResponseAsJson: function() {
-                return this._responseJson;
-            },
-    
-            abort: function() {
-                var xhr = this._xhr;
-    
-                if ( xhr ) {
-                    xhr.exec('abort');
-                    xhr.destroy();
-                    this._xhr = xhr = null;
-                }
-            },
-    
-            destroy: function() {
-                this.abort();
-            },
-    
-            _initAjax: function() {
-                var me = this,
-                    xhr = new RuntimeClient('XMLHttpRequest');
-    
-                xhr.on( 'uploadprogress progress', function( e ) {
-                    return me.trigger( 'progress', e.loaded / e.total );
-                });
-    
-                xhr.on( 'load', function() {
-                    var status = xhr.exec('getStatus'),
-                        err = '';
-    
-                    xhr.off();
-                    me._xhr = null;
-    
-                    if ( status >= 200 && status < 300 ) {
-                        me._response = xhr.exec('getResponse');
-                        me._responseJson = xhr.exec('getResponseAsJson');
-                    } else if ( status >= 500 && status < 600 ) {
-                        me._response = xhr.exec('getResponse');
-                        me._responseJson = xhr.exec('getResponseAsJson');
-                        err = 'server';
-                    } else {
-                        err = 'http';
-                    }
-    
-                    xhr.destroy();
-                    xhr = null;
-    
-                    return err ? me.trigger( 'error', err ) : me.trigger('load');
-                });
-    
-                xhr.on( 'error', function() {
-                    xhr.off();
-                    me._xhr = null;
-                    me.trigger( 'error', 'http' );
-                });
-    
-                me._xhr = xhr;
-                return xhr;
-            },
-    
-            _setRequestHeader: function( xhr, headers ) {
-                $.each( headers, function( key, val ) {
-                    xhr.exec( 'setRequestHeader', key, val );
-                });
-            }
-        });
-    });
-    /**
-     * @fileOverview 鍙湁flash瀹炵幇鐨勬枃浠剁増鏈��
-     */
-    define('preset/flashonly',[
-        'base',
-    
-        // widgets
-        'widgets/filepicker',
-        'widgets/image',
-        'widgets/queue',
-        'widgets/runtime',
-        'widgets/upload',
-        'widgets/validator',
-    
-        // runtimes
-    
-        // flash
-        'runtime/flash/filepicker',
-        'runtime/flash/image',
-        'runtime/flash/transport'
-    ], function( Base ) {
-        return Base;
-    });
-    define('webuploader',[
-        'preset/flashonly'
-    ], function( preset ) {
-        return preset;
-    });
-    return require('webuploader');
-});
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.flashonly.min.js b/server/public/ueditor/third-party/webuploader/webuploader.flashonly.min.js
deleted file mode 100644
index 2b174e7..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.flashonly.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* WebUploader 0.1.2 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}},j=b(a,f,e);i(j),"object"==typeof module&&"object"==typeof module.exports?module.exports=j:"function"==typeof define&&define.amd?define([],j):(c=a.WebUploader,a.WebUploader=j,a.WebUploader.noConflict=function(){a.WebUploader=c})}(this,function(a,b,c){return b("dollar-third",[],function(){return a.jQuery||a.Zepto}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.2",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",getDimension:"get-dimension",addButton:"add-btn",getRuntimeType:"get-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return{successNum:a.numOfSuccess,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.parentNode.removeChild(this.__container),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,b.call(d,"Blob"),this.uid=c.uid||this.uid,this.type=c.type||"",this.size=c.size||0,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;b.apply(this,arguments),this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&this.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(this.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),!this.type&&~"jpg,jpeg,png,gif,bmp".indexOf(f)&&(this.type="image/"+("jpg"===f?"jpeg":f)),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString()}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("鎸夐挳鎸囧畾閿欒");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var b=this,c=b.options,e=c.button;e.addClass("webuploader-pick"),b.on("all",function(a){var g;switch(a){case"mouseenter":e.addClass("webuploader-pick-hover");break;case"mouseleave":e.removeClass("webuploader-pick-hover");break;case"change":g=b.exec("getFiles"),b.trigger("select",f.map(g,function(a){return a=new d(b.getRuid(),a),a._refer=c.container,a}),c.container)}}),b.connectRuntime(c,function(){b.refresh(),b.exec("init",c),b.trigger("ready")}),f(a).on("resize",function(){b.refresh()})},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){this.runtime&&(this.exec("destroy"),this.disconnectRuntime())}}),e}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g={},h=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):g},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[];return e.each(h,function(c,d){b.push(new d(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,h,i,j,k=0,l=this._widgets,m=l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],h=f.invoke(b,d),h!==g&&(a.isPromise(h)?o.push(h):n.push(h));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return setTimeout(function(){b.resolve.apply(b,c)},1),b.promise()})[j](e||a.noop)):n[0]}}),b.register=d.register=function(b,c){var f,g={init:"init"};return 1===arguments.length?(c=b,c.responseMap=g):c.responseMap=e.extend(g,b),f=a.inherits(d,c),h.push(f),f},d}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({"add-btn":"addButton",refresh:"refresh",disable:"disable",enable:"enable"},{init:function(a){return this.pickers=[],a.pick&&this.addButton(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addButton:function(b){var e,f,g,h=this,i=h.options,j=i.accept;if(b)return g=a.Deferred(),d.isPlainObject(b)||(b={id:b}),e=d.extend({},b,{accept:d.isPlainObject(j)?[j]:j,swf:i.swf,runtimeOrder:i.runtimeOrder}),f=new c(e),f.once("ready",g.resolve),f.on("select",function(a){h.owner.request("add-file",[a])}),f.init(),this.pickers.push(f),g.promise()},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!0,allowMagnify:!0},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({"make-thumb":"makeThumb","before-send-file":"compressImage"},{makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(){b(!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},compressImage:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||307200;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){b._info=b._info||d.info(),b._meta=b._meta||d.meta(),d.resize(g.width,g.height)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,a.size<c&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destory:function(){delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)})),a.setStatus(f.QUEUED)},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({"sort-files":"sortFiles","add-file":"addFiles","get-file":"getFile","fetch-file":"fetchFile","get-stats":"getStats","get-files":"getFiles","remove-file":"removeFile",retry:"retry",reset:"reset","accept-file":"acceptFile"},{init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||a.size<6||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFiles:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&b.request("start-upload")},getStats:function(){return this.stats},removeFile:function(a){var b=this;a=a.id?a:b.queue.getFile(a),a.setStatus(i.CANCELLED),b.owner.trigger("fileDequeued",a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.queue=new c,this.stats=this.queue.stats}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({"predict-runtime-type":"predictRuntmeType"},{init:function(){if(!this.predictRuntmeType())throw Error("Runtime Error")},predictRuntmeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){for(var c,d=[],e=a.source,f=e.size,g=b?Math.ceil(f/b):1,h=0,i=0;g>i;)c=Math.min(b,f-h),d.push({file:a,start:h,end:b?h+c:f,total:f,chunks:g,chunk:i++}),h+=c;return a.blocks=d.concat(),a.remaning=d.length,{file:a,has:function(){return!!d.length},fetch:function(){return d.shift()}}}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:null}),b.register({"start-upload":"start","stop-upload":"stop","skip-file":"skipFile","is-in-progress":"isInProgress"},{init:function(){var b=this.owner;this.runing=!1,this.pool=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},start:function(){var b=this;f.each(b.request("get-files",h.INVALID),function(){b.request("remove-file",this)}),b.runing||(b.runing=!0,f.each(b.pool,function(a,c){var d=c.file;d.getStatus()===h.INTERRUPT&&(d.setStatus(h.PROGRESS),b._trigged=!1,c.transport&&c.transport.send())}),b._trigged=!1,b.owner.trigger("startUpload"),a.nextTick(b.__tick))},stop:function(a){var b=this;b.runing!==!1&&(b.runing=!1,a&&f.each(b.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),b.owner.trigger("stopUpload"))},isInProgress:function(){return!!this.runing},getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d.getStats().numOfQueue||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_nextBlock:function(){var a,b,c=this,d=c._act,f=c.options;return d&&d.has()&&d.file.getStatus()===h.PROGRESS?(f.prepareNextFile&&!c.pending.length&&c._prepareNextFile(),d.fetch()):c.runing?(!c.pending.length&&c.getStats().numOfQueue&&c._prepareNextFile(),a=c.pending.shift(),b=function(a){return a?(d=e(a,f.chunked?f.chunkSize:0),c._act=d,d.fetch()):null},g(a)?a[a.pipe?"pipe":"then"](b):b(a)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.QUEUED?(b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),c):b._finishFile(c)}),a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d._popBlock(b),a.nextTick(d.__tick))})},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){var c=0,d=0;c=b.percentage=a,b.chunks>1&&(f.each(k.blocks,function(a,b){d+=(b.percentage||0)*(b.end-b.start)}),c=d/k.size),i.trigger("uploadProgress",k,c||0)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({init:function(){var a=this;e.each(f,function(){this.call(a.owner)})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=b.fileNumLimit>>0,e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("uploadFinished",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=b.fileSizeLimit>>0,e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("uploadFinished",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}))}),d}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a;try{a=navigator.plugins["Shockwave Flash"],a=a.description}catch(b){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(c){a="0.0"}}return a=a.match(/\d+/g),parseFloat(a[0]+"."+a[1],10)}function f(){function d(a,b){var c,d,e=a.type||a;c=e.split("::"),d=c[0],e=c[1],"Ready"===e&&d===j.uid?j.trigger("ready"):f[d]&&f[d].trigger(e.toLowerCase(),a,b)}var e={},f={},g=this.destory,j=this,k=b.guid("webuploader_");c.apply(j,arguments),j.type=h,j.exec=function(a,c){var d,g=this,h=g.uid,k=b.slice(arguments,2);return f[h]=g,i[a]&&(e[h]||(e[h]=new i[a](g,j)),d=e[h],d[c])?d[c].apply(d,k):j.flashExec.apply(g,arguments)},a[k]=function(){var a=arguments;setTimeout(function(){d.apply(null,a)},1)},this.jsreciver=k,this.destory=function(){return g&&g.apply(this,arguments)},this.flashExec=function(a,c){var d=j.getFlash(),e=b.slice(arguments,2);return d.exec(this.uid,a,c,e)}}var g=b.$,h="flash",i={};return b.inherits(c,{constructor:f,init:function(){var a,c=this.getContainer(),d=this.options;c.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),a='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+d.swf+'" ',b.browser.ie&&(a+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),a+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+d.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>',c.html(a)},getFlash:function(){return this._flash?this._flash:(this._flash=g("#"+this.uid).get(0),this._flash)}}),f.register=function(a,c){return c=i[a]=b.inherits(d,g.extend({flashExec:function(){var a=this.owner,b=this.getRuntime();return b.flashExec.apply(a,arguments)}},c))},e()>=11.4&&c.addRuntime(h,f),f}),b("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(a){var b,d,e=c.extend({},a);for(b=e.accept&&e.accept.length,d=0;b>d;d++)e.accept[d].title||(e.accept[d].title="Files");delete e.button,delete e.container,this.flashExec("FilePicker","init",e)},destroy:function(){}})}),b("runtime/flash/image",["runtime/flash/runtime"],function(a){return a.register("Image",{loadFromBlob:function(a){var b=this.owner;b.info()&&this.flashExec("Image","info",b.info()),b.meta()&&this.flashExec("Image","meta",b.meta()),this.flashExec("Image","loadFromBlob",a.uid)}})}),b("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(a,b,c){var d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var a,b=this.owner,c=this.options,e=this._initAjax(),f=b._blob,g=c.server;e.connectRuntime(f.ruid),c.sendAsBinary?(g+=(/\?/.test(g)?"&":"?")+d.param(b._formData),a=f.uid):(d.each(b._formData,function(a,b){e.exec("append",a,b)
-}),e.exec("appendBlob",c.fileVal,f.uid,c.filename||b._formData.name||"")),this._setRequestHeader(e,c.headers),e.exec("send",{method:c.method,url:g},a)},getStatus:function(){return this._status},getResponse:function(){return this._response},getResponseAsJson:function(){return this._responseJson},abort:function(){var a=this._xhr;a&&(a.exec("abort"),a.destroy(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new c("XMLHttpRequest");return b.on("uploadprogress progress",function(b){return a.trigger("progress",b.loaded/b.total)}),b.on("load",function(){var c=b.exec("getStatus"),d="";return b.off(),a._xhr=null,c>=200&&300>c?(a._response=b.exec("getResponse"),a._responseJson=b.exec("getResponseAsJson")):c>=500&&600>c?(a._response=b.exec("getResponse"),a._responseJson=b.exec("getResponseAsJson"),d="server"):d="http",b.destroy(),b=null,d?a.trigger("error",d):a.trigger("load")}),b.on("error",function(){b.off(),a._xhr=null,a.trigger("error","http")}),a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.exec("setRequestHeader",b,c)})}})}),b("preset/flashonly",["base","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/flash/filepicker","runtime/flash/image","runtime/flash/transport"],function(a){return a}),b("webuploader",["preset/flashonly"],function(a){return a}),c("webuploader")});
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.html5only.js b/server/public/ueditor/third-party/webuploader/webuploader.html5only.js
deleted file mode 100644
index 1d89045..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.html5only.js
+++ /dev/null
@@ -1,5559 +0,0 @@
-/*! WebUploader 0.1.2 */
-
-
-/**
- * @fileOverview 璁╁唴閮ㄥ悇涓儴浠剁殑浠g爜鍙互鐢╗amd](https://github.com/amdjs/amdjs-api/wiki/AMD)妯″潡瀹氫箟鏂瑰紡缁勭粐璧锋潵銆�
- *
- * AMD API 鍐呴儴鐨勭畝鍗曚笉瀹屽叏瀹炵幇锛岃蹇界暐銆傚彧鏈夊綋WebUploader琚悎骞舵垚涓�涓枃浠剁殑鏃跺�欐墠浼氬紩鍏ャ��
- */
-(function( root, factory ) {
-    var modules = {},
-
-        // 鍐呴儴require, 绠�鍗曚笉瀹屽叏瀹炵幇銆�
-        // https://github.com/amdjs/amdjs-api/wiki/require
-        _require = function( deps, callback ) {
-            var args, len, i;
-
-            // 濡傛灉deps涓嶆槸鏁扮粍锛屽垯鐩存帴杩斿洖鎸囧畾module
-            if ( typeof deps === 'string' ) {
-                return getModule( deps );
-            } else {
-                args = [];
-                for( len = deps.length, i = 0; i < len; i++ ) {
-                    args.push( getModule( deps[ i ] ) );
-                }
-
-                return callback.apply( null, args );
-            }
-        },
-
-        // 鍐呴儴define锛屾殏鏃朵笉鏀寔涓嶆寚瀹歩d.
-        _define = function( id, deps, factory ) {
-            if ( arguments.length === 2 ) {
-                factory = deps;
-                deps = null;
-            }
-
-            _require( deps || [], function() {
-                setModule( id, factory, arguments );
-            });
-        },
-
-        // 璁剧疆module, 鍏煎CommonJs鍐欐硶銆�
-        setModule = function( id, factory, args ) {
-            var module = {
-                    exports: factory
-                },
-                returned;
-
-            if ( typeof factory === 'function' ) {
-                args.length || (args = [ _require, module.exports, module ]);
-                returned = factory.apply( null, args );
-                returned !== undefined && (module.exports = returned);
-            }
-
-            modules[ id ] = module.exports;
-        },
-
-        // 鏍规嵁id鑾峰彇module
-        getModule = function( id ) {
-            var module = modules[ id ] || root[ id ];
-
-            if ( !module ) {
-                throw new Error( '`' + id + '` is undefined' );
-            }
-
-            return module;
-        },
-
-        // 灏嗘墍鏈塵odules锛屽皢璺緞ids瑁呮崲鎴愬璞°��
-        exportsTo = function( obj ) {
-            var key, host, parts, part, last, ucFirst;
-
-            // make the first character upper case.
-            ucFirst = function( str ) {
-                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
-            };
-
-            for ( key in modules ) {
-                host = obj;
-
-                if ( !modules.hasOwnProperty( key ) ) {
-                    continue;
-                }
-
-                parts = key.split('/');
-                last = ucFirst( parts.pop() );
-
-                while( (part = ucFirst( parts.shift() )) ) {
-                    host[ part ] = host[ part ] || {};
-                    host = host[ part ];
-                }
-
-                host[ last ] = modules[ key ];
-            }
-        },
-
-        exports = factory( root, _define, _require ),
-        origin;
-
-    // exports every module.
-    exportsTo( exports );
-
-    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
-
-        // For CommonJS and CommonJS-like environments where a proper window is present,
-        module.exports = exports;
-    } else if ( typeof define === 'function' && define.amd ) {
-
-        // Allow using this built library as an AMD module
-        // in another project. That other project will only
-        // see this AMD call, not the internal modules in
-        // the closure below.
-        define([], exports );
-    } else {
-
-        // Browser globals case. Just assign the
-        // result to a property on the global.
-        origin = root.WebUploader;
-        root.WebUploader = exports;
-        root.WebUploader.noConflict = function() {
-            root.WebUploader = origin;
-        };
-    }
-})( this, function( window, define, require ) {
-
-
-    /**
-     * @fileOverview jQuery or Zepto
-     */
-    define('dollar-third',[],function() {
-        return window.jQuery || window.Zepto;
-    });
-    /**
-     * @fileOverview Dom 鎿嶄綔鐩稿叧
-     */
-    define('dollar',[
-        'dollar-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 浣跨敤jQuery鐨凱romise
-     */
-    define('promise-third',[
-        'dollar'
-    ], function( $ ) {
-        return {
-            Deferred: $.Deferred,
-            when: $.when,
-    
-            isPromise: function( anything ) {
-                return anything && typeof anything.then === 'function';
-            }
-        };
-    });
-    /**
-     * @fileOverview Promise/A+
-     */
-    define('promise',[
-        'promise-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 鍩虹绫绘柟娉曘��
-     */
-    
-    /**
-     * Web Uploader鍐呴儴绫荤殑璇︾粏璇存槑锛屼互涓嬫彁鍙婄殑鍔熻兘绫伙紝閮藉彲浠ュ湪`WebUploader`杩欎釜鍙橀噺涓闂埌銆�
-     *
-     * As you know, Web Uploader鐨勬瘡涓枃浠堕兘鏄敤杩嘯AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)瑙勮寖涓殑`define`缁勭粐璧锋潵鐨�, 姣忎釜Module閮戒細鏈変釜module id.
-     * 榛樿module id璇ユ枃浠剁殑璺緞锛岃�屾璺緞灏嗕細杞寲鎴愬悕瀛楃┖闂村瓨鏀惧湪WebUploader涓�傚锛�
-     *
-     * * module `base`锛歐ebUploader.Base
-     * * module `file`: WebUploader.File
-     * * module `lib/dnd`: WebUploader.Lib.Dnd
-     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
-     *
-     *
-     * 浠ヤ笅鏂囨。灏嗗彲鑳界渷鐣WebUploader`鍓嶇紑銆�
-     * @module WebUploader
-     * @title WebUploader API鏂囨。
-     */
-    define('base',[
-        'dollar',
-        'promise'
-    ], function( $, promise ) {
-    
-        var noop = function() {},
-            call = Function.call;
-    
-        // http://jsperf.com/uncurrythis
-        // 鍙嶇閲屽寲
-        function uncurryThis( fn ) {
-            return function() {
-                return call.apply( fn, arguments );
-            };
-        }
-    
-        function bindFn( fn, context ) {
-            return function() {
-                return fn.apply( context, arguments );
-            };
-        }
-    
-        function createObject( proto ) {
-            var f;
-    
-            if ( Object.create ) {
-                return Object.create( proto );
-            } else {
-                f = function() {};
-                f.prototype = proto;
-                return new f();
-            }
-        }
-    
-    
-        /**
-         * 鍩虹绫伙紝鎻愪緵涓�浜涚畝鍗曞父鐢ㄧ殑鏂规硶銆�
-         * @class Base
-         */
-        return {
-    
-            /**
-             * @property {String} version 褰撳墠鐗堟湰鍙枫��
-             */
-            version: '0.1.2',
-    
-            /**
-             * @property {jQuery|Zepto} $ 寮曠敤渚濊禆鐨刯Query鎴栬�匷epto瀵硅薄銆�
-             */
-            $: $,
-    
-            Deferred: promise.Deferred,
-    
-            isPromise: promise.isPromise,
-    
-            when: promise.when,
-    
-            /**
-             * @description  绠�鍗曠殑娴忚鍣ㄦ鏌ョ粨鏋溿��
-             *
-             * * `webkit`  webkit鐗堟湰鍙凤紝濡傛灉娴忚鍣ㄤ负闈瀢ebkit鍐呮牳锛屾灞炴�т负`undefined`銆�
-             * * `chrome`  chrome娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓篶hrome锛屾灞炴�т负`undefined`銆�
-             * * `ie`  ie娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪ie锛屾灞炴�т负`undefined`銆�**鏆備笉鏀寔ie10+**
-             * * `firefox`  firefox娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪firefox锛屾灞炴�т负`undefined`銆�
-             * * `safari`  safari娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪safari锛屾灞炴�т负`undefined`銆�
-             * * `opera`  opera娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪opera锛屾灞炴�т负`undefined`銆�
-             *
-             * @property {Object} [browser]
-             */
-            browser: (function( ua ) {
-                var ret = {},
-                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
-                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
-                        ua.match( /CriOS\/([\d.]+)/ ),
-    
-                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
-                        ua.match(/(?:trident)(?:.*rv:([\w.]+))?/i),
-                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
-                    safari = ua.match( /Safari\/([\d.]+)/ ),
-                    opera = ua.match( /OPR\/([\d.]+)/ );
-    
-                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
-                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
-                ie && (ret.ie = parseFloat( ie[ 1 ] ));
-                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
-                safari && (ret.safari = parseFloat( safari[ 1 ] ));
-                opera && (ret.opera = parseFloat( opera[ 1 ] ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * @description  鎿嶄綔绯荤粺妫�鏌ョ粨鏋溿��
-             *
-             * * `android`  濡傛灉鍦╝ndroid娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刟ndroid鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * * `ios` 濡傛灉鍦╥os娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刬os鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * @property {Object} [os]
-             */
-            os: (function( ua ) {
-                var ret = {},
-    
-                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
-                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
-                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
-    
-                // osx && (ret.osx = true);
-                android && (ret.android = parseFloat( android[ 1 ] ));
-                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * 瀹炵幇绫讳笌绫讳箣闂寸殑缁ф壙銆�
-             * @method inherits
-             * @grammar Base.inherits( super ) => child
-             * @grammar Base.inherits( super, protos ) => child
-             * @grammar Base.inherits( super, protos, statics ) => child
-             * @param  {Class} super 鐖剁被
-             * @param  {Object | Function} [protos] 瀛愮被鎴栬�呭璞°�傚鏋滃璞′腑鍖呭惈constructor锛屽瓙绫诲皢鏄敤姝ゅ睘鎬у�笺��
-             * @param  {Function} [protos.constructor] 瀛愮被鏋勯�犲櫒锛屼笉鎸囧畾鐨勮瘽灏嗗垱寤轰釜涓存椂鐨勭洿鎺ユ墽琛岀埗绫绘瀯閫犲櫒鐨勬柟娉曘��
-             * @param  {Object} [statics] 闈欐�佸睘鎬ф垨鏂规硶銆�
-             * @return {Class} 杩斿洖瀛愮被銆�
-             * @example
-             * function Person() {
-             *     console.log( 'Super' );
-             * }
-             * Person.prototype.hello = function() {
-             *     console.log( 'hello' );
-             * };
-             *
-             * var Manager = Base.inherits( Person, {
-             *     world: function() {
-             *         console.log( 'World' );
-             *     }
-             * });
-             *
-             * // 鍥犱负娌℃湁鎸囧畾鏋勯�犲櫒锛岀埗绫荤殑鏋勯�犲櫒灏嗕細鎵ц銆�
-             * var instance = new Manager();    // => Super
-             *
-             * // 缁ф壙瀛愮埗绫荤殑鏂规硶
-             * instance.hello();    // => hello
-             * instance.world();    // => World
-             *
-             * // 瀛愮被鐨刜_super__灞炴�ф寚鍚戠埗绫�
-             * console.log( Manager.__super__ === Person );    // => true
-             */
-            inherits: function( Super, protos, staticProtos ) {
-                var child;
-    
-                if ( typeof protos === 'function' ) {
-                    child = protos;
-                    protos = null;
-                } else if ( protos && protos.hasOwnProperty('constructor') ) {
-                    child = protos.constructor;
-                } else {
-                    child = function() {
-                        return Super.apply( this, arguments );
-                    };
-                }
-    
-                // 澶嶅埗闈欐�佹柟娉�
-                $.extend( true, child, Super, staticProtos || {} );
-    
-                /* jshint camelcase: false */
-    
-                // 璁╁瓙绫荤殑__super__灞炴�ф寚鍚戠埗绫汇��
-                child.__super__ = Super.prototype;
-    
-                // 鏋勫缓鍘熷瀷锛屾坊鍔犲師鍨嬫柟娉曟垨灞炴�с��
-                // 鏆傛椂鐢∣bject.create瀹炵幇銆�
-                child.prototype = createObject( Super.prototype );
-                protos && $.extend( true, child.prototype, protos );
-    
-                return child;
-            },
-    
-            /**
-             * 涓�涓笉鍋氫换浣曚簨鎯呯殑鏂规硶銆傚彲浠ョ敤鏉ヨ祴鍊肩粰榛樿鐨刢allback.
-             * @method noop
-             */
-            noop: noop,
-    
-            /**
-             * 杩斿洖涓�涓柊鐨勬柟娉曪紝姝ゆ柟娉曞皢宸叉寚瀹氱殑`context`鏉ユ墽琛屻��
-             * @grammar Base.bindFn( fn, context ) => Function
-             * @method bindFn
-             * @example
-             * var doSomething = function() {
-             *         console.log( this.name );
-             *     },
-             *     obj = {
-             *         name: 'Object Name'
-             *     },
-             *     aliasFn = Base.bind( doSomething, obj );
-             *
-             *  aliasFn();    // => Object Name
-             *
-             */
-            bindFn: bindFn,
-    
-            /**
-             * 寮曠敤Console.log濡傛灉瀛樺湪鐨勮瘽锛屽惁鍒欏紩鐢ㄤ竴涓猍绌哄嚱鏁發oop](#WebUploader:Base.log)銆�
-             * @grammar Base.log( args... ) => undefined
-             * @method log
-             */
-            log: (function() {
-                if ( window.console ) {
-                    return bindFn( console.log, console );
-                }
-                return noop;
-            })(),
-    
-            nextTick: (function() {
-    
-                return function( cb ) {
-                    setTimeout( cb, 1 );
-                };
-    
-                // @bug 褰撴祻瑙堝櫒涓嶅湪褰撳墠绐楀彛鏃跺氨鍋滀簡銆�
-                // var next = window.requestAnimationFrame ||
-                //     window.webkitRequestAnimationFrame ||
-                //     window.mozRequestAnimationFrame ||
-                //     function( cb ) {
-                //         window.setTimeout( cb, 1000 / 60 );
-                //     };
-    
-                // // fix: Uncaught TypeError: Illegal invocation
-                // return bindFn( next, window );
-            })(),
-    
-            /**
-             * 琚玔uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)鐨勬暟缁剆lice鏂规硶銆�
-             * 灏嗙敤鏉ュ皢闈炴暟缁勫璞¤浆鍖栨垚鏁扮粍瀵硅薄銆�
-             * @grammar Base.slice( target, start[, end] ) => Array
-             * @method slice
-             * @example
-             * function doSomthing() {
-             *     var args = Base.slice( arguments, 1 );
-             *     console.log( args );
-             * }
-             *
-             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
-             */
-            slice: uncurryThis( [].slice ),
-    
-            /**
-             * 鐢熸垚鍞竴鐨処D
-             * @method guid
-             * @grammar Base.guid() => String
-             * @grammar Base.guid( prefx ) => String
-             */
-            guid: (function() {
-                var counter = 0;
-    
-                return function( prefix ) {
-                    var guid = (+new Date()).toString( 32 ),
-                        i = 0;
-    
-                    for ( ; i < 5; i++ ) {
-                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
-                    }
-    
-                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
-                };
-            })(),
-    
-            /**
-             * 鏍煎紡鍖栨枃浠跺ぇ灏�, 杈撳嚭鎴愬甫鍗曚綅鐨勫瓧绗︿覆
-             * @method formatSize
-             * @grammar Base.formatSize( size ) => String
-             * @grammar Base.formatSize( size, pointLength ) => String
-             * @grammar Base.formatSize( size, pointLength, units ) => String
-             * @param {Number} size 鏂囦欢澶у皬
-             * @param {Number} [pointLength=2] 绮剧‘鍒扮殑灏忔暟鐐规暟銆�
-             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 鍗曚綅鏁扮粍銆備粠瀛楄妭锛屽埌鍗冨瓧鑺傦紝涓�鐩村線涓婃寚瀹氥�傚鏋滃崟浣嶆暟缁勯噷闈㈠彧鎸囧畾浜嗗埌浜咾(鍗冨瓧鑺�)锛屽悓鏃舵枃浠跺ぇ灏忓ぇ浜嶮, 姝ゆ柟娉曠殑杈撳嚭灏嗚繕鏄樉绀烘垚澶氬皯K.
-             * @example
-             * console.log( Base.formatSize( 100 ) );    // => 100B
-             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
-             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
-             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
-             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
-             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
-             */
-            formatSize: function( size, pointLength, units ) {
-                var unit;
-    
-                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
-    
-                while ( (unit = units.shift()) && size > 1024 ) {
-                    size = size / 1024;
-                }
-    
-                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
-                        unit;
-            }
-        };
-    });
-    /**
-     * 浜嬩欢澶勭悊绫伙紝鍙互鐙珛浣跨敤锛屼篃鍙互鎵╁睍缁欏璞′娇鐢ㄣ��
-     * @fileOverview Mediator
-     */
-    define('mediator',[
-        'base'
-    ], function( Base ) {
-        var $ = Base.$,
-            slice = [].slice,
-            separator = /\s+/,
-            protos;
-    
-        // 鏍规嵁鏉′欢杩囨护鍑轰簨浠秇andlers.
-        function findHandlers( arr, name, callback, context ) {
-            return $.grep( arr, function( handler ) {
-                return handler &&
-                        (!name || handler.e === name) &&
-                        (!callback || handler.cb === callback ||
-                        handler.cb._cb === callback) &&
-                        (!context || handler.ctx === context);
-            });
-        }
-    
-        function eachEvent( events, callback, iterator ) {
-            // 涓嶆敮鎸佸璞★紝鍙敮鎸佸涓猠vent鐢ㄧ┖鏍奸殧寮�
-            $.each( (events || '').split( separator ), function( _, key ) {
-                iterator( key, callback );
-            });
-        }
-    
-        function triggerHanders( events, args ) {
-            var stoped = false,
-                i = -1,
-                len = events.length,
-                handler;
-    
-            while ( ++i < len ) {
-                handler = events[ i ];
-    
-                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
-                    stoped = true;
-                    break;
-                }
-            }
-    
-            return !stoped;
-        }
-    
-        protos = {
-    
-            /**
-             * 缁戝畾浜嬩欢銆�
-             *
-             * `callback`鏂规硶鍦ㄦ墽琛屾椂锛宎rguments灏嗕細鏉ユ簮浜巘rigger鐨勬椂鍊欐惡甯︾殑鍙傛暟銆傚
-             * ```javascript
-             * var obj = {};
-             *
-             * // 浣垮緱obj鏈変簨浠惰涓�
-             * Mediator.installTo( obj );
-             *
-             * obj.on( 'testa', function( arg1, arg2 ) {
-             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
-             * });
-             *
-             * obj.trigger( 'testa', 'arg1', 'arg2' );
-             * ```
-             *
-             * 濡傛灉`callback`涓紝鏌愪竴涓柟娉昤return false`浜嗭紝鍒欏悗缁殑鍏朵粬`callback`閮戒笉浼氳鎵ц鍒般��
-             * 鍒囦細褰卞搷鍒癭trigger`鏂规硶鐨勮繑鍥炲�硷紝涓篳false`銆�
-             *
-             * `on`杩樺彲浠ョ敤鏉ユ坊鍔犱竴涓壒娈婁簨浠禶all`, 杩欐牱鎵�鏈夌殑浜嬩欢瑙﹀彂閮戒細鍝嶅簲鍒般�傚悓鏃舵绫籤callback`涓殑arguments鏈変竴涓笉鍚屽锛�
-             * 灏辨槸绗竴涓弬鏁颁负`type`锛岃褰曞綋鍓嶆槸浠�涔堜簨浠跺湪瑙﹀彂銆傛绫籤callback`鐨勪紭鍏堢骇姣旇剼浣庯紝浼氬啀姝e父`callback`鎵ц瀹屽悗瑙﹀彂銆�
-             * ```javascript
-             * obj.on( 'all', function( type, arg1, arg2 ) {
-             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
-             * });
-             * ```
-             *
-             * @method on
-             * @grammar on( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚嶏紝鏀寔澶氫釜浜嬩欢鐢ㄧ┖鏍奸殧寮�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             * @class Mediator
-             */
-            on: function( name, callback, context ) {
-                var me = this,
-                    set;
-    
-                if ( !callback ) {
-                    return this;
-                }
-    
-                set = this._events || (this._events = []);
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var handler = { e: name };
-    
-                    handler.cb = callback;
-                    handler.ctx = context;
-                    handler.ctx2 = context || me;
-                    handler.id = set.length;
-    
-                    set.push( handler );
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 缁戝畾浜嬩欢锛屼笖褰揾andler鎵ц瀹屽悗锛岃嚜鍔ㄨВ闄ょ粦瀹氥��
-             * @method once
-             * @grammar once( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            once: function( name, callback, context ) {
-                var me = this;
-    
-                if ( !callback ) {
-                    return me;
-                }
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var once = function() {
-                            me.off( name, once );
-                            return callback.apply( context || me, arguments );
-                        };
-    
-                    once._cb = callback;
-                    me.on( name, once, context );
-                });
-    
-                return me;
-            },
-    
-            /**
-             * 瑙i櫎浜嬩欢缁戝畾
-             * @method off
-             * @grammar off( [name[, callback[, context] ] ] ) => self
-             * @param  {String}   [name]     浜嬩欢鍚�
-             * @param  {Function} [callback] 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            off: function( name, cb, ctx ) {
-                var events = this._events;
-    
-                if ( !events ) {
-                    return this;
-                }
-    
-                if ( !name && !cb && !ctx ) {
-                    this._events = [];
-                    return this;
-                }
-    
-                eachEvent( name, cb, function( name, cb ) {
-                    $.each( findHandlers( events, name, cb, ctx ), function() {
-                        delete events[ this.id ];
-                    });
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 瑙﹀彂浜嬩欢
-             * @method trigger
-             * @grammar trigger( name[, args...] ) => self
-             * @param  {String}   type     浜嬩欢鍚�
-             * @param  {*} [...] 浠绘剰鍙傛暟
-             * @return {Boolean} 濡傛灉handler涓璻eturn false浜嗭紝鍒欒繑鍥瀎alse, 鍚﹀垯杩斿洖true
-             */
-            trigger: function( type ) {
-                var args, events, allEvents;
-    
-                if ( !this._events || !type ) {
-                    return this;
-                }
-    
-                args = slice.call( arguments, 1 );
-                events = findHandlers( this._events, type );
-                allEvents = findHandlers( this._events, 'all' );
-    
-                return triggerHanders( events, args ) &&
-                        triggerHanders( allEvents, arguments );
-            }
-        };
-    
-        /**
-         * 涓粙鑰咃紝瀹冩湰韬槸涓崟渚嬶紝浣嗗彲浠ラ�氳繃[installTo](#WebUploader:Mediator:installTo)鏂规硶锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢琛屼负銆�
-         * 涓昏鐩殑鏄礋璐fā鍧椾笌妯″潡涔嬮棿鐨勫悎浣滐紝闄嶄綆鑰﹀悎搴︺��
-         *
-         * @class Mediator
-         */
-        return $.extend({
-    
-            /**
-             * 鍙互閫氳繃杩欎釜鎺ュ彛锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢鍔熻兘銆�
-             * @method installTo
-             * @param  {Object} obj 闇�瑕佸叿澶囦簨浠惰涓虹殑瀵硅薄銆�
-             * @return {Object} 杩斿洖obj.
-             */
-            installTo: function( obj ) {
-                return $.extend( obj, protos );
-            }
-    
-        }, protos );
-    });
-    /**
-     * @fileOverview Uploader涓婁紶绫�
-     */
-    define('uploader',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$;
-    
-        /**
-         * 涓婁紶鍏ュ彛绫汇��
-         * @class Uploader
-         * @constructor
-         * @grammar new Uploader( opts ) => Uploader
-         * @example
-         * var uploader = WebUploader.Uploader({
-         *     swf: 'path_of_swf/Uploader.swf',
-         *
-         *     // 寮�璧峰垎鐗囦笂浼犮��
-         *     chunked: true
-         * });
-         */
-        function Uploader( opts ) {
-            this.options = $.extend( true, {}, Uploader.options, opts );
-            this._init( this.options );
-        }
-    
-        // default Options
-        // widgets涓湁鐩稿簲鎵╁睍
-        Uploader.options = {};
-        Mediator.installTo( Uploader.prototype );
-    
-        // 鎵归噺娣诲姞绾懡浠ゅ紡鏂规硶銆�
-        $.each({
-            upload: 'start-upload',
-            stop: 'stop-upload',
-            getFile: 'get-file',
-            getFiles: 'get-files',
-            addFile: 'add-file',
-            addFiles: 'add-file',
-            sort: 'sort-files',
-            removeFile: 'remove-file',
-            skipFile: 'skip-file',
-            retry: 'retry',
-            isInProgress: 'is-in-progress',
-            makeThumb: 'make-thumb',
-            getDimension: 'get-dimension',
-            addButton: 'add-btn',
-            getRuntimeType: 'get-runtime-type',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable',
-            reset: 'reset'
-        }, function( fn, command ) {
-            Uploader.prototype[ fn ] = function() {
-                return this.request( command, arguments );
-            };
-        });
-    
-        $.extend( Uploader.prototype, {
-            state: 'pending',
-    
-            _init: function( opts ) {
-                var me = this;
-    
-                me.request( 'init', opts, function() {
-                    me.state = 'ready';
-                    me.trigger('ready');
-                });
-            },
-    
-            /**
-             * 鑾峰彇鎴栬�呰缃甎ploader閰嶇疆椤广��
-             * @method option
-             * @grammar option( key ) => *
-             * @grammar option( key, val ) => self
-             * @example
-             *
-             * // 鍒濆鐘舵�佸浘鐗囦笂浼犲墠涓嶄細鍘嬬缉
-             * var uploader = new WebUploader.Uploader({
-             *     resize: null;
-             * });
-             *
-             * // 淇敼鍚庡浘鐗囦笂浼犲墠锛屽皾璇曞皢鍥剧墖鍘嬬缉鍒�1600 * 1600
-             * uploader.options( 'resize', {
-             *     width: 1600,
-             *     height: 1600
-             * });
-             */
-            option: function( key, val ) {
-                var opts = this.options;
-    
-                // setter
-                if ( arguments.length > 1 ) {
-    
-                    if ( $.isPlainObject( val ) &&
-                            $.isPlainObject( opts[ key ] ) ) {
-                        $.extend( opts[ key ], val );
-                    } else {
-                        opts[ key ] = val;
-                    }
-    
-                } else {    // getter
-                    return key ? opts[ key ] : opts;
-                }
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢缁熻淇℃伅銆傝繑鍥炰竴涓寘鍚竴涓嬩俊鎭殑瀵硅薄銆�
-             * * `successNum` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `uploadFailNum` 涓婁紶澶辫触鐨勬枃浠舵暟
-             * * `cancelNum` 琚垹闄ょ殑鏂囦欢鏁�
-             * * `invalidNum` 鏃犳晥鐨勬枃浠舵暟
-             * * `queueNum` 杩樺湪闃熷垪涓殑鏂囦欢鏁�
-             * @method getStats
-             * @grammar getStats() => Object
-             */
-            getStats: function() {
-                // return this._mgr.getStats.apply( this._mgr, arguments );
-                var stats = this.request('get-stats');
-    
-                return {
-                    successNum: stats.numOfSuccess,
-    
-                    // who care?
-                    // queueFailNum: 0,
-                    cancelNum: stats.numOfCancel,
-                    invalidNum: stats.numOfInvalid,
-                    uploadFailNum: stats.numOfUploadFailed,
-                    queueNum: stats.numOfQueue
-                };
-            },
-    
-            // 闇�瑕侀噸鍐欐鏂规硶鏉ユ潵鏀寔opts.onEvent鍜宨nstance.onEvent鐨勫鐞嗗櫒
-            trigger: function( type/*, args...*/ ) {
-                var args = [].slice.call( arguments, 1 ),
-                    opts = this.options,
-                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
-                        type.substring( 1 );
-    
-                if (
-                        // 璋冪敤閫氳繃on鏂规硶娉ㄥ唽鐨刪andler.
-                        Mediator.trigger.apply( this, arguments ) === false ||
-    
-                        // 璋冪敤opts.onEvent
-                        $.isFunction( opts[ name ] ) &&
-                        opts[ name ].apply( this, args ) === false ||
-    
-                        // 璋冪敤this.onEvent
-                        $.isFunction( this[ name ] ) &&
-                        this[ name ].apply( this, args ) === false ||
-    
-                        // 骞挎挱鎵�鏈塽ploader鐨勪簨浠躲��
-                        Mediator.trigger.apply( Mediator,
-                        [ this, type ].concat( args ) ) === false ) {
-    
-                    return false;
-                }
-    
-                return true;
-            },
-    
-            // widgets/widget.js灏嗚ˉ鍏呮鏂规硶鐨勮缁嗘枃妗c��
-            request: Base.noop
-        });
-    
-        /**
-         * 鍒涘缓Uploader瀹炰緥锛岀瓑鍚屼簬new Uploader( opts );
-         * @method create
-         * @class Base
-         * @static
-         * @grammar Base.create( opts ) => Uploader
-         */
-        Base.create = Uploader.create = function( opts ) {
-            return new Uploader( opts );
-        };
-    
-        // 鏆撮湶Uploader锛屽彲浠ラ�氳繃瀹冩潵鎵╁睍涓氬姟閫昏緫銆�
-        Base.Uploader = Uploader;
-    
-        return Uploader;
-    });
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/runtime',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            factories = {},
-    
-            // 鑾峰彇瀵硅薄鐨勭涓�涓猭ey
-            getFirstKey = function( obj ) {
-                for ( var key in obj ) {
-                    if ( obj.hasOwnProperty( key ) ) {
-                        return key;
-                    }
-                }
-                return null;
-            };
-    
-        // 鎺ュ彛绫汇��
-        function Runtime( options ) {
-            this.options = $.extend({
-                container: document.body
-            }, options );
-            this.uid = Base.guid('rt_');
-        }
-    
-        $.extend( Runtime.prototype, {
-    
-            getContainer: function() {
-                var opts = this.options,
-                    parent, container;
-    
-                if ( this._container ) {
-                    return this._container;
-                }
-    
-                parent = $( opts.container || document.body );
-                container = $( document.createElement('div') );
-    
-                container.attr( 'id', 'rt_' + this.uid );
-                container.css({
-                    position: 'absolute',
-                    top: '0px',
-                    left: '0px',
-                    width: '1px',
-                    height: '1px',
-                    overflow: 'hidden'
-                });
-    
-                parent.append( container );
-                parent.addClass('webuploader-container');
-                this._container = container;
-                return container;
-            },
-    
-            init: Base.noop,
-            exec: Base.noop,
-    
-            destroy: function() {
-                if ( this._container ) {
-                    this._container.parentNode.removeChild( this.__container );
-                }
-    
-                this.off();
-            }
-        });
-    
-        Runtime.orders = 'html5,flash';
-    
-    
-        /**
-         * 娣诲姞Runtime瀹炵幇銆�
-         * @param {String} type    绫诲瀷
-         * @param {Runtime} factory 鍏蜂綋Runtime瀹炵幇銆�
-         */
-        Runtime.addRuntime = function( type, factory ) {
-            factories[ type ] = factory;
-        };
-    
-        Runtime.hasRuntime = function( type ) {
-            return !!(type ? factories[ type ] : getFirstKey( factories ));
-        };
-    
-        Runtime.create = function( opts, orders ) {
-            var type, runtime;
-    
-            orders = orders || Runtime.orders;
-            $.each( orders.split( /\s*,\s*/g ), function() {
-                if ( factories[ this ] ) {
-                    type = this;
-                    return false;
-                }
-            });
-    
-            type = type || getFirstKey( factories );
-    
-            if ( !type ) {
-                throw new Error('Runtime Error');
-            }
-    
-            runtime = new factories[ type ]( opts );
-            return runtime;
-        };
-    
-        Mediator.installTo( Runtime.prototype );
-        return Runtime;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/client',[
-        'base',
-        'mediator',
-        'runtime/runtime'
-    ], function( Base, Mediator, Runtime ) {
-    
-        var cache;
-    
-        cache = (function() {
-            var obj = {};
-    
-            return {
-                add: function( runtime ) {
-                    obj[ runtime.uid ] = runtime;
-                },
-    
-                get: function( ruid, standalone ) {
-                    var i;
-    
-                    if ( ruid ) {
-                        return obj[ ruid ];
-                    }
-    
-                    for ( i in obj ) {
-                        // 鏈変簺绫诲瀷涓嶈兘閲嶇敤锛屾瘮濡俧ilepicker.
-                        if ( standalone && obj[ i ].__standalone ) {
-                            continue;
-                        }
-    
-                        return obj[ i ];
-                    }
-    
-                    return null;
-                },
-    
-                remove: function( runtime ) {
-                    delete obj[ runtime.uid ];
-                }
-            };
-        })();
-    
-        function RuntimeClient( component, standalone ) {
-            var deferred = Base.Deferred(),
-                runtime;
-    
-            this.uid = Base.guid('client_');
-    
-            // 鍏佽runtime娌℃湁鍒濆鍖栦箣鍓嶏紝娉ㄥ唽涓�浜涙柟娉曞湪鍒濆鍖栧悗鎵ц銆�
-            this.runtimeReady = function( cb ) {
-                return deferred.done( cb );
-            };
-    
-            this.connectRuntime = function( opts, cb ) {
-    
-                // already connected.
-                if ( runtime ) {
-                    throw new Error('already connected!');
-                }
-    
-                deferred.done( cb );
-    
-                if ( typeof opts === 'string' && cache.get( opts ) ) {
-                    runtime = cache.get( opts );
-                }
-    
-                // 鍍廸ilePicker鍙兘鐙珛瀛樺湪锛屼笉鑳藉叕鐢ㄣ��
-                runtime = runtime || cache.get( null, standalone );
-    
-                // 闇�瑕佸垱寤�
-                if ( !runtime ) {
-                    runtime = Runtime.create( opts, opts.runtimeOrder );
-                    runtime.__promise = deferred.promise();
-                    runtime.once( 'ready', deferred.resolve );
-                    runtime.init();
-                    cache.add( runtime );
-                    runtime.__client = 1;
-                } else {
-                    // 鏉ヨ嚜cache
-                    Base.$.extend( runtime.options, opts );
-                    runtime.__promise.then( deferred.resolve );
-                    runtime.__client++;
-                }
-    
-                standalone && (runtime.__standalone = standalone);
-                return runtime;
-            };
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.disconnectRuntime = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                runtime.__client--;
-    
-                if ( runtime.__client <= 0 ) {
-                    cache.remove( runtime );
-                    delete runtime.__promise;
-                    runtime.destroy();
-                }
-    
-                runtime = null;
-            };
-    
-            this.exec = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                var args = Base.slice( arguments );
-                component && args.unshift( component );
-    
-                return runtime.exec.apply( this, args );
-            };
-    
-            this.getRuid = function() {
-                return runtime && runtime.uid;
-            };
-    
-            this.destroy = (function( destroy ) {
-                return function() {
-                    destroy && destroy.apply( this, arguments );
-                    this.trigger('destroy');
-                    this.off();
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                };
-            })( this.destroy );
-        }
-    
-        Mediator.installTo( RuntimeClient.prototype );
-        return RuntimeClient;
-    });
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/dnd',[
-        'base',
-        'mediator',
-        'runtime/client'
-    ], function( Base, Mediator, RuntimeClent ) {
-    
-        var $ = Base.$;
-    
-        function DragAndDrop( opts ) {
-            opts = this.options = $.extend({}, DragAndDrop.options, opts );
-    
-            opts.container = $( opts.container );
-    
-            if ( !opts.container.length ) {
-                return;
-            }
-    
-            RuntimeClent.call( this, 'DragAndDrop' );
-        }
-    
-        DragAndDrop.options = {
-            accept: null,
-            disableGlobalDnd: false
-        };
-    
-        Base.inherits( RuntimeClent, {
-            constructor: DragAndDrop,
-    
-            init: function() {
-                var me = this;
-    
-                me.connectRuntime( me.options, function() {
-                    me.exec('init');
-                    me.trigger('ready');
-                });
-            },
-    
-            destroy: function() {
-                this.disconnectRuntime();
-            }
-        });
-    
-        Mediator.installTo( DragAndDrop.prototype );
-    
-        return DragAndDrop;
-    });
-    /**
-     * @fileOverview 缁勪欢鍩虹被銆�
-     */
-    define('widgets/widget',[
-        'base',
-        'uploader'
-    ], function( Base, Uploader ) {
-    
-        var $ = Base.$,
-            _init = Uploader.prototype._init,
-            IGNORE = {},
-            widgetClass = [];
-    
-        function isArrayLike( obj ) {
-            if ( !obj ) {
-                return false;
-            }
-    
-            var length = obj.length,
-                type = $.type( obj );
-    
-            if ( obj.nodeType === 1 && length ) {
-                return true;
-            }
-    
-            return type === 'array' || type !== 'function' && type !== 'string' &&
-                    (length === 0 || typeof length === 'number' && length > 0 &&
-                    (length - 1) in obj);
-        }
-    
-        function Widget( uploader ) {
-            this.owner = uploader;
-            this.options = uploader.options;
-        }
-    
-        $.extend( Widget.prototype, {
-    
-            init: Base.noop,
-    
-            // 绫籅ackbone鐨勪簨浠剁洃鍚0鏄庯紝鐩戝惉uploader瀹炰緥涓婄殑浜嬩欢
-            // widget鐩存帴鏃犳硶鐩戝惉浜嬩欢锛屼簨浠跺彧鑳介�氳繃uploader鏉ヤ紶閫�
-            invoke: function( apiName, args ) {
-    
-                /*
-                    {
-                        'make-thumb': 'makeThumb'
-                    }
-                 */
-                var map = this.responseMap;
-    
-                // 濡傛灉鏃燗PI鍝嶅簲澹版槑鍒欏拷鐣�
-                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
-                        !$.isFunction( this[ map[ apiName ] ] ) ) {
-    
-                    return IGNORE;
-                }
-    
-                return this[ map[ apiName ] ].apply( this, args );
-    
-            },
-    
-            /**
-             * 鍙戦�佸懡浠ゃ�傚綋浼犲叆`callback`鎴栬�卄handler`涓繑鍥瀈promise`鏃躲�傝繑鍥炰竴涓綋鎵�鏈塦handler`涓殑promise閮藉畬鎴愬悗瀹屾垚鐨勬柊`promise`銆�
-             * @method request
-             * @grammar request( command, args ) => * | Promise
-             * @grammar request( command, args, callback ) => Promise
-             * @for  Uploader
-             */
-            request: function() {
-                return this.owner.request.apply( this.owner, arguments );
-            }
-        });
-    
-        // 鎵╁睍Uploader.
-        $.extend( Uploader.prototype, {
-    
-            // 瑕嗗啓_init鐢ㄦ潵鍒濆鍖杦idgets
-            _init: function() {
-                var me = this,
-                    widgets = me._widgets = [];
-    
-                $.each( widgetClass, function( _, klass ) {
-                    widgets.push( new klass( me ) );
-                });
-    
-                return _init.apply( me, arguments );
-            },
-    
-            request: function( apiName, args, callback ) {
-                var i = 0,
-                    widgets = this._widgets,
-                    len = widgets.length,
-                    rlts = [],
-                    dfds = [],
-                    widget, rlt, promise, key;
-    
-                args = isArrayLike( args ) ? args : [ args ];
-    
-                for ( ; i < len; i++ ) {
-                    widget = widgets[ i ];
-                    rlt = widget.invoke( apiName, args );
-    
-                    if ( rlt !== IGNORE ) {
-    
-                        // Deferred瀵硅薄
-                        if ( Base.isPromise( rlt ) ) {
-                            dfds.push( rlt );
-                        } else {
-                            rlts.push( rlt );
-                        }
-                    }
-                }
-    
-                // 濡傛灉鏈塩allback锛屽垯鐢ㄥ紓姝ユ柟寮忋��
-                if ( callback || dfds.length ) {
-                    promise = Base.when.apply( Base, dfds );
-                    key = promise.pipe ? 'pipe' : 'then';
-    
-                    // 寰堥噸瑕佷笉鑳藉垹闄ゃ�傚垹闄や簡浼氭寰幆銆�
-                    // 淇濊瘉鎵ц椤哄簭銆傝callback鎬绘槸鍦ㄤ笅涓�涓猼ick涓墽琛屻��
-                    return promise[ key ](function() {
-                                var deferred = Base.Deferred(),
-                                    args = arguments;
-    
-                                setTimeout(function() {
-                                    deferred.resolve.apply( deferred, args );
-                                }, 1 );
-    
-                                return deferred.promise();
-                            })[ key ]( callback || Base.noop );
-                } else {
-                    return rlts[ 0 ];
-                }
-            }
-        });
-    
-        /**
-         * 娣诲姞缁勪欢
-         * @param  {object} widgetProto 缁勪欢鍘熷瀷锛屾瀯閫犲嚱鏁伴�氳繃constructor灞炴�у畾涔�
-         * @param  {object} responseMap API鍚嶇О涓庡嚱鏁板疄鐜扮殑鏄犲皠
-         * @example
-         *     Uploader.register( {
-         *         init: function( options ) {},
-         *         makeThumb: function() {}
-         *     }, {
-         *         'make-thumb': 'makeThumb'
-         *     } );
-         */
-        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
-            var map = { init: 'init' },
-                klass;
-    
-            if ( arguments.length === 1 ) {
-                widgetProto = responseMap;
-                widgetProto.responseMap = map;
-            } else {
-                widgetProto.responseMap = $.extend( map, responseMap );
-            }
-    
-            klass = Base.inherits( Widget, widgetProto );
-            widgetClass.push( klass );
-    
-            return klass;
-        };
-    
-        return Widget;
-    });
-    /**
-     * @fileOverview DragAndDrop Widget銆�
-     */
-    define('widgets/filednd',[
-        'base',
-        'uploader',
-        'lib/dnd',
-        'widgets/widget'
-    ], function( Base, Uploader, Dnd ) {
-        var $ = Base.$;
-    
-        Uploader.options.dnd = '';
-    
-        /**
-         * @property {Selector} [dnd=undefined]  鎸囧畾Drag And Drop鎷栨嫿鐨勫鍣紝濡傛灉涓嶆寚瀹氾紝鍒欎笉鍚姩銆�
-         * @namespace options
-         * @for Uploader
-         */
-    
-        /**
-         * @event dndAccept
-         * @param {DataTransferItemList} items DataTransferItem
-         * @description 闃绘姝や簨浠跺彲浠ユ嫆缁濇煇浜涚被鍨嬬殑鏂囦欢鎷栧叆杩涙潵銆傜洰鍓嶅彧鏈� chrome 鎻愪緵杩欐牱鐨� API锛屼笖鍙兘閫氳繃 mime-type 楠岃瘉銆�
-         * @for  Uploader
-         */
-        return Uploader.register({
-            init: function( opts ) {
-    
-                if ( !opts.dnd ||
-                        this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                var me = this,
-                    deferred = Base.Deferred(),
-                    options = $.extend({}, {
-                        disableGlobalDnd: opts.disableGlobalDnd,
-                        container: opts.dnd,
-                        accept: opts.accept
-                    }),
-                    dnd;
-    
-                dnd = new Dnd( options );
-    
-                dnd.once( 'ready', deferred.resolve );
-                dnd.on( 'drop', function( files ) {
-                    me.request( 'add-file', [ files ]);
-                });
-    
-                // 妫�娴嬫枃浠舵槸鍚﹀叏閮ㄥ厑璁告坊鍔犮��
-                dnd.on( 'accept', function( items ) {
-                    return me.owner.trigger( 'dndAccept', items );
-                });
-    
-                dnd.init();
-    
-                return deferred.promise();
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/filepaste',[
-        'base',
-        'mediator',
-        'runtime/client'
-    ], function( Base, Mediator, RuntimeClent ) {
-    
-        var $ = Base.$;
-    
-        function FilePaste( opts ) {
-            opts = this.options = $.extend({}, opts );
-            opts.container = $( opts.container || document.body );
-            RuntimeClent.call( this, 'FilePaste' );
-        }
-    
-        Base.inherits( RuntimeClent, {
-            constructor: FilePaste,
-    
-            init: function() {
-                var me = this;
-    
-                me.connectRuntime( me.options, function() {
-                    me.exec('init');
-                    me.trigger('ready');
-                });
-            },
-    
-            destroy: function() {
-                this.exec('destroy');
-                this.disconnectRuntime();
-                this.off();
-            }
-        });
-    
-        Mediator.installTo( FilePaste.prototype );
-    
-        return FilePaste;
-    });
-    /**
-     * @fileOverview 缁勪欢鍩虹被銆�
-     */
-    define('widgets/filepaste',[
-        'base',
-        'uploader',
-        'lib/filepaste',
-        'widgets/widget'
-    ], function( Base, Uploader, FilePaste ) {
-        var $ = Base.$;
-    
-        /**
-         * @property {Selector} [paste=undefined]  鎸囧畾鐩戝惉paste浜嬩欢鐨勫鍣紝濡傛灉涓嶆寚瀹氾紝涓嶅惎鐢ㄦ鍔熻兘銆傛鍔熻兘涓洪�氳繃绮樿创鏉ユ坊鍔犳埅灞忕殑鍥剧墖銆傚缓璁缃负`document.body`.
-         * @namespace options
-         * @for Uploader
-         */
-        return Uploader.register({
-            init: function( opts ) {
-    
-                if ( !opts.paste ||
-                        this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                var me = this,
-                    deferred = Base.Deferred(),
-                    options = $.extend({}, {
-                        container: opts.paste,
-                        accept: opts.accept
-                    }),
-                    paste;
-    
-                paste = new FilePaste( options );
-    
-                paste.once( 'ready', deferred.resolve );
-                paste.on( 'paste', function( files ) {
-                    me.owner.request( 'add-file', [ files ]);
-                });
-                paste.init();
-    
-                return deferred.promise();
-            }
-        });
-    });
-    /**
-     * @fileOverview Blob
-     */
-    define('lib/blob',[
-        'base',
-        'runtime/client'
-    ], function( Base, RuntimeClient ) {
-    
-        function Blob( ruid, source ) {
-            var me = this;
-    
-            me.source = source;
-            me.ruid = ruid;
-    
-            RuntimeClient.call( me, 'Blob' );
-    
-            this.uid = source.uid || this.uid;
-            this.type = source.type || '';
-            this.size = source.size || 0;
-    
-            if ( ruid ) {
-                me.connectRuntime( ruid );
-            }
-        }
-    
-        Base.inherits( RuntimeClient, {
-            constructor: Blob,
-    
-            slice: function( start, end ) {
-                return this.exec( 'slice', start, end );
-            },
-    
-            getSource: function() {
-                return this.source;
-            }
-        });
-    
-        return Blob;
-    });
-    /**
-     * 涓轰簡缁熶竴鍖朏lash鐨凢ile鍜孒TML5鐨凢ile鑰屽瓨鍦ㄣ��
-     * 浠ヨ嚦浜庤璋冪敤Flash閲岄潰鐨凢ile锛屼篃鍙互鍍忚皟鐢℉TML5鐗堟湰鐨凢ile涓�涓嬨��
-     * @fileOverview File
-     */
-    define('lib/file',[
-        'base',
-        'lib/blob'
-    ], function( Base, Blob ) {
-    
-        var uid = 1,
-            rExt = /\.([^.]+)$/;
-    
-        function File( ruid, file ) {
-            var ext;
-    
-            Blob.apply( this, arguments );
-            this.name = file.name || ('untitled' + uid++);
-            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
-    
-            // todo 鏀寔鍏朵粬绫诲瀷鏂囦欢鐨勮浆鎹€��
-    
-            // 濡傛灉鏈塵imetype, 浣嗘槸鏂囦欢鍚嶉噷闈㈡病鏈夋壘鍑哄悗缂�瑙勫緥
-            if ( !ext && this.type ) {
-                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( this.type ) ?
-                        RegExp.$1.toLowerCase() : '';
-                this.name += '.' + ext;
-            }
-    
-            // 濡傛灉娌℃湁鎸囧畾mimetype, 浣嗘槸鐭ラ亾鏂囦欢鍚庣紑銆�
-            if ( !this.type &&  ~'jpg,jpeg,png,gif,bmp'.indexOf( ext ) ) {
-                this.type = 'image/' + (ext === 'jpg' ? 'jpeg' : ext);
-            }
-    
-            this.ext = ext;
-            this.lastModifiedDate = file.lastModifiedDate ||
-                    (new Date()).toLocaleString();
-        }
-    
-        return Base.inherits( Blob, File );
-    });
-    
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/filepicker',[
-        'base',
-        'runtime/client',
-        'lib/file'
-    ], function( Base, RuntimeClent, File ) {
-    
-        var $ = Base.$;
-    
-        function FilePicker( opts ) {
-            opts = this.options = $.extend({}, FilePicker.options, opts );
-    
-            opts.container = $( opts.id );
-    
-            if ( !opts.container.length ) {
-                throw new Error('鎸夐挳鎸囧畾閿欒');
-            }
-    
-            opts.innerHTML = opts.innerHTML || opts.label ||
-                    opts.container.html() || '';
-    
-            opts.button = $( opts.button || document.createElement('div') );
-            opts.button.html( opts.innerHTML );
-            opts.container.html( opts.button );
-    
-            RuntimeClent.call( this, 'FilePicker', true );
-        }
-    
-        FilePicker.options = {
-            button: null,
-            container: null,
-            label: null,
-            innerHTML: null,
-            multiple: true,
-            accept: null,
-            name: 'file'
-        };
-    
-        Base.inherits( RuntimeClent, {
-            constructor: FilePicker,
-    
-            init: function() {
-                var me = this,
-                    opts = me.options,
-                    button = opts.button;
-    
-                button.addClass('webuploader-pick');
-    
-                me.on( 'all', function( type ) {
-                    var files;
-    
-                    switch ( type ) {
-                        case 'mouseenter':
-                            button.addClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'mouseleave':
-                            button.removeClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'change':
-                            files = me.exec('getFiles');
-                            me.trigger( 'select', $.map( files, function( file ) {
-                                file = new File( me.getRuid(), file );
-    
-                                // 璁板綍鏉ユ簮銆�
-                                file._refer = opts.container;
-                                return file;
-                            }), opts.container );
-                            break;
-                    }
-                });
-    
-                me.connectRuntime( opts, function() {
-                    me.refresh();
-                    me.exec( 'init', opts );
-                    me.trigger('ready');
-                });
-    
-                $( window ).on( 'resize', function() {
-                    me.refresh();
-                });
-            },
-    
-            refresh: function() {
-                var shimContainer = this.getRuntime().getContainer(),
-                    button = this.options.button,
-                    width = button.outerWidth ?
-                            button.outerWidth() : button.width(),
-    
-                    height = button.outerHeight ?
-                            button.outerHeight() : button.height(),
-    
-                    pos = button.offset();
-    
-                width && height && shimContainer.css({
-                    bottom: 'auto',
-                    right: 'auto',
-                    width: width + 'px',
-                    height: height + 'px'
-                }).offset( pos );
-            },
-    
-            enable: function() {
-                var btn = this.options.button;
-    
-                btn.removeClass('webuploader-pick-disable');
-                this.refresh();
-            },
-    
-            disable: function() {
-                var btn = this.options.button;
-    
-                this.getRuntime().getContainer().css({
-                    top: '-99999px'
-                });
-    
-                btn.addClass('webuploader-pick-disable');
-            },
-    
-            destroy: function() {
-                if ( this.runtime ) {
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                }
-            }
-        });
-    
-        return FilePicker;
-    });
-    
-    /**
-     * @fileOverview 鏂囦欢閫夋嫨鐩稿叧
-     */
-    define('widgets/filepicker',[
-        'base',
-        'uploader',
-        'lib/filepicker',
-        'widgets/widget'
-    ], function( Base, Uploader, FilePicker ) {
-        var $ = Base.$;
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Selector | Object} [pick=undefined]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             *
-             * * `id` {Seletor} 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             * * `label` {String} 璇烽噰鐢� `innerHTML` 浠f浛
-             * * `innerHTML` {String} 鎸囧畾鎸夐挳鏂囧瓧銆備笉鎸囧畾鏃朵紭鍏堜粠鎸囧畾鐨勫鍣ㄤ腑鐪嬫槸鍚﹁嚜甯︽枃瀛椼��
-             * * `multiple` {Boolean} 鏄惁寮�璧峰悓鏃堕�夋嫨澶氫釜鏂囦欢鑳藉姏銆�
-             */
-            pick: null,
-    
-            /**
-             * @property {Arroy} [accept=null]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾鎺ュ彈鍝簺绫诲瀷鐨勬枃浠躲�� 鐢变簬鐩墠杩樻湁ext杞琺imeType琛紝鎵�浠ヨ繖閲岄渶瑕佸垎寮�鎸囧畾銆�
-             *
-             * * `title` {String} 鏂囧瓧鎻忚堪
-             * * `extensions` {String} 鍏佽鐨勬枃浠跺悗缂�锛屼笉甯︾偣锛屽涓敤閫楀彿鍒嗗壊銆�
-             * * `mimeTypes` {String} 澶氫釜鐢ㄩ�楀彿鍒嗗壊銆�
-             *
-             * 濡傦細
-             *
-             * ```
-             * {
-             *     title: 'Images',
-             *     extensions: 'gif,jpg,jpeg,bmp,png',
-             *     mimeTypes: 'image/*'
-             * }
-             * ```
-             */
-            accept: null/*{
-                title: 'Images',
-                extensions: 'gif,jpg,jpeg,bmp,png',
-                mimeTypes: 'image/*'
-            }*/
-        });
-    
-        return Uploader.register({
-            'add-btn': 'addButton',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable'
-        }, {
-    
-            init: function( opts ) {
-                this.pickers = [];
-                return opts.pick && this.addButton( opts.pick );
-            },
-    
-            refresh: function() {
-                $.each( this.pickers, function() {
-                    this.refresh();
-                });
-            },
-    
-            /**
-             * @method addButton
-             * @for Uploader
-             * @grammar addButton( pick ) => Promise
-             * @description
-             * 娣诲姞鏂囦欢閫夋嫨鎸夐挳锛屽鏋滀竴涓寜閽笉澶燂紝闇�瑕佽皟鐢ㄦ鏂规硶鏉ユ坊鍔犮�傚弬鏁拌窡[options.pick](#WebUploader:Uploader:options)涓�鑷淬��
-             * @example
-             * uploader.addButton({
-             *     id: '#btnContainer',
-             *     innerHTML: '閫夋嫨鏂囦欢'
-             * });
-             */
-            addButton: function( pick ) {
-                var me = this,
-                    opts = me.options,
-                    accept = opts.accept,
-                    options, picker, deferred;
-    
-                if ( !pick ) {
-                    return;
-                }
-    
-                deferred = Base.Deferred();
-                $.isPlainObject( pick ) || (pick = {
-                    id: pick
-                });
-    
-                options = $.extend({}, pick, {
-                    accept: $.isPlainObject( accept ) ? [ accept ] : accept,
-                    swf: opts.swf,
-                    runtimeOrder: opts.runtimeOrder
-                });
-    
-                picker = new FilePicker( options );
-    
-                picker.once( 'ready', deferred.resolve );
-                picker.on( 'select', function( files ) {
-                    me.owner.request( 'add-file', [ files ]);
-                });
-                picker.init();
-    
-                this.pickers.push( picker );
-    
-                return deferred.promise();
-            },
-    
-            disable: function() {
-                $.each( this.pickers, function() {
-                    this.disable();
-                });
-            },
-    
-            enable: function() {
-                $.each( this.pickers, function() {
-                    this.enable();
-                });
-            }
-        });
-    });
-    /**
-     * @fileOverview Image
-     */
-    define('lib/image',[
-        'base',
-        'runtime/client',
-        'lib/blob'
-    ], function( Base, RuntimeClient, Blob ) {
-        var $ = Base.$;
-    
-        // 鏋勯�犲櫒銆�
-        function Image( opts ) {
-            this.options = $.extend({}, Image.options, opts );
-            RuntimeClient.call( this, 'Image' );
-    
-            this.on( 'load', function() {
-                this._info = this.exec('info');
-                this._meta = this.exec('meta');
-            });
-        }
-    
-        // 榛樿閫夐」銆�
-        Image.options = {
-    
-            // 榛樿鐨勫浘鐗囧鐞嗚川閲�
-            quality: 90,
-    
-            // 鏄惁瑁佸壀
-            crop: false,
-    
-            // 鏄惁淇濈暀澶撮儴淇℃伅
-            preserveHeaders: true,
-    
-            // 鏄惁鍏佽鏀惧ぇ銆�
-            allowMagnify: true
-        };
-    
-        // 缁ф壙RuntimeClient.
-        Base.inherits( RuntimeClient, {
-            constructor: Image,
-    
-            info: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._info = val;
-                    return this;
-                }
-    
-                // getter
-                return this._info;
-            },
-    
-            meta: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._meta = val;
-                    return this;
-                }
-    
-                // getter
-                return this._meta;
-            },
-    
-            loadFromBlob: function( blob ) {
-                var me = this,
-                    ruid = blob.getRuid();
-    
-                this.connectRuntime( ruid, function() {
-                    me.exec( 'init', me.options );
-                    me.exec( 'loadFromBlob', blob );
-                });
-            },
-    
-            resize: function() {
-                var args = Base.slice( arguments );
-                return this.exec.apply( this, [ 'resize' ].concat( args ) );
-            },
-    
-            getAsDataUrl: function( type ) {
-                return this.exec( 'getAsDataUrl', type );
-            },
-    
-            getAsBlob: function( type ) {
-                var blob = this.exec( 'getAsBlob', type );
-    
-                return new Blob( this.getRuid(), blob );
-            }
-        });
-    
-        return Image;
-    });
-    /**
-     * @fileOverview 鍥剧墖鎿嶄綔, 璐熻矗棰勮鍥剧墖鍜屼笂浼犲墠鍘嬬缉鍥剧墖
-     */
-    define('widgets/image',[
-        'base',
-        'uploader',
-        'lib/image',
-        'widgets/widget'
-    ], function( Base, Uploader, Image ) {
-    
-        var $ = Base.$,
-            throttle;
-    
-        // 鏍规嵁瑕佸鐞嗙殑鏂囦欢澶у皬鏉ヨ妭娴侊紝涓�娆′笉鑳藉鐞嗗お澶氾紝浼氬崱銆�
-        throttle = (function( max ) {
-            var occupied = 0,
-                waiting = [],
-                tick = function() {
-                    var item;
-    
-                    while ( waiting.length && occupied < max ) {
-                        item = waiting.shift();
-                        occupied += item[ 0 ];
-                        item[ 1 ]();
-                    }
-                };
-    
-            return function( emiter, size, cb ) {
-                waiting.push([ size, cb ]);
-                emiter.once( 'destroy', function() {
-                    occupied -= size;
-                    setTimeout( tick, 1 );
-                });
-                setTimeout( tick, 1 );
-            };
-        })( 5 * 1024 * 1024 );
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Object} [thumb]
-             * @namespace options
-             * @for Uploader
-             * @description 閰嶇疆鐢熸垚缂╃暐鍥剧殑閫夐」銆�
-             *
-             * 榛樿涓猴細
-             *
-             * ```javascript
-             * {
-             *     width: 110,
-             *     height: 110,
-             *
-             *     // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-             *     quality: 70,
-             *
-             *     // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-             *     allowMagnify: true,
-             *
-             *     // 鏄惁鍏佽瑁佸壀銆�
-             *     crop: true,
-             *
-             *     // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-             *     preserveHeaders: false,
-             *
-             *     // 涓虹┖鐨勮瘽鍒欎繚鐣欏師鏈夊浘鐗囨牸寮忋��
-             *     // 鍚﹀垯寮哄埗杞崲鎴愭寚瀹氱殑绫诲瀷銆�
-             *     type: 'image/jpeg'
-             * }
-             * ```
-             */
-            thumb: {
-                width: 110,
-                height: 110,
-                quality: 70,
-                allowMagnify: true,
-                crop: true,
-                preserveHeaders: false,
-    
-                // 涓虹┖鐨勮瘽鍒欎繚鐣欏師鏈夊浘鐗囨牸寮忋��
-                // 鍚﹀垯寮哄埗杞崲鎴愭寚瀹氱殑绫诲瀷銆�
-                // IE 8涓嬮潰 base64 澶у皬涓嶈兘瓒呰繃 32K 鍚﹀垯棰勮澶辫触锛岃�岄潪 jpeg 缂栫爜鐨勫浘鐗囧緢鍙�
-                // 鑳戒細瓒呰繃 32k, 鎵�浠ヨ繖閲岃缃垚棰勮鐨勬椂鍊欓兘鏄� image/jpeg
-                type: 'image/jpeg'
-            },
-    
-            /**
-             * @property {Object} [compress]
-             * @namespace options
-             * @for Uploader
-             * @description 閰嶇疆鍘嬬缉鐨勫浘鐗囩殑閫夐」銆傚鏋滄閫夐」涓篳false`, 鍒欏浘鐗囧湪涓婁紶鍓嶄笉杩涜鍘嬬缉銆�
-             *
-             * 榛樿涓猴細
-             *
-             * ```javascript
-             * {
-             *     width: 1600,
-             *     height: 1600,
-             *
-             *     // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-             *     quality: 90,
-             *
-             *     // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-             *     allowMagnify: false,
-             *
-             *     // 鏄惁鍏佽瑁佸壀銆�
-             *     crop: false,
-             *
-             *     // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-             *     preserveHeaders: true
-             * }
-             * ```
-             */
-            compress: {
-                width: 1600,
-                height: 1600,
-                quality: 90,
-                allowMagnify: false,
-                crop: false,
-                preserveHeaders: true
-            }
-        });
-    
-        return Uploader.register({
-            'make-thumb': 'makeThumb',
-            'before-send-file': 'compressImage'
-        }, {
-    
-    
-            /**
-             * 鐢熸垚缂╃暐鍥撅紝姝よ繃绋嬩负寮傛锛屾墍浠ラ渶瑕佷紶鍏callback`銆�
-             * 閫氬父鎯呭喌鍦ㄥ浘鐗囧姞鍏ラ槦閲屽悗璋冪敤姝ゆ柟娉曟潵鐢熸垚棰勮鍥句互澧炲己浜や簰鏁堟灉銆�
-             *
-             * `callback`涓彲浠ユ帴鏀跺埌涓や釜鍙傛暟銆�
-             * * 绗竴涓负error锛屽鏋滅敓鎴愮缉鐣ュ浘鏈夐敊璇紝姝rror灏嗕负鐪熴��
-             * * 绗簩涓负ret, 缂╃暐鍥剧殑Data URL鍊笺��
-             *
-             * **娉ㄦ剰**
-             * Date URL鍦↖E6/7涓笉鏀寔锛屾墍浠ヤ笉鐢ㄨ皟鐢ㄦ鏂规硶浜嗭紝鐩存帴鏄剧ず涓�寮犳殏涓嶆敮鎸侀瑙堝浘鐗囧ソ浜嗐��
-             *
-             *
-             * @method makeThumb
-             * @grammar makeThumb( file, callback ) => undefined
-             * @grammar makeThumb( file, callback, width, height ) => undefined
-             * @for Uploader
-             * @example
-             *
-             * uploader.on( 'fileQueued', function( file ) {
-             *     var $li = ...;
-             *
-             *     uploader.makeThumb( file, function( error, ret ) {
-             *         if ( error ) {
-             *             $li.text('棰勮閿欒');
-             *         } else {
-             *             $li.append('<img alt="" src="' + ret + '" />');
-             *         }
-             *     });
-             *
-             * });
-             */
-            makeThumb: function( file, cb, width, height ) {
-                var opts, image;
-    
-                file = this.request( 'get-file', file );
-    
-                // 鍙瑙堝浘鐗囨牸寮忋��
-                if ( !file.type.match( /^image/ ) ) {
-                    cb( true );
-                    return;
-                }
-    
-                opts = $.extend({}, this.options.thumb );
-    
-                // 濡傛灉浼犲叆鐨勬槸object.
-                if ( $.isPlainObject( width ) ) {
-                    opts = $.extend( opts, width );
-                    width = null;
-                }
-    
-                width = width || opts.width;
-                height = height || opts.height;
-    
-                image = new Image( opts );
-    
-                image.once( 'load', function() {
-                    file._info = file._info || image.info();
-                    file._meta = file._meta || image.meta();
-                    image.resize( width, height );
-                });
-    
-                image.once( 'complete', function() {
-                    cb( false, image.getAsDataUrl( opts.type ) );
-                    image.destroy();
-                });
-    
-                image.once( 'error', function() {
-                    cb( true );
-                    image.destroy();
-                });
-    
-                throttle( image, file.source.size, function() {
-                    file._info && image.info( file._info );
-                    file._meta && image.meta( file._meta );
-                    image.loadFromBlob( file.source );
-                });
-            },
-    
-            compressImage: function( file ) {
-                var opts = this.options.compress || this.options.resize,
-                    compressSize = opts && opts.compressSize || 300 * 1024,
-                    image, deferred;
-    
-                file = this.request( 'get-file', file );
-    
-                // 鍙瑙堝浘鐗囨牸寮忋��
-                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
-                        file.size < compressSize ||
-                        file._compressed ) {
-                    return;
-                }
-    
-                opts = $.extend({}, opts );
-                deferred = Base.Deferred();
-    
-                image = new Image( opts );
-    
-                deferred.always(function() {
-                    image.destroy();
-                    image = null;
-                });
-                image.once( 'error', deferred.reject );
-                image.once( 'load', function() {
-                    file._info = file._info || image.info();
-                    file._meta = file._meta || image.meta();
-                    image.resize( opts.width, opts.height );
-                });
-    
-                image.once( 'complete', function() {
-                    var blob, size;
-    
-                    // 绉诲姩绔� UC / qq 娴忚鍣ㄧ殑鏃犲浘妯″紡涓�
-                    // ctx.getImageData 澶勭悊澶у浘鐨勬椂鍊欎細鎶� Exception
-                    // INDEX_SIZE_ERR: DOM Exception 1
-                    try {
-                        blob = image.getAsBlob( opts.type );
-    
-                        size = file.size;
-    
-                        // 濡傛灉鍘嬬缉鍚庯紝姣斿師鏉ヨ繕澶у垯涓嶇敤鍘嬬缉鍚庣殑銆�
-                        if ( blob.size < size ) {
-                            // file.source.destroy && file.source.destroy();
-                            file.source = blob;
-                            file.size = blob.size;
-    
-                            file.trigger( 'resize', blob.size, size );
-                        }
-    
-                        // 鏍囪锛岄伩鍏嶉噸澶嶅帇缂┿��
-                        file._compressed = true;
-                        deferred.resolve();
-                    } catch ( e ) {
-                        // 鍑洪敊浜嗙洿鎺ョ户缁紝璁╁叾涓婁紶鍘熷鍥剧墖
-                        deferred.resolve();
-                    }
-                });
-    
-                file._info && image.info( file._info );
-                file._meta && image.meta( file._meta );
-    
-                image.loadFromBlob( file.source );
-                return deferred.promise();
-            }
-        });
-    });
-    /**
-     * @fileOverview 鏂囦欢灞炴�у皝瑁�
-     */
-    define('file',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            idPrefix = 'WU_FILE_',
-            idSuffix = 0,
-            rExt = /\.([^.]+)$/,
-            statusMap = {};
-    
-        function gid() {
-            return idPrefix + idSuffix++;
-        }
-    
-        /**
-         * 鏂囦欢绫�
-         * @class File
-         * @constructor 鏋勯�犲嚱鏁�
-         * @grammar new File( source ) => File
-         * @param {Lib.File} source [lib.File](#Lib.File)瀹炰緥, 姝ource瀵硅薄鏄甫鏈塕untime淇℃伅鐨勩��
-         */
-        function WUFile( source ) {
-    
-            /**
-             * 鏂囦欢鍚嶏紝鍖呮嫭鎵╁睍鍚嶏紙鍚庣紑锛�
-             * @property name
-             * @type {string}
-             */
-            this.name = source.name || 'Untitled';
-    
-            /**
-             * 鏂囦欢浣撶Н锛堝瓧鑺傦級
-             * @property size
-             * @type {uint}
-             * @default 0
-             */
-            this.size = source.size || 0;
-    
-            /**
-             * 鏂囦欢MIMETYPE绫诲瀷锛屼笌鏂囦欢绫诲瀷鐨勫搴斿叧绯昏鍙傝�僛http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
-             * @property type
-             * @type {string}
-             * @default 'application'
-             */
-            this.type = source.type || 'application';
-    
-            /**
-             * 鏂囦欢鏈�鍚庝慨鏀规棩鏈�
-             * @property lastModifiedDate
-             * @type {int}
-             * @default 褰撳墠鏃堕棿鎴�
-             */
-            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
-    
-            /**
-             * 鏂囦欢ID锛屾瘡涓璞″叿鏈夊敮涓�ID锛屼笌鏂囦欢鍚嶆棤鍏�
-             * @property id
-             * @type {string}
-             */
-            this.id = gid();
-    
-            /**
-             * 鏂囦欢鎵╁睍鍚嶏紝閫氳繃鏂囦欢鍚嶈幏鍙栵紝渚嬪test.png鐨勬墿灞曞悕涓簆ng
-             * @property ext
-             * @type {string}
-             */
-            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
-    
-    
-            /**
-             * 鐘舵�佹枃瀛楄鏄庛�傚湪涓嶅悓鐨剆tatus璇涓嬫湁涓嶅悓鐨勭敤閫斻��
-             * @property statusText
-             * @type {string}
-             */
-            this.statusText = '';
-    
-            // 瀛樺偍鏂囦欢鐘舵�侊紝闃叉閫氳繃灞炴�х洿鎺ヤ慨鏀�
-            statusMap[ this.id ] = WUFile.Status.INITED;
-    
-            this.source = source;
-            this.loaded = 0;
-    
-            this.on( 'error', function( msg ) {
-                this.setStatus( WUFile.Status.ERROR, msg );
-            });
-        }
-    
-        $.extend( WUFile.prototype, {
-    
-            /**
-             * 璁剧疆鐘舵�侊紝鐘舵�佸彉鍖栨椂浼氳Е鍙慲change`浜嬩欢銆�
-             * @method setStatus
-             * @grammar setStatus( status[, statusText] );
-             * @param {File.Status|String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @param {String} [statusText=''] 鐘舵�佽鏄庯紝甯稿湪error鏃朵娇鐢紝鐢╤ttp, abort,server绛夋潵鏍囪鏄敱浜庝粈涔堝師鍥犲鑷存枃浠堕敊璇��
-             */
-            setStatus: function( status, text ) {
-    
-                var prevStatus = statusMap[ this.id ];
-    
-                typeof text !== 'undefined' && (this.statusText = text);
-    
-                if ( status !== prevStatus ) {
-                    statusMap[ this.id ] = status;
-                    /**
-                     * 鏂囦欢鐘舵�佸彉鍖�
-                     * @event statuschange
-                     */
-                    this.trigger( 'statuschange', status, prevStatus );
-                }
-    
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鐘舵��
-             * @return {File.Status}
-             * @example
-                     鏂囦欢鐘舵�佸叿浣撳寘鎷互涓嬪嚑绉嶇被鍨嬶細
-                     {
-                         // 鍒濆鍖�
-                        INITED:     0,
-                        // 宸插叆闃熷垪
-                        QUEUED:     1,
-                        // 姝e湪涓婁紶
-                        PROGRESS:     2,
-                        // 涓婁紶鍑洪敊
-                        ERROR:         3,
-                        // 涓婁紶鎴愬姛
-                        COMPLETE:     4,
-                        // 涓婁紶鍙栨秷
-                        CANCELLED:     5
-                    }
-             */
-            getStatus: function() {
-                return statusMap[ this.id ];
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鍘熷淇℃伅銆�
-             * @return {*}
-             */
-            getSource: function() {
-                return this.source;
-            },
-    
-            destory: function() {
-                delete statusMap[ this.id ];
-            }
-        });
-    
-        Mediator.installTo( WUFile.prototype );
-    
-        /**
-         * 鏂囦欢鐘舵�佸�硷紝鍏蜂綋鍖呮嫭浠ヤ笅鍑犵绫诲瀷锛�
-         * * `inited` 鍒濆鐘舵��
-         * * `queued` 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-         * * `progress` 涓婁紶涓�
-         * * `complete` 涓婁紶瀹屾垚銆�
-         * * `error` 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-         * * `interrupt` 涓婁紶涓柇锛屽彲缁紶銆�
-         * * `invalid` 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆備細鑷姩浠庨槦鍒椾腑绉婚櫎銆�
-         * * `cancelled` 鏂囦欢琚Щ闄ゃ��
-         * @property {Object} Status
-         * @namespace File
-         * @class File
-         * @static
-         */
-        WUFile.Status = {
-            INITED:     'inited',    // 鍒濆鐘舵��
-            QUEUED:     'queued',    // 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-            PROGRESS:   'progress',    // 涓婁紶涓�
-            ERROR:      'error',    // 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-            COMPLETE:   'complete',    // 涓婁紶瀹屾垚銆�
-            CANCELLED:  'cancelled',    // 涓婁紶鍙栨秷銆�
-            INTERRUPT:  'interrupt',    // 涓婁紶涓柇锛屽彲缁紶銆�
-            INVALID:    'invalid'    // 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆�
-        };
-    
-        return WUFile;
-    });
-    
-    /**
-     * @fileOverview 鏂囦欢闃熷垪
-     */
-    define('queue',[
-        'base',
-        'mediator',
-        'file'
-    ], function( Base, Mediator, WUFile ) {
-    
-        var $ = Base.$,
-            STATUS = WUFile.Status;
-    
-        /**
-         * 鏂囦欢闃熷垪, 鐢ㄦ潵瀛樺偍鍚勪釜鐘舵�佷腑鐨勬枃浠躲��
-         * @class Queue
-         * @extends Mediator
-         */
-        function Queue() {
-    
-            /**
-             * 缁熻鏂囦欢鏁般��
-             * * `numOfQueue` 闃熷垪涓殑鏂囦欢鏁般��
-             * * `numOfSuccess` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `numOfCancel` 琚Щ闄ょ殑鏂囦欢鏁�
-             * * `numOfProgress` 姝e湪涓婁紶涓殑鏂囦欢鏁�
-             * * `numOfUploadFailed` 涓婁紶閿欒鐨勬枃浠舵暟銆�
-             * * `numOfInvalid` 鏃犳晥鐨勬枃浠舵暟銆�
-             * @property {Object} stats
-             */
-            this.stats = {
-                numOfQueue: 0,
-                numOfSuccess: 0,
-                numOfCancel: 0,
-                numOfProgress: 0,
-                numOfUploadFailed: 0,
-                numOfInvalid: 0
-            };
-    
-            // 涓婁紶闃熷垪锛屼粎鍖呮嫭绛夊緟涓婁紶鐨勬枃浠�
-            this._queue = [];
-    
-            // 瀛樺偍鎵�鏈夋枃浠�
-            this._map = {};
-        }
-    
-        $.extend( Queue.prototype, {
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀熬閮�
-             *
-             * @method append
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            append: function( file ) {
-                this._queue.push( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀ご閮�
-             *
-             * @method prepend
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            prepend: function( file ) {
-                this._queue.unshift( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢瀵硅薄
-             *
-             * @method getFile
-             * @param  {String} fileId   鏂囦欢ID
-             * @return {File}
-             */
-            getFile: function( fileId ) {
-                if ( typeof fileId !== 'string' ) {
-                    return fileId;
-                }
-                return this._map[ fileId ];
-            },
-    
-            /**
-             * 浠庨槦鍒椾腑鍙栧嚭涓�涓寚瀹氱姸鎬佺殑鏂囦欢銆�
-             * @grammar fetch( status ) => File
-             * @method fetch
-             * @param {String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @return {File} [File](#WebUploader:File)
-             */
-            fetch: function( status ) {
-                var len = this._queue.length,
-                    i, file;
-    
-                status = status || STATUS.QUEUED;
-    
-                for ( i = 0; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( status === file.getStatus() ) {
-                        return file;
-                    }
-                }
-    
-                return null;
-            },
-    
-            /**
-             * 瀵归槦鍒楄繘琛屾帓搴忥紝鑳藉鎺у埗鏂囦欢涓婁紶椤哄簭銆�
-             * @grammar sort( fn ) => undefined
-             * @method sort
-             * @param {Function} fn 鎺掑簭鏂规硶
-             */
-            sort: function( fn ) {
-                if ( typeof fn === 'function' ) {
-                    this._queue.sort( fn );
-                }
-            },
-    
-            /**
-             * 鑾峰彇鎸囧畾绫诲瀷鐨勬枃浠跺垪琛�, 鍒楄〃涓瘡涓�涓垚鍛樹负[File](#WebUploader:File)瀵硅薄銆�
-             * @grammar getFiles( [status1[, status2 ...]] ) => Array
-             * @method getFiles
-             * @param {String} [status] [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             */
-            getFiles: function() {
-                var sts = [].slice.call( arguments, 0 ),
-                    ret = [],
-                    i = 0,
-                    len = this._queue.length,
-                    file;
-    
-                for ( ; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
-                        continue;
-                    }
-    
-                    ret.push( file );
-                }
-    
-                return ret;
-            },
-    
-            _fileAdded: function( file ) {
-                var me = this,
-                    existing = this._map[ file.id ];
-    
-                if ( !existing ) {
-                    this._map[ file.id ] = file;
-    
-                    file.on( 'statuschange', function( cur, pre ) {
-                        me._onFileStatusChange( cur, pre );
-                    });
-                }
-    
-                file.setStatus( STATUS.QUEUED );
-            },
-    
-            _onFileStatusChange: function( curStatus, preStatus ) {
-                var stats = this.stats;
-    
-                switch ( preStatus ) {
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress--;
-                        break;
-    
-                    case STATUS.QUEUED:
-                        stats.numOfQueue --;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed--;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid--;
-                        break;
-                }
-    
-                switch ( curStatus ) {
-                    case STATUS.QUEUED:
-                        stats.numOfQueue++;
-                        break;
-    
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress++;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed++;
-                        break;
-    
-                    case STATUS.COMPLETE:
-                        stats.numOfSuccess++;
-                        break;
-    
-                    case STATUS.CANCELLED:
-                        stats.numOfCancel++;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid++;
-                        break;
-                }
-            }
-    
-        });
-    
-        Mediator.installTo( Queue.prototype );
-    
-        return Queue;
-    });
-    /**
-     * @fileOverview 闃熷垪
-     */
-    define('widgets/queue',[
-        'base',
-        'uploader',
-        'queue',
-        'file',
-        'lib/file',
-        'runtime/client',
-        'widgets/widget'
-    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
-    
-        var $ = Base.$,
-            rExt = /\.\w+$/,
-            Status = WUFile.Status;
-    
-        return Uploader.register({
-            'sort-files': 'sortFiles',
-            'add-file': 'addFiles',
-            'get-file': 'getFile',
-            'fetch-file': 'fetchFile',
-            'get-stats': 'getStats',
-            'get-files': 'getFiles',
-            'remove-file': 'removeFile',
-            'retry': 'retry',
-            'reset': 'reset',
-            'accept-file': 'acceptFile'
-        }, {
-    
-            init: function( opts ) {
-                var me = this,
-                    deferred, len, i, item, arr, accept, runtime;
-    
-                if ( $.isPlainObject( opts.accept ) ) {
-                    opts.accept = [ opts.accept ];
-                }
-    
-                // accept涓殑涓敓鎴愬尮閰嶆鍒欍��
-                if ( opts.accept ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        item = opts.accept[ i ].extensions;
-                        item && arr.push( item );
-                    }
-    
-                    if ( arr.length ) {
-                        accept = '\\.' + arr.join(',')
-                                .replace( /,/g, '$|\\.' )
-                                .replace( /\*/g, '.*' ) + '$';
-                    }
-    
-                    me.accept = new RegExp( accept, 'i' );
-                }
-    
-                me.queue = new Queue();
-                me.stats = me.queue.stats;
-    
-                // 濡傛灉褰撳墠涓嶆槸html5杩愯鏃讹紝閭e氨绠椾簡銆�
-                // 涓嶆墽琛屽悗缁搷浣�
-                if ( this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                // 鍒涘缓涓�涓� html5 杩愯鏃剁殑 placeholder
-                // 浠ヨ嚦浜庡閮ㄦ坊鍔犲師鐢� File 瀵硅薄鐨勬椂鍊欒兘姝g‘鍖呰9涓�涓嬩緵 webuploader 浣跨敤銆�
-                deferred = Base.Deferred();
-                runtime = new RuntimeClient('Placeholder');
-                runtime.connectRuntime({
-                    runtimeOrder: 'html5'
-                }, function() {
-                    me._ruid = runtime.getRuid();
-                    deferred.resolve();
-                });
-                return deferred.promise();
-            },
-    
-    
-            // 涓轰簡鏀寔澶栭儴鐩存帴娣诲姞涓�涓師鐢烣ile瀵硅薄銆�
-            _wrapFile: function( file ) {
-                if ( !(file instanceof WUFile) ) {
-    
-                    if ( !(file instanceof File) ) {
-                        if ( !this._ruid ) {
-                            throw new Error('Can\'t add external files.');
-                        }
-                        file = new File( this._ruid, file );
-                    }
-    
-                    file = new WUFile( file );
-                }
-    
-                return file;
-            },
-    
-            // 鍒ゆ柇鏂囦欢鏄惁鍙互琚姞鍏ラ槦鍒�
-            acceptFile: function( file ) {
-                var invalid = !file || file.size < 6 || this.accept &&
-    
-                        // 濡傛灉鍚嶅瓧涓湁鍚庣紑锛屾墠鍋氬悗缂�鐧藉悕鍗曞鐞嗐��
-                        rExt.exec( file.name ) && !this.accept.test( file.name );
-    
-                return !invalid;
-            },
-    
-    
-            /**
-             * @event beforeFileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪涔嬪墠瑙﹀彂锛屾浜嬩欢鐨刪andler杩斿洖鍊间负`false`锛屽垯姝ゆ枃浠朵笉浼氳娣诲姞杩涘叆闃熷垪銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event fileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            _addFile: function( file ) {
-                var me = this;
-    
-                file = me._wrapFile( file );
-    
-                // 涓嶈繃绫诲瀷鍒ゆ柇鍏佽涓嶅厑璁革紝鍏堟淳閫� `beforeFileQueued`
-                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
-                    return;
-                }
-    
-                // 绫诲瀷涓嶅尮閰嶏紝鍒欐淳閫侀敊璇簨浠讹紝骞惰繑鍥炪��
-                if ( !me.acceptFile( file ) ) {
-                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
-                    return;
-                }
-    
-                me.queue.append( file );
-                me.owner.trigger( 'fileQueued', file );
-                return file;
-            },
-    
-            getFile: function( fileId ) {
-                return this.queue.getFile( fileId );
-            },
-    
-            /**
-             * @event filesQueued
-             * @param {File} files 鏁扮粍锛屽唴瀹逛负鍘熷File(lib/File锛夊璞°��
-             * @description 褰撲竴鎵规枃浠舵坊鍔犺繘闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @method addFiles
-             * @grammar addFiles( file ) => undefined
-             * @grammar addFiles( [file1, file2 ...] ) => undefined
-             * @param {Array of File or File} [files] Files 瀵硅薄 鏁扮粍
-             * @description 娣诲姞鏂囦欢鍒伴槦鍒�
-             * @for  Uploader
-             */
-            addFiles: function( files ) {
-                var me = this;
-    
-                if ( !files.length ) {
-                    files = [ files ];
-                }
-    
-                files = $.map( files, function( file ) {
-                    return me._addFile( file );
-                });
-    
-                me.owner.trigger( 'filesQueued', files );
-    
-                if ( me.options.auto ) {
-                    me.request('start-upload');
-                }
-            },
-    
-            getStats: function() {
-                return this.stats;
-            },
-    
-            /**
-             * @event fileDequeued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰绉婚櫎闃熷垪鍚庤Е鍙戙��
-             * @for  Uploader
-             */
-    
-            /**
-             * @method removeFile
-             * @grammar removeFile( file ) => undefined
-             * @grammar removeFile( id ) => undefined
-             * @param {File|id} file File瀵硅薄鎴栬繖File瀵硅薄鐨刬d
-             * @description 绉婚櫎鏌愪竴鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             *
-             * $li.on('click', '.remove-this', function() {
-             *     uploader.removeFile( file );
-             * })
-             */
-            removeFile: function( file ) {
-                var me = this;
-    
-                file = file.id ? file : me.queue.getFile( file );
-    
-                file.setStatus( Status.CANCELLED );
-                me.owner.trigger( 'fileDequeued', file );
-            },
-    
-            /**
-             * @method getFiles
-             * @grammar getFiles() => Array
-             * @grammar getFiles( status1, status2, status... ) => Array
-             * @description 杩斿洖鎸囧畾鐘舵�佺殑鏂囦欢闆嗗悎锛屼笉浼犲弬鏁板皢杩斿洖鎵�鏈夌姸鎬佺殑鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             * console.log( uploader.getFiles() );    // => all files
-             * console.log( uploader.getFiles('error') )    // => all error files.
-             */
-            getFiles: function() {
-                return this.queue.getFiles.apply( this.queue, arguments );
-            },
-    
-            fetchFile: function() {
-                return this.queue.fetch.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method retry
-             * @grammar retry() => undefined
-             * @grammar retry( file ) => undefined
-             * @description 閲嶈瘯涓婁紶锛岄噸璇曟寚瀹氭枃浠讹紝鎴栬�呬粠鍑洪敊鐨勬枃浠跺紑濮嬮噸鏂颁笂浼犮��
-             * @for  Uploader
-             * @example
-             * function retry() {
-             *     uploader.retry();
-             * }
-             */
-            retry: function( file, noForceStart ) {
-                var me = this,
-                    files, i, len;
-    
-                if ( file ) {
-                    file = file.id ? file : me.queue.getFile( file );
-                    file.setStatus( Status.QUEUED );
-                    noForceStart || me.request('start-upload');
-                    return;
-                }
-    
-                files = me.queue.getFiles( Status.ERROR );
-                i = 0;
-                len = files.length;
-    
-                for ( ; i < len; i++ ) {
-                    file = files[ i ];
-                    file.setStatus( Status.QUEUED );
-                }
-    
-                me.request('start-upload');
-            },
-    
-            /**
-             * @method sort
-             * @grammar sort( fn ) => undefined
-             * @description 鎺掑簭闃熷垪涓殑鏂囦欢锛屽湪涓婁紶涔嬪墠璋冩暣鍙互鎺у埗涓婁紶椤哄簭銆�
-             * @for  Uploader
-             */
-            sortFiles: function() {
-                return this.queue.sort.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method reset
-             * @grammar reset() => undefined
-             * @description 閲嶇疆uploader銆傜洰鍓嶅彧閲嶇疆浜嗛槦鍒椼��
-             * @for  Uploader
-             * @example
-             * uploader.reset();
-             */
-            reset: function() {
-                this.queue = new Queue();
-                this.stats = this.queue.stats;
-            }
-        });
-    
-    });
-    /**
-     * @fileOverview 娣诲姞鑾峰彇Runtime鐩稿叧淇℃伅鐨勬柟娉曘��
-     */
-    define('widgets/runtime',[
-        'uploader',
-        'runtime/runtime',
-        'widgets/widget'
-    ], function( Uploader, Runtime ) {
-    
-        Uploader.support = function() {
-            return Runtime.hasRuntime.apply( Runtime, arguments );
-        };
-    
-        return Uploader.register({
-            'predict-runtime-type': 'predictRuntmeType'
-        }, {
-    
-            init: function() {
-                if ( !this.predictRuntmeType() ) {
-                    throw Error('Runtime Error');
-                }
-            },
-    
-            /**
-             * 棰勬祴Uploader灏嗛噰鐢ㄥ摢涓猔Runtime`
-             * @grammar predictRuntmeType() => String
-             * @method predictRuntmeType
-             * @for  Uploader
-             */
-            predictRuntmeType: function() {
-                var orders = this.options.runtimeOrder || Runtime.orders,
-                    type = this.type,
-                    i, len;
-    
-                if ( !type ) {
-                    orders = orders.split( /\s*,\s*/g );
-    
-                    for ( i = 0, len = orders.length; i < len; i++ ) {
-                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
-                            this.type = type = orders[ i ];
-                            break;
-                        }
-                    }
-                }
-    
-                return type;
-            }
-        });
-    });
-    /**
-     * @fileOverview Transport
-     */
-    define('lib/transport',[
-        'base',
-        'runtime/client',
-        'mediator'
-    ], function( Base, RuntimeClient, Mediator ) {
-    
-        var $ = Base.$;
-    
-        function Transport( opts ) {
-            var me = this;
-    
-            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
-            RuntimeClient.call( this, 'Transport' );
-    
-            this._blob = null;
-            this._formData = opts.formData || {};
-            this._headers = opts.headers || {};
-    
-            this.on( 'progress', this._timeout );
-            this.on( 'load error', function() {
-                me.trigger( 'progress', 1 );
-                clearTimeout( me._timer );
-            });
-        }
-    
-        Transport.options = {
-            server: '',
-            method: 'POST',
-    
-            // 璺ㄥ煙鏃讹紝鏄惁鍏佽鎼哄甫cookie, 鍙湁html5 runtime鎵嶆湁鏁�
-            withCredentials: false,
-            fileVal: 'file',
-            timeout: 2 * 60 * 1000,    // 2鍒嗛挓
-            formData: {},
-            headers: {},
-            sendAsBinary: false
-        };
-    
-        $.extend( Transport.prototype, {
-    
-            // 娣诲姞Blob, 鍙兘娣诲姞涓�娆★紝鏈�鍚庝竴娆℃湁鏁堛��
-            appendBlob: function( key, blob, filename ) {
-                var me = this,
-                    opts = me.options;
-    
-                if ( me.getRuid() ) {
-                    me.disconnectRuntime();
-                }
-    
-                // 杩炴帴鍒癰lob褰掑睘鐨勫悓涓�涓猺untime.
-                me.connectRuntime( blob.ruid, function() {
-                    me.exec('init');
-                });
-    
-                me._blob = blob;
-                opts.fileVal = key || opts.fileVal;
-                opts.filename = filename || opts.filename;
-            },
-    
-            // 娣诲姞鍏朵粬瀛楁
-            append: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._formData, key );
-                } else {
-                    this._formData[ key ] = value;
-                }
-            },
-    
-            setRequestHeader: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._headers, key );
-                } else {
-                    this._headers[ key ] = value;
-                }
-            },
-    
-            send: function( method ) {
-                this.exec( 'send', method );
-                this._timeout();
-            },
-    
-            abort: function() {
-                clearTimeout( this._timer );
-                return this.exec('abort');
-            },
-    
-            destroy: function() {
-                this.trigger('destroy');
-                this.off();
-                this.exec('destroy');
-                this.disconnectRuntime();
-            },
-    
-            getResponse: function() {
-                return this.exec('getResponse');
-            },
-    
-            getResponseAsJson: function() {
-                return this.exec('getResponseAsJson');
-            },
-    
-            getStatus: function() {
-                return this.exec('getStatus');
-            },
-    
-            _timeout: function() {
-                var me = this,
-                    duration = me.options.timeout;
-    
-                if ( !duration ) {
-                    return;
-                }
-    
-                clearTimeout( me._timer );
-                me._timer = setTimeout(function() {
-                    me.abort();
-                    me.trigger( 'error', 'timeout' );
-                }, duration );
-            }
-    
-        });
-    
-        // 璁㏕ransport鍏峰浜嬩欢鍔熻兘銆�
-        Mediator.installTo( Transport.prototype );
-    
-        return Transport;
-    });
-    /**
-     * @fileOverview 璐熻矗鏂囦欢涓婁紶鐩稿叧銆�
-     */
-    define('widgets/upload',[
-        'base',
-        'uploader',
-        'file',
-        'lib/transport',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile, Transport ) {
-    
-        var $ = Base.$,
-            isPromise = Base.isPromise,
-            Status = WUFile.Status;
-    
-        // 娣诲姞榛樿閰嶇疆椤�
-        $.extend( Uploader.options, {
-    
-    
-            /**
-             * @property {Boolean} [prepareNextFile=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁鍏佽鍦ㄦ枃浠朵紶杈撴椂鎻愬墠鎶婁笅涓�涓枃浠跺噯澶囧ソ銆�
-             * 瀵逛簬涓�涓枃浠剁殑鍑嗗宸ヤ綔姣旇緝鑰楁椂锛屾瘮濡傚浘鐗囧帇缂╋紝md5搴忓垪鍖栥��
-             * 濡傛灉鑳芥彁鍓嶅湪褰撳墠鏂囦欢浼犺緭鏈熷鐞嗭紝鍙互鑺傜渷鎬讳綋鑰楁椂銆�
-             */
-            prepareNextFile: false,
-    
-            /**
-             * @property {Boolean} [chunked=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁瑕佸垎鐗囧鐞嗗ぇ鏂囦欢涓婁紶銆�
-             */
-            chunked: false,
-    
-            /**
-             * @property {Boolean} [chunkSize=5242880]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉瑕佸垎鐗囷紝鍒嗗澶т竴鐗囷紵 榛樿澶у皬涓�5M.
-             */
-            chunkSize: 5 * 1024 * 1024,
-    
-            /**
-             * @property {Boolean} [chunkRetry=2]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉鏌愪釜鍒嗙墖鐢变簬缃戠粶闂鍑洪敊锛屽厑璁歌嚜鍔ㄩ噸浼犲灏戞锛�
-             */
-            chunkRetry: 2,
-    
-            /**
-             * @property {Boolean} [threads=3]
-             * @namespace options
-             * @for Uploader
-             * @description 涓婁紶骞跺彂鏁般�傚厑璁稿悓鏃舵渶澶т笂浼犺繘绋嬫暟銆�
-             */
-            threads: 3,
-    
-    
-            /**
-             * @property {Object} [formData]
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶璇锋眰鐨勫弬鏁拌〃锛屾瘡娆″彂閫侀兘浼氬彂閫佹瀵硅薄涓殑鍙傛暟銆�
-             */
-            formData: null
-    
-            /**
-             * @property {Object} [fileVal='file']
-             * @namespace options
-             * @for Uploader
-             * @description 璁剧疆鏂囦欢涓婁紶鍩熺殑name銆�
-             */
-    
-            /**
-             * @property {Object} [method='POST']
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶鏂瑰紡锛宍POST`鎴栬�卄GET`銆�
-             */
-    
-            /**
-             * @property {Object} [sendAsBinary=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁宸蹭簩杩涘埗鐨勬祦鐨勬柟寮忓彂閫佹枃浠讹紝杩欐牱鏁翠釜涓婁紶鍐呭`php://input`閮戒负鏂囦欢鍐呭锛�
-             * 鍏朵粬鍙傛暟鍦�$_GET鏁扮粍涓��
-             */
-        });
-    
-        // 璐熻矗灏嗘枃浠跺垏鐗囥��
-        function CuteFile( file, chunkSize ) {
-            var pending = [],
-                blob = file.source,
-                total = blob.size,
-                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
-                start = 0,
-                index = 0,
-                len;
-    
-            while ( index < chunks ) {
-                len = Math.min( chunkSize, total - start );
-    
-                pending.push({
-                    file: file,
-                    start: start,
-                    end: chunkSize ? (start + len) : total,
-                    total: total,
-                    chunks: chunks,
-                    chunk: index++
-                });
-                start += len;
-            }
-    
-            file.blocks = pending.concat();
-            file.remaning = pending.length;
-    
-            return {
-                file: file,
-    
-                has: function() {
-                    return !!pending.length;
-                },
-    
-                fetch: function() {
-                    return pending.shift();
-                }
-            };
-        }
-    
-        Uploader.register({
-            'start-upload': 'start',
-            'stop-upload': 'stop',
-            'skip-file': 'skipFile',
-            'is-in-progress': 'isInProgress'
-        }, {
-    
-            init: function() {
-                var owner = this.owner;
-    
-                this.runing = false;
-    
-                // 璁板綍褰撳墠姝e湪浼犵殑鏁版嵁锛岃窡threads鐩稿叧
-                this.pool = [];
-    
-                // 缂撳瓨鍗冲皢涓婁紶鐨勬枃浠躲��
-                this.pending = [];
-    
-                // 璺熻釜杩樻湁澶氬皯鍒嗙墖娌℃湁瀹屾垚涓婁紶銆�
-                this.remaning = 0;
-                this.__tick = Base.bindFn( this._tick, this );
-    
-                owner.on( 'uploadComplete', function( file ) {
-                    // 鎶婂叾浠栧潡鍙栨秷浜嗐��
-                    file.blocks && $.each( file.blocks, function( _, v ) {
-                        v.transport && (v.transport.abort(), v.transport.destroy());
-                        delete v.transport;
-                    });
-    
-                    delete file.blocks;
-                    delete file.remaning;
-                });
-            },
-    
-            /**
-             * @event startUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 寮�濮嬩笂浼犮�傛鏂规硶鍙互浠庡垵濮嬬姸鎬佽皟鐢ㄥ紑濮嬩笂浼犳祦绋嬶紝涔熷彲浠ヤ粠鏆傚仠鐘舵�佽皟鐢紝缁х画涓婁紶娴佺▼銆�
-             * @grammar upload() => undefined
-             * @method upload
-             * @for  Uploader
-             */
-            start: function() {
-                var me = this;
-    
-                // 绉诲嚭invalid鐨勬枃浠�
-                $.each( me.request( 'get-files', Status.INVALID ), function() {
-                    me.request( 'remove-file', this );
-                });
-    
-                if ( me.runing ) {
-                    return;
-                }
-    
-                me.runing = true;
-    
-                // 濡傛灉鏈夋殏鍋滅殑锛屽垯缁紶
-                $.each( me.pool, function( _, v ) {
-                    var file = v.file;
-    
-                    if ( file.getStatus() === Status.INTERRUPT ) {
-                        file.setStatus( Status.PROGRESS );
-                        me._trigged = false;
-                        v.transport && v.transport.send();
-                    }
-                });
-    
-                me._trigged = false;
-                me.owner.trigger('startUpload');
-                Base.nextTick( me.__tick );
-            },
-    
-            /**
-             * @event stopUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫殏鍋滄椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 鏆傚仠涓婁紶銆傜涓�涓弬鏁颁负鏄惁涓柇涓婁紶褰撳墠姝e湪涓婁紶鐨勬枃浠躲��
-             * @grammar stop() => undefined
-             * @grammar stop( true ) => undefined
-             * @method stop
-             * @for  Uploader
-             */
-            stop: function( interrupt ) {
-                var me = this;
-    
-                if ( me.runing === false ) {
-                    return;
-                }
-    
-                me.runing = false;
-    
-                interrupt && $.each( me.pool, function( _, v ) {
-                    v.transport && v.transport.abort();
-                    v.file.setStatus( Status.INTERRUPT );
-                });
-    
-                me.owner.trigger('stopUpload');
-            },
-    
-            /**
-             * 鍒ゆ柇`Uplaode`r鏄惁姝e湪涓婁紶涓��
-             * @grammar isInProgress() => Boolean
-             * @method isInProgress
-             * @for  Uploader
-             */
-            isInProgress: function() {
-                return !!this.runing;
-            },
-    
-            getStats: function() {
-                return this.request('get-stats');
-            },
-    
-            /**
-             * 鎺夎繃涓�涓枃浠朵笂浼狅紝鐩存帴鏍囪鎸囧畾鏂囦欢涓哄凡涓婁紶鐘舵�併��
-             * @grammar skipFile( file ) => undefined
-             * @method skipFile
-             * @for  Uploader
-             */
-            skipFile: function( file, status ) {
-                file = this.request( 'get-file', file );
-    
-                file.setStatus( status || Status.COMPLETE );
-                file.skipped = true;
-    
-                // 濡傛灉姝e湪涓婁紶銆�
-                file.blocks && $.each( file.blocks, function( _, v ) {
-                    var _tr = v.transport;
-    
-                    if ( _tr ) {
-                        _tr.abort();
-                        _tr.destroy();
-                        delete v.transport;
-                    }
-                });
-    
-                this.owner.trigger( 'uploadSkip', file );
-            },
-    
-            /**
-             * @event uploadFinished
-             * @description 褰撴墍鏈夋枃浠朵笂浼犵粨鏉熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-            _tick: function() {
-                var me = this,
-                    opts = me.options,
-                    fn, val;
-    
-                // 涓婁竴涓猵romise杩樻病鏈夌粨鏉燂紝鍒欑瓑寰呭畬鎴愬悗鍐嶆墽琛屻��
-                if ( me._promise ) {
-                    return me._promise.always( me.__tick );
-                }
-    
-                // 杩樻湁浣嶇疆锛屼笖杩樻湁鏂囦欢瑕佸鐞嗙殑璇濄��
-                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
-                    me._trigged = false;
-    
-                    fn = function( val ) {
-                        me._promise = null;
-    
-                        // 鏈夊彲鑳芥槸reject杩囨潵鐨勶紝鎵�浠ヨ妫�娴媣al鐨勭被鍨嬨��
-                        val && val.file && me._startSend( val );
-                        Base.nextTick( me.__tick );
-                    };
-    
-                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
-    
-                // 娌℃湁瑕佷笂浼犵殑浜嗭紝涓旀病鏈夋鍦ㄤ紶杈撶殑浜嗐��
-                } else if ( !me.remaning && !me.getStats().numOfQueue ) {
-                    me.runing = false;
-    
-                    me._trigged || Base.nextTick(function() {
-                        me.owner.trigger('uploadFinished');
-                    });
-                    me._trigged = true;
-                }
-            },
-    
-            _nextBlock: function() {
-                var me = this,
-                    act = me._act,
-                    opts = me.options,
-                    next, done;
-    
-                // 濡傛灉褰撳墠鏂囦欢杩樻湁娌℃湁闇�瑕佷紶杈撶殑锛屽垯鐩存帴杩斿洖鍓╀笅鐨勩��
-                if ( act && act.has() &&
-                        act.file.getStatus() === Status.PROGRESS ) {
-    
-                    // 鏄惁鎻愬墠鍑嗗涓嬩竴涓枃浠�
-                    if ( opts.prepareNextFile && !me.pending.length ) {
-                        me._prepareNextFile();
-                    }
-    
-                    return act.fetch();
-    
-                // 鍚﹀垯锛屽鏋滄鍦ㄨ繍琛岋紝鍒欏噯澶囦笅涓�涓枃浠讹紝骞剁瓑寰呭畬鎴愬悗杩斿洖涓嬩釜鍒嗙墖銆�
-                } else if ( me.runing ) {
-    
-                    // 濡傛灉缂撳瓨涓湁锛屽垯鐩存帴鍦ㄧ紦瀛樹腑鍙栵紝娌℃湁鍒欏幓queue涓彇銆�
-                    if ( !me.pending.length && me.getStats().numOfQueue ) {
-                        me._prepareNextFile();
-                    }
-    
-                    next = me.pending.shift();
-                    done = function( file ) {
-                        if ( !file ) {
-                            return null;
-                        }
-    
-                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
-                        me._act = act;
-                        return act.fetch();
-                    };
-    
-                    // 鏂囦欢鍙兘杩樺湪prepare涓紝涔熸湁鍙兘宸茬粡瀹屽叏鍑嗗濂戒簡銆�
-                    return isPromise( next ) ?
-                            next[ next.pipe ? 'pipe' : 'then']( done ) :
-                            done( next );
-                }
-            },
-    
-    
-            /**
-             * @event uploadStart
-             * @param {File} file File瀵硅薄
-             * @description 鏌愪釜鏂囦欢寮�濮嬩笂浼犲墠瑙﹀彂锛屼竴涓枃浠跺彧浼氳Е鍙戜竴娆°��
-             * @for  Uploader
-             */
-            _prepareNextFile: function() {
-                var me = this,
-                    file = me.request('fetch-file'),
-                    pending = me.pending,
-                    promise;
-    
-                if ( file ) {
-                    promise = me.request( 'before-send-file', file, function() {
-    
-                        // 鏈夊彲鑳芥枃浠惰skip鎺変簡銆傛枃浠惰skip鎺夊悗锛岀姸鎬佸潙瀹氫笉鏄疩ueued.
-                        if ( file.getStatus() === Status.QUEUED ) {
-                            me.owner.trigger( 'uploadStart', file );
-                            file.setStatus( Status.PROGRESS );
-                            return file;
-                        }
-    
-                        return me._finishFile( file );
-                    });
-    
-                    // 濡傛灉杩樺湪pending涓紝鍒欐浛鎹㈡垚鏂囦欢鏈韩銆�
-                    promise.done(function() {
-                        var idx = $.inArray( promise, pending );
-    
-                        ~idx && pending.splice( idx, 1, file );
-                    });
-    
-                    // befeore-send-file鐨勯挬瀛愬氨鏈夐敊璇彂鐢熴��
-                    promise.fail(function( reason ) {
-                        file.setStatus( Status.ERROR, reason );
-                        me.owner.trigger( 'uploadError', file, reason );
-                        me.owner.trigger( 'uploadComplete', file );
-                    });
-    
-                    pending.push( promise );
-                }
-            },
-    
-            // 璁╁嚭浣嶇疆浜嗭紝鍙互璁╁叾浠栧垎鐗囧紑濮嬩笂浼�
-            _popBlock: function( block ) {
-                var idx = $.inArray( block, this.pool );
-    
-                this.pool.splice( idx, 1 );
-                block.file.remaning--;
-                this.remaning--;
-            },
-    
-            // 寮�濮嬩笂浼狅紝鍙互琚帀杩囥�傚鏋減romise琚玶eject浜嗭紝鍒欒〃绀鸿烦杩囨鍒嗙墖銆�
-            _startSend: function( block ) {
-                var me = this,
-                    file = block.file,
-                    promise;
-    
-                me.pool.push( block );
-                me.remaning++;
-    
-                // 濡傛灉娌℃湁鍒嗙墖锛屽垯鐩存帴浣跨敤鍘熷鐨勩��
-                // 涓嶄細涓㈠けcontent-type淇℃伅銆�
-                block.blob = block.chunks === 1 ? file.source :
-                        file.source.slice( block.start, block.end );
-    
-                // hook, 姣忎釜鍒嗙墖鍙戦�佷箣鍓嶅彲鑳借鍋氫簺寮傛鐨勪簨鎯呫��
-                promise = me.request( 'before-send', block, function() {
-    
-                    // 鏈夊彲鑳芥枃浠跺凡缁忎笂浼犲嚭閿欎簡锛屾墍浠ヤ笉闇�瑕佸啀浼犺緭浜嗐��
-                    if ( file.getStatus() === Status.PROGRESS ) {
-                        me._doSend( block );
-                    } else {
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-    
-                // 濡傛灉涓篺ail浜嗭紝鍒欒烦杩囨鍒嗙墖銆�
-                promise.fail(function() {
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file ).always(function() {
-                            block.percentage = 1;
-                            me._popBlock( block );
-                            me.owner.trigger( 'uploadComplete', file );
-                            Base.nextTick( me.__tick );
-                        });
-                    } else {
-                        block.percentage = 1;
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-            },
-    
-    
-            /**
-             * @event uploadBeforeSend
-             * @param {Object} object
-             * @param {Object} data 榛樿鐨勪笂浼犲弬鏁帮紝鍙互鎵╁睍姝ゅ璞℃潵鎺у埗涓婁紶鍙傛暟銆�
-             * @description 褰撴煇涓枃浠剁殑鍒嗗潡鍦ㄥ彂閫佸墠瑙﹀彂锛屼富瑕佺敤鏉ヨ闂槸鍚﹁娣诲姞闄勫甫鍙傛暟锛屽ぇ鏂囦欢鍦ㄥ紑璧峰垎鐗囦笂浼犵殑鍓嶆彁涓嬫浜嬩欢鍙兘浼氳Е鍙戝娆°��
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadAccept
-             * @param {Object} object
-             * @param {Object} ret 鏈嶅姟绔殑杩斿洖鏁版嵁锛宩son鏍煎紡锛屽鏋滄湇鍔$涓嶆槸json鏍煎紡锛屼粠ret._raw涓彇鏁版嵁锛岃嚜琛岃В鏋愩��
-             * @description 褰撴煇涓枃浠朵笂浼犲埌鏈嶅姟绔搷搴斿悗锛屼細娲鹃�佹浜嬩欢鏉ヨ闂湇鍔$鍝嶅簲鏄惁鏈夋晥銆傚鏋滄浜嬩欢handler杩斿洖鍊间负`false`, 鍒欐鏂囦欢灏嗘淳閫乣server`绫诲瀷鐨刞uploadError`浜嬩欢銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadProgress
-             * @param {File} file File瀵硅薄
-             * @param {Number} percentage 涓婁紶杩涘害
-             * @description 涓婁紶杩囩▼涓Е鍙戯紝鎼哄甫涓婁紶杩涘害銆�
-             * @for  Uploader
-             */
-    
-    
-            /**
-             * @event uploadError
-             * @param {File} file File瀵硅薄
-             * @param {String} reason 鍑洪敊鐨刢ode
-             * @description 褰撴枃浠朵笂浼犲嚭閿欐椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadSuccess
-             * @param {File} file File瀵硅薄
-             * @param {Object} response 鏈嶅姟绔繑鍥炵殑鏁版嵁
-             * @description 褰撴枃浠朵笂浼犳垚鍔熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadComplete
-             * @param {File} [file] File瀵硅薄
-             * @description 涓嶇鎴愬姛鎴栬�呭け璐ワ紝鏂囦欢涓婁紶瀹屾垚鏃惰Е鍙戙��
-             * @for  Uploader
-             */
-    
-            // 鍋氫笂浼犳搷浣溿��
-            _doSend: function( block ) {
-                var me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    file = block.file,
-                    tr = new Transport( opts ),
-                    data = $.extend({}, opts.formData ),
-                    headers = $.extend({}, opts.headers ),
-                    requestAccept, ret;
-    
-                block.transport = tr;
-    
-                tr.on( 'destroy', function() {
-                    delete block.transport;
-                    me._popBlock( block );
-                    Base.nextTick( me.__tick );
-                });
-    
-                // 骞挎挱涓婁紶杩涘害銆備互鏂囦欢涓哄崟浣嶃��
-                tr.on( 'progress', function( percentage ) {
-                    var totalPercent = 0,
-                        uploaded = 0;
-    
-                    // 鍙兘娌℃湁abort鎺夛紝progress杩樻槸鎵ц杩涙潵浜嗐��
-                    // if ( !file.blocks ) {
-                    //     return;
-                    // }
-    
-                    totalPercent = block.percentage = percentage;
-    
-                    if ( block.chunks > 1 ) {    // 璁$畻鏂囦欢鐨勬暣浣撻�熷害銆�
-                        $.each( file.blocks, function( _, v ) {
-                            uploaded += (v.percentage || 0) * (v.end - v.start);
-                        });
-    
-                        totalPercent = uploaded / file.size;
-                    }
-    
-                    owner.trigger( 'uploadProgress', file, totalPercent || 0 );
-                });
-    
-                // 鐢ㄦ潵璇㈤棶锛屾槸鍚﹁繑鍥炵殑缁撴灉鏄湁閿欒鐨勩��
-                requestAccept = function( reject ) {
-                    var fn;
-    
-                    ret = tr.getResponseAsJson() || {};
-                    ret._raw = tr.getResponse();
-                    fn = function( value ) {
-                        reject = value;
-                    };
-    
-                    // 鏈嶅姟绔搷搴斾簡锛屼笉浠h〃鎴愬姛浜嗭紝璇㈤棶鏄惁鍝嶅簲姝g‘銆�
-                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
-                        reject = reject || 'server';
-                    }
-    
-                    return reject;
-                };
-    
-                // 灏濊瘯閲嶈瘯锛岀劧鍚庡箍鎾枃浠朵笂浼犲嚭閿欍��
-                tr.on( 'error', function( type, flag ) {
-                    block.retried = block.retried || 0;
-    
-                    // 鑷姩閲嶈瘯
-                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
-                            block.retried < opts.chunkRetry ) {
-    
-                        block.retried++;
-                        tr.send();
-    
-                    } else {
-    
-                        // http status 500 ~ 600
-                        if ( !flag && type === 'server' ) {
-                            type = requestAccept( type );
-                        }
-    
-                        file.setStatus( Status.ERROR, type );
-                        owner.trigger( 'uploadError', file, type );
-                        owner.trigger( 'uploadComplete', file );
-                    }
-                });
-    
-                // 涓婁紶鎴愬姛
-                tr.on( 'load', function() {
-                    var reason;
-    
-                    // 濡傛灉闈為鏈燂紝杞悜涓婁紶鍑洪敊銆�
-                    if ( (reason = requestAccept()) ) {
-                        tr.trigger( 'error', reason, true );
-                        return;
-                    }
-    
-                    // 鍏ㄩ儴涓婁紶瀹屾垚銆�
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file, ret );
-                    } else {
-                        tr.destroy();
-                    }
-                });
-    
-                // 閰嶇疆榛樿鐨勪笂浼犲瓧娈点��
-                data = $.extend( data, {
-                    id: file.id,
-                    name: file.name,
-                    type: file.type,
-                    lastModifiedDate: file.lastModifiedDate,
-                    size: file.size
-                });
-    
-                block.chunks > 1 && $.extend( data, {
-                    chunks: block.chunks,
-                    chunk: block.chunk
-                });
-    
-                // 鍦ㄥ彂閫佷箣闂村彲浠ユ坊鍔犲瓧娈典粈涔堢殑銆傘�傘��
-                // 濡傛灉榛樿鐨勫瓧娈典笉澶熶娇鐢紝鍙互閫氳繃鐩戝惉姝や簨浠舵潵鎵╁睍
-                owner.trigger( 'uploadBeforeSend', block, data, headers );
-    
-                // 寮�濮嬪彂閫併��
-                tr.appendBlob( opts.fileVal, block.blob, file.name );
-                tr.append( data );
-                tr.setRequestHeader( headers );
-                tr.send();
-            },
-    
-            // 瀹屾垚涓婁紶銆�
-            _finishFile: function( file, ret, hds ) {
-                var owner = this.owner;
-    
-                return owner
-                        .request( 'after-send-file', arguments, function() {
-                            file.setStatus( Status.COMPLETE );
-                            owner.trigger( 'uploadSuccess', file, ret, hds );
-                        })
-                        .fail(function( reason ) {
-    
-                            // 濡傛灉澶栭儴宸茬粡鏍囪涓篿nvalid浠�涔堢殑锛屼笉鍐嶆敼鐘舵�併��
-                            if ( file.getStatus() === Status.PROGRESS ) {
-                                file.setStatus( Status.ERROR, reason );
-                            }
-    
-                            owner.trigger( 'uploadError', file, reason );
-                        })
-                        .always(function() {
-                            owner.trigger( 'uploadComplete', file );
-                        });
-            }
-    
-        });
-    });
-    /**
-     * @fileOverview 鍚勭楠岃瘉锛屽寘鎷枃浠舵�诲ぇ灏忔槸鍚﹁秴鍑恒�佸崟鏂囦欢鏄惁瓒呭嚭鍜屾枃浠舵槸鍚﹂噸澶嶃��
-     */
-    
-    define('widgets/validator',[
-        'base',
-        'uploader',
-        'file',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile ) {
-    
-        var $ = Base.$,
-            validators = {},
-            api;
-    
-        /**
-         * @event error
-         * @param {String} type 閿欒绫诲瀷銆�
-         * @description 褰搗alidate涓嶉�氳繃鏃讹紝浼氫互娲鹃�侀敊璇簨浠剁殑褰㈠紡閫氱煡璋冪敤鑰呫�傞�氳繃`upload.on('error', handler)`鍙互鎹曡幏鍒版绫婚敊璇紝鐩墠鏈変互涓嬮敊璇細鍦ㄧ壒瀹氱殑鎯呭喌涓嬫淳閫侀敊鏉ャ��
-         *
-         * * `Q_EXCEED_NUM_LIMIT` 鍦ㄨ缃簡`fileNumLimit`涓斿皾璇曠粰`uploader`娣诲姞鐨勬枃浠舵暟閲忚秴鍑鸿繖涓�兼椂娲鹃�併��
-         * * `Q_EXCEED_SIZE_LIMIT` 鍦ㄨ缃簡`Q_EXCEED_SIZE_LIMIT`涓斿皾璇曠粰`uploader`娣诲姞鐨勬枃浠舵�诲ぇ灏忚秴鍑鸿繖涓�兼椂娲鹃�併��
-         * @for  Uploader
-         */
-    
-        // 鏆撮湶缁欏闈㈢殑api
-        api = {
-    
-            // 娣诲姞楠岃瘉鍣�
-            addValidator: function( type, cb ) {
-                validators[ type ] = cb;
-            },
-    
-            // 绉婚櫎楠岃瘉鍣�
-            removeValidator: function( type ) {
-                delete validators[ type ];
-            }
-        };
-    
-        // 鍦║ploader鍒濆鍖栫殑鏃跺�欏惎鍔╒alidators鐨勫垵濮嬪寲
-        Uploader.register({
-            init: function() {
-                var me = this;
-                $.each( validators, function() {
-                    this.call( me.owner );
-                });
-            }
-        });
-    
-        /**
-         * @property {int} [fileNumLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鏂囦欢鎬绘暟閲�, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileNumLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                count = 0,
-                max = opts.fileNumLimit >> 0,
-                flag = true;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-    
-                if ( count >= max && flag ) {
-                    flag = false;
-                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
-                    setTimeout(function() {
-                        flag = true;
-                    }, 1 );
-                }
-    
-                return count >= max ? false : true;
-            });
-    
-            uploader.on( 'fileQueued', function() {
-                count++;
-            });
-    
-            uploader.on( 'fileDequeued', function() {
-                count--;
-            });
-    
-            uploader.on( 'uploadFinished', function() {
-                count = 0;
-            });
-        });
-    
-    
-        /**
-         * @property {int} [fileSizeLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鏂囦欢鎬诲ぇ灏忔槸鍚﹁秴鍑洪檺鍒�, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileSizeLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                count = 0,
-                max = opts.fileSizeLimit >> 0,
-                flag = true;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-                var invalid = count + file.size > max;
-    
-                if ( invalid && flag ) {
-                    flag = false;
-                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
-                    setTimeout(function() {
-                        flag = true;
-                    }, 1 );
-                }
-    
-                return invalid ? false : true;
-            });
-    
-            uploader.on( 'fileQueued', function( file ) {
-                count += file.size;
-            });
-    
-            uploader.on( 'fileDequeued', function( file ) {
-                count -= file.size;
-            });
-    
-            uploader.on( 'uploadFinished', function() {
-                count = 0;
-            });
-        });
-    
-        /**
-         * @property {int} [fileSingleSizeLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鍗曚釜鏂囦欢澶у皬鏄惁瓒呭嚭闄愬埗, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileSingleSizeLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                max = opts.fileSingleSizeLimit;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-    
-                if ( file.size > max ) {
-                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
-                    this.trigger( 'error', 'F_EXCEED_SIZE', file );
-                    return false;
-                }
-    
-            });
-    
-        });
-    
-        /**
-         * @property {int} [duplicate=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 鍘婚噸锛� 鏍规嵁鏂囦欢鍚嶅瓧銆佹枃浠跺ぇ灏忓拰鏈�鍚庝慨鏀规椂闂存潵鐢熸垚hash Key.
-         */
-        api.addValidator( 'duplicate', function() {
-            var uploader = this,
-                opts = uploader.options,
-                mapping = {};
-    
-            if ( opts.duplicate ) {
-                return;
-            }
-    
-            function hashString( str ) {
-                var hash = 0,
-                    i = 0,
-                    len = str.length,
-                    _char;
-    
-                for ( ; i < len; i++ ) {
-                    _char = str.charCodeAt( i );
-                    hash = _char + (hash << 6) + (hash << 16) - hash;
-                }
-    
-                return hash;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-                var hash = file.__hash || (file.__hash = hashString( file.name +
-                        file.size + file.lastModifiedDate ));
-    
-                // 宸茬粡閲嶅浜�
-                if ( mapping[ hash ] ) {
-                    this.trigger( 'error', 'F_DUPLICATE', file );
-                    return false;
-                }
-            });
-    
-            uploader.on( 'fileQueued', function( file ) {
-                var hash = file.__hash;
-    
-                hash && (mapping[ hash ] = true);
-            });
-    
-            uploader.on( 'fileDequeued', function( file ) {
-                var hash = file.__hash;
-    
-                hash && (delete mapping[ hash ]);
-            });
-        });
-    
-        return api;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/compbase',[],function() {
-    
-        function CompBase( owner, runtime ) {
-    
-            this.owner = owner;
-            this.options = owner.options;
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.getRuid = function() {
-                return runtime.uid;
-            };
-    
-            this.trigger = function() {
-                return owner.trigger.apply( owner, arguments );
-            };
-        }
-    
-        return CompBase;
-    });
-    /**
-     * @fileOverview Html5Runtime
-     */
-    define('runtime/html5/runtime',[
-        'base',
-        'runtime/runtime',
-        'runtime/compbase'
-    ], function( Base, Runtime, CompBase ) {
-    
-        var type = 'html5',
-            components = {};
-    
-        function Html5Runtime() {
-            var pool = {},
-                me = this,
-                destory = this.destory;
-    
-            Runtime.apply( me, arguments );
-            me.type = type;
-    
-    
-            // 杩欎釜鏂规硶鐨勮皟鐢ㄨ�咃紝瀹為檯涓婃槸RuntimeClient
-            me.exec = function( comp, fn/*, args...*/) {
-                var client = this,
-                    uid = client.uid,
-                    args = Base.slice( arguments, 2 ),
-                    instance;
-    
-                if ( components[ comp ] ) {
-                    instance = pool[ uid ] = pool[ uid ] ||
-                            new components[ comp ]( client, me );
-    
-                    if ( instance[ fn ] ) {
-                        return instance[ fn ].apply( instance, args );
-                    }
-                }
-            };
-    
-            me.destory = function() {
-                // @todo 鍒犻櫎姹犲瓙涓殑鎵�鏈夊疄渚�
-                return destory && destory.apply( this, arguments );
-            };
-        }
-    
-        Base.inherits( Runtime, {
-            constructor: Html5Runtime,
-    
-            // 涓嶉渶瑕佽繛鎺ュ叾浠栫▼搴忥紝鐩存帴鎵цcallback
-            init: function() {
-                var me = this;
-                setTimeout(function() {
-                    me.trigger('ready');
-                }, 1 );
-            }
-    
-        });
-    
-        // 娉ㄥ唽Components
-        Html5Runtime.register = function( name, component ) {
-            var klass = components[ name ] = Base.inherits( CompBase, component );
-            return klass;
-        };
-    
-        // 娉ㄥ唽html5杩愯鏃躲��
-        // 鍙湁鍦ㄦ敮鎸佺殑鍓嶆彁涓嬫敞鍐屻��
-        if ( window.Blob && window.FileReader && window.DataView ) {
-            Runtime.addRuntime( type, Html5Runtime );
-        }
-    
-        return Html5Runtime;
-    });
-    /**
-     * @fileOverview Blob Html瀹炵幇
-     */
-    define('runtime/html5/blob',[
-        'runtime/html5/runtime',
-        'lib/blob'
-    ], function( Html5Runtime, Blob ) {
-    
-        return Html5Runtime.register( 'Blob', {
-            slice: function( start, end ) {
-                var blob = this.owner.source,
-                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
-    
-                blob = slice.call( blob, start, end );
-    
-                return new Blob( this.getRuid(), blob );
-            }
-        });
-    });
-    /**
-     * @fileOverview FilePaste
-     */
-    define('runtime/html5/dnd',[
-        'base',
-        'runtime/html5/runtime',
-        'lib/file'
-    ], function( Base, Html5Runtime, File ) {
-    
-        var $ = Base.$,
-            prefix = 'webuploader-dnd-';
-    
-        return Html5Runtime.register( 'DragAndDrop', {
-            init: function() {
-                var elem = this.elem = this.options.container;
-    
-                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
-                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
-                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
-                this.dropHandler = Base.bindFn( this._dropHandler, this );
-                this.dndOver = false;
-    
-                elem.on( 'dragenter', this.dragEnterHandler );
-                elem.on( 'dragover', this.dragOverHandler );
-                elem.on( 'dragleave', this.dragLeaveHandler );
-                elem.on( 'drop', this.dropHandler );
-    
-                if ( this.options.disableGlobalDnd ) {
-                    $( document ).on( 'dragover', this.dragOverHandler );
-                    $( document ).on( 'drop', this.dropHandler );
-                }
-            },
-    
-            _dragEnterHandler: function( e ) {
-                var me = this,
-                    denied = me._denied || false,
-                    items;
-    
-                e = e.originalEvent || e;
-    
-                if ( !me.dndOver ) {
-                    me.dndOver = true;
-    
-                    // 娉ㄦ剰鍙湁 chrome 鏀寔銆�
-                    items = e.dataTransfer.items;
-    
-                    if ( items && items.length ) {
-                        me._denied = denied = !me.trigger( 'accept', items );
-                    }
-    
-                    me.elem.addClass( prefix + 'over' );
-                    me.elem[ denied ? 'addClass' :
-                            'removeClass' ]( prefix + 'denied' );
-                }
-    
-    
-                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
-    
-                return false;
-            },
-    
-            _dragOverHandler: function( e ) {
-                // 鍙鐞嗘鍐呯殑銆�
-                var parentElem = this.elem.parent().get( 0 );
-                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
-                    return false;
-                }
-    
-                clearTimeout( this._leaveTimer );
-                this._dragEnterHandler.call( this, e );
-    
-                return false;
-            },
-    
-            _dragLeaveHandler: function() {
-                var me = this,
-                    handler;
-    
-                handler = function() {
-                    me.dndOver = false;
-                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
-                };
-    
-                clearTimeout( me._leaveTimer );
-                me._leaveTimer = setTimeout( handler, 100 );
-                return false;
-            },
-    
-            _dropHandler: function( e ) {
-                var me = this,
-                    ruid = me.getRuid(),
-                    parentElem = me.elem.parent().get( 0 );
-    
-                // 鍙鐞嗘鍐呯殑銆�
-                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
-                    return false;
-                }
-    
-                me._getTansferFiles( e, function( results ) {
-                    me.trigger( 'drop', $.map( results, function( file ) {
-                        return new File( ruid, file );
-                    }) );
-                });
-    
-                me.dndOver = false;
-                me.elem.removeClass( prefix + 'over' );
-                return false;
-            },
-    
-            // 濡傛灉浼犲叆 callback 鍒欏幓鏌ョ湅鏂囦欢澶癸紝鍚﹀垯鍙褰撳墠鏂囦欢澶广��
-            _getTansferFiles: function( e, callback ) {
-                var results  = [],
-                    promises = [],
-                    items, files, dataTransfer, file, item, i, len, canAccessFolder;
-    
-                e = e.originalEvent || e;
-    
-                dataTransfer = e.dataTransfer;
-                items = dataTransfer.items;
-                files = dataTransfer.files;
-    
-                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
-    
-                for ( i = 0, len = files.length; i < len; i++ ) {
-                    file = files[ i ];
-                    item = items && items[ i ];
-    
-                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
-    
-                        promises.push( this._traverseDirectoryTree(
-                                item.webkitGetAsEntry(), results ) );
-                    } else {
-                        results.push( file );
-                    }
-                }
-    
-                Base.when.apply( Base, promises ).done(function() {
-    
-                    if ( !results.length ) {
-                        return;
-                    }
-    
-                    callback( results );
-                });
-            },
-    
-            _traverseDirectoryTree: function( entry, results ) {
-                var deferred = Base.Deferred(),
-                    me = this;
-    
-                if ( entry.isFile ) {
-                    entry.file(function( file ) {
-                        results.push( file );
-                        deferred.resolve();
-                    });
-                } else if ( entry.isDirectory ) {
-                    entry.createReader().readEntries(function( entries ) {
-                        var len = entries.length,
-                            promises = [],
-                            arr = [],    // 涓轰簡淇濊瘉椤哄簭銆�
-                            i;
-    
-                        for ( i = 0; i < len; i++ ) {
-                            promises.push( me._traverseDirectoryTree(
-                                    entries[ i ], arr ) );
-                        }
-    
-                        Base.when.apply( Base, promises ).then(function() {
-                            results.push.apply( results, arr );
-                            deferred.resolve();
-                        }, deferred.reject );
-                    });
-                }
-    
-                return deferred.promise();
-            },
-    
-            destroy: function() {
-                var elem = this.elem;
-    
-                elem.off( 'dragenter', this.dragEnterHandler );
-                elem.off( 'dragover', this.dragEnterHandler );
-                elem.off( 'dragleave', this.dragLeaveHandler );
-                elem.off( 'drop', this.dropHandler );
-    
-                if ( this.options.disableGlobalDnd ) {
-                    $( document ).off( 'dragover', this.dragOverHandler );
-                    $( document ).off( 'drop', this.dropHandler );
-                }
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview FilePaste
-     */
-    define('runtime/html5/filepaste',[
-        'base',
-        'runtime/html5/runtime',
-        'lib/file'
-    ], function( Base, Html5Runtime, File ) {
-    
-        return Html5Runtime.register( 'FilePaste', {
-            init: function() {
-                var opts = this.options,
-                    elem = this.elem = opts.container,
-                    accept = '.*',
-                    arr, i, len, item;
-    
-                // accetp鐨刴imeTypes涓敓鎴愬尮閰嶆鍒欍��
-                if ( opts.accept ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        item = opts.accept[ i ].mimeTypes;
-                        item && arr.push( item );
-                    }
-    
-                    if ( arr.length ) {
-                        accept = arr.join(',');
-                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
-                    }
-                }
-                this.accept = accept = new RegExp( accept, 'i' );
-                this.hander = Base.bindFn( this._pasteHander, this );
-                elem.on( 'paste', this.hander );
-            },
-    
-            _pasteHander: function( e ) {
-                var allowed = [],
-                    ruid = this.getRuid(),
-                    items, item, blob, i, len;
-    
-                e = e.originalEvent || e;
-                items = e.clipboardData.items;
-    
-                for ( i = 0, len = items.length; i < len; i++ ) {
-                    item = items[ i ];
-    
-                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
-                        continue;
-                    }
-    
-                    allowed.push( new File( ruid, blob ) );
-                }
-    
-                if ( allowed.length ) {
-                    // 涓嶉樆姝㈤潪鏂囦欢绮樿创锛堟枃瀛楃矘璐达級鐨勪簨浠跺啋娉�
-                    e.preventDefault();
-                    e.stopPropagation();
-                    this.trigger( 'paste', allowed );
-                }
-            },
-    
-            destroy: function() {
-                this.elem.off( 'paste', this.hander );
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview FilePicker
-     */
-    define('runtime/html5/filepicker',[
-        'base',
-        'runtime/html5/runtime'
-    ], function( Base, Html5Runtime ) {
-    
-        var $ = Base.$;
-    
-        return Html5Runtime.register( 'FilePicker', {
-            init: function() {
-                var container = this.getRuntime().getContainer(),
-                    me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    lable = $( document.createElement('label') ),
-                    input = $( document.createElement('input') ),
-                    arr, i, len, mouseHandler;
-    
-                input.attr( 'type', 'file' );
-                input.attr( 'name', opts.name );
-                input.addClass('webuploader-element-invisible');
-    
-                lable.on( 'click', function() {
-                    input.trigger('click');
-                });
-    
-                lable.css({
-                    opacity: 0,
-                    width: '100%',
-                    height: '100%',
-                    display: 'block',
-                    cursor: 'pointer',
-                    background: '#ffffff'
-                });
-    
-                if ( opts.multiple ) {
-                    input.attr( 'multiple', 'multiple' );
-                }
-    
-                // @todo Firefox涓嶆敮鎸佸崟鐙寚瀹氬悗缂�
-                if ( opts.accept && opts.accept.length > 0 ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        arr.push( opts.accept[ i ].mimeTypes );
-                    }
-    
-                    input.attr( 'accept', arr.join(',') );
-                }
-    
-                container.append( input );
-                container.append( lable );
-    
-                mouseHandler = function( e ) {
-                    owner.trigger( e.type );
-                };
-    
-                input.on( 'change', function( e ) {
-                    var fn = arguments.callee,
-                        clone;
-    
-                    me.files = e.target.files;
-    
-                    // reset input
-                    clone = this.cloneNode( true );
-                    this.parentNode.replaceChild( clone, this );
-    
-                    input.off();
-                    input = $( clone ).on( 'change', fn )
-                            .on( 'mouseenter mouseleave', mouseHandler );
-    
-                    owner.trigger('change');
-                });
-    
-                lable.on( 'mouseenter mouseleave', mouseHandler );
-    
-            },
-    
-    
-            getFiles: function() {
-                return this.files;
-            },
-    
-            destroy: function() {
-                // todo
-            }
-        });
-    });
-    /**
-     * Terms:
-     *
-     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
-     * @fileOverview Image鎺т欢
-     */
-    define('runtime/html5/util',[
-        'base'
-    ], function( Base ) {
-    
-        var urlAPI = window.createObjectURL && window ||
-                window.URL && URL.revokeObjectURL && URL ||
-                window.webkitURL,
-            createObjectURL = Base.noop,
-            revokeObjectURL = createObjectURL;
-    
-        if ( urlAPI ) {
-    
-            // 鏇村畨鍏ㄧ殑鏂瑰紡璋冪敤锛屾瘮濡俛ndroid閲岄潰灏辫兘鎶奵ontext鏀规垚鍏朵粬鐨勫璞°��
-            createObjectURL = function() {
-                return urlAPI.createObjectURL.apply( urlAPI, arguments );
-            };
-    
-            revokeObjectURL = function() {
-                return urlAPI.revokeObjectURL.apply( urlAPI, arguments );
-            };
-        }
-    
-        return {
-            createObjectURL: createObjectURL,
-            revokeObjectURL: revokeObjectURL,
-    
-            dataURL2Blob: function( dataURI ) {
-                var byteStr, intArray, ab, i, mimetype, parts;
-    
-                parts = dataURI.split(',');
-    
-                if ( ~parts[ 0 ].indexOf('base64') ) {
-                    byteStr = atob( parts[ 1 ] );
-                } else {
-                    byteStr = decodeURIComponent( parts[ 1 ] );
-                }
-    
-                ab = new ArrayBuffer( byteStr.length );
-                intArray = new Uint8Array( ab );
-    
-                for ( i = 0; i < byteStr.length; i++ ) {
-                    intArray[ i ] = byteStr.charCodeAt( i );
-                }
-    
-                mimetype = parts[ 0 ].split(':')[ 1 ].split(';')[ 0 ];
-    
-                return this.arrayBufferToBlob( ab, mimetype );
-            },
-    
-            dataURL2ArrayBuffer: function( dataURI ) {
-                var byteStr, intArray, i, parts;
-    
-                parts = dataURI.split(',');
-    
-                if ( ~parts[ 0 ].indexOf('base64') ) {
-                    byteStr = atob( parts[ 1 ] );
-                } else {
-                    byteStr = decodeURIComponent( parts[ 1 ] );
-                }
-    
-                intArray = new Uint8Array( byteStr.length );
-    
-                for ( i = 0; i < byteStr.length; i++ ) {
-                    intArray[ i ] = byteStr.charCodeAt( i );
-                }
-    
-                return intArray.buffer;
-            },
-    
-            arrayBufferToBlob: function( buffer, type ) {
-                var builder = window.BlobBuilder || window.WebKitBlobBuilder,
-                    bb;
-    
-                // android涓嶆敮鎸佺洿鎺ew Blob, 鍙兘鍊熷姪blobbuilder.
-                if ( builder ) {
-                    bb = new builder();
-                    bb.append( buffer );
-                    return bb.getBlob( type );
-                }
-    
-                return new Blob([ buffer ], type ? { type: type } : {} );
-            },
-    
-            // 鎶藉嚭鏉ヤ富瑕佹槸涓轰簡瑙e喅android涓嬮潰canvas.toDataUrl涓嶆敮鎸乯peg.
-            // 浣犲緱鍒扮殑缁撴灉鏄痯ng.
-            canvasToDataUrl: function( canvas, type, quality ) {
-                return canvas.toDataURL( type, quality / 100 );
-            },
-    
-            // imagemeat浼氬鍐欒繖涓柟娉曪紝濡傛灉鐢ㄦ埛閫夋嫨鍔犺浇閭d釜鏂囦欢浜嗙殑璇濄��
-            parseMeta: function( blob, callback ) {
-                callback( false, {});
-            },
-    
-            // imagemeat浼氬鍐欒繖涓柟娉曪紝濡傛灉鐢ㄦ埛閫夋嫨鍔犺浇閭d釜鏂囦欢浜嗙殑璇濄��
-            updateImageHead: function( data ) {
-                return data;
-            }
-        };
-    });
-    /**
-     * Terms:
-     *
-     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
-     * @fileOverview Image鎺т欢
-     */
-    define('runtime/html5/imagemeta',[
-        'runtime/html5/util'
-    ], function( Util ) {
-    
-        var api;
-    
-        api = {
-            parsers: {
-                0xffe1: []
-            },
-    
-            maxMetaDataSize: 262144,
-    
-            parse: function( blob, cb ) {
-                var me = this,
-                    fr = new FileReader();
-    
-                fr.onload = function() {
-                    cb( false, me._parse( this.result ) );
-                    fr = fr.onload = fr.onerror = null;
-                };
-    
-                fr.onerror = function( e ) {
-                    cb( e.message );
-                    fr = fr.onload = fr.onerror = null;
-                };
-    
-                blob = blob.slice( 0, me.maxMetaDataSize );
-                fr.readAsArrayBuffer( blob.getSource() );
-            },
-    
-            _parse: function( buffer, noParse ) {
-                if ( buffer.byteLength < 6 ) {
-                    return;
-                }
-    
-                var dataview = new DataView( buffer ),
-                    offset = 2,
-                    maxOffset = dataview.byteLength - 4,
-                    headLength = offset,
-                    ret = {},
-                    markerBytes, markerLength, parsers, i;
-    
-                if ( dataview.getUint16( 0 ) === 0xffd8 ) {
-    
-                    while ( offset < maxOffset ) {
-                        markerBytes = dataview.getUint16( offset );
-    
-                        if ( markerBytes >= 0xffe0 && markerBytes <= 0xffef ||
-                                markerBytes === 0xfffe ) {
-    
-                            markerLength = dataview.getUint16( offset + 2 ) + 2;
-    
-                            if ( offset + markerLength > dataview.byteLength ) {
-                                break;
-                            }
-    
-                            parsers = api.parsers[ markerBytes ];
-    
-                            if ( !noParse && parsers ) {
-                                for ( i = 0; i < parsers.length; i += 1 ) {
-                                    parsers[ i ].call( api, dataview, offset,
-                                            markerLength, ret );
-                                }
-                            }
-    
-                            offset += markerLength;
-                            headLength = offset;
-                        } else {
-                            break;
-                        }
-                    }
-    
-                    if ( headLength > 6 ) {
-                        if ( buffer.slice ) {
-                            ret.imageHead = buffer.slice( 2, headLength );
-                        } else {
-                            // Workaround for IE10, which does not yet
-                            // support ArrayBuffer.slice:
-                            ret.imageHead = new Uint8Array( buffer )
-                                    .subarray( 2, headLength );
-                        }
-                    }
-                }
-    
-                return ret;
-            },
-    
-            updateImageHead: function( buffer, head ) {
-                var data = this._parse( buffer, true ),
-                    buf1, buf2, bodyoffset;
-    
-    
-                bodyoffset = 2;
-                if ( data.imageHead ) {
-                    bodyoffset = 2 + data.imageHead.byteLength;
-                }
-    
-                if ( buffer.slice ) {
-                    buf2 = buffer.slice( bodyoffset );
-                } else {
-                    buf2 = new Uint8Array( buffer ).subarray( bodyoffset );
-                }
-    
-                buf1 = new Uint8Array( head.byteLength + 2 + buf2.byteLength );
-    
-                buf1[ 0 ] = 0xFF;
-                buf1[ 1 ] = 0xD8;
-                buf1.set( new Uint8Array( head ), 2 );
-                buf1.set( new Uint8Array( buf2 ), head.byteLength + 2 );
-    
-                return buf1.buffer;
-            }
-        };
-    
-        Util.parseMeta = function() {
-            return api.parse.apply( api, arguments );
-        };
-    
-        Util.updateImageHead = function() {
-            return api.updateImageHead.apply( api, arguments );
-        };
-    
-        return api;
-    });
-    /**
-     * 浠g爜鏉ヨ嚜浜庯細https://github.com/blueimp/JavaScript-Load-Image
-     * 鏆傛椂椤圭洰涓彧鐢ㄤ簡orientation.
-     *
-     * 鍘婚櫎浜� Exif Sub IFD Pointer, GPS Info IFD Pointer, Exif Thumbnail.
-     * @fileOverview EXIF瑙f瀽
-     */
-    
-    // Sample
-    // ====================================
-    // Make : Apple
-    // Model : iPhone 4S
-    // Orientation : 1
-    // XResolution : 72 [72/1]
-    // YResolution : 72 [72/1]
-    // ResolutionUnit : 2
-    // Software : QuickTime 7.7.1
-    // DateTime : 2013:09:01 22:53:55
-    // ExifIFDPointer : 190
-    // ExposureTime : 0.058823529411764705 [1/17]
-    // FNumber : 2.4 [12/5]
-    // ExposureProgram : Normal program
-    // ISOSpeedRatings : 800
-    // ExifVersion : 0220
-    // DateTimeOriginal : 2013:09:01 22:52:51
-    // DateTimeDigitized : 2013:09:01 22:52:51
-    // ComponentsConfiguration : YCbCr
-    // ShutterSpeedValue : 4.058893515764426
-    // ApertureValue : 2.5260688216892597 [4845/1918]
-    // BrightnessValue : -0.3126686601998395
-    // MeteringMode : Pattern
-    // Flash : Flash did not fire, compulsory flash mode
-    // FocalLength : 4.28 [107/25]
-    // SubjectArea : [4 values]
-    // FlashpixVersion : 0100
-    // ColorSpace : 1
-    // PixelXDimension : 2448
-    // PixelYDimension : 3264
-    // SensingMethod : One-chip color area sensor
-    // ExposureMode : 0
-    // WhiteBalance : Auto white balance
-    // FocalLengthIn35mmFilm : 35
-    // SceneCaptureType : Standard
-    define('runtime/html5/imagemeta/exif',[
-        'base',
-        'runtime/html5/imagemeta'
-    ], function( Base, ImageMeta ) {
-    
-        var EXIF = {};
-    
-        EXIF.ExifMap = function() {
-            return this;
-        };
-    
-        EXIF.ExifMap.prototype.map = {
-            'Orientation': 0x0112
-        };
-    
-        EXIF.ExifMap.prototype.get = function( id ) {
-            return this[ id ] || this[ this.map[ id ] ];
-        };
-    
-        EXIF.exifTagTypes = {
-            // byte, 8-bit unsigned int:
-            1: {
-                getValue: function( dataView, dataOffset ) {
-                    return dataView.getUint8( dataOffset );
-                },
-                size: 1
-            },
-    
-            // ascii, 8-bit byte:
-            2: {
-                getValue: function( dataView, dataOffset ) {
-                    return String.fromCharCode( dataView.getUint8( dataOffset ) );
-                },
-                size: 1,
-                ascii: true
-            },
-    
-            // short, 16 bit int:
-            3: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint16( dataOffset, littleEndian );
-                },
-                size: 2
-            },
-    
-            // long, 32 bit int:
-            4: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint32( dataOffset, littleEndian );
-                },
-                size: 4
-            },
-    
-            // rational = two long values,
-            // first is numerator, second is denominator:
-            5: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint32( dataOffset, littleEndian ) /
-                        dataView.getUint32( dataOffset + 4, littleEndian );
-                },
-                size: 8
-            },
-    
-            // slong, 32 bit signed int:
-            9: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getInt32( dataOffset, littleEndian );
-                },
-                size: 4
-            },
-    
-            // srational, two slongs, first is numerator, second is denominator:
-            10: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getInt32( dataOffset, littleEndian ) /
-                        dataView.getInt32( dataOffset + 4, littleEndian );
-                },
-                size: 8
-            }
-        };
-    
-        // undefined, 8-bit byte, value depending on field:
-        EXIF.exifTagTypes[ 7 ] = EXIF.exifTagTypes[ 1 ];
-    
-        EXIF.getExifValue = function( dataView, tiffOffset, offset, type, length,
-                littleEndian ) {
-    
-            var tagType = EXIF.exifTagTypes[ type ],
-                tagSize, dataOffset, values, i, str, c;
-    
-            if ( !tagType ) {
-                Base.log('Invalid Exif data: Invalid tag type.');
-                return;
-            }
-    
-            tagSize = tagType.size * length;
-    
-            // Determine if the value is contained in the dataOffset bytes,
-            // or if the value at the dataOffset is a pointer to the actual data:
-            dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32( offset + 8,
-                    littleEndian ) : (offset + 8);
-    
-            if ( dataOffset + tagSize > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid data offset.');
-                return;
-            }
-    
-            if ( length === 1 ) {
-                return tagType.getValue( dataView, dataOffset, littleEndian );
-            }
-    
-            values = [];
-    
-            for ( i = 0; i < length; i += 1 ) {
-                values[ i ] = tagType.getValue( dataView,
-                        dataOffset + i * tagType.size, littleEndian );
-            }
-    
-            if ( tagType.ascii ) {
-                str = '';
-    
-                // Concatenate the chars:
-                for ( i = 0; i < values.length; i += 1 ) {
-                    c = values[ i ];
-    
-                    // Ignore the terminating NULL byte(s):
-                    if ( c === '\u0000' ) {
-                        break;
-                    }
-                    str += c;
-                }
-    
-                return str;
-            }
-            return values;
-        };
-    
-        EXIF.parseExifTag = function( dataView, tiffOffset, offset, littleEndian,
-                data ) {
-    
-            var tag = dataView.getUint16( offset, littleEndian );
-            data.exif[ tag ] = EXIF.getExifValue( dataView, tiffOffset, offset,
-                    dataView.getUint16( offset + 2, littleEndian ),    // tag type
-                    dataView.getUint32( offset + 4, littleEndian ),    // tag length
-                    littleEndian );
-        };
-    
-        EXIF.parseExifTags = function( dataView, tiffOffset, dirOffset,
-                littleEndian, data ) {
-    
-            var tagsNumber, dirEndOffset, i;
-    
-            if ( dirOffset + 6 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid directory offset.');
-                return;
-            }
-    
-            tagsNumber = dataView.getUint16( dirOffset, littleEndian );
-            dirEndOffset = dirOffset + 2 + 12 * tagsNumber;
-    
-            if ( dirEndOffset + 4 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid directory size.');
-                return;
-            }
-    
-            for ( i = 0; i < tagsNumber; i += 1 ) {
-                this.parseExifTag( dataView, tiffOffset,
-                        dirOffset + 2 + 12 * i,    // tag offset
-                        littleEndian, data );
-            }
-    
-            // Return the offset to the next directory:
-            return dataView.getUint32( dirEndOffset, littleEndian );
-        };
-    
-        // EXIF.getExifThumbnail = function(dataView, offset, length) {
-        //     var hexData,
-        //         i,
-        //         b;
-        //     if (!length || offset + length > dataView.byteLength) {
-        //         Base.log('Invalid Exif data: Invalid thumbnail data.');
-        //         return;
-        //     }
-        //     hexData = [];
-        //     for (i = 0; i < length; i += 1) {
-        //         b = dataView.getUint8(offset + i);
-        //         hexData.push((b < 16 ? '0' : '') + b.toString(16));
-        //     }
-        //     return 'data:image/jpeg,%' + hexData.join('%');
-        // };
-    
-        EXIF.parseExifData = function( dataView, offset, length, data ) {
-    
-            var tiffOffset = offset + 10,
-                littleEndian, dirOffset;
-    
-            // Check for the ASCII code for "Exif" (0x45786966):
-            if ( dataView.getUint32( offset + 4 ) !== 0x45786966 ) {
-                // No Exif data, might be XMP data instead
-                return;
-            }
-            if ( tiffOffset + 8 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid segment size.');
-                return;
-            }
-    
-            // Check for the two null bytes:
-            if ( dataView.getUint16( offset + 8 ) !== 0x0000 ) {
-                Base.log('Invalid Exif data: Missing byte alignment offset.');
-                return;
-            }
-    
-            // Check the byte alignment:
-            switch ( dataView.getUint16( tiffOffset ) ) {
-                case 0x4949:
-                    littleEndian = true;
-                    break;
-    
-                case 0x4D4D:
-                    littleEndian = false;
-                    break;
-    
-                default:
-                    Base.log('Invalid Exif data: Invalid byte alignment marker.');
-                    return;
-            }
-    
-            // Check for the TIFF tag marker (0x002A):
-            if ( dataView.getUint16( tiffOffset + 2, littleEndian ) !== 0x002A ) {
-                Base.log('Invalid Exif data: Missing TIFF marker.');
-                return;
-            }
-    
-            // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:
-            dirOffset = dataView.getUint32( tiffOffset + 4, littleEndian );
-            // Create the exif object to store the tags:
-            data.exif = new EXIF.ExifMap();
-            // Parse the tags of the main image directory and retrieve the
-            // offset to the next directory, usually the thumbnail directory:
-            dirOffset = EXIF.parseExifTags( dataView, tiffOffset,
-                    tiffOffset + dirOffset, littleEndian, data );
-    
-            // 灏濊瘯璇诲彇缂╃暐鍥�
-            // if ( dirOffset ) {
-            //     thumbnailData = {exif: {}};
-            //     dirOffset = EXIF.parseExifTags(
-            //         dataView,
-            //         tiffOffset,
-            //         tiffOffset + dirOffset,
-            //         littleEndian,
-            //         thumbnailData
-            //     );
-    
-            //     // Check for JPEG Thumbnail offset:
-            //     if (thumbnailData.exif[0x0201]) {
-            //         data.exif.Thumbnail = EXIF.getExifThumbnail(
-            //             dataView,
-            //             tiffOffset + thumbnailData.exif[0x0201],
-            //             thumbnailData.exif[0x0202] // Thumbnail data length
-            //         );
-            //     }
-            // }
-        };
-    
-        ImageMeta.parsers[ 0xffe1 ].push( EXIF.parseExifData );
-        return EXIF;
-    });
-    /**
-     * @fileOverview Image
-     */
-    define('runtime/html5/image',[
-        'base',
-        'runtime/html5/runtime',
-        'runtime/html5/util'
-    ], function( Base, Html5Runtime, Util ) {
-    
-        var BLANK = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D';
-    
-        return Html5Runtime.register( 'Image', {
-    
-            // flag: 鏍囪鏄惁琚慨鏀硅繃銆�
-            modified: false,
-    
-            init: function() {
-                var me = this,
-                    img = new Image();
-    
-                img.onload = function() {
-    
-                    me._info = {
-                        type: me.type,
-                        width: this.width,
-                        height: this.height
-                    };
-    
-                    // 璇诲彇meta淇℃伅銆�
-                    if ( !me._metas && 'image/jpeg' === me.type ) {
-                        Util.parseMeta( me._blob, function( error, ret ) {
-                            me._metas = ret;
-                            me.owner.trigger('load');
-                        });
-                    } else {
-                        me.owner.trigger('load');
-                    }
-                };
-    
-                img.onerror = function() {
-                    me.owner.trigger('error');
-                };
-    
-                me._img = img;
-            },
-    
-            loadFromBlob: function( blob ) {
-                var me = this,
-                    img = me._img;
-    
-                me._blob = blob;
-                me.type = blob.type;
-                img.src = Util.createObjectURL( blob.getSource() );
-                me.owner.once( 'load', function() {
-                    Util.revokeObjectURL( img.src );
-                });
-            },
-    
-            resize: function( width, height ) {
-                var canvas = this._canvas ||
-                        (this._canvas = document.createElement('canvas'));
-    
-                this._resize( this._img, canvas, width, height );
-                this._blob = null;    // 娌$敤浜嗭紝鍙互鍒犳帀浜嗐��
-                this.modified = true;
-                this.owner.trigger('complete');
-            },
-    
-            getAsBlob: function( type ) {
-                var blob = this._blob,
-                    opts = this.options,
-                    canvas;
-    
-                type = type || this.type;
-    
-                // blob闇�瑕侀噸鏂扮敓鎴愩��
-                if ( this.modified || this.type !== type ) {
-                    canvas = this._canvas;
-    
-                    if ( type === 'image/jpeg' ) {
-    
-                        blob = Util.canvasToDataUrl( canvas, 'image/jpeg',
-                                opts.quality );
-    
-                        if ( opts.preserveHeaders && this._metas &&
-                                this._metas.imageHead ) {
-    
-                            blob = Util.dataURL2ArrayBuffer( blob );
-                            blob = Util.updateImageHead( blob,
-                                    this._metas.imageHead );
-                            blob = Util.arrayBufferToBlob( blob, type );
-                            return blob;
-                        }
-                    } else {
-                        blob = Util.canvasToDataUrl( canvas, type );
-                    }
-    
-                    blob = Util.dataURL2Blob( blob );
-                }
-    
-                return blob;
-            },
-    
-            getAsDataUrl: function( type ) {
-                var opts = this.options;
-    
-                type = type || this.type;
-    
-                if ( type === 'image/jpeg' ) {
-                    return Util.canvasToDataUrl( this._canvas, type, opts.quality );
-                } else {
-                    return this._canvas.toDataURL( type );
-                }
-            },
-    
-            getOrientation: function() {
-                return this._metas && this._metas.exif &&
-                        this._metas.exif.get('Orientation') || 1;
-            },
-    
-            info: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._info = val;
-                    return this;
-                }
-    
-                // getter
-                return this._info;
-            },
-    
-            meta: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._meta = val;
-                    return this;
-                }
-    
-                // getter
-                return this._meta;
-            },
-    
-            destroy: function() {
-                var canvas = this._canvas;
-                this._img.onload = null;
-    
-                if ( canvas ) {
-                    canvas.getContext('2d')
-                            .clearRect( 0, 0, canvas.width, canvas.height );
-                    canvas.width = canvas.height = 0;
-                    this._canvas = null;
-                }
-    
-                // 閲婃斁鍐呭瓨銆傞潪甯搁噸瑕侊紝鍚﹀垯閲婃斁涓嶄簡image鐨勫唴瀛樸��
-                this._img.src = BLANK;
-                this._img = this._blob = null;
-            },
-    
-            _resize: function( img, cvs, width, height ) {
-                var opts = this.options,
-                    naturalWidth = img.width,
-                    naturalHeight = img.height,
-                    orientation = this.getOrientation(),
-                    scale, w, h, x, y;
-    
-                // values that require 90 degree rotation
-                if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
-    
-                    // 浜ゆ崲width, height鐨勫�笺��
-                    width ^= height;
-                    height ^= width;
-                    width ^= height;
-                }
-    
-                scale = Math[ opts.crop ? 'max' : 'min' ]( width / naturalWidth,
-                        height / naturalHeight );
-    
-                // 涓嶅厑璁告斁澶с��
-                opts.allowMagnify || (scale = Math.min( 1, scale ));
-    
-                w = naturalWidth * scale;
-                h = naturalHeight * scale;
-    
-                if ( opts.crop ) {
-                    cvs.width = width;
-                    cvs.height = height;
-                } else {
-                    cvs.width = w;
-                    cvs.height = h;
-                }
-    
-                x = (cvs.width - w) / 2;
-                y = (cvs.height - h) / 2;
-    
-                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
-    
-                this._renderImageToCanvas( cvs, img, x, y, w, h );
-            },
-    
-            _rotate2Orientaion: function( canvas, orientation ) {
-                var width = canvas.width,
-                    height = canvas.height,
-                    ctx = canvas.getContext('2d');
-    
-                switch ( orientation ) {
-                    case 5:
-                    case 6:
-                    case 7:
-                    case 8:
-                        canvas.width = height;
-                        canvas.height = width;
-                        break;
-                }
-    
-                switch ( orientation ) {
-                    case 2:    // horizontal flip
-                        ctx.translate( width, 0 );
-                        ctx.scale( -1, 1 );
-                        break;
-    
-                    case 3:    // 180 rotate left
-                        ctx.translate( width, height );
-                        ctx.rotate( Math.PI );
-                        break;
-    
-                    case 4:    // vertical flip
-                        ctx.translate( 0, height );
-                        ctx.scale( 1, -1 );
-                        break;
-    
-                    case 5:    // vertical flip + 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.scale( 1, -1 );
-                        break;
-    
-                    case 6:    // 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.translate( 0, -height );
-                        break;
-    
-                    case 7:    // horizontal flip + 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.translate( width, -height );
-                        ctx.scale( -1, 1 );
-                        break;
-    
-                    case 8:    // 90 rotate left
-                        ctx.rotate( -0.5 * Math.PI );
-                        ctx.translate( -width, 0 );
-                        break;
-                }
-            },
-    
-            // https://github.com/stomita/ios-imagefile-megapixel/
-            // blob/master/src/megapix-image.js
-            _renderImageToCanvas: (function() {
-    
-                // 濡傛灉涓嶆槸ios, 涓嶉渶瑕佽繖涔堝鏉傦紒
-                if ( !Base.os.ios ) {
-                    return function( canvas, img, x, y, w, h ) {
-                        canvas.getContext('2d').drawImage( img, x, y, w, h );
-                    };
-                }
-    
-                /**
-                 * Detecting vertical squash in loaded image.
-                 * Fixes a bug which squash image vertically while drawing into
-                 * canvas for some images.
-                 */
-                function detectVerticalSquash( img, iw, ih ) {
-                    var canvas = document.createElement('canvas'),
-                        ctx = canvas.getContext('2d'),
-                        sy = 0,
-                        ey = ih,
-                        py = ih,
-                        data, alpha, ratio;
-    
-    
-                    canvas.width = 1;
-                    canvas.height = ih;
-                    ctx.drawImage( img, 0, 0 );
-                    data = ctx.getImageData( 0, 0, 1, ih ).data;
-    
-                    // search image edge pixel position in case
-                    // it is squashed vertically.
-                    while ( py > sy ) {
-                        alpha = data[ (py - 1) * 4 + 3 ];
-    
-                        if ( alpha === 0 ) {
-                            ey = py;
-                        } else {
-                            sy = py;
-                        }
-    
-                        py = (ey + sy) >> 1;
-                    }
-    
-                    ratio = (py / ih);
-                    return (ratio === 0) ? 1 : ratio;
-                }
-    
-                // fix ie7 bug
-                // http://stackoverflow.com/questions/11929099/
-                // html5-canvas-drawimage-ratio-bug-ios
-                if ( Base.os.ios >= 7 ) {
-                    return function( canvas, img, x, y, w, h ) {
-                        var iw = img.naturalWidth,
-                            ih = img.naturalHeight,
-                            vertSquashRatio = detectVerticalSquash( img, iw, ih );
-    
-                        return canvas.getContext('2d').drawImage( img, 0, 0,
-                            iw * vertSquashRatio, ih * vertSquashRatio,
-                            x, y, w, h );
-                    };
-                }
-    
-                /**
-                 * Detect subsampling in loaded image.
-                 * In iOS, larger images than 2M pixels may be
-                 * subsampled in rendering.
-                 */
-                function detectSubsampling( img ) {
-                    var iw = img.naturalWidth,
-                        ih = img.naturalHeight,
-                        canvas, ctx;
-    
-                    // subsampling may happen overmegapixel image
-                    if ( iw * ih > 1024 * 1024 ) {
-                        canvas = document.createElement('canvas');
-                        canvas.width = canvas.height = 1;
-                        ctx = canvas.getContext('2d');
-                        ctx.drawImage( img, -iw + 1, 0 );
-    
-                        // subsampled image becomes half smaller in rendering size.
-                        // check alpha channel value to confirm image is covering
-                        // edge pixel or not. if alpha value is 0
-                        // image is not covering, hence subsampled.
-                        return ctx.getImageData( 0, 0, 1, 1 ).data[ 3 ] === 0;
-                    } else {
-                        return false;
-                    }
-                }
-    
-    
-                return function( canvas, img, x, y, width, height ) {
-                    var iw = img.naturalWidth,
-                        ih = img.naturalHeight,
-                        ctx = canvas.getContext('2d'),
-                        subsampled = detectSubsampling( img ),
-                        doSquash = this.type === 'image/jpeg',
-                        d = 1024,
-                        sy = 0,
-                        dy = 0,
-                        tmpCanvas, tmpCtx, vertSquashRatio, dw, dh, sx, dx;
-    
-                    if ( subsampled ) {
-                        iw /= 2;
-                        ih /= 2;
-                    }
-    
-                    ctx.save();
-                    tmpCanvas = document.createElement('canvas');
-                    tmpCanvas.width = tmpCanvas.height = d;
-    
-                    tmpCtx = tmpCanvas.getContext('2d');
-                    vertSquashRatio = doSquash ?
-                            detectVerticalSquash( img, iw, ih ) : 1;
-    
-                    dw = Math.ceil( d * width / iw );
-                    dh = Math.ceil( d * height / ih / vertSquashRatio );
-    
-                    while ( sy < ih ) {
-                        sx = 0;
-                        dx = 0;
-                        while ( sx < iw ) {
-                            tmpCtx.clearRect( 0, 0, d, d );
-                            tmpCtx.drawImage( img, -sx, -sy );
-                            ctx.drawImage( tmpCanvas, 0, 0, d, d,
-                                    x + dx, y + dy, dw, dh );
-                            sx += d;
-                            dx += dw;
-                        }
-                        sy += d;
-                        dy += dh;
-                    }
-                    ctx.restore();
-                    tmpCanvas = tmpCtx = null;
-                };
-            })()
-        });
-    });
-    /**
-     * @fileOverview Transport
-     * @todo 鏀寔chunked浼犺緭锛屼紭鍔匡細
-     * 鍙互灏嗗ぇ鏂囦欢鍒嗘垚灏忓潡锛屾尐涓紶杈擄紝鍙互鎻愰珮澶ф枃浠舵垚鍔熺巼锛屽綋澶辫触鐨勬椂鍊欙紝涔熷彧闇�瑕侀噸浼犻偅灏忛儴鍒嗭紝
-     * 鑰屼笉闇�瑕侀噸澶村啀浼犱竴娆°�傚彟澶栨柇鐐圭画浼犱篃闇�瑕佺敤chunked鏂瑰紡銆�
-     */
-    define('runtime/html5/transport',[
-        'base',
-        'runtime/html5/runtime'
-    ], function( Base, Html5Runtime ) {
-    
-        var noop = Base.noop,
-            $ = Base.$;
-    
-        return Html5Runtime.register( 'Transport', {
-            init: function() {
-                this._status = 0;
-                this._response = null;
-            },
-    
-            send: function() {
-                var owner = this.owner,
-                    opts = this.options,
-                    xhr = this._initAjax(),
-                    blob = owner._blob,
-                    server = opts.server,
-                    formData, binary, fr;
-    
-                if ( opts.sendAsBinary ) {
-                    server += (/\?/.test( server ) ? '&' : '?') +
-                            $.param( owner._formData );
-    
-                    binary = blob.getSource();
-                } else {
-                    formData = new FormData();
-                    $.each( owner._formData, function( k, v ) {
-                        formData.append( k, v );
-                    });
-    
-                    formData.append( opts.fileVal, blob.getSource(),
-                            opts.filename || owner._formData.name || '' );
-                }
-    
-                if ( opts.withCredentials && 'withCredentials' in xhr ) {
-                    xhr.open( opts.method, server, true );
-                    xhr.withCredentials = true;
-                } else {
-                    xhr.open( opts.method, server );
-                }
-    
-                this._setRequestHeader( xhr, opts.headers );
-    
-                if ( binary ) {
-                    xhr.overrideMimeType('application/octet-stream');
-    
-                    // android鐩存帴鍙戦�乥lob浼氬鑷存湇鍔$鎺ユ敹鍒扮殑鏄┖鏂囦欢銆�
-                    // bug璇︽儏銆�
-                    // https://code.google.com/p/android/issues/detail?id=39882
-                    // 鎵�浠ュ厛鐢╢ileReader璇诲彇鍑烘潵鍐嶉�氳繃arraybuffer鐨勬柟寮忓彂閫併��
-                    if ( Base.os.android ) {
-                        fr = new FileReader();
-    
-                        fr.onload = function() {
-                            xhr.send( this.result );
-                            fr = fr.onload = null;
-                        };
-    
-                        fr.readAsArrayBuffer( binary );
-                    } else {
-                        xhr.send( binary );
-                    }
-                } else {
-                    xhr.send( formData );
-                }
-            },
-    
-            getResponse: function() {
-                return this._response;
-            },
-    
-            getResponseAsJson: function() {
-                return this._parseJson( this._response );
-            },
-    
-            getStatus: function() {
-                return this._status;
-            },
-    
-            abort: function() {
-                var xhr = this._xhr;
-    
-                if ( xhr ) {
-                    xhr.upload.onprogress = noop;
-                    xhr.onreadystatechange = noop;
-                    xhr.abort();
-    
-                    this._xhr = xhr = null;
-                }
-            },
-    
-            destroy: function() {
-                this.abort();
-            },
-    
-            _initAjax: function() {
-                var me = this,
-                    xhr = new XMLHttpRequest(),
-                    opts = this.options;
-    
-                if ( opts.withCredentials && !('withCredentials' in xhr) &&
-                        typeof XDomainRequest !== 'undefined' ) {
-                    xhr = new XDomainRequest();
-                }
-    
-                xhr.upload.onprogress = function( e ) {
-                    var percentage = 0;
-    
-                    if ( e.lengthComputable ) {
-                        percentage = e.loaded / e.total;
-                    }
-    
-                    return me.trigger( 'progress', percentage );
-                };
-    
-                xhr.onreadystatechange = function() {
-    
-                    if ( xhr.readyState !== 4 ) {
-                        return;
-                    }
-    
-                    xhr.upload.onprogress = noop;
-                    xhr.onreadystatechange = noop;
-                    me._xhr = null;
-                    me._status = xhr.status;
-    
-                    if ( xhr.status >= 200 && xhr.status < 300 ) {
-                        me._response = xhr.responseText;
-                        return me.trigger('load');
-                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
-                        me._response = xhr.responseText;
-                        return me.trigger( 'error', 'server' );
-                    }
-    
-    
-                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
-                };
-    
-                me._xhr = xhr;
-                return xhr;
-            },
-    
-            _setRequestHeader: function( xhr, headers ) {
-                $.each( headers, function( key, val ) {
-                    xhr.setRequestHeader( key, val );
-                });
-            },
-    
-            _parseJson: function( str ) {
-                var json;
-    
-                try {
-                    json = JSON.parse( str );
-                } catch ( ex ) {
-                    json = {};
-                }
-    
-                return json;
-            }
-        });
-    });
-    /**
-     * @fileOverview 鍙湁html5瀹炵幇鐨勬枃浠剁増鏈��
-     */
-    define('preset/html5only',[
-        'base',
-    
-        // widgets
-        'widgets/filednd',
-        'widgets/filepaste',
-        'widgets/filepicker',
-        'widgets/image',
-        'widgets/queue',
-        'widgets/runtime',
-        'widgets/upload',
-        'widgets/validator',
-    
-        // runtimes
-        // html5
-        'runtime/html5/blob',
-        'runtime/html5/dnd',
-        'runtime/html5/filepaste',
-        'runtime/html5/filepicker',
-        'runtime/html5/imagemeta/exif',
-        'runtime/html5/image',
-        'runtime/html5/transport'
-    ], function( Base ) {
-        return Base;
-    });
-    define('webuploader',[
-        'preset/html5only'
-    ], function( preset ) {
-        return preset;
-    });
-    return require('webuploader');
-});
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.html5only.min.js b/server/public/ueditor/third-party/webuploader/webuploader.html5only.min.js
deleted file mode 100644
index c065cef..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.html5only.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* WebUploader 0.1.2 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}},j=b(a,f,e);i(j),"object"==typeof module&&"object"==typeof module.exports?module.exports=j:"function"==typeof define&&define.amd?define([],j):(c=a.WebUploader,a.WebUploader=j,a.WebUploader.noConflict=function(){a.WebUploader=c})}(this,function(a,b,c){return b("dollar-third",[],function(){return a.jQuery||a.Zepto}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.2",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",getDimension:"get-dimension",addButton:"add-btn",getRuntimeType:"get-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return{successNum:a.numOfSuccess,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.parentNode.removeChild(this.__container),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/dnd",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},d.options,a),a.container=e(a.container),a.container.length&&c.call(this,"DragAndDrop")}var e=a.$;return d.options={accept:null,disableGlobalDnd:!1},a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})},destroy:function(){this.disconnectRuntime()}}),b.installTo(d.prototype),d}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g={},h=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):g},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[];return e.each(h,function(c,d){b.push(new d(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,h,i,j,k=0,l=this._widgets,m=l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],h=f.invoke(b,d),h!==g&&(a.isPromise(h)?o.push(h):n.push(h));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return setTimeout(function(){b.resolve.apply(b,c)},1),b.promise()})[j](e||a.noop)):n[0]}}),b.register=d.register=function(b,c){var f,g={init:"init"};return 1===arguments.length?(c=b,c.responseMap=g):c.responseMap=e.extend(g,b),f=a.inherits(d,c),h.push(f),f},d}),b("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(a,b,c){var d=a.$;return b.options.dnd="",b.register({init:function(b){if(b.dnd&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{disableGlobalDnd:b.disableGlobalDnd,container:b.dnd,accept:b.accept});return e=new c(h),e.once("ready",g.resolve),e.on("drop",function(a){f.request("add-file",[a])}),e.on("accept",function(a){return f.owner.trigger("dndAccept",a)}),e.init(),g.promise()}}})}),b("lib/filepaste",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},a),a.container=e(a.container||document.body),c.call(this,"FilePaste")}var e=a.$;return a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})},destroy:function(){this.exec("destroy"),this.disconnectRuntime(),this.off()}}),b.installTo(d.prototype),d}),b("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(a,b,c){var d=a.$;return b.register({init:function(b){if(b.paste&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{container:b.paste,accept:b.accept});return e=new c(h),e.once("ready",g.resolve),e.on("paste",function(a){f.owner.request("add-file",[a])}),e.init(),g.promise()}}})}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,b.call(d,"Blob"),this.uid=c.uid||this.uid,this.type=c.type||"",this.size=c.size||0,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;b.apply(this,arguments),this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&this.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(this.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),!this.type&&~"jpg,jpeg,png,gif,bmp".indexOf(f)&&(this.type="image/"+("jpg"===f?"jpeg":f)),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString()}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("鎸夐挳鎸囧畾閿欒");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var b=this,c=b.options,e=c.button;e.addClass("webuploader-pick"),b.on("all",function(a){var g;switch(a){case"mouseenter":e.addClass("webuploader-pick-hover");break;case"mouseleave":e.removeClass("webuploader-pick-hover");break;case"change":g=b.exec("getFiles"),b.trigger("select",f.map(g,function(a){return a=new d(b.getRuid(),a),a._refer=c.container,a}),c.container)}}),b.connectRuntime(c,function(){b.refresh(),b.exec("init",c),b.trigger("ready")}),f(a).on("resize",function(){b.refresh()})},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){this.runtime&&(this.exec("destroy"),this.disconnectRuntime())}}),e}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({"add-btn":"addButton",refresh:"refresh",disable:"disable",enable:"enable"},{init:function(a){return this.pickers=[],a.pick&&this.addButton(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addButton:function(b){var e,f,g,h=this,i=h.options,j=i.accept;if(b)return g=a.Deferred(),d.isPlainObject(b)||(b={id:b}),e=d.extend({},b,{accept:d.isPlainObject(j)?[j]:j,swf:i.swf,runtimeOrder:i.runtimeOrder}),f=new c(e),f.once("ready",g.resolve),f.on("select",function(a){h.owner.request("add-file",[a])}),f.init(),this.pickers.push(f),g.promise()},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!0,allowMagnify:!0},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({"make-thumb":"makeThumb","before-send-file":"compressImage"},{makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(){b(!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},compressImage:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||307200;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){b._info=b._info||d.info(),b._meta=b._meta||d.meta(),d.resize(g.width,g.height)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,a.size<c&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destory:function(){delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)})),a.setStatus(f.QUEUED)},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({"sort-files":"sortFiles","add-file":"addFiles","get-file":"getFile","fetch-file":"fetchFile","get-stats":"getStats","get-files":"getFiles","remove-file":"removeFile",retry:"retry",reset:"reset","accept-file":"acceptFile"},{init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||a.size<6||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFiles:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&b.request("start-upload")},getStats:function(){return this.stats},removeFile:function(a){var b=this;a=a.id?a:b.queue.getFile(a),a.setStatus(i.CANCELLED),b.owner.trigger("fileDequeued",a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.queue=new c,this.stats=this.queue.stats}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({"predict-runtime-type":"predictRuntmeType"},{init:function(){if(!this.predictRuntmeType())throw Error("Runtime Error")},predictRuntmeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){for(var c,d=[],e=a.source,f=e.size,g=b?Math.ceil(f/b):1,h=0,i=0;g>i;)c=Math.min(b,f-h),d.push({file:a,start:h,end:b?h+c:f,total:f,chunks:g,chunk:i++}),h+=c;return a.blocks=d.concat(),a.remaning=d.length,{file:a,has:function(){return!!d.length},fetch:function(){return d.shift()}}}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:null}),b.register({"start-upload":"start","stop-upload":"stop","skip-file":"skipFile","is-in-progress":"isInProgress"},{init:function(){var b=this.owner;this.runing=!1,this.pool=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},start:function(){var b=this;f.each(b.request("get-files",h.INVALID),function(){b.request("remove-file",this)}),b.runing||(b.runing=!0,f.each(b.pool,function(a,c){var d=c.file;d.getStatus()===h.INTERRUPT&&(d.setStatus(h.PROGRESS),b._trigged=!1,c.transport&&c.transport.send())}),b._trigged=!1,b.owner.trigger("startUpload"),a.nextTick(b.__tick))},stop:function(a){var b=this;b.runing!==!1&&(b.runing=!1,a&&f.each(b.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),b.owner.trigger("stopUpload"))},isInProgress:function(){return!!this.runing},getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d.getStats().numOfQueue||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_nextBlock:function(){var a,b,c=this,d=c._act,f=c.options;return d&&d.has()&&d.file.getStatus()===h.PROGRESS?(f.prepareNextFile&&!c.pending.length&&c._prepareNextFile(),d.fetch()):c.runing?(!c.pending.length&&c.getStats().numOfQueue&&c._prepareNextFile(),a=c.pending.shift(),b=function(a){return a?(d=e(a,f.chunked?f.chunkSize:0),c._act=d,d.fetch()):null},g(a)?a[a.pipe?"pipe":"then"](b):b(a)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.QUEUED?(b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),c):b._finishFile(c)}),a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d._popBlock(b),a.nextTick(d.__tick))})},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){var c=0,d=0;c=b.percentage=a,b.chunks>1&&(f.each(k.blocks,function(a,b){d+=(b.percentage||0)*(b.end-b.start)}),c=d/k.size),i.trigger("uploadProgress",k,c||0)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({init:function(){var a=this;e.each(f,function(){this.call(a.owner)})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=b.fileNumLimit>>0,e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("uploadFinished",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=b.fileSizeLimit>>0,e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("uploadFinished",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}))}),d}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destory;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destory=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(a,b,c){var d=a.$,e="webuploader-dnd-";return b.register("DragAndDrop",{init:function(){var b=this.elem=this.options.container;this.dragEnterHandler=a.bindFn(this._dragEnterHandler,this),this.dragOverHandler=a.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=a.bindFn(this._dragLeaveHandler,this),this.dropHandler=a.bindFn(this._dropHandler,this),this.dndOver=!1,b.on("dragenter",this.dragEnterHandler),b.on("dragover",this.dragOverHandler),b.on("dragleave",this.dragLeaveHandler),b.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).on("dragover",this.dragOverHandler),d(document).on("drop",this.dropHandler))
-},_dragEnterHandler:function(a){var b,c=this,d=c._denied||!1;return a=a.originalEvent||a,c.dndOver||(c.dndOver=!0,b=a.dataTransfer.items,b&&b.length&&(c._denied=d=!c.trigger("accept",b)),c.elem.addClass(e+"over"),c.elem[d?"addClass":"removeClass"](e+"denied")),a.dataTransfer.dropEffect=d?"none":"copy",!1},_dragOverHandler:function(a){var b=this.elem.parent().get(0);return b&&!d.contains(b,a.currentTarget)?!1:(clearTimeout(this._leaveTimer),this._dragEnterHandler.call(this,a),!1)},_dragLeaveHandler:function(){var a,b=this;return a=function(){b.dndOver=!1,b.elem.removeClass(e+"over "+e+"denied")},clearTimeout(b._leaveTimer),b._leaveTimer=setTimeout(a,100),!1},_dropHandler:function(a){var b=this,f=b.getRuid(),g=b.elem.parent().get(0);return g&&!d.contains(g,a.currentTarget)?!1:(b._getTansferFiles(a,function(a){b.trigger("drop",d.map(a,function(a){return new c(f,a)}))}),b.dndOver=!1,b.elem.removeClass(e+"over"),!1)},_getTansferFiles:function(b,c){var d,e,f,g,h,i,j,k,l=[],m=[];for(b=b.originalEvent||b,f=b.dataTransfer,d=f.items,e=f.files,k=!(!d||!d[0].webkitGetAsEntry),i=0,j=e.length;j>i;i++)g=e[i],h=d&&d[i],k&&h.webkitGetAsEntry().isDirectory?m.push(this._traverseDirectoryTree(h.webkitGetAsEntry(),l)):l.push(g);a.when.apply(a,m).done(function(){l.length&&c(l)})},_traverseDirectoryTree:function(b,c){var d=a.Deferred(),e=this;return b.isFile?b.file(function(a){c.push(a),d.resolve()}):b.isDirectory&&b.createReader().readEntries(function(b){var f,g=b.length,h=[],i=[];for(f=0;g>f;f++)h.push(e._traverseDirectoryTree(b[f],i));a.when.apply(a,h).then(function(){c.push.apply(c,i),d.resolve()},d.reject)}),d.promise()},destroy:function(){var a=this.elem;a.off("dragenter",this.dragEnterHandler),a.off("dragover",this.dragEnterHandler),a.off("dragleave",this.dragLeaveHandler),a.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).off("dragover",this.dragOverHandler),d(document).off("drop",this.dropHandler))}})}),b("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(a,b,c){return b.register("FilePaste",{init:function(){var b,c,d,e,f=this.options,g=this.elem=f.container,h=".*";if(f.accept){for(b=[],c=0,d=f.accept.length;d>c;c++)e=f.accept[c].mimeTypes,e&&b.push(e);b.length&&(h=b.join(","),h=h.replace(/,/g,"|").replace(/\*/g,".*"))}this.accept=h=new RegExp(h,"i"),this.hander=a.bindFn(this._pasteHander,this),g.on("paste",this.hander)},_pasteHander:function(a){var b,d,e,f,g,h=[],i=this.getRuid();for(a=a.originalEvent||a,b=a.clipboardData.items,f=0,g=b.length;g>f;f++)d=b[f],"file"===d.kind&&(e=d.getAsFile())&&h.push(new c(i,e));h.length&&(a.preventDefault(),a.stopPropagation(),this.trigger("paste",h))},destroy:function(){this.elem.off("paste",this.hander)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=c(document.createElement("label")),k=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){}})}),b("runtime/html5/util",["base"],function(b){var c=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL,d=b.noop,e=d;return c&&(d=function(){return c.createObjectURL.apply(c,arguments)},e=function(){return c.revokeObjectURL.apply(c,arguments)}),{createObjectURL:d,revokeObjectURL:e,dataURL2Blob:function(a){var b,c,d,e,f,g;for(g=a.split(","),b=~g[0].indexOf("base64")?atob(g[1]):decodeURIComponent(g[1]),d=new ArrayBuffer(b.length),c=new Uint8Array(d),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return f=g[0].split(":")[1].split(";")[0],this.arrayBufferToBlob(d,f)},dataURL2ArrayBuffer:function(a){var b,c,d,e;for(e=a.split(","),b=~e[0].indexOf("base64")?atob(e[1]):decodeURIComponent(e[1]),c=new Uint8Array(b.length),d=0;d<b.length;d++)c[d]=b.charCodeAt(d);return c.buffer},arrayBufferToBlob:function(b,c){var d,e=a.BlobBuilder||a.WebKitBlobBuilder;return e?(d=new e,d.append(b),d.getBlob(c)):new Blob([b],c?{type:c}:{})},canvasToDataUrl:function(a,b,c){return a.toDataURL(b,c/100)},parseMeta:function(a,b){b(!1,{})},updateImageHead:function(a){return a}}}),b("runtime/html5/imagemeta",["runtime/html5/util"],function(a){var b;return b={parsers:{65505:[]},maxMetaDataSize:262144,parse:function(a,b){var c=this,d=new FileReader;d.onload=function(){b(!1,c._parse(this.result)),d=d.onload=d.onerror=null},d.onerror=function(a){b(a.message),d=d.onload=d.onerror=null},a=a.slice(0,c.maxMetaDataSize),d.readAsArrayBuffer(a.getSource())},_parse:function(a,c){if(!(a.byteLength<6)){var d,e,f,g,h=new DataView(a),i=2,j=h.byteLength-4,k=i,l={};if(65496===h.getUint16(0)){for(;j>i&&(d=h.getUint16(i),d>=65504&&65519>=d||65534===d)&&(e=h.getUint16(i+2)+2,!(i+e>h.byteLength));){if(f=b.parsers[d],!c&&f)for(g=0;g<f.length;g+=1)f[g].call(b,h,i,e,l);i+=e,k=i}k>6&&(l.imageHead=a.slice?a.slice(2,k):new Uint8Array(a).subarray(2,k))}return l}},updateImageHead:function(a,b){var c,d,e,f=this._parse(a,!0);return e=2,f.imageHead&&(e=2+f.imageHead.byteLength),d=a.slice?a.slice(e):new Uint8Array(a).subarray(e),c=new Uint8Array(b.byteLength+2+d.byteLength),c[0]=255,c[1]=216,c.set(new Uint8Array(b),2),c.set(new Uint8Array(d),b.byteLength+2),c.buffer}},a.parseMeta=function(){return b.parse.apply(b,arguments)},a.updateImageHead=function(){return b.updateImageHead.apply(b,arguments)},b}),b("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(a,b){var c={};return c.ExifMap=function(){return this},c.ExifMap.prototype.map={Orientation:274},c.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},c.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},c.exifTagTypes[7]=c.exifTagTypes[1],c.getExifValue=function(b,d,e,f,g,h){var i,j,k,l,m,n,o=c.exifTagTypes[f];if(!o)return void a.log("Invalid Exif data: Invalid tag type.");if(i=o.size*g,j=i>4?d+b.getUint32(e+8,h):e+8,j+i>b.byteLength)return void a.log("Invalid Exif data: Invalid data offset.");if(1===g)return o.getValue(b,j,h);for(k=[],l=0;g>l;l+=1)k[l]=o.getValue(b,j+l*o.size,h);if(o.ascii){for(m="",l=0;l<k.length&&(n=k[l],"\x00"!==n);l+=1)m+=n;return m}return k},c.parseExifTag=function(a,b,d,e,f){var g=a.getUint16(d,e);f.exif[g]=c.getExifValue(a,b,d,a.getUint16(d+2,e),a.getUint32(d+4,e),e)},c.parseExifTags=function(b,c,d,e,f){var g,h,i;if(d+6>b.byteLength)return void a.log("Invalid Exif data: Invalid directory offset.");if(g=b.getUint16(d,e),h=d+2+12*g,h+4>b.byteLength)return void a.log("Invalid Exif data: Invalid directory size.");for(i=0;g>i;i+=1)this.parseExifTag(b,c,d+2+12*i,e,f);return b.getUint32(h,e)},c.parseExifData=function(b,d,e,f){var g,h,i=d+10;if(1165519206===b.getUint32(d+4)){if(i+8>b.byteLength)return void a.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(d+8))return void a.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(i)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void a.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(i+2,g))return void a.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(i+4,g),f.exif=new c.ExifMap,h=c.parseExifTags(b,i,i+h,g,f)}},b.parsers[65505].push(c.parseExifData),c}),b("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(a,b,c){var d="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return b.register("Image",{modified:!1,init:function(){var a=this,b=new Image;b.onload=function(){a._info={type:a.type,width:this.width,height:this.height},a._metas||"image/jpeg"!==a.type?a.owner.trigger("load"):c.parseMeta(a._blob,function(b,c){a._metas=c,a.owner.trigger("load")})},b.onerror=function(){a.owner.trigger("error")},a._img=b},loadFromBlob:function(a){var b=this,d=b._img;b._blob=a,b.type=a.type,d.src=c.createObjectURL(a.getSource()),b.owner.once("load",function(){c.revokeObjectURL(d.src)})},resize:function(a,b){var c=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,c,a,b),this._blob=null,this.modified=!0,this.owner.trigger("complete")},getAsBlob:function(a){var b,d=this._blob,e=this.options;if(a=a||this.type,this.modified||this.type!==a){if(b=this._canvas,"image/jpeg"===a){if(d=c.canvasToDataUrl(b,"image/jpeg",e.quality),e.preserveHeaders&&this._metas&&this._metas.imageHead)return d=c.dataURL2ArrayBuffer(d),d=c.updateImageHead(d,this._metas.imageHead),d=c.arrayBufferToBlob(d,a)}else d=c.canvasToDataUrl(b,a);d=c.dataURL2Blob(d)}return d},getAsDataUrl:function(a){var b=this.options;return a=a||this.type,"image/jpeg"===a?c.canvasToDataUrl(this._canvas,a,b.quality):this._canvas.toDataURL(a)},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},destroy:function(){var a=this._canvas;this._img.onload=null,a&&(a.getContext("2d").clearRect(0,0,a.width,a.height),a.width=a.height=0,this._canvas=null),this._img.src=d,this._img=this._blob=null},_resize:function(a,b,c,d){var e,f,g,h,i,j=this.options,k=a.width,l=a.height,m=this.getOrientation();~[5,6,7,8].indexOf(m)&&(c^=d,d^=c,c^=d),e=Math[j.crop?"max":"min"](c/k,d/l),j.allowMagnify||(e=Math.min(1,e)),f=k*e,g=l*e,j.crop?(b.width=c,b.height=d):(b.width=f,b.height=g),h=(b.width-f)/2,i=(b.height-g)/2,j.preserveHeaders||this._rotate2Orientaion(b,m),this._renderImageToCanvas(b,a,h,i,f,g)},_rotate2Orientaion:function(a,b){var c=a.width,d=a.height,e=a.getContext("2d");switch(b){case 5:case 6:case 7:case 8:a.width=d,a.height=c}switch(b){case 2:e.translate(c,0),e.scale(-1,1);break;case 3:e.translate(c,d),e.rotate(Math.PI);break;case 4:e.translate(0,d),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-d);break;case 7:e.rotate(.5*Math.PI),e.translate(c,-d),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-c,0)}},_renderImageToCanvas:function(){function b(a,b,c){var d,e,f,g=document.createElement("canvas"),h=g.getContext("2d"),i=0,j=c,k=c;for(g.width=1,g.height=c,h.drawImage(a,0,0),d=h.getImageData(0,0,1,c).data;k>i;)e=d[4*(k-1)+3],0===e?j=k:i=k,k=j+i>>1;return f=k/c,0===f?1:f}function c(a){var b,c,d=a.naturalWidth,e=a.naturalHeight;return d*e>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-d+1,0),0===c.getImageData(0,0,1,1).data[3]):!1}return a.os.ios?a.os.ios>=7?function(a,c,d,e,f,g){var h=c.naturalWidth,i=c.naturalHeight,j=b(c,h,i);return a.getContext("2d").drawImage(c,0,0,h*j,i*j,d,e,f,g)}:function(a,d,e,f,g,h){var i,j,k,l,m,n,o,p=d.naturalWidth,q=d.naturalHeight,r=a.getContext("2d"),s=c(d),t="image/jpeg"===this.type,u=1024,v=0,w=0;for(s&&(p/=2,q/=2),r.save(),i=document.createElement("canvas"),i.width=i.height=u,j=i.getContext("2d"),k=t?b(d,p,q):1,l=Math.ceil(u*g/p),m=Math.ceil(u*h/q/k);q>v;){for(n=0,o=0;p>n;)j.clearRect(0,0,u,u),j.drawImage(d,-n,-v),r.drawImage(i,0,0,u,u,e+o,f+w,l,m),n+=u,o+=l;v+=u,w+=m}r.restore(),i=j=null}:function(a,b,c,d,e,f){a.getContext("2d").drawImage(b,c,d,e,f)}}()})}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("preset/html5only",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/imagemeta/exif","runtime/html5/image","runtime/html5/transport"],function(a){return a}),b("webuploader",["preset/html5only"],function(a){return a}),c("webuploader")});
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.js b/server/public/ueditor/third-party/webuploader/webuploader.js
deleted file mode 100644
index 8526e4f..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.js
+++ /dev/null
@@ -1,6733 +0,0 @@
-/*! WebUploader 0.1.2 */
-
-
-/**
- * @fileOverview 璁╁唴閮ㄥ悇涓儴浠剁殑浠g爜鍙互鐢╗amd](https://github.com/amdjs/amdjs-api/wiki/AMD)妯″潡瀹氫箟鏂瑰紡缁勭粐璧锋潵銆�
- *
- * AMD API 鍐呴儴鐨勭畝鍗曚笉瀹屽叏瀹炵幇锛岃蹇界暐銆傚彧鏈夊綋WebUploader琚悎骞舵垚涓�涓枃浠剁殑鏃跺�欐墠浼氬紩鍏ャ��
- */
-(function( root, factory ) {
-    var modules = {},
-
-        // 鍐呴儴require, 绠�鍗曚笉瀹屽叏瀹炵幇銆�
-        // https://github.com/amdjs/amdjs-api/wiki/require
-        _require = function( deps, callback ) {
-            var args, len, i;
-
-            // 濡傛灉deps涓嶆槸鏁扮粍锛屽垯鐩存帴杩斿洖鎸囧畾module
-            if ( typeof deps === 'string' ) {
-                return getModule( deps );
-            } else {
-                args = [];
-                for( len = deps.length, i = 0; i < len; i++ ) {
-                    args.push( getModule( deps[ i ] ) );
-                }
-
-                return callback.apply( null, args );
-            }
-        },
-
-        // 鍐呴儴define锛屾殏鏃朵笉鏀寔涓嶆寚瀹歩d.
-        _define = function( id, deps, factory ) {
-            if ( arguments.length === 2 ) {
-                factory = deps;
-                deps = null;
-            }
-
-            _require( deps || [], function() {
-                setModule( id, factory, arguments );
-            });
-        },
-
-        // 璁剧疆module, 鍏煎CommonJs鍐欐硶銆�
-        setModule = function( id, factory, args ) {
-            var module = {
-                    exports: factory
-                },
-                returned;
-
-            if ( typeof factory === 'function' ) {
-                args.length || (args = [ _require, module.exports, module ]);
-                returned = factory.apply( null, args );
-                returned !== undefined && (module.exports = returned);
-            }
-
-            modules[ id ] = module.exports;
-        },
-
-        // 鏍规嵁id鑾峰彇module
-        getModule = function( id ) {
-            var module = modules[ id ] || root[ id ];
-
-            if ( !module ) {
-                throw new Error( '`' + id + '` is undefined' );
-            }
-
-            return module;
-        },
-
-        // 灏嗘墍鏈塵odules锛屽皢璺緞ids瑁呮崲鎴愬璞°��
-        exportsTo = function( obj ) {
-            var key, host, parts, part, last, ucFirst;
-
-            // make the first character upper case.
-            ucFirst = function( str ) {
-                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
-            };
-
-            for ( key in modules ) {
-                host = obj;
-
-                if ( !modules.hasOwnProperty( key ) ) {
-                    continue;
-                }
-
-                parts = key.split('/');
-                last = ucFirst( parts.pop() );
-
-                while( (part = ucFirst( parts.shift() )) ) {
-                    host[ part ] = host[ part ] || {};
-                    host = host[ part ];
-                }
-
-                host[ last ] = modules[ key ];
-            }
-        },
-
-        exports = factory( root, _define, _require ),
-        origin;
-
-    // exports every module.
-    exportsTo( exports );
-
-    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
-
-        // For CommonJS and CommonJS-like environments where a proper window is present,
-        module.exports = exports;
-    } else if ( typeof define === 'function' && define.amd ) {
-
-        // Allow using this built library as an AMD module
-        // in another project. That other project will only
-        // see this AMD call, not the internal modules in
-        // the closure below.
-        define([], exports );
-    } else {
-
-        // Browser globals case. Just assign the
-        // result to a property on the global.
-        origin = root.WebUploader;
-        root.WebUploader = exports;
-        root.WebUploader.noConflict = function() {
-            root.WebUploader = origin;
-        };
-    }
-})( this, function( window, define, require ) {
-
-
-    /**
-     * @fileOverview jQuery or Zepto
-     */
-    define('dollar-third',[],function() {
-        return window.jQuery || window.Zepto;
-    });
-    /**
-     * @fileOverview Dom 鎿嶄綔鐩稿叧
-     */
-    define('dollar',[
-        'dollar-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 浣跨敤jQuery鐨凱romise
-     */
-    define('promise-third',[
-        'dollar'
-    ], function( $ ) {
-        return {
-            Deferred: $.Deferred,
-            when: $.when,
-    
-            isPromise: function( anything ) {
-                return anything && typeof anything.then === 'function';
-            }
-        };
-    });
-    /**
-     * @fileOverview Promise/A+
-     */
-    define('promise',[
-        'promise-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 鍩虹绫绘柟娉曘��
-     */
-    
-    /**
-     * Web Uploader鍐呴儴绫荤殑璇︾粏璇存槑锛屼互涓嬫彁鍙婄殑鍔熻兘绫伙紝閮藉彲浠ュ湪`WebUploader`杩欎釜鍙橀噺涓闂埌銆�
-     *
-     * As you know, Web Uploader鐨勬瘡涓枃浠堕兘鏄敤杩嘯AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)瑙勮寖涓殑`define`缁勭粐璧锋潵鐨�, 姣忎釜Module閮戒細鏈変釜module id.
-     * 榛樿module id璇ユ枃浠剁殑璺緞锛岃�屾璺緞灏嗕細杞寲鎴愬悕瀛楃┖闂村瓨鏀惧湪WebUploader涓�傚锛�
-     *
-     * * module `base`锛歐ebUploader.Base
-     * * module `file`: WebUploader.File
-     * * module `lib/dnd`: WebUploader.Lib.Dnd
-     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
-     *
-     *
-     * 浠ヤ笅鏂囨。灏嗗彲鑳界渷鐣WebUploader`鍓嶇紑銆�
-     * @module WebUploader
-     * @title WebUploader API鏂囨。
-     */
-    define('base',[
-        'dollar',
-        'promise'
-    ], function( $, promise ) {
-    
-        var noop = function() {},
-            call = Function.call;
-    
-        // http://jsperf.com/uncurrythis
-        // 鍙嶇閲屽寲
-        function uncurryThis( fn ) {
-            return function() {
-                return call.apply( fn, arguments );
-            };
-        }
-    
-        function bindFn( fn, context ) {
-            return function() {
-                return fn.apply( context, arguments );
-            };
-        }
-    
-        function createObject( proto ) {
-            var f;
-    
-            if ( Object.create ) {
-                return Object.create( proto );
-            } else {
-                f = function() {};
-                f.prototype = proto;
-                return new f();
-            }
-        }
-    
-    
-        /**
-         * 鍩虹绫伙紝鎻愪緵涓�浜涚畝鍗曞父鐢ㄧ殑鏂规硶銆�
-         * @class Base
-         */
-        return {
-    
-            /**
-             * @property {String} version 褰撳墠鐗堟湰鍙枫��
-             */
-            version: '0.1.2',
-    
-            /**
-             * @property {jQuery|Zepto} $ 寮曠敤渚濊禆鐨刯Query鎴栬�匷epto瀵硅薄銆�
-             */
-            $: $,
-    
-            Deferred: promise.Deferred,
-    
-            isPromise: promise.isPromise,
-    
-            when: promise.when,
-    
-            /**
-             * @description  绠�鍗曠殑娴忚鍣ㄦ鏌ョ粨鏋溿��
-             *
-             * * `webkit`  webkit鐗堟湰鍙凤紝濡傛灉娴忚鍣ㄤ负闈瀢ebkit鍐呮牳锛屾灞炴�т负`undefined`銆�
-             * * `chrome`  chrome娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓篶hrome锛屾灞炴�т负`undefined`銆�
-             * * `ie`  ie娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪ie锛屾灞炴�т负`undefined`銆�**鏆備笉鏀寔ie10+**
-             * * `firefox`  firefox娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪firefox锛屾灞炴�т负`undefined`銆�
-             * * `safari`  safari娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪safari锛屾灞炴�т负`undefined`銆�
-             * * `opera`  opera娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪opera锛屾灞炴�т负`undefined`銆�
-             *
-             * @property {Object} [browser]
-             */
-            browser: (function( ua ) {
-                var ret = {},
-                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
-                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
-                        ua.match( /CriOS\/([\d.]+)/ ),
-    
-                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
-                        ua.match(/(?:trident)(?:.*rv:([\w.]+))?/i),
-                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
-                    safari = ua.match( /Safari\/([\d.]+)/ ),
-                    opera = ua.match( /OPR\/([\d.]+)/ );
-    
-                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
-                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
-                ie && (ret.ie = parseFloat( ie[ 1 ] ));
-                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
-                safari && (ret.safari = parseFloat( safari[ 1 ] ));
-                opera && (ret.opera = parseFloat( opera[ 1 ] ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * @description  鎿嶄綔绯荤粺妫�鏌ョ粨鏋溿��
-             *
-             * * `android`  濡傛灉鍦╝ndroid娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刟ndroid鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * * `ios` 濡傛灉鍦╥os娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刬os鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * @property {Object} [os]
-             */
-            os: (function( ua ) {
-                var ret = {},
-    
-                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
-                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
-                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
-    
-                // osx && (ret.osx = true);
-                android && (ret.android = parseFloat( android[ 1 ] ));
-                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * 瀹炵幇绫讳笌绫讳箣闂寸殑缁ф壙銆�
-             * @method inherits
-             * @grammar Base.inherits( super ) => child
-             * @grammar Base.inherits( super, protos ) => child
-             * @grammar Base.inherits( super, protos, statics ) => child
-             * @param  {Class} super 鐖剁被
-             * @param  {Object | Function} [protos] 瀛愮被鎴栬�呭璞°�傚鏋滃璞′腑鍖呭惈constructor锛屽瓙绫诲皢鏄敤姝ゅ睘鎬у�笺��
-             * @param  {Function} [protos.constructor] 瀛愮被鏋勯�犲櫒锛屼笉鎸囧畾鐨勮瘽灏嗗垱寤轰釜涓存椂鐨勭洿鎺ユ墽琛岀埗绫绘瀯閫犲櫒鐨勬柟娉曘��
-             * @param  {Object} [statics] 闈欐�佸睘鎬ф垨鏂规硶銆�
-             * @return {Class} 杩斿洖瀛愮被銆�
-             * @example
-             * function Person() {
-             *     console.log( 'Super' );
-             * }
-             * Person.prototype.hello = function() {
-             *     console.log( 'hello' );
-             * };
-             *
-             * var Manager = Base.inherits( Person, {
-             *     world: function() {
-             *         console.log( 'World' );
-             *     }
-             * });
-             *
-             * // 鍥犱负娌℃湁鎸囧畾鏋勯�犲櫒锛岀埗绫荤殑鏋勯�犲櫒灏嗕細鎵ц銆�
-             * var instance = new Manager();    // => Super
-             *
-             * // 缁ф壙瀛愮埗绫荤殑鏂规硶
-             * instance.hello();    // => hello
-             * instance.world();    // => World
-             *
-             * // 瀛愮被鐨刜_super__灞炴�ф寚鍚戠埗绫�
-             * console.log( Manager.__super__ === Person );    // => true
-             */
-            inherits: function( Super, protos, staticProtos ) {
-                var child;
-    
-                if ( typeof protos === 'function' ) {
-                    child = protos;
-                    protos = null;
-                } else if ( protos && protos.hasOwnProperty('constructor') ) {
-                    child = protos.constructor;
-                } else {
-                    child = function() {
-                        return Super.apply( this, arguments );
-                    };
-                }
-    
-                // 澶嶅埗闈欐�佹柟娉�
-                $.extend( true, child, Super, staticProtos || {} );
-    
-                /* jshint camelcase: false */
-    
-                // 璁╁瓙绫荤殑__super__灞炴�ф寚鍚戠埗绫汇��
-                child.__super__ = Super.prototype;
-    
-                // 鏋勫缓鍘熷瀷锛屾坊鍔犲師鍨嬫柟娉曟垨灞炴�с��
-                // 鏆傛椂鐢∣bject.create瀹炵幇銆�
-                child.prototype = createObject( Super.prototype );
-                protos && $.extend( true, child.prototype, protos );
-    
-                return child;
-            },
-    
-            /**
-             * 涓�涓笉鍋氫换浣曚簨鎯呯殑鏂规硶銆傚彲浠ョ敤鏉ヨ祴鍊肩粰榛樿鐨刢allback.
-             * @method noop
-             */
-            noop: noop,
-    
-            /**
-             * 杩斿洖涓�涓柊鐨勬柟娉曪紝姝ゆ柟娉曞皢宸叉寚瀹氱殑`context`鏉ユ墽琛屻��
-             * @grammar Base.bindFn( fn, context ) => Function
-             * @method bindFn
-             * @example
-             * var doSomething = function() {
-             *         console.log( this.name );
-             *     },
-             *     obj = {
-             *         name: 'Object Name'
-             *     },
-             *     aliasFn = Base.bind( doSomething, obj );
-             *
-             *  aliasFn();    // => Object Name
-             *
-             */
-            bindFn: bindFn,
-    
-            /**
-             * 寮曠敤Console.log濡傛灉瀛樺湪鐨勮瘽锛屽惁鍒欏紩鐢ㄤ竴涓猍绌哄嚱鏁發oop](#WebUploader:Base.log)銆�
-             * @grammar Base.log( args... ) => undefined
-             * @method log
-             */
-            log: (function() {
-                if ( window.console ) {
-                    return bindFn( console.log, console );
-                }
-                return noop;
-            })(),
-    
-            nextTick: (function() {
-    
-                return function( cb ) {
-                    setTimeout( cb, 1 );
-                };
-    
-                // @bug 褰撴祻瑙堝櫒涓嶅湪褰撳墠绐楀彛鏃跺氨鍋滀簡銆�
-                // var next = window.requestAnimationFrame ||
-                //     window.webkitRequestAnimationFrame ||
-                //     window.mozRequestAnimationFrame ||
-                //     function( cb ) {
-                //         window.setTimeout( cb, 1000 / 60 );
-                //     };
-    
-                // // fix: Uncaught TypeError: Illegal invocation
-                // return bindFn( next, window );
-            })(),
-    
-            /**
-             * 琚玔uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)鐨勬暟缁剆lice鏂规硶銆�
-             * 灏嗙敤鏉ュ皢闈炴暟缁勫璞¤浆鍖栨垚鏁扮粍瀵硅薄銆�
-             * @grammar Base.slice( target, start[, end] ) => Array
-             * @method slice
-             * @example
-             * function doSomthing() {
-             *     var args = Base.slice( arguments, 1 );
-             *     console.log( args );
-             * }
-             *
-             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
-             */
-            slice: uncurryThis( [].slice ),
-    
-            /**
-             * 鐢熸垚鍞竴鐨処D
-             * @method guid
-             * @grammar Base.guid() => String
-             * @grammar Base.guid( prefx ) => String
-             */
-            guid: (function() {
-                var counter = 0;
-    
-                return function( prefix ) {
-                    var guid = (+new Date()).toString( 32 ),
-                        i = 0;
-    
-                    for ( ; i < 5; i++ ) {
-                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
-                    }
-    
-                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
-                };
-            })(),
-    
-            /**
-             * 鏍煎紡鍖栨枃浠跺ぇ灏�, 杈撳嚭鎴愬甫鍗曚綅鐨勫瓧绗︿覆
-             * @method formatSize
-             * @grammar Base.formatSize( size ) => String
-             * @grammar Base.formatSize( size, pointLength ) => String
-             * @grammar Base.formatSize( size, pointLength, units ) => String
-             * @param {Number} size 鏂囦欢澶у皬
-             * @param {Number} [pointLength=2] 绮剧‘鍒扮殑灏忔暟鐐规暟銆�
-             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 鍗曚綅鏁扮粍銆備粠瀛楄妭锛屽埌鍗冨瓧鑺傦紝涓�鐩村線涓婃寚瀹氥�傚鏋滃崟浣嶆暟缁勯噷闈㈠彧鎸囧畾浜嗗埌浜咾(鍗冨瓧鑺�)锛屽悓鏃舵枃浠跺ぇ灏忓ぇ浜嶮, 姝ゆ柟娉曠殑杈撳嚭灏嗚繕鏄樉绀烘垚澶氬皯K.
-             * @example
-             * console.log( Base.formatSize( 100 ) );    // => 100B
-             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
-             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
-             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
-             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
-             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
-             */
-            formatSize: function( size, pointLength, units ) {
-                var unit;
-    
-                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
-    
-                while ( (unit = units.shift()) && size > 1024 ) {
-                    size = size / 1024;
-                }
-    
-                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
-                        unit;
-            }
-        };
-    });
-    /**
-     * 浜嬩欢澶勭悊绫伙紝鍙互鐙珛浣跨敤锛屼篃鍙互鎵╁睍缁欏璞′娇鐢ㄣ��
-     * @fileOverview Mediator
-     */
-    define('mediator',[
-        'base'
-    ], function( Base ) {
-        var $ = Base.$,
-            slice = [].slice,
-            separator = /\s+/,
-            protos;
-    
-        // 鏍规嵁鏉′欢杩囨护鍑轰簨浠秇andlers.
-        function findHandlers( arr, name, callback, context ) {
-            return $.grep( arr, function( handler ) {
-                return handler &&
-                        (!name || handler.e === name) &&
-                        (!callback || handler.cb === callback ||
-                        handler.cb._cb === callback) &&
-                        (!context || handler.ctx === context);
-            });
-        }
-    
-        function eachEvent( events, callback, iterator ) {
-            // 涓嶆敮鎸佸璞★紝鍙敮鎸佸涓猠vent鐢ㄧ┖鏍奸殧寮�
-            $.each( (events || '').split( separator ), function( _, key ) {
-                iterator( key, callback );
-            });
-        }
-    
-        function triggerHanders( events, args ) {
-            var stoped = false,
-                i = -1,
-                len = events.length,
-                handler;
-    
-            while ( ++i < len ) {
-                handler = events[ i ];
-    
-                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
-                    stoped = true;
-                    break;
-                }
-            }
-    
-            return !stoped;
-        }
-    
-        protos = {
-    
-            /**
-             * 缁戝畾浜嬩欢銆�
-             *
-             * `callback`鏂规硶鍦ㄦ墽琛屾椂锛宎rguments灏嗕細鏉ユ簮浜巘rigger鐨勬椂鍊欐惡甯︾殑鍙傛暟銆傚
-             * ```javascript
-             * var obj = {};
-             *
-             * // 浣垮緱obj鏈変簨浠惰涓�
-             * Mediator.installTo( obj );
-             *
-             * obj.on( 'testa', function( arg1, arg2 ) {
-             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
-             * });
-             *
-             * obj.trigger( 'testa', 'arg1', 'arg2' );
-             * ```
-             *
-             * 濡傛灉`callback`涓紝鏌愪竴涓柟娉昤return false`浜嗭紝鍒欏悗缁殑鍏朵粬`callback`閮戒笉浼氳鎵ц鍒般��
-             * 鍒囦細褰卞搷鍒癭trigger`鏂规硶鐨勮繑鍥炲�硷紝涓篳false`銆�
-             *
-             * `on`杩樺彲浠ョ敤鏉ユ坊鍔犱竴涓壒娈婁簨浠禶all`, 杩欐牱鎵�鏈夌殑浜嬩欢瑙﹀彂閮戒細鍝嶅簲鍒般�傚悓鏃舵绫籤callback`涓殑arguments鏈変竴涓笉鍚屽锛�
-             * 灏辨槸绗竴涓弬鏁颁负`type`锛岃褰曞綋鍓嶆槸浠�涔堜簨浠跺湪瑙﹀彂銆傛绫籤callback`鐨勪紭鍏堢骇姣旇剼浣庯紝浼氬啀姝e父`callback`鎵ц瀹屽悗瑙﹀彂銆�
-             * ```javascript
-             * obj.on( 'all', function( type, arg1, arg2 ) {
-             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
-             * });
-             * ```
-             *
-             * @method on
-             * @grammar on( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚嶏紝鏀寔澶氫釜浜嬩欢鐢ㄧ┖鏍奸殧寮�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             * @class Mediator
-             */
-            on: function( name, callback, context ) {
-                var me = this,
-                    set;
-    
-                if ( !callback ) {
-                    return this;
-                }
-    
-                set = this._events || (this._events = []);
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var handler = { e: name };
-    
-                    handler.cb = callback;
-                    handler.ctx = context;
-                    handler.ctx2 = context || me;
-                    handler.id = set.length;
-    
-                    set.push( handler );
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 缁戝畾浜嬩欢锛屼笖褰揾andler鎵ц瀹屽悗锛岃嚜鍔ㄨВ闄ょ粦瀹氥��
-             * @method once
-             * @grammar once( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            once: function( name, callback, context ) {
-                var me = this;
-    
-                if ( !callback ) {
-                    return me;
-                }
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var once = function() {
-                            me.off( name, once );
-                            return callback.apply( context || me, arguments );
-                        };
-    
-                    once._cb = callback;
-                    me.on( name, once, context );
-                });
-    
-                return me;
-            },
-    
-            /**
-             * 瑙i櫎浜嬩欢缁戝畾
-             * @method off
-             * @grammar off( [name[, callback[, context] ] ] ) => self
-             * @param  {String}   [name]     浜嬩欢鍚�
-             * @param  {Function} [callback] 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            off: function( name, cb, ctx ) {
-                var events = this._events;
-    
-                if ( !events ) {
-                    return this;
-                }
-    
-                if ( !name && !cb && !ctx ) {
-                    this._events = [];
-                    return this;
-                }
-    
-                eachEvent( name, cb, function( name, cb ) {
-                    $.each( findHandlers( events, name, cb, ctx ), function() {
-                        delete events[ this.id ];
-                    });
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 瑙﹀彂浜嬩欢
-             * @method trigger
-             * @grammar trigger( name[, args...] ) => self
-             * @param  {String}   type     浜嬩欢鍚�
-             * @param  {*} [...] 浠绘剰鍙傛暟
-             * @return {Boolean} 濡傛灉handler涓璻eturn false浜嗭紝鍒欒繑鍥瀎alse, 鍚﹀垯杩斿洖true
-             */
-            trigger: function( type ) {
-                var args, events, allEvents;
-    
-                if ( !this._events || !type ) {
-                    return this;
-                }
-    
-                args = slice.call( arguments, 1 );
-                events = findHandlers( this._events, type );
-                allEvents = findHandlers( this._events, 'all' );
-    
-                return triggerHanders( events, args ) &&
-                        triggerHanders( allEvents, arguments );
-            }
-        };
-    
-        /**
-         * 涓粙鑰咃紝瀹冩湰韬槸涓崟渚嬶紝浣嗗彲浠ラ�氳繃[installTo](#WebUploader:Mediator:installTo)鏂规硶锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢琛屼负銆�
-         * 涓昏鐩殑鏄礋璐fā鍧椾笌妯″潡涔嬮棿鐨勫悎浣滐紝闄嶄綆鑰﹀悎搴︺��
-         *
-         * @class Mediator
-         */
-        return $.extend({
-    
-            /**
-             * 鍙互閫氳繃杩欎釜鎺ュ彛锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢鍔熻兘銆�
-             * @method installTo
-             * @param  {Object} obj 闇�瑕佸叿澶囦簨浠惰涓虹殑瀵硅薄銆�
-             * @return {Object} 杩斿洖obj.
-             */
-            installTo: function( obj ) {
-                return $.extend( obj, protos );
-            }
-    
-        }, protos );
-    });
-    /**
-     * @fileOverview Uploader涓婁紶绫�
-     */
-    define('uploader',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$;
-    
-        /**
-         * 涓婁紶鍏ュ彛绫汇��
-         * @class Uploader
-         * @constructor
-         * @grammar new Uploader( opts ) => Uploader
-         * @example
-         * var uploader = WebUploader.Uploader({
-         *     swf: 'path_of_swf/Uploader.swf',
-         *
-         *     // 寮�璧峰垎鐗囦笂浼犮��
-         *     chunked: true
-         * });
-         */
-        function Uploader( opts ) {
-            this.options = $.extend( true, {}, Uploader.options, opts );
-            this._init( this.options );
-        }
-    
-        // default Options
-        // widgets涓湁鐩稿簲鎵╁睍
-        Uploader.options = {};
-        Mediator.installTo( Uploader.prototype );
-    
-        // 鎵归噺娣诲姞绾懡浠ゅ紡鏂规硶銆�
-        $.each({
-            upload: 'start-upload',
-            stop: 'stop-upload',
-            getFile: 'get-file',
-            getFiles: 'get-files',
-            addFile: 'add-file',
-            addFiles: 'add-file',
-            sort: 'sort-files',
-            removeFile: 'remove-file',
-            skipFile: 'skip-file',
-            retry: 'retry',
-            isInProgress: 'is-in-progress',
-            makeThumb: 'make-thumb',
-            getDimension: 'get-dimension',
-            addButton: 'add-btn',
-            getRuntimeType: 'get-runtime-type',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable',
-            reset: 'reset'
-        }, function( fn, command ) {
-            Uploader.prototype[ fn ] = function() {
-                return this.request( command, arguments );
-            };
-        });
-    
-        $.extend( Uploader.prototype, {
-            state: 'pending',
-    
-            _init: function( opts ) {
-                var me = this;
-    
-                me.request( 'init', opts, function() {
-                    me.state = 'ready';
-                    me.trigger('ready');
-                });
-            },
-    
-            /**
-             * 鑾峰彇鎴栬�呰缃甎ploader閰嶇疆椤广��
-             * @method option
-             * @grammar option( key ) => *
-             * @grammar option( key, val ) => self
-             * @example
-             *
-             * // 鍒濆鐘舵�佸浘鐗囦笂浼犲墠涓嶄細鍘嬬缉
-             * var uploader = new WebUploader.Uploader({
-             *     resize: null;
-             * });
-             *
-             * // 淇敼鍚庡浘鐗囦笂浼犲墠锛屽皾璇曞皢鍥剧墖鍘嬬缉鍒�1600 * 1600
-             * uploader.options( 'resize', {
-             *     width: 1600,
-             *     height: 1600
-             * });
-             */
-            option: function( key, val ) {
-                var opts = this.options;
-    
-                // setter
-                if ( arguments.length > 1 ) {
-    
-                    if ( $.isPlainObject( val ) &&
-                            $.isPlainObject( opts[ key ] ) ) {
-                        $.extend( opts[ key ], val );
-                    } else {
-                        opts[ key ] = val;
-                    }
-    
-                } else {    // getter
-                    return key ? opts[ key ] : opts;
-                }
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢缁熻淇℃伅銆傝繑鍥炰竴涓寘鍚竴涓嬩俊鎭殑瀵硅薄銆�
-             * * `successNum` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `uploadFailNum` 涓婁紶澶辫触鐨勬枃浠舵暟
-             * * `cancelNum` 琚垹闄ょ殑鏂囦欢鏁�
-             * * `invalidNum` 鏃犳晥鐨勬枃浠舵暟
-             * * `queueNum` 杩樺湪闃熷垪涓殑鏂囦欢鏁�
-             * @method getStats
-             * @grammar getStats() => Object
-             */
-            getStats: function() {
-                // return this._mgr.getStats.apply( this._mgr, arguments );
-                var stats = this.request('get-stats');
-    
-                return {
-                    successNum: stats.numOfSuccess,
-    
-                    // who care?
-                    // queueFailNum: 0,
-                    cancelNum: stats.numOfCancel,
-                    invalidNum: stats.numOfInvalid,
-                    uploadFailNum: stats.numOfUploadFailed,
-                    queueNum: stats.numOfQueue
-                };
-            },
-    
-            // 闇�瑕侀噸鍐欐鏂规硶鏉ユ潵鏀寔opts.onEvent鍜宨nstance.onEvent鐨勫鐞嗗櫒
-            trigger: function( type/*, args...*/ ) {
-                var args = [].slice.call( arguments, 1 ),
-                    opts = this.options,
-                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
-                        type.substring( 1 );
-    
-                if (
-                        // 璋冪敤閫氳繃on鏂规硶娉ㄥ唽鐨刪andler.
-                        Mediator.trigger.apply( this, arguments ) === false ||
-    
-                        // 璋冪敤opts.onEvent
-                        $.isFunction( opts[ name ] ) &&
-                        opts[ name ].apply( this, args ) === false ||
-    
-                        // 璋冪敤this.onEvent
-                        $.isFunction( this[ name ] ) &&
-                        this[ name ].apply( this, args ) === false ||
-    
-                        // 骞挎挱鎵�鏈塽ploader鐨勪簨浠躲��
-                        Mediator.trigger.apply( Mediator,
-                        [ this, type ].concat( args ) ) === false ) {
-    
-                    return false;
-                }
-    
-                return true;
-            },
-    
-            // widgets/widget.js灏嗚ˉ鍏呮鏂规硶鐨勮缁嗘枃妗c��
-            request: Base.noop
-        });
-    
-        /**
-         * 鍒涘缓Uploader瀹炰緥锛岀瓑鍚屼簬new Uploader( opts );
-         * @method create
-         * @class Base
-         * @static
-         * @grammar Base.create( opts ) => Uploader
-         */
-        Base.create = Uploader.create = function( opts ) {
-            return new Uploader( opts );
-        };
-    
-        // 鏆撮湶Uploader锛屽彲浠ラ�氳繃瀹冩潵鎵╁睍涓氬姟閫昏緫銆�
-        Base.Uploader = Uploader;
-    
-        return Uploader;
-    });
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/runtime',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            factories = {},
-    
-            // 鑾峰彇瀵硅薄鐨勭涓�涓猭ey
-            getFirstKey = function( obj ) {
-                for ( var key in obj ) {
-                    if ( obj.hasOwnProperty( key ) ) {
-                        return key;
-                    }
-                }
-                return null;
-            };
-    
-        // 鎺ュ彛绫汇��
-        function Runtime( options ) {
-            this.options = $.extend({
-                container: document.body
-            }, options );
-            this.uid = Base.guid('rt_');
-        }
-    
-        $.extend( Runtime.prototype, {
-    
-            getContainer: function() {
-                var opts = this.options,
-                    parent, container;
-    
-                if ( this._container ) {
-                    return this._container;
-                }
-    
-                parent = $( opts.container || document.body );
-                container = $( document.createElement('div') );
-    
-                container.attr( 'id', 'rt_' + this.uid );
-                container.css({
-                    position: 'absolute',
-                    top: '0px',
-                    left: '0px',
-                    width: '1px',
-                    height: '1px',
-                    overflow: 'hidden'
-                });
-    
-                parent.append( container );
-                parent.addClass('webuploader-container');
-                this._container = container;
-                return container;
-            },
-    
-            init: Base.noop,
-            exec: Base.noop,
-    
-            destroy: function() {
-                if ( this._container ) {
-                    this._container.parentNode.removeChild( this.__container );
-                }
-    
-                this.off();
-            }
-        });
-    
-        Runtime.orders = 'html5,flash';
-    
-    
-        /**
-         * 娣诲姞Runtime瀹炵幇銆�
-         * @param {String} type    绫诲瀷
-         * @param {Runtime} factory 鍏蜂綋Runtime瀹炵幇銆�
-         */
-        Runtime.addRuntime = function( type, factory ) {
-            factories[ type ] = factory;
-        };
-    
-        Runtime.hasRuntime = function( type ) {
-            return !!(type ? factories[ type ] : getFirstKey( factories ));
-        };
-    
-        Runtime.create = function( opts, orders ) {
-            var type, runtime;
-    
-            orders = orders || Runtime.orders;
-            $.each( orders.split( /\s*,\s*/g ), function() {
-                if ( factories[ this ] ) {
-                    type = this;
-                    return false;
-                }
-            });
-    
-            type = type || getFirstKey( factories );
-    
-            if ( !type ) {
-                throw new Error('Runtime Error');
-            }
-    
-            runtime = new factories[ type ]( opts );
-            return runtime;
-        };
-    
-        Mediator.installTo( Runtime.prototype );
-        return Runtime;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/client',[
-        'base',
-        'mediator',
-        'runtime/runtime'
-    ], function( Base, Mediator, Runtime ) {
-    
-        var cache;
-    
-        cache = (function() {
-            var obj = {};
-    
-            return {
-                add: function( runtime ) {
-                    obj[ runtime.uid ] = runtime;
-                },
-    
-                get: function( ruid, standalone ) {
-                    var i;
-    
-                    if ( ruid ) {
-                        return obj[ ruid ];
-                    }
-    
-                    for ( i in obj ) {
-                        // 鏈変簺绫诲瀷涓嶈兘閲嶇敤锛屾瘮濡俧ilepicker.
-                        if ( standalone && obj[ i ].__standalone ) {
-                            continue;
-                        }
-    
-                        return obj[ i ];
-                    }
-    
-                    return null;
-                },
-    
-                remove: function( runtime ) {
-                    delete obj[ runtime.uid ];
-                }
-            };
-        })();
-    
-        function RuntimeClient( component, standalone ) {
-            var deferred = Base.Deferred(),
-                runtime;
-    
-            this.uid = Base.guid('client_');
-    
-            // 鍏佽runtime娌℃湁鍒濆鍖栦箣鍓嶏紝娉ㄥ唽涓�浜涙柟娉曞湪鍒濆鍖栧悗鎵ц銆�
-            this.runtimeReady = function( cb ) {
-                return deferred.done( cb );
-            };
-    
-            this.connectRuntime = function( opts, cb ) {
-    
-                // already connected.
-                if ( runtime ) {
-                    throw new Error('already connected!');
-                }
-    
-                deferred.done( cb );
-    
-                if ( typeof opts === 'string' && cache.get( opts ) ) {
-                    runtime = cache.get( opts );
-                }
-    
-                // 鍍廸ilePicker鍙兘鐙珛瀛樺湪锛屼笉鑳藉叕鐢ㄣ��
-                runtime = runtime || cache.get( null, standalone );
-    
-                // 闇�瑕佸垱寤�
-                if ( !runtime ) {
-                    runtime = Runtime.create( opts, opts.runtimeOrder );
-                    runtime.__promise = deferred.promise();
-                    runtime.once( 'ready', deferred.resolve );
-                    runtime.init();
-                    cache.add( runtime );
-                    runtime.__client = 1;
-                } else {
-                    // 鏉ヨ嚜cache
-                    Base.$.extend( runtime.options, opts );
-                    runtime.__promise.then( deferred.resolve );
-                    runtime.__client++;
-                }
-    
-                standalone && (runtime.__standalone = standalone);
-                return runtime;
-            };
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.disconnectRuntime = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                runtime.__client--;
-    
-                if ( runtime.__client <= 0 ) {
-                    cache.remove( runtime );
-                    delete runtime.__promise;
-                    runtime.destroy();
-                }
-    
-                runtime = null;
-            };
-    
-            this.exec = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                var args = Base.slice( arguments );
-                component && args.unshift( component );
-    
-                return runtime.exec.apply( this, args );
-            };
-    
-            this.getRuid = function() {
-                return runtime && runtime.uid;
-            };
-    
-            this.destroy = (function( destroy ) {
-                return function() {
-                    destroy && destroy.apply( this, arguments );
-                    this.trigger('destroy');
-                    this.off();
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                };
-            })( this.destroy );
-        }
-    
-        Mediator.installTo( RuntimeClient.prototype );
-        return RuntimeClient;
-    });
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/dnd',[
-        'base',
-        'mediator',
-        'runtime/client'
-    ], function( Base, Mediator, RuntimeClent ) {
-    
-        var $ = Base.$;
-    
-        function DragAndDrop( opts ) {
-            opts = this.options = $.extend({}, DragAndDrop.options, opts );
-    
-            opts.container = $( opts.container );
-    
-            if ( !opts.container.length ) {
-                return;
-            }
-    
-            RuntimeClent.call( this, 'DragAndDrop' );
-        }
-    
-        DragAndDrop.options = {
-            accept: null,
-            disableGlobalDnd: false
-        };
-    
-        Base.inherits( RuntimeClent, {
-            constructor: DragAndDrop,
-    
-            init: function() {
-                var me = this;
-    
-                me.connectRuntime( me.options, function() {
-                    me.exec('init');
-                    me.trigger('ready');
-                });
-            },
-    
-            destroy: function() {
-                this.disconnectRuntime();
-            }
-        });
-    
-        Mediator.installTo( DragAndDrop.prototype );
-    
-        return DragAndDrop;
-    });
-    /**
-     * @fileOverview 缁勪欢鍩虹被銆�
-     */
-    define('widgets/widget',[
-        'base',
-        'uploader'
-    ], function( Base, Uploader ) {
-    
-        var $ = Base.$,
-            _init = Uploader.prototype._init,
-            IGNORE = {},
-            widgetClass = [];
-    
-        function isArrayLike( obj ) {
-            if ( !obj ) {
-                return false;
-            }
-    
-            var length = obj.length,
-                type = $.type( obj );
-    
-            if ( obj.nodeType === 1 && length ) {
-                return true;
-            }
-    
-            return type === 'array' || type !== 'function' && type !== 'string' &&
-                    (length === 0 || typeof length === 'number' && length > 0 &&
-                    (length - 1) in obj);
-        }
-    
-        function Widget( uploader ) {
-            this.owner = uploader;
-            this.options = uploader.options;
-        }
-    
-        $.extend( Widget.prototype, {
-    
-            init: Base.noop,
-    
-            // 绫籅ackbone鐨勪簨浠剁洃鍚0鏄庯紝鐩戝惉uploader瀹炰緥涓婄殑浜嬩欢
-            // widget鐩存帴鏃犳硶鐩戝惉浜嬩欢锛屼簨浠跺彧鑳介�氳繃uploader鏉ヤ紶閫�
-            invoke: function( apiName, args ) {
-    
-                /*
-                    {
-                        'make-thumb': 'makeThumb'
-                    }
-                 */
-                var map = this.responseMap;
-    
-                // 濡傛灉鏃燗PI鍝嶅簲澹版槑鍒欏拷鐣�
-                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
-                        !$.isFunction( this[ map[ apiName ] ] ) ) {
-    
-                    return IGNORE;
-                }
-    
-                return this[ map[ apiName ] ].apply( this, args );
-    
-            },
-    
-            /**
-             * 鍙戦�佸懡浠ゃ�傚綋浼犲叆`callback`鎴栬�卄handler`涓繑鍥瀈promise`鏃躲�傝繑鍥炰竴涓綋鎵�鏈塦handler`涓殑promise閮藉畬鎴愬悗瀹屾垚鐨勬柊`promise`銆�
-             * @method request
-             * @grammar request( command, args ) => * | Promise
-             * @grammar request( command, args, callback ) => Promise
-             * @for  Uploader
-             */
-            request: function() {
-                return this.owner.request.apply( this.owner, arguments );
-            }
-        });
-    
-        // 鎵╁睍Uploader.
-        $.extend( Uploader.prototype, {
-    
-            // 瑕嗗啓_init鐢ㄦ潵鍒濆鍖杦idgets
-            _init: function() {
-                var me = this,
-                    widgets = me._widgets = [];
-    
-                $.each( widgetClass, function( _, klass ) {
-                    widgets.push( new klass( me ) );
-                });
-    
-                return _init.apply( me, arguments );
-            },
-    
-            request: function( apiName, args, callback ) {
-                var i = 0,
-                    widgets = this._widgets,
-                    len = widgets.length,
-                    rlts = [],
-                    dfds = [],
-                    widget, rlt, promise, key;
-    
-                args = isArrayLike( args ) ? args : [ args ];
-    
-                for ( ; i < len; i++ ) {
-                    widget = widgets[ i ];
-                    rlt = widget.invoke( apiName, args );
-    
-                    if ( rlt !== IGNORE ) {
-    
-                        // Deferred瀵硅薄
-                        if ( Base.isPromise( rlt ) ) {
-                            dfds.push( rlt );
-                        } else {
-                            rlts.push( rlt );
-                        }
-                    }
-                }
-    
-                // 濡傛灉鏈塩allback锛屽垯鐢ㄥ紓姝ユ柟寮忋��
-                if ( callback || dfds.length ) {
-                    promise = Base.when.apply( Base, dfds );
-                    key = promise.pipe ? 'pipe' : 'then';
-    
-                    // 寰堥噸瑕佷笉鑳藉垹闄ゃ�傚垹闄や簡浼氭寰幆銆�
-                    // 淇濊瘉鎵ц椤哄簭銆傝callback鎬绘槸鍦ㄤ笅涓�涓猼ick涓墽琛屻��
-                    return promise[ key ](function() {
-                                var deferred = Base.Deferred(),
-                                    args = arguments;
-    
-                                setTimeout(function() {
-                                    deferred.resolve.apply( deferred, args );
-                                }, 1 );
-    
-                                return deferred.promise();
-                            })[ key ]( callback || Base.noop );
-                } else {
-                    return rlts[ 0 ];
-                }
-            }
-        });
-    
-        /**
-         * 娣诲姞缁勪欢
-         * @param  {object} widgetProto 缁勪欢鍘熷瀷锛屾瀯閫犲嚱鏁伴�氳繃constructor灞炴�у畾涔�
-         * @param  {object} responseMap API鍚嶇О涓庡嚱鏁板疄鐜扮殑鏄犲皠
-         * @example
-         *     Uploader.register( {
-         *         init: function( options ) {},
-         *         makeThumb: function() {}
-         *     }, {
-         *         'make-thumb': 'makeThumb'
-         *     } );
-         */
-        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
-            var map = { init: 'init' },
-                klass;
-    
-            if ( arguments.length === 1 ) {
-                widgetProto = responseMap;
-                widgetProto.responseMap = map;
-            } else {
-                widgetProto.responseMap = $.extend( map, responseMap );
-            }
-    
-            klass = Base.inherits( Widget, widgetProto );
-            widgetClass.push( klass );
-    
-            return klass;
-        };
-    
-        return Widget;
-    });
-    /**
-     * @fileOverview DragAndDrop Widget銆�
-     */
-    define('widgets/filednd',[
-        'base',
-        'uploader',
-        'lib/dnd',
-        'widgets/widget'
-    ], function( Base, Uploader, Dnd ) {
-        var $ = Base.$;
-    
-        Uploader.options.dnd = '';
-    
-        /**
-         * @property {Selector} [dnd=undefined]  鎸囧畾Drag And Drop鎷栨嫿鐨勫鍣紝濡傛灉涓嶆寚瀹氾紝鍒欎笉鍚姩銆�
-         * @namespace options
-         * @for Uploader
-         */
-    
-        /**
-         * @event dndAccept
-         * @param {DataTransferItemList} items DataTransferItem
-         * @description 闃绘姝や簨浠跺彲浠ユ嫆缁濇煇浜涚被鍨嬬殑鏂囦欢鎷栧叆杩涙潵銆傜洰鍓嶅彧鏈� chrome 鎻愪緵杩欐牱鐨� API锛屼笖鍙兘閫氳繃 mime-type 楠岃瘉銆�
-         * @for  Uploader
-         */
-        return Uploader.register({
-            init: function( opts ) {
-    
-                if ( !opts.dnd ||
-                        this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                var me = this,
-                    deferred = Base.Deferred(),
-                    options = $.extend({}, {
-                        disableGlobalDnd: opts.disableGlobalDnd,
-                        container: opts.dnd,
-                        accept: opts.accept
-                    }),
-                    dnd;
-    
-                dnd = new Dnd( options );
-    
-                dnd.once( 'ready', deferred.resolve );
-                dnd.on( 'drop', function( files ) {
-                    me.request( 'add-file', [ files ]);
-                });
-    
-                // 妫�娴嬫枃浠舵槸鍚﹀叏閮ㄥ厑璁告坊鍔犮��
-                dnd.on( 'accept', function( items ) {
-                    return me.owner.trigger( 'dndAccept', items );
-                });
-    
-                dnd.init();
-    
-                return deferred.promise();
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/filepaste',[
-        'base',
-        'mediator',
-        'runtime/client'
-    ], function( Base, Mediator, RuntimeClent ) {
-    
-        var $ = Base.$;
-    
-        function FilePaste( opts ) {
-            opts = this.options = $.extend({}, opts );
-            opts.container = $( opts.container || document.body );
-            RuntimeClent.call( this, 'FilePaste' );
-        }
-    
-        Base.inherits( RuntimeClent, {
-            constructor: FilePaste,
-    
-            init: function() {
-                var me = this;
-    
-                me.connectRuntime( me.options, function() {
-                    me.exec('init');
-                    me.trigger('ready');
-                });
-            },
-    
-            destroy: function() {
-                this.exec('destroy');
-                this.disconnectRuntime();
-                this.off();
-            }
-        });
-    
-        Mediator.installTo( FilePaste.prototype );
-    
-        return FilePaste;
-    });
-    /**
-     * @fileOverview 缁勪欢鍩虹被銆�
-     */
-    define('widgets/filepaste',[
-        'base',
-        'uploader',
-        'lib/filepaste',
-        'widgets/widget'
-    ], function( Base, Uploader, FilePaste ) {
-        var $ = Base.$;
-    
-        /**
-         * @property {Selector} [paste=undefined]  鎸囧畾鐩戝惉paste浜嬩欢鐨勫鍣紝濡傛灉涓嶆寚瀹氾紝涓嶅惎鐢ㄦ鍔熻兘銆傛鍔熻兘涓洪�氳繃绮樿创鏉ユ坊鍔犳埅灞忕殑鍥剧墖銆傚缓璁缃负`document.body`.
-         * @namespace options
-         * @for Uploader
-         */
-        return Uploader.register({
-            init: function( opts ) {
-    
-                if ( !opts.paste ||
-                        this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                var me = this,
-                    deferred = Base.Deferred(),
-                    options = $.extend({}, {
-                        container: opts.paste,
-                        accept: opts.accept
-                    }),
-                    paste;
-    
-                paste = new FilePaste( options );
-    
-                paste.once( 'ready', deferred.resolve );
-                paste.on( 'paste', function( files ) {
-                    me.owner.request( 'add-file', [ files ]);
-                });
-                paste.init();
-    
-                return deferred.promise();
-            }
-        });
-    });
-    /**
-     * @fileOverview Blob
-     */
-    define('lib/blob',[
-        'base',
-        'runtime/client'
-    ], function( Base, RuntimeClient ) {
-    
-        function Blob( ruid, source ) {
-            var me = this;
-    
-            me.source = source;
-            me.ruid = ruid;
-    
-            RuntimeClient.call( me, 'Blob' );
-    
-            this.uid = source.uid || this.uid;
-            this.type = source.type || '';
-            this.size = source.size || 0;
-    
-            if ( ruid ) {
-                me.connectRuntime( ruid );
-            }
-        }
-    
-        Base.inherits( RuntimeClient, {
-            constructor: Blob,
-    
-            slice: function( start, end ) {
-                return this.exec( 'slice', start, end );
-            },
-    
-            getSource: function() {
-                return this.source;
-            }
-        });
-    
-        return Blob;
-    });
-    /**
-     * 涓轰簡缁熶竴鍖朏lash鐨凢ile鍜孒TML5鐨凢ile鑰屽瓨鍦ㄣ��
-     * 浠ヨ嚦浜庤璋冪敤Flash閲岄潰鐨凢ile锛屼篃鍙互鍍忚皟鐢℉TML5鐗堟湰鐨凢ile涓�涓嬨��
-     * @fileOverview File
-     */
-    define('lib/file',[
-        'base',
-        'lib/blob'
-    ], function( Base, Blob ) {
-    
-        var uid = 1,
-            rExt = /\.([^.]+)$/;
-    
-        function File( ruid, file ) {
-            var ext;
-    
-            Blob.apply( this, arguments );
-            this.name = file.name || ('untitled' + uid++);
-            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
-    
-            // todo 鏀寔鍏朵粬绫诲瀷鏂囦欢鐨勮浆鎹€��
-    
-            // 濡傛灉鏈塵imetype, 浣嗘槸鏂囦欢鍚嶉噷闈㈡病鏈夋壘鍑哄悗缂�瑙勫緥
-            if ( !ext && this.type ) {
-                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( this.type ) ?
-                        RegExp.$1.toLowerCase() : '';
-                this.name += '.' + ext;
-            }
-    
-            // 濡傛灉娌℃湁鎸囧畾mimetype, 浣嗘槸鐭ラ亾鏂囦欢鍚庣紑銆�
-            if ( !this.type &&  ~'jpg,jpeg,png,gif,bmp'.indexOf( ext ) ) {
-                this.type = 'image/' + (ext === 'jpg' ? 'jpeg' : ext);
-            }
-    
-            this.ext = ext;
-            this.lastModifiedDate = file.lastModifiedDate ||
-                    (new Date()).toLocaleString();
-        }
-    
-        return Base.inherits( Blob, File );
-    });
-    
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/filepicker',[
-        'base',
-        'runtime/client',
-        'lib/file'
-    ], function( Base, RuntimeClent, File ) {
-    
-        var $ = Base.$;
-    
-        function FilePicker( opts ) {
-            opts = this.options = $.extend({}, FilePicker.options, opts );
-    
-            opts.container = $( opts.id );
-    
-            if ( !opts.container.length ) {
-                throw new Error('鎸夐挳鎸囧畾閿欒');
-            }
-    
-            opts.innerHTML = opts.innerHTML || opts.label ||
-                    opts.container.html() || '';
-    
-            opts.button = $( opts.button || document.createElement('div') );
-            opts.button.html( opts.innerHTML );
-            opts.container.html( opts.button );
-    
-            RuntimeClent.call( this, 'FilePicker', true );
-        }
-    
-        FilePicker.options = {
-            button: null,
-            container: null,
-            label: null,
-            innerHTML: null,
-            multiple: true,
-            accept: null,
-            name: 'file'
-        };
-    
-        Base.inherits( RuntimeClent, {
-            constructor: FilePicker,
-    
-            init: function() {
-                var me = this,
-                    opts = me.options,
-                    button = opts.button;
-    
-                button.addClass('webuploader-pick');
-    
-                me.on( 'all', function( type ) {
-                    var files;
-    
-                    switch ( type ) {
-                        case 'mouseenter':
-                            button.addClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'mouseleave':
-                            button.removeClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'change':
-                            files = me.exec('getFiles');
-                            me.trigger( 'select', $.map( files, function( file ) {
-                                file = new File( me.getRuid(), file );
-    
-                                // 璁板綍鏉ユ簮銆�
-                                file._refer = opts.container;
-                                return file;
-                            }), opts.container );
-                            break;
-                    }
-                });
-    
-                me.connectRuntime( opts, function() {
-                    me.refresh();
-                    me.exec( 'init', opts );
-                    me.trigger('ready');
-                });
-    
-                $( window ).on( 'resize', function() {
-                    me.refresh();
-                });
-            },
-    
-            refresh: function() {
-                var shimContainer = this.getRuntime().getContainer(),
-                    button = this.options.button,
-                    width = button.outerWidth ?
-                            button.outerWidth() : button.width(),
-    
-                    height = button.outerHeight ?
-                            button.outerHeight() : button.height(),
-    
-                    pos = button.offset();
-    
-                width && height && shimContainer.css({
-                    bottom: 'auto',
-                    right: 'auto',
-                    width: width + 'px',
-                    height: height + 'px'
-                }).offset( pos );
-            },
-    
-            enable: function() {
-                var btn = this.options.button;
-    
-                btn.removeClass('webuploader-pick-disable');
-                this.refresh();
-            },
-    
-            disable: function() {
-                var btn = this.options.button;
-    
-                this.getRuntime().getContainer().css({
-                    top: '-99999px'
-                });
-    
-                btn.addClass('webuploader-pick-disable');
-            },
-    
-            destroy: function() {
-                if ( this.runtime ) {
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                }
-            }
-        });
-    
-        return FilePicker;
-    });
-    
-    /**
-     * @fileOverview 鏂囦欢閫夋嫨鐩稿叧
-     */
-    define('widgets/filepicker',[
-        'base',
-        'uploader',
-        'lib/filepicker',
-        'widgets/widget'
-    ], function( Base, Uploader, FilePicker ) {
-        var $ = Base.$;
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Selector | Object} [pick=undefined]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             *
-             * * `id` {Seletor} 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             * * `label` {String} 璇烽噰鐢� `innerHTML` 浠f浛
-             * * `innerHTML` {String} 鎸囧畾鎸夐挳鏂囧瓧銆備笉鎸囧畾鏃朵紭鍏堜粠鎸囧畾鐨勫鍣ㄤ腑鐪嬫槸鍚﹁嚜甯︽枃瀛椼��
-             * * `multiple` {Boolean} 鏄惁寮�璧峰悓鏃堕�夋嫨澶氫釜鏂囦欢鑳藉姏銆�
-             */
-            pick: null,
-    
-            /**
-             * @property {Arroy} [accept=null]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾鎺ュ彈鍝簺绫诲瀷鐨勬枃浠躲�� 鐢变簬鐩墠杩樻湁ext杞琺imeType琛紝鎵�浠ヨ繖閲岄渶瑕佸垎寮�鎸囧畾銆�
-             *
-             * * `title` {String} 鏂囧瓧鎻忚堪
-             * * `extensions` {String} 鍏佽鐨勬枃浠跺悗缂�锛屼笉甯︾偣锛屽涓敤閫楀彿鍒嗗壊銆�
-             * * `mimeTypes` {String} 澶氫釜鐢ㄩ�楀彿鍒嗗壊銆�
-             *
-             * 濡傦細
-             *
-             * ```
-             * {
-             *     title: 'Images',
-             *     extensions: 'gif,jpg,jpeg,bmp,png',
-             *     mimeTypes: 'image/*'
-             * }
-             * ```
-             */
-            accept: null/*{
-                title: 'Images',
-                extensions: 'gif,jpg,jpeg,bmp,png',
-                mimeTypes: 'image/*'
-            }*/
-        });
-    
-        return Uploader.register({
-            'add-btn': 'addButton',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable'
-        }, {
-    
-            init: function( opts ) {
-                this.pickers = [];
-                return opts.pick && this.addButton( opts.pick );
-            },
-    
-            refresh: function() {
-                $.each( this.pickers, function() {
-                    this.refresh();
-                });
-            },
-    
-            /**
-             * @method addButton
-             * @for Uploader
-             * @grammar addButton( pick ) => Promise
-             * @description
-             * 娣诲姞鏂囦欢閫夋嫨鎸夐挳锛屽鏋滀竴涓寜閽笉澶燂紝闇�瑕佽皟鐢ㄦ鏂规硶鏉ユ坊鍔犮�傚弬鏁拌窡[options.pick](#WebUploader:Uploader:options)涓�鑷淬��
-             * @example
-             * uploader.addButton({
-             *     id: '#btnContainer',
-             *     innerHTML: '閫夋嫨鏂囦欢'
-             * });
-             */
-            addButton: function( pick ) {
-                var me = this,
-                    opts = me.options,
-                    accept = opts.accept,
-                    options, picker, deferred;
-    
-                if ( !pick ) {
-                    return;
-                }
-    
-                deferred = Base.Deferred();
-                $.isPlainObject( pick ) || (pick = {
-                    id: pick
-                });
-    
-                options = $.extend({}, pick, {
-                    accept: $.isPlainObject( accept ) ? [ accept ] : accept,
-                    swf: opts.swf,
-                    runtimeOrder: opts.runtimeOrder
-                });
-    
-                picker = new FilePicker( options );
-    
-                picker.once( 'ready', deferred.resolve );
-                picker.on( 'select', function( files ) {
-                    me.owner.request( 'add-file', [ files ]);
-                });
-                picker.init();
-    
-                this.pickers.push( picker );
-    
-                return deferred.promise();
-            },
-    
-            disable: function() {
-                $.each( this.pickers, function() {
-                    this.disable();
-                });
-            },
-    
-            enable: function() {
-                $.each( this.pickers, function() {
-                    this.enable();
-                });
-            }
-        });
-    });
-    /**
-     * @fileOverview Image
-     */
-    define('lib/image',[
-        'base',
-        'runtime/client',
-        'lib/blob'
-    ], function( Base, RuntimeClient, Blob ) {
-        var $ = Base.$;
-    
-        // 鏋勯�犲櫒銆�
-        function Image( opts ) {
-            this.options = $.extend({}, Image.options, opts );
-            RuntimeClient.call( this, 'Image' );
-    
-            this.on( 'load', function() {
-                this._info = this.exec('info');
-                this._meta = this.exec('meta');
-            });
-        }
-    
-        // 榛樿閫夐」銆�
-        Image.options = {
-    
-            // 榛樿鐨勫浘鐗囧鐞嗚川閲�
-            quality: 90,
-    
-            // 鏄惁瑁佸壀
-            crop: false,
-    
-            // 鏄惁淇濈暀澶撮儴淇℃伅
-            preserveHeaders: true,
-    
-            // 鏄惁鍏佽鏀惧ぇ銆�
-            allowMagnify: true
-        };
-    
-        // 缁ф壙RuntimeClient.
-        Base.inherits( RuntimeClient, {
-            constructor: Image,
-    
-            info: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._info = val;
-                    return this;
-                }
-    
-                // getter
-                return this._info;
-            },
-    
-            meta: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._meta = val;
-                    return this;
-                }
-    
-                // getter
-                return this._meta;
-            },
-    
-            loadFromBlob: function( blob ) {
-                var me = this,
-                    ruid = blob.getRuid();
-    
-                this.connectRuntime( ruid, function() {
-                    me.exec( 'init', me.options );
-                    me.exec( 'loadFromBlob', blob );
-                });
-            },
-    
-            resize: function() {
-                var args = Base.slice( arguments );
-                return this.exec.apply( this, [ 'resize' ].concat( args ) );
-            },
-    
-            getAsDataUrl: function( type ) {
-                return this.exec( 'getAsDataUrl', type );
-            },
-    
-            getAsBlob: function( type ) {
-                var blob = this.exec( 'getAsBlob', type );
-    
-                return new Blob( this.getRuid(), blob );
-            }
-        });
-    
-        return Image;
-    });
-    /**
-     * @fileOverview 鍥剧墖鎿嶄綔, 璐熻矗棰勮鍥剧墖鍜屼笂浼犲墠鍘嬬缉鍥剧墖
-     */
-    define('widgets/image',[
-        'base',
-        'uploader',
-        'lib/image',
-        'widgets/widget'
-    ], function( Base, Uploader, Image ) {
-    
-        var $ = Base.$,
-            throttle;
-    
-        // 鏍规嵁瑕佸鐞嗙殑鏂囦欢澶у皬鏉ヨ妭娴侊紝涓�娆′笉鑳藉鐞嗗お澶氾紝浼氬崱銆�
-        throttle = (function( max ) {
-            var occupied = 0,
-                waiting = [],
-                tick = function() {
-                    var item;
-    
-                    while ( waiting.length && occupied < max ) {
-                        item = waiting.shift();
-                        occupied += item[ 0 ];
-                        item[ 1 ]();
-                    }
-                };
-    
-            return function( emiter, size, cb ) {
-                waiting.push([ size, cb ]);
-                emiter.once( 'destroy', function() {
-                    occupied -= size;
-                    setTimeout( tick, 1 );
-                });
-                setTimeout( tick, 1 );
-            };
-        })( 5 * 1024 * 1024 );
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Object} [thumb]
-             * @namespace options
-             * @for Uploader
-             * @description 閰嶇疆鐢熸垚缂╃暐鍥剧殑閫夐」銆�
-             *
-             * 榛樿涓猴細
-             *
-             * ```javascript
-             * {
-             *     width: 110,
-             *     height: 110,
-             *
-             *     // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-             *     quality: 70,
-             *
-             *     // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-             *     allowMagnify: true,
-             *
-             *     // 鏄惁鍏佽瑁佸壀銆�
-             *     crop: true,
-             *
-             *     // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-             *     preserveHeaders: false,
-             *
-             *     // 涓虹┖鐨勮瘽鍒欎繚鐣欏師鏈夊浘鐗囨牸寮忋��
-             *     // 鍚﹀垯寮哄埗杞崲鎴愭寚瀹氱殑绫诲瀷銆�
-             *     type: 'image/jpeg'
-             * }
-             * ```
-             */
-            thumb: {
-                width: 110,
-                height: 110,
-                quality: 70,
-                allowMagnify: true,
-                crop: true,
-                preserveHeaders: false,
-    
-                // 涓虹┖鐨勮瘽鍒欎繚鐣欏師鏈夊浘鐗囨牸寮忋��
-                // 鍚﹀垯寮哄埗杞崲鎴愭寚瀹氱殑绫诲瀷銆�
-                // IE 8涓嬮潰 base64 澶у皬涓嶈兘瓒呰繃 32K 鍚﹀垯棰勮澶辫触锛岃�岄潪 jpeg 缂栫爜鐨勫浘鐗囧緢鍙�
-                // 鑳戒細瓒呰繃 32k, 鎵�浠ヨ繖閲岃缃垚棰勮鐨勬椂鍊欓兘鏄� image/jpeg
-                type: 'image/jpeg'
-            },
-    
-            /**
-             * @property {Object} [compress]
-             * @namespace options
-             * @for Uploader
-             * @description 閰嶇疆鍘嬬缉鐨勫浘鐗囩殑閫夐」銆傚鏋滄閫夐」涓篳false`, 鍒欏浘鐗囧湪涓婁紶鍓嶄笉杩涜鍘嬬缉銆�
-             *
-             * 榛樿涓猴細
-             *
-             * ```javascript
-             * {
-             *     width: 1600,
-             *     height: 1600,
-             *
-             *     // 鍥剧墖璐ㄩ噺锛屽彧鏈塼ype涓篳image/jpeg`鐨勬椂鍊欐墠鏈夋晥銆�
-             *     quality: 90,
-             *
-             *     // 鏄惁鍏佽鏀惧ぇ锛屽鏋滄兂瑕佺敓鎴愬皬鍥剧殑鏃跺�欎笉澶辩湡锛屾閫夐」搴旇璁剧疆涓篺alse.
-             *     allowMagnify: false,
-             *
-             *     // 鏄惁鍏佽瑁佸壀銆�
-             *     crop: false,
-             *
-             *     // 鏄惁淇濈暀澶撮儴meta淇℃伅銆�
-             *     preserveHeaders: true
-             * }
-             * ```
-             */
-            compress: {
-                width: 1600,
-                height: 1600,
-                quality: 90,
-                allowMagnify: false,
-                crop: false,
-                preserveHeaders: true
-            }
-        });
-    
-        return Uploader.register({
-            'make-thumb': 'makeThumb',
-            'before-send-file': 'compressImage'
-        }, {
-    
-    
-            /**
-             * 鐢熸垚缂╃暐鍥撅紝姝よ繃绋嬩负寮傛锛屾墍浠ラ渶瑕佷紶鍏callback`銆�
-             * 閫氬父鎯呭喌鍦ㄥ浘鐗囧姞鍏ラ槦閲屽悗璋冪敤姝ゆ柟娉曟潵鐢熸垚棰勮鍥句互澧炲己浜や簰鏁堟灉銆�
-             *
-             * `callback`涓彲浠ユ帴鏀跺埌涓や釜鍙傛暟銆�
-             * * 绗竴涓负error锛屽鏋滅敓鎴愮缉鐣ュ浘鏈夐敊璇紝姝rror灏嗕负鐪熴��
-             * * 绗簩涓负ret, 缂╃暐鍥剧殑Data URL鍊笺��
-             *
-             * **娉ㄦ剰**
-             * Date URL鍦↖E6/7涓笉鏀寔锛屾墍浠ヤ笉鐢ㄨ皟鐢ㄦ鏂规硶浜嗭紝鐩存帴鏄剧ず涓�寮犳殏涓嶆敮鎸侀瑙堝浘鐗囧ソ浜嗐��
-             *
-             *
-             * @method makeThumb
-             * @grammar makeThumb( file, callback ) => undefined
-             * @grammar makeThumb( file, callback, width, height ) => undefined
-             * @for Uploader
-             * @example
-             *
-             * uploader.on( 'fileQueued', function( file ) {
-             *     var $li = ...;
-             *
-             *     uploader.makeThumb( file, function( error, ret ) {
-             *         if ( error ) {
-             *             $li.text('棰勮閿欒');
-             *         } else {
-             *             $li.append('<img alt="" src="' + ret + '" />');
-             *         }
-             *     });
-             *
-             * });
-             */
-            makeThumb: function( file, cb, width, height ) {
-                var opts, image;
-    
-                file = this.request( 'get-file', file );
-    
-                // 鍙瑙堝浘鐗囨牸寮忋��
-                if ( !file.type.match( /^image/ ) ) {
-                    cb( true );
-                    return;
-                }
-    
-                opts = $.extend({}, this.options.thumb );
-    
-                // 濡傛灉浼犲叆鐨勬槸object.
-                if ( $.isPlainObject( width ) ) {
-                    opts = $.extend( opts, width );
-                    width = null;
-                }
-    
-                width = width || opts.width;
-                height = height || opts.height;
-    
-                image = new Image( opts );
-    
-                image.once( 'load', function() {
-                    file._info = file._info || image.info();
-                    file._meta = file._meta || image.meta();
-                    image.resize( width, height );
-                });
-    
-                image.once( 'complete', function() {
-                    cb( false, image.getAsDataUrl( opts.type ) );
-                    image.destroy();
-                });
-    
-                image.once( 'error', function() {
-                    cb( true );
-                    image.destroy();
-                });
-    
-                throttle( image, file.source.size, function() {
-                    file._info && image.info( file._info );
-                    file._meta && image.meta( file._meta );
-                    image.loadFromBlob( file.source );
-                });
-            },
-    
-            compressImage: function( file ) {
-                var opts = this.options.compress || this.options.resize,
-                    compressSize = opts && opts.compressSize || 300 * 1024,
-                    image, deferred;
-    
-                file = this.request( 'get-file', file );
-    
-                // 鍙瑙堝浘鐗囨牸寮忋��
-                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
-                        file.size < compressSize ||
-                        file._compressed ) {
-                    return;
-                }
-    
-                opts = $.extend({}, opts );
-                deferred = Base.Deferred();
-    
-                image = new Image( opts );
-    
-                deferred.always(function() {
-                    image.destroy();
-                    image = null;
-                });
-                image.once( 'error', deferred.reject );
-                image.once( 'load', function() {
-                    file._info = file._info || image.info();
-                    file._meta = file._meta || image.meta();
-                    image.resize( opts.width, opts.height );
-                });
-    
-                image.once( 'complete', function() {
-                    var blob, size;
-    
-                    // 绉诲姩绔� UC / qq 娴忚鍣ㄧ殑鏃犲浘妯″紡涓�
-                    // ctx.getImageData 澶勭悊澶у浘鐨勬椂鍊欎細鎶� Exception
-                    // INDEX_SIZE_ERR: DOM Exception 1
-                    try {
-                        blob = image.getAsBlob( opts.type );
-    
-                        size = file.size;
-    
-                        // 濡傛灉鍘嬬缉鍚庯紝姣斿師鏉ヨ繕澶у垯涓嶇敤鍘嬬缉鍚庣殑銆�
-                        if ( blob.size < size ) {
-                            // file.source.destroy && file.source.destroy();
-                            file.source = blob;
-                            file.size = blob.size;
-    
-                            file.trigger( 'resize', blob.size, size );
-                        }
-    
-                        // 鏍囪锛岄伩鍏嶉噸澶嶅帇缂┿��
-                        file._compressed = true;
-                        deferred.resolve();
-                    } catch ( e ) {
-                        // 鍑洪敊浜嗙洿鎺ョ户缁紝璁╁叾涓婁紶鍘熷鍥剧墖
-                        deferred.resolve();
-                    }
-                });
-    
-                file._info && image.info( file._info );
-                file._meta && image.meta( file._meta );
-    
-                image.loadFromBlob( file.source );
-                return deferred.promise();
-            }
-        });
-    });
-    /**
-     * @fileOverview 鏂囦欢灞炴�у皝瑁�
-     */
-    define('file',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            idPrefix = 'WU_FILE_',
-            idSuffix = 0,
-            rExt = /\.([^.]+)$/,
-            statusMap = {};
-    
-        function gid() {
-            return idPrefix + idSuffix++;
-        }
-    
-        /**
-         * 鏂囦欢绫�
-         * @class File
-         * @constructor 鏋勯�犲嚱鏁�
-         * @grammar new File( source ) => File
-         * @param {Lib.File} source [lib.File](#Lib.File)瀹炰緥, 姝ource瀵硅薄鏄甫鏈塕untime淇℃伅鐨勩��
-         */
-        function WUFile( source ) {
-    
-            /**
-             * 鏂囦欢鍚嶏紝鍖呮嫭鎵╁睍鍚嶏紙鍚庣紑锛�
-             * @property name
-             * @type {string}
-             */
-            this.name = source.name || 'Untitled';
-    
-            /**
-             * 鏂囦欢浣撶Н锛堝瓧鑺傦級
-             * @property size
-             * @type {uint}
-             * @default 0
-             */
-            this.size = source.size || 0;
-    
-            /**
-             * 鏂囦欢MIMETYPE绫诲瀷锛屼笌鏂囦欢绫诲瀷鐨勫搴斿叧绯昏鍙傝�僛http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
-             * @property type
-             * @type {string}
-             * @default 'application'
-             */
-            this.type = source.type || 'application';
-    
-            /**
-             * 鏂囦欢鏈�鍚庝慨鏀规棩鏈�
-             * @property lastModifiedDate
-             * @type {int}
-             * @default 褰撳墠鏃堕棿鎴�
-             */
-            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
-    
-            /**
-             * 鏂囦欢ID锛屾瘡涓璞″叿鏈夊敮涓�ID锛屼笌鏂囦欢鍚嶆棤鍏�
-             * @property id
-             * @type {string}
-             */
-            this.id = gid();
-    
-            /**
-             * 鏂囦欢鎵╁睍鍚嶏紝閫氳繃鏂囦欢鍚嶈幏鍙栵紝渚嬪test.png鐨勬墿灞曞悕涓簆ng
-             * @property ext
-             * @type {string}
-             */
-            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
-    
-    
-            /**
-             * 鐘舵�佹枃瀛楄鏄庛�傚湪涓嶅悓鐨剆tatus璇涓嬫湁涓嶅悓鐨勭敤閫斻��
-             * @property statusText
-             * @type {string}
-             */
-            this.statusText = '';
-    
-            // 瀛樺偍鏂囦欢鐘舵�侊紝闃叉閫氳繃灞炴�х洿鎺ヤ慨鏀�
-            statusMap[ this.id ] = WUFile.Status.INITED;
-    
-            this.source = source;
-            this.loaded = 0;
-    
-            this.on( 'error', function( msg ) {
-                this.setStatus( WUFile.Status.ERROR, msg );
-            });
-        }
-    
-        $.extend( WUFile.prototype, {
-    
-            /**
-             * 璁剧疆鐘舵�侊紝鐘舵�佸彉鍖栨椂浼氳Е鍙慲change`浜嬩欢銆�
-             * @method setStatus
-             * @grammar setStatus( status[, statusText] );
-             * @param {File.Status|String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @param {String} [statusText=''] 鐘舵�佽鏄庯紝甯稿湪error鏃朵娇鐢紝鐢╤ttp, abort,server绛夋潵鏍囪鏄敱浜庝粈涔堝師鍥犲鑷存枃浠堕敊璇��
-             */
-            setStatus: function( status, text ) {
-    
-                var prevStatus = statusMap[ this.id ];
-    
-                typeof text !== 'undefined' && (this.statusText = text);
-    
-                if ( status !== prevStatus ) {
-                    statusMap[ this.id ] = status;
-                    /**
-                     * 鏂囦欢鐘舵�佸彉鍖�
-                     * @event statuschange
-                     */
-                    this.trigger( 'statuschange', status, prevStatus );
-                }
-    
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鐘舵��
-             * @return {File.Status}
-             * @example
-                     鏂囦欢鐘舵�佸叿浣撳寘鎷互涓嬪嚑绉嶇被鍨嬶細
-                     {
-                         // 鍒濆鍖�
-                        INITED:     0,
-                        // 宸插叆闃熷垪
-                        QUEUED:     1,
-                        // 姝e湪涓婁紶
-                        PROGRESS:     2,
-                        // 涓婁紶鍑洪敊
-                        ERROR:         3,
-                        // 涓婁紶鎴愬姛
-                        COMPLETE:     4,
-                        // 涓婁紶鍙栨秷
-                        CANCELLED:     5
-                    }
-             */
-            getStatus: function() {
-                return statusMap[ this.id ];
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鍘熷淇℃伅銆�
-             * @return {*}
-             */
-            getSource: function() {
-                return this.source;
-            },
-    
-            destory: function() {
-                delete statusMap[ this.id ];
-            }
-        });
-    
-        Mediator.installTo( WUFile.prototype );
-    
-        /**
-         * 鏂囦欢鐘舵�佸�硷紝鍏蜂綋鍖呮嫭浠ヤ笅鍑犵绫诲瀷锛�
-         * * `inited` 鍒濆鐘舵��
-         * * `queued` 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-         * * `progress` 涓婁紶涓�
-         * * `complete` 涓婁紶瀹屾垚銆�
-         * * `error` 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-         * * `interrupt` 涓婁紶涓柇锛屽彲缁紶銆�
-         * * `invalid` 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆備細鑷姩浠庨槦鍒椾腑绉婚櫎銆�
-         * * `cancelled` 鏂囦欢琚Щ闄ゃ��
-         * @property {Object} Status
-         * @namespace File
-         * @class File
-         * @static
-         */
-        WUFile.Status = {
-            INITED:     'inited',    // 鍒濆鐘舵��
-            QUEUED:     'queued',    // 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-            PROGRESS:   'progress',    // 涓婁紶涓�
-            ERROR:      'error',    // 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-            COMPLETE:   'complete',    // 涓婁紶瀹屾垚銆�
-            CANCELLED:  'cancelled',    // 涓婁紶鍙栨秷銆�
-            INTERRUPT:  'interrupt',    // 涓婁紶涓柇锛屽彲缁紶銆�
-            INVALID:    'invalid'    // 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆�
-        };
-    
-        return WUFile;
-    });
-    
-    /**
-     * @fileOverview 鏂囦欢闃熷垪
-     */
-    define('queue',[
-        'base',
-        'mediator',
-        'file'
-    ], function( Base, Mediator, WUFile ) {
-    
-        var $ = Base.$,
-            STATUS = WUFile.Status;
-    
-        /**
-         * 鏂囦欢闃熷垪, 鐢ㄦ潵瀛樺偍鍚勪釜鐘舵�佷腑鐨勬枃浠躲��
-         * @class Queue
-         * @extends Mediator
-         */
-        function Queue() {
-    
-            /**
-             * 缁熻鏂囦欢鏁般��
-             * * `numOfQueue` 闃熷垪涓殑鏂囦欢鏁般��
-             * * `numOfSuccess` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `numOfCancel` 琚Щ闄ょ殑鏂囦欢鏁�
-             * * `numOfProgress` 姝e湪涓婁紶涓殑鏂囦欢鏁�
-             * * `numOfUploadFailed` 涓婁紶閿欒鐨勬枃浠舵暟銆�
-             * * `numOfInvalid` 鏃犳晥鐨勬枃浠舵暟銆�
-             * @property {Object} stats
-             */
-            this.stats = {
-                numOfQueue: 0,
-                numOfSuccess: 0,
-                numOfCancel: 0,
-                numOfProgress: 0,
-                numOfUploadFailed: 0,
-                numOfInvalid: 0
-            };
-    
-            // 涓婁紶闃熷垪锛屼粎鍖呮嫭绛夊緟涓婁紶鐨勬枃浠�
-            this._queue = [];
-    
-            // 瀛樺偍鎵�鏈夋枃浠�
-            this._map = {};
-        }
-    
-        $.extend( Queue.prototype, {
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀熬閮�
-             *
-             * @method append
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            append: function( file ) {
-                this._queue.push( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀ご閮�
-             *
-             * @method prepend
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            prepend: function( file ) {
-                this._queue.unshift( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢瀵硅薄
-             *
-             * @method getFile
-             * @param  {String} fileId   鏂囦欢ID
-             * @return {File}
-             */
-            getFile: function( fileId ) {
-                if ( typeof fileId !== 'string' ) {
-                    return fileId;
-                }
-                return this._map[ fileId ];
-            },
-    
-            /**
-             * 浠庨槦鍒椾腑鍙栧嚭涓�涓寚瀹氱姸鎬佺殑鏂囦欢銆�
-             * @grammar fetch( status ) => File
-             * @method fetch
-             * @param {String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @return {File} [File](#WebUploader:File)
-             */
-            fetch: function( status ) {
-                var len = this._queue.length,
-                    i, file;
-    
-                status = status || STATUS.QUEUED;
-    
-                for ( i = 0; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( status === file.getStatus() ) {
-                        return file;
-                    }
-                }
-    
-                return null;
-            },
-    
-            /**
-             * 瀵归槦鍒楄繘琛屾帓搴忥紝鑳藉鎺у埗鏂囦欢涓婁紶椤哄簭銆�
-             * @grammar sort( fn ) => undefined
-             * @method sort
-             * @param {Function} fn 鎺掑簭鏂规硶
-             */
-            sort: function( fn ) {
-                if ( typeof fn === 'function' ) {
-                    this._queue.sort( fn );
-                }
-            },
-    
-            /**
-             * 鑾峰彇鎸囧畾绫诲瀷鐨勬枃浠跺垪琛�, 鍒楄〃涓瘡涓�涓垚鍛樹负[File](#WebUploader:File)瀵硅薄銆�
-             * @grammar getFiles( [status1[, status2 ...]] ) => Array
-             * @method getFiles
-             * @param {String} [status] [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             */
-            getFiles: function() {
-                var sts = [].slice.call( arguments, 0 ),
-                    ret = [],
-                    i = 0,
-                    len = this._queue.length,
-                    file;
-    
-                for ( ; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
-                        continue;
-                    }
-    
-                    ret.push( file );
-                }
-    
-                return ret;
-            },
-    
-            _fileAdded: function( file ) {
-                var me = this,
-                    existing = this._map[ file.id ];
-    
-                if ( !existing ) {
-                    this._map[ file.id ] = file;
-    
-                    file.on( 'statuschange', function( cur, pre ) {
-                        me._onFileStatusChange( cur, pre );
-                    });
-                }
-    
-                file.setStatus( STATUS.QUEUED );
-            },
-    
-            _onFileStatusChange: function( curStatus, preStatus ) {
-                var stats = this.stats;
-    
-                switch ( preStatus ) {
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress--;
-                        break;
-    
-                    case STATUS.QUEUED:
-                        stats.numOfQueue --;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed--;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid--;
-                        break;
-                }
-    
-                switch ( curStatus ) {
-                    case STATUS.QUEUED:
-                        stats.numOfQueue++;
-                        break;
-    
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress++;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed++;
-                        break;
-    
-                    case STATUS.COMPLETE:
-                        stats.numOfSuccess++;
-                        break;
-    
-                    case STATUS.CANCELLED:
-                        stats.numOfCancel++;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid++;
-                        break;
-                }
-            }
-    
-        });
-    
-        Mediator.installTo( Queue.prototype );
-    
-        return Queue;
-    });
-    /**
-     * @fileOverview 闃熷垪
-     */
-    define('widgets/queue',[
-        'base',
-        'uploader',
-        'queue',
-        'file',
-        'lib/file',
-        'runtime/client',
-        'widgets/widget'
-    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
-    
-        var $ = Base.$,
-            rExt = /\.\w+$/,
-            Status = WUFile.Status;
-    
-        return Uploader.register({
-            'sort-files': 'sortFiles',
-            'add-file': 'addFiles',
-            'get-file': 'getFile',
-            'fetch-file': 'fetchFile',
-            'get-stats': 'getStats',
-            'get-files': 'getFiles',
-            'remove-file': 'removeFile',
-            'retry': 'retry',
-            'reset': 'reset',
-            'accept-file': 'acceptFile'
-        }, {
-    
-            init: function( opts ) {
-                var me = this,
-                    deferred, len, i, item, arr, accept, runtime;
-    
-                if ( $.isPlainObject( opts.accept ) ) {
-                    opts.accept = [ opts.accept ];
-                }
-    
-                // accept涓殑涓敓鎴愬尮閰嶆鍒欍��
-                if ( opts.accept ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        item = opts.accept[ i ].extensions;
-                        item && arr.push( item );
-                    }
-    
-                    if ( arr.length ) {
-                        accept = '\\.' + arr.join(',')
-                                .replace( /,/g, '$|\\.' )
-                                .replace( /\*/g, '.*' ) + '$';
-                    }
-    
-                    me.accept = new RegExp( accept, 'i' );
-                }
-    
-                me.queue = new Queue();
-                me.stats = me.queue.stats;
-    
-                // 濡傛灉褰撳墠涓嶆槸html5杩愯鏃讹紝閭e氨绠椾簡銆�
-                // 涓嶆墽琛屽悗缁搷浣�
-                if ( this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                // 鍒涘缓涓�涓� html5 杩愯鏃剁殑 placeholder
-                // 浠ヨ嚦浜庡閮ㄦ坊鍔犲師鐢� File 瀵硅薄鐨勬椂鍊欒兘姝g‘鍖呰9涓�涓嬩緵 webuploader 浣跨敤銆�
-                deferred = Base.Deferred();
-                runtime = new RuntimeClient('Placeholder');
-                runtime.connectRuntime({
-                    runtimeOrder: 'html5'
-                }, function() {
-                    me._ruid = runtime.getRuid();
-                    deferred.resolve();
-                });
-                return deferred.promise();
-            },
-    
-    
-            // 涓轰簡鏀寔澶栭儴鐩存帴娣诲姞涓�涓師鐢烣ile瀵硅薄銆�
-            _wrapFile: function( file ) {
-                if ( !(file instanceof WUFile) ) {
-    
-                    if ( !(file instanceof File) ) {
-                        if ( !this._ruid ) {
-                            throw new Error('Can\'t add external files.');
-                        }
-                        file = new File( this._ruid, file );
-                    }
-    
-                    file = new WUFile( file );
-                }
-    
-                return file;
-            },
-    
-            // 鍒ゆ柇鏂囦欢鏄惁鍙互琚姞鍏ラ槦鍒�
-            acceptFile: function( file ) {
-                var invalid = !file || file.size < 6 || this.accept &&
-    
-                        // 濡傛灉鍚嶅瓧涓湁鍚庣紑锛屾墠鍋氬悗缂�鐧藉悕鍗曞鐞嗐��
-                        rExt.exec( file.name ) && !this.accept.test( file.name );
-    
-                return !invalid;
-            },
-    
-    
-            /**
-             * @event beforeFileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪涔嬪墠瑙﹀彂锛屾浜嬩欢鐨刪andler杩斿洖鍊间负`false`锛屽垯姝ゆ枃浠朵笉浼氳娣诲姞杩涘叆闃熷垪銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event fileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            _addFile: function( file ) {
-                var me = this;
-    
-                file = me._wrapFile( file );
-    
-                // 涓嶈繃绫诲瀷鍒ゆ柇鍏佽涓嶅厑璁革紝鍏堟淳閫� `beforeFileQueued`
-                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
-                    return;
-                }
-    
-                // 绫诲瀷涓嶅尮閰嶏紝鍒欐淳閫侀敊璇簨浠讹紝骞惰繑鍥炪��
-                if ( !me.acceptFile( file ) ) {
-                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
-                    return;
-                }
-    
-                me.queue.append( file );
-                me.owner.trigger( 'fileQueued', file );
-                return file;
-            },
-    
-            getFile: function( fileId ) {
-                return this.queue.getFile( fileId );
-            },
-    
-            /**
-             * @event filesQueued
-             * @param {File} files 鏁扮粍锛屽唴瀹逛负鍘熷File(lib/File锛夊璞°��
-             * @description 褰撲竴鎵规枃浠舵坊鍔犺繘闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @method addFiles
-             * @grammar addFiles( file ) => undefined
-             * @grammar addFiles( [file1, file2 ...] ) => undefined
-             * @param {Array of File or File} [files] Files 瀵硅薄 鏁扮粍
-             * @description 娣诲姞鏂囦欢鍒伴槦鍒�
-             * @for  Uploader
-             */
-            addFiles: function( files ) {
-                var me = this;
-    
-                if ( !files.length ) {
-                    files = [ files ];
-                }
-    
-                files = $.map( files, function( file ) {
-                    return me._addFile( file );
-                });
-    
-                me.owner.trigger( 'filesQueued', files );
-    
-                if ( me.options.auto ) {
-                    me.request('start-upload');
-                }
-            },
-    
-            getStats: function() {
-                return this.stats;
-            },
-    
-            /**
-             * @event fileDequeued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰绉婚櫎闃熷垪鍚庤Е鍙戙��
-             * @for  Uploader
-             */
-    
-            /**
-             * @method removeFile
-             * @grammar removeFile( file ) => undefined
-             * @grammar removeFile( id ) => undefined
-             * @param {File|id} file File瀵硅薄鎴栬繖File瀵硅薄鐨刬d
-             * @description 绉婚櫎鏌愪竴鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             *
-             * $li.on('click', '.remove-this', function() {
-             *     uploader.removeFile( file );
-             * })
-             */
-            removeFile: function( file ) {
-                var me = this;
-    
-                file = file.id ? file : me.queue.getFile( file );
-    
-                file.setStatus( Status.CANCELLED );
-                me.owner.trigger( 'fileDequeued', file );
-            },
-    
-            /**
-             * @method getFiles
-             * @grammar getFiles() => Array
-             * @grammar getFiles( status1, status2, status... ) => Array
-             * @description 杩斿洖鎸囧畾鐘舵�佺殑鏂囦欢闆嗗悎锛屼笉浼犲弬鏁板皢杩斿洖鎵�鏈夌姸鎬佺殑鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             * console.log( uploader.getFiles() );    // => all files
-             * console.log( uploader.getFiles('error') )    // => all error files.
-             */
-            getFiles: function() {
-                return this.queue.getFiles.apply( this.queue, arguments );
-            },
-    
-            fetchFile: function() {
-                return this.queue.fetch.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method retry
-             * @grammar retry() => undefined
-             * @grammar retry( file ) => undefined
-             * @description 閲嶈瘯涓婁紶锛岄噸璇曟寚瀹氭枃浠讹紝鎴栬�呬粠鍑洪敊鐨勬枃浠跺紑濮嬮噸鏂颁笂浼犮��
-             * @for  Uploader
-             * @example
-             * function retry() {
-             *     uploader.retry();
-             * }
-             */
-            retry: function( file, noForceStart ) {
-                var me = this,
-                    files, i, len;
-    
-                if ( file ) {
-                    file = file.id ? file : me.queue.getFile( file );
-                    file.setStatus( Status.QUEUED );
-                    noForceStart || me.request('start-upload');
-                    return;
-                }
-    
-                files = me.queue.getFiles( Status.ERROR );
-                i = 0;
-                len = files.length;
-    
-                for ( ; i < len; i++ ) {
-                    file = files[ i ];
-                    file.setStatus( Status.QUEUED );
-                }
-    
-                me.request('start-upload');
-            },
-    
-            /**
-             * @method sort
-             * @grammar sort( fn ) => undefined
-             * @description 鎺掑簭闃熷垪涓殑鏂囦欢锛屽湪涓婁紶涔嬪墠璋冩暣鍙互鎺у埗涓婁紶椤哄簭銆�
-             * @for  Uploader
-             */
-            sortFiles: function() {
-                return this.queue.sort.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method reset
-             * @grammar reset() => undefined
-             * @description 閲嶇疆uploader銆傜洰鍓嶅彧閲嶇疆浜嗛槦鍒椼��
-             * @for  Uploader
-             * @example
-             * uploader.reset();
-             */
-            reset: function() {
-                this.queue = new Queue();
-                this.stats = this.queue.stats;
-            }
-        });
-    
-    });
-    /**
-     * @fileOverview 娣诲姞鑾峰彇Runtime鐩稿叧淇℃伅鐨勬柟娉曘��
-     */
-    define('widgets/runtime',[
-        'uploader',
-        'runtime/runtime',
-        'widgets/widget'
-    ], function( Uploader, Runtime ) {
-    
-        Uploader.support = function() {
-            return Runtime.hasRuntime.apply( Runtime, arguments );
-        };
-    
-        return Uploader.register({
-            'predict-runtime-type': 'predictRuntmeType'
-        }, {
-    
-            init: function() {
-                if ( !this.predictRuntmeType() ) {
-                    throw Error('Runtime Error');
-                }
-            },
-    
-            /**
-             * 棰勬祴Uploader灏嗛噰鐢ㄥ摢涓猔Runtime`
-             * @grammar predictRuntmeType() => String
-             * @method predictRuntmeType
-             * @for  Uploader
-             */
-            predictRuntmeType: function() {
-                var orders = this.options.runtimeOrder || Runtime.orders,
-                    type = this.type,
-                    i, len;
-    
-                if ( !type ) {
-                    orders = orders.split( /\s*,\s*/g );
-    
-                    for ( i = 0, len = orders.length; i < len; i++ ) {
-                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
-                            this.type = type = orders[ i ];
-                            break;
-                        }
-                    }
-                }
-    
-                return type;
-            }
-        });
-    });
-    /**
-     * @fileOverview Transport
-     */
-    define('lib/transport',[
-        'base',
-        'runtime/client',
-        'mediator'
-    ], function( Base, RuntimeClient, Mediator ) {
-    
-        var $ = Base.$;
-    
-        function Transport( opts ) {
-            var me = this;
-    
-            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
-            RuntimeClient.call( this, 'Transport' );
-    
-            this._blob = null;
-            this._formData = opts.formData || {};
-            this._headers = opts.headers || {};
-    
-            this.on( 'progress', this._timeout );
-            this.on( 'load error', function() {
-                me.trigger( 'progress', 1 );
-                clearTimeout( me._timer );
-            });
-        }
-    
-        Transport.options = {
-            server: '',
-            method: 'POST',
-    
-            // 璺ㄥ煙鏃讹紝鏄惁鍏佽鎼哄甫cookie, 鍙湁html5 runtime鎵嶆湁鏁�
-            withCredentials: false,
-            fileVal: 'file',
-            timeout: 2 * 60 * 1000,    // 2鍒嗛挓
-            formData: {},
-            headers: {},
-            sendAsBinary: false
-        };
-    
-        $.extend( Transport.prototype, {
-    
-            // 娣诲姞Blob, 鍙兘娣诲姞涓�娆★紝鏈�鍚庝竴娆℃湁鏁堛��
-            appendBlob: function( key, blob, filename ) {
-                var me = this,
-                    opts = me.options;
-    
-                if ( me.getRuid() ) {
-                    me.disconnectRuntime();
-                }
-    
-                // 杩炴帴鍒癰lob褰掑睘鐨勫悓涓�涓猺untime.
-                me.connectRuntime( blob.ruid, function() {
-                    me.exec('init');
-                });
-    
-                me._blob = blob;
-                opts.fileVal = key || opts.fileVal;
-                opts.filename = filename || opts.filename;
-            },
-    
-            // 娣诲姞鍏朵粬瀛楁
-            append: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._formData, key );
-                } else {
-                    this._formData[ key ] = value;
-                }
-            },
-    
-            setRequestHeader: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._headers, key );
-                } else {
-                    this._headers[ key ] = value;
-                }
-            },
-    
-            send: function( method ) {
-                this.exec( 'send', method );
-                this._timeout();
-            },
-    
-            abort: function() {
-                clearTimeout( this._timer );
-                return this.exec('abort');
-            },
-    
-            destroy: function() {
-                this.trigger('destroy');
-                this.off();
-                this.exec('destroy');
-                this.disconnectRuntime();
-            },
-    
-            getResponse: function() {
-                return this.exec('getResponse');
-            },
-    
-            getResponseAsJson: function() {
-                return this.exec('getResponseAsJson');
-            },
-    
-            getStatus: function() {
-                return this.exec('getStatus');
-            },
-    
-            _timeout: function() {
-                var me = this,
-                    duration = me.options.timeout;
-    
-                if ( !duration ) {
-                    return;
-                }
-    
-                clearTimeout( me._timer );
-                me._timer = setTimeout(function() {
-                    me.abort();
-                    me.trigger( 'error', 'timeout' );
-                }, duration );
-            }
-    
-        });
-    
-        // 璁㏕ransport鍏峰浜嬩欢鍔熻兘銆�
-        Mediator.installTo( Transport.prototype );
-    
-        return Transport;
-    });
-    /**
-     * @fileOverview 璐熻矗鏂囦欢涓婁紶鐩稿叧銆�
-     */
-    define('widgets/upload',[
-        'base',
-        'uploader',
-        'file',
-        'lib/transport',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile, Transport ) {
-    
-        var $ = Base.$,
-            isPromise = Base.isPromise,
-            Status = WUFile.Status;
-    
-        // 娣诲姞榛樿閰嶇疆椤�
-        $.extend( Uploader.options, {
-    
-    
-            /**
-             * @property {Boolean} [prepareNextFile=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁鍏佽鍦ㄦ枃浠朵紶杈撴椂鎻愬墠鎶婁笅涓�涓枃浠跺噯澶囧ソ銆�
-             * 瀵逛簬涓�涓枃浠剁殑鍑嗗宸ヤ綔姣旇緝鑰楁椂锛屾瘮濡傚浘鐗囧帇缂╋紝md5搴忓垪鍖栥��
-             * 濡傛灉鑳芥彁鍓嶅湪褰撳墠鏂囦欢浼犺緭鏈熷鐞嗭紝鍙互鑺傜渷鎬讳綋鑰楁椂銆�
-             */
-            prepareNextFile: false,
-    
-            /**
-             * @property {Boolean} [chunked=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁瑕佸垎鐗囧鐞嗗ぇ鏂囦欢涓婁紶銆�
-             */
-            chunked: false,
-    
-            /**
-             * @property {Boolean} [chunkSize=5242880]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉瑕佸垎鐗囷紝鍒嗗澶т竴鐗囷紵 榛樿澶у皬涓�5M.
-             */
-            chunkSize: 5 * 1024 * 1024,
-    
-            /**
-             * @property {Boolean} [chunkRetry=2]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉鏌愪釜鍒嗙墖鐢变簬缃戠粶闂鍑洪敊锛屽厑璁歌嚜鍔ㄩ噸浼犲灏戞锛�
-             */
-            chunkRetry: 2,
-    
-            /**
-             * @property {Boolean} [threads=3]
-             * @namespace options
-             * @for Uploader
-             * @description 涓婁紶骞跺彂鏁般�傚厑璁稿悓鏃舵渶澶т笂浼犺繘绋嬫暟銆�
-             */
-            threads: 3,
-    
-    
-            /**
-             * @property {Object} [formData]
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶璇锋眰鐨勫弬鏁拌〃锛屾瘡娆″彂閫侀兘浼氬彂閫佹瀵硅薄涓殑鍙傛暟銆�
-             */
-            formData: null
-    
-            /**
-             * @property {Object} [fileVal='file']
-             * @namespace options
-             * @for Uploader
-             * @description 璁剧疆鏂囦欢涓婁紶鍩熺殑name銆�
-             */
-    
-            /**
-             * @property {Object} [method='POST']
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶鏂瑰紡锛宍POST`鎴栬�卄GET`銆�
-             */
-    
-            /**
-             * @property {Object} [sendAsBinary=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁宸蹭簩杩涘埗鐨勬祦鐨勬柟寮忓彂閫佹枃浠讹紝杩欐牱鏁翠釜涓婁紶鍐呭`php://input`閮戒负鏂囦欢鍐呭锛�
-             * 鍏朵粬鍙傛暟鍦�$_GET鏁扮粍涓��
-             */
-        });
-    
-        // 璐熻矗灏嗘枃浠跺垏鐗囥��
-        function CuteFile( file, chunkSize ) {
-            var pending = [],
-                blob = file.source,
-                total = blob.size,
-                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
-                start = 0,
-                index = 0,
-                len;
-    
-            while ( index < chunks ) {
-                len = Math.min( chunkSize, total - start );
-    
-                pending.push({
-                    file: file,
-                    start: start,
-                    end: chunkSize ? (start + len) : total,
-                    total: total,
-                    chunks: chunks,
-                    chunk: index++
-                });
-                start += len;
-            }
-    
-            file.blocks = pending.concat();
-            file.remaning = pending.length;
-    
-            return {
-                file: file,
-    
-                has: function() {
-                    return !!pending.length;
-                },
-    
-                fetch: function() {
-                    return pending.shift();
-                }
-            };
-        }
-    
-        Uploader.register({
-            'start-upload': 'start',
-            'stop-upload': 'stop',
-            'skip-file': 'skipFile',
-            'is-in-progress': 'isInProgress'
-        }, {
-    
-            init: function() {
-                var owner = this.owner;
-    
-                this.runing = false;
-    
-                // 璁板綍褰撳墠姝e湪浼犵殑鏁版嵁锛岃窡threads鐩稿叧
-                this.pool = [];
-    
-                // 缂撳瓨鍗冲皢涓婁紶鐨勬枃浠躲��
-                this.pending = [];
-    
-                // 璺熻釜杩樻湁澶氬皯鍒嗙墖娌℃湁瀹屾垚涓婁紶銆�
-                this.remaning = 0;
-                this.__tick = Base.bindFn( this._tick, this );
-    
-                owner.on( 'uploadComplete', function( file ) {
-                    // 鎶婂叾浠栧潡鍙栨秷浜嗐��
-                    file.blocks && $.each( file.blocks, function( _, v ) {
-                        v.transport && (v.transport.abort(), v.transport.destroy());
-                        delete v.transport;
-                    });
-    
-                    delete file.blocks;
-                    delete file.remaning;
-                });
-            },
-    
-            /**
-             * @event startUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 寮�濮嬩笂浼犮�傛鏂规硶鍙互浠庡垵濮嬬姸鎬佽皟鐢ㄥ紑濮嬩笂浼犳祦绋嬶紝涔熷彲浠ヤ粠鏆傚仠鐘舵�佽皟鐢紝缁х画涓婁紶娴佺▼銆�
-             * @grammar upload() => undefined
-             * @method upload
-             * @for  Uploader
-             */
-            start: function() {
-                var me = this;
-    
-                // 绉诲嚭invalid鐨勬枃浠�
-                $.each( me.request( 'get-files', Status.INVALID ), function() {
-                    me.request( 'remove-file', this );
-                });
-    
-                if ( me.runing ) {
-                    return;
-                }
-    
-                me.runing = true;
-    
-                // 濡傛灉鏈夋殏鍋滅殑锛屽垯缁紶
-                $.each( me.pool, function( _, v ) {
-                    var file = v.file;
-    
-                    if ( file.getStatus() === Status.INTERRUPT ) {
-                        file.setStatus( Status.PROGRESS );
-                        me._trigged = false;
-                        v.transport && v.transport.send();
-                    }
-                });
-    
-                me._trigged = false;
-                me.owner.trigger('startUpload');
-                Base.nextTick( me.__tick );
-            },
-    
-            /**
-             * @event stopUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫殏鍋滄椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 鏆傚仠涓婁紶銆傜涓�涓弬鏁颁负鏄惁涓柇涓婁紶褰撳墠姝e湪涓婁紶鐨勬枃浠躲��
-             * @grammar stop() => undefined
-             * @grammar stop( true ) => undefined
-             * @method stop
-             * @for  Uploader
-             */
-            stop: function( interrupt ) {
-                var me = this;
-    
-                if ( me.runing === false ) {
-                    return;
-                }
-    
-                me.runing = false;
-    
-                interrupt && $.each( me.pool, function( _, v ) {
-                    v.transport && v.transport.abort();
-                    v.file.setStatus( Status.INTERRUPT );
-                });
-    
-                me.owner.trigger('stopUpload');
-            },
-    
-            /**
-             * 鍒ゆ柇`Uplaode`r鏄惁姝e湪涓婁紶涓��
-             * @grammar isInProgress() => Boolean
-             * @method isInProgress
-             * @for  Uploader
-             */
-            isInProgress: function() {
-                return !!this.runing;
-            },
-    
-            getStats: function() {
-                return this.request('get-stats');
-            },
-    
-            /**
-             * 鎺夎繃涓�涓枃浠朵笂浼狅紝鐩存帴鏍囪鎸囧畾鏂囦欢涓哄凡涓婁紶鐘舵�併��
-             * @grammar skipFile( file ) => undefined
-             * @method skipFile
-             * @for  Uploader
-             */
-            skipFile: function( file, status ) {
-                file = this.request( 'get-file', file );
-    
-                file.setStatus( status || Status.COMPLETE );
-                file.skipped = true;
-    
-                // 濡傛灉姝e湪涓婁紶銆�
-                file.blocks && $.each( file.blocks, function( _, v ) {
-                    var _tr = v.transport;
-    
-                    if ( _tr ) {
-                        _tr.abort();
-                        _tr.destroy();
-                        delete v.transport;
-                    }
-                });
-    
-                this.owner.trigger( 'uploadSkip', file );
-            },
-    
-            /**
-             * @event uploadFinished
-             * @description 褰撴墍鏈夋枃浠朵笂浼犵粨鏉熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-            _tick: function() {
-                var me = this,
-                    opts = me.options,
-                    fn, val;
-    
-                // 涓婁竴涓猵romise杩樻病鏈夌粨鏉燂紝鍒欑瓑寰呭畬鎴愬悗鍐嶆墽琛屻��
-                if ( me._promise ) {
-                    return me._promise.always( me.__tick );
-                }
-    
-                // 杩樻湁浣嶇疆锛屼笖杩樻湁鏂囦欢瑕佸鐞嗙殑璇濄��
-                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
-                    me._trigged = false;
-    
-                    fn = function( val ) {
-                        me._promise = null;
-    
-                        // 鏈夊彲鑳芥槸reject杩囨潵鐨勶紝鎵�浠ヨ妫�娴媣al鐨勭被鍨嬨��
-                        val && val.file && me._startSend( val );
-                        Base.nextTick( me.__tick );
-                    };
-    
-                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
-    
-                // 娌℃湁瑕佷笂浼犵殑浜嗭紝涓旀病鏈夋鍦ㄤ紶杈撶殑浜嗐��
-                } else if ( !me.remaning && !me.getStats().numOfQueue ) {
-                    me.runing = false;
-    
-                    me._trigged || Base.nextTick(function() {
-                        me.owner.trigger('uploadFinished');
-                    });
-                    me._trigged = true;
-                }
-            },
-    
-            _nextBlock: function() {
-                var me = this,
-                    act = me._act,
-                    opts = me.options,
-                    next, done;
-    
-                // 濡傛灉褰撳墠鏂囦欢杩樻湁娌℃湁闇�瑕佷紶杈撶殑锛屽垯鐩存帴杩斿洖鍓╀笅鐨勩��
-                if ( act && act.has() &&
-                        act.file.getStatus() === Status.PROGRESS ) {
-    
-                    // 鏄惁鎻愬墠鍑嗗涓嬩竴涓枃浠�
-                    if ( opts.prepareNextFile && !me.pending.length ) {
-                        me._prepareNextFile();
-                    }
-    
-                    return act.fetch();
-    
-                // 鍚﹀垯锛屽鏋滄鍦ㄨ繍琛岋紝鍒欏噯澶囦笅涓�涓枃浠讹紝骞剁瓑寰呭畬鎴愬悗杩斿洖涓嬩釜鍒嗙墖銆�
-                } else if ( me.runing ) {
-    
-                    // 濡傛灉缂撳瓨涓湁锛屽垯鐩存帴鍦ㄧ紦瀛樹腑鍙栵紝娌℃湁鍒欏幓queue涓彇銆�
-                    if ( !me.pending.length && me.getStats().numOfQueue ) {
-                        me._prepareNextFile();
-                    }
-    
-                    next = me.pending.shift();
-                    done = function( file ) {
-                        if ( !file ) {
-                            return null;
-                        }
-    
-                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
-                        me._act = act;
-                        return act.fetch();
-                    };
-    
-                    // 鏂囦欢鍙兘杩樺湪prepare涓紝涔熸湁鍙兘宸茬粡瀹屽叏鍑嗗濂戒簡銆�
-                    return isPromise( next ) ?
-                            next[ next.pipe ? 'pipe' : 'then']( done ) :
-                            done( next );
-                }
-            },
-    
-    
-            /**
-             * @event uploadStart
-             * @param {File} file File瀵硅薄
-             * @description 鏌愪釜鏂囦欢寮�濮嬩笂浼犲墠瑙﹀彂锛屼竴涓枃浠跺彧浼氳Е鍙戜竴娆°��
-             * @for  Uploader
-             */
-            _prepareNextFile: function() {
-                var me = this,
-                    file = me.request('fetch-file'),
-                    pending = me.pending,
-                    promise;
-    
-                if ( file ) {
-                    promise = me.request( 'before-send-file', file, function() {
-    
-                        // 鏈夊彲鑳芥枃浠惰skip鎺変簡銆傛枃浠惰skip鎺夊悗锛岀姸鎬佸潙瀹氫笉鏄疩ueued.
-                        if ( file.getStatus() === Status.QUEUED ) {
-                            me.owner.trigger( 'uploadStart', file );
-                            file.setStatus( Status.PROGRESS );
-                            return file;
-                        }
-    
-                        return me._finishFile( file );
-                    });
-    
-                    // 濡傛灉杩樺湪pending涓紝鍒欐浛鎹㈡垚鏂囦欢鏈韩銆�
-                    promise.done(function() {
-                        var idx = $.inArray( promise, pending );
-    
-                        ~idx && pending.splice( idx, 1, file );
-                    });
-    
-                    // befeore-send-file鐨勯挬瀛愬氨鏈夐敊璇彂鐢熴��
-                    promise.fail(function( reason ) {
-                        file.setStatus( Status.ERROR, reason );
-                        me.owner.trigger( 'uploadError', file, reason );
-                        me.owner.trigger( 'uploadComplete', file );
-                    });
-    
-                    pending.push( promise );
-                }
-            },
-    
-            // 璁╁嚭浣嶇疆浜嗭紝鍙互璁╁叾浠栧垎鐗囧紑濮嬩笂浼�
-            _popBlock: function( block ) {
-                var idx = $.inArray( block, this.pool );
-    
-                this.pool.splice( idx, 1 );
-                block.file.remaning--;
-                this.remaning--;
-            },
-    
-            // 寮�濮嬩笂浼狅紝鍙互琚帀杩囥�傚鏋減romise琚玶eject浜嗭紝鍒欒〃绀鸿烦杩囨鍒嗙墖銆�
-            _startSend: function( block ) {
-                var me = this,
-                    file = block.file,
-                    promise;
-    
-                me.pool.push( block );
-                me.remaning++;
-    
-                // 濡傛灉娌℃湁鍒嗙墖锛屽垯鐩存帴浣跨敤鍘熷鐨勩��
-                // 涓嶄細涓㈠けcontent-type淇℃伅銆�
-                block.blob = block.chunks === 1 ? file.source :
-                        file.source.slice( block.start, block.end );
-    
-                // hook, 姣忎釜鍒嗙墖鍙戦�佷箣鍓嶅彲鑳借鍋氫簺寮傛鐨勪簨鎯呫��
-                promise = me.request( 'before-send', block, function() {
-    
-                    // 鏈夊彲鑳芥枃浠跺凡缁忎笂浼犲嚭閿欎簡锛屾墍浠ヤ笉闇�瑕佸啀浼犺緭浜嗐��
-                    if ( file.getStatus() === Status.PROGRESS ) {
-                        me._doSend( block );
-                    } else {
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-    
-                // 濡傛灉涓篺ail浜嗭紝鍒欒烦杩囨鍒嗙墖銆�
-                promise.fail(function() {
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file ).always(function() {
-                            block.percentage = 1;
-                            me._popBlock( block );
-                            me.owner.trigger( 'uploadComplete', file );
-                            Base.nextTick( me.__tick );
-                        });
-                    } else {
-                        block.percentage = 1;
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-            },
-    
-    
-            /**
-             * @event uploadBeforeSend
-             * @param {Object} object
-             * @param {Object} data 榛樿鐨勪笂浼犲弬鏁帮紝鍙互鎵╁睍姝ゅ璞℃潵鎺у埗涓婁紶鍙傛暟銆�
-             * @description 褰撴煇涓枃浠剁殑鍒嗗潡鍦ㄥ彂閫佸墠瑙﹀彂锛屼富瑕佺敤鏉ヨ闂槸鍚﹁娣诲姞闄勫甫鍙傛暟锛屽ぇ鏂囦欢鍦ㄥ紑璧峰垎鐗囦笂浼犵殑鍓嶆彁涓嬫浜嬩欢鍙兘浼氳Е鍙戝娆°��
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadAccept
-             * @param {Object} object
-             * @param {Object} ret 鏈嶅姟绔殑杩斿洖鏁版嵁锛宩son鏍煎紡锛屽鏋滄湇鍔$涓嶆槸json鏍煎紡锛屼粠ret._raw涓彇鏁版嵁锛岃嚜琛岃В鏋愩��
-             * @description 褰撴煇涓枃浠朵笂浼犲埌鏈嶅姟绔搷搴斿悗锛屼細娲鹃�佹浜嬩欢鏉ヨ闂湇鍔$鍝嶅簲鏄惁鏈夋晥銆傚鏋滄浜嬩欢handler杩斿洖鍊间负`false`, 鍒欐鏂囦欢灏嗘淳閫乣server`绫诲瀷鐨刞uploadError`浜嬩欢銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadProgress
-             * @param {File} file File瀵硅薄
-             * @param {Number} percentage 涓婁紶杩涘害
-             * @description 涓婁紶杩囩▼涓Е鍙戯紝鎼哄甫涓婁紶杩涘害銆�
-             * @for  Uploader
-             */
-    
-    
-            /**
-             * @event uploadError
-             * @param {File} file File瀵硅薄
-             * @param {String} reason 鍑洪敊鐨刢ode
-             * @description 褰撴枃浠朵笂浼犲嚭閿欐椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadSuccess
-             * @param {File} file File瀵硅薄
-             * @param {Object} response 鏈嶅姟绔繑鍥炵殑鏁版嵁
-             * @description 褰撴枃浠朵笂浼犳垚鍔熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadComplete
-             * @param {File} [file] File瀵硅薄
-             * @description 涓嶇鎴愬姛鎴栬�呭け璐ワ紝鏂囦欢涓婁紶瀹屾垚鏃惰Е鍙戙��
-             * @for  Uploader
-             */
-    
-            // 鍋氫笂浼犳搷浣溿��
-            _doSend: function( block ) {
-                var me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    file = block.file,
-                    tr = new Transport( opts ),
-                    data = $.extend({}, opts.formData ),
-                    headers = $.extend({}, opts.headers ),
-                    requestAccept, ret;
-    
-                block.transport = tr;
-    
-                tr.on( 'destroy', function() {
-                    delete block.transport;
-                    me._popBlock( block );
-                    Base.nextTick( me.__tick );
-                });
-    
-                // 骞挎挱涓婁紶杩涘害銆備互鏂囦欢涓哄崟浣嶃��
-                tr.on( 'progress', function( percentage ) {
-                    var totalPercent = 0,
-                        uploaded = 0;
-    
-                    // 鍙兘娌℃湁abort鎺夛紝progress杩樻槸鎵ц杩涙潵浜嗐��
-                    // if ( !file.blocks ) {
-                    //     return;
-                    // }
-    
-                    totalPercent = block.percentage = percentage;
-    
-                    if ( block.chunks > 1 ) {    // 璁$畻鏂囦欢鐨勬暣浣撻�熷害銆�
-                        $.each( file.blocks, function( _, v ) {
-                            uploaded += (v.percentage || 0) * (v.end - v.start);
-                        });
-    
-                        totalPercent = uploaded / file.size;
-                    }
-    
-                    owner.trigger( 'uploadProgress', file, totalPercent || 0 );
-                });
-    
-                // 鐢ㄦ潵璇㈤棶锛屾槸鍚﹁繑鍥炵殑缁撴灉鏄湁閿欒鐨勩��
-                requestAccept = function( reject ) {
-                    var fn;
-    
-                    ret = tr.getResponseAsJson() || {};
-                    ret._raw = tr.getResponse();
-                    fn = function( value ) {
-                        reject = value;
-                    };
-    
-                    // 鏈嶅姟绔搷搴斾簡锛屼笉浠h〃鎴愬姛浜嗭紝璇㈤棶鏄惁鍝嶅簲姝g‘銆�
-                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
-                        reject = reject || 'server';
-                    }
-    
-                    return reject;
-                };
-    
-                // 灏濊瘯閲嶈瘯锛岀劧鍚庡箍鎾枃浠朵笂浼犲嚭閿欍��
-                tr.on( 'error', function( type, flag ) {
-                    block.retried = block.retried || 0;
-    
-                    // 鑷姩閲嶈瘯
-                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
-                            block.retried < opts.chunkRetry ) {
-    
-                        block.retried++;
-                        tr.send();
-    
-                    } else {
-    
-                        // http status 500 ~ 600
-                        if ( !flag && type === 'server' ) {
-                            type = requestAccept( type );
-                        }
-    
-                        file.setStatus( Status.ERROR, type );
-                        owner.trigger( 'uploadError', file, type );
-                        owner.trigger( 'uploadComplete', file );
-                    }
-                });
-    
-                // 涓婁紶鎴愬姛
-                tr.on( 'load', function() {
-                    var reason;
-    
-                    // 濡傛灉闈為鏈燂紝杞悜涓婁紶鍑洪敊銆�
-                    if ( (reason = requestAccept()) ) {
-                        tr.trigger( 'error', reason, true );
-                        return;
-                    }
-    
-                    // 鍏ㄩ儴涓婁紶瀹屾垚銆�
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file, ret );
-                    } else {
-                        tr.destroy();
-                    }
-                });
-    
-                // 閰嶇疆榛樿鐨勪笂浼犲瓧娈点��
-                data = $.extend( data, {
-                    id: file.id,
-                    name: file.name,
-                    type: file.type,
-                    lastModifiedDate: file.lastModifiedDate,
-                    size: file.size
-                });
-    
-                block.chunks > 1 && $.extend( data, {
-                    chunks: block.chunks,
-                    chunk: block.chunk
-                });
-    
-                // 鍦ㄥ彂閫佷箣闂村彲浠ユ坊鍔犲瓧娈典粈涔堢殑銆傘�傘��
-                // 濡傛灉榛樿鐨勫瓧娈典笉澶熶娇鐢紝鍙互閫氳繃鐩戝惉姝や簨浠舵潵鎵╁睍
-                owner.trigger( 'uploadBeforeSend', block, data, headers );
-    
-                // 寮�濮嬪彂閫併��
-                tr.appendBlob( opts.fileVal, block.blob, file.name );
-                tr.append( data );
-                tr.setRequestHeader( headers );
-                tr.send();
-            },
-    
-            // 瀹屾垚涓婁紶銆�
-            _finishFile: function( file, ret, hds ) {
-                var owner = this.owner;
-    
-                return owner
-                        .request( 'after-send-file', arguments, function() {
-                            file.setStatus( Status.COMPLETE );
-                            owner.trigger( 'uploadSuccess', file, ret, hds );
-                        })
-                        .fail(function( reason ) {
-    
-                            // 濡傛灉澶栭儴宸茬粡鏍囪涓篿nvalid浠�涔堢殑锛屼笉鍐嶆敼鐘舵�併��
-                            if ( file.getStatus() === Status.PROGRESS ) {
-                                file.setStatus( Status.ERROR, reason );
-                            }
-    
-                            owner.trigger( 'uploadError', file, reason );
-                        })
-                        .always(function() {
-                            owner.trigger( 'uploadComplete', file );
-                        });
-            }
-    
-        });
-    });
-    /**
-     * @fileOverview 鍚勭楠岃瘉锛屽寘鎷枃浠舵�诲ぇ灏忔槸鍚﹁秴鍑恒�佸崟鏂囦欢鏄惁瓒呭嚭鍜屾枃浠舵槸鍚﹂噸澶嶃��
-     */
-    
-    define('widgets/validator',[
-        'base',
-        'uploader',
-        'file',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile ) {
-    
-        var $ = Base.$,
-            validators = {},
-            api;
-    
-        /**
-         * @event error
-         * @param {String} type 閿欒绫诲瀷銆�
-         * @description 褰搗alidate涓嶉�氳繃鏃讹紝浼氫互娲鹃�侀敊璇簨浠剁殑褰㈠紡閫氱煡璋冪敤鑰呫�傞�氳繃`upload.on('error', handler)`鍙互鎹曡幏鍒版绫婚敊璇紝鐩墠鏈変互涓嬮敊璇細鍦ㄧ壒瀹氱殑鎯呭喌涓嬫淳閫侀敊鏉ャ��
-         *
-         * * `Q_EXCEED_NUM_LIMIT` 鍦ㄨ缃簡`fileNumLimit`涓斿皾璇曠粰`uploader`娣诲姞鐨勬枃浠舵暟閲忚秴鍑鸿繖涓�兼椂娲鹃�併��
-         * * `Q_EXCEED_SIZE_LIMIT` 鍦ㄨ缃簡`Q_EXCEED_SIZE_LIMIT`涓斿皾璇曠粰`uploader`娣诲姞鐨勬枃浠舵�诲ぇ灏忚秴鍑鸿繖涓�兼椂娲鹃�併��
-         * @for  Uploader
-         */
-    
-        // 鏆撮湶缁欏闈㈢殑api
-        api = {
-    
-            // 娣诲姞楠岃瘉鍣�
-            addValidator: function( type, cb ) {
-                validators[ type ] = cb;
-            },
-    
-            // 绉婚櫎楠岃瘉鍣�
-            removeValidator: function( type ) {
-                delete validators[ type ];
-            }
-        };
-    
-        // 鍦║ploader鍒濆鍖栫殑鏃跺�欏惎鍔╒alidators鐨勫垵濮嬪寲
-        Uploader.register({
-            init: function() {
-                var me = this;
-                $.each( validators, function() {
-                    this.call( me.owner );
-                });
-            }
-        });
-    
-        /**
-         * @property {int} [fileNumLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鏂囦欢鎬绘暟閲�, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileNumLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                count = 0,
-                max = opts.fileNumLimit >> 0,
-                flag = true;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-    
-                if ( count >= max && flag ) {
-                    flag = false;
-                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
-                    setTimeout(function() {
-                        flag = true;
-                    }, 1 );
-                }
-    
-                return count >= max ? false : true;
-            });
-    
-            uploader.on( 'fileQueued', function() {
-                count++;
-            });
-    
-            uploader.on( 'fileDequeued', function() {
-                count--;
-            });
-    
-            uploader.on( 'uploadFinished', function() {
-                count = 0;
-            });
-        });
-    
-    
-        /**
-         * @property {int} [fileSizeLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鏂囦欢鎬诲ぇ灏忔槸鍚﹁秴鍑洪檺鍒�, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileSizeLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                count = 0,
-                max = opts.fileSizeLimit >> 0,
-                flag = true;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-                var invalid = count + file.size > max;
-    
-                if ( invalid && flag ) {
-                    flag = false;
-                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
-                    setTimeout(function() {
-                        flag = true;
-                    }, 1 );
-                }
-    
-                return invalid ? false : true;
-            });
-    
-            uploader.on( 'fileQueued', function( file ) {
-                count += file.size;
-            });
-    
-            uploader.on( 'fileDequeued', function( file ) {
-                count -= file.size;
-            });
-    
-            uploader.on( 'uploadFinished', function() {
-                count = 0;
-            });
-        });
-    
-        /**
-         * @property {int} [fileSingleSizeLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鍗曚釜鏂囦欢澶у皬鏄惁瓒呭嚭闄愬埗, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileSingleSizeLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                max = opts.fileSingleSizeLimit;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-    
-                if ( file.size > max ) {
-                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
-                    this.trigger( 'error', 'F_EXCEED_SIZE', file );
-                    return false;
-                }
-    
-            });
-    
-        });
-    
-        /**
-         * @property {int} [duplicate=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 鍘婚噸锛� 鏍规嵁鏂囦欢鍚嶅瓧銆佹枃浠跺ぇ灏忓拰鏈�鍚庝慨鏀规椂闂存潵鐢熸垚hash Key.
-         */
-        api.addValidator( 'duplicate', function() {
-            var uploader = this,
-                opts = uploader.options,
-                mapping = {};
-    
-            if ( opts.duplicate ) {
-                return;
-            }
-    
-            function hashString( str ) {
-                var hash = 0,
-                    i = 0,
-                    len = str.length,
-                    _char;
-    
-                for ( ; i < len; i++ ) {
-                    _char = str.charCodeAt( i );
-                    hash = _char + (hash << 6) + (hash << 16) - hash;
-                }
-    
-                return hash;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-                var hash = file.__hash || (file.__hash = hashString( file.name +
-                        file.size + file.lastModifiedDate ));
-    
-                // 宸茬粡閲嶅浜�
-                if ( mapping[ hash ] ) {
-                    this.trigger( 'error', 'F_DUPLICATE', file );
-                    return false;
-                }
-            });
-    
-            uploader.on( 'fileQueued', function( file ) {
-                var hash = file.__hash;
-    
-                hash && (mapping[ hash ] = true);
-            });
-    
-            uploader.on( 'fileDequeued', function( file ) {
-                var hash = file.__hash;
-    
-                hash && (delete mapping[ hash ]);
-            });
-        });
-    
-        return api;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/compbase',[],function() {
-    
-        function CompBase( owner, runtime ) {
-    
-            this.owner = owner;
-            this.options = owner.options;
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.getRuid = function() {
-                return runtime.uid;
-            };
-    
-            this.trigger = function() {
-                return owner.trigger.apply( owner, arguments );
-            };
-        }
-    
-        return CompBase;
-    });
-    /**
-     * @fileOverview Html5Runtime
-     */
-    define('runtime/html5/runtime',[
-        'base',
-        'runtime/runtime',
-        'runtime/compbase'
-    ], function( Base, Runtime, CompBase ) {
-    
-        var type = 'html5',
-            components = {};
-    
-        function Html5Runtime() {
-            var pool = {},
-                me = this,
-                destory = this.destory;
-    
-            Runtime.apply( me, arguments );
-            me.type = type;
-    
-    
-            // 杩欎釜鏂规硶鐨勮皟鐢ㄨ�咃紝瀹為檯涓婃槸RuntimeClient
-            me.exec = function( comp, fn/*, args...*/) {
-                var client = this,
-                    uid = client.uid,
-                    args = Base.slice( arguments, 2 ),
-                    instance;
-    
-                if ( components[ comp ] ) {
-                    instance = pool[ uid ] = pool[ uid ] ||
-                            new components[ comp ]( client, me );
-    
-                    if ( instance[ fn ] ) {
-                        return instance[ fn ].apply( instance, args );
-                    }
-                }
-            };
-    
-            me.destory = function() {
-                // @todo 鍒犻櫎姹犲瓙涓殑鎵�鏈夊疄渚�
-                return destory && destory.apply( this, arguments );
-            };
-        }
-    
-        Base.inherits( Runtime, {
-            constructor: Html5Runtime,
-    
-            // 涓嶉渶瑕佽繛鎺ュ叾浠栫▼搴忥紝鐩存帴鎵цcallback
-            init: function() {
-                var me = this;
-                setTimeout(function() {
-                    me.trigger('ready');
-                }, 1 );
-            }
-    
-        });
-    
-        // 娉ㄥ唽Components
-        Html5Runtime.register = function( name, component ) {
-            var klass = components[ name ] = Base.inherits( CompBase, component );
-            return klass;
-        };
-    
-        // 娉ㄥ唽html5杩愯鏃躲��
-        // 鍙湁鍦ㄦ敮鎸佺殑鍓嶆彁涓嬫敞鍐屻��
-        if ( window.Blob && window.FileReader && window.DataView ) {
-            Runtime.addRuntime( type, Html5Runtime );
-        }
-    
-        return Html5Runtime;
-    });
-    /**
-     * @fileOverview Blob Html瀹炵幇
-     */
-    define('runtime/html5/blob',[
-        'runtime/html5/runtime',
-        'lib/blob'
-    ], function( Html5Runtime, Blob ) {
-    
-        return Html5Runtime.register( 'Blob', {
-            slice: function( start, end ) {
-                var blob = this.owner.source,
-                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
-    
-                blob = slice.call( blob, start, end );
-    
-                return new Blob( this.getRuid(), blob );
-            }
-        });
-    });
-    /**
-     * @fileOverview FilePaste
-     */
-    define('runtime/html5/dnd',[
-        'base',
-        'runtime/html5/runtime',
-        'lib/file'
-    ], function( Base, Html5Runtime, File ) {
-    
-        var $ = Base.$,
-            prefix = 'webuploader-dnd-';
-    
-        return Html5Runtime.register( 'DragAndDrop', {
-            init: function() {
-                var elem = this.elem = this.options.container;
-    
-                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
-                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
-                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
-                this.dropHandler = Base.bindFn( this._dropHandler, this );
-                this.dndOver = false;
-    
-                elem.on( 'dragenter', this.dragEnterHandler );
-                elem.on( 'dragover', this.dragOverHandler );
-                elem.on( 'dragleave', this.dragLeaveHandler );
-                elem.on( 'drop', this.dropHandler );
-    
-                if ( this.options.disableGlobalDnd ) {
-                    $( document ).on( 'dragover', this.dragOverHandler );
-                    $( document ).on( 'drop', this.dropHandler );
-                }
-            },
-    
-            _dragEnterHandler: function( e ) {
-                var me = this,
-                    denied = me._denied || false,
-                    items;
-    
-                e = e.originalEvent || e;
-    
-                if ( !me.dndOver ) {
-                    me.dndOver = true;
-    
-                    // 娉ㄦ剰鍙湁 chrome 鏀寔銆�
-                    items = e.dataTransfer.items;
-    
-                    if ( items && items.length ) {
-                        me._denied = denied = !me.trigger( 'accept', items );
-                    }
-    
-                    me.elem.addClass( prefix + 'over' );
-                    me.elem[ denied ? 'addClass' :
-                            'removeClass' ]( prefix + 'denied' );
-                }
-    
-    
-                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
-    
-                return false;
-            },
-    
-            _dragOverHandler: function( e ) {
-                // 鍙鐞嗘鍐呯殑銆�
-                var parentElem = this.elem.parent().get( 0 );
-                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
-                    return false;
-                }
-    
-                clearTimeout( this._leaveTimer );
-                this._dragEnterHandler.call( this, e );
-    
-                return false;
-            },
-    
-            _dragLeaveHandler: function() {
-                var me = this,
-                    handler;
-    
-                handler = function() {
-                    me.dndOver = false;
-                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
-                };
-    
-                clearTimeout( me._leaveTimer );
-                me._leaveTimer = setTimeout( handler, 100 );
-                return false;
-            },
-    
-            _dropHandler: function( e ) {
-                var me = this,
-                    ruid = me.getRuid(),
-                    parentElem = me.elem.parent().get( 0 );
-    
-                // 鍙鐞嗘鍐呯殑銆�
-                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
-                    return false;
-                }
-    
-                me._getTansferFiles( e, function( results ) {
-                    me.trigger( 'drop', $.map( results, function( file ) {
-                        return new File( ruid, file );
-                    }) );
-                });
-    
-                me.dndOver = false;
-                me.elem.removeClass( prefix + 'over' );
-                return false;
-            },
-    
-            // 濡傛灉浼犲叆 callback 鍒欏幓鏌ョ湅鏂囦欢澶癸紝鍚﹀垯鍙褰撳墠鏂囦欢澶广��
-            _getTansferFiles: function( e, callback ) {
-                var results  = [],
-                    promises = [],
-                    items, files, dataTransfer, file, item, i, len, canAccessFolder;
-    
-                e = e.originalEvent || e;
-    
-                dataTransfer = e.dataTransfer;
-                items = dataTransfer.items;
-                files = dataTransfer.files;
-    
-                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
-    
-                for ( i = 0, len = files.length; i < len; i++ ) {
-                    file = files[ i ];
-                    item = items && items[ i ];
-    
-                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
-    
-                        promises.push( this._traverseDirectoryTree(
-                                item.webkitGetAsEntry(), results ) );
-                    } else {
-                        results.push( file );
-                    }
-                }
-    
-                Base.when.apply( Base, promises ).done(function() {
-    
-                    if ( !results.length ) {
-                        return;
-                    }
-    
-                    callback( results );
-                });
-            },
-    
-            _traverseDirectoryTree: function( entry, results ) {
-                var deferred = Base.Deferred(),
-                    me = this;
-    
-                if ( entry.isFile ) {
-                    entry.file(function( file ) {
-                        results.push( file );
-                        deferred.resolve();
-                    });
-                } else if ( entry.isDirectory ) {
-                    entry.createReader().readEntries(function( entries ) {
-                        var len = entries.length,
-                            promises = [],
-                            arr = [],    // 涓轰簡淇濊瘉椤哄簭銆�
-                            i;
-    
-                        for ( i = 0; i < len; i++ ) {
-                            promises.push( me._traverseDirectoryTree(
-                                    entries[ i ], arr ) );
-                        }
-    
-                        Base.when.apply( Base, promises ).then(function() {
-                            results.push.apply( results, arr );
-                            deferred.resolve();
-                        }, deferred.reject );
-                    });
-                }
-    
-                return deferred.promise();
-            },
-    
-            destroy: function() {
-                var elem = this.elem;
-    
-                elem.off( 'dragenter', this.dragEnterHandler );
-                elem.off( 'dragover', this.dragEnterHandler );
-                elem.off( 'dragleave', this.dragLeaveHandler );
-                elem.off( 'drop', this.dropHandler );
-    
-                if ( this.options.disableGlobalDnd ) {
-                    $( document ).off( 'dragover', this.dragOverHandler );
-                    $( document ).off( 'drop', this.dropHandler );
-                }
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview FilePaste
-     */
-    define('runtime/html5/filepaste',[
-        'base',
-        'runtime/html5/runtime',
-        'lib/file'
-    ], function( Base, Html5Runtime, File ) {
-    
-        return Html5Runtime.register( 'FilePaste', {
-            init: function() {
-                var opts = this.options,
-                    elem = this.elem = opts.container,
-                    accept = '.*',
-                    arr, i, len, item;
-    
-                // accetp鐨刴imeTypes涓敓鎴愬尮閰嶆鍒欍��
-                if ( opts.accept ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        item = opts.accept[ i ].mimeTypes;
-                        item && arr.push( item );
-                    }
-    
-                    if ( arr.length ) {
-                        accept = arr.join(',');
-                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
-                    }
-                }
-                this.accept = accept = new RegExp( accept, 'i' );
-                this.hander = Base.bindFn( this._pasteHander, this );
-                elem.on( 'paste', this.hander );
-            },
-    
-            _pasteHander: function( e ) {
-                var allowed = [],
-                    ruid = this.getRuid(),
-                    items, item, blob, i, len;
-    
-                e = e.originalEvent || e;
-                items = e.clipboardData.items;
-    
-                for ( i = 0, len = items.length; i < len; i++ ) {
-                    item = items[ i ];
-    
-                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
-                        continue;
-                    }
-    
-                    allowed.push( new File( ruid, blob ) );
-                }
-    
-                if ( allowed.length ) {
-                    // 涓嶉樆姝㈤潪鏂囦欢绮樿创锛堟枃瀛楃矘璐达級鐨勪簨浠跺啋娉�
-                    e.preventDefault();
-                    e.stopPropagation();
-                    this.trigger( 'paste', allowed );
-                }
-            },
-    
-            destroy: function() {
-                this.elem.off( 'paste', this.hander );
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview FilePicker
-     */
-    define('runtime/html5/filepicker',[
-        'base',
-        'runtime/html5/runtime'
-    ], function( Base, Html5Runtime ) {
-    
-        var $ = Base.$;
-    
-        return Html5Runtime.register( 'FilePicker', {
-            init: function() {
-                var container = this.getRuntime().getContainer(),
-                    me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    lable = $( document.createElement('label') ),
-                    input = $( document.createElement('input') ),
-                    arr, i, len, mouseHandler;
-    
-                input.attr( 'type', 'file' );
-                input.attr( 'name', opts.name );
-                input.addClass('webuploader-element-invisible');
-    
-                lable.on( 'click', function() {
-                    input.trigger('click');
-                });
-    
-                lable.css({
-                    opacity: 0,
-                    width: '100%',
-                    height: '100%',
-                    display: 'block',
-                    cursor: 'pointer',
-                    background: '#ffffff'
-                });
-    
-                if ( opts.multiple ) {
-                    input.attr( 'multiple', 'multiple' );
-                }
-    
-                // @todo Firefox涓嶆敮鎸佸崟鐙寚瀹氬悗缂�
-                if ( opts.accept && opts.accept.length > 0 ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        arr.push( opts.accept[ i ].mimeTypes );
-                    }
-    
-                    input.attr( 'accept', arr.join(',') );
-                }
-    
-                container.append( input );
-                container.append( lable );
-    
-                mouseHandler = function( e ) {
-                    owner.trigger( e.type );
-                };
-    
-                input.on( 'change', function( e ) {
-                    var fn = arguments.callee,
-                        clone;
-    
-                    me.files = e.target.files;
-    
-                    // reset input
-                    clone = this.cloneNode( true );
-                    this.parentNode.replaceChild( clone, this );
-    
-                    input.off();
-                    input = $( clone ).on( 'change', fn )
-                            .on( 'mouseenter mouseleave', mouseHandler );
-    
-                    owner.trigger('change');
-                });
-    
-                lable.on( 'mouseenter mouseleave', mouseHandler );
-    
-            },
-    
-    
-            getFiles: function() {
-                return this.files;
-            },
-    
-            destroy: function() {
-                // todo
-            }
-        });
-    });
-    /**
-     * Terms:
-     *
-     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
-     * @fileOverview Image鎺т欢
-     */
-    define('runtime/html5/util',[
-        'base'
-    ], function( Base ) {
-    
-        var urlAPI = window.createObjectURL && window ||
-                window.URL && URL.revokeObjectURL && URL ||
-                window.webkitURL,
-            createObjectURL = Base.noop,
-            revokeObjectURL = createObjectURL;
-    
-        if ( urlAPI ) {
-    
-            // 鏇村畨鍏ㄧ殑鏂瑰紡璋冪敤锛屾瘮濡俛ndroid閲岄潰灏辫兘鎶奵ontext鏀规垚鍏朵粬鐨勫璞°��
-            createObjectURL = function() {
-                return urlAPI.createObjectURL.apply( urlAPI, arguments );
-            };
-    
-            revokeObjectURL = function() {
-                return urlAPI.revokeObjectURL.apply( urlAPI, arguments );
-            };
-        }
-    
-        return {
-            createObjectURL: createObjectURL,
-            revokeObjectURL: revokeObjectURL,
-    
-            dataURL2Blob: function( dataURI ) {
-                var byteStr, intArray, ab, i, mimetype, parts;
-    
-                parts = dataURI.split(',');
-    
-                if ( ~parts[ 0 ].indexOf('base64') ) {
-                    byteStr = atob( parts[ 1 ] );
-                } else {
-                    byteStr = decodeURIComponent( parts[ 1 ] );
-                }
-    
-                ab = new ArrayBuffer( byteStr.length );
-                intArray = new Uint8Array( ab );
-    
-                for ( i = 0; i < byteStr.length; i++ ) {
-                    intArray[ i ] = byteStr.charCodeAt( i );
-                }
-    
-                mimetype = parts[ 0 ].split(':')[ 1 ].split(';')[ 0 ];
-    
-                return this.arrayBufferToBlob( ab, mimetype );
-            },
-    
-            dataURL2ArrayBuffer: function( dataURI ) {
-                var byteStr, intArray, i, parts;
-    
-                parts = dataURI.split(',');
-    
-                if ( ~parts[ 0 ].indexOf('base64') ) {
-                    byteStr = atob( parts[ 1 ] );
-                } else {
-                    byteStr = decodeURIComponent( parts[ 1 ] );
-                }
-    
-                intArray = new Uint8Array( byteStr.length );
-    
-                for ( i = 0; i < byteStr.length; i++ ) {
-                    intArray[ i ] = byteStr.charCodeAt( i );
-                }
-    
-                return intArray.buffer;
-            },
-    
-            arrayBufferToBlob: function( buffer, type ) {
-                var builder = window.BlobBuilder || window.WebKitBlobBuilder,
-                    bb;
-    
-                // android涓嶆敮鎸佺洿鎺ew Blob, 鍙兘鍊熷姪blobbuilder.
-                if ( builder ) {
-                    bb = new builder();
-                    bb.append( buffer );
-                    return bb.getBlob( type );
-                }
-    
-                return new Blob([ buffer ], type ? { type: type } : {} );
-            },
-    
-            // 鎶藉嚭鏉ヤ富瑕佹槸涓轰簡瑙e喅android涓嬮潰canvas.toDataUrl涓嶆敮鎸乯peg.
-            // 浣犲緱鍒扮殑缁撴灉鏄痯ng.
-            canvasToDataUrl: function( canvas, type, quality ) {
-                return canvas.toDataURL( type, quality / 100 );
-            },
-    
-            // imagemeat浼氬鍐欒繖涓柟娉曪紝濡傛灉鐢ㄦ埛閫夋嫨鍔犺浇閭d釜鏂囦欢浜嗙殑璇濄��
-            parseMeta: function( blob, callback ) {
-                callback( false, {});
-            },
-    
-            // imagemeat浼氬鍐欒繖涓柟娉曪紝濡傛灉鐢ㄦ埛閫夋嫨鍔犺浇閭d釜鏂囦欢浜嗙殑璇濄��
-            updateImageHead: function( data ) {
-                return data;
-            }
-        };
-    });
-    /**
-     * Terms:
-     *
-     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
-     * @fileOverview Image鎺т欢
-     */
-    define('runtime/html5/imagemeta',[
-        'runtime/html5/util'
-    ], function( Util ) {
-    
-        var api;
-    
-        api = {
-            parsers: {
-                0xffe1: []
-            },
-    
-            maxMetaDataSize: 262144,
-    
-            parse: function( blob, cb ) {
-                var me = this,
-                    fr = new FileReader();
-    
-                fr.onload = function() {
-                    cb( false, me._parse( this.result ) );
-                    fr = fr.onload = fr.onerror = null;
-                };
-    
-                fr.onerror = function( e ) {
-                    cb( e.message );
-                    fr = fr.onload = fr.onerror = null;
-                };
-    
-                blob = blob.slice( 0, me.maxMetaDataSize );
-                fr.readAsArrayBuffer( blob.getSource() );
-            },
-    
-            _parse: function( buffer, noParse ) {
-                if ( buffer.byteLength < 6 ) {
-                    return;
-                }
-    
-                var dataview = new DataView( buffer ),
-                    offset = 2,
-                    maxOffset = dataview.byteLength - 4,
-                    headLength = offset,
-                    ret = {},
-                    markerBytes, markerLength, parsers, i;
-    
-                if ( dataview.getUint16( 0 ) === 0xffd8 ) {
-    
-                    while ( offset < maxOffset ) {
-                        markerBytes = dataview.getUint16( offset );
-    
-                        if ( markerBytes >= 0xffe0 && markerBytes <= 0xffef ||
-                                markerBytes === 0xfffe ) {
-    
-                            markerLength = dataview.getUint16( offset + 2 ) + 2;
-    
-                            if ( offset + markerLength > dataview.byteLength ) {
-                                break;
-                            }
-    
-                            parsers = api.parsers[ markerBytes ];
-    
-                            if ( !noParse && parsers ) {
-                                for ( i = 0; i < parsers.length; i += 1 ) {
-                                    parsers[ i ].call( api, dataview, offset,
-                                            markerLength, ret );
-                                }
-                            }
-    
-                            offset += markerLength;
-                            headLength = offset;
-                        } else {
-                            break;
-                        }
-                    }
-    
-                    if ( headLength > 6 ) {
-                        if ( buffer.slice ) {
-                            ret.imageHead = buffer.slice( 2, headLength );
-                        } else {
-                            // Workaround for IE10, which does not yet
-                            // support ArrayBuffer.slice:
-                            ret.imageHead = new Uint8Array( buffer )
-                                    .subarray( 2, headLength );
-                        }
-                    }
-                }
-    
-                return ret;
-            },
-    
-            updateImageHead: function( buffer, head ) {
-                var data = this._parse( buffer, true ),
-                    buf1, buf2, bodyoffset;
-    
-    
-                bodyoffset = 2;
-                if ( data.imageHead ) {
-                    bodyoffset = 2 + data.imageHead.byteLength;
-                }
-    
-                if ( buffer.slice ) {
-                    buf2 = buffer.slice( bodyoffset );
-                } else {
-                    buf2 = new Uint8Array( buffer ).subarray( bodyoffset );
-                }
-    
-                buf1 = new Uint8Array( head.byteLength + 2 + buf2.byteLength );
-    
-                buf1[ 0 ] = 0xFF;
-                buf1[ 1 ] = 0xD8;
-                buf1.set( new Uint8Array( head ), 2 );
-                buf1.set( new Uint8Array( buf2 ), head.byteLength + 2 );
-    
-                return buf1.buffer;
-            }
-        };
-    
-        Util.parseMeta = function() {
-            return api.parse.apply( api, arguments );
-        };
-    
-        Util.updateImageHead = function() {
-            return api.updateImageHead.apply( api, arguments );
-        };
-    
-        return api;
-    });
-    /**
-     * 浠g爜鏉ヨ嚜浜庯細https://github.com/blueimp/JavaScript-Load-Image
-     * 鏆傛椂椤圭洰涓彧鐢ㄤ簡orientation.
-     *
-     * 鍘婚櫎浜� Exif Sub IFD Pointer, GPS Info IFD Pointer, Exif Thumbnail.
-     * @fileOverview EXIF瑙f瀽
-     */
-    
-    // Sample
-    // ====================================
-    // Make : Apple
-    // Model : iPhone 4S
-    // Orientation : 1
-    // XResolution : 72 [72/1]
-    // YResolution : 72 [72/1]
-    // ResolutionUnit : 2
-    // Software : QuickTime 7.7.1
-    // DateTime : 2013:09:01 22:53:55
-    // ExifIFDPointer : 190
-    // ExposureTime : 0.058823529411764705 [1/17]
-    // FNumber : 2.4 [12/5]
-    // ExposureProgram : Normal program
-    // ISOSpeedRatings : 800
-    // ExifVersion : 0220
-    // DateTimeOriginal : 2013:09:01 22:52:51
-    // DateTimeDigitized : 2013:09:01 22:52:51
-    // ComponentsConfiguration : YCbCr
-    // ShutterSpeedValue : 4.058893515764426
-    // ApertureValue : 2.5260688216892597 [4845/1918]
-    // BrightnessValue : -0.3126686601998395
-    // MeteringMode : Pattern
-    // Flash : Flash did not fire, compulsory flash mode
-    // FocalLength : 4.28 [107/25]
-    // SubjectArea : [4 values]
-    // FlashpixVersion : 0100
-    // ColorSpace : 1
-    // PixelXDimension : 2448
-    // PixelYDimension : 3264
-    // SensingMethod : One-chip color area sensor
-    // ExposureMode : 0
-    // WhiteBalance : Auto white balance
-    // FocalLengthIn35mmFilm : 35
-    // SceneCaptureType : Standard
-    define('runtime/html5/imagemeta/exif',[
-        'base',
-        'runtime/html5/imagemeta'
-    ], function( Base, ImageMeta ) {
-    
-        var EXIF = {};
-    
-        EXIF.ExifMap = function() {
-            return this;
-        };
-    
-        EXIF.ExifMap.prototype.map = {
-            'Orientation': 0x0112
-        };
-    
-        EXIF.ExifMap.prototype.get = function( id ) {
-            return this[ id ] || this[ this.map[ id ] ];
-        };
-    
-        EXIF.exifTagTypes = {
-            // byte, 8-bit unsigned int:
-            1: {
-                getValue: function( dataView, dataOffset ) {
-                    return dataView.getUint8( dataOffset );
-                },
-                size: 1
-            },
-    
-            // ascii, 8-bit byte:
-            2: {
-                getValue: function( dataView, dataOffset ) {
-                    return String.fromCharCode( dataView.getUint8( dataOffset ) );
-                },
-                size: 1,
-                ascii: true
-            },
-    
-            // short, 16 bit int:
-            3: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint16( dataOffset, littleEndian );
-                },
-                size: 2
-            },
-    
-            // long, 32 bit int:
-            4: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint32( dataOffset, littleEndian );
-                },
-                size: 4
-            },
-    
-            // rational = two long values,
-            // first is numerator, second is denominator:
-            5: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getUint32( dataOffset, littleEndian ) /
-                        dataView.getUint32( dataOffset + 4, littleEndian );
-                },
-                size: 8
-            },
-    
-            // slong, 32 bit signed int:
-            9: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getInt32( dataOffset, littleEndian );
-                },
-                size: 4
-            },
-    
-            // srational, two slongs, first is numerator, second is denominator:
-            10: {
-                getValue: function( dataView, dataOffset, littleEndian ) {
-                    return dataView.getInt32( dataOffset, littleEndian ) /
-                        dataView.getInt32( dataOffset + 4, littleEndian );
-                },
-                size: 8
-            }
-        };
-    
-        // undefined, 8-bit byte, value depending on field:
-        EXIF.exifTagTypes[ 7 ] = EXIF.exifTagTypes[ 1 ];
-    
-        EXIF.getExifValue = function( dataView, tiffOffset, offset, type, length,
-                littleEndian ) {
-    
-            var tagType = EXIF.exifTagTypes[ type ],
-                tagSize, dataOffset, values, i, str, c;
-    
-            if ( !tagType ) {
-                Base.log('Invalid Exif data: Invalid tag type.');
-                return;
-            }
-    
-            tagSize = tagType.size * length;
-    
-            // Determine if the value is contained in the dataOffset bytes,
-            // or if the value at the dataOffset is a pointer to the actual data:
-            dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32( offset + 8,
-                    littleEndian ) : (offset + 8);
-    
-            if ( dataOffset + tagSize > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid data offset.');
-                return;
-            }
-    
-            if ( length === 1 ) {
-                return tagType.getValue( dataView, dataOffset, littleEndian );
-            }
-    
-            values = [];
-    
-            for ( i = 0; i < length; i += 1 ) {
-                values[ i ] = tagType.getValue( dataView,
-                        dataOffset + i * tagType.size, littleEndian );
-            }
-    
-            if ( tagType.ascii ) {
-                str = '';
-    
-                // Concatenate the chars:
-                for ( i = 0; i < values.length; i += 1 ) {
-                    c = values[ i ];
-    
-                    // Ignore the terminating NULL byte(s):
-                    if ( c === '\u0000' ) {
-                        break;
-                    }
-                    str += c;
-                }
-    
-                return str;
-            }
-            return values;
-        };
-    
-        EXIF.parseExifTag = function( dataView, tiffOffset, offset, littleEndian,
-                data ) {
-    
-            var tag = dataView.getUint16( offset, littleEndian );
-            data.exif[ tag ] = EXIF.getExifValue( dataView, tiffOffset, offset,
-                    dataView.getUint16( offset + 2, littleEndian ),    // tag type
-                    dataView.getUint32( offset + 4, littleEndian ),    // tag length
-                    littleEndian );
-        };
-    
-        EXIF.parseExifTags = function( dataView, tiffOffset, dirOffset,
-                littleEndian, data ) {
-    
-            var tagsNumber, dirEndOffset, i;
-    
-            if ( dirOffset + 6 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid directory offset.');
-                return;
-            }
-    
-            tagsNumber = dataView.getUint16( dirOffset, littleEndian );
-            dirEndOffset = dirOffset + 2 + 12 * tagsNumber;
-    
-            if ( dirEndOffset + 4 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid directory size.');
-                return;
-            }
-    
-            for ( i = 0; i < tagsNumber; i += 1 ) {
-                this.parseExifTag( dataView, tiffOffset,
-                        dirOffset + 2 + 12 * i,    // tag offset
-                        littleEndian, data );
-            }
-    
-            // Return the offset to the next directory:
-            return dataView.getUint32( dirEndOffset, littleEndian );
-        };
-    
-        // EXIF.getExifThumbnail = function(dataView, offset, length) {
-        //     var hexData,
-        //         i,
-        //         b;
-        //     if (!length || offset + length > dataView.byteLength) {
-        //         Base.log('Invalid Exif data: Invalid thumbnail data.');
-        //         return;
-        //     }
-        //     hexData = [];
-        //     for (i = 0; i < length; i += 1) {
-        //         b = dataView.getUint8(offset + i);
-        //         hexData.push((b < 16 ? '0' : '') + b.toString(16));
-        //     }
-        //     return 'data:image/jpeg,%' + hexData.join('%');
-        // };
-    
-        EXIF.parseExifData = function( dataView, offset, length, data ) {
-    
-            var tiffOffset = offset + 10,
-                littleEndian, dirOffset;
-    
-            // Check for the ASCII code for "Exif" (0x45786966):
-            if ( dataView.getUint32( offset + 4 ) !== 0x45786966 ) {
-                // No Exif data, might be XMP data instead
-                return;
-            }
-            if ( tiffOffset + 8 > dataView.byteLength ) {
-                Base.log('Invalid Exif data: Invalid segment size.');
-                return;
-            }
-    
-            // Check for the two null bytes:
-            if ( dataView.getUint16( offset + 8 ) !== 0x0000 ) {
-                Base.log('Invalid Exif data: Missing byte alignment offset.');
-                return;
-            }
-    
-            // Check the byte alignment:
-            switch ( dataView.getUint16( tiffOffset ) ) {
-                case 0x4949:
-                    littleEndian = true;
-                    break;
-    
-                case 0x4D4D:
-                    littleEndian = false;
-                    break;
-    
-                default:
-                    Base.log('Invalid Exif data: Invalid byte alignment marker.');
-                    return;
-            }
-    
-            // Check for the TIFF tag marker (0x002A):
-            if ( dataView.getUint16( tiffOffset + 2, littleEndian ) !== 0x002A ) {
-                Base.log('Invalid Exif data: Missing TIFF marker.');
-                return;
-            }
-    
-            // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:
-            dirOffset = dataView.getUint32( tiffOffset + 4, littleEndian );
-            // Create the exif object to store the tags:
-            data.exif = new EXIF.ExifMap();
-            // Parse the tags of the main image directory and retrieve the
-            // offset to the next directory, usually the thumbnail directory:
-            dirOffset = EXIF.parseExifTags( dataView, tiffOffset,
-                    tiffOffset + dirOffset, littleEndian, data );
-    
-            // 灏濊瘯璇诲彇缂╃暐鍥�
-            // if ( dirOffset ) {
-            //     thumbnailData = {exif: {}};
-            //     dirOffset = EXIF.parseExifTags(
-            //         dataView,
-            //         tiffOffset,
-            //         tiffOffset + dirOffset,
-            //         littleEndian,
-            //         thumbnailData
-            //     );
-    
-            //     // Check for JPEG Thumbnail offset:
-            //     if (thumbnailData.exif[0x0201]) {
-            //         data.exif.Thumbnail = EXIF.getExifThumbnail(
-            //             dataView,
-            //             tiffOffset + thumbnailData.exif[0x0201],
-            //             thumbnailData.exif[0x0202] // Thumbnail data length
-            //         );
-            //     }
-            // }
-        };
-    
-        ImageMeta.parsers[ 0xffe1 ].push( EXIF.parseExifData );
-        return EXIF;
-    });
-    /**
-     * 杩欎釜鏂瑰紡鎬ц兘涓嶈锛屼絾鏄彲浠ヨВ鍐砤ndroid閲岄潰鐨則oDataUrl鐨刡ug
-     * android閲岄潰toDataUrl('image/jpege')寰楀埌鐨勭粨鏋滃嵈鏄痯ng.
-     *
-     * 鎵�浠ヨ繖閲屾病杈欙紝鍙兘鍊熷姪杩欎釜宸ュ叿
-     * @fileOverview jpeg encoder
-     */
-    define('runtime/html5/jpegencoder',[], function( require, exports, module ) {
-    
-        /*
-          Copyright (c) 2008, Adobe Systems Incorporated
-          All rights reserved.
-    
-          Redistribution and use in source and binary forms, with or without
-          modification, are permitted provided that the following conditions are
-          met:
-    
-          * Redistributions of source code must retain the above copyright notice,
-            this list of conditions and the following disclaimer.
-    
-          * Redistributions in binary form must reproduce the above copyright
-            notice, this list of conditions and the following disclaimer in the
-            documentation and/or other materials provided with the distribution.
-    
-          * Neither the name of Adobe Systems Incorporated nor the names of its
-            contributors may be used to endorse or promote products derived from
-            this software without specific prior written permission.
-    
-          THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-          IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-          THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-          PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-          CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-          EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-          PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-          PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-          LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-          NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-          SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-        */
-        /*
-        JPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009
-    
-        Basic GUI blocking jpeg encoder
-        */
-    
-        function JPEGEncoder(quality) {
-          var self = this;
-            var fround = Math.round;
-            var ffloor = Math.floor;
-            var YTable = new Array(64);
-            var UVTable = new Array(64);
-            var fdtbl_Y = new Array(64);
-            var fdtbl_UV = new Array(64);
-            var YDC_HT;
-            var UVDC_HT;
-            var YAC_HT;
-            var UVAC_HT;
-    
-            var bitcode = new Array(65535);
-            var category = new Array(65535);
-            var outputfDCTQuant = new Array(64);
-            var DU = new Array(64);
-            var byteout = [];
-            var bytenew = 0;
-            var bytepos = 7;
-    
-            var YDU = new Array(64);
-            var UDU = new Array(64);
-            var VDU = new Array(64);
-            var clt = new Array(256);
-            var RGB_YUV_TABLE = new Array(2048);
-            var currentQuality;
-    
-            var ZigZag = [
-                     0, 1, 5, 6,14,15,27,28,
-                     2, 4, 7,13,16,26,29,42,
-                     3, 8,12,17,25,30,41,43,
-                     9,11,18,24,31,40,44,53,
-                    10,19,23,32,39,45,52,54,
-                    20,22,33,38,46,51,55,60,
-                    21,34,37,47,50,56,59,61,
-                    35,36,48,49,57,58,62,63
-                ];
-    
-            var std_dc_luminance_nrcodes = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
-            var std_dc_luminance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
-            var std_ac_luminance_nrcodes = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
-            var std_ac_luminance_values = [
-                    0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
-                    0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
-                    0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
-                    0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
-                    0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
-                    0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
-                    0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
-                    0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
-                    0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
-                    0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
-                    0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
-                    0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
-                    0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
-                    0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
-                    0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
-                    0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
-                    0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
-                    0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
-                    0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
-                    0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
-                    0xf9,0xfa
-                ];
-    
-            var std_dc_chrominance_nrcodes = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
-            var std_dc_chrominance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
-            var std_ac_chrominance_nrcodes = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
-            var std_ac_chrominance_values = [
-                    0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
-                    0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
-                    0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
-                    0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
-                    0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
-                    0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
-                    0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
-                    0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
-                    0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
-                    0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
-                    0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
-                    0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
-                    0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
-                    0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
-                    0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
-                    0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
-                    0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
-                    0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
-                    0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
-                    0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
-                    0xf9,0xfa
-                ];
-    
-            function initQuantTables(sf){
-                    var YQT = [
-                        16, 11, 10, 16, 24, 40, 51, 61,
-                        12, 12, 14, 19, 26, 58, 60, 55,
-                        14, 13, 16, 24, 40, 57, 69, 56,
-                        14, 17, 22, 29, 51, 87, 80, 62,
-                        18, 22, 37, 56, 68,109,103, 77,
-                        24, 35, 55, 64, 81,104,113, 92,
-                        49, 64, 78, 87,103,121,120,101,
-                        72, 92, 95, 98,112,100,103, 99
-                    ];
-    
-                    for (var i = 0; i < 64; i++) {
-                        var t = ffloor((YQT[i]*sf+50)/100);
-                        if (t < 1) {
-                            t = 1;
-                        } else if (t > 255) {
-                            t = 255;
-                        }
-                        YTable[ZigZag[i]] = t;
-                    }
-                    var UVQT = [
-                        17, 18, 24, 47, 99, 99, 99, 99,
-                        18, 21, 26, 66, 99, 99, 99, 99,
-                        24, 26, 56, 99, 99, 99, 99, 99,
-                        47, 66, 99, 99, 99, 99, 99, 99,
-                        99, 99, 99, 99, 99, 99, 99, 99,
-                        99, 99, 99, 99, 99, 99, 99, 99,
-                        99, 99, 99, 99, 99, 99, 99, 99,
-                        99, 99, 99, 99, 99, 99, 99, 99
-                    ];
-                    for (var j = 0; j < 64; j++) {
-                        var u = ffloor((UVQT[j]*sf+50)/100);
-                        if (u < 1) {
-                            u = 1;
-                        } else if (u > 255) {
-                            u = 255;
-                        }
-                        UVTable[ZigZag[j]] = u;
-                    }
-                    var aasf = [
-                        1.0, 1.387039845, 1.306562965, 1.175875602,
-                        1.0, 0.785694958, 0.541196100, 0.275899379
-                    ];
-                    var k = 0;
-                    for (var row = 0; row < 8; row++)
-                    {
-                        for (var col = 0; col < 8; col++)
-                        {
-                            fdtbl_Y[k]  = (1.0 / (YTable [ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
-                            fdtbl_UV[k] = (1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
-                            k++;
-                        }
-                    }
-                }
-    
-                function computeHuffmanTbl(nrcodes, std_table){
-                    var codevalue = 0;
-                    var pos_in_table = 0;
-                    var HT = new Array();
-                    for (var k = 1; k <= 16; k++) {
-                        for (var j = 1; j <= nrcodes[k]; j++) {
-                            HT[std_table[pos_in_table]] = [];
-                            HT[std_table[pos_in_table]][0] = codevalue;
-                            HT[std_table[pos_in_table]][1] = k;
-                            pos_in_table++;
-                            codevalue++;
-                        }
-                        codevalue*=2;
-                    }
-                    return HT;
-                }
-    
-                function initHuffmanTbl()
-                {
-                    YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
-                    UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
-                    YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
-                    UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
-                }
-    
-                function initCategoryNumber()
-                {
-                    var nrlower = 1;
-                    var nrupper = 2;
-                    for (var cat = 1; cat <= 15; cat++) {
-                        //Positive numbers
-                        for (var nr = nrlower; nr<nrupper; nr++) {
-                            category[32767+nr] = cat;
-                            bitcode[32767+nr] = [];
-                            bitcode[32767+nr][1] = cat;
-                            bitcode[32767+nr][0] = nr;
-                        }
-                        //Negative numbers
-                        for (var nrneg =-(nrupper-1); nrneg<=-nrlower; nrneg++) {
-                            category[32767+nrneg] = cat;
-                            bitcode[32767+nrneg] = [];
-                            bitcode[32767+nrneg][1] = cat;
-                            bitcode[32767+nrneg][0] = nrupper-1+nrneg;
-                        }
-                        nrlower <<= 1;
-                        nrupper <<= 1;
-                    }
-                }
-    
-                function initRGBYUVTable() {
-                    for(var i = 0; i < 256;i++) {
-                        RGB_YUV_TABLE[i]            =  19595 * i;
-                        RGB_YUV_TABLE[(i+ 256)>>0]  =  38470 * i;
-                        RGB_YUV_TABLE[(i+ 512)>>0]  =   7471 * i + 0x8000;
-                        RGB_YUV_TABLE[(i+ 768)>>0]  = -11059 * i;
-                        RGB_YUV_TABLE[(i+1024)>>0]  = -21709 * i;
-                        RGB_YUV_TABLE[(i+1280)>>0]  =  32768 * i + 0x807FFF;
-                        RGB_YUV_TABLE[(i+1536)>>0]  = -27439 * i;
-                        RGB_YUV_TABLE[(i+1792)>>0]  = - 5329 * i;
-                    }
-                }
-    
-                // IO functions
-                function writeBits(bs)
-                {
-                    var value = bs[0];
-                    var posval = bs[1]-1;
-                    while ( posval >= 0 ) {
-                        if (value & (1 << posval) ) {
-                            bytenew |= (1 << bytepos);
-                        }
-                        posval--;
-                        bytepos--;
-                        if (bytepos < 0) {
-                            if (bytenew == 0xFF) {
-                                writeByte(0xFF);
-                                writeByte(0);
-                            }
-                            else {
-                                writeByte(bytenew);
-                            }
-                            bytepos=7;
-                            bytenew=0;
-                        }
-                    }
-                }
-    
-                function writeByte(value)
-                {
-                    byteout.push(clt[value]); // write char directly instead of converting later
-                }
-    
-                function writeWord(value)
-                {
-                    writeByte((value>>8)&0xFF);
-                    writeByte((value   )&0xFF);
-                }
-    
-                // DCT & quantization core
-                function fDCTQuant(data, fdtbl)
-                {
-                    var d0, d1, d2, d3, d4, d5, d6, d7;
-                    /* Pass 1: process rows. */
-                    var dataOff=0;
-                    var i;
-                    var I8 = 8;
-                    var I64 = 64;
-                    for (i=0; i<I8; ++i)
-                    {
-                        d0 = data[dataOff];
-                        d1 = data[dataOff+1];
-                        d2 = data[dataOff+2];
-                        d3 = data[dataOff+3];
-                        d4 = data[dataOff+4];
-                        d5 = data[dataOff+5];
-                        d6 = data[dataOff+6];
-                        d7 = data[dataOff+7];
-    
-                        var tmp0 = d0 + d7;
-                        var tmp7 = d0 - d7;
-                        var tmp1 = d1 + d6;
-                        var tmp6 = d1 - d6;
-                        var tmp2 = d2 + d5;
-                        var tmp5 = d2 - d5;
-                        var tmp3 = d3 + d4;
-                        var tmp4 = d3 - d4;
-    
-                        /* Even part */
-                        var tmp10 = tmp0 + tmp3;    /* phase 2 */
-                        var tmp13 = tmp0 - tmp3;
-                        var tmp11 = tmp1 + tmp2;
-                        var tmp12 = tmp1 - tmp2;
-    
-                        data[dataOff] = tmp10 + tmp11; /* phase 3 */
-                        data[dataOff+4] = tmp10 - tmp11;
-    
-                        var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
-                        data[dataOff+2] = tmp13 + z1; /* phase 5 */
-                        data[dataOff+6] = tmp13 - z1;
-    
-                        /* Odd part */
-                        tmp10 = tmp4 + tmp5; /* phase 2 */
-                        tmp11 = tmp5 + tmp6;
-                        tmp12 = tmp6 + tmp7;
-    
-                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
-                        var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
-                        var z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
-                        var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
-                        var z3 = tmp11 * 0.707106781; /* c4 */
-    
-                        var z11 = tmp7 + z3;    /* phase 5 */
-                        var z13 = tmp7 - z3;
-    
-                        data[dataOff+5] = z13 + z2; /* phase 6 */
-                        data[dataOff+3] = z13 - z2;
-                        data[dataOff+1] = z11 + z4;
-                        data[dataOff+7] = z11 - z4;
-    
-                        dataOff += 8; /* advance pointer to next row */
-                    }
-    
-                    /* Pass 2: process columns. */
-                    dataOff = 0;
-                    for (i=0; i<I8; ++i)
-                    {
-                        d0 = data[dataOff];
-                        d1 = data[dataOff + 8];
-                        d2 = data[dataOff + 16];
-                        d3 = data[dataOff + 24];
-                        d4 = data[dataOff + 32];
-                        d5 = data[dataOff + 40];
-                        d6 = data[dataOff + 48];
-                        d7 = data[dataOff + 56];
-    
-                        var tmp0p2 = d0 + d7;
-                        var tmp7p2 = d0 - d7;
-                        var tmp1p2 = d1 + d6;
-                        var tmp6p2 = d1 - d6;
-                        var tmp2p2 = d2 + d5;
-                        var tmp5p2 = d2 - d5;
-                        var tmp3p2 = d3 + d4;
-                        var tmp4p2 = d3 - d4;
-    
-                        /* Even part */
-                        var tmp10p2 = tmp0p2 + tmp3p2;  /* phase 2 */
-                        var tmp13p2 = tmp0p2 - tmp3p2;
-                        var tmp11p2 = tmp1p2 + tmp2p2;
-                        var tmp12p2 = tmp1p2 - tmp2p2;
-    
-                        data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */
-                        data[dataOff+32] = tmp10p2 - tmp11p2;
-    
-                        var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */
-                        data[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */
-                        data[dataOff+48] = tmp13p2 - z1p2;
-    
-                        /* Odd part */
-                        tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */
-                        tmp11p2 = tmp5p2 + tmp6p2;
-                        tmp12p2 = tmp6p2 + tmp7p2;
-    
-                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
-                        var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */
-                        var z2p2 = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */
-                        var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */
-                        var z3p2 = tmp11p2 * 0.707106781; /* c4 */
-    
-                        var z11p2 = tmp7p2 + z3p2;  /* phase 5 */
-                        var z13p2 = tmp7p2 - z3p2;
-    
-                        data[dataOff+40] = z13p2 + z2p2; /* phase 6 */
-                        data[dataOff+24] = z13p2 - z2p2;
-                        data[dataOff+ 8] = z11p2 + z4p2;
-                        data[dataOff+56] = z11p2 - z4p2;
-    
-                        dataOff++; /* advance pointer to next column */
-                    }
-    
-                    // Quantize/descale the coefficients
-                    var fDCTQuant;
-                    for (i=0; i<I64; ++i)
-                    {
-                        // Apply the quantization and scaling factor & Round to nearest integer
-                        fDCTQuant = data[i]*fdtbl[i];
-                        outputfDCTQuant[i] = (fDCTQuant > 0.0) ? ((fDCTQuant + 0.5)|0) : ((fDCTQuant - 0.5)|0);
-                        //outputfDCTQuant[i] = fround(fDCTQuant);
-    
-                    }
-                    return outputfDCTQuant;
-                }
-    
-                function writeAPP0()
-                {
-                    writeWord(0xFFE0); // marker
-                    writeWord(16); // length
-                    writeByte(0x4A); // J
-                    writeByte(0x46); // F
-                    writeByte(0x49); // I
-                    writeByte(0x46); // F
-                    writeByte(0); // = "JFIF",'\0'
-                    writeByte(1); // versionhi
-                    writeByte(1); // versionlo
-                    writeByte(0); // xyunits
-                    writeWord(1); // xdensity
-                    writeWord(1); // ydensity
-                    writeByte(0); // thumbnwidth
-                    writeByte(0); // thumbnheight
-                }
-    
-                function writeSOF0(width, height)
-                {
-                    writeWord(0xFFC0); // marker
-                    writeWord(17);   // length, truecolor YUV JPG
-                    writeByte(8);    // precision
-                    writeWord(height);
-                    writeWord(width);
-                    writeByte(3);    // nrofcomponents
-                    writeByte(1);    // IdY
-                    writeByte(0x11); // HVY
-                    writeByte(0);    // QTY
-                    writeByte(2);    // IdU
-                    writeByte(0x11); // HVU
-                    writeByte(1);    // QTU
-                    writeByte(3);    // IdV
-                    writeByte(0x11); // HVV
-                    writeByte(1);    // QTV
-                }
-    
-                function writeDQT()
-                {
-                    writeWord(0xFFDB); // marker
-                    writeWord(132);    // length
-                    writeByte(0);
-                    for (var i=0; i<64; i++) {
-                        writeByte(YTable[i]);
-                    }
-                    writeByte(1);
-                    for (var j=0; j<64; j++) {
-                        writeByte(UVTable[j]);
-                    }
-                }
-    
-                function writeDHT()
-                {
-                    writeWord(0xFFC4); // marker
-                    writeWord(0x01A2); // length
-    
-                    writeByte(0); // HTYDCinfo
-                    for (var i=0; i<16; i++) {
-                        writeByte(std_dc_luminance_nrcodes[i+1]);
-                    }
-                    for (var j=0; j<=11; j++) {
-                        writeByte(std_dc_luminance_values[j]);
-                    }
-    
-                    writeByte(0x10); // HTYACinfo
-                    for (var k=0; k<16; k++) {
-                        writeByte(std_ac_luminance_nrcodes[k+1]);
-                    }
-                    for (var l=0; l<=161; l++) {
-                        writeByte(std_ac_luminance_values[l]);
-                    }
-    
-                    writeByte(1); // HTUDCinfo
-                    for (var m=0; m<16; m++) {
-                        writeByte(std_dc_chrominance_nrcodes[m+1]);
-                    }
-                    for (var n=0; n<=11; n++) {
-                        writeByte(std_dc_chrominance_values[n]);
-                    }
-    
-                    writeByte(0x11); // HTUACinfo
-                    for (var o=0; o<16; o++) {
-                        writeByte(std_ac_chrominance_nrcodes[o+1]);
-                    }
-                    for (var p=0; p<=161; p++) {
-                        writeByte(std_ac_chrominance_values[p]);
-                    }
-                }
-    
-                function writeSOS()
-                {
-                    writeWord(0xFFDA); // marker
-                    writeWord(12); // length
-                    writeByte(3); // nrofcomponents
-                    writeByte(1); // IdY
-                    writeByte(0); // HTY
-                    writeByte(2); // IdU
-                    writeByte(0x11); // HTU
-                    writeByte(3); // IdV
-                    writeByte(0x11); // HTV
-                    writeByte(0); // Ss
-                    writeByte(0x3f); // Se
-                    writeByte(0); // Bf
-                }
-    
-                function processDU(CDU, fdtbl, DC, HTDC, HTAC){
-                    var EOB = HTAC[0x00];
-                    var M16zeroes = HTAC[0xF0];
-                    var pos;
-                    var I16 = 16;
-                    var I63 = 63;
-                    var I64 = 64;
-                    var DU_DCT = fDCTQuant(CDU, fdtbl);
-                    //ZigZag reorder
-                    for (var j=0;j<I64;++j) {
-                        DU[ZigZag[j]]=DU_DCT[j];
-                    }
-                    var Diff = DU[0] - DC; DC = DU[0];
-                    //Encode DC
-                    if (Diff==0) {
-                        writeBits(HTDC[0]); // Diff might be 0
-                    } else {
-                        pos = 32767+Diff;
-                        writeBits(HTDC[category[pos]]);
-                        writeBits(bitcode[pos]);
-                    }
-                    //Encode ACs
-                    var end0pos = 63; // was const... which is crazy
-                    for (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {};
-                    //end0pos = first element in reverse order !=0
-                    if ( end0pos == 0) {
-                        writeBits(EOB);
-                        return DC;
-                    }
-                    var i = 1;
-                    var lng;
-                    while ( i <= end0pos ) {
-                        var startpos = i;
-                        for (; (DU[i]==0) && (i<=end0pos); ++i) {}
-                        var nrzeroes = i-startpos;
-                        if ( nrzeroes >= I16 ) {
-                            lng = nrzeroes>>4;
-                            for (var nrmarker=1; nrmarker <= lng; ++nrmarker)
-                                writeBits(M16zeroes);
-                            nrzeroes = nrzeroes&0xF;
-                        }
-                        pos = 32767+DU[i];
-                        writeBits(HTAC[(nrzeroes<<4)+category[pos]]);
-                        writeBits(bitcode[pos]);
-                        i++;
-                    }
-                    if ( end0pos != I63 ) {
-                        writeBits(EOB);
-                    }
-                    return DC;
-                }
-    
-                function initCharLookupTable(){
-                    var sfcc = String.fromCharCode;
-                    for(var i=0; i < 256; i++){ ///// ACHTUNG // 255
-                        clt[i] = sfcc(i);
-                    }
-                }
-    
-                this.encode = function(image,quality) // image data object
-                {
-                    // var time_start = new Date().getTime();
-    
-                    if(quality) setQuality(quality);
-    
-                    // Initialize bit writer
-                    byteout = new Array();
-                    bytenew=0;
-                    bytepos=7;
-    
-                    // Add JPEG headers
-                    writeWord(0xFFD8); // SOI
-                    writeAPP0();
-                    writeDQT();
-                    writeSOF0(image.width,image.height);
-                    writeDHT();
-                    writeSOS();
-    
-    
-                    // Encode 8x8 macroblocks
-                    var DCY=0;
-                    var DCU=0;
-                    var DCV=0;
-    
-                    bytenew=0;
-                    bytepos=7;
-    
-    
-                    this.encode.displayName = "_encode_";
-    
-                    var imageData = image.data;
-                    var width = image.width;
-                    var height = image.height;
-    
-                    var quadWidth = width*4;
-                    var tripleWidth = width*3;
-    
-                    var x, y = 0;
-                    var r, g, b;
-                    var start,p, col,row,pos;
-                    while(y < height){
-                        x = 0;
-                        while(x < quadWidth){
-                        start = quadWidth * y + x;
-                        p = start;
-                        col = -1;
-                        row = 0;
-    
-                        for(pos=0; pos < 64; pos++){
-                            row = pos >> 3;// /8
-                            col = ( pos & 7 ) * 4; // %8
-                            p = start + ( row * quadWidth ) + col;
-    
-                            if(y+row >= height){ // padding bottom
-                                p-= (quadWidth*(y+1+row-height));
-                            }
-    
-                            if(x+col >= quadWidth){ // padding right
-                                p-= ((x+col) - quadWidth +4)
-                            }
-    
-                            r = imageData[ p++ ];
-                            g = imageData[ p++ ];
-                            b = imageData[ p++ ];
-    
-    
-                            /* // calculate YUV values dynamically
-                            YDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80
-                            UDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));
-                            VDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));
-                            */
-    
-                            // use lookup table (slightly faster)
-                            YDU[pos] = ((RGB_YUV_TABLE[r]             + RGB_YUV_TABLE[(g +  256)>>0] + RGB_YUV_TABLE[(b +  512)>>0]) >> 16)-128;
-                            UDU[pos] = ((RGB_YUV_TABLE[(r +  768)>>0] + RGB_YUV_TABLE[(g + 1024)>>0] + RGB_YUV_TABLE[(b + 1280)>>0]) >> 16)-128;
-                            VDU[pos] = ((RGB_YUV_TABLE[(r + 1280)>>0] + RGB_YUV_TABLE[(g + 1536)>>0] + RGB_YUV_TABLE[(b + 1792)>>0]) >> 16)-128;
-    
-                        }
-    
-                        DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
-                        DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
-                        DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
-                        x+=32;
-                        }
-                        y+=8;
-                    }
-    
-    
-                    ////////////////////////////////////////////////////////////////
-    
-                    // Do the bit alignment of the EOI marker
-                    if ( bytepos >= 0 ) {
-                        var fillbits = [];
-                        fillbits[1] = bytepos+1;
-                        fillbits[0] = (1<<(bytepos+1))-1;
-                        writeBits(fillbits);
-                    }
-    
-                    writeWord(0xFFD9); //EOI
-    
-                    var jpegDataUri = 'data:image/jpeg;base64,' + btoa(byteout.join(''));
-    
-                    byteout = [];
-    
-                    // benchmarking
-                    // var duration = new Date().getTime() - time_start;
-                    // console.log('Encoding time: '+ currentQuality + 'ms');
-                    //
-    
-                    return jpegDataUri
-            }
-    
-            function setQuality(quality){
-                if (quality <= 0) {
-                    quality = 1;
-                }
-                if (quality > 100) {
-                    quality = 100;
-                }
-    
-                if(currentQuality == quality) return // don't recalc if unchanged
-    
-                var sf = 0;
-                if (quality < 50) {
-                    sf = Math.floor(5000 / quality);
-                } else {
-                    sf = Math.floor(200 - quality*2);
-                }
-    
-                initQuantTables(sf);
-                currentQuality = quality;
-                // console.log('Quality set to: '+quality +'%');
-            }
-    
-            function init(){
-                // var time_start = new Date().getTime();
-                if(!quality) quality = 50;
-                // Create tables
-                initCharLookupTable()
-                initHuffmanTbl();
-                initCategoryNumber();
-                initRGBYUVTable();
-    
-                setQuality(quality);
-                // var duration = new Date().getTime() - time_start;
-                // console.log('Initialization '+ duration + 'ms');
-            }
-    
-            init();
-    
-        };
-    
-        JPEGEncoder.encode = function( data, quality ) {
-            var encoder = new JPEGEncoder( quality );
-    
-            return encoder.encode( data );
-        }
-    
-        return JPEGEncoder;
-    });
-    /**
-     * @fileOverview Fix android canvas.toDataUrl bug.
-     */
-    define('runtime/html5/androidpatch',[
-        'runtime/html5/util',
-        'runtime/html5/jpegencoder',
-        'base'
-    ], function( Util, encoder, Base ) {
-        var origin = Util.canvasToDataUrl,
-            supportJpeg;
-    
-        Util.canvasToDataUrl = function( canvas, type, quality ) {
-            var ctx, w, h, fragement, parts;
-    
-            // 闈瀉ndroid鎵嬫満鐩存帴璺宠繃銆�
-            if ( !Base.os.android ) {
-                return origin.apply( null, arguments );
-            }
-    
-            // 妫�娴嬫槸鍚anvas鏀寔jpeg瀵煎嚭锛屾牴鎹暟鎹牸寮忔潵鍒ゆ柇銆�
-            // JPEG 鍓嶄袱浣嶅垎鍒槸锛�255, 216
-            if ( type === 'image/jpeg' && typeof supportJpeg === 'undefined' ) {
-                fragement = origin.apply( null, arguments );
-    
-                parts = fragement.split(',');
-    
-                if ( ~parts[ 0 ].indexOf('base64') ) {
-                    fragement = atob( parts[ 1 ] );
-                } else {
-                    fragement = decodeURIComponent( parts[ 1 ] );
-                }
-    
-                fragement = fragement.substring( 0, 2 );
-    
-                supportJpeg = fragement.charCodeAt( 0 ) === 255 &&
-                        fragement.charCodeAt( 1 ) === 216;
-            }
-    
-            // 鍙湁鍦╝ndroid鐜涓嬫墠淇
-            if ( type === 'image/jpeg' && !supportJpeg ) {
-                w = canvas.width;
-                h = canvas.height;
-                ctx = canvas.getContext('2d');
-    
-                return encoder.encode( ctx.getImageData( 0, 0, w, h ), quality );
-            }
-    
-            return origin.apply( null, arguments );
-        };
-    });
-    /**
-     * @fileOverview Image
-     */
-    define('runtime/html5/image',[
-        'base',
-        'runtime/html5/runtime',
-        'runtime/html5/util'
-    ], function( Base, Html5Runtime, Util ) {
-    
-        var BLANK = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D';
-    
-        return Html5Runtime.register( 'Image', {
-    
-            // flag: 鏍囪鏄惁琚慨鏀硅繃銆�
-            modified: false,
-    
-            init: function() {
-                var me = this,
-                    img = new Image();
-    
-                img.onload = function() {
-    
-                    me._info = {
-                        type: me.type,
-                        width: this.width,
-                        height: this.height
-                    };
-    
-                    // 璇诲彇meta淇℃伅銆�
-                    if ( !me._metas && 'image/jpeg' === me.type ) {
-                        Util.parseMeta( me._blob, function( error, ret ) {
-                            me._metas = ret;
-                            me.owner.trigger('load');
-                        });
-                    } else {
-                        me.owner.trigger('load');
-                    }
-                };
-    
-                img.onerror = function() {
-                    me.owner.trigger('error');
-                };
-    
-                me._img = img;
-            },
-    
-            loadFromBlob: function( blob ) {
-                var me = this,
-                    img = me._img;
-    
-                me._blob = blob;
-                me.type = blob.type;
-                img.src = Util.createObjectURL( blob.getSource() );
-                me.owner.once( 'load', function() {
-                    Util.revokeObjectURL( img.src );
-                });
-            },
-    
-            resize: function( width, height ) {
-                var canvas = this._canvas ||
-                        (this._canvas = document.createElement('canvas'));
-    
-                this._resize( this._img, canvas, width, height );
-                this._blob = null;    // 娌$敤浜嗭紝鍙互鍒犳帀浜嗐��
-                this.modified = true;
-                this.owner.trigger('complete');
-            },
-    
-            getAsBlob: function( type ) {
-                var blob = this._blob,
-                    opts = this.options,
-                    canvas;
-    
-                type = type || this.type;
-    
-                // blob闇�瑕侀噸鏂扮敓鎴愩��
-                if ( this.modified || this.type !== type ) {
-                    canvas = this._canvas;
-    
-                    if ( type === 'image/jpeg' ) {
-    
-                        blob = Util.canvasToDataUrl( canvas, 'image/jpeg',
-                                opts.quality );
-    
-                        if ( opts.preserveHeaders && this._metas &&
-                                this._metas.imageHead ) {
-    
-                            blob = Util.dataURL2ArrayBuffer( blob );
-                            blob = Util.updateImageHead( blob,
-                                    this._metas.imageHead );
-                            blob = Util.arrayBufferToBlob( blob, type );
-                            return blob;
-                        }
-                    } else {
-                        blob = Util.canvasToDataUrl( canvas, type );
-                    }
-    
-                    blob = Util.dataURL2Blob( blob );
-                }
-    
-                return blob;
-            },
-    
-            getAsDataUrl: function( type ) {
-                var opts = this.options;
-    
-                type = type || this.type;
-    
-                if ( type === 'image/jpeg' ) {
-                    return Util.canvasToDataUrl( this._canvas, type, opts.quality );
-                } else {
-                    return this._canvas.toDataURL( type );
-                }
-            },
-    
-            getOrientation: function() {
-                return this._metas && this._metas.exif &&
-                        this._metas.exif.get('Orientation') || 1;
-            },
-    
-            info: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._info = val;
-                    return this;
-                }
-    
-                // getter
-                return this._info;
-            },
-    
-            meta: function( val ) {
-    
-                // setter
-                if ( val ) {
-                    this._meta = val;
-                    return this;
-                }
-    
-                // getter
-                return this._meta;
-            },
-    
-            destroy: function() {
-                var canvas = this._canvas;
-                this._img.onload = null;
-    
-                if ( canvas ) {
-                    canvas.getContext('2d')
-                            .clearRect( 0, 0, canvas.width, canvas.height );
-                    canvas.width = canvas.height = 0;
-                    this._canvas = null;
-                }
-    
-                // 閲婃斁鍐呭瓨銆傞潪甯搁噸瑕侊紝鍚﹀垯閲婃斁涓嶄簡image鐨勫唴瀛樸��
-                this._img.src = BLANK;
-                this._img = this._blob = null;
-            },
-    
-            _resize: function( img, cvs, width, height ) {
-                var opts = this.options,
-                    naturalWidth = img.width,
-                    naturalHeight = img.height,
-                    orientation = this.getOrientation(),
-                    scale, w, h, x, y;
-    
-                // values that require 90 degree rotation
-                if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
-    
-                    // 浜ゆ崲width, height鐨勫�笺��
-                    width ^= height;
-                    height ^= width;
-                    width ^= height;
-                }
-    
-                scale = Math[ opts.crop ? 'max' : 'min' ]( width / naturalWidth,
-                        height / naturalHeight );
-    
-                // 涓嶅厑璁告斁澶с��
-                opts.allowMagnify || (scale = Math.min( 1, scale ));
-    
-                w = naturalWidth * scale;
-                h = naturalHeight * scale;
-    
-                if ( opts.crop ) {
-                    cvs.width = width;
-                    cvs.height = height;
-                } else {
-                    cvs.width = w;
-                    cvs.height = h;
-                }
-    
-                x = (cvs.width - w) / 2;
-                y = (cvs.height - h) / 2;
-    
-                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
-    
-                this._renderImageToCanvas( cvs, img, x, y, w, h );
-            },
-    
-            _rotate2Orientaion: function( canvas, orientation ) {
-                var width = canvas.width,
-                    height = canvas.height,
-                    ctx = canvas.getContext('2d');
-    
-                switch ( orientation ) {
-                    case 5:
-                    case 6:
-                    case 7:
-                    case 8:
-                        canvas.width = height;
-                        canvas.height = width;
-                        break;
-                }
-    
-                switch ( orientation ) {
-                    case 2:    // horizontal flip
-                        ctx.translate( width, 0 );
-                        ctx.scale( -1, 1 );
-                        break;
-    
-                    case 3:    // 180 rotate left
-                        ctx.translate( width, height );
-                        ctx.rotate( Math.PI );
-                        break;
-    
-                    case 4:    // vertical flip
-                        ctx.translate( 0, height );
-                        ctx.scale( 1, -1 );
-                        break;
-    
-                    case 5:    // vertical flip + 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.scale( 1, -1 );
-                        break;
-    
-                    case 6:    // 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.translate( 0, -height );
-                        break;
-    
-                    case 7:    // horizontal flip + 90 rotate right
-                        ctx.rotate( 0.5 * Math.PI );
-                        ctx.translate( width, -height );
-                        ctx.scale( -1, 1 );
-                        break;
-    
-                    case 8:    // 90 rotate left
-                        ctx.rotate( -0.5 * Math.PI );
-                        ctx.translate( -width, 0 );
-                        break;
-                }
-            },
-    
-            // https://github.com/stomita/ios-imagefile-megapixel/
-            // blob/master/src/megapix-image.js
-            _renderImageToCanvas: (function() {
-    
-                // 濡傛灉涓嶆槸ios, 涓嶉渶瑕佽繖涔堝鏉傦紒
-                if ( !Base.os.ios ) {
-                    return function( canvas, img, x, y, w, h ) {
-                        canvas.getContext('2d').drawImage( img, x, y, w, h );
-                    };
-                }
-    
-                /**
-                 * Detecting vertical squash in loaded image.
-                 * Fixes a bug which squash image vertically while drawing into
-                 * canvas for some images.
-                 */
-                function detectVerticalSquash( img, iw, ih ) {
-                    var canvas = document.createElement('canvas'),
-                        ctx = canvas.getContext('2d'),
-                        sy = 0,
-                        ey = ih,
-                        py = ih,
-                        data, alpha, ratio;
-    
-    
-                    canvas.width = 1;
-                    canvas.height = ih;
-                    ctx.drawImage( img, 0, 0 );
-                    data = ctx.getImageData( 0, 0, 1, ih ).data;
-    
-                    // search image edge pixel position in case
-                    // it is squashed vertically.
-                    while ( py > sy ) {
-                        alpha = data[ (py - 1) * 4 + 3 ];
-    
-                        if ( alpha === 0 ) {
-                            ey = py;
-                        } else {
-                            sy = py;
-                        }
-    
-                        py = (ey + sy) >> 1;
-                    }
-    
-                    ratio = (py / ih);
-                    return (ratio === 0) ? 1 : ratio;
-                }
-    
-                // fix ie7 bug
-                // http://stackoverflow.com/questions/11929099/
-                // html5-canvas-drawimage-ratio-bug-ios
-                if ( Base.os.ios >= 7 ) {
-                    return function( canvas, img, x, y, w, h ) {
-                        var iw = img.naturalWidth,
-                            ih = img.naturalHeight,
-                            vertSquashRatio = detectVerticalSquash( img, iw, ih );
-    
-                        return canvas.getContext('2d').drawImage( img, 0, 0,
-                            iw * vertSquashRatio, ih * vertSquashRatio,
-                            x, y, w, h );
-                    };
-                }
-    
-                /**
-                 * Detect subsampling in loaded image.
-                 * In iOS, larger images than 2M pixels may be
-                 * subsampled in rendering.
-                 */
-                function detectSubsampling( img ) {
-                    var iw = img.naturalWidth,
-                        ih = img.naturalHeight,
-                        canvas, ctx;
-    
-                    // subsampling may happen overmegapixel image
-                    if ( iw * ih > 1024 * 1024 ) {
-                        canvas = document.createElement('canvas');
-                        canvas.width = canvas.height = 1;
-                        ctx = canvas.getContext('2d');
-                        ctx.drawImage( img, -iw + 1, 0 );
-    
-                        // subsampled image becomes half smaller in rendering size.
-                        // check alpha channel value to confirm image is covering
-                        // edge pixel or not. if alpha value is 0
-                        // image is not covering, hence subsampled.
-                        return ctx.getImageData( 0, 0, 1, 1 ).data[ 3 ] === 0;
-                    } else {
-                        return false;
-                    }
-                }
-    
-    
-                return function( canvas, img, x, y, width, height ) {
-                    var iw = img.naturalWidth,
-                        ih = img.naturalHeight,
-                        ctx = canvas.getContext('2d'),
-                        subsampled = detectSubsampling( img ),
-                        doSquash = this.type === 'image/jpeg',
-                        d = 1024,
-                        sy = 0,
-                        dy = 0,
-                        tmpCanvas, tmpCtx, vertSquashRatio, dw, dh, sx, dx;
-    
-                    if ( subsampled ) {
-                        iw /= 2;
-                        ih /= 2;
-                    }
-    
-                    ctx.save();
-                    tmpCanvas = document.createElement('canvas');
-                    tmpCanvas.width = tmpCanvas.height = d;
-    
-                    tmpCtx = tmpCanvas.getContext('2d');
-                    vertSquashRatio = doSquash ?
-                            detectVerticalSquash( img, iw, ih ) : 1;
-    
-                    dw = Math.ceil( d * width / iw );
-                    dh = Math.ceil( d * height / ih / vertSquashRatio );
-    
-                    while ( sy < ih ) {
-                        sx = 0;
-                        dx = 0;
-                        while ( sx < iw ) {
-                            tmpCtx.clearRect( 0, 0, d, d );
-                            tmpCtx.drawImage( img, -sx, -sy );
-                            ctx.drawImage( tmpCanvas, 0, 0, d, d,
-                                    x + dx, y + dy, dw, dh );
-                            sx += d;
-                            dx += dw;
-                        }
-                        sy += d;
-                        dy += dh;
-                    }
-                    ctx.restore();
-                    tmpCanvas = tmpCtx = null;
-                };
-            })()
-        });
-    });
-    /**
-     * @fileOverview Transport
-     * @todo 鏀寔chunked浼犺緭锛屼紭鍔匡細
-     * 鍙互灏嗗ぇ鏂囦欢鍒嗘垚灏忓潡锛屾尐涓紶杈擄紝鍙互鎻愰珮澶ф枃浠舵垚鍔熺巼锛屽綋澶辫触鐨勬椂鍊欙紝涔熷彧闇�瑕侀噸浼犻偅灏忛儴鍒嗭紝
-     * 鑰屼笉闇�瑕侀噸澶村啀浼犱竴娆°�傚彟澶栨柇鐐圭画浼犱篃闇�瑕佺敤chunked鏂瑰紡銆�
-     */
-    define('runtime/html5/transport',[
-        'base',
-        'runtime/html5/runtime'
-    ], function( Base, Html5Runtime ) {
-    
-        var noop = Base.noop,
-            $ = Base.$;
-    
-        return Html5Runtime.register( 'Transport', {
-            init: function() {
-                this._status = 0;
-                this._response = null;
-            },
-    
-            send: function() {
-                var owner = this.owner,
-                    opts = this.options,
-                    xhr = this._initAjax(),
-                    blob = owner._blob,
-                    server = opts.server,
-                    formData, binary, fr;
-    
-                if ( opts.sendAsBinary ) {
-                    server += (/\?/.test( server ) ? '&' : '?') +
-                            $.param( owner._formData );
-    
-                    binary = blob.getSource();
-                } else {
-                    formData = new FormData();
-                    $.each( owner._formData, function( k, v ) {
-                        formData.append( k, v );
-                    });
-    
-                    formData.append( opts.fileVal, blob.getSource(),
-                            opts.filename || owner._formData.name || '' );
-                }
-    
-                if ( opts.withCredentials && 'withCredentials' in xhr ) {
-                    xhr.open( opts.method, server, true );
-                    xhr.withCredentials = true;
-                } else {
-                    xhr.open( opts.method, server );
-                }
-    
-                this._setRequestHeader( xhr, opts.headers );
-    
-                if ( binary ) {
-                    xhr.overrideMimeType('application/octet-stream');
-    
-                    // android鐩存帴鍙戦�乥lob浼氬鑷存湇鍔$鎺ユ敹鍒扮殑鏄┖鏂囦欢銆�
-                    // bug璇︽儏銆�
-                    // https://code.google.com/p/android/issues/detail?id=39882
-                    // 鎵�浠ュ厛鐢╢ileReader璇诲彇鍑烘潵鍐嶉�氳繃arraybuffer鐨勬柟寮忓彂閫併��
-                    if ( Base.os.android ) {
-                        fr = new FileReader();
-    
-                        fr.onload = function() {
-                            xhr.send( this.result );
-                            fr = fr.onload = null;
-                        };
-    
-                        fr.readAsArrayBuffer( binary );
-                    } else {
-                        xhr.send( binary );
-                    }
-                } else {
-                    xhr.send( formData );
-                }
-            },
-    
-            getResponse: function() {
-                return this._response;
-            },
-    
-            getResponseAsJson: function() {
-                return this._parseJson( this._response );
-            },
-    
-            getStatus: function() {
-                return this._status;
-            },
-    
-            abort: function() {
-                var xhr = this._xhr;
-    
-                if ( xhr ) {
-                    xhr.upload.onprogress = noop;
-                    xhr.onreadystatechange = noop;
-                    xhr.abort();
-    
-                    this._xhr = xhr = null;
-                }
-            },
-    
-            destroy: function() {
-                this.abort();
-            },
-    
-            _initAjax: function() {
-                var me = this,
-                    xhr = new XMLHttpRequest(),
-                    opts = this.options;
-    
-                if ( opts.withCredentials && !('withCredentials' in xhr) &&
-                        typeof XDomainRequest !== 'undefined' ) {
-                    xhr = new XDomainRequest();
-                }
-    
-                xhr.upload.onprogress = function( e ) {
-                    var percentage = 0;
-    
-                    if ( e.lengthComputable ) {
-                        percentage = e.loaded / e.total;
-                    }
-    
-                    return me.trigger( 'progress', percentage );
-                };
-    
-                xhr.onreadystatechange = function() {
-    
-                    if ( xhr.readyState !== 4 ) {
-                        return;
-                    }
-    
-                    xhr.upload.onprogress = noop;
-                    xhr.onreadystatechange = noop;
-                    me._xhr = null;
-                    me._status = xhr.status;
-    
-                    if ( xhr.status >= 200 && xhr.status < 300 ) {
-                        me._response = xhr.responseText;
-                        return me.trigger('load');
-                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
-                        me._response = xhr.responseText;
-                        return me.trigger( 'error', 'server' );
-                    }
-    
-    
-                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
-                };
-    
-                me._xhr = xhr;
-                return xhr;
-            },
-    
-            _setRequestHeader: function( xhr, headers ) {
-                $.each( headers, function( key, val ) {
-                    xhr.setRequestHeader( key, val );
-                });
-            },
-    
-            _parseJson: function( str ) {
-                var json;
-    
-                try {
-                    json = JSON.parse( str );
-                } catch ( ex ) {
-                    json = {};
-                }
-    
-                return json;
-            }
-        });
-    });
-    /**
-     * @fileOverview FlashRuntime
-     */
-    define('runtime/flash/runtime',[
-        'base',
-        'runtime/runtime',
-        'runtime/compbase'
-    ], function( Base, Runtime, CompBase ) {
-    
-        var $ = Base.$,
-            type = 'flash',
-            components = {};
-    
-    
-        function getFlashVersion() {
-            var version;
-    
-            try {
-                version = navigator.plugins[ 'Shockwave Flash' ];
-                version = version.description;
-            } catch ( ex ) {
-                try {
-                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
-                            .GetVariable('$version');
-                } catch ( ex2 ) {
-                    version = '0.0';
-                }
-            }
-            version = version.match( /\d+/g );
-            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
-        }
-    
-        function FlashRuntime() {
-            var pool = {},
-                clients = {},
-                destory = this.destory,
-                me = this,
-                jsreciver = Base.guid('webuploader_');
-    
-            Runtime.apply( me, arguments );
-            me.type = type;
-    
-    
-            // 杩欎釜鏂规硶鐨勮皟鐢ㄨ�咃紝瀹為檯涓婃槸RuntimeClient
-            me.exec = function( comp, fn/*, args...*/ ) {
-                var client = this,
-                    uid = client.uid,
-                    args = Base.slice( arguments, 2 ),
-                    instance;
-    
-                clients[ uid ] = client;
-    
-                if ( components[ comp ] ) {
-                    if ( !pool[ uid ] ) {
-                        pool[ uid ] = new components[ comp ]( client, me );
-                    }
-    
-                    instance = pool[ uid ];
-    
-                    if ( instance[ fn ] ) {
-                        return instance[ fn ].apply( instance, args );
-                    }
-                }
-    
-                return me.flashExec.apply( client, arguments );
-            };
-    
-            function handler( evt, obj ) {
-                var type = evt.type || evt,
-                    parts, uid;
-    
-                parts = type.split('::');
-                uid = parts[ 0 ];
-                type = parts[ 1 ];
-    
-                // console.log.apply( console, arguments );
-    
-                if ( type === 'Ready' && uid === me.uid ) {
-                    me.trigger('ready');
-                } else if ( clients[ uid ] ) {
-                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
-                }
-    
-                // Base.log( evt, obj );
-            }
-    
-            // flash鐨勬帴鍙楀櫒銆�
-            window[ jsreciver ] = function() {
-                var args = arguments;
-    
-                // 涓轰簡鑳芥崟鑾峰緱鍒般��
-                setTimeout(function() {
-                    handler.apply( null, args );
-                }, 1 );
-            };
-    
-            this.jsreciver = jsreciver;
-    
-            this.destory = function() {
-                // @todo 鍒犻櫎姹犲瓙涓殑鎵�鏈夊疄渚�
-                return destory && destory.apply( this, arguments );
-            };
-    
-            this.flashExec = function( comp, fn ) {
-                var flash = me.getFlash(),
-                    args = Base.slice( arguments, 2 );
-    
-                return flash.exec( this.uid, comp, fn, args );
-            };
-    
-            // @todo
-        }
-    
-        Base.inherits( Runtime, {
-            constructor: FlashRuntime,
-    
-            init: function() {
-                var container = this.getContainer(),
-                    opts = this.options,
-                    html;
-    
-                // if not the minimal height, shims are not initialized
-                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
-                container.css({
-                    position: 'absolute',
-                    top: '-8px',
-                    left: '-8px',
-                    width: '9px',
-                    height: '9px',
-                    overflow: 'hidden'
-                });
-    
-                // insert flash object
-                html = '<object id="' + this.uid + '" type="application/' +
-                        'x-shockwave-flash" data="' +  opts.swf + '" ';
-    
-                if ( Base.browser.ie ) {
-                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
-                }
-    
-                html += 'width="100%" height="100%" style="outline:0">'  +
-                    '<param name="movie" value="' + opts.swf + '" />' +
-                    '<param name="flashvars" value="uid=' + this.uid +
-                    '&jsreciver=' + this.jsreciver + '" />' +
-                    '<param name="wmode" value="transparent" />' +
-                    '<param name="allowscriptaccess" value="always" />' +
-                '</object>';
-    
-                container.html( html );
-            },
-    
-            getFlash: function() {
-                if ( this._flash ) {
-                    return this._flash;
-                }
-    
-                this._flash = $( '#' + this.uid ).get( 0 );
-                return this._flash;
-            }
-    
-        });
-    
-        FlashRuntime.register = function( name, component ) {
-            component = components[ name ] = Base.inherits( CompBase, $.extend({
-    
-                // @todo fix this later
-                flashExec: function() {
-                    var owner = this.owner,
-                        runtime = this.getRuntime();
-    
-                    return runtime.flashExec.apply( owner, arguments );
-                }
-            }, component ) );
-    
-            return component;
-        };
-    
-        if ( getFlashVersion() >= 11.4 ) {
-            Runtime.addRuntime( type, FlashRuntime );
-        }
-    
-        return FlashRuntime;
-    });
-    /**
-     * @fileOverview FilePicker
-     */
-    define('runtime/flash/filepicker',[
-        'base',
-        'runtime/flash/runtime'
-    ], function( Base, FlashRuntime ) {
-        var $ = Base.$;
-    
-        return FlashRuntime.register( 'FilePicker', {
-            init: function( opts ) {
-                var copy = $.extend({}, opts ),
-                    len, i;
-    
-                // 淇Flash鍐嶆病鏈夎缃畉itle鐨勬儏鍐典笅鏃犳硶寮瑰嚭flash鏂囦欢閫夋嫨妗嗙殑bug.
-                len = copy.accept && copy.accept.length;
-                for (  i = 0; i < len; i++ ) {
-                    if ( !copy.accept[ i ].title ) {
-                        copy.accept[ i ].title = 'Files';
-                    }
-                }
-    
-                delete copy.button;
-                delete copy.container;
-    
-                this.flashExec( 'FilePicker', 'init', copy );
-            },
-    
-            destroy: function() {
-                // todo
-            }
-        });
-    });
-    /**
-     * @fileOverview 鍥剧墖鍘嬬缉
-     */
-    define('runtime/flash/image',[
-        'runtime/flash/runtime'
-    ], function( FlashRuntime ) {
-    
-        return FlashRuntime.register( 'Image', {
-            // init: function( options ) {
-            //     var owner = this.owner;
-    
-            //     this.flashExec( 'Image', 'init', options );
-            //     owner.on( 'load', function() {
-            //         debugger;
-            //     });
-            // },
-    
-            loadFromBlob: function( blob ) {
-                var owner = this.owner;
-    
-                owner.info() && this.flashExec( 'Image', 'info', owner.info() );
-                owner.meta() && this.flashExec( 'Image', 'meta', owner.meta() );
-    
-                this.flashExec( 'Image', 'loadFromBlob', blob.uid );
-            }
-        });
-    });
-    /**
-     * @fileOverview  Transport flash瀹炵幇
-     */
-    define('runtime/flash/transport',[
-        'base',
-        'runtime/flash/runtime',
-        'runtime/client'
-    ], function( Base, FlashRuntime, RuntimeClient ) {
-        var $ = Base.$;
-    
-        return FlashRuntime.register( 'Transport', {
-            init: function() {
-                this._status = 0;
-                this._response = null;
-                this._responseJson = null;
-            },
-    
-            send: function() {
-                var owner = this.owner,
-                    opts = this.options,
-                    xhr = this._initAjax(),
-                    blob = owner._blob,
-                    server = opts.server,
-                    binary;
-    
-                xhr.connectRuntime( blob.ruid );
-    
-                if ( opts.sendAsBinary ) {
-                    server += (/\?/.test( server ) ? '&' : '?') +
-                            $.param( owner._formData );
-    
-                    binary = blob.uid;
-                } else {
-                    $.each( owner._formData, function( k, v ) {
-                        xhr.exec( 'append', k, v );
-                    });
-    
-                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
-                            opts.filename || owner._formData.name || '' );
-                }
-    
-                this._setRequestHeader( xhr, opts.headers );
-                xhr.exec( 'send', {
-                    method: opts.method,
-                    url: server
-                }, binary );
-            },
-    
-            getStatus: function() {
-                return this._status;
-            },
-    
-            getResponse: function() {
-                return this._response;
-            },
-    
-            getResponseAsJson: function() {
-                return this._responseJson;
-            },
-    
-            abort: function() {
-                var xhr = this._xhr;
-    
-                if ( xhr ) {
-                    xhr.exec('abort');
-                    xhr.destroy();
-                    this._xhr = xhr = null;
-                }
-            },
-    
-            destroy: function() {
-                this.abort();
-            },
-    
-            _initAjax: function() {
-                var me = this,
-                    xhr = new RuntimeClient('XMLHttpRequest');
-    
-                xhr.on( 'uploadprogress progress', function( e ) {
-                    return me.trigger( 'progress', e.loaded / e.total );
-                });
-    
-                xhr.on( 'load', function() {
-                    var status = xhr.exec('getStatus'),
-                        err = '';
-    
-                    xhr.off();
-                    me._xhr = null;
-    
-                    if ( status >= 200 && status < 300 ) {
-                        me._response = xhr.exec('getResponse');
-                        me._responseJson = xhr.exec('getResponseAsJson');
-                    } else if ( status >= 500 && status < 600 ) {
-                        me._response = xhr.exec('getResponse');
-                        me._responseJson = xhr.exec('getResponseAsJson');
-                        err = 'server';
-                    } else {
-                        err = 'http';
-                    }
-    
-                    xhr.destroy();
-                    xhr = null;
-    
-                    return err ? me.trigger( 'error', err ) : me.trigger('load');
-                });
-    
-                xhr.on( 'error', function() {
-                    xhr.off();
-                    me._xhr = null;
-                    me.trigger( 'error', 'http' );
-                });
-    
-                me._xhr = xhr;
-                return xhr;
-            },
-    
-            _setRequestHeader: function( xhr, headers ) {
-                $.each( headers, function( key, val ) {
-                    xhr.exec( 'setRequestHeader', key, val );
-                });
-            }
-        });
-    });
-    /**
-     * @fileOverview 瀹屽叏鐗堟湰銆�
-     */
-    define('preset/all',[
-        'base',
-    
-        // widgets
-        'widgets/filednd',
-        'widgets/filepaste',
-        'widgets/filepicker',
-        'widgets/image',
-        'widgets/queue',
-        'widgets/runtime',
-        'widgets/upload',
-        'widgets/validator',
-    
-        // runtimes
-        // html5
-        'runtime/html5/blob',
-        'runtime/html5/dnd',
-        'runtime/html5/filepaste',
-        'runtime/html5/filepicker',
-        'runtime/html5/imagemeta/exif',
-        'runtime/html5/androidpatch',
-        'runtime/html5/image',
-        'runtime/html5/transport',
-    
-        // flash
-        'runtime/flash/filepicker',
-        'runtime/flash/image',
-        'runtime/flash/transport'
-    ], function( Base ) {
-        return Base;
-    });
-    define('webuploader',[
-        'preset/all'
-    ], function( preset ) {
-        return preset;
-    });
-    return require('webuploader');
-});
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.min.js b/server/public/ueditor/third-party/webuploader/webuploader.min.js
deleted file mode 100644
index 60d976a..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* WebUploader 0.1.2 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}},j=b(a,f,e);i(j),"object"==typeof module&&"object"==typeof module.exports?module.exports=j:"function"==typeof define&&define.amd?define([],j):(c=a.WebUploader,a.WebUploader=j,a.WebUploader.noConflict=function(){a.WebUploader=c})}(this,function(a,b,c){return b("dollar-third",[],function(){return a.jQuery||a.Zepto}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.2",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",getDimension:"get-dimension",addButton:"add-btn",getRuntimeType:"get-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return{successNum:a.numOfSuccess,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.parentNode.removeChild(this.__container),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/dnd",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},d.options,a),a.container=e(a.container),a.container.length&&c.call(this,"DragAndDrop")}var e=a.$;return d.options={accept:null,disableGlobalDnd:!1},a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})},destroy:function(){this.disconnectRuntime()}}),b.installTo(d.prototype),d}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g={},h=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):g},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[];return e.each(h,function(c,d){b.push(new d(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,h,i,j,k=0,l=this._widgets,m=l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],h=f.invoke(b,d),h!==g&&(a.isPromise(h)?o.push(h):n.push(h));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return setTimeout(function(){b.resolve.apply(b,c)},1),b.promise()})[j](e||a.noop)):n[0]}}),b.register=d.register=function(b,c){var f,g={init:"init"};return 1===arguments.length?(c=b,c.responseMap=g):c.responseMap=e.extend(g,b),f=a.inherits(d,c),h.push(f),f},d}),b("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(a,b,c){var d=a.$;return b.options.dnd="",b.register({init:function(b){if(b.dnd&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{disableGlobalDnd:b.disableGlobalDnd,container:b.dnd,accept:b.accept});return e=new c(h),e.once("ready",g.resolve),e.on("drop",function(a){f.request("add-file",[a])}),e.on("accept",function(a){return f.owner.trigger("dndAccept",a)}),e.init(),g.promise()}}})}),b("lib/filepaste",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},a),a.container=e(a.container||document.body),c.call(this,"FilePaste")}var e=a.$;return a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})},destroy:function(){this.exec("destroy"),this.disconnectRuntime(),this.off()}}),b.installTo(d.prototype),d}),b("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(a,b,c){var d=a.$;return b.register({init:function(b){if(b.paste&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{container:b.paste,accept:b.accept});return e=new c(h),e.once("ready",g.resolve),e.on("paste",function(a){f.owner.request("add-file",[a])}),e.init(),g.promise()}}})}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,b.call(d,"Blob"),this.uid=c.uid||this.uid,this.type=c.type||"",this.size=c.size||0,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;b.apply(this,arguments),this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&this.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(this.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),!this.type&&~"jpg,jpeg,png,gif,bmp".indexOf(f)&&(this.type="image/"+("jpg"===f?"jpeg":f)),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString()}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("鎸夐挳鎸囧畾閿欒");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var b=this,c=b.options,e=c.button;e.addClass("webuploader-pick"),b.on("all",function(a){var g;switch(a){case"mouseenter":e.addClass("webuploader-pick-hover");break;case"mouseleave":e.removeClass("webuploader-pick-hover");break;case"change":g=b.exec("getFiles"),b.trigger("select",f.map(g,function(a){return a=new d(b.getRuid(),a),a._refer=c.container,a}),c.container)}}),b.connectRuntime(c,function(){b.refresh(),b.exec("init",c),b.trigger("ready")}),f(a).on("resize",function(){b.refresh()})},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){this.runtime&&(this.exec("destroy"),this.disconnectRuntime())}}),e}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({"add-btn":"addButton",refresh:"refresh",disable:"disable",enable:"enable"},{init:function(a){return this.pickers=[],a.pick&&this.addButton(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addButton:function(b){var e,f,g,h=this,i=h.options,j=i.accept;if(b)return g=a.Deferred(),d.isPlainObject(b)||(b={id:b}),e=d.extend({},b,{accept:d.isPlainObject(j)?[j]:j,swf:i.swf,runtimeOrder:i.runtimeOrder}),f=new c(e),f.once("ready",g.resolve),f.on("select",function(a){h.owner.request("add-file",[a])}),f.init(),this.pickers.push(f),g.promise()},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!0,allowMagnify:!0},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({"make-thumb":"makeThumb","before-send-file":"compressImage"},{makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(){b(!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},compressImage:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||307200;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){b._info=b._info||d.info(),b._meta=b._meta||d.meta(),d.resize(g.width,g.height)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,a.size<c&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destory:function(){delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)})),a.setStatus(f.QUEUED)},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({"sort-files":"sortFiles","add-file":"addFiles","get-file":"getFile","fetch-file":"fetchFile","get-stats":"getStats","get-files":"getFiles","remove-file":"removeFile",retry:"retry",reset:"reset","accept-file":"acceptFile"},{init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||a.size<6||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFiles:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&b.request("start-upload")},getStats:function(){return this.stats},removeFile:function(a){var b=this;a=a.id?a:b.queue.getFile(a),a.setStatus(i.CANCELLED),b.owner.trigger("fileDequeued",a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.queue=new c,this.stats=this.queue.stats}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({"predict-runtime-type":"predictRuntmeType"},{init:function(){if(!this.predictRuntmeType())throw Error("Runtime Error")},predictRuntmeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){for(var c,d=[],e=a.source,f=e.size,g=b?Math.ceil(f/b):1,h=0,i=0;g>i;)c=Math.min(b,f-h),d.push({file:a,start:h,end:b?h+c:f,total:f,chunks:g,chunk:i++}),h+=c;return a.blocks=d.concat(),a.remaning=d.length,{file:a,has:function(){return!!d.length},fetch:function(){return d.shift()}}}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:null}),b.register({"start-upload":"start","stop-upload":"stop","skip-file":"skipFile","is-in-progress":"isInProgress"},{init:function(){var b=this.owner;this.runing=!1,this.pool=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},start:function(){var b=this;f.each(b.request("get-files",h.INVALID),function(){b.request("remove-file",this)}),b.runing||(b.runing=!0,f.each(b.pool,function(a,c){var d=c.file;d.getStatus()===h.INTERRUPT&&(d.setStatus(h.PROGRESS),b._trigged=!1,c.transport&&c.transport.send())}),b._trigged=!1,b.owner.trigger("startUpload"),a.nextTick(b.__tick))},stop:function(a){var b=this;b.runing!==!1&&(b.runing=!1,a&&f.each(b.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),b.owner.trigger("stopUpload"))},isInProgress:function(){return!!this.runing},getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d.getStats().numOfQueue||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_nextBlock:function(){var a,b,c=this,d=c._act,f=c.options;return d&&d.has()&&d.file.getStatus()===h.PROGRESS?(f.prepareNextFile&&!c.pending.length&&c._prepareNextFile(),d.fetch()):c.runing?(!c.pending.length&&c.getStats().numOfQueue&&c._prepareNextFile(),a=c.pending.shift(),b=function(a){return a?(d=e(a,f.chunked?f.chunkSize:0),c._act=d,d.fetch()):null},g(a)?a[a.pipe?"pipe":"then"](b):b(a)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.QUEUED?(b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),c):b._finishFile(c)}),a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d._popBlock(b),a.nextTick(d.__tick))})},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){var c=0,d=0;c=b.percentage=a,b.chunks>1&&(f.each(k.blocks,function(a,b){d+=(b.percentage||0)*(b.end-b.start)}),c=d/k.size),i.trigger("uploadProgress",k,c||0)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({init:function(){var a=this;e.each(f,function(){this.call(a.owner)})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=b.fileNumLimit>>0,e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("uploadFinished",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=b.fileSizeLimit>>0,e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("uploadFinished",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}))}),d}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destory;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destory=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(a,b,c){var d=a.$,e="webuploader-dnd-";return b.register("DragAndDrop",{init:function(){var b=this.elem=this.options.container;this.dragEnterHandler=a.bindFn(this._dragEnterHandler,this),this.dragOverHandler=a.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=a.bindFn(this._dragLeaveHandler,this),this.dropHandler=a.bindFn(this._dropHandler,this),this.dndOver=!1,b.on("dragenter",this.dragEnterHandler),b.on("dragover",this.dragOverHandler),b.on("dragleave",this.dragLeaveHandler),b.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).on("dragover",this.dragOverHandler),d(document).on("drop",this.dropHandler))
-},_dragEnterHandler:function(a){var b,c=this,d=c._denied||!1;return a=a.originalEvent||a,c.dndOver||(c.dndOver=!0,b=a.dataTransfer.items,b&&b.length&&(c._denied=d=!c.trigger("accept",b)),c.elem.addClass(e+"over"),c.elem[d?"addClass":"removeClass"](e+"denied")),a.dataTransfer.dropEffect=d?"none":"copy",!1},_dragOverHandler:function(a){var b=this.elem.parent().get(0);return b&&!d.contains(b,a.currentTarget)?!1:(clearTimeout(this._leaveTimer),this._dragEnterHandler.call(this,a),!1)},_dragLeaveHandler:function(){var a,b=this;return a=function(){b.dndOver=!1,b.elem.removeClass(e+"over "+e+"denied")},clearTimeout(b._leaveTimer),b._leaveTimer=setTimeout(a,100),!1},_dropHandler:function(a){var b=this,f=b.getRuid(),g=b.elem.parent().get(0);return g&&!d.contains(g,a.currentTarget)?!1:(b._getTansferFiles(a,function(a){b.trigger("drop",d.map(a,function(a){return new c(f,a)}))}),b.dndOver=!1,b.elem.removeClass(e+"over"),!1)},_getTansferFiles:function(b,c){var d,e,f,g,h,i,j,k,l=[],m=[];for(b=b.originalEvent||b,f=b.dataTransfer,d=f.items,e=f.files,k=!(!d||!d[0].webkitGetAsEntry),i=0,j=e.length;j>i;i++)g=e[i],h=d&&d[i],k&&h.webkitGetAsEntry().isDirectory?m.push(this._traverseDirectoryTree(h.webkitGetAsEntry(),l)):l.push(g);a.when.apply(a,m).done(function(){l.length&&c(l)})},_traverseDirectoryTree:function(b,c){var d=a.Deferred(),e=this;return b.isFile?b.file(function(a){c.push(a),d.resolve()}):b.isDirectory&&b.createReader().readEntries(function(b){var f,g=b.length,h=[],i=[];for(f=0;g>f;f++)h.push(e._traverseDirectoryTree(b[f],i));a.when.apply(a,h).then(function(){c.push.apply(c,i),d.resolve()},d.reject)}),d.promise()},destroy:function(){var a=this.elem;a.off("dragenter",this.dragEnterHandler),a.off("dragover",this.dragEnterHandler),a.off("dragleave",this.dragLeaveHandler),a.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).off("dragover",this.dragOverHandler),d(document).off("drop",this.dropHandler))}})}),b("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(a,b,c){return b.register("FilePaste",{init:function(){var b,c,d,e,f=this.options,g=this.elem=f.container,h=".*";if(f.accept){for(b=[],c=0,d=f.accept.length;d>c;c++)e=f.accept[c].mimeTypes,e&&b.push(e);b.length&&(h=b.join(","),h=h.replace(/,/g,"|").replace(/\*/g,".*"))}this.accept=h=new RegExp(h,"i"),this.hander=a.bindFn(this._pasteHander,this),g.on("paste",this.hander)},_pasteHander:function(a){var b,d,e,f,g,h=[],i=this.getRuid();for(a=a.originalEvent||a,b=a.clipboardData.items,f=0,g=b.length;g>f;f++)d=b[f],"file"===d.kind&&(e=d.getAsFile())&&h.push(new c(i,e));h.length&&(a.preventDefault(),a.stopPropagation(),this.trigger("paste",h))},destroy:function(){this.elem.off("paste",this.hander)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=c(document.createElement("label")),k=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){}})}),b("runtime/html5/util",["base"],function(b){var c=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL,d=b.noop,e=d;return c&&(d=function(){return c.createObjectURL.apply(c,arguments)},e=function(){return c.revokeObjectURL.apply(c,arguments)}),{createObjectURL:d,revokeObjectURL:e,dataURL2Blob:function(a){var b,c,d,e,f,g;for(g=a.split(","),b=~g[0].indexOf("base64")?atob(g[1]):decodeURIComponent(g[1]),d=new ArrayBuffer(b.length),c=new Uint8Array(d),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return f=g[0].split(":")[1].split(";")[0],this.arrayBufferToBlob(d,f)},dataURL2ArrayBuffer:function(a){var b,c,d,e;for(e=a.split(","),b=~e[0].indexOf("base64")?atob(e[1]):decodeURIComponent(e[1]),c=new Uint8Array(b.length),d=0;d<b.length;d++)c[d]=b.charCodeAt(d);return c.buffer},arrayBufferToBlob:function(b,c){var d,e=a.BlobBuilder||a.WebKitBlobBuilder;return e?(d=new e,d.append(b),d.getBlob(c)):new Blob([b],c?{type:c}:{})},canvasToDataUrl:function(a,b,c){return a.toDataURL(b,c/100)},parseMeta:function(a,b){b(!1,{})},updateImageHead:function(a){return a}}}),b("runtime/html5/imagemeta",["runtime/html5/util"],function(a){var b;return b={parsers:{65505:[]},maxMetaDataSize:262144,parse:function(a,b){var c=this,d=new FileReader;d.onload=function(){b(!1,c._parse(this.result)),d=d.onload=d.onerror=null},d.onerror=function(a){b(a.message),d=d.onload=d.onerror=null},a=a.slice(0,c.maxMetaDataSize),d.readAsArrayBuffer(a.getSource())},_parse:function(a,c){if(!(a.byteLength<6)){var d,e,f,g,h=new DataView(a),i=2,j=h.byteLength-4,k=i,l={};if(65496===h.getUint16(0)){for(;j>i&&(d=h.getUint16(i),d>=65504&&65519>=d||65534===d)&&(e=h.getUint16(i+2)+2,!(i+e>h.byteLength));){if(f=b.parsers[d],!c&&f)for(g=0;g<f.length;g+=1)f[g].call(b,h,i,e,l);i+=e,k=i}k>6&&(l.imageHead=a.slice?a.slice(2,k):new Uint8Array(a).subarray(2,k))}return l}},updateImageHead:function(a,b){var c,d,e,f=this._parse(a,!0);return e=2,f.imageHead&&(e=2+f.imageHead.byteLength),d=a.slice?a.slice(e):new Uint8Array(a).subarray(e),c=new Uint8Array(b.byteLength+2+d.byteLength),c[0]=255,c[1]=216,c.set(new Uint8Array(b),2),c.set(new Uint8Array(d),b.byteLength+2),c.buffer}},a.parseMeta=function(){return b.parse.apply(b,arguments)},a.updateImageHead=function(){return b.updateImageHead.apply(b,arguments)},b}),b("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(a,b){var c={};return c.ExifMap=function(){return this},c.ExifMap.prototype.map={Orientation:274},c.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},c.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},c.exifTagTypes[7]=c.exifTagTypes[1],c.getExifValue=function(b,d,e,f,g,h){var i,j,k,l,m,n,o=c.exifTagTypes[f];if(!o)return void a.log("Invalid Exif data: Invalid tag type.");if(i=o.size*g,j=i>4?d+b.getUint32(e+8,h):e+8,j+i>b.byteLength)return void a.log("Invalid Exif data: Invalid data offset.");if(1===g)return o.getValue(b,j,h);for(k=[],l=0;g>l;l+=1)k[l]=o.getValue(b,j+l*o.size,h);if(o.ascii){for(m="",l=0;l<k.length&&(n=k[l],"\x00"!==n);l+=1)m+=n;return m}return k},c.parseExifTag=function(a,b,d,e,f){var g=a.getUint16(d,e);f.exif[g]=c.getExifValue(a,b,d,a.getUint16(d+2,e),a.getUint32(d+4,e),e)},c.parseExifTags=function(b,c,d,e,f){var g,h,i;if(d+6>b.byteLength)return void a.log("Invalid Exif data: Invalid directory offset.");if(g=b.getUint16(d,e),h=d+2+12*g,h+4>b.byteLength)return void a.log("Invalid Exif data: Invalid directory size.");for(i=0;g>i;i+=1)this.parseExifTag(b,c,d+2+12*i,e,f);return b.getUint32(h,e)},c.parseExifData=function(b,d,e,f){var g,h,i=d+10;if(1165519206===b.getUint32(d+4)){if(i+8>b.byteLength)return void a.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(d+8))return void a.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(i)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void a.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(i+2,g))return void a.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(i+4,g),f.exif=new c.ExifMap,h=c.parseExifTags(b,i,i+h,g,f)}},b.parsers[65505].push(c.parseExifData),c}),b("runtime/html5/jpegencoder",[],function(){function a(a){function b(a){for(var b=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],c=0;64>c;c++){var d=y((b[c]*a+50)/100);1>d?d=1:d>255&&(d=255),z[P[c]]=d}for(var e=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],f=0;64>f;f++){var g=y((e[f]*a+50)/100);1>g?g=1:g>255&&(g=255),A[P[f]]=g}for(var h=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],i=0,j=0;8>j;j++)for(var k=0;8>k;k++)B[i]=1/(z[P[i]]*h[j]*h[k]*8),C[i]=1/(A[P[i]]*h[j]*h[k]*8),i++}function c(a,b){for(var c=0,d=0,e=new Array,f=1;16>=f;f++){for(var g=1;g<=a[f];g++)e[b[d]]=[],e[b[d]][0]=c,e[b[d]][1]=f,d++,c++;c*=2}return e}function d(){t=c(Q,R),u=c(U,V),v=c(S,T),w=c(W,X)}function e(){for(var a=1,b=2,c=1;15>=c;c++){for(var d=a;b>d;d++)E[32767+d]=c,D[32767+d]=[],D[32767+d][1]=c,D[32767+d][0]=d;for(var e=-(b-1);-a>=e;e++)E[32767+e]=c,D[32767+e]=[],D[32767+e][1]=c,D[32767+e][0]=b-1+e;a<<=1,b<<=1}}function f(){for(var a=0;256>a;a++)O[a]=19595*a,O[a+256>>0]=38470*a,O[a+512>>0]=7471*a+32768,O[a+768>>0]=-11059*a,O[a+1024>>0]=-21709*a,O[a+1280>>0]=32768*a+8421375,O[a+1536>>0]=-27439*a,O[a+1792>>0]=-5329*a}function g(a){for(var b=a[0],c=a[1]-1;c>=0;)b&1<<c&&(I|=1<<J),c--,J--,0>J&&(255==I?(h(255),h(0)):h(I),J=7,I=0)}function h(a){H.push(N[a])}function i(a){h(a>>8&255),h(255&a)}function j(a,b){var c,d,e,f,g,h,i,j,k,l=0,m=8,n=64;for(k=0;m>k;++k){c=a[l],d=a[l+1],e=a[l+2],f=a[l+3],g=a[l+4],h=a[l+5],i=a[l+6],j=a[l+7];var o=c+j,p=c-j,q=d+i,r=d-i,s=e+h,t=e-h,u=f+g,v=f-g,w=o+u,x=o-u,y=q+s,z=q-s;a[l]=w+y,a[l+4]=w-y;var A=.707106781*(z+x);a[l+2]=x+A,a[l+6]=x-A,w=v+t,y=t+r,z=r+p;var B=.382683433*(w-z),C=.5411961*w+B,D=1.306562965*z+B,E=.707106781*y,G=p+E,H=p-E;a[l+5]=H+C,a[l+3]=H-C,a[l+1]=G+D,a[l+7]=G-D,l+=8}for(l=0,k=0;m>k;++k){c=a[l],d=a[l+8],e=a[l+16],f=a[l+24],g=a[l+32],h=a[l+40],i=a[l+48],j=a[l+56];var I=c+j,J=c-j,K=d+i,L=d-i,M=e+h,N=e-h,O=f+g,P=f-g,Q=I+O,R=I-O,S=K+M,T=K-M;a[l]=Q+S,a[l+32]=Q-S;var U=.707106781*(T+R);a[l+16]=R+U,a[l+48]=R-U,Q=P+N,S=N+L,T=L+J;var V=.382683433*(Q-T),W=.5411961*Q+V,X=1.306562965*T+V,Y=.707106781*S,Z=J+Y,$=J-Y;a[l+40]=$+W,a[l+24]=$-W,a[l+8]=Z+X,a[l+56]=Z-X,l++}var _;for(k=0;n>k;++k)_=a[k]*b[k],F[k]=_>0?_+.5|0:_-.5|0;return F}function k(){i(65504),i(16),h(74),h(70),h(73),h(70),h(0),h(1),h(1),h(0),i(1),i(1),h(0),h(0)}function l(a,b){i(65472),i(17),h(8),i(b),i(a),h(3),h(1),h(17),h(0),h(2),h(17),h(1),h(3),h(17),h(1)}function m(){i(65499),i(132),h(0);for(var a=0;64>a;a++)h(z[a]);h(1);for(var b=0;64>b;b++)h(A[b])}function n(){i(65476),i(418),h(0);for(var a=0;16>a;a++)h(Q[a+1]);for(var b=0;11>=b;b++)h(R[b]);h(16);for(var c=0;16>c;c++)h(S[c+1]);for(var d=0;161>=d;d++)h(T[d]);h(1);for(var e=0;16>e;e++)h(U[e+1]);for(var f=0;11>=f;f++)h(V[f]);h(17);for(var g=0;16>g;g++)h(W[g+1]);for(var j=0;161>=j;j++)h(X[j])}function o(){i(65498),i(12),h(3),h(1),h(0),h(2),h(17),h(3),h(17),h(0),h(63),h(0)}function p(a,b,c,d,e){for(var f,h=e[0],i=e[240],k=16,l=63,m=64,n=j(a,b),o=0;m>o;++o)G[P[o]]=n[o];var p=G[0]-c;c=G[0],0==p?g(d[0]):(f=32767+p,g(d[E[f]]),g(D[f]));for(var q=63;q>0&&0==G[q];q--);if(0==q)return g(h),c;for(var r,s=1;q>=s;){for(var t=s;0==G[s]&&q>=s;++s);var u=s-t;if(u>=k){r=u>>4;for(var v=1;r>=v;++v)g(i);u=15&u}f=32767+G[s],g(e[(u<<4)+E[f]]),g(D[f]),s++}return q!=l&&g(h),c}function q(){for(var a=String.fromCharCode,b=0;256>b;b++)N[b]=a(b)}function r(a){if(0>=a&&(a=1),a>100&&(a=100),x!=a){var c=0;c=Math.floor(50>a?5e3/a:200-2*a),b(c),x=a}}function s(){a||(a=50),q(),d(),e(),f(),r(a)}var t,u,v,w,x,y=(Math.round,Math.floor),z=new Array(64),A=new Array(64),B=new Array(64),C=new Array(64),D=new Array(65535),E=new Array(65535),F=new Array(64),G=new Array(64),H=[],I=0,J=7,K=new Array(64),L=new Array(64),M=new Array(64),N=new Array(256),O=new Array(2048),P=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],Q=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],R=[0,1,2,3,4,5,6,7,8,9,10,11],S=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],T=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],U=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],V=[0,1,2,3,4,5,6,7,8,9,10,11],W=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],X=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];this.encode=function(a,b){b&&r(b),H=new Array,I=0,J=7,i(65496),k(),m(),l(a.width,a.height),n(),o();var c=0,d=0,e=0;I=0,J=7,this.encode.displayName="_encode_";for(var f,h,j,q,s,x,y,z,A,D=a.data,E=a.width,F=a.height,G=4*E,N=0;F>N;){for(f=0;G>f;){for(s=G*N+f,x=s,y=-1,z=0,A=0;64>A;A++)z=A>>3,y=4*(7&A),x=s+z*G+y,N+z>=F&&(x-=G*(N+1+z-F)),f+y>=G&&(x-=f+y-G+4),h=D[x++],j=D[x++],q=D[x++],K[A]=(O[h]+O[j+256>>0]+O[q+512>>0]>>16)-128,L[A]=(O[h+768>>0]+O[j+1024>>0]+O[q+1280>>0]>>16)-128,M[A]=(O[h+1280>>0]+O[j+1536>>0]+O[q+1792>>0]>>16)-128;c=p(K,B,c,t,v),d=p(L,C,d,u,w),e=p(M,C,e,u,w),f+=32}N+=8}if(J>=0){var P=[];P[1]=J+1,P[0]=(1<<J+1)-1,g(P)}i(65497);var Q="data:image/jpeg;base64,"+btoa(H.join(""));return H=[],Q},s()}return a.encode=function(b,c){var d=new a(c);return d.encode(b)},a}),b("runtime/html5/androidpatch",["runtime/html5/util","runtime/html5/jpegencoder","base"],function(a,b,c){var d,e=a.canvasToDataUrl;a.canvasToDataUrl=function(a,f,g){var h,i,j,k,l;return c.os.android?("image/jpeg"===f&&"undefined"==typeof d&&(k=e.apply(null,arguments),l=k.split(","),k=~l[0].indexOf("base64")?atob(l[1]):decodeURIComponent(l[1]),k=k.substring(0,2),d=255===k.charCodeAt(0)&&216===k.charCodeAt(1)),"image/jpeg"!==f||d?e.apply(null,arguments):(i=a.width,j=a.height,h=a.getContext("2d"),b.encode(h.getImageData(0,0,i,j),g))):e.apply(null,arguments)}}),b("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(a,b,c){var d="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return b.register("Image",{modified:!1,init:function(){var a=this,b=new Image;b.onload=function(){a._info={type:a.type,width:this.width,height:this.height},a._metas||"image/jpeg"!==a.type?a.owner.trigger("load"):c.parseMeta(a._blob,function(b,c){a._metas=c,a.owner.trigger("load")})},b.onerror=function(){a.owner.trigger("error")},a._img=b},loadFromBlob:function(a){var b=this,d=b._img;b._blob=a,b.type=a.type,d.src=c.createObjectURL(a.getSource()),b.owner.once("load",function(){c.revokeObjectURL(d.src)})},resize:function(a,b){var c=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,c,a,b),this._blob=null,this.modified=!0,this.owner.trigger("complete")},getAsBlob:function(a){var b,d=this._blob,e=this.options;if(a=a||this.type,this.modified||this.type!==a){if(b=this._canvas,"image/jpeg"===a){if(d=c.canvasToDataUrl(b,"image/jpeg",e.quality),e.preserveHeaders&&this._metas&&this._metas.imageHead)return d=c.dataURL2ArrayBuffer(d),d=c.updateImageHead(d,this._metas.imageHead),d=c.arrayBufferToBlob(d,a)}else d=c.canvasToDataUrl(b,a);d=c.dataURL2Blob(d)}return d},getAsDataUrl:function(a){var b=this.options;return a=a||this.type,"image/jpeg"===a?c.canvasToDataUrl(this._canvas,a,b.quality):this._canvas.toDataURL(a)},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},destroy:function(){var a=this._canvas;this._img.onload=null,a&&(a.getContext("2d").clearRect(0,0,a.width,a.height),a.width=a.height=0,this._canvas=null),this._img.src=d,this._img=this._blob=null},_resize:function(a,b,c,d){var e,f,g,h,i,j=this.options,k=a.width,l=a.height,m=this.getOrientation();~[5,6,7,8].indexOf(m)&&(c^=d,d^=c,c^=d),e=Math[j.crop?"max":"min"](c/k,d/l),j.allowMagnify||(e=Math.min(1,e)),f=k*e,g=l*e,j.crop?(b.width=c,b.height=d):(b.width=f,b.height=g),h=(b.width-f)/2,i=(b.height-g)/2,j.preserveHeaders||this._rotate2Orientaion(b,m),this._renderImageToCanvas(b,a,h,i,f,g)},_rotate2Orientaion:function(a,b){var c=a.width,d=a.height,e=a.getContext("2d");switch(b){case 5:case 6:case 7:case 8:a.width=d,a.height=c}switch(b){case 2:e.translate(c,0),e.scale(-1,1);break;case 3:e.translate(c,d),e.rotate(Math.PI);break;case 4:e.translate(0,d),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-d);break;case 7:e.rotate(.5*Math.PI),e.translate(c,-d),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-c,0)}},_renderImageToCanvas:function(){function b(a,b,c){var d,e,f,g=document.createElement("canvas"),h=g.getContext("2d"),i=0,j=c,k=c;for(g.width=1,g.height=c,h.drawImage(a,0,0),d=h.getImageData(0,0,1,c).data;k>i;)e=d[4*(k-1)+3],0===e?j=k:i=k,k=j+i>>1;return f=k/c,0===f?1:f}function c(a){var b,c,d=a.naturalWidth,e=a.naturalHeight;return d*e>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-d+1,0),0===c.getImageData(0,0,1,1).data[3]):!1}return a.os.ios?a.os.ios>=7?function(a,c,d,e,f,g){var h=c.naturalWidth,i=c.naturalHeight,j=b(c,h,i);return a.getContext("2d").drawImage(c,0,0,h*j,i*j,d,e,f,g)}:function(a,d,e,f,g,h){var i,j,k,l,m,n,o,p=d.naturalWidth,q=d.naturalHeight,r=a.getContext("2d"),s=c(d),t="image/jpeg"===this.type,u=1024,v=0,w=0;for(s&&(p/=2,q/=2),r.save(),i=document.createElement("canvas"),i.width=i.height=u,j=i.getContext("2d"),k=t?b(d,p,q):1,l=Math.ceil(u*g/p),m=Math.ceil(u*h/q/k);q>v;){for(n=0,o=0;p>n;)j.clearRect(0,0,u,u),j.drawImage(d,-n,-v),r.drawImage(i,0,0,u,u,e+o,f+w,l,m),n+=u,o+=l;v+=u,w+=m}r.restore(),i=j=null}:function(a,b,c,d,e,f){a.getContext("2d").drawImage(b,c,d,e,f)}}()})}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a;try{a=navigator.plugins["Shockwave Flash"],a=a.description}catch(b){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(c){a="0.0"}}return a=a.match(/\d+/g),parseFloat(a[0]+"."+a[1],10)}function f(){function d(a,b){var c,d,e=a.type||a;c=e.split("::"),d=c[0],e=c[1],"Ready"===e&&d===j.uid?j.trigger("ready"):f[d]&&f[d].trigger(e.toLowerCase(),a,b)}var e={},f={},g=this.destory,j=this,k=b.guid("webuploader_");c.apply(j,arguments),j.type=h,j.exec=function(a,c){var d,g=this,h=g.uid,k=b.slice(arguments,2);return f[h]=g,i[a]&&(e[h]||(e[h]=new i[a](g,j)),d=e[h],d[c])?d[c].apply(d,k):j.flashExec.apply(g,arguments)},a[k]=function(){var a=arguments;setTimeout(function(){d.apply(null,a)},1)},this.jsreciver=k,this.destory=function(){return g&&g.apply(this,arguments)},this.flashExec=function(a,c){var d=j.getFlash(),e=b.slice(arguments,2);return d.exec(this.uid,a,c,e)}}var g=b.$,h="flash",i={};return b.inherits(c,{constructor:f,init:function(){var a,c=this.getContainer(),d=this.options;c.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),a='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+d.swf+'" ',b.browser.ie&&(a+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),a+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+d.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>',c.html(a)},getFlash:function(){return this._flash?this._flash:(this._flash=g("#"+this.uid).get(0),this._flash)}}),f.register=function(a,c){return c=i[a]=b.inherits(d,g.extend({flashExec:function(){var a=this.owner,b=this.getRuntime();return b.flashExec.apply(a,arguments)}},c))},e()>=11.4&&c.addRuntime(h,f),f}),b("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(a){var b,d,e=c.extend({},a);for(b=e.accept&&e.accept.length,d=0;b>d;d++)e.accept[d].title||(e.accept[d].title="Files");delete e.button,delete e.container,this.flashExec("FilePicker","init",e)},destroy:function(){}})}),b("runtime/flash/image",["runtime/flash/runtime"],function(a){return a.register("Image",{loadFromBlob:function(a){var b=this.owner;b.info()&&this.flashExec("Image","info",b.info()),b.meta()&&this.flashExec("Image","meta",b.meta()),this.flashExec("Image","loadFromBlob",a.uid)}})}),b("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(a,b,c){var d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var a,b=this.owner,c=this.options,e=this._initAjax(),f=b._blob,g=c.server;e.connectRuntime(f.ruid),c.sendAsBinary?(g+=(/\?/.test(g)?"&":"?")+d.param(b._formData),a=f.uid):(d.each(b._formData,function(a,b){e.exec("append",a,b)}),e.exec("appendBlob",c.fileVal,f.uid,c.filename||b._formData.name||"")),this._setRequestHeader(e,c.headers),e.exec("send",{method:c.method,url:g},a)},getStatus:function(){return this._status},getResponse:function(){return this._response},getResponseAsJson:function(){return this._responseJson},abort:function(){var a=this._xhr;a&&(a.exec("abort"),a.destroy(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new c("XMLHttpRequest");return b.on("uploadprogress progress",function(b){return a.trigger("progress",b.loaded/b.total)}),b.on("load",function(){var c=b.exec("getStatus"),d="";return b.off(),a._xhr=null,c>=200&&300>c?(a._response=b.exec("getResponse"),a._responseJson=b.exec("getResponseAsJson")):c>=500&&600>c?(a._response=b.exec("getResponse"),a._responseJson=b.exec("getResponseAsJson"),d="server"):d="http",b.destroy(),b=null,d?a.trigger("error",d):a.trigger("load")}),b.on("error",function(){b.off(),a._xhr=null,a.trigger("error","http")}),a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.exec("setRequestHeader",b,c)})}})}),b("preset/all",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/imagemeta/exif","runtime/html5/androidpatch","runtime/html5/image","runtime/html5/transport","runtime/flash/filepicker","runtime/flash/image","runtime/flash/transport"],function(a){return a}),b("webuploader",["preset/all"],function(a){return a}),c("webuploader")});
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.withoutimage.js b/server/public/ueditor/third-party/webuploader/webuploader.withoutimage.js
deleted file mode 100644
index de3a2bd..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.withoutimage.js
+++ /dev/null
@@ -1,4593 +0,0 @@
-/*! WebUploader 0.1.2 */
-
-
-/**
- * @fileOverview 璁╁唴閮ㄥ悇涓儴浠剁殑浠g爜鍙互鐢╗amd](https://github.com/amdjs/amdjs-api/wiki/AMD)妯″潡瀹氫箟鏂瑰紡缁勭粐璧锋潵銆�
- *
- * AMD API 鍐呴儴鐨勭畝鍗曚笉瀹屽叏瀹炵幇锛岃蹇界暐銆傚彧鏈夊綋WebUploader琚悎骞舵垚涓�涓枃浠剁殑鏃跺�欐墠浼氬紩鍏ャ��
- */
-(function( root, factory ) {
-    var modules = {},
-
-        // 鍐呴儴require, 绠�鍗曚笉瀹屽叏瀹炵幇銆�
-        // https://github.com/amdjs/amdjs-api/wiki/require
-        _require = function( deps, callback ) {
-            var args, len, i;
-
-            // 濡傛灉deps涓嶆槸鏁扮粍锛屽垯鐩存帴杩斿洖鎸囧畾module
-            if ( typeof deps === 'string' ) {
-                return getModule( deps );
-            } else {
-                args = [];
-                for( len = deps.length, i = 0; i < len; i++ ) {
-                    args.push( getModule( deps[ i ] ) );
-                }
-
-                return callback.apply( null, args );
-            }
-        },
-
-        // 鍐呴儴define锛屾殏鏃朵笉鏀寔涓嶆寚瀹歩d.
-        _define = function( id, deps, factory ) {
-            if ( arguments.length === 2 ) {
-                factory = deps;
-                deps = null;
-            }
-
-            _require( deps || [], function() {
-                setModule( id, factory, arguments );
-            });
-        },
-
-        // 璁剧疆module, 鍏煎CommonJs鍐欐硶銆�
-        setModule = function( id, factory, args ) {
-            var module = {
-                    exports: factory
-                },
-                returned;
-
-            if ( typeof factory === 'function' ) {
-                args.length || (args = [ _require, module.exports, module ]);
-                returned = factory.apply( null, args );
-                returned !== undefined && (module.exports = returned);
-            }
-
-            modules[ id ] = module.exports;
-        },
-
-        // 鏍规嵁id鑾峰彇module
-        getModule = function( id ) {
-            var module = modules[ id ] || root[ id ];
-
-            if ( !module ) {
-                throw new Error( '`' + id + '` is undefined' );
-            }
-
-            return module;
-        },
-
-        // 灏嗘墍鏈塵odules锛屽皢璺緞ids瑁呮崲鎴愬璞°��
-        exportsTo = function( obj ) {
-            var key, host, parts, part, last, ucFirst;
-
-            // make the first character upper case.
-            ucFirst = function( str ) {
-                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
-            };
-
-            for ( key in modules ) {
-                host = obj;
-
-                if ( !modules.hasOwnProperty( key ) ) {
-                    continue;
-                }
-
-                parts = key.split('/');
-                last = ucFirst( parts.pop() );
-
-                while( (part = ucFirst( parts.shift() )) ) {
-                    host[ part ] = host[ part ] || {};
-                    host = host[ part ];
-                }
-
-                host[ last ] = modules[ key ];
-            }
-        },
-
-        exports = factory( root, _define, _require ),
-        origin;
-
-    // exports every module.
-    exportsTo( exports );
-
-    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
-
-        // For CommonJS and CommonJS-like environments where a proper window is present,
-        module.exports = exports;
-    } else if ( typeof define === 'function' && define.amd ) {
-
-        // Allow using this built library as an AMD module
-        // in another project. That other project will only
-        // see this AMD call, not the internal modules in
-        // the closure below.
-        define([], exports );
-    } else {
-
-        // Browser globals case. Just assign the
-        // result to a property on the global.
-        origin = root.WebUploader;
-        root.WebUploader = exports;
-        root.WebUploader.noConflict = function() {
-            root.WebUploader = origin;
-        };
-    }
-})( this, function( window, define, require ) {
-
-
-    /**
-     * @fileOverview jQuery or Zepto
-     */
-    define('dollar-third',[],function() {
-        return window.jQuery || window.Zepto;
-    });
-    /**
-     * @fileOverview Dom 鎿嶄綔鐩稿叧
-     */
-    define('dollar',[
-        'dollar-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 浣跨敤jQuery鐨凱romise
-     */
-    define('promise-third',[
-        'dollar'
-    ], function( $ ) {
-        return {
-            Deferred: $.Deferred,
-            when: $.when,
-    
-            isPromise: function( anything ) {
-                return anything && typeof anything.then === 'function';
-            }
-        };
-    });
-    /**
-     * @fileOverview Promise/A+
-     */
-    define('promise',[
-        'promise-third'
-    ], function( _ ) {
-        return _;
-    });
-    /**
-     * @fileOverview 鍩虹绫绘柟娉曘��
-     */
-    
-    /**
-     * Web Uploader鍐呴儴绫荤殑璇︾粏璇存槑锛屼互涓嬫彁鍙婄殑鍔熻兘绫伙紝閮藉彲浠ュ湪`WebUploader`杩欎釜鍙橀噺涓闂埌銆�
-     *
-     * As you know, Web Uploader鐨勬瘡涓枃浠堕兘鏄敤杩嘯AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)瑙勮寖涓殑`define`缁勭粐璧锋潵鐨�, 姣忎釜Module閮戒細鏈変釜module id.
-     * 榛樿module id璇ユ枃浠剁殑璺緞锛岃�屾璺緞灏嗕細杞寲鎴愬悕瀛楃┖闂村瓨鏀惧湪WebUploader涓�傚锛�
-     *
-     * * module `base`锛歐ebUploader.Base
-     * * module `file`: WebUploader.File
-     * * module `lib/dnd`: WebUploader.Lib.Dnd
-     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
-     *
-     *
-     * 浠ヤ笅鏂囨。灏嗗彲鑳界渷鐣WebUploader`鍓嶇紑銆�
-     * @module WebUploader
-     * @title WebUploader API鏂囨。
-     */
-    define('base',[
-        'dollar',
-        'promise'
-    ], function( $, promise ) {
-    
-        var noop = function() {},
-            call = Function.call;
-    
-        // http://jsperf.com/uncurrythis
-        // 鍙嶇閲屽寲
-        function uncurryThis( fn ) {
-            return function() {
-                return call.apply( fn, arguments );
-            };
-        }
-    
-        function bindFn( fn, context ) {
-            return function() {
-                return fn.apply( context, arguments );
-            };
-        }
-    
-        function createObject( proto ) {
-            var f;
-    
-            if ( Object.create ) {
-                return Object.create( proto );
-            } else {
-                f = function() {};
-                f.prototype = proto;
-                return new f();
-            }
-        }
-    
-    
-        /**
-         * 鍩虹绫伙紝鎻愪緵涓�浜涚畝鍗曞父鐢ㄧ殑鏂规硶銆�
-         * @class Base
-         */
-        return {
-    
-            /**
-             * @property {String} version 褰撳墠鐗堟湰鍙枫��
-             */
-            version: '0.1.2',
-    
-            /**
-             * @property {jQuery|Zepto} $ 寮曠敤渚濊禆鐨刯Query鎴栬�匷epto瀵硅薄銆�
-             */
-            $: $,
-    
-            Deferred: promise.Deferred,
-    
-            isPromise: promise.isPromise,
-    
-            when: promise.when,
-    
-            /**
-             * @description  绠�鍗曠殑娴忚鍣ㄦ鏌ョ粨鏋溿��
-             *
-             * * `webkit`  webkit鐗堟湰鍙凤紝濡傛灉娴忚鍣ㄤ负闈瀢ebkit鍐呮牳锛屾灞炴�т负`undefined`銆�
-             * * `chrome`  chrome娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓篶hrome锛屾灞炴�т负`undefined`銆�
-             * * `ie`  ie娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪ie锛屾灞炴�т负`undefined`銆�**鏆備笉鏀寔ie10+**
-             * * `firefox`  firefox娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪firefox锛屾灞炴�т负`undefined`銆�
-             * * `safari`  safari娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪safari锛屾灞炴�т负`undefined`銆�
-             * * `opera`  opera娴忚鍣ㄧ増鏈彿锛屽鏋滄祻瑙堝櫒涓洪潪opera锛屾灞炴�т负`undefined`銆�
-             *
-             * @property {Object} [browser]
-             */
-            browser: (function( ua ) {
-                var ret = {},
-                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
-                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
-                        ua.match( /CriOS\/([\d.]+)/ ),
-    
-                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
-                        ua.match(/(?:trident)(?:.*rv:([\w.]+))?/i),
-                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
-                    safari = ua.match( /Safari\/([\d.]+)/ ),
-                    opera = ua.match( /OPR\/([\d.]+)/ );
-    
-                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
-                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
-                ie && (ret.ie = parseFloat( ie[ 1 ] ));
-                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
-                safari && (ret.safari = parseFloat( safari[ 1 ] ));
-                opera && (ret.opera = parseFloat( opera[ 1 ] ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * @description  鎿嶄綔绯荤粺妫�鏌ョ粨鏋溿��
-             *
-             * * `android`  濡傛灉鍦╝ndroid娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刟ndroid鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * * `ios` 濡傛灉鍦╥os娴忚鍣ㄧ幆澧冧笅锛屾鍊间负瀵瑰簲鐨刬os鐗堟湰鍙凤紝鍚﹀垯涓篳undefined`銆�
-             * @property {Object} [os]
-             */
-            os: (function( ua ) {
-                var ret = {},
-    
-                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
-                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
-                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
-    
-                // osx && (ret.osx = true);
-                android && (ret.android = parseFloat( android[ 1 ] ));
-                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
-    
-                return ret;
-            })( navigator.userAgent ),
-    
-            /**
-             * 瀹炵幇绫讳笌绫讳箣闂寸殑缁ф壙銆�
-             * @method inherits
-             * @grammar Base.inherits( super ) => child
-             * @grammar Base.inherits( super, protos ) => child
-             * @grammar Base.inherits( super, protos, statics ) => child
-             * @param  {Class} super 鐖剁被
-             * @param  {Object | Function} [protos] 瀛愮被鎴栬�呭璞°�傚鏋滃璞′腑鍖呭惈constructor锛屽瓙绫诲皢鏄敤姝ゅ睘鎬у�笺��
-             * @param  {Function} [protos.constructor] 瀛愮被鏋勯�犲櫒锛屼笉鎸囧畾鐨勮瘽灏嗗垱寤轰釜涓存椂鐨勭洿鎺ユ墽琛岀埗绫绘瀯閫犲櫒鐨勬柟娉曘��
-             * @param  {Object} [statics] 闈欐�佸睘鎬ф垨鏂规硶銆�
-             * @return {Class} 杩斿洖瀛愮被銆�
-             * @example
-             * function Person() {
-             *     console.log( 'Super' );
-             * }
-             * Person.prototype.hello = function() {
-             *     console.log( 'hello' );
-             * };
-             *
-             * var Manager = Base.inherits( Person, {
-             *     world: function() {
-             *         console.log( 'World' );
-             *     }
-             * });
-             *
-             * // 鍥犱负娌℃湁鎸囧畾鏋勯�犲櫒锛岀埗绫荤殑鏋勯�犲櫒灏嗕細鎵ц銆�
-             * var instance = new Manager();    // => Super
-             *
-             * // 缁ф壙瀛愮埗绫荤殑鏂规硶
-             * instance.hello();    // => hello
-             * instance.world();    // => World
-             *
-             * // 瀛愮被鐨刜_super__灞炴�ф寚鍚戠埗绫�
-             * console.log( Manager.__super__ === Person );    // => true
-             */
-            inherits: function( Super, protos, staticProtos ) {
-                var child;
-    
-                if ( typeof protos === 'function' ) {
-                    child = protos;
-                    protos = null;
-                } else if ( protos && protos.hasOwnProperty('constructor') ) {
-                    child = protos.constructor;
-                } else {
-                    child = function() {
-                        return Super.apply( this, arguments );
-                    };
-                }
-    
-                // 澶嶅埗闈欐�佹柟娉�
-                $.extend( true, child, Super, staticProtos || {} );
-    
-                /* jshint camelcase: false */
-    
-                // 璁╁瓙绫荤殑__super__灞炴�ф寚鍚戠埗绫汇��
-                child.__super__ = Super.prototype;
-    
-                // 鏋勫缓鍘熷瀷锛屾坊鍔犲師鍨嬫柟娉曟垨灞炴�с��
-                // 鏆傛椂鐢∣bject.create瀹炵幇銆�
-                child.prototype = createObject( Super.prototype );
-                protos && $.extend( true, child.prototype, protos );
-    
-                return child;
-            },
-    
-            /**
-             * 涓�涓笉鍋氫换浣曚簨鎯呯殑鏂规硶銆傚彲浠ョ敤鏉ヨ祴鍊肩粰榛樿鐨刢allback.
-             * @method noop
-             */
-            noop: noop,
-    
-            /**
-             * 杩斿洖涓�涓柊鐨勬柟娉曪紝姝ゆ柟娉曞皢宸叉寚瀹氱殑`context`鏉ユ墽琛屻��
-             * @grammar Base.bindFn( fn, context ) => Function
-             * @method bindFn
-             * @example
-             * var doSomething = function() {
-             *         console.log( this.name );
-             *     },
-             *     obj = {
-             *         name: 'Object Name'
-             *     },
-             *     aliasFn = Base.bind( doSomething, obj );
-             *
-             *  aliasFn();    // => Object Name
-             *
-             */
-            bindFn: bindFn,
-    
-            /**
-             * 寮曠敤Console.log濡傛灉瀛樺湪鐨勮瘽锛屽惁鍒欏紩鐢ㄤ竴涓猍绌哄嚱鏁發oop](#WebUploader:Base.log)銆�
-             * @grammar Base.log( args... ) => undefined
-             * @method log
-             */
-            log: (function() {
-                if ( window.console ) {
-                    return bindFn( console.log, console );
-                }
-                return noop;
-            })(),
-    
-            nextTick: (function() {
-    
-                return function( cb ) {
-                    setTimeout( cb, 1 );
-                };
-    
-                // @bug 褰撴祻瑙堝櫒涓嶅湪褰撳墠绐楀彛鏃跺氨鍋滀簡銆�
-                // var next = window.requestAnimationFrame ||
-                //     window.webkitRequestAnimationFrame ||
-                //     window.mozRequestAnimationFrame ||
-                //     function( cb ) {
-                //         window.setTimeout( cb, 1000 / 60 );
-                //     };
-    
-                // // fix: Uncaught TypeError: Illegal invocation
-                // return bindFn( next, window );
-            })(),
-    
-            /**
-             * 琚玔uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)鐨勬暟缁剆lice鏂规硶銆�
-             * 灏嗙敤鏉ュ皢闈炴暟缁勫璞¤浆鍖栨垚鏁扮粍瀵硅薄銆�
-             * @grammar Base.slice( target, start[, end] ) => Array
-             * @method slice
-             * @example
-             * function doSomthing() {
-             *     var args = Base.slice( arguments, 1 );
-             *     console.log( args );
-             * }
-             *
-             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
-             */
-            slice: uncurryThis( [].slice ),
-    
-            /**
-             * 鐢熸垚鍞竴鐨処D
-             * @method guid
-             * @grammar Base.guid() => String
-             * @grammar Base.guid( prefx ) => String
-             */
-            guid: (function() {
-                var counter = 0;
-    
-                return function( prefix ) {
-                    var guid = (+new Date()).toString( 32 ),
-                        i = 0;
-    
-                    for ( ; i < 5; i++ ) {
-                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
-                    }
-    
-                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
-                };
-            })(),
-    
-            /**
-             * 鏍煎紡鍖栨枃浠跺ぇ灏�, 杈撳嚭鎴愬甫鍗曚綅鐨勫瓧绗︿覆
-             * @method formatSize
-             * @grammar Base.formatSize( size ) => String
-             * @grammar Base.formatSize( size, pointLength ) => String
-             * @grammar Base.formatSize( size, pointLength, units ) => String
-             * @param {Number} size 鏂囦欢澶у皬
-             * @param {Number} [pointLength=2] 绮剧‘鍒扮殑灏忔暟鐐规暟銆�
-             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 鍗曚綅鏁扮粍銆備粠瀛楄妭锛屽埌鍗冨瓧鑺傦紝涓�鐩村線涓婃寚瀹氥�傚鏋滃崟浣嶆暟缁勯噷闈㈠彧鎸囧畾浜嗗埌浜咾(鍗冨瓧鑺�)锛屽悓鏃舵枃浠跺ぇ灏忓ぇ浜嶮, 姝ゆ柟娉曠殑杈撳嚭灏嗚繕鏄樉绀烘垚澶氬皯K.
-             * @example
-             * console.log( Base.formatSize( 100 ) );    // => 100B
-             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
-             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
-             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
-             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
-             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
-             */
-            formatSize: function( size, pointLength, units ) {
-                var unit;
-    
-                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
-    
-                while ( (unit = units.shift()) && size > 1024 ) {
-                    size = size / 1024;
-                }
-    
-                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
-                        unit;
-            }
-        };
-    });
-    /**
-     * 浜嬩欢澶勭悊绫伙紝鍙互鐙珛浣跨敤锛屼篃鍙互鎵╁睍缁欏璞′娇鐢ㄣ��
-     * @fileOverview Mediator
-     */
-    define('mediator',[
-        'base'
-    ], function( Base ) {
-        var $ = Base.$,
-            slice = [].slice,
-            separator = /\s+/,
-            protos;
-    
-        // 鏍规嵁鏉′欢杩囨护鍑轰簨浠秇andlers.
-        function findHandlers( arr, name, callback, context ) {
-            return $.grep( arr, function( handler ) {
-                return handler &&
-                        (!name || handler.e === name) &&
-                        (!callback || handler.cb === callback ||
-                        handler.cb._cb === callback) &&
-                        (!context || handler.ctx === context);
-            });
-        }
-    
-        function eachEvent( events, callback, iterator ) {
-            // 涓嶆敮鎸佸璞★紝鍙敮鎸佸涓猠vent鐢ㄧ┖鏍奸殧寮�
-            $.each( (events || '').split( separator ), function( _, key ) {
-                iterator( key, callback );
-            });
-        }
-    
-        function triggerHanders( events, args ) {
-            var stoped = false,
-                i = -1,
-                len = events.length,
-                handler;
-    
-            while ( ++i < len ) {
-                handler = events[ i ];
-    
-                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
-                    stoped = true;
-                    break;
-                }
-            }
-    
-            return !stoped;
-        }
-    
-        protos = {
-    
-            /**
-             * 缁戝畾浜嬩欢銆�
-             *
-             * `callback`鏂规硶鍦ㄦ墽琛屾椂锛宎rguments灏嗕細鏉ユ簮浜巘rigger鐨勬椂鍊欐惡甯︾殑鍙傛暟銆傚
-             * ```javascript
-             * var obj = {};
-             *
-             * // 浣垮緱obj鏈変簨浠惰涓�
-             * Mediator.installTo( obj );
-             *
-             * obj.on( 'testa', function( arg1, arg2 ) {
-             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
-             * });
-             *
-             * obj.trigger( 'testa', 'arg1', 'arg2' );
-             * ```
-             *
-             * 濡傛灉`callback`涓紝鏌愪竴涓柟娉昤return false`浜嗭紝鍒欏悗缁殑鍏朵粬`callback`閮戒笉浼氳鎵ц鍒般��
-             * 鍒囦細褰卞搷鍒癭trigger`鏂规硶鐨勮繑鍥炲�硷紝涓篳false`銆�
-             *
-             * `on`杩樺彲浠ョ敤鏉ユ坊鍔犱竴涓壒娈婁簨浠禶all`, 杩欐牱鎵�鏈夌殑浜嬩欢瑙﹀彂閮戒細鍝嶅簲鍒般�傚悓鏃舵绫籤callback`涓殑arguments鏈変竴涓笉鍚屽锛�
-             * 灏辨槸绗竴涓弬鏁颁负`type`锛岃褰曞綋鍓嶆槸浠�涔堜簨浠跺湪瑙﹀彂銆傛绫籤callback`鐨勪紭鍏堢骇姣旇剼浣庯紝浼氬啀姝e父`callback`鎵ц瀹屽悗瑙﹀彂銆�
-             * ```javascript
-             * obj.on( 'all', function( type, arg1, arg2 ) {
-             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
-             * });
-             * ```
-             *
-             * @method on
-             * @grammar on( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚嶏紝鏀寔澶氫釜浜嬩欢鐢ㄧ┖鏍奸殧寮�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             * @class Mediator
-             */
-            on: function( name, callback, context ) {
-                var me = this,
-                    set;
-    
-                if ( !callback ) {
-                    return this;
-                }
-    
-                set = this._events || (this._events = []);
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var handler = { e: name };
-    
-                    handler.cb = callback;
-                    handler.ctx = context;
-                    handler.ctx2 = context || me;
-                    handler.id = set.length;
-    
-                    set.push( handler );
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 缁戝畾浜嬩欢锛屼笖褰揾andler鎵ц瀹屽悗锛岃嚜鍔ㄨВ闄ょ粦瀹氥��
-             * @method once
-             * @grammar once( name, callback[, context] ) => self
-             * @param  {String}   name     浜嬩欢鍚�
-             * @param  {Function} callback 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            once: function( name, callback, context ) {
-                var me = this;
-    
-                if ( !callback ) {
-                    return me;
-                }
-    
-                eachEvent( name, callback, function( name, callback ) {
-                    var once = function() {
-                            me.off( name, once );
-                            return callback.apply( context || me, arguments );
-                        };
-    
-                    once._cb = callback;
-                    me.on( name, once, context );
-                });
-    
-                return me;
-            },
-    
-            /**
-             * 瑙i櫎浜嬩欢缁戝畾
-             * @method off
-             * @grammar off( [name[, callback[, context] ] ] ) => self
-             * @param  {String}   [name]     浜嬩欢鍚�
-             * @param  {Function} [callback] 浜嬩欢澶勭悊鍣�
-             * @param  {Object}   [context]  浜嬩欢澶勭悊鍣ㄧ殑涓婁笅鏂囥��
-             * @return {self} 杩斿洖鑷韩锛屾柟渚块摼寮�
-             * @chainable
-             */
-            off: function( name, cb, ctx ) {
-                var events = this._events;
-    
-                if ( !events ) {
-                    return this;
-                }
-    
-                if ( !name && !cb && !ctx ) {
-                    this._events = [];
-                    return this;
-                }
-    
-                eachEvent( name, cb, function( name, cb ) {
-                    $.each( findHandlers( events, name, cb, ctx ), function() {
-                        delete events[ this.id ];
-                    });
-                });
-    
-                return this;
-            },
-    
-            /**
-             * 瑙﹀彂浜嬩欢
-             * @method trigger
-             * @grammar trigger( name[, args...] ) => self
-             * @param  {String}   type     浜嬩欢鍚�
-             * @param  {*} [...] 浠绘剰鍙傛暟
-             * @return {Boolean} 濡傛灉handler涓璻eturn false浜嗭紝鍒欒繑鍥瀎alse, 鍚﹀垯杩斿洖true
-             */
-            trigger: function( type ) {
-                var args, events, allEvents;
-    
-                if ( !this._events || !type ) {
-                    return this;
-                }
-    
-                args = slice.call( arguments, 1 );
-                events = findHandlers( this._events, type );
-                allEvents = findHandlers( this._events, 'all' );
-    
-                return triggerHanders( events, args ) &&
-                        triggerHanders( allEvents, arguments );
-            }
-        };
-    
-        /**
-         * 涓粙鑰咃紝瀹冩湰韬槸涓崟渚嬶紝浣嗗彲浠ラ�氳繃[installTo](#WebUploader:Mediator:installTo)鏂规硶锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢琛屼负銆�
-         * 涓昏鐩殑鏄礋璐fā鍧椾笌妯″潡涔嬮棿鐨勫悎浣滐紝闄嶄綆鑰﹀悎搴︺��
-         *
-         * @class Mediator
-         */
-        return $.extend({
-    
-            /**
-             * 鍙互閫氳繃杩欎釜鎺ュ彛锛屼娇浠讳綍瀵硅薄鍏峰浜嬩欢鍔熻兘銆�
-             * @method installTo
-             * @param  {Object} obj 闇�瑕佸叿澶囦簨浠惰涓虹殑瀵硅薄銆�
-             * @return {Object} 杩斿洖obj.
-             */
-            installTo: function( obj ) {
-                return $.extend( obj, protos );
-            }
-    
-        }, protos );
-    });
-    /**
-     * @fileOverview Uploader涓婁紶绫�
-     */
-    define('uploader',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$;
-    
-        /**
-         * 涓婁紶鍏ュ彛绫汇��
-         * @class Uploader
-         * @constructor
-         * @grammar new Uploader( opts ) => Uploader
-         * @example
-         * var uploader = WebUploader.Uploader({
-         *     swf: 'path_of_swf/Uploader.swf',
-         *
-         *     // 寮�璧峰垎鐗囦笂浼犮��
-         *     chunked: true
-         * });
-         */
-        function Uploader( opts ) {
-            this.options = $.extend( true, {}, Uploader.options, opts );
-            this._init( this.options );
-        }
-    
-        // default Options
-        // widgets涓湁鐩稿簲鎵╁睍
-        Uploader.options = {};
-        Mediator.installTo( Uploader.prototype );
-    
-        // 鎵归噺娣诲姞绾懡浠ゅ紡鏂规硶銆�
-        $.each({
-            upload: 'start-upload',
-            stop: 'stop-upload',
-            getFile: 'get-file',
-            getFiles: 'get-files',
-            addFile: 'add-file',
-            addFiles: 'add-file',
-            sort: 'sort-files',
-            removeFile: 'remove-file',
-            skipFile: 'skip-file',
-            retry: 'retry',
-            isInProgress: 'is-in-progress',
-            makeThumb: 'make-thumb',
-            getDimension: 'get-dimension',
-            addButton: 'add-btn',
-            getRuntimeType: 'get-runtime-type',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable',
-            reset: 'reset'
-        }, function( fn, command ) {
-            Uploader.prototype[ fn ] = function() {
-                return this.request( command, arguments );
-            };
-        });
-    
-        $.extend( Uploader.prototype, {
-            state: 'pending',
-    
-            _init: function( opts ) {
-                var me = this;
-    
-                me.request( 'init', opts, function() {
-                    me.state = 'ready';
-                    me.trigger('ready');
-                });
-            },
-    
-            /**
-             * 鑾峰彇鎴栬�呰缃甎ploader閰嶇疆椤广��
-             * @method option
-             * @grammar option( key ) => *
-             * @grammar option( key, val ) => self
-             * @example
-             *
-             * // 鍒濆鐘舵�佸浘鐗囦笂浼犲墠涓嶄細鍘嬬缉
-             * var uploader = new WebUploader.Uploader({
-             *     resize: null;
-             * });
-             *
-             * // 淇敼鍚庡浘鐗囦笂浼犲墠锛屽皾璇曞皢鍥剧墖鍘嬬缉鍒�1600 * 1600
-             * uploader.options( 'resize', {
-             *     width: 1600,
-             *     height: 1600
-             * });
-             */
-            option: function( key, val ) {
-                var opts = this.options;
-    
-                // setter
-                if ( arguments.length > 1 ) {
-    
-                    if ( $.isPlainObject( val ) &&
-                            $.isPlainObject( opts[ key ] ) ) {
-                        $.extend( opts[ key ], val );
-                    } else {
-                        opts[ key ] = val;
-                    }
-    
-                } else {    // getter
-                    return key ? opts[ key ] : opts;
-                }
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢缁熻淇℃伅銆傝繑鍥炰竴涓寘鍚竴涓嬩俊鎭殑瀵硅薄銆�
-             * * `successNum` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `uploadFailNum` 涓婁紶澶辫触鐨勬枃浠舵暟
-             * * `cancelNum` 琚垹闄ょ殑鏂囦欢鏁�
-             * * `invalidNum` 鏃犳晥鐨勬枃浠舵暟
-             * * `queueNum` 杩樺湪闃熷垪涓殑鏂囦欢鏁�
-             * @method getStats
-             * @grammar getStats() => Object
-             */
-            getStats: function() {
-                // return this._mgr.getStats.apply( this._mgr, arguments );
-                var stats = this.request('get-stats');
-    
-                return {
-                    successNum: stats.numOfSuccess,
-    
-                    // who care?
-                    // queueFailNum: 0,
-                    cancelNum: stats.numOfCancel,
-                    invalidNum: stats.numOfInvalid,
-                    uploadFailNum: stats.numOfUploadFailed,
-                    queueNum: stats.numOfQueue
-                };
-            },
-    
-            // 闇�瑕侀噸鍐欐鏂规硶鏉ユ潵鏀寔opts.onEvent鍜宨nstance.onEvent鐨勫鐞嗗櫒
-            trigger: function( type/*, args...*/ ) {
-                var args = [].slice.call( arguments, 1 ),
-                    opts = this.options,
-                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
-                        type.substring( 1 );
-    
-                if (
-                        // 璋冪敤閫氳繃on鏂规硶娉ㄥ唽鐨刪andler.
-                        Mediator.trigger.apply( this, arguments ) === false ||
-    
-                        // 璋冪敤opts.onEvent
-                        $.isFunction( opts[ name ] ) &&
-                        opts[ name ].apply( this, args ) === false ||
-    
-                        // 璋冪敤this.onEvent
-                        $.isFunction( this[ name ] ) &&
-                        this[ name ].apply( this, args ) === false ||
-    
-                        // 骞挎挱鎵�鏈塽ploader鐨勪簨浠躲��
-                        Mediator.trigger.apply( Mediator,
-                        [ this, type ].concat( args ) ) === false ) {
-    
-                    return false;
-                }
-    
-                return true;
-            },
-    
-            // widgets/widget.js灏嗚ˉ鍏呮鏂规硶鐨勮缁嗘枃妗c��
-            request: Base.noop
-        });
-    
-        /**
-         * 鍒涘缓Uploader瀹炰緥锛岀瓑鍚屼簬new Uploader( opts );
-         * @method create
-         * @class Base
-         * @static
-         * @grammar Base.create( opts ) => Uploader
-         */
-        Base.create = Uploader.create = function( opts ) {
-            return new Uploader( opts );
-        };
-    
-        // 鏆撮湶Uploader锛屽彲浠ラ�氳繃瀹冩潵鎵╁睍涓氬姟閫昏緫銆�
-        Base.Uploader = Uploader;
-    
-        return Uploader;
-    });
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/runtime',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            factories = {},
-    
-            // 鑾峰彇瀵硅薄鐨勭涓�涓猭ey
-            getFirstKey = function( obj ) {
-                for ( var key in obj ) {
-                    if ( obj.hasOwnProperty( key ) ) {
-                        return key;
-                    }
-                }
-                return null;
-            };
-    
-        // 鎺ュ彛绫汇��
-        function Runtime( options ) {
-            this.options = $.extend({
-                container: document.body
-            }, options );
-            this.uid = Base.guid('rt_');
-        }
-    
-        $.extend( Runtime.prototype, {
-    
-            getContainer: function() {
-                var opts = this.options,
-                    parent, container;
-    
-                if ( this._container ) {
-                    return this._container;
-                }
-    
-                parent = $( opts.container || document.body );
-                container = $( document.createElement('div') );
-    
-                container.attr( 'id', 'rt_' + this.uid );
-                container.css({
-                    position: 'absolute',
-                    top: '0px',
-                    left: '0px',
-                    width: '1px',
-                    height: '1px',
-                    overflow: 'hidden'
-                });
-    
-                parent.append( container );
-                parent.addClass('webuploader-container');
-                this._container = container;
-                return container;
-            },
-    
-            init: Base.noop,
-            exec: Base.noop,
-    
-            destroy: function() {
-                if ( this._container ) {
-                    this._container.parentNode.removeChild( this.__container );
-                }
-    
-                this.off();
-            }
-        });
-    
-        Runtime.orders = 'html5,flash';
-    
-    
-        /**
-         * 娣诲姞Runtime瀹炵幇銆�
-         * @param {String} type    绫诲瀷
-         * @param {Runtime} factory 鍏蜂綋Runtime瀹炵幇銆�
-         */
-        Runtime.addRuntime = function( type, factory ) {
-            factories[ type ] = factory;
-        };
-    
-        Runtime.hasRuntime = function( type ) {
-            return !!(type ? factories[ type ] : getFirstKey( factories ));
-        };
-    
-        Runtime.create = function( opts, orders ) {
-            var type, runtime;
-    
-            orders = orders || Runtime.orders;
-            $.each( orders.split( /\s*,\s*/g ), function() {
-                if ( factories[ this ] ) {
-                    type = this;
-                    return false;
-                }
-            });
-    
-            type = type || getFirstKey( factories );
-    
-            if ( !type ) {
-                throw new Error('Runtime Error');
-            }
-    
-            runtime = new factories[ type ]( opts );
-            return runtime;
-        };
-    
-        Mediator.installTo( Runtime.prototype );
-        return Runtime;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/client',[
-        'base',
-        'mediator',
-        'runtime/runtime'
-    ], function( Base, Mediator, Runtime ) {
-    
-        var cache;
-    
-        cache = (function() {
-            var obj = {};
-    
-            return {
-                add: function( runtime ) {
-                    obj[ runtime.uid ] = runtime;
-                },
-    
-                get: function( ruid, standalone ) {
-                    var i;
-    
-                    if ( ruid ) {
-                        return obj[ ruid ];
-                    }
-    
-                    for ( i in obj ) {
-                        // 鏈変簺绫诲瀷涓嶈兘閲嶇敤锛屾瘮濡俧ilepicker.
-                        if ( standalone && obj[ i ].__standalone ) {
-                            continue;
-                        }
-    
-                        return obj[ i ];
-                    }
-    
-                    return null;
-                },
-    
-                remove: function( runtime ) {
-                    delete obj[ runtime.uid ];
-                }
-            };
-        })();
-    
-        function RuntimeClient( component, standalone ) {
-            var deferred = Base.Deferred(),
-                runtime;
-    
-            this.uid = Base.guid('client_');
-    
-            // 鍏佽runtime娌℃湁鍒濆鍖栦箣鍓嶏紝娉ㄥ唽涓�浜涙柟娉曞湪鍒濆鍖栧悗鎵ц銆�
-            this.runtimeReady = function( cb ) {
-                return deferred.done( cb );
-            };
-    
-            this.connectRuntime = function( opts, cb ) {
-    
-                // already connected.
-                if ( runtime ) {
-                    throw new Error('already connected!');
-                }
-    
-                deferred.done( cb );
-    
-                if ( typeof opts === 'string' && cache.get( opts ) ) {
-                    runtime = cache.get( opts );
-                }
-    
-                // 鍍廸ilePicker鍙兘鐙珛瀛樺湪锛屼笉鑳藉叕鐢ㄣ��
-                runtime = runtime || cache.get( null, standalone );
-    
-                // 闇�瑕佸垱寤�
-                if ( !runtime ) {
-                    runtime = Runtime.create( opts, opts.runtimeOrder );
-                    runtime.__promise = deferred.promise();
-                    runtime.once( 'ready', deferred.resolve );
-                    runtime.init();
-                    cache.add( runtime );
-                    runtime.__client = 1;
-                } else {
-                    // 鏉ヨ嚜cache
-                    Base.$.extend( runtime.options, opts );
-                    runtime.__promise.then( deferred.resolve );
-                    runtime.__client++;
-                }
-    
-                standalone && (runtime.__standalone = standalone);
-                return runtime;
-            };
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.disconnectRuntime = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                runtime.__client--;
-    
-                if ( runtime.__client <= 0 ) {
-                    cache.remove( runtime );
-                    delete runtime.__promise;
-                    runtime.destroy();
-                }
-    
-                runtime = null;
-            };
-    
-            this.exec = function() {
-                if ( !runtime ) {
-                    return;
-                }
-    
-                var args = Base.slice( arguments );
-                component && args.unshift( component );
-    
-                return runtime.exec.apply( this, args );
-            };
-    
-            this.getRuid = function() {
-                return runtime && runtime.uid;
-            };
-    
-            this.destroy = (function( destroy ) {
-                return function() {
-                    destroy && destroy.apply( this, arguments );
-                    this.trigger('destroy');
-                    this.off();
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                };
-            })( this.destroy );
-        }
-    
-        Mediator.installTo( RuntimeClient.prototype );
-        return RuntimeClient;
-    });
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/dnd',[
-        'base',
-        'mediator',
-        'runtime/client'
-    ], function( Base, Mediator, RuntimeClent ) {
-    
-        var $ = Base.$;
-    
-        function DragAndDrop( opts ) {
-            opts = this.options = $.extend({}, DragAndDrop.options, opts );
-    
-            opts.container = $( opts.container );
-    
-            if ( !opts.container.length ) {
-                return;
-            }
-    
-            RuntimeClent.call( this, 'DragAndDrop' );
-        }
-    
-        DragAndDrop.options = {
-            accept: null,
-            disableGlobalDnd: false
-        };
-    
-        Base.inherits( RuntimeClent, {
-            constructor: DragAndDrop,
-    
-            init: function() {
-                var me = this;
-    
-                me.connectRuntime( me.options, function() {
-                    me.exec('init');
-                    me.trigger('ready');
-                });
-            },
-    
-            destroy: function() {
-                this.disconnectRuntime();
-            }
-        });
-    
-        Mediator.installTo( DragAndDrop.prototype );
-    
-        return DragAndDrop;
-    });
-    /**
-     * @fileOverview 缁勪欢鍩虹被銆�
-     */
-    define('widgets/widget',[
-        'base',
-        'uploader'
-    ], function( Base, Uploader ) {
-    
-        var $ = Base.$,
-            _init = Uploader.prototype._init,
-            IGNORE = {},
-            widgetClass = [];
-    
-        function isArrayLike( obj ) {
-            if ( !obj ) {
-                return false;
-            }
-    
-            var length = obj.length,
-                type = $.type( obj );
-    
-            if ( obj.nodeType === 1 && length ) {
-                return true;
-            }
-    
-            return type === 'array' || type !== 'function' && type !== 'string' &&
-                    (length === 0 || typeof length === 'number' && length > 0 &&
-                    (length - 1) in obj);
-        }
-    
-        function Widget( uploader ) {
-            this.owner = uploader;
-            this.options = uploader.options;
-        }
-    
-        $.extend( Widget.prototype, {
-    
-            init: Base.noop,
-    
-            // 绫籅ackbone鐨勪簨浠剁洃鍚0鏄庯紝鐩戝惉uploader瀹炰緥涓婄殑浜嬩欢
-            // widget鐩存帴鏃犳硶鐩戝惉浜嬩欢锛屼簨浠跺彧鑳介�氳繃uploader鏉ヤ紶閫�
-            invoke: function( apiName, args ) {
-    
-                /*
-                    {
-                        'make-thumb': 'makeThumb'
-                    }
-                 */
-                var map = this.responseMap;
-    
-                // 濡傛灉鏃燗PI鍝嶅簲澹版槑鍒欏拷鐣�
-                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
-                        !$.isFunction( this[ map[ apiName ] ] ) ) {
-    
-                    return IGNORE;
-                }
-    
-                return this[ map[ apiName ] ].apply( this, args );
-    
-            },
-    
-            /**
-             * 鍙戦�佸懡浠ゃ�傚綋浼犲叆`callback`鎴栬�卄handler`涓繑鍥瀈promise`鏃躲�傝繑鍥炰竴涓綋鎵�鏈塦handler`涓殑promise閮藉畬鎴愬悗瀹屾垚鐨勬柊`promise`銆�
-             * @method request
-             * @grammar request( command, args ) => * | Promise
-             * @grammar request( command, args, callback ) => Promise
-             * @for  Uploader
-             */
-            request: function() {
-                return this.owner.request.apply( this.owner, arguments );
-            }
-        });
-    
-        // 鎵╁睍Uploader.
-        $.extend( Uploader.prototype, {
-    
-            // 瑕嗗啓_init鐢ㄦ潵鍒濆鍖杦idgets
-            _init: function() {
-                var me = this,
-                    widgets = me._widgets = [];
-    
-                $.each( widgetClass, function( _, klass ) {
-                    widgets.push( new klass( me ) );
-                });
-    
-                return _init.apply( me, arguments );
-            },
-    
-            request: function( apiName, args, callback ) {
-                var i = 0,
-                    widgets = this._widgets,
-                    len = widgets.length,
-                    rlts = [],
-                    dfds = [],
-                    widget, rlt, promise, key;
-    
-                args = isArrayLike( args ) ? args : [ args ];
-    
-                for ( ; i < len; i++ ) {
-                    widget = widgets[ i ];
-                    rlt = widget.invoke( apiName, args );
-    
-                    if ( rlt !== IGNORE ) {
-    
-                        // Deferred瀵硅薄
-                        if ( Base.isPromise( rlt ) ) {
-                            dfds.push( rlt );
-                        } else {
-                            rlts.push( rlt );
-                        }
-                    }
-                }
-    
-                // 濡傛灉鏈塩allback锛屽垯鐢ㄥ紓姝ユ柟寮忋��
-                if ( callback || dfds.length ) {
-                    promise = Base.when.apply( Base, dfds );
-                    key = promise.pipe ? 'pipe' : 'then';
-    
-                    // 寰堥噸瑕佷笉鑳藉垹闄ゃ�傚垹闄や簡浼氭寰幆銆�
-                    // 淇濊瘉鎵ц椤哄簭銆傝callback鎬绘槸鍦ㄤ笅涓�涓猼ick涓墽琛屻��
-                    return promise[ key ](function() {
-                                var deferred = Base.Deferred(),
-                                    args = arguments;
-    
-                                setTimeout(function() {
-                                    deferred.resolve.apply( deferred, args );
-                                }, 1 );
-    
-                                return deferred.promise();
-                            })[ key ]( callback || Base.noop );
-                } else {
-                    return rlts[ 0 ];
-                }
-            }
-        });
-    
-        /**
-         * 娣诲姞缁勪欢
-         * @param  {object} widgetProto 缁勪欢鍘熷瀷锛屾瀯閫犲嚱鏁伴�氳繃constructor灞炴�у畾涔�
-         * @param  {object} responseMap API鍚嶇О涓庡嚱鏁板疄鐜扮殑鏄犲皠
-         * @example
-         *     Uploader.register( {
-         *         init: function( options ) {},
-         *         makeThumb: function() {}
-         *     }, {
-         *         'make-thumb': 'makeThumb'
-         *     } );
-         */
-        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
-            var map = { init: 'init' },
-                klass;
-    
-            if ( arguments.length === 1 ) {
-                widgetProto = responseMap;
-                widgetProto.responseMap = map;
-            } else {
-                widgetProto.responseMap = $.extend( map, responseMap );
-            }
-    
-            klass = Base.inherits( Widget, widgetProto );
-            widgetClass.push( klass );
-    
-            return klass;
-        };
-    
-        return Widget;
-    });
-    /**
-     * @fileOverview DragAndDrop Widget銆�
-     */
-    define('widgets/filednd',[
-        'base',
-        'uploader',
-        'lib/dnd',
-        'widgets/widget'
-    ], function( Base, Uploader, Dnd ) {
-        var $ = Base.$;
-    
-        Uploader.options.dnd = '';
-    
-        /**
-         * @property {Selector} [dnd=undefined]  鎸囧畾Drag And Drop鎷栨嫿鐨勫鍣紝濡傛灉涓嶆寚瀹氾紝鍒欎笉鍚姩銆�
-         * @namespace options
-         * @for Uploader
-         */
-    
-        /**
-         * @event dndAccept
-         * @param {DataTransferItemList} items DataTransferItem
-         * @description 闃绘姝や簨浠跺彲浠ユ嫆缁濇煇浜涚被鍨嬬殑鏂囦欢鎷栧叆杩涙潵銆傜洰鍓嶅彧鏈� chrome 鎻愪緵杩欐牱鐨� API锛屼笖鍙兘閫氳繃 mime-type 楠岃瘉銆�
-         * @for  Uploader
-         */
-        return Uploader.register({
-            init: function( opts ) {
-    
-                if ( !opts.dnd ||
-                        this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                var me = this,
-                    deferred = Base.Deferred(),
-                    options = $.extend({}, {
-                        disableGlobalDnd: opts.disableGlobalDnd,
-                        container: opts.dnd,
-                        accept: opts.accept
-                    }),
-                    dnd;
-    
-                dnd = new Dnd( options );
-    
-                dnd.once( 'ready', deferred.resolve );
-                dnd.on( 'drop', function( files ) {
-                    me.request( 'add-file', [ files ]);
-                });
-    
-                // 妫�娴嬫枃浠舵槸鍚﹀叏閮ㄥ厑璁告坊鍔犮��
-                dnd.on( 'accept', function( items ) {
-                    return me.owner.trigger( 'dndAccept', items );
-                });
-    
-                dnd.init();
-    
-                return deferred.promise();
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/filepaste',[
-        'base',
-        'mediator',
-        'runtime/client'
-    ], function( Base, Mediator, RuntimeClent ) {
-    
-        var $ = Base.$;
-    
-        function FilePaste( opts ) {
-            opts = this.options = $.extend({}, opts );
-            opts.container = $( opts.container || document.body );
-            RuntimeClent.call( this, 'FilePaste' );
-        }
-    
-        Base.inherits( RuntimeClent, {
-            constructor: FilePaste,
-    
-            init: function() {
-                var me = this;
-    
-                me.connectRuntime( me.options, function() {
-                    me.exec('init');
-                    me.trigger('ready');
-                });
-            },
-    
-            destroy: function() {
-                this.exec('destroy');
-                this.disconnectRuntime();
-                this.off();
-            }
-        });
-    
-        Mediator.installTo( FilePaste.prototype );
-    
-        return FilePaste;
-    });
-    /**
-     * @fileOverview 缁勪欢鍩虹被銆�
-     */
-    define('widgets/filepaste',[
-        'base',
-        'uploader',
-        'lib/filepaste',
-        'widgets/widget'
-    ], function( Base, Uploader, FilePaste ) {
-        var $ = Base.$;
-    
-        /**
-         * @property {Selector} [paste=undefined]  鎸囧畾鐩戝惉paste浜嬩欢鐨勫鍣紝濡傛灉涓嶆寚瀹氾紝涓嶅惎鐢ㄦ鍔熻兘銆傛鍔熻兘涓洪�氳繃绮樿创鏉ユ坊鍔犳埅灞忕殑鍥剧墖銆傚缓璁缃负`document.body`.
-         * @namespace options
-         * @for Uploader
-         */
-        return Uploader.register({
-            init: function( opts ) {
-    
-                if ( !opts.paste ||
-                        this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                var me = this,
-                    deferred = Base.Deferred(),
-                    options = $.extend({}, {
-                        container: opts.paste,
-                        accept: opts.accept
-                    }),
-                    paste;
-    
-                paste = new FilePaste( options );
-    
-                paste.once( 'ready', deferred.resolve );
-                paste.on( 'paste', function( files ) {
-                    me.owner.request( 'add-file', [ files ]);
-                });
-                paste.init();
-    
-                return deferred.promise();
-            }
-        });
-    });
-    /**
-     * @fileOverview Blob
-     */
-    define('lib/blob',[
-        'base',
-        'runtime/client'
-    ], function( Base, RuntimeClient ) {
-    
-        function Blob( ruid, source ) {
-            var me = this;
-    
-            me.source = source;
-            me.ruid = ruid;
-    
-            RuntimeClient.call( me, 'Blob' );
-    
-            this.uid = source.uid || this.uid;
-            this.type = source.type || '';
-            this.size = source.size || 0;
-    
-            if ( ruid ) {
-                me.connectRuntime( ruid );
-            }
-        }
-    
-        Base.inherits( RuntimeClient, {
-            constructor: Blob,
-    
-            slice: function( start, end ) {
-                return this.exec( 'slice', start, end );
-            },
-    
-            getSource: function() {
-                return this.source;
-            }
-        });
-    
-        return Blob;
-    });
-    /**
-     * 涓轰簡缁熶竴鍖朏lash鐨凢ile鍜孒TML5鐨凢ile鑰屽瓨鍦ㄣ��
-     * 浠ヨ嚦浜庤璋冪敤Flash閲岄潰鐨凢ile锛屼篃鍙互鍍忚皟鐢℉TML5鐗堟湰鐨凢ile涓�涓嬨��
-     * @fileOverview File
-     */
-    define('lib/file',[
-        'base',
-        'lib/blob'
-    ], function( Base, Blob ) {
-    
-        var uid = 1,
-            rExt = /\.([^.]+)$/;
-    
-        function File( ruid, file ) {
-            var ext;
-    
-            Blob.apply( this, arguments );
-            this.name = file.name || ('untitled' + uid++);
-            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
-    
-            // todo 鏀寔鍏朵粬绫诲瀷鏂囦欢鐨勮浆鎹€��
-    
-            // 濡傛灉鏈塵imetype, 浣嗘槸鏂囦欢鍚嶉噷闈㈡病鏈夋壘鍑哄悗缂�瑙勫緥
-            if ( !ext && this.type ) {
-                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( this.type ) ?
-                        RegExp.$1.toLowerCase() : '';
-                this.name += '.' + ext;
-            }
-    
-            // 濡傛灉娌℃湁鎸囧畾mimetype, 浣嗘槸鐭ラ亾鏂囦欢鍚庣紑銆�
-            if ( !this.type &&  ~'jpg,jpeg,png,gif,bmp'.indexOf( ext ) ) {
-                this.type = 'image/' + (ext === 'jpg' ? 'jpeg' : ext);
-            }
-    
-            this.ext = ext;
-            this.lastModifiedDate = file.lastModifiedDate ||
-                    (new Date()).toLocaleString();
-        }
-    
-        return Base.inherits( Blob, File );
-    });
-    
-    /**
-     * @fileOverview 閿欒淇℃伅
-     */
-    define('lib/filepicker',[
-        'base',
-        'runtime/client',
-        'lib/file'
-    ], function( Base, RuntimeClent, File ) {
-    
-        var $ = Base.$;
-    
-        function FilePicker( opts ) {
-            opts = this.options = $.extend({}, FilePicker.options, opts );
-    
-            opts.container = $( opts.id );
-    
-            if ( !opts.container.length ) {
-                throw new Error('鎸夐挳鎸囧畾閿欒');
-            }
-    
-            opts.innerHTML = opts.innerHTML || opts.label ||
-                    opts.container.html() || '';
-    
-            opts.button = $( opts.button || document.createElement('div') );
-            opts.button.html( opts.innerHTML );
-            opts.container.html( opts.button );
-    
-            RuntimeClent.call( this, 'FilePicker', true );
-        }
-    
-        FilePicker.options = {
-            button: null,
-            container: null,
-            label: null,
-            innerHTML: null,
-            multiple: true,
-            accept: null,
-            name: 'file'
-        };
-    
-        Base.inherits( RuntimeClent, {
-            constructor: FilePicker,
-    
-            init: function() {
-                var me = this,
-                    opts = me.options,
-                    button = opts.button;
-    
-                button.addClass('webuploader-pick');
-    
-                me.on( 'all', function( type ) {
-                    var files;
-    
-                    switch ( type ) {
-                        case 'mouseenter':
-                            button.addClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'mouseleave':
-                            button.removeClass('webuploader-pick-hover');
-                            break;
-    
-                        case 'change':
-                            files = me.exec('getFiles');
-                            me.trigger( 'select', $.map( files, function( file ) {
-                                file = new File( me.getRuid(), file );
-    
-                                // 璁板綍鏉ユ簮銆�
-                                file._refer = opts.container;
-                                return file;
-                            }), opts.container );
-                            break;
-                    }
-                });
-    
-                me.connectRuntime( opts, function() {
-                    me.refresh();
-                    me.exec( 'init', opts );
-                    me.trigger('ready');
-                });
-    
-                $( window ).on( 'resize', function() {
-                    me.refresh();
-                });
-            },
-    
-            refresh: function() {
-                var shimContainer = this.getRuntime().getContainer(),
-                    button = this.options.button,
-                    width = button.outerWidth ?
-                            button.outerWidth() : button.width(),
-    
-                    height = button.outerHeight ?
-                            button.outerHeight() : button.height(),
-    
-                    pos = button.offset();
-    
-                width && height && shimContainer.css({
-                    bottom: 'auto',
-                    right: 'auto',
-                    width: width + 'px',
-                    height: height + 'px'
-                }).offset( pos );
-            },
-    
-            enable: function() {
-                var btn = this.options.button;
-    
-                btn.removeClass('webuploader-pick-disable');
-                this.refresh();
-            },
-    
-            disable: function() {
-                var btn = this.options.button;
-    
-                this.getRuntime().getContainer().css({
-                    top: '-99999px'
-                });
-    
-                btn.addClass('webuploader-pick-disable');
-            },
-    
-            destroy: function() {
-                if ( this.runtime ) {
-                    this.exec('destroy');
-                    this.disconnectRuntime();
-                }
-            }
-        });
-    
-        return FilePicker;
-    });
-    
-    /**
-     * @fileOverview 鏂囦欢閫夋嫨鐩稿叧
-     */
-    define('widgets/filepicker',[
-        'base',
-        'uploader',
-        'lib/filepicker',
-        'widgets/widget'
-    ], function( Base, Uploader, FilePicker ) {
-        var $ = Base.$;
-    
-        $.extend( Uploader.options, {
-    
-            /**
-             * @property {Selector | Object} [pick=undefined]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             *
-             * * `id` {Seletor} 鎸囧畾閫夋嫨鏂囦欢鐨勬寜閽鍣紝涓嶆寚瀹氬垯涓嶅垱寤烘寜閽��
-             * * `label` {String} 璇烽噰鐢� `innerHTML` 浠f浛
-             * * `innerHTML` {String} 鎸囧畾鎸夐挳鏂囧瓧銆備笉鎸囧畾鏃朵紭鍏堜粠鎸囧畾鐨勫鍣ㄤ腑鐪嬫槸鍚﹁嚜甯︽枃瀛椼��
-             * * `multiple` {Boolean} 鏄惁寮�璧峰悓鏃堕�夋嫨澶氫釜鏂囦欢鑳藉姏銆�
-             */
-            pick: null,
-    
-            /**
-             * @property {Arroy} [accept=null]
-             * @namespace options
-             * @for Uploader
-             * @description 鎸囧畾鎺ュ彈鍝簺绫诲瀷鐨勬枃浠躲�� 鐢变簬鐩墠杩樻湁ext杞琺imeType琛紝鎵�浠ヨ繖閲岄渶瑕佸垎寮�鎸囧畾銆�
-             *
-             * * `title` {String} 鏂囧瓧鎻忚堪
-             * * `extensions` {String} 鍏佽鐨勬枃浠跺悗缂�锛屼笉甯︾偣锛屽涓敤閫楀彿鍒嗗壊銆�
-             * * `mimeTypes` {String} 澶氫釜鐢ㄩ�楀彿鍒嗗壊銆�
-             *
-             * 濡傦細
-             *
-             * ```
-             * {
-             *     title: 'Images',
-             *     extensions: 'gif,jpg,jpeg,bmp,png',
-             *     mimeTypes: 'image/*'
-             * }
-             * ```
-             */
-            accept: null/*{
-                title: 'Images',
-                extensions: 'gif,jpg,jpeg,bmp,png',
-                mimeTypes: 'image/*'
-            }*/
-        });
-    
-        return Uploader.register({
-            'add-btn': 'addButton',
-            refresh: 'refresh',
-            disable: 'disable',
-            enable: 'enable'
-        }, {
-    
-            init: function( opts ) {
-                this.pickers = [];
-                return opts.pick && this.addButton( opts.pick );
-            },
-    
-            refresh: function() {
-                $.each( this.pickers, function() {
-                    this.refresh();
-                });
-            },
-    
-            /**
-             * @method addButton
-             * @for Uploader
-             * @grammar addButton( pick ) => Promise
-             * @description
-             * 娣诲姞鏂囦欢閫夋嫨鎸夐挳锛屽鏋滀竴涓寜閽笉澶燂紝闇�瑕佽皟鐢ㄦ鏂规硶鏉ユ坊鍔犮�傚弬鏁拌窡[options.pick](#WebUploader:Uploader:options)涓�鑷淬��
-             * @example
-             * uploader.addButton({
-             *     id: '#btnContainer',
-             *     innerHTML: '閫夋嫨鏂囦欢'
-             * });
-             */
-            addButton: function( pick ) {
-                var me = this,
-                    opts = me.options,
-                    accept = opts.accept,
-                    options, picker, deferred;
-    
-                if ( !pick ) {
-                    return;
-                }
-    
-                deferred = Base.Deferred();
-                $.isPlainObject( pick ) || (pick = {
-                    id: pick
-                });
-    
-                options = $.extend({}, pick, {
-                    accept: $.isPlainObject( accept ) ? [ accept ] : accept,
-                    swf: opts.swf,
-                    runtimeOrder: opts.runtimeOrder
-                });
-    
-                picker = new FilePicker( options );
-    
-                picker.once( 'ready', deferred.resolve );
-                picker.on( 'select', function( files ) {
-                    me.owner.request( 'add-file', [ files ]);
-                });
-                picker.init();
-    
-                this.pickers.push( picker );
-    
-                return deferred.promise();
-            },
-    
-            disable: function() {
-                $.each( this.pickers, function() {
-                    this.disable();
-                });
-            },
-    
-            enable: function() {
-                $.each( this.pickers, function() {
-                    this.enable();
-                });
-            }
-        });
-    });
-    /**
-     * @fileOverview 鏂囦欢灞炴�у皝瑁�
-     */
-    define('file',[
-        'base',
-        'mediator'
-    ], function( Base, Mediator ) {
-    
-        var $ = Base.$,
-            idPrefix = 'WU_FILE_',
-            idSuffix = 0,
-            rExt = /\.([^.]+)$/,
-            statusMap = {};
-    
-        function gid() {
-            return idPrefix + idSuffix++;
-        }
-    
-        /**
-         * 鏂囦欢绫�
-         * @class File
-         * @constructor 鏋勯�犲嚱鏁�
-         * @grammar new File( source ) => File
-         * @param {Lib.File} source [lib.File](#Lib.File)瀹炰緥, 姝ource瀵硅薄鏄甫鏈塕untime淇℃伅鐨勩��
-         */
-        function WUFile( source ) {
-    
-            /**
-             * 鏂囦欢鍚嶏紝鍖呮嫭鎵╁睍鍚嶏紙鍚庣紑锛�
-             * @property name
-             * @type {string}
-             */
-            this.name = source.name || 'Untitled';
-    
-            /**
-             * 鏂囦欢浣撶Н锛堝瓧鑺傦級
-             * @property size
-             * @type {uint}
-             * @default 0
-             */
-            this.size = source.size || 0;
-    
-            /**
-             * 鏂囦欢MIMETYPE绫诲瀷锛屼笌鏂囦欢绫诲瀷鐨勫搴斿叧绯昏鍙傝�僛http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
-             * @property type
-             * @type {string}
-             * @default 'application'
-             */
-            this.type = source.type || 'application';
-    
-            /**
-             * 鏂囦欢鏈�鍚庝慨鏀规棩鏈�
-             * @property lastModifiedDate
-             * @type {int}
-             * @default 褰撳墠鏃堕棿鎴�
-             */
-            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
-    
-            /**
-             * 鏂囦欢ID锛屾瘡涓璞″叿鏈夊敮涓�ID锛屼笌鏂囦欢鍚嶆棤鍏�
-             * @property id
-             * @type {string}
-             */
-            this.id = gid();
-    
-            /**
-             * 鏂囦欢鎵╁睍鍚嶏紝閫氳繃鏂囦欢鍚嶈幏鍙栵紝渚嬪test.png鐨勬墿灞曞悕涓簆ng
-             * @property ext
-             * @type {string}
-             */
-            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
-    
-    
-            /**
-             * 鐘舵�佹枃瀛楄鏄庛�傚湪涓嶅悓鐨剆tatus璇涓嬫湁涓嶅悓鐨勭敤閫斻��
-             * @property statusText
-             * @type {string}
-             */
-            this.statusText = '';
-    
-            // 瀛樺偍鏂囦欢鐘舵�侊紝闃叉閫氳繃灞炴�х洿鎺ヤ慨鏀�
-            statusMap[ this.id ] = WUFile.Status.INITED;
-    
-            this.source = source;
-            this.loaded = 0;
-    
-            this.on( 'error', function( msg ) {
-                this.setStatus( WUFile.Status.ERROR, msg );
-            });
-        }
-    
-        $.extend( WUFile.prototype, {
-    
-            /**
-             * 璁剧疆鐘舵�侊紝鐘舵�佸彉鍖栨椂浼氳Е鍙慲change`浜嬩欢銆�
-             * @method setStatus
-             * @grammar setStatus( status[, statusText] );
-             * @param {File.Status|String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @param {String} [statusText=''] 鐘舵�佽鏄庯紝甯稿湪error鏃朵娇鐢紝鐢╤ttp, abort,server绛夋潵鏍囪鏄敱浜庝粈涔堝師鍥犲鑷存枃浠堕敊璇��
-             */
-            setStatus: function( status, text ) {
-    
-                var prevStatus = statusMap[ this.id ];
-    
-                typeof text !== 'undefined' && (this.statusText = text);
-    
-                if ( status !== prevStatus ) {
-                    statusMap[ this.id ] = status;
-                    /**
-                     * 鏂囦欢鐘舵�佸彉鍖�
-                     * @event statuschange
-                     */
-                    this.trigger( 'statuschange', status, prevStatus );
-                }
-    
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鐘舵��
-             * @return {File.Status}
-             * @example
-                     鏂囦欢鐘舵�佸叿浣撳寘鎷互涓嬪嚑绉嶇被鍨嬶細
-                     {
-                         // 鍒濆鍖�
-                        INITED:     0,
-                        // 宸插叆闃熷垪
-                        QUEUED:     1,
-                        // 姝e湪涓婁紶
-                        PROGRESS:     2,
-                        // 涓婁紶鍑洪敊
-                        ERROR:         3,
-                        // 涓婁紶鎴愬姛
-                        COMPLETE:     4,
-                        // 涓婁紶鍙栨秷
-                        CANCELLED:     5
-                    }
-             */
-            getStatus: function() {
-                return statusMap[ this.id ];
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢鍘熷淇℃伅銆�
-             * @return {*}
-             */
-            getSource: function() {
-                return this.source;
-            },
-    
-            destory: function() {
-                delete statusMap[ this.id ];
-            }
-        });
-    
-        Mediator.installTo( WUFile.prototype );
-    
-        /**
-         * 鏂囦欢鐘舵�佸�硷紝鍏蜂綋鍖呮嫭浠ヤ笅鍑犵绫诲瀷锛�
-         * * `inited` 鍒濆鐘舵��
-         * * `queued` 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-         * * `progress` 涓婁紶涓�
-         * * `complete` 涓婁紶瀹屾垚銆�
-         * * `error` 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-         * * `interrupt` 涓婁紶涓柇锛屽彲缁紶銆�
-         * * `invalid` 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆備細鑷姩浠庨槦鍒椾腑绉婚櫎銆�
-         * * `cancelled` 鏂囦欢琚Щ闄ゃ��
-         * @property {Object} Status
-         * @namespace File
-         * @class File
-         * @static
-         */
-        WUFile.Status = {
-            INITED:     'inited',    // 鍒濆鐘舵��
-            QUEUED:     'queued',    // 宸茬粡杩涘叆闃熷垪, 绛夊緟涓婁紶
-            PROGRESS:   'progress',    // 涓婁紶涓�
-            ERROR:      'error',    // 涓婁紶鍑洪敊锛屽彲閲嶈瘯
-            COMPLETE:   'complete',    // 涓婁紶瀹屾垚銆�
-            CANCELLED:  'cancelled',    // 涓婁紶鍙栨秷銆�
-            INTERRUPT:  'interrupt',    // 涓婁紶涓柇锛屽彲缁紶銆�
-            INVALID:    'invalid'    // 鏂囦欢涓嶅悎鏍硷紝涓嶈兘閲嶈瘯涓婁紶銆�
-        };
-    
-        return WUFile;
-    });
-    
-    /**
-     * @fileOverview 鏂囦欢闃熷垪
-     */
-    define('queue',[
-        'base',
-        'mediator',
-        'file'
-    ], function( Base, Mediator, WUFile ) {
-    
-        var $ = Base.$,
-            STATUS = WUFile.Status;
-    
-        /**
-         * 鏂囦欢闃熷垪, 鐢ㄦ潵瀛樺偍鍚勪釜鐘舵�佷腑鐨勬枃浠躲��
-         * @class Queue
-         * @extends Mediator
-         */
-        function Queue() {
-    
-            /**
-             * 缁熻鏂囦欢鏁般��
-             * * `numOfQueue` 闃熷垪涓殑鏂囦欢鏁般��
-             * * `numOfSuccess` 涓婁紶鎴愬姛鐨勬枃浠舵暟
-             * * `numOfCancel` 琚Щ闄ょ殑鏂囦欢鏁�
-             * * `numOfProgress` 姝e湪涓婁紶涓殑鏂囦欢鏁�
-             * * `numOfUploadFailed` 涓婁紶閿欒鐨勬枃浠舵暟銆�
-             * * `numOfInvalid` 鏃犳晥鐨勬枃浠舵暟銆�
-             * @property {Object} stats
-             */
-            this.stats = {
-                numOfQueue: 0,
-                numOfSuccess: 0,
-                numOfCancel: 0,
-                numOfProgress: 0,
-                numOfUploadFailed: 0,
-                numOfInvalid: 0
-            };
-    
-            // 涓婁紶闃熷垪锛屼粎鍖呮嫭绛夊緟涓婁紶鐨勬枃浠�
-            this._queue = [];
-    
-            // 瀛樺偍鎵�鏈夋枃浠�
-            this._map = {};
-        }
-    
-        $.extend( Queue.prototype, {
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀熬閮�
-             *
-             * @method append
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            append: function( file ) {
-                this._queue.push( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 灏嗘柊鏂囦欢鍔犲叆瀵归槦鍒楀ご閮�
-             *
-             * @method prepend
-             * @param  {File} file   鏂囦欢瀵硅薄
-             */
-            prepend: function( file ) {
-                this._queue.unshift( file );
-                this._fileAdded( file );
-                return this;
-            },
-    
-            /**
-             * 鑾峰彇鏂囦欢瀵硅薄
-             *
-             * @method getFile
-             * @param  {String} fileId   鏂囦欢ID
-             * @return {File}
-             */
-            getFile: function( fileId ) {
-                if ( typeof fileId !== 'string' ) {
-                    return fileId;
-                }
-                return this._map[ fileId ];
-            },
-    
-            /**
-             * 浠庨槦鍒椾腑鍙栧嚭涓�涓寚瀹氱姸鎬佺殑鏂囦欢銆�
-             * @grammar fetch( status ) => File
-             * @method fetch
-             * @param {String} status [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             * @return {File} [File](#WebUploader:File)
-             */
-            fetch: function( status ) {
-                var len = this._queue.length,
-                    i, file;
-    
-                status = status || STATUS.QUEUED;
-    
-                for ( i = 0; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( status === file.getStatus() ) {
-                        return file;
-                    }
-                }
-    
-                return null;
-            },
-    
-            /**
-             * 瀵归槦鍒楄繘琛屾帓搴忥紝鑳藉鎺у埗鏂囦欢涓婁紶椤哄簭銆�
-             * @grammar sort( fn ) => undefined
-             * @method sort
-             * @param {Function} fn 鎺掑簭鏂规硶
-             */
-            sort: function( fn ) {
-                if ( typeof fn === 'function' ) {
-                    this._queue.sort( fn );
-                }
-            },
-    
-            /**
-             * 鑾峰彇鎸囧畾绫诲瀷鐨勬枃浠跺垪琛�, 鍒楄〃涓瘡涓�涓垚鍛樹负[File](#WebUploader:File)瀵硅薄銆�
-             * @grammar getFiles( [status1[, status2 ...]] ) => Array
-             * @method getFiles
-             * @param {String} [status] [鏂囦欢鐘舵�佸�糫(#WebUploader:File:File.Status)
-             */
-            getFiles: function() {
-                var sts = [].slice.call( arguments, 0 ),
-                    ret = [],
-                    i = 0,
-                    len = this._queue.length,
-                    file;
-    
-                for ( ; i < len; i++ ) {
-                    file = this._queue[ i ];
-    
-                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
-                        continue;
-                    }
-    
-                    ret.push( file );
-                }
-    
-                return ret;
-            },
-    
-            _fileAdded: function( file ) {
-                var me = this,
-                    existing = this._map[ file.id ];
-    
-                if ( !existing ) {
-                    this._map[ file.id ] = file;
-    
-                    file.on( 'statuschange', function( cur, pre ) {
-                        me._onFileStatusChange( cur, pre );
-                    });
-                }
-    
-                file.setStatus( STATUS.QUEUED );
-            },
-    
-            _onFileStatusChange: function( curStatus, preStatus ) {
-                var stats = this.stats;
-    
-                switch ( preStatus ) {
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress--;
-                        break;
-    
-                    case STATUS.QUEUED:
-                        stats.numOfQueue --;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed--;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid--;
-                        break;
-                }
-    
-                switch ( curStatus ) {
-                    case STATUS.QUEUED:
-                        stats.numOfQueue++;
-                        break;
-    
-                    case STATUS.PROGRESS:
-                        stats.numOfProgress++;
-                        break;
-    
-                    case STATUS.ERROR:
-                        stats.numOfUploadFailed++;
-                        break;
-    
-                    case STATUS.COMPLETE:
-                        stats.numOfSuccess++;
-                        break;
-    
-                    case STATUS.CANCELLED:
-                        stats.numOfCancel++;
-                        break;
-    
-                    case STATUS.INVALID:
-                        stats.numOfInvalid++;
-                        break;
-                }
-            }
-    
-        });
-    
-        Mediator.installTo( Queue.prototype );
-    
-        return Queue;
-    });
-    /**
-     * @fileOverview 闃熷垪
-     */
-    define('widgets/queue',[
-        'base',
-        'uploader',
-        'queue',
-        'file',
-        'lib/file',
-        'runtime/client',
-        'widgets/widget'
-    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
-    
-        var $ = Base.$,
-            rExt = /\.\w+$/,
-            Status = WUFile.Status;
-    
-        return Uploader.register({
-            'sort-files': 'sortFiles',
-            'add-file': 'addFiles',
-            'get-file': 'getFile',
-            'fetch-file': 'fetchFile',
-            'get-stats': 'getStats',
-            'get-files': 'getFiles',
-            'remove-file': 'removeFile',
-            'retry': 'retry',
-            'reset': 'reset',
-            'accept-file': 'acceptFile'
-        }, {
-    
-            init: function( opts ) {
-                var me = this,
-                    deferred, len, i, item, arr, accept, runtime;
-    
-                if ( $.isPlainObject( opts.accept ) ) {
-                    opts.accept = [ opts.accept ];
-                }
-    
-                // accept涓殑涓敓鎴愬尮閰嶆鍒欍��
-                if ( opts.accept ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        item = opts.accept[ i ].extensions;
-                        item && arr.push( item );
-                    }
-    
-                    if ( arr.length ) {
-                        accept = '\\.' + arr.join(',')
-                                .replace( /,/g, '$|\\.' )
-                                .replace( /\*/g, '.*' ) + '$';
-                    }
-    
-                    me.accept = new RegExp( accept, 'i' );
-                }
-    
-                me.queue = new Queue();
-                me.stats = me.queue.stats;
-    
-                // 濡傛灉褰撳墠涓嶆槸html5杩愯鏃讹紝閭e氨绠椾簡銆�
-                // 涓嶆墽琛屽悗缁搷浣�
-                if ( this.request('predict-runtime-type') !== 'html5' ) {
-                    return;
-                }
-    
-                // 鍒涘缓涓�涓� html5 杩愯鏃剁殑 placeholder
-                // 浠ヨ嚦浜庡閮ㄦ坊鍔犲師鐢� File 瀵硅薄鐨勬椂鍊欒兘姝g‘鍖呰9涓�涓嬩緵 webuploader 浣跨敤銆�
-                deferred = Base.Deferred();
-                runtime = new RuntimeClient('Placeholder');
-                runtime.connectRuntime({
-                    runtimeOrder: 'html5'
-                }, function() {
-                    me._ruid = runtime.getRuid();
-                    deferred.resolve();
-                });
-                return deferred.promise();
-            },
-    
-    
-            // 涓轰簡鏀寔澶栭儴鐩存帴娣诲姞涓�涓師鐢烣ile瀵硅薄銆�
-            _wrapFile: function( file ) {
-                if ( !(file instanceof WUFile) ) {
-    
-                    if ( !(file instanceof File) ) {
-                        if ( !this._ruid ) {
-                            throw new Error('Can\'t add external files.');
-                        }
-                        file = new File( this._ruid, file );
-                    }
-    
-                    file = new WUFile( file );
-                }
-    
-                return file;
-            },
-    
-            // 鍒ゆ柇鏂囦欢鏄惁鍙互琚姞鍏ラ槦鍒�
-            acceptFile: function( file ) {
-                var invalid = !file || file.size < 6 || this.accept &&
-    
-                        // 濡傛灉鍚嶅瓧涓湁鍚庣紑锛屾墠鍋氬悗缂�鐧藉悕鍗曞鐞嗐��
-                        rExt.exec( file.name ) && !this.accept.test( file.name );
-    
-                return !invalid;
-            },
-    
-    
-            /**
-             * @event beforeFileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪涔嬪墠瑙﹀彂锛屾浜嬩欢鐨刪andler杩斿洖鍊间负`false`锛屽垯姝ゆ枃浠朵笉浼氳娣诲姞杩涘叆闃熷垪銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event fileQueued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰鍔犲叆闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            _addFile: function( file ) {
-                var me = this;
-    
-                file = me._wrapFile( file );
-    
-                // 涓嶈繃绫诲瀷鍒ゆ柇鍏佽涓嶅厑璁革紝鍏堟淳閫� `beforeFileQueued`
-                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
-                    return;
-                }
-    
-                // 绫诲瀷涓嶅尮閰嶏紝鍒欐淳閫侀敊璇簨浠讹紝骞惰繑鍥炪��
-                if ( !me.acceptFile( file ) ) {
-                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
-                    return;
-                }
-    
-                me.queue.append( file );
-                me.owner.trigger( 'fileQueued', file );
-                return file;
-            },
-    
-            getFile: function( fileId ) {
-                return this.queue.getFile( fileId );
-            },
-    
-            /**
-             * @event filesQueued
-             * @param {File} files 鏁扮粍锛屽唴瀹逛负鍘熷File(lib/File锛夊璞°��
-             * @description 褰撲竴鎵规枃浠舵坊鍔犺繘闃熷垪浠ュ悗瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @method addFiles
-             * @grammar addFiles( file ) => undefined
-             * @grammar addFiles( [file1, file2 ...] ) => undefined
-             * @param {Array of File or File} [files] Files 瀵硅薄 鏁扮粍
-             * @description 娣诲姞鏂囦欢鍒伴槦鍒�
-             * @for  Uploader
-             */
-            addFiles: function( files ) {
-                var me = this;
-    
-                if ( !files.length ) {
-                    files = [ files ];
-                }
-    
-                files = $.map( files, function( file ) {
-                    return me._addFile( file );
-                });
-    
-                me.owner.trigger( 'filesQueued', files );
-    
-                if ( me.options.auto ) {
-                    me.request('start-upload');
-                }
-            },
-    
-            getStats: function() {
-                return this.stats;
-            },
-    
-            /**
-             * @event fileDequeued
-             * @param {File} file File瀵硅薄
-             * @description 褰撴枃浠惰绉婚櫎闃熷垪鍚庤Е鍙戙��
-             * @for  Uploader
-             */
-    
-            /**
-             * @method removeFile
-             * @grammar removeFile( file ) => undefined
-             * @grammar removeFile( id ) => undefined
-             * @param {File|id} file File瀵硅薄鎴栬繖File瀵硅薄鐨刬d
-             * @description 绉婚櫎鏌愪竴鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             *
-             * $li.on('click', '.remove-this', function() {
-             *     uploader.removeFile( file );
-             * })
-             */
-            removeFile: function( file ) {
-                var me = this;
-    
-                file = file.id ? file : me.queue.getFile( file );
-    
-                file.setStatus( Status.CANCELLED );
-                me.owner.trigger( 'fileDequeued', file );
-            },
-    
-            /**
-             * @method getFiles
-             * @grammar getFiles() => Array
-             * @grammar getFiles( status1, status2, status... ) => Array
-             * @description 杩斿洖鎸囧畾鐘舵�佺殑鏂囦欢闆嗗悎锛屼笉浼犲弬鏁板皢杩斿洖鎵�鏈夌姸鎬佺殑鏂囦欢銆�
-             * @for  Uploader
-             * @example
-             * console.log( uploader.getFiles() );    // => all files
-             * console.log( uploader.getFiles('error') )    // => all error files.
-             */
-            getFiles: function() {
-                return this.queue.getFiles.apply( this.queue, arguments );
-            },
-    
-            fetchFile: function() {
-                return this.queue.fetch.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method retry
-             * @grammar retry() => undefined
-             * @grammar retry( file ) => undefined
-             * @description 閲嶈瘯涓婁紶锛岄噸璇曟寚瀹氭枃浠讹紝鎴栬�呬粠鍑洪敊鐨勬枃浠跺紑濮嬮噸鏂颁笂浼犮��
-             * @for  Uploader
-             * @example
-             * function retry() {
-             *     uploader.retry();
-             * }
-             */
-            retry: function( file, noForceStart ) {
-                var me = this,
-                    files, i, len;
-    
-                if ( file ) {
-                    file = file.id ? file : me.queue.getFile( file );
-                    file.setStatus( Status.QUEUED );
-                    noForceStart || me.request('start-upload');
-                    return;
-                }
-    
-                files = me.queue.getFiles( Status.ERROR );
-                i = 0;
-                len = files.length;
-    
-                for ( ; i < len; i++ ) {
-                    file = files[ i ];
-                    file.setStatus( Status.QUEUED );
-                }
-    
-                me.request('start-upload');
-            },
-    
-            /**
-             * @method sort
-             * @grammar sort( fn ) => undefined
-             * @description 鎺掑簭闃熷垪涓殑鏂囦欢锛屽湪涓婁紶涔嬪墠璋冩暣鍙互鎺у埗涓婁紶椤哄簭銆�
-             * @for  Uploader
-             */
-            sortFiles: function() {
-                return this.queue.sort.apply( this.queue, arguments );
-            },
-    
-            /**
-             * @method reset
-             * @grammar reset() => undefined
-             * @description 閲嶇疆uploader銆傜洰鍓嶅彧閲嶇疆浜嗛槦鍒椼��
-             * @for  Uploader
-             * @example
-             * uploader.reset();
-             */
-            reset: function() {
-                this.queue = new Queue();
-                this.stats = this.queue.stats;
-            }
-        });
-    
-    });
-    /**
-     * @fileOverview 娣诲姞鑾峰彇Runtime鐩稿叧淇℃伅鐨勬柟娉曘��
-     */
-    define('widgets/runtime',[
-        'uploader',
-        'runtime/runtime',
-        'widgets/widget'
-    ], function( Uploader, Runtime ) {
-    
-        Uploader.support = function() {
-            return Runtime.hasRuntime.apply( Runtime, arguments );
-        };
-    
-        return Uploader.register({
-            'predict-runtime-type': 'predictRuntmeType'
-        }, {
-    
-            init: function() {
-                if ( !this.predictRuntmeType() ) {
-                    throw Error('Runtime Error');
-                }
-            },
-    
-            /**
-             * 棰勬祴Uploader灏嗛噰鐢ㄥ摢涓猔Runtime`
-             * @grammar predictRuntmeType() => String
-             * @method predictRuntmeType
-             * @for  Uploader
-             */
-            predictRuntmeType: function() {
-                var orders = this.options.runtimeOrder || Runtime.orders,
-                    type = this.type,
-                    i, len;
-    
-                if ( !type ) {
-                    orders = orders.split( /\s*,\s*/g );
-    
-                    for ( i = 0, len = orders.length; i < len; i++ ) {
-                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
-                            this.type = type = orders[ i ];
-                            break;
-                        }
-                    }
-                }
-    
-                return type;
-            }
-        });
-    });
-    /**
-     * @fileOverview Transport
-     */
-    define('lib/transport',[
-        'base',
-        'runtime/client',
-        'mediator'
-    ], function( Base, RuntimeClient, Mediator ) {
-    
-        var $ = Base.$;
-    
-        function Transport( opts ) {
-            var me = this;
-    
-            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
-            RuntimeClient.call( this, 'Transport' );
-    
-            this._blob = null;
-            this._formData = opts.formData || {};
-            this._headers = opts.headers || {};
-    
-            this.on( 'progress', this._timeout );
-            this.on( 'load error', function() {
-                me.trigger( 'progress', 1 );
-                clearTimeout( me._timer );
-            });
-        }
-    
-        Transport.options = {
-            server: '',
-            method: 'POST',
-    
-            // 璺ㄥ煙鏃讹紝鏄惁鍏佽鎼哄甫cookie, 鍙湁html5 runtime鎵嶆湁鏁�
-            withCredentials: false,
-            fileVal: 'file',
-            timeout: 2 * 60 * 1000,    // 2鍒嗛挓
-            formData: {},
-            headers: {},
-            sendAsBinary: false
-        };
-    
-        $.extend( Transport.prototype, {
-    
-            // 娣诲姞Blob, 鍙兘娣诲姞涓�娆★紝鏈�鍚庝竴娆℃湁鏁堛��
-            appendBlob: function( key, blob, filename ) {
-                var me = this,
-                    opts = me.options;
-    
-                if ( me.getRuid() ) {
-                    me.disconnectRuntime();
-                }
-    
-                // 杩炴帴鍒癰lob褰掑睘鐨勫悓涓�涓猺untime.
-                me.connectRuntime( blob.ruid, function() {
-                    me.exec('init');
-                });
-    
-                me._blob = blob;
-                opts.fileVal = key || opts.fileVal;
-                opts.filename = filename || opts.filename;
-            },
-    
-            // 娣诲姞鍏朵粬瀛楁
-            append: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._formData, key );
-                } else {
-                    this._formData[ key ] = value;
-                }
-            },
-    
-            setRequestHeader: function( key, value ) {
-                if ( typeof key === 'object' ) {
-                    $.extend( this._headers, key );
-                } else {
-                    this._headers[ key ] = value;
-                }
-            },
-    
-            send: function( method ) {
-                this.exec( 'send', method );
-                this._timeout();
-            },
-    
-            abort: function() {
-                clearTimeout( this._timer );
-                return this.exec('abort');
-            },
-    
-            destroy: function() {
-                this.trigger('destroy');
-                this.off();
-                this.exec('destroy');
-                this.disconnectRuntime();
-            },
-    
-            getResponse: function() {
-                return this.exec('getResponse');
-            },
-    
-            getResponseAsJson: function() {
-                return this.exec('getResponseAsJson');
-            },
-    
-            getStatus: function() {
-                return this.exec('getStatus');
-            },
-    
-            _timeout: function() {
-                var me = this,
-                    duration = me.options.timeout;
-    
-                if ( !duration ) {
-                    return;
-                }
-    
-                clearTimeout( me._timer );
-                me._timer = setTimeout(function() {
-                    me.abort();
-                    me.trigger( 'error', 'timeout' );
-                }, duration );
-            }
-    
-        });
-    
-        // 璁㏕ransport鍏峰浜嬩欢鍔熻兘銆�
-        Mediator.installTo( Transport.prototype );
-    
-        return Transport;
-    });
-    /**
-     * @fileOverview 璐熻矗鏂囦欢涓婁紶鐩稿叧銆�
-     */
-    define('widgets/upload',[
-        'base',
-        'uploader',
-        'file',
-        'lib/transport',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile, Transport ) {
-    
-        var $ = Base.$,
-            isPromise = Base.isPromise,
-            Status = WUFile.Status;
-    
-        // 娣诲姞榛樿閰嶇疆椤�
-        $.extend( Uploader.options, {
-    
-    
-            /**
-             * @property {Boolean} [prepareNextFile=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁鍏佽鍦ㄦ枃浠朵紶杈撴椂鎻愬墠鎶婁笅涓�涓枃浠跺噯澶囧ソ銆�
-             * 瀵逛簬涓�涓枃浠剁殑鍑嗗宸ヤ綔姣旇緝鑰楁椂锛屾瘮濡傚浘鐗囧帇缂╋紝md5搴忓垪鍖栥��
-             * 濡傛灉鑳芥彁鍓嶅湪褰撳墠鏂囦欢浼犺緭鏈熷鐞嗭紝鍙互鑺傜渷鎬讳綋鑰楁椂銆�
-             */
-            prepareNextFile: false,
-    
-            /**
-             * @property {Boolean} [chunked=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁瑕佸垎鐗囧鐞嗗ぇ鏂囦欢涓婁紶銆�
-             */
-            chunked: false,
-    
-            /**
-             * @property {Boolean} [chunkSize=5242880]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉瑕佸垎鐗囷紝鍒嗗澶т竴鐗囷紵 榛樿澶у皬涓�5M.
-             */
-            chunkSize: 5 * 1024 * 1024,
-    
-            /**
-             * @property {Boolean} [chunkRetry=2]
-             * @namespace options
-             * @for Uploader
-             * @description 濡傛灉鏌愪釜鍒嗙墖鐢变簬缃戠粶闂鍑洪敊锛屽厑璁歌嚜鍔ㄩ噸浼犲灏戞锛�
-             */
-            chunkRetry: 2,
-    
-            /**
-             * @property {Boolean} [threads=3]
-             * @namespace options
-             * @for Uploader
-             * @description 涓婁紶骞跺彂鏁般�傚厑璁稿悓鏃舵渶澶т笂浼犺繘绋嬫暟銆�
-             */
-            threads: 3,
-    
-    
-            /**
-             * @property {Object} [formData]
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶璇锋眰鐨勫弬鏁拌〃锛屾瘡娆″彂閫侀兘浼氬彂閫佹瀵硅薄涓殑鍙傛暟銆�
-             */
-            formData: null
-    
-            /**
-             * @property {Object} [fileVal='file']
-             * @namespace options
-             * @for Uploader
-             * @description 璁剧疆鏂囦欢涓婁紶鍩熺殑name銆�
-             */
-    
-            /**
-             * @property {Object} [method='POST']
-             * @namespace options
-             * @for Uploader
-             * @description 鏂囦欢涓婁紶鏂瑰紡锛宍POST`鎴栬�卄GET`銆�
-             */
-    
-            /**
-             * @property {Object} [sendAsBinary=false]
-             * @namespace options
-             * @for Uploader
-             * @description 鏄惁宸蹭簩杩涘埗鐨勬祦鐨勬柟寮忓彂閫佹枃浠讹紝杩欐牱鏁翠釜涓婁紶鍐呭`php://input`閮戒负鏂囦欢鍐呭锛�
-             * 鍏朵粬鍙傛暟鍦�$_GET鏁扮粍涓��
-             */
-        });
-    
-        // 璐熻矗灏嗘枃浠跺垏鐗囥��
-        function CuteFile( file, chunkSize ) {
-            var pending = [],
-                blob = file.source,
-                total = blob.size,
-                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
-                start = 0,
-                index = 0,
-                len;
-    
-            while ( index < chunks ) {
-                len = Math.min( chunkSize, total - start );
-    
-                pending.push({
-                    file: file,
-                    start: start,
-                    end: chunkSize ? (start + len) : total,
-                    total: total,
-                    chunks: chunks,
-                    chunk: index++
-                });
-                start += len;
-            }
-    
-            file.blocks = pending.concat();
-            file.remaning = pending.length;
-    
-            return {
-                file: file,
-    
-                has: function() {
-                    return !!pending.length;
-                },
-    
-                fetch: function() {
-                    return pending.shift();
-                }
-            };
-        }
-    
-        Uploader.register({
-            'start-upload': 'start',
-            'stop-upload': 'stop',
-            'skip-file': 'skipFile',
-            'is-in-progress': 'isInProgress'
-        }, {
-    
-            init: function() {
-                var owner = this.owner;
-    
-                this.runing = false;
-    
-                // 璁板綍褰撳墠姝e湪浼犵殑鏁版嵁锛岃窡threads鐩稿叧
-                this.pool = [];
-    
-                // 缂撳瓨鍗冲皢涓婁紶鐨勬枃浠躲��
-                this.pending = [];
-    
-                // 璺熻釜杩樻湁澶氬皯鍒嗙墖娌℃湁瀹屾垚涓婁紶銆�
-                this.remaning = 0;
-                this.__tick = Base.bindFn( this._tick, this );
-    
-                owner.on( 'uploadComplete', function( file ) {
-                    // 鎶婂叾浠栧潡鍙栨秷浜嗐��
-                    file.blocks && $.each( file.blocks, function( _, v ) {
-                        v.transport && (v.transport.abort(), v.transport.destroy());
-                        delete v.transport;
-                    });
-    
-                    delete file.blocks;
-                    delete file.remaning;
-                });
-            },
-    
-            /**
-             * @event startUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 寮�濮嬩笂浼犮�傛鏂规硶鍙互浠庡垵濮嬬姸鎬佽皟鐢ㄥ紑濮嬩笂浼犳祦绋嬶紝涔熷彲浠ヤ粠鏆傚仠鐘舵�佽皟鐢紝缁х画涓婁紶娴佺▼銆�
-             * @grammar upload() => undefined
-             * @method upload
-             * @for  Uploader
-             */
-            start: function() {
-                var me = this;
-    
-                // 绉诲嚭invalid鐨勬枃浠�
-                $.each( me.request( 'get-files', Status.INVALID ), function() {
-                    me.request( 'remove-file', this );
-                });
-    
-                if ( me.runing ) {
-                    return;
-                }
-    
-                me.runing = true;
-    
-                // 濡傛灉鏈夋殏鍋滅殑锛屽垯缁紶
-                $.each( me.pool, function( _, v ) {
-                    var file = v.file;
-    
-                    if ( file.getStatus() === Status.INTERRUPT ) {
-                        file.setStatus( Status.PROGRESS );
-                        me._trigged = false;
-                        v.transport && v.transport.send();
-                    }
-                });
-    
-                me._trigged = false;
-                me.owner.trigger('startUpload');
-                Base.nextTick( me.__tick );
-            },
-    
-            /**
-             * @event stopUpload
-             * @description 褰撳紑濮嬩笂浼犳祦绋嬫殏鍋滄椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * 鏆傚仠涓婁紶銆傜涓�涓弬鏁颁负鏄惁涓柇涓婁紶褰撳墠姝e湪涓婁紶鐨勬枃浠躲��
-             * @grammar stop() => undefined
-             * @grammar stop( true ) => undefined
-             * @method stop
-             * @for  Uploader
-             */
-            stop: function( interrupt ) {
-                var me = this;
-    
-                if ( me.runing === false ) {
-                    return;
-                }
-    
-                me.runing = false;
-    
-                interrupt && $.each( me.pool, function( _, v ) {
-                    v.transport && v.transport.abort();
-                    v.file.setStatus( Status.INTERRUPT );
-                });
-    
-                me.owner.trigger('stopUpload');
-            },
-    
-            /**
-             * 鍒ゆ柇`Uplaode`r鏄惁姝e湪涓婁紶涓��
-             * @grammar isInProgress() => Boolean
-             * @method isInProgress
-             * @for  Uploader
-             */
-            isInProgress: function() {
-                return !!this.runing;
-            },
-    
-            getStats: function() {
-                return this.request('get-stats');
-            },
-    
-            /**
-             * 鎺夎繃涓�涓枃浠朵笂浼狅紝鐩存帴鏍囪鎸囧畾鏂囦欢涓哄凡涓婁紶鐘舵�併��
-             * @grammar skipFile( file ) => undefined
-             * @method skipFile
-             * @for  Uploader
-             */
-            skipFile: function( file, status ) {
-                file = this.request( 'get-file', file );
-    
-                file.setStatus( status || Status.COMPLETE );
-                file.skipped = true;
-    
-                // 濡傛灉姝e湪涓婁紶銆�
-                file.blocks && $.each( file.blocks, function( _, v ) {
-                    var _tr = v.transport;
-    
-                    if ( _tr ) {
-                        _tr.abort();
-                        _tr.destroy();
-                        delete v.transport;
-                    }
-                });
-    
-                this.owner.trigger( 'uploadSkip', file );
-            },
-    
-            /**
-             * @event uploadFinished
-             * @description 褰撴墍鏈夋枃浠朵笂浼犵粨鏉熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-            _tick: function() {
-                var me = this,
-                    opts = me.options,
-                    fn, val;
-    
-                // 涓婁竴涓猵romise杩樻病鏈夌粨鏉燂紝鍒欑瓑寰呭畬鎴愬悗鍐嶆墽琛屻��
-                if ( me._promise ) {
-                    return me._promise.always( me.__tick );
-                }
-    
-                // 杩樻湁浣嶇疆锛屼笖杩樻湁鏂囦欢瑕佸鐞嗙殑璇濄��
-                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
-                    me._trigged = false;
-    
-                    fn = function( val ) {
-                        me._promise = null;
-    
-                        // 鏈夊彲鑳芥槸reject杩囨潵鐨勶紝鎵�浠ヨ妫�娴媣al鐨勭被鍨嬨��
-                        val && val.file && me._startSend( val );
-                        Base.nextTick( me.__tick );
-                    };
-    
-                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
-    
-                // 娌℃湁瑕佷笂浼犵殑浜嗭紝涓旀病鏈夋鍦ㄤ紶杈撶殑浜嗐��
-                } else if ( !me.remaning && !me.getStats().numOfQueue ) {
-                    me.runing = false;
-    
-                    me._trigged || Base.nextTick(function() {
-                        me.owner.trigger('uploadFinished');
-                    });
-                    me._trigged = true;
-                }
-            },
-    
-            _nextBlock: function() {
-                var me = this,
-                    act = me._act,
-                    opts = me.options,
-                    next, done;
-    
-                // 濡傛灉褰撳墠鏂囦欢杩樻湁娌℃湁闇�瑕佷紶杈撶殑锛屽垯鐩存帴杩斿洖鍓╀笅鐨勩��
-                if ( act && act.has() &&
-                        act.file.getStatus() === Status.PROGRESS ) {
-    
-                    // 鏄惁鎻愬墠鍑嗗涓嬩竴涓枃浠�
-                    if ( opts.prepareNextFile && !me.pending.length ) {
-                        me._prepareNextFile();
-                    }
-    
-                    return act.fetch();
-    
-                // 鍚﹀垯锛屽鏋滄鍦ㄨ繍琛岋紝鍒欏噯澶囦笅涓�涓枃浠讹紝骞剁瓑寰呭畬鎴愬悗杩斿洖涓嬩釜鍒嗙墖銆�
-                } else if ( me.runing ) {
-    
-                    // 濡傛灉缂撳瓨涓湁锛屽垯鐩存帴鍦ㄧ紦瀛樹腑鍙栵紝娌℃湁鍒欏幓queue涓彇銆�
-                    if ( !me.pending.length && me.getStats().numOfQueue ) {
-                        me._prepareNextFile();
-                    }
-    
-                    next = me.pending.shift();
-                    done = function( file ) {
-                        if ( !file ) {
-                            return null;
-                        }
-    
-                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
-                        me._act = act;
-                        return act.fetch();
-                    };
-    
-                    // 鏂囦欢鍙兘杩樺湪prepare涓紝涔熸湁鍙兘宸茬粡瀹屽叏鍑嗗濂戒簡銆�
-                    return isPromise( next ) ?
-                            next[ next.pipe ? 'pipe' : 'then']( done ) :
-                            done( next );
-                }
-            },
-    
-    
-            /**
-             * @event uploadStart
-             * @param {File} file File瀵硅薄
-             * @description 鏌愪釜鏂囦欢寮�濮嬩笂浼犲墠瑙﹀彂锛屼竴涓枃浠跺彧浼氳Е鍙戜竴娆°��
-             * @for  Uploader
-             */
-            _prepareNextFile: function() {
-                var me = this,
-                    file = me.request('fetch-file'),
-                    pending = me.pending,
-                    promise;
-    
-                if ( file ) {
-                    promise = me.request( 'before-send-file', file, function() {
-    
-                        // 鏈夊彲鑳芥枃浠惰skip鎺変簡銆傛枃浠惰skip鎺夊悗锛岀姸鎬佸潙瀹氫笉鏄疩ueued.
-                        if ( file.getStatus() === Status.QUEUED ) {
-                            me.owner.trigger( 'uploadStart', file );
-                            file.setStatus( Status.PROGRESS );
-                            return file;
-                        }
-    
-                        return me._finishFile( file );
-                    });
-    
-                    // 濡傛灉杩樺湪pending涓紝鍒欐浛鎹㈡垚鏂囦欢鏈韩銆�
-                    promise.done(function() {
-                        var idx = $.inArray( promise, pending );
-    
-                        ~idx && pending.splice( idx, 1, file );
-                    });
-    
-                    // befeore-send-file鐨勯挬瀛愬氨鏈夐敊璇彂鐢熴��
-                    promise.fail(function( reason ) {
-                        file.setStatus( Status.ERROR, reason );
-                        me.owner.trigger( 'uploadError', file, reason );
-                        me.owner.trigger( 'uploadComplete', file );
-                    });
-    
-                    pending.push( promise );
-                }
-            },
-    
-            // 璁╁嚭浣嶇疆浜嗭紝鍙互璁╁叾浠栧垎鐗囧紑濮嬩笂浼�
-            _popBlock: function( block ) {
-                var idx = $.inArray( block, this.pool );
-    
-                this.pool.splice( idx, 1 );
-                block.file.remaning--;
-                this.remaning--;
-            },
-    
-            // 寮�濮嬩笂浼狅紝鍙互琚帀杩囥�傚鏋減romise琚玶eject浜嗭紝鍒欒〃绀鸿烦杩囨鍒嗙墖銆�
-            _startSend: function( block ) {
-                var me = this,
-                    file = block.file,
-                    promise;
-    
-                me.pool.push( block );
-                me.remaning++;
-    
-                // 濡傛灉娌℃湁鍒嗙墖锛屽垯鐩存帴浣跨敤鍘熷鐨勩��
-                // 涓嶄細涓㈠けcontent-type淇℃伅銆�
-                block.blob = block.chunks === 1 ? file.source :
-                        file.source.slice( block.start, block.end );
-    
-                // hook, 姣忎釜鍒嗙墖鍙戦�佷箣鍓嶅彲鑳借鍋氫簺寮傛鐨勪簨鎯呫��
-                promise = me.request( 'before-send', block, function() {
-    
-                    // 鏈夊彲鑳芥枃浠跺凡缁忎笂浼犲嚭閿欎簡锛屾墍浠ヤ笉闇�瑕佸啀浼犺緭浜嗐��
-                    if ( file.getStatus() === Status.PROGRESS ) {
-                        me._doSend( block );
-                    } else {
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-    
-                // 濡傛灉涓篺ail浜嗭紝鍒欒烦杩囨鍒嗙墖銆�
-                promise.fail(function() {
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file ).always(function() {
-                            block.percentage = 1;
-                            me._popBlock( block );
-                            me.owner.trigger( 'uploadComplete', file );
-                            Base.nextTick( me.__tick );
-                        });
-                    } else {
-                        block.percentage = 1;
-                        me._popBlock( block );
-                        Base.nextTick( me.__tick );
-                    }
-                });
-            },
-    
-    
-            /**
-             * @event uploadBeforeSend
-             * @param {Object} object
-             * @param {Object} data 榛樿鐨勪笂浼犲弬鏁帮紝鍙互鎵╁睍姝ゅ璞℃潵鎺у埗涓婁紶鍙傛暟銆�
-             * @description 褰撴煇涓枃浠剁殑鍒嗗潡鍦ㄥ彂閫佸墠瑙﹀彂锛屼富瑕佺敤鏉ヨ闂槸鍚﹁娣诲姞闄勫甫鍙傛暟锛屽ぇ鏂囦欢鍦ㄥ紑璧峰垎鐗囦笂浼犵殑鍓嶆彁涓嬫浜嬩欢鍙兘浼氳Е鍙戝娆°��
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadAccept
-             * @param {Object} object
-             * @param {Object} ret 鏈嶅姟绔殑杩斿洖鏁版嵁锛宩son鏍煎紡锛屽鏋滄湇鍔$涓嶆槸json鏍煎紡锛屼粠ret._raw涓彇鏁版嵁锛岃嚜琛岃В鏋愩��
-             * @description 褰撴煇涓枃浠朵笂浼犲埌鏈嶅姟绔搷搴斿悗锛屼細娲鹃�佹浜嬩欢鏉ヨ闂湇鍔$鍝嶅簲鏄惁鏈夋晥銆傚鏋滄浜嬩欢handler杩斿洖鍊间负`false`, 鍒欐鏂囦欢灏嗘淳閫乣server`绫诲瀷鐨刞uploadError`浜嬩欢銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadProgress
-             * @param {File} file File瀵硅薄
-             * @param {Number} percentage 涓婁紶杩涘害
-             * @description 涓婁紶杩囩▼涓Е鍙戯紝鎼哄甫涓婁紶杩涘害銆�
-             * @for  Uploader
-             */
-    
-    
-            /**
-             * @event uploadError
-             * @param {File} file File瀵硅薄
-             * @param {String} reason 鍑洪敊鐨刢ode
-             * @description 褰撴枃浠朵笂浼犲嚭閿欐椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadSuccess
-             * @param {File} file File瀵硅薄
-             * @param {Object} response 鏈嶅姟绔繑鍥炵殑鏁版嵁
-             * @description 褰撴枃浠朵笂浼犳垚鍔熸椂瑙﹀彂銆�
-             * @for  Uploader
-             */
-    
-            /**
-             * @event uploadComplete
-             * @param {File} [file] File瀵硅薄
-             * @description 涓嶇鎴愬姛鎴栬�呭け璐ワ紝鏂囦欢涓婁紶瀹屾垚鏃惰Е鍙戙��
-             * @for  Uploader
-             */
-    
-            // 鍋氫笂浼犳搷浣溿��
-            _doSend: function( block ) {
-                var me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    file = block.file,
-                    tr = new Transport( opts ),
-                    data = $.extend({}, opts.formData ),
-                    headers = $.extend({}, opts.headers ),
-                    requestAccept, ret;
-    
-                block.transport = tr;
-    
-                tr.on( 'destroy', function() {
-                    delete block.transport;
-                    me._popBlock( block );
-                    Base.nextTick( me.__tick );
-                });
-    
-                // 骞挎挱涓婁紶杩涘害銆備互鏂囦欢涓哄崟浣嶃��
-                tr.on( 'progress', function( percentage ) {
-                    var totalPercent = 0,
-                        uploaded = 0;
-    
-                    // 鍙兘娌℃湁abort鎺夛紝progress杩樻槸鎵ц杩涙潵浜嗐��
-                    // if ( !file.blocks ) {
-                    //     return;
-                    // }
-    
-                    totalPercent = block.percentage = percentage;
-    
-                    if ( block.chunks > 1 ) {    // 璁$畻鏂囦欢鐨勬暣浣撻�熷害銆�
-                        $.each( file.blocks, function( _, v ) {
-                            uploaded += (v.percentage || 0) * (v.end - v.start);
-                        });
-    
-                        totalPercent = uploaded / file.size;
-                    }
-    
-                    owner.trigger( 'uploadProgress', file, totalPercent || 0 );
-                });
-    
-                // 鐢ㄦ潵璇㈤棶锛屾槸鍚﹁繑鍥炵殑缁撴灉鏄湁閿欒鐨勩��
-                requestAccept = function( reject ) {
-                    var fn;
-    
-                    ret = tr.getResponseAsJson() || {};
-                    ret._raw = tr.getResponse();
-                    fn = function( value ) {
-                        reject = value;
-                    };
-    
-                    // 鏈嶅姟绔搷搴斾簡锛屼笉浠h〃鎴愬姛浜嗭紝璇㈤棶鏄惁鍝嶅簲姝g‘銆�
-                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
-                        reject = reject || 'server';
-                    }
-    
-                    return reject;
-                };
-    
-                // 灏濊瘯閲嶈瘯锛岀劧鍚庡箍鎾枃浠朵笂浼犲嚭閿欍��
-                tr.on( 'error', function( type, flag ) {
-                    block.retried = block.retried || 0;
-    
-                    // 鑷姩閲嶈瘯
-                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
-                            block.retried < opts.chunkRetry ) {
-    
-                        block.retried++;
-                        tr.send();
-    
-                    } else {
-    
-                        // http status 500 ~ 600
-                        if ( !flag && type === 'server' ) {
-                            type = requestAccept( type );
-                        }
-    
-                        file.setStatus( Status.ERROR, type );
-                        owner.trigger( 'uploadError', file, type );
-                        owner.trigger( 'uploadComplete', file );
-                    }
-                });
-    
-                // 涓婁紶鎴愬姛
-                tr.on( 'load', function() {
-                    var reason;
-    
-                    // 濡傛灉闈為鏈燂紝杞悜涓婁紶鍑洪敊銆�
-                    if ( (reason = requestAccept()) ) {
-                        tr.trigger( 'error', reason, true );
-                        return;
-                    }
-    
-                    // 鍏ㄩ儴涓婁紶瀹屾垚銆�
-                    if ( file.remaning === 1 ) {
-                        me._finishFile( file, ret );
-                    } else {
-                        tr.destroy();
-                    }
-                });
-    
-                // 閰嶇疆榛樿鐨勪笂浼犲瓧娈点��
-                data = $.extend( data, {
-                    id: file.id,
-                    name: file.name,
-                    type: file.type,
-                    lastModifiedDate: file.lastModifiedDate,
-                    size: file.size
-                });
-    
-                block.chunks > 1 && $.extend( data, {
-                    chunks: block.chunks,
-                    chunk: block.chunk
-                });
-    
-                // 鍦ㄥ彂閫佷箣闂村彲浠ユ坊鍔犲瓧娈典粈涔堢殑銆傘�傘��
-                // 濡傛灉榛樿鐨勫瓧娈典笉澶熶娇鐢紝鍙互閫氳繃鐩戝惉姝や簨浠舵潵鎵╁睍
-                owner.trigger( 'uploadBeforeSend', block, data, headers );
-    
-                // 寮�濮嬪彂閫併��
-                tr.appendBlob( opts.fileVal, block.blob, file.name );
-                tr.append( data );
-                tr.setRequestHeader( headers );
-                tr.send();
-            },
-    
-            // 瀹屾垚涓婁紶銆�
-            _finishFile: function( file, ret, hds ) {
-                var owner = this.owner;
-    
-                return owner
-                        .request( 'after-send-file', arguments, function() {
-                            file.setStatus( Status.COMPLETE );
-                            owner.trigger( 'uploadSuccess', file, ret, hds );
-                        })
-                        .fail(function( reason ) {
-    
-                            // 濡傛灉澶栭儴宸茬粡鏍囪涓篿nvalid浠�涔堢殑锛屼笉鍐嶆敼鐘舵�併��
-                            if ( file.getStatus() === Status.PROGRESS ) {
-                                file.setStatus( Status.ERROR, reason );
-                            }
-    
-                            owner.trigger( 'uploadError', file, reason );
-                        })
-                        .always(function() {
-                            owner.trigger( 'uploadComplete', file );
-                        });
-            }
-    
-        });
-    });
-    /**
-     * @fileOverview 鍚勭楠岃瘉锛屽寘鎷枃浠舵�诲ぇ灏忔槸鍚﹁秴鍑恒�佸崟鏂囦欢鏄惁瓒呭嚭鍜屾枃浠舵槸鍚﹂噸澶嶃��
-     */
-    
-    define('widgets/validator',[
-        'base',
-        'uploader',
-        'file',
-        'widgets/widget'
-    ], function( Base, Uploader, WUFile ) {
-    
-        var $ = Base.$,
-            validators = {},
-            api;
-    
-        /**
-         * @event error
-         * @param {String} type 閿欒绫诲瀷銆�
-         * @description 褰搗alidate涓嶉�氳繃鏃讹紝浼氫互娲鹃�侀敊璇簨浠剁殑褰㈠紡閫氱煡璋冪敤鑰呫�傞�氳繃`upload.on('error', handler)`鍙互鎹曡幏鍒版绫婚敊璇紝鐩墠鏈変互涓嬮敊璇細鍦ㄧ壒瀹氱殑鎯呭喌涓嬫淳閫侀敊鏉ャ��
-         *
-         * * `Q_EXCEED_NUM_LIMIT` 鍦ㄨ缃簡`fileNumLimit`涓斿皾璇曠粰`uploader`娣诲姞鐨勬枃浠舵暟閲忚秴鍑鸿繖涓�兼椂娲鹃�併��
-         * * `Q_EXCEED_SIZE_LIMIT` 鍦ㄨ缃簡`Q_EXCEED_SIZE_LIMIT`涓斿皾璇曠粰`uploader`娣诲姞鐨勬枃浠舵�诲ぇ灏忚秴鍑鸿繖涓�兼椂娲鹃�併��
-         * @for  Uploader
-         */
-    
-        // 鏆撮湶缁欏闈㈢殑api
-        api = {
-    
-            // 娣诲姞楠岃瘉鍣�
-            addValidator: function( type, cb ) {
-                validators[ type ] = cb;
-            },
-    
-            // 绉婚櫎楠岃瘉鍣�
-            removeValidator: function( type ) {
-                delete validators[ type ];
-            }
-        };
-    
-        // 鍦║ploader鍒濆鍖栫殑鏃跺�欏惎鍔╒alidators鐨勫垵濮嬪寲
-        Uploader.register({
-            init: function() {
-                var me = this;
-                $.each( validators, function() {
-                    this.call( me.owner );
-                });
-            }
-        });
-    
-        /**
-         * @property {int} [fileNumLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鏂囦欢鎬绘暟閲�, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileNumLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                count = 0,
-                max = opts.fileNumLimit >> 0,
-                flag = true;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-    
-                if ( count >= max && flag ) {
-                    flag = false;
-                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
-                    setTimeout(function() {
-                        flag = true;
-                    }, 1 );
-                }
-    
-                return count >= max ? false : true;
-            });
-    
-            uploader.on( 'fileQueued', function() {
-                count++;
-            });
-    
-            uploader.on( 'fileDequeued', function() {
-                count--;
-            });
-    
-            uploader.on( 'uploadFinished', function() {
-                count = 0;
-            });
-        });
-    
-    
-        /**
-         * @property {int} [fileSizeLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鏂囦欢鎬诲ぇ灏忔槸鍚﹁秴鍑洪檺鍒�, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileSizeLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                count = 0,
-                max = opts.fileSizeLimit >> 0,
-                flag = true;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-                var invalid = count + file.size > max;
-    
-                if ( invalid && flag ) {
-                    flag = false;
-                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
-                    setTimeout(function() {
-                        flag = true;
-                    }, 1 );
-                }
-    
-                return invalid ? false : true;
-            });
-    
-            uploader.on( 'fileQueued', function( file ) {
-                count += file.size;
-            });
-    
-            uploader.on( 'fileDequeued', function( file ) {
-                count -= file.size;
-            });
-    
-            uploader.on( 'uploadFinished', function() {
-                count = 0;
-            });
-        });
-    
-        /**
-         * @property {int} [fileSingleSizeLimit=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 楠岃瘉鍗曚釜鏂囦欢澶у皬鏄惁瓒呭嚭闄愬埗, 瓒呭嚭鍒欎笉鍏佽鍔犲叆闃熷垪銆�
-         */
-        api.addValidator( 'fileSingleSizeLimit', function() {
-            var uploader = this,
-                opts = uploader.options,
-                max = opts.fileSingleSizeLimit;
-    
-            if ( !max ) {
-                return;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-    
-                if ( file.size > max ) {
-                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
-                    this.trigger( 'error', 'F_EXCEED_SIZE', file );
-                    return false;
-                }
-    
-            });
-    
-        });
-    
-        /**
-         * @property {int} [duplicate=undefined]
-         * @namespace options
-         * @for Uploader
-         * @description 鍘婚噸锛� 鏍规嵁鏂囦欢鍚嶅瓧銆佹枃浠跺ぇ灏忓拰鏈�鍚庝慨鏀规椂闂存潵鐢熸垚hash Key.
-         */
-        api.addValidator( 'duplicate', function() {
-            var uploader = this,
-                opts = uploader.options,
-                mapping = {};
-    
-            if ( opts.duplicate ) {
-                return;
-            }
-    
-            function hashString( str ) {
-                var hash = 0,
-                    i = 0,
-                    len = str.length,
-                    _char;
-    
-                for ( ; i < len; i++ ) {
-                    _char = str.charCodeAt( i );
-                    hash = _char + (hash << 6) + (hash << 16) - hash;
-                }
-    
-                return hash;
-            }
-    
-            uploader.on( 'beforeFileQueued', function( file ) {
-                var hash = file.__hash || (file.__hash = hashString( file.name +
-                        file.size + file.lastModifiedDate ));
-    
-                // 宸茬粡閲嶅浜�
-                if ( mapping[ hash ] ) {
-                    this.trigger( 'error', 'F_DUPLICATE', file );
-                    return false;
-                }
-            });
-    
-            uploader.on( 'fileQueued', function( file ) {
-                var hash = file.__hash;
-    
-                hash && (mapping[ hash ] = true);
-            });
-    
-            uploader.on( 'fileDequeued', function( file ) {
-                var hash = file.__hash;
-    
-                hash && (delete mapping[ hash ]);
-            });
-        });
-    
-        return api;
-    });
-    
-    /**
-     * @fileOverview Runtime绠$悊鍣紝璐熻矗Runtime鐨勯�夋嫨, 杩炴帴
-     */
-    define('runtime/compbase',[],function() {
-    
-        function CompBase( owner, runtime ) {
-    
-            this.owner = owner;
-            this.options = owner.options;
-    
-            this.getRuntime = function() {
-                return runtime;
-            };
-    
-            this.getRuid = function() {
-                return runtime.uid;
-            };
-    
-            this.trigger = function() {
-                return owner.trigger.apply( owner, arguments );
-            };
-        }
-    
-        return CompBase;
-    });
-    /**
-     * @fileOverview Html5Runtime
-     */
-    define('runtime/html5/runtime',[
-        'base',
-        'runtime/runtime',
-        'runtime/compbase'
-    ], function( Base, Runtime, CompBase ) {
-    
-        var type = 'html5',
-            components = {};
-    
-        function Html5Runtime() {
-            var pool = {},
-                me = this,
-                destory = this.destory;
-    
-            Runtime.apply( me, arguments );
-            me.type = type;
-    
-    
-            // 杩欎釜鏂规硶鐨勮皟鐢ㄨ�咃紝瀹為檯涓婃槸RuntimeClient
-            me.exec = function( comp, fn/*, args...*/) {
-                var client = this,
-                    uid = client.uid,
-                    args = Base.slice( arguments, 2 ),
-                    instance;
-    
-                if ( components[ comp ] ) {
-                    instance = pool[ uid ] = pool[ uid ] ||
-                            new components[ comp ]( client, me );
-    
-                    if ( instance[ fn ] ) {
-                        return instance[ fn ].apply( instance, args );
-                    }
-                }
-            };
-    
-            me.destory = function() {
-                // @todo 鍒犻櫎姹犲瓙涓殑鎵�鏈夊疄渚�
-                return destory && destory.apply( this, arguments );
-            };
-        }
-    
-        Base.inherits( Runtime, {
-            constructor: Html5Runtime,
-    
-            // 涓嶉渶瑕佽繛鎺ュ叾浠栫▼搴忥紝鐩存帴鎵цcallback
-            init: function() {
-                var me = this;
-                setTimeout(function() {
-                    me.trigger('ready');
-                }, 1 );
-            }
-    
-        });
-    
-        // 娉ㄥ唽Components
-        Html5Runtime.register = function( name, component ) {
-            var klass = components[ name ] = Base.inherits( CompBase, component );
-            return klass;
-        };
-    
-        // 娉ㄥ唽html5杩愯鏃躲��
-        // 鍙湁鍦ㄦ敮鎸佺殑鍓嶆彁涓嬫敞鍐屻��
-        if ( window.Blob && window.FileReader && window.DataView ) {
-            Runtime.addRuntime( type, Html5Runtime );
-        }
-    
-        return Html5Runtime;
-    });
-    /**
-     * @fileOverview Blob Html瀹炵幇
-     */
-    define('runtime/html5/blob',[
-        'runtime/html5/runtime',
-        'lib/blob'
-    ], function( Html5Runtime, Blob ) {
-    
-        return Html5Runtime.register( 'Blob', {
-            slice: function( start, end ) {
-                var blob = this.owner.source,
-                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
-    
-                blob = slice.call( blob, start, end );
-    
-                return new Blob( this.getRuid(), blob );
-            }
-        });
-    });
-    /**
-     * @fileOverview FilePaste
-     */
-    define('runtime/html5/dnd',[
-        'base',
-        'runtime/html5/runtime',
-        'lib/file'
-    ], function( Base, Html5Runtime, File ) {
-    
-        var $ = Base.$,
-            prefix = 'webuploader-dnd-';
-    
-        return Html5Runtime.register( 'DragAndDrop', {
-            init: function() {
-                var elem = this.elem = this.options.container;
-    
-                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
-                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
-                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
-                this.dropHandler = Base.bindFn( this._dropHandler, this );
-                this.dndOver = false;
-    
-                elem.on( 'dragenter', this.dragEnterHandler );
-                elem.on( 'dragover', this.dragOverHandler );
-                elem.on( 'dragleave', this.dragLeaveHandler );
-                elem.on( 'drop', this.dropHandler );
-    
-                if ( this.options.disableGlobalDnd ) {
-                    $( document ).on( 'dragover', this.dragOverHandler );
-                    $( document ).on( 'drop', this.dropHandler );
-                }
-            },
-    
-            _dragEnterHandler: function( e ) {
-                var me = this,
-                    denied = me._denied || false,
-                    items;
-    
-                e = e.originalEvent || e;
-    
-                if ( !me.dndOver ) {
-                    me.dndOver = true;
-    
-                    // 娉ㄦ剰鍙湁 chrome 鏀寔銆�
-                    items = e.dataTransfer.items;
-    
-                    if ( items && items.length ) {
-                        me._denied = denied = !me.trigger( 'accept', items );
-                    }
-    
-                    me.elem.addClass( prefix + 'over' );
-                    me.elem[ denied ? 'addClass' :
-                            'removeClass' ]( prefix + 'denied' );
-                }
-    
-    
-                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
-    
-                return false;
-            },
-    
-            _dragOverHandler: function( e ) {
-                // 鍙鐞嗘鍐呯殑銆�
-                var parentElem = this.elem.parent().get( 0 );
-                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
-                    return false;
-                }
-    
-                clearTimeout( this._leaveTimer );
-                this._dragEnterHandler.call( this, e );
-    
-                return false;
-            },
-    
-            _dragLeaveHandler: function() {
-                var me = this,
-                    handler;
-    
-                handler = function() {
-                    me.dndOver = false;
-                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
-                };
-    
-                clearTimeout( me._leaveTimer );
-                me._leaveTimer = setTimeout( handler, 100 );
-                return false;
-            },
-    
-            _dropHandler: function( e ) {
-                var me = this,
-                    ruid = me.getRuid(),
-                    parentElem = me.elem.parent().get( 0 );
-    
-                // 鍙鐞嗘鍐呯殑銆�
-                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
-                    return false;
-                }
-    
-                me._getTansferFiles( e, function( results ) {
-                    me.trigger( 'drop', $.map( results, function( file ) {
-                        return new File( ruid, file );
-                    }) );
-                });
-    
-                me.dndOver = false;
-                me.elem.removeClass( prefix + 'over' );
-                return false;
-            },
-    
-            // 濡傛灉浼犲叆 callback 鍒欏幓鏌ョ湅鏂囦欢澶癸紝鍚﹀垯鍙褰撳墠鏂囦欢澶广��
-            _getTansferFiles: function( e, callback ) {
-                var results  = [],
-                    promises = [],
-                    items, files, dataTransfer, file, item, i, len, canAccessFolder;
-    
-                e = e.originalEvent || e;
-    
-                dataTransfer = e.dataTransfer;
-                items = dataTransfer.items;
-                files = dataTransfer.files;
-    
-                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
-    
-                for ( i = 0, len = files.length; i < len; i++ ) {
-                    file = files[ i ];
-                    item = items && items[ i ];
-    
-                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
-    
-                        promises.push( this._traverseDirectoryTree(
-                                item.webkitGetAsEntry(), results ) );
-                    } else {
-                        results.push( file );
-                    }
-                }
-    
-                Base.when.apply( Base, promises ).done(function() {
-    
-                    if ( !results.length ) {
-                        return;
-                    }
-    
-                    callback( results );
-                });
-            },
-    
-            _traverseDirectoryTree: function( entry, results ) {
-                var deferred = Base.Deferred(),
-                    me = this;
-    
-                if ( entry.isFile ) {
-                    entry.file(function( file ) {
-                        results.push( file );
-                        deferred.resolve();
-                    });
-                } else if ( entry.isDirectory ) {
-                    entry.createReader().readEntries(function( entries ) {
-                        var len = entries.length,
-                            promises = [],
-                            arr = [],    // 涓轰簡淇濊瘉椤哄簭銆�
-                            i;
-    
-                        for ( i = 0; i < len; i++ ) {
-                            promises.push( me._traverseDirectoryTree(
-                                    entries[ i ], arr ) );
-                        }
-    
-                        Base.when.apply( Base, promises ).then(function() {
-                            results.push.apply( results, arr );
-                            deferred.resolve();
-                        }, deferred.reject );
-                    });
-                }
-    
-                return deferred.promise();
-            },
-    
-            destroy: function() {
-                var elem = this.elem;
-    
-                elem.off( 'dragenter', this.dragEnterHandler );
-                elem.off( 'dragover', this.dragEnterHandler );
-                elem.off( 'dragleave', this.dragLeaveHandler );
-                elem.off( 'drop', this.dropHandler );
-    
-                if ( this.options.disableGlobalDnd ) {
-                    $( document ).off( 'dragover', this.dragOverHandler );
-                    $( document ).off( 'drop', this.dropHandler );
-                }
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview FilePaste
-     */
-    define('runtime/html5/filepaste',[
-        'base',
-        'runtime/html5/runtime',
-        'lib/file'
-    ], function( Base, Html5Runtime, File ) {
-    
-        return Html5Runtime.register( 'FilePaste', {
-            init: function() {
-                var opts = this.options,
-                    elem = this.elem = opts.container,
-                    accept = '.*',
-                    arr, i, len, item;
-    
-                // accetp鐨刴imeTypes涓敓鎴愬尮閰嶆鍒欍��
-                if ( opts.accept ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        item = opts.accept[ i ].mimeTypes;
-                        item && arr.push( item );
-                    }
-    
-                    if ( arr.length ) {
-                        accept = arr.join(',');
-                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
-                    }
-                }
-                this.accept = accept = new RegExp( accept, 'i' );
-                this.hander = Base.bindFn( this._pasteHander, this );
-                elem.on( 'paste', this.hander );
-            },
-    
-            _pasteHander: function( e ) {
-                var allowed = [],
-                    ruid = this.getRuid(),
-                    items, item, blob, i, len;
-    
-                e = e.originalEvent || e;
-                items = e.clipboardData.items;
-    
-                for ( i = 0, len = items.length; i < len; i++ ) {
-                    item = items[ i ];
-    
-                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
-                        continue;
-                    }
-    
-                    allowed.push( new File( ruid, blob ) );
-                }
-    
-                if ( allowed.length ) {
-                    // 涓嶉樆姝㈤潪鏂囦欢绮樿创锛堟枃瀛楃矘璐达級鐨勪簨浠跺啋娉�
-                    e.preventDefault();
-                    e.stopPropagation();
-                    this.trigger( 'paste', allowed );
-                }
-            },
-    
-            destroy: function() {
-                this.elem.off( 'paste', this.hander );
-            }
-        });
-    });
-    
-    /**
-     * @fileOverview FilePicker
-     */
-    define('runtime/html5/filepicker',[
-        'base',
-        'runtime/html5/runtime'
-    ], function( Base, Html5Runtime ) {
-    
-        var $ = Base.$;
-    
-        return Html5Runtime.register( 'FilePicker', {
-            init: function() {
-                var container = this.getRuntime().getContainer(),
-                    me = this,
-                    owner = me.owner,
-                    opts = me.options,
-                    lable = $( document.createElement('label') ),
-                    input = $( document.createElement('input') ),
-                    arr, i, len, mouseHandler;
-    
-                input.attr( 'type', 'file' );
-                input.attr( 'name', opts.name );
-                input.addClass('webuploader-element-invisible');
-    
-                lable.on( 'click', function() {
-                    input.trigger('click');
-                });
-    
-                lable.css({
-                    opacity: 0,
-                    width: '100%',
-                    height: '100%',
-                    display: 'block',
-                    cursor: 'pointer',
-                    background: '#ffffff'
-                });
-    
-                if ( opts.multiple ) {
-                    input.attr( 'multiple', 'multiple' );
-                }
-    
-                // @todo Firefox涓嶆敮鎸佸崟鐙寚瀹氬悗缂�
-                if ( opts.accept && opts.accept.length > 0 ) {
-                    arr = [];
-    
-                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
-                        arr.push( opts.accept[ i ].mimeTypes );
-                    }
-    
-                    input.attr( 'accept', arr.join(',') );
-                }
-    
-                container.append( input );
-                container.append( lable );
-    
-                mouseHandler = function( e ) {
-                    owner.trigger( e.type );
-                };
-    
-                input.on( 'change', function( e ) {
-                    var fn = arguments.callee,
-                        clone;
-    
-                    me.files = e.target.files;
-    
-                    // reset input
-                    clone = this.cloneNode( true );
-                    this.parentNode.replaceChild( clone, this );
-    
-                    input.off();
-                    input = $( clone ).on( 'change', fn )
-                            .on( 'mouseenter mouseleave', mouseHandler );
-    
-                    owner.trigger('change');
-                });
-    
-                lable.on( 'mouseenter mouseleave', mouseHandler );
-    
-            },
-    
-    
-            getFiles: function() {
-                return this.files;
-            },
-    
-            destroy: function() {
-                // todo
-            }
-        });
-    });
-    /**
-     * @fileOverview Transport
-     * @todo 鏀寔chunked浼犺緭锛屼紭鍔匡細
-     * 鍙互灏嗗ぇ鏂囦欢鍒嗘垚灏忓潡锛屾尐涓紶杈擄紝鍙互鎻愰珮澶ф枃浠舵垚鍔熺巼锛屽綋澶辫触鐨勬椂鍊欙紝涔熷彧闇�瑕侀噸浼犻偅灏忛儴鍒嗭紝
-     * 鑰屼笉闇�瑕侀噸澶村啀浼犱竴娆°�傚彟澶栨柇鐐圭画浼犱篃闇�瑕佺敤chunked鏂瑰紡銆�
-     */
-    define('runtime/html5/transport',[
-        'base',
-        'runtime/html5/runtime'
-    ], function( Base, Html5Runtime ) {
-    
-        var noop = Base.noop,
-            $ = Base.$;
-    
-        return Html5Runtime.register( 'Transport', {
-            init: function() {
-                this._status = 0;
-                this._response = null;
-            },
-    
-            send: function() {
-                var owner = this.owner,
-                    opts = this.options,
-                    xhr = this._initAjax(),
-                    blob = owner._blob,
-                    server = opts.server,
-                    formData, binary, fr;
-    
-                if ( opts.sendAsBinary ) {
-                    server += (/\?/.test( server ) ? '&' : '?') +
-                            $.param( owner._formData );
-    
-                    binary = blob.getSource();
-                } else {
-                    formData = new FormData();
-                    $.each( owner._formData, function( k, v ) {
-                        formData.append( k, v );
-                    });
-    
-                    formData.append( opts.fileVal, blob.getSource(),
-                            opts.filename || owner._formData.name || '' );
-                }
-    
-                if ( opts.withCredentials && 'withCredentials' in xhr ) {
-                    xhr.open( opts.method, server, true );
-                    xhr.withCredentials = true;
-                } else {
-                    xhr.open( opts.method, server );
-                }
-    
-                this._setRequestHeader( xhr, opts.headers );
-    
-                if ( binary ) {
-                    xhr.overrideMimeType('application/octet-stream');
-    
-                    // android鐩存帴鍙戦�乥lob浼氬鑷存湇鍔$鎺ユ敹鍒扮殑鏄┖鏂囦欢銆�
-                    // bug璇︽儏銆�
-                    // https://code.google.com/p/android/issues/detail?id=39882
-                    // 鎵�浠ュ厛鐢╢ileReader璇诲彇鍑烘潵鍐嶉�氳繃arraybuffer鐨勬柟寮忓彂閫併��
-                    if ( Base.os.android ) {
-                        fr = new FileReader();
-    
-                        fr.onload = function() {
-                            xhr.send( this.result );
-                            fr = fr.onload = null;
-                        };
-    
-                        fr.readAsArrayBuffer( binary );
-                    } else {
-                        xhr.send( binary );
-                    }
-                } else {
-                    xhr.send( formData );
-                }
-            },
-    
-            getResponse: function() {
-                return this._response;
-            },
-    
-            getResponseAsJson: function() {
-                return this._parseJson( this._response );
-            },
-    
-            getStatus: function() {
-                return this._status;
-            },
-    
-            abort: function() {
-                var xhr = this._xhr;
-    
-                if ( xhr ) {
-                    xhr.upload.onprogress = noop;
-                    xhr.onreadystatechange = noop;
-                    xhr.abort();
-    
-                    this._xhr = xhr = null;
-                }
-            },
-    
-            destroy: function() {
-                this.abort();
-            },
-    
-            _initAjax: function() {
-                var me = this,
-                    xhr = new XMLHttpRequest(),
-                    opts = this.options;
-    
-                if ( opts.withCredentials && !('withCredentials' in xhr) &&
-                        typeof XDomainRequest !== 'undefined' ) {
-                    xhr = new XDomainRequest();
-                }
-    
-                xhr.upload.onprogress = function( e ) {
-                    var percentage = 0;
-    
-                    if ( e.lengthComputable ) {
-                        percentage = e.loaded / e.total;
-                    }
-    
-                    return me.trigger( 'progress', percentage );
-                };
-    
-                xhr.onreadystatechange = function() {
-    
-                    if ( xhr.readyState !== 4 ) {
-                        return;
-                    }
-    
-                    xhr.upload.onprogress = noop;
-                    xhr.onreadystatechange = noop;
-                    me._xhr = null;
-                    me._status = xhr.status;
-    
-                    if ( xhr.status >= 200 && xhr.status < 300 ) {
-                        me._response = xhr.responseText;
-                        return me.trigger('load');
-                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
-                        me._response = xhr.responseText;
-                        return me.trigger( 'error', 'server' );
-                    }
-    
-    
-                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
-                };
-    
-                me._xhr = xhr;
-                return xhr;
-            },
-    
-            _setRequestHeader: function( xhr, headers ) {
-                $.each( headers, function( key, val ) {
-                    xhr.setRequestHeader( key, val );
-                });
-            },
-    
-            _parseJson: function( str ) {
-                var json;
-    
-                try {
-                    json = JSON.parse( str );
-                } catch ( ex ) {
-                    json = {};
-                }
-    
-                return json;
-            }
-        });
-    });
-    /**
-     * @fileOverview FlashRuntime
-     */
-    define('runtime/flash/runtime',[
-        'base',
-        'runtime/runtime',
-        'runtime/compbase'
-    ], function( Base, Runtime, CompBase ) {
-    
-        var $ = Base.$,
-            type = 'flash',
-            components = {};
-    
-    
-        function getFlashVersion() {
-            var version;
-    
-            try {
-                version = navigator.plugins[ 'Shockwave Flash' ];
-                version = version.description;
-            } catch ( ex ) {
-                try {
-                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
-                            .GetVariable('$version');
-                } catch ( ex2 ) {
-                    version = '0.0';
-                }
-            }
-            version = version.match( /\d+/g );
-            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
-        }
-    
-        function FlashRuntime() {
-            var pool = {},
-                clients = {},
-                destory = this.destory,
-                me = this,
-                jsreciver = Base.guid('webuploader_');
-    
-            Runtime.apply( me, arguments );
-            me.type = type;
-    
-    
-            // 杩欎釜鏂规硶鐨勮皟鐢ㄨ�咃紝瀹為檯涓婃槸RuntimeClient
-            me.exec = function( comp, fn/*, args...*/ ) {
-                var client = this,
-                    uid = client.uid,
-                    args = Base.slice( arguments, 2 ),
-                    instance;
-    
-                clients[ uid ] = client;
-    
-                if ( components[ comp ] ) {
-                    if ( !pool[ uid ] ) {
-                        pool[ uid ] = new components[ comp ]( client, me );
-                    }
-    
-                    instance = pool[ uid ];
-    
-                    if ( instance[ fn ] ) {
-                        return instance[ fn ].apply( instance, args );
-                    }
-                }
-    
-                return me.flashExec.apply( client, arguments );
-            };
-    
-            function handler( evt, obj ) {
-                var type = evt.type || evt,
-                    parts, uid;
-    
-                parts = type.split('::');
-                uid = parts[ 0 ];
-                type = parts[ 1 ];
-    
-                // console.log.apply( console, arguments );
-    
-                if ( type === 'Ready' && uid === me.uid ) {
-                    me.trigger('ready');
-                } else if ( clients[ uid ] ) {
-                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
-                }
-    
-                // Base.log( evt, obj );
-            }
-    
-            // flash鐨勬帴鍙楀櫒銆�
-            window[ jsreciver ] = function() {
-                var args = arguments;
-    
-                // 涓轰簡鑳芥崟鑾峰緱鍒般��
-                setTimeout(function() {
-                    handler.apply( null, args );
-                }, 1 );
-            };
-    
-            this.jsreciver = jsreciver;
-    
-            this.destory = function() {
-                // @todo 鍒犻櫎姹犲瓙涓殑鎵�鏈夊疄渚�
-                return destory && destory.apply( this, arguments );
-            };
-    
-            this.flashExec = function( comp, fn ) {
-                var flash = me.getFlash(),
-                    args = Base.slice( arguments, 2 );
-    
-                return flash.exec( this.uid, comp, fn, args );
-            };
-    
-            // @todo
-        }
-    
-        Base.inherits( Runtime, {
-            constructor: FlashRuntime,
-    
-            init: function() {
-                var container = this.getContainer(),
-                    opts = this.options,
-                    html;
-    
-                // if not the minimal height, shims are not initialized
-                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
-                container.css({
-                    position: 'absolute',
-                    top: '-8px',
-                    left: '-8px',
-                    width: '9px',
-                    height: '9px',
-                    overflow: 'hidden'
-                });
-    
-                // insert flash object
-                html = '<object id="' + this.uid + '" type="application/' +
-                        'x-shockwave-flash" data="' +  opts.swf + '" ';
-    
-                if ( Base.browser.ie ) {
-                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
-                }
-    
-                html += 'width="100%" height="100%" style="outline:0">'  +
-                    '<param name="movie" value="' + opts.swf + '" />' +
-                    '<param name="flashvars" value="uid=' + this.uid +
-                    '&jsreciver=' + this.jsreciver + '" />' +
-                    '<param name="wmode" value="transparent" />' +
-                    '<param name="allowscriptaccess" value="always" />' +
-                '</object>';
-    
-                container.html( html );
-            },
-    
-            getFlash: function() {
-                if ( this._flash ) {
-                    return this._flash;
-                }
-    
-                this._flash = $( '#' + this.uid ).get( 0 );
-                return this._flash;
-            }
-    
-        });
-    
-        FlashRuntime.register = function( name, component ) {
-            component = components[ name ] = Base.inherits( CompBase, $.extend({
-    
-                // @todo fix this later
-                flashExec: function() {
-                    var owner = this.owner,
-                        runtime = this.getRuntime();
-    
-                    return runtime.flashExec.apply( owner, arguments );
-                }
-            }, component ) );
-    
-            return component;
-        };
-    
-        if ( getFlashVersion() >= 11.4 ) {
-            Runtime.addRuntime( type, FlashRuntime );
-        }
-    
-        return FlashRuntime;
-    });
-    /**
-     * @fileOverview FilePicker
-     */
-    define('runtime/flash/filepicker',[
-        'base',
-        'runtime/flash/runtime'
-    ], function( Base, FlashRuntime ) {
-        var $ = Base.$;
-    
-        return FlashRuntime.register( 'FilePicker', {
-            init: function( opts ) {
-                var copy = $.extend({}, opts ),
-                    len, i;
-    
-                // 淇Flash鍐嶆病鏈夎缃畉itle鐨勬儏鍐典笅鏃犳硶寮瑰嚭flash鏂囦欢閫夋嫨妗嗙殑bug.
-                len = copy.accept && copy.accept.length;
-                for (  i = 0; i < len; i++ ) {
-                    if ( !copy.accept[ i ].title ) {
-                        copy.accept[ i ].title = 'Files';
-                    }
-                }
-    
-                delete copy.button;
-                delete copy.container;
-    
-                this.flashExec( 'FilePicker', 'init', copy );
-            },
-    
-            destroy: function() {
-                // todo
-            }
-        });
-    });
-    /**
-     * @fileOverview  Transport flash瀹炵幇
-     */
-    define('runtime/flash/transport',[
-        'base',
-        'runtime/flash/runtime',
-        'runtime/client'
-    ], function( Base, FlashRuntime, RuntimeClient ) {
-        var $ = Base.$;
-    
-        return FlashRuntime.register( 'Transport', {
-            init: function() {
-                this._status = 0;
-                this._response = null;
-                this._responseJson = null;
-            },
-    
-            send: function() {
-                var owner = this.owner,
-                    opts = this.options,
-                    xhr = this._initAjax(),
-                    blob = owner._blob,
-                    server = opts.server,
-                    binary;
-    
-                xhr.connectRuntime( blob.ruid );
-    
-                if ( opts.sendAsBinary ) {
-                    server += (/\?/.test( server ) ? '&' : '?') +
-                            $.param( owner._formData );
-    
-                    binary = blob.uid;
-                } else {
-                    $.each( owner._formData, function( k, v ) {
-                        xhr.exec( 'append', k, v );
-                    });
-    
-                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
-                            opts.filename || owner._formData.name || '' );
-                }
-    
-                this._setRequestHeader( xhr, opts.headers );
-                xhr.exec( 'send', {
-                    method: opts.method,
-                    url: server
-                }, binary );
-            },
-    
-            getStatus: function() {
-                return this._status;
-            },
-    
-            getResponse: function() {
-                return this._response;
-            },
-    
-            getResponseAsJson: function() {
-                return this._responseJson;
-            },
-    
-            abort: function() {
-                var xhr = this._xhr;
-    
-                if ( xhr ) {
-                    xhr.exec('abort');
-                    xhr.destroy();
-                    this._xhr = xhr = null;
-                }
-            },
-    
-            destroy: function() {
-                this.abort();
-            },
-    
-            _initAjax: function() {
-                var me = this,
-                    xhr = new RuntimeClient('XMLHttpRequest');
-    
-                xhr.on( 'uploadprogress progress', function( e ) {
-                    return me.trigger( 'progress', e.loaded / e.total );
-                });
-    
-                xhr.on( 'load', function() {
-                    var status = xhr.exec('getStatus'),
-                        err = '';
-    
-                    xhr.off();
-                    me._xhr = null;
-    
-                    if ( status >= 200 && status < 300 ) {
-                        me._response = xhr.exec('getResponse');
-                        me._responseJson = xhr.exec('getResponseAsJson');
-                    } else if ( status >= 500 && status < 600 ) {
-                        me._response = xhr.exec('getResponse');
-                        me._responseJson = xhr.exec('getResponseAsJson');
-                        err = 'server';
-                    } else {
-                        err = 'http';
-                    }
-    
-                    xhr.destroy();
-                    xhr = null;
-    
-                    return err ? me.trigger( 'error', err ) : me.trigger('load');
-                });
-    
-                xhr.on( 'error', function() {
-                    xhr.off();
-                    me._xhr = null;
-                    me.trigger( 'error', 'http' );
-                });
-    
-                me._xhr = xhr;
-                return xhr;
-            },
-    
-            _setRequestHeader: function( xhr, headers ) {
-                $.each( headers, function( key, val ) {
-                    xhr.exec( 'setRequestHeader', key, val );
-                });
-            }
-        });
-    });
-    /**
-     * @fileOverview 娌℃湁鍥惧儚澶勭悊鐨勭増鏈��
-     */
-    define('preset/withoutimage',[
-        'base',
-    
-        // widgets
-        'widgets/filednd',
-        'widgets/filepaste',
-        'widgets/filepicker',
-        'widgets/queue',
-        'widgets/runtime',
-        'widgets/upload',
-        'widgets/validator',
-    
-        // runtimes
-        // html5
-        'runtime/html5/blob',
-        'runtime/html5/dnd',
-        'runtime/html5/filepaste',
-        'runtime/html5/filepicker',
-        'runtime/html5/transport',
-    
-        // flash
-        'runtime/flash/filepicker',
-        'runtime/flash/transport'
-    ], function( Base ) {
-        return Base;
-    });
-    define('webuploader',[
-        'preset/withoutimage'
-    ], function( preset ) {
-        return preset;
-    });
-    return require('webuploader');
-});
diff --git a/server/public/ueditor/third-party/webuploader/webuploader.withoutimage.min.js b/server/public/ueditor/third-party/webuploader/webuploader.withoutimage.min.js
deleted file mode 100644
index d403f40..0000000
--- a/server/public/ueditor/third-party/webuploader/webuploader.withoutimage.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* WebUploader 0.1.2 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}},j=b(a,f,e);i(j),"object"==typeof module&&"object"==typeof module.exports?module.exports=j:"function"==typeof define&&define.amd?define([],j):(c=a.WebUploader,a.WebUploader=j,a.WebUploader.noConflict=function(){a.WebUploader=c})}(this,function(a,b,c){return b("dollar-third",[],function(){return a.jQuery||a.Zepto}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.2",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",getDimension:"get-dimension",addButton:"add-btn",getRuntimeType:"get-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return{successNum:a.numOfSuccess,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.parentNode.removeChild(this.__container),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/dnd",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},d.options,a),a.container=e(a.container),a.container.length&&c.call(this,"DragAndDrop")}var e=a.$;return d.options={accept:null,disableGlobalDnd:!1},a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})},destroy:function(){this.disconnectRuntime()}}),b.installTo(d.prototype),d}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g={},h=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):g},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[];return e.each(h,function(c,d){b.push(new d(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,h,i,j,k=0,l=this._widgets,m=l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],h=f.invoke(b,d),h!==g&&(a.isPromise(h)?o.push(h):n.push(h));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return setTimeout(function(){b.resolve.apply(b,c)},1),b.promise()})[j](e||a.noop)):n[0]}}),b.register=d.register=function(b,c){var f,g={init:"init"};return 1===arguments.length?(c=b,c.responseMap=g):c.responseMap=e.extend(g,b),f=a.inherits(d,c),h.push(f),f},d}),b("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(a,b,c){var d=a.$;return b.options.dnd="",b.register({init:function(b){if(b.dnd&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{disableGlobalDnd:b.disableGlobalDnd,container:b.dnd,accept:b.accept});return e=new c(h),e.once("ready",g.resolve),e.on("drop",function(a){f.request("add-file",[a])}),e.on("accept",function(a){return f.owner.trigger("dndAccept",a)}),e.init(),g.promise()}}})}),b("lib/filepaste",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},a),a.container=e(a.container||document.body),c.call(this,"FilePaste")}var e=a.$;return a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})},destroy:function(){this.exec("destroy"),this.disconnectRuntime(),this.off()}}),b.installTo(d.prototype),d}),b("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(a,b,c){var d=a.$;return b.register({init:function(b){if(b.paste&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{container:b.paste,accept:b.accept});return e=new c(h),e.once("ready",g.resolve),e.on("paste",function(a){f.owner.request("add-file",[a])}),e.init(),g.promise()}}})}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,b.call(d,"Blob"),this.uid=c.uid||this.uid,this.type=c.type||"",this.size=c.size||0,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;b.apply(this,arguments),this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&this.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(this.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),!this.type&&~"jpg,jpeg,png,gif,bmp".indexOf(f)&&(this.type="image/"+("jpg"===f?"jpeg":f)),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString()}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("鎸夐挳鎸囧畾閿欒");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var b=this,c=b.options,e=c.button;e.addClass("webuploader-pick"),b.on("all",function(a){var g;switch(a){case"mouseenter":e.addClass("webuploader-pick-hover");break;case"mouseleave":e.removeClass("webuploader-pick-hover");break;case"change":g=b.exec("getFiles"),b.trigger("select",f.map(g,function(a){return a=new d(b.getRuid(),a),a._refer=c.container,a}),c.container)}}),b.connectRuntime(c,function(){b.refresh(),b.exec("init",c),b.trigger("ready")}),f(a).on("resize",function(){b.refresh()})},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){this.runtime&&(this.exec("destroy"),this.disconnectRuntime())}}),e}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({"add-btn":"addButton",refresh:"refresh",disable:"disable",enable:"enable"},{init:function(a){return this.pickers=[],a.pick&&this.addButton(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addButton:function(b){var e,f,g,h=this,i=h.options,j=i.accept;if(b)return g=a.Deferred(),d.isPlainObject(b)||(b={id:b}),e=d.extend({},b,{accept:d.isPlainObject(j)?[j]:j,swf:i.swf,runtimeOrder:i.runtimeOrder}),f=new c(e),f.once("ready",g.resolve),f.on("select",function(a){h.owner.request("add-file",[a])}),f.init(),this.pickers.push(f),g.promise()},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destory:function(){delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)})),a.setStatus(f.QUEUED)},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({"sort-files":"sortFiles","add-file":"addFiles","get-file":"getFile","fetch-file":"fetchFile","get-stats":"getStats","get-files":"getFiles","remove-file":"removeFile",retry:"retry",reset:"reset","accept-file":"acceptFile"},{init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||a.size<6||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFiles:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&b.request("start-upload")},getStats:function(){return this.stats},removeFile:function(a){var b=this;a=a.id?a:b.queue.getFile(a),a.setStatus(i.CANCELLED),b.owner.trigger("fileDequeued",a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.queue=new c,this.stats=this.queue.stats}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({"predict-runtime-type":"predictRuntmeType"},{init:function(){if(!this.predictRuntmeType())throw Error("Runtime Error")},predictRuntmeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){for(var c,d=[],e=a.source,f=e.size,g=b?Math.ceil(f/b):1,h=0,i=0;g>i;)c=Math.min(b,f-h),d.push({file:a,start:h,end:b?h+c:f,total:f,chunks:g,chunk:i++}),h+=c;return a.blocks=d.concat(),a.remaning=d.length,{file:a,has:function(){return!!d.length},fetch:function(){return d.shift()}}}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:null}),b.register({"start-upload":"start","stop-upload":"stop","skip-file":"skipFile","is-in-progress":"isInProgress"},{init:function(){var b=this.owner;this.runing=!1,this.pool=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},start:function(){var b=this;f.each(b.request("get-files",h.INVALID),function(){b.request("remove-file",this)}),b.runing||(b.runing=!0,f.each(b.pool,function(a,c){var d=c.file;d.getStatus()===h.INTERRUPT&&(d.setStatus(h.PROGRESS),b._trigged=!1,c.transport&&c.transport.send())}),b._trigged=!1,b.owner.trigger("startUpload"),a.nextTick(b.__tick))},stop:function(a){var b=this;b.runing!==!1&&(b.runing=!1,a&&f.each(b.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),b.owner.trigger("stopUpload"))},isInProgress:function(){return!!this.runing},getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d.getStats().numOfQueue||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_nextBlock:function(){var a,b,c=this,d=c._act,f=c.options;return d&&d.has()&&d.file.getStatus()===h.PROGRESS?(f.prepareNextFile&&!c.pending.length&&c._prepareNextFile(),d.fetch()):c.runing?(!c.pending.length&&c.getStats().numOfQueue&&c._prepareNextFile(),a=c.pending.shift(),b=function(a){return a?(d=e(a,f.chunked?f.chunkSize:0),c._act=d,d.fetch()):null},g(a)?a[a.pipe?"pipe":"then"](b):b(a)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.QUEUED?(b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),c):b._finishFile(c)}),a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d._popBlock(b),a.nextTick(d.__tick))})},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){var c=0,d=0;c=b.percentage=a,b.chunks>1&&(f.each(k.blocks,function(a,b){d+=(b.percentage||0)*(b.end-b.start)}),c=d/k.size),i.trigger("uploadProgress",k,c||0)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({init:function(){var a=this;e.each(f,function(){this.call(a.owner)})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=b.fileNumLimit>>0,e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("uploadFinished",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=b.fileSizeLimit>>0,e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("uploadFinished",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}))}),d}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destory;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destory=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(a,b,c){var d=a.$,e="webuploader-dnd-";return b.register("DragAndDrop",{init:function(){var b=this.elem=this.options.container;this.dragEnterHandler=a.bindFn(this._dragEnterHandler,this),this.dragOverHandler=a.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=a.bindFn(this._dragLeaveHandler,this),this.dropHandler=a.bindFn(this._dropHandler,this),this.dndOver=!1,b.on("dragenter",this.dragEnterHandler),b.on("dragover",this.dragOverHandler),b.on("dragleave",this.dragLeaveHandler),b.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).on("dragover",this.dragOverHandler),d(document).on("drop",this.dropHandler))},_dragEnterHandler:function(a){var b,c=this,d=c._denied||!1;return a=a.originalEvent||a,c.dndOver||(c.dndOver=!0,b=a.dataTransfer.items,b&&b.length&&(c._denied=d=!c.trigger("accept",b)),c.elem.addClass(e+"over"),c.elem[d?"addClass":"removeClass"](e+"denied")),a.dataTransfer.dropEffect=d?"none":"copy",!1},_dragOverHandler:function(a){var b=this.elem.parent().get(0);return b&&!d.contains(b,a.currentTarget)?!1:(clearTimeout(this._leaveTimer),this._dragEnterHandler.call(this,a),!1)},_dragLeaveHandler:function(){var a,b=this;return a=function(){b.dndOver=!1,b.elem.removeClass(e+"over "+e+"denied")},clearTimeout(b._leaveTimer),b._leaveTimer=setTimeout(a,100),!1},_dropHandler:function(a){var b=this,f=b.getRuid(),g=b.elem.parent().get(0);return g&&!d.contains(g,a.currentTarget)?!1:(b._getTansferFiles(a,function(a){b.trigger("drop",d.map(a,function(a){return new c(f,a)}))}),b.dndOver=!1,b.elem.removeClass(e+"over"),!1)},_getTansferFiles:function(b,c){var d,e,f,g,h,i,j,k,l=[],m=[];for(b=b.originalEvent||b,f=b.dataTransfer,d=f.items,e=f.files,k=!(!d||!d[0].webkitGetAsEntry),i=0,j=e.length;j>i;i++)g=e[i],h=d&&d[i],k&&h.webkitGetAsEntry().isDirectory?m.push(this._traverseDirectoryTree(h.webkitGetAsEntry(),l)):l.push(g);a.when.apply(a,m).done(function(){l.length&&c(l)})},_traverseDirectoryTree:function(b,c){var d=a.Deferred(),e=this;return b.isFile?b.file(function(a){c.push(a),d.resolve()}):b.isDirectory&&b.createReader().readEntries(function(b){var f,g=b.length,h=[],i=[];for(f=0;g>f;f++)h.push(e._traverseDirectoryTree(b[f],i));a.when.apply(a,h).then(function(){c.push.apply(c,i),d.resolve()},d.reject)}),d.promise()},destroy:function(){var a=this.elem;a.off("dragenter",this.dragEnterHandler),a.off("dragover",this.dragEnterHandler),a.off("dragleave",this.dragLeaveHandler),a.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).off("dragover",this.dragOverHandler),d(document).off("drop",this.dropHandler))}})}),b("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(a,b,c){return b.register("FilePaste",{init:function(){var b,c,d,e,f=this.options,g=this.elem=f.container,h=".*";if(f.accept){for(b=[],c=0,d=f.accept.length;d>c;c++)e=f.accept[c].mimeTypes,e&&b.push(e);b.length&&(h=b.join(","),h=h.replace(/,/g,"|").replace(/\*/g,".*"))
-}this.accept=h=new RegExp(h,"i"),this.hander=a.bindFn(this._pasteHander,this),g.on("paste",this.hander)},_pasteHander:function(a){var b,d,e,f,g,h=[],i=this.getRuid();for(a=a.originalEvent||a,b=a.clipboardData.items,f=0,g=b.length;g>f;f++)d=b[f],"file"===d.kind&&(e=d.getAsFile())&&h.push(new c(i,e));h.length&&(a.preventDefault(),a.stopPropagation(),this.trigger("paste",h))},destroy:function(){this.elem.off("paste",this.hander)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=c(document.createElement("label")),k=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){}})}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a;try{a=navigator.plugins["Shockwave Flash"],a=a.description}catch(b){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(c){a="0.0"}}return a=a.match(/\d+/g),parseFloat(a[0]+"."+a[1],10)}function f(){function d(a,b){var c,d,e=a.type||a;c=e.split("::"),d=c[0],e=c[1],"Ready"===e&&d===j.uid?j.trigger("ready"):f[d]&&f[d].trigger(e.toLowerCase(),a,b)}var e={},f={},g=this.destory,j=this,k=b.guid("webuploader_");c.apply(j,arguments),j.type=h,j.exec=function(a,c){var d,g=this,h=g.uid,k=b.slice(arguments,2);return f[h]=g,i[a]&&(e[h]||(e[h]=new i[a](g,j)),d=e[h],d[c])?d[c].apply(d,k):j.flashExec.apply(g,arguments)},a[k]=function(){var a=arguments;setTimeout(function(){d.apply(null,a)},1)},this.jsreciver=k,this.destory=function(){return g&&g.apply(this,arguments)},this.flashExec=function(a,c){var d=j.getFlash(),e=b.slice(arguments,2);return d.exec(this.uid,a,c,e)}}var g=b.$,h="flash",i={};return b.inherits(c,{constructor:f,init:function(){var a,c=this.getContainer(),d=this.options;c.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),a='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+d.swf+'" ',b.browser.ie&&(a+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),a+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+d.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>',c.html(a)},getFlash:function(){return this._flash?this._flash:(this._flash=g("#"+this.uid).get(0),this._flash)}}),f.register=function(a,c){return c=i[a]=b.inherits(d,g.extend({flashExec:function(){var a=this.owner,b=this.getRuntime();return b.flashExec.apply(a,arguments)}},c))},e()>=11.4&&c.addRuntime(h,f),f}),b("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(a){var b,d,e=c.extend({},a);for(b=e.accept&&e.accept.length,d=0;b>d;d++)e.accept[d].title||(e.accept[d].title="Files");delete e.button,delete e.container,this.flashExec("FilePicker","init",e)},destroy:function(){}})}),b("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(a,b,c){var d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var a,b=this.owner,c=this.options,e=this._initAjax(),f=b._blob,g=c.server;e.connectRuntime(f.ruid),c.sendAsBinary?(g+=(/\?/.test(g)?"&":"?")+d.param(b._formData),a=f.uid):(d.each(b._formData,function(a,b){e.exec("append",a,b)}),e.exec("appendBlob",c.fileVal,f.uid,c.filename||b._formData.name||"")),this._setRequestHeader(e,c.headers),e.exec("send",{method:c.method,url:g},a)},getStatus:function(){return this._status},getResponse:function(){return this._response},getResponseAsJson:function(){return this._responseJson},abort:function(){var a=this._xhr;a&&(a.exec("abort"),a.destroy(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new c("XMLHttpRequest");return b.on("uploadprogress progress",function(b){return a.trigger("progress",b.loaded/b.total)}),b.on("load",function(){var c=b.exec("getStatus"),d="";return b.off(),a._xhr=null,c>=200&&300>c?(a._response=b.exec("getResponse"),a._responseJson=b.exec("getResponseAsJson")):c>=500&&600>c?(a._response=b.exec("getResponse"),a._responseJson=b.exec("getResponseAsJson"),d="server"):d="http",b.destroy(),b=null,d?a.trigger("error",d):a.trigger("load")}),b.on("error",function(){b.off(),a._xhr=null,a.trigger("error","http")}),a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.exec("setRequestHeader",b,c)})}})}),b("preset/withoutimage",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/transport","runtime/flash/filepicker","runtime/flash/transport"],function(a){return a}),b("webuploader",["preset/withoutimage"],function(a){return a}),c("webuploader")});
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/xss.min.js b/server/public/ueditor/third-party/xss.min.js
deleted file mode 100644
index 48d7880..0000000
--- a/server/public/ueditor/third-party/xss.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){var FilterCSS=require("cssfilter").FilterCSS;var _=require("./util");function getDefaultWhiteList(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var defaultCSSFilter=new FilterCSS;function onTag(tag,html,options){}function onIgnoreTag(tag,html,options){}function onTagAttr(tag,name,value){}function onIgnoreTagAttr(tag,name,value){}function escapeHtml(html){return html.replace(REGEXP_LT,"&lt;").replace(REGEXP_GT,"&gt;")}function safeAttrValue(tag,name,value,cssFilter){cssFilter=cssFilter||defaultCSSFilter;value=friendlyAttrValue(value);if(name==="href"||name==="src"){value=_.trim(value);if(value==="#")return"#";if(!(value.substr(0,7)==="http://"||value.substr(0,8)==="https://"||value.substr(0,7)==="mailto:"||value[0]==="#"||value[0]==="/")){return""}}else if(name==="background"){REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)){return""}}else if(name==="style"){REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)){return""}REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)){REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex=0;if(REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)){return""}}value=cssFilter.process(value)}value=escapeAttrValue(value);return value}var REGEXP_LT=/</g;var REGEXP_GT=/>/g;var REGEXP_QUOTE=/"/g;var REGEXP_QUOTE_2=/&quot;/g;var REGEXP_ATTR_VALUE_1=/&#([a-zA-Z0-9]*);?/gim;var REGEXP_ATTR_VALUE_COLON=/&colon;?/gim;var REGEXP_ATTR_VALUE_NEWLINE=/&newline;?/gim;var REGEXP_DEFAULT_ON_TAG_ATTR_3=/\/\*|\*\//gm;var REGEXP_DEFAULT_ON_TAG_ATTR_4=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_5=/^[\s"'`]*(d\s*a\s*t\s*a\s*)\:/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_6=/^[\s"'`]*(d\s*a\s*t\s*a\s*)\:\s*image\//gi;var REGEXP_DEFAULT_ON_TAG_ATTR_7=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi;var REGEXP_DEFAULT_ON_TAG_ATTR_8=/u\s*r\s*l\s*\(.*/gi;function escapeQuote(str){return str.replace(REGEXP_QUOTE,"&quot;")}function unescapeQuote(str){return str.replace(REGEXP_QUOTE_2,'"')}function escapeHtmlEntities(str){return str.replace(REGEXP_ATTR_VALUE_1,function replaceUnicode(str,code){return code[0]==="x"||code[0]==="X"?String.fromCharCode(parseInt(code.substr(1),16)):String.fromCharCode(parseInt(code,10))})}function escapeDangerHtml5Entities(str){return str.replace(REGEXP_ATTR_VALUE_COLON,":").replace(REGEXP_ATTR_VALUE_NEWLINE," ")}function clearNonPrintableCharacter(str){var str2="";for(var i=0,len=str.length;i<len;i++){str2+=str.charCodeAt(i)<32?" ":str.charAt(i)}return _.trim(str2)}function friendlyAttrValue(str){str=unescapeQuote(str);str=escapeHtmlEntities(str);str=escapeDangerHtml5Entities(str);str=clearNonPrintableCharacter(str);return str}function escapeAttrValue(str){str=escapeQuote(str);str=escapeHtml(str);return str}function onIgnoreTagStripAll(){return""}function StripTagBody(tags,next){if(typeof next!=="function"){next=function(){}}var isRemoveAllTag=!Array.isArray(tags);function isRemoveTag(tag){if(isRemoveAllTag)return true;return _.indexOf(tags,tag)!==-1}var removeList=[];var posStart=false;return{onIgnoreTag:function(tag,html,options){if(isRemoveTag(tag)){if(options.isClosing){var ret="[/removed]";var end=options.position+ret.length;removeList.push([posStart!==false?posStart:options.position,end]);posStart=false;return ret}else{if(!posStart){posStart=options.position}return"[removed]"}}else{return next(tag,html,options)}},remove:function(html){var rethtml="";var lastPos=0;_.forEach(removeList,function(pos){rethtml+=html.slice(lastPos,pos[0]);lastPos=pos[1]});rethtml+=html.slice(lastPos);return rethtml}}}function stripCommentTag(html){return html.replace(STRIP_COMMENT_TAG_REGEXP,"")}var STRIP_COMMENT_TAG_REGEXP=/<!--[\s\S]*?-->/g;function stripBlankChar(html){var chars=html.split("");chars=chars.filter(function(char){var c=char.charCodeAt(0);if(c===127)return false;if(c<=31){if(c===10||c===13)return true;return false}return true});return chars.join("")}exports.whiteList=getDefaultWhiteList();exports.getDefaultWhiteList=getDefaultWhiteList;exports.onTag=onTag;exports.onIgnoreTag=onIgnoreTag;exports.onTagAttr=onTagAttr;exports.onIgnoreTagAttr=onIgnoreTagAttr;exports.safeAttrValue=safeAttrValue;exports.escapeHtml=escapeHtml;exports.escapeQuote=escapeQuote;exports.unescapeQuote=unescapeQuote;exports.escapeHtmlEntities=escapeHtmlEntities;exports.escapeDangerHtml5Entities=escapeDangerHtml5Entities;exports.clearNonPrintableCharacter=clearNonPrintableCharacter;exports.friendlyAttrValue=friendlyAttrValue;exports.escapeAttrValue=escapeAttrValue;exports.onIgnoreTagStripAll=onIgnoreTagStripAll;exports.StripTagBody=StripTagBody;exports.stripCommentTag=stripCommentTag;exports.stripBlankChar=stripBlankChar;exports.cssFilter=defaultCSSFilter},{"./util":4,cssfilter:8}],2:[function(require,module,exports){var DEFAULT=require("./default");var parser=require("./parser");var FilterXSS=require("./xss");function filterXSS(html,options){var xss=new FilterXSS(options);return xss.process(html)}exports=module.exports=filterXSS;exports.FilterXSS=FilterXSS;for(var i in DEFAULT)exports[i]=DEFAULT[i];for(var i in parser)exports[i]=parser[i];if(typeof window!=="undefined"){window.filterXSS=module.exports}},{"./default":1,"./parser":3,"./xss":5}],3:[function(require,module,exports){var _=require("./util");function getTagName(html){var i=html.indexOf(" ");if(i===-1){var tagName=html.slice(1,-1)}else{var tagName=html.slice(1,i+1)}tagName=_.trim(tagName).toLowerCase();if(tagName.slice(0,1)==="/")tagName=tagName.slice(1);if(tagName.slice(-1)==="/")tagName=tagName.slice(0,-1);return tagName}function isClosing(html){return html.slice(0,2)==="</"}function parseTag(html,onTag,escapeHtml){"user strict";var rethtml="";var lastPos=0;var tagStart=false;var quoteStart=false;var currentPos=0;var len=html.length;var currentHtml="";var currentTagName="";for(currentPos=0;currentPos<len;currentPos++){var c=html.charAt(currentPos);if(tagStart===false){if(c==="<"){tagStart=currentPos;continue}}else{if(quoteStart===false){if(c==="<"){rethtml+=escapeHtml(html.slice(lastPos,currentPos));tagStart=currentPos;lastPos=currentPos;continue}if(c===">"){rethtml+=escapeHtml(html.slice(lastPos,tagStart));currentHtml=html.slice(tagStart,currentPos+1);currentTagName=getTagName(currentHtml);rethtml+=onTag(tagStart,rethtml.length,currentTagName,currentHtml,isClosing(currentHtml));lastPos=currentPos+1;tagStart=false;continue}if((c==='"'||c==="'")&&html.charAt(currentPos-1)==="="){quoteStart=c;continue}}else{if(c===quoteStart){quoteStart=false;continue}}}}if(lastPos<html.length){rethtml+=escapeHtml(html.substr(lastPos))}return rethtml}var REGEXP_ATTR_NAME=/[^a-zA-Z0-9_:\.\-]/gim;function parseAttr(html,onAttr){"user strict";var lastPos=0;var retAttrs=[];var tmpName=false;var len=html.length;function addAttr(name,value){name=_.trim(name);name=name.replace(REGEXP_ATTR_NAME,"").toLowerCase();if(name.length<1)return;var ret=onAttr(name,value||"");if(ret)retAttrs.push(ret)}for(var i=0;i<len;i++){var c=html.charAt(i);var v,j;if(tmpName===false&&c==="="){tmpName=html.slice(lastPos,i);lastPos=i+1;continue}if(tmpName!==false){if(i===lastPos&&(c==='"'||c==="'")&&html.charAt(i-1)==="="){j=html.indexOf(c,i+1);if(j===-1){break}else{v=_.trim(html.slice(lastPos+1,j));addAttr(tmpName,v);tmpName=false;i=j;lastPos=i+1;continue}}}if(c===" "){if(tmpName===false){j=findNextEqual(html,i);if(j===-1){v=_.trim(html.slice(lastPos,i));addAttr(v);tmpName=false;lastPos=i+1;continue}else{i=j-1;continue}}else{j=findBeforeEqual(html,i-1);if(j===-1){v=_.trim(html.slice(lastPos,i));v=stripQuoteWrap(v);addAttr(tmpName,v);tmpName=false;lastPos=i+1;continue}else{continue}}}}if(lastPos<html.length){if(tmpName===false){addAttr(html.slice(lastPos))}else{addAttr(tmpName,stripQuoteWrap(_.trim(html.slice(lastPos))))}}return _.trim(retAttrs.join(" "))}function findNextEqual(str,i){for(;i<str.length;i++){var c=str[i];if(c===" ")continue;if(c==="=")return i;return-1}}function findBeforeEqual(str,i){for(;i>0;i--){var c=str[i];if(c===" ")continue;if(c==="=")return i;return-1}}function isQuoteWrapString(text){if(text[0]==='"'&&text[text.length-1]==='"'||text[0]==="'"&&text[text.length-1]==="'"){return true}else{return false}}function stripQuoteWrap(text){if(isQuoteWrapString(text)){return text.substr(1,text.length-2)}else{return text}}exports.parseTag=parseTag;exports.parseAttr=parseAttr},{"./util":4}],4:[function(require,module,exports){module.exports={indexOf:function(arr,item){var i,j;if(Array.prototype.indexOf){return arr.indexOf(item)}for(i=0,j=arr.length;i<j;i++){if(arr[i]===item){return i}}return-1},forEach:function(arr,fn,scope){var i,j;if(Array.prototype.forEach){return arr.forEach(fn,scope)}for(i=0,j=arr.length;i<j;i++){fn.call(scope,arr[i],i,arr)}},trim:function(str){if(String.prototype.trim){return str.trim()}return str.replace(/(^\s*)|(\s*$)/g,"")}}},{}],5:[function(require,module,exports){var FilterCSS=require("cssfilter").FilterCSS;var DEFAULT=require("./default");var parser=require("./parser");var parseTag=parser.parseTag;var parseAttr=parser.parseAttr;var _=require("./util");function isNull(obj){return obj===undefined||obj===null}function getAttrs(html){var i=html.indexOf(" ");if(i===-1){return{html:"",closing:html[html.length-2]==="/"}}html=_.trim(html.slice(i+1,-1));var isClosing=html[html.length-1]==="/";if(isClosing)html=_.trim(html.slice(0,-1));return{html:html,closing:isClosing}}function FilterXSS(options){options=options||{};if(options.stripIgnoreTag){if(options.onIgnoreTag){console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time')}options.onIgnoreTag=DEFAULT.onIgnoreTagStripAll}options.whiteList=options.whiteList||DEFAULT.whiteList;options.onTag=options.onTag||DEFAULT.onTag;options.onTagAttr=options.onTagAttr||DEFAULT.onTagAttr;options.onIgnoreTag=options.onIgnoreTag||DEFAULT.onIgnoreTag;options.onIgnoreTagAttr=options.onIgnoreTagAttr||DEFAULT.onIgnoreTagAttr;options.safeAttrValue=options.safeAttrValue||DEFAULT.safeAttrValue;options.escapeHtml=options.escapeHtml||DEFAULT.escapeHtml;options.css=options.css||{};this.options=options;this.cssFilter=new FilterCSS(options.css)}FilterXSS.prototype.process=function(html){html=html||"";html=html.toString();if(!html)return"";var me=this;var options=me.options;var whiteList=options.whiteList;var onTag=options.onTag;var onIgnoreTag=options.onIgnoreTag;var onTagAttr=options.onTagAttr;var onIgnoreTagAttr=options.onIgnoreTagAttr;var safeAttrValue=options.safeAttrValue;var escapeHtml=options.escapeHtml;var cssFilter=me.cssFilter;if(options.stripBlankChar){html=DEFAULT.stripBlankChar(html)}if(!options.allowCommentTag){html=DEFAULT.stripCommentTag(html)}var stripIgnoreTagBody=false;if(options.stripIgnoreTagBody){var stripIgnoreTagBody=DEFAULT.StripTagBody(options.stripIgnoreTagBody,onIgnoreTag);onIgnoreTag=stripIgnoreTagBody.onIgnoreTag}var retHtml=parseTag(html,function(sourcePosition,position,tag,html,isClosing){var info={sourcePosition:sourcePosition,position:position,isClosing:isClosing,isWhite:tag in whiteList};var ret=onTag(tag,html,info);if(!isNull(ret))return ret;if(info.isWhite){if(info.isClosing){return"</"+tag+">"}var attrs=getAttrs(html);var whiteAttrList=whiteList[tag];var attrsHtml=parseAttr(attrs.html,function(name,value){var isWhiteAttr=_.indexOf(whiteAttrList,name)!==-1;var ret=onTagAttr(tag,name,value,isWhiteAttr);if(!isNull(ret))return ret;if(isWhiteAttr){value=safeAttrValue(tag,name,value,cssFilter);if(value){return name+'="'+value+'"'}else{return name}}else{var ret=onIgnoreTagAttr(tag,name,value,isWhiteAttr);if(!isNull(ret))return ret;return}});var html="<"+tag;if(attrsHtml)html+=" "+attrsHtml;if(attrs.closing)html+=" /";html+=">";return html}else{var ret=onIgnoreTag(tag,html,info);if(!isNull(ret))return ret;return escapeHtml(html)}},escapeHtml);if(stripIgnoreTagBody){retHtml=stripIgnoreTagBody.remove(retHtml)}return retHtml};module.exports=FilterXSS},{"./default":1,"./parser":3,"./util":4,cssfilter:8}],6:[function(require,module,exports){var DEFAULT=require("./default");var parseStyle=require("./parser");var _=require("./util");function isNull(obj){return obj===undefined||obj===null}function FilterCSS(options){options=options||{};options.whiteList=options.whiteList||DEFAULT.whiteList;options.onAttr=options.onAttr||DEFAULT.onAttr;options.onIgnoreAttr=options.onIgnoreAttr||DEFAULT.onIgnoreAttr;this.options=options}FilterCSS.prototype.process=function(css){css=css||"";css=css.toString();if(!css)return"";var me=this;var options=me.options;var whiteList=options.whiteList;var onAttr=options.onAttr;var onIgnoreAttr=options.onIgnoreAttr;var retCSS=parseStyle(css,function(sourcePosition,position,name,value,source){var check=whiteList[name];var isWhite=false;if(check===true)isWhite=check;else if(typeof check==="function")isWhite=check(value);else if(check instanceof RegExp)isWhite=check.test(value);if(isWhite!==true)isWhite=false;var opts={position:position,sourcePosition:sourcePosition,source:source,isWhite:isWhite};if(isWhite){var ret=onAttr(name,value,opts);if(isNull(ret)){return name+":"+value}else{return ret}}else{var ret=onIgnoreAttr(name,value,opts);if(!isNull(ret)){return ret}}});return retCSS};module.exports=FilterCSS},{"./default":7,"./parser":9,"./util":10}],7:[function(require,module,exports){function getDefaultWhiteList(){var whiteList={};whiteList["align-content"]=false;whiteList["align-items"]=false;whiteList["align-self"]=false;whiteList["alignment-adjust"]=false;whiteList["alignment-baseline"]=false;whiteList["all"]=false;whiteList["anchor-point"]=false;whiteList["animation"]=false;whiteList["animation-delay"]=false;whiteList["animation-direction"]=false;whiteList["animation-duration"]=false;whiteList["animation-fill-mode"]=false;whiteList["animation-iteration-count"]=false;whiteList["animation-name"]=false;whiteList["animation-play-state"]=false;whiteList["animation-timing-function"]=false;whiteList["azimuth"]=false;whiteList["backface-visibility"]=false;whiteList["background"]=true;whiteList["background-attachment"]=true;whiteList["background-clip"]=true;whiteList["background-color"]=true;whiteList["background-image"]=true;whiteList["background-origin"]=true;whiteList["background-position"]=true;whiteList["background-repeat"]=true;whiteList["background-size"]=true;whiteList["baseline-shift"]=false;whiteList["binding"]=false;whiteList["bleed"]=false;whiteList["bookmark-label"]=false;whiteList["bookmark-level"]=false;whiteList["bookmark-state"]=false;whiteList["border"]=true;whiteList["border-bottom"]=true;whiteList["border-bottom-color"]=true;whiteList["border-bottom-left-radius"]=true;whiteList["border-bottom-right-radius"]=true;whiteList["border-bottom-style"]=true;whiteList["border-bottom-width"]=true;whiteList["border-collapse"]=true;whiteList["border-color"]=true;whiteList["border-image"]=true;whiteList["border-image-outset"]=true;whiteList["border-image-repeat"]=true;whiteList["border-image-slice"]=true;whiteList["border-image-source"]=true;whiteList["border-image-width"]=true;whiteList["border-left"]=true;whiteList["border-left-color"]=true;whiteList["border-left-style"]=true;whiteList["border-left-width"]=true;whiteList["border-radius"]=true;whiteList["border-right"]=true;whiteList["border-right-color"]=true;whiteList["border-right-style"]=true;whiteList["border-right-width"]=true;whiteList["border-spacing"]=true;whiteList["border-style"]=true;whiteList["border-top"]=true;whiteList["border-top-color"]=true;whiteList["border-top-left-radius"]=true;whiteList["border-top-right-radius"]=true;whiteList["border-top-style"]=true;whiteList["border-top-width"]=true;whiteList["border-width"]=true;whiteList["bottom"]=false;whiteList["box-decoration-break"]=true;whiteList["box-shadow"]=true;whiteList["box-sizing"]=true;whiteList["box-snap"]=true;whiteList["box-suppress"]=true;whiteList["break-after"]=true;whiteList["break-before"]=true;whiteList["break-inside"]=true;whiteList["caption-side"]=false;whiteList["chains"]=false;whiteList["clear"]=true;whiteList["clip"]=false;whiteList["clip-path"]=false;whiteList["clip-rule"]=false;whiteList["color"]=true;whiteList["color-interpolation-filters"]=true;whiteList["column-count"]=false;whiteList["column-fill"]=false;whiteList["column-gap"]=false;whiteList["column-rule"]=false;whiteList["column-rule-color"]=false;whiteList["column-rule-style"]=false;whiteList["column-rule-width"]=false;whiteList["column-span"]=false;whiteList["column-width"]=false;whiteList["columns"]=false;whiteList["contain"]=false;whiteList["content"]=false;whiteList["counter-increment"]=false;whiteList["counter-reset"]=false;whiteList["counter-set"]=false;whiteList["crop"]=false;whiteList["cue"]=false;whiteList["cue-after"]=false;whiteList["cue-before"]=false;whiteList["cursor"]=false;whiteList["direction"]=false;whiteList["display"]=true;whiteList["display-inside"]=true;whiteList["display-list"]=true;whiteList["display-outside"]=true;whiteList["dominant-baseline"]=false;whiteList["elevation"]=false;whiteList["empty-cells"]=false;whiteList["filter"]=false;whiteList["flex"]=false;whiteList["flex-basis"]=false;whiteList["flex-direction"]=false;whiteList["flex-flow"]=false;whiteList["flex-grow"]=false;whiteList["flex-shrink"]=false;whiteList["flex-wrap"]=false;whiteList["float"]=false;whiteList["float-offset"]=false;whiteList["flood-color"]=false;whiteList["flood-opacity"]=false;whiteList["flow-from"]=false;whiteList["flow-into"]=false;whiteList["font"]=true;whiteList["font-family"]=true;whiteList["font-feature-settings"]=true;whiteList["font-kerning"]=true;whiteList["font-language-override"]=true;whiteList["font-size"]=true;whiteList["font-size-adjust"]=true;whiteList["font-stretch"]=true;whiteList["font-style"]=true;whiteList["font-synthesis"]=true;whiteList["font-variant"]=true;whiteList["font-variant-alternates"]=true;whiteList["font-variant-caps"]=true;whiteList["font-variant-east-asian"]=true;whiteList["font-variant-ligatures"]=true;whiteList["font-variant-numeric"]=true;whiteList["font-variant-position"]=true;whiteList["font-weight"]=true;whiteList["grid"]=false;whiteList["grid-area"]=false;whiteList["grid-auto-columns"]=false;whiteList["grid-auto-flow"]=false;whiteList["grid-auto-rows"]=false;whiteList["grid-column"]=false;whiteList["grid-column-end"]=false;whiteList["grid-column-start"]=false;whiteList["grid-row"]=false;whiteList["grid-row-end"]=false;whiteList["grid-row-start"]=false;whiteList["grid-template"]=false;whiteList["grid-template-areas"]=false;whiteList["grid-template-columns"]=false;whiteList["grid-template-rows"]=false;whiteList["hanging-punctuation"]=false;whiteList["height"]=true;whiteList["hyphens"]=false;whiteList["icon"]=false;whiteList["image-orientation"]=false;whiteList["image-resolution"]=false;whiteList["ime-mode"]=false;whiteList["initial-letters"]=false;whiteList["inline-box-align"]=false;whiteList["justify-content"]=false;whiteList["justify-items"]=false;whiteList["justify-self"]=false;whiteList["left"]=false;whiteList["letter-spacing"]=true;whiteList["lighting-color"]=true;whiteList["line-box-contain"]=false;whiteList["line-break"]=false;whiteList["line-grid"]=false;whiteList["line-height"]=false;whiteList["line-snap"]=false;whiteList["line-stacking"]=false;whiteList["line-stacking-ruby"]=false;whiteList["line-stacking-shift"]=false;whiteList["line-stacking-strategy"]=false;whiteList["list-style"]=true;whiteList["list-style-image"]=true;whiteList["list-style-position"]=true;whiteList["list-style-type"]=true;whiteList["margin"]=true;whiteList["margin-bottom"]=true;whiteList["margin-left"]=true;whiteList["margin-right"]=true;whiteList["margin-top"]=true;whiteList["marker-offset"]=false;whiteList["marker-side"]=false;whiteList["marks"]=false;whiteList["mask"]=false;whiteList["mask-box"]=false;whiteList["mask-box-outset"]=false;whiteList["mask-box-repeat"]=false;whiteList["mask-box-slice"]=false;whiteList["mask-box-source"]=false;whiteList["mask-box-width"]=false;whiteList["mask-clip"]=false;whiteList["mask-image"]=false;whiteList["mask-origin"]=false;whiteList["mask-position"]=false;whiteList["mask-repeat"]=false;whiteList["mask-size"]=false;whiteList["mask-source-type"]=false;whiteList["mask-type"]=false;whiteList["max-height"]=true;whiteList["max-lines"]=false;whiteList["max-width"]=true;whiteList["min-height"]=true;whiteList["min-width"]=true;whiteList["move-to"]=false;whiteList["nav-down"]=false;whiteList["nav-index"]=false;whiteList["nav-left"]=false;whiteList["nav-right"]=false;whiteList["nav-up"]=false;whiteList["object-fit"]=false;whiteList["object-position"]=false;whiteList["opacity"]=false;whiteList["order"]=false;whiteList["orphans"]=false;whiteList["outline"]=false;whiteList["outline-color"]=false;whiteList["outline-offset"]=false;whiteList["outline-style"]=false;whiteList["outline-width"]=false;whiteList["overflow"]=false;whiteList["overflow-wrap"]=false;whiteList["overflow-x"]=false;whiteList["overflow-y"]=false;whiteList["padding"]=true;whiteList["padding-bottom"]=true;whiteList["padding-left"]=true;whiteList["padding-right"]=true;whiteList["padding-top"]=true;whiteList["page"]=false;whiteList["page-break-after"]=false;whiteList["page-break-before"]=false;whiteList["page-break-inside"]=false;whiteList["page-policy"]=false;whiteList["pause"]=false;whiteList["pause-after"]=false;whiteList["pause-before"]=false;whiteList["perspective"]=false;whiteList["perspective-origin"]=false;whiteList["pitch"]=false;whiteList["pitch-range"]=false;whiteList["play-during"]=false;whiteList["position"]=false;whiteList["presentation-level"]=false;whiteList["quotes"]=false;whiteList["region-fragment"]=false;whiteList["resize"]=false;whiteList["rest"]=false;whiteList["rest-after"]=false;whiteList["rest-before"]=false;whiteList["richness"]=false;whiteList["right"]=false;whiteList["rotation"]=false;whiteList["rotation-point"]=false;whiteList["ruby-align"]=false;whiteList["ruby-merge"]=false;whiteList["ruby-position"]=false;whiteList["shape-image-threshold"]=false;whiteList["shape-outside"]=false;whiteList["shape-margin"]=false;whiteList["size"]=false;whiteList["speak"]=false;whiteList["speak-as"]=false;whiteList["speak-header"]=false;whiteList["speak-numeral"]=false;whiteList["speak-punctuation"]=false;whiteList["speech-rate"]=false;whiteList["stress"]=false;whiteList["string-set"]=false;whiteList["tab-size"]=false;whiteList["table-layout"]=false;whiteList["text-align"]=true;whiteList["text-align-last"]=true;whiteList["text-combine-upright"]=true;whiteList["text-decoration"]=true;whiteList["text-decoration-color"]=true;whiteList["text-decoration-line"]=true;whiteList["text-decoration-skip"]=true;whiteList["text-decoration-style"]=true;whiteList["text-emphasis"]=true;whiteList["text-emphasis-color"]=true;whiteList["text-emphasis-position"]=true;whiteList["text-emphasis-style"]=true;whiteList["text-height"]=true;whiteList["text-indent"]=true;whiteList["text-justify"]=true;whiteList["text-orientation"]=true;whiteList["text-overflow"]=true;whiteList["text-shadow"]=true;whiteList["text-space-collapse"]=true;whiteList["text-transform"]=true;whiteList["text-underline-position"]=true;whiteList["text-wrap"]=true;whiteList["top"]=false;whiteList["transform"]=false;whiteList["transform-origin"]=false;whiteList["transform-style"]=false;whiteList["transition"]=false;whiteList["transition-delay"]=false;whiteList["transition-duration"]=false;whiteList["transition-property"]=false;whiteList["transition-timing-function"]=false;whiteList["unicode-bidi"]=false;whiteList["vertical-align"]=false;whiteList["visibility"]=false;whiteList["voice-balance"]=false;whiteList["voice-duration"]=false;whiteList["voice-family"]=false;whiteList["voice-pitch"]=false;whiteList["voice-range"]=false;whiteList["voice-rate"]=false;whiteList["voice-stress"]=false;whiteList["voice-volume"]=false;whiteList["volume"]=false;whiteList["white-space"]=false;whiteList["widows"]=false;whiteList["width"]=true;whiteList["will-change"]=false;whiteList["word-break"]=true;whiteList["word-spacing"]=true;whiteList["word-wrap"]=true;whiteList["wrap-flow"]=false;whiteList["wrap-through"]=false;whiteList["writing-mode"]=false;whiteList["z-index"]=false;return whiteList}function onAttr(name,value,options){}function onIgnoreAttr(name,value,options){}exports.whiteList=getDefaultWhiteList();exports.getDefaultWhiteList=getDefaultWhiteList;exports.onAttr=onAttr;exports.onIgnoreAttr=onIgnoreAttr},{}],8:[function(require,module,exports){var DEFAULT=require("./default");var FilterCSS=require("./css");function filterCSS(html,options){var xss=new FilterCSS(options);return xss.process(html)}exports=module.exports=filterCSS;exports.FilterCSS=FilterCSS;for(var i in DEFAULT)exports[i]=DEFAULT[i];if(typeof window!=="undefined"){window.filterCSS=module.exports}},{"./css":6,"./default":7}],9:[function(require,module,exports){var _=require("./util");function parseStyle(css,onAttr){css=_.trimRight(css);if(css[css.length-1]!==";")css+=";";var cssLength=css.length;var isParenthesisOpen=false;var lastPos=0;var i=0;var retCSS="";function addNewAttr(){if(!isParenthesisOpen){var source=_.trim(css.slice(lastPos,i));var j=source.indexOf(":");if(j!==-1){var name=_.trim(source.slice(0,j));var value=_.trim(source.slice(j+1));if(name){var ret=onAttr(lastPos,retCSS.length,name,value,source);if(ret)retCSS+=ret+"; "}}}lastPos=i+1}for(;i<cssLength;i++){var c=css[i];if(c==="/"&&css[i+1]==="*"){var j=css.indexOf("*/",i+2);if(j===-1)break;i=j+1;lastPos=i+1;isParenthesisOpen=false}else if(c==="("){isParenthesisOpen=true}else if(c===")"){isParenthesisOpen=false}else if(c===";"){if(isParenthesisOpen){}else{addNewAttr()}}else if(c==="\n"){addNewAttr()}}return _.trim(retCSS)}module.exports=parseStyle},{"./util":10}],10:[function(require,module,exports){module.exports={indexOf:function(arr,item){var i,j;if(Array.prototype.indexOf){return arr.indexOf(item)}for(i=0,j=arr.length;i<j;i++){if(arr[i]===item){return i}}return-1},forEach:function(arr,fn,scope){var i,j;if(Array.prototype.forEach){return arr.forEach(fn,scope)}for(i=0,j=arr.length;i<j;i++){fn.call(scope,arr[i],i,arr)}},trim:function(str){if(String.prototype.trim){return str.trim()}return str.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(str){if(String.prototype.trimRight){return str.trimRight()}return str.replace(/(\s*$)/g,"")}}},{}]},{},[2]);
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.js b/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.js
deleted file mode 100644
index 15b2a94..0000000
--- a/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.js
+++ /dev/null
@@ -1,1256 +0,0 @@
-/*!
-* ZeroClipboard
-* The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface.
-* Copyright (c) 2014 Jon Rohan, James M. Greene
-* Licensed MIT
-* http://zeroclipboard.org/
-* v2.0.0-beta.5
-*/
-(function(window) {
-  "use strict";
-  var _currentElement;
-  var _flashState = {
-    bridge: null,
-    version: "0.0.0",
-    pluginType: "unknown",
-    disabled: null,
-    outdated: null,
-    unavailable: null,
-    deactivated: null,
-    overdue: null,
-    ready: null
-  };
-  var _clipData = {};
-  var _clipDataFormatMap = null;
-  var _clientIdCounter = 0;
-  var _clientMeta = {};
-  var _elementIdCounter = 0;
-  var _elementMeta = {};
-  var _swfPath = function() {
-    var i, jsDir, tmpJsPath, jsPath, swfPath = "ZeroClipboard.swf";
-    if (!(document.currentScript && (jsPath = document.currentScript.src))) {
-      var scripts = document.getElementsByTagName("script");
-      if ("readyState" in scripts[0]) {
-        for (i = scripts.length; i--; ) {
-          if (scripts[i].readyState === "interactive" && (jsPath = scripts[i].src)) {
-            break;
-          }
-        }
-      } else if (document.readyState === "loading") {
-        jsPath = scripts[scripts.length - 1].src;
-      } else {
-        for (i = scripts.length; i--; ) {
-          tmpJsPath = scripts[i].src;
-          if (!tmpJsPath) {
-            jsDir = null;
-            break;
-          }
-          tmpJsPath = tmpJsPath.split("#")[0].split("?")[0];
-          tmpJsPath = tmpJsPath.slice(0, tmpJsPath.lastIndexOf("/") + 1);
-          if (jsDir == null) {
-            jsDir = tmpJsPath;
-          } else if (jsDir !== tmpJsPath) {
-            jsDir = null;
-            break;
-          }
-        }
-        if (jsDir !== null) {
-          jsPath = jsDir;
-        }
-      }
-    }
-    if (jsPath) {
-      jsPath = jsPath.split("#")[0].split("?")[0];
-      swfPath = jsPath.slice(0, jsPath.lastIndexOf("/") + 1) + swfPath;
-    }
-    return swfPath;
-  }();
-  var _camelizeCssPropName = function() {
-    var matcherRegex = /\-([a-z])/g, replacerFn = function(match, group) {
-      return group.toUpperCase();
-    };
-    return function(prop) {
-      return prop.replace(matcherRegex, replacerFn);
-    };
-  }();
-  var _getStyle = function(el, prop) {
-    var value, camelProp, tagName;
-    if (window.getComputedStyle) {
-      value = window.getComputedStyle(el, null).getPropertyValue(prop);
-    } else {
-      camelProp = _camelizeCssPropName(prop);
-      if (el.currentStyle) {
-        value = el.currentStyle[camelProp];
-      } else {
-        value = el.style[camelProp];
-      }
-    }
-    if (prop === "cursor") {
-      if (!value || value === "auto") {
-        tagName = el.tagName.toLowerCase();
-        if (tagName === "a") {
-          return "pointer";
-        }
-      }
-    }
-    return value;
-  };
-  var _elementMouseOver = function(event) {
-    if (!event) {
-      event = window.event;
-    }
-    var target;
-    if (this !== window) {
-      target = this;
-    } else if (event.target) {
-      target = event.target;
-    } else if (event.srcElement) {
-      target = event.srcElement;
-    }
-    ZeroClipboard.activate(target);
-  };
-  var _addEventHandler = function(element, method, func) {
-    if (!element || element.nodeType !== 1) {
-      return;
-    }
-    if (element.addEventListener) {
-      element.addEventListener(method, func, false);
-    } else if (element.attachEvent) {
-      element.attachEvent("on" + method, func);
-    }
-  };
-  var _removeEventHandler = function(element, method, func) {
-    if (!element || element.nodeType !== 1) {
-      return;
-    }
-    if (element.removeEventListener) {
-      element.removeEventListener(method, func, false);
-    } else if (element.detachEvent) {
-      element.detachEvent("on" + method, func);
-    }
-  };
-  var _addClass = function(element, value) {
-    if (!element || element.nodeType !== 1) {
-      return element;
-    }
-    if (element.classList) {
-      if (!element.classList.contains(value)) {
-        element.classList.add(value);
-      }
-      return element;
-    }
-    if (value && typeof value === "string") {
-      var classNames = (value || "").split(/\s+/);
-      if (element.nodeType === 1) {
-        if (!element.className) {
-          element.className = value;
-        } else {
-          var className = " " + element.className + " ", setClass = element.className;
-          for (var c = 0, cl = classNames.length; c < cl; c++) {
-            if (className.indexOf(" " + classNames[c] + " ") < 0) {
-              setClass += " " + classNames[c];
-            }
-          }
-          element.className = setClass.replace(/^\s+|\s+$/g, "");
-        }
-      }
-    }
-    return element;
-  };
-  var _removeClass = function(element, value) {
-    if (!element || element.nodeType !== 1) {
-      return element;
-    }
-    if (element.classList) {
-      if (element.classList.contains(value)) {
-        element.classList.remove(value);
-      }
-      return element;
-    }
-    if (value && typeof value === "string" || value === undefined) {
-      var classNames = (value || "").split(/\s+/);
-      if (element.nodeType === 1 && element.className) {
-        if (value) {
-          var className = (" " + element.className + " ").replace(/[\n\t]/g, " ");
-          for (var c = 0, cl = classNames.length; c < cl; c++) {
-            className = className.replace(" " + classNames[c] + " ", " ");
-          }
-          element.className = className.replace(/^\s+|\s+$/g, "");
-        } else {
-          element.className = "";
-        }
-      }
-    }
-    return element;
-  };
-  var _getZoomFactor = function() {
-    var rect, physicalWidth, logicalWidth, zoomFactor = 1;
-    if (typeof document.body.getBoundingClientRect === "function") {
-      rect = document.body.getBoundingClientRect();
-      physicalWidth = rect.right - rect.left;
-      logicalWidth = document.body.offsetWidth;
-      zoomFactor = Math.round(physicalWidth / logicalWidth * 100) / 100;
-    }
-    return zoomFactor;
-  };
-  var _getDOMObjectPosition = function(obj, defaultZIndex) {
-    var info = {
-      left: 0,
-      top: 0,
-      width: 0,
-      height: 0,
-      zIndex: _getSafeZIndex(defaultZIndex) - 1
-    };
-    if (obj.getBoundingClientRect) {
-      var rect = obj.getBoundingClientRect();
-      var pageXOffset, pageYOffset, zoomFactor;
-      if ("pageXOffset" in window && "pageYOffset" in window) {
-        pageXOffset = window.pageXOffset;
-        pageYOffset = window.pageYOffset;
-      } else {
-        zoomFactor = _getZoomFactor();
-        pageXOffset = Math.round(document.documentElement.scrollLeft / zoomFactor);
-        pageYOffset = Math.round(document.documentElement.scrollTop / zoomFactor);
-      }
-      var leftBorderWidth = document.documentElement.clientLeft || 0;
-      var topBorderWidth = document.documentElement.clientTop || 0;
-      info.left = rect.left + pageXOffset - leftBorderWidth;
-      info.top = rect.top + pageYOffset - topBorderWidth;
-      info.width = "width" in rect ? rect.width : rect.right - rect.left;
-      info.height = "height" in rect ? rect.height : rect.bottom - rect.top;
-    }
-    return info;
-  };
-  var _cacheBust = function(path, options) {
-    var cacheBust = options == null || options && options.cacheBust === true;
-    if (cacheBust) {
-      return (path.indexOf("?") === -1 ? "?" : "&") + "noCache=" + new Date().getTime();
-    } else {
-      return "";
-    }
-  };
-  var _vars = function(options) {
-    var i, len, domain, domains, str = "", trustedOriginsExpanded = [];
-    if (options.trustedDomains) {
-      if (typeof options.trustedDomains === "string") {
-        domains = [ options.trustedDomains ];
-      } else if (typeof options.trustedDomains === "object" && "length" in options.trustedDomains) {
-        domains = options.trustedDomains;
-      }
-    }
-    if (domains && domains.length) {
-      for (i = 0, len = domains.length; i < len; i++) {
-        if (domains.hasOwnProperty(i) && domains[i] && typeof domains[i] === "string") {
-          domain = _extractDomain(domains[i]);
-          if (!domain) {
-            continue;
-          }
-          if (domain === "*") {
-            trustedOriginsExpanded = [ domain ];
-            break;
-          }
-          trustedOriginsExpanded.push.apply(trustedOriginsExpanded, [ domain, "//" + domain, window.location.protocol + "//" + domain ]);
-        }
-      }
-    }
-    if (trustedOriginsExpanded.length) {
-      str += "trustedOrigins=" + encodeURIComponent(trustedOriginsExpanded.join(","));
-    }
-    if (options.forceEnhancedClipboard === true) {
-      str += (str ? "&" : "") + "forceEnhancedClipboard=true";
-    }
-    return str;
-  };
-  var _inArray = function(elem, array, fromIndex) {
-    if (typeof array.indexOf === "function") {
-      return array.indexOf(elem, fromIndex);
-    }
-    var i, len = array.length;
-    if (typeof fromIndex === "undefined") {
-      fromIndex = 0;
-    } else if (fromIndex < 0) {
-      fromIndex = len + fromIndex;
-    }
-    for (i = fromIndex; i < len; i++) {
-      if (array.hasOwnProperty(i) && array[i] === elem) {
-        return i;
-      }
-    }
-    return -1;
-  };
-  var _prepClip = function(elements) {
-    if (typeof elements === "string") {
-      throw new TypeError("ZeroClipboard doesn't accept query strings.");
-    }
-    return typeof elements.length !== "number" ? [ elements ] : elements;
-  };
-  var _dispatchCallback = function(func, context, args, async) {
-    if (async) {
-      window.setTimeout(function() {
-        func.apply(context, args);
-      }, 0);
-    } else {
-      func.apply(context, args);
-    }
-  };
-  var _getSafeZIndex = function(val) {
-    var zIndex, tmp;
-    if (val) {
-      if (typeof val === "number" && val > 0) {
-        zIndex = val;
-      } else if (typeof val === "string" && (tmp = parseInt(val, 10)) && !isNaN(tmp) && tmp > 0) {
-        zIndex = tmp;
-      }
-    }
-    if (!zIndex) {
-      if (typeof _globalConfig.zIndex === "number" && _globalConfig.zIndex > 0) {
-        zIndex = _globalConfig.zIndex;
-      } else if (typeof _globalConfig.zIndex === "string" && (tmp = parseInt(_globalConfig.zIndex, 10)) && !isNaN(tmp) && tmp > 0) {
-        zIndex = tmp;
-      }
-    }
-    return zIndex || 0;
-  };
-  var _extend = function() {
-    var i, len, arg, prop, src, copy, target = arguments[0] || {};
-    for (i = 1, len = arguments.length; i < len; i++) {
-      if ((arg = arguments[i]) != null) {
-        for (prop in arg) {
-          if (arg.hasOwnProperty(prop)) {
-            src = target[prop];
-            copy = arg[prop];
-            if (target === copy) {
-              continue;
-            }
-            if (copy !== undefined) {
-              target[prop] = copy;
-            }
-          }
-        }
-      }
-    }
-    return target;
-  };
-  var _extractDomain = function(originOrUrl) {
-    if (originOrUrl == null || originOrUrl === "") {
-      return null;
-    }
-    originOrUrl = originOrUrl.replace(/^\s+|\s+$/g, "");
-    if (originOrUrl === "") {
-      return null;
-    }
-    var protocolIndex = originOrUrl.indexOf("//");
-    originOrUrl = protocolIndex === -1 ? originOrUrl : originOrUrl.slice(protocolIndex + 2);
-    var pathIndex = originOrUrl.indexOf("/");
-    originOrUrl = pathIndex === -1 ? originOrUrl : protocolIndex === -1 || pathIndex === 0 ? null : originOrUrl.slice(0, pathIndex);
-    if (originOrUrl && originOrUrl.slice(-4).toLowerCase() === ".swf") {
-      return null;
-    }
-    return originOrUrl || null;
-  };
-  var _determineScriptAccess = function() {
-    var _extractAllDomains = function(origins, resultsArray) {
-      var i, len, tmp;
-      if (origins == null || resultsArray[0] === "*") {
-        return;
-      }
-      if (typeof origins === "string") {
-        origins = [ origins ];
-      }
-      if (!(typeof origins === "object" && typeof origins.length === "number")) {
-        return;
-      }
-      for (i = 0, len = origins.length; i < len; i++) {
-        if (origins.hasOwnProperty(i) && (tmp = _extractDomain(origins[i]))) {
-          if (tmp === "*") {
-            resultsArray.length = 0;
-            resultsArray.push("*");
-            break;
-          }
-          if (_inArray(tmp, resultsArray) === -1) {
-            resultsArray.push(tmp);
-          }
-        }
-      }
-    };
-    return function(currentDomain, configOptions) {
-      var swfDomain = _extractDomain(configOptions.swfPath);
-      if (swfDomain === null) {
-        swfDomain = currentDomain;
-      }
-      var trustedDomains = [];
-      _extractAllDomains(configOptions.trustedOrigins, trustedDomains);
-      _extractAllDomains(configOptions.trustedDomains, trustedDomains);
-      var len = trustedDomains.length;
-      if (len > 0) {
-        if (len === 1 && trustedDomains[0] === "*") {
-          return "always";
-        }
-        if (_inArray(currentDomain, trustedDomains) !== -1) {
-          if (len === 1 && currentDomain === swfDomain) {
-            return "sameDomain";
-          }
-          return "always";
-        }
-      }
-      return "never";
-    };
-  }();
-  var _objectKeys = function(obj) {
-    if (obj == null) {
-      return [];
-    }
-    if (Object.keys) {
-      return Object.keys(obj);
-    }
-    var keys = [];
-    for (var prop in obj) {
-      if (obj.hasOwnProperty(prop)) {
-        keys.push(prop);
-      }
-    }
-    return keys;
-  };
-  var _deleteOwnProperties = function(obj) {
-    if (obj) {
-      for (var prop in obj) {
-        if (obj.hasOwnProperty(prop)) {
-          delete obj[prop];
-        }
-      }
-    }
-    return obj;
-  };
-  var _safeActiveElement = function() {
-    try {
-      return document.activeElement;
-    } catch (err) {}
-    return null;
-  };
-  var _pick = function(obj, keys) {
-    var newObj = {};
-    for (var i = 0, len = keys.length; i < len; i++) {
-      if (keys[i] in obj) {
-        newObj[keys[i]] = obj[keys[i]];
-      }
-    }
-    return newObj;
-  };
-  var _omit = function(obj, keys) {
-    var newObj = {};
-    for (var prop in obj) {
-      if (_inArray(prop, keys) === -1) {
-        newObj[prop] = obj[prop];
-      }
-    }
-    return newObj;
-  };
-  var _mapClipDataToFlash = function(clipData) {
-    var newClipData = {}, formatMap = {};
-    if (!(typeof clipData === "object" && clipData)) {
-      return;
-    }
-    for (var dataFormat in clipData) {
-      if (dataFormat && clipData.hasOwnProperty(dataFormat) && typeof clipData[dataFormat] === "string" && clipData[dataFormat]) {
-        switch (dataFormat.toLowerCase()) {
-         case "text/plain":
-         case "text":
-         case "air:text":
-         case "flash:text":
-          newClipData.text = clipData[dataFormat];
-          formatMap.text = dataFormat;
-          break;
-
-         case "text/html":
-         case "html":
-         case "air:html":
-         case "flash:html":
-          newClipData.html = clipData[dataFormat];
-          formatMap.html = dataFormat;
-          break;
-
-         case "application/rtf":
-         case "text/rtf":
-         case "rtf":
-         case "richtext":
-         case "air:rtf":
-         case "flash:rtf":
-          newClipData.rtf = clipData[dataFormat];
-          formatMap.rtf = dataFormat;
-          break;
-
-         default:
-          break;
-        }
-      }
-    }
-    return {
-      data: newClipData,
-      formatMap: formatMap
-    };
-  };
-  var _mapClipResultsFromFlash = function(clipResults, formatMap) {
-    if (!(typeof clipResults === "object" && clipResults && typeof formatMap === "object" && formatMap)) {
-      return clipResults;
-    }
-    var newResults = {};
-    for (var prop in clipResults) {
-      if (clipResults.hasOwnProperty(prop)) {
-        if (prop !== "success" && prop !== "data") {
-          newResults[prop] = clipResults[prop];
-          continue;
-        }
-        newResults[prop] = {};
-        var tmpHash = clipResults[prop];
-        for (var dataFormat in tmpHash) {
-          if (dataFormat && tmpHash.hasOwnProperty(dataFormat) && formatMap.hasOwnProperty(dataFormat)) {
-            newResults[prop][formatMap[dataFormat]] = tmpHash[dataFormat];
-          }
-        }
-      }
-    }
-    return newResults;
-  };
-  var _args = function(arraySlice) {
-    return function(args) {
-      return arraySlice.call(args, 0);
-    };
-  }(window.Array.prototype.slice);
-  var _detectFlashSupport = function() {
-    var plugin, ax, mimeType, hasFlash = false, isActiveX = false, isPPAPI = false, flashVersion = "";
-    function parseFlashVersion(desc) {
-      var matches = desc.match(/[\d]+/g);
-      matches.length = 3;
-      return matches.join(".");
-    }
-    function isPepperFlash(flashPlayerFileName) {
-      return !!flashPlayerFileName && (flashPlayerFileName = flashPlayerFileName.toLowerCase()) && (/^(pepflashplayer\.dll|libpepflashplayer\.so|pepperflashplayer\.plugin)$/.test(flashPlayerFileName) || flashPlayerFileName.slice(-13) === "chrome.plugin");
-    }
-    function inspectPlugin(plugin) {
-      if (plugin) {
-        hasFlash = true;
-        if (plugin.version) {
-          flashVersion = parseFlashVersion(plugin.version);
-        }
-        if (!flashVersion && plugin.description) {
-          flashVersion = parseFlashVersion(plugin.description);
-        }
-        if (plugin.filename) {
-          isPPAPI = isPepperFlash(plugin.filename);
-        }
-      }
-    }
-    if (navigator.plugins && navigator.plugins.length) {
-      plugin = navigator.plugins["Shockwave Flash"];
-      inspectPlugin(plugin);
-      if (navigator.plugins["Shockwave Flash 2.0"]) {
-        hasFlash = true;
-        flashVersion = "2.0.0.11";
-      }
-    } else if (navigator.mimeTypes && navigator.mimeTypes.length) {
-      mimeType = navigator.mimeTypes["application/x-shockwave-flash"];
-      plugin = mimeType && mimeType.enabledPlugin;
-      inspectPlugin(plugin);
-    } else if (typeof ActiveXObject !== "undefined") {
-      isActiveX = true;
-      try {
-        ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
-        hasFlash = true;
-        flashVersion = parseFlashVersion(ax.GetVariable("$version"));
-      } catch (e1) {
-        try {
-          ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
-          hasFlash = true;
-          flashVersion = "6.0.21";
-        } catch (e2) {
-          try {
-            ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
-            hasFlash = true;
-            flashVersion = parseFlashVersion(ax.GetVariable("$version"));
-          } catch (e3) {
-            isActiveX = false;
-          }
-        }
-      }
-    }
-    _flashState.disabled = hasFlash !== true;
-    _flashState.outdated = flashVersion && parseFloat(flashVersion) < 11;
-    _flashState.version = flashVersion || "0.0.0";
-    _flashState.pluginType = isPPAPI ? "pepper" : isActiveX ? "activex" : hasFlash ? "netscape" : "unknown";
-  };
-  _detectFlashSupport();
-  var ZeroClipboard = function(elements) {
-    if (!(this instanceof ZeroClipboard)) {
-      return new ZeroClipboard(elements);
-    }
-    this.id = "" + _clientIdCounter++;
-    _clientMeta[this.id] = {
-      instance: this,
-      elements: [],
-      handlers: {}
-    };
-    if (elements) {
-      this.clip(elements);
-    }
-    if (typeof _flashState.ready !== "boolean") {
-      _flashState.ready = false;
-    }
-    if (!ZeroClipboard.isFlashUnusable() && _flashState.bridge === null) {
-      var _client = this;
-      var maxWait = _globalConfig.flashLoadTimeout;
-      if (typeof maxWait === "number" && maxWait >= 0) {
-        setTimeout(function() {
-          if (typeof _flashState.deactivated !== "boolean") {
-            _flashState.deactivated = true;
-          }
-          if (_flashState.deactivated === true) {
-            ZeroClipboard.emit({
-              type: "error",
-              name: "flash-deactivated",
-              client: _client
-            });
-          }
-        }, maxWait);
-      }
-      _flashState.overdue = false;
-      _bridge();
-    }
-  };
-  ZeroClipboard.prototype.setText = function(text) {
-    ZeroClipboard.setData("text/plain", text);
-    return this;
-  };
-  ZeroClipboard.prototype.setHtml = function(html) {
-    ZeroClipboard.setData("text/html", html);
-    return this;
-  };
-  ZeroClipboard.prototype.setRichText = function(richText) {
-    ZeroClipboard.setData("application/rtf", richText);
-    return this;
-  };
-  ZeroClipboard.prototype.setData = function() {
-    ZeroClipboard.setData.apply(ZeroClipboard, _args(arguments));
-    return this;
-  };
-  ZeroClipboard.prototype.clearData = function() {
-    ZeroClipboard.clearData.apply(ZeroClipboard, _args(arguments));
-    return this;
-  };
-  ZeroClipboard.prototype.setSize = function(width, height) {
-    _setSize(width, height);
-    return this;
-  };
-  var _setHandCursor = function(enabled) {
-    if (_flashState.ready === true && _flashState.bridge && typeof _flashState.bridge.setHandCursor === "function") {
-      _flashState.bridge.setHandCursor(enabled);
-    } else {
-      _flashState.ready = false;
-    }
-  };
-  ZeroClipboard.prototype.destroy = function() {
-    this.unclip();
-    this.off();
-    delete _clientMeta[this.id];
-  };
-  var _getAllClients = function() {
-    var i, len, client, clients = [], clientIds = _objectKeys(_clientMeta);
-    for (i = 0, len = clientIds.length; i < len; i++) {
-      client = _clientMeta[clientIds[i]].instance;
-      if (client && client instanceof ZeroClipboard) {
-        clients.push(client);
-      }
-    }
-    return clients;
-  };
-  ZeroClipboard.version = "2.0.0-beta.5";
-  var _globalConfig = {
-    swfPath: _swfPath,
-    trustedDomains: window.location.host ? [ window.location.host ] : [],
-    cacheBust: true,
-    forceHandCursor: false,
-    forceEnhancedClipboard: false,
-    zIndex: 999999999,
-    debug: false,
-    title: null,
-    autoActivate: true,
-    flashLoadTimeout: 3e4
-  };
-  ZeroClipboard.isFlashUnusable = function() {
-    return !!(_flashState.disabled || _flashState.outdated || _flashState.unavailable || _flashState.deactivated);
-  };
-  ZeroClipboard.config = function(options) {
-    if (typeof options === "object" && options !== null) {
-      _extend(_globalConfig, options);
-    }
-    if (typeof options === "string" && options) {
-      if (_globalConfig.hasOwnProperty(options)) {
-        return _globalConfig[options];
-      }
-      return;
-    }
-    var copy = {};
-    for (var prop in _globalConfig) {
-      if (_globalConfig.hasOwnProperty(prop)) {
-        if (typeof _globalConfig[prop] === "object" && _globalConfig[prop] !== null) {
-          if ("length" in _globalConfig[prop]) {
-            copy[prop] = _globalConfig[prop].slice(0);
-          } else {
-            copy[prop] = _extend({}, _globalConfig[prop]);
-          }
-        } else {
-          copy[prop] = _globalConfig[prop];
-        }
-      }
-    }
-    return copy;
-  };
-  ZeroClipboard.destroy = function() {
-    ZeroClipboard.deactivate();
-    for (var clientId in _clientMeta) {
-      if (_clientMeta.hasOwnProperty(clientId) && _clientMeta[clientId]) {
-        var client = _clientMeta[clientId].instance;
-        if (client && typeof client.destroy === "function") {
-          client.destroy();
-        }
-      }
-    }
-    var flashBridge = _flashState.bridge;
-    if (flashBridge) {
-      var htmlBridge = _getHtmlBridge(flashBridge);
-      if (htmlBridge) {
-        if (_flashState.pluginType === "activex" && "readyState" in flashBridge) {
-          flashBridge.style.display = "none";
-          (function removeSwfFromIE() {
-            if (flashBridge.readyState === 4) {
-              for (var prop in flashBridge) {
-                if (typeof flashBridge[prop] === "function") {
-                  flashBridge[prop] = null;
-                }
-              }
-              flashBridge.parentNode.removeChild(flashBridge);
-              if (htmlBridge.parentNode) {
-                htmlBridge.parentNode.removeChild(htmlBridge);
-              }
-            } else {
-              setTimeout(removeSwfFromIE, 10);
-            }
-          })();
-        } else {
-          flashBridge.parentNode.removeChild(flashBridge);
-          if (htmlBridge.parentNode) {
-            htmlBridge.parentNode.removeChild(htmlBridge);
-          }
-        }
-      }
-      _flashState.ready = null;
-      _flashState.bridge = null;
-      _flashState.deactivated = null;
-    }
-    ZeroClipboard.clearData();
-  };
-  ZeroClipboard.activate = function(element) {
-    if (_currentElement) {
-      _removeClass(_currentElement, _globalConfig.hoverClass);
-      _removeClass(_currentElement, _globalConfig.activeClass);
-    }
-    _currentElement = element;
-    _addClass(element, _globalConfig.hoverClass);
-    _reposition();
-    var newTitle = _globalConfig.title || element.getAttribute("title");
-    if (newTitle) {
-      var htmlBridge = _getHtmlBridge(_flashState.bridge);
-      if (htmlBridge) {
-        htmlBridge.setAttribute("title", newTitle);
-      }
-    }
-    var useHandCursor = _globalConfig.forceHandCursor === true || _getStyle(element, "cursor") === "pointer";
-    _setHandCursor(useHandCursor);
-  };
-  ZeroClipboard.deactivate = function() {
-    var htmlBridge = _getHtmlBridge(_flashState.bridge);
-    if (htmlBridge) {
-      htmlBridge.removeAttribute("title");
-      htmlBridge.style.left = "0px";
-      htmlBridge.style.top = "-9999px";
-      _setSize(1, 1);
-    }
-    if (_currentElement) {
-      _removeClass(_currentElement, _globalConfig.hoverClass);
-      _removeClass(_currentElement, _globalConfig.activeClass);
-      _currentElement = null;
-    }
-  };
-  ZeroClipboard.state = function() {
-    return {
-      browser: _pick(window.navigator, [ "userAgent", "platform", "appName" ]),
-      flash: _omit(_flashState, [ "bridge" ]),
-      zeroclipboard: {
-        version: ZeroClipboard.version,
-        config: ZeroClipboard.config()
-      }
-    };
-  };
-  ZeroClipboard.setData = function(format, data) {
-    var dataObj;
-    if (typeof format === "object" && format && typeof data === "undefined") {
-      dataObj = format;
-      ZeroClipboard.clearData();
-    } else if (typeof format === "string" && format) {
-      dataObj = {};
-      dataObj[format] = data;
-    } else {
-      return;
-    }
-    for (var dataFormat in dataObj) {
-      if (dataFormat && dataObj.hasOwnProperty(dataFormat) && typeof dataObj[dataFormat] === "string" && dataObj[dataFormat]) {
-        _clipData[dataFormat] = dataObj[dataFormat];
-      }
-    }
-  };
-  ZeroClipboard.clearData = function(format) {
-    if (typeof format === "undefined") {
-      _deleteOwnProperties(_clipData);
-      _clipDataFormatMap = null;
-    } else if (typeof format === "string" && _clipData.hasOwnProperty(format)) {
-      delete _clipData[format];
-    }
-  };
-  var _bridge = function() {
-    var flashBridge, len;
-    var container = document.getElementById("global-zeroclipboard-html-bridge");
-    if (!container) {
-      var allowScriptAccess = _determineScriptAccess(window.location.host, _globalConfig);
-      var allowNetworking = allowScriptAccess === "never" ? "none" : "all";
-      var flashvars = _vars(_globalConfig);
-      var swfUrl = _globalConfig.swfPath + _cacheBust(_globalConfig.swfPath, _globalConfig);
-      container = _createHtmlBridge();
-      var divToBeReplaced = document.createElement("div");
-      container.appendChild(divToBeReplaced);
-      document.body.appendChild(container);
-      var tmpDiv = document.createElement("div");
-      var oldIE = _flashState.pluginType === "activex";
-      tmpDiv.innerHTML = '<object id="global-zeroclipboard-flash-bridge" name="global-zeroclipboard-flash-bridge" ' + 'width="100%" height="100%" ' + (oldIE ? 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"' : 'type="application/x-shockwave-flash" data="' + swfUrl + '"') + ">" + (oldIE ? '<param name="movie" value="' + swfUrl + '"/>' : "") + '<param name="allowScriptAccess" value="' + allowScriptAccess + '"/>' + '<param name="allowNetworking" value="' + allowNetworking + '"/>' + '<param name="menu" value="false"/>' + '<param name="wmode" value="transparent"/>' + '<param name="flashvars" value="' + flashvars + '"/>' + "</object>";
-      flashBridge = tmpDiv.firstChild;
-      tmpDiv = null;
-      flashBridge.ZeroClipboard = ZeroClipboard;
-      container.replaceChild(flashBridge, divToBeReplaced);
-    }
-    if (!flashBridge) {
-      flashBridge = document["global-zeroclipboard-flash-bridge"];
-      if (flashBridge && (len = flashBridge.length)) {
-        flashBridge = flashBridge[len - 1];
-      }
-      if (!flashBridge) {
-        flashBridge = container.firstChild;
-      }
-    }
-    _flashState.bridge = flashBridge || null;
-  };
-  var _createHtmlBridge = function() {
-    var container = document.createElement("div");
-    container.id = "global-zeroclipboard-html-bridge";
-    container.className = "global-zeroclipboard-container";
-    container.style.position = "absolute";
-    container.style.left = "0px";
-    container.style.top = "-9999px";
-    container.style.width = "1px";
-    container.style.height = "1px";
-    container.style.zIndex = "" + _getSafeZIndex(_globalConfig.zIndex);
-    return container;
-  };
-  var _getHtmlBridge = function(flashBridge) {
-    var htmlBridge = flashBridge && flashBridge.parentNode;
-    while (htmlBridge && htmlBridge.nodeName === "OBJECT" && htmlBridge.parentNode) {
-      htmlBridge = htmlBridge.parentNode;
-    }
-    return htmlBridge || null;
-  };
-  var _reposition = function() {
-    if (_currentElement) {
-      var pos = _getDOMObjectPosition(_currentElement, _globalConfig.zIndex);
-      var htmlBridge = _getHtmlBridge(_flashState.bridge);
-      if (htmlBridge) {
-        htmlBridge.style.top = pos.top + "px";
-        htmlBridge.style.left = pos.left + "px";
-        htmlBridge.style.width = pos.width + "px";
-        htmlBridge.style.height = pos.height + "px";
-        htmlBridge.style.zIndex = pos.zIndex + 1;
-      }
-      _setSize(pos.width, pos.height);
-    }
-  };
-  var _setSize = function(width, height) {
-    var htmlBridge = _getHtmlBridge(_flashState.bridge);
-    if (htmlBridge) {
-      htmlBridge.style.width = width + "px";
-      htmlBridge.style.height = height + "px";
-    }
-  };
-  ZeroClipboard.emit = function(event) {
-    var eventType, eventObj, performCallbackAsync, clients, i, len, eventCopy, returnVal, tmp;
-    if (typeof event === "string" && event) {
-      eventType = event;
-    }
-    if (typeof event === "object" && event && typeof event.type === "string" && event.type) {
-      eventType = event.type;
-      eventObj = event;
-    }
-    if (!eventType) {
-      return;
-    }
-    event = _createEvent(eventType, eventObj);
-    _preprocessEvent(event);
-    if (event.type === "ready" && _flashState.overdue === true) {
-      return ZeroClipboard.emit({
-        type: "error",
-        name: "flash-overdue"
-      });
-    }
-    performCallbackAsync = !/^(before)?copy$/.test(event.type);
-    if (event.client) {
-      _dispatchClientCallbacks.call(event.client, event, performCallbackAsync);
-    } else {
-      clients = event.target && event.target !== window && _globalConfig.autoActivate === true ? _getAllClientsClippedToElement(event.target) : _getAllClients();
-      for (i = 0, len = clients.length; i < len; i++) {
-        eventCopy = _extend({}, event, {
-          client: clients[i]
-        });
-        _dispatchClientCallbacks.call(clients[i], eventCopy, performCallbackAsync);
-      }
-    }
-    if (event.type === "copy") {
-      tmp = _mapClipDataToFlash(_clipData);
-      returnVal = tmp.data;
-      _clipDataFormatMap = tmp.formatMap;
-    }
-    return returnVal;
-  };
-  var _dispatchClientCallbacks = function(event, async) {
-    var handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers[event.type];
-    if (handlers && handlers.length) {
-      var i, len, func, context, originalContext = this;
-      for (i = 0, len = handlers.length; i < len; i++) {
-        func = handlers[i];
-        context = originalContext;
-        if (typeof func === "string" && typeof window[func] === "function") {
-          func = window[func];
-        }
-        if (typeof func === "object" && func && typeof func.handleEvent === "function") {
-          context = func;
-          func = func.handleEvent;
-        }
-        if (typeof func === "function") {
-          _dispatchCallback(func, context, [ event ], async);
-        }
-      }
-    }
-    return this;
-  };
-  var _eventMessages = {
-    ready: "Flash communication is established",
-    error: {
-      "flash-disabled": "Flash is disabled or not installed",
-      "flash-outdated": "Flash is too outdated to support ZeroClipboard",
-      "flash-unavailable": "Flash is unable to communicate bidirectionally with JavaScript",
-      "flash-deactivated": "Flash is too outdated for your browser and/or is configured as click-to-activate",
-      "flash-overdue": "Flash communication was established but NOT within the acceptable time limit"
-    }
-  };
-  var _createEvent = function(eventType, event) {
-    if (!(eventType || event && event.type)) {
-      return;
-    }
-    event = event || {};
-    eventType = (eventType || event.type).toLowerCase();
-    _extend(event, {
-      type: eventType,
-      target: event.target || _currentElement || null,
-      relatedTarget: event.relatedTarget || null,
-      currentTarget: _flashState && _flashState.bridge || null
-    });
-    var msg = _eventMessages[event.type];
-    if (event.type === "error" && event.name && msg) {
-      msg = msg[event.name];
-    }
-    if (msg) {
-      event.message = msg;
-    }
-    if (event.type === "ready") {
-      _extend(event, {
-        target: null,
-        version: _flashState.version
-      });
-    }
-    if (event.type === "error") {
-      event.target = null;
-      if (/^flash-(outdated|unavailable|deactivated|overdue)$/.test(event.name)) {
-        _extend(event, {
-          version: _flashState.version,
-          minimumVersion: "11.0.0"
-        });
-      }
-    }
-    if (event.type === "copy") {
-      event.clipboardData = {
-        setData: ZeroClipboard.setData,
-        clearData: ZeroClipboard.clearData
-      };
-    }
-    if (event.type === "aftercopy") {
-      event = _mapClipResultsFromFlash(event, _clipDataFormatMap);
-    }
-    if (event.target && !event.relatedTarget) {
-      event.relatedTarget = _getRelatedTarget(event.target);
-    }
-    return event;
-  };
-  var _getRelatedTarget = function(targetEl) {
-    var relatedTargetId = targetEl && targetEl.getAttribute && targetEl.getAttribute("data-clipboard-target");
-    return relatedTargetId ? document.getElementById(relatedTargetId) : null;
-  };
-  var _preprocessEvent = function(event) {
-    var element = event.target || _currentElement;
-    switch (event.type) {
-     case "error":
-      if (_inArray(event.name, [ "flash-disabled", "flash-outdated", "flash-deactivated", "flash-overdue" ])) {
-        _extend(_flashState, {
-          disabled: event.name === "flash-disabled",
-          outdated: event.name === "flash-outdated",
-          unavailable: event.name === "flash-unavailable",
-          deactivated: event.name === "flash-deactivated",
-          overdue: event.name === "flash-overdue",
-          ready: false
-        });
-      }
-      break;
-
-     case "ready":
-      var wasDeactivated = _flashState.deactivated === true;
-      _extend(_flashState, {
-        disabled: false,
-        outdated: false,
-        unavailable: false,
-        deactivated: false,
-        overdue: wasDeactivated,
-        ready: !wasDeactivated
-      });
-      break;
-
-     case "copy":
-      var textContent, htmlContent, targetEl = event.relatedTarget;
-      if (!(_clipData["text/html"] || _clipData["text/plain"]) && targetEl && (htmlContent = targetEl.value || targetEl.outerHTML || targetEl.innerHTML) && (textContent = targetEl.value || targetEl.textContent || targetEl.innerText)) {
-        event.clipboardData.clearData();
-        event.clipboardData.setData("text/plain", textContent);
-        if (htmlContent !== textContent) {
-          event.clipboardData.setData("text/html", htmlContent);
-        }
-      } else if (!_clipData["text/plain"] && event.target && (textContent = event.target.getAttribute("data-clipboard-text"))) {
-        event.clipboardData.clearData();
-        event.clipboardData.setData("text/plain", textContent);
-      }
-      break;
-
-     case "aftercopy":
-      ZeroClipboard.clearData();
-      if (element && element !== _safeActiveElement() && element.focus) {
-        element.focus();
-      }
-      break;
-
-     case "mouseover":
-      _addClass(element, _globalConfig.hoverClass);
-      break;
-
-     case "mouseout":
-      if (_globalConfig.autoActivate === true) {
-        ZeroClipboard.deactivate();
-      }
-      break;
-
-     case "mousedown":
-      _addClass(element, _globalConfig.activeClass);
-      break;
-
-     case "mouseup":
-      _removeClass(element, _globalConfig.activeClass);
-      break;
-    }
-  };
-  ZeroClipboard.prototype.on = function(eventName, func) {
-    var i, len, events, added = {}, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers;
-    if (typeof eventName === "string" && eventName) {
-      events = eventName.toLowerCase().split(/\s+/);
-    } else if (typeof eventName === "object" && eventName && typeof func === "undefined") {
-      for (i in eventName) {
-        if (eventName.hasOwnProperty(i) && typeof i === "string" && i && typeof eventName[i] === "function") {
-          this.on(i, eventName[i]);
-        }
-      }
-    }
-    if (events && events.length) {
-      for (i = 0, len = events.length; i < len; i++) {
-        eventName = events[i].replace(/^on/, "");
-        added[eventName] = true;
-        if (!handlers[eventName]) {
-          handlers[eventName] = [];
-        }
-        handlers[eventName].push(func);
-      }
-      if (added.ready && _flashState.ready) {
-        ZeroClipboard.emit({
-          type: "ready",
-          client: this
-        });
-      }
-      if (added.error) {
-        var errorTypes = [ "disabled", "outdated", "unavailable", "deactivated", "overdue" ];
-        for (i = 0, len = errorTypes.length; i < len; i++) {
-          if (_flashState[errorTypes[i]]) {
-            ZeroClipboard.emit({
-              type: "error",
-              name: "flash-" + errorTypes[i],
-              client: this
-            });
-            break;
-          }
-        }
-      }
-    }
-    return this;
-  };
-  ZeroClipboard.prototype.off = function(eventName, func) {
-    var i, len, foundIndex, events, perEventHandlers, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers;
-    if (arguments.length === 0) {
-      events = _objectKeys(handlers);
-    } else if (typeof eventName === "string" && eventName) {
-      events = eventName.split(/\s+/);
-    } else if (typeof eventName === "object" && eventName && typeof func === "undefined") {
-      for (i in eventName) {
-        if (eventName.hasOwnProperty(i) && typeof i === "string" && i && typeof eventName[i] === "function") {
-          this.off(i, eventName[i]);
-        }
-      }
-    }
-    if (events && events.length) {
-      for (i = 0, len = events.length; i < len; i++) {
-        eventName = events[i].toLowerCase().replace(/^on/, "");
-        perEventHandlers = handlers[eventName];
-        if (perEventHandlers && perEventHandlers.length) {
-          if (func) {
-            foundIndex = _inArray(func, perEventHandlers);
-            while (foundIndex !== -1) {
-              perEventHandlers.splice(foundIndex, 1);
-              foundIndex = _inArray(func, perEventHandlers, foundIndex);
-            }
-          } else {
-            handlers[eventName].length = 0;
-          }
-        }
-      }
-    }
-    return this;
-  };
-  ZeroClipboard.prototype.handlers = function(eventName) {
-    var prop, copy = null, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers;
-    if (handlers) {
-      if (typeof eventName === "string" && eventName) {
-        return handlers[eventName] ? handlers[eventName].slice(0) : null;
-      }
-      copy = {};
-      for (prop in handlers) {
-        if (handlers.hasOwnProperty(prop) && handlers[prop]) {
-          copy[prop] = handlers[prop].slice(0);
-        }
-      }
-    }
-    return copy;
-  };
-  ZeroClipboard.prototype.clip = function(elements) {
-    elements = _prepClip(elements);
-    for (var i = 0; i < elements.length; i++) {
-      if (elements.hasOwnProperty(i) && elements[i] && elements[i].nodeType === 1) {
-        if (!elements[i].zcClippingId) {
-          elements[i].zcClippingId = "zcClippingId_" + _elementIdCounter++;
-          _elementMeta[elements[i].zcClippingId] = [ this.id ];
-          if (_globalConfig.autoActivate === true) {
-            _addEventHandler(elements[i], "mouseover", _elementMouseOver);
-          }
-        } else if (_inArray(this.id, _elementMeta[elements[i].zcClippingId]) === -1) {
-          _elementMeta[elements[i].zcClippingId].push(this.id);
-        }
-        var clippedElements = _clientMeta[this.id].elements;
-        if (_inArray(elements[i], clippedElements) === -1) {
-          clippedElements.push(elements[i]);
-        }
-      }
-    }
-    return this;
-  };
-  ZeroClipboard.prototype.unclip = function(elements) {
-    var meta = _clientMeta[this.id];
-    if (!meta) {
-      return this;
-    }
-    var clippedElements = meta.elements;
-    var arrayIndex;
-    if (typeof elements === "undefined") {
-      elements = clippedElements.slice(0);
-    } else {
-      elements = _prepClip(elements);
-    }
-    for (var i = elements.length; i--; ) {
-      if (elements.hasOwnProperty(i) && elements[i] && elements[i].nodeType === 1) {
-        arrayIndex = 0;
-        while ((arrayIndex = _inArray(elements[i], clippedElements, arrayIndex)) !== -1) {
-          clippedElements.splice(arrayIndex, 1);
-        }
-        var clientIds = _elementMeta[elements[i].zcClippingId];
-        if (clientIds) {
-          arrayIndex = 0;
-          while ((arrayIndex = _inArray(this.id, clientIds, arrayIndex)) !== -1) {
-            clientIds.splice(arrayIndex, 1);
-          }
-          if (clientIds.length === 0) {
-            if (_globalConfig.autoActivate === true) {
-              _removeEventHandler(elements[i], "mouseover", _elementMouseOver);
-            }
-            delete elements[i].zcClippingId;
-          }
-        }
-      }
-    }
-    return this;
-  };
-  ZeroClipboard.prototype.elements = function() {
-    var meta = _clientMeta[this.id];
-    return meta && meta.elements ? meta.elements.slice(0) : [];
-  };
-  var _getAllClientsClippedToElement = function(element) {
-    var elementMetaId, clientIds, i, len, client, clients = [];
-    if (element && element.nodeType === 1 && (elementMetaId = element.zcClippingId) && _elementMeta.hasOwnProperty(elementMetaId)) {
-      clientIds = _elementMeta[elementMetaId];
-      if (clientIds && clientIds.length) {
-        for (i = 0, len = clientIds.length; i < len; i++) {
-          client = _clientMeta[clientIds[i]].instance;
-          if (client && client instanceof ZeroClipboard) {
-            clients.push(client);
-          }
-        }
-      }
-    }
-    return clients;
-  };
-  _globalConfig.hoverClass = "zeroclipboard-is-hover";
-  _globalConfig.activeClass = "zeroclipboard-is-active";
-  if (typeof define === "function" && define.amd) {
-    define(function() {
-      return ZeroClipboard;
-    });
-  } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
-    module.exports = ZeroClipboard;
-  } else {
-    window.ZeroClipboard = ZeroClipboard;
-  }
-})(function() {
-  return this;
-}());
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.min.js b/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.min.js
deleted file mode 100644
index 48b222c..0000000
--- a/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
-* ZeroClipboard
-* The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface.
-* Copyright (c) 2014 Jon Rohan, James M. Greene
-* Licensed MIT
-* http://zeroclipboard.org/
-* v2.0.0-beta.5
-*/
-!function(a){"use strict";var b,c={bridge:null,version:"0.0.0",pluginType:"unknown",disabled:null,outdated:null,unavailable:null,deactivated:null,overdue:null,ready:null},d={},e=null,f=0,g={},h=0,i={},j=function(){var a,b,c,d,e="ZeroClipboard.swf";if(!document.currentScript||!(d=document.currentScript.src)){var f=document.getElementsByTagName("script");if("readyState"in f[0])for(a=f.length;a--&&("interactive"!==f[a].readyState||!(d=f[a].src)););else if("loading"===document.readyState)d=f[f.length-1].src;else{for(a=f.length;a--;){if(c=f[a].src,!c){b=null;break}if(c=c.split("#")[0].split("?")[0],c=c.slice(0,c.lastIndexOf("/")+1),null==b)b=c;else if(b!==c){b=null;break}}null!==b&&(d=b)}}return d&&(d=d.split("#")[0].split("?")[0],e=d.slice(0,d.lastIndexOf("/")+1)+e),e}(),k=function(){var a=/\-([a-z])/g,b=function(a,b){return b.toUpperCase()};return function(c){return c.replace(a,b)}}(),l=function(b,c){var d,e,f;return a.getComputedStyle?d=a.getComputedStyle(b,null).getPropertyValue(c):(e=k(c),d=b.currentStyle?b.currentStyle[e]:b.style[e]),"cursor"!==c||d&&"auto"!==d||(f=b.tagName.toLowerCase(),"a"!==f)?d:"pointer"},m=function(b){b||(b=a.event);var c;this!==a?c=this:b.target?c=b.target:b.srcElement&&(c=b.srcElement),L.activate(c)},n=function(a,b,c){a&&1===a.nodeType&&(a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c))},o=function(a,b,c){a&&1===a.nodeType&&(a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&a.detachEvent("on"+b,c))},p=function(a,b){if(!a||1!==a.nodeType)return a;if(a.classList)return a.classList.contains(b)||a.classList.add(b),a;if(b&&"string"==typeof b){var c=(b||"").split(/\s+/);if(1===a.nodeType)if(a.className){for(var d=" "+a.className+" ",e=a.className,f=0,g=c.length;g>f;f++)d.indexOf(" "+c[f]+" ")<0&&(e+=" "+c[f]);a.className=e.replace(/^\s+|\s+$/g,"")}else a.className=b}return a},q=function(a,b){if(!a||1!==a.nodeType)return a;if(a.classList)return a.classList.contains(b)&&a.classList.remove(b),a;if(b&&"string"==typeof b||void 0===b){var c=(b||"").split(/\s+/);if(1===a.nodeType&&a.className)if(b){for(var d=(" "+a.className+" ").replace(/[\n\t]/g," "),e=0,f=c.length;f>e;e++)d=d.replace(" "+c[e]+" "," ");a.className=d.replace(/^\s+|\s+$/g,"")}else a.className=""}return a},r=function(){var a,b,c,d=1;return"function"==typeof document.body.getBoundingClientRect&&(a=document.body.getBoundingClientRect(),b=a.right-a.left,c=document.body.offsetWidth,d=Math.round(b/c*100)/100),d},s=function(b,c){var d={left:0,top:0,width:0,height:0,zIndex:y(c)-1};if(b.getBoundingClientRect){var e,f,g,h=b.getBoundingClientRect();"pageXOffset"in a&&"pageYOffset"in a?(e=a.pageXOffset,f=a.pageYOffset):(g=r(),e=Math.round(document.documentElement.scrollLeft/g),f=Math.round(document.documentElement.scrollTop/g));var i=document.documentElement.clientLeft||0,j=document.documentElement.clientTop||0;d.left=h.left+e-i,d.top=h.top+f-j,d.width="width"in h?h.width:h.right-h.left,d.height="height"in h?h.height:h.bottom-h.top}return d},t=function(a,b){var c=null==b||b&&b.cacheBust===!0;return c?(-1===a.indexOf("?")?"?":"&")+"noCache="+(new Date).getTime():""},u=function(b){var c,d,e,f,g="",h=[];if(b.trustedDomains&&("string"==typeof b.trustedDomains?f=[b.trustedDomains]:"object"==typeof b.trustedDomains&&"length"in b.trustedDomains&&(f=b.trustedDomains)),f&&f.length)for(c=0,d=f.length;d>c;c++)if(f.hasOwnProperty(c)&&f[c]&&"string"==typeof f[c]){if(e=A(f[c]),!e)continue;if("*"===e){h=[e];break}h.push.apply(h,[e,"//"+e,a.location.protocol+"//"+e])}return h.length&&(g+="trustedOrigins="+encodeURIComponent(h.join(","))),b.forceEnhancedClipboard===!0&&(g+=(g?"&":"")+"forceEnhancedClipboard=true"),g},v=function(a,b,c){if("function"==typeof b.indexOf)return b.indexOf(a,c);var d,e=b.length;for("undefined"==typeof c?c=0:0>c&&(c=e+c),d=c;e>d;d++)if(b.hasOwnProperty(d)&&b[d]===a)return d;return-1},w=function(a){if("string"==typeof a)throw new TypeError("ZeroClipboard doesn't accept query strings.");return"number"!=typeof a.length?[a]:a},x=function(b,c,d,e){e?a.setTimeout(function(){b.apply(c,d)},0):b.apply(c,d)},y=function(a){var b,c;return a&&("number"==typeof a&&a>0?b=a:"string"==typeof a&&(c=parseInt(a,10))&&!isNaN(c)&&c>0&&(b=c)),b||("number"==typeof O.zIndex&&O.zIndex>0?b=O.zIndex:"string"==typeof O.zIndex&&(c=parseInt(O.zIndex,10))&&!isNaN(c)&&c>0&&(b=c)),b||0},z=function(){var a,b,c,d,e,f,g=arguments[0]||{};for(a=1,b=arguments.length;b>a;a++)if(null!=(c=arguments[a]))for(d in c)if(c.hasOwnProperty(d)){if(e=g[d],f=c[d],g===f)continue;void 0!==f&&(g[d]=f)}return g},A=function(a){if(null==a||""===a)return null;if(a=a.replace(/^\s+|\s+$/g,""),""===a)return null;var b=a.indexOf("//");a=-1===b?a:a.slice(b+2);var c=a.indexOf("/");return a=-1===c?a:-1===b||0===c?null:a.slice(0,c),a&&".swf"===a.slice(-4).toLowerCase()?null:a||null},B=function(){var a=function(a,b){var c,d,e;if(null!=a&&"*"!==b[0]&&("string"==typeof a&&(a=[a]),"object"==typeof a&&"number"==typeof a.length))for(c=0,d=a.length;d>c;c++)if(a.hasOwnProperty(c)&&(e=A(a[c]))){if("*"===e){b.length=0,b.push("*");break}-1===v(e,b)&&b.push(e)}};return function(b,c){var d=A(c.swfPath);null===d&&(d=b);var e=[];a(c.trustedOrigins,e),a(c.trustedDomains,e);var f=e.length;if(f>0){if(1===f&&"*"===e[0])return"always";if(-1!==v(b,e))return 1===f&&b===d?"sameDomain":"always"}return"never"}}(),C=function(a){if(null==a)return[];if(Object.keys)return Object.keys(a);var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b},D=function(a){if(a)for(var b in a)a.hasOwnProperty(b)&&delete a[b];return a},E=function(){try{return document.activeElement}catch(a){}return null},F=function(a,b){for(var c={},d=0,e=b.length;e>d;d++)b[d]in a&&(c[b[d]]=a[b[d]]);return c},G=function(a,b){var c={};for(var d in a)-1===v(d,b)&&(c[d]=a[d]);return c},H=function(a){var b={},c={};if("object"==typeof a&&a){for(var d in a)if(d&&a.hasOwnProperty(d)&&"string"==typeof a[d]&&a[d])switch(d.toLowerCase()){case"text/plain":case"text":case"air:text":case"flash:text":b.text=a[d],c.text=d;break;case"text/html":case"html":case"air:html":case"flash:html":b.html=a[d],c.html=d;break;case"application/rtf":case"text/rtf":case"rtf":case"richtext":case"air:rtf":case"flash:rtf":b.rtf=a[d],c.rtf=d}return{data:b,formatMap:c}}},I=function(a,b){if("object"!=typeof a||!a||"object"!=typeof b||!b)return a;var c={};for(var d in a)if(a.hasOwnProperty(d)){if("success"!==d&&"data"!==d){c[d]=a[d];continue}c[d]={};var e=a[d];for(var f in e)f&&e.hasOwnProperty(f)&&b.hasOwnProperty(f)&&(c[d][b[f]]=e[f])}return c},J=function(a){return function(b){return a.call(b,0)}}(a.Array.prototype.slice),K=function(){function a(a){var b=a.match(/[\d]+/g);return b.length=3,b.join(".")}function b(a){return!!a&&(a=a.toLowerCase())&&(/^(pepflashplayer\.dll|libpepflashplayer\.so|pepperflashplayer\.plugin)$/.test(a)||"chrome.plugin"===a.slice(-13))}function d(c){c&&(h=!0,c.version&&(k=a(c.version)),!k&&c.description&&(k=a(c.description)),c.filename&&(j=b(c.filename)))}var e,f,g,h=!1,i=!1,j=!1,k="";if(navigator.plugins&&navigator.plugins.length)e=navigator.plugins["Shockwave Flash"],d(e),navigator.plugins["Shockwave Flash 2.0"]&&(h=!0,k="2.0.0.11");else if(navigator.mimeTypes&&navigator.mimeTypes.length)g=navigator.mimeTypes["application/x-shockwave-flash"],e=g&&g.enabledPlugin,d(e);else if("undefined"!=typeof ActiveXObject){i=!0;try{f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"),h=!0,k=a(f.GetVariable("$version"))}catch(l){try{f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"),h=!0,k="6.0.21"}catch(m){try{f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),h=!0,k=a(f.GetVariable("$version"))}catch(n){i=!1}}}}c.disabled=h!==!0,c.outdated=k&&parseFloat(k)<11,c.version=k||"0.0.0",c.pluginType=j?"pepper":i?"activex":h?"netscape":"unknown"};K();var L=function(a){if(!(this instanceof L))return new L(a);if(this.id=""+f++,g[this.id]={instance:this,elements:[],handlers:{}},a&&this.clip(a),"boolean"!=typeof c.ready&&(c.ready=!1),!L.isFlashUnusable()&&null===c.bridge){var b=this,d=O.flashLoadTimeout;"number"==typeof d&&d>=0&&setTimeout(function(){"boolean"!=typeof c.deactivated&&(c.deactivated=!0),c.deactivated===!0&&L.emit({type:"error",name:"flash-deactivated",client:b})},d),c.overdue=!1,P()}};L.prototype.setText=function(a){return L.setData("text/plain",a),this},L.prototype.setHtml=function(a){return L.setData("text/html",a),this},L.prototype.setRichText=function(a){return L.setData("application/rtf",a),this},L.prototype.setData=function(){return L.setData.apply(L,J(arguments)),this},L.prototype.clearData=function(){return L.clearData.apply(L,J(arguments)),this},L.prototype.setSize=function(a,b){return T(a,b),this};var M=function(a){c.ready===!0&&c.bridge&&"function"==typeof c.bridge.setHandCursor?c.bridge.setHandCursor(a):c.ready=!1};L.prototype.destroy=function(){this.unclip(),this.off(),delete g[this.id]};var N=function(){var a,b,c,d=[],e=C(g);for(a=0,b=e.length;b>a;a++)c=g[e[a]].instance,c&&c instanceof L&&d.push(c);return d};L.version="2.0.0-beta.5";var O={swfPath:j,trustedDomains:a.location.host?[a.location.host]:[],cacheBust:!0,forceHandCursor:!1,forceEnhancedClipboard:!1,zIndex:999999999,debug:!1,title:null,autoActivate:!0,flashLoadTimeout:3e4};L.isFlashUnusable=function(){return!!(c.disabled||c.outdated||c.unavailable||c.deactivated)},L.config=function(a){"object"==typeof a&&null!==a&&z(O,a);{if("string"!=typeof a||!a){var b={};for(var c in O)O.hasOwnProperty(c)&&(b[c]="object"==typeof O[c]&&null!==O[c]?"length"in O[c]?O[c].slice(0):z({},O[c]):O[c]);return b}if(O.hasOwnProperty(a))return O[a]}},L.destroy=function(){L.deactivate();for(var a in g)if(g.hasOwnProperty(a)&&g[a]){var b=g[a].instance;b&&"function"==typeof b.destroy&&b.destroy()}var d=c.bridge;if(d){var e=R(d);e&&("activex"===c.pluginType&&"readyState"in d?(d.style.display="none",function f(){if(4===d.readyState){for(var a in d)"function"==typeof d[a]&&(d[a]=null);d.parentNode.removeChild(d),e.parentNode&&e.parentNode.removeChild(e)}else setTimeout(f,10)}()):(d.parentNode.removeChild(d),e.parentNode&&e.parentNode.removeChild(e))),c.ready=null,c.bridge=null,c.deactivated=null}L.clearData()},L.activate=function(a){b&&(q(b,O.hoverClass),q(b,O.activeClass)),b=a,p(a,O.hoverClass),S();var d=O.title||a.getAttribute("title");if(d){var e=R(c.bridge);e&&e.setAttribute("title",d)}var f=O.forceHandCursor===!0||"pointer"===l(a,"cursor");M(f)},L.deactivate=function(){var a=R(c.bridge);a&&(a.removeAttribute("title"),a.style.left="0px",a.style.top="-9999px",T(1,1)),b&&(q(b,O.hoverClass),q(b,O.activeClass),b=null)},L.state=function(){return{browser:F(a.navigator,["userAgent","platform","appName"]),flash:G(c,["bridge"]),zeroclipboard:{version:L.version,config:L.config()}}},L.setData=function(a,b){var c;if("object"==typeof a&&a&&"undefined"==typeof b)c=a,L.clearData();else{if("string"!=typeof a||!a)return;c={},c[a]=b}for(var e in c)e&&c.hasOwnProperty(e)&&"string"==typeof c[e]&&c[e]&&(d[e]=c[e])},L.clearData=function(a){"undefined"==typeof a?(D(d),e=null):"string"==typeof a&&d.hasOwnProperty(a)&&delete d[a]};var P=function(){var b,d,e=document.getElementById("global-zeroclipboard-html-bridge");if(!e){var f=B(a.location.host,O),g="never"===f?"none":"all",h=u(O),i=O.swfPath+t(O.swfPath,O);e=Q();var j=document.createElement("div");e.appendChild(j),document.body.appendChild(e);var k=document.createElement("div"),l="activex"===c.pluginType;k.innerHTML='<object id="global-zeroclipboard-flash-bridge" name="global-zeroclipboard-flash-bridge" width="100%" height="100%" '+(l?'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"':'type="application/x-shockwave-flash" data="'+i+'"')+">"+(l?'<param name="movie" value="'+i+'"/>':"")+'<param name="allowScriptAccess" value="'+f+'"/><param name="allowNetworking" value="'+g+'"/><param name="menu" value="false"/><param name="wmode" value="transparent"/><param name="flashvars" value="'+h+'"/></object>',b=k.firstChild,k=null,b.ZeroClipboard=L,e.replaceChild(b,j)}b||(b=document["global-zeroclipboard-flash-bridge"],b&&(d=b.length)&&(b=b[d-1]),b||(b=e.firstChild)),c.bridge=b||null},Q=function(){var a=document.createElement("div");return a.id="global-zeroclipboard-html-bridge",a.className="global-zeroclipboard-container",a.style.position="absolute",a.style.left="0px",a.style.top="-9999px",a.style.width="1px",a.style.height="1px",a.style.zIndex=""+y(O.zIndex),a},R=function(a){for(var b=a&&a.parentNode;b&&"OBJECT"===b.nodeName&&b.parentNode;)b=b.parentNode;return b||null},S=function(){if(b){var a=s(b,O.zIndex),d=R(c.bridge);d&&(d.style.top=a.top+"px",d.style.left=a.left+"px",d.style.width=a.width+"px",d.style.height=a.height+"px",d.style.zIndex=a.zIndex+1),T(a.width,a.height)}},T=function(a,b){var d=R(c.bridge);d&&(d.style.width=a+"px",d.style.height=b+"px")};L.emit=function(b){var f,g,h,i,j,k,l,m,n;if("string"==typeof b&&b&&(f=b),"object"==typeof b&&b&&"string"==typeof b.type&&b.type&&(f=b.type,g=b),f){if(b=W(f,g),Y(b),"ready"===b.type&&c.overdue===!0)return L.emit({type:"error",name:"flash-overdue"});if(h=!/^(before)?copy$/.test(b.type),b.client)U.call(b.client,b,h);else for(i=b.target&&b.target!==a&&O.autoActivate===!0?Z(b.target):N(),j=0,k=i.length;k>j;j++)l=z({},b,{client:i[j]}),U.call(i[j],l,h);return"copy"===b.type&&(n=H(d),m=n.data,e=n.formatMap),m}};var U=function(b,c){var d=g[this.id]&&g[this.id].handlers[b.type];if(d&&d.length){var e,f,h,i,j=this;for(e=0,f=d.length;f>e;e++)h=d[e],i=j,"string"==typeof h&&"function"==typeof a[h]&&(h=a[h]),"object"==typeof h&&h&&"function"==typeof h.handleEvent&&(i=h,h=h.handleEvent),"function"==typeof h&&x(h,i,[b],c)}return this},V={ready:"Flash communication is established",error:{"flash-disabled":"Flash is disabled or not installed","flash-outdated":"Flash is too outdated to support ZeroClipboard","flash-unavailable":"Flash is unable to communicate bidirectionally with JavaScript","flash-deactivated":"Flash is too outdated for your browser and/or is configured as click-to-activate","flash-overdue":"Flash communication was established but NOT within the acceptable time limit"}},W=function(a,d){if(a||d&&d.type){d=d||{},a=(a||d.type).toLowerCase(),z(d,{type:a,target:d.target||b||null,relatedTarget:d.relatedTarget||null,currentTarget:c&&c.bridge||null});var f=V[d.type];return"error"===d.type&&d.name&&f&&(f=f[d.name]),f&&(d.message=f),"ready"===d.type&&z(d,{target:null,version:c.version}),"error"===d.type&&(d.target=null,/^flash-(outdated|unavailable|deactivated|overdue)$/.test(d.name)&&z(d,{version:c.version,minimumVersion:"11.0.0"})),"copy"===d.type&&(d.clipboardData={setData:L.setData,clearData:L.clearData}),"aftercopy"===d.type&&(d=I(d,e)),d.target&&!d.relatedTarget&&(d.relatedTarget=X(d.target)),d}},X=function(a){var b=a&&a.getAttribute&&a.getAttribute("data-clipboard-target");return b?document.getElementById(b):null},Y=function(a){var e=a.target||b;switch(a.type){case"error":v(a.name,["flash-disabled","flash-outdated","flash-deactivated","flash-overdue"])&&z(c,{disabled:"flash-disabled"===a.name,outdated:"flash-outdated"===a.name,unavailable:"flash-unavailable"===a.name,deactivated:"flash-deactivated"===a.name,overdue:"flash-overdue"===a.name,ready:!1});break;case"ready":var f=c.deactivated===!0;z(c,{disabled:!1,outdated:!1,unavailable:!1,deactivated:!1,overdue:f,ready:!f});break;case"copy":var g,h,i=a.relatedTarget;!d["text/html"]&&!d["text/plain"]&&i&&(h=i.value||i.outerHTML||i.innerHTML)&&(g=i.value||i.textContent||i.innerText)?(a.clipboardData.clearData(),a.clipboardData.setData("text/plain",g),h!==g&&a.clipboardData.setData("text/html",h)):!d["text/plain"]&&a.target&&(g=a.target.getAttribute("data-clipboard-text"))&&(a.clipboardData.clearData(),a.clipboardData.setData("text/plain",g));break;case"aftercopy":L.clearData(),e&&e!==E()&&e.focus&&e.focus();break;case"mouseover":p(e,O.hoverClass);break;case"mouseout":O.autoActivate===!0&&L.deactivate();break;case"mousedown":p(e,O.activeClass);break;case"mouseup":q(e,O.activeClass)}};L.prototype.on=function(a,b){var d,e,f,h={},i=g[this.id]&&g[this.id].handlers;if("string"==typeof a&&a)f=a.toLowerCase().split(/\s+/);else if("object"==typeof a&&a&&"undefined"==typeof b)for(d in a)a.hasOwnProperty(d)&&"string"==typeof d&&d&&"function"==typeof a[d]&&this.on(d,a[d]);if(f&&f.length){for(d=0,e=f.length;e>d;d++)a=f[d].replace(/^on/,""),h[a]=!0,i[a]||(i[a]=[]),i[a].push(b);if(h.ready&&c.ready&&L.emit({type:"ready",client:this}),h.error){var j=["disabled","outdated","unavailable","deactivated","overdue"];for(d=0,e=j.length;e>d;d++)if(c[j[d]]){L.emit({type:"error",name:"flash-"+j[d],client:this});break}}}return this},L.prototype.off=function(a,b){var c,d,e,f,h,i=g[this.id]&&g[this.id].handlers;if(0===arguments.length)f=C(i);else if("string"==typeof a&&a)f=a.split(/\s+/);else if("object"==typeof a&&a&&"undefined"==typeof b)for(c in a)a.hasOwnProperty(c)&&"string"==typeof c&&c&&"function"==typeof a[c]&&this.off(c,a[c]);if(f&&f.length)for(c=0,d=f.length;d>c;c++)if(a=f[c].toLowerCase().replace(/^on/,""),h=i[a],h&&h.length)if(b)for(e=v(b,h);-1!==e;)h.splice(e,1),e=v(b,h,e);else i[a].length=0;return this},L.prototype.handlers=function(a){var b,c=null,d=g[this.id]&&g[this.id].handlers;if(d){if("string"==typeof a&&a)return d[a]?d[a].slice(0):null;c={};for(b in d)d.hasOwnProperty(b)&&d[b]&&(c[b]=d[b].slice(0))}return c},L.prototype.clip=function(a){a=w(a);for(var b=0;b<a.length;b++)if(a.hasOwnProperty(b)&&a[b]&&1===a[b].nodeType){a[b].zcClippingId?-1===v(this.id,i[a[b].zcClippingId])&&i[a[b].zcClippingId].push(this.id):(a[b].zcClippingId="zcClippingId_"+h++,i[a[b].zcClippingId]=[this.id],O.autoActivate===!0&&n(a[b],"mouseover",m));var c=g[this.id].elements;-1===v(a[b],c)&&c.push(a[b])}return this},L.prototype.unclip=function(a){var b=g[this.id];if(!b)return this;var c,d=b.elements;a="undefined"==typeof a?d.slice(0):w(a);for(var e=a.length;e--;)if(a.hasOwnProperty(e)&&a[e]&&1===a[e].nodeType){for(c=0;-1!==(c=v(a[e],d,c));)d.splice(c,1);var f=i[a[e].zcClippingId];if(f){for(c=0;-1!==(c=v(this.id,f,c));)f.splice(c,1);0===f.length&&(O.autoActivate===!0&&o(a[e],"mouseover",m),delete a[e].zcClippingId)}}return this},L.prototype.elements=function(){var a=g[this.id];return a&&a.elements?a.elements.slice(0):[]};var Z=function(a){var b,c,d,e,f,h=[];if(a&&1===a.nodeType&&(b=a.zcClippingId)&&i.hasOwnProperty(b)&&(c=i[b],c&&c.length))for(d=0,e=c.length;e>d;d++)f=g[c[d]].instance,f&&f instanceof L&&h.push(f);return h};O.hoverClass="zeroclipboard-is-hover",O.activeClass="zeroclipboard-is-active","function"==typeof define&&define.amd?define(function(){return L}):"object"==typeof module&&module&&"object"==typeof module.exports&&module.exports?module.exports=L:a.ZeroClipboard=L}(function(){return this}());
\ No newline at end of file
diff --git a/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.swf b/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.swf
deleted file mode 100644
index ed1c9d2..0000000
--- a/server/public/ueditor/third-party/zeroclipboard/ZeroClipboard.swf
+++ /dev/null
Binary files differ
diff --git a/server/public/ueditor/ueditor.all.js b/server/public/ueditor/ueditor.all.js
deleted file mode 100644
index a835535..0000000
--- a/server/public/ueditor/ueditor.all.js
+++ /dev/null
@@ -1,30660 +0,0 @@
-/*!
- * UEditor
- * version: ueditor
- * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST)
- */
-
-(function() {
-
-  // editor.js
-  UEDITOR_CONFIG = window.UEDITOR_CONFIG || {};
-
-  var baidu = window.baidu || {};
-
-  window.baidu = baidu;
-
-  window.UE = baidu.editor = window.UE || {};
-
-  UE.plugins = {};
-
-  UE.commands = {};
-
-  UE.instants = {};
-
-  UE.I18N = {};
-
-  UE._customizeUI = {};
-
-  UE.version = "1.4.3";
-
-  var dom = UE.dom = {};
-
-  // core/browser.js
-  /**
-   * 娴忚鍣ㄥ垽鏂ā鍧�
-   * @file
-   * @module UE.browser
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎻愪緵娴忚鍣ㄦ娴嬬殑妯″潡
-   * @unfile
-   * @module UE.browser
-   */
-  var browser = UE.browser = function() {
-    var agent = navigator.userAgent.toLowerCase(),
-      opera = window.opera,
-      browser = {
-        /**
-         * @property {boolean} ie 妫�娴嬪綋鍓嶆祻瑙堝櫒鏄惁涓篒E
-         * @example
-         * ```javascript
-         * if ( UE.browser.ie ) {
-         *     console.log( '褰撳墠娴忚鍣ㄦ槸IE' );
-         * }
-         * ```
-         */
-        ie: /(msie\s|trident.*rv:)([\w.]+)/.test(agent),
-
-        /**
-         * @property {boolean} opera 妫�娴嬪綋鍓嶆祻瑙堝櫒鏄惁涓篛pera
-         * @example
-         * ```javascript
-         * if ( UE.browser.opera ) {
-         *     console.log( '褰撳墠娴忚鍣ㄦ槸Opera' );
-         * }
-         * ```
-         */
-        opera: (!!opera && opera.version),
-
-        /**
-         * @property {boolean} webkit 妫�娴嬪綋鍓嶆祻瑙堝櫒鏄惁鏄痺ebkit鍐呮牳鐨勬祻瑙堝櫒
-         * @example
-         * ```javascript
-         * if ( UE.browser.webkit ) {
-         *     console.log( '褰撳墠娴忚鍣ㄦ槸webkit鍐呮牳娴忚鍣�' );
-         * }
-         * ```
-         */
-        webkit: (agent.indexOf(' applewebkit/') > -1),
-
-        /**
-         * @property {boolean} mac 妫�娴嬪綋鍓嶆祻瑙堝櫒鏄惁鏄繍琛屽湪mac骞冲彴涓�
-         * @example
-         * ```javascript
-         * if ( UE.browser.mac ) {
-         *     console.log( '褰撳墠娴忚鍣ㄨ繍琛屽湪mac骞冲彴涓�' );
-         * }
-         * ```
-         */
-        mac: (agent.indexOf('macintosh') > -1),
-
-        /**
-         * @property {boolean} quirks 妫�娴嬪綋鍓嶆祻瑙堝櫒鏄惁澶勪簬鈥滄�紓妯″紡鈥濅笅
-         * @example
-         * ```javascript
-         * if ( UE.browser.quirks ) {
-         *     console.log( '褰撳墠娴忚鍣ㄨ繍琛屽浜庘�滄�紓妯″紡鈥�' );
-         * }
-         * ```
-         */
-        quirks: (document.compatMode == 'BackCompat')
-      };
-
-    /**
-     * @property {boolean} gecko 妫�娴嬪綋鍓嶆祻瑙堝櫒鍐呮牳鏄惁鏄痝ecko鍐呮牳
-     * @example
-     * ```javascript
-     * if ( UE.browser.gecko ) {
-     *     console.log( '褰撳墠娴忚鍣ㄥ唴鏍告槸gecko鍐呮牳' );
-     * }
-     * ```
-     */
-    browser.gecko = (navigator.product == 'Gecko' && !browser.webkit && !browser.opera && !browser.ie);
-
-    var version = 0;
-
-    // Internet Explorer 6.0+
-    if (browser.ie) {
-
-      var v1 = agent.match(/(?:msie\s([\w.]+))/);
-      var v2 = agent.match(/(?:trident.*rv:([\w.]+))/);
-      if (v1 && v2 && v1[1] && v2[1]) {
-        version = Math.max(v1[1] * 1, v2[1] * 1);
-      } else if (v1 && v1[1]) {
-        version = v1[1] * 1;
-      } else if (v2 && v2[1]) {
-        version = v2[1] * 1;
-      } else {
-        version = 0;
-      }
-
-      browser.ie11Compat = document.documentMode == 11;
-      /**
-       * @property { boolean } ie9Compat 妫�娴嬫祻瑙堝櫒妯″紡鏄惁涓� IE9 鍏煎妯″紡
-       * @warning 濡傛灉娴忚鍣ㄤ笉鏄疘E锛� 鍒欒鍊间负undefined
-       * @example
-       * ```javascript
-       * if ( UE.browser.ie9Compat ) {
-       *     console.log( '褰撳墠娴忚鍣ㄨ繍琛屽湪IE9鍏煎妯″紡涓�' );
-       * }
-       * ```
-       */
-      browser.ie9Compat = document.documentMode == 9;
-
-      /**
-       * @property { boolean } ie8 妫�娴嬫祻瑙堝櫒鏄惁鏄疘E8娴忚鍣�
-       * @warning 濡傛灉娴忚鍣ㄤ笉鏄疘E锛� 鍒欒鍊间负undefined
-       * @example
-       * ```javascript
-       * if ( UE.browser.ie8 ) {
-       *     console.log( '褰撳墠娴忚鍣ㄦ槸IE8娴忚鍣�' );
-       * }
-       * ```
-       */
-      browser.ie8 = !!document.documentMode;
-
-      /**
-       * @property { boolean } ie8Compat 妫�娴嬫祻瑙堝櫒妯″紡鏄惁涓� IE8 鍏煎妯″紡
-       * @warning 濡傛灉娴忚鍣ㄤ笉鏄疘E锛� 鍒欒鍊间负undefined
-       * @example
-       * ```javascript
-       * if ( UE.browser.ie8Compat ) {
-       *     console.log( '褰撳墠娴忚鍣ㄨ繍琛屽湪IE8鍏煎妯″紡涓�' );
-       * }
-       * ```
-       */
-      browser.ie8Compat = document.documentMode == 8;
-
-      /**
-       * @property { boolean } ie7Compat 妫�娴嬫祻瑙堝櫒妯″紡鏄惁涓� IE7 鍏煎妯″紡
-       * @warning 濡傛灉娴忚鍣ㄤ笉鏄疘E锛� 鍒欒鍊间负undefined
-       * @example
-       * ```javascript
-       * if ( UE.browser.ie7Compat ) {
-       *     console.log( '褰撳墠娴忚鍣ㄨ繍琛屽湪IE7鍏煎妯″紡涓�' );
-       * }
-       * ```
-       */
-      browser.ie7Compat = ((version == 7 && !document.documentMode) ||
-        document.documentMode == 7);
-
-      /**
-       * @property { boolean } ie6Compat 妫�娴嬫祻瑙堝櫒妯″紡鏄惁涓� IE6 妯″紡 鎴栬�呮�紓妯″紡
-       * @warning 濡傛灉娴忚鍣ㄤ笉鏄疘E锛� 鍒欒鍊间负undefined
-       * @example
-       * ```javascript
-       * if ( UE.browser.ie6Compat ) {
-       *     console.log( '褰撳墠娴忚鍣ㄨ繍琛屽湪IE6妯″紡鎴栬�呮�紓妯″紡涓�' );
-       * }
-       * ```
-       */
-      browser.ie6Compat = (version < 7 || browser.quirks);
-
-      browser.ie9above = version > 8;
-
-      browser.ie9below = version < 9;
-
-      browser.ie11above = version > 10;
-
-      browser.ie11below = version < 11;
-
-    }
-
-    // Gecko.
-    if (browser.gecko) {
-      var geckoRelease = agent.match(/rv:([\d\.]+)/);
-      if (geckoRelease) {
-        geckoRelease = geckoRelease[1].split('.');
-        version = geckoRelease[0] * 10000 + (geckoRelease[1] || 0) * 100 + (geckoRelease[2] || 0) * 1;
-      }
-    }
-
-    /**
-     * @property { Number } chrome 妫�娴嬪綋鍓嶆祻瑙堝櫒鏄惁涓篊hrome, 濡傛灉鏄紝鍒欒繑鍥濩hrome鐨勫ぇ鐗堟湰鍙�
-     * @warning 濡傛灉娴忚鍣ㄤ笉鏄痗hrome锛� 鍒欒鍊间负undefined
-     * @example
-     * ```javascript
-     * if ( UE.browser.chrome ) {
-     *     console.log( '褰撳墠娴忚鍣ㄦ槸Chrome' );
-     * }
-     * ```
-     */
-    if (/chrome\/(\d+\.\d)/i.test(agent)) {
-      browser.chrome = +RegExp['\x241'];
-    }
-
-    /**
-     * @property { Number } safari 妫�娴嬪綋鍓嶆祻瑙堝櫒鏄惁涓篠afari, 濡傛灉鏄紝鍒欒繑鍥濻afari鐨勫ぇ鐗堟湰鍙�
-     * @warning 濡傛灉娴忚鍣ㄤ笉鏄痵afari锛� 鍒欒鍊间负undefined
-     * @example
-     * ```javascript
-     * if ( UE.browser.safari ) {
-     *     console.log( '褰撳墠娴忚鍣ㄦ槸Safari' );
-     * }
-     * ```
-     */
-    if (/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(agent) && !/chrome/i.test(agent)) {
-      browser.safari = +(RegExp['\x241'] || RegExp['\x242']);
-    }
-
-
-    // Opera 9.50+
-    if (browser.opera)
-      version = parseFloat(opera.version());
-
-    // WebKit 522+ (Safari 3+)
-    if (browser.webkit)
-      version = parseFloat(agent.match(/ applewebkit\/(\d+)/)[1]);
-
-    /**
-     * @property { Number } version 妫�娴嬪綋鍓嶆祻瑙堝櫒鐗堟湰鍙�
-     * @remind
-     * <ul>
-     *     <li>IE绯诲垪杩斿洖鍊间负5,6,7,8,9,10绛�</li>
-     *     <li>gecko绯诲垪浼氳繑鍥�10900锛�158900绛�</li>
-     *     <li>webkit绯诲垪浼氳繑鍥炲叾build鍙� (濡� 522绛�)</li>
-     * </ul>
-     * @example
-     * ```javascript
-     * console.log( '褰撳墠娴忚鍣ㄧ増鏈彿鏄細 ' + UE.browser.version );
-     * ```
-     */
-    browser.version = version;
-
-    /**
-     * @property { boolean } isCompatible 妫�娴嬪綋鍓嶆祻瑙堝櫒鏄惁鑳藉涓嶶Editor鑹ソ鍏煎
-     * @example
-     * ```javascript
-     * if ( UE.browser.isCompatible ) {
-     *     console.log( '娴忚鍣ㄤ笌UEditor鑳藉鑹ソ鍏煎' );
-     * }
-     * ```
-     */
-    browser.isCompatible = !browser.mobile && (
-      (browser.ie && version >= 6) ||
-      (browser.gecko && version >= 10801) ||
-      (browser.opera && version >= 9.5) ||
-      (browser.air && version >= 1) ||
-      (browser.webkit && version >= 522) ||
-      false);
-    return browser;
-  }();
-  //蹇嵎鏂瑰紡
-  var ie = browser.ie,
-    webkit = browser.webkit,
-    gecko = browser.gecko,
-    opera = browser.opera;
-
-  // core/utils.js
-  /**
-   * 宸ュ叿鍑芥暟鍖�
-   * @file
-   * @module UE.utils
-   * @since 1.2.6.1
-   */
-
-  /**
-   * UEditor灏佽浣跨敤鐨勯潤鎬佸伐鍏峰嚱鏁�
-   * @module UE.utils
-   * @unfile
-   */
-
-  var utils = UE.utils = {
-
-    /**
-     * 鐢ㄧ粰瀹氱殑杩唬鍣ㄩ亶鍘嗗璞�
-     * @method each
-     * @param { Object } obj 闇�瑕侀亶鍘嗙殑瀵硅薄
-     * @param { Function } iterator 杩唬鍣紝 璇ユ柟娉曟帴鍙椾袱涓弬鏁帮紝 绗竴涓弬鏁版槸褰撳墠鎵�澶勭悊鐨剉alue锛� 绗簩涓弬鏁版槸褰撳墠閬嶅巻瀵硅薄鐨刱ey
-     * @example
-     * ```javascript
-     * var demoObj = {
-     *     key1: 1,
-     *     key2: 2
-     * };
-     *
-     * //output: key1: 1, key2: 2
-     * UE.utils.each( demoObj, funciton ( value, key ) {
-     *
-     *     console.log( key + ":" + value );
-     *
-     * } );
-     * ```
-     */
-
-    /**
-     * 鐢ㄧ粰瀹氱殑杩唬鍣ㄩ亶鍘嗘暟缁勬垨绫绘暟缁勫璞�
-     * @method each
-     * @param { Array } array 闇�瑕侀亶鍘嗙殑鏁扮粍鎴栬�呯被鏁扮粍
-     * @param { Function } iterator 杩唬鍣紝 璇ユ柟娉曟帴鍙椾袱涓弬鏁帮紝 绗竴涓弬鏁版槸褰撳墠鎵�澶勭悊鐨剉alue锛� 绗簩涓弬鏁版槸褰撳墠閬嶅巻瀵硅薄鐨刱ey
-     * @example
-     * ```javascript
-     * var divs = document.getElmentByTagNames( "div" );
-     *
-     * //output: 0: DIV, 1: DIV ...
-     * UE.utils.each( divs, funciton ( value, key ) {
-     *
-     *     console.log( key + ":" + value.tagName );
-     *
-     * } );
-     * ```
-     */
-    each: function(obj, iterator, context) {
-      if (obj == null) return;
-      if (obj.length === +obj.length) {
-        for (var i = 0, l = obj.length; i < l; i++) {
-          if (iterator.call(context, obj[i], i, obj) === false)
-            return false;
-        }
-      } else {
-        for (var key in obj) {
-          if (obj.hasOwnProperty(key)) {
-            if (iterator.call(context, obj[key], key, obj) === false)
-              return false;
-          }
-        }
-      }
-    },
-
-    /**
-     * 浠ョ粰瀹氬璞′綔涓哄師鍨嬪垱寤轰竴涓柊瀵硅薄
-     * @method makeInstance
-     * @param { Object } protoObject 璇ュ璞″皢浣滀负鏂板垱寤哄璞$殑鍘熷瀷
-     * @return { Object } 鏂扮殑瀵硅薄锛� 璇ュ璞$殑鍘熷瀷鏄粰瀹氱殑protoObject瀵硅薄
-     * @example
-     * ```javascript
-     *
-     * var protoObject = { sayHello: function () { console.log('Hello UEditor!'); } };
-     *
-     * var newObject = UE.utils.makeInstance( protoObject );
-     * //output: Hello UEditor!
-     * newObject.sayHello();
-     * ```
-     */
-    makeInstance: function(obj) {
-      var noop = new Function();
-      noop.prototype = obj;
-      obj = new noop;
-      noop.prototype = null;
-      return obj;
-    },
-
-    /**
-     * 灏唖ource瀵硅薄涓殑灞炴�ф墿灞曞埌target瀵硅薄涓�
-     * @method extend
-     * @remind 璇ユ柟娉曞皢寮哄埗鎶妔ource瀵硅薄涓婄殑灞炴�у鍒跺埌target瀵硅薄涓�
-     * @see UE.utils.extend(Object,Object,Boolean)
-     * @param { Object } target 鐩爣瀵硅薄锛� 鏂扮殑灞炴�у皢闄勫姞鍒拌瀵硅薄涓�
-     * @param { Object } source 婧愬璞★紝 璇ュ璞$殑灞炴�т細琚檮鍔犲埌target瀵硅薄涓�
-     * @return { Object } 杩斿洖target瀵硅薄
-     * @example
-     * ```javascript
-     *
-     * var target = { name: 'target', sex: 1 },
-     *      source = { name: 'source', age: 17 };
-     *
-     * UE.utils.extend( target, source );
-     *
-     * //output: { name: 'source', sex: 1, age: 17 }
-     * console.log( target );
-     *
-     * ```
-     */
-
-    /**
-     * 灏唖ource瀵硅薄涓殑灞炴�ф墿灞曞埌target瀵硅薄涓婏紝 鏍规嵁鎸囧畾鐨刬sKeepTarget鍊煎喅瀹氭槸鍚︿繚鐣欑洰鏍囧璞′腑涓�
-     * 婧愬璞″睘鎬у悕鐩稿悓鐨勫睘鎬у�笺��
-     * @method extend
-     * @param { Object } target 鐩爣瀵硅薄锛� 鏂扮殑灞炴�у皢闄勫姞鍒拌瀵硅薄涓�
-     * @param { Object } source 婧愬璞★紝 璇ュ璞$殑灞炴�т細琚檮鍔犲埌target瀵硅薄涓�
-     * @param { Boolean } isKeepTarget 鏄惁淇濈暀鐩爣瀵硅薄涓笌婧愬璞′腑灞炴�у悕鐩稿悓鐨勫睘鎬�
-     * @return { Object } 杩斿洖target瀵硅薄
-     * @example
-     * ```javascript
-     *
-     * var target = { name: 'target', sex: 1 },
-     *      source = { name: 'source', age: 17 };
-     *
-     * UE.utils.extend( target, source, true );
-     *
-     * //output: { name: 'target', sex: 1, age: 17 }
-     * console.log( target );
-     *
-     * ```
-     */
-    extend: function(t, s, b) {
-      if (s) {
-        for (var k in s) {
-          if (!b || !t.hasOwnProperty(k)) {
-            t[k] = s[k];
-          }
-        }
-      }
-      return t;
-    },
-
-    /**
-     * 灏嗙粰瀹氱殑澶氫釜瀵硅薄鐨勫睘鎬у鍒跺埌鐩爣瀵硅薄target涓�
-     * @method extend2
-     * @remind 璇ユ柟娉曞皢寮哄埗鎶婃簮瀵硅薄涓婄殑灞炴�у鍒跺埌target瀵硅薄涓�
-     * @remind 璇ユ柟娉曟敮鎸佷袱涓強浠ヤ笂鐨勫弬鏁帮紝 浠庣浜屼釜鍙傛暟寮�濮嬶紝 鍏跺睘鎬ч兘浼氳澶嶅埗鍒扮涓�涓弬鏁颁笂銆� 濡傛灉閬囧埌鍚屽悕鐨勫睘鎬э紝
-     *          灏嗕細瑕嗙洊鎺変箣鍓嶇殑鍊笺��
-     * @param { Object } target 鐩爣瀵硅薄锛� 鏂扮殑灞炴�у皢闄勫姞鍒拌瀵硅薄涓�
-     * @param { Object... } source 婧愬璞★紝 鏀寔澶氫釜瀵硅薄锛� 璇ュ璞$殑灞炴�т細琚檮鍔犲埌target瀵硅薄涓�
-     * @return { Object } 杩斿洖target瀵硅薄
-     * @example
-     * ```javascript
-     *
-     * var target = {},
-     *     source1 = { name: 'source', age: 17 },
-     *     source2 = { title: 'dev' };
-     *
-     * UE.utils.extend2( target, source1, source2 );
-     *
-     * //output: { name: 'source', age: 17, title: 'dev' }
-     * console.log( target );
-     *
-     * ```
-     */
-    extend2: function(t) {
-      var a = arguments;
-      for (var i = 1; i < a.length; i++) {
-        var x = a[i];
-        for (var k in x) {
-          if (!t.hasOwnProperty(k)) {
-            t[k] = x[k];
-          }
-        }
-      }
-      return t;
-    },
-
-    /**
-     * 妯℃嫙缁ф壙鏈哄埗锛� 浣垮緱subClass缁ф壙鑷猻uperClass
-     * @method inherits
-     * @param { Object } subClass 瀛愮被瀵硅薄
-     * @param { Object } superClass 瓒呯被瀵硅薄
-     * @warning 璇ユ柟娉曞彧鑳借subClass缁ф壙瓒呯被鐨勫師鍨嬶紝 subClass瀵硅薄鑷韩鐨勫睘鎬у拰鏂规硶涓嶄細琚户鎵�
-     * @return { Object } 缁ф壙superClass鍚庣殑瀛愮被瀵硅薄
-     * @example
-     * ```javascript
-     * function SuperClass(){
-     *     this.name = "灏忔潕";
-     * }
-     *
-     * SuperClass.prototype = {
-     *     hello:function(str){
-     *         console.log(this.name + str);
-     *     }
-     * }
-     *
-     * function SubClass(){
-     *     this.name = "灏忓紶";
-     * }
-     *
-     * UE.utils.inherits(SubClass,SuperClass);
-     *
-     * var sub = new SubClass();
-     * //output: '灏忓紶鏃╀笂濂�!
-     * sub.hello("鏃╀笂濂�!");
-     * ```
-     */
-    inherits: function(subClass, superClass) {
-      var oldP = subClass.prototype,
-        newP = utils.makeInstance(superClass.prototype);
-      utils.extend(newP, oldP, true);
-      subClass.prototype = newP;
-      return (newP.constructor = subClass);
-    },
-
-    /**
-     * 鐢ㄦ寚瀹氱殑context瀵硅薄浣滀负鍑芥暟fn鐨勪笂涓嬫枃
-     * @method bind
-     * @param { Function } fn 闇�瑕佺粦瀹氫笂涓嬫枃鐨勫嚱鏁板璞�
-     * @param { Object } content 鍑芥暟fn鏂扮殑涓婁笅鏂囧璞�
-     * @return { Function } 涓�涓柊鐨勫嚱鏁帮紝 璇ュ嚱鏁颁綔涓哄師濮嬪嚱鏁癴n鐨勪唬鐞嗭紝 灏嗗畬鎴恌n鐨勪笂涓嬫枃璋冩崲宸ヤ綔銆�
-     * @example
-     * ```javascript
-     *
-     * var name = 'window',
-     *     newTest = null;
-     *
-     * function test () {
-     *     console.log( this.name );
-     * }
-     *
-     * newTest = UE.utils.bind( test, { name: 'object' } );
-     *
-     * //output: object
-     * newTest();
-     *
-     * //output: window
-     * test();
-     *
-     * ```
-     */
-    bind: function(fn, context) {
-      return function() {
-        return fn.apply(context, arguments);
-      };
-    },
-
-    /**
-     * 鍒涘缓寤惰繜鎸囧畾鏃堕棿鍚庢墽琛岀殑鍑芥暟fn
-     * @method defer
-     * @param { Function } fn 闇�瑕佸欢杩熸墽琛岀殑鍑芥暟瀵硅薄
-     * @param { int } delay 寤惰繜鐨勬椂闂达紝 鍗曚綅鏄绉�
-     * @warning 璇ユ柟娉曠殑鏃堕棿鎺у埗鏄笉绮剧‘鐨勶紝浠呬粎鍙兘淇濊瘉鍑芥暟鐨勬墽琛屾槸鍦ㄧ粰瀹氱殑鏃堕棿涔嬪悗锛�
-     *           鑰屼笉鑳戒繚璇佸垰濂藉埌杈惧欢杩熸椂闂存椂鎵ц銆�
-     * @return { Function } 鐩爣鍑芥暟fn鐨勪唬鐞嗗嚱鏁帮紝 鍙湁鎵ц璇ュ嚱鏁版墠鑳借捣鍒板欢鏃舵晥鏋�
-     * @example
-     * ```javascript
-     * var start = 0;
-     *
-     * function test(){
-     *     console.log( new Date() - start );
-     * }
-     *
-     * var testDefer = UE.utils.defer( test, 1000 );
-     * //
-     * start = new Date();
-     * //output: (澶х害鍦�1000姣涔嬪悗杈撳嚭) 1000
-     * testDefer();
-     * ```
-     */
-
-    /**
-     * 鍒涘缓寤惰繜鎸囧畾鏃堕棿鍚庢墽琛岀殑鍑芥暟fn, 濡傛灉鍦ㄥ欢杩熸椂闂村唴鍐嶆鎵ц璇ユ柟娉曪紝 灏嗕細鏍规嵁鎸囧畾鐨別xclusion鐨勫�硷紝
-     * 鍐冲畾鏄惁鍙栨秷鍓嶄竴娆″嚱鏁扮殑鎵ц锛� 濡傛灉exclusion鐨勫�间负true锛� 鍒欏彇娑堟墽琛岋紝鍙嶄箣锛屽皢缁х画鎵ц鍓嶄竴涓柟娉曘��
-     * @method defer
-     * @param { Function } fn 闇�瑕佸欢杩熸墽琛岀殑鍑芥暟瀵硅薄
-     * @param { int } delay 寤惰繜鐨勬椂闂达紝 鍗曚綅鏄绉�
-     * @param { Boolean } exclusion 濡傛灉鍦ㄥ欢杩熸椂闂村唴鍐嶆鎵ц璇ュ嚱鏁帮紝璇ュ�煎皢鍐冲畾鏄惁鍙栨秷鎵ц鍓嶄竴娆″嚱鏁扮殑鎵ц锛�
-     *                     鍊间负true琛ㄧず鍙栨秷鎵ц锛� 鍙嶄箣鍒欏皢鍦ㄦ墽琛屽墠涓�娆″嚱鏁颁箣鍚庢墠鎵ц鏈鍑芥暟璋冪敤銆�
-     * @warning 璇ユ柟娉曠殑鏃堕棿鎺у埗鏄笉绮剧‘鐨勶紝浠呬粎鍙兘淇濊瘉鍑芥暟鐨勬墽琛屾槸鍦ㄧ粰瀹氱殑鏃堕棿涔嬪悗锛�
-     *           鑰屼笉鑳戒繚璇佸垰濂藉埌杈惧欢杩熸椂闂存椂鎵ц銆�
-     * @return { Function } 鐩爣鍑芥暟fn鐨勪唬鐞嗗嚱鏁帮紝 鍙湁鎵ц璇ュ嚱鏁版墠鑳借捣鍒板欢鏃舵晥鏋�
-     * @example
-     * ```javascript
-     *
-     * function test(){
-     *     console.log(1);
-     * }
-     *
-     * var testDefer = UE.utils.defer( test, 1000, true );
-     *
-     * //output: (涓ゆ璋冪敤浠呮湁涓�娆¤緭鍑�) 1
-     * testDefer();
-     * testDefer();
-     * ```
-     */
-    defer: function(fn, delay, exclusion) {
-      var timerID;
-      return function() {
-        if (exclusion) {
-          clearTimeout(timerID);
-        }
-        timerID = setTimeout(fn, delay);
-      };
-    },
-
-    /**
-     * 鑾峰彇鍏冪礌item鍦ㄦ暟缁刟rray涓娆″嚭鐜扮殑浣嶇疆, 濡傛灉鏈壘鍒癷tem锛� 鍒欒繑鍥�-1
-     * @method indexOf
-     * @remind 璇ユ柟娉曠殑鍖归厤杩囩▼浣跨敤鐨勬槸鎭掔瓑鈥�===鈥�
-     * @param { Array } array 闇�瑕佹煡鎵剧殑鏁扮粍瀵硅薄
-     * @param { * } item 闇�瑕佸湪鐩爣鏁扮粍涓煡鎵剧殑鍊�
-     * @return { int } 杩斿洖item鍦ㄧ洰鏍囨暟缁刟rray涓娆″嚭鐜扮殑浣嶇疆锛� 濡傛灉鍦ㄦ暟缁勪腑鏈壘鍒癷tem锛� 鍒欒繑鍥�-1
-     * @example
-     * ```javascript
-     * var item = 1,
-     *     arr = [ 3, 4, 6, 8, 1, 1, 2 ];
-     *
-     * //output: 4
-     * console.log( UE.utils.indexOf( arr, item ) );
-     * ```
-     */
-
-    /**
-     * 鑾峰彇鍏冪礌item鏁扮粍array涓娆″嚭鐜扮殑浣嶇疆, 濡傛灉鏈壘鍒癷tem锛� 鍒欒繑鍥�-1銆傞�氳繃start鐨勫�煎彲浠ユ寚瀹氭悳绱㈢殑璧峰浣嶇疆銆�
-     * @method indexOf
-     * @remind 璇ユ柟娉曠殑鍖归厤杩囩▼浣跨敤鐨勬槸鎭掔瓑鈥�===鈥�
-     * @param { Array } array 闇�瑕佹煡鎵剧殑鏁扮粍瀵硅薄
-     * @param { * } item 闇�瑕佸湪鐩爣鏁扮粍涓煡鎵剧殑鍊�
-     * @param { int } start 鎼滅储鐨勮捣濮嬩綅缃�
-     * @return { int } 杩斿洖item鍦ㄧ洰鏍囨暟缁刟rray涓殑start浣嶇疆涔嬪悗棣栨鍑虹幇鐨勪綅缃紝 濡傛灉鍦ㄦ暟缁勪腑鏈壘鍒癷tem锛� 鍒欒繑鍥�-1
-     * @example
-     * ```javascript
-     * var item = 1,
-     *     arr = [ 3, 4, 6, 8, 1, 2, 8, 3, 2, 1, 1, 4 ];
-     *
-     * //output: 9
-     * console.log( UE.utils.indexOf( arr, item, 5 ) );
-     * ```
-     */
-    indexOf: function(array, item, start) {
-      var index = -1;
-      start = this.isNumber(start) ? start : 0;
-      this.each(array, function(v, i) {
-        if (i >= start && v === item) {
-          index = i;
-          return false;
-        }
-      });
-      return index;
-    },
-
-    /**
-     * 绉婚櫎鏁扮粍array涓墍鏈夌殑鍏冪礌item
-     * @method removeItem
-     * @param { Array } array 瑕佺Щ闄ゅ厓绱犵殑鐩爣鏁扮粍
-     * @param { * } item 灏嗚琚Щ闄ょ殑鍏冪礌
-     * @remind 璇ユ柟娉曠殑鍖归厤杩囩▼浣跨敤鐨勬槸鎭掔瓑鈥�===鈥�
-     * @example
-     * ```javascript
-     * var arr = [ 4, 5, 7, 1, 3, 4, 6 ];
-     *
-     * UE.utils.removeItem( arr, 4 );
-     * //output: [ 5, 7, 1, 3, 6 ]
-     * console.log( arr );
-     *
-     * ```
-     */
-    removeItem: function(array, item) {
-      for (var i = 0, l = array.length; i < l; i++) {
-        if (array[i] === item) {
-          array.splice(i, 1);
-          i--;
-        }
-      }
-    },
-
-    /**
-     * 鍒犻櫎瀛楃涓瞫tr鐨勯灏剧┖鏍�
-     * @method trim
-     * @param { String } str 闇�瑕佸垹闄ら灏剧┖鏍肩殑瀛楃涓�
-     * @return { String } 鍒犻櫎浜嗛灏剧殑绌烘牸鍚庣殑瀛楃涓�
-     * @example
-     * ```javascript
-     *
-     * var str = " UEdtior ";
-     *
-     * //output: 9
-     * console.log( str.length );
-     *
-     * //output: 7
-     * console.log( UE.utils.trim( " UEdtior " ).length );
-     *
-     * //output: 9
-     * console.log( str.length );
-     *
-     *  ```
-     */
-    trim: function(str) {
-      return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, '');
-    },
-
-    /**
-     * 灏嗗瓧绗︿覆str浠�','鍒嗛殧鎴愭暟缁勫悗锛屽皢璇ユ暟缁勮浆鎹㈡垚鍝堝笇瀵硅薄锛� 鍏剁敓鎴愮殑hash瀵硅薄鐨刱ey涓烘暟缁勪腑鐨勫厓绱狅紝 value涓�1
-     * @method listToMap
-     * @warning 璇ユ柟娉曞湪鐢熸垚鐨刪ash瀵硅薄涓紝浼氫负姣忎竴涓猭ey鍚屾椂鐢熸垚涓�涓彟涓�涓叏澶у啓鐨刱ey銆�
-     * @param { String } str 璇ュ瓧绗︿覆灏嗚浠�','鍒嗗壊涓烘暟缁勶紝 鐒跺悗杩涜杞寲
-     * @return { Object } 杞寲涔嬪悗鐨刪ash瀵硅薄
-     * @example
-     * ```javascript
-     *
-     * //output: Object {UEdtior: 1, UEDTIOR: 1, Hello: 1, HELLO: 1}
-     * console.log( UE.utils.listToMap( 'UEdtior,Hello' ) );
-     *
-     * ```
-     */
-
-    /**
-     * 灏嗗瓧绗︿覆鏁扮粍杞崲鎴愬搱甯屽璞★紝 鍏剁敓鎴愮殑hash瀵硅薄鐨刱ey涓烘暟缁勪腑鐨勫厓绱狅紝 value涓�1
-     * @method listToMap
-     * @warning 璇ユ柟娉曞湪鐢熸垚鐨刪ash瀵硅薄涓紝浼氫负姣忎竴涓猭ey鍚屾椂鐢熸垚涓�涓彟涓�涓叏澶у啓鐨刱ey銆�
-     * @param { Array } arr 瀛楃涓叉暟缁�
-     * @return { Object } 杞寲涔嬪悗鐨刪ash瀵硅薄
-     * @example
-     * ```javascript
-     *
-     * //output: Object {UEdtior: 1, UEDTIOR: 1, Hello: 1, HELLO: 1}
-     * console.log( UE.utils.listToMap( [ 'UEdtior', 'Hello' ] ) );
-     *
-     * ```
-     */
-    listToMap: function(list) {
-      if (!list) return {};
-      list = utils.isArray(list) ? list : list.split(',');
-      for (var i = 0, ci, obj = {}; ci = list[i++];) {
-        obj[ci.toUpperCase()] = obj[ci] = 1;
-      }
-      return obj;
-    },
-
-    /**
-     * 灏唖tr涓殑html绗﹀彿杞箟,灏嗚浆涔夆��'锛�&锛�<锛�"锛�>鈥濅簲涓瓧绗�
-     * @method unhtml
-     * @param { String } str 闇�瑕佽浆涔夌殑瀛楃涓�
-     * @return { String } 杞箟鍚庣殑瀛楃涓�
-     * @example
-     * ```javascript
-     * var html = '<body>&</body>';
-     *
-     * //output: &lt;body&gt;&amp;&lt;/body&gt;
-     * console.log( UE.utils.unhtml( html ) );
-     *
-     * ```
-     */
-    unhtml: function(str, reg) {
-      return str ? str.replace(reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g, function(a, b) {
-        if (b) {
-          return a;
-        } else {
-          return {
-            '<': '&lt;',
-            '&': '&amp;',
-            '"': '&quot;',
-            '>': '&gt;',
-            "'": '&#39;'
-          } [a]
-        }
-
-      }) : '';
-    },
-    /**
-     * 灏唘rl涓殑html瀛楃杞箟锛� 浠呰浆涔�  ', ", <, > 鍥涗釜瀛楃
-     * @param  { String } str 闇�瑕佽浆涔夌殑瀛楃涓�
-     * @param  { RegExp } reg 鑷畾涔夌殑姝e垯
-     * @return { String }     杞箟鍚庣殑瀛楃涓�
-     */
-    unhtmlForUrl: function(str, reg) {
-      return str ? str.replace(reg || /[<">']/g, function(a) {
-        return {
-          '<': '&lt;',
-          '&': '&amp;',
-          '"': '&quot;',
-          '>': '&gt;',
-          "'": '&#39;'
-        } [a]
-
-      }) : '';
-    },
-
-    /**
-     * 灏唖tr涓殑杞箟瀛楃杩樺師鎴恏tml瀛楃
-     * @see UE.utils.unhtml(String);
-     * @method html
-     * @param { String } str 闇�瑕侀�嗚浆涔夌殑瀛楃涓�
-     * @return { String } 閫嗚浆涔夊悗鐨勫瓧绗︿覆
-     * @example
-     * ```javascript
-     *
-     * var str = '&lt;body&gt;&amp;&lt;/body&gt;';
-     *
-     * //output: <body>&</body>
-     * console.log( UE.utils.html( str ) );
-     *
-     * ```
-     */
-    html: function(str) {
-      return str ? str.replace(/&((g|l|quo)t|amp|#39|nbsp);/g, function(m) {
-        return {
-          '&lt;': '<',
-          '&amp;': '&',
-          '&quot;': '"',
-          '&gt;': '>',
-          '&#39;': "'",
-          '&nbsp;': ' '
-        } [m]
-      }) : '';
-    },
-
-    /**
-     * 灏哻ss鏍峰紡杞崲涓洪┘宄扮殑褰㈠紡
-     * @method cssStyleToDomStyle
-     * @param { String } cssName 闇�瑕佽浆鎹㈢殑css鏍峰紡鍚�
-     * @return { String } 杞崲鎴愰┘宄板舰寮忓悗鐨刢ss鏍峰紡鍚�
-     * @example
-     * ```javascript
-     *
-     * var str = 'border-top';
-     *
-     * //output: borderTop
-     * console.log( UE.utils.cssStyleToDomStyle( str ) );
-     *
-     * ```
-     */
-    cssStyleToDomStyle: function() {
-      var test = document.createElement('div').style,
-        cache = {
-          'float': test.cssFloat != undefined ? 'cssFloat' : test.styleFloat != undefined ? 'styleFloat' : 'float'
-        };
-
-      return function(cssName) {
-        return cache[cssName] || (cache[cssName] = cssName.toLowerCase().replace(/-./g, function(match) {
-          return match.charAt(1).toUpperCase();
-        }));
-      };
-    }(),
-
-    /**
-     * 鍔ㄦ�佸姞杞芥枃浠跺埌doc涓�
-     * @method loadFile
-     * @param { DomDocument } document 闇�瑕佸姞杞借祫婧愭枃浠剁殑鏂囨。瀵硅薄
-     * @param { Object } options 鍔犺浇璧勬簮鏂囦欢鐨勫睘鎬ч泦鍚堬紝 鍙栧�艰鍙傝�冧唬鐮佺ず渚�
-     * @example
-     * ```javascript
-     *
-     * UE.utils.loadFile( document, {
-     *     src:"test.js",
-     *     tag:"script",
-     *     type:"text/javascript",
-     *     defer:"defer"
-     * } );
-     *
-     * ```
-     */
-
-    /**
-     * 鍔ㄦ�佸姞杞芥枃浠跺埌doc涓紝鍔犺浇鎴愬姛鍚庢墽琛岀殑鍥炶皟鍑芥暟fn
-     * @method loadFile
-     * @param { DomDocument } document 闇�瑕佸姞杞借祫婧愭枃浠剁殑鏂囨。瀵硅薄
-     * @param { Object } options 鍔犺浇璧勬簮鏂囦欢鐨勫睘鎬ч泦鍚堬紝 璇ラ泦鍚堟敮鎸佺殑鍊兼槸script鏍囩鍜宻tyle鏍囩鏀寔鐨勬墍鏈夊睘鎬с��
-     * @param { Function } fn 璧勬簮鏂囦欢鍔犺浇鎴愬姛涔嬪悗鎵ц鐨勫洖璋�
-     * @warning 瀵逛簬鍦ㄥ悓涓�涓枃妗d腑澶氭鍔犺浇鍚屼竴URL鐨勬枃浠讹紝 璇ユ柟娉曚細鍦ㄧ涓�娆″姞杞戒箣鍚庣紦瀛樿璇锋眰锛�
-     *           鍦ㄦ涔嬪悗鐨勬墍鏈夊悓涓�URL鐨勮姹傦紝 灏嗕細鐩存帴瑙﹀彂鍥炶皟銆�
-     * @example
-     * ```javascript
-     *
-     * UE.utils.loadFile( document, {
-     *     src:"test.js",
-     *     tag:"script",
-     *     type:"text/javascript",
-     *     defer:"defer"
-     * }, function () {
-     *     console.log('鍔犺浇鎴愬姛');
-     * } );
-     *
-     * ```
-     */
-    loadFile: function() {
-      var tmpList = [];
-
-      function getItem(doc, obj) {
-        try {
-          for (var i = 0, ci; ci = tmpList[i++];) {
-            if (ci.doc === doc && ci.url == (obj.src || obj.href)) {
-              return ci;
-            }
-          }
-        } catch (e) {
-          return null;
-        }
-
-      }
-
-      return function(doc, obj, fn) {
-        var item = getItem(doc, obj);
-        if (item) {
-          if (item.ready) {
-            fn && fn();
-          } else {
-            item.funs.push(fn)
-          }
-          return;
-        }
-        tmpList.push({
-          doc: doc,
-          url: obj.src || obj.href,
-          funs: [fn]
-        });
-        if (!doc.body) {
-          var html = [];
-          for (var p in obj) {
-            if (p == 'tag') continue;
-            html.push(p + '="' + obj[p] + '"')
-          }
-          doc.write('<' + obj.tag + ' ' + html.join(' ') + ' ></' + obj.tag + '>');
-          return;
-        }
-        if (obj.id && doc.getElementById(obj.id)) {
-          return;
-        }
-        var element = doc.createElement(obj.tag);
-        delete obj.tag;
-        for (var p in obj) {
-          element.setAttribute(p, obj[p]);
-        }
-        element.onload = element.onreadystatechange = function() {
-          if (!this.readyState || /loaded|complete/.test(this.readyState)) {
-            item = getItem(doc, obj);
-            if (item.funs.length > 0) {
-              item.ready = 1;
-              for (var fi; fi = item.funs.pop();) {
-                fi();
-              }
-            }
-            element.onload = element.onreadystatechange = null;
-          }
-        };
-        element.onerror = function() {
-          throw Error('The load ' + (obj.href || obj.src) +
-            ' fails,check the url settings of file ueditor.config.js ')
-        };
-        doc.getElementsByTagName("head")[0].appendChild(element);
-      }
-    }(),
-
-    /**
-     * 鍒ゆ柇obj瀵硅薄鏄惁涓虹┖
-     * @method isEmptyObject
-     * @param { * } obj 闇�瑕佸垽鏂殑瀵硅薄
-     * @remind 濡傛灉鍒ゆ柇鐨勫璞℃槸NULL锛� 灏嗙洿鎺ヨ繑鍥瀟rue锛� 濡傛灉鏄暟缁勪笖涓虹┖锛� 杩斿洖true锛� 濡傛灉鏄瓧绗︿覆锛� 涓斿瓧绗︿覆涓虹┖锛�
-     *          杩斿洖true锛� 濡傛灉鏄櫘閫氬璞★紝 涓旇瀵硅薄娌℃湁浠讳綍瀹炰緥灞炴�э紝 杩斿洖true
-     * @return { Boolean } 瀵硅薄鏄惁涓虹┖
-     * @example
-     * ```javascript
-     *
-     * //output: true
-     * console.log( UE.utils.isEmptyObject( {} ) );
-     *
-     * //output: true
-     * console.log( UE.utils.isEmptyObject( [] ) );
-     *
-     * //output: true
-     * console.log( UE.utils.isEmptyObject( "" ) );
-     *
-     * //output: false
-     * console.log( UE.utils.isEmptyObject( { key: 1 } ) );
-     *
-     * //output: false
-     * console.log( UE.utils.isEmptyObject( [1] ) );
-     *
-     * //output: false
-     * console.log( UE.utils.isEmptyObject( "1" ) );
-     *
-     * ```
-     */
-    isEmptyObject: function(obj) {
-      if (obj == null) return true;
-      if (this.isArray(obj) || this.isString(obj)) return obj.length === 0;
-      for (var key in obj)
-        if (obj.hasOwnProperty(key)) return false;
-      return true;
-    },
-
-    /**
-     * 鎶妑gb鏍煎紡鐨勯鑹插�艰浆鎹㈡垚16杩涘埗鏍煎紡
-     * @method fixColor
-     * @param { String } rgb鏍煎紡鐨勯鑹插��
-     * @param { String }
-     * @example
-     * rgb(255,255,255)  => "#ffffff"
-     */
-    fixColor: function(name, value) {
-      if (/color/i.test(name) && /rgba?/.test(value)) {
-        var array = value.split(",");
-        if (array.length > 3)
-          return "";
-        value = "#";
-        for (var i = 0, color; color = array[i++];) {
-          color = parseInt(color.replace(/[^\d]/gi, ''), 10).toString(16);
-          value += color.length == 1 ? "0" + color : color;
-        }
-        value = value.toUpperCase();
-      }
-      return value;
-    },
-    /**
-     * 鍙拡瀵筨order,padding,margin鍋氫簡澶勭悊锛屽洜涓烘�ц兘闂
-     * @public
-     * @function
-     * @param {String}    val style瀛楃涓�
-     */
-    optCss: function(val) {
-      var padding, margin, border;
-      val = val.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi, function(str, key, name, val) {
-        if (val.split(' ').length == 1) {
-          switch (key) {
-            case 'padding':
-              !padding && (padding = {});
-              padding[name] = val;
-              return '';
-            case 'margin':
-              !margin && (margin = {});
-              margin[name] = val;
-              return '';
-            case 'border':
-              return val == 'initial' ? '' : str;
-          }
-        }
-        return str;
-      });
-
-      function opt(obj, name) {
-        if (!obj) {
-          return '';
-        }
-        var t = obj.top,
-          b = obj.bottom,
-          l = obj.left,
-          r = obj.right,
-          val = '';
-        if (!t || !l || !b || !r) {
-          for (var p in obj) {
-            val += ';' + name + '-' + p + ':' + obj[p] + ';';
-          }
-        } else {
-          val += ';' + name + ':' +
-            (t == b && b == l && l == r ? t :
-              t == b && l == r ? (t + ' ' + l) :
-              l == r ? (t + ' ' + l + ' ' + b) : (t + ' ' + r + ' ' + b + ' ' + l)) + ';'
-        }
-        return val;
-      }
-
-      val += opt(padding, 'padding') + opt(margin, 'margin');
-      return val.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/, '').replace(/;([ \n\r\t]+)|\1;/g, ';')
-        .replace(/(&((l|g)t|quot|#39))?;{2,}/g, function(a, b) {
-          return b ? b + ";;" : ';'
-        });
-    },
-
-    /**
-     * 鍏嬮殕瀵硅薄
-     * @method clone
-     * @param { Object } source 婧愬璞�
-     * @return { Object } source鐨勪竴涓壇鏈�
-     */
-
-    /**
-     * 娣卞害鍏嬮殕瀵硅薄锛屽皢source鐨勫睘鎬у厠闅嗗埌target瀵硅薄锛� 浼氳鐩杢arget閲嶅悕鐨勫睘鎬с��
-     * @method clone
-     * @param { Object } source 婧愬璞�
-     * @param { Object } target 鐩爣瀵硅薄
-     * @return { Object } 闄勫姞浜唖ource瀵硅薄鎵�鏈夊睘鎬х殑target瀵硅薄
-     */
-    clone: function(source, target) {
-      var tmp;
-      target = target || {};
-      for (var i in source) {
-        if (source.hasOwnProperty(i)) {
-          tmp = source[i];
-          if (typeof tmp == 'object') {
-            target[i] = utils.isArray(tmp) ? [] : {};
-            utils.clone(source[i], target[i])
-          } else {
-            target[i] = tmp;
-          }
-        }
-      }
-      return target;
-    },
-
-    /**
-     * 鎶奵m锛弍t涓哄崟浣嶇殑鍊艰浆鎹负px涓哄崟浣嶇殑鍊�
-     * @method transUnitToPx
-     * @param { String } 寰呰浆鎹㈢殑甯﹀崟浣嶇殑瀛楃涓�
-     * @return { String } 杞崲涓簆x涓鸿閲忓崟浣嶇殑鍊肩殑瀛楃涓�
-     * @example
-     * ```javascript
-     *
-     * //output: 500px
-     * console.log( UE.utils.transUnitToPx( '20cm' ) );
-     *
-     * //output: 27px
-     * console.log( UE.utils.transUnitToPx( '20pt' ) );
-     *
-     * ```
-     */
-    transUnitToPx: function(val) {
-      if (!/(pt|cm)/.test(val)) {
-        return val
-      }
-      var unit;
-      val.replace(/([\d.]+)(\w+)/, function(str, v, u) {
-        val = v;
-        unit = u;
-      });
-      switch (unit) {
-        case 'cm':
-          val = parseFloat(val) * 25;
-          break;
-        case 'pt':
-          val = Math.round(parseFloat(val) * 96 / 72);
-      }
-      return val + (val ? 'px' : '');
-    },
-
-    /**
-     * 鍦╠om鏍憆eady涔嬪悗鎵ц缁欏畾鐨勫洖璋冨嚱鏁�
-     * @method domReady
-     * @remind 濡傛灉鍦ㄦ墽琛岃鏂规硶鐨勬椂鍊欙紝 dom鏍戝凡缁弐eady锛� 閭d箞鍥炶皟鍑芥暟灏嗙珛鍒绘墽琛�
-     * @param { Function } fn dom鏍憆eady涔嬪悗鐨勫洖璋冨嚱鏁�
-     * @example
-     * ```javascript
-     *
-     * UE.utils.domReady( function () {
-     *
-     *     console.log('123');
-     *
-     * } );
-     *
-     * ```
-     */
-    domReady: function() {
-
-      var fnArr = [];
-
-      function doReady(doc) {
-        //纭繚onready鍙墽琛屼竴娆�
-        doc.isReady = true;
-        for (var ci; ci = fnArr.pop(); ci()) {}
-      }
-
-      return function(onready, win) {
-        win = win || window;
-        var doc = win.document;
-        onready && fnArr.push(onready);
-        if (doc.readyState === "complete") {
-          doReady(doc);
-        } else {
-          doc.isReady && doReady(doc);
-          if (browser.ie && browser.version != 11) {
-            (function() {
-              if (doc.isReady) return;
-              try {
-                doc.documentElement.doScroll("left");
-              } catch (error) {
-                setTimeout(arguments.callee, 0);
-                return;
-              }
-              doReady(doc);
-            })();
-            win.attachEvent('onload', function() {
-              doReady(doc)
-            });
-          } else {
-            doc.addEventListener("DOMContentLoaded", function() {
-              doc.removeEventListener("DOMContentLoaded", arguments.callee, false);
-              doReady(doc);
-            }, false);
-            win.addEventListener('load', function() {
-              doReady(doc)
-            }, false);
-          }
-        }
-
-      }
-    }(),
-
-    /**
-     * 鍔ㄦ�佹坊鍔燾ss鏍峰紡
-     * @method cssRule
-     * @param { String } 鑺傜偣鍚嶇О
-     * @grammar UE.utils.cssRule('娣诲姞鐨勬牱寮忕殑鑺傜偣鍚嶇О',['鏍峰紡'锛�'鏀惧埌鍝釜document涓�'])
-     * @grammar UE.utils.cssRule('body','body{background:#ccc}') => null  //缁檅ody娣诲姞鑳屾櫙棰滆壊
-     * @grammar UE.utils.cssRule('body') =>鏍峰紡鐨勫瓧绗︿覆  //鍙栧緱key鍊间负body鐨勬牱寮忕殑鍐呭,濡傛灉娌℃湁鎵惧埌key鍊煎厛鍏崇殑鏍峰紡灏嗚繑鍥炵┖锛屼緥濡傚垰鎵嶉偅涓儗鏅鑹诧紝灏嗚繑鍥� body{background:#ccc}
-     * @grammar UE.utils.cssRule('body',document) => 杩斿洖鎸囧畾key鐨勬牱寮忥紝骞朵笖鎸囧畾鏄摢涓猟ocument
-     * @grammar UE.utils.cssRule('body','') =>null //娓呯┖缁欏畾鐨刱ey鍊肩殑鑳屾櫙棰滆壊
-     */
-    cssRule: browser.ie && browser.version != 11 ? function(key, style, doc) {
-      var indexList, index;
-      if (style === undefined || style && style.nodeType && style.nodeType == 9) {
-        //鑾峰彇鏍峰紡
-        doc = style && style.nodeType && style.nodeType == 9 ? style : (doc || document);
-        indexList = doc.indexList || (doc.indexList = {});
-        index = indexList[key];
-        if (index !== undefined) {
-          return doc.styleSheets[index].cssText
-        }
-        return undefined;
-      }
-      doc = doc || document;
-      indexList = doc.indexList || (doc.indexList = {});
-      index = indexList[key];
-      //娓呴櫎鏍峰紡
-      if (style === '') {
-        if (index !== undefined) {
-          doc.styleSheets[index].cssText = '';
-          delete indexList[key];
-          return true
-        }
-        return false;
-      }
-
-      //娣诲姞鏍峰紡
-      if (index !== undefined) {
-        sheetStyle = doc.styleSheets[index];
-      } else {
-        sheetStyle = doc.createStyleSheet('', index = doc.styleSheets.length);
-        indexList[key] = index;
-      }
-      sheetStyle.cssText = style;
-    } : function(key, style, doc) {
-      var head, node;
-      if (style === undefined || style && style.nodeType && style.nodeType == 9) {
-        //鑾峰彇鏍峰紡
-        doc = style && style.nodeType && style.nodeType == 9 ? style : (doc || document);
-        node = doc.getElementById(key);
-        return node ? node.innerHTML : undefined;
-      }
-      doc = doc || document;
-      node = doc.getElementById(key);
-
-      //娓呴櫎鏍峰紡
-      if (style === '') {
-        if (node) {
-          node.parentNode.removeChild(node);
-          return true
-        }
-        return false;
-      }
-
-      //娣诲姞鏍峰紡
-      if (node) {
-        node.innerHTML = style;
-      } else {
-        node = doc.createElement('style');
-        node.id = key;
-        node.innerHTML = style;
-        doc.getElementsByTagName('head')[0].appendChild(node);
-      }
-    },
-    sort: function(array, compareFn) {
-      compareFn = compareFn || function(item1, item2) {
-        return item1.localeCompare(item2);
-      };
-      for (var i = 0, len = array.length; i < len; i++) {
-        for (var j = i, length = array.length; j < length; j++) {
-          if (compareFn(array[i], array[j]) > 0) {
-            var t = array[i];
-            array[i] = array[j];
-            array[j] = t;
-          }
-        }
-      }
-      return array;
-    },
-    serializeParam: function(json) {
-      var strArr = [];
-      for (var i in json) {
-        //蹇界暐榛樿鐨勫嚑涓弬鏁�
-        if (i == "method" || i == "timeout" || i == "async") continue;
-        //浼犻�掕繃鏉ョ殑瀵硅薄鍜屽嚱鏁颁笉鍦ㄦ彁浜や箣鍒�
-        if (!((typeof json[i]).toLowerCase() == "function" || (typeof json[i]).toLowerCase() == "object")) {
-          strArr.push(encodeURIComponent(i) + "=" + encodeURIComponent(json[i]));
-        } else if (utils.isArray(json[i])) {
-          //鏀寔浼犳暟缁勫唴瀹�
-          for (var j = 0; j < json[i].length; j++) {
-            strArr.push(encodeURIComponent(i) + "[]=" + encodeURIComponent(json[i][j]));
-          }
-        }
-      }
-      return strArr.join("&");
-    },
-    formatUrl: function(url) {
-      var u = url.replace(/&&/g, '&');
-      u = u.replace(/\?&/g, '?');
-      u = u.replace(/&$/g, '');
-      u = u.replace(/&#/g, '#');
-      u = u.replace(/&+/g, '&');
-      return u;
-    },
-    isCrossDomainUrl: function(url) {
-      var a = document.createElement('a');
-      a.href = url;
-      if (browser.ie) {
-        a.href = a.href;
-      }
-      return !(a.protocol == location.protocol && a.hostname == location.hostname &&
-        (a.port == location.port || (a.port == '80' && location.port == '') || (a.port == '' && location.port ==
-          '80')));
-    },
-    clearEmptyAttrs: function(obj) {
-      for (var p in obj) {
-        if (obj[p] === '') {
-          delete obj[p]
-        }
-      }
-      return obj;
-    },
-    str2json: function(s) {
-
-      if (!utils.isString(s)) return null;
-      if (window.JSON) {
-        return JSON.parse(s);
-      } else {
-        return (new Function("return " + utils.trim(s || '')))();
-      }
-
-    },
-    json2str: (function() {
-
-      if (window.JSON) {
-
-        return JSON.stringify;
-
-      } else {
-
-        var escapeMap = {
-          "\b": '\\b',
-          "\t": '\\t',
-          "\n": '\\n',
-          "\f": '\\f',
-          "\r": '\\r',
-          '"': '\\"',
-          "\\": '\\\\'
-        };
-
-        function encodeString(source) {
-          if (/["\\\x00-\x1f]/.test(source)) {
-            source = source.replace(
-              /["\\\x00-\x1f]/g,
-              function(match) {
-                var c = escapeMap[match];
-                if (c) {
-                  return c;
-                }
-                c = match.charCodeAt();
-                return "\\u00" +
-                  Math.floor(c / 16).toString(16) +
-                  (c % 16).toString(16);
-              });
-          }
-          return '"' + source + '"';
-        }
-
-        function encodeArray(source) {
-          var result = ["["],
-            l = source.length,
-            preComma, i, item;
-
-          for (i = 0; i < l; i++) {
-            item = source[i];
-
-            switch (typeof item) {
-              case "undefined":
-              case "function":
-              case "unknown":
-                break;
-              default:
-                if (preComma) {
-                  result.push(',');
-                }
-                result.push(utils.json2str(item));
-                preComma = 1;
-            }
-          }
-          result.push("]");
-          return result.join("");
-        }
-
-        function pad(source) {
-          return source < 10 ? '0' + source : source;
-        }
-
-        function encodeDate(source) {
-          return '"' + source.getFullYear() + "-" +
-            pad(source.getMonth() + 1) + "-" +
-            pad(source.getDate()) + "T" +
-            pad(source.getHours()) + ":" +
-            pad(source.getMinutes()) + ":" +
-            pad(source.getSeconds()) + '"';
-        }
-
-        return function(value) {
-          switch (typeof value) {
-            case 'undefined':
-              return 'undefined';
-
-            case 'number':
-              return isFinite(value) ? String(value) : "null";
-
-            case 'string':
-              return encodeString(value);
-
-            case 'boolean':
-              return String(value);
-
-            default:
-              if (value === null) {
-                return 'null';
-              } else if (utils.isArray(value)) {
-                return encodeArray(value);
-              } else if (utils.isDate(value)) {
-                return encodeDate(value);
-              } else {
-                var result = ['{'],
-                  encode = utils.json2str,
-                  preComma,
-                  item;
-
-                for (var key in value) {
-                  if (Object.prototype.hasOwnProperty.call(value, key)) {
-                    item = value[key];
-                    switch (typeof item) {
-                      case 'undefined':
-                      case 'unknown':
-                      case 'function':
-                        break;
-                      default:
-                        if (preComma) {
-                          result.push(',');
-                        }
-                        preComma = 1;
-                        result.push(encode(key) + ':' + encode(item));
-                    }
-                  }
-                }
-                result.push('}');
-                return result.join('');
-              }
-          }
-        };
-      }
-
-    })()
-
-  };
-  /**
-   * 鍒ゆ柇缁欏畾鐨勫璞℃槸鍚︽槸瀛楃涓�
-   * @method isString
-   * @param { * } object 闇�瑕佸垽鏂殑瀵硅薄
-   * @return { Boolean } 缁欏畾鐨勫璞℃槸鍚︽槸瀛楃涓�
-   */
-
-  /**
-   * 鍒ゆ柇缁欏畾鐨勫璞℃槸鍚︽槸鏁扮粍
-   * @method isArray
-   * @param { * } object 闇�瑕佸垽鏂殑瀵硅薄
-   * @return { Boolean } 缁欏畾鐨勫璞℃槸鍚︽槸鏁扮粍
-   */
-
-  /**
-   * 鍒ゆ柇缁欏畾鐨勫璞℃槸鍚︽槸涓�涓狥unction
-   * @method isFunction
-   * @param { * } object 闇�瑕佸垽鏂殑瀵硅薄
-   * @return { Boolean } 缁欏畾鐨勫璞℃槸鍚︽槸Function
-   */
-
-  /**
-   * 鍒ゆ柇缁欏畾鐨勫璞℃槸鍚︽槸Number
-   * @method isNumber
-   * @param { * } object 闇�瑕佸垽鏂殑瀵硅薄
-   * @return { Boolean } 缁欏畾鐨勫璞℃槸鍚︽槸Number
-   */
-
-  /**
-   * 鍒ゆ柇缁欏畾鐨勫璞℃槸鍚︽槸涓�涓鍒欒〃杈惧紡
-   * @method isRegExp
-   * @param { * } object 闇�瑕佸垽鏂殑瀵硅薄
-   * @return { Boolean } 缁欏畾鐨勫璞℃槸鍚︽槸姝e垯琛ㄨ揪寮�
-   */
-
-  /**
-   * 鍒ゆ柇缁欏畾鐨勫璞℃槸鍚︽槸涓�涓櫘閫氬璞�
-   * @method isObject
-   * @param { * } object 闇�瑕佸垽鏂殑瀵硅薄
-   * @return { Boolean } 缁欏畾鐨勫璞℃槸鍚︽槸鏅�氬璞�
-   */
-  utils.each(['String', 'Function', 'Array', 'Number', 'RegExp', 'Object', 'Date'], function(v) {
-    UE.utils['is' + v] = function(obj) {
-      return Object.prototype.toString.apply(obj) == '[object ' + v + ']';
-    }
-  });
-
-
-  // core/EventBase.js
-  /**
-   * UE閲囩敤鐨勪簨浠跺熀绫�
-   * @file
-   * @module UE
-   * @class EventBase
-   * @since 1.2.6.1
-   */
-
-  /**
-   * UEditor鍏敤绌洪棿锛孶Editor鎵�鏈夌殑鍔熻兘閮芥寕杞藉湪璇ョ┖闂翠笅
-   * @unfile
-   * @module UE
-   */
-
-  /**
-   * UE閲囩敤鐨勪簨浠跺熀绫伙紝缁ф壙姝ょ被鐨勫搴旂被灏嗚幏鍙朼ddListener,removeListener,fireEvent鏂规硶銆�
-   * 鍦║E涓紝Editor浠ュ強鎵�鏈塽i瀹炰緥閮界户鎵夸簡璇ョ被锛屾晠鍙互鍦ㄥ搴旂殑ui瀵硅薄浠ュ強editor瀵硅薄涓婁娇鐢ㄤ笂杩版柟娉曘��
-   * @unfile
-   * @module UE
-   * @class EventBase
-   */
-
-  /**
-   * 閫氳繃姝ゆ瀯閫犲櫒锛屽瓙绫诲彲浠ョ户鎵縀ventBase鑾峰彇浜嬩欢鐩戝惉鐨勬柟娉�
-   * @constructor
-   * @example
-   * ```javascript
-   * UE.EventBase.call(editor);
-   * ```
-   */
-  var EventBase = UE.EventBase = function() {};
-
-  EventBase.prototype = {
-
-    /**
-     * 娉ㄥ唽浜嬩欢鐩戝惉鍣�
-     * @method addListener
-     * @param { String } types 鐩戝惉鐨勪簨浠跺悕绉帮紝鍚屾椂鐩戝惉澶氫釜浜嬩欢浣跨敤绌烘牸鍒嗛殧
-     * @param { Function } fn 鐩戝惉鐨勪簨浠惰瑙﹀彂鏃讹紝浼氭墽琛岃鍥炶皟鍑芥暟
-     * @waining 浜嬩欢琚Е鍙戞椂锛岀洃鍚殑鍑芥暟鍋囧杩斿洖鐨勫�兼亽绛変簬true锛屽洖璋冨嚱鏁扮殑闃熷垪涓悗闈㈢殑鍑芥暟灏嗕笉鎵ц
-     * @example
-     * ```javascript
-     * editor.addListener('selectionchange',function(){
-     *      console.log("閫夊尯宸茬粡鍙樺寲锛�");
-     * })
-     * editor.addListener('beforegetcontent aftergetcontent',function(type){
-     *         if(type == 'beforegetcontent'){
-     *             //do something
-     *         }else{
-     *             //do something
-     *         }
-     *         console.log(this.getContent) // this鏄敞鍐岀殑浜嬩欢鐨勭紪杈戝櫒瀹炰緥
-     * })
-     * ```
-     * @see UE.EventBase:fireEvent(String)
-     */
-    addListener: function(types, listener) {
-      types = utils.trim(types).split(/\s+/);
-      for (var i = 0, ti; ti = types[i++];) {
-        getListener(this, ti, true).push(listener);
-      }
-    },
-
-    on: function(types, listener) {
-      return this.addListener(types, listener);
-    },
-    off: function(types, listener) {
-      return this.removeListener(types, listener)
-    },
-    trigger: function() {
-      return this.fireEvent.apply(this, arguments);
-    },
-    /**
-     * 绉婚櫎浜嬩欢鐩戝惉鍣�
-     * @method removeListener
-     * @param { String } types 绉婚櫎鐨勪簨浠跺悕绉帮紝鍚屾椂绉婚櫎澶氫釜浜嬩欢浣跨敤绌烘牸鍒嗛殧
-     * @param { Function } fn 绉婚櫎鐩戝惉浜嬩欢鐨勫嚱鏁板紩鐢�
-     * @example
-     * ```javascript
-     * //changeCallback涓烘柟娉曚綋
-     * editor.removeListener("selectionchange",changeCallback);
-     * ```
-     */
-    removeListener: function(types, listener) {
-      types = utils.trim(types).split(/\s+/);
-      for (var i = 0, ti; ti = types[i++];) {
-        utils.removeItem(getListener(this, ti) || [], listener);
-      }
-    },
-
-    /**
-     * 瑙﹀彂浜嬩欢
-     * @method fireEvent
-     * @param { String } types 瑙﹀彂鐨勪簨浠跺悕绉帮紝鍚屾椂瑙﹀彂澶氫釜浜嬩欢浣跨敤绌烘牸鍒嗛殧
-     * @remind 璇ユ柟娉曚細瑙﹀彂addListener
-     * @return { * } 杩斿洖瑙﹀彂浜嬩欢鐨勯槦鍒椾腑锛屾渶鍚庢墽琛岀殑鍥炶皟鍑芥暟鐨勮繑鍥炲��
-     * @example
-     * ```javascript
-     * editor.fireEvent("selectionchange");
-     * ```
-     */
-
-    /**
-     * 瑙﹀彂浜嬩欢
-     * @method fireEvent
-     * @param { String } types 瑙﹀彂鐨勪簨浠跺悕绉帮紝鍚屾椂瑙﹀彂澶氫釜浜嬩欢浣跨敤绌烘牸鍒嗛殧
-     * @param { *... } options 鍙�夊弬鏁帮紝鍙互浼犲叆涓�涓垨澶氫釜鍙傛暟锛屼細浼犵粰浜嬩欢瑙﹀彂鐨勫洖璋冨嚱鏁�
-     * @return { * } 杩斿洖瑙﹀彂浜嬩欢鐨勯槦鍒椾腑锛屾渶鍚庢墽琛岀殑鍥炶皟鍑芥暟鐨勮繑鍥炲��
-     * @example
-     * ```javascript
-     *
-     * editor.addListener( "selectionchange", function ( type, arg1, arg2 ) {
-     *
-     *     console.log( arg1 + " " + arg2 );
-     *
-     * } );
-     *
-     * //瑙﹀彂selectionchange浜嬩欢锛� 浼氭墽琛屼笂闈㈢殑浜嬩欢鐩戝惉鍣�
-     * //output: Hello World
-     * editor.fireEvent("selectionchange", "Hello", "World");
-     * ```
-     */
-    fireEvent: function() {
-      var types = arguments[0];
-      types = utils.trim(types).split(' ');
-      for (var i = 0, ti; ti = types[i++];) {
-        var listeners = getListener(this, ti),
-          r, t, k;
-        if (listeners) {
-          k = listeners.length;
-          while (k--) {
-            if (!listeners[k]) continue;
-            t = listeners[k].apply(this, arguments);
-            if (t === true) {
-              return t;
-            }
-            if (t !== undefined) {
-              r = t;
-            }
-          }
-        }
-        if (t = this['on' + ti.toLowerCase()]) {
-          r = t.apply(this, arguments);
-        }
-      }
-      return r;
-    }
-  };
-  /**
-   * 鑾峰緱瀵硅薄鎵�鎷ユ湁鐩戝惉绫诲瀷鐨勬墍鏈夌洃鍚櫒
-   * @unfile
-   * @module UE
-   * @since 1.2.6.1
-   * @method getListener
-   * @public
-   * @param { Object } obj  鏌ヨ鐩戝惉鍣ㄧ殑瀵硅薄
-   * @param { String } type 浜嬩欢绫诲瀷
-   * @param { Boolean } force  涓簍rue涓斿綋鍓嶆墍鏈塼ype绫诲瀷鐨勪睛鍚櫒涓嶅瓨鍦ㄦ椂锛屽垱寤轰竴涓┖鐩戝惉鍣ㄦ暟缁�
-   * @return { Array } 鐩戝惉鍣ㄦ暟缁�
-   */
-  function getListener(obj, type, force) {
-    var allListeners;
-    type = type.toLowerCase();
-    return ((allListeners = (obj.__allListeners || force && (obj.__allListeners = {}))) &&
-      (allListeners[type] || force && (allListeners[type] = [])));
-  }
-
-
-
-  // core/dtd.js
-  ///import editor.js
-  ///import core/dom/dom.js
-  ///import core/utils.js
-  /**
-   * dtd html璇箟鍖栫殑浣撶幇绫�
-   * @constructor
-   * @namespace dtd
-   */
-  var dtd = dom.dtd = (function() {
-    function _(s) {
-      for (var k in s) {
-        s[k.toUpperCase()] = s[k];
-      }
-      return s;
-    }
-    var X = utils.extend2;
-    var A = _({
-        isindex: 1,
-        fieldset: 1
-      }),
-      B = _({
-        input: 1,
-        button: 1,
-        select: 1,
-        textarea: 1,
-        label: 1
-      }),
-      C = X(_({
-        a: 1
-      }), B),
-      D = X({
-        iframe: 1
-      }, C),
-      E = _({
-        hr: 1,
-        ul: 1,
-        menu: 1,
-        div: 1,
-        blockquote: 1,
-        noscript: 1,
-        table: 1,
-        center: 1,
-        address: 1,
-        dir: 1,
-        pre: 1,
-        h5: 1,
-        dl: 1,
-        h4: 1,
-        noframes: 1,
-        h6: 1,
-        ol: 1,
-        h1: 1,
-        h3: 1,
-        h2: 1
-      }),
-      F = _({
-        ins: 1,
-        del: 1,
-        script: 1,
-        style: 1
-      }),
-      G = X(_({
-        b: 1,
-        acronym: 1,
-        bdo: 1,
-        'var': 1,
-        '#': 1,
-        abbr: 1,
-        code: 1,
-        br: 1,
-        i: 1,
-        cite: 1,
-        kbd: 1,
-        u: 1,
-        strike: 1,
-        s: 1,
-        tt: 1,
-        strong: 1,
-        q: 1,
-        samp: 1,
-        em: 1,
-        dfn: 1,
-        span: 1
-      }), F),
-      H = X(_({
-        sub: 1,
-        img: 1,
-        embed: 1,
-        object: 1,
-        sup: 1,
-        basefont: 1,
-        map: 1,
-        applet: 1,
-        font: 1,
-        big: 1,
-        small: 1
-      }), G),
-      I = X(_({
-        p: 1
-      }), H),
-      J = X(_({
-        iframe: 1
-      }), H, B),
-      K = _({
-        img: 1,
-        embed: 1,
-        noscript: 1,
-        br: 1,
-        kbd: 1,
-        center: 1,
-        button: 1,
-        basefont: 1,
-        h5: 1,
-        h4: 1,
-        samp: 1,
-        h6: 1,
-        ol: 1,
-        h1: 1,
-        h3: 1,
-        h2: 1,
-        form: 1,
-        font: 1,
-        '#': 1,
-        select: 1,
-        menu: 1,
-        ins: 1,
-        abbr: 1,
-        label: 1,
-        code: 1,
-        table: 1,
-        script: 1,
-        cite: 1,
-        input: 1,
-        iframe: 1,
-        strong: 1,
-        textarea: 1,
-        noframes: 1,
-        big: 1,
-        small: 1,
-        span: 1,
-        hr: 1,
-        sub: 1,
-        bdo: 1,
-        'var': 1,
-        div: 1,
-        object: 1,
-        sup: 1,
-        strike: 1,
-        dir: 1,
-        map: 1,
-        dl: 1,
-        applet: 1,
-        del: 1,
-        isindex: 1,
-        fieldset: 1,
-        ul: 1,
-        b: 1,
-        acronym: 1,
-        a: 1,
-        blockquote: 1,
-        i: 1,
-        u: 1,
-        s: 1,
-        tt: 1,
-        address: 1,
-        q: 1,
-        pre: 1,
-        p: 1,
-        em: 1,
-        dfn: 1
-      }),
-
-      L = X(_({
-        a: 0
-      }), J), //a涓嶈兘琚垏寮�锛屾墍浠ユ妸浠�
-      M = _({
-        tr: 1
-      }),
-      N = _({
-        '#': 1
-      }),
-      O = X(_({
-        param: 1
-      }), K),
-      P = X(_({
-        form: 1
-      }), A, D, E, I),
-      Q = _({
-        li: 1,
-        ol: 1,
-        ul: 1
-      }),
-      R = _({
-        style: 1,
-        script: 1
-      }),
-      S = _({
-        base: 1,
-        link: 1,
-        meta: 1,
-        title: 1
-      }),
-      T = X(S, R),
-      U = _({
-        head: 1,
-        body: 1
-      }),
-      V = _({
-        html: 1
-      });
-
-    var block = _({
-        address: 1,
-        blockquote: 1,
-        center: 1,
-        dir: 1,
-        div: 1,
-        dl: 1,
-        fieldset: 1,
-        form: 1,
-        h1: 1,
-        h2: 1,
-        h3: 1,
-        h4: 1,
-        h5: 1,
-        h6: 1,
-        hr: 1,
-        isindex: 1,
-        menu: 1,
-        noframes: 1,
-        ol: 1,
-        p: 1,
-        pre: 1,
-        table: 1,
-        ul: 1
-      }),
-
-      empty = _({
-        area: 1,
-        base: 1,
-        basefont: 1,
-        br: 1,
-        col: 1,
-        command: 1,
-        dialog: 1,
-        embed: 1,
-        hr: 1,
-        img: 1,
-        input: 1,
-        isindex: 1,
-        keygen: 1,
-        link: 1,
-        meta: 1,
-        param: 1,
-        source: 1,
-        track: 1,
-        wbr: 1
-      });
-
-    return _({
-
-      // $ 琛ㄧず鑷畾鐨勫睘鎬�
-
-      // body澶栫殑鍏冪礌鍒楄〃.
-      $nonBodyContent: X(V, U, S),
-
-      //鍧楃粨鏋勫厓绱犲垪琛�
-      $block: block,
-
-      //鍐呰仈鍏冪礌鍒楄〃
-      $inline: L,
-
-      $inlineWithA: X(_({
-        a: 1
-      }), L),
-
-      $body: X(_({
-        script: 1,
-        style: 1
-      }), block),
-
-      $cdata: _({
-        script: 1,
-        style: 1
-      }),
-
-      //鑷棴鍜屽厓绱�
-      $empty: empty,
-
-      //涓嶆槸鑷棴鍚堬紝浣嗕笉鑳借range閫変腑閲岃竟
-      $nonChild: _({
-        iframe: 1,
-        textarea: 1
-      }),
-      //鍒楄〃鍏冪礌鍒楄〃
-      $listItem: _({
-        dd: 1,
-        dt: 1,
-        li: 1
-      }),
-
-      //鍒楄〃鏍瑰厓绱犲垪琛�
-      $list: _({
-        ul: 1,
-        ol: 1,
-        dl: 1
-      }),
-
-      //涓嶈兘璁や负鏄┖鐨勫厓绱�
-      $isNotEmpty: _({
-        table: 1,
-        ul: 1,
-        ol: 1,
-        dl: 1,
-        iframe: 1,
-        area: 1,
-        base: 1,
-        col: 1,
-        hr: 1,
-        img: 1,
-        embed: 1,
-        input: 1,
-        link: 1,
-        meta: 1,
-        param: 1,
-        h1: 1,
-        h2: 1,
-        h3: 1,
-        h4: 1,
-        h5: 1,
-        h6: 1
-      }),
-
-      //濡傛灉娌℃湁瀛愯妭鐐瑰氨鍙互鍒犻櫎鐨勫厓绱犲垪琛紝鍍弒pan,a
-      $removeEmpty: _({
-        a: 1,
-        abbr: 1,
-        acronym: 1,
-        address: 1,
-        b: 1,
-        bdo: 1,
-        big: 1,
-        cite: 1,
-        code: 1,
-        del: 1,
-        dfn: 1,
-        em: 1,
-        font: 1,
-        i: 1,
-        ins: 1,
-        label: 1,
-        kbd: 1,
-        q: 1,
-        s: 1,
-        samp: 1,
-        small: 1,
-        span: 1,
-        strike: 1,
-        strong: 1,
-        sub: 1,
-        sup: 1,
-        tt: 1,
-        u: 1,
-        'var': 1
-      }),
-
-      $removeEmptyBlock: _({
-        'p': 1,
-        'div': 1
-      }),
-
-      //鍦╰able鍏冪礌閲岀殑鍏冪礌鍒楄〃
-      $tableContent: _({
-        caption: 1,
-        col: 1,
-        colgroup: 1,
-        tbody: 1,
-        td: 1,
-        tfoot: 1,
-        th: 1,
-        thead: 1,
-        tr: 1,
-        table: 1
-      }),
-      //涓嶈浆鎹㈢殑鏍囩
-      $notTransContent: _({
-        pre: 1,
-        script: 1,
-        style: 1,
-        textarea: 1
-      }),
-      html: U,
-      head: T,
-      style: N,
-      script: N,
-      body: P,
-      base: {},
-      link: {},
-      meta: {},
-      title: N,
-      col: {},
-      tr: _({
-        td: 1,
-        th: 1
-      }),
-      img: {},
-      embed: {},
-      colgroup: _({
-        thead: 1,
-        col: 1,
-        tbody: 1,
-        tr: 1,
-        tfoot: 1
-      }),
-      noscript: P,
-      td: P,
-      br: {},
-      th: P,
-      center: P,
-      kbd: L,
-      button: X(I, E),
-      basefont: {},
-      h5: L,
-      h4: L,
-      samp: L,
-      h6: L,
-      ol: Q,
-      h1: L,
-      h3: L,
-      option: N,
-      h2: L,
-      form: X(A, D, E, I),
-      select: _({
-        optgroup: 1,
-        option: 1
-      }),
-      font: L,
-      ins: L,
-      menu: Q,
-      abbr: L,
-      label: L,
-      table: _({
-        thead: 1,
-        col: 1,
-        tbody: 1,
-        tr: 1,
-        colgroup: 1,
-        caption: 1,
-        tfoot: 1
-      }),
-      code: L,
-      tfoot: M,
-      cite: L,
-      li: P,
-      input: {},
-      iframe: P,
-      strong: L,
-      textarea: N,
-      noframes: P,
-      big: L,
-      small: L,
-      //trace:
-      span: _({
-        '#': 1,
-        br: 1,
-        b: 1,
-        strong: 1,
-        u: 1,
-        i: 1,
-        em: 1,
-        sub: 1,
-        sup: 1,
-        strike: 1,
-        span: 1
-      }),
-      hr: L,
-      dt: L,
-      sub: L,
-      optgroup: _({
-        option: 1
-      }),
-      param: {},
-      bdo: L,
-      'var': L,
-      div: P,
-      object: O,
-      sup: L,
-      dd: P,
-      strike: L,
-      area: {},
-      dir: Q,
-      map: X(_({
-        area: 1,
-        form: 1,
-        p: 1
-      }), A, F, E),
-      applet: O,
-      dl: _({
-        dt: 1,
-        dd: 1
-      }),
-      del: L,
-      isindex: {},
-      fieldset: X(_({
-        legend: 1
-      }), K),
-      thead: M,
-      ul: Q,
-      acronym: L,
-      b: L,
-      a: X(_({
-        a: 1
-      }), J),
-      blockquote: X(_({
-        td: 1,
-        tr: 1,
-        tbody: 1,
-        li: 1
-      }), P),
-      caption: L,
-      i: L,
-      u: L,
-      tbody: M,
-      s: L,
-      address: X(D, I),
-      tt: L,
-      legend: L,
-      q: L,
-      pre: X(G, C),
-      p: X(_({
-        'a': 1
-      }), L),
-      em: L,
-      dfn: L
-    });
-  })();
-
-
-  // core/domUtils.js
-  /**
-   * Dom鎿嶄綔宸ュ叿鍖�
-   * @file
-   * @module UE.dom.domUtils
-   * @since 1.2.6.1
-   */
-
-  /**
-   * Dom鎿嶄綔宸ュ叿鍖�
-   * @unfile
-   * @module UE.dom.domUtils
-   */
-  function getDomNode(node, start, ltr, startFromChild, fn, guard) {
-    var tmpNode = startFromChild && node[start],
-      parent;
-    !tmpNode && (tmpNode = node[ltr]);
-    while (!tmpNode && (parent = (parent || node).parentNode)) {
-      if (parent.tagName == 'BODY' || guard && !guard(parent)) {
-        return null;
-      }
-      tmpNode = parent[ltr];
-    }
-    if (tmpNode && fn && !fn(tmpNode)) {
-      return getDomNode(tmpNode, start, ltr, false, fn);
-    }
-    return tmpNode;
-  }
-  var attrFix = ie && browser.version < 9 ? {
-      tabindex: "tabIndex",
-      readonly: "readOnly",
-      "for": "htmlFor",
-      "class": "className",
-      maxlength: "maxLength",
-      cellspacing: "cellSpacing",
-      cellpadding: "cellPadding",
-      rowspan: "rowSpan",
-      colspan: "colSpan",
-      usemap: "useMap",
-      frameborder: "frameBorder"
-    } : {
-      tabindex: "tabIndex",
-      readonly: "readOnly"
-    },
-    styleBlock = utils.listToMap([
-      '-webkit-box', '-moz-box', 'block',
-      'list-item', 'table', 'table-row-group',
-      'table-header-group', 'table-footer-group',
-      'table-row', 'table-column-group', 'table-column',
-      'table-cell', 'table-caption'
-    ]);
-  var domUtils = dom.domUtils = {
-    //鑺傜偣甯搁噺
-    NODE_ELEMENT: 1,
-    NODE_DOCUMENT: 9,
-    NODE_TEXT: 3,
-    NODE_COMMENT: 8,
-    NODE_DOCUMENT_FRAGMENT: 11,
-
-    //浣嶇疆鍏崇郴
-    POSITION_IDENTICAL: 0,
-    POSITION_DISCONNECTED: 1,
-    POSITION_FOLLOWING: 2,
-    POSITION_PRECEDING: 4,
-    POSITION_IS_CONTAINED: 8,
-    POSITION_CONTAINS: 16,
-    //ie6浣跨敤鍏朵粬鐨勪細鏈変竴娈电┖鐧藉嚭鐜�
-    fillChar: ie && browser.version == '6' ? '\ufeff' : '\u200B',
-    //-------------------------Node閮ㄥ垎--------------------------------
-    keys: {
-      /*Backspace*/
-      8: 1,
-      /*Delete*/ 46: 1,
-      /*Shift*/
-      16: 1,
-      /*Ctrl*/ 17: 1,
-      /*Alt*/ 18: 1,
-      37: 1,
-      38: 1,
-      39: 1,
-      40: 1,
-      13: 1 /*enter*/
-    },
-    /**
-     * 鑾峰彇鑺傜偣A鐩稿浜庤妭鐐笲鐨勪綅缃叧绯�
-     * @method getPosition
-     * @param { Node } nodeA 闇�瑕佹煡璇綅缃叧绯荤殑鑺傜偣A
-     * @param { Node } nodeB 闇�瑕佹煡璇綅缃叧绯荤殑鑺傜偣B
-     * @return { Number } 鑺傜偣A涓庤妭鐐笲鐨勫叧绯�
-     * @example
-     * ```javascript
-     * //output: 20
-     * var position = UE.dom.domUtils.getPosition( document.documentElement, document.body );
-     *
-     * switch ( position ) {
-     *
-     *      //0
-     *      case UE.dom.domUtils.POSITION_IDENTICAL:
-     *          console.log('鍏冪礌鐩稿悓');
-     *          break;
-     *      //1
-     *      case UE.dom.domUtils.POSITION_DISCONNECTED:
-     *          console.log('涓や釜鑺傜偣鍦ㄤ笉鍚岀殑鏂囨。涓�');
-     *          break;
-     *      //2
-     *      case UE.dom.domUtils.POSITION_FOLLOWING:
-     *          console.log('鑺傜偣A鍦ㄨ妭鐐笲涔嬪悗');
-     *          break;
-     *      //4
-     *      case UE.dom.domUtils.POSITION_PRECEDING;
-     *          console.log('鑺傜偣A鍦ㄨ妭鐐笲涔嬪墠');
-     *          break;
-     *      //8
-     *      case UE.dom.domUtils.POSITION_IS_CONTAINED:
-     *          console.log('鑺傜偣A琚妭鐐笲鍖呭惈');
-     *          break;
-     *      case 10:
-     *          console.log('鑺傜偣A琚妭鐐笲鍖呭惈涓旇妭鐐笰鍦ㄨ妭鐐笲涔嬪悗');
-     *          break;
-     *      //16
-     *      case UE.dom.domUtils.POSITION_CONTAINS:
-     *          console.log('鑺傜偣A鍖呭惈鑺傜偣B');
-     *          break;
-     *      case 20:
-     *          console.log('鑺傜偣A鍖呭惈鑺傜偣B涓旇妭鐐笰鍦ㄨ妭鐐笲涔嬪墠');
-     *          break;
-     *
-     * }
-     * ```
-     */
-    getPosition: function(nodeA, nodeB) {
-      // 濡傛灉涓や釜鑺傜偣鏄悓涓�涓妭鐐�
-      if (nodeA === nodeB) {
-        // domUtils.POSITION_IDENTICAL
-        return 0;
-      }
-      var node,
-        parentsA = [nodeA],
-        parentsB = [nodeB];
-      node = nodeA;
-      while (node = node.parentNode) {
-        // 濡傛灉nodeB鏄痭odeA鐨勭鍏堣妭鐐�
-        if (node === nodeB) {
-          // domUtils.POSITION_IS_CONTAINED + domUtils.POSITION_FOLLOWING
-          return 10;
-        }
-        parentsA.push(node);
-      }
-      node = nodeB;
-      while (node = node.parentNode) {
-        // 濡傛灉nodeA鏄痭odeB鐨勭鍏堣妭鐐�
-        if (node === nodeA) {
-          // domUtils.POSITION_CONTAINS + domUtils.POSITION_PRECEDING
-          return 20;
-        }
-        parentsB.push(node);
-      }
-      parentsA.reverse();
-      parentsB.reverse();
-      if (parentsA[0] !== parentsB[0]) {
-        // domUtils.POSITION_DISCONNECTED
-        return 1;
-      }
-      var i = -1;
-      while (i++, parentsA[i] === parentsB[i]) {}
-      nodeA = parentsA[i];
-      nodeB = parentsB[i];
-      while (nodeA = nodeA.nextSibling) {
-        if (nodeA === nodeB) {
-          // domUtils.POSITION_PRECEDING
-          return 4
-        }
-      }
-      // domUtils.POSITION_FOLLOWING
-      return 2;
-    },
-
-    /**
-     * 妫�娴嬭妭鐐筺ode鍦ㄧ埗鑺傜偣涓殑绱㈠紩浣嶇疆
-     * @method getNodeIndex
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @return { Number } 璇ヨ妭鐐瑰湪鐖惰妭鐐逛腑鐨勪綅缃�
-     * @see UE.dom.domUtils.getNodeIndex(Node,Boolean)
-     */
-
-    /**
-     * 妫�娴嬭妭鐐筺ode鍦ㄧ埗鑺傜偣涓殑绱㈠紩浣嶇疆锛� 鏍规嵁缁欏畾鐨刴ergeTextNode鍙傛暟鍐冲畾鏄惁瑕佸悎骞跺涓繛缁殑鏂囨湰鑺傜偣涓轰竴涓妭鐐�
-     * @method getNodeIndex
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @param { Boolean } mergeTextNode 鏄惁鍚堝苟澶氫釜杩炵画鐨勬枃鏈妭鐐逛负涓�涓妭鐐�
-     * @return { Number } 璇ヨ妭鐐瑰湪鐖惰妭鐐逛腑鐨勪綅缃�
-     * @example
-     * ```javascript
-     *
-     *      var node = document.createElement("div");
-     *
-     *      node.appendChild( document.createTextNode( "hello" ) );
-     *      node.appendChild( document.createTextNode( "world" ) );
-     *      node.appendChild( node = document.createElement( "div" ) );
-     *
-     *      //output: 2
-     *      console.log( UE.dom.domUtils.getNodeIndex( node ) );
-     *
-     *      //output: 1
-     *      console.log( UE.dom.domUtils.getNodeIndex( node, true ) );
-     *
-     * ```
-     */
-    getNodeIndex: function(node, ignoreTextNode) {
-      var preNode = node,
-        i = 0;
-      while (preNode = preNode.previousSibling) {
-        if (ignoreTextNode && preNode.nodeType == 3) {
-          if (preNode.nodeType != preNode.nextSibling.nodeType) {
-            i++;
-          }
-          continue;
-        }
-        i++;
-      }
-      return i;
-    },
-
-    /**
-     * 妫�娴嬭妭鐐筺ode鏄惁鍦ㄧ粰瀹氱殑document瀵硅薄涓�
-     * @method inDoc
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @param { DomDocument } doc 闇�瑕佹娴嬬殑document瀵硅薄
-     * @return { Boolean } 璇ヨ妭鐐筺ode鏄惁鍦ㄧ粰瀹氱殑document鐨刣om鏍戜笂
-     * @example
-     * ```javascript
-     *
-     * var node = document.createElement("div");
-     *
-     * //output: false
-     * console.log( UE.do.domUtils.inDoc( node, document ) );
-     *
-     * document.body.appendChild( node );
-     *
-     * //output: true
-     * console.log( UE.do.domUtils.inDoc( node, document ) );
-     *
-     * ```
-     */
-    inDoc: function(node, doc) {
-      return domUtils.getPosition(node, doc) == 10;
-    },
-    /**
-     * 鏍规嵁缁欏畾鐨勮繃婊よ鍒檉ilterFn锛� 鏌ユ壘绗﹀悎璇ヨ繃婊よ鍒欑殑node鑺傜偣鐨勭涓�涓鍏堣妭鐐癸紝
-     * 鏌ユ壘鐨勮捣鐐规槸缁欏畾node鑺傜偣鐨勭埗鑺傜偣銆�
-     * @method findParent
-     * @param { Node } node 闇�瑕佹煡鎵剧殑鑺傜偣
-     * @param { Function } filterFn 鑷畾涔夌殑杩囨护鏂规硶銆�
-     * @warning 鏌ユ壘鐨勭粓鐐规槸鍒癰ody鑺傜偣涓烘
-     * @remind 鑷畾涔夌殑杩囨护鏂规硶filterFn鎺ュ彈涓�涓狽ode瀵硅薄浣滀负鍙傛暟锛� 璇ュ璞′唬琛ㄥ綋鍓嶆墽琛屾娴嬬殑绁栧厛鑺傜偣銆� 濡傛灉璇�
-     *          鑺傜偣婊¤冻杩囨护鏉′欢锛� 鍒欒姹傝繑鍥瀟rue锛� 杩欐椂灏嗙洿鎺ヨ繑鍥炶鑺傜偣浣滀负findParent()鐨勭粨鏋滐紝 鍚﹀垯锛� 璇疯繑鍥瀎alse銆�
-     * @return { Node | Null } 濡傛灉鎵惧埌绗﹀悎杩囨护鏉′欢鐨勮妭鐐癸紝 灏辫繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-     * @example
-     * ```javascript
-     * var filterNode = UE.dom.domUtils.findParent( document.body.firstChild, function ( node ) {
-     *
-     *     //鐢变簬鏌ユ壘鐨勭粓鐐规槸body鑺傜偣锛� 鎵�浠ユ案杩滀篃涓嶄細鍖归厤褰撳墠杩囨护鍣ㄧ殑鏉′欢锛� 鍗宠繖閲屾案杩滀細杩斿洖false
-     *     return node.tagName === "HTML";
-     *
-     * } );
-     *
-     * //output: true
-     * console.log( filterNode === null );
-     * ```
-     */
-
-    /**
-     * 鏍规嵁缁欏畾鐨勮繃婊よ鍒檉ilterFn锛� 鏌ユ壘绗﹀悎璇ヨ繃婊よ鍒欑殑node鑺傜偣鐨勭涓�涓鍏堣妭鐐癸紝
-     * 濡傛灉includeSelf鐨勫�间负true锛屽垯鏌ユ壘鐨勮捣鐐规槸缁欏畾鐨勮妭鐐筺ode锛� 鍚﹀垯锛� 璧风偣鏄痭ode鐨勭埗鑺傜偣
-     * @method findParent
-     * @param { Node } node 闇�瑕佹煡鎵剧殑鑺傜偣
-     * @param { Function } filterFn 鑷畾涔夌殑杩囨护鏂规硶銆�
-     * @param { Boolean } includeSelf 鏌ユ壘杩囩▼鏄惁鍖呭惈鑷韩
-     * @warning 鏌ユ壘鐨勭粓鐐规槸鍒癰ody鑺傜偣涓烘
-     * @remind 鑷畾涔夌殑杩囨护鏂规硶filterFn鎺ュ彈涓�涓狽ode瀵硅薄浣滀负鍙傛暟锛� 璇ュ璞′唬琛ㄥ綋鍓嶆墽琛屾娴嬬殑绁栧厛鑺傜偣銆� 濡傛灉璇�
-     *          鑺傜偣婊¤冻杩囨护鏉′欢锛� 鍒欒姹傝繑鍥瀟rue锛� 杩欐椂灏嗙洿鎺ヨ繑鍥炶鑺傜偣浣滀负findParent()鐨勭粨鏋滐紝 鍚﹀垯锛� 璇疯繑鍥瀎alse銆�
-     * @remind 濡傛灉includeSelf涓簍rue锛� 鍒欒繃婊ゅ櫒绗竴娆℃墽琛屾椂鐨勫弬鏁颁細鏄妭鐐规湰韬��
-     *          鍙嶄箣锛� 杩囨护鍣ㄧ涓�娆℃墽琛屾椂鐨勫弬鏁板皢鏄鑺傜偣鐨勭埗鑺傜偣銆�
-     * @return { Node | Null } 濡傛灉鎵惧埌绗﹀悎杩囨护鏉′欢鐨勮妭鐐癸紝 灏辫繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-     * @example
-     * ```html
-     * <body>
-     *
-     *      <div id="test">
-     *      </div>
-     *
-     *      <script type="text/javascript">
-     *
-     *          //output: DIV, BODY
-     *          var filterNode = UE.dom.domUtils.findParent( document.getElementById( "test" ), function ( node ) {
-     *
-     *              console.log( node.tagName );
-     *              return false;
-     *
-     *          }, true );
-     *
-     *      </script>
-     * </body>
-     * ```
-     */
-    findParent: function(node, filterFn, includeSelf) {
-      if (node && !domUtils.isBody(node)) {
-        node = includeSelf ? node : node.parentNode;
-        while (node) {
-          if (!filterFn || filterFn(node) || domUtils.isBody(node)) {
-            return filterFn && !filterFn(node) && domUtils.isBody(node) ? null : node;
-          }
-          node = node.parentNode;
-        }
-      }
-      return null;
-    },
-    /**
-     * 鏌ユ壘node鐨勮妭鐐瑰悕涓簍agName鐨勭涓�涓鍏堣妭鐐癸紝 鏌ユ壘鐨勮捣鐐规槸node鑺傜偣鐨勭埗鑺傜偣銆�
-     * @method findParentByTagName
-     * @param { Node } node 闇�瑕佹煡鎵剧殑鑺傜偣瀵硅薄
-     * @param { Array } tagNames 闇�瑕佹煡鎵剧殑鐖惰妭鐐圭殑鍚嶇О鏁扮粍
-     * @warning 鏌ユ壘鐨勭粓鐐规槸鍒癰ody鑺傜偣涓烘
-     * @return { Node | NULL } 濡傛灉鎵惧埌绗﹀悎鏉′欢鐨勮妭鐐癸紝 鍒欒繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-     * @example
-     * ```javascript
-     * var node = UE.dom.domUtils.findParentByTagName( document.getElementsByTagName("div")[0], [ "BODY" ] );
-     * //output: BODY
-     * console.log( node.tagName );
-     * ```
-     */
-
-    /**
-     * 鏌ユ壘node鐨勮妭鐐瑰悕涓簍agName鐨勭鍏堣妭鐐癸紝 濡傛灉includeSelf鐨勫�间负true锛屽垯鏌ユ壘鐨勮捣鐐规槸缁欏畾鐨勮妭鐐筺ode锛�
-     * 鍚﹀垯锛� 璧风偣鏄痭ode鐨勭埗鑺傜偣銆�
-     * @method findParentByTagName
-     * @param { Node } node 闇�瑕佹煡鎵剧殑鑺傜偣瀵硅薄
-     * @param { Array } tagNames 闇�瑕佹煡鎵剧殑鐖惰妭鐐圭殑鍚嶇О鏁扮粍
-     * @param { Boolean } includeSelf 鏌ユ壘杩囩▼鏄惁鍖呭惈node鑺傜偣鑷韩
-     * @warning 鏌ユ壘鐨勭粓鐐规槸鍒癰ody鑺傜偣涓烘
-     * @return { Node | NULL } 濡傛灉鎵惧埌绗﹀悎鏉′欢鐨勮妭鐐癸紝 鍒欒繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-     * @example
-     * ```javascript
-     * var queryTarget = document.getElementsByTagName("div")[0];
-     * var node = UE.dom.domUtils.findParentByTagName( queryTarget, [ "DIV" ], true );
-     * //output: true
-     * console.log( queryTarget === node );
-     * ```
-     */
-    findParentByTagName: function(node, tagNames, includeSelf, excludeFn) {
-      tagNames = utils.listToMap(utils.isArray(tagNames) ? tagNames : [tagNames]);
-      return domUtils.findParent(node, function(node) {
-        return tagNames[node.tagName] && !(excludeFn && excludeFn(node));
-      }, includeSelf);
-    },
-    /**
-     * 鏌ユ壘鑺傜偣node鐨勭鍏堣妭鐐归泦鍚堬紝 鏌ユ壘鐨勮捣鐐规槸缁欏畾鑺傜偣鐨勭埗鑺傜偣锛岀粨鏋滈泦涓笉鍖呭惈缁欏畾鐨勮妭鐐广��
-     * @method findParents
-     * @param { Node } node 闇�瑕佹煡鎵剧殑鑺傜偣瀵硅薄
-     * @return { Array } 缁欏畾鑺傜偣鐨勭鍏堣妭鐐规暟缁�
-     * @grammar UE.dom.domUtils.findParents(node)  => Array  //杩斿洖涓�涓鍏堣妭鐐规暟缁勯泦鍚堬紝涓嶅寘鍚嚜韬�
-     * @grammar UE.dom.domUtils.findParents(node,includeSelf)  => Array  //杩斿洖涓�涓鍏堣妭鐐规暟缁勯泦鍚堬紝includeSelf鎸囧畾鏄惁鍖呭惈鑷韩
-     * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn)  => Array  //杩斿洖涓�涓鍏堣妭鐐规暟缁勯泦鍚堬紝filterFn鎸囧畾杩囨护鏉′欢锛岃繑鍥瀟rue鐨刵ode灏嗚閫夊彇
-     * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn,closerFirst)  => Array  //杩斿洖涓�涓鍏堣妭鐐规暟缁勯泦鍚堬紝closerFirst涓簍rue鐨勮瘽锛宯ode鐨勭洿鎺ョ埗浜茶妭鐐规槸鏁扮粍鐨勭0涓�
-     */
-
-    /**
-     * 鏌ユ壘鑺傜偣node鐨勭鍏堣妭鐐归泦鍚堬紝 濡傛灉includeSelf鐨勫�间负true锛�
-     * 鍒欒繑鍥炵殑缁撴灉闆嗕腑鍏佽鍑虹幇褰撳墠缁欏畾鐨勮妭鐐癸紝 鍚﹀垯锛� 璇ヨ妭鐐逛笉浼氬嚭鐜板湪鍏剁粨鏋滈泦涓��
-     * @method findParents
-     * @param { Node } node 闇�瑕佹煡鎵剧殑鑺傜偣瀵硅薄
-     * @param { Boolean } includeSelf 鏌ユ壘鐨勭粨鏋滀腑鏄惁鍏佽鍖呭惈褰撳墠鏌ユ壘鐨勮妭鐐瑰璞�
-     * @return { Array } 缁欏畾鑺傜偣鐨勭鍏堣妭鐐规暟缁�
-     */
-    findParents: function(node, includeSelf, filterFn, closerFirst) {
-      var parents = includeSelf && (filterFn && filterFn(node) || !filterFn) ? [node] : [];
-      while (node = domUtils.findParent(node, filterFn)) {
-        parents.push(node);
-      }
-      return closerFirst ? parents : parents.reverse();
-    },
-
-    /**
-     * 鍦ㄨ妭鐐筺ode鍚庨潰鎻掑叆鏂拌妭鐐筺ewNode
-     * @method insertAfter
-     * @param { Node } node 鐩爣鑺傜偣
-     * @param { Node } newNode 鏂版彃鍏ョ殑鑺傜偣锛� 璇ヨ妭鐐瑰皢缃簬鐩爣鑺傜偣涔嬪悗
-     * @return { Node } 鏂版彃鍏ョ殑鑺傜偣
-     */
-    insertAfter: function(node, newNode) {
-      return node.nextSibling ? node.parentNode.insertBefore(newNode, node.nextSibling) :
-        node.parentNode.appendChild(newNode);
-    },
-
-    /**
-     * 鍒犻櫎鑺傜偣node鍙婂叾涓嬪睘鐨勬墍鏈夎妭鐐�
-     * @method remove
-     * @param { Node } node 闇�瑕佸垹闄ょ殑鑺傜偣瀵硅薄
-     * @return { Node } 杩斿洖鍒氬垹闄ょ殑鑺傜偣瀵硅薄
-     * @example
-     * ```html
-     * <div id="test">
-     *     <div id="child">浣犲ソ</div>
-     * </div>
-     * <script>
-     *     UE.dom.domUtils.remove( document.body, false );
-     *     //output: false
-     *     console.log( document.getElementById( "child" ) !== null );
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鍒犻櫎鑺傜偣node锛屽苟鏍规嵁keepChildren鐨勫�煎喅瀹氭槸鍚︿繚鐣欏瓙鑺傜偣
-     * @method remove
-     * @param { Node } node 闇�瑕佸垹闄ょ殑鑺傜偣瀵硅薄
-     * @param { Boolean } keepChildren 鏄惁闇�瑕佷繚鐣欏瓙鑺傜偣
-     * @return { Node } 杩斿洖鍒氬垹闄ょ殑鑺傜偣瀵硅薄
-     * @example
-     * ```html
-     * <div id="test">
-     *     <div id="child">浣犲ソ</div>
-     * </div>
-     * <script>
-     *     UE.dom.domUtils.remove( document.body, true );
-     *     //output: true
-     *     console.log( document.getElementById( "child" ) !== null );
-     * </script>
-     * ```
-     */
-    remove: function(node, keepChildren) {
-      var parent = node.parentNode,
-        child;
-      if (parent) {
-        if (keepChildren && node.hasChildNodes()) {
-          while (child = node.firstChild) {
-            parent.insertBefore(child, node);
-          }
-        }
-        parent.removeChild(node);
-      }
-      return node;
-    },
-
-    /**
-     * 鍙栧緱node鑺傜偣鐨勪笅涓�涓厔寮熻妭鐐癸紝 濡傛灉璇ヨ妭鐐瑰叾鍚庢病鏈夊厔寮熻妭鐐癸紝 鍒欓�掑綊鏌ユ壘鍏剁埗鑺傜偣涔嬪悗鐨勭涓�涓厔寮熻妭鐐癸紝
-     * 鐩村埌鎵惧埌婊¤冻鏉′欢鐨勮妭鐐规垨鑰呴�掑綊鍒癇ODY鑺傜偣涔嬪悗鎵嶄細缁撴潫銆�
-     * @method getNextDomNode
-     * @param { Node } node 闇�瑕佽幏鍙栧叾鍚庣殑鍏勫紵鑺傜偣鐨勮妭鐐瑰璞�
-     * @return { Node | NULL } 濡傛灉鎵炬弧瓒虫潯浠剁殑鑺傜偣锛� 鍒欒繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-     * @example
-     * ```html
-     *     <body>
-     *      <div id="test">
-     *          <span></span>
-     *      </div>
-     *      <i>xxx</i>
-     * </body>
-     * <script>
-     *
-     *     //output: i鑺傜偣
-     *     console.log( UE.dom.domUtils.getNextDomNode( document.getElementById( "test" ) ) );
-     *
-     * </script>
-     * ```
-     * @example
-     * ```html
-     * <body>
-     *      <div>
-     *          <span></span>
-     *          <i id="test">xxx</i>
-     *      </div>
-     *      <b>xxx</b>
-     * </body>
-     * <script>
-     *
-     *     //鐢变簬id涓簍est鐨刬鑺傜偣涔嬪悗娌℃湁鍏勫紵鑺傜偣锛� 鍒欐煡鎵惧叾鐖惰妭鐐癸紙div锛夊悗闈㈢殑鍏勫紵鑺傜偣
-     *     //output: b鑺傜偣
-     *     console.log( UE.dom.domUtils.getNextDomNode( document.getElementById( "test" ) ) );
-     *
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鍙栧緱node鑺傜偣鐨勪笅涓�涓厔寮熻妭鐐癸紝 濡傛灉startFromChild鐨勫�间负ture锛屽垯鍏堣幏鍙栧叾瀛愯妭鐐癸紝
-     * 濡傛灉鏈夊瓙鑺傜偣鍒欑洿鎺ヨ繑鍥炵涓�涓瓙鑺傜偣锛涘鏋滄病鏈夊瓙鑺傜偣鎴栬�卻tartFromChild鐨勫�间负false锛�
-     * 鍒欐墽琛�<a href="#UE.dom.domUtils.getNextDomNode(Node)">getNextDomNode(Node node)</a>鐨勬煡鎵捐繃绋嬨��
-     * @method getNextDomNode
-     * @param { Node } node 闇�瑕佽幏鍙栧叾鍚庣殑鍏勫紵鑺傜偣鐨勮妭鐐瑰璞�
-     * @param { Boolean } startFromChild 鏌ユ壘杩囩▼鏄惁浠庡叾瀛愯妭鐐瑰紑濮�
-     * @return { Node | NULL } 濡傛灉鎵炬弧瓒虫潯浠剁殑鑺傜偣锛� 鍒欒繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-     * @see UE.dom.domUtils.getNextDomNode(Node)
-     */
-    getNextDomNode: function(node, startFromChild, filterFn, guard) {
-      return getDomNode(node, 'firstChild', 'nextSibling', startFromChild, filterFn, guard);
-    },
-    getPreDomNode: function(node, startFromChild, filterFn, guard) {
-      return getDomNode(node, 'lastChild', 'previousSibling', startFromChild, filterFn, guard);
-    },
-    /**
-     * 妫�娴嬭妭鐐筺ode鏄惁灞炴槸UEditor瀹氫箟鐨刡ookmark鑺傜偣
-     * @method isBookmarkNode
-     * @private
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @return { Boolean } 鏄惁鏄痓ookmark鑺傜偣
-     * @example
-     * ```html
-     * <span id="_baidu_bookmark_1"></span>
-     * <script>
-     *      var bookmarkNode = document.getElementById("_baidu_bookmark_1");
-     *      //output: true
-     *      console.log( UE.dom.domUtils.isBookmarkNode( bookmarkNode ) );
-     * </script>
-     * ```
-     */
-    isBookmarkNode: function(node) {
-      return node.nodeType == 1 && node.id && /^_baidu_bookmark_/i.test(node.id);
-    },
-    /**
-     * 鑾峰彇鑺傜偣node鎵�灞炵殑window瀵硅薄
-     * @method  getWindow
-     * @param { Node } node 鑺傜偣瀵硅薄
-     * @return { Window } 褰撳墠鑺傜偣鎵�灞炵殑window瀵硅薄
-     * @example
-     * ```javascript
-     * //output: true
-     * console.log( UE.dom.domUtils.getWindow( document.body ) === window );
-     * ```
-     */
-    getWindow: function(node) {
-      var doc = node.ownerDocument || node;
-      return doc.defaultView || doc.parentWindow;
-    },
-    /**
-     * 鑾峰彇绂籲odeA涓巒odeB鏈�杩戠殑鍏叡鐨勭鍏堣妭鐐�
-     * @method  getCommonAncestor
-     * @param { Node } nodeA 绗竴涓妭鐐�
-     * @param { Node } nodeB 绗簩涓妭鐐�
-     * @remind 濡傛灉缁欏畾鐨勪袱涓妭鐐规槸鍚屼竴涓妭鐐癸紝 灏嗙洿鎺ヨ繑鍥炶鑺傜偣銆�
-     * @return { Node | NULL } 濡傛灉鏈壘鍒板叕鍏辫妭鐐癸紝 杩斿洖NULL锛� 鍚﹀垯杩斿洖鏈�杩戠殑鍏叡绁栧厛鑺傜偣銆�
-     * @example
-     * ```javascript
-     * var commonAncestor = UE.dom.domUtils.getCommonAncestor( document.body, document.body.firstChild );
-     * //output: true
-     * console.log( commonAncestor.tagName.toLowerCase() === 'body' );
-     * ```
-     */
-    getCommonAncestor: function(nodeA, nodeB) {
-      if (nodeA === nodeB)
-        return nodeA;
-      var parentsA = [nodeA],
-        parentsB = [nodeB],
-        parent = nodeA,
-        i = -1;
-      while (parent = parent.parentNode) {
-        if (parent === nodeB) {
-          return parent;
-        }
-        parentsA.push(parent);
-      }
-      parent = nodeB;
-      while (parent = parent.parentNode) {
-        if (parent === nodeA)
-          return parent;
-        parentsB.push(parent);
-      }
-      parentsA.reverse();
-      parentsB.reverse();
-      while (i++, parentsA[i] === parentsB[i]) {}
-      return i == 0 ? null : parentsA[i - 1];
-
-    },
-    /**
-     * 娓呴櫎node鑺傜偣宸﹀彸杩炵画涓虹┖鐨勫厔寮焛nline鑺傜偣
-     * @method clearEmptySibling
-     * @param { Node } node 鎵ц鐨勮妭鐐瑰璞★紝 濡傛灉璇ヨ妭鐐圭殑宸﹀彸杩炵画鐨勫厔寮熻妭鐐规槸绌虹殑inline鑺傜偣锛�
-     * 鍒欒繖浜涘厔寮熻妭鐐瑰皢琚垹闄�
-     * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext)  //ignoreNext鎸囧畾鏄惁蹇界暐鍙宠竟绌鸿妭鐐�
-     * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext,ignorePre)  //ignorePre鎸囧畾鏄惁蹇界暐宸﹁竟绌鸿妭鐐�
-     * @example
-     * ```html
-     * <body>
-     *     <div></div>
-     *     <span id="test"></span>
-     *     <i></i>
-     *     <b></b>
-     *     <em>xxx</em>
-     *     <span></span>
-     * </body>
-     * <script>
-     *
-     *      UE.dom.domUtils.clearEmptySibling( document.getElementById( "test" ) );
-     *
-     *      //output: <div></div><span id="test"></span><em>xxx</em><span></span>
-     *      console.log( document.body.innerHTML );
-     *
-     * </script>
-     * ```
-     */
-
-    /**
-     * 娓呴櫎node鑺傜偣宸﹀彸杩炵画涓虹┖鐨勫厔寮焛nline鑺傜偣锛� 濡傛灉ignoreNext鐨勫�间负true锛�
-     * 鍒欏拷鐣ュ鍙宠竟鍏勫紵鑺傜偣鐨勬搷浣溿��
-     * @method clearEmptySibling
-     * @param { Node } node 鎵ц鐨勮妭鐐瑰璞★紝 濡傛灉璇ヨ妭鐐圭殑宸﹀彸杩炵画鐨勫厔寮熻妭鐐规槸绌虹殑inline鑺傜偣锛�
-     * @param { Boolean } ignoreNext 鏄惁蹇界暐蹇界暐瀵瑰彸杈圭殑鍏勫紵鑺傜偣鐨勬搷浣�
-     * 鍒欒繖浜涘厔寮熻妭鐐瑰皢琚垹闄�
-     * @see UE.dom.domUtils.clearEmptySibling(Node)
-     */
-
-    /**
-     * 娓呴櫎node鑺傜偣宸﹀彸杩炵画涓虹┖鐨勫厔寮焛nline鑺傜偣锛� 濡傛灉ignoreNext鐨勫�间负true锛�
-     * 鍒欏拷鐣ュ鍙宠竟鍏勫紵鑺傜偣鐨勬搷浣滐紝 濡傛灉ignorePre鐨勫�间负true锛屽垯蹇界暐瀵瑰乏杈瑰厔寮熻妭鐐圭殑鎿嶄綔銆�
-     * @method clearEmptySibling
-     * @param { Node } node 鎵ц鐨勮妭鐐瑰璞★紝 濡傛灉璇ヨ妭鐐圭殑宸﹀彸杩炵画鐨勫厔寮熻妭鐐规槸绌虹殑inline鑺傜偣锛�
-     * @param { Boolean } ignoreNext 鏄惁蹇界暐蹇界暐瀵瑰彸杈圭殑鍏勫紵鑺傜偣鐨勬搷浣�
-     * @param { Boolean } ignorePre 鏄惁蹇界暐蹇界暐瀵瑰乏杈圭殑鍏勫紵鑺傜偣鐨勬搷浣�
-     * 鍒欒繖浜涘厔寮熻妭鐐瑰皢琚垹闄�
-     * @see UE.dom.domUtils.clearEmptySibling(Node)
-     */
-    clearEmptySibling: function(node, ignoreNext, ignorePre) {
-      function clear(next, dir) {
-        var tmpNode;
-        while (next && !domUtils.isBookmarkNode(next) && (domUtils.isEmptyInlineElement(next)
-            //杩欓噷涓嶈兘鎶婄┖鏍肩畻杩涙潵浼氬惂绌烘牸骞叉帀锛屽嚭鐜版枃瀛楅棿鐨勭┖鏍间涪鎺変簡
-            ||
-            !new RegExp('[^\t\n\r' + domUtils.fillChar + ']').test(next.nodeValue))) {
-          tmpNode = next[dir];
-          domUtils.remove(next);
-          next = tmpNode;
-        }
-      }!ignoreNext && clear(node.nextSibling, 'nextSibling');
-      !ignorePre && clear(node.previousSibling, 'previousSibling');
-    },
-    /**
-     * 灏嗕竴涓枃鏈妭鐐箃extNode鎷嗗垎鎴愪袱涓枃鏈妭鐐癸紝offset鎸囧畾鎷嗗垎浣嶇疆
-     * @method split
-     * @param { Node } textNode 闇�瑕佹媶鍒嗙殑鏂囨湰鑺傜偣瀵硅薄
-     * @param { int } offset 闇�瑕佹媶鍒嗙殑浣嶇疆锛� 浣嶇疆璁$畻浠�0寮�濮�
-     * @return { Node } 鎷嗗垎鍚庡舰鎴愮殑鏂拌妭鐐�
-     * @example
-     * ```html
-     * <div id="test">abcdef</div>
-     * <script>
-     *      var newNode = UE.dom.domUtils.split( document.getElementById( "test" ).firstChild, 3 );
-     *      //output: def
-     *      console.log( newNode.nodeValue );
-     * </script>
-     * ```
-     */
-    split: function(node, offset) {
-      var doc = node.ownerDocument;
-      if (browser.ie && offset == node.nodeValue.length) {
-        var next = doc.createTextNode('');
-        return domUtils.insertAfter(node, next);
-      }
-      var retval = node.splitText(offset);
-      //ie8涓媠plitText涓嶄細璺熸柊childNodes,鎴戜滑鎵嬪姩瑙﹀彂浠栫殑鏇存柊
-      if (browser.ie8) {
-        var tmpNode = doc.createTextNode('');
-        domUtils.insertAfter(retval, tmpNode);
-        domUtils.remove(tmpNode);
-      }
-      return retval;
-    },
-
-    /**
-     * 妫�娴嬫枃鏈妭鐐箃extNode鏄惁涓虹┖鑺傜偣锛堝寘鎷┖鏍笺�佹崲琛屻�佸崰浣嶇绛夊瓧绗︼級
-     * @method  isWhitespace
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @return { Boolean } 妫�娴嬬殑鑺傜偣鏄惁涓虹┖
-     * @example
-     * ```html
-     * <div id="test">
-     *
-     * </div>
-     * <script>
-     *      //output: true
-     *      console.log( UE.dom.domUtils.isWhitespace( document.getElementById("test").firstChild ) );
-     * </script>
-     * ```
-     */
-    isWhitespace: function(node) {
-      return !new RegExp('[^ \t\n\r' + domUtils.fillChar + ']').test(node.nodeValue);
-    },
-    /**
-     * 鑾峰彇鍏冪礌element鐩稿浜巚iewport鐨勪綅缃潗鏍�
-     * @method getXY
-     * @param { Node } element 闇�瑕佽绠椾綅缃殑鑺傜偣瀵硅薄
-     * @return { Object } 杩斿洖褰㈠{x:left,y:top}鐨勪竴涓猭ey-value鏄犲皠瀵硅薄锛� 鍏朵腑閿畑浠h〃姘村钩鍋忕Щ璺濈锛�
-     *                          y浠h〃鍨傜洿鍋忕Щ璺濈銆�
-     *
-     * @example
-     * ```javascript
-     * var location = UE.dom.domUtils.getXY( document.getElementById("test") );
-     * //output: test鐨勫潗鏍囦负: 12, 24
-     * console.log( 'test鐨勫潗鏍囦负锛� ', location.x, ',', location.y );
-     * ```
-     */
-    getXY: function(element) {
-      var x = 0,
-        y = 0;
-      while (element.offsetParent) {
-        y += element.offsetTop;
-        x += element.offsetLeft;
-        element = element.offsetParent;
-      }
-      return {
-        'x': x,
-        'y': y
-      };
-    },
-    /**
-     * 涓哄厓绱爀lement缁戝畾鍘熺敓DOM浜嬩欢锛宼ype涓轰簨浠剁被鍨嬶紝handler涓哄鐞嗗嚱鏁�
-     * @method on
-     * @param { Node } element 闇�瑕佺粦瀹氫簨浠剁殑鑺傜偣瀵硅薄
-     * @param { String } type 缁戝畾鐨勪簨浠剁被鍨�
-     * @param { Function } handler 浜嬩欢澶勭悊鍣�
-     * @example
-     * ```javascript
-     * UE.dom.domUtils.on(document.body,"click",function(e){
-     *     //e涓轰簨浠跺璞★紝this涓鸿鐐瑰嚮鍏冪礌瀵规垙閭d釜
-     * });
-     * ```
-     */
-
-    /**
-     * 涓哄厓绱爀lement缁戝畾鍘熺敓DOM浜嬩欢锛宼ype涓轰簨浠剁被鍨嬶紝handler涓哄鐞嗗嚱鏁�
-     * @method on
-     * @param { Node } element 闇�瑕佺粦瀹氫簨浠剁殑鑺傜偣瀵硅薄
-     * @param { Array } type 缁戝畾鐨勪簨浠剁被鍨嬫暟缁�
-     * @param { Function } handler 浜嬩欢澶勭悊鍣�
-     * @example
-     * ```javascript
-     * UE.dom.domUtils.on(document.body,["click","mousedown"],function(evt){
-     *     //evt涓轰簨浠跺璞★紝this涓鸿鐐瑰嚮鍏冪礌瀵硅薄
-     * });
-     * ```
-     */
-    on: function(element, type, handler) {
-
-      var types = utils.isArray(type) ? type : utils.trim(type).split(/\s+/),
-        k = types.length;
-      if (k)
-        while (k--) {
-          type = types[k];
-          if (element.addEventListener) {
-            element.addEventListener(type, handler, false);
-          } else {
-            if (!handler._d) {
-              handler._d = {
-                els: []
-              };
-            }
-            var key = type + handler.toString(),
-              index = utils.indexOf(handler._d.els, element);
-            if (!handler._d[key] || index == -1) {
-              if (index == -1) {
-                handler._d.els.push(element);
-              }
-              if (!handler._d[key]) {
-                handler._d[key] = function(evt) {
-                  return handler.call(evt.srcElement, evt || window.event);
-                };
-              }
-
-
-              element.attachEvent('on' + type, handler._d[key]);
-            }
-          }
-        }
-      element = null;
-    },
-    /**
-     * 瑙i櫎DOM浜嬩欢缁戝畾
-     * @method un
-     * @param { Node } element 闇�瑕佽В闄や簨浠剁粦瀹氱殑鑺傜偣瀵硅薄
-     * @param { String } type 闇�瑕佹帴瑙︾粦瀹氱殑浜嬩欢绫诲瀷
-     * @param { Function } handler 瀵瑰簲鐨勪簨浠跺鐞嗗櫒
-     * @example
-     * ```javascript
-     * UE.dom.domUtils.un(document.body,"click",function(evt){
-     *     //evt涓轰簨浠跺璞★紝this涓鸿鐐瑰嚮鍏冪礌瀵硅薄
-     * });
-     * ```
-     */
-
-    /**
-     * 瑙i櫎DOM浜嬩欢缁戝畾
-     * @method un
-     * @param { Node } element 闇�瑕佽В闄や簨浠剁粦瀹氱殑鑺傜偣瀵硅薄
-     * @param { Array } type 闇�瑕佹帴瑙︾粦瀹氱殑浜嬩欢绫诲瀷鏁扮粍
-     * @param { Function } handler 瀵瑰簲鐨勪簨浠跺鐞嗗櫒
-     * @example
-     * ```javascript
-     * UE.dom.domUtils.un(document.body, ["click","mousedown"],function(evt){
-     *     //evt涓轰簨浠跺璞★紝this涓鸿鐐瑰嚮鍏冪礌瀵硅薄
-     * });
-     * ```
-     */
-    un: function(element, type, handler) {
-      var types = utils.isArray(type) ? type : utils.trim(type).split(/\s+/),
-        k = types.length;
-      if (k)
-        while (k--) {
-          type = types[k];
-          if (element.removeEventListener) {
-            element.removeEventListener(type, handler, false);
-          } else {
-            var key = type + handler.toString();
-            try {
-              element.detachEvent('on' + type, handler._d ? handler._d[key] : handler);
-            } catch (e) {}
-            if (handler._d && handler._d[key]) {
-              var index = utils.indexOf(handler._d.els, element);
-              if (index != -1) {
-                handler._d.els.splice(index, 1);
-              }
-              handler._d.els.length == 0 && delete handler._d[key];
-            }
-          }
-        }
-    },
-
-    /**
-     * 姣旇緝鑺傜偣nodeA涓庤妭鐐筺odeB鏄惁鍏锋湁鐩稿悓鐨勬爣绛惧悕銆佸睘鎬у悕浠ュ強灞炴�у��
-     * @method  isSameElement
-     * @param { Node } nodeA 闇�瑕佹瘮杈冪殑鑺傜偣
-     * @param { Node } nodeB 闇�瑕佹瘮杈冪殑鑺傜偣
-     * @return { Boolean } 涓や釜鑺傜偣鏄惁鍏锋湁鐩稿悓鐨勬爣绛惧悕銆佸睘鎬у悕浠ュ強灞炴�у��
-     * @example
-     * ```html
-     * <span style="font-size:12px">ssss</span>
-     * <span style="font-size:12px">bbbbb</span>
-     * <span style="font-size:13px">ssss</span>
-     * <span style="font-size:14px">bbbbb</span>
-     *
-     * <script>
-     *
-     *     var nodes = document.getElementsByTagName( "span" );
-     *
-     *     //output: true
-     *     console.log( UE.dom.domUtils.isSameElement( nodes[0], nodes[1] ) );
-     *
-     *     //output: false
-     *     console.log( UE.dom.domUtils.isSameElement( nodes[2], nodes[3] ) );
-     *
-     * </script>
-     * ```
-     */
-    isSameElement: function(nodeA, nodeB) {
-      if (nodeA.tagName != nodeB.tagName) {
-        return false;
-      }
-      var thisAttrs = nodeA.attributes,
-        otherAttrs = nodeB.attributes;
-      if (!ie && thisAttrs.length != otherAttrs.length) {
-        return false;
-      }
-      var attrA, attrB, al = 0,
-        bl = 0;
-      for (var i = 0; attrA = thisAttrs[i++];) {
-        if (attrA.nodeName == 'style') {
-          if (attrA.specified) {
-            al++;
-          }
-          if (domUtils.isSameStyle(nodeA, nodeB)) {
-            continue;
-          } else {
-            return false;
-          }
-        }
-        if (ie) {
-          if (attrA.specified) {
-            al++;
-            attrB = otherAttrs.getNamedItem(attrA.nodeName);
-          } else {
-            continue;
-          }
-        } else {
-          attrB = nodeB.attributes[attrA.nodeName];
-        }
-        if (!attrB.specified || attrA.nodeValue != attrB.nodeValue) {
-          return false;
-        }
-      }
-      // 鏈夊彲鑳絘ttrB鐨勫睘鎬у寘鍚簡attrA鐨勫睘鎬т箣澶栬繕鏈夎嚜宸辩殑灞炴��
-      if (ie) {
-        for (i = 0; attrB = otherAttrs[i++];) {
-          if (attrB.specified) {
-            bl++;
-          }
-        }
-        if (al != bl) {
-          return false;
-        }
-      }
-      return true;
-    },
-
-    /**
-     * 鍒ゆ柇鑺傜偣nodeA涓庤妭鐐筺odeB鐨勫厓绱犵殑style灞炴�ф槸鍚︿竴鑷�
-     * @method isSameStyle
-     * @param { Node } nodeA 闇�瑕佹瘮杈冪殑鑺傜偣
-     * @param { Node } nodeB 闇�瑕佹瘮杈冪殑鑺傜偣
-     * @return { Boolean } 涓や釜鑺傜偣鏄惁鍏锋湁鐩稿悓鐨剆tyle灞炴�у��
-     * @example
-     * ```html
-     * <span style="font-size:12px">ssss</span>
-     * <span style="font-size:12px">bbbbb</span>
-     * <span style="font-size:13px">ssss</span>
-     * <span style="font-size:14px">bbbbb</span>
-     *
-     * <script>
-     *
-     *     var nodes = document.getElementsByTagName( "span" );
-     *
-     *     //output: true
-     *     console.log( UE.dom.domUtils.isSameStyle( nodes[0], nodes[1] ) );
-     *
-     *     //output: false
-     *     console.log( UE.dom.domUtils.isSameStyle( nodes[2], nodes[3] ) );
-     *
-     * </script>
-     * ```
-     */
-    isSameStyle: function(nodeA, nodeB) {
-      var styleA = nodeA.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':'),
-        styleB = nodeB.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':');
-      if (browser.opera) {
-        styleA = nodeA.style;
-        styleB = nodeB.style;
-        if (styleA.length != styleB.length)
-          return false;
-        for (var p in styleA) {
-          if (/^(\d+|csstext)$/i.test(p)) {
-            continue;
-          }
-          if (styleA[p] != styleB[p]) {
-            return false;
-          }
-        }
-        return true;
-      }
-      if (!styleA || !styleB) {
-        return styleA == styleB;
-      }
-      styleA = styleA.split(';');
-      styleB = styleB.split(';');
-      if (styleA.length != styleB.length) {
-        return false;
-      }
-      for (var i = 0, ci; ci = styleA[i++];) {
-        if (utils.indexOf(styleB, ci) == -1) {
-          return false;
-        }
-      }
-      return true;
-    },
-    /**
-     * 妫�鏌ヨ妭鐐筺ode鏄惁涓篵lock鍏冪礌
-     * @method isBlockElm
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @return { Boolean } 鏄惁鏄痓lock鍏冪礌鑺傜偣
-     * @warning 璇ユ柟娉曠殑鍒ゆ柇瑙勫垯濡備笅锛� 濡傛灉璇ュ厓绱犲師鏈槸block鍏冪礌锛� 鍒欎笉璁鸿鍏冪礌褰撳墠鐨刢ss鏍峰紡鏄粈涔堥兘浼氳繑鍥瀟rue锛�
-     *          鍚﹀垯锛屾娴嬭鍏冪礌鐨刢ss鏍峰紡锛� 濡傛灉璇ュ厓绱犲綋鍓嶆槸block鍏冪礌锛� 鍒欒繑鍥瀟rue銆� 鍏朵綑鎯呭喌涓嬮兘杩斿洖false銆�
-     * @example
-     * ```html
-     * <span id="test1" style="display: block"></span>
-     * <span id="test2"></span>
-     * <div id="test3" style="display: inline"></div>
-     *
-     * <script>
-     *
-     *     //output: true
-     *     console.log( UE.dom.domUtils.isBlockElm( document.getElementById("test1") ) );
-     *
-     *     //output: false
-     *     console.log( UE.dom.domUtils.isBlockElm( document.getElementById("test2") ) );
-     *
-     *     //output: true
-     *     console.log( UE.dom.domUtils.isBlockElm( document.getElementById("test3") ) );
-     *
-     * </script>
-     * ```
-     */
-    isBlockElm: function(node) {
-      return node.nodeType == 1 && (dtd.$block[node.tagName] || styleBlock[domUtils.getComputedStyle(node,
-        'display')]) && !dtd.$nonChild[node.tagName];
-    },
-    /**
-     * 妫�娴媙ode鑺傜偣鏄惁涓篵ody鑺傜偣
-     * @method isBody
-     * @param { Element } node 闇�瑕佹娴嬬殑dom鍏冪礌
-     * @return { Boolean } 缁欏畾鐨勫厓绱犳槸鍚︽槸body鍏冪礌
-     * @example
-     * ```javascript
-     * //output: true
-     * console.log( UE.dom.domUtils.isBody( document.body ) );
-     * ```
-     */
-    isBody: function(node) {
-      return node && node.nodeType == 1 && node.tagName.toLowerCase() == 'body';
-    },
-    /**
-     * 浠ode鑺傜偣涓哄垎鐣岋紝灏嗚鑺傜偣鐨勬寚瀹氱鍏堣妭鐐筽arent鎷嗗垎鎴愪袱涓嫭绔嬬殑鑺傜偣锛�
-     * 鎷嗗垎褰㈡垚鐨勪袱涓妭鐐逛箣闂存槸node鑺傜偣
-     * @method breakParent
-     * @param { Node } node 浣滀负鍒嗙晫鐨勮妭鐐瑰璞�
-     * @param { Node } parent 璇ヨ妭鐐瑰繀椤绘槸node鑺傜偣鐨勭鍏堣妭鐐癸紝 涓旀槸block鑺傜偣銆�
-     * @return { Node } 缁欏畾鐨刵ode鍒嗙晫鑺傜偣
-     * @example
-     * ```javascript
-     *
-     *      var node = document.createElement("span"),
-     *          wrapNode = document.createElement( "div" ),
-     *          parent = document.createElement("p");
-     *
-     *      parent.appendChild( node );
-     *      wrapNode.appendChild( parent );
-     *
-     *      //鎷嗗垎鍓�
-     *      //output: <p><span></span></p>
-     *      console.log( wrapNode.innerHTML );
-     *
-     *
-     *      UE.dom.domUtils.breakParent( node, parent );
-     *      //鎷嗗垎鍚�
-     *      //output: <p></p><span></span><p></p>
-     *      console.log( wrapNode.innerHTML );
-     *
-     * ```
-     */
-    breakParent: function(node, parent) {
-      var tmpNode,
-        parentClone = node,
-        clone = node,
-        leftNodes,
-        rightNodes;
-      do {
-        parentClone = parentClone.parentNode;
-        if (leftNodes) {
-          tmpNode = parentClone.cloneNode(false);
-          tmpNode.appendChild(leftNodes);
-          leftNodes = tmpNode;
-          tmpNode = parentClone.cloneNode(false);
-          tmpNode.appendChild(rightNodes);
-          rightNodes = tmpNode;
-        } else {
-          leftNodes = parentClone.cloneNode(false);
-          rightNodes = leftNodes.cloneNode(false);
-        }
-        while (tmpNode = clone.previousSibling) {
-          leftNodes.insertBefore(tmpNode, leftNodes.firstChild);
-        }
-        while (tmpNode = clone.nextSibling) {
-          rightNodes.appendChild(tmpNode);
-        }
-        clone = parentClone;
-      } while (parent !== parentClone);
-      tmpNode = parent.parentNode;
-      tmpNode.insertBefore(leftNodes, parent);
-      tmpNode.insertBefore(rightNodes, parent);
-      tmpNode.insertBefore(node, rightNodes);
-      domUtils.remove(parent);
-      return node;
-    },
-    /**
-     * 妫�鏌ヨ妭鐐筺ode鏄惁鏄┖inline鑺傜偣
-     * @method  isEmptyInlineElement
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @return { Number }  濡傛灉缁欏畾鐨勮妭鐐规槸绌虹殑inline鑺傜偣锛� 鍒欒繑鍥�1, 鍚﹀垯杩斿洖0銆�
-     * @example
-     * ```html
-     * <b><i></i></b> => 1
-     * <b><i></i><u></u></b> => 1
-     * <b></b> => 1
-     * <b>xx<i></i></b> => 0
-     * ```
-     */
-    isEmptyInlineElement: function(node) {
-      if (node.nodeType != 1 || !dtd.$removeEmpty[node.tagName]) {
-        return 0;
-      }
-      node = node.firstChild;
-      while (node) {
-        //濡傛灉鏄垱寤虹殑bookmark灏辫烦杩�
-        if (domUtils.isBookmarkNode(node)) {
-          return 0;
-        }
-        if (node.nodeType == 1 && !domUtils.isEmptyInlineElement(node) ||
-          node.nodeType == 3 && !domUtils.isWhitespace(node)
-        ) {
-          return 0;
-        }
-        node = node.nextSibling;
-      }
-      return 1;
-
-    },
-
-    /**
-     * 鍒犻櫎node鑺傜偣涓嬮灏句袱绔殑绌虹櫧鏂囨湰瀛愯妭鐐�
-     * @method trimWhiteTextNode
-     * @param { Element } node 闇�瑕佹墽琛屽垹闄ゆ搷浣滅殑鍏冪礌瀵硅薄
-     * @example
-     * ```javascript
-     *      var node = document.createElement("div");
-     *
-     *      node.appendChild( document.createTextNode( "" ) );
-     *
-     *      node.appendChild( document.createElement("div") );
-     *
-     *      node.appendChild( document.createTextNode( "" ) );
-     *
-     *      //3
-     *      console.log( node.childNodes.length );
-     *
-     *      UE.dom.domUtils.trimWhiteTextNode( node );
-     *
-     *      //1
-     *      console.log( node.childNodes.length );
-     * ```
-     */
-    trimWhiteTextNode: function(node) {
-      function remove(dir) {
-        var child;
-        while ((child = node[dir]) && child.nodeType == 3 && domUtils.isWhitespace(child)) {
-          node.removeChild(child);
-        }
-      }
-      remove('firstChild');
-      remove('lastChild');
-    },
-
-    /**
-     * 鍚堝苟node鑺傜偣涓嬬浉鍚岀殑瀛愯妭鐐�
-     * @name mergeChild
-     * @desc
-     * UE.dom.domUtils.mergeChild(node,tagName) //tagName瑕佸悎骞剁殑瀛愯妭鐐圭殑鏍囩
-     * @example
-     * <p><span style="font-size:12px;">xx<span style="font-size:12px;">aa</span>xx</span></p>
-     * ==> UE.dom.domUtils.mergeChild(node,'span')
-     * <p><span style="font-size:12px;">xxaaxx</span></p>
-     */
-    mergeChild: function(node, tagName, attrs) {
-      var list = domUtils.getElementsByTagName(node, node.tagName.toLowerCase());
-      for (var i = 0, ci; ci = list[i++];) {
-        if (!ci.parentNode || domUtils.isBookmarkNode(ci)) {
-          continue;
-        }
-        //span鍗曠嫭澶勭悊
-        if (ci.tagName.toLowerCase() == 'span') {
-          if (node === ci.parentNode) {
-            domUtils.trimWhiteTextNode(node);
-            if (node.childNodes.length == 1) {
-              node.style.cssText = ci.style.cssText + ";" + node.style.cssText;
-              domUtils.remove(ci, true);
-              continue;
-            }
-          }
-          ci.style.cssText = node.style.cssText + ';' + ci.style.cssText;
-          if (attrs) {
-            var style = attrs.style;
-            if (style) {
-              style = style.split(';');
-              for (var j = 0, s; s = style[j++];) {
-                ci.style[utils.cssStyleToDomStyle(s.split(':')[0])] = s.split(':')[1];
-              }
-            }
-          }
-          if (domUtils.isSameStyle(ci, node)) {
-            domUtils.remove(ci, true);
-          }
-          continue;
-        }
-        if (domUtils.isSameElement(node, ci)) {
-          domUtils.remove(ci, true);
-        }
-      }
-    },
-
-    /**
-     * 鍘熺敓鏂规硶getElementsByTagName鐨勫皝瑁�
-     * @method getElementsByTagName
-     * @param { Node } node 鐩爣鑺傜偣瀵硅薄
-     * @param { String } tagName 闇�瑕佹煡鎵剧殑鑺傜偣鐨則agName锛� 澶氫釜tagName浠ョ┖鏍煎垎鍓�
-     * @return { Array } 绗﹀悎鏉′欢鐨勮妭鐐归泦鍚�
-     */
-    getElementsByTagName: function(node, name, filter) {
-      if (filter && utils.isString(filter)) {
-        var className = filter;
-        filter = function(node) {
-          return domUtils.hasClass(node, className)
-        }
-      }
-      name = utils.trim(name).replace(/[ ]{2,}/g, ' ').split(' ');
-      var arr = [];
-      for (var n = 0, ni; ni = name[n++];) {
-        var list = node.getElementsByTagName(ni);
-        for (var i = 0, ci; ci = list[i++];) {
-          if (!filter || filter(ci))
-            arr.push(ci);
-        }
-      }
-
-      return arr;
-    },
-    /**
-     * 灏嗚妭鐐筺ode鎻愬彇鍒扮埗鑺傜偣涓�
-     * @method mergeToParent
-     * @param { Element } node 闇�瑕佹彁鍙栫殑鍏冪礌瀵硅薄
-     * @example
-     * ```html
-     * <div id="parent">
-     *     <div id="sub">
-     *         <span id="child"></span>
-     *     </div>
-     * </div>
-     *
-     * <script>
-     *
-     *     var child = document.getElementById( "child" );
-     *
-     *     //output: sub
-     *     console.log( child.parentNode.id );
-     *
-     *     UE.dom.domUtils.mergeToParent( child );
-     *
-     *     //output: parent
-     *     console.log( child.parentNode.id );
-     *
-     * </script>
-     * ```
-     */
-    mergeToParent: function(node) {
-      var parent = node.parentNode;
-      while (parent && dtd.$removeEmpty[parent.tagName]) {
-        if (parent.tagName == node.tagName || parent.tagName == 'A') { //閽堝a鏍囩鍗曠嫭澶勭悊
-          domUtils.trimWhiteTextNode(parent);
-          //span闇�瑕佺壒娈婂鐞�  涓嶅鐞嗚繖鏍风殑鎯呭喌 <span stlye="color:#fff">xxx<span style="color:#ccc">xxx</span>xxx</span>
-          if (parent.tagName == 'SPAN' && !domUtils.isSameStyle(parent, node) ||
-            (parent.tagName == 'A' && node.tagName == 'SPAN')) {
-            if (parent.childNodes.length > 1 || parent !== node.parentNode) {
-              node.style.cssText = parent.style.cssText + ";" + node.style.cssText;
-              parent = parent.parentNode;
-              continue;
-            } else {
-              parent.style.cssText += ";" + node.style.cssText;
-              //trace:952 a鏍囩瑕佷繚鎸佷笅鍒掔嚎
-              if (parent.tagName == 'A') {
-                parent.style.textDecoration = 'underline';
-              }
-            }
-          }
-          if (parent.tagName != 'A') {
-            parent === node.parentNode && domUtils.remove(node, true);
-            break;
-          }
-        }
-        parent = parent.parentNode;
-      }
-    },
-    /**
-     * 鍚堝苟鑺傜偣node鐨勫乏鍙冲厔寮熻妭鐐�
-     * @method mergeSibling
-     * @param { Element } node 闇�瑕佸悎骞剁殑鐩爣鑺傜偣
-     * @example
-     * ```html
-     * <b>xxxx</b><b id="test">ooo</b><b>xxxx</b>
-     *
-     * <script>
-     *     var demoNode = document.getElementById("test");
-     *     UE.dom.domUtils.mergeSibling( demoNode );
-     *     //output: xxxxoooxxxx
-     *     console.log( demoNode.innerHTML );
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鍚堝苟鑺傜偣node鐨勫乏鍙冲厔寮熻妭鐐癸紝 鍙互鏍规嵁缁欏畾鐨勬潯浠堕�夋嫨鏄惁蹇界暐鍚堝苟宸﹁妭鐐广��
-     * @method mergeSibling
-     * @param { Element } node 闇�瑕佸悎骞剁殑鐩爣鑺傜偣
-     * @param { Boolean } ignorePre 鏄惁蹇界暐鍚堝苟宸﹁妭鐐�
-     * @example
-     * ```html
-     * <b>xxxx</b><b id="test">ooo</b><b>xxxx</b>
-     *
-     * <script>
-     *     var demoNode = document.getElementById("test");
-     *     UE.dom.domUtils.mergeSibling( demoNode, true );
-     *     //output: oooxxxx
-     *     console.log( demoNode.innerHTML );
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鍚堝苟鑺傜偣node鐨勫乏鍙冲厔寮熻妭鐐癸紝鍙互鏍规嵁缁欏畾鐨勬潯浠堕�夋嫨鏄惁蹇界暐鍚堝苟宸﹀彸鑺傜偣銆�
-     * @method mergeSibling
-     * @param { Element } node 闇�瑕佸悎骞剁殑鐩爣鑺傜偣
-     * @param { Boolean } ignorePre 鏄惁蹇界暐鍚堝苟宸﹁妭鐐�
-     * @param { Boolean } ignoreNext 鏄惁蹇界暐鍚堝苟鍙宠妭鐐�
-     * @remind 濡傛灉鍚屾椂蹇界暐宸﹀彸鑺傜偣锛� 鍒欒鎿嶄綔浠�涔堜篃涓嶄細鍋�
-     * @example
-     * ```html
-     * <b>xxxx</b><b id="test">ooo</b><b>xxxx</b>
-     *
-     * <script>
-     *     var demoNode = document.getElementById("test");
-     *     UE.dom.domUtils.mergeSibling( demoNode, false, true );
-     *     //output: xxxxooo
-     *     console.log( demoNode.innerHTML );
-     * </script>
-     * ```
-     */
-    mergeSibling: function(node, ignorePre, ignoreNext) {
-      function merge(rtl, start, node) {
-        var next;
-        if ((next = node[rtl]) && !domUtils.isBookmarkNode(next) && next.nodeType == 1 && domUtils.isSameElement(
-            node, next)) {
-          while (next.firstChild) {
-            if (start == 'firstChild') {
-              node.insertBefore(next.lastChild, node.firstChild);
-            } else {
-              node.appendChild(next.firstChild);
-            }
-          }
-          domUtils.remove(next);
-        }
-      }!ignorePre && merge('previousSibling', 'firstChild', node);
-      !ignoreNext && merge('nextSibling', 'lastChild', node);
-    },
-
-    /**
-     * 璁剧疆鑺傜偣node鍙婂叾瀛愯妭鐐逛笉浼氳閫変腑
-     * @method unSelectable
-     * @param { Element } node 闇�瑕佹墽琛屾搷浣滅殑dom鍏冪礌
-     * @remind 鎵ц璇ユ搷浣滃悗鐨勮妭鐐癸紝 灏嗕笉鑳借榧犳爣閫変腑
-     * @example
-     * ```javascript
-     * UE.dom.domUtils.unSelectable( document.body );
-     * ```
-     */
-    unSelectable: ie && browser.ie9below || browser.opera ? function(node) {
-      //for ie9
-      node.onselectstart = function() {
-        return false;
-      };
-      node.onclick = node.onkeyup = node.onkeydown = function() {
-        return false;
-      };
-      node.unselectable = 'on';
-      node.setAttribute("unselectable", "on");
-      for (var i = 0, ci; ci = node.all[i++];) {
-        switch (ci.tagName.toLowerCase()) {
-          case 'iframe':
-          case 'textarea':
-          case 'input':
-          case 'select':
-            break;
-          default:
-            ci.unselectable = 'on';
-            node.setAttribute("unselectable", "on");
-        }
-      }
-    } : function(node) {
-      node.style.MozUserSelect =
-        node.style.webkitUserSelect =
-        node.style.msUserSelect =
-        node.style.KhtmlUserSelect = 'none';
-    },
-    /**
-     * 鍒犻櫎鑺傜偣node涓婄殑鎸囧畾灞炴�у悕绉扮殑灞炴��
-     * @method  removeAttributes
-     * @param { Node } node 闇�瑕佸垹闄ゅ睘鎬х殑鑺傜偣瀵硅薄
-     * @param { String } attrNames 鍙互鏄┖鏍奸殧寮�鐨勫涓睘鎬у悕绉帮紝璇ユ搷浣滃皢浼氫緷娆″垹闄ょ浉搴旂殑灞炴��
-     * @example
-     * ```html
-     * <div id="wrap">
-     *      <span style="font-size:14px;" id="test" name="followMe">xxxxx</span>
-     * </div>
-     *
-     * <script>
-     *
-     *     UE.dom.domUtils.removeAttributes( document.getElementById( "test" ), "id name" );
-     *
-     *     //output: <span style="font-size:14px;">xxxxx</span>
-     *     console.log( document.getElementById("wrap").innerHTML );
-     *
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鍒犻櫎鑺傜偣node涓婄殑鎸囧畾灞炴�у悕绉扮殑灞炴��
-     * @method  removeAttributes
-     * @param { Node } node 闇�瑕佸垹闄ゅ睘鎬х殑鑺傜偣瀵硅薄
-     * @param { Array } attrNames 闇�瑕佸垹闄ょ殑灞炴�у悕鏁扮粍
-     * @example
-     * ```html
-     * <div id="wrap">
-     *      <span style="font-size:14px;" id="test" name="followMe">xxxxx</span>
-     * </div>
-     *
-     * <script>
-     *
-     *     UE.dom.domUtils.removeAttributes( document.getElementById( "test" ), ["id", "name"] );
-     *
-     *     //output: <span style="font-size:14px;">xxxxx</span>
-     *     console.log( document.getElementById("wrap").innerHTML );
-     *
-     * </script>
-     * ```
-     */
-    removeAttributes: function(node, attrNames) {
-      attrNames = utils.isArray(attrNames) ? attrNames : utils.trim(attrNames).replace(/[ ]{2,}/g, ' ').split(' ');
-      for (var i = 0, ci; ci = attrNames[i++];) {
-        ci = attrFix[ci] || ci;
-        switch (ci) {
-          case 'className':
-            node[ci] = '';
-            break;
-          case 'style':
-            node.style.cssText = '';
-            var val = node.getAttributeNode('style');
-            !browser.ie && val && node.removeAttributeNode(val);
-        }
-        node.removeAttribute(ci);
-      }
-    },
-    /**
-     * 鍦╠oc涓嬪垱寤轰竴涓爣绛惧悕涓簍ag锛屽睘鎬т负attrs鐨勫厓绱�
-     * @method createElement
-     * @param { DomDocument } doc 鏂板垱寤虹殑鍏冪礌灞炰簬璇ocument鑺傜偣鍒涘缓
-     * @param { String } tagName 闇�瑕佸垱寤虹殑鍏冪礌鐨勬爣绛惧悕
-     * @param { Object } attrs 鏂板垱寤虹殑鍏冪礌鐨勫睘鎬ey-value闆嗗悎
-     * @return { Element } 鏂板垱寤虹殑鍏冪礌瀵硅薄
-     * @example
-     * ```javascript
-     * var ele = UE.dom.domUtils.createElement( document, 'div', {
-     *     id: 'test'
-     * } );
-     *
-     * //output: DIV
-     * console.log( ele.tagName );
-     *
-     * //output: test
-     * console.log( ele.id );
-     *
-     * ```
-     */
-    createElement: function(doc, tag, attrs) {
-      return domUtils.setAttributes(doc.createElement(tag), attrs)
-    },
-    /**
-     * 涓鸿妭鐐筺ode娣诲姞灞炴�ttrs锛宎ttrs涓哄睘鎬ч敭鍊煎
-     * @method setAttributes
-     * @param { Element } node 闇�瑕佽缃睘鎬х殑鍏冪礌瀵硅薄
-     * @param { Object } attrs 闇�瑕佽缃殑灞炴�у悕-鍊煎
-     * @return { Element } 璁剧疆灞炴�х殑鍏冪礌瀵硅薄
-     * @example
-     * ```html
-     * <span id="test"></span>
-     *
-     * <script>
-     *
-     *     var testNode = UE.dom.domUtils.setAttributes( document.getElementById( "test" ), {
-     *         id: 'demo'
-     *     } );
-     *
-     *     //output: demo
-     *     console.log( testNode.id );
-     *
-     * </script>
-     *
-     */
-    setAttributes: function(node, attrs) {
-      for (var attr in attrs) {
-        if (attrs.hasOwnProperty(attr)) {
-          var value = attrs[attr];
-          switch (attr) {
-            case 'class':
-              //ie涓嬭杩欐牱璧嬪�硷紝setAttribute涓嶈捣浣滅敤
-              node.className = value;
-              break;
-            case 'style':
-              node.style.cssText = node.style.cssText + ";" + value;
-              break;
-            case 'innerHTML':
-              node[attr] = value;
-              break;
-            case 'value':
-              node.value = value;
-              break;
-            default:
-              node.setAttribute(attrFix[attr] || attr, value);
-          }
-        }
-      }
-      return node;
-    },
-
-    /**
-     * 鑾峰彇鍏冪礌element缁忚繃璁$畻鍚庣殑鏍峰紡鍊�
-     * @method getComputedStyle
-     * @param { Element } element 闇�瑕佽幏鍙栨牱寮忕殑鍏冪礌瀵硅薄
-     * @param { String } styleName 闇�瑕佽幏鍙栫殑鏍峰紡鍚�
-     * @return { String } 鑾峰彇鍒扮殑鏍峰紡鍊�
-     * @example
-     * ```html
-     * <style type="text/css">
-     *      #test {
-     *          font-size: 15px;
-     *      }
-     * </style>
-     *
-     * <span id="test"></span>
-     *
-     * <script>
-     *     //output: 15px
-     *     console.log( UE.dom.domUtils.getComputedStyle( document.getElementById( "test" ), 'font-size' ) );
-     * </script>
-     * ```
-     */
-    getComputedStyle: function(element, styleName) {
-      //涓�涓嬬殑灞炴�у崟鐙鐞�
-      var pros = 'width height top left';
-
-      if (pros.indexOf(styleName) > -1) {
-        return element['offset' + styleName.replace(/^\w/, function(s) {
-          return s.toUpperCase()
-        })] + 'px';
-      }
-      //蹇界暐鏂囨湰鑺傜偣
-      if (element.nodeType == 3) {
-        element = element.parentNode;
-      }
-      //ie涓媐ont-size鑻ody涓嬪畾涔変簡font-size锛屽垯浠巆urrentStyle閲屼細鍙栧埌杩欎釜font-size. 鍙栦笉鍒板疄闄呭�硷紝鏁呮淇敼.
-      if (browser.ie && browser.version < 9 && styleName == 'font-size' && !element.style.fontSize &&
-        !dtd.$empty[element.tagName] && !dtd.$nonChild[element.tagName]) {
-        var span = element.ownerDocument.createElement('span');
-        span.style.cssText = 'padding:0;border:0;font-family:simsun;';
-        span.innerHTML = '.';
-        element.appendChild(span);
-        var result = span.offsetHeight;
-        element.removeChild(span);
-        span = null;
-        return result + 'px';
-      }
-      try {
-        var value = domUtils.getStyle(element, styleName) ||
-          (window.getComputedStyle ? domUtils.getWindow(element).getComputedStyle(element, '').getPropertyValue(
-              styleName) :
-            (element.currentStyle || element.style)[utils.cssStyleToDomStyle(styleName)]);
-
-      } catch (e) {
-        return "";
-      }
-      return utils.transUnitToPx(utils.fixColor(styleName, value));
-    },
-    /**
-     * 鍒犻櫎鍏冪礌element鎸囧畾鐨刢lassName
-     * @method removeClasses
-     * @param { Element } ele 闇�瑕佸垹闄lass鐨勫厓绱犺妭鐐�
-     * @param { String } classNames 闇�瑕佸垹闄ょ殑className锛� 澶氫釜className涔嬮棿浠ョ┖鏍煎垎寮�
-     * @example
-     * ```html
-     * <span id="test" class="test1 test2 test3">xxx</span>
-     *
-     * <script>
-     *
-     *     var testNode = document.getElementById( "test" );
-     *     UE.dom.domUtils.removeClasses( testNode, "test1 test2" );
-     *
-     *     //output: test3
-     *     console.log( testNode.className );
-     *
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鍒犻櫎鍏冪礌element鎸囧畾鐨刢lassName
-     * @method removeClasses
-     * @param { Element } ele 闇�瑕佸垹闄lass鐨勫厓绱犺妭鐐�
-     * @param { Array } classNames 闇�瑕佸垹闄ょ殑className鏁扮粍
-     * @example
-     * ```html
-     * <span id="test" class="test1 test2 test3">xxx</span>
-     *
-     * <script>
-     *
-     *     var testNode = document.getElementById( "test" );
-     *     UE.dom.domUtils.removeClasses( testNode, ["test1", "test2"] );
-     *
-     *     //output: test3
-     *     console.log( testNode.className );
-     *
-     * </script>
-     * ```
-     */
-    removeClasses: function(elm, classNames) {
-      classNames = utils.isArray(classNames) ? classNames :
-        utils.trim(classNames).replace(/[ ]{2,}/g, ' ').split(' ');
-      for (var i = 0, ci, cls = elm.className; ci = classNames[i++];) {
-        cls = cls.replace(new RegExp('\\b' + ci + '\\b'), '')
-      }
-      cls = utils.trim(cls).replace(/[ ]{2,}/g, ' ');
-      if (cls) {
-        elm.className = cls;
-      } else {
-        domUtils.removeAttributes(elm, ['class']);
-      }
-    },
-    /**
-     * 缁欏厓绱爀lement娣诲姞className
-     * @method addClass
-     * @param { Node } ele 闇�瑕佸鍔燾lassName鐨勫厓绱�
-     * @param { String } classNames 闇�瑕佹坊鍔犵殑className锛� 澶氫釜className涔嬮棿浠ョ┖鏍煎垎鍓�
-     * @remind 鐩稿悓鐨勭被鍚嶄笉浼氳閲嶅娣诲姞
-     * @example
-     * ```html
-     * <span id="test" class="cls1 cls2"></span>
-     *
-     * <script>
-     *     var testNode = document.getElementById("test");
-     *
-     *     UE.dom.domUtils.addClass( testNode, "cls2 cls3 cls4" );
-     *
-     *     //output: cl1 cls2 cls3 cls4
-     *     console.log( testNode.className );
-     *
-     * <script>
-     * ```
-     */
-
-    /**
-     * 缁欏厓绱爀lement娣诲姞className
-     * @method addClass
-     * @param { Node } ele 闇�瑕佸鍔燾lassName鐨勫厓绱�
-     * @param { Array } classNames 闇�瑕佹坊鍔犵殑className鐨勬暟缁�
-     * @remind 鐩稿悓鐨勭被鍚嶄笉浼氳閲嶅娣诲姞
-     * @example
-     * ```html
-     * <span id="test" class="cls1 cls2"></span>
-     *
-     * <script>
-     *     var testNode = document.getElementById("test");
-     *
-     *     UE.dom.domUtils.addClass( testNode, ["cls2", "cls3", "cls4"] );
-     *
-     *     //output: cl1 cls2 cls3 cls4
-     *     console.log( testNode.className );
-     *
-     * <script>
-     * ```
-     */
-    addClass: function(elm, classNames) {
-      if (!elm) return;
-      classNames = utils.trim(classNames).replace(/[ ]{2,}/g, ' ').split(' ');
-      for (var i = 0, ci, cls = elm.className; ci = classNames[i++];) {
-        if (!new RegExp('\\b' + ci + '\\b').test(cls)) {
-          cls += ' ' + ci;
-        }
-      }
-      elm.className = utils.trim(cls);
-    },
-    /**
-     * 鍒ゆ柇鍏冪礌element鏄惁鍖呭惈缁欏畾鐨勬牱寮忕被鍚峜lassName
-     * @method hasClass
-     * @param { Node } ele 闇�瑕佹娴嬬殑鍏冪礌
-     * @param { String } classNames 闇�瑕佹娴嬬殑className锛� 澶氫釜className涔嬮棿鐢ㄧ┖鏍煎垎鍓�
-     * @return { Boolean } 鍏冪礌鏄惁鍖呭惈鎵�鏈夌粰瀹氱殑className
-     * @example
-     * ```html
-     * <span id="test1" class="cls1 cls2"></span>
-     *
-     * <script>
-     *     var test1 = document.getElementById("test1");
-     *
-     *     //output: false
-     *     console.log( UE.dom.domUtils.hasClass( test1, "cls2 cls1 cls3" ) );
-     *
-     *     //output: true
-     *     console.log( UE.dom.domUtils.hasClass( test1, "cls2 cls1" ) );
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鍒ゆ柇鍏冪礌element鏄惁鍖呭惈缁欏畾鐨勬牱寮忕被鍚峜lassName
-     * @method hasClass
-     * @param { Node } ele 闇�瑕佹娴嬬殑鍏冪礌
-     * @param { Array } classNames 闇�瑕佹娴嬬殑className鏁扮粍
-     * @return { Boolean } 鍏冪礌鏄惁鍖呭惈鎵�鏈夌粰瀹氱殑className
-     * @example
-     * ```html
-     * <span id="test1" class="cls1 cls2"></span>
-     *
-     * <script>
-     *     var test1 = document.getElementById("test1");
-     *
-     *     //output: false
-     *     console.log( UE.dom.domUtils.hasClass( test1, [ "cls2", "cls1", "cls3" ] ) );
-     *
-     *     //output: true
-     *     console.log( UE.dom.domUtils.hasClass( test1, [ "cls2", "cls1" ]) );
-     * </script>
-     * ```
-     */
-    hasClass: function(element, className) {
-      if (utils.isRegExp(className)) {
-        return className.test(element.className)
-      }
-      className = utils.trim(className).replace(/[ ]{2,}/g, ' ').split(' ');
-      for (var i = 0, ci, cls = element.className; ci = className[i++];) {
-        if (!new RegExp('\\b' + ci + '\\b', 'i').test(cls)) {
-          return false;
-        }
-      }
-      return i - 1 == className.length;
-    },
-
-    /**
-     * 闃绘浜嬩欢榛樿琛屼负
-     * @method preventDefault
-     * @param { Event } evt 闇�瑕侀樆姝㈤粯璁よ涓虹殑浜嬩欢瀵硅薄
-     * @example
-     * ```javascript
-     * UE.dom.domUtils.preventDefault( evt );
-     * ```
-     */
-    preventDefault: function(evt) {
-      evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);
-    },
-    /**
-     * 鍒犻櫎鍏冪礌element鎸囧畾鐨勬牱寮�
-     * @method removeStyle
-     * @param { Element } element 闇�瑕佸垹闄ゆ牱寮忕殑鍏冪礌
-     * @param { String } styleName 闇�瑕佸垹闄ょ殑鏍峰紡鍚�
-     * @example
-     * ```html
-     * <span id="test" style="color: red; background: blue;"></span>
-     *
-     * <script>
-     *
-     *     var testNode = document.getElementById("test");
-     *
-     *     UE.dom.domUtils.removeStyle( testNode, 'color' );
-     *
-     *     //output: background: blue;
-     *     console.log( testNode.style.cssText );
-     *
-     * </script>
-     * ```
-     */
-    removeStyle: function(element, name) {
-      if (browser.ie) {
-        //閽堝color鍏堝崟鐙鐞嗕竴涓�
-        if (name == 'color') {
-          name = '(^|;)' + name;
-        }
-        element.style.cssText = element.style.cssText.replace(new RegExp(name + '[^:]*:[^;]+;?', 'ig'), '')
-      } else {
-        if (element.style.removeProperty) {
-          element.style.removeProperty(name);
-        } else {
-          element.style.removeAttribute(utils.cssStyleToDomStyle(name));
-        }
-      }
-
-
-      if (!element.style.cssText) {
-        domUtils.removeAttributes(element, ['style']);
-      }
-    },
-    /**
-     * 鑾峰彇鍏冪礌element鐨剆tyle灞炴�х殑鎸囧畾鍊�
-     * @method getStyle
-     * @param { Element } element 闇�瑕佽幏鍙栧睘鎬у�肩殑鍏冪礌
-     * @param { String } styleName 闇�瑕佽幏鍙栫殑style鐨勫悕绉�
-     * @warning 璇ユ柟娉曚粎鑾峰彇鍏冪礌style灞炴�т腑鎵�鏍囨槑鐨勫��
-     * @return { String } 璇ュ厓绱犲寘鍚寚瀹氱殑style灞炴�у��
-     * @example
-     * ```html
-     * <div id="test" style="color: red;"></div>
-     *
-     * <script>
-     *
-     *      var testNode = document.getElementById( "test" );
-     *
-     *      //output: red
-     *      console.log( UE.dom.domUtils.getStyle( testNode, "color" ) );
-     *
-     *      //output: ""
-     *      console.log( UE.dom.domUtils.getStyle( testNode, "background" ) );
-     *
-     * </script>
-     * ```
-     */
-    getStyle: function(element, name) {
-      var value = element.style[utils.cssStyleToDomStyle(name)];
-      return utils.fixColor(name, value);
-    },
-    /**
-     * 涓哄厓绱爀lement璁剧疆鏍峰紡灞炴�у��
-     * @method setStyle
-     * @param { Element } element 闇�瑕佽缃牱寮忕殑鍏冪礌
-     * @param { String } styleName 鏍峰紡鍚�
-     * @param { String } styleValue 鏍峰紡鍊�
-     * @example
-     * ```html
-     * <div id="test"></div>
-     *
-     * <script>
-     *
-     *      var testNode = document.getElementById( "test" );
-     *
-     *      //output: ""
-     *      console.log( testNode.style.color );
-     *
-     *      UE.dom.domUtils.setStyle( testNode, 'color', 'red' );
-     *      //output: "red"
-     *      console.log( testNode.style.color );
-     *
-     * </script>
-     * ```
-     */
-    setStyle: function(element, name, value) {
-      element.style[utils.cssStyleToDomStyle(name)] = value;
-      if (!utils.trim(element.style.cssText)) {
-        this.removeAttributes(element, 'style')
-      }
-    },
-    /**
-     * 涓哄厓绱爀lement璁剧疆澶氫釜鏍峰紡灞炴�у��
-     * @method setStyles
-     * @param { Element } element 闇�瑕佽缃牱寮忕殑鍏冪礌
-     * @param { Object } styles 鏍峰紡鍚嶅�煎
-     * @example
-     * ```html
-     * <div id="test"></div>
-     *
-     * <script>
-     *
-     *      var testNode = document.getElementById( "test" );
-     *
-     *      //output: ""
-     *      console.log( testNode.style.color );
-     *
-     *      UE.dom.domUtils.setStyles( testNode, {
-     *          'color': 'red'
-     *      } );
-     *      //output: "red"
-     *      console.log( testNode.style.color );
-     *
-     * </script>
-     * ```
-     */
-    setStyles: function(element, styles) {
-      for (var name in styles) {
-        if (styles.hasOwnProperty(name)) {
-          domUtils.setStyle(element, name, styles[name]);
-        }
-      }
-    },
-    /**
-     * 鍒犻櫎_moz_dirty灞炴��
-     * @private
-     * @method removeDirtyAttr
-     */
-    removeDirtyAttr: function(node) {
-      for (var i = 0, ci, nodes = node.getElementsByTagName('*'); ci = nodes[i++];) {
-        ci.removeAttribute('_moz_dirty');
-      }
-      node.removeAttribute('_moz_dirty');
-    },
-    /**
-     * 鑾峰彇瀛愯妭鐐圭殑鏁伴噺
-     * @method getChildCount
-     * @param { Element } node 闇�瑕佹娴嬬殑鍏冪礌
-     * @return { Number } 缁欏畾鐨刵ode鍏冪礌鐨勫瓙鑺傜偣鏁伴噺
-     * @example
-     * ```html
-     * <div id="test">
-     *      <span></span>
-     * </div>
-     *
-     * <script>
-     *
-     *     //output: 3
-     *     console.log( UE.dom.domUtils.getChildCount( document.getElementById("test") ) );
-     *
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鏍规嵁缁欏畾鐨勮繃婊よ鍒欙紝 鑾峰彇绗﹀悎鏉′欢鐨勫瓙鑺傜偣鐨勬暟閲�
-     * @method getChildCount
-     * @param { Element } node 闇�瑕佹娴嬬殑鍏冪礌
-     * @param { Function } fn 杩囨护鍣紝 瑕佹眰瀵圭鍚堟潯浠剁殑瀛愯妭鐐硅繑鍥瀟rue锛� 鍙嶄箣鍒欒姹傝繑鍥瀎alse
-     * @return { Number } 绗﹀悎杩囨护鏉′欢鐨刵ode鍏冪礌鐨勫瓙鑺傜偣鏁伴噺
-     * @example
-     * ```html
-     * <div id="test">
-     *      <span></span>
-     * </div>
-     *
-     * <script>
-     *
-     *     //output: 1
-     *     console.log( UE.dom.domUtils.getChildCount( document.getElementById("test"), function ( node ) {
-     *
-     *         return node.nodeType === 1;
-     *
-     *     } ) );
-     *
-     * </script>
-     * ```
-     */
-    getChildCount: function(node, fn) {
-      var count = 0,
-        first = node.firstChild;
-      fn = fn || function() {
-        return 1;
-      };
-      while (first) {
-        if (fn(first)) {
-          count++;
-        }
-        first = first.nextSibling;
-      }
-      return count;
-    },
-
-    /**
-     * 鍒ゆ柇缁欏畾鑺傜偣鏄惁涓虹┖鑺傜偣
-     * @method isEmptyNode
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @return { Boolean } 鑺傜偣鏄惁涓虹┖
-     * @example
-     * ```javascript
-     * UE.dom.domUtils.isEmptyNode( document.body );
-     * ```
-     */
-    isEmptyNode: function(node) {
-      return !node.firstChild || domUtils.getChildCount(node, function(node) {
-        return !domUtils.isBr(node) && !domUtils.isBookmarkNode(node) && !domUtils.isWhitespace(node)
-      }) == 0
-    },
-    clearSelectedArr: function(nodes) {
-      var node;
-      while (node = nodes.pop()) {
-        domUtils.removeAttributes(node, ['class']);
-      }
-    },
-    /**
-     * 灏嗘樉绀哄尯鍩熸粴鍔ㄥ埌鎸囧畾鑺傜偣鐨勪綅缃�
-     * @method scrollToView
-     * @param    {Node}   node    鑺傜偣
-     * @param    {window}   win      window瀵硅薄
-     * @param    {Number}    offsetTop    璺濈涓婃柟鐨勫亸绉婚噺
-     */
-    scrollToView: function(node, win, offsetTop) {
-      var getViewPaneSize = function() {
-          var doc = win.document,
-            mode = doc.compatMode == 'CSS1Compat';
-          return {
-            width: (mode ? doc.documentElement.clientWidth : doc.body.clientWidth) || 0,
-            height: (mode ? doc.documentElement.clientHeight : doc.body.clientHeight) || 0
-          };
-        },
-        getScrollPosition = function(win) {
-          if ('pageXOffset' in win) {
-            return {
-              x: win.pageXOffset || 0,
-              y: win.pageYOffset || 0
-            };
-          } else {
-            var doc = win.document;
-            return {
-              x: doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,
-              y: doc.documentElement.scrollTop || doc.body.scrollTop || 0
-            };
-          }
-        };
-      var winHeight = getViewPaneSize().height,
-        offset = winHeight * -1 + offsetTop;
-      offset += (node.offsetHeight || 0);
-      var elementPosition = domUtils.getXY(node);
-      offset += elementPosition.y;
-      var currentScroll = getScrollPosition(win).y;
-      // offset += 50;
-      if (offset > currentScroll || offset < currentScroll - winHeight) {
-        win.scrollTo(0, offset + (offset < 0 ? -20 : 20));
-      }
-    },
-    /**
-     * 鍒ゆ柇缁欏畾鑺傜偣鏄惁涓篵r
-     * @method isBr
-     * @param { Node } node 闇�瑕佸垽鏂殑鑺傜偣瀵硅薄
-     * @return { Boolean } 缁欏畾鐨勮妭鐐规槸鍚︽槸br鑺傜偣
-     */
-    isBr: function(node) {
-      return node.nodeType == 1 && node.tagName == 'BR';
-    },
-    /**
-     * 鍒ゆ柇缁欏畾鐨勮妭鐐规槸鍚︽槸涓�涓�滃~鍏呪�濊妭鐐�
-     * @private
-     * @method isFillChar
-     * @param { Node } node 闇�瑕佸垽鏂殑鑺傜偣
-     * @param { Boolean } isInStart 鏄惁浠庤妭鐐瑰唴瀹圭殑寮�濮嬩綅缃尮閰�
-     * @returns { Boolean } 鑺傜偣鏄惁鏄~鍏呰妭鐐�
-     */
-    isFillChar: function(node, isInStart) {
-      if (node.nodeType != 3)
-        return false;
-      var text = node.nodeValue;
-      if (isInStart) {
-        return new RegExp('^' + domUtils.fillChar).test(text)
-      }
-      return !text.replace(new RegExp(domUtils.fillChar, 'g'), '').length
-    },
-    isStartInblock: function(range) {
-      var tmpRange = range.cloneRange(),
-        flag = 0,
-        start = tmpRange.startContainer,
-        tmp;
-      if (start.nodeType == 1 && start.childNodes[tmpRange.startOffset]) {
-        start = start.childNodes[tmpRange.startOffset];
-        var pre = start.previousSibling;
-        while (pre && domUtils.isFillChar(pre)) {
-          start = pre;
-          pre = pre.previousSibling;
-        }
-      }
-      if (this.isFillChar(start, true) && tmpRange.startOffset == 1) {
-        tmpRange.setStartBefore(start);
-        start = tmpRange.startContainer;
-      }
-
-      while (start && domUtils.isFillChar(start)) {
-        tmp = start;
-        start = start.previousSibling
-      }
-      if (tmp) {
-        tmpRange.setStartBefore(tmp);
-        start = tmpRange.startContainer;
-      }
-      if (start.nodeType == 1 && domUtils.isEmptyNode(start) && tmpRange.startOffset == 1) {
-        tmpRange.setStart(start, 0).collapse(true);
-      }
-      while (!tmpRange.startOffset) {
-        start = tmpRange.startContainer;
-        if (domUtils.isBlockElm(start) || domUtils.isBody(start)) {
-          flag = 1;
-          break;
-        }
-        var pre = tmpRange.startContainer.previousSibling,
-          tmpNode;
-        if (!pre) {
-          tmpRange.setStartBefore(tmpRange.startContainer);
-        } else {
-          while (pre && domUtils.isFillChar(pre)) {
-            tmpNode = pre;
-            pre = pre.previousSibling;
-          }
-          if (tmpNode) {
-            tmpRange.setStartBefore(tmpNode);
-          } else {
-            tmpRange.setStartBefore(tmpRange.startContainer);
-          }
-        }
-      }
-      return flag && !domUtils.isBody(tmpRange.startContainer) ? 1 : 0;
-    },
-
-    /**
-     * 鍒ゆ柇缁欏畾鐨勫厓绱犳槸鍚︽槸涓�涓┖鍏冪礌
-     * @method isEmptyBlock
-     * @param { Element } node 闇�瑕佸垽鏂殑鍏冪礌
-     * @return { Boolean } 鏄惁鏄┖鍏冪礌
-     * @example
-     * ```html
-     * <div id="test"></div>
-     *
-     * <script>
-     *     //output: true
-     *     console.log( UE.dom.domUtils.isEmptyBlock( document.getElementById("test") ) );
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鏍规嵁鎸囧畾鐨勫垽鏂鍒欏垽鏂粰瀹氱殑鍏冪礌鏄惁鏄竴涓┖鍏冪礌
-     * @method isEmptyBlock
-     * @param { Element } node 闇�瑕佸垽鏂殑鍏冪礌
-     * @param { RegExp } reg 瀵瑰唴瀹规墽琛屽垽鏂殑姝e垯琛ㄨ揪寮忓璞�
-     * @return { Boolean } 鏄惁鏄┖鍏冪礌
-     */
-    isEmptyBlock: function(node, reg) {
-      // HaoChuan9421
-      if (!node) {
-        return;
-      }
-      if (node.nodeType != 1)
-        return 0;
-      reg = reg || new RegExp('[ \xa0\t\r\n' + domUtils.fillChar + ']', 'g');
-
-      if (node[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').length > 0) {
-        return 0;
-      }
-      for (var n in dtd.$isNotEmpty) {
-        if (node.getElementsByTagName(n).length) {
-          return 0;
-        }
-      }
-      return 1;
-    },
-
-    /**
-     * 绉诲姩鍏冪礌浣垮緱璇ュ厓绱犵殑浣嶇疆绉诲姩鎸囧畾鐨勫亸绉婚噺鐨勮窛绂�
-     * @method setViewportOffset
-     * @param { Element } element 闇�瑕佽缃亸绉婚噺鐨勫厓绱�
-     * @param { Object } offset 鍋忕Щ閲忥紝 褰㈠{ left: 100, top: 50 }鐨勪竴涓敭鍊煎锛� 琛ㄧず璇ュ厓绱犲皢鍦�
-     *                                  鐜版湁鐨勪綅缃笂鍚戞按骞虫柟鍚戝亸绉籵ffset.left鐨勮窛绂伙紝 鍦ㄧ珫鐩存柟鍚戜笂鍋忕Щ
-     *                                  offset.top鐨勮窛绂�
-     * @example
-     * ```html
-     * <div id="test" style="top: 100px; left: 50px; position: absolute;"></div>
-     *
-     * <script>
-     *
-     *     var testNode = document.getElementById("test");
-     *
-     *     UE.dom.domUtils.setViewportOffset( testNode, {
-     *         left: 200,
-     *         top: 50
-     *     } );
-     *
-     *     //output: top: 300px; left: 100px; position: absolute;
-     *     console.log( testNode.style.cssText );
-     *
-     * </script>
-     * ```
-     */
-    setViewportOffset: function(element, offset) {
-      var left = parseInt(element.style.left) | 0;
-      var top = parseInt(element.style.top) | 0;
-      var rect = element.getBoundingClientRect();
-      var offsetLeft = offset.left - rect.left;
-      var offsetTop = offset.top - rect.top;
-      if (offsetLeft) {
-        element.style.left = left + offsetLeft + 'px';
-      }
-      if (offsetTop) {
-        element.style.top = top + offsetTop + 'px';
-      }
-    },
-
-    /**
-     * 鐢ㄢ�滃~鍏呭瓧绗︹�濆~鍏呰妭鐐�
-     * @method fillNode
-     * @private
-     * @param { DomDocument } doc 濉厖鐨勮妭鐐规墍鍦ㄧ殑docment瀵硅薄
-     * @param { Node } node 闇�瑕佸~鍏呯殑鑺傜偣瀵硅薄
-     * @example
-     * ```html
-     * <div id="test"></div>
-     *
-     * <script>
-     *     var testNode = document.getElementById("test");
-     *
-     *     //output: 0
-     *     console.log( testNode.childNodes.length );
-     *
-     *     UE.dom.domUtils.fillNode( document, testNode );
-     *
-     *     //output: 1
-     *     console.log( testNode.childNodes.length );
-     *
-     * </script>
-     * ```
-     */
-    fillNode: function(doc, node) {
-      var tmpNode = browser.ie ? doc.createTextNode(domUtils.fillChar) : doc.createElement('br');
-      node.innerHTML = '';
-      node.appendChild(tmpNode);
-    },
-
-    /**
-     * 鎶婅妭鐐箂rc鐨勬墍鏈夊瓙鑺傜偣杩藉姞鍒板彟涓�涓妭鐐箃ag涓婂幓
-     * @method moveChild
-     * @param { Node } src 婧愯妭鐐癸紝 璇ヨ妭鐐逛笅鐨勬墍鏈夊瓙鑺傜偣灏嗚绉婚櫎
-     * @param { Node } tag 鐩爣鑺傜偣锛� 浠庢簮鑺傜偣绉婚櫎鐨勫瓙鑺傜偣灏嗚杩藉姞鍒拌鑺傜偣涓�
-     * @example
-     * ```html
-     * <div id="test1">
-     *      <span></span>
-     * </div>
-     * <div id="test2">
-     *     <div></div>
-     * </div>
-     *
-     * <script>
-     *
-     *     var test1 = document.getElementById("test1"),
-     *         test2 = document.getElementById("test2");
-     *
-     *     UE.dom.domUtils.moveChild( test1, test2 );
-     *
-     *     //output: ""锛堢┖瀛楃涓诧級
-     *     console.log( test1.innerHTML );
-     *
-     *     //output: "<div></div><span></span>"
-     *     console.log( test2.innerHTML );
-     *
-     * </script>
-     * ```
-     */
-
-    /**
-     * 鎶婅妭鐐箂rc鐨勬墍鏈夊瓙鑺傜偣绉诲姩鍒板彟涓�涓妭鐐箃ag涓婂幓, 鍙互閫氳繃dir鍙傛暟鎺у埗闄勫姞鐨勮涓烘槸鈥滆拷鍔犫�濊繕鏄�滄彃鍏ラ《閮ㄢ��
-     * @method moveChild
-     * @param { Node } src 婧愯妭鐐癸紝 璇ヨ妭鐐逛笅鐨勬墍鏈夊瓙鑺傜偣灏嗚绉婚櫎
-     * @param { Node } tag 鐩爣鑺傜偣锛� 浠庢簮鑺傜偣绉婚櫎鐨勫瓙鑺傜偣灏嗚闄勫姞鍒拌鑺傜偣涓�
-     * @param { Boolean } dir 闄勫姞鏂瑰紡锛� 濡傛灉涓簍rue锛� 鍒欓檮鍔犺繘鍘荤殑鑺傜偣灏嗚鏀惧埌鐩爣鑺傜偣鐨勯《閮紝 鍙嶄箣锛屽垯鏀惧埌鏈熬
-     * @example
-     * ```html
-     * <div id="test1">
-     *      <span></span>
-     * </div>
-     * <div id="test2">
-     *     <div></div>
-     * </div>
-     *
-     * <script>
-     *
-     *     var test1 = document.getElementById("test1"),
-     *         test2 = document.getElementById("test2");
-     *
-     *     UE.dom.domUtils.moveChild( test1, test2, true );
-     *
-     *     //output: ""锛堢┖瀛楃涓诧級
-     *     console.log( test1.innerHTML );
-     *
-     *     //output: "<span></span><div></div>"
-     *     console.log( test2.innerHTML );
-     *
-     * </script>
-     * ```
-     */
-    moveChild: function(src, tag, dir) {
-      while (src.firstChild) {
-        if (dir && tag.firstChild) {
-          tag.insertBefore(src.lastChild, tag.firstChild);
-        } else {
-          tag.appendChild(src.firstChild);
-        }
-      }
-    },
-
-    /**
-     * 鍒ゆ柇鑺傜偣鐨勬爣绛句笂鏄惁涓嶅瓨鍦ㄤ换浣曞睘鎬�
-     * @method hasNoAttributes
-     * @private
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @return { Boolean } 鑺傜偣鏄惁涓嶅寘鍚换浣曞睘鎬�
-     * @example
-     * ```html
-     * <div id="test"><span>xxxx</span></div>
-     *
-     * <script>
-     *
-     *     //output: false
-     *     console.log( UE.dom.domUtils.hasNoAttributes( document.getElementById("test") ) );
-     *
-     *     //output: true
-     *     console.log( UE.dom.domUtils.hasNoAttributes( document.getElementById("test").firstChild ) );
-     *
-     * </script>
-     * ```
-     */
-    hasNoAttributes: function(node) {
-      return browser.ie ? /^<\w+\s*?>/.test(node.outerHTML) : node.attributes.length == 0;
-    },
-
-    /**
-     * 妫�娴嬭妭鐐规槸鍚︽槸UEditor鎵�浣跨敤鐨勮緟鍔╄妭鐐�
-     * @method isCustomeNode
-     * @private
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣
-     * @remind 杈呭姪鑺傜偣鏄寚缂栬緫鍣ㄨ瀹屾垚宸ヤ綔涓存椂娣诲姞鐨勮妭鐐癸紝 鍦ㄨ緭鍑虹殑鏃跺�欏皢浼氫粠缂栬緫鍣ㄥ唴绉婚櫎锛� 涓嶄細褰卞搷鏈�缁堢殑缁撴灉銆�
-     * @return { Boolean } 缁欏畾鐨勮妭鐐规槸鍚︽槸涓�涓緟鍔╄妭鐐�
-     */
-    isCustomeNode: function(node) {
-      return node.nodeType == 1 && node.getAttribute('_ue_custom_node_');
-    },
-
-    /**
-     * 妫�娴嬭妭鐐圭殑鏍囩鏄惁鏄粰瀹氱殑鏍囩
-     * @method isTagNode
-     * @param { Node } node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @param { String } tagName 鏍囩
-     * @return { Boolean } 鑺傜偣鐨勬爣绛炬槸鍚︽槸缁欏畾鐨勬爣绛�
-     * @example
-     * ```html
-     * <div id="test"></div>
-     *
-     * <script>
-     *
-     *     //output: true
-     *     console.log( UE.dom.domUtils.isTagNode( document.getElementById("test"), "div" ) );
-     *
-     * </script>
-     * ```
-     */
-    isTagNode: function(node, tagNames) {
-      return node.nodeType == 1 && new RegExp('\\b' + node.tagName + '\\b', 'i').test(tagNames)
-    },
-
-    /**
-     * 缁欏畾涓�涓妭鐐规暟缁勶紝鍦ㄩ�氳繃鎸囧畾鐨勮繃婊ゅ櫒杩囨护鍚庯紝 鑾峰彇鍏朵腑婊¤冻杩囨护鏉′欢鐨勭涓�涓妭鐐�
-     * @method filterNodeList
-     * @param { Array } nodeList 闇�瑕佽繃婊ょ殑鑺傜偣鏁扮粍
-     * @param { Function } fn 杩囨护鍣紝 瀵圭鍚堟潯浠剁殑鑺傜偣锛� 鎵ц缁撴灉杩斿洖true锛� 鍙嶄箣鍒欒繑鍥瀎alse
-     * @return { Node | NULL } 濡傛灉鎵惧埌绗﹀悎杩囨护鏉′欢鐨勮妭鐐癸紝 鍒欒繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-     * @example
-     * ```javascript
-     * var divNodes = document.getElementsByTagName("div");
-     * divNodes = [].slice.call( divNodes, 0 );
-     *
-     * //output: null
-     * console.log( UE.dom.domUtils.filterNodeList( divNodes, function ( node ) {
-     *     return node.tagName.toLowerCase() !== 'div';
-     * } ) );
-     * ```
-     */
-
-    /**
-     * 缁欏畾涓�涓妭鐐规暟缁刵odeList鍜屼竴缁勬爣绛惧悕tagNames锛� 鑾峰彇鍏朵腑鑳藉鍖归厤鏍囩鍚嶇殑鑺傜偣闆嗗悎涓殑绗竴涓妭鐐�
-     * @method filterNodeList
-     * @param { Array } nodeList 闇�瑕佽繃婊ょ殑鑺傜偣鏁扮粍
-     * @param { String } tagNames 闇�瑕佸尮閰嶇殑鏍囩鍚嶏紝 澶氫釜鏍囩鍚嶄箣闂寸敤绌烘牸鍒嗗壊
-     * @return { Node | NULL } 濡傛灉鎵惧埌鏍囩鍚嶅尮閰嶇殑鑺傜偣锛� 鍒欒繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-     * @example
-     * ```javascript
-     * var divNodes = document.getElementsByTagName("div");
-     * divNodes = [].slice.call( divNodes, 0 );
-     *
-     * //output: null
-     * console.log( UE.dom.domUtils.filterNodeList( divNodes, 'a span' ) );
-     * ```
-     */
-
-    /**
-     * 缁欏畾涓�涓妭鐐规暟缁勶紝鍦ㄩ�氳繃鎸囧畾鐨勮繃婊ゅ櫒杩囨护鍚庯紝 濡傛灉鍙傛暟forAll涓簍rue锛� 鍒欎細杩斿洖鎵�鏈夋弧瓒宠繃婊�
-     * 鏉′欢鐨勮妭鐐归泦鍚堬紝 鍚﹀垯锛� 杩斿洖婊¤冻鏉′欢鐨勮妭鐐归泦鍚堜腑鐨勭涓�涓妭鐐�
-     * @method filterNodeList
-     * @param { Array } nodeList 闇�瑕佽繃婊ょ殑鑺傜偣鏁扮粍
-     * @param { Function } fn 杩囨护鍣紝 瀵圭鍚堟潯浠剁殑鑺傜偣锛� 鎵ц缁撴灉杩斿洖true锛� 鍙嶄箣鍒欒繑鍥瀎alse
-     * @param { Boolean } forAll 鏄惁杩斿洖鏁翠釜鑺傜偣鏁扮粍, 濡傛灉璇ュ弬鏁颁负false锛� 鍒欒繑鍥炶妭鐐归泦鍚堜腑鐨勭涓�涓妭鐐�
-     * @return { Array | Node | NULL } 濡傛灉鎵惧埌绗﹀悎杩囨护鏉′欢鐨勮妭鐐癸紝 鍒欐牴鎹弬鏁癴orAll鐨勫�煎喅瀹氳繑鍥炴弧瓒�
-     *                                      杩囨护鏉′欢鐨勮妭鐐规暟缁勬垨绗竴涓妭鐐癸紝 鍚﹀垯杩斿洖NULL
-     * @example
-     * ```javascript
-     * var divNodes = document.getElementsByTagName("div");
-     * divNodes = [].slice.call( divNodes, 0 );
-     *
-     * //output: 3锛堝亣瀹氭湁3涓猟iv锛�
-     * console.log( divNodes.length );
-     *
-     * var nodes = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) {
-     *     return node.tagName.toLowerCase() === 'div';
-     * }, true );
-     *
-     * //output: 3
-     * console.log( nodes.length );
-     *
-     * var node = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) {
-     *     return node.tagName.toLowerCase() === 'div';
-     * }, false );
-     *
-     * //output: div
-     * console.log( node.nodeName );
-     * ```
-     */
-    filterNodeList: function(nodelist, filter, forAll) {
-      var results = [];
-      if (!utils.isFunction(filter)) {
-        var str = filter;
-        filter = function(n) {
-          return utils.indexOf(utils.isArray(str) ? str : str.split(' '), n.tagName.toLowerCase()) != -1
-        };
-      }
-      utils.each(nodelist, function(n) {
-        filter(n) && results.push(n)
-      });
-      return results.length == 0 ? null : results.length == 1 || !forAll ? results[0] : results
-    },
-
-    /**
-     * 鏌ヨ缁欏畾鐨剅ange閫夊尯鏄惁鍦ㄧ粰瀹氱殑node鑺傜偣鍐咃紝涓斿湪璇ヨ妭鐐圭殑鏈�鏈熬
-     * @method isInNodeEndBoundary
-     * @param { UE.dom.Range } rng 闇�瑕佸垽鏂殑range瀵硅薄锛� 璇ュ璞$殑startContainer涓嶈兘涓篘ULL
-     * @param node 闇�瑕佹娴嬬殑鑺傜偣瀵硅薄
-     * @return { Number } 濡傛灉缁欏畾鐨勯�夊彇range瀵硅薄鏄湪node鍐呴儴鐨勬渶鏈锛� 鍒欒繑鍥�1, 鍚﹀垯杩斿洖0
-     */
-    isInNodeEndBoundary: function(rng, node) {
-      var start = rng.startContainer;
-      if (start.nodeType == 3 && rng.startOffset != start.nodeValue.length) {
-        return 0;
-      }
-      if (start.nodeType == 1 && rng.startOffset != start.childNodes.length) {
-        return 0;
-      }
-      while (start !== node) {
-        if (start.nextSibling) {
-          return 0
-        };
-        start = start.parentNode;
-      }
-      return 1;
-    },
-    isBoundaryNode: function(node, dir) {
-      var tmp;
-      while (!domUtils.isBody(node)) {
-        tmp = node;
-        node = node.parentNode;
-        if (tmp !== node[dir]) {
-          return false;
-        }
-      }
-      return true;
-    },
-    fillHtml: browser.ie11below ? '&nbsp;' : '<br/>'
-  };
-  var fillCharReg = new RegExp(domUtils.fillChar, 'g');
-
-  // core/Range.js
-  /**
-   * Range灏佽
-   * @file
-   * @module UE.dom
-   * @class Range
-   * @since 1.2.6.1
-   */
-
-  /**
-   * dom鎿嶄綔灏佽
-   * @unfile
-   * @module UE.dom
-   */
-
-  /**
-   * Range瀹炵幇绫伙紝鏈被鏄疷Editor搴曞眰鏍稿績绫伙紝灏佽涓嶅悓娴忚鍣ㄤ箣闂寸殑Range鎿嶄綔銆�
-   * @unfile
-   * @module UE.dom
-   * @class Range
-   */
-
-
-  (function() {
-    var guid = 0,
-      fillChar = domUtils.fillChar,
-      fillData;
-
-    /**
-     * 鏇存柊range鐨刢ollapse鐘舵��
-     * @param  {Range}   range    range瀵硅薄
-     */
-    function updateCollapse(range) {
-      range.collapsed =
-        range.startContainer && range.endContainer &&
-        range.startContainer === range.endContainer &&
-        range.startOffset == range.endOffset;
-    }
-
-    function selectOneNode(rng) {
-      return !rng.collapsed && rng.startContainer.nodeType == 1 && rng.startContainer === rng.endContainer && rng.endOffset -
-        rng.startOffset == 1
-    }
-
-    function setEndPoint(toStart, node, offset, range) {
-      //濡傛灉node鏄嚜闂悎鏍囩瑕佸鐞�
-      if (node.nodeType == 1 && (dtd.$empty[node.tagName] || dtd.$nonChild[node.tagName])) {
-        offset = domUtils.getNodeIndex(node) + (toStart ? 0 : 1);
-        node = node.parentNode;
-      }
-      if (toStart) {
-        range.startContainer = node;
-        range.startOffset = offset;
-        if (!range.endContainer) {
-          range.collapse(true);
-        }
-      } else {
-        range.endContainer = node;
-        range.endOffset = offset;
-        if (!range.startContainer) {
-          range.collapse(false);
-        }
-      }
-      updateCollapse(range);
-      return range;
-    }
-
-    function execContentsAction(range, action) {
-      //璋冩暣杈圭晫
-      //range.includeBookmark();
-      var start = range.startContainer,
-        end = range.endContainer,
-        startOffset = range.startOffset,
-        endOffset = range.endOffset,
-        doc = range.document,
-        frag = doc.createDocumentFragment(),
-        tmpStart, tmpEnd;
-      if (start.nodeType == 1) {
-        start = start.childNodes[startOffset] || (tmpStart = start.appendChild(doc.createTextNode('')));
-      }
-      if (end.nodeType == 1) {
-        end = end.childNodes[endOffset] || (tmpEnd = end.appendChild(doc.createTextNode('')));
-      }
-      if (start === end && start.nodeType == 3) {
-        frag.appendChild(doc.createTextNode(start.substringData(startOffset, endOffset - startOffset)));
-        //is not clone
-        if (action) {
-          start.deleteData(startOffset, endOffset - startOffset);
-          range.collapse(true);
-        }
-        return frag;
-      }
-      var current, currentLevel, clone = frag,
-        startParents = domUtils.findParents(start, true),
-        endParents = domUtils.findParents(end, true);
-      for (var i = 0; startParents[i] == endParents[i];) {
-        i++;
-      }
-      for (var j = i, si; si = startParents[j]; j++) {
-        current = si.nextSibling;
-        if (si == start) {
-          if (!tmpStart) {
-            if (range.startContainer.nodeType == 3) {
-              clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset)));
-              //is not clone
-              if (action) {
-                start.deleteData(startOffset, start.nodeValue.length - startOffset);
-              }
-            } else {
-              clone.appendChild(!action ? start.cloneNode(true) : start);
-            }
-          }
-        } else {
-          currentLevel = si.cloneNode(false);
-          clone.appendChild(currentLevel);
-        }
-        while (current) {
-          if (current === end || current === endParents[j]) {
-            break;
-          }
-          si = current.nextSibling;
-          clone.appendChild(!action ? current.cloneNode(true) : current);
-          current = si;
-        }
-        clone = currentLevel;
-      }
-      clone = frag;
-      if (!startParents[i]) {
-        clone.appendChild(startParents[i - 1].cloneNode(false));
-        clone = clone.firstChild;
-      }
-      for (var j = i, ei; ei = endParents[j]; j++) {
-        current = ei.previousSibling;
-        if (ei == end) {
-          if (!tmpEnd && range.endContainer.nodeType == 3) {
-            clone.appendChild(doc.createTextNode(end.substringData(0, endOffset)));
-            //is not clone
-            if (action) {
-              end.deleteData(0, endOffset);
-            }
-          }
-        } else {
-          currentLevel = ei.cloneNode(false);
-          clone.appendChild(currentLevel);
-        }
-        //濡傛灉涓ょ鍚岀骇锛屽彸杈圭涓�娆″凡缁忚寮�濮嬪仛浜�
-        if (j != i || !startParents[i]) {
-          while (current) {
-            if (current === start) {
-              break;
-            }
-            ei = current.previousSibling;
-            clone.insertBefore(!action ? current.cloneNode(true) : current, clone.firstChild);
-            current = ei;
-          }
-        }
-        clone = currentLevel;
-      }
-      if (action) {
-        range.setStartBefore(!endParents[i] ? endParents[i - 1] : !startParents[i] ? startParents[i - 1] :
-          endParents[i]).collapse(true);
-      }
-      tmpStart && domUtils.remove(tmpStart);
-      tmpEnd && domUtils.remove(tmpEnd);
-      return frag;
-    }
-
-    /**
-     * 鍒涘缓涓�涓窡document缁戝畾鐨勭┖鐨凴ange瀹炰緥
-     * @constructor
-     * @param { Document } document 鏂板缓鐨勯�夊尯鎵�灞炵殑鏂囨。瀵硅薄
-     */
-
-    /**
-     * @property { Node } startContainer 褰撳墠Range鐨勫紑濮嬭竟鐣岀殑瀹瑰櫒鑺傜偣, 鍙互鏄竴涓厓绱犺妭鐐规垨鑰呮槸鏂囨湰鑺傜偣
-     */
-
-    /**
-     * @property { Node } startOffset 褰撳墠Range鐨勫紑濮嬭竟鐣屽鍣ㄨ妭鐐圭殑鍋忕Щ閲�, 濡傛灉鏄厓绱犺妭鐐癸紝
-     *                              璇ュ�煎氨鏄痗hildNodes涓殑绗嚑涓妭鐐癸紝 濡傛灉鏄枃鏈妭鐐瑰氨鏄枃鏈唴瀹圭殑绗嚑涓瓧绗�
-     */
-
-    /**
-     * @property { Node } endContainer 褰撳墠Range鐨勭粨鏉熻竟鐣岀殑瀹瑰櫒鑺傜偣, 鍙互鏄竴涓厓绱犺妭鐐规垨鑰呮槸鏂囨湰鑺傜偣
-     */
-
-    /**
-     * @property { Node } endOffset 褰撳墠Range鐨勭粨鏉熻竟鐣屽鍣ㄨ妭鐐圭殑鍋忕Щ閲�, 濡傛灉鏄厓绱犺妭鐐癸紝
-     *                              璇ュ�煎氨鏄痗hildNodes涓殑绗嚑涓妭鐐癸紝 濡傛灉鏄枃鏈妭鐐瑰氨鏄枃鏈唴瀹圭殑绗嚑涓瓧绗�
-     */
-
-    /**
-     * @property { Boolean } collapsed 褰撳墠Range鏄惁闂悎
-     * @default true
-     * @remind Range鏄棴鍚堢殑鏃跺�欙紝 startContainer === endContainer && startOffset === endOffset
-     */
-
-    /**
-     * @property { Document } document 褰撳墠Range鎵�灞炵殑Document瀵硅薄
-     * @remind 涓嶅悓range鐨勭殑document灞炴�у彲浠ユ槸涓嶅悓鐨�
-     */
-    var Range = dom.Range = function(document) {
-      var me = this;
-      me.startContainer =
-        me.startOffset =
-        me.endContainer =
-        me.endOffset = null;
-      me.document = document;
-      me.collapsed = true;
-    };
-
-    /**
-     * 鍒犻櫎fillData
-     * @param doc
-     * @param excludeNode
-     */
-    function removeFillData(doc, excludeNode) {
-      try {
-        if (fillData && domUtils.inDoc(fillData, doc)) {
-          if (!fillData.nodeValue.replace(fillCharReg, '').length) {
-            var tmpNode = fillData.parentNode;
-            domUtils.remove(fillData);
-            while (tmpNode && domUtils.isEmptyInlineElement(tmpNode) &&
-              //safari鐨刢ontains鏈塨ug
-              (browser.safari ? !(domUtils.getPosition(tmpNode, excludeNode) & domUtils.POSITION_CONTAINS) : !
-                tmpNode.contains(excludeNode))
-            ) {
-              fillData = tmpNode.parentNode;
-              domUtils.remove(tmpNode);
-              tmpNode = fillData;
-            }
-          } else {
-            fillData.nodeValue = fillData.nodeValue.replace(fillCharReg, '');
-          }
-        }
-      } catch (e) {}
-    }
-
-    /**
-     * @param node
-     * @param dir
-     */
-    function mergeSibling(node, dir) {
-      var tmpNode;
-      node = node[dir];
-      while (node && domUtils.isFillChar(node)) {
-        tmpNode = node[dir];
-        domUtils.remove(node);
-        node = tmpNode;
-      }
-    }
-
-    Range.prototype = {
-
-      /**
-       * 鍏嬮殕閫夊尯鐨勫唴瀹瑰埌涓�涓狣ocumentFragment閲�
-       * @method cloneContents
-       * @return { DocumentFragment | NULL } 濡傛灉閫夊尯鏄棴鍚堢殑灏嗚繑鍥瀗ull锛� 鍚﹀垯锛� 杩斿洖鍖呭惈鎵�clone鍐呭鐨凞ocumentFragment鍏冪礌
-       * @example
-       * ```html
-       * <body>
-       *      <!-- 涓嫭鍙疯〃绀洪�夊尯 -->
-       *      <b>x<i>x[x</i>xx]x</b>
-       *
-       *      <script>
-       *          //range鏄凡閫変腑鐨勯�夊尯
-       *          var fragment = range.cloneContents(),
-       *              node = document.createElement("div");
-       *
-       *          node.appendChild( fragment );
-       *
-       *          //output: <i>x</i>xx
-       *          console.log( node.innerHTML );
-       *
-       *      </script>
-       * </body>
-       * ```
-       */
-      cloneContents: function() {
-        return this.collapsed ? null : execContentsAction(this, 0);
-      },
-
-      /**
-       * 鍒犻櫎褰撳墠閫夊尯鑼冨洿涓殑鎵�鏈夊唴瀹�
-       * @method deleteContents
-       * @remind 鎵ц瀹岃鎿嶄綔鍚庯紝 褰撳墠Range瀵硅薄鍙樻垚浜嗛棴鍚堢姸鎬�
-       * @return { UE.dom.Range } 褰撳墠鎿嶄綔鐨凴ange瀵硅薄
-       * @example
-       * ```html
-       * <body>
-       *      <!-- 涓嫭鍙疯〃绀洪�夊尯 -->
-       *      <b>x<i>x[x</i>xx]x</b>
-       *
-       *      <script>
-       *          //range鏄凡閫変腑鐨勯�夊尯
-       *          range.deleteContents();
-       *
-       *          //绔栫嚎琛ㄧず闂悎鍚庣殑閫夊尯浣嶇疆
-       *          //output: <b>x<i>x</i>|x</b>
-       *          console.log( document.body.innerHTML );
-       *
-       *          //姝ゆ椂锛� range鐨勫悇椤瑰睘鎬т负
-       *          //output: B
-       *          console.log( range.startContainer.tagName );
-       *          //output: 2
-       *          console.log( range.startOffset );
-       *          //output: B
-       *          console.log( range.endContainer.tagName );
-       *          //output: 2
-       *          console.log( range.endOffset );
-       *          //output: true
-       *          console.log( range.collapsed );
-       *
-       *      </script>
-       * </body>
-       * ```
-       */
-      deleteContents: function() {
-        var txt;
-        if (!this.collapsed) {
-          execContentsAction(this, 1);
-        }
-        if (browser.webkit) {
-          txt = this.startContainer;
-          if (txt.nodeType == 3 && !txt.nodeValue.length) {
-            this.setStartBefore(txt).collapse(true);
-            domUtils.remove(txt);
-          }
-        }
-        return this;
-      },
-
-      /**
-       * 灏嗗綋鍓嶉�夊尯鐨勫唴瀹规彁鍙栧埌涓�涓狣ocumentFragment閲�
-       * @method extractContents
-       * @remind 鎵ц璇ユ搷浣滃悗锛� 閫夊尯灏嗗彉鎴愰棴鍚堢姸鎬�
-       * @warning 鎵ц璇ユ搷浣滃悗锛� 鍘熸潵閫夊尯鎵�閫変腑鐨勫唴瀹瑰皢浠巇om鏍戜笂鍓ョ鍑烘潵
-       * @return { DocumentFragment } 杩斿洖鍖呭惈鎵�鎻愬彇鍐呭鐨凞ocumentFragment瀵硅薄
-       * @example
-       * ```html
-       * <body>
-       *      <!-- 涓嫭鍙疯〃绀洪�夊尯 -->
-       *      <b>x<i>x[x</i>xx]x</b>
-       *
-       *      <script>
-       *          //range鏄凡閫変腑鐨勯�夊尯
-       *          var fragment = range.extractContents(),
-       *              node = document.createElement( "div" );
-       *
-       *          node.appendChild( fragment );
-       *
-       *          //绔栫嚎琛ㄧず闂悎鍚庣殑閫夊尯浣嶇疆
-       *
-       *          //output: <b>x<i>x</i>|x</b>
-       *          console.log( document.body.innerHTML );
-       *          //output: <i>x</i>xx
-       *          console.log( node.innerHTML );
-       *
-       *          //姝ゆ椂锛� range鐨勫悇椤瑰睘鎬т负
-       *          //output: B
-       *          console.log( range.startContainer.tagName );
-       *          //output: 2
-       *          console.log( range.startOffset );
-       *          //output: B
-       *          console.log( range.endContainer.tagName );
-       *          //output: 2
-       *          console.log( range.endOffset );
-       *          //output: true
-       *          console.log( range.collapsed );
-       *
-       *      </script>
-       * </body>
-       */
-      extractContents: function() {
-        return this.collapsed ? null : execContentsAction(this, 2);
-      },
-
-      /**
-       * 璁剧疆Range鐨勫紑濮嬪鍣ㄨ妭鐐瑰拰鍋忕Щ閲�
-       * @method  setStart
-       * @remind 濡傛灉缁欏畾鐨勮妭鐐规槸鍏冪礌鑺傜偣锛岄偅涔坥ffset鎸囩殑鏄叾瀛愬厓绱犱腑绱㈠紩涓簅ffset鐨勫厓绱狅紝
-       *          濡傛灉鏄枃鏈妭鐐癸紝閭d箞offset鎸囩殑鏄叾鏂囨湰鍐呭鐨勭offset涓瓧绗�
-       * @remind 濡傛灉鎻愪緵鐨勫鍣ㄨ妭鐐规槸涓�涓笉鑳藉寘鍚瓙鍏冪礌鐨勮妭鐐癸紝 鍒欒閫夊尯鐨勫紑濮嬪鍣ㄥ皢琚缃�
-       *          涓鸿鑺傜偣鐨勭埗鑺傜偣锛� 姝ゆ椂锛� 鍏惰窛绂诲紑濮嬪鍣ㄧ殑鍋忕Щ閲忎篃鍙樻垚浜嗚鑺傜偣鍦ㄥ叾鐖惰妭鐐�
-       *          涓殑绱㈠紩
-       * @param { Node } node 灏嗚璁句负褰撳墠閫夊尯寮�濮嬭竟鐣屽鍣ㄧ殑鑺傜偣瀵硅薄
-       * @param { int } offset 閫夊尯鐨勫紑濮嬩綅缃亸绉婚噺
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       * <!-- 閫夊尯 -->
-       * <b>xxx<i>x<span>xx</span>xx<em>xx</em>xxx</i>[xxx]</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.setStart( document.getElementsByTagName("i")[0], 1 );
-       *
-       *     //姝ゆ椂锛� 閫夊尯鍙樻垚浜�
-       *     //<b>xxx<i>x[<span>xx</span>xx<em>xx</em>xxx</i>xxx]</b>
-       *
-       * </script>
-       * ```
-       * @example
-       * ```html
-       * <!-- 閫夊尯 -->
-       * <b>xxx<img>[xx]x</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.setStart( document.getElementsByTagName("img")[0], 3 );
-       *
-       *     //姝ゆ椂锛� 閫夊尯鍙樻垚浜�
-       *     //<b>xxx[<img>xx]x</b>
-       *
-       * </script>
-       * ```
-       */
-      setStart: function(node, offset) {
-        return setEndPoint(true, node, offset, this);
-      },
-
-      /**
-       * 璁剧疆Range鐨勭粨鏉熷鍣ㄥ拰鍋忕Щ閲�
-       * @method  setEnd
-       * @param { Node } node 浣滀负褰撳墠閫夊尯缁撴潫杈圭晫瀹瑰櫒鐨勮妭鐐瑰璞�
-       * @param { int } offset 缁撴潫杈圭晫鐨勫亸绉婚噺
-       * @see UE.dom.Range:setStart(Node,int)
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      setEnd: function(node, offset) {
-        return setEndPoint(false, node, offset, this);
-      },
-
-      /**
-       * 灏哛ange寮�濮嬩綅缃缃埌node鑺傜偣涔嬪悗
-       * @method  setStartAfter
-       * @remind 璇ユ搷浣滃皢浼氭妸缁欏畾鑺傜偣鐨勭埗鑺傜偣浣滀负range鐨勫紑濮嬪鍣紝 涓斿亸绉婚噺鏄鑺傜偣鍦ㄥ叾鐖惰妭鐐逛腑鐨勪綅缃储寮�+1
-       * @param { Node } node 閫夊尯鐨勫紑濮嬭竟鐣屽皢绱ф帴鐫�璇ヨ妭鐐逛箣鍚�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       * <!-- 閫夊尯绀轰緥 -->
-       * <b>xx<i>xxx</i><span>xx[x</span>xxx]</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.setStartAfter( document.getElementsByTagName("i")[0] );
-       *
-       *     //缁撴灉閫夊尯
-       *     //<b>xx<i>xxx</i>[<span>xxx</span>xxx]</b>
-       *
-       * </script>
-       * ```
-       */
-      setStartAfter: function(node) {
-        return this.setStart(node.parentNode, domUtils.getNodeIndex(node) + 1);
-      },
-
-      /**
-       * 灏哛ange寮�濮嬩綅缃缃埌node鑺傜偣涔嬪墠
-       * @method  setStartBefore
-       * @remind 璇ユ搷浣滃皢浼氭妸缁欏畾鑺傜偣鐨勭埗鑺傜偣浣滀负range鐨勫紑濮嬪鍣紝 涓斿亸绉婚噺鏄鑺傜偣鍦ㄥ叾鐖惰妭鐐逛腑鐨勪綅缃储寮�
-       * @param { Node } node 鏂扮殑閫夊尯寮�濮嬩綅缃湪璇ヨ妭鐐逛箣鍓�
-       * @see UE.dom.Range:setStartAfter(Node)
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      setStartBefore: function(node) {
-        return this.setStart(node.parentNode, domUtils.getNodeIndex(node));
-      },
-
-      /**
-       * 灏哛ange缁撴潫浣嶇疆璁剧疆鍒皀ode鑺傜偣涔嬪悗
-       * @method  setEndAfter
-       * @remind 璇ユ搷浣滃皢浼氭妸缁欏畾鑺傜偣鐨勭埗鑺傜偣浣滀负range鐨勭粨鏉熷鍣紝 涓斿亸绉婚噺鏄鑺傜偣鍦ㄥ叾鐖惰妭鐐逛腑鐨勪綅缃储寮�+1
-       * @param { Node } node 鐩爣鑺傜偣
-       * @see UE.dom.Range:setStartAfter(Node)
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       * <!-- 閫夊尯绀轰緥 -->
-       * <b>[xx<i>xxx</i><span>xx]x</span>xxx</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.setStartAfter( document.getElementsByTagName("span")[0] );
-       *
-       *     //缁撴灉閫夊尯
-       *     //<b>[xx<i>xxx</i><span>xxx</span>]xxx</b>
-       *
-       * </script>
-       * ```
-       */
-      setEndAfter: function(node) {
-        return this.setEnd(node.parentNode, domUtils.getNodeIndex(node) + 1);
-      },
-
-      /**
-       * 灏哛ange缁撴潫浣嶇疆璁剧疆鍒皀ode鑺傜偣涔嬪墠
-       * @method  setEndBefore
-       * @remind 璇ユ搷浣滃皢浼氭妸缁欏畾鑺傜偣鐨勭埗鑺傜偣浣滀负range鐨勭粨鏉熷鍣紝 涓斿亸绉婚噺鏄鑺傜偣鍦ㄥ叾鐖惰妭鐐逛腑鐨勪綅缃储寮�
-       * @param { Node } node 鐩爣鑺傜偣
-       * @see UE.dom.Range:setEndAfter(Node)
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      setEndBefore: function(node) {
-        return this.setEnd(node.parentNode, domUtils.getNodeIndex(node));
-      },
-
-      /**
-       * 璁剧疆Range鐨勫紑濮嬩綅缃埌node鑺傜偣鍐呯殑绗竴涓瓙鑺傜偣涔嬪墠
-       * @method  setStartAtFirst
-       * @remind 閫夊尯鐨勫紑濮嬪鍣ㄥ皢鍙樻垚缁欏畾鐨勮妭鐐癸紝 涓斿亸绉婚噺涓�0
-       * @remind 濡傛灉缁欏畾鐨勮妭鐐规槸鍏冪礌鑺傜偣锛� 鍒欒鑺傜偣蹇呴』鏄厑璁稿寘鍚瓙鑺傜偣鐨勫厓绱犮��
-       * @param { Node } node 鐩爣鑺傜偣
-       * @see UE.dom.Range:setStartBefore(Node)
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       * <!-- 閫夊尯绀轰緥 -->
-       * <b>xx<i>xxx</i><span>[xx]x</span>xxx</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.setStartAtFirst( document.getElementsByTagName("i")[0] );
-       *
-       *     //缁撴灉閫夊尯
-       *     //<b>xx<i>[xxx</i><span>xx]x</span>xxx</b>
-       *
-       * </script>
-       * ```
-       */
-      setStartAtFirst: function(node) {
-        return this.setStart(node, 0);
-      },
-
-      /**
-       * 璁剧疆Range鐨勫紑濮嬩綅缃埌node鑺傜偣鍐呯殑鏈�鍚庝竴涓妭鐐逛箣鍚�
-       * @method setStartAtLast
-       * @remind 閫夊尯鐨勫紑濮嬪鍣ㄥ皢鍙樻垚缁欏畾鐨勮妭鐐癸紝 涓斿亸绉婚噺涓鸿鑺傜偣鐨勫瓙鑺傜偣鏁�
-       * @remind 濡傛灉缁欏畾鐨勮妭鐐规槸鍏冪礌鑺傜偣锛� 鍒欒鑺傜偣蹇呴』鏄厑璁稿寘鍚瓙鑺傜偣鐨勫厓绱犮��
-       * @param { Node } node 鐩爣鑺傜偣
-       * @see UE.dom.Range:setStartAtFirst(Node)
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      setStartAtLast: function(node) {
-        return this.setStart(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length);
-      },
-
-      /**
-       * 璁剧疆Range鐨勭粨鏉熶綅缃埌node鑺傜偣鍐呯殑绗竴涓妭鐐逛箣鍓�
-       * @method  setEndAtFirst
-       * @param { Node } node 鐩爣鑺傜偣
-       * @remind 閫夊尯鐨勭粨鏉熷鍣ㄥ皢鍙樻垚缁欏畾鐨勮妭鐐癸紝 涓斿亸绉婚噺涓�0
-       * @remind node蹇呴』鏄竴涓厓绱犺妭鐐癸紝 涓斿繀椤绘槸鍏佽鍖呭惈瀛愯妭鐐圭殑鍏冪礌銆�
-       * @see UE.dom.Range:setStartAtFirst(Node)
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      setEndAtFirst: function(node) {
-        return this.setEnd(node, 0);
-      },
-
-      /**
-       * 璁剧疆Range鐨勭粨鏉熶綅缃埌node鑺傜偣鍐呯殑鏈�鍚庝竴涓妭鐐逛箣鍚�
-       * @method  setEndAtLast
-       * @param { Node } node 鐩爣鑺傜偣
-       * @remind 閫夊尯鐨勭粨鏉熷鍣ㄥ皢鍙樻垚缁欏畾鐨勮妭鐐癸紝 涓斿亸绉婚噺涓鸿鑺傜偣鐨勫瓙鑺傜偣鏁伴噺
-       * @remind node蹇呴』鏄竴涓厓绱犺妭鐐癸紝 涓斿繀椤绘槸鍏佽鍖呭惈瀛愯妭鐐圭殑鍏冪礌銆�
-       * @see UE.dom.Range:setStartAtFirst(Node)
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      setEndAtLast: function(node) {
-        return this.setEnd(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length);
-      },
-
-      /**
-       * 閫変腑缁欏畾鑺傜偣
-       * @method  selectNode
-       * @remind 姝ゆ椂锛� 閫夊尯鐨勫紑濮嬪鍣ㄥ拰缁撴潫瀹瑰櫒閮芥槸璇ヨ妭鐐圭殑鐖惰妭鐐癸紝 鍏秙tartOffset鏄鑺傜偣鍦ㄧ埗鑺傜偣涓殑浣嶇疆绱㈠紩锛�
-       *          鑰宔ndOffset涓簊tartOffset+1
-       * @param { Node } node 闇�瑕侀�変腑鐨勮妭鐐�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄锛屾鏃剁殑range浠呭寘鍚綋鍓嶇粰瀹氱殑鑺傜偣瀵硅薄
-       * @example
-       * ```html
-       * <!-- 閫夊尯绀轰緥 -->
-       * <b>xx<i>xxx</i><span>[xx]x</span>xxx</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.selectNode( document.getElementsByTagName("i")[0] );
-       *
-       *     //缁撴灉閫夊尯
-       *     //<b>xx[<i>xxx</i>]<span>xxx</span>xxx</b>
-       *
-       * </script>
-       * ```
-       */
-      selectNode: function(node) {
-        return this.setStartBefore(node).setEndAfter(node);
-      },
-
-      /**
-       * 閫変腑缁欏畾鑺傜偣鍐呴儴鐨勬墍鏈夎妭鐐�
-       * @method  selectNodeContents
-       * @remind 姝ゆ椂锛� 閫夊尯鐨勫紑濮嬪鍣ㄥ拰缁撴潫瀹瑰櫒閮芥槸璇ヨ妭鐐癸紝 鍏秙tartOffset涓�0锛�
-       *          鑰宔ndOffset鏄鑺傜偣鐨勫瓙鑺傜偣鏁般��
-       * @param { Node } node 鐩爣鑺傜偣锛� 褰撳墠range灏嗗寘鍚鑺傜偣鍐呯殑鎵�鏈夎妭鐐�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄锛� 姝ゆ椂range浠呭寘鍚粰瀹氳妭鐐圭殑鎵�鏈夊瓙鑺傜偣
-       * @example
-       * ```html
-       * <!-- 閫夊尯绀轰緥 -->
-       * <b>xx<i>xxx</i><span>[xx]x</span>xxx</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.selectNode( document.getElementsByTagName("b")[0] );
-       *
-       *     //缁撴灉閫夊尯
-       *     //<b>[xx<i>xxx</i><span>xxx</span>xxx]</b>
-       *
-       * </script>
-       * ```
-       */
-      selectNodeContents: function(node) {
-        return this.setStart(node, 0).setEndAtLast(node);
-      },
-
-      /**
-       * clone褰撳墠Range瀵硅薄
-       * @method  cloneRange
-       * @remind 杩斿洖鐨剅ange鏄竴涓叏鏂扮殑range瀵硅薄锛� 鍏跺唴閮ㄦ墍鏈夊睘鎬т笌褰撳墠琚玞lone鐨剅ange鐩稿悓銆�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄鐨勪竴涓壇鏈�
-       */
-      cloneRange: function() {
-        var me = this;
-        return new Range(me.document).setStart(me.startContainer, me.startOffset).setEnd(me.endContainer, me.endOffset);
-
-      },
-
-      /**
-       * 鍚戝綋鍓嶉�夊尯鐨勭粨鏉熷闂悎閫夊尯
-       * @method  collapse
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       * <!-- 閫夊尯绀轰緥 -->
-       * <b>xx<i>xxx</i><span>[xx]x</span>xxx</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.collapse();
-       *
-       *     //缁撴灉閫夊尯
-       *     //鈥渱鈥濊〃绀洪�夊尯宸查棴鍚�
-       *     //<b>xx<i>xxx</i><span>xx|x</span>xxx</b>
-       *
-       * </script>
-       * ```
-       */
-
-      /**
-       * 闂悎褰撳墠閫夊尯锛屾牴鎹粰瀹氱殑toStart鍙傛暟椤瑰喅瀹氭槸鍚戝綋鍓嶉�夊尯寮�濮嬪闂悎杩樻槸鍚戠粨鏉熷闂悎锛�
-       * 濡傛灉toStart鐨勫�间负true锛屽垯鍚戝紑濮嬩綅缃棴鍚堬紝 鍙嶄箣锛屽悜缁撴潫浣嶇疆闂悎銆�
-       * @method  collapse
-       * @param { Boolean } toStart 鏄惁鍚戦�夊尯寮�濮嬪闂悎
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄锛屾鏃秗ange瀵硅薄澶勪簬闂悎鐘舵��
-       * @see UE.dom.Range:collapse()
-       * @example
-       * ```html
-       * <!-- 閫夊尯绀轰緥 -->
-       * <b>xx<i>xxx</i><span>[xx]x</span>xxx</b>
-       *
-       * <script>
-       *
-       *     //鎵ц鎿嶄綔
-       *     range.collapse( true );
-       *
-       *     //缁撴灉閫夊尯
-       *     //鈥渱鈥濊〃绀洪�夊尯宸查棴鍚�
-       *     //<b>xx<i>xxx</i><span>|xxx</span>xxx</b>
-       *
-       * </script>
-       * ```
-       */
-      collapse: function(toStart) {
-        var me = this;
-        if (toStart) {
-          me.endContainer = me.startContainer;
-          me.endOffset = me.startOffset;
-        } else {
-          me.startContainer = me.endContainer;
-          me.startOffset = me.endOffset;
-        }
-        me.collapsed = true;
-        return me;
-      },
-
-      /**
-       * 璋冩暣range鐨勫紑濮嬩綅缃拰缁撴潫浣嶇疆锛屼娇鍏�"鏀剁缉"鍒版渶灏忕殑浣嶇疆
-       * @method  shrinkBoundary
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       * <span>xx<b>xx[</b>xxxxx]</span> => <span>xx<b>xx</b>[xxxxx]</span>
-       * ```
-       *
-       * @example
-       * ```html
-       * <!-- 閫夊尯绀轰緥 -->
-       * <b>x[xx</b><i>]xxx</i>
-       *
-       * <script>
-       *
-       *     //鎵ц鏀剁缉
-       *     range.shrinkBoundary();
-       *
-       *     //缁撴灉閫夊尯
-       *     //<b>x[xx]</b><i>xxx</i>
-       * </script>
-       * ```
-       *
-       * @example
-       * ```html
-       * [<b><i>xxxx</i>xxxxxxx</b>] => <b><i>[xxxx</i>xxxxxxx]</b>
-       * ```
-       */
-
-      /**
-       * 璋冩暣range鐨勫紑濮嬩綅缃拰缁撴潫浣嶇疆锛屼娇鍏�"鏀剁缉"鍒版渶灏忕殑浣嶇疆锛�
-       * 濡傛灉ignoreEnd鐨勫�间负true锛屽垯蹇界暐瀵圭粨鏉熶綅缃殑璋冩暣
-       * @method  shrinkBoundary
-       * @param { Boolean } ignoreEnd 鏄惁蹇界暐瀵圭粨鏉熶綅缃殑璋冩暣
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @see UE.dom.domUtils.Range:shrinkBoundary()
-       */
-      shrinkBoundary: function(ignoreEnd) {
-        var me = this,
-          child,
-          collapsed = me.collapsed;
-
-        function check(node) {
-          return node.nodeType == 1 && !domUtils.isBookmarkNode(node) && !dtd.$empty[node.tagName] && !dtd.$nonChild[
-            node.tagName]
-        }
-        while (me.startContainer.nodeType == 1 //鏄痚lement
-          &&
-          (child = me.startContainer.childNodes[me.startOffset]) //瀛愯妭鐐逛篃鏄痚lement
-          &&
-          check(child)) {
-          me.setStart(child, 0);
-        }
-        if (collapsed) {
-          return me.collapse(true);
-        }
-        if (!ignoreEnd) {
-          while (me.endContainer.nodeType == 1 //鏄痚lement
-            &&
-            me.endOffset > 0 //濡傛灉鏄┖鍏冪礌灏遍��鍑� endOffset=0閭d箞endOffst-1涓鸿礋鍊硷紝childNodes[endOffset]鎶ラ敊
-            &&
-            (child = me.endContainer.childNodes[me.endOffset - 1]) //瀛愯妭鐐逛篃鏄痚lement
-            &&
-            check(child)) {
-            me.setEnd(child, child.childNodes.length);
-          }
-        }
-        return me;
-      },
-
-      /**
-       * 鑾峰彇绂诲綋鍓嶉�夊尯鍐呭寘鍚殑鎵�鏈夎妭鐐规渶杩戠殑鍏叡绁栧厛鑺傜偣锛�
-       * @method  getCommonAncestor
-       * @remind 杩斿洖鐨勫叕鍏辩鍏堣妭鐐逛竴瀹氫笉鏄痳ange鑷韩鐨勫鍣ㄨ妭鐐癸紝 浣嗘湁鍙兘鏄竴涓枃鏈妭鐐�
-       * @return { Node } 褰撳墠range瀵硅薄鍐呮墍鏈夎妭鐐圭殑鍏叡绁栧厛鑺傜偣
-       * @example
-       * ```html
-       * //閫夊尯绀轰緥
-       * <span>xxx<b>x[x<em>xx]x</em>xxx</b>xx</span>
-       * <script>
-       *
-       *     var node = range.getCommonAncestor();
-       *
-       *     //鍏叡绁栧厛鑺傜偣鏄細 b鑺傜偣
-       *     //杈撳嚭锛� B
-       *     console.log(node.tagName);
-       *
-       * </script>
-       * ```
-       */
-
-      /**
-       * 鑾峰彇褰撳墠閫夊尯鎵�鍖呭惈鐨勬墍鏈夎妭鐐圭殑鍏叡绁栧厛鑺傜偣锛� 鍙互鏍规嵁缁欏畾鐨勫弬鏁� includeSelf 鍐冲畾鑾峰彇鍒�
-       * 鐨勫叕鍏辩鍏堣妭鐐规槸鍚﹀彲浠ユ槸褰撳墠閫夊尯鐨剆tartContainer鎴杄ndContainer鑺傜偣锛� 濡傛灉 includeSelf
-       * 鐨勫彇鍊间负true锛� 鍒欒繑鍥炵殑鑺傜偣鍙互鏄嚜韬殑瀹瑰櫒鑺傜偣锛� 鍚﹀垯锛� 鍒欎笉鑳芥槸瀹瑰櫒鑺傜偣
-       * @method  getCommonAncestor
-       * @param { Boolean } includeSelf 鏄惁鍏佽鑾峰彇鍒扮殑鍏叡绁栧厛鑺傜偣鏄綋鍓峳ange瀵硅薄鐨勫鍣ㄨ妭鐐�
-       * @return { Node } 褰撳墠range瀵硅薄鍐呮墍鏈夎妭鐐圭殑鍏叡绁栧厛鑺傜偣
-       * @see UE.dom.Range:getCommonAncestor()
-       * @example
-       * ```html
-       * <body>
-       *
-       *     <!-- 閫夊尯绀轰緥 -->
-       *     <b>xxx<i>xxxx<span>xx[x</span>xx]x</i>xxxxxxx</b>
-       *
-       *     <script>
-       *
-       *         var node = range.getCommonAncestor( false );
-       *
-       *         //杩欓噷鐨勫叕鍏辩鍏堣妭鐐规槸B鑰屼笉鏄疘锛� 鏄洜涓哄弬鏁伴檺鍒朵簡鑾峰彇鍒扮殑鑺傜偣涓嶈兘鏄鍣ㄨ妭鐐�
-       *         //output: B
-       *         console.log( node.tagName );
-       *
-       *     </script>
-       *
-       * </body>
-       * ```
-       */
-
-      /**
-       * 鑾峰彇褰撳墠閫夊尯鎵�鍖呭惈鐨勬墍鏈夎妭鐐圭殑鍏叡绁栧厛鑺傜偣锛� 鍙互鏍规嵁缁欏畾鐨勫弬鏁� includeSelf 鍐冲畾鑾峰彇鍒�
-       * 鐨勫叕鍏辩鍏堣妭鐐规槸鍚﹀彲浠ユ槸褰撳墠閫夊尯鐨剆tartContainer鎴杄ndContainer鑺傜偣锛� 濡傛灉 includeSelf
-       * 鐨勫彇鍊间负true锛� 鍒欒繑鍥炵殑鑺傜偣鍙互鏄嚜韬殑瀹瑰櫒鑺傜偣锛� 鍚﹀垯锛� 鍒欎笉鑳芥槸瀹瑰櫒鑺傜偣锛� 鍚屾椂鍙互鏍规嵁
-       * ignoreTextNode 鍙傛暟鐨勫彇鍊煎喅瀹氭槸鍚﹀拷鐣ョ被鍨嬩负鏂囨湰鑺傜偣鐨勭鍏堣妭鐐广��
-       * @method  getCommonAncestor
-       * @param { Boolean } includeSelf 鏄惁鍏佽鑾峰彇鍒扮殑鍏叡绁栧厛鑺傜偣鏄綋鍓峳ange瀵硅薄鐨勫鍣ㄨ妭鐐�
-       * @param { Boolean } ignoreTextNode 鑾峰彇绁栧厛鑺傜偣鐨勮繃绋嬩腑鏄惁蹇界暐绫诲瀷涓烘枃鏈妭鐐圭殑绁栧厛鑺傜偣
-       * @return { Node } 褰撳墠range瀵硅薄鍐呮墍鏈夎妭鐐圭殑鍏叡绁栧厛鑺傜偣
-       * @see UE.dom.Range:getCommonAncestor()
-       * @see UE.dom.Range:getCommonAncestor(Boolean)
-       * @example
-       * ```html
-       * <body>
-       *
-       *     <!-- 閫夊尯绀轰緥 -->
-       *     <b>xxx<i>xxxx<span>x[x]x</span>xxx</i>xxxxxxx</b>
-       *
-       *     <script>
-       *
-       *         var node = range.getCommonAncestor( true, false );
-       *
-       *         //output: SPAN
-       *         console.log( node.tagName );
-       *
-       *     </script>
-       *
-       * </body>
-       * ```
-       */
-      getCommonAncestor: function(includeSelf, ignoreTextNode) {
-        var me = this,
-          start = me.startContainer,
-          end = me.endContainer;
-        if (start === end) {
-          if (includeSelf && selectOneNode(this)) {
-            start = start.childNodes[me.startOffset];
-            if (start.nodeType == 1)
-              return start;
-          }
-          //鍙湁鍦ㄤ笂鏉ュ氨鐩哥瓑鐨勬儏鍐典笅鎵嶄細鍑虹幇鏄枃鏈殑鎯呭喌
-          return ignoreTextNode && start.nodeType == 3 ? start.parentNode : start;
-        }
-        return domUtils.getCommonAncestor(start, end);
-      },
-
-      /**
-       * 璋冩暣褰撳墠Range鐨勫紑濮嬪拰缁撴潫杈圭晫瀹瑰櫒锛屽鏋滄槸瀹瑰櫒鑺傜偣鏄枃鏈妭鐐�,灏辫皟鏁村埌鍖呭惈璇ユ枃鏈妭鐐圭殑鐖惰妭鐐逛笂
-       * @method trimBoundary
-       * @remind 璇ユ搷浣滄湁鍙兘浼氬紩璧锋枃鏈妭鐐硅鍒囧紑
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       *
-       * //閫夊尯绀轰緥
-       * <b>xxx<i>[xxxxx]</i>xxx</b>
-       *
-       * <script>
-       *     //鏈皟鏁村墠锛� 閫夊尯鐨勫紑濮嬪鍣ㄥ拰缁撴潫閮芥槸鏂囨湰鑺傜偣
-       *     //鎵ц璋冩暣
-       *     range.trimBoundary();
-       *
-       *     //璋冩暣涔嬪悗锛� 瀹瑰櫒鑺傜偣鍙樻垚浜唅鑺傜偣
-       *     //<b>xxx[<i>xxxxx</i>]xxx</b>
-       * </script>
-       * ```
-       */
-
-      /**
-       * 璋冩暣褰撳墠Range鐨勫紑濮嬪拰缁撴潫杈圭晫瀹瑰櫒锛屽鏋滄槸瀹瑰櫒鑺傜偣鏄枃鏈妭鐐�,灏辫皟鏁村埌鍖呭惈璇ユ枃鏈妭鐐圭殑鐖惰妭鐐逛笂锛�
-       * 鍙互鏍规嵁 ignoreEnd 鍙傛暟鐨勫�煎喅瀹氭槸鍚﹁皟鏁村缁撴潫杈圭晫鐨勮皟鏁�
-       * @method trimBoundary
-       * @param { Boolean } ignoreEnd 鏄惁蹇界暐瀵圭粨鏉熻竟鐣岀殑璋冩暣
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       *
-       * //閫夊尯绀轰緥
-       * <b>xxx<i>[xxxxx]</i>xxx</b>
-       *
-       * <script>
-       *     //鏈皟鏁村墠锛� 閫夊尯鐨勫紑濮嬪鍣ㄥ拰缁撴潫閮芥槸鏂囨湰鑺傜偣
-       *     //鎵ц璋冩暣
-       *     range.trimBoundary( true );
-       *
-       *     //璋冩暣涔嬪悗锛� 寮�濮嬪鍣ㄨ妭鐐瑰彉鎴愪簡i鑺傜偣
-       *     //浣嗘槸锛� 缁撴潫瀹瑰櫒娌℃湁鍙戠敓鍙樺寲
-       *     //<b>xxx[<i>xxxxx]</i>xxx</b>
-       * </script>
-       * ```
-       */
-      trimBoundary: function(ignoreEnd) {
-        this.txtToElmBoundary();
-        var start = this.startContainer,
-          offset = this.startOffset,
-          collapsed = this.collapsed,
-          end = this.endContainer;
-        if (start.nodeType == 3) {
-          if (offset == 0) {
-            this.setStartBefore(start);
-          } else {
-            if (offset >= start.nodeValue.length) {
-              this.setStartAfter(start);
-            } else {
-              var textNode = domUtils.split(start, offset);
-              //璺熸柊缁撴潫杈圭晫
-              if (start === end) {
-                this.setEnd(textNode, this.endOffset - offset);
-              } else if (start.parentNode === end) {
-                this.endOffset += 1;
-              }
-              this.setStartBefore(textNode);
-            }
-          }
-          if (collapsed) {
-            return this.collapse(true);
-          }
-        }
-        if (!ignoreEnd) {
-          offset = this.endOffset;
-          end = this.endContainer;
-          if (end.nodeType == 3) {
-            if (offset == 0) {
-              this.setEndBefore(end);
-            } else {
-              offset < end.nodeValue.length && domUtils.split(end, offset);
-              this.setEndAfter(end);
-            }
-          }
-        }
-        return this;
-      },
-
-      /**
-       * 濡傛灉閫夊尯鍦ㄦ枃鏈殑杈圭晫涓婏紝灏辨墿灞曢�夊尯鍒版枃鏈殑鐖惰妭鐐逛笂, 濡傛灉褰撳墠閫夊尯鏄棴鍚堢殑锛� 鍒欎粈涔堜篃涓嶅仛
-       * @method txtToElmBoundary
-       * @remind 璇ユ搷浣滀笉浼氫慨鏀筪om鑺傜偣
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-
-      /**
-       * 濡傛灉閫夊尯鍦ㄦ枃鏈殑杈圭晫涓婏紝灏辨墿灞曢�夊尯鍒版枃鏈殑鐖惰妭鐐逛笂, 濡傛灉褰撳墠閫夊尯鏄棴鍚堢殑锛� 鍒欐牴鎹弬鏁伴」
-       * ignoreCollapsed 鐨勫�煎喅瀹氭槸鍚︽墽琛岃璋冩暣
-       * @method txtToElmBoundary
-       * @param { Boolean } ignoreCollapsed 鏄惁蹇界暐閫夊尯鐨勯棴鍚堢姸鎬侊紝 濡傛灉璇ュ弬鏁板彇鍊间负true锛� 鍒�
-       *                      涓嶈閫夊尯鏄惁闂悎锛� 閮戒細鎵ц璇ユ搷浣滐紝 鍙嶄箣锛� 鍒欎笉浼氬闂悎鐨勯�夊尯鎵ц璇ユ搷浣�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      txtToElmBoundary: function(ignoreCollapsed) {
-        function adjust(r, c) {
-          var container = r[c + 'Container'],
-            offset = r[c + 'Offset'];
-          if (container.nodeType == 3) {
-            if (!offset) {
-              r['set' + c.replace(/(\w)/, function(a) {
-                return a.toUpperCase();
-              }) + 'Before'](container);
-            } else if (offset >= container.nodeValue.length) {
-              r['set' + c.replace(/(\w)/, function(a) {
-                return a.toUpperCase();
-              }) + 'After'](container);
-            }
-          }
-        }
-
-        if (ignoreCollapsed || !this.collapsed) {
-          adjust(this, 'start');
-          adjust(this, 'end');
-        }
-        return this;
-      },
-
-      /**
-       * 鍦ㄥ綋鍓嶉�夊尯鐨勫紑濮嬩綅缃墠鎻掑叆鑺傜偣锛屾柊鎻掑叆鐨勮妭鐐逛細琚range鍖呭惈
-       * @method  insertNode
-       * @param { Node } node 闇�瑕佹彃鍏ョ殑鑺傜偣
-       * @remind 鎻掑叆鐨勮妭鐐瑰彲浠ユ槸涓�涓狣ocumentFragment渚濇鎻掑叆澶氫釜鑺傜偣
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      insertNode: function(node) {
-        var first = node,
-          length = 1;
-        if (node.nodeType == 11) {
-          first = node.firstChild;
-          length = node.childNodes.length;
-        }
-        this.trimBoundary(true);
-        var start = this.startContainer,
-          offset = this.startOffset;
-        var nextNode = start.childNodes[offset];
-        if (nextNode) {
-          start.insertBefore(node, nextNode);
-        } else {
-          start.appendChild(node);
-        }
-        if (first.parentNode === this.endContainer) {
-          this.endOffset = this.endOffset + length;
-        }
-        return this.setStartBefore(first);
-      },
-
-      /**
-       * 闂悎閫夊尯鍒板綋鍓嶉�夊尯鐨勫紑濮嬩綅缃紝 骞朵笖瀹氫綅鍏夋爣鍒伴棴鍚堝悗鐨勪綅缃�
-       * @method  setCursor
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @see UE.dom.Range:collapse()
-       */
-
-      /**
-       * 闂悎閫夊尯锛屽彲浠ユ牴鎹弬鏁皌oEnd鐨勫�兼帶鍒堕�夊尯鏄悜鍓嶉棴鍚堣繕鏄悜鍚庨棴鍚堬紝 骞朵笖瀹氫綅鍏夋爣鍒伴棴鍚堝悗鐨勪綅缃��
-       * @method  setCursor
-       * @param { Boolean } toEnd 鏄惁鍚戝悗闂悎锛� 濡傛灉涓簍rue锛� 鍒欓棴鍚堥�夊尯鏃讹紝 灏嗗悜缁撴潫瀹瑰櫒鏂瑰悜闂悎锛�
-       *                      鍙嶄箣锛屽垯鍚戝紑濮嬪鍣ㄦ柟鍚戦棴鍚�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @see UE.dom.Range:collapse(Boolean)
-       */
-      setCursor: function(toEnd, noFillData) {
-        return this.collapse(!toEnd).select(noFillData);
-      },
-
-      /**
-       * 鍒涘缓褰撳墠range鐨勪竴涓功绛撅紝璁板綍涓嬪綋鍓峳ange鐨勪綅缃紝鏂逛究褰揹om鏍戞敼鍙樻椂锛岃繕鑳芥壘鍥炲師鏉ョ殑閫夊尯浣嶇疆
-       * @method createBookmark
-       * @param { Boolean } serialize 鎺у埗杩斿洖鐨勬爣璁颁綅缃槸瀵瑰綋鍓嶄綅缃殑寮曠敤杩樻槸ID锛屽鏋滆鍊间负true锛屽垯
-       *                              杩斿洖鏍囪浣嶇疆鐨処D锛� 鍙嶄箣鍒欒繑鍥炴爣璁颁綅缃妭鐐圭殑寮曠敤
-       * @return { Object } 杩斿洖涓�涓功绛捐褰曢敭鍊煎锛� 鍏跺寘鍚殑key鏈夛細 start => 寮�濮嬫爣璁扮殑ID鎴栬�呭紩鐢紝
-       *                          end => 缁撴潫鏍囪鐨処D鎴栧紩鐢紝 id => 褰撳墠鏍囪鐨勭被鍨嬶紝 濡傛灉涓簍rue锛屽垯琛ㄧず
-       *                          杩斿洖鐨勮褰曠殑绫诲瀷涓篒D锛� 鍙嶄箣鍒欎负寮曠敤
-       */
-      createBookmark: function(serialize, same) {
-        var endNode,
-          startNode = this.document.createElement('span');
-        startNode.style.cssText = 'display:none;line-height:0px;';
-        startNode.appendChild(this.document.createTextNode('\u200D'));
-        startNode.id = '_baidu_bookmark_start_' + (same ? '' : guid++);
-
-        if (!this.collapsed) {
-          endNode = startNode.cloneNode(true);
-          endNode.id = '_baidu_bookmark_end_' + (same ? '' : guid++);
-        }
-        this.insertNode(startNode);
-        if (endNode) {
-          this.collapse().insertNode(endNode).setEndBefore(endNode);
-        }
-        this.setStartAfter(startNode);
-        return {
-          start: serialize ? startNode.id : startNode,
-          end: endNode ? serialize ? endNode.id : endNode : null,
-          id: serialize
-        }
-      },
-
-      /**
-       *  璋冩暣褰撳墠range鐨勮竟鐣屽埌涔︾浣嶇疆锛屽苟鍒犻櫎璇ヤ功绛惧璞℃墍鏍囪鐨勪綅缃唴鐨勮妭鐐�
-       *  @method  moveToBookmark
-       *  @param { BookMark } bookmark createBookmark鎵�鍒涘缓鐨勬爣绛惧璞�
-       *  @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       *  @see UE.dom.Range:createBookmark(Boolean)
-       */
-      moveToBookmark: function(bookmark) {
-        var start = bookmark.id ? this.document.getElementById(bookmark.start) : bookmark.start,
-          end = bookmark.end && bookmark.id ? this.document.getElementById(bookmark.end) : bookmark.end;
-        this.setStartBefore(start);
-        domUtils.remove(start);
-        if (end) {
-          this.setEndBefore(end);
-          domUtils.remove(end);
-        } else {
-          this.collapse(true);
-        }
-        return this;
-      },
-
-      /**
-       * 璋冩暣range鐨勮竟鐣岋紝浣垮叾"鏀惧ぇ"鍒版渶杩戠殑鐖惰妭鐐�
-       * @method  enlarge
-       * @remind 浼氬紩璧烽�夊尯鐨勫彉鍖�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-
-      /**
-       * 璋冩暣range鐨勮竟鐣岋紝浣垮叾"鏀惧ぇ"鍒版渶杩戠殑鐖惰妭鐐癸紝鏍规嵁鍙傛暟 toBlock 鐨勫彇鍊硷紝 鍙互
-       * 瑕佹眰鎵╁ぇ涔嬪悗鐨勭埗鑺傜偣鏄痓lock鑺傜偣
-       * @method  enlarge
-       * @param { Boolean } toBlock 鏄惁瑕佹眰鎵╁ぇ涔嬪悗鐨勭埗鑺傜偣蹇呴』鏄痓lock鑺傜偣
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       */
-      enlarge: function(toBlock, stopFn) {
-        var isBody = domUtils.isBody,
-          pre, node, tmp = this.document.createTextNode('');
-        if (toBlock) {
-          node = this.startContainer;
-          if (node.nodeType == 1) {
-            if (node.childNodes[this.startOffset]) {
-              pre = node = node.childNodes[this.startOffset]
-            } else {
-              node.appendChild(tmp);
-              pre = node = tmp;
-            }
-          } else {
-            pre = node;
-          }
-          while (1) {
-            if (domUtils.isBlockElm(node)) {
-              node = pre;
-              while ((pre = node.previousSibling) && !domUtils.isBlockElm(pre)) {
-                node = pre;
-              }
-              this.setStartBefore(node);
-              break;
-            }
-            pre = node;
-            node = node.parentNode;
-          }
-          node = this.endContainer;
-          if (node.nodeType == 1) {
-            if (pre = node.childNodes[this.endOffset]) {
-              node.insertBefore(tmp, pre);
-            } else {
-              node.appendChild(tmp);
-            }
-            pre = node = tmp;
-          } else {
-            pre = node;
-          }
-          while (1) {
-            if (domUtils.isBlockElm(node)) {
-              node = pre;
-              while ((pre = node.nextSibling) && !domUtils.isBlockElm(pre)) {
-                node = pre;
-              }
-              this.setEndAfter(node);
-              break;
-            }
-            pre = node;
-            node = node.parentNode;
-          }
-          if (tmp.parentNode === this.endContainer) {
-            this.endOffset--;
-          }
-          domUtils.remove(tmp);
-        }
-
-        // 鎵╁睍杈圭晫鍒版渶澶�
-        if (!this.collapsed) {
-          while (this.startOffset == 0) {
-            if (stopFn && stopFn(this.startContainer)) {
-              break;
-            }
-            if (isBody(this.startContainer)) {
-              break;
-            }
-            this.setStartBefore(this.startContainer);
-          }
-          while (this.endOffset == (this.endContainer.nodeType == 1 ? this.endContainer.childNodes.length :
-              this.endContainer.nodeValue.length)) {
-            if (stopFn && stopFn(this.endContainer)) {
-              break;
-            }
-            if (isBody(this.endContainer)) {
-              break;
-            }
-            this.setEndAfter(this.endContainer);
-          }
-        }
-        return this;
-      },
-      enlargeToBlockElm: function(ignoreEnd) {
-        while (!domUtils.isBlockElm(this.startContainer)) {
-          this.setStartBefore(this.startContainer);
-        }
-        if (!ignoreEnd) {
-          while (!domUtils.isBlockElm(this.endContainer)) {
-            this.setEndAfter(this.endContainer);
-          }
-        }
-        return this;
-      },
-      /**
-       * 璋冩暣Range鐨勮竟鐣岋紝浣垮叾"缂╁皬"鍒版渶鍚堥�傜殑浣嶇疆
-       * @method adjustmentBoundary
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @see UE.dom.Range:shrinkBoundary()
-       */
-      adjustmentBoundary: function() {
-        if (!this.collapsed) {
-          while (!domUtils.isBody(this.startContainer) &&
-            this.startOffset == this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' :
-              'childNodes'].length &&
-            this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length
-          ) {
-
-            this.setStartAfter(this.startContainer);
-          }
-          while (!domUtils.isBody(this.endContainer) && !this.endOffset &&
-            this.endContainer[this.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length
-          ) {
-            this.setEndBefore(this.endContainer);
-          }
-        }
-        return this;
-      },
-
-      /**
-       * 缁檙ange閫夊尯涓殑鍐呭娣诲姞缁欏畾鐨刬nline鏍囩
-       * @method applyInlineStyle
-       * @param { String } tagName 闇�瑕佹坊鍔犵殑鏍囩鍚�
-       * @example
-       * ```html
-       * <p>xxxx[xxxx]x</p>  ==>  range.applyInlineStyle("strong")  ==>  <p>xxxx[<strong>xxxx</strong>]x</p>
-       * ```
-       */
-
-      /**
-       * 缁檙ange閫夊尯涓殑鍐呭娣诲姞缁欏畾鐨刬nline鏍囩锛� 骞朵笖涓烘爣绛鹃檮鍔犱笂涓�浜涘垵濮嬪寲灞炴�с��
-       * @method applyInlineStyle
-       * @param { String } tagName 闇�瑕佹坊鍔犵殑鏍囩鍚�
-       * @param { Object } attrs 璺熼殢鏂版坊鍔犵殑鏍囩鐨勫睘鎬�
-       * @return { UE.dom.Range } 褰撳墠閫夊尯
-       * @example
-       * ```html
-       * <p>xxxx[xxxx]x</p>
-       *
-       * ==>
-       *
-       * <!-- 鎵ц鎿嶄綔 -->
-       * range.applyInlineStyle("strong",{"style":"font-size:12px"})
-       *
-       * ==>
-       *
-       * <p>xxxx[<strong style="font-size:12px">xxxx</strong>]x</p>
-       * ```
-       */
-      applyInlineStyle: function(tagName, attrs, list) {
-        if (this.collapsed) return this;
-        this.trimBoundary().enlarge(false,
-          function(node) {
-            return node.nodeType == 1 && domUtils.isBlockElm(node)
-          }).adjustmentBoundary();
-        var bookmark = this.createBookmark(),
-          end = bookmark.end,
-          filterFn = function(node) {
-            return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node);
-          },
-          current = domUtils.getNextDomNode(bookmark.start, false, filterFn),
-          node,
-          pre,
-          range = this.cloneRange();
-        while (current && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) {
-          if (current.nodeType == 3 || dtd[tagName][current.tagName]) {
-            range.setStartBefore(current);
-            node = current;
-            while (node && (node.nodeType == 3 || dtd[tagName][node.tagName]) && node !== end) {
-              pre = node;
-              node = domUtils.getNextDomNode(node, node.nodeType == 1, null, function(parent) {
-                return dtd[tagName][parent.tagName];
-              });
-            }
-            var frag = range.setEndAfter(pre).extractContents(),
-              elm;
-            if (list && list.length > 0) {
-              var level, top;
-              top = level = list[0].cloneNode(false);
-              for (var i = 1, ci; ci = list[i++];) {
-                level.appendChild(ci.cloneNode(false));
-                level = level.firstChild;
-              }
-              elm = level;
-            } else {
-              elm = range.document.createElement(tagName);
-            }
-            if (attrs) {
-              domUtils.setAttributes(elm, attrs);
-            }
-            elm.appendChild(frag);
-            range.insertNode(list ? top : elm);
-            //澶勭悊涓嬫粦绾垮湪a涓婄殑鎯呭喌
-            var aNode;
-            if (tagName == 'span' && attrs.style && /text\-decoration/.test(attrs.style) && (aNode = domUtils.findParentByTagName(
-                elm, 'a', true))) {
-              domUtils.setAttributes(aNode, attrs);
-              domUtils.remove(elm, true);
-              elm = aNode;
-            } else {
-              domUtils.mergeSibling(elm);
-              domUtils.clearEmptySibling(elm);
-            }
-            //鍘婚櫎瀛愯妭鐐圭浉鍚岀殑
-            domUtils.mergeChild(elm, attrs);
-            current = domUtils.getNextDomNode(elm, false, filterFn);
-            domUtils.mergeToParent(elm);
-            if (node === end) {
-              break;
-            }
-          } else {
-            current = domUtils.getNextDomNode(current, true, filterFn);
-          }
-        }
-        return this.moveToBookmark(bookmark);
-      },
-
-      /**
-       * 绉婚櫎褰撳墠閫夊尯鍐呮寚瀹氱殑inline鏍囩锛屼絾淇濈暀鍏朵腑鐨勫唴瀹�
-       * @method removeInlineStyle
-       * @param { String } tagName 闇�瑕佺Щ闄ょ殑鏍囩鍚�
-       * @return { UE.dom.Range } 褰撳墠鐨剅ange瀵硅薄
-       * @example
-       * ```html
-       * xx[x<span>xxx<em>yyy</em>zz]z</span>  => range.removeInlineStyle(["em"])  => xx[x<span>xxxyyyzz]z</span>
-       * ```
-       */
-
-      /**
-       * 绉婚櫎褰撳墠閫夊尯鍐呮寚瀹氱殑涓�缁刬nline鏍囩锛屼絾淇濈暀鍏朵腑鐨勫唴瀹�
-       * @method removeInlineStyle
-       * @param { Array } tagNameArr 闇�瑕佺Щ闄ょ殑鏍囩鍚嶇殑鏁扮粍
-       * @return { UE.dom.Range } 褰撳墠鐨剅ange瀵硅薄
-       * @see UE.dom.Range:removeInlineStyle(String)
-       */
-      removeInlineStyle: function(tagNames) {
-        if (this.collapsed) return this;
-        tagNames = utils.isArray(tagNames) ? tagNames : [tagNames];
-        this.shrinkBoundary().adjustmentBoundary();
-        var start = this.startContainer,
-          end = this.endContainer;
-        while (1) {
-          if (start.nodeType == 1) {
-            if (utils.indexOf(tagNames, start.tagName.toLowerCase()) > -1) {
-              break;
-            }
-            if (start.tagName.toLowerCase() == 'body') {
-              start = null;
-              break;
-            }
-          }
-          start = start.parentNode;
-        }
-        while (1) {
-          if (end.nodeType == 1) {
-            if (utils.indexOf(tagNames, end.tagName.toLowerCase()) > -1) {
-              break;
-            }
-            if (end.tagName.toLowerCase() == 'body') {
-              end = null;
-              break;
-            }
-          }
-          end = end.parentNode;
-        }
-        var bookmark = this.createBookmark(),
-          frag,
-          tmpRange;
-        if (start) {
-          tmpRange = this.cloneRange().setEndBefore(bookmark.start).setStartBefore(start);
-          frag = tmpRange.extractContents();
-          tmpRange.insertNode(frag);
-          domUtils.clearEmptySibling(start, true);
-          start.parentNode.insertBefore(bookmark.start, start);
-        }
-        if (end) {
-          tmpRange = this.cloneRange().setStartAfter(bookmark.end).setEndAfter(end);
-          frag = tmpRange.extractContents();
-          tmpRange.insertNode(frag);
-          domUtils.clearEmptySibling(end, false, true);
-          end.parentNode.insertBefore(bookmark.end, end.nextSibling);
-        }
-        var current = domUtils.getNextDomNode(bookmark.start, false, function(node) {
-            return node.nodeType == 1;
-          }),
-          next;
-        while (current && current !== bookmark.end) {
-          next = domUtils.getNextDomNode(current, true, function(node) {
-            return node.nodeType == 1;
-          });
-          if (utils.indexOf(tagNames, current.tagName.toLowerCase()) > -1) {
-            domUtils.remove(current, true);
-          }
-          current = next;
-        }
-        return this.moveToBookmark(bookmark);
-      },
-
-      /**
-       * 鑾峰彇褰撳墠閫変腑鐨勮嚜闂悎鐨勮妭鐐�
-       * @method  getClosedNode
-       * @return { Node | NULL } 濡傛灉褰撳墠閫変腑鐨勬槸鑷棴鍚堣妭鐐癸紝 鍒欒繑鍥炶鑺傜偣锛� 鍚﹀垯杩斿洖NULL
-       */
-      getClosedNode: function() {
-        var node;
-        if (!this.collapsed) {
-          var range = this.cloneRange().adjustmentBoundary().shrinkBoundary();
-          if (selectOneNode(range)) {
-            var child = range.startContainer.childNodes[range.startOffset];
-            if (child && child.nodeType == 1 && (dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName])) {
-              node = child;
-            }
-          }
-        }
-        return node;
-      },
-
-      /**
-       * 鍦ㄩ〉闈笂楂樹寒range鎵�琛ㄧず鐨勯�夊尯
-       * @method select
-       * @return { UE.dom.Range } 杩斿洖褰撳墠Range瀵硅薄
-       */
-      //杩欓噷涓嶅尯鍒唅e9浠ヤ笂锛宼race:3824
-      select: browser.ie ? function(noFillData, textRange) {
-        var nativeRange;
-        if (!this.collapsed)
-          this.shrinkBoundary();
-        var node = this.getClosedNode();
-        if (node && !textRange) {
-          try {
-            nativeRange = this.document.body.createControlRange();
-            nativeRange.addElement(node);
-            nativeRange.select();
-          } catch (e) {}
-          return this;
-        }
-        var bookmark = this.createBookmark(),
-          start = bookmark.start,
-          end;
-        nativeRange = this.document.body.createTextRange();
-        nativeRange.moveToElementText(start);
-        nativeRange.moveStart('character', 1);
-        if (!this.collapsed) {
-          var nativeRangeEnd = this.document.body.createTextRange();
-          end = bookmark.end;
-          nativeRangeEnd.moveToElementText(end);
-          nativeRange.setEndPoint('EndToEnd', nativeRangeEnd);
-        } else {
-          if (!noFillData && this.startContainer.nodeType != 3) {
-            //浣跨敤<span>|x<span>鍥哄畾浣忓厜鏍�
-            var tmpText = this.document.createTextNode(fillChar),
-              tmp = this.document.createElement('span');
-            tmp.appendChild(this.document.createTextNode(fillChar));
-            start.parentNode.insertBefore(tmp, start);
-            start.parentNode.insertBefore(tmpText, start);
-            //褰撶偣b,i,u鏃讹紝涓嶈兘娓呴櫎i涓婅竟鐨刡
-            removeFillData(this.document, tmpText);
-            fillData = tmpText;
-            mergeSibling(tmp, 'previousSibling');
-            mergeSibling(start, 'nextSibling');
-            nativeRange.moveStart('character', -1);
-            nativeRange.collapse(true);
-          }
-        }
-        this.moveToBookmark(bookmark);
-        tmp && domUtils.remove(tmp);
-        //IE鍦ㄩ殣钘忕姸鎬佷笅涓嶆敮鎸乺ange鎿嶄綔锛宑atch涓�涓�
-        try {
-          nativeRange.select();
-        } catch (e) {}
-        return this;
-      } : function(notInsertFillData) {
-        function checkOffset(rng) {
-
-          function check(node, offset, dir) {
-            if (node.nodeType == 3 && node.nodeValue.length < offset) {
-              rng[dir + 'Offset'] = node.nodeValue.length
-            }
-          }
-          check(rng.startContainer, rng.startOffset, 'start');
-          check(rng.endContainer, rng.endOffset, 'end');
-        }
-        var win = domUtils.getWindow(this.document),
-          sel = win.getSelection(),
-          txtNode;
-        //FF涓嬪叧闂嚜鍔ㄩ暱楂樻椂婊氬姩鏉″湪鍏抽棴dialog鏃朵細璺�
-        //ff涓嬪鏋滀笉body.focus灏嗕笉鑳藉畾浣嶉棴鍚堝厜鏍囧埌缂栬緫鍣ㄥ唴
-        browser.gecko ? this.document.body.focus() : win.focus();
-        if (sel) {
-          sel.removeAllRanges();
-          // trace:870 chrome/safari鍚庤竟鏄痓r瀵逛簬闂悎寰梤ange涓嶈兘瀹氫綅 鎵�浠ュ幓鎺変簡鍒ゆ柇
-          // this.startContainer.nodeType != 3 &&! ((child = this.startContainer.childNodes[this.startOffset]) && child.nodeType == 1 && child.tagName == 'BR'
-          if (this.collapsed && !notInsertFillData) {
-            //                    //opear濡傛灉娌℃湁鑺傜偣鎺ョ潃锛屽師鐢熺殑涓嶈兘澶熷畾浣�,涓嶈兘鍦╞ody鐨勭涓�绾ф彃鍏ョ┖鐧借妭鐐�
-            //                    if (notInsertFillData && browser.opera && !domUtils.isBody(this.startContainer) && this.startContainer.nodeType == 1) {
-            //                        var tmp = this.document.createTextNode('');
-            //                        this.insertNode(tmp).setStart(tmp, 0).collapse(true);
-            //                    }
-            //
-            //澶勭悊鍏夋爣钀藉湪鏂囨湰鑺傜偣鐨勬儏鍐�
-            //澶勭悊浠ヤ笅鐨勬儏鍐�
-            //<b>|xxxx</b>
-            //<b>xxxx</b>|xxxx
-            //xxxx<b>|</b>
-            var start = this.startContainer,
-              child = start;
-            if (start.nodeType == 1) {
-              child = start.childNodes[this.startOffset];
-
-            }
-            if (!(start.nodeType == 3 && this.startOffset) &&
-              (child ?
-                (!child.previousSibling || child.previousSibling.nodeType != 3) :
-                (!start.lastChild || start.lastChild.nodeType != 3)
-              )
-            ) {
-              txtNode = this.document.createTextNode(fillChar);
-              //璺熺潃鍓嶈竟璧�
-              this.insertNode(txtNode);
-              removeFillData(this.document, txtNode);
-              mergeSibling(txtNode, 'previousSibling');
-              mergeSibling(txtNode, 'nextSibling');
-              fillData = txtNode;
-              this.setStart(txtNode, browser.webkit ? 1 : 0).collapse(true);
-            }
-          }
-          var nativeRange = this.document.createRange();
-          if (this.collapsed && browser.opera && this.startContainer.nodeType == 1) {
-            var child = this.startContainer.childNodes[this.startOffset];
-            if (!child) {
-              //寰�鍓嶉潬鎷�
-              child = this.startContainer.lastChild;
-              if (child && domUtils.isBr(child)) {
-                this.setStartBefore(child).collapse(true);
-              }
-            } else {
-              //鍚戝悗闈犳嫝
-              while (child && domUtils.isBlockElm(child)) {
-                if (child.nodeType == 1 && child.childNodes[0]) {
-                  child = child.childNodes[0]
-                } else {
-                  break;
-                }
-              }
-              child && this.setStartBefore(child).collapse(true)
-            }
-
-          }
-          //鏄痗reateAddress鏈�鍚庝竴浣嶇畻鐨勪笉鍑嗭紝鐜板湪杩欓噷杩涜寰皟
-          checkOffset(this);
-          nativeRange.setStart(this.startContainer, this.startOffset);
-          nativeRange.setEnd(this.endContainer, this.endOffset);
-          sel.addRange(nativeRange);
-        }
-        return this;
-      },
-
-      /**
-       * 婊氬姩鍒板綋鍓峳ange寮�濮嬬殑浣嶇疆
-       * @method scrollToView
-       * @param { Window } win 褰撳墠range瀵硅薄鎵�灞炵殑window瀵硅薄
-       * @return { UE.dom.Range } 褰撳墠Range瀵硅薄
-       */
-
-      /**
-       * 婊氬姩鍒拌窛绂诲綋鍓峳ange寮�濮嬩綅缃� offset 鐨勪綅缃
-       * @method scrollToView
-       * @param { Window } win 褰撳墠range瀵硅薄鎵�灞炵殑window瀵硅薄
-       * @param { Number } offset 璺濈range寮�濮嬩綅缃鐨勫亸绉婚噺锛� 濡傛灉涓烘鏁帮紝 鍒欏悜涓嬪亸绉伙紝 鍙嶄箣锛� 鍒欏悜涓婂亸绉�
-       * @return { UE.dom.Range } 褰撳墠Range瀵硅薄
-       */
-      scrollToView: function(win, offset) {
-        win = win ? window : domUtils.getWindow(this.document);
-        var me = this,
-          span = me.document.createElement('span');
-        //trace:717
-        span.innerHTML = '&nbsp;';
-        me.cloneRange().insertNode(span);
-        domUtils.scrollToView(span, win, offset);
-        domUtils.remove(span);
-        return me;
-      },
-
-      /**
-       * 鍒ゆ柇褰撳墠閫夊尯鍐呭鏄惁鍗犱綅绗�
-       * @private
-       * @method inFillChar
-       * @return { Boolean } 濡傛灉鏄崰浣嶇杩斿洖true锛屽惁鍒欒繑鍥瀎alse
-       */
-      inFillChar: function() {
-        var start = this.startContainer;
-        if (this.collapsed && start.nodeType == 3 &&
-          start.nodeValue.replace(new RegExp('^' + domUtils.fillChar), '').length + 1 == start.nodeValue.length
-        ) {
-          return true;
-        }
-        return false;
-      },
-
-      /**
-       * 淇濆瓨
-       * @method createAddress
-       * @private
-       * @return { Boolean } 杩斿洖寮�濮嬪拰缁撴潫鐨勪綅缃�
-       * @example
-       * ```html
-       * <body>
-       *     <p>
-       *         aaaa
-       *         <em>
-       *             <!-- 閫夊尯寮�濮� -->
-       *             bbbb
-       *             <!-- 閫夊尯缁撴潫 -->
-       *         </em>
-       *     </p>
-       *
-       *     <script>
-       *         //output: {startAddress:[0,1,0,0],endAddress:[0,1,0,4]}
-       *         console.log( range.createAddress() );
-       *     </script>
-       * </body>
-       * ```
-       */
-      createAddress: function(ignoreEnd, ignoreTxt) {
-        var addr = {},
-          me = this;
-
-        function getAddress(isStart) {
-          var node = isStart ? me.startContainer : me.endContainer;
-          var parents = domUtils.findParents(node, true, function(node) {
-              return !domUtils.isBody(node)
-            }),
-            addrs = [];
-          for (var i = 0, ci; ci = parents[i++];) {
-            addrs.push(domUtils.getNodeIndex(ci, ignoreTxt));
-          }
-          var firstIndex = 0;
-
-          if (ignoreTxt) {
-            if (node.nodeType == 3) {
-              var tmpNode = node.previousSibling;
-              while (tmpNode && tmpNode.nodeType == 3) {
-                firstIndex += tmpNode.nodeValue.replace(fillCharReg, '').length;
-                tmpNode = tmpNode.previousSibling;
-              }
-              firstIndex += (isStart ? me.startOffset : me.endOffset) // - (fillCharReg.test(node.nodeValue) ? 1 : 0 )
-            } else {
-              node = node.childNodes[isStart ? me.startOffset : me.endOffset];
-              if (node) {
-                firstIndex = domUtils.getNodeIndex(node, ignoreTxt);
-              } else {
-                node = isStart ? me.startContainer : me.endContainer;
-                var first = node.firstChild;
-                while (first) {
-                  if (domUtils.isFillChar(first)) {
-                    first = first.nextSibling;
-                    continue;
-                  }
-                  firstIndex++;
-                  if (first.nodeType == 3) {
-                    while (first && first.nodeType == 3) {
-                      first = first.nextSibling;
-                    }
-                  } else {
-                    first = first.nextSibling;
-                  }
-                }
-              }
-            }
-
-          } else {
-            firstIndex = isStart ? domUtils.isFillChar(node) ? 0 : me.startOffset : me.endOffset
-          }
-          if (firstIndex < 0) {
-            firstIndex = 0;
-          }
-          addrs.push(firstIndex);
-          return addrs;
-        }
-        addr.startAddress = getAddress(true);
-        if (!ignoreEnd) {
-          addr.endAddress = me.collapsed ? [].concat(addr.startAddress) : getAddress();
-        }
-        return addr;
-      },
-
-      /**
-       * 淇濆瓨
-       * @method createAddress
-       * @private
-       * @return { Boolean } 杩斿洖寮�濮嬪拰缁撴潫鐨勪綅缃�
-       * @example
-       * ```html
-       * <body>
-       *     <p>
-       *         aaaa
-       *         <em>
-       *             <!-- 閫夊尯寮�濮� -->
-       *             bbbb
-       *             <!-- 閫夊尯缁撴潫 -->
-       *         </em>
-       *     </p>
-       *
-       *     <script>
-       *         var range = editor.selection.getRange();
-       *         range.moveToAddress({startAddress:[0,1,0,0],endAddress:[0,1,0,4]});
-       *         range.select();
-       *         //output: 'bbbb'
-       *         console.log(editor.selection.getText());
-       *     </script>
-       * </body>
-       * ```
-       */
-      moveToAddress: function(addr, ignoreEnd) {
-        var me = this;
-
-        function getNode(address, isStart) {
-          var tmpNode = me.document.body,
-            parentNode, offset;
-          for (var i = 0, ci, l = address.length; i < l; i++) {
-            ci = address[i];
-            parentNode = tmpNode;
-            tmpNode = tmpNode.childNodes[ci];
-            if (!tmpNode) {
-              offset = ci;
-              break;
-            }
-          }
-          if (isStart) {
-            if (tmpNode) {
-              me.setStartBefore(tmpNode)
-            } else {
-              me.setStart(parentNode, offset)
-            }
-          } else {
-            if (tmpNode) {
-              me.setEndBefore(tmpNode)
-            } else {
-              me.setEnd(parentNode, offset)
-            }
-          }
-        }
-        getNode(addr.startAddress, true);
-        !ignoreEnd && addr.endAddress && getNode(addr.endAddress);
-        return me;
-      },
-
-      /**
-       * 鍒ゆ柇缁欏畾鐨凴ange瀵硅薄鏄惁鍜屽綋鍓峈ange瀵硅薄琛ㄧず鐨勬槸鍚屼竴涓�夊尯
-       * @method equals
-       * @param { UE.dom.Range } 闇�瑕佸垽鏂殑Range瀵硅薄
-       * @return { Boolean } 濡傛灉缁欏畾鐨凴ange瀵硅薄涓庡綋鍓峈ange瀵硅薄琛ㄧず鐨勬槸鍚屼竴涓�夊尯锛� 鍒欒繑鍥瀟rue锛� 鍚﹀垯杩斿洖false
-       */
-      equals: function(rng) {
-        for (var p in this) {
-          if (this.hasOwnProperty(p)) {
-            if (this[p] !== rng[p])
-              return false
-          }
-        }
-        return true;
-
-      },
-
-      /**
-       * 閬嶅巻range鍐呯殑鑺傜偣銆傛瘡褰撻亶鍘嗕竴涓妭鐐规椂锛� 閮戒細鎵ц鍙傛暟椤� doFn 鎸囧畾鐨勫嚱鏁帮紝 璇ュ嚱鏁扮殑鎺ュ彈褰撳墠閬嶅巻鐨勮妭鐐�
-       * 浣滀负鍏跺弬鏁般��
-       * @method traversal
-       * @param { Function }  doFn 瀵规瘡涓亶鍘嗙殑鑺傜偣瑕佹墽琛岀殑鏂规硶锛� 璇ユ柟娉曟帴鍙楀綋鍓嶉亶鍘嗙殑鑺傜偣浣滀负鍏跺弬鏁�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @example
-       * ```html
-       *
-       * <body>
-       *
-       *     <!-- 閫夊尯寮�濮� -->
-       *     <span></span>
-       *     <a></a>
-       *     <!-- 閫夊尯缁撴潫 -->
-       * </body>
-       *
-       * <script>
-       *
-       *     //output: <span></span><a></a>
-       *     console.log( range.cloneContents() );
-       *
-       *     range.traversal( function ( node ) {
-       *
-       *         if ( node.nodeType === 1 ) {
-       *             node.className = "test";
-       *         }
-       *
-       *     } );
-       *
-       *     //output: <span class="test"></span><a class="test"></a>
-       *     console.log( range.cloneContents() );
-       *
-       * </script>
-       * ```
-       */
-
-      /**
-       * 閬嶅巻range鍐呯殑鑺傜偣銆�
-       * 姣忓綋閬嶅巻涓�涓妭鐐规椂锛� 閮戒細鎵ц鍙傛暟椤� doFn 鎸囧畾鐨勫嚱鏁帮紝 璇ュ嚱鏁扮殑鎺ュ彈褰撳墠閬嶅巻鐨勮妭鐐�
-       * 浣滀负鍏跺弬鏁般��
-       * 鍙互閫氳繃鍙傛暟椤� filterFn 鏉ユ寚瀹氫竴涓繃婊ゅ櫒锛� 鍙湁绗﹀悎璇ヨ繃婊ゅ櫒杩囨护瑙勫垯鐨勮妭鐐规墠浼氳Е
-       * 鍙慸oFn鍑芥暟鐨勬墽琛�
-       * @method traversal
-       * @param { Function } doFn 瀵规瘡涓亶鍘嗙殑鑺傜偣瑕佹墽琛岀殑鏂规硶锛� 璇ユ柟娉曟帴鍙楀綋鍓嶉亶鍘嗙殑鑺傜偣浣滀负鍏跺弬鏁�
-       * @param { Function } filterFn 杩囨护鍣紝 璇ュ嚱鏁版帴鍙楀綋鍓嶉亶鍘嗙殑鑺傜偣浣滀负鍙傛暟锛� 濡傛灉璇ヨ妭鐐规弧瓒宠繃婊�
-       *                      瑙勫垯锛� 璇疯繑鍥瀟rue锛� 璇ヨ妭鐐逛細瑙﹀彂doFn锛� 鍚﹀垯锛� 璇疯繑鍥瀎alse锛� 鍒欒鑺傜偣涓�
-       *                      浼氳Е鍙慸oFn銆�
-       * @return { UE.dom.Range } 褰撳墠range瀵硅薄
-       * @see UE.dom.Range:traversal(Function)
-       * @example
-       * ```html
-       *
-       * <body>
-       *
-       *     <!-- 閫夊尯寮�濮� -->
-       *     <span></span>
-       *     <a></a>
-       *     <!-- 閫夊尯缁撴潫 -->
-       * </body>
-       *
-       * <script>
-       *
-       *     //output: <span></span><a></a>
-       *     console.log( range.cloneContents() );
-       *
-       *     range.traversal( function ( node ) {
-       *
-       *         node.className = "test";
-       *
-       *     }, function ( node ) {
-       *          return node.nodeType === 1;
-       *     } );
-       *
-       *     //output: <span class="test"></span><a class="test"></a>
-       *     console.log( range.cloneContents() );
-       *
-       * </script>
-       * ```
-       */
-      traversal: function(doFn, filterFn) {
-        if (this.collapsed)
-          return this;
-        var bookmark = this.createBookmark(),
-          end = bookmark.end,
-          current = domUtils.getNextDomNode(bookmark.start, false, filterFn);
-        while (current && current !== end && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) {
-          var tmpNode = domUtils.getNextDomNode(current, false, filterFn);
-          doFn(current);
-          current = tmpNode;
-        }
-        return this.moveToBookmark(bookmark);
-      }
-    };
-  })();
-
-  // core/Selection.js
-  /**
-   * 閫夐泦
-   * @file
-   * @module UE.dom
-   * @class Selection
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 閫夊尯闆嗗悎
-   * @unfile
-   * @module UE.dom
-   * @class Selection
-   */
-  (function() {
-
-    function getBoundaryInformation(range, start) {
-      var getIndex = domUtils.getNodeIndex;
-      range = range.duplicate();
-      range.collapse(start);
-      var parent = range.parentElement();
-      //濡傛灉鑺傜偣閲屾病鏈夊瓙鑺傜偣锛岀洿鎺ラ��鍑�
-      if (!parent.hasChildNodes()) {
-        return {
-          container: parent,
-          offset: 0
-        };
-      }
-      var siblings = parent.children,
-        child,
-        testRange = range.duplicate(),
-        startIndex = 0,
-        endIndex = siblings.length - 1,
-        index = -1,
-        distance;
-      while (startIndex <= endIndex) {
-        index = Math.floor((startIndex + endIndex) / 2);
-        child = siblings[index];
-        testRange.moveToElementText(child);
-        var position = testRange.compareEndPoints('StartToStart', range);
-        if (position > 0) {
-          endIndex = index - 1;
-        } else if (position < 0) {
-          startIndex = index + 1;
-        } else {
-          //trace:1043
-          return {
-            container: parent,
-            offset: getIndex(child)
-          };
-        }
-      }
-      if (index == -1) {
-        testRange.moveToElementText(parent);
-        testRange.setEndPoint('StartToStart', range);
-        distance = testRange.text.replace(/(\r\n|\r)/g, '\n').length;
-        siblings = parent.childNodes;
-        if (!distance) {
-          child = siblings[siblings.length - 1];
-          return {
-            container: child,
-            offset: child.nodeValue.length
-          };
-        }
-
-        var i = siblings.length;
-        while (distance > 0) {
-          distance -= siblings[--i].nodeValue.length;
-        }
-        return {
-          container: siblings[i],
-          offset: -distance
-        };
-      }
-      testRange.collapse(position > 0);
-      testRange.setEndPoint(position > 0 ? 'StartToStart' : 'EndToStart', range);
-      distance = testRange.text.replace(/(\r\n|\r)/g, '\n').length;
-      if (!distance) {
-        return dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName] ? {
-          container: parent,
-          offset: getIndex(child) + (position > 0 ? 0 : 1)
-        } : {
-          container: child,
-          offset: position > 0 ? 0 : child.childNodes.length
-        }
-      }
-      while (distance > 0) {
-        try {
-          var pre = child;
-          child = child[position > 0 ? 'previousSibling' : 'nextSibling'];
-          distance -= child.nodeValue.length;
-        } catch (e) {
-          return {
-            container: parent,
-            offset: getIndex(pre)
-          };
-        }
-      }
-      return {
-        container: child,
-        offset: position > 0 ? -distance : child.nodeValue.length + distance
-      }
-    }
-
-    /**
-     * 灏唅eRange杞崲涓篟ange瀵硅薄
-     * @param {Range}   ieRange    ieRange瀵硅薄
-     * @param {Range}   range      Range瀵硅薄
-     * @return  {Range}  range       杩斿洖杞崲鍚庣殑Range瀵硅薄
-     */
-    function transformIERangeToRange(ieRange, range) {
-      if (ieRange.item) {
-        range.selectNode(ieRange.item(0));
-      } else {
-        var bi = getBoundaryInformation(ieRange, true);
-        range.setStart(bi.container, bi.offset);
-        if (ieRange.compareEndPoints('StartToEnd', ieRange) != 0) {
-          bi = getBoundaryInformation(ieRange, false);
-          range.setEnd(bi.container, bi.offset);
-        }
-      }
-      return range;
-    }
-
-    /**
-     * 鑾峰緱ieRange
-     * @param {Selection} sel    Selection瀵硅薄
-     * @return {ieRange}    寰楀埌ieRange
-     */
-    function _getIERange(sel) {
-      var ieRange;
-      //ie涓嬫湁鍙兘鎶ラ敊
-      try {
-        ieRange = sel.getNative().createRange();
-      } catch (e) {
-        return null;
-      }
-      var el = ieRange.item ? ieRange.item(0) : ieRange.parentElement();
-      if ((el.ownerDocument || el) === sel.document) {
-        return ieRange;
-      }
-      return null;
-    }
-
-    var Selection = dom.Selection = function(doc) {
-      var me = this,
-        iframe;
-      me.document = doc;
-      if (browser.ie9below) {
-        iframe = domUtils.getWindow(doc).frameElement;
-        domUtils.on(iframe, 'beforedeactivate', function() {
-          me._bakIERange = me.getIERange();
-        });
-        domUtils.on(iframe, 'activate', function() {
-          try {
-            if (!_getIERange(me) && me._bakIERange) {
-              me._bakIERange.select();
-            }
-          } catch (ex) {}
-          me._bakIERange = null;
-        });
-      }
-      iframe = doc = null;
-    };
-
-    Selection.prototype = {
-
-      rangeInBody: function(rng, txtRange) {
-        var node = browser.ie9below || txtRange ? rng.item ? rng.item() : rng.parentElement() : rng.startContainer;
-
-        return node === this.document.body || domUtils.inDoc(node, this.document);
-      },
-
-      /**
-       * 鑾峰彇鍘熺敓seleciton瀵硅薄
-       * @method getNative
-       * @return { Object } 鑾峰緱selection瀵硅薄
-       * @example
-       * ```javascript
-       * editor.selection.getNative();
-       * ```
-       */
-      getNative: function() {
-        var doc = this.document;
-        try {
-          return !doc ? null : browser.ie9below ? doc.selection : domUtils.getWindow(doc).getSelection();
-        } catch (e) {
-          return null;
-        }
-      },
-
-      /**
-       * 鑾峰緱ieRange
-       * @method getIERange
-       * @return { Object } 杩斿洖ie鍘熺敓鐨凴ange
-       * @example
-       * ```javascript
-       * editor.selection.getIERange();
-       * ```
-       */
-      getIERange: function() {
-        var ieRange = _getIERange(this);
-        if (!ieRange) {
-          if (this._bakIERange) {
-            return this._bakIERange;
-          }
-        }
-        return ieRange;
-      },
-
-      /**
-       * 缂撳瓨褰撳墠閫夊尯鐨剅ange鍜岄�夊尯鐨勫紑濮嬭妭鐐�
-       * @method cache
-       */
-      cache: function() {
-        this.clear();
-        this._cachedRange = this.getRange();
-        this._cachedStartElement = this.getStart();
-        this._cachedStartElementPath = this.getStartElementPath();
-      },
-
-      /**
-       * 鑾峰彇閫夊尯寮�濮嬩綅缃殑鐖惰妭鐐瑰埌body
-       * @method getStartElementPath
-       * @return { Array } 杩斿洖鐖惰妭鐐归泦鍚�
-       * @example
-       * ```javascript
-       * editor.selection.getStartElementPath();
-       * ```
-       */
-      getStartElementPath: function() {
-        if (this._cachedStartElementPath) {
-          return this._cachedStartElementPath;
-        }
-        var start = this.getStart();
-        if (start) {
-          return domUtils.findParents(start, true, null, true)
-        }
-        return [];
-      },
-
-      /**
-       * 娓呯┖缂撳瓨
-       * @method clear
-       */
-      clear: function() {
-        this._cachedStartElementPath = this._cachedRange = this._cachedStartElement = null;
-      },
-
-      /**
-       * 缂栬緫鍣ㄦ槸鍚﹀緱鍒颁簡閫夊尯
-       * @method isFocus
-       */
-      isFocus: function() {
-        try {
-          if (browser.ie9below) {
-
-            var nativeRange = _getIERange(this);
-            return !!(nativeRange && this.rangeInBody(nativeRange));
-          } else {
-            return !!this.getNative().rangeCount;
-          }
-        } catch (e) {
-          return false;
-        }
-
-      },
-
-      /**
-       * 鑾峰彇閫夊尯瀵瑰簲鐨凴ange
-       * @method getRange
-       * @return { Object } 寰楀埌Range瀵硅薄
-       * @example
-       * ```javascript
-       * editor.selection.getRange();
-       * ```
-       */
-      getRange: function() {
-        var me = this;
-
-        function optimze(range) {
-          var child = me.document.body.firstChild,
-            collapsed = range.collapsed;
-          while (child && child.firstChild) {
-            range.setStart(child, 0);
-            child = child.firstChild;
-          }
-          if (!range.startContainer) {
-            range.setStart(me.document.body, 0)
-          }
-          if (collapsed) {
-            range.collapse(true);
-          }
-        }
-
-        if (me._cachedRange != null) {
-          return this._cachedRange;
-        }
-        var range = new baidu.editor.dom.Range(me.document);
-
-        if (browser.ie9below) {
-          var nativeRange = me.getIERange();
-          if (nativeRange) {
-            //澶囦唤鐨刜bakIERange鍙兘宸茬粡瀹炴晥浜嗭紝dom鏍戝彂鐢熶簡鍙樺寲姣斿浠庢簮鐮佹ā寮忓垏鍥炴潵锛屾墍浠ry涓�涓嬶紝瀹炴晥灏辨斁鍒癰ody寮�濮嬩綅缃�
-            try {
-              transformIERangeToRange(nativeRange, range);
-            } catch (e) {
-              optimze(range);
-            }
-
-          } else {
-            optimze(range);
-          }
-        } else {
-          var sel = me.getNative();
-          if (sel && sel.rangeCount) {
-            var firstRange = sel.getRangeAt(0);
-            var lastRange = sel.getRangeAt(sel.rangeCount - 1);
-            range.setStart(firstRange.startContainer, firstRange.startOffset).setEnd(lastRange.endContainer,
-              lastRange.endOffset);
-            if (range.collapsed && domUtils.isBody(range.startContainer) && !range.startOffset) {
-              optimze(range);
-            }
-          } else {
-            //trace:1734 鏈夊彲鑳藉凡缁忎笉鍦╠om鏍戜笂浜嗭紝鏍囪瘑鐨勮妭鐐�
-            if (this._bakRange && domUtils.inDoc(this._bakRange.startContainer, this.document)) {
-              return this._bakRange;
-            }
-            optimze(range);
-          }
-        }
-        return this._bakRange = range;
-      },
-
-      /**
-       * 鑾峰彇寮�濮嬪厓绱狅紝鐢ㄤ簬鐘舵�佸弽灏�
-       * @method getStart
-       * @return { Element } 鑾峰緱寮�濮嬪厓绱�
-       * @example
-       * ```javascript
-       * editor.selection.getStart();
-       * ```
-       */
-      getStart: function() {
-        if (this._cachedStartElement) {
-          return this._cachedStartElement;
-        }
-        var range = browser.ie9below ? this.getIERange() : this.getRange(),
-          tmpRange,
-          start, tmp, parent;
-        if (browser.ie9below) {
-          if (!range) {
-            //todo 缁欑涓�涓�煎彲鑳戒細鏈夐棶棰�
-            return this.document.body.firstChild;
-          }
-          //control鍏冪礌
-          if (range.item) {
-            return range.item(0);
-          }
-          tmpRange = range.duplicate();
-          //淇ie涓�<b>x</b>[xx] 闂悎鍚� <b>x|</b>xx
-          tmpRange.text.length > 0 && tmpRange.moveStart('character', 1);
-          tmpRange.collapse(1);
-          start = tmpRange.parentElement();
-          parent = tmp = range.parentElement();
-          while (tmp = tmp.parentNode) {
-            if (tmp == start) {
-              start = parent;
-              break;
-            }
-          }
-        } else {
-          range.shrinkBoundary();
-          start = range.startContainer;
-          if (start.nodeType == 1 && start.hasChildNodes()) {
-            start = start.childNodes[Math.min(start.childNodes.length - 1, range.startOffset)];
-          }
-          if (start.nodeType == 3) {
-            return start.parentNode;
-          }
-        }
-        return start;
-      },
-
-      /**
-       * 寰楀埌閫夊尯涓殑鏂囨湰
-       * @method getText
-       * @return { String } 閫夊尯涓寘鍚殑鏂囨湰
-       * @example
-       * ```javascript
-       * editor.selection.getText();
-       * ```
-       */
-      getText: function() {
-        var nativeSel, nativeRange;
-        if (this.isFocus() && (nativeSel = this.getNative())) {
-          nativeRange = browser.ie9below ? nativeSel.createRange() : nativeSel.getRangeAt(0);
-          return browser.ie9below ? nativeRange.text : nativeRange.toString();
-        }
-        return '';
-      },
-
-      /**
-       * 娓呴櫎閫夊尯
-       * @method clearRange
-       * @example
-       * ```javascript
-       * editor.selection.clearRange();
-       * ```
-       */
-      clearRange: function() {
-        this.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges']();
-      }
-    };
-  })();
-
-  // core/Editor.js
-  /**
-   * 缂栬緫鍣ㄤ富绫伙紝鍖呭惈缂栬緫鍣ㄦ彁渚涚殑澶ч儴鍒嗗叕鐢ㄦ帴鍙�
-   * @file
-   * @module UE
-   * @class Editor
-   * @since 1.2.6.1
-   */
-
-  /**
-   * UEditor鍏敤绌洪棿锛孶Editor鎵�鏈夌殑鍔熻兘閮芥寕杞藉湪璇ョ┖闂翠笅
-   * @unfile
-   * @module UE
-   */
-
-  /**
-   * UEditor鐨勬牳蹇冪被锛屼负鐢ㄦ埛鎻愪緵涓庣紪杈戝櫒浜や簰鐨勬帴鍙c��
-   * @unfile
-   * @module UE
-   * @class Editor
-   */
-
-  (function() {
-    var uid = 0,
-      _selectionChangeTimer;
-
-    /**
-     * 鑾峰彇缂栬緫鍣ㄧ殑html鍐呭锛岃祴鍊煎埌缂栬緫鍣ㄦ墍鍦ㄨ〃鍗曠殑textarea鏂囨湰鍩熼噷闈�
-     * @private
-     * @method setValue
-     * @param { UE.Editor } editor 缂栬緫鍣ㄤ簨渚�
-     */
-    function setValue(form, editor) {
-      var textarea;
-      if (editor.textarea) {
-        if (utils.isString(editor.textarea)) {
-          for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, 'textarea'); ti = tis[i++];) {
-            if (ti.id == 'ueditor_textarea_' + editor.options.textarea) {
-              textarea = ti;
-              break;
-            }
-          }
-        } else {
-          textarea = editor.textarea;
-        }
-      }
-      if (!textarea) {
-        form.appendChild(textarea = domUtils.createElement(document, 'textarea', {
-          'name': editor.options.textarea,
-          'id': 'ueditor_textarea_' + editor.options.textarea,
-          'style': "display:none"
-        }));
-        //涓嶈浜х敓澶氫釜textarea
-        editor.textarea = textarea;
-      }!textarea.getAttribute('name') && textarea.setAttribute('name', editor.options.textarea);
-      textarea.value = editor.hasContents() ?
-        (editor.options.allHtmlEnabled ? editor.getAllHtml() : editor.getContent(null, null, true)) :
-        ''
-    }
-
-    function loadPlugins(me) {
-      //鍒濆鍖栨彃浠�
-      for (var pi in UE.plugins) {
-        UE.plugins[pi].call(me);
-      }
-
-    }
-
-    function checkCurLang(I18N) {
-      for (var lang in I18N) {
-        return lang
-      }
-    }
-
-    function langReadied(me) {
-      me.langIsReady = true;
-
-      me.fireEvent("langReady");
-    }
-
-    /**
-     * 缂栬緫鍣ㄥ噯澶囧氨缁悗浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event ready
-     * @remind render鏂规硶鎵ц瀹屾垚涔嬪悗,浼氳Е鍙戣浜嬩欢
-     * @remind
-     * @example
-     * ```javascript
-     * editor.addListener( 'ready', function( editor ) {
-     *     editor.execCommand( 'focus' ); //缂栬緫鍣ㄥ鍦ㄥ畬鎴愬悗锛岃缂栬緫鍣ㄦ嬁鍒扮劍鐐�
-     * } );
-     * ```
-     */
-    /**
-     * 鎵цdestroy鏂规硶,浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event destroy
-     * @see UE.Editor:destroy()
-     */
-    /**
-     * 鎵цreset鏂规硶,浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event reset
-     * @see UE.Editor:reset()
-     */
-    /**
-     * 鎵цfocus鏂规硶,浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event focus
-     * @see UE.Editor:focus(Boolean)
-     */
-    /**
-     * 璇█鍔犺浇瀹屾垚浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event langReady
-     */
-    /**
-     * 杩愯鍛戒护涔嬪悗浼氳Е鍙戣鍛戒护
-     * @module UE
-     * @class Editor
-     * @event beforeExecCommand
-     */
-    /**
-     * 杩愯鍛戒护涔嬪悗浼氳Е鍙戣鍛戒护
-     * @module UE
-     * @class Editor
-     * @event afterExecCommand
-     */
-    /**
-     * 杩愯鍛戒护涔嬪墠浼氳Е鍙戣鍛戒护
-     * @module UE
-     * @class Editor
-     * @event firstBeforeExecCommand
-     */
-    /**
-     * 鍦╣etContent鏂规硶鎵ц涔嬪墠浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event beforeGetContent
-     * @see UE.Editor:getContent()
-     */
-    /**
-     * 鍦╣etContent鏂规硶鎵ц涔嬪悗浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event afterGetContent
-     * @see UE.Editor:getContent()
-     */
-    /**
-     * 鍦╣etAllHtml鏂规硶鎵ц鏃朵細瑙﹀彂璇ヤ簨浠�
-     * @module UE
-     * @class Editor
-     * @event getAllHtml
-     * @see UE.Editor:getAllHtml()
-     */
-    /**
-     * 鍦╯etContent鏂规硶鎵ц涔嬪墠浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event beforeSetContent
-     * @see UE.Editor:setContent(String)
-     */
-    /**
-     * 鍦╯etContent鏂规硶鎵ц涔嬪悗浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event afterSetContent
-     * @see UE.Editor:setContent(String)
-     */
-    /**
-     * 姣忓綋缂栬緫鍣ㄥ唴閮ㄩ�夊尯鍙戠敓鏀瑰彉鏃讹紝灏嗚Е鍙戣浜嬩欢
-     * @event selectionchange
-     * @warning 璇ヤ簨浠剁殑瑙﹀彂闈炲父棰戠箒锛屼笉寤鸿鍦ㄨ浜嬩欢鐨勫鐞嗚繃绋嬩腑鍋氶噸閲忕骇鐨勫鐞�
-     * @example
-     * ```javascript
-     * editor.addListener( 'selectionchange', function( editor ) {
-     *     console.log('閫夊尯鍙戠敓鏀瑰彉');
-     * }
-     */
-    /**
-     * 鍦ㄦ墍鏈塻electionchange鐨勭洃鍚嚱鏁版墽琛屼箣鍓嶏紝浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event beforeSelectionChange
-     * @see UE.Editor:selectionchange
-     */
-    /**
-     * 鍦ㄦ墍鏈塻electionchange鐨勭洃鍚嚱鏁版墽琛屽畬涔嬪悗锛屼細瑙﹀彂璇ヤ簨浠�
-     * @module UE
-     * @class Editor
-     * @event afterSelectionChange
-     * @see UE.Editor:selectionchange
-     */
-    /**
-     * 缂栬緫鍣ㄥ唴瀹瑰彂鐢熸敼鍙樻椂浼氳Е鍙戣浜嬩欢
-     * @module UE
-     * @class Editor
-     * @event contentChange
-     */
-
-
-    /**
-     * 浠ラ粯璁ゅ弬鏁版瀯寤轰竴涓紪杈戝櫒瀹炰緥
-     * @constructor
-     * @remind 閫氳繃 鏀规瀯閫犳柟娉曞疄渚嬪寲鐨勭紪杈戝櫒,涓嶅甫ui灞�.闇�瑕乺ender鍒颁竴涓鍣�,缂栬緫鍣ㄥ疄渚嬫墠鑳芥甯告覆鏌撳埌椤甸潰
-     * @example
-     * ```javascript
-     * var editor = new UE.Editor();
-     * editor.execCommand('blod');
-     * ```
-     * @see UE.Config
-     */
-
-    /**
-     * 浠ョ粰瀹氱殑鍙傛暟闆嗗悎鍒涘缓涓�涓紪杈戝櫒瀹炰緥锛屽浜庢湭鎸囧畾鐨勫弬鏁帮紝灏嗗簲鐢ㄩ粯璁ゅ弬鏁般��
-     * @constructor
-     * @remind 閫氳繃 鏀规瀯閫犳柟娉曞疄渚嬪寲鐨勭紪杈戝櫒,涓嶅甫ui灞�.闇�瑕乺ender鍒颁竴涓鍣�,缂栬緫鍣ㄥ疄渚嬫墠鑳芥甯告覆鏌撳埌椤甸潰
-     * @param { Object } setting 鍒涘缓缂栬緫鍣ㄧ殑鍙傛暟
-     * @example
-     * ```javascript
-     * var editor = new UE.Editor();
-     * editor.execCommand('blod');
-     * ```
-     * @see UE.Config
-     */
-    var Editor = UE.Editor = function(options) {
-      var me = this;
-      me.uid = uid++;
-      EventBase.call(me);
-      me.commands = {};
-      me.options = utils.extend(utils.clone(options || {}), UEDITOR_CONFIG, true);
-      me.shortcutkeys = {};
-      me.inputRules = [];
-      me.outputRules = [];
-      //璁剧疆榛樿鐨勫父鐢ㄥ睘鎬�
-      me.setOpt(Editor.defaultOptions(me));
-
-      /* 灏濊瘯寮傛鍔犺浇鍚庡彴閰嶇疆 */
-      me.loadServerConfig();
-
-      if (!utils.isEmptyObject(UE.I18N)) {
-        //淇敼榛樿鐨勮瑷�绫诲瀷
-        me.options.lang = checkCurLang(UE.I18N);
-        UE.plugin.load(me);
-        langReadied(me);
-
-      } else {
-        utils.loadFile(document, {
-          src: me.options.langPath + me.options.lang + "/" + me.options.lang + ".js",
-          tag: "script",
-          type: "text/javascript",
-          defer: "defer"
-        }, function() {
-          UE.plugin.load(me);
-          langReadied(me);
-        });
-      }
-
-      UE.instants['ueditorInstant' + me.uid] = me;
-    };
-    Editor.prototype = {
-      registerCommand: function(name, obj) {
-        this.commands[name] = obj;
-      },
-      /**
-       * 缂栬緫鍣ㄥ澶栨彁渚涚殑鐩戝惉ready浜嬩欢鐨勬帴鍙o紝 閫氳繃璋冪敤璇ユ柟娉曪紝杈惧埌鐨勬晥鏋滀笌鐩戝惉ready浜嬩欢鏄竴鑷寸殑
-       * @method ready
-       * @param { Function } fn 缂栬緫鍣╮eady涔嬪悗鎵�鎵ц鐨勫洖璋�, 濡傛灉鍦ㄦ敞鍐屼簨浠朵箣鍓嶇紪杈戝櫒宸茬粡ready锛屽皢浼�
-       * 绔嬪嵆瑙﹀彂璇ュ洖璋冦��
-       * @remind 闇�瑕佺瓑寰呯紪杈戝櫒鍔犺浇瀹屾垚鍚庢墠鑳芥墽琛岀殑浠g爜,鍙互浣跨敤璇ユ柟娉曚紶鍏�
-       * @example
-       * ```javascript
-       * editor.ready( function( editor ) {
-       *     editor.setContent('鍒濆鍖栧畬姣�');
-       * } );
-       * ```
-       * @see UE.Editor.event:ready
-       */
-      ready: function(fn) {
-        var me = this;
-        if (fn) {
-          me.isReady ? fn.apply(me) : me.addListener('ready', fn);
-        }
-      },
-
-      /**
-       * 璇ユ柟娉曟槸鎻愪緵缁欐彃浠堕噷闈娇鐢紝璁剧疆閰嶇疆椤归粯璁ゅ��
-       * @method setOpt
-       * @warning 涓夊璁剧疆閰嶇疆椤圭殑浼樺厛绾�: 瀹炰緥鍖栨椂浼犲叆鍙傛暟 > setOpt()璁剧疆 > config鏂囦欢閲岃缃�
-       * @warning 璇ユ柟娉曚粎渚涚紪杈戝櫒鎻掍欢鍐呴儴鍜岀紪杈戝櫒鍒濆鍖栨椂璋冪敤锛屽叾浠栧湴鏂逛笉鑳借皟鐢ㄣ��
-       * @param { String } key 缂栬緫鍣ㄧ殑鍙帴鍙楃殑閫夐」鍚嶇О
-       * @param { * } val  璇ラ�夐」鍙帴鍙楃殑鍊�
-       * @example
-       * ```javascript
-       * editor.setOpt( 'initContent', '娆㈣繋浣跨敤缂栬緫鍣�' );
-       * ```
-       */
-
-      /**
-       * 璇ユ柟娉曟槸鎻愪緵缁欐彃浠堕噷闈娇鐢紝浠key:value}闆嗗悎鐨勬柟寮忚缃彃浠跺唴鐢ㄥ埌鐨勯厤缃」榛樿鍊�
-       * @method setOpt
-       * @warning 涓夊璁剧疆閰嶇疆椤圭殑浼樺厛绾�: 瀹炰緥鍖栨椂浼犲叆鍙傛暟 > setOpt()璁剧疆 > config鏂囦欢閲岃缃�
-       * @warning 璇ユ柟娉曚粎渚涚紪杈戝櫒鎻掍欢鍐呴儴鍜岀紪杈戝櫒鍒濆鍖栨椂璋冪敤锛屽叾浠栧湴鏂逛笉鑳借皟鐢ㄣ��
-       * @param { Object } options 灏嗚璁剧疆鐨勯�夐」鐨勯敭鍊煎瀵硅薄
-       * @example
-       * ```javascript
-       * editor.setOpt( {
-       *     'initContent': '娆㈣繋浣跨敤缂栬緫鍣�'
-       * } );
-       * ```
-       */
-      setOpt: function(key, val) {
-        var obj = {};
-        if (utils.isString(key)) {
-          obj[key] = val
-        } else {
-          obj = key;
-        }
-        utils.extend(this.options, obj, true);
-      },
-      getOpt: function(key) {
-        return this.options[key]
-      },
-      /**
-       * 閿�姣佺紪杈戝櫒瀹炰緥锛屼娇鐢╰extarea浠f浛
-       * @method destroy
-       * @example
-       * ```javascript
-       * editor.destroy();
-       * ```
-       */
-      destroy: function() {
-
-        var me = this;
-        me.fireEvent('destroy');
-        var container = me.container.parentNode;
-        var textarea = me.textarea;
-        if (!textarea) {
-          textarea = document.createElement('textarea');
-          container.parentNode.insertBefore(textarea, container);
-        } else {
-          textarea.style.display = ''
-        }
-
-        textarea.style.width = me.iframe.offsetWidth + 'px';
-        textarea.style.height = me.iframe.offsetHeight + 'px';
-        textarea.value = me.getContent();
-        textarea.id = me.key;
-        container.innerHTML = '';
-        domUtils.remove(container);
-        var key = me.key;
-        //trace:2004
-        for (var p in me) {
-          if (me.hasOwnProperty(p)) {
-            delete this[p];
-          }
-        }
-        UE.delEditor(key);
-      },
-
-      /**
-       * 娓叉煋缂栬緫鍣ㄧ殑DOM鍒版寚瀹氬鍣�
-       * @method render
-       * @param { String } containerId 鎸囧畾涓�涓鍣↖D
-       * @remind 鎵ц璇ユ柟娉�,浼氳Е鍙憆eady浜嬩欢
-       * @warning 蹇呴』涓斿彧鑳借皟鐢ㄤ竴娆�
-       */
-
-      /**
-       * 娓叉煋缂栬緫鍣ㄧ殑DOM鍒版寚瀹氬鍣�
-       * @method render
-       * @param { Element } containerDom 鐩存帴鎸囧畾瀹瑰櫒瀵硅薄
-       * @remind 鎵ц璇ユ柟娉�,浼氳Е鍙憆eady浜嬩欢
-       * @warning 蹇呴』涓斿彧鑳借皟鐢ㄤ竴娆�
-       */
-      render: function(container) {
-        var me = this,
-          options = me.options,
-          getStyleValue = function(attr) {
-            return parseInt(domUtils.getComputedStyle(container, attr));
-          };
-        if (utils.isString(container)) {
-          container = document.getElementById(container);
-        }
-        if (container) {
-          if (options.initialFrameWidth) {
-            options.minFrameWidth = options.initialFrameWidth
-          } else {
-            options.minFrameWidth = options.initialFrameWidth = container.offsetWidth;
-          }
-          if (options.initialFrameHeight) {
-            options.minFrameHeight = options.initialFrameHeight
-          } else {
-            options.initialFrameHeight = options.minFrameHeight = container.offsetHeight;
-          }
-
-          container.style.width = /%$/.test(options.initialFrameWidth) ? '100%' : options.initialFrameWidth -
-            getStyleValue("padding-left") - getStyleValue("padding-right") + 'px';
-          container.style.height = /%$/.test(options.initialFrameHeight) ? '100%' : options.initialFrameHeight -
-            getStyleValue("padding-top") - getStyleValue("padding-bottom") + 'px';
-
-          container.style.zIndex = options.zIndex;
-
-          var html = (ie && browser.version < 9 ? '' : '<!DOCTYPE html>') +
-            '<html xmlns=\'http://www.w3.org/1999/xhtml\' class=\'view\' ><head>' +
-            '<style type=\'text/css\'>' +
-            //璁剧疆鍥涘懆鐨勭暀杈�
-            '.view{padding:0;word-wrap:break-word;cursor:text;height:90%;}\n' +
-            //璁剧疆榛樿瀛椾綋鍜屽瓧鍙�
-            //font-family涓嶈兘鍛㈤殢渚挎敼锛屽湪safari涓媐illchar浼氭湁瑙f瀽闂
-            'body{margin:8px;font-family:sans-serif;font-size:16px;}' +
-            //璁剧疆娈佃惤闂磋窛
-            'p{margin:5px 0;}</style>' +
-            (options.iframeCssUrl ? '<link rel=\'stylesheet\' type=\'text/css\' href=\'' + utils.unhtml(options
-              .iframeCssUrl) + '\'/>' : '') +
-            (options.initialStyle ? '<style>' + options.initialStyle + '</style>' : '') +
-            '</head><body class=\'view\' ></body>' +
-            '<script type=\'text/javascript\' ' + (ie ? 'defer=\'defer\'' : '') + ' id=\'_initialScript\'>' +
-            'setTimeout(function(){editor = window.parent.UE.instants[\'ueditorInstant' + me.uid +
-            '\'];editor._setup(document);},0);' +
-            'var _tmpScript = document.getElementById(\'_initialScript\');_tmpScript.parentNode.removeChild(_tmpScript);</script></html>';
-          container.appendChild(domUtils.createElement(document, 'iframe', {
-            id: 'ueditor_' + me.uid,
-            width: "100%",
-            height: "100%",
-            frameborder: "0",
-            //鍏堟敞閲婃帀浜嗭紝鍔犵殑鍘熷洜蹇樿浜嗭紝浣嗗紑鍚細鐩存帴瀵艰嚧鍏ㄥ睆妯″紡涓嬪唴瀹瑰鏃朵笉浼氬嚭鐜版粴鍔ㄦ潯
-            //                    scrolling :'no',
-            src: 'javascript:void(function(){document.open();' + (options.customDomain && document.domain !=
-                location.hostname ? 'document.domain="' + document.domain + '";' : '') +
-              'document.write("' + html + '");document.close();}())'
-          }));
-          container.style.overflow = 'hidden';
-          //瑙e喅濡傛灉鏄粰瀹氱殑鐧惧垎姣旓紝浼氬鑷撮珮搴︾畻涓嶅鐨勯棶棰�
-          setTimeout(function() {
-            if (/%$/.test(options.initialFrameWidth)) {
-              options.minFrameWidth = options.initialFrameWidth = container.offsetWidth;
-              //濡傛灉杩欓噷缁欏畾瀹藉害锛屼細瀵艰嚧ie鍦ㄦ嫋鍔ㄧ獥鍙eぇ灏忔椂锛岀紪杈戝尯鍩熶笉闅忕潃鍙樺寲
-              //                        container.style.width = options.initialFrameWidth + 'px';
-            }
-            if (/%$/.test(options.initialFrameHeight)) {
-              options.minFrameHeight = options.initialFrameHeight = container.offsetHeight;
-              container.style.height = options.initialFrameHeight + 'px';
-            }
-          })
-        }
-      },
-
-      /**
-       * 缂栬緫鍣ㄥ垵濮嬪寲
-       * @method _setup
-       * @private
-       * @param { Element } doc 缂栬緫鍣↖frame涓殑鏂囨。瀵硅薄
-       */
-      _setup: function(doc) {
-
-        var me = this,
-          options = me.options;
-        if (ie) {
-          doc.body.disabled = true;
-          doc.body.contentEditable = true;
-          doc.body.disabled = false;
-        } else {
-          doc.body.contentEditable = true;
-        }
-        doc.body.spellcheck = false;
-        me.document = doc;
-        me.window = doc.defaultView || doc.parentWindow;
-        me.iframe = me.window.frameElement;
-        me.body = doc.body;
-        me.selection = new dom.Selection(doc);
-        //gecko鍒濆鍖栧氨鑳藉緱鍒皉ange,鏃犳硶鍒ゆ柇isFocus浜�
-        var geckoSel;
-        if (browser.gecko && (geckoSel = this.selection.getNative())) {
-          geckoSel.removeAllRanges();
-        }
-        this._initEvents();
-        //涓篺orm鎻愪氦鎻愪緵涓�涓殣钘忕殑textarea
-        for (var form = this.iframe.parentNode; !domUtils.isBody(form); form = form.parentNode) {
-          if (form.tagName == 'FORM') {
-            me.form = form;
-            if (me.options.autoSyncData) {
-              domUtils.on(me.window, 'blur', function() {
-                setValue(form, me);
-              });
-            } else {
-              domUtils.on(form, 'submit', function() {
-                setValue(this, me);
-              });
-            }
-            break;
-          }
-        }
-        if (options.initialContent) {
-          if (options.autoClearinitialContent) {
-            var oldExecCommand = me.execCommand;
-            me.execCommand = function() {
-              me.fireEvent('firstBeforeExecCommand');
-              return oldExecCommand.apply(me, arguments);
-            };
-            this._setDefaultContent(options.initialContent);
-          } else
-            this.setContent(options.initialContent, false, true);
-        }
-
-        //缂栬緫鍣ㄤ笉鑳戒负绌哄唴瀹�
-
-        if (domUtils.isEmptyNode(me.body)) {
-          me.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>';
-        }
-        //濡傛灉瑕佹眰focus, 灏辨妸鍏夋爣瀹氫綅鍒板唴瀹瑰紑濮�
-        if (options.focus) {
-          setTimeout(function() {
-            me.focus(me.options.focusInEnd);
-            //濡傛灉鑷姩娓呴櫎寮�鐫�锛屽氨涓嶉渶瑕佸仛selectionchange;
-            !me.options.autoClearinitialContent && me._selectionChange();
-          }, 0);
-        }
-        if (!me.container) {
-          me.container = this.iframe.parentNode;
-        }
-        if (options.fullscreen && me.ui) {
-          me.ui.setFullScreen(true);
-        }
-
-        try {
-          me.document.execCommand('2D-position', false, false);
-        } catch (e) {}
-        try {
-          me.document.execCommand('enableInlineTableEditing', false, false);
-        } catch (e) {}
-        try {
-          me.document.execCommand('enableObjectResizing', false, false);
-        } catch (e) {}
-
-        //鎸傛帴蹇嵎閿�
-        me._bindshortcutKeys();
-        me.isReady = 1;
-        me.fireEvent('ready');
-        options.onready && options.onready.call(me);
-        if (!browser.ie9below) {
-          domUtils.on(me.window, ['blur', 'focus'], function(e) {
-            //chrome涓嬩細鍑虹幇alt+tab鍒囨崲鏃讹紝瀵艰嚧閫夊尯浣嶇疆涓嶅
-            if (e.type == 'blur') {
-              me._bakRange = me.selection.getRange();
-              try {
-                me._bakNativeRange = me.selection.getNative().getRangeAt(0);
-                me.selection.getNative().removeAllRanges();
-              } catch (e) {
-                me._bakNativeRange = null;
-              }
-
-            } else {
-              try {
-                me._bakRange && me._bakRange.select();
-              } catch (e) {}
-            }
-          });
-        }
-        //trace:1518 ff3.6body涓嶅瀵涳紝浼氬鑷寸偣鍑荤┖鐧藉鏃犳硶鑾峰緱鐒︾偣
-        if (browser.gecko && browser.version <= 10902) {
-          //淇ff3.6鍒濆鍖栬繘鏉ワ紝涓嶈兘鐐瑰嚮鑾峰緱鐒︾偣
-          me.body.contentEditable = false;
-          setTimeout(function() {
-            me.body.contentEditable = true;
-          }, 100);
-          setInterval(function() {
-            me.body.style.height = me.iframe.offsetHeight - 20 + 'px'
-          }, 100)
-        }
-
-        !options.isShow && me.setHide();
-        options.readonly && me.setDisabled();
-      },
-
-      /**
-       * 鍚屾鏁版嵁鍒扮紪杈戝櫒鎵�鍦ㄧ殑form
-       * 浠庣紪杈戝櫒鐨勫鍣ㄨ妭鐐瑰悜涓婃煡鎵緁orm鍏冪礌锛岃嫢鎵惧埌锛屽氨鍚屾缂栬緫鍐呭鍒版壘鍒扮殑form閲岋紝涓烘彁浜ゆ暟鎹仛鍑嗗锛屼富瑕佺敤浜庢槸鎵嬪姩鎻愪氦鐨勬儏鍐�
-       * 鍚庡彴鍙栧緱鏁版嵁鐨勯敭鍊硷紝浣跨敤浣犲鍣ㄤ笂鐨刵ame灞炴�э紝濡傛灉娌℃湁灏变娇鐢ㄥ弬鏁伴噷鐨則extarea椤�
-       * @method sync
-       * @example
-       * ```javascript
-       * editor.sync();
-       * form.sumbit(); //form鍙橀噺宸茬粡鎸囧悜浜唂orm鍏冪礌
-       * ```
-       */
-
-      /**
-       * 鏍规嵁浼犲叆鐨刦ormId锛屽湪椤甸潰涓婃煡鎵捐鍚屾鏁版嵁鐨勮〃鍗曪紝鑻ユ壘鍒帮紝灏卞悓姝ョ紪杈戝唴瀹瑰埌鎵惧埌鐨刦orm閲岋紝涓烘彁浜ゆ暟鎹仛鍑嗗
-       * 鍚庡彴鍙栧緱鏁版嵁鐨勯敭鍊硷紝璇ラ敭鍊奸粯璁や娇鐢ㄧ粰瀹氱殑缂栬緫鍣ㄥ鍣ㄧ殑name灞炴�э紝濡傛灉娌℃湁name灞炴�у垯浣跨敤鍙傛暟椤归噷缁欏畾鐨勨�渢extarea鈥濋」
-       * @method sync
-       * @param { String } formID 鎸囧畾涓�涓鍚屾鏁版嵁鐨刦orm鐨刬d,缂栬緫鍣ㄧ殑鏁版嵁浼氬悓姝ュ埌浣犳寚瀹歠orm涓�
-       */
-      sync: function(formId) {
-        var me = this,
-          form = formId ? document.getElementById(formId) :
-          domUtils.findParent(me.iframe.parentNode, function(node) {
-            return node.tagName == 'FORM'
-          }, true);
-        form && setValue(form, me);
-      },
-
-      /**
-       * 璁剧疆缂栬緫鍣ㄩ珮搴�
-       * @method setHeight
-       * @remind 褰撻厤缃」autoHeightEnabled涓虹湡鏃�,璇ユ柟娉曟棤鏁�
-       * @param { Number } number 璁剧疆鐨勯珮搴﹀�硷紝绾暟鍊硷紝涓嶅甫鍗曚綅
-       * @example
-       * ```javascript
-       * editor.setHeight(number);
-       * ```
-       */
-      setHeight: function(height, notSetHeight) {
-        if (height !== parseInt(this.iframe.parentNode.style.height)) {
-          this.iframe.parentNode.style.height = height + 'px';
-        }!notSetHeight && (this.options.minFrameHeight = this.options.initialFrameHeight = height);
-        this.body.style.height = height + 'px';
-        !notSetHeight && this.trigger('setHeight')
-      },
-
-      /**
-       * 涓虹紪杈戝櫒鐨勭紪杈戝懡浠ゆ彁渚涘揩鎹烽敭
-       * 杩欎釜鎺ュ彛鏄负鎻掍欢鎵╁睍鎻愪緵鐨勬帴鍙�,涓昏鏄负鏂版坊鍔犵殑鎻掍欢锛屽鏋滈渶瑕佹坊鍔犲揩鎹烽敭锛屾墍鎻愪緵鐨勬帴鍙�
-       * @method addshortcutkey
-       * @param { Object } keyset 鍛戒护鍚嶅拰蹇嵎閿敭鍊煎瀵硅薄锛屽涓寜閽殑蹇嵎閿敤鈥滐紜鈥濆垎闅�
-       * @example
-       * ```javascript
-       * editor.addshortcutkey({
-       *     "Bold" : "ctrl+66",//^B
-       *     "Italic" : "ctrl+73", //^I
-       * });
-       * ```
-       */
-      /**
-       * 杩欎釜鎺ュ彛鏄负鎻掍欢鎵╁睍鎻愪緵鐨勬帴鍙�,涓昏鏄负鏂版坊鍔犵殑鎻掍欢锛屽鏋滈渶瑕佹坊鍔犲揩鎹烽敭锛屾墍鎻愪緵鐨勬帴鍙�
-       * @method addshortcutkey
-       * @param { String } cmd 瑙﹀彂蹇嵎閿椂锛屽搷搴旂殑鍛戒护
-       * @param { String } keys 蹇嵎閿殑瀛楃涓诧紝澶氫釜鎸夐挳鐢ㄢ�滐紜鈥濆垎闅�
-       * @example
-       * ```javascript
-       * editor.addshortcutkey("Underline", "ctrl+85"); //^U
-       * ```
-       */
-      addshortcutkey: function(cmd, keys) {
-        var obj = {};
-        if (keys) {
-          obj[cmd] = keys
-        } else {
-          obj = cmd;
-        }
-        utils.extend(this.shortcutkeys, obj)
-      },
-
-      /**
-       * 瀵圭紪杈戝櫒璁剧疆keydown浜嬩欢鐩戝惉锛岀粦瀹氬揩鎹烽敭鍜屽懡浠わ紝褰撳揩鎹烽敭缁勫悎瑙﹀彂鎴愬姛锛屼細鍝嶅簲瀵瑰簲鐨勫懡浠�
-       * @method _bindshortcutKeys
-       * @private
-       */
-      _bindshortcutKeys: function() {
-        var me = this,
-          shortcutkeys = this.shortcutkeys;
-        me.addListener('keydown', function(type, e) {
-          var keyCode = e.keyCode || e.which;
-          for (var i in shortcutkeys) {
-            var tmp = shortcutkeys[i].split(',');
-            for (var t = 0, ti; ti = tmp[t++];) {
-              ti = ti.split(':');
-              var key = ti[0],
-                param = ti[1];
-              if (/^(ctrl)(\+shift)?\+(\d+)$/.test(key.toLowerCase()) || /^(\d+)$/.test(key)) {
-                if (((RegExp.$1 == 'ctrl' ? (e.ctrlKey || e.metaKey) : 0) &&
-                    (RegExp.$2 != "" ? e[RegExp.$2.slice(1) + "Key"] : 1) &&
-                    keyCode == RegExp.$3
-                  ) ||
-                  keyCode == RegExp.$1
-                ) {
-                  if (me.queryCommandState(i, param) != -1)
-                    me.execCommand(i, param);
-                  domUtils.preventDefault(e);
-                }
-              }
-            }
-
-          }
-        });
-      },
-
-      /**
-       * 鑾峰彇缂栬緫鍣ㄧ殑鍐呭
-       * @method getContent
-       * @warning 璇ユ柟娉曡幏鍙栧埌鐨勬槸缁忚繃缂栬緫鍣ㄥ唴缃殑杩囨护瑙勫垯杩涜杩囨护鍚庡緱鍒扮殑鍐呭
-       * @return { String } 缂栬緫鍣ㄧ殑鍐呭瀛楃涓�, 濡傛灉缂栬緫鍣ㄧ殑鍐呭涓虹┖锛屾垨鑰呮槸绌虹殑鏍囩鍐呭锛堝:鈥�&lt;p&gt;&lt;br/&gt;&lt;/p&gt;鈥滐級锛� 鍒欒繑鍥炵┖瀛楃涓�
-       * @example
-       * ```javascript
-       * //缂栬緫鍣╤tml鍐呭:<p>1<strong>2<em>34</em>5</strong>6</p>
-       * var content = editor.getContent(); //杩斿洖鍊�:<p>1<strong>2<em>34</em>5</strong>6</p>
-       * ```
-       */
-
-      /**
-       * 鑾峰彇缂栬緫鍣ㄧ殑鍐呭銆� 鍙互閫氳繃鍙傛暟瀹氫箟缂栬緫鍣ㄥ唴缃殑鍒ょ┖瑙勫垯
-       * @method getContent
-       * @param { Function } fn 鑷畾鐨勫垽绌鸿鍒欙紝 瑕佹眰璇ユ柟娉曡繑鍥炰竴涓猙oolean绫诲瀷鐨勫�硷紝
-       *                      浠h〃褰撳墠缂栬緫鍣ㄧ殑鍐呭鏄惁绌猴紝
-       *                      濡傛灉杩斿洖true锛� 鍒欒鏂规硶灏嗙洿鎺ヨ繑鍥炵┖瀛楃涓诧紱濡傛灉杩斿洖false锛屽垯缂栬緫鍣ㄥ皢杩斿洖
-       *                      缁忚繃鍐呯疆杩囨护瑙勫垯澶勭悊鍚庣殑鍐呭銆�
-       * @remind 璇ユ柟娉曞湪澶勭悊鍖呭惈鏈夊垵濮嬪寲鍐呭鐨勬椂鍊欒兘璧峰埌寰堝ソ鐨勪綔鐢ㄣ��
-       * @warning 璇ユ柟娉曡幏鍙栧埌鐨勬槸缁忚繃缂栬緫鍣ㄥ唴缃殑杩囨护瑙勫垯杩涜杩囨护鍚庡緱鍒扮殑鍐呭
-       * @return { String } 缂栬緫鍣ㄧ殑鍐呭瀛楃涓�
-       * @example
-       * ```javascript
-       * // editor 鏄竴涓紪杈戝櫒鐨勫疄渚�
-       * var content = editor.getContent( function ( editor ) {
-       *      return editor.body.innerHTML === '娆㈣繋浣跨敤UEditor'; //杩斿洖绌哄瓧绗︿覆
-       * } );
-       * ```
-       */
-      getContent: function(cmd, fn, notSetCursor, ignoreBlank, formatter) {
-        var me = this;
-        if (cmd && utils.isFunction(cmd)) {
-          fn = cmd;
-          cmd = '';
-        }
-        if (fn ? !fn() : !this.hasContents()) {
-          return '';
-        }
-        me.fireEvent('beforegetcontent');
-        var root = UE.htmlparser(me.body.innerHTML, ignoreBlank);
-        me.filterOutputRule(root);
-        me.fireEvent('aftergetcontent', cmd, root);
-        return root.toHtml(formatter);
-      },
-
-      /**
-       * 鍙栧緱瀹屾暣鐨刪tml浠g爜锛屽彲浠ョ洿鎺ユ樉绀烘垚瀹屾暣鐨刪tml鏂囨。
-       * @method getAllHtml
-       * @return { String } 缂栬緫鍣ㄧ殑鍐呭html鏂囨。瀛楃涓�
-       * @eaxmple
-       * ```javascript
-       * editor.getAllHtml(); //杩斿洖鏍煎紡澶ц嚧鏄�: <html><head>...</head><body>...</body></html>
-       * ```
-       */
-      getAllHtml: function() {
-        var me = this,
-          headHtml = [],
-          html = '';
-        me.fireEvent('getAllHtml', headHtml);
-        if (browser.ie && browser.version > 8) {
-          var headHtmlForIE9 = '';
-          utils.each(me.document.styleSheets, function(si) {
-            headHtmlForIE9 += (si.href ? '<link rel="stylesheet" type="text/css" href="' + si.href + '" />' :
-              '<style>' + si.cssText + '</style>');
-          });
-          utils.each(me.document.getElementsByTagName('script'), function(si) {
-            headHtmlForIE9 += si.outerHTML;
-          });
-
-        }
-        return '<html><head>' + (me.options.charset ?
-            '<meta http-equiv="Content-Type" content="text/html; charset=' + me.options.charset + '"/>' : '') +
-          (headHtmlForIE9 || me.document.getElementsByTagName('head')[0].innerHTML) + headHtml.join('\n') +
-          '</head>' +
-          '<body ' + (ie && browser.version < 9 ? 'class="view"' : '') + '>' + me.getContent(null, null, true) +
-          '</body></html>';
-      },
-
-      /**
-       * 寰楀埌缂栬緫鍣ㄧ殑绾枃鏈唴瀹癸紝浣嗕細淇濈暀娈佃惤鏍煎紡
-       * @method getPlainTxt
-       * @return { String } 缂栬緫鍣ㄥ甫娈佃惤鏍煎紡鐨勭函鏂囨湰鍐呭瀛楃涓�
-       * @example
-       * ```javascript
-       * //缂栬緫鍣╤tml鍐呭:<p><strong>1</strong></p><p><strong>2</strong></p>
-       * console.log(editor.getPlainTxt()); //杈撳嚭:"1\n2\n
-       * ```
-       */
-      getPlainTxt: function() {
-        var reg = new RegExp(domUtils.fillChar, 'g'),
-          html = this.body.innerHTML.replace(/[\n\r]/g, ''); //ie瑕佸厛鍘讳簡\n鍦ㄥ鐞�
-        html = html.replace(/<(p|div)[^>]*>(<br\/?>|&nbsp;)<\/\1>/gi, '\n')
-          .replace(/<br\/?>/gi, '\n')
-          .replace(/<[^>/]+>/g, '')
-          .replace(/(\n)?<\/([^>]+)>/g, function(a, b, c) {
-            return dtd.$block[c] ? '\n' : b ? b : '';
-          });
-        //鍙栧嚭鏉ョ殑绌烘牸浼氭湁c2a0浼氬彉鎴愪贡鐮侊紝澶勭悊杩欑鎯呭喌\u00a0
-        return html.replace(reg, '').replace(/\u00a0/g, ' ').replace(/&nbsp;/g, ' ');
-      },
-
-      /**
-       * 鑾峰彇缂栬緫鍣ㄤ腑鐨勭函鏂囨湰鍐呭,娌℃湁娈佃惤鏍煎紡
-       * @method getContentTxt
-       * @return { String } 缂栬緫鍣ㄤ笉甯︽钀芥牸寮忕殑绾枃鏈唴瀹瑰瓧绗︿覆
-       * @example
-       * ```javascript
-       * //缂栬緫鍣╤tml鍐呭:<p><strong>1</strong></p><p><strong>2</strong></p>
-       * console.log(editor.getPlainTxt()); //杈撳嚭:"12
-       * ```
-       */
-      getContentTxt: function() {
-        var reg = new RegExp(domUtils.fillChar, 'g');
-        //鍙栧嚭鏉ョ殑绌烘牸浼氭湁c2a0浼氬彉鎴愪贡鐮侊紝澶勭悊杩欑鎯呭喌\u00a0
-        return this.body[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').replace(/\u00a0/g, ' ');
-      },
-
-      /**
-       * 璁剧疆缂栬緫鍣ㄧ殑鍐呭锛屽彲淇敼缂栬緫鍣ㄥ綋鍓嶇殑html鍐呭
-       * @method setContent
-       * @warning 閫氳繃璇ユ柟娉曟彃鍏ョ殑鍐呭锛屾槸缁忚繃缂栬緫鍣ㄥ唴缃殑杩囨护瑙勫垯杩涜杩囨护鍚庡緱鍒扮殑鍐呭
-       * @warning 璇ユ柟娉曚細瑙﹀彂selectionchange浜嬩欢
-       * @param { String } html 瑕佹彃鍏ョ殑html鍐呭
-       * @example
-       * ```javascript
-       * editor.getContent('<p>test</p>');
-       * ```
-       */
-
-      /**
-       * 璁剧疆缂栬緫鍣ㄧ殑鍐呭锛屽彲淇敼缂栬緫鍣ㄥ綋鍓嶇殑html鍐呭
-       * @method setContent
-       * @warning 閫氳繃璇ユ柟娉曟彃鍏ョ殑鍐呭锛屾槸缁忚繃缂栬緫鍣ㄥ唴缃殑杩囨护瑙勫垯杩涜杩囨护鍚庡緱鍒扮殑鍐呭
-       * @warning 璇ユ柟娉曚細瑙﹀彂selectionchange浜嬩欢
-       * @param { String } html 瑕佹彃鍏ョ殑html鍐呭
-       * @param { Boolean } isAppendTo 鑻ヤ紶鍏rue锛屼笉娓呯┖鍘熸潵鐨勫唴瀹癸紝鍦ㄦ渶鍚庢彃鍏ュ唴瀹癸紝鍚﹀垯锛屾竻绌哄唴瀹瑰啀鎻掑叆
-       * @example
-       * ```javascript
-       * //鍋囪璁剧疆鍓嶇殑缂栬緫鍣ㄥ唴瀹规槸 <p>old text</p>
-       * editor.setContent('<p>new text</p>', true); //鎻掑叆鐨勭粨鏋滄槸<p>old text</p><p>new text</p>
-       * ```
-       */
-      setContent: function(html, isAppendTo, notFireSelectionchange) {
-        var me = this;
-
-        me.fireEvent('beforesetcontent', html);
-        var root = UE.htmlparser(html);
-        me.filterInputRule(root);
-        html = root.toHtml();
-
-        me.body.innerHTML = (isAppendTo ? me.body.innerHTML : '') + html;
-
-
-        function isCdataDiv(node) {
-          return node.tagName == 'DIV' && node.getAttribute('cdata_tag');
-        }
-        //缁欐枃鏈垨鑰卛nline鑺傜偣濂梡鏍囩
-        if (me.options.enterTag == 'p') {
-
-          var child = this.body.firstChild,
-            tmpNode;
-          if (!child || child.nodeType == 1 &&
-            (dtd.$cdata[child.tagName] || isCdataDiv(child) ||
-              domUtils.isCustomeNode(child)
-            ) &&
-            child === this.body.lastChild) {
-            this.body.innerHTML = '<p>' + (browser.ie ? '&nbsp;' : '<br/>') + '</p>' + this.body.innerHTML;
-
-          } else {
-            var p = me.document.createElement('p');
-            while (child) {
-              while (child && (child.nodeType == 3 || child.nodeType == 1 && dtd.p[child.tagName] && !dtd.$cdata[
-                  child.tagName])) {
-                tmpNode = child.nextSibling;
-                p.appendChild(child);
-                child = tmpNode;
-              }
-              if (p.firstChild) {
-                if (!child) {
-                  me.body.appendChild(p);
-                  break;
-                } else {
-                  child.parentNode.insertBefore(p, child);
-                  p = me.document.createElement('p');
-                }
-              }
-              child = child.nextSibling;
-            }
-          }
-        }
-        me.fireEvent('aftersetcontent');
-        me.fireEvent('contentchange');
-
-        !notFireSelectionchange && me._selectionChange();
-        //娓呴櫎淇濆瓨鐨勯�夊尯
-        me._bakRange = me._bakIERange = me._bakNativeRange = null;
-        //trace:1742 setContent鍚巊ecko鑳藉緱鍒扮劍鐐归棶棰�
-        var geckoSel;
-        if (browser.gecko && (geckoSel = this.selection.getNative())) {
-          geckoSel.removeAllRanges();
-        }
-        if (me.options.autoSyncData) {
-          me.form && setValue(me.form, me);
-        }
-      },
-
-      /**
-       * 璁╃紪杈戝櫒鑾峰緱鐒︾偣锛岄粯璁ocus鍒扮紪杈戝櫒澶撮儴
-       * @method focus
-       * @example
-       * ```javascript
-       * editor.focus()
-       * ```
-       */
-
-      /**
-       * 璁╃紪杈戝櫒鑾峰緱鐒︾偣锛宼oEnd纭畾focus浣嶇疆
-       * @method focus
-       * @param { Boolean } toEnd 榛樿focus鍒扮紪杈戝櫒澶撮儴锛宼oEnd涓簍rue鏃秄ocus鍒板唴瀹瑰熬閮�
-       * @example
-       * ```javascript
-       * editor.focus(true)
-       * ```
-       */
-      focus: function(toEnd) {
-        try {
-          var me = this,
-            rng = me.selection.getRange();
-          if (toEnd) {
-            var node = me.body.lastChild;
-            if (node && node.nodeType == 1 && !dtd.$empty[node.tagName]) {
-              if (domUtils.isEmptyBlock(node)) {
-                rng.setStartAtFirst(node)
-              } else {
-                rng.setStartAtLast(node)
-              }
-              rng.collapse(true);
-            }
-            rng.setCursor(true);
-          } else {
-            if (!rng.collapsed && domUtils.isBody(rng.startContainer) && rng.startOffset == 0) {
-
-              var node = me.body.firstChild;
-              if (node && node.nodeType == 1 && !dtd.$empty[node.tagName]) {
-                rng.setStartAtFirst(node).collapse(true);
-              }
-            }
-
-            rng.select(true);
-
-          }
-          this.fireEvent('focus selectionchange');
-        } catch (e) {}
-
-      },
-      isFocus: function() {
-        return this.selection.isFocus();
-      },
-      blur: function() {
-        var sel = this.selection.getNative();
-        if (sel.empty && browser.ie) {
-          var nativeRng = document.body.createTextRange();
-          nativeRng.moveToElementText(document.body);
-          nativeRng.collapse(true);
-          nativeRng.select();
-          sel.empty()
-        } else {
-          sel.removeAllRanges()
-        }
-
-        //this.fireEvent('blur selectionchange');
-      },
-      /**
-       * 鍒濆鍖朥E浜嬩欢鍙婇儴鍒嗕簨浠朵唬鐞�
-       * @method _initEvents
-       * @private
-       */
-      _initEvents: function() {
-        var me = this,
-          doc = me.document,
-          win = me.window;
-        me._proxyDomEvent = utils.bind(me._proxyDomEvent, me);
-        domUtils.on(doc, ['click', 'contextmenu', 'mousedown', 'keydown', 'keyup', 'keypress', 'mouseup',
-          'mouseover', 'mouseout', 'selectstart'
-        ], me._proxyDomEvent);
-        domUtils.on(win, ['focus', 'blur'], me._proxyDomEvent);
-        domUtils.on(me.body, 'drop', function(e) {
-          //闃绘ff涓嬮粯璁ょ殑寮瑰嚭鏂伴〉闈㈡墦寮�鍥剧墖
-          if (browser.gecko && e.stopPropagation) {
-            e.stopPropagation();
-          }
-          me.fireEvent('contentchange')
-        });
-        domUtils.on(doc, ['mouseup', 'keydown'], function(evt) {
-          //鐗规畩閿笉瑙﹀彂selectionchange
-          if (evt.type == 'keydown' && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey)) {
-            return;
-          }
-          if (evt.button == 2) return;
-          me._selectionChange(250, evt);
-        });
-      },
-      /**
-       * 瑙﹀彂浜嬩欢浠g悊
-       * @method _proxyDomEvent
-       * @private
-       * @return { * } fireEvent鐨勮繑鍥炲��
-       * @see UE.EventBase:fireEvent(String)
-       */
-      _proxyDomEvent: function(evt) {
-        if (this.fireEvent('before' + evt.type.replace(/^on/, '').toLowerCase()) === false) {
-          return false;
-        }
-        if (this.fireEvent(evt.type.replace(/^on/, ''), evt) === false) {
-          return false;
-        }
-        return this.fireEvent('after' + evt.type.replace(/^on/, '').toLowerCase())
-      },
-      /**
-       * 鍙樺寲閫夊尯
-       * @method _selectionChange
-       * @private
-       */
-      _selectionChange: function(delay, evt) {
-        var me = this;
-        //鏈夊厜鏍囨墠鍋歴electionchange 涓轰簡瑙e喅鏈猣ocus鏃剁偣鍑籹ource涓嶈兘瑙﹀彂鏇存敼宸ュ叿鏍忕姸鎬佺殑闂锛坰ource鍛戒护notNeedUndo=1锛�
-        //            if ( !me.selection.isFocus() ){
-        //                return;
-        //            }
-
-
-        var hackForMouseUp = false;
-        var mouseX, mouseY;
-        if (browser.ie && browser.version < 9 && evt && evt.type == 'mouseup') {
-          var range = this.selection.getRange();
-          if (!range.collapsed) {
-            hackForMouseUp = true;
-            mouseX = evt.clientX;
-            mouseY = evt.clientY;
-          }
-        }
-        clearTimeout(_selectionChangeTimer);
-        _selectionChangeTimer = setTimeout(function() {
-          if (!me.selection || !me.selection.getNative()) {
-            return;
-          }
-          //淇涓�涓狪E涓嬬殑bug: 榧犳爣鐐瑰嚮涓�娈靛凡閫夋嫨鐨勬枃鏈腑闂存椂锛屽彲鑳藉湪mouseup鍚庣殑涓�娈垫椂闂村唴鍙栧埌鐨剅ange鏄湪selection鐨則ype涓篘one涓嬬殑閿欒鍊�.
-          //IE涓嬪鏋滅敤鎴锋槸鎷栨嫿涓�娈靛凡閫夋嫨鏂囨湰锛屽垯涓嶄細瑙﹀彂mouseup浜嬩欢锛屾墍浠ヨ繖閲岀殑鐗规畩澶勭悊涓嶄細瀵瑰叾鏈夊奖鍝�
-          var ieRange;
-          if (hackForMouseUp && me.selection.getNative().type == 'None') {
-            ieRange = me.document.body.createTextRange();
-            try {
-              ieRange.moveToPoint(mouseX, mouseY);
-            } catch (ex) {
-              ieRange = null;
-            }
-          }
-          var bakGetIERange;
-          if (ieRange) {
-            bakGetIERange = me.selection.getIERange;
-            me.selection.getIERange = function() {
-              return ieRange;
-            };
-          }
-          me.selection.cache();
-          if (bakGetIERange) {
-            me.selection.getIERange = bakGetIERange;
-          }
-          if (me.selection._cachedRange && me.selection._cachedStartElement) {
-            me.fireEvent('beforeselectionchange');
-            // 绗簩涓弬鏁癱auseByUi涓簍rue浠h〃鐢辩敤鎴蜂氦浜掗�犳垚鐨剆electionchange.
-            me.fireEvent('selectionchange', !!evt);
-            me.fireEvent('afterselectionchange');
-            me.selection.clear();
-          }
-        }, delay || 50);
-      },
-
-      /**
-       * 鎵ц缂栬緫鍛戒护
-       * @method _callCmdFn
-       * @private
-       * @param { String } fnName 鍑芥暟鍚嶇О
-       * @param { * } args 浼犵粰鍛戒护鍑芥暟鐨勫弬鏁�
-       * @return { * } 杩斿洖鍛戒护鍑芥暟杩愯鐨勮繑鍥炲��
-       */
-      _callCmdFn: function(fnName, args) {
-        var cmdName = args[0].toLowerCase(),
-          cmd, cmdFn;
-        cmd = this.commands[cmdName] || UE.commands[cmdName];
-        cmdFn = cmd && cmd[fnName];
-        //娌℃湁querycommandstate鎴栬�呮病鏈塩ommand鐨勯兘榛樿杩斿洖0
-        if ((!cmd || !cmdFn) && fnName == 'queryCommandState') {
-          return 0;
-        } else if (cmdFn) {
-          return cmdFn.apply(this, args);
-        }
-      },
-
-      /**
-       * 鎵ц缂栬緫鍛戒护cmdName锛屽畬鎴愬瘜鏂囨湰缂栬緫鏁堟灉
-       * @method execCommand
-       * @param { String } cmdName 闇�瑕佹墽琛岀殑鍛戒护
-       * @remind 鍏蜂綋鍛戒护鐨勪娇鐢ㄨ鍙傝��<a href="#COMMAND.LIST">鍛戒护鍒楄〃</a>
-       * @return { * } 杩斿洖鍛戒护鍑芥暟杩愯鐨勮繑鍥炲��
-       * @example
-       * ```javascript
-       * editor.execCommand(cmdName);
-       * ```
-       */
-      execCommand: function(cmdName) {
-        cmdName = cmdName.toLowerCase();
-        var me = this,
-          result,
-          cmd = me.commands[cmdName] || UE.commands[cmdName];
-        if (!cmd || !cmd.execCommand) {
-          return null;
-        }
-        if (!cmd.notNeedUndo && !me.__hasEnterExecCommand) {
-          me.__hasEnterExecCommand = true;
-          if (me.queryCommandState.apply(me, arguments) != -1) {
-            me.fireEvent('saveScene');
-            me.fireEvent.apply(me, ['beforeexeccommand', cmdName].concat(arguments));
-            result = this._callCmdFn('execCommand', arguments);
-            //淇濆瓨鍦烘櫙鏃讹紝鍋氫簡鍐呭瀵规瘮锛屽啀鐪嬫槸鍚﹁繘琛宑ontentchange瑙﹀彂锛岃繖閲屽瑙﹀彂浜嗕竴娆★紝鍘绘帀
-            //                    (!cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent('contentchange');
-            me.fireEvent.apply(me, ['afterexeccommand', cmdName].concat(arguments));
-            me.fireEvent('saveScene');
-          }
-          me.__hasEnterExecCommand = false;
-        } else {
-          result = this._callCmdFn('execCommand', arguments);
-          (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me.fireEvent(
-            'contentchange')
-        }
-        (!me.__hasEnterExecCommand && !cmd.ignoreContentChange && !me._ignoreContentChange) && me._selectionChange();
-        return result;
-      },
-
-      /**
-       * 鏍规嵁浼犲叆鐨刢ommand鍛戒护锛屾煡閫夌紪杈戝櫒褰撳墠鐨勯�夊尯锛岃繑鍥炲懡浠ょ殑鐘舵��
-       * @method  queryCommandState
-       * @param { String } cmdName 闇�瑕佹煡璇㈢殑鍛戒护鍚嶇О
-       * @remind 鍏蜂綋鍛戒护鐨勪娇鐢ㄨ鍙傝��<a href="#COMMAND.LIST">鍛戒护鍒楄〃</a>
-       * @return { Number } number 杩斿洖鏀惧墠鍛戒护鐨勭姸鎬侊紝杩斿洖鍊间笁绉嶆儏鍐碉細(-1|0|1)
-       * @example
-       * ```javascript
-       * editor.queryCommandState(cmdName)  => (-1|0|1)
-       * ```
-       * @see COMMAND.LIST
-       */
-      queryCommandState: function(cmdName) {
-        return this._callCmdFn('queryCommandState', arguments);
-      },
-
-      /**
-       * 鏍规嵁浼犲叆鐨刢ommand鍛戒护锛屾煡閫夌紪杈戝櫒褰撳墠鐨勯�夊尯锛屾牴鎹懡浠よ繑鍥炵浉鍏崇殑鍊�
-       * @method queryCommandValue
-       * @param { String } cmdName 闇�瑕佹煡璇㈢殑鍛戒护鍚嶇О
-       * @remind 鍏蜂綋鍛戒护鐨勪娇鐢ㄨ鍙傝��<a href="#COMMAND.LIST">鍛戒护鍒楄〃</a>
-       * @remind 鍙湁閮ㄥ垎鎻掍欢鏈夋鏂规硶
-       * @return { * } 杩斿洖姣忎釜鍛戒护鐗瑰畾鐨勫綋鍓嶇姸鎬佸��
-       * @grammar editor.queryCommandValue(cmdName)  =>  {*}
-       * @see COMMAND.LIST
-       */
-      queryCommandValue: function(cmdName) {
-        return this._callCmdFn('queryCommandValue', arguments);
-      },
-
-      /**
-       * 妫�鏌ョ紪杈戝尯鍩熶腑鏄惁鏈夊唴瀹�
-       * @method  hasContents
-       * @remind 榛樿鏈夋枃鏈唴瀹癸紝鎴栬�呮湁浠ヤ笅鑺傜偣閮戒笉璁や负鏄┖
-       * table,ul,ol,dl,iframe,area,base,col,hr,img,embed,input,link,meta,param
-       * @return { Boolean } 妫�鏌ユ湁鍐呭杩斿洖true锛屽惁鍒欒繑鍥瀎alse
-       * @example
-       * ```javascript
-       * editor.hasContents()
-       * ```
-       */
-
-      /**
-       * 妫�鏌ョ紪杈戝尯鍩熶腑鏄惁鏈夊唴瀹癸紝鑻ュ寘鍚弬鏁皌ags涓殑鑺傜偣绫诲瀷锛岀洿鎺ヨ繑鍥瀟rue
-       * @method  hasContents
-       * @param { Array } tags 浼犲叆鏁扮粍鍒ゆ柇鏃剁敤鍒扮殑鑺傜偣绫诲瀷
-       * @return { Boolean } 鑻ユ枃妗d腑鍖呭惈tags鏁扮粍閲屽搴旂殑tag锛岃繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse
-       * @example
-       * ```javascript
-       * editor.hasContents(['span']);
-       * ```
-       */
-      hasContents: function(tags) {
-        if (tags) {
-          for (var i = 0, ci; ci = tags[i++];) {
-            if (this.document.getElementsByTagName(ci).length > 0) {
-              return true;
-            }
-          }
-        }
-        if (!domUtils.isEmptyBlock(this.body)) {
-          return true
-        }
-        //闅忔椂娣诲姞,瀹氫箟鐨勭壒娈婃爣绛惧鏋滃瓨鍦紝涓嶈兘璁や负鏄┖
-        tags = ['div'];
-        for (i = 0; ci = tags[i++];) {
-          var nodes = domUtils.getElementsByTagName(this.document, ci);
-          for (var n = 0, cn; cn = nodes[n++];) {
-            if (domUtils.isCustomeNode(cn)) {
-              return true;
-            }
-          }
-        }
-        return false;
-      },
-
-      /**
-       * 閲嶇疆缂栬緫鍣紝鍙敤鏉ュ仛澶氫釜tab浣跨敤鍚屼竴涓紪杈戝櫒瀹炰緥
-       * @method  reset
-       * @remind 姝ゆ柟娉曚細娓呯┖缂栬緫鍣ㄥ唴瀹癸紝娓呯┖鍥為��鍒楄〃锛屼細瑙﹀彂reset浜嬩欢
-       * @example
-       * ```javascript
-       * editor.reset()
-       * ```
-       */
-      reset: function() {
-        this.fireEvent('reset');
-      },
-
-      /**
-       * 璁剧疆褰撳墠缂栬緫鍖哄煙鍙互缂栬緫
-       * @method setEnabled
-       * @example
-       * ```javascript
-       * editor.setEnabled()
-       * ```
-       */
-      setEnabled: function() {
-        var me = this,
-          range;
-        if (me.body.contentEditable == 'false') {
-          me.body.contentEditable = true;
-          range = me.selection.getRange();
-          //鏈夊彲鑳藉唴瀹逛涪澶变簡
-          try {
-            range.moveToBookmark(me.lastBk);
-            delete me.lastBk
-          } catch (e) {
-            range.setStartAtFirst(me.body).collapse(true)
-          }
-          range.select(true);
-          if (me.bkqueryCommandState) {
-            me.queryCommandState = me.bkqueryCommandState;
-            delete me.bkqueryCommandState;
-          }
-          if (me.bkqueryCommandValue) {
-            me.queryCommandValue = me.bkqueryCommandValue;
-            delete me.bkqueryCommandValue;
-          }
-          me.fireEvent('selectionchange');
-        }
-      },
-      enable: function() {
-        return this.setEnabled();
-      },
-
-      /** 璁剧疆褰撳墠缂栬緫鍖哄煙涓嶅彲缂栬緫
-       * @method setDisabled
-       */
-
-      /** 璁剧疆褰撳墠缂栬緫鍖哄煙涓嶅彲缂栬緫,except涓殑鍛戒护闄ゅ
-       * @method setDisabled
-       * @param { String } except 渚嬪鍛戒护鐨勫瓧绗︿覆
-       * @remind 鍗充娇璁剧疆浜哾isable锛屾澶勯厤缃殑渚嬪鍛戒护浠嶇劧鍙互鎵ц
-       * @example
-       * ```javascript
-       * editor.setDisabled('bold'); //绂佺敤宸ュ叿鏍忎腑闄ゅ姞绮椾箣澶栫殑鎵�鏈夊姛鑳�
-       * ```
-       */
-
-      /** 璁剧疆褰撳墠缂栬緫鍖哄煙涓嶅彲缂栬緫,except涓殑鍛戒护闄ゅ
-       * @method setDisabled
-       * @param { Array } except 渚嬪鍛戒护鐨勫瓧绗︿覆鏁扮粍锛屾暟缁勪腑鐨勫懡浠や粛鐒跺彲浠ユ墽琛�
-       * @remind 鍗充娇璁剧疆浜哾isable锛屾澶勯厤缃殑渚嬪鍛戒护浠嶇劧鍙互鎵ц
-       * @example
-       * ```javascript
-       * editor.setDisabled(['bold','insertimage']); //绂佺敤宸ュ叿鏍忎腑闄ゅ姞绮楀拰鎻掑叆鍥剧墖涔嬪鐨勬墍鏈夊姛鑳�
-       * ```
-       */
-      setDisabled: function(except) {
-        var me = this;
-        except = except ? utils.isArray(except) ? except : [except] : [];
-        if (me.body.contentEditable == 'true') {
-          if (!me.lastBk) {
-            me.lastBk = me.selection.getRange().createBookmark(true);
-          }
-          me.body.contentEditable = false;
-          me.bkqueryCommandState = me.queryCommandState;
-          me.bkqueryCommandValue = me.queryCommandValue;
-          me.queryCommandState = function(type) {
-            if (utils.indexOf(except, type) != -1) {
-              return me.bkqueryCommandState.apply(me, arguments);
-            }
-            return -1;
-          };
-          me.queryCommandValue = function(type) {
-            if (utils.indexOf(except, type) != -1) {
-              return me.bkqueryCommandValue.apply(me, arguments);
-            }
-            return null;
-          };
-          me.fireEvent('selectionchange');
-        }
-      },
-      disable: function(except) {
-        return this.setDisabled(except);
-      },
-
-      /**
-       * 璁剧疆榛樿鍐呭
-       * @method _setDefaultContent
-       * @private
-       * @param  { String } cont 瑕佸瓨鍏ョ殑鍐呭
-       */
-      _setDefaultContent: function() {
-        function clear() {
-          var me = this;
-          if (me.document.getElementById('initContent')) {
-            me.body.innerHTML = '<p>' + (ie ? '' : '<br/>') + '</p>';
-            me.removeListener('firstBeforeExecCommand focus', clear);
-            setTimeout(function() {
-              me.focus();
-              me._selectionChange();
-            }, 0)
-          }
-        }
-
-        return function(cont) {
-          var me = this;
-          me.body.innerHTML = '<p id="initContent">' + cont + '</p>';
-
-          me.addListener('firstBeforeExecCommand focus', clear);
-        }
-      }(),
-
-      /**
-       * 鏄剧ず缂栬緫鍣�
-       * @method setShow
-       * @example
-       * ```javascript
-       * editor.setShow()
-       * ```
-       */
-      setShow: function() {
-        var me = this,
-          range = me.selection.getRange();
-        if (me.container.style.display == 'none') {
-          //鏈夊彲鑳藉唴瀹逛涪澶变簡
-          try {
-            range.moveToBookmark(me.lastBk);
-            delete me.lastBk
-          } catch (e) {
-            range.setStartAtFirst(me.body).collapse(true)
-          }
-          //ie涓媐ocus瀹炴晥锛屾墍浠ュ仛浜嗕釜寤惰繜
-          setTimeout(function() {
-            range.select(true);
-          }, 100);
-          me.container.style.display = '';
-        }
-
-      },
-      show: function() {
-        return this.setShow();
-      },
-      /**
-       * 闅愯棌缂栬緫鍣�
-       * @method setHide
-       * @example
-       * ```javascript
-       * editor.setHide()
-       * ```
-       */
-      setHide: function() {
-        var me = this;
-        if (!me.lastBk) {
-          me.lastBk = me.selection.getRange().createBookmark(true);
-        }
-        me.container.style.display = 'none'
-      },
-      hide: function() {
-        return this.setHide();
-      },
-
-      /**
-       * 鏍规嵁鎸囧畾鐨勮矾寰勶紝鑾峰彇瀵瑰簲鐨勮瑷�璧勬簮
-       * @method getLang
-       * @param { String } path 璺緞鏍规嵁鐨勬槸lang鐩綍涓嬬殑璇█鏂囦欢鐨勮矾寰勭粨鏋�
-       * @return { Object | String } 鏍规嵁璺緞杩斿洖璇█璧勬簮鐨凧son鏍煎紡瀵硅薄鎴栬�呰瑷�瀛楃涓�
-       * @example
-       * ```javascript
-       * editor.getLang('contextMenu.delete'); //濡傛灉褰撳墠鏄腑鏂囷紝閭h繑鍥炴槸鐨勬槸'鍒犻櫎'
-       * ```
-       */
-      getLang: function(path) {
-        // HaoChuan9421
-        if (!this.options) {
-          return '';
-        }
-        var lang = UE.I18N[this.options.lang];
-        if (!lang) {
-          throw Error("not import language file");
-        }
-        path = (path || "").split(".");
-        for (var i = 0, ci; ci = path[i++];) {
-          lang = lang[ci];
-          if (!lang) break;
-        }
-        return lang;
-      },
-
-      /**
-       * 璁$畻缂栬緫鍣╤tml鍐呭瀛楃涓茬殑闀垮害
-       * @method  getContentLength
-       * @return { Number } 杩斿洖璁$畻鐨勯暱搴�
-       * @example
-       * ```javascript
-       * //缂栬緫鍣╤tml鍐呭<p><strong>132</strong></p>
-       * editor.getContentLength() //杩斿洖27
-       * ```
-       */
-      /**
-       * 璁$畻缂栬緫鍣ㄥ綋鍓嶇函鏂囨湰鍐呭鐨勯暱搴�
-       * @method  getContentLength
-       * @param { Boolean } ingoneHtml 浼犲叆true鏃讹紝鍙寜鐓х函鏂囨湰鏉ヨ绠�
-       * @return { Number } 杩斿洖璁$畻鐨勯暱搴︼紝鍐呭涓湁hr/img/iframe鏍囩锛岄暱搴﹀姞1
-       * @example
-       * ```javascript
-       * //缂栬緫鍣╤tml鍐呭<p><strong>132</strong></p>
-       * editor.getContentLength() //杩斿洖3
-       * ```
-       */
-      getContentLength: function(ingoneHtml, tagNames) {
-        var count = this.getContent(false, false, true).length;
-        if (ingoneHtml) {
-          tagNames = (tagNames || []).concat(['hr', 'img', 'iframe']);
-          count = this.getContentTxt().replace(/[\t\r\n]+/g, '').length;
-          for (var i = 0, ci; ci = tagNames[i++];) {
-            count += this.document.getElementsByTagName(ci).length;
-          }
-        }
-        return count;
-      },
-
-      /**
-       * 娉ㄥ唽杈撳叆杩囨护瑙勫垯
-       * @method  addInputRule
-       * @param { Function } rule 瑕佹坊鍔犵殑杩囨护瑙勫垯
-       * @example
-       * ```javascript
-       * editor.addInputRule(function(root){
-       *   $.each(root.getNodesByTagName('div'),function(i,node){
-       *       node.tagName="p";
-       *   });
-       * });
-       * ```
-       */
-      addInputRule: function(rule) {
-        this.inputRules.push(rule);
-      },
-
-      /**
-       * 鎵ц娉ㄥ唽鐨勮繃婊よ鍒�
-       * @method  filterInputRule
-       * @param { UE.uNode } root 瑕佽繃婊ょ殑uNode鑺傜偣
-       * @remind 鎵цeditor.setContent鏂规硶鍜屾墽琛�'inserthtml'鍛戒护鍚庯紝浼氳繍琛岃杩囨护鍑芥暟
-       * @example
-       * ```javascript
-       * editor.filterInputRule(editor.body);
-       * ```
-       * @see UE.Editor:addInputRule
-       */
-      filterInputRule: function(root) {
-        for (var i = 0, ci; ci = this.inputRules[i++];) {
-          ci.call(this, root)
-        }
-      },
-
-      /**
-       * 娉ㄥ唽杈撳嚭杩囨护瑙勫垯
-       * @method  addOutputRule
-       * @param { Function } rule 瑕佹坊鍔犵殑杩囨护瑙勫垯
-       * @example
-       * ```javascript
-       * editor.addOutputRule(function(root){
-       *   $.each(root.getNodesByTagName('p'),function(i,node){
-       *       node.tagName="div";
-       *   });
-       * });
-       * ```
-       */
-      addOutputRule: function(rule) {
-        this.outputRules.push(rule)
-      },
-
-      /**
-       * 鏍规嵁杈撳嚭杩囨护瑙勫垯锛岃繃婊ょ紪杈戝櫒鍐呭
-       * @method  filterOutputRule
-       * @remind 鎵цeditor.getContent鏂规硶鐨勬椂鍊欙紝浼氬厛杩愯璇ヨ繃婊ゅ嚱鏁�
-       * @param { UE.uNode } root 瑕佽繃婊ょ殑uNode鑺傜偣
-       * @example
-       * ```javascript
-       * editor.filterOutputRule(editor.body);
-       * ```
-       * @see UE.Editor:addOutputRule
-       */
-      filterOutputRule: function(root) {
-        for (var i = 0, ci; ci = this.outputRules[i++];) {
-          ci.call(this, root)
-        }
-      },
-
-      /**
-       * 鏍规嵁action鍚嶇О鑾峰彇璇锋眰鐨勮矾寰�
-       * @method  getActionUrl
-       * @remind 鍋囧娌℃湁璁剧疆serverUrl,浼氭牴鎹甶mageUrl璁剧疆榛樿鐨刢ontroller璺緞
-       * @param { String } action action鍚嶇О
-       * @example
-       * ```javascript
-       * editor.getActionUrl('config'); //杩斿洖 "/ueditor/php/controller.php?action=config"
-       * editor.getActionUrl('image'); //杩斿洖 "/ueditor/php/controller.php?action=uplaodimage"
-       * editor.getActionUrl('scrawl'); //杩斿洖 "/ueditor/php/controller.php?action=uplaodscrawl"
-       * editor.getActionUrl('imageManager'); //杩斿洖 "/ueditor/php/controller.php?action=listimage"
-       * ```
-       */
-      getActionUrl: function(action) {
-        var actionName = this.getOpt(action) || action,
-          imageUrl = this.getOpt('imageUrl'),
-          serverUrl = this.getOpt('serverUrl');
-
-        if (!serverUrl && imageUrl) {
-          serverUrl = imageUrl.replace(/^(.*[\/]).+([\.].+)$/, '$1controller$2');
-        }
-
-        if (serverUrl) {
-          serverUrl = serverUrl + (serverUrl.indexOf('?') == -1 ? '?' : '&') + 'action=' + (actionName || '');
-          return utils.formatUrl(serverUrl);
-        } else {
-          return '';
-        }
-      }
-    };
-    utils.inherits(Editor, EventBase);
-  })();
-
-
-  // core/Editor.defaultoptions.js
-  //缁存姢缂栬緫鍣ㄤ竴涓嬮粯璁ょ殑涓嶅湪鎻掍欢涓殑閰嶇疆椤�
-  UE.Editor.defaultOptions = function(editor) {
-
-    var _url = editor.options.UEDITOR_HOME_URL;
-    return {
-      isShow: true,
-      initialContent: '',
-      initialStyle: '',
-      autoClearinitialContent: false,
-      iframeCssUrl: _url + 'themes/iframe.css',
-      textarea: 'editorValue',
-      focus: false,
-      focusInEnd: true,
-      autoClearEmptyNode: true,
-      fullscreen: false,
-      readonly: false,
-      zIndex: 999,
-      imagePopup: true,
-      enterTag: 'p',
-      customDomain: false,
-      lang: 'zh-cn',
-      langPath: _url + 'lang/',
-      theme: 'default',
-      themePath: _url + 'themes/',
-      allHtmlEnabled: false,
-      scaleEnabled: false,
-      tableNativeEditInFF: false,
-      autoSyncData: true,
-      fileNameFormat: '{time}{rand:6}'
-    }
-  };
-
-  // core/loadconfig.js
-  (function() {
-
-    UE.Editor.prototype.loadServerConfig = function() {
-      var me = this;
-      setTimeout(function() {
-        try {
-          me.options.imageUrl && me.setOpt('serverUrl', me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/,
-            '$1controller$2'));
-
-          var configUrl = me.getActionUrl('config'),
-            isJsonp = utils.isCrossDomainUrl(configUrl);
-
-          /* 鍙戝嚭ajax璇锋眰 */
-          me._serverConfigLoaded = false;
-
-          configUrl && UE.ajax.request(configUrl, {
-            'method': 'GET',
-            'dataType': isJsonp ? 'jsonp' : '',
-            'onsuccess': function(r) {
-              try {
-                var config = isJsonp ? r : eval("(" + r.responseText + ")");
-                utils.extend(me.options, config);
-                me.fireEvent('serverConfigLoaded');
-                me._serverConfigLoaded = true;
-              } catch (e) {
-                showErrorMsg(me.getLang('loadconfigFormatError'));
-              }
-            },
-            'onerror': function() {
-              showErrorMsg(me.getLang('loadconfigHttpError'));
-            }
-          });
-        } catch (e) {
-          showErrorMsg(me.getLang('loadconfigError'));
-        }
-      });
-
-      function showErrorMsg(msg) {
-        console && console.error(msg);
-        //me.fireEvent('showMessage', {
-        //    'title': msg,
-        //    'type': 'error'
-        //});
-      }
-    };
-
-    UE.Editor.prototype.isServerConfigLoaded = function() {
-      var me = this;
-      return me._serverConfigLoaded || false;
-    };
-
-    UE.Editor.prototype.afterConfigReady = function(handler) {
-      if (!handler || !utils.isFunction(handler)) return;
-      var me = this;
-      var readyHandler = function() {
-        handler.apply(me, arguments);
-        me.removeListener('serverConfigLoaded', readyHandler);
-      };
-
-      if (me.isServerConfigLoaded()) {
-        handler.call(me, 'serverConfigLoaded');
-      } else {
-        me.addListener('serverConfigLoaded', readyHandler);
-      }
-    };
-
-  })();
-
-
-  // core/ajax.js
-  /**
-   * @file
-   * @module UE.ajax
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎻愪緵瀵筧jax璇锋眰鐨勬敮鎸�
-   * @module UE.ajax
-   */
-  UE.ajax = function() {
-
-    //鍒涘缓涓�涓猘jaxRequest瀵硅薄
-    var fnStr = 'XMLHttpRequest()';
-    try {
-      new ActiveXObject("Msxml2.XMLHTTP");
-      fnStr = 'ActiveXObject(\'Msxml2.XMLHTTP\')';
-    } catch (e) {
-      try {
-        new ActiveXObject("Microsoft.XMLHTTP");
-        fnStr = 'ActiveXObject(\'Microsoft.XMLHTTP\')'
-      } catch (e) {}
-    }
-    var creatAjaxRequest = new Function('return new ' + fnStr);
-
-
-    /**
-     * 灏唈son鍙傛暟杞寲鎴愰�傚悎ajax鎻愪氦鐨勫弬鏁板垪琛�
-     * @param json
-     */
-    function json2str(json) {
-      var strArr = [];
-      for (var i in json) {
-        //蹇界暐榛樿鐨勫嚑涓弬鏁�
-        if (i == "method" || i == "timeout" || i == "async" || i == "dataType" || i == "callback") continue;
-        //蹇界暐鎺у埗
-        if (json[i] == undefined || json[i] == null) continue;
-        //浼犻�掕繃鏉ョ殑瀵硅薄鍜屽嚱鏁颁笉鍦ㄦ彁浜や箣鍒�
-        if (!((typeof json[i]).toLowerCase() == "function" || (typeof json[i]).toLowerCase() == "object")) {
-          strArr.push(encodeURIComponent(i) + "=" + encodeURIComponent(json[i]));
-        } else if (utils.isArray(json[i])) {
-          //鏀寔浼犳暟缁勫唴瀹�
-          for (var j = 0; j < json[i].length; j++) {
-            strArr.push(encodeURIComponent(i) + "[]=" + encodeURIComponent(json[i][j]));
-          }
-        }
-      }
-      return strArr.join("&");
-    }
-
-    function doAjax(url, ajaxOptions) {
-      var xhr = creatAjaxRequest(),
-        //鏄惁瓒呮椂
-        timeIsOut = false,
-        //榛樿鍙傛暟
-        defaultAjaxOptions = {
-          method: "POST",
-          timeout: 5000,
-          async: true,
-          data: {}, //闇�瑕佷紶閫掑璞$殑璇濆彧鑳借鐩�
-          onsuccess: function() {},
-          onerror: function() {}
-        };
-
-      if (typeof url === "object") {
-        ajaxOptions = url;
-        url = ajaxOptions.url;
-      }
-      if (!xhr || !url) return;
-      var ajaxOpts = ajaxOptions ? utils.extend(defaultAjaxOptions, ajaxOptions) : defaultAjaxOptions;
-
-      var submitStr = json2str(ajaxOpts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing"
-      //濡傛灉鐢ㄦ埛鐩存帴閫氳繃data鍙傛暟浼犻�抝son瀵硅薄杩囨潵锛屽垯涔熻灏嗘json瀵硅薄杞寲涓哄瓧绗︿覆
-      if (!utils.isEmptyObject(ajaxOpts.data)) {
-        submitStr += (submitStr ? "&" : "") + json2str(ajaxOpts.data);
-      }
-      //瓒呮椂妫�娴�
-      var timerID = setTimeout(function() {
-        if (xhr.readyState != 4) {
-          timeIsOut = true;
-          xhr.abort();
-          clearTimeout(timerID);
-        }
-      }, ajaxOpts.timeout);
-
-      var method = ajaxOpts.method.toUpperCase();
-      var str = url + (url.indexOf("?") == -1 ? "?" : "&") + (method == "POST" ? "" : submitStr + "&noCache=" + +
-        new Date);
-      xhr.open(method, str, ajaxOpts.async);
-      xhr.onreadystatechange = function() {
-        if (xhr.readyState == 4) {
-          if (!timeIsOut && xhr.status == 200) {
-            ajaxOpts.onsuccess(xhr);
-          } else {
-            ajaxOpts.onerror(xhr);
-          }
-        }
-      };
-      if (method == "POST") {
-        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
-        xhr.send(submitStr);
-      } else {
-        xhr.send(null);
-      }
-    }
-
-    function doJsonp(url, opts) {
-
-      var successhandler = opts.onsuccess || function() {},
-        scr = document.createElement('SCRIPT'),
-        options = opts || {},
-        charset = options['charset'],
-        callbackField = options['jsonp'] || 'callback',
-        callbackFnName,
-        timeOut = options['timeOut'] || 0,
-        timer,
-        reg = new RegExp('(\\?|&)' + callbackField + '=([^&]*)'),
-        matches;
-
-      if (utils.isFunction(successhandler)) {
-        callbackFnName = 'bd__editor__' + Math.floor(Math.random() * 2147483648).toString(36);
-        window[callbackFnName] = getCallBack(0);
-      } else if (utils.isString(successhandler)) {
-        callbackFnName = successhandler;
-      } else {
-        if (matches = reg.exec(url)) {
-          callbackFnName = matches[2];
-        }
-      }
-
-      url = url.replace(reg, '\x241' + callbackField + '=' + callbackFnName);
-
-      if (url.search(reg) < 0) {
-        url += (url.indexOf('?') < 0 ? '?' : '&') + callbackField + '=' + callbackFnName;
-      }
-
-      var queryStr = json2str(opts); // { name:"Jim",city:"Beijing" } --> "name=Jim&city=Beijing"
-      //濡傛灉鐢ㄦ埛鐩存帴閫氳繃data鍙傛暟浼犻�抝son瀵硅薄杩囨潵锛屽垯涔熻灏嗘json瀵硅薄杞寲涓哄瓧绗︿覆
-      if (!utils.isEmptyObject(opts.data)) {
-        queryStr += (queryStr ? "&" : "") + json2str(opts.data);
-      }
-      if (queryStr) {
-        url = url.replace(/\?/, '?' + queryStr + '&');
-      }
-
-      scr.onerror = getCallBack(1);
-      if (timeOut) {
-        timer = setTimeout(getCallBack(1), timeOut);
-      }
-      createScriptTag(scr, url, charset);
-
-      function createScriptTag(scr, url, charset) {
-        scr.setAttribute('type', 'text/javascript');
-        scr.setAttribute('defer', 'defer');
-        charset && scr.setAttribute('charset', charset);
-        scr.setAttribute('src', url);
-        document.getElementsByTagName('head')[0].appendChild(scr);
-      }
-
-      function getCallBack(onTimeOut) {
-        return function() {
-          try {
-            if (onTimeOut) {
-              options.onerror && options.onerror();
-            } else {
-              try {
-                clearTimeout(timer);
-                successhandler.apply(window, arguments);
-              } catch (e) {}
-            }
-          } catch (exception) {
-            options.onerror && options.onerror.call(window, exception);
-          } finally {
-            options.oncomplete && options.oncomplete.apply(window, arguments);
-            scr.parentNode && scr.parentNode.removeChild(scr);
-            window[callbackFnName] = null;
-            try {
-              delete window[callbackFnName];
-            } catch (e) {}
-          }
-        }
-      }
-    }
-
-    return {
-      /**
-       * 鏍规嵁缁欏畾鐨勫弬鏁伴」锛屽悜鎸囧畾鐨剈rl鍙戣捣涓�涓猘jax璇锋眰銆� ajax璇锋眰瀹屾垚鍚庯紝浼氭牴鎹姹傜粨鏋滆皟鐢ㄧ浉搴斿洖璋冿細 濡傛灉璇锋眰
-       * 鎴愬姛锛� 鍒欒皟鐢╫nsuccess鍥炶皟锛� 澶辫触鍒欒皟鐢� onerror 鍥炶皟
-       * @method request
-       * @param { URLString } url ajax璇锋眰鐨剈rl鍦板潃
-       * @param { Object } ajaxOptions ajax璇锋眰閫夐」鐨勯敭鍊煎锛屾敮鎸佺殑閫夐」濡備笅锛�
-       * @example
-       * ```javascript
-       * //鍚憇ayhello.php鍙戣捣涓�涓紓姝ョ殑Ajax GET璇锋眰, 璇锋眰瓒呮椂鏃堕棿涓�10s锛� 璇锋眰瀹屾垚鍚庢墽琛岀浉搴旂殑鍥炶皟銆�
-       * UE.ajax.requeset( 'sayhello.php', {
-       *
-       *     //璇锋眰鏂规硶銆傚彲閫夊�硷細 'GET', 'POST'锛岄粯璁ゅ�兼槸'POST'
-       *     method: 'GET',
-       *
-       *     //瓒呮椂鏃堕棿銆� 榛樿涓�5000锛� 鍗曚綅鏄痬s
-       *     timeout: 10000,
-       *
-       *     //鏄惁鏄紓姝ヨ姹傘�� true涓哄紓姝ヨ姹傦紝 false涓哄悓姝ヨ姹�
-       *     async: true,
-       *
-       *     //璇锋眰鎼哄甫鐨勬暟鎹�傚鏋滆姹備负GET璇锋眰锛� data浼氱粡杩噑tringify鍚庨檮鍔犲埌璇锋眰url涔嬪悗銆�
-       *     data: {
-       *         name: 'ueditor'
-       *     },
-       *
-       *     //璇锋眰鎴愬姛鍚庣殑鍥炶皟锛� 璇ュ洖璋冩帴鍙楀綋鍓嶇殑XMLHttpRequest瀵硅薄浣滀负鍙傛暟銆�
-       *     onsuccess: function ( xhr ) {
-       *         console.log( xhr.responseText );
-       *     },
-       *
-       *     //璇锋眰澶辫触鎴栬�呰秴鏃跺悗鐨勫洖璋冦��
-       *     onerror: function ( xhr ) {
-       *          alert( 'Ajax璇锋眰澶辫触' );
-       *     }
-       *
-       * } );
-       * ```
-       */
-
-      /**
-       * 鏍规嵁缁欏畾鐨勫弬鏁伴」鍙戣捣涓�涓猘jax璇锋眰锛� 鍙傛暟椤归噷蹇呴』鍖呭惈涓�涓猽rl鍦板潃銆� ajax璇锋眰瀹屾垚鍚庯紝浼氭牴鎹姹傜粨鏋滆皟鐢ㄧ浉搴斿洖璋冿細 濡傛灉璇锋眰
-       * 鎴愬姛锛� 鍒欒皟鐢╫nsuccess鍥炶皟锛� 澶辫触鍒欒皟鐢� onerror 鍥炶皟銆�
-       * @method request
-       * @warning 濡傛灉鍦ㄥ弬鏁伴」閲屾湭鎻愪緵涓�涓猭ey涓衡�渦rl鈥濈殑鍦板潃鍊硷紝鍒欒璇锋眰灏嗙洿鎺ラ��鍑恒��
-       * @param { Object } ajaxOptions ajax璇锋眰閫夐」鐨勯敭鍊煎锛屾敮鎸佺殑閫夐」濡備笅锛�
-       * @example
-       * ```javascript
-       *
-       * //鍚憇ayhello.php鍙戣捣涓�涓紓姝ョ殑Ajax POST璇锋眰, 璇锋眰瓒呮椂鏃堕棿涓�5s锛� 璇锋眰瀹屾垚鍚庝笉鎵ц浠讳綍鍥炶皟銆�
-       * UE.ajax.requeset( 'sayhello.php', {
-       *
-       *     //璇锋眰鐨勫湴鍧�锛� 璇ラ」鏄繀椤荤殑銆�
-       *     url: 'sayhello.php'
-       *
-       * } );
-       * ```
-       */
-      request: function(url, opts) {
-        if (opts && opts.dataType == 'jsonp') {
-          doJsonp(url, opts);
-        } else {
-          doAjax(url, opts);
-        }
-      },
-      getJSONP: function(url, data, fn) {
-        var opts = {
-          'data': data,
-          'oncomplete': fn
-        };
-        doJsonp(url, opts);
-      }
-    };
-
-
-  }();
-
-
-  // core/filterword.js
-  /**
-   * UE杩囨护word鐨勯潤鎬佹柟娉�
-   * @file
-   */
-
-  /**
-   * UEditor鍏敤绌洪棿锛孶Editor鎵�鏈夌殑鍔熻兘閮芥寕杞藉湪璇ョ┖闂翠笅
-   * @module UE
-   */
-
-
-  /**
-   * 鏍规嵁浼犲叆html瀛楃涓茶繃婊ord
-   * @module UE
-   * @since 1.2.6.1
-   * @method filterWord
-   * @param { String } html html瀛楃涓�
-   * @return { String } 宸茶繃婊ゅ悗鐨勭粨鏋滃瓧绗︿覆
-   * @example
-   * ```javascript
-   * UE.filterWord(html);
-   * ```
-   */
-  var filterWord = UE.filterWord = function() {
-
-    //鏄惁鏄痺ord杩囨潵鐨勫唴瀹�
-    function isWordDocument(str) {
-      return /(class="?Mso|style="[^"]*\bmso\-|w:WordDocument|<(v|o):|lang=)/ig.test(str);
-    }
-    //鍘绘帀灏忔暟
-    function transUnit(v) {
-      v = v.replace(/[\d.]+\w+/g, function(m) {
-        return utils.transUnitToPx(m);
-      });
-      return v;
-    }
-
-    function filterPasteWord(str) {
-      return str.replace(/[\t\r\n]+/g, ' ')
-        .replace(/<!--[\s\S]*?-->/ig, "")
-        //杞崲鍥剧墖
-        .replace(/<v:shape [^>]*>[\s\S]*?.<\/v:shape>/gi, function(str) {
-          //opera鑳借嚜宸辫В鏋愬嚭image鎵�杩欓噷鐩存帴杩斿洖绌�
-          if (browser.opera) {
-            return '';
-          }
-          try {
-            //鏈夊彲鑳芥槸bitmap鍗犱负鍥撅紝鏃犵敤锛岀洿鎺ヨ繃婊ゆ帀锛屼富瑕佷綋鐜板湪绮樿创excel琛ㄦ牸涓�
-            if (/Bitmap/i.test(str)) {
-              return '';
-            }
-            var width = str.match(/width:([ \d.]*p[tx])/i)[1],
-              height = str.match(/height:([ \d.]*p[tx])/i)[1],
-              src = str.match(/src=\s*"([^"]*)"/i)[1];
-            return '<img width="' + transUnit(width) + '" height="' + transUnit(height) + '" src="' + src +
-              '" />';
-          } catch (e) {
-            return '';
-          }
-        })
-        //閽堝wps娣诲姞鐨勫浣欐爣绛惧鐞�
-        .replace(/<\/?div[^>]*>/g, '')
-        //鍘绘帀澶氫綑鐨勫睘鎬�
-        .replace(/v:\w+=(["']?)[^'"]+\1/g, '')
-        .replace(
-          /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi,
-          "")
-        .replace(/<p [^>]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "<p><strong>$1</strong></p>")
-        //鍘绘帀澶氫綑鐨勫睘鎬�
-        .replace(/\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/ig, function(str, name, marks, val) {
-          //淇濈暀list鐨勬爣绀�
-          return name == 'class' && val == 'MsoListParagraph' ? str : ''
-        })
-        //娓呴櫎澶氫綑鐨刦ont/span涓嶈兘鍖归厤&nbsp;鏈夊彲鑳芥槸绌烘牸
-        .replace(/<(font|span)[^>]*>(\s*)<\/\1>/gi, function(a, b, c) {
-          return c.replace(/[\t\r\n ]+/g, ' ')
-        })
-        //澶勭悊style鐨勯棶棰�
-        .replace(/(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi, function(str, tag, tmp, style) {
-          var n = [],
-            s = style.replace(/^\s+|\s+$/, '')
-            .replace(/&#39;/g, '\'')
-            .replace(/&quot;/gi, "'")
-            .replace(/[\d.]+(cm|pt)/g, function(str) {
-              return utils.transUnitToPx(str)
-            })
-            .split(/;\s*/g);
-
-          for (var i = 0, v; v = s[i]; i++) {
-
-            var name, value,
-              parts = v.split(":");
-
-            if (parts.length == 2) {
-              name = parts[0].toLowerCase();
-              value = parts[1].toLowerCase();
-              if (/^(background)\w*/.test(name) && value.replace(/(initial|\s)/g, '').length == 0 ||
-                /^(margin)\w*/.test(name) && /^0\w+$/.test(value)
-              ) {
-                continue;
-              }
-
-              switch (name) {
-                case "mso-padding-alt":
-                case "mso-padding-top-alt":
-                case "mso-padding-right-alt":
-                case "mso-padding-bottom-alt":
-                case "mso-padding-left-alt":
-                case "mso-margin-alt":
-                case "mso-margin-top-alt":
-                case "mso-margin-right-alt":
-                case "mso-margin-bottom-alt":
-                case "mso-margin-left-alt":
-                  //ie涓嬩細鍑虹幇鎸ゅ埌涓�璧风殑鎯呭喌
-                  //case "mso-table-layout-alt":
-                case "mso-height":
-                case "mso-width":
-                case "mso-vertical-align-alt":
-                  //trace:1819 ff涓嬩細瑙f瀽鍑簆adding鍦╰able涓�
-                  if (!/<table/.test(tag))
-                    n[i] = name.replace(/^mso-|-alt$/g, "") + ":" + transUnit(value);
-                  continue;
-                case "horiz-align":
-                  n[i] = "text-align:" + value;
-                  continue;
-
-                case "vert-align":
-                  n[i] = "vertical-align:" + value;
-                  continue;
-
-                case "font-color":
-                case "mso-foreground":
-                  n[i] = "color:" + value;
-                  continue;
-
-                case "mso-background":
-                case "mso-highlight":
-                  n[i] = "background:" + value;
-                  continue;
-
-                case "mso-default-height":
-                  n[i] = "min-height:" + transUnit(value);
-                  continue;
-
-                case "mso-default-width":
-                  n[i] = "min-width:" + transUnit(value);
-                  continue;
-
-                case "mso-padding-between-alt":
-                  n[i] = "border-collapse:separate;border-spacing:" + transUnit(value);
-                  continue;
-
-                case "text-line-through":
-                  if ((value == "single") || (value == "double")) {
-                    n[i] = "text-decoration:line-through";
-                  }
-                  continue;
-                case "mso-zero-height":
-                  if (value == "yes") {
-                    n[i] = "display:none";
-                  }
-                  continue;
-                  //                                case 'background':
-                  //                                    break;
-                case 'margin':
-                  if (!/[1-9]/.test(value)) {
-                    continue;
-                  }
-
-              }
-
-              if (
-                /^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?:decor|trans)|top-bar|version|vnd|word-break)/
-                .test(name) ||
-                /text\-indent|padding|margin/.test(name) && /\-[\d.]+/.test(value)
-              ) {
-                continue;
-              }
-
-              n[i] = name + ":" + parts[1];
-            }
-          }
-          return tag + (n.length ? ' style="' + n.join(';').replace(/;{2,}/g, ';') + '"' : '');
-        })
-
-
-    }
-
-    return function(html) {
-      return (isWordDocument(html) ? filterPasteWord(html) : html);
-    };
-  }();
-
-  // core/node.js
-  /**
-   * 缂栬緫鍣ㄦā鎷熺殑鑺傜偣绫�
-   * @file
-   * @module UE
-   * @class uNode
-   * @since 1.2.6.1
-   */
-
-  /**
-   * UEditor鍏敤绌洪棿锛孶Editor鎵�鏈夌殑鍔熻兘閮芥寕杞藉湪璇ョ┖闂翠笅
-   * @unfile
-   * @module UE
-   */
-
-  (function() {
-
-    /**
-     * 缂栬緫鍣ㄦā鎷熺殑鑺傜偣绫�
-     * @unfile
-     * @module UE
-     * @class uNode
-     */
-
-    /**
-     * 閫氳繃涓�涓敭鍊煎锛屽垱寤轰竴涓猽Node瀵硅薄
-     * @constructor
-     * @param { Object } attr 浼犲叆瑕佸垱寤虹殑uNode鐨勫垵濮嬪睘鎬�
-     * @example
-     * ```javascript
-     * var node = new uNode({
-     *     type:'element',
-     *     tagName:'span',
-     *     attrs:{style:'font-size:14px;'}
-     * }
-     * ```
-     */
-    var uNode = UE.uNode = function(obj) {
-      this.type = obj.type;
-      this.data = obj.data;
-      this.tagName = obj.tagName;
-      this.parentNode = obj.parentNode;
-      this.attrs = obj.attrs || {};
-      this.children = obj.children;
-    };
-
-    var notTransAttrs = {
-      'href': 1,
-      'src': 1,
-      '_src': 1,
-      '_href': 1,
-      'cdata_data': 1
-    };
-
-    var notTransTagName = {
-      style: 1,
-      script: 1
-    };
-
-    var indentChar = '    ',
-      breakChar = '\n';
-
-    function insertLine(arr, current, begin) {
-      arr.push(breakChar);
-      return current + (begin ? 1 : -1);
-    }
-
-    function insertIndent(arr, current) {
-      //鎻掑叆缂╄繘
-      for (var i = 0; i < current; i++) {
-        arr.push(indentChar);
-      }
-    }
-
-    //鍒涘缓uNode鐨勯潤鎬佹柟娉�
-    //鏀寔鏍囩鍜宧tml
-    uNode.createElement = function(html) {
-      if (/[<>]/.test(html)) {
-        return UE.htmlparser(html).children[0]
-      } else {
-        return new uNode({
-          type: 'element',
-          children: [],
-          tagName: html
-        })
-      }
-    };
-    uNode.createText = function(data, noTrans) {
-      return new UE.uNode({
-        type: 'text',
-        'data': noTrans ? data : utils.unhtml(data || '')
-      })
-    };
-
-    function nodeToHtml(node, arr, formatter, current) {
-      switch (node.type) {
-        case 'root':
-          for (var i = 0, ci; ci = node.children[i++];) {
-            //鎻掑叆鏂拌
-            if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) {
-              insertLine(arr, current, true);
-              insertIndent(arr, current)
-            }
-            nodeToHtml(ci, arr, formatter, current)
-          }
-          break;
-        case 'text':
-          isText(node, arr);
-          break;
-        case 'element':
-          isElement(node, arr, formatter, current);
-          break;
-        case 'comment':
-          isComment(node, arr, formatter);
-      }
-      return arr;
-    }
-
-    function isText(node, arr) {
-      if (node.parentNode.tagName == 'pre') {
-        //婧愮爜妯″紡涓嬭緭鍏tml鏍囩锛屼笉鑳藉仛杞崲澶勭悊锛岀洿鎺ヨ緭鍑�
-        arr.push(node.data)
-      } else {
-        arr.push(notTransTagName[node.parentNode.tagName] ? utils.html(node.data) : node.data.replace(/[ ]{2}/g,
-          ' &nbsp;'))
-      }
-
-    }
-
-    function isElement(node, arr, formatter, current) {
-      var attrhtml = '';
-      if (node.attrs) {
-        attrhtml = [];
-        var attrs = node.attrs;
-        for (var a in attrs) {
-          //杩欓噷灏遍拡瀵�
-          //<p>'<img src='http://nsclick.baidu.com/u.gif?&asdf=\"sdf&asdfasdfs;asdf'></p>
-          //杩欓噷杈圭殑\"鍋氳浆鎹紝瑕佷笉鐢╥nnerHTML鐩存帴琚埅鏂簡锛屽睘鎬rc
-          //鏈夊彲鑳藉仛鐨勪笉澶�
-          attrhtml.push(a + (attrs[a] !== undefined ? '="' + (notTransAttrs[a] ? utils.html(attrs[a]).replace(
-            /["]/g,
-            function(a) {
-              return '&quot;'
-            }) : utils.unhtml(attrs[a])) + '"' : ''))
-        }
-        attrhtml = attrhtml.join(' ');
-      }
-      arr.push('<' + node.tagName +
-        (attrhtml ? ' ' + attrhtml : '') +
-        (dtd.$empty[node.tagName] ? '\/' : '') + '>'
-      );
-      //鎻掑叆鏂拌
-      if (formatter && !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') {
-        if (node.children && node.children.length) {
-          current = insertLine(arr, current, true);
-          insertIndent(arr, current)
-        }
-
-      }
-      if (node.children && node.children.length) {
-        for (var i = 0, ci; ci = node.children[i++];) {
-          if (formatter && ci.type == 'element' && !dtd.$inlineWithA[ci.tagName] && i > 1) {
-            insertLine(arr, current);
-            insertIndent(arr, current)
-          }
-          nodeToHtml(ci, arr, formatter, current)
-        }
-      }
-      if (!dtd.$empty[node.tagName]) {
-        if (formatter && !dtd.$inlineWithA[node.tagName] && node.tagName != 'pre') {
-
-          if (node.children && node.children.length) {
-            current = insertLine(arr, current);
-            insertIndent(arr, current)
-          }
-        }
-        arr.push('<\/' + node.tagName + '>');
-      }
-
-    }
-
-    function isComment(node, arr) {
-      arr.push('<!--' + node.data + '-->');
-    }
-
-    function getNodeById(root, id) {
-      var node;
-      if (root.type == 'element' && root.getAttr('id') == id) {
-        return root;
-      }
-      if (root.children && root.children.length) {
-        for (var i = 0, ci; ci = root.children[i++];) {
-          if (node = getNodeById(ci, id)) {
-            return node;
-          }
-        }
-      }
-    }
-
-    function getNodesByTagName(node, tagName, arr) {
-      if (node.type == 'element' && node.tagName == tagName) {
-        arr.push(node);
-      }
-      if (node.children && node.children.length) {
-        for (var i = 0, ci; ci = node.children[i++];) {
-          getNodesByTagName(ci, tagName, arr)
-        }
-      }
-    }
-
-    function nodeTraversal(root, fn) {
-      if (root.children && root.children.length) {
-        for (var i = 0, ci; ci = root.children[i];) {
-          nodeTraversal(ci, fn);
-          //ci琚浛鎹㈢殑鎯呭喌锛岃繖閲屽氨涓嶅啀璧� fn浜�
-          if (ci.parentNode) {
-            if (ci.children && ci.children.length) {
-              fn(ci)
-            }
-            if (ci.parentNode) i++
-          }
-        }
-      } else {
-        fn(root)
-      }
-
-    }
-    uNode.prototype = {
-
-      /**
-       * 褰撳墠鑺傜偣瀵硅薄锛岃浆鎹㈡垚html鏂囨湰
-       * @method toHtml
-       * @return { String } 杩斿洖杞崲鍚庣殑html瀛楃涓�
-       * @example
-       * ```javascript
-       * node.toHtml();
-       * ```
-       */
-
-      /**
-       * 褰撳墠鑺傜偣瀵硅薄锛岃浆鎹㈡垚html鏂囨湰
-       * @method toHtml
-       * @param { Boolean } formatter 鏄惁鏍煎紡鍖栬繑鍥炲��
-       * @return { String } 杩斿洖杞崲鍚庣殑html瀛楃涓�
-       * @example
-       * ```javascript
-       * node.toHtml( true );
-       * ```
-       */
-      toHtml: function(formatter) {
-        var arr = [];
-        nodeToHtml(this, arr, formatter, 0);
-        return arr.join('')
-      },
-
-      /**
-       * 鑾峰彇鑺傜偣鐨刪tml鍐呭
-       * @method innerHTML
-       * @warning 鍋囧鑺傜偣鐨則ype涓嶆槸'element'锛屾垨鑺傜偣鐨勬爣绛惧悕绉颁笉鍦╠td鍒楄〃閲岋紝鐩存帴杩斿洖褰撳墠鑺傜偣
-       * @return { String } 杩斿洖鑺傜偣鐨刪tml鍐呭
-       * @example
-       * ```javascript
-       * var htmlstr = node.innerHTML();
-       * ```
-       */
-
-      /**
-       * 璁剧疆鑺傜偣鐨刪tml鍐呭
-       * @method innerHTML
-       * @warning 鍋囧鑺傜偣鐨則ype涓嶆槸'element'锛屾垨鑺傜偣鐨勬爣绛惧悕绉颁笉鍦╠td鍒楄〃閲岋紝鐩存帴杩斿洖褰撳墠鑺傜偣
-       * @param { String } htmlstr 浼犲叆瑕佽缃殑html鍐呭
-       * @return { UE.uNode } 杩斿洖鑺傜偣鏈韩
-       * @example
-       * ```javascript
-       * node.innerHTML('<span>text</span>');
-       * ```
-       */
-      innerHTML: function(htmlstr) {
-        if (this.type != 'element' || dtd.$empty[this.tagName]) {
-          return this;
-        }
-        if (utils.isString(htmlstr)) {
-          if (this.children) {
-            for (var i = 0, ci; ci = this.children[i++];) {
-              ci.parentNode = null;
-            }
-          }
-          this.children = [];
-          var tmpRoot = UE.htmlparser(htmlstr);
-          for (var i = 0, ci; ci = tmpRoot.children[i++];) {
-            this.children.push(ci);
-            ci.parentNode = this;
-          }
-          return this;
-        } else {
-          var tmpRoot = new UE.uNode({
-            type: 'root',
-            children: this.children
-          });
-          return tmpRoot.toHtml();
-        }
-      },
-
-      /**
-       * 鑾峰彇鑺傜偣鐨勭函鏂囨湰鍐呭
-       * @method innerText
-       * @warning 鍋囧鑺傜偣鐨則ype涓嶆槸'element'锛屾垨鑺傜偣鐨勬爣绛惧悕绉颁笉鍦╠td鍒楄〃閲岋紝鐩存帴杩斿洖褰撳墠鑺傜偣
-       * @return { String } 杩斿洖鑺傜偣鐨勫瓨鏂囨湰鍐呭
-       * @example
-       * ```javascript
-       * var textStr = node.innerText();
-       * ```
-       */
-
-      /**
-       * 璁剧疆鑺傜偣鐨勭函鏂囨湰鍐呭
-       * @method innerText
-       * @warning 鍋囧鑺傜偣鐨則ype涓嶆槸'element'锛屾垨鑺傜偣鐨勬爣绛惧悕绉颁笉鍦╠td鍒楄〃閲岋紝鐩存帴杩斿洖褰撳墠鑺傜偣
-       * @param { String } textStr 浼犲叆瑕佽缃殑鏂囨湰鍐呭
-       * @return { UE.uNode } 杩斿洖鑺傜偣鏈韩
-       * @example
-       * ```javascript
-       * node.innerText('<span>text</span>');
-       * ```
-       */
-      innerText: function(textStr, noTrans) {
-        if (this.type != 'element' || dtd.$empty[this.tagName]) {
-          return this;
-        }
-        if (textStr) {
-          if (this.children) {
-            for (var i = 0, ci; ci = this.children[i++];) {
-              ci.parentNode = null;
-            }
-          }
-          this.children = [];
-          this.appendChild(uNode.createText(textStr, noTrans));
-          return this;
-        } else {
-          return this.toHtml().replace(/<[^>]+>/g, '');
-        }
-      },
-
-      /**
-       * 鑾峰彇褰撳墠瀵硅薄鐨刣ata灞炴��
-       * @method getData
-       * @return { Object } 鑻ヨ妭鐐圭殑type鍊兼槸elemenet锛岃繑鍥炵┖瀛楃涓诧紝鍚﹀垯杩斿洖鑺傜偣鐨刣ata灞炴��
-       * @example
-       * ```javascript
-       * node.getData();
-       * ```
-       */
-      getData: function() {
-        if (this.type == 'element')
-          return '';
-        return this.data
-      },
-
-      /**
-       * 鑾峰彇褰撳墠鑺傜偣涓嬬殑绗竴涓瓙鑺傜偣
-       * @method firstChild
-       * @return { UE.uNode } 杩斿洖绗竴涓瓙鑺傜偣
-       * @example
-       * ```javascript
-       * node.firstChild(); //杩斿洖绗竴涓瓙鑺傜偣
-       * ```
-       */
-      firstChild: function() {
-        //            if (this.type != 'element' || dtd.$empty[this.tagName]) {
-        //                return this;
-        //            }
-        return this.children ? this.children[0] : null;
-      },
-
-      /**
-       * 鑾峰彇褰撳墠鑺傜偣涓嬬殑鏈�鍚庝竴涓瓙鑺傜偣
-       * @method lastChild
-       * @return { UE.uNode } 杩斿洖鏈�鍚庝竴涓瓙鑺傜偣
-       * @example
-       * ```javascript
-       * node.lastChild(); //杩斿洖鏈�鍚庝竴涓瓙鑺傜偣
-       * ```
-       */
-      lastChild: function() {
-        //            if (this.type != 'element' || dtd.$empty[this.tagName] ) {
-        //                return this;
-        //            }
-        return this.children ? this.children[this.children.length - 1] : null;
-      },
-
-      /**
-       * 鑾峰彇鍜屽綋鍓嶈妭鐐规湁鐩稿悓鐖朵翰鑺傜偣鐨勫墠涓�涓妭鐐�
-       * @method previousSibling
-       * @return { UE.uNode } 杩斿洖鍓嶄竴涓妭鐐�
-       * @example
-       * ```javascript
-       * node.children[2].previousSibling(); //杩斿洖瀛愯妭鐐筺ode.children[1]
-       * ```
-       */
-      previousSibling: function() {
-        var parent = this.parentNode;
-        for (var i = 0, ci; ci = parent.children[i]; i++) {
-          if (ci === this) {
-            return i == 0 ? null : parent.children[i - 1];
-          }
-        }
-
-      },
-
-      /**
-       * 鑾峰彇鍜屽綋鍓嶈妭鐐规湁鐩稿悓鐖朵翰鑺傜偣鐨勫悗涓�涓妭鐐�
-       * @method nextSibling
-       * @return { UE.uNode } 杩斿洖鍚庝竴涓妭鐐�,鎵句笉鍒拌繑鍥瀗ull
-       * @example
-       * ```javascript
-       * node.children[2].nextSibling(); //濡傛灉鏈夛紝杩斿洖瀛愯妭鐐筺ode.children[3]
-       * ```
-       */
-      nextSibling: function() {
-        var parent = this.parentNode;
-        for (var i = 0, ci; ci = parent.children[i++];) {
-          if (ci === this) {
-            return parent.children[i];
-          }
-        }
-      },
-
-      /**
-       * 鐢ㄦ柊鐨勮妭鐐规浛鎹㈠綋鍓嶈妭鐐�
-       * @method replaceChild
-       * @param { UE.uNode } target 瑕佹浛鎹㈡垚璇ヨ妭鐐瑰弬鏁�
-       * @param { UE.uNode } source 瑕佽鏇挎崲鎺夌殑鑺傜偣
-       * @return { UE.uNode } 杩斿洖鏇挎崲涔嬪悗鐨勮妭鐐瑰璞�
-       * @example
-       * ```javascript
-       * node.replaceChild(newNode, childNode); //鐢╪ewNode鏇挎崲childNode,childNode鏄痭ode鐨勫瓙鑺傜偣
-       * ```
-       */
-      replaceChild: function(target, source) {
-        if (this.children) {
-          if (target.parentNode) {
-            target.parentNode.removeChild(target);
-          }
-          for (var i = 0, ci; ci = this.children[i]; i++) {
-            if (ci === source) {
-              this.children.splice(i, 1, target);
-              source.parentNode = null;
-              target.parentNode = this;
-              return target;
-            }
-          }
-        }
-      },
-
-      /**
-       * 鍦ㄨ妭鐐圭殑瀛愯妭鐐瑰垪琛ㄦ渶鍚庝綅缃彃鍏ヤ竴涓妭鐐�
-       * @method appendChild
-       * @param { UE.uNode } node 瑕佹彃鍏ョ殑鑺傜偣
-       * @return { UE.uNode } 杩斿洖鍒氭彃鍏ョ殑瀛愯妭鐐�
-       * @example
-       * ```javascript
-       * node.appendChild( newNode ); //鍦╪ode鍐呮彃鍏ュ瓙鑺傜偣newNode
-       * ```
-       */
-      appendChild: function(node) {
-        if (this.type == 'root' || (this.type == 'element' && !dtd.$empty[this.tagName])) {
-          if (!this.children) {
-            this.children = []
-          }
-          if (node.parentNode) {
-            node.parentNode.removeChild(node);
-          }
-          for (var i = 0, ci; ci = this.children[i]; i++) {
-            if (ci === node) {
-              this.children.splice(i, 1);
-              break;
-            }
-          }
-          this.children.push(node);
-          node.parentNode = this;
-          return node;
-        }
-
-
-      },
-
-      /**
-       * 鍦ㄤ紶鍏ヨ妭鐐圭殑鍓嶉潰鎻掑叆涓�涓妭鐐�
-       * @method insertBefore
-       * @param { UE.uNode } target 瑕佹彃鍏ョ殑鑺傜偣
-       * @param { UE.uNode } source 鍦ㄨ鍙傛暟鑺傜偣鍓嶉潰鎻掑叆
-       * @return { UE.uNode } 杩斿洖鍒氭彃鍏ョ殑瀛愯妭鐐�
-       * @example
-       * ```javascript
-       * node.parentNode.insertBefore(newNode, node); //鍦╪ode鑺傜偣鍚庨潰鎻掑叆newNode
-       * ```
-       */
-      insertBefore: function(target, source) {
-        if (this.children) {
-          if (target.parentNode) {
-            target.parentNode.removeChild(target);
-          }
-          for (var i = 0, ci; ci = this.children[i]; i++) {
-            if (ci === source) {
-              this.children.splice(i, 0, target);
-              target.parentNode = this;
-              return target;
-            }
-          }
-
-        }
-      },
-
-      /**
-       * 鍦ㄤ紶鍏ヨ妭鐐圭殑鍚庨潰鎻掑叆涓�涓妭鐐�
-       * @method insertAfter
-       * @param { UE.uNode } target 瑕佹彃鍏ョ殑鑺傜偣
-       * @param { UE.uNode } source 鍦ㄨ鍙傛暟鑺傜偣鍚庨潰鎻掑叆
-       * @return { UE.uNode } 杩斿洖鍒氭彃鍏ョ殑瀛愯妭鐐�
-       * @example
-       * ```javascript
-       * node.parentNode.insertAfter(newNode, node); //鍦╪ode鑺傜偣鍚庨潰鎻掑叆newNode
-       * ```
-       */
-      insertAfter: function(target, source) {
-        if (this.children) {
-          if (target.parentNode) {
-            target.parentNode.removeChild(target);
-          }
-          for (var i = 0, ci; ci = this.children[i]; i++) {
-            if (ci === source) {
-              this.children.splice(i + 1, 0, target);
-              target.parentNode = this;
-              return target;
-            }
-
-          }
-        }
-      },
-
-      /**
-       * 浠庡綋鍓嶈妭鐐圭殑瀛愯妭鐐瑰垪琛ㄤ腑锛岀Щ闄よ妭鐐�
-       * @method removeChild
-       * @param { UE.uNode } node 瑕佺Щ闄ょ殑鑺傜偣寮曠敤
-       * @param { Boolean } keepChildren 鏄惁淇濈暀绉婚櫎鑺傜偣鐨勫瓙鑺傜偣锛岃嫢浼犲叆true锛岃嚜鍔ㄦ妸绉婚櫎鑺傜偣鐨勫瓙鑺傜偣鎻掑叆鍒扮Щ闄ょ殑浣嶇疆
-       * @return { * } 杩斿洖鍒氱Щ闄ょ殑瀛愯妭鐐�
-       * @example
-       * ```javascript
-       * node.removeChild(childNode,true); //鍦╪ode鐨勫瓙鑺傜偣鍒楄〃涓Щ闄hild鑺傜偣锛屽苟涓斿惂child鐨勫瓙鑺傜偣鎻掑叆鍒扮Щ闄ょ殑浣嶇疆
-       * ```
-       */
-      removeChild: function(node, keepChildren) {
-        if (this.children) {
-          for (var i = 0, ci; ci = this.children[i]; i++) {
-            if (ci === node) {
-              this.children.splice(i, 1);
-              ci.parentNode = null;
-              if (keepChildren && ci.children && ci.children.length) {
-                for (var j = 0, cj; cj = ci.children[j]; j++) {
-                  this.children.splice(i + j, 0, cj);
-                  cj.parentNode = this;
-
-                }
-              }
-              return ci;
-            }
-          }
-        }
-      },
-
-      /**
-       * 鑾峰彇褰撳墠鑺傜偣鎵�浠h〃鐨勫厓绱犲睘鎬э紝鍗宠幏鍙朼ttrs瀵硅薄涓嬬殑灞炴�у��
-       * @method getAttr
-       * @param { String } attrName 瑕佽幏鍙栫殑灞炴�у悕绉�
-       * @return { * } 杩斿洖attrs瀵硅薄涓嬬殑灞炴�у��
-       * @example
-       * ```javascript
-       * node.getAttr('title');
-       * ```
-       */
-      getAttr: function(attrName) {
-        return this.attrs && this.attrs[attrName.toLowerCase()]
-      },
-
-      /**
-       * 璁剧疆褰撳墠鑺傜偣鎵�浠h〃鐨勫厓绱犲睘鎬э紝鍗宠缃產ttrs瀵硅薄涓嬬殑灞炴�у��
-       * @method setAttr
-       * @param { String } attrName 瑕佽缃殑灞炴�у悕绉�
-       * @param { * } attrVal 瑕佽缃殑灞炴�у�硷紝绫诲瀷瑙嗚缃殑灞炴�ц�屽畾
-       * @return { * } 杩斿洖attrs瀵硅薄涓嬬殑灞炴�у��
-       * @example
-       * ```javascript
-       * node.setAttr('title','鏍囬');
-       * ```
-       */
-      setAttr: function(attrName, attrVal) {
-        if (!attrName) {
-          delete this.attrs;
-          return;
-        }
-        if (!this.attrs) {
-          this.attrs = {};
-        }
-        if (utils.isObject(attrName)) {
-          for (var a in attrName) {
-            if (!attrName[a]) {
-              delete this.attrs[a]
-            } else {
-              this.attrs[a.toLowerCase()] = attrName[a];
-            }
-          }
-        } else {
-          if (!attrVal) {
-            delete this.attrs[attrName]
-          } else {
-            this.attrs[attrName.toLowerCase()] = attrVal;
-          }
-
-        }
-      },
-
-      /**
-       * 鑾峰彇褰撳墠鑺傜偣鍦ㄧ埗鑺傜偣涓嬬殑浣嶇疆绱㈠紩
-       * @method getIndex
-       * @return { Number } 杩斿洖绱㈠紩鏁板�硷紝濡傛灉娌℃湁鐖惰妭鐐癸紝杩斿洖-1
-       * @example
-       * ```javascript
-       * node.getIndex();
-       * ```
-       */
-      getIndex: function() {
-        var parent = this.parentNode;
-        for (var i = 0, ci; ci = parent.children[i]; i++) {
-          if (ci === this) {
-            return i;
-          }
-        }
-        return -1;
-      },
-
-      /**
-       * 鍦ㄥ綋鍓嶈妭鐐逛笅锛屾牴鎹甶d鏌ユ壘鑺傜偣
-       * @method getNodeById
-       * @param { String } id 瑕佹煡鎵剧殑id
-       * @return { UE.uNode } 杩斿洖鎵惧埌鐨勮妭鐐�
-       * @example
-       * ```javascript
-       * node.getNodeById('textId');
-       * ```
-       */
-      getNodeById: function(id) {
-        var node;
-        if (this.children && this.children.length) {
-          for (var i = 0, ci; ci = this.children[i++];) {
-            if (node = getNodeById(ci, id)) {
-              return node;
-            }
-          }
-        }
-      },
-
-      /**
-       * 鍦ㄥ綋鍓嶈妭鐐逛笅锛屾牴鎹厓绱犲悕绉版煡鎵捐妭鐐瑰垪琛�
-       * @method getNodesByTagName
-       * @param { String } tagNames 瑕佹煡鎵剧殑鍏冪礌鍚嶇О
-       * @return { Array } 杩斿洖鎵惧埌鐨勮妭鐐瑰垪琛�
-       * @example
-       * ```javascript
-       * node.getNodesByTagName('span');
-       * ```
-       */
-      getNodesByTagName: function(tagNames) {
-        tagNames = utils.trim(tagNames).replace(/[ ]{2,}/g, ' ').split(' ');
-        var arr = [],
-          me = this;
-        utils.each(tagNames, function(tagName) {
-          if (me.children && me.children.length) {
-            for (var i = 0, ci; ci = me.children[i++];) {
-              getNodesByTagName(ci, tagName, arr)
-            }
-          }
-        });
-        return arr;
-      },
-
-      /**
-       * 鏍规嵁鏍峰紡鍚嶇О锛岃幏鍙栬妭鐐圭殑鏍峰紡鍊�
-       * @method getStyle
-       * @param { String } name 瑕佽幏鍙栫殑鏍峰紡鍚嶇О
-       * @return { String } 杩斿洖鏍峰紡鍊�
-       * @example
-       * ```javascript
-       * node.getStyle('font-size');
-       * ```
-       */
-      getStyle: function(name) {
-        var cssStyle = this.getAttr('style');
-        if (!cssStyle) {
-          return ''
-        }
-        var reg = new RegExp('(^|;)\\s*' + name + ':([^;]+)', 'i');
-        var match = cssStyle.match(reg);
-        if (match && match[0]) {
-          return match[2]
-        }
-        return '';
-      },
-
-      /**
-       * 缁欒妭鐐硅缃牱寮�
-       * @method setStyle
-       * @param { String } name 瑕佽缃殑鐨勬牱寮忓悕绉�
-       * @param { String } val 瑕佽缃殑鐨勬牱鍊�
-       * @example
-       * ```javascript
-       * node.setStyle('font-size', '12px');
-       * ```
-       */
-      setStyle: function(name, val) {
-        function exec(name, val) {
-          var reg = new RegExp('(^|;)\\s*' + name + ':([^;]+;?)', 'gi');
-          cssStyle = cssStyle.replace(reg, '$1');
-          if (val) {
-            cssStyle = name + ':' + utils.unhtml(val) + ';' + cssStyle
-          }
-
-        }
-
-        var cssStyle = this.getAttr('style');
-        if (!cssStyle) {
-          cssStyle = '';
-        }
-        if (utils.isObject(name)) {
-          for (var a in name) {
-            exec(a, name[a])
-          }
-        } else {
-          exec(name, val)
-        }
-        this.setAttr('style', utils.trim(cssStyle))
-      },
-
-      /**
-       * 浼犲叆涓�涓嚱鏁帮紝閫掑綊閬嶅巻褰撳墠鑺傜偣涓嬬殑鎵�鏈夎妭鐐�
-       * @method traversal
-       * @param { Function } fn 閬嶅巻鍒拌妭鐐圭殑鏃讹紝浼犲叆鑺傜偣浣滀负鍙傛暟锛岃繍琛屾鍑芥暟
-       * @example
-       * ```javascript
-       * traversal(node, function(){
-       *     console.log(node.type);
-       * });
-       * ```
-       */
-      traversal: function(fn) {
-        if (this.children && this.children.length) {
-          nodeTraversal(this, fn);
-        }
-        return this;
-      }
-    }
-  })();
-
-
-  // core/htmlparser.js
-  /**
-   * html瀛楃涓茶浆鎹㈡垚uNode鑺傜偣
-   * @file
-   * @module UE
-   * @since 1.2.6.1
-   */
-
-  /**
-   * UEditor鍏敤绌洪棿锛孶Editor鎵�鏈夌殑鍔熻兘閮芥寕杞藉湪璇ョ┖闂翠笅
-   * @unfile
-   * @module UE
-   */
-
-  /**
-   * html瀛楃涓茶浆鎹㈡垚uNode鑺傜偣鐨勯潤鎬佹柟娉�
-   * @method htmlparser
-   * @param { String } htmlstr 瑕佽浆鎹㈢殑html浠g爜
-   * @param { Boolean } ignoreBlank 鑻ヨ缃负true锛岃浆鎹㈢殑鏃跺�欏拷鐣n\r\t绛夌┖鐧藉瓧绗�
-   * @return { uNode } 缁欏畾鐨刪tml鐗囨杞崲褰㈡垚鐨剈Node瀵硅薄
-   * @example
-   * ```javascript
-   * var root = UE.htmlparser('<p><b>htmlparser</b></p>', true);
-   * ```
-   */
-
-  var htmlparser = UE.htmlparser = function(htmlstr, ignoreBlank) {
-    //todo 鍘熸潵鐨勬柟寮�  [^"'<>\/] 鏈塡/灏变笉鑳介厤瀵逛笂 <TD vAlign=top background=../AAA.JPG> 杩欐牱鐨勬爣绛句簡
-    //鍏堝幓鎺変簡锛屽姞涓婄殑鍘熷洜蹇樹簡锛岃繖閲屽厛璁板綍
-    var re_tag =
-      /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g,
-      re_attr = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g;
-
-    //ie涓嬪彇寰楃殑html鍙兘浼氭湁\n瀛樺湪锛岃鍘绘帀锛屽湪澶勭悊replace(/[\t\r\n]*/g,'');浠g爜楂橀噺鐨刓n涓嶈兘鍘婚櫎
-    var allowEmptyTags = {
-      b: 1,
-      code: 1,
-      i: 1,
-      u: 1,
-      strike: 1,
-      s: 1,
-      tt: 1,
-      strong: 1,
-      q: 1,
-      samp: 1,
-      em: 1,
-      span: 1,
-      sub: 1,
-      img: 1,
-      sup: 1,
-      font: 1,
-      big: 1,
-      small: 1,
-      iframe: 1,
-      a: 1,
-      br: 1,
-      pre: 1
-    };
-    htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, 'g'), '');
-    if (!ignoreBlank) {
-      htmlstr = htmlstr.replace(new RegExp('[\\r\\t\\n' + (ignoreBlank ? '' : ' ') +
-        ']*<\/?(\\w+)\\s*(?:[^>]*)>[\\r\\t\\n' + (ignoreBlank ? '' : ' ') + ']*', 'g'), function(a, b) {
-        //br鏆傛椂鍗曠嫭澶勭悊
-        if (b && allowEmptyTags[b.toLowerCase()]) {
-          return a.replace(/(^[\n\r]+)|([\n\r]+$)/g, '');
-        }
-        return a.replace(new RegExp('^[\\r\\n' + (ignoreBlank ? '' : ' ') + ']+'), '').replace(new RegExp(
-          '[\\r\\n' + (ignoreBlank ? '' : ' ') + ']+$'), '');
-      });
-    }
-
-    var notTransAttrs = {
-      'href': 1,
-      'src': 1
-    };
-
-    var uNode = UE.uNode,
-      needParentNode = {
-        'td': 'tr',
-        'tr': ['tbody', 'thead', 'tfoot'],
-        'tbody': 'table',
-        'th': 'tr',
-        'thead': 'table',
-        'tfoot': 'table',
-        'caption': 'table',
-        'li': ['ul', 'ol'],
-        'dt': 'dl',
-        'dd': 'dl',
-        'option': 'select'
-      },
-      needChild = {
-        'ol': 'li',
-        'ul': 'li'
-      };
-
-    function text(parent, data) {
-
-      if (needChild[parent.tagName]) {
-        var tmpNode = uNode.createElement(needChild[parent.tagName]);
-        parent.appendChild(tmpNode);
-        tmpNode.appendChild(uNode.createText(data));
-        parent = tmpNode;
-      } else {
-
-        parent.appendChild(uNode.createText(data));
-      }
-    }
-
-    function element(parent, tagName, htmlattr) {
-      var needParentTag;
-      if (needParentTag = needParentNode[tagName]) {
-        var tmpParent = parent,
-          hasParent;
-        while (tmpParent.type != 'root') {
-          if (utils.isArray(needParentTag) ? utils.indexOf(needParentTag, tmpParent.tagName) != -1 : needParentTag ==
-            tmpParent.tagName) {
-            parent = tmpParent;
-            hasParent = true;
-            break;
-          }
-          tmpParent = tmpParent.parentNode;
-        }
-        if (!hasParent) {
-          parent = element(parent, utils.isArray(needParentTag) ? needParentTag[0] : needParentTag)
-        }
-      }
-      //鎸塪td澶勭悊宓屽
-      //        if(parent.type != 'root' && !dtd[parent.tagName][tagName])
-      //            parent = parent.parentNode;
-      var elm = new uNode({
-        parentNode: parent,
-        type: 'element',
-        tagName: tagName.toLowerCase(),
-        //鏄嚜闂悎鐨勫鐞嗕竴涓�
-        children: dtd.$empty[tagName] ? null : []
-      });
-      //濡傛灉灞炴�у瓨鍦紝澶勭悊灞炴��
-      if (htmlattr) {
-        var attrs = {},
-          match;
-        while (match = re_attr.exec(htmlattr)) {
-          attrs[match[1].toLowerCase()] = notTransAttrs[match[1].toLowerCase()] ? (match[2] || match[3] || match[4]) :
-            utils.unhtml(match[2] || match[3] || match[4])
-        }
-        elm.attrs = attrs;
-      }
-      //trace:3970
-      //        //濡傛灉parent涓嬩笉鑳芥斁elm
-      //        if(dtd.$inline[parent.tagName] && dtd.$block[elm.tagName] && !dtd[parent.tagName][elm.tagName]){
-      //            parent = parent.parentNode;
-      //            elm.parentNode = parent;
-      //        }
-      parent.children.push(elm);
-      //濡傛灉鏄嚜闂悎鑺傜偣杩斿洖鐖朵翰鑺傜偣
-      return dtd.$empty[tagName] ? parent : elm
-    }
-
-    function comment(parent, data) {
-      parent.children.push(new uNode({
-        type: 'comment',
-        data: data,
-        parentNode: parent
-      }));
-    }
-
-    var match, currentIndex = 0,
-      nextIndex = 0;
-    //璁剧疆鏍硅妭鐐�
-    var root = new uNode({
-      type: 'root',
-      children: []
-    });
-    var currentParent = root;
-
-    while (match = re_tag.exec(htmlstr)) {
-      currentIndex = match.index;
-      try {
-        if (currentIndex > nextIndex) {
-          //text node
-          text(currentParent, htmlstr.slice(nextIndex, currentIndex));
-        }
-        if (match[3]) {
-
-          if (dtd.$cdata[currentParent.tagName]) {
-            text(currentParent, match[0]);
-          } else {
-            //start tag
-            currentParent = element(currentParent, match[3].toLowerCase(), match[4]);
-          }
-
-
-        } else if (match[1]) {
-          if (currentParent.type != 'root') {
-            if (dtd.$cdata[currentParent.tagName] && !dtd.$cdata[match[1]]) {
-              text(currentParent, match[0]);
-            } else {
-              var tmpParent = currentParent;
-              while (currentParent.type == 'element' && currentParent.tagName != match[1].toLowerCase()) {
-                currentParent = currentParent.parentNode;
-                if (currentParent.type == 'root') {
-                  currentParent = tmpParent;
-                  throw 'break'
-                }
-              }
-              //end tag
-              currentParent = currentParent.parentNode;
-            }
-
-          }
-
-        } else if (match[2]) {
-          //comment
-          comment(currentParent, match[2])
-        }
-      } catch (e) {}
-
-      nextIndex = re_tag.lastIndex;
-
-    }
-    //濡傛灉缁撴潫鏄枃鏈紝灏辨湁鍙兘涓㈡帀锛屾墍浠ヨ繖閲屾墜鍔ㄥ垽鏂竴涓�
-    //渚嬪 <li>sdfsdfsdf<li>sdfsdfsdfsdf
-    if (nextIndex < htmlstr.length) {
-      text(currentParent, htmlstr.slice(nextIndex));
-    }
-    return root;
-  };
-
-
-  // core/filternode.js
-  /**
-   * UE杩囨护鑺傜偣鐨勯潤鎬佹柟娉�
-   * @file
-   */
-
-  /**
-   * UEditor鍏敤绌洪棿锛孶Editor鎵�鏈夌殑鍔熻兘閮芥寕杞藉湪璇ョ┖闂翠笅
-   * @module UE
-   */
-
-
-  /**
-   * 鏍规嵁浼犲叆鑺傜偣鍜岃繃婊よ鍒欒繃婊ょ浉搴旇妭鐐�
-   * @module UE
-   * @since 1.2.6.1
-   * @method filterNode
-   * @param { Object } root 鎸囧畾root鑺傜偣
-   * @param { Object } rules 杩囨护瑙勫垯json瀵硅薄
-   * @example
-   * ```javascript
-   * UE.filterNode(root,editor.options.filterRules);
-   * ```
-   */
-  var filterNode = UE.filterNode = function() {
-    function filterNode(node, rules) {
-      switch (node.type) {
-        case 'text':
-          break;
-        case 'element':
-          var val;
-          if (val = rules[node.tagName]) {
-            if (val === '-') {
-              node.parentNode.removeChild(node)
-            } else if (utils.isFunction(val)) {
-              var parentNode = node.parentNode,
-                index = node.getIndex();
-              val(node);
-              if (node.parentNode) {
-                if (node.children) {
-                  for (var i = 0, ci; ci = node.children[i];) {
-                    filterNode(ci, rules);
-                    if (ci.parentNode) {
-                      i++;
-                    }
-                  }
-                }
-              } else {
-                for (var i = index, ci; ci = parentNode.children[i];) {
-                  filterNode(ci, rules);
-                  if (ci.parentNode) {
-                    i++;
-                  }
-                }
-              }
-
-
-            } else {
-              var attrs = val['$'];
-              if (attrs && node.attrs) {
-                var tmpAttrs = {},
-                  tmpVal;
-                for (var a in attrs) {
-                  tmpVal = node.getAttr(a);
-                  //todo 鍙厛瀵箂tyle鍗曠嫭澶勭悊
-                  if (a == 'style' && utils.isArray(attrs[a])) {
-                    var tmpCssStyle = [];
-                    utils.each(attrs[a], function(v) {
-                      var tmp;
-                      if (tmp = node.getStyle(v)) {
-                        tmpCssStyle.push(v + ':' + tmp);
-                      }
-                    });
-                    tmpVal = tmpCssStyle.join(';')
-                  }
-                  if (tmpVal) {
-                    tmpAttrs[a] = tmpVal;
-                  }
-
-                }
-                node.attrs = tmpAttrs;
-              }
-              if (node.children) {
-                for (var i = 0, ci; ci = node.children[i];) {
-                  filterNode(ci, rules);
-                  if (ci.parentNode) {
-                    i++;
-                  }
-                }
-              }
-            }
-          } else {
-            //濡傛灉涓嶅湪鍚嶅崟閲屾墸鍑哄瓙鑺傜偣骞跺垹闄よ鑺傜偣,cdata闄ゅ
-            if (dtd.$cdata[node.tagName]) {
-              node.parentNode.removeChild(node)
-            } else {
-              var parentNode = node.parentNode,
-                index = node.getIndex();
-              node.parentNode.removeChild(node, true);
-              for (var i = index, ci; ci = parentNode.children[i];) {
-                filterNode(ci, rules);
-                if (ci.parentNode) {
-                  i++;
-                }
-              }
-            }
-          }
-          break;
-        case 'comment':
-          node.parentNode.removeChild(node)
-      }
-
-    }
-    return function(root, rules) {
-      if (utils.isEmptyObject(rules)) {
-        return root;
-      }
-      var val;
-      if (val = rules['-']) {
-        utils.each(val.split(' '), function(k) {
-          rules[k] = '-'
-        })
-      }
-      for (var i = 0, ci; ci = root.children[i];) {
-        filterNode(ci, rules);
-        if (ci.parentNode) {
-          i++;
-        }
-      }
-      return root;
-    }
-  }();
-
-  // core/plugin.js
-  /**
-   * Created with JetBrains PhpStorm.
-   * User: campaign
-   * Date: 10/8/13
-   * Time: 6:15 PM
-   * To change this template use File | Settings | File Templates.
-   */
-  UE.plugin = function() {
-    var _plugins = {};
-    return {
-      register: function(pluginName, fn, oldOptionName, afterDisabled) {
-        if (oldOptionName && utils.isFunction(oldOptionName)) {
-          afterDisabled = oldOptionName;
-          oldOptionName = null
-        }
-        _plugins[pluginName] = {
-          optionName: oldOptionName || pluginName,
-          execFn: fn,
-          //褰撴彃浠惰绂佺敤鏃舵墽琛�
-          afterDisabled: afterDisabled
-        }
-      },
-      load: function(editor) {
-        utils.each(_plugins, function(plugin) {
-          var _export = plugin.execFn.call(editor);
-          if (editor.options[plugin.optionName] !== false) {
-            if (_export) {
-              //鍚庤竟闇�瑕佸啀鍋氭墿灞�
-              utils.each(_export, function(v, k) {
-                switch (k.toLowerCase()) {
-                  case 'shortcutkey':
-                    editor.addshortcutkey(v);
-                    break;
-                  case 'bindevents':
-                    utils.each(v, function(fn, eventName) {
-                      editor.addListener(eventName, fn);
-                    });
-                    break;
-                  case 'bindmultievents':
-                    utils.each(utils.isArray(v) ? v : [v], function(event) {
-                      var types = utils.trim(event.type).split(/\s+/);
-                      utils.each(types, function(eventName) {
-                        editor.addListener(eventName, event.handler);
-                      });
-                    });
-                    break;
-                  case 'commands':
-                    utils.each(v, function(execFn, execName) {
-                      editor.commands[execName] = execFn
-                    });
-                    break;
-                  case 'outputrule':
-                    editor.addOutputRule(v);
-                    break;
-                  case 'inputrule':
-                    editor.addInputRule(v);
-                    break;
-                  case 'defaultoptions':
-                    editor.setOpt(v)
-                }
-              })
-            }
-
-          } else if (plugin.afterDisabled) {
-            plugin.afterDisabled.call(editor)
-          }
-
-        });
-        //鍚戜笅鍏煎
-        utils.each(UE.plugins, function(plugin) {
-          plugin.call(editor);
-        });
-      },
-      run: function(pluginName, editor) {
-        var plugin = _plugins[pluginName];
-        if (plugin) {
-          plugin.exeFn.call(editor)
-        }
-      }
-    }
-  }();
-
-  // core/keymap.js
-  var keymap = UE.keymap = {
-    'Backspace': 8,
-    'Tab': 9,
-    'Enter': 13,
-
-    'Shift': 16,
-    'Control': 17,
-    'Alt': 18,
-    'CapsLock': 20,
-
-    'Esc': 27,
-
-    'Spacebar': 32,
-
-    'PageUp': 33,
-    'PageDown': 34,
-    'End': 35,
-    'Home': 36,
-
-    'Left': 37,
-    'Up': 38,
-    'Right': 39,
-    'Down': 40,
-
-    'Insert': 45,
-
-    'Del': 46,
-
-    'NumLock': 144,
-
-    'Cmd': 91,
-
-    '=': 187,
-    '-': 189,
-
-    "b": 66,
-    'i': 73,
-    //鍥為��
-    'z': 90,
-    'y': 89,
-    //绮樿创
-    'v': 86,
-    'x': 88,
-
-    's': 83,
-
-    'n': 78
-  };
-
-  // core/localstorage.js
-  //瀛樺偍濯掍粙灏佽
-  var LocalStorage = UE.LocalStorage = (function() {
-
-    var storage = window.localStorage || getUserData() || null,
-      LOCAL_FILE = 'localStorage';
-
-    return {
-
-      saveLocalData: function(key, data) {
-
-        if (storage && data) {
-          storage.setItem(key, data);
-          return true;
-        }
-
-        return false;
-
-      },
-
-      getLocalData: function(key) {
-
-        if (storage) {
-          return storage.getItem(key);
-        }
-
-        return null;
-
-      },
-
-      removeItem: function(key) {
-
-        storage && storage.removeItem(key);
-
-      }
-
-    };
-
-    function getUserData() {
-
-      var container = document.createElement("div");
-      container.style.display = "none";
-
-      if (!container.addBehavior) {
-        return null;
-      }
-
-      container.addBehavior("#default#userdata");
-
-      return {
-
-        getItem: function(key) {
-
-          var result = null;
-
-          try {
-            document.body.appendChild(container);
-            container.load(LOCAL_FILE);
-            result = container.getAttribute(key);
-            document.body.removeChild(container);
-          } catch (e) {}
-
-          return result;
-
-        },
-
-        setItem: function(key, value) {
-
-          document.body.appendChild(container);
-          container.setAttribute(key, value);
-          container.save(LOCAL_FILE);
-          document.body.removeChild(container);
-
-        },
-
-        //// 鏆傛椂娌℃湁鐢ㄥ埌
-        //clear: function () {
-        //
-        //    var expiresTime = new Date();
-        //    expiresTime.setFullYear(expiresTime.getFullYear() - 1);
-        //    document.body.appendChild(container);
-        //    container.expires = expiresTime.toUTCString();
-        //    container.save(LOCAL_FILE);
-        //    document.body.removeChild(container);
-        //
-        //},
-
-        removeItem: function(key) {
-
-          document.body.appendChild(container);
-          container.removeAttribute(key);
-          container.save(LOCAL_FILE);
-          document.body.removeChild(container);
-
-        }
-
-      };
-
-    }
-
-  })();
-
-  (function() {
-
-    var ROOTKEY = 'ueditor_preference';
-
-    UE.Editor.prototype.setPreferences = function(key, value) {
-      var obj = {};
-      if (utils.isString(key)) {
-        obj[key] = value;
-      } else {
-        obj = key;
-      }
-      var data = LocalStorage.getLocalData(ROOTKEY);
-      if (data && (data = utils.str2json(data))) {
-        utils.extend(data, obj);
-      } else {
-        data = obj;
-      }
-      data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data));
-    };
-
-    UE.Editor.prototype.getPreferences = function(key) {
-      var data = LocalStorage.getLocalData(ROOTKEY);
-      if (data && (data = utils.str2json(data))) {
-        return key ? data[key] : data
-      }
-      return null;
-    };
-
-    UE.Editor.prototype.removePreferences = function(key) {
-      var data = LocalStorage.getLocalData(ROOTKEY);
-      if (data && (data = utils.str2json(data))) {
-        data[key] = undefined;
-        delete data[key]
-      }
-      data && LocalStorage.saveLocalData(ROOTKEY, utils.json2str(data));
-    };
-
-  })();
-
-
-  // plugins/defaultfilter.js
-  ///import core
-  ///plugin 缂栬緫鍣ㄩ粯璁ょ殑杩囨护杞崲鏈哄埗
-
-  UE.plugins['defaultfilter'] = function() {
-    var me = this;
-    me.setOpt({
-      'allowDivTransToP': true,
-      'disabledTableInTable': true
-    });
-    //榛樿鐨勮繃婊ゅ鐞�
-    //杩涘叆缂栬緫鍣ㄧ殑鍐呭澶勭悊
-    me.addInputRule(function(root) {
-      var allowDivTransToP = this.options.allowDivTransToP;
-      var val;
-
-      function tdParent(node) {
-        while (node && node.type == 'element') {
-          if (node.tagName == 'td') {
-            return true;
-          }
-          node = node.parentNode;
-        }
-        return false;
-      }
-      //杩涜榛樿鐨勫鐞�
-      root.traversal(function(node) {
-        if (node.type == 'element') {
-          if (!dtd.$cdata[node.tagName] && me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !
-            dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) {
-            if (!node.firstChild()) node.parentNode.removeChild(node);
-            else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) {
-              node.parentNode.removeChild(node, true)
-            }
-            return;
-          }
-          switch (node.tagName) {
-            case 'style':
-            case 'script':
-              node.setAttr({
-                cdata_tag: node.tagName,
-                cdata_data: (node.innerHTML() || ''),
-                '_ue_custom_node_': 'true'
-              });
-              node.tagName = 'div';
-              node.innerHTML('');
-              break;
-            case 'a':
-              if (val = node.getAttr('href')) {
-                node.setAttr('_href', val)
-              }
-              break;
-            case 'img':
-              //todo base64鏆傛椂鍘绘帀锛屽悗杈瑰仛杩滅▼鍥剧墖涓婁紶鍚庯紝骞叉帀杩欎釜
-              if (val = node.getAttr('src')) {
-                if (/^data:/.test(val)) {
-                  node.parentNode.removeChild(node);
-                  break;
-                }
-              }
-              node.setAttr('_src', node.getAttr('src'));
-              break;
-            case 'span':
-              if (browser.webkit && (val = node.getStyle('white-space'))) {
-                if (/nowrap|normal/.test(val)) {
-                  node.setStyle('white-space', '');
-                  if (me.options.autoClearEmptyNode && utils.isEmptyObject(node.attrs)) {
-                    node.parentNode.removeChild(node, true)
-                  }
-                }
-              }
-              val = node.getAttr('id');
-              if (val && /^_baidu_bookmark_/i.test(val)) {
-                node.parentNode.removeChild(node)
-              }
-              break;
-            case 'p':
-              if (val = node.getAttr('align')) {
-                node.setAttr('align');
-                node.setStyle('text-align', val)
-              }
-              //trace:3431
-              //                        var cssStyle = node.getAttr('style');
-              //                        if (cssStyle) {
-              //                            cssStyle = cssStyle.replace(/(margin|padding)[^;]+/g, '');
-              //                            node.setAttr('style', cssStyle)
-              //
-              //                        }
-              //p鏍囩涓嶅厑璁稿祵濂�
-              utils.each(node.children, function(n) {
-                if (n.type == 'element' && n.tagName == 'p') {
-                  var next = n.nextSibling();
-                  node.parentNode.insertAfter(n, node);
-                  var last = n;
-                  while (next) {
-                    var tmp = next.nextSibling();
-                    node.parentNode.insertAfter(next, last);
-                    last = next;
-                    next = tmp;
-                  }
-                  return false;
-                }
-              });
-              if (!node.firstChild()) {
-                node.innerHTML(browser.ie ? '&nbsp;' : '<br/>')
-              }
-              break;
-            case 'div':
-              if (node.getAttr('cdata_tag')) {
-                break;
-              }
-              //閽堝浠g爜杩欓噷涓嶅鐞嗘彃鍏ヤ唬鐮佺殑div
-              val = node.getAttr('class');
-              if (val && /^line number\d+/.test(val)) {
-                break;
-              }
-              if (!allowDivTransToP) {
-                break;
-              }
-              var tmpNode, p = UE.uNode.createElement('p');
-              while (tmpNode = node.firstChild()) {
-                if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) {
-                  p.appendChild(tmpNode);
-                } else {
-                  if (p.firstChild()) {
-                    node.parentNode.insertBefore(p, node);
-                    p = UE.uNode.createElement('p');
-                  } else {
-                    node.parentNode.insertBefore(tmpNode, node);
-                  }
-                }
-              }
-              if (p.firstChild()) {
-                node.parentNode.insertBefore(p, node);
-              }
-              node.parentNode.removeChild(node);
-              break;
-            case 'dl':
-              node.tagName = 'ul';
-              break;
-            case 'dt':
-            case 'dd':
-              node.tagName = 'li';
-              break;
-            case 'li':
-              var className = node.getAttr('class');
-              if (!className || !/list\-/.test(className)) {
-                node.setAttr()
-              }
-              var tmpNodes = node.getNodesByTagName('ol ul');
-              UE.utils.each(tmpNodes, function(n) {
-                node.parentNode.insertAfter(n, node);
-              });
-              break;
-            case 'td':
-            case 'th':
-            case 'caption':
-              if (!node.children || !node.children.length) {
-                node.appendChild(browser.ie11below ? UE.uNode.createText(' ') : UE.uNode.createElement('br'))
-              }
-              break;
-            case 'table':
-              if (me.options.disabledTableInTable && tdParent(node)) {
-                node.parentNode.insertBefore(UE.uNode.createText(node.innerText()), node);
-                node.parentNode.removeChild(node)
-              }
-          }
-
-        }
-        //            if(node.type == 'comment'){
-        //                node.parentNode.removeChild(node);
-        //            }
-      })
-
-    });
-
-    //浠庣紪杈戝櫒鍑哄幓鐨勫唴瀹瑰鐞�
-    me.addOutputRule(function(root) {
-
-      var val;
-      root.traversal(function(node) {
-        if (node.type == 'element') {
-
-          if (me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!
-              node.attrs || utils.isEmptyObject(node.attrs))) {
-
-            if (!node.firstChild()) node.parentNode.removeChild(node);
-            else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) {
-              node.parentNode.removeChild(node, true)
-            }
-            return;
-          }
-          switch (node.tagName) {
-            case 'div':
-              if (val = node.getAttr('cdata_tag')) {
-                node.tagName = val;
-                node.appendChild(UE.uNode.createText(node.getAttr('cdata_data')));
-                node.setAttr({
-                  cdata_tag: '',
-                  cdata_data: '',
-                  '_ue_custom_node_': ''
-                });
-              }
-              break;
-            case 'a':
-              if (val = node.getAttr('_href')) {
-                node.setAttr({
-                  'href': utils.html(val),
-                  '_href': ''
-                })
-              }
-              break;
-              break;
-            case 'span':
-              val = node.getAttr('id');
-              if (val && /^_baidu_bookmark_/i.test(val)) {
-                node.parentNode.removeChild(node)
-              }
-              break;
-            case 'img':
-              if (val = node.getAttr('_src')) {
-                node.setAttr({
-                  'src': node.getAttr('_src'),
-                  '_src': ''
-                })
-              }
-
-
-          }
-        }
-
-      })
-
-
-    });
-  };
-
-
-  // plugins/inserthtml.js
-  /**
-   * 鎻掑叆html瀛楃涓叉彃浠�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎻掑叆html浠g爜
-   * @command inserthtml
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { String } html 鎻掑叆鐨刪tml瀛楃涓�
-   * @remaind 鎻掑叆鐨勬爣绛惧唴瀹规槸鍦ㄥ綋鍓嶇殑閫夊尯浣嶇疆涓婃彃鍏ワ紝濡傛灉褰撳墠鏄棴鍚堢姸鎬侊紝閭g洿鎺ユ彃鍏ュ唴瀹癸紝 濡傛灉褰撳墠鏄�変腑鐘舵�侊紝灏嗗厛娓呴櫎褰撳墠閫変腑鍐呭鍚庯紝鍐嶅仛鎻掑叆
-   * @warning 娉ㄦ剰:璇ュ懡浠や細瀵瑰綋鍓嶉�夊尯鐨勪綅缃紝瀵规彃鍏ョ殑鍐呭杩涜杩囨护杞崲澶勭悊銆� 杩囨护鐨勮鍒欓伒寰猦tml璇剰鍖栫殑鍘熷垯銆�
-   * @example
-   * ```javascript
-   * //xxx[BB]xxx 褰撳墠閫夊尯涓洪潪闂悎閫夊尯锛岄�変腑BB杩欎袱涓枃鏈�
-   * //鎵ц鍛戒护锛屾彃鍏�<b>CC</b>
-   * //鎻掑叆鍚庣殑鏁堟灉 xxx<b>CC</b>xxx
-   * //<p>xx|xxx</p> 褰撳墠閫夊尯涓洪棴鍚堢姸鎬�
-   * //鎻掑叆<p>CC</p>
-   * //缁撴灉 <p>xx</p><p>CC</p><p>xxx</p>
-   * //<p>xxxx</p>|</p>xxx</p> 褰撳墠閫夊尯鍦ㄤ袱涓猵鏍囩涔嬮棿
-   * //鎻掑叆 xxxx
-   * //缁撴灉 <p>xxxx</p><p>xxxx</p></p>xxx</p>
-   * ```
-   */
-
-  UE.commands['inserthtml'] = {
-    execCommand: function(command, html, notNeedFilter) {
-      var me = this,
-        range,
-        div;
-      if (!html) {
-        return;
-      }
-      if (me.fireEvent('beforeinserthtml', html) === true) {
-        return;
-      }
-      range = me.selection.getRange();
-      div = range.document.createElement('div');
-      div.style.display = 'inline';
-
-      if (!notNeedFilter) {
-        var root = UE.htmlparser(html);
-        //濡傛灉缁欎簡杩囨护瑙勫垯灏卞厛杩涜杩囨护
-        if (me.options.filterRules) {
-          UE.filterNode(root, me.options.filterRules);
-        }
-        //鎵ц榛樿鐨勫鐞�
-        me.filterInputRule(root);
-        html = root.toHtml()
-      }
-      div.innerHTML = utils.trim(html);
-
-      if (!range.collapsed) {
-        var tmpNode = range.startContainer;
-        if (domUtils.isFillChar(tmpNode)) {
-          range.setStartBefore(tmpNode)
-        }
-        tmpNode = range.endContainer;
-        if (domUtils.isFillChar(tmpNode)) {
-          range.setEndAfter(tmpNode)
-        }
-        range.txtToElmBoundary();
-        //缁撴潫杈圭晫鍙兘鏀惧埌浜哹r鐨勫墠杈癸紝瑕佹妸br鍖呭惈杩涙潵
-        // x[xxx]<br/>
-        if (range.endContainer && range.endContainer.nodeType == 1) {
-          tmpNode = range.endContainer.childNodes[range.endOffset];
-          if (tmpNode && domUtils.isBr(tmpNode)) {
-            range.setEndAfter(tmpNode);
-          }
-        }
-        if (range.startOffset == 0) {
-          tmpNode = range.startContainer;
-          if (domUtils.isBoundaryNode(tmpNode, 'firstChild')) {
-            tmpNode = range.endContainer;
-            if (range.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) &&
-              domUtils.isBoundaryNode(tmpNode, 'lastChild')) {
-              me.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>';
-              range.setStart(me.body.firstChild, 0).collapse(true)
-
-            }
-          }
-        }!range.collapsed && range.deleteContents();
-        if (range.startContainer.nodeType == 1) {
-          var child = range.startContainer.childNodes[range.startOffset],
-            pre;
-          if (child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre)) {
-            range.setEnd(pre, pre.childNodes.length).collapse();
-            while (child.firstChild) {
-              pre.appendChild(child.firstChild);
-            }
-            domUtils.remove(child);
-          }
-        }
-
-      }
-
-
-      var child, parent, pre, tmp, hadBreak = 0,
-        nextNode;
-      //濡傛灉褰撳墠浣嶇疆閫変腑浜唂illchar瑕佸共鎺夛紝瑕佷笉浼氫骇鐢熺┖琛�
-      if (range.inFillChar()) {
-        child = range.startContainer;
-        if (domUtils.isFillChar(child)) {
-          range.setStartBefore(child).collapse(true);
-          domUtils.remove(child);
-        } else if (domUtils.isFillChar(child, true)) {
-          child.nodeValue = child.nodeValue.replace(fillCharReg, '');
-          range.startOffset--;
-          range.collapsed && range.collapse(true)
-        }
-      }
-      //鍒楄〃鍗曠嫭澶勭悊
-      var li = domUtils.findParentByTagName(range.startContainer, 'li', true);
-      if (li) {
-        var next, last;
-        while (child = div.firstChild) {
-          //閽堝hr鍗曠嫭澶勭悊涓�涓嬪厛
-          while (child && (child.nodeType == 3 || !domUtils.isBlockElm(child) || child.tagName == 'HR')) {
-            next = child.nextSibling;
-            range.insertNode(child).collapse();
-            last = child;
-            child = next;
-
-          }
-          if (child) {
-            if (/^(ol|ul)$/i.test(child.tagName)) {
-              while (child.firstChild) {
-                last = child.firstChild;
-                domUtils.insertAfter(li, child.firstChild);
-                li = li.nextSibling;
-              }
-              domUtils.remove(child)
-            } else {
-              var tmpLi;
-              next = child.nextSibling;
-              tmpLi = me.document.createElement('li');
-              domUtils.insertAfter(li, tmpLi);
-              tmpLi.appendChild(child);
-              last = child;
-              child = next;
-              li = tmpLi;
-            }
-          }
-        }
-        li = domUtils.findParentByTagName(range.startContainer, 'li', true);
-        if (domUtils.isEmptyBlock(li)) {
-          domUtils.remove(li)
-        }
-        if (last) {
-
-          range.setStartAfter(last).collapse(true).select(true)
-        }
-      } else {
-        while (child = div.firstChild) {
-          if (hadBreak) {
-            var p = me.document.createElement('p');
-            while (child && (child.nodeType == 3 || !dtd.$block[child.tagName])) {
-              nextNode = child.nextSibling;
-              p.appendChild(child);
-              child = nextNode;
-            }
-            if (p.firstChild) {
-
-              child = p
-            }
-          }
-          range.insertNode(child);
-          nextNode = child.nextSibling;
-          if (!hadBreak && child.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm(child)) {
-
-            parent = domUtils.findParent(child, function(node) {
-              return domUtils.isBlockElm(node);
-            });
-            if (parent && parent.tagName.toLowerCase() != 'body' && !(dtd[parent.tagName][child.nodeName] &&
-                child.parentNode === parent)) {
-              if (!dtd[parent.tagName][child.nodeName]) {
-                pre = parent;
-              } else {
-                tmp = child.parentNode;
-                while (tmp !== parent) {
-                  pre = tmp;
-                  tmp = tmp.parentNode;
-
-                }
-              }
-
-
-              domUtils.breakParent(child, pre || tmp);
-              //鍘绘帀break鍚庡墠涓�涓浣欑殑鑺傜偣  <p>|<[p> ==> <p></p><div></div><p>|</p>
-              var pre = child.previousSibling;
-              domUtils.trimWhiteTextNode(pre);
-              if (!pre.childNodes.length) {
-                domUtils.remove(pre);
-              }
-              //trace:2012,鍦ㄩ潪ie鐨勬儏鍐碉紝鍒囧紑鍚庡墿涓嬬殑鑺傜偣鏈夊彲鑳戒笉鑳界偣鍏ュ厜鏍囨坊鍔燽r鍗犱綅
-
-              if (!browser.ie &&
-                (next = child.nextSibling) &&
-                domUtils.isBlockElm(next) &&
-                next.lastChild &&
-                !domUtils.isBr(next.lastChild)) {
-                next.appendChild(me.document.createElement('br'));
-              }
-              hadBreak = 1;
-            }
-          }
-          var next = child.nextSibling;
-          if (!div.firstChild && next && domUtils.isBlockElm(next)) {
-
-            range.setStart(next, 0).collapse(true);
-            break;
-          }
-          range.setEndAfter(child).collapse();
-
-        }
-
-        child = range.startContainer;
-
-        if (nextNode && domUtils.isBr(nextNode)) {
-          domUtils.remove(nextNode)
-        }
-        //鐢╟hrome鍙兘鏈夌┖鐧藉睍浣嶇
-        if (domUtils.isBlockElm(child) && domUtils.isEmptyNode(child)) {
-          if (nextNode = child.nextSibling) {
-            domUtils.remove(child);
-            if (nextNode.nodeType == 1 && dtd.$block[nextNode.tagName]) {
-
-              range.setStart(nextNode, 0).collapse(true).shrinkBoundary()
-            }
-          } else {
-
-            try {
-              child.innerHTML = browser.ie ? domUtils.fillChar : '<br/>';
-            } catch (e) {
-              range.setStartBefore(child);
-              domUtils.remove(child)
-            }
-
-          }
-
-        }
-        //鍔犱笂true鍥犱负鍦ㄥ垹闄よ〃鎯呯瓑鏃朵細鍒犱袱娆★紝绗竴娆℃槸鍒犵殑fillData
-        try {
-          range.select(true);
-        } catch (e) {}
-
-      }
-
-
-
-      setTimeout(function() {
-        range = me.selection.getRange();
-        range.scrollToView(me.autoHeightEnabled, me.autoHeightEnabled ? domUtils.getXY(me.iframe).y : 0);
-        me.fireEvent('afterinserthtml', html);
-      }, 200);
-    }
-  };
-
-
-  // plugins/autotypeset.js
-  /**
-   * 鑷姩鎺掔増
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 瀵瑰綋鍓嶇紪杈戝櫒鐨勫唴瀹规墽琛岃嚜鍔ㄦ帓鐗堬紝 鎺掔増鐨勮涓烘牴鎹甤onfig閰嶇疆鏂囦欢閲岀殑鈥渁utotypeset鈥濋�夐」杩涜鎺у埗銆�
-   * @command autotypeset
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'autotypeset' );
-   * ```
-   */
-
-  UE.plugins['autotypeset'] = function() {
-
-    this.setOpt({
-      'autotypeset': {
-        mergeEmptyline: true, //鍚堝苟绌鸿
-        removeClass: true, //鍘绘帀鍐椾綑鐨刢lass
-        removeEmptyline: false, //鍘绘帀绌鸿
-        textAlign: "left", //娈佃惤鐨勬帓鐗堟柟寮忥紝鍙互鏄� left,right,center,justify 鍘绘帀杩欎釜灞炴�ц〃绀轰笉鎵ц鎺掔増
-        imageBlockLine: 'center', //鍥剧墖鐨勬诞鍔ㄦ柟寮忥紝鐙崰涓�琛屽墽涓�,宸﹀彸娴姩锛岄粯璁�: center,left,right,none 鍘绘帀杩欎釜灞炴�ц〃绀轰笉鎵ц鎺掔増
-        pasteFilter: false, //鏍规嵁瑙勫垯杩囨护娌′簨绮樿创杩涙潵鐨勫唴瀹�
-        clearFontSize: false, //鍘绘帀鎵�鏈夌殑鍐呭祵瀛楀彿锛屼娇鐢ㄧ紪杈戝櫒榛樿鐨勫瓧鍙�
-        clearFontFamily: false, //鍘绘帀鎵�鏈夌殑鍐呭祵瀛椾綋锛屼娇鐢ㄧ紪杈戝櫒榛樿鐨勫瓧浣�
-        removeEmptyNode: false, // 鍘绘帀绌鸿妭鐐�
-        //鍙互鍘绘帀鐨勬爣绛�
-        removeTagNames: utils.extend({
-          div: 1
-        }, dtd.$removeEmpty),
-        indent: false, // 琛岄缂╄繘
-        indentValue: '2em', //琛岄缂╄繘鐨勫ぇ灏�
-        bdc2sb: false,
-        tobdc: false
-      }
-    });
-
-    var me = this,
-      opt = me.options.autotypeset,
-      remainClass = {
-        'selectTdClass': 1,
-        'pagebreak': 1,
-        'anchorclass': 1
-      },
-      remainTag = {
-        'li': 1
-      },
-      tags = {
-        div: 1,
-        p: 1,
-        //trace:2183 杩欎簺涔熻涓烘槸琛�
-        blockquote: 1,
-        center: 1,
-        h1: 1,
-        h2: 1,
-        h3: 1,
-        h4: 1,
-        h5: 1,
-        h6: 1,
-        span: 1
-      },
-      highlightCont;
-    //鍗囩骇浜嗙増鏈紝浣嗛厤缃」鐩噷娌℃湁autotypeset
-    if (!opt) {
-      return;
-    }
-
-    readLocalOpts();
-
-    function isLine(node, notEmpty) {
-      if (!node || node.nodeType == 3)
-        return 0;
-      if (domUtils.isBr(node))
-        return 1;
-      if (node && node.parentNode && tags[node.tagName.toLowerCase()]) {
-        if (highlightCont && highlightCont.contains(node) ||
-          node.getAttribute('pagebreak')
-        ) {
-          return 0;
-        }
-
-        return notEmpty ? !domUtils.isEmptyBlock(node) : domUtils.isEmptyBlock(node, new RegExp('[\\s' + domUtils.fillChar +
-          ']', 'g'));
-      }
-    }
-
-    function removeNotAttributeSpan(node) {
-      if (!node.style.cssText) {
-        domUtils.removeAttributes(node, ['style']);
-        if (node.tagName.toLowerCase() == 'span' && domUtils.hasNoAttributes(node)) {
-          domUtils.remove(node, true);
-        }
-      }
-    }
-
-    function autotype(type, html) {
-
-      var me = this,
-        cont;
-      if (html) {
-        if (!opt.pasteFilter) {
-          return;
-        }
-        cont = me.document.createElement('div');
-        cont.innerHTML = html.html;
-      } else {
-        cont = me.document.body;
-      }
-      var nodes = domUtils.getElementsByTagName(cont, '*');
-
-      // 琛岄缂╄繘锛屾钀芥柟鍚戯紝娈甸棿璺濓紝娈靛唴闂磋窛
-      for (var i = 0, ci; ci = nodes[i++];) {
-
-        if (me.fireEvent('excludeNodeinautotype', ci) === true) {
-          continue;
-        }
-        //font-size
-        if (opt.clearFontSize && ci.style.fontSize) {
-          domUtils.removeStyle(ci, 'font-size');
-
-          removeNotAttributeSpan(ci);
-
-        }
-        //font-family
-        if (opt.clearFontFamily && ci.style.fontFamily) {
-          domUtils.removeStyle(ci, 'font-family');
-          removeNotAttributeSpan(ci);
-        }
-
-        if (isLine(ci)) {
-          //鍚堝苟绌鸿
-          if (opt.mergeEmptyline) {
-            var next = ci.nextSibling,
-              tmpNode, isBr = domUtils.isBr(ci);
-            while (isLine(next)) {
-              tmpNode = next;
-              next = tmpNode.nextSibling;
-              if (isBr && (!next || next && !domUtils.isBr(next))) {
-                break;
-              }
-              domUtils.remove(tmpNode);
-            }
-
-          }
-          //鍘绘帀绌鸿锛屼繚鐣欏崰浣嶇殑绌鸿
-          if (opt.removeEmptyline && domUtils.inDoc(ci, cont) && !remainTag[ci.parentNode.tagName.toLowerCase()]) {
-            if (domUtils.isBr(ci)) {
-              next = ci.nextSibling;
-              if (next && !domUtils.isBr(next)) {
-                continue;
-              }
-            }
-            domUtils.remove(ci);
-            continue;
-
-          }
-
-        }
-        if (isLine(ci, true) && ci.tagName != 'SPAN') {
-          if (opt.indent) {
-            ci.style.textIndent = opt.indentValue;
-          }
-          if (opt.textAlign) {
-            ci.style.textAlign = opt.textAlign;
-          }
-          // if(opt.lineHeight)
-          //     ci.style.lineHeight = opt.lineHeight + 'cm';
-
-        }
-
-        //鍘绘帀class,淇濈暀鐨刢lass涓嶅幓鎺�
-        if (opt.removeClass && ci.className && !remainClass[ci.className.toLowerCase()]) {
-
-          if (highlightCont && highlightCont.contains(ci)) {
-            continue;
-          }
-          domUtils.removeAttributes(ci, ['class']);
-        }
-
-        //琛ㄦ儏涓嶅鐞�
-        if (opt.imageBlockLine && ci.tagName.toLowerCase() == 'img' && !ci.getAttribute('emotion')) {
-          if (html) {
-            var img = ci;
-            switch (opt.imageBlockLine) {
-              case 'left':
-              case 'right':
-              case 'none':
-                var pN = img.parentNode,
-                  tmpNode, pre, next;
-                while (dtd.$inline[pN.tagName] || pN.tagName == 'A') {
-                  pN = pN.parentNode;
-                }
-                tmpNode = pN;
-                if (tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode, 'text-align') == 'center') {
-                  if (!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode, function(node) {
-                      return !domUtils.isBr(node) && !domUtils.isWhitespace(node)
-                    }) == 1) {
-                    pre = tmpNode.previousSibling;
-                    next = tmpNode.nextSibling;
-                    if (pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName &&
-                      domUtils.isBlockElm(pre)) {
-                      pre.appendChild(tmpNode.firstChild);
-                      while (next.firstChild) {
-                        pre.appendChild(next.firstChild);
-                      }
-                      domUtils.remove(tmpNode);
-                      domUtils.remove(next);
-                    } else {
-                      domUtils.setStyle(tmpNode, 'text-align', '');
-                    }
-
-
-                  }
-
-
-                }
-                domUtils.setStyle(img, 'float', opt.imageBlockLine);
-                break;
-              case 'center':
-                if (me.queryCommandValue('imagefloat') != 'center') {
-                  pN = img.parentNode;
-                  domUtils.setStyle(img, 'float', 'none');
-                  tmpNode = img;
-                  while (pN && domUtils.getChildCount(pN, function(node) {
-                      return !domUtils.isBr(node) && !domUtils.isWhitespace(node)
-                    }) == 1 &&
-                    (dtd.$inline[pN.tagName] || pN.tagName == 'A')) {
-                    tmpNode = pN;
-                    pN = pN.parentNode;
-                  }
-                  var pNode = me.document.createElement('p');
-                  domUtils.setAttributes(pNode, {
-
-                    style: 'text-align:center'
-                  });
-                  tmpNode.parentNode.insertBefore(pNode, tmpNode);
-                  pNode.appendChild(tmpNode);
-                  domUtils.setStyle(tmpNode, 'float', '');
-
-                }
-
-
-            }
-          } else {
-            var range = me.selection.getRange();
-            range.selectNode(ci).select();
-            me.execCommand('imagefloat', opt.imageBlockLine);
-          }
-
-        }
-
-        //鍘绘帀鍐椾綑鐨勬爣绛�
-        if (opt.removeEmptyNode) {
-          if (opt.removeTagNames[ci.tagName.toLowerCase()] && domUtils.hasNoAttributes(ci) && domUtils.isEmptyBlock(
-              ci)) {
-            domUtils.remove(ci);
-          }
-        }
-      }
-      if (opt.tobdc) {
-        var root = UE.htmlparser(cont.innerHTML);
-        root.traversal(function(node) {
-          if (node.type == 'text') {
-            node.data = ToDBC(node.data)
-          }
-        });
-        cont.innerHTML = root.toHtml()
-      }
-      if (opt.bdc2sb) {
-        var root = UE.htmlparser(cont.innerHTML);
-        root.traversal(function(node) {
-          if (node.type == 'text') {
-            node.data = DBC2SB(node.data)
-          }
-        });
-        cont.innerHTML = root.toHtml()
-      }
-      if (html) {
-        html.html = cont.innerHTML;
-      }
-    }
-    if (opt.pasteFilter) {
-      me.addListener('beforepaste', autotype);
-    }
-
-    function DBC2SB(str) {
-      var result = '';
-      for (var i = 0; i < str.length; i++) {
-        var code = str.charCodeAt(i); //鑾峰彇褰撳墠瀛楃鐨剈nicode缂栫爜
-        if (code >= 65281 && code <= 65373) //鍦ㄨ繖涓猽nicode缂栫爜鑼冨洿涓殑鏄墍鏈夌殑鑻辨枃瀛楁瘝宸茬粡鍚勭瀛楃
-        {
-          result += String.fromCharCode(str.charCodeAt(i) - 65248); //鎶婂叏瑙掑瓧绗︾殑unicode缂栫爜杞崲涓哄搴斿崐瑙掑瓧绗︾殑unicode鐮�
-        } else if (code == 12288) //绌烘牸
-        {
-          result += String.fromCharCode(str.charCodeAt(i) - 12288 + 32);
-        } else {
-          result += str.charAt(i);
-        }
-      }
-      return result;
-    }
-
-    function ToDBC(txtstring) {
-      txtstring = utils.html(txtstring);
-      var tmp = "";
-      var mark = ""; /*鐢ㄤ簬鍒ゆ柇,濡傛灉鏄痟tml灏栨嫭閲岀殑鏍囪,鍒欎笉杩涜鍏ㄨ鐨勮浆鎹�*/
-      for (var i = 0; i < txtstring.length; i++) {
-        if (txtstring.charCodeAt(i) == 32) {
-          tmp = tmp + String.fromCharCode(12288);
-        } else if (txtstring.charCodeAt(i) < 127) {
-          tmp = tmp + String.fromCharCode(txtstring.charCodeAt(i) + 65248);
-        } else {
-          tmp += txtstring.charAt(i);
-        }
-      }
-      return tmp;
-    }
-
-    function readLocalOpts() {
-      var cookieOpt = me.getPreferences('autotypeset');
-      utils.extend(me.options.autotypeset, cookieOpt);
-    }
-
-    me.commands['autotypeset'] = {
-      execCommand: function() {
-        me.removeListener('beforepaste', autotype);
-        if (opt.pasteFilter) {
-          me.addListener('beforepaste', autotype);
-        }
-        autotype.call(me)
-      }
-
-    };
-
-  };
-
-
-
-  // plugins/autosubmit.js
-  /**
-   * 蹇嵎閿彁浜�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎻愪氦琛ㄥ崟
-   * @command autosubmit
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'autosubmit' );
-   * ```
-   */
-
-  UE.plugin.register('autosubmit', function() {
-    return {
-      shortcutkey: {
-        "autosubmit": "ctrl+13" //鎵嬪姩鎻愪氦
-      },
-      commands: {
-        'autosubmit': {
-          execCommand: function() {
-            var me = this,
-              form = domUtils.findParentByTagName(me.iframe, "form", false);
-            if (form) {
-              if (me.fireEvent("beforesubmit") === false) {
-                return;
-              }
-              me.sync();
-              form.submit();
-            }
-          }
-        }
-      }
-    }
-  });
-
-  // plugins/background.js
-  /**
-   * 鑳屾櫙鎻掍欢锛屼负UEditor鎻愪緵璁剧疆鑳屾櫙鍔熻兘
-   * @file
-   * @since 1.2.6.1
-   */
-  UE.plugin.register('background', function() {
-    var me = this,
-      cssRuleId = 'editor_background',
-      isSetColored,
-      reg = new RegExp('body[\\s]*\\{(.+)\\}', 'i');
-
-    function stringToObj(str) {
-      var obj = {},
-        styles = str.split(';');
-      utils.each(styles, function(v) {
-        var index = v.indexOf(':'),
-          key = utils.trim(v.substr(0, index)).toLowerCase();
-        key && (obj[key] = utils.trim(v.substr(index + 1) || ''));
-      });
-      return obj;
-    }
-
-    function setBackground(obj) {
-      if (obj) {
-        var styles = [];
-        for (var name in obj) {
-          if (obj.hasOwnProperty(name)) {
-            styles.push(name + ":" + obj[name] + '; ');
-          }
-        }
-        utils.cssRule(cssRuleId, styles.length ? ('body{' + styles.join("") + '}') : '', me.document);
-      } else {
-        utils.cssRule(cssRuleId, '', me.document)
-      }
-    }
-    //閲嶅啓editor.hasContent鏂规硶
-
-    var orgFn = me.hasContents;
-    me.hasContents = function() {
-      if (me.queryCommandValue('background')) {
-        return true
-      }
-      return orgFn.apply(me, arguments);
-    };
-    return {
-      bindEvents: {
-        'getAllHtml': function(type, headHtml) {
-          var body = this.body,
-            su = domUtils.getComputedStyle(body, "background-image"),
-            url = "";
-          if (su.indexOf(me.options.imagePath) > 0) {
-            url = su.substring(su.indexOf(me.options.imagePath), su.length - 1).replace(/"|\(|\)/ig, "");
-          } else {
-            url = su != "none" ? su.replace(/url\("?|"?\)/ig, "") : "";
-          }
-          var html = '<style type="text/css">body{';
-          var bgObj = {
-            "background-color": domUtils.getComputedStyle(body, "background-color") || "#ffffff",
-            'background-image': url ? 'url(' + url + ')' : '',
-            'background-repeat': domUtils.getComputedStyle(body, "background-repeat") || "",
-            'background-position': browser.ie ? (domUtils.getComputedStyle(body, "background-position-x") +
-              " " + domUtils.getComputedStyle(body, "background-position-y")) : domUtils.getComputedStyle(
-              body, "background-position"),
-            'height': domUtils.getComputedStyle(body, "height")
-          };
-          for (var name in bgObj) {
-            if (bgObj.hasOwnProperty(name)) {
-              html += name + ":" + bgObj[name] + "; ";
-            }
-          }
-          html += '}</style> ';
-          headHtml.push(html);
-        },
-        'aftersetcontent': function() {
-          if (isSetColored == false) setBackground();
-        }
-      },
-      inputRule: function(root) {
-        isSetColored = false;
-        utils.each(root.getNodesByTagName('p'), function(p) {
-          var styles = p.getAttr('data-background');
-          if (styles) {
-            isSetColored = true;
-            setBackground(stringToObj(styles));
-            p.parentNode.removeChild(p);
-          }
-        })
-      },
-      outputRule: function(root) {
-        var me = this,
-          styles = (utils.cssRule(cssRuleId, me.document) || '').replace(/[\n\r]+/g, '').match(reg);
-        if (styles) {
-          root.appendChild(UE.uNode.createElement('<p style="display:none;" data-background="' + utils.trim(
-            styles[1].replace(/"/g, '').replace(/[\s]+/g, ' ')) + '"><br/></p>'));
-        }
-      },
-      commands: {
-        'background': {
-          execCommand: function(cmd, obj) {
-            setBackground(obj);
-          },
-          queryCommandValue: function() {
-            var me = this,
-              styles = (utils.cssRule(cssRuleId, me.document) || '').replace(/[\n\r]+/g, '').match(reg);
-            return styles ? stringToObj(styles[1]) : null;
-          },
-          notNeedUndo: true
-        }
-      }
-    }
-  });
-
-  // plugins/image.js
-  /**
-   * 鍥剧墖鎻掑叆銆佹帓鐗堟彃浠�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鍥剧墖瀵归綈鏂瑰紡
-   * @command imagefloat
-   * @method execCommand
-   * @remind 鍊糲enter涓虹嫭鍗犱竴琛屽眳涓�
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { String } align 瀵归綈鏂瑰紡锛屽彲浼爈eft銆乺ight銆乶one銆乧enter
-   * @remaind center琛ㄧず鍥剧墖鐙崰涓�琛�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'imagefloat', 'center' );
-   * ```
-   */
-
-  /**
-   * 濡傛灉閫夊尯鎵�鍦ㄤ綅缃槸鍥剧墖鍖哄煙
-   * @command imagefloat
-   * @method queryCommandValue
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @return { String } 杩斿洖鍥剧墖瀵归綈鏂瑰紡
-   * @example
-   * ```javascript
-   * editor.queryCommandValue( 'imagefloat' );
-   * ```
-   */
-
-  UE.commands['imagefloat'] = {
-    execCommand: function(cmd, align) {
-      var me = this,
-        range = me.selection.getRange();
-      if (!range.collapsed) {
-        var img = range.getClosedNode();
-        if (img && img.tagName == 'IMG') {
-          switch (align) {
-            case 'left':
-            case 'right':
-            case 'none':
-              var pN = img.parentNode,
-                tmpNode, pre, next;
-              while (dtd.$inline[pN.tagName] || pN.tagName == 'A') {
-                pN = pN.parentNode;
-              }
-              tmpNode = pN;
-              if (tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode, 'text-align') == 'center') {
-                if (!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode, function(node) {
-                    return !domUtils.isBr(node) && !domUtils.isWhitespace(node);
-                  }) == 1) {
-                  pre = tmpNode.previousSibling;
-                  next = tmpNode.nextSibling;
-                  if (pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName &&
-                    domUtils.isBlockElm(pre)) {
-                    pre.appendChild(tmpNode.firstChild);
-                    while (next.firstChild) {
-                      pre.appendChild(next.firstChild);
-                    }
-                    domUtils.remove(tmpNode);
-                    domUtils.remove(next);
-                  } else {
-                    domUtils.setStyle(tmpNode, 'text-align', '');
-                  }
-
-
-                }
-
-                range.selectNode(img).select();
-              }
-              domUtils.setStyle(img, 'float', align == 'none' ? '' : align);
-              if (align == 'none') {
-                domUtils.removeAttributes(img, 'align');
-              }
-
-              break;
-            case 'center':
-              if (me.queryCommandValue('imagefloat') != 'center') {
-                pN = img.parentNode;
-                domUtils.setStyle(img, 'float', '');
-                domUtils.removeAttributes(img, 'align');
-                tmpNode = img;
-                while (pN && domUtils.getChildCount(pN, function(node) {
-                    return !domUtils.isBr(node) && !domUtils.isWhitespace(node);
-                  }) == 1 &&
-                  (dtd.$inline[pN.tagName] || pN.tagName == 'A')) {
-                  tmpNode = pN;
-                  pN = pN.parentNode;
-                }
-                range.setStartBefore(tmpNode).setCursor(false);
-                pN = me.document.createElement('div');
-                pN.appendChild(tmpNode);
-                domUtils.setStyle(tmpNode, 'float', '');
-
-                me.execCommand('insertHtml', '<p id="_img_parent_tmp" style="text-align:center">' + pN.innerHTML +
-                  '</p>');
-
-                tmpNode = me.document.getElementById('_img_parent_tmp');
-                tmpNode.removeAttribute('id');
-                tmpNode = tmpNode.firstChild;
-                range.selectNode(tmpNode).select();
-                //鍘绘帀鍚庤竟澶氫綑鐨勫厓绱�
-                next = tmpNode.parentNode.nextSibling;
-                if (next && domUtils.isEmptyNode(next)) {
-                  domUtils.remove(next);
-                }
-
-              }
-
-              break;
-          }
-
-        }
-      }
-    },
-    queryCommandValue: function() {
-      var range = this.selection.getRange(),
-        startNode, floatStyle;
-      if (range.collapsed) {
-        return 'none';
-      }
-      startNode = range.getClosedNode();
-      if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') {
-        floatStyle = domUtils.getComputedStyle(startNode, 'float') || startNode.getAttribute('align');
-
-        if (floatStyle == 'none') {
-          floatStyle = domUtils.getComputedStyle(startNode.parentNode, 'text-align') == 'center' ? 'center' :
-            floatStyle;
-        }
-        return {
-          left: 1,
-          right: 1,
-          center: 1
-        } [floatStyle] ? floatStyle: 'none';
-      }
-      return 'none';
-
-
-    },
-    queryCommandState: function() {
-      var range = this.selection.getRange(),
-        startNode;
-
-      if (range.collapsed) return -1;
-
-      startNode = range.getClosedNode();
-      if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') {
-        return 0;
-      }
-      return -1;
-    }
-  };
-
-
-  /**
-   * 鎻掑叆鍥剧墖
-   * @command insertimage
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { Object } opt 灞炴�ч敭鍊煎锛岃繖浜涘睘鎬ч兘灏嗚澶嶅埗鍒板綋鍓嶆彃鍏ュ浘鐗�
-   * @remind 璇ュ懡浠ょ浜屼釜鍙傛暟鍙帴鍙椾竴涓浘鐗囬厤缃」瀵硅薄鐨勬暟缁勶紝鍙互鎻掑叆澶氬紶鍥剧墖锛�
-   * 姝ゆ椂鏁扮粍鐨勬瘡涓�涓厓绱犻兘鏄竴涓狾bject绫诲瀷鐨勫浘鐗囧睘鎬ч泦鍚堛��
-   * @example
-   * ```javascript
-   * editor.execCommand( 'insertimage', {
-   *     src:'a/b/c.jpg',
-   *     width:'100',
-   *     height:'100'
-   * } );
-   * ```
-   * @example
-   * ```javascript
-   * editor.execCommand( 'insertimage', [{
-   *     src:'a/b/c.jpg',
-   *     width:'100',
-   *     height:'100'
-   * },{
-   *     src:'a/b/d.jpg',
-   *     width:'100',
-   *     height:'100'
-   * }] );
-   * ```
-   */
-
-  UE.commands['insertimage'] = {
-    execCommand: function(cmd, opt) {
-
-      opt = utils.isArray(opt) ? opt : [opt];
-      if (!opt.length) {
-        return;
-      }
-      var me = this,
-        range = me.selection.getRange(),
-        img = range.getClosedNode();
-
-      if (me.fireEvent('beforeinsertimage', opt) === true) {
-        return;
-      }
-
-      function unhtmlData(imgCi) {
-
-        utils.each('width,height,border,hspace,vspace'.split(','), function(item) {
-
-          if (imgCi[item]) {
-            imgCi[item] = parseInt(imgCi[item], 10) || 0;
-          }
-        });
-
-        utils.each('src,_src'.split(','), function(item) {
-
-          if (imgCi[item]) {
-            imgCi[item] = utils.unhtmlForUrl(imgCi[item]);
-          }
-        });
-        utils.each('title,alt'.split(','), function(item) {
-
-          if (imgCi[item]) {
-            imgCi[item] = utils.unhtml(imgCi[item]);
-          }
-        });
-      }
-
-      if (img && /img/i.test(img.tagName) && (img.className != "edui-faked-video" || img.className.indexOf(
-          "edui-upload-video") != -1) && !img.getAttribute("word_img")) {
-        var first = opt.shift();
-        var floatStyle = first['floatStyle'];
-        delete first['floatStyle'];
-        ////                img.style.border = (first.border||0) +"px solid #000";
-        ////                img.style.margin = (first.margin||0) +"px";
-        //                img.style.cssText += ';margin:' + (first.margin||0) +"px;" + 'border:' + (first.border||0) +"px solid #000";
-        domUtils.setAttributes(img, first);
-        me.execCommand('imagefloat', floatStyle);
-        if (opt.length > 0) {
-          range.setStartAfter(img).setCursor(false, true);
-          me.execCommand('insertimage', opt);
-        }
-
-      } else {
-        var html = [],
-          str = '',
-          ci;
-        ci = opt[0];
-        if (opt.length == 1) {
-          unhtmlData(ci);
-
-          str = '<img src="' + ci.src + '" ' + (ci._src ? ' _src="' + ci._src + '" ' : '') +
-            (ci.width ? 'width="' + ci.width + '" ' : '') +
-            (ci.height ? ' height="' + ci.height + '" ' : '') +
-            (ci['floatStyle'] == 'left' || ci['floatStyle'] == 'right' ? ' style="float:' + ci['floatStyle'] +
-              ';"' : '') +
-            (ci.title && ci.title != "" ? ' title="' + ci.title + '"' : '') +
-            (ci.border && ci.border != "0" ? ' border="' + ci.border + '"' : '') +
-            (ci.alt && ci.alt != "" ? ' alt="' + ci.alt + '"' : '') +
-            (ci.hspace && ci.hspace != "0" ? ' hspace = "' + ci.hspace + '"' : '') +
-            (ci.vspace && ci.vspace != "0" ? ' vspace = "' + ci.vspace + '"' : '') + '/>';
-          if (ci['floatStyle'] == 'center') {
-            str = '<p style="text-align: center">' + str + '</p>';
-          }
-          html.push(str);
-
-        } else {
-          for (var i = 0; ci = opt[i++];) {
-            unhtmlData(ci);
-            str = '<p ' + (ci['floatStyle'] == 'center' ? 'style="text-align: center" ' : '') + '><img src="' +
-              ci.src + '" ' +
-              (ci.width ? 'width="' + ci.width + '" ' : '') + (ci._src ? ' _src="' + ci._src + '" ' : '') +
-              (ci.height ? ' height="' + ci.height + '" ' : '') +
-              ' style="' + (ci['floatStyle'] && ci['floatStyle'] != 'center' ? 'float:' + ci['floatStyle'] + ';' :
-                '') +
-              (ci.border || '') + '" ' +
-              (ci.title ? ' title="' + ci.title + '"' : '') + ' /></p>';
-            html.push(str);
-          }
-        }
-
-        me.execCommand('insertHtml', html.join(''));
-      }
-
-      me.fireEvent('afterinsertimage', opt)
-    }
-  };
-
-
-  // plugins/justify.js
-  /**
-   * 娈佃惤鏍煎紡
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 娈佃惤瀵归綈鏂瑰紡
-   * @command justify
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { String } align 瀵归綈鏂瑰紡锛歭eft => 灞呭乏锛宺ight => 灞呭彸锛宑enter => 灞呬腑锛宩ustify => 涓ょ瀵归綈
-   * @example
-   * ```javascript
-   * editor.execCommand( 'justify', 'center' );
-   * ```
-   */
-  /**
-   * 濡傛灉閫夊尯鎵�鍦ㄤ綅缃槸娈佃惤鍖哄煙锛岃繑鍥炲綋鍓嶆钀藉榻愭柟寮�
-   * @command justify
-   * @method queryCommandValue
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @return { String } 杩斿洖娈佃惤瀵归綈鏂瑰紡
-   * @example
-   * ```javascript
-   * editor.queryCommandValue( 'justify' );
-   * ```
-   */
-
-  UE.plugins['justify'] = function() {
-    var me = this,
-      block = domUtils.isBlockElm,
-      defaultValue = {
-        left: 1,
-        right: 1,
-        center: 1,
-        justify: 1
-      },
-      doJustify = function(range, style) {
-        var bookmark = range.createBookmark(),
-          filterFn = function(node) {
-            return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !
-              domUtils.isWhitespace(node);
-          };
-
-        range.enlarge(true);
-        var bookmark2 = range.createBookmark(),
-          current = domUtils.getNextDomNode(bookmark2.start, false, filterFn),
-          tmpRange = range.cloneRange(),
-          tmpNode;
-        while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) {
-          if (current.nodeType == 3 || !block(current)) {
-            tmpRange.setStartBefore(current);
-            while (current && current !== bookmark2.end && !block(current)) {
-              tmpNode = current;
-              current = domUtils.getNextDomNode(current, false, null, function(node) {
-                return !block(node);
-              });
-            }
-            tmpRange.setEndAfter(tmpNode);
-            var common = tmpRange.getCommonAncestor();
-            if (!domUtils.isBody(common) && block(common)) {
-              domUtils.setStyles(common, utils.isString(style) ? {
-                'text-align': style
-              } : style);
-              current = common;
-            } else {
-              var p = range.document.createElement('p');
-              domUtils.setStyles(p, utils.isString(style) ? {
-                'text-align': style
-              } : style);
-              var frag = tmpRange.extractContents();
-              p.appendChild(frag);
-              tmpRange.insertNode(p);
-              current = p;
-            }
-            current = domUtils.getNextDomNode(current, false, filterFn);
-          } else {
-            current = domUtils.getNextDomNode(current, true, filterFn);
-          }
-        }
-        return range.moveToBookmark(bookmark2).moveToBookmark(bookmark);
-      };
-
-    UE.commands['justify'] = {
-      execCommand: function(cmdName, align) {
-        var range = this.selection.getRange(),
-          txt;
-
-        //闂悎鏃跺崟鐙鐞�
-        if (range.collapsed) {
-          txt = this.document.createTextNode('p');
-          range.insertNode(txt);
-        }
-        doJustify(range, align);
-        if (txt) {
-          range.setStartBefore(txt).collapse(true);
-          domUtils.remove(txt);
-        }
-
-        range.select();
-
-
-        return true;
-      },
-      queryCommandValue: function() {
-        var startNode = this.selection.getStart(),
-          value = domUtils.getComputedStyle(startNode, 'text-align');
-        return defaultValue[value] ? value : 'left';
-      },
-      queryCommandState: function() {
-        var start = this.selection.getStart(),
-          cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true);
-
-        return cell ? -1 : 0;
-      }
-
-    };
-  };
-
-
-  // plugins/font.js
-  /**
-   * 瀛椾綋棰滆壊,鑳屾櫙鑹�,瀛楀彿,瀛椾綋,涓嬪垝绾�,鍒犻櫎绾�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 瀛椾綋棰滆壊
-   * @command forecolor
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { String } value 鑹插��(蹇呴』鍗佸叚杩涘埗)
-   * @example
-   * ```javascript
-   * editor.execCommand( 'forecolor', '#000' );
-   * ```
-   */
-  /**
-   * 杩斿洖閫夊尯瀛椾綋棰滆壊
-   * @command forecolor
-   * @method queryCommandValue
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @return { String } 杩斿洖瀛椾綋棰滆壊
-   * @example
-   * ```javascript
-   * editor.queryCommandValue( 'forecolor' );
-   * ```
-   */
-
-  /**
-   * 瀛椾綋鑳屾櫙棰滆壊
-   * @command backcolor
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { String } value 鑹插��(蹇呴』鍗佸叚杩涘埗)
-   * @example
-   * ```javascript
-   * editor.execCommand( 'backcolor', '#000' );
-   * ```
-   */
-  /**
-   * 杩斿洖閫夊尯瀛椾綋棰滆壊
-   * @command backcolor
-   * @method queryCommandValue
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @return { String } 杩斿洖瀛椾綋鑳屾櫙棰滆壊
-   * @example
-   * ```javascript
-   * editor.queryCommandValue( 'backcolor' );
-   * ```
-   */
-
-  /**
-   * 瀛椾綋澶у皬
-   * @command fontsize
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { String } value 瀛椾綋澶у皬
-   * @example
-   * ```javascript
-   * editor.execCommand( 'fontsize', '14px' );
-   * ```
-   */
-  /**
-   * 杩斿洖閫夊尯瀛椾綋澶у皬
-   * @command fontsize
-   * @method queryCommandValue
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @return { String } 杩斿洖瀛椾綋澶у皬
-   * @example
-   * ```javascript
-   * editor.queryCommandValue( 'fontsize' );
-   * ```
-   */
-
-  /**
-   * 瀛椾綋鏍峰紡
-   * @command fontfamily
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { String } value 瀛椾綋鏍峰紡
-   * @example
-   * ```javascript
-   * editor.execCommand( 'fontfamily', '寰蒋闆呴粦' );
-   * ```
-   */
-  /**
-   * 杩斿洖閫夊尯瀛椾綋鏍峰紡
-   * @command fontfamily
-   * @method queryCommandValue
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @return { String } 杩斿洖瀛椾綋鏍峰紡
-   * @example
-   * ```javascript
-   * editor.queryCommandValue( 'fontfamily' );
-   * ```
-   */
-
-  /**
-   * 瀛椾綋涓嬪垝绾�,涓庡垹闄ょ嚎浜掓枼
-   * @command underline
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'underline' );
-   * ```
-   */
-
-  /**
-   * 瀛椾綋鍒犻櫎绾�,涓庝笅鍒掔嚎浜掓枼
-   * @command strikethrough
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'strikethrough' );
-   * ```
-   */
-
-  /**
-   * 瀛椾綋杈规
-   * @command fontborder
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'fontborder' );
-   * ```
-   */
-
-  UE.plugins['font'] = function() {
-    var me = this,
-      fonts = {
-        'forecolor': 'color',
-        'backcolor': 'background-color',
-        'fontsize': 'font-size',
-        'fontfamily': 'font-family',
-        'underline': 'text-decoration',
-        'strikethrough': 'text-decoration',
-        'fontborder': 'border'
-      },
-      needCmd = {
-        'underline': 1,
-        'strikethrough': 1,
-        'fontborder': 1
-      },
-      needSetChild = {
-        'forecolor': 'color',
-        'backcolor': 'background-color',
-        'fontsize': 'font-size',
-        'fontfamily': 'font-family'
-
-      };
-    me.setOpt({
-      'fontfamily': [{
-          name: 'songti',
-          val: '瀹嬩綋,SimSun'
-        },
-        {
-          name: 'yahei',
-          val: '寰蒋闆呴粦,Microsoft YaHei'
-        },
-        {
-          name: 'kaiti',
-          val: '妤蜂綋,妤蜂綋_GB2312, SimKai'
-        },
-        {
-          name: 'heiti',
-          val: '榛戜綋, SimHei'
-        },
-        {
-          name: 'lishu',
-          val: '闅朵功, SimLi'
-        },
-        {
-          name: 'andaleMono',
-          val: 'andale mono'
-        },
-        {
-          name: 'arial',
-          val: 'arial, helvetica,sans-serif'
-        },
-        {
-          name: 'arialBlack',
-          val: 'arial black,avant garde'
-        },
-        {
-          name: 'comicSansMs',
-          val: 'comic sans ms'
-        },
-        {
-          name: 'impact',
-          val: 'impact,chicago'
-        },
-        {
-          name: 'timesNewRoman',
-          val: 'times new roman'
-        }
-      ],
-      'fontsize': [10, 11, 12, 14, 16, 18, 20, 24, 36]
-    });
-
-    function mergeWithParent(node) {
-      var parent;
-      while (parent = node.parentNode) {
-        if (parent.tagName == 'SPAN' && domUtils.getChildCount(parent, function(child) {
-            return !domUtils.isBookmarkNode(child) && !domUtils.isBr(child)
-          }) == 1) {
-          parent.style.cssText += node.style.cssText;
-          domUtils.remove(node, true);
-          node = parent;
-
-        } else {
-          break;
-        }
-      }
-
-    }
-
-    function mergeChild(rng, cmdName, value) {
-      if (needSetChild[cmdName]) {
-        rng.adjustmentBoundary();
-        if (!rng.collapsed && rng.startContainer.nodeType == 1) {
-          var start = rng.startContainer.childNodes[rng.startOffset];
-          if (start && domUtils.isTagNode(start, 'span')) {
-            var bk = rng.createBookmark();
-            utils.each(domUtils.getElementsByTagName(start, 'span'), function(span) {
-              if (!span.parentNode || domUtils.isBookmarkNode(span)) return;
-              if (cmdName == 'backcolor' && domUtils.getComputedStyle(span, 'background-color').toLowerCase() ===
-                value) {
-                return;
-              }
-              domUtils.removeStyle(span, needSetChild[cmdName]);
-              if (span.style.cssText.replace(/^\s+$/, '').length == 0) {
-                domUtils.remove(span, true)
-              }
-            });
-            rng.moveToBookmark(bk)
-          }
-        }
-      }
-
-    }
-
-    function mergesibling(rng, cmdName, value) {
-      var collapsed = rng.collapsed,
-        bk = rng.createBookmark(),
-        common;
-      if (collapsed) {
-        common = bk.start.parentNode;
-        while (dtd.$inline[common.tagName]) {
-          common = common.parentNode;
-        }
-      } else {
-        common = domUtils.getCommonAncestor(bk.start, bk.end);
-      }
-      utils.each(domUtils.getElementsByTagName(common, 'span'), function(span) {
-        if (!span.parentNode || domUtils.isBookmarkNode(span)) return;
-        if (/\s*border\s*:\s*none;?\s*/i.test(span.style.cssText)) {
-          if (/^\s*border\s*:\s*none;?\s*$/.test(span.style.cssText)) {
-            domUtils.remove(span, true);
-          } else {
-            domUtils.removeStyle(span, 'border');
-          }
-          return
-        }
-        if (/border/i.test(span.style.cssText) && span.parentNode.tagName == 'SPAN' && /border/i.test(span.parentNode
-            .style.cssText)) {
-          span.style.cssText = span.style.cssText.replace(/border[^:]*:[^;]+;?/gi, '');
-        }
-        if (!(cmdName == 'fontborder' && value == 'none')) {
-          var next = span.nextSibling;
-          while (next && next.nodeType == 1 && next.tagName == 'SPAN') {
-            if (domUtils.isBookmarkNode(next) && cmdName == 'fontborder') {
-              span.appendChild(next);
-              next = span.nextSibling;
-              continue;
-            }
-            if (next.style.cssText == span.style.cssText) {
-              domUtils.moveChild(next, span);
-              domUtils.remove(next);
-            }
-            if (span.nextSibling === next)
-              break;
-            next = span.nextSibling;
-          }
-        }
-
-
-        mergeWithParent(span);
-        if (browser.ie && browser.version > 8) {
-          //鎷疯礉鐖朵翰浠殑鐗瑰埆鐨勫睘鎬�,杩欓噷鍙仛鑳屾櫙棰滆壊鐨勫鐞�
-          var parent = domUtils.findParent(span, function(n) {
-            return n.tagName == 'SPAN' && /background-color/.test(n.style.cssText)
-          });
-          if (parent && !/background-color/.test(span.style.cssText)) {
-            span.style.backgroundColor = parent.style.backgroundColor;
-          }
-        }
-
-      });
-      rng.moveToBookmark(bk);
-      mergeChild(rng, cmdName, value)
-    }
-
-    me.addInputRule(function(root) {
-      utils.each(root.getNodesByTagName('u s del font strike'), function(node) {
-        if (node.tagName == 'font') {
-          var cssStyle = [];
-          for (var p in node.attrs) {
-            switch (p) {
-              case 'size':
-                cssStyle.push('font-size:' +
-                  ({
-                    '1': '10',
-                    '2': '12',
-                    '3': '16',
-                    '4': '18',
-                    '5': '24',
-                    '6': '32',
-                    '7': '48'
-                  } [node.attrs[p]] || node.attrs[p]) + 'px');
-                break;
-              case 'color':
-                cssStyle.push('color:' + node.attrs[p]);
-                break;
-              case 'face':
-                cssStyle.push('font-family:' + node.attrs[p]);
-                break;
-              case 'style':
-                cssStyle.push(node.attrs[p]);
-            }
-          }
-          node.attrs = {
-            'style': cssStyle.join(';')
-          };
-        } else {
-          var val = node.tagName == 'u' ? 'underline' : 'line-through';
-          node.attrs = {
-            'style': (node.getAttr('style') || '') + 'text-decoration:' + val + ';'
-          }
-        }
-        node.tagName = 'span';
-      });
-      //        utils.each(root.getNodesByTagName('span'), function (node) {
-      //            var val;
-      //            if(val = node.getAttr('class')){
-      //                if(/fontstrikethrough/.test(val)){
-      //                    node.setStyle('text-decoration','line-through');
-      //                    if(node.attrs['class']){
-      //                        node.attrs['class'] = node.attrs['class'].replace(/fontstrikethrough/,'');
-      //                    }else{
-      //                        node.setAttr('class')
-      //                    }
-      //                }
-      //                if(/fontborder/.test(val)){
-      //                    node.setStyle('border','1px solid #000');
-      //                    if(node.attrs['class']){
-      //                        node.attrs['class'] = node.attrs['class'].replace(/fontborder/,'');
-      //                    }else{
-      //                        node.setAttr('class')
-      //                    }
-      //                }
-      //            }
-      //        });
-    });
-    //    me.addOutputRule(function(root){
-    //        utils.each(root.getNodesByTagName('span'), function (node) {
-    //            var val;
-    //            if(val = node.getStyle('text-decoration')){
-    //                if(/line-through/.test(val)){
-    //                    if(node.attrs['class']){
-    //                        node.attrs['class'] += ' fontstrikethrough';
-    //                    }else{
-    //                        node.setAttr('class','fontstrikethrough')
-    //                    }
-    //                }
-    //
-    //                node.setStyle('text-decoration')
-    //            }
-    //            if(val = node.getStyle('border')){
-    //                if(/1px/.test(val) && /solid/.test(val)){
-    //                    if(node.attrs['class']){
-    //                        node.attrs['class'] += ' fontborder';
-    //
-    //                    }else{
-    //                        node.setAttr('class','fontborder')
-    //                    }
-    //                }
-    //                node.setStyle('border')
-    //
-    //            }
-    //        });
-    //    });
-    for (var p in fonts) {
-      (function(cmd, style) {
-        UE.commands[cmd] = {
-          execCommand: function(cmdName, value) {
-            value = value || (this.queryCommandState(cmdName) ? 'none' : cmdName == 'underline' ? 'underline' :
-              cmdName == 'fontborder' ? '1px solid #000' :
-              'line-through');
-            var me = this,
-              range = this.selection.getRange(),
-              text;
-
-            if (value == 'default') {
-
-              if (range.collapsed) {
-                text = me.document.createTextNode('font');
-                range.insertNode(text).select();
-
-              }
-              me.execCommand('removeFormat', 'span,a', style);
-              if (text) {
-                range.setStartBefore(text).collapse(true);
-                domUtils.remove(text);
-              }
-              mergesibling(range, cmdName, value);
-              range.select()
-            } else {
-              if (!range.collapsed) {
-                if (needCmd[cmd] && me.queryCommandValue(cmd)) {
-                  me.execCommand('removeFormat', 'span,a', style);
-                }
-                range = me.selection.getRange();
-
-                range.applyInlineStyle('span', {
-                  'style': style + ':' + value
-                });
-                mergesibling(range, cmdName, value);
-                range.select();
-              } else {
-
-                var span = domUtils.findParentByTagName(range.startContainer, 'span', true);
-                text = me.document.createTextNode('font');
-                if (span && !span.children.length && !span[browser.ie ? 'innerText' : 'textContent'].replace(
-                    fillCharReg, '').length) {
-                  //for ie hack when enter
-                  range.insertNode(text);
-                  if (needCmd[cmd]) {
-                    range.selectNode(text).select();
-                    me.execCommand('removeFormat', 'span,a', style, null);
-
-                    span = domUtils.findParentByTagName(text, 'span', true);
-                    range.setStartBefore(text);
-
-                  }
-                  span && (span.style.cssText += ';' + style + ':' + value);
-                  range.collapse(true).select();
-
-
-                } else {
-                  range.insertNode(text);
-                  range.selectNode(text).select();
-                  span = range.document.createElement('span');
-
-                  if (needCmd[cmd]) {
-                    //a鏍囩鍐呯殑涓嶅鐞嗚烦杩�
-                    if (domUtils.findParentByTagName(text, 'a', true)) {
-                      range.setStartBefore(text).setCursor();
-                      domUtils.remove(text);
-                      return;
-                    }
-                    me.execCommand('removeFormat', 'span,a', style);
-                  }
-
-                  span.style.cssText = style + ':' + value;
-
-
-                  text.parentNode.insertBefore(span, text);
-                  //淇锛宻pan濂梥pan 浣嗘牱寮忎笉缁ф壙鐨勯棶棰�
-                  if (!browser.ie || browser.ie && browser.version == 9) {
-                    var spanParent = span.parentNode;
-                    while (!domUtils.isBlockElm(spanParent)) {
-                      if (spanParent.tagName == 'SPAN') {
-                        //opera鍚堝苟style涓嶄細鍔犲叆";"
-                        span.style.cssText = spanParent.style.cssText + ";" + span.style.cssText;
-                      }
-                      spanParent = spanParent.parentNode;
-                    }
-                  }
-
-
-                  if (opera) {
-                    setTimeout(function() {
-                      range.setStart(span, 0).collapse(true);
-                      mergesibling(range, cmdName, value);
-                      range.select();
-                    });
-                  } else {
-                    range.setStart(span, 0).collapse(true);
-                    mergesibling(range, cmdName, value);
-                    range.select();
-                  }
-
-                  //trace:981
-                  //domUtils.mergeToParent(span)
-                }
-                domUtils.remove(text);
-              }
-
-
-            }
-            return true;
-          },
-          queryCommandValue: function(cmdName) {
-            var startNode = this.selection.getStart();
-
-            //trace:946
-            if (cmdName == 'underline' || cmdName == 'strikethrough') {
-              var tmpNode = startNode,
-                value;
-              while (tmpNode && !domUtils.isBlockElm(tmpNode) && !domUtils.isBody(tmpNode)) {
-                if (tmpNode.nodeType == 1) {
-                  value = domUtils.getComputedStyle(tmpNode, style);
-                  if (value != 'none') {
-                    return value;
-                  }
-                }
-
-                tmpNode = tmpNode.parentNode;
-              }
-              return 'none';
-            }
-            if (cmdName == 'fontborder') {
-              var tmp = startNode,
-                val;
-              while (tmp && dtd.$inline[tmp.tagName]) {
-                if (val = domUtils.getComputedStyle(tmp, 'border')) {
-
-                  if (/1px/.test(val) && /solid/.test(val)) {
-                    return val;
-                  }
-                }
-                tmp = tmp.parentNode;
-              }
-              return ''
-            }
-
-            if (cmdName == 'FontSize') {
-              var styleVal = domUtils.getComputedStyle(startNode, style),
-                tmp = /^([\d\.]+)(\w+)$/.exec(styleVal);
-
-              if (tmp) {
-
-                return Math.floor(tmp[1]) + tmp[2];
-
-              }
-
-              return styleVal;
-
-            }
-
-            return domUtils.getComputedStyle(startNode, style);
-          },
-          queryCommandState: function(cmdName) {
-            if (!needCmd[cmdName])
-              return 0;
-            var val = this.queryCommandValue(cmdName);
-            if (cmdName == 'fontborder') {
-              return /1px/.test(val) && /solid/.test(val)
-            } else {
-              return cmdName == 'underline' ? /underline/.test(val) : /line\-through/.test(val);
-
-            }
-
-          }
-        };
-      })(p, fonts[p]);
-    }
-  };
-
-  // plugins/link.js
-  /**
-   * 瓒呴摼鎺�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎻掑叆瓒呴摼鎺�
-   * @command link
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { Object } options   璁剧疆鑷畾涔夊睘鎬э紝渚嬪锛歶rl銆乼itle銆乼arget
-   * @example
-   * ```javascript
-   * editor.execCommand( 'link', '{
-   *     url:'ueditor.baidu.com',
-   *     title:'ueditor',
-   *     target:'_blank'
-   * }' );
-   * ```
-   */
-  /**
-   * 杩斿洖褰撳墠閫変腑鐨勭涓�涓秴閾炬帴鑺傜偣
-   * @command link
-   * @method queryCommandValue
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @return { Element } 瓒呴摼鎺ヨ妭鐐�
-   * @example
-   * ```javascript
-   * editor.queryCommandValue( 'link' );
-   * ```
-   */
-
-  /**
-   * 鍙栨秷瓒呴摼鎺�
-   * @command unlink
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'unlink');
-   * ```
-   */
-
-  UE.plugins['link'] = function() {
-    function optimize(range) {
-      var start = range.startContainer,
-        end = range.endContainer;
-
-      if (start = domUtils.findParentByTagName(start, 'a', true)) {
-        range.setStartBefore(start);
-      }
-      if (end = domUtils.findParentByTagName(end, 'a', true)) {
-        range.setEndAfter(end);
-      }
-    }
-
-
-    UE.commands['unlink'] = {
-      execCommand: function() {
-        var range = this.selection.getRange(),
-          bookmark;
-        if (range.collapsed && !domUtils.findParentByTagName(range.startContainer, 'a', true)) {
-          return;
-        }
-        bookmark = range.createBookmark();
-        optimize(range);
-        range.removeInlineStyle('a').moveToBookmark(bookmark).select();
-      },
-      queryCommandState: function() {
-        return !this.highlight && this.queryCommandValue('link') ? 0 : -1;
-      }
-
-    };
-
-    function doLink(range, opt, me) {
-      var rngClone = range.cloneRange(),
-        link = me.queryCommandValue('link');
-      optimize(range = range.adjustmentBoundary());
-      var start = range.startContainer;
-      if (start.nodeType == 1 && link) {
-        start = start.childNodes[range.startOffset];
-        if (start && start.nodeType == 1 && start.tagName == 'A' && /^(?:https?|ftp|file)\s*:\s*\/\//.test(start[
-            browser.ie ? 'innerText' : 'textContent'])) {
-          start[browser.ie ? 'innerText' : 'textContent'] = utils.html(opt.textValue || opt.href);
-
-        }
-      }
-      if (!rngClone.collapsed || link) {
-        range.removeInlineStyle('a');
-        rngClone = range.cloneRange();
-      }
-
-      if (rngClone.collapsed) {
-        var a = range.document.createElement('a'),
-          text = '';
-        if (opt.textValue) {
-
-          text = utils.html(opt.textValue);
-          delete opt.textValue;
-        } else {
-          text = utils.html(opt.href);
-
-        }
-        domUtils.setAttributes(a, opt);
-        start = domUtils.findParentByTagName(rngClone.startContainer, 'a', true);
-        if (start && domUtils.isInNodeEndBoundary(rngClone, start)) {
-          range.setStartAfter(start).collapse(true);
-
-        }
-        a[browser.ie ? 'innerText' : 'textContent'] = text;
-        range.insertNode(a).selectNode(a);
-      } else {
-        range.applyInlineStyle('a', opt);
-
-      }
-    }
-    UE.commands['link'] = {
-      execCommand: function(cmdName, opt) {
-        var range;
-        opt._href && (opt._href = utils.unhtml(opt._href, /[<">]/g));
-        opt.href && (opt.href = utils.unhtml(opt.href, /[<">]/g));
-        opt.textValue && (opt.textValue = utils.unhtml(opt.textValue, /[<">]/g));
-        doLink(range = this.selection.getRange(), opt, this);
-        //闂悎閮戒笉鍔犲崰浣嶇锛屽鏋滃姞浜嗕細鍦╝鍚庤竟澶氫釜鍗犱綅绗﹁妭鐐癸紝瀵艰嚧a鏄浘鐗囪儗鏅粍鎴愮殑鍒楄〃锛屽嚭鐜扮┖鐧介棶棰�
-        range.collapse().select(true);
-
-      },
-      queryCommandValue: function() {
-        var range = this.selection.getRange(),
-          node;
-        if (range.collapsed) {
-          //                    node = this.selection.getStart();
-          //鍦╥e涓媑etstart()鍙栧�煎亸涓婁簡
-          node = range.startContainer;
-          node = node.nodeType == 1 ? node : node.parentNode;
-
-          if (node && (node = domUtils.findParentByTagName(node, 'a', true)) && !domUtils.isInNodeEndBoundary(
-              range, node)) {
-
-            return node;
-          }
-        } else {
-          //trace:1111  濡傛灉鏄�<p><a>xx</a></p> startContainer鏄痯灏变細鎵句笉鍒癮
-          range.shrinkBoundary();
-          var start = range.startContainer.nodeType == 3 || !range.startContainer.childNodes[range.startOffset] ?
-            range.startContainer : range.startContainer.childNodes[range.startOffset],
-            end = range.endContainer.nodeType == 3 || range.endOffset == 0 ? range.endContainer : range.endContainer
-            .childNodes[range.endOffset - 1],
-            common = range.getCommonAncestor();
-          node = domUtils.findParentByTagName(common, 'a', true);
-          if (!node && common.nodeType == 1) {
-
-            var as = common.getElementsByTagName('a'),
-              ps, pe;
-
-            for (var i = 0, ci; ci = as[i++];) {
-              ps = domUtils.getPosition(ci, start), pe = domUtils.getPosition(ci, end);
-              if ((ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS) &&
-                (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS)
-              ) {
-                node = ci;
-                break;
-              }
-            }
-          }
-          return node;
-        }
-
-      },
-      queryCommandState: function() {
-        //鍒ゆ柇濡傛灉鏄棰戠殑璇濊繛鎺ヤ笉鍙敤
-        //fix 853
-        var img = this.selection.getRange().getClosedNode(),
-          flag = img && (img.className == "edui-faked-video" || img.className.indexOf("edui-upload-video") != -
-            1);
-        return flag ? -1 : 0;
-      }
-    };
-  };
-
-  // plugins/iframe.js
-  ///import core
-  ///import plugins\inserthtml.js
-  ///commands 鎻掑叆妗嗘灦
-  ///commandsName  InsertFrame
-  ///commandsTitle  鎻掑叆Iframe
-  ///commandsDialog  dialogs\insertframe
-
-  UE.plugins['insertframe'] = function() {
-    var me = this;
-
-    function deleteIframe() {
-      me._iframe && delete me._iframe;
-    }
-
-    me.addListener("selectionchange", function() {
-      deleteIframe();
-    });
-
-  };
-
-
-
-  // plugins/scrawl.js
-  ///import core
-  ///commands 娑傞甫
-  ///commandsName  Scrawl
-  ///commandsTitle  娑傞甫
-  ///commandsDialog  dialogs\scrawl
-  UE.commands['scrawl'] = {
-    queryCommandState: function() {
-      return (browser.ie && browser.version <= 8) ? -1 : 0;
-    }
-  };
-
-
-  // plugins/removeformat.js
-  /**
-   * 娓呴櫎鏍煎紡
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 娓呴櫎鏂囧瓧鏍峰紡
-   * @command removeformat
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param   {String}   tags     浠ラ�楀彿闅斿紑鐨勬爣绛俱�傚锛歴trong
-   * @param   {String}   style    鏍峰紡濡傦細color
-   * @param   {String}   attrs    灞炴�у:width
-   * @example
-   * ```javascript
-   * editor.execCommand( 'removeformat', 'strong','color','width' );
-   * ```
-   */
-
-  UE.plugins['removeformat'] = function() {
-    var me = this;
-    me.setOpt({
-      'removeFormatTags': 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var',
-      'removeFormatAttributes': 'class,style,lang,width,height,align,hspace,valign'
-    });
-    me.commands['removeformat'] = {
-      execCommand: function(cmdName, tags, style, attrs, notIncludeA) {
-
-        var tagReg = new RegExp('^(?:' + (tags || this.options.removeFormatTags).replace(/,/g, '|') + ')$', 'i'),
-          removeFormatAttributes = style ? [] : (attrs || this.options.removeFormatAttributes).split(','),
-          range = new dom.Range(this.document),
-          bookmark, node, parent,
-          filter = function(node) {
-            return node.nodeType == 1;
-          };
-
-        function isRedundantSpan(node) {
-          if (node.nodeType == 3 || node.tagName.toLowerCase() != 'span') {
-            return 0;
-          }
-          if (browser.ie) {
-            //ie 涓嬪垽鏂疄鏁堬紝鎵�浠ュ彧鑳界畝鍗曠敤style鏉ュ垽鏂�
-            //return node.style.cssText == '' ? 1 : 0;
-            var attrs = node.attributes;
-            if (attrs.length) {
-              for (var i = 0, l = attrs.length; i < l; i++) {
-                if (attrs[i].specified) {
-                  return 0;
-                }
-              }
-              return 1;
-            }
-          }
-          return !node.attributes.length;
-        }
-
-        function doRemove(range) {
-
-          var bookmark1 = range.createBookmark();
-          if (range.collapsed) {
-            range.enlarge(true);
-          }
-
-          //涓嶈兘鎶奱鏍囩鍒囦簡
-          if (!notIncludeA) {
-            var aNode = domUtils.findParentByTagName(range.startContainer, 'a', true);
-            if (aNode) {
-              range.setStartBefore(aNode);
-            }
-
-            aNode = domUtils.findParentByTagName(range.endContainer, 'a', true);
-            if (aNode) {
-              range.setEndAfter(aNode);
-            }
-
-          }
-
-
-          bookmark = range.createBookmark();
-
-          node = bookmark.start;
-
-          //鍒囧紑濮�
-          while ((parent = node.parentNode) && !domUtils.isBlockElm(parent)) {
-            domUtils.breakParent(node, parent);
-
-            domUtils.clearEmptySibling(node);
-          }
-          if (bookmark.end) {
-            //鍒囩粨鏉�
-            node = bookmark.end;
-            while ((parent = node.parentNode) && !domUtils.isBlockElm(parent)) {
-              domUtils.breakParent(node, parent);
-              domUtils.clearEmptySibling(node);
-            }
-
-            //寮�濮嬪幓闄ゆ牱寮�
-            var current = domUtils.getNextDomNode(bookmark.start, false, filter),
-              next;
-            while (current) {
-              if (current == bookmark.end) {
-                break;
-              }
-
-              next = domUtils.getNextDomNode(current, true, filter);
-
-              if (!dtd.$empty[current.tagName.toLowerCase()] && !domUtils.isBookmarkNode(current)) {
-                if (tagReg.test(current.tagName)) {
-                  if (style) {
-                    domUtils.removeStyle(current, style);
-                    if (isRedundantSpan(current) && style != 'text-decoration') {
-                      domUtils.remove(current, true);
-                    }
-                  } else {
-                    domUtils.remove(current, true);
-                  }
-                } else {
-                  //trace:939  涓嶈兘鎶妉ist涓婄殑鏍峰紡鍘绘帀
-                  if (!dtd.$tableContent[current.tagName] && !dtd.$list[current.tagName]) {
-                    domUtils.removeAttributes(current, removeFormatAttributes);
-                    if (isRedundantSpan(current)) {
-                      domUtils.remove(current, true);
-                    }
-                  }
-
-                }
-              }
-              current = next;
-            }
-          }
-          //trace:1035
-          //trace:1096 涓嶈兘鎶妕d涓婄殑鏍峰紡鍘绘帀锛屾瘮濡傝竟妗�
-          var pN = bookmark.start.parentNode;
-          if (domUtils.isBlockElm(pN) && !dtd.$tableContent[pN.tagName] && !dtd.$list[pN.tagName]) {
-            domUtils.removeAttributes(pN, removeFormatAttributes);
-          }
-          pN = bookmark.end.parentNode;
-          if (bookmark.end && domUtils.isBlockElm(pN) && !dtd.$tableContent[pN.tagName] && !dtd.$list[pN.tagName]) {
-            domUtils.removeAttributes(pN, removeFormatAttributes);
-          }
-          range.moveToBookmark(bookmark).moveToBookmark(bookmark1);
-          //娓呴櫎鍐椾綑鐨勪唬鐮� <b><bookmark></b>
-          var node = range.startContainer,
-            tmp,
-            collapsed = range.collapsed;
-          while (node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]) {
-            tmp = node.parentNode;
-            range.setStartBefore(node);
-            //trace:937
-            //鏇存柊缁撴潫杈圭晫
-            if (range.startContainer === range.endContainer) {
-              range.endOffset--;
-            }
-            domUtils.remove(node);
-            node = tmp;
-          }
-
-          if (!collapsed) {
-            node = range.endContainer;
-            while (node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]) {
-              tmp = node.parentNode;
-              range.setEndBefore(node);
-              domUtils.remove(node);
-
-              node = tmp;
-            }
-
-
-          }
-        }
-
-
-
-        range = this.selection.getRange();
-        doRemove(range);
-        range.select();
-
-      }
-
-    };
-
-  };
-
-
-  // plugins/blockquote.js
-  /**
-   * 娣诲姞寮曠敤
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 娣诲姞寮曠敤
-   * @command blockquote
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'blockquote' );
-   * ```
-   */
-
-  /**
-   * 娣诲姞寮曠敤
-   * @command blockquote
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { Object } attrs 鑺傜偣灞炴��
-   * @example
-   * ```javascript
-   * editor.execCommand( 'blockquote',{
-   *     style: "color: red;"
-   * } );
-   * ```
-   */
-
-
-  UE.plugins['blockquote'] = function() {
-    var me = this;
-
-    function getObj(editor) {
-      return domUtils.filterNodeList(editor.selection.getStartElementPath(), 'blockquote');
-    }
-    me.commands['blockquote'] = {
-      execCommand: function(cmdName, attrs) {
-        var range = this.selection.getRange(),
-          obj = getObj(this),
-          blockquote = dtd.blockquote,
-          bookmark = range.createBookmark();
-
-        if (obj) {
-
-          var start = range.startContainer,
-            startBlock = domUtils.isBlockElm(start) ? start : domUtils.findParent(start, function(node) {
-              return domUtils.isBlockElm(node)
-            }),
-
-            end = range.endContainer,
-            endBlock = domUtils.isBlockElm(end) ? end : domUtils.findParent(end, function(node) {
-              return domUtils.isBlockElm(node)
-            });
-
-          //澶勭悊涓�涓媗i
-          startBlock = domUtils.findParentByTagName(startBlock, 'li', true) || startBlock;
-          endBlock = domUtils.findParentByTagName(endBlock, 'li', true) || endBlock;
-
-
-          if (startBlock.tagName == 'LI' || startBlock.tagName == 'TD' || startBlock === obj || domUtils.isBody(
-              startBlock)) {
-            domUtils.remove(obj, true);
-          } else {
-            domUtils.breakParent(startBlock, obj);
-          }
-
-          if (startBlock !== endBlock) {
-            obj = domUtils.findParentByTagName(endBlock, 'blockquote');
-            if (obj) {
-              if (endBlock.tagName == 'LI' || endBlock.tagName == 'TD' || domUtils.isBody(endBlock)) {
-                obj.parentNode && domUtils.remove(obj, true);
-              } else {
-                domUtils.breakParent(endBlock, obj);
-              }
-
-            }
-          }
-
-          var blockquotes = domUtils.getElementsByTagName(this.document, 'blockquote');
-          for (var i = 0, bi; bi = blockquotes[i++];) {
-            if (!bi.childNodes.length) {
-              domUtils.remove(bi);
-            } else if (domUtils.getPosition(bi, startBlock) & domUtils.POSITION_FOLLOWING && domUtils.getPosition(
-                bi, endBlock) & domUtils.POSITION_PRECEDING) {
-              domUtils.remove(bi, true);
-            }
-          }
-
-
-
-
-        } else {
-
-          var tmpRange = range.cloneRange(),
-            node = tmpRange.startContainer.nodeType == 1 ? tmpRange.startContainer : tmpRange.startContainer.parentNode,
-            preNode = node,
-            doEnd = 1;
-
-          //璋冩暣寮�濮�
-          while (1) {
-            if (domUtils.isBody(node)) {
-              if (preNode !== node) {
-                if (range.collapsed) {
-                  tmpRange.selectNode(preNode);
-                  doEnd = 0;
-                } else {
-                  tmpRange.setStartBefore(preNode);
-                }
-              } else {
-                tmpRange.setStart(node, 0);
-              }
-
-              break;
-            }
-            if (!blockquote[node.tagName]) {
-              if (range.collapsed) {
-                tmpRange.selectNode(preNode);
-              } else {
-                tmpRange.setStartBefore(preNode);
-              }
-              break;
-            }
-
-            preNode = node;
-            node = node.parentNode;
-          }
-
-          //璋冩暣缁撴潫
-          if (doEnd) {
-            preNode = node = node = tmpRange.endContainer.nodeType == 1 ? tmpRange.endContainer : tmpRange.endContainer
-              .parentNode;
-            while (1) {
-
-              if (domUtils.isBody(node)) {
-                if (preNode !== node) {
-
-                  tmpRange.setEndAfter(preNode);
-
-                } else {
-                  tmpRange.setEnd(node, node.childNodes.length);
-                }
-
-                break;
-              }
-              if (!blockquote[node.tagName]) {
-                tmpRange.setEndAfter(preNode);
-                break;
-              }
-
-              preNode = node;
-              node = node.parentNode;
-            }
-
-          }
-
-
-          node = range.document.createElement('blockquote');
-          domUtils.setAttributes(node, attrs);
-          node.appendChild(tmpRange.extractContents());
-          tmpRange.insertNode(node);
-          //鍘婚櫎閲嶅鐨�
-          var childs = domUtils.getElementsByTagName(node, 'blockquote');
-          for (var i = 0, ci; ci = childs[i++];) {
-            if (ci.parentNode) {
-              domUtils.remove(ci, true);
-            }
-          }
-
-        }
-        range.moveToBookmark(bookmark).select();
-      },
-      queryCommandState: function() {
-        return getObj(this) ? 1 : 0;
-      }
-    };
-  };
-
-
-
-  // plugins/convertcase.js
-  /**
-   * 澶у皬鍐欒浆鎹�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎶婇�夊尯鍐呮枃鏈彉澶у啓锛屼笌鈥渢olowercase鈥濆懡浠や簰鏂�
-   * @command touppercase
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'touppercase' );
-   * ```
-   */
-
-  /**
-   * 鎶婇�夊尯鍐呮枃鏈彉灏忓啓锛屼笌鈥渢ouppercase鈥濆懡浠や簰鏂�
-   * @command tolowercase
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'tolowercase' );
-   * ```
-   */
-  UE.commands['touppercase'] =
-    UE.commands['tolowercase'] = {
-      execCommand: function(cmd) {
-        var me = this;
-        var rng = me.selection.getRange();
-        if (rng.collapsed) {
-          return rng;
-        }
-        var bk = rng.createBookmark(),
-          bkEnd = bk.end,
-          filterFn = function(node) {
-            return !domUtils.isBr(node) && !domUtils.isWhitespace(node);
-          },
-          curNode = domUtils.getNextDomNode(bk.start, false, filterFn);
-        while (curNode && (domUtils.getPosition(curNode, bkEnd) & domUtils.POSITION_PRECEDING)) {
-
-          if (curNode.nodeType == 3) {
-            curNode.nodeValue = curNode.nodeValue[cmd == 'touppercase' ? 'toUpperCase' : 'toLowerCase']();
-          }
-          curNode = domUtils.getNextDomNode(curNode, true, filterFn);
-          if (curNode === bkEnd) {
-            break;
-          }
-
-        }
-        rng.moveToBookmark(bk).select();
-      }
-    };
-
-
-
-  // plugins/indent.js
-  /**
-   * 棣栬缂╄繘
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 缂╄繘
-   * @command indent
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'indent' );
-   * ```
-   */
-  UE.commands['indent'] = {
-    execCommand: function() {
-      var me = this,
-        value = me.queryCommandState("indent") ? "0em" : (me.options.indentValue || '2em');
-      me.execCommand('Paragraph', 'p', {
-        style: 'text-indent:' + value
-      });
-    },
-    queryCommandState: function() {
-      var pN = domUtils.filterNodeList(this.selection.getStartElementPath(), 'p h1 h2 h3 h4 h5 h6');
-      return pN && pN.style.textIndent && parseInt(pN.style.textIndent) ? 1 : 0;
-    }
-
-  };
-
-
-  // plugins/print.js
-  /**
-   * 鎵撳嵃
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎵撳嵃
-   * @command print
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'print' );
-   * ```
-   */
-  UE.commands['print'] = {
-    execCommand: function() {
-      this.window.print();
-    },
-    notNeedUndo: 1
-  };
-
-
-
-  // plugins/preview.js
-  /**
-   * 棰勮
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 棰勮
-   * @command preview
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'preview' );
-   * ```
-   */
-  UE.commands['preview'] = {
-    execCommand: function() {
-      var w = window.open('', '_blank', ''),
-        d = w.document;
-      d.open();
-      d.write('<!DOCTYPE html><html><head><meta charset="utf-8"/><script src="' + this.options.UEDITOR_HOME_URL +
-        'ueditor.parse.js"></script><script>' +
-        "setTimeout(function(){uParse('div',{rootPath: '" + this.options.UEDITOR_HOME_URL + "'})},300)" +
-        '</script></head><body><div>' + this.getContent(null, null, true) + '</div></body></html>');
-      d.close();
-    },
-    notNeedUndo: 1
-  };
-
-
-  // plugins/selectall.js
-  /**
-   * 鍏ㄩ��
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 閫変腑鎵�鏈夊唴瀹�
-   * @command selectall
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'selectall' );
-   * ```
-   */
-  UE.plugins['selectall'] = function() {
-    var me = this;
-    me.commands['selectall'] = {
-      execCommand: function() {
-        //鍘绘帀浜嗗師鐢熺殑selectAll,鍥犱负浼氬嚭鐜版姤閿欏拰褰撳唴瀹逛负绌烘椂锛屼笉鑳藉嚭鐜伴棴鍚堢姸鎬佺殑鍏夋爣
-        var me = this,
-          body = me.body,
-          range = me.selection.getRange();
-        range.selectNodeContents(body);
-        if (domUtils.isEmptyBlock(body)) {
-          //opera涓嶈兘鑷姩鍚堝苟鍒板厓绱犵殑閲岃竟锛岃鎵嬪姩澶勭悊涓�涓�
-          if (browser.opera && body.firstChild && body.firstChild.nodeType == 1) {
-            range.setStartAtFirst(body.firstChild);
-          }
-          range.collapse(true);
-        }
-        range.select(true);
-      },
-      notNeedUndo: 1
-    };
-
-
-    //蹇嵎閿�
-    me.addshortcutkey({
-      "selectAll": "ctrl+65"
-    });
-  };
-
-
-  // plugins/paragraph.js
-  /**
-   * 娈佃惤鏍峰紡
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 娈佃惤鏍煎紡
-   * @command paragraph
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param {String}   style               鏍囩鍊间负锛�'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'
-   * @param {Object}   attrs               鏍囩鐨勫睘鎬�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'Paragraph','h1','{
-   *     class:'test'
-   * }' );
-   * ```
-   */
-
-  /**
-   * 杩斿洖閫夊尯鍐呰妭鐐规爣绛惧悕
-   * @command paragraph
-   * @method queryCommandValue
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @return { String } 鑺傜偣鏍囩鍚�
-   * @example
-   * ```javascript
-   * editor.queryCommandValue( 'Paragraph' );
-   * ```
-   */
-
-  UE.plugins['paragraph'] = function() {
-    var me = this,
-      block = domUtils.isBlockElm,
-      notExchange = ['TD', 'LI', 'PRE'],
-
-      doParagraph = function(range, style, attrs, sourceCmdName) {
-        var bookmark = range.createBookmark(),
-          filterFn = function(node) {
-            return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !
-              domUtils.isWhitespace(node);
-          },
-          para;
-
-        range.enlarge(true);
-        var bookmark2 = range.createBookmark(),
-          current = domUtils.getNextDomNode(bookmark2.start, false, filterFn),
-          tmpRange = range.cloneRange(),
-          tmpNode;
-        while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) {
-          if (current.nodeType == 3 || !block(current)) {
-            tmpRange.setStartBefore(current);
-            while (current && current !== bookmark2.end && !block(current)) {
-              tmpNode = current;
-              current = domUtils.getNextDomNode(current, false, null, function(node) {
-                return !block(node);
-              });
-            }
-            tmpRange.setEndAfter(tmpNode);
-
-            para = range.document.createElement(style);
-            if (attrs) {
-              domUtils.setAttributes(para, attrs);
-              if (sourceCmdName && sourceCmdName == 'customstyle' && attrs.style) {
-                para.style.cssText = attrs.style;
-              }
-            }
-            para.appendChild(tmpRange.extractContents());
-            //闇�瑕佸唴瀹瑰崰浣�
-            if (domUtils.isEmptyNode(para)) {
-              domUtils.fillChar(range.document, para);
-
-            }
-
-            tmpRange.insertNode(para);
-
-            var parent = para.parentNode;
-            //濡傛灉para涓婁竴绾ф槸涓�涓猙lock鍏冪礌涓斾笉鏄痓ody,td灏卞垹闄ゅ畠
-            if (block(parent) && !domUtils.isBody(para.parentNode) && utils.indexOf(notExchange, parent.tagName) ==
-              -1) {
-              //瀛樺偍dir,style
-              if (!(sourceCmdName && sourceCmdName == 'customstyle')) {
-                parent.getAttribute('dir') && para.setAttribute('dir', parent.getAttribute('dir'));
-                //trace:1070
-                parent.style.cssText && (para.style.cssText = parent.style.cssText + ';' + para.style.cssText);
-                //trace:1030
-                parent.style.textAlign && !para.style.textAlign && (para.style.textAlign = parent.style.textAlign);
-                parent.style.textIndent && !para.style.textIndent && (para.style.textIndent = parent.style.textIndent);
-                parent.style.padding && !para.style.padding && (para.style.padding = parent.style.padding);
-              }
-
-              //trace:1706 閫夋嫨鐨勫氨鏄痟1-6瑕佸垹闄�
-              if (attrs && /h\d/i.test(parent.tagName) && !/h\d/i.test(para.tagName)) {
-                domUtils.setAttributes(parent, attrs);
-                if (sourceCmdName && sourceCmdName == 'customstyle' && attrs.style) {
-                  parent.style.cssText = attrs.style;
-                }
-                domUtils.remove(para, true);
-                para = parent;
-              } else {
-                domUtils.remove(para.parentNode, true);
-              }
-
-            }
-            if (utils.indexOf(notExchange, parent.tagName) != -1) {
-              current = parent;
-            } else {
-              current = para;
-            }
-
-
-            current = domUtils.getNextDomNode(current, false, filterFn);
-          } else {
-            current = domUtils.getNextDomNode(current, true, filterFn);
-          }
-        }
-        return range.moveToBookmark(bookmark2).moveToBookmark(bookmark);
-      };
-    me.setOpt('paragraph', {
-      'p': '',
-      'h1': '',
-      'h2': '',
-      'h3': '',
-      'h4': '',
-      'h5': '',
-      'h6': ''
-    });
-    me.commands['paragraph'] = {
-      execCommand: function(cmdName, style, attrs, sourceCmdName) {
-        var range = this.selection.getRange();
-        //闂悎鏃跺崟鐙鐞�
-        if (range.collapsed) {
-          var txt = this.document.createTextNode('p');
-          range.insertNode(txt);
-          //鍘绘帀鍐椾綑鐨刦illchar
-          if (browser.ie) {
-            var node = txt.previousSibling;
-            if (node && domUtils.isWhitespace(node)) {
-              domUtils.remove(node);
-            }
-            node = txt.nextSibling;
-            if (node && domUtils.isWhitespace(node)) {
-              domUtils.remove(node);
-            }
-          }
-
-        }
-        range = doParagraph(range, style, attrs, sourceCmdName);
-        if (txt) {
-          range.setStartBefore(txt).collapse(true);
-          pN = txt.parentNode;
-
-          domUtils.remove(txt);
-
-          if (domUtils.isBlockElm(pN) && domUtils.isEmptyNode(pN)) {
-            domUtils.fillNode(this.document, pN);
-          }
-
-        }
-
-        if (browser.gecko && range.collapsed && range.startContainer.nodeType == 1) {
-          var child = range.startContainer.childNodes[range.startOffset];
-          if (child && child.nodeType == 1 && child.tagName.toLowerCase() == style) {
-            range.setStart(child, 0).collapse(true);
-          }
-        }
-        //trace:1097 鍘熸潵鏈塼rue锛屽師鍥犲繕浜嗭紝浣嗗幓浜嗗氨涓嶈兘娓呴櫎澶氫綑鐨勫崰浣嶇浜�
-        range.select();
-
-
-        return true;
-      },
-      queryCommandValue: function() {
-        var node = domUtils.filterNodeList(this.selection.getStartElementPath(), 'p h1 h2 h3 h4 h5 h6');
-        return node ? node.tagName.toLowerCase() : '';
-      }
-    };
-  };
-
-
-  // plugins/directionality.js
-  /**
-   * 璁剧疆鏂囧瓧杈撳叆鐨勬柟鍚戠殑鎻掍欢
-   * @file
-   * @since 1.2.6.1
-   */
-  (function() {
-    var block = domUtils.isBlockElm,
-      getObj = function(editor) {
-        //            var startNode = editor.selection.getStart(),
-        //                parents;
-        //            if ( startNode ) {
-        //                //鏌ユ壘鎵�鏈夌殑鏄痓lock鐨勭埗浜茶妭鐐�
-        //                parents = domUtils.findParents( startNode, true, block, true );
-        //                for ( var i = 0,ci; ci = parents[i++]; ) {
-        //                    if ( ci.getAttribute( 'dir' ) ) {
-        //                        return ci;
-        //                    }
-        //                }
-        //            }
-        return domUtils.filterNodeList(editor.selection.getStartElementPath(), function(n) {
-          return n && n.nodeType == 1 && n.getAttribute('dir')
-        });
-
-      },
-      doDirectionality = function(range, editor, forward) {
-
-        var bookmark,
-          filterFn = function(node) {
-            return node.nodeType == 1 ? !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node);
-          },
-
-          obj = getObj(editor);
-
-        if (obj && range.collapsed) {
-          obj.setAttribute('dir', forward);
-          return range;
-        }
-        bookmark = range.createBookmark();
-        range.enlarge(true);
-        var bookmark2 = range.createBookmark(),
-          current = domUtils.getNextDomNode(bookmark2.start, false, filterFn),
-          tmpRange = range.cloneRange(),
-          tmpNode;
-        while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) {
-          if (current.nodeType == 3 || !block(current)) {
-            tmpRange.setStartBefore(current);
-            while (current && current !== bookmark2.end && !block(current)) {
-              tmpNode = current;
-              current = domUtils.getNextDomNode(current, false, null, function(node) {
-                return !block(node);
-              });
-            }
-            tmpRange.setEndAfter(tmpNode);
-            var common = tmpRange.getCommonAncestor();
-            if (!domUtils.isBody(common) && block(common)) {
-              //閬嶅巻鍒颁簡block鑺傜偣
-              common.setAttribute('dir', forward);
-              current = common;
-            } else {
-              //娌℃湁閬嶅巻鍒帮紝娣诲姞涓�涓猙lock鑺傜偣
-              var p = range.document.createElement('p');
-              p.setAttribute('dir', forward);
-              var frag = tmpRange.extractContents();
-              p.appendChild(frag);
-              tmpRange.insertNode(p);
-              current = p;
-            }
-
-            current = domUtils.getNextDomNode(current, false, filterFn);
-          } else {
-            current = domUtils.getNextDomNode(current, true, filterFn);
-          }
-        }
-        return range.moveToBookmark(bookmark2).moveToBookmark(bookmark);
-      };
-
-    /**
-     * 鏂囧瓧杈撳叆鏂瑰悜
-     * @command directionality
-     * @method execCommand
-     * @param { String } cmdName 鍛戒护瀛楃涓�
-     * @param { String } forward 浼犲叆'ltr'琛ㄧず浠庡乏鍚戝彸杈撳叆锛屼紶鍏�'rtl'琛ㄧず浠庡彸鍚戝乏杈撳叆
-     * @example
-     * ```javascript
-     * editor.execCommand( 'directionality', 'ltr');
-     * ```
-     */
-
-    /**
-     * 鏌ヨ褰撳墠閫夊尯鐨勬枃瀛楄緭鍏ユ柟鍚�
-     * @command directionality
-     * @method queryCommandValue
-     * @param { String } cmdName 鍛戒护瀛楃涓�
-     * @return { String } 杩斿洖'ltr'琛ㄧず浠庡乏鍚戝彸杈撳叆锛岃繑鍥�'rtl'琛ㄧず浠庡彸鍚戝乏杈撳叆
-     * @example
-     * ```javascript
-     * editor.queryCommandValue( 'directionality');
-     * ```
-     */
-    UE.commands['directionality'] = {
-      execCommand: function(cmdName, forward) {
-        var range = this.selection.getRange();
-        //闂悎鏃跺崟鐙鐞�
-        if (range.collapsed) {
-          var txt = this.document.createTextNode('d');
-          range.insertNode(txt);
-        }
-        doDirectionality(range, this, forward);
-        if (txt) {
-          range.setStartBefore(txt).collapse(true);
-          domUtils.remove(txt);
-        }
-
-        range.select();
-        return true;
-      },
-      queryCommandValue: function() {
-        var node = getObj(this);
-        return node ? node.getAttribute('dir') : 'ltr';
-      }
-    };
-  })();
-
-
-
-  // plugins/horizontal.js
-  /**
-   * 鎻掑叆鍒嗗壊绾挎彃浠�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎻掑叆鍒嗗壊绾�
-   * @command horizontal
-   * @method execCommand
-   * @param { String } cmdName 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'horizontal' );
-   * ```
-   */
-  UE.plugins['horizontal'] = function() {
-    var me = this;
-    me.commands['horizontal'] = {
-      execCommand: function(cmdName) {
-        var me = this;
-        if (me.queryCommandState(cmdName) !== -1) {
-          me.execCommand('insertHtml', '<hr>');
-          var range = me.selection.getRange(),
-            start = range.startContainer;
-          if (start.nodeType == 1 && !start.childNodes[range.startOffset]) {
-
-            var tmp;
-            if (tmp = start.childNodes[range.startOffset - 1]) {
-              if (tmp.nodeType == 1 && tmp.tagName == 'HR') {
-                if (me.options.enterTag == 'p') {
-                  tmp = me.document.createElement('p');
-                  range.insertNode(tmp);
-                  range.setStart(tmp, 0).setCursor();
-
-                } else {
-                  tmp = me.document.createElement('br');
-                  range.insertNode(tmp);
-                  range.setStartBefore(tmp).setCursor();
-                }
-              }
-            }
-
-          }
-          return true;
-        }
-
-      },
-      //杈圭晫鍦╰able閲屼笉鑳藉姞鍒嗛殧绾�
-      queryCommandState: function() {
-        return domUtils.filterNodeList(this.selection.getStartElementPath(), 'table') ? -1 : 0;
-      }
-    };
-    //    me.addListener('delkeyup',function(){
-    //        var rng = this.selection.getRange();
-    //        if(browser.ie && browser.version > 8){
-    //            rng.txtToElmBoundary(true);
-    //            if(domUtils.isStartInblock(rng)){
-    //                var tmpNode = rng.startContainer;
-    //                var pre = tmpNode.previousSibling;
-    //                if(pre && domUtils.isTagNode(pre,'hr')){
-    //                    domUtils.remove(pre);
-    //                    rng.select();
-    //                    return;
-    //                }
-    //            }
-    //        }
-    //        if(domUtils.isBody(rng.startContainer)){
-    //            var hr = rng.startContainer.childNodes[rng.startOffset -1];
-    //            if(hr && hr.nodeName == 'HR'){
-    //                var next = hr.nextSibling;
-    //                if(next){
-    //                    rng.setStart(next,0)
-    //                }else if(hr.previousSibling){
-    //                    rng.setStartAtLast(hr.previousSibling)
-    //                }else{
-    //                    var p = this.document.createElement('p');
-    //                    hr.parentNode.insertBefore(p,hr);
-    //                    domUtils.fillNode(this.document,p);
-    //                    rng.setStart(p,0);
-    //                }
-    //                domUtils.remove(hr);
-    //                rng.setCursor(false,true);
-    //            }
-    //        }
-    //    })
-    me.addListener('delkeydown', function(name, evt) {
-      var rng = this.selection.getRange();
-      rng.txtToElmBoundary(true);
-      if (domUtils.isStartInblock(rng)) {
-        var tmpNode = rng.startContainer;
-        var pre = tmpNode.previousSibling;
-        if (pre && domUtils.isTagNode(pre, 'hr')) {
-          domUtils.remove(pre);
-          rng.select();
-          domUtils.preventDefault(evt);
-          return true;
-
-        }
-      }
-
-    })
-  };
-
-
-
-  // plugins/time.js
-  /**
-   * 鎻掑叆鏃堕棿鍜屾棩鏈�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎻掑叆鏃堕棿锛岄粯璁ゆ牸寮忥細12:59:59
-   * @command time
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'time');
-   * ```
-   */
-
-  /**
-   * 鎻掑叆鏃ユ湡锛岄粯璁ゆ牸寮忥細2013-08-30
-   * @command date
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'date');
-   * ```
-   */
-  UE.commands['time'] = UE.commands["date"] = {
-    execCommand: function(cmd, format) {
-      var date = new Date;
-
-      function formatTime(date, format) {
-        var hh = ('0' + date.getHours()).slice(-2),
-          ii = ('0' + date.getMinutes()).slice(-2),
-          ss = ('0' + date.getSeconds()).slice(-2);
-        format = format || 'hh:ii:ss';
-        return format.replace(/hh/ig, hh).replace(/ii/ig, ii).replace(/ss/ig, ss);
-      }
-
-      function formatDate(date, format) {
-        var yyyy = ('000' + date.getFullYear()).slice(-4),
-          yy = yyyy.slice(-2),
-          mm = ('0' + (date.getMonth() + 1)).slice(-2),
-          dd = ('0' + date.getDate()).slice(-2);
-        format = format || 'yyyy-mm-dd';
-        return format.replace(/yyyy/ig, yyyy).replace(/yy/ig, yy).replace(/mm/ig, mm).replace(/dd/ig, dd);
-      }
-
-      this.execCommand('insertHtml', cmd == "time" ? formatTime(date, format) : formatDate(date, format));
-    }
-  };
-
-
-  // plugins/rowspacing.js
-  /**
-   * 娈靛墠娈靛悗闂磋窛鎻掍欢
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 璁剧疆娈甸棿璺�
-   * @command rowspacing
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @param { String } value 娈甸棿璺濈殑鍊硷紝浠x涓哄崟浣�
-   * @param { String } dir 闂磋窛浣嶇疆锛宼op鎴朾ottom锛屽垎鍒〃绀烘鍓嶅拰娈靛悗
-   * @example
-   * ```javascript
-   * editor.execCommand( 'rowspacing', '10', 'top' );
-   * ```
-   */
-
-  UE.plugins['rowspacing'] = function() {
-    var me = this;
-    me.setOpt({
-      'rowspacingtop': ['5', '10', '15', '20', '25'],
-      'rowspacingbottom': ['5', '10', '15', '20', '25']
-
-    });
-    me.commands['rowspacing'] = {
-      execCommand: function(cmdName, value, dir) {
-        this.execCommand('paragraph', 'p', {
-          style: 'margin-' + dir + ':' + value + 'px'
-        });
-        return true;
-      },
-      queryCommandValue: function(cmdName, dir) {
-        var pN = domUtils.filterNodeList(this.selection.getStartElementPath(), function(node) {
-            return domUtils.isBlockElm(node)
-          }),
-          value;
-        //trace:1026
-        if (pN) {
-          value = domUtils.getComputedStyle(pN, 'margin-' + dir).replace(/[^\d]/g, '');
-          return !value ? 0 : value;
-        }
-        return 0;
-
-      }
-    };
-  };
-
-
-
-
-  // plugins/lineheight.js
-  /**
-   * 璁剧疆琛屽唴闂磋窛
-   * @file
-   * @since 1.2.6.1
-   */
-  UE.plugins['lineheight'] = function() {
-    var me = this;
-    me.setOpt({
-      'lineheight': ['1', '1.5', '1.75', '2', '3', '4', '5']
-    });
-
-    /**
-     * 琛岃窛
-     * @command lineheight
-     * @method execCommand
-     * @param { String } cmdName 鍛戒护瀛楃涓�
-     * @param { String } value 浼犲叆鐨勮楂樺�硷紝 璇ュ�兼槸褰撳墠瀛椾綋鐨勫�嶆暟锛� 渚嬪锛� 1.5, 1.75
-     * @example
-     * ```javascript
-     * editor.execCommand( 'lineheight', 1.5);
-     * ```
-     */
-    /**
-     * 鏌ヨ褰撳墠閫夊尯鍐呭鐨勮楂樺ぇ灏�
-     * @command lineheight
-     * @method queryCommandValue
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @return { String } 杩斿洖褰撳墠琛岄珮澶у皬
-     * @example
-     * ```javascript
-     * editor.queryCommandValue( 'lineheight' );
-     * ```
-     */
-
-    me.commands['lineheight'] = {
-      execCommand: function(cmdName, value) {
-        this.execCommand('paragraph', 'p', {
-          style: 'line-height:' + (value == "1" ? "normal" : value + 'em')
-        });
-        return true;
-      },
-      queryCommandValue: function() {
-        var pN = domUtils.filterNodeList(this.selection.getStartElementPath(), function(node) {
-          return domUtils.isBlockElm(node)
-        });
-        if (pN) {
-          var value = domUtils.getComputedStyle(pN, 'line-height');
-          return value == 'normal' ? 1 : value.replace(/[^\d.]*/ig, "");
-        }
-      }
-    };
-  };
-
-
-
-
-  // plugins/insertcode.js
-  /**
-   * 鎻掑叆浠g爜鎻掍欢
-   * @file
-   * @since 1.2.6.1
-   */
-
-  UE.plugins['insertcode'] = function() {
-    var me = this;
-    me.ready(function() {
-      utils.cssRule('pre', 'pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}',
-        me.document)
-    });
-    me.setOpt('insertcode', {
-      'as3': 'ActionScript3',
-      'bash': 'Bash/Shell',
-      'cpp': 'C/C++',
-      'css': 'Css',
-      'cf': 'CodeFunction',
-      'c#': 'C#',
-      'delphi': 'Delphi',
-      'diff': 'Diff',
-      'erlang': 'Erlang',
-      'groovy': 'Groovy',
-      'html': 'Html',
-      'java': 'Java',
-      'jfx': 'JavaFx',
-      'js': 'Javascript',
-      'pl': 'Perl',
-      'php': 'Php',
-      'plain': 'Plain Text',
-      'ps': 'PowerShell',
-      'python': 'Python',
-      'ruby': 'Ruby',
-      'scala': 'Scala',
-      'sql': 'Sql',
-      'vb': 'Vb',
-      'xml': 'Xml'
-    });
-
-    /**
-     * 鎻掑叆浠g爜
-     * @command insertcode
-     * @method execCommand
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @param { String } lang 鎻掑叆浠g爜鐨勮瑷�
-     * @example
-     * ```javascript
-     * editor.execCommand( 'insertcode', 'javascript' );
-     * ```
-     */
-
-    /**
-     * 濡傛灉閫夊尯鎵�鍦ㄤ綅缃槸鎻掑叆鎻掑叆浠g爜鍖哄煙锛岃繑鍥炰唬鐮佺殑璇█
-     * @command insertcode
-     * @method queryCommandValue
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @return { String } 杩斿洖浠g爜鐨勮瑷�
-     * @example
-     * ```javascript
-     * editor.queryCommandValue( 'insertcode' );
-     * ```
-     */
-
-    me.commands['insertcode'] = {
-      execCommand: function(cmd, lang) {
-        var me = this,
-          rng = me.selection.getRange(),
-          pre = domUtils.findParentByTagName(rng.startContainer, 'pre', true);
-        if (pre) {
-          pre.className = 'brush:' + lang + ';toolbar:false;';
-        } else {
-          var code = '';
-          if (rng.collapsed) {
-            code = browser.ie && browser.ie11below ? (browser.version <= 8 ? '&nbsp;' : '') : '<br/>';
-          } else {
-            var frag = rng.extractContents();
-            var div = me.document.createElement('div');
-            div.appendChild(frag);
-
-            utils.each(UE.filterNode(UE.htmlparser(div.innerHTML.replace(/[\r\t]/g, '')), me.options.filterTxtRules)
-              .children,
-              function(node) {
-                if (browser.ie && browser.ie11below && browser.version > 8) {
-
-                  if (node.type == 'element') {
-                    if (node.tagName == 'br') {
-                      code += '\n'
-                    } else if (!dtd.$empty[node.tagName]) {
-                      utils.each(node.children, function(cn) {
-                        if (cn.type == 'element') {
-                          if (cn.tagName == 'br') {
-                            code += '\n'
-                          } else if (!dtd.$empty[node.tagName]) {
-                            code += cn.innerText();
-                          }
-                        } else {
-                          code += cn.data
-                        }
-                      })
-                      if (!/\n$/.test(code)) {
-                        code += '\n';
-                      }
-                    }
-                  } else {
-                    code += node.data + '\n'
-                  }
-                  if (!node.nextSibling() && /\n$/.test(code)) {
-                    code = code.replace(/\n$/, '');
-                  }
-                } else {
-                  if (browser.ie && browser.ie11below) {
-
-                    if (node.type == 'element') {
-                      if (node.tagName == 'br') {
-                        code += '<br>'
-                      } else if (!dtd.$empty[node.tagName]) {
-                        utils.each(node.children, function(cn) {
-                          if (cn.type == 'element') {
-                            if (cn.tagName == 'br') {
-                              code += '<br>'
-                            } else if (!dtd.$empty[node.tagName]) {
-                              code += cn.innerText();
-                            }
-                          } else {
-                            code += cn.data
-                          }
-                        });
-                        if (!/br>$/.test(code)) {
-                          code += '<br>';
-                        }
-                      }
-                    } else {
-                      code += node.data + '<br>'
-                    }
-                    if (!node.nextSibling() && /<br>$/.test(code)) {
-                      code = code.replace(/<br>$/, '');
-                    }
-
-                  } else {
-                    code += (node.type == 'element' ? (dtd.$empty[node.tagName] ? '' : node.innerText()) :
-                      node.data);
-                    if (!/br\/?\s*>$/.test(code)) {
-                      if (!node.nextSibling())
-                        return;
-                      code += '<br>'
-                    }
-                  }
-
-                }
-
-              });
-          }
-          me.execCommand('inserthtml', '<pre id="coder"class="brush:' + lang + ';toolbar:false">' + code +
-            '</pre>', true);
-
-          pre = me.document.getElementById('coder');
-          domUtils.removeAttributes(pre, 'id');
-          var tmpNode = pre.previousSibling;
-
-          if (tmpNode && (tmpNode.nodeType == 3 && tmpNode.nodeValue.length == 1 && browser.ie && browser.version ==
-              6 || domUtils.isEmptyBlock(tmpNode))) {
-
-            domUtils.remove(tmpNode)
-          }
-          var rng = me.selection.getRange();
-          if (domUtils.isEmptyBlock(pre)) {
-            rng.setStart(pre, 0).setCursor(false, true)
-          } else {
-            rng.selectNodeContents(pre).select()
-          }
-        }
-
-
-
-      },
-      queryCommandValue: function() {
-        var path = this.selection.getStartElementPath();
-        var lang = '';
-        utils.each(path, function(node) {
-          if (node.nodeName == 'PRE') {
-            var match = node.className.match(/brush:([^;]+)/);
-            lang = match && match[1] ? match[1] : '';
-            return false;
-          }
-        });
-        return lang;
-      }
-    };
-
-    me.addInputRule(function(root) {
-      utils.each(root.getNodesByTagName('pre'), function(pre) {
-        var brs = pre.getNodesByTagName('br');
-        if (brs.length) {
-          browser.ie && browser.ie11below && browser.version > 8 && utils.each(brs, function(br) {
-            var txt = UE.uNode.createText('\n');
-            br.parentNode.insertBefore(txt, br);
-            br.parentNode.removeChild(br);
-          });
-          return;
-        }
-        if (browser.ie && browser.ie11below && browser.version > 8)
-          return;
-        var code = pre.innerText().split(/\n/);
-        pre.innerHTML('');
-        utils.each(code, function(c) {
-          if (c.length) {
-            pre.appendChild(UE.uNode.createText(c));
-          }
-          pre.appendChild(UE.uNode.createElement('br'))
-        })
-      })
-    });
-    me.addOutputRule(function(root) {
-      utils.each(root.getNodesByTagName('pre'), function(pre) {
-        var code = '';
-        utils.each(pre.children, function(n) {
-          if (n.type == 'text') {
-            //鍦╥e涓嬫枃鏈唴瀹规湁鍙兘鏈熬甯︽湁\n瑕佸幓鎺�
-            //trace:3396
-            code += n.data.replace(/[ ]/g, '&nbsp;').replace(/\n$/, '');
-          } else {
-            if (n.tagName == 'br') {
-              code += '\n'
-            } else {
-              code += (!dtd.$empty[n.tagName] ? '' : n.innerText());
-            }
-
-          }
-
-        });
-
-        pre.innerText(code.replace(/(&nbsp;|\n)+$/, ''))
-      })
-    });
-    //涓嶉渶瑕佸垽鏂環ighlight鐨刢ommand鍒楄〃
-    me.notNeedCodeQuery = {
-      help: 1,
-      undo: 1,
-      redo: 1,
-      source: 1,
-      print: 1,
-      searchreplace: 1,
-      fullscreen: 1,
-      preview: 1,
-      insertparagraph: 1,
-      elementpath: 1,
-      insertcode: 1,
-      inserthtml: 1,
-      selectall: 1
-    };
-    //灏唓ueyCommamndState閲嶇疆
-    var orgQuery = me.queryCommandState;
-    me.queryCommandState = function(cmd) {
-      var me = this;
-
-      if (!me.notNeedCodeQuery[cmd.toLowerCase()] && me.selection && me.queryCommandValue('insertcode')) {
-        return -1;
-      }
-      return UE.Editor.prototype.queryCommandState.apply(this, arguments)
-    };
-    me.addListener('beforeenterkeydown', function() {
-      var rng = me.selection.getRange();
-      var pre = domUtils.findParentByTagName(rng.startContainer, 'pre', true);
-      if (pre) {
-        me.fireEvent('saveScene');
-        if (!rng.collapsed) {
-          rng.deleteContents();
-        }
-        if (!browser.ie || browser.ie9above) {
-          var tmpNode = me.document.createElement('br'),
-            pre;
-          rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true);
-          var next = tmpNode.nextSibling;
-          if (!next && (!browser.ie || browser.version > 10)) {
-            rng.insertNode(tmpNode.cloneNode(false));
-          } else {
-            rng.setStartAfter(tmpNode);
-          }
-          pre = tmpNode.previousSibling;
-          var tmp;
-          while (pre) {
-            tmp = pre;
-            pre = pre.previousSibling;
-            if (!pre || pre.nodeName == 'BR') {
-              pre = tmp;
-              break;
-            }
-          }
-          if (pre) {
-            var str = '';
-            while (pre && pre.nodeName != 'BR' && new RegExp('^[\\s' + domUtils.fillChar + ']*$').test(pre.nodeValue)) {
-              str += pre.nodeValue;
-              pre = pre.nextSibling;
-            }
-            if (pre.nodeName != 'BR') {
-              var match = pre.nodeValue.match(new RegExp('^([\\s' + domUtils.fillChar + ']+)'));
-              if (match && match[1]) {
-                str += match[1]
-              }
-
-            }
-            if (str) {
-              str = me.document.createTextNode(str);
-              rng.insertNode(str).setStartAfter(str);
-            }
-          }
-          rng.collapse(true).select(true);
-        } else {
-          if (browser.version > 8) {
-
-            var txt = me.document.createTextNode('\n');
-            var start = rng.startContainer;
-            if (rng.startOffset == 0) {
-              var preNode = start.previousSibling;
-              if (preNode) {
-                rng.insertNode(txt);
-                var fillchar = me.document.createTextNode(' ');
-                rng.setStartAfter(txt).insertNode(fillchar).setStart(fillchar, 0).collapse(true).select(true)
-              }
-            } else {
-              rng.insertNode(txt).setStartAfter(txt);
-              var fillchar = me.document.createTextNode(' ');
-              start = rng.startContainer.childNodes[rng.startOffset];
-              if (start && !/^\n/.test(start.nodeValue)) {
-                rng.setStartBefore(txt)
-              }
-              rng.insertNode(fillchar).setStart(fillchar, 0).collapse(true).select(true)
-            }
-
-          } else {
-            var tmpNode = me.document.createElement('br');
-            rng.insertNode(tmpNode);
-            rng.insertNode(me.document.createTextNode(domUtils.fillChar));
-            rng.setStartAfter(tmpNode);
-            pre = tmpNode.previousSibling;
-            var tmp;
-            while (pre) {
-              tmp = pre;
-              pre = pre.previousSibling;
-              if (!pre || pre.nodeName == 'BR') {
-                pre = tmp;
-                break;
-              }
-            }
-            if (pre) {
-              var str = '';
-              while (pre && pre.nodeName != 'BR' && new RegExp('^[ ' + domUtils.fillChar + ']*$').test(pre.nodeValue)) {
-                str += pre.nodeValue;
-                pre = pre.nextSibling;
-              }
-              if (pre.nodeName != 'BR') {
-                var match = pre.nodeValue.match(new RegExp('^([ ' + domUtils.fillChar + ']+)'));
-                if (match && match[1]) {
-                  str += match[1]
-                }
-
-              }
-
-              str = me.document.createTextNode(str);
-              rng.insertNode(str).setStartAfter(str);
-            }
-            rng.collapse(true).select();
-          }
-
-
-        }
-        me.fireEvent('saveScene');
-        return true;
-      }
-
-
-    });
-
-    me.addListener('tabkeydown', function(cmd, evt) {
-      var rng = me.selection.getRange();
-      var pre = domUtils.findParentByTagName(rng.startContainer, 'pre', true);
-      if (pre) {
-        me.fireEvent('saveScene');
-        if (evt.shiftKey) {
-
-        } else {
-          if (!rng.collapsed) {
-            var bk = rng.createBookmark();
-            var start = bk.start.previousSibling;
-
-            while (start) {
-              if (pre.firstChild === start && !domUtils.isBr(start)) {
-                pre.insertBefore(me.document.createTextNode('    '), start);
-
-                break;
-              }
-              if (domUtils.isBr(start)) {
-                pre.insertBefore(me.document.createTextNode('    '), start.nextSibling);
-
-                break;
-              }
-              start = start.previousSibling;
-            }
-            var end = bk.end;
-            start = bk.start.nextSibling;
-            if (pre.firstChild === bk.start) {
-              pre.insertBefore(me.document.createTextNode('    '), start.nextSibling)
-
-            }
-            while (start && start !== end) {
-              if (domUtils.isBr(start) && start.nextSibling) {
-                if (start.nextSibling === end) {
-                  break;
-                }
-                pre.insertBefore(me.document.createTextNode('    '), start.nextSibling)
-              }
-
-              start = start.nextSibling;
-            }
-            rng.moveToBookmark(bk).select();
-          } else {
-            var tmpNode = me.document.createTextNode('    ');
-            rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true).select(true);
-          }
-        }
-
-
-        me.fireEvent('saveScene');
-        return true;
-      }
-
-
-    });
-
-
-    me.addListener('beforeinserthtml', function(evtName, html) {
-      var me = this,
-        rng = me.selection.getRange(),
-        pre = domUtils.findParentByTagName(rng.startContainer, 'pre', true);
-      if (pre) {
-        if (!rng.collapsed) {
-          rng.deleteContents()
-        }
-        var htmlstr = '';
-        if (browser.ie && browser.version > 8) {
-
-          utils.each(UE.filterNode(UE.htmlparser(html), me.options.filterTxtRules).children, function(node) {
-            if (node.type == 'element') {
-              if (node.tagName == 'br') {
-                htmlstr += '\n'
-              } else if (!dtd.$empty[node.tagName]) {
-                utils.each(node.children, function(cn) {
-                  if (cn.type == 'element') {
-                    if (cn.tagName == 'br') {
-                      htmlstr += '\n'
-                    } else if (!dtd.$empty[node.tagName]) {
-                      htmlstr += cn.innerText();
-                    }
-                  } else {
-                    htmlstr += cn.data
-                  }
-                })
-                if (!/\n$/.test(htmlstr)) {
-                  htmlstr += '\n';
-                }
-              }
-            } else {
-              htmlstr += node.data + '\n'
-            }
-            if (!node.nextSibling() && /\n$/.test(htmlstr)) {
-              htmlstr = htmlstr.replace(/\n$/, '');
-            }
-          });
-          var tmpNode = me.document.createTextNode(utils.html(htmlstr.replace(/&nbsp;/g, ' ')));
-          rng.insertNode(tmpNode).selectNode(tmpNode).select();
-        } else {
-          var frag = me.document.createDocumentFragment();
-
-          utils.each(UE.filterNode(UE.htmlparser(html), me.options.filterTxtRules).children, function(node) {
-            if (node.type == 'element') {
-              if (node.tagName == 'br') {
-                frag.appendChild(me.document.createElement('br'))
-              } else if (!dtd.$empty[node.tagName]) {
-                utils.each(node.children, function(cn) {
-                  if (cn.type == 'element') {
-                    if (cn.tagName == 'br') {
-
-                      frag.appendChild(me.document.createElement('br'))
-                    } else if (!dtd.$empty[node.tagName]) {
-                      frag.appendChild(me.document.createTextNode(utils.html(cn.innerText().replace(
-                        /&nbsp;/g, ' '))));
-
-                    }
-                  } else {
-                    frag.appendChild(me.document.createTextNode(utils.html(cn.data.replace(/&nbsp;/g,
-                      ' '))));
-
-                  }
-                })
-                if (frag.lastChild.nodeName != 'BR') {
-                  frag.appendChild(me.document.createElement('br'))
-                }
-              }
-            } else {
-              frag.appendChild(me.document.createTextNode(utils.html(node.data.replace(/&nbsp;/g, ' '))));
-            }
-            if (!node.nextSibling() && frag.lastChild.nodeName == 'BR') {
-              frag.removeChild(frag.lastChild)
-            }
-
-
-          });
-          rng.insertNode(frag).select();
-
-        }
-
-        return true;
-      }
-    });
-    //鏂瑰悜閿殑澶勭悊
-    me.addListener('keydown', function(cmd, evt) {
-      var me = this,
-        keyCode = evt.keyCode || evt.which;
-      if (keyCode == 40) {
-        var rng = me.selection.getRange(),
-          pre, start = rng.startContainer;
-        if (rng.collapsed && (pre = domUtils.findParentByTagName(rng.startContainer, 'pre', true)) && !pre.nextSibling) {
-          var last = pre.lastChild
-          while (last && last.nodeName == 'BR') {
-            last = last.previousSibling;
-          }
-          if (last === start || rng.startContainer === pre && rng.startOffset == pre.childNodes.length) {
-            me.execCommand('insertparagraph');
-            domUtils.preventDefault(evt)
-          }
-
-        }
-      }
-    });
-    //trace:3395
-    me.addListener('delkeydown', function(type, evt) {
-      var rng = this.selection.getRange();
-      rng.txtToElmBoundary(true);
-      var start = rng.startContainer;
-      if (domUtils.isTagNode(start, 'pre') && rng.collapsed && domUtils.isStartInblock(rng)) {
-        var p = me.document.createElement('p');
-        domUtils.fillNode(me.document, p);
-        start.parentNode.insertBefore(p, start);
-        domUtils.remove(start);
-        rng.setStart(p, 0).setCursor(false, true);
-        domUtils.preventDefault(evt);
-        return true;
-      }
-    })
-  };
-
-
-  // plugins/cleardoc.js
-  /**
-   * 娓呯┖鏂囨。鎻掍欢
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 娓呯┖鏂囨。
-   * @command cleardoc
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * //editor 鏄紪杈戝櫒瀹炰緥
-   * editor.execCommand('cleardoc');
-   * ```
-   */
-
-  UE.commands['cleardoc'] = {
-    execCommand: function(cmdName) {
-      var me = this,
-        enterTag = me.options.enterTag,
-        range = me.selection.getRange();
-      if (enterTag == "br") {
-        me.body.innerHTML = "<br/>";
-        range.setStart(me.body, 0).setCursor();
-      } else {
-        me.body.innerHTML = "<p>" + (ie ? "" : "<br/>") + "</p>";
-        range.setStart(me.body.firstChild, 0).setCursor(false, true);
-      }
-      setTimeout(function() {
-        me.fireEvent("clearDoc");
-      }, 0);
-
-    }
-  };
-
-
-
-  // plugins/anchor.js
-  /**
-   * 閿氱偣鎻掍欢锛屼负UEditor鎻愪緵鎻掑叆閿氱偣鏀寔
-   * @file
-   * @since 1.2.6.1
-   */
-  UE.plugin.register('anchor', function() {
-
-    return {
-      bindEvents: {
-        'ready': function() {
-          utils.cssRule('anchor',
-            '.anchorclass{background: url(\'' +
-            this.options.themePath +
-            this.options.theme +
-            '/images/anchor.gif\') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}',
-            this.document);
-        }
-      },
-      outputRule: function(root) {
-        utils.each(root.getNodesByTagName('img'), function(a) {
-          var val;
-          if (val = a.getAttr('anchorname')) {
-            a.tagName = 'a';
-            a.setAttr({
-              anchorname: '',
-              name: val,
-              'class': ''
-            })
-          }
-        })
-      },
-      inputRule: function(root) {
-        utils.each(root.getNodesByTagName('a'), function(a) {
-          var val;
-          if ((val = a.getAttr('name')) && !a.getAttr('href')) {
-            a.tagName = 'img';
-            a.setAttr({
-              anchorname: a.getAttr('name'),
-              'class': 'anchorclass'
-            });
-            a.setAttr('name')
-
-          }
-        })
-
-      },
-      commands: {
-        /**
-         * 鎻掑叆閿氱偣
-         * @command anchor
-         * @method execCommand
-         * @param { String } cmd 鍛戒护瀛楃涓�
-         * @param { String } name 閿氱偣鍚嶇О瀛楃涓�
-         * @example
-         * ```javascript
-         * //editor 鏄紪杈戝櫒瀹炰緥
-         * editor.execCommand('anchor', 'anchor1');
-         * ```
-         */
-        'anchor': {
-          execCommand: function(cmd, name) {
-            var range = this.selection.getRange(),
-              img = range.getClosedNode();
-            if (img && img.getAttribute('anchorname')) {
-              if (name) {
-                img.setAttribute('anchorname', name);
-              } else {
-                range.setStartBefore(img).setCursor();
-                domUtils.remove(img);
-              }
-            } else {
-              if (name) {
-                //鍙湪閫夊尯鐨勫紑濮嬫彃鍏�
-                var anchor = this.document.createElement('img');
-                range.collapse(true);
-                domUtils.setAttributes(anchor, {
-                  'anchorname': name,
-                  'class': 'anchorclass'
-                });
-                range.insertNode(anchor).setStartAfter(anchor).setCursor(false, true);
-              }
-            }
-          }
-        }
-      }
-    }
-  });
-
-
-  // plugins/wordcount.js
-  ///import core
-  ///commands 瀛楁暟缁熻
-  ///commandsName  WordCount,wordCount
-  ///commandsTitle  瀛楁暟缁熻
-  /*
-   * Created by JetBrains WebStorm.
-   * User: taoqili
-   * Date: 11-9-7
-   * Time: 涓嬪崍8:18
-   * To change this template use File | Settings | File Templates.
-   */
-
-  UE.plugins['wordcount'] = function() {
-    var me = this;
-    me.setOpt('wordCount', true);
-    me.addListener('contentchange', function() {
-      me.fireEvent('wordcount');
-    });
-    var timer;
-    me.addListener('ready', function() {
-      var me = this;
-      domUtils.on(me.body, "keyup", function(evt) {
-        var code = evt.keyCode || evt.which,
-          //蹇界暐鐨勬寜閿�,ctr,alt,shift,鏂瑰悜閿�
-          ignores = {
-            "16": 1,
-            "18": 1,
-            "20": 1,
-            "37": 1,
-            "38": 1,
-            "39": 1,
-            "40": 1
-          };
-        if (code in ignores) return;
-        clearTimeout(timer);
-        timer = setTimeout(function() {
-          me.fireEvent('wordcount');
-        }, 200)
-      })
-    });
-  };
-
-
-  // plugins/pagebreak.js
-  /**
-   * 鍒嗛〉鍔熻兘鎻掍欢
-   * @file
-   * @since 1.2.6.1
-   */
-  UE.plugins['pagebreak'] = function() {
-    var me = this,
-      notBreakTags = ['td'];
-    me.setOpt('pageBreakTag', '_ueditor_page_break_tag_');
-
-    function fillNode(node) {
-      if (domUtils.isEmptyBlock(node)) {
-        var firstChild = node.firstChild,
-          tmpNode;
-
-        while (firstChild && firstChild.nodeType == 1 && domUtils.isEmptyBlock(firstChild)) {
-          tmpNode = firstChild;
-          firstChild = firstChild.firstChild;
-        }!tmpNode && (tmpNode = node);
-        domUtils.fillNode(me.document, tmpNode);
-      }
-    }
-    //鍒嗛〉绗︽牱寮忔坊鍔�
-
-    me.ready(function() {
-      utils.cssRule('pagebreak',
-        '.pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}',
-        me.document);
-    });
-
-    function isHr(node) {
-      return node && node.nodeType == 1 && node.tagName == 'HR' && node.className == 'pagebreak';
-    }
-    me.addInputRule(function(root) {
-      root.traversal(function(node) {
-        if (node.type == 'text' && node.data == me.options.pageBreakTag) {
-          var hr = UE.uNode.createElement(
-            '<hr class="pagebreak" noshade="noshade" size="5" style="-webkit-user-select: none;">');
-          node.parentNode.insertBefore(hr, node);
-          node.parentNode.removeChild(node)
-        }
-      })
-    });
-    me.addOutputRule(function(node) {
-      utils.each(node.getNodesByTagName('hr'), function(n) {
-        if (n.getAttr('class') == 'pagebreak') {
-          var txt = UE.uNode.createText(me.options.pageBreakTag);
-          n.parentNode.insertBefore(txt, n);
-          n.parentNode.removeChild(n);
-        }
-      })
-
-    });
-
-    /**
-     * 鎻掑叆鍒嗛〉绗�
-     * @command pagebreak
-     * @method execCommand
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @remind 鍦ㄨ〃鏍间腑鎻掑叆鍒嗛〉绗︿細鎶婅〃鏍煎垏鍒嗘垚涓ら儴鍒�
-     * @remind 鑾峰彇缂栬緫鍣ㄥ唴鐨勬暟鎹椂锛� 缂栬緫鍣ㄤ細鎶婂垎椤电杞崲鎴愨�淿ueditor_page_break_tag_鈥濆瓧绗︿覆锛�
-     *          浠ヤ究浜庢彁浜ゆ暟鎹埌鏈嶅姟鍣ㄧ鍚庡鐞嗗垎椤点��
-     * @example
-     * ```javascript
-     * editor.execCommand( 'pagebreak'); //鎻掑叆涓�涓猦r鏍囩锛屽甫鏈夋牱寮忕被鍚峱agebreak
-     * ```
-     */
-
-    me.commands['pagebreak'] = {
-      execCommand: function() {
-        var range = me.selection.getRange(),
-          hr = me.document.createElement('hr');
-        domUtils.setAttributes(hr, {
-          'class': 'pagebreak',
-          noshade: "noshade",
-          size: "5"
-        });
-        domUtils.unSelectable(hr);
-        //table鍗曠嫭澶勭悊
-        var node = domUtils.findParentByTagName(range.startContainer, notBreakTags, true),
-
-          parents = [],
-          pN;
-        if (node) {
-          switch (node.tagName) {
-            case 'TD':
-              pN = node.parentNode;
-              if (!pN.previousSibling) {
-                var table = domUtils.findParentByTagName(pN, 'table');
-                //                            var tableWrapDiv = table.parentNode;
-                //                            if(tableWrapDiv && tableWrapDiv.nodeType == 1
-                //                                && tableWrapDiv.tagName == 'DIV'
-                //                                && tableWrapDiv.getAttribute('dropdrag')
-                //                                ){
-                //                                domUtils.remove(tableWrapDiv,true);
-                //                            }
-                table.parentNode.insertBefore(hr, table);
-                parents = domUtils.findParents(hr, true);
-
-              } else {
-                pN.parentNode.insertBefore(hr, pN);
-                parents = domUtils.findParents(hr);
-
-              }
-              pN = parents[1];
-              if (hr !== pN) {
-                domUtils.breakParent(hr, pN);
-
-              }
-              //table瑕侀噸鍐欑粦瀹氫竴涓嬫嫋鎷�
-              me.fireEvent('afteradjusttable', me.document);
-          }
-
-        } else {
-
-          if (!range.collapsed) {
-            range.deleteContents();
-            var start = range.startContainer;
-            while (!domUtils.isBody(start) && domUtils.isBlockElm(start) && domUtils.isEmptyNode(start)) {
-              range.setStartBefore(start).collapse(true);
-              domUtils.remove(start);
-              start = range.startContainer;
-            }
-
-          }
-          range.insertNode(hr);
-
-          var pN = hr.parentNode,
-            nextNode;
-          while (!domUtils.isBody(pN)) {
-            domUtils.breakParent(hr, pN);
-            nextNode = hr.nextSibling;
-            if (nextNode && domUtils.isEmptyBlock(nextNode)) {
-              domUtils.remove(nextNode);
-            }
-            pN = hr.parentNode;
-          }
-          nextNode = hr.nextSibling;
-          var pre = hr.previousSibling;
-          if (isHr(pre)) {
-            domUtils.remove(pre);
-          } else {
-            pre && fillNode(pre);
-          }
-
-          if (!nextNode) {
-            var p = me.document.createElement('p');
-
-            hr.parentNode.appendChild(p);
-            domUtils.fillNode(me.document, p);
-            range.setStart(p, 0).collapse(true);
-          } else {
-            if (isHr(nextNode)) {
-              domUtils.remove(nextNode);
-            } else {
-              fillNode(nextNode);
-            }
-            range.setEndAfter(hr).collapse(false);
-          }
-
-          range.select(true);
-
-        }
-
-      }
-    };
-  };
-
-  // plugins/wordimage.js
-  ///import core
-  ///commands 鏈湴鍥剧墖寮曞涓婁紶
-  ///commandsName  WordImage
-  ///commandsTitle  鏈湴鍥剧墖寮曞涓婁紶
-  ///commandsDialog  dialogs\wordimage
-
-  UE.plugin.register('wordimage', function() {
-    var me = this,
-      images = [];
-    return {
-      commands: {
-        'wordimage': {
-          execCommand: function() {
-            var images = domUtils.getElementsByTagName(me.body, "img");
-            var urlList = [];
-            for (var i = 0, ci; ci = images[i++];) {
-              var url = ci.getAttribute("word_img");
-              url && urlList.push(url);
-            }
-            return urlList;
-          },
-          queryCommandState: function() {
-            images = domUtils.getElementsByTagName(me.body, "img");
-            for (var i = 0, ci; ci = images[i++];) {
-              if (ci.getAttribute("word_img")) {
-                return 1;
-              }
-            }
-            return -1;
-          },
-          notNeedUndo: true
-        }
-      },
-      inputRule: function(root) {
-        utils.each(root.getNodesByTagName('img'), function(img) {
-          var attrs = img.attrs,
-            flag = parseInt(attrs.width) < 128 || parseInt(attrs.height) < 43,
-            opt = me.options,
-            src = opt.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif';
-          if (attrs['src'] && /^(?:(file:\/+))/.test(attrs['src'])) {
-            img.setAttr({
-              width: attrs.width,
-              height: attrs.height,
-              alt: attrs.alt,
-              word_img: attrs.src,
-              src: src,
-              'style': 'background:url(' + (flag ? opt.themePath + opt.theme + '/images/word.gif' : opt
-                  .langPath + opt.lang + '/images/localimage.png') +
-                ') no-repeat center center;border:1px solid #ddd'
-            })
-          }
-        })
-      }
-    }
-  });
-
-  // plugins/dragdrop.js
-  UE.plugins['dragdrop'] = function() {
-
-    var me = this;
-    me.ready(function() {
-      domUtils.on(this.body, 'dragend', function() {
-        var rng = me.selection.getRange();
-        var node = rng.getClosedNode() || me.selection.getStart();
-
-        if (node && node.tagName == 'IMG') {
-
-          var pre = node.previousSibling,
-            next;
-          while (next = node.nextSibling) {
-            if (next.nodeType == 1 && next.tagName == 'SPAN' && !next.firstChild) {
-              domUtils.remove(next)
-            } else {
-              break;
-            }
-          }
-
-
-          if ((pre && pre.nodeType == 1 && !domUtils.isEmptyBlock(pre) || !pre) && (!next || next && !
-              domUtils.isEmptyBlock(next))) {
-            if (pre && pre.tagName == 'P' && !domUtils.isEmptyBlock(pre)) {
-              pre.appendChild(node);
-              domUtils.moveChild(next, pre);
-              domUtils.remove(next);
-            } else if (next && next.tagName == 'P' && !domUtils.isEmptyBlock(next)) {
-              next.insertBefore(node, next.firstChild);
-            }
-
-            if (pre && pre.tagName == 'P' && domUtils.isEmptyBlock(pre)) {
-              domUtils.remove(pre)
-            }
-            if (next && next.tagName == 'P' && domUtils.isEmptyBlock(next)) {
-              domUtils.remove(next)
-            }
-            rng.selectNode(node).select();
-            me.fireEvent('saveScene');
-
-          }
-
-        }
-
-      })
-    });
-    me.addListener('keyup', function(type, evt) {
-      var keyCode = evt.keyCode || evt.which;
-      if (keyCode == 13) {
-        var rng = me.selection.getRange(),
-          node;
-        if (node = domUtils.findParentByTagName(rng.startContainer, 'p', true)) {
-          if (domUtils.getComputedStyle(node, 'text-align') == 'center') {
-            domUtils.removeStyle(node, 'text-align')
-          }
-        }
-      }
-    })
-  };
-
-
-  // plugins/undo.js
-  /**
-   * undo redo
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鎾ら攢涓婁竴娆℃墽琛岀殑鍛戒护
-   * @command undo
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'undo' );
-   * ```
-   */
-
-  /**
-   * 閲嶅仛涓婁竴娆℃墽琛岀殑鍛戒护
-   * @command redo
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'redo' );
-   * ```
-   */
-
-  UE.plugins['undo'] = function() {
-    var saveSceneTimer;
-    var me = this,
-      maxUndoCount = me.options.maxUndoCount || 20,
-      maxInputCount = me.options.maxInputCount || 20,
-      fillchar = new RegExp(domUtils.fillChar + '|<\/hr>', 'gi'); // ie浼氫骇鐢熷浣欑殑</hr>
-    var noNeedFillCharTags = {
-      ol: 1,
-      ul: 1,
-      table: 1,
-      tbody: 1,
-      tr: 1,
-      body: 1
-    };
-    var orgState = me.options.autoClearEmptyNode;
-
-    function compareAddr(indexA, indexB) {
-      if (indexA.length != indexB.length)
-        return 0;
-      for (var i = 0, l = indexA.length; i < l; i++) {
-        if (indexA[i] != indexB[i])
-          return 0
-      }
-      return 1;
-    }
-
-    function compareRangeAddress(rngAddrA, rngAddrB) {
-      if (rngAddrA.collapsed != rngAddrB.collapsed) {
-        return 0;
-      }
-      if (!compareAddr(rngAddrA.startAddress, rngAddrB.startAddress) || !compareAddr(rngAddrA.endAddress, rngAddrB.endAddress)) {
-        return 0;
-      }
-      return 1;
-    }
-
-    function UndoManager() {
-      this.list = [];
-      this.index = 0;
-      this.hasUndo = false;
-      this.hasRedo = false;
-      this.undo = function() {
-        if (this.hasUndo) {
-          if (!this.list[this.index - 1] && this.list.length == 1) {
-            this.reset();
-            return;
-          }
-          while (this.list[this.index].content == this.list[this.index - 1].content) {
-            this.index--;
-            if (this.index == 0) {
-              return this.restore(0);
-            }
-          }
-          this.restore(--this.index);
-        }
-      };
-      this.redo = function() {
-        if (this.hasRedo) {
-          while (this.list[this.index].content == this.list[this.index + 1].content) {
-            this.index++;
-            if (this.index == this.list.length - 1) {
-              return this.restore(this.index);
-            }
-          }
-          this.restore(++this.index);
-        }
-      };
-
-      this.restore = function() {
-        var me = this.editor;
-        var scene = this.list[this.index];
-        var root = UE.htmlparser(scene.content.replace(fillchar, ''));
-        me.options.autoClearEmptyNode = false;
-        me.filterInputRule(root);
-        me.options.autoClearEmptyNode = orgState;
-        //trace:873
-        //鍘绘帀灞曚綅绗�
-        me.document.body.innerHTML = root.toHtml();
-        me.fireEvent('afterscencerestore');
-        //澶勭悊undo鍚庣┖鏍间笉灞曚綅鐨勯棶棰�
-        if (browser.ie) {
-          utils.each(domUtils.getElementsByTagName(me.document, 'td th caption p'), function(node) {
-            if (domUtils.isEmptyNode(node)) {
-              domUtils.fillNode(me.document, node);
-            }
-          })
-        }
-
-        try {
-          var rng = new dom.Range(me.document).moveToAddress(scene.address);
-          rng.select(noNeedFillCharTags[rng.startContainer.nodeName.toLowerCase()]);
-        } catch (e) {}
-
-        this.update();
-        this.clearKey();
-        //涓嶈兘鎶婅嚜宸眗eset浜�
-        me.fireEvent('reset', true);
-      };
-
-      this.getScene = function() {
-        var me = this.editor;
-        var rng = me.selection.getRange(),
-          rngAddress = rng.createAddress(false, true);
-        me.fireEvent('beforegetscene');
-        var root = UE.htmlparser(me.body.innerHTML);
-        me.options.autoClearEmptyNode = false;
-        me.filterOutputRule(root);
-        me.options.autoClearEmptyNode = orgState;
-        var cont = root.toHtml();
-        //trace:3461
-        //杩欎釜浼氬紩璧峰洖閫�鏃跺鑷寸┖鏍间涪澶辩殑鎯呭喌
-        //            browser.ie && (cont = cont.replace(/>&nbsp;</g, '><').replace(/\s*</g, '<').replace(/>\s*/g, '>'));
-        me.fireEvent('aftergetscene');
-
-        return {
-          address: rngAddress,
-          content: cont
-        }
-      };
-      this.save = function(notCompareRange, notSetCursor) {
-        clearTimeout(saveSceneTimer);
-        var currentScene = this.getScene(notSetCursor),
-          lastScene = this.list[this.index];
-
-        if (lastScene && lastScene.content != currentScene.content) {
-          me.trigger('contentchange')
-        }
-        //鍐呭鐩稿悓浣嶇疆鐩稿悓涓嶅瓨
-        if (lastScene && lastScene.content == currentScene.content &&
-          (notCompareRange ? 1 : compareRangeAddress(lastScene.address, currentScene.address))
-        ) {
-          return;
-        }
-        this.list = this.list.slice(0, this.index + 1);
-        this.list.push(currentScene);
-        //濡傛灉澶т簬鏈�澶ф暟閲忎簡锛屽氨鎶婃渶鍓嶇殑鍓旈櫎
-        if (this.list.length > maxUndoCount) {
-          this.list.shift();
-        }
-        this.index = this.list.length - 1;
-        this.clearKey();
-        //璺熸柊undo/redo鐘舵��
-        this.update();
-
-      };
-      this.update = function() {
-        this.hasRedo = !!this.list[this.index + 1];
-        this.hasUndo = !!this.list[this.index - 1];
-      };
-      this.reset = function() {
-        this.list = [];
-        this.index = 0;
-        this.hasUndo = false;
-        this.hasRedo = false;
-        this.clearKey();
-      };
-      this.clearKey = function() {
-        keycont = 0;
-        lastKeyCode = null;
-      };
-    }
-
-    me.undoManger = new UndoManager();
-    me.undoManger.editor = me;
-
-    function saveScene() {
-      this.undoManger.save();
-    }
-
-    me.addListener('saveScene', function() {
-      var args = Array.prototype.splice.call(arguments, 1);
-      this.undoManger.save.apply(this.undoManger, args);
-    });
-
-    //    me.addListener('beforeexeccommand', saveScene);
-    //    me.addListener('afterexeccommand', saveScene);
-
-    me.addListener('reset', function(type, exclude) {
-      if (!exclude) {
-        this.undoManger.reset();
-      }
-    });
-    me.commands['redo'] = me.commands['undo'] = {
-      execCommand: function(cmdName) {
-        this.undoManger[cmdName]();
-      },
-      queryCommandState: function(cmdName) {
-        return this.undoManger['has' + (cmdName.toLowerCase() == 'undo' ? 'Undo' : 'Redo')] ? 0 : -1;
-      },
-      notNeedUndo: 1
-    };
-
-    var keys = {
-        //  /*Backspace*/ 8:1, /*Delete*/ 46:1,
-        /*Shift*/
-        16: 1,
-        /*Ctrl*/ 17: 1,
-        /*Alt*/ 18: 1,
-        37: 1,
-        38: 1,
-        39: 1,
-        40: 1
-
-      },
-      keycont = 0,
-      lastKeyCode;
-    //杈撳叆娉曠姸鎬佷笅涓嶈绠楀瓧绗︽暟
-    var inputType = false;
-    me.addListener('ready', function() {
-      domUtils.on(this.body, 'compositionstart', function() {
-        inputType = true;
-      });
-      domUtils.on(this.body, 'compositionend', function() {
-        inputType = false;
-      })
-    });
-    //蹇嵎閿�
-    me.addshortcutkey({
-      "Undo": "ctrl+90", //undo
-      "Redo": "ctrl+89" //redo
-
-    });
-    var isCollapsed = true;
-    me.addListener('keydown', function(type, evt) {
-
-      var me = this;
-      var keyCode = evt.keyCode || evt.which;
-      if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {
-        if (inputType)
-          return;
-
-        if (!me.selection.getRange().collapsed) {
-          me.undoManger.save(false, true);
-          isCollapsed = false;
-          return;
-        }
-        if (me.undoManger.list.length == 0) {
-          me.undoManger.save(true);
-        }
-        clearTimeout(saveSceneTimer);
-
-        function save(cont) {
-          cont.undoManger.save(false, true);
-          cont.fireEvent('selectionchange');
-        }
-        saveSceneTimer = setTimeout(function() {
-          if (inputType) {
-            var interalTimer = setInterval(function() {
-              if (!inputType) {
-                save(me);
-                clearInterval(interalTimer)
-              }
-            }, 300)
-            return;
-          }
-          save(me);
-        }, 200);
-
-        lastKeyCode = keyCode;
-        keycont++;
-        if (keycont >= maxInputCount) {
-          save(me)
-        }
-      }
-    });
-    me.addListener('keyup', function(type, evt) {
-      var keyCode = evt.keyCode || evt.which;
-      if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {
-        if (inputType)
-          return;
-        if (!isCollapsed) {
-          this.undoManger.save(false, true);
-          isCollapsed = true;
-        }
-      }
-    });
-    //鎵╁睍瀹炰緥锛屾坊鍔犲叧闂拰寮�鍚懡浠ndo
-    me.stopCmdUndo = function() {
-      me.__hasEnterExecCommand = true;
-    };
-    me.startCmdUndo = function() {
-      me.__hasEnterExecCommand = false;
-    }
-  };
-
-
-  // plugins/copy.js
-  UE.plugin.register('copy', function() {
-
-    var me = this;
-
-    function initZeroClipboard() {
-
-      ZeroClipboard.config({
-        debug: false,
-        swfPath: me.options.UEDITOR_HOME_URL + 'third-party/zeroclipboard/ZeroClipboard.swf'
-      });
-
-      var client = me.zeroclipboard = new ZeroClipboard();
-
-      // 澶嶅埗鍐呭
-      client.on('copy', function(e) {
-        var client = e.client,
-          rng = me.selection.getRange(),
-          div = document.createElement('div');
-
-        div.appendChild(rng.cloneContents());
-        client.setText(div.innerText || div.textContent);
-        client.setHtml(div.innerHTML);
-        rng.select();
-      });
-      // hover浜嬩欢浼犻�掑埌target
-      client.on('mouseover mouseout', function(e) {
-        var target = e.target;
-        if (e.type == 'mouseover') {
-          domUtils.addClass(target, 'edui-state-hover');
-        } else if (e.type == 'mouseout') {
-          domUtils.removeClasses(target, 'edui-state-hover');
-        }
-      });
-      // flash鍔犺浇涓嶆垚鍔�
-      client.on('wrongflash noflash', function() {
-        ZeroClipboard.destroy();
-      });
-    }
-
-    return {
-      bindEvents: {
-        'ready': function() {
-          if (!browser.ie) {
-            if (window.ZeroClipboard) {
-              initZeroClipboard();
-            } else {
-              utils.loadFile(document, {
-                src: me.options.UEDITOR_HOME_URL + "third-party/zeroclipboard/ZeroClipboard.js",
-                tag: "script",
-                type: "text/javascript",
-                defer: "defer"
-              }, function() {
-                initZeroClipboard();
-              });
-            }
-          }
-        }
-      },
-      commands: {
-        'copy': {
-          execCommand: function(cmd) {
-            if (!me.document.execCommand('copy')) {
-              alert(me.getLang('copymsg'));
-            }
-          }
-        }
-      }
-    }
-  });
-
-
-  // plugins/paste.js
-  ///import core
-  ///import plugins/inserthtml.js
-  ///import plugins/undo.js
-  ///import plugins/serialize.js
-  ///commands 绮樿创
-  ///commandsName  PastePlain
-  ///commandsTitle  绾枃鏈矘璐存ā寮�
-  /**
-   * @description 绮樿创
-   * @author zhanyi
-   */
-  UE.plugins['paste'] = function() {
-    function getClipboardData(callback) {
-      var doc = this.document;
-      if (doc.getElementById('baidu_pastebin')) {
-        return;
-      }
-      var range = this.selection.getRange(),
-        bk = range.createBookmark(),
-        //鍒涘缓鍓创鐨勫鍣╠iv
-        pastebin = doc.createElement('div');
-      pastebin.id = 'baidu_pastebin';
-      // Safari 瑕佹眰div蹇呴』鏈夊唴瀹癸紝鎵嶈兘绮樿创鍐呭杩涙潵
-      browser.webkit && pastebin.appendChild(doc.createTextNode(domUtils.fillChar + domUtils.fillChar));
-      doc.body.appendChild(pastebin);
-      //trace:717 闅愯棌鐨剆pan涓嶈兘寰楀埌top
-      //bk.start.innerHTML = '&nbsp;';
-      bk.start.style.display = '';
-      pastebin.style.cssText =
-        "position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:" +
-        //瑕佸湪鐜板湪鍏夋爣骞宠鐨勪綅缃姞鍏ワ紝鍚﹀垯浼氬嚭鐜拌烦鍔ㄧ殑闂
-        domUtils.getXY(bk.start).y + 'px';
-
-      range.selectNodeContents(pastebin).select(true);
-
-      setTimeout(function() {
-        if (browser.webkit) {
-          for (var i = 0, pastebins = doc.querySelectorAll('#baidu_pastebin'), pi; pi = pastebins[i++];) {
-            if (domUtils.isEmptyNode(pi)) {
-              domUtils.remove(pi);
-            } else {
-              pastebin = pi;
-              break;
-            }
-          }
-        }
-        try {
-          pastebin.parentNode.removeChild(pastebin);
-        } catch (e) {}
-        range.moveToBookmark(bk).select(true);
-        callback(pastebin);
-      }, 0);
-    }
-
-    var me = this;
-
-    me.setOpt({
-      retainOnlyLabelPasted: false
-    });
-
-    var txtContent, htmlContent, address;
-
-    function getPureHtml(html) {
-      return html.replace(/<(\/?)([\w\-]+)([^>]*)>/gi, function(a, b, tagName, attrs) {
-        tagName = tagName.toLowerCase();
-        if ({
-            img: 1
-          } [tagName]) {
-          return a;
-        }
-        attrs = attrs.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi, function(str, atr, val) {
-          if ({
-              'src': 1,
-              'href': 1,
-              'name': 1
-            } [atr.toLowerCase()]) {
-            return atr + '=' + val + ' '
-          }
-          return ''
-        });
-        if ({
-            'span': 1,
-            'div': 1
-          } [tagName]) {
-          return ''
-        } else {
-
-          return '<' + b + tagName + ' ' + utils.trim(attrs) + '>'
-        }
-
-      });
-    }
-
-    function filter(div) {
-      var html;
-      if (div.firstChild) {
-        //鍘绘帀cut涓坊鍔犵殑杈圭晫鍊�
-        var nodes = domUtils.getElementsByTagName(div, 'span');
-        for (var i = 0, ni; ni = nodes[i++];) {
-          if (ni.id == '_baidu_cut_start' || ni.id == '_baidu_cut_end') {
-            domUtils.remove(ni);
-          }
-        }
-
-        if (browser.webkit) {
-
-          var brs = div.querySelectorAll('div br');
-          for (var i = 0, bi; bi = brs[i++];) {
-            var pN = bi.parentNode;
-            if (pN.tagName == 'DIV' && pN.childNodes.length == 1) {
-              pN.innerHTML = '<p><br/></p>';
-              domUtils.remove(pN);
-            }
-          }
-          var divs = div.querySelectorAll('#baidu_pastebin');
-          for (var i = 0, di; di = divs[i++];) {
-            var tmpP = me.document.createElement('p');
-            di.parentNode.insertBefore(tmpP, di);
-            while (di.firstChild) {
-              tmpP.appendChild(di.firstChild);
-            }
-            domUtils.remove(di);
-          }
-
-          var metas = div.querySelectorAll('meta');
-          for (var i = 0, ci; ci = metas[i++];) {
-            domUtils.remove(ci);
-          }
-
-          var brs = div.querySelectorAll('br');
-          for (i = 0; ci = brs[i++];) {
-            if (/^apple-/i.test(ci.className)) {
-              domUtils.remove(ci);
-            }
-          }
-        }
-        if (browser.gecko) {
-          var dirtyNodes = div.querySelectorAll('[_moz_dirty]');
-          for (i = 0; ci = dirtyNodes[i++];) {
-            ci.removeAttribute('_moz_dirty');
-          }
-        }
-        if (!browser.ie) {
-          var spans = div.querySelectorAll('span.Apple-style-span');
-          for (var i = 0, ci; ci = spans[i++];) {
-            domUtils.remove(ci, true);
-          }
-        }
-
-        //ie涓嬩娇鐢╥nnerHTML浼氫骇鐢熷浣欑殑\r\n瀛楃锛屼篃浼氫骇鐢�&nbsp;杩欓噷杩囨护鎺�
-        html = div.innerHTML; //.replace(/>(?:(\s|&nbsp;)*?)</g,'><');
-
-        //杩囨护word绮樿创杩囨潵鐨勫啑浣欏睘鎬�
-        html = UE.filterWord(html);
-        //鍙栨秷浜嗗拷鐣ョ┖鐧界殑绗簩涓弬鏁帮紝绮樿创杩囨潵鐨勬湁浜涙槸鏈夌┖鐧界殑锛屼細琚涓婄浉鍏崇殑鏍囩
-        var root = UE.htmlparser(html);
-        //濡傛灉缁欎簡杩囨护瑙勫垯灏卞厛杩涜杩囨护
-        if (me.options.filterRules) {
-          UE.filterNode(root, me.options.filterRules);
-        }
-        //鎵ц榛樿鐨勫鐞�
-        me.filterInputRule(root);
-        //閽堝chrome鐨勫鐞�
-        if (browser.webkit) {
-          var br = root.lastChild();
-          if (br && br.type == 'element' && br.tagName == 'br') {
-            root.removeChild(br)
-          }
-          utils.each(me.body.querySelectorAll('div'), function(node) {
-            if (domUtils.isEmptyBlock(node)) {
-              domUtils.remove(node, true)
-            }
-          })
-        }
-        html = {
-          'html': root.toHtml()
-        };
-        me.fireEvent('beforepaste', html, root);
-        //鎶簡榛樿鐨勭矘璐达紝閭e悗杈圭殑鍐呭灏变笉鎵ц浜嗭紝姣斿琛ㄦ牸绮樿创
-        if (!html.html) {
-          return;
-        }
-        root = UE.htmlparser(html.html, true);
-        //濡傛灉寮�鍚簡绾枃鏈ā寮�
-        if (me.queryCommandState('pasteplain') === 1) {
-          me.execCommand('insertHtml', UE.filterNode(root, me.options.filterTxtRules).toHtml(), true);
-        } else {
-          //鏂囨湰妯″紡
-          UE.filterNode(root, me.options.filterTxtRules);
-          txtContent = root.toHtml();
-          //瀹屽叏妯″紡
-          htmlContent = html.html;
-
-          address = me.selection.getRange().createAddress(true);
-          me.execCommand('insertHtml', me.getOpt('retainOnlyLabelPasted') === true ? getPureHtml(htmlContent) :
-            htmlContent, true);
-        }
-        me.fireEvent("afterpaste", html);
-      }
-    }
-
-    me.addListener('pasteTransfer', function(cmd, plainType) {
-
-      if (address && txtContent && htmlContent && txtContent != htmlContent) {
-        var range = me.selection.getRange();
-        range.moveToAddress(address, true);
-
-        if (!range.collapsed) {
-
-          while (!domUtils.isBody(range.startContainer)) {
-            var start = range.startContainer;
-            if (start.nodeType == 1) {
-              start = start.childNodes[range.startOffset];
-              if (!start) {
-                range.setStartBefore(range.startContainer);
-                continue;
-              }
-              var pre = start.previousSibling;
-
-              if (pre && pre.nodeType == 3 && new RegExp('^[\n\r\t ' + domUtils.fillChar + ']*$').test(pre.nodeValue)) {
-                range.setStartBefore(pre)
-              }
-            }
-            if (range.startOffset == 0) {
-              range.setStartBefore(range.startContainer);
-            } else {
-              break;
-            }
-
-          }
-          while (!domUtils.isBody(range.endContainer)) {
-            var end = range.endContainer;
-            if (end.nodeType == 1) {
-              end = end.childNodes[range.endOffset];
-              if (!end) {
-                range.setEndAfter(range.endContainer);
-                continue;
-              }
-              var next = end.nextSibling;
-              if (next && next.nodeType == 3 && new RegExp('^[\n\r\t' + domUtils.fillChar + ']*$').test(next.nodeValue)) {
-                range.setEndAfter(next)
-              }
-            }
-            if (range.endOffset == range.endContainer[range.endContainer.nodeType == 3 ? 'nodeValue' :
-                'childNodes'].length) {
-              range.setEndAfter(range.endContainer);
-            } else {
-              break;
-            }
-
-          }
-
-        }
-
-        range.deleteContents();
-        range.select(true);
-        me.__hasEnterExecCommand = true;
-        var html = htmlContent;
-        if (plainType === 2) {
-          html = getPureHtml(html);
-        } else if (plainType) {
-          html = txtContent;
-        }
-        me.execCommand('inserthtml', html, true);
-        me.__hasEnterExecCommand = false;
-        var rng = me.selection.getRange();
-        while (!domUtils.isBody(rng.startContainer) && !rng.startOffset &&
-          rng.startContainer[rng.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length
-        ) {
-          rng.setStartBefore(rng.startContainer);
-        }
-        var tmpAddress = rng.createAddress(true);
-        address.endAddress = tmpAddress.startAddress;
-      }
-    });
-
-    me.addListener('ready', function() {
-      domUtils.on(me.body, 'cut', function() {
-        var range = me.selection.getRange();
-        if (!range.collapsed && me.undoManger) {
-          me.undoManger.save();
-        }
-      });
-
-      //ie涓媌eforepaste鍦ㄧ偣鍑诲彸閿椂涔熶細瑙﹀彂锛屾墍浠ョ敤鐩戞帶閿洏鎵嶅鐞�
-      domUtils.on(me.body, browser.ie || browser.opera ? 'keydown' : 'paste', function(e) {
-        if ((browser.ie || browser.opera) && ((!e.ctrlKey && !e.metaKey) || e.keyCode != '86')) {
-          return;
-        }
-        getClipboardData.call(me, function(div) {
-          filter(div);
-        });
-      });
-
-    });
-
-    me.commands['paste'] = {
-      execCommand: function(cmd) {
-        if (browser.ie) {
-          getClipboardData.call(me, function(div) {
-            filter(div);
-          });
-          me.document.execCommand('paste');
-        } else {
-          alert(me.getLang('pastemsg'));
-        }
-      }
-    }
-  };
-
-
-
-  // plugins/puretxtpaste.js
-  /**
-   * 绾枃鏈矘璐存彃浠�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  UE.plugins['pasteplain'] = function() {
-    var me = this;
-    me.setOpt({
-      'pasteplain': false,
-      'filterTxtRules': function() {
-        function transP(node) {
-          node.tagName = 'p';
-          node.setStyle();
-        }
-
-        function removeNode(node) {
-          node.parentNode.removeChild(node, true)
-        }
-        return {
-          //鐩存帴鍒犻櫎鍙婂叾瀛楄妭鐐瑰唴瀹�
-          '-': 'script style object iframe embed input select',
-          'p': {
-            $: {}
-          },
-          'br': {
-            $: {}
-          },
-          div: function(node) {
-            var tmpNode, p = UE.uNode.createElement('p');
-            while (tmpNode = node.firstChild()) {
-              if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) {
-                p.appendChild(tmpNode);
-              } else {
-                if (p.firstChild()) {
-                  node.parentNode.insertBefore(p, node);
-                  p = UE.uNode.createElement('p');
-                } else {
-                  node.parentNode.insertBefore(tmpNode, node);
-                }
-              }
-            }
-            if (p.firstChild()) {
-              node.parentNode.insertBefore(p, node);
-            }
-            node.parentNode.removeChild(node);
-          },
-          ol: removeNode,
-          ul: removeNode,
-          dl: removeNode,
-          dt: removeNode,
-          dd: removeNode,
-          'li': removeNode,
-          'caption': transP,
-          'th': transP,
-          'tr': transP,
-          'h1': transP,
-          'h2': transP,
-          'h3': transP,
-          'h4': transP,
-          'h5': transP,
-          'h6': transP,
-          'td': function(node) {
-            //娌℃湁鍐呭鐨則d鐩存帴鍒犳帀
-            var txt = !!node.innerText();
-            if (txt) {
-              node.parentNode.insertAfter(UE.uNode.createText(' &nbsp; &nbsp;'), node);
-            }
-            node.parentNode.removeChild(node, node.innerText())
-          }
-        }
-      }()
-    });
-    //鏆傛椂杩欓噷鏀寔涓�涓嬭�佺増鏈殑灞炴��
-    var pasteplain = me.options.pasteplain;
-
-    /**
-     * 鍚敤鎴栧彇娑堢函鏂囨湰绮樿创妯″紡
-     * @command pasteplain
-     * @method execCommand
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @example
-     * ```javascript
-     * editor.queryCommandState( 'pasteplain' );
-     * ```
-     */
-
-    /**
-     * 鏌ヨ褰撳墠鏄惁澶勪簬绾枃鏈矘璐存ā寮�
-     * @command pasteplain
-     * @method queryCommandState
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @return { int } 濡傛灉澶勪簬绾枃鏈ā寮忥紝杩斿洖1锛屽惁鍒欙紝杩斿洖0
-     * @example
-     * ```javascript
-     * editor.queryCommandState( 'pasteplain' );
-     * ```
-     */
-    me.commands['pasteplain'] = {
-      queryCommandState: function() {
-        return pasteplain ? 1 : 0;
-      },
-      execCommand: function() {
-        pasteplain = !pasteplain | 0;
-      },
-      notNeedUndo: 1
-    };
-  };
-
-  // plugins/list.js
-  /**
-   * 鏈夊簭鍒楄〃,鏃犲簭鍒楄〃鎻掍欢
-   * @file
-   * @since 1.2.6.1
-   */
-
-  UE.plugins['list'] = function() {
-    var me = this,
-      notExchange = {
-        'TD': 1,
-        'PRE': 1,
-        'BLOCKQUOTE': 1
-      };
-    var customStyle = {
-      'cn': 'cn-1-',
-      'cn1': 'cn-2-',
-      'cn2': 'cn-3-',
-      'num': 'num-1-',
-      'num1': 'num-2-',
-      'num2': 'num-3-',
-      'dash': 'dash',
-      'dot': 'dot'
-    };
-
-    me.setOpt({
-      'autoTransWordToList': false,
-      'insertorderedlist': {
-        'num': '',
-        'num1': '',
-        'num2': '',
-        'cn': '',
-        'cn1': '',
-        'cn2': '',
-        'decimal': '',
-        'lower-alpha': '',
-        'lower-roman': '',
-        'upper-alpha': '',
-        'upper-roman': ''
-      },
-      'insertunorderedlist': {
-        'circle': '',
-        'disc': '',
-        'square': '',
-        'dash': '',
-        'dot': ''
-      },
-      listDefaultPaddingLeft: '30',
-      listiconpath: 'http://bs.baidu.com/listicon/',
-      maxListLevel: -1, //-1涓嶉檺鍒�
-      disablePInList: false
-    });
-
-    function listToArray(list) {
-      var arr = [];
-      for (var p in list) {
-        arr.push(p)
-      }
-      return arr;
-    }
-    var listStyle = {
-      'OL': listToArray(me.options.insertorderedlist),
-      'UL': listToArray(me.options.insertunorderedlist)
-    };
-    var liiconpath = me.options.listiconpath;
-
-    //鏍规嵁鐢ㄦ埛閰嶇疆锛岃皟鏁碿ustomStyle
-    for (var s in customStyle) {
-      if (!me.options.insertorderedlist.hasOwnProperty(s) && !me.options.insertunorderedlist.hasOwnProperty(s)) {
-        delete customStyle[s];
-      }
-    }
-
-    me.ready(function() {
-      var customCss = [];
-      for (var p in customStyle) {
-        if (p == 'dash' || p == 'dot') {
-          customCss.push('li.list-' + customStyle[p] + '{background-image:url(' + liiconpath + customStyle[p] +
-            '.gif)}');
-          customCss.push('ul.custom_' + p + '{list-style:none;}ul.custom_' + p +
-            ' li{background-position:0 3px;background-repeat:no-repeat}');
-        } else {
-          for (var i = 0; i < 99; i++) {
-            customCss.push('li.list-' + customStyle[p] + i + '{background-image:url(' + liiconpath + 'list-' +
-              customStyle[p] + i + '.gif)}')
-          }
-          customCss.push('ol.custom_' + p + '{list-style:none;}ol.custom_' + p +
-            ' li{background-position:0 3px;background-repeat:no-repeat}');
-        }
-        switch (p) {
-          case 'cn':
-            customCss.push('li.list-' + p + '-paddingleft-1{padding-left:25px}');
-            customCss.push('li.list-' + p + '-paddingleft-2{padding-left:40px}');
-            customCss.push('li.list-' + p + '-paddingleft-3{padding-left:55px}');
-            break;
-          case 'cn1':
-            customCss.push('li.list-' + p + '-paddingleft-1{padding-left:30px}');
-            customCss.push('li.list-' + p + '-paddingleft-2{padding-left:40px}');
-            customCss.push('li.list-' + p + '-paddingleft-3{padding-left:55px}');
-            break;
-          case 'cn2':
-            customCss.push('li.list-' + p + '-paddingleft-1{padding-left:40px}');
-            customCss.push('li.list-' + p + '-paddingleft-2{padding-left:55px}');
-            customCss.push('li.list-' + p + '-paddingleft-3{padding-left:68px}');
-            break;
-          case 'num':
-          case 'num1':
-            customCss.push('li.list-' + p + '-paddingleft-1{padding-left:25px}');
-            break;
-          case 'num2':
-            customCss.push('li.list-' + p + '-paddingleft-1{padding-left:35px}');
-            customCss.push('li.list-' + p + '-paddingleft-2{padding-left:40px}');
-            break;
-          case 'dash':
-            customCss.push('li.list-' + p + '-paddingleft{padding-left:35px}');
-            break;
-          case 'dot':
-            customCss.push('li.list-' + p + '-paddingleft{padding-left:20px}');
-        }
-      }
-      customCss.push('.list-paddingleft-1{padding-left:0}');
-      customCss.push('.list-paddingleft-2{padding-left:' + me.options.listDefaultPaddingLeft + 'px}');
-      customCss.push('.list-paddingleft-3{padding-left:' + me.options.listDefaultPaddingLeft * 2 + 'px}');
-      //濡傛灉涓嶇粰瀹藉害浼氬湪鑷畾搴旀牱寮忛噷鍑虹幇婊氬姩鏉�
-      utils.cssRule('list', 'ol,ul{margin:0;pading:0;' + (browser.ie ? '' : 'width:95%') + '}li{clear:both;}' +
-        customCss.join('\n'), me.document);
-    });
-    //鍗曠嫭澶勭悊鍓垏鐨勯棶棰�
-    me.ready(function() {
-      domUtils.on(me.body, 'cut', function() {
-        setTimeout(function() {
-          var rng = me.selection.getRange(),
-            li;
-          //trace:3416
-          if (!rng.collapsed) {
-            if (li = domUtils.findParentByTagName(rng.startContainer, 'li', true)) {
-              if (!li.nextSibling && domUtils.isEmptyBlock(li)) {
-                var pn = li.parentNode,
-                  node;
-                if (node = pn.previousSibling) {
-                  domUtils.remove(pn);
-                  rng.setStartAtLast(node).collapse(true);
-                  rng.select(true);
-                } else if (node = pn.nextSibling) {
-                  domUtils.remove(pn);
-                  rng.setStartAtFirst(node).collapse(true);
-                  rng.select(true);
-                } else {
-                  var tmpNode = me.document.createElement('p');
-                  domUtils.fillNode(me.document, tmpNode);
-                  pn.parentNode.insertBefore(tmpNode, pn);
-                  domUtils.remove(pn);
-                  rng.setStart(tmpNode, 0).collapse(true);
-                  rng.select(true);
-                }
-              }
-            }
-          }
-
-        })
-      })
-    });
-
-    function getStyle(node) {
-      var cls = node.className;
-      if (domUtils.hasClass(node, /custom_/)) {
-        return cls.match(/custom_(\w+)/)[1]
-      }
-      return domUtils.getStyle(node, 'list-style-type')
-
-    }
-
-    me.addListener('beforepaste', function(type, html) {
-      var me = this,
-        rng = me.selection.getRange(),
-        li;
-      var root = UE.htmlparser(html.html, true);
-      if (li = domUtils.findParentByTagName(rng.startContainer, 'li', true)) {
-        var list = li.parentNode,
-          tagName = list.tagName == 'OL' ? 'ul' : 'ol';
-        utils.each(root.getNodesByTagName(tagName), function(n) {
-          n.tagName = list.tagName;
-          n.setAttr();
-          if (n.parentNode === root) {
-            type = getStyle(list) || (list.tagName == 'OL' ? 'decimal' : 'disc')
-          } else {
-            var className = n.parentNode.getAttr('class');
-            if (className && /custom_/.test(className)) {
-              type = className.match(/custom_(\w+)/)[1]
-            } else {
-              type = n.parentNode.getStyle('list-style-type');
-            }
-            if (!type) {
-              type = list.tagName == 'OL' ? 'decimal' : 'disc';
-            }
-          }
-          var index = utils.indexOf(listStyle[list.tagName], type);
-          if (n.parentNode !== root)
-            index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1;
-          var currentStyle = listStyle[list.tagName][index];
-          if (customStyle[currentStyle]) {
-            n.setAttr('class', 'custom_' + currentStyle)
-
-          } else {
-            n.setStyle('list-style-type', currentStyle)
-          }
-        })
-
-      }
-
-      html.html = root.toHtml();
-    });
-    //瀵煎嚭鏃讹紝鍘绘帀p鏍囩
-    me.getOpt('disablePInList') === true && me.addOutputRule(function(root) {
-      utils.each(root.getNodesByTagName('li'), function(li) {
-        var newChildrens = [],
-          index = 0;
-        utils.each(li.children, function(n) {
-          if (n.tagName == 'p') {
-            var tmpNode;
-            while (tmpNode = n.children.pop()) {
-              newChildrens.splice(index, 0, tmpNode);
-              tmpNode.parentNode = li;
-              lastNode = tmpNode;
-            }
-            tmpNode = newChildrens[newChildrens.length - 1];
-            if (!tmpNode || tmpNode.type != 'element' || tmpNode.tagName != 'br') {
-              var br = UE.uNode.createElement('br');
-              br.parentNode = li;
-              newChildrens.push(br);
-            }
-
-            index = newChildrens.length;
-          }
-        });
-        if (newChildrens.length) {
-          li.children = newChildrens;
-        }
-      });
-    });
-    //杩涘叆缂栬緫鍣ㄧ殑li瑕佸p鏍囩
-    me.addInputRule(function(root) {
-      utils.each(root.getNodesByTagName('li'), function(li) {
-        var tmpP = UE.uNode.createElement('p');
-        for (var i = 0, ci; ci = li.children[i];) {
-          if (ci.type == 'text' || dtd.p[ci.tagName]) {
-            tmpP.appendChild(ci);
-          } else {
-            if (tmpP.firstChild()) {
-              li.insertBefore(tmpP, ci);
-              tmpP = UE.uNode.createElement('p');
-              i = i + 2;
-            } else {
-              i++;
-            }
-
-          }
-        }
-        if (tmpP.firstChild() && !tmpP.parentNode || !li.firstChild()) {
-          li.appendChild(tmpP);
-        }
-        //trace:3357
-        //p涓嶈兘涓虹┖
-        if (!tmpP.firstChild()) {
-          tmpP.innerHTML(browser.ie ? '&nbsp;' : '<br/>')
-        }
-        //鍘绘帀鏈熬鐨勭┖鐧�
-        var p = li.firstChild();
-        var lastChild = p.lastChild();
-        if (lastChild && lastChild.type == 'text' && /^\s*$/.test(lastChild.data)) {
-          p.removeChild(lastChild)
-        }
-      });
-      if (me.options.autoTransWordToList) {
-        var orderlisttype = {
-            'num1': /^\d+\)/,
-            'decimal': /^\d+\./,
-            'lower-alpha': /^[a-z]+\)/,
-            'upper-alpha': /^[A-Z]+\./,
-            'cn': /^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/,
-            'cn2': /^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/
-          },
-          unorderlisttype = {
-            'square': 'n'
-          };
-
-        function checkListType(content, container) {
-          var span = container.firstChild();
-          if (span && span.type == 'element' && span.tagName == 'span' && /Wingdings|Symbol/.test(span.getStyle(
-              'font-family'))) {
-            for (var p in unorderlisttype) {
-              if (unorderlisttype[p] == span.data) {
-                return p
-              }
-            }
-            return 'disc'
-          }
-          for (var p in orderlisttype) {
-            if (orderlisttype[p].test(content)) {
-              return p;
-            }
-          }
-
-        }
-        utils.each(root.getNodesByTagName('p'), function(node) {
-          if (node.getAttr('class') != 'MsoListParagraph') {
-            return
-          }
-
-          //word绮樿创杩囨潵鐨勪細甯︽湁margin瑕佸幓鎺�,浣嗚繖鏍蜂篃鍙兘浼氳鍛戒腑涓�浜涘ぎ瑙�
-          node.setStyle('margin', '');
-          node.setStyle('margin-left', '');
-          node.setAttr('class', '');
-
-          function appendLi(list, p, type) {
-            if (list.tagName == 'ol') {
-              if (browser.ie) {
-                var first = p.firstChild();
-                if (first.type == 'element' && first.tagName == 'span' && orderlisttype[type].test(first.innerText())) {
-                  p.removeChild(first);
-                }
-              } else {
-                p.innerHTML(p.innerHTML().replace(orderlisttype[type], ''));
-              }
-            } else {
-              p.removeChild(p.firstChild())
-            }
-
-            var li = UE.uNode.createElement('li');
-            li.appendChild(p);
-            list.appendChild(li);
-          }
-          var tmp = node,
-            type, cacheNode = node;
-
-          if (node.parentNode.tagName != 'li' && (type = checkListType(node.innerText(), node))) {
-
-            var list = UE.uNode.createElement(me.options.insertorderedlist.hasOwnProperty(type) ? 'ol' :
-              'ul');
-            if (customStyle[type]) {
-              list.setAttr('class', 'custom_' + type)
-            } else {
-              list.setStyle('list-style-type', type)
-            }
-            while (node && node.parentNode.tagName != 'li' && checkListType(node.innerText(), node)) {
-              tmp = node.nextSibling();
-              if (!tmp) {
-                node.parentNode.insertBefore(list, node)
-              }
-              appendLi(list, node, type);
-              node = tmp;
-            }
-            if (!list.parentNode && node && node.parentNode) {
-              node.parentNode.insertBefore(list, node)
-            }
-          }
-          var span = cacheNode.firstChild();
-          if (span && span.type == 'element' && span.tagName == 'span' && /^\s*(&nbsp;)+\s*$/.test(span.innerText())) {
-            span.parentNode.removeChild(span)
-          }
-        })
-      }
-
-    });
-
-    //璋冩暣绱㈠紩鏍囩
-    me.addListener('contentchange', function() {
-      adjustListStyle(me.document)
-    });
-
-    function adjustListStyle(doc, ignore) {
-      utils.each(domUtils.getElementsByTagName(doc, 'ol ul'), function(node) {
-
-        if (!domUtils.inDoc(node, doc))
-          return;
-
-        var parent = node.parentNode;
-        if (parent.tagName == node.tagName) {
-          var nodeStyleType = getStyle(node) || (node.tagName == 'OL' ? 'decimal' : 'disc'),
-            parentStyleType = getStyle(parent) || (parent.tagName == 'OL' ? 'decimal' : 'disc');
-          if (nodeStyleType == parentStyleType) {
-            var styleIndex = utils.indexOf(listStyle[node.tagName], nodeStyleType);
-            styleIndex = styleIndex + 1 == listStyle[node.tagName].length ? 0 : styleIndex + 1;
-            setListStyle(node, listStyle[node.tagName][styleIndex])
-          }
-
-        }
-        var index = 0,
-          type = 2;
-        if (domUtils.hasClass(node, /custom_/)) {
-          if (!(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent, /custom_/))) {
-            type = 1;
-          }
-        } else {
-          if (/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent, /custom_/)) {
-            type = 3;
-          }
-        }
-
-        var style = domUtils.getStyle(node, 'list-style-type');
-        style && (node.style.cssText = 'list-style-type:' + style);
-        node.className = utils.trim(node.className.replace(/list-paddingleft-\w+/, '')) + ' list-paddingleft-' +
-          type;
-        utils.each(domUtils.getElementsByTagName(node, 'li'), function(li) {
-          li.style.cssText && (li.style.cssText = '');
-          if (!li.firstChild) {
-            domUtils.remove(li);
-            return;
-          }
-          if (li.parentNode !== node) {
-            return;
-          }
-          index++;
-          if (domUtils.hasClass(node, /custom_/)) {
-            var paddingLeft = 1,
-              currentStyle = getStyle(node);
-            if (node.tagName == 'OL') {
-              if (currentStyle) {
-                switch (currentStyle) {
-                  case 'cn':
-                  case 'cn1':
-                  case 'cn2':
-                    if (index > 10 && (index % 10 == 0 || index > 10 && index < 20)) {
-                      paddingLeft = 2
-                    } else if (index > 20) {
-                      paddingLeft = 3
-                    }
-                    break;
-                  case 'num2':
-                    if (index > 9) {
-                      paddingLeft = 2
-                    }
-                }
-              }
-              li.className = 'list-' + customStyle[currentStyle] + index + ' ' + 'list-' + currentStyle +
-                '-paddingleft-' + paddingLeft;
-            } else {
-              li.className = 'list-' + customStyle[currentStyle] + ' ' + 'list-' + currentStyle +
-                '-paddingleft';
-            }
-          } else {
-            li.className = li.className.replace(/list-[\w\-]+/gi, '');
-          }
-          var className = li.getAttribute('class');
-          if (className !== null && !className.replace(/\s/g, '')) {
-            domUtils.removeAttributes(li, 'class')
-          }
-        });
-        !ignore && adjustList(node, node.tagName.toLowerCase(), getStyle(node) || domUtils.getStyle(node,
-          'list-style-type'), true);
-      })
-    }
-
-    function adjustList(list, tag, style, ignoreEmpty) {
-      var nextList = list.nextSibling;
-      if (nextList && nextList.nodeType == 1 && nextList.tagName.toLowerCase() == tag && (getStyle(nextList) ||
-          domUtils.getStyle(nextList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) {
-        domUtils.moveChild(nextList, list);
-        if (nextList.childNodes.length == 0) {
-          domUtils.remove(nextList);
-        }
-      }
-      if (nextList && domUtils.isFillChar(nextList)) {
-        domUtils.remove(nextList);
-      }
-      var preList = list.previousSibling;
-      if (preList && preList.nodeType == 1 && preList.tagName.toLowerCase() == tag && (getStyle(preList) ||
-          domUtils.getStyle(preList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) {
-        domUtils.moveChild(list, preList);
-      }
-      if (preList && domUtils.isFillChar(preList)) {
-        domUtils.remove(preList);
-      }!ignoreEmpty && domUtils.isEmptyBlock(list) && domUtils.remove(list);
-      if (getStyle(list)) {
-        adjustListStyle(list.ownerDocument, true)
-      }
-    }
-
-    function setListStyle(list, style) {
-      if (customStyle[style]) {
-        list.className = 'custom_' + style;
-      }
-      try {
-        domUtils.setStyle(list, 'list-style-type', style);
-      } catch (e) {}
-    }
-
-    function clearEmptySibling(node) {
-      var tmpNode = node.previousSibling;
-      if (tmpNode && domUtils.isEmptyBlock(tmpNode)) {
-        domUtils.remove(tmpNode);
-      }
-      tmpNode = node.nextSibling;
-      if (tmpNode && domUtils.isEmptyBlock(tmpNode)) {
-        domUtils.remove(tmpNode);
-      }
-    }
-
-    me.addListener('keydown', function(type, evt) {
-      function preventAndSave() {
-        evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);
-        me.fireEvent('contentchange');
-        me.undoManger && me.undoManger.save();
-      }
-
-      function findList(node, filterFn) {
-        while (node && !domUtils.isBody(node)) {
-          if (filterFn(node)) {
-            return null
-          }
-          if (node.nodeType == 1 && /[ou]l/i.test(node.tagName)) {
-            return node;
-          }
-          node = node.parentNode;
-        }
-        return null;
-      }
-      var keyCode = evt.keyCode || evt.which;
-      if (keyCode == 13 && !evt.shiftKey) { //鍥炶溅
-        var rng = me.selection.getRange(),
-          parent = domUtils.findParent(rng.startContainer, function(node) {
-            return domUtils.isBlockElm(node)
-          }, true),
-          li = domUtils.findParentByTagName(rng.startContainer, 'li', true);
-        if (parent && parent.tagName != 'PRE' && !li) {
-          var html = parent.innerHTML.replace(new RegExp(domUtils.fillChar, 'g'), '');
-          if (/^\s*1\s*\.[^\d]/.test(html)) {
-            parent.innerHTML = html.replace(/^\s*1\s*\./, '');
-            rng.setStartAtLast(parent).collapse(true).select();
-            me.__hasEnterExecCommand = true;
-            me.execCommand('insertorderedlist');
-            me.__hasEnterExecCommand = false;
-          }
-        }
-        var range = me.selection.getRange(),
-          start = findList(range.startContainer, function(node) {
-            return node.tagName == 'TABLE';
-          }),
-          end = range.collapsed ? start : findList(range.endContainer, function(node) {
-            return node.tagName == 'TABLE';
-          });
-
-        if (start && end && start === end) {
-
-          if (!range.collapsed) {
-            start = domUtils.findParentByTagName(range.startContainer, 'li', true);
-            end = domUtils.findParentByTagName(range.endContainer, 'li', true);
-            if (start && end && start === end) {
-              range.deleteContents();
-              li = domUtils.findParentByTagName(range.startContainer, 'li', true);
-              if (li && domUtils.isEmptyBlock(li)) {
-
-                pre = li.previousSibling;
-                next = li.nextSibling;
-                p = me.document.createElement('p');
-
-                domUtils.fillNode(me.document, p);
-                parentList = li.parentNode;
-                if (pre && next) {
-                  range.setStart(next, 0).collapse(true).select(true);
-                  domUtils.remove(li);
-
-                } else {
-                  if (!pre && !next || !pre) {
-
-                    parentList.parentNode.insertBefore(p, parentList);
-
-
-                  } else {
-                    li.parentNode.parentNode.insertBefore(p, parentList.nextSibling);
-                  }
-                  domUtils.remove(li);
-                  if (!parentList.firstChild) {
-                    domUtils.remove(parentList);
-                  }
-                  range.setStart(p, 0).setCursor();
-
-
-                }
-                preventAndSave();
-                return;
-
-              }
-            } else {
-              var tmpRange = range.cloneRange(),
-                bk = tmpRange.collapse(false).createBookmark();
-
-              range.deleteContents();
-              tmpRange.moveToBookmark(bk);
-              var li = domUtils.findParentByTagName(tmpRange.startContainer, 'li', true);
-
-              clearEmptySibling(li);
-              tmpRange.select();
-              preventAndSave();
-              return;
-            }
-          }
-
-
-          li = domUtils.findParentByTagName(range.startContainer, 'li', true);
-
-          if (li) {
-            if (domUtils.isEmptyBlock(li)) {
-              bk = range.createBookmark();
-              var parentList = li.parentNode;
-              if (li !== parentList.lastChild) {
-                domUtils.breakParent(li, parentList);
-                clearEmptySibling(li);
-              } else {
-
-                parentList.parentNode.insertBefore(li, parentList.nextSibling);
-                if (domUtils.isEmptyNode(parentList)) {
-                  domUtils.remove(parentList);
-                }
-              }
-              //宓屽涓嶅鐞�
-              if (!dtd.$list[li.parentNode.tagName]) {
-
-                if (!domUtils.isBlockElm(li.firstChild)) {
-                  p = me.document.createElement('p');
-                  li.parentNode.insertBefore(p, li);
-                  while (li.firstChild) {
-                    p.appendChild(li.firstChild);
-                  }
-                  domUtils.remove(li);
-                } else {
-                  domUtils.remove(li, true);
-                }
-              }
-              range.moveToBookmark(bk).select();
-
-
-            } else {
-              var first = li.firstChild;
-              if (!first || !domUtils.isBlockElm(first)) {
-                var p = me.document.createElement('p');
-
-                !li.firstChild && domUtils.fillNode(me.document, p);
-                while (li.firstChild) {
-
-                  p.appendChild(li.firstChild);
-                }
-                li.appendChild(p);
-                first = p;
-              }
-
-              var span = me.document.createElement('span');
-
-              range.insertNode(span);
-              domUtils.breakParent(span, li);
-
-              var nextLi = span.nextSibling;
-              first = nextLi.firstChild;
-
-              if (!first) {
-                p = me.document.createElement('p');
-
-                domUtils.fillNode(me.document, p);
-                nextLi.appendChild(p);
-                first = p;
-              }
-              if (domUtils.isEmptyNode(first)) {
-                first.innerHTML = '';
-                domUtils.fillNode(me.document, first);
-              }
-
-              range.setStart(first, 0).collapse(true).shrinkBoundary().select();
-              domUtils.remove(span);
-              var pre = nextLi.previousSibling;
-              if (pre && domUtils.isEmptyBlock(pre)) {
-                pre.innerHTML = '<p></p>';
-                domUtils.fillNode(me.document, pre.firstChild);
-              }
-
-            }
-            //                        }
-            preventAndSave();
-          }
-
-
-        }
-
-
-      }
-      if (keyCode == 8) {
-        //淇腑ie涓璴i涓嬬殑闂
-        range = me.selection.getRange();
-        if (range.collapsed && domUtils.isStartInblock(range)) {
-          tmpRange = range.cloneRange().trimBoundary();
-          li = domUtils.findParentByTagName(range.startContainer, 'li', true);
-          //瑕佸湪li鐨勬渶宸﹁竟锛屾墠鑳藉鐞�
-          if (li && domUtils.isStartInblock(tmpRange)) {
-            start = domUtils.findParentByTagName(range.startContainer, 'p', true);
-            if (start && start !== li.firstChild) {
-              var parentList = domUtils.findParentByTagName(start, ['ol', 'ul']);
-              domUtils.breakParent(start, parentList);
-              clearEmptySibling(start);
-              me.fireEvent('contentchange');
-              range.setStart(start, 0).setCursor(false, true);
-              me.fireEvent('saveScene');
-              domUtils.preventDefault(evt);
-              return;
-            }
-
-            if (li && (pre = li.previousSibling)) {
-              if (keyCode == 46 && li.childNodes.length) {
-                return;
-              }
-              //鏈夊彲鑳戒笂杈圭殑鍏勫紵鑺傜偣鏄釜2绾ц彍鍗曪紝瑕佽拷鍔犲埌2绾ц彍鍗曠殑鏈�鍚庣殑li
-              if (dtd.$list[pre.tagName]) {
-                pre = pre.lastChild;
-              }
-              me.undoManger && me.undoManger.save();
-              first = li.firstChild;
-              if (domUtils.isBlockElm(first)) {
-                if (domUtils.isEmptyNode(first)) {
-                  //                                    range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true);
-                  pre.appendChild(first);
-                  range.setStart(first, 0).setCursor(false, true);
-                  //first涓嶆槸鍞竴鐨勮妭鐐�
-                  while (li.firstChild) {
-                    pre.appendChild(li.firstChild);
-                  }
-                } else {
-
-                  span = me.document.createElement('span');
-                  range.insertNode(span);
-                  //鍒ゆ柇pre鏄惁鏄┖鐨勮妭鐐�,濡傛灉鏄�<p><br/></p>绫诲瀷鐨勭┖鑺傜偣锛屽共鎺塸鏍囩闃叉瀹冨崰浣�
-                  if (domUtils.isEmptyBlock(pre)) {
-                    pre.innerHTML = '';
-                  }
-                  domUtils.moveChild(li, pre);
-                  range.setStartBefore(span).collapse(true).select(true);
-
-                  domUtils.remove(span);
-
-                }
-              } else {
-                if (domUtils.isEmptyNode(li)) {
-                  var p = me.document.createElement('p');
-                  pre.appendChild(p);
-                  range.setStart(p, 0).setCursor();
-                  //                                    range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true);
-                } else {
-                  range.setEnd(pre, pre.childNodes.length).collapse().select(true);
-                  while (li.firstChild) {
-                    pre.appendChild(li.firstChild);
-                  }
-                }
-              }
-              domUtils.remove(li);
-              me.fireEvent('contentchange');
-              me.fireEvent('saveScene');
-              domUtils.preventDefault(evt);
-              return;
-
-            }
-            //trace:980
-
-            if (li && !li.previousSibling) {
-              var parentList = li.parentNode;
-              var bk = range.createBookmark();
-              if (domUtils.isTagNode(parentList.parentNode, 'ol ul')) {
-                parentList.parentNode.insertBefore(li, parentList);
-                if (domUtils.isEmptyNode(parentList)) {
-                  domUtils.remove(parentList)
-                }
-              } else {
-
-                while (li.firstChild) {
-                  parentList.parentNode.insertBefore(li.firstChild, parentList);
-                }
-
-                domUtils.remove(li);
-                if (domUtils.isEmptyNode(parentList)) {
-                  domUtils.remove(parentList)
-                }
-
-              }
-              range.moveToBookmark(bk).setCursor(false, true);
-              me.fireEvent('contentchange');
-              me.fireEvent('saveScene');
-              domUtils.preventDefault(evt);
-              return;
-
-            }
-
-
-          }
-
-
-        }
-
-      }
-    });
-
-    me.addListener('keyup', function(type, evt) {
-      var keyCode = evt.keyCode || evt.which;
-      if (keyCode == 8) {
-        var rng = me.selection.getRange(),
-          list;
-        if (list = domUtils.findParentByTagName(rng.startContainer, ['ol', 'ul'], true)) {
-          adjustList(list, list.tagName.toLowerCase(), getStyle(list) || domUtils.getComputedStyle(list,
-            'list-style-type'), true)
-        }
-      }
-    });
-    //澶勭悊tab閿�
-    me.addListener('tabkeydown', function() {
-
-      var range = me.selection.getRange();
-
-      //鎺у埗绾ф暟
-      function checkLevel(li) {
-        if (me.options.maxListLevel != -1) {
-          var level = li.parentNode,
-            levelNum = 0;
-          while (/[ou]l/i.test(level.tagName)) {
-            levelNum++;
-            level = level.parentNode;
-          }
-          if (levelNum >= me.options.maxListLevel) {
-            return true;
-          }
-        }
-      }
-      //鍙互寮�濮嬩负鍑�
-      //todo 鍚庣画鏀硅繘
-      var li = domUtils.findParentByTagName(range.startContainer, 'li', true);
-      if (li) {
-
-        var bk;
-        if (range.collapsed) {
-          if (checkLevel(li))
-            return true;
-          var parentLi = li.parentNode,
-            list = me.document.createElement(parentLi.tagName),
-            index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi) || domUtils.getComputedStyle(
-              parentLi, 'list-style-type'));
-          index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1;
-          var currentStyle = listStyle[list.tagName][index];
-          setListStyle(list, currentStyle);
-          if (domUtils.isStartInblock(range)) {
-            me.fireEvent('saveScene');
-            bk = range.createBookmark();
-            parentLi.insertBefore(list, li);
-            list.appendChild(li);
-            adjustList(list, list.tagName.toLowerCase(), currentStyle);
-            me.fireEvent('contentchange');
-            range.moveToBookmark(bk).select(true);
-            return true;
-          }
-        } else {
-          me.fireEvent('saveScene');
-          bk = range.createBookmark();
-          for (var i = 0, closeList, parents = domUtils.findParents(li), ci; ci = parents[i++];) {
-            if (domUtils.isTagNode(ci, 'ol ul')) {
-              closeList = ci;
-              break;
-            }
-          }
-          var current = li;
-          if (bk.end) {
-            while (current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)) {
-              if (checkLevel(current)) {
-                current = domUtils.getNextDomNode(current, false, null, function(node) {
-                  return node !== closeList
-                });
-                continue;
-              }
-              var parentLi = current.parentNode,
-                list = me.document.createElement(parentLi.tagName),
-                index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi) || domUtils.getComputedStyle(
-                  parentLi, 'list-style-type'));
-              var currentIndex = index + 1 == listStyle[list.tagName].length ? 0 : index + 1;
-              var currentStyle = listStyle[list.tagName][currentIndex];
-              setListStyle(list, currentStyle);
-              parentLi.insertBefore(list, current);
-              while (current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)) {
-                li = current.nextSibling;
-                list.appendChild(current);
-                if (!li || domUtils.isTagNode(li, 'ol ul')) {
-                  if (li) {
-                    while (li = li.firstChild) {
-                      if (li.tagName == 'LI') {
-                        break;
-                      }
-                    }
-                  } else {
-                    li = domUtils.getNextDomNode(current, false, null, function(node) {
-                      return node !== closeList
-                    });
-                  }
-                  break;
-                }
-                current = li;
-              }
-              adjustList(list, list.tagName.toLowerCase(), currentStyle);
-              current = li;
-            }
-          }
-          me.fireEvent('contentchange');
-          range.moveToBookmark(bk).select();
-          return true;
-        }
-      }
-
-    });
-
-    function getLi(start) {
-      while (start && !domUtils.isBody(start)) {
-        if (start.nodeName == 'TABLE') {
-          return null;
-        }
-        if (start.nodeName == 'LI') {
-          return start
-        }
-        start = start.parentNode;
-      }
-    }
-
-    /**
-     * 鏈夊簭鍒楄〃锛屼笌鈥渋nsertunorderedlist鈥濆懡浠や簰鏂�
-     * @command insertorderedlist
-     * @method execCommand
-     * @param { String } command 鍛戒护瀛楃涓�
-     * @param { String } style 鎻掑叆鐨勬湁搴忓垪琛ㄧ被鍨嬶紝鍊间负锛歞ecimal,lower-alpha,lower-roman,upper-alpha,upper-roman,cn,cn1,cn2,num,num1,num2
-     * @example
-     * ```javascript
-     * editor.execCommand( 'insertorderedlist','decimal');
-     * ```
-     */
-    /**
-     * 鏌ヨ褰撳墠閫夊尯鍐呭鏄惁鏈夊簭鍒楄〃
-     * @command insertorderedlist
-     * @method queryCommandState
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @return { int } 濡傛灉褰撳墠閫夊尯鏄湁搴忓垪琛ㄨ繑鍥�1锛屽惁鍒欒繑鍥�0
-     * @example
-     * ```javascript
-     * editor.queryCommandState( 'insertorderedlist' );
-     * ```
-     */
-    /**
-     * 鏌ヨ褰撳墠閫夊尯鍐呭鏄惁鏈夊簭鍒楄〃
-     * @command insertorderedlist
-     * @method queryCommandValue
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @return { String } 杩斿洖褰撳墠鏈夊簭鍒楄〃鐨勭被鍨嬶紝鍊间负null鎴杁ecimal,lower-alpha,lower-roman,upper-alpha,upper-roman,cn,cn1,cn2,num,num1,num2
-     * @example
-     * ```javascript
-     * editor.queryCommandValue( 'insertorderedlist' );
-     * ```
-     */
-
-    /**
-     * 鏃犲簭鍒楄〃锛屼笌鈥渋nsertorderedlist鈥濆懡浠や簰鏂�
-     * @command insertunorderedlist
-     * @method execCommand
-     * @param { String } command 鍛戒护瀛楃涓�
-     * @param { String } style 鎻掑叆鐨勬棤搴忓垪琛ㄧ被鍨嬶紝鍊间负锛歝ircle,disc,square,dash,dot
-     * @example
-     * ```javascript
-     * editor.execCommand( 'insertunorderedlist','circle');
-     * ```
-     */
-    /**
-     * 鏌ヨ褰撳墠鏄惁鏈墂ord鏂囨。绮樿创杩涙潵鐨勫浘鐗�
-     * @command insertunorderedlist
-     * @method insertunorderedlist
-     * @param { String } command 鍛戒护瀛楃涓�
-     * @return { int } 濡傛灉褰撳墠閫夊尯鏄棤搴忓垪琛ㄨ繑鍥�1锛屽惁鍒欒繑鍥�0
-     * @example
-     * ```javascript
-     * editor.queryCommandState( 'insertunorderedlist' );
-     * ```
-     */
-    /**
-     * 鏌ヨ褰撳墠閫夊尯鍐呭鏄惁鏈夊簭鍒楄〃
-     * @command insertunorderedlist
-     * @method queryCommandValue
-     * @param { String } command 鍛戒护瀛楃涓�
-     * @return { String } 杩斿洖褰撳墠鏃犲簭鍒楄〃鐨勭被鍨嬶紝鍊间负null鎴朿ircle,disc,square,dash,dot
-     * @example
-     * ```javascript
-     * editor.queryCommandValue( 'insertunorderedlist' );
-     * ```
-     */
-
-    me.commands['insertorderedlist'] =
-      me.commands['insertunorderedlist'] = {
-        execCommand: function(command, style) {
-
-          if (!style) {
-            style = command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc';
-          }
-          var me = this,
-            range = this.selection.getRange(),
-            filterFn = function(node) {
-              return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node);
-            },
-            tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul',
-            frag = me.document.createDocumentFragment();
-          //鍘绘帀鏄洜涓轰細鍑虹幇閫夊埌鏈熬锛屽鑷碼djustmentBoundary缂╁埌ol/ul鐨勪綅缃�
-          //range.shrinkBoundary();//.adjustmentBoundary();
-          range.adjustmentBoundary().shrinkBoundary();
-          var bko = range.createBookmark(true),
-            start = getLi(me.document.getElementById(bko.start)),
-            modifyStart = 0,
-            end = getLi(me.document.getElementById(bko.end)),
-            modifyEnd = 0,
-            startParent, endParent,
-            list, tmp;
-
-          if (start || end) {
-            start && (startParent = start.parentNode);
-            if (!bko.end) {
-              end = start;
-            }
-            end && (endParent = end.parentNode);
-
-            if (startParent === endParent) {
-              while (start !== end) {
-                tmp = start;
-                start = start.nextSibling;
-                if (!domUtils.isBlockElm(tmp.firstChild)) {
-                  var p = me.document.createElement('p');
-                  while (tmp.firstChild) {
-                    p.appendChild(tmp.firstChild);
-                  }
-                  tmp.appendChild(p);
-                }
-                frag.appendChild(tmp);
-              }
-              tmp = me.document.createElement('span');
-              startParent.insertBefore(tmp, end);
-              if (!domUtils.isBlockElm(end.firstChild)) {
-                p = me.document.createElement('p');
-                while (end.firstChild) {
-                  p.appendChild(end.firstChild);
-                }
-                end.appendChild(p);
-              }
-              frag.appendChild(end);
-              domUtils.breakParent(tmp, startParent);
-              if (domUtils.isEmptyNode(tmp.previousSibling)) {
-                domUtils.remove(tmp.previousSibling);
-              }
-              if (domUtils.isEmptyNode(tmp.nextSibling)) {
-                domUtils.remove(tmp.nextSibling)
-              }
-              var nodeStyle = getStyle(startParent) || domUtils.getComputedStyle(startParent, 'list-style-type') ||
-                (command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc');
-              if (startParent.tagName.toLowerCase() == tag && nodeStyle == style) {
-                for (var i = 0, ci, tmpFrag = me.document.createDocumentFragment(); ci = frag.firstChild;) {
-                  if (domUtils.isTagNode(ci, 'ol ul')) {
-                    //                                  鍒犻櫎鏃讹紝瀛愬垪琛ㄤ笉澶勭悊
-                    //                                  utils.each(domUtils.getElementsByTagName(ci,'li'),function(li){
-                    //                                        while(li.firstChild){
-                    //                                            tmpFrag.appendChild(li.firstChild);
-                    //                                        }
-                    //
-                    //                                    });
-                    tmpFrag.appendChild(ci);
-                  } else {
-                    while (ci.firstChild) {
-
-                      tmpFrag.appendChild(ci.firstChild);
-                      domUtils.remove(ci);
-                    }
-                  }
-
-                }
-                tmp.parentNode.insertBefore(tmpFrag, tmp);
-              } else {
-                list = me.document.createElement(tag);
-                setListStyle(list, style);
-                list.appendChild(frag);
-                tmp.parentNode.insertBefore(list, tmp);
-              }
-
-              domUtils.remove(tmp);
-              list && adjustList(list, tag, style);
-              range.moveToBookmark(bko).select();
-              return;
-            }
-            //寮�濮�
-            if (start) {
-              while (start) {
-                tmp = start.nextSibling;
-                if (domUtils.isTagNode(start, 'ol ul')) {
-                  frag.appendChild(start);
-                } else {
-                  var tmpfrag = me.document.createDocumentFragment(),
-                    hasBlock = 0;
-                  while (start.firstChild) {
-                    if (domUtils.isBlockElm(start.firstChild)) {
-                      hasBlock = 1;
-                    }
-                    tmpfrag.appendChild(start.firstChild);
-                  }
-                  if (!hasBlock) {
-                    var tmpP = me.document.createElement('p');
-                    tmpP.appendChild(tmpfrag);
-                    frag.appendChild(tmpP);
-                  } else {
-                    frag.appendChild(tmpfrag);
-                  }
-                  domUtils.remove(start);
-                }
-
-                start = tmp;
-              }
-              startParent.parentNode.insertBefore(frag, startParent.nextSibling);
-              if (domUtils.isEmptyNode(startParent)) {
-                range.setStartBefore(startParent);
-                domUtils.remove(startParent);
-              } else {
-                range.setStartAfter(startParent);
-              }
-              modifyStart = 1;
-            }
-
-            if (end && domUtils.inDoc(endParent, me.document)) {
-              //缁撴潫
-              start = endParent.firstChild;
-              while (start && start !== end) {
-                tmp = start.nextSibling;
-                if (domUtils.isTagNode(start, 'ol ul')) {
-                  frag.appendChild(start);
-                } else {
-                  tmpfrag = me.document.createDocumentFragment();
-                  hasBlock = 0;
-                  while (start.firstChild) {
-                    if (domUtils.isBlockElm(start.firstChild)) {
-                      hasBlock = 1;
-                    }
-                    tmpfrag.appendChild(start.firstChild);
-                  }
-                  if (!hasBlock) {
-                    tmpP = me.document.createElement('p');
-                    tmpP.appendChild(tmpfrag);
-                    frag.appendChild(tmpP);
-                  } else {
-                    frag.appendChild(tmpfrag);
-                  }
-                  domUtils.remove(start);
-                }
-                start = tmp;
-              }
-              var tmpDiv = domUtils.createElement(me.document, 'div', {
-                'tmpDiv': 1
-              });
-              domUtils.moveChild(end, tmpDiv);
-
-              frag.appendChild(tmpDiv);
-              domUtils.remove(end);
-              endParent.parentNode.insertBefore(frag, endParent);
-              range.setEndBefore(endParent);
-              if (domUtils.isEmptyNode(endParent)) {
-                domUtils.remove(endParent);
-              }
-
-              modifyEnd = 1;
-            }
-
-
-          }
-
-          if (!modifyStart) {
-            range.setStartBefore(me.document.getElementById(bko.start));
-          }
-          if (bko.end && !modifyEnd) {
-            range.setEndAfter(me.document.getElementById(bko.end));
-          }
-          range.enlarge(true, function(node) {
-            return notExchange[node.tagName];
-          });
-
-          frag = me.document.createDocumentFragment();
-
-          var bk = range.createBookmark(),
-            current = domUtils.getNextDomNode(bk.start, false, filterFn),
-            tmpRange = range.cloneRange(),
-            tmpNode,
-            block = domUtils.isBlockElm;
-
-          while (current && current !== bk.end && (domUtils.getPosition(current, bk.end) & domUtils.POSITION_PRECEDING)) {
-
-            if (current.nodeType == 3 || dtd.li[current.tagName]) {
-              if (current.nodeType == 1 && dtd.$list[current.tagName]) {
-                while (current.firstChild) {
-                  frag.appendChild(current.firstChild);
-                }
-                tmpNode = domUtils.getNextDomNode(current, false, filterFn);
-                domUtils.remove(current);
-                current = tmpNode;
-                continue;
-
-              }
-              tmpNode = current;
-              tmpRange.setStartBefore(current);
-
-              while (current && current !== bk.end && (!block(current) || domUtils.isBookmarkNode(current))) {
-                tmpNode = current;
-                current = domUtils.getNextDomNode(current, false, null, function(node) {
-                  return !notExchange[node.tagName];
-                });
-              }
-
-              if (current && block(current)) {
-                tmp = domUtils.getNextDomNode(tmpNode, false, filterFn);
-                if (tmp && domUtils.isBookmarkNode(tmp)) {
-                  current = domUtils.getNextDomNode(tmp, false, filterFn);
-                  tmpNode = tmp;
-                }
-              }
-              tmpRange.setEndAfter(tmpNode);
-
-              current = domUtils.getNextDomNode(tmpNode, false, filterFn);
-
-              var li = range.document.createElement('li');
-
-              li.appendChild(tmpRange.extractContents());
-              if (domUtils.isEmptyNode(li)) {
-                var tmpNode = range.document.createElement('p');
-                while (li.firstChild) {
-                  tmpNode.appendChild(li.firstChild)
-                }
-                li.appendChild(tmpNode);
-              }
-              frag.appendChild(li);
-            } else {
-              current = domUtils.getNextDomNode(current, true, filterFn);
-            }
-          }
-          range.moveToBookmark(bk).collapse(true);
-          list = me.document.createElement(tag);
-          setListStyle(list, style);
-          list.appendChild(frag);
-          range.insertNode(list);
-          //褰撳墠list涓婁笅鐪嬭兘鍚﹀悎骞�
-          adjustList(list, tag, style);
-          //鍘绘帀鍐椾綑鐨則mpDiv
-          for (var i = 0, ci, tmpDivs = domUtils.getElementsByTagName(list, 'div'); ci = tmpDivs[i++];) {
-            if (ci.getAttribute('tmpDiv')) {
-              domUtils.remove(ci, true)
-            }
-          }
-          range.moveToBookmark(bko).select();
-
-        },
-        queryCommandState: function(command) {
-          var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul';
-          var path = this.selection.getStartElementPath();
-          for (var i = 0, ci; ci = path[i++];) {
-            if (ci.nodeName == 'TABLE') {
-              return 0
-            }
-            if (tag == ci.nodeName.toLowerCase()) {
-              return 1
-            };
-          }
-          return 0;
-
-        },
-        queryCommandValue: function(command) {
-          var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul';
-          var path = this.selection.getStartElementPath(),
-            node;
-          for (var i = 0, ci; ci = path[i++];) {
-            if (ci.nodeName == 'TABLE') {
-              node = null;
-              break;
-            }
-            if (tag == ci.nodeName.toLowerCase()) {
-              node = ci;
-              break;
-            };
-          }
-          return node ? getStyle(node) || domUtils.getComputedStyle(node, 'list-style-type') : null;
-        }
-      };
-  };
-
-
-
-  // plugins/source.js
-  /**
-   * 婧愮爜缂栬緫鎻掍欢
-   * @file
-   * @since 1.2.6.1
-   */
-
-  (function() {
-    var sourceEditors = {
-      textarea: function(editor, holder) {
-        var textarea = holder.ownerDocument.createElement('textarea');
-        textarea.style.cssText =
-          'position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;';
-        // todo: IE涓嬪彧鏈塷nresize灞炴�у彲鐢�... 寰堢籂缁�
-        if (browser.ie && browser.version < 8) {
-          textarea.style.width = holder.offsetWidth + 'px';
-          textarea.style.height = holder.offsetHeight + 'px';
-          holder.onresize = function() {
-            textarea.style.width = holder.offsetWidth + 'px';
-            textarea.style.height = holder.offsetHeight + 'px';
-          };
-        }
-        holder.appendChild(textarea);
-        return {
-          setContent: function(content) {
-            textarea.value = content;
-          },
-          getContent: function() {
-            return textarea.value;
-          },
-          select: function() {
-            var range;
-            if (browser.ie) {
-              range = textarea.createTextRange();
-              range.collapse(true);
-              range.select();
-            } else {
-              //todo: chrome涓嬫棤娉曡缃劍鐐�
-              textarea.setSelectionRange(0, 0);
-              textarea.focus();
-            }
-          },
-          dispose: function() {
-            holder.removeChild(textarea);
-            // todo
-            holder.onresize = null;
-            textarea = null;
-            holder = null;
-          }
-        };
-      },
-      codemirror: function(editor, holder) {
-
-        var codeEditor = window.CodeMirror(holder, {
-          mode: "text/html",
-          tabMode: "indent",
-          lineNumbers: true,
-          lineWrapping: true
-        });
-        var dom = codeEditor.getWrapperElement();
-        dom.style.cssText =
-          'position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;';
-        codeEditor.getScrollerElement().style.cssText =
-          'position:absolute;left:0;top:0;width:100%;height:100%;';
-        codeEditor.refresh();
-        return {
-          getCodeMirror: function() {
-            return codeEditor;
-          },
-          setContent: function(content) {
-            codeEditor.setValue(content);
-          },
-          getContent: function() {
-            return codeEditor.getValue();
-          },
-          select: function() {
-            codeEditor.focus();
-          },
-          dispose: function() {
-            holder.removeChild(dom);
-            dom = null;
-            codeEditor = null;
-          }
-        };
-      }
-    };
-
-    UE.plugins['source'] = function() {
-      var me = this;
-      var opt = this.options;
-      var sourceMode = false;
-      var sourceEditor;
-      var orgSetContent;
-      opt.sourceEditor = browser.ie ? 'textarea' : (opt.sourceEditor || 'codemirror');
-
-      me.setOpt({
-        sourceEditorFirst: false
-      });
-
-      function createSourceEditor(holder) {
-        return sourceEditors[opt.sourceEditor == 'codemirror' && window.CodeMirror ? 'codemirror' : 'textarea'](
-          me, holder);
-      }
-
-      var bakCssText;
-      //瑙e喅鍦ㄦ簮鐮佹ā寮忎笅getContent涓嶈兘寰楀埌鏈�鏂扮殑鍐呭闂
-      var oldGetContent,
-        bakAddress;
-
-      /**
-       * 鍒囨崲婧愮爜妯″紡鍜岀紪杈戞ā寮�
-       * @command source
-       * @method execCommand
-       * @param { String } cmd 鍛戒护瀛楃涓�
-       * @example
-       * ```javascript
-       * editor.execCommand( 'source');
-       * ```
-       */
-
-      /**
-       * 鏌ヨ褰撳墠缂栬緫鍖哄煙鐨勭姸鎬佹槸婧愮爜妯″紡杩樻槸鍙鍖栨ā寮�
-       * @command source
-       * @method queryCommandState
-       * @param { String } cmd 鍛戒护瀛楃涓�
-       * @return { int } 濡傛灉褰撳墠鏄簮鐮佺紪杈戞ā寮忥紝杩斿洖1锛屽惁鍒欒繑鍥�0
-       * @example
-       * ```javascript
-       * editor.queryCommandState( 'source' );
-       * ```
-       */
-
-      me.commands['source'] = {
-        execCommand: function() {
-
-          sourceMode = !sourceMode;
-          if (sourceMode) {
-            bakAddress = me.selection.getRange().createAddress(false, true);
-            me.undoManger && me.undoManger.save(true);
-            if (browser.gecko) {
-              me.body.contentEditable = false;
-            }
-
-            bakCssText = me.iframe.style.cssText;
-            me.iframe.style.cssText += 'position:absolute;left:-32768px;top:-32768px;';
-
-
-            me.fireEvent('beforegetcontent');
-            var root = UE.htmlparser(me.body.innerHTML);
-            me.filterOutputRule(root);
-            root.traversal(function(node) {
-              if (node.type == 'element') {
-                switch (node.tagName) {
-                  case 'td':
-                  case 'th':
-                  case 'caption':
-                    if (node.children && node.children.length == 1) {
-                      if (node.firstChild().tagName == 'br') {
-                        node.removeChild(node.firstChild())
-                      }
-                    };
-                    break;
-                  case 'pre':
-                    node.innerText(node.innerText().replace(/&nbsp;/g, ' '))
-
-                }
-              }
-            });
-
-            me.fireEvent('aftergetcontent');
-
-            var content = root.toHtml(true);
-
-            sourceEditor = createSourceEditor(me.iframe.parentNode);
-
-            sourceEditor.setContent(content);
-
-            orgSetContent = me.setContent;
-
-            me.setContent = function(html) {
-              //杩欓噷鏆傛椂涓嶈Е鍙戜簨浠讹紝闃叉鎶ラ敊
-              var root = UE.htmlparser(html);
-              me.filterInputRule(root);
-              html = root.toHtml();
-              sourceEditor.setContent(html);
-            };
-
-            setTimeout(function() {
-              sourceEditor.select();
-              me.addListener('fullscreenchanged', function() {
-                try {
-                  sourceEditor.getCodeMirror().refresh()
-                } catch (e) {}
-              });
-            });
-
-            //閲嶇疆getContent锛屾簮鐮佹ā寮忎笅鍙栧�间篃鑳芥槸鏈�鏂扮殑鏁版嵁
-            oldGetContent = me.getContent;
-            me.getContent = function() {
-              return sourceEditor.getContent() || '<p>' + (browser.ie ? '' : '<br/>') + '</p>';
-            };
-          } else {
-            me.iframe.style.cssText = bakCssText;
-            var cont = sourceEditor.getContent() || '<p>' + (browser.ie ? '' : '<br/>') + '</p>';
-            //澶勭悊鎺塨lock鑺傜偣鍓嶅悗鐨勭┖鏍�,鏈夊彲鑳戒細璇懡涓紝鏆傛椂涓嶈�冭檻
-            cont = cont.replace(new RegExp('[\\r\\t\\n ]*<\/?(\\w+)\\s*(?:[^>]*)>', 'g'), function(a, b) {
-              if (b && !dtd.$inlineWithA[b.toLowerCase()]) {
-                return a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g, '');
-              }
-              return a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g, '')
-            });
-
-            me.setContent = orgSetContent;
-
-            me.setContent(cont);
-            sourceEditor.dispose();
-            sourceEditor = null;
-            //杩樺師getContent鏂规硶
-            me.getContent = oldGetContent;
-            var first = me.body.firstChild;
-            //trace:1106 閮藉垹闄ょ┖浜嗭紝涓嬭竟浼氭姤閿欙紝鎵�浠ヨˉ鍏呬竴涓猵鍗犱綅
-            if (!first) {
-              me.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>';
-              first = me.body.firstChild;
-            }
-
-
-            //瑕佸湪ifm涓烘樉绀烘椂ff鎵嶈兘鍙栧埌selection,鍚﹀垯鎶ラ敊
-            //杩欓噷涓嶈兘姣旇緝浣嶇疆浜�
-            me.undoManger && me.undoManger.save(true);
-
-            if (browser.gecko) {
-
-              var input = document.createElement('input');
-              input.style.cssText = 'position:absolute;left:0;top:-32768px';
-
-              document.body.appendChild(input);
-
-              me.body.contentEditable = false;
-              setTimeout(function() {
-                domUtils.setViewportOffset(input, {
-                  left: -32768,
-                  top: 0
-                });
-                input.focus();
-                setTimeout(function() {
-                  me.body.contentEditable = true;
-                  me.selection.getRange().moveToAddress(bakAddress).select(true);
-                  domUtils.remove(input);
-                });
-
-              });
-            } else {
-              //ie涓嬫湁鍙兘鎶ラ敊锛屾瘮濡傚湪浠g爜椤跺ご鐨勬儏鍐�
-              try {
-                me.selection.getRange().moveToAddress(bakAddress).select(true);
-              } catch (e) {}
-
-            }
-          }
-          this.fireEvent('sourcemodechanged', sourceMode);
-        },
-        queryCommandState: function() {
-          return sourceMode | 0;
-        },
-        notNeedUndo: 1
-      };
-      var oldQueryCommandState = me.queryCommandState;
-
-      me.queryCommandState = function(cmdName) {
-        cmdName = cmdName.toLowerCase();
-        if (sourceMode) {
-          //婧愮爜妯″紡涓嬪彲浠ュ紑鍚殑鍛戒护
-          return cmdName in {
-            'source': 1,
-            'fullscreen': 1
-          } ? 1 : -1
-        }
-        return oldQueryCommandState.apply(this, arguments);
-      };
-
-      if (opt.sourceEditor == "codemirror") {
-
-        me.addListener("ready", function() {
-          utils.loadFile(document, {
-            src: opt.codeMirrorJsUrl || opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.js",
-            tag: "script",
-            type: "text/javascript",
-            defer: "defer"
-          }, function() {
-            if (opt.sourceEditorFirst) {
-              setTimeout(function() {
-                me.execCommand("source");
-              }, 0);
-            }
-          });
-          utils.loadFile(document, {
-            tag: "link",
-            rel: "stylesheet",
-            type: "text/css",
-            href: opt.codeMirrorCssUrl || opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.css"
-          });
-
-        });
-      }
-
-    };
-
-  })();
-
-  // plugins/enterkey.js
-  ///import core
-  ///import plugins/undo.js
-  ///commands 璁剧疆鍥炶溅鏍囩p鎴朾r
-  ///commandsName  EnterKey
-  ///commandsTitle  璁剧疆鍥炶溅鏍囩p鎴朾r
-  /**
-   * @description 澶勭悊鍥炶溅
-   * @author zhanyi
-   */
-  UE.plugins['enterkey'] = function() {
-    var hTag,
-      me = this,
-      tag = me.options.enterTag;
-    me.addListener('keyup', function(type, evt) {
-
-      var keyCode = evt.keyCode || evt.which;
-      if (keyCode == 13) {
-        var range = me.selection.getRange(),
-          start = range.startContainer,
-          doSave;
-
-        //淇鍦╤1-h6閲岃竟鍥炶溅鍚庝笉鑳藉祵濂梡鐨勯棶棰�
-        if (!browser.ie) {
-
-          if (/h\d/i.test(hTag)) {
-            if (browser.gecko) {
-              var h = domUtils.findParentByTagName(start, ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote',
-                'caption', 'table'
-              ], true);
-              if (!h) {
-                me.document.execCommand('formatBlock', false, '<p>');
-                doSave = 1;
-              }
-            } else {
-              //chrome remove div
-              if (start.nodeType == 1) {
-                var tmp = me.document.createTextNode(''),
-                  div;
-                range.insertNode(tmp);
-                div = domUtils.findParentByTagName(tmp, 'div', true);
-                if (div) {
-                  var p = me.document.createElement('p');
-                  while (div.firstChild) {
-                    p.appendChild(div.firstChild);
-                  }
-                  div.parentNode.insertBefore(p, div);
-                  domUtils.remove(div);
-                  range.setStartBefore(tmp).setCursor();
-                  doSave = 1;
-                }
-                domUtils.remove(tmp);
-
-              }
-            }
-
-            if (me.undoManger && doSave) {
-              me.undoManger.save();
-            }
-          }
-          //娌℃湁绔欎綅绗︼紝浼氬嚭鐜板琛岀殑闂
-          browser.opera && range.select();
-        } else {
-          me.fireEvent('saveScene', true, true)
-        }
-      }
-    });
-
-    me.addListener('keydown', function(type, evt) {
-      var keyCode = evt.keyCode || evt.which;
-      if (keyCode == 13) { //鍥炶溅
-        if (me.fireEvent('beforeenterkeydown')) {
-          domUtils.preventDefault(evt);
-          return;
-        }
-        me.fireEvent('saveScene', true, true);
-        hTag = '';
-
-
-        var range = me.selection.getRange();
-
-        if (!range.collapsed) {
-          //璺╰d涓嶈兘鍒�
-          var start = range.startContainer,
-            end = range.endContainer,
-            startTd = domUtils.findParentByTagName(start, 'td', true),
-            endTd = domUtils.findParentByTagName(end, 'td', true);
-          if (startTd && endTd && startTd !== endTd || !startTd && endTd || startTd && !endTd) {
-            evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);
-            return;
-          }
-        }
-        if (tag == 'p') {
-
-
-          if (!browser.ie) {
-
-            start = domUtils.findParentByTagName(range.startContainer, ['ol', 'ul', 'p', 'h1', 'h2', 'h3', 'h4',
-              'h5', 'h6', 'blockquote', 'caption'
-            ], true);
-
-            //opera涓嬫墽琛宖ormatblock浼氬湪table鐨勫満鏅笅鏈夐棶棰橈紝鍥炶溅鍦╫pera鍘熺敓鏀寔寰堝ソ锛屾墍浠ユ殏鏃跺湪opera鍘绘帀璋冪敤杩欎釜鍘熺敓鐨刢ommand
-            //trace:2431
-            if (!start && !browser.opera) {
-
-              me.document.execCommand('formatBlock', false, '<p>');
-
-              if (browser.gecko) {
-                range = me.selection.getRange();
-                start = domUtils.findParentByTagName(range.startContainer, 'p', true);
-                start && domUtils.removeDirtyAttr(start);
-              }
-
-
-            } else {
-              hTag = start.tagName;
-              start.tagName.toLowerCase() == 'p' && browser.gecko && domUtils.removeDirtyAttr(start);
-            }
-
-          }
-
-        } else {
-          evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);
-
-          if (!range.collapsed) {
-            range.deleteContents();
-            start = range.startContainer;
-            if (start.nodeType == 1 && (start = start.childNodes[range.startOffset])) {
-              while (start.nodeType == 1) {
-                if (dtd.$empty[start.tagName]) {
-                  range.setStartBefore(start).setCursor();
-                  if (me.undoManger) {
-                    me.undoManger.save();
-                  }
-                  return false;
-                }
-                if (!start.firstChild) {
-                  var br = range.document.createElement('br');
-                  start.appendChild(br);
-                  range.setStart(start, 0).setCursor();
-                  if (me.undoManger) {
-                    me.undoManger.save();
-                  }
-                  return false;
-                }
-                start = start.firstChild;
-              }
-              if (start === range.startContainer.childNodes[range.startOffset]) {
-                br = range.document.createElement('br');
-                range.insertNode(br).setCursor();
-
-              } else {
-                range.setStart(start, 0).setCursor();
-              }
-
-
-            } else {
-              br = range.document.createElement('br');
-              range.insertNode(br).setStartAfter(br).setCursor();
-            }
-
-
-          } else {
-            br = range.document.createElement('br');
-            range.insertNode(br);
-            var parent = br.parentNode;
-            if (parent.lastChild === br) {
-              br.parentNode.insertBefore(br.cloneNode(true), br);
-              range.setStartBefore(br);
-            } else {
-              range.setStartAfter(br);
-            }
-            range.setCursor();
-
-          }
-
-        }
-
-      }
-    });
-  };
-
-
-  // plugins/keystrokes.js
-  /* 澶勭悊鐗规畩閿殑鍏煎鎬ч棶棰� */
-  UE.plugins['keystrokes'] = function() {
-    var me = this;
-    var collapsed = true;
-    me.addListener('keydown', function(type, evt) {
-      var keyCode = evt.keyCode || evt.which,
-        rng = me.selection.getRange();
-
-      //澶勭悊鍏ㄩ�夌殑鎯呭喌
-      if (!rng.collapsed && !(evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) && (keyCode >= 65 &&
-          keyCode <= 90 ||
-          keyCode >= 48 && keyCode <= 57 ||
-          keyCode >= 96 && keyCode <= 111 || {
-            13: 1,
-            8: 1,
-            46: 1
-          } [keyCode])) {
-
-        var tmpNode = rng.startContainer;
-        if (domUtils.isFillChar(tmpNode)) {
-          rng.setStartBefore(tmpNode)
-        }
-        tmpNode = rng.endContainer;
-        if (domUtils.isFillChar(tmpNode)) {
-          rng.setEndAfter(tmpNode)
-        }
-        rng.txtToElmBoundary();
-        //缁撴潫杈圭晫鍙兘鏀惧埌浜哹r鐨勫墠杈癸紝瑕佹妸br鍖呭惈杩涙潵
-        // x[xxx]<br/>
-        if (rng.endContainer && rng.endContainer.nodeType == 1) {
-          tmpNode = rng.endContainer.childNodes[rng.endOffset];
-          if (tmpNode && domUtils.isBr(tmpNode)) {
-            rng.setEndAfter(tmpNode);
-          }
-        }
-        if (rng.startOffset == 0) {
-          tmpNode = rng.startContainer;
-          if (domUtils.isBoundaryNode(tmpNode, 'firstChild')) {
-            tmpNode = rng.endContainer;
-            if (rng.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) &&
-              domUtils.isBoundaryNode(tmpNode, 'lastChild')) {
-              me.fireEvent('saveScene');
-              me.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>';
-              rng.setStart(me.body.firstChild, 0).setCursor(false, true);
-              me._selectionChange();
-              return;
-            }
-          }
-        }
-      }
-
-      //澶勭悊backspace
-      if (keyCode == keymap.Backspace) {
-        rng = me.selection.getRange();
-        collapsed = rng.collapsed;
-        if (me.fireEvent('delkeydown', evt)) {
-          return;
-        }
-        var start, end;
-        //閬垮厤鎸変袱娆″垹闄ゆ墠鑳界敓鏁堢殑闂
-        if (rng.collapsed && rng.inFillChar()) {
-          start = rng.startContainer;
-
-          if (domUtils.isFillChar(start)) {
-            rng.setStartBefore(start).shrinkBoundary(true).collapse(true);
-            domUtils.remove(start)
-          } else {
-            start.nodeValue = start.nodeValue.replace(new RegExp('^' + domUtils.fillChar), '');
-            rng.startOffset--;
-            rng.collapse(true).select(true)
-          }
-        }
-
-        //瑙e喅閫変腑control鍏冪礌涓嶈兘鍒犻櫎鐨勯棶棰�
-        if (start = rng.getClosedNode()) {
-          me.fireEvent('saveScene');
-          rng.setStartBefore(start);
-          domUtils.remove(start);
-          rng.setCursor();
-          me.fireEvent('saveScene');
-          domUtils.preventDefault(evt);
-          return;
-        }
-        //闃绘鍦╰able涓婄殑鍒犻櫎
-        if (!browser.ie) {
-          start = domUtils.findParentByTagName(rng.startContainer, 'table', true);
-          end = domUtils.findParentByTagName(rng.endContainer, 'table', true);
-          if (start && !end || !start && end || start !== end) {
-            evt.preventDefault();
-            return;
-          }
-        }
-
-      }
-      //澶勭悊tab閿殑閫昏緫
-      if (keyCode == keymap.Tab) {
-        //涓嶅鐞嗕互涓嬫爣绛�
-        var excludeTagNameForTabKey = {
-          'ol': 1,
-          'ul': 1,
-          'table': 1
-        };
-        //澶勭悊缁勪欢閲岀殑tab鎸変笅浜嬩欢
-        if (me.fireEvent('tabkeydown', evt)) {
-          domUtils.preventDefault(evt);
-          return;
-        }
-        var range = me.selection.getRange();
-        me.fireEvent('saveScene');
-        for (var i = 0, txt = '', tabSize = me.options.tabSize || 4, tabNode = me.options.tabNode || '&nbsp;'; i <
-          tabSize; i++) {
-          txt += tabNode;
-        }
-        var span = me.document.createElement('span');
-        span.innerHTML = txt + domUtils.fillChar;
-        if (range.collapsed) {
-          range.insertNode(span.cloneNode(true).firstChild).setCursor(true);
-        } else {
-          var filterFn = function(node) {
-            return domUtils.isBlockElm(node) && !excludeTagNameForTabKey[node.tagName.toLowerCase()]
-
-          };
-          //鏅�氱殑鎯呭喌
-          start = domUtils.findParent(range.startContainer, filterFn, true);
-          end = domUtils.findParent(range.endContainer, filterFn, true);
-          if (start && end && start === end) {
-            range.deleteContents();
-            range.insertNode(span.cloneNode(true).firstChild).setCursor(true);
-          } else {
-            var bookmark = range.createBookmark();
-            range.enlarge(true);
-            var bookmark2 = range.createBookmark(),
-              current = domUtils.getNextDomNode(bookmark2.start, false, filterFn);
-            while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) {
-              current.insertBefore(span.cloneNode(true).firstChild, current.firstChild);
-              current = domUtils.getNextDomNode(current, false, filterFn);
-            }
-            range.moveToBookmark(bookmark2).moveToBookmark(bookmark).select();
-          }
-        }
-        domUtils.preventDefault(evt)
-      }
-      //trace:1634
-      //ff鐨刣el閿湪瀹瑰櫒绌虹殑鏃跺�欙紝涔熶細鍒犻櫎
-      if (browser.gecko && keyCode == 46) {
-        range = me.selection.getRange();
-        if (range.collapsed) {
-          start = range.startContainer;
-          if (domUtils.isEmptyBlock(start)) {
-            var parent = start.parentNode;
-            while (domUtils.getChildCount(parent) == 1 && !domUtils.isBody(parent)) {
-              start = parent;
-              parent = parent.parentNode;
-            }
-            if (start === parent.lastChild)
-              evt.preventDefault();
-            return;
-          }
-        }
-      }
-    });
-    me.addListener('keyup', function(type, evt) {
-      var keyCode = evt.keyCode || evt.which,
-        rng, me = this;
-      if (keyCode == keymap.Backspace) {
-        if (me.fireEvent('delkeyup')) {
-          return;
-        }
-        rng = me.selection.getRange();
-        if (rng.collapsed) {
-          var tmpNode,
-            autoClearTagName = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
-          if (tmpNode = domUtils.findParentByTagName(rng.startContainer, autoClearTagName, true)) {
-            if (domUtils.isEmptyBlock(tmpNode)) {
-              var pre = tmpNode.previousSibling;
-              if (pre && pre.nodeName != 'TABLE') {
-                domUtils.remove(tmpNode);
-                rng.setStartAtLast(pre).setCursor(false, true);
-                return;
-              } else {
-                var next = tmpNode.nextSibling;
-                if (next && next.nodeName != 'TABLE') {
-                  domUtils.remove(tmpNode);
-                  rng.setStartAtFirst(next).setCursor(false, true);
-                  return;
-                }
-              }
-            }
-          }
-          //澶勭悊褰撳垹闄ゅ埌body鏃讹紝瑕侀噸鏂扮粰p鏍囩灞曚綅
-          if (domUtils.isBody(rng.startContainer)) {
-            var tmpNode = domUtils.createElement(me.document, 'p', {
-              'innerHTML': browser.ie ? domUtils.fillChar : '<br/>'
-            });
-            rng.insertNode(tmpNode).setStart(tmpNode, 0).setCursor(false, true);
-          }
-        }
-
-
-        //chrome涓嬪鏋滃垹闄や簡inline鏍囩锛屾祻瑙堝櫒浼氭湁璁板繂锛屽湪杈撳叆鏂囧瓧杩樻槸浼氬涓婂垰鎵嶅垹闄ょ殑鏍囩锛屾墍浠ヨ繖閲屽啀閫変竴娆″氨涓嶄細浜�
-        if (!collapsed && (rng.startContainer.nodeType == 3 || rng.startContainer.nodeType == 1 && domUtils.isEmptyBlock(
-            rng.startContainer))) {
-          if (browser.ie) {
-            var span = rng.document.createElement('span');
-            rng.insertNode(span).setStartBefore(span).collapse(true);
-            rng.select();
-            domUtils.remove(span)
-          } else {
-            rng.select()
-          }
-
-        }
-      }
-
-
-    })
-  };
-
-  // plugins/fiximgclick.js
-  ///import core
-  ///commands 淇chrome涓嬪浘鐗囦笉鑳界偣鍑荤殑闂锛屽嚭鐜板叓涓鍙敼鍙樺ぇ灏�
-  ///commandsName  FixImgClick
-  ///commandsTitle  淇chrome涓嬪浘鐗囦笉鑳界偣鍑荤殑闂锛屽嚭鐜板叓涓鍙敼鍙樺ぇ灏�
-  //淇chrome涓嬪浘鐗囦笉鑳界偣鍑荤殑闂锛屽嚭鐜板叓涓鍙敼鍙樺ぇ灏�
-
-  UE.plugins['fiximgclick'] = (function() {
-
-    var elementUpdated = false;
-
-    function Scale() {
-      this.editor = null;
-      this.resizer = null;
-      this.cover = null;
-      this.doc = document;
-      this.prePos = {
-        x: 0,
-        y: 0
-      };
-      this.startPos = {
-        x: 0,
-        y: 0
-      };
-    }
-
-    (function() {
-      var rect = [
-        //[left, top, width, height]
-        [0, 0, -1, -1],
-        [0, 0, 0, -1],
-        [0, 0, 1, -1],
-        [0, 0, -1, 0],
-        [0, 0, 1, 0],
-        [0, 0, -1, 1],
-        [0, 0, 0, 1],
-        [0, 0, 1, 1]
-      ];
-
-      Scale.prototype = {
-        init: function(editor) {
-          var me = this;
-          me.editor = editor;
-          me.startPos = this.prePos = {
-            x: 0,
-            y: 0
-          };
-          me.dragId = -1;
-
-          var hands = [],
-            cover = me.cover = document.createElement('div'),
-            resizer = me.resizer = document.createElement('div');
-
-          cover.id = me.editor.ui.id + '_imagescale_cover';
-          cover.style.cssText = 'position:absolute;display:none;z-index:' + (me.editor.options.zIndex) +
-            ';filter:alpha(opacity=0); opacity:0;background:#CCC;';
-          domUtils.on(cover, 'mousedown click', function() {
-            me.hide();
-          });
-
-          for (i = 0; i < 8; i++) {
-            hands.push('<span class="edui-editor-imagescale-hand' + i + '"></span>');
-          }
-          resizer.id = me.editor.ui.id + '_imagescale';
-          resizer.className = 'edui-editor-imagescale';
-          resizer.innerHTML = hands.join('');
-          resizer.style.cssText += ';display:none;border:1px solid #3b77ff;z-index:' + (me.editor.options.zIndex) +
-            ';';
-
-          me.editor.ui.getDom().appendChild(cover);
-          me.editor.ui.getDom().appendChild(resizer);
-
-          me.initStyle();
-          me.initEvents();
-        },
-        initStyle: function() {
-          utils.cssRule('imagescale',
-            '.edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}' +
-            '.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}' +
-            '.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}' +
-            '.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}' +
-            '.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}' +
-            '.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}' +
-            '.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}' +
-            '.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}' +
-            '.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}' +
-            '.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}'
-          );
-        },
-        initEvents: function() {
-          var me = this;
-
-          me.startPos.x = me.startPos.y = 0;
-          me.isDraging = false;
-        },
-        _eventHandler: function(e) {
-          var me = this;
-          switch (e.type) {
-            case 'mousedown':
-              var hand = e.target || e.srcElement,
-                hand;
-              if (hand.className.indexOf('edui-editor-imagescale-hand') != -1 && me.dragId == -1) {
-                me.dragId = hand.className.slice(-1);
-                me.startPos.x = me.prePos.x = e.clientX;
-                me.startPos.y = me.prePos.y = e.clientY;
-                domUtils.on(me.doc, 'mousemove', me.proxy(me._eventHandler, me));
-              }
-              break;
-            case 'mousemove':
-              if (me.dragId != -1) {
-                me.updateContainerStyle(me.dragId, {
-                  x: e.clientX - me.prePos.x,
-                  y: e.clientY - me.prePos.y
-                });
-                me.prePos.x = e.clientX;
-                me.prePos.y = e.clientY;
-                elementUpdated = true;
-                me.updateTargetElement();
-
-              }
-              break;
-            case 'mouseup':
-              if (me.dragId != -1) {
-                me.updateContainerStyle(me.dragId, {
-                  x: e.clientX - me.prePos.x,
-                  y: e.clientY - me.prePos.y
-                });
-                me.updateTargetElement();
-                if (me.target.parentNode) me.attachTo(me.target);
-                me.dragId = -1;
-              }
-              domUtils.un(me.doc, 'mousemove', me.proxy(me._eventHandler, me));
-              //淇鍙槸鐐瑰嚮鎸姩鐐癸紝浣嗘病鏈夋敼鍙樺ぇ灏忥紝涓嶅簲璇ヨЕ鍙慶ontentchange
-              if (elementUpdated) {
-                elementUpdated = false;
-                me.editor.fireEvent('contentchange');
-              }
-
-              break;
-            default:
-              break;
-          }
-        },
-        updateTargetElement: function() {
-          var me = this;
-          domUtils.setStyles(me.target, {
-            'width': me.resizer.style.width,
-            'height': me.resizer.style.height
-          });
-          me.target.width = parseInt(me.resizer.style.width);
-          me.target.height = parseInt(me.resizer.style.height);
-          me.attachTo(me.target);
-        },
-        updateContainerStyle: function(dir, offset) {
-          var me = this,
-            dom = me.resizer,
-            tmp;
-
-          if (rect[dir][0] != 0) {
-            tmp = parseInt(dom.style.left) + offset.x;
-            dom.style.left = me._validScaledProp('left', tmp) + 'px';
-          }
-          if (rect[dir][1] != 0) {
-            tmp = parseInt(dom.style.top) + offset.y;
-            dom.style.top = me._validScaledProp('top', tmp) + 'px';
-          }
-          if (rect[dir][2] != 0) {
-            tmp = dom.clientWidth + rect[dir][2] * offset.x;
-            dom.style.width = me._validScaledProp('width', tmp) + 'px';
-          }
-          if (rect[dir][3] != 0) {
-            tmp = dom.clientHeight + rect[dir][3] * offset.y;
-            dom.style.height = me._validScaledProp('height', tmp) + 'px';
-          }
-        },
-        _validScaledProp: function(prop, value) {
-          var ele = this.resizer,
-            wrap = document;
-
-          value = isNaN(value) ? 0 : value;
-          switch (prop) {
-            case 'left':
-              return value < 0 ? 0 : (value + ele.clientWidth) > wrap.clientWidth ? wrap.clientWidth - ele.clientWidth :
-                value;
-            case 'top':
-              return value < 0 ? 0 : (value + ele.clientHeight) > wrap.clientHeight ? wrap.clientHeight -
-                ele.clientHeight : value;
-            case 'width':
-              return value <= 0 ? 1 : (value + ele.offsetLeft) > wrap.clientWidth ? wrap.clientWidth - ele.offsetLeft :
-                value;
-            case 'height':
-              return value <= 0 ? 1 : (value + ele.offsetTop) > wrap.clientHeight ? wrap.clientHeight - ele
-                .offsetTop : value;
-          }
-        },
-        hideCover: function() {
-          this.cover.style.display = 'none';
-        },
-        showCover: function() {
-          var me = this,
-            editorPos = domUtils.getXY(me.editor.ui.getDom()),
-            iframePos = domUtils.getXY(me.editor.iframe);
-
-          domUtils.setStyles(me.cover, {
-            'width': me.editor.iframe.offsetWidth + 'px',
-            'height': me.editor.iframe.offsetHeight + 'px',
-            'top': iframePos.y - editorPos.y + 'px',
-            'left': iframePos.x - editorPos.x + 'px',
-            'position': 'absolute',
-            'display': ''
-          })
-        },
-        show: function(targetObj) {
-          var me = this;
-          me.resizer.style.display = 'block';
-          if (targetObj) me.attachTo(targetObj);
-
-          domUtils.on(this.resizer, 'mousedown', me.proxy(me._eventHandler, me));
-          domUtils.on(me.doc, 'mouseup', me.proxy(me._eventHandler, me));
-
-          me.showCover();
-          me.editor.fireEvent('afterscaleshow', me);
-          me.editor.fireEvent('saveScene');
-        },
-        hide: function() {
-          var me = this;
-          me.hideCover();
-          me.resizer.style.display = 'none';
-
-          domUtils.un(me.resizer, 'mousedown', me.proxy(me._eventHandler, me));
-          domUtils.un(me.doc, 'mouseup', me.proxy(me._eventHandler, me));
-          me.editor.fireEvent('afterscalehide', me);
-        },
-        proxy: function(fn, context) {
-          return function(e) {
-            return fn.apply(context || this, arguments);
-          };
-        },
-        attachTo: function(targetObj) {
-          var me = this,
-            target = me.target = targetObj,
-            resizer = this.resizer,
-            imgPos = domUtils.getXY(target),
-            iframePos = domUtils.getXY(me.editor.iframe),
-            editorPos = domUtils.getXY(resizer.parentNode);
-
-          domUtils.setStyles(resizer, {
-            'width': target.width + 'px',
-            'height': target.height + 'px',
-            'left': iframePos.x + imgPos.x - me.editor.document.body.scrollLeft - editorPos.x -
-              parseInt(resizer.style.borderLeftWidth) + 'px',
-            'top': iframePos.y + imgPos.y - me.editor.document.body.scrollTop - editorPos.y - parseInt(
-              resizer.style.borderTopWidth) + 'px'
-          });
-        }
-      }
-    })();
-
-    return function() {
-      var me = this,
-        imageScale;
-
-      me.setOpt('imageScaleEnabled', true);
-
-      if (!browser.ie && me.options.imageScaleEnabled) {
-        me.addListener('click', function(type, e) {
-
-          var range = me.selection.getRange(),
-            img = range.getClosedNode();
-
-          if (img && img.tagName == 'IMG' && me.body.contentEditable != "false") {
-
-            if (img.className.indexOf("edui-faked-music") != -1 ||
-              img.getAttribute("anchorname") ||
-              domUtils.hasClass(img, 'loadingclass') ||
-              domUtils.hasClass(img, 'loaderrorclass')) {
-              return
-            }
-
-            if (!imageScale) {
-              imageScale = new Scale();
-              imageScale.init(me);
-              me.ui.getDom().appendChild(imageScale.resizer);
-
-              var _keyDownHandler = function(e) {
-                  imageScale.hide();
-                  if (imageScale.target) me.selection.getRange().selectNode(imageScale.target).select();
-                },
-                _mouseDownHandler = function(e) {
-                  var ele = e.target || e.srcElement;
-                  if (ele && (ele.className === undefined || ele.className.indexOf('edui-editor-imagescale') ==
-                      -1)) {
-                    _keyDownHandler(e);
-                  }
-                },
-                timer;
-
-              me.addListener('afterscaleshow', function(e) {
-                me.addListener('beforekeydown', _keyDownHandler);
-                me.addListener('beforemousedown', _mouseDownHandler);
-                domUtils.on(document, 'keydown', _keyDownHandler);
-                domUtils.on(document, 'mousedown', _mouseDownHandler);
-                me.selection.getNative().removeAllRanges();
-              });
-              me.addListener('afterscalehide', function(e) {
-                me.removeListener('beforekeydown', _keyDownHandler);
-                me.removeListener('beforemousedown', _mouseDownHandler);
-                domUtils.un(document, 'keydown', _keyDownHandler);
-                domUtils.un(document, 'mousedown', _mouseDownHandler);
-                var target = imageScale.target;
-                if (target.parentNode) {
-                  me.selection.getRange().selectNode(target).select();
-                }
-              });
-              //TODO 鏈塱frame鐨勬儏鍐碉紝mousedown涓嶈兘寰�涓嬩紶銆傘��
-              domUtils.on(imageScale.resizer, 'mousedown', function(e) {
-                me.selection.getNative().removeAllRanges();
-                var ele = e.target || e.srcElement;
-                if (ele && ele.className.indexOf('edui-editor-imagescale-hand') == -1) {
-                  timer = setTimeout(function() {
-                    imageScale.hide();
-                    if (imageScale.target) me.selection.getRange().selectNode(ele).select();
-                  }, 200);
-                }
-              });
-              domUtils.on(imageScale.resizer, 'mouseup', function(e) {
-                var ele = e.target || e.srcElement;
-                if (ele && ele.className.indexOf('edui-editor-imagescale-hand') == -1) {
-                  clearTimeout(timer);
-                }
-              });
-            }
-            imageScale.show(img);
-          } else {
-            if (imageScale && imageScale.resizer.style.display != 'none') imageScale.hide();
-          }
-        });
-      }
-
-      if (browser.webkit) {
-        me.addListener('click', function(type, e) {
-          if (e.target.tagName == 'IMG' && me.body.contentEditable != "false") {
-            var range = new dom.Range(me.document);
-            range.selectNode(e.target).select();
-          }
-        });
-      }
-    }
-  })();
-
-  // plugins/autolink.js
-  ///import core
-  ///commands 涓洪潪ie娴忚鍣ㄨ嚜鍔ㄦ坊鍔燼鏍囩
-  ///commandsName  AutoLink
-  ///commandsTitle  鑷姩澧炲姞閾炬帴
-  /**
-   * @description 涓洪潪ie娴忚鍣ㄨ嚜鍔ㄦ坊鍔燼鏍囩
-   * @author zhanyi
-   */
-
-  UE.plugin.register('autolink', function() {
-    var cont = 0;
-
-    return !browser.ie ? {
-
-      bindEvents: {
-        'reset': function() {
-          cont = 0;
-        },
-        'keydown': function(type, evt) {
-          var me = this;
-          var keyCode = evt.keyCode || evt.which;
-
-          if (keyCode == 32 || keyCode == 13) {
-
-            var sel = me.selection.getNative(),
-              range = sel.getRangeAt(0).cloneRange(),
-              offset,
-              charCode;
-
-            var start = range.startContainer;
-            while (start.nodeType == 1 && range.startOffset > 0) {
-              start = range.startContainer.childNodes[range.startOffset - 1];
-              if (!start) {
-                break;
-              }
-              range.setStart(start, start.nodeType == 1 ? start.childNodes.length : start.nodeValue.length);
-              range.collapse(true);
-              start = range.startContainer;
-            }
-
-            do {
-              if (range.startOffset == 0) {
-                start = range.startContainer.previousSibling;
-
-                while (start && start.nodeType == 1) {
-                  start = start.lastChild;
-                }
-                if (!start || domUtils.isFillChar(start)) {
-                  break;
-                }
-                offset = start.nodeValue.length;
-              } else {
-                start = range.startContainer;
-                offset = range.startOffset;
-              }
-              range.setStart(start, offset - 1);
-              charCode = range.toString().charCodeAt(0);
-            } while (charCode != 160 && charCode != 32);
-
-            if (range.toString().replace(new RegExp(domUtils.fillChar, 'g'), '').match(
-                /(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)) {
-              while (range.toString().length) {
-                if (/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(range.toString())) {
-                  break;
-                }
-                try {
-                  range.setStart(range.startContainer, range.startOffset + 1);
-                } catch (e) {
-                  //trace:2121
-                  var start = range.startContainer;
-                  while (!(next = start.nextSibling)) {
-                    if (domUtils.isBody(start)) {
-                      return;
-                    }
-                    start = start.parentNode;
-
-                  }
-                  range.setStart(next, 0);
-
-                }
-
-              }
-              //range鐨勫紑濮嬭竟鐣屽凡缁忓湪a鏍囩閲岀殑涓嶅啀澶勭悊
-              if (domUtils.findParentByTagName(range.startContainer, 'a', true)) {
-                return;
-              }
-              var a = me.document.createElement('a'),
-                text = me.document.createTextNode(' '),
-                href;
-
-              me.undoManger && me.undoManger.save();
-              a.appendChild(range.extractContents());
-              a.href = a.innerHTML = a.innerHTML.replace(/<[^>]+>/g, '');
-              href = a.getAttribute("href").replace(new RegExp(domUtils.fillChar, 'g'), '');
-              href = /^(?:https?:\/\/)/ig.test(href) ? href : "http://" + href;
-              a.setAttribute('_src', utils.html(href));
-              a.href = utils.html(href);
-
-              range.insertNode(a);
-              a.parentNode.insertBefore(text, a.nextSibling);
-              range.setStart(text, 0);
-              range.collapse(true);
-              sel.removeAllRanges();
-              sel.addRange(range);
-              me.undoManger && me.undoManger.save();
-            }
-          }
-        }
-      }
-    } : {}
-  }, function() {
-    var keyCodes = {
-      37: 1,
-      38: 1,
-      39: 1,
-      40: 1,
-      13: 1,
-      32: 1
-    };
-
-    function checkIsCludeLink(node) {
-      if (node.nodeType == 3) {
-        return null
-      }
-      if (node.nodeName == 'A') {
-        return node;
-      }
-      var lastChild = node.lastChild;
-
-      while (lastChild) {
-        if (lastChild.nodeName == 'A') {
-          return lastChild;
-        }
-        if (lastChild.nodeType == 3) {
-          if (domUtils.isWhitespace(lastChild)) {
-            lastChild = lastChild.previousSibling;
-            continue;
-          }
-          return null
-        }
-        lastChild = lastChild.lastChild;
-      }
-    }
-    browser.ie && this.addListener('keyup', function(cmd, evt) {
-      var me = this,
-        keyCode = evt.keyCode;
-      if (keyCodes[keyCode]) {
-        var rng = me.selection.getRange();
-        var start = rng.startContainer;
-
-        if (keyCode == 13) {
-          while (start && !domUtils.isBody(start) && !domUtils.isBlockElm(start)) {
-            start = start.parentNode;
-          }
-          if (start && !domUtils.isBody(start) && start.nodeName == 'P') {
-            var pre = start.previousSibling;
-            if (pre && pre.nodeType == 1) {
-              var pre = checkIsCludeLink(pre);
-              if (pre && !pre.getAttribute('_href')) {
-                domUtils.remove(pre, true);
-              }
-            }
-          }
-        } else if (keyCode == 32) {
-          if (start.nodeType == 3 && /^\s$/.test(start.nodeValue)) {
-            start = start.previousSibling;
-            if (start && start.nodeName == 'A' && !start.getAttribute('_href')) {
-              domUtils.remove(start, true);
-            }
-          }
-        } else {
-          start = domUtils.findParentByTagName(start, 'a', true);
-          if (start && !start.getAttribute('_href')) {
-            var bk = rng.createBookmark();
-
-            domUtils.remove(start, true);
-            rng.moveToBookmark(bk).select(true)
-          }
-        }
-
-      }
-
-
-    });
-  });
-
-  // plugins/autoheight.js
-  ///import core
-  ///commands 褰撹緭鍏ュ唴瀹硅秴杩囩紪杈戝櫒楂樺害鏃讹紝缂栬緫鍣ㄨ嚜鍔ㄥ楂�
-  ///commandsName  AutoHeight,autoHeightEnabled
-  ///commandsTitle  鑷姩澧為珮
-  /**
-   * @description 鑷姩浼稿睍
-   * @author zhanyi
-   */
-  UE.plugins['autoheight'] = function() {
-    var me = this;
-    //鎻愪緵寮�鍏筹紝灏辩畻鍔犺浇涔熷彲浠ュ叧闂�
-    me.autoHeightEnabled = me.options.autoHeightEnabled !== false;
-    if (!me.autoHeightEnabled) {
-      return;
-    }
-
-    var bakOverflow,
-      lastHeight = 0,
-      options = me.options,
-      currentHeight,
-      timer;
-
-    function adjustHeight() {
-      var me = this;
-      clearTimeout(timer);
-      if (isFullscreen) return;
-      if (!me.queryCommandState || me.queryCommandState && me.queryCommandState('source') != 1) {
-        timer = setTimeout(function() {
-
-          var node = me.body.lastChild;
-          while (node && node.nodeType != 1) {
-            node = node.previousSibling;
-          }
-          if (node && node.nodeType == 1) {
-            node.style.clear = 'both';
-            currentHeight = Math.max(domUtils.getXY(node).y + node.offsetHeight + 25, Math.max(options.minFrameHeight,
-              options.initialFrameHeight));
-            if (currentHeight != lastHeight) {
-              if (currentHeight !== parseInt(me.iframe.parentNode.style.height)) {
-                me.iframe.parentNode.style.height = currentHeight + 'px';
-              }
-              me.body.style.height = currentHeight + 'px';
-              lastHeight = currentHeight;
-            }
-            domUtils.removeStyle(node, 'clear');
-          }
-
-
-        }, 50)
-      }
-    }
-    var isFullscreen;
-    me.addListener('fullscreenchanged', function(cmd, f) {
-      isFullscreen = f
-    });
-    me.addListener('destroy', function() {
-      me.removeListener('contentchange afterinserthtml keyup mouseup', adjustHeight)
-    });
-    me.enableAutoHeight = function() {
-      var me = this;
-      if (!me.autoHeightEnabled) {
-        return;
-      }
-      var doc = me.document;
-      me.autoHeightEnabled = true;
-      bakOverflow = doc.body.style.overflowY;
-      doc.body.style.overflowY = 'hidden';
-      me.addListener('contentchange afterinserthtml keyup mouseup', adjustHeight);
-      //ff涓嶇粰浜嬩欢绠楀緱涓嶅
-
-      setTimeout(function() {
-        adjustHeight.call(me);
-      }, browser.gecko ? 100 : 0);
-      me.fireEvent('autoheightchanged', me.autoHeightEnabled);
-    };
-    me.disableAutoHeight = function() {
-
-      me.body.style.overflowY = bakOverflow || '';
-
-      me.removeListener('contentchange', adjustHeight);
-      me.removeListener('keyup', adjustHeight);
-      me.removeListener('mouseup', adjustHeight);
-      me.autoHeightEnabled = false;
-      me.fireEvent('autoheightchanged', me.autoHeightEnabled);
-    };
-
-    me.on('setHeight', function() {
-      me.disableAutoHeight()
-    });
-    me.addListener('ready', function() {
-      me.enableAutoHeight();
-      //trace:1764
-      var timer;
-      domUtils.on(browser.ie ? me.body : me.document, browser.webkit ? 'dragover' : 'drop', function() {
-        clearTimeout(timer);
-        timer = setTimeout(function() {
-          //trace:3681
-          adjustHeight.call(me);
-        }, 100);
-
-      });
-      //淇鍐呭杩囧鏃讹紝鍥炲埌椤堕儴锛岄《閮ㄥ唴瀹硅宸ュ叿鏍忛伄鎸¢棶棰�
-      var lastScrollY;
-      window.onscroll = function() {
-        if (lastScrollY === null) {
-          lastScrollY = this.scrollY
-        } else if (this.scrollY == 0 && lastScrollY != 0) {
-          me.window.scrollTo(0, 0);
-          lastScrollY = null;
-        }
-      }
-    });
-
-
-  };
-
-
-
-  // plugins/autofloat.js
-  ///import core
-  ///commands 鎮诞宸ュ叿鏍�
-  ///commandsName  AutoFloat,autoFloatEnabled
-  ///commandsTitle  鎮诞宸ュ叿鏍�
-  /**
-   *  modified by chengchao01
-   *  娉ㄦ剰锛� 寮曞叆姝ゅ姛鑳藉悗锛屽湪IE6涓嬩細灏哹ody鐨勮儗鏅浘鐗囪鐩栨帀锛�
-   */
-  UE.plugins['autofloat'] = function() {
-    var me = this,
-      lang = me.getLang();
-    me.setOpt({
-      topOffset: 0
-    });
-    var optsAutoFloatEnabled = me.options.autoFloatEnabled !== false,
-      topOffset = me.options.topOffset;
-
-
-    //濡傛灉涓嶅浐瀹歵oolbar鐨勪綅缃紝鍒欑洿鎺ラ��鍑�
-    if (!optsAutoFloatEnabled) {
-      return;
-    }
-    var uiUtils = UE.ui.uiUtils,
-      LteIE6 = browser.ie && browser.version <= 6,
-      quirks = browser.quirks;
-
-    function checkHasUI() {
-      if (!UE.ui) {
-        alert(lang.autofloatMsg);
-        return 0;
-      }
-      return 1;
-    }
-
-    function fixIE6FixedPos() {
-      var docStyle = document.body.style;
-      docStyle.backgroundImage = 'url("about:blank")';
-      docStyle.backgroundAttachment = 'fixed';
-    }
-    var bakCssText,
-      placeHolder = document.createElement('div'),
-      toolbarBox, orgTop,
-      getPosition,
-      flag = true; //ie7妯″紡涓嬮渶瑕佸亸绉�
-    function setFloating() {
-      var toobarBoxPos = domUtils.getXY(toolbarBox),
-        origalFloat = domUtils.getComputedStyle(toolbarBox, 'position'),
-        origalLeft = domUtils.getComputedStyle(toolbarBox, 'left');
-      toolbarBox.style.width = toolbarBox.offsetWidth + 'px';
-      toolbarBox.style.zIndex = me.options.zIndex * 1 + 1;
-      toolbarBox.parentNode.insertBefore(placeHolder, toolbarBox);
-      if (LteIE6 || (quirks && browser.ie)) {
-        if (toolbarBox.style.position != 'absolute') {
-          toolbarBox.style.position = 'absolute';
-        }
-        toolbarBox.style.top = (document.body.scrollTop || document.documentElement.scrollTop) - orgTop + topOffset +
-          'px';
-      } else {
-        if (browser.ie7Compat && flag) {
-          flag = false;
-          toolbarBox.style.left = domUtils.getXY(toolbarBox).x - document.documentElement.getBoundingClientRect().left +
-            2 + 'px';
-        }
-        if (toolbarBox.style.position != 'fixed') {
-          toolbarBox.style.position = 'fixed';
-          toolbarBox.style.top = topOffset + "px";
-          ((origalFloat == 'absolute' || origalFloat == 'relative') && parseFloat(origalLeft)) && (toolbarBox.style
-            .left = toobarBoxPos.x + 'px');
-        }
-      }
-    }
-
-    function unsetFloating() {
-      flag = true;
-      if (placeHolder.parentNode) {
-        placeHolder.parentNode.removeChild(placeHolder);
-      }
-
-      toolbarBox.style.cssText = bakCssText;
-    }
-
-    function updateFloating() {
-      var rect3 = getPosition(me.container);
-      var offset = me.options.toolbarTopOffset || 0;
-      if (rect3.top < 0 && rect3.bottom - toolbarBox.offsetHeight > offset) {
-        setFloating();
-      } else {
-        unsetFloating();
-      }
-    }
-    var defer_updateFloating = utils.defer(function() {
-      updateFloating();
-    }, browser.ie ? 200 : 100, true);
-
-    me.addListener('destroy', function() {
-      domUtils.un(window, ['scroll', 'resize'], updateFloating);
-      me.removeListener('keydown', defer_updateFloating);
-    });
-
-    me.addListener('ready', function() {
-      if (checkHasUI(me)) {
-        //鍔犺浇浜唘i缁勪欢锛屼絾鍦╪ew鏃讹紝娌℃湁鍔犺浇ui锛屽鑷寸紪杈戝櫒瀹炰緥涓婃病鏈塽i绫伙紝鎵�浠ヨ繖閲屽仛鍒ゆ柇
-        if (!me.ui) {
-          return;
-        }
-        getPosition = uiUtils.getClientRect;
-        toolbarBox = me.ui.getDom('toolbarbox');
-        orgTop = getPosition(toolbarBox).top;
-        bakCssText = toolbarBox.style.cssText;
-        placeHolder.style.height = toolbarBox.offsetHeight + 'px';
-        if (LteIE6) {
-          fixIE6FixedPos();
-        }
-        domUtils.on(window, ['scroll', 'resize'], updateFloating);
-        me.addListener('keydown', defer_updateFloating);
-
-        me.addListener('beforefullscreenchange', function(t, enabled) {
-          if (enabled) {
-            unsetFloating();
-          }
-        });
-        me.addListener('fullscreenchanged', function(t, enabled) {
-          if (!enabled) {
-            updateFloating();
-          }
-        });
-        me.addListener('sourcemodechanged', function(t, enabled) {
-          setTimeout(function() {
-            updateFloating();
-          }, 0);
-        });
-        me.addListener("clearDoc", function() {
-          setTimeout(function() {
-            updateFloating();
-          }, 0);
-
-        })
-      }
-    });
-  };
-
-
-  // plugins/video.js
-  /**
-   * video鎻掍欢锛� 涓篣Editor鎻愪緵瑙嗛鎻掑叆鏀寔
-   * @file
-   * @since 1.2.6.1
-   */
-
-  UE.plugins['video'] = function() {
-    var me = this;
-
-    /**
-     * 鍒涘缓鎻掑叆瑙嗛瀛楃绐�
-     * @param url 瑙嗛鍦板潃
-     * @param width 瑙嗛瀹藉害
-     * @param height 瑙嗛楂樺害
-     * @param align 瑙嗛瀵归綈
-     * @param toEmbed 鏄惁浠lash浠f浛鏄剧ず
-     * @param addParagraph  鏄惁闇�瑕佹坊鍔燩 鏍囩
-     */
-    function creatInsertStr(url, width, height, id, align, classname, type) {
-
-      url = utils.unhtmlForUrl(url);
-      align = utils.unhtml(align);
-      classname = utils.unhtml(classname).trim();
-
-      width = parseInt(width, 10) || 0;
-      height = parseInt(height, 10) || 0;
-
-      var str;
-      switch (type) {
-        case 'image':
-          str = '<img ' + (id ? 'id="' + id + '"' : '') + ' width="' + width + '" height="' + height + '" _url="' +
-            url + '" class="' + classname.replace(/\bvideo-js\b/, '') + '"' +
-            ' src="' + me.options.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif" style="background:url(' +
-            me.options.UEDITOR_HOME_URL +
-            'themes/default/images/videologo.gif) no-repeat center center; border:1px solid gray;' + (align ?
-              'float:' + align + ';' : '') + '" />'
-          break;
-        case 'embed':
-          str = '<embed type="application/x-shockwave-flash" class="' + classname +
-            '" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
-            ' src="' + utils.html(url) + '" width="' + width + '" height="' + height + '"' + (align ?
-              ' style="float:' + align + '"' : '') +
-            ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >';
-          break;
-        case 'video':
-          var ext = url.substr(url.lastIndexOf('.') + 1);
-          if (ext == 'ogv') ext = 'ogg';
-          str = '<video' + (id ? ' id="' + id + '"' : '') + ' class="' + classname + ' video-js" ' + (align ?
-              ' style="float:' + align + '"' : '') +
-            ' controls preload="none" width="' + width + '" height="' + height + '" src="' + url +
-            '" data-setup="{}">' +
-            '<source src="' + url + '" type="video/' + ext + '" /></video>';
-          break;
-      }
-      return str;
-    }
-
-    function switchImgAndVideo(root, img2video) {
-      utils.each(root.getNodesByTagName(img2video ? 'img' : 'embed video'), function(node) {
-        var className = node.getAttr('class');
-        if (className && className.indexOf('edui-faked-video') != -1) {
-          var html = creatInsertStr(img2video ? node.getAttr('_url') : node.getAttr('src'), node.getAttr(
-              'width'), node.getAttr('height'), null, node.getStyle('float') || '', className, img2video ?
-            'embed' : 'image');
-          node.parentNode.replaceChild(UE.uNode.createElement(html), node);
-        }
-        if (className && className.indexOf('edui-upload-video') != -1) {
-          var html = creatInsertStr(img2video ? node.getAttr('_url') : node.getAttr('src'), node.getAttr(
-              'width'), node.getAttr('height'), null, node.getStyle('float') || '', className, img2video ?
-            'video' : 'image');
-          node.parentNode.replaceChild(UE.uNode.createElement(html), node);
-        }
-      })
-    }
-
-    me.addOutputRule(function(root) {
-      switchImgAndVideo(root, true)
-    });
-    me.addInputRule(function(root) {
-      switchImgAndVideo(root)
-    });
-
-    /**
-     * 鎻掑叆瑙嗛
-     * @command insertvideo
-     * @method execCommand
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @param { Object } videoAttr 閿�煎瀵硅薄锛� 鎻忚堪涓�涓棰戠殑鎵�鏈夊睘鎬�
-     * @example
-     * ```javascript
-     *
-     * var videoAttr = {
-     *      //瑙嗛鍦板潃
-     *      url: 'http://www.youku.com/xxx',
-     *      //瑙嗛瀹介珮鍊硷紝 鍗曚綅px
-     *      width: 200,
-     *      height: 100
-     * };
-     *
-     * //editor 鏄紪杈戝櫒瀹炰緥
-     * //鍚戠紪杈戝櫒鎻掑叆鍗曚釜瑙嗛
-     * editor.execCommand( 'insertvideo', videoAttr );
-     * ```
-     */
-
-    /**
-     * 鎻掑叆瑙嗛
-     * @command insertvideo
-     * @method execCommand
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @param { Array } videoArr 闇�瑕佹彃鍏ョ殑瑙嗛鐨勬暟缁勶紝 鍏朵腑鐨勬瘡涓�涓厓绱犻兘鏄竴涓敭鍊煎瀵硅薄锛� 鎻忚堪浜嗕竴涓棰戠殑鎵�鏈夊睘鎬�
-     * @example
-     * ```javascript
-     *
-     * var videoAttr1 = {
-     *      //瑙嗛鍦板潃
-     *      url: 'http://www.youku.com/xxx',
-     *      //瑙嗛瀹介珮鍊硷紝 鍗曚綅px
-     *      width: 200,
-     *      height: 100
-     * },
-     * videoAttr2 = {
-     *      //瑙嗛鍦板潃
-     *      url: 'http://www.youku.com/xxx',
-     *      //瑙嗛瀹介珮鍊硷紝 鍗曚綅px
-     *      width: 200,
-     *      height: 100
-     * }
-     *
-     * //editor 鏄紪杈戝櫒瀹炰緥
-     * //璇ユ柟娉曞皢浼氬悜缂栬緫鍣ㄥ唴鎻掑叆涓や釜瑙嗛
-     * editor.execCommand( 'insertvideo', [ videoAttr1, videoAttr2 ] );
-     * ```
-     */
-
-    /**
-     * 鏌ヨ褰撳墠鍏夋爣鎵�鍦ㄥ鏄惁鏄竴涓棰�
-     * @command insertvideo
-     * @method queryCommandState
-     * @param { String } cmd 闇�瑕佹煡璇㈢殑鍛戒护瀛楃涓�
-     * @return { int } 濡傛灉褰撳墠鍏夋爣鎵�鍦ㄥ鐨勫厓绱犳槸涓�涓棰戝璞★紝 鍒欒繑鍥�1锛屽惁鍒欒繑鍥�0
-     * @example
-     * ```javascript
-     *
-     * //editor 鏄紪杈戝櫒瀹炰緥
-     * editor.queryCommandState( 'insertvideo' );
-     * ```
-     */
-    me.commands["insertvideo"] = {
-      execCommand: function(cmd, videoObjs, type) {
-        videoObjs = utils.isArray(videoObjs) ? videoObjs : [videoObjs];
-        var html = [],
-          id = 'tmpVedio',
-          cl;
-        for (var i = 0, vi, len = videoObjs.length; i < len; i++) {
-          vi = videoObjs[i];
-          cl = (type == 'upload' ? 'edui-upload-video video-js vjs-default-skin' : 'edui-faked-video');
-          html.push(creatInsertStr(vi.url, vi.width || 420, vi.height || 280, id + i, null, cl, 'image'));
-        }
-        me.execCommand("inserthtml", html.join(""), true);
-        var rng = this.selection.getRange();
-        for (var i = 0, len = videoObjs.length; i < len; i++) {
-          var img = this.document.getElementById('tmpVedio' + i);
-          domUtils.removeAttributes(img, 'id');
-          rng.selectNode(img).select();
-          me.execCommand('imagefloat', videoObjs[i].align)
-        }
-      },
-      queryCommandState: function() {
-        var img = me.selection.getRange().getClosedNode(),
-          flag = img && (img.className == "edui-faked-video" || img.className.indexOf("edui-upload-video") != -
-            1);
-        return flag ? 1 : 0;
-      }
-    };
-  };
-
-
-  // plugins/table.core.js
-  /**
-   * Created with JetBrains WebStorm.
-   * User: taoqili
-   * Date: 13-1-18
-   * Time: 涓婂崍11:09
-   * To change this template use File | Settings | File Templates.
-   */
-  /**
-   * UE琛ㄦ牸鎿嶄綔绫�
-   * @param table
-   * @constructor
-   */
-  (function() {
-    var UETable = UE.UETable = function(table) {
-      this.table = table;
-      this.indexTable = [];
-      this.selectedTds = [];
-      this.cellsRange = {};
-      this.update(table);
-    };
-
-    //===浠ヤ笅涓洪潤鎬佸伐鍏锋柟娉�===
-    UETable.removeSelectedClass = function(cells) {
-      utils.each(cells, function(cell) {
-        domUtils.removeClasses(cell, "selectTdClass");
-      })
-    };
-    UETable.addSelectedClass = function(cells) {
-      utils.each(cells, function(cell) {
-        domUtils.addClass(cell, "selectTdClass");
-      })
-    };
-    UETable.isEmptyBlock = function(node) {
-      var reg = new RegExp(domUtils.fillChar, 'g');
-      if (node[browser.ie ? 'innerText' : 'textContent'].replace(/^\s*$/, '').replace(reg, '').length > 0) {
-        return 0;
-      }
-      for (var i in dtd.$isNotEmpty)
-        if (dtd.$isNotEmpty.hasOwnProperty(i)) {
-          if (node.getElementsByTagName(i).length) {
-            return 0;
-          }
-        }
-      return 1;
-    };
-    UETable.getWidth = function(cell) {
-      if (!cell) return 0;
-      return parseInt(domUtils.getComputedStyle(cell, "width"), 10);
-    };
-
-    /**
-     * 鑾峰彇鍗曞厓鏍兼垨鑰呭崟鍏冩牸缁勭殑鈥滃榻愨�濈姸鎬併�� 濡傛灉褰撳墠鐨勬娴嬪璞℃槸涓�涓崟鍏冩牸缁勶紝 鍙湁鍦ㄦ弧瓒虫墍鏈夊崟鍏冩牸鐨� 姘村钩鍜岀珫鐩� 瀵归綈灞炴�ч兘鐩稿悓鐨�
-     * 鏉′欢鏃舵墠浼氳繑鍥炲叾鐘舵�佸�硷紝鍚﹀垯灏嗚繑鍥瀗ull锛� 濡傛灉褰撳墠鍙娴嬩簡涓�涓崟鍏冩牸锛� 鍒欑洿鎺ヨ繑鍥炲綋鍓嶅崟鍏冩牸鐨勫榻愮姸鎬侊紱
-     * @param table cell or table cells , 鏀寔鍗曚釜鍗曞厓鏍糳om瀵硅薄 鎴栬�� 鍗曞厓鏍糳om瀵硅薄鏁扮粍
-     * @return { align: 'left' || 'right' || 'center', valign: 'top' || 'middle' || 'bottom' } 鎴栬�� null
-     */
-    UETable.getTableCellAlignState = function(cells) {
-
-      !utils.isArray(cells) && (cells = [cells]);
-
-      var result = {},
-        status = ['align', 'valign'],
-        tempStatus = null,
-        isSame = true; //鐘舵�佹槸鍚︾浉鍚�
-
-      utils.each(cells, function(cellNode) {
-
-        utils.each(status, function(currentState) {
-
-          tempStatus = cellNode.getAttribute(currentState);
-
-          if (!result[currentState] && tempStatus) {
-            result[currentState] = tempStatus;
-          } else if (!result[currentState] || (tempStatus !== result[currentState])) {
-            isSame = false;
-            return false;
-          }
-
-        });
-
-        return isSame;
-
-      });
-
-      return isSame ? result : null;
-
-    };
-
-    /**
-     * 鏍规嵁褰撳墠閫夊尯鑾峰彇鐩稿叧鐨則able淇℃伅
-     * @return {Object}
-     */
-    UETable.getTableItemsByRange = function(editor) {
-      var start = editor.selection.getStart();
-
-      //ff涓嬩細閫変腑bookmark
-      if (start && start.id && start.id.indexOf('_baidu_bookmark_start_') === 0 && start.nextSibling) {
-        start = start.nextSibling;
-      }
-
-      //鍦╰able鎴栬�卼d杈圭紭鏈夊彲鑳藉瓨鍦ㄩ�変腑tr鐨勬儏鍐�
-      var cell = start && domUtils.findParentByTagName(start, ["td", "th"], true),
-        tr = cell && cell.parentNode,
-        caption = start && domUtils.findParentByTagName(start, 'caption', true),
-        table = caption ? caption.parentNode : tr && tr.parentNode.parentNode;
-
-      return {
-        cell: cell,
-        tr: tr,
-        table: table,
-        caption: caption
-      }
-    };
-    UETable.getUETableBySelected = function(editor) {
-      var table = UETable.getTableItemsByRange(editor).table;
-      if (table && table.ueTable && table.ueTable.selectedTds.length) {
-        return table.ueTable;
-      }
-      return null;
-    };
-
-    UETable.getDefaultValue = function(editor, table) {
-      var borderMap = {
-          thin: '0px',
-          medium: '1px',
-          thick: '2px'
-        },
-        tableBorder, tdPadding, tdBorder, tmpValue;
-      if (!table) {
-        table = editor.document.createElement('table');
-        table.insertRow(0).insertCell(0).innerHTML = 'xxx';
-        editor.body.appendChild(table);
-        var td = table.getElementsByTagName('td')[0];
-        tmpValue = domUtils.getComputedStyle(table, 'border-left-width');
-        tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10);
-        tmpValue = domUtils.getComputedStyle(td, 'padding-left');
-        tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10);
-        tmpValue = domUtils.getComputedStyle(td, 'border-left-width');
-        tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10);
-        domUtils.remove(table);
-        return {
-          tableBorder: tableBorder,
-          tdPadding: tdPadding,
-          tdBorder: tdBorder
-        };
-      } else {
-        td = table.getElementsByTagName('td')[0];
-        tmpValue = domUtils.getComputedStyle(table, 'border-left-width');
-        tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10);
-        tmpValue = domUtils.getComputedStyle(td, 'padding-left');
-        tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10);
-        tmpValue = domUtils.getComputedStyle(td, 'border-left-width');
-        tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10);
-        return {
-          tableBorder: tableBorder,
-          tdPadding: tdPadding,
-          tdBorder: tdBorder
-        };
-      }
-    };
-    /**
-     * 鏍规嵁褰撳墠鐐瑰嚮鐨則d鎴栬�卼able鑾峰彇绱㈠紩瀵硅薄
-     * @param tdOrTable
-     */
-    UETable.getUETable = function(tdOrTable) {
-      var tag = tdOrTable.tagName.toLowerCase();
-      tdOrTable = (tag == "td" || tag == "th" || tag == 'caption') ? domUtils.findParentByTagName(tdOrTable,
-        "table", true) : tdOrTable;
-      if (!tdOrTable.ueTable) {
-        tdOrTable.ueTable = new UETable(tdOrTable);
-      }
-      return tdOrTable.ueTable;
-    };
-
-    UETable.cloneCell = function(cell, ignoreMerge, keepPro) {
-      if (!cell || utils.isString(cell)) {
-        return this.table.ownerDocument.createElement(cell || 'td');
-      }
-      var flag = domUtils.hasClass(cell, "selectTdClass");
-      flag && domUtils.removeClasses(cell, "selectTdClass");
-      var tmpCell = cell.cloneNode(true);
-      if (ignoreMerge) {
-        tmpCell.rowSpan = tmpCell.colSpan = 1;
-      }
-      //鍘绘帀瀹介珮
-      !keepPro && domUtils.removeAttributes(tmpCell, 'width height');
-      !keepPro && domUtils.removeAttributes(tmpCell, 'style');
-
-      tmpCell.style.borderLeftStyle = "";
-      tmpCell.style.borderTopStyle = "";
-      tmpCell.style.borderLeftColor = cell.style.borderRightColor;
-      tmpCell.style.borderLeftWidth = cell.style.borderRightWidth;
-      tmpCell.style.borderTopColor = cell.style.borderBottomColor;
-      tmpCell.style.borderTopWidth = cell.style.borderBottomWidth;
-      flag && domUtils.addClass(cell, "selectTdClass");
-      return tmpCell;
-    }
-
-    UETable.prototype = {
-      getMaxRows: function() {
-        var rows = this.table.rows,
-          maxLen = 1;
-        for (var i = 0, row; row = rows[i]; i++) {
-          var currentMax = 1;
-          for (var j = 0, cj; cj = row.cells[j++];) {
-            currentMax = Math.max(cj.rowSpan || 1, currentMax);
-          }
-          maxLen = Math.max(currentMax + i, maxLen);
-        }
-        return maxLen;
-      },
-      /**
-       * 鑾峰彇褰撳墠琛ㄦ牸鐨勬渶澶у垪鏁�
-       */
-      getMaxCols: function() {
-        var rows = this.table.rows,
-          maxLen = 0,
-          cellRows = {};
-        for (var i = 0, row; row = rows[i]; i++) {
-          var cellsNum = 0;
-          for (var j = 0, cj; cj = row.cells[j++];) {
-            cellsNum += (cj.colSpan || 1);
-            if (cj.rowSpan && cj.rowSpan > 1) {
-              for (var k = 1; k < cj.rowSpan; k++) {
-                if (!cellRows['row_' + (i + k)]) {
-                  cellRows['row_' + (i + k)] = (cj.colSpan || 1);
-                } else {
-                  cellRows['row_' + (i + k)]++
-                }
-              }
-
-            }
-          }
-          cellsNum += cellRows['row_' + i] || 0;
-          maxLen = Math.max(cellsNum, maxLen);
-        }
-        return maxLen;
-      },
-      getCellColIndex: function(cell) {
-
-      },
-      /**
-       * 鑾峰彇褰撳墠cell鏃佽竟鐨勫崟鍏冩牸锛�
-       * @param cell
-       * @param right
-       */
-      getHSideCell: function(cell, right) {
-        try {
-          var cellInfo = this.getCellInfo(cell),
-            previewRowIndex, previewColIndex;
-          var len = this.selectedTds.length,
-            range = this.cellsRange;
-          //棣栬鎴栬�呴鍒楁病鏈夊墠缃崟鍏冩牸
-          if ((!right && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (right && (!len ? (cellInfo.colIndex ==
-              (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null;
-
-          previewRowIndex = !len ? cellInfo.rowIndex : range.beginRowIndex;
-          previewColIndex = !right ? (!len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex -
-              1) :
-            (!len ? cellInfo.colIndex + 1 : range.endColIndex + 1);
-          return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[
-            previewRowIndex][previewColIndex].cellIndex);
-        } catch (e) {
-          showError(e);
-        }
-      },
-      getTabNextCell: function(cell, preRowIndex) {
-        var cellInfo = this.getCellInfo(cell),
-          rowIndex = preRowIndex || cellInfo.rowIndex,
-          colIndex = cellInfo.colIndex + 1 + (cellInfo.colSpan - 1),
-          nextCell;
-        try {
-          nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][
-            colIndex
-          ].cellIndex);
-        } catch (e) {
-          try {
-            rowIndex = rowIndex * 1 + 1;
-            colIndex = 0;
-            nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][
-              colIndex
-            ].cellIndex);
-          } catch (e) {}
-        }
-        return nextCell;
-
-      },
-      /**
-       * 鑾峰彇瑙嗚涓婄殑鍚庣疆鍗曞厓鏍�
-       * @param cell
-       * @param bottom
-       */
-      getVSideCell: function(cell, bottom, ignoreRange) {
-        try {
-          var cellInfo = this.getCellInfo(cell),
-            nextRowIndex, nextColIndex;
-          var len = this.selectedTds.length && !ignoreRange,
-            range = this.cellsRange;
-          //鏈鎴栬�呮湯鍒楁病鏈夊悗缃崟鍏冩牸
-          if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan >
-              this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null;
-
-          nextRowIndex = !bottom ? (!len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1) :
-            (!len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1);
-          nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex;
-          return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[
-            nextRowIndex][nextColIndex].cellIndex);
-        } catch (e) {
-          showError(e);
-        }
-      },
-      /**
-       * 鑾峰彇鐩稿悓缁撴潫浣嶇疆鐨勫崟鍏冩牸锛寈OrY鎸囦唬浜嗘槸鑾峰彇x杞寸浉鍚岃繕鏄痽杞寸浉鍚�
-       */
-      getSameEndPosCells: function(cell, xOrY) {
-        try {
-          var flag = (xOrY.toLowerCase() === "x"),
-            end = domUtils.getXY(cell)[flag ? 'x' : 'y'] + cell["offset" + (flag ? 'Width' : 'Height')],
-            rows = this.table.rows,
-            cells = null,
-            returns = [];
-          for (var i = 0; i < this.rowsNum; i++) {
-            cells = rows[i].cells;
-            for (var j = 0, tmpCell; tmpCell = cells[j++];) {
-              var tmpEnd = domUtils.getXY(tmpCell)[flag ? 'x' : 'y'] + tmpCell["offset" + (flag ? 'Width' :
-                'Height')];
-              //瀵瑰簲琛岀殑td宸茬粡琚笂闈㈣rowSpan浜�
-              if (tmpEnd > end && flag) break;
-              if (cell == tmpCell || end == tmpEnd) {
-                //鍙幏鍙栧崟涓�鐨勫崟鍏冩牸
-                //todo 浠呰幏鍙栧崟涓�鍗曞厓鏍煎湪鐗瑰畾鎯呭喌涓嬩細閫犳垚returns涓虹┖锛屼粠鑰屽奖鍝嶅悗缁殑鎷栨嫿瀹炵幇锛屼慨姝h繖涓�傞渶鑰冭檻鎬ц兘
-                if (tmpCell[flag ? "colSpan" : "rowSpan"] == 1) {
-                  returns.push(tmpCell);
-                }
-                if (flag) break;
-              }
-            }
-          }
-          return returns;
-        } catch (e) {
-          showError(e);
-        }
-      },
-      setCellContent: function(cell, content) {
-        cell.innerHTML = content || (browser.ie ? domUtils.fillChar : "<br />");
-      },
-      cloneCell: UETable.cloneCell,
-      /**
-       * 鑾峰彇璺熷綋鍓嶅崟鍏冩牸鐨勫彸杈圭珫绾夸负宸﹁竟鐨勬墍鏈夋湭鍚堝苟鍗曞厓鏍�
-       */
-      getSameStartPosXCells: function(cell) {
-        try {
-          var start = domUtils.getXY(cell).x + cell.offsetWidth,
-            rows = this.table.rows,
-            cells, returns = [];
-          for (var i = 0; i < this.rowsNum; i++) {
-            cells = rows[i].cells;
-            for (var j = 0, tmpCell; tmpCell = cells[j++];) {
-              var tmpStart = domUtils.getXY(tmpCell).x;
-              if (tmpStart > start) break;
-              if (tmpStart == start && tmpCell.colSpan == 1) {
-                returns.push(tmpCell);
-                break;
-              }
-            }
-          }
-          return returns;
-        } catch (e) {
-          showError(e);
-        }
-      },
-      /**
-       * 鏇存柊table瀵瑰簲鐨勭储寮曡〃
-       */
-      update: function(table) {
-        this.table = table || this.table;
-        this.selectedTds = [];
-        this.cellsRange = {};
-        this.indexTable = [];
-        var rows = this.table.rows,
-          rowsNum = this.getMaxRows(),
-          dNum = rowsNum - rows.length,
-          colsNum = this.getMaxCols();
-        while (dNum--) {
-          this.table.insertRow(rows.length);
-        }
-        this.rowsNum = rowsNum;
-        this.colsNum = colsNum;
-        for (var i = 0, len = rows.length; i < len; i++) {
-          this.indexTable[i] = new Array(colsNum);
-        }
-        //濉厖绱㈠紩琛�
-        for (var rowIndex = 0, row; row = rows[rowIndex]; rowIndex++) {
-          for (var cellIndex = 0, cell, cells = row.cells; cell = cells[cellIndex]; cellIndex++) {
-            //淇鏁磋琚玶owSpan鏃跺鑷寸殑琛屾暟璁$畻閿欒
-            if (cell.rowSpan > rowsNum) {
-              cell.rowSpan = rowsNum;
-            }
-            var colIndex = cellIndex,
-              rowSpan = cell.rowSpan || 1,
-              colSpan = cell.colSpan || 1;
-            //褰撳凡缁忚涓婁竴琛宺owSpan鎴栬�呰鍓嶄竴鍒梒olSpan浜嗭紝鍒欒烦鍒颁笅涓�涓崟鍏冩牸杩涜
-            while (this.indexTable[rowIndex][colIndex]) colIndex++;
-            for (var j = 0; j < rowSpan; j++) {
-              for (var k = 0; k < colSpan; k++) {
-                this.indexTable[rowIndex + j][colIndex + k] = {
-                  rowIndex: rowIndex,
-                  cellIndex: cellIndex,
-                  colIndex: colIndex,
-                  rowSpan: rowSpan,
-                  colSpan: colSpan
-                }
-              }
-            }
-          }
-        }
-        //淇娈嬬己td
-        for (j = 0; j < rowsNum; j++) {
-          for (k = 0; k < colsNum; k++) {
-            if (this.indexTable[j][k] === undefined) {
-              row = rows[j];
-              cell = row.cells[row.cells.length - 1];
-              cell = cell ? cell.cloneNode(true) : this.table.ownerDocument.createElement("td");
-              this.setCellContent(cell);
-              if (cell.colSpan !== 1) cell.colSpan = 1;
-              if (cell.rowSpan !== 1) cell.rowSpan = 1;
-              row.appendChild(cell);
-              this.indexTable[j][k] = {
-                rowIndex: j,
-                cellIndex: cell.cellIndex,
-                colIndex: k,
-                rowSpan: 1,
-                colSpan: 1
-              }
-            }
-          }
-        }
-        //褰撴閫夊悗鍒犻櫎琛屾垨鑰呭垪鍚庢挙閿�锛岄渶瑕侀噸寤洪�夊尯銆�
-        var tds = domUtils.getElementsByTagName(this.table, "td"),
-          selectTds = [];
-        utils.each(tds, function(td) {
-          if (domUtils.hasClass(td, "selectTdClass")) {
-            selectTds.push(td);
-          }
-        });
-        if (selectTds.length) {
-          var start = selectTds[0],
-            end = selectTds[selectTds.length - 1],
-            startInfo = this.getCellInfo(start),
-            endInfo = this.getCellInfo(end);
-          this.selectedTds = selectTds;
-          this.cellsRange = {
-            beginRowIndex: startInfo.rowIndex,
-            beginColIndex: startInfo.colIndex,
-            endRowIndex: endInfo.rowIndex + endInfo.rowSpan - 1,
-            endColIndex: endInfo.colIndex + endInfo.colSpan - 1
-          };
-        }
-        //缁欑涓�琛岃缃甪irstRow鐨勬牱寮忓悕绉�,鍦ㄦ帓搴忓浘鏍囩殑鏍峰紡涓婁娇鐢ㄥ埌
-        if (!domUtils.hasClass(this.table.rows[0], "firstRow")) {
-          domUtils.addClass(this.table.rows[0], "firstRow");
-          for (var i = 1; i < this.table.rows.length; i++) {
-            domUtils.removeClasses(this.table.rows[i], "firstRow");
-          }
-        }
-      },
-      /**
-       * 鑾峰彇鍗曞厓鏍肩殑绱㈠紩淇℃伅
-       */
-      getCellInfo: function(cell) {
-        if (!cell) return;
-        var cellIndex = cell.cellIndex,
-          rowIndex = cell.parentNode.rowIndex,
-          rowInfo = this.indexTable[rowIndex],
-          numCols = this.colsNum;
-        for (var colIndex = cellIndex; colIndex < numCols; colIndex++) {
-          var cellInfo = rowInfo[colIndex];
-          if (cellInfo.rowIndex === rowIndex && cellInfo.cellIndex === cellIndex) {
-            return cellInfo;
-          }
-        }
-      },
-      /**
-       * 鏍规嵁琛屽垪鍙疯幏鍙栧崟鍏冩牸
-       */
-      getCell: function(rowIndex, cellIndex) {
-        return rowIndex < this.rowsNum && this.table.rows[rowIndex].cells[cellIndex] || null;
-      },
-      /**
-       * 鍒犻櫎鍗曞厓鏍�
-       */
-      deleteCell: function(cell, rowIndex) {
-        rowIndex = typeof rowIndex == 'number' ? rowIndex : cell.parentNode.rowIndex;
-        var row = this.table.rows[rowIndex];
-        row.deleteCell(cell.cellIndex);
-      },
-      /**
-       * 鏍规嵁濮嬫湯涓や釜鍗曞厓鏍艰幏鍙栬妗嗛�夌殑鎵�鏈夊崟鍏冩牸鑼冨洿
-       */
-      getCellsRange: function(cellA, cellB) {
-        function checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex) {
-          var tmpBeginRowIndex = beginRowIndex,
-            tmpBeginColIndex = beginColIndex,
-            tmpEndRowIndex = endRowIndex,
-            tmpEndColIndex = endColIndex,
-            cellInfo, colIndex, rowIndex;
-          // 閫氳繃indexTable妫�鏌ユ槸鍚﹀瓨鍦ㄨ秴鍑篢ableRange涓婅竟鐣岀殑鎯呭喌
-          if (beginRowIndex > 0) {
-            for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) {
-              cellInfo = me.indexTable[beginRowIndex][colIndex];
-              rowIndex = cellInfo.rowIndex;
-              if (rowIndex < beginRowIndex) {
-                tmpBeginRowIndex = Math.min(rowIndex, tmpBeginRowIndex);
-              }
-            }
-          }
-          // 閫氳繃indexTable妫�鏌ユ槸鍚﹀瓨鍦ㄨ秴鍑篢ableRange鍙宠竟鐣岀殑鎯呭喌
-          if (endColIndex < me.colsNum) {
-            for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) {
-              cellInfo = me.indexTable[rowIndex][endColIndex];
-              colIndex = cellInfo.colIndex + cellInfo.colSpan - 1;
-              if (colIndex > endColIndex) {
-                tmpEndColIndex = Math.max(colIndex, tmpEndColIndex);
-              }
-            }
-          }
-          // 妫�鏌ユ槸鍚︽湁瓒呭嚭TableRange涓嬭竟鐣岀殑鎯呭喌
-          if (endRowIndex < me.rowsNum) {
-            for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) {
-              cellInfo = me.indexTable[endRowIndex][colIndex];
-              rowIndex = cellInfo.rowIndex + cellInfo.rowSpan - 1;
-              if (rowIndex > endRowIndex) {
-                tmpEndRowIndex = Math.max(rowIndex, tmpEndRowIndex);
-              }
-            }
-          }
-          // 妫�鏌ユ槸鍚︽湁瓒呭嚭TableRange宸﹁竟鐣岀殑鎯呭喌
-          if (beginColIndex > 0) {
-            for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) {
-              cellInfo = me.indexTable[rowIndex][beginColIndex];
-              colIndex = cellInfo.colIndex;
-              if (colIndex < beginColIndex) {
-                tmpBeginColIndex = Math.min(cellInfo.colIndex, tmpBeginColIndex);
-              }
-            }
-          }
-          //閫掑綊璋冪敤鐩磋嚦鎵�鏈夊畬鎴愭墍鏈夋閫夊崟鍏冩牸鐨勬墿灞�
-          if (tmpBeginRowIndex != beginRowIndex || tmpBeginColIndex != beginColIndex || tmpEndRowIndex !=
-            endRowIndex || tmpEndColIndex != endColIndex) {
-            return checkRange(tmpBeginRowIndex, tmpBeginColIndex, tmpEndRowIndex, tmpEndColIndex);
-          } else {
-            // 涓嶉渶瑕佹墿灞昑ableRange鐨勬儏鍐�
-            return {
-              beginRowIndex: beginRowIndex,
-              beginColIndex: beginColIndex,
-              endRowIndex: endRowIndex,
-              endColIndex: endColIndex
-            };
-          }
-        }
-
-        try {
-          var me = this,
-            cellAInfo = me.getCellInfo(cellA);
-          if (cellA === cellB) {
-            return {
-              beginRowIndex: cellAInfo.rowIndex,
-              beginColIndex: cellAInfo.colIndex,
-              endRowIndex: cellAInfo.rowIndex + cellAInfo.rowSpan - 1,
-              endColIndex: cellAInfo.colIndex + cellAInfo.colSpan - 1
-            };
-          }
-          var cellBInfo = me.getCellInfo(cellB);
-          // 璁$畻TableRange鐨勫洓涓竟
-          var beginRowIndex = Math.min(cellAInfo.rowIndex, cellBInfo.rowIndex),
-            beginColIndex = Math.min(cellAInfo.colIndex, cellBInfo.colIndex),
-            endRowIndex = Math.max(cellAInfo.rowIndex + cellAInfo.rowSpan - 1, cellBInfo.rowIndex + cellBInfo.rowSpan -
-              1),
-            endColIndex = Math.max(cellAInfo.colIndex + cellAInfo.colSpan - 1, cellBInfo.colIndex + cellBInfo.colSpan -
-              1);
-
-          return checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex);
-        } catch (e) {
-          //throw e;
-        }
-      },
-      /**
-       * 渚濇嵁cellsRange鑾峰彇瀵瑰簲鐨勫崟鍏冩牸闆嗗悎
-       */
-      getCells: function(range) {
-        //姣忔鑾峰彇cells涔嬪墠蹇呴』鍏堟竻闄や笂娆$殑閫夋嫨锛屽惁鍒欎細瀵瑰悗缁幏鍙栨搷浣滈�犳垚褰卞搷
-        this.clearSelected();
-        var beginRowIndex = range.beginRowIndex,
-          beginColIndex = range.beginColIndex,
-          endRowIndex = range.endRowIndex,
-          endColIndex = range.endColIndex,
-          cellInfo, rowIndex, colIndex, tdHash = {},
-          returnTds = [];
-        for (var i = beginRowIndex; i <= endRowIndex; i++) {
-          for (var j = beginColIndex; j <= endColIndex; j++) {
-            cellInfo = this.indexTable[i][j];
-            rowIndex = cellInfo.rowIndex;
-            colIndex = cellInfo.colIndex;
-            // 濡傛灉Cells閲屽凡缁忓寘鍚簡姝ell鍒欒烦杩�
-            var key = rowIndex + '|' + colIndex;
-            if (tdHash[key]) continue;
-            tdHash[key] = 1;
-            if (rowIndex < i || colIndex < j || rowIndex + cellInfo.rowSpan - 1 > endRowIndex || colIndex +
-              cellInfo.colSpan - 1 > endColIndex) {
-              return null;
-            }
-            returnTds.push(this.getCell(rowIndex, cellInfo.cellIndex));
-          }
-        }
-        return returnTds;
-      },
-      /**
-       * 娓呯悊宸茬粡閫変腑鐨勫崟鍏冩牸
-       */
-      clearSelected: function() {
-        UETable.removeSelectedClass(this.selectedTds);
-        this.selectedTds = [];
-        this.cellsRange = {};
-      },
-      /**
-       * 鏍规嵁range璁剧疆宸茬粡閫変腑鐨勫崟鍏冩牸
-       */
-      setSelected: function(range) {
-        var cells = this.getCells(range);
-        UETable.addSelectedClass(cells);
-        this.selectedTds = cells;
-        this.cellsRange = range;
-      },
-      isFullRow: function() {
-        var range = this.cellsRange;
-        return (range.endColIndex - range.beginColIndex + 1) == this.colsNum;
-      },
-      isFullCol: function() {
-        var range = this.cellsRange,
-          table = this.table,
-          ths = table.getElementsByTagName("th"),
-          rows = range.endRowIndex - range.beginRowIndex + 1;
-        return !ths.length ? rows == this.rowsNum : rows == this.rowsNum || (rows == this.rowsNum - 1);
-
-      },
-      /**
-       * 鑾峰彇瑙嗚涓婄殑鍓嶇疆鍗曞厓鏍硷紝榛樿鏄乏杈癸紝top浼犲叆鏃�
-       * @param cell
-       * @param top
-       */
-      getNextCell: function(cell, bottom, ignoreRange) {
-        try {
-          var cellInfo = this.getCellInfo(cell),
-            nextRowIndex, nextColIndex;
-          var len = this.selectedTds.length && !ignoreRange,
-            range = this.cellsRange;
-          //鏈鎴栬�呮湯鍒楁病鏈夊悗缃崟鍏冩牸
-          if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan >
-              this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null;
-
-          nextRowIndex = !bottom ? (!len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1) :
-            (!len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1);
-          nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex;
-          return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[
-            nextRowIndex][nextColIndex].cellIndex);
-        } catch (e) {
-          showError(e);
-        }
-      },
-      getPreviewCell: function(cell, top) {
-        try {
-          var cellInfo = this.getCellInfo(cell),
-            previewRowIndex, previewColIndex;
-          var len = this.selectedTds.length,
-            range = this.cellsRange;
-          //棣栬鎴栬�呴鍒楁病鏈夊墠缃崟鍏冩牸
-          if ((!top && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (top && (!len ? (cellInfo.rowIndex >
-              (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null;
-
-          previewRowIndex = !top ? (!len ? cellInfo.rowIndex : range.beginRowIndex) :
-            (!len ? (cellInfo.rowIndex < 1 ? 0 : (cellInfo.rowIndex - 1)) : range.beginRowIndex);
-          previewColIndex = !top ? (!len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex -
-              1) :
-            (!len ? cellInfo.colIndex : range.endColIndex + 1);
-          return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[
-            previewRowIndex][previewColIndex].cellIndex);
-        } catch (e) {
-          showError(e);
-        }
-      },
-      /**
-       * 绉诲姩鍗曞厓鏍间腑鐨勫唴瀹�
-       */
-      moveContent: function(cellTo, cellFrom) {
-        if (UETable.isEmptyBlock(cellFrom)) return;
-        if (UETable.isEmptyBlock(cellTo)) {
-          cellTo.innerHTML = cellFrom.innerHTML;
-          return;
-        }
-        var child = cellTo.lastChild;
-        if (child.nodeType == 3 || !dtd.$block[child.tagName]) {
-          cellTo.appendChild(cellTo.ownerDocument.createElement('br'))
-        }
-        while (child = cellFrom.firstChild) {
-          cellTo.appendChild(child);
-        }
-      },
-      /**
-       * 鍚戝彸鍚堝苟鍗曞厓鏍�
-       */
-      mergeRight: function(cell) {
-        var cellInfo = this.getCellInfo(cell),
-          rightColIndex = cellInfo.colIndex + cellInfo.colSpan,
-          rightCellInfo = this.indexTable[cellInfo.rowIndex][rightColIndex],
-          rightCell = this.getCell(rightCellInfo.rowIndex, rightCellInfo.cellIndex);
-        //鍚堝苟
-        cell.colSpan = cellInfo.colSpan + rightCellInfo.colSpan;
-        //琚悎骞剁殑鍗曞厓鏍间笉搴斿瓨鍦ㄥ搴﹀睘鎬�
-        cell.removeAttribute("width");
-        //绉诲姩鍐呭
-        this.moveContent(cell, rightCell);
-        //鍒犳帀琚悎骞剁殑Cell
-        this.deleteCell(rightCell, rightCellInfo.rowIndex);
-        this.update();
-      },
-      /**
-       * 鍚戜笅鍚堝苟鍗曞厓鏍�
-       */
-      mergeDown: function(cell) {
-        var cellInfo = this.getCellInfo(cell),
-          downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan,
-          downCellInfo = this.indexTable[downRowIndex][cellInfo.colIndex],
-          downCell = this.getCell(downCellInfo.rowIndex, downCellInfo.cellIndex);
-        cell.rowSpan = cellInfo.rowSpan + downCellInfo.rowSpan;
-        cell.removeAttribute("height");
-        this.moveContent(cell, downCell);
-        this.deleteCell(downCell, downCellInfo.rowIndex);
-        this.update();
-      },
-      /**
-       * 鍚堝苟鏁翠釜range涓殑鍐呭
-       */
-      mergeRange: function() {
-        //鐢变簬鍚堝苟鎿嶄綔鍙互鍦ㄤ换鎰忔椂鍒昏繘琛岋紝鎵�浠ユ棤娉曢�氳繃榧犳爣浣嶇疆绛変俊鎭疄鏃剁敓鎴恟ange锛屽彧鑳介�氳繃缂撳瓨瀹炰緥涓殑cellsRange瀵硅薄鏉ヨ闂�
-        var range = this.cellsRange,
-          leftTopCell = this.getCell(range.beginRowIndex, this.indexTable[range.beginRowIndex][range.beginColIndex]
-            .cellIndex);
-
-        if (leftTopCell.tagName == "TH" && range.endRowIndex !== range.beginRowIndex) {
-          var index = this.indexTable,
-            info = this.getCellInfo(leftTopCell);
-          leftTopCell = this.getCell(1, index[1][info.colIndex].cellIndex);
-          range = this.getCellsRange(leftTopCell, this.getCell(index[this.rowsNum - 1][info.colIndex].rowIndex,
-            index[this.rowsNum - 1][info.colIndex].cellIndex));
-        }
-
-        // 鍒犻櫎鍓╀綑鐨凜ells
-        var cells = this.getCells(range);
-        for (var i = 0, ci; ci = cells[i++];) {
-          if (ci !== leftTopCell) {
-            this.moveContent(leftTopCell, ci);
-            this.deleteCell(ci);
-          }
-        }
-        // 淇敼宸︿笂瑙扖ell鐨剅owSpan鍜宑olSpan锛屽苟璋冩暣瀹藉害灞炴�ц缃�
-        leftTopCell.rowSpan = range.endRowIndex - range.beginRowIndex + 1;
-        leftTopCell.rowSpan > 1 && leftTopCell.removeAttribute("height");
-        leftTopCell.colSpan = range.endColIndex - range.beginColIndex + 1;
-        leftTopCell.colSpan > 1 && leftTopCell.removeAttribute("width");
-        if (leftTopCell.rowSpan == this.rowsNum && leftTopCell.colSpan != 1) {
-          leftTopCell.colSpan = 1;
-        }
-
-        if (leftTopCell.colSpan == this.colsNum && leftTopCell.rowSpan != 1) {
-          var rowIndex = leftTopCell.parentNode.rowIndex;
-          //瑙e喅IE涓嬬殑琛ㄦ牸鎿嶄綔闂
-          if (this.table.deleteRow) {
-            for (var i = rowIndex + 1, curIndex = rowIndex + 1, len = leftTopCell.rowSpan; i < len; i++) {
-              this.table.deleteRow(curIndex);
-            }
-          } else {
-            for (var i = 0, len = leftTopCell.rowSpan - 1; i < len; i++) {
-              var row = this.table.rows[rowIndex + 1];
-              row.parentNode.removeChild(row);
-            }
-          }
-          leftTopCell.rowSpan = 1;
-        }
-        this.update();
-      },
-      /**
-       * 鎻掑叆涓�琛屽崟鍏冩牸
-       */
-      insertRow: function(rowIndex, sourceCell) {
-        var numCols = this.colsNum,
-          table = this.table,
-          row = table.insertRow(rowIndex),
-          cell,
-          isInsertTitle = typeof sourceCell == 'string' && sourceCell.toUpperCase() == 'TH';
-
-        function replaceTdToTh(colIndex, cell, tableRow) {
-          if (colIndex == 0) {
-            var tr = tableRow.nextSibling || tableRow.previousSibling,
-              th = tr.cells[colIndex];
-            if (th.tagName == 'TH') {
-              th = cell.ownerDocument.createElement("th");
-              th.appendChild(cell.firstChild);
-              tableRow.insertBefore(th, cell);
-              domUtils.remove(cell)
-            }
-          } else {
-            if (cell.tagName == 'TH') {
-              var td = cell.ownerDocument.createElement("td");
-              td.appendChild(cell.firstChild);
-              tableRow.insertBefore(td, cell);
-              domUtils.remove(cell)
-            }
-          }
-        }
-
-        //棣栬鐩存帴鎻掑叆,鏃犻渶鑰冭檻閮ㄥ垎鍗曞厓鏍艰rowspan鐨勬儏鍐�
-        if (rowIndex == 0 || rowIndex == this.rowsNum) {
-          for (var colIndex = 0; colIndex < numCols; colIndex++) {
-            cell = this.cloneCell(sourceCell, true);
-            this.setCellContent(cell);
-            cell.getAttribute('vAlign') && cell.setAttribute('vAlign', cell.getAttribute('vAlign'));
-            row.appendChild(cell);
-            if (!isInsertTitle) replaceTdToTh(colIndex, cell, row);
-          }
-        } else {
-          var infoRow = this.indexTable[rowIndex],
-            cellIndex = 0;
-          for (colIndex = 0; colIndex < numCols; colIndex++) {
-            var cellInfo = infoRow[colIndex];
-            //濡傛灉瀛樺湪鏌愪釜鍗曞厓鏍肩殑rowspan绌胯繃寰呮彃鍏ヨ鐨勪綅缃紝鍒欎慨鏀硅鍗曞厓鏍肩殑rowspan鍗冲彲锛屾棤闇�鎻掑叆鍗曞厓鏍�
-            if (cellInfo.rowIndex < rowIndex) {
-              cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex);
-              cell.rowSpan = cellInfo.rowSpan + 1;
-            } else {
-              cell = this.cloneCell(sourceCell, true);
-              this.setCellContent(cell);
-              row.appendChild(cell);
-            }
-            if (!isInsertTitle) replaceTdToTh(colIndex, cell, row);
-          }
-        }
-        //妗嗛�夋椂鎻掑叆涓嶈Е鍙慶ontentchange锛岄渶瑕佹墜鍔ㄦ洿鏂扮储寮曘��
-        this.update();
-        return row;
-      },
-      /**
-       * 鍒犻櫎涓�琛屽崟鍏冩牸
-       * @param rowIndex
-       */
-      deleteRow: function(rowIndex) {
-        var row = this.table.rows[rowIndex],
-          infoRow = this.indexTable[rowIndex],
-          colsNum = this.colsNum,
-          count = 0; //澶勭悊璁℃暟
-        for (var colIndex = 0; colIndex < colsNum;) {
-          var cellInfo = infoRow[colIndex],
-            cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex);
-          if (cell.rowSpan > 1) {
-            if (cellInfo.rowIndex == rowIndex) {
-              var clone = cell.cloneNode(true);
-              clone.rowSpan = cell.rowSpan - 1;
-              clone.innerHTML = "";
-              cell.rowSpan = 1;
-              var nextRowIndex = rowIndex + 1,
-                nextRow = this.table.rows[nextRowIndex],
-                insertCellIndex,
-                preMerged = this.getPreviewMergedCellsNum(nextRowIndex, colIndex) - count;
-              if (preMerged < colIndex) {
-                insertCellIndex = colIndex - preMerged - 1;
-                //nextRow.insertCell(insertCellIndex);
-                domUtils.insertAfter(nextRow.cells[insertCellIndex], clone);
-              } else {
-                if (nextRow.cells.length) nextRow.insertBefore(clone, nextRow.cells[0])
-              }
-              count += 1;
-              //cell.parentNode.removeChild(cell);
-            }
-          }
-          colIndex += cell.colSpan || 1;
-        }
-        var deleteTds = [],
-          cacheMap = {};
-        for (colIndex = 0; colIndex < colsNum; colIndex++) {
-          var tmpRowIndex = infoRow[colIndex].rowIndex,
-            tmpCellIndex = infoRow[colIndex].cellIndex,
-            key = tmpRowIndex + "_" + tmpCellIndex;
-          if (cacheMap[key]) continue;
-          cacheMap[key] = 1;
-          cell = this.getCell(tmpRowIndex, tmpCellIndex);
-          deleteTds.push(cell);
-        }
-        var mergeTds = [];
-        utils.each(deleteTds, function(td) {
-          if (td.rowSpan == 1) {
-            td.parentNode.removeChild(td);
-          } else {
-            mergeTds.push(td);
-          }
-        });
-        utils.each(mergeTds, function(td) {
-          td.rowSpan--;
-        });
-        row.parentNode.removeChild(row);
-        //娴忚鍣ㄦ柟娉曟湰韬瓨鍦╞ug,閲囩敤鑷畾涔夋柟娉曞垹闄�
-        //this.table.deleteRow(rowIndex);
-        this.update();
-      },
-      insertCol: function(colIndex, sourceCell, defaultValue) {
-        var rowsNum = this.rowsNum,
-          rowIndex = 0,
-          tableRow, cell,
-          backWidth = parseInt((this.table.offsetWidth - (this.colsNum + 1) * 20 - (this.colsNum + 1)) / (this.colsNum +
-            1), 10),
-          isInsertTitleCol = typeof sourceCell == 'string' && sourceCell.toUpperCase() == 'TH';
-
-        function replaceTdToTh(rowIndex, cell, tableRow) {
-          if (rowIndex == 0) {
-            var th = cell.nextSibling || cell.previousSibling;
-            if (th.tagName == 'TH') {
-              th = cell.ownerDocument.createElement("th");
-              th.appendChild(cell.firstChild);
-              tableRow.insertBefore(th, cell);
-              domUtils.remove(cell)
-            }
-          } else {
-            if (cell.tagName == 'TH') {
-              var td = cell.ownerDocument.createElement("td");
-              td.appendChild(cell.firstChild);
-              tableRow.insertBefore(td, cell);
-              domUtils.remove(cell)
-            }
-          }
-        }
-
-        var preCell;
-        if (colIndex == 0 || colIndex == this.colsNum) {
-          for (; rowIndex < rowsNum; rowIndex++) {
-            tableRow = this.table.rows[rowIndex];
-            preCell = tableRow.cells[colIndex == 0 ? colIndex : tableRow.cells.length];
-            cell = this.cloneCell(sourceCell, true); //tableRow.insertCell(colIndex == 0 ? colIndex : tableRow.cells.length);
-            this.setCellContent(cell);
-            cell.setAttribute('vAlign', cell.getAttribute('vAlign'));
-            preCell && cell.setAttribute('width', preCell.getAttribute('width'));
-            if (!colIndex) {
-              tableRow.insertBefore(cell, tableRow.cells[0]);
-            } else {
-              domUtils.insertAfter(tableRow.cells[tableRow.cells.length - 1], cell);
-            }
-            if (!isInsertTitleCol) replaceTdToTh(rowIndex, cell, tableRow)
-          }
-        } else {
-          for (; rowIndex < rowsNum; rowIndex++) {
-            var cellInfo = this.indexTable[rowIndex][colIndex];
-            if (cellInfo.colIndex < colIndex) {
-              cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex);
-              cell.colSpan = cellInfo.colSpan + 1;
-            } else {
-              tableRow = this.table.rows[rowIndex];
-              preCell = tableRow.cells[cellInfo.cellIndex];
-
-              cell = this.cloneCell(sourceCell, true); //tableRow.insertCell(cellInfo.cellIndex);
-              this.setCellContent(cell);
-              cell.setAttribute('vAlign', cell.getAttribute('vAlign'));
-              preCell && cell.setAttribute('width', preCell.getAttribute('width'));
-              //闃叉IE涓嬫姤閿�
-              preCell ? tableRow.insertBefore(cell, preCell) : tableRow.appendChild(cell);
-            }
-            if (!isInsertTitleCol) replaceTdToTh(rowIndex, cell, tableRow);
-          }
-        }
-        //妗嗛�夋椂鎻掑叆涓嶈Е鍙慶ontentchange锛岄渶瑕佹墜鍔ㄦ洿鏂扮储寮�
-        this.update();
-        this.updateWidth(backWidth, defaultValue || {
-          tdPadding: 10,
-          tdBorder: 1
-        });
-      },
-      updateWidth: function(width, defaultValue) {
-        var table = this.table,
-          tmpWidth = UETable.getWidth(table) - defaultValue.tdPadding * 2 - defaultValue.tdBorder + width;
-        if (tmpWidth < table.ownerDocument.body.offsetWidth) {
-          table.setAttribute("width", tmpWidth);
-          return;
-        }
-        var tds = domUtils.getElementsByTagName(this.table, "td th");
-        utils.each(tds, function(td) {
-          td.setAttribute("width", width);
-        })
-      },
-      deleteCol: function(colIndex) {
-        var indexTable = this.indexTable,
-          tableRows = this.table.rows,
-          backTableWidth = this.table.getAttribute("width"),
-          backTdWidth = 0,
-          rowsNum = this.rowsNum,
-          cacheMap = {};
-        for (var rowIndex = 0; rowIndex < rowsNum;) {
-          var infoRow = indexTable[rowIndex],
-            cellInfo = infoRow[colIndex],
-            key = cellInfo.rowIndex + '_' + cellInfo.colIndex;
-          // 璺宠繃宸茬粡澶勭悊杩囩殑Cell
-          if (cacheMap[key]) continue;
-          cacheMap[key] = 1;
-          var cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex);
-          if (!backTdWidth) backTdWidth = cell && parseInt(cell.offsetWidth / cell.colSpan, 10).toFixed(0);
-          // 濡傛灉Cell鐨刢olSpan澶т簬1, 灏变慨鏀筩olSpan, 鍚﹀垯灏卞垹鎺夎繖涓狢ell
-          if (cell.colSpan > 1) {
-            cell.colSpan--;
-          } else {
-            tableRows[rowIndex].deleteCell(cellInfo.cellIndex);
-          }
-          rowIndex += cellInfo.rowSpan || 1;
-        }
-        this.table.setAttribute("width", backTableWidth - backTdWidth);
-        this.update();
-      },
-      splitToCells: function(cell) {
-        var me = this,
-          cells = this.splitToRows(cell);
-        utils.each(cells, function(cell) {
-          me.splitToCols(cell);
-        })
-      },
-      splitToRows: function(cell) {
-        var cellInfo = this.getCellInfo(cell),
-          rowIndex = cellInfo.rowIndex,
-          colIndex = cellInfo.colIndex,
-          results = [];
-        // 淇敼Cell鐨剅owSpan
-        cell.rowSpan = 1;
-        results.push(cell);
-        // 琛ラ綈鍗曞厓鏍�
-        for (var i = rowIndex, endRow = rowIndex + cellInfo.rowSpan; i < endRow; i++) {
-          if (i == rowIndex) continue;
-          var tableRow = this.table.rows[i],
-            tmpCell = tableRow.insertCell(colIndex - this.getPreviewMergedCellsNum(i, colIndex));
-          tmpCell.colSpan = cellInfo.colSpan;
-          this.setCellContent(tmpCell);
-          tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign'));
-          tmpCell.setAttribute('align', cell.getAttribute('align'));
-          if (cell.style.cssText) {
-            tmpCell.style.cssText = cell.style.cssText;
-          }
-          results.push(tmpCell);
-        }
-        this.update();
-        return results;
-      },
-      getPreviewMergedCellsNum: function(rowIndex, colIndex) {
-        var indexRow = this.indexTable[rowIndex],
-          num = 0;
-        for (var i = 0; i < colIndex;) {
-          var colSpan = indexRow[i].colSpan,
-            tmpRowIndex = indexRow[i].rowIndex;
-          num += (colSpan - (tmpRowIndex == rowIndex ? 1 : 0));
-          i += colSpan;
-        }
-        return num;
-      },
-      splitToCols: function(cell) {
-        var backWidth = (cell.offsetWidth / cell.colSpan - 22).toFixed(0),
-
-          cellInfo = this.getCellInfo(cell),
-          rowIndex = cellInfo.rowIndex,
-          colIndex = cellInfo.colIndex,
-          results = [];
-        // 淇敼Cell鐨剅owSpan
-        cell.colSpan = 1;
-        cell.setAttribute("width", backWidth);
-        results.push(cell);
-        // 琛ラ綈鍗曞厓鏍�
-        for (var j = colIndex, endCol = colIndex + cellInfo.colSpan; j < endCol; j++) {
-          if (j == colIndex) continue;
-          var tableRow = this.table.rows[rowIndex],
-            tmpCell = tableRow.insertCell(this.indexTable[rowIndex][j].cellIndex + 1);
-          tmpCell.rowSpan = cellInfo.rowSpan;
-          this.setCellContent(tmpCell);
-          tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign'));
-          tmpCell.setAttribute('align', cell.getAttribute('align'));
-          tmpCell.setAttribute('width', backWidth);
-          if (cell.style.cssText) {
-            tmpCell.style.cssText = cell.style.cssText;
-          }
-          //澶勭悊th鐨勬儏鍐�
-          if (cell.tagName == 'TH') {
-            var th = cell.ownerDocument.createElement('th');
-            th.appendChild(tmpCell.firstChild);
-            th.setAttribute('vAlign', cell.getAttribute('vAlign'));
-            th.rowSpan = tmpCell.rowSpan;
-            tableRow.insertBefore(th, tmpCell);
-            domUtils.remove(tmpCell);
-          }
-          results.push(tmpCell);
-        }
-        this.update();
-        return results;
-      },
-      isLastCell: function(cell, rowsNum, colsNum) {
-        rowsNum = rowsNum || this.rowsNum;
-        colsNum = colsNum || this.colsNum;
-        var cellInfo = this.getCellInfo(cell);
-        return ((cellInfo.rowIndex + cellInfo.rowSpan) == rowsNum) &&
-          ((cellInfo.colIndex + cellInfo.colSpan) == colsNum);
-      },
-      getLastCell: function(cells) {
-        cells = cells || this.table.getElementsByTagName("td");
-        var firstInfo = this.getCellInfo(cells[0]);
-        var me = this,
-          last = cells[0],
-          tr = last.parentNode,
-          cellsNum = 0,
-          cols = 0,
-          rows;
-        utils.each(cells, function(cell) {
-          if (cell.parentNode == tr) cols += cell.colSpan || 1;
-          cellsNum += cell.rowSpan * cell.colSpan || 1;
-        });
-        rows = cellsNum / cols;
-        utils.each(cells, function(cell) {
-          if (me.isLastCell(cell, rows, cols)) {
-            last = cell;
-            return false;
-          }
-        });
-        return last;
-
-      },
-      selectRow: function(rowIndex) {
-        var indexRow = this.indexTable[rowIndex],
-          start = this.getCell(indexRow[0].rowIndex, indexRow[0].cellIndex),
-          end = this.getCell(indexRow[this.colsNum - 1].rowIndex, indexRow[this.colsNum - 1].cellIndex),
-          range = this.getCellsRange(start, end);
-        this.setSelected(range);
-      },
-      selectTable: function() {
-        var tds = this.table.getElementsByTagName("td"),
-          range = this.getCellsRange(tds[0], tds[tds.length - 1]);
-        this.setSelected(range);
-      },
-      setBackground: function(cells, value) {
-        if (typeof value === "string") {
-          utils.each(cells, function(cell) {
-            cell.style.backgroundColor = value;
-          })
-        } else if (typeof value === "object") {
-          value = utils.extend({
-            repeat: true,
-            colorList: ["#ddd", "#fff"]
-          }, value);
-          var rowIndex = this.getCellInfo(cells[0]).rowIndex,
-            count = 0,
-            colors = value.colorList,
-            getColor = function(list, index, repeat) {
-              return list[index] ? list[index] : repeat ? list[index % list.length] : "";
-            };
-          for (var i = 0, cell; cell = cells[i++];) {
-            var cellInfo = this.getCellInfo(cell);
-            cell.style.backgroundColor = getColor(colors, ((rowIndex + count) == cellInfo.rowIndex) ? count :
-              ++count, value.repeat);
-          }
-        }
-      },
-      removeBackground: function(cells) {
-        utils.each(cells, function(cell) {
-          cell.style.backgroundColor = "";
-        })
-      }
-
-
-    };
-
-    function showError(e) {}
-  })();
-
-  // plugins/table.cmds.js
-  /**
-   * Created with JetBrains PhpStorm.
-   * User: taoqili
-   * Date: 13-2-20
-   * Time: 涓嬪崍6:25
-   * To change this template use File | Settings | File Templates.
-   */
-  ;
-  (function() {
-    var UT = UE.UETable,
-      getTableItemsByRange = function(editor) {
-        return UT.getTableItemsByRange(editor);
-      },
-      getUETableBySelected = function(editor) {
-        return UT.getUETableBySelected(editor)
-      },
-      getDefaultValue = function(editor, table) {
-        return UT.getDefaultValue(editor, table);
-      },
-      getUETable = function(tdOrTable) {
-        return UT.getUETable(tdOrTable);
-      };
-
-
-    UE.commands['inserttable'] = {
-      queryCommandState: function() {
-        return getTableItemsByRange(this).table ? -1 : 0;
-      },
-      execCommand: function(cmd, opt) {
-        function createTable(opt, tdWidth) {
-          var html = [],
-            rowsNum = opt.numRows,
-            colsNum = opt.numCols;
-          for (var r = 0; r < rowsNum; r++) {
-            html.push('<tr' + (r == 0 ? ' class="firstRow"' : '') + '>');
-            for (var c = 0; c < colsNum; c++) {
-              html.push('<td width="' + tdWidth + '"  vAlign="' + opt.tdvalign + '" >' + (browser.ie && browser
-                .version < 11 ? domUtils.fillChar : '<br/>') + '</td>')
-            }
-            html.push('</tr>')
-          }
-          //绂佹鎸囧畾table-width
-          return '<table><tbody>' + html.join('') + '</tbody></table>'
-        }
-
-        if (!opt) {
-          opt = utils.extend({}, {
-            numCols: this.options.defaultCols,
-            numRows: this.options.defaultRows,
-            tdvalign: this.options.tdvalign
-          })
-        }
-        var me = this;
-        var range = this.selection.getRange(),
-          start = range.startContainer,
-          firstParentBlock = domUtils.findParent(start, function(node) {
-            return domUtils.isBlockElm(node);
-          }, true) || me.body;
-
-        var defaultValue = getDefaultValue(me),
-          tableWidth = firstParentBlock.offsetWidth,
-          tdWidth = Math.floor(tableWidth / opt.numCols - defaultValue.tdPadding * 2 - defaultValue.tdBorder);
-
-        //todo鍏朵粬灞炴��
-        !opt.tdvalign && (opt.tdvalign = me.options.tdvalign);
-        me.execCommand("inserthtml", createTable(opt, tdWidth));
-      }
-    };
-
-    UE.commands['insertparagraphbeforetable'] = {
-      queryCommandState: function() {
-        return getTableItemsByRange(this).cell ? 0 : -1;
-      },
-      execCommand: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          var p = this.document.createElement("p");
-          p.innerHTML = browser.ie ? '&nbsp;' : '<br />';
-          table.parentNode.insertBefore(p, table);
-          this.selection.getRange().setStart(p, 0).setCursor();
-        }
-      }
-    };
-
-    UE.commands['deletetable'] = {
-      queryCommandState: function() {
-        var rng = this.selection.getRange();
-        return domUtils.findParentByTagName(rng.startContainer, 'table', true) ? 0 : -1;
-      },
-      execCommand: function(cmd, table) {
-        var rng = this.selection.getRange();
-        table = table || domUtils.findParentByTagName(rng.startContainer, 'table', true);
-        if (table) {
-          var next = table.nextSibling;
-          if (!next) {
-            next = domUtils.createElement(this.document, 'p', {
-              'innerHTML': browser.ie ? domUtils.fillChar : '<br/>'
-            });
-            table.parentNode.insertBefore(next, table);
-          }
-          domUtils.remove(table);
-          rng = this.selection.getRange();
-          if (next.nodeType == 3) {
-            rng.setStartBefore(next)
-          } else {
-            rng.setStart(next, 0)
-          }
-          rng.setCursor(false, true)
-          this.fireEvent("tablehasdeleted")
-
-        }
-
-      }
-    };
-    UE.commands['cellalign'] = {
-      queryCommandState: function() {
-        return getSelectedArr(this).length ? 0 : -1
-      },
-      execCommand: function(cmd, align) {
-        var selectedTds = getSelectedArr(this);
-        if (selectedTds.length) {
-          for (var i = 0, ci; ci = selectedTds[i++];) {
-            ci.setAttribute('align', align);
-          }
-        }
-      }
-    };
-    UE.commands['cellvalign'] = {
-      queryCommandState: function() {
-        return getSelectedArr(this).length ? 0 : -1;
-      },
-      execCommand: function(cmd, valign) {
-        var selectedTds = getSelectedArr(this);
-        if (selectedTds.length) {
-          for (var i = 0, ci; ci = selectedTds[i++];) {
-            ci.setAttribute('vAlign', valign);
-          }
-        }
-      }
-    };
-    UE.commands['insertcaption'] = {
-      queryCommandState: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          return table.getElementsByTagName('caption').length == 0 ? 1 : -1;
-        }
-        return -1;
-      },
-      execCommand: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          var caption = this.document.createElement('caption');
-          caption.innerHTML = browser.ie ? domUtils.fillChar : '<br/>';
-          table.insertBefore(caption, table.firstChild);
-          var range = this.selection.getRange();
-          range.setStart(caption, 0).setCursor();
-        }
-
-      }
-    };
-    UE.commands['deletecaption'] = {
-      queryCommandState: function() {
-        var rng = this.selection.getRange(),
-          table = domUtils.findParentByTagName(rng.startContainer, 'table');
-        if (table) {
-          return table.getElementsByTagName('caption').length == 0 ? -1 : 1;
-        }
-        return -1;
-      },
-      execCommand: function() {
-        var rng = this.selection.getRange(),
-          table = domUtils.findParentByTagName(rng.startContainer, 'table');
-        if (table) {
-          domUtils.remove(table.getElementsByTagName('caption')[0]);
-          var range = this.selection.getRange();
-          range.setStart(table.rows[0].cells[0], 0).setCursor();
-        }
-
-      }
-    };
-    UE.commands['inserttitle'] = {
-      queryCommandState: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          var firstRow = table.rows[0];
-          return firstRow.cells[firstRow.cells.length - 1].tagName.toLowerCase() != 'th' ? 0 : -1
-        }
-        return -1;
-      },
-      execCommand: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          getUETable(table).insertRow(0, 'th');
-        }
-        var th = table.getElementsByTagName('th')[0];
-        this.selection.getRange().setStart(th, 0).setCursor(false, true);
-      }
-    };
-    UE.commands['deletetitle'] = {
-      queryCommandState: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          var firstRow = table.rows[0];
-          return firstRow.cells[firstRow.cells.length - 1].tagName.toLowerCase() == 'th' ? 0 : -1
-        }
-        return -1;
-      },
-      execCommand: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          domUtils.remove(table.rows[0])
-        }
-        var td = table.getElementsByTagName('td')[0];
-        this.selection.getRange().setStart(td, 0).setCursor(false, true);
-      }
-    };
-    UE.commands['inserttitlecol'] = {
-      queryCommandState: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          var lastRow = table.rows[table.rows.length - 1];
-          return lastRow.getElementsByTagName('th').length ? -1 : 0;
-        }
-        return -1;
-      },
-      execCommand: function(cmd) {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          getUETable(table).insertCol(0, 'th');
-        }
-        resetTdWidth(table, this);
-        var th = table.getElementsByTagName('th')[0];
-        this.selection.getRange().setStart(th, 0).setCursor(false, true);
-      }
-    };
-    UE.commands['deletetitlecol'] = {
-      queryCommandState: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          var lastRow = table.rows[table.rows.length - 1];
-          return lastRow.getElementsByTagName('th').length ? 0 : -1;
-        }
-        return -1;
-      },
-      execCommand: function() {
-        var table = getTableItemsByRange(this).table;
-        if (table) {
-          for (var i = 0; i < table.rows.length; i++) {
-            domUtils.remove(table.rows[i].children[0])
-          }
-        }
-        resetTdWidth(table, this);
-        var td = table.getElementsByTagName('td')[0];
-        this.selection.getRange().setStart(td, 0).setCursor(false, true);
-      }
-    };
-
-    UE.commands["mergeright"] = {
-      queryCommandState: function(cmd) {
-        var tableItems = getTableItemsByRange(this),
-          table = tableItems.table,
-          cell = tableItems.cell;
-
-        if (!table || !cell) return -1;
-        var ut = getUETable(table);
-        if (ut.selectedTds.length) return -1;
-
-        var cellInfo = ut.getCellInfo(cell),
-          rightColIndex = cellInfo.colIndex + cellInfo.colSpan;
-        if (rightColIndex >= ut.colsNum) return -1; // 濡傛灉澶勪簬鏈�鍙宠竟鍒欎笉鑳藉悜鍙冲悎骞�
-
-        var rightCellInfo = ut.indexTable[cellInfo.rowIndex][rightColIndex],
-          rightCell = table.rows[rightCellInfo.rowIndex].cells[rightCellInfo.cellIndex];
-        if (!rightCell || cell.tagName != rightCell.tagName) return -1; // TH鍜孴D涓嶈兘鐩镐簰鍚堝苟
-
-        // 褰撲笖浠呭綋涓や釜Cell鐨勫紑濮嬪垪鍙峰拰缁撴潫鍒楀彿涓�鑷存椂鑳借繘琛屽悎骞�
-        return (rightCellInfo.rowIndex == cellInfo.rowIndex && rightCellInfo.rowSpan == cellInfo.rowSpan) ? 0 :
-          -1;
-      },
-      execCommand: function(cmd) {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell);
-        ut.mergeRight(cell);
-        rng.moveToBookmark(bk).select();
-      }
-    };
-    UE.commands["mergedown"] = {
-      queryCommandState: function(cmd) {
-        var tableItems = getTableItemsByRange(this),
-          table = tableItems.table,
-          cell = tableItems.cell;
-
-        if (!table || !cell) return -1;
-        var ut = getUETable(table);
-        if (ut.selectedTds.length) return -1;
-
-        var cellInfo = ut.getCellInfo(cell),
-          downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan;
-        if (downRowIndex >= ut.rowsNum) return -1; // 濡傛灉澶勪簬鏈�涓嬭竟鍒欎笉鑳藉悜涓嬪悎骞�
-
-        var downCellInfo = ut.indexTable[downRowIndex][cellInfo.colIndex],
-          downCell = table.rows[downCellInfo.rowIndex].cells[downCellInfo.cellIndex];
-        if (!downCell || cell.tagName != downCell.tagName) return -1; // TH鍜孴D涓嶈兘鐩镐簰鍚堝苟
-
-        // 褰撲笖浠呭綋涓や釜Cell鐨勫紑濮嬪垪鍙峰拰缁撴潫鍒楀彿涓�鑷存椂鑳借繘琛屽悎骞�
-        return (downCellInfo.colIndex == cellInfo.colIndex && downCellInfo.colSpan == cellInfo.colSpan) ? 0 : -
-          1;
-      },
-      execCommand: function() {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell);
-        ut.mergeDown(cell);
-        rng.moveToBookmark(bk).select();
-      }
-    };
-    UE.commands["mergecells"] = {
-      queryCommandState: function() {
-        return getUETableBySelected(this) ? 0 : -1;
-      },
-      execCommand: function() {
-        var ut = getUETableBySelected(this);
-        if (ut && ut.selectedTds.length) {
-          var cell = ut.selectedTds[0];
-          ut.mergeRange();
-          var rng = this.selection.getRange();
-          if (domUtils.isEmptyBlock(cell)) {
-            rng.setStart(cell, 0).collapse(true)
-          } else {
-            rng.selectNodeContents(cell)
-          }
-          rng.select();
-        }
-
-
-      }
-    };
-    UE.commands["insertrow"] = {
-      queryCommandState: function() {
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell;
-        return cell && (cell.tagName == "TD" || (cell.tagName == 'TH' && tableItems.tr !== tableItems.table.rows[
-            0])) &&
-          getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1;
-      },
-      execCommand: function() {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell,
-          table = tableItems.table,
-          ut = getUETable(table),
-          cellInfo = ut.getCellInfo(cell);
-        //ut.insertRow(!ut.selectedTds.length ? cellInfo.rowIndex:ut.cellsRange.beginRowIndex,'');
-        if (!ut.selectedTds.length) {
-          ut.insertRow(cellInfo.rowIndex, cell);
-        } else {
-          var range = ut.cellsRange;
-          for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) {
-            ut.insertRow(range.beginRowIndex, cell);
-          }
-        }
-        rng.moveToBookmark(bk).select();
-        if (table.getAttribute("interlaced") === "enabled") this.fireEvent("interlacetable", table);
-      }
-    };
-    //鍚庢彃鍏ヨ
-    UE.commands["insertrownext"] = {
-      queryCommandState: function() {
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell;
-        return cell && (cell.tagName == "TD") && getUETable(tableItems.table).rowsNum < this.options.maxRowNum ?
-          0 : -1;
-      },
-      execCommand: function() {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell,
-          table = tableItems.table,
-          ut = getUETable(table),
-          cellInfo = ut.getCellInfo(cell);
-        //ut.insertRow(!ut.selectedTds.length? cellInfo.rowIndex + cellInfo.rowSpan : ut.cellsRange.endRowIndex + 1,'');
-        if (!ut.selectedTds.length) {
-          ut.insertRow(cellInfo.rowIndex + cellInfo.rowSpan, cell);
-        } else {
-          var range = ut.cellsRange;
-          for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) {
-            ut.insertRow(range.endRowIndex + 1, cell);
-          }
-        }
-        rng.moveToBookmark(bk).select();
-        if (table.getAttribute("interlaced") === "enabled") this.fireEvent("interlacetable", table);
-      }
-    };
-    UE.commands["deleterow"] = {
-      queryCommandState: function() {
-        var tableItems = getTableItemsByRange(this);
-        return tableItems.cell ? 0 : -1;
-      },
-      execCommand: function() {
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell),
-          cellsRange = ut.cellsRange,
-          cellInfo = ut.getCellInfo(cell),
-          preCell = ut.getVSideCell(cell),
-          nextCell = ut.getVSideCell(cell, true),
-          rng = this.selection.getRange();
-        if (utils.isEmptyObject(cellsRange)) {
-          ut.deleteRow(cellInfo.rowIndex);
-        } else {
-          for (var i = cellsRange.beginRowIndex; i < cellsRange.endRowIndex + 1; i++) {
-            ut.deleteRow(cellsRange.beginRowIndex);
-          }
-        }
-        var table = ut.table;
-        if (!table.getElementsByTagName('td').length) {
-          var nextSibling = table.nextSibling;
-          domUtils.remove(table);
-          if (nextSibling) {
-            rng.setStart(nextSibling, 0).setCursor(false, true);
-          }
-        } else {
-          if (cellInfo.rowSpan == 1 || cellInfo.rowSpan == cellsRange.endRowIndex - cellsRange.beginRowIndex +
-            1) {
-            if (nextCell || preCell) rng.selectNodeContents(nextCell || preCell).setCursor(false, true);
-          } else {
-            var newCell = ut.getCell(cellInfo.rowIndex, ut.indexTable[cellInfo.rowIndex][cellInfo.colIndex].cellIndex);
-            if (newCell) rng.selectNodeContents(newCell).setCursor(false, true);
-          }
-        }
-        if (table.getAttribute("interlaced") === "enabled") this.fireEvent("interlacetable", table);
-      }
-    };
-    UE.commands["insertcol"] = {
-      queryCommandState: function(cmd) {
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell;
-        return cell && (cell.tagName == "TD" || (cell.tagName == 'TH' && cell !== tableItems.tr.cells[0])) &&
-          getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1;
-      },
-      execCommand: function(cmd) {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        if (this.queryCommandState(cmd) == -1) return;
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell),
-          cellInfo = ut.getCellInfo(cell);
-
-        //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex:ut.cellsRange.beginColIndex);
-        if (!ut.selectedTds.length) {
-          ut.insertCol(cellInfo.colIndex, cell);
-        } else {
-          var range = ut.cellsRange;
-          for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) {
-            ut.insertCol(range.beginColIndex, cell);
-          }
-        }
-        rng.moveToBookmark(bk).select(true);
-      }
-    };
-    UE.commands["insertcolnext"] = {
-      queryCommandState: function() {
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell;
-        return cell && getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1;
-      },
-      execCommand: function() {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell),
-          cellInfo = ut.getCellInfo(cell);
-        //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex + cellInfo.colSpan:ut.cellsRange.endColIndex +1);
-        if (!ut.selectedTds.length) {
-          ut.insertCol(cellInfo.colIndex + cellInfo.colSpan, cell);
-        } else {
-          var range = ut.cellsRange;
-          for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) {
-            ut.insertCol(range.endColIndex + 1, cell);
-          }
-        }
-        rng.moveToBookmark(bk).select();
-      }
-    };
-
-    UE.commands["deletecol"] = {
-      queryCommandState: function() {
-        var tableItems = getTableItemsByRange(this);
-        return tableItems.cell ? 0 : -1;
-      },
-      execCommand: function() {
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell),
-          range = ut.cellsRange,
-          cellInfo = ut.getCellInfo(cell),
-          preCell = ut.getHSideCell(cell),
-          nextCell = ut.getHSideCell(cell, true);
-        if (utils.isEmptyObject(range)) {
-          ut.deleteCol(cellInfo.colIndex);
-        } else {
-          for (var i = range.beginColIndex; i < range.endColIndex + 1; i++) {
-            ut.deleteCol(range.beginColIndex);
-          }
-        }
-        var table = ut.table,
-          rng = this.selection.getRange();
-
-        if (!table.getElementsByTagName('td').length) {
-          var nextSibling = table.nextSibling;
-          domUtils.remove(table);
-          if (nextSibling) {
-            rng.setStart(nextSibling, 0).setCursor(false, true);
-          }
-        } else {
-          if (domUtils.inDoc(cell, this.document)) {
-            rng.setStart(cell, 0).setCursor(false, true);
-          } else {
-            if (nextCell && domUtils.inDoc(nextCell, this.document)) {
-              rng.selectNodeContents(nextCell).setCursor(false, true);
-            } else {
-              if (preCell && domUtils.inDoc(preCell, this.document)) {
-                rng.selectNodeContents(preCell).setCursor(true, true);
-              }
-            }
-          }
-        }
-      }
-    };
-    UE.commands["splittocells"] = {
-      queryCommandState: function() {
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell;
-        if (!cell) return -1;
-        var ut = getUETable(tableItems.table);
-        if (ut.selectedTds.length > 0) return -1;
-        return cell && (cell.colSpan > 1 || cell.rowSpan > 1) ? 0 : -1;
-      },
-      execCommand: function() {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell);
-        ut.splitToCells(cell);
-        rng.moveToBookmark(bk).select();
-      }
-    };
-    UE.commands["splittorows"] = {
-      queryCommandState: function() {
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell;
-        if (!cell) return -1;
-        var ut = getUETable(tableItems.table);
-        if (ut.selectedTds.length > 0) return -1;
-        return cell && cell.rowSpan > 1 ? 0 : -1;
-      },
-      execCommand: function() {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell);
-        ut.splitToRows(cell);
-        rng.moveToBookmark(bk).select();
-      }
-    };
-    UE.commands["splittocols"] = {
-      queryCommandState: function() {
-        var tableItems = getTableItemsByRange(this),
-          cell = tableItems.cell;
-        if (!cell) return -1;
-        var ut = getUETable(tableItems.table);
-        if (ut.selectedTds.length > 0) return -1;
-        return cell && cell.colSpan > 1 ? 0 : -1;
-      },
-      execCommand: function() {
-        var rng = this.selection.getRange(),
-          bk = rng.createBookmark(true);
-        var cell = getTableItemsByRange(this).cell,
-          ut = getUETable(cell);
-        ut.splitToCols(cell);
-        rng.moveToBookmark(bk).select();
-
-      }
-    };
-
-    UE.commands["adaptbytext"] =
-      UE.commands["adaptbywindow"] = {
-        queryCommandState: function() {
-          return getTableItemsByRange(this).table ? 0 : -1
-        },
-        execCommand: function(cmd) {
-          var tableItems = getTableItemsByRange(this),
-            table = tableItems.table;
-          if (table) {
-            if (cmd == 'adaptbywindow') {
-              resetTdWidth(table, this);
-            } else {
-              var cells = domUtils.getElementsByTagName(table, "td th");
-              utils.each(cells, function(cell) {
-                cell.removeAttribute("width");
-              });
-              table.removeAttribute("width");
-            }
-          }
-        }
-      };
-
-    //骞冲潎鍒嗛厤鍚勫垪
-    UE.commands['averagedistributecol'] = {
-      queryCommandState: function() {
-        var ut = getUETableBySelected(this);
-        if (!ut) return -1;
-        return ut.isFullRow() || ut.isFullCol() ? 0 : -1;
-      },
-      execCommand: function(cmd) {
-        var me = this,
-          ut = getUETableBySelected(me);
-
-        function getAverageWidth() {
-          var tb = ut.table,
-            averageWidth, sumWidth = 0,
-            colsNum = 0,
-            tbAttr = getDefaultValue(me, tb);
-
-          if (ut.isFullRow()) {
-            sumWidth = tb.offsetWidth;
-            colsNum = ut.colsNum;
-          } else {
-            var begin = ut.cellsRange.beginColIndex,
-              end = ut.cellsRange.endColIndex,
-              node;
-            for (var i = begin; i <= end;) {
-              node = ut.selectedTds[i];
-              sumWidth += node.offsetWidth;
-              i += node.colSpan;
-              colsNum += 1;
-            }
-          }
-          averageWidth = Math.ceil(sumWidth / colsNum) - tbAttr.tdBorder * 2 - tbAttr.tdPadding * 2;
-          return averageWidth;
-        }
-
-        function setAverageWidth(averageWidth) {
-          utils.each(domUtils.getElementsByTagName(ut.table, "th"), function(node) {
-            node.setAttribute("width", "");
-          });
-          var cells = ut.isFullRow() ? domUtils.getElementsByTagName(ut.table, "td") : ut.selectedTds;
-
-          utils.each(cells, function(node) {
-            if (node.colSpan == 1) {
-              node.setAttribute("width", averageWidth);
-            }
-          });
-        }
-
-        if (ut && ut.selectedTds.length) {
-          setAverageWidth(getAverageWidth());
-        }
-      }
-    };
-    //骞冲潎鍒嗛厤鍚勮
-    UE.commands['averagedistributerow'] = {
-      queryCommandState: function() {
-        var ut = getUETableBySelected(this);
-        if (!ut) return -1;
-        if (ut.selectedTds && /th/ig.test(ut.selectedTds[0].tagName)) return -1;
-        return ut.isFullRow() || ut.isFullCol() ? 0 : -1;
-      },
-      execCommand: function(cmd) {
-        var me = this,
-          ut = getUETableBySelected(me);
-
-        function getAverageHeight() {
-          var averageHeight, rowNum, sumHeight = 0,
-            tb = ut.table,
-            tbAttr = getDefaultValue(me, tb),
-            tdpadding = parseInt(domUtils.getComputedStyle(tb.getElementsByTagName('td')[0], "padding-top"));
-
-          if (ut.isFullCol()) {
-            var captionArr = domUtils.getElementsByTagName(tb, "caption"),
-              thArr = domUtils.getElementsByTagName(tb, "th"),
-              captionHeight, thHeight;
-
-            if (captionArr.length > 0) {
-              captionHeight = captionArr[0].offsetHeight;
-            }
-            if (thArr.length > 0) {
-              thHeight = thArr[0].offsetHeight;
-            }
-
-            sumHeight = tb.offsetHeight - (captionHeight || 0) - (thHeight || 0);
-            rowNum = thArr.length == 0 ? ut.rowsNum : (ut.rowsNum - 1);
-          } else {
-            var begin = ut.cellsRange.beginRowIndex,
-              end = ut.cellsRange.endRowIndex,
-              count = 0,
-              trs = domUtils.getElementsByTagName(tb, "tr");
-            for (var i = begin; i <= end; i++) {
-              sumHeight += trs[i].offsetHeight;
-              count += 1;
-            }
-            rowNum = count;
-          }
-          //ie8涓嬫槸娣锋潅妯″紡
-          if (browser.ie && browser.version < 9) {
-            averageHeight = Math.ceil(sumHeight / rowNum);
-          } else {
-            averageHeight = Math.ceil(sumHeight / rowNum) - tbAttr.tdBorder * 2 - tdpadding * 2;
-          }
-          return averageHeight;
-        }
-
-        function setAverageHeight(averageHeight) {
-          var cells = ut.isFullCol() ? domUtils.getElementsByTagName(ut.table, "td") : ut.selectedTds;
-          utils.each(cells, function(node) {
-            if (node.rowSpan == 1) {
-              node.setAttribute("height", averageHeight);
-            }
-          });
-        }
-
-        if (ut && ut.selectedTds.length) {
-          setAverageHeight(getAverageHeight());
-        }
-      }
-    };
-
-    //鍗曞厓鏍煎榻愭柟寮�
-    UE.commands['cellalignment'] = {
-      queryCommandState: function() {
-        return getTableItemsByRange(this).table ? 0 : -1
-      },
-      execCommand: function(cmd, data) {
-        var me = this,
-          ut = getUETableBySelected(me);
-
-        if (!ut) {
-          var start = me.selection.getStart(),
-            cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true);
-          if (!/caption/ig.test(cell.tagName)) {
-            domUtils.setAttributes(cell, data);
-          } else {
-            cell.style.textAlign = data.align;
-            cell.style.verticalAlign = data.vAlign;
-          }
-          me.selection.getRange().setCursor(true);
-        } else {
-          utils.each(ut.selectedTds, function(cell) {
-            domUtils.setAttributes(cell, data);
-          });
-        }
-      },
-      /**
-       * 鏌ヨ褰撳墠鐐瑰嚮鐨勫崟鍏冩牸鐨勫榻愮姸鎬侊紝 濡傛灉褰撳墠宸茬粡閫夋嫨浜嗗涓崟鍏冩牸锛� 鍒欎細杩斿洖鎵�鏈夊崟鍏冩牸缁忚繃缁熶竴鍗忚皟杩囧悗鐨勭姸鎬�
-       * @see UE.UETable.getTableCellAlignState
-       */
-      queryCommandValue: function(cmd) {
-
-        var activeMenuCell = getTableItemsByRange(this).cell;
-
-        if (!activeMenuCell) {
-          activeMenuCell = getSelectedArr(this)[0];
-        }
-
-        if (!activeMenuCell) {
-
-          return null;
-
-        } else {
-
-          //鑾峰彇鍚屾椂閫変腑鐨勫叾浠栧崟鍏冩牸
-          var cells = UE.UETable.getUETable(activeMenuCell).selectedTds;
-
-          !cells.length && (cells = activeMenuCell);
-
-          return UE.UETable.getTableCellAlignState(cells);
-
-        }
-
-      }
-    };
-    //琛ㄦ牸瀵归綈鏂瑰紡
-    UE.commands['tablealignment'] = {
-      queryCommandState: function() {
-        if (browser.ie && browser.version < 8) {
-          return -1;
-        }
-        return getTableItemsByRange(this).table ? 0 : -1
-      },
-      execCommand: function(cmd, value) {
-        var me = this,
-          start = me.selection.getStart(),
-          table = start && domUtils.findParentByTagName(start, ["table"], true);
-
-        if (table) {
-          table.setAttribute("align", value);
-        }
-      }
-    };
-
-    //琛ㄦ牸灞炴��
-    UE.commands['edittable'] = {
-      queryCommandState: function() {
-        return getTableItemsByRange(this).table ? 0 : -1
-      },
-      execCommand: function(cmd, color) {
-        var rng = this.selection.getRange(),
-          table = domUtils.findParentByTagName(rng.startContainer, 'table');
-        if (table) {
-          var arr = domUtils.getElementsByTagName(table, "td").concat(
-            domUtils.getElementsByTagName(table, "th"),
-            domUtils.getElementsByTagName(table, "caption")
-          );
-          utils.each(arr, function(node) {
-            node.style.borderColor = color;
-          });
-        }
-      }
-    };
-    //鍗曞厓鏍煎睘鎬�
-    UE.commands['edittd'] = {
-      queryCommandState: function() {
-        return getTableItemsByRange(this).table ? 0 : -1
-      },
-      execCommand: function(cmd, bkColor) {
-        var me = this,
-          ut = getUETableBySelected(me);
-
-        if (!ut) {
-          var start = me.selection.getStart(),
-            cell = start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true);
-          if (cell) {
-            cell.style.backgroundColor = bkColor;
-          }
-        } else {
-          utils.each(ut.selectedTds, function(cell) {
-            cell.style.backgroundColor = bkColor;
-          });
-        }
-      }
-    };
-
-    UE.commands["settablebackground"] = {
-      queryCommandState: function() {
-        return getSelectedArr(this).length > 1 ? 0 : -1;
-      },
-      execCommand: function(cmd, value) {
-        var cells, ut;
-        cells = getSelectedArr(this);
-        ut = getUETable(cells[0]);
-        ut.setBackground(cells, value);
-      }
-    };
-
-    UE.commands["cleartablebackground"] = {
-      queryCommandState: function() {
-        var cells = getSelectedArr(this);
-        if (!cells.length) return -1;
-        for (var i = 0, cell; cell = cells[i++];) {
-          if (cell.style.backgroundColor !== "") return 0;
-        }
-        return -1;
-      },
-      execCommand: function() {
-        var cells = getSelectedArr(this),
-          ut = getUETable(cells[0]);
-        ut.removeBackground(cells);
-      }
-    };
-
-    UE.commands["interlacetable"] = UE.commands["uninterlacetable"] = {
-      queryCommandState: function(cmd) {
-        var table = getTableItemsByRange(this).table;
-        if (!table) return -1;
-        var interlaced = table.getAttribute("interlaced");
-        if (cmd == "interlacetable") {
-          //TODO 寰呭畾
-          //鏄惁闇�瑕佸緟瀹氾紝濡傛灉璁剧疆锛屽垯鍛戒护鍙兘鍗曟鎵ц鎴愬姛锛屼絾鍙嶅皠鍏峰toggle鏁堟灉锛涘惁鍒欏彲浠ヨ鐩栧墠娆″懡浠わ紝浣嗗弽灏勫皢涓嶅瓨鍦╰oggle鏁堟灉
-          return (interlaced === "enabled") ? -1 : 0;
-        } else {
-          return (!interlaced || interlaced === "disabled") ? -1 : 0;
-        }
-      },
-      execCommand: function(cmd, classList) {
-        var table = getTableItemsByRange(this).table;
-        if (cmd == "interlacetable") {
-          table.setAttribute("interlaced", "enabled");
-          this.fireEvent("interlacetable", table, classList);
-        } else {
-          table.setAttribute("interlaced", "disabled");
-          this.fireEvent("uninterlacetable", table);
-        }
-      }
-    };
-    UE.commands["setbordervisible"] = {
-      queryCommandState: function(cmd) {
-        var table = getTableItemsByRange(this).table;
-        if (!table) return -1;
-        return 0;
-      },
-      execCommand: function() {
-        var table = getTableItemsByRange(this).table;
-        utils.each(domUtils.getElementsByTagName(table, 'td'), function(td) {
-          td.style.borderWidth = '1px';
-          td.style.borderStyle = 'solid';
-        })
-      }
-    };
-
-    function resetTdWidth(table, editor) {
-      var tds = domUtils.getElementsByTagName(table, 'td th');
-      utils.each(tds, function(td) {
-        td.removeAttribute("width");
-      });
-      table.setAttribute('width', getTableWidth(editor, true, getDefaultValue(editor, table)));
-      var tdsWidths = [];
-      setTimeout(function() {
-        utils.each(tds, function(td) {
-          (td.colSpan == 1) && tdsWidths.push(td.offsetWidth)
-        })
-        utils.each(tds, function(td, i) {
-          (td.colSpan == 1) && td.setAttribute("width", tdsWidths[i] + "");
-        })
-      }, 0);
-    }
-
-    function getTableWidth(editor, needIEHack, defaultValue) {
-      var body = editor.body;
-      return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) -
-        defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0);
-    }
-
-    function getSelectedArr(editor) {
-      var cell = getTableItemsByRange(editor).cell;
-      if (cell) {
-        var ut = getUETable(cell);
-        return ut.selectedTds.length ? ut.selectedTds : [cell];
-      } else {
-        return [];
-      }
-    }
-  })();
-
-
-  // plugins/table.action.js
-  /**
-   * Created with JetBrains PhpStorm.
-   * User: taoqili
-   * Date: 12-10-12
-   * Time: 涓婂崍10:05
-   * To change this template use File | Settings | File Templates.
-   */
-  UE.plugins['table'] = function() {
-    var me = this,
-      tabTimer = null,
-      //鎷栧姩璁℃椂鍣�
-      tableDragTimer = null,
-      //鍙屽嚮璁℃椂鍣�
-      tableResizeTimer = null,
-      //鍗曞厓鏍兼渶灏忓搴�
-      cellMinWidth = 5,
-      isInResizeBuffer = false,
-      //鍗曞厓鏍艰竟妗嗗ぇ灏�
-      cellBorderWidth = 5,
-      //榧犳爣鍋忕Щ璺濈
-      offsetOfTableCell = 10,
-      //璁板綍鍦ㄦ湁闄愭椂闂村唴鐨勭偣鍑荤姸鎬侊紝 鍏辨湁3涓彇鍊硷紝 0, 1, 2銆� 0浠h〃鏈垵濮嬪寲锛� 1浠h〃鍗曞嚮浜�1娆★紝2浠h〃2娆�
-      singleClickState = 0,
-      userActionStatus = null,
-      //鍙屽嚮鍏佽鐨勬椂闂磋寖鍥�
-      dblclickTime = 360,
-      UT = UE.UETable,
-      getUETable = function(tdOrTable) {
-        return UT.getUETable(tdOrTable);
-      },
-      getUETableBySelected = function(editor) {
-        return UT.getUETableBySelected(editor);
-      },
-      getDefaultValue = function(editor, table) {
-        return UT.getDefaultValue(editor, table);
-      },
-      removeSelectedClass = function(cells) {
-        return UT.removeSelectedClass(cells);
-      };
-
-    function showError(e) {
-      //        throw e;
-    }
-    me.ready(function() {
-      var me = this;
-      var orgGetText = me.selection.getText;
-      me.selection.getText = function() {
-        var table = getUETableBySelected(me);
-        if (table) {
-          var str = '';
-          utils.each(table.selectedTds, function(td) {
-            str += td[browser.ie ? 'innerText' : 'textContent'];
-          })
-          return str;
-        } else {
-          return orgGetText.call(me.selection)
-        }
-
-      }
-    })
-
-    //澶勭悊鎷栧姩鍙婃閫夌浉鍏虫柟娉�
-    var startTd = null, //榧犳爣鎸変笅鏃剁殑閿氱偣td
-      currentTd = null, //褰撳墠榧犳爣缁忚繃鏃剁殑td
-      onDrag = "", //鎸囩ず褰撳墠鎷栧姩鐘舵�侊紝鍏跺�煎彲涓�"","h","v" ,鍒嗗埆琛ㄧず鏈嫋鍔ㄧ姸鎬侊紝妯悜鎷栧姩鐘舵�侊紝绾靛悜鎷栧姩鐘舵�侊紝鐢ㄤ簬榧犳爣绉诲姩杩囩▼涓殑鍒ゆ柇
-      onBorder = false, //妫�娴嬮紶鏍囨寜涓嬫椂鏄惁澶勫湪鍗曞厓鏍艰竟缂樹綅缃�
-      dragButton = null,
-      dragOver = false,
-      dragLine = null, //妯℃嫙鐨勬嫋鍔ㄧ嚎
-      dragTd = null; //鍙戠敓鎷栧姩鐨勭洰鏍噒d
-
-    var mousedown = false,
-      //todo 鍒ゆ柇娣蜂贡妯″紡
-      needIEHack = true;
-
-    me.setOpt({
-      'maxColNum': 20,
-      'maxRowNum': 100,
-      'defaultCols': 5,
-      'defaultRows': 5,
-      'tdvalign': 'top',
-      'cursorpath': me.options.UEDITOR_HOME_URL + "themes/default/images/cursor_",
-      'tableDragable': false,
-      'classList': ["ue-table-interlace-color-single", "ue-table-interlace-color-double"]
-    });
-    me.getUETable = getUETable;
-    var commands = {
-      'deletetable': 1,
-      'inserttable': 1,
-      'cellvalign': 1,
-      'insertcaption': 1,
-      'deletecaption': 1,
-      'inserttitle': 1,
-      'deletetitle': 1,
-      "mergeright": 1,
-      "mergedown": 1,
-      "mergecells": 1,
-      "insertrow": 1,
-      "insertrownext": 1,
-      "deleterow": 1,
-      "insertcol": 1,
-      "insertcolnext": 1,
-      "deletecol": 1,
-      "splittocells": 1,
-      "splittorows": 1,
-      "splittocols": 1,
-      "adaptbytext": 1,
-      "adaptbywindow": 1,
-      "adaptbycustomer": 1,
-      "insertparagraph": 1,
-      "insertparagraphbeforetable": 1,
-      "averagedistributecol": 1,
-      "averagedistributerow": 1
-    };
-    me.ready(function() {
-      utils.cssRule('table',
-        //閫変腑鐨則d涓婄殑鏍峰紡
-        '.selectTdClass{background-color:#edf5fa !important}' +
-        'table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}' +
-        //鎻掑叆鐨勮〃鏍肩殑榛樿鏍峰紡
-        'table{margin-bottom:10px;border-collapse:collapse;display:table;}' +
-        'td,th{padding: 5px 10px;border: 1px solid #DDD;}' +
-        'caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +
-        'th{border-top:1px solid #BBB;background-color:#F7F7F7;}' +
-        'table tr.firstRow th{border-top-width:2px;}' +
-        '.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }' +
-        'td p{margin:0;padding:0;}', me.document);
-
-      var tableCopyList, isFullCol, isFullRow;
-      //娉ㄥ唽del/backspace浜嬩欢
-      me.addListener('keydown', function(cmd, evt) {
-        var me = this;
-        var keyCode = evt.keyCode || evt.which;
-
-        if (keyCode == 8) {
-
-          var ut = getUETableBySelected(me);
-          if (ut && ut.selectedTds.length) {
-
-            if (ut.isFullCol()) {
-              me.execCommand('deletecol')
-            } else if (ut.isFullRow()) {
-              me.execCommand('deleterow')
-            } else {
-              me.fireEvent('delcells');
-            }
-            domUtils.preventDefault(evt);
-          }
-
-          var caption = domUtils.findParentByTagName(me.selection.getStart(), 'caption', true),
-            range = me.selection.getRange();
-          if (range.collapsed && caption && isEmptyBlock(caption)) {
-            me.fireEvent('saveScene');
-            var table = caption.parentNode;
-            domUtils.remove(caption);
-            if (table) {
-              range.setStart(table.rows[0].cells[0], 0).setCursor(false, true);
-            }
-            me.fireEvent('saveScene');
-          }
-
-        }
-
-        if (keyCode == 46) {
-
-          ut = getUETableBySelected(me);
-          if (ut) {
-            me.fireEvent('saveScene');
-            for (var i = 0, ci; ci = ut.selectedTds[i++];) {
-              domUtils.fillNode(me.document, ci)
-            }
-            me.fireEvent('saveScene');
-            domUtils.preventDefault(evt);
-
-          }
-
-        }
-        if (keyCode == 13) {
-
-          var rng = me.selection.getRange(),
-            caption = domUtils.findParentByTagName(rng.startContainer, 'caption', true);
-          if (caption) {
-            var table = domUtils.findParentByTagName(caption, 'table');
-            if (!rng.collapsed) {
-
-              rng.deleteContents();
-              me.fireEvent('saveScene');
-            } else {
-              if (caption) {
-                rng.setStart(table.rows[0].cells[0], 0).setCursor(false, true);
-              }
-            }
-            domUtils.preventDefault(evt);
-            return;
-          }
-          if (rng.collapsed) {
-            var table = domUtils.findParentByTagName(rng.startContainer, 'table');
-            if (table) {
-              var cell = table.rows[0].cells[0],
-                start = domUtils.findParentByTagName(me.selection.getStart(), ['td', 'th'], true),
-                preNode = table.previousSibling;
-              if (cell === start && (!preNode || preNode.nodeType == 1 && preNode.tagName == 'TABLE') &&
-                domUtils.isStartInblock(rng)) {
-                var first = domUtils.findParent(me.selection.getStart(), function(n) {
-                  return domUtils.isBlockElm(n)
-                }, true);
-                if (first && (/t(h|d)/i.test(first.tagName) || first === start.firstChild)) {
-                  me.execCommand('insertparagraphbeforetable');
-                  domUtils.preventDefault(evt);
-                }
-
-              }
-            }
-          }
-        }
-
-        if ((evt.ctrlKey || evt.metaKey) && evt.keyCode == '67') {
-          tableCopyList = null;
-          var ut = getUETableBySelected(me);
-          if (ut) {
-            var tds = ut.selectedTds;
-            isFullCol = ut.isFullCol();
-            isFullRow = ut.isFullRow();
-            tableCopyList = [
-              [ut.cloneCell(tds[0], null, true)]
-            ];
-            for (var i = 1, ci; ci = tds[i]; i++) {
-              if (ci.parentNode !== tds[i - 1].parentNode) {
-                tableCopyList.push([ut.cloneCell(ci, null, true)]);
-              } else {
-                tableCopyList[tableCopyList.length - 1].push(ut.cloneCell(ci, null, true));
-              }
-
-            }
-          }
-        }
-      });
-      me.addListener("tablehasdeleted", function() {
-        toggleDraggableState(this, false, "", null);
-        if (dragButton) domUtils.remove(dragButton);
-      });
-
-      me.addListener('beforepaste', function(cmd, html) {
-        var me = this;
-        var rng = me.selection.getRange();
-        if (domUtils.findParentByTagName(rng.startContainer, 'caption', true)) {
-          var div = me.document.createElement("div");
-          div.innerHTML = html.html;
-          //trace:3729
-          html.html = div[browser.ie9below ? 'innerText' : 'textContent'];
-          return;
-        }
-        var table = getUETableBySelected(me);
-        if (tableCopyList) {
-          me.fireEvent('saveScene');
-          var rng = me.selection.getRange();
-          var td = domUtils.findParentByTagName(rng.startContainer, ['td', 'th'], true),
-            tmpNode, preNode;
-          if (td) {
-            var ut = getUETable(td);
-            if (isFullRow) {
-              var rowIndex = ut.getCellInfo(td).rowIndex;
-              if (td.tagName == 'TH') {
-                rowIndex++;
-              }
-              for (var i = 0, ci; ci = tableCopyList[i++];) {
-                var tr = ut.insertRow(rowIndex++, "td");
-                for (var j = 0, cj; cj = ci[j]; j++) {
-                  var cell = tr.cells[j];
-                  if (!cell) {
-                    cell = tr.insertCell(j)
-                  }
-                  cell.innerHTML = cj.innerHTML;
-                  cj.getAttribute('width') && cell.setAttribute('width', cj.getAttribute('width'));
-                  cj.getAttribute('vAlign') && cell.setAttribute('vAlign', cj.getAttribute('vAlign'));
-                  cj.getAttribute('align') && cell.setAttribute('align', cj.getAttribute('align'));
-                  cj.style.cssText && (cell.style.cssText = cj.style.cssText)
-                }
-                for (var j = 0, cj; cj = tr.cells[j]; j++) {
-                  if (!ci[j])
-                    break;
-                  cj.innerHTML = ci[j].innerHTML;
-                  ci[j].getAttribute('width') && cj.setAttribute('width', ci[j].getAttribute('width'));
-                  ci[j].getAttribute('vAlign') && cj.setAttribute('vAlign', ci[j].getAttribute('vAlign'));
-                  ci[j].getAttribute('align') && cj.setAttribute('align', ci[j].getAttribute('align'));
-                  ci[j].style.cssText && (cj.style.cssText = ci[j].style.cssText)
-                }
-              }
-            } else {
-              if (isFullCol) {
-                cellInfo = ut.getCellInfo(td);
-                var maxColNum = 0;
-                for (var j = 0, ci = tableCopyList[0], cj; cj = ci[j++];) {
-                  maxColNum += cj.colSpan || 1;
-                }
-                me.__hasEnterExecCommand = true;
-                for (i = 0; i < maxColNum; i++) {
-                  me.execCommand('insertcol');
-                }
-                me.__hasEnterExecCommand = false;
-                td = ut.table.rows[0].cells[cellInfo.cellIndex];
-                if (td.tagName == 'TH') {
-                  td = ut.table.rows[1].cells[cellInfo.cellIndex];
-                }
-              }
-              for (var i = 0, ci; ci = tableCopyList[i++];) {
-                tmpNode = td;
-                for (var j = 0, cj; cj = ci[j++];) {
-                  if (td) {
-                    td.innerHTML = cj.innerHTML;
-                    //todo 瀹氬埗澶勭悊
-                    cj.getAttribute('width') && td.setAttribute('width', cj.getAttribute('width'));
-                    cj.getAttribute('vAlign') && td.setAttribute('vAlign', cj.getAttribute('vAlign'));
-                    cj.getAttribute('align') && td.setAttribute('align', cj.getAttribute('align'));
-                    cj.style.cssText && (td.style.cssText = cj.style.cssText);
-                    preNode = td;
-                    td = td.nextSibling;
-                  } else {
-                    var cloneTd = cj.cloneNode(true);
-                    domUtils.removeAttributes(cloneTd, ['class', 'rowSpan', 'colSpan']);
-
-                    preNode.parentNode.appendChild(cloneTd)
-                  }
-                }
-                td = ut.getNextCell(tmpNode, true, true);
-                if (!tableCopyList[i])
-                  break;
-                if (!td) {
-                  var cellInfo = ut.getCellInfo(tmpNode);
-                  ut.table.insertRow(ut.table.rows.length);
-                  ut.update();
-                  td = ut.getVSideCell(tmpNode, true);
-                }
-              }
-            }
-            ut.update();
-          } else {
-            table = me.document.createElement('table');
-            for (var i = 0, ci; ci = tableCopyList[i++];) {
-              var tr = table.insertRow(table.rows.length);
-              for (var j = 0, cj; cj = ci[j++];) {
-                cloneTd = UT.cloneCell(cj, null, true);
-                domUtils.removeAttributes(cloneTd, ['class']);
-                tr.appendChild(cloneTd)
-              }
-              if (j == 2 && cloneTd.rowSpan > 1) {
-                cloneTd.rowSpan = 1;
-              }
-            }
-
-            var defaultValue = getDefaultValue(me),
-              width = me.body.offsetWidth -
-              (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) -
-              defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0);
-            me.execCommand('insertHTML', '<table  ' +
-              (isFullCol && isFullRow ? 'width="' + width + '"' : '') +
-              '>' + table.innerHTML.replace(/>\s*</g, '><').replace(/\bth\b/gi, "td") + '</table>')
-          }
-          me.fireEvent('contentchange');
-          me.fireEvent('saveScene');
-          html.html = '';
-          return true;
-        } else {
-          var div = me.document.createElement("div"),
-            tables;
-          div.innerHTML = html.html;
-          tables = div.getElementsByTagName("table");
-          if (domUtils.findParentByTagName(me.selection.getStart(), 'table')) {
-            utils.each(tables, function(t) {
-              domUtils.remove(t)
-            });
-            if (domUtils.findParentByTagName(me.selection.getStart(), 'caption', true)) {
-              div.innerHTML = div[browser.ie ? 'innerText' : 'textContent'];
-            }
-          } else {
-            utils.each(tables, function(table) {
-              removeStyleSize(table, true);
-              domUtils.removeAttributes(table, ['style', 'border']);
-              utils.each(domUtils.getElementsByTagName(table, "td"), function(td) {
-                if (isEmptyBlock(td)) {
-                  domUtils.fillNode(me.document, td);
-                }
-                removeStyleSize(td, true);
-                //                            domUtils.removeAttributes(td, ['style'])
-              });
-            });
-          }
-          html.html = div.innerHTML;
-        }
-      });
-
-      me.addListener('afterpaste', function() {
-        utils.each(domUtils.getElementsByTagName(me.body, "table"), function(table) {
-          if (table.offsetWidth > me.body.offsetWidth) {
-            var defaultValue = getDefaultValue(me, table);
-            table.style.width = me.body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(
-              me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth ||
-              0) + 'px'
-          }
-        })
-      });
-      me.addListener('blur', function() {
-        tableCopyList = null;
-      });
-      var timer;
-      me.addListener('keydown', function() {
-        clearTimeout(timer);
-        timer = setTimeout(function() {
-          var rng = me.selection.getRange(),
-            cell = domUtils.findParentByTagName(rng.startContainer, ['th', 'td'], true);
-          if (cell) {
-            var table = cell.parentNode.parentNode.parentNode;
-            if (table.offsetWidth > table.getAttribute("width")) {
-              cell.style.wordBreak = "break-all";
-            }
-          }
-
-        }, 100);
-      });
-      me.addListener("selectionchange", function() {
-        toggleDraggableState(me, false, "", null);
-      });
-
-
-      //鍐呭鍙樺寲鏃惰Е鍙戠储寮曟洿鏂�
-      //todo 鍙惁鑰冭檻鏍囪妫�娴嬶紝濡傛灉涓嶆秹鍙婏拷锟斤拷鏍肩殑鍙樺寲灏变笉杩涜绱㈠紩閲嶅缓鍜屾洿鏂�
-      me.addListener("contentchange", function() {
-        var me = this;
-        //灏藉彲鑳芥帓闄や竴浜涗笉闇�瑕佹洿鏂扮殑鐘跺喌
-        hideDragLine(me);
-        if (getUETableBySelected(me)) return;
-        var rng = me.selection.getRange();
-        var start = rng.startContainer;
-        start = domUtils.findParentByTagName(start, ['td', 'th'], true);
-        utils.each(domUtils.getElementsByTagName(me.document, 'table'), function(table) {
-          if (me.fireEvent("excludetable", table) === true) return;
-          table.ueTable = new UT(table);
-          //trace:3742
-          //                utils.each(domUtils.getElementsByTagName(me.document, 'td'), function (td) {
-          //
-          //                    if (domUtils.isEmptyBlock(td) && td !== start) {
-          //                        domUtils.fillNode(me.document, td);
-          //                        if (browser.ie && browser.version == 6) {
-          //                            td.innerHTML = '&nbsp;'
-          //                        }
-          //                    }
-          //                });
-          //                utils.each(domUtils.getElementsByTagName(me.document, 'th'), function (th) {
-          //                    if (domUtils.isEmptyBlock(th) && th !== start) {
-          //                        domUtils.fillNode(me.document, th);
-          //                        if (browser.ie && browser.version == 6) {
-          //                            th.innerHTML = '&nbsp;'
-          //                        }
-          //                    }
-          //                });
-          table.onmouseover = function() {
-            me.fireEvent('tablemouseover', table);
-          };
-          table.onmousemove = function() {
-            me.fireEvent('tablemousemove', table);
-            me.options.tableDragable && toggleDragButton(true, this, me);
-            utils.defer(function() {
-              me.fireEvent('contentchange', 50)
-            }, true)
-          };
-          table.onmouseout = function() {
-            me.fireEvent('tablemouseout', table);
-            toggleDraggableState(me, false, "", null);
-            hideDragLine(me);
-          };
-          table.onclick = function(evt) {
-            evt = me.window.event || evt;
-            var target = getParentTdOrTh(evt.target || evt.srcElement);
-            if (!target) return;
-            var ut = getUETable(target),
-              table = ut.table,
-              cellInfo = ut.getCellInfo(target),
-              cellsRange,
-              rng = me.selection.getRange();
-            //                    if ("topLeft" == inPosition(table, mouseCoords(evt))) {
-            //                        cellsRange = ut.getCellsRange(ut.table.rows[0].cells[0], ut.getLastCell());
-            //                        ut.setSelected(cellsRange);
-            //                        return;
-            //                    }
-            //                    if ("bottomRight" == inPosition(table, mouseCoords(evt))) {
-            //
-            //                        return;
-            //                    }
-            if (inTableSide(table, target, evt, true)) {
-              var endTdCol = ut.getCell(ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].rowIndex, ut
-                .indexTable[ut.rowsNum - 1][cellInfo.colIndex].cellIndex);
-              if (evt.shiftKey && ut.selectedTds.length) {
-                if (ut.selectedTds[0] !== endTdCol) {
-                  cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdCol);
-                  ut.setSelected(cellsRange);
-                } else {
-                  rng && rng.selectNodeContents(endTdCol).select();
-                }
-              } else {
-                if (target !== endTdCol) {
-                  cellsRange = ut.getCellsRange(target, endTdCol);
-                  ut.setSelected(cellsRange);
-                } else {
-                  rng && rng.selectNodeContents(endTdCol).select();
-                }
-              }
-              return;
-            }
-            if (inTableSide(table, target, evt)) {
-              var endTdRow = ut.getCell(ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].rowIndex, ut
-                .indexTable[cellInfo.rowIndex][ut.colsNum - 1].cellIndex);
-              if (evt.shiftKey && ut.selectedTds.length) {
-                if (ut.selectedTds[0] !== endTdRow) {
-                  cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdRow);
-                  ut.setSelected(cellsRange);
-                } else {
-                  rng && rng.selectNodeContents(endTdRow).select();
-                }
-              } else {
-                if (target !== endTdRow) {
-                  cellsRange = ut.getCellsRange(target, endTdRow);
-                  ut.setSelected(cellsRange);
-                } else {
-                  rng && rng.selectNodeContents(endTdRow).select();
-                }
-              }
-            }
-          };
-        });
-
-        switchBorderColor(me, true);
-      });
-
-      domUtils.on(me.document, "mousemove", mouseMoveEvent);
-
-      domUtils.on(me.document, "mouseout", function(evt) {
-        var target = evt.target || evt.srcElement;
-        if (target.tagName == "TABLE") {
-          toggleDraggableState(me, false, "", null);
-        }
-      });
-      /**
-       * 琛ㄦ牸闅旇鍙樿壊
-       */
-      me.addListener("interlacetable", function(type, table, classList) {
-        if (!table) return;
-        var me = this,
-          rows = table.rows,
-          len = rows.length,
-          getClass = function(list, index, repeat) {
-            return list[index] ? list[index] : repeat ? list[index % list.length] : "";
-          };
-        for (var i = 0; i < len; i++) {
-          rows[i].className = getClass(classList || me.options.classList, i, true);
-        }
-      });
-      me.addListener("uninterlacetable", function(type, table) {
-        if (!table) return;
-        var me = this,
-          rows = table.rows,
-          classList = me.options.classList,
-          len = rows.length;
-        for (var i = 0; i < len; i++) {
-          domUtils.removeClasses(rows[i], classList);
-        }
-      });
-
-      me.addListener("mousedown", mouseDownEvent);
-      me.addListener("mouseup", mouseUpEvent);
-      //鎷栧姩鐨勬椂鍊欒Е鍙憁ouseup
-      domUtils.on(me.body, 'dragstart', function(evt) {
-        mouseUpEvent.call(me, 'dragstart', evt);
-      });
-      me.addOutputRule(function(root) {
-        utils.each(root.getNodesByTagName('div'), function(n) {
-          if (n.getAttr('id') == 'ue_tableDragLine') {
-            n.parentNode.removeChild(n);
-          }
-        });
-      });
-
-      var currentRowIndex = 0;
-      me.addListener("mousedown", function() {
-        currentRowIndex = 0;
-      });
-      me.addListener('tabkeydown', function() {
-        var range = this.selection.getRange(),
-          common = range.getCommonAncestor(true, true),
-          table = domUtils.findParentByTagName(common, 'table');
-        if (table) {
-          if (domUtils.findParentByTagName(common, 'caption', true)) {
-            var cell = domUtils.getElementsByTagName(table, 'th td');
-            if (cell && cell.length) {
-              range.setStart(cell[0], 0).setCursor(false, true)
-            }
-          } else {
-            var cell = domUtils.findParentByTagName(common, ['td', 'th'], true),
-              ua = getUETable(cell);
-            currentRowIndex = cell.rowSpan > 1 ? currentRowIndex : ua.getCellInfo(cell).rowIndex;
-            var nextCell = ua.getTabNextCell(cell, currentRowIndex);
-            if (nextCell) {
-              if (isEmptyBlock(nextCell)) {
-                range.setStart(nextCell, 0).setCursor(false, true)
-              } else {
-                range.selectNodeContents(nextCell).select()
-              }
-            } else {
-              me.fireEvent('saveScene');
-              me.__hasEnterExecCommand = true;
-              this.execCommand('insertrownext');
-              me.__hasEnterExecCommand = false;
-              range = this.selection.getRange();
-              range.setStart(table.rows[table.rows.length - 1].cells[0], 0).setCursor();
-              me.fireEvent('saveScene');
-            }
-          }
-          return true;
-        }
-
-      });
-      browser.ie && me.addListener('selectionchange', function() {
-        toggleDraggableState(this, false, "", null);
-      });
-      me.addListener("keydown", function(type, evt) {
-        var me = this;
-        //澶勭悊鍦ㄨ〃鏍肩殑鏈�鍚庝竴涓緭鍏ab浜х敓鏂扮殑琛ㄦ牸
-        var keyCode = evt.keyCode || evt.which;
-        if (keyCode == 8 || keyCode == 46) {
-          return;
-        }
-        var notCtrlKey = !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey;
-        notCtrlKey && removeSelectedClass(domUtils.getElementsByTagName(me.body, "td"));
-        var ut = getUETableBySelected(me);
-        if (!ut) return;
-        notCtrlKey && ut.clearSelected();
-      });
-
-      me.addListener("beforegetcontent", function() {
-        switchBorderColor(this, false);
-        browser.ie && utils.each(this.document.getElementsByTagName('caption'), function(ci) {
-          if (domUtils.isEmptyNode(ci)) {
-            ci.innerHTML = '&nbsp;'
-          }
-        });
-      });
-      me.addListener("aftergetcontent", function() {
-        switchBorderColor(this, true);
-      });
-      me.addListener("getAllHtml", function() {
-        removeSelectedClass(me.document.getElementsByTagName("td"));
-      });
-      //淇鍏ㄥ睆鐘舵�佷笅鎻掑叆鐨勮〃鏍煎搴﹀湪闈炲叏灞忕姸鎬佷笅鎾戝紑缂栬緫鍣ㄧ殑鎯呭喌
-      me.addListener("fullscreenchanged", function(type, fullscreen) {
-        if (!fullscreen) {
-          var ratio = this.body.offsetWidth / document.body.offsetWidth,
-            tables = domUtils.getElementsByTagName(this.body, "table");
-          utils.each(tables, function(table) {
-            if (table.offsetWidth < me.body.offsetWidth) return false;
-            var tds = domUtils.getElementsByTagName(table, "td"),
-              backWidths = [];
-            utils.each(tds, function(td) {
-              backWidths.push(td.offsetWidth);
-            });
-            for (var i = 0, td; td = tds[i]; i++) {
-              td.setAttribute("width", Math.floor(backWidths[i] * ratio));
-            }
-            table.setAttribute("width", Math.floor(getTableWidth(me, needIEHack, getDefaultValue(me))))
-          });
-        }
-      });
-
-      //閲嶅啓execCommand鍛戒护锛岀敤浜庡鐞嗘閫夋椂鐨勫鐞�
-      var oldExecCommand = me.execCommand;
-      me.execCommand = function(cmd, datatat) {
-
-        var me = this,
-          args = arguments;
-
-        cmd = cmd.toLowerCase();
-        var ut = getUETableBySelected(me),
-          tds,
-          range = new dom.Range(me.document),
-          cmdFun = me.commands[cmd] || UE.commands[cmd],
-          result;
-        if (!cmdFun) return;
-        if (ut && !commands[cmd] && !cmdFun.notNeedUndo && !me.__hasEnterExecCommand) {
-          me.__hasEnterExecCommand = true;
-          me.fireEvent("beforeexeccommand", cmd);
-          tds = ut.selectedTds;
-          var lastState = -2,
-            lastValue = -2,
-            value, state;
-          for (var i = 0, td; td = tds[i]; i++) {
-            if (isEmptyBlock(td)) {
-              range.setStart(td, 0).setCursor(false, true)
-            } else {
-              range.selectNode(td).select(true);
-            }
-            state = me.queryCommandState(cmd);
-            value = me.queryCommandValue(cmd);
-            if (state != -1) {
-              if (lastState !== state || lastValue !== value) {
-                me._ignoreContentChange = true;
-                result = oldExecCommand.apply(me, arguments);
-                me._ignoreContentChange = false;
-
-              }
-              lastState = me.queryCommandState(cmd);
-              lastValue = me.queryCommandValue(cmd);
-              if (domUtils.isEmptyBlock(td)) {
-                domUtils.fillNode(me.document, td)
-              }
-            }
-          }
-          range.setStart(tds[0], 0).shrinkBoundary(true).setCursor(false, true);
-          me.fireEvent('contentchange');
-          me.fireEvent("afterexeccommand", cmd);
-          me.__hasEnterExecCommand = false;
-          me._selectionChange();
-        } else {
-          result = oldExecCommand.apply(me, arguments);
-        }
-        return result;
-      };
-
-
-    });
-    /**
-     * 鍒犻櫎obj鐨勫楂榮tyle锛屾敼鎴愬睘鎬у楂�
-     * @param obj
-     * @param replaceToProperty
-     */
-    function removeStyleSize(obj, replaceToProperty) {
-      removeStyle(obj, "width", true);
-      removeStyle(obj, "height", true);
-    }
-
-    function removeStyle(obj, styleName, replaceToProperty) {
-      if (obj.style[styleName]) {
-        replaceToProperty && obj.setAttribute(styleName, parseInt(obj.style[styleName], 10));
-        obj.style[styleName] = "";
-      }
-    }
-
-    function getParentTdOrTh(ele) {
-      if (ele.tagName == "TD" || ele.tagName == "TH") return ele;
-      var td;
-      if (td = domUtils.findParentByTagName(ele, "td", true) || domUtils.findParentByTagName(ele, "th", true))
-        return td;
-      return null;
-    }
-
-    function isEmptyBlock(node) {
-      var reg = new RegExp(domUtils.fillChar, 'g');
-      if (node[browser.ie ? 'innerText' : 'textContent'].replace(/^\s*$/, '').replace(reg, '').length > 0) {
-        return 0;
-      }
-      for (var n in dtd.$isNotEmpty) {
-        if (node.getElementsByTagName(n).length) {
-          return 0;
-        }
-      }
-      return 1;
-    }
-
-
-    function mouseCoords(evt) {
-      if (evt.pageX || evt.pageY) {
-        return {
-          x: evt.pageX,
-          y: evt.pageY
-        };
-      }
-      return {
-        x: evt.clientX + me.document.body.scrollLeft - me.document.body.clientLeft,
-        y: evt.clientY + me.document.body.scrollTop - me.document.body.clientTop
-      };
-    }
-
-    function mouseMoveEvent(evt) {
-
-      if (isEditorDisabled()) {
-        return;
-      }
-
-      try {
-
-        //鏅�氱姸鎬佷笅榧犳爣绉诲姩
-        var target = getParentTdOrTh(evt.target || evt.srcElement),
-          pos;
-
-        //鍖哄垎鐢ㄦ埛鐨勮涓烘槸鎷栧姩杩樻槸鍙屽嚮
-        if (isInResizeBuffer) {
-
-          me.body.style.webkitUserSelect = 'none';
-
-          if (Math.abs(userActionStatus.x - evt.clientX) > offsetOfTableCell || Math.abs(userActionStatus.y - evt.clientY) >
-            offsetOfTableCell) {
-            clearTableDragTimer();
-            isInResizeBuffer = false;
-            singleClickState = 0;
-            //drag action
-            tableBorderDrag(evt);
-          }
-        }
-
-        //淇敼鍗曞厓鏍煎ぇ灏忔椂鐨勯紶鏍囩Щ鍔�
-        if (onDrag && dragTd) {
-          singleClickState = 0;
-          me.body.style.webkitUserSelect = 'none';
-          me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges']();
-          pos = mouseCoords(evt);
-          toggleDraggableState(me, true, onDrag, pos, target);
-          if (onDrag == "h") {
-            dragLine.style.left = getPermissionX(dragTd, evt) + "px";
-          } else if (onDrag == "v") {
-            dragLine.style.top = getPermissionY(dragTd, evt) + "px";
-          }
-          return;
-        }
-        //褰撻紶鏍囧浜巘able涓婃椂锛屼慨鏀圭Щ鍔ㄨ繃绋嬩腑鐨勫厜鏍囩姸鎬�
-        if (target) {
-          //閽堝浣跨敤table浣滀负瀹瑰櫒鐨勭粍浠朵笉瑙﹀彂鎷栨嫿鏁堟灉
-          if (me.fireEvent('excludetable', target) === true)
-            return;
-          pos = mouseCoords(evt);
-          var state = getRelation(target, pos),
-            table = domUtils.findParentByTagName(target, "table", true);
-
-          if (inTableSide(table, target, evt, true)) {
-            if (me.fireEvent("excludetable", table) === true) return;
-            me.body.style.cursor = "url(" + me.options.cursorpath + "h.png),pointer";
-          } else if (inTableSide(table, target, evt)) {
-            if (me.fireEvent("excludetable", table) === true) return;
-            me.body.style.cursor = "url(" + me.options.cursorpath + "v.png),pointer";
-          } else {
-            me.body.style.cursor = "text";
-            var curCell = target;
-            if (/\d/.test(state)) {
-              state = state.replace(/\d/, '');
-              target = getUETable(target).getPreviewCell(target, state == "v");
-            }
-            //浣嶄簬绗竴琛岀殑椤堕儴鎴栬�呯涓�鍒楃殑宸﹁竟鏃朵笉鍙嫋鍔�
-            toggleDraggableState(me, target ? !!state : false, target ? state : '', pos, target);
-
-          }
-        } else {
-          toggleDragButton(false, table, me);
-        }
-
-      } catch (e) {
-        showError(e);
-      }
-    }
-
-    var dragButtonTimer;
-
-    function toggleDragButton(show, table, editor) {
-      if (!show) {
-        if (dragOver) return;
-        dragButtonTimer = setTimeout(function() {
-          !dragOver && dragButton && dragButton.parentNode && dragButton.parentNode.removeChild(dragButton);
-        }, 2000);
-      } else {
-        createDragButton(table, editor);
-      }
-    }
-
-    function createDragButton(table, editor) {
-      var pos = domUtils.getXY(table),
-        doc = table.ownerDocument;
-      if (dragButton && dragButton.parentNode) return dragButton;
-      dragButton = doc.createElement("div");
-      dragButton.contentEditable = false;
-      dragButton.innerHTML = "";
-      dragButton.style.cssText = "width:15px;height:15px;background-image:url(" + editor.options.UEDITOR_HOME_URL +
-        "dialogs/table/dragicon.png);position: absolute;cursor:move;top:" + (pos.y - 15) + "px;left:" + (pos.x) +
-        "px;";
-      domUtils.unSelectable(dragButton);
-      dragButton.onmouseover = function(evt) {
-        dragOver = true;
-      };
-      dragButton.onmouseout = function(evt) {
-        dragOver = false;
-      };
-      domUtils.on(dragButton, 'click', function(type, evt) {
-        doClick(evt, this);
-      });
-      domUtils.on(dragButton, 'dblclick', function(type, evt) {
-        doDblClick(evt);
-      });
-      domUtils.on(dragButton, 'dragstart', function(type, evt) {
-        domUtils.preventDefault(evt);
-      });
-      var timer;
-
-      function doClick(evt, button) {
-        // 閮ㄥ垎娴忚鍣ㄤ笅闇�瑕佹竻鐞�
-        clearTimeout(timer);
-        timer = setTimeout(function() {
-          editor.fireEvent("tableClicked", table, button);
-        }, 300);
-      }
-
-      function doDblClick(evt) {
-        clearTimeout(timer);
-        var ut = getUETable(table),
-          start = table.rows[0].cells[0],
-          end = ut.getLastCell(),
-          range = ut.getCellsRange(start, end);
-        editor.selection.getRange().setStart(start, 0).setCursor(false, true);
-        ut.setSelected(range);
-      }
-
-      doc.body.appendChild(dragButton);
-    }
-
-
-    //    function inPosition(table, pos) {
-    //        var tablePos = domUtils.getXY(table),
-    //            width = table.offsetWidth,
-    //            height = table.offsetHeight;
-    //        if (pos.x - tablePos.x < 5 && pos.y - tablePos.y < 5) {
-    //            return "topLeft";
-    //        } else if (tablePos.x + width - pos.x < 5 && tablePos.y + height - pos.y < 5) {
-    //            return "bottomRight";
-    //        }
-    //    }
-
-    function inTableSide(table, cell, evt, top) {
-      var pos = mouseCoords(evt),
-        state = getRelation(cell, pos);
-
-      if (top) {
-        var caption = table.getElementsByTagName("caption")[0],
-          capHeight = caption ? caption.offsetHeight : 0;
-        return (state == "v1") && ((pos.y - domUtils.getXY(table).y - capHeight) < 8);
-      } else {
-        return (state == "h1") && ((pos.x - domUtils.getXY(table).x) < 8);
-      }
-    }
-
-    /**
-     * 鑾峰彇鎷栧姩鏃跺厑璁哥殑X杞村潗鏍�
-     * @param dragTd
-     * @param evt
-     */
-    function getPermissionX(dragTd, evt) {
-      var ut = getUETable(dragTd);
-      if (ut) {
-        var preTd = ut.getSameEndPosCells(dragTd, "x")[0],
-          nextTd = ut.getSameStartPosXCells(dragTd)[0],
-          mouseX = mouseCoords(evt).x,
-          left = (preTd ? domUtils.getXY(preTd).x : domUtils.getXY(ut.table).x) + 20,
-          right = nextTd ? domUtils.getXY(nextTd).x + nextTd.offsetWidth - 20 : (me.body.offsetWidth + 5 ||
-            parseInt(domUtils.getComputedStyle(me.body, "width"), 10));
-
-        left += cellMinWidth;
-        right -= cellMinWidth;
-
-        return mouseX < left ? left : mouseX > right ? right : mouseX;
-      }
-    }
-
-    /**
-     * 鑾峰彇鎷栧姩鏃跺厑璁哥殑Y杞村潗鏍�
-     */
-    function getPermissionY(dragTd, evt) {
-      try {
-        var top = domUtils.getXY(dragTd).y,
-          mousePosY = mouseCoords(evt).y;
-        return mousePosY < top ? top : mousePosY;
-      } catch (e) {
-        showError(e);
-      }
-    }
-
-    /**
-     * 绉诲姩鐘舵�佸垏鎹�
-     */
-    function toggleDraggableState(editor, draggable, dir, mousePos, cell) {
-      try {
-        editor.body.style.cursor = dir == "h" ? "col-resize" : dir == "v" ? "row-resize" : "text";
-        if (browser.ie) {
-          if (dir && !mousedown && !getUETableBySelected(editor)) {
-            getDragLine(editor, editor.document);
-            showDragLineAt(dir, cell);
-          } else {
-            hideDragLine(editor)
-          }
-        }
-        onBorder = draggable;
-      } catch (e) {
-        showError(e);
-      }
-    }
-
-    /**
-     * 鑾峰彇涓嶶ETable鐩稿叧鐨剅esize line
-     * @param uetable UETable瀵硅薄
-     */
-    function getResizeLineByUETable() {
-
-      var lineId = '_UETableResizeLine',
-        line = this.document.getElementById(lineId);
-
-      if (!line) {
-        line = this.document.createElement("div");
-        line.id = lineId;
-        line.contnetEditable = false;
-        line.setAttribute("unselectable", "on");
-
-        var styles = {
-          width: 2 * cellBorderWidth + 1 + 'px',
-          position: 'absolute',
-          'z-index': 100000,
-          cursor: 'col-resize',
-          background: 'red',
-          display: 'none'
-        };
-
-        //鍒囨崲鐘舵��
-        line.onmouseout = function() {
-          this.style.display = 'none';
-        };
-
-        utils.extend(line.style, styles);
-
-        this.document.body.appendChild(line);
-
-      }
-
-      return line;
-
-    }
-
-    /**
-     * 鏇存柊resize-line
-     */
-    function updateResizeLine(cell, uetable) {
-
-      var line = getResizeLineByUETable.call(this),
-        table = uetable.table,
-        styles = {
-          top: domUtils.getXY(table).y + 'px',
-          left: domUtils.getXY(cell).x + cell.offsetWidth - cellBorderWidth + 'px',
-          display: 'block',
-          height: table.offsetHeight + 'px'
-        };
-
-      utils.extend(line.style, styles);
-
-    }
-
-    /**
-     * 鏄剧ずresize-line
-     */
-    function showResizeLine(cell) {
-
-      var uetable = getUETable(cell);
-
-      updateResizeLine.call(this, cell, uetable);
-
-    }
-
-    /**
-     * 鑾峰彇榧犳爣涓庡綋鍓嶅崟鍏冩牸鐨勭浉瀵逛綅缃�
-     * @param ele
-     * @param mousePos
-     */
-    function getRelation(ele, mousePos) {
-      var elePos = domUtils.getXY(ele);
-
-      if (!elePos) {
-        return '';
-      }
-
-      if (elePos.x + ele.offsetWidth - mousePos.x < cellBorderWidth) {
-        return "h";
-      }
-      if (mousePos.x - elePos.x < cellBorderWidth) {
-        return 'h1'
-      }
-      if (elePos.y + ele.offsetHeight - mousePos.y < cellBorderWidth) {
-        return "v";
-      }
-      if (mousePos.y - elePos.y < cellBorderWidth) {
-        return 'v1'
-      }
-      return '';
-    }
-
-    function mouseDownEvent(type, evt) {
-
-      if (isEditorDisabled()) {
-        return;
-      }
-
-      userActionStatus = {
-        x: evt.clientX,
-        y: evt.clientY
-      };
-
-      //鍙抽敭鑿滃崟鍗曠嫭澶勭悊
-      if (evt.button == 2) {
-        var ut = getUETableBySelected(me),
-          flag = false;
-
-        if (ut) {
-          var td = getTargetTd(me, evt);
-          utils.each(ut.selectedTds, function(ti) {
-            if (ti === td) {
-              flag = true;
-            }
-          });
-          if (!flag) {
-            removeSelectedClass(domUtils.getElementsByTagName(me.body, "th td"));
-            ut.clearSelected()
-          } else {
-            td = ut.selectedTds[0];
-            setTimeout(function() {
-              me.selection.getRange().setStart(td, 0).setCursor(false, true);
-            }, 0);
-
-          }
-        }
-      } else {
-        tableClickHander(evt);
-      }
-
-    }
-
-    //娓呴櫎琛ㄦ牸鐨勮鏃跺櫒
-    function clearTableTimer() {
-      tabTimer && clearTimeout(tabTimer);
-      tabTimer = null;
-    }
-
-    //鍙屽嚮鏀剁缉
-    function tableDbclickHandler(evt) {
-      singleClickState = 0;
-      evt = evt || me.window.event;
-      var target = getParentTdOrTh(evt.target || evt.srcElement);
-      if (target) {
-        var h;
-        if (h = getRelation(target, mouseCoords(evt))) {
-
-          hideDragLine(me);
-
-          if (h == 'h1') {
-            h = 'h';
-            if (inTableSide(domUtils.findParentByTagName(target, "table"), target, evt)) {
-              me.execCommand('adaptbywindow');
-            } else {
-              target = getUETable(target).getPreviewCell(target);
-              if (target) {
-                var rng = me.selection.getRange();
-                rng.selectNodeContents(target).setCursor(true, true)
-              }
-            }
-          }
-          if (h == 'h') {
-            var ut = getUETable(target),
-              table = ut.table,
-              cells = getCellsByMoveBorder(target, table, true);
-
-            cells = extractArray(cells, 'left');
-
-            ut.width = ut.offsetWidth;
-
-            var oldWidth = [],
-              newWidth = [];
-
-            utils.each(cells, function(cell) {
-
-              oldWidth.push(cell.offsetWidth);
-
-            });
-
-            utils.each(cells, function(cell) {
-
-              cell.removeAttribute("width");
-
-            });
-
-            window.setTimeout(function() {
-
-              //鏄惁鍏佽鏀瑰彉
-              var changeable = true;
-
-              utils.each(cells, function(cell, index) {
-
-                var width = cell.offsetWidth;
-
-                if (width > oldWidth[index]) {
-                  changeable = false;
-                  return false;
-                }
-
-                newWidth.push(width);
-
-              });
-
-              var change = changeable ? newWidth : oldWidth;
-
-              utils.each(cells, function(cell, index) {
-
-                cell.width = change[index] - getTabcellSpace();
-
-              });
-
-
-            }, 0);
-
-            //                    minWidth -= cellMinWidth;
-            //
-            //                    table.removeAttribute("width");
-            //                    utils.each(cells, function (cell) {
-            //                        cell.style.width = "";
-            //                        cell.width -= minWidth;
-            //                    });
-
-          }
-        }
-      }
-    }
-
-    function tableClickHander(evt) {
-
-      removeSelectedClass(domUtils.getElementsByTagName(me.body, "td th"));
-      //trace:3113
-      //閫変腑鍗曞厓鏍硷紝鐐瑰嚮table澶栭儴锛屼笉浼氭竻鎺塼able涓婃寕鐨剈eTable,浼氬紩璧穏etUETableBySelected鏂规硶杩斿洖鍊�
-      utils.each(me.document.getElementsByTagName('table'), function(t) {
-        t.ueTable = null;
-      });
-      startTd = getTargetTd(me, evt);
-      if (!startTd) return;
-      var table = domUtils.findParentByTagName(startTd, "table", true);
-      ut = getUETable(table);
-      ut && ut.clearSelected();
-
-      //鍒ゆ柇褰撳墠榧犳爣鐘舵��
-      if (!onBorder) {
-        me.document.body.style.webkitUserSelect = '';
-        mousedown = true;
-        me.addListener('mouseover', mouseOverEvent);
-      } else {
-        //杈规涓婄殑鍔ㄤ綔澶勭悊
-        borderActionHandler(evt);
-      }
-
-
-    }
-
-    //澶勭悊琛ㄦ牸杈规涓婄殑鍔ㄤ綔, 杩欓噷鍋氬欢鏃跺鐞嗭紝閬垮厤涓ょ鍔ㄤ綔浜掔浉褰卞搷
-    function borderActionHandler(evt) {
-
-      if (browser.ie) {
-        evt = reconstruct(evt);
-      }
-
-      clearTableDragTimer();
-
-      //鏄惁姝e湪绛夊緟resize鐨勭紦鍐蹭腑
-      isInResizeBuffer = true;
-
-      tableDragTimer = setTimeout(function() {
-        tableBorderDrag(evt);
-      }, dblclickTime);
-
-    }
-
-    function extractArray(originArr, key) {
-
-      var result = [],
-        tmp = null;
-
-      for (var i = 0, len = originArr.length; i < len; i++) {
-
-        tmp = originArr[i][key];
-
-        if (tmp) {
-          result.push(tmp);
-        }
-
-      }
-
-      return result;
-
-    }
-
-    function clearTableDragTimer() {
-      tableDragTimer && clearTimeout(tableDragTimer);
-      tableDragTimer = null;
-    }
-
-    function reconstruct(obj) {
-
-      var attrs = ['pageX', 'pageY', 'clientX', 'clientY', 'srcElement', 'target'],
-        newObj = {};
-
-      if (obj) {
-
-        for (var i = 0, key, val; key = attrs[i]; i++) {
-          val = obj[key];
-          val && (newObj[key] = val);
-        }
-
-      }
-
-      return newObj;
-
-    }
-
-    //杈规鎷栧姩
-    function tableBorderDrag(evt) {
-
-      isInResizeBuffer = false;
-
-      startTd = evt.target || evt.srcElement;
-      if (!startTd) return;
-      var state = getRelation(startTd, mouseCoords(evt));
-      if (/\d/.test(state)) {
-        state = state.replace(/\d/, '');
-        startTd = getUETable(startTd).getPreviewCell(startTd, state == 'v');
-      }
-      hideDragLine(me);
-      getDragLine(me, me.document);
-      me.fireEvent('saveScene');
-      showDragLineAt(state, startTd);
-      mousedown = true;
-      //鎷栧姩寮�濮�
-      onDrag = state;
-      dragTd = startTd;
-    }
-
-    function mouseUpEvent(type, evt) {
-
-      if (isEditorDisabled()) {
-        return;
-      }
-
-      clearTableDragTimer();
-
-      isInResizeBuffer = false;
-
-      if (onBorder) {
-        singleClickState = ++singleClickState % 3;
-
-        userActionStatus = {
-          x: evt.clientX,
-          y: evt.clientY
-        };
-
-        tableResizeTimer = setTimeout(function() {
-          singleClickState > 0 && singleClickState--;
-        }, dblclickTime);
-
-        if (singleClickState === 2) {
-
-          singleClickState = 0;
-          tableDbclickHandler(evt);
-          return;
-
-        }
-
-      }
-
-      if (evt.button == 2) return;
-      var me = this;
-      //娓呴櫎琛ㄦ牸涓婂師鐢熻法閫夐棶棰�
-      var range = me.selection.getRange(),
-        start = domUtils.findParentByTagName(range.startContainer, 'table', true),
-        end = domUtils.findParentByTagName(range.endContainer, 'table', true);
-
-      if (start || end) {
-        if (start === end) {
-          start = domUtils.findParentByTagName(range.startContainer, ['td', 'th', 'caption'], true);
-          end = domUtils.findParentByTagName(range.endContainer, ['td', 'th', 'caption'], true);
-          if (start !== end) {
-            me.selection.clearRange()
-          }
-        } else {
-          me.selection.clearRange()
-        }
-      }
-      mousedown = false;
-      me.document.body.style.webkitUserSelect = '';
-      //鎷栨嫿鐘舵�佷笅鐨刴ouseUP
-      if (onDrag && dragTd) {
-
-        me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges']();
-
-        singleClickState = 0;
-        dragLine = me.document.getElementById('ue_tableDragLine');
-
-        // trace 3973
-        if (dragLine) {
-          var dragTdPos = domUtils.getXY(dragTd),
-            dragLinePos = domUtils.getXY(dragLine);
-
-          switch (onDrag) {
-            case "h":
-              changeColWidth(dragTd, dragLinePos.x - dragTdPos.x);
-              break;
-            case "v":
-              changeRowHeight(dragTd, dragLinePos.y - dragTdPos.y - dragTd.offsetHeight);
-              break;
-            default:
-          }
-          onDrag = "";
-          dragTd = null;
-
-          hideDragLine(me);
-          me.fireEvent('saveScene');
-          return;
-        }
-      }
-      //姝e父鐘舵�佷笅鐨刴ouseup
-      if (!startTd) {
-        var target = domUtils.findParentByTagName(evt.target || evt.srcElement, "td", true);
-        if (!target) target = domUtils.findParentByTagName(evt.target || evt.srcElement, "th", true);
-        if (target && (target.tagName == "TD" || target.tagName == "TH")) {
-          if (me.fireEvent("excludetable", target) === true) return;
-          range = new dom.Range(me.document);
-          range.setStart(target, 0).setCursor(false, true);
-        }
-      } else {
-        var ut = getUETable(startTd),
-          cell = ut ? ut.selectedTds[0] : null;
-        if (cell) {
-          range = new dom.Range(me.document);
-          if (domUtils.isEmptyBlock(cell)) {
-            range.setStart(cell, 0).setCursor(false, true);
-          } else {
-            range.selectNodeContents(cell).shrinkBoundary().setCursor(false, true);
-          }
-        } else {
-          range = me.selection.getRange().shrinkBoundary();
-          if (!range.collapsed) {
-            var start = domUtils.findParentByTagName(range.startContainer, ['td', 'th'], true),
-              end = domUtils.findParentByTagName(range.endContainer, ['td', 'th'], true);
-            //鍦╰able閲岃竟鐨勪笉鑳芥竻闄�
-            if (start && !end || !start && end || start && end && start !== end) {
-              range.setCursor(false, true);
-            }
-          }
-        }
-        startTd = null;
-        me.removeListener('mouseover', mouseOverEvent);
-      }
-      me._selectionChange(250, evt);
-    }
-
-    function mouseOverEvent(type, evt) {
-
-      if (isEditorDisabled()) {
-        return;
-      }
-
-      var me = this,
-        tar = evt.target || evt.srcElement;
-      currentTd = domUtils.findParentByTagName(tar, "td", true) || domUtils.findParentByTagName(tar, "th", true);
-      //闇�瑕佸垽鏂袱涓猅D鏄惁浣嶄簬鍚屼竴涓〃鏍煎唴
-      if (startTd && currentTd &&
-        ((startTd.tagName == "TD" && currentTd.tagName == "TD") || (startTd.tagName == "TH" && currentTd.tagName ==
-          "TH")) &&
-        domUtils.findParentByTagName(startTd, 'table') == domUtils.findParentByTagName(currentTd, 'table')) {
-        var ut = getUETable(currentTd);
-        if (startTd != currentTd) {
-          me.document.body.style.webkitUserSelect = 'none';
-          me.selection.getNative()[browser.ie9below ? 'empty' : 'removeAllRanges']();
-          var range = ut.getCellsRange(startTd, currentTd);
-          ut.setSelected(range);
-        } else {
-          me.document.body.style.webkitUserSelect = '';
-          ut.clearSelected();
-        }
-
-      }
-      evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);
-    }
-
-    function setCellHeight(cell, height, backHeight) {
-      var lineHight = parseInt(domUtils.getComputedStyle(cell, "line-height"), 10),
-        tmpHeight = backHeight + height;
-      height = tmpHeight < lineHight ? lineHight : tmpHeight;
-      if (cell.style.height) cell.style.height = "";
-      cell.rowSpan == 1 ? cell.setAttribute("height", height) : (cell.removeAttribute && cell.removeAttribute(
-        "height"));
-    }
-
-    function getWidth(cell) {
-      if (!cell) return 0;
-      return parseInt(domUtils.getComputedStyle(cell, "width"), 10);
-    }
-
-    function changeColWidth(cell, changeValue) {
-
-      var ut = getUETable(cell);
-      if (ut) {
-
-        //鏍规嵁褰撳墠绉诲姩鐨勮竟妗嗚幏鍙栫浉鍏崇殑鍗曞厓鏍�
-        var table = ut.table,
-          cells = getCellsByMoveBorder(cell, table);
-
-        table.style.width = "";
-        table.removeAttribute("width");
-
-        //淇鏀瑰彉閲�
-        changeValue = correctChangeValue(changeValue, cell, cells);
-
-        if (cell.nextSibling) {
-
-          var i = 0;
-
-          utils.each(cells, function(cellGroup) {
-
-            cellGroup.left.width = (+cellGroup.left.width) + changeValue;
-            cellGroup.right && (cellGroup.right.width = (+cellGroup.right.width) - changeValue);
-
-          });
-
-        } else {
-
-          utils.each(cells, function(cellGroup) {
-            cellGroup.left.width -= -changeValue;
-          });
-
-        }
-      }
-
-    }
-
-    function isEditorDisabled() {
-      return me.body.contentEditable === "false";
-    }
-
-    function changeRowHeight(td, changeValue) {
-      if (Math.abs(changeValue) < 10) return;
-      var ut = getUETable(td);
-      if (ut) {
-        var cells = ut.getSameEndPosCells(td, "y"),
-          //澶囦唤闇�瑕佽繛甯﹀彉鍖栫殑td鐨勫師濮嬮珮搴︼紝鍚﹀垯鍚庢湡鏃犳硶鑾峰彇姝g‘鐨勫��
-          backHeight = cells[0] ? cells[0].offsetHeight : 0;
-        for (var i = 0, cell; cell = cells[i++];) {
-          setCellHeight(cell, changeValue, backHeight);
-        }
-      }
-
-    }
-
-    /**
-     * 鑾峰彇璋冩暣鍗曞厓鏍煎ぇ灏忕殑鐩稿叧鍗曞厓鏍�
-     * @isContainMergeCell 杩斿洖鐨勭粨鏋滀腑鏄惁鍖呭惈鍙戠敓鍚堝苟鍚庣殑鍗曞厓鏍�
-     */
-    function getCellsByMoveBorder(cell, table, isContainMergeCell) {
-
-      if (!table) {
-        table = domUtils.findParentByTagName(cell, 'table');
-      }
-
-      if (!table) {
-        return null;
-      }
-
-      //鑾峰彇鍒拌鍗曞厓鏍兼墍鍦ㄨ鐨勫簭鍒楀彿
-      var index = domUtils.getNodeIndex(cell),
-        temp = cell,
-        rows = table.rows,
-        colIndex = 0;
-
-      while (temp) {
-        //鑾峰彇鍒板綋鍓嶅崟鍏冩牸鍦ㄦ湭鍙戠敓鍗曞厓鏍煎悎骞舵椂鐨勫簭鍒�
-        if (temp.nodeType === 1) {
-          colIndex += (temp.colSpan || 1);
-        }
-        temp = temp.previousSibling;
-      }
-
-      temp = null;
-
-      //璁板綍鎯冲叧鐨勫崟鍏冩牸
-      var borderCells = [];
-
-      utils.each(rows, function(tabRow) {
-
-        var cells = tabRow.cells,
-          currIndex = 0;
-
-        utils.each(cells, function(tabCell) {
-
-          currIndex += (tabCell.colSpan || 1);
-
-          if (currIndex === colIndex) {
-
-            borderCells.push({
-              left: tabCell,
-              right: tabCell.nextSibling || null
-            });
-
-            return false;
-
-          } else if (currIndex > colIndex) {
-
-            if (isContainMergeCell) {
-              borderCells.push({
-                left: tabCell
-              });
-            }
-
-            return false;
-          }
-
-
-        });
-
-      });
-
-      return borderCells;
-
-    }
-
-
-    /**
-     * 閫氳繃缁欏畾鐨勫崟鍏冩牸闆嗗悎鑾峰彇鏈�灏忕殑鍗曞厓鏍紈idth
-     */
-    function getMinWidthByTableCells(cells) {
-
-      var minWidth = Number.MAX_VALUE;
-
-      for (var i = 0, curCell; curCell = cells[i]; i++) {
-
-        minWidth = Math.min(minWidth, curCell.width || getTableCellWidth(curCell));
-
-      }
-
-      return minWidth;
-
-    }
-
-    function correctChangeValue(changeValue, relatedCell, cells) {
-
-      //涓哄崟鍏冩牸鐨刾aading棰勭暀绌洪棿
-      changeValue -= getTabcellSpace();
-
-      if (changeValue < 0) {
-        return 0;
-      }
-
-      changeValue -= getTableCellWidth(relatedCell);
-
-      //纭畾鏂瑰悜
-      var direction = changeValue < 0 ? 'left' : 'right';
-
-      changeValue = Math.abs(changeValue);
-
-      //鍙叧蹇冮潪鏈�鍚庝竴涓崟鍏冩牸灏卞彲浠�
-      utils.each(cells, function(cellGroup) {
-
-        var curCell = cellGroup[direction];
-
-        //涓哄崟鍏冩牸淇濈暀鏈�灏忕┖闂�
-        if (curCell) {
-          changeValue = Math.min(changeValue, getTableCellWidth(curCell) - cellMinWidth);
-        }
-
-
-      });
-
-
-      //淇瓒婄晫
-      changeValue = changeValue < 0 ? 0 : changeValue;
-
-      return direction === 'left' ? -changeValue : changeValue;
-
-    }
-
-    function getTableCellWidth(cell) {
-
-      var width = 0,
-        //鍋忕Щ绾犳閲�
-        offset = 0,
-        width = cell.offsetWidth - getTabcellSpace();
-
-      //鏈�鍚庝竴涓妭鐐圭籂姝d竴涓�
-      if (!cell.nextSibling) {
-
-        width -= getTableCellOffset(cell);
-
-      }
-
-      width = width < 0 ? 0 : width;
-
-      try {
-        cell.width = width;
-      } catch (e) {}
-
-      return width;
-
-    }
-
-    /**
-     * 鑾峰彇鍗曞厓鏍兼墍鍦ㄨ〃鏍肩殑鏈�鏈崟鍏冩牸鐨勫亸绉婚噺
-     */
-    function getTableCellOffset(cell) {
-
-      tab = domUtils.findParentByTagName(cell, "table", false);
-
-      if (tab.offsetVal === undefined) {
-
-        var prev = cell.previousSibling;
-
-        if (prev) {
-
-          //鏈�鍚庝竴涓崟鍏冩牸鍜屽墠涓�涓崟鍏冩牸鐨剋idth diff缁撴灉 濡傛灉鎭板ソ涓轰竴涓猙order width锛� 鍒欐潯浠舵垚绔�
-          tab.offsetVal = cell.offsetWidth - prev.offsetWidth === UT.borderWidth ? UT.borderWidth : 0;
-
-        } else {
-          tab.offsetVal = 0;
-        }
-
-      }
-
-      return tab.offsetVal;
-
-    }
-
-    function getTabcellSpace() {
-
-      if (UT.tabcellSpace === undefined) {
-
-        var cell = null,
-          tab = me.document.createElement("table"),
-          tbody = me.document.createElement("tbody"),
-          trow = me.document.createElement("tr"),
-          tabcell = me.document.createElement("td"),
-          mirror = null;
-
-        tabcell.style.cssText = 'border: 0;';
-        tabcell.width = 1;
-
-        trow.appendChild(tabcell);
-        trow.appendChild(mirror = tabcell.cloneNode(false));
-
-        tbody.appendChild(trow);
-
-        tab.appendChild(tbody);
-
-        tab.style.cssText = "visibility: hidden;";
-
-        me.body.appendChild(tab);
-
-        UT.paddingSpace = tabcell.offsetWidth - 1;
-
-        var tmpTabWidth = tab.offsetWidth;
-
-        tabcell.style.cssText = '';
-        mirror.style.cssText = '';
-
-        UT.borderWidth = (tab.offsetWidth - tmpTabWidth) / 3;
-
-        UT.tabcellSpace = UT.paddingSpace + UT.borderWidth;
-
-        me.body.removeChild(tab);
-
-      }
-
-      getTabcellSpace = function() {
-        return UT.tabcellSpace;
-      };
-
-      return UT.tabcellSpace;
-
-    }
-
-    function getDragLine(editor, doc) {
-      if (mousedown) return;
-      dragLine = editor.document.createElement("div");
-      domUtils.setAttributes(dragLine, {
-        id: "ue_tableDragLine",
-        unselectable: 'on',
-        contenteditable: false,
-        'onresizestart': 'return false',
-        'ondragstart': 'return false',
-        'onselectstart': 'return false',
-        style: "background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)"
-      });
-      editor.body.appendChild(dragLine);
-    }
-
-    function hideDragLine(editor) {
-      if (mousedown) return;
-      var line;
-      while (line = editor.document.getElementById('ue_tableDragLine')) {
-        domUtils.remove(line)
-      }
-    }
-
-    /**
-     * 渚濇嵁state锛坴|h锛夊湪cell浣嶇疆鏄剧ず妯嚎
-     * @param state
-     * @param cell
-     */
-    function showDragLineAt(state, cell) {
-      if (!cell) return;
-      var table = domUtils.findParentByTagName(cell, "table"),
-        caption = table.getElementsByTagName('caption'),
-        width = table.offsetWidth,
-        height = table.offsetHeight - (caption.length > 0 ? caption[0].offsetHeight : 0),
-        tablePos = domUtils.getXY(table),
-        cellPos = domUtils.getXY(cell),
-        css;
-      switch (state) {
-        case "h":
-          css = 'height:' + height + 'px;top:' + (tablePos.y + (caption.length > 0 ? caption[0].offsetHeight : 0)) +
-            'px;left:' + (cellPos.x + cell.offsetWidth);
-          dragLine.style.cssText = css +
-            'px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)';
-          break;
-        case "v":
-          css = 'width:' + width + 'px;left:' + tablePos.x + 'px;top:' + (cellPos.y + cell.offsetHeight);
-          //蹇呴』鍔犱笂border:0鍜宑olor:blue锛屽惁鍒欎綆鐗坕e涓嶆敮鎸佽儗鏅壊鏄剧ず
-          dragLine.style.cssText = css +
-            'px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)';
-          break;
-        default:
-      }
-    }
-
-    /**
-     * 褰撹〃鏍艰竟妗嗛鑹蹭负鐧借壊鏃惰缃负铏氱嚎,true涓烘坊鍔犺櫄绾�
-     * @param editor
-     * @param flag
-     */
-    function switchBorderColor(editor, flag) {
-      var tableArr = domUtils.getElementsByTagName(editor.body, "table"),
-        color;
-      for (var i = 0, node; node = tableArr[i++];) {
-        var td = domUtils.getElementsByTagName(node, "td");
-        if (td[0]) {
-          if (flag) {
-            color = (td[0].style.borderColor).replace(/\s/g, "");
-            if (/(#ffffff)|(rgb\(255,255,255\))/ig.test(color))
-              domUtils.addClass(node, "noBorderTable")
-          } else {
-            domUtils.removeClasses(node, "noBorderTable")
-          }
-        }
-
-      }
-    }
-
-    function getTableWidth(editor, needIEHack, defaultValue) {
-      var body = editor.body;
-      return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) -
-        defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0);
-    }
-
-    /**
-     * 鑾峰彇褰撳墠鎷栧姩鐨勫崟鍏冩牸
-     */
-    function getTargetTd(editor, evt) {
-
-      var target = domUtils.findParentByTagName(evt.target || evt.srcElement, ["td", "th"], true),
-        dir = null;
-
-      if (!target) {
-        return null;
-      }
-
-      dir = getRelation(target, mouseCoords(evt));
-
-      //濡傛灉鏈夊墠涓�涓妭鐐癸紝 闇�瑕佸仛涓�涓慨姝o紝 鍚﹀垯鍙兘浼氬緱鍒颁竴涓敊璇殑td
-
-      if (!target) {
-        return null;
-      }
-
-      if (dir === 'h1' && target.previousSibling) {
-
-        var position = domUtils.getXY(target),
-          cellWidth = target.offsetWidth;
-
-        if (Math.abs(position.x + cellWidth - evt.clientX) > cellWidth / 3) {
-          target = target.previousSibling;
-        }
-
-      } else if (dir === 'v1' && target.parentNode.previousSibling) {
-
-        var position = domUtils.getXY(target),
-          cellHeight = target.offsetHeight;
-
-        if (Math.abs(position.y + cellHeight - evt.clientY) > cellHeight / 3) {
-          target = target.parentNode.previousSibling.firstChild;
-        }
-
-      }
-
-
-      //鎺掗櫎浜嗛潪td鍐呴儴浠ュ強鐢ㄤ簬浠g爜楂樹寒閮ㄥ垎鐨則d
-      return target && !(editor.fireEvent("excludetable", target) === true) ? target : null;
-    }
-
-  };
-
-
-  // plugins/table.sort.js
-  /**
-   * Created with JetBrains PhpStorm.
-   * User: Jinqn
-   * Date: 13-10-12
-   * Time: 涓婂崍10:20
-   * To change this template use File | Settings | File Templates.
-   */
-
-  UE.UETable.prototype.sortTable = function(sortByCellIndex, compareFn) {
-    var table = this.table,
-      rows = table.rows,
-      trArray = [],
-      flag = rows[0].cells[0].tagName === "TH",
-      lastRowIndex = 0;
-    if (this.selectedTds.length) {
-      var range = this.cellsRange,
-        len = range.endRowIndex + 1;
-      for (var i = range.beginRowIndex; i < len; i++) {
-        trArray[i] = rows[i];
-      }
-      trArray.splice(0, range.beginRowIndex);
-      lastRowIndex = (range.endRowIndex + 1) === this.rowsNum ? 0 : range.endRowIndex + 1;
-    } else {
-      for (var i = 0, len = rows.length; i < len; i++) {
-        trArray[i] = rows[i];
-      }
-    }
-
-    var Fn = {
-      'reversecurrent': function(td1, td2) {
-        return 1;
-      },
-      'orderbyasc': function(td1, td2) {
-        var value1 = td1.innerText || td1.textContent,
-          value2 = td2.innerText || td2.textContent;
-        return value1.localeCompare(value2);
-      },
-      'reversebyasc': function(td1, td2) {
-        var value1 = td1.innerHTML,
-          value2 = td2.innerHTML;
-        return value2.localeCompare(value1);
-      },
-      'orderbynum': function(td1, td2) {
-        var value1 = td1[browser.ie ? 'innerText' : 'textContent'].match(/\d+/),
-          value2 = td2[browser.ie ? 'innerText' : 'textContent'].match(/\d+/);
-        if (value1) value1 = +value1[0];
-        if (value2) value2 = +value2[0];
-        return (value1 || 0) - (value2 || 0);
-      },
-      'reversebynum': function(td1, td2) {
-        var value1 = td1[browser.ie ? 'innerText' : 'textContent'].match(/\d+/),
-          value2 = td2[browser.ie ? 'innerText' : 'textContent'].match(/\d+/);
-        if (value1) value1 = +value1[0];
-        if (value2) value2 = +value2[0];
-        return (value2 || 0) - (value1 || 0);
-      }
-    };
-
-    //瀵硅〃鏍艰缃帓搴忕殑鏍囪data-sort-type
-    table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn :
-      '');
-
-    //th涓嶅弬涓庢帓搴�
-    flag && trArray.splice(0, 1);
-    trArray = utils.sort(trArray, function(tr1, tr2) {
-      var result;
-      if (compareFn && typeof compareFn === "function") {
-        result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
-      } else if (compareFn && typeof compareFn === "number") {
-        result = 1;
-      } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) {
-        result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
-      } else {
-        result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
-      }
-      return result;
-    });
-    var fragment = table.ownerDocument.createDocumentFragment();
-    for (var j = 0, len = trArray.length; j < len; j++) {
-      fragment.appendChild(trArray[j]);
-    }
-    var tbody = table.getElementsByTagName("tbody")[0];
-    if (!lastRowIndex) {
-      tbody.appendChild(fragment);
-    } else {
-      tbody.insertBefore(fragment, rows[lastRowIndex - range.endRowIndex + range.beginRowIndex - 1])
-    }
-  };
-
-  UE.plugins['tablesort'] = function() {
-    var me = this,
-      UT = UE.UETable,
-      getUETable = function(tdOrTable) {
-        return UT.getUETable(tdOrTable);
-      },
-      getTableItemsByRange = function(editor) {
-        return UT.getTableItemsByRange(editor);
-      };
-
-
-    me.ready(function() {
-      //娣诲姞琛ㄦ牸鍙帓搴忕殑鏍峰紡
-      utils.cssRule('tablesort',
-        'table.sortEnabled tr.firstRow th,table.sortEnabled tr.firstRow td{padding-right:20px;background-repeat: no-repeat;background-position: center right;' +
-        '   background-image:url(' + me.options.themePath + me.options.theme + '/images/sortable.png);}',
-        me.document);
-
-      //鍋氬崟鍏冩牸鍚堝苟鎿嶄綔鏃�,娓呴櫎鍙帓搴忔爣璇�
-      me.addListener("afterexeccommand", function(type, cmd) {
-        if (cmd == 'mergeright' || cmd == 'mergedown' || cmd == 'mergecells') {
-          this.execCommand('disablesort');
-        }
-      });
-    });
-
-
-
-    //琛ㄦ牸鎺掑簭
-    UE.commands['sorttable'] = {
-      queryCommandState: function() {
-        var me = this,
-          tableItems = getTableItemsByRange(me);
-        if (!tableItems.cell) return -1;
-        var table = tableItems.table,
-          cells = table.getElementsByTagName("td");
-        for (var i = 0, cell; cell = cells[i++];) {
-          if (cell.rowSpan != 1 || cell.colSpan != 1) return -1;
-        }
-        return 0;
-      },
-      execCommand: function(cmd, fn) {
-        var me = this,
-          range = me.selection.getRange(),
-          bk = range.createBookmark(true),
-          tableItems = getTableItemsByRange(me),
-          cell = tableItems.cell,
-          ut = getUETable(tableItems.table),
-          cellInfo = ut.getCellInfo(cell);
-        ut.sortTable(cellInfo.cellIndex, fn);
-        range.moveToBookmark(bk);
-        try {
-          range.select();
-        } catch (e) {}
-      }
-    };
-
-    //璁剧疆琛ㄦ牸鍙帓搴�,娓呴櫎琛ㄦ牸鍙帓搴�
-    UE.commands["enablesort"] = UE.commands["disablesort"] = {
-      queryCommandState: function(cmd) {
-        var table = getTableItemsByRange(this).table;
-        if (table && cmd == 'enablesort') {
-          var cells = domUtils.getElementsByTagName(table, 'th td');
-          for (var i = 0; i < cells.length; i++) {
-            if (cells[i].getAttribute('colspan') > 1 || cells[i].getAttribute('rowspan') > 1) return -1;
-          }
-        }
-
-        return !table ? -1 : cmd == 'enablesort' ^ table.getAttribute('data-sort') != 'sortEnabled' ? -1 : 0;
-      },
-      execCommand: function(cmd) {
-        var table = getTableItemsByRange(this).table;
-        table.setAttribute("data-sort", cmd == "enablesort" ? "sortEnabled" : "sortDisabled");
-        cmd == "enablesort" ? domUtils.addClass(table, "sortEnabled") : domUtils.removeClasses(table,
-          "sortEnabled");
-      }
-    };
-  };
-
-
-  // plugins/contextmenu.js
-  ///import core
-  ///commands 鍙抽敭鑿滃崟
-  ///commandsName  ContextMenu
-  ///commandsTitle  鍙抽敭鑿滃崟
-  /**
-   * 鍙抽敭鑿滃崟
-   * @function
-   * @name baidu.editor.plugins.contextmenu
-   * @author zhanyi
-   */
-
-  UE.plugins['contextmenu'] = function() {
-    var me = this;
-    me.setOpt('enableContextMenu', true);
-    if (me.getOpt('enableContextMenu') === false) {
-      return;
-    }
-    var lang = me.getLang("contextMenu"),
-      menu,
-      items = me.options.contextMenu || [{
-          label: lang['selectall'],
-          cmdName: 'selectall'
-        },
-        {
-          label: lang.cleardoc,
-          cmdName: 'cleardoc',
-          exec: function() {
-            if (confirm(lang.confirmclear)) {
-              this.execCommand('cleardoc');
-            }
-          }
-        },
-        '-',
-        {
-          label: lang.unlink,
-          cmdName: 'unlink'
-        },
-        '-',
-        {
-          group: lang.paragraph,
-          icon: 'justifyjustify',
-          subMenu: [{
-              label: lang.justifyleft,
-              cmdName: 'justify',
-              value: 'left'
-            },
-            {
-              label: lang.justifyright,
-              cmdName: 'justify',
-              value: 'right'
-            },
-            {
-              label: lang.justifycenter,
-              cmdName: 'justify',
-              value: 'center'
-            },
-            {
-              label: lang.justifyjustify,
-              cmdName: 'justify',
-              value: 'justify'
-            }
-          ]
-        },
-        '-',
-        {
-          group: lang.table,
-          icon: 'table',
-          subMenu: [{
-              label: lang.inserttable,
-              cmdName: 'inserttable'
-            },
-            {
-              label: lang.deletetable,
-              cmdName: 'deletetable'
-            },
-            '-',
-            {
-              label: lang.deleterow,
-              cmdName: 'deleterow'
-            },
-            {
-              label: lang.deletecol,
-              cmdName: 'deletecol'
-            },
-            {
-              label: lang.insertcol,
-              cmdName: 'insertcol'
-            },
-            {
-              label: lang.insertcolnext,
-              cmdName: 'insertcolnext'
-            },
-            {
-              label: lang.insertrow,
-              cmdName: 'insertrow'
-            },
-            {
-              label: lang.insertrownext,
-              cmdName: 'insertrownext'
-            },
-            '-',
-            {
-              label: lang.insertcaption,
-              cmdName: 'insertcaption'
-            },
-            {
-              label: lang.deletecaption,
-              cmdName: 'deletecaption'
-            },
-            {
-              label: lang.inserttitle,
-              cmdName: 'inserttitle'
-            },
-            {
-              label: lang.deletetitle,
-              cmdName: 'deletetitle'
-            },
-            {
-              label: lang.inserttitlecol,
-              cmdName: 'inserttitlecol'
-            },
-            {
-              label: lang.deletetitlecol,
-              cmdName: 'deletetitlecol'
-            },
-            '-',
-            {
-              label: lang.mergecells,
-              cmdName: 'mergecells'
-            },
-            {
-              label: lang.mergeright,
-              cmdName: 'mergeright'
-            },
-            {
-              label: lang.mergedown,
-              cmdName: 'mergedown'
-            },
-            '-',
-            {
-              label: lang.splittorows,
-              cmdName: 'splittorows'
-            },
-            {
-              label: lang.splittocols,
-              cmdName: 'splittocols'
-            },
-            {
-              label: lang.splittocells,
-              cmdName: 'splittocells'
-            },
-            '-',
-            {
-              label: lang.averageDiseRow,
-              cmdName: 'averagedistributerow'
-            },
-            {
-              label: lang.averageDisCol,
-              cmdName: 'averagedistributecol'
-            },
-            '-',
-            {
-              label: lang.edittd,
-              cmdName: 'edittd',
-              exec: function() {
-                if (UE.ui['edittd']) {
-                  new UE.ui['edittd'](this);
-                }
-                this.getDialog('edittd').open();
-              }
-            },
-            {
-              label: lang.edittable,
-              cmdName: 'edittable',
-              exec: function() {
-                if (UE.ui['edittable']) {
-                  new UE.ui['edittable'](this);
-                }
-                this.getDialog('edittable').open();
-              }
-            },
-            {
-              label: lang.setbordervisible,
-              cmdName: 'setbordervisible'
-            }
-          ]
-        },
-        {
-          group: lang.tablesort,
-          icon: 'tablesort',
-          subMenu: [{
-              label: lang.enablesort,
-              cmdName: 'enablesort'
-            },
-            {
-              label: lang.disablesort,
-              cmdName: 'disablesort'
-            },
-            '-',
-            {
-              label: lang.reversecurrent,
-              cmdName: 'sorttable',
-              value: 'reversecurrent'
-            },
-            {
-              label: lang.orderbyasc,
-              cmdName: 'sorttable',
-              value: 'orderbyasc'
-            },
-            {
-              label: lang.reversebyasc,
-              cmdName: 'sorttable',
-              value: 'reversebyasc'
-            },
-            {
-              label: lang.orderbynum,
-              cmdName: 'sorttable',
-              value: 'orderbynum'
-            },
-            {
-              label: lang.reversebynum,
-              cmdName: 'sorttable',
-              value: 'reversebynum'
-            }
-          ]
-        },
-        {
-          group: lang.borderbk,
-          icon: 'borderBack',
-          subMenu: [{
-              label: lang.setcolor,
-              cmdName: "interlacetable",
-              exec: function() {
-                this.execCommand("interlacetable");
-              }
-            },
-            {
-              label: lang.unsetcolor,
-              cmdName: "uninterlacetable",
-              exec: function() {
-                this.execCommand("uninterlacetable");
-              }
-            },
-            {
-              label: lang.setbackground,
-              cmdName: "settablebackground",
-              exec: function() {
-                this.execCommand("settablebackground", {
-                  repeat: true,
-                  colorList: ["#bbb", "#ccc"]
-                });
-              }
-            },
-            {
-              label: lang.unsetbackground,
-              cmdName: "cleartablebackground",
-              exec: function() {
-                this.execCommand("cleartablebackground");
-              }
-            },
-            {
-              label: lang.redandblue,
-              cmdName: "settablebackground",
-              exec: function() {
-                this.execCommand("settablebackground", {
-                  repeat: true,
-                  colorList: ["red", "blue"]
-                });
-              }
-            },
-            {
-              label: lang.threecolorgradient,
-              cmdName: "settablebackground",
-              exec: function() {
-                this.execCommand("settablebackground", {
-                  repeat: true,
-                  colorList: ["#aaa", "#bbb", "#ccc"]
-                });
-              }
-            }
-          ]
-        },
-        {
-          group: lang.aligntd,
-          icon: 'aligntd',
-          subMenu: [{
-              cmdName: 'cellalignment',
-              value: {
-                align: 'left',
-                vAlign: 'top'
-              }
-            },
-            {
-              cmdName: 'cellalignment',
-              value: {
-                align: 'center',
-                vAlign: 'top'
-              }
-            },
-            {
-              cmdName: 'cellalignment',
-              value: {
-                align: 'right',
-                vAlign: 'top'
-              }
-            },
-            {
-              cmdName: 'cellalignment',
-              value: {
-                align: 'left',
-                vAlign: 'middle'
-              }
-            },
-            {
-              cmdName: 'cellalignment',
-              value: {
-                align: 'center',
-                vAlign: 'middle'
-              }
-            },
-            {
-              cmdName: 'cellalignment',
-              value: {
-                align: 'right',
-                vAlign: 'middle'
-              }
-            },
-            {
-              cmdName: 'cellalignment',
-              value: {
-                align: 'left',
-                vAlign: 'bottom'
-              }
-            },
-            {
-              cmdName: 'cellalignment',
-              value: {
-                align: 'center',
-                vAlign: 'bottom'
-              }
-            },
-            {
-              cmdName: 'cellalignment',
-              value: {
-                align: 'right',
-                vAlign: 'bottom'
-              }
-            }
-          ]
-        },
-        {
-          group: lang.aligntable,
-          icon: 'aligntable',
-          subMenu: [{
-              cmdName: 'tablealignment',
-              className: 'left',
-              label: lang.tableleft,
-              value: "left"
-            },
-            {
-              cmdName: 'tablealignment',
-              className: 'center',
-              label: lang.tablecenter,
-              value: "center"
-            },
-            {
-              cmdName: 'tablealignment',
-              className: 'right',
-              label: lang.tableright,
-              value: "right"
-            }
-          ]
-        },
-        '-',
-        {
-          label: lang.insertparagraphbefore,
-          cmdName: 'insertparagraph',
-          value: true
-        },
-        {
-          label: lang.insertparagraphafter,
-          cmdName: 'insertparagraph'
-        },
-        {
-          label: lang['copy'],
-          cmdName: 'copy'
-        },
-        {
-          label: lang['paste'],
-          cmdName: 'paste'
-        }
-      ];
-    if (!items.length) {
-      return;
-    }
-    var uiUtils = UE.ui.uiUtils;
-
-    me.addListener('contextmenu', function(type, evt) {
-
-      var offset = uiUtils.getViewportOffsetByEvent(evt);
-      me.fireEvent('beforeselectionchange');
-      if (menu) {
-        menu.destroy();
-      }
-      for (var i = 0, ti, contextItems = []; ti = items[i]; i++) {
-        var last;
-        (function(item) {
-          if (item == '-') {
-            if ((last = contextItems[contextItems.length - 1]) && last !== '-') {
-              contextItems.push('-');
-            }
-          } else if (item.hasOwnProperty("group")) {
-            for (var j = 0, cj, subMenu = []; cj = item.subMenu[j]; j++) {
-              (function(subItem) {
-                if (subItem == '-') {
-                  if ((last = subMenu[subMenu.length - 1]) && last !== '-') {
-                    subMenu.push('-');
-                  } else {
-                    subMenu.splice(subMenu.length - 1);
-                  }
-                } else {
-                  if ((me.commands[subItem.cmdName] || UE.commands[subItem.cmdName] || subItem.query) &&
-                    (subItem.query ? subItem.query() : me.queryCommandState(subItem.cmdName)) > -1) {
-                    subMenu.push({
-                      'label': subItem.label || me.getLang("contextMenu." + subItem.cmdName + (subItem.value ||
-                        '')) || "",
-                      'className': 'edui-for-' + subItem.cmdName + (subItem.className ? (' edui-for-' +
-                        subItem.cmdName + '-' + subItem.className) : ''),
-                      onclick: subItem.exec ? function() {
-                        subItem.exec.call(me);
-                      } : function() {
-                        me.execCommand(subItem.cmdName, subItem.value);
-                      }
-                    });
-                  }
-                }
-              })(cj);
-            }
-            if (subMenu.length) {
-              function getLabel() {
-                switch (item.icon) {
-                  case "table":
-                    return me.getLang("contextMenu.table");
-                  case "justifyjustify":
-                    return me.getLang("contextMenu.paragraph");
-                  case "aligntd":
-                    return me.getLang("contextMenu.aligntd");
-                  case "aligntable":
-                    return me.getLang("contextMenu.aligntable");
-                  case "tablesort":
-                    return lang.tablesort;
-                  case "borderBack":
-                    return lang.borderbk;
-                  default:
-                    return '';
-                }
-              }
-              contextItems.push({
-                //todo 淇鎴愯嚜鍔ㄨ幏鍙栨柟寮�
-                'label': getLabel(),
-                className: 'edui-for-' + item.icon,
-                'subMenu': {
-                  items: subMenu,
-                  editor: me
-                }
-              });
-            }
-
-          } else {
-            //鏈夊彲鑳絚ommmand娌℃湁鍔犺浇鍙抽敭涓嶈兘鍑烘潵锛屾垨鑰呮病鏈塩ommand涔熸兂鑳藉睍绀哄嚭鏉ユ坊鍔爍uery鏂规硶
-            if ((me.commands[item.cmdName] || UE.commands[item.cmdName] || item.query) &&
-              (item.query ? item.query.call(me) : me.queryCommandState(item.cmdName)) > -1) {
-
-              contextItems.push({
-                'label': item.label || me.getLang("contextMenu." + item.cmdName),
-                className: 'edui-for-' + (item.icon ? item.icon : item.cmdName + (item.value || '')),
-                onclick: item.exec ? function() {
-                  item.exec.call(me);
-                } : function() {
-                  me.execCommand(item.cmdName, item.value);
-                }
-              });
-            }
-
-          }
-
-        })(ti);
-      }
-      if (contextItems[contextItems.length - 1] == '-') {
-        contextItems.pop();
-      }
-
-      menu = new UE.ui.Menu({
-        items: contextItems,
-        className: "edui-contextmenu",
-        editor: me
-      });
-      menu.render();
-      menu.showAt(offset);
-
-      me.fireEvent("aftershowcontextmenu", menu);
-
-      domUtils.preventDefault(evt);
-      if (browser.ie) {
-        var ieRange;
-        try {
-          ieRange = me.selection.getNative().createRange();
-        } catch (e) {
-          return;
-        }
-        if (ieRange.item) {
-          var range = new dom.Range(me.document);
-          range.selectNode(ieRange.item(0)).select(true, true);
-        }
-      }
-    });
-
-    // 娣诲姞澶嶅埗鐨刦lash鎸夐挳
-    me.addListener('aftershowcontextmenu', function(type, menu) {
-      if (me.zeroclipboard) {
-        var items = menu.items;
-        for (var key in items) {
-          if (items[key].className == 'edui-for-copy') {
-            me.zeroclipboard.clip(items[key].getDom());
-          }
-        }
-      }
-    });
-
-  };
-
-
-  // plugins/shortcutmenu.js
-  ///import core
-  ///commands       寮瑰嚭鑿滃崟
-  // commandsName  popupmenu
-  ///commandsTitle  寮瑰嚭鑿滃崟
-  /**
-   * 寮瑰嚭鑿滃崟
-   * @function
-   * @name baidu.editor.plugins.popupmenu
-   * @author xuheng
-   */
-
-  UE.plugins['shortcutmenu'] = function() {
-    var me = this,
-      menu,
-      items = me.options.shortcutMenu || [];
-
-    if (!items.length) {
-      return;
-    }
-
-    me.addListener('contextmenu mouseup', function(type, e) {
-      var me = this,
-        customEvt = {
-          type: type,
-          target: e.target || e.srcElement,
-          screenX: e.screenX,
-          screenY: e.screenY,
-          clientX: e.clientX,
-          clientY: e.clientY
-        };
-
-      setTimeout(function() {
-        var rng = me.selection.getRange();
-        if (rng.collapsed === false || type == "contextmenu") {
-
-          if (!menu) {
-            menu = new baidu.editor.ui.ShortCutMenu({
-              editor: me,
-              items: items,
-              theme: me.options.theme,
-              className: 'edui-shortcutmenu'
-            });
-
-            menu.render();
-            me.fireEvent("afterrendershortcutmenu", menu);
-          }
-
-          menu.show(customEvt, !!UE.plugins['contextmenu']);
-        }
-      });
-
-      if (type == 'contextmenu') {
-        domUtils.preventDefault(e);
-        if (browser.ie9below) {
-          var ieRange;
-          try {
-            ieRange = me.selection.getNative().createRange();
-          } catch (e) {
-            return;
-          }
-          if (ieRange.item) {
-            var range = new dom.Range(me.document);
-            range.selectNode(ieRange.item(0)).select(true, true);
-
-          }
-        }
-      }
-    });
-
-    me.addListener('keydown', function(type) {
-      if (type == "keydown") {
-        menu && !menu.isHidden && menu.hide();
-      }
-
-    });
-
-  };
-
-
-
-
-  // plugins/basestyle.js
-  /**
-   * B銆両銆乻ub銆乻uper鍛戒护鏀寔
-   * @file
-   * @since 1.2.6.1
-   */
-
-  UE.plugins['basestyle'] = function() {
-
-    /**
-     * 瀛椾綋鍔犵矖
-     * @command bold
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @remind 瀵瑰凡鍔犵矖鐨勬枃鏈唴瀹规墽琛岃鍛戒护锛� 灏嗗彇娑堝姞绮�
-     * @method execCommand
-     * @example
-     * ```javascript
-     * //editor鏄紪杈戝櫒瀹炰緥
-     * //瀵瑰綋鍓嶉�変腑鐨勬枃鏈唴瀹规墽琛屽姞绮楁搷浣�
-     * //绗竴娆℃墽琛岋紝 鏂囨湰鍐呭鍔犵矖
-     * editor.execCommand( 'bold' );
-     *
-     * //绗簩娆℃墽琛岋紝 鏂囨湰鍐呭鍙栨秷鍔犵矖
-     * editor.execCommand( 'bold' );
-     * ```
-     */
-
-
-    /**
-     * 瀛椾綋鍊炬枩
-     * @command italic
-     * @method execCommand
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @remind 瀵瑰凡鍊炬枩鐨勬枃鏈唴瀹规墽琛岃鍛戒护锛� 灏嗗彇娑堝�炬枩
-     * @example
-     * ```javascript
-     * //editor鏄紪杈戝櫒瀹炰緥
-     * //瀵瑰綋鍓嶉�変腑鐨勬枃鏈唴瀹规墽琛屾枩浣撴搷浣�
-     * //绗竴娆℃搷浣滐紝 鏂囨湰鍐呭灏嗗彉鎴愭枩浣�
-     * editor.execCommand( 'italic' );
-     *
-     * //鍐嶆瀵瑰悓涓�鏂囨湰鍐呭鎵ц锛� 鍒欐枃鏈唴瀹瑰皢鎭㈠姝e父
-     * editor.execCommand( 'italic' );
-     * ```
-     */
-
-    /**
-     * 涓嬫爣鏂囨湰锛屼笌鈥渟uperscript鈥濆懡浠や簰鏂�
-     * @command subscript
-     * @method execCommand
-     * @remind  鎶婇�変腑鐨勬枃鏈唴瀹瑰垏鎹㈡垚涓嬫爣鏂囨湰锛� 濡傛灉褰撳墠閫変腑鐨勬枃鏈凡缁忔槸涓嬫爣锛� 鍒欒鎿嶄綔浼氭妸鏂囨湰鍐呭杩樺師鎴愭甯告枃鏈�
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @example
-     * ```javascript
-     * //editor鏄紪杈戝櫒瀹炰緥
-     * //瀵瑰綋鍓嶉�変腑鐨勬枃鏈唴瀹规墽琛屼笅鏍囨搷浣�
-     * //绗竴娆℃搷浣滐紝 鏂囨湰鍐呭灏嗗彉鎴愪笅鏍囨枃鏈�
-     * editor.execCommand( 'subscript' );
-     *
-     * //鍐嶆瀵瑰悓涓�鏂囨湰鍐呭鎵ц锛� 鍒欐枃鏈唴瀹瑰皢鎭㈠姝e父
-     * editor.execCommand( 'subscript' );
-     * ```
-     */
-
-    /**
-     * 涓婃爣鏂囨湰锛屼笌鈥渟ubscript鈥濆懡浠や簰鏂�
-     * @command superscript
-     * @method execCommand
-     * @remind 鎶婇�変腑鐨勬枃鏈唴瀹瑰垏鎹㈡垚涓婃爣鏂囨湰锛� 濡傛灉褰撳墠閫変腑鐨勬枃鏈凡缁忔槸涓婃爣锛� 鍒欒鎿嶄綔浼氭妸鏂囨湰鍐呭杩樺師鎴愭甯告枃鏈�
-     * @param { String } cmd 鍛戒护瀛楃涓�
-     * @example
-     * ```javascript
-     * //editor鏄紪杈戝櫒瀹炰緥
-     * //瀵瑰綋鍓嶉�変腑鐨勬枃鏈唴瀹规墽琛屼笂鏍囨搷浣�
-     * //绗竴娆℃搷浣滐紝 鏂囨湰鍐呭灏嗗彉鎴愪笂鏍囨枃鏈�
-     * editor.execCommand( 'superscript' );
-     *
-     * //鍐嶆瀵瑰悓涓�鏂囨湰鍐呭鎵ц锛� 鍒欐枃鏈唴瀹瑰皢鎭㈠姝e父
-     * editor.execCommand( 'superscript' );
-     * ```
-     */
-    var basestyles = {
-        'bold': ['strong', 'b'],
-        'italic': ['em', 'i'],
-        'subscript': ['sub'],
-        'superscript': ['sup']
-      },
-      getObj = function(editor, tagNames) {
-        return domUtils.filterNodeList(editor.selection.getStartElementPath(), tagNames);
-      },
-      me = this;
-    //娣诲姞蹇嵎閿�
-    me.addshortcutkey({
-      "Bold": "ctrl+66", //^B
-      "Italic": "ctrl+73", //^I
-      "Underline": "ctrl+85" //^U
-    });
-    me.addInputRule(function(root) {
-      utils.each(root.getNodesByTagName('b i'), function(node) {
-        switch (node.tagName) {
-          case 'b':
-            node.tagName = 'strong';
-            break;
-          case 'i':
-            node.tagName = 'em';
-        }
-      });
-    });
-    for (var style in basestyles) {
-      (function(cmd, tagNames) {
-        me.commands[cmd] = {
-          execCommand: function(cmdName) {
-            var range = me.selection.getRange(),
-              obj = getObj(this, tagNames);
-            if (range.collapsed) {
-              if (obj) {
-                var tmpText = me.document.createTextNode('');
-                range.insertNode(tmpText).removeInlineStyle(tagNames);
-                range.setStartBefore(tmpText);
-                domUtils.remove(tmpText);
-              } else {
-                var tmpNode = range.document.createElement(tagNames[0]);
-                if (cmdName == 'superscript' || cmdName == 'subscript') {
-                  tmpText = me.document.createTextNode('');
-                  range.insertNode(tmpText)
-                    .removeInlineStyle(['sub', 'sup'])
-                    .setStartBefore(tmpText)
-                    .collapse(true);
-                }
-                range.insertNode(tmpNode).setStart(tmpNode, 0);
-              }
-              range.collapse(true);
-            } else {
-              if (cmdName == 'superscript' || cmdName == 'subscript') {
-                if (!obj || obj.tagName.toLowerCase() != cmdName) {
-                  range.removeInlineStyle(['sub', 'sup']);
-                }
-              }
-              obj ? range.removeInlineStyle(tagNames) : range.applyInlineStyle(tagNames[0]);
-            }
-            range.select();
-          },
-          queryCommandState: function() {
-            return getObj(this, tagNames) ? 1 : 0;
-          }
-        };
-      })(style, basestyles[style]);
-    }
-  };
-
-
-
-  // plugins/elementpath.js
-  /**
-   * 閫夊彇璺緞鍛戒护
-   * @file
-   */
-  UE.plugins['elementpath'] = function() {
-    var currentLevel,
-      tagNames,
-      me = this;
-    me.setOpt('elementPathEnabled', true);
-    if (!me.options.elementPathEnabled) {
-      return;
-    }
-    me.commands['elementpath'] = {
-      execCommand: function(cmdName, level) {
-        var start = tagNames[level],
-          range = me.selection.getRange();
-        currentLevel = level * 1;
-        range.selectNode(start).select();
-      },
-      queryCommandValue: function() {
-        //浜х敓涓�涓壇鏈紝涓嶈兘淇敼鍘熸潵鐨剆tartElementPath;
-        var parents = [].concat(this.selection.getStartElementPath()).reverse(),
-          names = [];
-        tagNames = parents;
-        for (var i = 0, ci; ci = parents[i]; i++) {
-          if (ci.nodeType == 3) {
-            continue;
-          }
-          var name = ci.tagName.toLowerCase();
-          if (name == 'img' && ci.getAttribute('anchorname')) {
-            name = 'anchor';
-          }
-          names[i] = name;
-          if (currentLevel == i) {
-            currentLevel = -1;
-            break;
-          }
-        }
-        return names;
-      }
-    };
-  };
-
-
-
-  // plugins/formatmatch.js
-  /**
-   * 鏍煎紡鍒凤紝鍙牸寮廼nline鐨�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鏍煎紡鍒�
-   * @command formatmatch
-   * @method execCommand
-   * @remind 璇ユ搷浣滀笉鑳藉鍒舵钀芥牸寮�
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * //editor鏄紪杈戝櫒瀹炰緥
-   * //鑾峰彇鏍煎紡鍒�
-   * editor.execCommand( 'formatmatch' );
-   * ```
-   */
-  UE.plugins['formatmatch'] = function() {
-
-    var me = this,
-      list = [],
-      img,
-      flag = 0;
-
-    me.addListener('reset', function() {
-      list = [];
-      flag = 0;
-    });
-
-    function addList(type, evt) {
-
-      if (browser.webkit) {
-        var target = evt.target.tagName == 'IMG' ? evt.target : null;
-      }
-
-      function addFormat(range) {
-
-        if (text) {
-          range.selectNode(text);
-        }
-        return range.applyInlineStyle(list[list.length - 1].tagName, null, list);
-
-      }
-
-      me.undoManger && me.undoManger.save();
-
-      var range = me.selection.getRange(),
-        imgT = target || range.getClosedNode();
-      if (img && imgT && imgT.tagName == 'IMG') {
-        //trace:964
-
-        imgT.style.cssText += ';float:' + (img.style.cssFloat || img.style.styleFloat || 'none') + ';display:' + (
-          img.style.display || 'inline');
-
-        img = null;
-      } else {
-        if (!img) {
-          var collapsed = range.collapsed;
-          if (collapsed) {
-            var text = me.document.createTextNode('match');
-            range.insertNode(text).select();
-
-
-          }
-          me.__hasEnterExecCommand = true;
-          //涓嶈兘鎶奲lock涓婄殑灞炴�у共鎺�
-          //trace:1553
-          var removeFormatAttributes = me.options.removeFormatAttributes;
-          me.options.removeFormatAttributes = '';
-          me.execCommand('removeformat');
-          me.options.removeFormatAttributes = removeFormatAttributes;
-          me.__hasEnterExecCommand = false;
-          //trace:969
-          range = me.selection.getRange();
-          if (list.length) {
-            addFormat(range);
-          }
-          if (text) {
-            range.setStartBefore(text).collapse(true);
-
-          }
-          range.select();
-          text && domUtils.remove(text);
-        }
-
-      }
-
-
-
-
-      me.undoManger && me.undoManger.save();
-      me.removeListener('mouseup', addList);
-      flag = 0;
-    }
-
-    me.commands['formatmatch'] = {
-      execCommand: function(cmdName) {
-
-        if (flag) {
-          flag = 0;
-          list = [];
-          me.removeListener('mouseup', addList);
-          return;
-        }
-
-
-
-        var range = me.selection.getRange();
-        img = range.getClosedNode();
-        if (!img || img.tagName != 'IMG') {
-          range.collapse(true).shrinkBoundary();
-          var start = range.startContainer;
-          list = domUtils.findParents(start, true, function(node) {
-            return !domUtils.isBlockElm(node) && node.nodeType == 1;
-          });
-          //a涓嶈兘鍔犲叆鏍煎紡鍒�, 骞朵笖鍏嬮殕鑺傜偣
-          for (var i = 0, ci; ci = list[i]; i++) {
-            if (ci.tagName == 'A') {
-              list.splice(i, 1);
-              break;
-            }
-          }
-
-        }
-
-        me.addListener('mouseup', addList);
-        flag = 1;
-
-
-      },
-      queryCommandState: function() {
-        return flag;
-      },
-      notNeedUndo: 1
-    };
-  };
-
-
-
-  // plugins/searchreplace.js
-  ///import core
-  ///commands 鏌ユ壘鏇挎崲
-  ///commandsName  SearchReplace
-  ///commandsTitle  鏌ヨ鏇挎崲
-  ///commandsDialog  dialogs\searchreplace
-  /**
-   * @description 鏌ユ壘鏇挎崲
-   * @author zhanyi
-   */
-
-  UE.plugin.register('searchreplace', function() {
-    var me = this;
-
-    var _blockElm = {
-      'table': 1,
-      'tbody': 1,
-      'tr': 1,
-      'ol': 1,
-      'ul': 1
-    };
-
-    function findTextInString(textContent, opt, currentIndex) {
-      var str = opt.searchStr;
-      if (opt.dir == -1) {
-        textContent = textContent.split('').reverse().join('');
-        str = str.split('').reverse().join('');
-        currentIndex = textContent.length - currentIndex;
-
-      }
-      var reg = new RegExp(str, 'g' + (opt.casesensitive ? '' : 'i')),
-        match;
-
-      while (match = reg.exec(textContent)) {
-        if (match.index >= currentIndex) {
-          return opt.dir == -1 ? textContent.length - match.index - opt.searchStr.length : match.index;
-        }
-      }
-      return -1
-    }
-
-    function findTextBlockElm(node, currentIndex, opt) {
-      var textContent, index, methodName = opt.all || opt.dir == 1 ? 'getNextDomNode' : 'getPreDomNode';
-      if (domUtils.isBody(node)) {
-        node = node.firstChild;
-      }
-      var first = 1;
-      while (node) {
-        textContent = node.nodeType == 3 ? node.nodeValue : node[browser.ie ? 'innerText' : 'textContent'];
-        index = findTextInString(textContent, opt, currentIndex);
-        first = 0;
-        if (index != -1) {
-          return {
-            'node': node,
-            'index': index
-          }
-        }
-        node = domUtils[methodName](node);
-        while (node && _blockElm[node.nodeName.toLowerCase()]) {
-          node = domUtils[methodName](node, true);
-        }
-        if (node) {
-          currentIndex = opt.dir == -1 ? (node.nodeType == 3 ? node.nodeValue : node[browser.ie ? 'innerText' :
-            'textContent']).length : 0;
-        }
-
-      }
-    }
-
-    function findNTextInBlockElm(node, index, str) {
-      var currentIndex = 0,
-        currentNode = node.firstChild,
-        currentNodeLength = 0,
-        result;
-      while (currentNode) {
-        if (currentNode.nodeType == 3) {
-          currentNodeLength = currentNode.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/, '').length;
-          currentIndex += currentNodeLength;
-          if (currentIndex >= index) {
-            return {
-              'node': currentNode,
-              'index': currentNodeLength - (currentIndex - index)
-            }
-          }
-        } else if (!dtd.$empty[currentNode.tagName]) {
-          currentNodeLength = currentNode[browser.ie ? 'innerText' : 'textContent'].replace(
-            /(^[\t\r\n]+)|([\t\r\n]+$)/, '').length
-          currentIndex += currentNodeLength;
-          if (currentIndex >= index) {
-            result = findNTextInBlockElm(currentNode, currentNodeLength - (currentIndex - index), str);
-            if (result) {
-              return result;
-            }
-          }
-        }
-        currentNode = domUtils.getNextDomNode(currentNode);
-
-      }
-    }
-
-    function searchReplace(me, opt) {
-
-      var rng = me.selection.getRange(),
-        startBlockNode,
-        searchStr = opt.searchStr,
-        span = me.document.createElement('span');
-      span.innerHTML = '$$ueditor_searchreplace_key$$';
-
-      rng.shrinkBoundary(true);
-
-      //鍒ゆ柇鏄笉鏄涓�娆¢�変腑
-      if (!rng.collapsed) {
-        rng.select();
-        var rngText = me.selection.getText();
-        if (new RegExp('^' + opt.searchStr + '$', (opt.casesensitive ? '' : 'i')).test(rngText)) {
-          if (opt.replaceStr != undefined) {
-            replaceText(rng, opt.replaceStr);
-            rng.select();
-            return true;
-          } else {
-            rng.collapse(opt.dir == -1)
-          }
-
-        }
-      }
-
-
-      rng.insertNode(span);
-      rng.enlargeToBlockElm(true);
-      startBlockNode = rng.startContainer;
-      var currentIndex = startBlockNode[browser.ie ? 'innerText' : 'textContent'].indexOf(
-        '$$ueditor_searchreplace_key$$');
-      rng.setStartBefore(span);
-      domUtils.remove(span);
-      var result = findTextBlockElm(startBlockNode, currentIndex, opt);
-      if (result) {
-        var rngStart = findNTextInBlockElm(result.node, result.index, searchStr);
-        var rngEnd = findNTextInBlockElm(result.node, result.index + searchStr.length, searchStr);
-        rng.setStart(rngStart.node, rngStart.index).setEnd(rngEnd.node, rngEnd.index);
-
-        if (opt.replaceStr !== undefined) {
-          replaceText(rng, opt.replaceStr)
-        }
-        rng.select();
-        return true;
-      } else {
-        rng.setCursor()
-      }
-
-    }
-
-    function replaceText(rng, str) {
-
-      str = me.document.createTextNode(str);
-      rng.deleteContents().insertNode(str);
-
-    }
-    return {
-      commands: {
-        'searchreplace': {
-          execCommand: function(cmdName, opt) {
-            utils.extend(opt, {
-              all: false,
-              casesensitive: false,
-              dir: 1
-            }, true);
-            var num = 0;
-            if (opt.all) {
-
-              var rng = me.selection.getRange(),
-                first = me.body.firstChild;
-              if (first && first.nodeType == 1) {
-                rng.setStart(first, 0);
-                rng.shrinkBoundary(true);
-              } else if (first.nodeType == 3) {
-                rng.setStartBefore(first)
-              }
-              rng.collapse(true).select(true);
-              if (opt.replaceStr !== undefined) {
-                me.fireEvent('saveScene');
-              }
-              while (searchReplace(this, opt)) {
-                num++;
-              }
-              if (num) {
-                me.fireEvent('saveScene');
-              }
-            } else {
-              if (opt.replaceStr !== undefined) {
-                me.fireEvent('saveScene');
-              }
-              if (searchReplace(this, opt)) {
-                num++
-              }
-              if (num) {
-                me.fireEvent('saveScene');
-              }
-
-            }
-
-            return num;
-          },
-          notNeedUndo: 1
-        }
-      }
-    }
-  });
-
-  // plugins/customstyle.js
-  /**
-   * 鑷畾涔夋牱寮�
-   * @file
-   * @since 1.2.6.1
-   */
-
-  /**
-   * 鏍规嵁config閰嶇疆鏂囦欢閲屸�渃ustomstyle鈥濋�夐」鐨勫�煎鍖归厤鐨勬爣绛炬墽琛屾牱寮忔浛鎹€��
-   * @command customstyle
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * editor.execCommand( 'customstyle' );
-   * ```
-   */
-  UE.plugins['customstyle'] = function() {
-    var me = this;
-    me.setOpt({
-      'customstyle': [{
-          tag: 'h1',
-          name: 'tc',
-          style: 'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'
-        },
-        {
-          tag: 'h1',
-          name: 'tl',
-          style: 'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;'
-        },
-        {
-          tag: 'span',
-          name: 'im',
-          style: 'font-size:16px;font-style:italic;font-weight:bold;line-height:18px;'
-        },
-        {
-          tag: 'span',
-          name: 'hi',
-          style: 'font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;'
-        }
-      ]
-    });
-    me.commands['customstyle'] = {
-      execCommand: function(cmdName, obj) {
-        var me = this,
-          tagName = obj.tag,
-          node = domUtils.findParent(me.selection.getStart(), function(node) {
-            return node.getAttribute('label');
-          }, true),
-          range, bk, tmpObj = {};
-        for (var p in obj) {
-          if (obj[p] !== undefined)
-            tmpObj[p] = obj[p];
-        }
-        delete tmpObj.tag;
-        if (node && node.getAttribute('label') == obj.label) {
-          range = this.selection.getRange();
-          bk = range.createBookmark();
-          if (range.collapsed) {
-            //trace:1732 鍒犳帀鑷畾涔夋爣绛撅紝瑕佹湁p鏉ュ洖濉珯浣�
-            if (dtd.$block[node.tagName]) {
-              var fillNode = me.document.createElement('p');
-              domUtils.moveChild(node, fillNode);
-              node.parentNode.insertBefore(fillNode, node);
-              domUtils.remove(node);
-            } else {
-              domUtils.remove(node, true);
-            }
-
-          } else {
-
-            var common = domUtils.getCommonAncestor(bk.start, bk.end),
-              nodes = domUtils.getElementsByTagName(common, tagName);
-            if (new RegExp(tagName, 'i').test(common.tagName)) {
-              nodes.push(common);
-            }
-            for (var i = 0, ni; ni = nodes[i++];) {
-              if (ni.getAttribute('label') == obj.label) {
-                var ps = domUtils.getPosition(ni, bk.start),
-                  pe = domUtils.getPosition(ni, bk.end);
-                if ((ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS) &&
-                  (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS)
-                )
-                  if (dtd.$block[tagName]) {
-                    var fillNode = me.document.createElement('p');
-                    domUtils.moveChild(ni, fillNode);
-                    ni.parentNode.insertBefore(fillNode, ni);
-                  }
-                domUtils.remove(ni, true);
-              }
-            }
-            node = domUtils.findParent(common, function(node) {
-              return node.getAttribute('label') == obj.label;
-            }, true);
-            if (node) {
-
-              domUtils.remove(node, true);
-
-            }
-
-          }
-          range.moveToBookmark(bk).select();
-        } else {
-          if (dtd.$block[tagName]) {
-            this.execCommand('paragraph', tagName, tmpObj, 'customstyle');
-            range = me.selection.getRange();
-            if (!range.collapsed) {
-              range.collapse();
-              node = domUtils.findParent(me.selection.getStart(), function(node) {
-                return node.getAttribute('label') == obj.label;
-              }, true);
-              var pNode = me.document.createElement('p');
-              domUtils.insertAfter(node, pNode);
-              domUtils.fillNode(me.document, pNode);
-              range.setStart(pNode, 0).setCursor();
-            }
-          } else {
-
-            range = me.selection.getRange();
-            if (range.collapsed) {
-              node = me.document.createElement(tagName);
-              domUtils.setAttributes(node, tmpObj);
-              range.insertNode(node).setStart(node, 0).setCursor();
-
-              return;
-            }
-
-            bk = range.createBookmark();
-            range.applyInlineStyle(tagName, tmpObj).moveToBookmark(bk).select();
-          }
-        }
-
-      },
-      queryCommandValue: function() {
-        var parent = domUtils.filterNodeList(
-          this.selection.getStartElementPath(),
-          function(node) {
-            return node.getAttribute('label')
-          }
-        );
-        return parent ? parent.getAttribute('label') : '';
-      }
-    };
-    //褰撳幓鎺塩ustomstyle鏄紝濡傛灉鏄潡鍏冪礌锛岀敤p浠f浛
-    me.addListener('keyup', function(type, evt) {
-      var keyCode = evt.keyCode || evt.which;
-
-      if (keyCode == 32 || keyCode == 13) {
-        var range = me.selection.getRange();
-        if (range.collapsed) {
-          var node = domUtils.findParent(me.selection.getStart(), function(node) {
-            return node.getAttribute('label');
-          }, true);
-          if (node && dtd.$block[node.tagName] && domUtils.isEmptyNode(node)) {
-            var p = me.document.createElement('p');
-            domUtils.insertAfter(node, p);
-            domUtils.fillNode(me.document, p);
-            domUtils.remove(node);
-            range.setStart(p, 0).setCursor();
-
-
-          }
-        }
-      }
-    });
-  };
-
-  // plugins/catchremoteimage.js
-  ///import core
-  ///commands 杩滅▼鍥剧墖鎶撳彇
-  ///commandsName  catchRemoteImage,catchremoteimageenable
-  ///commandsTitle  杩滅▼鍥剧墖鎶撳彇
-  /**
-   * 杩滅▼鍥剧墖鎶撳彇,褰撳紑鍚湰鎻掍欢鏃舵墍鏈変笉绗﹀悎鏈湴鍩熷悕鐨勫浘鐗囬兘灏嗚鎶撳彇鎴愪负鏈湴鏈嶅姟鍣ㄤ笂鐨勫浘鐗�
-   */
-  UE.plugins['catchremoteimage'] = function() {
-    var me = this,
-      ajax = UE.ajax;
-
-    /* 璁剧疆榛樿鍊� */
-    if (me.options.catchRemoteImageEnable === false) return;
-    me.setOpt({
-      catchRemoteImageEnable: false
-    });
-
-    me.addListener("afterpaste", function() {
-      me.fireEvent("catchRemoteImage");
-    });
-
-    me.addListener("catchRemoteImage", function() {
-
-      var catcherLocalDomain = me.getOpt('catcherLocalDomain'),
-        catcherActionUrl = me.getActionUrl(me.getOpt('catcherActionName')),
-        catcherUrlPrefix = me.getOpt('catcherUrlPrefix'),
-        catcherFieldName = me.getOpt('catcherFieldName');
-
-      var remoteImages = [],
-        imgs = domUtils.getElementsByTagName(me.document, "img"),
-        test = function(src, urls) {
-          if (src.indexOf(location.host) != -1 || /(^\.)|(^\/)/.test(src)) {
-            return true;
-          }
-          if (urls) {
-            for (var j = 0, url; url = urls[j++];) {
-              if (src.indexOf(url) !== -1) {
-                return true;
-              }
-            }
-          }
-          return false;
-        };
-
-      for (var i = 0, ci; ci = imgs[i++];) {
-        if (ci.getAttribute("word_img")) {
-          continue;
-        }
-        var src = ci.getAttribute("_src") || ci.src || "";
-        if (/^(https?|ftp):/i.test(src) && !test(src, catcherLocalDomain)) {
-          remoteImages.push(src);
-        }
-      }
-
-      if (remoteImages.length) {
-        catchremoteimage(remoteImages, {
-          //鎴愬姛鎶撳彇
-          success: function(r) {
-            try {
-              var info = r.state !== undefined ? r : eval("(" + r.responseText + ")");
-            } catch (e) {
-              return;
-            }
-
-            /* 鑾峰彇婧愯矾寰勫拰鏂拌矾寰� */
-            var i, j, ci, cj, oldSrc, newSrc, list = info.list;
-
-            for (i = 0; ci = imgs[i++];) {
-              oldSrc = ci.getAttribute("_src") || ci.src || "";
-              for (j = 0; cj = list[j++];) {
-                if (oldSrc == cj.source && cj.state == "SUCCESS") { //鎶撳彇澶辫触鏃朵笉鍋氭浛鎹㈠鐞�
-                  newSrc = catcherUrlPrefix + cj.url;
-                  domUtils.setAttributes(ci, {
-                    "src": newSrc,
-                    "_src": newSrc
-                  });
-                  break;
-                }
-              }
-            }
-            me.fireEvent('catchremotesuccess')
-          },
-          //鍥炶皟澶辫触锛屾湰娆¤姹傝秴鏃�
-          error: function() {
-            me.fireEvent("catchremoteerror");
-          }
-        });
-      }
-
-      function catchremoteimage(imgs, callbacks) {
-        var params = utils.serializeParam(me.queryCommandValue('serverparam')) || '',
-          url = utils.formatUrl(catcherActionUrl + (catcherActionUrl.indexOf('?') == -1 ? '?' : '&') + params),
-          isJsonp = utils.isCrossDomainUrl(url),
-          opt = {
-            'method': 'POST',
-            'dataType': isJsonp ? 'jsonp' : '',
-            'timeout': 60000, //鍗曚綅锛氭绉掞紝鍥炶皟璇锋眰瓒呮椂璁剧疆銆傜洰鏍囩敤鎴峰鏋滅綉閫熶笉鏄緢蹇殑璇濇澶勫缓璁缃竴涓緝澶х殑鏁板��
-            'onsuccess': callbacks["success"],
-            'onerror': callbacks["error"]
-          };
-        opt[catcherFieldName] = imgs;
-        ajax.request(url, opt);
-      }
-
-    });
-  };
-
-  // plugins/snapscreen.js
-  /**
-   * 鎴睆鎻掍欢锛屼负UEditor鎻愪緵鎻掑叆鏀寔
-   * @file
-   * @since 1.4.2
-   */
-  UE.plugin.register('snapscreen', function() {
-
-    var me = this;
-    var snapplugin;
-
-    function getLocation(url) {
-      var search,
-        a = document.createElement('a'),
-        params = utils.serializeParam(me.queryCommandValue('serverparam')) || '';
-
-      a.href = url;
-      if (browser.ie) {
-        a.href = a.href;
-      }
-
-
-      search = a.search;
-      if (params) {
-        search = search + (search.indexOf('?') == -1 ? '?' : '&') + params;
-        search = search.replace(/[&]+/ig, '&');
-      }
-      return {
-        'port': a.port,
-        'hostname': a.hostname,
-        'path': a.pathname + search || +a.hash
-      }
-    }
-
-    return {
-      commands: {
-        /**
-         * 瀛椾綋鑳屾櫙棰滆壊
-         * @command snapscreen
-         * @method execCommand
-         * @param { String } cmd 鍛戒护瀛楃涓�
-         * @example
-         * ```javascript
-         * editor.execCommand('snapscreen');
-         * ```
-         */
-        'snapscreen': {
-          execCommand: function(cmd) {
-            var url, local, res;
-            var lang = me.getLang("snapScreen_plugin");
-
-            if (!snapplugin) {
-              var container = me.container;
-              var doc = me.container.ownerDocument || me.container.document;
-              snapplugin = doc.createElement("object");
-              try {
-                snapplugin.type = "application/x-pluginbaidusnap";
-              } catch (e) {
-                return;
-              }
-              snapplugin.style.cssText = "position:absolute;left:-9999px;width:0;height:0;";
-              snapplugin.setAttribute("width", "0");
-              snapplugin.setAttribute("height", "0");
-              container.appendChild(snapplugin);
-            }
-
-            function onSuccess(rs) {
-              try {
-                rs = eval("(" + rs + ")");
-                if (rs.state == 'SUCCESS') {
-                  var opt = me.options;
-                  me.execCommand('insertimage', {
-                    src: opt.snapscreenUrlPrefix + rs.url,
-                    _src: opt.snapscreenUrlPrefix + rs.url,
-                    alt: rs.title || '',
-                    floatStyle: opt.snapscreenImgAlign
-                  });
-                } else {
-                  alert(rs.state);
-                }
-              } catch (e) {
-                alert(lang.callBackErrorMsg);
-              }
-            }
-            url = me.getActionUrl(me.getOpt('snapscreenActionName'));
-            local = getLocation(url);
-            setTimeout(function() {
-              try {
-                res = snapplugin.saveSnapshot(local.hostname, local.path, local.port);
-              } catch (e) {
-                me.ui._dialogs['snapscreenDialog'].open();
-                return;
-              }
-
-              onSuccess(res);
-            }, 50);
-          },
-          queryCommandState: function() {
-            return (navigator.userAgent.indexOf("Windows", 0) != -1) ? 0 : -1;
-          }
-        }
-      }
-    }
-  });
-
-
-  // plugins/insertparagraph.js
-  /**
-   * 鎻掑叆娈佃惤
-   * @file
-   * @since 1.2.6.1
-   */
-
-
-  /**
-   * 鎻掑叆娈佃惤
-   * @command insertparagraph
-   * @method execCommand
-   * @param { String } cmd 鍛戒护瀛楃涓�
-   * @example
-   * ```javascript
-   * //editor鏄紪杈戝櫒瀹炰緥
-   * editor.execCommand( 'insertparagraph' );
-   * ```
-   */
-
-  UE.commands['insertparagraph'] = {
-    execCommand: function(cmdName, front) {
-      var me = this,
-        range = me.selection.getRange(),
-        start = range.startContainer,
-        tmpNode;
-      while (start) {
-        if (domUtils.isBody(start)) {
-          break;
-        }
-        tmpNode = start;
-        start = start.parentNode;
-      }
-      if (tmpNode) {
-        var p = me.document.createElement('p');
-        if (front) {
-          tmpNode.parentNode.insertBefore(p, tmpNode)
-        } else {
-          tmpNode.parentNode.insertBefore(p, tmpNode.nextSibling)
-        }
-        domUtils.fillNode(me.document, p);
-        range.setStart(p, 0).setCursor(false, true);
-      }
-    }
-  };
-
-
-
-  // plugins/webapp.js
-  /**
-   * 鐧惧害搴旂敤
-   * @file
-   * @since 1.2.6.1
-   */
-
-
-  /**
-   * 鎻掑叆鐧惧害搴旂敤
-   * @command webapp
-   * @method execCommand
-   * @remind 闇�瑕佺櫨搴PPKey
-   * @remind 鐧惧害搴旂敤涓婚〉锛� <a href="http://app.baidu.com/" target="_blank">http://app.baidu.com/</a>
-   * @param { Object } appOptions 搴旂敤鎵�闇�鐨勫弬鏁伴」锛� 鏀寔鐨刱ey鏈夛細 title=>搴旂敤鏍囬锛� width=>搴旂敤瀹瑰櫒瀹藉害锛�
-   * height=>搴旂敤瀹瑰櫒楂樺害锛宭ogo=>搴旂敤logo锛寀rl=>搴旂敤鍦板潃
-   * @example
-   * ```javascript
-   * //editor鏄紪杈戝櫒瀹炰緥
-   * //鍦ㄧ紪杈戝櫒閲屾彃鍏ヤ竴涓�滄鐗╁ぇ鎴樺兊灏糕�濈殑APP
-   * editor.execCommand( 'webapp' , {
-   *     title: '妞嶇墿澶ф垬鍍靛案',
-   *     width: 560,
-   *     height: 465,
-   *     logo: '搴旂敤灞曠ず鐨勫浘鐗�',
-   *     url: '鐧惧害搴旂敤鐨勫湴鍧�'
-   * } );
-   * ```
-   */
-
-  //UE.plugins['webapp'] = function () {
-  //    var me = this;
-  //    function createInsertStr( obj, toIframe, addParagraph ) {
-  //        return !toIframe ?
-  //                (addParagraph ? '<p>' : '') + '<img title="'+obj.title+'" width="' + obj.width + '" height="' + obj.height + '"' +
-  //                        ' src="' + me.options.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif" style="background:url(' + obj.logo+') no-repeat center center; border:1px solid gray;" class="edui-faked-webapp" _url="' + obj.url + '" />' +
-  //                        (addParagraph ? '</p>' : '')
-  //                :
-  //                '<iframe class="edui-faked-webapp" title="'+obj.title+'" width="' + obj.width + '" height="' + obj.height + '"  scrolling="no" frameborder="0" src="' + obj.url + '" logo_url = '+obj.logo+'></iframe>';
-  //    }
-  //
-  //    function switchImgAndIframe( img2frame ) {
-  //        var tmpdiv,
-  //                nodes = domUtils.getElementsByTagName( me.document, !img2frame ? "iframe" : "img" );
-  //        for ( var i = 0, node; node = nodes[i++]; ) {
-  //            if ( node.className != "edui-faked-webapp" ){
-  //                continue;
-  //            }
-  //            tmpdiv = me.document.createElement( "div" );
-  //            tmpdiv.innerHTML = createInsertStr( img2frame ? {url:node.getAttribute( "_url" ), width:node.width, height:node.height,title:node.title,logo:node.style.backgroundImage.replace("url(","").replace(")","")} : {url:node.getAttribute( "src", 2 ),title:node.title, width:node.width, height:node.height,logo:node.getAttribute("logo_url")}, img2frame ? true : false,false );
-  //            node.parentNode.replaceChild( tmpdiv.firstChild, node );
-  //        }
-  //    }
-  //
-  //    me.addListener( "beforegetcontent", function () {
-  //        switchImgAndIframe( true );
-  //    } );
-  //    me.addListener( 'aftersetcontent', function () {
-  //        switchImgAndIframe( false );
-  //    } );
-  //    me.addListener( 'aftergetcontent', function ( cmdName ) {
-  //        if ( cmdName == 'aftergetcontent' && me.queryCommandState( 'source' ) ){
-  //            return;
-  //        }
-  //        switchImgAndIframe( false );
-  //    } );
-  //
-  //    me.commands['webapp'] = {
-  //        execCommand:function ( cmd, obj ) {
-  //            me.execCommand( "inserthtml", createInsertStr( obj, false,true ) );
-  //        }
-  //    };
-  //};
-
-  UE.plugin.register('webapp', function() {
-    var me = this;
-
-    function createInsertStr(obj, toEmbed) {
-      return !toEmbed ?
-        '<img title="' + obj.title + '" width="' + obj.width + '" height="' + obj.height + '"' +
-        ' src="' + me.options.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif" _logo_url="' + obj.logo +
-        '" style="background:url(' + obj.logo +
-        ') no-repeat center center; border:1px solid gray;" class="edui-faked-webapp" _url="' + obj.url + '" ' +
-        (obj.align && !obj.cssfloat ? 'align="' + obj.align + '"' : '') +
-        (obj.cssfloat ? 'style="float:' + obj.cssfloat + '"' : '') +
-        '/>' :
-        '<iframe class="edui-faked-webapp" title="' + obj.title + '" ' +
-        (obj.align && !obj.cssfloat ? 'align="' + obj.align + '"' : '') +
-        (obj.cssfloat ? 'style="float:' + obj.cssfloat + '"' : '') +
-        'width="' + obj.width + '" height="' + obj.height + '"  scrolling="no" frameborder="0" src="' + obj.url +
-        '" logo_url = "' + obj.logo + '"></iframe>'
-
-    }
-    return {
-      outputRule: function(root) {
-        utils.each(root.getNodesByTagName('img'), function(node) {
-          var html;
-          if (node.getAttr('class') == 'edui-faked-webapp') {
-            html = createInsertStr({
-              title: node.getAttr('title'),
-              'width': node.getAttr('width'),
-              'height': node.getAttr('height'),
-              'align': node.getAttr('align'),
-              'cssfloat': node.getStyle('float'),
-              'url': node.getAttr("_url"),
-              'logo': node.getAttr('_logo_url')
-            }, true);
-            var embed = UE.uNode.createElement(html);
-            node.parentNode.replaceChild(embed, node);
-          }
-        })
-      },
-      inputRule: function(root) {
-        utils.each(root.getNodesByTagName('iframe'), function(node) {
-          if (node.getAttr('class') == 'edui-faked-webapp') {
-            var img = UE.uNode.createElement(createInsertStr({
-              title: node.getAttr('title'),
-              'width': node.getAttr('width'),
-              'height': node.getAttr('height'),
-              'align': node.getAttr('align'),
-              'cssfloat': node.getStyle('float'),
-              'url': node.getAttr("src"),
-              'logo': node.getAttr('logo_url')
-            }));
-            node.parentNode.replaceChild(img, node);
-          }
-        })
-
-      },
-      commands: {
-        /**
-         * 鎻掑叆鐧惧害搴旂敤
-         * @command webapp
-         * @method execCommand
-         * @remind 闇�瑕佺櫨搴PPKey
-         * @remind 鐧惧害搴旂敤涓婚〉锛� <a href="http://app.baidu.com/" target="_blank">http://app.baidu.com/</a>
-         * @param { Object } appOptions 搴旂敤鎵�闇�鐨勫弬鏁伴」锛� 鏀寔鐨刱ey鏈夛細 title=>搴旂敤鏍囬锛� width=>搴旂敤瀹瑰櫒瀹藉害锛�
-         * height=>搴旂敤瀹瑰櫒楂樺害锛宭ogo=>搴旂敤logo锛寀rl=>搴旂敤鍦板潃
-         * @example
-         * ```javascript
-         * //editor鏄紪杈戝櫒瀹炰緥
-         * //鍦ㄧ紪杈戝櫒閲屾彃鍏ヤ竴涓�滄鐗╁ぇ鎴樺兊灏糕�濈殑APP
-         * editor.execCommand( 'webapp' , {
-         *     title: '妞嶇墿澶ф垬鍍靛案',
-         *     width: 560,
-         *     height: 465,
-         *     logo: '搴旂敤灞曠ず鐨勫浘鐗�',
-         *     url: '鐧惧害搴旂敤鐨勫湴鍧�'
-         * } );
-         * ```
-         */
-        'webapp': {
-          execCommand: function(cmd, obj) {
-
-            var me = this,
-              str = createInsertStr(utils.extend(obj, {
-                align: 'none'
-              }), false);
-            me.execCommand("inserthtml", str);
-          },
-          queryCommandState: function() {
-            var me = this,
-              img = me.selection.getRange().getClosedNode(),
-              flag = img && (img.className == "edui-faked-webapp");
-            return flag ? 1 : 0;
-          }
-        }
-      }
-    }
-  });
-
-  // plugins/template.js
-  ///import core
-  ///import plugins\inserthtml.js
-  ///import plugins\cleardoc.js
-  ///commands 妯℃澘
-  ///commandsName  template
-  ///commandsTitle  妯℃澘
-  ///commandsDialog  dialogs\template
-  UE.plugins['template'] = function() {
-    UE.commands['template'] = {
-      execCommand: function(cmd, obj) {
-        obj.html && this.execCommand("inserthtml", obj.html);
-      }
-    };
-    this.addListener("click", function(type, evt) {
-      var el = evt.target || evt.srcElement,
-        range = this.selection.getRange();
-      var tnode = domUtils.findParent(el, function(node) {
-        if (node.className && domUtils.hasClass(node, "ue_t")) {
-          return node;
-        }
-      }, true);
-      tnode && range.selectNode(tnode).shrinkBoundary().select();
-    });
-    this.addListener("keydown", function(type, evt) {
-      var range = this.selection.getRange();
-      if (!range.collapsed) {
-        if (!evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {
-          var tnode = domUtils.findParent(range.startContainer, function(node) {
-            if (node.className && domUtils.hasClass(node, "ue_t")) {
-              return node;
-            }
-          }, true);
-          if (tnode) {
-            domUtils.removeClasses(tnode, ["ue_t"]);
-          }
-        }
-      }
-    });
-  };
-
-
-  // plugins/music.js
-  /**
-   * 鎻掑叆闊充箰鍛戒护
-   * @file
-   */
-  UE.plugin.register('music', function() {
-    var me = this;
-
-    function creatInsertStr(url, width, height, align, cssfloat, toEmbed) {
-      return !toEmbed ?
-        '<img ' +
-        (align && !cssfloat ? 'align="' + align + '"' : '') +
-        (cssfloat ? 'style="float:' + cssfloat + '"' : '') +
-        ' width="' + width + '" height="' + height + '" _url="' + url + '" class="edui-faked-music"' +
-        ' src="' + me.options.langPath + me.options.lang + '/images/music.png" />' :
-        '<embed type="application/x-shockwave-flash" class="edui-faked-music" pluginspage="http://www.macromedia.com/go/getflashplayer"' +
-        ' src="' + url + '" width="' + width + '" height="' + height + '" ' + (align && !cssfloat ? 'align="' +
-          align + '"' : '') +
-        (cssfloat ? 'style="float:' + cssfloat + '"' : '') +
-        ' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >';
-    }
-    return {
-      outputRule: function(root) {
-        utils.each(root.getNodesByTagName('img'), function(node) {
-          var html;
-          if (node.getAttr('class') == 'edui-faked-music') {
-            var cssfloat = node.getStyle('float');
-            var align = node.getAttr('align');
-            html = creatInsertStr(node.getAttr("_url"), node.getAttr('width'), node.getAttr('height'),
-              align, cssfloat, true);
-            var embed = UE.uNode.createElement(html);
-            node.parentNode.replaceChild(embed, node);
-          }
-        })
-      },
-      inputRule: function(root) {
-        utils.each(root.getNodesByTagName('embed'), function(node) {
-          if (node.getAttr('class') == 'edui-faked-music') {
-            var cssfloat = node.getStyle('float');
-            var align = node.getAttr('align');
-            html = creatInsertStr(node.getAttr("src"), node.getAttr('width'), node.getAttr('height'), align,
-              cssfloat, false);
-            var img = UE.uNode.createElement(html);
-            node.parentNode.replaceChild(img, node);
-          }
-        })
-
-      },
-      commands: {
-        /**
-         * 鎻掑叆闊充箰
-         * @command music
-         * @method execCommand
-         * @param { Object } musicOptions 鎻掑叆闊充箰鐨勫弬鏁伴」锛� 鏀寔鐨刱ey鏈夛細 url=>闊充箰鍦板潃锛�
-         * width=>闊充箰瀹瑰櫒瀹藉害锛沨eight=>闊充箰瀹瑰櫒楂樺害锛沘lign=>闊充箰鏂囦欢鐨勫榻愭柟寮忥紝 鍙�夊�兼湁: left, center, right, none
-         * @example
-         * ```javascript
-         * //editor鏄紪杈戝櫒瀹炰緥
-         * //鍦ㄧ紪杈戝櫒閲屾彃鍏ヤ竴涓�滄鐗╁ぇ鎴樺兊灏糕�濈殑APP
-         * editor.execCommand( 'music' , {
-         *     width: 400,
-         *     height: 95,
-         *     align: "center",
-         *     url: "闊充箰鍦板潃"
-         * } );
-         * ```
-         */
-        'music': {
-          execCommand: function(cmd, musicObj) {
-            var me = this,
-              str = creatInsertStr(musicObj.url, musicObj.width || 400, musicObj.height || 95, "none", false);
-            me.execCommand("inserthtml", str);
-          },
-          queryCommandState: function() {
-            var me = this,
-              img = me.selection.getRange().getClosedNode(),
-              flag = img && (img.className == "edui-faked-music");
-            return flag ? 1 : 0;
-          }
-        }
-      }
-    }
-  });
-
-  // plugins/autoupload.js
-  /**
-   * @description
-   * 1.鎷栨斁鏂囦欢鍒扮紪杈戝尯鍩燂紝鑷姩涓婁紶骞舵彃鍏ュ埌閫夊尯
-   * 2.鎻掑叆绮樿创鏉跨殑鍥剧墖锛岃嚜鍔ㄤ笂浼犲苟鎻掑叆鍒伴�夊尯
-   * @author Jinqn
-   * @date 2013-10-14
-   */
-  UE.plugin.register('autoupload', function() {
-
-    function sendAndInsertFile(file, editor) {
-      var me = editor;
-      //妯℃嫙鏁版嵁
-      var fieldName, urlPrefix, maxSize, allowFiles, actionUrl,
-        loadingHtml, errorHandler, successHandler,
-        filetype = /image\/\w+/i.test(file.type) ? 'image' : 'file',
-        loadingId = 'loading_' + (+new Date()).toString(36);
-
-      fieldName = me.getOpt(filetype + 'FieldName');
-      urlPrefix = me.getOpt(filetype + 'UrlPrefix');
-      maxSize = me.getOpt(filetype + 'MaxSize');
-      allowFiles = me.getOpt(filetype + 'AllowFiles');
-      actionUrl = me.getActionUrl(me.getOpt(filetype + 'ActionName'));
-      errorHandler = function(title) {
-        var loader = me.document.getElementById(loadingId);
-        loader && domUtils.remove(loader);
-        me.fireEvent('showmessage', {
-          'id': loadingId,
-          'content': title,
-          'type': 'error',
-          'timeout': 4000
-        });
-      };
-
-      if (filetype == 'image') {
-        loadingHtml = '<img class="loadingclass" id="' + loadingId + '" src="' +
-          me.options.themePath + me.options.theme +
-          '/images/spacer.gif" title="' + (me.getLang('autoupload.loading') || '') + '" >';
-        successHandler = function(data) {
-          var link = urlPrefix + data.url,
-            loader = me.document.getElementById(loadingId);
-          if (loader) {
-            loader.setAttribute('src', link);
-            loader.setAttribute('_src', link);
-            loader.setAttribute('title', data.title || '');
-            loader.setAttribute('alt', data.original || '');
-            loader.removeAttribute('id');
-            domUtils.removeClasses(loader, 'loadingclass');
-          }
-        };
-      } else {
-        loadingHtml = '<p>' +
-          '<img class="loadingclass" id="' + loadingId + '" src="' +
-          me.options.themePath + me.options.theme +
-          '/images/spacer.gif" title="' + (me.getLang('autoupload.loading') || '') + '" >' +
-          '</p>';
-        successHandler = function(data) {
-          var link = urlPrefix + data.url,
-            loader = me.document.getElementById(loadingId);
-
-          var rng = me.selection.getRange(),
-            bk = rng.createBookmark();
-          rng.selectNode(loader).select();
-          me.execCommand('insertfile', {
-            'url': link
-          });
-          rng.moveToBookmark(bk).select();
-        };
-      }
-
-      /* 鎻掑叆loading鐨勫崰浣嶇 */
-      me.execCommand('inserthtml', loadingHtml);
-
-      /* 鍒ゆ柇鍚庣閰嶇疆鏄惁娌℃湁鍔犺浇鎴愬姛 */
-      if (!me.getOpt(filetype + 'ActionName')) {
-        errorHandler(me.getLang('autoupload.errorLoadConfig'));
-        return;
-      }
-      /* 鍒ゆ柇鏂囦欢澶у皬鏄惁瓒呭嚭闄愬埗 */
-      if (file.size > maxSize) {
-        errorHandler(me.getLang('autoupload.exceedSizeError'));
-        return;
-      }
-      /* 鍒ゆ柇鏂囦欢鏍煎紡鏄惁瓒呭嚭鍏佽 */
-      var fileext = file.name ? file.name.substr(file.name.lastIndexOf('.')) : '';
-      if ((fileext && filetype != 'image') || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() +
-          '.') == -1)) {
-        errorHandler(me.getLang('autoupload.exceedTypeError'));
-        return;
-      }
-
-      /* 鍒涘缓Ajax骞舵彁浜� */
-      var xhr = new XMLHttpRequest(),
-        fd = new FormData(),
-        params = utils.serializeParam(me.queryCommandValue('serverparam')) || '',
-        url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?' : '&') + params);
-
-      fd.append(fieldName, file, file.name || ('blob.' + file.type.substr('image/'.length)));
-      fd.append('type', 'ajax');
-      xhr.open("post", url, true);
-      xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
-      xhr.addEventListener('load', function(e) {
-        try {
-          var json = (new Function("return " + utils.trim(e.target.response)))();
-          if (json.state == 'SUCCESS' && json.url) {
-            successHandler(json);
-          } else {
-            errorHandler(json.state);
-          }
-        } catch (er) {
-          errorHandler(me.getLang('autoupload.loadError'));
-        }
-      });
-      xhr.send(fd);
-    }
-
-    function getPasteImage(e) {
-      return e.clipboardData && e.clipboardData.items && e.clipboardData.items.length == 1 && /^image\//.test(e.clipboardData
-        .items[0].type) ? e.clipboardData.items : null;
-    }
-
-    function getDropImage(e) {
-      return e.dataTransfer && e.dataTransfer.files ? e.dataTransfer.files : null;
-    }
-
-    return {
-      outputRule: function(root) {
-        utils.each(root.getNodesByTagName('img'), function(n) {
-          if (/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr('class'))) {
-            n.parentNode.removeChild(n);
-          }
-        });
-        utils.each(root.getNodesByTagName('p'), function(n) {
-          if (/\bloadpara\b/.test(n.getAttr('class'))) {
-            n.parentNode.removeChild(n);
-          }
-        });
-      },
-      bindEvents: {
-        //鎻掑叆绮樿创鏉跨殑鍥剧墖锛屾嫋鏀炬彃鍏ュ浘鐗�
-        'ready': function(e) {
-          var me = this;
-          if (window.FormData && window.FileReader) {
-            domUtils.on(me.body, 'paste drop', function(e) {
-              var hasImg = false,
-                items;
-              //鑾峰彇绮樿创鏉挎枃浠跺垪琛ㄦ垨鑰呮嫋鏀炬枃浠跺垪琛�
-              items = e.type == 'paste' ? getPasteImage(e) : getDropImage(e);
-              if (items) {
-                var len = items.length,
-                  file;
-                while (len--) {
-                  file = items[len];
-                  if (file.getAsFile) file = file.getAsFile();
-                  if (file && file.size > 0) {
-                    sendAndInsertFile(file, me);
-                    hasImg = true;
-                  }
-                }
-                hasImg && e.preventDefault();
-              }
-
-            });
-            //鍙栨秷鎷栨斁鍥剧墖鏃跺嚭鐜扮殑鏂囧瓧鍏夋爣浣嶇疆鎻愮ず
-            domUtils.on(me.body, 'dragover', function(e) {
-              if (e.dataTransfer.types[0] == 'Files') {
-                e.preventDefault();
-              }
-            });
-
-            //璁剧疆loading鐨勬牱寮�
-            utils.cssRule('loading',
-              '.loadingclass{display:inline-block;cursor:default;background: url(\'' +
-              this.options.themePath +
-              this.options.theme +
-              '/images/loading.gif\') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n' +
-              '.loaderrorclass{display:inline-block;cursor:default;background: url(\'' +
-              this.options.themePath +
-              this.options.theme +
-              '/images/loaderror.png\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;' +
-              '}',
-              this.document);
-          }
-        }
-      }
-    }
-  });
-
-  // plugins/autosave.js
-  UE.plugin.register('autosave', function() {
-
-    var me = this,
-      //鏃犻檺寰幆淇濇姢
-      lastSaveTime = new Date(),
-      //鏈�灏忎繚瀛橀棿闅旀椂闂�
-      MIN_TIME = 20,
-      //auto save key
-      saveKey = null;
-
-    function save(editor) {
-
-      var saveData;
-
-      if (new Date() - lastSaveTime < MIN_TIME) {
-        return;
-      }
-
-      if (!editor.hasContents()) {
-        //杩欓噷涓嶈兘璋冪敤鍛戒护鏉ュ垹闄わ紝 浼氶�犳垚浜嬩欢姝诲惊鐜�
-        saveKey && me.removePreferences(saveKey);
-        return;
-      }
-
-      lastSaveTime = new Date();
-
-      editor._saveFlag = null;
-
-      saveData = me.body.innerHTML;
-
-      if (editor.fireEvent("beforeautosave", {
-          content: saveData
-        }) === false) {
-        return;
-      }
-
-      me.setPreferences(saveKey, saveData);
-
-      editor.fireEvent("afterautosave", {
-        content: saveData
-      });
-
-    }
-
-    return {
-      defaultOptions: {
-        //榛樿闂撮殧鏃堕棿
-        saveInterval: 500,
-        enableAutoSave: true // HaoChuan9421
-      },
-      bindEvents: {
-        'ready': function() {
-
-          var _suffix = "-drafts-data",
-            key = null;
-
-          if (me.key) {
-            key = me.key + _suffix;
-          } else {
-            key = (me.container.parentNode.id || 'ue-common') + _suffix;
-          }
-
-          //椤甸潰鍦板潃+缂栬緫鍣↖D 淇濇寔鍞竴
-          saveKey = (location.protocol + location.host + location.pathname).replace(/[.:\/]/g, '_') + key;
-
-        },
-
-        'contentchange': function() {
-          // HaoChuan9421
-          if (!me.getOpt('enableAutoSave')) {
-            return;
-          }
-
-          if (!saveKey) {
-            return;
-          }
-
-          if (me._saveFlag) {
-            window.clearTimeout(me._saveFlag);
-          }
-
-          if (me.options.saveInterval > 0) {
-
-            me._saveFlag = window.setTimeout(function() {
-
-              save(me);
-
-            }, me.options.saveInterval);
-
-          } else {
-
-            save(me);
-
-          }
-
-
-        }
-      },
-      commands: {
-        'clearlocaldata': {
-          execCommand: function(cmd, name) {
-            if (saveKey && me.getPreferences(saveKey)) {
-              me.removePreferences(saveKey)
-            }
-          },
-          notNeedUndo: true,
-          ignoreContentChange: true
-        },
-
-        'getlocaldata': {
-          execCommand: function(cmd, name) {
-            return saveKey ? me.getPreferences(saveKey) || '' : '';
-          },
-          notNeedUndo: true,
-          ignoreContentChange: true
-        },
-
-        'drafts': {
-          execCommand: function(cmd, name) {
-            if (saveKey) {
-              me.body.innerHTML = me.getPreferences(saveKey) || '<p>' + domUtils.fillHtml + '</p>';
-              me.focus(true);
-            }
-          },
-          queryCommandState: function() {
-            return saveKey ? (me.getPreferences(saveKey) === null ? -1 : 0) : -1;
-          },
-          notNeedUndo: true,
-          ignoreContentChange: true
-        }
-      }
-    }
-
-  });
-
-  // plugins/charts.js
-  UE.plugin.register('charts', function() {
-
-    var me = this;
-
-    return {
-      bindEvents: {
-        'chartserror': function() {}
-      },
-      commands: {
-        'charts': {
-          execCommand: function(cmd, data) {
-
-            var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table',
-                true),
-              flagText = [],
-              config = {};
-
-            if (!tableNode) {
-              return false;
-            }
-
-            if (!validData(tableNode)) {
-              me.fireEvent("chartserror");
-              return false;
-            }
-
-            config.title = data.title || '';
-            config.subTitle = data.subTitle || '';
-            config.xTitle = data.xTitle || '';
-            config.yTitle = data.yTitle || '';
-            config.suffix = data.suffix || '';
-            config.tip = data.tip || '';
-            //鏁版嵁瀵归綈鏂瑰紡
-            config.dataFormat = data.tableDataFormat || '';
-            //鍥捐〃绫诲瀷
-            config.chartType = data.chartType || 0;
-
-            for (var key in config) {
-
-              if (!config.hasOwnProperty(key)) {
-                continue;
-              }
-
-              flagText.push(key + ":" + config[key]);
-
-            }
-
-            tableNode.setAttribute("data-chart", flagText.join(";"));
-            domUtils.addClass(tableNode, "edui-charts-table");
-
-
-
-          },
-          queryCommandState: function(cmd, name) {
-
-            var tableNode = domUtils.findParentByTagName(this.selection.getRange().startContainer, 'table',
-              true);
-            return tableNode && validData(tableNode) ? 0 : -1;
-
-          }
-        }
-      },
-      inputRule: function(root) {
-        utils.each(root.getNodesByTagName('table'), function(tableNode) {
-
-          if (tableNode.getAttr("data-chart") !== undefined) {
-            tableNode.setAttr("style");
-          }
-
-        })
-
-      },
-      outputRule: function(root) {
-        utils.each(root.getNodesByTagName('table'), function(tableNode) {
-
-          if (tableNode.getAttr("data-chart") !== undefined) {
-            tableNode.setAttr("style", "display: none;");
-          }
-
-        })
-
-      }
-    }
-
-    function validData(table) {
-
-      var firstRows = null,
-        cellCount = 0;
-
-      //琛屾暟涓嶅
-      if (table.rows.length < 2) {
-        return false;
-      }
-
-      //鍒楁暟涓嶅
-      if (table.rows[0].cells.length < 2) {
-        return false;
-      }
-
-      //绗竴琛屾墍鏈塩ell蹇呴』鏄痶h
-      firstRows = table.rows[0].cells;
-      cellCount = firstRows.length;
-
-      for (var i = 0, cell; cell = firstRows[i]; i++) {
-
-        if (cell.tagName.toLowerCase() !== 'th') {
-          return false;
-        }
-
-      }
-
-      for (var i = 1, row; row = table.rows[i]; i++) {
-
-        //姣忚鍗曞厓鏍兼暟涓嶅尮閰嶏紝 杩斿洖false
-        if (row.cells.length != cellCount) {
-          return false;
-        }
-
-        //绗竴鍒椾笉鏄痶h涔熻繑鍥瀎alse
-        if (row.cells[0].tagName.toLowerCase() !== 'th') {
-          return false;
-        }
-
-        for (var j = 1, cell; cell = row.cells[j]; j++) {
-
-          var value = utils.trim((cell.innerText || cell.textContent || ''));
-
-          value = value.replace(new RegExp(UE.dom.domUtils.fillChar, 'g'), '').replace(/^\s+|\s+$/g, '');
-
-          //蹇呴』鏄暟瀛�
-          if (!/^\d*\.?\d+$/.test(value)) {
-            return false;
-          }
-
-        }
-
-      }
-
-      return true;
-
-    }
-
-  });
-
-  // plugins/section.js
-  /**
-   * 鐩綍澶х翰鏀寔鎻掍欢
-   * @file
-   * @since 1.3.0
-   */
-  UE.plugin.register('section', function() {
-    /* 鐩綍鑺傜偣瀵硅薄 */
-    function Section(option) {
-      this.tag = '';
-      this.level = -1,
-        this.dom = null;
-      this.nextSection = null;
-      this.previousSection = null;
-      this.parentSection = null;
-      this.startAddress = [];
-      this.endAddress = [];
-      this.children = [];
-    }
-
-    function getSection(option) {
-      var section = new Section();
-      return utils.extend(section, option);
-    }
-
-    function getNodeFromAddress(startAddress, root) {
-      var current = root;
-      for (var i = 0; i < startAddress.length; i++) {
-        if (!current.childNodes) return null;
-        current = current.childNodes[startAddress[i]];
-      }
-      return current;
-    }
-
-    var me = this;
-
-    return {
-      bindMultiEvents: {
-        type: 'aftersetcontent afterscencerestore',
-        handler: function() {
-          me.fireEvent('updateSections');
-        }
-      },
-      bindEvents: {
-        /* 鍒濆鍖栥�佹嫋鎷姐�佺矘璐淬�佹墽琛宻etcontent涔嬪悗 */
-        'ready': function() {
-          me.fireEvent('updateSections');
-          domUtils.on(me.body, 'drop paste', function() {
-            me.fireEvent('updateSections');
-          });
-        },
-        /* 鎵цparagraph鍛戒护涔嬪悗 */
-        'afterexeccommand': function(type, cmd) {
-          if (cmd == 'paragraph') {
-            me.fireEvent('updateSections');
-          }
-        },
-        /* 閮ㄥ垎閿洏鎿嶄綔锛岃Е鍙憉pdateSections浜嬩欢 */
-        'keyup': function(type, e) {
-          var me = this,
-            range = me.selection.getRange();
-          if (range.collapsed != true) {
-            me.fireEvent('updateSections');
-          } else {
-            var keyCode = e.keyCode || e.which;
-            if (keyCode == 13 || keyCode == 8 || keyCode == 46) {
-              me.fireEvent('updateSections');
-            }
-          }
-        }
-      },
-      commands: {
-        'getsections': {
-          execCommand: function(cmd, levels) {
-            var levelFn = levels || ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
-
-            for (var i = 0; i < levelFn.length; i++) {
-              if (typeof levelFn[i] == 'string') {
-                levelFn[i] = function(fn) {
-                  return function(node) {
-                    return node.tagName == fn.toUpperCase()
-                  };
-                }(levelFn[i]);
-              } else if (typeof levelFn[i] != 'function') {
-                levelFn[i] = function(node) {
-                  return null;
-                }
-              }
-            }
-
-            function getSectionLevel(node) {
-              for (var i = 0; i < levelFn.length; i++) {
-                if (levelFn[i](node)) return i;
-              }
-              return -1;
-            }
-
-            var me = this,
-              Directory = getSection({
-                'level': -1,
-                'title': 'root'
-              }),
-              previous = Directory;
-
-            function traversal(node, Directory) {
-              var level,
-                tmpSection = null,
-                parent,
-                child,
-                children = node.childNodes;
-              for (var i = 0, len = children.length; i < len; i++) {
-                child = children[i];
-                level = getSectionLevel(child);
-                if (level >= 0) {
-                  var address = me.selection.getRange().selectNode(child).createAddress(true).startAddress,
-                    current = getSection({
-                      'tag': child.tagName,
-                      'title': child.innerText || child.textContent || '',
-                      'level': level,
-                      'dom': child,
-                      'startAddress': utils.clone(address, []),
-                      'endAddress': utils.clone(address, []),
-                      'children': []
-                    });
-                  previous.nextSection = current;
-                  current.previousSection = previous;
-                  parent = previous;
-                  while (level <= parent.level) {
-                    parent = parent.parentSection;
-                  }
-                  current.parentSection = parent;
-                  parent.children.push(current);
-                  tmpSection = previous = current;
-                } else {
-                  child.nodeType === 1 && traversal(child, Directory);
-                  tmpSection && tmpSection.endAddress[tmpSection.endAddress.length - 1]++;
-                }
-              }
-            }
-            traversal(me.body, Directory);
-            return Directory;
-          },
-          notNeedUndo: true
-        },
-        'movesection': {
-          execCommand: function(cmd, sourceSection, targetSection, isAfter) {
-
-            var me = this,
-              targetAddress,
-              target;
-
-            if (!sourceSection || !targetSection || targetSection.level == -1) return;
-
-            targetAddress = isAfter ? targetSection.endAddress : targetSection.startAddress;
-            target = getNodeFromAddress(targetAddress, me.body);
-
-            /* 鍒ゆ柇鐩爣鍦板潃鏄惁琚簮绔犺妭鍖呭惈 */
-            if (!targetAddress || !target || isContainsAddress(sourceSection.startAddress, sourceSection.endAddress,
-                targetAddress)) return;
-
-            var startNode = getNodeFromAddress(sourceSection.startAddress, me.body),
-              endNode = getNodeFromAddress(sourceSection.endAddress, me.body),
-              current,
-              nextNode;
-
-            if (isAfter) {
-              current = endNode;
-              while (current && !(domUtils.getPosition(startNode, current) & domUtils.POSITION_FOLLOWING)) {
-                nextNode = current.previousSibling;
-                domUtils.insertAfter(target, current);
-                if (current == startNode) break;
-                current = nextNode;
-              }
-            } else {
-              current = startNode;
-              while (current && !(domUtils.getPosition(current, endNode) & domUtils.POSITION_FOLLOWING)) {
-                nextNode = current.nextSibling;
-                target.parentNode.insertBefore(current, target);
-                if (current == endNode) break;
-                current = nextNode;
-              }
-            }
-
-            me.fireEvent('updateSections');
-
-            /* 鑾峰彇鍦板潃鐨勫寘鍚叧绯� */
-            function isContainsAddress(startAddress, endAddress, addressTarget) {
-              var isAfterStartAddress = false,
-                isBeforeEndAddress = false;
-              for (var i = 0; i < startAddress.length; i++) {
-                if (i >= addressTarget.length) break;
-                if (addressTarget[i] > startAddress[i]) {
-                  isAfterStartAddress = true;
-                  break;
-                } else if (addressTarget[i] < startAddress[i]) {
-                  break;
-                }
-              }
-              for (var i = 0; i < endAddress.length; i++) {
-                if (i >= addressTarget.length) break;
-                if (addressTarget[i] < startAddress[i]) {
-                  isBeforeEndAddress = true;
-                  break;
-                } else if (addressTarget[i] > startAddress[i]) {
-                  break;
-                }
-              }
-              return isAfterStartAddress && isBeforeEndAddress;
-            }
-          }
-        },
-        'deletesection': {
-          execCommand: function(cmd, section, keepChildren) {
-            var me = this;
-
-            if (!section) return;
-
-            function getNodeFromAddress(startAddress) {
-              var current = me.body;
-              for (var i = 0; i < startAddress.length; i++) {
-                if (!current.childNodes) return null;
-                current = current.childNodes[startAddress[i]];
-              }
-              return current;
-            }
-
-            var startNode = getNodeFromAddress(section.startAddress),
-              endNode = getNodeFromAddress(section.endAddress),
-              current = startNode,
-              nextNode;
-
-            if (!keepChildren) {
-              while (current && domUtils.inDoc(endNode, me.document) && !(domUtils.getPosition(current, endNode) &
-                  domUtils.POSITION_FOLLOWING)) {
-                nextNode = current.nextSibling;
-                domUtils.remove(current);
-                current = nextNode;
-              }
-            } else {
-              domUtils.remove(current);
-            }
-
-            me.fireEvent('updateSections');
-          }
-        },
-        'selectsection': {
-          execCommand: function(cmd, section) {
-            if (!section && !section.dom) return false;
-            var me = this,
-              range = me.selection.getRange(),
-              address = {
-                'startAddress': utils.clone(section.startAddress, []),
-                'endAddress': utils.clone(section.endAddress, [])
-              };
-            address.endAddress[address.endAddress.length - 1]++;
-            range.moveToAddress(address).select().scrollToView();
-            return true;
-          },
-          notNeedUndo: true
-        },
-        'scrolltosection': {
-          execCommand: function(cmd, section) {
-            if (!section && !section.dom) return false;
-            var me = this,
-              range = me.selection.getRange(),
-              address = {
-                'startAddress': section.startAddress,
-                'endAddress': section.endAddress
-              };
-            address.endAddress[address.endAddress.length - 1]++;
-            range.moveToAddress(address).scrollToView();
-            return true;
-          },
-          notNeedUndo: true
-        }
-      }
-    }
-  });
-
-  // plugins/simpleupload.js
-  /**
-   * @description
-   * 绠�鍗曚笂浼�:鐐瑰嚮鎸夐挳,鐩存帴閫夋嫨鏂囦欢涓婁紶銆�
-   * 鍘� UEditor 浣滆�呬娇鐢ㄤ簡 form 琛ㄥ崟 + iframe 鐨勬柟寮忎笂浼�
-   * 浣嗙敱浜庡悓婧愮瓥鐣ョ殑闄愬埗锛岀埗椤甸潰鏃犳硶璁块棶璺ㄥ煙鐨� iframe 鍐呭
-   * 瀵艰嚧鏃犳硶鑾峰彇鎺ュ彛杩斿洖鐨勬暟鎹紝浣垮緱鍗曞浘涓婁紶鏃犳硶鍦ㄨ法鍩熺殑鎯呭喌涓嬩娇鐢�
-   * 杩欓噷鏀逛负鏅�氱殑XHR涓婁紶锛屽吋瀹瑰埌IE10+
-   * @author HaoChuan9421 <hc199421@gmail.com>
-   * @date 2018-12-20
-   */
-  UE.plugin.register('simpleupload', function() {
-    var me = this,
-      containerBtn,
-      timestrap = (+new Date()).toString(36);
-
-    function initUploadBtn() {
-      var w = containerBtn.offsetWidth || 20,
-        h = containerBtn.offsetHeight || 20,
-        btnStyle = 'display:block;width:' + w + 'px;height:' + h +
-        'px;overflow:hidden;border:0;margin:0;padding:0;position:absolute;top:0;left:0;filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity: 0;opacity: 0;cursor:pointer;';
-
-      var form = document.createElement('form');
-      var input = document.createElement('input');
-      form.id = 'edui_form_' + timestrap;
-      form.enctype = 'multipart/form-data';
-      form.style = btnStyle;
-      input.id = 'edui_input_' + timestrap;
-      input.type = 'file'
-      input.accept = 'image/*';
-      input.name = me.options.imageFieldName;
-      input.style = btnStyle;
-      form.appendChild(input);
-      containerBtn.appendChild(form);
-
-      input.addEventListener('change', function(event) {
-        if (!input.value) return;
-        var loadingId = 'loading_' + (+new Date()).toString(36);
-        var imageActionUrl = me.getActionUrl(me.getOpt('imageActionName'));
-        var params = utils.serializeParam(me.queryCommandValue('serverparam')) || '';
-        var action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?' : '&') +
-          params);
-        var allowFiles = me.getOpt('imageAllowFiles');
-        me.focus();
-        me.execCommand('inserthtml', '<img class="loadingclass" id="' + loadingId + '" src="' + me.options.themePath +
-          me.options.theme + '/images/spacer.gif" title="' + (me.getLang('simpleupload.loading') || '') +
-          '" >');
-
-        function showErrorLoader(title) {
-          if (loadingId) {
-            var loader = me.document.getElementById(loadingId);
-            loader && domUtils.remove(loader);
-            me.fireEvent('showmessage', {
-              'id': loadingId,
-              'content': title,
-              'type': 'error',
-              'timeout': 4000
-            });
-          }
-        }
-        /* 鍒ゆ柇鍚庣閰嶇疆鏄惁娌℃湁鍔犺浇鎴愬姛 */
-        if (!me.getOpt('imageActionName')) {
-          showErrorLoader(me.getLang('autoupload.errorLoadConfig'));
-          return;
-        }
-        // 鍒ゆ柇鏂囦欢鏍煎紡鏄惁閿欒
-        var filename = input.value,
-          fileext = filename ? filename.substr(filename.lastIndexOf('.')) : '';
-        if (!fileext || (allowFiles && (allowFiles.join('') + '.').indexOf(fileext.toLowerCase() + '.') == -1)) {
-          showErrorLoader(me.getLang('simpleupload.exceedTypeError'));
-          return;
-        }
-
-        var xhr = new XMLHttpRequest()
-        xhr.open('post', action, true)
-        if (me.options.headers && Object.prototype.toString.apply(me.options.headers) === "[object Object]") {
-          for (var key in me.options.headers) {
-            xhr.setRequestHeader(key, me.options.headers[key])
-          }
-        }
-        xhr.onload = function() {
-          if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304) {
-            var res = JSON.parse(xhr.responseText)
-            var link = me.options.imageUrlPrefix + res.url;
-
-            if (res.state == 'SUCCESS' && res.url) {
-              loader = me.document.getElementById(loadingId);
-              loader.setAttribute('src', link);
-              loader.setAttribute('_src', link);
-              loader.setAttribute('title', res.title || '');
-              loader.setAttribute('alt', res.original || '');
-              loader.removeAttribute('id');
-              domUtils.removeClasses(loader, 'loadingclass');
-              me.fireEvent("contentchange");
-            } else {
-              showErrorLoader(res.state);
-            }
-          } else {
-            showErrorLoader(me.getLang('simpleupload.loadError'));
-          }
-        };
-        xhr.onerror = function() {
-          showErrorLoader(me.getLang('simpleupload.loadError'));
-        };
-        xhr.send(new FormData(form));
-        form.reset();
-      })
-    }
-
-    return {
-      bindEvents: {
-        'ready': function() {
-          //璁剧疆loading鐨勬牱寮�
-          utils.cssRule('loading',
-            '.loadingclass{display:inline-block;cursor:default;background: url(\'' +
-            this.options.themePath +
-            this.options.theme +
-            '/images/loading.gif\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n' +
-            '.loaderrorclass{display:inline-block;cursor:default;background: url(\'' +
-            this.options.themePath +
-            this.options.theme +
-            '/images/loaderror.png\') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;' +
-            '}',
-            this.document);
-        },
-        /* 鍒濆鍖栫畝鍗曚笂浼犳寜閽� */
-        'simpleuploadbtnready': function(type, container) {
-          containerBtn = container;
-          me.afterConfigReady(initUploadBtn);
-        }
-      },
-      outputRule: function(root) {
-        utils.each(root.getNodesByTagName('img'), function(n) {
-          if (/\b(loaderrorclass)|(bloaderrorclass)\b/.test(n.getAttr('class'))) {
-            n.parentNode.removeChild(n);
-          }
-        });
-      }
-    }
-  });
-
-  // plugins/serverparam.js
-  /**
-   * 鏈嶅姟鍣ㄦ彁浜ょ殑棰濆鍙傛暟鍒楄〃璁剧疆鎻掍欢
-   * @file
-   * @since 1.2.6.1
-   */
-  UE.plugin.register('serverparam', function() {
-
-    var me = this,
-      serverParam = {};
-
-    return {
-      commands: {
-        /**
-         * 淇敼鏈嶅姟鍣ㄦ彁浜ょ殑棰濆鍙傛暟鍒楄〃,娓呴櫎鎵�鏈夐」
-         * @command serverparam
-         * @method execCommand
-         * @param { String } cmd 鍛戒护瀛楃涓�
-         * @example
-         * ```javascript
-         * editor.execCommand('serverparam');
-         * editor.queryCommandValue('serverparam'); //杩斿洖绌�
-         * ```
-         */
-        /**
-         * 淇敼鏈嶅姟鍣ㄦ彁浜ょ殑棰濆鍙傛暟鍒楄〃,鍒犻櫎鎸囧畾椤�
-         * @command serverparam
-         * @method execCommand
-         * @param { String } cmd 鍛戒护瀛楃涓�
-         * @param { String } key 瑕佹竻闄ょ殑灞炴��
-         * @example
-         * ```javascript
-         * editor.execCommand('serverparam', 'name'); //鍒犻櫎灞炴�ame
-         * ```
-         */
-        /**
-         * 淇敼鏈嶅姟鍣ㄦ彁浜ょ殑棰濆鍙傛暟鍒楄〃,浣跨敤閿�兼坊鍔犻」
-         * @command serverparam
-         * @method execCommand
-         * @param { String } cmd 鍛戒护瀛楃涓�
-         * @param { String } key 瑕佹坊鍔犵殑灞炴��
-         * @param { String } value 瑕佹坊鍔犲睘鎬х殑鍊�
-         * @example
-         * ```javascript
-         * editor.execCommand('serverparam', 'name', 'hello');
-         * editor.queryCommandValue('serverparam'); //杩斿洖瀵硅薄 {'name': 'hello'}
-         * ```
-         */
-        /**
-         * 淇敼鏈嶅姟鍣ㄦ彁浜ょ殑棰濆鍙傛暟鍒楄〃,浼犲叆閿�煎瀵硅薄娣诲姞澶氶」
-         * @command serverparam
-         * @method execCommand
-         * @param { String } cmd 鍛戒护瀛楃涓�
-         * @param { Object } key 浼犲叆鐨勯敭鍊煎瀵硅薄
-         * @example
-         * ```javascript
-         * editor.execCommand('serverparam', {'name': 'hello'});
-         * editor.queryCommandValue('serverparam'); //杩斿洖瀵硅薄 {'name': 'hello'}
-         * ```
-         */
-        /**
-         * 淇敼鏈嶅姟鍣ㄦ彁浜ょ殑棰濆鍙傛暟鍒楄〃,浣跨敤鑷畾涔夊嚱鏁版坊鍔犲椤�
-         * @command serverparam
-         * @method execCommand
-         * @param { String } cmd 鍛戒护瀛楃涓�
-         * @param { Function } key 鑷畾涔夎幏鍙栧弬鏁扮殑鍑芥暟
-         * @example
-         * ```javascript
-         * editor.execCommand('serverparam', function(editor){
-         *     return {'key': 'value'};
-         * });
-         * editor.queryCommandValue('serverparam'); //杩斿洖瀵硅薄 {'key': 'value'}
-         * ```
-         */
-
-        /**
-         * 鑾峰彇鏈嶅姟鍣ㄦ彁浜ょ殑棰濆鍙傛暟鍒楄〃
-         * @command serverparam
-         * @method queryCommandValue
-         * @param { String } cmd 鍛戒护瀛楃涓�
-         * @example
-         * ```javascript
-         * editor.queryCommandValue( 'serverparam' ); //杩斿洖瀵硅薄 {'key': 'value'}
-         * ```
-         */
-        'serverparam': {
-          execCommand: function(cmd, key, value) {
-            if (key === undefined || key === null) { //涓嶄紶鍙傛暟,娓呯┖鍒楄〃
-              serverParam = {};
-            } else if (utils.isString(key)) { //浼犲叆閿��
-              if (value === undefined || value === null) {
-                delete serverParam[key];
-              } else {
-                serverParam[key] = value;
-              }
-            } else if (utils.isObject(key)) { //浼犲叆瀵硅薄,瑕嗙洊鍒楄〃椤�
-              utils.extend(serverParam, key, true);
-            } else if (utils.isFunction(key)) { //浼犲叆鍑芥暟,娣诲姞鍒楄〃椤�
-              utils.extend(serverParam, key(), true);
-            }
-          },
-          queryCommandValue: function() {
-            return serverParam || {};
-          }
-        }
-      }
-    }
-  });
-
-
-  // plugins/insertfile.js
-  /**
-   * 鎻掑叆闄勪欢
-   */
-  UE.plugin.register('insertfile', function() {
-
-    var me = this;
-
-    function getFileIcon(url) {
-      var ext = url.substr(url.lastIndexOf('.') + 1).toLowerCase(),
-        maps = {
-          "rar": "icon_rar.gif",
-          "zip": "icon_rar.gif",
-          "tar": "icon_rar.gif",
-          "gz": "icon_rar.gif",
-          "bz2": "icon_rar.gif",
-          "doc": "icon_doc.gif",
-          "docx": "icon_doc.gif",
-          "pdf": "icon_pdf.gif",
-          "mp3": "icon_mp3.gif",
-          "xls": "icon_xls.gif",
-          "chm": "icon_chm.gif",
-          "ppt": "icon_ppt.gif",
-          "pptx": "icon_ppt.gif",
-          "avi": "icon_mv.gif",
-          "rmvb": "icon_mv.gif",
-          "wmv": "icon_mv.gif",
-          "flv": "icon_mv.gif",
-          "swf": "icon_mv.gif",
-          "rm": "icon_mv.gif",
-          "exe": "icon_exe.gif",
-          "psd": "icon_psd.gif",
-          "txt": "icon_txt.gif",
-          "jpg": "icon_jpg.gif",
-          "png": "icon_jpg.gif",
-          "jpeg": "icon_jpg.gif",
-          "gif": "icon_jpg.gif",
-          "ico": "icon_jpg.gif",
-          "bmp": "icon_jpg.gif"
-        };
-      return maps[ext] ? maps[ext] : maps['txt'];
-    }
-
-    return {
-      commands: {
-        'insertfile': {
-          execCommand: function(command, filelist) {
-            filelist = utils.isArray(filelist) ? filelist : [filelist];
-
-            var i, item, icon, title,
-              html = '',
-              URL = me.getOpt('UEDITOR_HOME_URL'),
-              iconDir = URL + (URL.substr(URL.length - 1) == '/' ? '' : '/') +
-              'dialogs/attachment/fileTypeImages/';
-            for (i = 0; i < filelist.length; i++) {
-              item = filelist[i];
-              icon = iconDir + getFileIcon(item.url);
-              title = item.title || item.url.substr(item.url.lastIndexOf('/') + 1);
-              html += '<p style="line-height: 16px;">' +
-                '<img style="vertical-align: middle; margin-right: 2px;" src="' + icon + '" _src="' + icon +
-                '" />' +
-                '<a style="font-size:12px; color:#0066cc;" href="' + item.url + '" title="' + title + '">' +
-                title + '</a>' +
-                '</p>';
-            }
-            me.execCommand('insertHtml', html);
-          }
-        }
-      }
-    }
-  });
-
-
-
-
-  // plugins/xssFilter.js
-  /**
-   * @file xssFilter.js
-   * @desc xss杩囨护鍣�
-   * @author robbenmu
-   */
-
-  UE.plugins.xssFilter = function() {
-
-    var config = UEDITOR_CONFIG;
-    var whitList = config.whitList;
-
-    function filter(node) {
-
-      var tagName = node.tagName;
-      var attrs = node.attrs;
-
-      if (!whitList.hasOwnProperty(tagName)) {
-        node.parentNode.removeChild(node);
-        return false;
-      }
-
-      UE.utils.each(attrs, function(val, key) {
-
-        if (whitList[tagName].indexOf(key) === -1) {
-          node.setAttr(key);
-        }
-      });
-    }
-
-    // 娣诲姞inserthtml\paste绛夋搷浣滅敤鐨勮繃婊よ鍒�
-    if (whitList && config.xssFilterRules) {
-      this.options.filterRules = function() {
-
-        var result = {};
-
-        UE.utils.each(whitList, function(val, key) {
-          result[key] = function(node) {
-            return filter(node);
-          };
-        });
-
-        return result;
-      }();
-    }
-
-    var tagList = [];
-
-    UE.utils.each(whitList, function(val, key) {
-      tagList.push(key);
-    });
-
-    // 娣诲姞input杩囨护瑙勫垯
-    //
-    if (whitList && config.inputXssFilter) {
-      this.addInputRule(function(root) {
-
-        root.traversal(function(node) {
-          if (node.type !== 'element') {
-            return false;
-          }
-          filter(node);
-        });
-      });
-    }
-    // 娣诲姞output杩囨护瑙勫垯
-    //
-    if (whitList && config.outputXssFilter) {
-      this.addOutputRule(function(root) {
-
-        root.traversal(function(node) {
-          if (node.type !== 'element') {
-            return false;
-          }
-          filter(node);
-        });
-      });
-    }
-
-  };
-
-
-  // ui/ui.js
-  var baidu = baidu || {};
-  baidu.editor = baidu.editor || {};
-  UE.ui = baidu.editor.ui = {};
-
-  // ui/uiutils.js
-  (function() {
-    var browser = baidu.editor.browser,
-      domUtils = baidu.editor.dom.domUtils;
-
-    var magic = '$EDITORUI';
-    var root = window[magic] = {};
-    var uidMagic = 'ID' + magic;
-    var uidCount = 0;
-
-    var uiUtils = baidu.editor.ui.uiUtils = {
-      uid: function(obj) {
-        return (obj ? obj[uidMagic] || (obj[uidMagic] = ++uidCount) : ++uidCount);
-      },
-      hook: function(fn, callback) {
-        var dg;
-        if (fn && fn._callbacks) {
-          dg = fn;
-        } else {
-          dg = function() {
-            var q;
-            if (fn) {
-              q = fn.apply(this, arguments);
-            }
-            var callbacks = dg._callbacks;
-            var k = callbacks.length;
-            while (k--) {
-              var r = callbacks[k].apply(this, arguments);
-              if (q === undefined) {
-                q = r;
-              }
-            }
-            return q;
-          };
-          dg._callbacks = [];
-        }
-        dg._callbacks.push(callback);
-        return dg;
-      },
-      createElementByHtml: function(html) {
-        var el = document.createElement('div');
-        el.innerHTML = html;
-        el = el.firstChild;
-        el.parentNode.removeChild(el);
-        return el;
-      },
-      getViewportElement: function() {
-        return (browser.ie && browser.quirks) ?
-          document.body : document.documentElement;
-      },
-      getClientRect: function(element) {
-        var bcr;
-        //trace  IE6涓嬪湪鎺у埗缂栬緫鍣ㄦ樉闅愭椂鍙兘浼氭姤閿欙紝catch涓�涓�
-        try {
-          bcr = element.getBoundingClientRect();
-        } catch (e) {
-          bcr = {
-            left: 0,
-            top: 0,
-            height: 0,
-            width: 0
-          }
-        }
-        var rect = {
-          left: Math.round(bcr.left),
-          top: Math.round(bcr.top),
-          height: Math.round(bcr.bottom - bcr.top),
-          width: Math.round(bcr.right - bcr.left)
-        };
-        var doc;
-        while ((doc = element.ownerDocument) !== document &&
-          (element = domUtils.getWindow(doc).frameElement)) {
-          bcr = element.getBoundingClientRect();
-          rect.left += bcr.left;
-          rect.top += bcr.top;
-        }
-        rect.bottom = rect.top + rect.height;
-        rect.right = rect.left + rect.width;
-        return rect;
-      },
-      getViewportRect: function() {
-        var viewportEl = uiUtils.getViewportElement();
-        var width = (window.innerWidth || viewportEl.clientWidth) | 0;
-        var height = (window.innerHeight || viewportEl.clientHeight) | 0;
-        return {
-          left: 0,
-          top: 0,
-          height: height,
-          width: width,
-          bottom: height,
-          right: width
-        };
-      },
-      setViewportOffset: function(element, offset) {
-        var rect;
-        var fixedLayer = uiUtils.getFixedLayer();
-        if (element.parentNode === fixedLayer) {
-          element.style.left = offset.left + 'px';
-          element.style.top = offset.top + 'px';
-        } else {
-          domUtils.setViewportOffset(element, offset);
-        }
-      },
-      getEventOffset: function(evt) {
-        var el = evt.target || evt.srcElement;
-        var rect = uiUtils.getClientRect(el);
-        var offset = uiUtils.getViewportOffsetByEvent(evt);
-        return {
-          left: offset.left - rect.left,
-          top: offset.top - rect.top
-        };
-      },
-      getViewportOffsetByEvent: function(evt) {
-        var el = evt.target || evt.srcElement;
-        var frameEl = domUtils.getWindow(el).frameElement;
-        var offset = {
-          left: evt.clientX,
-          top: evt.clientY
-        };
-        if (frameEl && el.ownerDocument !== document) {
-          var rect = uiUtils.getClientRect(frameEl);
-          offset.left += rect.left;
-          offset.top += rect.top;
-        }
-        return offset;
-      },
-      setGlobal: function(id, obj) {
-        root[id] = obj;
-        return magic + '["' + id + '"]';
-      },
-      unsetGlobal: function(id) {
-        delete root[id];
-      },
-      copyAttributes: function(tgt, src) {
-        var attributes = src.attributes;
-        var k = attributes.length;
-        while (k--) {
-          var attrNode = attributes[k];
-          if (attrNode.nodeName != 'style' && attrNode.nodeName != 'class' && (!browser.ie || attrNode.specified)) {
-            tgt.setAttribute(attrNode.nodeName, attrNode.nodeValue);
-          }
-        }
-        if (src.className) {
-          domUtils.addClass(tgt, src.className);
-        }
-        if (src.style.cssText) {
-          tgt.style.cssText += ';' + src.style.cssText;
-        }
-      },
-      removeStyle: function(el, styleName) {
-        if (el.style.removeProperty) {
-          el.style.removeProperty(styleName);
-        } else if (el.style.removeAttribute) {
-          el.style.removeAttribute(styleName);
-        } else throw '';
-      },
-      contains: function(elA, elB) {
-        return elA && elB && (elA === elB ? false : (
-          elA.contains ? elA.contains(elB) :
-          elA.compareDocumentPosition(elB) & 16
-        ));
-      },
-      startDrag: function(evt, callbacks, doc) {
-        var doc = doc || document;
-        var startX = evt.clientX;
-        var startY = evt.clientY;
-
-        function handleMouseMove(evt) {
-          var x = evt.clientX - startX;
-          var y = evt.clientY - startY;
-          callbacks.ondragmove(x, y, evt);
-          if (evt.stopPropagation) {
-            evt.stopPropagation();
-          } else {
-            evt.cancelBubble = true;
-          }
-        }
-        if (doc.addEventListener) {
-          function handleMouseUp(evt) {
-            doc.removeEventListener('mousemove', handleMouseMove, true);
-            doc.removeEventListener('mouseup', handleMouseUp, true);
-            window.removeEventListener('mouseup', handleMouseUp, true);
-            callbacks.ondragstop();
-          }
-          doc.addEventListener('mousemove', handleMouseMove, true);
-          doc.addEventListener('mouseup', handleMouseUp, true);
-          window.addEventListener('mouseup', handleMouseUp, true);
-
-          evt.preventDefault();
-        } else {
-          var elm = evt.srcElement;
-          elm.setCapture();
-
-          function releaseCaptrue() {
-            elm.releaseCapture();
-            elm.detachEvent('onmousemove', handleMouseMove);
-            elm.detachEvent('onmouseup', releaseCaptrue);
-            elm.detachEvent('onlosecaptrue', releaseCaptrue);
-            callbacks.ondragstop();
-          }
-          elm.attachEvent('onmousemove', handleMouseMove);
-          elm.attachEvent('onmouseup', releaseCaptrue);
-          elm.attachEvent('onlosecaptrue', releaseCaptrue);
-          evt.returnValue = false;
-        }
-        callbacks.ondragstart();
-      },
-      getFixedLayer: function() {
-        var layer = document.getElementById('edui_fixedlayer');
-        if (layer == null) {
-          layer = document.createElement('div');
-          layer.id = 'edui_fixedlayer';
-          document.body.appendChild(layer);
-          if (browser.ie && browser.version <= 8) {
-            layer.style.position = 'absolute';
-            bindFixedLayer();
-            setTimeout(updateFixedOffset);
-          } else {
-            layer.style.position = 'fixed';
-          }
-          layer.style.left = '0';
-          layer.style.top = '0';
-          layer.style.width = '0';
-          layer.style.height = '0';
-        }
-        return layer;
-      },
-      makeUnselectable: function(element) {
-        if (browser.opera || (browser.ie && browser.version < 9)) {
-          element.unselectable = 'on';
-          if (element.hasChildNodes()) {
-            for (var i = 0; i < element.childNodes.length; i++) {
-              if (element.childNodes[i].nodeType == 1) {
-                uiUtils.makeUnselectable(element.childNodes[i]);
-              }
-            }
-          }
-        } else {
-          if (element.style.MozUserSelect !== undefined) {
-            element.style.MozUserSelect = 'none';
-          } else if (element.style.WebkitUserSelect !== undefined) {
-            element.style.WebkitUserSelect = 'none';
-          } else if (element.style.KhtmlUserSelect !== undefined) {
-            element.style.KhtmlUserSelect = 'none';
-          }
-        }
-      }
-    };
-
-    function updateFixedOffset() {
-      var layer = document.getElementById('edui_fixedlayer');
-      uiUtils.setViewportOffset(layer, {
-        left: 0,
-        top: 0
-      });
-      //        layer.style.display = 'none';
-      //        layer.style.display = 'block';
-
-      //#trace: 1354
-      //        setTimeout(updateFixedOffset);
-    }
-
-    function bindFixedLayer(adjOffset) {
-      domUtils.on(window, 'scroll', updateFixedOffset);
-      domUtils.on(window, 'resize', baidu.editor.utils.defer(updateFixedOffset, 0, true));
-    }
-  })();
-
-
-  // ui/uibase.js
-  (function() {
-    var utils = baidu.editor.utils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      EventBase = baidu.editor.EventBase,
-      UIBase = baidu.editor.ui.UIBase = function() {};
-
-    UIBase.prototype = {
-      className: '',
-      uiName: '',
-      initOptions: function(options) {
-        var me = this;
-        for (var k in options) {
-          me[k] = options[k];
-        }
-        this.id = this.id || 'edui' + uiUtils.uid();
-      },
-      initUIBase: function() {
-        this._globalKey = utils.unhtml(uiUtils.setGlobal(this.id, this));
-      },
-      render: function(holder) {
-        var html = this.renderHtml();
-        var el = uiUtils.createElementByHtml(html);
-
-        //by xuheng 缁欐瘡涓猲ode娣诲姞class
-        var list = domUtils.getElementsByTagName(el, "*");
-        var theme = "edui-" + (this.theme || this.editor.options.theme);
-        var layer = document.getElementById('edui_fixedlayer');
-        for (var i = 0, node; node = list[i++];) {
-          domUtils.addClass(node, theme);
-        }
-        domUtils.addClass(el, theme);
-        if (layer) {
-          layer.className = "";
-          domUtils.addClass(layer, theme);
-        }
-
-        var seatEl = this.getDom();
-        if (seatEl != null) {
-          seatEl.parentNode.replaceChild(el, seatEl);
-          uiUtils.copyAttributes(el, seatEl);
-        } else {
-          if (typeof holder == 'string') {
-            holder = document.getElementById(holder);
-          }
-          holder = holder || uiUtils.getFixedLayer();
-          domUtils.addClass(holder, theme);
-          holder.appendChild(el);
-        }
-        this.postRender();
-      },
-      getDom: function(name) {
-        if (!name) {
-          return document.getElementById(this.id);
-        } else {
-          return document.getElementById(this.id + '_' + name);
-        }
-      },
-      postRender: function() {
-        this.fireEvent('postrender');
-      },
-      getHtmlTpl: function() {
-        return '';
-      },
-      formatHtml: function(tpl) {
-        var prefix = 'edui-' + this.uiName;
-        return (tpl
-          .replace(/##/g, this.id)
-          .replace(/%%-/g, this.uiName ? prefix + '-' : '')
-          .replace(/%%/g, (this.uiName ? prefix : '') + ' ' + this.className)
-          .replace(/\$\$/g, this._globalKey));
-      },
-      renderHtml: function() {
-        return this.formatHtml(this.getHtmlTpl());
-      },
-      dispose: function() {
-        var box = this.getDom();
-        if (box) baidu.editor.dom.domUtils.remove(box);
-        uiUtils.unsetGlobal(this.id);
-      }
-    };
-    utils.inherits(UIBase, EventBase);
-  })();
-
-
-  // ui/separator.js
-  (function() {
-    var utils = baidu.editor.utils,
-      UIBase = baidu.editor.ui.UIBase,
-      Separator = baidu.editor.ui.Separator = function(options) {
-        this.initOptions(options);
-        this.initSeparator();
-      };
-    Separator.prototype = {
-      uiName: 'separator',
-      initSeparator: function() {
-        this.initUIBase();
-      },
-      getHtmlTpl: function() {
-        return '<div id="##" class="edui-box %%"></div>';
-      }
-    };
-    utils.inherits(Separator, UIBase);
-
-  })();
-
-
-  // ui/mask.js
-  ///import core
-  ///import uicore
-  (function() {
-    var utils = baidu.editor.utils,
-      domUtils = baidu.editor.dom.domUtils,
-      UIBase = baidu.editor.ui.UIBase,
-      uiUtils = baidu.editor.ui.uiUtils;
-
-    var Mask = baidu.editor.ui.Mask = function(options) {
-      this.initOptions(options);
-      this.initUIBase();
-    };
-    Mask.prototype = {
-      getHtmlTpl: function() {
-        return '<div id="##" class="edui-mask %%" onclick="return $$._onClick(event, this);" onmousedown="return $$._onMouseDown(event, this);"></div>';
-      },
-      postRender: function() {
-        var me = this;
-        domUtils.on(window, 'resize', function() {
-          setTimeout(function() {
-            if (!me.isHidden()) {
-              me._fill();
-            }
-          });
-        });
-      },
-      show: function(zIndex) {
-        this._fill();
-        this.getDom().style.display = '';
-        this.getDom().style.zIndex = zIndex;
-      },
-      hide: function() {
-        this.getDom().style.display = 'none';
-        this.getDom().style.zIndex = '';
-      },
-      isHidden: function() {
-        return this.getDom().style.display == 'none';
-      },
-      _onMouseDown: function() {
-        return false;
-      },
-      _onClick: function(e, target) {
-        this.fireEvent('click', e, target);
-      },
-      _fill: function() {
-        var el = this.getDom();
-        var vpRect = uiUtils.getViewportRect();
-        el.style.width = vpRect.width + 'px';
-        el.style.height = vpRect.height + 'px';
-      }
-    };
-    utils.inherits(Mask, UIBase);
-  })();
-
-
-  // ui/popup.js
-  ///import core
-  ///import uicore
-  (function() {
-    var utils = baidu.editor.utils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      domUtils = baidu.editor.dom.domUtils,
-      UIBase = baidu.editor.ui.UIBase,
-      Popup = baidu.editor.ui.Popup = function(options) {
-        this.initOptions(options);
-        this.initPopup();
-      };
-
-    var allPopups = [];
-
-    function closeAllPopup(evt, el) {
-      for (var i = 0; i < allPopups.length; i++) {
-        var pop = allPopups[i];
-        if (!pop.isHidden()) {
-          if (pop.queryAutoHide(el) !== false) {
-            if (evt && /scroll/ig.test(evt.type) && pop.className == "edui-wordpastepop") return;
-            pop.hide();
-          }
-        }
-      }
-
-      if (allPopups.length)
-        pop.editor.fireEvent("afterhidepop");
-    }
-
-    Popup.postHide = closeAllPopup;
-
-    var ANCHOR_CLASSES = ['edui-anchor-topleft', 'edui-anchor-topright',
-      'edui-anchor-bottomleft', 'edui-anchor-bottomright'
-    ];
-    Popup.prototype = {
-      SHADOW_RADIUS: 5,
-      content: null,
-      _hidden: false,
-      autoRender: true,
-      canSideLeft: true,
-      canSideUp: true,
-      initPopup: function() {
-        this.initUIBase();
-        allPopups.push(this);
-      },
-      getHtmlTpl: function() {
-        return '<div id="##" class="edui-popup %%" onmousedown="return false;">' +
-          ' <div id="##_body" class="edui-popup-body">' +
-          ' <iframe style="position:absolute;z-index:-1;left:0;top:0;background-color: transparent;" frameborder="0" width="100%" height="100%" src="about:blank"></iframe>' +
-          ' <div class="edui-shadow"></div>' +
-          ' <div id="##_content" class="edui-popup-content">' +
-          this.getContentHtmlTpl() +
-          '  </div>' +
-          ' </div>' +
-          '</div>';
-      },
-      getContentHtmlTpl: function() {
-        if (this.content) {
-          if (typeof this.content == 'string') {
-            return this.content;
-          }
-          return this.content.renderHtml();
-        } else {
-          return ''
-        }
-
-      },
-      _UIBase_postRender: UIBase.prototype.postRender,
-      postRender: function() {
-
-
-        if (this.content instanceof UIBase) {
-          this.content.postRender();
-        }
-
-        //鎹曡幏榧犳爣婊氳疆
-        if (this.captureWheel && !this.captured) {
-
-          this.captured = true;
-
-          var winHeight = (document.documentElement.clientHeight || document.body.clientHeight) - 80,
-            _height = this.getDom().offsetHeight,
-            _top = uiUtils.getClientRect(this.combox.getDom()).top,
-            content = this.getDom('content'),
-            ifr = this.getDom('body').getElementsByTagName('iframe'),
-            me = this;
-
-          ifr.length && (ifr = ifr[0]);
-
-          while (_top + _height > winHeight) {
-            _height -= 30;
-          }
-          content.style.height = _height + 'px';
-          //鍚屾鏇存敼iframe楂樺害
-          ifr && (ifr.style.height = _height + 'px');
-
-          //闃绘鍦╟ombox涓婄殑榧犳爣婊氳疆浜嬩欢, 闃叉鐢ㄦ埛鐨勬甯告搷浣滆璇В
-          if (window.XMLHttpRequest) {
-
-            domUtils.on(content, ('onmousewheel' in document.body) ? 'mousewheel' : 'DOMMouseScroll', function(
-              e) {
-
-              if (e.preventDefault) {
-                e.preventDefault();
-              } else {
-                e.returnValue = false;
-              }
-
-              if (e.wheelDelta) {
-
-                content.scrollTop -= (e.wheelDelta / 120) * 60;
-
-              } else {
-
-                content.scrollTop -= (e.detail / -3) * 60;
-
-              }
-
-            });
-
-          } else {
-
-            //ie6
-            domUtils.on(this.getDom(), 'mousewheel', function(e) {
-
-              e.returnValue = false;
-
-              me.getDom('content').scrollTop -= (e.wheelDelta / 120) * 60;
-
-            });
-
-          }
-
-        }
-        this.fireEvent('postRenderAfter');
-        this.hide(true);
-        this._UIBase_postRender();
-      },
-      _doAutoRender: function() {
-        if (!this.getDom() && this.autoRender) {
-          this.render();
-        }
-      },
-      mesureSize: function() {
-        var box = this.getDom('content');
-        return uiUtils.getClientRect(box);
-      },
-      fitSize: function() {
-        if (this.captureWheel && this.sized) {
-          return this.__size;
-        }
-        this.sized = true;
-        var popBodyEl = this.getDom('body');
-        popBodyEl.style.width = '';
-        popBodyEl.style.height = '';
-        var size = this.mesureSize();
-        if (this.captureWheel) {
-          popBodyEl.style.width = -(-20 - size.width) + 'px';
-          var height = parseInt(this.getDom('content').style.height, 10);
-          !window.isNaN(height) && (size.height = height);
-        } else {
-          popBodyEl.style.width = size.width + 'px';
-        }
-        popBodyEl.style.height = size.height + 'px';
-        this.__size = size;
-        this.captureWheel && (this.getDom('content').style.overflow = 'auto');
-        return size;
-      },
-      showAnchor: function(element, hoz) {
-        this.showAnchorRect(uiUtils.getClientRect(element), hoz);
-      },
-      showAnchorRect: function(rect, hoz, adj) {
-        this._doAutoRender();
-        var vpRect = uiUtils.getViewportRect();
-        this.getDom().style.visibility = 'hidden';
-        this._show();
-        var popSize = this.fitSize();
-
-        var sideLeft, sideUp, left, top;
-        if (hoz) {
-          sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width);
-          sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height);
-          left = (sideLeft ? rect.left - popSize.width : rect.right);
-          top = (sideUp ? rect.bottom - popSize.height : rect.top);
-        } else {
-          sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width);
-          sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height);
-          left = (sideLeft ? rect.right - popSize.width : rect.left);
-          top = (sideUp ? rect.top - popSize.height : rect.bottom);
-        }
-
-        var popEl = this.getDom();
-        uiUtils.setViewportOffset(popEl, {
-          left: left,
-          top: top
-        });
-        domUtils.removeClasses(popEl, ANCHOR_CLASSES);
-        popEl.className += ' ' + ANCHOR_CLASSES[(sideUp ? 1 : 0) * 2 + (sideLeft ? 1 : 0)];
-        if (this.editor) {
-          popEl.style.zIndex = this.editor.container.style.zIndex * 1 + 10;
-          baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = popEl.style.zIndex - 1;
-        }
-        this.getDom().style.visibility = 'visible';
-
-      },
-      showAt: function(offset) {
-        var left = offset.left;
-        var top = offset.top;
-        var rect = {
-          left: left,
-          top: top,
-          right: left,
-          bottom: top,
-          height: 0,
-          width: 0
-        };
-        this.showAnchorRect(rect, false, true);
-      },
-      _show: function() {
-        if (this._hidden) {
-          var box = this.getDom();
-          box.style.display = '';
-          this._hidden = false;
-          //                if (box.setActive) {
-          //                    box.setActive();
-          //                }
-          this.fireEvent('show');
-        }
-      },
-      isHidden: function() {
-        return this._hidden;
-      },
-      show: function() {
-        this._doAutoRender();
-        this._show();
-      },
-      hide: function(notNofity) {
-        if (!this._hidden && this.getDom()) {
-          this.getDom().style.display = 'none';
-          this._hidden = true;
-          if (!notNofity) {
-            this.fireEvent('hide');
-          }
-        }
-      },
-      queryAutoHide: function(el) {
-        return !el || !uiUtils.contains(this.getDom(), el);
-      }
-    };
-    utils.inherits(Popup, UIBase);
-
-    domUtils.on(document, 'mousedown', function(evt) {
-      var el = evt.target || evt.srcElement;
-      closeAllPopup(evt, el);
-    });
-    domUtils.on(window, 'scroll', function(evt, el) {
-      closeAllPopup(evt, el);
-    });
-
-  })();
-
-
-  // ui/colorpicker.js
-  ///import core
-  ///import uicore
-  (function() {
-    var utils = baidu.editor.utils,
-      UIBase = baidu.editor.ui.UIBase,
-      ColorPicker = baidu.editor.ui.ColorPicker = function(options) {
-        this.initOptions(options);
-        this.noColorText = this.noColorText || this.editor.getLang("clearColor");
-        this.initUIBase();
-      };
-
-    ColorPicker.prototype = {
-      getHtmlTpl: function() {
-        return genColorPicker(this.noColorText, this.editor);
-      },
-      _onTableClick: function(evt) {
-        var tgt = evt.target || evt.srcElement;
-        var color = tgt.getAttribute('data-color');
-        if (color) {
-          this.fireEvent('pickcolor', color);
-        }
-      },
-      _onTableOver: function(evt) {
-        var tgt = evt.target || evt.srcElement;
-        var color = tgt.getAttribute('data-color');
-        if (color) {
-          this.getDom('preview').style.backgroundColor = color;
-        }
-      },
-      _onTableOut: function() {
-        this.getDom('preview').style.backgroundColor = '';
-      },
-      _onPickNoColor: function() {
-        this.fireEvent('picknocolor');
-      }
-    };
-    utils.inherits(ColorPicker, UIBase);
-
-    var COLORS = (
-      'ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,' +
-      'f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,' +
-      'd8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,' +
-      'bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,' +
-      'a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,' +
-      '7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,' +
-      'c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,').split(',');
-
-    function genColorPicker(noColorText, editor) {
-      var html = '<div id="##" class="edui-colorpicker %%">' +
-        '<div class="edui-colorpicker-topbar edui-clearfix">' +
-        '<div unselectable="on" id="##_preview" class="edui-colorpicker-preview"></div>' +
-        '<div unselectable="on" class="edui-colorpicker-nocolor" onclick="$$._onPickNoColor(event, this);">' +
-        noColorText + '</div>' +
-        '</div>' +
-        '<table  class="edui-box" style="border-collapse: collapse;" onmouseover="$$._onTableOver(event, this);" onmouseout="$$._onTableOut(event, this);" onclick="return $$._onTableClick(event, this);" cellspacing="0" cellpadding="0">' +
-        '<tr style="border-bottom: 1px solid #ddd;font-size: 13px;line-height: 25px;color:#39C;padding-top: 2px"><td colspan="10">' +
-        editor.getLang("themeColor") + '</td> </tr>' +
-        '<tr class="edui-colorpicker-tablefirstrow" >';
-      for (var i = 0; i < COLORS.length; i++) {
-        if (i && i % 10 === 0) {
-          html += '</tr>' + (i == 60 ?
-            '<tr style="border-bottom: 1px solid #ddd;font-size: 13px;line-height: 25px;color:#39C;"><td colspan="10">' +
-            editor.getLang("standardColor") + '</td></tr>' : '') + '<tr' + (i == 60 ?
-            ' class="edui-colorpicker-tablefirstrow"' : '') + '>';
-        }
-        html += i < 70 ? '<td style="padding: 0 2px;"><a hidefocus title="' + COLORS[i] +
-          '" onclick="return false;" href="javascript:" unselectable="on" class="edui-box edui-colorpicker-colorcell"' +
-          ' data-color="#' + COLORS[i] + '"' +
-          ' style="background-color:#' + COLORS[i] + ';border:solid #ccc;' +
-          (i < 10 || i >= 60 ? 'border-width:1px;' :
-            i >= 10 && i < 20 ? 'border-width:1px 1px 0 1px;' :
-
-            'border-width:0 1px 0 1px;') +
-          '"' +
-          '></a></td>' : '';
-      }
-      html += '</tr></table></div>';
-      return html;
-    }
-  })();
-
-
-  // ui/tablepicker.js
-  ///import core
-  ///import uicore
-  (function() {
-    var utils = baidu.editor.utils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      UIBase = baidu.editor.ui.UIBase;
-
-    var TablePicker = baidu.editor.ui.TablePicker = function(options) {
-      this.initOptions(options);
-      this.initTablePicker();
-    };
-    TablePicker.prototype = {
-      defaultNumRows: 10,
-      defaultNumCols: 10,
-      maxNumRows: 20,
-      maxNumCols: 20,
-      numRows: 10,
-      numCols: 10,
-      lengthOfCellSide: 22,
-      initTablePicker: function() {
-        this.initUIBase();
-      },
-      getHtmlTpl: function() {
-        var me = this;
-        return '<div id="##" class="edui-tablepicker %%">' +
-          '<div class="edui-tablepicker-body">' +
-          '<div class="edui-infoarea">' +
-          '<span id="##_label" class="edui-label"></span>' +
-          '</div>' +
-          '<div class="edui-pickarea"' +
-          ' onmousemove="$$._onMouseMove(event, this);"' +
-          ' onmouseover="$$._onMouseOver(event, this);"' +
-          ' onmouseout="$$._onMouseOut(event, this);"' +
-          ' onclick="$$._onClick(event, this);"' +
-          '>' +
-          '<div id="##_overlay" class="edui-overlay"></div>' +
-          '</div>' +
-          '</div>' +
-          '</div>';
-      },
-      _UIBase_render: UIBase.prototype.render,
-      render: function(holder) {
-        this._UIBase_render(holder);
-        this.getDom('label').innerHTML = '0' + this.editor.getLang("t_row") + ' x 0' + this.editor.getLang(
-          "t_col");
-      },
-      _track: function(numCols, numRows) {
-        var style = this.getDom('overlay').style;
-        var sideLen = this.lengthOfCellSide;
-        style.width = numCols * sideLen + 'px';
-        style.height = numRows * sideLen + 'px';
-        var label = this.getDom('label');
-        label.innerHTML = numCols + this.editor.getLang("t_col") + ' x ' + numRows + this.editor.getLang(
-          "t_row");
-        this.numCols = numCols;
-        this.numRows = numRows;
-      },
-      _onMouseOver: function(evt, el) {
-        var rel = evt.relatedTarget || evt.fromElement;
-        if (!uiUtils.contains(el, rel) && el !== rel) {
-          this.getDom('label').innerHTML = '0' + this.editor.getLang("t_col") + ' x 0' + this.editor.getLang(
-            "t_row");
-          this.getDom('overlay').style.visibility = '';
-        }
-      },
-      _onMouseOut: function(evt, el) {
-        var rel = evt.relatedTarget || evt.toElement;
-        if (!uiUtils.contains(el, rel) && el !== rel) {
-          this.getDom('label').innerHTML = '0' + this.editor.getLang("t_col") + ' x 0' + this.editor.getLang(
-            "t_row");
-          this.getDom('overlay').style.visibility = 'hidden';
-        }
-      },
-      _onMouseMove: function(evt, el) {
-        var style = this.getDom('overlay').style;
-        var offset = uiUtils.getEventOffset(evt);
-        var sideLen = this.lengthOfCellSide;
-        var numCols = Math.ceil(offset.left / sideLen);
-        var numRows = Math.ceil(offset.top / sideLen);
-        this._track(numCols, numRows);
-      },
-      _onClick: function() {
-        this.fireEvent('picktable', this.numCols, this.numRows);
-      }
-    };
-    utils.inherits(TablePicker, UIBase);
-  })();
-
-
-  // ui/stateful.js
-  (function() {
-    var browser = baidu.editor.browser,
-      domUtils = baidu.editor.dom.domUtils,
-      uiUtils = baidu.editor.ui.uiUtils;
-
-    var TPL_STATEFUL = 'onmousedown="$$.Stateful_onMouseDown(event, this);"' +
-      ' onmouseup="$$.Stateful_onMouseUp(event, this);"' +
-      (browser.ie ? (
-          ' onmouseenter="$$.Stateful_onMouseEnter(event, this);"' +
-          ' onmouseleave="$$.Stateful_onMouseLeave(event, this);"') :
-        (
-          ' onmouseover="$$.Stateful_onMouseOver(event, this);"' +
-          ' onmouseout="$$.Stateful_onMouseOut(event, this);"'));
-
-    baidu.editor.ui.Stateful = {
-      alwalysHoverable: false,
-      target: null, //鐩爣鍏冪礌鍜宼his鎸囧悜dom涓嶄竴鏍�
-      Stateful_init: function() {
-        this._Stateful_dGetHtmlTpl = this.getHtmlTpl;
-        this.getHtmlTpl = this.Stateful_getHtmlTpl;
-      },
-      Stateful_getHtmlTpl: function() {
-        var tpl = this._Stateful_dGetHtmlTpl();
-        // 浣跨敤function閬垮厤$杞箟
-        return tpl.replace(/stateful/g, function() {
-          return TPL_STATEFUL;
-        });
-      },
-      Stateful_onMouseEnter: function(evt, el) {
-        this.target = el;
-        if (!this.isDisabled() || this.alwalysHoverable) {
-          this.addState('hover');
-          this.fireEvent('over');
-        }
-      },
-      Stateful_onMouseLeave: function(evt, el) {
-        if (!this.isDisabled() || this.alwalysHoverable) {
-          this.removeState('hover');
-          this.removeState('active');
-          this.fireEvent('out');
-        }
-      },
-      Stateful_onMouseOver: function(evt, el) {
-        var rel = evt.relatedTarget;
-        if (!uiUtils.contains(el, rel) && el !== rel) {
-          this.Stateful_onMouseEnter(evt, el);
-        }
-      },
-      Stateful_onMouseOut: function(evt, el) {
-        var rel = evt.relatedTarget;
-        if (!uiUtils.contains(el, rel) && el !== rel) {
-          this.Stateful_onMouseLeave(evt, el);
-        }
-      },
-      Stateful_onMouseDown: function(evt, el) {
-        if (!this.isDisabled()) {
-          this.addState('active');
-        }
-      },
-      Stateful_onMouseUp: function(evt, el) {
-        if (!this.isDisabled()) {
-          this.removeState('active');
-        }
-      },
-      Stateful_postRender: function() {
-        if (this.disabled && !this.hasState('disabled')) {
-          this.addState('disabled');
-        }
-      },
-      hasState: function(state) {
-        return domUtils.hasClass(this.getStateDom(), 'edui-state-' + state);
-      },
-      addState: function(state) {
-        if (!this.hasState(state)) {
-          this.getStateDom().className += ' edui-state-' + state;
-        }
-      },
-      removeState: function(state) {
-        if (this.hasState(state)) {
-          domUtils.removeClasses(this.getStateDom(), ['edui-state-' + state]);
-        }
-      },
-      getStateDom: function() {
-        return this.getDom('state');
-      },
-      isChecked: function() {
-        return this.hasState('checked');
-      },
-      setChecked: function(checked) {
-        if (!this.isDisabled() && checked) {
-          this.addState('checked');
-        } else {
-          this.removeState('checked');
-        }
-      },
-      isDisabled: function() {
-        return this.hasState('disabled');
-      },
-      setDisabled: function(disabled) {
-        if (disabled) {
-          this.removeState('hover');
-          this.removeState('checked');
-          this.removeState('active');
-          this.addState('disabled');
-        } else {
-          this.removeState('disabled');
-        }
-      }
-    };
-  })();
-
-
-  // ui/button.js
-  ///import core
-  ///import uicore
-  ///import ui/stateful.js
-  (function() {
-    var utils = baidu.editor.utils,
-      UIBase = baidu.editor.ui.UIBase,
-      Stateful = baidu.editor.ui.Stateful,
-      Button = baidu.editor.ui.Button = function(options) {
-        if (options.name) {
-          var btnName = options.name;
-          var cssRules = options.cssRules;
-          if (!options.className) {
-            options.className = 'edui-for-' + btnName;
-          }
-          options.cssRules = '.edui-default  .edui-for-' + btnName + ' .edui-icon {' + cssRules + '}'
-        }
-        this.initOptions(options);
-        this.initButton();
-      };
-    Button.prototype = {
-      uiName: 'button',
-      label: '',
-      title: '',
-      showIcon: true,
-      showText: true,
-      cssRules: '',
-      initButton: function() {
-        this.initUIBase();
-        this.Stateful_init();
-        if (this.cssRules) {
-          utils.cssRule('edui-customize-' + this.name + '-style', this.cssRules);
-        }
-      },
-      getHtmlTpl: function() {
-        return '<div id="##" class="edui-box %%">' +
-          '<div id="##_state" stateful>' +
-          '<div class="%%-wrap"><div id="##_body" unselectable="on" ' + (this.title ? 'title="' + this.title +
-            '"' : '') +
-          ' class="%%-body" onmousedown="return $$._onMouseDown(event, this);" onclick="return $$._onClick(event, this);">' +
-          (this.showIcon ? '<div class="edui-box edui-icon"></div>' : '') +
-          (this.showText ? '<div class="edui-box edui-label">' + this.label + '</div>' : '') +
-          '</div>' +
-          '</div>' +
-          '</div></div>';
-      },
-      postRender: function() {
-        this.Stateful_postRender();
-        this.setDisabled(this.disabled)
-      },
-      _onMouseDown: function(e) {
-        var target = e.target || e.srcElement,
-          tagName = target && target.tagName && target.tagName.toLowerCase();
-        if (tagName == 'input' || tagName == 'object' || tagName == 'object') {
-          return false;
-        }
-      },
-      _onClick: function() {
-        if (!this.isDisabled()) {
-          this.fireEvent('click');
-        }
-      },
-      setTitle: function(text) {
-        var label = this.getDom('label');
-        label.innerHTML = text;
-      }
-    };
-    utils.inherits(Button, UIBase);
-    utils.extend(Button.prototype, Stateful);
-
-  })();
-
-
-  // ui/splitbutton.js
-  ///import core
-  ///import uicore
-  ///import ui/stateful.js
-  (function() {
-    var utils = baidu.editor.utils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      domUtils = baidu.editor.dom.domUtils,
-      UIBase = baidu.editor.ui.UIBase,
-      Stateful = baidu.editor.ui.Stateful,
-      SplitButton = baidu.editor.ui.SplitButton = function(options) {
-        this.initOptions(options);
-        this.initSplitButton();
-      };
-    SplitButton.prototype = {
-      popup: null,
-      uiName: 'splitbutton',
-      title: '',
-      initSplitButton: function() {
-        this.initUIBase();
-        this.Stateful_init();
-        var me = this;
-        if (this.popup != null) {
-          var popup = this.popup;
-          this.popup = null;
-          this.setPopup(popup);
-        }
-      },
-      _UIBase_postRender: UIBase.prototype.postRender,
-      postRender: function() {
-        this.Stateful_postRender();
-        this._UIBase_postRender();
-      },
-      setPopup: function(popup) {
-        if (this.popup === popup) return;
-        if (this.popup != null) {
-          this.popup.dispose();
-        }
-        popup.addListener('show', utils.bind(this._onPopupShow, this));
-        popup.addListener('hide', utils.bind(this._onPopupHide, this));
-        popup.addListener('postrender', utils.bind(function() {
-          popup.getDom('body').appendChild(
-            uiUtils.createElementByHtml('<div id="' +
-              this.popup.id + '_bordereraser" class="edui-bordereraser edui-background" style="width:' +
-              (uiUtils.getClientRect(this.getDom()).width + 20) + 'px"></div>')
-          );
-          popup.getDom().className += ' ' + this.className;
-        }, this));
-        this.popup = popup;
-      },
-      _onPopupShow: function() {
-        this.addState('opened');
-      },
-      _onPopupHide: function() {
-        this.removeState('opened');
-      },
-      getHtmlTpl: function() {
-        return '<div id="##" class="edui-box %%">' +
-          '<div ' + (this.title ? 'title="' + this.title + '"' : '') +
-          ' id="##_state" stateful><div class="%%-body">' +
-          '<div id="##_button_body" class="edui-box edui-button-body" onclick="$$._onButtonClick(event, this);">' +
-          '<div class="edui-box edui-icon"></div>' +
-          '</div>' +
-          '<div class="edui-box edui-splitborder"></div>' +
-          '<div class="edui-box edui-arrow" onclick="$$._onArrowClick();"></div>' +
-          '</div></div></div>';
-      },
-      showPopup: function() {
-        // 褰損opup寰�涓婂脊鍑虹殑鏃跺�欙紝鍋氱壒娈婂鐞�
-        var rect = uiUtils.getClientRect(this.getDom());
-        rect.top -= this.popup.SHADOW_RADIUS;
-        rect.height += this.popup.SHADOW_RADIUS;
-        this.popup.showAnchorRect(rect);
-      },
-      _onArrowClick: function(event, el) {
-        if (!this.isDisabled()) {
-          this.showPopup();
-        }
-      },
-      _onButtonClick: function() {
-        if (!this.isDisabled()) {
-          this.fireEvent('buttonclick');
-        }
-      }
-    };
-    utils.inherits(SplitButton, UIBase);
-    utils.extend(SplitButton.prototype, Stateful, true);
-
-  })();
-
-
-  // ui/colorbutton.js
-  ///import core
-  ///import uicore
-  ///import ui/colorpicker.js
-  ///import ui/popup.js
-  ///import ui/splitbutton.js
-  (function() {
-    var utils = baidu.editor.utils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      ColorPicker = baidu.editor.ui.ColorPicker,
-      Popup = baidu.editor.ui.Popup,
-      SplitButton = baidu.editor.ui.SplitButton,
-      ColorButton = baidu.editor.ui.ColorButton = function(options) {
-        this.initOptions(options);
-        this.initColorButton();
-      };
-    ColorButton.prototype = {
-      initColorButton: function() {
-        var me = this;
-        this.popup = new Popup({
-          content: new ColorPicker({
-            noColorText: me.editor.getLang("clearColor"),
-            editor: me.editor,
-            onpickcolor: function(t, color) {
-              me._onPickColor(color);
-            },
-            onpicknocolor: function(t, color) {
-              me._onPickNoColor(color);
-            }
-          }),
-          editor: me.editor
-        });
-        this.initSplitButton();
-      },
-      _SplitButton_postRender: SplitButton.prototype.postRender,
-      postRender: function() {
-        this._SplitButton_postRender();
-        this.getDom('button_body').appendChild(
-          uiUtils.createElementByHtml('<div id="' + this.id + '_colorlump" class="edui-colorlump"></div>')
-        );
-        this.getDom().className += ' edui-colorbutton';
-      },
-      setColor: function(color) {
-        this.getDom('colorlump').style.backgroundColor = color;
-        this.color = color;
-      },
-      _onPickColor: function(color) {
-        if (this.fireEvent('pickcolor', color) !== false) {
-          this.setColor(color);
-          this.popup.hide();
-        }
-      },
-      _onPickNoColor: function(color) {
-        if (this.fireEvent('picknocolor') !== false) {
-          this.popup.hide();
-        }
-      }
-    };
-    utils.inherits(ColorButton, SplitButton);
-
-  })();
-
-
-  // ui/tablebutton.js
-  ///import core
-  ///import uicore
-  ///import ui/popup.js
-  ///import ui/tablepicker.js
-  ///import ui/splitbutton.js
-  (function() {
-    var utils = baidu.editor.utils,
-      Popup = baidu.editor.ui.Popup,
-      TablePicker = baidu.editor.ui.TablePicker,
-      SplitButton = baidu.editor.ui.SplitButton,
-      TableButton = baidu.editor.ui.TableButton = function(options) {
-        this.initOptions(options);
-        this.initTableButton();
-      };
-    TableButton.prototype = {
-      initTableButton: function() {
-        var me = this;
-        this.popup = new Popup({
-          content: new TablePicker({
-            editor: me.editor,
-            onpicktable: function(t, numCols, numRows) {
-              me._onPickTable(numCols, numRows);
-            }
-          }),
-          'editor': me.editor
-        });
-        this.initSplitButton();
-      },
-      _onPickTable: function(numCols, numRows) {
-        if (this.fireEvent('picktable', numCols, numRows) !== false) {
-          this.popup.hide();
-        }
-      }
-    };
-    utils.inherits(TableButton, SplitButton);
-
-  })();
-
-
-  // ui/autotypesetpicker.js
-  ///import core
-  ///import uicore
-  (function() {
-    var utils = baidu.editor.utils,
-      UIBase = baidu.editor.ui.UIBase;
-
-    var AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker = function(options) {
-      this.initOptions(options);
-      this.initAutoTypeSetPicker();
-    };
-    AutoTypeSetPicker.prototype = {
-      initAutoTypeSetPicker: function() {
-        this.initUIBase();
-      },
-      getHtmlTpl: function() {
-        var me = this.editor,
-          opt = me.options.autotypeset,
-          lang = me.getLang("autoTypeSet");
-
-        var textAlignInputName = 'textAlignValue' + me.uid,
-          imageBlockInputName = 'imageBlockLineValue' + me.uid,
-          symbolConverInputName = 'symbolConverValue' + me.uid;
-
-        return '<div id="##" class="edui-autotypesetpicker %%">' +
-          '<div class="edui-autotypesetpicker-body">' +
-          '<table >' +
-          '<tr><td nowrap><input type="checkbox" name="mergeEmptyline" ' + (opt["mergeEmptyline"] ? "checked" :
-            "") + '>' + lang.mergeLine + '</td><td colspan="2"><input type="checkbox" name="removeEmptyline" ' +
-          (opt["removeEmptyline"] ? "checked" : "") + '>' + lang.delLine + '</td></tr>' +
-          '<tr><td nowrap><input type="checkbox" name="removeClass" ' + (opt["removeClass"] ? "checked" : "") +
-          '>' + lang.removeFormat + '</td><td colspan="2"><input type="checkbox" name="indent" ' + (opt[
-            "indent"] ? "checked" : "") + '>' + lang.indent + '</td></tr>' +
-          '<tr>' +
-          '<td nowrap><input type="checkbox" name="textAlign" ' + (opt["textAlign"] ? "checked" : "") + '>' +
-          lang.alignment + '</td>' +
-          '<td colspan="2" id="' + textAlignInputName + '">' +
-          '<input type="radio" name="' + textAlignInputName + '" value="left" ' + ((opt["textAlign"] && opt[
-            "textAlign"] == "left") ? "checked" : "") + '>' + me.getLang("justifyleft") +
-          '<input type="radio" name="' + textAlignInputName + '" value="center" ' + ((opt["textAlign"] && opt[
-            "textAlign"] == "center") ? "checked" : "") + '>' + me.getLang("justifycenter") +
-          '<input type="radio" name="' + textAlignInputName + '" value="right" ' + ((opt["textAlign"] && opt[
-            "textAlign"] == "right") ? "checked" : "") + '>' + me.getLang("justifyright") +
-          '</td>' +
-          '</tr>' +
-          '<tr>' +
-          '<td nowrap><input type="checkbox" name="imageBlockLine" ' + (opt["imageBlockLine"] ? "checked" : "") +
-          '>' + lang.imageFloat + '</td>' +
-          '<td nowrap id="' + imageBlockInputName + '">' +
-          '<input type="radio" name="' + imageBlockInputName + '" value="none" ' + ((opt["imageBlockLine"] &&
-            opt["imageBlockLine"] == "none") ? "checked" : "") + '>' + me.getLang("default") +
-          '<input type="radio" name="' + imageBlockInputName + '" value="left" ' + ((opt["imageBlockLine"] &&
-            opt["imageBlockLine"] == "left") ? "checked" : "") + '>' + me.getLang("justifyleft") +
-          '<input type="radio" name="' + imageBlockInputName + '" value="center" ' + ((opt["imageBlockLine"] &&
-            opt["imageBlockLine"] == "center") ? "checked" : "") + '>' + me.getLang("justifycenter") +
-          '<input type="radio" name="' + imageBlockInputName + '" value="right" ' + ((opt["imageBlockLine"] &&
-            opt["imageBlockLine"] == "right") ? "checked" : "") + '>' + me.getLang("justifyright") +
-          '</td>' +
-          '</tr>' +
-          '<tr><td nowrap><input type="checkbox" name="clearFontSize" ' + (opt["clearFontSize"] ? "checked" :
-            "") + '>' + lang.removeFontsize +
-          '</td><td colspan="2"><input type="checkbox" name="clearFontFamily" ' + (opt["clearFontFamily"] ?
-            "checked" : "") + '>' + lang.removeFontFamily + '</td></tr>' +
-          '<tr><td nowrap colspan="3"><input type="checkbox" name="removeEmptyNode" ' + (opt["removeEmptyNode"] ?
-            "checked" : "") + '>' + lang.removeHtml + '</td></tr>' +
-          '<tr><td nowrap colspan="3"><input type="checkbox" name="pasteFilter" ' + (opt["pasteFilter"] ?
-            "checked" : "") + '>' + lang.pasteFilter + '</td></tr>' +
-          '<tr>' +
-          '<td nowrap><input type="checkbox" name="symbolConver" ' + (opt["bdc2sb"] || opt["tobdc"] ? "checked" :
-            "") + '>' + lang.symbol + '</td>' +
-          '<td id="' + symbolConverInputName + '">' +
-          '<input type="radio" name="bdc" value="bdc2sb" ' + (opt["bdc2sb"] ? "checked" : "") + '>' + lang.bdc2sb +
-          '<input type="radio" name="bdc" value="tobdc" ' + (opt["tobdc"] ? "checked" : "") + '>' + lang.tobdc +
-          '' +
-          '</td>' +
-          '<td nowrap align="right"><button >' + lang.run + '</button></td>' +
-          '</tr>' +
-          '</table>' +
-          '</div>' +
-          '</div>';
-
-
-      },
-      _UIBase_render: UIBase.prototype.render
-    };
-    utils.inherits(AutoTypeSetPicker, UIBase);
-  })();
-
-
-  // ui/autotypesetbutton.js
-  ///import core
-  ///import uicore
-  ///import ui/popup.js
-  ///import ui/autotypesetpicker.js
-  ///import ui/splitbutton.js
-  (function() {
-    var utils = baidu.editor.utils,
-      Popup = baidu.editor.ui.Popup,
-      AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker,
-      SplitButton = baidu.editor.ui.SplitButton,
-      AutoTypeSetButton = baidu.editor.ui.AutoTypeSetButton = function(options) {
-        this.initOptions(options);
-        this.initAutoTypeSetButton();
-      };
-
-    function getPara(me) {
-
-      var opt = {},
-        cont = me.getDom(),
-        editorId = me.editor.uid,
-        inputType = null,
-        attrName = null,
-        ipts = domUtils.getElementsByTagName(cont, "input");
-      for (var i = ipts.length - 1, ipt; ipt = ipts[i--];) {
-        inputType = ipt.getAttribute("type");
-        if (inputType == "checkbox") {
-          attrName = ipt.getAttribute("name");
-          opt[attrName] && delete opt[attrName];
-          if (ipt.checked) {
-            var attrValue = document.getElementById(attrName + "Value" + editorId);
-            if (attrValue) {
-              if (/input/ig.test(attrValue.tagName)) {
-                opt[attrName] = attrValue.value;
-              } else {
-                var iptChilds = attrValue.getElementsByTagName("input");
-                for (var j = iptChilds.length - 1, iptchild; iptchild = iptChilds[j--];) {
-                  if (iptchild.checked) {
-                    opt[attrName] = iptchild.value;
-                    break;
-                  }
-                }
-              }
-            } else {
-              opt[attrName] = true;
-            }
-          } else {
-            opt[attrName] = false;
-          }
-        } else {
-          opt[ipt.getAttribute("value")] = ipt.checked;
-        }
-
-      }
-
-      var selects = domUtils.getElementsByTagName(cont, "select");
-      for (var i = 0, si; si = selects[i++];) {
-        var attr = si.getAttribute('name');
-        opt[attr] = opt[attr] ? si.value : '';
-      }
-
-      utils.extend(me.editor.options.autotypeset, opt);
-
-      me.editor.setPreferences('autotypeset', opt);
-    }
-
-    AutoTypeSetButton.prototype = {
-      initAutoTypeSetButton: function() {
-
-        var me = this;
-        this.popup = new Popup({
-          //浼犲叆閰嶇疆鍙傛暟
-          content: new AutoTypeSetPicker({
-            editor: me.editor
-          }),
-          'editor': me.editor,
-          hide: function() {
-            if (!this._hidden && this.getDom()) {
-              getPara(this);
-              this.getDom().style.display = 'none';
-              this._hidden = true;
-              this.fireEvent('hide');
-            }
-          }
-        });
-        var flag = 0;
-        this.popup.addListener('postRenderAfter', function() {
-          var popupUI = this;
-          if (flag) return;
-          var cont = this.getDom(),
-            btn = cont.getElementsByTagName('button')[0];
-
-          btn.onclick = function() {
-            getPara(popupUI);
-            me.editor.execCommand('autotypeset');
-            popupUI.hide()
-          };
-
-          domUtils.on(cont, 'click', function(e) {
-            var target = e.target || e.srcElement,
-              editorId = me.editor.uid;
-            if (target && target.tagName == 'INPUT') {
-
-              // 鐐瑰嚮鍥剧墖娴姩鐨刢heckbox,鍘婚櫎瀵瑰簲鐨剅adio
-              if (target.name == 'imageBlockLine' || target.name == 'textAlign' || target.name ==
-                'symbolConver') {
-                var checked = target.checked,
-                  radioTd = document.getElementById(target.name + 'Value' + editorId),
-                  radios = radioTd.getElementsByTagName('input'),
-                  defalutSelect = {
-                    'imageBlockLine': 'none',
-                    'textAlign': 'left',
-                    'symbolConver': 'tobdc'
-                  };
-
-                for (var i = 0; i < radios.length; i++) {
-                  if (checked) {
-                    if (radios[i].value == defalutSelect[target.name]) {
-                      radios[i].checked = 'checked';
-                    }
-                  } else {
-                    radios[i].checked = false;
-                  }
-                }
-              }
-              // 鐐瑰嚮radio,閫変腑瀵瑰簲鐨刢heckbox
-              if (target.name == ('imageBlockLineValue' + editorId) || target.name == ('textAlignValue' +
-                  editorId) || target.name == 'bdc') {
-                var checkboxs = target.parentNode.previousSibling.getElementsByTagName('input');
-                checkboxs && (checkboxs[0].checked = true);
-              }
-
-              getPara(popupUI);
-            }
-          });
-
-          flag = 1;
-        });
-        this.initSplitButton();
-      }
-    };
-    utils.inherits(AutoTypeSetButton, SplitButton);
-
-  })();
-
-
-  // ui/cellalignpicker.js
-  ///import core
-  ///import uicore
-  (function() {
-    var utils = baidu.editor.utils,
-      Popup = baidu.editor.ui.Popup,
-      Stateful = baidu.editor.ui.Stateful,
-      UIBase = baidu.editor.ui.UIBase;
-
-    /**
-     * 璇ュ弬鏁板皢鏂板涓�涓弬鏁帮細 selected锛� 鍙傛暟绫诲瀷涓轰竴涓狾bject锛� 褰㈠{ 'align': 'center', 'valign': 'top' }锛� 琛ㄧず鍗曞厓鏍肩殑鍒濆
-     * 瀵归綈鐘舵�佷负锛� 绔栫洿灞呬笂锛屾按骞冲眳涓�; 鍏朵腑 align鐨勫彇鍊间负锛�'center', 'left', 'right'; valign鐨勫彇鍊间负: 'top', 'middle', 'bottom'
-     * @update 2013/4/2 hancong03@baidu.com
-     */
-    var CellAlignPicker = baidu.editor.ui.CellAlignPicker = function(options) {
-      this.initOptions(options);
-      this.initSelected();
-      this.initCellAlignPicker();
-    };
-    CellAlignPicker.prototype = {
-      //鍒濆鍖栭�変腑鐘舵�侊紝 璇ユ柟娉曞皢鏍规嵁浼犻�掕繘鏉ョ殑鍙傛暟鑾峰彇鍒板簲璇ラ�変腑鐨勫榻愭柟寮忓浘鏍囩殑绱㈠紩
-      initSelected: function() {
-
-        var status = {
-
-            valign: {
-              top: 0,
-              middle: 1,
-              bottom: 2
-            },
-            align: {
-              left: 0,
-              center: 1,
-              right: 2
-            },
-            count: 3
-
-          },
-          result = -1;
-
-        if (this.selected) {
-          this.selectedIndex = status.valign[this.selected.valign] * status.count + status.align[this.selected.align];
-        }
-
-      },
-      initCellAlignPicker: function() {
-        this.initUIBase();
-        this.Stateful_init();
-      },
-      getHtmlTpl: function() {
-
-        var alignType = ['left', 'center', 'right'],
-          COUNT = 9,
-          tempClassName = null,
-          tempIndex = -1,
-          tmpl = [];
-
-
-        for (var i = 0; i < COUNT; i++) {
-
-          tempClassName = this.selectedIndex === i ? ' class="edui-cellalign-selected" ' : '';
-          tempIndex = i % 3;
-
-          tempIndex === 0 && tmpl.push('<tr>');
-
-          tmpl.push('<td index="' + i + '" ' + tempClassName + ' stateful><div class="edui-icon edui-' +
-            alignType[tempIndex] + '"></div></td>');
-
-          tempIndex === 2 && tmpl.push('</tr>');
-
-        }
-
-        return '<div id="##" class="edui-cellalignpicker %%">' +
-          '<div class="edui-cellalignpicker-body">' +
-          '<table onclick="$$._onClick(event);">' +
-          tmpl.join('') +
-          '</table>' +
-          '</div>' +
-          '</div>';
-      },
-      getStateDom: function() {
-        return this.target;
-      },
-      _onClick: function(evt) {
-        var target = evt.target || evt.srcElement;
-        if (/icon/.test(target.className)) {
-          this.items[target.parentNode.getAttribute("index")].onclick();
-          Popup.postHide(evt);
-        }
-      },
-      _UIBase_render: UIBase.prototype.render
-    };
-    utils.inherits(CellAlignPicker, UIBase);
-    utils.extend(CellAlignPicker.prototype, Stateful, true);
-  })();
-
-
-
-
-
-  // ui/pastepicker.js
-  ///import core
-  ///import uicore
-  (function() {
-    var utils = baidu.editor.utils,
-      Stateful = baidu.editor.ui.Stateful,
-      uiUtils = baidu.editor.ui.uiUtils,
-      UIBase = baidu.editor.ui.UIBase;
-
-    var PastePicker = baidu.editor.ui.PastePicker = function(options) {
-      this.initOptions(options);
-      this.initPastePicker();
-    };
-    PastePicker.prototype = {
-      initPastePicker: function() {
-        this.initUIBase();
-        this.Stateful_init();
-      },
-      getHtmlTpl: function() {
-        return '<div class="edui-pasteicon" onclick="$$._onClick(this)"></div>' +
-          '<div class="edui-pastecontainer">' +
-          '<div class="edui-title">' + this.editor.getLang("pasteOpt") + '</div>' +
-          '<div class="edui-button">' +
-          '<div title="' + this.editor.getLang("pasteSourceFormat") + '" onclick="$$.format(false)" stateful>' +
-          '<div class="edui-richtxticon"></div></div>' +
-          '<div title="' + this.editor.getLang("tagFormat") + '" onclick="$$.format(2)" stateful>' +
-          '<div class="edui-tagicon"></div></div>' +
-          '<div title="' + this.editor.getLang("pasteTextFormat") + '" onclick="$$.format(true)" stateful>' +
-          '<div class="edui-plaintxticon"></div></div>' +
-          '</div>' +
-          '</div>' +
-          '</div>'
-      },
-      getStateDom: function() {
-        return this.target;
-      },
-      format: function(param) {
-        this.editor.ui._isTransfer = true;
-        this.editor.fireEvent('pasteTransfer', param);
-      },
-      _onClick: function(cur) {
-        var node = domUtils.getNextDomNode(cur),
-          screenHt = uiUtils.getViewportRect().height,
-          subPop = uiUtils.getClientRect(node);
-
-        if ((subPop.top + subPop.height) > screenHt)
-          node.style.top = (-subPop.height - cur.offsetHeight) + "px";
-        else
-          node.style.top = "";
-
-        if (/hidden/ig.test(domUtils.getComputedStyle(node, "visibility"))) {
-          node.style.visibility = "visible";
-          domUtils.addClass(cur, "edui-state-opened");
-        } else {
-          node.style.visibility = "hidden";
-          domUtils.removeClasses(cur, "edui-state-opened")
-        }
-      },
-      _UIBase_render: UIBase.prototype.render
-    };
-    utils.inherits(PastePicker, UIBase);
-    utils.extend(PastePicker.prototype, Stateful, true);
-  })();
-
-
-
-
-
-
-  // ui/toolbar.js
-  (function() {
-    var utils = baidu.editor.utils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      UIBase = baidu.editor.ui.UIBase,
-      Toolbar = baidu.editor.ui.Toolbar = function(options) {
-        this.initOptions(options);
-        this.initToolbar();
-      };
-    Toolbar.prototype = {
-      items: null,
-      initToolbar: function() {
-        this.items = this.items || [];
-        this.initUIBase();
-      },
-      add: function(item, index) {
-        if (index === undefined) {
-          this.items.push(item);
-        } else {
-          this.items.splice(index, 0, item)
-        }
-
-      },
-      getHtmlTpl: function() {
-        var buff = [];
-        for (var i = 0; i < this.items.length; i++) {
-          buff[i] = this.items[i].renderHtml();
-        }
-        return '<div id="##" class="edui-toolbar %%" onselectstart="return false;" onmousedown="return $$._onMouseDown(event, this);">' +
-          buff.join('') +
-          '</div>'
-      },
-      postRender: function() {
-        var box = this.getDom();
-        for (var i = 0; i < this.items.length; i++) {
-          this.items[i].postRender();
-        }
-        uiUtils.makeUnselectable(box);
-      },
-      _onMouseDown: function(e) {
-        var target = e.target || e.srcElement,
-          tagName = target && target.tagName && target.tagName.toLowerCase();
-        if (tagName == 'input' || tagName == 'object' || tagName == 'object') {
-          return false;
-        }
-      }
-    };
-    utils.inherits(Toolbar, UIBase);
-
-  })();
-
-
-  // ui/menu.js
-  ///import core
-  ///import uicore
-  ///import ui\popup.js
-  ///import ui\stateful.js
-  (function() {
-    var utils = baidu.editor.utils,
-      domUtils = baidu.editor.dom.domUtils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      UIBase = baidu.editor.ui.UIBase,
-      Popup = baidu.editor.ui.Popup,
-      Stateful = baidu.editor.ui.Stateful,
-      CellAlignPicker = baidu.editor.ui.CellAlignPicker,
-
-      Menu = baidu.editor.ui.Menu = function(options) {
-        this.initOptions(options);
-        this.initMenu();
-      };
-
-    var menuSeparator = {
-      renderHtml: function() {
-        return '<div class="edui-menuitem edui-menuseparator"><div class="edui-menuseparator-inner"></div></div>';
-      },
-      postRender: function() {},
-      queryAutoHide: function() {
-        return true;
-      }
-    };
-    Menu.prototype = {
-      items: null,
-      uiName: 'menu',
-      initMenu: function() {
-        this.items = this.items || [];
-        this.initPopup();
-        this.initItems();
-      },
-      initItems: function() {
-        for (var i = 0; i < this.items.length; i++) {
-          var item = this.items[i];
-          if (item == '-') {
-            this.items[i] = this.getSeparator();
-          } else if (!(item instanceof MenuItem)) {
-            item.editor = this.editor;
-            item.theme = this.editor.options.theme;
-            this.items[i] = this.createItem(item);
-          }
-        }
-      },
-      getSeparator: function() {
-        return menuSeparator;
-      },
-      createItem: function(item) {
-        //鏂板涓�涓弬鏁癿enu, 璇ュ弬鏁板瓨鍌ㄤ簡menuItem鎵�瀵瑰簲鐨刴enu寮曠敤
-        item.menu = this;
-        return new MenuItem(item);
-      },
-      _Popup_getContentHtmlTpl: Popup.prototype.getContentHtmlTpl,
-      getContentHtmlTpl: function() {
-        if (this.items.length == 0) {
-          return this._Popup_getContentHtmlTpl();
-        }
-        var buff = [];
-        for (var i = 0; i < this.items.length; i++) {
-          var item = this.items[i];
-          buff[i] = item.renderHtml();
-        }
-        return ('<div class="%%-body">' + buff.join('') + '</div>');
-      },
-      _Popup_postRender: Popup.prototype.postRender,
-      postRender: function() {
-        var me = this;
-        for (var i = 0; i < this.items.length; i++) {
-          var item = this.items[i];
-          item.ownerMenu = this;
-          item.postRender();
-        }
-        domUtils.on(this.getDom(), 'mouseover', function(evt) {
-          evt = evt || event;
-          var rel = evt.relatedTarget || evt.fromElement;
-          var el = me.getDom();
-          if (!uiUtils.contains(el, rel) && el !== rel) {
-            me.fireEvent('over');
-          }
-        });
-        this._Popup_postRender();
-      },
-      queryAutoHide: function(el) {
-        if (el) {
-          if (uiUtils.contains(this.getDom(), el)) {
-            return false;
-          }
-          for (var i = 0; i < this.items.length; i++) {
-            var item = this.items[i];
-            if (item.queryAutoHide(el) === false) {
-              return false;
-            }
-          }
-        }
-      },
-      clearItems: function() {
-        for (var i = 0; i < this.items.length; i++) {
-          var item = this.items[i];
-          clearTimeout(item._showingTimer);
-          clearTimeout(item._closingTimer);
-          if (item.subMenu) {
-            item.subMenu.destroy();
-          }
-        }
-        this.items = [];
-      },
-      destroy: function() {
-        if (this.getDom()) {
-          domUtils.remove(this.getDom());
-        }
-        this.clearItems();
-      },
-      dispose: function() {
-        this.destroy();
-      }
-    };
-    utils.inherits(Menu, Popup);
-
-    /**
-     * @update 2013/04/03 hancong03 鏂板涓�涓弬鏁癿enu, 璇ュ弬鏁板瓨鍌ㄤ簡menuItem鎵�瀵瑰簲鐨刴enu寮曠敤
-     * @type {Function}
-     */
-    var MenuItem = baidu.editor.ui.MenuItem = function(options) {
-      this.initOptions(options);
-      this.initUIBase();
-      this.Stateful_init();
-      if (this.subMenu && !(this.subMenu instanceof Menu)) {
-        if (options.className && options.className.indexOf("aligntd") != -1) {
-          var me = this;
-
-          //鑾峰彇鍗曞厓鏍煎榻愬垵濮嬬姸鎬�
-          this.subMenu.selected = this.editor.queryCommandValue('cellalignment');
-
-          this.subMenu = new Popup({
-            content: new CellAlignPicker(this.subMenu),
-            parentMenu: me,
-            editor: me.editor,
-            destroy: function() {
-              if (this.getDom()) {
-                domUtils.remove(this.getDom());
-              }
-            }
-          });
-          this.subMenu.addListener("postRenderAfter", function() {
-            domUtils.on(this.getDom(), "mouseover", function() {
-              me.addState('opened');
-            });
-          });
-        } else {
-          this.subMenu = new Menu(this.subMenu);
-        }
-      }
-    };
-    MenuItem.prototype = {
-      label: '',
-      subMenu: null,
-      ownerMenu: null,
-      uiName: 'menuitem',
-      alwalysHoverable: true,
-      getHtmlTpl: function() {
-        return '<div id="##" class="%%" stateful onclick="$$._onClick(event, this);">' +
-          '<div class="%%-body">' +
-          this.renderLabelHtml() +
-          '</div>' +
-          '</div>';
-      },
-      postRender: function() {
-        var me = this;
-        this.addListener('over', function() {
-          me.ownerMenu.fireEvent('submenuover', me);
-          if (me.subMenu) {
-            me.delayShowSubMenu();
-          }
-        });
-        if (this.subMenu) {
-          this.getDom().className += ' edui-hassubmenu';
-          this.subMenu.render();
-          this.addListener('out', function() {
-            me.delayHideSubMenu();
-          });
-          this.subMenu.addListener('over', function() {
-            clearTimeout(me._closingTimer);
-            me._closingTimer = null;
-            me.addState('opened');
-          });
-          this.ownerMenu.addListener('hide', function() {
-            me.hideSubMenu();
-          });
-          this.ownerMenu.addListener('submenuover', function(t, subMenu) {
-            if (subMenu !== me) {
-              me.delayHideSubMenu();
-            }
-          });
-          this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide;
-          this.subMenu.queryAutoHide = function(el) {
-            if (el && uiUtils.contains(me.getDom(), el)) {
-              return false;
-            }
-            return this._bakQueryAutoHide(el);
-          };
-        }
-        this.getDom().style.tabIndex = '-1';
-        uiUtils.makeUnselectable(this.getDom());
-        this.Stateful_postRender();
-      },
-      delayShowSubMenu: function() {
-        var me = this;
-        if (!me.isDisabled()) {
-          me.addState('opened');
-          clearTimeout(me._showingTimer);
-          clearTimeout(me._closingTimer);
-          me._closingTimer = null;
-          me._showingTimer = setTimeout(function() {
-            me.showSubMenu();
-          }, 250);
-        }
-      },
-      delayHideSubMenu: function() {
-        var me = this;
-        if (!me.isDisabled()) {
-          me.removeState('opened');
-          clearTimeout(me._showingTimer);
-          if (!me._closingTimer) {
-            me._closingTimer = setTimeout(function() {
-              if (!me.hasState('opened')) {
-                me.hideSubMenu();
-              }
-              me._closingTimer = null;
-            }, 400);
-          }
-        }
-      },
-      renderLabelHtml: function() {
-        return '<div class="edui-arrow"></div>' +
-          '<div class="edui-box edui-icon"></div>' +
-          '<div class="edui-box edui-label %%-label">' + (this.label || '') + '</div>';
-      },
-      getStateDom: function() {
-        return this.getDom();
-      },
-      queryAutoHide: function(el) {
-        if (this.subMenu && this.hasState('opened')) {
-          return this.subMenu.queryAutoHide(el);
-        }
-      },
-      _onClick: function(event, this_) {
-        if (this.hasState('disabled')) return;
-        if (this.fireEvent('click', event, this_) !== false) {
-          if (this.subMenu) {
-            this.showSubMenu();
-          } else {
-            Popup.postHide(event);
-          }
-        }
-      },
-      showSubMenu: function() {
-        var rect = uiUtils.getClientRect(this.getDom());
-        rect.right -= 5;
-        rect.left += 2;
-        rect.width -= 7;
-        rect.top -= 4;
-        rect.bottom += 4;
-        rect.height += 8;
-        this.subMenu.showAnchorRect(rect, true, true);
-      },
-      hideSubMenu: function() {
-        this.subMenu.hide();
-      }
-    };
-    utils.inherits(MenuItem, UIBase);
-    utils.extend(MenuItem.prototype, Stateful, true);
-  })();
-
-
-  // ui/combox.js
-  ///import core
-  ///import uicore
-  ///import ui/menu.js
-  ///import ui/splitbutton.js
-  (function() {
-    // todo: menu鍜宨tem鎻愭垚閫氱敤list
-    var utils = baidu.editor.utils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      Menu = baidu.editor.ui.Menu,
-      SplitButton = baidu.editor.ui.SplitButton,
-      Combox = baidu.editor.ui.Combox = function(options) {
-        this.initOptions(options);
-        this.initCombox();
-      };
-    Combox.prototype = {
-      uiName: 'combox',
-      onbuttonclick: function() {
-        this.showPopup();
-      },
-      initCombox: function() {
-        var me = this;
-        this.items = this.items || [];
-        for (var i = 0; i < this.items.length; i++) {
-          var item = this.items[i];
-          item.uiName = 'listitem';
-          item.index = i;
-          item.onclick = function() {
-            me.selectByIndex(this.index);
-          };
-        }
-        this.popup = new Menu({
-          items: this.items,
-          uiName: 'list',
-          editor: this.editor,
-          captureWheel: true,
-          combox: this
-        });
-
-        this.initSplitButton();
-      },
-      _SplitButton_postRender: SplitButton.prototype.postRender,
-      postRender: function() {
-        this._SplitButton_postRender();
-        this.setLabel(this.label || '');
-        this.setValue(this.initValue || '');
-      },
-      showPopup: function() {
-        var rect = uiUtils.getClientRect(this.getDom());
-        rect.top += 1;
-        rect.bottom -= 1;
-        rect.height -= 2;
-        this.popup.showAnchorRect(rect);
-      },
-      getValue: function() {
-        return this.value;
-      },
-      setValue: function(value) {
-        var index = this.indexByValue(value);
-        if (index != -1) {
-          this.selectedIndex = index;
-          this.setLabel(this.items[index].label);
-          this.value = this.items[index].value;
-        } else {
-          this.selectedIndex = -1;
-          this.setLabel(this.getLabelForUnknowValue(value));
-          this.value = value;
-        }
-      },
-      setLabel: function(label) {
-        this.getDom('button_body').innerHTML = label;
-        this.label = label;
-      },
-      getLabelForUnknowValue: function(value) {
-        return value;
-      },
-      indexByValue: function(value) {
-        for (var i = 0; i < this.items.length; i++) {
-          if (value == this.items[i].value) {
-            return i;
-          }
-        }
-        return -1;
-      },
-      getItem: function(index) {
-        return this.items[index];
-      },
-      selectByIndex: function(index) {
-        if (index < this.items.length && this.fireEvent('select', index) !== false) {
-          this.selectedIndex = index;
-          this.value = this.items[index].value;
-          this.setLabel(this.items[index].label);
-        }
-      }
-    };
-    utils.inherits(Combox, SplitButton);
-  })();
-
-
-  // ui/dialog.js
-  ///import core
-  ///import uicore
-  ///import ui/mask.js
-  ///import ui/button.js
-  (function() {
-    var utils = baidu.editor.utils,
-      domUtils = baidu.editor.dom.domUtils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      Mask = baidu.editor.ui.Mask,
-      UIBase = baidu.editor.ui.UIBase,
-      Button = baidu.editor.ui.Button,
-      Dialog = baidu.editor.ui.Dialog = function(options) {
-        if (options.name) {
-          var name = options.name;
-          var cssRules = options.cssRules;
-          if (!options.className) {
-            options.className = 'edui-for-' + name;
-          }
-          if (cssRules) {
-            options.cssRules = '.edui-default .edui-for-' + name + ' .edui-dialog-content  {' + cssRules + '}'
-          }
-        }
-        this.initOptions(utils.extend({
-          autoReset: true,
-          draggable: true,
-          onok: function() {},
-          oncancel: function() {},
-          onclose: function(t, ok) {
-            return ok ? this.onok() : this.oncancel();
-          },
-          //鏄惁鎺у埗dialog涓殑scroll浜嬩欢锛� 榛樿涓轰笉闃绘
-          holdScroll: false
-        }, options));
-        this.initDialog();
-      };
-    var modalMask;
-    var dragMask;
-    var activeDialog;
-    Dialog.prototype = {
-      draggable: false,
-      uiName: 'dialog',
-      initDialog: function() {
-        var me = this,
-          theme = this.editor.options.theme;
-        if (this.cssRules) {
-          utils.cssRule('edui-customize-' + this.name + '-style', this.cssRules);
-        }
-        this.initUIBase();
-        this.modalMask = (modalMask || (modalMask = new Mask({
-          className: 'edui-dialog-modalmask',
-          theme: theme,
-          onclick: function() {
-            activeDialog && activeDialog.close(false);
-          }
-        })));
-        this.dragMask = (dragMask || (dragMask = new Mask({
-          className: 'edui-dialog-dragmask',
-          theme: theme
-        })));
-        this.closeButton = new Button({
-          className: 'edui-dialog-closebutton',
-          title: me.closeDialog,
-          theme: theme,
-          onclick: function() {
-            me.close(false);
-          }
-        });
-
-        this.fullscreen && this.initResizeEvent();
-
-        if (this.buttons) {
-          for (var i = 0; i < this.buttons.length; i++) {
-            if (!(this.buttons[i] instanceof Button)) {
-              this.buttons[i] = new Button(utils.extend(this.buttons[i], {
-                editor: this.editor
-              }, true));
-            }
-          }
-        }
-      },
-      initResizeEvent: function() {
-
-        var me = this;
-
-        domUtils.on(window, "resize", function() {
-
-          if (me._hidden || me._hidden === undefined) {
-            return;
-          }
-
-          if (me.__resizeTimer) {
-            window.clearTimeout(me.__resizeTimer);
-          }
-
-          me.__resizeTimer = window.setTimeout(function() {
-
-            me.__resizeTimer = null;
-
-            var dialogWrapNode = me.getDom(),
-              contentNode = me.getDom('content'),
-              wrapRect = UE.ui.uiUtils.getClientRect(dialogWrapNode),
-              contentRect = UE.ui.uiUtils.getClientRect(contentNode),
-              vpRect = uiUtils.getViewportRect();
-
-            contentNode.style.width = (vpRect.width - wrapRect.width + contentRect.width) + "px";
-            contentNode.style.height = (vpRect.height - wrapRect.height + contentRect.height) + "px";
-
-            dialogWrapNode.style.width = vpRect.width + "px";
-            dialogWrapNode.style.height = vpRect.height + "px";
-
-            me.fireEvent("resize");
-
-          }, 100);
-
-        });
-
-      },
-      fitSize: function() {
-        var popBodyEl = this.getDom('body');
-        //            if (!(baidu.editor.browser.ie && baidu.editor.browser.version == 7)) {
-        //                uiUtils.removeStyle(popBodyEl, 'width');
-        //                uiUtils.removeStyle(popBodyEl, 'height');
-        //            }
-        var size = this.mesureSize();
-        popBodyEl.style.width = size.width + 'px';
-        popBodyEl.style.height = size.height + 'px';
-        return size;
-      },
-      safeSetOffset: function(offset) {
-        var me = this;
-        var el = me.getDom();
-        var vpRect = uiUtils.getViewportRect();
-        var rect = uiUtils.getClientRect(el);
-        var left = offset.left;
-        if (left + rect.width > vpRect.right) {
-          left = vpRect.right - rect.width;
-        }
-        var top = offset.top;
-        if (top + rect.height > vpRect.bottom) {
-          top = vpRect.bottom - rect.height;
-        }
-        el.style.left = Math.max(left, 0) + 'px';
-        el.style.top = Math.max(top, 0) + 'px';
-      },
-      showAtCenter: function() {
-
-        var vpRect = uiUtils.getViewportRect();
-
-        if (!this.fullscreen) {
-          this.getDom().style.display = '';
-          var popSize = this.fitSize();
-          var titleHeight = this.getDom('titlebar').offsetHeight | 0;
-          var left = vpRect.width / 2 - popSize.width / 2;
-          var top = vpRect.height / 2 - (popSize.height - titleHeight) / 2 - titleHeight;
-          var popEl = this.getDom();
-          this.safeSetOffset({
-            left: Math.max(left | 0, 0),
-            top: Math.max(top | 0, 0)
-          });
-          if (!domUtils.hasClass(popEl, 'edui-state-centered')) {
-            popEl.className += ' edui-state-centered';
-          }
-        } else {
-          var dialogWrapNode = this.getDom(),
-            contentNode = this.getDom('content');
-
-          dialogWrapNode.style.display = "block";
-
-          var wrapRect = UE.ui.uiUtils.getClientRect(dialogWrapNode),
-            contentRect = UE.ui.uiUtils.getClientRect(contentNode);
-          dialogWrapNode.style.left = "-100000px";
-
-          contentNode.style.width = (vpRect.width - wrapRect.width + contentRect.width) + "px";
-          contentNode.style.height = (vpRect.height - wrapRect.height + contentRect.height) + "px";
-
-          dialogWrapNode.style.width = vpRect.width + "px";
-          dialogWrapNode.style.height = vpRect.height + "px";
-          dialogWrapNode.style.left = 0;
-
-          //淇濆瓨鐜鐨刼verflow鍊�
-          this._originalContext = {
-            html: {
-              overflowX: document.documentElement.style.overflowX,
-              overflowY: document.documentElement.style.overflowY
-            },
-            body: {
-              overflowX: document.body.style.overflowX,
-              overflowY: document.body.style.overflowY
-            }
-          };
-
-          document.documentElement.style.overflowX = 'hidden';
-          document.documentElement.style.overflowY = 'hidden';
-          document.body.style.overflowX = 'hidden';
-          document.body.style.overflowY = 'hidden';
-
-        }
-
-        this._show();
-      },
-      getContentHtml: function() {
-        var contentHtml = '';
-        if (typeof this.content == 'string') {
-          contentHtml = this.content;
-        } else if (this.iframeUrl) {
-          contentHtml = '<span id="' + this.id + '_contmask" class="dialogcontmask"></span><iframe id="' + this
-            .id +
-            '_iframe" class="%%-iframe" height="100%" width="100%" frameborder="0" src="' + this.iframeUrl +
-            '"></iframe>';
-        }
-        return contentHtml;
-      },
-      getHtmlTpl: function() {
-        var footHtml = '';
-
-        if (this.buttons) {
-          var buff = [];
-          for (var i = 0; i < this.buttons.length; i++) {
-            buff[i] = this.buttons[i].renderHtml();
-          }
-          footHtml = '<div class="%%-foot">' +
-            '<div id="##_buttons" class="%%-buttons">' + buff.join('') + '</div>' +
-            '</div>';
-        }
-
-        return '<div id="##" class="%%"><div ' + (!this.fullscreen ? 'class="%%"' :
-            'class="%%-wrap edui-dialog-fullscreen-flag"') + '><div id="##_body" class="%%-body">' +
-          '<div class="%%-shadow"></div>' +
-          '<div id="##_titlebar" class="%%-titlebar">' +
-          '<div class="%%-draghandle" onmousedown="$$._onTitlebarMouseDown(event, this);">' +
-          '<span class="%%-caption">' + (this.title || '') + '</span>' +
-          '</div>' +
-          this.closeButton.renderHtml() +
-          '</div>' +
-          '<div id="##_content" class="%%-content">' + (this.autoReset ? '' : this.getContentHtml()) + '</div>' +
-          footHtml +
-          '</div></div></div>';
-      },
-      postRender: function() {
-        // todo: 淇濇寔灞呬腑/璁颁綇涓婃鍏抽棴浣嶇疆閫夐」
-        if (!this.modalMask.getDom()) {
-          this.modalMask.render();
-          this.modalMask.hide();
-        }
-        if (!this.dragMask.getDom()) {
-          this.dragMask.render();
-          this.dragMask.hide();
-        }
-        var me = this;
-        this.addListener('show', function() {
-          me.modalMask.show(this.getDom().style.zIndex - 2);
-        });
-        this.addListener('hide', function() {
-          me.modalMask.hide();
-        });
-        if (this.buttons) {
-          for (var i = 0; i < this.buttons.length; i++) {
-            this.buttons[i].postRender();
-          }
-        }
-        domUtils.on(window, 'resize', function() {
-          setTimeout(function() {
-            if (!me.isHidden()) {
-              me.safeSetOffset(uiUtils.getClientRect(me.getDom()));
-            }
-          });
-        });
-
-        //hold浣弒croll浜嬩欢锛岄槻姝ialog鐨勬粴鍔ㄥ奖鍝嶉〉闈�
-        //            if( this.holdScroll ) {
-        //
-        //                if( !me.iframeUrl ) {
-        //                    domUtils.on( document.getElementById( me.id + "_iframe"), !browser.gecko ? "mousewheel" : "DOMMouseScroll", function(e){
-        //                        domUtils.preventDefault(e);
-        //                    } );
-        //                } else {
-        //                    me.addListener('dialogafterreset', function(){
-        //                        window.setTimeout(function(){
-        //                            var iframeWindow = document.getElementById( me.id + "_iframe").contentWindow;
-        //
-        //                            if( browser.ie ) {
-        //
-        //                                var timer = window.setInterval(function(){
-        //
-        //                                    if( iframeWindow.document && iframeWindow.document.body ) {
-        //                                        window.clearInterval( timer );
-        //                                        timer = null;
-        //                                        domUtils.on( iframeWindow.document.body, !browser.gecko ? "mousewheel" : "DOMMouseScroll", function(e){
-        //                                            domUtils.preventDefault(e);
-        //                                        } );
-        //                                    }
-        //
-        //                                }, 100);
-        //
-        //                            } else {
-        //                                domUtils.on( iframeWindow, !browser.gecko ? "mousewheel" : "DOMMouseScroll", function(e){
-        //                                    domUtils.preventDefault(e);
-        //                                } );
-        //                            }
-        //
-        //                        }, 1);
-        //                    });
-        //                }
-        //
-        //            }
-        this._hide();
-      },
-      mesureSize: function() {
-        var body = this.getDom('body');
-        var width = uiUtils.getClientRect(this.getDom('content')).width;
-        var dialogBodyStyle = body.style;
-        dialogBodyStyle.width = width;
-        return uiUtils.getClientRect(body);
-      },
-      _onTitlebarMouseDown: function(evt, el) {
-        if (this.draggable) {
-          var rect;
-          var vpRect = uiUtils.getViewportRect();
-          var me = this;
-          uiUtils.startDrag(evt, {
-            ondragstart: function() {
-              rect = uiUtils.getClientRect(me.getDom());
-              me.getDom('contmask').style.visibility = 'visible';
-              me.dragMask.show(me.getDom().style.zIndex - 1);
-            },
-            ondragmove: function(x, y) {
-              var left = rect.left + x;
-              var top = rect.top + y;
-              me.safeSetOffset({
-                left: left,
-                top: top
-              });
-            },
-            ondragstop: function() {
-              me.getDom('contmask').style.visibility = 'hidden';
-              domUtils.removeClasses(me.getDom(), ['edui-state-centered']);
-              me.dragMask.hide();
-            }
-          });
-        }
-      },
-      reset: function() {
-        this.getDom('content').innerHTML = this.getContentHtml();
-        this.fireEvent('dialogafterreset');
-      },
-      _show: function() {
-        if (this._hidden) {
-          this.getDom().style.display = '';
-
-          //瑕侀珮杩囩紪杈戝櫒鐨剒indxe
-          this.editor.container.style.zIndex && (this.getDom().style.zIndex = this.editor.container.style.zIndex *
-            1 + 10);
-          this._hidden = false;
-          this.fireEvent('show');
-          baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = this.getDom().style.zIndex - 4;
-        }
-      },
-      isHidden: function() {
-        return this._hidden;
-      },
-      _hide: function() {
-        if (!this._hidden) {
-          var wrapNode = this.getDom();
-          wrapNode.style.display = 'none';
-          wrapNode.style.zIndex = '';
-          wrapNode.style.width = '';
-          wrapNode.style.height = '';
-          this._hidden = true;
-          this.fireEvent('hide');
-        }
-      },
-      open: function() {
-        if (this.autoReset) {
-          //鏈夊彲鑳借繕娌℃湁娓叉煋
-          try {
-            this.reset();
-          } catch (e) {
-            this.render();
-            this.open()
-          }
-        }
-        this.showAtCenter();
-        if (this.iframeUrl) {
-          try {
-            this.getDom('iframe').focus();
-          } catch (ex) {}
-        }
-        activeDialog = this;
-      },
-      _onCloseButtonClick: function(evt, el) {
-        this.close(false);
-      },
-      close: function(ok) {
-        if (this.fireEvent('close', ok) !== false) {
-          //杩樺師鐜
-          if (this.fullscreen) {
-
-            document.documentElement.style.overflowX = this._originalContext.html.overflowX;
-            document.documentElement.style.overflowY = this._originalContext.html.overflowY;
-            document.body.style.overflowX = this._originalContext.body.overflowX;
-            document.body.style.overflowY = this._originalContext.body.overflowY;
-            delete this._originalContext;
-
-          }
-          this._hide();
-
-          //閿�姣乧ontent
-          var content = this.getDom('content');
-          var iframe = this.getDom('iframe');
-          if (content && iframe) {
-            var doc = iframe.contentDocument || iframe.contentWindow.document;
-            doc && (doc.body.innerHTML = '');
-            domUtils.remove(content);
-          }
-        }
-      }
-    };
-    utils.inherits(Dialog, UIBase);
-  })();
-
-
-  // ui/menubutton.js
-  ///import core
-  ///import uicore
-  ///import ui/menu.js
-  ///import ui/splitbutton.js
-  (function() {
-    var utils = baidu.editor.utils,
-      Menu = baidu.editor.ui.Menu,
-      SplitButton = baidu.editor.ui.SplitButton,
-      MenuButton = baidu.editor.ui.MenuButton = function(options) {
-        this.initOptions(options);
-        this.initMenuButton();
-      };
-    MenuButton.prototype = {
-      initMenuButton: function() {
-        var me = this;
-        this.uiName = "menubutton";
-        this.popup = new Menu({
-          items: me.items,
-          className: me.className,
-          editor: me.editor
-        });
-        this.popup.addListener('show', function() {
-          var list = this;
-          for (var i = 0; i < list.items.length; i++) {
-            list.items[i].removeState('checked');
-            if (list.items[i].value == me._value) {
-              list.items[i].addState('checked');
-              this.value = me._value;
-            }
-          }
-        });
-        this.initSplitButton();
-      },
-      setValue: function(value) {
-        this._value = value;
-      }
-
-    };
-    utils.inherits(MenuButton, SplitButton);
-  })();
-
-  // ui/multiMenu.js
-  ///import core
-  ///import uicore
-  ///commands 琛ㄦ儏
-  (function() {
-    var utils = baidu.editor.utils,
-      Popup = baidu.editor.ui.Popup,
-      SplitButton = baidu.editor.ui.SplitButton,
-      MultiMenuPop = baidu.editor.ui.MultiMenuPop = function(options) {
-        this.initOptions(options);
-        this.initMultiMenu();
-      };
-
-    MultiMenuPop.prototype = {
-      initMultiMenu: function() {
-        var me = this;
-        this.popup = new Popup({
-          content: '',
-          editor: me.editor,
-          iframe_rendered: false,
-          onshow: function() {
-            if (!this.iframe_rendered) {
-              this.iframe_rendered = true;
-              this.getDom('content').innerHTML = '<iframe id="' + me.id + '_iframe" src="' + me.iframeUrl +
-                '" frameborder="0"></iframe>';
-              me.editor.container.style.zIndex && (this.getDom().style.zIndex = me.editor.container.style
-                .zIndex * 1 + 1);
-            }
-          }
-          // canSideUp:false,
-          // canSideLeft:false
-        });
-        this.onbuttonclick = function() {
-          this.showPopup();
-        };
-        this.initSplitButton();
-      }
-
-    };
-
-    utils.inherits(MultiMenuPop, SplitButton);
-  })();
-
-
-  // ui/shortcutmenu.js
-  (function() {
-    var UI = baidu.editor.ui,
-      UIBase = UI.UIBase,
-      uiUtils = UI.uiUtils,
-      utils = baidu.editor.utils,
-      domUtils = baidu.editor.dom.domUtils;
-
-    var allMenus = [], //瀛樺偍鎵�鏈夊揩鎹疯彍鍗�
-      timeID,
-      isSubMenuShow = false; //鏄惁鏈夊瓙pop鏄剧ず
-
-    var ShortCutMenu = UI.ShortCutMenu = function(options) {
-      this.initOptions(options);
-      this.initShortCutMenu();
-    };
-
-    ShortCutMenu.postHide = hideAllMenu;
-
-    ShortCutMenu.prototype = {
-      isHidden: true,
-      SPACE: 5,
-      initShortCutMenu: function() {
-        this.items = this.items || [];
-        this.initUIBase();
-        this.initItems();
-        this.initEvent();
-        allMenus.push(this);
-      },
-      initEvent: function() {
-        var me = this,
-          doc = me.editor.document;
-
-        domUtils.on(doc, "mousemove", function(e) {
-          if (me.isHidden === false) {
-            //鏈塸op鏄剧ず灏变笉闅愯棌蹇嵎鑿滃崟
-            if (me.getSubMenuMark() || me.eventType == "contextmenu") return;
-
-
-            var flag = true,
-              el = me.getDom(),
-              wt = el.offsetWidth,
-              ht = el.offsetHeight,
-              distanceX = wt / 2 + me.SPACE, //璺濈涓績X鏍囧噯
-              distanceY = ht / 2, //璺濈涓績Y鏍囧噯
-              x = Math.abs(e.screenX - me.left), //绂讳腑蹇冭窛绂绘í鍧愭爣
-              y = Math.abs(e.screenY - me.top); //绂讳腑蹇冭窛绂荤旱鍧愭爣
-
-            clearTimeout(timeID);
-            timeID = setTimeout(function() {
-              if (y > 0 && y < distanceY) {
-                me.setOpacity(el, "1");
-              } else if (y > distanceY && y < distanceY + 70) {
-                me.setOpacity(el, "0.5");
-                flag = false;
-              } else if (y > distanceY + 70 && y < distanceY + 140) {
-                me.hide();
-              }
-
-              if (flag && x > 0 && x < distanceX) {
-                me.setOpacity(el, "1")
-              } else if (x > distanceX && x < distanceX + 70) {
-                me.setOpacity(el, "0.5")
-              } else if (x > distanceX + 70 && x < distanceX + 140) {
-                me.hide();
-              }
-            });
-          }
-        });
-
-        //ie\ff涓� mouseout涓嶅噯
-        if (browser.chrome) {
-          domUtils.on(doc, "mouseout", function(e) {
-            var relatedTgt = e.relatedTarget || e.toElement;
-
-            if (relatedTgt == null || relatedTgt.tagName == "HTML") {
-              me.hide();
-            }
-          });
-        }
-
-        me.editor.addListener("afterhidepop", function() {
-          if (!me.isHidden) {
-            isSubMenuShow = true;
-          }
-        });
-
-      },
-      initItems: function() {
-        if (utils.isArray(this.items)) {
-          for (var i = 0, len = this.items.length; i < len; i++) {
-            var item = this.items[i].toLowerCase();
-
-            if (UI[item]) {
-              this.items[i] = new UI[item](this.editor);
-              this.items[i].className += " edui-shortcutsubmenu ";
-            }
-          }
-        }
-      },
-      setOpacity: function(el, value) {
-        if (browser.ie && browser.version < 9) {
-          el.style.filter = "alpha(opacity = " + parseFloat(value) * 100 + ");"
-        } else {
-          el.style.opacity = value;
-        }
-      },
-      getSubMenuMark: function() {
-        isSubMenuShow = false;
-        var layerEle = uiUtils.getFixedLayer();
-        var list = domUtils.getElementsByTagName(layerEle, "div", function(node) {
-          return domUtils.hasClass(node, "edui-shortcutsubmenu edui-popup")
-        });
-
-        for (var i = 0, node; node = list[i++];) {
-          if (node.style.display != "none") {
-            isSubMenuShow = true;
-          }
-        }
-        return isSubMenuShow;
-      },
-      show: function(e, hasContextmenu) {
-        var me = this,
-          offset = {},
-          el = this.getDom(),
-          fixedlayer = uiUtils.getFixedLayer();
-
-        function setPos(offset) {
-          if (offset.left < 0) {
-            offset.left = 0;
-          }
-          if (offset.top < 0) {
-            offset.top = 0;
-          }
-          el.style.cssText = "position:absolute;left:" + offset.left + "px;top:" + offset.top + "px;";
-        }
-
-        function setPosByCxtMenu(menu) {
-          if (!menu.tagName) {
-            menu = menu.getDom();
-          }
-          offset.left = parseInt(menu.style.left);
-          offset.top = parseInt(menu.style.top);
-          offset.top -= el.offsetHeight + 15;
-          setPos(offset);
-        }
-
-
-        me.eventType = e.type;
-        el.style.cssText = "display:block;left:-9999px";
-
-        if (e.type == "contextmenu" && hasContextmenu) {
-          var menu = domUtils.getElementsByTagName(fixedlayer, "div", "edui-contextmenu")[0];
-          if (menu) {
-            setPosByCxtMenu(menu)
-          } else {
-            me.editor.addListener("aftershowcontextmenu", function(type, menu) {
-              setPosByCxtMenu(menu);
-            });
-          }
-        } else {
-          offset = uiUtils.getViewportOffsetByEvent(e);
-          offset.top -= el.offsetHeight + me.SPACE;
-          offset.left += me.SPACE + 20;
-          setPos(offset);
-          me.setOpacity(el, 0.2);
-        }
-
-
-        me.isHidden = false;
-        me.left = e.screenX + el.offsetWidth / 2 - me.SPACE;
-        me.top = e.screenY - (el.offsetHeight / 2) - me.SPACE;
-
-        if (me.editor) {
-          el.style.zIndex = me.editor.container.style.zIndex * 1 + 10;
-          fixedlayer.style.zIndex = el.style.zIndex - 1;
-        }
-      },
-      hide: function() {
-        if (this.getDom()) {
-          this.getDom().style.display = "none";
-        }
-        this.isHidden = true;
-      },
-      postRender: function() {
-        if (utils.isArray(this.items)) {
-          for (var i = 0, item; item = this.items[i++];) {
-            item.postRender();
-          }
-        }
-      },
-      getHtmlTpl: function() {
-        var buff;
-        if (utils.isArray(this.items)) {
-          buff = [];
-          for (var i = 0; i < this.items.length; i++) {
-            buff[i] = this.items[i].renderHtml();
-          }
-          buff = buff.join("");
-        } else {
-          buff = this.items;
-        }
-
-        return '<div id="##" class="%% edui-toolbar" data-src="shortcutmenu" onmousedown="return false;" onselectstart="return false;" >' +
-          buff +
-          '</div>';
-      }
-    };
-
-    utils.inherits(ShortCutMenu, UIBase);
-
-    function hideAllMenu(e) {
-      var tgt = e.target || e.srcElement,
-        cur = domUtils.findParent(tgt, function(node) {
-          return domUtils.hasClass(node, "edui-shortcutmenu") || domUtils.hasClass(node, "edui-popup");
-        }, true);
-
-      if (!cur) {
-        for (var i = 0, menu; menu = allMenus[i++];) {
-          menu.hide()
-        }
-      }
-    }
-
-    domUtils.on(document, 'mousedown', function(e) {
-      hideAllMenu(e);
-    });
-
-    domUtils.on(window, 'scroll', function(e) {
-      hideAllMenu(e);
-    });
-
-  })();
-
-
-  // ui/breakline.js
-  (function() {
-    var utils = baidu.editor.utils,
-      UIBase = baidu.editor.ui.UIBase,
-      Breakline = baidu.editor.ui.Breakline = function(options) {
-        this.initOptions(options);
-        this.initSeparator();
-      };
-    Breakline.prototype = {
-      uiName: 'Breakline',
-      initSeparator: function() {
-        this.initUIBase();
-      },
-      getHtmlTpl: function() {
-        return '<br/>';
-      }
-    };
-    utils.inherits(Breakline, UIBase);
-
-  })();
-
-
-  // ui/message.js
-  ///import core
-  ///import uicore
-  (function() {
-    var utils = baidu.editor.utils,
-      domUtils = baidu.editor.dom.domUtils,
-      UIBase = baidu.editor.ui.UIBase,
-      Message = baidu.editor.ui.Message = function(options) {
-        this.initOptions(options);
-        this.initMessage();
-      };
-
-    Message.prototype = {
-      initMessage: function() {
-        this.initUIBase();
-      },
-      getHtmlTpl: function() {
-        return '<div id="##" class="edui-message %%">' +
-          ' <div id="##_closer" class="edui-message-closer">脳</div>' +
-          ' <div id="##_body" class="edui-message-body edui-message-type-info">' +
-          ' <iframe style="position:absolute;z-index:-1;left:0;top:0;background-color: transparent;" frameborder="0" width="100%" height="100%" src="about:blank"></iframe>' +
-          ' <div class="edui-shadow"></div>' +
-          ' <div id="##_content" class="edui-message-content">' +
-          '  </div>' +
-          ' </div>' +
-          '</div>';
-      },
-      reset: function(opt) {
-        var me = this;
-        if (!opt.keepshow) {
-          clearTimeout(this.timer);
-          me.timer = setTimeout(function() {
-            me.hide();
-          }, opt.timeout || 4000);
-        }
-
-        opt.content !== undefined && me.setContent(opt.content);
-        opt.type !== undefined && me.setType(opt.type);
-
-        me.show();
-      },
-      postRender: function() {
-        var me = this,
-          closer = this.getDom('closer');
-        closer && domUtils.on(closer, 'click', function() {
-          me.hide();
-        });
-      },
-      setContent: function(content) {
-        this.getDom('content').innerHTML = content;
-      },
-      setType: function(type) {
-        type = type || 'info';
-        var body = this.getDom('body');
-        body.className = body.className.replace(/edui-message-type-[\w-]+/, 'edui-message-type-' + type);
-      },
-      getContent: function() {
-        return this.getDom('content').innerHTML;
-      },
-      getType: function() {
-        var arr = this.getDom('body').match(/edui-message-type-([\w-]+)/);
-        return arr ? arr[1] : '';
-      },
-      show: function() {
-        this.getDom().style.display = 'block';
-      },
-      hide: function() {
-        var dom = this.getDom();
-        if (dom) {
-          dom.style.display = 'none';
-          dom.parentNode && dom.parentNode.removeChild(dom);
-        }
-      }
-    };
-
-    utils.inherits(Message, UIBase);
-
-  })();
-
-
-  // adapter/editorui.js
-  //ui璺熺紪杈戝櫒鐨勯�傞厤灞�
-  //閭d釜鎸夐挳寮瑰嚭鏄痙ialog锛屾槸涓嬫媺绛愮瓑閮芥槸鍦ㄨ繖涓猨s涓厤缃�
-  //鑷繁鍐欑殑ui涔熻鍦ㄨ繖閲岄厤缃紝鏀惧埌baidu.editor.ui涓嬭竟锛屽綋缂栬緫鍣ㄥ疄渚嬪寲鐨勬椂鍊欎細鏍规嵁ueditor.config涓殑toolbars鎵惧埌鐩稿簲鐨勮繘琛屽疄渚嬪寲
-  (function() {
-    var utils = baidu.editor.utils;
-    var editorui = baidu.editor.ui;
-    var _Dialog = editorui.Dialog;
-    editorui.buttons = {};
-
-    editorui.Dialog = function(options) {
-      var dialog = new _Dialog(options);
-      dialog.addListener('hide', function() {
-
-        if (dialog.editor) {
-          var editor = dialog.editor;
-          try {
-            if (browser.gecko) {
-              var y = editor.window.scrollY,
-                x = editor.window.scrollX;
-              editor.body.focus();
-              editor.window.scrollTo(x, y);
-            } else {
-              editor.focus();
-            }
-
-
-          } catch (ex) {}
-        }
-      });
-      return dialog;
-    };
-
-    var iframeUrlMap = {
-      'anchor': '~/dialogs/anchor/anchor.html',
-      'insertimage': '~/dialogs/image/image.html',
-      'link': '~/dialogs/link/link.html',
-      'spechars': '~/dialogs/spechars/spechars.html',
-      'searchreplace': '~/dialogs/searchreplace/searchreplace.html',
-      'map': '~/dialogs/map/map.html',
-      'gmap': '~/dialogs/gmap/gmap.html',
-      'insertvideo': '~/dialogs/video/video.html',
-      'help': '~/dialogs/help/help.html',
-      'preview': '~/dialogs/preview/preview.html',
-      'emotion': '~/dialogs/emotion/emotion.html',
-      'wordimage': '~/dialogs/wordimage/wordimage.html',
-      'attachment': '~/dialogs/attachment/attachment.html',
-      'insertframe': '~/dialogs/insertframe/insertframe.html',
-      'edittip': '~/dialogs/table/edittip.html',
-      'edittable': '~/dialogs/table/edittable.html',
-      'edittd': '~/dialogs/table/edittd.html',
-      'webapp': '~/dialogs/webapp/webapp.html',
-      'snapscreen': '~/dialogs/snapscreen/snapscreen.html',
-      'scrawl': '~/dialogs/scrawl/scrawl.html',
-      'music': '~/dialogs/music/music.html',
-      'template': '~/dialogs/template/template.html',
-      'background': '~/dialogs/background/background.html',
-      'charts': '~/dialogs/charts/charts.html'
-    };
-    //涓哄伐鍏锋爮娣诲姞鎸夐挳锛屼互涓嬮兘鏄粺涓�鐨勬寜閽Е鍙戝懡浠わ紝鎵�浠ュ啓鍦ㄤ竴璧�
-    var btnCmds = ['undo', 'redo', 'formatmatch',
-      'bold', 'italic', 'underline', 'fontborder', 'touppercase', 'tolowercase',
-      'strikethrough', 'subscript', 'superscript', 'source', 'indent', 'outdent',
-      'blockquote', 'pasteplain', 'pagebreak',
-      'selectall', 'print', 'horizontal', 'removeformat', 'time', 'date', 'unlink',
-      'insertparagraphbeforetable', 'insertrow', 'insertcol', 'mergeright', 'mergedown', 'deleterow',
-      'deletecol', 'splittorows', 'splittocols', 'splittocells', 'mergecells', 'deletetable', 'drafts'
-    ];
-
-    for (var i = 0, ci; ci = btnCmds[i++];) {
-      ci = ci.toLowerCase();
-      editorui[ci] = function(cmd) {
-        return function(editor) {
-          var ui = new editorui.Button({
-            className: 'edui-for-' + cmd,
-            title: editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '',
-            onclick: function() {
-              editor.execCommand(cmd);
-            },
-            theme: editor.options.theme,
-            showText: false
-          });
-          editorui.buttons[cmd] = ui;
-          editor.addListener('selectionchange', function(type, causeByUi, uiReady) {
-            var state = editor.queryCommandState(cmd);
-            if (state == -1) {
-              ui.setDisabled(true);
-              ui.setChecked(false);
-            } else {
-              if (!uiReady) {
-                ui.setDisabled(false);
-                ui.setChecked(state);
-              }
-            }
-          });
-          return ui;
-        };
-      }(ci);
-    }
-
-    //娓呴櫎鏂囨。
-    editorui.cleardoc = function(editor) {
-      var ui = new editorui.Button({
-        className: 'edui-for-cleardoc',
-        title: editor.options.labelMap.cleardoc || editor.getLang("labelMap.cleardoc") || '',
-        theme: editor.options.theme,
-        onclick: function() {
-          if (confirm(editor.getLang("confirmClear"))) {
-            editor.execCommand('cleardoc');
-          }
-        }
-      });
-      editorui.buttons["cleardoc"] = ui;
-      editor.addListener('selectionchange', function() {
-        ui.setDisabled(editor.queryCommandState('cleardoc') == -1);
-      });
-      return ui;
-    };
-
-    //鎺掔増锛屽浘鐗囨帓鐗堬紝鏂囧瓧鏂瑰悜
-    var typeset = {
-      'justify': ['left', 'right', 'center', 'justify'],
-      'imagefloat': ['none', 'left', 'center', 'right'],
-      'directionality': ['ltr', 'rtl']
-    };
-
-    for (var p in typeset) {
-
-      (function(cmd, val) {
-        for (var i = 0, ci; ci = val[i++];) {
-          (function(cmd2) {
-            editorui[cmd.replace('float', '') + cmd2] = function(editor) {
-              var ui = new editorui.Button({
-                className: 'edui-for-' + cmd.replace('float', '') + cmd2,
-                title: editor.options.labelMap[cmd.replace('float', '') + cmd2] || editor.getLang(
-                  "labelMap." + cmd.replace('float', '') + cmd2) || '',
-                theme: editor.options.theme,
-                onclick: function() {
-                  editor.execCommand(cmd, cmd2);
-                }
-              });
-              editorui.buttons[cmd] = ui;
-              editor.addListener('selectionchange', function(type, causeByUi, uiReady) {
-                ui.setDisabled(editor.queryCommandState(cmd) == -1);
-                ui.setChecked(editor.queryCommandValue(cmd) == cmd2 && !uiReady);
-              });
-              return ui;
-            };
-          })(ci)
-        }
-      })(p, typeset[p])
-    }
-
-    //瀛椾綋棰滆壊鍜岃儗鏅鑹�
-    for (var i = 0, ci; ci = ['backcolor', 'forecolor'][i++];) {
-      editorui[ci] = function(cmd) {
-        return function(editor) {
-          var ui = new editorui.ColorButton({
-            className: 'edui-for-' + cmd,
-            color: 'default',
-            title: editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '',
-            editor: editor,
-            onpickcolor: function(t, color) {
-              editor.execCommand(cmd, color);
-            },
-            onpicknocolor: function() {
-              editor.execCommand(cmd, 'default');
-              this.setColor('transparent');
-              this.color = 'default';
-            },
-            onbuttonclick: function() {
-              editor.execCommand(cmd, this.color);
-            }
-          });
-          editorui.buttons[cmd] = ui;
-          editor.addListener('selectionchange', function() {
-            ui.setDisabled(editor.queryCommandState(cmd) == -1);
-          });
-          return ui;
-        };
-      }(ci);
-    }
-
-
-    var dialogBtns = {
-      noOk: ['searchreplace', 'help', 'spechars', 'webapp', 'preview'],
-      ok: ['attachment', 'anchor', 'link', 'insertimage', 'map', 'gmap', 'insertframe', 'wordimage',
-        'insertvideo', 'insertframe', 'edittip', 'edittable', 'edittd', 'scrawl', 'template', 'music',
-        'background', 'charts'
-      ]
-    };
-
-    for (var p in dialogBtns) {
-      (function(type, vals) {
-        for (var i = 0, ci; ci = vals[i++];) {
-          //todo opera涓嬪瓨鍦ㄩ棶棰�
-          if (browser.opera && ci === "searchreplace") {
-            continue;
-          }
-          (function(cmd) {
-            editorui[cmd] = function(editor, iframeUrl, title) {
-              iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd];
-              title = editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd) || '';
-
-              var dialog;
-              //娌℃湁iframeUrl涓嶅垱寤篸ialog
-              if (iframeUrl) {
-                dialog = new editorui.Dialog(utils.extend({
-                  iframeUrl: editor.ui.mapUrl(iframeUrl),
-                  editor: editor,
-                  className: 'edui-for-' + cmd,
-                  title: title,
-                  holdScroll: cmd === 'insertimage',
-                  fullscreen: /charts|preview/.test(cmd),
-                  closeDialog: editor.getLang("closeDialog")
-                }, type == 'ok' ? {
-                  buttons: [{
-                      className: 'edui-okbutton',
-                      label: editor.getLang("ok"),
-                      editor: editor,
-                      onclick: function() {
-                        dialog.close(true);
-                      }
-                    },
-                    {
-                      className: 'edui-cancelbutton',
-                      label: editor.getLang("cancel"),
-                      editor: editor,
-                      onclick: function() {
-                        dialog.close(false);
-                      }
-                    }
-                  ]
-                } : {}));
-
-                editor.ui._dialogs[cmd + "Dialog"] = dialog;
-              }
-
-              var ui = new editorui.Button({
-                className: 'edui-for-' + cmd,
-                title: title,
-                onclick: function() {
-                  if (dialog) {
-                    switch (cmd) {
-                      case "wordimage":
-                        var images = editor.execCommand("wordimage");
-                        if (images && images.length) {
-                          dialog.render();
-                          dialog.open();
-                        }
-                        break;
-                      case "scrawl":
-                        if (editor.queryCommandState("scrawl") != -1) {
-                          dialog.render();
-                          dialog.open();
-                        }
-
-                        break;
-                      default:
-                        dialog.render();
-                        dialog.open();
-                    }
-                  }
-                },
-                theme: editor.options.theme,
-                disabled: (cmd == 'scrawl' && editor.queryCommandState("scrawl") == -1) || (cmd ==
-                  'charts')
-              });
-              editorui.buttons[cmd] = ui;
-              editor.addListener('selectionchange', function() {
-                //鍙瓨鍦ㄤ簬鍙抽敭鑿滃崟鑰屾棤宸ュ叿鏍忔寜閽殑ui涓嶉渶瑕佹娴嬬姸鎬�
-                var unNeedCheckState = {
-                  'edittable': 1
-                };
-                if (cmd in unNeedCheckState) return;
-
-                var state = editor.queryCommandState(cmd);
-                if (ui.getDom()) {
-                  ui.setDisabled(state == -1);
-                  ui.setChecked(state);
-                }
-
-              });
-
-              return ui;
-            };
-          })(ci.toLowerCase())
-        }
-      })(p, dialogBtns[p]);
-    }
-
-    editorui.snapscreen = function(editor, iframeUrl, title) {
-      title = editor.options.labelMap['snapscreen'] || editor.getLang("labelMap.snapscreen") || '';
-      var ui = new editorui.Button({
-        className: 'edui-for-snapscreen',
-        title: title,
-        onclick: function() {
-          editor.execCommand("snapscreen");
-        },
-        theme: editor.options.theme
-
-      });
-      editorui.buttons['snapscreen'] = ui;
-      iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})["snapscreen"] || iframeUrlMap["snapscreen"];
-      if (iframeUrl) {
-        var dialog = new editorui.Dialog({
-          iframeUrl: editor.ui.mapUrl(iframeUrl),
-          editor: editor,
-          className: 'edui-for-snapscreen',
-          title: title,
-          buttons: [{
-              className: 'edui-okbutton',
-              label: editor.getLang("ok"),
-              editor: editor,
-              onclick: function() {
-                dialog.close(true);
-              }
-            },
-            {
-              className: 'edui-cancelbutton',
-              label: editor.getLang("cancel"),
-              editor: editor,
-              onclick: function() {
-                dialog.close(false);
-              }
-            }
-          ]
-
-        });
-        dialog.render();
-        editor.ui._dialogs["snapscreenDialog"] = dialog;
-      }
-      editor.addListener('selectionchange', function() {
-        ui.setDisabled(editor.queryCommandState('snapscreen') == -1);
-      });
-      return ui;
-    };
-
-    editorui.insertcode = function(editor, list, title) {
-      list = editor.options['insertcode'] || [];
-      title = editor.options.labelMap['insertcode'] || editor.getLang("labelMap.insertcode") || '';
-      // if (!list.length) return;
-      var items = [];
-      utils.each(list, function(key, val) {
-        items.push({
-          label: key,
-          value: val,
-          theme: editor.options.theme,
-          renderLabelHtml: function() {
-            return '<div class="edui-label %%-label" >' + (this.label || '') + '</div>';
-          }
-        });
-      });
-
-      var ui = new editorui.Combox({
-        editor: editor,
-        items: items,
-        onselect: function(t, index) {
-          editor.execCommand('insertcode', this.items[index].value);
-        },
-        onbuttonclick: function() {
-          this.showPopup();
-        },
-        title: title,
-        initValue: title,
-        className: 'edui-for-insertcode',
-        indexByValue: function(value) {
-          if (value) {
-            for (var i = 0, ci; ci = this.items[i]; i++) {
-              if (ci.value.indexOf(value) != -1)
-                return i;
-            }
-          }
-
-          return -1;
-        }
-      });
-      editorui.buttons['insertcode'] = ui;
-      editor.addListener('selectionchange', function(type, causeByUi, uiReady) {
-        if (!uiReady) {
-          var state = editor.queryCommandState('insertcode');
-          if (state == -1) {
-            ui.setDisabled(true);
-          } else {
-            ui.setDisabled(false);
-            var value = editor.queryCommandValue('insertcode');
-            if (!value) {
-              ui.setValue(title);
-              return;
-            }
-            //trace:1871 ie涓嬩粠婧愮爜妯″紡鍒囨崲鍥炴潵鏃讹紝瀛椾綋浼氬甫鍗曞紩鍙凤紝鑰屼笖浼氭湁閫楀彿
-            value && (value = value.replace(/['"]/g, '').split(',')[0]);
-            ui.setValue(value);
-
-          }
-        }
-
-      });
-      return ui;
-    };
-    editorui.fontfamily = function(editor, list, title) {
-
-      list = editor.options['fontfamily'] || [];
-      title = editor.options.labelMap['fontfamily'] || editor.getLang("labelMap.fontfamily") || '';
-      if (!list.length) return;
-      for (var i = 0, ci, items = []; ci = list[i]; i++) {
-        var langLabel = editor.getLang('fontfamily')[ci.name] || "";
-        (function(key, val) {
-          items.push({
-            label: key,
-            value: val,
-            theme: editor.options.theme,
-            renderLabelHtml: function() {
-              return '<div class="edui-label %%-label" style="font-family:' +
-                utils.unhtml(this.value) + '">' + (this.label || '') + '</div>';
-            }
-          });
-        })(ci.label || langLabel, ci.val)
-      }
-      var ui = new editorui.Combox({
-        editor: editor,
-        items: items,
-        onselect: function(t, index) {
-          editor.execCommand('FontFamily', this.items[index].value);
-        },
-        onbuttonclick: function() {
-          this.showPopup();
-        },
-        title: title,
-        initValue: title,
-        className: 'edui-for-fontfamily',
-        indexByValue: function(value) {
-          if (value) {
-            for (var i = 0, ci; ci = this.items[i]; i++) {
-              if (ci.value.indexOf(value) != -1)
-                return i;
-            }
-          }
-
-          return -1;
-        }
-      });
-      editorui.buttons['fontfamily'] = ui;
-      editor.addListener('selectionchange', function(type, causeByUi, uiReady) {
-        if (!uiReady) {
-          var state = editor.queryCommandState('FontFamily');
-          if (state == -1) {
-            ui.setDisabled(true);
-          } else {
-            ui.setDisabled(false);
-            var value = editor.queryCommandValue('FontFamily');
-            //trace:1871 ie涓嬩粠婧愮爜妯″紡鍒囨崲鍥炴潵鏃讹紝瀛椾綋浼氬甫鍗曞紩鍙凤紝鑰屼笖浼氭湁閫楀彿
-            value && (value = value.replace(/['"]/g, '').split(',')[0]);
-            ui.setValue(value);
-
-          }
-        }
-
-      });
-      return ui;
-    };
-
-    editorui.fontsize = function(editor, list, title) {
-      title = editor.options.labelMap['fontsize'] || editor.getLang("labelMap.fontsize") || '';
-      list = list || editor.options['fontsize'] || [];
-      if (!list.length) return;
-      var items = [];
-      for (var i = 0; i < list.length; i++) {
-        var size = list[i] + 'px';
-        items.push({
-          label: size,
-          value: size,
-          theme: editor.options.theme,
-          renderLabelHtml: function() {
-            return '<div class="edui-label %%-label" style="line-height:1;font-size:' +
-              this.value + '">' + (this.label || '') + '</div>';
-          }
-        });
-      }
-      var ui = new editorui.Combox({
-        editor: editor,
-        items: items,
-        title: title,
-        initValue: title,
-        onselect: function(t, index) {
-          editor.execCommand('FontSize', this.items[index].value);
-        },
-        onbuttonclick: function() {
-          this.showPopup();
-        },
-        className: 'edui-for-fontsize'
-      });
-      editorui.buttons['fontsize'] = ui;
-      editor.addListener('selectionchange', function(type, causeByUi, uiReady) {
-        if (!uiReady) {
-          var state = editor.queryCommandState('FontSize');
-          if (state == -1) {
-            ui.setDisabled(true);
-          } else {
-            ui.setDisabled(false);
-            ui.setValue(editor.queryCommandValue('FontSize'));
-          }
-        }
-
-      });
-      return ui;
-    };
-
-    editorui.paragraph = function(editor, list, title) {
-      title = editor.options.labelMap['paragraph'] || editor.getLang("labelMap.paragraph") || '';
-      list = editor.options['paragraph'] || [];
-      if (utils.isEmptyObject(list)) return;
-      var items = [];
-      for (var i in list) {
-        items.push({
-          value: i,
-          label: list[i] || editor.getLang("paragraph")[i],
-          theme: editor.options.theme,
-          renderLabelHtml: function() {
-            return '<div class="edui-label %%-label"><span class="edui-for-' + this.value + '">' + (this.label ||
-              '') + '</span></div>';
-          }
-        })
-      }
-      var ui = new editorui.Combox({
-        editor: editor,
-        items: items,
-        title: title,
-        initValue: title,
-        className: 'edui-for-paragraph',
-        onselect: function(t, index) {
-          editor.execCommand('Paragraph', this.items[index].value);
-        },
-        onbuttonclick: function() {
-          this.showPopup();
-        }
-      });
-      editorui.buttons['paragraph'] = ui;
-      editor.addListener('selectionchange', function(type, causeByUi, uiReady) {
-        if (!uiReady) {
-          var state = editor.queryCommandState('Paragraph');
-          if (state == -1) {
-            ui.setDisabled(true);
-          } else {
-            ui.setDisabled(false);
-            var value = editor.queryCommandValue('Paragraph');
-            var index = ui.indexByValue(value);
-            if (index != -1) {
-              ui.setValue(value);
-            } else {
-              ui.setValue(ui.initValue);
-            }
-          }
-        }
-
-      });
-      return ui;
-    };
-
-
-    //鑷畾涔夋爣棰�
-    editorui.customstyle = function(editor) {
-      var list = editor.options['customstyle'] || [],
-        title = editor.options.labelMap['customstyle'] || editor.getLang("labelMap.customstyle") || '';
-      if (!list.length) return;
-      var langCs = editor.getLang('customstyle');
-      for (var i = 0, items = [], t; t = list[i++];) {
-        (function(t) {
-          var ck = {};
-          ck.label = t.label ? t.label : langCs[t.name];
-          ck.style = t.style;
-          ck.className = t.className;
-          ck.tag = t.tag;
-          items.push({
-            label: ck.label,
-            value: ck,
-            theme: editor.options.theme,
-            renderLabelHtml: function() {
-              return '<div class="edui-label %%-label">' + '<' + ck.tag + ' ' + (ck.className ?
-                  ' class="' + ck.className + '"' : "") +
-                (ck.style ? ' style="' + ck.style + '"' : "") + '>' + ck.label + "<\/" + ck.tag + ">" +
-                '</div>';
-            }
-          });
-        })(t);
-      }
-
-      var ui = new editorui.Combox({
-        editor: editor,
-        items: items,
-        title: title,
-        initValue: title,
-        className: 'edui-for-customstyle',
-        onselect: function(t, index) {
-          editor.execCommand('customstyle', this.items[index].value);
-        },
-        onbuttonclick: function() {
-          this.showPopup();
-        },
-        indexByValue: function(value) {
-          for (var i = 0, ti; ti = this.items[i++];) {
-            if (ti.label == value) {
-              return i - 1
-            }
-          }
-          return -1;
-        }
-      });
-      editorui.buttons['customstyle'] = ui;
-      editor.addListener('selectionchange', function(type, causeByUi, uiReady) {
-        if (!uiReady) {
-          var state = editor.queryCommandState('customstyle');
-          if (state == -1) {
-            ui.setDisabled(true);
-          } else {
-            ui.setDisabled(false);
-            var value = editor.queryCommandValue('customstyle');
-            var index = ui.indexByValue(value);
-            if (index != -1) {
-              ui.setValue(value);
-            } else {
-              ui.setValue(ui.initValue);
-            }
-          }
-        }
-
-      });
-      return ui;
-    };
-    editorui.inserttable = function(editor, iframeUrl, title) {
-      title = editor.options.labelMap['inserttable'] || editor.getLang("labelMap.inserttable") || '';
-      var ui = new editorui.TableButton({
-        editor: editor,
-        title: title,
-        className: 'edui-for-inserttable',
-        onpicktable: function(t, numCols, numRows) {
-          editor.execCommand('InsertTable', {
-            numRows: numRows,
-            numCols: numCols,
-            border: 1
-          });
-        },
-        onbuttonclick: function() {
-          this.showPopup();
-        }
-      });
-      editorui.buttons['inserttable'] = ui;
-      editor.addListener('selectionchange', function() {
-        ui.setDisabled(editor.queryCommandState('inserttable') == -1);
-      });
-      return ui;
-    };
-
-    editorui.lineheight = function(editor) {
-      var val = editor.options.lineheight || [];
-      if (!val.length) return;
-      for (var i = 0, ci, items = []; ci = val[i++];) {
-        items.push({
-          //todo:鍐欐浜�
-          label: ci,
-          value: ci,
-          theme: editor.options.theme,
-          onclick: function() {
-            editor.execCommand("lineheight", this.value);
-          }
-        })
-      }
-      var ui = new editorui.MenuButton({
-        editor: editor,
-        className: 'edui-for-lineheight',
-        title: editor.options.labelMap['lineheight'] || editor.getLang("labelMap.lineheight") || '',
-        items: items,
-        onbuttonclick: function() {
-          var value = editor.queryCommandValue('LineHeight') || this.value;
-          editor.execCommand("LineHeight", value);
-        }
-      });
-      editorui.buttons['lineheight'] = ui;
-      editor.addListener('selectionchange', function() {
-        var state = editor.queryCommandState('LineHeight');
-        if (state == -1) {
-          ui.setDisabled(true);
-        } else {
-          ui.setDisabled(false);
-          var value = editor.queryCommandValue('LineHeight');
-          value && ui.setValue((value + '').replace(/cm/, ''));
-          ui.setChecked(state)
-        }
-      });
-      return ui;
-    };
-
-    var rowspacings = ['top', 'bottom'];
-    for (var r = 0, ri; ri = rowspacings[r++];) {
-      (function(cmd) {
-        editorui['rowspacing' + cmd] = function(editor) {
-          var val = editor.options['rowspacing' + cmd] || [];
-          if (!val.length) return null;
-          for (var i = 0, ci, items = []; ci = val[i++];) {
-            items.push({
-              label: ci,
-              value: ci,
-              theme: editor.options.theme,
-              onclick: function() {
-                editor.execCommand("rowspacing", this.value, cmd);
-              }
-            })
-          }
-          var ui = new editorui.MenuButton({
-            editor: editor,
-            className: 'edui-for-rowspacing' + cmd,
-            title: editor.options.labelMap['rowspacing' + cmd] || editor.getLang("labelMap.rowspacing" +
-              cmd) || '',
-            items: items,
-            onbuttonclick: function() {
-              var value = editor.queryCommandValue('rowspacing', cmd) || this.value;
-              editor.execCommand("rowspacing", value, cmd);
-            }
-          });
-          editorui.buttons[cmd] = ui;
-          editor.addListener('selectionchange', function() {
-            var state = editor.queryCommandState('rowspacing', cmd);
-            if (state == -1) {
-              ui.setDisabled(true);
-            } else {
-              ui.setDisabled(false);
-              var value = editor.queryCommandValue('rowspacing', cmd);
-              value && ui.setValue((value + '').replace(/%/, ''));
-              ui.setChecked(state)
-            }
-          });
-          return ui;
-        }
-      })(ri)
-    }
-    //鏈夊簭锛屾棤搴忓垪琛�
-    var lists = ['insertorderedlist', 'insertunorderedlist'];
-    for (var l = 0, cl; cl = lists[l++];) {
-      (function(cmd) {
-        editorui[cmd] = function(editor) {
-          var vals = editor.options[cmd],
-            _onMenuClick = function() {
-              editor.execCommand(cmd, this.value);
-            },
-            items = [];
-          for (var i in vals) {
-            items.push({
-              label: vals[i] || editor.getLang()[cmd][i] || "",
-              value: i,
-              theme: editor.options.theme,
-              onclick: _onMenuClick
-            })
-          }
-          var ui = new editorui.MenuButton({
-            editor: editor,
-            className: 'edui-for-' + cmd,
-            title: editor.getLang("labelMap." + cmd) || '',
-            'items': items,
-            onbuttonclick: function() {
-              var value = editor.queryCommandValue(cmd) || this.value;
-              editor.execCommand(cmd, value);
-            }
-          });
-          editorui.buttons[cmd] = ui;
-          editor.addListener('selectionchange', function() {
-            var state = editor.queryCommandState(cmd);
-            if (state == -1) {
-              ui.setDisabled(true);
-            } else {
-              ui.setDisabled(false);
-              var value = editor.queryCommandValue(cmd);
-              ui.setValue(value);
-              ui.setChecked(state)
-            }
-          });
-          return ui;
-        };
-      })(cl)
-    }
-
-    editorui.fullscreen = function(editor, title) {
-      title = editor.options.labelMap['fullscreen'] || editor.getLang("labelMap.fullscreen") || '';
-      var ui = new editorui.Button({
-        className: 'edui-for-fullscreen',
-        title: title,
-        theme: editor.options.theme,
-        onclick: function() {
-          if (editor.ui) {
-            editor.ui.setFullScreen(!editor.ui.isFullScreen());
-          }
-          this.setChecked(editor.ui.isFullScreen());
-        }
-      });
-      editorui.buttons['fullscreen'] = ui;
-      editor.addListener('selectionchange', function() {
-        var state = editor.queryCommandState('fullscreen');
-        ui.setDisabled(state == -1);
-        ui.setChecked(editor.ui.isFullScreen());
-      });
-      return ui;
-    };
-
-    // 琛ㄦ儏
-    editorui["emotion"] = function(editor, iframeUrl) {
-      var cmd = "emotion";
-      var ui = new editorui.MultiMenuPop({
-        title: editor.options.labelMap[cmd] || editor.getLang("labelMap." + cmd + "") || '',
-        editor: editor,
-        className: 'edui-for-' + cmd,
-        iframeUrl: editor.ui.mapUrl(iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd])
-      });
-      editorui.buttons[cmd] = ui;
-
-      editor.addListener('selectionchange', function() {
-        ui.setDisabled(editor.queryCommandState(cmd) == -1)
-      });
-      return ui;
-    };
-
-    editorui.autotypeset = function(editor) {
-      var ui = new editorui.AutoTypeSetButton({
-        editor: editor,
-        title: editor.options.labelMap['autotypeset'] || editor.getLang("labelMap.autotypeset") || '',
-        className: 'edui-for-autotypeset',
-        onbuttonclick: function() {
-          editor.execCommand('autotypeset')
-        }
-      });
-      editorui.buttons['autotypeset'] = ui;
-      editor.addListener('selectionchange', function() {
-        ui.setDisabled(editor.queryCommandState('autotypeset') == -1);
-      });
-      return ui;
-    };
-
-    /* 绠�鍗曚笂浼犳彃浠� */
-    editorui["simpleupload"] = function(editor) {
-      var name = 'simpleupload',
-        ui = new editorui.Button({
-          className: 'edui-for-' + name,
-          title: editor.options.labelMap[name] || editor.getLang("labelMap." + name) || '',
-          onclick: function() {},
-          theme: editor.options.theme,
-          showText: false
-        });
-      editorui.buttons[name] = ui;
-      editor.addListener('ready', function() {
-        var b = ui.getDom('body'),
-          iconSpan = b.children[0];
-        editor.fireEvent('simpleuploadbtnready', iconSpan);
-      });
-      editor.addListener('selectionchange', function(type, causeByUi, uiReady) {
-        var state = editor.queryCommandState(name);
-        if (state == -1) {
-          ui.setDisabled(true);
-          ui.setChecked(false);
-        } else {
-          if (!uiReady) {
-            ui.setDisabled(false);
-            ui.setChecked(state);
-          }
-        }
-      });
-      return ui;
-    };
-
-  })();
-
-
-  // adapter/editor.js
-  ///import core
-  ///commands 鍏ㄥ睆
-  ///commandsName FullScreen
-  ///commandsTitle  鍏ㄥ睆
-  (function() {
-    var utils = baidu.editor.utils,
-      uiUtils = baidu.editor.ui.uiUtils,
-      UIBase = baidu.editor.ui.UIBase,
-      domUtils = baidu.editor.dom.domUtils;
-    var nodeStack = [];
-
-    function EditorUI(options) {
-      this.initOptions(options);
-      this.initEditorUI();
-    }
-
-    EditorUI.prototype = {
-      uiName: 'editor',
-      initEditorUI: function() {
-        this.editor.ui = this;
-        this._dialogs = {};
-        this.initUIBase();
-        this._initToolbars();
-        var editor = this.editor,
-          me = this;
-
-        editor.addListener('ready', function() {
-          //鎻愪緵getDialog鏂规硶
-          editor.getDialog = function(name) {
-            return editor.ui._dialogs[name + "Dialog"];
-          };
-          domUtils.on(editor.window, 'scroll', function(evt) {
-            baidu.editor.ui.Popup.postHide(evt);
-          });
-          //鎻愪緵缂栬緫鍣ㄥ疄鏃跺楂�(鍏ㄥ睆鏃跺楂樹笉鍙樺寲)
-          editor.ui._actualFrameWidth = editor.options.initialFrameWidth;
-
-          UE.browser.ie && UE.browser.version === 6 && editor.container.ownerDocument.execCommand(
-            "BackgroundImageCache", false, true);
-
-          //display bottom-bar label based on config
-          if (editor.options.elementPathEnabled) {
-            editor.ui.getDom('elementpath').innerHTML = '<div class="edui-editor-breadcrumb">' + editor.getLang(
-              "elementPathTip") + ':</div>';
-          }
-          if (editor.options.wordCount) {
-            function countFn() {
-              setCount(editor, me);
-              domUtils.un(editor.document, "click", arguments.callee);
-            }
-            domUtils.on(editor.document, "click", countFn);
-            editor.ui.getDom('wordcount').innerHTML = editor.getLang("wordCountTip");
-          }
-          editor.ui._scale();
-          if (editor.options.scaleEnabled) {
-            if (editor.autoHeightEnabled) {
-              editor.disableAutoHeight();
-            }
-            me.enableScale();
-          } else {
-            me.disableScale();
-          }
-          if (!editor.options.elementPathEnabled && !editor.options.wordCount && !editor.options.scaleEnabled) {
-            editor.ui.getDom('elementpath').style.display = "none";
-            editor.ui.getDom('wordcount').style.display = "none";
-            editor.ui.getDom('scale').style.display = "none";
-          }
-
-          if (!editor.selection.isFocus()) return;
-          editor.fireEvent('selectionchange', false, true);
-
-
-        });
-
-        editor.addListener('mousedown', function(t, evt) {
-          var el = evt.target || evt.srcElement;
-          baidu.editor.ui.Popup.postHide(evt, el);
-          baidu.editor.ui.ShortCutMenu.postHide(evt);
-
-        });
-        editor.addListener("delcells", function() {
-          if (UE.ui['edittip']) {
-            new UE.ui['edittip'](editor);
-          }
-          editor.getDialog('edittip').open();
-        });
-
-        var pastePop, isPaste = false,
-          timer;
-        editor.addListener("afterpaste", function() {
-          if (editor.queryCommandState('pasteplain'))
-            return;
-          if (baidu.editor.ui.PastePicker) {
-            pastePop = new baidu.editor.ui.Popup({
-              content: new baidu.editor.ui.PastePicker({
-                editor: editor
-              }),
-              editor: editor,
-              className: 'edui-wordpastepop'
-            });
-            pastePop.render();
-          }
-          isPaste = true;
-        });
-
-        editor.addListener("afterinserthtml", function() {
-          clearTimeout(timer);
-          timer = setTimeout(function() {
-            if (pastePop && (isPaste || editor.ui._isTransfer)) {
-              if (pastePop.isHidden()) {
-                var span = domUtils.createElement(editor.document, 'span', {
-                    'style': "line-height:0px;",
-                    'innerHTML': '\ufeff'
-                  }),
-                  range = editor.selection.getRange();
-                range.insertNode(span);
-                var tmp = getDomNode(span, 'firstChild', 'previousSibling');
-                tmp && pastePop.showAnchor(tmp.nodeType == 3 ? tmp.parentNode : tmp);
-                domUtils.remove(span);
-              } else {
-                pastePop.show();
-              }
-              delete editor.ui._isTransfer;
-              isPaste = false;
-            }
-          }, 200)
-        });
-        editor.addListener('contextmenu', function(t, evt) {
-          baidu.editor.ui.Popup.postHide(evt);
-        });
-        editor.addListener('keydown', function(t, evt) {
-          if (pastePop) pastePop.dispose(evt);
-          var keyCode = evt.keyCode || evt.which;
-          if (evt.altKey && keyCode == 90) {
-            UE.ui.buttons['fullscreen'].onclick();
-          }
-        });
-        editor.addListener('wordcount', function(type) {
-          setCount(this, me);
-        });
-
-        function setCount(editor, ui) {
-          editor.setOpt({
-            wordCount: true,
-            maximumWords: 10000,
-            wordCountMsg: editor.options.wordCountMsg || editor.getLang("wordCountMsg"),
-            wordOverFlowMsg: editor.options.wordOverFlowMsg || editor.getLang("wordOverFlowMsg")
-          });
-          var opt = editor.options,
-            max = opt.maximumWords,
-            msg = opt.wordCountMsg,
-            errMsg = opt.wordOverFlowMsg,
-            countDom = ui.getDom('wordcount');
-          if (!opt.wordCount) {
-            return;
-          }
-          var count = editor.getContentLength(true);
-          if (count > max) {
-            countDom.innerHTML = errMsg;
-            editor.fireEvent("wordcountoverflow");
-          } else {
-            countDom.innerHTML = msg.replace("{#leave}", max - count).replace("{#count}", count);
-          }
-        }
-
-        editor.addListener('selectionchange', function() {
-          if (editor.options.elementPathEnabled) {
-            me[(editor.queryCommandState('elementpath') == -1 ? 'dis' : 'en') + 'ableElementPath']()
-          }
-          if (editor.options.scaleEnabled) {
-            me[(editor.queryCommandState('scale') == -1 ? 'dis' : 'en') + 'ableScale']();
-
-          }
-        });
-        var popup = new baidu.editor.ui.Popup({
-          editor: editor,
-          content: '',
-          className: 'edui-bubble',
-          _onEditButtonClick: function() {
-            this.hide();
-            editor.ui._dialogs.linkDialog.open();
-          },
-          _onImgEditButtonClick: function(name) {
-            this.hide();
-            editor.ui._dialogs[name] && editor.ui._dialogs[name].open();
-
-          },
-          _onImgSetFloat: function(value) {
-            this.hide();
-            editor.execCommand("imagefloat", value);
-
-          },
-          _setIframeAlign: function(value) {
-            var frame = popup.anchorEl;
-            var newFrame = frame.cloneNode(true);
-            switch (value) {
-              case -2:
-                newFrame.setAttribute("align", "");
-                break;
-              case -1:
-                newFrame.setAttribute("align", "left");
-                break;
-              case 1:
-                newFrame.setAttribute("align", "right");
-                break;
-            }
-            frame.parentNode.insertBefore(newFrame, frame);
-            domUtils.remove(frame);
-            popup.anchorEl = newFrame;
-            popup.showAnchor(popup.anchorEl);
-          },
-          _updateIframe: function() {
-            var frame = editor._iframe = popup.anchorEl;
-            if (domUtils.hasClass(frame, 'ueditor_baidumap')) {
-              editor.selection.getRange().selectNode(frame).select();
-              editor.ui._dialogs.mapDialog.open();
-              popup.hide();
-            } else {
-              editor.ui._dialogs.insertframeDialog.open();
-              popup.hide();
-            }
-          },
-          _onRemoveButtonClick: function(cmdName) {
-            editor.execCommand(cmdName);
-            this.hide();
-          },
-          queryAutoHide: function(el) {
-            if (el && el.ownerDocument == editor.document) {
-              if (el.tagName.toLowerCase() == 'img' || domUtils.findParentByTagName(el, 'a', true)) {
-                return el !== popup.anchorEl;
-              }
-            }
-            return baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, el);
-          }
-        });
-        popup.render();
-        if (editor.options.imagePopup) {
-          editor.addListener('mouseover', function(t, evt) {
-            evt = evt || window.event;
-            var el = evt.target || evt.srcElement;
-            if (editor.ui._dialogs.insertframeDialog && /iframe/ig.test(el.tagName)) {
-              var html = popup.formatHtml(
-                '<nobr>' + editor.getLang("property") +
-                ': <span onclick=$$._setIframeAlign(-2) class="edui-clickable">' + editor.getLang(
-                  "default") +
-                '</span>&nbsp;&nbsp;<span onclick=$$._setIframeAlign(-1) class="edui-clickable">' +
-                editor.getLang("justifyleft") +
-                '</span>&nbsp;&nbsp;<span onclick=$$._setIframeAlign(1) class="edui-clickable">' + editor
-                .getLang("justifyright") + '</span>&nbsp;&nbsp;' +
-                ' <span onclick="$$._updateIframe( this);" class="edui-clickable">' + editor.getLang(
-                  "modify") + '</span></nobr>');
-              if (html) {
-                popup.getDom('content').innerHTML = html;
-                popup.anchorEl = el;
-                popup.showAnchor(popup.anchorEl);
-              } else {
-                popup.hide();
-              }
-            }
-          });
-          editor.addListener('selectionchange', function(t, causeByUi) {
-            if (!causeByUi) return;
-            var html = '',
-              str = "",
-              img = editor.selection.getRange().getClosedNode(),
-              dialogs = editor.ui._dialogs;
-            if (img && img.tagName == 'IMG') {
-              var dialogName = 'insertimageDialog';
-              if (img.className.indexOf("edui-faked-video") != -1 || img.className.indexOf(
-                  "edui-upload-video") != -1) {
-                dialogName = "insertvideoDialog"
-              }
-              if (img.className.indexOf("edui-faked-webapp") != -1) {
-                dialogName = "webappDialog"
-              }
-              if (img.src.indexOf("http://api.map.baidu.com") != -1) {
-                dialogName = "mapDialog"
-              }
-              if (img.className.indexOf("edui-faked-music") != -1) {
-                dialogName = "musicDialog"
-              }
-              if (img.src.indexOf("http://maps.google.com/maps/api/staticmap") != -1) {
-                dialogName = "gmapDialog"
-              }
-              if (img.getAttribute("anchorname")) {
-                dialogName = "anchorDialog";
-                html = popup.formatHtml(
-                  '<nobr>' + editor.getLang("property") +
-                  ': <span onclick=$$._onImgEditButtonClick("anchorDialog") class="edui-clickable">' +
-                  editor.getLang("modify") + '</span>&nbsp;&nbsp;' +
-                  '<span onclick=$$._onRemoveButtonClick(\'anchor\') class="edui-clickable">' + editor.getLang(
-                    "delete") + '</span></nobr>');
-              }
-              if (img.getAttribute("word_img")) {
-                //todo 鏀惧埌dialog鍘诲仛鏌ヨ
-                editor.word_img = [img.getAttribute("word_img")];
-                dialogName = "wordimageDialog"
-              }
-              if (domUtils.hasClass(img, 'loadingclass') || domUtils.hasClass(img, 'loaderrorclass')) {
-                dialogName = "";
-              }
-              if (!dialogs[dialogName]) {
-                return;
-              }
-              str = '<nobr>' + editor.getLang("property") + ': ' +
-                '<span onclick=$$._onImgSetFloat("none") class="edui-clickable">' + editor.getLang(
-                  "default") + '</span>&nbsp;&nbsp;' +
-                '<span onclick=$$._onImgSetFloat("left") class="edui-clickable">' + editor.getLang(
-                  "justifyleft") + '</span>&nbsp;&nbsp;' +
-                '<span onclick=$$._onImgSetFloat("right") class="edui-clickable">' + editor.getLang(
-                  "justifyright") + '</span>&nbsp;&nbsp;' +
-                '<span onclick=$$._onImgSetFloat("center") class="edui-clickable">' + editor.getLang(
-                  "justifycenter") + '</span>&nbsp;&nbsp;' +
-                '<span onclick="$$._onImgEditButtonClick(\'' + dialogName + '\');" class="edui-clickable">' +
-                editor.getLang("modify") + '</span></nobr>';
-
-              !html && (html = popup.formatHtml(str))
-
-            }
-            if (editor.ui._dialogs.linkDialog) {
-              var link = editor.queryCommandValue('link');
-              var url;
-              if (link && (url = (link.getAttribute('_href') || link.getAttribute('href', 2)))) {
-                var txt = url;
-                if (url.length > 30) {
-                  txt = url.substring(0, 20) + "...";
-                }
-                if (html) {
-                  html += '<div style="height:5px;"></div>'
-                }
-                html += popup.formatHtml(
-                  '<nobr>' + editor.getLang("anthorMsg") + ': <a target="_blank" href="' + url +
-                  '" title="' + url + '" >' + txt + '</a>' +
-                  ' <span class="edui-clickable" onclick="$$._onEditButtonClick();">' + editor.getLang(
-                    "modify") + '</span>' +
-                  ' <span class="edui-clickable" onclick="$$._onRemoveButtonClick(\'unlink\');"> ' +
-                  editor.getLang("clear") + '</span></nobr>');
-                popup.showAnchor(link);
-              }
-            }
-
-            if (html) {
-              popup.getDom('content').innerHTML = html;
-              popup.anchorEl = img || link;
-              popup.showAnchor(popup.anchorEl);
-            } else {
-              popup.hide();
-            }
-          });
-        }
-
-      },
-      _initToolbars: function() {
-        var editor = this.editor;
-        var toolbars = this.toolbars || [];
-        var toolbarUis = [];
-        for (var i = 0; i < toolbars.length; i++) {
-          var toolbar = toolbars[i];
-          var toolbarUi = new baidu.editor.ui.Toolbar({
-            theme: editor.options.theme
-          });
-          for (var j = 0; j < toolbar.length; j++) {
-            var toolbarItem = toolbar[j];
-            var toolbarItemUi = null;
-            if (typeof toolbarItem == 'string') {
-              toolbarItem = toolbarItem.toLowerCase();
-              if (toolbarItem == '|') {
-                toolbarItem = 'Separator';
-              }
-              if (toolbarItem == '||') {
-                toolbarItem = 'Breakline';
-              }
-              if (baidu.editor.ui[toolbarItem]) {
-                toolbarItemUi = new baidu.editor.ui[toolbarItem](editor);
-              }
-
-              //fullscreen杩欓噷鍗曠嫭澶勭悊涓�涓嬶紝鏀惧埌棣栬鍘�
-              if (toolbarItem == 'fullscreen') {
-                if (toolbarUis && toolbarUis[0]) {
-                  toolbarUis[0].items.splice(0, 0, toolbarItemUi);
-                } else {
-                  toolbarItemUi && toolbarUi.items.splice(0, 0, toolbarItemUi);
-                }
-
-                continue;
-
-
-              }
-            } else {
-              toolbarItemUi = toolbarItem;
-            }
-            if (toolbarItemUi && toolbarItemUi.id) {
-
-              toolbarUi.add(toolbarItemUi);
-            }
-          }
-          toolbarUis[i] = toolbarUi;
-        }
-
-        //鎺ュ彈澶栭儴瀹氬埗鐨刄I锛堜慨澶嶅洜 utils.each 鏃犳硶鍑嗙‘鐨勫惊鐜嚭瀵硅薄鐨勫叏閮ㄥ厓绱犺�屽鑷寸殑鑷畾涔� UI 涓嶇鍚堥鏈熺殑 BUG by HaoChuan9421锛�
-
-        // utils.each(UE._customizeUI,function(obj,key){
-        //     var itemUI,index;
-        //     if(obj.id && obj.id != editor.key){
-        //        return false;
-        //     }
-        //     itemUI = obj.execFn.call(editor,editor,key);
-        //     if(itemUI){
-        //         index = obj.index;
-        //         if(index === undefined){
-        //             index = toolbarUi.items.length;
-        //         }
-        //         toolbarUi.add(itemUI,index)
-        //     }
-        // });
-
-
-        for (var key in UE._customizeUI) {
-          var obj = UE._customizeUI[key]
-          var itemUI, index;
-          if (!obj.id || obj.id == editor.key) {
-            itemUI = obj.execFn.call(editor, editor, key);
-            if (itemUI) {
-              index = obj.index;
-              if (index === undefined) {
-                index = toolbarUi.items.length;
-              }
-              toolbarUi.add(itemUI, index)
-            }
-          }
-        }
-
-        this.toolbars = toolbarUis;
-      },
-      getHtmlTpl: function() {
-        return '<div id="##" class="%%">' +
-          '<div id="##_toolbarbox" class="%%-toolbarbox">' +
-          (this.toolbars.length ?
-            '<div id="##_toolbarboxouter" class="%%-toolbarboxouter"><div class="%%-toolbarboxinner">' +
-            this.renderToolbarBoxHtml() +
-            '</div></div>' : '') +
-          '<div id="##_toolbarmsg" class="%%-toolbarmsg" style="display:none;">' +
-          '<div id = "##_upload_dialog" class="%%-toolbarmsg-upload" onclick="$$.showWordImageDialog();">' +
-          this.editor.getLang("clickToUpload") + '</div>' +
-          '<div class="%%-toolbarmsg-close" onclick="$$.hideToolbarMsg();">x</div>' +
-          '<div id="##_toolbarmsg_label" class="%%-toolbarmsg-label"></div>' +
-          '<div style="height:0;overflow:hidden;clear:both;"></div>' +
-          '</div>' +
-          '<div id="##_message_holder" class="%%-messageholder"></div>' +
-          '</div>' +
-          '<div id="##_iframeholder" class="%%-iframeholder">' +
-          '</div>' +
-          //modify wdcount by matao
-          '<div id="##_bottombar" class="%%-bottomContainer"><table><tr>' +
-          '<td id="##_elementpath" class="%%-bottombar"></td>' +
-          '<td id="##_wordcount" class="%%-wordcount"></td>' +
-          '<td id="##_scale" class="%%-scale"><div class="%%-icon"></div></td>' +
-          '</tr></table></div>' +
-          '<div id="##_scalelayer"></div>' +
-          '</div>';
-      },
-      showWordImageDialog: function() {
-        this._dialogs['wordimageDialog'].open();
-      },
-      renderToolbarBoxHtml: function() {
-        var buff = [];
-        for (var i = 0; i < this.toolbars.length; i++) {
-          buff.push(this.toolbars[i].renderHtml());
-        }
-        return buff.join('');
-      },
-      setFullScreen: function(fullscreen) {
-
-        var editor = this.editor,
-          container = editor.container.parentNode.parentNode;
-        if (this._fullscreen != fullscreen) {
-          this._fullscreen = fullscreen;
-          this.editor.fireEvent('beforefullscreenchange', fullscreen);
-          if (baidu.editor.browser.gecko) {
-            var bk = editor.selection.getRange().createBookmark();
-          }
-          if (fullscreen) {
-            while (container.tagName != "BODY") {
-              var position = baidu.editor.dom.domUtils.getComputedStyle(container, "position");
-              nodeStack.push(position);
-              container.style.position = "static";
-              container = container.parentNode;
-            }
-            this._bakHtmlOverflow = document.documentElement.style.overflow;
-            this._bakBodyOverflow = document.body.style.overflow;
-            this._bakAutoHeight = this.editor.autoHeightEnabled;
-            this._bakScrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
-
-            this._bakEditorContaninerWidth = editor.iframe.parentNode.offsetWidth;
-            if (this._bakAutoHeight) {
-              //褰撳叏灞忔椂涓嶈兘鎵ц鑷姩闀块珮
-              editor.autoHeightEnabled = false;
-              this.editor.disableAutoHeight();
-            }
-
-            document.documentElement.style.overflow = 'hidden';
-            //淇锛屾粴鍔ㄦ潯涓嶆敹璧风殑闂
-
-            window.scrollTo(0, window.scrollY);
-            this._bakCssText = this.getDom().style.cssText;
-            this._bakCssText1 = this.getDom('iframeholder').style.cssText;
-            editor.iframe.parentNode.style.width = '';
-            this._updateFullScreen();
-          } else {
-            while (container.tagName != "BODY") {
-              container.style.position = nodeStack.shift();
-              container = container.parentNode;
-            }
-            this.getDom().style.cssText = this._bakCssText;
-            this.getDom('iframeholder').style.cssText = this._bakCssText1;
-            if (this._bakAutoHeight) {
-              editor.autoHeightEnabled = true;
-              this.editor.enableAutoHeight();
-            }
-
-            document.documentElement.style.overflow = this._bakHtmlOverflow;
-            document.body.style.overflow = this._bakBodyOverflow;
-            editor.iframe.parentNode.style.width = this._bakEditorContaninerWidth + 'px';
-            window.scrollTo(0, this._bakScrollTop);
-          }
-          if (browser.gecko && editor.body.contentEditable === 'true') {
-            var input = document.createElement('input');
-            document.body.appendChild(input);
-            editor.body.contentEditable = false;
-            setTimeout(function() {
-              input.focus();
-              setTimeout(function() {
-                editor.body.contentEditable = true;
-                editor.fireEvent('fullscreenchanged', fullscreen);
-                editor.selection.getRange().moveToBookmark(bk).select(true);
-                baidu.editor.dom.domUtils.remove(input);
-                fullscreen && window.scroll(0, 0);
-              }, 0)
-            }, 0)
-          }
-
-          if (editor.body.contentEditable === 'true') {
-            this.editor.fireEvent('fullscreenchanged', fullscreen);
-            this.triggerLayout();
-          }
-
-        }
-      },
-      _updateFullScreen: function() {
-        if (this._fullscreen) {
-          var vpRect = uiUtils.getViewportRect();
-          this.getDom().style.cssText = 'border:0;position:absolute;left:0;top:' + (this.editor.options.topOffset ||
-            0) + 'px;width:' + vpRect.width + 'px;height:' + vpRect.height + 'px;z-index:' + (this.getDom().style
-            .zIndex * 1 + 100);
-          uiUtils.setViewportOffset(this.getDom(), {
-            left: 0,
-            top: this.editor.options.topOffset || 0
-          });
-          this.editor.setHeight(vpRect.height - this.getDom('toolbarbox').offsetHeight - this.getDom(
-            'bottombar').offsetHeight - (this.editor.options.topOffset || 0), true);
-          //涓嶆墜鍔ㄨ皟涓�涓嬶紝浼氬鑷村叏灞忓け鏁�
-          if (browser.gecko) {
-            try {
-              window.onresize();
-            } catch (e) {
-
-            }
-
-          }
-        }
-      },
-      _updateElementPath: function() {
-        var bottom = this.getDom('elementpath'),
-          list;
-        if (this.elementPathEnabled && (list = this.editor.queryCommandValue('elementpath'))) {
-
-          var buff = [];
-          for (var i = 0, ci; ci = list[i]; i++) {
-            buff[i] = this.formatHtml(
-              '<span unselectable="on" onclick="$$.editor.execCommand(&quot;elementpath&quot;, &quot;' + i +
-              '&quot;);">' + ci + '</span>');
-          }
-          bottom.innerHTML = '<div class="edui-editor-breadcrumb" onmousedown="return false;">' + this.editor.getLang(
-            "elementPathTip") + ': ' + buff.join(' &gt; ') + '</div>';
-
-        } else {
-          bottom.style.display = 'none'
-        }
-      },
-      disableElementPath: function() {
-        var bottom = this.getDom('elementpath');
-        bottom.innerHTML = '';
-        bottom.style.display = 'none';
-        this.elementPathEnabled = false;
-
-      },
-      enableElementPath: function() {
-        var bottom = this.getDom('elementpath');
-        bottom.style.display = '';
-        this.elementPathEnabled = true;
-        this._updateElementPath();
-      },
-      _scale: function() {
-        var doc = document,
-          editor = this.editor,
-          editorHolder = editor.container,
-          editorDocument = editor.document,
-          toolbarBox = this.getDom("toolbarbox"),
-          bottombar = this.getDom("bottombar"),
-          scale = this.getDom("scale"),
-          scalelayer = this.getDom("scalelayer");
-
-        var isMouseMove = false,
-          position = null,
-          minEditorHeight = 0,
-          minEditorWidth = editor.options.minFrameWidth,
-          pageX = 0,
-          pageY = 0,
-          scaleWidth = 0,
-          scaleHeight = 0;
-
-        function down() {
-          position = domUtils.getXY(editorHolder);
-
-          if (!minEditorHeight) {
-            minEditorHeight = editor.options.minFrameHeight + toolbarBox.offsetHeight + bottombar.offsetHeight;
-          }
-
-          scalelayer.style.cssText =
-            "position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:" +
-            editorHolder.offsetWidth + "px;height:" +
-            editorHolder.offsetHeight + "px;z-index:" + (editor.options.zIndex + 1);
-
-          domUtils.on(doc, "mousemove", move);
-          domUtils.on(editorDocument, "mouseup", up);
-          domUtils.on(doc, "mouseup", up);
-        }
-
-        var me = this;
-        //by xuheng 鍏ㄥ睆鏃跺叧鎺夌缉鏀�
-        this.editor.addListener('fullscreenchanged', function(e, fullScreen) {
-          if (fullScreen) {
-            me.disableScale();
-
-          } else {
-            if (me.editor.options.scaleEnabled) {
-              me.enableScale();
-              var tmpNode = me.editor.document.createElement('span');
-              me.editor.body.appendChild(tmpNode);
-              me.editor.body.style.height = Math.max(domUtils.getXY(tmpNode).y, me.editor.iframe.offsetHeight -
-                20) + 'px';
-              domUtils.remove(tmpNode)
-            }
-          }
-        });
-
-        function move(event) {
-          clearSelection();
-          var e = event || window.event;
-          pageX = e.pageX || (doc.documentElement.scrollLeft + e.clientX);
-          pageY = e.pageY || (doc.documentElement.scrollTop + e.clientY);
-          scaleWidth = pageX - position.x;
-          scaleHeight = pageY - position.y;
-
-          if (scaleWidth >= minEditorWidth) {
-            isMouseMove = true;
-            scalelayer.style.width = scaleWidth + 'px';
-          }
-          if (scaleHeight >= minEditorHeight) {
-            isMouseMove = true;
-            scalelayer.style.height = scaleHeight + "px";
-          }
-        }
-
-        function up() {
-          if (isMouseMove) {
-            isMouseMove = false;
-            editor.ui._actualFrameWidth = scalelayer.offsetWidth - 2;
-            editorHolder.style.width = editor.ui._actualFrameWidth + 'px';
-
-            editor.setHeight(scalelayer.offsetHeight - bottombar.offsetHeight - toolbarBox.offsetHeight - 2,
-              true);
-          }
-          if (scalelayer) {
-            scalelayer.style.display = "none";
-          }
-          clearSelection();
-          domUtils.un(doc, "mousemove", move);
-          domUtils.un(editorDocument, "mouseup", up);
-          domUtils.un(doc, "mouseup", up);
-        }
-
-        function clearSelection() {
-          if (browser.ie)
-            doc.selection.clear();
-          else
-            window.getSelection().removeAllRanges();
-        }
-
-        this.enableScale = function() {
-          //trace:2868
-          if (editor.queryCommandState("source") == 1) return;
-          scale.style.display = "";
-          this.scaleEnabled = true;
-          domUtils.on(scale, "mousedown", down);
-        };
-        this.disableScale = function() {
-          scale.style.display = "none";
-          this.scaleEnabled = false;
-          domUtils.un(scale, "mousedown", down);
-        };
-      },
-      isFullScreen: function() {
-        return this._fullscreen;
-      },
-      postRender: function() {
-        UIBase.prototype.postRender.call(this);
-        for (var i = 0; i < this.toolbars.length; i++) {
-          this.toolbars[i].postRender();
-        }
-        var me = this;
-        var timerId,
-          domUtils = baidu.editor.dom.domUtils,
-          updateFullScreenTime = function() {
-            clearTimeout(timerId);
-            timerId = setTimeout(function() {
-              me._updateFullScreen();
-            });
-          };
-        domUtils.on(window, 'resize', updateFullScreenTime);
-
-        me.addListener('destroy', function() {
-          domUtils.un(window, 'resize', updateFullScreenTime);
-          clearTimeout(timerId);
-        })
-      },
-      showToolbarMsg: function(msg, flag) {
-        this.getDom('toolbarmsg_label').innerHTML = msg;
-        this.getDom('toolbarmsg').style.display = '';
-        //
-        if (!flag) {
-          var w = this.getDom('upload_dialog');
-          w.style.display = 'none';
-        }
-      },
-      hideToolbarMsg: function() {
-        this.getDom('toolbarmsg').style.display = 'none';
-      },
-      mapUrl: function(url) {
-        return url ? url.replace('~/', this.editor.options.UEDITOR_HOME_URL || '') : ''
-      },
-      triggerLayout: function() {
-        var dom = this.getDom();
-        if (dom.style.zoom == '1') {
-          dom.style.zoom = '100%';
-        } else {
-          dom.style.zoom = '1';
-        }
-      }
-    };
-    utils.inherits(EditorUI, baidu.editor.ui.UIBase);
-
-
-    var instances = {};
-
-
-    UE.ui.Editor = function(options) {
-      var editor = new UE.Editor(options);
-      editor.options.editor = editor;
-      utils.loadFile(document, {
-        href: editor.options.themePath + editor.options.theme + "/css/ueditor.css",
-        tag: "link",
-        type: "text/css",
-        rel: "stylesheet"
-      });
-
-      var oldRender = editor.render;
-      editor.render = function(holder) {
-        if (holder.constructor === String) {
-          editor.key = holder;
-          instances[holder] = editor;
-        }
-        utils.domReady(function() {
-          editor.langIsReady ? renderUI() : editor.addListener("langReady", renderUI);
-
-          function renderUI() {
-            editor.setOpt({
-              labelMap: editor.options.labelMap || editor.getLang('labelMap')
-            });
-            new EditorUI(editor.options);
-            if (holder) {
-              if (holder.constructor === String) {
-                holder = document.getElementById(holder);
-              }
-              holder && holder.getAttribute('name') && (editor.options.textarea = holder.getAttribute(
-                'name'));
-              if (holder && /script|textarea/ig.test(holder.tagName)) {
-                var newDiv = document.createElement('div');
-                holder.parentNode.insertBefore(newDiv, holder);
-                var cont = holder.value || holder.innerHTML;
-                editor.options.initialContent = /^[\t\r\n ]*$/.test(cont) ? editor.options.initialContent :
-                  cont.replace(/>[\n\r\t]+([ ]{4})+/g, '>')
-                  .replace(/[\n\r\t]+([ ]{4})+</g, '<')
-                  .replace(/>[\n\r\t]+</g, '><');
-                holder.className && (newDiv.className = holder.className);
-                holder.style.cssText && (newDiv.style.cssText = holder.style.cssText);
-                if (/textarea/i.test(holder.tagName)) {
-                  editor.textarea = holder;
-                  editor.textarea.style.display = 'none';
-
-
-                } else {
-                  holder.parentNode.removeChild(holder);
-
-
-                }
-                if (holder.id) {
-                  newDiv.id = holder.id;
-                  domUtils.removeAttributes(holder, 'id');
-                }
-                holder = newDiv;
-                holder.innerHTML = '';
-              }
-
-            }
-            domUtils.addClass(holder, "edui-" + editor.options.theme);
-            editor.ui.render(holder);
-            var opt = editor.options;
-            //缁欏疄渚嬫坊鍔犱竴涓紪杈戝櫒鐨勫鍣ㄥ紩鐢�
-            editor.container = editor.ui.getDom();
-            var parents = domUtils.findParents(holder, true);
-            var displays = [];
-            for (var i = 0, ci; ci = parents[i]; i++) {
-              displays[i] = ci.style.display;
-              ci.style.display = 'block'
-            }
-            if (opt.initialFrameWidth) {
-              opt.minFrameWidth = opt.initialFrameWidth;
-            } else {
-              opt.minFrameWidth = opt.initialFrameWidth = holder.offsetWidth;
-              var styleWidth = holder.style.width;
-              if (/%$/.test(styleWidth)) {
-                opt.initialFrameWidth = styleWidth;
-              }
-            }
-            if (opt.initialFrameHeight) {
-              opt.minFrameHeight = opt.initialFrameHeight;
-            } else {
-              opt.initialFrameHeight = opt.minFrameHeight = holder.offsetHeight;
-            }
-            for (var i = 0, ci; ci = parents[i]; i++) {
-              ci.style.display = displays[i]
-            }
-            //缂栬緫鍣ㄦ渶澶栧鍣ㄨ缃簡楂樺害锛屼細瀵艰嚧锛岀紪杈戝櫒涓嶅崰浣�
-            //todo 鍏堝幓鎺夛紝娌℃湁鎵惧埌鍘熷洜
-            if (holder.style.height) {
-              holder.style.height = ''
-            }
-            editor.container.style.width = opt.initialFrameWidth + (/%$/.test(opt.initialFrameWidth) ? '' :
-              'px');
-            editor.container.style.zIndex = opt.zIndex;
-            oldRender.call(editor, editor.ui.getDom('iframeholder'));
-            editor.fireEvent("afteruiready");
-          }
-        })
-      };
-      return editor;
-    };
-
-
-    /**
-     * @file
-     * @name UE
-     * @short UE
-     * @desc UEditor鐨勯《閮ㄥ懡鍚嶇┖闂�
-     */
-    /**
-     * @name getEditor
-     * @since 1.2.4+
-     * @grammar UE.getEditor(id,[opt])  =>  Editor瀹炰緥
-     * @desc 鎻愪緵涓�涓叏灞�鐨勬柟娉曞緱鍒扮紪杈戝櫒瀹炰緥
-     *
-     * * ''id''  鏀剧疆缂栬緫鍣ㄧ殑瀹瑰櫒id, 濡傛灉瀹瑰櫒涓嬬殑缂栬緫鍣ㄥ凡缁忓瓨鍦紝灏辩洿鎺ヨ繑鍥�
-     * * ''opt'' 缂栬緫鍣ㄧ殑鍙�夊弬鏁�
-     * @example
-     *  UE.getEditor('containerId',{onready:function(){//鍒涘缓涓�涓紪杈戝櫒瀹炰緥
-     *      this.setContent('hello')
-     *  }});
-     *  UE.getEditor('containerId'); //杩斿洖鍒氬垱寤虹殑瀹炰緥
-     *
-     */
-    UE.getEditor = function(id, opt) {
-      var editor = instances[id];
-      if (!editor) {
-        editor = instances[id] = new UE.ui.Editor(opt);
-        editor.render(id);
-      }
-      return editor;
-    };
-
-
-    UE.delEditor = function(id) {
-      var editor;
-      if (editor = instances[id]) {
-        editor.key && editor.destroy();
-        delete instances[id]
-      }
-    };
-
-    UE.registerUI = function(uiName, fn, index, editorId) {
-      utils.each(uiName.split(/\s+/), function(name) {
-        UE._customizeUI[name] = {
-          id: editorId,
-          execFn: fn,
-          index: index
-        };
-      })
-
-    }
-
-  })();
-
-  // adapter/message.js
-  UE.registerUI('message', function(editor) {
-
-    var editorui = baidu.editor.ui;
-    var Message = editorui.Message;
-    var holder;
-    var _messageItems = [];
-    var me = editor;
-
-    me.addListener('ready', function() {
-      holder = document.getElementById(me.ui.id + '_message_holder');
-      updateHolderPos();
-      // HaoChuan9421
-      // setTimeout(function(){
-      //     updateHolderPos();
-      // }, 500);
-    });
-
-    me.addListener('showmessage', function(type, opt) {
-      opt = utils.isString(opt) ? {
-        'content': opt
-      } : opt;
-      var message = new Message({
-          'timeout': opt.timeout,
-          'type': opt.type,
-          'content': opt.content,
-          'keepshow': opt.keepshow,
-          'editor': me
-        }),
-        mid = opt.id || ('msg_' + (+new Date()).toString(36));
-      message.render(holder);
-      _messageItems[mid] = message;
-      message.reset(opt);
-      updateHolderPos();
-      return mid;
-    });
-
-    me.addListener('updatemessage', function(type, id, opt) {
-      opt = utils.isString(opt) ? {
-        'content': opt
-      } : opt;
-      var message = _messageItems[id];
-      message.render(holder);
-      message && message.reset(opt);
-    });
-
-    me.addListener('hidemessage', function(type, id) {
-      var message = _messageItems[id];
-      message && message.hide();
-    });
-
-    function updateHolderPos() {
-      var toolbarbox = me.ui.getDom('toolbarbox');
-      if (toolbarbox) {
-        holder.style.top = toolbarbox.offsetHeight + 3 + 'px';
-      }
-      holder.style.zIndex = Math.max(me.options.zIndex, me.iframe.style.zIndex) + 1;
-    }
-
-  });
-
-
-  // adapter/autosave.js
-  UE.registerUI('autosave', function(editor) {
-    var timer = null,
-      uid = null;
-    editor.on('afterautosave', function() {
-      clearTimeout(timer);
-
-      timer = setTimeout(function() {
-        if (uid) {
-          editor.trigger('hidemessage', uid);
-        }
-        uid = editor.trigger('showmessage', {
-          content: editor.getLang('autosave.success'),
-          timeout: 2000
-        });
-
-      }, 2000)
-    })
-
-  });
-
-
-
-})();
diff --git a/server/public/ueditor/ueditor.all.min.js b/server/public/ueditor/ueditor.all.min.js
deleted file mode 100644
index e60dcb0..0000000
--- a/server/public/ueditor/ueditor.all.min.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * UEditor
- * version: ueditor
- * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST)
- */
-
-!function(){function getListener(a,b,c){var d;return b=b.toLowerCase(),(d=a.__allListeners||c&&(a.__allListeners={}))&&(d[b]||c&&(d[b]=[]))}function getDomNode(a,b,c,d,e,f){var g,h=d&&a[b];for(!h&&(h=a[c]);!h&&(g=(g||a).parentNode);){if("BODY"==g.tagName||f&&!f(g))return null;h=g[c]}return h&&e&&!e(h)?getDomNode(h,b,c,!1,e):h}UEDITOR_CONFIG=window.UEDITOR_CONFIG||{};var baidu=window.baidu||{};window.baidu=baidu,window.UE=baidu.editor=window.UE||{},UE.plugins={},UE.commands={},UE.instants={},UE.I18N={},UE._customizeUI={},UE.version="1.4.3";var dom=UE.dom={},browser=UE.browser=function(){var a=navigator.userAgent.toLowerCase(),b=window.opera,c={ie:/(msie\s|trident.*rv:)([\w.]+)/.test(a),opera:!!b&&b.version,webkit:a.indexOf(" applewebkit/")>-1,mac:a.indexOf("macintosh")>-1,quirks:"BackCompat"==document.compatMode};c.gecko="Gecko"==navigator.product&&!c.webkit&&!c.opera&&!c.ie;var d=0;if(c.ie){var e=a.match(/(?:msie\s([\w.]+))/),f=a.match(/(?:trident.*rv:([\w.]+))/);d=e&&f&&e[1]&&f[1]?Math.max(1*e[1],1*f[1]):e&&e[1]?1*e[1]:f&&f[1]?1*f[1]:0,c.ie11Compat=11==document.documentMode,c.ie9Compat=9==document.documentMode,c.ie8=!!document.documentMode,c.ie8Compat=8==document.documentMode,c.ie7Compat=7==d&&!document.documentMode||7==document.documentMode,c.ie6Compat=d<7||c.quirks,c.ie9above=d>8,c.ie9below=d<9,c.ie11above=d>10,c.ie11below=d<11}if(c.gecko){var g=a.match(/rv:([\d\.]+)/);g&&(g=g[1].split("."),d=1e4*g[0]+100*(g[1]||0)+1*(g[2]||0))}return/chrome\/(\d+\.\d)/i.test(a)&&(c.chrome=+RegExp.$1),/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(a)&&!/chrome/i.test(a)&&(c.safari=+(RegExp.$1||RegExp.$2)),c.opera&&(d=parseFloat(b.version())),c.webkit&&(d=parseFloat(a.match(/ applewebkit\/(\d+)/)[1])),c.version=d,c.isCompatible=!c.mobile&&(c.ie&&d>=6||c.gecko&&d>=10801||c.opera&&d>=9.5||c.air&&d>=1||c.webkit&&d>=522||!1),c}(),ie=browser.ie,webkit=browser.webkit,gecko=browser.gecko,opera=browser.opera,utils=UE.utils={each:function(a,b,c){if(null!=a)if(a.length===+a.length){for(var d=0,e=a.length;d<e;d++)if(b.call(c,a[d],d,a)===!1)return!1}else for(var f in a)if(a.hasOwnProperty(f)&&b.call(c,a[f],f,a)===!1)return!1},makeInstance:function(a){var b=new Function;return b.prototype=a,a=new b,b.prototype=null,a},extend:function(a,b,c){if(b)for(var d in b)c&&a.hasOwnProperty(d)||(a[d]=b[d]);return a},extend2:function(a){for(var b=arguments,c=1;c<b.length;c++){var d=b[c];for(var e in d)a.hasOwnProperty(e)||(a[e]=d[e])}return a},inherits:function(a,b){var c=a.prototype,d=utils.makeInstance(b.prototype);return utils.extend(d,c,!0),a.prototype=d,d.constructor=a},bind:function(a,b){return function(){return a.apply(b,arguments)}},defer:function(a,b,c){var d;return function(){c&&clearTimeout(d),d=setTimeout(a,b)}},indexOf:function(a,b,c){var d=-1;return c=this.isNumber(c)?c:0,this.each(a,function(a,e){if(e>=c&&a===b)return d=e,!1}),d},removeItem:function(a,b){for(var c=0,d=a.length;c<d;c++)a[c]===b&&(a.splice(c,1),c--)},trim:function(a){return a.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g,"")},listToMap:function(a){if(!a)return{};a=utils.isArray(a)?a:a.split(",");for(var b,c=0,d={};b=a[c++];)d[b.toUpperCase()]=d[b]=1;return d},unhtml:function(a,b){return a?a.replace(b||/[&<">'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g,function(a,b){return b?a:{"<":"&lt;","&":"&amp;",'"':"&quot;",">":"&gt;","'":"&#39;"}[a]}):""},unhtmlForUrl:function(a,b){return a?a.replace(b||/[<">']/g,function(a){return{"<":"&lt;","&":"&amp;",'"':"&quot;",">":"&gt;","'":"&#39;"}[a]}):""},html:function(a){return a?a.replace(/&((g|l|quo)t|amp|#39|nbsp);/g,function(a){return{"&lt;":"<","&amp;":"&","&quot;":'"',"&gt;":">","&#39;":"'","&nbsp;":" "}[a]}):""},cssStyleToDomStyle:function(){var a=document.createElement("div").style,b={"float":void 0!=a.cssFloat?"cssFloat":void 0!=a.styleFloat?"styleFloat":"float"};return function(a){return b[a]||(b[a]=a.toLowerCase().replace(/-./g,function(a){return a.charAt(1).toUpperCase()}))}}(),loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" ></"+d.tag+">")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url settings of file ueditor.config.js ")},c.getElementsByTagName("head")[0].appendChild(i)}}}(),isEmptyObject:function(a){if(null==a)return!0;if(this.isArray(a)||this.isString(a))return 0===a.length;for(var b in a)if(a.hasOwnProperty(b))return!1;return!0},fixColor:function(a,b){if(/color/i.test(a)&&/rgba?/.test(b)){var c=b.split(",");if(c.length>3)return"";b="#";for(var d,e=0;d=c[e++];)d=parseInt(d.replace(/[^\d]/gi,""),10).toString(16),b+=1==d.length?"0"+d:d;b=b.toUpperCase()}return b},optCss:function(a){function b(a,b){if(!a)return"";var c=a.top,d=a.bottom,e=a.left,f=a.right,g="";if(c&&e&&d&&f)g+=";"+b+":"+(c==d&&d==e&&e==f?c:c==d&&e==f?c+" "+e:e==f?c+" "+e+" "+d:c+" "+f+" "+d+" "+e)+";";else for(var h in a)g+=";"+b+"-"+h+":"+a[h]+";";return g}var c,d;return a=a.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi,function(a,b,e,f){if(1==f.split(" ").length)switch(b){case"padding":return!c&&(c={}),c[e]=f,"";case"margin":return!d&&(d={}),d[e]=f,"";case"border":return"initial"==f?"":a}return a}),a+=b(c,"padding")+b(d,"margin"),a.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/,"").replace(/;([ \n\r\t]+)|\1;/g,";").replace(/(&((l|g)t|quot|#39))?;{2,}/g,function(a,b){return b?b+";;":";"})},clone:function(a,b){var c;b=b||{};for(var d in a)a.hasOwnProperty(d)&&(c=a[d],"object"==typeof c?(b[d]=utils.isArray(c)?[]:{},utils.clone(a[d],b[d])):b[d]=c);return b},transUnitToPx:function(a){if(!/(pt|cm)/.test(a))return a;var b;switch(a.replace(/([\d.]+)(\w+)/,function(c,d,e){a=d,b=e}),b){case"cm":a=25*parseFloat(a);break;case"pt":a=Math.round(96*parseFloat(a)/72)}return a+(a?"px":"")},domReady:function(){function a(a){a.isReady=!0;for(var c;c=b.pop();c());}var b=[];return function(c,d){d=d||window;var e=d.document;c&&b.push(c),"complete"===e.readyState?a(e):(e.isReady&&a(e),browser.ie&&11!=browser.version?(!function(){if(!e.isReady){try{e.documentElement.doScroll("left")}catch(b){return void setTimeout(arguments.callee,0)}a(e)}}(),d.attachEvent("onload",function(){a(e)})):(e.addEventListener("DOMContentLoaded",function(){e.removeEventListener("DOMContentLoaded",arguments.callee,!1),a(e)},!1),d.addEventListener("load",function(){a(e)},!1)))}}(),cssRule:browser.ie&&11!=browser.version?function(a,b,c){var d,e;if(void 0===b||b&&b.nodeType&&9==b.nodeType){if(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.indexList||(c.indexList={}),e=d[a],void 0!==e)return c.styleSheets[e].cssText}else{if(c=c||document,d=c.indexList||(c.indexList={}),e=d[a],""===b)return void 0!==e&&(c.styleSheets[e].cssText="",delete d[a],!0);void 0!==e?sheetStyle=c.styleSheets[e]:(sheetStyle=c.createStyleSheet("",e=c.styleSheets.length),d[a]=e),sheetStyle.cssText=b}}:function(a,b,c){var d;return void 0===b||b&&b.nodeType&&9==b.nodeType?(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.getElementById(a),d?d.innerHTML:void 0):(c=c||document,d=c.getElementById(a),""===b?!!d&&(d.parentNode.removeChild(d),!0):void(d?d.innerHTML=b:(d=c.createElement("style"),d.id=a,d.innerHTML=b,c.getElementsByTagName("head")[0].appendChild(d))))},sort:function(a,b){b=b||function(a,b){return a.localeCompare(b)};for(var c=0,d=a.length;c<d;c++)for(var e=c,f=a.length;e<f;e++)if(b(a[c],a[e])>0){var g=a[c];a[c]=a[e],a[e]=g}return a},serializeParam:function(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c)if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d<a[c].length;d++)b.push(encodeURIComponent(c)+"[]="+encodeURIComponent(a[c][d]));return b.join("&")},formatUrl:function(a){var b=a.replace(/&&/g,"&");return b=b.replace(/\?&/g,"?"),b=b.replace(/&$/g,""),b=b.replace(/&#/g,"#"),b=b.replace(/&+/g,"&")},isCrossDomainUrl:function(a){var b=document.createElement("a");return b.href=a,browser.ie&&(b.href=b.href),!(b.protocol==location.protocol&&b.hostname==location.hostname&&(b.port==location.port||"80"==b.port&&""==location.port||""==b.port&&"80"==location.port))},clearEmptyAttrs:function(a){for(var b in a)""===a[b]&&delete a[b];return a},str2json:function(a){return utils.isString(a)?window.JSON?JSON.parse(a):new Function("return "+utils.trim(a||""))():null},json2str:function(){function a(a){return/["\\\x00-\x1f]/.test(a)&&(a=a.replace(/["\\\x00-\x1f]/g,function(a){var b=e[a];return b?b:(b=a.charCodeAt(),"\\u00"+Math.floor(b/16).toString(16)+(b%16).toString(16))})),'"'+a+'"'}function b(a){var b,c,d,e=["["],f=a.length;for(c=0;c<f;c++)switch(d=a[c],typeof d){case"undefined":case"function":case"unknown":break;default:b&&e.push(","),e.push(utils.json2str(d)),b=1}return e.push("]"),e.join("")}function c(a){return a<10?"0"+a:a}function d(a){return'"'+a.getFullYear()+"-"+c(a.getMonth()+1)+"-"+c(a.getDate())+"T"+c(a.getHours())+":"+c(a.getMinutes())+":"+c(a.getSeconds())+'"'}if(window.JSON)return JSON.stringify;var e={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return function(c){switch(typeof c){case"undefined":return"undefined";case"number":return isFinite(c)?String(c):"null";case"string":return a(c);case"boolean":return String(c);default:if(null===c)return"null";if(utils.isArray(c))return b(c);if(utils.isDate(c))return d(c);var e,f,g=["{"],h=utils.json2str;for(var i in c)if(Object.prototype.hasOwnProperty.call(c,i))switch(f=c[i],typeof f){case"undefined":case"unknown":case"function":break;default:e&&g.push(","),e=1,g.push(h(i)+":"+h(f))}return g.push("}"),g.join("")}}}()};utils.each(["String","Function","Array","Number","RegExp","Object","Date"],function(a){UE.utils["is"+a]=function(b){return Object.prototype.toString.apply(b)=="[object "+a+"]"}});var EventBase=UE.EventBase=function(){};EventBase.prototype={addListener:function(a,b){a=utils.trim(a).split(/\s+/);for(var c,d=0;c=a[d++];)getListener(this,c,!0).push(b)},on:function(a,b){return this.addListener(a,b)},off:function(a,b){return this.removeListener(a,b)},trigger:function(){return this.fireEvent.apply(this,arguments)},removeListener:function(a,b){a=utils.trim(a).split(/\s+/);for(var c,d=0;c=a[d++];)utils.removeItem(getListener(this,c)||[],b)},fireEvent:function(){var a=arguments[0];a=utils.trim(a).split(" ");for(var b,c=0;b=a[c++];){var d,e,f,g=getListener(this,b);if(g)for(f=g.length;f--;)if(g[f]){if(e=g[f].apply(this,arguments),e===!0)return e;void 0!==e&&(d=e)}(e=this["on"+b.toLowerCase()])&&(d=e.apply(this,arguments))}return d}};var dtd=dom.dtd=function(){function a(a){for(var b in a)a[b.toUpperCase()]=a[b];return a}var b=utils.extend2,c=a({isindex:1,fieldset:1}),d=a({input:1,button:1,select:1,textarea:1,label:1}),e=b(a({a:1}),d),f=b({iframe:1},e),g=a({hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1}),h=a({ins:1,del:1,script:1,style:1}),i=b(a({b:1,acronym:1,bdo:1,"var":1,"#":1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1}),h),j=b(a({sub:1,img:1,embed:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1}),i),k=b(a({p:1}),j),l=b(a({iframe:1}),j,d),m=a({img:1,embed:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,"#":1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,"var":1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1}),n=b(a({a:0}),l),o=a({tr:1}),p=a({"#":1}),q=b(a({param:1}),m),r=b(a({form:1}),c,f,g,k),s=a({li:1,ol:1,ul:1}),t=a({style:1,script:1}),u=a({base:1,link:1,meta:1,title:1}),v=b(u,t),w=a({head:1,body:1}),x=a({html:1}),y=a({address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1}),z=a({area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1});return a({$nonBodyContent:b(x,w,u),$block:y,$inline:n,$inlineWithA:b(a({a:1}),n),$body:b(a({script:1,style:1}),y),$cdata:a({script:1,style:1}),$empty:z,$nonChild:a({iframe:1,textarea:1}),$listItem:a({dd:1,dt:1,li:1}),$list:a({ul:1,ol:1,dl:1}),$isNotEmpty:a({table:1,ul:1,ol:1,dl:1,iframe:1,area:1,base:1,col:1,hr:1,img:1,embed:1,input:1,link:1,meta:1,param:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1}),$removeEmpty:a({a:1,abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,"var":1}),$removeEmptyBlock:a({p:1,div:1}),$tableContent:a({caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1,table:1}),$notTransContent:a({pre:1,script:1,style:1,textarea:1}),html:w,head:v,style:p,script:p,body:r,base:{},link:{},meta:{},title:p,col:{},tr:a({td:1,th:1}),img:{},embed:{},colgroup:a({thead:1,col:1,tbody:1,tr:1,tfoot:1}),noscript:r,td:r,br:{},th:r,center:r,kbd:n,button:b(k,g),basefont:{},h5:n,h4:n,samp:n,h6:n,ol:s,h1:n,h3:n,option:p,h2:n,form:b(c,f,g,k),select:a({optgroup:1,option:1}),font:n,ins:n,menu:s,abbr:n,label:n,table:a({thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1}),code:n,tfoot:o,cite:n,li:r,input:{},iframe:r,strong:n,textarea:p,noframes:r,big:n,small:n,span:a({"#":1,br:1,b:1,strong:1,u:1,i:1,em:1,sub:1,sup:1,strike:1,span:1}),hr:n,dt:n,sub:n,optgroup:a({option:1}),param:{},bdo:n,"var":n,div:r,object:q,sup:n,dd:r,strike:n,area:{},dir:s,map:b(a({area:1,form:1,p:1}),c,h,g),applet:q,dl:a({dt:1,dd:1}),del:n,isindex:{},fieldset:b(a({legend:1}),m),thead:o,ul:s,acronym:n,b:n,a:b(a({a:1}),l),blockquote:b(a({td:1,tr:1,tbody:1,li:1}),r),caption:n,i:n,u:n,tbody:o,s:n,address:b(f,k),tt:n,legend:n,q:n,pre:b(i,e),p:b(a({a:1}),n),em:n,dfn:n})}(),attrFix=ie&&browser.version<9?{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder"}:{tabindex:"tabIndex",readonly:"readOnly"},styleBlock=utils.listToMap(["-webkit-box","-moz-box","block","list-item","table","table-row-group","table-header-group","table-footer-group","table-row","table-column-group","table-column","table-cell","table-caption"]),domUtils=dom.domUtils={NODE_ELEMENT:1,NODE_DOCUMENT:9,NODE_TEXT:3,NODE_COMMENT:8,NODE_DOCUMENT_FRAGMENT:11,POSITION_IDENTICAL:0,POSITION_DISCONNECTED:1,POSITION_FOLLOWING:2,POSITION_PRECEDING:4,POSITION_IS_CONTAINED:8,POSITION_CONTAINS:16,fillChar:ie&&"6"==browser.version?"\ufeff":"鈥�",keys:{8:1,46:1,16:1,17:1,18:1,37:1,38:1,39:1,40:1,13:1},getPosition:function(a,b){if(a===b)return 0;var c,d=[a],e=[b];for(c=a;c=c.parentNode;){if(c===b)return 10;d.push(c)}for(c=b;c=c.parentNode;){if(c===a)return 20;e.push(c)}if(d.reverse(),e.reverse(),d[0]!==e[0])return 1;for(var f=-1;f++,d[f]===e[f];);for(a=d[f],b=e[f];a=a.nextSibling;)if(a===b)return 4;return 2},getNodeIndex:function(a,b){for(var c=a,d=0;c=c.previousSibling;)b&&3==c.nodeType?c.nodeType!=c.nextSibling.nodeType&&d++:d++;return d},inDoc:function(a,b){return 10==domUtils.getPosition(a,b)},findParent:function(a,b,c){if(a&&!domUtils.isBody(a))for(a=c?a:a.parentNode;a;){if(!b||b(a)||domUtils.isBody(a))return b&&!b(a)&&domUtils.isBody(a)?null:a;a=a.parentNode}return null},findParentByTagName:function(a,b,c,d){return b=utils.listToMap(utils.isArray(b)?b:[b]),domUtils.findParent(a,function(a){return b[a.tagName]&&!(d&&d(a))},c)},findParents:function(a,b,c,d){for(var e=b&&(c&&c(a)||!c)?[a]:[];a=domUtils.findParent(a,c);)e.push(a);return d?e:e.reverse()},insertAfter:function(a,b){return a.nextSibling?a.parentNode.insertBefore(b,a.nextSibling):a.parentNode.appendChild(b)},remove:function(a,b){var c,d=a.parentNode;if(d){if(b&&a.hasChildNodes())for(;c=a.firstChild;)d.insertBefore(c,a);d.removeChild(a)}return a},getNextDomNode:function(a,b,c,d){return getDomNode(a,"firstChild","nextSibling",b,c,d)},getPreDomNode:function(a,b,c,d){return getDomNode(a,"lastChild","previousSibling",b,c,d)},isBookmarkNode:function(a){return 1==a.nodeType&&a.id&&/^_baidu_bookmark_/i.test(a.id)},getWindow:function(a){var b=a.ownerDocument||a;return b.defaultView||b.parentWindow},getCommonAncestor:function(a,b){if(a===b)return a;for(var c=[a],d=[b],e=a,f=-1;e=e.parentNode;){if(e===b)return e;c.push(e)}for(e=b;e=e.parentNode;){if(e===a)return e;d.push(e)}for(c.reverse(),d.reverse();f++,c[f]===d[f];);return 0==f?null:c[f-1]},clearEmptySibling:function(a,b,c){function d(a,b){for(var c;a&&!domUtils.isBookmarkNode(a)&&(domUtils.isEmptyInlineElement(a)||!new RegExp("[^\t\n\r"+domUtils.fillChar+"]").test(a.nodeValue));)c=a[b],domUtils.remove(a),a=c}!b&&d(a.nextSibling,"nextSibling"),!c&&d(a.previousSibling,"previousSibling")},split:function(a,b){var c=a.ownerDocument;if(browser.ie&&b==a.nodeValue.length){var d=c.createTextNode("");return domUtils.insertAfter(a,d)}var e=a.splitText(b);if(browser.ie8){var f=c.createTextNode("");domUtils.insertAfter(e,f),domUtils.remove(f)}return e},isWhitespace:function(a){return!new RegExp("[^ \t\n\r"+domUtils.fillChar+"]").test(a.nodeValue)},getXY:function(a){for(var b=0,c=0;a.offsetParent;)c+=a.offsetTop,b+=a.offsetLeft,a=a.offsetParent;return{x:b,y:c}},on:function(a,b,c){var d=utils.isArray(b)?b:utils.trim(b).split(/\s+/),e=d.length;if(e)for(;e--;)if(b=d[e],a.addEventListener)a.addEventListener(b,c,!1);else{c._d||(c._d={els:[]});var f=b+c.toString(),g=utils.indexOf(c._d.els,a);c._d[f]&&g!=-1||(g==-1&&c._d.els.push(a),c._d[f]||(c._d[f]=function(a){return c.call(a.srcElement,a||window.event)}),a.attachEvent("on"+b,c._d[f]))}a=null},un:function(a,b,c){var d=utils.isArray(b)?b:utils.trim(b).split(/\s+/),e=d.length;if(e)for(;e--;)if(b=d[e],a.removeEventListener)a.removeEventListener(b,c,!1);else{var f=b+c.toString();try{a.detachEvent("on"+b,c._d?c._d[f]:c)}catch(g){}if(c._d&&c._d[f]){var h=utils.indexOf(c._d.els,a);h!=-1&&c._d.els.splice(h,1),0==c._d.els.length&&delete c._d[f]}}},isSameElement:function(a,b){if(a.tagName!=b.tagName)return!1;var c=a.attributes,d=b.attributes;if(!ie&&c.length!=d.length)return!1;for(var e,f,g=0,h=0,i=0;e=c[i++];){if("style"==e.nodeName){if(e.specified&&g++,domUtils.isSameStyle(a,b))continue;return!1}if(ie){if(!e.specified)continue;g++,f=d.getNamedItem(e.nodeName)}else f=b.attributes[e.nodeName];if(!f.specified||e.nodeValue!=f.nodeValue)return!1}if(ie){for(i=0;f=d[i++];)f.specified&&h++;if(g!=h)return!1}return!0},isSameStyle:function(a,b){var c=a.style.cssText.replace(/( ?; ?)/g,";").replace(/( ?: ?)/g,":"),d=b.style.cssText.replace(/( ?; ?)/g,";").replace(/( ?: ?)/g,":");if(browser.opera){if(c=a.style,d=b.style,c.length!=d.length)return!1;for(var e in c)if(!/^(\d+|csstext)$/i.test(e)&&c[e]!=d[e])return!1;return!0}if(!c||!d)return c==d;if(c=c.split(";"),d=d.split(";"),c.length!=d.length)return!1;for(var f,g=0;f=c[g++];)if(utils.indexOf(d,f)==-1)return!1;return!0},isBlockElm:function(a){return 1==a.nodeType&&(dtd.$block[a.tagName]||styleBlock[domUtils.getComputedStyle(a,"display")])&&!dtd.$nonChild[a.tagName]},isBody:function(a){return a&&1==a.nodeType&&"body"==a.tagName.toLowerCase()},breakParent:function(a,b){var c,d,e,f=a,g=a;do{for(f=f.parentNode,d?(c=f.cloneNode(!1),c.appendChild(d),d=c,c=f.cloneNode(!1),c.appendChild(e),e=c):(d=f.cloneNode(!1),e=d.cloneNode(!1));c=g.previousSibling;)d.insertBefore(c,d.firstChild);for(;c=g.nextSibling;)e.appendChild(c);g=f}while(b!==f);return c=b.parentNode,c.insertBefore(d,b),c.insertBefore(e,b),c.insertBefore(a,e),domUtils.remove(b),a},isEmptyInlineElement:function(a){if(1!=a.nodeType||!dtd.$removeEmpty[a.tagName])return 0;for(a=a.firstChild;a;){if(domUtils.isBookmarkNode(a))return 0;if(1==a.nodeType&&!domUtils.isEmptyInlineElement(a)||3==a.nodeType&&!domUtils.isWhitespace(a))return 0;a=a.nextSibling}return 1},trimWhiteTextNode:function(a){function b(b){for(var c;(c=a[b])&&3==c.nodeType&&domUtils.isWhitespace(c);)a.removeChild(c)}b("firstChild"),b("lastChild")},mergeChild:function(a,b,c){for(var d,e=domUtils.getElementsByTagName(a,a.tagName.toLowerCase()),f=0;d=e[f++];)if(d.parentNode&&!domUtils.isBookmarkNode(d))if("span"!=d.tagName.toLowerCase())domUtils.isSameElement(a,d)&&domUtils.remove(d,!0);else{if(a===d.parentNode&&(domUtils.trimWhiteTextNode(a),1==a.childNodes.length)){a.style.cssText=d.style.cssText+";"+a.style.cssText,domUtils.remove(d,!0);continue}if(d.style.cssText=a.style.cssText+";"+d.style.cssText,c){var g=c.style;if(g){g=g.split(";");for(var h,i=0;h=g[i++];)d.style[utils.cssStyleToDomStyle(h.split(":")[0])]=h.split(":")[1]}}domUtils.isSameStyle(d,a)&&domUtils.remove(d,!0)}},getElementsByTagName:function(a,b,c){if(c&&utils.isString(c)){var d=c;c=function(a){return domUtils.hasClass(a,d)}}b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var e,f=[],g=0;e=b[g++];)for(var h,i=a.getElementsByTagName(e),j=0;h=i[j++];)c&&!c(h)||f.push(h);return f},mergeToParent:function(a){for(var b=a.parentNode;b&&dtd.$removeEmpty[b.tagName];){if(b.tagName==a.tagName||"A"==b.tagName){if(domUtils.trimWhiteTextNode(b),"SPAN"==b.tagName&&!domUtils.isSameStyle(b,a)||"A"==b.tagName&&"SPAN"==a.tagName){if(b.childNodes.length>1||b!==a.parentNode){a.style.cssText=b.style.cssText+";"+a.style.cssText,b=b.parentNode;continue}b.style.cssText+=";"+a.style.cssText,"A"==b.tagName&&(b.style.textDecoration="underline")}if("A"!=b.tagName){b===a.parentNode&&domUtils.remove(a,!0);break}}b=b.parentNode}},mergeSibling:function(a,b,c){function d(a,b,c){var d;if((d=c[a])&&!domUtils.isBookmarkNode(d)&&1==d.nodeType&&domUtils.isSameElement(c,d)){for(;d.firstChild;)"firstChild"==b?c.insertBefore(d.lastChild,c.firstChild):c.appendChild(d.firstChild);domUtils.remove(d)}}!b&&d("previousSibling","firstChild",a),!c&&d("nextSibling","lastChild",a)},unSelectable:ie&&browser.ie9below||browser.opera?function(a){a.onselectstart=function(){return!1},a.onclick=a.onkeyup=a.onkeydown=function(){return!1},a.unselectable="on",a.setAttribute("unselectable","on");for(var b,c=0;b=a.all[c++];)switch(b.tagName.toLowerCase()){case"iframe":case"textarea":case"input":case"select":break;default:b.unselectable="on",a.setAttribute("unselectable","on")}}:function(a){a.style.MozUserSelect=a.style.webkitUserSelect=a.style.msUserSelect=a.style.KhtmlUserSelect="none"},removeAttributes:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0;c=b[d++];){switch(c=attrFix[c]||c){case"className":a[c]="";break;case"style":a.style.cssText="";var e=a.getAttributeNode("style");!browser.ie&&e&&a.removeAttributeNode(e)}a.removeAttribute(c)}},createElement:function(a,b,c){return domUtils.setAttributes(a.createElement(b),c)},setAttributes:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];switch(c){case"class":a.className=d;break;case"style":a.style.cssText=a.style.cssText+";"+d;break;case"innerHTML":a[c]=d;break;case"value":a.value=d;break;default:a.setAttribute(attrFix[c]||c,d)}}return a},getComputedStyle:function(a,b){var c="width height top left";if(c.indexOf(b)>-1)return a["offset"+b.replace(/^\w/,function(a){return a.toUpperCase()})]+"px";if(3==a.nodeType&&(a=a.parentNode),browser.ie&&browser.version<9&&"font-size"==b&&!a.style.fontSize&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]){var d=a.ownerDocument.createElement("span");d.style.cssText="padding:0;border:0;font-family:simsun;",d.innerHTML=".",a.appendChild(d);var e=d.offsetHeight;return a.removeChild(d),d=null,e+"px"}try{var f=domUtils.getStyle(a,b)||(window.getComputedStyle?domUtils.getWindow(a).getComputedStyle(a,"").getPropertyValue(b):(a.currentStyle||a.style)[utils.cssStyleToDomStyle(b)])}catch(g){return""}return utils.transUnitToPx(utils.fixColor(b,f))},removeClasses:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=utils.trim(e).replace(/[ ]{2,}/g," "),e?a.className=e:domUtils.removeAttributes(a,["class"])},addClass:function(a,b){if(a){b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)new RegExp("\\b"+c+"\\b").test(e)||(e+=" "+c);a.className=utils.trim(e)}},hasClass:function(a,b){if(utils.isRegExp(b))return b.test(a.className);b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},preventDefault:function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},removeStyle:function(a,b){browser.ie?("color"==b&&(b="(^|;)"+b),a.style.cssText=a.style.cssText.replace(new RegExp(b+"[^:]*:[^;]+;?","ig"),"")):a.style.removeProperty?a.style.removeProperty(b):a.style.removeAttribute(utils.cssStyleToDomStyle(b)),a.style.cssText||domUtils.removeAttributes(a,["style"])},getStyle:function(a,b){var c=a.style[utils.cssStyleToDomStyle(b)];return utils.fixColor(b,c)},setStyle:function(a,b,c){a.style[utils.cssStyleToDomStyle(b)]=c,utils.trim(a.style.cssText)||this.removeAttributes(a,"style")},setStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&domUtils.setStyle(a,c,b[c])},removeDirtyAttr:function(a){for(var b,c=0,d=a.getElementsByTagName("*");b=d[c++];)b.removeAttribute("_moz_dirty");a.removeAttribute("_moz_dirty")},getChildCount:function(a,b){var c=0,d=a.firstChild;for(b=b||function(){return 1};d;)b(d)&&c++,d=d.nextSibling;return c},isEmptyNode:function(a){return!a.firstChild||0==domUtils.getChildCount(a,function(a){return!domUtils.isBr(a)&&!domUtils.isBookmarkNode(a)&&!domUtils.isWhitespace(a)})},clearSelectedArr:function(a){for(var b;b=a.pop();)domUtils.removeAttributes(b,["class"])},scrollToView:function(a,b,c){var d=function(){var a=b.document,c="CSS1Compat"==a.compatMode;return{width:(c?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(c?a.documentElement.clientHeight:a.body.clientHeight)||0}},e=function(a){if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};var b=a.document;return{x:b.documentElement.scrollLeft||b.body.scrollLeft||0,y:b.documentElement.scrollTop||b.body.scrollTop||0}},f=d().height,g=f*-1+c;g+=a.offsetHeight||0;var h=domUtils.getXY(a);g+=h.y;var i=e(b).y;(g>i||g<i-f)&&b.scrollTo(0,g+(g<0?-20:20))},isBr:function(a){return 1==a.nodeType&&"BR"==a.tagName},isFillChar:function(a,b){if(3!=a.nodeType)return!1;var c=a.nodeValue;return b?new RegExp("^"+domUtils.fillChar).test(c):!c.replace(new RegExp(domUtils.fillChar,"g"),"").length},isStartInblock:function(a){var b,c=a.cloneRange(),d=0,e=c.startContainer;if(1==e.nodeType&&e.childNodes[c.startOffset]){e=e.childNodes[c.startOffset];for(var f=e.previousSibling;f&&domUtils.isFillChar(f);)e=f,f=f.previousSibling}for(this.isFillChar(e,!0)&&1==c.startOffset&&(c.setStartBefore(e),e=c.startContainer);e&&domUtils.isFillChar(e);)b=e,e=e.previousSibling;for(b&&(c.setStartBefore(b),e=c.startContainer),1==e.nodeType&&domUtils.isEmptyNode(e)&&1==c.startOffset&&c.setStart(e,0).collapse(!0);!c.startOffset;){if(e=c.startContainer,domUtils.isBlockElm(e)||domUtils.isBody(e)){d=1;break}var g,f=c.startContainer.previousSibling;if(f){for(;f&&domUtils.isFillChar(f);)g=f,f=f.previousSibling;g?c.setStartBefore(g):c.setStartBefore(c.startContainer)}else c.setStartBefore(c.startContainer)}return d&&!domUtils.isBody(c.startContainer)?1:0},isEmptyBlock:function(a,b){if(a){if(1!=a.nodeType)return 0;if(b=b||new RegExp("[ 聽\t\r\n"+domUtils.fillChar+"]","g"),a[browser.ie?"innerText":"textContent"].replace(b,"").length>0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}},setViewportOffset:function(a,b){var c=0|parseInt(a.style.left),d=0|parseInt(a.style.top),e=a.getBoundingClientRect(),f=b.left-e.left,g=b.top-e.top;f&&(a.style.left=c+f+"px"),g&&(a.style.top=d+g+"px")},fillNode:function(a,b){var c=browser.ie?a.createTextNode(domUtils.fillChar):a.createElement("br");b.innerHTML="",b.appendChild(c)},moveChild:function(a,b,c){for(;a.firstChild;)c&&b.firstChild?b.insertBefore(a.lastChild,b.firstChild):b.appendChild(a.firstChild)},hasNoAttributes:function(a){return browser.ie?/^<\w+\s*?>/.test(a.outerHTML):0==a.attributes.length},isCustomeNode:function(a){return 1==a.nodeType&&a.getAttribute("_ue_custom_node_")},isTagNode:function(a,b){return 1==a.nodeType&&new RegExp("\\b"+a.tagName+"\\b","i").test(b)},filterNodeList:function(a,b,c){var d=[];if(!utils.isFunction(b)){var e=b;b=function(a){return utils.indexOf(utils.isArray(e)?e:e.split(" "),a.tagName.toLowerCase())!=-1}}return utils.each(a,function(a){b(a)&&d.push(a)}),0==d.length?null:1!=d.length&&c?d:d[0]},isInNodeEndBoundary:function(a,b){var c=a.startContainer;if(3==c.nodeType&&a.startOffset!=c.nodeValue.length)return 0;if(1==c.nodeType&&a.startOffset!=c.childNodes.length)return 0;for(;c!==b;){if(c.nextSibling)return 0;c=c.parentNode}return 1},isBoundaryNode:function(a,b){for(var c;!domUtils.isBody(a);)if(c=a,a=a.parentNode,c!==a[b])return!1;return!0},fillHtml:browser.ie11below?"&nbsp;":"<br/>"},fillCharReg=new RegExp(domUtils.fillChar,"g");!function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer===a.endContainer&&a.startOffset==a.endOffset}function b(a){return!a.collapsed&&1==a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.endOffset-a.startOffset==1}function c(b,c,d,e){return 1==c.nodeType&&(dtd.$empty[c.tagName]||dtd.$nonChild[c.tagName])&&(d=domUtils.getNodeIndex(c)+(b?0:1),c=c.parentNode),b?(e.startContainer=c,e.startOffset=d,e.endContainer||e.collapse(!0)):(e.endContainer=c,e.endOffset=d,e.startContainer||e.collapse(!1)),a(e),e}function d(a,b){var c,d,e=a.startContainer,f=a.endContainer,g=a.startOffset,h=a.endOffset,i=a.document,j=i.createDocumentFragment();if(1==e.nodeType&&(e=e.childNodes[g]||(c=e.appendChild(i.createTextNode("")))),1==f.nodeType&&(f=f.childNodes[h]||(d=f.appendChild(i.createTextNode("")))),e===f&&3==e.nodeType)return j.appendChild(i.createTextNode(e.substringData(g,h-g))),b&&(e.deleteData(g,h-g),a.collapse(!0)),j;for(var k,l,m=j,n=domUtils.findParents(e,!0),o=domUtils.findParents(f,!0),p=0;n[p]==o[p];)p++;for(var q,r=p;q=n[r];r++){for(k=q.nextSibling,q==e?c||(3==a.startContainer.nodeType?(m.appendChild(i.createTextNode(e.nodeValue.slice(g))),b&&e.deleteData(g,e.nodeValue.length-g)):m.appendChild(b?e:e.cloneNode(!0))):(l=q.cloneNode(!1),m.appendChild(l));k&&k!==f&&k!==o[r];)q=k.nextSibling,m.appendChild(b?k:k.cloneNode(!0)),k=q;m=l}m=j,n[p]||(m.appendChild(n[p-1].cloneNode(!1)),m=m.firstChild);for(var s,r=p;s=o[r];r++){if(k=s.previousSibling,s==f?d||3!=a.endContainer.nodeType||(m.appendChild(i.createTextNode(f.substringData(0,h))),b&&f.deleteData(0,h)):(l=s.cloneNode(!1),m.appendChild(l)),r!=p||!n[p])for(;k&&k!==e;)s=k.previousSibling,m.insertBefore(b?k:k.cloneNode(!0),m.firstChild),k=s;m=l}return b&&a.setStartBefore(o[p]?n[p]?o[p]:n[p-1]:o[p-1]).collapse(!0),c&&domUtils.remove(c),d&&domUtils.remove(d),j}function e(a,b){try{if(g&&domUtils.inDoc(g,a))if(g.nodeValue.replace(fillCharReg,"").length)g.nodeValue=g.nodeValue.replace(fillCharReg,"");else{var c=g.parentNode;for(domUtils.remove(g);c&&domUtils.isEmptyInlineElement(c)&&(browser.safari?!(domUtils.getPosition(c,b)&domUtils.POSITION_CONTAINS):!c.contains(b));)g=c.parentNode,domUtils.remove(c),c=g;
-}}catch(d){}}function f(a,b){var c;for(a=a[b];a&&domUtils.isFillChar(a);)c=a[b],domUtils.remove(a),a=c}var g,h=0,i=domUtils.fillChar,j=dom.Range=function(a){var b=this;b.startContainer=b.startOffset=b.endContainer=b.endOffset=null,b.document=a,b.collapsed=!0};j.prototype={cloneContents:function(){return this.collapsed?null:d(this,0)},deleteContents:function(){var a;return this.collapsed||d(this,1),browser.webkit&&(a=this.startContainer,3!=a.nodeType||a.nodeValue.length||(this.setStartBefore(a).collapse(!0),domUtils.remove(a))),this},extractContents:function(){return this.collapsed?null:d(this,2)},setStart:function(a,b){return c(!0,a,b,this)},setEnd:function(a,b){return c(!1,a,b,this)},setStartAfter:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a)+1)},setStartBefore:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a))},setEndAfter:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a)+1)},setEndBefore:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a))},setStartAtFirst:function(a){return this.setStart(a,0)},setStartAtLast:function(a){return this.setStart(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},setEndAtFirst:function(a){return this.setEnd(a,0)},setEndAtLast:function(a){return this.setEnd(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},selectNode:function(a){return this.setStartBefore(a).setEndAfter(a)},selectNodeContents:function(a){return this.setStart(a,0).setEndAtLast(a)},cloneRange:function(){var a=this;return new j(a.document).setStart(a.startContainer,a.startOffset).setEnd(a.endContainer,a.endOffset)},collapse:function(a){var b=this;return a?(b.endContainer=b.startContainer,b.endOffset=b.startOffset):(b.startContainer=b.endContainer,b.startOffset=b.endOffset),b.collapsed=!0,b},shrinkBoundary:function(a){function b(a){return 1==a.nodeType&&!domUtils.isBookmarkNode(a)&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]}for(var c,d=this,e=d.collapsed;1==d.startContainer.nodeType&&(c=d.startContainer.childNodes[d.startOffset])&&b(c);)d.setStart(c,0);if(e)return d.collapse(!0);if(!a)for(;1==d.endContainer.nodeType&&d.endOffset>0&&(c=d.endContainer.childNodes[d.endOffset-1])&&b(c);)d.setEnd(c,c.childNodes.length);return d},getCommonAncestor:function(a,c){var d=this,e=d.startContainer,f=d.endContainer;return e===f?a&&b(this)&&(e=e.childNodes[d.startOffset],1==e.nodeType)?e:c&&3==e.nodeType?e.parentNode:e:domUtils.getCommonAncestor(e,f)},trimBoundary:function(a){this.txtToElmBoundary();var b=this.startContainer,c=this.startOffset,d=this.collapsed,e=this.endContainer;if(3==b.nodeType){if(0==c)this.setStartBefore(b);else if(c>=b.nodeValue.length)this.setStartAfter(b);else{var f=domUtils.split(b,c);b===e?this.setEnd(f,this.endOffset-c):b.parentNode===e&&(this.endOffset+=1),this.setStartBefore(f)}if(d)return this.collapse(!0)}return a||(c=this.endOffset,e=this.endContainer,3==e.nodeType&&(0==c?this.setEndBefore(e):(c<e.nodeValue.length&&domUtils.split(e,c),this.setEndAfter(e)))),this},txtToElmBoundary:function(a){function b(a,b){var c=a[b+"Container"],d=a[b+"Offset"];3==c.nodeType&&(d?d>=c.nodeValue.length&&a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"After"](c):a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"Before"](c))}return!a&&this.collapsed||(b(this,"start"),b(this,"end")),this},insertNode:function(a){var b=a,c=1;11==a.nodeType&&(b=a.firstChild,c=a.childNodes.length),this.trimBoundary(!0);var d=this.startContainer,e=this.startOffset,f=d.childNodes[e];return f?d.insertBefore(a,f):d.appendChild(a),b.parentNode===this.endContainer&&(this.endOffset=this.endOffset+c),this.setStartBefore(b)},setCursor:function(a,b){return this.collapse(!a).select(b)},createBookmark:function(a,b){var c,d=this.document.createElement("span");return d.style.cssText="display:none;line-height:0px;",d.appendChild(this.document.createTextNode("鈥�")),d.id="_baidu_bookmark_start_"+(b?"":h++),this.collapsed||(c=d.cloneNode(!0),c.id="_baidu_bookmark_end_"+(b?"":h++)),this.insertNode(d),c&&this.collapse().insertNode(c).setEndBefore(c),this.setStartAfter(d),{start:a?d.id:d,end:c?a?c.id:c:null,id:a}},moveToBookmark:function(a){var b=a.id?this.document.getElementById(a.start):a.start,c=a.end&&a.id?this.document.getElementById(a.end):a.end;return this.setStartBefore(b),domUtils.remove(b),c?(this.setEndBefore(c),domUtils.remove(c)):this.collapse(!0),this},enlarge:function(a,b){var c,d,e=domUtils.isBody,f=this.document.createTextNode("");if(a){for(d=this.startContainer,1==d.nodeType?d.childNodes[this.startOffset]?c=d=d.childNodes[this.startOffset]:(d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.previousSibling)&&!domUtils.isBlockElm(c);)d=c;this.setStartBefore(d);break}c=d,d=d.parentNode}for(d=this.endContainer,1==d.nodeType?((c=d.childNodes[this.endOffset])?d.insertBefore(f,c):d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.nextSibling)&&!domUtils.isBlockElm(c);)d=c;this.setEndAfter(d);break}c=d,d=d.parentNode}f.parentNode===this.endContainer&&this.endOffset--,domUtils.remove(f)}if(!this.collapsed){for(;!(0!=this.startOffset||b&&b(this.startContainer)||e(this.startContainer));)this.setStartBefore(this.startContainer);for(;!(this.endOffset!=(1==this.endContainer.nodeType?this.endContainer.childNodes.length:this.endContainer.nodeValue.length)||b&&b(this.endContainer)||e(this.endContainer));)this.setEndAfter(this.endContainer)}return this},enlargeToBlockElm:function(a){for(;!domUtils.isBlockElm(this.startContainer);)this.setStartBefore(this.startContainer);if(!a)for(;!domUtils.isBlockElm(this.endContainer);)this.setEndAfter(this.endContainer);return this},adjustmentBoundary:function(){if(!this.collapsed){for(;!domUtils.isBody(this.startContainer)&&this.startOffset==this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length&&this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length;)this.setStartAfter(this.startContainer);for(;!domUtils.isBody(this.endContainer)&&!this.endOffset&&this.endContainer[3==this.endContainer.nodeType?"nodeValue":"childNodes"].length;)this.setEndBefore(this.endContainer)}return this},applyInlineStyle:function(a,b,c){if(this.collapsed)return this;this.trimBoundary().enlarge(!1,function(a){return 1==a.nodeType&&domUtils.isBlockElm(a)}).adjustmentBoundary();for(var d,e,f=this.createBookmark(),g=f.end,h=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},i=domUtils.getNextDomNode(f.start,!1,h),j=this.cloneRange();i&&domUtils.getPosition(i,g)&domUtils.POSITION_PRECEDING;)if(3==i.nodeType||dtd[a][i.tagName]){for(j.setStartBefore(i),d=i;d&&(3==d.nodeType||dtd[a][d.tagName])&&d!==g;)e=d,d=domUtils.getNextDomNode(d,1==d.nodeType,null,function(b){return dtd[a][b.tagName]});var k,l=j.setEndAfter(e).extractContents();if(c&&c.length>0){var m,n;n=m=c[0].cloneNode(!1);for(var o,p=1;o=c[p++];)m.appendChild(o.cloneNode(!1)),m=m.firstChild;k=m}else k=j.document.createElement(a);b&&domUtils.setAttributes(k,b),k.appendChild(l),j.insertNode(c?n:k);var q;if("span"==a&&b.style&&/text\-decoration/.test(b.style)&&(q=domUtils.findParentByTagName(k,"a",!0))?(domUtils.setAttributes(q,b),domUtils.remove(k,!0),k=q):(domUtils.mergeSibling(k),domUtils.clearEmptySibling(k)),domUtils.mergeChild(k,b),i=domUtils.getNextDomNode(k,!1,h),domUtils.mergeToParent(k),d===g)break}else i=domUtils.getNextDomNode(i,!0,h);return this.moveToBookmark(f)},removeInlineStyle:function(a){if(this.collapsed)return this;a=utils.isArray(a)?a:[a],this.shrinkBoundary().adjustmentBoundary();for(var b=this.startContainer,c=this.endContainer;;){if(1==b.nodeType){if(utils.indexOf(a,b.tagName.toLowerCase())>-1)break;if("body"==b.tagName.toLowerCase()){b=null;break}}b=b.parentNode}for(;;){if(1==c.nodeType){if(utils.indexOf(a,c.tagName.toLowerCase())>-1)break;if("body"==c.tagName.toLowerCase()){c=null;break}}c=c.parentNode}var d,e,f=this.createBookmark();b&&(e=this.cloneRange().setEndBefore(f.start).setStartBefore(b),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(b,!0),b.parentNode.insertBefore(f.start,b)),c&&(e=this.cloneRange().setStartAfter(f.end).setEndAfter(c),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(c,!1,!0),c.parentNode.insertBefore(f.end,c.nextSibling));for(var g,h=domUtils.getNextDomNode(f.start,!1,function(a){return 1==a.nodeType});h&&h!==f.end;)g=domUtils.getNextDomNode(h,!0,function(a){return 1==a.nodeType}),utils.indexOf(a,h.tagName.toLowerCase())>-1&&domUtils.remove(h,!0),h=g;return this.moveToBookmark(f)},getClosedNode:function(){var a;if(!this.collapsed){var c=this.cloneRange().adjustmentBoundary().shrinkBoundary();if(b(c)){var d=c.startContainer.childNodes[c.startOffset];d&&1==d.nodeType&&(dtd.$empty[d.tagName]||dtd.$nonChild[d.tagName])&&(a=d)}}return a},select:browser.ie?function(a,b){var c;this.collapsed||this.shrinkBoundary();var d=this.getClosedNode();if(d&&!b){try{c=this.document.body.createControlRange(),c.addElement(d),c.select()}catch(h){}return this}var j,k=this.createBookmark(),l=k.start;if(c=this.document.body.createTextRange(),c.moveToElementText(l),c.moveStart("character",1),this.collapsed){if(!a&&3!=this.startContainer.nodeType){var m=this.document.createTextNode(i),n=this.document.createElement("span");n.appendChild(this.document.createTextNode(i)),l.parentNode.insertBefore(n,l),l.parentNode.insertBefore(m,l),e(this.document,m),g=m,f(n,"previousSibling"),f(l,"nextSibling"),c.moveStart("character",-1),c.collapse(!0)}}else{var o=this.document.body.createTextRange();j=k.end,o.moveToElementText(j),c.setEndPoint("EndToEnd",o)}this.moveToBookmark(k),n&&domUtils.remove(n);try{c.select()}catch(h){}return this}:function(a){function b(a){function b(b,c,d){3==b.nodeType&&b.nodeValue.length<c&&(a[d+"Offset"]=b.nodeValue.length)}b(a.startContainer,a.startOffset,"start"),b(a.endContainer,a.endOffset,"end")}var c,d=domUtils.getWindow(this.document),h=d.getSelection();if(browser.gecko?this.document.body.focus():d.focus(),h){if(h.removeAllRanges(),this.collapsed&&!a){var j=this.startContainer,k=j;1==j.nodeType&&(k=j.childNodes[this.startOffset]),3==j.nodeType&&this.startOffset||(k?k.previousSibling&&3==k.previousSibling.nodeType:j.lastChild&&3==j.lastChild.nodeType)||(c=this.document.createTextNode(i),this.insertNode(c),e(this.document,c),f(c,"previousSibling"),f(c,"nextSibling"),g=c,this.setStart(c,browser.webkit?1:0).collapse(!0))}var l=this.document.createRange();if(this.collapsed&&browser.opera&&1==this.startContainer.nodeType){var k=this.startContainer.childNodes[this.startOffset];if(k){for(;k&&domUtils.isBlockElm(k)&&1==k.nodeType&&k.childNodes[0];)k=k.childNodes[0];k&&this.setStartBefore(k).collapse(!0)}else k=this.startContainer.lastChild,k&&domUtils.isBr(k)&&this.setStartBefore(k).collapse(!0)}b(this),l.setStart(this.startContainer,this.startOffset),l.setEnd(this.endContainer,this.endOffset),h.addRange(l)}return this},scrollToView:function(a,b){a=a?window:domUtils.getWindow(this.document);var c=this,d=c.document.createElement("span");return d.innerHTML="&nbsp;",c.cloneRange().insertNode(d),domUtils.scrollToView(d,a,b),domUtils.remove(d),c},inFillChar:function(){var a=this.startContainer;return!(!this.collapsed||3!=a.nodeType||a.nodeValue.replace(new RegExp("^"+domUtils.fillChar),"").length+1!=a.nodeValue.length)},createAddress:function(a,b){function c(a){for(var c,d=a?e.startContainer:e.endContainer,f=domUtils.findParents(d,!0,function(a){return!domUtils.isBody(a)}),g=[],h=0;c=f[h++];)g.push(domUtils.getNodeIndex(c,b));var i=0;if(b)if(3==d.nodeType){for(var j=d.previousSibling;j&&3==j.nodeType;)i+=j.nodeValue.replace(fillCharReg,"").length,j=j.previousSibling;i+=a?e.startOffset:e.endOffset}else if(d=d.childNodes[a?e.startOffset:e.endOffset])i=domUtils.getNodeIndex(d,b);else{d=a?e.startContainer:e.endContainer;for(var k=d.firstChild;k;)if(domUtils.isFillChar(k))k=k.nextSibling;else if(i++,3==k.nodeType)for(;k&&3==k.nodeType;)k=k.nextSibling;else k=k.nextSibling}else i=a?domUtils.isFillChar(d)?0:e.startOffset:e.endOffset;return i<0&&(i=0),g.push(i),g}var d={},e=this;return d.startAddress=c(!0),a||(d.endAddress=e.collapsed?[].concat(d.startAddress):c()),d},moveToAddress:function(a,b){function c(a,b){for(var c,e,f,g=d.document.body,h=0,i=a.length;h<i;h++)if(f=a[h],c=g,g=g.childNodes[f],!g){e=f;break}b?g?d.setStartBefore(g):d.setStart(c,e):g?d.setEndBefore(g):d.setEnd(c,e)}var d=this;return c(a.startAddress,!0),!b&&a.endAddress&&c(a.endAddress),d},equals:function(a){for(var b in this)if(this.hasOwnProperty(b)&&this[b]!==a[b])return!1;return!0},traversal:function(a,b){if(this.collapsed)return this;for(var c=this.createBookmark(),d=c.end,e=domUtils.getNextDomNode(c.start,!1,b);e&&e!==d&&domUtils.getPosition(e,d)&domUtils.POSITION_PRECEDING;){var f=domUtils.getNextDomNode(e,!1,b);a(e),e=f}return this.moveToBookmark(c)}}}(),function(){function a(a,b){var c=domUtils.getNodeIndex;a=a.duplicate(),a.collapse(b);var d=a.parentElement();if(!d.hasChildNodes())return{container:d,offset:0};for(var e,f,g=d.children,h=a.duplicate(),i=0,j=g.length-1,k=-1;i<=j;){k=Math.floor((i+j)/2),e=g[k],h.moveToElementText(e);var l=h.compareEndPoints("StartToStart",a);if(l>0)j=k-1;else{if(!(l<0))return{container:d,offset:c(e)};i=k+1}}if(k==-1){if(h.moveToElementText(d),h.setEndPoint("StartToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,g=d.childNodes,!f)return e=g[g.length-1],{container:e,offset:e.nodeValue.length};for(var m=g.length;f>0;)f-=g[--m].nodeValue.length;return{container:g[m],offset:-f}}if(h.collapse(l>0),h.setEndPoint(l>0?"StartToStart":"EndToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,!f)return dtd.$empty[e.tagName]||dtd.$nonChild[e.tagName]?{container:d,offset:c(e)+(l>0?0:1)}:{container:e,offset:l>0?0:e.childNodes.length};for(;f>0;)try{var n=e;e=e[l>0?"previousSibling":"nextSibling"],f-=e.nodeValue.length}catch(o){return{container:d,offset:c(n)}}return{container:e,offset:l>0?-f:e.nodeValue.length+f}}function b(b,c){if(b.item)c.selectNode(b.item(0));else{var d=a(b,!0);c.setStart(d.container,d.offset),0!=b.compareEndPoints("StartToEnd",b)&&(d=a(b,!1),c.setEnd(d.container,d.offset))}return c}function c(a){var b;try{b=a.getNative().createRange()}catch(c){return null}var d=b.item?b.item(0):b.parentElement();return(d.ownerDocument||d)===a.document?b:null}var d=dom.Selection=function(a){var b,d=this;d.document=a,browser.ie9below&&(b=domUtils.getWindow(a).frameElement,domUtils.on(b,"beforedeactivate",function(){d._bakIERange=d.getIERange()}),domUtils.on(b,"activate",function(){try{!c(d)&&d._bakIERange&&d._bakIERange.select()}catch(a){}d._bakIERange=null})),b=a=null};d.prototype={rangeInBody:function(a,b){var c=browser.ie9below||b?a.item?a.item():a.parentElement():a.startContainer;return c===this.document.body||domUtils.inDoc(c,this.document)},getNative:function(){var a=this.document;try{return a?browser.ie9below?a.selection:domUtils.getWindow(a).getSelection():null}catch(b){return null}},getIERange:function(){var a=c(this);return!a&&this._bakIERange?this._bakIERange:a},cache:function(){this.clear(),this._cachedRange=this.getRange(),this._cachedStartElement=this.getStart(),this._cachedStartElementPath=this.getStartElementPath()},getStartElementPath:function(){if(this._cachedStartElementPath)return this._cachedStartElementPath;var a=this.getStart();return a?domUtils.findParents(a,!0,null,!0):[]},clear:function(){this._cachedStartElementPath=this._cachedRange=this._cachedStartElement=null},isFocus:function(){try{if(browser.ie9below){var a=c(this);return!(!a||!this.rangeInBody(a))}return!!this.getNative().rangeCount}catch(b){return!1}},getRange:function(){function a(a){for(var b=c.document.body.firstChild,d=a.collapsed;b&&b.firstChild;)a.setStart(b,0),b=b.firstChild;a.startContainer||a.setStart(c.document.body,0),d&&a.collapse(!0)}var c=this;if(null!=c._cachedRange)return this._cachedRange;var d=new baidu.editor.dom.Range(c.document);if(browser.ie9below){var e=c.getIERange();if(e)try{b(e,d)}catch(f){a(d)}else a(d)}else{var g=c.getNative();if(g&&g.rangeCount){var h=g.getRangeAt(0),i=g.getRangeAt(g.rangeCount-1);d.setStart(h.startContainer,h.startOffset).setEnd(i.endContainer,i.endOffset),d.collapsed&&domUtils.isBody(d.startContainer)&&!d.startOffset&&a(d)}else{if(this._bakRange&&domUtils.inDoc(this._bakRange.startContainer,this.document))return this._bakRange;a(d)}}return this._bakRange=d},getStart:function(){if(this._cachedStartElement)return this._cachedStartElement;var a,b,c,d,e=browser.ie9below?this.getIERange():this.getRange();if(browser.ie9below){if(!e)return this.document.body.firstChild;if(e.item)return e.item(0);for(a=e.duplicate(),a.text.length>0&&a.moveStart("character",1),a.collapse(1),b=a.parentElement(),d=c=e.parentElement();c=c.parentNode;)if(c==b){b=d;break}}else if(e.shrinkBoundary(),b=e.startContainer,1==b.nodeType&&b.hasChildNodes()&&(b=b.childNodes[Math.min(b.childNodes.length-1,e.startOffset)]),3==b.nodeType)return b.parentNode;return b},getText:function(){var a,b;return this.isFocus()&&(a=this.getNative())?(b=browser.ie9below?a.createRange():a.getRangeAt(0),browser.ie9below?b.text:b.toString()):""},clearRange:function(){this.getNative()[browser.ie9below?"empty":"removeAllRanges"]()}}}(),function(){function a(a,b){var c;if(b.textarea)if(utils.isString(b.textarea)){for(var d,e=0,f=domUtils.getElementsByTagName(a,"textarea");d=f[e++];)if(d.id=="ueditor_textarea_"+b.options.textarea){c=d;break}}else c=b.textarea;c||(a.appendChild(c=domUtils.createElement(document,"textarea",{name:b.options.textarea,id:"ueditor_textarea_"+b.options.textarea,style:"display:none"})),b.textarea=c),!c.getAttribute("name")&&c.setAttribute("name",b.options.textarea),c.value=b.hasContents()?b.options.allHtmlEnabled?b.getAllHtml():b.getContent(null,null,!0):""}function b(a){for(var b in a)return b}function c(a){a.langIsReady=!0,a.fireEvent("langReady")}var d,e=0,f=UE.Editor=function(a){var d=this;d.uid=e++,EventBase.call(d),d.commands={},d.options=utils.extend(utils.clone(a||{}),UEDITOR_CONFIG,!0),d.shortcutkeys={},d.inputRules=[],d.outputRules=[],d.setOpt(f.defaultOptions(d)),d.loadServerConfig(),utils.isEmptyObject(UE.I18N)?utils.loadFile(document,{src:d.options.langPath+d.options.lang+"/"+d.options.lang+".js",tag:"script",type:"text/javascript",defer:"defer"},function(){UE.plugin.load(d),c(d)}):(d.options.lang=b(UE.I18N),UE.plugin.load(d),c(d)),UE.instants["ueditorInstant"+d.uid]=d};f.prototype={registerCommand:function(a,b){this.commands[a]=b},ready:function(a){var b=this;a&&(b.isReady?a.apply(b):b.addListener("ready",a))},setOpt:function(a,b){var c={};utils.isString(a)?c[a]=b:c=a,utils.extend(this.options,c,!0)},getOpt:function(a){return this.options[a]},destroy:function(){var a=this;a.fireEvent("destroy");var b=a.container.parentNode,c=a.textarea;c?c.style.display="":(c=document.createElement("textarea"),b.parentNode.insertBefore(c,b)),c.style.width=a.iframe.offsetWidth+"px",c.style.height=a.iframe.offsetHeight+"px",c.value=a.getContent(),c.id=a.key,b.innerHTML="",domUtils.remove(b);var d=a.key;for(var e in a)a.hasOwnProperty(e)&&delete this[e];UE.delEditor(d)},render:function(a){var b=this,c=b.options,d=function(b){return parseInt(domUtils.getComputedStyle(a,b))};if(utils.isString(a)&&(a=document.getElementById(a)),a){c.initialFrameWidth?c.minFrameWidth=c.initialFrameWidth:c.minFrameWidth=c.initialFrameWidth=a.offsetWidth,c.initialFrameHeight?c.minFrameHeight=c.initialFrameHeight:c.initialFrameHeight=c.minFrameHeight=a.offsetHeight,a.style.width=/%$/.test(c.initialFrameWidth)?"100%":c.initialFrameWidth-d("padding-left")-d("padding-right")+"px",a.style.height=/%$/.test(c.initialFrameHeight)?"100%":c.initialFrameHeight-d("padding-top")-d("padding-bottom")+"px",a.style.zIndex=c.zIndex;var e=(ie&&browser.version<9?"":"<!DOCTYPE html>")+"<html xmlns='http://www.w3.org/1999/xhtml' class='view' ><head><style type='text/css'>.view{padding:0;word-wrap:break-word;cursor:text;height:90%;}\nbody{margin:8px;font-family:sans-serif;font-size:16px;}p{margin:5px 0;}</style>"+(c.iframeCssUrl?"<link rel='stylesheet' type='text/css' href='"+utils.unhtml(c.iframeCssUrl)+"'/>":"")+(c.initialStyle?"<style>"+c.initialStyle+"</style>":"")+"</head><body class='view' ></body><script type='text/javascript' "+(ie?"defer='defer'":"")+" id='_initialScript'>setTimeout(function(){editor = window.parent.UE.instants['ueditorInstant"+b.uid+"'];editor._setup(document);},0);var _tmpScript = document.getElementById('_initialScript');_tmpScript.parentNode.removeChild(_tmpScript);</script></html>";a.appendChild(domUtils.createElement(document,"iframe",{id:"ueditor_"+b.uid,width:"100%",height:"100%",frameborder:"0",src:"javascript:void(function(){document.open();"+(c.customDomain&&document.domain!=location.hostname?'document.domain="'+document.domain+'";':"")+'document.write("'+e+'");document.close();}())'})),a.style.overflow="hidden",setTimeout(function(){/%$/.test(c.initialFrameWidth)&&(c.minFrameWidth=c.initialFrameWidth=a.offsetWidth),/%$/.test(c.initialFrameHeight)&&(c.minFrameHeight=c.initialFrameHeight=a.offsetHeight,a.style.height=c.initialFrameHeight+"px")})}},_setup:function(b){var c=this,d=c.options;ie?(b.body.disabled=!0,b.body.contentEditable=!0,b.body.disabled=!1):b.body.contentEditable=!0,b.body.spellcheck=!1,c.document=b,c.window=b.defaultView||b.parentWindow,c.iframe=c.window.frameElement,c.body=b.body,c.selection=new dom.Selection(b);var e;browser.gecko&&(e=this.selection.getNative())&&e.removeAllRanges(),this._initEvents();for(var f=this.iframe.parentNode;!domUtils.isBody(f);f=f.parentNode)if("FORM"==f.tagName){c.form=f,c.options.autoSyncData?domUtils.on(c.window,"blur",function(){a(f,c)}):domUtils.on(f,"submit",function(){a(this,c)});break}if(d.initialContent)if(d.autoClearinitialContent){var g=c.execCommand;c.execCommand=function(){return c.fireEvent("firstBeforeExecCommand"),g.apply(c,arguments)},this._setDefaultContent(d.initialContent)}else this.setContent(d.initialContent,!1,!0);domUtils.isEmptyNode(c.body)&&(c.body.innerHTML="<p>"+(browser.ie?"":"<br/>")+"</p>"),d.focus&&setTimeout(function(){c.focus(c.options.focusInEnd),!c.options.autoClearinitialContent&&c._selectionChange()},0),c.container||(c.container=this.iframe.parentNode),d.fullscreen&&c.ui&&c.ui.setFullScreen(!0);try{c.document.execCommand("2D-position",!1,!1)}catch(h){}try{c.document.execCommand("enableInlineTableEditing",!1,!1)}catch(h){}try{c.document.execCommand("enableObjectResizing",!1,!1)}catch(h){}c._bindshortcutKeys(),c.isReady=1,c.fireEvent("ready"),d.onready&&d.onready.call(c),browser.ie9below||domUtils.on(c.window,["blur","focus"],function(a){if("blur"==a.type){c._bakRange=c.selection.getRange();try{c._bakNativeRange=c.selection.getNative().getRangeAt(0),c.selection.getNative().removeAllRanges()}catch(a){c._bakNativeRange=null}}else try{c._bakRange&&c._bakRange.select()}catch(a){}}),browser.gecko&&browser.version<=10902&&(c.body.contentEditable=!1,setTimeout(function(){c.body.contentEditable=!0},100),setInterval(function(){c.body.style.height=c.iframe.offsetHeight-20+"px"},100)),!d.isShow&&c.setHide(),d.readonly&&c.setDisabled()},sync:function(b){var c=this,d=b?document.getElementById(b):domUtils.findParent(c.iframe.parentNode,function(a){return"FORM"==a.tagName},!0);d&&a(d,c)},setHeight:function(a,b){a!==parseInt(this.iframe.parentNode.style.height)&&(this.iframe.parentNode.style.height=a+"px"),!b&&(this.options.minFrameHeight=this.options.initialFrameHeight=a),this.body.style.height=a+"px",!b&&this.trigger("setHeight")},addshortcutkey:function(a,b){var c={};b?c[a]=b:c=a,utils.extend(this.shortcutkeys,c)},_bindshortcutKeys:function(){var a=this,b=this.shortcutkeys;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which;for(var f in b)for(var g,h=b[f].split(","),i=0;g=h[i++];){g=g.split(":");var j=g[0],k=g[1];(/^(ctrl)(\+shift)?\+(\d+)$/.test(j.toLowerCase())||/^(\d+)$/.test(j))&&(("ctrl"==RegExp.$1?d.ctrlKey||d.metaKey:0)&&(""!=RegExp.$2?d[RegExp.$2.slice(1)+"Key"]:1)&&e==RegExp.$3||e==RegExp.$1)&&(a.queryCommandState(f,k)!=-1&&a.execCommand(f,k),domUtils.preventDefault(d))}})},getContent:function(a,b,c,d,e){var f=this;if(a&&utils.isFunction(a)&&(b=a,a=""),b?!b():!this.hasContents())return"";f.fireEvent("beforegetcontent");var g=UE.htmlparser(f.body.innerHTML,d);return f.filterOutputRule(g),f.fireEvent("aftergetcontent",a,g),g.toHtml(e)},getAllHtml:function(){var a=this,b=[];if(a.fireEvent("getAllHtml",b),browser.ie&&browser.version>8){var c="";utils.each(a.document.styleSheets,function(a){c+=a.href?'<link rel="stylesheet" type="text/css" href="'+a.href+'" />':"<style>"+a.cssText+"</style>"}),utils.each(a.document.getElementsByTagName("script"),function(a){c+=a.outerHTML})}return"<html><head>"+(a.options.charset?'<meta http-equiv="Content-Type" content="text/html; charset='+a.options.charset+'"/>':"")+(c||a.document.getElementsByTagName("head")[0].innerHTML)+b.join("\n")+"</head><body "+(ie&&browser.version<9?'class="view"':"")+">"+a.getContent(null,null,!0)+"</body></html>"},getPlainTxt:function(){var a=new RegExp(domUtils.fillChar,"g"),b=this.body.innerHTML.replace(/[\n\r]/g,"");return b=b.replace(/<(p|div)[^>]*>(<br\/?>|&nbsp;)<\/\1>/gi,"\n").replace(/<br\/?>/gi,"\n").replace(/<[^>\/]+>/g,"").replace(/(\n)?<\/([^>]+)>/g,function(a,b,c){return dtd.$block[c]?"\n":b?b:""}),b.replace(a,"").replace(/\u00a0/g," ").replace(/&nbsp;/g," ")},getContentTxt:function(){var a=new RegExp(domUtils.fillChar,"g");return this.body[browser.ie?"innerText":"textContent"].replace(a,"").replace(/\u00a0/g," ")},setContent:function(b,c,d){function e(a){return"DIV"==a.tagName&&a.getAttribute("cdata_tag")}var f=this;f.fireEvent("beforesetcontent",b);var g=UE.htmlparser(b);if(f.filterInputRule(g),b=g.toHtml(),f.body.innerHTML=(c?f.body.innerHTML:"")+b,"p"==f.options.enterTag){var h,i=this.body.firstChild;if(!i||1==i.nodeType&&(dtd.$cdata[i.tagName]||e(i)||domUtils.isCustomeNode(i))&&i===this.body.lastChild)this.body.innerHTML="<p>"+(browser.ie?"&nbsp;":"<br/>")+"</p>"+this.body.innerHTML;else for(var j=f.document.createElement("p");i;){for(;i&&(3==i.nodeType||1==i.nodeType&&dtd.p[i.tagName]&&!dtd.$cdata[i.tagName]);)h=i.nextSibling,j.appendChild(i),i=h;if(j.firstChild){if(!i){f.body.appendChild(j);break}i.parentNode.insertBefore(j,i),j=f.document.createElement("p")}i=i.nextSibling}}f.fireEvent("aftersetcontent"),f.fireEvent("contentchange"),!d&&f._selectionChange(),f._bakRange=f._bakIERange=f._bakNativeRange=null;var k;browser.gecko&&(k=this.selection.getNative())&&k.removeAllRanges(),f.options.autoSyncData&&f.form&&a(f.form,f)},focus:function(a){try{var b=this,c=b.selection.getRange();if(a){var d=b.body.lastChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&(domUtils.isEmptyBlock(d)?c.setStartAtFirst(d):c.setStartAtLast(d),c.collapse(!0)),c.setCursor(!0)}else{if(!c.collapsed&&domUtils.isBody(c.startContainer)&&0==c.startOffset){var d=b.body.firstChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&c.setStartAtFirst(d).collapse(!0)}c.select(!0)}this.fireEvent("focus selectionchange")}catch(e){}},isFocus:function(){return this.selection.isFocus()},blur:function(){var a=this.selection.getNative();if(a.empty&&browser.ie){var b=document.body.createTextRange();b.moveToElementText(document.body),b.collapse(!0),b.select(),a.empty()}else a.removeAllRanges()},_initEvents:function(){var a=this,b=a.document,c=a.window;a._proxyDomEvent=utils.bind(a._proxyDomEvent,a),domUtils.on(b,["click","contextmenu","mousedown","keydown","keyup","keypress","mouseup","mouseover","mouseout","selectstart"],a._proxyDomEvent),domUtils.on(c,["focus","blur"],a._proxyDomEvent),domUtils.on(a.body,"drop",function(b){browser.gecko&&b.stopPropagation&&b.stopPropagation(),a.fireEvent("contentchange")}),domUtils.on(b,["mouseup","keydown"],function(b){"keydown"==b.type&&(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)||2!=b.button&&a._selectionChange(250,b)})},_proxyDomEvent:function(a){return this.fireEvent("before"+a.type.replace(/^on/,"").toLowerCase())!==!1&&(this.fireEvent(a.type.replace(/^on/,""),a)!==!1&&this.fireEvent("after"+a.type.replace(/^on/,"").toLowerCase()))},_selectionChange:function(a,b){var c,e,f=this,g=!1;if(browser.ie&&browser.version<9&&b&&"mouseup"==b.type){var h=this.selection.getRange();h.collapsed||(g=!0,c=b.clientX,e=b.clientY)}clearTimeout(d),d=setTimeout(function(){if(f.selection&&f.selection.getNative()){var a;if(g&&"None"==f.selection.getNative().type){a=f.document.body.createTextRange();try{a.moveToPoint(c,e)}catch(d){a=null}}var h;a&&(h=f.selection.getIERange,f.selection.getIERange=function(){return a}),f.selection.cache(),h&&(f.selection.getIERange=h),f.selection._cachedRange&&f.selection._cachedStartElement&&(f.fireEvent("beforeselectionchange"),f.fireEvent("selectionchange",!!b),f.fireEvent("afterselectionchange"),f.selection.clear())}},a||50)},_callCmdFn:function(a,b){var c,d,e=b[0].toLowerCase();return c=this.commands[e]||UE.commands[e],d=c&&c[a],c&&d||"queryCommandState"!=a?d?d.apply(this,b):void 0:0},execCommand:function(a){a=a.toLowerCase();var b,c=this,d=c.commands[a]||UE.commands[a];return d&&d.execCommand?(d.notNeedUndo||c.__hasEnterExecCommand?(b=this._callCmdFn("execCommand",arguments),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c.fireEvent("contentchange")):(c.__hasEnterExecCommand=!0,c.queryCommandState.apply(c,arguments)!=-1&&(c.fireEvent("saveScene"),c.fireEvent.apply(c,["beforeexeccommand",a].concat(arguments)),b=this._callCmdFn("execCommand",arguments),c.fireEvent.apply(c,["afterexeccommand",a].concat(arguments)),c.fireEvent("saveScene")),c.__hasEnterExecCommand=!1),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c._selectionChange(),b):null},queryCommandState:function(a){return this._callCmdFn("queryCommandState",arguments)},queryCommandValue:function(a){return this._callCmdFn("queryCommandValue",arguments)},hasContents:function(a){if(a)for(var b,c=0;b=a[c++];)if(this.document.getElementsByTagName(b).length>0)return!0;if(!domUtils.isEmptyBlock(this.body))return!0;for(a=["div"],c=0;b=a[c++];)for(var d,e=domUtils.getElementsByTagName(this.document,b),f=0;d=e[f++];)if(domUtils.isCustomeNode(d))return!0;return!1},reset:function(){this.fireEvent("reset")},setEnabled:function(){var a,b=this;if("false"==b.body.contentEditable){b.body.contentEditable=!0,a=b.selection.getRange();try{a.moveToBookmark(b.lastBk),delete b.lastBk}catch(c){a.setStartAtFirst(b.body).collapse(!0)}a.select(!0),b.bkqueryCommandState&&(b.queryCommandState=b.bkqueryCommandState,delete b.bkqueryCommandState),b.bkqueryCommandValue&&(b.queryCommandValue=b.bkqueryCommandValue,delete b.bkqueryCommandValue),b.fireEvent("selectionchange")}},enable:function(){return this.setEnabled()},setDisabled:function(a){var b=this;a=a?utils.isArray(a)?a:[a]:[],"true"==b.body.contentEditable&&(b.lastBk||(b.lastBk=b.selection.getRange().createBookmark(!0)),b.body.contentEditable=!1,b.bkqueryCommandState=b.queryCommandState,b.bkqueryCommandValue=b.queryCommandValue,b.queryCommandState=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandState.apply(b,arguments):-1},b.queryCommandValue=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandValue.apply(b,arguments):null},b.fireEvent("selectionchange"))},disable:function(a){return this.setDisabled(a)},_setDefaultContent:function(){function a(){var b=this;b.document.getElementById("initContent")&&(b.body.innerHTML="<p>"+(ie?"":"<br/>")+"</p>",b.removeListener("firstBeforeExecCommand focus",a),setTimeout(function(){b.focus(),b._selectionChange()},0))}return function(b){var c=this;c.body.innerHTML='<p id="initContent">'+b+"</p>",c.addListener("firstBeforeExecCommand focus",a)}}(),setShow:function(){var a=this,b=a.selection.getRange();if("none"==a.container.style.display){try{b.moveToBookmark(a.lastBk),delete a.lastBk}catch(c){b.setStartAtFirst(a.body).collapse(!0)}setTimeout(function(){b.select(!0)},100),a.container.style.display=""}},show:function(){return this.setShow();
-},setHide:function(){var a=this;a.lastBk||(a.lastBk=a.selection.getRange().createBookmark(!0)),a.container.style.display="none"},hide:function(){return this.setHide()},getLang:function(a){if(!this.options)return"";var b=UE.I18N[this.options.lang];if(!b)throw Error("not import language file");a=(a||"").split(".");for(var c,d=0;(c=a[d++])&&(b=b[c],b););return b},getContentLength:function(a,b){var c=this.getContent(!1,!1,!0).length;if(a){b=(b||[]).concat(["hr","img","iframe"]),c=this.getContentTxt().replace(/[\t\r\n]+/g,"").length;for(var d,e=0;d=b[e++];)c+=this.document.getElementsByTagName(d).length}return c},addInputRule:function(a){this.inputRules.push(a)},filterInputRule:function(a){for(var b,c=0;b=this.inputRules[c++];)b.call(this,a)},addOutputRule:function(a){this.outputRules.push(a)},filterOutputRule:function(a){for(var b,c=0;b=this.outputRules[c++];)b.call(this,a)},getActionUrl:function(a){var b=this.getOpt(a)||a,c=this.getOpt("imageUrl"),d=this.getOpt("serverUrl");return!d&&c&&(d=c.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2")),d?(d=d+(d.indexOf("?")==-1?"?":"&")+"action="+(b||""),utils.formatUrl(d)):""}},utils.inherits(f,EventBase)}(),UE.Editor.defaultOptions=function(a){var b=a.options.UEDITOR_HOME_URL;return{isShow:!0,initialContent:"",initialStyle:"",autoClearinitialContent:!1,iframeCssUrl:b+"themes/iframe.css",textarea:"editorValue",focus:!1,focusInEnd:!0,autoClearEmptyNode:!0,fullscreen:!1,readonly:!1,zIndex:999,imagePopup:!0,enterTag:"p",customDomain:!1,lang:"zh-cn",langPath:b+"lang/",theme:"default",themePath:b+"themes/",allHtmlEnabled:!1,scaleEnabled:!1,tableNativeEditInFF:!1,autoSyncData:!0,fileNameFormat:"{time}{rand:6}"}},function(){UE.Editor.prototype.loadServerConfig=function(){function showErrorMsg(a){console&&console.error(a)}var me=this;setTimeout(function(){try{me.options.imageUrl&&me.setOpt("serverUrl",me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2"));var configUrl=me.getActionUrl("config"),isJsonp=utils.isCrossDomainUrl(configUrl);me._serverConfigLoaded=!1,configUrl&&UE.ajax.request(configUrl,{method:"GET",dataType:isJsonp?"jsonp":"",onsuccess:function(r){try{var config=isJsonp?r:eval("("+r.responseText+")");utils.extend(me.options,config),me.fireEvent("serverConfigLoaded"),me._serverConfigLoaded=!0}catch(e){showErrorMsg(me.getLang("loadconfigFormatError"))}},onerror:function(){showErrorMsg(me.getLang("loadconfigHttpError"))}})}catch(e){showErrorMsg(me.getLang("loadconfigError"))}})},UE.Editor.prototype.isServerConfigLoaded=function(){var a=this;return a._serverConfigLoaded||!1},UE.Editor.prototype.afterConfigReady=function(a){if(a&&utils.isFunction(a)){var b=this,c=function(){a.apply(b,arguments),b.removeListener("serverConfigLoaded",c)};b.isServerConfigLoaded()?a.call(b,"serverConfigLoaded"):b.addListener("serverConfigLoaded",c)}}}(),UE.ajax=function(){function a(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c&&"dataType"!=c&&"callback"!=c&&void 0!=a[c]&&null!=a[c])if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d<a[c].length;d++)b.push(encodeURIComponent(c)+"[]="+encodeURIComponent(a[c][d]));return b.join("&")}function b(b,c){var d=f(),e=!1,g={method:"POST",timeout:5e3,async:!0,data:{},onsuccess:function(){},onerror:function(){}};if("object"==typeof b&&(c=b,b=c.url),d&&b){var h=c?utils.extend(g,c):g,i=a(h);utils.isEmptyObject(h.data)||(i+=(i?"&":"")+a(h.data));var j=setTimeout(function(){4!=d.readyState&&(e=!0,d.abort(),clearTimeout(j))},h.timeout),k=h.method.toUpperCase(),l=b+(b.indexOf("?")==-1?"?":"&")+("POST"==k?"":i+"&noCache="+ +new Date);d.open(k,l,h.async),d.onreadystatechange=function(){4==d.readyState&&(e||200!=d.status?h.onerror(d):h.onsuccess(d))},"POST"==k?(d.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),d.send(i)):d.send(null)}}function c(b,c){function d(a,b,c){a.setAttribute("type","text/javascript"),a.setAttribute("defer","defer"),c&&a.setAttribute("charset",c),a.setAttribute("src",b),document.getElementsByTagName("head")[0].appendChild(a)}function e(a){return function(){try{if(a)k.onerror&&k.onerror();else try{clearTimeout(g),i.apply(window,arguments)}catch(b){}}catch(c){k.onerror&&k.onerror.call(window,c)}finally{k.oncomplete&&k.oncomplete.apply(window,arguments),j.parentNode&&j.parentNode.removeChild(j),window[f]=null;try{delete window[f]}catch(b){}}}}var f,g,h,i=c.onsuccess||function(){},j=document.createElement("SCRIPT"),k=c||{},l=k.charset,m=k.jsonp||"callback",n=k.timeOut||0,o=new RegExp("(\\?|&)"+m+"=([^&]*)");utils.isFunction(i)?(f="bd__editor__"+Math.floor(2147483648*Math.random()).toString(36),window[f]=e(0)):utils.isString(i)?f=i:(h=o.exec(b))&&(f=h[2]),b=b.replace(o,"$1"+m+"="+f),b.search(o)<0&&(b+=(b.indexOf("?")<0?"?":"&")+m+"="+f);var p=a(c);utils.isEmptyObject(c.data)||(p+=(p?"&":"")+a(c.data)),p&&(b=b.replace(/\?/,"?"+p+"&")),j.onerror=e(1),n&&(g=setTimeout(e(1),n)),d(j,b,l)}var d="XMLHttpRequest()";try{new ActiveXObject("Msxml2.XMLHTTP"),d="ActiveXObject('Msxml2.XMLHTTP')"}catch(e){try{new ActiveXObject("Microsoft.XMLHTTP"),d="ActiveXObject('Microsoft.XMLHTTP')"}catch(e){}}var f=new Function("return new "+d);return{request:function(a,d){d&&"jsonp"==d.dataType?c(a,d):b(a,d)},getJSONP:function(a,b,d){var e={data:b,oncomplete:d};c(a,e)}}}();var filterWord=UE.filterWord=function(){function a(a){return/(class="?Mso|style="[^"]*\bmso\-|w:WordDocument|<(v|o):|lang=)/gi.test(a)}function b(a){return a=a.replace(/[\d.]+\w+/g,function(a){return utils.transUnitToPx(a)})}function c(a){return a.replace(/[\t\r\n]+/g," ").replace(/<!--[\s\S]*?-->/gi,"").replace(/<v:shape [^>]*>[\s\S]*?.<\/v:shape>/gi,function(a){if(browser.opera)return"";try{if(/Bitmap/i.test(a))return"";var c=a.match(/width:([ \d.]*p[tx])/i)[1],d=a.match(/height:([ \d.]*p[tx])/i)[1],e=a.match(/src=\s*"([^"]*)"/i)[1];return'<img width="'+b(c)+'" height="'+b(d)+'" src="'+e+'" />'}catch(f){return""}}).replace(/<\/?div[^>]*>/g,"").replace(/v:\w+=(["']?)[^'"]+\1/g,"").replace(/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi,"").replace(/<p [^>]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"<p><strong>$1</strong></p>").replace(/\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/gi,function(a,b,c,d){return"class"==b&&"MsoListParagraph"==d?a:""}).replace(/<(font|span)[^>]*>(\s*)<\/\1>/gi,function(a,b,c){return c.replace(/[\t\r\n ]+/g," ")}).replace(/(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi,function(a,c,d,e){for(var f,g=[],h=e.replace(/^\s+|\s+$/,"").replace(/&#39;/g,"'").replace(/&quot;/gi,"'").replace(/[\d.]+(cm|pt)/g,function(a){return utils.transUnitToPx(a)}).split(/;\s*/g),i=0;f=h[i];i++){var j,k,l=f.split(":");if(2==l.length){if(j=l[0].toLowerCase(),k=l[1].toLowerCase(),/^(background)\w*/.test(j)&&0==k.replace(/(initial|\s)/g,"").length||/^(margin)\w*/.test(j)&&/^0\w+$/.test(k))continue;switch(j){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":/<table/.test(c)||(g[i]=j.replace(/^mso-|-alt$/g,"")+":"+b(k));continue;case"horiz-align":g[i]="text-align:"+k;continue;case"vert-align":g[i]="vertical-align:"+k;continue;case"font-color":case"mso-foreground":g[i]="color:"+k;continue;case"mso-background":case"mso-highlight":g[i]="background:"+k;continue;case"mso-default-height":g[i]="min-height:"+b(k);continue;case"mso-default-width":g[i]="min-width:"+b(k);continue;case"mso-padding-between-alt":g[i]="border-collapse:separate;border-spacing:"+b(k);continue;case"text-line-through":"single"!=k&&"double"!=k||(g[i]="text-decoration:line-through");continue;case"mso-zero-height":"yes"==k&&(g[i]="display:none");continue;case"margin":if(!/[1-9]/.test(k))continue}if(/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?:decor|trans)|top-bar|version|vnd|word-break)/.test(j)||/text\-indent|padding|margin/.test(j)&&/\-[\d.]+/.test(k))continue;g[i]=j+":"+l[1]}}return c+(g.length?' style="'+g.join(";").replace(/;{2,}/g,";")+'"':"")})}return function(b){return a(b)?c(b):b}}();!function(){function a(a,b,c){return a.push(n),b+(c?1:-1)}function b(a,b){for(var c=0;c<b;c++)a.push(m)}function c(g,h,i,j){switch(g.type){case"root":for(var k,l=0;k=g.children[l++];)i&&"element"==k.type&&!dtd.$inlineWithA[k.tagName]&&l>1&&(a(h,j,!0),b(h,j)),c(k,h,i,j);break;case"text":d(g,h);break;case"element":e(g,h,i,j);break;case"comment":f(g,h,i)}return h}function d(a,b){"pre"==a.parentNode.tagName?b.push(a.data):b.push(l[a.parentNode.tagName]?utils.html(a.data):a.data.replace(/[ ]{2}/g," &nbsp;"))}function e(d,e,f,g){var h="";if(d.attrs){h=[];var i=d.attrs;for(var j in i)h.push(j+(void 0!==i[j]?'="'+(k[j]?utils.html(i[j]).replace(/["]/g,function(a){return"&quot;"}):utils.unhtml(i[j]))+'"':""));h=h.join(" ")}if(e.push("<"+d.tagName+(h?" "+h:"")+(dtd.$empty[d.tagName]?"/":"")+">"),f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g,!0),b(e,g)),d.children&&d.children.length)for(var l,m=0;l=d.children[m++];)f&&"element"==l.type&&!dtd.$inlineWithA[l.tagName]&&m>1&&(a(e,g),b(e,g)),c(l,e,f,g);dtd.$empty[d.tagName]||(f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g),b(e,g)),e.push("</"+d.tagName+">"))}function f(a,b){b.push("<!--"+a.data+"-->")}function g(a,b){var c;if("element"==a.type&&a.getAttr("id")==b)return a;if(a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)if(c=g(d,b))return c}function h(a,b,c){if("element"==a.type&&a.tagName==b&&c.push(a),a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)h(d,b,c)}function i(a,b){if(a.children&&a.children.length)for(var c,d=0;c=a.children[d];)i(c,b),c.parentNode&&(c.children&&c.children.length&&b(c),c.parentNode&&d++);else b(a)}var j=UE.uNode=function(a){this.type=a.type,this.data=a.data,this.tagName=a.tagName,this.parentNode=a.parentNode,this.attrs=a.attrs||{},this.children=a.children},k={href:1,src:1,_src:1,_href:1,cdata_data:1},l={style:1,script:1},m="    ",n="\n";j.createElement=function(a){return/[<>]/.test(a)?UE.htmlparser(a).children[0]:new j({type:"element",children:[],tagName:a})},j.createText=function(a,b){return new UE.uNode({type:"text",data:b?a:utils.unhtml(a||"")})},j.prototype={toHtml:function(a){var b=[];return c(this,b,a,0),b.join("")},innerHTML:function(a){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(utils.isString(a)){if(this.children)for(var b,c=0;b=this.children[c++];)b.parentNode=null;this.children=[];for(var b,d=UE.htmlparser(a),c=0;b=d.children[c++];)this.children.push(b),b.parentNode=this;return this}var d=new UE.uNode({type:"root",children:this.children});return d.toHtml()},innerText:function(a,b){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(a){if(this.children)for(var c,d=0;c=this.children[d++];)c.parentNode=null;return this.children=[],this.appendChild(j.createText(a,b)),this}return this.toHtml().replace(/<[^>]+>/g,"")},getData:function(){return"element"==this.type?"":this.data},firstChild:function(){return this.children?this.children[0]:null},lastChild:function(){return this.children?this.children[this.children.length-1]:null},previousSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return 0==c?null:b.children[c-1]},nextSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c++];)if(a===this)return b.children[c]},replaceChild:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,1,a),b.parentNode=null,a.parentNode=this,a}},appendChild:function(a){if("root"==this.type||"element"==this.type&&!dtd.$empty[this.tagName]){this.children||(this.children=[]),a.parentNode&&a.parentNode.removeChild(a);for(var b,c=0;b=this.children[c];c++)if(b===a){this.children.splice(c,1);break}return this.children.push(a),a.parentNode=this,a}},insertBefore:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,0,a),a.parentNode=this,a}},insertAfter:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d+1,0,a),a.parentNode=this,a}},removeChild:function(a,b){if(this.children)for(var c,d=0;c=this.children[d];d++)if(c===a){if(this.children.splice(d,1),c.parentNode=null,b&&c.children&&c.children.length)for(var e,f=0;e=c.children[f];f++)this.children.splice(d+f,0,e),e.parentNode=this;return c}},getAttr:function(a){return this.attrs&&this.attrs[a.toLowerCase()]},setAttr:function(a,b){if(!a)return void delete this.attrs;if(this.attrs||(this.attrs={}),utils.isObject(a))for(var c in a)a[c]?this.attrs[c.toLowerCase()]=a[c]:delete this.attrs[c];else b?this.attrs[a.toLowerCase()]=b:delete this.attrs[a]},getIndex:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return c;return-1},getNodeById:function(a){var b;if(this.children&&this.children.length)for(var c,d=0;c=this.children[d++];)if(b=g(c,a))return b},getNodesByTagName:function(a){a=utils.trim(a).replace(/[ ]{2,}/g," ").split(" ");var b=[],c=this;return utils.each(a,function(a){if(c.children&&c.children.length)for(var d,e=0;d=c.children[e++];)h(d,a,b)}),b},getStyle:function(a){var b=this.getAttr("style");if(!b)return"";var c=new RegExp("(^|;)\\s*"+a+":([^;]+)","i"),d=b.match(c);return d&&d[0]?d[2]:""},setStyle:function(a,b){function c(a,b){var c=new RegExp("(^|;)\\s*"+a+":([^;]+;?)","gi");d=d.replace(c,"$1"),b&&(d=a+":"+utils.unhtml(b)+";"+d)}var d=this.getAttr("style");if(d||(d=""),utils.isObject(a))for(var e in a)c(e,a[e]);else c(a,b);this.setAttr("style",utils.trim(d))},traversal:function(a){return this.children&&this.children.length&&i(this,a),this}}}();var htmlparser=UE.htmlparser=function(a,b){function c(a,b){if(m[a.tagName]){var c=k.createElement(m[a.tagName]);a.appendChild(c),c.appendChild(k.createText(b)),a=c}else a.appendChild(k.createText(b))}function d(a,b,c){var e;if(e=l[b]){for(var f,h=a;"root"!=h.type;){if(utils.isArray(e)?utils.indexOf(e,h.tagName)!=-1:e==h.tagName){a=h,f=!0;break}h=h.parentNode}f||(a=d(a,utils.isArray(e)?e[0]:e))}var i=new k({parentNode:a,type:"element",tagName:b.toLowerCase(),children:dtd.$empty[b]?null:[]});if(c){for(var m,n={};m=g.exec(c);)n[m[1].toLowerCase()]=j[m[1].toLowerCase()]?m[2]||m[3]||m[4]:utils.unhtml(m[2]||m[3]||m[4]);i.attrs=n}return a.children.push(i),dtd.$empty[b]?a:i}function e(a,b){a.children.push(new k({type:"comment",data:b,parentNode:a}))}var f=/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g,g=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,h={b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1,sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1};a=a.replace(new RegExp(domUtils.fillChar,"g"),""),b||(a=a.replace(new RegExp("[\\r\\t\\n"+(b?"":" ")+"]*</?(\\w+)\\s*(?:[^>]*)>[\\r\\t\\n"+(b?"":" ")+"]*","g"),function(a,c){return c&&h[c.toLowerCase()]?a.replace(/(^[\n\r]+)|([\n\r]+$)/g,""):a.replace(new RegExp("^[\\r\\n"+(b?"":" ")+"]+"),"").replace(new RegExp("[\\r\\n"+(b?"":" ")+"]+$"),"")}));for(var i,j={href:1,src:1},k=UE.uNode,l={td:"tr",tr:["tbody","thead","tfoot"],tbody:"table",th:"tr",thead:"table",tfoot:"table",caption:"table",li:["ul","ol"],dt:"dl",dd:"dl",option:"select"},m={ol:"li",ul:"li"},n=0,o=0,p=new k({type:"root",children:[]}),q=p;i=f.exec(a);){n=i.index;try{if(n>o&&c(q,a.slice(o,n)),i[3])dtd.$cdata[q.tagName]?c(q,i[0]):q=d(q,i[3].toLowerCase(),i[4]);else if(i[1]){if("root"!=q.type)if(dtd.$cdata[q.tagName]&&!dtd.$cdata[i[1]])c(q,i[0]);else{for(var r=q;"element"==q.type&&q.tagName!=i[1].toLowerCase();)if(q=q.parentNode,"root"==q.type)throw q=r,"break";q=q.parentNode}}else i[2]&&e(q,i[2])}catch(s){}o=f.lastIndex}return o<a.length&&c(q,a.slice(o)),p},filterNode=UE.filterNode=function(){function a(b,c){switch(b.type){case"text":break;case"element":var d;if(d=c[b.tagName])if("-"===d)b.parentNode.removeChild(b);else if(utils.isFunction(d)){var e=b.parentNode,f=b.getIndex();if(d(b),b.parentNode){if(b.children)for(var g,h=0;g=b.children[h];)a(g,c),g.parentNode&&h++}else for(var g,h=f;g=e.children[h];)a(g,c),g.parentNode&&h++}else{var i=d.$;if(i&&b.attrs){var j,k={};for(var l in i){if(j=b.getAttr(l),"style"==l&&utils.isArray(i[l])){var m=[];utils.each(i[l],function(a){var c;(c=b.getStyle(a))&&m.push(a+":"+c)}),j=m.join(";")}j&&(k[l]=j)}b.attrs=k}if(b.children)for(var g,h=0;g=b.children[h];)a(g,c),g.parentNode&&h++}else if(dtd.$cdata[b.tagName])b.parentNode.removeChild(b);else{var e=b.parentNode,f=b.getIndex();b.parentNode.removeChild(b,!0);for(var g,h=f;g=e.children[h];)a(g,c),g.parentNode&&h++}break;case"comment":b.parentNode.removeChild(b)}}return function(b,c){if(utils.isEmptyObject(c))return b;var d;(d=c["-"])&&utils.each(d.split(" "),function(a){c[a]="-"});for(var e,f=0;e=b.children[f];)a(e,c),e.parentNode&&f++;return b}}();UE.plugin=function(){var a={};return{register:function(b,c,d,e){d&&utils.isFunction(d)&&(e=d,d=null),a[b]={optionName:d||b,execFn:c,afterDisabled:e}},load:function(b){utils.each(a,function(a){var c=a.execFn.call(b);b.options[a.optionName]!==!1?c&&utils.each(c,function(a,c){switch(c.toLowerCase()){case"shortcutkey":b.addshortcutkey(a);break;case"bindevents":utils.each(a,function(a,c){b.addListener(c,a)});break;case"bindmultievents":utils.each(utils.isArray(a)?a:[a],function(a){var c=utils.trim(a.type).split(/\s+/);utils.each(c,function(c){b.addListener(c,a.handler)})});break;case"commands":utils.each(a,function(a,c){b.commands[c]=a});break;case"outputrule":b.addOutputRule(a);break;case"inputrule":b.addInputRule(a);break;case"defaultoptions":b.setOpt(a)}}):a.afterDisabled&&a.afterDisabled.call(b)}),utils.each(UE.plugins,function(a){a.call(b)})},run:function(b,c){var d=a[b];d&&d.exeFn.call(c)}}}();var keymap=UE.keymap={Backspace:8,Tab:9,Enter:13,Shift:16,Control:17,Alt:18,CapsLock:20,Esc:27,Spacebar:32,PageUp:33,PageDown:34,End:35,Home:36,Left:37,Up:38,Right:39,Down:40,Insert:45,Del:46,NumLock:144,Cmd:91,"=":187,"-":189,b:66,i:73,z:90,y:89,v:86,x:88,s:83,n:78},LocalStorage=UE.LocalStorage=function(){function a(){var a=document.createElement("div");return a.style.display="none",a.addBehavior?(a.addBehavior("#default#userdata"),{getItem:function(b){var d=null;try{document.body.appendChild(a),a.load(c),d=a.getAttribute(b),document.body.removeChild(a)}catch(e){}return d},setItem:function(b,d){document.body.appendChild(a),a.setAttribute(b,d),a.save(c),document.body.removeChild(a)},removeItem:function(b){document.body.appendChild(a),a.removeAttribute(b),a.save(c),document.body.removeChild(a)}}):null}var b=window.localStorage||a()||null,c="localStorage";return{saveLocalData:function(a,c){return!(!b||!c)&&(b.setItem(a,c),!0)},getLocalData:function(a){return b?b.getItem(a):null},removeItem:function(a){b&&b.removeItem(a)}}}();!function(){var a="ueditor_preference";UE.Editor.prototype.setPreferences=function(b,c){var d={};utils.isString(b)?d[b]=c:d=b;var e=LocalStorage.getLocalData(a);e&&(e=utils.str2json(e))?utils.extend(e,d):e=d,e&&LocalStorage.saveLocalData(a,utils.json2str(e))},UE.Editor.prototype.getPreferences=function(b){var c=LocalStorage.getLocalData(a);return c&&(c=utils.str2json(c))?b?c[b]:c:null},UE.Editor.prototype.removePreferences=function(b){var c=LocalStorage.getLocalData(a);c&&(c=utils.str2json(c))&&(c[b]=void 0,delete c[b]),c&&LocalStorage.saveLocalData(a,utils.json2str(c))}}(),UE.plugins.defaultfilter=function(){var a=this;a.setOpt({allowDivTransToP:!0,disabledTableInTable:!0}),a.addInputRule(function(b){function c(a){for(;a&&"element"==a.type;){if("td"==a.tagName)return!0;a=a.parentNode}return!1}var d,e=this.options.allowDivTransToP;b.traversal(function(b){if("element"==b.type){if(!dtd.$cdata[b.tagName]&&a.options.autoClearEmptyNode&&dtd.$inline[b.tagName]&&!dtd.$empty[b.tagName]&&(!b.attrs||utils.isEmptyObject(b.attrs)))return void(b.firstChild()?"span"!=b.tagName||b.attrs&&!utils.isEmptyObject(b.attrs)||b.parentNode.removeChild(b,!0):b.parentNode.removeChild(b));switch(b.tagName){case"style":case"script":b.setAttr({cdata_tag:b.tagName,cdata_data:b.innerHTML()||"",_ue_custom_node_:"true"}),b.tagName="div",b.innerHTML("");break;case"a":(d=b.getAttr("href"))&&b.setAttr("_href",d);break;case"img":if((d=b.getAttr("src"))&&/^data:/.test(d)){b.parentNode.removeChild(b);break}b.setAttr("_src",b.getAttr("src"));break;case"span":browser.webkit&&(d=b.getStyle("white-space"))&&/nowrap|normal/.test(d)&&(b.setStyle("white-space",""),a.options.autoClearEmptyNode&&utils.isEmptyObject(b.attrs)&&b.parentNode.removeChild(b,!0)),d=b.getAttr("id"),d&&/^_baidu_bookmark_/i.test(d)&&b.parentNode.removeChild(b);break;case"p":(d=b.getAttr("align"))&&(b.setAttr("align"),b.setStyle("text-align",d)),utils.each(b.children,function(a){if("element"==a.type&&"p"==a.tagName){var c=a.nextSibling();b.parentNode.insertAfter(a,b);for(var d=a;c;){var e=c.nextSibling();b.parentNode.insertAfter(c,d),d=c,c=e}return!1}}),b.firstChild()||b.innerHTML(browser.ie?"&nbsp;":"<br/>");break;case"div":if(b.getAttr("cdata_tag"))break;if(d=b.getAttr("class"),d&&/^line number\d+/.test(d))break;if(!e)break;for(var f,g=UE.uNode.createElement("p");f=b.firstChild();)"text"!=f.type&&UE.dom.dtd.$block[f.tagName]?g.firstChild()?(b.parentNode.insertBefore(g,b),g=UE.uNode.createElement("p")):b.parentNode.insertBefore(f,b):g.appendChild(f);g.firstChild()&&b.parentNode.insertBefore(g,b),b.parentNode.removeChild(b);break;case"dl":b.tagName="ul";break;case"dt":case"dd":b.tagName="li";break;case"li":var h=b.getAttr("class");h&&/list\-/.test(h)||b.setAttr();var i=b.getNodesByTagName("ol ul");UE.utils.each(i,function(a){b.parentNode.insertAfter(a,b)});break;case"td":case"th":case"caption":b.children&&b.children.length||b.appendChild(browser.ie11below?UE.uNode.createText(" "):UE.uNode.createElement("br"));break;case"table":a.options.disabledTableInTable&&c(b)&&(b.parentNode.insertBefore(UE.uNode.createText(b.innerText()),b),b.parentNode.removeChild(b))}}})}),a.addOutputRule(function(b){var c;b.traversal(function(b){if("element"==b.type){if(a.options.autoClearEmptyNode&&dtd.$inline[b.tagName]&&!dtd.$empty[b.tagName]&&(!b.attrs||utils.isEmptyObject(b.attrs)))return void(b.firstChild()?"span"!=b.tagName||b.attrs&&!utils.isEmptyObject(b.attrs)||b.parentNode.removeChild(b,!0):b.parentNode.removeChild(b));switch(b.tagName){case"div":(c=b.getAttr("cdata_tag"))&&(b.tagName=c,b.appendChild(UE.uNode.createText(b.getAttr("cdata_data"))),b.setAttr({cdata_tag:"",cdata_data:"",_ue_custom_node_:""}));break;case"a":(c=b.getAttr("_href"))&&b.setAttr({href:utils.html(c),_href:""});break;case"span":c=b.getAttr("id"),c&&/^_baidu_bookmark_/i.test(c)&&b.parentNode.removeChild(b);break;case"img":(c=b.getAttr("_src"))&&b.setAttr({src:b.getAttr("_src"),_src:""})}}})})},UE.commands.inserthtml={execCommand:function(a,b,c){var d,e,f=this;if(b&&f.fireEvent("beforeinserthtml",b)!==!0){if(d=f.selection.getRange(),e=d.document.createElement("div"),e.style.display="inline",!c){var g=UE.htmlparser(b);f.options.filterRules&&UE.filterNode(g,f.options.filterRules),f.filterInputRule(g),b=g.toHtml()}if(e.innerHTML=utils.trim(b),!d.collapsed){var h=d.startContainer;if(domUtils.isFillChar(h)&&d.setStartBefore(h),h=d.endContainer,domUtils.isFillChar(h)&&d.setEndAfter(h),d.txtToElmBoundary(),d.endContainer&&1==d.endContainer.nodeType&&(h=d.endContainer.childNodes[d.endOffset],h&&domUtils.isBr(h)&&d.setEndAfter(h)),0==d.startOffset&&(h=d.startContainer,domUtils.isBoundaryNode(h,"firstChild")&&(h=d.endContainer,d.endOffset==(3==h.nodeType?h.nodeValue.length:h.childNodes.length)&&domUtils.isBoundaryNode(h,"lastChild")&&(f.body.innerHTML="<p>"+(browser.ie?"":"<br/>")+"</p>",d.setStart(f.body.firstChild,0).collapse(!0)))),!d.collapsed&&d.deleteContents(),1==d.startContainer.nodeType){var i,j=d.startContainer.childNodes[d.startOffset];if(j&&domUtils.isBlockElm(j)&&(i=j.previousSibling)&&domUtils.isBlockElm(i)){for(d.setEnd(i,i.childNodes.length).collapse();j.firstChild;)i.appendChild(j.firstChild);domUtils.remove(j)}}}var j,k,i,l,m,n=0;d.inFillChar()&&(j=d.startContainer,domUtils.isFillChar(j)?(d.setStartBefore(j).collapse(!0),domUtils.remove(j)):domUtils.isFillChar(j,!0)&&(j.nodeValue=j.nodeValue.replace(fillCharReg,""),d.startOffset--,d.collapsed&&d.collapse(!0)));var o=domUtils.findParentByTagName(d.startContainer,"li",!0);if(o){for(var p,q;j=e.firstChild;){for(;j&&(3==j.nodeType||!domUtils.isBlockElm(j)||"HR"==j.tagName);)p=j.nextSibling,d.insertNode(j).collapse(),q=j,j=p;if(j)if(/^(ol|ul)$/i.test(j.tagName)){for(;j.firstChild;)q=j.firstChild,domUtils.insertAfter(o,j.firstChild),o=o.nextSibling;domUtils.remove(j)}else{var r;p=j.nextSibling,r=f.document.createElement("li"),domUtils.insertAfter(o,r),r.appendChild(j),q=j,j=p,o=r}}o=domUtils.findParentByTagName(d.startContainer,"li",!0),domUtils.isEmptyBlock(o)&&domUtils.remove(o),q&&d.setStartAfter(q).collapse(!0).select(!0)}else{for(;j=e.firstChild;){if(n){for(var s=f.document.createElement("p");j&&(3==j.nodeType||!dtd.$block[j.tagName]);)m=j.nextSibling,s.appendChild(j),j=m;s.firstChild&&(j=s)}if(d.insertNode(j),m=j.nextSibling,!n&&j.nodeType==domUtils.NODE_ELEMENT&&domUtils.isBlockElm(j)&&(k=domUtils.findParent(j,function(a){return domUtils.isBlockElm(a)}),k&&"body"!=k.tagName.toLowerCase()&&(!dtd[k.tagName][j.nodeName]||j.parentNode!==k))){if(dtd[k.tagName][j.nodeName])for(l=j.parentNode;l!==k;)i=l,l=l.parentNode;else i=k;domUtils.breakParent(j,i||l);var i=j.previousSibling;domUtils.trimWhiteTextNode(i),i.childNodes.length||domUtils.remove(i),!browser.ie&&(p=j.nextSibling)&&domUtils.isBlockElm(p)&&p.lastChild&&!domUtils.isBr(p.lastChild)&&p.appendChild(f.document.createElement("br")),n=1}var p=j.nextSibling;if(!e.firstChild&&p&&domUtils.isBlockElm(p)){d.setStart(p,0).collapse(!0);break}d.setEndAfter(j).collapse()}if(j=d.startContainer,m&&domUtils.isBr(m)&&domUtils.remove(m),domUtils.isBlockElm(j)&&domUtils.isEmptyNode(j))if(m=j.nextSibling)domUtils.remove(j),1==m.nodeType&&dtd.$block[m.tagName]&&d.setStart(m,0).collapse(!0).shrinkBoundary();else try{j.innerHTML=browser.ie?domUtils.fillChar:"<br/>"}catch(t){d.setStartBefore(j),domUtils.remove(j)}try{d.select(!0)}catch(t){}}setTimeout(function(){d=f.selection.getRange(),d.scrollToView(f.autoHeightEnabled,f.autoHeightEnabled?domUtils.getXY(f.iframe).y:0),f.fireEvent("afterinserthtml",b)},200)}}},UE.plugins.autotypeset=function(){function a(a,b){return a&&3!=a.nodeType?domUtils.isBr(a)?1:a&&a.parentNode&&l[a.tagName.toLowerCase()]?g&&g.contains(a)||a.getAttribute("pagebreak")?0:b?!domUtils.isEmptyBlock(a):domUtils.isEmptyBlock(a,new RegExp("[\\s"+domUtils.fillChar+"]","g")):void 0:0}function b(a){a.style.cssText||(domUtils.removeAttributes(a,["style"]),"span"==a.tagName.toLowerCase()&&domUtils.hasNoAttributes(a)&&domUtils.remove(a,!0))}function c(c,f){var h,l=this;if(f){if(!i.pasteFilter)return;h=l.document.createElement("div"),h.innerHTML=f.html}else h=l.document.body;for(var m,n=domUtils.getElementsByTagName(h,"*"),o=0;m=n[o++];)if(l.fireEvent("excludeNodeinautotype",m)!==!0){if(i.clearFontSize&&m.style.fontSize&&(domUtils.removeStyle(m,"font-size"),b(m)),i.clearFontFamily&&m.style.fontFamily&&(domUtils.removeStyle(m,"font-family"),b(m)),a(m)){if(i.mergeEmptyline)for(var p,q=m.nextSibling,r=domUtils.isBr(m);a(q)&&(p=q,q=p.nextSibling,!r||q&&(!q||domUtils.isBr(q)));)domUtils.remove(p);if(i.removeEmptyline&&domUtils.inDoc(m,h)&&!k[m.parentNode.tagName.toLowerCase()]){if(domUtils.isBr(m)&&(q=m.nextSibling,q&&!domUtils.isBr(q)))continue;domUtils.remove(m);continue}}if(a(m,!0)&&"SPAN"!=m.tagName&&(i.indent&&(m.style.textIndent=i.indentValue),i.textAlign&&(m.style.textAlign=i.textAlign)),i.removeClass&&m.className&&!j[m.className.toLowerCase()]){if(g&&g.contains(m))continue;domUtils.removeAttributes(m,["class"])}if(i.imageBlockLine&&"img"==m.tagName.toLowerCase()&&!m.getAttribute("emotion"))if(f){var s=m;switch(i.imageBlockLine){case"left":case"right":case"none":for(var p,t,q,u=s.parentNode;dtd.$inline[u.tagName]||"A"==u.tagName;)u=u.parentNode;if(p=u,"P"==p.tagName&&"center"==domUtils.getStyle(p,"text-align")&&!domUtils.isBody(p)&&1==domUtils.getChildCount(p,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(t=p.previousSibling,q=p.nextSibling,t&&q&&1==t.nodeType&&1==q.nodeType&&t.tagName==q.tagName&&domUtils.isBlockElm(t)){for(t.appendChild(p.firstChild);q.firstChild;)t.appendChild(q.firstChild);domUtils.remove(p),domUtils.remove(q)}else domUtils.setStyle(p,"text-align","");domUtils.setStyle(s,"float",i.imageBlockLine);break;case"center":if("center"!=l.queryCommandValue("imagefloat")){for(u=s.parentNode,domUtils.setStyle(s,"float","none"),p=s;u&&1==domUtils.getChildCount(u,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[u.tagName]||"A"==u.tagName);)p=u,u=u.parentNode;var v=l.document.createElement("p");domUtils.setAttributes(v,{style:"text-align:center"}),p.parentNode.insertBefore(v,p),v.appendChild(p),domUtils.setStyle(p,"float","")}}}else{var w=l.selection.getRange();w.selectNode(m).select(),l.execCommand("imagefloat",i.imageBlockLine)}i.removeEmptyNode&&i.removeTagNames[m.tagName.toLowerCase()]&&domUtils.hasNoAttributes(m)&&domUtils.isEmptyBlock(m)&&domUtils.remove(m)}if(i.tobdc){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=e(a.data))}),h.innerHTML=x.toHtml()}if(i.bdc2sb){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=d(a.data))}),h.innerHTML=x.toHtml()}f&&(f.html=h.innerHTML)}function d(a){for(var b="",c=0;c<a.length;c++){var d=a.charCodeAt(c);b+=d>=65281&&d<=65373?String.fromCharCode(a.charCodeAt(c)-65248):12288==d?String.fromCharCode(a.charCodeAt(c)-12288+32):a.charAt(c)}return b}function e(a){a=utils.html(a);for(var b="",c=0;c<a.length;c++)b+=32==a.charCodeAt(c)?String.fromCharCode(12288):a.charCodeAt(c)<127?String.fromCharCode(a.charCodeAt(c)+65248):a.charAt(c);return b}function f(){var a=h.getPreferences("autotypeset");utils.extend(h.options.autotypeset,a)}this.setOpt({autotypeset:{mergeEmptyline:!0,removeClass:!0,removeEmptyline:!1,textAlign:"left",imageBlockLine:"center",pasteFilter:!1,clearFontSize:!1,clearFontFamily:!1,removeEmptyNode:!1,removeTagNames:utils.extend({div:1},dtd.$removeEmpty),indent:!1,indentValue:"2em",bdc2sb:!1,tobdc:!1}});var g,h=this,i=h.options.autotypeset,j={selectTdClass:1,pagebreak:1,anchorclass:1},k={li:1},l={div:1,p:1,blockquote:1,center:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,span:1};i&&(f(),i.pasteFilter&&h.addListener("beforepaste",c),h.commands.autotypeset={execCommand:function(){h.removeListener("beforepaste",c),i.pasteFilter&&h.addListener("beforepaste",c),c.call(h)}})},UE.plugin.register("autosubmit",function(){return{shortcutkey:{autosubmit:"ctrl+13"},commands:{autosubmit:{execCommand:function(){var a=this,b=domUtils.findParentByTagName(a.iframe,"form",!1);if(b){if(a.fireEvent("beforesubmit")===!1)return;a.sync(),b.submit()}}}}}}),UE.plugin.register("background",function(){function a(a){var b={},c=a.split(";");return utils.each(c,function(a){var c=a.indexOf(":"),d=utils.trim(a.substr(0,c)).toLowerCase();d&&(b[d]=utils.trim(a.substr(c+1)||""))}),b}function b(a){if(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c+":"+a[c]+"; ");utils.cssRule(e,b.length?"body{"+b.join("")+"}":"",d.document)}else utils.cssRule(e,"",d.document)}var c,d=this,e="editor_background",f=new RegExp("body[\\s]*\\{(.+)\\}","i"),g=d.hasContents;return d.hasContents=function(){return!!d.queryCommandValue("background")||g.apply(d,arguments)},{bindEvents:{
-getAllHtml:function(a,b){var c=this.body,e=domUtils.getComputedStyle(c,"background-image"),f="";f=e.indexOf(d.options.imagePath)>0?e.substring(e.indexOf(d.options.imagePath),e.length-1).replace(/"|\(|\)/gi,""):"none"!=e?e.replace(/url\("?|"?\)/gi,""):"";var g='<style type="text/css">body{',h={"background-color":domUtils.getComputedStyle(c,"background-color")||"#ffffff","background-image":f?"url("+f+")":"","background-repeat":domUtils.getComputedStyle(c,"background-repeat")||"","background-position":browser.ie?domUtils.getComputedStyle(c,"background-position-x")+" "+domUtils.getComputedStyle(c,"background-position-y"):domUtils.getComputedStyle(c,"background-position"),height:domUtils.getComputedStyle(c,"height")};for(var i in h)h.hasOwnProperty(i)&&(g+=i+":"+h[i]+"; ");g+="}</style> ",b.push(g)},aftersetcontent:function(){0==c&&b()}},inputRule:function(d){c=!1,utils.each(d.getNodesByTagName("p"),function(d){var e=d.getAttr("data-background");e&&(c=!0,b(a(e)),d.parentNode.removeChild(d))})},outputRule:function(a){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);c&&a.appendChild(UE.uNode.createElement('<p style="display:none;" data-background="'+utils.trim(c[1].replace(/"/g,"").replace(/[\s]+/g," "))+'"><br/></p>'))},commands:{background:{execCommand:function(a,c){b(c)},queryCommandValue:function(){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);return c?a(c[1]):null},notNeedUndo:!0}}}}),UE.commands.imagefloat={execCommand:function(a,b){var c=this,d=c.selection.getRange();if(!d.collapsed){var e=d.getClosedNode();if(e&&"IMG"==e.tagName)switch(b){case"left":case"right":case"none":for(var f,g,h,i=e.parentNode;dtd.$inline[i.tagName]||"A"==i.tagName;)i=i.parentNode;if(f=i,"P"==f.tagName&&"center"==domUtils.getStyle(f,"text-align")){if(!domUtils.isBody(f)&&1==domUtils.getChildCount(f,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(g=f.previousSibling,h=f.nextSibling,g&&h&&1==g.nodeType&&1==h.nodeType&&g.tagName==h.tagName&&domUtils.isBlockElm(g)){for(g.appendChild(f.firstChild);h.firstChild;)g.appendChild(h.firstChild);domUtils.remove(f),domUtils.remove(h)}else domUtils.setStyle(f,"text-align","");d.selectNode(e).select()}domUtils.setStyle(e,"float","none"==b?"":b),"none"==b&&domUtils.removeAttributes(e,"align");break;case"center":if("center"!=c.queryCommandValue("imagefloat")){for(i=e.parentNode,domUtils.setStyle(e,"float",""),domUtils.removeAttributes(e,"align"),f=e;i&&1==domUtils.getChildCount(i,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[i.tagName]||"A"==i.tagName);)f=i,i=i.parentNode;d.setStartBefore(f).setCursor(!1),i=c.document.createElement("div"),i.appendChild(f),domUtils.setStyle(f,"float",""),c.execCommand("insertHtml",'<p id="_img_parent_tmp" style="text-align:center">'+i.innerHTML+"</p>"),f=c.document.getElementById("_img_parent_tmp"),f.removeAttribute("id"),f=f.firstChild,d.selectNode(f).select(),h=f.parentNode.nextSibling,h&&domUtils.isEmptyNode(h)&&domUtils.remove(h)}}}},queryCommandValue:function(){var a,b,c=this.selection.getRange();return c.collapsed?"none":(a=c.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?(b=domUtils.getComputedStyle(a,"float")||a.getAttribute("align"),"none"==b&&(b="center"==domUtils.getComputedStyle(a.parentNode,"text-align")?"center":b),{left:1,right:1,center:1}[b]?b:"none"):"none")},queryCommandState:function(){var a,b=this.selection.getRange();return b.collapsed?-1:(a=b.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?0:-1)}},UE.commands.insertimage={execCommand:function(a,b){function c(a){utils.each("width,height,border,hspace,vspace".split(","),function(b){a[b]&&(a[b]=parseInt(a[b],10)||0)}),utils.each("src,_src".split(","),function(b){a[b]&&(a[b]=utils.unhtmlForUrl(a[b]))}),utils.each("title,alt".split(","),function(b){a[b]&&(a[b]=utils.unhtml(a[b]))})}if(b=utils.isArray(b)?b:[b],b.length){var d=this,e=d.selection.getRange(),f=e.getClosedNode();if(d.fireEvent("beforeinsertimage",b)!==!0){if(!f||!/img/i.test(f.tagName)||"edui-faked-video"==f.className&&f.className.indexOf("edui-upload-video")==-1||f.getAttribute("word_img")){var g,h=[],i="";if(g=b[0],1==b.length)c(g),i='<img src="'+g.src+'" '+(g._src?' _src="'+g._src+'" ':"")+(g.width?'width="'+g.width+'" ':"")+(g.height?' height="'+g.height+'" ':"")+("left"==g.floatStyle||"right"==g.floatStyle?' style="float:'+g.floatStyle+';"':"")+(g.title&&""!=g.title?' title="'+g.title+'"':"")+(g.border&&"0"!=g.border?' border="'+g.border+'"':"")+(g.alt&&""!=g.alt?' alt="'+g.alt+'"':"")+(g.hspace&&"0"!=g.hspace?' hspace = "'+g.hspace+'"':"")+(g.vspace&&"0"!=g.vspace?' vspace = "'+g.vspace+'"':"")+"/>","center"==g.floatStyle&&(i='<p style="text-align: center">'+i+"</p>"),h.push(i);else for(var j=0;g=b[j++];)c(g),i="<p "+("center"==g.floatStyle?'style="text-align: center" ':"")+'><img src="'+g.src+'" '+(g.width?'width="'+g.width+'" ':"")+(g._src?' _src="'+g._src+'" ':"")+(g.height?' height="'+g.height+'" ':"")+' style="'+(g.floatStyle&&"center"!=g.floatStyle?"float:"+g.floatStyle+";":"")+(g.border||"")+'" '+(g.title?' title="'+g.title+'"':"")+" /></p>",h.push(i);d.execCommand("insertHtml",h.join(""))}else{var k=b.shift(),l=k.floatStyle;delete k.floatStyle,domUtils.setAttributes(f,k),d.execCommand("imagefloat",l),b.length>0&&(e.setStartAfter(f).setCursor(!1,!0),d.execCommand("insertimage",b))}d.fireEvent("afterinsertimage",b)}}}},UE.plugins.justify=function(){var a=domUtils.isBlockElm,b={left:1,right:1,center:1,justify:1},c=function(b,c){var d=b.createBookmark(),e=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};b.enlarge(!0);for(var f,g=b.createBookmark(),h=domUtils.getNextDomNode(g.start,!1,e),i=b.cloneRange();h&&!(domUtils.getPosition(h,g.end)&domUtils.POSITION_FOLLOWING);)if(3!=h.nodeType&&a(h))h=domUtils.getNextDomNode(h,!0,e);else{for(i.setStartBefore(h);h&&h!==g.end&&!a(h);)f=h,h=domUtils.getNextDomNode(h,!1,null,function(b){return!a(b)});i.setEndAfter(f);var j=i.getCommonAncestor();if(!domUtils.isBody(j)&&a(j))domUtils.setStyles(j,utils.isString(c)?{"text-align":c}:c),h=j;else{var k=b.document.createElement("p");domUtils.setStyles(k,utils.isString(c)?{"text-align":c}:c);var l=i.extractContents();k.appendChild(l),i.insertNode(k),h=k}h=domUtils.getNextDomNode(h,!1,e)}return b.moveToBookmark(g).moveToBookmark(d)};UE.commands.justify={execCommand:function(a,b){var d,e=this.selection.getRange();return e.collapsed&&(d=this.document.createTextNode("p"),e.insertNode(d)),c(e,b),d&&(e.setStartBefore(d).collapse(!0),domUtils.remove(d)),e.select(),!0},queryCommandValue:function(){var a=this.selection.getStart(),c=domUtils.getComputedStyle(a,"text-align");return b[c]?c:"left"},queryCommandState:function(){var a=this.selection.getStart(),b=a&&domUtils.findParentByTagName(a,["td","th","caption"],!0);return b?-1:0}}},UE.plugins.font=function(){function a(a){for(var b;(b=a.parentNode)&&"SPAN"==b.tagName&&1==domUtils.getChildCount(b,function(a){return!domUtils.isBookmarkNode(a)&&!domUtils.isBr(a)});)b.style.cssText+=a.style.cssText,domUtils.remove(a,!0),a=b}function b(a,b,c){if(g[b]&&(a.adjustmentBoundary(),!a.collapsed&&1==a.startContainer.nodeType)){var d=a.startContainer.childNodes[a.startOffset];if(d&&domUtils.isTagNode(d,"span")){var e=a.createBookmark();utils.each(domUtils.getElementsByTagName(d,"span"),function(a){a.parentNode&&!domUtils.isBookmarkNode(a)&&("backcolor"==b&&domUtils.getComputedStyle(a,"background-color").toLowerCase()===c||(domUtils.removeStyle(a,g[b]),0==a.style.cssText.replace(/^\s+$/,"").length&&domUtils.remove(a,!0)))}),a.moveToBookmark(e)}}}function c(c,d,e){var f,g=c.collapsed,h=c.createBookmark();if(g)for(f=h.start.parentNode;dtd.$inline[f.tagName];)f=f.parentNode;else f=domUtils.getCommonAncestor(h.start,h.end);utils.each(domUtils.getElementsByTagName(f,"span"),function(b){if(b.parentNode&&!domUtils.isBookmarkNode(b)){if(/\s*border\s*:\s*none;?\s*/i.test(b.style.cssText))return void(/^\s*border\s*:\s*none;?\s*$/.test(b.style.cssText)?domUtils.remove(b,!0):domUtils.removeStyle(b,"border"));if(/border/i.test(b.style.cssText)&&"SPAN"==b.parentNode.tagName&&/border/i.test(b.parentNode.style.cssText)&&(b.style.cssText=b.style.cssText.replace(/border[^:]*:[^;]+;?/gi,"")),"fontborder"!=d||"none"!=e)for(var c=b.nextSibling;c&&1==c.nodeType&&"SPAN"==c.tagName;)if(domUtils.isBookmarkNode(c)&&"fontborder"==d)b.appendChild(c),c=b.nextSibling;else{if(c.style.cssText==b.style.cssText&&(domUtils.moveChild(c,b),domUtils.remove(c)),b.nextSibling===c)break;c=b.nextSibling}if(a(b),browser.ie&&browser.version>8){var f=domUtils.findParent(b,function(a){return"SPAN"==a.tagName&&/background-color/.test(a.style.cssText)});f&&!/background-color/.test(b.style.cssText)&&(b.style.backgroundColor=f.style.backgroundColor)}}}),c.moveToBookmark(h),b(c,d,e)}var d=this,e={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family",underline:"text-decoration",strikethrough:"text-decoration",fontborder:"border"},f={underline:1,strikethrough:1,fontborder:1},g={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family"};d.setOpt({fontfamily:[{name:"songti",val:"瀹嬩綋,SimSun"},{name:"yahei",val:"寰蒋闆呴粦,Microsoft YaHei"},{name:"kaiti",val:"妤蜂綋,妤蜂綋_GB2312, SimKai"},{name:"heiti",val:"榛戜綋, SimHei"},{name:"lishu",val:"闅朵功, SimLi"},{name:"andaleMono",val:"andale mono"},{name:"arial",val:"arial, helvetica,sans-serif"},{name:"arialBlack",val:"arial black,avant garde"},{name:"comicSansMs",val:"comic sans ms"},{name:"impact",val:"impact,chicago"},{name:"timesNewRoman",val:"times new roman"}],fontsize:[10,11,12,14,16,18,20,24,36]}),d.addInputRule(function(a){utils.each(a.getNodesByTagName("u s del font strike"),function(a){if("font"==a.tagName){var b=[];for(var c in a.attrs)switch(c){case"size":b.push("font-size:"+({1:"10",2:"12",3:"16",4:"18",5:"24",6:"32",7:"48"}[a.attrs[c]]||a.attrs[c])+"px");break;case"color":b.push("color:"+a.attrs[c]);break;case"face":b.push("font-family:"+a.attrs[c]);break;case"style":b.push(a.attrs[c])}a.attrs={style:b.join(";")}}else{var d="u"==a.tagName?"underline":"line-through";a.attrs={style:(a.getAttr("style")||"")+"text-decoration:"+d+";"}}a.tagName="span"})});for(var h in e)!function(a,b){UE.commands[a]={execCommand:function(d,e){e=e||(this.queryCommandState(d)?"none":"underline"==d?"underline":"fontborder"==d?"1px solid #000":"line-through");var g,h=this,i=this.selection.getRange();if("default"==e)i.collapsed&&(g=h.document.createTextNode("font"),i.insertNode(g).select()),h.execCommand("removeFormat","span,a",b),g&&(i.setStartBefore(g).collapse(!0),domUtils.remove(g)),c(i,d,e),i.select();else if(i.collapsed){var j=domUtils.findParentByTagName(i.startContainer,"span",!0);if(g=h.document.createTextNode("font"),!j||j.children.length||j[browser.ie?"innerText":"textContent"].replace(fillCharReg,"").length){if(i.insertNode(g),i.selectNode(g).select(),j=i.document.createElement("span"),f[a]){if(domUtils.findParentByTagName(g,"a",!0))return i.setStartBefore(g).setCursor(),void domUtils.remove(g);h.execCommand("removeFormat","span,a",b)}if(j.style.cssText=b+":"+e,g.parentNode.insertBefore(j,g),!browser.ie||browser.ie&&9==browser.version)for(var k=j.parentNode;!domUtils.isBlockElm(k);)"SPAN"==k.tagName&&(j.style.cssText=k.style.cssText+";"+j.style.cssText),k=k.parentNode;opera?setTimeout(function(){i.setStart(j,0).collapse(!0),c(i,d,e),i.select()}):(i.setStart(j,0).collapse(!0),c(i,d,e),i.select())}else i.insertNode(g),f[a]&&(i.selectNode(g).select(),h.execCommand("removeFormat","span,a",b,null),j=domUtils.findParentByTagName(g,"span",!0),i.setStartBefore(g)),j&&(j.style.cssText+=";"+b+":"+e),i.collapse(!0).select();domUtils.remove(g)}else f[a]&&h.queryCommandValue(a)&&h.execCommand("removeFormat","span,a",b),i=h.selection.getRange(),i.applyInlineStyle("span",{style:b+":"+e}),c(i,d,e),i.select();return!0},queryCommandValue:function(a){var c=this.selection.getStart();if("underline"==a||"strikethrough"==a){for(var d,e=c;e&&!domUtils.isBlockElm(e)&&!domUtils.isBody(e);){if(1==e.nodeType&&(d=domUtils.getComputedStyle(e,b),"none"!=d))return d;e=e.parentNode}return"none"}if("fontborder"==a){for(var f,g=c;g&&dtd.$inline[g.tagName];){if((f=domUtils.getComputedStyle(g,"border"))&&/1px/.test(f)&&/solid/.test(f))return f;g=g.parentNode}return""}if("FontSize"==a){var h=domUtils.getComputedStyle(c,b),g=/^([\d\.]+)(\w+)$/.exec(h);return g?Math.floor(g[1])+g[2]:h}return domUtils.getComputedStyle(c,b)},queryCommandState:function(a){if(!f[a])return 0;var b=this.queryCommandValue(a);return"fontborder"==a?/1px/.test(b)&&/solid/.test(b):"underline"==a?/underline/.test(b):/line\-through/.test(b)}}}(h,e[h])},UE.plugins.link=function(){function a(a){var b=a.startContainer,c=a.endContainer;(b=domUtils.findParentByTagName(b,"a",!0))&&a.setStartBefore(b),(c=domUtils.findParentByTagName(c,"a",!0))&&a.setEndAfter(c)}function b(b,c,d){var e=b.cloneRange(),f=d.queryCommandValue("link");a(b=b.adjustmentBoundary());var g=b.startContainer;if(1==g.nodeType&&f&&(g=g.childNodes[b.startOffset],g&&1==g.nodeType&&"A"==g.tagName&&/^(?:https?|ftp|file)\s*:\s*\/\//.test(g[browser.ie?"innerText":"textContent"])&&(g[browser.ie?"innerText":"textContent"]=utils.html(c.textValue||c.href))),e.collapsed&&!f||(b.removeInlineStyle("a"),e=b.cloneRange()),e.collapsed){var h=b.document.createElement("a"),i="";c.textValue?(i=utils.html(c.textValue),delete c.textValue):i=utils.html(c.href),domUtils.setAttributes(h,c),g=domUtils.findParentByTagName(e.startContainer,"a",!0),g&&domUtils.isInNodeEndBoundary(e,g)&&b.setStartAfter(g).collapse(!0),h[browser.ie?"innerText":"textContent"]=i,b.insertNode(h).selectNode(h)}else b.applyInlineStyle("a",c)}UE.commands.unlink={execCommand:function(){var b,c=this.selection.getRange();c.collapsed&&!domUtils.findParentByTagName(c.startContainer,"a",!0)||(b=c.createBookmark(),a(c),c.removeInlineStyle("a").moveToBookmark(b).select())},queryCommandState:function(){return!this.highlight&&this.queryCommandValue("link")?0:-1}},UE.commands.link={execCommand:function(a,c){var d;c._href&&(c._href=utils.unhtml(c._href,/[<">]/g)),c.href&&(c.href=utils.unhtml(c.href,/[<">]/g)),c.textValue&&(c.textValue=utils.unhtml(c.textValue,/[<">]/g)),b(d=this.selection.getRange(),c,this),d.collapse().select(!0)},queryCommandValue:function(){var a,b=this.selection.getRange();if(!b.collapsed){b.shrinkBoundary();var c=3!=b.startContainer.nodeType&&b.startContainer.childNodes[b.startOffset]?b.startContainer.childNodes[b.startOffset]:b.startContainer,d=3==b.endContainer.nodeType||0==b.endOffset?b.endContainer:b.endContainer.childNodes[b.endOffset-1],e=b.getCommonAncestor();if(a=domUtils.findParentByTagName(e,"a",!0),!a&&1==e.nodeType)for(var f,g,h,i=e.getElementsByTagName("a"),j=0;h=i[j++];)if(f=domUtils.getPosition(h,c),g=domUtils.getPosition(h,d),(f&domUtils.POSITION_FOLLOWING||f&domUtils.POSITION_CONTAINS)&&(g&domUtils.POSITION_PRECEDING||g&domUtils.POSITION_CONTAINS)){a=h;break}return a}if(a=b.startContainer,a=1==a.nodeType?a:a.parentNode,a&&(a=domUtils.findParentByTagName(a,"a",!0))&&!domUtils.isInNodeEndBoundary(b,a))return a},queryCommandState:function(){var a=this.selection.getRange().getClosedNode(),b=a&&("edui-faked-video"==a.className||a.className.indexOf("edui-upload-video")!=-1);return b?-1:0}}},UE.plugins.insertframe=function(){function a(){b._iframe&&delete b._iframe}var b=this;b.addListener("selectionchange",function(){a()})},UE.commands.scrawl={queryCommandState:function(){return browser.ie&&browser.version<=8?-1:0}},UE.plugins.removeformat=function(){var a=this;a.setOpt({removeFormatTags:"b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var",removeFormatAttributes:"class,style,lang,width,height,align,hspace,valign"}),a.commands.removeformat={execCommand:function(a,b,c,d,e){function f(a){if(3==a.nodeType||"span"!=a.tagName.toLowerCase())return 0;if(browser.ie){var b=a.attributes;if(b.length){for(var c=0,d=b.length;c<d;c++)if(b[c].specified)return 0;return 1}}return!a.attributes.length}function g(a){var b=a.createBookmark();if(a.collapsed&&a.enlarge(!0),!e){var d=domUtils.findParentByTagName(a.startContainer,"a",!0);d&&a.setStartBefore(d),d=domUtils.findParentByTagName(a.endContainer,"a",!0),d&&a.setEndAfter(d)}for(h=a.createBookmark(),p=h.start;(i=p.parentNode)&&!domUtils.isBlockElm(i);)domUtils.breakParent(p,i),domUtils.clearEmptySibling(p);if(h.end){for(p=h.end;(i=p.parentNode)&&!domUtils.isBlockElm(i);)domUtils.breakParent(p,i),domUtils.clearEmptySibling(p);for(var g,l=domUtils.getNextDomNode(h.start,!1,m);l&&l!=h.end;)g=domUtils.getNextDomNode(l,!0,m),dtd.$empty[l.tagName.toLowerCase()]||domUtils.isBookmarkNode(l)||(j.test(l.tagName)?c?(domUtils.removeStyle(l,c),f(l)&&"text-decoration"!=c&&domUtils.remove(l,!0)):domUtils.remove(l,!0):dtd.$tableContent[l.tagName]||dtd.$list[l.tagName]||(domUtils.removeAttributes(l,k),f(l)&&domUtils.remove(l,!0))),l=g}var n=h.start.parentNode;!domUtils.isBlockElm(n)||dtd.$tableContent[n.tagName]||dtd.$list[n.tagName]||domUtils.removeAttributes(n,k),n=h.end.parentNode,h.end&&domUtils.isBlockElm(n)&&!dtd.$tableContent[n.tagName]&&!dtd.$list[n.tagName]&&domUtils.removeAttributes(n,k),a.moveToBookmark(h).moveToBookmark(b);for(var o,p=a.startContainer,q=a.collapsed;1==p.nodeType&&domUtils.isEmptyNode(p)&&dtd.$removeEmpty[p.tagName];)o=p.parentNode,a.setStartBefore(p),a.startContainer===a.endContainer&&a.endOffset--,domUtils.remove(p),p=o;if(!q)for(p=a.endContainer;1==p.nodeType&&domUtils.isEmptyNode(p)&&dtd.$removeEmpty[p.tagName];)o=p.parentNode,a.setEndBefore(p),domUtils.remove(p),p=o}var h,i,j=new RegExp("^(?:"+(b||this.options.removeFormatTags).replace(/,/g,"|")+")$","i"),k=c?[]:(d||this.options.removeFormatAttributes).split(","),l=new dom.Range(this.document),m=function(a){return 1==a.nodeType};l=this.selection.getRange(),g(l),l.select()}}},UE.plugins.blockquote=function(){function a(a){return domUtils.filterNodeList(a.selection.getStartElementPath(),"blockquote")}var b=this;b.commands.blockquote={execCommand:function(b,c){var d=this.selection.getRange(),e=a(this),f=dtd.blockquote,g=d.createBookmark();if(e){var h=d.startContainer,i=domUtils.isBlockElm(h)?h:domUtils.findParent(h,function(a){return domUtils.isBlockElm(a)}),j=d.endContainer,k=domUtils.isBlockElm(j)?j:domUtils.findParent(j,function(a){return domUtils.isBlockElm(a)});i=domUtils.findParentByTagName(i,"li",!0)||i,k=domUtils.findParentByTagName(k,"li",!0)||k,"LI"==i.tagName||"TD"==i.tagName||i===e||domUtils.isBody(i)?domUtils.remove(e,!0):domUtils.breakParent(i,e),i!==k&&(e=domUtils.findParentByTagName(k,"blockquote"),e&&("LI"==k.tagName||"TD"==k.tagName||domUtils.isBody(k)?e.parentNode&&domUtils.remove(e,!0):domUtils.breakParent(k,e)));for(var l,m=domUtils.getElementsByTagName(this.document,"blockquote"),n=0;l=m[n++];)l.childNodes.length?domUtils.getPosition(l,i)&domUtils.POSITION_FOLLOWING&&domUtils.getPosition(l,k)&domUtils.POSITION_PRECEDING&&domUtils.remove(l,!0):domUtils.remove(l)}else{for(var o=d.cloneRange(),p=1==o.startContainer.nodeType?o.startContainer:o.startContainer.parentNode,q=p,r=1;;){if(domUtils.isBody(p)){q!==p?d.collapsed?(o.selectNode(q),r=0):o.setStartBefore(q):o.setStart(p,0);break}if(!f[p.tagName]){d.collapsed?o.selectNode(q):o.setStartBefore(q);break}q=p,p=p.parentNode}if(r)for(q=p=p=1==o.endContainer.nodeType?o.endContainer:o.endContainer.parentNode;;){if(domUtils.isBody(p)){q!==p?o.setEndAfter(q):o.setEnd(p,p.childNodes.length);break}if(!f[p.tagName]){o.setEndAfter(q);break}q=p,p=p.parentNode}p=d.document.createElement("blockquote"),domUtils.setAttributes(p,c),p.appendChild(o.extractContents()),o.insertNode(p);for(var s,t=domUtils.getElementsByTagName(p,"blockquote"),n=0;s=t[n++];)s.parentNode&&domUtils.remove(s,!0)}d.moveToBookmark(g).select()},queryCommandState:function(){return a(this)?1:0}}},UE.commands.touppercase=UE.commands.tolowercase={execCommand:function(a){var b=this,c=b.selection.getRange();if(c.collapsed)return c;for(var d=c.createBookmark(),e=d.end,f=function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)},g=domUtils.getNextDomNode(d.start,!1,f);g&&domUtils.getPosition(g,e)&domUtils.POSITION_PRECEDING&&(3==g.nodeType&&(g.nodeValue=g.nodeValue["touppercase"==a?"toUpperCase":"toLowerCase"]()),g=domUtils.getNextDomNode(g,!0,f),g!==e););c.moveToBookmark(d).select()}},UE.commands.indent={execCommand:function(){var a=this,b=a.queryCommandState("indent")?"0em":a.options.indentValue||"2em";a.execCommand("Paragraph","p",{style:"text-indent:"+b})},queryCommandState:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),"p h1 h2 h3 h4 h5 h6");return a&&a.style.textIndent&&parseInt(a.style.textIndent)?1:0}},UE.commands.print={execCommand:function(){this.window.print()},notNeedUndo:1},UE.commands.preview={execCommand:function(){var a=window.open("","_blank",""),b=a.document;b.open(),b.write('<!DOCTYPE html><html><head><meta charset="utf-8"/><script src="'+this.options.UEDITOR_HOME_URL+"ueditor.parse.js\"></script><script>setTimeout(function(){uParse('div',{rootPath: '"+this.options.UEDITOR_HOME_URL+"'})},300)</script></head><body><div>"+this.getContent(null,null,!0)+"</div></body></html>"),b.close()},notNeedUndo:1},UE.plugins.selectall=function(){var a=this;a.commands.selectall={execCommand:function(){var a=this,b=a.body,c=a.selection.getRange();c.selectNodeContents(b),domUtils.isEmptyBlock(b)&&(browser.opera&&b.firstChild&&1==b.firstChild.nodeType&&c.setStartAtFirst(b.firstChild),c.collapse(!0)),c.select(!0)},notNeedUndo:1},a.addshortcutkey({selectAll:"ctrl+65"})},UE.plugins.paragraph=function(){var a=this,b=domUtils.isBlockElm,c=["TD","LI","PRE"],d=function(a,d,e,f){var g,h=a.createBookmark(),i=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};a.enlarge(!0);for(var j,k=a.createBookmark(),l=domUtils.getNextDomNode(k.start,!1,i),m=a.cloneRange();l&&!(domUtils.getPosition(l,k.end)&domUtils.POSITION_FOLLOWING);)if(3!=l.nodeType&&b(l))l=domUtils.getNextDomNode(l,!0,i);else{for(m.setStartBefore(l);l&&l!==k.end&&!b(l);)j=l,l=domUtils.getNextDomNode(l,!1,null,function(a){return!b(a)});m.setEndAfter(j),g=a.document.createElement(d),e&&(domUtils.setAttributes(g,e),f&&"customstyle"==f&&e.style&&(g.style.cssText=e.style)),g.appendChild(m.extractContents()),domUtils.isEmptyNode(g)&&domUtils.fillChar(a.document,g),m.insertNode(g);var n=g.parentNode;b(n)&&!domUtils.isBody(g.parentNode)&&utils.indexOf(c,n.tagName)==-1&&(f&&"customstyle"==f||(n.getAttribute("dir")&&g.setAttribute("dir",n.getAttribute("dir")),n.style.cssText&&(g.style.cssText=n.style.cssText+";"+g.style.cssText),n.style.textAlign&&!g.style.textAlign&&(g.style.textAlign=n.style.textAlign),n.style.textIndent&&!g.style.textIndent&&(g.style.textIndent=n.style.textIndent),n.style.padding&&!g.style.padding&&(g.style.padding=n.style.padding)),e&&/h\d/i.test(n.tagName)&&!/h\d/i.test(g.tagName)?(domUtils.setAttributes(n,e),f&&"customstyle"==f&&e.style&&(n.style.cssText=e.style),domUtils.remove(g,!0),g=n):domUtils.remove(g.parentNode,!0)),l=utils.indexOf(c,n.tagName)!=-1?n:g,l=domUtils.getNextDomNode(l,!1,i)}return a.moveToBookmark(k).moveToBookmark(h)};a.setOpt("paragraph",{p:"",h1:"",h2:"",h3:"",h4:"",h5:"",h6:""}),a.commands.paragraph={execCommand:function(a,b,c,e){var f=this.selection.getRange();if(f.collapsed){var g=this.document.createTextNode("p");if(f.insertNode(g),browser.ie){var h=g.previousSibling;h&&domUtils.isWhitespace(h)&&domUtils.remove(h),h=g.nextSibling,h&&domUtils.isWhitespace(h)&&domUtils.remove(h)}}if(f=d(f,b,c,e),g&&(f.setStartBefore(g).collapse(!0),pN=g.parentNode,domUtils.remove(g),domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)&&domUtils.fillNode(this.document,pN)),browser.gecko&&f.collapsed&&1==f.startContainer.nodeType){var i=f.startContainer.childNodes[f.startOffset];i&&1==i.nodeType&&i.tagName.toLowerCase()==b&&f.setStart(i,0).collapse(!0)}return f.select(),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),"p h1 h2 h3 h4 h5 h6");return a?a.tagName.toLowerCase():""}}},function(){var a=domUtils.isBlockElm,b=function(a){return domUtils.filterNodeList(a.selection.getStartElementPath(),function(a){return a&&1==a.nodeType&&a.getAttribute("dir")})},c=function(c,d,e){var f,g=function(a){return 1==a.nodeType?!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)},h=b(d);if(h&&c.collapsed)return h.setAttribute("dir",e),c;f=c.createBookmark(),c.enlarge(!0);for(var i,j=c.createBookmark(),k=domUtils.getNextDomNode(j.start,!1,g),l=c.cloneRange();k&&!(domUtils.getPosition(k,j.end)&domUtils.POSITION_FOLLOWING);)if(3!=k.nodeType&&a(k))k=domUtils.getNextDomNode(k,!0,g);else{for(l.setStartBefore(k);k&&k!==j.end&&!a(k);)i=k,k=domUtils.getNextDomNode(k,!1,null,function(b){return!a(b)});l.setEndAfter(i);var m=l.getCommonAncestor();if(!domUtils.isBody(m)&&a(m))m.setAttribute("dir",e),k=m;else{var n=c.document.createElement("p");n.setAttribute("dir",e);var o=l.extractContents();n.appendChild(o),l.insertNode(n),k=n}k=domUtils.getNextDomNode(k,!1,g)}return c.moveToBookmark(j).moveToBookmark(f)};UE.commands.directionality={execCommand:function(a,b){var d=this.selection.getRange();if(d.collapsed){var e=this.document.createTextNode("d");d.insertNode(e)}return c(d,this,b),e&&(d.setStartBefore(e).collapse(!0),domUtils.remove(e)),d.select(),!0},queryCommandValue:function(){var a=b(this);return a?a.getAttribute("dir"):"ltr"}}}(),UE.plugins.horizontal=function(){var a=this;a.commands.horizontal={execCommand:function(a){var b=this;if(b.queryCommandState(a)!==-1){b.execCommand("insertHtml","<hr>");var c=b.selection.getRange(),d=c.startContainer;if(1==d.nodeType&&!d.childNodes[c.startOffset]){var e;(e=d.childNodes[c.startOffset-1])&&1==e.nodeType&&"HR"==e.tagName&&("p"==b.options.enterTag?(e=b.document.createElement("p"),c.insertNode(e),c.setStart(e,0).setCursor()):(e=b.document.createElement("br"),c.insertNode(e),c.setStartBefore(e).setCursor()))}return!0}},queryCommandState:function(){return domUtils.filterNodeList(this.selection.getStartElementPath(),"table")?-1:0}},a.addListener("delkeydown",function(a,b){var c=this.selection.getRange();if(c.txtToElmBoundary(!0),domUtils.isStartInblock(c)){var d=c.startContainer,e=d.previousSibling;if(e&&domUtils.isTagNode(e,"hr"))return domUtils.remove(e),c.select(),domUtils.preventDefault(b),!0}})},UE.commands.time=UE.commands.date={execCommand:function(a,b){function c(a,b){var c=("0"+a.getHours()).slice(-2),d=("0"+a.getMinutes()).slice(-2),e=("0"+a.getSeconds()).slice(-2);return b=b||"hh:ii:ss",b.replace(/hh/gi,c).replace(/ii/gi,d).replace(/ss/gi,e)}function d(a,b){var c=("000"+a.getFullYear()).slice(-4),d=c.slice(-2),e=("0"+(a.getMonth()+1)).slice(-2),f=("0"+a.getDate()).slice(-2);return b=b||"yyyy-mm-dd",b.replace(/yyyy/gi,c).replace(/yy/gi,d).replace(/mm/gi,e).replace(/dd/gi,f)}var e=new Date;this.execCommand("insertHtml","time"==a?c(e,b):d(e,b))}},UE.plugins.rowspacing=function(){var a=this;a.setOpt({rowspacingtop:["5","10","15","20","25"],rowspacingbottom:["5","10","15","20","25"]}),a.commands.rowspacing={execCommand:function(a,b,c){return this.execCommand("paragraph","p",{style:"margin-"+c+":"+b+"px"}),!0},queryCommandValue:function(a,b){var c,d=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});return d?(c=domUtils.getComputedStyle(d,"margin-"+b).replace(/[^\d]/g,""),c?c:0):0}}},UE.plugins.lineheight=function(){var a=this;a.setOpt({lineheight:["1","1.5","1.75","2","3","4","5"]}),a.commands.lineheight={execCommand:function(a,b){return this.execCommand("paragraph","p",{style:"line-height:"+("1"==b?"normal":b+"em")}),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});if(a){var b=domUtils.getComputedStyle(a,"line-height");return"normal"==b?1:b.replace(/[^\d.]*/gi,"")}}}},UE.plugins.insertcode=function(){var a=this;a.ready(function(){utils.cssRule("pre","pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}",a.document)}),a.setOpt("insertcode",{as3:"ActionScript3",bash:"Bash/Shell",cpp:"C/C++",css:"Css",cf:"CodeFunction","c#":"C#",delphi:"Delphi",diff:"Diff",erlang:"Erlang",groovy:"Groovy",html:"Html",java:"Java",jfx:"JavaFx",js:"Javascript",pl:"Perl",php:"Php",plain:"Plain Text",ps:"PowerShell",python:"Python",ruby:"Ruby",scala:"Scala",sql:"Sql",vb:"Vb",xml:"Xml"}),a.commands.insertcode={execCommand:function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e)e.className="brush:"+b+";toolbar:false;";else{var f="";if(d.collapsed)f=browser.ie&&browser.ie11below?browser.version<=8?"&nbsp;":"":"<br/>";else{var g=d.extractContents(),h=c.document.createElement("div");h.appendChild(g),utils.each(UE.filterNode(UE.htmlparser(h.innerHTML.replace(/[\r\t]/g,"")),c.options.filterTxtRules).children,function(a){if(browser.ie&&browser.ie11below&&browser.version>8)"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""));else if(browser.ie&&browser.ie11below)"element"==a.type?"br"==a.tagName?f+="<br>":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="<br>":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/br>$/.test(f)||(f+="<br>")):f+=a.data+"<br>",!a.nextSibling()&&/<br>$/.test(f)&&(f=f.replace(/<br>$/,""));else if(f+="element"==a.type?dtd.$empty[a.tagName]?"":a.innerText():a.data,!/br\/?\s*>$/.test(f)){if(!a.nextSibling())return;f+="<br>"}})}c.execCommand("inserthtml",'<pre id="coder"class="brush:'+b+';toolbar:false">'+f+"</pre>",!0),e=c.document.getElementById("coder"),domUtils.removeAttributes(e,"id");var i=e.previousSibling;i&&(3==i.nodeType&&1==i.nodeValue.length&&browser.ie&&6==browser.version||domUtils.isEmptyBlock(i))&&domUtils.remove(i);var d=c.selection.getRange();domUtils.isEmptyBlock(e)?d.setStart(e,0).setCursor(!1,!0):d.selectNodeContents(e).select()}},queryCommandValue:function(){var a=this.selection.getStartElementPath(),b="";return utils.each(a,function(a){if("PRE"==a.nodeName){var c=a.className.match(/brush:([^;]+)/);return b=c&&c[1]?c[1]:"",!1}}),b}},a.addInputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b=a.getNodesByTagName("br");if(b.length)return void(browser.ie&&browser.ie11below&&browser.version>8&&utils.each(b,function(a){var b=UE.uNode.createText("\n");a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}));if(!(browser.ie&&browser.ie11below&&browser.version>8)){var c=a.innerText().split(/\n/);a.innerHTML(""),utils.each(c,function(b){b.length&&a.appendChild(UE.uNode.createText(b)),a.appendChild(UE.uNode.createElement("br"))})}})}),a.addOutputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b="";utils.each(a.children,function(a){b+="text"==a.type?a.data.replace(/[ ]/g,"&nbsp;").replace(/\n$/,""):"br"==a.tagName?"\n":dtd.$empty[a.tagName]?a.innerText():""}),a.innerText(b.replace(/(&nbsp;|\n)+$/,""))})}),a.notNeedCodeQuery={help:1,undo:1,redo:1,source:1,print:1,searchreplace:1,fullscreen:1,preview:1,insertparagraph:1,elementpath:1,insertcode:1,inserthtml:1,selectall:1};a.queryCommandState;a.queryCommandState=function(a){var b=this;return!b.notNeedCodeQuery[a.toLowerCase()]&&b.selection&&b.queryCommandValue("insertcode")?-1:UE.Editor.prototype.queryCommandState.apply(this,arguments)},a.addListener("beforeenterkeydown",function(){var b=a.selection.getRange(),c=domUtils.findParentByTagName(b.startContainer,"pre",!0);if(c){if(a.fireEvent("saveScene"),b.collapsed||b.deleteContents(),!browser.ie||browser.ie9above){var c,d=a.document.createElement("br");b.insertNode(d).setStartAfter(d).collapse(!0);
-var e=d.nextSibling;e||browser.ie&&!(browser.version>10)?b.setStartAfter(d):b.insertNode(d.cloneNode(!1)),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[\\s"+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([\\s"+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g&&(g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g))}b.collapse(!0).select(!0)}else if(browser.version>8){var i=a.document.createTextNode("\n"),j=b.startContainer;if(0==b.startOffset){var k=j.previousSibling;if(k){b.insertNode(i);var l=a.document.createTextNode(" ");b.setStartAfter(i).insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{b.insertNode(i).setStartAfter(i);var l=a.document.createTextNode(" ");j=b.startContainer.childNodes[b.startOffset],j&&!/^\n/.test(j.nodeValue)&&b.setStartBefore(i),b.insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{var d=a.document.createElement("br");b.insertNode(d),b.insertNode(a.document.createTextNode(domUtils.fillChar)),b.setStartAfter(d),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[ "+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([ "+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g)}b.collapse(!0).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("tabkeydown",function(b,c){var d=a.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){if(a.fireEvent("saveScene"),c.shiftKey);else if(d.collapsed){var f=a.document.createTextNode("    ");d.insertNode(f).setStartAfter(f).collapse(!0).select(!0)}else{for(var g=d.createBookmark(),h=g.start.previousSibling;h;){if(e.firstChild===h&&!domUtils.isBr(h)){e.insertBefore(a.document.createTextNode("    "),h);break}if(domUtils.isBr(h)){e.insertBefore(a.document.createTextNode("    "),h.nextSibling);break}h=h.previousSibling}var i=g.end;for(h=g.start.nextSibling,e.firstChild===g.start&&e.insertBefore(a.document.createTextNode("    "),h.nextSibling);h&&h!==i;){if(domUtils.isBr(h)&&h.nextSibling){if(h.nextSibling===i)break;e.insertBefore(a.document.createTextNode("    "),h.nextSibling)}h=h.nextSibling}d.moveToBookmark(g).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("beforeinserthtml",function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){d.collapsed||d.deleteContents();var f="";if(browser.ie&&browser.version>8){utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""))});var g=c.document.createTextNode(utils.html(f.replace(/&nbsp;/g," ")));d.insertNode(g).selectNode(g).select()}else{var h=c.document.createDocumentFragment();utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||h.appendChild(c.document.createTextNode(utils.html(b.innerText().replace(/&nbsp;/g," ")))):h.appendChild(c.document.createTextNode(utils.html(b.data.replace(/&nbsp;/g," "))))}),"BR"!=h.lastChild.nodeName&&h.appendChild(c.document.createElement("br"))):h.appendChild(c.document.createTextNode(utils.html(a.data.replace(/&nbsp;/g," ")))),a.nextSibling()||"BR"!=h.lastChild.nodeName||h.removeChild(h.lastChild)}),d.insertNode(h).select()}return!0}}),a.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(40==d){var e,f=c.selection.getRange(),g=f.startContainer;if(f.collapsed&&(e=domUtils.findParentByTagName(f.startContainer,"pre",!0))&&!e.nextSibling){for(var h=e.lastChild;h&&"BR"==h.nodeName;)h=h.previousSibling;(h===g||f.startContainer===e&&f.startOffset==e.childNodes.length)&&(c.execCommand("insertparagraph"),domUtils.preventDefault(b))}}}),a.addListener("delkeydown",function(b,c){var d=this.selection.getRange();d.txtToElmBoundary(!0);var e=d.startContainer;if(domUtils.isTagNode(e,"pre")&&d.collapsed&&domUtils.isStartInblock(d)){var f=a.document.createElement("p");return domUtils.fillNode(a.document,f),e.parentNode.insertBefore(f,e),domUtils.remove(e),d.setStart(f,0).setCursor(!1,!0),domUtils.preventDefault(c),!0}})},UE.commands.cleardoc={execCommand:function(a){var b=this,c=b.options.enterTag,d=b.selection.getRange();"br"==c?(b.body.innerHTML="<br/>",d.setStart(b.body,0).setCursor()):(b.body.innerHTML="<p>"+(ie?"":"<br/>")+"</p>",d.setStart(b.body.firstChild,0).setCursor(!1,!0)),setTimeout(function(){b.fireEvent("clearDoc")},0)}},UE.plugin.register("anchor",function(){return{bindEvents:{ready:function(){utils.cssRule("anchor",".anchorclass{background: url('"+this.options.themePath+this.options.theme+"/images/anchor.gif') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}",this.document)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){var b;(b=a.getAttr("anchorname"))&&(a.tagName="a",a.setAttr({anchorname:"",name:b,"class":""}))})},inputRule:function(a){utils.each(a.getNodesByTagName("a"),function(a){var b;(b=a.getAttr("name"))&&!a.getAttr("href")&&(a.tagName="img",a.setAttr({anchorname:a.getAttr("name"),"class":"anchorclass"}),a.setAttr("name"))})},commands:{anchor:{execCommand:function(a,b){var c=this.selection.getRange(),d=c.getClosedNode();if(d&&d.getAttribute("anchorname"))b?d.setAttribute("anchorname",b):(c.setStartBefore(d).setCursor(),domUtils.remove(d));else if(b){var e=this.document.createElement("img");c.collapse(!0),domUtils.setAttributes(e,{anchorname:b,"class":"anchorclass"}),c.insertNode(e).setStartAfter(e).setCursor(!1,!0)}}}}}}),UE.plugins.wordcount=function(){var a=this;a.setOpt("wordCount",!0),a.addListener("contentchange",function(){a.fireEvent("wordcount")});var b;a.addListener("ready",function(){var a=this;domUtils.on(a.body,"keyup",function(c){var d=c.keyCode||c.which,e={16:1,18:1,20:1,37:1,38:1,39:1,40:1};d in e||(clearTimeout(b),b=setTimeout(function(){a.fireEvent("wordcount")},200))})})},UE.plugins.pagebreak=function(){function a(a){if(domUtils.isEmptyBlock(a)){for(var b,d=a.firstChild;d&&1==d.nodeType&&domUtils.isEmptyBlock(d);)b=d,d=d.firstChild;!b&&(b=a),domUtils.fillNode(c.document,b)}}function b(a){return a&&1==a.nodeType&&"HR"==a.tagName&&"pagebreak"==a.className}var c=this,d=["td"];c.setOpt("pageBreakTag","_ueditor_page_break_tag_"),c.ready(function(){utils.cssRule("pagebreak",".pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}",c.document)}),c.addInputRule(function(a){a.traversal(function(a){if("text"==a.type&&a.data==c.options.pageBreakTag){var b=UE.uNode.createElement('<hr class="pagebreak" noshade="noshade" size="5" style="-webkit-user-select: none;">');a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.addOutputRule(function(a){utils.each(a.getNodesByTagName("hr"),function(a){if("pagebreak"==a.getAttr("class")){var b=UE.uNode.createText(c.options.pageBreakTag);a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.commands.pagebreak={execCommand:function(){var e=c.selection.getRange(),f=c.document.createElement("hr");domUtils.setAttributes(f,{"class":"pagebreak",noshade:"noshade",size:"5"}),domUtils.unSelectable(f);var g,h=domUtils.findParentByTagName(e.startContainer,d,!0),i=[];if(h)switch(h.tagName){case"TD":if(g=h.parentNode,g.previousSibling)g.parentNode.insertBefore(f,g),i=domUtils.findParents(f);else{var j=domUtils.findParentByTagName(g,"table");j.parentNode.insertBefore(f,j),i=domUtils.findParents(f,!0)}g=i[1],f!==g&&domUtils.breakParent(f,g),c.fireEvent("afteradjusttable",c.document)}else{if(!e.collapsed){e.deleteContents();for(var k=e.startContainer;!domUtils.isBody(k)&&domUtils.isBlockElm(k)&&domUtils.isEmptyNode(k);)e.setStartBefore(k).collapse(!0),domUtils.remove(k),k=e.startContainer}e.insertNode(f);for(var l,g=f.parentNode;!domUtils.isBody(g);)domUtils.breakParent(f,g),l=f.nextSibling,l&&domUtils.isEmptyBlock(l)&&domUtils.remove(l),g=f.parentNode;l=f.nextSibling;var m=f.previousSibling;if(b(m)?domUtils.remove(m):m&&a(m),l)b(l)?domUtils.remove(l):a(l),e.setEndAfter(f).collapse(!1);else{var n=c.document.createElement("p");f.parentNode.appendChild(n),domUtils.fillNode(c.document,n),e.setStart(n,0).collapse(!0)}e.select(!0)}}}},UE.plugin.register("wordimage",function(){var a=this,b=[];return{commands:{wordimage:{execCommand:function(){for(var b,c=domUtils.getElementsByTagName(a.body,"img"),d=[],e=0;b=c[e++];){var f=b.getAttribute("word_img");f&&d.push(f)}return d},queryCommandState:function(){b=domUtils.getElementsByTagName(a.body,"img");for(var c,d=0;c=b[d++];)if(c.getAttribute("word_img"))return 1;return-1},notNeedUndo:!0}},inputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c=b.attrs,d=parseInt(c.width)<128||parseInt(c.height)<43,e=a.options,f=e.UEDITOR_HOME_URL+"themes/default/images/spacer.gif";c.src&&/^(?:(file:\/+))/.test(c.src)&&b.setAttr({width:c.width,height:c.height,alt:c.alt,word_img:c.src,src:f,style:"background:url("+(d?e.themePath+e.theme+"/images/word.gif":e.langPath+e.lang+"/images/localimage.png")+") no-repeat center center;border:1px solid #ddd"})})}}}),UE.plugins.dragdrop=function(){var a=this;a.ready(function(){domUtils.on(this.body,"dragend",function(){var b=a.selection.getRange(),c=b.getClosedNode()||a.selection.getStart();if(c&&"IMG"==c.tagName){for(var d,e=c.previousSibling;(d=c.nextSibling)&&1==d.nodeType&&"SPAN"==d.tagName&&!d.firstChild;)domUtils.remove(d);(!e||1!=e.nodeType||domUtils.isEmptyBlock(e))&&e||d&&(!d||domUtils.isEmptyBlock(d))||(e&&"P"==e.tagName&&!domUtils.isEmptyBlock(e)?(e.appendChild(c),domUtils.moveChild(d,e),domUtils.remove(d)):d&&"P"==d.tagName&&!domUtils.isEmptyBlock(d)&&d.insertBefore(c,d.firstChild),e&&"P"==e.tagName&&domUtils.isEmptyBlock(e)&&domUtils.remove(e),d&&"P"==d.tagName&&domUtils.isEmptyBlock(d)&&domUtils.remove(d),b.selectNode(c).select(),a.fireEvent("saveScene"))}})}),a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(13==d){var e,f=a.selection.getRange();(e=domUtils.findParentByTagName(f.startContainer,"p",!0))&&"center"==domUtils.getComputedStyle(e,"text-align")&&domUtils.removeStyle(e,"text-align")}})},UE.plugins.undo=function(){function a(a,b){if(a.length!=b.length)return 0;for(var c=0,d=a.length;c<d;c++)if(a[c]!=b[c])return 0;return 1}function b(b,c){return b.collapsed!=c.collapsed?0:a(b.startAddress,c.startAddress)&&a(b.endAddress,c.endAddress)?1:0}function c(){this.list=[],this.index=0,this.hasUndo=!1,this.hasRedo=!1,this.undo=function(){if(this.hasUndo){if(!this.list[this.index-1]&&1==this.list.length)return void this.reset();for(;this.list[this.index].content==this.list[this.index-1].content;)if(this.index--,0==this.index)return this.restore(0);this.restore(--this.index)}},this.redo=function(){if(this.hasRedo){for(;this.list[this.index].content==this.list[this.index+1].content;)if(this.index++,this.index==this.list.length-1)return this.restore(this.index);this.restore(++this.index)}},this.restore=function(){var a=this.editor,b=this.list[this.index],c=UE.htmlparser(b.content.replace(h,""));a.options.autoClearEmptyNode=!1,a.filterInputRule(c),a.options.autoClearEmptyNode=j,a.document.body.innerHTML=c.toHtml(),a.fireEvent("afterscencerestore"),browser.ie&&utils.each(domUtils.getElementsByTagName(a.document,"td th caption p"),function(b){domUtils.isEmptyNode(b)&&domUtils.fillNode(a.document,b)});try{var d=new dom.Range(a.document).moveToAddress(b.address);d.select(i[d.startContainer.nodeName.toLowerCase()])}catch(e){}this.update(),this.clearKey(),a.fireEvent("reset",!0)},this.getScene=function(){var a=this.editor,b=a.selection.getRange(),c=b.createAddress(!1,!0);a.fireEvent("beforegetscene");var d=UE.htmlparser(a.body.innerHTML);a.options.autoClearEmptyNode=!1,a.filterOutputRule(d),a.options.autoClearEmptyNode=j;var e=d.toHtml();return a.fireEvent("aftergetscene"),{address:c,content:e}},this.save=function(a,c){clearTimeout(d);var g=this.getScene(c),h=this.list[this.index];h&&h.content!=g.content&&e.trigger("contentchange"),h&&h.content==g.content&&(a?1:b(h.address,g.address))||(this.list=this.list.slice(0,this.index+1),this.list.push(g),this.list.length>f&&this.list.shift(),this.index=this.list.length-1,this.clearKey(),this.update())},this.update=function(){this.hasRedo=!!this.list[this.index+1],this.hasUndo=!!this.list[this.index-1]},this.reset=function(){this.list=[],this.index=0,this.hasUndo=!1,this.hasRedo=!1,this.clearKey()},this.clearKey=function(){m=0,k=null}}var d,e=this,f=e.options.maxUndoCount||20,g=e.options.maxInputCount||20,h=new RegExp(domUtils.fillChar+"|</hr>","gi"),i={ol:1,ul:1,table:1,tbody:1,tr:1,body:1},j=e.options.autoClearEmptyNode;e.undoManger=new c,e.undoManger.editor=e,e.addListener("saveScene",function(){var a=Array.prototype.splice.call(arguments,1);this.undoManger.save.apply(this.undoManger,a)}),e.addListener("reset",function(a,b){b||this.undoManger.reset()}),e.commands.redo=e.commands.undo={execCommand:function(a){this.undoManger[a]()},queryCommandState:function(a){return this.undoManger["has"+("undo"==a.toLowerCase()?"Undo":"Redo")]?0:-1},notNeedUndo:1};var k,l={16:1,17:1,18:1,37:1,38:1,39:1,40:1},m=0,n=!1;e.addListener("ready",function(){domUtils.on(this.body,"compositionstart",function(){n=!0}),domUtils.on(this.body,"compositionend",function(){n=!1})}),e.addshortcutkey({Undo:"ctrl+90",Redo:"ctrl+89"});var o=!0;e.addListener("keydown",function(a,b){function c(a){a.undoManger.save(!1,!0),a.fireEvent("selectionchange")}var e=this,f=b.keyCode||b.which;if(!(l[f]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;if(!e.selection.getRange().collapsed)return e.undoManger.save(!1,!0),void(o=!1);0==e.undoManger.list.length&&e.undoManger.save(!0),clearTimeout(d),d=setTimeout(function(){if(n)var a=setInterval(function(){n||(c(e),clearInterval(a))},300);else c(e)},200),k=f,m++,m>=g&&c(e)}}),e.addListener("keyup",function(a,b){var c=b.keyCode||b.which;if(!(l[c]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;o||(this.undoManger.save(!1,!0),o=!0)}}),e.stopCmdUndo=function(){e.__hasEnterExecCommand=!0},e.startCmdUndo=function(){e.__hasEnterExecCommand=!1}},UE.plugin.register("copy",function(){function a(){ZeroClipboard.config({debug:!1,swfPath:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.swf"});var a=b.zeroclipboard=new ZeroClipboard;a.on("copy",function(a){var c=a.client,d=b.selection.getRange(),e=document.createElement("div");e.appendChild(d.cloneContents()),c.setText(e.innerText||e.textContent),c.setHtml(e.innerHTML),d.select()}),a.on("mouseover mouseout",function(a){var b=a.target;"mouseover"==a.type?domUtils.addClass(b,"edui-state-hover"):"mouseout"==a.type&&domUtils.removeClasses(b,"edui-state-hover")}),a.on("wrongflash noflash",function(){ZeroClipboard.destroy()})}var b=this;return{bindEvents:{ready:function(){browser.ie||(window.ZeroClipboard?a():utils.loadFile(document,{src:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.js",tag:"script",type:"text/javascript",defer:"defer"},function(){a()}))}},commands:{copy:{execCommand:function(a){b.document.execCommand("copy")||alert(b.getLang("copymsg"))}}}}}),UE.plugins.paste=function(){function a(a){var b=this.document;if(!b.getElementById("baidu_pastebin")){var c=this.selection.getRange(),d=c.createBookmark(),e=b.createElement("div");e.id="baidu_pastebin",browser.webkit&&e.appendChild(b.createTextNode(domUtils.fillChar+domUtils.fillChar)),b.body.appendChild(e),d.start.style.display="",e.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:"+domUtils.getXY(d.start).y+"px",c.selectNodeContents(e).select(!0),setTimeout(function(){if(browser.webkit)for(var f,g=0,h=b.querySelectorAll("#baidu_pastebin");f=h[g++];){if(!domUtils.isEmptyNode(f)){e=f;break}domUtils.remove(f)}try{e.parentNode.removeChild(e)}catch(i){}c.moveToBookmark(d).select(!0),a(e)},0)}}function b(a){return a.replace(/<(\/?)([\w\-]+)([^>]*)>/gi,function(a,b,c,d){return c=c.toLowerCase(),{img:1}[c]?a:(d=d.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi,function(a,b,c){return{src:1,href:1,name:1}[b.toLowerCase()]?b+"="+c+" ":""}),{span:1,div:1}[c]?"":"<"+b+c+" "+utils.trim(d)+">")})}function c(a){var c;if(a.firstChild){for(var h,i=domUtils.getElementsByTagName(a,"span"),j=0;h=i[j++];)"_baidu_cut_start"!=h.id&&"_baidu_cut_end"!=h.id||domUtils.remove(h);if(browser.webkit){for(var k,l=a.querySelectorAll("div br"),j=0;k=l[j++];){var m=k.parentNode;"DIV"==m.tagName&&1==m.childNodes.length&&(m.innerHTML="<p><br/></p>",domUtils.remove(m))}for(var n,o=a.querySelectorAll("#baidu_pastebin"),j=0;n=o[j++];){var p=d.document.createElement("p");for(n.parentNode.insertBefore(p,n);n.firstChild;)p.appendChild(n.firstChild);domUtils.remove(n)}for(var q,r=a.querySelectorAll("meta"),j=0;q=r[j++];)domUtils.remove(q);var l=a.querySelectorAll("br");for(j=0;q=l[j++];)/^apple-/i.test(q.className)&&domUtils.remove(q)}if(browser.gecko){var s=a.querySelectorAll("[_moz_dirty]");for(j=0;q=s[j++];)q.removeAttribute("_moz_dirty")}if(!browser.ie)for(var q,t=a.querySelectorAll("span.Apple-style-span"),j=0;q=t[j++];)domUtils.remove(q,!0);c=a.innerHTML,c=UE.filterWord(c);var u=UE.htmlparser(c);if(d.options.filterRules&&UE.filterNode(u,d.options.filterRules),d.filterInputRule(u),browser.webkit){var v=u.lastChild();v&&"element"==v.type&&"br"==v.tagName&&u.removeChild(v),utils.each(d.body.querySelectorAll("div"),function(a){domUtils.isEmptyBlock(a)&&domUtils.remove(a,!0)})}if(c={html:u.toHtml()},d.fireEvent("beforepaste",c,u),!c.html)return;u=UE.htmlparser(c.html,!0),1===d.queryCommandState("pasteplain")?d.execCommand("insertHtml",UE.filterNode(u,d.options.filterTxtRules).toHtml(),!0):(UE.filterNode(u,d.options.filterTxtRules),e=u.toHtml(),f=c.html,g=d.selection.getRange().createAddress(!0),d.execCommand("insertHtml",d.getOpt("retainOnlyLabelPasted")===!0?b(f):f,!0)),d.fireEvent("afterpaste",c)}}var d=this;d.setOpt({retainOnlyLabelPasted:!1});var e,f,g;d.addListener("pasteTransfer",function(a,c){if(g&&e&&f&&e!=f){var h=d.selection.getRange();if(h.moveToAddress(g,!0),!h.collapsed){for(;!domUtils.isBody(h.startContainer);){var i=h.startContainer;if(1==i.nodeType){if(i=i.childNodes[h.startOffset],!i){h.setStartBefore(h.startContainer);continue}var j=i.previousSibling;j&&3==j.nodeType&&new RegExp("^[\n\r\t "+domUtils.fillChar+"]*$").test(j.nodeValue)&&h.setStartBefore(j)}if(0!=h.startOffset)break;h.setStartBefore(h.startContainer)}for(;!domUtils.isBody(h.endContainer);){var k=h.endContainer;if(1==k.nodeType){if(k=k.childNodes[h.endOffset],!k){h.setEndAfter(h.endContainer);continue}var l=k.nextSibling;l&&3==l.nodeType&&new RegExp("^[\n\r\t"+domUtils.fillChar+"]*$").test(l.nodeValue)&&h.setEndAfter(l)}if(h.endOffset!=h.endContainer[3==h.endContainer.nodeType?"nodeValue":"childNodes"].length)break;h.setEndAfter(h.endContainer)}}h.deleteContents(),h.select(!0),d.__hasEnterExecCommand=!0;var m=f;2===c?m=b(m):c&&(m=e),d.execCommand("inserthtml",m,!0),d.__hasEnterExecCommand=!1;for(var n=d.selection.getRange();!domUtils.isBody(n.startContainer)&&!n.startOffset&&n.startContainer[3==n.startContainer.nodeType?"nodeValue":"childNodes"].length;)n.setStartBefore(n.startContainer);var o=n.createAddress(!0);g.endAddress=o.startAddress}}),d.addListener("ready",function(){domUtils.on(d.body,"cut",function(){var a=d.selection.getRange();!a.collapsed&&d.undoManger&&d.undoManger.save()}),domUtils.on(d.body,browser.ie||browser.opera?"keydown":"paste",function(b){(!browser.ie&&!browser.opera||(b.ctrlKey||b.metaKey)&&"86"==b.keyCode)&&a.call(d,function(a){c(a)})})}),d.commands.paste={execCommand:function(b){browser.ie?(a.call(d,function(a){c(a)}),d.document.execCommand("paste")):alert(d.getLang("pastemsg"))}}},UE.plugins.pasteplain=function(){var a=this;a.setOpt({pasteplain:!1,filterTxtRules:function(){function a(a){a.tagName="p",a.setStyle()}function b(a){a.parentNode.removeChild(a,!0)}return{"-":"script style object iframe embed input select",p:{$:{}},br:{$:{}},div:function(a){for(var b,c=UE.uNode.createElement("p");b=a.firstChild();)"text"!=b.type&&UE.dom.dtd.$block[b.tagName]?c.firstChild()?(a.parentNode.insertBefore(c,a),c=UE.uNode.createElement("p")):a.parentNode.insertBefore(b,a):c.appendChild(b);c.firstChild()&&a.parentNode.insertBefore(c,a),a.parentNode.removeChild(a)},ol:b,ul:b,dl:b,dt:b,dd:b,li:b,caption:a,th:a,tr:a,h1:a,h2:a,h3:a,h4:a,h5:a,h6:a,td:function(a){var b=!!a.innerText();b&&a.parentNode.insertAfter(UE.uNode.createText(" &nbsp; &nbsp;"),a),a.parentNode.removeChild(a,a.innerText())}}}()});var b=a.options.pasteplain;a.commands.pasteplain={queryCommandState:function(){return b?1:0},execCommand:function(){b=0|!b},notNeedUndo:1}},UE.plugins.list=function(){function a(a){var b=[];for(var c in a)b.push(c);return b}function b(a){var b=a.className;return domUtils.hasClass(a,/custom_/)?b.match(/custom_(\w+)/)[1]:domUtils.getStyle(a,"list-style-type")}function c(a,c){utils.each(domUtils.getElementsByTagName(a,"ol ul"),function(f){if(domUtils.inDoc(f,a)){var g=f.parentNode;if(g.tagName==f.tagName){var h=b(f)||("OL"==f.tagName?"decimal":"disc"),i=b(g)||("OL"==g.tagName?"decimal":"disc");if(h==i){var l=utils.indexOf(k[f.tagName],h);l=l+1==k[f.tagName].length?0:l+1,e(f,k[f.tagName][l])}}var m=0,n=2;domUtils.hasClass(f,/custom_/)?/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)||(n=1):/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)&&(n=3);var o=domUtils.getStyle(f,"list-style-type");o&&(f.style.cssText="list-style-type:"+o),f.className=utils.trim(f.className.replace(/list-paddingleft-\w+/,""))+" list-paddingleft-"+n,utils.each(domUtils.getElementsByTagName(f,"li"),function(a){if(a.style.cssText&&(a.style.cssText=""),!a.firstChild)return void domUtils.remove(a);if(a.parentNode===f){if(m++,domUtils.hasClass(f,/custom_/)){var c=1,d=b(f);if("OL"==f.tagName){if(d)switch(d){case"cn":case"cn1":case"cn2":m>10&&(m%10==0||m>10&&m<20)?c=2:m>20&&(c=3);break;case"num2":m>9&&(c=2)}a.className="list-"+j[d]+m+" list-"+d+"-paddingleft-"+c}else a.className="list-"+j[d]+" list-"+d+"-paddingleft"}else a.className=a.className.replace(/list-[\w\-]+/gi,"");var e=a.getAttribute("class");null===e||e.replace(/\s/g,"")||domUtils.removeAttributes(a,"class")}}),!c&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getStyle(f,"list-style-type"),!0)}})}function d(a,d,e,f){var g=a.nextSibling;g&&1==g.nodeType&&g.tagName.toLowerCase()==d&&(b(g)||domUtils.getStyle(g,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&(domUtils.moveChild(g,a),0==g.childNodes.length&&domUtils.remove(g)),g&&domUtils.isFillChar(g)&&domUtils.remove(g);var h=a.previousSibling;h&&1==h.nodeType&&h.tagName.toLowerCase()==d&&(b(h)||domUtils.getStyle(h,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&domUtils.moveChild(a,h),h&&domUtils.isFillChar(h)&&domUtils.remove(h),!f&&domUtils.isEmptyBlock(a)&&domUtils.remove(a),b(a)&&c(a.ownerDocument,!0)}function e(a,b){j[b]&&(a.className="custom_"+b);try{domUtils.setStyle(a,"list-style-type",b)}catch(c){}}function f(a){var b=a.previousSibling;b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b),b=a.nextSibling,b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b)}function g(a){for(;a&&!domUtils.isBody(a);){if("TABLE"==a.nodeName)return null;if("LI"==a.nodeName)return a;a=a.parentNode}}var h=this,i={TD:1,PRE:1,BLOCKQUOTE:1},j={cn:"cn-1-",cn1:"cn-2-",cn2:"cn-3-",num:"num-1-",num1:"num-2-",num2:"num-3-",dash:"dash",dot:"dot"};h.setOpt({autoTransWordToList:!1,insertorderedlist:{num:"",num1:"",num2:"",cn:"",cn1:"",cn2:"",decimal:"","lower-alpha":"","lower-roman":"","upper-alpha":"","upper-roman":""},insertunorderedlist:{circle:"",disc:"",square:"",dash:"",dot:""},listDefaultPaddingLeft:"30",listiconpath:"http://bs.baidu.com/listicon/",maxListLevel:-1,disablePInList:!1});var k={OL:a(h.options.insertorderedlist),UL:a(h.options.insertunorderedlist)},l=h.options.listiconpath;for(var m in j)h.options.insertorderedlist.hasOwnProperty(m)||h.options.insertunorderedlist.hasOwnProperty(m)||delete j[m];h.ready(function(){var a=[];for(var b in j){if("dash"==b||"dot"==b)a.push("li.list-"+j[b]+"{background-image:url("+l+j[b]+".gif)}"),a.push("ul.custom_"+b+"{list-style:none;}ul.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}");else{for(var c=0;c<99;c++)a.push("li.list-"+j[b]+c+"{background-image:url("+l+"list-"+j[b]+c+".gif)}");a.push("ol.custom_"+b+"{list-style:none;}ol.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}")}switch(b){case"cn":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn1":a.push("li.list-"+b+"-paddingleft-1{padding-left:30px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn2":a.push("li.list-"+b+"-paddingleft-1{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:55px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:68px}");break;case"num":case"num1":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}");break;case"num2":a.push("li.list-"+b+"-paddingleft-1{padding-left:35px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}");break;case"dash":a.push("li.list-"+b+"-paddingleft{padding-left:35px}");break;case"dot":a.push("li.list-"+b+"-paddingleft{padding-left:20px}")}}a.push(".list-paddingleft-1{padding-left:0}"),a.push(".list-paddingleft-2{padding-left:"+h.options.listDefaultPaddingLeft+"px}"),a.push(".list-paddingleft-3{padding-left:"+2*h.options.listDefaultPaddingLeft+"px}"),utils.cssRule("list","ol,ul{margin:0;pading:0;"+(browser.ie?"":"width:95%")+"}li{clear:both;}"+a.join("\n"),h.document)}),h.ready(function(){domUtils.on(h.body,"cut",function(){setTimeout(function(){var a,b=h.selection.getRange();if(!b.collapsed&&(a=domUtils.findParentByTagName(b.startContainer,"li",!0))&&!a.nextSibling&&domUtils.isEmptyBlock(a)){var c,d=a.parentNode;if(c=d.previousSibling)domUtils.remove(d),b.setStartAtLast(c).collapse(!0),b.select(!0);else if(c=d.nextSibling)domUtils.remove(d),b.setStartAtFirst(c).collapse(!0),b.select(!0);else{var e=h.document.createElement("p");domUtils.fillNode(h.document,e),d.parentNode.insertBefore(e,d),domUtils.remove(d),b.setStart(e,0).collapse(!0),b.select(!0)}}})})}),h.addListener("beforepaste",function(a,c){var d,e=this,f=e.selection.getRange(),g=UE.htmlparser(c.html,!0);if(d=domUtils.findParentByTagName(f.startContainer,"li",!0)){var h=d.parentNode,i="OL"==h.tagName?"ul":"ol";utils.each(g.getNodesByTagName(i),function(c){if(c.tagName=h.tagName,c.setAttr(),c.parentNode===g)a=b(h)||("OL"==h.tagName?"decimal":"disc");else{var d=c.parentNode.getAttr("class");a=d&&/custom_/.test(d)?d.match(/custom_(\w+)/)[1]:c.parentNode.getStyle("list-style-type"),a||(a="OL"==h.tagName?"decimal":"disc")}var e=utils.indexOf(k[h.tagName],a);c.parentNode!==g&&(e=e+1==k[h.tagName].length?0:e+1);var f=k[h.tagName][e];j[f]?c.setAttr("class","custom_"+f):c.setStyle("list-style-type",f)})}c.html=g.toHtml()}),h.getOpt("disablePInList")===!0&&h.addOutputRule(function(a){utils.each(a.getNodesByTagName("li"),function(a){var b=[],c=0;utils.each(a.children,function(d){if("p"==d.tagName){for(var e;e=d.children.pop();)b.splice(c,0,e),e.parentNode=a,lastNode=e;if(e=b[b.length-1],!e||"element"!=e.type||"br"!=e.tagName){var f=UE.uNode.createElement("br");f.parentNode=a,b.push(f)}c=b.length}}),b.length&&(a.children=b)})}),h.addInputRule(function(a){function b(a,b){var e=b.firstChild();if(e&&"element"==e.type&&"span"==e.tagName&&/Wingdings|Symbol/.test(e.getStyle("font-family"))){for(var f in d)if(d[f]==e.data)return f;return"disc"}for(var f in c)if(c[f].test(a))return f}if(utils.each(a.getNodesByTagName("li"),function(a){for(var b,c=UE.uNode.createElement("p"),d=0;b=a.children[d];)"text"==b.type||dtd.p[b.tagName]?c.appendChild(b):c.firstChild()?(a.insertBefore(c,b),c=UE.uNode.createElement("p"),d+=2):d++;(c.firstChild()&&!c.parentNode||!a.firstChild())&&a.appendChild(c),c.firstChild()||c.innerHTML(browser.ie?"&nbsp;":"<br/>");var e=a.firstChild(),f=e.lastChild();f&&"text"==f.type&&/^\s*$/.test(f.data)&&e.removeChild(f)}),h.options.autoTransWordToList){var c={num1:/^\d+\)/,decimal:/^\d+\./,"lower-alpha":/^[a-z]+\)/,"upper-alpha":/^[A-Z]+\./,cn:/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/,cn2:/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/},d={square:"n"};utils.each(a.getNodesByTagName("p"),function(a){function d(a,b,d){if("ol"==a.tagName)if(browser.ie){var e=b.firstChild();"element"==e.type&&"span"==e.tagName&&c[d].test(e.innerText())&&b.removeChild(e)}else b.innerHTML(b.innerHTML().replace(c[d],""));else b.removeChild(b.firstChild());var f=UE.uNode.createElement("li");f.appendChild(b),a.appendChild(f)}if("MsoListParagraph"==a.getAttr("class")){a.setStyle("margin",""),a.setStyle("margin-left",""),a.setAttr("class","");var e,f=a,g=a;if("li"!=a.parentNode.tagName&&(e=b(a.innerText(),a))){var i=UE.uNode.createElement(h.options.insertorderedlist.hasOwnProperty(e)?"ol":"ul");for(j[e]?i.setAttr("class","custom_"+e):i.setStyle("list-style-type",e);a&&"li"!=a.parentNode.tagName&&b(a.innerText(),a);)f=a.nextSibling(),f||a.parentNode.insertBefore(i,a),d(i,a,e),a=f;!i.parentNode&&a&&a.parentNode&&a.parentNode.insertBefore(i,a)}var k=g.firstChild();k&&"element"==k.type&&"span"==k.tagName&&/^\s*(&nbsp;)+\s*$/.test(k.innerText())&&k.parentNode.removeChild(k)}})}}),h.addListener("contentchange",function(){c(h.document)}),h.addListener("keydown",function(a,b){function c(){b.preventDefault?b.preventDefault():b.returnValue=!1,h.fireEvent("contentchange"),h.undoManger&&h.undoManger.save()}function d(a,b){for(;a&&!domUtils.isBody(a);){if(b(a))return null;if(1==a.nodeType&&/[ou]l/i.test(a.tagName))return a;a=a.parentNode}return null}var e=b.keyCode||b.which;if(13==e&&!b.shiftKey){var g=h.selection.getRange(),i=domUtils.findParent(g.startContainer,function(a){return domUtils.isBlockElm(a)},!0),j=domUtils.findParentByTagName(g.startContainer,"li",!0);if(i&&"PRE"!=i.tagName&&!j){var k=i.innerHTML.replace(new RegExp(domUtils.fillChar,"g"),"");/^\s*1\s*\.[^\d]/.test(k)&&(i.innerHTML=k.replace(/^\s*1\s*\./,""),g.setStartAtLast(i).collapse(!0).select(),h.__hasEnterExecCommand=!0,h.execCommand("insertorderedlist"),h.__hasEnterExecCommand=!1)}var l=h.selection.getRange(),m=d(l.startContainer,function(a){return"TABLE"==a.tagName}),n=l.collapsed?m:d(l.endContainer,function(a){return"TABLE"==a.tagName});if(m&&n&&m===n){if(!l.collapsed){if(m=domUtils.findParentByTagName(l.startContainer,"li",!0),n=domUtils.findParentByTagName(l.endContainer,"li",!0),!m||!n||m!==n){var o=l.cloneRange(),p=o.collapse(!1).createBookmark();l.deleteContents(),o.moveToBookmark(p);var j=domUtils.findParentByTagName(o.startContainer,"li",!0);return f(j),o.select(),void c()}if(l.deleteContents(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isEmptyBlock(j))return v=j.previousSibling,next=j.nextSibling,s=h.document.createElement("p"),domUtils.fillNode(h.document,s),q=j.parentNode,v&&next?(l.setStart(next,0).collapse(!0).select(!0),domUtils.remove(j)):((v||next)&&v?j.parentNode.parentNode.insertBefore(s,q.nextSibling):q.parentNode.insertBefore(s,q),domUtils.remove(j),q.firstChild||domUtils.remove(q),
-l.setStart(s,0).setCursor()),void c()}if(j=domUtils.findParentByTagName(l.startContainer,"li",!0)){if(domUtils.isEmptyBlock(j)){p=l.createBookmark();var q=j.parentNode;if(j!==q.lastChild?(domUtils.breakParent(j,q),f(j)):(q.parentNode.insertBefore(j,q.nextSibling),domUtils.isEmptyNode(q)&&domUtils.remove(q)),!dtd.$list[j.parentNode.tagName])if(domUtils.isBlockElm(j.firstChild))domUtils.remove(j,!0);else{for(s=h.document.createElement("p"),j.parentNode.insertBefore(s,j);j.firstChild;)s.appendChild(j.firstChild);domUtils.remove(j)}l.moveToBookmark(p).select()}else{var r=j.firstChild;if(!r||!domUtils.isBlockElm(r)){var s=h.document.createElement("p");for(!j.firstChild&&domUtils.fillNode(h.document,s);j.firstChild;)s.appendChild(j.firstChild);j.appendChild(s),r=s}var t=h.document.createElement("span");l.insertNode(t),domUtils.breakParent(t,j);var u=t.nextSibling;r=u.firstChild,r||(s=h.document.createElement("p"),domUtils.fillNode(h.document,s),u.appendChild(s),r=s),domUtils.isEmptyNode(r)&&(r.innerHTML="",domUtils.fillNode(h.document,r)),l.setStart(r,0).collapse(!0).shrinkBoundary().select(),domUtils.remove(t);var v=u.previousSibling;v&&domUtils.isEmptyBlock(v)&&(v.innerHTML="<p></p>",domUtils.fillNode(h.document,v.firstChild))}c()}}}if(8==e&&(l=h.selection.getRange(),l.collapsed&&domUtils.isStartInblock(l)&&(o=l.cloneRange().trimBoundary(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isStartInblock(o)))){if(m=domUtils.findParentByTagName(l.startContainer,"p",!0),m&&m!==j.firstChild){var q=domUtils.findParentByTagName(m,["ol","ul"]);return domUtils.breakParent(m,q),f(m),h.fireEvent("contentchange"),l.setStart(m,0).setCursor(!1,!0),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&(v=j.previousSibling)){if(46==e&&j.childNodes.length)return;if(dtd.$list[v.tagName]&&(v=v.lastChild),h.undoManger&&h.undoManger.save(),r=j.firstChild,domUtils.isBlockElm(r))if(domUtils.isEmptyNode(r))for(v.appendChild(r),l.setStart(r,0).setCursor(!1,!0);j.firstChild;)v.appendChild(j.firstChild);else t=h.document.createElement("span"),l.insertNode(t),domUtils.isEmptyBlock(v)&&(v.innerHTML=""),domUtils.moveChild(j,v),l.setStartBefore(t).collapse(!0).select(!0),domUtils.remove(t);else if(domUtils.isEmptyNode(j)){var s=h.document.createElement("p");v.appendChild(s),l.setStart(s,0).setCursor()}else for(l.setEnd(v,v.childNodes.length).collapse().select(!0);j.firstChild;)v.appendChild(j.firstChild);return domUtils.remove(j),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&!j.previousSibling){var q=j.parentNode,p=l.createBookmark();if(domUtils.isTagNode(q.parentNode,"ol ul"))q.parentNode.insertBefore(j,q),domUtils.isEmptyNode(q)&&domUtils.remove(q);else{for(;j.firstChild;)q.parentNode.insertBefore(j.firstChild,q);domUtils.remove(j),domUtils.isEmptyNode(q)&&domUtils.remove(q)}return l.moveToBookmark(p).setCursor(!1,!0),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}}}),h.addListener("keyup",function(a,c){var e=c.keyCode||c.which;if(8==e){var f,g=h.selection.getRange();(f=domUtils.findParentByTagName(g.startContainer,["ol","ul"],!0))&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getComputedStyle(f,"list-style-type"),!0)}}),h.addListener("tabkeydown",function(){function a(a){if(h.options.maxListLevel!=-1){for(var b=a.parentNode,c=0;/[ou]l/i.test(b.tagName);)c++,b=b.parentNode;if(c>=h.options.maxListLevel)return!0}}var c=h.selection.getRange(),f=domUtils.findParentByTagName(c.startContainer,"li",!0);if(f){var g;if(!c.collapsed){h.fireEvent("saveScene"),g=c.createBookmark();for(var i,j,l=0,m=domUtils.findParents(f);j=m[l++];)if(domUtils.isTagNode(j,"ol ul")){i=j;break}var n=f;if(g.end)for(;n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);)if(a(n))n=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});else{var o=n.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type")),r=q+1==k[p.tagName].length?0:q+1,s=k[p.tagName][r];for(e(p,s),o.insertBefore(p,n);n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);){if(f=n.nextSibling,p.appendChild(n),!f||domUtils.isTagNode(f,"ol ul")){if(f)for(;(f=f.firstChild)&&"LI"!=f.tagName;);else f=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});break}n=f}d(p,p.tagName.toLowerCase(),s),n=f}return h.fireEvent("contentchange"),c.moveToBookmark(g).select(),!0}if(a(f))return!0;var o=f.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type"));q=q+1==k[p.tagName].length?0:q+1;var s=k[p.tagName][q];if(e(p,s),domUtils.isStartInblock(c))return h.fireEvent("saveScene"),g=c.createBookmark(),o.insertBefore(p,f),p.appendChild(f),d(p,p.tagName.toLowerCase(),s),h.fireEvent("contentchange"),c.moveToBookmark(g).select(!0),!0}}),h.commands.insertorderedlist=h.commands.insertunorderedlist={execCommand:function(a,c){c||(c="insertorderedlist"==a.toLowerCase()?"decimal":"disc");var f=this,h=this.selection.getRange(),j=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},k="insertorderedlist"==a.toLowerCase()?"ol":"ul",l=f.document.createDocumentFragment();h.adjustmentBoundary().shrinkBoundary();var m,n,o,p,q=h.createBookmark(!0),r=g(f.document.getElementById(q.start)),s=0,t=g(f.document.getElementById(q.end)),u=0;if(r||t){if(r&&(m=r.parentNode),q.end||(t=r),t&&(n=t.parentNode),m===n){for(;r!==t;){if(p=r,r=r.nextSibling,!domUtils.isBlockElm(p.firstChild)){for(var v=f.document.createElement("p");p.firstChild;)v.appendChild(p.firstChild);p.appendChild(v)}l.appendChild(p)}if(p=f.document.createElement("span"),m.insertBefore(p,t),!domUtils.isBlockElm(t.firstChild)){for(v=f.document.createElement("p");t.firstChild;)v.appendChild(t.firstChild);t.appendChild(v)}l.appendChild(t),domUtils.breakParent(p,m),domUtils.isEmptyNode(p.previousSibling)&&domUtils.remove(p.previousSibling),domUtils.isEmptyNode(p.nextSibling)&&domUtils.remove(p.nextSibling);var w=b(m)||domUtils.getComputedStyle(m,"list-style-type")||("insertorderedlist"==a.toLowerCase()?"decimal":"disc");if(m.tagName.toLowerCase()==k&&w==c){for(var x,y=0,z=f.document.createDocumentFragment();x=l.firstChild;)if(domUtils.isTagNode(x,"ol ul"))z.appendChild(x);else for(;x.firstChild;)z.appendChild(x.firstChild),domUtils.remove(x);p.parentNode.insertBefore(z,p)}else o=f.document.createElement(k),e(o,c),o.appendChild(l),p.parentNode.insertBefore(o,p);return domUtils.remove(p),o&&d(o,k,c),void h.moveToBookmark(q).select()}if(r){for(;r;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(var A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);if(B)l.appendChild(A);else{var C=f.document.createElement("p");C.appendChild(A),l.appendChild(C)}domUtils.remove(r)}r=p}m.parentNode.insertBefore(l,m.nextSibling),domUtils.isEmptyNode(m)?(h.setStartBefore(m),domUtils.remove(m)):h.setStartAfter(m),s=1}if(t&&domUtils.inDoc(n,f.document)){for(r=n.firstChild;r&&r!==t;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);B?l.appendChild(A):(C=f.document.createElement("p"),C.appendChild(A),l.appendChild(C)),domUtils.remove(r)}r=p}var D=domUtils.createElement(f.document,"div",{tmpDiv:1});domUtils.moveChild(t,D),l.appendChild(D),domUtils.remove(t),n.parentNode.insertBefore(l,n),h.setEndBefore(n),domUtils.isEmptyNode(n)&&domUtils.remove(n),u=1}}s||h.setStartBefore(f.document.getElementById(q.start)),q.end&&!u&&h.setEndAfter(f.document.getElementById(q.end)),h.enlarge(!0,function(a){return i[a.tagName]}),l=f.document.createDocumentFragment();for(var E,F=h.createBookmark(),G=domUtils.getNextDomNode(F.start,!1,j),H=h.cloneRange(),I=domUtils.isBlockElm;G&&G!==F.end&&domUtils.getPosition(G,F.end)&domUtils.POSITION_PRECEDING;)if(3==G.nodeType||dtd.li[G.tagName]){if(1==G.nodeType&&dtd.$list[G.tagName]){for(;G.firstChild;)l.appendChild(G.firstChild);E=domUtils.getNextDomNode(G,!1,j),domUtils.remove(G),G=E;continue}for(E=G,H.setStartBefore(G);G&&G!==F.end&&(!I(G)||domUtils.isBookmarkNode(G));)E=G,G=domUtils.getNextDomNode(G,!1,null,function(a){return!i[a.tagName]});G&&I(G)&&(p=domUtils.getNextDomNode(E,!1,j),p&&domUtils.isBookmarkNode(p)&&(G=domUtils.getNextDomNode(p,!1,j),E=p)),H.setEndAfter(E),G=domUtils.getNextDomNode(E,!1,j);var J=h.document.createElement("li");if(J.appendChild(H.extractContents()),domUtils.isEmptyNode(J)){for(var E=h.document.createElement("p");J.firstChild;)E.appendChild(J.firstChild);J.appendChild(E)}l.appendChild(J)}else G=domUtils.getNextDomNode(G,!0,j);h.moveToBookmark(F).collapse(!0),o=f.document.createElement(k),e(o,c),o.appendChild(l),h.insertNode(o),d(o,k,c);for(var x,y=0,K=domUtils.getElementsByTagName(o,"div");x=K[y++];)x.getAttribute("tmpDiv")&&domUtils.remove(x,!0);h.moveToBookmark(q).select()},queryCommandState:function(a){for(var b,c="insertorderedlist"==a.toLowerCase()?"ol":"ul",d=this.selection.getStartElementPath(),e=0;b=d[e++];){if("TABLE"==b.nodeName)return 0;if(c==b.nodeName.toLowerCase())return 1}return 0},queryCommandValue:function(a){for(var c,d,e="insertorderedlist"==a.toLowerCase()?"ol":"ul",f=this.selection.getStartElementPath(),g=0;d=f[g++];){if("TABLE"==d.nodeName){c=null;break}if(e==d.nodeName.toLowerCase()){c=d;break}}return c?b(c)||domUtils.getComputedStyle(c,"list-style-type"):null}}},function(){var a={textarea:function(a,b){var c=b.ownerDocument.createElement("textarea");return c.style.cssText="position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;",browser.ie&&browser.version<8&&(c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px",b.onresize=function(){c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px"}),b.appendChild(c),{setContent:function(a){c.value=a},getContent:function(){return c.value},select:function(){var a;browser.ie?(a=c.createTextRange(),a.collapse(!0),a.select()):(c.setSelectionRange(0,0),c.focus())},dispose:function(){b.removeChild(c),b.onresize=null,c=null,b=null}}},codemirror:function(a,b){var c=window.CodeMirror(b,{mode:"text/html",tabMode:"indent",lineNumbers:!0,lineWrapping:!0}),d=c.getWrapperElement();return d.style.cssText='position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;',c.getScrollerElement().style.cssText="position:absolute;left:0;top:0;width:100%;height:100%;",c.refresh(),{getCodeMirror:function(){return c},setContent:function(a){c.setValue(a)},getContent:function(){return c.getValue()},select:function(){c.focus()},dispose:function(){b.removeChild(d),d=null,c=null}}}};UE.plugins.source=function(){function b(b){return a["codemirror"==f.sourceEditor&&window.CodeMirror?"codemirror":"textarea"](e,b)}var c,d,e=this,f=this.options,g=!1;f.sourceEditor=browser.ie?"textarea":f.sourceEditor||"codemirror",e.setOpt({sourceEditorFirst:!1});var h,i,j;e.commands.source={execCommand:function(){if(g=!g){j=e.selection.getRange().createAddress(!1,!0),e.undoManger&&e.undoManger.save(!0),browser.gecko&&(e.body.contentEditable=!1),h=e.iframe.style.cssText,e.iframe.style.cssText+="position:absolute;left:-32768px;top:-32768px;",e.fireEvent("beforegetcontent");var a=UE.htmlparser(e.body.innerHTML);e.filterOutputRule(a),a.traversal(function(a){if("element"==a.type)switch(a.tagName){case"td":case"th":case"caption":a.children&&1==a.children.length&&"br"==a.firstChild().tagName&&a.removeChild(a.firstChild());break;case"pre":a.innerText(a.innerText().replace(/&nbsp;/g," "))}}),e.fireEvent("aftergetcontent");var f=a.toHtml(!0);c=b(e.iframe.parentNode),c.setContent(f),d=e.setContent,e.setContent=function(a){var b=UE.htmlparser(a);e.filterInputRule(b),a=b.toHtml(),c.setContent(a)},setTimeout(function(){c.select(),e.addListener("fullscreenchanged",function(){try{c.getCodeMirror().refresh()}catch(a){}})}),i=e.getContent,e.getContent=function(){return c.getContent()||"<p>"+(browser.ie?"":"<br/>")+"</p>"}}else{e.iframe.style.cssText=h;var k=c.getContent()||"<p>"+(browser.ie?"":"<br/>")+"</p>";k=k.replace(new RegExp("[\\r\\t\\n ]*</?(\\w+)\\s*(?:[^>]*)>","g"),function(a,b){return b&&!dtd.$inlineWithA[b.toLowerCase()]?a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g,""):a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g,"")}),e.setContent=d,e.setContent(k),c.dispose(),c=null,e.getContent=i;var l=e.body.firstChild;if(l||(e.body.innerHTML="<p>"+(browser.ie?"":"<br/>")+"</p>",l=e.body.firstChild),e.undoManger&&e.undoManger.save(!0),browser.gecko){var m=document.createElement("input");m.style.cssText="position:absolute;left:0;top:-32768px",document.body.appendChild(m),e.body.contentEditable=!1,setTimeout(function(){domUtils.setViewportOffset(m,{left:-32768,top:0}),m.focus(),setTimeout(function(){e.body.contentEditable=!0,e.selection.getRange().moveToAddress(j).select(!0),domUtils.remove(m)})})}else try{e.selection.getRange().moveToAddress(j).select(!0)}catch(n){}}this.fireEvent("sourcemodechanged",g)},queryCommandState:function(){return 0|g},notNeedUndo:1};var k=e.queryCommandState;e.queryCommandState=function(a){return a=a.toLowerCase(),g?a in{source:1,fullscreen:1}?1:-1:k.apply(this,arguments)},"codemirror"==f.sourceEditor&&e.addListener("ready",function(){utils.loadFile(document,{src:f.codeMirrorJsUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.js",tag:"script",type:"text/javascript",defer:"defer"},function(){f.sourceEditorFirst&&setTimeout(function(){e.execCommand("source")},0)}),utils.loadFile(document,{tag:"link",rel:"stylesheet",type:"text/css",href:f.codeMirrorCssUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.css"})})}}(),UE.plugins.enterkey=function(){var a,b=this,c=b.options.enterTag;b.addListener("keyup",function(c,d){var e=d.keyCode||d.which;if(13==e){var f,g=b.selection.getRange(),h=g.startContainer;if(browser.ie)b.fireEvent("saveScene",!0,!0);else{if(/h\d/i.test(a)){if(browser.gecko){var i=domUtils.findParentByTagName(h,["h1","h2","h3","h4","h5","h6","blockquote","caption","table"],!0);i||(b.document.execCommand("formatBlock",!1,"<p>"),f=1)}else if(1==h.nodeType){var j,k=b.document.createTextNode("");if(g.insertNode(k),j=domUtils.findParentByTagName(k,"div",!0)){for(var l=b.document.createElement("p");j.firstChild;)l.appendChild(j.firstChild);j.parentNode.insertBefore(l,j),domUtils.remove(j),g.setStartBefore(k).setCursor(),f=1}domUtils.remove(k)}b.undoManger&&f&&b.undoManger.save()}browser.opera&&g.select()}}}),b.addListener("keydown",function(d,e){var f=e.keyCode||e.which;if(13==f){if(b.fireEvent("beforeenterkeydown"))return void domUtils.preventDefault(e);b.fireEvent("saveScene",!0,!0),a="";var g=b.selection.getRange();if(!g.collapsed){var h=g.startContainer,i=g.endContainer,j=domUtils.findParentByTagName(h,"td",!0),k=domUtils.findParentByTagName(i,"td",!0);if(j&&k&&j!==k||!j&&k||j&&!k)return void(e.preventDefault?e.preventDefault():e.returnValue=!1)}if("p"==c)browser.ie||(h=domUtils.findParentByTagName(g.startContainer,["ol","ul","p","h1","h2","h3","h4","h5","h6","blockquote","caption"],!0),h||browser.opera?(a=h.tagName,"p"==h.tagName.toLowerCase()&&browser.gecko&&domUtils.removeDirtyAttr(h)):(b.document.execCommand("formatBlock",!1,"<p>"),browser.gecko&&(g=b.selection.getRange(),h=domUtils.findParentByTagName(g.startContainer,"p",!0),h&&domUtils.removeDirtyAttr(h))));else if(e.preventDefault?e.preventDefault():e.returnValue=!1,g.collapsed){m=g.document.createElement("br"),g.insertNode(m);var l=m.parentNode;l.lastChild===m?(m.parentNode.insertBefore(m.cloneNode(!0),m),g.setStartBefore(m)):g.setStartAfter(m),g.setCursor()}else if(g.deleteContents(),h=g.startContainer,1==h.nodeType&&(h=h.childNodes[g.startOffset])){for(;1==h.nodeType;){if(dtd.$empty[h.tagName])return g.setStartBefore(h).setCursor(),b.undoManger&&b.undoManger.save(),!1;if(!h.firstChild){var m=g.document.createElement("br");return h.appendChild(m),g.setStart(h,0).setCursor(),b.undoManger&&b.undoManger.save(),!1}h=h.firstChild}h===g.startContainer.childNodes[g.startOffset]?(m=g.document.createElement("br"),g.insertNode(m).setCursor()):g.setStart(h,0).setCursor()}else m=g.document.createElement("br"),g.insertNode(m).setStartAfter(m).setCursor()}})},UE.plugins.keystrokes=function(){var a=this,b=!0;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which,f=a.selection.getRange();if(!f.collapsed&&!(d.ctrlKey||d.shiftKey||d.altKey||d.metaKey)&&(e>=65&&e<=90||e>=48&&e<=57||e>=96&&e<=111||{13:1,8:1,46:1}[e])){var g=f.startContainer;if(domUtils.isFillChar(g)&&f.setStartBefore(g),g=f.endContainer,domUtils.isFillChar(g)&&f.setEndAfter(g),f.txtToElmBoundary(),f.endContainer&&1==f.endContainer.nodeType&&(g=f.endContainer.childNodes[f.endOffset],g&&domUtils.isBr(g)&&f.setEndAfter(g)),0==f.startOffset&&(g=f.startContainer,domUtils.isBoundaryNode(g,"firstChild")&&(g=f.endContainer,f.endOffset==(3==g.nodeType?g.nodeValue.length:g.childNodes.length)&&domUtils.isBoundaryNode(g,"lastChild"))))return a.fireEvent("saveScene"),a.body.innerHTML="<p>"+(browser.ie?"":"<br/>")+"</p>",f.setStart(a.body.firstChild,0).setCursor(!1,!0),void a._selectionChange()}if(e==keymap.Backspace){if(f=a.selection.getRange(),b=f.collapsed,a.fireEvent("delkeydown",d))return;var h,i;if(f.collapsed&&f.inFillChar()&&(h=f.startContainer,domUtils.isFillChar(h)?(f.setStartBefore(h).shrinkBoundary(!0).collapse(!0),domUtils.remove(h)):(h.nodeValue=h.nodeValue.replace(new RegExp("^"+domUtils.fillChar),""),f.startOffset--,f.collapse(!0).select(!0))),h=f.getClosedNode())return a.fireEvent("saveScene"),f.setStartBefore(h),domUtils.remove(h),f.setCursor(),a.fireEvent("saveScene"),void domUtils.preventDefault(d);if(!browser.ie&&(h=domUtils.findParentByTagName(f.startContainer,"table",!0),i=domUtils.findParentByTagName(f.endContainer,"table",!0),h&&!i||!h&&i||h!==i))return void d.preventDefault()}if(e==keymap.Tab){var j={ol:1,ul:1,table:1};if(a.fireEvent("tabkeydown",d))return void domUtils.preventDefault(d);var k=a.selection.getRange();a.fireEvent("saveScene");for(var l=0,m="",n=a.options.tabSize||4,o=a.options.tabNode||"&nbsp;";l<n;l++)m+=o;var p=a.document.createElement("span");if(p.innerHTML=m+domUtils.fillChar,k.collapsed)k.insertNode(p.cloneNode(!0).firstChild).setCursor(!0);else{var q=function(a){return domUtils.isBlockElm(a)&&!j[a.tagName.toLowerCase()]};if(h=domUtils.findParent(k.startContainer,q,!0),i=domUtils.findParent(k.endContainer,q,!0),h&&i&&h===i)k.deleteContents(),k.insertNode(p.cloneNode(!0).firstChild).setCursor(!0);else{var r=k.createBookmark();k.enlarge(!0);for(var s=k.createBookmark(),t=domUtils.getNextDomNode(s.start,!1,q);t&&!(domUtils.getPosition(t,s.end)&domUtils.POSITION_FOLLOWING);)t.insertBefore(p.cloneNode(!0).firstChild,t.firstChild),t=domUtils.getNextDomNode(t,!1,q);k.moveToBookmark(s).moveToBookmark(r).select()}}domUtils.preventDefault(d)}if(browser.gecko&&46==e&&(k=a.selection.getRange(),k.collapsed&&(h=k.startContainer,domUtils.isEmptyBlock(h)))){for(var u=h.parentNode;1==domUtils.getChildCount(u)&&!domUtils.isBody(u);)h=u,u=u.parentNode;return void(h===u.lastChild&&d.preventDefault())}}),a.addListener("keyup",function(a,c){var d,e=c.keyCode||c.which,f=this;if(e==keymap.Backspace){if(f.fireEvent("delkeyup"))return;if(d=f.selection.getRange(),d.collapsed){var g,h=["h1","h2","h3","h4","h5","h6"];if((g=domUtils.findParentByTagName(d.startContainer,h,!0))&&domUtils.isEmptyBlock(g)){var i=g.previousSibling;if(i&&"TABLE"!=i.nodeName)return domUtils.remove(g),void d.setStartAtLast(i).setCursor(!1,!0);var j=g.nextSibling;if(j&&"TABLE"!=j.nodeName)return domUtils.remove(g),void d.setStartAtFirst(j).setCursor(!1,!0)}if(domUtils.isBody(d.startContainer)){var g=domUtils.createElement(f.document,"p",{innerHTML:browser.ie?domUtils.fillChar:"<br/>"});d.insertNode(g).setStart(g,0).setCursor(!1,!0)}}if(!b&&(3==d.startContainer.nodeType||1==d.startContainer.nodeType&&domUtils.isEmptyBlock(d.startContainer)))if(browser.ie){var k=d.document.createElement("span");d.insertNode(k).setStartBefore(k).collapse(!0),d.select(),domUtils.remove(k)}else d.select()}})},UE.plugins.fiximgclick=function(){function a(){this.editor=null,this.resizer=null,this.cover=null,this.doc=document,this.prePos={x:0,y:0},this.startPos={x:0,y:0}}var b=!1;return function(){var c=[[0,0,-1,-1],[0,0,0,-1],[0,0,1,-1],[0,0,-1,0],[0,0,1,0],[0,0,-1,1],[0,0,0,1],[0,0,1,1]];a.prototype={init:function(a){var b=this;b.editor=a,b.startPos=this.prePos={x:0,y:0},b.dragId=-1;var c=[],d=b.cover=document.createElement("div"),e=b.resizer=document.createElement("div");for(d.id=b.editor.ui.id+"_imagescale_cover",d.style.cssText="position:absolute;display:none;z-index:"+b.editor.options.zIndex+";filter:alpha(opacity=0); opacity:0;background:#CCC;",domUtils.on(d,"mousedown click",function(){b.hide()}),i=0;i<8;i++)c.push('<span class="edui-editor-imagescale-hand'+i+'"></span>');e.id=b.editor.ui.id+"_imagescale",e.className="edui-editor-imagescale",e.innerHTML=c.join(""),e.style.cssText+=";display:none;border:1px solid #3b77ff;z-index:"+b.editor.options.zIndex+";",b.editor.ui.getDom().appendChild(d),b.editor.ui.getDom().appendChild(e),b.initStyle(),b.initEvents()},initStyle:function(){utils.cssRule("imagescale",".edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}")},initEvents:function(){var a=this;a.startPos.x=a.startPos.y=0,a.isDraging=!1},_eventHandler:function(a){var c=this;switch(a.type){case"mousedown":var d,d=a.target||a.srcElement;d.className.indexOf("edui-editor-imagescale-hand")!=-1&&c.dragId==-1&&(c.dragId=d.className.slice(-1),c.startPos.x=c.prePos.x=a.clientX,c.startPos.y=c.prePos.y=a.clientY,domUtils.on(c.doc,"mousemove",c.proxy(c._eventHandler,c)));break;case"mousemove":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.prePos.x=a.clientX,c.prePos.y=a.clientY,b=!0,c.updateTargetElement());break;case"mouseup":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.updateTargetElement(),c.target.parentNode&&c.attachTo(c.target),c.dragId=-1),domUtils.un(c.doc,"mousemove",c.proxy(c._eventHandler,c)),b&&(b=!1,c.editor.fireEvent("contentchange"))}},updateTargetElement:function(){var a=this;domUtils.setStyles(a.target,{width:a.resizer.style.width,height:a.resizer.style.height}),a.target.width=parseInt(a.resizer.style.width),a.target.height=parseInt(a.resizer.style.height),a.attachTo(a.target)},updateContainerStyle:function(a,b){var d,e=this,f=e.resizer;0!=c[a][0]&&(d=parseInt(f.style.left)+b.x,f.style.left=e._validScaledProp("left",d)+"px"),0!=c[a][1]&&(d=parseInt(f.style.top)+b.y,f.style.top=e._validScaledProp("top",d)+"px"),0!=c[a][2]&&(d=f.clientWidth+c[a][2]*b.x,f.style.width=e._validScaledProp("width",d)+"px"),0!=c[a][3]&&(d=f.clientHeight+c[a][3]*b.y,f.style.height=e._validScaledProp("height",d)+"px")},_validScaledProp:function(a,b){var c=this.resizer,d=document;switch(b=isNaN(b)?0:b,a){case"left":return b<0?0:b+c.clientWidth>d.clientWidth?d.clientWidth-c.clientWidth:b;case"top":return b<0?0:b+c.clientHeight>d.clientHeight?d.clientHeight-c.clientHeight:b;case"width":return b<=0?1:b+c.offsetLeft>d.clientWidth?d.clientWidth-c.offsetLeft:b;case"height":return b<=0?1:b+c.offsetTop>d.clientHeight?d.clientHeight-c.offsetTop:b}},hideCover:function(){this.cover.style.display="none"},showCover:function(){var a=this,b=domUtils.getXY(a.editor.ui.getDom()),c=domUtils.getXY(a.editor.iframe);domUtils.setStyles(a.cover,{width:a.editor.iframe.offsetWidth+"px",height:a.editor.iframe.offsetHeight+"px",top:c.y-b.y+"px",left:c.x-b.x+"px",position:"absolute",display:""})},show:function(a){var b=this;b.resizer.style.display="block",a&&b.attachTo(a),domUtils.on(this.resizer,"mousedown",b.proxy(b._eventHandler,b)),domUtils.on(b.doc,"mouseup",b.proxy(b._eventHandler,b)),b.showCover(),b.editor.fireEvent("afterscaleshow",b),b.editor.fireEvent("saveScene")},hide:function(){var a=this;a.hideCover(),a.resizer.style.display="none",domUtils.un(a.resizer,"mousedown",a.proxy(a._eventHandler,a)),domUtils.un(a.doc,"mouseup",a.proxy(a._eventHandler,a)),a.editor.fireEvent("afterscalehide",a)},proxy:function(a,b){return function(c){return a.apply(b||this,arguments)}},attachTo:function(a){var b=this,c=b.target=a,d=this.resizer,e=domUtils.getXY(c),f=domUtils.getXY(b.editor.iframe),g=domUtils.getXY(d.parentNode);domUtils.setStyles(d,{width:c.width+"px",height:c.height+"px",left:f.x+e.x-b.editor.document.body.scrollLeft-g.x-parseInt(d.style.borderLeftWidth)+"px",top:f.y+e.y-b.editor.document.body.scrollTop-g.y-parseInt(d.style.borderTopWidth)+"px"})}}}(),function(){var b,c=this;c.setOpt("imageScaleEnabled",!0),!browser.ie&&c.options.imageScaleEnabled&&c.addListener("click",function(d,e){var f=c.selection.getRange(),g=f.getClosedNode();if(g&&"IMG"==g.tagName&&"false"!=c.body.contentEditable){if(g.className.indexOf("edui-faked-music")!=-1||g.getAttribute("anchorname")||domUtils.hasClass(g,"loadingclass")||domUtils.hasClass(g,"loaderrorclass"))return;if(!b){b=new a,b.init(c),c.ui.getDom().appendChild(b.resizer);var h,i=function(a){b.hide(),b.target&&c.selection.getRange().selectNode(b.target).select()},j=function(a){var b=a.target||a.srcElement;!b||void 0!==b.className&&b.className.indexOf("edui-editor-imagescale")!=-1||i(a)};c.addListener("afterscaleshow",function(a){c.addListener("beforekeydown",i),c.addListener("beforemousedown",j),domUtils.on(document,"keydown",i),domUtils.on(document,"mousedown",j),c.selection.getNative().removeAllRanges()}),c.addListener("afterscalehide",function(a){c.removeListener("beforekeydown",i),c.removeListener("beforemousedown",j),domUtils.un(document,"keydown",i),domUtils.un(document,"mousedown",j);var d=b.target;d.parentNode&&c.selection.getRange().selectNode(d).select()}),domUtils.on(b.resizer,"mousedown",function(a){c.selection.getNative().removeAllRanges();var d=a.target||a.srcElement;d&&d.className.indexOf("edui-editor-imagescale-hand")==-1&&(h=setTimeout(function(){b.hide(),b.target&&c.selection.getRange().selectNode(d).select()},200))}),domUtils.on(b.resizer,"mouseup",function(a){var b=a.target||a.srcElement;b&&b.className.indexOf("edui-editor-imagescale-hand")==-1&&clearTimeout(h)})}b.show(g)}else b&&"none"!=b.resizer.style.display&&b.hide()}),browser.webkit&&c.addListener("click",function(a,b){if("IMG"==b.target.tagName&&"false"!=c.body.contentEditable){var d=new dom.Range(c.document);d.selectNode(b.target).select()}})}}(),UE.plugin.register("autolink",function(){var a=0;return browser.ie?{}:{bindEvents:{reset:function(){a=0},keydown:function(a,b){var c=this,d=b.keyCode||b.which;if(32==d||13==d){for(var e,f,g=c.selection.getNative(),h=g.getRangeAt(0).cloneRange(),i=h.startContainer;1==i.nodeType&&h.startOffset>0&&(i=h.startContainer.childNodes[h.startOffset-1]);)h.setStart(i,1==i.nodeType?i.childNodes.length:i.nodeValue.length),h.collapse(!0),i=h.startContainer;do{if(0==h.startOffset){for(i=h.startContainer.previousSibling;i&&1==i.nodeType;)i=i.lastChild;if(!i||domUtils.isFillChar(i))break;e=i.nodeValue.length}else i=h.startContainer,e=h.startOffset;h.setStart(i,e-1),f=h.toString().charCodeAt(0)}while(160!=f&&32!=f);if(h.toString().replace(new RegExp(domUtils.fillChar,"g"),"").match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)){for(;h.toString().length&&!/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(h.toString());)try{h.setStart(h.startContainer,h.startOffset+1)}catch(j){for(var i=h.startContainer;!(next=i.nextSibling);){if(domUtils.isBody(i))return;i=i.parentNode}h.setStart(next,0)}if(domUtils.findParentByTagName(h.startContainer,"a",!0))return;var k,l=c.document.createElement("a"),m=c.document.createTextNode(" ");c.undoManger&&c.undoManger.save(),l.appendChild(h.extractContents()),l.href=l.innerHTML=l.innerHTML.replace(/<[^>]+>/g,""),k=l.getAttribute("href").replace(new RegExp(domUtils.fillChar,"g"),""),k=/^(?:https?:\/\/)/gi.test(k)?k:"http://"+k,l.setAttribute("_src",utils.html(k)),l.href=utils.html(k),h.insertNode(l),l.parentNode.insertBefore(m,l.nextSibling),h.setStart(m,0),h.collapse(!0),g.removeAllRanges(),g.addRange(h),c.undoManger&&c.undoManger.save()}}}}}},function(){function a(a){if(3==a.nodeType)return null;if("A"==a.nodeName)return a;for(var b=a.lastChild;b;){if("A"==b.nodeName)return b;if(3==b.nodeType){if(domUtils.isWhitespace(b)){b=b.previousSibling;continue}return null}b=b.lastChild}}var b={37:1,38:1,39:1,40:1,13:1,32:1};browser.ie&&this.addListener("keyup",function(c,d){var e=this,f=d.keyCode;if(b[f]){var g=e.selection.getRange(),h=g.startContainer;if(13==f){for(;h&&!domUtils.isBody(h)&&!domUtils.isBlockElm(h);)h=h.parentNode;if(h&&!domUtils.isBody(h)&&"P"==h.nodeName){var i=h.previousSibling;if(i&&1==i.nodeType){var i=a(i);i&&!i.getAttribute("_href")&&domUtils.remove(i,!0)}}}else if(32==f)3==h.nodeType&&/^\s$/.test(h.nodeValue)&&(h=h.previousSibling,h&&"A"==h.nodeName&&!h.getAttribute("_href")&&domUtils.remove(h,!0));else if(h=domUtils.findParentByTagName(h,"a",!0),h&&!h.getAttribute("_href")){var j=g.createBookmark();domUtils.remove(h,!0),g.moveToBookmark(j).select(!0)}}})}),UE.plugins.autoheight=function(){function a(){var a=this;clearTimeout(e),f||(!a.queryCommandState||a.queryCommandState&&1!=a.queryCommandState("source"))&&(e=setTimeout(function(){for(var b=a.body.lastChild;b&&1!=b.nodeType;)b=b.previousSibling;b&&1==b.nodeType&&(b.style.clear="both",d=Math.max(domUtils.getXY(b).y+b.offsetHeight+25,Math.max(h.minFrameHeight,h.initialFrameHeight)),d!=g&&(d!==parseInt(a.iframe.parentNode.style.height)&&(a.iframe.parentNode.style.height=d+"px"),a.body.style.height=d+"px",g=d),domUtils.removeStyle(b,"clear"))},50))}var b=this;if(b.autoHeightEnabled=b.options.autoHeightEnabled!==!1,b.autoHeightEnabled){var c,d,e,f,g=0,h=b.options;b.addListener("fullscreenchanged",function(a,b){f=b}),b.addListener("destroy",function(){b.removeListener("contentchange afterinserthtml keyup mouseup",a)}),b.enableAutoHeight=function(){var b=this;if(b.autoHeightEnabled){var d=b.document;b.autoHeightEnabled=!0,c=d.body.style.overflowY,d.body.style.overflowY="hidden",b.addListener("contentchange afterinserthtml keyup mouseup",a),setTimeout(function(){a.call(b)},browser.gecko?100:0),b.fireEvent("autoheightchanged",b.autoHeightEnabled)}},b.disableAutoHeight=function(){b.body.style.overflowY=c||"",b.removeListener("contentchange",a),b.removeListener("keyup",a),b.removeListener("mouseup",a),b.autoHeightEnabled=!1,b.fireEvent("autoheightchanged",b.autoHeightEnabled)},b.on("setHeight",function(){b.disableAutoHeight()}),b.addListener("ready",function(){b.enableAutoHeight();var c;domUtils.on(browser.ie?b.body:b.document,browser.webkit?"dragover":"drop",function(){
-clearTimeout(c),c=setTimeout(function(){a.call(b)},100)});var d;window.onscroll=function(){null===d?d=this.scrollY:0==this.scrollY&&0!=d&&(b.window.scrollTo(0,0),d=null)}})}},UE.plugins.autofloat=function(){function a(){return UE.ui?1:(alert(g.autofloatMsg),0)}function b(){var a=document.body.style;a.backgroundImage='url("about:blank")',a.backgroundAttachment="fixed"}function c(){var a=domUtils.getXY(k),b=domUtils.getComputedStyle(k,"position"),c=domUtils.getComputedStyle(k,"left");k.style.width=k.offsetWidth+"px",k.style.zIndex=1*f.options.zIndex+1,k.parentNode.insertBefore(q,k),o||p&&browser.ie?("absolute"!=k.style.position&&(k.style.position="absolute"),k.style.top=(document.body.scrollTop||document.documentElement.scrollTop)-l+i+"px"):(browser.ie7Compat&&r&&(r=!1,k.style.left=domUtils.getXY(k).x-document.documentElement.getBoundingClientRect().left+2+"px"),"fixed"!=k.style.position&&(k.style.position="fixed",k.style.top=i+"px",("absolute"==b||"relative"==b)&&parseFloat(c)&&(k.style.left=a.x+"px")))}function d(){r=!0,q.parentNode&&q.parentNode.removeChild(q),k.style.cssText=j}function e(){var a=m(f.container),b=f.options.toolbarTopOffset||0;a.top<0&&a.bottom-k.offsetHeight>b?c():d()}var f=this,g=f.getLang();f.setOpt({topOffset:0});var h=f.options.autoFloatEnabled!==!1,i=f.options.topOffset;if(h){var j,k,l,m,n=UE.ui.uiUtils,o=browser.ie&&browser.version<=6,p=browser.quirks,q=document.createElement("div"),r=!0,s=utils.defer(function(){e()},browser.ie?200:100,!0);f.addListener("destroy",function(){domUtils.un(window,["scroll","resize"],e),f.removeListener("keydown",s)}),f.addListener("ready",function(){if(a(f)){if(!f.ui)return;m=n.getClientRect,k=f.ui.getDom("toolbarbox"),l=m(k).top,j=k.style.cssText,q.style.height=k.offsetHeight+"px",o&&b(),domUtils.on(window,["scroll","resize"],e),f.addListener("keydown",s),f.addListener("beforefullscreenchange",function(a,b){b&&d()}),f.addListener("fullscreenchanged",function(a,b){b||e()}),f.addListener("sourcemodechanged",function(a,b){setTimeout(function(){e()},0)}),f.addListener("clearDoc",function(){setTimeout(function(){e()},0)})}})}},UE.plugins.video=function(){function a(a,b,d,e,f,g,h){a=utils.unhtmlForUrl(a),f=utils.unhtml(f),g=utils.unhtml(g).trim(),b=parseInt(b,10)||0,d=parseInt(d,10)||0;var i;switch(h){case"image":i="<img "+(e?'id="'+e+'"':"")+' width="'+b+'" height="'+d+'" _url="'+a+'" class="'+g.replace(/\bvideo-js\b/,"")+'" src="'+c.options.UEDITOR_HOME_URL+'themes/default/images/spacer.gif" style="background:url('+c.options.UEDITOR_HOME_URL+"themes/default/images/videologo.gif) no-repeat center center; border:1px solid gray;"+(f?"float:"+f+";":"")+'" />';break;case"embed":i='<embed type="application/x-shockwave-flash" class="'+g+'" pluginspage="http://www.macromedia.com/go/getflashplayer" src="'+utils.html(a)+'" width="'+b+'" height="'+d+'"'+(f?' style="float:'+f+'"':"")+' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >';break;case"video":var j=a.substr(a.lastIndexOf(".")+1);"ogv"==j&&(j="ogg"),i="<video"+(e?' id="'+e+'"':"")+' class="'+g+' video-js" '+(f?' style="float:'+f+'"':"")+' controls preload="none" width="'+b+'" height="'+d+'" src="'+a+'" data-setup="{}"><source src="'+a+'" type="video/'+j+'" /></video>'}return i}function b(b,c){utils.each(b.getNodesByTagName(c?"img":"embed video"),function(b){var d=b.getAttr("class");if(d&&d.indexOf("edui-faked-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"embed":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}if(d&&d.indexOf("edui-upload-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"video":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}})}var c=this;c.addOutputRule(function(a){b(a,!0)}),c.addInputRule(function(a){b(a)}),c.commands.insertvideo={execCommand:function(b,d,e){d=utils.isArray(d)?d:[d];for(var f,g,h=[],i="tmpVedio",j=0,k=d.length;j<k;j++)g=d[j],f="upload"==e?"edui-upload-video video-js vjs-default-skin":"edui-faked-video",h.push(a(g.url,g.width||420,g.height||280,i+j,null,f,"image"));c.execCommand("inserthtml",h.join(""),!0);for(var l=this.selection.getRange(),j=0,k=d.length;j<k;j++){var m=this.document.getElementById("tmpVedio"+j);domUtils.removeAttributes(m,"id"),l.selectNode(m).select(),c.execCommand("imagefloat",d[j].align)}},queryCommandState:function(){var a=c.selection.getRange().getClosedNode(),b=a&&("edui-faked-video"==a.className||a.className.indexOf("edui-upload-video")!=-1);return b?1:0}}},function(){function a(a){}var b=UE.UETable=function(a){this.table=a,this.indexTable=[],this.selectedTds=[],this.cellsRange={},this.update(a)};b.removeSelectedClass=function(a){utils.each(a,function(a){domUtils.removeClasses(a,"selectTdClass")})},b.addSelectedClass=function(a){utils.each(a,function(a){domUtils.addClass(a,"selectTdClass")})},b.isEmptyBlock=function(a){var b=new RegExp(domUtils.fillChar,"g");if(a[browser.ie?"innerText":"textContent"].replace(/^\s*$/,"").replace(b,"").length>0)return 0;for(var c in dtd.$isNotEmpty)if(dtd.$isNotEmpty.hasOwnProperty(c)&&a.getElementsByTagName(c).length)return 0;return 1},b.getWidth=function(a){return a?parseInt(domUtils.getComputedStyle(a,"width"),10):0},b.getTableCellAlignState=function(a){!utils.isArray(a)&&(a=[a]);var b={},c=["align","valign"],d=null,e=!0;return utils.each(a,function(a){return utils.each(c,function(c){if(d=a.getAttribute(c),!b[c]&&d)b[c]=d;else if(!b[c]||d!==b[c])return e=!1,!1}),e}),e?b:null},b.getTableItemsByRange=function(a){var b=a.selection.getStart();b&&b.id&&0===b.id.indexOf("_baidu_bookmark_start_")&&b.nextSibling&&(b=b.nextSibling);var c=b&&domUtils.findParentByTagName(b,["td","th"],!0),d=c&&c.parentNode,e=b&&domUtils.findParentByTagName(b,"caption",!0),f=e?e.parentNode:d&&d.parentNode.parentNode;return{cell:c,tr:d,table:f,caption:e}},b.getUETableBySelected=function(a){var c=b.getTableItemsByRange(a).table;return c&&c.ueTable&&c.ueTable.selectedTds.length?c.ueTable:null},b.getDefaultValue=function(a,b){var c,d,e,f,g={thin:"0px",medium:"1px",thick:"2px"};if(b)return h=b.getElementsByTagName("td")[0],f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),{tableBorder:c,tdPadding:d,tdBorder:e};b=a.document.createElement("table"),b.insertRow(0).insertCell(0).innerHTML="xxx",a.body.appendChild(b);var h=b.getElementsByTagName("td")[0];return f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),domUtils.remove(b),{tableBorder:c,tdPadding:d,tdBorder:e}},b.getUETable=function(a){var c=a.tagName.toLowerCase();return a="td"==c||"th"==c||"caption"==c?domUtils.findParentByTagName(a,"table",!0):a,a.ueTable||(a.ueTable=new b(a)),a.ueTable},b.cloneCell=function(a,b,c){if(!a||utils.isString(a))return this.table.ownerDocument.createElement(a||"td");var d=domUtils.hasClass(a,"selectTdClass");d&&domUtils.removeClasses(a,"selectTdClass");var e=a.cloneNode(!0);return b&&(e.rowSpan=e.colSpan=1),!c&&domUtils.removeAttributes(e,"width height"),!c&&domUtils.removeAttributes(e,"style"),e.style.borderLeftStyle="",e.style.borderTopStyle="",e.style.borderLeftColor=a.style.borderRightColor,e.style.borderLeftWidth=a.style.borderRightWidth,e.style.borderTopColor=a.style.borderBottomColor,e.style.borderTopWidth=a.style.borderBottomWidth,d&&domUtils.addClass(a,"selectTdClass"),e},b.prototype={getMaxRows:function(){for(var a,b=this.table.rows,c=1,d=0;a=b[d];d++){for(var e,f=1,g=0;e=a.cells[g++];)f=Math.max(e.rowSpan||1,f);c=Math.max(f+d,c)}return c},getMaxCols:function(){for(var a,b=this.table.rows,c=0,d={},e=0;a=b[e];e++){for(var f,g=0,h=0;f=a.cells[h++];)if(g+=f.colSpan||1,f.rowSpan&&f.rowSpan>1)for(var i=1;i<f.rowSpan;i++)d["row_"+(e+i)]?d["row_"+(e+i)]++:d["row_"+(e+i)]=f.colSpan||1;g+=d["row_"+e]||0,c=Math.max(g,c)}return c},getCellColIndex:function(a){},getHSideCell:function(b,c){try{var d,e,f=this.getCellInfo(b),g=this.selectedTds.length,h=this.cellsRange;return!c&&(g?!h.beginColIndex:!f.colIndex)||c&&(g?h.endColIndex==this.colsNum-1:f.colIndex==this.colsNum-1)?null:(d=g?h.beginRowIndex:f.rowIndex,e=c?g?h.endColIndex+1:f.colIndex+1:g?h.beginColIndex-1:f.colIndex<1?0:f.colIndex-1,this.getCell(this.indexTable[d][e].rowIndex,this.indexTable[d][e].cellIndex))}catch(i){a(i)}},getTabNextCell:function(a,b){var c,d=this.getCellInfo(a),e=b||d.rowIndex,f=d.colIndex+1+(d.colSpan-1);try{c=this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex)}catch(g){try{e=1*e+1,f=0,c=this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex)}catch(g){}}return c},getVSideCell:function(b,c,d){try{var e,f,g=this.getCellInfo(b),h=this.selectedTds.length&&!d,i=this.cellsRange;return!c&&0==g.rowIndex||c&&(h?i.endRowIndex==this.rowsNum-1:g.rowIndex+g.rowSpan>this.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getSameEndPosCells:function(b,c){try{for(var d="x"===c.toLowerCase(),e=domUtils.getXY(b)[d?"x":"y"]+b["offset"+(d?"Width":"Height")],f=this.table.rows,g=null,h=[],i=0;i<this.rowsNum;i++){g=f[i].cells;for(var j,k=0;j=g[k++];){var l=domUtils.getXY(j)[d?"x":"y"]+j["offset"+(d?"Width":"Height")];if(l>e&&d)break;if((b==j||e==l)&&(1==j[d?"colSpan":"rowSpan"]&&h.push(j),d))break}}return h}catch(m){a(m)}},setCellContent:function(a,b){a.innerHTML=b||(browser.ie?domUtils.fillChar:"<br />")},cloneCell:b.cloneCell,getSameStartPosXCells:function(b){try{for(var c,d=domUtils.getXY(b).x+b.offsetWidth,e=this.table.rows,f=[],g=0;g<this.rowsNum;g++){c=e[g].cells;for(var h,i=0;h=c[i++];){var j=domUtils.getXY(h).x;if(j>d)break;if(j==d&&1==h.colSpan){f.push(h);break}}}return f}catch(k){a(k)}},update:function(a){this.table=a||this.table,this.selectedTds=[],this.cellsRange={},this.indexTable=[];for(var b=this.table.rows,c=this.getMaxRows(),d=c-b.length,e=this.getMaxCols();d--;)this.table.insertRow(b.length);this.rowsNum=c,this.colsNum=e;for(var f=0,g=b.length;f<g;f++)this.indexTable[f]=new Array(e);for(var h,i=0;h=b[i];i++)for(var j,k=0,l=h.cells;j=l[k];k++){j.rowSpan>c&&(j.rowSpan=c);for(var m=k,n=j.rowSpan||1,o=j.colSpan||1;this.indexTable[i][m];)m++;for(var p=0;p<n;p++)for(var q=0;q<o;q++)this.indexTable[i+p][m+q]={rowIndex:i,cellIndex:k,colIndex:m,rowSpan:n,colSpan:o}}for(p=0;p<c;p++)for(q=0;q<e;q++)void 0===this.indexTable[p][q]&&(h=b[p],j=h.cells[h.cells.length-1],j=j?j.cloneNode(!0):this.table.ownerDocument.createElement("td"),this.setCellContent(j),1!==j.colSpan&&(j.colSpan=1),1!==j.rowSpan&&(j.rowSpan=1),h.appendChild(j),this.indexTable[p][q]={rowIndex:p,cellIndex:j.cellIndex,colIndex:q,rowSpan:1,colSpan:1});var r=domUtils.getElementsByTagName(this.table,"td"),s=[];if(utils.each(r,function(a){domUtils.hasClass(a,"selectTdClass")&&s.push(a)}),s.length){var t=s[0],u=s[s.length-1],v=this.getCellInfo(t),w=this.getCellInfo(u);this.selectedTds=s,this.cellsRange={beginRowIndex:v.rowIndex,beginColIndex:v.colIndex,endRowIndex:w.rowIndex+w.rowSpan-1,endColIndex:w.colIndex+w.colSpan-1}}if(!domUtils.hasClass(this.table.rows[0],"firstRow")){domUtils.addClass(this.table.rows[0],"firstRow");for(var f=1;f<this.table.rows.length;f++)domUtils.removeClasses(this.table.rows[f],"firstRow")}},getCellInfo:function(a){if(a)for(var b=a.cellIndex,c=a.parentNode.rowIndex,d=this.indexTable[c],e=this.colsNum,f=b;f<e;f++){var g=d[f];if(g.rowIndex===c&&g.cellIndex===b)return g}},getCell:function(a,b){return a<this.rowsNum&&this.table.rows[a].cells[b]||null},deleteCell:function(a,b){b="number"==typeof b?b:a.parentNode.rowIndex;var c=this.table.rows[b];c.deleteCell(a.cellIndex)},getCellsRange:function(a,b){function c(a,b,e,f){var g,h,i,j=a,k=b,l=e,m=f;if(a>0)for(h=b;h<f;h++)g=d.indexTable[a][h],i=g.rowIndex,i<a&&(j=Math.min(i,j));if(f<d.colsNum)for(i=a;i<e;i++)g=d.indexTable[i][f],h=g.colIndex+g.colSpan-1,h>f&&(m=Math.max(h,m));if(e<d.rowsNum)for(h=b;h<f;h++)g=d.indexTable[e][h],i=g.rowIndex+g.rowSpan-1,i>e&&(l=Math.max(i,l));if(b>0)for(i=a;i<e;i++)g=d.indexTable[i][b],h=g.colIndex,h<b&&(k=Math.min(g.colIndex,k));return j!=a||k!=b||l!=e||m!=f?c(j,k,l,m):{beginRowIndex:a,beginColIndex:b,endRowIndex:e,endColIndex:f}}try{var d=this,e=d.getCellInfo(a);if(a===b)return{beginRowIndex:e.rowIndex,beginColIndex:e.colIndex,endRowIndex:e.rowIndex+e.rowSpan-1,endColIndex:e.colIndex+e.colSpan-1};var f=d.getCellInfo(b),g=Math.min(e.rowIndex,f.rowIndex),h=Math.min(e.colIndex,f.colIndex),i=Math.max(e.rowIndex+e.rowSpan-1,f.rowIndex+f.rowSpan-1),j=Math.max(e.colIndex+e.colSpan-1,f.colIndex+f.colSpan-1);return c(g,h,i,j)}catch(k){}},getCells:function(a){this.clearSelected();for(var b,c,d,e=a.beginRowIndex,f=a.beginColIndex,g=a.endRowIndex,h=a.endColIndex,i={},j=[],k=e;k<=g;k++)for(var l=f;l<=h;l++){b=this.indexTable[k][l],c=b.rowIndex,d=b.colIndex;var m=c+"|"+d;if(!i[m]){if(i[m]=1,c<k||d<l||c+b.rowSpan-1>g||d+b.colSpan-1>h)return null;j.push(this.getCell(c,b.cellIndex))}}return j},clearSelected:function(){b.removeSelectedClass(this.selectedTds),this.selectedTds=[],this.cellsRange={}},setSelected:function(a){var c=this.getCells(a);b.addSelectedClass(c),this.selectedTds=c,this.cellsRange=a},isFullRow:function(){var a=this.cellsRange;return a.endColIndex-a.beginColIndex+1==this.colsNum},isFullCol:function(){var a=this.cellsRange,b=this.table,c=b.getElementsByTagName("th"),d=a.endRowIndex-a.beginRowIndex+1;return c.length?d==this.rowsNum||d==this.rowsNum-1:d==this.rowsNum},getNextCell:function(b,c,d){try{var e,f,g=this.getCellInfo(b),h=this.selectedTds.length&&!d,i=this.cellsRange;return!c&&0==g.rowIndex||c&&(h?i.endRowIndex==this.rowsNum-1:g.rowIndex+g.rowSpan>this.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getPreviewCell:function(b,c){try{var d,e,f=this.getCellInfo(b),g=this.selectedTds.length,h=this.cellsRange;return!c&&(g?!h.beginColIndex:!f.colIndex)||c&&(g?h.endColIndex==this.colsNum-1:f.rowIndex>this.colsNum-1)?null:(d=c?g?h.beginRowIndex:f.rowIndex<1?0:f.rowIndex-1:g?h.beginRowIndex:f.rowIndex,e=c?g?h.endColIndex+1:f.colIndex:g?h.beginColIndex-1:f.colIndex<1?0:f.colIndex-1,this.getCell(this.indexTable[d][e].rowIndex,this.indexTable[d][e].cellIndex))}catch(i){a(i)}},moveContent:function(a,c){if(!b.isEmptyBlock(c)){if(b.isEmptyBlock(a))return void(a.innerHTML=c.innerHTML);var d=a.lastChild;for(3!=d.nodeType&&dtd.$block[d.tagName]||a.appendChild(a.ownerDocument.createElement("br"));d=c.firstChild;)a.appendChild(d)}},mergeRight:function(a){var b=this.getCellInfo(a),c=b.colIndex+b.colSpan,d=this.indexTable[b.rowIndex][c],e=this.getCell(d.rowIndex,d.cellIndex);a.colSpan=b.colSpan+d.colSpan,a.removeAttribute("width"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeDown:function(a){var b=this.getCellInfo(a),c=b.rowIndex+b.rowSpan,d=this.indexTable[c][b.colIndex],e=this.getCell(d.rowIndex,d.cellIndex);a.rowSpan=b.rowSpan+d.rowSpan,a.removeAttribute("height"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeRange:function(){var a=this.cellsRange,b=this.getCell(a.beginRowIndex,this.indexTable[a.beginRowIndex][a.beginColIndex].cellIndex);if("TH"==b.tagName&&a.endRowIndex!==a.beginRowIndex){var c=this.indexTable,d=this.getCellInfo(b);b=this.getCell(1,c[1][d.colIndex].cellIndex),a=this.getCellsRange(b,this.getCell(c[this.rowsNum-1][d.colIndex].rowIndex,c[this.rowsNum-1][d.colIndex].cellIndex))}for(var e,f=this.getCells(a),g=0;e=f[g++];)e!==b&&(this.moveContent(b,e),this.deleteCell(e));if(b.rowSpan=a.endRowIndex-a.beginRowIndex+1,b.rowSpan>1&&b.removeAttribute("height"),b.colSpan=a.endColIndex-a.beginColIndex+1,b.colSpan>1&&b.removeAttribute("width"),b.rowSpan==this.rowsNum&&1!=b.colSpan&&(b.colSpan=1),b.colSpan==this.colsNum&&1!=b.rowSpan){var h=b.parentNode.rowIndex;if(this.table.deleteRow)for(var g=h+1,i=h+1,j=b.rowSpan;g<j;g++)this.table.deleteRow(i);else for(var g=0,j=b.rowSpan-1;g<j;g++){var k=this.table.rows[h+1];k.parentNode.removeChild(k)}b.rowSpan=1}this.update()},insertRow:function(a,b){function c(a,b,c){if(0==a){var d=c.nextSibling||c.previousSibling,e=d.cells[a];"TH"==e.tagName&&(e=b.ownerDocument.createElement("th"),e.appendChild(b.firstChild),c.insertBefore(e,b),domUtils.remove(b))}else if("TH"==b.tagName){var f=b.ownerDocument.createElement("td");f.appendChild(b.firstChild),c.insertBefore(f,b),domUtils.remove(b)}}var d,e=this.colsNum,f=this.table,g=f.insertRow(a),h="string"==typeof b&&"TH"==b.toUpperCase();if(0==a||a==this.rowsNum)for(var i=0;i<e;i++)d=this.cloneCell(b,!0),this.setCellContent(d),d.getAttribute("vAlign")&&d.setAttribute("vAlign",d.getAttribute("vAlign")),g.appendChild(d),h||c(i,d,g);else{var j=this.indexTable[a];for(i=0;i<e;i++){var k=j[i];k.rowIndex<a?(d=this.getCell(k.rowIndex,k.cellIndex),d.rowSpan=k.rowSpan+1):(d=this.cloneCell(b,!0),this.setCellContent(d),g.appendChild(d)),h||c(i,d,g)}}return this.update(),g},deleteRow:function(a){for(var b=this.table.rows[a],c=this.indexTable[a],d=this.colsNum,e=0,f=0;f<d;){var g=c[f],h=this.getCell(g.rowIndex,g.cellIndex);if(h.rowSpan>1&&g.rowIndex==a){var i=h.cloneNode(!0);i.rowSpan=h.rowSpan-1,i.innerHTML="",h.rowSpan=1;var j,k=a+1,l=this.table.rows[k],m=this.getPreviewMergedCellsNum(k,f)-e;m<f?(j=f-m-1,domUtils.insertAfter(l.cells[j],i)):l.cells.length&&l.insertBefore(i,l.cells[0]),e+=1}f+=h.colSpan||1}var n=[],o={};for(f=0;f<d;f++){var p=c[f].rowIndex,q=c[f].cellIndex,r=p+"_"+q;o[r]||(o[r]=1,h=this.getCell(p,q),n.push(h))}var s=[];utils.each(n,function(a){1==a.rowSpan?a.parentNode.removeChild(a):s.push(a)}),utils.each(s,function(a){a.rowSpan--}),b.parentNode.removeChild(b),this.update()},insertCol:function(a,b,c){function d(a,b,c){if(0==a){var d=b.nextSibling||b.previousSibling;"TH"==d.tagName&&(d=b.ownerDocument.createElement("th"),d.appendChild(b.firstChild),c.insertBefore(d,b),domUtils.remove(b))}else if("TH"==b.tagName){var e=b.ownerDocument.createElement("td");e.appendChild(b.firstChild),c.insertBefore(e,b),domUtils.remove(b)}}var e,f,g,h=this.rowsNum,i=0,j=parseInt((this.table.offsetWidth-20*(this.colsNum+1)-(this.colsNum+1))/(this.colsNum+1),10),k="string"==typeof b&&"TH"==b.toUpperCase();if(0==a||a==this.colsNum)for(;i<h;i++)e=this.table.rows[i],g=e.cells[0==a?a:e.cells.length],f=this.cloneCell(b,!0),this.setCellContent(f),f.setAttribute("vAlign",f.getAttribute("vAlign")),g&&f.setAttribute("width",g.getAttribute("width")),a?domUtils.insertAfter(e.cells[e.cells.length-1],f):e.insertBefore(f,e.cells[0]),k||d(i,f,e);else for(;i<h;i++){var l=this.indexTable[i][a];l.colIndex<a?(f=this.getCell(l.rowIndex,l.cellIndex),f.colSpan=l.colSpan+1):(e=this.table.rows[i],g=e.cells[l.cellIndex],f=this.cloneCell(b,!0),this.setCellContent(f),f.setAttribute("vAlign",f.getAttribute("vAlign")),g&&f.setAttribute("width",g.getAttribute("width")),g?e.insertBefore(f,g):e.appendChild(f)),k||d(i,f,e)}this.update(),this.updateWidth(j,c||{tdPadding:10,tdBorder:1})},updateWidth:function(a,c){var d=this.table,e=b.getWidth(d)-2*c.tdPadding-c.tdBorder+a;if(e<d.ownerDocument.body.offsetWidth)return void d.setAttribute("width",e);var f=domUtils.getElementsByTagName(this.table,"td th");utils.each(f,function(b){b.setAttribute("width",a)})},deleteCol:function(a){for(var b=this.indexTable,c=this.table.rows,d=this.table.getAttribute("width"),e=0,f=this.rowsNum,g={},h=0;h<f;){var i=b[h],j=i[a],k=j.rowIndex+"_"+j.colIndex;if(!g[k]){g[k]=1;var l=this.getCell(j.rowIndex,j.cellIndex);e||(e=l&&parseInt(l.offsetWidth/l.colSpan,10).toFixed(0)),l.colSpan>1?l.colSpan--:c[h].deleteCell(j.cellIndex),h+=j.rowSpan||1}}this.table.setAttribute("width",d-e),this.update()},splitToCells:function(a){var b=this,c=this.splitToRows(a);utils.each(c,function(a){b.splitToCols(a)})},splitToRows:function(a){var b=this.getCellInfo(a),c=b.rowIndex,d=b.colIndex,e=[];a.rowSpan=1,e.push(a);for(var f=c,g=c+b.rowSpan;f<g;f++)if(f!=c){var h=this.table.rows[f],i=h.insertCell(d-this.getPreviewMergedCellsNum(f,d));i.colSpan=b.colSpan,this.setCellContent(i),i.setAttribute("vAlign",a.getAttribute("vAlign")),i.setAttribute("align",a.getAttribute("align")),a.style.cssText&&(i.style.cssText=a.style.cssText),e.push(i)}return this.update(),e},getPreviewMergedCellsNum:function(a,b){for(var c=this.indexTable[a],d=0,e=0;e<b;){var f=c[e].colSpan,g=c[e].rowIndex;d+=f-(g==a?1:0),e+=f}return d},splitToCols:function(a){var b=(a.offsetWidth/a.colSpan-22).toFixed(0),c=this.getCellInfo(a),d=c.rowIndex,e=c.colIndex,f=[];a.colSpan=1,a.setAttribute("width",b),f.push(a);for(var g=e,h=e+c.colSpan;g<h;g++)if(g!=e){var i=this.table.rows[d],j=i.insertCell(this.indexTable[d][g].cellIndex+1);if(j.rowSpan=c.rowSpan,this.setCellContent(j),j.setAttribute("vAlign",a.getAttribute("vAlign")),j.setAttribute("align",a.getAttribute("align")),j.setAttribute("width",b),a.style.cssText&&(j.style.cssText=a.style.cssText),"TH"==a.tagName){var k=a.ownerDocument.createElement("th");k.appendChild(j.firstChild),k.setAttribute("vAlign",a.getAttribute("vAlign")),k.rowSpan=j.rowSpan,i.insertBefore(k,j),domUtils.remove(j)}f.push(j)}return this.update(),f},isLastCell:function(a,b,c){b=b||this.rowsNum,c=c||this.colsNum;var d=this.getCellInfo(a);return d.rowIndex+d.rowSpan==b&&d.colIndex+d.colSpan==c},getLastCell:function(a){a=a||this.table.getElementsByTagName("td");var b,c=(this.getCellInfo(a[0]),this),d=a[0],e=d.parentNode,f=0,g=0;return utils.each(a,function(a){a.parentNode==e&&(g+=a.colSpan||1),f+=a.rowSpan*a.colSpan||1}),b=f/g,utils.each(a,function(a){if(c.isLastCell(a,b,g))return d=a,!1}),d},selectRow:function(a){var b=this.indexTable[a],c=this.getCell(b[0].rowIndex,b[0].cellIndex),d=this.getCell(b[this.colsNum-1].rowIndex,b[this.colsNum-1].cellIndex),e=this.getCellsRange(c,d);this.setSelected(e)},selectTable:function(){var a=this.table.getElementsByTagName("td"),b=this.getCellsRange(a[0],a[a.length-1]);this.setSelected(b)},setBackground:function(a,b){if("string"==typeof b)utils.each(a,function(a){a.style.backgroundColor=b});else if("object"==typeof b){b=utils.extend({repeat:!0,colorList:["#ddd","#fff"]},b);for(var c,d=this.getCellInfo(a[0]).rowIndex,e=0,f=b.colorList,g=function(a,b,c){return a[b]?a[b]:c?a[b%a.length]:""},h=0;c=a[h++];){var i=this.getCellInfo(c);c.style.backgroundColor=g(f,d+e==i.rowIndex?e:++e,b.repeat)}}},removeBackground:function(a){utils.each(a,function(a){a.style.backgroundColor=""})}}}(),function(){function a(a,c){var d=domUtils.getElementsByTagName(a,"td th");utils.each(d,function(a){a.removeAttribute("width")}),a.setAttribute("width",b(c,!0,g(c,a)));var e=[];setTimeout(function(){utils.each(d,function(a){1==a.colSpan&&e.push(a.offsetWidth)}),utils.each(d,function(a,b){1==a.colSpan&&a.setAttribute("width",e[b]+"")})},0)}function b(a,b,c){var d=a.body;return d.offsetWidth-(b?2*parseInt(domUtils.getComputedStyle(d,"margin-left"),10):0)-2*c.tableBorder-(a.options.offsetWidth||0)}function c(a){var b=e(a).cell;if(b){var c=h(b);return c.selectedTds.length?c.selectedTds:[b]}return[]}var d=UE.UETable,e=function(a){return d.getTableItemsByRange(a)},f=function(a){return d.getUETableBySelected(a)},g=function(a,b){return d.getDefaultValue(a,b)},h=function(a){return d.getUETable(a)};UE.commands.inserttable={queryCommandState:function(){return e(this).table?-1:0},execCommand:function(a,b){function c(a,b){for(var c=[],d=a.numRows,e=a.numCols,f=0;f<d;f++){c.push("<tr"+(0==f?' class="firstRow"':"")+">");for(var g=0;g<e;g++)c.push('<td width="'+b+'"  vAlign="'+a.tdvalign+'" >'+(browser.ie&&browser.version<11?domUtils.fillChar:"<br/>")+"</td>");c.push("</tr>")}return"<table><tbody>"+c.join("")+"</tbody></table>"}b||(b=utils.extend({},{numCols:this.options.defaultCols,numRows:this.options.defaultRows,tdvalign:this.options.tdvalign}));var d=this,e=this.selection.getRange(),f=e.startContainer,h=domUtils.findParent(f,function(a){return domUtils.isBlockElm(a)},!0)||d.body,i=g(d),j=h.offsetWidth,k=Math.floor(j/b.numCols-2*i.tdPadding-i.tdBorder);!b.tdvalign&&(b.tdvalign=d.options.tdvalign),d.execCommand("inserthtml",c(b,k))}},UE.commands.insertparagraphbeforetable={queryCommandState:function(){return e(this).cell?0:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("p");b.innerHTML=browser.ie?"&nbsp;":"<br />",a.parentNode.insertBefore(b,a),this.selection.getRange().setStart(b,0).setCursor()}}},UE.commands.deletetable={queryCommandState:function(){var a=this.selection.getRange();return domUtils.findParentByTagName(a.startContainer,"table",!0)?0:-1},execCommand:function(a,b){var c=this.selection.getRange();if(b=b||domUtils.findParentByTagName(c.startContainer,"table",!0)){var d=b.nextSibling;d||(d=domUtils.createElement(this.document,"p",{innerHTML:browser.ie?domUtils.fillChar:"<br/>"}),b.parentNode.insertBefore(d,b)),domUtils.remove(b),c=this.selection.getRange(),3==d.nodeType?c.setStartBefore(d):c.setStart(d,0),c.setCursor(!1,!0),this.fireEvent("tablehasdeleted")}}},UE.commands.cellalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("align",b)}},UE.commands.cellvalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("vAlign",b)}},UE.commands.insertcaption={queryCommandState:function(){var a=e(this).table;return a&&0==a.getElementsByTagName("caption").length?1:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("caption");b.innerHTML=browser.ie?domUtils.fillChar:"<br/>",a.insertBefore(b,a.firstChild);var c=this.selection.getRange();c.setStart(b,0).setCursor()}}},UE.commands.deletecaption={queryCommandState:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");return b?0==b.getElementsByTagName("caption").length?-1:1:-1},execCommand:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");if(b){domUtils.remove(b.getElementsByTagName("caption")[0]);var c=this.selection.getRange();c.setStart(b.rows[0].cells[0],0).setCursor()}}},UE.commands.inserttitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"!=b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&h(a).insertRow(0,"th");var b=a.getElementsByTagName("th")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.deletetitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"==b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&domUtils.remove(a.rows[0]);var b=a.getElementsByTagName("td")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.inserttitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?-1:0}return-1},execCommand:function(b){var c=e(this).table;c&&h(c).insertCol(0,"th"),a(c,this);var d=c.getElementsByTagName("th")[0];this.selection.getRange().setStart(d,0).setCursor(!1,!0)}},UE.commands.deletetitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?0:-1}return-1},execCommand:function(){var b=e(this).table;if(b)for(var c=0;c<b.rows.length;c++)domUtils.remove(b.rows[c].children[0]);a(b,this);var d=b.getElementsByTagName("td")[0];this.selection.getRange().setStart(d,0).setCursor(!1,!0)}},UE.commands.mergeright={queryCommandState:function(a){var b=e(this),c=b.table,d=b.cell;if(!c||!d)return-1;var f=h(c);if(f.selectedTds.length)return-1;var g=f.getCellInfo(d),i=g.colIndex+g.colSpan;if(i>=f.colsNum)return-1;var j=f.indexTable[g.rowIndex][i],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.rowIndex==g.rowIndex&&j.rowSpan==g.rowSpan?0:-1},execCommand:function(a){var b=this.selection.getRange(),c=b.createBookmark(!0),d=e(this).cell,f=h(d);f.mergeRight(d),b.moveToBookmark(c).select()}},UE.commands.mergedown={queryCommandState:function(a){var b=e(this),c=b.table,d=b.cell;if(!c||!d)return-1;var f=h(c);if(f.selectedTds.length)return-1;var g=f.getCellInfo(d),i=g.rowIndex+g.rowSpan;if(i>=f.rowsNum)return-1;var j=f.indexTable[i][g.colIndex],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.colIndex==g.colIndex&&j.colSpan==g.colSpan?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.mergeDown(c),a.moveToBookmark(b).select()}},UE.commands.mergecells={queryCommandState:function(){return f(this)?0:-1},execCommand:function(){var a=f(this);if(a&&a.selectedTds.length){var b=a.selectedTds[0];a.mergeRange();var c=this.selection.getRange();domUtils.isEmptyBlock(b)?c.setStart(b,0).collapse(!0):c.selectNodeContents(b),c.select()}}},UE.commands.insertrow={queryCommandState:function(){var a=e(this),b=a.cell;return b&&("TD"==b.tagName||"TH"==b.tagName&&a.tr!==a.table.rows[0])&&h(a.table).rowsNum<this.options.maxRowNum?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this),d=c.cell,f=c.table,g=h(f),i=g.getCellInfo(d);if(g.selectedTds.length)for(var j=g.cellsRange,k=0,l=j.endRowIndex-j.beginRowIndex+1;k<l;k++)g.insertRow(j.beginRowIndex,d);else g.insertRow(i.rowIndex,d);a.moveToBookmark(b).select(),"enabled"===f.getAttribute("interlaced")&&this.fireEvent("interlacetable",f)}},UE.commands.insertrownext={queryCommandState:function(){var a=e(this),b=a.cell;return b&&"TD"==b.tagName&&h(a.table).rowsNum<this.options.maxRowNum?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this),d=c.cell,f=c.table,g=h(f),i=g.getCellInfo(d);if(g.selectedTds.length)for(var j=g.cellsRange,k=0,l=j.endRowIndex-j.beginRowIndex+1;k<l;k++)g.insertRow(j.endRowIndex+1,d);else g.insertRow(i.rowIndex+i.rowSpan,d);a.moveToBookmark(b).select(),"enabled"===f.getAttribute("interlaced")&&this.fireEvent("interlacetable",f)}},UE.commands.deleterow={queryCommandState:function(){var a=e(this);return a.cell?0:-1},execCommand:function(){var a=e(this).cell,b=h(a),c=b.cellsRange,d=b.getCellInfo(a),f=b.getVSideCell(a),g=b.getVSideCell(a,!0),i=this.selection.getRange();if(utils.isEmptyObject(c))b.deleteRow(d.rowIndex);else for(var j=c.beginRowIndex;j<c.endRowIndex+1;j++)b.deleteRow(c.beginRowIndex);var k=b.table;if(k.getElementsByTagName("td").length)if(1==d.rowSpan||d.rowSpan==c.endRowIndex-c.beginRowIndex+1)(g||f)&&i.selectNodeContents(g||f).setCursor(!1,!0);else{var l=b.getCell(d.rowIndex,b.indexTable[d.rowIndex][d.colIndex].cellIndex);l&&i.selectNodeContents(l).setCursor(!1,!0)}else{var m=k.nextSibling;domUtils.remove(k),m&&i.setStart(m,0).setCursor(!1,!0)}"enabled"===k.getAttribute("interlaced")&&this.fireEvent("interlacetable",k)}},UE.commands.insertcol={queryCommandState:function(a){var b=e(this),c=b.cell;return c&&("TD"==c.tagName||"TH"==c.tagName&&c!==b.tr.cells[0])&&h(b.table).colsNum<this.options.maxColNum?0:-1},execCommand:function(a){var b=this.selection.getRange(),c=b.createBookmark(!0);if(this.queryCommandState(a)!=-1){var d=e(this).cell,f=h(d),g=f.getCellInfo(d);if(f.selectedTds.length)for(var i=f.cellsRange,j=0,k=i.endColIndex-i.beginColIndex+1;j<k;j++)f.insertCol(i.beginColIndex,d);else f.insertCol(g.colIndex,d);b.moveToBookmark(c).select(!0)}}},UE.commands.insertcolnext={queryCommandState:function(){var a=e(this),b=a.cell;return b&&h(a.table).colsNum<this.options.maxColNum?0:-1;
-},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c),f=d.getCellInfo(c);if(d.selectedTds.length)for(var g=d.cellsRange,i=0,j=g.endColIndex-g.beginColIndex+1;i<j;i++)d.insertCol(g.endColIndex+1,c);else d.insertCol(f.colIndex+f.colSpan,c);a.moveToBookmark(b).select()}},UE.commands.deletecol={queryCommandState:function(){var a=e(this);return a.cell?0:-1},execCommand:function(){var a=e(this).cell,b=h(a),c=b.cellsRange,d=b.getCellInfo(a),f=b.getHSideCell(a),g=b.getHSideCell(a,!0);if(utils.isEmptyObject(c))b.deleteCol(d.colIndex);else for(var i=c.beginColIndex;i<c.endColIndex+1;i++)b.deleteCol(c.beginColIndex);var j=b.table,k=this.selection.getRange();if(j.getElementsByTagName("td").length)domUtils.inDoc(a,this.document)?k.setStart(a,0).setCursor(!1,!0):g&&domUtils.inDoc(g,this.document)?k.selectNodeContents(g).setCursor(!1,!0):f&&domUtils.inDoc(f,this.document)&&k.selectNodeContents(f).setCursor(!0,!0);else{var l=j.nextSibling;domUtils.remove(j),l&&k.setStart(l,0).setCursor(!1,!0)}}},UE.commands.splittocells={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&(b.colSpan>1||b.rowSpan>1)?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCells(c),a.moveToBookmark(b).select()}},UE.commands.splittorows={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.rowSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToRows(c),a.moveToBookmark(b).select()}},UE.commands.splittocols={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.colSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCols(c),a.moveToBookmark(b).select()}},UE.commands.adaptbytext=UE.commands.adaptbywindow={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(b){var c=e(this),d=c.table;if(d)if("adaptbywindow"==b)a(d,this);else{var f=domUtils.getElementsByTagName(d,"td th");utils.each(f,function(a){a.removeAttribute("width")}),d.removeAttribute("width")}}},UE.commands.averagedistributecol={queryCommandState:function(){var a=f(this);return a&&(a.isFullRow()||a.isFullCol())?0:-1},execCommand:function(a){function b(){var a,b=e.table,c=0,f=0,h=g(d,b);if(e.isFullRow())c=b.offsetWidth,f=e.colsNum;else for(var i,j=e.cellsRange.beginColIndex,k=e.cellsRange.endColIndex,l=j;l<=k;)i=e.selectedTds[l],c+=i.offsetWidth,l+=i.colSpan,f+=1;return a=Math.ceil(c/f)-2*h.tdBorder-2*h.tdPadding}function c(a){utils.each(domUtils.getElementsByTagName(e.table,"th"),function(a){a.setAttribute("width","")});var b=e.isFullRow()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.colSpan&&b.setAttribute("width",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.averagedistributerow={queryCommandState:function(){var a=f(this);return a?a.selectedTds&&/th/gi.test(a.selectedTds[0].tagName)?-1:a.isFullRow()||a.isFullCol()?0:-1:-1},execCommand:function(a){function b(){var a,b,c=0,f=e.table,h=g(d,f),i=parseInt(domUtils.getComputedStyle(f.getElementsByTagName("td")[0],"padding-top"));if(e.isFullCol()){var j,k,l=domUtils.getElementsByTagName(f,"caption"),m=domUtils.getElementsByTagName(f,"th");l.length>0&&(j=l[0].offsetHeight),m.length>0&&(k=m[0].offsetHeight),c=f.offsetHeight-(j||0)-(k||0),b=0==m.length?e.rowsNum:e.rowsNum-1}else{for(var n=e.cellsRange.beginRowIndex,o=e.cellsRange.endRowIndex,p=0,q=domUtils.getElementsByTagName(f,"tr"),r=n;r<=o;r++)c+=q[r].offsetHeight,p+=1;b=p}return a=browser.ie&&browser.version<9?Math.ceil(c/b):Math.ceil(c/b)-2*h.tdBorder-2*i}function c(a){var b=e.isFullCol()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.rowSpan&&b.setAttribute("height",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.cellalignment={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){domUtils.setAttributes(a,b)});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);/caption/gi.test(g.tagName)?(g.style.textAlign=b.align,g.style.verticalAlign=b.vAlign):domUtils.setAttributes(g,b),c.selection.getRange().setCursor(!0)}},queryCommandValue:function(a){var b=e(this).cell;if(b||(b=c(this)[0]),b){var d=UE.UETable.getUETable(b).selectedTds;return!d.length&&(d=b),UE.UETable.getTableCellAlignState(d)}return null}},UE.commands.tablealignment={queryCommandState:function(){return browser.ie&&browser.version<8?-1:e(this).table?0:-1},execCommand:function(a,b){var c=this,d=c.selection.getStart(),e=d&&domUtils.findParentByTagName(d,["table"],!0);e&&e.setAttribute("align",b)}},UE.commands.edittable={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this.selection.getRange(),d=domUtils.findParentByTagName(c.startContainer,"table");if(d){var e=domUtils.getElementsByTagName(d,"td").concat(domUtils.getElementsByTagName(d,"th"),domUtils.getElementsByTagName(d,"caption"));utils.each(e,function(a){a.style.borderColor=b})}}},UE.commands.edittd={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){a.style.backgroundColor=b});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);g&&(g.style.backgroundColor=b)}}},UE.commands.settablebackground={queryCommandState:function(){return c(this).length>1?0:-1},execCommand:function(a,b){var d,e;d=c(this),e=h(d[0]),e.setBackground(d,b)}},UE.commands.cleartablebackground={queryCommandState:function(){var a=c(this);if(!a.length)return-1;for(var b,d=0;b=a[d++];)if(""!==b.style.backgroundColor)return 0;return-1},execCommand:function(){var a=c(this),b=h(a[0]);b.removeBackground(a)}},UE.commands.interlacetable=UE.commands.uninterlacetable={queryCommandState:function(a){var b=e(this).table;if(!b)return-1;var c=b.getAttribute("interlaced");return"interlacetable"==a?"enabled"===c?-1:0:c&&"disabled"!==c?0:-1},execCommand:function(a,b){var c=e(this).table;"interlacetable"==a?(c.setAttribute("interlaced","enabled"),this.fireEvent("interlacetable",c,b)):(c.setAttribute("interlaced","disabled"),this.fireEvent("uninterlacetable",c))}},UE.commands.setbordervisible={queryCommandState:function(a){var b=e(this).table;return b?0:-1},execCommand:function(){var a=e(this).table;utils.each(domUtils.getElementsByTagName(a,"td"),function(a){a.style.borderWidth="1px",a.style.borderStyle="solid"})}}}(),UE.plugins.table=function(){function a(a){}function b(a,b){c(a,"width",!0),c(a,"height",!0)}function c(a,b,c){a.style[b]&&(c&&a.setAttribute(b,parseInt(a.style[b],10)),a.style[b]="")}function d(a){if("TD"==a.tagName||"TH"==a.tagName)return a;var b;return(b=domUtils.findParentByTagName(a,"td",!0)||domUtils.findParentByTagName(a,"th",!0))?b:null}function e(a){var b=new RegExp(domUtils.fillChar,"g");if(a[browser.ie?"innerText":"textContent"].replace(/^\s*$/,"").replace(b,"").length>0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}function f(a){return a.pageX||a.pageY?{x:a.pageX,y:a.pageY}:{x:a.clientX+N.document.body.scrollLeft-N.document.body.clientLeft,y:a.clientY+N.document.body.scrollTop-N.document.body.clientTop}}function g(b){if(!A())try{var c,e=d(b.target||b.srcElement);if(R&&(N.body.style.webkitUserSelect="none",(Math.abs(V.x-b.clientX)>T||Math.abs(V.y-b.clientY)>T)&&(t(),R=!1,U=0,v(b))),ca&&ha)return U=0,N.body.style.webkitUserSelect="none",N.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),c=f(b),m(N,!0,ca,c,e),void("h"==ca?ga.style.left=k(ha,b)+"px":"v"==ca&&(ga.style.top=l(ha,b)+"px"));if(e){if(N.fireEvent("excludetable",e)===!0)return;c=f(b);var g=n(e,c),i=domUtils.findParentByTagName(e,"table",!0);if(j(i,e,b,!0)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"h.png),pointer"}else if(j(i,e,b)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"v.png),pointer"}else{N.body.style.cursor="text";/\d/.test(g)&&(g=g.replace(/\d/,""),e=Y(e).getPreviewCell(e,"v"==g)),m(N,!!e&&!!g,e?g:"",c,e)}}else h(!1,i,N)}catch(o){a(o)}}function h(a,b,c){if(a)i(b,c);else{if(fa)return;la=setTimeout(function(){!fa&&ea&&ea.parentNode&&ea.parentNode.removeChild(ea)},2e3)}}function i(a,b){function c(c,d){clearTimeout(g),g=setTimeout(function(){b.fireEvent("tableClicked",a,d)},300)}function d(c){clearTimeout(g);var d=Y(a),e=a.rows[0].cells[0],f=d.getLastCell(),h=d.getCellsRange(e,f);b.selection.getRange().setStart(e,0).setCursor(!1,!0),d.setSelected(h)}var e=domUtils.getXY(a),f=a.ownerDocument;if(ea&&ea.parentNode)return ea;ea=f.createElement("div"),ea.contentEditable=!1,ea.innerHTML="",ea.style.cssText="width:15px;height:15px;background-image:url("+b.options.UEDITOR_HOME_URL+"dialogs/table/dragicon.png);position: absolute;cursor:move;top:"+(e.y-15)+"px;left:"+e.x+"px;",domUtils.unSelectable(ea),ea.onmouseover=function(a){fa=!0},ea.onmouseout=function(a){fa=!1},domUtils.on(ea,"click",function(a,b){c(b,this)}),domUtils.on(ea,"dblclick",function(a,b){d(b)}),domUtils.on(ea,"dragstart",function(a,b){domUtils.preventDefault(b)});var g;f.body.appendChild(ea)}function j(a,b,c,d){var e=f(c),g=n(b,e);if(d){var h=a.getElementsByTagName("caption")[0],i=h?h.offsetHeight:0;return"v1"==g&&e.y-domUtils.getXY(a).y-i<8}return"h1"==g&&e.x-domUtils.getXY(a).x<8}function k(a,b){var c=Y(a);if(c){var d=c.getSameEndPosCells(a,"x")[0],e=c.getSameStartPosXCells(a)[0],g=f(b).x,h=(d?domUtils.getXY(d).x:domUtils.getXY(c.table).x)+20,i=e?domUtils.getXY(e).x+e.offsetWidth-20:N.body.offsetWidth+5||parseInt(domUtils.getComputedStyle(N.body,"width"),10);return h+=Q,i-=Q,g<h?h:g>i?i:g}}function l(b,c){try{var d=domUtils.getXY(b).y,e=f(c).y;return e<d?d:e}catch(g){a(g)}}function m(b,c,d,e,f){try{b.body.style.cursor="h"==d?"col-resize":"v"==d?"row-resize":"text",browser.ie&&(!d||ia||Z(b)?I(b):(H(b,b.document),J(d,f))),da=c}catch(g){a(g)}}function n(a,b){var c=domUtils.getXY(a);return c?c.x+a.offsetWidth-b.x<S?"h":b.x-c.x<S?"h1":c.y+a.offsetHeight-b.y<S?"v":b.y-c.y<S?"v1":"":""}function o(a,b){if(!A())if(V={x:b.clientX,y:b.clientY},2==b.button){var c=Z(N),d=!1;if(c){var e=M(N,b);utils.each(c.selectedTds,function(a){a===e&&(d=!0)}),d?(e=c.selectedTds[0],setTimeout(function(){N.selection.getRange().setStart(e,0).setCursor(!1,!0)},0)):(_(domUtils.getElementsByTagName(N.body,"th td")),c.clearSelected())}}else q(b)}function p(a){U=0,a=a||N.window.event;var b=d(a.target||a.srcElement);if(b){var c;if(c=n(b,f(a))){if(I(N),"h1"==c)if(c="h",j(domUtils.findParentByTagName(b,"table"),b,a))N.execCommand("adaptbywindow");else if(b=Y(b).getPreviewCell(b)){var e=N.selection.getRange();e.selectNodeContents(b).setCursor(!0,!0)}if("h"==c){var g=Y(b),h=g.table,i=C(b,h,!0);i=s(i,"left"),g.width=g.offsetWidth;var k=[],l=[];utils.each(i,function(a){k.push(a.offsetWidth)}),utils.each(i,function(a){a.removeAttribute("width")}),window.setTimeout(function(){var a=!0;utils.each(i,function(b,c){var d=b.offsetWidth;return d>k[c]?(a=!1,!1):void l.push(d)});var b=a?l:k;utils.each(i,function(a,c){a.width=b[c]-G()})},0)}}}}function q(a){if(_(domUtils.getElementsByTagName(N.body,"td th")),utils.each(N.document.getElementsByTagName("table"),function(a){a.ueTable=null}),aa=M(N,a)){var b=domUtils.findParentByTagName(aa,"table",!0);ut=Y(b),ut&&ut.clearSelected(),da?r(a):(N.document.body.style.webkitUserSelect="",ia=!0,N.addListener("mouseover",x))}}function r(a){browser.ie&&(a=u(a)),t(),R=!0,O=setTimeout(function(){v(a)},W)}function s(a,b){for(var c=[],d=null,e=0,f=a.length;e<f;e++)d=a[e][b],d&&c.push(d);return c}function t(){O&&clearTimeout(O),O=null}function u(a){var b=["pageX","pageY","clientX","clientY","srcElement","target"],c={};if(a)for(var d,e,f=0;d=b[f];f++)e=a[d],e&&(c[d]=e);return c}function v(a){if(R=!1,aa=a.target||a.srcElement){var b=n(aa,f(a));/\d/.test(b)&&(b=b.replace(/\d/,""),aa=Y(aa).getPreviewCell(aa,"v"==b)),I(N),H(N,N.document),N.fireEvent("saveScene"),J(b,aa),ia=!0,ca=b,ha=aa}}function w(a,b){if(!A()){if(t(),R=!1,da&&(U=++U%3,V={x:b.clientX,y:b.clientY},P=setTimeout(function(){U>0&&U--},W),2===U))return U=0,void p(b);if(2!=b.button){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"table",!0),f=domUtils.findParentByTagName(d.endContainer,"table",!0);if((e||f)&&(e===f?(e=domUtils.findParentByTagName(d.startContainer,["td","th","caption"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th","caption"],!0),e!==f&&c.selection.clearRange()):c.selection.clearRange()),ia=!1,c.document.body.style.webkitUserSelect="",ca&&ha&&(c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),U=0,ga=c.document.getElementById("ue_tableDragLine"))){var g=domUtils.getXY(ha),h=domUtils.getXY(ga);switch(ca){case"h":z(ha,h.x-g.x);break;case"v":B(ha,h.y-g.y-ha.offsetHeight)}return ca="",ha=null,I(c),void c.fireEvent("saveScene")}if(aa){var i=Y(aa),j=i?i.selectedTds[0]:null;if(j)d=new dom.Range(c.document),domUtils.isEmptyBlock(j)?d.setStart(j,0).setCursor(!1,!0):d.selectNodeContents(j).shrinkBoundary().setCursor(!1,!0);else if(d=c.selection.getRange().shrinkBoundary(),!d.collapsed){var e=domUtils.findParentByTagName(d.startContainer,["td","th"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th"],!0);(e&&!f||!e&&f||e&&f&&e!==f)&&d.setCursor(!1,!0)}aa=null,c.removeListener("mouseover",x)}else{var k=domUtils.findParentByTagName(b.target||b.srcElement,"td",!0);if(k||(k=domUtils.findParentByTagName(b.target||b.srcElement,"th",!0)),k&&("TD"==k.tagName||"TH"==k.tagName)){if(c.fireEvent("excludetable",k)===!0)return;d=new dom.Range(c.document),d.setStart(k,0).setCursor(!1,!0)}}c._selectionChange(250,b)}}}function x(a,b){if(!A()){var c=this,d=b.target||b.srcElement;if(ba=domUtils.findParentByTagName(d,"td",!0)||domUtils.findParentByTagName(d,"th",!0),aa&&ba&&("TD"==aa.tagName&&"TD"==ba.tagName||"TH"==aa.tagName&&"TH"==ba.tagName)&&domUtils.findParentByTagName(aa,"table")==domUtils.findParentByTagName(ba,"table")){var e=Y(ba);if(aa!=ba){c.document.body.style.webkitUserSelect="none",c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"]();var f=e.getCellsRange(aa,ba);e.setSelected(f)}else c.document.body.style.webkitUserSelect="",e.clearSelected()}b.preventDefault?b.preventDefault():b.returnValue=!1}}function y(a,b,c){var d=parseInt(domUtils.getComputedStyle(a,"line-height"),10),e=c+b;b=e<d?d:e,a.style.height&&(a.style.height=""),1==a.rowSpan?a.setAttribute("height",b):a.removeAttribute&&a.removeAttribute("height")}function z(a,b){var c=Y(a);if(c){var d=c.table,e=C(a,d);if(d.style.width="",d.removeAttribute("width"),b=D(b,a,e),a.nextSibling){utils.each(e,function(a){a.left.width=+a.left.width+b,a.right&&(a.right.width=+a.right.width-b)})}else utils.each(e,function(a){a.left.width-=-b})}}function A(){return"false"===N.body.contentEditable}function B(a,b){if(!(Math.abs(b)<10)){var c=Y(a);if(c)for(var d,e=c.getSameEndPosCells(a,"y"),f=e[0]?e[0].offsetHeight:0,g=0;d=e[g++];)y(d,b,f)}}function C(a,b,c){if(b||(b=domUtils.findParentByTagName(a,"table")),!b)return null;for(var d=(domUtils.getNodeIndex(a),a),e=b.rows,f=0;d;)1===d.nodeType&&(f+=d.colSpan||1),d=d.previousSibling;d=null;var g=[];return utils.each(e,function(a){var b=a.cells,d=0;utils.each(b,function(a){return d+=a.colSpan||1,d===f?(g.push({left:a,right:a.nextSibling||null}),!1):d>f?(c&&g.push({left:a}),!1):void 0})}),g}function D(a,b,c){if(a-=G(),a<0)return 0;a-=E(b);var d=a<0?"left":"right";return a=Math.abs(a),utils.each(c,function(b){var c=b[d];c&&(a=Math.min(a,E(c)-Q))}),a=a<0?0:a,"left"===d?-a:a}function E(a){var b=0,b=a.offsetWidth-G();a.nextSibling||(b-=F(a)),b=b<0?0:b;try{a.width=b}catch(c){}return b}function F(a){if(tab=domUtils.findParentByTagName(a,"table",!1),void 0===tab.offsetVal){var b=a.previousSibling;b?tab.offsetVal=a.offsetWidth-b.offsetWidth===X.borderWidth?X.borderWidth:0:tab.offsetVal=0}return tab.offsetVal}function G(){if(void 0===X.tabcellSpace){var a=N.document.createElement("table"),b=N.document.createElement("tbody"),c=N.document.createElement("tr"),d=N.document.createElement("td"),e=null;d.style.cssText="border: 0;",d.width=1,c.appendChild(d),c.appendChild(e=d.cloneNode(!1)),b.appendChild(c),a.appendChild(b),a.style.cssText="visibility: hidden;",N.body.appendChild(a),X.paddingSpace=d.offsetWidth-1;var f=a.offsetWidth;d.style.cssText="",e.style.cssText="",X.borderWidth=(a.offsetWidth-f)/3,X.tabcellSpace=X.paddingSpace+X.borderWidth,N.body.removeChild(a)}return G=function(){return X.tabcellSpace},X.tabcellSpace}function H(a,b){ia||(ga=a.document.createElement("div"),domUtils.setAttributes(ga,{id:"ue_tableDragLine",unselectable:"on",contenteditable:!1,onresizestart:"return false",ondragstart:"return false",onselectstart:"return false",style:"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)"}),a.body.appendChild(ga))}function I(a){if(!ia)for(var b;b=a.document.getElementById("ue_tableDragLine");)domUtils.remove(b)}function J(a,b){if(b){var c,d=domUtils.findParentByTagName(b,"table"),e=d.getElementsByTagName("caption"),f=d.offsetWidth,g=d.offsetHeight-(e.length>0?e[0].offsetHeight:0),h=domUtils.getXY(d),i=domUtils.getXY(b);switch(a){case"h":c="height:"+g+"px;top:"+(h.y+(e.length>0?e[0].offsetHeight:0))+"px;left:"+(i.x+b.offsetWidth),ga.style.cssText=c+"px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)";break;case"v":c="width:"+f+"px;left:"+h.x+"px;top:"+(i.y+b.offsetHeight),ga.style.cssText=c+"px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)"}}}function K(a,b){for(var c,d,e=domUtils.getElementsByTagName(a.body,"table"),f=0;d=e[f++];){var g=domUtils.getElementsByTagName(d,"td");g[0]&&(b?(c=g[0].style.borderColor.replace(/\s/g,""),/(#ffffff)|(rgb\(255,255,255\))/gi.test(c)&&domUtils.addClass(d,"noBorderTable")):domUtils.removeClasses(d,"noBorderTable"))}}function L(a,b,c){var d=a.body;return d.offsetWidth-(b?2*parseInt(domUtils.getComputedStyle(d,"margin-left"),10):0)-2*c.tableBorder-(a.options.offsetWidth||0)}function M(a,b){var c=domUtils.findParentByTagName(b.target||b.srcElement,["td","th"],!0),d=null;if(!c)return null;if(d=n(c,f(b)),!c)return null;if("h1"===d&&c.previousSibling){var e=domUtils.getXY(c),g=c.offsetWidth;Math.abs(e.x+g-b.clientX)>g/3&&(c=c.previousSibling)}else if("v1"===d&&c.parentNode.previousSibling){var e=domUtils.getXY(c),h=c.offsetHeight;Math.abs(e.y+h-b.clientY)>h/3&&(c=c.parentNode.previousSibling.firstChild)}return c&&a.fireEvent("excludetable",c)!==!0?c:null}var N=this,O=null,P=null,Q=5,R=!1,S=5,T=10,U=0,V=null,W=360,X=UE.UETable,Y=function(a){return X.getUETable(a)},Z=function(a){return X.getUETableBySelected(a)},$=function(a,b){return X.getDefaultValue(a,b)},_=function(a){return X.removeSelectedClass(a)};N.ready(function(){var a=this,b=a.selection.getText;a.selection.getText=function(){var c=Z(a);if(c){var d="";return utils.each(c.selectedTds,function(a){d+=a[browser.ie?"innerText":"textContent"]}),d}return b.call(a.selection)}});var aa=null,ba=null,ca="",da=!1,ea=null,fa=!1,ga=null,ha=null,ia=!1,ja=!0;N.setOpt({maxColNum:20,maxRowNum:100,defaultCols:5,defaultRows:5,tdvalign:"top",cursorpath:N.options.UEDITOR_HOME_URL+"themes/default/images/cursor_",tableDragable:!1,classList:["ue-table-interlace-color-single","ue-table-interlace-color-double"]}),N.getUETable=Y;var ka={deletetable:1,inserttable:1,cellvalign:1,insertcaption:1,deletecaption:1,inserttitle:1,deletetitle:1,mergeright:1,mergedown:1,mergecells:1,insertrow:1,insertrownext:1,deleterow:1,insertcol:1,insertcolnext:1,deletecol:1,splittocells:1,splittorows:1,splittocols:1,adaptbytext:1,adaptbywindow:1,adaptbycustomer:1,insertparagraph:1,insertparagraphbeforetable:1,averagedistributecol:1,averagedistributerow:1};N.ready(function(){utils.cssRule("table",".selectTdClass{background-color:#edf5fa !important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}table{margin-bottom:10px;border-collapse:collapse;display:table;}td,th{padding: 5px 10px;border: 1px solid #DDD;}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}th{border-top:1px solid #BBB;background-color:#F7F7F7;}table tr.firstRow th{border-top-width:2px;}.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }td p{margin:0;padding:0;}",N.document);var a,c,f;N.addListener("keydown",function(b,d){var g=this,h=d.keyCode||d.which;if(8==h){var i=Z(g);i&&i.selectedTds.length&&(i.isFullCol()?g.execCommand("deletecol"):i.isFullRow()?g.execCommand("deleterow"):g.fireEvent("delcells"),domUtils.preventDefault(d));var j=domUtils.findParentByTagName(g.selection.getStart(),"caption",!0),k=g.selection.getRange();if(k.collapsed&&j&&e(j)){g.fireEvent("saveScene");var l=j.parentNode;domUtils.remove(j),l&&k.setStart(l.rows[0].cells[0],0).setCursor(!1,!0),g.fireEvent("saveScene")}}if(46==h&&(i=Z(g))){g.fireEvent("saveScene");for(var m,n=0;m=i.selectedTds[n++];)domUtils.fillNode(g.document,m);g.fireEvent("saveScene"),domUtils.preventDefault(d)}if(13==h){var o=g.selection.getRange(),j=domUtils.findParentByTagName(o.startContainer,"caption",!0);if(j){var l=domUtils.findParentByTagName(j,"table");return o.collapsed?j&&o.setStart(l.rows[0].cells[0],0).setCursor(!1,!0):(o.deleteContents(),g.fireEvent("saveScene")),void domUtils.preventDefault(d)}if(o.collapsed){var l=domUtils.findParentByTagName(o.startContainer,"table");if(l){var p=l.rows[0].cells[0],q=domUtils.findParentByTagName(g.selection.getStart(),["td","th"],!0),r=l.previousSibling;if(p===q&&(!r||1==r.nodeType&&"TABLE"==r.tagName)&&domUtils.isStartInblock(o)){var s=domUtils.findParent(g.selection.getStart(),function(a){return domUtils.isBlockElm(a)},!0);s&&(/t(h|d)/i.test(s.tagName)||s===q.firstChild)&&(g.execCommand("insertparagraphbeforetable"),domUtils.preventDefault(d))}}}}if((d.ctrlKey||d.metaKey)&&"67"==d.keyCode){a=null;var i=Z(g);if(i){var t=i.selectedTds;c=i.isFullCol(),f=i.isFullRow(),a=[[i.cloneCell(t[0],null,!0)]];for(var m,n=1;m=t[n];n++)m.parentNode!==t[n-1].parentNode?a.push([i.cloneCell(m,null,!0)]):a[a.length-1].push(i.cloneCell(m,null,!0))}}}),N.addListener("tablehasdeleted",function(){m(this,!1,"",null),ea&&domUtils.remove(ea)}),N.addListener("beforepaste",function(d,g){var h=this,i=h.selection.getRange();if(domUtils.findParentByTagName(i.startContainer,"caption",!0)){var j=h.document.createElement("div");return j.innerHTML=g.html,void(g.html=j[browser.ie9below?"innerText":"textContent"])}var k=Z(h);if(a){h.fireEvent("saveScene");var l,m,i=h.selection.getRange(),n=domUtils.findParentByTagName(i.startContainer,["td","th"],!0);if(n){var o=Y(n);if(f){var p=o.getCellInfo(n).rowIndex;"TH"==n.tagName&&p++;for(var q,r=0;q=a[r++];){for(var s,t=o.insertRow(p++,"td"),u=0;s=q[u];u++){var v=t.cells[u];v||(v=t.insertCell(u)),v.innerHTML=s.innerHTML,s.getAttribute("width")&&v.setAttribute("width",s.getAttribute("width")),s.getAttribute("vAlign")&&v.setAttribute("vAlign",s.getAttribute("vAlign")),s.getAttribute("align")&&v.setAttribute("align",s.getAttribute("align")),s.style.cssText&&(v.style.cssText=s.style.cssText)}for(var s,u=0;(s=t.cells[u])&&q[u];u++)s.innerHTML=q[u].innerHTML,q[u].getAttribute("width")&&s.setAttribute("width",q[u].getAttribute("width")),q[u].getAttribute("vAlign")&&s.setAttribute("vAlign",q[u].getAttribute("vAlign")),q[u].getAttribute("align")&&s.setAttribute("align",q[u].getAttribute("align")),q[u].style.cssText&&(s.style.cssText=q[u].style.cssText)}}else{if(c){y=o.getCellInfo(n);for(var s,w=0,u=0,q=a[0];s=q[u++];)w+=s.colSpan||1;for(h.__hasEnterExecCommand=!0,r=0;r<w;r++)h.execCommand("insertcol");h.__hasEnterExecCommand=!1,n=o.table.rows[0].cells[y.cellIndex],"TH"==n.tagName&&(n=o.table.rows[1].cells[y.cellIndex])}for(var q,r=0;q=a[r++];){l=n;for(var s,u=0;s=q[u++];)if(n)n.innerHTML=s.innerHTML,s.getAttribute("width")&&n.setAttribute("width",s.getAttribute("width")),s.getAttribute("vAlign")&&n.setAttribute("vAlign",s.getAttribute("vAlign")),s.getAttribute("align")&&n.setAttribute("align",s.getAttribute("align")),s.style.cssText&&(n.style.cssText=s.style.cssText),m=n,n=n.nextSibling;else{var x=s.cloneNode(!0);domUtils.removeAttributes(x,["class","rowSpan","colSpan"]),m.parentNode.appendChild(x)}if(n=o.getNextCell(l,!0,!0),!a[r])break;if(!n){var y=o.getCellInfo(l);o.table.insertRow(o.table.rows.length),o.update(),n=o.getVSideCell(l,!0)}}}o.update()}else{k=h.document.createElement("table");for(var q,r=0;q=a[r++];){for(var s,t=k.insertRow(k.rows.length),u=0;s=q[u++];)x=X.cloneCell(s,null,!0),domUtils.removeAttributes(x,["class"]),t.appendChild(x);2==u&&x.rowSpan>1&&(x.rowSpan=1)}var z=$(h),A=h.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(h.body,"margin-left"),10):0)-2*z.tableBorder-(h.options.offsetWidth||0);h.execCommand("insertHTML","<table  "+(c&&f?'width="'+A+'"':"")+">"+k.innerHTML.replace(/>\s*</g,"><").replace(/\bth\b/gi,"td")+"</table>")}return h.fireEvent("contentchange"),h.fireEvent("saveScene"),g.html="",!0}var B,j=h.document.createElement("div");j.innerHTML=g.html,B=j.getElementsByTagName("table"),domUtils.findParentByTagName(h.selection.getStart(),"table")?(utils.each(B,function(a){domUtils.remove(a)}),domUtils.findParentByTagName(h.selection.getStart(),"caption",!0)&&(j.innerHTML=j[browser.ie?"innerText":"textContent"])):utils.each(B,function(a){b(a,!0),domUtils.removeAttributes(a,["style","border"]),utils.each(domUtils.getElementsByTagName(a,"td"),function(a){e(a)&&domUtils.fillNode(h.document,a),b(a,!0)})}),g.html=j.innerHTML}),N.addListener("afterpaste",function(){utils.each(domUtils.getElementsByTagName(N.body,"table"),function(a){if(a.offsetWidth>N.body.offsetWidth){var b=$(N,a);a.style.width=N.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(N.body,"margin-left"),10):0)-2*b.tableBorder-(N.options.offsetWidth||0)+"px"}})}),N.addListener("blur",function(){a=null});var i;N.addListener("keydown",function(){clearTimeout(i),i=setTimeout(function(){var a=N.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,["th","td"],!0);if(b){var c=b.parentNode.parentNode.parentNode;c.offsetWidth>c.getAttribute("width")&&(b.style.wordBreak="break-all")}},100)}),N.addListener("selectionchange",function(){m(N,!1,"",null)}),N.addListener("contentchange",function(){var a=this;if(I(a),!Z(a)){var b=a.selection.getRange(),c=b.startContainer;c=domUtils.findParentByTagName(c,["td","th"],!0),utils.each(domUtils.getElementsByTagName(a.document,"table"),function(b){a.fireEvent("excludetable",b)!==!0&&(b.ueTable=new X(b),b.onmouseover=function(){a.fireEvent("tablemouseover",b)},b.onmousemove=function(){a.fireEvent("tablemousemove",b),a.options.tableDragable&&h(!0,this,a),utils.defer(function(){a.fireEvent("contentchange",50)},!0)},b.onmouseout=function(){a.fireEvent("tablemouseout",b),m(a,!1,"",null),I(a)},b.onclick=function(b){b=a.window.event||b;var c=d(b.target||b.srcElement);if(c){var e,f=Y(c),g=f.table,h=f.getCellInfo(c),i=a.selection.getRange();if(j(g,c,b,!0)){var k=f.getCell(f.indexTable[f.rowsNum-1][h.colIndex].rowIndex,f.indexTable[f.rowsNum-1][h.colIndex].cellIndex);return void(b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==k?(e=f.getCellsRange(f.selectedTds[0],k),f.setSelected(e)):i&&i.selectNodeContents(k).select():c!==k?(e=f.getCellsRange(c,k),f.setSelected(e)):i&&i.selectNodeContents(k).select())}if(j(g,c,b)){var l=f.getCell(f.indexTable[h.rowIndex][f.colsNum-1].rowIndex,f.indexTable[h.rowIndex][f.colsNum-1].cellIndex);b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==l?(e=f.getCellsRange(f.selectedTds[0],l),f.setSelected(e)):i&&i.selectNodeContents(l).select():c!==l?(e=f.getCellsRange(c,l),f.setSelected(e)):i&&i.selectNodeContents(l).select()}}})}),K(a,!0)}}),domUtils.on(N.document,"mousemove",g),domUtils.on(N.document,"mouseout",function(a){var b=a.target||a.srcElement;"TABLE"==b.tagName&&m(N,!1,"",null)}),N.addListener("interlacetable",function(a,b,c){if(b)for(var d=this,e=b.rows,f=e.length,g=function(a,b,c){return a[b]?a[b]:c?a[b%a.length]:""},h=0;h<f;h++)e[h].className=g(c||d.options.classList,h,!0)}),N.addListener("uninterlacetable",function(a,b){if(b)for(var c=this,d=b.rows,e=c.options.classList,f=d.length,g=0;g<f;g++)domUtils.removeClasses(d[g],e)}),N.addListener("mousedown",o),N.addListener("mouseup",w),domUtils.on(N.body,"dragstart",function(a){w.call(N,"dragstart",a)}),N.addOutputRule(function(a){utils.each(a.getNodesByTagName("div"),function(a){"ue_tableDragLine"==a.getAttr("id")&&a.parentNode.removeChild(a)})});var k=0;N.addListener("mousedown",function(){k=0}),N.addListener("tabkeydown",function(){var a=this.selection.getRange(),b=a.getCommonAncestor(!0,!0),c=domUtils.findParentByTagName(b,"table");if(c){if(domUtils.findParentByTagName(b,"caption",!0)){var d=domUtils.getElementsByTagName(c,"th td");d&&d.length&&a.setStart(d[0],0).setCursor(!1,!0)}else{var d=domUtils.findParentByTagName(b,["td","th"],!0),f=Y(d);k=d.rowSpan>1?k:f.getCellInfo(d).rowIndex;var g=f.getTabNextCell(d,k);g?e(g)?a.setStart(g,0).setCursor(!1,!0):a.selectNodeContents(g).select():(N.fireEvent("saveScene"),N.__hasEnterExecCommand=!0,this.execCommand("insertrownext"),N.__hasEnterExecCommand=!1,a=this.selection.getRange(),a.setStart(c.rows[c.rows.length-1].cells[0],0).setCursor(),N.fireEvent("saveScene"))}return!0}}),browser.ie&&N.addListener("selectionchange",function(){m(this,!1,"",null)}),N.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(8!=d&&46!=d){var e=!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey);e&&_(domUtils.getElementsByTagName(c.body,"td"));var f=Z(c);f&&e&&f.clearSelected()}}),N.addListener("beforegetcontent",function(){K(this,!1),browser.ie&&utils.each(this.document.getElementsByTagName("caption"),function(a){domUtils.isEmptyNode(a)&&(a.innerHTML="&nbsp;")})}),N.addListener("aftergetcontent",function(){K(this,!0)}),N.addListener("getAllHtml",function(){_(N.document.getElementsByTagName("td"))}),N.addListener("fullscreenchanged",function(a,b){if(!b){var c=this.body.offsetWidth/document.body.offsetWidth,d=domUtils.getElementsByTagName(this.body,"table");utils.each(d,function(a){if(a.offsetWidth<N.body.offsetWidth)return!1;var b=domUtils.getElementsByTagName(a,"td"),d=[];utils.each(b,function(a){d.push(a.offsetWidth)});for(var e,f=0;e=b[f];f++)e.setAttribute("width",Math.floor(d[f]*c));a.setAttribute("width",Math.floor(L(N,ja,$(N))))})}});var l=N.execCommand;N.execCommand=function(a,b){var c=this;a=a.toLowerCase();var d,f,g=Z(c),h=new dom.Range(c.document),i=c.commands[a]||UE.commands[a];if(i){if(!g||ka[a]||i.notNeedUndo||c.__hasEnterExecCommand)f=l.apply(c,arguments);else{c.__hasEnterExecCommand=!0,c.fireEvent("beforeexeccommand",a),d=g.selectedTds;for(var j,k,m,n=-2,o=-2,p=0;m=d[p];p++)e(m)?h.setStart(m,0).setCursor(!1,!0):h.selectNode(m).select(!0),k=c.queryCommandState(a),j=c.queryCommandValue(a),k!=-1&&(n===k&&o===j||(c._ignoreContentChange=!0,f=l.apply(c,arguments),c._ignoreContentChange=!1),n=c.queryCommandState(a),o=c.queryCommandValue(a),domUtils.isEmptyBlock(m)&&domUtils.fillNode(c.document,m));h.setStart(d[0],0).shrinkBoundary(!0).setCursor(!1,!0),c.fireEvent("contentchange"),c.fireEvent("afterexeccommand",a),c.__hasEnterExecCommand=!1,c._selectionChange()}return f}}});var la},UE.UETable.prototype.sortTable=function(a,b){var c=this.table,d=c.rows,e=[],f="TH"===d[0].cells[0].tagName,g=0;if(this.selectedTds.length){for(var h=this.cellsRange,i=h.endRowIndex+1,j=h.beginRowIndex;j<i;j++)e[j]=d[j];
-e.splice(0,h.beginRowIndex),g=h.endRowIndex+1===this.rowsNum?0:h.endRowIndex+1}else for(var j=0,i=d.length;j<i;j++)e[j]=d[j];var k={reversecurrent:function(a,b){return 1},orderbyasc:function(a,b){var c=a.innerText||a.textContent,d=b.innerText||b.textContent;return c.localeCompare(d)},reversebyasc:function(a,b){var c=a.innerHTML,d=b.innerHTML;return d.localeCompare(c)},orderbynum:function(a,b){var c=a[browser.ie?"innerText":"textContent"].match(/\d+/),d=b[browser.ie?"innerText":"textContent"].match(/\d+/);return c&&(c=+c[0]),d&&(d=+d[0]),(c||0)-(d||0)},reversebynum:function(a,b){var c=a[browser.ie?"innerText":"textContent"].match(/\d+/),d=b[browser.ie?"innerText":"textContent"].match(/\d+/);return c&&(c=+c[0]),d&&(d=+d[0]),(d||0)-(c||0)}};c.setAttribute("data-sort-type",b&&"string"==typeof b&&k[b]?b:""),f&&e.splice(0,1),e=utils.sort(e,function(c,d){var e;return e=b&&"function"==typeof b?b.call(this,c.cells[a],d.cells[a]):b&&"number"==typeof b?1:b&&"string"==typeof b&&k[b]?k[b].call(this,c.cells[a],d.cells[a]):k.orderbyasc.call(this,c.cells[a],d.cells[a])});for(var l=c.ownerDocument.createDocumentFragment(),m=0,i=e.length;m<i;m++)l.appendChild(e[m]);var n=c.getElementsByTagName("tbody")[0];g?n.insertBefore(l,d[g-h.endRowIndex+h.beginRowIndex-1]):n.appendChild(l)},UE.plugins.tablesort=function(){var a=this,b=UE.UETable,c=function(a){return b.getUETable(a)},d=function(a){return b.getTableItemsByRange(a)};a.ready(function(){utils.cssRule("tablesort","table.sortEnabled tr.firstRow th,table.sortEnabled tr.firstRow td{padding-right:20px;background-repeat: no-repeat;background-position: center right;   background-image:url("+a.options.themePath+a.options.theme+"/images/sortable.png);}",a.document),a.addListener("afterexeccommand",function(a,b){"mergeright"!=b&&"mergedown"!=b&&"mergecells"!=b||this.execCommand("disablesort")})}),UE.commands.sorttable={queryCommandState:function(){var a=this,b=d(a);if(!b.cell)return-1;for(var c,e=b.table,f=e.getElementsByTagName("td"),g=0;c=f[g++];)if(1!=c.rowSpan||1!=c.colSpan)return-1;return 0},execCommand:function(a,b){var e=this,f=e.selection.getRange(),g=f.createBookmark(!0),h=d(e),i=h.cell,j=c(h.table),k=j.getCellInfo(i);j.sortTable(k.cellIndex,b),f.moveToBookmark(g);try{f.select()}catch(l){}}},UE.commands.enablesort=UE.commands.disablesort={queryCommandState:function(a){var b=d(this).table;if(b&&"enablesort"==a)for(var c=domUtils.getElementsByTagName(b,"th td"),e=0;e<c.length;e++)if(c[e].getAttribute("colspan")>1||c[e].getAttribute("rowspan")>1)return-1;return b?"enablesort"==a^"sortEnabled"!=b.getAttribute("data-sort")?-1:0:-1},execCommand:function(a){var b=d(this).table;b.setAttribute("data-sort","enablesort"==a?"sortEnabled":"sortDisabled"),"enablesort"==a?domUtils.addClass(b,"sortEnabled"):domUtils.removeClasses(b,"sortEnabled")}}},UE.plugins.contextmenu=function(){var a=this;if(a.setOpt("enableContextMenu",!0),a.getOpt("enableContextMenu")!==!1){var b,c=a.getLang("contextMenu"),d=a.options.contextMenu||[{label:c.selectall,cmdName:"selectall"},{label:c.cleardoc,cmdName:"cleardoc",exec:function(){confirm(c.confirmclear)&&this.execCommand("cleardoc")}},"-",{label:c.unlink,cmdName:"unlink"},"-",{group:c.paragraph,icon:"justifyjustify",subMenu:[{label:c.justifyleft,cmdName:"justify",value:"left"},{label:c.justifyright,cmdName:"justify",value:"right"},{label:c.justifycenter,cmdName:"justify",value:"center"},{label:c.justifyjustify,cmdName:"justify",value:"justify"}]},"-",{group:c.table,icon:"table",subMenu:[{label:c.inserttable,cmdName:"inserttable"},{label:c.deletetable,cmdName:"deletetable"},"-",{label:c.deleterow,cmdName:"deleterow"},{label:c.deletecol,cmdName:"deletecol"},{label:c.insertcol,cmdName:"insertcol"},{label:c.insertcolnext,cmdName:"insertcolnext"},{label:c.insertrow,cmdName:"insertrow"},{label:c.insertrownext,cmdName:"insertrownext"},"-",{label:c.insertcaption,cmdName:"insertcaption"},{label:c.deletecaption,cmdName:"deletecaption"},{label:c.inserttitle,cmdName:"inserttitle"},{label:c.deletetitle,cmdName:"deletetitle"},{label:c.inserttitlecol,cmdName:"inserttitlecol"},{label:c.deletetitlecol,cmdName:"deletetitlecol"},"-",{label:c.mergecells,cmdName:"mergecells"},{label:c.mergeright,cmdName:"mergeright"},{label:c.mergedown,cmdName:"mergedown"},"-",{label:c.splittorows,cmdName:"splittorows"},{label:c.splittocols,cmdName:"splittocols"},{label:c.splittocells,cmdName:"splittocells"},"-",{label:c.averageDiseRow,cmdName:"averagedistributerow"},{label:c.averageDisCol,cmdName:"averagedistributecol"},"-",{label:c.edittd,cmdName:"edittd",exec:function(){UE.ui.edittd&&new UE.ui.edittd(this),this.getDialog("edittd").open()}},{label:c.edittable,cmdName:"edittable",exec:function(){UE.ui.edittable&&new UE.ui.edittable(this),this.getDialog("edittable").open()}},{label:c.setbordervisible,cmdName:"setbordervisible"}]},{group:c.tablesort,icon:"tablesort",subMenu:[{label:c.enablesort,cmdName:"enablesort"},{label:c.disablesort,cmdName:"disablesort"},"-",{label:c.reversecurrent,cmdName:"sorttable",value:"reversecurrent"},{label:c.orderbyasc,cmdName:"sorttable",value:"orderbyasc"},{label:c.reversebyasc,cmdName:"sorttable",value:"reversebyasc"},{label:c.orderbynum,cmdName:"sorttable",value:"orderbynum"},{label:c.reversebynum,cmdName:"sorttable",value:"reversebynum"}]},{group:c.borderbk,icon:"borderBack",subMenu:[{label:c.setcolor,cmdName:"interlacetable",exec:function(){this.execCommand("interlacetable")}},{label:c.unsetcolor,cmdName:"uninterlacetable",exec:function(){this.execCommand("uninterlacetable")}},{label:c.setbackground,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#bbb","#ccc"]})}},{label:c.unsetbackground,cmdName:"cleartablebackground",exec:function(){this.execCommand("cleartablebackground")}},{label:c.redandblue,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["red","blue"]})}},{label:c.threecolorgradient,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#aaa","#bbb","#ccc"]})}}]},{group:c.aligntd,icon:"aligntd",subMenu:[{cmdName:"cellalignment",value:{align:"left",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"bottom"}}]},{group:c.aligntable,icon:"aligntable",subMenu:[{cmdName:"tablealignment",className:"left",label:c.tableleft,value:"left"},{cmdName:"tablealignment",className:"center",label:c.tablecenter,value:"center"},{cmdName:"tablealignment",className:"right",label:c.tableright,value:"right"}]},"-",{label:c.insertparagraphbefore,cmdName:"insertparagraph",value:!0},{label:c.insertparagraphafter,cmdName:"insertparagraph"},{label:c.copy,cmdName:"copy"},{label:c.paste,cmdName:"paste"}];if(d.length){var e=UE.ui.uiUtils;a.addListener("contextmenu",function(f,g){var h=e.getViewportOffsetByEvent(g);a.fireEvent("beforeselectionchange"),b&&b.destroy();for(var i,j=0,k=[];i=d[j];j++){var l;!function(b){function d(){switch(b.icon){case"table":return a.getLang("contextMenu.table");case"justifyjustify":return a.getLang("contextMenu.paragraph");case"aligntd":return a.getLang("contextMenu.aligntd");case"aligntable":return a.getLang("contextMenu.aligntable");case"tablesort":return c.tablesort;case"borderBack":return c.borderbk;default:return""}}if("-"==b)(l=k[k.length-1])&&"-"!==l&&k.push("-");else if(b.hasOwnProperty("group")){for(var e,f=0,g=[];e=b.subMenu[f];f++)!function(b){"-"==b?(l=g[g.length-1])&&"-"!==l?g.push("-"):g.splice(g.length-1):(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query():a.queryCommandState(b.cmdName))>-1&&g.push({label:b.label||a.getLang("contextMenu."+b.cmdName+(b.value||""))||"",className:"edui-for-"+b.cmdName+(b.className?" edui-for-"+b.cmdName+"-"+b.className:""),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(e);g.length&&k.push({label:d(),className:"edui-for-"+b.icon,subMenu:{items:g,editor:a}})}else(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query.call(a):a.queryCommandState(b.cmdName))>-1&&k.push({label:b.label||a.getLang("contextMenu."+b.cmdName),className:"edui-for-"+(b.icon?b.icon:b.cmdName+(b.value||"")),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(i)}if("-"==k[k.length-1]&&k.pop(),b=new UE.ui.Menu({items:k,className:"edui-contextmenu",editor:a}),b.render(),b.showAt(h),a.fireEvent("aftershowcontextmenu",b),domUtils.preventDefault(g),browser.ie){var m;try{m=a.selection.getNative().createRange()}catch(n){return}if(m.item){var o=new dom.Range(a.document);o.selectNode(m.item(0)).select(!0,!0)}}}),a.addListener("aftershowcontextmenu",function(b,c){if(a.zeroclipboard){var d=c.items;for(var e in d)"edui-for-copy"==d[e].className&&a.zeroclipboard.clip(d[e].getDom())}})}}},UE.plugins.shortcutmenu=function(){var a,b=this,c=b.options.shortcutMenu||[];c.length&&(b.addListener("contextmenu mouseup",function(b,d){var e=this,f={type:b,target:d.target||d.srcElement,screenX:d.screenX,screenY:d.screenY,clientX:d.clientX,clientY:d.clientY};if(setTimeout(function(){var d=e.selection.getRange();d.collapsed!==!1&&"contextmenu"!=b||(a||(a=new baidu.editor.ui.ShortCutMenu({editor:e,items:c,theme:e.options.theme,className:"edui-shortcutmenu"}),a.render(),e.fireEvent("afterrendershortcutmenu",a)),a.show(f,!!UE.plugins.contextmenu))}),"contextmenu"==b&&(domUtils.preventDefault(d),browser.ie9below)){var g;try{g=e.selection.getNative().createRange()}catch(d){return}if(g.item){var h=new dom.Range(e.document);h.selectNode(g.item(0)).select(!0,!0)}}}),b.addListener("keydown",function(b){"keydown"==b&&a&&!a.isHidden&&a.hide()}))},UE.plugins.basestyle=function(){var a={bold:["strong","b"],italic:["em","i"],subscript:["sub"],superscript:["sup"]},b=function(a,b){return domUtils.filterNodeList(a.selection.getStartElementPath(),b)},c=this;c.addshortcutkey({Bold:"ctrl+66",Italic:"ctrl+73",Underline:"ctrl+85"}),c.addInputRule(function(a){utils.each(a.getNodesByTagName("b i"),function(a){switch(a.tagName){case"b":a.tagName="strong";break;case"i":a.tagName="em"}})});for(var d in a)!function(a,d){c.commands[a]={execCommand:function(a){var e=c.selection.getRange(),f=b(this,d);if(e.collapsed){if(f){var g=c.document.createTextNode("");e.insertNode(g).removeInlineStyle(d),e.setStartBefore(g),domUtils.remove(g)}else{var h=e.document.createElement(d[0]);"superscript"!=a&&"subscript"!=a||(g=c.document.createTextNode(""),e.insertNode(g).removeInlineStyle(["sub","sup"]).setStartBefore(g).collapse(!0)),e.insertNode(h).setStart(h,0)}e.collapse(!0)}else"superscript"!=a&&"subscript"!=a||f&&f.tagName.toLowerCase()==a||e.removeInlineStyle(["sub","sup"]),f?e.removeInlineStyle(d):e.applyInlineStyle(d[0]);e.select()},queryCommandState:function(){return b(this,d)?1:0}}}(d,a[d])},UE.plugins.elementpath=function(){var a,b,c=this;c.setOpt("elementPathEnabled",!0),c.options.elementPathEnabled&&(c.commands.elementpath={execCommand:function(d,e){var f=b[e],g=c.selection.getRange();a=1*e,g.selectNode(f).select()},queryCommandValue:function(){var c=[].concat(this.selection.getStartElementPath()).reverse(),d=[];b=c;for(var e,f=0;e=c[f];f++)if(3!=e.nodeType){var g=e.tagName.toLowerCase();if("img"==g&&e.getAttribute("anchorname")&&(g="anchor"),d[f]=g,a==f){a=-1;break}}return d}})},UE.plugins.formatmatch=function(){function a(f,g){function h(a){return m&&a.selectNode(m),a.applyInlineStyle(d[d.length-1].tagName,null,d)}if(browser.webkit)var i="IMG"==g.target.tagName?g.target:null;c.undoManger&&c.undoManger.save();var j=c.selection.getRange(),k=i||j.getClosedNode();if(b&&k&&"IMG"==k.tagName)k.style.cssText+=";float:"+(b.style.cssFloat||b.style.styleFloat||"none")+";display:"+(b.style.display||"inline"),b=null;else if(!b){var l=j.collapsed;if(l){var m=c.document.createTextNode("match");j.insertNode(m).select()}c.__hasEnterExecCommand=!0;var n=c.options.removeFormatAttributes;c.options.removeFormatAttributes="",c.execCommand("removeformat"),c.options.removeFormatAttributes=n,c.__hasEnterExecCommand=!1,j=c.selection.getRange(),d.length&&h(j),m&&j.setStartBefore(m).collapse(!0),j.select(),m&&domUtils.remove(m)}c.undoManger&&c.undoManger.save(),c.removeListener("mouseup",a),e=0}var b,c=this,d=[],e=0;c.addListener("reset",function(){d=[],e=0}),c.commands.formatmatch={execCommand:function(f){if(e)return e=0,d=[],void c.removeListener("mouseup",a);var g=c.selection.getRange();if(b=g.getClosedNode(),!b||"IMG"!=b.tagName){g.collapse(!0).shrinkBoundary();var h=g.startContainer;d=domUtils.findParents(h,!0,function(a){return!domUtils.isBlockElm(a)&&1==a.nodeType});for(var i,j=0;i=d[j];j++)if("A"==i.tagName){d.splice(j,1);break}}c.addListener("mouseup",a),e=1},queryCommandState:function(){return e},notNeedUndo:1}},UE.plugin.register("searchreplace",function(){function a(a,b,c){var d=b.searchStr;b.dir==-1&&(a=a.split("").reverse().join(""),d=d.split("").reverse().join(""),c=a.length-c);for(var e,f=new RegExp(d,"g"+(b.casesensitive?"":"i"));e=f.exec(a);)if(e.index>=c)return b.dir==-1?a.length-e.index-b.searchStr.length:e.index;return-1}function b(b,c,d){var e,f,h=d.all||1==d.dir?"getNextDomNode":"getPreDomNode";domUtils.isBody(b)&&(b=b.firstChild);for(var i=1;b;){if(e=3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"],f=a(e,d,c),i=0,f!=-1)return{node:b,index:f};for(b=domUtils[h](b);b&&g[b.nodeName.toLowerCase()];)b=domUtils[h](b,!0);b&&(c=d.dir==-1?(3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"]).length:0)}}function c(a,b,d){for(var e,f=0,g=a.firstChild,h=0;g;){if(3==g.nodeType){if(h=g.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b)return{node:g,index:h-(f-b)}}else if(!dtd.$empty[g.tagName]&&(h=g[browser.ie?"innerText":"textContent"].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b&&(e=c(g,h-(f-b),d))))return e;g=domUtils.getNextDomNode(g)}}function d(a,d){var f,g=a.selection.getRange(),h=d.searchStr,i=a.document.createElement("span");if(i.innerHTML="$$ueditor_searchreplace_key$$",g.shrinkBoundary(!0),!g.collapsed){g.select();var j=a.selection.getText();if(new RegExp("^"+d.searchStr+"$",d.casesensitive?"":"i").test(j)){if(void 0!=d.replaceStr)return e(g,d.replaceStr),g.select(),!0;g.collapse(d.dir==-1)}}g.insertNode(i),g.enlargeToBlockElm(!0),f=g.startContainer;var k=f[browser.ie?"innerText":"textContent"].indexOf("$$ueditor_searchreplace_key$$");g.setStartBefore(i),domUtils.remove(i);var l=b(f,k,d);if(l){var m=c(l.node,l.index,h),n=c(l.node,l.index+h.length,h);return g.setStart(m.node,m.index).setEnd(n.node,n.index),void 0!==d.replaceStr&&e(g,d.replaceStr),g.select(),!0}g.setCursor()}function e(a,b){b=f.document.createTextNode(b),a.deleteContents().insertNode(b)}var f=this,g={table:1,tbody:1,tr:1,ol:1,ul:1};return{commands:{searchreplace:{execCommand:function(a,b){utils.extend(b,{all:!1,casesensitive:!1,dir:1},!0);var c=0;if(b.all){var e=f.selection.getRange(),g=f.body.firstChild;for(g&&1==g.nodeType?(e.setStart(g,0),e.shrinkBoundary(!0)):3==g.nodeType&&e.setStartBefore(g),e.collapse(!0).select(!0),void 0!==b.replaceStr&&f.fireEvent("saveScene");d(this,b);)c++;c&&f.fireEvent("saveScene")}else void 0!==b.replaceStr&&f.fireEvent("saveScene"),d(this,b)&&c++,c&&f.fireEvent("saveScene");return c},notNeedUndo:1}}}}),UE.plugins.customstyle=function(){var a=this;a.setOpt({customstyle:[{tag:"h1",name:"tc",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;"},{tag:"h1",name:"tl",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;"},{tag:"span",name:"im",style:"font-size:16px;font-style:italic;font-weight:bold;line-height:18px;"},{tag:"span",name:"hi",style:"font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;"}]}),a.commands.customstyle={execCommand:function(a,b){var c,d,e=this,f=b.tag,g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")},!0),h={};for(var i in b)void 0!==b[i]&&(h[i]=b[i]);if(delete h.tag,g&&g.getAttribute("label")==b.label){if(c=this.selection.getRange(),d=c.createBookmark(),c.collapsed)if(dtd.$block[g.tagName]){var j=e.document.createElement("p");domUtils.moveChild(g,j),g.parentNode.insertBefore(j,g),domUtils.remove(g)}else domUtils.remove(g,!0);else{var k=domUtils.getCommonAncestor(d.start,d.end),l=domUtils.getElementsByTagName(k,f);new RegExp(f,"i").test(k.tagName)&&l.push(k);for(var m,n=0;m=l[n++];)if(m.getAttribute("label")==b.label){var o=domUtils.getPosition(m,d.start),p=domUtils.getPosition(m,d.end);if((o&domUtils.POSITION_FOLLOWING||o&domUtils.POSITION_CONTAINS)&&(p&domUtils.POSITION_PRECEDING||p&domUtils.POSITION_CONTAINS)&&dtd.$block[f]){var j=e.document.createElement("p");domUtils.moveChild(m,j),m.parentNode.insertBefore(j,m)}domUtils.remove(m,!0)}g=domUtils.findParent(k,function(a){return a.getAttribute("label")==b.label},!0),g&&domUtils.remove(g,!0)}c.moveToBookmark(d).select()}else if(dtd.$block[f]){if(this.execCommand("paragraph",f,h,"customstyle"),c=e.selection.getRange(),!c.collapsed){c.collapse(),g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")==b.label},!0);var q=e.document.createElement("p");domUtils.insertAfter(g,q),domUtils.fillNode(e.document,q),c.setStart(q,0).setCursor()}}else{if(c=e.selection.getRange(),c.collapsed)return g=e.document.createElement(f),domUtils.setAttributes(g,h),void c.insertNode(g).setStart(g,0).setCursor();d=c.createBookmark(),c.applyInlineStyle(f,h).moveToBookmark(d).select()}},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return a.getAttribute("label")});return a?a.getAttribute("label"):""}},a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(32==d||13==d){var e=a.selection.getRange();if(e.collapsed){var f=domUtils.findParent(a.selection.getStart(),function(a){return a.getAttribute("label")},!0);if(f&&dtd.$block[f.tagName]&&domUtils.isEmptyNode(f)){var g=a.document.createElement("p");domUtils.insertAfter(f,g),domUtils.fillNode(a.document,g),domUtils.remove(f),e.setStart(g,0).setCursor()}}}})},UE.plugins.catchremoteimage=function(){var me=this,ajax=UE.ajax;me.options.catchRemoteImageEnable!==!1&&(me.setOpt({catchRemoteImageEnable:!1}),me.addListener("afterpaste",function(){me.fireEvent("catchRemoteImage")}),me.addListener("catchRemoteImage",function(){function catchremoteimage(a,b){var c=utils.serializeParam(me.queryCommandValue("serverparam"))||"",d=utils.formatUrl(catcherActionUrl+(catcherActionUrl.indexOf("?")==-1?"?":"&")+c),e=utils.isCrossDomainUrl(d),f={method:"POST",dataType:e?"jsonp":"",timeout:6e4,onsuccess:b.success,onerror:b.error};f[catcherFieldName]=a,ajax.request(d,f)}for(var catcherLocalDomain=me.getOpt("catcherLocalDomain"),catcherActionUrl=me.getActionUrl(me.getOpt("catcherActionName")),catcherUrlPrefix=me.getOpt("catcherUrlPrefix"),catcherFieldName=me.getOpt("catcherFieldName"),remoteImages=[],imgs=domUtils.getElementsByTagName(me.document,"img"),test=function(a,b){if(a.indexOf(location.host)!=-1||/(^\.)|(^\/)/.test(a))return!0;if(b)for(var c,d=0;c=b[d++];)if(a.indexOf(c)!==-1)return!0;return!1},i=0,ci;ci=imgs[i++];)if(!ci.getAttribute("word_img")){var src=ci.getAttribute("_src")||ci.src||"";/^(https?|ftp):/i.test(src)&&!test(src,catcherLocalDomain)&&remoteImages.push(src)}remoteImages.length&&catchremoteimage(remoteImages,{success:function(r){try{var info=void 0!==r.state?r:eval("("+r.responseText+")")}catch(e){return}var i,j,ci,cj,oldSrc,newSrc,list=info.list;for(i=0;ci=imgs[i++];)for(oldSrc=ci.getAttribute("_src")||ci.src||"",j=0;cj=list[j++];)if(oldSrc==cj.source&&"SUCCESS"==cj.state){newSrc=catcherUrlPrefix+cj.url,domUtils.setAttributes(ci,{src:newSrc,_src:newSrc});break}me.fireEvent("catchremotesuccess")},error:function(){me.fireEvent("catchremoteerror")}})}))},UE.plugin.register("snapscreen",function(){function getLocation(a){var b,c=document.createElement("a"),d=utils.serializeParam(me.queryCommandValue("serverparam"))||"";return c.href=a,browser.ie&&(c.href=c.href),b=c.search,d&&(b=b+(b.indexOf("?")==-1?"?":"&")+d,b=b.replace(/[&]+/gi,"&")),{port:c.port,hostname:c.hostname,path:c.pathname+b||+c.hash}}var me=this,snapplugin;return{commands:{snapscreen:{execCommand:function(cmd){function onSuccess(rs){try{if(rs=eval("("+rs+")"),"SUCCESS"==rs.state){var opt=me.options;me.execCommand("insertimage",{src:opt.snapscreenUrlPrefix+rs.url,_src:opt.snapscreenUrlPrefix+rs.url,alt:rs.title||"",floatStyle:opt.snapscreenImgAlign})}else alert(rs.state)}catch(e){alert(lang.callBackErrorMsg)}}var url,local,res,lang=me.getLang("snapScreen_plugin");if(!snapplugin){var container=me.container,doc=me.container.ownerDocument||me.container.document;snapplugin=doc.createElement("object");try{snapplugin.type="application/x-pluginbaidusnap"}catch(e){return}snapplugin.style.cssText="position:absolute;left:-9999px;width:0;height:0;",snapplugin.setAttribute("width","0"),snapplugin.setAttribute("height","0"),container.appendChild(snapplugin)}url=me.getActionUrl(me.getOpt("snapscreenActionName")),local=getLocation(url),setTimeout(function(){try{res=snapplugin.saveSnapshot(local.hostname,local.path,local.port)}catch(a){return void me.ui._dialogs.snapscreenDialog.open()}onSuccess(res)},50)},queryCommandState:function(){return navigator.userAgent.indexOf("Windows",0)!=-1?0:-1}}}}}),UE.commands.insertparagraph={execCommand:function(a,b){for(var c,d=this,e=d.selection.getRange(),f=e.startContainer;f&&!domUtils.isBody(f);)c=f,f=f.parentNode;if(c){var g=d.document.createElement("p");b?c.parentNode.insertBefore(g,c):c.parentNode.insertBefore(g,c.nextSibling),domUtils.fillNode(d.document,g),e.setStart(g,0).setCursor(!1,!0)}}},UE.plugin.register("webapp",function(){function a(a,c){return c?'<iframe class="edui-faked-webapp" title="'+a.title+'" '+(a.align&&!a.cssfloat?'align="'+a.align+'"':"")+(a.cssfloat?'style="float:'+a.cssfloat+'"':"")+'width="'+a.width+'" height="'+a.height+'"  scrolling="no" frameborder="0" src="'+a.url+'" logo_url = "'+a.logo+'"></iframe>':'<img title="'+a.title+'" width="'+a.width+'" height="'+a.height+'" src="'+b.options.UEDITOR_HOME_URL+'themes/default/images/spacer.gif" _logo_url="'+a.logo+'" style="background:url('+a.logo+') no-repeat center center; border:1px solid gray;" class="edui-faked-webapp" _url="'+a.url+'" '+(a.align&&!a.cssfloat?'align="'+a.align+'"':"")+(a.cssfloat?'style="float:'+a.cssfloat+'"':"")+"/>"}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-webapp"==b.getAttr("class")){c=a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("_url"),logo:b.getAttr("_logo_url")},!0);var d=UE.uNode.createElement(c);b.parentNode.replaceChild(d,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("iframe"),function(b){if("edui-faked-webapp"==b.getAttr("class")){var c=UE.uNode.createElement(a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("src"),logo:b.getAttr("logo_url")}));b.parentNode.replaceChild(c,b)}})},commands:{webapp:{execCommand:function(b,c){var d=this,e=a(utils.extend(c,{align:"none"}),!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-webapp"==b.className;return c?1:0}}}}}),UE.plugins.template=function(){UE.commands.template={execCommand:function(a,b){b.html&&this.execCommand("inserthtml",b.html)}},this.addListener("click",function(a,b){var c=b.target||b.srcElement,d=this.selection.getRange(),e=domUtils.findParent(c,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);e&&d.selectNode(e).shrinkBoundary().select()}),this.addListener("keydown",function(a,b){var c=this.selection.getRange();if(!c.collapsed&&!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){var d=domUtils.findParent(c.startContainer,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);d&&domUtils.removeClasses(d,["ue_t"])}})},UE.plugin.register("music",function(){function a(a,c,d,e,f,g){return g?'<embed type="application/x-shockwave-flash" class="edui-faked-music" pluginspage="http://www.macromedia.com/go/getflashplayer" src="'+a+'" width="'+c+'" height="'+d+'" '+(e&&!f?'align="'+e+'"':"")+(f?'style="float:'+f+'"':"")+' wmode="transparent" play="true" loop="false" menu="false" allowscriptaccess="never" allowfullscreen="true" >':"<img "+(e&&!f?'align="'+e+'"':"")+(f?'style="float:'+f+'"':"")+' width="'+c+'" height="'+d+'" _url="'+a+'" class="edui-faked-music" src="'+b.options.langPath+b.options.lang+'/images/music.png" />'}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-music"==b.getAttr("class")){var d=b.getStyle("float"),e=b.getAttr("align");c=a(b.getAttr("_url"),b.getAttr("width"),b.getAttr("height"),e,d,!0);var f=UE.uNode.createElement(c);b.parentNode.replaceChild(f,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("embed"),function(b){if("edui-faked-music"==b.getAttr("class")){var c=b.getStyle("float"),d=b.getAttr("align");html=a(b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),d,c,!1);var e=UE.uNode.createElement(html);b.parentNode.replaceChild(e,b)}})},commands:{music:{execCommand:function(b,c){var d=this,e=a(c.url,c.width||400,c.height||95,"none",!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-music"==b.className;return c?1:0}}}}}),UE.plugin.register("autoupload",function(){function a(a,b){var c,d,e,f,g,h,i,j,k=b,l=/image\/\w+/i.test(a.type)?"image":"file",m="loading_"+(+new Date).toString(36);if(c=k.getOpt(l+"FieldName"),d=k.getOpt(l+"UrlPrefix"),e=k.getOpt(l+"MaxSize"),f=k.getOpt(l+"AllowFiles"),g=k.getActionUrl(k.getOpt(l+"ActionName")),i=function(a){var b=k.document.getElementById(m);b&&domUtils.remove(b),k.fireEvent("showmessage",{id:m,content:a,type:"error",timeout:4e3})},"image"==l?(h='<img class="loadingclass" id="'+m+'" src="'+k.options.themePath+k.options.theme+'/images/spacer.gif" title="'+(k.getLang("autoupload.loading")||"")+'" >',j=function(a){var b=d+a.url,c=k.document.getElementById(m);c&&(c.setAttribute("src",b),c.setAttribute("_src",b),c.setAttribute("title",a.title||""),c.setAttribute("alt",a.original||""),c.removeAttribute("id"),domUtils.removeClasses(c,"loadingclass"))}):(h='<p><img class="loadingclass" id="'+m+'" src="'+k.options.themePath+k.options.theme+'/images/spacer.gif" title="'+(k.getLang("autoupload.loading")||"")+'" ></p>',j=function(a){var b=d+a.url,c=k.document.getElementById(m),e=k.selection.getRange(),f=e.createBookmark();e.selectNode(c).select(),k.execCommand("insertfile",{url:b}),e.moveToBookmark(f).select()}),k.execCommand("inserthtml",h),!k.getOpt(l+"ActionName"))return void i(k.getLang("autoupload.errorLoadConfig"));if(a.size>e)return void i(k.getLang("autoupload.exceedSizeError"));var n=a.name?a.name.substr(a.name.lastIndexOf(".")):"";if(n&&"image"!=l||f&&(f.join("")+".").indexOf(n.toLowerCase()+".")==-1)return void i(k.getLang("autoupload.exceedTypeError"));var o=new XMLHttpRequest,p=new FormData,q=utils.serializeParam(k.queryCommandValue("serverparam"))||"",r=utils.formatUrl(g+(g.indexOf("?")==-1?"?":"&")+q);p.append(c,a,a.name||"blob."+a.type.substr("image/".length)),p.append("type","ajax"),o.open("post",r,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.addEventListener("load",function(a){try{var b=new Function("return "+utils.trim(a.target.response))();"SUCCESS"==b.state&&b.url?j(b):i(b.state)}catch(c){i(k.getLang("autoupload.loadError"))}}),o.send(p)}function b(a){return a.clipboardData&&a.clipboardData.items&&1==a.clipboardData.items.length&&/^image\//.test(a.clipboardData.items[0].type)?a.clipboardData.items:null}function c(a){return a.dataTransfer&&a.dataTransfer.files?a.dataTransfer.files:null}return{outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)}),utils.each(a.getNodesByTagName("p"),function(a){/\bloadpara\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})},bindEvents:{ready:function(d){var e=this;window.FormData&&window.FileReader&&(domUtils.on(e.body,"paste drop",function(d){var f,g=!1;if(f="paste"==d.type?b(d):c(d)){for(var h,i=f.length;i--;)h=f[i],h.getAsFile&&(h=h.getAsFile()),h&&h.size>0&&(a(h,e),g=!0);g&&d.preventDefault()}}),domUtils.on(e.body,"dragover",function(a){"Files"==a.dataTransfer.types[0]&&a.preventDefault()}),utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document))}}}}),UE.plugin.register("autosave",function(){function a(a){var f;if(!(new Date-c<d)){if(!a.hasContents())return void(e&&b.removePreferences(e));c=new Date,a._saveFlag=null,f=b.body.innerHTML,a.fireEvent("beforeautosave",{content:f})!==!1&&(b.setPreferences(e,f),a.fireEvent("afterautosave",{content:f}))}}var b=this,c=new Date,d=20,e=null;return{defaultOptions:{saveInterval:500,enableAutoSave:!0},bindEvents:{ready:function(){var a="-drafts-data",c=null;c=b.key?b.key+a:(b.container.parentNode.id||"ue-common")+a,e=(location.protocol+location.host+location.pathname).replace(/[.:\/]/g,"_")+c},contentchange:function(){b.getOpt("enableAutoSave")&&e&&(b._saveFlag&&window.clearTimeout(b._saveFlag),b.options.saveInterval>0?b._saveFlag=window.setTimeout(function(){a(b)},b.options.saveInterval):a(b))}},commands:{clearlocaldata:{execCommand:function(a,c){e&&b.getPreferences(e)&&b.removePreferences(e)},notNeedUndo:!0,ignoreContentChange:!0},getlocaldata:{execCommand:function(a,c){return e?b.getPreferences(e)||"":""},notNeedUndo:!0,ignoreContentChange:!0},drafts:{execCommand:function(a,c){e&&(b.body.innerHTML=b.getPreferences(e)||"<p>"+domUtils.fillHtml+"</p>",b.focus(!0))},queryCommandState:function(){return e?null===b.getPreferences(e)?-1:0:-1},notNeedUndo:!0,ignoreContentChange:!0}}}}),UE.plugin.register("charts",function(){function a(a){var b=null,c=0;if(a.rows.length<2)return!1;if(a.rows[0].cells.length<2)return!1;b=a.rows[0].cells,c=b.length;for(var d,e=0;d=b[e];e++)if("th"!==d.tagName.toLowerCase())return!1;for(var f,e=1;f=a.rows[e];e++){if(f.cells.length!=c)return!1;if("th"!==f.cells[0].tagName.toLowerCase())return!1;for(var d,g=1;d=f.cells[g];g++){var h=utils.trim(d.innerText||d.textContent||"");if(h=h.replace(new RegExp(UE.dom.domUtils.fillChar,"g"),"").replace(/^\s+|\s+$/g,""),!/^\d*\.?\d+$/.test(h))return!1}}return!0}var b=this;return{bindEvents:{chartserror:function(){}},commands:{charts:{execCommand:function(c,d){var e=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0),f=[],g={};if(!e)return!1;if(!a(e))return b.fireEvent("chartserror"),!1;g.title=d.title||"",g.subTitle=d.subTitle||"",g.xTitle=d.xTitle||"",g.yTitle=d.yTitle||"",g.suffix=d.suffix||"",g.tip=d.tip||"",g.dataFormat=d.tableDataFormat||"",g.chartType=d.chartType||0;for(var h in g)g.hasOwnProperty(h)&&f.push(h+":"+g[h]);
-e.setAttribute("data-chart",f.join(";")),domUtils.addClass(e,"edui-charts-table")},queryCommandState:function(b,c){var d=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0);return d&&a(d)?0:-1}}},inputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style")})},outputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style","display: none;")})}}}),UE.plugin.register("section",function(){function a(a){this.tag="",this.level=-1,this.dom=null,this.nextSection=null,this.previousSection=null,this.parentSection=null,this.startAddress=[],this.endAddress=[],this.children=[]}function b(b){var c=new a;return utils.extend(c,b)}function c(a,b){for(var c=b,d=0;d<a.length;d++){if(!c.childNodes)return null;c=c.childNodes[a[d]]}return c}var d=this;return{bindMultiEvents:{type:"aftersetcontent afterscencerestore",handler:function(){d.fireEvent("updateSections")}},bindEvents:{ready:function(){d.fireEvent("updateSections"),domUtils.on(d.body,"drop paste",function(){d.fireEvent("updateSections")})},afterexeccommand:function(a,b){"paragraph"==b&&d.fireEvent("updateSections")},keyup:function(a,b){var c=this,d=c.selection.getRange();if(1!=d.collapsed)c.fireEvent("updateSections");else{var e=b.keyCode||b.which;13!=e&&8!=e&&46!=e||c.fireEvent("updateSections")}}},commands:{getsections:{execCommand:function(a,c){function d(a){for(var b=0;b<f.length;b++)if(f[b](a))return b;return-1}function e(a,c){for(var f,g,i,k=null,l=a.childNodes,m=0,n=l.length;m<n;m++)if(i=l[m],f=d(i),f>=0){var o=h.selection.getRange().selectNode(i).createAddress(!0).startAddress,p=b({tag:i.tagName,title:i.innerText||i.textContent||"",level:f,dom:i,startAddress:utils.clone(o,[]),endAddress:utils.clone(o,[]),children:[]});for(j.nextSection=p,p.previousSection=j,g=j;f<=g.level;)g=g.parentSection;p.parentSection=g,g.children.push(p),k=j=p}else 1===i.nodeType&&e(i,c),k&&k.endAddress[k.endAddress.length-1]++}for(var f=c||["h1","h2","h3","h4","h5","h6"],g=0;g<f.length;g++)"string"==typeof f[g]?f[g]=function(a){return function(b){return b.tagName==a.toUpperCase()}}(f[g]):"function"!=typeof f[g]&&(f[g]=function(a){return null});var h=this,i=b({level:-1,title:"root"}),j=i;return e(h.body,i),i},notNeedUndo:!0},movesection:{execCommand:function(a,b,d,e){function f(a,b,c){for(var d=!1,e=!1,f=0;f<a.length&&!(f>=c.length);f++){if(c[f]>a[f]){d=!0;break}if(c[f]<a[f])break}for(var f=0;f<b.length&&!(f>=c.length);f++){if(c[f]<a[f]){e=!0;break}if(c[f]>a[f])break}return d&&e}var g,h,i=this;if(b&&d&&d.level!=-1&&(g=e?d.endAddress:d.startAddress,h=c(g,i.body),g&&h&&!f(b.startAddress,b.endAddress,g))){var j,k,l=c(b.startAddress,i.body),m=c(b.endAddress,i.body);if(e)for(j=m;j&&!(domUtils.getPosition(l,j)&domUtils.POSITION_FOLLOWING)&&(k=j.previousSibling,domUtils.insertAfter(h,j),j!=l);)j=k;else for(j=l;j&&!(domUtils.getPosition(j,m)&domUtils.POSITION_FOLLOWING)&&(k=j.nextSibling,h.parentNode.insertBefore(j,h),j!=m);)j=k;i.fireEvent("updateSections")}}},deletesection:{execCommand:function(a,b,c){function d(a){for(var b=e.body,c=0;c<a.length;c++){if(!b.childNodes)return null;b=b.childNodes[a[c]]}return b}var e=this;if(b){var f,g=d(b.startAddress),h=d(b.endAddress),i=g;if(c)domUtils.remove(i);else for(;i&&domUtils.inDoc(h,e.document)&&!(domUtils.getPosition(i,h)&domUtils.POSITION_FOLLOWING);)f=i.nextSibling,domUtils.remove(i),i=f;e.fireEvent("updateSections")}}},selectsection:{execCommand:function(a,b){if(!b&&!b.dom)return!1;var c=this,d=c.selection.getRange(),e={startAddress:utils.clone(b.startAddress,[]),endAddress:utils.clone(b.endAddress,[])};return e.endAddress[e.endAddress.length-1]++,d.moveToAddress(e).select().scrollToView(),!0},notNeedUndo:!0},scrolltosection:{execCommand:function(a,b){if(!b&&!b.dom)return!1;var c=this,d=c.selection.getRange(),e={startAddress:b.startAddress,endAddress:b.endAddress};return e.endAddress[e.endAddress.length-1]++,d.moveToAddress(e).scrollToView(),!0},notNeedUndo:!0}}}}),UE.plugin.register("simpleupload",function(){function a(){var a=b.offsetWidth||20,e=b.offsetHeight||20,f="display:block;width:"+a+"px;height:"+e+"px;overflow:hidden;border:0;margin:0;padding:0;position:absolute;top:0;left:0;filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity: 0;opacity: 0;cursor:pointer;",g=document.createElement("form"),h=document.createElement("input");g.id="edui_form_"+d,g.enctype="multipart/form-data",g.style=f,h.id="edui_input_"+d,h.type="file",h.accept="image/*",h.name=c.options.imageFieldName,h.style=f,g.appendChild(h),b.appendChild(g),h.addEventListener("change",function(a){function b(a){if(d){var b=c.document.getElementById(d);b&&domUtils.remove(b),c.fireEvent("showmessage",{id:d,content:a,type:"error",timeout:4e3})}}if(h.value){var d="loading_"+(+new Date).toString(36),e=c.getActionUrl(c.getOpt("imageActionName")),f=utils.serializeParam(c.queryCommandValue("serverparam"))||"",i=utils.formatUrl(e+(e.indexOf("?")==-1?"?":"&")+f),j=c.getOpt("imageAllowFiles");if(c.focus(),c.execCommand("inserthtml",'<img class="loadingclass" id="'+d+'" src="'+c.options.themePath+c.options.theme+'/images/spacer.gif" title="'+(c.getLang("simpleupload.loading")||"")+'" >'),!c.getOpt("imageActionName"))return void b(c.getLang("autoupload.errorLoadConfig"));var k=h.value,l=k?k.substr(k.lastIndexOf(".")):"";if(!l||j&&(j.join("")+".").indexOf(l.toLowerCase()+".")==-1)return void b(c.getLang("simpleupload.exceedTypeError"));var m=new XMLHttpRequest;if(m.open("post",i,!0),c.options.headers&&"[object Object]"===Object.prototype.toString.apply(c.options.headers))for(var n in c.options.headers)m.setRequestHeader(n,c.options.headers[n]);m.onload=function(){if(m.status>=200&&m.status<300||304==m.status){var a=JSON.parse(m.responseText),e=c.options.imageUrlPrefix+a.url;"SUCCESS"==a.state&&a.url?(loader=c.document.getElementById(d),loader.setAttribute("src",e),loader.setAttribute("_src",e),loader.setAttribute("title",a.title||""),loader.setAttribute("alt",a.original||""),loader.removeAttribute("id"),domUtils.removeClasses(loader,"loadingclass"),c.fireEvent("contentchange")):b(a.state)}else b(c.getLang("simpleupload.loadError"))},m.onerror=function(){b(c.getLang("simpleupload.loadError"))},m.send(new FormData(g)),g.reset()}})}var b,c=this,d=(+new Date).toString(36);return{bindEvents:{ready:function(){utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document)},simpleuploadbtnready:function(d,e){b=e,c.afterConfigReady(a)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})}}}),UE.plugin.register("serverparam",function(){var a={};return{commands:{serverparam:{execCommand:function(b,c,d){void 0===c||null===c?a={}:utils.isString(c)?void 0===d||null===d?delete a[c]:a[c]=d:utils.isObject(c)?utils.extend(a,c,!0):utils.isFunction(c)&&utils.extend(a,c(),!0)},queryCommandValue:function(){return a||{}}}}}}),UE.plugin.register("insertfile",function(){function a(a){var b=a.substr(a.lastIndexOf(".")+1).toLowerCase(),c={rar:"icon_rar.gif",zip:"icon_rar.gif",tar:"icon_rar.gif",gz:"icon_rar.gif",bz2:"icon_rar.gif",doc:"icon_doc.gif",docx:"icon_doc.gif",pdf:"icon_pdf.gif",mp3:"icon_mp3.gif",xls:"icon_xls.gif",chm:"icon_chm.gif",ppt:"icon_ppt.gif",pptx:"icon_ppt.gif",avi:"icon_mv.gif",rmvb:"icon_mv.gif",wmv:"icon_mv.gif",flv:"icon_mv.gif",swf:"icon_mv.gif",rm:"icon_mv.gif",exe:"icon_exe.gif",psd:"icon_psd.gif",txt:"icon_txt.gif",jpg:"icon_jpg.gif",png:"icon_jpg.gif",jpeg:"icon_jpg.gif",gif:"icon_jpg.gif",ico:"icon_jpg.gif",bmp:"icon_jpg.gif"};return c[b]?c[b]:c.txt}var b=this;return{commands:{insertfile:{execCommand:function(c,d){d=utils.isArray(d)?d:[d];var e,f,g,h,i="",j=b.getOpt("UEDITOR_HOME_URL"),k=j+("/"==j.substr(j.length-1)?"":"/")+"dialogs/attachment/fileTypeImages/";for(e=0;e<d.length;e++)f=d[e],g=k+a(f.url),h=f.title||f.url.substr(f.url.lastIndexOf("/")+1),i+='<p style="line-height: 16px;"><img style="vertical-align: middle; margin-right: 2px;" src="'+g+'" _src="'+g+'" /><a style="font-size:12px; color:#0066cc;" href="'+f.url+'" title="'+h+'">'+h+"</a></p>";b.execCommand("insertHtml",i)}}}}}),UE.plugins.xssFilter=function(){function a(a){var b=a.tagName,d=a.attrs;return c.hasOwnProperty(b)?void UE.utils.each(d,function(d,e){c[b].indexOf(e)===-1&&a.setAttr(e)}):(a.parentNode.removeChild(a),!1)}var b=UEDITOR_CONFIG,c=b.whitList;c&&b.xssFilterRules&&(this.options.filterRules=function(){var b={};return UE.utils.each(c,function(c,d){b[d]=function(b){return a(b)}}),b}());var d=[];UE.utils.each(c,function(a,b){d.push(b)}),c&&b.inputXssFilter&&this.addInputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})}),c&&b.outputXssFilter&&this.addOutputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})})};var baidu=baidu||{};baidu.editor=baidu.editor||{},UE.ui=baidu.editor.ui={},function(){function a(){var a=document.getElementById("edui_fixedlayer");i.setViewportOffset(a,{left:0,top:0})}function b(b){d.on(window,"scroll",a),d.on(window,"resize",baidu.editor.utils.defer(a,0,!0))}var c=baidu.editor.browser,d=baidu.editor.dom.domUtils,e="$EDITORUI",f=window[e]={},g="ID"+e,h=0,i=baidu.editor.ui.uiUtils={uid:function(a){return a?a[g]||(a[g]=++h):++h},hook:function(a,b){var c;return a&&a._callbacks?c=a:(c=function(){var b;a&&(b=a.apply(this,arguments));for(var d=c._callbacks,e=d.length;e--;){var f=d[e].apply(this,arguments);void 0===b&&(b=f)}return b},c._callbacks=[]),c._callbacks.push(b),c},createElementByHtml:function(a){var b=document.createElement("div");return b.innerHTML=a,b=b.firstChild,b.parentNode.removeChild(b),b},getViewportElement:function(){return c.ie&&c.quirks?document.body:document.documentElement},getClientRect:function(a){var b;try{b=a.getBoundingClientRect()}catch(c){b={left:0,top:0,height:0,width:0}}for(var e,f={left:Math.round(b.left),top:Math.round(b.top),height:Math.round(b.bottom-b.top),width:Math.round(b.right-b.left)};(e=a.ownerDocument)!==document&&(a=d.getWindow(e).frameElement);)b=a.getBoundingClientRect(),f.left+=b.left,f.top+=b.top;return f.bottom=f.top+f.height,f.right=f.left+f.width,f},getViewportRect:function(){var a=i.getViewportElement(),b=0|(window.innerWidth||a.clientWidth),c=0|(window.innerHeight||a.clientHeight);return{left:0,top:0,height:c,width:b,bottom:c,right:b}},setViewportOffset:function(a,b){var c=i.getFixedLayer();a.parentNode===c?(a.style.left=b.left+"px",a.style.top=b.top+"px"):d.setViewportOffset(a,b)},getEventOffset:function(a){var b=a.target||a.srcElement,c=i.getClientRect(b),d=i.getViewportOffsetByEvent(a);return{left:d.left-c.left,top:d.top-c.top}},getViewportOffsetByEvent:function(a){var b=a.target||a.srcElement,c=d.getWindow(b).frameElement,e={left:a.clientX,top:a.clientY};if(c&&b.ownerDocument!==document){var f=i.getClientRect(c);e.left+=f.left,e.top+=f.top}return e},setGlobal:function(a,b){return f[a]=b,e+'["'+a+'"]'},unsetGlobal:function(a){delete f[a]},copyAttributes:function(a,b){for(var e=b.attributes,f=e.length;f--;){var g=e[f];"style"==g.nodeName||"class"==g.nodeName||c.ie&&!g.specified||a.setAttribute(g.nodeName,g.nodeValue)}b.className&&d.addClass(a,b.className),b.style.cssText&&(a.style.cssText+=";"+b.style.cssText)},removeStyle:function(a,b){if(a.style.removeProperty)a.style.removeProperty(b);else{if(!a.style.removeAttribute)throw"";a.style.removeAttribute(b)}},contains:function(a,b){return a&&b&&a!==b&&(a.contains?a.contains(b):16&a.compareDocumentPosition(b))},startDrag:function(a,b,c){function d(a){var c=a.clientX-g,d=a.clientY-h;b.ondragmove(c,d,a),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function e(a){c.removeEventListener("mousemove",d,!0),c.removeEventListener("mouseup",e,!0),window.removeEventListener("mouseup",e,!0),b.ondragstop()}function f(){i.releaseCapture(),i.detachEvent("onmousemove",d),i.detachEvent("onmouseup",f),i.detachEvent("onlosecaptrue",f),b.ondragstop()}var c=c||document,g=a.clientX,h=a.clientY;if(c.addEventListener)c.addEventListener("mousemove",d,!0),c.addEventListener("mouseup",e,!0),window.addEventListener("mouseup",e,!0),a.preventDefault();else{var i=a.srcElement;i.setCapture(),i.attachEvent("onmousemove",d),i.attachEvent("onmouseup",f),i.attachEvent("onlosecaptrue",f),a.returnValue=!1}b.ondragstart()},getFixedLayer:function(){var d=document.getElementById("edui_fixedlayer");return null==d&&(d=document.createElement("div"),d.id="edui_fixedlayer",document.body.appendChild(d),c.ie&&c.version<=8?(d.style.position="absolute",b(),setTimeout(a)):d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.width="0",d.style.height="0"),d},makeUnselectable:function(a){if(c.opera||c.ie&&c.version<9){if(a.unselectable="on",a.hasChildNodes())for(var b=0;b<a.childNodes.length;b++)1==a.childNodes[b].nodeType&&i.makeUnselectable(a.childNodes[b])}else void 0!==a.style.MozUserSelect?a.style.MozUserSelect="none":void 0!==a.style.WebkitUserSelect?a.style.WebkitUserSelect="none":void 0!==a.style.KhtmlUserSelect&&(a.style.KhtmlUserSelect="none")}}}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.EventBase,d=baidu.editor.ui.UIBase=function(){};d.prototype={className:"",uiName:"",initOptions:function(a){var c=this;for(var d in a)c[d]=a[d];this.id=this.id||"edui"+b.uid()},initUIBase:function(){this._globalKey=a.unhtml(b.setGlobal(this.id,this))},render:function(a){for(var c,d=this.renderHtml(),e=b.createElementByHtml(d),f=domUtils.getElementsByTagName(e,"*"),g="edui-"+(this.theme||this.editor.options.theme),h=document.getElementById("edui_fixedlayer"),i=0;c=f[i++];)domUtils.addClass(c,g);domUtils.addClass(e,g),h&&(h.className="",domUtils.addClass(h,g));var j=this.getDom();null!=j?(j.parentNode.replaceChild(e,j),b.copyAttributes(e,j)):("string"==typeof a&&(a=document.getElementById(a)),a=a||b.getFixedLayer(),domUtils.addClass(a,g),a.appendChild(e)),this.postRender()},getDom:function(a){return a?document.getElementById(this.id+"_"+a):document.getElementById(this.id)},postRender:function(){this.fireEvent("postrender")},getHtmlTpl:function(){return""},formatHtml:function(a){var b="edui-"+this.uiName;return a.replace(/##/g,this.id).replace(/%%-/g,this.uiName?b+"-":"").replace(/%%/g,(this.uiName?b:"")+" "+this.className).replace(/\$\$/g,this._globalKey)},renderHtml:function(){return this.formatHtml(this.getHtmlTpl())},dispose:function(){var a=this.getDom();a&&baidu.editor.dom.domUtils.remove(a),b.unsetGlobal(this.id)}},a.inherits(d,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Separator=function(a){this.initOptions(a),this.initSeparator()};c.prototype={uiName:"separator",initSeparator:function(){this.initUIBase()},getHtmlTpl:function(){return'<div id="##" class="edui-box %%"></div>'}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.uiUtils,e=baidu.editor.ui.Mask=function(a){this.initOptions(a),this.initUIBase()};e.prototype={getHtmlTpl:function(){return'<div id="##" class="edui-mask %%" onclick="return $$._onClick(event, this);" onmousedown="return $$._onMouseDown(event, this);"></div>'},postRender:function(){var a=this;b.on(window,"resize",function(){setTimeout(function(){a.isHidden()||a._fill()})})},show:function(a){this._fill(),this.getDom().style.display="",this.getDom().style.zIndex=a},hide:function(){this.getDom().style.display="none",this.getDom().style.zIndex=""},isHidden:function(){return"none"==this.getDom().style.display},_onMouseDown:function(){return!1},_onClick:function(a,b){this.fireEvent("click",a,b)},_fill:function(){var a=this.getDom(),b=d.getViewportRect();a.style.width=b.width+"px",a.style.height=b.height+"px"}},a.inherits(e,c)}(),function(){function a(a,b){for(var c=0;c<g.length;c++){var d=g[c];if(!d.isHidden()&&d.queryAutoHide(b)!==!1){if(a&&/scroll/gi.test(a.type)&&"edui-wordpastepop"==d.className)return;d.hide()}}g.length&&d.editor.fireEvent("afterhidepop")}var b=baidu.editor.utils,c=baidu.editor.ui.uiUtils,d=baidu.editor.dom.domUtils,e=baidu.editor.ui.UIBase,f=baidu.editor.ui.Popup=function(a){this.initOptions(a),this.initPopup()},g=[];f.postHide=a;var h=["edui-anchor-topleft","edui-anchor-topright","edui-anchor-bottomleft","edui-anchor-bottomright"];f.prototype={SHADOW_RADIUS:5,content:null,_hidden:!1,autoRender:!0,canSideLeft:!0,canSideUp:!0,initPopup:function(){this.initUIBase(),g.push(this)},getHtmlTpl:function(){return'<div id="##" class="edui-popup %%" onmousedown="return false;"> <div id="##_body" class="edui-popup-body"> <iframe style="position:absolute;z-index:-1;left:0;top:0;background-color: transparent;" frameborder="0" width="100%" height="100%" src="about:blank"></iframe> <div class="edui-shadow"></div> <div id="##_content" class="edui-popup-content">'+this.getContentHtmlTpl()+"  </div> </div></div>"},getContentHtmlTpl:function(){return this.content?"string"==typeof this.content?this.content:this.content.renderHtml():""},_UIBase_postRender:e.prototype.postRender,postRender:function(){if(this.content instanceof e&&this.content.postRender(),this.captureWheel&&!this.captured){this.captured=!0;var a=(document.documentElement.clientHeight||document.body.clientHeight)-80,b=this.getDom().offsetHeight,f=c.getClientRect(this.combox.getDom()).top,g=this.getDom("content"),h=this.getDom("body").getElementsByTagName("iframe"),i=this;for(h.length&&(h=h[0]);f+b>a;)b-=30;g.style.height=b+"px",h&&(h.style.height=b+"px"),window.XMLHttpRequest?d.on(g,"onmousewheel"in document.body?"mousewheel":"DOMMouseScroll",function(a){a.preventDefault?a.preventDefault():a.returnValue=!1,a.wheelDelta?g.scrollTop-=a.wheelDelta/120*60:g.scrollTop-=a.detail/-3*60}):d.on(this.getDom(),"mousewheel",function(a){a.returnValue=!1,i.getDom("content").scrollTop-=a.wheelDelta/120*60})}this.fireEvent("postRenderAfter"),this.hide(!0),this._UIBase_postRender()},_doAutoRender:function(){!this.getDom()&&this.autoRender&&this.render()},mesureSize:function(){var a=this.getDom("content");return c.getClientRect(a)},fitSize:function(){if(this.captureWheel&&this.sized)return this.__size;this.sized=!0;var a=this.getDom("body");a.style.width="",a.style.height="";var b=this.mesureSize();if(this.captureWheel){a.style.width=-(-20-b.width)+"px";var c=parseInt(this.getDom("content").style.height,10);!window.isNaN(c)&&(b.height=c)}else a.style.width=b.width+"px";return a.style.height=b.height+"px",this.__size=b,this.captureWheel&&(this.getDom("content").style.overflow="auto"),b},showAnchor:function(a,b){this.showAnchorRect(c.getClientRect(a),b)},showAnchorRect:function(a,b,e){this._doAutoRender();var f=c.getViewportRect();this.getDom().style.visibility="hidden",this._show();var g,i,j,k,l=this.fitSize();b?(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.left-l.width:a.right,k=i?a.bottom-l.height:a.top):(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.right-l.width:a.left,k=i?a.top-l.height:a.bottom);var m=this.getDom();c.setViewportOffset(m,{left:j,top:k}),d.removeClasses(m,h),m.className+=" "+h[2*(i?1:0)+(g?1:0)],this.editor&&(m.style.zIndex=1*this.editor.container.style.zIndex+10,baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex=m.style.zIndex-1),this.getDom().style.visibility="visible"},showAt:function(a){var b=a.left,c=a.top,d={left:b,top:c,right:b,bottom:c,height:0,width:0};this.showAnchorRect(d,!1,!0)},_show:function(){if(this._hidden){var a=this.getDom();a.style.display="",this._hidden=!1,this.fireEvent("show")}},isHidden:function(){return this._hidden},show:function(){this._doAutoRender(),this._show()},hide:function(a){!this._hidden&&this.getDom()&&(this.getDom().style.display="none",this._hidden=!0,a||this.fireEvent("hide"))},queryAutoHide:function(a){return!a||!c.contains(this.getDom(),a)}},b.inherits(f,e),d.on(document,"mousedown",function(b){var c=b.target||b.srcElement;a(b,c)}),d.on(window,"scroll",function(b,c){a(b,c)})}(),function(){function a(a,b){for(var c='<div id="##" class="edui-colorpicker %%"><div class="edui-colorpicker-topbar edui-clearfix"><div unselectable="on" id="##_preview" class="edui-colorpicker-preview"></div><div unselectable="on" class="edui-colorpicker-nocolor" onclick="$$._onPickNoColor(event, this);">'+a+'</div></div><table  class="edui-box" style="border-collapse: collapse;" onmouseover="$$._onTableOver(event, this);" onmouseout="$$._onTableOut(event, this);" onclick="return $$._onTableClick(event, this);" cellspacing="0" cellpadding="0"><tr style="border-bottom: 1px solid #ddd;font-size: 13px;line-height: 25px;color:#39C;padding-top: 2px"><td colspan="10">'+b.getLang("themeColor")+'</td> </tr><tr class="edui-colorpicker-tablefirstrow" >',d=0;d<e.length;d++)d&&d%10===0&&(c+="</tr>"+(60==d?'<tr style="border-bottom: 1px solid #ddd;font-size: 13px;line-height: 25px;color:#39C;"><td colspan="10">'+b.getLang("standardColor")+"</td></tr>":"")+"<tr"+(60==d?' class="edui-colorpicker-tablefirstrow"':"")+">"),c+=d<70?'<td style="padding: 0 2px;"><a hidefocus title="'+e[d]+'" onclick="return false;" href="javascript:" unselectable="on" class="edui-box edui-colorpicker-colorcell" data-color="#'+e[d]+'" style="background-color:#'+e[d]+";border:solid #ccc;"+(d<10||d>=60?"border-width:1px;":d>=10&&d<20?"border-width:1px 1px 0 1px;":"border-width:0 1px 0 1px;")+'"></a></td>':"";return c+="</tr></table></div>"}var b=baidu.editor.utils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.ColorPicker=function(a){this.initOptions(a),this.noColorText=this.noColorText||this.editor.getLang("clearColor"),this.initUIBase()};d.prototype={getHtmlTpl:function(){return a(this.noColorText,this.editor)},_onTableClick:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&this.fireEvent("pickcolor",c)},_onTableOver:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&(this.getDom("preview").style.backgroundColor=c)},_onTableOut:function(){this.getDom("preview").style.backgroundColor=""},_onPickNoColor:function(){this.fireEvent("picknocolor")}},b.inherits(d,c);var e="ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,d8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,".split(",")}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.TablePicker=function(a){this.initOptions(a),this.initTablePicker()};d.prototype={defaultNumRows:10,defaultNumCols:10,maxNumRows:20,maxNumCols:20,numRows:10,numCols:10,lengthOfCellSide:22,initTablePicker:function(){this.initUIBase()},getHtmlTpl:function(){return'<div id="##" class="edui-tablepicker %%"><div class="edui-tablepicker-body"><div class="edui-infoarea"><span id="##_label" class="edui-label"></span></div><div class="edui-pickarea" onmousemove="$$._onMouseMove(event, this);" onmouseover="$$._onMouseOver(event, this);" onmouseout="$$._onMouseOut(event, this);" onclick="$$._onClick(event, this);"><div id="##_overlay" class="edui-overlay"></div></div></div></div>'},_UIBase_render:c.prototype.render,render:function(a){this._UIBase_render(a),this.getDom("label").innerHTML="0"+this.editor.getLang("t_row")+" x 0"+this.editor.getLang("t_col")},_track:function(a,b){var c=this.getDom("overlay").style,d=this.lengthOfCellSide;c.width=a*d+"px",c.height=b*d+"px";var e=this.getDom("label");e.innerHTML=a+this.editor.getLang("t_col")+" x "+b+this.editor.getLang("t_row"),this.numCols=a,this.numRows=b},_onMouseOver:function(a,c){var d=a.relatedTarget||a.fromElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="")},_onMouseOut:function(a,c){var d=a.relatedTarget||a.toElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="hidden")},_onMouseMove:function(a,c){var d=(this.getDom("overlay").style,b.getEventOffset(a)),e=this.lengthOfCellSide,f=Math.ceil(d.left/e),g=Math.ceil(d.top/e);this._track(f,g)},_onClick:function(){this.fireEvent("picktable",this.numCols,this.numRows)}},a.inherits(d,c)}(),function(){var a=baidu.editor.browser,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.uiUtils,d='onmousedown="$$.Stateful_onMouseDown(event, this);" onmouseup="$$.Stateful_onMouseUp(event, this);"'+(a.ie?' onmouseenter="$$.Stateful_onMouseEnter(event, this);" onmouseleave="$$.Stateful_onMouseLeave(event, this);"':' onmouseover="$$.Stateful_onMouseOver(event, this);" onmouseout="$$.Stateful_onMouseOut(event, this);"');baidu.editor.ui.Stateful={alwalysHoverable:!1,target:null,Stateful_init:function(){this._Stateful_dGetHtmlTpl=this.getHtmlTpl,this.getHtmlTpl=this.Stateful_getHtmlTpl},Stateful_getHtmlTpl:function(){var a=this._Stateful_dGetHtmlTpl();return a.replace(/stateful/g,function(){return d})},Stateful_onMouseEnter:function(a,b){this.target=b,this.isDisabled()&&!this.alwalysHoverable||(this.addState("hover"),this.fireEvent("over"))},Stateful_onMouseLeave:function(a,b){this.isDisabled()&&!this.alwalysHoverable||(this.removeState("hover"),this.removeState("active"),this.fireEvent("out"))},Stateful_onMouseOver:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseEnter(a,b)},Stateful_onMouseOut:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseLeave(a,b)},Stateful_onMouseDown:function(a,b){this.isDisabled()||this.addState("active")},Stateful_onMouseUp:function(a,b){this.isDisabled()||this.removeState("active")},Stateful_postRender:function(){this.disabled&&!this.hasState("disabled")&&this.addState("disabled")},hasState:function(a){return b.hasClass(this.getStateDom(),"edui-state-"+a)},addState:function(a){this.hasState(a)||(this.getStateDom().className+=" edui-state-"+a)},removeState:function(a){this.hasState(a)&&b.removeClasses(this.getStateDom(),["edui-state-"+a])},getStateDom:function(){return this.getDom("state")},isChecked:function(){return this.hasState("checked")},setChecked:function(a){!this.isDisabled()&&a?this.addState("checked"):this.removeState("checked")},isDisabled:function(){return this.hasState("disabled")},setDisabled:function(a){a?(this.removeState("hover"),this.removeState("checked"),this.removeState("active"),this.addState("disabled")):this.removeState("disabled")}}}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Stateful,d=baidu.editor.ui.Button=function(a){if(a.name){var b=a.name,c=a.cssRules;a.className||(a.className="edui-for-"+b),a.cssRules=".edui-default  .edui-for-"+b+" .edui-icon {"+c+"}"}this.initOptions(a),this.initButton()};d.prototype={uiName:"button",label:"",title:"",showIcon:!0,showText:!0,cssRules:"",initButton:function(){this.initUIBase(),this.Stateful_init(),this.cssRules&&a.cssRule("edui-customize-"+this.name+"-style",this.cssRules)},getHtmlTpl:function(){return'<div id="##" class="edui-box %%"><div id="##_state" stateful><div class="%%-wrap"><div id="##_body" unselectable="on" '+(this.title?'title="'+this.title+'"':"")+' class="%%-body" onmousedown="return $$._onMouseDown(event, this);" onclick="return $$._onClick(event, this);">'+(this.showIcon?'<div class="edui-box edui-icon"></div>':"")+(this.showText?'<div class="edui-box edui-label">'+this.label+"</div>":"")+"</div></div></div></div>"},postRender:function(){this.Stateful_postRender(),this.setDisabled(this.disabled)},_onMouseDown:function(a){var b=a.target||a.srcElement,c=b&&b.tagName&&b.tagName.toLowerCase();if("input"==c||"object"==c||"object"==c)return!1},_onClick:function(){this.isDisabled()||this.fireEvent("click")},setTitle:function(a){var b=this.getDom("label");b.innerHTML=a}},a.inherits(d,b),a.extend(d.prototype,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=(baidu.editor.dom.domUtils,baidu.editor.ui.UIBase),d=baidu.editor.ui.Stateful,e=baidu.editor.ui.SplitButton=function(a){this.initOptions(a),this.initSplitButton()};e.prototype={popup:null,uiName:"splitbutton",title:"",initSplitButton:function(){this.initUIBase(),this.Stateful_init();if(null!=this.popup){var a=this.popup;this.popup=null,this.setPopup(a)}},_UIBase_postRender:c.prototype.postRender,postRender:function(){this.Stateful_postRender(),this._UIBase_postRender()},setPopup:function(c){this.popup!==c&&(null!=this.popup&&this.popup.dispose(),c.addListener("show",a.bind(this._onPopupShow,this)),c.addListener("hide",a.bind(this._onPopupHide,this)),c.addListener("postrender",a.bind(function(){c.getDom("body").appendChild(b.createElementByHtml('<div id="'+this.popup.id+'_bordereraser" class="edui-bordereraser edui-background" style="width:'+(b.getClientRect(this.getDom()).width+20)+'px"></div>')),c.getDom().className+=" "+this.className},this)),this.popup=c)},_onPopupShow:function(){this.addState("opened")},_onPopupHide:function(){this.removeState("opened")},getHtmlTpl:function(){return'<div id="##" class="edui-box %%"><div '+(this.title?'title="'+this.title+'"':"")+' id="##_state" stateful><div class="%%-body"><div id="##_button_body" class="edui-box edui-button-body" onclick="$$._onButtonClick(event, this);"><div class="edui-box edui-icon"></div></div><div class="edui-box edui-splitborder"></div><div class="edui-box edui-arrow" onclick="$$._onArrowClick();"></div></div></div></div>'},showPopup:function(){var a=b.getClientRect(this.getDom());a.top-=this.popup.SHADOW_RADIUS,a.height+=this.popup.SHADOW_RADIUS,this.popup.showAnchorRect(a)},_onArrowClick:function(a,b){this.isDisabled()||this.showPopup()},_onButtonClick:function(){this.isDisabled()||this.fireEvent("buttonclick")}},a.inherits(e,c),a.extend(e.prototype,d,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.ColorPicker,d=baidu.editor.ui.Popup,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.ColorButton=function(a){this.initOptions(a),this.initColorButton()};f.prototype={initColorButton:function(){var a=this;this.popup=new d({content:new c({noColorText:a.editor.getLang("clearColor"),editor:a.editor,onpickcolor:function(b,c){a._onPickColor(c)},onpicknocolor:function(b,c){a._onPickNoColor(c)}}),editor:a.editor}),this.initSplitButton()},_SplitButton_postRender:e.prototype.postRender,postRender:function(){this._SplitButton_postRender(),this.getDom("button_body").appendChild(b.createElementByHtml('<div id="'+this.id+'_colorlump" class="edui-colorlump"></div>')),this.getDom().className+=" edui-colorbutton"},setColor:function(a){this.getDom("colorlump").style.backgroundColor=a,this.color=a},_onPickColor:function(a){this.fireEvent("pickcolor",a)!==!1&&(this.setColor(a),this.popup.hide())},_onPickNoColor:function(a){this.fireEvent("picknocolor")!==!1&&this.popup.hide()}},a.inherits(f,e)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Popup,c=baidu.editor.ui.TablePicker,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.TableButton=function(a){this.initOptions(a),this.initTableButton()};e.prototype={initTableButton:function(){var a=this;this.popup=new b({content:new c({editor:a.editor,onpicktable:function(b,c,d){
-a._onPickTable(c,d)}}),editor:a.editor}),this.initSplitButton()},_onPickTable:function(a,b){this.fireEvent("picktable",a,b)!==!1&&this.popup.hide()}},a.inherits(e,d)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.AutoTypeSetPicker=function(a){this.initOptions(a),this.initAutoTypeSetPicker()};c.prototype={initAutoTypeSetPicker:function(){this.initUIBase()},getHtmlTpl:function(){var a=this.editor,b=a.options.autotypeset,c=a.getLang("autoTypeSet"),d="textAlignValue"+a.uid,e="imageBlockLineValue"+a.uid,f="symbolConverValue"+a.uid;return'<div id="##" class="edui-autotypesetpicker %%"><div class="edui-autotypesetpicker-body"><table ><tr><td nowrap><input type="checkbox" name="mergeEmptyline" '+(b.mergeEmptyline?"checked":"")+">"+c.mergeLine+'</td><td colspan="2"><input type="checkbox" name="removeEmptyline" '+(b.removeEmptyline?"checked":"")+">"+c.delLine+'</td></tr><tr><td nowrap><input type="checkbox" name="removeClass" '+(b.removeClass?"checked":"")+">"+c.removeFormat+'</td><td colspan="2"><input type="checkbox" name="indent" '+(b.indent?"checked":"")+">"+c.indent+'</td></tr><tr><td nowrap><input type="checkbox" name="textAlign" '+(b.textAlign?"checked":"")+">"+c.alignment+'</td><td colspan="2" id="'+d+'"><input type="radio" name="'+d+'" value="left" '+(b.textAlign&&"left"==b.textAlign?"checked":"")+">"+a.getLang("justifyleft")+'<input type="radio" name="'+d+'" value="center" '+(b.textAlign&&"center"==b.textAlign?"checked":"")+">"+a.getLang("justifycenter")+'<input type="radio" name="'+d+'" value="right" '+(b.textAlign&&"right"==b.textAlign?"checked":"")+">"+a.getLang("justifyright")+'</td></tr><tr><td nowrap><input type="checkbox" name="imageBlockLine" '+(b.imageBlockLine?"checked":"")+">"+c.imageFloat+'</td><td nowrap id="'+e+'"><input type="radio" name="'+e+'" value="none" '+(b.imageBlockLine&&"none"==b.imageBlockLine?"checked":"")+">"+a.getLang("default")+'<input type="radio" name="'+e+'" value="left" '+(b.imageBlockLine&&"left"==b.imageBlockLine?"checked":"")+">"+a.getLang("justifyleft")+'<input type="radio" name="'+e+'" value="center" '+(b.imageBlockLine&&"center"==b.imageBlockLine?"checked":"")+">"+a.getLang("justifycenter")+'<input type="radio" name="'+e+'" value="right" '+(b.imageBlockLine&&"right"==b.imageBlockLine?"checked":"")+">"+a.getLang("justifyright")+'</td></tr><tr><td nowrap><input type="checkbox" name="clearFontSize" '+(b.clearFontSize?"checked":"")+">"+c.removeFontsize+'</td><td colspan="2"><input type="checkbox" name="clearFontFamily" '+(b.clearFontFamily?"checked":"")+">"+c.removeFontFamily+'</td></tr><tr><td nowrap colspan="3"><input type="checkbox" name="removeEmptyNode" '+(b.removeEmptyNode?"checked":"")+">"+c.removeHtml+'</td></tr><tr><td nowrap colspan="3"><input type="checkbox" name="pasteFilter" '+(b.pasteFilter?"checked":"")+">"+c.pasteFilter+'</td></tr><tr><td nowrap><input type="checkbox" name="symbolConver" '+(b.bdc2sb||b.tobdc?"checked":"")+">"+c.symbol+'</td><td id="'+f+'"><input type="radio" name="bdc" value="bdc2sb" '+(b.bdc2sb?"checked":"")+">"+c.bdc2sb+'<input type="radio" name="bdc" value="tobdc" '+(b.tobdc?"checked":"")+">"+c.tobdc+'</td><td nowrap align="right"><button >'+c.run+"</button></td></tr></table></div></div>"},_UIBase_render:b.prototype.render},a.inherits(c,b)}(),function(){function a(a){for(var c,d={},e=a.getDom(),f=a.editor.uid,g=null,h=null,i=domUtils.getElementsByTagName(e,"input"),j=i.length-1;c=i[j--];)if(g=c.getAttribute("type"),"checkbox"==g)if(h=c.getAttribute("name"),d[h]&&delete d[h],c.checked){var k=document.getElementById(h+"Value"+f);if(k){if(/input/gi.test(k.tagName))d[h]=k.value;else for(var l,m=k.getElementsByTagName("input"),n=m.length-1;l=m[n--];)if(l.checked){d[h]=l.value;break}}else d[h]=!0}else d[h]=!1;else d[c.getAttribute("value")]=c.checked;for(var o,p=domUtils.getElementsByTagName(e,"select"),j=0;o=p[j++];){var q=o.getAttribute("name");d[q]=d[q]?o.value:""}b.extend(a.editor.options.autotypeset,d),a.editor.setPreferences("autotypeset",d)}var b=baidu.editor.utils,c=baidu.editor.ui.Popup,d=baidu.editor.ui.AutoTypeSetPicker,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.AutoTypeSetButton=function(a){this.initOptions(a),this.initAutoTypeSetButton()};f.prototype={initAutoTypeSetButton:function(){var b=this;this.popup=new c({content:new d({editor:b.editor}),editor:b.editor,hide:function(){!this._hidden&&this.getDom()&&(a(this),this.getDom().style.display="none",this._hidden=!0,this.fireEvent("hide"))}});var e=0;this.popup.addListener("postRenderAfter",function(){var c=this;if(!e){var d=this.getDom(),f=d.getElementsByTagName("button")[0];f.onclick=function(){a(c),b.editor.execCommand("autotypeset"),c.hide()},domUtils.on(d,"click",function(d){var e=d.target||d.srcElement,f=b.editor.uid;if(e&&"INPUT"==e.tagName){if("imageBlockLine"==e.name||"textAlign"==e.name||"symbolConver"==e.name)for(var g=e.checked,h=document.getElementById(e.name+"Value"+f),i=h.getElementsByTagName("input"),j={imageBlockLine:"none",textAlign:"left",symbolConver:"tobdc"},k=0;k<i.length;k++)g?i[k].value==j[e.name]&&(i[k].checked="checked"):i[k].checked=!1;if(e.name=="imageBlockLineValue"+f||e.name=="textAlignValue"+f||"bdc"==e.name){var l=e.parentNode.previousSibling.getElementsByTagName("input");l&&(l[0].checked=!0)}a(c)}}),e=1}}),this.initSplitButton()}},b.inherits(f,e)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Popup,c=baidu.editor.ui.Stateful,d=baidu.editor.ui.UIBase,e=baidu.editor.ui.CellAlignPicker=function(a){this.initOptions(a),this.initSelected(),this.initCellAlignPicker()};e.prototype={initSelected:function(){var a={valign:{top:0,middle:1,bottom:2},align:{left:0,center:1,right:2},count:3};this.selected&&(this.selectedIndex=a.valign[this.selected.valign]*a.count+a.align[this.selected.align])},initCellAlignPicker:function(){this.initUIBase(),this.Stateful_init()},getHtmlTpl:function(){for(var a=["left","center","right"],b=9,c=null,d=-1,e=[],f=0;f<b;f++)c=this.selectedIndex===f?' class="edui-cellalign-selected" ':"",d=f%3,0===d&&e.push("<tr>"),e.push('<td index="'+f+'" '+c+' stateful><div class="edui-icon edui-'+a[d]+'"></div></td>'),2===d&&e.push("</tr>");return'<div id="##" class="edui-cellalignpicker %%"><div class="edui-cellalignpicker-body"><table onclick="$$._onClick(event);">'+e.join("")+"</table></div></div>"},getStateDom:function(){return this.target},_onClick:function(a){var c=a.target||a.srcElement;/icon/.test(c.className)&&(this.items[c.parentNode.getAttribute("index")].onclick(),b.postHide(a))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,c,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Stateful,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.ui.PastePicker=function(a){this.initOptions(a),this.initPastePicker()};e.prototype={initPastePicker:function(){this.initUIBase(),this.Stateful_init()},getHtmlTpl:function(){return'<div class="edui-pasteicon" onclick="$$._onClick(this)"></div><div class="edui-pastecontainer"><div class="edui-title">'+this.editor.getLang("pasteOpt")+'</div><div class="edui-button"><div title="'+this.editor.getLang("pasteSourceFormat")+'" onclick="$$.format(false)" stateful><div class="edui-richtxticon"></div></div><div title="'+this.editor.getLang("tagFormat")+'" onclick="$$.format(2)" stateful><div class="edui-tagicon"></div></div><div title="'+this.editor.getLang("pasteTextFormat")+'" onclick="$$.format(true)" stateful><div class="edui-plaintxticon"></div></div></div></div></div>'},getStateDom:function(){return this.target},format:function(a){this.editor.ui._isTransfer=!0,this.editor.fireEvent("pasteTransfer",a)},_onClick:function(a){var b=domUtils.getNextDomNode(a),d=c.getViewportRect().height,e=c.getClientRect(b);e.top+e.height>d?b.style.top=-e.height-a.offsetHeight+"px":b.style.top="",/hidden/gi.test(domUtils.getComputedStyle(b,"visibility"))?(b.style.visibility="visible",domUtils.addClass(a,"edui-state-opened")):(b.style.visibility="hidden",domUtils.removeClasses(a,"edui-state-opened"))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,b,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Toolbar=function(a){this.initOptions(a),this.initToolbar()};d.prototype={items:null,initToolbar:function(){this.items=this.items||[],this.initUIBase()},add:function(a,b){void 0===b?this.items.push(a):this.items.splice(b,0,a)},getHtmlTpl:function(){for(var a=[],b=0;b<this.items.length;b++)a[b]=this.items[b].renderHtml();return'<div id="##" class="edui-toolbar %%" onselectstart="return false;" onmousedown="return $$._onMouseDown(event, this);">'+a.join("")+"</div>"},postRender:function(){for(var a=this.getDom(),c=0;c<this.items.length;c++)this.items[c].postRender();b.makeUnselectable(a)},_onMouseDown:function(a){var b=a.target||a.srcElement,c=b&&b.tagName&&b.tagName.toLowerCase();if("input"==c||"object"==c||"object"==c)return!1}},a.inherits(d,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.ui.Popup,f=baidu.editor.ui.Stateful,g=baidu.editor.ui.CellAlignPicker,h=baidu.editor.ui.Menu=function(a){this.initOptions(a),this.initMenu()},i={renderHtml:function(){return'<div class="edui-menuitem edui-menuseparator"><div class="edui-menuseparator-inner"></div></div>'},postRender:function(){},queryAutoHide:function(){return!0}};h.prototype={items:null,uiName:"menu",initMenu:function(){this.items=this.items||[],this.initPopup(),this.initItems()},initItems:function(){for(var a=0;a<this.items.length;a++){var b=this.items[a];"-"==b?this.items[a]=this.getSeparator():b instanceof j||(b.editor=this.editor,b.theme=this.editor.options.theme,this.items[a]=this.createItem(b))}},getSeparator:function(){return i},createItem:function(a){return a.menu=this,new j(a)},_Popup_getContentHtmlTpl:e.prototype.getContentHtmlTpl,getContentHtmlTpl:function(){if(0==this.items.length)return this._Popup_getContentHtmlTpl();for(var a=[],b=0;b<this.items.length;b++){var c=this.items[b];a[b]=c.renderHtml()}return'<div class="%%-body">'+a.join("")+"</div>"},_Popup_postRender:e.prototype.postRender,postRender:function(){for(var a=this,d=0;d<this.items.length;d++){var e=this.items[d];e.ownerMenu=this,e.postRender()}b.on(this.getDom(),"mouseover",function(b){b=b||event;var d=b.relatedTarget||b.fromElement,e=a.getDom();c.contains(e,d)||e===d||a.fireEvent("over")}),this._Popup_postRender()},queryAutoHide:function(a){if(a){if(c.contains(this.getDom(),a))return!1;for(var b=0;b<this.items.length;b++){var d=this.items[b];if(d.queryAutoHide(a)===!1)return!1}}},clearItems:function(){for(var a=0;a<this.items.length;a++){var b=this.items[a];clearTimeout(b._showingTimer),clearTimeout(b._closingTimer),b.subMenu&&b.subMenu.destroy()}this.items=[]},destroy:function(){this.getDom()&&b.remove(this.getDom()),this.clearItems()},dispose:function(){this.destroy()}},a.inherits(h,e);var j=baidu.editor.ui.MenuItem=function(a){if(this.initOptions(a),this.initUIBase(),this.Stateful_init(),this.subMenu&&!(this.subMenu instanceof h))if(a.className&&a.className.indexOf("aligntd")!=-1){var c=this;this.subMenu.selected=this.editor.queryCommandValue("cellalignment"),this.subMenu=new e({content:new g(this.subMenu),parentMenu:c,editor:c.editor,destroy:function(){this.getDom()&&b.remove(this.getDom())}}),this.subMenu.addListener("postRenderAfter",function(){b.on(this.getDom(),"mouseover",function(){c.addState("opened")})})}else this.subMenu=new h(this.subMenu)};j.prototype={label:"",subMenu:null,ownerMenu:null,uiName:"menuitem",alwalysHoverable:!0,getHtmlTpl:function(){return'<div id="##" class="%%" stateful onclick="$$._onClick(event, this);"><div class="%%-body">'+this.renderLabelHtml()+"</div></div>"},postRender:function(){var a=this;this.addListener("over",function(){a.ownerMenu.fireEvent("submenuover",a),a.subMenu&&a.delayShowSubMenu()}),this.subMenu&&(this.getDom().className+=" edui-hassubmenu",this.subMenu.render(),this.addListener("out",function(){a.delayHideSubMenu()}),this.subMenu.addListener("over",function(){clearTimeout(a._closingTimer),a._closingTimer=null,a.addState("opened")}),this.ownerMenu.addListener("hide",function(){a.hideSubMenu()}),this.ownerMenu.addListener("submenuover",function(b,c){c!==a&&a.delayHideSubMenu()}),this.subMenu._bakQueryAutoHide=this.subMenu.queryAutoHide,this.subMenu.queryAutoHide=function(b){return(!b||!c.contains(a.getDom(),b))&&this._bakQueryAutoHide(b)}),this.getDom().style.tabIndex="-1",c.makeUnselectable(this.getDom()),this.Stateful_postRender()},delayShowSubMenu:function(){var a=this;a.isDisabled()||(a.addState("opened"),clearTimeout(a._showingTimer),clearTimeout(a._closingTimer),a._closingTimer=null,a._showingTimer=setTimeout(function(){a.showSubMenu()},250))},delayHideSubMenu:function(){var a=this;a.isDisabled()||(a.removeState("opened"),clearTimeout(a._showingTimer),a._closingTimer||(a._closingTimer=setTimeout(function(){a.hasState("opened")||a.hideSubMenu(),a._closingTimer=null},400)))},renderLabelHtml:function(){return'<div class="edui-arrow"></div><div class="edui-box edui-icon"></div><div class="edui-box edui-label %%-label">'+(this.label||"")+"</div>"},getStateDom:function(){return this.getDom()},queryAutoHide:function(a){if(this.subMenu&&this.hasState("opened"))return this.subMenu.queryAutoHide(a)},_onClick:function(a,b){this.hasState("disabled")||this.fireEvent("click",a,b)!==!1&&(this.subMenu?this.showSubMenu():e.postHide(a))},showSubMenu:function(){var a=c.getClientRect(this.getDom());a.right-=5,a.left+=2,a.width-=7,a.top-=4,a.bottom+=4,a.height+=8,this.subMenu.showAnchorRect(a,!0,!0)},hideSubMenu:function(){this.subMenu.hide()}},a.inherits(j,d),a.extend(j.prototype,f,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.Menu,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.Combox=function(a){this.initOptions(a),this.initCombox()};e.prototype={uiName:"combox",onbuttonclick:function(){this.showPopup()},initCombox:function(){var a=this;this.items=this.items||[];for(var b=0;b<this.items.length;b++){var d=this.items[b];d.uiName="listitem",d.index=b,d.onclick=function(){a.selectByIndex(this.index)}}this.popup=new c({items:this.items,uiName:"list",editor:this.editor,captureWheel:!0,combox:this}),this.initSplitButton()},_SplitButton_postRender:d.prototype.postRender,postRender:function(){this._SplitButton_postRender(),this.setLabel(this.label||""),this.setValue(this.initValue||"")},showPopup:function(){var a=b.getClientRect(this.getDom());a.top+=1,a.bottom-=1,a.height-=2,this.popup.showAnchorRect(a)},getValue:function(){return this.value},setValue:function(a){var b=this.indexByValue(a);b!=-1?(this.selectedIndex=b,this.setLabel(this.items[b].label),this.value=this.items[b].value):(this.selectedIndex=-1,this.setLabel(this.getLabelForUnknowValue(a)),this.value=a)},setLabel:function(a){this.getDom("button_body").innerHTML=a,this.label=a},getLabelForUnknowValue:function(a){return a},indexByValue:function(a){for(var b=0;b<this.items.length;b++)if(a==this.items[b].value)return b;return-1},getItem:function(a){return this.items[a]},selectByIndex:function(a){a<this.items.length&&this.fireEvent("select",a)!==!1&&(this.selectedIndex=a,this.value=this.items[a].value,this.setLabel(this.items[a].label))}},a.inherits(e,d)}(),function(){var a,b,c,d=baidu.editor.utils,e=baidu.editor.dom.domUtils,f=baidu.editor.ui.uiUtils,g=baidu.editor.ui.Mask,h=baidu.editor.ui.UIBase,i=baidu.editor.ui.Button,j=baidu.editor.ui.Dialog=function(a){if(a.name){var b=a.name,c=a.cssRules;a.className||(a.className="edui-for-"+b),c&&(a.cssRules=".edui-default .edui-for-"+b+" .edui-dialog-content  {"+c+"}")}this.initOptions(d.extend({autoReset:!0,draggable:!0,onok:function(){},oncancel:function(){},onclose:function(a,b){return b?this.onok():this.oncancel()},holdScroll:!1},a)),this.initDialog()};j.prototype={draggable:!1,uiName:"dialog",initDialog:function(){var e=this,f=this.editor.options.theme;if(this.cssRules&&d.cssRule("edui-customize-"+this.name+"-style",this.cssRules),this.initUIBase(),this.modalMask=a||(a=new g({className:"edui-dialog-modalmask",theme:f,onclick:function(){c&&c.close(!1)}})),this.dragMask=b||(b=new g({className:"edui-dialog-dragmask",theme:f})),this.closeButton=new i({className:"edui-dialog-closebutton",title:e.closeDialog,theme:f,onclick:function(){e.close(!1)}}),this.fullscreen&&this.initResizeEvent(),this.buttons)for(var h=0;h<this.buttons.length;h++)this.buttons[h]instanceof i||(this.buttons[h]=new i(d.extend(this.buttons[h],{editor:this.editor},!0)))},initResizeEvent:function(){var a=this;e.on(window,"resize",function(){a._hidden||void 0===a._hidden||(a.__resizeTimer&&window.clearTimeout(a.__resizeTimer),a.__resizeTimer=window.setTimeout(function(){a.__resizeTimer=null;var b=a.getDom(),c=a.getDom("content"),d=UE.ui.uiUtils.getClientRect(b),e=UE.ui.uiUtils.getClientRect(c),g=f.getViewportRect();c.style.width=g.width-d.width+e.width+"px",c.style.height=g.height-d.height+e.height+"px",b.style.width=g.width+"px",b.style.height=g.height+"px",a.fireEvent("resize")},100))})},fitSize:function(){var a=this.getDom("body"),b=this.mesureSize();return a.style.width=b.width+"px",a.style.height=b.height+"px",b},safeSetOffset:function(a){var b=this,c=b.getDom(),d=f.getViewportRect(),e=f.getClientRect(c),g=a.left;g+e.width>d.right&&(g=d.right-e.width);var h=a.top;h+e.height>d.bottom&&(h=d.bottom-e.height),c.style.left=Math.max(g,0)+"px",c.style.top=Math.max(h,0)+"px"},showAtCenter:function(){var a=f.getViewportRect();if(this.fullscreen){var b=this.getDom(),c=this.getDom("content");b.style.display="block";var d=UE.ui.uiUtils.getClientRect(b),g=UE.ui.uiUtils.getClientRect(c);b.style.left="-100000px",c.style.width=a.width-d.width+g.width+"px",c.style.height=a.height-d.height+g.height+"px",b.style.width=a.width+"px",b.style.height=a.height+"px",b.style.left=0,this._originalContext={html:{overflowX:document.documentElement.style.overflowX,overflowY:document.documentElement.style.overflowY},body:{overflowX:document.body.style.overflowX,overflowY:document.body.style.overflowY}},document.documentElement.style.overflowX="hidden",document.documentElement.style.overflowY="hidden",document.body.style.overflowX="hidden",document.body.style.overflowY="hidden"}else{this.getDom().style.display="";var h=this.fitSize(),i=0|this.getDom("titlebar").offsetHeight,j=a.width/2-h.width/2,k=a.height/2-(h.height-i)/2-i,l=this.getDom();this.safeSetOffset({left:Math.max(0|j,0),top:Math.max(0|k,0)}),e.hasClass(l,"edui-state-centered")||(l.className+=" edui-state-centered")}this._show()},getContentHtml:function(){var a="";return"string"==typeof this.content?a=this.content:this.iframeUrl&&(a='<span id="'+this.id+'_contmask" class="dialogcontmask"></span><iframe id="'+this.id+'_iframe" class="%%-iframe" height="100%" width="100%" frameborder="0" src="'+this.iframeUrl+'"></iframe>'),a},getHtmlTpl:function(){var a="";if(this.buttons){for(var b=[],c=0;c<this.buttons.length;c++)b[c]=this.buttons[c].renderHtml();a='<div class="%%-foot"><div id="##_buttons" class="%%-buttons">'+b.join("")+"</div></div>"}return'<div id="##" class="%%"><div '+(this.fullscreen?'class="%%-wrap edui-dialog-fullscreen-flag"':'class="%%"')+'><div id="##_body" class="%%-body"><div class="%%-shadow"></div><div id="##_titlebar" class="%%-titlebar"><div class="%%-draghandle" onmousedown="$$._onTitlebarMouseDown(event, this);"><span class="%%-caption">'+(this.title||"")+"</span></div>"+this.closeButton.renderHtml()+'</div><div id="##_content" class="%%-content">'+(this.autoReset?"":this.getContentHtml())+"</div>"+a+"</div></div></div>"},postRender:function(){this.modalMask.getDom()||(this.modalMask.render(),this.modalMask.hide()),this.dragMask.getDom()||(this.dragMask.render(),this.dragMask.hide());var a=this;if(this.addListener("show",function(){a.modalMask.show(this.getDom().style.zIndex-2)}),this.addListener("hide",function(){a.modalMask.hide()}),this.buttons)for(var b=0;b<this.buttons.length;b++)this.buttons[b].postRender();e.on(window,"resize",function(){setTimeout(function(){a.isHidden()||a.safeSetOffset(f.getClientRect(a.getDom()))})}),this._hide()},mesureSize:function(){var a=this.getDom("body"),b=f.getClientRect(this.getDom("content")).width,c=a.style;return c.width=b,f.getClientRect(a)},_onTitlebarMouseDown:function(a,b){if(this.draggable){var c,d=(f.getViewportRect(),this);f.startDrag(a,{ondragstart:function(){c=f.getClientRect(d.getDom()),d.getDom("contmask").style.visibility="visible",d.dragMask.show(d.getDom().style.zIndex-1)},ondragmove:function(a,b){var e=c.left+a,f=c.top+b;d.safeSetOffset({left:e,top:f})},ondragstop:function(){d.getDom("contmask").style.visibility="hidden",e.removeClasses(d.getDom(),["edui-state-centered"]),d.dragMask.hide()}})}},reset:function(){this.getDom("content").innerHTML=this.getContentHtml(),this.fireEvent("dialogafterreset")},_show:function(){this._hidden&&(this.getDom().style.display="",this.editor.container.style.zIndex&&(this.getDom().style.zIndex=1*this.editor.container.style.zIndex+10),this._hidden=!1,this.fireEvent("show"),baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex=this.getDom().style.zIndex-4)},isHidden:function(){return this._hidden},_hide:function(){if(!this._hidden){var a=this.getDom();a.style.display="none",a.style.zIndex="",a.style.width="",a.style.height="",this._hidden=!0,this.fireEvent("hide")}},open:function(){if(this.autoReset)try{this.reset()}catch(a){this.render(),this.open()}if(this.showAtCenter(),this.iframeUrl)try{this.getDom("iframe").focus()}catch(b){}c=this},_onCloseButtonClick:function(a,b){this.close(!1)},close:function(a){if(this.fireEvent("close",a)!==!1){this.fullscreen&&(document.documentElement.style.overflowX=this._originalContext.html.overflowX,document.documentElement.style.overflowY=this._originalContext.html.overflowY,document.body.style.overflowX=this._originalContext.body.overflowX,document.body.style.overflowY=this._originalContext.body.overflowY,delete this._originalContext),this._hide();var b=this.getDom("content"),c=this.getDom("iframe");if(b&&c){var d=c.contentDocument||c.contentWindow.document;d&&(d.body.innerHTML=""),e.remove(b)}}}},d.inherits(j,h)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Menu,c=baidu.editor.ui.SplitButton,d=baidu.editor.ui.MenuButton=function(a){this.initOptions(a),this.initMenuButton()};d.prototype={initMenuButton:function(){var a=this;this.uiName="menubutton",this.popup=new b({items:a.items,className:a.className,editor:a.editor}),this.popup.addListener("show",function(){for(var b=this,c=0;c<b.items.length;c++)b.items[c].removeState("checked"),b.items[c].value==a._value&&(b.items[c].addState("checked"),this.value=a._value)}),this.initSplitButton()},setValue:function(a){this._value=a}},a.inherits(d,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Popup,c=baidu.editor.ui.SplitButton,d=baidu.editor.ui.MultiMenuPop=function(a){this.initOptions(a),this.initMultiMenu()};d.prototype={initMultiMenu:function(){var a=this;this.popup=new b({content:"",editor:a.editor,iframe_rendered:!1,onshow:function(){this.iframe_rendered||(this.iframe_rendered=!0,this.getDom("content").innerHTML='<iframe id="'+a.id+'_iframe" src="'+a.iframeUrl+'" frameborder="0"></iframe>',a.editor.container.style.zIndex&&(this.getDom().style.zIndex=1*a.editor.container.style.zIndex+1))}}),this.onbuttonclick=function(){this.showPopup()},this.initSplitButton()}},a.inherits(d,c)}(),function(){function a(a){var b=a.target||a.srcElement,c=g.findParent(b,function(a){return g.hasClass(a,"edui-shortcutmenu")||g.hasClass(a,"edui-popup")},!0);if(!c)for(var d,e=0;d=h[e++];)d.hide()}var b,c=baidu.editor.ui,d=c.UIBase,e=c.uiUtils,f=baidu.editor.utils,g=baidu.editor.dom.domUtils,h=[],i=!1,j=c.ShortCutMenu=function(a){this.initOptions(a),this.initShortCutMenu()};j.postHide=a,j.prototype={isHidden:!0,SPACE:5,initShortCutMenu:function(){this.items=this.items||[],this.initUIBase(),this.initItems(),this.initEvent(),h.push(this)},initEvent:function(){var a=this,c=a.editor.document;g.on(c,"mousemove",function(c){if(a.isHidden===!1){if(a.getSubMenuMark()||"contextmenu"==a.eventType)return;var d=!0,e=a.getDom(),f=e.offsetWidth,g=e.offsetHeight,h=f/2+a.SPACE,i=g/2,j=Math.abs(c.screenX-a.left),k=Math.abs(c.screenY-a.top);clearTimeout(b),b=setTimeout(function(){k>0&&k<i?a.setOpacity(e,"1"):k>i&&k<i+70?(a.setOpacity(e,"0.5"),d=!1):k>i+70&&k<i+140&&a.hide(),d&&j>0&&j<h?a.setOpacity(e,"1"):j>h&&j<h+70?a.setOpacity(e,"0.5"):j>h+70&&j<h+140&&a.hide()})}}),browser.chrome&&g.on(c,"mouseout",function(b){var c=b.relatedTarget||b.toElement;null!=c&&"HTML"!=c.tagName||a.hide()}),a.editor.addListener("afterhidepop",function(){a.isHidden||(i=!0)})},initItems:function(){if(f.isArray(this.items))for(var a=0,b=this.items.length;a<b;a++){var d=this.items[a].toLowerCase();c[d]&&(this.items[a]=new c[d](this.editor),this.items[a].className+=" edui-shortcutsubmenu ")}},setOpacity:function(a,b){browser.ie&&browser.version<9?a.style.filter="alpha(opacity = "+100*parseFloat(b)+");":a.style.opacity=b},getSubMenuMark:function(){i=!1;for(var a,b=e.getFixedLayer(),c=g.getElementsByTagName(b,"div",function(a){return g.hasClass(a,"edui-shortcutsubmenu edui-popup")}),d=0;a=c[d++];)"none"!=a.style.display&&(i=!0);return i},show:function(a,b){function c(a){a.left<0&&(a.left=0),a.top<0&&(a.top=0),i.style.cssText="position:absolute;left:"+a.left+"px;top:"+a.top+"px;"}function d(a){a.tagName||(a=a.getDom()),h.left=parseInt(a.style.left),h.top=parseInt(a.style.top),h.top-=i.offsetHeight+15,c(h)}var f=this,h={},i=this.getDom(),j=e.getFixedLayer();if(f.eventType=a.type,i.style.cssText="display:block;left:-9999px","contextmenu"==a.type&&b){var k=g.getElementsByTagName(j,"div","edui-contextmenu")[0];k?d(k):f.editor.addListener("aftershowcontextmenu",function(a,b){d(b)})}else h=e.getViewportOffsetByEvent(a),h.top-=i.offsetHeight+f.SPACE,h.left+=f.SPACE+20,c(h),f.setOpacity(i,.2);f.isHidden=!1,f.left=a.screenX+i.offsetWidth/2-f.SPACE,f.top=a.screenY-i.offsetHeight/2-f.SPACE,f.editor&&(i.style.zIndex=1*f.editor.container.style.zIndex+10,j.style.zIndex=i.style.zIndex-1)},hide:function(){this.getDom()&&(this.getDom().style.display="none"),this.isHidden=!0},postRender:function(){if(f.isArray(this.items))for(var a,b=0;a=this.items[b++];)a.postRender()},getHtmlTpl:function(){var a;if(f.isArray(this.items)){a=[];for(var b=0;b<this.items.length;b++)a[b]=this.items[b].renderHtml();a=a.join("")}else a=this.items;return'<div id="##" class="%% edui-toolbar" data-src="shortcutmenu" onmousedown="return false;" onselectstart="return false;" >'+a+"</div>"}},f.inherits(j,d),g.on(document,"mousedown",function(b){a(b)}),g.on(window,"scroll",function(b){a(b)})}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Breakline=function(a){this.initOptions(a),this.initSeparator()};c.prototype={uiName:"Breakline",initSeparator:function(){this.initUIBase()},getHtmlTpl:function(){return"<br/>"}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Message=function(a){this.initOptions(a),this.initMessage()};d.prototype={initMessage:function(){this.initUIBase()},getHtmlTpl:function(){return'<div id="##" class="edui-message %%"> <div id="##_closer" class="edui-message-closer">脳</div> <div id="##_body" class="edui-message-body edui-message-type-info"> <iframe style="position:absolute;z-index:-1;left:0;top:0;background-color: transparent;" frameborder="0" width="100%" height="100%" src="about:blank"></iframe> <div class="edui-shadow"></div> <div id="##_content" class="edui-message-content">  </div> </div></div>'},reset:function(a){var b=this;a.keepshow||(clearTimeout(this.timer),b.timer=setTimeout(function(){b.hide()},a.timeout||4e3)),void 0!==a.content&&b.setContent(a.content),void 0!==a.type&&b.setType(a.type),b.show()},postRender:function(){var a=this,c=this.getDom("closer");c&&b.on(c,"click",function(){a.hide()})},setContent:function(a){this.getDom("content").innerHTML=a},setType:function(a){a=a||"info";var b=this.getDom("body");b.className=b.className.replace(/edui-message-type-[\w-]+/,"edui-message-type-"+a)},getContent:function(){return this.getDom("content").innerHTML},getType:function(){var a=this.getDom("body").match(/edui-message-type-([\w-]+)/);return a?a[1]:""},show:function(){this.getDom().style.display="block"},hide:function(){var a=this.getDom();a&&(a.style.display="none",a.parentNode&&a.parentNode.removeChild(a))}},a.inherits(d,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui,c=b.Dialog;b.buttons={},b.Dialog=function(a){var b=new c(a);return b.addListener("hide",function(){if(b.editor){var a=b.editor;try{if(browser.gecko){var c=a.window.scrollY,d=a.window.scrollX;a.body.focus(),a.window.scrollTo(d,c)}else a.focus()}catch(e){}}}),b};for(var d,e={anchor:"~/dialogs/anchor/anchor.html",insertimage:"~/dialogs/image/image.html",link:"~/dialogs/link/link.html",spechars:"~/dialogs/spechars/spechars.html",searchreplace:"~/dialogs/searchreplace/searchreplace.html",map:"~/dialogs/map/map.html",gmap:"~/dialogs/gmap/gmap.html",insertvideo:"~/dialogs/video/video.html",help:"~/dialogs/help/help.html",preview:"~/dialogs/preview/preview.html",emotion:"~/dialogs/emotion/emotion.html",wordimage:"~/dialogs/wordimage/wordimage.html",attachment:"~/dialogs/attachment/attachment.html",insertframe:"~/dialogs/insertframe/insertframe.html",edittip:"~/dialogs/table/edittip.html",edittable:"~/dialogs/table/edittable.html",edittd:"~/dialogs/table/edittd.html",webapp:"~/dialogs/webapp/webapp.html",snapscreen:"~/dialogs/snapscreen/snapscreen.html",scrawl:"~/dialogs/scrawl/scrawl.html",music:"~/dialogs/music/music.html",template:"~/dialogs/template/template.html",background:"~/dialogs/background/background.html",charts:"~/dialogs/charts/charts.html"},f=["undo","redo","formatmatch","bold","italic","underline","fontborder","touppercase","tolowercase","strikethrough","subscript","superscript","source","indent","outdent","blockquote","pasteplain","pagebreak","selectall","print","horizontal","removeformat","time","date","unlink","insertparagraphbeforetable","insertrow","insertcol","mergeright","mergedown","deleterow","deletecol","splittorows","splittocols","splittocells","mergecells","deletetable","drafts"],g=0;d=f[g++];)d=d.toLowerCase(),b[d]=function(a){return function(c){var d=new b.Button({className:"edui-for-"+a,title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",onclick:function(){c.execCommand(a)},theme:c.options.theme,showText:!1});return b.buttons[a]=d,c.addListener("selectionchange",function(b,e,f){var g=c.queryCommandState(a);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(d);b.cleardoc=function(a){var c=new b.Button({className:"edui-for-cleardoc",title:a.options.labelMap.cleardoc||a.getLang("labelMap.cleardoc")||"",theme:a.options.theme,onclick:function(){confirm(a.getLang("confirmClear"))&&a.execCommand("cleardoc")}});return b.buttons.cleardoc=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("cleardoc")==-1)}),c};var h={justify:["left","right","center","justify"],imagefloat:["none","left","center","right"],directionality:["ltr","rtl"]};for(var i in h)!function(a,c){for(var d,e=0;d=c[e++];)!function(c){b[a.replace("float","")+c]=function(d){var e=new b.Button({className:"edui-for-"+a.replace("float","")+c,title:d.options.labelMap[a.replace("float","")+c]||d.getLang("labelMap."+a.replace("float","")+c)||"",theme:d.options.theme,onclick:function(){d.execCommand(a,c)}});return b.buttons[a]=e,d.addListener("selectionchange",function(b,f,g){e.setDisabled(d.queryCommandState(a)==-1),e.setChecked(d.queryCommandValue(a)==c&&!g)}),e}}(d)}(i,h[i]);for(var d,g=0;d=["backcolor","forecolor"][g++];)b[d]=function(a){return function(c){var d=new b.ColorButton({className:"edui-for-"+a,color:"default",title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",editor:c,onpickcolor:function(b,d){
-c.execCommand(a,d)},onpicknocolor:function(){c.execCommand(a,"default"),this.setColor("transparent"),this.color="default"},onbuttonclick:function(){c.execCommand(a,this.color)}});return b.buttons[a]=d,c.addListener("selectionchange",function(){d.setDisabled(c.queryCommandState(a)==-1)}),d}}(d);var j={noOk:["searchreplace","help","spechars","webapp","preview"],ok:["attachment","anchor","link","insertimage","map","gmap","insertframe","wordimage","insertvideo","insertframe","edittip","edittable","edittd","scrawl","template","music","background","charts"]};for(var i in j)!function(c,d){for(var f,g=0;f=d[g++];)browser.opera&&"searchreplace"===f||!function(d){b[d]=function(f,g,h){g=g||(f.options.iframeUrlMap||{})[d]||e[d],h=f.options.labelMap[d]||f.getLang("labelMap."+d)||"";var i;g&&(i=new b.Dialog(a.extend({iframeUrl:f.ui.mapUrl(g),editor:f,className:"edui-for-"+d,title:h,holdScroll:"insertimage"===d,fullscreen:/charts|preview/.test(d),closeDialog:f.getLang("closeDialog")},"ok"==c?{buttons:[{className:"edui-okbutton",label:f.getLang("ok"),editor:f,onclick:function(){i.close(!0)}},{className:"edui-cancelbutton",label:f.getLang("cancel"),editor:f,onclick:function(){i.close(!1)}}]}:{})),f.ui._dialogs[d+"Dialog"]=i);var j=new b.Button({className:"edui-for-"+d,title:h,onclick:function(){if(i)switch(d){case"wordimage":var a=f.execCommand("wordimage");a&&a.length&&(i.render(),i.open());break;case"scrawl":f.queryCommandState("scrawl")!=-1&&(i.render(),i.open());break;default:i.render(),i.open()}},theme:f.options.theme,disabled:"scrawl"==d&&f.queryCommandState("scrawl")==-1||"charts"==d});return b.buttons[d]=j,f.addListener("selectionchange",function(){var a={edittable:1};if(!(d in a)){var b=f.queryCommandState(d);j.getDom()&&(j.setDisabled(b==-1),j.setChecked(b))}}),j}}(f.toLowerCase())}(i,j[i]);b.snapscreen=function(a,c,d){d=a.options.labelMap.snapscreen||a.getLang("labelMap.snapscreen")||"";var f=new b.Button({className:"edui-for-snapscreen",title:d,onclick:function(){a.execCommand("snapscreen")},theme:a.options.theme});if(b.buttons.snapscreen=f,c=c||(a.options.iframeUrlMap||{}).snapscreen||e.snapscreen){var g=new b.Dialog({iframeUrl:a.ui.mapUrl(c),editor:a,className:"edui-for-snapscreen",title:d,buttons:[{className:"edui-okbutton",label:a.getLang("ok"),editor:a,onclick:function(){g.close(!0)}},{className:"edui-cancelbutton",label:a.getLang("cancel"),editor:a,onclick:function(){g.close(!1)}}]});g.render(),a.ui._dialogs.snapscreenDialog=g}return a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState("snapscreen")==-1)}),f},b.insertcode=function(c,d,e){d=c.options.insertcode||[],e=c.options.labelMap.insertcode||c.getLang("labelMap.insertcode")||"";var f=[];a.each(d,function(a,b){f.push({label:a,value:b,theme:c.options.theme,renderLabelHtml:function(){return'<div class="edui-label %%-label" >'+(this.label||"")+"</div>"}})});var g=new b.Combox({editor:c,items:f,onselect:function(a,b){c.execCommand("insertcode",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-insertcode",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.insertcode=g,c.addListener("selectionchange",function(a,b,d){if(!d){var f=c.queryCommandState("insertcode");if(f==-1)g.setDisabled(!0);else{g.setDisabled(!1);var h=c.queryCommandValue("insertcode");if(!h)return void g.setValue(e);h&&(h=h.replace(/['"]/g,"").split(",")[0]),g.setValue(h)}}}),g},b.fontfamily=function(c,d,e){if(d=c.options.fontfamily||[],e=c.options.labelMap.fontfamily||c.getLang("labelMap.fontfamily")||"",d.length){for(var f,g=0,h=[];f=d[g];g++){var i=c.getLang("fontfamily")[f.name]||"";!function(b,d){h.push({label:b,value:d,theme:c.options.theme,renderLabelHtml:function(){return'<div class="edui-label %%-label" style="font-family:'+a.unhtml(this.value)+'">'+(this.label||"")+"</div>"}})}(f.label||i,f.val)}var j=new b.Combox({editor:c,items:h,onselect:function(a,b){c.execCommand("FontFamily",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-fontfamily",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.fontfamily=j,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("FontFamily");if(e==-1)j.setDisabled(!0);else{j.setDisabled(!1);var f=c.queryCommandValue("FontFamily");f&&(f=f.replace(/['"]/g,"").split(",")[0]),j.setValue(f)}}}),j}},b.fontsize=function(a,c,d){if(d=a.options.labelMap.fontsize||a.getLang("labelMap.fontsize")||"",c=c||a.options.fontsize||[],c.length){for(var e=[],f=0;f<c.length;f++){var g=c[f]+"px";e.push({label:g,value:g,theme:a.options.theme,renderLabelHtml:function(){return'<div class="edui-label %%-label" style="line-height:1;font-size:'+this.value+'">'+(this.label||"")+"</div>"}})}var h=new b.Combox({editor:a,items:e,title:d,initValue:d,onselect:function(b,c){a.execCommand("FontSize",this.items[c].value)},onbuttonclick:function(){this.showPopup()},className:"edui-for-fontsize"});return b.buttons.fontsize=h,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("FontSize");e==-1?h.setDisabled(!0):(h.setDisabled(!1),h.setValue(a.queryCommandValue("FontSize")))}}),h}},b.paragraph=function(c,d,e){if(e=c.options.labelMap.paragraph||c.getLang("labelMap.paragraph")||"",d=c.options.paragraph||[],!a.isEmptyObject(d)){var f=[];for(var g in d)f.push({value:g,label:d[g]||c.getLang("paragraph")[g],theme:c.options.theme,renderLabelHtml:function(){return'<div class="edui-label %%-label"><span class="edui-for-'+this.value+'">'+(this.label||"")+"</span></div>"}});var h=new b.Combox({editor:c,items:f,title:e,initValue:e,className:"edui-for-paragraph",onselect:function(a,b){c.execCommand("Paragraph",this.items[b].value)},onbuttonclick:function(){this.showPopup()}});return b.buttons.paragraph=h,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("Paragraph");if(e==-1)h.setDisabled(!0);else{h.setDisabled(!1);var f=c.queryCommandValue("Paragraph"),g=h.indexByValue(f);g!=-1?h.setValue(f):h.setValue(h.initValue)}}}),h}},b.customstyle=function(a){var c=a.options.customstyle||[],d=a.options.labelMap.customstyle||a.getLang("labelMap.customstyle")||"";if(c.length){for(var e,f=a.getLang("customstyle"),g=0,h=[];e=c[g++];)!function(b){var c={};c.label=b.label?b.label:f[b.name],c.style=b.style,c.className=b.className,c.tag=b.tag,h.push({label:c.label,value:c,theme:a.options.theme,renderLabelHtml:function(){return'<div class="edui-label %%-label"><'+c.tag+" "+(c.className?' class="'+c.className+'"':"")+(c.style?' style="'+c.style+'"':"")+">"+c.label+"</"+c.tag+"></div>"}})}(e);var i=new b.Combox({editor:a,items:h,title:d,initValue:d,className:"edui-for-customstyle",onselect:function(b,c){a.execCommand("customstyle",this.items[c].value)},onbuttonclick:function(){this.showPopup()},indexByValue:function(a){for(var b,c=0;b=this.items[c++];)if(b.label==a)return c-1;return-1}});return b.buttons.customstyle=i,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("customstyle");if(e==-1)i.setDisabled(!0);else{i.setDisabled(!1);var f=a.queryCommandValue("customstyle"),g=i.indexByValue(f);g!=-1?i.setValue(f):i.setValue(i.initValue)}}}),i}},b.inserttable=function(a,c,d){d=a.options.labelMap.inserttable||a.getLang("labelMap.inserttable")||"";var e=new b.TableButton({editor:a,title:d,className:"edui-for-inserttable",onpicktable:function(b,c,d){a.execCommand("InsertTable",{numRows:d,numCols:c,border:1})},onbuttonclick:function(){this.showPopup()}});return b.buttons.inserttable=e,a.addListener("selectionchange",function(){e.setDisabled(a.queryCommandState("inserttable")==-1)}),e},b.lineheight=function(a){var c=a.options.lineheight||[];if(c.length){for(var d,e=0,f=[];d=c[e++];)f.push({label:d,value:d,theme:a.options.theme,onclick:function(){a.execCommand("lineheight",this.value)}});var g=new b.MenuButton({editor:a,className:"edui-for-lineheight",title:a.options.labelMap.lineheight||a.getLang("labelMap.lineheight")||"",items:f,onbuttonclick:function(){var b=a.queryCommandValue("LineHeight")||this.value;a.execCommand("LineHeight",b)}});return b.buttons.lineheight=g,a.addListener("selectionchange",function(){var b=a.queryCommandState("LineHeight");if(b==-1)g.setDisabled(!0);else{g.setDisabled(!1);var c=a.queryCommandValue("LineHeight");c&&g.setValue((c+"").replace(/cm/,"")),g.setChecked(b)}}),g}};for(var k,l=["top","bottom"],m=0;k=l[m++];)!function(a){b["rowspacing"+a]=function(c){var d=c.options["rowspacing"+a]||[];if(!d.length)return null;for(var e,f=0,g=[];e=d[f++];)g.push({label:e,value:e,theme:c.options.theme,onclick:function(){c.execCommand("rowspacing",this.value,a)}});var h=new b.MenuButton({editor:c,className:"edui-for-rowspacing"+a,title:c.options.labelMap["rowspacing"+a]||c.getLang("labelMap.rowspacing"+a)||"",items:g,onbuttonclick:function(){var b=c.queryCommandValue("rowspacing",a)||this.value;c.execCommand("rowspacing",b,a)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState("rowspacing",a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue("rowspacing",a);d&&h.setValue((d+"").replace(/%/,"")),h.setChecked(b)}}),h}}(k);for(var n,o=["insertorderedlist","insertunorderedlist"],p=0;n=o[p++];)!function(a){b[a]=function(c){var d=c.options[a],e=function(){c.execCommand(a,this.value)},f=[];for(var g in d)f.push({label:d[g]||c.getLang()[a][g]||"",value:g,theme:c.options.theme,onclick:e});var h=new b.MenuButton({editor:c,className:"edui-for-"+a,title:c.getLang("labelMap."+a)||"",items:f,onbuttonclick:function(){var b=c.queryCommandValue(a)||this.value;c.execCommand(a,b)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState(a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue(a);h.setValue(d),h.setChecked(b)}}),h}}(n);b.fullscreen=function(a,c){c=a.options.labelMap.fullscreen||a.getLang("labelMap.fullscreen")||"";var d=new b.Button({className:"edui-for-fullscreen",title:c,theme:a.options.theme,onclick:function(){a.ui&&a.ui.setFullScreen(!a.ui.isFullScreen()),this.setChecked(a.ui.isFullScreen())}});return b.buttons.fullscreen=d,a.addListener("selectionchange",function(){var b=a.queryCommandState("fullscreen");d.setDisabled(b==-1),d.setChecked(a.ui.isFullScreen())}),d},b.emotion=function(a,c){var d="emotion",f=new b.MultiMenuPop({title:a.options.labelMap[d]||a.getLang("labelMap."+d)||"",editor:a,className:"edui-for-"+d,iframeUrl:a.ui.mapUrl(c||(a.options.iframeUrlMap||{})[d]||e[d])});return b.buttons[d]=f,a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState(d)==-1)}),f},b.autotypeset=function(a){var c=new b.AutoTypeSetButton({editor:a,title:a.options.labelMap.autotypeset||a.getLang("labelMap.autotypeset")||"",className:"edui-for-autotypeset",onbuttonclick:function(){a.execCommand("autotypeset")}});return b.buttons.autotypeset=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("autotypeset")==-1)}),c},b.simpleupload=function(a){var c="simpleupload",d=new b.Button({className:"edui-for-"+c,title:a.options.labelMap[c]||a.getLang("labelMap."+c)||"",onclick:function(){},theme:a.options.theme,showText:!1});return b.buttons[c]=d,a.addListener("ready",function(){var b=d.getDom("body"),c=b.children[0];a.fireEvent("simpleuploadbtnready",c)}),a.addListener("selectionchange",function(b,e,f){var g=a.queryCommandState(c);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(),function(){function a(a){this.initOptions(a),this.initEditorUI()}var b=baidu.editor.utils,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.dom.domUtils,f=[];a.prototype={uiName:"editor",initEditorUI:function(){function a(a,b){a.setOpt({wordCount:!0,maximumWords:1e4,wordCountMsg:a.options.wordCountMsg||a.getLang("wordCountMsg"),wordOverFlowMsg:a.options.wordOverFlowMsg||a.getLang("wordOverFlowMsg")});var c=a.options,d=c.maximumWords,e=c.wordCountMsg,f=c.wordOverFlowMsg,g=b.getDom("wordcount");if(c.wordCount){var h=a.getContentLength(!0);h>d?(g.innerHTML=f,a.fireEvent("wordcountoverflow")):g.innerHTML=e.replace("{#leave}",d-h).replace("{#count}",h)}}this.editor.ui=this,this._dialogs={},this.initUIBase(),this._initToolbars();var b=this.editor,c=this;b.addListener("ready",function(){function d(){a(b,c),e.un(b.document,"click",arguments.callee)}b.getDialog=function(a){return b.ui._dialogs[a+"Dialog"]},e.on(b.window,"scroll",function(a){baidu.editor.ui.Popup.postHide(a)}),b.ui._actualFrameWidth=b.options.initialFrameWidth,UE.browser.ie&&6===UE.browser.version&&b.container.ownerDocument.execCommand("BackgroundImageCache",!1,!0),b.options.elementPathEnabled&&(b.ui.getDom("elementpath").innerHTML='<div class="edui-editor-breadcrumb">'+b.getLang("elementPathTip")+":</div>"),b.options.wordCount&&(e.on(b.document,"click",d),b.ui.getDom("wordcount").innerHTML=b.getLang("wordCountTip")),b.ui._scale(),b.options.scaleEnabled?(b.autoHeightEnabled&&b.disableAutoHeight(),c.enableScale()):c.disableScale(),b.options.elementPathEnabled||b.options.wordCount||b.options.scaleEnabled||(b.ui.getDom("elementpath").style.display="none",b.ui.getDom("wordcount").style.display="none",b.ui.getDom("scale").style.display="none"),b.selection.isFocus()&&b.fireEvent("selectionchange",!1,!0)}),b.addListener("mousedown",function(a,b){var c=b.target||b.srcElement;baidu.editor.ui.Popup.postHide(b,c),baidu.editor.ui.ShortCutMenu.postHide(b)}),b.addListener("delcells",function(){UE.ui.edittip&&new UE.ui.edittip(b),b.getDialog("edittip").open()});var d,f,g=!1;b.addListener("afterpaste",function(){b.queryCommandState("pasteplain")||(baidu.editor.ui.PastePicker&&(d=new baidu.editor.ui.Popup({content:new baidu.editor.ui.PastePicker({editor:b}),editor:b,className:"edui-wordpastepop"}),d.render()),g=!0)}),b.addListener("afterinserthtml",function(){clearTimeout(f),f=setTimeout(function(){if(d&&(g||b.ui._isTransfer)){if(d.isHidden()){var a=e.createElement(b.document,"span",{style:"line-height:0px;",innerHTML:"\ufeff"}),c=b.selection.getRange();c.insertNode(a);var f=getDomNode(a,"firstChild","previousSibling");f&&d.showAnchor(3==f.nodeType?f.parentNode:f),e.remove(a)}else d.show();delete b.ui._isTransfer,g=!1}},200)}),b.addListener("contextmenu",function(a,b){baidu.editor.ui.Popup.postHide(b)}),b.addListener("keydown",function(a,b){d&&d.dispose(b);var c=b.keyCode||b.which;b.altKey&&90==c&&UE.ui.buttons.fullscreen.onclick()}),b.addListener("wordcount",function(b){a(this,c)}),b.addListener("selectionchange",function(){b.options.elementPathEnabled&&c[(b.queryCommandState("elementpath")==-1?"dis":"en")+"ableElementPath"](),b.options.scaleEnabled&&c[(b.queryCommandState("scale")==-1?"dis":"en")+"ableScale"]()});var h=new baidu.editor.ui.Popup({editor:b,content:"",className:"edui-bubble",_onEditButtonClick:function(){this.hide(),b.ui._dialogs.linkDialog.open()},_onImgEditButtonClick:function(a){this.hide(),b.ui._dialogs[a]&&b.ui._dialogs[a].open()},_onImgSetFloat:function(a){this.hide(),b.execCommand("imagefloat",a)},_setIframeAlign:function(a){var b=h.anchorEl,c=b.cloneNode(!0);switch(a){case-2:c.setAttribute("align","");break;case-1:c.setAttribute("align","left");break;case 1:c.setAttribute("align","right")}b.parentNode.insertBefore(c,b),e.remove(b),h.anchorEl=c,h.showAnchor(h.anchorEl)},_updateIframe:function(){var a=b._iframe=h.anchorEl;e.hasClass(a,"ueditor_baidumap")?(b.selection.getRange().selectNode(a).select(),b.ui._dialogs.mapDialog.open(),h.hide()):(b.ui._dialogs.insertframeDialog.open(),h.hide())},_onRemoveButtonClick:function(a){b.execCommand(a),this.hide()},queryAutoHide:function(a){return a&&a.ownerDocument==b.document&&("img"==a.tagName.toLowerCase()||e.findParentByTagName(a,"a",!0))?a!==h.anchorEl:baidu.editor.ui.Popup.prototype.queryAutoHide.call(this,a)}});h.render(),b.options.imagePopup&&(b.addListener("mouseover",function(a,c){c=c||window.event;var d=c.target||c.srcElement;if(b.ui._dialogs.insertframeDialog&&/iframe/gi.test(d.tagName)){var e=h.formatHtml("<nobr>"+b.getLang("property")+': <span onclick=$$._setIframeAlign(-2) class="edui-clickable">'+b.getLang("default")+'</span>&nbsp;&nbsp;<span onclick=$$._setIframeAlign(-1) class="edui-clickable">'+b.getLang("justifyleft")+'</span>&nbsp;&nbsp;<span onclick=$$._setIframeAlign(1) class="edui-clickable">'+b.getLang("justifyright")+'</span>&nbsp;&nbsp; <span onclick="$$._updateIframe( this);" class="edui-clickable">'+b.getLang("modify")+"</span></nobr>");e?(h.getDom("content").innerHTML=e,h.anchorEl=d,h.showAnchor(h.anchorEl)):h.hide()}}),b.addListener("selectionchange",function(a,c){if(c){var d="",f="",g=b.selection.getRange().getClosedNode(),i=b.ui._dialogs;if(g&&"IMG"==g.tagName){var j="insertimageDialog";if(g.className.indexOf("edui-faked-video")==-1&&g.className.indexOf("edui-upload-video")==-1||(j="insertvideoDialog"),g.className.indexOf("edui-faked-webapp")!=-1&&(j="webappDialog"),g.src.indexOf("http://api.map.baidu.com")!=-1&&(j="mapDialog"),g.className.indexOf("edui-faked-music")!=-1&&(j="musicDialog"),g.src.indexOf("http://maps.google.com/maps/api/staticmap")!=-1&&(j="gmapDialog"),g.getAttribute("anchorname")&&(j="anchorDialog",d=h.formatHtml("<nobr>"+b.getLang("property")+': <span onclick=$$._onImgEditButtonClick("anchorDialog") class="edui-clickable">'+b.getLang("modify")+"</span>&nbsp;&nbsp;<span onclick=$$._onRemoveButtonClick('anchor') class=\"edui-clickable\">"+b.getLang("delete")+"</span></nobr>")),g.getAttribute("word_img")&&(b.word_img=[g.getAttribute("word_img")],j="wordimageDialog"),(e.hasClass(g,"loadingclass")||e.hasClass(g,"loaderrorclass"))&&(j=""),!i[j])return;f="<nobr>"+b.getLang("property")+': <span onclick=$$._onImgSetFloat("none") class="edui-clickable">'+b.getLang("default")+'</span>&nbsp;&nbsp;<span onclick=$$._onImgSetFloat("left") class="edui-clickable">'+b.getLang("justifyleft")+'</span>&nbsp;&nbsp;<span onclick=$$._onImgSetFloat("right") class="edui-clickable">'+b.getLang("justifyright")+'</span>&nbsp;&nbsp;<span onclick=$$._onImgSetFloat("center") class="edui-clickable">'+b.getLang("justifycenter")+"</span>&nbsp;&nbsp;<span onclick=\"$$._onImgEditButtonClick('"+j+'\');" class="edui-clickable">'+b.getLang("modify")+"</span></nobr>",!d&&(d=h.formatHtml(f))}if(b.ui._dialogs.linkDialog){var k,l=b.queryCommandValue("link");if(l&&(k=l.getAttribute("_href")||l.getAttribute("href",2))){var m=k;k.length>30&&(m=k.substring(0,20)+"..."),d&&(d+='<div style="height:5px;"></div>'),d+=h.formatHtml("<nobr>"+b.getLang("anthorMsg")+': <a target="_blank" href="'+k+'" title="'+k+'" >'+m+'</a> <span class="edui-clickable" onclick="$$._onEditButtonClick();">'+b.getLang("modify")+'</span> <span class="edui-clickable" onclick="$$._onRemoveButtonClick(\'unlink\');"> '+b.getLang("clear")+"</span></nobr>"),h.showAnchor(l)}}d?(h.getDom("content").innerHTML=d,h.anchorEl=g||l,h.showAnchor(h.anchorEl)):h.hide()}}))},_initToolbars:function(){for(var a=this.editor,b=this.toolbars||[],c=[],d=0;d<b.length;d++){for(var e=b[d],f=new baidu.editor.ui.Toolbar({theme:a.options.theme}),g=0;g<e.length;g++){var h=e[g],i=null;if("string"==typeof h){if(h=h.toLowerCase(),"|"==h&&(h="Separator"),"||"==h&&(h="Breakline"),baidu.editor.ui[h]&&(i=new baidu.editor.ui[h](a)),"fullscreen"==h){c&&c[0]?c[0].items.splice(0,0,i):i&&f.items.splice(0,0,i);continue}}else i=h;i&&i.id&&f.add(i)}c[d]=f}for(var j in UE._customizeUI){var k,l,m=UE._customizeUI[j];m.id&&m.id!=a.key||(k=m.execFn.call(a,a,j),k&&(l=m.index,void 0===l&&(l=f.items.length),f.add(k,l)))}this.toolbars=c},getHtmlTpl:function(){return'<div id="##" class="%%"><div id="##_toolbarbox" class="%%-toolbarbox">'+(this.toolbars.length?'<div id="##_toolbarboxouter" class="%%-toolbarboxouter"><div class="%%-toolbarboxinner">'+this.renderToolbarBoxHtml()+"</div></div>":"")+'<div id="##_toolbarmsg" class="%%-toolbarmsg" style="display:none;"><div id = "##_upload_dialog" class="%%-toolbarmsg-upload" onclick="$$.showWordImageDialog();">'+this.editor.getLang("clickToUpload")+'</div><div class="%%-toolbarmsg-close" onclick="$$.hideToolbarMsg();">x</div><div id="##_toolbarmsg_label" class="%%-toolbarmsg-label"></div><div style="height:0;overflow:hidden;clear:both;"></div></div><div id="##_message_holder" class="%%-messageholder"></div></div><div id="##_iframeholder" class="%%-iframeholder"></div><div id="##_bottombar" class="%%-bottomContainer"><table><tr><td id="##_elementpath" class="%%-bottombar"></td><td id="##_wordcount" class="%%-wordcount"></td><td id="##_scale" class="%%-scale"><div class="%%-icon"></div></td></tr></table></div><div id="##_scalelayer"></div></div>'},showWordImageDialog:function(){this._dialogs.wordimageDialog.open()},renderToolbarBoxHtml:function(){for(var a=[],b=0;b<this.toolbars.length;b++)a.push(this.toolbars[b].renderHtml());return a.join("")},setFullScreen:function(a){var b=this.editor,c=b.container.parentNode.parentNode;if(this._fullscreen!=a){if(this._fullscreen=a,this.editor.fireEvent("beforefullscreenchange",a),baidu.editor.browser.gecko)var d=b.selection.getRange().createBookmark();if(a){for(;"BODY"!=c.tagName;){var e=baidu.editor.dom.domUtils.getComputedStyle(c,"position");f.push(e),c.style.position="static",c=c.parentNode}this._bakHtmlOverflow=document.documentElement.style.overflow,this._bakBodyOverflow=document.body.style.overflow,this._bakAutoHeight=this.editor.autoHeightEnabled,this._bakScrollTop=Math.max(document.documentElement.scrollTop,document.body.scrollTop),this._bakEditorContaninerWidth=b.iframe.parentNode.offsetWidth,this._bakAutoHeight&&(b.autoHeightEnabled=!1,this.editor.disableAutoHeight()),document.documentElement.style.overflow="hidden",window.scrollTo(0,window.scrollY),this._bakCssText=this.getDom().style.cssText,this._bakCssText1=this.getDom("iframeholder").style.cssText,b.iframe.parentNode.style.width="",this._updateFullScreen()}else{for(;"BODY"!=c.tagName;)c.style.position=f.shift(),c=c.parentNode;this.getDom().style.cssText=this._bakCssText,this.getDom("iframeholder").style.cssText=this._bakCssText1,this._bakAutoHeight&&(b.autoHeightEnabled=!0,this.editor.enableAutoHeight()),document.documentElement.style.overflow=this._bakHtmlOverflow,document.body.style.overflow=this._bakBodyOverflow,b.iframe.parentNode.style.width=this._bakEditorContaninerWidth+"px",window.scrollTo(0,this._bakScrollTop)}if(browser.gecko&&"true"===b.body.contentEditable){var g=document.createElement("input");document.body.appendChild(g),b.body.contentEditable=!1,setTimeout(function(){g.focus(),setTimeout(function(){b.body.contentEditable=!0,b.fireEvent("fullscreenchanged",a),b.selection.getRange().moveToBookmark(d).select(!0),baidu.editor.dom.domUtils.remove(g),a&&window.scroll(0,0)},0)},0)}"true"===b.body.contentEditable&&(this.editor.fireEvent("fullscreenchanged",a),this.triggerLayout())}},_updateFullScreen:function(){if(this._fullscreen){var a=c.getViewportRect();if(this.getDom().style.cssText="border:0;position:absolute;left:0;top:"+(this.editor.options.topOffset||0)+"px;width:"+a.width+"px;height:"+a.height+"px;z-index:"+(1*this.getDom().style.zIndex+100),c.setViewportOffset(this.getDom(),{left:0,top:this.editor.options.topOffset||0}),this.editor.setHeight(a.height-this.getDom("toolbarbox").offsetHeight-this.getDom("bottombar").offsetHeight-(this.editor.options.topOffset||0),!0),browser.gecko)try{window.onresize()}catch(b){}}},_updateElementPath:function(){var a,b=this.getDom("elementpath");if(this.elementPathEnabled&&(a=this.editor.queryCommandValue("elementpath"))){for(var c,d=[],e=0;c=a[e];e++)d[e]=this.formatHtml('<span unselectable="on" onclick="$$.editor.execCommand(&quot;elementpath&quot;, &quot;'+e+'&quot;);">'+c+"</span>");b.innerHTML='<div class="edui-editor-breadcrumb" onmousedown="return false;">'+this.editor.getLang("elementPathTip")+": "+d.join(" &gt; ")+"</div>"}else b.style.display="none"},disableElementPath:function(){var a=this.getDom("elementpath");a.innerHTML="",a.style.display="none",this.elementPathEnabled=!1},enableElementPath:function(){var a=this.getDom("elementpath");a.style.display="",this.elementPathEnabled=!0,this._updateElementPath()},_scale:function(){function a(){o=e.getXY(h),p||(p=g.options.minFrameHeight+j.offsetHeight+k.offsetHeight),m.style.cssText="position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:"+h.offsetWidth+"px;height:"+h.offsetHeight+"px;z-index:"+(g.options.zIndex+1),e.on(f,"mousemove",b),e.on(i,"mouseup",c),e.on(f,"mouseup",c)}function b(a){d();var b=a||window.event;r=b.pageX||f.documentElement.scrollLeft+b.clientX,s=b.pageY||f.documentElement.scrollTop+b.clientY,t=r-o.x,u=s-o.y,t>=q&&(n=!0,m.style.width=t+"px"),u>=p&&(n=!0,m.style.height=u+"px")}function c(){n&&(n=!1,g.ui._actualFrameWidth=m.offsetWidth-2,h.style.width=g.ui._actualFrameWidth+"px",g.setHeight(m.offsetHeight-k.offsetHeight-j.offsetHeight-2,!0)),m&&(m.style.display="none"),d(),e.un(f,"mousemove",b),e.un(i,"mouseup",c),e.un(f,"mouseup",c)}function d(){browser.ie?f.selection.clear():window.getSelection().removeAllRanges()}var f=document,g=this.editor,h=g.container,i=g.document,j=this.getDom("toolbarbox"),k=this.getDom("bottombar"),l=this.getDom("scale"),m=this.getDom("scalelayer"),n=!1,o=null,p=0,q=g.options.minFrameWidth,r=0,s=0,t=0,u=0,v=this;this.editor.addListener("fullscreenchanged",function(a,b){if(b)v.disableScale();else if(v.editor.options.scaleEnabled){v.enableScale();var c=v.editor.document.createElement("span");v.editor.body.appendChild(c),v.editor.body.style.height=Math.max(e.getXY(c).y,v.editor.iframe.offsetHeight-20)+"px",e.remove(c)}}),this.enableScale=function(){1!=g.queryCommandState("source")&&(l.style.display="",this.scaleEnabled=!0,e.on(l,"mousedown",a))},this.disableScale=function(){l.style.display="none",this.scaleEnabled=!1,e.un(l,"mousedown",a)}},isFullScreen:function(){return this._fullscreen},postRender:function(){d.prototype.postRender.call(this);for(var a=0;a<this.toolbars.length;a++)this.toolbars[a].postRender();var b,c=this,e=baidu.editor.dom.domUtils,f=function(){clearTimeout(b),b=setTimeout(function(){c._updateFullScreen()})};e.on(window,"resize",f),c.addListener("destroy",function(){e.un(window,"resize",f),clearTimeout(b)})},showToolbarMsg:function(a,b){if(this.getDom("toolbarmsg_label").innerHTML=a,this.getDom("toolbarmsg").style.display="",!b){var c=this.getDom("upload_dialog");c.style.display="none"}},hideToolbarMsg:function(){this.getDom("toolbarmsg").style.display="none"},mapUrl:function(a){return a?a.replace("~/",this.editor.options.UEDITOR_HOME_URL||""):""},triggerLayout:function(){var a=this.getDom();"1"==a.style.zoom?a.style.zoom="100%":a.style.zoom="1"}},b.inherits(a,baidu.editor.ui.UIBase);var g={};UE.ui.Editor=function(c){var d=new UE.Editor(c);d.options.editor=d,b.loadFile(document,{href:d.options.themePath+d.options.theme+"/css/ueditor.css",tag:"link",type:"text/css",rel:"stylesheet"});var f=d.render;return d.render=function(c){c.constructor===String&&(d.key=c,g[c]=d),b.domReady(function(){function b(){if(d.setOpt({labelMap:d.options.labelMap||d.getLang("labelMap")}),new a(d.options),c&&(c.constructor===String&&(c=document.getElementById(c)),c&&c.getAttribute("name")&&(d.options.textarea=c.getAttribute("name")),c&&/script|textarea/gi.test(c.tagName))){var b=document.createElement("div");c.parentNode.insertBefore(b,c);var g=c.value||c.innerHTML;d.options.initialContent=/^[\t\r\n ]*$/.test(g)?d.options.initialContent:g.replace(/>[\n\r\t]+([ ]{4})+/g,">").replace(/[\n\r\t]+([ ]{4})+</g,"<").replace(/>[\n\r\t]+</g,"><"),c.className&&(b.className=c.className),c.style.cssText&&(b.style.cssText=c.style.cssText),/textarea/i.test(c.tagName)?(d.textarea=c,d.textarea.style.display="none"):c.parentNode.removeChild(c),c.id&&(b.id=c.id,e.removeAttributes(c,"id")),c=b,c.innerHTML=""}e.addClass(c,"edui-"+d.options.theme),d.ui.render(c);var h=d.options;d.container=d.ui.getDom();for(var i,j=e.findParents(c,!0),k=[],l=0;i=j[l];l++)k[l]=i.style.display,i.style.display="block";if(h.initialFrameWidth)h.minFrameWidth=h.initialFrameWidth;else{h.minFrameWidth=h.initialFrameWidth=c.offsetWidth;var m=c.style.width;/%$/.test(m)&&(h.initialFrameWidth=m)}h.initialFrameHeight?h.minFrameHeight=h.initialFrameHeight:h.initialFrameHeight=h.minFrameHeight=c.offsetHeight;for(var i,l=0;i=j[l];l++)i.style.display=k[l];c.style.height&&(c.style.height=""),d.container.style.width=h.initialFrameWidth+(/%$/.test(h.initialFrameWidth)?"":"px"),d.container.style.zIndex=h.zIndex,f.call(d,d.ui.getDom("iframeholder")),d.fireEvent("afteruiready")}d.langIsReady?b():d.addListener("langReady",b)})},d},UE.getEditor=function(a,b){var c=g[a];return c||(c=g[a]=new UE.ui.Editor(b),c.render(a)),c},UE.delEditor=function(a){var b;(b=g[a])&&(b.key&&b.destroy(),delete g[a])},UE.registerUI=function(a,c,d,e){b.each(a.split(/\s+/),function(a){UE._customizeUI[a]={id:e,execFn:c,index:d}})}}(),UE.registerUI("message",function(a){function b(){var a=g.ui.getDom("toolbarbox");a&&(c.style.top=a.offsetHeight+3+"px"),c.style.zIndex=Math.max(g.options.zIndex,g.iframe.style.zIndex)+1}var c,d=baidu.editor.ui,e=d.Message,f=[],g=a;g.addListener("ready",function(){c=document.getElementById(g.ui.id+"_message_holder"),b()}),g.addListener("showmessage",function(a,d){d=utils.isString(d)?{content:d}:d;var h=new e({timeout:d.timeout,type:d.type,content:d.content,keepshow:d.keepshow,editor:g}),i=d.id||"msg_"+(+new Date).toString(36);return h.render(c),f[i]=h,h.reset(d),b(),i}),g.addListener("updatemessage",function(a,b,d){d=utils.isString(d)?{content:d}:d;var e=f[b];e.render(c),e&&e.reset(d)}),g.addListener("hidemessage",function(a,b){var c=f[b];c&&c.hide()})}),UE.registerUI("autosave",function(a){var b=null,c=null;a.on("afterautosave",function(){clearTimeout(b),b=setTimeout(function(){c&&a.trigger("hidemessage",c),c=a.trigger("showmessage",{content:a.getLang("autosave.success"),timeout:2e3})},2e3)})})}();
\ No newline at end of file
diff --git a/server/public/ueditor/ueditor.config.js b/server/public/ueditor/ueditor.config.js
deleted file mode 100644
index bbf3967..0000000
--- a/server/public/ueditor/ueditor.config.js
+++ /dev/null
@@ -1,502 +0,0 @@
-/**
- * ueditor瀹屾暣閰嶇疆椤�
- * 鍙互鍦ㄨ繖閲岄厤缃暣涓紪杈戝櫒鐨勭壒鎬�
- */
-/**************************鎻愮ず********************************
- * 鎵�鏈夎娉ㄩ噴鐨勯厤缃」鍧囦负UEditor榛樿鍊笺��
- * 淇敼榛樿閰嶇疆璇烽鍏堢‘淇濆凡缁忓畬鍏ㄦ槑纭鍙傛暟鐨勭湡瀹炵敤閫斻��
- * 涓昏鏈変袱绉嶄慨鏀规柟妗堬紝涓�绉嶆槸鍙栨秷姝ゅ娉ㄩ噴锛岀劧鍚庝慨鏀规垚瀵瑰簲鍙傛暟锛涘彟涓�绉嶆槸鍦ㄥ疄渚嬪寲缂栬緫鍣ㄦ椂浼犲叆瀵瑰簲鍙傛暟銆�
- * 褰撳崌绾х紪杈戝櫒鏃讹紝鍙洿鎺ヤ娇鐢ㄦ棫鐗堥厤缃枃浠舵浛鎹㈡柊鐗堥厤缃枃浠�,涓嶇敤鎷呭績鏃х増閰嶇疆鏂囦欢涓洜缂哄皯鏂板姛鑳芥墍闇�鐨勫弬鏁拌�屽鑷磋剼鏈姤閿欍��
- **************************鎻愮ず********************************/
-
-(function () {
-
-    /**
-     * 缂栬緫鍣ㄨ祫婧愭枃浠舵牴璺緞銆傚畠鎵�琛ㄧず鐨勫惈涔夋槸锛氫互缂栬緫鍣ㄥ疄渚嬪寲椤甸潰涓哄綋鍓嶈矾寰勶紝鎸囧悜缂栬緫鍣ㄨ祫婧愭枃浠讹紙鍗砫ialog绛夋枃浠跺す锛夌殑璺緞銆�
-     * 閴翠簬寰堝鍚屽鍦ㄤ娇鐢ㄧ紪杈戝櫒鐨勬椂鍊欏嚭鐜扮殑绉嶇璺緞闂锛屾澶勫己鐑堝缓璁ぇ瀹朵娇鐢�"鐩稿浜庣綉绔欐牴鐩綍鐨勭浉瀵硅矾寰�"杩涜閰嶇疆銆�
-     * "鐩稿浜庣綉绔欐牴鐩綍鐨勭浉瀵硅矾寰�"涔熷氨鏄互鏂滄潬寮�澶寸殑褰㈠"/myProject/ueditor/"杩欐牱鐨勮矾寰勩��
-     * 濡傛灉绔欑偣涓湁澶氫釜涓嶅湪鍚屼竴灞傜骇鐨勯〉闈㈤渶瑕佸疄渚嬪寲缂栬緫鍣紝涓斿紩鐢ㄤ簡鍚屼竴UEditor鐨勬椂鍊欙紝姝ゅ鐨刄RL鍙兘涓嶉�傜敤浜庢瘡涓〉闈㈢殑缂栬緫鍣ㄣ��
-     * 鍥犳锛孶Editor鎻愪緵浜嗛拡瀵逛笉鍚岄〉闈㈢殑缂栬緫鍣ㄥ彲鍗曠嫭閰嶇疆鐨勬牴璺緞锛屽叿浣撴潵璇达紝鍦ㄩ渶瑕佸疄渚嬪寲缂栬緫鍣ㄧ殑椤甸潰鏈�椤堕儴鍐欎笂濡備笅浠g爜鍗冲彲銆傚綋鐒讹紝闇�瑕佷护姝ゅ鐨刄RL绛変簬瀵瑰簲鐨勯厤缃��
-     * window.UEDITOR_HOME_URL = "/xxxx/xxxx/";
-     */
-    // window.UEDITOR_HOME_URL = "/static/utf8-php/"
-    
-    
-    
-    var URL = window.UEDITOR_HOME_URL || getUEBasePath();
-
-    /**
-     * 閰嶇疆椤逛富浣撱�傛敞鎰忥紝姝ゅ鎵�鏈夋秹鍙婂埌璺緞鐨勯厤缃埆閬楁紡URL鍙橀噺銆�
-     */
-    window.UEDITOR_CONFIG = {
-
-        //涓虹紪杈戝櫒瀹炰緥娣诲姞涓�涓矾寰勶紝杩欎釜涓嶈兘琚敞閲�
-        UEDITOR_HOME_URL: URL
-
-        // 鏈嶅姟鍣ㄧ粺涓�璇锋眰鎺ュ彛璺緞
-        , serverUrl: URL + "php/controller.php"
-        // ,serverUrl: "http://localhost:3030"
-
-        //宸ュ叿鏍忎笂鐨勬墍鏈夌殑鍔熻兘鎸夐挳鍜屼笅鎷夋锛屽彲浠ュ湪new缂栬緫鍣ㄧ殑瀹炰緥鏃堕�夋嫨鑷繁闇�瑕佺殑閲嶆柊瀹氫箟
-        , toolbars: [[
-            'fullscreen', 'source', '|', 'undo', 'redo', '|',
-            'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|',
-            'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',
-            'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|',
-            'directionalityltr', 'directionalityrtl', 'indent', '|',
-            'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',
-            'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|',
-            'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|',
-            'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|',
-            'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|',
-            'print', 'preview', 'searchreplace', 'drafts', 'help'
-        ]]
-        //褰撻紶鏍囨斁鍦ㄥ伐鍏锋爮涓婃椂鏄剧ず鐨則ooltip鎻愮ず,鐣欑┖鏀寔鑷姩澶氳瑷�閰嶇疆锛屽惁鍒欎互閰嶇疆鍊间负鍑�
-        //,labelMap:{
-        //    'anchor':'', 'undo':''
-        //}
-
-        //璇█閰嶇疆椤�,榛樿鏄痾h-cn銆傛湁闇�瑕佺殑璇濅篃鍙互浣跨敤濡備笅杩欐牱鐨勬柟寮忔潵鑷姩澶氳瑷�鍒囨崲锛屽綋鐒讹紝鍓嶆彁鏉′欢鏄痩ang鏂囦欢澶逛笅瀛樺湪瀵瑰簲鐨勮瑷�鏂囦欢锛�
-        //lang鍊间篃鍙互閫氳繃鑷姩鑾峰彇 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase()
-        //,lang:"zh-cn"
-        //,langPath:URL +"lang/"
-
-        //涓婚閰嶇疆椤�,榛樿鏄痙efault銆傛湁闇�瑕佺殑璇濅篃鍙互浣跨敤濡備笅杩欐牱鐨勬柟寮忔潵鑷姩澶氫富棰樺垏鎹紝褰撶劧锛屽墠鎻愭潯浠舵槸themes鏂囦欢澶逛笅瀛樺湪瀵瑰簲鐨勪富棰樻枃浠讹細
-        //鐜版湁濡備笅鐨偆:default
-        //,theme:'default'
-        //,themePath:URL +"themes/"
-
-        //,zIndex : 900     //缂栬緫鍣ㄥ眰绾х殑鍩烘暟,榛樿鏄�900
-
-        //閽堝getAllHtml鏂规硶锛屼細鍦ㄥ搴旂殑head鏍囩涓鍔犺缂栫爜璁剧疆銆�
-        //,charset:"utf-8"
-
-        //鑻ュ疄渚嬪寲缂栬緫鍣ㄧ殑椤甸潰鎵嬪姩淇敼鐨刣omain锛屾澶勯渶瑕佽缃负true
-        //,customDomain:false
-
-        //甯哥敤閰嶇疆椤圭洰
-        //,isShow : true    //榛樿鏄剧ず缂栬緫鍣�
-
-        //,textarea:'editorValue' // 鎻愪氦琛ㄥ崟鏃讹紝鏈嶅姟鍣ㄨ幏鍙栫紪杈戝櫒鎻愪氦鍐呭鐨勬墍鐢ㄧ殑鍙傛暟锛屽瀹炰緥鏃跺彲浠ョ粰瀹瑰櫒name灞炴�э紝浼氬皢name缁欏畾鐨勫�兼渶涓烘瘡涓疄渚嬬殑閿�硷紝涓嶇敤姣忔瀹炰緥鍖栫殑鏃跺�欓兘璁剧疆杩欎釜鍊�
-
-        //,initialContent:'娆㈣繋浣跨敤ueditor!'    //鍒濆鍖栫紪杈戝櫒鐨勫唴瀹�,涔熷彲浠ラ�氳繃textarea/script缁欏�硷紝鐪嬪畼缃戜緥瀛�
-
-        //,autoClearinitialContent:true //鏄惁鑷姩娓呴櫎缂栬緫鍣ㄥ垵濮嬪唴瀹癸紝娉ㄦ剰锛氬鏋渇ocus灞炴�ц缃负true,杩欎釜涔熶负鐪燂紝閭d箞缂栬緫鍣ㄤ竴涓婃潵灏变細瑙﹀彂瀵艰嚧鍒濆鍖栫殑鍐呭鐪嬩笉鍒颁簡
-
-        //,focus:false //鍒濆鍖栨椂锛屾槸鍚﹁缂栬緫鍣ㄨ幏寰楃劍鐐箃rue鎴杅alse
-
-        //濡傛灉鑷畾涔夛紝鏈�濂界粰p鏍囩濡備笅鐨勮楂橈紝瑕佷笉杈撳叆涓枃鏃讹紝浼氭湁璺冲姩鎰�
-        //,initialStyle:'p{line-height:1em}'//缂栬緫鍣ㄥ眰绾х殑鍩烘暟,鍙互鐢ㄦ潵鏀瑰彉瀛椾綋绛�
-
-        //,iframeCssUrl: URL + '/themes/iframe.css' //缁欑紪杈戝尯鍩熺殑iframe寮曞叆涓�涓猚ss鏂囦欢
-
-        //indentValue
-        //棣栬缂╄繘璺濈,榛樿鏄�2em
-        //,indentValue:'2em'
-
-        //,initialFrameWidth:1000  //鍒濆鍖栫紪杈戝櫒瀹藉害,榛樿1000
-        //,initialFrameHeight:320  //鍒濆鍖栫紪杈戝櫒楂樺害,榛樿320
-
-        //,readonly : false //缂栬緫鍣ㄥ垵濮嬪寲缁撴潫鍚�,缂栬緫鍖哄煙鏄惁鏄彧璇荤殑锛岄粯璁ゆ槸false
-
-        //,autoClearEmptyNode : true //getContent鏃讹紝鏄惁鍒犻櫎绌虹殑inlineElement鑺傜偣锛堝寘鎷祵濂楃殑鎯呭喌锛�
-
-        //鍚敤鑷姩淇濆瓨
-        //,enableAutoSave: true
-        //鑷姩淇濆瓨闂撮殧鏃堕棿锛� 鍗曚綅ms
-        //,saveInterval: 500
-
-        //,fullscreen : false //鏄惁寮�鍚垵濮嬪寲鏃跺嵆鍏ㄥ睆锛岄粯璁ゅ叧闂�
-
-        //,imagePopup:true      //鍥剧墖鎿嶄綔鐨勬诞灞傚紑鍏筹紝榛樿鎵撳紑
-
-        //,autoSyncData:true //鑷姩鍚屾缂栬緫鍣ㄨ鎻愪氦鐨勬暟鎹�
-        //,emotionLocalization:false //鏄惁寮�鍚〃鎯呮湰鍦板寲锛岄粯璁ゅ叧闂�傝嫢瑕佸紑鍚纭繚emotion鏂囦欢澶逛笅鍖呭惈瀹樼綉鎻愪緵鐨刬mages琛ㄦ儏鏂囦欢澶�
-
-        //绮樿创鍙繚鐣欐爣绛撅紝鍘婚櫎鏍囩鎵�鏈夊睘鎬�
-        //,retainOnlyLabelPasted: false
-
-        //,pasteplain:false  //鏄惁榛樿涓虹函鏂囨湰绮樿创銆俧alse涓轰笉浣跨敤绾枃鏈矘璐达紝true涓轰娇鐢ㄧ函鏂囨湰绮樿创
-        //绾枃鏈矘璐存ā寮忎笅鐨勮繃婊よ鍒�
-        //'filterTxtRules' : function(){
-        //    function transP(node){
-        //        node.tagName = 'p';
-        //        node.setStyle();
-        //    }
-        //    return {
-        //        //鐩存帴鍒犻櫎鍙婂叾瀛楄妭鐐瑰唴瀹�
-        //        '-' : 'script style object iframe embed input select',
-        //        'p': {$:{}},
-        //        'br':{$:{}},
-        //        'div':{'$':{}},
-        //        'li':{'$':{}},
-        //        'caption':transP,
-        //        'th':transP,
-        //        'tr':transP,
-        //        'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP,
-        //        'td':function(node){
-        //            //娌℃湁鍐呭鐨則d鐩存帴鍒犳帀
-        //            var txt = !!node.innerText();
-        //            if(txt){
-        //                node.parentNode.insertAfter(UE.uNode.createText(' &nbsp; &nbsp;'),node);
-        //            }
-        //            node.parentNode.removeChild(node,node.innerText())
-        //        }
-        //    }
-        //}()
-
-        //,allHtmlEnabled:false //鎻愪氦鍒板悗鍙扮殑鏁版嵁鏄惁鍖呭惈鏁翠釜html瀛楃涓�
-
-        //insertorderedlist
-        //鏈夊簭鍒楄〃鐨勪笅鎷夐厤缃�,鍊肩暀绌烘椂鏀寔澶氳瑷�鑷姩璇嗗埆锛岃嫢閰嶇疆鍊硷紝鍒欎互姝ゅ�间负鍑�
-        //,'insertorderedlist':{
-        //      //鑷畾鐨勬牱寮�
-        //        'num':'1,2,3...',
-        //        'num1':'1),2),3)...',
-        //        'num2':'(1),(2),(3)...',
-        //        'cn':'涓�,浜�,涓�....',
-        //        'cn1':'涓�),浜�),涓�)....',
-        //        'cn2':'(涓�),(浜�),(涓�)....',
-        //     //绯荤粺鑷甫
-        //     'decimal' : '' ,         //'1,2,3...'
-        //     'lower-alpha' : '' ,    // 'a,b,c...'
-        //     'lower-roman' : '' ,    //'i,ii,iii...'
-        //     'upper-alpha' : '' , lang   //'A,B,C'
-        //     'upper-roman' : ''      //'I,II,III...'
-        //}
-
-        //insertunorderedlist
-        //鏃犲簭鍒楄〃鐨勪笅鎷夐厤缃紝鍊肩暀绌烘椂鏀寔澶氳瑷�鑷姩璇嗗埆锛岃嫢閰嶇疆鍊硷紝鍒欎互姝ゅ�间负鍑�
-        //,insertunorderedlist : { //鑷畾鐨勬牱寮�
-        //    'dash' :'鈥� 鐮存姌鍙�', //-鐮存姌鍙�
-        //    'dot':' 銆� 灏忓渾鍦�', //绯荤粺鑷甫
-        //    'circle' : '',  // '鈼� 灏忓渾鍦�'
-        //    'disc' : '',    // '鈼� 灏忓渾鐐�'
-        //    'square' : ''   //'鈻� 灏忔柟鍧�'
-        //}
-        //,listDefaultPaddingLeft : '30'//榛樿鐨勫乏杈圭缉杩涚殑鍩烘暟鍊�
-        //,listiconpath : 'http://bs.baidu.com/listicon/'//鑷畾涔夋爣鍙风殑璺緞
-        //,maxListLevel : 3 //闄愬埗鍙互tab鐨勭骇鏁�, 璁剧疆-1涓轰笉闄愬埗
-
-        //,autoTransWordToList:false  //绂佹word涓矘璐磋繘鏉ョ殑鍒楄〃鑷姩鍙樻垚鍒楄〃鏍囩
-
-        //fontfamily
-        //瀛椾綋璁剧疆 label鐣欑┖鏀寔澶氳瑷�鑷姩鍒囨崲锛岃嫢閰嶇疆锛屽垯浠ラ厤缃�间负鍑�
-        //,'fontfamily':[
-        //    { label:'',name:'songti',val:'瀹嬩綋,SimSun'},
-        //    { label:'',name:'kaiti',val:'妤蜂綋,妤蜂綋_GB2312, SimKai'},
-        //    { label:'',name:'yahei',val:'寰蒋闆呴粦,Microsoft YaHei'},
-        //    { label:'',name:'heiti',val:'榛戜綋, SimHei'},
-        //    { label:'',name:'lishu',val:'闅朵功, SimLi'},
-        //    { label:'',name:'andaleMono',val:'andale mono'},
-        //    { label:'',name:'arial',val:'arial, helvetica,sans-serif'},
-        //    { label:'',name:'arialBlack',val:'arial black,avant garde'},
-        //    { label:'',name:'comicSansMs',val:'comic sans ms'},
-        //    { label:'',name:'impact',val:'impact,chicago'},
-        //    { label:'',name:'timesNewRoman',val:'times new roman'}
-        //]
-
-        //fontsize
-        //瀛楀彿
-        //,'fontsize':[10, 11, 12, 14, 16, 18, 20, 24, 36]
-
-        //paragraph
-        //娈佃惤鏍煎紡 鍊肩暀绌烘椂鏀寔澶氳瑷�鑷姩璇嗗埆锛岃嫢閰嶇疆锛屽垯浠ラ厤缃�间负鍑�
-        //,'paragraph':{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''}
-
-        //rowspacingtop
-        //娈甸棿璺� 鍊煎拰鏄剧ず鐨勫悕瀛楃浉鍚�
-        //,'rowspacingtop':['5', '10', '15', '20', '25']
-
-        //rowspacingBottom
-        //娈甸棿璺� 鍊煎拰鏄剧ず鐨勫悕瀛楃浉鍚�
-        //,'rowspacingbottom':['5', '10', '15', '20', '25']
-
-        //lineheight
-        //琛屽唴闂磋窛 鍊煎拰鏄剧ず鐨勫悕瀛楃浉鍚�
-        //,'lineheight':['1', '1.5','1.75','2', '3', '4', '5']
-
-        //customstyle
-        //鑷畾涔夋牱寮忥紝涓嶆敮鎸佸浗闄呭寲锛屾澶勯厤缃�煎嵆鍙渶鍚庢樉绀哄��
-        //block鐨勫厓绱犳槸渚濇嵁璁剧疆娈佃惤鐨勯�昏緫璁剧疆鐨勶紝inline鐨勫厓绱犱緷鎹瓸IU鐨勯�昏緫璁剧疆
-        //灏介噺浣跨敤涓�浜涘父鐢ㄧ殑鏍囩
-        //鍙傛暟璇存槑
-        //tag 浣跨敤鐨勬爣绛惧悕瀛�
-        //label 鏄剧ず鐨勫悕瀛椾篃鏄敤鏉ユ爣璇嗕笉鍚岀被鍨嬬殑鏍囪瘑绗︼紝娉ㄦ剰杩欎釜鍊兼瘡涓涓嶅悓锛�
-        //style 娣诲姞鐨勬牱寮�
-        //姣忎竴涓璞″氨鏄竴涓嚜瀹氫箟鐨勬牱寮�
-        //,'customstyle':[
-        //    {tag:'h1', name:'tc', label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'},
-        //    {tag:'h1', name:'tl',label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;margin:0 0 10px 0;'},
-        //    {tag:'span',name:'im', label:'', style:'font-style:italic;font-weight:bold'},
-        //    {tag:'span',name:'hi', label:'', style:'font-style:italic;font-weight:bold;color:rgb(51, 153, 204)'}
-        //]
-
-        //鎵撳紑鍙抽敭鑿滃崟鍔熻兘
-        //,enableContextMenu: true
-        //鍙抽敭鑿滃崟鐨勫唴瀹癸紝鍙互鍙傝�僷lugins/contextmenu.js閲岃竟鐨勯粯璁よ彍鍗曠殑渚嬪瓙锛宭abel鐣欑┖鏀寔鍥介檯鍖栵紝鍚﹀垯浠ユ閰嶇疆涓哄噯
-        //,contextMenu:[
-        //    {
-        //        label:'',       //鏄剧ず鐨勫悕绉�
-        //        cmdName:'selectall',//鎵ц鐨刢ommand鍛戒护锛屽綋鐐瑰嚮杩欎釜鍙抽敭鑿滃崟鏃�
-        //        //exec鍙�夛紝鏈変簡exec灏变細鍦ㄧ偣鍑绘椂鎵ц杩欎釜function锛屼紭鍏堢骇楂樹簬cmdName
-        //        exec:function () {
-        //            //this鏄綋鍓嶇紪杈戝櫒鐨勫疄渚�
-        //            //this.ui._dialogs['inserttableDialog'].open();
-        //        }
-        //    }
-        //]
-
-        //蹇嵎鑿滃崟
-        //,shortcutMenu:["fontfamily", "fontsize", "bold", "italic", "underline", "forecolor", "backcolor", "insertorderedlist", "insertunorderedlist"]
-
-        //elementPathEnabled
-        //鏄惁鍚敤鍏冪礌璺緞锛岄粯璁ゆ槸鏄剧ず
-        //,elementPathEnabled : true
-
-        //wordCount
-        //,wordCount:true          //鏄惁寮�鍚瓧鏁扮粺璁�
-        //,maximumWords:10000       //鍏佽鐨勬渶澶у瓧绗︽暟
-        //瀛楁暟缁熻鎻愮ず锛寋#count}浠h〃褰撳墠瀛楁暟锛寋#leave}浠h〃杩樺彲浠ヨ緭鍏ュ灏戝瓧绗︽暟,鐣欑┖鏀寔澶氳瑷�鑷姩鍒囨崲锛屽惁鍒欐寜姝ら厤缃樉绀�
-        //,wordCountMsg:''   //褰撳墠宸茶緭鍏� {#count} 涓瓧绗︼紝鎮ㄨ繕鍙互杈撳叆{#leave} 涓瓧绗�
-        //瓒呭嚭瀛楁暟闄愬埗鎻愮ず  鐣欑┖鏀寔澶氳瑷�鑷姩鍒囨崲锛屽惁鍒欐寜姝ら厤缃樉绀�
-        //,wordOverFlowMsg:''    //<span style="color:red;">浣犺緭鍏ョ殑瀛楃涓暟宸茬粡瓒呭嚭鏈�澶у厑璁稿�硷紝鏈嶅姟鍣ㄥ彲鑳戒細鎷掔粷淇濆瓨锛�</span>
-
-        //tab
-        //鐐瑰嚮tab閿椂绉诲姩鐨勮窛绂�,tabSize鍊嶆暟锛宼abNode浠�涔堝瓧绗﹀仛涓哄崟浣�
-        //,tabSize:4
-        //,tabNode:'&nbsp;'
-
-        //removeFormat
-        //娓呴櫎鏍煎紡鏃跺彲浠ュ垹闄ょ殑鏍囩鍜屽睘鎬�
-        //removeForamtTags鏍囩
-        //,removeFormatTags:'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var'
-        //removeFormatAttributes灞炴��
-        //,removeFormatAttributes:'class,style,lang,width,height,align,hspace,valign'
-
-        //undo
-        //鍙互鏈�澶氬洖閫�鐨勬鏁�,榛樿20
-        //,maxUndoCount:20
-        //褰撹緭鍏ョ殑瀛楃鏁拌秴杩囪鍊兼椂锛屼繚瀛樹竴娆$幇鍦�
-        //,maxInputCount:1
-
-        //autoHeightEnabled
-        // 鏄惁鑷姩闀块珮,榛樿true
-        //,autoHeightEnabled:true
-
-        //scaleEnabled
-        //鏄惁鍙互鎷変几闀块珮,榛樿true(褰撳紑鍚椂锛岃嚜鍔ㄩ暱楂樺け鏁�)
-        //,scaleEnabled:false
-        //,minFrameWidth:800    //缂栬緫鍣ㄦ嫋鍔ㄦ椂鏈�灏忓搴�,榛樿800
-        //,minFrameHeight:220  //缂栬緫鍣ㄦ嫋鍔ㄦ椂鏈�灏忛珮搴�,榛樿220
-
-        //autoFloatEnabled
-        //鏄惁淇濇寔toolbar鐨勪綅缃笉鍔�,榛樿true
-        //,autoFloatEnabled:true
-        //娴姩鏃跺伐鍏锋爮璺濈娴忚鍣ㄩ《閮ㄧ殑楂樺害锛岀敤浜庢煇浜涘叿鏈夊浐瀹氬ご閮ㄧ殑椤甸潰
-        //,topOffset:30
-        //缂栬緫鍣ㄥ簳閮ㄨ窛绂诲伐鍏锋爮楂樺害(濡傛灉鍙傛暟澶т簬绛変簬缂栬緫鍣ㄩ珮搴︼紝鍒欒缃棤鏁�)
-        //,toolbarTopOffset:400
-
-        //璁剧疆杩滅▼鍥剧墖鏄惁鎶撳彇鍒版湰鍦颁繚瀛�
-        //,catchRemoteImageEnable: true //璁剧疆鏄惁鎶撳彇杩滅▼鍥剧墖
-
-        //pageBreakTag
-        //鍒嗛〉鏍囪瘑绗�,榛樿鏄痏ueditor_page_break_tag_
-        //,pageBreakTag:'_ueditor_page_break_tag_'
-
-        //autotypeset
-        //鑷姩鎺掔増鍙傛暟
-        //,autotypeset: {
-        //    mergeEmptyline: true,           //鍚堝苟绌鸿
-        //    removeClass: true,              //鍘绘帀鍐椾綑鐨刢lass
-        //    removeEmptyline: false,         //鍘绘帀绌鸿
-        //    textAlign:"left",               //娈佃惤鐨勬帓鐗堟柟寮忥紝鍙互鏄� left,right,center,justify 鍘绘帀杩欎釜灞炴�ц〃绀轰笉鎵ц鎺掔増
-        //    imageBlockLine: 'center',       //鍥剧墖鐨勬诞鍔ㄦ柟寮忥紝鐙崰涓�琛屽墽涓�,宸﹀彸娴姩锛岄粯璁�: center,left,right,none 鍘绘帀杩欎釜灞炴�ц〃绀轰笉鎵ц鎺掔増
-        //    pasteFilter: false,             //鏍规嵁瑙勫垯杩囨护娌′簨绮樿创杩涙潵鐨勫唴瀹�
-        //    clearFontSize: false,           //鍘绘帀鎵�鏈夌殑鍐呭祵瀛楀彿锛屼娇鐢ㄧ紪杈戝櫒榛樿鐨勫瓧鍙�
-        //    clearFontFamily: false,         //鍘绘帀鎵�鏈夌殑鍐呭祵瀛椾綋锛屼娇鐢ㄧ紪杈戝櫒榛樿鐨勫瓧浣�
-        //    removeEmptyNode: false,         // 鍘绘帀绌鸿妭鐐�
-        //    //鍙互鍘绘帀鐨勬爣绛�
-        //    removeTagNames: {鏍囩鍚嶅瓧:1},
-        //    indent: false,                  // 琛岄缂╄繘
-        //    indentValue : '2em',            //琛岄缂╄繘鐨勫ぇ灏�
-        //    bdc2sb: false,
-        //    tobdc: false
-        //}
-
-        //tableDragable
-        //琛ㄦ牸鏄惁鍙互鎷栨嫿
-        //,tableDragable: true
-
-
-
-        //sourceEditor
-        //婧愮爜鐨勬煡鐪嬫柟寮�,codemirror 鏄唬鐮侀珮浜紝textarea鏄枃鏈,榛樿鏄痗odemirror
-        //娉ㄦ剰榛樿codemirror鍙兘鍦╥e8+鍜岄潪ie涓娇鐢�
-        //,sourceEditor:"codemirror"
-        //濡傛灉sourceEditor鏄痗odemirror锛岃繕鐢ㄩ厤缃竴涓嬩袱涓弬鏁�
-        //codeMirrorJsUrl js鍔犺浇鐨勮矾寰勶紝榛樿鏄� URL + "third-party/codemirror/codemirror.js"
-        //,codeMirrorJsUrl:URL + "third-party/codemirror/codemirror.js"
-        //codeMirrorCssUrl css鍔犺浇鐨勮矾寰勶紝榛樿鏄� URL + "third-party/codemirror/codemirror.css"
-        //,codeMirrorCssUrl:URL + "third-party/codemirror/codemirror.css"
-        //缂栬緫鍣ㄥ垵濮嬪寲瀹屾垚鍚庢槸鍚﹁繘鍏ユ簮鐮佹ā寮忥紝榛樿涓哄惁銆�
-        //,sourceEditorFirst:false
-
-        //iframeUrlMap
-        //dialog鍐呭鐨勮矾寰� 锝炰細琚浛鎹㈡垚URL,鍨撳睘鎬т竴鏃︽墦寮�锛屽皢瑕嗙洊鎵�鏈夌殑dialog鐨勯粯璁よ矾寰�
-        //,iframeUrlMap:{
-        //    'anchor':'~/dialogs/anchor/anchor.html',
-        //}
-
-        //allowLinkProtocol 鍏佽鐨勯摼鎺ュ湴鍧�锛屾湁杩欎簺鍓嶇紑鐨勯摼鎺ュ湴鍧�涓嶄細鑷姩娣诲姞http
-        //, allowLinkProtocols: ['http:', 'https:', '#', '/', 'ftp:', 'mailto:', 'tel:', 'git:', 'svn:']
-
-        //webAppKey 鐧惧害搴旂敤鐨凙PIkey锛屾瘡涓珯闀垮繀椤婚鍏堝幓鐧惧害瀹樼綉娉ㄥ唽涓�涓猭ey鍚庢柟鑳芥甯镐娇鐢╝pp鍔熻兘锛屾敞鍐屼粙缁嶏紝http://app.baidu.com/static/cms/getapikey.html
-        //, webAppKey: ""
-
-        //榛樿杩囨护瑙勫垯鐩稿叧閰嶇疆椤圭洰
-        //,disabledTableInTable:true  //绂佹琛ㄦ牸宓屽
-        //,allowDivTransToP:true      //鍏佽杩涘叆缂栬緫鍣ㄧ殑div鏍囩鑷姩鍙樻垚p鏍囩
-        //,rgb2Hex:true               //榛樿浜у嚭鐨勬暟鎹腑鐨刢olor鑷姩浠巖gb鏍煎紡鍙樻垚16杩涘埗鏍煎紡
-
-		// xss 杩囨护鏄惁寮�鍚�,inserthtml绛夋搷浣�
-		,xssFilterRules: true
-		//input xss杩囨护
-		,inputXssFilter: true
-		//output xss杩囨护
-		,outputXssFilter: true
-		// xss杩囨护鐧藉悕鍗� 鍚嶅崟鏉ユ簮: https://raw.githubusercontent.com/leizongmin/js-xss/master/lib/default.js
-		,whiteList: {
-			a:      ['target', 'href', 'title', 'class', 'style'],
-			abbr:   ['title', 'class', 'style'],
-			address: ['class', 'style'],
-			area:   ['shape', 'coords', 'href', 'alt'],
-			article: [],
-			aside:  [],
-			audio:  ['autoplay', 'controls', 'loop', 'preload', 'src', 'class', 'style'],
-			b:      ['class', 'style'],
-			bdi:    ['dir'],
-			bdo:    ['dir'],
-			big:    [],
-			blockquote: ['cite', 'class', 'style'],
-			br:     [],
-			caption: ['class', 'style'],
-			center: [],
-			cite:   [],
-			code:   ['class', 'style'],
-			col:    ['align', 'valign', 'span', 'width', 'class', 'style'],
-			colgroup: ['align', 'valign', 'span', 'width', 'class', 'style'],
-			dd:     ['class', 'style'],
-			del:    ['datetime'],
-			details: ['open'],
-			div:    ['class', 'style'],
-			dl:     ['class', 'style'],
-			dt:     ['class', 'style'],
-			em:     ['class', 'style'],
-			font:   ['color', 'size', 'face'],
-			footer: [],
-			h1:     ['class', 'style'],
-			h2:     ['class', 'style'],
-			h3:     ['class', 'style'],
-			h4:     ['class', 'style'],
-			h5:     ['class', 'style'],
-			h6:     ['class', 'style'],
-			header: [],
-			hr:     [],
-			i:      ['class', 'style'],
-			img:    ['src', 'alt', 'title', 'width', 'height', 'id', '_src', 'loadingclass', 'class', 'data-latex'],
-			ins:    ['datetime'],
-			li:     ['class', 'style'],
-			mark:   [],
-			nav:    [],
-			ol:     ['class', 'style'],
-			p:      ['class', 'style'],
-			pre:    ['class', 'style'],
-			s:      [],
-			section:[],
-			small:  [],
-			span:   ['class', 'style'],
-			sub:    ['class', 'style'],
-			sup:    ['class', 'style'],
-			strong: ['class', 'style'],
-			table:  ['width', 'border', 'align', 'valign', 'class', 'style'],
-			tbody:  ['align', 'valign', 'class', 'style'],
-			td:     ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'],
-			tfoot:  ['align', 'valign', 'class', 'style'],
-			th:     ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'],
-			thead:  ['align', 'valign', 'class', 'style'],
-			tr:     ['rowspan', 'align', 'valign', 'class', 'style'],
-			tt:     [],
-			u:      [],
-			ul:     ['class', 'style'],
-			video:  ['autoplay', 'controls', 'loop', 'preload', 'src', 'height', 'width', 'class', 'style']
-		}
-    };
-
-    function getUEBasePath(docUrl, confUrl) {
-
-        return getBasePath(docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath());
-
-    }
-
-    function getConfigFilePath() {
-
-        var configPath = document.getElementsByTagName('script');
-
-        return configPath[ configPath.length - 1 ].src;
-
-    }
-
-    function getBasePath(docUrl, confUrl) {
-
-        var basePath = confUrl;
-
-
-        if (/^(\/|\\\\)/.test(confUrl)) {
-
-            basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/, '');
-
-        } else if (!/^[a-z]+:/i.test(confUrl)) {
-
-            docUrl = docUrl.split("#")[0].split("?")[0].replace(/[^\\\/]+$/, '');
-
-            basePath = docUrl + "" + confUrl;
-
-        }
-
-        return optimizationPath(basePath);
-
-    }
-
-    function optimizationPath(path) {
-
-        var protocol = /^[a-z]+:\/\//.exec(path)[ 0 ],
-            tmp = null,
-            res = [];
-
-        path = path.replace(protocol, "").split("?")[0].split("#")[0];
-
-        path = path.replace(/\\/g, '/').split(/\//);
-
-        path[ path.length - 1 ] = "";
-
-        while (path.length) {
-
-            if (( tmp = path.shift() ) === "..") {
-                res.pop();
-            } else if (tmp !== ".") {
-                res.push(tmp);
-            }
-
-        }
-
-        return protocol + res.join("/");
-
-    }
-
-    window.UE = {
-        getUEBasePath: getUEBasePath
-    };
-
-})();
diff --git a/server/public/ueditor/ueditor.parse.js b/server/public/ueditor/ueditor.parse.js
deleted file mode 100644
index 408f397..0000000
--- a/server/public/ueditor/ueditor.parse.js
+++ /dev/null
@@ -1,1022 +0,0 @@
-/*!
- * UEditor
- * version: ueditor
- * build: Wed Dec 26 2018 17:25:05 GMT+0800 (CST)
- */
-
-(function(){
-
-(function(){
-    UE = window.UE || {};
-    var isIE = !!window.ActiveXObject;
-    //瀹氫箟utils宸ュ叿
-    var utils = {
-            removeLastbs : function(url){
-                return url.replace(/\/$/,'')
-            },
-            extend : function(t,s){
-                var a = arguments,
-                    notCover = this.isBoolean(a[a.length - 1]) ? a[a.length - 1] : false,
-                    len = this.isBoolean(a[a.length - 1]) ? a.length - 1 : a.length;
-                for (var i = 1; i < len; i++) {
-                    var x = a[i];
-                    for (var k in x) {
-                        if (!notCover || !t.hasOwnProperty(k)) {
-                            t[k] = x[k];
-                        }
-                    }
-                }
-                return t;
-            },
-            isIE : isIE,
-            cssRule : isIE ? function(key,style,doc){
-                var indexList,index;
-                doc = doc || document;
-                if(doc.indexList){
-                    indexList = doc.indexList;
-                }else{
-                    indexList = doc.indexList =  {};
-                }
-                var sheetStyle;
-                if(!indexList[key]){
-                    if(style === undefined){
-                        return ''
-                    }
-                    sheetStyle = doc.createStyleSheet('',index = doc.styleSheets.length);
-                    indexList[key] = index;
-                }else{
-                    sheetStyle = doc.styleSheets[indexList[key]];
-                }
-                if(style === undefined){
-                    return sheetStyle.cssText
-                }
-                sheetStyle.cssText = sheetStyle.cssText + '\n' + (style || '')
-            } : function(key,style,doc){
-                doc = doc || document;
-                var head = doc.getElementsByTagName('head')[0],node;
-                if(!(node = doc.getElementById(key))){
-                    if(style === undefined){
-                        return ''
-                    }
-                    node = doc.createElement('style');
-                    node.id = key;
-                    head.appendChild(node)
-                }
-                if(style === undefined){
-                    return node.innerHTML
-                }
-                if(style !== ''){
-                    node.innerHTML = node.innerHTML + '\n' + style;
-                }else{
-                    head.removeChild(node)
-                }
-            },
-            domReady : function (onready) {
-                var doc = window.document;
-                if (doc.readyState === "complete") {
-                    onready();
-                }else{
-                    if (isIE) {
-                        (function () {
-                            if (doc.isReady) return;
-                            try {
-                                doc.documentElement.doScroll("left");
-                            } catch (error) {
-                                setTimeout(arguments.callee, 0);
-                                return;
-                            }
-                            onready();
-                        })();
-                        window.attachEvent('onload', function(){
-                            onready()
-                        });
-                    } else {
-                        doc.addEventListener("DOMContentLoaded", function () {
-                            doc.removeEventListener("DOMContentLoaded", arguments.callee, false);
-                            onready();
-                        }, false);
-                        window.addEventListener('load', function(){onready()}, false);
-                    }
-                }
-
-            },
-            each : function(obj, iterator, context) {
-                if (obj == null) return;
-                if (obj.length === +obj.length) {
-                    for (var i = 0, l = obj.length; i < l; i++) {
-                        if(iterator.call(context, obj[i], i, obj) === false)
-                            return false;
-                    }
-                } else {
-                    for (var key in obj) {
-                        if (obj.hasOwnProperty(key)) {
-                            if(iterator.call(context, obj[key], key, obj) === false)
-                                return false;
-                        }
-                    }
-                }
-            },
-            inArray : function(arr,item){
-                var index = -1;
-                this.each(arr,function(v,i){
-                    if(v === item){
-                        index = i;
-                        return false;
-                    }
-                });
-                return index;
-            },
-            pushItem : function(arr,item){
-                if(this.inArray(arr,item)==-1){
-                    arr.push(item)
-                }
-            },
-            trim: function (str) {
-                return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, '');
-            },
-            indexOf: function (array, item, start) {
-                var index = -1;
-                start = this.isNumber(start) ? start : 0;
-                this.each(array, function (v, i) {
-                    if (i >= start && v === item) {
-                        index = i;
-                        return false;
-                    }
-                });
-                return index;
-            },
-            hasClass: function (element, className) {
-                className = className.replace(/(^[ ]+)|([ ]+$)/g, '').replace(/[ ]{2,}/g, ' ').split(' ');
-                for (var i = 0, ci, cls = element.className; ci = className[i++];) {
-                    if (!new RegExp('\\b' + ci + '\\b', 'i').test(cls)) {
-                        return false;
-                    }
-                }
-                return i - 1 == className.length;
-            },
-            addClass:function (elm, classNames) {
-                if(!elm)return;
-                classNames = this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' ');
-                for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){
-                    if(!new RegExp('\\b' + ci + '\\b').test(cls)){
-                        cls += ' ' + ci;
-                    }
-                }
-                elm.className = utils.trim(cls);
-            },
-            removeClass:function (elm, classNames) {
-                classNames = this.isArray(classNames) ? classNames :
-                    this.trim(classNames).replace(/[ ]{2,}/g,' ').split(' ');
-                for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){
-                    cls = cls.replace(new RegExp('\\b' + ci + '\\b'),'')
-                }
-                cls = this.trim(cls).replace(/[ ]{2,}/g,' ');
-                elm.className = cls;
-                !cls && elm.removeAttribute('className');
-            },
-            on: function (element, type, handler) {
-                var types = this.isArray(type) ? type : type.split(/\s+/),
-                    k = types.length;
-                if (k) while (k--) {
-                    type = types[k];
-                    if (element.addEventListener) {
-                        element.addEventListener(type, handler, false);
-                    } else {
-                        if (!handler._d) {
-                            handler._d = {
-                                els : []
-                            };
-                        }
-                        var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element);
-                        if (!handler._d[key] || index == -1) {
-                            if(index == -1){
-                                handler._d.els.push(element);
-                            }
-                            if(!handler._d[key]){
-                                handler._d[key] = function (evt) {
-                                    return handler.call(evt.srcElement, evt || window.event);
-                                };
-                            }
-
-
-                            element.attachEvent('on' + type, handler._d[key]);
-                        }
-                    }
-                }
-                element = null;
-            },
-            off: function (element, type, handler) {
-                var types = this.isArray(type) ? type : type.split(/\s+/),
-                    k = types.length;
-                if (k) while (k--) {
-                    type = types[k];
-                    if (element.removeEventListener) {
-                        element.removeEventListener(type, handler, false);
-                    } else {
-                        var key = type + handler.toString();
-                        try{
-                            element.detachEvent('on' + type, handler._d ? handler._d[key] : handler);
-                        }catch(e){}
-                        if (handler._d && handler._d[key]) {
-                            var index = utils.indexOf(handler._d.els,element);
-                            if(index!=-1){
-                                handler._d.els.splice(index,1);
-                            }
-                            handler._d.els.length == 0 && delete handler._d[key];
-                        }
-                    }
-                }
-            },
-            loadFile : function () {
-                var tmpList = [];
-                function getItem(doc,obj){
-                    try{
-                        for(var i= 0,ci;ci=tmpList[i++];){
-                            if(ci.doc === doc && ci.url == (obj.src || obj.href)){
-                                return ci;
-                            }
-                        }
-                    }catch(e){
-                        return null;
-                    }
-
-                }
-                return function (doc, obj, fn) {
-                    var item = getItem(doc,obj);
-                    if (item) {
-                        if(item.ready){
-                            fn && fn();
-                        }else{
-                            item.funs.push(fn)
-                        }
-                        return;
-                    }
-                    tmpList.push({
-                        doc:doc,
-                        url:obj.src||obj.href,
-                        funs:[fn]
-                    });
-                    if (!doc.body) {
-                        var html = [];
-                        for(var p in obj){
-                            if(p == 'tag')continue;
-                            html.push(p + '="' + obj[p] + '"')
-                        }
-                        doc.write('<' + obj.tag + ' ' + html.join(' ') + ' ></'+obj.tag+'>');
-                        return;
-                    }
-                    if (obj.id && doc.getElementById(obj.id)) {
-                        return;
-                    }
-                    var element = doc.createElement(obj.tag);
-                    delete obj.tag;
-                    for (var p in obj) {
-                        element.setAttribute(p, obj[p]);
-                    }
-                    element.onload = element.onreadystatechange = function () {
-                        if (!this.readyState || /loaded|complete/.test(this.readyState)) {
-                            item = getItem(doc,obj);
-                            if (item.funs.length > 0) {
-                                item.ready = 1;
-                                for (var fi; fi = item.funs.pop();) {
-                                    fi();
-                                }
-                            }
-                            element.onload = element.onreadystatechange = null;
-                        }
-                    };
-                    element.onerror = function(){
-                        throw Error('The load '+(obj.href||obj.src)+' fails,check the url')
-                    };
-                    doc.getElementsByTagName("head")[0].appendChild(element);
-                }
-            }()
-    };
-    utils.each(['String', 'Function', 'Array', 'Number', 'RegExp', 'Object','Boolean'], function (v) {
-        utils['is' + v] = function (obj) {
-            return Object.prototype.toString.apply(obj) == '[object ' + v + ']';
-        }
-    });
-    var parselist = {};
-    UE.parse = {
-        register : function(parseName,fn){
-            parselist[parseName] = fn;
-        },
-        load : function(opt){
-            utils.each(parselist,function(v){
-                v.call(opt,utils);
-            })
-        }
-    };
-    uParse = function(selector,opt){
-        utils.domReady(function(){
-            var contents;
-            if(document.querySelectorAll){
-                contents = document.querySelectorAll(selector)
-            }else{
-                if(/^#/.test(selector)){
-                    contents = [document.getElementById(selector.replace(/^#/,''))]
-                }else if(/^\./.test(selector)){
-                    var contents = [];
-                    utils.each(document.getElementsByTagName('*'),function(node){
-                        if(node.className && new RegExp('\\b' + selector.replace(/^\./,'') + '\\b','i').test(node.className)){
-                            contents.push(node)
-                        }
-                    })
-                }else{
-                    contents = document.getElementsByTagName(selector)
-                }
-            }
-            utils.each(contents,function(v){
-                UE.parse.load(utils.extend({root:v,selector:selector},opt))
-            })
-        })
-    }
-})();
-
-UE.parse.register('insertcode',function(utils){
-    var pres = this.root.getElementsByTagName('pre');
-    if(pres.length){
-        if(typeof XRegExp == "undefined"){
-            var jsurl,cssurl;
-            if(this.rootPath !== undefined){
-                jsurl = utils.removeLastbs(this.rootPath)  + '/third-party/SyntaxHighlighter/shCore.js';
-                cssurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCoreDefault.css';
-            }else{
-                jsurl = this.highlightJsUrl;
-                cssurl = this.highlightCssUrl;
-            }
-            utils.loadFile(document,{
-                id : "syntaxhighlighter_css",
-                tag : "link",
-                rel : "stylesheet",
-                type : "text/css",
-                href : cssurl
-            });
-            utils.loadFile(document,{
-                id : "syntaxhighlighter_js",
-                src : jsurl,
-                tag : "script",
-                type : "text/javascript",
-                defer : "defer"
-            },function(){
-                utils.each(pres,function(pi){
-                    if(pi && /brush/i.test(pi.className)){
-                        SyntaxHighlighter.highlight(pi);
-                    }
-                });
-            });
-        }else{
-            utils.each(pres,function(pi){
-                if(pi && /brush/i.test(pi.className)){
-                    SyntaxHighlighter.highlight(pi);
-                }
-            });
-        }
-    }
-
-});
-UE.parse.register('table', function (utils) {
-    var me = this,
-        root = this.root,
-        tables = root.getElementsByTagName('table');
-    if (tables.length) {
-        var selector = this.selector;
-        //杩藉姞榛樿鐨勮〃鏍兼牱寮�
-        utils.cssRule('table',
-            selector + ' table.noBorderTable td,' +
-                selector + ' table.noBorderTable th,' +
-                selector + ' table.noBorderTable caption{border:1px dashed #ddd !important}' +
-                selector + ' table.sortEnabled tr.firstRow th,' + selector + ' table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;' +
-                    'background-position: center right; background-image:url(' + this.rootPath + 'themes/default/images/sortable.png);}' +
-                selector + ' table.sortEnabled tr.firstRow th:hover,' + selector + ' table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}' +
-                selector + ' table{margin-bottom:10px;border-collapse:collapse;display:table;}' +
-                selector + ' td,' + selector + ' th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}' +
-                selector + ' caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +
-                selector + ' th{border-top:1px solid #BBB;background:#F7F7F7;}' +
-                selector + ' table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}' +
-                selector + ' tr.ue-table-interlace-color-single td{ background: #fcfcfc; }' +
-                selector + ' tr.ue-table-interlace-color-double td{ background: #f7faff; }' +
-                selector + ' td p{margin:0;padding:0;}',
-            document);
-        //濉厖绌虹殑鍗曞厓鏍�
-
-        utils.each('td th caption'.split(' '), function (tag) {
-            var cells = root.getElementsByTagName(tag);
-            cells.length && utils.each(cells, function (node) {
-                if (!node.firstChild) {
-                    node.innerHTML = '&nbsp;';
-
-                }
-            })
-        });
-
-        //琛ㄦ牸鍙帓搴�
-        var tables = root.getElementsByTagName('table');
-        utils.each(tables, function (table) {
-            if (/\bsortEnabled\b/.test(table.className)) {
-                utils.on(table, 'click', function(e){
-                    var target = e.target || e.srcElement,
-                        cell = findParentByTagName(target, ['td', 'th']);
-                    var table = findParentByTagName(target, 'table'),
-                        colIndex = utils.indexOf(table.rows[0].cells, cell),
-                        sortType = table.getAttribute('data-sort-type');
-                    if(colIndex != -1) {
-                        sortTable(table, colIndex, me.tableSortCompareFn || sortType);
-                        updateTable(table);
-                    }
-                });
-            }
-        });
-
-        //鎸夌収鏍囩鍚嶆煡鎵剧埗鑺傜偣
-        function findParentByTagName(target, tagNames) {
-            var i, current = target;
-            tagNames = utils.isArray(tagNames) ? tagNames:[tagNames];
-            while(current){
-                for(i = 0;i < tagNames.length; i++) {
-                    if(current.tagName == tagNames[i].toUpperCase()) return current;
-                }
-                current = current.parentNode;
-            }
-            return null;
-        }
-        //琛ㄦ牸鎺掑簭
-        function sortTable(table, sortByCellIndex, compareFn) {
-            var rows = table.rows,
-                trArray = [],
-                flag = rows[0].cells[0].tagName === "TH",
-                lastRowIndex = 0;
-
-            for (var i = 0,len = rows.length; i < len; i++) {
-                trArray[i] = rows[i];
-            }
-
-            var Fn = {
-                'reversecurrent': function(td1,td2){
-                    return 1;
-                },
-                'orderbyasc': function(td1,td2){
-                    var value1 = td1.innerText||td1.textContent,
-                        value2 = td2.innerText||td2.textContent;
-                    return value1.localeCompare(value2);
-                },
-                'reversebyasc': function(td1,td2){
-                    var value1 = td1.innerHTML,
-                        value2 = td2.innerHTML;
-                    return value2.localeCompare(value1);
-                },
-                'orderbynum': function(td1,td2){
-                    var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/),
-                        value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/);
-                    if(value1) value1 = +value1[0];
-                    if(value2) value2 = +value2[0];
-                    return (value1||0) - (value2||0);
-                },
-                'reversebynum': function(td1,td2){
-                    var value1 = td1[utils.isIE ? 'innerText':'textContent'].match(/\d+/),
-                        value2 = td2[utils.isIE ? 'innerText':'textContent'].match(/\d+/);
-                    if(value1) value1 = +value1[0];
-                    if(value2) value2 = +value2[0];
-                    return (value2||0) - (value1||0);
-                }
-            };
-
-            //瀵硅〃鏍艰缃帓搴忕殑鏍囪data-sort-type
-            table.setAttribute('data-sort-type', compareFn && typeof compareFn === "string" && Fn[compareFn] ? compareFn:'');
-
-            //th涓嶅弬涓庢帓搴�
-            flag && trArray.splice(0, 1);
-            trArray = sort(trArray,function (tr1, tr2) {
-                var result;
-                if (compareFn && typeof compareFn === "function") {
-                    result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
-                } else if (compareFn && typeof compareFn === "number") {
-                    result = 1;
-                } else if (compareFn && typeof compareFn === "string" && Fn[compareFn]) {
-                    result = Fn[compareFn].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
-                } else {
-                    result = Fn['orderbyasc'].call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex]);
-                }
-                return result;
-            });
-            var fragment = table.ownerDocument.createDocumentFragment();
-            for (var j = 0, len = trArray.length; j < len; j++) {
-                fragment.appendChild(trArray[j]);
-            }
-            var tbody = table.getElementsByTagName("tbody")[0];
-            if(!lastRowIndex){
-                tbody.appendChild(fragment);
-            }else{
-                tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1])
-            }
-        }
-        //鍐掓场鎺掑簭
-        function sort(array, compareFn){
-            compareFn = compareFn || function(item1, item2){ return item1.localeCompare(item2);};
-            for(var i= 0,len = array.length; i<len; i++){
-                for(var j = i,length = array.length; j<length; j++){
-                    if(compareFn(array[i], array[j]) > 0){
-                        var t = array[i];
-                        array[i] = array[j];
-                        array[j] = t;
-                    }
-                }
-            }
-            return array;
-        }
-        //鏇存柊琛ㄦ牸
-        function updateTable(table) {
-            //缁欑涓�琛岃缃甪irstRow鐨勬牱寮忓悕绉�,鍦ㄦ帓搴忓浘鏍囩殑鏍峰紡涓婁娇鐢ㄥ埌
-            if(!utils.hasClass(table.rows[0], "firstRow")) {
-                for(var i = 1; i< table.rows.length; i++) {
-                    utils.removeClass(table.rows[i], "firstRow");
-                }
-                utils.addClass(table.rows[0], "firstRow");
-            }
-        }
-    }
-});
-UE.parse.register('charts',function( utils ){
-
-    utils.cssRule('chartsContainerHeight','.edui-chart-container { height:'+(this.chartContainerHeight||300)+'px}');
-    var resourceRoot = this.rootPath,
-        containers = this.root,
-        sources = null;
-
-    //涓嶅瓨鍦ㄦ寚瀹氱殑鏍硅矾寰勶紝 鍒欑洿鎺ラ��鍑�
-    if ( !resourceRoot ) {
-        return;
-    }
-
-    if ( sources = parseSources() ) {
-
-        loadResources();
-
-    }
-
-
-    function parseSources () {
-
-        if ( !containers ) {
-            return null;
-        }
-
-        return extractChartData( containers );
-
-    }
-
-    /**
-     * 鎻愬彇鏁版嵁
-     */
-    function extractChartData ( rootNode ) {
-
-        var data = [],
-            tables = rootNode.getElementsByTagName( "table" );
-
-        for ( var i = 0, tableNode; tableNode = tables[ i ]; i++ ) {
-
-            if ( tableNode.getAttribute( "data-chart" ) !== null ) {
-
-                data.push( formatData( tableNode ) );
-
-            }
-
-        }
-
-        return data.length ? data : null;
-
-    }
-
-    function formatData ( tableNode ) {
-
-        var meta = tableNode.getAttribute( "data-chart" ),
-            metaConfig = {},
-            data = [];
-
-        //鎻愬彇table鏁版嵁
-        for ( var i = 0, row; row = tableNode.rows[ i ]; i++ ) {
-
-            var rowData = [];
-
-            for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) {
-
-                var value = ( cell.innerText || cell.textContent || '' );
-                rowData.push( cell.tagName == 'TH' ? value:(value | 0) );
-
-            }
-
-            data.push( rowData );
-
-        }
-
-        //瑙f瀽鍏冧俊鎭�
-        meta = meta.split( ";" );
-        for ( var i = 0, metaData; metaData = meta[ i ]; i++ ) {
-
-            metaData = metaData.split( ":" );
-            metaConfig[ metaData[ 0 ] ] = metaData[ 1 ];
-
-        }
-
-
-        return {
-            table: tableNode,
-            meta: metaConfig,
-            data: data
-        };
-
-    }
-
-    //鍔犺浇璧勬簮
-    function loadResources () {
-
-        loadJQuery();
-
-    }
-
-    function loadJQuery () {
-
-        //涓嶅瓨鍦╦query锛� 鍒欏姞杞絡query
-        if ( !window.jQuery ) {
-
-            utils.loadFile(document,{
-                src : resourceRoot + "/third-party/jquery-1.10.2.min.js",
-                tag : "script",
-                type : "text/javascript",
-                defer : "defer"
-            },function(){
-
-                loadHighcharts();
-
-            });
-
-        } else {
-
-            loadHighcharts();
-
-        }
-
-    }
-
-    function loadHighcharts () {
-
-        //涓嶅瓨鍦℉ighcharts锛� 鍒欏姞杞紿ighcharts
-        if ( !window.Highcharts ) {
-
-            utils.loadFile(document,{
-                src : resourceRoot + "/third-party/highcharts/highcharts.js",
-                tag : "script",
-                type : "text/javascript",
-                defer : "defer"
-            },function(){
-
-                loadTypeConfig();
-
-            });
-
-        } else {
-
-            loadTypeConfig();
-
-        }
-
-    }
-
-    //鍔犺浇鍥捐〃宸紓鍖栭厤缃枃浠�
-    function loadTypeConfig () {
-
-        utils.loadFile(document,{
-            src : resourceRoot + "/dialogs/charts/chart.config.js",
-            tag : "script",
-            type : "text/javascript",
-            defer : "defer"
-        },function(){
-
-            render();
-
-        });
-
-    }
-
-    //娓叉煋鍥捐〃
-    function render () {
-
-        var config = null,
-            chartConfig = null,
-            container = null;
-
-        for ( var i = 0, len = sources.length; i < len; i++ ) {
-
-            config = sources[ i ];
-
-            chartConfig = analysisConfig( config );
-
-            container = createContainer( config.table );
-
-            renderChart( container, typeConfig[ config.meta.chartType ], chartConfig );
-
-        }
-
-
-    }
-
-    /**
-     * 娓叉煋鍥捐〃
-     * @param container 鍥捐〃瀹瑰櫒鑺傜偣瀵硅薄
-     * @param typeConfig 鍥捐〃绫诲瀷閰嶇疆
-     * @param config 鍥捐〃閫氱敤閰嶇疆
-     * */
-    function renderChart ( container, typeConfig, config ) {
-
-
-        $( container ).highcharts( $.extend( {}, typeConfig, {
-
-            credits: {
-                enabled: false
-            },
-            exporting: {
-                enabled: false
-            },
-            title: {
-                text: config.title,
-                x: -20 //center
-            },
-            subtitle: {
-                text: config.subTitle,
-                x: -20
-            },
-            xAxis: {
-                title: {
-                    text: config.xTitle
-                },
-                categories: config.categories
-            },
-            yAxis: {
-                title: {
-                    text: config.yTitle
-                },
-                plotLines: [{
-                    value: 0,
-                    width: 1,
-                    color: '#808080'
-                }]
-            },
-            tooltip: {
-                enabled: true,
-                valueSuffix: config.suffix
-            },
-            legend: {
-                layout: 'vertical',
-                align: 'right',
-                verticalAlign: 'middle',
-                borderWidth: 1
-            },
-            series: config.series
-
-        } ));
-
-    }
-
-    /**
-     * 鍒涘缓鍥捐〃鐨勫鍣�
-     * 鏂板垱寤虹殑瀹瑰櫒浼氭浛鎹㈡帀瀵瑰簲鐨則able瀵硅薄
-     * */
-    function createContainer ( tableNode ) {
-
-        var container = document.createElement( "div" );
-        container.className = "edui-chart-container";
-
-        tableNode.parentNode.replaceChild( container, tableNode );
-
-        return container;
-
-    }
-
-    //鏍规嵁config瑙f瀽鍑烘纭殑绫诲埆鍜屽浘琛ㄦ暟鎹俊鎭�
-    function analysisConfig ( config ) {
-
-        var series = [],
-        //鏁版嵁绫诲埆
-            categories = [],
-            result = [],
-            data = config.data,
-            meta = config.meta;
-
-        //鏁版嵁瀵归綈鏂瑰紡涓虹浉鍙嶇殑鏂瑰紡锛� 闇�瑕佸弽杞暟鎹�
-        if ( meta.dataFormat != "1" ) {
-
-            for ( var i = 0, len = data.length; i < len ; i++ ) {
-
-                for ( var j = 0, jlen = data[ i ].length; j < jlen; j++ ) {
-
-                    if ( !result[ j ] ) {
-                        result[ j ] = [];
-                    }
-
-                    result[ j ][ i ] = data[ i ][ j ];
-
-                }
-
-            }
-
-            data = result;
-
-        }
-
-        result = {};
-
-        //鏅�氬浘琛�
-        if ( meta.chartType != typeConfig.length - 1 ) {
-
-            categories = data[ 0 ].slice( 1 );
-
-            for ( var i = 1, curData; curData = data[ i ]; i++ ) {
-                series.push( {
-                    name: curData[ 0 ],
-                    data: curData.slice( 1 )
-                } );
-            }
-
-            result.series = series;
-            result.categories = categories;
-            result.title = meta.title;
-            result.subTitle = meta.subTitle;
-            result.xTitle = meta.xTitle;
-            result.yTitle = meta.yTitle;
-            result.suffix = meta.suffix;
-
-        } else {
-
-            var curData = [];
-
-            for ( var i = 1, len = data[ 0 ].length; i < len; i++ ) {
-
-                curData.push( [ data[ 0 ][ i ], data[ 1 ][ i ] | 0 ] );
-
-            }
-
-            //楗煎浘
-            series[ 0 ] = {
-                type: 'pie',
-                name: meta.tip,
-                data: curData
-            };
-
-            result.series = series;
-            result.title = meta.title;
-            result.suffix = meta.suffix;
-
-        }
-
-        return result;
-
-    }
-
-});
-UE.parse.register('background', function (utils) {
-    var me = this,
-        root = me.root,
-        p = root.getElementsByTagName('p'),
-        styles;
-
-    for (var i = 0,ci; ci = p[i++];) {
-        styles = ci.getAttribute('data-background');
-        if (styles){
-            ci.parentNode.removeChild(ci);
-        }
-    }
-
-    //杩藉姞榛樿鐨勮〃鏍兼牱寮�
-    styles && utils.cssRule('ueditor_background', me.selector + '{' + styles + '}', document);
-});
-UE.parse.register('list',function(utils){
-    var customCss = [],
-        customStyle = {
-            'cn'    :   'cn-1-',
-            'cn1'   :   'cn-2-',
-            'cn2'   :   'cn-3-',
-            'num'   :   'num-1-',
-            'num1'  :   'num-2-',
-            'num2'  :   'num-3-',
-            'dash'  :   'dash',
-            'dot'   :   'dot'
-        };
-
-
-    utils.extend(this,{
-        liiconpath : 'http://bs.baidu.com/listicon/',
-        listDefaultPaddingLeft : '20'
-    });
-
-    var root = this.root,
-        ols = root.getElementsByTagName('ol'),
-        uls = root.getElementsByTagName('ul'),
-        selector = this.selector;
-
-    if(ols.length){
-        applyStyle.call(this,ols);
-    }
-
-    if(uls.length){
-        applyStyle.call(this,uls);
-    }
-
-    if(ols.length || uls.length){
-        customCss.push(selector +' .list-paddingleft-1{padding-left:0}');
-        customCss.push(selector +' .list-paddingleft-2{padding-left:'+ this.listDefaultPaddingLeft+'px}');
-        customCss.push(selector +' .list-paddingleft-3{padding-left:'+ this.listDefaultPaddingLeft*2+'px}');
-
-        utils.cssRule('list', selector +' ol,'+selector +' ul{margin:0;padding:0;}li{clear:both;}'+customCss.join('\n'), document);
-    }
-    function applyStyle(nodes){
-        var T = this;
-        utils.each(nodes,function(list){
-            if(list.className && /custom_/i.test(list.className)){
-                var listStyle = list.className.match(/custom_(\w+)/)[1];
-                if(listStyle == 'dash' || listStyle == 'dot'){
-                    utils.pushItem(customCss,selector +' li.list-' + customStyle[listStyle] + '{background-image:url(' + T.liiconpath +customStyle[listStyle]+'.gif)}');
-                    utils.pushItem(customCss,selector +' ul.custom_'+listStyle+'{list-style:none;} '+ selector +' ul.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}');
-
-                }else{
-                    var index = 1;
-                    utils.each(list.childNodes,function(li){
-                        if(li.tagName == 'LI'){
-                            utils.pushItem(customCss,selector + ' li.list-' + customStyle[listStyle] + index + '{background-image:url(' + T.liiconpath  + 'list-'+customStyle[listStyle] +index + '.gif)}');
-                            index++;
-                        }
-                    });
-                    utils.pushItem(customCss,selector + ' ol.custom_'+listStyle+'{list-style:none;}'+selector+' ol.custom_'+listStyle+' li{background-position:0 3px;background-repeat:no-repeat}');
-                }
-                switch(listStyle){
-                    case 'cn':
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}');
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}');
-                        break;
-                    case 'cn1':
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:30px}');
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:55px}');
-                        break;
-                    case 'cn2':
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:40px}');
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:55px}');
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-3{padding-left:68px}');
-                        break;
-                    case 'num':
-                    case 'num1':
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:25px}');
-                        break;
-                    case 'num2':
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-1{padding-left:35px}');
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft-2{padding-left:40px}');
-                        break;
-                    case 'dash':
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:35px}');
-                        break;
-                    case 'dot':
-                        utils.pushItem(customCss,selector + ' li.list-'+listStyle+'-paddingleft{padding-left:20px}');
-                }
-            }
-        });
-    }
-
-
-});
-UE.parse.register('vedio',function(utils){
-    var video = this.root.getElementsByTagName('video'),
-        audio = this.root.getElementsByTagName('audio');
-
-    document.createElement('video');document.createElement('audio');
-    if(video.length || audio.length){
-        var sourcePath = utils.removeLastbs(this.rootPath),
-            jsurl = sourcePath + '/third-party/video-js/video.js',
-            cssurl = sourcePath + '/third-party/video-js/video-js.min.css',
-            swfUrl = sourcePath + '/third-party/video-js/video-js.swf';
-
-        if(window.videojs) {
-            videojs.autoSetup();
-        } else {
-            utils.loadFile(document,{
-                id : "video_css",
-                tag : "link",
-                rel : "stylesheet",
-                type : "text/css",
-                href : cssurl
-            });
-            utils.loadFile(document,{
-                id : "video_js",
-                src : jsurl,
-                tag : "script",
-                type : "text/javascript"
-            },function(){
-                videojs.options.flash.swf = swfUrl;
-                videojs.autoSetup();
-            });
-        }
-
-    }
-});
-
-})();
diff --git a/server/public/ueditor/ueditor.parse.min.js b/server/public/ueditor/ueditor.parse.min.js
deleted file mode 100644
index b9862ef..0000000
--- a/server/public/ueditor/ueditor.parse.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * UEditor
- * version: ueditor
- * build: Wed Dec 26 2018 17:25:07 GMT+0800 (CST)
- */
-
-!function(){!function(){UE=window.UE||{};var a=!!window.ActiveXObject,b={removeLastbs:function(a){return a.replace(/\/$/,"")},extend:function(a,b){for(var c=arguments,d=!!this.isBoolean(c[c.length-1])&&c[c.length-1],e=this.isBoolean(c[c.length-1])?c.length-1:c.length,f=1;f<e;f++){var g=c[f];for(var h in g)d&&a.hasOwnProperty(h)||(a[h]=g[h])}return a},isIE:a,cssRule:a?function(a,b,c){var d,e;c=c||document,d=c.indexList?c.indexList:c.indexList={};var f;if(d[a])f=c.styleSheets[d[a]];else{if(void 0===b)return"";f=c.createStyleSheet("",e=c.styleSheets.length),d[a]=e}return void 0===b?f.cssText:void(f.cssText=f.cssText+"\n"+(b||""))}:function(a,b,c){c=c||document;var d,e=c.getElementsByTagName("head")[0];if(!(d=c.getElementById(a))){if(void 0===b)return"";d=c.createElement("style"),d.id=a,e.appendChild(d)}return void 0===b?d.innerHTML:void(""!==b?d.innerHTML=d.innerHTML+"\n"+b:e.removeChild(d))},domReady:function(b){var c=window.document;"complete"===c.readyState?b():a?(!function(){if(!c.isReady){try{c.documentElement.doScroll("left")}catch(a){return void setTimeout(arguments.callee,0)}b()}}(),window.attachEvent("onload",function(){b()})):(c.addEventListener("DOMContentLoaded",function(){c.removeEventListener("DOMContentLoaded",arguments.callee,!1),b()},!1),window.addEventListener("load",function(){b()},!1))},each:function(a,b,c){if(null!=a)if(a.length===+a.length){for(var d=0,e=a.length;d<e;d++)if(b.call(c,a[d],d,a)===!1)return!1}else for(var f in a)if(a.hasOwnProperty(f)&&b.call(c,a[f],f,a)===!1)return!1},inArray:function(a,b){var c=-1;return this.each(a,function(a,d){if(a===b)return c=d,!1}),c},pushItem:function(a,b){this.inArray(a,b)==-1&&a.push(b)},trim:function(a){return a.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g,"")},indexOf:function(a,b,c){var d=-1;return c=this.isNumber(c)?c:0,this.each(a,function(a,e){if(e>=c&&a===b)return d=e,!1}),d},hasClass:function(a,b){b=b.replace(/(^[ ]+)|([ ]+$)/g,"").replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},addClass:function(a,c){if(a){c=this.trim(c).replace(/[ ]{2,}/g," ").split(" ");for(var d,e=0,f=a.className;d=c[e++];)new RegExp("\\b"+d+"\\b").test(f)||(f+=" "+d);a.className=b.trim(f)}},removeClass:function(a,b){b=this.isArray(b)?b:this.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=this.trim(e).replace(/[ ]{2,}/g," "),a.className=e,!e&&a.removeAttribute("className")},on:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.addEventListener)a.addEventListener(c,d,!1);else{d._d||(d._d={els:[]});var g=c+d.toString(),h=b.indexOf(d._d.els,a);d._d[g]&&h!=-1||(h==-1&&d._d.els.push(a),d._d[g]||(d._d[g]=function(a){return d.call(a.srcElement,a||window.event)}),a.attachEvent("on"+c,d._d[g]))}a=null},off:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.removeEventListener)a.removeEventListener(c,d,!1);else{var g=c+d.toString();try{a.detachEvent("on"+c,d._d?d._d[g]:d)}catch(h){}if(d._d&&d._d[g]){var i=b.indexOf(d._d.els,a);i!=-1&&d._d.els.splice(i,1),0==d._d.els.length&&delete d._d[g]}}},loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" ></"+d.tag+">")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url")},c.getElementsByTagName("head")[0].appendChild(i)}}}()};b.each(["String","Function","Array","Number","RegExp","Object","Boolean"],function(a){b["is"+a]=function(b){return Object.prototype.toString.apply(b)=="[object "+a+"]"}});var c={};UE.parse={register:function(a,b){c[a]=b},load:function(a){b.each(c,function(c){c.call(a,b)})}},uParse=function(a,c){b.domReady(function(){var d;if(document.querySelectorAll)d=document.querySelectorAll(a);else if(/^#/.test(a))d=[document.getElementById(a.replace(/^#/,""))];else if(/^\./.test(a)){var d=[];b.each(document.getElementsByTagName("*"),function(b){b.className&&new RegExp("\\b"+a.replace(/^\./,"")+"\\b","i").test(b.className)&&d.push(b)})}else d=document.getElementsByTagName(a);b.each(d,function(d){UE.parse.load(b.extend({root:d,selector:a},c))})})}}(),UE.parse.register("insertcode",function(a){var b=this.root.getElementsByTagName("pre");if(b.length)if("undefined"==typeof XRegExp){var c,d;void 0!==this.rootPath?(c=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCore.js",d=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCoreDefault.css"):(c=this.highlightJsUrl,d=this.highlightCssUrl),a.loadFile(document,{id:"syntaxhighlighter_css",tag:"link",rel:"stylesheet",type:"text/css",href:d}),a.loadFile(document,{id:"syntaxhighlighter_js",src:c,tag:"script",type:"text/javascript",defer:"defer"},function(){a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})})}else a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})}),UE.parse.register("table",function(a){function b(b,c){var d,e=b;for(c=a.isArray(c)?c:[c];e;){for(d=0;d<c.length;d++)if(e.tagName==c[d].toUpperCase())return e;e=e.parentNode}return null}function c(b,c,e){for(var f=b.rows,g=[],h="TH"===f[0].cells[0].tagName,i=0,j=0,k=f.length;j<k;j++)g[j]=f[j];var l={reversecurrent:function(a,b){return 1},orderbyasc:function(a,b){var c=a.innerText||a.textContent,d=b.innerText||b.textContent;return c.localeCompare(d)},reversebyasc:function(a,b){var c=a.innerHTML,d=b.innerHTML;return d.localeCompare(c)},orderbynum:function(b,c){var d=b[a.isIE?"innerText":"textContent"].match(/\d+/),e=c[a.isIE?"innerText":"textContent"].match(/\d+/);return d&&(d=+d[0]),e&&(e=+e[0]),(d||0)-(e||0)},reversebynum:function(b,c){var d=b[a.isIE?"innerText":"textContent"].match(/\d+/),e=c[a.isIE?"innerText":"textContent"].match(/\d+/);return d&&(d=+d[0]),e&&(e=+e[0]),(e||0)-(d||0)}};b.setAttribute("data-sort-type",e&&"string"==typeof e&&l[e]?e:""),h&&g.splice(0,1),g=d(g,function(a,b){var d;return d=e&&"function"==typeof e?e.call(this,a.cells[c],b.cells[c]):e&&"number"==typeof e?1:e&&"string"==typeof e&&l[e]?l[e].call(this,a.cells[c],b.cells[c]):l.orderbyasc.call(this,a.cells[c],b.cells[c])});for(var m=b.ownerDocument.createDocumentFragment(),n=0,k=g.length;n<k;n++)m.appendChild(g[n]);var o=b.getElementsByTagName("tbody")[0];i?o.insertBefore(m,f[i-range.endRowIndex+range.beginRowIndex-1]):o.appendChild(m)}function d(a,b){b=b||function(a,b){return a.localeCompare(b)};for(var c=0,d=a.length;c<d;c++)for(var e=c,f=a.length;e<f;e++)if(b(a[c],a[e])>0){var g=a[c];a[c]=a[e],a[e]=g}return a}function e(b){if(!a.hasClass(b.rows[0],"firstRow")){for(var c=1;c<b.rows.length;c++)a.removeClass(b.rows[c],"firstRow");a.addClass(b.rows[0],"firstRow")}}var f=this,g=this.root,h=g.getElementsByTagName("table");if(h.length){var i=this.selector;a.cssRule("table",i+" table.noBorderTable td,"+i+" table.noBorderTable th,"+i+" table.noBorderTable caption{border:1px dashed #ddd !important}"+i+" table.sortEnabled tr.firstRow th,"+i+" table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;background-position: center right; background-image:url("+this.rootPath+"themes/default/images/sortable.png);}"+i+" table.sortEnabled tr.firstRow th:hover,"+i+" table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}"+i+" table{margin-bottom:10px;border-collapse:collapse;display:table;}"+i+" td,"+i+" th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}"+i+" caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}"+i+" th{border-top:1px solid #BBB;background:#F7F7F7;}"+i+" table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}"+i+" tr.ue-table-interlace-color-single td{ background: #fcfcfc; }"+i+" tr.ue-table-interlace-color-double td{ background: #f7faff; }"+i+" td p{margin:0;padding:0;}",document),a.each("td th caption".split(" "),function(b){var c=g.getElementsByTagName(b);c.length&&a.each(c,function(a){a.firstChild||(a.innerHTML="&nbsp;")})});var h=g.getElementsByTagName("table");a.each(h,function(d){/\bsortEnabled\b/.test(d.className)&&a.on(d,"click",function(d){var g=d.target||d.srcElement,h=b(g,["td","th"]),i=b(g,"table"),j=a.indexOf(i.rows[0].cells,h),k=i.getAttribute("data-sort-type");j!=-1&&(c(i,j,f.tableSortCompareFn||k),e(i))})})}}),UE.parse.register("charts",function(a){function b(){return n?c(n):null}function c(a){for(var b,c=[],e=a.getElementsByTagName("table"),f=0;b=e[f];f++)null!==b.getAttribute("data-chart")&&c.push(d(b));return c.length?c:null}function d(a){for(var b,c=a.getAttribute("data-chart"),d={},e=[],f=0;b=a.rows[f];f++){for(var g,h=[],i=0;g=b.cells[i];i++){var j=g.innerText||g.textContent||"";h.push("TH"==g.tagName?j:0|j)}e.push(h)}c=c.split(";");for(var k,f=0;k=c[f];f++)k=k.split(":"),d[k[0]]=k[1];return{table:a,meta:d,data:e}}function e(){f()}function f(){window.jQuery?g():a.loadFile(document,{src:m+"/third-party/jquery-1.10.2.min.js",tag:"script",type:"text/javascript",defer:"defer"},function(){g()})}function g(){window.Highcharts?h():a.loadFile(document,{src:m+"/third-party/highcharts/highcharts.js",tag:"script",type:"text/javascript",defer:"defer"},function(){h()})}function h(){a.loadFile(document,{src:m+"/dialogs/charts/chart.config.js",tag:"script",type:"text/javascript",defer:"defer"},function(){i()})}function i(){for(var a=null,b=null,c=null,d=0,e=o.length;d<e;d++)a=o[d],b=l(a),c=k(a.table),j(c,typeConfig[a.meta.chartType],b)}function j(a,b,c){$(a).highcharts($.extend({},b,{credits:{enabled:!1},exporting:{enabled:!1},title:{text:c.title,x:-20},subtitle:{text:c.subTitle,x:-20},xAxis:{title:{text:c.xTitle},categories:c.categories},yAxis:{title:{text:c.yTitle},plotLines:[{value:0,width:1,color:"#808080"}]},tooltip:{enabled:!0,valueSuffix:c.suffix},legend:{layout:"vertical",align:"right",verticalAlign:"middle",borderWidth:1},series:c.series}))}function k(a){var b=document.createElement("div");return b.className="edui-chart-container",a.parentNode.replaceChild(b,a),b}function l(a){var b=[],c=[],d=[],e=a.data,f=a.meta;if("1"!=f.dataFormat){for(var g=0,h=e.length;g<h;g++)for(var i=0,j=e[g].length;i<j;i++)d[i]||(d[i]=[]),d[i][g]=e[g][i];e=d}if(d={},f.chartType!=typeConfig.length-1){c=e[0].slice(1);for(var k,g=1;k=e[g];g++)b.push({name:k[0],data:k.slice(1)});d.series=b,d.categories=c,d.title=f.title,d.subTitle=f.subTitle,d.xTitle=f.xTitle,d.yTitle=f.yTitle,d.suffix=f.suffix}else{for(var k=[],g=1,h=e[0].length;g<h;g++)k.push([e[0][g],0|e[1][g]]);b[0]={type:"pie",name:f.tip,data:k},d.series=b,d.title=f.title,d.suffix=f.suffix}return d}a.cssRule("chartsContainerHeight",".edui-chart-container { height:"+(this.chartContainerHeight||300)+"px}");var m=this.rootPath,n=this.root,o=null;m&&(o=b())&&e()}),UE.parse.register("background",function(a){for(var b,c,d=this,e=d.root,f=e.getElementsByTagName("p"),g=0;c=f[g++];)b=c.getAttribute("data-background"),b&&c.parentNode.removeChild(c);b&&a.cssRule("ueditor_background",d.selector+"{"+b+"}",document)}),UE.parse.register("list",function(a){function b(b){var e=this;a.each(b,function(b){if(b.className&&/custom_/i.test(b.className)){var f=b.className.match(/custom_(\w+)/)[1];if("dash"==f||"dot"==f)a.pushItem(c,h+" li.list-"+d[f]+"{background-image:url("+e.liiconpath+d[f]+".gif)}"),a.pushItem(c,h+" ul.custom_"+f+"{list-style:none;} "+h+" ul.custom_"+f+" li{background-position:0 3px;background-repeat:no-repeat}");else{var g=1;a.each(b.childNodes,function(b){"LI"==b.tagName&&(a.pushItem(c,h+" li.list-"+d[f]+g+"{background-image:url("+e.liiconpath+"list-"+d[f]+g+".gif)}"),g++)}),a.pushItem(c,h+" ol.custom_"+f+"{list-style:none;}"+h+" ol.custom_"+f+" li{background-position:0 3px;background-repeat:no-repeat}")}switch(f){case"cn":a.pushItem(c,h+" li.list-"+f+"-paddingleft-1{padding-left:25px}"),a.pushItem(c,h+" li.list-"+f+"-paddingleft-2{padding-left:40px}"),a.pushItem(c,h+" li.list-"+f+"-paddingleft-3{padding-left:55px}");break;case"cn1":a.pushItem(c,h+" li.list-"+f+"-paddingleft-1{padding-left:30px}"),a.pushItem(c,h+" li.list-"+f+"-paddingleft-2{padding-left:40px}"),a.pushItem(c,h+" li.list-"+f+"-paddingleft-3{padding-left:55px}");break;case"cn2":a.pushItem(c,h+" li.list-"+f+"-paddingleft-1{padding-left:40px}"),a.pushItem(c,h+" li.list-"+f+"-paddingleft-2{padding-left:55px}"),a.pushItem(c,h+" li.list-"+f+"-paddingleft-3{padding-left:68px}");break;case"num":case"num1":a.pushItem(c,h+" li.list-"+f+"-paddingleft-1{padding-left:25px}");break;case"num2":a.pushItem(c,h+" li.list-"+f+"-paddingleft-1{padding-left:35px}"),a.pushItem(c,h+" li.list-"+f+"-paddingleft-2{padding-left:40px}");break;case"dash":a.pushItem(c,h+" li.list-"+f+"-paddingleft{padding-left:35px}");break;case"dot":a.pushItem(c,h+" li.list-"+f+"-paddingleft{padding-left:20px}")}}})}var c=[],d={cn:"cn-1-",cn1:"cn-2-",cn2:"cn-3-",num:"num-1-",num1:"num-2-",num2:"num-3-",dash:"dash",dot:"dot"};a.extend(this,{liiconpath:"http://bs.baidu.com/listicon/",listDefaultPaddingLeft:"20"});var e=this.root,f=e.getElementsByTagName("ol"),g=e.getElementsByTagName("ul"),h=this.selector;f.length&&b.call(this,f),g.length&&b.call(this,g),(f.length||g.length)&&(c.push(h+" .list-paddingleft-1{padding-left:0}"),c.push(h+" .list-paddingleft-2{padding-left:"+this.listDefaultPaddingLeft+"px}"),c.push(h+" .list-paddingleft-3{padding-left:"+2*this.listDefaultPaddingLeft+"px}"),a.cssRule("list",h+" ol,"+h+" ul{margin:0;padding:0;}li{clear:both;}"+c.join("\n"),document))}),UE.parse.register("vedio",function(a){var b=this.root.getElementsByTagName("video"),c=this.root.getElementsByTagName("audio");if(document.createElement("video"),document.createElement("audio"),b.length||c.length){var d=a.removeLastbs(this.rootPath),e=d+"/third-party/video-js/video.js",f=d+"/third-party/video-js/video-js.min.css",g=d+"/third-party/video-js/video-js.swf";window.videojs?videojs.autoSetup():(a.loadFile(document,{id:"video_css",tag:"link",rel:"stylesheet",type:"text/css",href:f}),a.loadFile(document,{id:"video_js",src:e,tag:"script",type:"text/javascript"},function(){videojs.options.flash.swf=g,videojs.autoSetup()}))}})}();
\ No newline at end of file
diff --git a/server/public/video/movie.ogg b/server/public/video/movie.ogg
deleted file mode 100644
index b476d19..0000000
--- a/server/public/video/movie.ogg
+++ /dev/null
Binary files differ
diff --git a/server/routes/.DS_Store b/server/routes/.DS_Store
old mode 100644
new mode 100755
Binary files differ
diff --git a/server/routes/NewsOptionNoToken.js b/server/routes/NewsOptionNoToken.js
old mode 100644
new mode 100755
diff --git a/server/routes/apiSDK.js b/server/routes/apiSDK.js
old mode 100644
new mode 100755
index 68ad70b..be2f628
--- a/server/routes/apiSDK.js
+++ b/server/routes/apiSDK.js
@@ -9,7 +9,6 @@
 const bcrypt = require('bcrypt')
 const jwt = require('jsonwebtoken')
 const util = require('util')
-const logs = require('../utils/logs')
 const verify = util.promisify(jwt.verify)
 let secret = 'FM_Monitor'
 router.prefix('/apiSDK')
@@ -39,7 +38,7 @@
   let params = {
     RegionId: 'cn-shanghai',
     PhoneNumbers: data.phone,
-    SignName: '闈炴硶骞挎挱鐩戞祴绯荤粺鐧诲綍',
+    SignName: '绯荤粺鐧诲綍',
     TemplateCode: 'SMS_175075457',
     TemplateParam: `{'code':'${code}'}`
   }
@@ -84,7 +83,6 @@
       const ms = new Date() - start //鍝嶅簲鏃堕棿
 
       data.logDes = `${user[0].user_name}鐧诲綍`
-      logs.logLogin(ctx, ms, user[0].user_name)
       return (ctx.body = {
         code: 20000,
         token: token
diff --git a/server/routes/apicloud.js b/server/routes/apicloud.js
old mode 100644
new mode 100755
diff --git a/server/routes/base.js b/server/routes/base.js
old mode 100644
new mode 100755
index 33134e9..69dd1fd
--- a/server/routes/base.js
+++ b/server/routes/base.js
@@ -1,7 +1,6 @@
 const router = require('koa-router')()
 const base = require('../models/base')
 const upload = require('../utils/upload')
-const recordAnalysis = require('../utils/recordAnalysis')
 const path = require('path')
 router.prefix('/base')
 
@@ -165,7 +164,7 @@
 
   //鏍规嵁涓婁紶璁惧鐨勭墿鐞嗙紪鍙凤紝鎸夎姹傜粺涓�瀛樻斁璁惧褰曢煶鏂囦欢
   let filePathByDeviceId =
-    path.join(__dirname, '../public/record') + `/${ctx.request.body.deviceId}`
+    path.join(__dirname, '../public') + `/${ctx.request.body.deviceId}`
   if (!fs.existsSync(filePathByDeviceId)) {
     fs.mkdirSync(filePathByDeviceId)
   }
@@ -181,16 +180,6 @@
     code: 20000
   }
 
-  // let voice = fs.readFileSync(path.resolve(__dirname,'../public/record/123.wav'));
-  // let voiceBuffer = new Buffer(voice);
-
-  // // 璇嗗埆鏈湴鏂囦欢锛岄檮甯﹀弬鏁�
-  // recordAnalysis.client.recognize(voiceBuffer, 'wav', 8000, {dev_pid: '1537', cuid:"15001307"}).then(function (result) {
-  //   console.log('<recognize>: ' + JSON.stringify(result));
-  // //  console.log(result);
-  // }, function(err) {
-  //     console.log(err);
-  // });
 })
 
 module.exports = router
diff --git a/server/routes/dataapi.js b/server/routes/dataapi.js
old mode 100644
new mode 100755
diff --git a/server/routes/user.js b/server/routes/user.js
old mode 100644
new mode 100755
index d895d7f..d39820b
--- a/server/routes/user.js
+++ b/server/routes/user.js
@@ -5,7 +5,6 @@
 let secret = 'FM_Monitor'
 const users = require('../models/user')
 const mysql = require('../utils/mysql_db') //娴嬭瘯锛屼娇鐢ㄥ畬鍒犻櫎
-const logs = require('../utils/logs')
 const crypto = require('../utils/crypto')
 router.prefix('/user')
 
@@ -44,7 +43,6 @@
         const ms = new Date() - start //鍝嶅簲鏃堕棿
 
         data.logDes = `${user[0].user_name}鐧诲綍`
-        logs.logLogin(ctx, ms, user[0].user_name)
         return (ctx.body = {
           code: 20000,
           token: token
@@ -94,7 +92,6 @@
   payload = await verify(token, secret)
   const ms = new Date() - start //鍝嶅簲鏃堕棿
   ctx.request.body.logDes = `${payload.user_name}閫�鍑虹櫥褰昤
-  logs.logLogin(ctx, ms, payload.user_name)
   ctx.body = {
     code: 20000,
     data: 'success'
diff --git a/server/test.json b/server/test.json
deleted file mode 100644
index 4c8a8ca..0000000
--- a/server/test.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
-    "fxDate": "2021-09-28",
-    "sunrise": "05:46",
-    "sunset": "17:44",
-    "moonrise": "22:18",
-    "moonset": "13:04",
-    "moonPhase": "浜忓嚫鏈�",
-    "moonPhaseIcon": "805",
-    "tempMax": "32",
-    "tempMin": "25",
-    "iconDay": "101",
-    "textDay": "澶氫簯",
-    "iconNight": "150",
-    "textNight": "鏅�",
-    "wind360Day": "151",
-    "windDirDay": "涓滃崡椋�",
-    "windScaleDay": "1-2",
-    "windSpeedDay": "9",
-    "wind360Night": "180",
-    "windDirNight": "鍗楅",
-    "windScaleNight": "1-2",
-    "windSpeedNight": "3",
-    "humidity": "81",
-    "precip": "0.0",
-    "pressure": "1007",
-    "vis": "25",
-    "cloud": "25",
-    "uvIndex": "6"
-}
\ No newline at end of file
diff --git a/server/utils/EmailPush.js b/server/utils/EmailPush.js
old mode 100644
new mode 100755
diff --git a/server/utils/MsgPush.js b/server/utils/MsgPush.js
old mode 100644
new mode 100755
diff --git a/server/utils/checkToken.js b/server/utils/checkToken.js
old mode 100644
new mode 100755
diff --git a/server/utils/crypto.js b/server/utils/crypto.js
old mode 100644
new mode 100755
diff --git a/server/utils/dbtool.js b/server/utils/dbtool.js
old mode 100644
new mode 100755
diff --git a/server/utils/handle_db.js b/server/utils/handle_db.js
old mode 100644
new mode 100755
index 5128696..6378723
--- a/server/utils/handle_db.js
+++ b/server/utils/handle_db.js
@@ -143,19 +143,15 @@
  let create_sql = function(obj,pagesize_,pageindex_) {
   let str_select_ = [];
   let str_select_count = [];  
-  str_select_.push(obj.select_ + ' ' + obj.from_ + ' ' + obj.where_ + ' ' + obj.order_);
-  str_select_count.push('select count(1) as counter '+obj.from_ +' ' + obj.where_ + ' ' + obj.order_);
-  try {
-    if (pagesize_ && Number(pagesize_)>=0) {
-      let pageindex = (Number(pageindex_)>=0) ? Number(pageindex_) : 1;
-      let pagesize = (Number(pagesize_)>=0) ? Number(pagesize_) : 10;
-      str_select_.push(' limit ')
-      str_select_.push((pageindex-1)*pagesize)
-      str_select_.push(', ')
-      str_select_.push(pagesize);
-    }
-  } catch (error) {
-    
+  str_select_.push(obj.select_ + obj.from_ + obj.where_ + obj.order_);
+  str_select_count.push('select count(1) as counter from ('+obj.select_+obj.from_ + obj.where_ + obj.order_+') count_');
+  if (obj.server_paging == '1') {
+    let pageindex = (Number(pageindex_)>=0) ? Number(pageindex_) : 1;
+    let pagesize = (Number(pagesize_)>=0) ? Number(pagesize_) : 10;
+    str_select_.push(' limit ')
+    str_select_.push((pageindex-1)*pagesize)
+    str_select_.push(', ')
+    str_select_.push(pagesize);
   }
   return [str_select_count.join(''),str_select_.join('')]
 }
@@ -167,8 +163,8 @@
  let create_sync_sql = function(obj) {
   let str_select_ = [];
   let str_sync = [];  
-  str_select_.push(obj.select_ + ' ' + obj.from_ + ' ' + obj.where_ + ' ' + obj.order_);
-  str_sync.push(obj.insert_ + ' ' + obj.column_ + ' ' + obj.values_ + ' ' + obj.updateDuplicate_);
+  str_select_.push(obj.select_ + obj.from_ + obj.where_ + obj.order_);
+  str_sync.push(obj.insert_ + obj.column_ + obj.values_ + obj.updateDuplicate_);
 
   return [str_select_.join(''),str_sync.join('')]
 }
diff --git a/server/utils/httpcall.js b/server/utils/httpcall.js
old mode 100644
new mode 100755
diff --git a/server/utils/jpush.js b/server/utils/jpush.js
old mode 100644
new mode 100755
diff --git a/server/utils/location.js b/server/utils/location.js
deleted file mode 100644
index d7ce4e7..0000000
--- a/server/utils/location.js
+++ /dev/null
@@ -1,115 +0,0 @@
-const mysql = require('../utils/mysql_db')
-const numbers = require('../utils/numbers')
-
-async function Locating() {
-    try {
-        //棣栧厛鑾峰彇宸茶绠楃敓鎴愮殑闈炴硶鐢靛彴鐩綍
-        let sql = `SELECT id,frequency,confirm FROM fm_t_illegal_radio;`;
-        let result = await mysql.query(sql);
-        let map_illegal_radio = {};
-        for (let i = 0; i < result.length; i++) {
-            map_illegal_radio[result[i].frequency] = result[i];
-        }
-        //鑾峰彇鎵弿璁板綍涓墍鏈夐潪娉曠數鍙拌褰� 鐢ㄤ互璁$畻
-        sql = `
-        SELECT frequency, signal_strength, lon, lat, max(upload_time) AS upload_time
-        FROM fm_t_scan_record a
-        LEFT JOIN fm_t_task_record b ON a.task_record_id = b.id
-        WHERE result <> '0' AND result <> '1' AND signal_strength IS NOT NULL AND lon IS NOT NULL AND lat IS NOT NULL
-        GROUP BY frequency, device_lgid ;`;
-        result = await mysql.query(sql);
-        let map_data = {};
-        for (let i = 0; i < result.length; i++) {
-            if (map_data[result[i].frequency]) {
-                map_data[result[i].frequency].push(result[i]);
-            } else {
-                map_data[result[i].frequency] = [result[i]];
-            }
-        }
-        //渚濇璁$畻姣忎釜闈炴硶鐢靛彴鐨勪綅缃�
-        for (let freq in map_data) {
-            if (map_illegal_radio[freq] && map_illegal_radio[freq].confirm == "宸茬‘璁�") {
-                continue; //濡傛灉鐢靛彴淇℃伅宸茬粡缁忚繃纭锛屽垯涓嶅啀璁$畻
-            }
-            let data = map_data[freq];
-            let xy = [];
-            let dis = [];
-            for (let i = 0; i < data.length; i++) {
-                xy.push([data[i].lon, data[i].lat]);
-                dis.push(getDistanceByRSS(data[i].signal_strength)); //璁$畻璺濈
-            }
-            let location = equationSolving(xy, dis); //姹傝В鍧愭爣
-            if (!location) {
-                continue;
-            }
-            //淇濆瓨璁$畻缁撴灉鍒版暟鎹簱
-            if (map_illegal_radio[freq]) {
-                sql = `UPDATE fm_t_illegal_radio 
-                   SET lon=${location[0][0]},
-                       lat=${location[1][0]},
-                       time=NOW() 
-                   WHERE id=${map_illegal_radio[freq].id};`;
-            } else {
-                sql = `INSERT INTO fm_t_illegal_radio (frequency,lon,lat,confirm,time,detail) 
-                   VALUES(${freq},
-                          ${location[0][0]},
-                          ${location[1][0]},
-                          '寰呯‘璁�',
-                          NOW(),
-                          '骞冲彴璁$畻');`;
-            }
-            result = await mysql.query(sql);
-        }
-        return true;
-    } catch (err) {
-        return false;
-    }
-}
-//閫氳繃鎺ユ敹淇″彿寮哄害杩戜技璁$畻鐢靛彴璺濈 渚夸簬璁$畻杩斿洖鍊煎崟浣嶈浆涓� 搴�
-function getDistanceByRSS(rss) {
-    let dis = -0.0236 * rss - 2.0394; //璺濈杩戜技璁$畻鍏紡
-    return dis > 0 ? dis : 0;
-}
-//姹傝В璺濈鏂圭▼缁� 寰楀埌鐢靛彴鍧愭爣
-//xy涓簄 x 2 鐨勭煩闃碉紝琛ㄧずn涓凡鐭ョ偣鐨勫潗鏍�
-//dis涓簄涓凡鐭ョ偣鍒版湭鐭ョ偣鐨勮窛绂�
-function equationSolving(xy, dis) {
-    try {
-        if (dis.length == 1) {
-            let theta = Math.random() * Math.PI;
-            return [
-                [xy[0][0] + dis * Math.cos(theta)],
-                [xy[0][1] + dis * Math.sin(theta)]
-            ];
-        } else if (dis.length == 2) {
-            //浠呯矖鐣ヨ绠楋紝鐩存帴杩斿洖 涓偣 ------ 寰呮敼杩�
-            return [
-                [0.5 * (xy[0][0] + xy[1][0])],
-                [0.5 * (xy[0][1] + xy[1][1])]
-            ];
-        } else {
-            let n = dis.length;
-            let A = [];
-            let b = [];
-            const c = dis[n - 1] * dis[n - 1] - xy[n - 1][0] * xy[n - 1][0] - xy[n - 1][1] * xy[n - 1][1];
-            for (let i = 0; i < n - 1; i++) {
-                A.push([2 * (xy[i][0] - xy[n - 1][0]), 2 * (xy[i][1] - xy[n - 1][1])]);
-                b.push([xy[i][0] * xy[i][0] + xy[i][1] * xy[i][1] - dis[i] * dis[i] + c]);
-            }
-            let AT = [
-                numbers.matrix.getCol(A, 0),
-                numbers.matrix.getCol(A, 1)
-            ];
-            let X = numbers.matrix.multiply(
-                numbers.matrix.multiply(
-                    numbers.matrix.inverse(numbers.matrix.multiply(AT, A)),
-                    AT),
-                b);
-            return X;
-        }
-    } catch (err) {
-        return null;
-    }
-}
-
-Locating();
\ No newline at end of file
diff --git a/server/utils/logs.js b/server/utils/logs.js
deleted file mode 100644
index 27c5e43..0000000
--- a/server/utils/logs.js
+++ /dev/null
@@ -1,241 +0,0 @@
-var log4js = require('log4js')
-var logsConfig = require('../config/logs.js')
-const uuid = require('node-uuid')
-const mysql = require('../utils/mysql_db')
-const jwt = require('jsonwebtoken')
-const util = require('util')
-const verify = util.promisify(jwt.verify)
-let secret = 'FM_Monitor'
-const dbhandle = require('../utils/handle_db')
-//鍔犺浇閰嶇疆鏂囦欢
-log4js.configure(logsConfig)
-//璋冪敤棰勫厛瀹氫箟鐨勬棩蹇楀悕绉�
-var resLogger = log4js.getLogger('resLogger')
-var errorLogger = log4js.getLogger('errorLogger')
-var handleLogger = log4js.getLogger('handleLogger')
-var consoleLogger = log4js.getLogger()
-
-// 鏍煎紡鍖栨棩蹇楁枃鏈� 鍔犱笂鏃ュ織澶村熬鍜屾崲琛屾柟渚挎煡鐪� ==>  鏅�氭棩蹇椼�佽姹傛棩蹇椼�佸搷搴旀棩蹇椼�佹搷浣滄棩蹇椼�侀敊璇棩蹇�
-var formatText = {
-  info: function(info) {
-    var logText = new String()
-    //鍝嶅簲鏃ュ織澶翠俊鎭�
-    logText += '\n' + '***************info log start ***************' + '\n'
-    //鍝嶅簲鍐呭
-    logText += 'info detail: ' + '\n' + JSON.stringify(info) + '\n'
-    //鍝嶅簲鏃ュ織缁撴潫淇℃伅
-    logText += '*************** info log end ***************' + '\n'
-    return logText
-  },
-  request: function(req, resTime) {
-    var logText = new String()
-    var method = req.method
-    //璁块棶鏂规硶
-    logText += 'request method: ' + method + '\n'
-    //璇锋眰鍘熷鍦板潃
-    logText += 'request originalUrl:  ' + req.originalUrl + '\n'
-    //瀹㈡埛绔痠p
-    logText += 'request client ip:  ' + req.ip + '\n'
-    //寮�濮嬫椂闂�
-    var startTime
-    //璇锋眰鍙傛暟
-    if (method === 'GET') {
-      logText += 'request query:  ' + JSON.stringify(req.query) + '\n'
-      // startTime = req.query.requestStartTime;
-    } else {
-      logText += 'request body: ' + '\n' + JSON.stringify(req.body) + '\n'
-      // startTime = req.body.requestStartTime;
-    }
-    //鏈嶅姟鍣ㄥ搷搴旀椂闂�
-    logText += 'response time: ' + resTime + '\n'
-    return logText
-  },
-  response: function(ctx, resTime) {
-    console.log(ctx)
-    var logText = new String()
-    //鍝嶅簲鏃ュ織寮�濮�
-    logText +=
-      '\n' + '*************** response log start ***************' + '\n'
-    //娣诲姞璇锋眰鏃ュ織
-    logText += formatText.request(ctx.request, resTime)
-    //鍝嶅簲鐘舵�佺爜
-    logText += 'response status: ' + ctx.status + '\n'
-    //鍝嶅簲鍐呭
-    logText += 'response body: ' + '\n' + JSON.stringify(ctx.body) + '\n'
-    //鍝嶅簲鏃ュ織缁撴潫
-    logText += '*************** response log end ***************' + '\n'
-
-    if (ctx.body) {
-      if (
-        Object.prototype.toString.apply(ctx.body.data) !== '[object Array]' &&
-        ctx.request.originalUrl.split('?')[0].indexOf('/user/') == -1
-      ) {
-        logInsert(ctx, resTime, '鍝嶅簲鏃ュ織')
-      }
-    }
-
-    return logText
-  },
-  handle: function(info) {
-    var logText = new String()
-    //鍝嶅簲鏃ュ織寮�濮�
-    logText += '\n' + '***************info log start ***************' + '\n'
-    //鍝嶅簲鍐呭
-    logText +=
-      'handle info detail: ' +
-      '\n' +
-      JSON.stringify(info).replace(/\\n/g, '\n') +
-      '\n'
-    //鍝嶅簲鏃ュ織缁撴潫
-    logText += '*************** info log end ***************' + '\n'
-    return logText
-  },
-  error: function(ctx, err, resTime) {
-    var logText = new String()
-    //閿欒淇℃伅寮�濮�
-    logText += '\n' + '*************** error log start ***************' + '\n'
-    //娣诲姞璇锋眰鏃ュ織
-    logText += formatText.request(ctx.request, resTime)
-    //閿欒鍚嶇О
-    logText += 'err name: ' + err.name + '\n'
-    //閿欒淇℃伅
-    logText += 'err message: ' + err.message + '\n'
-    //閿欒璇︽儏
-    logText += 'err stack: ' + err.stack + '\n'
-    //閿欒淇℃伅缁撴潫
-    logText += '*************** error log end ***************' + '\n'
-    console.log(logText)
-    logErrorInsert(ctx, err, resTime)
-    return logText
-  }
-}
-
-let logInsert = async function(ctx, resTime, log_type) {
-  // const token = ctx.request.header.authorization.split(' ')[1]
-  // let payload = await verify(token, secret)
-
-  let author = ctx.request.header.authorization
-  let payload = {}
-  if (typeof author == 'undefined') {
-    payload = {}
-  } else {
-    payload = await verify(author.split(' ')[1], secret)
-  }
-
-  let sql = `INSERT INTO sys_log 
-    (id,user,ip_address,response_time,response_status,response_method,originalUrl,message,create_time,log_type,params,logDes) VALUES 
-    ('${uuid.v4()}',
-    '${payload.user_name}',
-    '${ctx.request.ip}',
-    '${resTime}',
-    '${ctx.status}',
-    '${ctx.request.method}',
-    '${ctx.request.originalUrl.split('?')[0]}',
-    '${ctx.message}',
-    '${dbhandle.date_format(new Date(), 'YY-MM-DD hh:mm:ss')}',
-    '${log_type}',
-    '${
-      ctx.request.method == 'GET'
-        ? querysour(JSON.stringify(ctx.request.query))
-        : querysour(JSON.stringify(ctx.request.body))
-    }',
-    '${
-      ctx.request.method == 'GET'
-        ? ctx.request.query.logDes
-          ? ctx.request.query.logDes
-          : '鏃犳弿杩�'
-        : ctx.request.body.logDes
-        ? ctx.request.body.logDes
-        : '鏃犳弿杩�'
-    }')`
-  await mysql.query(sql)
-}
-
-let logErrorInsert = async function(ctx, err, resTime) {
-  let author = ctx.request.header.authorization
-  if (!typeof author == 'undefined') {
-    let payload = await verify(author.split(' ')[1], secret)
-    let sql = `INSERT INTO sys_log 
-    (id,user,ip_address,response_time,response_status,response_method,originalUrl,message,create_time,log_type,params,logDes) VALUES 
-    ('${uuid.v4()}',
-    '${payload.user_name}',
-    '${ctx.request.ip}',
-    '${resTime}',
-    '${ctx.status}',
-    '${ctx.request.method}',
-    '${ctx.request.originalUrl.split('?')[0]}',
-    '${querysour(err.message.split(';')[0])}',
-    '${dbhandle.date_format(new Date(), 'YY-MM-DD hh:mm:ss')}',
-    '閿欒鏃ュ織',
-    '${
-      ctx.request.method == 'GET'
-        ? querysour(JSON.stringify(ctx.request.query))
-        : querysour(JSON.stringify(ctx.request.body))
-    }',
-    '${querysour(err.message.split(';')[0])}');`
-    await mysql.query(sql)
-  }
-}
-
-let logLogin = async function(ctx, resTime, user) {
-  let sql = `INSERT INTO sys_log 
-    (id,user,ip_address,response_time,response_status,response_method,originalUrl,message,create_time,log_type,params,logDes) VALUES 
-    ('${uuid.v4()}',
-    '${user}',
-    '${ctx.request.ip}',
-    '${resTime}',
-    '${ctx.status}',
-    '${ctx.request.method}',
-    '${ctx.request.originalUrl.split('?')[0]}',
-    '${ctx.message}',
-    '${dbhandle.date_format(new Date(), 'YY-MM-DD hh:mm:ss')}',
-    '鐧诲叆鐧诲嚭',
-    '--',
-    '${ctx.request.body.logDes}');`
-  await mysql.query(sql)
-}
-
-function querysour(e) {
-  e = e.replace(/(^\s*)|(\s*$)/g, '') //鍏堣繃婊ゆ帀瀛楃涓蹭腑鐨勭┖鏍�
-  //鐢╰est鍑芥暟鍒ゆ柇瀛楃涓蹭腑鏈夋病鏈夊畾涔夌殑鐗规畩瀛楃
-  if (/(\"|\'|\~|\*|\?|\\)/g.test(e)) {
-    //鎶婂尮閰嶅埌鐨勭壒娈婂瓧绗︽浛鎹㈡垚'////',鍐嶅姞涓婂師鏉ョ殑瀛楃
-    e = e.replace(
-      /(\"|\'|\~|\*|\?|\\)/g,
-      '/\\' + e.match(/(\"|\'|\~|\*|\?|\\)/g)[0]
-    )
-  }
-  return e
-}
-
-//灏佽鏅�氭棩蹇�
-let logInfo = function(info) {
-  if (info) {
-    consoleLogger.info(formatText.info(info))
-  }
-}
-//灏佽鍝嶅簲鏃ュ織
-let logResponse = function(ctx, resTime) {
-  if (ctx) {
-    resLogger.info(formatText.response(ctx, resTime))
-  }
-}
-//灏佽鎿嶄綔鏃ュ織
-let logHandle = function(res) {
-  if (res) {
-    handleLogger.info(formatText.handle(res))
-  }
-}
-//灏佽閿欒鏃ュ織
-let logError = function(ctx, error, resTime) {
-  if (ctx && error) {
-    errorLogger.error(formatText.error(ctx, error, resTime))
-  }
-}
-module.exports = {
-  logInfo,
-  logResponse,
-  logHandle,
-  logError,
-  logLogin
-}
diff --git a/server/utils/mysql_db.js b/server/utils/mysql_db.js
old mode 100644
new mode 100755
diff --git a/server/utils/numbers.js b/server/utils/numbers.js
deleted file mode 100644
index f393a8b..0000000
--- a/server/utils/numbers.js
+++ /dev/null
@@ -1,3161 +0,0 @@
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.numbers=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-module.exports = require('./lib/numbers.js');
-
-},{"./lib/numbers.js":2}],2:[function(require,module,exports){
-/**
- * numbers.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-var numbers = exports;
-
-
-// Expose methods
-numbers.basic = require('./numbers/basic');
-numbers.calculus = require('./numbers/calculus');
-numbers.complex = require('./numbers/complex');
-numbers.dsp = require('./numbers/dsp');
-numbers.matrix = require('./numbers/matrix');
-numbers.prime = require('./numbers/prime');
-numbers.statistic = require('./numbers/statistic');
-numbers.generate = require('./numbers/generators');
-numbers.random = require('./numbers/random');
-
-/**
- * @property {Number} EPSILON Epsilon (error bound) to be used
- * in calculations. Can be set and retrieved freely.
- *
- * Given the float-point handling by JavaScript, as well as
- * the numbersal proficiency of some methods, it is common
- * practice to include a bound by which discrepency between
- * the "true" answer and the returned value is acceptable.
- *
- * If no value is provided, 0.001 is default.
- */
-numbers.EPSILON = 0.001;
-
-},{"./numbers/basic":3,"./numbers/calculus":4,"./numbers/complex":5,"./numbers/dsp":6,"./numbers/generators":7,"./numbers/matrix":8,"./numbers/prime":9,"./numbers/random":10,"./numbers/statistic":11}],3:[function(require,module,exports){
-/**
- * basic.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-var basic = exports;
-
-/**
- * Determine the summation of numbers in a given array.
- *
- * @param {Array} collection of numbers.
- * @return {Number} sum of numbers in array.
- */
-basic.sum = function (arr) {
-  if (Object.prototype.toString.call(arr) === '[object Array]') {
-    var total = 0;
-    for (var i = 0; i < arr.length; i++) {
-      if (typeof (arr[i]) === 'number') {
-        total = total + arr[i];
-      } else {
-        throw new Error('All elements in array must be numbers');
-      }
-    }
-    return total;
-  } else {
-    throw new Error('Input must be of type Array');
-  }
-};
-
-/**
- * Subtracts elements from one another in array.
- *
- * e.g [5,3,1,-1] -> 5 - 3 - 1 - (-1) = 2
- *
- * @param {Array} collection of numbers.
- * @return {Number} difference.
- */
-basic.subtraction = function (arr) {
-  if (Object.prototype.toString.call(arr) === '[object Array]') {
-    var total = arr[0];
-    if (typeof (total) !== 'number') {
-      throw new Error('All elements in array must be numbers');
-    }
-    for (var i = 1, length = arr.length; i < length; i++) {
-      if (typeof (arr[i]) === 'number') {
-        total -= arr[i];
-      } else {
-        throw new Error('All elements in array must be numbers');
-      }
-    }
-    return total;
-  } else {
-    throw new Error('Input must be of type Array');
-  }
-};
-
-/**
- * Product of all elements in an array.
- *
- * @param {Array} collection of numbers.
- * @return {Number} product.
- */
-basic.product = function (arr) {
-  if (Object.prototype.toString.call(arr) === '[object Array]') {
-    var total = arr[0];
-    if (typeof (total) !== 'number') {
-      throw new Error('All elements in array must be numbers');
-    }
-    for (var i = 1, length = arr.length; i < length; i++) {
-      if (typeof (arr[i]) === 'number') {
-        total = total * arr[i];
-      } else {
-        throw new Error('All elements in array must be numbers');
-      }
-    }
-    return total;
-  } else {
-    throw new Error('Input must be of type Array');
-  }
-};
-
-/**
- * Return the square of any value.
- *
- * @param {Number} number
- * @return {Number} square of number
- */
-basic.square = function (num) {
-  if (typeof (num) !== 'number') {
-    throw new Error('Input must be a number.');
-  } else {
-    return num * num;
-  }
-
-};
-
-/**
- * Calculate the binomial coefficient (n choose k)
- *
- * @param {Number} available choices
- * @param {Number} number chosen
- * @return {Number} number of possible choices
- */
-basic.binomial = function (n, k) {
-
-  var arr = [];
-
-  function _binomial(n, k) {
-    if (typeof (n) !== 'number' && typeof (k) !== 'number') {
-      throw new Error('Input must be a number.');
-    }
-    if (n >= 0 && k === 0) return 1;
-    if (n === 0 && k > 0) return 0;
-    if (arr[n] && arr[n][k] > 0) return arr[n][k];
-    if (!arr[n]) arr[n] = [];
-
-    arr[n][k] = _binomial(n - 1, k - 1) + _binomial(n - 1, k);
-    return arr[n][k];
-  }
-
-  return _binomial(n, k);
-};
-
-/**
- * Factorial for some integer.
- *
- * @param {Number} integer.
- * @return {Number} result.
- */
-basic.factorial = function (num) {
-  if (typeof (num) !== 'number') throw new Error("Input must be a number.");
-  if (num < 0) throw new Error("Input must not be negative.");
-  var i = 2,
-    o = 1;
-
-  while (i <= num) {
-    o *= i++;
-  }
-
-  return o;
-};
-
-/**
- * Calculate the greastest common divisor amongst two integers.
- *
- * @param {Number} number A.
- * @param {Number} number B.
- * @return {Number} greatest common divisor for integers A, B.
- */
-basic.gcd = function (a, b) {
-  var c;
-  a = +a;
-  b = +b;
-  // Same as isNaN() but faster
-  if (a !== a || b !== b) {
-    return NaN;
-  }
-  //Same as !isFinite() but faster
-  if (a === Infinity || a === -Infinity || b === Infinity || b === -Infinity) {
-    return Infinity;
-  }
-  // Checks if a or b are decimals
-  if ((a % 1 !== 0) || (b % 1 !== 0)) {
-    throw new Error("Can only operate on integers");
-  }
-  while (b) {
-    c = a % b;
-    a = b;
-    b = c;
-  }
-  return (0 < a) ? a : -a;
-};
-
-/**
- * Calculate the least common multiple amongst two integers.
- *
- * @param {Number} number A.
- * @param {Number} number B.
- * @return {Number} least common multiple for integers A, B.
- */
-basic.lcm = function (num1, num2) {
-  return Math.abs(num1 * num2) / basic.gcd(num1, num2);
-};
-
-/**
- * Retrieve a specified quantity of elements from an array, at random.
- *
- * @param {Array} set of values to select from.
- * @param {Number} quantity of elements to retrieve.
- * @param {Boolean} allow the same number to be returned twice.
- * @return {Array} random elements.
- */
-basic.random = function (arr, quant, allowDuplicates) {
-  if (arr.length === 0) {
-    throw new Error('Empty array');
-  } else if (quant > arr.length && !allowDuplicates) {
-    throw new Error('Quantity requested exceeds size of array');
-  }
-
-  if (allowDuplicates === true) {
-    var result = [],
-      i;
-    for (i = 0; i < quant; i++) {
-      result[i] = arr[Math.floor(Math.random() * arr.length)];
-    }
-    return result;
-  } else {
-    return basic.shuffle(arr).slice(0, quant);
-  }
-};
-
-/**
- * Shuffle an array, in place.
- *
- * @param {Array} array to be shuffled.
- * @return {Array} shuffled array.
- */
-basic.shuffle = function (array) {
-  var m = array.length,
-    t, i;
-
-  while (m) {
-    i = Math.floor(Math.random() * m--);
-
-    t = array[m];
-    array[m] = array[i];
-    array[i] = t;
-  }
-
-  return array;
-};
-
-/**
- * Find maximum value in an array.
- *
- * @param {Array} array to be traversed.
- * @return {Number} maximum value in the array.
- */
-basic.max = function (arr) {
-  if (!Array.isArray(arr)) {
-    throw new Error("Input must be of type Array");
-  }
-  var max = -Infinity,
-    val;
-  for (var i = 0, len = arr.length; i < len; i++) {
-    val = +arr[i];
-    if (max < val) {
-      max = val;
-    }
-    // Math.max() returns NaN if one of the elements is not a number.
-    if (val !== val) {
-      return NaN;
-    }
-  }
-  return max;
-};
-
-/**
- * Find minimum value in an array.
- *
- * @param {Array} array to be traversed.
- * @return {Number} minimum value in the array.
- */
-basic.min = function (arr) {
-  if (!Array.isArray(arr)) {
-    throw new Error("Input must be of type Array");
-  }
-  var min = +Infinity,
-    val;
-  for (var i = 0, len = arr.length; i < len; i++) {
-    val = +arr[i];
-    if (val < min) {
-      min = val;
-    }
-    // Math.min() returns NaN if one of the elements is not a number.
-    if (val !== val) {
-      return NaN;
-    }
-  }
-  return min;
-};
-
-
-/**
- * Create a range of numbers.
- *
- * @param {Number} The start of the range.
- * @param {Number} The end of the range.
- * @return {Array} An array containing numbers within the range.
- */
-basic.range = function (start, stop, step) {
-  var array, i = 0,
-    len;
-
-  if (arguments.length <= 1) {
-    stop = start || 0;
-    start = 0;
-  }
-
-  step = step || 1;
-
-  if (stop < start) {
-    step = 0 - Math.abs(step);
-  }
-
-  len = Math.max(Math.ceil((stop - start) / step) + 1, 0);
-
-  array = new Array(len);
-
-  while (i < len) {
-    array[i++] = start;
-    start += step;
-  }
-
-  return array;
-};
-
-/**
- * Determine if the number is an integer.
- *
- * @param {Number} the number
- * @return {Boolean} true for int, false for not int.
- */
-basic.isInt = function (n) {
-  return n % 1 === 0;
-};
-
-/**
- * Calculate the divisor and modulus of two integers.
- *
- * @param {Number} int a.
- * @param {Number} int b.
- * @return {Array} [div, mod].
- */
-basic.divMod = function (a, b) {
-  if (b <= 0) throw new Error("b cannot be zero. Undefined.");
-  if (!basic.isInt(a) || !basic.isInt(b)) throw new Error("A or B are not integers.");
-  return [Math.floor(a / b), a % b];
-};
-
-/**
- * Calculate:
- * if b >= 1: a^b mod m.
- * if b = -1: modInverse(a, m).
- * if b < 1: finds a modular rth root of a such that b = 1/r.
- *
- * @param {Number} Number a.
- * @param {Number} Number b.
- * @param {Number} Modulo m.
- * @return {Number} see the above documentation for return values.
- */
-basic.powerMod = function (a, b, m) {
-  if (typeof (a) !== 'number' || typeof (b) !== 'number' || typeof (m) !== 'number') throw new Error("Inputs must be numbers.");
-  // If b < -1 should be a small number, this method should work for now.
-  if (b < -1) return Math.pow(a, b) % m;
-  if (b === 0) return 1 % m;
-  if (b >= 1) {
-    var result = 1;
-    while (b > 0) {
-      if ((b % 2) === 1) {
-        result = (result * a) % m;
-      }
-
-      a = (a * a) % m;
-      b = b >> 1;
-    }
-    return result;
-  }
-
-  if (b === -1) return basic.modInverse(a, m);
-  if (b < 1) {
-    return basic.powerMod(a, Math.pow(b, -1), m);
-  }
-};
-
-/**
- * Calculate the extended Euclid Algorithm or extended GCD.
- *
- * @param {Number} int a.
- * @param {Number} int b.
- * @return {Array} [a, x, y] a is the GCD. x and y are the values such that ax + by = gcd(a, b) .
- */
-basic.egcd = function (a, b) {
-  a = +a;
-  b = +b;
-  // Same as isNaN() but faster
-  if (a !== a || b !== b) {
-    return [NaN, NaN, NaN];
-  }
-  //Same as !isFinite() but faster
-  if (a === Infinity || a === -Infinity || b === Infinity || b === -Infinity) {
-    return [Infinity, Infinity, Infinity];
-  }
-  // Checks if a or b are decimals
-  if ((a % 1 !== 0) || (b % 1 !== 0)) {
-    throw new Error("Can only operate on integers");
-  }
-  var signX = (a < 0) ? -1 : 1,
-    signY = (b < 0) ? -1 : 1,
-    x = 0,
-    y = 1,
-    oldX = 1,
-    oldY = 0,
-    q, r, m, n;
-  a = Math.abs(a);
-  b = Math.abs(b);
-
-  while (a !== 0) {
-    q = Math.floor(b / a);
-    r = b % a;
-    m = x - oldX * q;
-    n = y - oldY * q;
-    b = a;
-    a = r;
-    x = oldX;
-    y = oldY;
-    oldX = m;
-    oldY = n;
-  }
-  return [b, signX * x, signY * y];
-};
-/**
- * Calculate the modular inverse of a number.
- *
- * @param {Number} Number a.
- * @param {Number} Modulo m.
- * @return {Number} if true, return number, else throw error.
- */
-basic.modInverse = function (a, m) {
-  var r = basic.egcd(a, m);
-  if (r[0] !== 1) throw new Error('No modular inverse exists');
-  return r[1] % m;
-};
-
-
-/**
- * Determine is two numbers are equal within a given margin of precision.
- *
- * @param {Number} first number.
- * @param {Number} second number.
- * @param {Number} epsilon.
- */
-basic.numbersEqual = function (first, second, epsilon) {
-  if (typeof (first) !== 'number' || typeof (second) !== 'number' || typeof (epsilon) !== 'number') throw new Error("First and Second must be numbers.");
-  return (first - second) < epsilon && (first - second) > -epsilon;
-};
-
-/**
- * Calculate the falling factorial of a number
- *
- * {@see http://mathworld.wolfram.com/FallingFactorial.html}
- *
- * @param {Number} Base
- * @param {Number} Steps to fall
- * @returns {Number} Result
- */
-basic.fallingFactorial = function (n, k) {
-  var i = (n - k + 1),
-    r = 1;
-
-  if (n < 0) {
-    throw new Error("n cannot be negative.");
-  }
-  if (k > n) {
-    throw new Error("k cannot be greater than n.");
-  }
-
-  while (i <= n) {
-    r *= i++;
-  }
-
-  return r;
-};
-
-/**
- * Calculate the permutation (n choose k)
- *
- * @param {Number} available choices
- * @param {Number} number chosen
- * @return {Number} number of ordered variations
- */
-
-basic.permutation = function (n, k) {
-  if (n <= 0) {
-    throw new Error("n cannot be less than or equal to 0.");
-  }
-  if (n < k) {
-    throw new Error("k cannot be greater than k.");
-  }
-  var binomial = basic.binomial(n, k);
-  var permutation = binomial * basic.factorial(k);
-  return permutation;
-};
-
-},{}],4:[function(require,module,exports){
-/**
- * calculus.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-var numbers = require('../numbers');
-var calculus = exports;
-
-/**
- * Calculate point differential for a specified function at a
- * specified point.  For functions of one variable.
- *
- * @param {Function} math function to be evaluated.
- * @param {Number} point to be evaluated.
- * @return {Number} result.
- */
-calculus.pointDiff = function (func, point) {
-  var a = func(point - 0.001);
-  var b = func(point + 0.001);
-
-  return (b - a) / (0.002);
-};
-
-/**
- * Calculate riemann sum for a specified, one variable, function
- * from a starting point, to a finishing point, with n divisions.
- *
- * @param {Function} math function to be evaluated.
- * @param {Number} point to initiate evaluation.
- * @param {Number} point to complete evaluation.
- * @param {Number} quantity of divisions.
- * @param {Function} (Optional) Function that returns which value
- *   to sample on each interval; if none is provided, left endpoints
- *   will be used.
- * @return {Number} result.
- */
-calculus.Riemann = function (func, start, finish, n, sampler) {
-  var inc = (finish - start) / n;
-  var totalHeight = 0;
-  var i;
-
-  if (typeof sampler === 'function') {
-    for (i = start; i < finish; i += inc) {
-      totalHeight += func(sampler(i, i + inc));
-    }
-  } else {
-    for (i = start; i < finish; i += inc) {
-      totalHeight += func(i);
-    }
-  }
-
-  return totalHeight * inc;
-};
-
-/**
- * Helper function in calculating integral of a function
- * from a to b using simpson quadrature.
- *
- * @param {Function} math function to be evaluated.
- * @param {Number} point to initiate evaluation.
- * @param {Number} point to complete evaluation.
- * @return {Number} evaluation.
- */
-function SimpsonDef(func, a, b) {
-  var c = (a + b) / 2;
-  var d = Math.abs(b - a) / 6;
-  return d * (func(a) + 4 * func(c) + func(b));
-}
-
-/**
- * Helper function in calculating integral of a function
- * from a to b using simpson quadrature.  Manages recursive
- * investigation, handling evaluations within an error bound.
- *
- * @param {Function} math function to be evaluated.
- * @param {Number} point to initiate evaluation.
- * @param {Number} point to complete evaluation.
- * @param {Number} total value.
- * @param {Number} Error bound (epsilon).
- * @return {Number} recursive evaluation of left and right side.
- */
-function SimpsonRecursive(func, a, b, whole, eps) {
-  var c = a + b;
-  var left = SimpsonDef(func, a, c);
-  var right = SimpsonDef(func, c, b);
-
-  if (Math.abs(left + right - whole) <= 15 * eps) {
-    return left + right + (left + right - whole) / 15;
-  } else {
-    return SimpsonRecursive(func, a, c, eps / 2, left) + SimpsonRecursive(func, c, b, eps / 2, right);
-  }
-}
-
-/**
- * Evaluate area under a curve using adaptive simpson quadrature.
- *
- * @param {Function} math function to be evaluated.
- * @param {Number} point to initiate evaluation.
- * @param {Number} point to complete evaluation.
- * @param {Number} Optional error bound (epsilon);
- *   global error bound will be used as a fallback.
- * @return {Number} area underneath curve.
- */
-calculus.adaptiveSimpson = function (func, a, b, eps) {
-  eps = (typeof eps === 'undefined') ? numbers.EPSILON : eps;
-
-  return SimpsonRecursive(func, a, b, SimpsonDef(func, a, b), eps);
-};
-
-/**
- * Calculate limit of a function at a given point. Can approach from
- * left, middle, or right.
- *
- * @param {Function} math function to be evaluated.
- * @param {Number} point to evaluate.
- * @param {String} approach to limit.
- * @return {Number} limit.
- */
-calculus.limit = function (func, point, approach) {
-  if (approach === 'left') {
-    return func(point - 1e-15);
-  } else if (approach === 'right') {
-    return func(point + 1e-15);
-  } else if (approach === 'middle') {
-    return (calculus.limit(func, point, 'left') + calculus.limit(func, point, 'right')) / 2;
-  } else {
-    throw new Error('Approach not provided');
-  }
-};
-
-/**
- * Calculate Stirling approximation gamma.
- *
- * @param {Number} number to calculate.
- * @return {Number} gamma.
- */
-calculus.StirlingGamma = function (num) {
-  return Math.sqrt(2 * Math.PI / num) * Math.pow((num / Math.E), num);
-};
-
-/**
- * Calculate Lanczos approximation gamma.
- *
- * @param {Number} number to calculate.
- * @return {Number} gamma.
- */
-calculus.LanczosGamma = function (num) {
-  var p = [
-    0.99999999999980993, 676.5203681218851, -1259.1392167224028,
-    771.32342877765313, -176.61502916214059, 12.507343278686905, -0.13857109526572012, 9.9843695780195716e-6, 1.5056327351493116e-7
-  ];
-
-  var i;
-  var g = 7;
-
-  if (num < 0.5) return Math.PI / (Math.sin(Math.PI * num) * calculus.LanczosGamma(1 - num));
-
-  num -= 1;
-
-  var a = p[0];
-  var t = num + g + 0.5;
-
-  for (i = 1; i < p.length; i++) {
-    a += p[i] / (num + i);
-  }
-
-  return Math.sqrt(2 * Math.PI) * Math.pow(t, num + 0.5) * Math.exp(-t) * a;
-};
-
-
-/**
- * Calculate the integral of f(x1,x2,...) over intervals
- * [a1,b1], [a2,b2], ..., using the montecarlo method:
- *
- * integral of f(x,y) = (1/N)*(b2-a2)*(b1-a1)*sum(f)
- *
- * where N = number of points for f to be evaluated at.
- * The error for this method is about 1/root(N) and will
- * always converge.
- *
- * @param {Function} math function.
- * @param {Number} number of points
- * @param {Array(s)} intervals
- * @return {Number} approximation to integral
- */
-calculus.MonteCarlo = function (func, N) {
-  //takes an arbitrary number of arguments after N
-  //all of the arguments must be arrays which are intervals
-  if (arguments.length < 2) {
-    throw new Error('Please enter at least one interval.');
-  } else if (N <= 0) {
-    throw new Error('Please use a positive integer for N.');
-  }
-  var L = [];
-  N = Math.ceil(N);
-  for (var i = 2; i < arguments.length; i++) {
-    L.push(arguments[i]);
-  }
-
-  var coeff = L.map(function (l) { //subtract the endpoints
-    return l[1] - l[0];
-  }).reduce(function (a, b) { //multiply each endpoint difference
-    return a * b;
-  }) / N;
-
-  var fvals = numbers.matrix.transpose(L.map(function (l) {
-    //generate an array of arrays, each nested array being N
-    //random values in each interval - N-by-3 array, and then
-    //transpose it to get a 3-by-N array
-    return numbers.statistic.randomSample(l[0], l[1], N);
-  })).map(function (l) {
-    //evaluate func at each set of points
-    return func.apply(null, [l[0], l[1], l[2]]);
-  });
-
-  return coeff * fvals.reduce(function (a, b) {
-    return a + b;
-  });
-};
-
-},{"../numbers":2}],5:[function(require,module,exports){
-/**
- * complex.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var numbers = require('../numbers');
-var basic = numbers.basic;
-
-var Complex = function (re, im) {
-  this.re = re;
-  this.im = im;
-  this.r = this.magnitude();
-  this.t = this.phase(); // theta = t = arg(z)
-};
-
-/**
- * Add a complex number to this one.
- *
- * @param {Complex} Number to add.
- * @return {Complex} New complex number (sum).
- */
-Complex.prototype.add = function (addend) {
-  return new Complex(this.re + addend.re, this.im + addend.im);
-};
-
-/**
- * Subtract a complex number from this one.
- *
- * @param {Complex} Number to subtract.
- * @return {Complex} New complex number (difference).
- */
-Complex.prototype.subtract = function (subtrahend) {
-  return new Complex(this.re - subtrahend.re, this.im - subtrahend.im);
-};
-
-/**
- * Multiply a complex number with this one.
- *
- * @param {Complex} Number to multiply by.
- * @return {Complex} New complex number (product).
- */
-Complex.prototype.multiply = function (multiplier) {
-  var re = this.re * multiplier.re - this.im * multiplier.im;
-  var im = this.im * multiplier.re + this.re * multiplier.im;
-
-  return new Complex(re, im);
-};
-
-/**
- * Divide this number with another complex number.
- *
- * @param {Complex} Divisor.
- * @return {Complex} New complex number (quotient).
- */
-Complex.prototype.divide = function (divisor) {
-  var denominator = divisor.re * divisor.re + divisor.im * divisor.im;
-  var re = (this.re * divisor.re + this.im * divisor.im) / denominator;
-  var im = (this.im * divisor.re - this.re * divisor.im) / denominator;
-
-  return new Complex(re, im);
-};
-
-/**
- * Get the magnitude of this number.
- *
- * @return {Number} Magnitude.
- */
-Complex.prototype.magnitude = function () {
-  return Math.sqrt(this.re * this.re + this.im * this.im);
-};
-
-/**
- * Get the phase of this number.
- *
- * @return {Number} Phase.
- */
-Complex.prototype.phase = function () {
-  return Math.atan2(this.im, this.re);
-};
-
-/**
- * Conjugate the imaginary part
- *
- * @return {Complex} Conjugated number
- */
-Complex.prototype.conjugate = function () {
-  return new Complex(this.re, -1 * this.im);
-};
-
-/**
- * Raises this complex number to the nth power.
- *
- * @param {number} power to raise this complex number to.
- * @return {Complex} the nth power of this complex number.
- */
-Complex.prototype.pow = function (n) {
-  var constant = Math.pow(this.magnitude(), n);
-
-  return new Complex(constant * Math.cos(n * this.phase()), constant * Math.sin(n * this.phase()));
-};
-
-/**
- * Raises this complex number to given complex power.
- *
- * @param complexN the complex number to raise this complex number to.
- * @return {Complex} this complex number raised to the given complex number.
- */
-Complex.prototype.complexPow = function (complexN) {
-  var realSqPlusImSq = Math.pow(this.re, 2) + Math.pow(this.im, 2);
-  var multiplier = Math.pow(realSqPlusImSq, complexN.re / 2) * Math.pow(Math.E, -complexN.im * this.phase());
-  var theta = complexN.re * this.phase() + 0.5 * complexN.im * Math.log(realSqPlusImSq);
-
-  return new Complex(multiplier * Math.cos(theta), multiplier * Math.sin(theta));
-};
-
-/**
- * Find all the nth roots of this complex number.
- *
- * @param {Number} root of this complex number to take.
- * @return {Array} an array of size n with the roots of this complex number.
- */
-Complex.prototype.roots = function (n) {
-  var result = new Array(n);
-
-  for (var i = 0; i < n; i++) {
-    var theta = (this.phase() + 2 * Math.PI * i) / n;
-    var radiusConstant = Math.pow(this.magnitude(), 1 / n);
-
-    result[i] = (new Complex(radiusConstant * Math.cos(theta), radiusConstant * Math.sin(theta)));
-  }
-
-  return result;
-};
-
-
-/**
- * Returns the sine of this complex number.
- *
- * @return {Complex} the sine of this complex number.
- */
-Complex.prototype.sin = function () {
-  var E = new Complex(Math.E, 0);
-  var i = new Complex(0, 1);
-  var negativeI = new Complex(0, -1);
-  var numerator = E.complexPow(i.multiply(this)).subtract(E.complexPow(negativeI.multiply(this)));
-
-  return numerator.divide(new Complex(0, 2));
-};
-
-/**
- * Returns the cosine of this complex number.
- *
- * @return {Complex} the cosine of this complex number.
- */
-Complex.prototype.cos = function () {
-  var E = new Complex(Math.E, 0);
-  var i = new Complex(0, 1);
-  var negativeI = new Complex(0, -1);
-  var numerator = E.complexPow(i.multiply(this)).add(E.complexPow(negativeI.multiply(this)));
-
-  return numerator.divide(new Complex(2, 0));
-};
-
-/**
- * Returns the tangent of this complex number.
- *
- * @return {Complex} the tangent of this complex number.
- */
-Complex.prototype.tan = function () {
-  return this.sin().divide(this.cos());
-};
-
-/**
- * Checks for equality between this complex number and another
- * within a given range defined by epsilon.
- *
- * @param {Complex} complex number to check this number against.
- * @param {Number} epsilon
- * @return {boolean} true if equal within epsilon, false otherwise
- */
-Complex.prototype.equals = function (complex, epsilon) {
-  return basic.numbersEqual(this.re, complex.re, epsilon) &&
-    basic.numbersEqual(this.im, complex.im, epsilon);
-};
-
-module.exports = Complex;
-
-},{"../numbers":2}],6:[function(require,module,exports){
-/**
- * dsp.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-var numbers = require('../numbers');
-var Complex = numbers.complex;
-var dsp = exports;
-
-/**
- * Returns an array composed of elements from arr, starting at index start
- * and counting by step.
- *
- * @param {Array} Input array.
- * @param {Number} Starting array index.
- * @param {Number} Step size.
- * @return {Array} Resulting sub-array.
- */
-dsp.segment = function (arr, start, step) {
-  var result = [];
-
-  for (var i = start; i < arr.length; i += step) {
-    result.push(arr[i]);
-  }
-
-  return result;
-};
-
-/**
- * Returns an array of complex numbers representing the frequency spectrum
- * of real valued time domain sequence x. (x.length must be integer power of 2)
- * Inspired by http://rosettacode.org/wiki/Fast_Fourier_transform#Python
- *
- * @param {Array} Real-valued series input, eg. time-series.
- * @return {Array} Array of complex numbers representing input signal in Fourier domain.
- */
-dsp.fft = function (x) {
-  var N = x.length;
-
-  if (N <= 1) {
-    return [new Complex(x[0], 0)];
-  }
-
-  if (Math.log(N) / Math.LN2 % 1 !== 0) {
-    throw new Error('Array length must be integer power of 2');
-  }
-
-  var even = dsp.fft(dsp.segment(x, 0, 2));
-  var odd = dsp.fft(dsp.segment(x, 1, 2));
-  var res = [],
-    Nby2 = N / 2;
-
-  for (var k = 0; k < N; k++) {
-    var tmpPhase = -2 * Math.PI * k / N;
-    var phasor = new Complex(Math.cos(tmpPhase), Math.sin(tmpPhase));
-    if (k < Nby2) {
-      res[k] = even[k].add(phasor.multiply(odd[k]));
-    } else {
-      res[k] = even[k - Nby2].subtract(phasor.multiply(odd[k - Nby2]));
-    }
-  }
-
-  return res;
-};
-
-},{"../numbers":2}],7:[function(require,module,exports){
-/**
- * generators.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski, Kartik Talwar
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-var generate = exports;
-
-/**
- * Fast Fibonacci Implementation
- *
- * @param {Number} number to calculate
- * @return {Number} nth fibonacci number
- */
-generate.fibonacci = function (n) {
-  // Adapted from
-  // http://bosker.wordpress.com/2011/04/29/the-worst-algorithm-in-the-world/
-
-  var bitSystem = function (n) {
-    var bit, bits = [];
-
-    while (n > 0) {
-      bit = (n < 2) ? n : n % 2;
-      n = Math.floor(n / 2);
-      bits.push(bit);
-    }
-
-    return bits.reverse();
-  };
-
-  var a = 1;
-  var b = 0;
-  var c = 1;
-  var system = bitSystem(n);
-  var temp;
-
-  for (var i = 0; i < system.length; i++) {
-    var bit = system[i];
-    if (bit) {
-      temp = [(a + c) * b, (b * b) + (c * c)];
-      a = temp[0];
-      b = temp[1];
-    } else {
-      temp = [(a * a) + (b * b), (a + c) * b];
-      a = temp[0];
-      b = temp[1];
-    }
-
-    c = a + b;
-  }
-
-  return b;
-};
-
-/**
- * Populate the given array with a Collatz Sequence.
- *
- * @param {Number} first number.
- * @param {Array} arrary to be populated.
- * @return {Array} array populated with Collatz sequence
- */
-generate.collatz = function (n, result) {
-  result.push(n);
-
-  if (n === 1) {
-    return;
-  } else if (n % 2 === 0) {
-    generate.collatz(n / 2, result);
-  } else {
-    generate.collatz(3 * n + 1, result);
-  }
-};
-
-},{}],8:[function(require,module,exports){
-/**
- * matrix.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-var matrix = exports;
-
-var ERROR_MATRIX_NOT_SQUARE = 'Matrix must be square.',
-  ERROR_VECTOR_NOT_2D = 'Only two dimensional operations are supported at this time.';
-
-/**
- * Check to see if a point is 2D. Used in all 2D vector functions.
- * Throw error if it's not.
- *
- * @param {Array} point in question.
- * @return {undefined} nothing is returned.
- */
-matrix._check2DVector = function (point) {
-  if (point.length !== 2) {
-    throw new Error(ERROR_VECTOR_NOT_2D);
-  }
-};
-
-/**
- * Return a deep copy of the input matrix.
- *
- * @param {Array} matrix to copy.
- * @return {Array} copied matrix.
- */
-matrix.deepCopy = function (arr) {
-  if (!Array.isArray(arr)) {
-    throw new Error('Input must be a matrix.');
-  } else if (arr[0][0] === undefined) {
-    throw new Error('Input cannot be a vector.');
-  }
-  var result = new Array(arr.length);
-
-  for (var i = 0; i < arr.length; i++) {
-    result[i] = arr[i].slice();
-  }
-
-  return result;
-};
-
-/**
- * Return true if matrix is square, false otherwise.
- *
- * @param {Array} arr
- * @return {Boolean}
- */
-matrix.isSquare = function (arr) {
-  if (!Array.isArray(arr)) {
-    throw new Error('Input must be a matrix.');
-  } else if (arr[0][0] === undefined) {
-    throw new Error('Input cannot be a vector.');
-  }
-  var rows = arr.length;
-
-  for (var i = 0; i < rows; i++) {
-    if (arr[i].length !== rows) return false;
-  }
-
-  return true;
-};
-
-/**
- * Add two matrices together.  Matrices must be of same dimension.
- *
- * @param {Array} matrix A.
- * @param {Array} matrix B.
- * @return {Array} summed matrix.
- */
-matrix.addition = function (arrA, arrB) {
-  if (arrA.length !== arrB.length || arrA[0].length !== arrB[0].length) {
-    throw new Error('Matrix mismatch');
-  }
-
-  var result = new Array(arrA.length),
-    i;
-
-  if (!arrA[0].length) {
-    // The arrays are vectors.
-    for (i = 0; i < arrA.length; i++) {
-      result[i] = arrA[i] + arrB[i];
-    }
-  } else {
-    for (i = 0; i < arrA.length; i++) {
-      result[i] = new Array(arrA[i].length);
-
-      for (var j = 0; j < arrA[i].length; j++) {
-        result[i][j] = arrA[i][j] + arrB[i][j];
-      }
-    }
-  }
-
-  return result;
-};
-
-/**
- * Subtract one matrix from another (A - B).  Matrices must be of same dimension.
- *
- * @param {Array} matrix A.
- * @param {Array} matrix B.
- * @return {Array} subtracted matrix.
- */
-matrix.subtraction = function (arrA, arrB) {
-  if (arrA.length !== arrB.length || arrA[0].length !== arrB[0].length) {
-    throw new Error("Matrix mismatch");
-  }
-
-  var result = new Array(arrA.length),
-    i;
-
-  if (!arrA[0].length) {
-    // The arrays are vectors.
-    for (i = 0; i < arrA.length; i++) {
-      result[i] = arrA[i] - arrB[i];
-    }
-  } else {
-    for (i = 0; i < arrA.length; i++) {
-      result[i] = new Array(arrA[i].length);
-
-      for (var j = 0; j < arrA[i].length; j++) {
-        result[i][j] = arrA[i][j] - arrB[i][j];
-      }
-    }
-  }
-
-  return result;
-};
-
-/**
- * Scalar multiplication on an matrix.
- *
- * @param {Array} matrix.
- * @param {Number} scalar.
- * @return {Array} updated matrix.
- */
-matrix.scalar = function (arr, val) {
-  for (var i = 0; i < arr.length; i++) {
-    for (var j = 0; j < arr[i].length; j++) {
-      arr[i][j] = val * arr[i][j];
-    }
-  }
-
-  return arr;
-};
-
-/**
- * Transpose a matrix.
- *
- * @param {Array} matrix.
- * @return {Array} transposed matrix.
- */
-matrix.transpose = function (arr) {
-  var result = new Array(arr[0].length);
-
-  for (var i = 0; i < arr[0].length; i++) {
-    result[i] = new Array(arr.length);
-
-    for (var j = 0; j < arr.length; j++) {
-      result[i][j] = arr[j][i];
-    }
-  }
-
-  return result;
-};
-
-/**
- * Create an identity matrix of dimension n x n.
- *
- * @param {Number} dimension of the identity array to be returned.
- * @return {Array} n x n identity matrix.
- */
-matrix.identity = function (n) {
-  var result = new Array(n);
-
-  for (var i = 0; i < n; i++) {
-    result[i] = new Array(n);
-    for (var j = 0; j < n; j++) {
-      result[i][j] = (i === j) ? 1 : 0;
-    }
-  }
-
-  return result;
-};
-
-/**
- * Evaluate dot product of two vectors.  Vectors must be of same length.
- *
- * @param {Array} vector.
- * @param {Array} vector.
- * @return {Array} dot product.
- */
-matrix.dotproduct = function (vectorA, vectorB) {
-  if (vectorA.length !== vectorB.length) {
-    throw new Error("Vector mismatch");
-  }
-
-  var result = 0;
-  for (var i = 0; i < vectorA.length; i++) {
-    result += vectorA[i] * vectorB[i];
-  }
-  return result;
-};
-
-/**
- * Multiply two matrices. They must abide by standard matching.
- *
- * e.g. A x B = (m x n) x (n x m), where n, m are integers who define
- * the dimensions of matrices A, B.
- *
- * @param {Array} matrix.
- * @param {Array} matrix.
- * @return {Array} result of multiplied matrices.
- */
-matrix.multiply = function (arrA, arrB) {
-  if (arrA[0].length !== arrB.length) {
-    throw new Error("Matrix mismatch");
-  }
-
-  var result = new Array(arrA.length);
-
-  for (var x = 0; x < arrA.length; x++) {
-    result[x] = new Array(arrB[0].length);
-  }
-
-  var arrB_T = matrix.transpose(arrB);
-
-  for (var i = 0; i < result.length; i++) {
-    for (var j = 0; j < result[i].length; j++) {
-      result[i][j] = matrix.dotproduct(arrA[i], arrB_T[j]);
-    }
-  }
-  return result;
-};
-
-/**
- * Evaluate determinate of matrix.  Expect speed
- * degradation for matrices over 4x4.
- *
- * @param {Array} matrix.
- * @return {Number} determinant.
- */
-matrix.determinant = function (m) {
-  var numRow = m.length;
-  var numCol = m[0].length;
-  var det = 0;
-  var row, col;
-  var diagLeft, diagRight;
-
-  if (!matrix.isSquare(m)) {
-    throw new Error(ERROR_MATRIX_NOT_SQUARE);
-  }
-
-  if (numRow === 1) {
-    return m[0][0];
-  } else if (numRow === 2) {
-    return m[0][0] * m[1][1] - m[0][1] * m[1][0];
-  }
-
-  for (col = 0; col < numCol; col++) {
-    diagLeft = m[0][col];
-    diagRight = m[0][col];
-
-    for (row = 1; row < numRow; row++) {
-      diagRight *= m[row][(((col + row) % numCol) + numCol) % numCol];
-      diagLeft *= m[row][(((col - row) % numCol) + numCol) % numCol];
-    }
-
-    det += diagRight - diagLeft;
-  }
-
-  return det;
-};
-
-/**
- * Returns a LUP decomposition of the given matrix such that:
- *
- * A*P = L*U
- *
- * Where
- * A is the input matrix
- * P is a pivot matrix
- * L is a lower triangular matrix
- * U is a upper triangular matrix
- *
- * This method returns an array of three matrices such that:
- *
- * matrix.luDecomposition(array) = [L, U, P]
- *
- * @param {Array} arr
- * @return {Array} array of matrices [L, U, P]
- */
-matrix.lupDecomposition = function (arr) {
-  if (!matrix.isSquare(arr)) {
-    throw new Error(ERROR_MATRIX_NOT_SQUARE);
-  }
-
-  var size = arr.length;
-
-  var LU = matrix.deepCopy(arr);
-  var P = matrix.transpose(matrix.identity(size));
-  var currentRow;
-  var currentColumn = new Array(size);
-
-  this.getL = function (a) {
-    var m = a[0].length;
-    var L = matrix.identity(m);
-
-    for (var i = 0; i < m; i++) {
-      for (var j = 0; j < m; j++) {
-        if (i > j) {
-          L[i][j] = a[i][j];
-        }
-      }
-    }
-
-    return L;
-  };
-
-  this.getU = function (a) {
-    var m = a[0].length;
-    var U = matrix.identity(m);
-
-    for (var i = 0; i < m; i++) {
-      for (var j = 0; j < m; j++) {
-        if (i <= j) {
-          U[i][j] = a[i][j];
-        }
-      }
-    }
-
-    return U;
-  };
-
-  for (var j = 0; j < size; j++) {
-    var i;
-    for (i = 0; i < size; i++) {
-      currentColumn[i] = LU[i][j];
-    }
-
-    for (i = 0; i < size; i++) {
-      currentRow = LU[i];
-
-      var minIndex = Math.min(i, j);
-      var s = 0;
-
-      for (var k = 0; k < minIndex; k++) {
-        s += currentRow[k] * currentColumn[k];
-      }
-
-      currentRow[j] = currentColumn[i] -= s;
-    }
-
-    //Find pivot
-    var pivot = j;
-    for (i = j + 1; i < size; i++) {
-      if (Math.abs(currentColumn[i]) > Math.abs(currentColumn[pivot])) {
-        pivot = i;
-      }
-    }
-
-    if (pivot !== j) {
-      LU = matrix.rowSwitch(LU, pivot, j);
-      P = matrix.rowSwitch(P, pivot, j);
-    }
-
-    if (j < size && LU[j][j] !== 0) {
-      for (i = j + 1; i < size; i++) {
-        LU[i][j] /= LU[j][j];
-      }
-    }
-  }
-
-  return [this.getL(LU), this.getU(LU), P];
-};
-
-/**
- * Rotate a two dimensional vector by degree.
- *
- * @param {Array} point.
- * @param {Number} degree.
- * @param {String} direction - clockwise or counterclockwise.
- * @return {Array} vector.
- */
-matrix.rotate = function (point, degree, direction) {
-  matrix._check2DVector(point);
-
-  var negate = direction === 'clockwise' ? -1 : 1;
-  var radians = degree * (Math.PI / 180);
-
-  var transformation = [
-    [Math.cos(radians), -1 * negate * Math.sin(radians)],
-    [negate * Math.sin(radians), Math.cos(radians)]
-  ];
-
-  return matrix.multiply(transformation, point);
-};
-
-/**
- * Scale a two dimensional vector by scale factor x and scale factor y.
- *
- * @param {Array} point.
- * @param {Number} sx.
- * @param {Number} sy.
- * @return {Array} vector.
- */
-matrix.scale = function (point, sx, sy) {
-  matrix._check2DVector(point);
-
-  var transformation = [
-    [sx, 0],
-    [0, sy]
-  ];
-
-  return matrix.multiply(transformation, point);
-};
-
-/**
- * Shear a two dimensional vector by shear factor k.
- *
- * @param {Array} point.
- * @param {Number} k.
- * @param {String} direction - xaxis or yaxis.
- * @return {Array} vector.
- */
-matrix.shear = function (point, k, direction) {
-  matrix._check2DVector(point);
-
-  var xplaceholder = direction === 'xaxis' ? k : 0;
-  var yplaceholder = direction === 'yaxis' ? k : 0;
-
-  var transformation = [
-    [1, xplaceholder],
-    [yplaceholder, 1]
-  ];
-
-  return matrix.multiply(transformation, point);
-};
-
-/**
- * Perform an affine transformation on the given vector.
- *
- * @param {Array} point.
- * @param {Number} tx.
- * @param {Number} ty.
- * @return {Array} vector.
- */
-matrix.affine = function (point, tx, ty) {
-  matrix._check2DVector(point);
-  var transformation = [
-    [1, 0, tx],
-    [0, 1, ty],
-    [0, 0, 1]
-  ];
-
-  var newpoint = [
-    [point[0][0]],
-    [point[1][0]],
-    [1]
-  ];
-
-  var transformed = matrix.multiply(transformation, newpoint);
-
-  return [
-    [transformed[0][0]],
-    [transformed[1][0]]
-  ];
-};
-
-/**
- * Scales a row of a matrix by a factor and returns the updated matrix.
- * Used in row reduction functions.
- *
- * @param {Array} matrix.
- * @param {Number} row.
- * @param {Number} scale.
- */
-matrix.rowScale = function (m, row, scale) {
-  var result = new Array(m.length);
-
-  for (var i = 0; i < m.length; i++) {
-    result[i] = new Array(m[i].length);
-
-    for (var j = 0; j < m[i].length; j++) {
-      if (i === row) {
-        result[i][j] = scale * m[i][j];
-      } else {
-        result[i][j] = m[i][j];
-      }
-    }
-  }
-
-  return result;
-};
-
-/**
- * Swaps two rows of a matrix  and returns the updated matrix.
- * Used in row reduction functions.
- *
- * @param {Array} matrix.
- * @param {Number} row1.
- * @param {Number} row2.
- */
-matrix.rowSwitch = function (m, row1, row2) {
-  var result = new Array(m.length);
-
-  for (var i = 0; i < m.length; i++) {
-    result[i] = new Array(m[i].length);
-
-    for (var j = 0; j < m[i].length; j++) {
-      if (i === row1) {
-        result[i][j] = m[row2][j];
-      } else if (i === row2) {
-        result[i][j] = m[row1][j];
-      } else {
-        result[i][j] = m[i][j];
-      }
-    }
-  }
-  return result;
-};
-
-/**
- * Adds a multiple of one row to another row
- * in a matrix and returns the updated matrix.
- * Used in row reduction functions.
- *
- * @param {Array} matrix.
- * @param {Number} row1.
- * @param {Number} row2.
- */
-matrix.rowAddMultiple = function (m, from, to, scale) {
-  var result = new Array(m.length);
-
-  for (var i = 0; i < m.length; i++) {
-    result[i] = new Array(m[i].length);
-
-    for (var j = 0; j < m[i].length; j++) {
-      if (i === to) {
-        result[to][j] = m[to][j] + scale * m[from][j];
-      } else {
-        result[i][j] = m[i][j];
-      }
-    }
-  }
-
-  return result;
-};
-
-/**
- * Gauss-Jordan Elimination
- *
- * @param {Array} matrix.
- * @param {Number} epsilon.
- * @return {Array} RREF matrix.
- */
-matrix.GaussJordanEliminate = function (m, epsilon) {
-  // Translated from:
-  // http://elonen.iki.fi/code/misc-notes/python-gaussj/index.html
-  var eps = (typeof epsilon === 'undefined') ? 1e-10 : epsilon;
-
-  var h = m.length;
-  var w = m[0].length;
-  var y = -1;
-  var y2, x, c;
-
-  while (++y < h) {
-    // Pivot.
-    var maxrow = y;
-    y2 = y;
-    while (++y2 < h) {
-      if (Math.abs(m[y2][y]) > Math.abs(m[maxrow][y]))
-        maxrow = y2;
-    }
-    var tmp = m[y];
-    m[y] = m[maxrow];
-    m[maxrow] = tmp;
-
-    // Singular
-    if (Math.abs(m[y][y]) <= eps) {
-      return m;
-    }
-
-    // Eliminate column
-    y2 = y;
-    while (++y2 < h) {
-      c = m[y2][y] / m[y][y];
-      x = y - 1;
-      while (++x < w) {
-        m[y2][x] -= m[y][x] * c;
-      }
-    }
-  }
-
-  // Backsubstitute.
-  y = h;
-  while (--y >= 0) {
-    c = m[y][y];
-    y2 = -1;
-    while (++y2 < y) {
-      x = w;
-      while (--x >= y) {
-        m[y2][x] -= m[y][x] * m[y2][y] / c;
-      }
-    }
-    m[y][y] /= c;
-
-    // Normalize row
-    x = h - 1;
-    while (++x < w) {
-      m[y][x] /= c;
-    }
-  }
-
-  return m;
-};
-
-/**
- * Alias to Gauss-Jordan Elimination
- *
- * @param {Array} matrix.
- * @param {Number} epsilon.
- * @return {Array} RREF matrix.
- */
-matrix.rowReduce = function (m, epsilon) {
-  return matrix.GaussJordanEliminate(m, epsilon);
-};
-
-/**
- * nxn matrix inversion
- *
- * @param {Array} matrix.
- * @return {Array} inverted matrix.
- */
-matrix.inverse = function (m) {
-  if (!matrix.isSquare(m)) {
-    throw new Error(ERROR_MATRIX_NOT_SQUARE);
-  }
-
-  var n = m.length,
-    identity = matrix.identity(n),
-    i;
-
-  // AI
-  for (i = 0; i < n; i++) {
-    m[i] = m[i].concat(identity[i]);
-  }
-
-  // inv(IA)
-  m = matrix.GaussJordanEliminate(m);
-
-  // inv(A)
-  for (i = 0; i < n; i++) {
-    m[i] = m[i].slice(n);
-  }
-
-  return m;
-};
-
-/**
- * Get a column of a matrix as a vector.
- *
- * @param {Array} matrix
- * @param {Int} column number
- * @return {Array} column
- */
-matrix.getCol = function (M, n) {
-  var result = new Array(M.length);
-  if (n < 0) {
-    throw new Error('The specified column must be a positive integer.');
-  } else if (n >= M[0].length) {
-    throw new Error('The specified column must be between 0 and the number of columns - 1.');
-  }
-  for (var i = 0; i < M.length; i++) {
-    result[i] = M[i][n];
-  }
-  return result;
-};
-
-/**
- * Reorder the rows of a matrix based off an array of numbers.
- *
- * @param {Array} matrix
- * @param {Array} desired re-ordering
- * @return {Array} reordered matrix
- */
-matrix.reorderRows = function (M, L) {
-  var result = [];
-  if (L === undefined) {
-    throw new Error('A reordering array must be entered.');
-  } else if (L.length !== M.length) {
-    throw new Error('The reordered matrix must have the same number of rows as the original matrix.');
-  }
-  for (var i = 0; i < L.length; i++) {
-    if (L[i] < 0) {
-      throw new Error('The desired order of the rows must be positive integers.');
-    } else if (L[i] >= L.length) {
-      throw new Error('The desired order of the rows must start at 0 and end at the number of rows - 1.');
-    } else {
-      result.push(M[L[i]]);
-    }
-  }
-  return result;
-};
-
-/**
- * Reorder the columns of a matrix based off an array of numbers.
- *
- * @param {Array} matrix
- * @param {Array} desired re-ordering
- * @return {Array} reordered matrix
- */
-matrix.reorderCols = function (M, L) {
-  var result = [];
-  if (L === undefined) {
-    throw new Error('Please enter a desired reordering array.');
-  } else if (L.length !== M[0].length) {
-    throw new Error('The reordered matrix must have the same number of columns as the original matrix.');
-  }
-  for (var i = 0; i < L.length; i++) {
-    if (L[i] < 0) {
-      throw new Error('The desired order of the columns must be positive integers.');
-    } else if (L[i] >= L.length) {
-      throw new Error('The desired order of the columns must start at 0 and end at the number of columns - 1.');
-    } else {
-      result.push(matrix.getCol(M, L[i]));
-    }
-  }
-  return matrix.transpose(result);
-};
-
-/**
- * Reverse the rows of a matrix.
- *
- * @param {Array} matrix
- * @return {Array} reversed matrix
- */
-matrix.reverseRows = function (M) {
-  var L = [];
-  for (var i = M.length - 1; i > -1; i--) {
-    L.push(i);
-  }
-  return matrix.reorderRows(M, L);
-};
-
-/**
- * Reverse the columns of a matrix.
- *
- * @param {Array} matrix
- * @return {Array} reversed matrix
- */
-matrix.reverseCols = function (M) {
-  var L = [];
-  for (var i = M.length - 1; i > -1; i--) {
-    L.push(i);
-  }
-  return matrix.reorderCols(M, L);
-};
-
-/**
- * Create a n x m matrix of zeros.
- *
- * @param {Int} number of rows
- * @param {Int} number of columns
- * @return {Array} matrix
- */
-matrix.zeros = function (n, m) {
-  var M = new Array(n);
-  if (n < 1 || m < 1) {
-    throw new Error('The matrix dimensions must be positive integers.');
-  }
-  n = Math.ceil(n);
-  m = Math.ceil(m);
-  for (var i = 0; i < n; i++) {
-    var empty = new Array(m);
-    for (var j = 0; j < m; j++) {
-      empty[j] = 0;
-    }
-    M[i] = empty;
-  }
-  return M;
-};
-
-/**
- * Create a zigzag matrix. point represents the starting corner,
- * dir represents which direction to begin moving in. There are
- * 8 possible permutations for this. Rounds dimension upwards.
- *
- * @param {Int} size of (square) matrix
- * @param {String} corner (TL,TR,BL,BR)
- * @param {String} direction (V,H)
- * @return {Array} zigzag matrix.
- */
-matrix.zigzag = function (n, point, dir) {
-  if (n <= 1) {
-    throw new Error('Matrix size must be at least 2x2.');
-  }
-  n = Math.ceil(n);
-  var mat = matrix.zeros(n, n);
-
-  //create one kind of permutation - all other permutations can be 
-  //created from this particular permutation through transformations
-  var BRH = function (M) { //starting at bottom right, moving horizontally
-    var jump = false,
-      tl = n * n,
-      br = 1,
-      inc = 1,
-      row, col, val, i, j;
-    M[0][0] = tl;
-    M[n - 1][n - 1] = br;
-
-    for (i = 1; i < n; i++) {
-      //generate top/bottom row
-      if (jump) {
-        tl -= 4 * inc;
-        br += 4 * inc;
-        inc++;
-      } else {
-        tl--;
-        br++;
-      }
-
-      M[0][i] = tl;
-      M[n - 1][n - 1 - i] = br;
-      jump = !jump;
-    }
-
-    var dec = true;
-    for (i = 1; i < n; i++) {
-      //iterate diagonally from top row
-      row = 0;
-      col = i;
-      val = M[row][col];
-
-      for (j = 1; j < i + 1; j++) {
-        if (dec) {
-          val -= 1;
-        } else {
-          val += 1;
-        }
-        row++;
-        col--;
-        M[row][col] = val;
-      }
-      dec = !dec;
-    }
-
-    if (n % 2 === 0) {
-      dec = true;
-    } else {
-      dec = false;
-    }
-    for (i = 1; i < n - 1; i++) {
-      //iterate diagonally from bottom row
-      row = n - 1;
-      col = i;
-      val = M[row][col];
-
-      for (j = 1; j < n - i; j++) {
-        if (dec) {
-          val--;
-        } else {
-          val++;
-        }
-        row--;
-        col++;
-        M[row][col] = val;
-      }
-      dec = !dec;
-    }
-    return M;
-  };
-
-  var BRV = function (M) { //starting at bottom right, moving vertically
-    return matrix.transpose(BRH(M));
-  };
-
-  var BLH = function (M) { //starting at bottom left, moving horizontally
-    return matrix.reverseCols(BRH(M));
-  };
-
-  var BLV = function (M) { //starting at bottom left, moving vertically
-    return matrix.reverseRows(TLV(BLH(M)));
-  };
-
-  var TRH = function (M) { //starting at top right, moving horizontally
-    return matrix.reverseRows(BRH(M));
-  };
-
-  var TRV = function (M) { //starting at top right, moving vertically
-    return matrix.reverseRows(BRV(M));
-  };
-
-  var TLH = function (M) { //starting at top left, moving horizontally
-    return matrix.reverseCols(matrix.reverseRows(BRH(M)));
-  };
-
-  var TLV = function (M) { //starting at top left, moving vertically
-    return matrix.transpose(TLH(M));
-  };
-
-  if ((point === 'BR') && (dir === 'H')) {
-    return (BRH(mat));
-  } else if ((point === 'BR') && (dir === 'V')) {
-    return (BRV(mat));
-  } else if ((point === 'BL') && (dir === 'H')) {
-    return (BLH(mat));
-  } else if ((point === 'BL') && (dir === 'V')) {
-    return (BLV(mat));
-  } else if ((point === 'TR') && (dir === 'H')) {
-    return (TRH(mat));
-  } else if ((point === 'TR') && (dir === 'V')) {
-    return (TRV(mat));
-  } else if ((point === 'TL') && (dir === 'H')) {
-    return (TLH(mat));
-  } else if ((point === 'TL') && (dir === 'V')) {
-    return (TLV(mat));
-  } else {
-    throw new Error('Enter the direction (V,H) and corner (BR,BL,TR,TL) correctly.');
-  }
-};
-
-/**
- * Calculate the p-norm of a vector. Specific cases include:
- *   - Infinity (largest absolute entry)
- *   - -Infinity (smallest absolute entry)
- *
- * @param {Array} vector
- * @param {Number} the value of p (norm order)
- * @return {Number} the p-norm of v
- */
-matrix.vectorNorm = function (v, p) {
-  // calculate the p'th norm of a vector v
-  if (!(Array.isArray(v)) || (v.length === 0)) {
-    throw new Error('Vector must be an array of at least length 1.');
-  } else if ((typeof p !== 'undefined') && (typeof p !== 'number')) {
-    throw new Error('Norm order must be a number.');
-  }
-
-  p = (typeof p === 'undefined') ? 2 : p;
-  var n = v.length,
-    ans = 0,
-    term, i;
-
-  switch (p) {
-
-  case Infinity:
-    for (i = 0; i < n; i++) {
-      term = Math.abs(v[i]);
-      if (term > ans) {
-        ans = term;
-      }
-    }
-    break;
-
-  case -Infinity:
-    ans = Infinity;
-    for (i = 0; i < n; i++) {
-      term = Math.abs(v[i]);
-      if (term < ans) {
-        ans = term;
-      }
-    }
-    break;
-
-  default:
-    for (i = 0; i < n; i++) {
-      ans += Math.pow(Math.abs(v[i]), p);
-    }
-    ans = Math.pow(ans, 1 / p);
-    break;
-  }
-
-  return ans;
-};
-
-/**
- * Calculate the p-norm of a matrix. Specific cases include:
- *   - Infinity (largest absolute row)
- *   - -Infinity (smallest absolute row)
- *   - 1 (largest absolute column)
- *   - -1 (smallest absolute column)
- *   - 2 (largest singular value)
- *   - -2 (smallest singular value)
- *   - null (Frobenius norm)
- *
- * @param {Array} vector
- * @param {Number} the value of p (norm order)
- * @return {Number} the p-norm of M
- */
-matrix.matrixNorm = function (M, p) {
-  if (!(Array.isArray(M)) || (M.length === 0) || !Array.isArray(M[0])) {
-    throw new Error('Matrix must be an array of at least length 1.');
-  } else if ((typeof p !== 'undefined') && (typeof p !== 'number') && (p !== null)) {
-    throw new Error('Norm order must be a number or null.');
-  }
-
-  p = (typeof p === 'undefined') ? null : p;
-  var m = M.length, //number of rows
-    n = M[0].length, //number of cols
-    ans = 0,
-    term, i, j;
-
-  switch (p) {
-
-    // the largest value when absolute-ing and summing each row
-  case Infinity:
-    for (i = 0; i < m; i++) {
-      term = 0;
-
-      for (j = 0; j < n; j++) {
-        term += Math.abs(M[i][j]);
-      }
-
-      if (term > ans) {
-        ans = term;
-      }
-    }
-    break;
-
-    // the smallest value when absolute-ing and summing each row
-  case -Infinity:
-    ans = Infinity;
-    for (i = 0; i < m; i++) {
-      term = 0;
-
-      for (j = 0; j < n; j++) {
-        term += Math.abs(M[i][j]);
-      }
-
-      if (term < ans) {
-        ans = term;
-      }
-    }
-    break;
-
-    // the largest value when absolute-ing and summing each column
-  case 1:
-    for (i = 0; i < n; i++) {
-      term = 0;
-
-      for (j = 0; j < m; j++) {
-        term += Math.abs(M[j][i]);
-      }
-
-      if (term > ans) {
-        ans = term;
-      }
-    }
-    break;
-
-    // the smallest value when absolute-ing and summing each column
-  case -1:
-    ans = Infinity;
-    for (i = 0; i < n; i++) {
-      term = 0;
-
-      for (j = 0; j < m; j++) {
-        term += Math.abs(M[j][i]);
-      }
-
-      if (term < ans) {
-        ans = term;
-      }
-    }
-    break;
-
-    // the Frobenius norm
-  case null:
-    for (i = 0; i < m; i++) {
-      for (j = 0; j < n; j++) {
-        ans += Math.pow(M[i][j], 2);
-      }
-    }
-    ans = Math.pow(ans, 0.5);
-    break;
-
-    // largest singular value
-  case 2:
-    throw new Error("Singular values are not yet supported in numbers.js.");
-
-    // smallest singular value
-  case -2:
-    throw new Error("Singular values are not yet supported in numbers.js.");
-
-    // entry-wise norm; analogous to that of the entry-wise vector norm.
-  default:
-    for (i = 0; i < m; i++) {
-      for (j = 0; j < n; j++) {
-        ans += Math.pow(Math.abs(M[i][j]), p);
-      }
-    }
-    ans = Math.pow(ans, 1 / p);
-
-  }
-
-  return ans;
-};
-
-/**
- * Determines if a matrix has an upper bandwidth of q.
- *
- * @param {Array} matrix
- * @param {Number} upper bandwidth
- * @return {Boolean} true if upper bandwidth is q; false otherwise
- */
-matrix.isUpperBand = function (M, q) {
-  if (!Array.isArray(M) || !Array.isArray(M[0]) || M.length < 2) {
-    throw new Error('Matrix must be an array of at least dimension 2.');
-  } else if (typeof q !== 'number' || q < 0 || (q % 1) !== 0) {
-    throw new Error('Upper bandwidth must be a nonzero integer.');
-  }
-  var result = true,
-    n = M[0].length,
-    cnt = 0;
-
-  for (var i = q + 1; i < n; i++) {
-    if (M[cnt][i] !== 0) {
-      result = false;
-      break;
-    }
-    cnt++;
-  }
-  return result;
-};
-
-/**
- * Determines if a matrix has an lower bandwidth of p.
- *
- * @param {Array} matrix
- * @param {Number} lower bandwidth
- * @return {Boolean} true if lower bandwidth is p; false otherwise
- */
-matrix.isLowerBand = function (M, p) {
-  if (!Array.isArray(M) || !Array.isArray(M[0]) || M.length < 2) {
-    throw new Error('Matrix must be an array of at least dimension 2.');
-  } else if (typeof p !== 'number' || p < 0 || (p % 1) !== 0) {
-    throw new Error('Lower bandwidth must be a nonzero integer.');
-  }
-  var result = true,
-    m = M.length,
-    cnt = 0;
-
-  for (var i = p + 1; i < m; i++) {
-    if (M[i][cnt] !== 0) {
-      result = false;
-      break;
-    }
-    cnt++;
-  }
-  return result;
-};
-
-/**
- * Add all of the elements in an array together except for the i'th one.
- * This is a helper function for determining diagonal dominance, and it
- * should be noted that each element is passed to Math.abs() beforehand.
- *
- * @param {Array} array
- * @param {Int} index of element to ignore.
- * @return {Number} sum.
- */
-var sumNondiagonalElements = function (arr, i) {
-  var sum = 0,
-    j;
-
-  for (j = 0; j < i; j++) {
-    sum += Math.abs(arr[j]);
-  }
-  for (j = i + 1; j < arr.length; j++) {
-    sum += Math.abs(arr[j]);
-  }
-  return sum;
-};
-
-/**
- * Determines if a matrix is (weak) row diagonally-dominant.
- *
- * @param {Array} matrix
- * @return {Boolean} true if so, false otherwise.
- */
-matrix.isRowDD = function (M) {
-  var n = M.length;
-  if (!matrix.isSquare(M)) {
-    throw new Error(ERROR_MATRIX_NOT_SQUARE);
-  }
-
-  for (var i = 0; i < n; i++) {
-    var row = M[i],
-      diag = row[i],
-      sum = sumNondiagonalElements(row, i);
-
-    if (Math.abs(diag) < sum) {
-      return false;
-    }
-  }
-  return true;
-};
-
-/**
- * Determines if a matrix is strictly row diagonally-dominant.
- *
- * @param {Array} matrix
- * @return {Boolean} true if so, false otherwise.
- */
-matrix.isStrictlyRowDD = function (M) {
-  if (!matrix.isSquare(M)) {
-    throw new Error(ERROR_MATRIX_NOT_SQUARE);
-  }
-
-  var n = M.length;
-
-  for (var i = 0; i < n; i++) {
-    var row = M[i],
-      diag = row[i],
-      sum = sumNondiagonalElements(row, i);
-
-    if (Math.abs(diag) <= sum) {
-      return false;
-    }
-  }
-  return true;
-};
-
-/**
- * Determines if a matrix is (weak) column diagonally-dominant.
- *
- * @param {Array} matrix
- * @return {Boolean} true if so, false otherwise.
- */
-matrix.isColumnDD = function (M) {
-  if (!matrix.isSquare) {
-    throw new Error(ERROR_MATRIX_NOT_SQUARE);
-  }
-
-  var n = M.length;
-
-  for (var i = 0; i < n; i++) {
-    var col = matrix.getCol(M, i),
-      diag = col[i],
-      sum = sumNondiagonalElements(col, i);
-
-    if (Math.abs(diag) < sum) {
-      return false;
-    }
-  }
-  return true;
-};
-
-/**
- * Determines if a matrix is strictly column diagonally-dominant.
- *
- * @param {Array} matrix
- * @return {Boolean} true if so, false otherwise.
- */
-matrix.isStrictlyColumnDD = function (M) {
-  if (!matrix.isSquare(M)) {
-    throw new Error(ERROR_MATRIX_NOT_SQUARE);
-  }
-
-  var n = M.length;
-
-  for (var i = 0; i < n; i++) {
-    var col = matrix.getCol(M, i),
-      diag = col[i],
-      sum = sumNondiagonalElements(col, i);
-
-    if (Math.abs(diag) <= sum) {
-      return false;
-    }
-  }
-  return true;
-};
-
-},{}],9:[function(require,module,exports){
-/**
- * prime.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-var basic = require('./basic');
-var prime = exports;
-
-/**
- * Determine if number is prime.
- * Adopted from http://www.javascripter.net/faq/numberisprime.htm
- *
- * @param {Number} number to evaluate.
- * @return {Boolean} return true if value is prime. false otherwise.
- */
-prime.simple = function (n) {
-  if (isNaN(n) || !isFinite(n) || n % 1 || n < 2) {
-    return false;
-  }
-  if (n % 2 === 0) {
-    return (n === 2);
-  }
-  if (n % 3 === 0) {
-    return (n === 3);
-  }
-  for (var i = 5, m = Math.sqrt(n); i <= m; i += 6) {
-    if ((n % i === 0) || (n % (i + 2) === 0)) {
-      return false;
-    }
-  }
-  return true;
-};
-/**
- * Returns the prime factors of a number.
- * More info (http://bateru.com/news/2012/05/code-of-the-day-javascript-prime-factors-of-a-number/)
- * Taken from Ratio.js
- *
- * @param {Number} num
- * @return {Array} an array of numbers
- * @example prime.factorization(20).join(',') === "2,2,5"
- **/
-prime.factorization = function (num) {
-  num = Math.floor(num);
-  var root;
-  var factors = [];
-  var x;
-  var sqrt = Math.sqrt;
-  var doLoop = 1 < num && isFinite(num);
-
-  while (doLoop) {
-    root = sqrt(num);
-    x = 2;
-    if (num % x) {
-      x = 3;
-      while ((num % x) && ((x += 2) < root)) {}
-    }
-
-    x = (root < x) ? num : x;
-    factors.push(x);
-    doLoop = (x !== num);
-    num /= x;
-  }
-
-  return factors;
-};
-
-/**
- * Determine if a number is prime in Polynomial time, using a randomized algorithm.
- * http://en.wikipedia.org/wiki/Miller-Rabin_primality_test
- *
- * @param {Number} number to Evaluate.
- * @param {Number} number to Determine accuracy rate (number of trials) default value = 20.
- * @return {Boolean} return true if value is prime. false otherwise.
- */
-prime.millerRabin = function (n, k) {
-  if (arguments.length === 1) k = 20;
-  if (n === 2) return true;
-  if (!basic.isInt(n) || n <= 1 || n % 2 === 0) return false;
-
-  var s = 0;
-  var d = n - 1;
-
-  while (true) {
-    var dm = basic.divMod(d, 2);
-    var quotient = dm[0];
-    var remainder = dm[1];
-
-    if (remainder === 1) break;
-
-    s += 1;
-    d = quotient;
-  }
-
-  var tryComposite = function (a) {
-    if (basic.powerMod(a, d, n) === 1) return false;
-
-    for (var i = 0; i < s; i++) {
-      if (basic.powerMod(a, Math.pow(2, i) * d, n) === n - 1) return false;
-    }
-
-    return true;
-  };
-
-  for (var i = 0; i < k; i++) {
-    var a = 2 + Math.floor(Math.random() * (n - 2 - 2));
-    if (tryComposite(a)) return false;
-  }
-
-  return true;
-};
-
-/**
- * Return a list of prime numbers from 1...n, inclusive.
- *
- * @param {Number} upper limit of test n.
- * @return {Array} list of values that are prime up to n.
- */
-prime.sieve = function (n) {
-  if (n < 2) return [];
-  var result = [2];
-  for (var i = 3; i <= n; i++) {
-    var notMultiple = false;
-
-    for (var j in result) {
-      notMultiple = notMultiple || (0 === i % result[j]);
-    }
-
-    if (!notMultiple) {
-      result.push(i);
-    }
-  }
-
-  return result;
-};
-
-/**
- * Determine if two numbers are coprime.
- *
- * @param {Number} number.
- * @param {Number} number.
- * @return {Boolean} whether the values are coprime or not.
- */
-prime.coprime = function (a, b) {
-  return basic.gcd(a, b) === 1;
-};
-
-/**
- * Determine if a number is a perfect power.
- * Please note that this method does not find the minimal value of k where
- * m^k = n
- * http://en.wikipedia.org/wiki/Perfect_power
- *
- * @param {Number} value in question
- * @return {Array|Boolean} [m, k] if it is a perfect power, false otherwise
- */
-prime.getPerfectPower = function (n) {
-  var test = prime.getPrimePower(n);
-  if (test && test[1] > 1) return test;
-  return false;
-};
-
-/**
- * Determine if a number is a prime power and return the prime and the power.
- * http://en.wikipedia.org/wiki/Prime_power
- *
- * @param {Number} value in question
- * @return {Array|Boolean}  if it is a prime power, return [prime, power].
- */
-prime.getPrimePower = function (n) {
-  if (n < 2) return false;
-  if (prime.millerRabin(n)) return [n, 1];
-  if (n % 2 === 0) return [2, n.toString(2).length - 1];
-
-  var factors = prime.factorization(n);
-
-  if (!factors) return false;
-
-  var len = factors.length;
-
-  for (var i = 0; i < len; i++) {
-    var t = 0,
-      p = 0;
-
-    while (t <= n) {
-      t = Math.pow(factors[i], p);
-      if (t / n === 1) return [factors[i], p];
-      p++;
-    }
-  }
-
-  return false;
-};
-
-},{"./basic":3}],10:[function(require,module,exports){
-var random = exports;
-
-// random number generator.
-var rGen = Math.random;
-
-/**
- * Set the pseudo random number generator used by the random module.
- *
- * @param {Function} Random number generator
- */
-random.setGenerator = function (fn) {
-  if (typeof fn !== "function") {
-    throw new Error("Must pass a function");
-  }
-  rGen = fn;
-};
-/**
- * Return a random sample of values over a set of bounds with
- * a specified quantity.
- *
- * @param {Number} lower bound.
- * @param {Number} upper bound.
- * @param {Number} quantity of elements in random sample.
- * @return {Array} random sample.
- */
-random.sample = function (lower, upper, n) {
-  var sample = [];
-  sample.length = n;
-
-  for (var i = 0; i < n; i++) {
-    sample[i] = lower + (upper - lower) * rGen();
-  }
-  return sample;
-};
-
-/**
- * A pseudo-random number sampling method for generating pairs of independent,
- * standard, normally distributed (zero expectation, unit variance) random
- * numbers, given a source of uniformly distributed random numbers.
- * http://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform
- *
- * @param {Number} mu or mean
- * @param {Number} sigma or standard deviation
- * @return {Number} a value that is part of a normal distribution.
- */
-random.boxMullerTransform = function (mu, sigma) {
-  if (arguments.length <= 1) sigma = 1;
-  if (arguments.length === 0) mu = 0;
-  var u = 0,
-    v = 0,
-    s;
-
-  do {
-    u = rGen() * 2 - 1;
-    v = rGen() * 2 - 1;
-    s = u * u + v * v;
-  } while (s === 0 || s > 1);
-
-  var c = Math.sqrt(-2 * Math.log(s) / s),
-    x = u * c,
-    y = v * c;
-  x = mu + x * sigma;
-  y = mu + y * sigma;
-  return [x, y];
-};
-
-/**
- * A Random number that is along an irwin hall distribution.
- * http://en.wikipedia.org/wiki/Irwin-Hall_distribution
- *
- * @param {Number} max possible sum
- * @param {Number} number to subtract
- * @return {Number} random number along an irwin hall distribution.
- */
-random.irwinHall = function (n, sub) {
-  if (arguments.length === 1) sub = 0;
-  var sum = 0;
-  for (var i = 0; i < n; i++) sum += rGen();
-  return sum - sub;
-};
-
-/**
- * Returns a random value along a bates distribution from [a, b] or [0, 1].
- * http://en.wikipedia.org/wiki/Bates_distribution
- *
- * @param {Number} number of times summing
- * @param {Number} random maximum value (default is 1)
- * @param {Number} random minimum value (default is 0)
- * @return {Number} random number along an bates distribution.
- */
-random.bates = function (n, b, a) {
-  if (arguments.length <= 2) a = 0;
-  if (arguments.length === 1) b = 1;
-  var sum = 0;
-  for (var i = 0; i < n; i++) sum += (b - a) * rGen() + a;
-  return sum / n;
-};
-
-random.distribution = {};
-
-/**
- * Returns an array of size n that is an approximate normal distribution
- *
- * @param {Number} n size of returned array
- * @param {Number} mu or mean
- * @param {Number} sigma or standard deviation
- * @return {Array} array of size n of a normal distribution
- */
-random.distribution.normal = function (n, mu, sigma) {
-  if (arguments.length <= 2) sigma = 1;
-  if (arguments.length === 1) mu = 0;
-
-  return random.distribution.boxMuller(n, mu, sigma);
-};
-
-/**
- * Returns an array of size n that is an approximate log normal distribution
- *
- * @param {Number} n size of returned array
- * @param {Number} mu or mean
- * @param {Number} sigma or standard deviation
- * @return {Array} array of size n of a log normal distribution
- */
-random.distribution.logNormal = function (n, mu, sigma) {
-  if (arguments.length <= 2) sigma = 1;
-  if (arguments.length === 1) mu = 0;
-
-  var exponential = function (x) {
-    return Math.exp(x);
-  };
-
-  return random.distribution.boxMuller(n, mu, sigma).map(exponential);
-};
-
-/**
- * Returns an array of size n that is a normal distribution
- * leveraging the Box Muller Transform
- * http://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform
- *
- * @param {Number} n size of returned array
- * @param {Number} mu or mean
- * @param {Number} sigma or standard deviation
- * @param {Number} determine if the distribution will be polar coordinates.
- * @return {Array} array of size n of a normal distribution
- */
-random.distribution.boxMuller = function (n, mu, sigma, rc) {
-  if (arguments.length <= 3) rc = false;
-  if (arguments.length <= 2) sigma = 1;
-  if (arguments.length === 1) mu = 0;
-  var results = [];
-
-  for (var i = 0; i < n; i++) {
-    var randomBMT = random.boxMullerTransform(mu, sigma);
-    results.push((rc) ? randomBMT : randomBMT[0]);
-  }
-
-  return results;
-};
-
-/**
- * Returns an array of n that is an irwin hall distribution.
- * http://en.wikipedia.org/wiki/Irwin-Hall_distribution
- *
- * @param {Number} length of array
- * @param {Number} irwinHall max sum value (default is n)
- * @param {Number} irwinHall subtraction value (default is 0)
- * @return {Array} irwin hall distribution from [a, b]
- */
-random.distribution.irwinHall = function (n, m, sub) {
-  if (arguments.length <= 2) sub = 0;
-  if (arguments.length === 1) m = n;
-  var results = new Array(n);
-  for (var i = 0; i < n; i++) {
-    results[i] = random.irwinHall(m, sub);
-  }
-
-  return results;
-};
-
-/**
- * An approach to create a normal distribution,
- * that relies on the central limit theorem,
- * resulting in an approximately standard normal distribution
- * with bounds of (-6, 6)
- *
- * @param {Number} length of array
- * @return {Array} an array of an approximate normal distribution from [-6, 6] of length n.
- */
-random.distribution.irwinHallNormal = function (n) {
-  return random.distribution.irwinHall(n, 12, 6);
-};
-
-/**
- * Returns an array of n that is a bates distribution from
- * http://en.wikipedia.org/wiki/Bates_distribution
- *
- * @param {Number} length of array
- * @param {Number} max bates value (default is n)
- * @param {Number} minimum bound a (default is 0)
- * @return {Array} bates distribution from [a, b]
- */
-random.distribution.bates = function (n, b, a) {
-  if (arguments.length <= 2) a = 0;
-  if (arguments.length === 1) b = n;
-
-  var results = new Array(n);
-
-  for (var i = 0; i < n; i++) {
-    results[i] = random.bates(n, b, a);
-  }
-
-  return results;
-};
-
-},{}],11:[function(require,module,exports){
-/**
- * statistic.js
- * http://github.com/sjkaliski/numbers.js
- *
- * Copyright 2012 Stephen Kaliski
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-var basic = require('./basic');
-var statistic = exports;
-
-/**
- * Calculate the mean value of a set of numbers in array.
- *
- * @param {Array} set of values.
- * @return {Number} mean value.
- */
-statistic.mean = function (arr) {
-  var count = arr.length;
-  var sum = basic.sum(arr);
-  return sum / count;
-};
-
-/**
- * Calculate the median value of a set of numbers in array.
- *
- * @param {Array} set of values.
- * @return {Number} median value.
- */
-statistic.median = function (arr) {
-  return statistic.quantile(arr, 1, 2);
-};
-
-/**
- * Calculate the mode value of a set of numbers in array.
- *
- * @param {Array} set of values.
- * @return {Number} mode value.
- */
-statistic.mode = function (arr) {
-  var counts = {};
-  for (var i = 0, n = arr.length; i < n; i++) {
-    if (counts[arr[i]] === undefined) {
-      counts[arr[i]] = 0;
-    } else {
-      counts[arr[i]]++;
-    }
-  }
-
-  var highest;
-
-  for (var number in counts) {
-    if (counts.hasOwnProperty(number)) {
-      if (highest === undefined || counts[number] > counts[highest]) {
-        highest = number;
-      }
-    }
-  }
-
-  return Number(highest);
-};
-
-/**
- * Calculate the kth q-quantile of a set of numbers in an array.
- * As per http://en.wikipedia.org/wiki/Quantile#Quantiles_of_a_population
- * Ex: Median is 1st 2-quantile
- * Ex: Upper quartile is 3rd 4-quantile
- *
- * @param {Array} set of values.
- * @param {Number} index of quantile.
- * @param {Number} number of quantiles.
- * @return {Number} kth q-quantile of values.
- */
-statistic.quantile = function (arr, k, q) {
-  var sorted, count, index;
-
-  if (k === 0) return Math.min.apply(null, arr);
-
-  if (k === q) return Math.max.apply(null, arr);
-
-  sorted = arr.slice(0);
-  sorted.sort(function (a, b) {
-    return a - b;
-  });
-  count = sorted.length;
-  index = count * k / q;
-
-  if (index % 1 === 0) return 0.5 * sorted[index - 1] + 0.5 * sorted[index];
-
-  return sorted[Math.floor(index)];
-};
-
-
-/**
- * Return a set of summary statistics provided an array.
- *
- * @return {Object} summary statistics.
- */
-statistic.report = function (array) {
-  return {
-    mean: statistic.mean(array),
-    firstQuartile: statistic.quantile(array, 1, 4),
-    median: statistic.median(array),
-    thirdQuartile: statistic.quantile(array, 3, 4),
-    standardDev: statistic.standardDev(array)
-  };
-};
-
-/**
- * Evaluate the standard deviation for a set of values.
- *
- * @param {Array} set of values.
- * @return {Number} standard deviation.
- */
-statistic.standardDev = function (arr) {
-  var count = arr.length;
-  var mean = statistic.mean(arr);
-  var squaredArr = [];
-
-  for (var i = 0; i < arr.length; i++) {
-    squaredArr[i] = Math.pow((arr[i] - mean), 2);
-  }
-
-  return Math.sqrt((1 / count) * basic.sum(squaredArr));
-};
-
-/**
- * Evaluate the correlation amongst a set of values.
- *
- * @param {Array} set of values.
- * @return {Number} correlation.
- */
-statistic.correlation = function (arrX, arrY) {
-  if (arrX.length === arrY.length) {
-    var covarXY = statistic.covariance(arrX, arrY);
-    var stdDevX = statistic.standardDev(arrX);
-    var stdDevY = statistic.standardDev(arrY);
-
-    return covarXY / (stdDevX * stdDevY);
-  } else {
-    throw new Error('Array mismatch');
-  }
-};
-
-/**
- * Calculate the Coefficient of Determination of a dataset and regression line.
- *
- * @param {Array} Source data.
- * @param {Array} Regression data.
- * @return {Number} A number between 0 and 1.0 that represents how well the regression line fits the data.
- */
-statistic.rSquared = function (source, regression) {
-  var residualSumOfSquares = basic.sum(source.map(function (d, i) {
-    return basic.square(d - regression[i]);
-  }));
-
-  var totalSumOfSquares = basic.sum(source.map(function (d) {
-    return basic.square(d - statistic.mean(source));
-  }));
-
-  return 1 - (residualSumOfSquares / totalSumOfSquares);
-};
-
-/**
- * Create a function to calculate the exponential regression of a dataset.
- *
- * @param {Array} set of values.
- * @return {Function} function to accept X values and return corresponding regression Y values.
- */
-statistic.exponentialRegression = function (arrY) {
-  var n = arrY.length;
-  var arrX = basic.range(1, n);
-
-  var xSum = basic.sum(arrX);
-  var yLog = arrY.map(function (d) {
-    return Math.log(d);
-  });
-  var xSquared = arrX.map(function (d) {
-    return d * d;
-  });
-  var xSquaredSum = basic.sum(xSquared);
-  var yLogSum = basic.sum(yLog);
-  var xyLog = arrX.map(function (d, i) {
-    return d * yLog[i];
-  });
-  var xyLogSum = basic.sum(xyLog);
-
-  var a = (yLogSum * xSquaredSum - xSum * xyLogSum) / (n * xSquaredSum - (xSum * xSum));
-  var b = (n * xyLogSum - xSum * yLogSum) / (n * xSquaredSum - (xSum * xSum));
-
-  var fn = function (x) {
-    if (typeof x === 'number') {
-      return Math.exp(a) * Math.exp(b * x);
-    } else {
-      return x.map(function (d) {
-        return Math.exp(a) * Math.exp(b * d);
-      });
-    }
-  };
-
-  fn.rSquared = statistic.rSquared(arrY, arrX.map(fn));
-
-  return fn;
-};
-
-/**
- * Create a function to calculate the linear regression of a dataset.
- *
- * @param {Array} X array.
- * @param {Array} Y array.
- * @return {Function} A function which given X or array of X values will return Y.
- */
-statistic.linearRegression = function (arrX, arrY) {
-  var n = arrX.length;
-  var xSum = basic.sum(arrX);
-  var ySum = basic.sum(arrY);
-  var xySum = basic.sum(arrX.map(function (d, i) {
-    return d * arrY[i];
-  }));
-  var xSquaredSum = basic.sum(arrX.map(function (d) {
-    return d * d;
-  }));
-  var xMean = statistic.mean(arrX);
-  var yMean = statistic.mean(arrY);
-  var b = (xySum - 1 / n * xSum * ySum) / (xSquaredSum - 1 / n * (xSum * xSum));
-  var a = yMean - b * xMean;
-
-  return function (x) {
-    if (typeof x === 'number') {
-      return a + b * x;
-    } else {
-      return x.map(function (d) {
-        return a + b * d;
-      });
-    }
-  };
-};
-
-/**
- * Evaluate the covariance amongst 2 sets.
- *
- * @param {Array} set 1 of values.
- * @param {Array} set 2 of values.
- * @return {Number} covariance.
- */
-statistic.covariance = function (set1, set2) {
-  if (set1.length === set2.length) {
-    var n = set1.length;
-    var total = 0;
-    var sum1 = basic.sum(set1);
-    var sum2 = basic.sum(set2);
-
-    for (var i = 0; i < n; i++) {
-      total += set1[i] * set2[i];
-    }
-
-    return (total - sum1 * sum2 / n) / n;
-  } else {
-    throw new Error('Array mismatch');
-  }
-};
-
-},{"./basic":3}]},{},[1])(1)
-});
\ No newline at end of file
diff --git a/server/utils/office_day.js b/server/utils/office_day.js
old mode 100644
new mode 100755
diff --git a/server/utils/office_month.js b/server/utils/office_month.js
old mode 100644
new mode 100755
diff --git a/server/utils/office_week.js b/server/utils/office_week.js
old mode 100644
new mode 100755
diff --git a/server/utils/recordAnalysis.js b/server/utils/recordAnalysis.js
old mode 100644
new mode 100755
diff --git a/server/utils/stringUtil.js b/server/utils/stringUtil.js
old mode 100644
new mode 100755
diff --git a/server/utils/upload.js b/server/utils/upload.js
old mode 100644
new mode 100755
diff --git a/server/views/error.pug b/server/views/error.pug
old mode 100644
new mode 100755
diff --git a/server/views/index.pug b/server/views/index.pug
old mode 100644
new mode 100755
diff --git a/server/views/layout.pug b/server/views/layout.pug
old mode 100644
new mode 100755

--
Gitblit v1.9.1